diff --git a/.appveyor.yml b/.appveyor.yml index ee4818c7917e0..2b72b508a288f 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,5 +1,5 @@ version: '{branch}.{build}' -image: Visual Studio 2019 +image: Previous Visual Studio 2019 configuration: Release platform: x64 shallow_clone: true diff --git a/.clang-tidy b/.clang-tidy index 3c2067bac792b..77f4f5274f2a0 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -51,7 +51,6 @@ readability-*,\ -readability-isolate-declaration,\ -readability-magic-numbers,\ -readability-named-parameter,\ --readability-redundant-control-flow,\ " WarningsAsErrors: '*' HeaderFilterRegex: '(src|test|tools).*' diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c6eb40075e45d..993fa9086eb8a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,7 +3,7 @@ #In fact, the code "owners" designation is meant to encourage third party #individuals to contribute to the mod, with the curators notified for reviews. -/data/mods/Aftershock/ @Malecypse @John-Candlebury +/data/mods/Aftershock/ @Maleclypse @John-Candlebury /data/mods/DinoMod/ @ephemeralstoryteller @damien @LyleSY /data/mods/Graphical_Overmap/ @Kilvoctu @Larwck /data/mods/MMA/ @Hymore246 diff --git a/.travis.yml b/.travis.yml index 06b33d0bd8bd8..5f464bc4c1039 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,13 +81,17 @@ jobs: packages: ["g++-8", "g++-8-multilib", "libc6-dbg", "libc6-dbg:i386", "libsdl2-dev", "libsdl2-ttf-dev", "libsdl2-image-dev", "libsdl2-mixer-dev"] sources: *apt_sources - - env: CLANG=clang++-8 SANITIZE=address,undefined EXTRA_TEST_OPTS="~[.] ~vehicle_efficiency ~vehicle_drag ~starting_items ~[starve] ~grenade_lethality" - name: "Clang 8 Make build with sanitizers enabled, but long-running tests disabled" + - env: CLANG=clang++-10 SANITIZE=address,undefined EXTRA_TEST_OPTS="~[.] ~vehicle_efficiency ~vehicle_drag ~starting_items ~[starve] ~grenade_lethality" + name: "Clang 10 Make build with sanitizers enabled, but long-running tests disabled" compiler: clang - addons: &clang8 + dist: bionic + addons: &clang10 apt: - packages: ["clang-8"] - sources: [*apt_sources, llvm-toolchain-xenial-8] + packages: + - clang-10 + sources: + - sourceline: "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - stage: "Platforms and Tidy" # MXE variant using alternate repository http://mirror.mxe.cc/repos/apt @@ -198,6 +202,28 @@ jobs: packages: ["clang-7"] sources: [*apt_sources, llvm-toolchain-xenial-7] + - env: CLANG=clang++-8 + name: "Clang 8 Make build with Curses" + if: type != pull_request + compiler: clang + addons: &clang8 + apt: + packages: ["clang-8"] + sources: [*apt_sources, llvm-toolchain-xenial-8] + + - env: CLANG=clang++-9 + name: "Clang 9 Make build with Curses" + if: type != pull_request + compiler: clang + dist: bionic + addons: &clang9 + apt: + packages: + - clang-9 + sources: + - sourceline: "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main" + key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" + before_script: - if [ -n "${CLANG}" ]; then COMPILER="$CLANG"; fi - ${COMPILER} --version diff --git a/CMakeLists.txt b/CMakeLists.txt index 053e06fd02cf3..c861a2084ca0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ include(CTest) include(GetGitRevisionDescription) git_describe(GIT_VERSION) -MESSAGE("\n * Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.") +MESSAGE("\n * Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-apocalyptic world.") MESSAGE(" _________ __ .__ ") MESSAGE(" \\_ ___ \\ _____ _/ |_ _____ ____ | | ___.__ ______ _____ ") MESSAGE(" / \\ \\/ \\__ \\ \\ __\\\\__ \\ _/ ___\\ | | < | | / ___/ / \\ ") diff --git a/Makefile b/Makefile index 00926405d0651..a9763177ea4f8 100644 --- a/Makefile +++ b/Makefile @@ -177,6 +177,11 @@ ifdef MSYSTEM MSYS2 = 1 endif +# Default to disabling clang +ifndef CLANG + CLANG = 0 +endif + # Determine JSON formatter binary name JSON_FORMATTER_BIN=tools/format/json_formatter.cgi ifeq ($(MSYS2), 1) @@ -229,7 +234,7 @@ ifneq ($(findstring BSD,$(OS)),) endif # This sets CXX and so must be up here -ifdef CLANG +ifneq ($(CLANG), 0) # Allow setting specific CLANG version ifeq ($(CLANG), 1) CLANGCMD = clang++ @@ -309,7 +314,7 @@ ifeq ($(RELEASE), 1) endif ifeq ($(LTO), 1) - ifdef CLANG + ifneq ($(CLANG), 0) # LLVM's LTO will complain if the optimization level isn't between O0 and # O3 (inclusive) OPTLEVEL = -O3 @@ -319,14 +324,14 @@ ifeq ($(RELEASE), 1) ifeq ($(LTO), 1) ifeq ($(NATIVE), osx) - ifdef CLANG + ifneq ($(CLANG), 0) LTOFLAGS += -flto=full endif else LDFLAGS += -fuse-ld=gold # This breaks in OS X because gold can only produce ELF binaries, not Mach endif - ifdef CLANG + ifneq ($(CLANG), 0) LTOFLAGS += -flto else LTOFLAGS += -flto=jobserver -flto-odr-type-merging @@ -426,7 +431,7 @@ endif # OSX ifeq ($(NATIVE), osx) - ifdef CLANG + ifneq ($(CLANG), 0) OSX_MIN = 10.7 else OSX_MIN = 10.5 @@ -817,7 +822,7 @@ ifeq ($(LTO), 1) LDFLAGS += $(CXXFLAGS) # If GCC or CLANG, use a wrapper for AR (if it exists) else test fails to build - ifndef CLANG + ifeq ($(CLANG), 0) GCCAR := $(shell command -v gcc-ar 2> /dev/null) ifdef GCCAR ifneq (,$(findstring gcc version,$(shell $(CXX) -v &1))) @@ -1097,22 +1102,18 @@ else @echo Cannot run an astyle check, your system either does not have astyle, or it is too old. endif -JSON_FILES = $(shell find data -name "*.json" | sed "s|^\./||") -JSON_WHITELIST = $(filter-out $(shell cat json_blacklist), $(JSON_FILES)) - -style-json: $(JSON_WHITELIST) - -$(JSON_WHITELIST): json_blacklist json_formatter +style-json: json_blacklist $(JSON_FORMATTER_BIN) ifndef CROSS - @$(JSON_FORMATTER_BIN) $@ + find data -name "*.json" -print0 | grep -v -z -F -f json_blacklist | \ + xargs -0 -L 1 $(JSON_FORMATTER_BIN) else @echo Cannot run json formatter in cross compiles. endif -style-all-json: json_formatter +style-all-json: $(JSON_FORMATTER_BIN) find data -name "*.json" -print0 | xargs -0 -L 1 $(JSON_FORMATTER_BIN) -json_formatter: $(JSON_FORMATTER_SOURCES) +$(JSON_FORMATTER_BIN): $(JSON_FORMATTER_SOURCES) $(CXX) $(CXXFLAGS) $(TOOL_CXXFLAGS) -Itools/format -Isrc \ $(JSON_FORMATTER_SOURCES) -o $(JSON_FORMATTER_BIN) diff --git a/README.md b/README.md index a926d9f9ec279..52ba2654554e3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Cataclysm: Dark Days Ahead -Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world. While some have described it as a "zombie game", there is far more to Cataclysm than that. Struggle to survive in a harsh, persistent, procedurally generated world. Scavenge the remnants of a dead civilization for food, equipment, or, if you are lucky, a vehicle with a full tank of gas to get you the hell out of Dodge. Fight to defeat or escape from a wide variety of powerful monstrosities, from zombies to giant insects to killer robots and things far stranger and deadlier, and against the others like yourself, who want what you have... +Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-apocalyptic world. While some have described it as a "zombie game", there is far more to Cataclysm than that. Struggle to survive in a harsh, persistent, procedurally generated world. Scavenge the remnants of a dead civilization for food, equipment, or, if you are lucky, a vehicle with a full tank of gas to get you the hell out of Dodge. Fight to defeat or escape from a wide variety of powerful monstrosities, from zombies to giant insects to killer robots and things far stranger and deadlier, and against the others like yourself, who want what you have... Packaging Status diff --git a/build-scripts/mod_test_blacklist b/build-scripts/mod_test_blacklist index a2a5e331eabf6..fff9efc420532 100644 --- a/build-scripts/mod_test_blacklist +++ b/build-scripts/mod_test_blacklist @@ -6,7 +6,6 @@ sees_player_hitbutton sees_player_retro generic_guns national_guard_camp -FujiStruct Graphical_Overmap_Fujistruct Graphical_Overmap_More_Locations mutant_npcs diff --git a/data/help/texts.json b/data/help/texts.json index e8599a549fb69..bd9ae4d52a414 100644 --- a/data/help/texts.json +++ b/data/help/texts.json @@ -4,10 +4,10 @@ "order": 0, "name": ": Introduction", "messages": [ - "Cataclysm is a survival roguelike with a monster apocalypse setting. You have survived the original onslaught, but the future looks pretty grim.", + "Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-apocalyptic world. You have survived the original onslaught, but the future looks pretty grim.", "You must prepare to face the many hardships to come including dwindling supplies, hostile creatures, and harmful weather. Even among fellow survivors you must stay alert, since someone may be plotting behind your back to take your hard-earned loot.", - "Cataclysm differs from the traditional roguelikes in several ways. Rather than exploring an underground dungeon, with a limited area on each level, you are exploring a truly infinite world, stretching in all four cardinal directions. In this survival roguelike, you will have to find food; you also need to keep yourself hydrated and sleep periodically. It's based on principle of realism, so expect all hardships you'd expect in life in a survival situation, and at least a dozen more from the eldritch and sci-fi nature of the Cataclysm itself.", - "While Cataclysm has more tasks to keep track of than many other roguelikes, the near-future setting of the game makes some tasks easier. Firearms, medications, and a wide variety of tools are all available to help you survive." + "Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly differs from the traditional roguelikes in several ways. Rather than exploring an underground dungeon, with a limited area on each level, you are exploring a truly infinite world, stretching in all four cardinal directions. In this survival game, you will have to find food; you also need to keep yourself hydrated and sleep periodically. It's based on the principle of realism, so expect all hardships you'd expect in life in a survival situation, and at least a dozen more from the eldritch and sci-fi nature of the Cataclysm itself.", + "While Cataclysm: Dark Days Ahead has more tasks to keep track of than many other games, the modern setting of the game makes some tasks easier. Firearms, medications, and a wide variety of tools are all available to help you survive." ] }, { diff --git a/data/json/achievements.json b/data/json/achievements.json index 3cf8c6d818600..139c911a47e90 100644 --- a/data/json/achievements.json +++ b/data/json/achievements.json @@ -10,20 +10,20 @@ "type": "achievement", "name": "Rude awakening", "time_constraint": { "since": "game_start", "is": "<=", "target": "1 minute" }, - "requirements": [ { "event_statistic": "num_avatar_kills", "is": ">=", "target": 1 } ] + "requirements": [ { "event_statistic": "num_avatar_monster_kills", "is": ">=", "target": 1 } ] }, { "id": "achievement_kill_10_monsters", "type": "achievement", "name": "Decamate", - "requirements": [ { "event_statistic": "num_avatar_kills", "is": ">=", "target": 10 } ] + "requirements": [ { "event_statistic": "num_avatar_monster_kills", "is": ">=", "target": 10 } ] }, { "id": "achievement_kill_100_monsters", "type": "achievement", "name": "Centinel", "hidden_by": [ "achievement_kill_10_monsters" ], - "requirements": [ { "event_statistic": "num_avatar_kills", "is": ">=", "target": 100 } ] + "requirements": [ { "event_statistic": "num_avatar_monster_kills", "is": ">=", "target": 100 } ] }, { "id": "achievement_survive_one_day", @@ -110,5 +110,62 @@ "type": "achievement", "name": "Ain't no valley low enough", "requirements": [ { "event_statistic": "min_move_z", "is": "<=", "target": -10 } ] + }, + { + "id": "achievement_wield_crowbar", + "type": "achievement", + "name": "Freeman's favorite", + "requirements": [ + { + "event_statistic": "num_avatar_wields_crowbar", + "is": ">=", + "target": 1, + "visible": "when_achievement_completed", + "description": "Wield a crowbar" + } + ] + }, + { + "id": "achievement_wear_power_armor", + "type": "achievement", + "name": "Impenetrable", + "requirements": [ + { + "event_statistic": "num_avatar_wears_power_armor_heavy", + "is": ">=", + "target": 1, + "visible": "when_achievement_completed", + "description": "Wear a tank suit" + } + ] + }, + { + "id": "achievement_reach_lab_finale", + "type": "achievement", + "name": "What are they hiding?", + "requirements": [ + { + "event_statistic": "num_avatar_enter_lab_finale", + "is": ">=", + "target": 1, + "visible": "when_achievement_completed", + "description": "Enter a lab finale room" + } + ] + }, + { + "id": "achievement_return_to_first_omt", + "type": "achievement", + "name": "Return to your roots", + "hidden_by": [ "achievement_survive_91_days" ], + "time_constraint": { "since": "game_start", "is": ">=", "target": "91 days" }, + "requirements": [ + { + "event_statistic": "num_avatar_enter_first_omt", + "is": ">=", + "target": 1, + "description": "Return to the location you started the game" + } + ] } ] diff --git a/data/json/anatomy.json b/data/json/anatomy.json index b40636d70e599..980cbf0cc0d01 100644 --- a/data/json/anatomy.json +++ b/data/json/anatomy.json @@ -2,21 +2,7 @@ { "id": "human_anatomy", "type": "anatomy", - "parts": [ - "eyes", - "head", - "mouth", - "torso", - "arm_l", - "arm_r", - "hand_l", - "hand_r", - "leg_l", - "leg_r", - "foot_l", - "foot_r", - "num_bp" - ] + "parts": [ "eyes", "head", "mouth", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] }, { "id": "default_anatomy", diff --git a/data/json/bionics.json b/data/json/bionics.json index 290c44ef44526..9a18f5eed9668 100644 --- a/data/json/bionics.json +++ b/data/json/bionics.json @@ -116,7 +116,7 @@ "name": { "str": "Shotgun Arm" }, "description": "Concealed in your left arm is a single shot 12 gauge shotgun. Activate the bionic to fire and reload the shotgun.", "occupied_bodyparts": [ [ "arm_l", 15 ] ], - "encumbrance": [ [ "ARM_L", 5 ] ], + "encumbrance": [ [ "arm_l", 5 ] ], "act_cost": "50 J", "fake_item": "bio_shotgun_gun", "flags": [ "BIONIC_TOGGLED", "BIONIC_WEAPON", "NO_UNWIELD" ] @@ -710,7 +710,7 @@ "description": "When active, this bionic eliminates all light within a 2 tile radius through destructive interference.", "occupied_bodyparts": [ [ "torso", 16 ] ], "flags": [ "BIONIC_TOGGLED" ], - "enchantments": [ "ENCH_INVISIBILITY" ], + "enchantments": [ "ENCH_SHADOW_CLOUD" ], "act_cost": "9 kJ", "react_cost": "9 kJ", "time": 1 @@ -740,7 +740,7 @@ "name": { "str": "Bionic Nostril" }, "description": "You're really not sure how the CBM ended up in your nose, but no matter how it got there this badly misplaced bionic makes it difficult to breathe. Increases mouth encumbrance by ten.", "occupied_bodyparts": [ [ "head", 2 ], [ "mouth", 1 ] ], - "encumbrance": [ [ "MOUTH", 10 ] ], + "encumbrance": [ [ "mouth", 10 ] ], "flags": [ "BIONIC_FAULTY" ] }, { @@ -768,7 +768,7 @@ "name": { "str": "Bionic Visual Impairment" }, "description": "Due to a badly misplaced dielectric stylette, you are now suffering from mild optic neuropathy. Increases eye encumbrance by ten.", "occupied_bodyparts": [ [ "eyes", 1 ] ], - "encumbrance": [ [ "EYES", 10 ] ], + "encumbrance": [ [ "eyes", 10 ] ], "flags": [ "BIONIC_FAULTY" ] }, { @@ -977,13 +977,13 @@ "description": "Improperly installed wires cause a physical stiffness in most of your body, causing increased encumbrance.", "occupied_bodyparts": [ [ "torso", 2 ], [ "arm_l", 1 ], [ "arm_r", 1 ], [ "leg_l", 1 ], [ "leg_r", 1 ], [ "foot_l", 1 ], [ "foot_r", 1 ] ], "encumbrance": [ - [ "TORSO", 10 ], - [ "ARM_L", 10 ], - [ "ARM_R", 10 ], - [ "LEG_L", 10 ], - [ "LEG_R", 10 ], - [ "FOOT_L", 10 ], - [ "FOOT_R", 10 ] + [ "torso", 10 ], + [ "arm_l", 10 ], + [ "arm_r", 10 ], + [ "leg_l", 10 ], + [ "leg_r", 10 ], + [ "foot_l", 10 ], + [ "foot_r", 10 ] ], "flags": [ "BIONIC_FAULTY" ] }, @@ -1037,7 +1037,7 @@ "name": { "str": "Self-Locking Thumbs" }, "description": "Self-locking thumbs hold tight (even when you really don't want them to) and don't let go (even when you'd rather they did). Increases hand encumbrance by ten, while failing to improve your ability to hold objects whatsoever.", "occupied_bodyparts": [ [ "hand_l", 1 ], [ "hand_r", 1 ] ], - "encumbrance": [ [ "HAND_L", 10 ], [ "HAND_R", 10 ] ], + "encumbrance": [ [ "hand_l", 10 ], [ "hand_r", 10 ] ], "flags": [ "BIONIC_FAULTY" ] }, { @@ -1153,7 +1153,7 @@ "name": { "str": "Gasoline Fuel Cell CBM" }, "description": "A small gasoline fuel cell fixed to your scapula. Despite its limited energy output compared to other fuel cells, this device still produces a significant amount of heat dissipated through a heat exhaust protruding from your back. A diffuse network of bio-plastic bladders has been meshed with your circulatory system and serves as a fuel tank.", "occupied_bodyparts": [ [ "torso", 8 ] ], - "encumbrance": [ [ "TORSO", 5 ] ], + "encumbrance": [ [ "torso", 5 ] ], "fuel_options": [ "gasoline" ], "fuel_capacity": 500, "fuel_efficiency": 0.25, diff --git a/data/json/clothing_mods.json b/data/json/clothing_mods.json index 804e158988c71..116e9cded3932 100644 --- a/data/json/clothing_mods.json +++ b/data/json/clothing_mods.json @@ -30,7 +30,7 @@ "type": "clothing_mod", "id": "kevlar_padded", "flag": "kevlar_padded", - "item": "kevlar_plate", + "item": "sheet_kevlar_layered", "implement_prompt": "Pad with Kevlar", "destroy_prompt": "Destroy Kevlar padding", "mod_value": [ diff --git a/data/json/conducts.json b/data/json/conducts.json new file mode 100644 index 0000000000000..3b5eabcfefd2b --- /dev/null +++ b/data/json/conducts.json @@ -0,0 +1,23 @@ +[ + { + "id": "conduct_zero_kills", + "type": "conduct", + "name": "Pacifist", + "requirements": [ + { "event_statistic": "num_avatar_monster_kills", "is": "<=", "target": 0, "description": "Kill no monsters" }, + { + "event_statistic": "num_avatar_character_kills", + "is": "<=", + "target": 0, + "description": "Kill no characters" + } + ] + }, + { + "id": "conduct_zero_character_kills", + "type": "conduct", + "name": "Merciful", + "hidden_by": [ "conduct_zero_kills" ], + "requirements": [ { "event_statistic": "num_avatar_character_kills", "is": "<=", "target": 0, "description": "Kill no characters" } ] + } +] diff --git a/data/json/construction.json b/data/json/construction.json index 57936580cc6a1..e1004bb1146bd 100644 --- a/data/json/construction.json +++ b/data/json/construction.json @@ -3206,6 +3206,18 @@ ], "post_terrain": "f_cardboard_fort" }, + { + "type": "construction", + "id": "constr_sand_castle", + "description": "Build Sand Castle", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 0 ] ], + "time": "20 m", + "pre_special": "check_empty", + "tools": [ [ [ "sandbox_kit", -1 ] ] ], + "components": [ [ [ "material_sand", 8 ] ], [ [ "water", 2 ], [ "water_clean", 2 ], [ "salt_water", 2 ] ] ], + "post_terrain": "f_sand_castle" + }, { "type": "construction", "id": "constr_firering", diff --git a/data/json/effects.json b/data/json/effects.json index 401444703850e..29fbcc6e83be5 100644 --- a/data/json/effects.json +++ b/data/json/effects.json @@ -862,6 +862,30 @@ "resist_traits": [ "POISRESIST" ], "base_mods": { "speed_mod": [ -10 ], "str_mod": [ -1 ], "dex_mod": [ -1 ] } }, + { + "type": "effect_type", + "id": "taint", + "name": [ "Touched mind", "Touched mind", "Tainted mind", "Badly tainted mind" ], + "miss_messages": [ [ "Your sense of reality warps!", 3 ] ], + "speed_name": "Tainted", + "desc": [ + "You are disoriented as strange visions flash through your mind.", + "You are overwhelmed by the disturbing imagery and concepts you're flooded with.", + "You can't comprehend the things around you…", + "You don't know what is and isn't real anymore…" + ], + "rating": "bad", + "max_intensity": 4, + "max_duration": "2 h", + "int_add_val": 1, + "int_dur_factor": "5 m", + "base_mods": { "speed_mod": [ -20 ], "str_mod": [ 0 ], "dex_mod": [ -1 ], "per_mod": [ -2 ], "vomit_chance": [ 20 ] }, + "scaling_mods": { "speed_mod": [ -10 ], "int_mod": [ -2 ], "str_mod": [ -1 ], "dex_mod": [ -1 ], "per_mod": [ -2 ] } + }, + { + "type": "effect_type", + "id": "tindrift" + }, { "type": "effect_type", "id": "visuals", @@ -1950,5 +1974,51 @@ "id": "ignore_fall_damage", "//": "Used for translocation via teleporter_list as a way to avoid fall damage by teleporting Z levels", "flags": [ "EFFECT_FEATHER_FALL" ] + }, + { + "type": "effect_type", + "id": "hunger_full", + "name": [ "Full" ], + "desc": [ "You feel quite full, and a bit sluggish." ], + "apply_message": "You feel quite full, and a bit sluggish.", + "rating": "bad", + "base_mods": { "speed_mod": [ -2 ], "fatigue_amount": [ 1 ] } + }, + { + "type": "effect_type", + "id": "hunger_engorged", + "name": [ "Engorged" ], + "desc": [ "Your stomach is full to bursting. This was a mistake." ], + "apply_message": "Your stomach is full to bursting. This was a mistake.", + "rating": "bad", + "base_mods": { "speed_mod": [ -10 ], "fatigue_amount": [ 2 ], "vomit_chance": [ 5 ], "vomit_tick": [ 60 ], "pain_amount": [ 3 ] } + }, + { + "type": "effect_type", + "id": "hunger_satisfied" + }, + { + "type": "effect_type", + "id": "hunger_hungry" + }, + { + "type": "effect_type", + "id": "hunger_very_hungry" + }, + { + "type": "effect_type", + "id": "hunger_near_starving" + }, + { + "type": "effect_type", + "id": "hunger_starving" + }, + { + "type": "effect_type", + "id": "hunger_famished" + }, + { + "type": "effect_type", + "id": "hunger_blank" } ] diff --git a/data/json/emit.json b/data/json/emit.json index 0027fd2537b42..4c9045aef0390 100644 --- a/data/json/emit.json +++ b/data/json/emit.json @@ -130,6 +130,14 @@ "intensity": 3, "chance": 50 }, + { + "id": "emit_shadow_field", + "type": "emit", + "field": "fd_shadow", + "intensity": 1, + "qty": 10, + "chance": 100 + }, { "id": "emit_shock_burst", "type": "emit", diff --git a/data/json/enchantments.json b/data/json/enchantments.json index f5635831ef01a..9f045b7dfd25e 100644 --- a/data/json/enchantments.json +++ b/data/json/enchantments.json @@ -4,5 +4,12 @@ "id": "ENCH_INVISIBILITY", "condition": "ALWAYS", "ench_effects": [ { "effect": "invisibility", "intensity": 1 } ] + }, + { + "type": "enchantment", + "id": "ENCH_SHADOW_CLOUD", + "condition": "ALWAYS", + "ench_effects": [ { "effect": "invisibility", "intensity": 1 } ], + "emitter": "emit_shadow_field" } ] diff --git a/data/json/field_type.json b/data/json/field_type.json index 552f0d9e1982c..2d0e71aced560 100644 --- a/data/json/field_type.json +++ b/data/json/field_type.json @@ -518,6 +518,13 @@ "display_field": true, "looks_like": "fd_fire" }, + { + "id": "fd_shadow", + "type": "field_type", + "intensity_levels": [ { "name": "shadow", "light_override": 3.7 } ], + "half_life": "10 seconds", + "percent_spread": 50 + }, { "id": "fd_flame_burst", "type": "field_type", diff --git a/data/json/flags.json b/data/json/flags.json index 1dfdc18373d07..01fdfd4ff8054 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -377,6 +377,12 @@ "context": [ "GENERIC", "TOOL_ARMOR", "TOOL" ], "info": "This item can be used to communicate with radio waves." }, + { + "id": "PERFECT_LOCKPICK", + "type": "json_flag", + "context": [ ], + "info": "This item can be used to pick locks with zero effort." + }, { "id": "RAINPROOF", "type": "json_flag", diff --git a/data/json/furniture_and_terrain/furniture-appliances.json b/data/json/furniture_and_terrain/furniture-appliances.json index 2160d9d039a6e..11c38f3a32099 100644 --- a/data/json/furniture_and_terrain/furniture-appliances.json +++ b/data/json/furniture_and_terrain/furniture-appliances.json @@ -4,7 +4,7 @@ "id": "f_air_conditioner", "name": "cooling unit", "looks_like": "t_machinery_light", - "description": "A big, blocky metal device for refrigerating large areas.", + "description": "A large, blocky appliance encased in sheet metal. This commonplace fixture is used for cooling large indoor areas.", "symbol": "{", "bgcolor": "white", "move_cost_mod": -1, @@ -44,7 +44,7 @@ "type": "furniture", "id": "f_air_filter", "name": "central air filter", - "description": "Cleans out dust mites, smoke particles, and more!", + "description": "A large synthetic membrane used to filter out dust, smoke, mites, and other contaminants from air that passes through it.", "symbol": "#", "bgcolor": "white", "move_cost_mod": -1, @@ -85,7 +85,7 @@ "id": "f_dishwasher", "name": "dishwasher", "looks_like": "f_oven", - "description": "This metal box used to spray hot water and soap at dirty dishes to make them clean and to save people an unpleasant chore. Now, with the power gone and it sitting for a while, it's starting to smell a bit off.", + "description": "A large, boxy machine that uses hot water and soap to efficiently clean batches of dishes. Now that it's sat powerless for a while, a putrid scent of rot is leaking from inside.", "symbol": "{", "bgcolor": "white", "move_cost_mod": -1, @@ -129,7 +129,7 @@ "type": "furniture", "id": "f_dryer", "name": "dryer", - "description": "'Dry your clothes!' would be what you'd do if electricity was running.", + "description": "A common household appliance used to quickly dry large batches of clothing after they have been washed.", "symbol": "{", "bgcolor": "white", "move_cost_mod": -1, @@ -170,7 +170,7 @@ "id": "f_fridge", "name": "refrigerator", "symbol": "{", - "description": "Freeze your food with the amazing science of electricity! Oh wait, none is flowing. Well, as long as you don't open it, maybe it'll stay cool for awhile.", + "description": "A tall metal storage container that, if powered, will freeze food and other perishables for preservation.", "color": "light_cyan", "move_cost_mod": -1, "coverage": 90, @@ -216,7 +216,7 @@ "name": "glass door fridge", "symbol": "{", "color": "light_cyan", - "description": "Wow! See INTO your fridge before you open it and discover it's not working!", + "description": "A modern refrigerator with a thick sheet of glass in the door, often specially treated to be more insulative. Allows seeing the contents without letting out the cold air, which used to be a minor convenience, and now saves precious minutes until spoilage.", "move_cost_mod": -1, "coverage": 90, "required_str": 10, @@ -260,7 +260,7 @@ "id": "f_home_furnace", "name": "furnace", "looks_like": "t_sewage_pipe", - "description": "A gas-powered forced-air central heating unit, with an internal fan to push the air through a building's air ducts and keep it warm.", + "description": "A gas-powered forced-air central heating unit, with an internal fan to push the air through a building's ventilation system to keep it warm.", "symbol": "0", "bgcolor": "white", "move_cost_mod": -1, @@ -300,7 +300,7 @@ "type": "furniture", "id": "f_washer", "name": "washing machine", - "description": "You could wash your dirty clothes if electricity was running.", + "description": "A large, chunky machine that uses soap and large amounts of water to wash batches of clothes with minimal effort.", "symbol": "{", "bgcolor": "white", "move_cost_mod": -1, @@ -343,7 +343,7 @@ "id": "f_oven", "name": "oven", "symbol": "#", - "description": "Used for heating and cooking food with electricity. Doesn't look like it's working, although it still has parts. It might be safe to light a fire inside of it, if you had to.", + "description": "A standard convection-based oven, commonly used for heating and cooking food. Despite it no longer working, you could safely light a fire inside.", "color": "dark_gray", "move_cost_mod": 2, "coverage": 60, @@ -383,7 +383,7 @@ "id": "f_bellows", "name": "blacksmith bellows", "symbol": "#", - "description": "Used for delivering air to increase the combustion and heat output of a forge. Doesn't look like it's working, although it still has parts.", + "description": "An old device for pushing air into a blacksmith's forge to strengthen the fire and maintain a high temperature. Useless in its current state, but good for parts.", "color": "dark_gray", "looks_like": "t_machinery_old", "move_cost_mod": 2, @@ -417,7 +417,7 @@ "id": "f_drophammer", "name": "blacksmith drop hammer", "symbol": "#", - "description": "Used for fast production of metal items. Doesn't look like it's working, although it still has parts.", + "description": "An anvil with a large metal hammer suspended above it in a metal framework. If it were working, it would be useful for shaping softened metal plates, though now it is only useful for parts.", "color": "white", "looks_like": "t_machinery_old", "move_cost_mod": 2, @@ -453,7 +453,7 @@ "type": "furniture", "id": "f_shredder", "name": "document shredder", - "description": "It's not all about hiding government secrets, sometimes you just want to stop identity theft.", + "description": "A simple electronic device mounted to a large basket. It is designed to efficiently destroy paper documents with sensitive information. Good for parts, as identity theft and corporate espionage probably aren't big concerns anymore.", "symbol": "H", "bgcolor": "white", "move_cost_mod": 5, @@ -496,7 +496,7 @@ "id": "f_server", "looks_like": "f_utility_shelf", "name": "server stack", - "description": "This is a big pile of computers. They're all turned off.", + "description": "A large rack of specialized computers for storing and transmitting information. Powerless and largely useless for its intended purpose, the laptops mounted inside can still be used if removed.", "symbol": ":", "color": "blue_white", "move_cost_mod": -1, @@ -532,7 +532,7 @@ "id": "f_satellite", "name": "large satellite dish", "looks_like": "t_radio_tower", - "description": "Somewhere up there, there are still satellites, orbiting and doing their thing, sending signals down to an Earth that is no longer listening.", + "description": "A large concave metal panel with simple electronics used to receive signals from sattelites. While the hundreds of expensive machines orbitting the planet will likely continue to function indefinately, their various purposes have all been lost.", "symbol": ")", "color": "white_green", "move_cost_mod": -1, @@ -573,7 +573,7 @@ "type": "furniture", "id": "f_solar_unit", "name": "mounted solar panel", - "description": "A mounted solar panel.", + "description": "A set of photovoltaic power generators, which turns solar radiation into useable electricity. While useful before the cataclysm, they have become priceless tools, invaluable to any survivor.", "symbol": "#", "color": "yellow", "move_cost_mod": 2, diff --git a/data/json/furniture_and_terrain/furniture-barriers.json b/data/json/furniture_and_terrain/furniture-barriers.json index 28935f92c3872..a0e4260978b67 100644 --- a/data/json/furniture_and_terrain/furniture-barriers.json +++ b/data/json/furniture_and_terrain/furniture-barriers.json @@ -5,7 +5,7 @@ "name": "road barricade", "symbol": "#", "bgcolor": "yellow", - "description": "A road barricade. For barricading roads.", + "description": "A large wooden blockade used to block passage through a road. It is lined with reflective tape to increase visibility. Despite the name, it does little to stop a moving car.", "move_cost_mod": -1, "coverage": 30, "required_str": 5, @@ -27,7 +27,7 @@ "symbol": "#", "looks_like": "f_sandbag_half", "bgcolor": "brown", - "description": "An earthbag barricade, typically used for blocking bullets.", + "description": "A low wall made of stacked earthbags, commonly used to catch bullets and block flooding.", "move_cost_mod": -1, "coverage": 60, "required_str": -1, @@ -61,7 +61,7 @@ "bgcolor": "brown", "move_cost_mod": -1, "coverage": 95, - "description": "An earthbag wall.", + "description": "A wall of stacked earthbags, a bit taller than an average adult.", "required_str": -1, "flags": [ "NOITEM", "BLOCKSDOOR", "EASY_DECONSTRUCT", "MINEABLE", "BLOCK_WIND" ], "deconstruct": { "items": [ { "item": "earthbag", "count": 20 } ], "furn_set": "f_earthbag_half" }, @@ -78,7 +78,7 @@ "type": "furniture", "id": "f_lane", "name": "lane guard", - "description": "Used to be used for keeping traffic.", + "description": "A simple wooden post to mark the separation between street lanes.", "symbol": "#", "color": "brown", "move_cost_mod": 1, @@ -98,7 +98,7 @@ "name": "sandbag barricade", "symbol": "#", "bgcolor": "brown", - "description": "A sandbag barricade, typically used for blocking bullets.", + "description": "A low wall made of canvas sacks filled with sand, commonly used to catch bullets and prevent flooding.", "move_cost_mod": -1, "coverage": 60, "required_str": -1, @@ -131,7 +131,7 @@ "bgcolor": "brown", "move_cost_mod": -1, "coverage": 95, - "description": "A sandbag wall.", + "description": "A wall of stacked sandbags, a bit taller than an average adult.", "required_str": -1, "flags": [ "NOITEM", "BLOCKSDOOR", "EASY_DECONSTRUCT", "MINEABLE", "BLOCK_WIND" ], "deconstruct": { "items": [ { "item": "sandbag", "count": 20 } ], "furn_set": "f_sandbag_half" }, diff --git a/data/json/furniture_and_terrain/furniture-decorative.json b/data/json/furniture_and_terrain/furniture-decorative.json index f5124ba5a3d5d..e279727ada83e 100644 --- a/data/json/furniture_and_terrain/furniture-decorative.json +++ b/data/json/furniture_and_terrain/furniture-decorative.json @@ -4,7 +4,7 @@ "id": "f_bigmirror", "name": "standing mirror", "symbol": "{", - "description": "Lookin' good - is that blood?", + "description": "A full-length mirror mounted in a sleek metal frame. You can easily see all of the dirt and blood on your clothes, and the weariness in your eyes.", "color": "white", "move_cost_mod": 2, "coverage": 80, @@ -24,7 +24,7 @@ "type": "furniture", "id": "f_bigmirror_b", "name": "broken standing mirror", - "description": "You could look at yourself, if the mirror wasn't covered in cracks and fractures.", + "description": "A metal frame for a full-length mirror, with most of the mirror missing. What remains in the frame are large dangerous-looking shards of fractured glass.", "symbol": "{", "color": "light_gray", "move_cost_mod": 2, @@ -43,7 +43,7 @@ "id": "f_bitts", "type": "furniture", "name": "bitts", - "description": "Paired vertical iron posts mounted on a wharf, pier or quay. They are used to secure mooring lines, ropes, hawsers, or cables.", + "description": "A pair of vertical iron posts mounted on a wharf, pier, or other form of dock. They are used to secure mooring lines, ropes, and similar.", "symbol": "B", "color": "light_gray", "move_cost_mod": 2, @@ -62,7 +62,7 @@ "type": "furniture", "id": "f_shackle", "name": "manacles", - "description": "Chain serfs in your dungeon. All you need now is an iron ball to chain to it.", + "description": "A pair of metal shackles with heavy chains mounted to a wall or floor.", "symbol": "8", "color": "light_gray", "move_cost_mod": 1, @@ -80,7 +80,7 @@ "type": "furniture", "id": "f_statue", "name": "statue", - "description": "A carved statue made of stone.", + "description": "A massive block of stone that has been carefully carved into a work of timeless art.", "symbol": "S", "color": "dark_gray", "move_cost_mod": -1, @@ -99,7 +99,7 @@ "type": "furniture", "id": "f_mannequin", "name": "mannequin", - "description": "Put clothes on it, talk to it. Who's around to judge you? Wait… did it just move?", + "description": "A life-size wooden figure of a person, most commonly used to display clothing in stores, or for tailors to design outfits on. Considering all that's happened, something about it is somewhat unnerving.", "symbol": "@", "color": "brown", "move_cost_mod": 2, @@ -118,7 +118,7 @@ "type": "furniture", "id": "f_birdbath", "name": "birdbath", - "description": "A decorative cement birdbath and pedestal.", + "description": "A wide stone bowl mounted to a pedestal, usually filled with rainwater, meant for birds to play or bathe in.", "symbol": "o", "color": "light_gray", "move_cost_mod": -1, @@ -136,7 +136,7 @@ "type": "furniture", "id": "f_rotary_clothesline", "name": "rotary clothes dryer line", - "description": "A umbrella shaped clothes line mounted on a pole.", + "description": "A central metal pole holding up a wide rotating frame, this would be used to hang up clothes to dry in the sunlight.", "symbol": "X", "color": "white", "move_cost_mod": -2, @@ -159,7 +159,7 @@ "name": "floor lamp", "symbol": "T", "looks_like": "f_rack_coat", - "description": "A tall standing lamp, meant to plug into a wall and light up a room.", + "description": "A light mounted on the top of a metal pole, this would be plugged into a wall socket to illuminate a room.", "color": "light_gray", "move_cost_mod": 2, "required_str": 1, @@ -198,11 +198,28 @@ "required_str": 10, "flags": [ "PLACE_ITEM" ] }, + { + "type": "furniture", + "id": "f_sand_castle", + "name": "sand castle", + "description": "A glorious castle made of sand. This mighty fortress will stand tall for the ages to come, a true testimony of the skills of its builder.", + "symbol": "m", + "color": "yellow", + "move_cost_mod": 2, + "required_str": -1, + "bash": { + "str_min": 1, + "str_max": 1, + "sound": "crunch.", + "sound_fail": "thump.", + "items": [ { "item": "material_sand", "count": 8 } ] + } + }, { "type": "furniture", "id": "f_decorative_tree", "name": "decorative tree", - "description": "A decorative tree for the winter holidays.", + "description": "A decorative pine tree littered with ornaments for the winter holidays.", "symbol": "+", "color": "light_green", "looks_like": "t_tree_pine", diff --git a/data/json/furniture_and_terrain/furniture-domestic_plants.json b/data/json/furniture_and_terrain/furniture-domestic_plants.json index 316c8c1e5bad1..9dd645a99caa7 100644 --- a/data/json/furniture_and_terrain/furniture-domestic_plants.json +++ b/data/json/furniture_and_terrain/furniture-domestic_plants.json @@ -6,7 +6,7 @@ "symbol": "^", "color": "green", "move_cost_mod": 2, - "description": "A variety of plant, used for decoration.", + "description": "A small potted plant, used for decoration indoors. It appears to have dried up and died a while ago.", "required_str": 5, "max_volume": "10 L", "flags": [ "CONTAINER", "FLAMMABLE_ASH", "PLACE_ITEM", "ORGANIC", "TINY", "TRANSPARENT", "EASY_DECONSTRUCT" ], @@ -39,7 +39,7 @@ "type": "furniture", "id": "f_indoor_plant_y", "name": "yellow indoor plant", - "description": "A variety of plant for decoration. It's yellow.", + "description": "A decorative potted plant with a yellow flower, it looks to have wilted and died some time ago.", "symbol": "^", "color": "yellow", "move_cost_mod": 2, @@ -75,7 +75,7 @@ "type": "furniture", "id": "f_plant_harvest", "name": "harvestable plant", - "description": "This plant is ready for harvest. Examine it more closely to identify how to harvest the plant appropriately.", + "description": "This plant is fully grown and ready to be harvested. Identifying how to harvest it requires closer examination.", "symbol": "#", "color": "light_green", "move_cost_mod": 0, @@ -89,7 +89,7 @@ "type": "furniture", "id": "f_plant_mature", "name": "mature plant", - "description": "This plant has matured.", + "description": "This plant has matured, and will be ready to harvest before long.", "symbol": "#", "color": "green", "move_cost_mod": 0, @@ -103,7 +103,7 @@ "type": "furniture", "id": "f_plant_seed", "name": "seed", - "description": "A humble planted seed. Actions are the seed of fate deeds grow into destiny.", + "description": "A freshly planted seed. If properly tended to, it could grow into a healthy plant.", "symbol": "^", "color": "brown", "move_cost_mod": 0, @@ -117,7 +117,7 @@ "type": "furniture", "id": "f_plant_seedling", "name": "seedling", - "description": "This plant is just getting started.", + "description": "A seed that has just begun to sprout its first roots.", "symbol": "^", "color": "green", "move_cost_mod": 0, @@ -165,7 +165,7 @@ "type": "furniture", "id": "f_planter_harvest", "name": "planter with harvestable plant", - "description": "A garden planter full of soil and slatted to allow adequate drainage. Can be used for planting crops. This one contains a planted seed", + "description": "A garden planter full of soil and slatted to allow adequate drainage. This one has a fully grown plant, and will need closer examination to harvest.", "symbol": "#", "color": "light_green", "looks_like": "f_plant_harvest", @@ -199,7 +199,7 @@ "type": "furniture", "id": "f_planter_mature", "name": "planter with mature plant", - "description": "A garden planter full of soil and slatted to allow adequate drainage. Can be used for planting crops. This one contains a planted seed", + "description": "A garden planter full of soil and slatted to allow adequate drainage. This one has a matured plant that should be ready for harvest before long.", "symbol": "#", "color": "green", "looks_like": "f_plant_mature", @@ -233,7 +233,7 @@ "type": "furniture", "id": "f_planter_seed", "name": "planter with seed", - "description": "A garden planter full of soil and slatted to allow adequate drainage. Can be used for planting crops. This one contains a planted seed", + "description": "A garden planter full of soil and slatted to allow adequate drainage. This one contains a planted seed, and will need attention to grow fully.", "symbol": "^", "color": "brown", "looks_like": "f_plant_seed", @@ -267,7 +267,7 @@ "type": "furniture", "id": "f_planter_seedling", "name": "planter with seedling", - "description": "A garden planter full of soil and slatted to allow adequate drainage. Can be used for planting crops. This one contains a planted seedling", + "description": "A garden planter full of soil and slatted to allow adequate drainage. This one has a seed that has just begun to sprout its first roots.", "symbol": "^", "color": "green", "looks_like": "f_plant_seedling", diff --git a/data/json/furniture_and_terrain/furniture-eggs.json b/data/json/furniture_and_terrain/furniture-eggs.json index 3c93235d58e73..cbfd53ed08368 100644 --- a/data/json/furniture_and_terrain/furniture-eggs.json +++ b/data/json/furniture_and_terrain/furniture-eggs.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_egg_sackbw", "name": "spider egg sack", - "description": "Much too large, off-white egg sack. Kind of icky. Something IS moving in there.", + "description": "A sizable, off-white sac of large eggs. Upon watching closer, you can see them moving slightly. Gross.", "symbol": "O", "color": "white", "move_cost_mod": 3, @@ -16,7 +16,7 @@ "type": "furniture", "id": "f_egg_sackcs", "name": "spider egg sack", - "description": "Bulbous mass of spider eggs. More than kind of icky. Something IS moving in there.", + "description": "A bulbous mass of off-white spider eggs. Upon watching closer, you can see them moving a bit. Really gross.", "symbol": "O", "color": "white", "move_cost_mod": 3, @@ -29,7 +29,7 @@ "type": "furniture", "id": "f_egg_sackws", "name": "spider egg sack", - "description": "A horrifyingly oversized egg sack. Something IS moving in there. If you're seeing this, you're already too close to it.", + "description": "A gigantic sac of spider's eggs, each one larger than your fist. They're definitely moving around. Really gross, just seeing it makes your skin crawl.", "symbol": "O", "color": "yellow", "move_cost_mod": 3, @@ -42,7 +42,7 @@ "type": "furniture", "id": "f_egg_sacke", "name": "ruptured egg sack", - "description": "Super icky. Spider stuff's spilling out.", + "description": "A disgusting ruptured sac of giant spider eggs. The thought of all those massive baby spiders pouring out of it is almost terrifying on its own.", "symbol": "X", "color": "white", "move_cost_mod": 3, diff --git a/data/json/furniture_and_terrain/furniture-fireplaces.json b/data/json/furniture_and_terrain/furniture-fireplaces.json index 535e2fc19afb0..ca87ea60bff5f 100644 --- a/data/json/furniture_and_terrain/furniture-fireplaces.json +++ b/data/json/furniture_and_terrain/furniture-fireplaces.json @@ -4,7 +4,7 @@ "id": "f_fireplace", "name": "fireplace", "symbol": "#", - "description": "Ah. The relaxation of sitting in front of a fire as the world around you crumbles. Towards the End, you could also get this service on your television.", + "description": "A common fixture for safely hosting a fire indoors, with a chimney to vent the smoke to the outside. Dangerous to leave unattended while lit.", "bgcolor": "white", "move_cost_mod": 2, "coverage": 50, @@ -25,7 +25,7 @@ "name": "wood stove", "symbol": "#", "bgcolor": "red", - "description": "Wood stove for heating and cooking. Much more efficient than an open flame.", + "description": "A simple metal stove for hosting wood-fueled fires. Good for cooking or heating food, and safe to have indoors.", "move_cost_mod": 2, "coverage": 60, "required_str": 10, @@ -70,7 +70,7 @@ "type": "furniture", "id": "f_55gal_firebarrel", "name": "fire barrel (200L)", - "description": "A large metal barrel used to contain a fire. It has multiple holes punched in its walls for air supply. Fires set in a fire barrel will not spread to surrounding flammable objects.", + "description": "A huge metal barrel used to safely contain a fire. It has multiple holes punched in the walls for air supply.", "symbol": "#", "color": "red", "looks_like": "55gal_drum", @@ -96,7 +96,7 @@ "type": "furniture", "id": "f_30gal_firebarrel", "name": "fire barrel (100L)", - "description": "A large metal barrel used to contain a fire. It has multiple holes punched in its walls for air supply. Fires set in a fire barrel will not spread to surrounding flammable objects.", + "description": "A large metal barrel used to safely contain a fire. It has multiple holes punched in the walls for air supply.", "symbol": "#", "color": "red", "looks_like": "30gal_drum", diff --git a/data/json/furniture_and_terrain/furniture-fungal.json b/data/json/furniture_and_terrain/furniture-fungal.json index ea0529048d104..4aa6ca2232179 100644 --- a/data/json/furniture_and_terrain/furniture-fungal.json +++ b/data/json/furniture_and_terrain/furniture-fungal.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_flower_marloss", "name": "marloss flower", - "description": "This flower is like the other flowers taken by the mushrooms, but its bulb is colored a brilliant cyan color, and it emits an aroma both overwhelming and… delicious?", + "description": "This flower is like the other flowers taken by the mushrooms, but its bulb is colored a brilliant cyan color. It emits an aroma both overwhelming and strangely alluring.", "symbol": "f", "color": "cyan", "move_cost_mod": 1, @@ -16,7 +16,7 @@ "type": "furniture", "id": "f_flower_fungal", "name": "fungal flower", - "description": "This flower has been overgrown by gray, sinewy tendrils of fungus, and the color has leached from its petals and stem. It gently sways of its own volition.", + "description": "This flower has been overgrown by gray, sinewy tendrils of fungus, and the color has been leached from its petals and stem. It gently sways of its own volition, maintaining an unsettling rhythm.", "symbol": "f", "color": "dark_gray", "move_cost_mod": 1, @@ -29,7 +29,7 @@ "type": "furniture", "id": "f_fungal_mass", "name": "fungal mass", - "description": "Thick ropes of mycal matter have covered the ground here completely. It's soft to the touch, but you sink into it, making moving across it difficult.", + "description": "Thick ropes of mycal matter have covered the ground here completely. It's soft to the touch, but not firm enough to hold any weight.", "symbol": "O", "bgcolor": "dark_gray", "move_cost_mod": -10, @@ -41,7 +41,7 @@ "type": "furniture", "id": "f_fungal_clump", "name": "fungal clump", - "description": "Alien mold and stems mingle tightly here, creating a sort of fungal bush.", + "description": "Alien mold and stems mingle tightly here, swaying around and weaving together, creating a sort of fungal bush.", "symbol": "#", "bgcolor": "light_gray", "move_cost_mod": 3, diff --git a/data/json/furniture_and_terrain/furniture-graves.json b/data/json/furniture_and_terrain/furniture-graves.json index 0e5a1893e744e..34c04fb89bb3e 100644 --- a/data/json/furniture_and_terrain/furniture-graves.json +++ b/data/json/furniture_and_terrain/furniture-graves.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_slab", "name": "stone slab", - "description": "A flat slab of heavy stone.", + "description": "A slab of heavy stone, with a reasonably flat surface.", "symbol": "n", "color": "dark_gray", "move_cost_mod": 2, @@ -23,7 +23,7 @@ "type": "furniture", "id": "f_grave_head", "name": "headstone", - "description": "Keeps the bodies.", + "description": "A large slab of stone, engraved with information on the deceased individual buried beneath. While only a solemn reminder of the uncountable losses of the Cataclysm, a proper final resting place grants an odd sense of peace.", "symbol": "_", "color": "light_gray", "move_cost_mod": 0, @@ -42,7 +42,7 @@ "type": "furniture", "id": "f_grave_stone", "name": "gravestone", - "description": "Keeps the bodies. More fancy.", + "description": "An upright slab of stone with information engraved on the face about whoever lies beneath. While only a solemn reminder of the countless casualties of the Cataclysm, a proper final resting place grants an odd sense of peace.", "symbol": "^", "color": "light_gray", "move_cost_mod": 2, @@ -62,7 +62,7 @@ "type": "furniture", "id": "f_grave_stone_old", "name": "worn gravestone", - "description": "A worn-out gravestone.", + "description": "An aged and eroded gravestone, damaged to the point of rendering the inscription illegible. Whoever's buried here was probably lucky enough to pass before all this chaos began.", "symbol": "^", "color": "dark_gray", "move_cost_mod": 2, @@ -81,7 +81,7 @@ "type": "furniture", "id": "f_grave_monument", "name": "obelisk", - "description": "Monument to pride.", + "description": "A magnificent carved statue with an engraved plaque fixed to the base. It serves to honor the passing of somebody significant, something one wishes was still a practical goal.", "symbol": "$", "color": "black_white", "move_cost_mod": -1, diff --git a/data/json/furniture_and_terrain/furniture-industrial.json b/data/json/furniture_and_terrain/furniture-industrial.json index 557b592f69b44..d1d94b09dc9bb 100644 --- a/data/json/furniture_and_terrain/furniture-industrial.json +++ b/data/json/furniture_and_terrain/furniture-industrial.json @@ -4,7 +4,7 @@ "id": "f_robotic_assembler", "name": "robotic assembler", "looks_like": "f_robotic_arm", - "description": "A durable and versatile robotic arm with a tool fitted to the end, for working on an assembly line.", + "description": "A durable and versatile robotic arm with a tool fitted to the end, for working on an assembly line. Despite its specialized purpose being all but lost now, it could provide a plethora of useful parts if disassembled.", "symbol": "3", "color": "magenta_cyan", "move_cost_mod": -1, @@ -46,7 +46,7 @@ { "type": "furniture", "id": "f_chemical_mixer", - "description": "When chemicals need to be mixed in large quantities at just the right combinations and temperatures, this is the tool for the job.", + "description": "A large vat with a motorized mixing device for combining large quantities of chemicals.", "name": "chemical mixer", "symbol": "0", "color": "red_green", @@ -82,7 +82,7 @@ "type": "furniture", "id": "f_robotic_arm", "name": "robotic arm", - "description": "Automation! Science! Industry! Make a better horse! This robot arm promises to do it all. Except it's currently unpowered. You could remove the casing and retrieve the electronics through disassembly.", + "description": "An automated robotic arm used in assembly lines, which appears to be more general-purpose than specially designed assemblers. Despite being functionless now, the parts could be useful.", "symbol": "&", "bgcolor": "yellow", "move_cost_mod": 3, diff --git a/data/json/furniture_and_terrain/furniture-medical.json b/data/json/furniture_and_terrain/furniture-medical.json index b13c6bf522ebe..294ffca2b19a1 100644 --- a/data/json/furniture_and_terrain/furniture-medical.json +++ b/data/json/furniture_and_terrain/furniture-medical.json @@ -4,7 +4,7 @@ "id": "f_autodoc", "name": "Autodoc Mk. XI", "symbol": "&", - "description": "A surgical apparatus used for installation and removal of bionics. It's only as skilled as its operator.", + "description": "A surgical apparatus used for installation and removal of bionics. The term name 'Autodoc' is something of a misnomer, as it can only operate if programmed beforehand, something that a plethora of labels warn against doing without expertise.", "color": "light_cyan", "looks_like": "f_robotic_arm", "move_cost_mod": -1, @@ -85,7 +85,7 @@ "type": "furniture", "id": "f_autoclave", "name": "autoclave", - "description": "This thing is basically an extremely high tech laundry machine or dishwasher. It steams things at temperatures that will kill almost anything.", + "description": "A device that can steam its contents at high enough tempuratures to completely sterilize them, killing any possible contaminants.", "symbol": "0", "color": "light_blue_white", "move_cost_mod": 3, @@ -129,7 +129,7 @@ "type": "furniture", "id": "f_autoclave_full", "name": "filled autoclave", - "description": "This thing is basically an extremely high tech laundry machine or dishwasher. It steams things at temperatures that will kill almost anything.", + "description": "A device that can steam its contents at high enough tempuratures to completely sterilize them, killing any possible contaminants.", "symbol": "0", "color": "light_blue_white", "move_cost_mod": 3, @@ -172,7 +172,7 @@ "type": "furniture", "id": "f_sample_freezer", "name": "sample freezer", - "description": "When cold just isn't cold enough, you have this extreme deep freeze. This will store stuff at -80 degrees Celsius. Don't lick the metal on the inside.", + "description": "A specialized freezer capable of maintaining tempuratures of -80 Celsieus, and is often used only for the preservation of delicate scientific samples.", "symbol": "[", "bgcolor": "white", "move_cost_mod": 2, @@ -305,7 +305,7 @@ "type": "furniture", "id": "f_shaker", "name": "shaker incubator", - "description": "A tool for keeping broth nicely mixed, at just the right temperature to grow bacteria. This is great for microbiology, but terrible for preserving food.", + "description": "A tool for keeping chemical broth nicely mixed, at just the right temperature to grow bacteria. Although, more bacteria is probably the last thing you need, considering the circumstances.", "symbol": "]", "color": "white_yellow", "move_cost_mod": 3, @@ -344,7 +344,7 @@ "type": "furniture", "id": "f_eyewash", "name": "emergency wash station", - "description": "This pole has a lot of weird nozzles and attachments. If there were running water, you could use those attachments to wash harmful chemicals out of your eyes, or to take a pleasant cold shower in a public place.", + "description": "A standing sink with a pair of nozzles, along with a large and brightly-colored handle. It is specially designed to quickly remove contaminants from the eyes, and is easily usable without being able to see very well. A sizable notice warns against drinking the water it uses.", "symbol": "u", "color": "green", "move_cost_mod": 1, @@ -376,7 +376,7 @@ "type": "furniture", "id": "f_IV_pole", "name": "IV pole", - "description": "This is basically just a stick on wheels with some hooks at the top.", + "description": "A tall wire frame on a set of small wheels used for holding an IV bag, useful for unattended administration.", "symbol": "I", "bgcolor": "white", "move_cost_mod": 0, @@ -402,7 +402,7 @@ "type": "furniture", "id": "f_HPLC", "name": "high performance liquid chromatographer", - "description": "This high-tech tool would, with electricity and an experienced user, be a very useful way to separate chemicals in a liquid or aqueous phase based on their affinity to a solid state medium in a tube. In other words, it's a fancy way to separate things.", + "description": "This high-tech tool would, with electricity and an experienced user, be a very useful way to separate chemicals in a liquid or aqueous phase, based on their affinity, to the stationary phase in a tube. At least, that's what the label says.", "symbol": ":", "color": "red_white", "move_cost_mod": -1, @@ -447,7 +447,7 @@ "type": "furniture", "id": "f_GC", "name": "gas chromatographer", - "description": "This high-tech tool would, with electricity and an experienced user, be a very useful way to separate chemicals in a gaseous phase based on their affinity to a solid state medium in a tube. In other words, it's a fancy way to separate things.", + "description": "This high-tech tool would, with electricity and an experienced user, be a very useful way to separate chemicals in a gaseous phase, based on their affinity, to a stationary phase in a tube. At least, that's what the label says.", "symbol": ":", "color": "blue_white", "move_cost_mod": -1, @@ -492,7 +492,7 @@ "type": "furniture", "id": "f_MS", "name": "mass spectrometer", - "description": "Inside this thing is a carefully balanced set of electric field generators that can precisely separate ionized particles based on their charge-to-mass ratio, firing them into a detector that measures the exact mass of the particle hitting it. On the outside, it looks like a very boring white box.", + "description": "Inside this large white box is a carefully balanced set of electric field generators that can precisely separate ionized particles based on their charge-to-mass ratio, firing them into a detector that measures the exact mass of the particle hitting it. Invaluable for chemical analysis and other advanced sciences, it's not as useful anymore.", "symbol": "-", "bgcolor": "white", "move_cost_mod": -1, @@ -533,7 +533,7 @@ "type": "furniture", "id": "f_NMR", "name": "nuclear magnetic resonance spectrometer", - "description": "This is a giant electromagnet in a kind of sci-fi looking housing. Somehow it can be used to wiggle molecular bonds or something, and from there, look at the deepest inner workings of chemical structures! Magnets: how do they work?", + "description": "This is a giant electromagnet with carefully tuned measurement equipment used to observe how magnetic fields affect nuclear spins. It is a common workhorse for the discovery and study of chemical structures.", "symbol": "M", "color": "white_cyan", "move_cost_mod": -1, @@ -573,7 +573,7 @@ "type": "furniture", "id": "f_electron_microscope", "name": "electron microscope", - "description": "An enormous tool for using electron reflections off a surface to see what very tiny things look like. Amazing for taking gross pictures of bugs.", + "description": "An enormous observational tool for studying the details of samples on an immensely small scale.", "symbol": "I", "bgcolor": "white", "move_cost_mod": -1, @@ -612,7 +612,7 @@ "type": "furniture", "id": "f_CTscan", "name": "CT scanner", - "description": "This giant donut can take hundreds of x-rays in rapid sequence, making a really cool looking picture of all your innards that have varying degrees of radio-opacity.", + "description": "A massive piece of machinery used to take hundreds of X-ray images from 360 degrees, often used for medical examinations of patients.", "symbol": "o", "bgcolor": "white", "move_cost_mod": 7, @@ -653,7 +653,7 @@ "type": "furniture", "id": "f_MRI", "name": "MRI machine", - "description": "This thing is really an NMR that you stick a person into, but people weren't excited about getting into a tiny hole in a loud machine called a 'nuclear magnetic resonance imager', so they changed it.", + "description": "A massive tool used to take NMR images of a patient placed inside, providing invaluable medical insight.", "symbol": "o", "bgcolor": "cyan", "move_cost_mod": 8, @@ -694,7 +694,7 @@ "type": "furniture", "id": "f_scan_bed", "name": "scanner bed", - "description": "This is a narrow, uncomfortable bed for putting someone into an imaging machine or other small hole.", + "description": "This is a narrow, flat, and frankly uncomfortable bed for putting someone into an imaging machine for medical observations.", "symbol": "I", "bgcolor": "white", "move_cost_mod": 4, @@ -729,7 +729,7 @@ "type": "furniture", "id": "f_anesthetic", "name": "anesthetic machine", - "description": "Keeping a person at just the right level of asleep to do surgery is hard. This machine helps an anesthesiologist keep the right mix of drugs and air to keep a patient asleep.", + "description": "A large machine with various tanks, tubes, and monitoring devices used to maintain precise levels of anesthesia in a patient to ensure they, at least ideally, remain asleep, unfeeling, but alive.", "symbol": "n", "color": "white_red", "move_cost_mod": -1, @@ -775,7 +775,7 @@ "type": "furniture", "id": "f_dialysis", "name": "dialysis machine", - "description": "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.", + "description": "A large machine for pumping and filtering the blood of somebody without the function of their kidneys. Largely obsolete for those with access to bionics, but a lifeline to those that need it.", "symbol": "8", "bgcolor": "white", "move_cost_mod": -1, @@ -819,7 +819,7 @@ "type": "furniture", "id": "f_ventilator", "name": "medical ventilator", - "description": "When they talk about the 'breathing machine' that you don't want to wind up stuck on, this is what they mean. It just looks like a couple boxes on a trolley.", + "description": "A sizable box on a set of wheels that will pump air in and out of a patient's lungs when they are incapable of breathing, though often only needed temporarily.", "symbol": "F", "color": "blue", "move_cost_mod": -1, diff --git a/data/json/furniture_and_terrain/furniture-migo.json b/data/json/furniture_and_terrain/furniture-migo.json index 8607fc67ca102..471df355ec15c 100644 --- a/data/json/furniture_and_terrain/furniture-migo.json +++ b/data/json/furniture_and_terrain/furniture-migo.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_alien_tendril", "name": "glowing tendril", - "description": "A willowy tendril growing from the floor, gently waving back and forth. A faint illumination spills from it.", + "description": "A willowy tendril growing from the floor, gently waving back and forth. A faint light spills from it.", "symbol": "i", "color": "blue", "move_cost_mod": 4, @@ -24,7 +24,7 @@ "type": "furniture", "id": "f_alien_anemone", "name": "wafting anemone", - "description": "A fleshy white protuberance growing from the floor, with a cluster of tendrils pouring out of it. It looks almost exactly like a sea anemone, even waving gently as though in the water.", + "description": "A fleshy white protuberance growing from the floor, with a cluster of tendrils pouring out of it. It looks almost exactly like a sea anemone, even waving gently as though underwater.", "symbol": "V", "color": "white", "move_cost_mod": 6, @@ -46,7 +46,7 @@ "type": "furniture", "id": "f_alien_gasper", "name": "gasping tube", - "description": "This is a meaty green stalactite with a thickened hide like that of a starfish, extending from the floor to the ceiling. In the center is a series of ports somewhat like mouths, from which pour bursts of a vile smelling gas.", + "description": "This is a meaty green stalactite with a thickened hide like that of a starfish, extending from the floor to the ceiling. In the center is a series of ports somewhat like mouths, from which pour bursts of a vile-smelling gas.", "symbol": "{", "color": "green", "move_cost_mod": 6, @@ -68,7 +68,7 @@ "type": "furniture", "id": "f_alien_zapper", "name": "twitching frond", - "description": "A spine like the antenna of a moth juts from the ground, swaying gently in the air. Every so often, a cascade of energy arcs along it and discharges into the ceiling.", + "description": "A spine resembling moth antennae juts from the ground, swaying gently in the air. Every so often, a cascade of energy arcs along it and discharges into the ceiling.", "symbol": "F", "color": "light_blue", "move_cost_mod": 4, @@ -83,7 +83,7 @@ "type": "furniture", "id": "f_alien_scar", "name": "scarred lump", - "description": "This is a pile of unidentified twitching alien flesh, belching strange gases out of injured vessels.", + "description": "This is a pile of nondescript alien flesh, twitching and belching strange gases out of injured orifices.", "symbol": "{", "color": "green", "move_cost_mod": 6, diff --git a/data/json/furniture_and_terrain/furniture-plumbing.json b/data/json/furniture_and_terrain/furniture-plumbing.json index f8f1790bc3bbb..630dbce5bc55e 100644 --- a/data/json/furniture_and_terrain/furniture-plumbing.json +++ b/data/json/furniture_and_terrain/furniture-plumbing.json @@ -4,7 +4,7 @@ "id": "f_bathtub", "name": "bathtub", "symbol": "~", - "description": "You could lay in and take a soothing bath, if there were running water. The plug is intact, so you could use it to store liquids.", + "description": "An ordinary ceramic tub, with a now-functionless steel faucet and a plug fixed over the drain. Watertight and relatively clean, it would make for a good water trough.", "color": "white", "move_cost_mod": 2, "coverage": 30, @@ -30,7 +30,7 @@ "id": "f_shower", "name": "shower", "symbol": "~", - "description": "You would be able to clean yourself if water was running.", + "description": "A small enclosed ceramic room with a glass door and plumbing fixtures for cleaning oneself. Before it was a commonplace amenity, but now it's hard to imagine wasting that much water.", "color": "white", "move_cost_mod": 0, "coverage": 35, @@ -56,7 +56,7 @@ "id": "f_sink", "name": "sink", "symbol": "&", - "description": "Emergency relief provider. Water isn't running, so it's basically useless.", + "description": "A porcelain water basin with a water tap and drain, designed to be fitted into an opening on a countertop.", "color": "white", "move_cost_mod": 2, "coverage": 60, @@ -80,7 +80,7 @@ "name": "toilet", "symbol": "&", "color": "white", - "description": "A porcelain throne. Emergency water source, from the tank, and provider of relief.", + "description": "An invaluable fixture in any home, it would be a miracle to have one that works. The standing tank may hold a moderate amount of water, but while better than anything that would be in the bowl, it would not be the cleanest.", "move_cost_mod": 2, "coverage": 30, "required_str": -1, @@ -99,7 +99,7 @@ "id": "f_water_heater", "name": "water heater", "looks_like": "f_standing_tank", - "description": "An insulated metal tank that holds water, kept to a temperature by a small gas flame.", + "description": "An insulated metal tank with a small fire used to maintain near-boiling temperatures. Now that there's no way to power it, the large tank could still be used to store large amounts of clean water.", "symbol": "0", "bgcolor": "white", "move_cost_mod": -1, @@ -145,7 +145,7 @@ "id": "f_water_purifier", "looks_like": "f_water_heater", "name": "water purifier", - "description": "This removes ions dissolved in the water, making it pretty clean, if you care about that kind of thing.", + "description": "This devices effectively sterilizes water, though without a lot of power and proper plumbing, it's only good for parts now.", "symbol": "W", "bgcolor": "blue", "move_cost_mod": -1, diff --git a/data/json/furniture_and_terrain/furniture-recreation.json b/data/json/furniture_and_terrain/furniture-recreation.json index c14f55d42165d..87ae45ae4cd6b 100644 --- a/data/json/furniture_and_terrain/furniture-recreation.json +++ b/data/json/furniture_and_terrain/furniture-recreation.json @@ -4,7 +4,7 @@ "id": "f_exercise", "name": "exercise machine", "symbol": "T", - "description": "Typically used for, well, exercising. You're getting quite enough of that; running for your life.", + "description": "A heavy set of weightlifting equipment for strength training, with a pair of heavy weights affixed to opposite ends of a sturdy pipe. The weights are huge, and using them without a spotter would be a good way to seriously injure yourself.", "color": "dark_gray", "move_cost_mod": 1, "coverage": 35, @@ -35,7 +35,7 @@ "type": "furniture", "id": "f_ball_mach", "name": "ball machine", - "description": "An unpowered machine that seems like it could've been used to launch various balls for different types of sports. It's only good for parts now if disassembled.", + "description": "A simple machine for launching sports balls of various types, with a pair of motorized wheels that, if spun up, would fling the ball at moderate speeds. Probably not the most effective ranged weapon against the undead.", "symbol": "T", "color": "dark_gray", "move_cost_mod": 1, @@ -54,7 +54,7 @@ "id": "f_pool_table", "name": "pool table", "symbol": "#", - "description": "A good-looking pool table. You wish you learned how to play.", + "description": "A large wooden table with green felt carpeting on top, and a set of symmetrical holes that carry billiards balls to an opening on one side. While not the most useful as a normal table, there is a substantial amount of wood.", "color": "green", "move_cost_mod": 2, "coverage": 50, @@ -85,7 +85,7 @@ "type": "furniture", "id": "f_dive_block", "name": "diving block", - "description": "Jump! Jump! Dive!", + "description": "A chunky plastic stool bolted onto the ground, intended as a safe way of diving forward into a body of water.", "symbol": "O", "color": "light_gray", "move_cost_mod": -1, @@ -103,7 +103,7 @@ "type": "furniture", "id": "f_target", "name": "target", - "description": "A metal shooting target in the rough shape of a human.", + "description": "A long sheet of metal held upright by a pipe frame, the sheet is cut in a roughly human shape. There are two bullseye targets painted onto it, a large one on the torso, and a smaller one on the head. It is peppered with small dents and holes, and a large amount of the paint has flaked or chipped off.", "symbol": "@", "color": "black", "move_cost_mod": 2, @@ -122,7 +122,7 @@ "type": "furniture", "id": "f_arcade_machine", "name": "arcade machine", - "description": "Play stupid games, win stupid prizes. That was the idea, anyway. Now, without power, it's just stupid. Smarter to disassemble for all kinds of useful electronic parts.", + "description": "A bulky upright arcade cabinet, brightly painted and slightyly worn with age. Useless for its intended purpose, it's bound to have valuable parts.", "symbol": "6", "color": "red", "move_cost_mod": -1, @@ -162,7 +162,7 @@ "type": "furniture", "id": "f_pinball_machine", "name": "pinball machine", - "description": "Most underrated game of the 20th century. Press buttons so the ball doesn't go in the hole. It doesn't seem to be working without electricity. Could be disassembled for various electronic parts.", + "description": "An iconic game, this machine has a brightly decorated background on its intricate obstacle course, which is covered by a long sheet of glass. While inoperable without power, it's still impressive to look at, though probably more useful if disassembled.", "symbol": "7", "color": "red", "move_cost_mod": -1, @@ -209,7 +209,7 @@ "type": "furniture", "id": "f_ergometer", "name": "ergometer", - "description": "An rowing exercise machine. Without power, it can no longer help you with your workout. Might have useful electronic parts in it.", + "description": "An exercise machine with a set of handles and plates meant to emulate rowing a boat. Without power it can't be operated, but it might have useful parts to be scavanged.", "symbol": "5", "color": "dark_gray", "move_cost_mod": 2, @@ -254,7 +254,7 @@ "type": "furniture", "id": "f_treadmill", "name": "treadmill", - "description": "Used for training leg muscles. It'll be extra hard without power. Could be taken apart for its… parts.", + "description": "A motorized conveyor belt with a control panel for running in place. Without power, it's an immense challenge to move the belt. Regardless, you're probably getting enough cardio on your own.", "symbol": "L", "color": "dark_gray", "move_cost_mod": 1, @@ -291,7 +291,7 @@ "alias": "f_floor_canvas", "looks_like": "f_floor_canvas", "name": "heavy punching bag", - "description": "Punch Punch! Exercise those arms! Main selling point: it doesn't fight back!", + "description": "A hefty leather bag in an oblong shape, suspended from a ceiling mount with a steel chain. It can be used for exercise and combat training, with the notable advantage that it doesn't fight back.", "symbol": "0", "color": "dark_gray", "move_cost_mod": -1, @@ -314,7 +314,7 @@ "type": "furniture", "id": "f_piano", "name": "piano", - "description": "The ol' ebony and ivory. Really classes up the place. You could take it apart if you wanted… you monster.", + "description": "An elegant piano, capable of producing beautiful music if used by a skilled player. A set of off-white and black keys all linked to a set of hammers, which strike their corresponding tightly-coiled wire to produce sound.", "symbol": "P", "color": "i_black", "move_cost_mod": 6, @@ -351,7 +351,7 @@ "type": "furniture", "id": "f_speaker_cabinet", "name": "speaker cabinet", - "description": "A cabinet loaded with 12-inch speakers, intended to help make various things loud. It can't serve its original purpose these days, but it could be disassembled for various electronic parts.", + "description": "An upright wood-panel case of large speakers, built to produce a potentially deafening volume level. While this is a terrible idea to use now, it could hold useful parts.", "symbol": "7", "color": "blue", "move_cost_mod": -1, @@ -390,7 +390,7 @@ "type": "furniture", "id": "f_dancing_pole", "name": "dancing pole", - "description": "Tall metal pole meant for dancing, attached on bottom and top.", + "description": "A tall steel pipe mounted vertically, securely fastened to the ceiling and floor. Usually used for various forms of dancing, often in adult-oriented venues.", "symbol": "i", "color": "light_gray", "move_cost_mod": -1, @@ -417,7 +417,7 @@ "id": "f_roulette_table", "name": "roulette table", "symbol": "#", - "description": "A big, scratched roulette table.", + "description": "A huge table specially made for a specific form of gambling, with a grid painted onto the felt top, and a concave spinning wheel intended to give a random selection of the inscribed possibilities.", "color": "green", "move_cost_mod": 2, "coverage": 50, diff --git a/data/json/furniture_and_terrain/furniture-regional-pseudo.json b/data/json/furniture_and_terrain/furniture-regional-pseudo.json index 3253c02c2ae90..42f9ced3c57c1 100644 --- a/data/json/furniture_and_terrain/furniture-regional-pseudo.json +++ b/data/json/furniture_and_terrain/furniture-regional-pseudo.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_region_flower", "name": "this should never actually show up, it's a pseudo furniture", - "description": "this should never actually show up, it's a pseudo furniture", + "description": "This is pseudo-furniture and should never actually show up. Please report this bug.", "symbol": " ", "color": "black", "move_cost_mod": 0, @@ -14,7 +14,7 @@ "type": "furniture", "id": "f_region_weed", "name": "this should never actually show up, it's a pseudo furniture", - "description": "this should never actually show up, it's a pseudo furniture", + "description": "This is pseudo-furniture and should never actually show up. Please report this bug.", "symbol": " ", "color": "black", "move_cost_mod": 0, @@ -25,7 +25,7 @@ "type": "furniture", "id": "f_region_water_plant", "name": "this should never actually show up, it's a pseudo furniture", - "description": "this should never actually show up, it's a pseudo furniture", + "description": "This is pseudo-furniture and should never actually show up. Please report this bug.", "symbol": " ", "color": "black", "move_cost_mod": 0, @@ -36,7 +36,7 @@ "type": "furniture", "id": "f_region_flower_decorative", "name": "this should never actually show up, it's a pseudo furniture", - "description": "this should never actually show up, it's a pseudo furniture", + "description": "This is pseudo-furniture and should never actually show up. Please report this bug.", "symbol": " ", "color": "black", "move_cost_mod": 0, diff --git a/data/json/furniture_and_terrain/furniture-roof.json b/data/json/furniture_and_terrain/furniture-roof.json index b9f6e25c30d33..e3fac6eb56ae9 100644 --- a/data/json/furniture_and_terrain/furniture-roof.json +++ b/data/json/furniture_and_terrain/furniture-roof.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_cellphone_booster", "name": "cell phone signal booster", - "description": "A cell phone signal booster, it may be useful for parts now.", + "description": "A specialized piece of equipment that receives phone signals and amplifies them to reach further destinations with more clarity. Now that there's no longer signals for them to boost, they're only good for parts.", "symbol": ":", "color": "white", "move_cost_mod": -2, @@ -37,7 +37,7 @@ "type": "furniture", "id": "f_small_satelitte_dish", "name": "satellite dish", - "description": "A small satellite dish for home entertainment.", + "description": "A small sheet metal disc designed to receive radio waves from orbital satellites. Satellites that will assuredly continue to orbit, with nothing to broadcast.", "symbol": "(", "color": "light_gray", "move_cost_mod": -2, @@ -56,7 +56,7 @@ "type": "furniture", "id": "f_chimney", "name": "chimney crown", - "description": "The top of a chimney, it looks sooty.", + "description": "The top of a brick chimney, the opening is stained black with soot. Definitely too narrow to fit in.", "symbol": "#", "color": "red", "move_cost_mod": 2, @@ -76,7 +76,7 @@ "type": "furniture", "id": "f_TV_antenna", "name": "TV antenna", - "description": "The television antenna improved reception for televisions.", + "description": "A simple metal antenna to increase the reception of non-cable television broadcasts. Almost wholly obsolete for years, only being good for parts isn't new for this item.", "symbol": "#", "color": "light_gray", "move_cost_mod": 2, @@ -101,7 +101,7 @@ "type": "furniture", "id": "f_vent_pipe", "name": "vent pipe", - "description": "The plumbing vent pipe removes gas and odors from the building.", + "description": "A sort of chimney spout for a building's internal ventilation system, this can be used for circulation, venting fumes, and other such functions.", "symbol": "|", "color": "dark_gray", "move_cost_mod": 2, @@ -121,7 +121,7 @@ "type": "furniture", "id": "f_roof_turbine_vent", "name": "roof turbine vent", - "description": "The turbine uses wind power to suck hot and humid air out of the attic.", + "description": "A rotary wind turbine that will catch the wind and pull out air from inside. It is most commonly used for improving air cicrulation, particularly in poorly-ventilated areas like attics.", "symbol": "&", "color": "light_gray", "move_cost_mod": 2, diff --git a/data/json/furniture_and_terrain/furniture-rural.json b/data/json/furniture_and_terrain/furniture-rural.json index 9b0a20108942f..9d298e5fc0fb7 100644 --- a/data/json/furniture_and_terrain/furniture-rural.json +++ b/data/json/furniture_and_terrain/furniture-rural.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_hay", "name": "bale of hay", - "description": "A bale of hay. You could sleep on it, if desperate.", + "description": "A massive packed-together block of hay, it makes for easy storage of straw for livestock. If your only other option is the floor, it makes a tolerable bed.", "symbol": "#", "bgcolor": "brown", "move_cost_mod": 3, @@ -25,7 +25,7 @@ "id": "f_woodchips", "name": "pile of woodchips", "symbol": "X", - "description": "Pile of chipped wood pieces. You can move it with a shovel.", + "description": "A large mound of piled wood chips. Unpleasant to lay on, hard to walk through, and a large fire hazard, it's probably best to shovel it out of the way.", "color": "brown", "move_cost_mod": 6, "max_volume": "750 L", diff --git a/data/json/furniture_and_terrain/furniture-seats.json b/data/json/furniture_and_terrain/furniture-seats.json index ebf8c8b4b0292..6ccae0c950855 100644 --- a/data/json/furniture_and_terrain/furniture-seats.json +++ b/data/json/furniture_and_terrain/furniture-seats.json @@ -4,7 +4,7 @@ "id": "f_bench", "name": "bench", "symbol": "#", - "description": "Hobo bed. Airy. Use at your own risk.", + "description": "A simple bench with wood slats nailed to a frame. While uncomfortably flat and just as cold as the ground, it could serve as a bed if needed.", "color": "brown", "move_cost_mod": 1, "coverage": 35, @@ -27,7 +27,7 @@ "id": "f_armchair", "name": "arm chair", "symbol": "H", - "description": "A more comfortable way of sitting down.", + "description": "A simple upholstered chair with armrests. Soft and fairly warm, it definitely beats the ground for sleeping on, though not by much.", "color": "green", "move_cost_mod": 1, "coverage": 45, @@ -59,7 +59,7 @@ "//": "Used in airliner.json, it yields short rope as a seatbelt", "looks_like": "f_armchair", "symbol": "H", - "description": "An airplane seat with a seatbelt.", + "description": "A cheaply upholstered folding airplane seat, it has a simple across-the-lap seatbelt. You likely wouldn't be the first to sleep in this.", "color": "light_gray", "move_cost_mod": 1, "coverage": 45, @@ -87,7 +87,7 @@ "id": "f_chair", "name": "chair", "symbol": "#", - "description": "Sit down, have a drink.", + "description": "A simple wooden chair, with four legs, a seat, and a back. It's nice to rest your feet for once, and if coupled with a suitable table, you could eat a meal properly and almost pretend that things were normal again.", "color": "brown", "move_cost_mod": 1, "coverage": 40, @@ -110,7 +110,7 @@ "id": "f_sofa", "name": "sofa", "symbol": "H", - "description": "Lie down OR sit down! Perfect!", + "description": "A wide upholstered bench, large enough for two people to comfortably sit alongside one another, or one person to lay back on. It's not quite a bed, but it's a hell of a lot more comfortable than the floor.", "bgcolor": "red", "move_cost_mod": 1, "coverage": 60, @@ -140,7 +140,7 @@ "name": "stool", "symbol": "#", "looks_like": "f_chair", - "description": "Sit down, have a drink.", + "description": "A simple stool, with four legs and a seat. While it's a touch more maneuverable to sit on, the lack of back support means it's significantly less comfortable than a normal chair.", "color": "brown", "move_cost_mod": 1, "coverage": 30, @@ -163,7 +163,7 @@ "name": "camp chair", "symbol": "#", "looks_like": "f_chair", - "description": "Sit down, have a drink. It can folded for easy transportation.", + "description": "A somewhat uncomfortable folding chair, with fabric strung across a metal frame. Not the best, but better than nothing, and a lot easier to pack up.", "color": "brown", "move_cost_mod": 1, "coverage": 35, @@ -181,7 +181,7 @@ "id": "f_logstool", "name": "log stool", "symbol": "#", - "description": "A log tipped on its end with any rough edges cut off. Basically a very simple seat.", + "description": "A short section from a tree trunk with one of the flat ends smoothed down. Makes for a decent place to sit, but not quite a real chair.", "color": "brown", "move_cost_mod": 1, "coverage": 40, @@ -205,7 +205,7 @@ "id": "f_deckchair", "name": "deck chair", "symbol": "#", - "description": "A comfortable deck chair for sunbathing. If only you had time for that.", + "description": "A folding deck chair with fabric sheets mounted to a wooden frame. While it's built to take outdoor conditions and is an improvement over the ground, it's not particularly comfortable.", "color": "brown", "move_cost_mod": 1, "coverage": 30, diff --git a/data/json/furniture_and_terrain/furniture-signs.json b/data/json/furniture_and_terrain/furniture-signs.json index 3a0f39db47b05..d99d00f4560e2 100644 --- a/data/json/furniture_and_terrain/furniture-signs.json +++ b/data/json/furniture_and_terrain/furniture-signs.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_bulletin", "name": "bulletin board", - "description": "A big, cork bulletin board capable of sporting various notices. Pin some notes for other survivors to read.", + "description": "A wide wooden frame with a sheet of corkboard inside. Good for pinning various notices for other survivors to read.", "symbol": "6", "color": "blue", "move_cost_mod": -1, @@ -29,7 +29,7 @@ "id": "f_sign", "name": "sign", "symbol": "P", - "description": "Read it. Warnings ahead.", + "description": "A simple signpost made of wood. Basically two planks alongside each other nailed to another plank that holds them up.", "color": "brown", "examine_action": "sign", "move_cost_mod": 1, @@ -50,7 +50,7 @@ "id": "f_sign_warning", "name": "warning sign", "symbol": "P", - "description": "A triangle-shaped sign on a post meant to indicate something important or hazard.", + "description": "A triangular signpost painted white with a red border. Designed to easily catch the eye, signs of this nature seldom display anything but bad news.", "color": "red", "examine_action": "sign", "looks_like": "f_sign", diff --git a/data/json/furniture_and_terrain/furniture-sleep.json b/data/json/furniture_and_terrain/furniture-sleep.json index 5519ee674eb72..dcc61880cf075 100644 --- a/data/json/furniture_and_terrain/furniture-sleep.json +++ b/data/json/furniture_and_terrain/furniture-sleep.json @@ -4,7 +4,7 @@ "id": "f_bed", "name": "bed", "symbol": "#", - "description": "This is a bed. A luxury in these times. Quite comfortable to sleep in.", + "description": "A standard mattress on a sturdy wooden frame. Even without blankets or pillows, and despite being a completely ordinary mattress, it's a sight for sore, tired eyes.", "color": "magenta", "move_cost_mod": 3, "coverage": 40, @@ -33,7 +33,7 @@ "name": "bunk bed", "symbol": "#", "looks_like": "f_bed", - "description": "A wooden bunk bed with mattresses for two people.", + "description": "A bunk bed with a sturdy wooden frame built to hold two single-person mattresses above one another. While these usually mean sleeping closer than you'd like to somebody you wouldn't normally want to share a mattress with, a bed's a bed.", "color": "magenta", "move_cost_mod": 6, "coverage": 40, @@ -63,7 +63,7 @@ "id": "f_bed_frame", "name": "bed frame", "symbol": "#", - "description": "This is an empty bed frame. With a mattress on it, it would be a nice place to sleep. Sleeping on it right now wouldn't be great.", + "description": "A sturdy wooden bed frame built to hold most standard mattresses. Despite being one half of a bed, it's just about impossible to lay on by itself.", "color": "brown", "move_cost_mod": 4, "coverage": 40, @@ -86,7 +86,7 @@ "type": "furniture", "id": "f_floor_mattress", "name": "mattress", - "description": "A comfortable mattress has been tossed on the floor for sleeping here. It's not quite as comfy as a real bed, but it's pretty close.", + "description": "An ordinary mattress left on the floor. While it's not as comfortable as an entire bed without the mattress, it's pretty close. If it's someplace actually safe to sleep, it's practically a luxury in of itself.", "symbol": "0", "color": "magenta", "move_cost_mod": 3, @@ -110,7 +110,7 @@ "type": "furniture", "id": "f_down_mattress", "name": "down mattress", - "description": "A comfortable feather down mattress has been tossed on the floor for sleeping here. It's not quite as comfy as a real bed, but it's pretty close.", + "description": "A squishy feather-stuffed mattress left on the floor. While it's not as comfortable as an entire bed without the mattress, it's pretty close. If it's someplace actually safe to sleep, it's practically a luxury in of itself.", "symbol": "0", "color": "magenta", "move_cost_mod": 3, @@ -135,7 +135,7 @@ "id": "f_makeshift_bed", "name": "makeshift bed", "symbol": "#", - "description": "Not as comfortable as a real bed, but it will suffice.", + "description": "An improvised mattress on a flimsy wooden frame. Almost as good as a normal bed, albeit with a slightly lumpy mattress. Considering the circumstances, it's not too bad at all.", "color": "magenta", "move_cost_mod": 3, "coverage": 40, @@ -164,7 +164,7 @@ "id": "f_straw_bed", "name": "straw bed", "symbol": "#", - "description": "Kinda itches when you lay on it.", + "description": "An improvised bedding pile made of hay. Better than nothing, but not particularly comfortable, and quite itchy.", "color": "magenta", "move_cost_mod": 3, "coverage": 35, diff --git a/data/json/furniture_and_terrain/furniture-storage.json b/data/json/furniture_and_terrain/furniture-storage.json index 56d7179002850..2c13322251517 100644 --- a/data/json/furniture_and_terrain/furniture-storage.json +++ b/data/json/furniture_and_terrain/furniture-storage.json @@ -4,7 +4,7 @@ "id": "f_bookcase", "name": "bookcase", "symbol": "{", - "description": "Stores books. Y'know, those things. Who reads books anymore?", + "description": "A simple wooden shelf for storing dozens of books. While designed for books, it does a decent job of storing anything else that'll fit.", "color": "brown", "move_cost_mod": -1, "coverage": 80, @@ -31,7 +31,7 @@ "id": "f_entertainment_center", "name": "entertainment center", "symbol": "{", - "description": "Stores audio visual equipment, books and collectibles.", + "description": "While not quite as cool by itself as the name might imply, this large wooden cabinet can store a variety of things, like a TV and media systems, with shelving space and cupboards for anything that'll fit.", "color": "brown", "looks_like": "f_bookcase", "move_cost_mod": -1, @@ -60,7 +60,7 @@ "id": "f_coffin_c", "name": "coffin", "looks_like": "f_coffin_o", - "description": "Holds the bodies of the countless killed in the Cataclysm.", + "description": "A humble wooden casket for the respectful burial of the dead. While a standard practice before this all happened, it is now a rare honor for one to be given a proper final resting place. An honor that countless many will likely never receive.", "symbol": "0", "bgcolor": "brown", "move_cost_mod": -1, @@ -104,7 +104,7 @@ "type": "furniture", "id": "f_coffin_o", "name": "open coffin", - "description": "You can only hope you'll look good enough for one of these, when the time comes.", + "description": "A humble wooden casket for the respectful burial of the dead. While a standard practice before this all happened, it is now a rare honor for one to be given a proper final resting place. This one is open and unoccupied, and gazing inside fills you with a sense of melancholic weariness.", "symbol": "O", "bgcolor": "brown", "move_cost_mod": -1, @@ -137,7 +137,7 @@ "type": "furniture", "id": "f_crate_c", "name": "crate", - "description": "What's inside? Pry it open to find out! Or just smash it, but you might break the contents.", + "description": "A sealed wooden storage container. Lacking any labels, it could hold just about anything inside. If you don't have a proper tool to pry it open, smashing it is an option, albeit one that risks destroying the contents.", "symbol": "X", "bgcolor": "brown", "move_cost_mod": -1, @@ -170,7 +170,7 @@ "type": "furniture", "id": "f_crate_o", "name": "open crate", - "description": "What's inside? Look in it!", + "description": "An open wooden storage box, capable of holding any number of things. The lid has been pried off and is leaned adjacent to it, and with a fresh set of nails, could be sealed back shut.", "symbol": "O", "bgcolor": "brown", "move_cost_mod": -1, @@ -193,7 +193,7 @@ "id": "f_cardboard_box", "name": "large cardboard box", "symbol": "X", - "description": "A large cardboard box: this could be used to store things, or as a hiding place.", + "description": "A large box made of a brown paper-based material. Could contain a number of things, or even be hidden inside. Considering it only has two small flaps for carrying, it's very hard to see out of, and won't do anything to protect you if you're found.", "color": "brown", "move_cost_mod": 7, "coverage": 90, @@ -228,7 +228,7 @@ "id": "f_dresser", "name": "dresser", "symbol": "{", - "description": "Dress yourself for the zombie prom, or other occasions.", + "description": "A simple wooden cabinet with a column of short drawers. While intended for storing clothes, there's nothing stopping you from storing whatever fits.", "color": "brown", "move_cost_mod": -1, "coverage": 70, @@ -252,7 +252,7 @@ "name": "glass front cabinet", "symbol": "[", "looks_like": "f_display_rack", - "description": "A tall storage cabinet with a clear glass window.", + "description": "A tall metal cabinet with a sheet of glass across the front for viewing the contents. Often used for displaying rare, visually pleasing, or otherwise valuable goods, it's odd that it doesn't have a lock.", "color": "light_gray", "move_cost_mod": -1, "coverage": 30, @@ -286,7 +286,7 @@ "type": "furniture", "id": "f_gunsafe_ml", "name": "gun safe", - "description": "Oooooohhhh. Shiny.", + "description": "A large and heavy container with thick metal walls and a rotary combination lock, this is designed to securely store firearms, weapon mods, and ammunition. If you had something to listen close with and a hell of a lot of time, you could probably crack it.", "symbol": "X", "color": "light_gray", "move_cost_mod": -1, @@ -312,7 +312,7 @@ "id": "f_gunsafe_mj", "name": "jammed gun safe", "looks_like": "f_gunsafe_ml", - "description": "Does it have guns in it? You won't find out. It's jammed.", + "description": "A heavy and durable metal safe for storing firearms and ammunition. Unfortunately, the lock is completely broken, and short of some pretty serious machinery, you have no possible way of opening it.", "symbol": "X", "color": "light_gray", "move_cost_mod": -1, @@ -337,7 +337,7 @@ "id": "f_gun_safe_el", "name": "electronic gun safe", "looks_like": "f_gunsafe_ml", - "description": "Can you hack it open to get the firearms?", + "description": "A large and heavy container with thick metal walls and an electronic locking system, this is designed to securely store firearms, weapon mods, and ammunition. If you had some way of hacking into it, you could probably crack it open.", "symbol": "X", "color": "light_gray", "move_cost_mod": -1, @@ -363,7 +363,7 @@ "id": "f_locker", "name": "locker", "symbol": "{", - "description": "Usually used for storing equipment or items.", + "description": "A tall sheet metal cabinet, useful for storing just about anything that'll fit.", "color": "light_gray", "move_cost_mod": -1, "coverage": 90, @@ -395,7 +395,7 @@ "id": "f_mailbox", "name": "mailbox", "symbol": "P", - "description": "A metal box attached to the top of a wooden post. Mail delivery hasn't come for awhile. Doesn't look like it's coming again anytime soon.", + "description": "A small metal box on top of a wooden post, designed to receive mail deliveries. Although considering the circumstances, it will likely never see proper use again.", "color": "light_gray", "move_cost_mod": 1, "required_str": -1, @@ -423,7 +423,7 @@ "id": "f_clothing_rail", "name": "clothing rail", "looks_like": "f_rack", - "description": "A rail for hanging clothes on.", + "description": "A metal frame on a set of wheels used for hanging large amounts of clothes. Usually used in theater or retail environments, it's easy to use and quick to access.", "symbol": "{", "color": "light_gray", "move_cost_mod": -1, @@ -456,7 +456,7 @@ "type": "furniture", "id": "f_rack", "name": "display rack", - "description": "Display your items.", + "description": "A sheet metal shelving unit, with the storage surfaces angled in such a way as to show off the items stored.", "symbol": "{", "color": "light_gray", "move_cost_mod": -1, @@ -489,7 +489,7 @@ "id": "f_rack_wood", "name": "wooden rack", "symbol": "{", - "description": "A simple wooden rack. Display your items on it.", + "description": "A wooden shelving unit with angled storage surfaces designed to show off whatever is stored on it.", "color": "brown", "move_cost_mod": -1, "coverage": 70, @@ -516,7 +516,7 @@ "type": "furniture", "id": "f_rack_coat", "name": "coat rack", - "description": "A hooked rack for hanging jackets and hats.", + "description": "A tall wooden pole with a set of hooks used to store outdoor jackets and hats to allow easy access.", "symbol": "Y", "color": "brown", "move_cost_mod": -1, @@ -537,7 +537,7 @@ "type": "furniture", "id": "f_recycle_bin", "name": "recycle bin", - "description": "Stores items for recycling.", + "description": "A large plastic bin painted green with a 'recycle' symbol emblazoned on it. While intended to store discarded things to be processed back into a factory, the drastic change in priorities as of late means that these may hold valuable materials.", "symbol": "{", "color": "light_green", "move_cost_mod": -1, @@ -558,7 +558,7 @@ "id": "f_safe_c", "name": "safe", "looks_like": "f_gunsafe_ml", - "description": "Holds items. Securely.", + "description": "A small, heavy, and near-unbreachable metal box with a rotary combination lock. Although, this isn't actually locked, just closed.", "symbol": "X", "color": "light_gray", "move_cost_mod": -1, @@ -586,7 +586,7 @@ "name": "safe", "looks_like": "f_safe_c", "symbol": "X", - "description": "What needs protection like this?", + "description": "A small, heavy, and near-unbreachable metal box with a rotary combination lock. With something to listen really closely and a hell of a lot of time, you might be able to crack it.", "color": "light_gray", "move_cost_mod": -1, "coverage": 30, @@ -611,7 +611,7 @@ "id": "f_safe_o", "name": "open safe", "looks_like": "f_safe_c", - "description": "Grab the firearms!", + "description": "A small, heavy, and near-unbreachable metal box with a rotary combination lock, albeit significantly less secure with the door open.", "symbol": "O", "color": "light_gray", "move_cost_mod": -1, @@ -637,7 +637,7 @@ "id": "f_trashcan", "name": "trash can", "symbol": "&", - "description": "One man's trash is another man's dinner.", + "description": "A plastic bin for storing discarded waste as to be disposed of later. Although, considering the circumstances, it might be worth seeing what's inside.", "color": "light_cyan", "move_cost_mod": 1, "required_str": 5, @@ -656,7 +656,7 @@ "id": "f_wardrobe", "name": "wardrobe", "looks_like": "f_dresser", - "description": "A tall piece of furniture - basically a freestanding closet.", + "description": "A very large wooden cabinet for storing clothes, effectively an upright closet. Could technically be used to store anything else that would fit, though.", "symbol": "{", "color": "i_brown", "move_cost_mod": -1, @@ -686,7 +686,7 @@ "id": "f_filing_cabinet", "name": "filing cabinet", "looks_like": "f_rack", - "description": "A set of drawers in a sturdy metal cabinet, used to hold files. It can be locked to protect important information. If you're lucky, there are often keys nearby.", + "description": "A rack of metal drawers designed to hold various files and paperwork. Paperwork that has more than likely lost all worth or value by now.", "symbol": "}", "color": "dark_gray", "move_cost_mod": 2, @@ -715,7 +715,7 @@ "name": "utility shelf", "symbol": "{", "looks_like": "f_rack", - "description": "A simple heavy-duty plastic and metal shelving unit.", + "description": "A simple heavy-duty plastic and metal shelving unit, intended to store tools and materials for easy access to workers.", "color": "light_gray", "move_cost_mod": -1, "coverage": 55, @@ -746,7 +746,7 @@ "type": "furniture", "id": "f_warehouse_shelf", "name": "warehouse shelf", - "description": "A large, sturdy shelf made of metal for storing pallets and crates in warehouses.", + "description": "A huge, sturdy steel shelf for storing pallets of crates in warehouses.", "symbol": "{", "looks_like": "f_utility_shelf", "color": "light_gray", @@ -780,7 +780,7 @@ "id": "f_wood_keg", "name": "wooden keg", "looks_like": "f_standing_tank", - "description": "A keg made mostly of wood. Holds liquids, preferably alcoholic.", + "description": "A large standing wooden barrel, completely watertight. Good for storing liquids of all kinds or fermenting alcohol.", "symbol": "H", "color": "brown", "move_cost_mod": -1, @@ -818,7 +818,7 @@ "id": "f_displaycase", "name": "display case", "looks_like": "f_rack", - "description": "Display your stuff fancily and securely.", + "description": "A secure wooden case at about waist-height, with glass panelling on the top. Useful for storing valuable things while still showing them off. Not actually as secure as it looks, as the display windows are easily broken.", "symbol": "#", "color": "light_cyan", "move_cost_mod": 2, @@ -841,7 +841,7 @@ "id": "f_displaycase_b", "name": "broken display case", "looks_like": "f_rack", - "description": "Display your stuff. It'll get stolen.", + "description": "A secure wooden case at about waist-height, with glass panelling on the top. Would be useful for storing valuable things while still showing them off, if the glass hadn't been shattered. Careful not to cut yourself when looting.", "symbol": "#", "color": "light_gray", "move_cost_mod": 2, @@ -860,7 +860,7 @@ "type": "furniture", "id": "f_standing_tank", "name": "standing tank", - "description": "A large freestanding metal tank, useful for holding liquids.", + "description": "A huge metal tank that can be used to safely store large amounts of liquid.", "symbol": "O", "color": "light_gray", "move_cost_mod": -1, @@ -882,7 +882,7 @@ "type": "furniture", "id": "f_dumpster", "name": "dumpster", - "description": "Stores trash. Doesn't get picked up anymore. Note the smell.", + "description": "A large metal dumpster that will likely not be getting picked up by the city's waste management any time soon. Despite the unpleasant nature of climbing inside, it could make for a viable hiding spot.", "symbol": "{", "color": "green", "move_cost_mod": 3, @@ -905,7 +905,7 @@ "type": "furniture", "id": "f_butter_churn", "name": "butter churn", - "description": "A pedal driven butter churn.", + "description": "A metal tube with a built-in mixer for making butter. Rather than needing electricity, it is pedal-driven, allowing use without power.", "symbol": "H", "color": "light_cyan", "crafting_pseudo_item": "butter_churn", diff --git a/data/json/furniture_and_terrain/terrain-manufactured.json b/data/json/furniture_and_terrain/terrain-manufactured.json index 1b4b47f6de95e..a25bb63a2cc99 100644 --- a/data/json/furniture_and_terrain/terrain-manufactured.json +++ b/data/json/furniture_and_terrain/terrain-manufactured.json @@ -24,27 +24,6 @@ ] } }, - { - "type": "terrain", - "id": "t_gas_pump", - "name": "gasoline pump", - "looks_like": "t_machinery_heavy", - "description": "Precious GASOLINE. The former world bowed to their petroleum god as it led them to their ruin. There's plenty left over to fuel your inner road warrior. If this gas dispenser doesn't give up the goods for free, you may have to pay at a nearby terminal.", - "symbol": "&", - "color": "red", - "move_cost": 0, - "coverage": 65, - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "SEALED", "CONTAINER", "REDUCE_SCENT", "PERMEABLE" ], - "examine_action": "gaspump", - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "clang!", - "ter_set": "t_gas_pump_smashed", - "items": [ { "item": "scrap", "count": 1 } ] - } - }, { "type": "terrain", "id": "t_gas_tank", @@ -90,6 +69,27 @@ ] } }, + { + "type": "terrain", + "id": "t_gas_pump", + "name": "gasoline pump", + "looks_like": "t_machinery_heavy", + "description": "Precious GASOLINE. The former world bowed to their petroleum god as it led them to their ruin. There's plenty left over to fuel your inner road warrior. If this gas dispenser doesn't give up the goods for free, you may have to pay at a nearby terminal.", + "symbol": "&", + "color": "red", + "move_cost": 0, + "coverage": 65, + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "SEALED", "CONTAINER", "REDUCE_SCENT", "PERMEABLE" ], + "examine_action": "gaspump", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "clang!", + "ter_set": "t_gas_pump_smashed", + "items": [ { "item": "scrap", "count": 1 } ] + } + }, { "type": "terrain", "id": "t_gas_pump_a", @@ -129,6 +129,51 @@ ] } }, + { + "type": "terrain", + "id": "t_diesel_tank", + "name": "fuel tank", + "description": "A tank filled with diesel.", + "looks_like": "f_standing_tank", + "symbol": "Q", + "color": "brown_green", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "SEALED", "CONTAINER", "REDUCE_SCENT" ], + "bash": { + "str_min": 40, + "str_max": 100, + "explosive": 40, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_diesel_tank_smashed" + } + }, + { + "type": "terrain", + "id": "t_diesel_tank_smashed", + "name": "broken fuel tank", + "description": "A broken tank which was filled with diesel.", + "looks_like": "f_wreckage", + "symbol": "Q", + "color": "light_green", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "REDUCE_SCENT" ], + "bash": { + "str_min": 40, + "str_max": 100, + "explosive": 40, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pavement", + "items": [ + { "item": "steel_lump", "count": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 7 ] } + ] + } + }, { "type": "terrain", "id": "t_diesel_pump", @@ -150,6 +195,28 @@ "items": [ { "item": "scrap", "count": 1 } ] } }, + { + "type": "terrain", + "id": "t_diesel_pump_a", + "name": "diesel pump", + "description": "This is a diesel fuel pump. This roadside attraction provides all the thick, gloopy liquid POWER you need to move your sensibly oversized APOCOLYPTIC SUPERTRUCK from point A to points beyond. If it doesn't dispense fuel immediately, try banging on it or grunt your way over the nearby payment terminal.", + "//": "clone of t_diesel_pump, but other color, must be clone every time", + "symbol": "&", + "color": "yellow_red", + "looks_like": "t_gas_pump_a", + "move_cost": 0, + "coverage": 65, + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "SEALED", "CONTAINER", "REDUCE_SCENT", "PERMEABLE" ], + "examine_action": "gaspump", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "clang!", + "ter_set": "t_diesel_pump_smashed", + "items": [ { "item": "scrap", "count": 1 } ] + } + }, { "type": "terrain", "id": "t_diesel_pump_smashed", @@ -295,7 +362,7 @@ "sound": "metal screeching!", "sound_fail": "clang!", "ter_set": "t_missile_exploded", - "items": [ { "item": "scrap", "count": [ 4, 8 ] }, { "item": "plut_cell", "charges": [ 0, 3 ] } ] + "items": [ { "item": "scrap", "count": [ 4, 8 ] }, { "item": "plutonium", "charges": [ 0, 3 ] } ] } }, { @@ -701,14 +768,13 @@ "items": [ { "item": "scrap", "count": [ 4, 16 ] }, { "item": "steel_chunk", "count": [ 1, 6 ] }, - { "item": "plut_cell", "charges": [ 0, 3 ] }, + { "item": "plutonium", "charges": [ 0, 3 ] }, { "item": "lead", "charges": [ 12, 18 ] } ] }, "deconstruct": { "ter_set": "t_concrete", "items": [ - { "item": "minireactor", "prob": 25 }, { "item": "RAM", "count": [ 4, 8 ] }, { "item": "cable", "charges": [ 8, 16 ] }, { "item": "small_lcd_screen", "count": [ 2, 4 ] }, @@ -717,7 +783,7 @@ { "item": "circuit", "count": [ 6, 10 ] }, { "item": "power_supply", "count": [ 4, 8 ] }, { "item": "amplifier", "count": [ 3, 6 ] }, - { "item": "plut_cell", "charges": [ 2, 8 ] }, + { "item": "plutonium", "charges": [ 2, 8 ] }, { "item": "scrap", "count": [ 8, 16 ] } ] } diff --git a/data/json/harvest.json b/data/json/harvest.json index 3b5e5a3985ebd..ff13b39e5fea7 100644 --- a/data/json/harvest.json +++ b/data/json/harvest.json @@ -187,6 +187,18 @@ { "drop": "demihuman_fat", "type": "flesh", "mass_ratio": 0.07 } ] }, + { + "id": "demihuman", + "//": "drops regular stomach, has no fur", + "type": "harvest", + "entries": [ + { "drop": "demihuman_flesh", "type": "flesh", "mass_ratio": 0.34 }, + { "drop": "demihuman_stomach", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "demihuman_fat", "type": "flesh", "mass_ratio": 0.07 } + ] + }, { "id": "demihuman_large_fur", "//": "drops large stomach", @@ -435,59 +447,79 @@ { "id": "arachnid_tainted", "type": "harvest", + "message": "", "entries": [ { "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.33 }, + { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, + { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } ] }, { "id": "acidant_queen", "type": "harvest", - "message": "You laboriously dissect the colossal insect.", + "message": "You laboriously dissect the colossal insect. ", "entries": [ { "drop": "mutant_meat", "base_num": [ 40, 55 ], "scale_num": [ 0.5, 0.7 ], "max": 80, "type": "flesh" }, { "drop": "acidchitin_piece", "base_num": [ 2, 6 ], "scale_num": [ 0.3, 0.6 ], "max": 10, "type": "bone" }, - { "drop": "sweetbread", "base_num": [ 3, 4 ], "scale_num": [ 0.4, 0.6 ], "max": 8, "type": "offal" }, + { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, { "drop": "mutant_fat", "base_num": [ 5, 8 ], "scale_num": [ 0.6, 0.8 ], "max": 18, "type": "flesh" } ] }, { "id": "arachnid", "type": "harvest", + "message": "", "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.33 }, { "drop": "mutant_fat", "type": "flesh", "mass_ratio": 0.04 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, + { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } ] }, { "id": "arachnid_acid", "type": "harvest", + "message": "", "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.33 }, { "drop": "mutant_fat", "type": "flesh", "mass_ratio": 0.04 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, + { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, { "drop": "acidchitin_piece", "type": "bone", "mass_ratio": 0.1 } ] }, { "id": "arachnid_bee", - "//": "todo: add stinger here and remove drops from death", "type": "harvest", + "message": "What appeared to be insect hairs on the chitin of this creature look more like tiny feathers as you pare them back. Inside is a bundle of bubble-like tissue sacs that appear to be floating, which doesn't fit with what you know about real bees.", "entries": [ - { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.33 }, + { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.23 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, + { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "mutant_bug_hydrogen_sacs", "type": "flesh", "mass_ratio": 0.1 }, + { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, + { "drop": "bee_sting", "base_num": [ 0, 1 ], "type": "bone" }, { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } ] }, { "id": "arachnid_wasp", - "//": "todo: add stinger here and remove drops from death", "type": "harvest", + "message": "There's a faintly hairy, skin-like membrane, covered in blood vessels, beneath the chitin of this creature. Inside it is a bundle of bubble-like tissue sacs that appear to be floating, which doesn't fit with what you know about real wasps.", "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.33 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, + { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "mutant_bug_hydrogen_sacs", "type": "flesh", "mass_ratio": 0.1 }, + { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, + { "drop": "wasp_sting", "base_num": [ 0, 1 ], "type": "bone" }, { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } ] }, @@ -556,7 +588,7 @@ { "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.25 }, { "drop": "fat_tainted", "type": "flesh", "mass_ratio": 0.08 }, { "drop": "bone_tainted", "type": "bone", "mass_ratio": 0.1 }, - { "drop": "kevlar_plate", "type": "skin", "mass_ratio": 0.015 }, + { "drop": "sheet_kevlar", "type": "skin", "mass_ratio": 0.24 }, { "drop": "pheromone", "type": "bionic", "max": 1 } ] }, diff --git a/data/json/item_actions.json b/data/json/item_actions.json index b8310a1150a8d..676f98f7f623d 100644 --- a/data/json/item_actions.json +++ b/data/json/item_actions.json @@ -26,7 +26,7 @@ }, { "type": "item_action", - "id": "picklock", + "id": "PICK_LOCK", "name": { "str": "Pick a lock" } }, { diff --git a/data/json/itemgroups/Clothing_Gear/clothing.json b/data/json/itemgroups/Clothing_Gear/clothing.json index 9a27735dcecb5..2fbd985965b90 100644 --- a/data/json/itemgroups/Clothing_Gear/clothing.json +++ b/data/json/itemgroups/Clothing_Gear/clothing.json @@ -120,6 +120,10 @@ { "item": "webbing_belt" }, { "distribution": [ { "item": "socks", "prob": 10 }, { "item": "socks_wool", "prob": 90 } ] }, { "item": "boots_combat" }, + { + "collection": [ { "distribution": [ { "item": "balclava", "prob": 90 }, { "item": "balaclava_cut_resistant", "prob": 10 } ] } ], + "prob": 25 + }, { "distribution": [ { "collection": [ { "item": "sports_bra" }, { "item": "boy_shorts" } ] }, @@ -367,7 +371,8 @@ "entries": [ { "item": "gloves_leather", "prob": 30 }, { "item": "gloves_rubber", "prob": 10 }, - { "item": "gloves_work", "prob": 60 } + { "item": "gloves_work", "prob": 60 }, + { "item": "gloves_cut_resistant", "prob": 10 } ] }, { @@ -446,6 +451,10 @@ [ "mask_filter", 30 ], [ "glasses_safety", 30 ], [ "ear_plugs", 35 ], + [ "apron_cut_resistant", 5 ], + [ "gloves_cut_resistant", 10 ], + [ "chaps_cut_resistant", 5 ], + [ "armguard_cut_resistant", 5 ], [ "apron_leather", 10 ], [ "tool_belt", 30 ], [ "knee_pads", 20 ], @@ -1825,6 +1834,24 @@ [ "sneakers", 70 ] ] }, + { + "type": "item_group", + "subtype": "distribution", + "id": "eod_armor", + "entries": [ + { + "collection": [ + { "item": "helmet_eod" }, + { "item": "jacket_eod" }, + { "item": "trousers_eod" }, + { "item": "foot_protectors_eod" }, + { "item": "gloves_eod", "prob": 20 } + ], + "prob": 100 + }, + { "collection": [ { "item": "jacket_eod_light" }, { "item": "trousers_eod_light" } ], "prob": 20 } + ] + }, { "type": "item_group", "id": "mil_armor", diff --git a/data/json/itemgroups/Clothing_Gear/gear.json b/data/json/itemgroups/Clothing_Gear/gear.json index 0dfa98f2ea509..5ee14c38c1ce9 100644 --- a/data/json/itemgroups/Clothing_Gear/gear.json +++ b/data/json/itemgroups/Clothing_Gear/gear.json @@ -17,6 +17,8 @@ [ "helmet_lobster", 5 ], [ "helmet_riot", 5 ], [ "holo_sight", 20 ], + [ "balclava", 10 ], + [ "balaclava_cut_resistant", 5 ], [ "holster", 15 ], [ "bandolier_shotgun", 15 ], [ "torso_bandolier_shotgun", 8 ], diff --git a/data/json/itemgroups/Food/food.json b/data/json/itemgroups/Food/food.json index 11e08b18ac8d2..71c41f107b53e 100644 --- a/data/json/itemgroups/Food/food.json +++ b/data/json/itemgroups/Food/food.json @@ -83,6 +83,7 @@ "entries": [ { "item": "yeast", "prob": 50 }, { "item": "sugar", "prob": 40 }, + { "item": "artificial_sweetener", "prob": 10 }, { "item": "sprinkles", "prob": 5 }, { "item": "salt", "prob": 40 }, { "item": "pepper", "prob": 30 }, @@ -213,6 +214,7 @@ { "item": "toastem3", "prob": 35 }, { "item": "toasterpastryfrozen", "prob": 20 }, { "item": "sugar", "prob": 20 }, + { "item": "artificial_sweetener", "prob": 5 }, { "item": "lemonade_powder", "prob": 5 }, { "item": "molasses", "prob": 10 }, { "item": "can_cheese", "prob": 40 }, diff --git a/data/json/itemgroups/Locations_MapExtras/locations.json b/data/json/itemgroups/Locations_MapExtras/locations.json index 3379cf2e87a4a..45f39d464f4f8 100644 --- a/data/json/itemgroups/Locations_MapExtras/locations.json +++ b/data/json/itemgroups/Locations_MapExtras/locations.json @@ -42,6 +42,7 @@ { "group": "ammo_swat", "prob": 20 }, { "group": "guns_swat", "prob": 20 }, { "group": "mags_swat", "prob": 20 }, + { "group": "eod_armor", "prob": 20 }, { "item": "survnote", "prob": 1 } ] }, @@ -646,6 +647,7 @@ [ "glowstick_dead", 15 ], { "item": "cash_card", "prob": 5, "charges-min": 5, "charges-max": 5000 }, [ "id_science", 3 ], + [ "sandbox_kit", 5 ], [ "ear_spool", 15 ], { "item": "lighter", "prob": 35, "charges-min": 0, "charges-max": 15 }, [ "funnel", 25 ], @@ -1823,7 +1825,9 @@ [ "radio_car_box", 3 ], [ "radiocontrol", 10 ], [ "scots_cookbook", 1 ], + [ "scots_tailor", 1 ], [ "eclipse_glasses", 1 ], + [ "sandbox_kit", 1 ], [ "dnd_handbook", 1 ], [ "balloon", 5 ] ] diff --git a/data/json/itemgroups/Locations_MapExtras/locations_commercial.json b/data/json/itemgroups/Locations_MapExtras/locations_commercial.json index f515e02965eb0..943a5f6f246ee 100644 --- a/data/json/itemgroups/Locations_MapExtras/locations_commercial.json +++ b/data/json/itemgroups/Locations_MapExtras/locations_commercial.json @@ -11,7 +11,6 @@ { "group": "tobacco_products", "prob": 161 }, { "item": "sponge", "prob": 10 }, { "group": "ammo_pocket_batteries_full", "prob": 50 }, - { "item": "rm99_pistol", "prob": 1 }, { "item": "rm103a_pistol", "prob": 1 }, { "item": "rm228", "prob": 2 }, { "item": "vibrator", "prob": 3 }, @@ -97,6 +96,7 @@ [ "pockknife", 15 ], [ "metal_file", 15 ], [ "pin_reamer", 10 ], + [ "sandbox_kit", 5 ], [ "survival_kit", 5 ] ] }, @@ -236,6 +236,9 @@ [ "sleeveless_duster", 5 ], [ "sleeveless_duster_leather", 5 ], [ "sleeveless_duster_fur", 5 ], + [ "apron_cut_resistant", 2 ], + [ "chaps_cut_resistant", 5 ], + [ "balaclava_cut_resistant", 5 ], [ "gold_watch", 15 ], [ "silver_watch", 20 ], [ "sf_watch", 7 ], @@ -1148,7 +1151,7 @@ [ "flour", 30 ], [ "milk_powder", 30 ], [ "powder_eggs", 10 ], - [ "egg_bird", 10 ], + [ "egg_bird_unfert", 10 ], [ "cooking_oil", 20 ], [ "irradiated_apple", 5 ], [ "irradiated_banana", 5 ], @@ -1775,7 +1778,7 @@ [ "medical_tape", 35 ], [ "blood", 5 ], [ "vaccine_shot", 15 ], - [ "anesthetic_kit", 20 ] + { "item": "anesthetic_kit", "prob": 10, "charges-min": 0 } ] }, { @@ -1862,7 +1865,7 @@ { "item": "shed_stick", "prob": 2 }, [ "tailors_kit", 9 ], [ "knitting_needles", 15 ], - [ "kevlar_plate", 10 ], + [ "sheet_kevlar_layered", 10 ], [ "leather", 10 ], [ "rag", 20 ], [ "needle_curved", 10 ], @@ -1883,5 +1886,10 @@ [ "recipe_fauxfur", 5 ], [ "textbook_tailor", 3 ] ] + }, + { + "type": "item_group", + "id": "gunshop_accessories", + "items": [ [ "powered_earmuffs", 50 ], [ "ear_plugs", 80 ] ] } ] diff --git a/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json b/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json index a096774419bba..688e2c2e0d4dd 100644 --- a/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json +++ b/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json @@ -93,10 +93,14 @@ [ "portable_game", 60 ], [ "bat", 60 ], [ "backpack", 40 ], - [ "pockknife", 20 ], + [ "pockknife", 5 ], [ "wristwatch", 20 ], [ "teleumbrella", 5 ], { "group": "kids_books", "prob": 155 }, + { "group": "games", "prob": 170 }, + [ "frisbee", 40 ], + [ "disc_golf", 40 ], + [ "magic_8_ball", 30 ], [ "novel_pulp", 20 ], [ "folding_bicycle", 5 ], [ "sunglasses", 25 ], @@ -105,7 +109,11 @@ [ "wolfsuit", 5 ], [ "dinosuit", 5 ], [ "gum", 10 ], + [ "baseball", 40 ], + [ "football", 40 ], + [ "basketball", 50 ], [ "talking_doll", 50 ], + [ "marble", 60 ], [ "creepy_doll", 1 ], [ "jedi_cloak", 5 ], [ "clown_suit", 5 ], diff --git a/data/json/itemgroups/Locations_MapExtras/mansion.json b/data/json/itemgroups/Locations_MapExtras/mansion.json index e7705bbab6b77..bc492ce670458 100644 --- a/data/json/itemgroups/Locations_MapExtras/mansion.json +++ b/data/json/itemgroups/Locations_MapExtras/mansion.json @@ -660,16 +660,21 @@ "magazine": 100, "subtype": "distribution", "items": [ - [ "bat_nerf", 100 ], - [ "marble", 60 ], + [ "bat_nerf", 70 ], + [ "marble", 50 ], [ "talking_doll", 50 ], - [ "basketball", 50 ], - [ "fc_hairpin", 50 ], - { "group": "kids_books", "prob": 170 }, - [ "backpack", 40 ], - [ "baseball", 40 ], - [ "football", 40 ], + [ "basketball", 30 ], + [ "fc_hairpin", 30 ], + { "group": "kids_books", "prob": 170, "count": [ 1, 4 ] }, + { "group": "games", "prob": 170, "count": [ 1, 2 ] }, + [ "backpack", 20 ], + [ "baseball", 30 ], + [ "football", 20 ], + [ "frisbee", 40 ], + [ "disc_golf", 20 ], + [ "radio_car_box", 10 ], [ "orangesoda", 30 ], + [ "magic_8_ball", 10 ], [ "hairpin", 30 ], [ "purple_drink", 20 ], [ "candy", 20 ], @@ -677,6 +682,7 @@ [ "rock", 10 ], [ "bat", 10 ], [ "creepy_doll", 3 ], + [ "portable_game", 5 ], [ "whistle", 3 ] ] }, diff --git a/data/json/itemgroups/Locations_MapExtras/map_extras.json b/data/json/itemgroups/Locations_MapExtras/map_extras.json index f0d6fa2f00a5d..cb0abda1164e4 100644 --- a/data/json/itemgroups/Locations_MapExtras/map_extras.json +++ b/data/json/itemgroups/Locations_MapExtras/map_extras.json @@ -27,6 +27,7 @@ { "group": "hatstore_hats", "damage-min": 1, "damage-max": 4, "prob": 40 }, { "group": "college_camping", "prob": 50 }, { "group": "college_camping", "prob": 80 }, + { "group": "SUS_book_nonf_soft", "prob": 20 }, { "item": "corpse", "damage": 3 } ] }, @@ -43,6 +44,7 @@ { "group": "hatstore_hats", "damage-min": 1, "damage-max": 4, "prob": 40 }, { "group": "college_sports", "prob": 50 }, { "group": "college_sports", "prob": 90 }, + { "group": "SUS_book_sports", "prob": 30 }, { "item": "corpse", "damage": 3 } ] }, @@ -59,6 +61,7 @@ { "group": "hatstore_hats", "damage-min": 1, "damage-max": 4, "prob": 40 }, { "group": "college_lake", "prob": 50 }, { "group": "college_lake", "prob": 70 }, + { "group": "SUS_book_nonf_soft", "prob": 25 }, { "item": "corpse", "damage": 3 } ] }, diff --git a/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_advtech.json b/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_advtech.json index 422c6279b1d75..088f4783150ae 100644 --- a/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_advtech.json +++ b/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_advtech.json @@ -15,7 +15,7 @@ { "item": "steel_chunk", "prob": 30 }, { "item": "spring", "prob": 50 }, { "item": "steel_lump", "prob": 30 }, - { "item": "kevlar_plate", "prob": 10 }, + { "item": "sheet_kevlar_layered", "prob": 10 }, { "item": "ceramic_armor", "prob": 15 }, { "item": "motor", "prob": 2 }, { "group": "ammo_heavy_batteries_full", "prob": 50 }, @@ -60,7 +60,7 @@ "entries": [ { "item": "baton", "prob": 8 }, { "item": "tazer", "prob": 3 }, - { "item": "kevlar_plate", "prob": 10 }, + { "item": "sheet_kevlar_layered", "prob": 10 }, { "item": "ceramic_armor", "prob": 15 }, { "item": "tonfa", "prob": 10 }, { "item": "shocktonfa_off", "prob": 5 }, @@ -83,12 +83,6 @@ "subtype": "distribution", "entries": [ { "item": "9mm", "prob": 8 } ] }, - { - "type": "item_group", - "id": "laserturret", - "subtype": "distribution", - "entries": [ { "item": "cerberus_laser", "prob": 1 } ] - }, { "type": "item_group", "id": "turret_rifle", diff --git a/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json b/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json index 95aabaecb20a2..2ff16832415d1 100644 --- a/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json +++ b/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json @@ -94,24 +94,12 @@ "subtype": "distribution", "entries": [ { "item": "biollante_bud", "prob": 1 } ] }, - { - "type": "item_group", - "id": "bees", - "subtype": "distribution", - "entries": [ { "item": "bee_sting", "prob": 5 } ] - }, { "type": "item_group", "id": "fungal_sting", "subtype": "distribution", "entries": [ { "item": "fighter_sting", "prob": 5 } ] }, - { - "type": "item_group", - "id": "wasps", - "subtype": "distribution", - "entries": [ { "item": "wasp_sting", "prob": 5 } ] - }, { "type": "item_group", "id": "vault_wanderer", diff --git a/data/json/itemgroups/SUS/domestic.json b/data/json/itemgroups/SUS/domestic.json index 09d2688803a11..c7d93b0b641d9 100644 --- a/data/json/itemgroups/SUS/domestic.json +++ b/data/json/itemgroups/SUS/domestic.json @@ -103,24 +103,26 @@ { "item": "pliers", "prob": 60 }, { "item": "flashlight", "prob": 75 }, { "item": "hammer", "prob": 75 }, - { "item": "permanent_marker", "prob": 75 }, - { "item": "permanent_marker", "prob": 40 }, + { "item": "permanent_marker", "prob": 75, "charges-min": 50 }, + { "item": "permanent_marker", "prob": 40, "charges-min": 50 }, { "item": "paper", "prob": 55 }, - { "item": "light_battery_cell", "count": [ 1, 2 ], "prob": 85 }, + { "item": "light_battery_cell", "count": [ 1, 2 ], "prob": 85, "charges-min": 1 }, { "item": "battery_charger", "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": "duct_tape", "prob": 40, "charges": [ 25, 400 ], "container-item": "box_small" }, { "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 }, + { "item": "candle", "prob": 75, "charges-min": 10 }, { "item": "RPG_die", "prob": 10 }, { "item": "metal_RPG_die", "prob": 1 }, - { "distribution": [ { "item": "matches" }, { "item": "lighter" } ], "prob": 90 } + { + "distribution": [ { "item": "matches", "charges-min": 1 }, { "item": "lighter", "charges-min": 1 } ], + "prob": 90 + } ] }, { @@ -184,7 +186,7 @@ "//2": "This group is for the cleaning materials under a kitchen sink.", "subtype": "collection", "entries": [ - { "item": "detergent", "count": [ 1, 2 ] }, + { "item": "detergent", "charges": [ 1, 40 ], "container-item": "box_small" }, { "item": "rag", "count": [ 1, 6 ] }, { "item": "towel", "count": [ 1, 3 ] }, { "item": "brush" }, @@ -317,7 +319,11 @@ "entries": [ { "group": "fresh_produce", "count": [ 1, 8 ], "prob": 50 }, { - "distribution": [ { "item": "milk", "prob": 94 }, { "item": "almond_milk", "prob": 3 }, { "item": "soy_milk", "prob": 3 } ], + "distribution": [ + { "item": "milk", "charges-min": 1, "prob": 94 }, + { "item": "almond_milk", "charges-min": 1, "prob": 3 }, + { "item": "soy_milk", "charges-min": 1, "prob": 3 } + ], "prob": 95 }, { "group": "ketchup_sealed_rng", "prob": 85 }, @@ -331,7 +337,7 @@ { "item": "yoghurt", "prob": 80 }, { "item": "butter", "prob": 80 }, { "item": "pudding", "prob": 30 }, - { "item": "egg_bird", "prob": 85, "count-min": 1, "count-max": 12 }, + { "item": "egg_bird_unfert", "prob": 85, "count-min": 1, "count-max": 12 }, { "item": "bacon", "prob": 25 }, { "distribution": [ { "item": "lunchmeat", "prob": 60 }, { "item": "bologna", "prob": 40 }, { "item": "tofu", "prob": 30 } ], @@ -594,6 +600,7 @@ { "item": "cinnamon", "prob": 75 }, { "item": "chilly-p", "prob": 75 }, { "item": "sugar", "prob": 15 }, + { "item": "artificial_sweetener", "prob": 5 }, { "item": "curry_powder", "prob": 25 }, { "item": "sprinkles", "prob": 10 }, { "item": "thyme", "prob": 65 }, @@ -612,8 +619,8 @@ { "item": "soap_holder", "prob": 40 }, { "item": "razor_shaving", "count": [ 1, 2 ], "prob": 20 }, { "item": "cotton_ball", "prob": 50 }, - { "item": "bleach", "prob": 15 }, - { "item": "ammonia", "prob": 20 }, + { "item": "bleach", "prob": 15, "charges-min": 1 }, + { "item": "ammonia", "prob": 20, "charges-min": 1 }, { "item": "string_floss", "count": [ 1, 2 ], "prob": 60 }, { "item": "toothbrush_plain", "count": [ 1, 3 ], "prob": 45 } ] @@ -630,23 +637,59 @@ "prob": 95 }, { "item": "eyedrops", "prob": 15 }, - { "item": "pepto", "prob": 70 }, - { "item": "inhaler", "prob": 25 }, + { "item": "pepto", "prob": 70, "charges-min": 1, "container-item": "bottle_plastic_small" }, + { "item": "inhaler", "prob": 25, "charges-min": 10, "charges-max": 100 }, { "item": "pills_sleep", "prob": 10 }, - { "distribution": [ { "item": "nyquil", "prob": 60 }, { "item": "dayquil", "prob": 20 } ], "prob": 50 }, + { + "distribution": [ { "item": "nyquil", "prob": 60, "charges-min": 1 }, { "item": "dayquil", "prob": 20, "charges-min": 1 } ], + "prob": 50 + }, { "distribution": [ - { "item": "vitamins", "prob": 60 }, - { "item": "gummy_vitamins", "prob": 20 }, - { "item": "calcium_tablet", "prob": 10 } + { "item": "vitamins", "prob": 60, "charges-min": 1, "charges-max": 40, "container-item": "bottle_plastic_small" }, + { + "item": "gummy_vitamins", + "prob": 20, + "charges-min": 1, + "charges-max": 20, + "container-item": "bottle_plastic_small" + }, + { + "item": "calcium_tablet", + "prob": 10, + "charges-min": 1, + "charges-max": 40, + "container-item": "bottle_plastic_small" + } ], "prob": 80 }, { - "distribution": [ { "item": "weak_antibiotic", "prob": 40 }, { "item": "antibiotics", "prob": 10 } ], + "distribution": [ + { "item": "weak_antibiotic", "prob": 40, "charges-min": 1, "charges-max": 20, "container-item": "bottle_plastic_small" }, + { + "item": "antibiotics", + "prob": 10, + "charges-min": 1, + "charges-max": 20, + "container-item": "bottle_plastic_small" + } + ], "prob": 10 }, - { "distribution": [ { "item": "antifungal", "prob": 60 }, { "item": "antiparasitic", "prob": 20 } ], "prob": 5 } + { + "distribution": [ + { "item": "antifungal", "prob": 60, "charges-min": 1, "charges-max": 10, "container-item": "bottle_plastic_small" }, + { + "item": "antiparasitic", + "prob": 20, + "charges-min": 1, + "charges-max": 10, + "container-item": "bottle_plastic_small" + } + ], + "prob": 5 + } ] }, { @@ -689,18 +732,24 @@ "entries": [ { "item": "soap", "count": [ 1, 4 ], "prob": 70 }, { - "distribution": [ { "item": "razor_shaving", "count": [ 1, 2 ], "prob": 50 }, { "item": "shavingkit", "prob": 50 } ], + "distribution": [ + { "item": "razor_shaving", "count": [ 1, 2 ], "prob": 50 }, + { "item": "shavingkit", "charges-min": 0, "charges-max": 10, "prob": 50 } + ], "prob": 75 }, { "distribution": [ { "item": "bandages", "prob": 60 }, { "item": "medical_gauze", "prob": 20 }, { "item": "1st_aid", "prob": 10 } ], "prob": 20 }, - { "item": "disinfectant", "prob": 40 }, - { "item": "chem_hydrogen_peroxide", "prob": 50 }, + { "item": "disinfectant", "prob": 40, "charges-min": 1 }, + { "item": "chem_hydrogen_peroxide", "prob": 50, "charges-min": 1 }, { "item": "mirror", "prob": 25 }, { "item": "sponge", "count": [ 1, 3 ], "prob": 75 }, - { "collection": [ { "item": "candle", "count": [ 1, 2 ] }, { "item": "matches" } ], "prob": 20 }, + { + "collection": [ { "item": "candle", "count": [ 1, 2 ], "charges-min": 10 }, { "item": "matches", "charges-min": 1 } ], + "prob": 20 + }, { "item": "toilet_paper", "prob": 80 }, { "item": "towel", "count": [ 1, 2 ], "prob": 75 } ] diff --git a/data/json/itemgroups/SUS/library.json b/data/json/itemgroups/SUS/library.json index 7987f94d9ceec..a30bc763b6391 100644 --- a/data/json/itemgroups/SUS/library.json +++ b/data/json/itemgroups/SUS/library.json @@ -10,7 +10,8 @@ { "item": "manual_tailor", "count": [ 1, 4 ], "prob": 80 }, { "item": "textbook_tailor", "count": [ 1, 4 ], "prob": 80 }, { "item": "tailor_portfolio", "prob": 20 }, - { "item": "tailor_japanese", "prob": 10 } + { "item": "tailor_japanese", "prob": 10 }, + { "item": "scots_tailor", "prob": 10 } ] }, { @@ -107,7 +108,8 @@ { "item": "textbook_gaswarfare", "count": [ 1, 2 ], "prob": 40 }, { "item": "textbook_chemistry", "count": [ 1, 4 ], "prob": 90 }, { "item": "textbook_extraction", "count": [ 1, 2 ], "prob": 60 }, - { "item": "adv_chemistry", "count": [ 1, 4 ], "prob": 70 } + { "item": "adv_chemistry", "count": [ 1, 4 ], "prob": 70 }, + { "item": "basic_chemistry", "count": [ 1, 3 ], "prob": 70 } ] }, { @@ -189,22 +191,17 @@ "//2": "This group is for a set of novels.", "subtype": "collection", "entries": [ - { "group": "SUS_book_fict", "count": [ 3, 10 ], "prob": 100 }, - { "item": "novel_sports", "count": [ 1, 5 ], "prob": 80 }, - { "item": "novel_samurai", "count": [ 1, 5 ], "prob": 80 }, + { "group": "SUS_book_fict", "count": [ 4, 22 ], "prob": 400 }, { "item": "novel_war", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_adventure", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_experimental", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_road", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_buddy", "count": [ 1, 5 ], "prob": 80 }, - { "item": "novel_scifi", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_drama", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_mystery", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_fantasy", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_erotic", "count": [ 1, 5 ], "prob": 80 }, - { "item": "novel_pulp", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_thriller", "count": [ 1, 5 ], "prob": 80 }, - { "item": "novel_coa", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_crime", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_horror", "count": [ 1, 5 ], "prob": 80 }, { "item": "novel_tragedy", "count": [ 1, 5 ], "prob": 80 } @@ -239,13 +236,27 @@ "subtype": "distribution", "entries": [ { "group": "SUS_book_fict", "prob": 1 }, { "group": "SUS_book_nonf", "prob": 1 } ] }, + { + "id": "SUS_book_sports", + "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": "Returns one book about sports. It may be hard or soft cover, fiction or nonfiction", + "subtype": "distribution", + "entries": [ + { "group": "SUS_book_fict_soft_sports", "prob": 1 }, + { "group": "SUS_book_fict_hard_sports", "prob": 1 }, + { "group": "SUS_book_nonf_soft_sports", "prob": 1 }, + { "group": "SUS_book_nonf_hard_sports", "prob": 1 }, + { "group": "SUS_book_nonf_zine_sport", "prob": 1 } + ] + }, { "id": "SUS_book_fict", "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 single book of any fiction.", "subtype": "distribution", - "entries": [ { "group": "SUS_book_fict_soft", "prob": 1 } ] + "entries": [ { "group": "SUS_book_fict_soft", "prob": 8 }, { "group": "SUS_book_fict_hard", "prob": 1 } ] }, { "id": "SUS_book_fict_soft", @@ -254,14 +265,47 @@ "//2": "This group is for a single paperback book of any fiction.", "subtype": "distribution", "entries": [ + { "group": "SUS_book_fict_soft_pulp", "prob": 1 }, { "group": "SUS_book_fict_soft_romc", "prob": 1 }, { "group": "SUS_book_fict_soft_ya", "prob": 1 }, { "group": "SUS_book_fict_soft_west", "prob": 1 }, { "group": "SUS_book_fict_soft_satire", "prob": 1 }, { "group": "SUS_book_fict_soft_swash", "prob": 1 }, + { "group": "SUS_book_fict_soft_sports", "prob": 1 }, + { "group": "SUS_book_fict_soft_scifi", "prob": 1 }, { "group": "SUS_book_fict_soft_spy", "prob": 1 } ] }, + { + "id": "SUS_book_fict_hard", + "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 single hardback novel.", + "subtype": "distribution", + "entries": [ + { "group": "SUS_book_fict_hard_scifi", "prob": 4 }, + { "group": "SUS_book_fict_hard_sports", "prob": 4 }, + { "group": "SUS_book_fict_hard_ya", "prob": 4 }, + { "item": "novel_samurai", "prob": 1 } + ] + }, + { + "id": "SUS_book_fict_soft_pulp", + "type": "item_group", + "//": "Returns a single pulp fiction genre dimestore novel.", + "subtype": "distribution", + "entries": [ + { "item": "book_fict_soft_pulp_venus", "prob": 2 }, + { "item": "book_fict_soft_pulp_wtmrw", "prob": 2 }, + { "item": "book_fict_soft_pulp_nogod", "prob": 2 }, + { "item": "book_fict_soft_pulp_ddive", "prob": 2 }, + { "item": "book_fict_soft_pulp_squids", "prob": 2 }, + { "item": "book_fict_soft_pulp_flashcc", "prob": 2 }, + { "item": "book_fict_soft_pulp_gcapes", "prob": 2 }, + { "item": "book_fict_soft_pulp_yesmurd", "prob": 2 }, + { "item": "novel_pulp", "prob": 1 } + ] + }, { "id": "SUS_book_fict_soft_west", "type": "item_group", @@ -279,6 +323,37 @@ { "item": "book_fict_soft_west_vride", "prob": 1 } ] }, + { + "id": "SUS_book_fict_soft_scifi", + "type": "item_group", + "//2": "This returns a single paperback fictional scifi book.", + "subtype": "distribution", + "//3": "satire_cats and pulp_ddive are both dual genre scifi", + "entries": [ + { "item": "novel_scifi", "prob": 4 }, + { "item": "book_fict_soft_scifi_brave", "prob": 1 }, + { "item": "book_fict_soft_scifi_f451", "prob": 1 }, + { "item": "book_fict_soft_scifi_roadp", "prob": 1 }, + { "item": "book_fict_soft_scifi_cybrd", "prob": 1 }, + { "item": "book_fict_soft_scifi_dune", "prob": 1 }, + { "item": "book_fict_soft_scifi_zamwe", "prob": 1 }, + { "item": "book_fict_soft_satire_cats", "prob": 1 }, + { "item": "book_fict_soft_pulp_ddive", "prob": 1 } + ] + }, + { + "id": "SUS_book_fict_soft_sports", + "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 returns a single paperback fictional sports book.", + "subtype": "distribution", + "entries": [ + { "item": "novel_sports", "prob": 1 }, + { "item": "book_fict_soft_sports_bunt", "prob": 1 }, + { "item": "book_fict_soft_sports_tdsp", "prob": 1 }, + { "item": "book_fict_soft_sports_envy", "prob": 1 } + ] + }, { "id": "SUS_book_fict_soft_swash", "type": "item_group", @@ -297,7 +372,7 @@ "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 single paperback book of the romance genre.", - "//3": "This id is book singular. Not to be confused w plural SUS_books_fict_soft_romc", + "//3": "This id is book singular. Not to be confused w the collection item_group plural SUS_books_fict_soft_romc", "subtype": "distribution", "entries": [ { "item": "novel_romance", "prob": 1 }, @@ -328,7 +403,8 @@ { "item": "book_fict_soft_ya_pbbr", "prob": 1 }, { "item": "book_fict_soft_ya_rwya", "prob": 1 }, { "item": "book_fict_soft_ya_sboy", "prob": 1 }, - { "item": "book_fict_soft_ya_sumv", "prob": 1 } + { "item": "book_fict_soft_ya_sumv", "prob": 1 }, + { "item": "novel_coa", "prob": 1 } ] }, { @@ -358,6 +434,43 @@ { "item": "novel_spy_rocketsci", "prob": 1 } ] }, + { + "id": "SUS_book_fict_hard_scifi", + "type": "item_group", + "//2": "This returns a single hardback fictional scifi book.", + "subtype": "distribution", + "entries": [ + { "item": "book_fict_hard_scifi_dune", "prob": 2 }, + { "item": "book_fict_hard_scifi_talnt", "prob": 2 }, + { "item": "book_fict_hard_scifi_zamwe", "prob": 2 }, + { "item": "book_fict_hard_scifi_fifth", "prob": 1 } + ] + }, + { + "id": "SUS_book_fict_hard_sports", + "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 returns a single hardback fictional sports book.", + "subtype": "distribution", + "entries": [ + { "item": "book_fict_hard_sports_semi", "prob": 1 }, + { "item": "book_fict_hard_sports_omni", "prob": 1 }, + { "item": "book_fict_hard_sports_uni", "prob": 1 } + ] + }, + { + "id": "SUS_book_fict_hard_ya", + "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 returns a single hardback book for young adults and teens.", + "subtype": "distribution", + "entries": [ + { "item": "book_fict_hard_ya_dark", "prob": 3 }, + { "item": "book_fict_hard_ya_btwo", "prob": 3 }, + { "item": "novel_coa2", "prob": 3 }, + { "item": "book_fict_hard_sports_uni", "prob": 2 } + ] + }, { "id": "SUS_book_nonf", "type": "item_group", @@ -377,11 +490,13 @@ "//2": "Returns a single nonfiction book that is hard bound. Note that this may or may not be a skill training book.", "subtype": "distribution", "entries": [ - { "group": "SUS_book_nonf_hard_dodge", "prob": 1 }, - { "group": "SUS_book_nonf_hard_spirit", "prob": 1 }, - { "group": "SUS_book_nonf_hard_homemk", "prob": 1 }, - { "group": "SUS_book_nonf_hard_psych", "prob": 1 }, - { "group": "SUS_book_nonf_hard_arch", "prob": 1 } + { "group": "SUS_book_nonf_hard_dodge", "prob": 10 }, + { "group": "SUS_book_nonf_hard_spirit", "prob": 10 }, + { "group": "SUS_book_nonf_hard_homemk", "prob": 10 }, + { "group": "SUS_book_nonf_hard_psych", "prob": 10 }, + { "group": "SUS_book_nonf_hard_phil", "prob": 7 }, + { "group": "SUS_book_nonf_hard_sports", "prob": 3 }, + { "group": "SUS_book_nonf_hard_arch", "prob": 10 } ] }, { @@ -393,11 +508,13 @@ "entries": [ { "group": "SUS_book_nonf_soft_occult", "prob": 2 }, { "group": "SUS_book_nonf_soft_psych", "prob": 6 }, - { "item": "book_nonf_soft_wedding_coolring", "prob": 2 }, - { "item": "book_nonf_soft_parent_howtogen", "prob": 2 }, + { "group": "SUS_book_nonf_soft_sports", "prob": 3 }, + { "item": "book_nonf_soft_wedding_coolring", "prob": 1 }, + { "item": "book_nonf_soft_parent_howtogen", "prob": 1 }, { "item": "book_nonf_soft_safety_radiaea", "prob": 1 }, { "item": "book_nonf_soft_mechnic_hotrod", "prob": 1 }, - { "item": "book_nonf_soft_speech_naillaw", "prob": 1 } + { "item": "book_nonf_soft_speech_naillaw", "prob": 1 }, + { "item": "book_nonf_soft_phil_benoth", "prob": 1 } ] }, { @@ -451,7 +568,8 @@ { "item": "mag_cutting", "prob": 6 }, { "item": "mag_cars", "prob": 10 }, { "item": "mag_guns", "prob": 10 }, - { "item": "mag_glam", "prob": 10 } + { "item": "mag_glam", "prob": 10 }, + { "item": "mag_gaming", "prob": 10 } ] }, { @@ -459,13 +577,13 @@ "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": "Returns a single sports or games magazine.", + "//TODO": "rename this SUS_book_nonf_zine_sports", "subtype": "distribution", "entries": [ { "item": "mag_unarmed", "prob": 1 }, { "item": "mag_throwing", "prob": 1 }, { "item": "mag_archery", "prob": 1 }, - { "item": "mag_bashing", "prob": 1 }, - { "item": "mag_gaming", "prob": 2 } + { "item": "mag_bashing", "prob": 1 } ] }, { @@ -500,6 +618,19 @@ { "item": "book_nonf_hard_psych_thergar", "prob": 1 } ] }, + { + "id": "SUS_book_nonf_hard_phil", + "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": "Returns one hardback book about philosophy.", + "subtype": "distribution", + "entries": [ + { "item": "book_nonf_hard_phil_mdlogic", "prob": 1 }, + { "item": "book_nonf_hard_phil_aesth", "prob": 1 }, + { "item": "book_nonf_hard_sports_ergo", "prob": 1 }, + { "item": "book_nonf_hard_phil_phinfo", "prob": 1 } + ] + }, { "id": "SUS_book_nonf_hard_spirit", "type": "item_group", @@ -555,6 +686,31 @@ { "item": "book_nonf_soft_psych_cggamers", "prob": 1 } ] }, + { + "id": "SUS_book_nonf_soft_sports", + "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": "returns one nonfiction paperback about sports", + "subtype": "distribution", + "entries": [ + { "item": "book_nonf_soft_sports_bdgt", "prob": 1 }, + { "item": "book_nonf_soft_sports_lads", "prob": 1 }, + { "item": "book_nonf_soft_sports_vlly", "prob": 1 } + ] + }, + { + "id": "SUS_book_nonf_hard_sports", + "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": "returns a single hardback book of nonfiction sports", + "subtype": "distribution", + "entries": [ + { "item": "book_nonf_hard_sports_hoop", "prob": 1 }, + { "item": "book_nonf_hard_sports_bike", "prob": 1 }, + { "item": "book_nonf_hard_sports_ergo", "prob": 1 }, + { "item": "book_nonf_hard_sports_morg", "prob": 1 } + ] + }, { "id": "SUS_book_nonf_hard_arch", "type": "item_group", diff --git a/data/json/itemgroups/Weapons_Mods_Ammo/guns.json b/data/json/itemgroups/Weapons_Mods_Ammo/guns.json index acbe6f4201974..45455317cd639 100644 --- a/data/json/itemgroups/Weapons_Mods_Ammo/guns.json +++ b/data/json/itemgroups/Weapons_Mods_Ammo/guns.json @@ -151,7 +151,6 @@ { "item": "pistol_flintlock", "prob": 150 }, { "item": "raging_bull", "prob": 100, "charges-min": 0, "charges-max": 5 }, { "item": "raging_judge", "prob": 20, "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 }, { "item": "colt_saa", "prob": 150, "charges-min": 0, "charges-max": 6 } @@ -312,6 +311,7 @@ { "item": "colt_lightning", "prob": 15, "charges-min": 0, "charges-max": 10 }, { "item": "fn_fal", "prob": 40, "charges-min": 0, "charges-max": 20 }, { "item": "fs2000", "prob": 6, "charges-min": 0, "charges-max": 30 }, + { "item": "m249_semi", "prob": 5, "charges-min": 0, "charges-max": 100 }, { "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 }, @@ -339,6 +339,7 @@ { "item": "acr", "prob": 25, "charges-min": 0, "charges-max": 0 }, { "item": "colt_lightning", "prob": 15, "charges-min": 0, "charges-max": 0 }, { "item": "fn_fal", "prob": 40, "charges-min": 0, "charges-max": 0 }, + { "item": "m249_semi", "prob": 5, "charges-min": 0, "charges-max": 0 }, { "item": "hk_g3", "prob": 40, "charges-min": 0, "charges-max": 0 }, { "item": "hk_g36", "prob": 30, "charges-min": 0, "charges-max": 0 }, { "item": "henry_big_boy", "prob": 10, "charges-min": 0, "charges-max": 0 }, @@ -407,6 +408,7 @@ { "item": "bfg50", "prob": 5, "charges-min": 0, "charges-max": 1 }, { "item": "carbine_flintlock", "prob": 140 }, { "item": "famas", "prob": 1, "charges-min": 0, "charges-max": 30 }, + { "item": "m60_semi", "prob": 10, "charges-min": 0, "charges-max": 100 }, { "item": "rifle_flintlock", "prob": 180 }, { "item": "oa93", "prob": 3, "charges-min": 0, "charges-max": 30 }, { "item": "steyr_aug", "prob": 40, "charges-min": 0, "charges-max": 30 }, @@ -552,7 +554,8 @@ { "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": "revolver_shotgun", "prob": 30, "charges-min": 0, "charges-max": 6 }, + { "item": "lever_shotgun", "prob": 10, "charges-min": 0, "charges-max": 6 } ] }, { diff --git a/data/json/itemgroups/Weapons_Mods_Ammo/magazines.json b/data/json/itemgroups/Weapons_Mods_Ammo/magazines.json index e556dcb1a3ed1..5147a375f7f3f 100644 --- a/data/json/itemgroups/Weapons_Mods_Ammo/magazines.json +++ b/data/json/itemgroups/Weapons_Mods_Ammo/magazines.json @@ -164,7 +164,6 @@ [ "454_speedloader5", 5 ], [ "454_speedloader6", 5 ], [ "500_speedloader5", 5 ], - [ "8x40_speedloader5", 5 ], [ "glock_drum_50rd", 5 ], [ "glock_drum_100rd", 5 ], [ "90two40mag", 5 ], diff --git a/data/json/itemgroups/activities_hobbies.json b/data/json/itemgroups/activities_hobbies.json index 85ef1f8350ce4..6dc8b256c884e 100644 --- a/data/json/itemgroups/activities_hobbies.json +++ b/data/json/itemgroups/activities_hobbies.json @@ -195,6 +195,7 @@ [ "coffeemaker", 5 ], { "group": "tinware", "prob": 10 }, [ "kukri", 4 ], + [ "sandbox_kit", 5 ], [ "knife_hunting", 18 ], [ "knife_rambo", 20 ], [ "machete", 5 ], @@ -337,5 +338,29 @@ [ "survival_kit", 30 ], [ "premium_survival_kit", 3 ] ] + }, + { + "type": "item_group", + "id": "games", + "items": [ + [ "chess", 50 ], + [ "checkers", 50 ], + [ "deck_of_cards", 50 ], + [ "cards_magic", 50 ], + [ "pictionary", 50 ], + [ "monopoly", 50 ], + [ "dnd", 50 ], + [ "g_warhammer", 50 ], + [ "g_warhammer40k", 50 ], + [ "catan", 50 ], + [ "battleship", 50 ], + [ "clue", 50 ], + [ "metal_RPG_die", 30 ], + [ "RPG_die", 40 ], + [ "character_sheet", 20 ], + [ "scorecard", 10 ], + [ "dnd_handbook", 5 ], + [ "portable_game", 5 ] + ] } ] diff --git a/data/json/itemgroups/books.json b/data/json/itemgroups/books.json index 40b9d812200fd..17fb463d30df5 100644 --- a/data/json/itemgroups/books.json +++ b/data/json/itemgroups/books.json @@ -178,20 +178,13 @@ "type": "item_group", "subtype": "distribution", "entries": [ - { "group": "SUS_book_fict_soft_romc", "prob": 30 }, - { "group": "SUS_book_fict_soft_spy", "prob": 28 }, - { "group": "SUS_book_fict_soft_satire", "prob": 15 }, - { "item": "novel_sports", "prob": 22 }, - { "item": "novel_samurai", "prob": 22 }, - { "item": "novel_swash", "prob": 14 }, - { "group": "SUS_book_fict_soft_west", "prob": 22 }, + { "group": "SUS_book_fict", "prob": 200 }, { "item": "novel_war", "prob": 20 }, { "item": "novel_war2", "prob": 20 }, { "item": "novel_adventure", "prob": 14 }, { "item": "novel_experimental", "prob": 1 }, { "item": "novel_road", "prob": 10 }, { "item": "novel_buddy", "prob": 12 }, - { "item": "novel_scifi", "prob": 20 }, { "item": "novel_drama", "prob": 40 }, { "item": "novel_mystery", "prob": 25 }, { "item": "novel_fantasy", "prob": 20 }, @@ -212,9 +205,10 @@ "type": "item_group", "subtype": "distribution", "entries": [ + { "group": "SUS_book_nonf_hard_phil", "prob": 1 }, { "item": "classic_literature", "prob": 10 }, { "item": "poetry_book", "prob": 10 }, - { "item": "philosophy_book", "prob": 2 }, + { "item": "philosophy_book", "prob": 1 }, { "item": "essay_book", "prob": 6 }, { "item": "plays_book", "prob": 8 } ] @@ -224,15 +218,16 @@ "type": "item_group", "subtype": "distribution", "entries": [ + { "group": "SUS_book_fict_soft_ya", "prob": 30 }, + { "group": "SUS_book_fict_hard_ya", "prob": 20 }, { "item": "tall_tales", "prob": 10 }, { "item": "story_book", "prob": 4 }, { "item": "fairy_tales", "prob": 20 }, - { "item": "novel_coa", "prob": 10 }, - { "item": "novel_coa2", "prob": 10 }, { "item": "child_book", "prob": 50 }, { "item": "manual_dodge_kid", "prob": 20 }, { "item": "book_nonf_soft_wedding_coolring", "prob": 1 }, - { "item": "mag_comic", "prob": 20 } + { "item": "mag_comic", "prob": 20 }, + { "item": "basic_chemistry", "prob": 10 } ] }, { @@ -290,7 +285,8 @@ { "item": "survnote", "prob": 1 }, { "item": "scots_cookbook", "prob": 8 }, { "item": "offalcooking", "prob": 2 }, - { "item": "dnd_handbook", "prob": 2 } + { "item": "dnd_handbook", "prob": 2 }, + { "item": "scots_tailor", "prob": 8 } ] }, { @@ -353,6 +349,7 @@ { "item": "reference_fabrication1", "prob": 1 }, { "item": "reference_firstaid1", "prob": 1 }, { "item": "reference_firstaid2", "prob": 1 }, + { "item": "basic_chemistry", "prob": 10 }, { "item": "survnote", "prob": 3 } ] }, @@ -421,7 +418,8 @@ { "item": "textbook_armwest", "prob": 3 }, { "item": "textbook_armeast", "prob": 3 }, { "item": "survnote", "prob": 2 }, - { "item": "book_lockpick", "prob": 2 } + { "item": "book_lockpick", "prob": 2 }, + { "item": "basic_chemistry", "prob": 5 } ] }, { @@ -526,7 +524,8 @@ { "item": "manual_medievalpole", "prob": 3 }, { "item": "manual_swordsmanship", "prob": 3 }, { "item": "book_lockpick", "prob": 1 }, - { "group": "rare_martial_arts_books", "prob": 6 } + { "group": "rare_martial_arts_books", "prob": 6 }, + { "item": "scots_tailor", "prob": 30 } ] }, { diff --git a/data/json/itemgroups/collections_domestic.json b/data/json/itemgroups/collections_domestic.json index b410a1555d328..8909d0d2636b1 100644 --- a/data/json/itemgroups/collections_domestic.json +++ b/data/json/itemgroups/collections_domestic.json @@ -321,6 +321,7 @@ { "item": "golf_ball", "prob": 30 }, { "item": "golf_club", "prob": 15 }, { "item": "meth", "prob": 2 }, + { "item": "sandbox_kit", "prob": 1 }, { "item": "sneakers", "prob": 80 }, { "item": "boots", "prob": 70 }, { "item": "knee_high_boots", "prob": 10 }, @@ -459,6 +460,7 @@ { "group": "kitchen_appliances", "prob": 253 }, { "item": "hat_chef", "prob": 2 }, { "item": "jacket_chef", "prob": 2 }, + { "item": "gloves_cut_resistant", "prob": 1 }, { "item": "pot", "prob": 25 }, { "item": "sponge", "prob": 30 }, { "item": "pot_copper", "prob": 15 }, @@ -635,7 +637,7 @@ { "item": "soy_milk", "prob": 50 }, { "item": "butter", "prob": 45, "charges-min": 1, "charges-max": 32, "container-item": "wrapper" }, { "item": "ghee", "prob": 5, "charges-min": 1, "charges-max": 32, "container-item": "jar_glass" }, - { "item": "egg_bird", "prob": 65, "count-min": 1, "count-max": 12 }, + { "item": "egg_bird_unfert", "prob": 65, "count-min": 1, "count-max": 12 }, { "item": "yoghurt", "prob": 50 }, { "item": "pudding", "prob": 60 }, { "item": "veggy_salad", "prob": 25 }, @@ -865,6 +867,7 @@ { "item": "manual_speech", "prob": 50 }, { "item": "manual_business", "prob": 40 }, { "item": "manual_computers", "prob": 20 }, + { "item": "scots_tailor", "prob": 10 }, { "group": "kids_books", "prob": 70 }, { "item": "tailor_portfolio", "prob": 1 }, { "item": "recipe_augs", "prob": 1 }, diff --git a/data/json/itemgroups/food_service.json b/data/json/itemgroups/food_service.json index 230d7aae23f5d..31e8a09ff8654 100644 --- a/data/json/itemgroups/food_service.json +++ b/data/json/itemgroups/food_service.json @@ -402,6 +402,7 @@ { "item": "milk_powder", "prob": 65 }, { "item": "salt", "prob": 15 }, { "item": "sugar", "prob": 70 }, + { "item": "artificial_sweetener", "prob": 15 }, { "item": "tea_raw", "prob": 15 }, { "item": "wrapper", "prob": 75 }, { "group": "teabag_box", "prob": 10 } @@ -547,6 +548,7 @@ { "item": "seasoning_italian", "prob": 50 }, { "item": "can_chicken", "prob": 30 }, { "item": "sugar", "prob": 40 }, + { "item": "artificial_sweetener", "prob": 10 }, { "item": "soysauce", "prob": 10 }, { "item": "flour", "prob": 40 }, { "item": "curry_powder", "prob": 40 }, @@ -699,6 +701,7 @@ { "item": "salt", "prob": 50 }, { "item": "soysauce", "prob": 25 }, { "item": "sugar", "prob": 60 }, + { "item": "artificial_sweetener", "prob": 15 }, { "item": "dry_rice", "prob": 65 } ] }, @@ -791,7 +794,7 @@ "type": "item_group", "subtype": "distribution", "entries": [ - { "item": "egg_bird", "prob": 65, "count-min": 6, "count-max": 12 }, + { "item": "egg_bird_unfert", "prob": 65, "count-min": 6, "count-max": 12 }, { "item": "milk", "prob": 80 }, { "item": "milk_raw", "prob": 5 }, { "item": "milk_raw", "prob": 5 }, @@ -955,6 +958,8 @@ [ "foon", 5 ], { "group": "wines_worthy", "prob": 66 }, [ "fruit_wine", 20 ], + [ "gloves_cut_resistant", 5 ], + [ "armguard_cut_resistant", 2 ], [ "hat_chef", 30 ], [ "jacket_chef", 30 ], [ "pants_checkered", 28 ] diff --git a/data/json/itemgroups/main.json b/data/json/itemgroups/main.json index d03b9ca7e9ad2..11689ac350559 100644 --- a/data/json/itemgroups/main.json +++ b/data/json/itemgroups/main.json @@ -15,7 +15,6 @@ { "item": "bio_blade", "prob": 10 }, { "item": "bio_speed", "prob": 10 }, { "item": "bot_c4_hack", "prob": 30 }, - { "item": "bot_laserturret", "prob": 20 }, { "item": "c4", "prob": 50 }, { "item": "canister_goo", "prob": 80 }, { "item": "cleansuit", "prob": 100 }, @@ -87,7 +86,6 @@ "subtype": "distribution", "entries": [ { "item": "12mm", "prob": 10 }, - { "item": "bot_laserturret", "prob": 10 }, { "item": "alloy_plate", "prob": 10 }, { "item": "plasma_gun", "prob": 10 }, { "item": "can_sealer", "prob": 10 }, diff --git a/data/json/itemgroups/military.json b/data/json/itemgroups/military.json index d8ee6133d259c..6448782a295fe 100644 --- a/data/json/itemgroups/military.json +++ b/data/json/itemgroups/military.json @@ -226,7 +226,6 @@ { "item": "rm614_lmg", "prob": 1 }, { "item": "rm2000_smg", "prob": 1 }, { "item": "8mm_caseless", "prob": 2 }, - { "item": "rm99_pistol", "prob": 1 }, { "item": "8mm_jhp", "prob": 2 }, { "item": "8mm_fmj", "prob": 2 }, { "item": "laser_rifle", "prob": 1 }, @@ -259,7 +258,6 @@ { "item": "match_trigger", "prob": 2 }, { "item": "grapnel", "prob": 1 }, { "item": "bucket", "prob": 4 }, - { "item": "bot_laserturret", "prob": 1 }, { "item": "sheath", "prob": 13 }, { "item": "bootsheath", "prob": 8 }, { "item": "toolbox", "prob": 1 }, @@ -505,7 +503,7 @@ { "item": "jumpsuit", "prob": 20 }, { "item": "kevlar", "prob": 10 }, { "item": "ballistic_vest_esapi", "prob": 40 }, - { "item": "kevlar_plate", "prob": 10 }, + { "item": "sheet_kevlar_layered", "prob": 10 }, { "item": "mask_gas", "prob": 10 }, { "item": "helmet_army", "prob": 40 }, { "item": "helmet_liner", "prob": 10 }, diff --git a/data/json/itemgroups/science_and_tech.json b/data/json/itemgroups/science_and_tech.json index 4f1ab50fbd7d2..045a071109350 100644 --- a/data/json/itemgroups/science_and_tech.json +++ b/data/json/itemgroups/science_and_tech.json @@ -434,7 +434,7 @@ [ "bfipowder", 15 ], [ "quikclot", 10 ], [ "anesthetic", 20 ], - [ "anesthetic_kit", 10 ] + { "item": "anesthetic_kit", "prob": 10, "charges-min": 0 } ] }, { diff --git a/data/json/itemgroups/trash_and_debris.json b/data/json/itemgroups/trash_and_debris.json index 3e3f2ec771f26..0ac0cdcfe302f 100644 --- a/data/json/itemgroups/trash_and_debris.json +++ b/data/json/itemgroups/trash_and_debris.json @@ -119,7 +119,8 @@ [ "tinder", 1 ], [ "rag", 1 ], [ "hairpin", 1 ], - [ "kevlar_plate", 1 ], + [ "sandbox_kit", 1 ], + [ "sheet_kevlar_layered", 1 ], [ "ceramic_armor", 1 ], [ "leather", 1 ], [ "software_hacking", 10 ], diff --git a/data/json/items/ammo.json b/data/json/items/ammo.json index d4596b81a59f5..f8961581bc0d5 100644 --- a/data/json/items/ammo.json +++ b/data/json/items/ammo.json @@ -10,7 +10,7 @@ "color": "yellow", "description": "Some free-floating battery charge. This can be reloaded into rechargable battery cells, but can never be unloaded.", "flags": [ "TRADER_AVOID" ], - "material": "iron", + "material": [ "iron" ], "effects": [ "COOKOFF" ], "volume": "250 ml", "//": "Setting battery volume to 0 causes weirdness in vehicle tests. Please don't do that.", @@ -19,6 +19,55 @@ "//2": "1 battery is 1 kJ of energy. 40 batteries is an alkaline C-cell.", "fuel": { "energy": 1 } }, + { + "type": "AMMO", + "id": "butane", + "name": { "str_sp": "butane" }, + "symbol": "~", + "description": "A common flammable liquid used in lighters.", + "volume": "1 ml", + "weight": "1 mg", + "color": "white", + "flags": [ "TRADER_AVOID" ], + "ammo_type": "butane" + }, + { + "type": "AMMO", + "id": "flare_nitrate", + "name": { "str_sp": "flare pyrotechnic" }, + "symbol": "~", + "description": "A pyrotechnic chemical used in flares.", + "volume": "1 ml", + "weight": "1 mg", + "color": "white", + "flags": [ "TRADER_AVOID" ], + "ammo_type": "flare_nitrate" + }, + { + "type": "AMMO", + "id": "match", + "name": { "str": "match", "str_pl": "matches" }, + "symbol": "|", + "description": "A small stick with a red part at the end. Strike it against a matchbook to light it.", + "volume": "4 ml", + "weight": "1 mg", + "color": "red", + "flags": [ "TRADER_AVOID" ], + "ammo_type": "match" + }, + { + "type": "AMMO", + "id": "oxygen", + "name": { "str_sp": "oxygen" }, + "symbol": "~", + "color": "white", + "description": "Compressed medical oxygen.", + "weight": "1 mg", + "volume": "1 ml", + "flags": [ "TRADER_AVOID" ], + "phase": "gas", + "ammo_type": "oxygen" + }, { "type": "TOOL", "id": "betavoltaic", @@ -72,7 +121,7 @@ "name": { "str": "cent" }, "symbol": "=", "color": "light_gray", - "description": "IF YOU ARE SEEING THIS IT IS A BUG.", + "description": "A unit of currency equivalent to 0.01 US dollars.", "flags": [ "TRADER_AVOID" ], "volume": "0 ml", "ammo_type": "money" @@ -87,7 +136,7 @@ "symbol": "=", "color": "light_gray", "description": "A small quantity of thread that could be used to refill a sewing kit.", - "material": "cotton", + "material": [ "cotton" ], "flags": [ "NO_SALVAGE" ], "volume": "250 ml", "weight": "1 g", @@ -301,12 +350,12 @@ "name": { "str": "pebble" }, "symbol": "=", "color": "light_gray", - "description": "A handful of pebbles, useful as ammunition for slings or slingshots.", + "description": "A handful of pebbles, useful as ammunition for slingshots.", "material": "stone", "volume": "250 ml", "weight": "5 g", "ammo_type": "pebble", - "damage": { "damage_type": "stab", "amount": 2 }, + "damage": { "damage_type": "bullet", "amount": 2 }, "range": 10, "dispersion": 14, "loudness": 0, @@ -322,12 +371,12 @@ "symbol": "=", "color": "brown", "looks_like": "pebble", - "description": "A handful of round projectiles made of clay, useful for slings or slingshots.", + "description": "A handful of round projectiles made of clay, useful for slingshots.", "material": "clay", "volume": "250 ml", "weight": "3 g", "ammo_type": "pebble", - "damage": { "damage_type": "stab", "amount": 1 }, + "damage": { "damage_type": "bullet", "amount": 1 }, "range": 20, "dispersion": 12, "loudness": 0, @@ -343,12 +392,12 @@ "symbol": "=", "color": "light_gray", "looks_like": "pebble", - "description": "A handful of glass marbles, useful as ammunition for slings or slingshots.", + "description": "A handful of glass marbles, useful as ammunition for slingshots.", "material": "glass", "volume": "250 ml", "weight": "3 g", "ammo_type": "pebble", - "damage": { "damage_type": "stab", "amount": 3 }, + "damage": { "damage_type": "bullet", "amount": 2 }, "range": 18, "dispersion": 12, "loudness": 0, @@ -364,12 +413,12 @@ "symbol": "=", "color": "dark_gray", "looks_like": "pebble", - "description": "A box of ball bearings, useful as ammunition for slings or slingshots.", + "description": "A box of ball bearings, useful as ammunition for slingshots.", "material": "steel", "volume": "250 ml", "weight": "10 g", "ammo_type": "pebble", - "damage": { "damage_type": "stab", "amount": 6, "armor_penetration": 1 }, + "damage": { "damage_type": "bullet", "amount": 5, "armor_penetration": 1 }, "range": 15, "dispersion": 14, "loudness": 0, @@ -385,7 +434,7 @@ "symbol": "=", "color": "light_gray", "looks_like": "pebble", - "description": "A box of small steel balls. They deal virtually no damage.", + "description": "A box of small steel balls that can be fired from a BB gun. They deal virtually no damage.", "material": "steel", "volume": "200ml", "weight": "1 g", @@ -407,7 +456,7 @@ "symbol": "=", "color": "brown", "description": "Feathers from a bird. Useful for fletching arrows.", - "material": "cotton", + "material": [ "cotton" ], "flags": [ "NO_SALVAGE" ], "volume": "250 ml", "weight": "1 g", @@ -425,7 +474,7 @@ "symbol": "=", "color": "brown", "description": "Fluffy down feathers from a bird. Useful for making cozy bedclothes.", - "material": "cotton", + "material": [ "cotton" ], "flags": [ "NO_SALVAGE" ], "volume": "250 ml", "weight": "1 g", @@ -801,6 +850,21 @@ "stack_size": 10, "fuel": { "energy": 30 } }, + { + "type": "AMMO", + "id": "albuterol", + "category": "drugs", + "name": { "str": "albuterol" }, + "symbol": "=", + "color": "blue", + "description": "A bronchodilator that relaxes muscles in the airways and increases air flow to the lungs.", + "material": "plastic", + "volume": "1 ml", + "weight": "1 mg", + "flags": [ "TRADER_AVOID" ], + "phase": "gas", + "ammo_type": "albuterol" + }, { "type": "AMMO", "id": "ampoule", @@ -1041,7 +1105,7 @@ "symbol": "=", "color": "light_gray", "description": "Small metal rings, suitable for constructing chainmail.", - "material": "iron", + "material": [ "iron" ], "volume": "250 ml", "weight": "1 g", "ammo_type": "components", @@ -1096,7 +1160,7 @@ "volume": "250 ml", "weight": "1 g", "ammo_type": "pebble", - "damage": { "damage_type": "stab", "amount": 1 }, + "damage": { "damage_type": "bullet", "amount": 1 }, "range": 20, "dispersion": 15, "loudness": 0, @@ -1118,7 +1182,7 @@ "volume": "250 ml", "weight": "1 g", "ammo_type": "pebble", - "damage": { "damage_type": "stab", "amount": 3 }, + "damage": { "damage_type": "bullet", "amount": 3 }, "range": 15, "dispersion": 10, "loudness": 0, diff --git a/data/json/items/ammo/45.json b/data/json/items/ammo/45.json index 2918d1948a50b..ad35f3146cb7b 100644 --- a/data/json/items/ammo/45.json +++ b/data/json/items/ammo/45.json @@ -4,7 +4,7 @@ "copy-from": "45_jhp", "type": "AMMO", "name": { "str": ".45 ACP FMJ" }, - "description": ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, the .45 ACP round has been common for almost 150 years.", + "description": ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, the .45 ACP round has been common for over a century.", "relative": { "damage": { "damage_type": "bullet", "amount": -3, "armor_penetration": 6 } } }, { diff --git a/data/json/items/ammo/9mm.json b/data/json/items/ammo/9mm.json index fc34f1144c1ec..f429d6ac5a2e5 100644 --- a/data/json/items/ammo/9mm.json +++ b/data/json/items/ammo/9mm.json @@ -27,7 +27,7 @@ "copy-from": "9mm", "type": "AMMO", "name": { "str": "9x19mm FMJ" }, - "description": "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round for military, law enforcement, and civilian use even after almost 150 years.", + "description": "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round for military, law enforcement, and civilian use for over a century.", "relative": { "damage": { "damage_type": "bullet", "amount": -2, "armor_penetration": 4 } } }, { diff --git a/data/json/items/ammo/nail.json b/data/json/items/ammo/nail.json index b90889c036c7b..8eb5a4d32b204 100644 --- a/data/json/items/ammo/nail.json +++ b/data/json/items/ammo/nail.json @@ -20,7 +20,7 @@ "volume": "250 ml", "price": 1000, "price_postapoc": 250, - "material": "iron", + "material": [ "iron" ], "symbol": "=", "color": "cyan", "count": 100, diff --git a/data/json/items/ammo_types.json b/data/json/items/ammo_types.json index 222a5f0e48287..533ea1f065132 100644 --- a/data/json/items/ammo_types.json +++ b/data/json/items/ammo_types.json @@ -299,6 +299,30 @@ "name": "lamp oil", "default": "lamp_oil" }, + { + "type": "ammunition_type", + "id": "butane", + "name": "butane", + "default": "butane" + }, + { + "type": "ammunition_type", + "id": "flare_nitrate", + "name": "flare pyrotechnic", + "default": "flare_nitrate" + }, + { + "type": "ammunition_type", + "id": "match", + "name": "match", + "default": "match" + }, + { + "type": "ammunition_type", + "id": "oxygen", + "name": "oxygen", + "default": "oxygen" + }, { "type": "ammunition_type", "id": "motor_oil", @@ -443,6 +467,12 @@ "name": "chemical ampoule", "default": "ampoule" }, + { + "type": "ammunition_type", + "id": "albuterol", + "name": "albuterol", + "default": "albuterol" + }, { "type": "ammunition_type", "id": "stimpack_ammo", diff --git a/data/json/items/armor/ammo_pouch.json b/data/json/items/armor/ammo_pouch.json index 2e4e0bc5cd7e2..beb0ff2c00298 100644 --- a/data/json/items/armor/ammo_pouch.json +++ b/data/json/items/armor/ammo_pouch.json @@ -454,7 +454,7 @@ "price_postapoc": 6000, "to_hit": -3, "bashing": 6, - "material": [ "kevlar" ], + "material": [ "kevlar_layered" ], "symbol": "[", "color": "light_gray", "covers": [ "TORSO" ], diff --git a/data/json/items/armor/arms_armor.json b/data/json/items/armor/arms_armor.json index 719917bb9e8b8..a368b61b4cdb9 100644 --- a/data/json/items/armor/arms_armor.json +++ b/data/json/items/armor/arms_armor.json @@ -279,5 +279,15 @@ "material_thickness": 3, "environmental_protection": 1, "flags": [ "STURDY", "BELTED", "WATER_FRIENDLY" ] + }, + { + "id": "armguard_cut_resistant", + "type": "ARMOR", + "name": { "str": "pair of cut-resistant arm sleeves", "str_pl": "pairs of cut-resistant arm sleeves" }, + "description": "A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw protection.", + "weight": "113 g", + "copy-from": "armguard_soft", + "price": 1200, + "material": [ "kevlar" ] } ] diff --git a/data/json/items/armor/ballistic_armor.json b/data/json/items/armor/ballistic_armor.json index af45b40580800..0137802d2b6fe 100644 --- a/data/json/items/armor/ballistic_armor.json +++ b/data/json/items/armor/ballistic_armor.json @@ -54,7 +54,7 @@ "price_postapoc": 6000, "to_hit": -3, "bashing": 6, - "material": [ "lightceramic", "kevlar" ], + "material": [ "lightceramic", "kevlar_layered" ], "symbol": "[", "looks_like": "kevlar", "color": "light_red", @@ -79,7 +79,7 @@ "price_postapoc": 2000, "to_hit": -3, "bashing": 6, - "material": [ "kevlar" ], + "material": [ "kevlar_layered" ], "symbol": "[", "looks_like": "dragonskin", "color": "light_red", diff --git a/data/json/items/armor/boots.json b/data/json/items/armor/boots.json index 46bf5f6c6352d..7697bc7e892bb 100644 --- a/data/json/items/armor/boots.json +++ b/data/json/items/armor/boots.json @@ -145,6 +145,47 @@ "environmental_protection": 2, "flags": [ "VARSIZE", "WATERPROOF", "STURDY" ] }, + { + "id": "foot_protectors_eod", + "type": "ARMOR", + "category": "armor", + "name": { "str": "pair of EOD foot protectors", "str_pl": "pairs of EOD foot protectors" }, + "description": "Armored foot protectors constructed from steel and nomex for explosive ordnance disposal. They are designed to protect against overpressure, fragmentation, impact and heat.", + "weight": "1220 g", + "volume": "3 L", + "price": 50000, + "covers": [ "FEET" ], + "coverage": 100, + "encumbrance": 40, + "warmth": 10, + "material": [ "steel", "nomex" ], + "symbol": "[", + "color": "light_gray", + "environmental_protection": 2, + "material_thickness": 7, + "flags": [ "STURDY", "OUTER" ] + }, + { + "id": "toecaps", + "type": "ARMOR", + "name": { "str": "pair of toecaps", "str_pl": "pairs of toecaps" }, + "description": "Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel toes.", + "weight": "907 g", + "volume": "1 L", + "price": 2500, + "to_hit": -1, + "bashing": 2, + "material": [ "plastic", "steel" ], + "symbol": "[", + "color": "brown", + "covers": [ "FEET" ], + "coverage": 15, + "encumbrance": 10, + "warmth": 10, + "material_thickness": 3, + "environmental_protection": 1, + "flags": [ "OUTER", "STURDY" ] + }, { "id": "boots_fsurvivor", "type": "ARMOR", diff --git a/data/json/items/armor/coats.json b/data/json/items/armor/coats.json index 713b16549877e..21dc9c7d5d3e0 100644 --- a/data/json/items/armor/coats.json +++ b/data/json/items/armor/coats.json @@ -346,7 +346,7 @@ "price": 40000, "price_postapoc": 8000, "to_hit": -1, - "material": [ "cotton", "kevlar" ], + "material": [ "cotton", "kevlar_layered" ], "symbol": "[", "looks_like": "duster_leather", "color": "brown", @@ -1103,7 +1103,7 @@ "price": 34000, "price_postapoc": 4500, "to_hit": -1, - "material": [ "cotton", "kevlar" ], + "material": [ "cotton", "kevlar_layered" ], "symbol": "[", "looks_like": "duster_survivor", "color": "brown", @@ -1246,7 +1246,7 @@ "price": 34000, "price_postapoc": 500, "to_hit": -1, - "material": [ "cotton", "kevlar" ], + "material": [ "cotton", "kevlar_layered" ], "symbol": "[", "looks_like": "sleeveless_duster_survivor", "color": "brown", @@ -1428,7 +1428,7 @@ "price": 40000, "price_postapoc": 8000, "to_hit": -1, - "material": [ "cotton", "kevlar" ], + "material": [ "cotton", "kevlar_layered" ], "symbol": "[", "looks_like": "trenchcoat", "color": "brown", diff --git a/data/json/items/armor/eyewear.json b/data/json/items/armor/eyewear.json index 5b6469af9518a..bdfc5ad4daa10 100644 --- a/data/json/items/armor/eyewear.json +++ b/data/json/items/armor/eyewear.json @@ -76,7 +76,7 @@ "price": 7500, "price_postapoc": 500, "to_hit": -2, - "material": [ "kevlar_rigid", "plastic" ], + "material": [ "plastic", "nylon" ], "symbol": "[", "looks_like": "glasses_safety", "color": "dark_gray", @@ -296,7 +296,7 @@ "price": 7500, "price_postapoc": 3000, "to_hit": -2, - "material": [ "kevlar", "leather" ], + "material": [ "kevlar_layered", "leather" ], "symbol": "[", "looks_like": "glasses_bal", "color": "dark_gray", diff --git a/data/json/items/armor/gloves.json b/data/json/items/armor/gloves.json index f52c24ed84512..c7e88e7f5e9ed 100644 --- a/data/json/items/armor/gloves.json +++ b/data/json/items/armor/gloves.json @@ -266,7 +266,7 @@ "price": 18000, "price_postapoc": 2500, "to_hit": 2, - "material": [ "kevlar", "nomex" ], + "material": [ "kevlar_layered", "nomex" ], "symbol": "[", "looks_like": "fire_gauntlets", "color": "light_gray", @@ -309,7 +309,7 @@ "price": 18000, "price_postapoc": 3000, "to_hit": 2, - "material": [ "kevlar", "steel" ], + "material": [ "kevlar_layered", "steel" ], "symbol": "[", "looks_like": "fire_gauntlets", "color": "dark_gray", @@ -417,7 +417,7 @@ "price": 18000, "price_postapoc": 2000, "to_hit": 2, - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "looks_like": "gloves_survivor", "color": "green", @@ -441,7 +441,7 @@ "price": 16000, "price_postapoc": 2000, "to_hit": 2, - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "color": "green", "covers": [ "HANDS" ], @@ -532,7 +532,7 @@ "price": 18000, "price_postapoc": 2000, "to_hit": 2, - "material": [ "kevlar", "leather" ], + "material": [ "kevlar_layered", "leather" ], "symbol": "[", "looks_like": "fire_gauntlets", "color": "brown", @@ -550,7 +550,7 @@ "type": "ARMOR", "category": "armor", "name": { "str": "pair of tactical gloves", "str_pl": "pairs of tactical gloves" }, - "description": "A pair of reinforced Kevlar tactical gloves. Commonly used by police and military units.", + "description": "A pair of flame and cut resistant aramid fabric gloves. Commonly used by police and military units.", "weight": "220 g", "volume": "500 ml", "price": 5200, @@ -565,6 +565,7 @@ "encumbrance": 13, "warmth": 20, "material_thickness": 2, + "environmental_protection": 2, "flags": [ "VARSIZE", "STURDY" ] }, { @@ -635,13 +636,13 @@ "repairs_like": "gloves_plate", "type": "ARMOR", "name": { "str": "pair of cut resistant gloves", "str_pl": "pairs of cut resistant gloves" }, - "description": "A pair of cut resistant gloves, useful when rapidly breaking down carcasses.", + "description": "A pair of cut resistant gloves, useful for butchery or routine work with bladed objects.", "weight": "240 g", "volume": "250 ml", "price": 9000, "price_postapoc": 100, "to_hit": 2, - "material": [ "steel", "cotton" ], + "material": [ "kevlar" ], "symbol": "[", "looks_like": "gloves_work", "color": "light_gray", @@ -747,7 +748,7 @@ "price": 18000, "price_postapoc": 2500, "to_hit": 2, - "material": [ "kevlar", "fur" ], + "material": [ "kevlar_layered", "fur" ], "symbol": "[", "looks_like": "gloves_winter", "color": "light_gray", @@ -770,7 +771,7 @@ "price": 18000, "price_postapoc": 1500, "to_hit": 2, - "material": [ "kevlar", "leather" ], + "material": [ "kevlar_layered", "leather" ], "symbol": "[", "looks_like": "gloves_survivor", "color": "brown", @@ -927,5 +928,25 @@ "warmth": 20, "material_thickness": 1, "flags": [ "VARSIZE", "WATERPROOF", "SKINTIGHT" ] + }, + { + "id": "gloves_eod", + "type": "ARMOR", + "category": "armor", + "name": { "str": "pair of EOD gloves", "str_pl": "pairs of EOD gloves" }, + "description": "Light armored gloves constructed from kevlar and nomex for explosive ordnance disposal. They are designed to protect against fragmentation and heat.", + "weight": "800 g", + "volume": "1500 ml", + "price": 70000, + "covers": [ "HANDS" ], + "coverage": 100, + "encumbrance": 20, + "warmth": 40, + "material": [ "kevlar_layered", "nomex" ], + "symbol": "[", + "color": "light_gray", + "environmental_protection": 2, + "material_thickness": 5, + "flags": [ "STURDY", "OUTER", "RAINPROOF", "ONLY_ONE" ] } ] diff --git a/data/json/items/armor/helmets.json b/data/json/items/armor/helmets.json index 6d10547a84a97..268b842290e4c 100644 --- a/data/json/items/armor/helmets.json +++ b/data/json/items/armor/helmets.json @@ -58,7 +58,7 @@ "price_postapoc": 1500, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_rigid", "plastic" ], "symbol": "[", "looks_like": "hat_hard", "color": "green", @@ -83,7 +83,7 @@ "price_postapoc": 1000, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_rigid", "plastic" ], "symbol": "[", "looks_like": "helmet_motor", "color": "dark_gray", @@ -109,7 +109,7 @@ "price_postapoc": 750, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_rigid", "plastic" ], "symbol": "[", "looks_like": "tac_fullhelmet", "color": "dark_gray", @@ -421,7 +421,7 @@ "price_postapoc": 3000, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_rigid", "plastic" ], "symbol": "[", "looks_like": "helmet_barbute", "color": "light_gray", @@ -537,7 +537,7 @@ "price": 55000, "price_postapoc": 3500, "to_hit": -3, - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "looks_like": "mask_gas", "color": "white", diff --git a/data/json/items/armor/holster.json b/data/json/items/armor/holster.json index df49f172752d0..4d5957bf5991d 100644 --- a/data/json/items/armor/holster.json +++ b/data/json/items/armor/holster.json @@ -23,6 +23,7 @@ "min_item_volume": "1500 ml", "max_contains_volume": "9 L", "max_contains_weight": "10 kg", + "max_item_length": "60 cm", "moves": 150 } ], @@ -54,6 +55,7 @@ "min_item_volume": "100 ml", "max_contains_volume": "400 ml", "max_contains_weight": "1 kg", + "max_item_length": "20 cm", "moves": 150 } ], @@ -85,6 +87,7 @@ "min_item_volume": "500 ml", "max_contains_volume": "5 L", "max_contains_weight": "5 kg", + "max_item_length": "160 cm", "moves": 50 } ], @@ -114,6 +117,7 @@ "min_item_volume": "300 ml", "max_contains_volume": "800 ml", "max_contains_weight": "2 kg", + "max_item_length": "25 cm", "moves": 50 } ], @@ -136,7 +140,8 @@ "min_item_volume": "100 ml", "max_contains_volume": "400 ml", "max_contains_weight": "2 kg", - "moves": 80 + "max_item_length": "20 cm", + "moves": 30 } ], "use_action": { "type": "holster" } @@ -161,6 +166,7 @@ "min_item_volume": "100 ml", "max_contains_volume": "400 ml", "max_contains_weight": "1 kg", + "max_item_length": "16 cm", "moves": 210 } ], @@ -192,6 +198,7 @@ "min_item_volume": "1250 ml", "max_contains_volume": "8 L", "max_contains_weight": "8200 g", + "max_item_length": "120 cm", "moves": 50 } ], @@ -222,6 +229,7 @@ "min_item_volume": "750 ml", "max_contains_volume": "1250 ml", "max_contains_weight": "5 kg", + "max_item_length": "30 cm", "moves": 50 } ], diff --git a/data/json/items/armor/hoods.json b/data/json/items/armor/hoods.json index afe02850e3bb3..e0f331408b43f 100644 --- a/data/json/items/armor/hoods.json +++ b/data/json/items/armor/hoods.json @@ -54,7 +54,7 @@ "price_postapoc": 4000, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "nomex" ], + "material": [ "kevlar_layered", "nomex" ], "symbol": "[", "looks_like": "hood_survivor", "color": "light_gray", @@ -78,7 +78,7 @@ "price_postapoc": 3000, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "looks_like": "hood_survivor", "color": "green", @@ -122,7 +122,7 @@ "price_postapoc": 4000, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "leather" ], + "material": [ "kevlar_layered", "leather" ], "symbol": "[", "looks_like": "hood_rain", "color": "brown", @@ -147,7 +147,7 @@ "price_postapoc": 3500, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "fur" ], + "material": [ "kevlar_layered", "fur" ], "symbol": "[", "looks_like": "hood_survivor", "color": "light_gray", @@ -171,7 +171,7 @@ "price_postapoc": 2500, "to_hit": -1, "bashing": 10, - "material": [ "kevlar", "leather" ], + "material": [ "kevlar_layered", "leather" ], "symbol": "[", "looks_like": "hood_survivor", "color": "brown", diff --git a/data/json/items/armor/jewelry.json b/data/json/items/armor/jewelry.json index 06b1cc2123313..53d60b7513386 100644 --- a/data/json/items/armor/jewelry.json +++ b/data/json/items/armor/jewelry.json @@ -296,7 +296,7 @@ "symbol": "[", "looks_like": "tieclip", "color": "brown", - "use_action": { "type": "picklock", "pick_quality": 3 }, + "use_action": "PICK_LOCK", "qualities": [ [ "LOCKPICK", 3 ] ] }, { @@ -796,7 +796,7 @@ "symbol": "[", "color": "yellow", "flags": [ "FANCY" ], - "use_action": { "type": "picklock", "pick_quality": 3 }, + "use_action": "PICK_LOCK", "qualities": [ [ "LOCKPICK", 3 ] ] }, { @@ -1095,7 +1095,7 @@ "symbol": "[", "color": "white", "flags": [ "FANCY" ], - "use_action": { "type": "picklock", "pick_quality": 3 }, + "use_action": "PICK_LOCK", "qualities": [ [ "LOCKPICK", 3 ] ] }, { @@ -1223,7 +1223,7 @@ "symbol": "[", "color": "light_gray", "flags": [ "FANCY" ], - "use_action": { "type": "picklock", "pick_quality": 3 }, + "use_action": "PICK_LOCK", "qualities": [ [ "LOCKPICK", 3 ] ] }, { diff --git a/data/json/items/armor/legs_armor.json b/data/json/items/armor/legs_armor.json index 325d89e24293c..c9f029c885480 100644 --- a/data/json/items/armor/legs_armor.json +++ b/data/json/items/armor/legs_armor.json @@ -97,6 +97,17 @@ "material_thickness": 3, "flags": [ "OUTER" ] }, + { + "id": "chaps_cut_resistant", + "type": "ARMOR", + "name": { "str_sp": "chainsaw chaps" }, + "description": "A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially fatal; personal protective equipment like these chaps help protect your femoral arteries. The layered kevlar is designed to fray on contact with the chain and bind up the tool.", + "weight": "1519 g", + "copy-from": "chaps_leather", + "price": 7800, + "material": [ "kevlar_layered" ], + "material_thickness": 2 + }, { "id": "fencing_pants", "repairs_like": "survivor_suit", @@ -107,7 +118,7 @@ "volume": "2 L", "price": 2500, "price_postapoc": 500, - "material": [ "cotton", "kevlar" ], + "material": [ "cotton", "nylon" ], "symbol": "[", "looks_like": "pants", "color": "white", @@ -287,7 +298,7 @@ "volume": "3500 ml", "price": 40000, "price_postapoc": 1500, - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "looks_like": "pants_survivor", "color": "green", @@ -340,7 +351,7 @@ "volume": "3 L", "price": 38000, "price_postapoc": 2000, - "material": [ "cotton", "kevlar" ], + "material": [ "cotton", "kevlar_layered" ], "symbol": "[", "looks_like": "pants_army", "color": "green", @@ -363,5 +374,45 @@ "valid_mods": [ "steel_padded" ], "environmental_protection": 3, "flags": [ "VARSIZE", "POCKETS", "STURDY", "WATERPROOF" ] + }, + { + "id": "trousers_eod", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "EOD trousers" }, + "description": "Thick armored trousers constructed from kevlar and nomex for explosive ordnance disposal. It is designed to protect against overpressure, fragmentation, impact and heat.", + "weight": "6400 g", + "volume": "12 L", + "price": 200000, + "covers": [ "LEGS" ], + "coverage": 100, + "encumbrance": 80, + "warmth": 65, + "material": [ "kevlar_layered", "nomex" ], + "symbol": "[", + "color": "light_gray", + "environmental_protection": 2, + "material_thickness": 15, + "flags": [ "STURDY", "OUTER", "RAINPROOF", "ONLY_ONE" ] + }, + { + "id": "trousers_eod_light", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "light EOD trousers" }, + "description": "Armored trousers constructed from kevlar and nomex designed to protect against overpressure, fragmentation, impact and heat in hostile environments. It is lighter than normal EOD armor to provide more maneuverability.", + "weight": "3000 g", + "volume": "12 L", + "price": 200000, + "covers": [ "LEGS" ], + "coverage": 100, + "encumbrance": 40, + "warmth": 40, + "material": [ "kevlar_layered", "nomex" ], + "symbol": "[", + "color": "light_gray", + "environmental_protection": 2, + "material_thickness": 7, + "flags": [ "STURDY", "OUTER", "RAINPROOF", "ONLY_ONE" ] } ] diff --git a/data/json/items/armor/masks.json b/data/json/items/armor/masks.json index 29b2cf13b7d87..6caca7629b8e2 100644 --- a/data/json/items/armor/masks.json +++ b/data/json/items/armor/masks.json @@ -19,6 +19,15 @@ "material_thickness": 2, "flags": [ "VARSIZE", "SKINTIGHT" ] }, + { + "id": "balaclava_cut_resistant", + "type": "ARMOR", + "name": { "str": "cut-resistant balaclava" }, + "description": "A face covering garment that helps protect from slashes and cuts, in addition to the cold.", + "copy-from": "balclava", + "price": 7600, + "material": [ "kevlar" ] + }, { "id": "bandana", "type": "ARMOR", diff --git a/data/json/items/armor/pets_dog_armor.json b/data/json/items/armor/pets_dog_armor.json index 7fcefc61b8383..a2af87a42b003 100644 --- a/data/json/items/armor/pets_dog_armor.json +++ b/data/json/items/armor/pets_dog_armor.json @@ -9,7 +9,7 @@ "description": "A blue bulletproof harness, designed to be worn by canines in the service of local law enforcement, that protects from shoulders to abdomen. You could put this on a friendly dog.", "price": 30000, "price_postapoc": 1000, - "material": [ "kevlar" ], + "material": [ "kevlar_layered" ], "weight": "4290 g", "volume": "4500 ml", "bashing": 5, @@ -67,7 +67,7 @@ "description": "A neck to hip harness made from leather that can be attached to a canine for protection. You could put this on a friendly dog.", "price": 17500, "price_postapoc": 1750, - "material": [ "cotton", "leather" ], + "material": [ "leather" ], "weight": "2145 g", "extend": { "flags": [ "NO_SALVAGE" ] } }, @@ -79,7 +79,7 @@ "description": "Decorative bones affixed to a leather dog harness for that true post-apocalyptic style, even with a skull bone headpiece! You could put this on a friendly dog.", "price": 19000, "price_postapoc": 1900, - "material": [ "bone", "leather" ], + "material": [ "leather" ], "weight": "2645 g" }, { diff --git a/data/json/items/armor/pets_horse_armor.json b/data/json/items/armor/pets_horse_armor.json index c46941a1e9a3c..3ca9c3af1d99e 100644 --- a/data/json/items/armor/pets_horse_armor.json +++ b/data/json/items/armor/pets_horse_armor.json @@ -18,7 +18,7 @@ "description": "A heavy mattress-like armor of cloth, leather and thick linings of Kevlar, originally used as protection in bullfighting. You could put this on a friendly horse.", "price": 50000, "price_postapoc": 5000, - "material": [ "cotton", "leather", "kevlar" ], + "material": [ "cotton", "leather", "kevlar_layered" ], "weight": "30 kg", "volume": "150 L", "material_thickness": 10 @@ -124,7 +124,7 @@ "description": "Decorative bones affixed to leather horse barding to invoke fear in bandits and raiders and traders all! You could put this on a friendly horse.", "price": 45000, "price_postapoc": 3000, - "material": [ "bone", "leather" ], + "material": [ "leather" ], "weight": "17 kg", "volume": "150 L", "material_thickness": 6 @@ -161,6 +161,23 @@ "encumbrance": 30, "warmth": 10, "material_thickness": 2, - "flags": [ "BELTED", "WATER_FRIENDLY" ] + "flags": [ "BELTED", "WATER_FRIENDLY" ], + "//": "each 15 L bag is ~ 60 x 25 x 10 cm", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "15 L", + "max_contains_weight": "20 kg", + "max_item_length": "60 cm", + "moves": 200 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "15 L", + "max_contains_weight": "20 kg", + "max_item_length": "60 cm", + "moves": 200 + } + ] } ] diff --git a/data/json/items/armor/power_armor.json b/data/json/items/armor/power_armor.json index 83693e1e2f450..d0cf242230d3f 100644 --- a/data/json/items/armor/power_armor.json +++ b/data/json/items/armor/power_armor.json @@ -100,7 +100,7 @@ "name": { "str": "power armor hauling frame" }, "description": "A heavy duty hauling frame designed to interface with military exoskeletons.", "weight": "1640 g", - "volume": "12 L", + "volume": "45 L", "price": 1000000, "price_postapoc": 10000, "to_hit": 1, diff --git a/data/json/items/armor/sheath.json b/data/json/items/armor/sheath.json index efb91da82ed81..8c3ed8067ba69 100644 --- a/data/json/items/armor/sheath.json +++ b/data/json/items/armor/sheath.json @@ -21,6 +21,7 @@ "moves": 10, "max_contains_volume": "3250 ml", "max_contains_weight": "5 kg", + "max_item_length": "100 cm", "holster": true, "flag_restriction": [ "SHEATH_AXE" ] } @@ -50,6 +51,7 @@ { "max_contains_volume": "3 L", "max_contains_weight": "4 kg", + "max_item_length": "130 cm", "moves": 10, "holster": true, "flag_restriction": [ "SHEATH_SWORD" ] @@ -82,7 +84,8 @@ "flag_restriction": [ "SHEATH_KNIFE" ], "moves": 30, "max_contains_volume": "500 ml", - "max_contains_weight": "1 kg" + "max_contains_weight": "1 kg", + "max_item_length": "30 cm" } ], "use_action": { "type": "holster", "holster_prompt": "Sheath knife", "holster_msg": "You sheath your %s" }, @@ -110,6 +113,7 @@ { "max_contains_volume": "3750 ml", "max_contains_weight": "5 kg", + "max_item_length": "140 cm", "holster": true, "moves": 20, "flag_restriction": [ "SHEATH_SWORD" ] @@ -137,7 +141,13 @@ "encumbrance": 3, "material_thickness": 1, "pocket_data": [ - { "max_contains_volume": "2 L", "max_contains_weight": "4 kg", "holster": true, "flag_restriction": [ "SHEATH_SWORD" ] } + { + "max_contains_volume": "2 L", + "max_contains_weight": "4 kg", + "max_item_length": "100 cm", + "holster": true, + "flag_restriction": [ "SHEATH_SWORD" ] + } ], "use_action": { "type": "holster", "holster_prompt": "Sheath sword", "holster_msg": "You sheath your %s" }, "flags": [ "WAIST", "OVERSIZE", "WATER_FRIENDLY" ] @@ -163,6 +173,7 @@ "holster": true, "max_contains_volume": "750 ml", "max_contains_weight": "2 kg", + "max_item_length": "70 cm", "moves": 3, "flag_restriction": [ "SHEATH_KNIFE" ] } @@ -194,7 +205,8 @@ "moves": 30, "flag_restriction": [ "SHEATH_SPEAR" ], "max_contains_volume": "3500 ml", - "max_contains_weight": "4 kg" + "max_contains_weight": "4 kg", + "max_item_length": "200 cm" } ], "use_action": { "type": "holster", "holster_prompt": "Holster spear", "holster_msg": "You holster your %s." }, diff --git a/data/json/items/armor/storage.json b/data/json/items/armor/storage.json index ecccabfe04511..65b8d46492dd9 100644 --- a/data/json/items/armor/storage.json +++ b/data/json/items/armor/storage.json @@ -373,7 +373,7 @@ "price_postapoc": 250, "to_hit": 2, "bashing": 1, - "material": [ "kevlar", "plastic" ], + "material": [ "nylon", "plastic" ], "symbol": "[", "looks_like": "holster", "color": "dark_gray", @@ -641,7 +641,7 @@ "volume": "2500 ml", "price": 6700, "price_postapoc": 1500, - "material": [ "cotton", "kevlar" ], + "material": [ "cotton", "nylon" ], "symbol": "[", "looks_like": "backpack", "color": "green", @@ -679,7 +679,7 @@ "pocket_data": [ { "pocket_type": "CONTAINER", "max_contains_volume": "4 L", "max_contains_weight": "16 kg", "moves": 300 } ], "warmth": 8, "material_thickness": 2, - "properties": [ [ "monster_size_capacity", "SMALL" ] ], + "properties": [ [ "creature_size_capacity", "SMALL" ] ], "use_action": "CAPTURE_MONSTER_ACT", "flags": [ "BELTED", "WATERPROOF" ] }, @@ -1054,5 +1054,34 @@ "warmth": 5, "material_thickness": 2, "flags": [ "VARSIZE" ] + }, + { + "id": "debug_backpack", + "type": "ARMOR", + "name": { "str": "debug pocket universe" }, + "description": "A pocket universe. Can store approximately 384 * 10^6 bugs.", + "weight": "1 g", + "volume": "1 L", + "price": 0, + "price_postapoc": 0, + "material": [ "cotton" ], + "symbol": "[", + "looks_like": "backpack", + "color": "yellow", + "encumbrance": 0, + "max_encumbrance": 0, + "pocket_data": [ + { + "rigid": true, + "pocket_type": "CONTAINER", + "max_contains_volume": "100000 L", + "max_contains_weight": "100000 kg", + "moves": 1, + "max_item_length": "1 km" + } + ], + "warmth": 0, + "material_thickness": 0, + "flags": [ "BELTED", "WATER_FRIENDLY", "TARDIS" ] } ] diff --git a/data/json/items/armor/suits_protection.json b/data/json/items/armor/suits_protection.json index bd6453af623ce..cad3cdb11c83d 100644 --- a/data/json/items/armor/suits_protection.json +++ b/data/json/items/armor/suits_protection.json @@ -9,7 +9,7 @@ "volume": "9 L", "price": 140000, "price_postapoc": 6000, - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_layered", "plastic" ], "symbol": "[", "looks_like": "hazmat_suit", "color": "light_red", @@ -38,7 +38,7 @@ "volume": "20 L", "price": 400000, "price_postapoc": 9000, - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_layered", "plastic" ], "symbol": "[", "looks_like": "hazmat_suit", "color": "light_red", @@ -378,7 +378,7 @@ "price": 180000, "price_postapoc": 2000, "to_hit": -3, - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "looks_like": "armor_nomad", "color": "green", @@ -522,7 +522,7 @@ "symbol": "[", "looks_like": "jumpsuit", "color": "white", - "covers": [ "LEGS", "TORSO", "ARMS" ], + "covers": [ "LEGS", "FEET", "HEAD", "TORSO", "ARMS" ], "coverage": 100, "encumbrance": 25, "warmth": 10, @@ -539,7 +539,7 @@ "volume": "6 L", "price": 240500, "price_postapoc": 2500, - "material": [ "nomex", "kevlar" ], + "material": [ "nomex", "kevlar_layered" ], "symbol": "[", "looks_like": "jumpsuit", "color": "light_gray", @@ -563,7 +563,7 @@ "price_postapoc": 5000, "to_hit": -3, "bashing": 6, - "material": [ "kevlar", "nomex" ], + "material": [ "kevlar_layered", "nomex" ], "symbol": "[", "looks_like": "survivor_suit", "color": "light_gray", @@ -641,7 +641,7 @@ "price_postapoc": 7000, "to_hit": -3, "bashing": 6, - "material": [ "kevlar", "steel", "leather" ], + "material": [ "kevlar_layered", "steel", "leather" ], "symbol": "[", "looks_like": "survivor_suit", "color": "dark_gray", @@ -670,7 +670,7 @@ "volume": "10500 ml", "price": 110000, "price_postapoc": 5000, - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "looks_like": "survivor_suit", "color": "green", @@ -805,7 +805,7 @@ "volume": "11500 ml", "price": 150000, "price_postapoc": 5000, - "material": [ "kevlar", "leather" ], + "material": [ "kevlar_layered", "leather" ], "symbol": "[", "looks_like": "touring_suit", "color": "brown", @@ -839,7 +839,7 @@ "price_postapoc": 2000, "to_hit": -3, "bashing": 6, - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "looks_like": "touring_suit", "color": "dark_gray", @@ -898,7 +898,7 @@ "price_postapoc": 5000, "to_hit": -3, "bashing": 6, - "material": [ "kevlar", "fur" ], + "material": [ "kevlar_layered", "fur" ], "symbol": "[", "looks_like": "survivor_suit", "color": "light_gray", @@ -930,7 +930,7 @@ "price_postapoc": 4000, "to_hit": -3, "bashing": 6, - "material": [ "kevlar", "leather" ], + "material": [ "kevlar_layered", "leather" ], "symbol": "[", "looks_like": "survivor_suit", "color": "brown", @@ -964,7 +964,7 @@ "price_postapoc": 5000, "to_hit": -3, "bashing": 6, - "material": [ "kevlar", "steel", "leather" ], + "material": [ "kevlar_layered", "steel", "leather" ], "symbol": "[", "looks_like": "hsurvivor_suit", "color": "dark_gray", diff --git a/data/json/items/armor/torso_armor.json b/data/json/items/armor/torso_armor.json index f8a942f73dbb6..bb84550b34029 100644 --- a/data/json/items/armor/torso_armor.json +++ b/data/json/items/armor/torso_armor.json @@ -312,7 +312,7 @@ "price_postapoc": 1250, "to_hit": -3, "bashing": 6, - "material": [ "kevlar" ], + "material": [ "kevlar_layered" ], "symbol": "[", "looks_like": "vest_leather", "color": "light_gray", @@ -448,5 +448,45 @@ "material_thickness": 3, "environmental_protection": 1, "flags": [ "VARSIZE", "POCKETS", "OUTER" ] + }, + { + "id": "jacket_eod", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "EOD jacket" }, + "description": "A thick armored jacket constructed from kevlar and nomex for explosive ordnance disposal. It is designed to protect against overpressure, fragmentation, impact and heat.", + "weight": "16300 g", + "volume": "15 L", + "price": 200000, + "covers": [ "TORSO", "ARMS" ], + "coverage": 100, + "encumbrance": 80, + "warmth": 65, + "material": [ "kevlar_layered", "kevlar_rigid", "nomex" ], + "symbol": "[", + "color": "light_gray", + "environmental_protection": 2, + "material_thickness": 15, + "flags": [ "STURDY", "OUTER", "RAINPROOF", "ONLY_ONE" ] + }, + { + "id": "jacket_eod_light", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "light EOD jacket" }, + "description": "An armored jacket constructed from kevlar and nomex designed to protect against overpressure, fragmentation, impact and heat in hostile environments. It is lighter than normal EOD armor to provide more maneuverability and can be worn over ballistic armor.", + "weight": "7000 g", + "volume": "15 L", + "price": 200000, + "covers": [ "TORSO", "ARMS" ], + "coverage": 100, + "encumbrance": 40, + "warmth": 40, + "material": [ "kevlar_layered", "kevlar_rigid", "nomex" ], + "symbol": "[", + "color": "light_gray", + "environmental_protection": 2, + "material_thickness": 7, + "flags": [ "STURDY", "OUTER", "RAINPROOF", "ONLY_ONE" ] } ] diff --git a/data/json/items/armor/torso_clothes.json b/data/json/items/armor/torso_clothes.json index fd2975e4f911f..e3f4ca38991a5 100644 --- a/data/json/items/armor/torso_clothes.json +++ b/data/json/items/armor/torso_clothes.json @@ -26,6 +26,15 @@ "environmental_protection": 1, "flags": [ "POCKETS", "BELTED", "WATER_FRIENDLY" ] }, + { + "id": "apron_cut_resistant", + "type": "ARMOR", + "name": { "str": "cut-resistant apron" }, + "description": "An apron made of kevlar fabric which provides excellent protection from cuts.", + "copy-from": "apron_leather", + "price": 3800, + "material": [ "kevlar" ] + }, { "id": "blazer", "type": "ARMOR", diff --git a/data/json/items/battery.json b/data/json/items/battery.json index 1fbbc8857b964..3d510fff74bea 100644 --- a/data/json/items/battery.json +++ b/data/json/items/battery.json @@ -34,7 +34,7 @@ "capacity": 50, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 50 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 50 } } ] }, { "id": "light_minus_atomic_battery_cell", @@ -55,7 +55,7 @@ "capacity": 500, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 500 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 500 } } ] }, { "id": "light_minus_disposable_cell", @@ -75,7 +75,7 @@ "capacity": 100, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 100 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 100 } } ] }, { "id": "light_battery_cell", @@ -95,7 +95,7 @@ "capacity": 100, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 100 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 100 } } ] }, { "id": "light_plus_battery_cell", @@ -114,7 +114,7 @@ "capacity": 150, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 150 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 150 } } ] }, { "id": "light_atomic_battery_cell", @@ -135,7 +135,7 @@ "capacity": 1000, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 1000 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ] }, { "id": "light_disposable_cell", @@ -155,7 +155,7 @@ "capacity": 300, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 300 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 300 } } ] }, { "id": "medium_battery_cell", @@ -175,7 +175,7 @@ "capacity": 500, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 500 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 500 } } ] }, { "id": "medium_plus_battery_cell", @@ -194,7 +194,7 @@ "capacity": 600, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 600 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 600 } } ] }, { "id": "medium_atomic_battery_cell", @@ -215,7 +215,7 @@ "capacity": 5000, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 5000 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 5000 } } ] }, { "id": "medium_disposable_cell", @@ -235,7 +235,7 @@ "capacity": 1200, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 1200 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1200 } } ] }, { "id": "heavy_battery_cell", @@ -255,7 +255,7 @@ "capacity": 1000, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 1000 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ] }, { "id": "heavy_plus_battery_cell", @@ -274,7 +274,7 @@ "capacity": 1250, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 1250 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1250 } } ] }, { "id": "heavy_atomic_battery_cell", @@ -295,7 +295,7 @@ "capacity": 10000, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 10000 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 10000 } } ] }, { "id": "huge_atomic_battery_cell", @@ -315,7 +315,7 @@ "capacity": 100000, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "MECH_BAT", "LEAK_DAM", "RADIOACTIVE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 100000 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 100000 } } ] }, { "id": "heavy_disposable_cell", @@ -335,6 +335,6 @@ "capacity": 2500, "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 2500 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 2500 } } ] } ] diff --git a/data/json/items/book/abstract.json b/data/json/items/book/abstract.json index 99d4a5ac7bcfc..c8bef053f9c40 100644 --- a/data/json/items/book/abstract.json +++ b/data/json/items/book/abstract.json @@ -1,40 +1,63 @@ [ { - "abstract": "book_fict_soft_tpl", + "abstract": "book_nonf_tpl", "type": "BOOK", - "name": { "str": "paperback novel", "str_pl": "paperbacks" }, - "description": "An ordinary paperback book. Or is it? It is.", - "weight": "400 g", - "volume": "700 ml", - "price": 750, - "price_postapoc": 1900, - "material": [ "paper" ], + "name": "Generic Nonfiction Book", + "description": "template for a manuscript purporting to be factual", + "intelligence": 5, + "symbol": "?", + "looks_like": "story_book", + "color": "light_blue", + "time": "20 m" + }, + { + "abstract": "book_fict_tpl", + "type": "BOOK", + "name": "Generic Fiction Book", + "description": "template for a work of fiction", + "intelligence": 5, "symbol": "?", "looks_like": "story_book", "color": "light_cyan", - "flags": [ "TINDER", "FLAMMABLE" ], - "intelligence": 4, "time": "15 m", "chapters": 16, "fun": 2 }, { - "abstract": "book_nonf_tpl", + "abstract": "book_fict_hard_tpl", "type": "BOOK", - "name": "Generic Nonfiction Book", - "description": "template for a manuscript purporting to be factual", - "intelligence": 5, - "symbol": "?", - "looks_like": "story_book", - "color": "light_blue", - "time": "20 m" + "name": "Generic Hard Bound Fiction Book", + "description": "Template for hard bound book of fiction", + "weight": "1000 g", + "volume": "1100 ml", + "longest_side": "23 cm", + "price": 1999, + "price_postapoc": 1500, + "material": [ "paper", "cardboard" ], + "bashing": 2, + "copy-from": "book_fict_tpl" + }, + { + "abstract": "book_fict_soft_tpl", + "type": "BOOK", + "name": { "str": "paperback novel", "str_pl": "paperbacks" }, + "description": "An ordinary paperback book. Or is it? It is.", + "weight": "425 g", + "volume": "662 ml", + "longest_side": "18 cm", + "price": 799, + "price_postapoc": 1500, + "material": [ "paper" ], + "bashing": 1, + "flags": [ "FLAMMABLE" ], + "copy-from": "book_fict_tpl" }, { "abstract": "book_nonf_hard_tpl", "type": "BOOK", "name": "Nonfiction Book", "description": "template for hard bound nonfiction book", - "weight": "1000 g", + "weight": "1 kg", "volume": "1100 ml", "price": 1450, "price_postapoc": 2900, @@ -57,6 +80,31 @@ "chapters": 18, "copy-from": "book_nonf_tpl" }, + { + "abstract": "book_fict_soft_pulp_tpl", + "type": "BOOK", + "name": "Generic Pulp Book", + "description": "This is a template for pulp books. Which really all ought to be paperbacks, right?", + "looks_like": "novel_pulp", + "copy-from": "book_fict_soft_tpl", + "relative": { "intelligence": -1, "chapters": -2, "fun": 1, "price": -200, "price_postapoc": -1000 } + }, + { + "abstract": "book_fict_soft_scifi_tpl", + "type": "BOOK", + "name": "Generic SciFi Book", + "description": "This is a template for paperback scifi books.", + "copy-from": "book_fict_soft_tpl", + "relative": { "intelligence": 1, "chapters": 8, "fun": 1 } + }, + { + "abstract": "book_fict_hard_scifi_tpl", + "type": "BOOK", + "name": "Generic SciFi Book", + "description": "This is a template for a hard cover scifi book.", + "copy-from": "book_fict_hard_tpl", + "relative": { "intelligence": 1, "chapters": 8, "fun": 1 } + }, { "abstract": "book_nonf_hard_homemk_tpl", "type": "BOOK", @@ -99,6 +147,58 @@ "fun": -1, "copy-from": "book_nonf_hard_tpl" }, + { + "abstract": "book_nonf_hard_phil_tpl", + "type": "BOOK", + "name": "Hardcover Philosophy", + "description": "This is a template for books about philosophy.", + "fun": 1, + "time": "36 m", + "copy-from": "book_nonf_hard_tpl", + "relative": { "price": 500, "price_post": -2500, "intelligence": 3 } + }, + { + "abstract": "book_nonf_soft_phil_tpl", + "type": "BOOK", + "name": "Softcover Philosophy.", + "description": "This is a template for paperbacks about philosophy.", + "fun": 1, + "time": "36 m", + "copy-from": "book_nonf_soft_tpl", + "relative": { "price": 400, "price_post": -2600, "intelligence": 3 } + }, + { + "abstract": "book_nonf_hard_sports_tpl", + "type": "BOOK", + "name": "Hardcover Nonfiction Sports Book", + "description": "This is a template.", + "fun": 1, + "copy-from": "book_nonf_hard_tpl" + }, + { + "abstract": "book_nonf_soft_sports_tpl", + "type": "BOOK", + "name": "Softcover Nonfiction Sports Book.", + "description": "This is a template.", + "fun": 1, + "copy-from": "book_nonf_soft_tpl" + }, + { + "abstract": "book_fict_hard_sports_tpl", + "type": "BOOK", + "name": "Hardcover Fictional Sports Book", + "description": "This is a template.", + "fun": 2, + "copy-from": "book_fict_hard_tpl" + }, + { + "abstract": "book_fict_soft_sports_tpl", + "type": "BOOK", + "name": "Softcover Fictional Sports Book.", + "description": "This is a template.", + "fun": 2, + "copy-from": "book_fict_soft_tpl" + }, { "abstract": "paperback_occult", "type": "BOOK", @@ -161,7 +261,7 @@ "name": "Tween Topics", "description": "Tween Topics is an imprint of Vanilla Media that publishes stories that appeal to the youth of today. Or, failing that, the parents of said youth.", "copy-from": "book_fict_soft_tpl", - "relative": { "price_post": -400, "intelligence": 1, "fun": -1 } + "relative": { "price_post": -400, "intelligence": -1, "fun": -1 } }, { "abstract": "book_fict_soft_ya_quiddity", @@ -169,7 +269,18 @@ "name": "Quiddity Books", "description": "Quiddity publishes books for young adults. They offer stories about self-discovery, personal identity, and contemporary trends.", "copy-from": "book_fict_soft_tpl", - "relative": { "price_post": -400, "chapters": 9 } + "relative": { "price_post": -400, "chapters": 7 } + }, + { + "abstract": "book_fict_hard_ya_quiddity", + "type": "BOOK", + "name": "Quiddity Books", + "description": "Quiddity publishes books for young adults. They offer stories about self-discovery, personal identity, and contemporary trends.", + "weight": "500 g", + "volume": "1014 ml", + "longest_side": "22 cm", + "copy-from": "book_fict_hard_tpl", + "relative": { "price_post": -400, "chapters": 10 } }, { "abstract": "book_fict_soft_satire_tpl", diff --git a/data/json/items/book/chemistry.json b/data/json/items/book/chemistry.json new file mode 100644 index 0000000000000..fa29d746e9ecb --- /dev/null +++ b/data/json/items/book/chemistry.json @@ -0,0 +1,331 @@ +[ + { + "id": "adv_chemistry", + "type": "BOOK", + "name": { "str": "Advanced Physical Chemistry", "str_pl": "copies of Advanced Physical Chemistry" }, + "description": "A university-level textbook on advanced principles of physical chemistry and all its branches: thermochemistry, electrochemistry, solid-state chemistry, photochemistry, quantum chemistry et cetera.", + "weight": "1712 g", + "volume": "2 L", + "price": 7950, + "price_postapoc": 750, + "bashing": 5, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "skill": "chemistry", + "required_level": 5, + "max_level": 7, + "intelligence": 12, + "time": "35 m", + "fun": -1 + }, + { + "id": "modern_tanner", + "type": "BOOK", + "name": { "str": "The Modern Tanner", "str_pl": "copies of The Modern Tanner" }, + "description": "An in-depth and easy to read guide that details a very modern take on the ancient art of leather tanning.", + "weight": "568 g", + "volume": "750 ml", + "price": 2000, + "price_postapoc": 1250, + "material": [ "paper", "leather" ], + "symbol": "?", + "color": "brown", + "skill": "chemistry", + "required_level": 3, + "max_level": 4, + "intelligence": 4, + "time": "18 m" + }, + { + "id": "recipe_alpha", + "type": "BOOK", + "name": { "str": "PE050 \"Alpha\": Preliminary Report", "str_pl": "copies of PE050 \"Alpha\": Preliminary Report" }, + "description": "This sheaf of papers--dated two weeks before all this started--describes some new chemical formula, and its effects on human subjects. It's stamped \"APPROVED\"…", + "weight": "50 g", + "volume": "500 ml", + "price": 125000, + "price_postapoc": 2000, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 6, + "max_level": 7, + "intelligence": 12, + "time": "45 m", + "fun": -2 + }, + { + "id": "recipe_animal", + "type": "BOOK", + "name": { "str": "lab journal-Dionne", "str_pl": "lab journals-Dionne" }, + "description": "This team logbook details several varieties of mutagenic experiments, focusing on those derived from various Earth fauna. The team seems quite enthusiastic--if not eager--about their results.", + "weight": "1700 g", + "volume": "500 ml", + "price": 50000, + "price_postapoc": 2000, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 6, + "max_level": 7, + "intelligence": 12, + "time": "45 m", + "fun": -2 + }, + { + "id": "recipe_chimera", + "type": "BOOK", + "name": { "str": "PE065 \"Chimera\": Best Practices", "str_pl": "copies of PE065 \"Chimera\": Best Practices" }, + "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 g", + "volume": "500 ml", + "price": 125000, + "price_postapoc": 2000, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 6, + "max_level": 7, + "intelligence": 12, + "time": "45 m", + "fun": -2 + }, + { + "id": "recipe_creepy", + "type": "BOOK", + "name": { "str": "lab journal-Smythe", "str_pl": "lab journals-Smythe" }, + "description": "This team logbook details several varieties of mutagenic experiments, focusing on those derived from flesh contaminated with XE037. The results look promising but the procurement methods seem awfully vague…", + "weight": "1700 g", + "volume": "500 ml", + "price": 50000, + "price_postapoc": 2000, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 6, + "max_level": 7, + "intelligence": 12, + "time": "45 m", + "fun": -4 + }, + { + "id": "recipe_elfa", + "type": "BOOK", + "name": { "str": "standpipe maintenance log" }, + "description": "This binder details the scheduled maintenance for several plumbing systems throughout the facility. However, some of the log sheets seem to be filled with… a chemical formula?", + "weight": "400 g", + "volume": "750 ml", + "price": 400, + "price_postapoc": 2000, + "material": [ "paper", "plastic" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 7, + "max_level": 7, + "intelligence": 12, + "time": "45 m", + "fun": -2 + }, + { + "id": "recipe_labchem", + "type": "BOOK", + "name": { "str": "chemical reference-CLASSIFIED", "str_pl": "chemical references-CLASSIFIED" }, + "description": "This somewhat technical binder has several intimidating security warnings on the cover, yet guarantees unauthorized readers \"permanent employment, for life\". It contains useful information on \"basic\" chemical projects like methamphetamine and heroin, along with briefing on things called \"XE037\" and \"PE012\".", + "weight": "2000 g", + "volume": "500 ml", + "price": 64000, + "price_postapoc": 2000, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 6, + "max_level": 7, + "intelligence": 11, + "time": "35 m", + "fun": -1 + }, + { + "id": "recipe_maiar", + "type": "BOOK", + "name": { "str": "lab journal-x-|xp", "str_pl": "lab journals-x-|xp" }, + "description": "This damaged team logbook lacks (deliberately?) any identifying information, but still contains useful information on several types of mutagen and their development.", + "weight": "1700 g", + "volume": "500 ml", + "price": 50000, + "price_postapoc": 2000, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 6, + "max_level": 7, + "intelligence": 12, + "time": "45 m", + "fun": -3 + }, + { + "id": "recipe_medicalmut", + "type": "BOOK", + "name": { + "str": "PE023 \"Medical\": Application and Findings", + "str_pl": "copies of PE023 \"Medical\": Application and Findings" + }, + "description": "This binder of highly technical papers describes some new chemical formula, and its effects on human subjects. It's stamped \"APPROVED\"…", + "weight": "1934 g", + "volume": "1750 ml", + "price": 62000, + "price_postapoc": 2000, + "bashing": 5, + "material": [ "paper", "plastic" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 6, + "max_level": 7, + "intelligence": 12, + "time": "35 m", + "fun": -2 + }, + { + "id": "recipe_raptor", + "type": "BOOK", + "name": { "str": "PE070 \"Raptor\": Proposal", "str_pl": "copies of PE070 \"Raptor\": Proposal" }, + "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 g", + "volume": "500 ml", + "price": 125000, + "price_postapoc": 2000, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 8, + "max_level": 8, + "intelligence": 12, + "time": "45 m", + "fun": -2 + }, + { + "id": "recipe_serum", + "type": "BOOK", + "name": { "str": "Best Practices for Compound Delivery", "str_pl": "copies of Best Practices for Compound Delivery" }, + "description": "This internal manual details several varieties of mutagenic experiments, as well as describing the protocols used to concentrate mutagens for quicker results. The authors recommend that researchers ensure that their subjects are well-fed and in good health, as the concentrated serums draw heavily on subjects' bodies.", + "weight": "1700 g", + "volume": "500 ml", + "price": 50000, + "price_postapoc": 2000, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "skill": "chemistry", + "required_level": 6, + "max_level": 8, + "intelligence": 12, + "time": "45 m", + "fun": -4 + }, + { + "id": "reference_cooking", + "type": "BOOK", + "name": { "str": "CRC-Merck Handbook, 4th edition", "str_pl": "copies of CRC-Merck Handbook, 4th edition" }, + "description": "This huge hardbound book is a collection of reference data and formulae pertinent to many technical disciplines. If poring over tables of chemical and physical data is your thing, this is the book for you.", + "weight": "5790 g", + "volume": "1750 ml", + "price": 9000, + "price_postapoc": 2000, + "bashing": 7, + "material": [ "paper" ], + "symbol": "?", + "color": "light_green", + "intelligence": 4, + "time": "30 m", + "fun": -2 + }, + { + "id": "textbook_chemistry", + "type": "BOOK", + "name": { "str": "chemistry textbook" }, + "description": "A college textbook on chemistry.", + "weight": "1587 g", + "volume": "2 L", + "price": 7950, + "price_postapoc": 2000, + "bashing": 5, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "skill": "chemistry", + "required_level": 4, + "max_level": 6, + "intelligence": 12, + "time": "35 m", + "fun": -1 + }, + { + "id": "textbook_extraction", + "type": "BOOK", + "name": { "str": "The Essential Oil Enthusiasts Handbook", "str_pl": "copies of The Essential Oil Enthusiasts Handbook" }, + "description": "A heavy hardback book explaining the process of essential oil making, with schematics for the equipment to do it. Good luck, and don't blow yourself up!", + "looks_like": "textbook_chemistry", + "weight": "1420 g", + "volume": "1 L", + "price": 6000, + "price_postapoc": 10000, + "bashing": 4, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "skill": "chemistry", + "required_level": 4, + "max_level": 6, + "intelligence": 10, + "time": "60 m" + }, + { + "id": "textbook_gaswarfare", + "type": "BOOK", + "name": { "str": "Art and Science of Chemical Warfare", "str_pl": "copies of Art and Science of Chemical Warfare" }, + "description": "This in-depth and technical text covers the design, development, dissemination of, and defenses against various chemical weapons throughout the centuries. The photographs the author chose make it a difficult read at times, though the information is top-notch.", + "weight": "854 g", + "volume": "1500 ml", + "price": 400, + "price_postapoc": 1000, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "skill": "chemistry", + "required_level": 4, + "max_level": 6, + "intelligence": 9, + "time": "20 m", + "fun": -2 + }, + { + "id": "basic_chemistry", + "type": "BOOK", + "name": { + "str": "Chemistry for Kids: Awesome Science Experiments that Really Work", + "str_pl": "copies of Chemistry for Kids: Awesome Science Experiments that Really Work" + }, + "description": "A book with comprehensive and accurate step-by-step illustrated instructions for many scientific experiments for young researchers and anyone else who want to delve into an amazing world of chemistry.", + "weight": "362 g", + "volume": "500 ml", + "price": 550, + "price_postapoc": 1900, + "material": [ "paper" ], + "symbol": "?", + "color": "light_cyan", + "skill": "chemistry", + "max_level": 3, + "intelligence": 6, + "time": "15 m", + "fun": 2 + } +] diff --git a/data/json/items/book/cooking.json b/data/json/items/book/cooking.json index 326bd3ec2b5ec..f337c01769fda 100644 --- a/data/json/items/book/cooking.json +++ b/data/json/items/book/cooking.json @@ -1,24 +1,4 @@ [ - { - "id": "adv_chemistry", - "type": "BOOK", - "name": { "str": "Advanced Physical Chemistry", "str_pl": "copies of Advanced Physical Chemistry" }, - "description": "A university-level textbook on advanced principles of chemistry, both organic and inorganic.", - "weight": "1712 g", - "volume": "2 L", - "price": 7950, - "price_postapoc": 750, - "bashing": 5, - "material": [ "paper" ], - "symbol": "?", - "color": "blue", - "skill": "cooking", - "required_level": 5, - "max_level": 8, - "intelligence": 12, - "time": "35 m", - "fun": -1 - }, { "id": "brewing_cookbook", "type": "BOOK", @@ -169,235 +149,6 @@ "time": "24 m", "fun": 1 }, - { - "id": "modern_tanner", - "type": "BOOK", - "name": { "str": "The Modern Tanner", "str_pl": "copies of The Modern Tanner" }, - "description": "An in-depth and easy to read guide that details a very modern take on the ancient art of leather tanning.", - "weight": "568 g", - "volume": "750 ml", - "price": 2000, - "price_postapoc": 1250, - "material": [ "paper", "leather" ], - "symbol": "?", - "color": "brown", - "skill": "cooking", - "required_level": 3, - "max_level": 4, - "intelligence": 4, - "time": "18 m" - }, - { - "id": "recipe_alpha", - "type": "BOOK", - "name": { "str": "PE050 \"Alpha\": Preliminary Report", "str_pl": "copies of PE050 \"Alpha\": Preliminary Report" }, - "description": "This sheaf of papers--dated two weeks before all this started--describes some new chemical formula, and its effects on human subjects. It's stamped \"APPROVED\"…", - "weight": "50 g", - "volume": "500 ml", - "price": 125000, - "price_postapoc": 2000, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 8, - "max_level": 9, - "intelligence": 12, - "time": "45 m", - "fun": -2 - }, - { - "id": "recipe_animal", - "type": "BOOK", - "name": { "str": "lab journal-Dionne", "str_pl": "lab journals-Dionne" }, - "description": "This team logbook details several varieties of mutagenic experiments, focusing on those derived from various Earth fauna. The team seems quite enthusiastic--if not eager--about their results.", - "weight": "1700 g", - "volume": "500 ml", - "price": 50000, - "price_postapoc": 2000, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 8, - "max_level": 9, - "intelligence": 12, - "time": "45 m", - "fun": -2 - }, - { - "id": "recipe_chimera", - "type": "BOOK", - "name": { "str": "PE065 \"Chimera\": Best Practices", "str_pl": "copies of PE065 \"Chimera\": Best Practices" }, - "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 g", - "volume": "500 ml", - "price": 125000, - "price_postapoc": 2000, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 8, - "max_level": 9, - "intelligence": 12, - "time": "45 m", - "fun": -2 - }, - { - "id": "recipe_creepy", - "type": "BOOK", - "name": { "str": "lab journal-Smythe", "str_pl": "lab journals-Smythe" }, - "description": "This team logbook details several varieties of mutagenic experiments, focusing on those derived from flesh contaminated with XE037. The results look promising but the procurement methods seem awfully vague…", - "weight": "1700 g", - "volume": "500 ml", - "price": 50000, - "price_postapoc": 2000, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 8, - "max_level": 9, - "intelligence": 12, - "time": "45 m", - "fun": -4 - }, - { - "id": "recipe_elfa", - "type": "BOOK", - "name": { "str": "standpipe maintenance log" }, - "description": "This binder details the scheduled maintenance for several plumbing systems throughout the facility. However, some of the log sheets seem to be filled with… a chemical formula?", - "weight": "400 g", - "volume": "750 ml", - "price": 400, - "price_postapoc": 2000, - "material": [ "paper", "plastic" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 9, - "max_level": 9, - "intelligence": 12, - "time": "45 m", - "fun": -2 - }, - { - "id": "recipe_labchem", - "type": "BOOK", - "name": { "str": "chemical reference-CLASSIFIED", "str_pl": "chemical references-CLASSIFIED" }, - "description": "This somewhat technical binder has several intimidating security warnings on the cover, yet guarantees unauthorized readers \"permanent employment, for life\". It contains useful information on \"basic\" chemical projects like methamphetamine and heroin, along with briefing on things called \"XE037\" and \"PE012\".", - "weight": "2000 g", - "volume": "500 ml", - "price": 64000, - "price_postapoc": 2000, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 5, - "max_level": 8, - "intelligence": 11, - "time": "35 m", - "fun": -1 - }, - { - "id": "recipe_maiar", - "type": "BOOK", - "name": { "str": "lab journal-x-|xp", "str_pl": "lab journals-x-|xp" }, - "description": "This damaged team logbook lacks (deliberately?) any identifying information, but still contains useful information on several types of mutagen and their development.", - "weight": "1700 g", - "volume": "500 ml", - "price": 50000, - "price_postapoc": 2000, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 8, - "max_level": 9, - "intelligence": 12, - "time": "45 m", - "fun": -3 - }, - { - "id": "recipe_medicalmut", - "type": "BOOK", - "name": { - "str": "PE023 \"Medical\": Application and Findings", - "str_pl": "copies of PE023 \"Medical\": Application and Findings" - }, - "description": "This binder of highly technical papers describes some new chemical formula, and its effects on human subjects. It's stamped \"APPROVED\"…", - "weight": "1934 g", - "volume": "1750 ml", - "price": 62000, - "price_postapoc": 2000, - "bashing": 5, - "material": [ "paper", "plastic" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 8, - "max_level": 9, - "intelligence": 12, - "time": "35 m", - "fun": -2 - }, - { - "id": "recipe_raptor", - "type": "BOOK", - "name": { "str": "PE070 \"Raptor\": Proposal", "str_pl": "copies of PE070 \"Raptor\": Proposal" }, - "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 g", - "volume": "500 ml", - "price": 125000, - "price_postapoc": 2000, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 10, - "max_level": 10, - "intelligence": 12, - "time": "45 m", - "fun": -2 - }, - { - "id": "recipe_serum", - "type": "BOOK", - "name": { "str": "Best Practices for Compound Delivery", "str_pl": "copies of Best Practices for Compound Delivery" }, - "description": "This internal manual details several varieties of mutagenic experiments, as well as describing the protocols used to concentrate mutagens for quicker results. The authors recommend that researchers ensure that their subjects are well-fed and in good health, as the concentrated serums draw heavily on subjects' bodies.", - "weight": "1700 g", - "volume": "500 ml", - "price": 50000, - "price_postapoc": 2000, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "skill": "cooking", - "required_level": 8, - "max_level": 10, - "intelligence": 12, - "time": "45 m", - "fun": -4 - }, - { - "id": "reference_cooking", - "type": "BOOK", - "name": { "str": "CRC-Merck Handbook, 4th edition", "str_pl": "copies of CRC-Merck Handbook, 4th edition" }, - "description": "This huge hardbound book is a collection of reference data and formulae pertinent to many technical disciplines. If poring over tables of chemical and physical data is your thing, this is the book for you.", - "weight": "5790 g", - "volume": "1750 ml", - "price": 9000, - "price_postapoc": 2000, - "bashing": 7, - "material": [ "paper" ], - "symbol": "?", - "color": "light_green", - "intelligence": 4, - "time": "30 m", - "fun": -2 - }, { "id": "scots_cookbook", "type": "BOOK", @@ -406,7 +157,7 @@ "str": "Ye Scots Beuk o Cuikery", "str_pl": "copies of Ye Scots Beuk o Cuikery" }, - "description": "A semi-translated cookbook from thirteenth century Scotland. While a bit difficult to read, as there are a disquieting number of illustrations of people stabbing each other mixed amongst the recipes, it provides insights into medieval Scottish culture and fashion as well as new uses for oatmeal, fish, and sheep liver.", + "description": "A semi-translated Gaelic cookbook from sixteenth century Scotland. While a bit difficult to read, as there are a disquieting number of illustrations of people stabbing each other mixed with rants about 'True Scotsman', it provides insights into medieval Scottish cuisine and culture.", "weight": "1887 g", "volume": "1250 ml", "price": 1950, @@ -420,27 +171,7 @@ "max_level": 4, "intelligence": 10, "time": "45 m", - "fun": -1 - }, - { - "id": "textbook_chemistry", - "type": "BOOK", - "name": { "str": "chemistry textbook" }, - "description": "A college textbook on chemistry.", - "weight": "1587 g", - "volume": "2 L", - "price": 7950, - "price_postapoc": 2000, - "bashing": 5, - "material": [ "paper" ], - "symbol": "?", - "color": "blue", - "skill": "cooking", - "required_level": 3, - "max_level": 6, - "intelligence": 12, - "time": "35 m", - "fun": -1 + "fun": 1 }, { "id": "vinegar_maker", @@ -634,7 +365,10 @@ { "id": "distilling_cookbook", "type": "BOOK", - "name": { "str": "Out of the Holler and into the Home: A guide to home distilation. ", "str_pl": "copies of Out of the Holler" }, + "name": { + "str": "Out of the Holler and into the Home: A guide to home distillation. ", + "str_pl": "copies of Out of the Holler" + }, "description": "A book describing the history of at home distillation by liquor. Each chapter contains a complete recipe for its namesake.", "weight": "454 g", "volume": "619 ml", diff --git a/data/json/items/book/fabrication.json b/data/json/items/book/fabrication.json index 0ae0ee0ae3641..2098cdce29076 100644 --- a/data/json/items/book/fabrication.json +++ b/data/json/items/book/fabrication.json @@ -276,25 +276,6 @@ "intelligence": 8, "time": "30 m" }, - { - "id": "textbook_gaswarfare", - "type": "BOOK", - "name": { "str": "Art and Science of Chemical Warfare", "str_pl": "copies of Art and Science of Chemical Warfare" }, - "description": "This in-depth and technical text covers the design, development, dissemination of, and defenses against various chemical weapons throughout the centuries. The photographs the author chose make it a difficult read at times, though the information is top-notch.", - "weight": "854 g", - "volume": "1500 ml", - "price": 400, - "price_postapoc": 1000, - "material": [ "paper" ], - "symbol": "?", - "color": "blue", - "skill": "fabrication", - "required_level": 4, - "max_level": 7, - "intelligence": 9, - "time": "20 m", - "fun": -2 - }, { "id": "textbook_weapeast", "type": "BOOK", @@ -461,26 +442,6 @@ "time": "30 m", "fun": -2 }, - { - "id": "textbook_extraction", - "type": "BOOK", - "name": { "str": "The Essential Oil Enthusiasts Handbook", "str_pl": "copies of The Essential Oil Enthusiasts Handbook" }, - "description": "A heavy hardback book explaining the process of essential oil making, with schematics for the equipment to do it. Good luck, and don't blow yourself up!", - "looks_like": "textbook_chemistry", - "weight": "1420 g", - "volume": "1 L", - "price": 6000, - "price_postapoc": 10000, - "bashing": 4, - "material": [ "paper" ], - "symbol": "?", - "color": "blue", - "skill": "fabrication", - "required_level": 5, - "max_level": 8, - "intelligence": 10, - "time": "60 m" - }, { "id": "concrete_book", "type": "BOOK", diff --git a/data/json/items/book/misc.json b/data/json/items/book/misc.json index cac72189da0af..4a0c3c2e62764 100644 --- a/data/json/items/book/misc.json +++ b/data/json/items/book/misc.json @@ -215,32 +215,6 @@ "price": 650, "time": "20 m" }, - { - "id": "novel_coa", - "type": "BOOK", - "name": { "str": "coming of age novel" }, - "description": "A classic tale about growing up, portraying one young man's funny and poignant experiences with life, love, and sex.", - "weight": "187 g", - "volume": "500 ml", - "price": 750, - "price_postapoc": 50, - "material": [ "paper" ], - "symbol": "?", - "color": "light_blue", - "intelligence": 4, - "time": "20 m", - "chapters": 16, - "fun": 2 - }, - { - "id": "novel_coa2", - "type": "BOOK", - "name": { "str": "coming of age novel" }, - "copy-from": "novel_coa", - "description": "A graphic novel about a young girl living in Iran during the 1980's, seeing the world change around her as Iraq invaded her country.", - "time": "16 m", - "relative": { "chapters": -2, "fun": 1 } - }, { "id": "novel_crime", "type": "BOOK", @@ -348,45 +322,6 @@ "chapters": 28, "fun": 3 }, - { - "id": "novel_pulp", - "type": "BOOK", - "name": { "str": "pulp novel" }, - "description": "A hardboiled detective tale filled with hard hitting action and intrigue.", - "copy-from": "book_fict_soft_tpl", - "intelligence": 6, - "time": "18 m", - "chapters": 24, - "fun": 3 - }, - { - "id": "book_fict_soft_pulp_squids", - "type": "BOOK", - "name": "Planet of the Murderous Squids that Time Forgot!", - "description": "In this psychedelic adventure novel of cosmic exploration, an elderly assassin discovers a planet too good to be true. Only once it is too late does she discover the harrowing truth at the center of \"The Planet of the Murderous Squids that Time Forgot!\"", - "copy-from": "book_fict_soft_tpl" - }, - { - "id": "book_fict_soft_pulp_gcapes", - "type": "BOOK", - "name": "The Great Capes of Metropolis", - "description": "In this classic pulp paperback of superheroic exploits, a group of masked vigilantes with diverse superpowers learn to work together to defeat the ultimate villain.", - "copy-from": "book_fict_soft_tpl" - }, - { - "id": "book_fict_soft_pulp_yesmurd", - "type": "BOOK", - "name": "Yesterday's Murdered", - "description": "In this fast paced pulp noir, a hard-drinking detective with nerves of steel has one last shot at vengeance.", - "copy-from": "book_fict_soft_tpl" - }, - { - "id": "book_fict_soft_pulp_flashcc", - "type": "BOOK", - "name": "Flashgun Condor and the Crimson Criminal", - "description": "A hot-blooded photographer who fights crime with film, footage, and fists, Condor is more than a mere shutterbug on the crime beat. But will she be able to unravel a devious deception and bring the \"Crimson Criminal\" to justice?", - "copy-from": "book_fict_soft_tpl" - }, { "id": "novel_road", "type": "BOOK", @@ -483,18 +418,16 @@ "id": "novel_samurai", "type": "BOOK", "name": { "str": "samurai novel" }, - "description": "The classic tale of a wandering swordsman who comes to a small settlement and is hired to help the townsfolk defend themselves from a band of marauding outlaws.", - "weight": "322 g", - "volume": "750 ml", - "price": 750, - "price_postapoc": 50, - "material": [ "paper" ], - "symbol": "?", - "color": "light_blue", - "intelligence": 7, + "description": "The classic tale of a wandering swordsman who comes to a small settlement and is hired to help the townsfolk defend themselves from a band of marauding outlaws. This hardback is quite hefty.", + "//isbn13": 9781568364278, + "weight": "1090 g", + "volume": "1367 ml", + "longest_side": "22 cm", + "price": 3499, "time": "20 m", - "chapters": 28, - "fun": 4 + "copy-from": "book_fict_hard_tpl", + "//bashing": "3 (2+1)", + "relative": { "intelligence": 1, "chapters": 12, "fun": 2, "bashing": 1 } }, { "id": "novel_satire", @@ -524,10 +457,15 @@ { "id": "book_fict_soft_satire_mandm", "type": "BOOK", - "name": "The Master and Margarita", - "description": "Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, vampires, a talking cat, and the literary elite of Moscow, this is a satire on Stalinist tyranny written by Mikhail Bulgakov.", + "name": { "str": "The Master and Margarita", "str_pl": "copies of Master and Margarita" }, + "description": "Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, vampires, a talking cat, and the literary elite of Moscow, this novel by Mikhail Bulgakov explores philosophical issues on the nature of good and evil.", + "//isbn13": 9780802130112, + "weight": "441 g", + "volume": "719 ml", + "longest_side": "21 cm", + "chapters": 32, "copy-from": "book_fict_soft_satire_tpl", - "relative": { "chapters": 16, "fun": 1 } + "relative": { "fun": 1 } }, { "id": "book_fict_soft_satire_dust", @@ -542,181 +480,10 @@ "name": "Cat’s Cradle", "description": "A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of nuclear destruction isn't much of an influence on human nature.", "weight": "360 g", - "copy-from": "book_fict_soft_satire_tpl", "time": "1 m", - "relative": { "chapters": 111, "fun": -1 } - }, - { - "id": "novel_scifi", - "type": "BOOK", - "name": { "str": "scifi novel" }, - "description": "Aliens, ray guns, and space ships.", - "weight": "227 g", - "volume": "750 ml", - "price": 850, - "price_postapoc": 50, - "material": [ "paper" ], - "symbol": "?", - "color": "light_blue", - "intelligence": 6, - "time": "20 m", - "chapters": 24, - "fun": 3, - "snippet_category": [ - { - "id": "scifi1_1", - "text": "This is a copy of Gibson's \"Neuromancer\". Written in the eighties, it was surprisingly accurate in predicting much of modern society… Until recently." - }, - { - "id": "scifi1_2", - "text": "This is a copy of \"The Stars My Destination\" by Alfred Bester.\n\nTyger, Tyger, Burning bright,\nIn the forests of the night:\nWhat immortal hand or eye,\nDare frame thy fearful symmetry?" - }, - { - "id": "scifi1_3", - "text": "This is a copy of \"The Lathe of Heaven\" by Ursula Le Guin. Dirty finger-stains have smudged the occasional word." - }, - { "id": "scifi1_4", "text": "This is a copy of \"The Dispossessed\" by Ursula Le Guin." }, - { "id": "scifi1_5", "text": "This copy of Ray Bradbury's \"Fahrenheit 451\"." }, - { "id": "scifi1_6", "text": "This is a copy of \"Hyperion\" by Dan Simmons." }, - { - "id": "scifi1_7", - "text": "This is a copy of \"Endymion\" by Dan Simmons. It opens with a poem by D.H. Lawrence:\n\nGive us gods. Oh give them us!\nGive us gods.\nWe are so tired of men\nAnd motor-power." - }, - { "id": "scifi1_8", "text": "This is a copy of Philip K. Dick's \"Do Androids Dream of Electric Sheep?\"." }, - { "id": "scifi1_9", "text": "This is a dog-eared copy of \"Nova Express\" by William Burroughs." }, - { - "id": "scifi1_10", - "text": "This is a copy of \"Foundation\" by Isaac Asimov. The back cover has been ripped off." - }, - { - "id": "scifi1_11", - "text": "This is a dog-eared copy of \"Dune\" by Frank Herbert. It has sand between some of its pages. Weird." - }, - { "id": "scifi1_12", "text": "This is a copy of \"The Trial\" by Franz Kafka. This book is rather worn." }, - { "id": "scifi1_13", "text": "This is a copy of \"The Handmaid's Tale\" by Margaret Atwood." }, - { - "id": "scifi1_14", - "text": "This is a copy of \"The Windup Girl\" by Paolo Bacigalupi. The blurb makes you wonder how Thailand fared the end of the world." - }, - { "id": "scifi1_15", "text": "This is a copy of \"Islands in the Net\" by Bruce Sterling." }, - { - "id": "scifi1_16", - "text": "This is a copy of \"Foundation and Empire\" by Isaac Asimov. The back page contains a hand-written grocery list." - }, - { - "id": "scifi1_17", - "text": "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It still has the smell of new books within its pages." - }, - { - "id": "scifi1_18", - "text": "This is a copy of \"Mirrorshades: A Cyberpunk Anthology\" compiled by Bruce Sterling. The cover has rings of coffee stains over it." - }, - { - "id": "scifi1_19", - "text": "This is a copy of \"The World of Null-A\" by A. E. van Vogt. This copy looks to have been used to press flowers." - }, - { "id": "scifi1_20", "text": "This is a copy of \"Altered Carbon\" by Richard Morgan." }, - { - "id": "scifi1_21", - "text": "This is a copy of Mary Shelly's \"Frankenstein\". Wasn't that the name of the monster?" - }, - { - "id": "scifi1_22", - "text": "This is a copy of \"Wasp\" by Eric Frank Russel. The futuristic terrorist's handbook." - }, - { - "id": "scifi1_23", - "text": "This is a copy of \"I Am Legend\" by Richard Matheson. The sleeve is covered in dried blood." - }, - { "id": "scifi1_24", "text": "This is a copy of \"Roadside Picnic\" by Arkady and Boris Strugatsky." }, - { - "id": "scifi1_25", - "text": "This is a copy of \"The Forever War\" by Joe Haldeman. This copy looks as if it's been slightly chewed by a dog or other large animal." - }, - { "id": "scifi1_26", "text": "This is a copy of \"The Moon Is a Harsh Mistress\" by Robert A. Heinlein." }, - { - "id": "scifi1_27", - "text": "This is a copy of \"Cat's Cradle\" by Kurt Vonnegut. You notice there is a typo in the authors name on the spine of the book." - }, - { - "id": "scifi1_28", - "text": "This is a copy of Samuel R. Delany's \"Nova\". The cover reads \"Review Copy. Not for re-sale.\"" - }, - { "id": "scifi1_29", "text": "This is a copy of Vonnegut's \"The Sirens of Titan\"." }, - { - "id": "scifi1_30", - "text": "This is a copy of \"Grass\" by Sheri S. Tepper. A child has scribbled over the first pages in crayon." - }, - { - "id": "scifi1_31", - "text": "This is a copy of William Gibson's \"Count Zero\". The spine is stamped with 'Library Copy'. And a sticker reading 'Science Fiction'." - }, - { - "id": "scifi1_32", - "text": "This is a copy of \"The Fifth Season\" by N.K. Jemsin. It smells faintly of dirt." - }, - { "id": "scifi1_33", "text": "This is a copy of \"The Weapon Makers\" by A. E. van Vogt." }, - { - "id": "scifi1_34", - "text": "This is a copy of \"Record of a Spaceborn Few\" by Becky Chambers. It looks almost brand new." - }, - { - "id": "scifi1_35", - "text": "This is a copy of \"Use of Weapons\" by Ian M. Banks. The spine is cracked and worn, some pages appear to be loose." - }, - { "id": "scifi1_36", "text": "This is a copy of Jean-Baptiste Cousin de Grainville's \"Le Dernier Homme\"." }, - { - "id": "scifi1_37", - "text": "This is a copy of Orwell's \"Nineteen Eighty-Four\". The pages are loose and thin. You should probably be careful with this copy." - }, - { - "id": "scifi1_38", - "text": "This is a copy of Heinlein's \"Stranger in a Strange Land\". The cover is dog-eared and worn." - }, - { "id": "scifi1_39", "text": "This is a copy of Orson Scott Card's \"Ender's Game\"." }, - { "id": "scifi1_40", "text": "This is a weather worn copy of \"Brave New World\" by Aldous Huxley." }, - { "id": "scifi1_41", "text": "This is a copy of \"The Lost World\" by Arthur Conan Doyle." }, - { "id": "scifi1_42", "text": "This is a copy of \"Islands in the Sky\" by Arthur C. Clarke." }, - { "id": "scifi1_43", "text": "This is a copy of H. G. Wells' \"The Island of Doctor Moreau\"." }, - { "id": "scifi1_44", "text": "This is a copy of Stanislaw Lem's \"His Masters Voice\"." }, - { "id": "scifi1_45", "text": "This is a copy of Fred Hoyle's \"The Black Cloud\"." }, - { "id": "scifi1_46", "text": "This is a copy of \"Last and First Men\" by Olaf Stapeldon." }, - { "id": "scifi1_47", "text": "This is a copy of Stanislaw Lem's \"Solaris\"." }, - { "id": "scifi1_48", "text": "This is a copy of Theodore Sturgeon's \"More Than Human\"." }, - { "id": "scifi1_49", "text": "This is a copy of \"Vurt\" by Jeff Noon." }, - { "id": "scifi1_50", "text": "This is a copy of \"A Canticle for Leibowitz\" by Walter M. Miller Jr." }, - { "id": "scifi1_51", "text": "This is a copy of \"The War of The Worlds\" by H.G Wells." }, - { "id": "scifi1_52", "text": "This is a copy of \"Iron Sunrise\" by Charles Stross." }, - { - "id": "scifi1_53", - "text": "This is a copy of \"The Hunger Games\" by Suzanne Collins. Reading the blurb reminds you of a Japanese movie you think you once caught on the television late at night." - }, - { "id": "scifi1_54", "text": "This is a copy of \"The Day of the Triffids\" by John Wyndham." }, - { "id": "scifi1_55", "text": "This is a copy of \"A Clockwork Orange\" by Anthony Burges." }, - { "id": "scifi1_56", "text": "This is a copy of \"The Man Who Fell to Earth\" by Walter Tevis." }, - { "id": "scifi1_57", "text": "This is a copy of \"Simulacron-3\" by Daniel F. Galouye." }, - { "id": "scifi1_58", "text": "This is a copy of \"The Glass Bees\" by Ernst Jünger." }, - { "id": "scifi1_59", "text": "This is a copy of \"Journey to The Center of the Earth\" by Jules Verne." }, - { - "id": "scifi1_60", - "text": "This is a copy of Larry Niven's \"Ringworld\". There are a couple of pages missing from the end of the book. Luckily only mail-order advertisements." - }, - { - "id": "scifi1_61", - "text": "This is a well-worn copy of \"The Hitchhikers Guide to the Galaxy\" by Douglas Adams." - } - ] - }, - { - "id": "novel_sports", - "type": "BOOK", - "name": { "str": "sports novel" }, - "description": "The dramatic tale of a small-time boxer who gets a rare chance to fight the heavy-weight champion, and seize his one chance to make a better life for himself while impressing the cute girl who works in the pet store.", - "copy-from": "book_fict_soft_tpl", - "intelligence": 7, - "time": "20 m", - "chapters": 28, - "fun": 3 + "chapters": 127, + "fun": 1, + "copy-from": "book_fict_soft_satire_tpl" }, { "id": "novel_spy", @@ -890,172 +657,6 @@ "copy-from": "paperback_western_em", "relative": { "chapters": -1, "fun": -1 } }, - { - "id": "philosophy_book", - "type": "BOOK", - "name": { "str": "book of philosophy", "str_pl": "books of philosophy" }, - "description": "A deep discussion of morality with an emphasis on epistemology and logic.", - "snippet_category": [ - { - "id": "philosophy1", - "text": "This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-eared and creased." - }, - { - "id": "philosophy2", - "text": "This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern translation by Wolfi Landstreicher." - }, - { - "id": "philosophy3", - "text": "This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work in the existentialist tradition." - }, - { - "id": "philosophy4", - "text": "A large, extended version of \"Madness and Civilisation\" by Michel Foucault. The cover features a striking image of a Panopticonic Prison." - }, - { - "id": "philosophy5", - "text": "This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by Lyotard." - }, - { - "id": "philosophy6", - "text": "A collection of texts and essays by Jacques Derrida. Its pages are loose and yellowed - you should probably handle it with care." - }, - { - "id": "philosophy7", - "text": "This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover shows rows of adults staring placidly into a screen." - }, - { - "id": "philosophy8", - "text": "This is a split copy of both \"An Ethic of Sexual Difference\" and \"This Sex Which Is Not One\" by Luce Irigaray." - }, - { - "id": "philosophy9", - "text": "This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover contains an image of a man holding a colored pill in each hand, with the caption \"Welcome to the Desert of the Real.\". You think you've seen this movie." - }, - { - "id": "philosophy10", - "text": "This is a small, pocket version of Sartre's \"Existentialism and Humanism\". It looks to have been used as a coaster in a past life." - }, - { - "id": "philosophy11", - "text": "This is a copy of \"Practical Ethics\" by Peter Singer. From the local university press." - }, - { - "id": "philosophy12", - "text": "This is a photocopied spiral-bound copy of \"Industrial Society and Its Future\" by 'Freedom Club'. The original looks to have been written on a typewriter before being copied." - }, - { - "id": "philosophy13", - "text": "This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. Its cover is an image of a hand-crafted wooden box filled with wiring and an ominous looking metal tube. Provocative." - }, - { "id": "philosophy14", "text": "This is a small reader on Hegel's Dialectics." }, - { - "id": "philosophy15", - "text": "This is a copy of \"The State and Revolution\" by Vladimir Lenin. In English, thankfully." - }, - { "id": "philosophy16", "text": "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." }, - { - "id": "philosophy17", - "text": "This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security tag on the back cover. It appears to still be active." - }, - { - "id": "philosophy18", - "text": "This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. It contains a dried and pressed leaf as a bookmark." - }, - { - "id": "philosophy19", - "text": "This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has scribbled over the contents page in red crayon." - }, - { "id": "philosophy20", "text": "This is a copy of \"An Introduction to Metaphysics\" by Bergson." }, - { - "id": "philosophy21", - "text": "This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by Jacques Lacan." - }, - { "id": "philosophy22", "text": "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." }, - { "id": "philosophy23", "text": "This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." }, - { - "id": "philosophy24", - "text": "This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The cover contains an image of a pelican." - }, - { "id": "philosophy25", "text": "This is a copy of \"Either-Or\" by Søren Kierkegaard." }, - { "id": "philosophy26", "text": "This is a copy of \"Allegory of the Cave\" by Plato." }, - { "id": "philosophy27", "text": "This is a copy of \"Leviathan\" by Thomas Hobbes." }, - { "id": "philosophy28", "text": "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." }, - { "id": "philosophy29", "text": "This is a copy of \"Principles of Philosophy\" by Descartes." }, - { - "id": "philosophy30", - "text": "This is a copy of both \"On The Genealogy of Morals\" and \"The Gay Science\" by Friederich Nietzsche." - }, - { - "id": "philosophy31", - "text": "This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert Camus. The cover depicts a bare-chested man and a large boulder." - }, - { - "id": "philosophy32", - "text": "This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The pages are dotted with post-it notes." - }, - { - "id": "philosophy33", - "text": "This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the title, it does not actually appear to be defending terrorism." - }, - { - "id": "philosophy34", - "text": "This is a copy of \"Enquiry Concerning Political Justice\" by William Godwin. This thick book is filled with antiquated phrases." - }, - { - "id": "philosophy35", - "text": "This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. It is likely that \"The Abolition of Work\" is the most famous essay in this book." - }, - { - "id": "philosophy36", - "text": "This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks like this book has a surprisingly long track record of owners." - }, - { - "id": "philosophy37", - "text": "This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a picture of an old philosopher with magnificent beard, instead of bread, on the cover." - }, - { - "id": "philosophy38", - "text": "This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book might have been printed decades before the Cataclysm since the cover is quite weathered." - }, - { - "id": "philosophy39", - "text": "This is a copy of \"The World as Will and Representation\" by Arthur Schopenhauer. It contains a few undecipherable notes and scribbles." - }, - { - "id": "philosophy40", - "text": "This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems that the author's real name is Fereidoun M. Esfandiary." - }, - { - "id": "philosophy41", - "text": "This is a copy of \"The Bastiat Collection\", a large collection of essays by Frederic Bastiat." - }, - { - "id": "philosophy42", - "text": "This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of the most influential books of modern libertarianism." - }, - { - "id": "philosophy43", - "text": "This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination of socialism." - }, - { - "id": "philosophy44", - "text": "This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the most influential books of early Marxism-Leninism." - }, - { "id": "philosophy45", "text": "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." } - ], - "weight": "350 g", - "volume": "750 ml", - "price": 1250, - "price_postapoc": 50, - "material": [ "paper" ], - "symbol": "?", - "color": "light_blue", - "intelligence": 9, - "time": "36 m", - "chapters": 44, - "fun": 3 - }, { "id": "phonebook", "type": "BOOK", @@ -1140,7 +741,7 @@ "color": "light_gray", "intelligence": 15, "time": "30 m", - "fun": -1, + "fun": 1, "flags": [ "INSPIRATIONAL" ] }, { diff --git a/data/json/items/book/misc_philosophy.json b/data/json/items/book/misc_philosophy.json new file mode 100644 index 0000000000000..89e3556b10283 --- /dev/null +++ b/data/json/items/book/misc_philosophy.json @@ -0,0 +1,206 @@ +[ + { + "id": "philosophy_book", + "type": "BOOK", + "name": { "str": "book of philosophy", "str_pl": "books of philosophy" }, + "description": "A deep discussion of morality with an emphasis on epistemology and logic.", + "snippet_category": [ + { + "id": "philosophy1", + "text": "This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-eared and creased." + }, + { + "id": "philosophy2", + "text": "This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern translation by Wolfi Landstreicher." + }, + { + "id": "philosophy4", + "text": "A large, extended version of \"Madness and Civilisation\" by Michel Foucault. The cover features a striking image of a Panopticonic Prison." + }, + { + "id": "philosophy5", + "text": "This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by Lyotard." + }, + { + "id": "philosophy6", + "text": "A collection of texts and essays by Jacques Derrida. Its pages are loose and yellowed - you should probably handle it with care." + }, + { + "id": "philosophy7", + "text": "This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover shows rows of adults staring placidly into a screen." + }, + { + "id": "philosophy8", + "text": "This is a split copy of both \"An Ethic of Sexual Difference\" and \"This Sex Which Is Not One\" by Luce Irigaray." + }, + { + "id": "philosophy9", + "text": "This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover contains an image of a man holding a colored pill in each hand, with the caption \"Welcome to the Desert of the Real.\". You think you've seen this movie." + }, + { + "id": "philosophy10", + "text": "This is a small, pocket version of Sartre's \"Existentialism and Humanism\". It looks to have been used as a coaster in a past life." + }, + { + "id": "philosophy11", + "text": "This is a copy of \"Practical Ethics\" by Peter Singer. From the local university press." + }, + { + "id": "philosophy12", + "text": "This is a photocopied spiral-bound copy of \"Industrial Society and Its Future\" by 'Freedom Club'. The original looks to have been written on a typewriter before being copied." + }, + { + "id": "philosophy13", + "text": "This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. Its cover is an image of a hand-crafted wooden box filled with wiring and an ominous looking metal tube. Provocative." + }, + { "id": "philosophy14", "text": "This is a small reader on Hegel's Dialectics." }, + { + "id": "philosophy15", + "text": "This is a copy of \"The State and Revolution\" by Vladimir Lenin. In English, thankfully." + }, + { "id": "philosophy16", "text": "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." }, + { + "id": "philosophy17", + "text": "This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security tag on the back cover. It appears to still be active." + }, + { + "id": "philosophy18", + "text": "This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. It contains a dried and pressed leaf as a bookmark." + }, + { + "id": "philosophy19", + "text": "This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has scribbled over the contents page in red crayon." + }, + { "id": "philosophy20", "text": "This is a copy of \"An Introduction to Metaphysics\" by Bergson." }, + { + "id": "philosophy21", + "text": "This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by Jacques Lacan." + }, + { "id": "philosophy22", "text": "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." }, + { "id": "philosophy23", "text": "This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." }, + { + "id": "philosophy24", + "text": "This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The cover contains an image of a pelican." + }, + { "id": "philosophy25", "text": "This is a copy of \"Either-Or\" by Søren Kierkegaard." }, + { "id": "philosophy26", "text": "This is a copy of \"Allegory of the Cave\" by Plato." }, + { "id": "philosophy27", "text": "This is a copy of \"Leviathan\" by Thomas Hobbes." }, + { "id": "philosophy28", "text": "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." }, + { "id": "philosophy29", "text": "This is a copy of \"Principles of Philosophy\" by Descartes." }, + { + "id": "philosophy30", + "text": "This is a copy of both \"On The Genealogy of Morals\" and \"The Gay Science\" by Friederich Nietzsche." + }, + { + "id": "philosophy31", + "text": "This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert Camus. The cover depicts a bare-chested man and a large boulder." + }, + { + "id": "philosophy32", + "text": "This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The pages are dotted with post-it notes." + }, + { + "id": "philosophy33", + "text": "This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the title, it does not actually appear to be defending terrorism." + }, + { + "id": "philosophy34", + "text": "This is a copy of \"Enquiry Concerning Political Justice\" by William Godwin. This thick book is filled with antiquated phrases." + }, + { + "id": "philosophy35", + "text": "This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. It is likely that \"The Abolition of Work\" is the most famous essay in this book." + }, + { + "id": "philosophy36", + "text": "This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks like this book has a surprisingly long track record of owners." + }, + { + "id": "philosophy37", + "text": "This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a picture of an old philosopher with magnificent beard, instead of bread, on the cover." + }, + { + "id": "philosophy38", + "text": "This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book might have been printed decades before the Cataclysm since the cover is quite weathered." + }, + { + "id": "philosophy39", + "text": "This is a copy of \"The World as Will and Representation\" by Arthur Schopenhauer. It contains a few undecipherable notes and scribbles." + }, + { + "id": "philosophy40", + "text": "This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems that the author's real name is Fereidoun M. Esfandiary." + }, + { + "id": "philosophy41", + "text": "This is a copy of \"The Bastiat Collection\", a large collection of essays by Frederic Bastiat." + }, + { + "id": "philosophy42", + "text": "This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of the most influential books of modern libertarianism." + }, + { + "id": "philosophy43", + "text": "This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination of socialism." + }, + { + "id": "philosophy44", + "text": "This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the most influential books of early Marxism-Leninism." + }, + { "id": "philosophy45", "text": "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." } + ], + "chapters": 44, + "copy-from": "book_nonf_soft_phil_tpl" + }, + { + "id": "book_nonf_hard_phil_mdlogic", + "type": "BOOK", + "name": { "str": "Modal Logic as Metaphysics", "str_pl": "copies of Modal Logic" }, + "description": "A treatise on applying logical tools to questions about that nature of reality, this book contains detailed discussion of metaphysical issues.", + "//isbn13": 9780199552078, + "weight": "834 g", + "volume": "1249 ml", + "longest_side": "24 cm", + "price": 4895, + "copy-from": "book_nonf_hard_phil_tpl" + }, + { + "id": "book_nonf_hard_phil_aesth", + "type": "BOOK", + "name": { "str": "Aesthetics: A Critical Anthology", "str_pl": "copies of Aesthetics" }, + "description": "This hardbound anthology presents a collection of readings, scholarly works, and critical analyses on the subject of beauty.", + "//isbn13": 9780312003098, + "weight": "1139 g", + "volume": "1625 ml", + "longest_side": "24 cm", + "price": 6499, + "chapters": 48, + "copy-from": "book_nonf_hard_phil_tpl" + }, + { + "id": "book_nonf_hard_phil_phinfo", + "type": "BOOK", + "name": { "str": "The Philosophy of Information", "str_pl": "copies of The Philosophy of Information" }, + "description": "This university text details a critical investigation of the conceptual nature and basic principles of information. The student will gain a thorough appreciation of the conceptual frameworks commonly used to describe and advance semantic investigations.", + "//isbn13": 9780199232383, + "weight": "800 g", + "volume": "1425 ml", + "longest_side": "24 cm", + "price": 8391, + "copy-from": "book_nonf_hard_phil_tpl", + "relative": { "intelligence": 1, "fun": -2 } + }, + { + "id": "book_nonf_soft_phil_benoth", + "type": "BOOK", + "name": { "str": "Being and Nothingness", "str_pl": "copies of Being and Nothingness" }, + "description": "This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work in the existentialist tradition.", + "//isbn13": 9780415278485, + "weight": "794 g", + "volume": "1 L", + "longest_side": "21 cm", + "price": 3400, + "price_postapoc": 50, + "copy-from": "book_nonf_soft_phil_tpl" + } +] diff --git a/data/json/items/book/misc_pulp.json b/data/json/items/book/misc_pulp.json new file mode 100644 index 0000000000000..0f4bee2e1924c --- /dev/null +++ b/data/json/items/book/misc_pulp.json @@ -0,0 +1,86 @@ +[ + { + "id": "novel_pulp", + "type": "BOOK", + "name": { "str": "pulp novel" }, + "description": "A hardboiled detective tale filled with hard hitting action and intrigue.", + "time": "18 m", + "copy-from": "book_fict_soft_pulp_tpl" + }, + { + "id": "book_fict_soft_pulp_venus", + "type": "BOOK", + "name": { "str": "Black Valkyries From Venus", "str_pl": "copies of Black Valkyries" }, + "description": "You hold in your hands a weather-beaten novel written by someone named \"Lee Racket.\"", + "//isbn13": 9781949313062, + "weight": "191 g", + "volume": "243 ml", + "longest_side": "23 cm", + "copy-from": "book_fict_soft_pulp_tpl" + }, + { + "id": "book_fict_soft_pulp_wtmrw", + "type": "BOOK", + "name": { "str": "The Wrong Tomorrow", "str_pl": "copies of Wrong Tomorrow" }, + "description": "You hold in your hands a cheap drugstore paperback written by someone named \"Lee Racket.\"", + "//isbn13": 9780575131569, + "weight": "225 g", + "volume": "408 ml", + "longest_side": "20 cm", + "copy-from": "book_fict_soft_pulp_tpl" + }, + { + "id": "book_fict_soft_pulp_nogod", + "type": "BOOK", + "name": { "str": "No God From a Corpse", "str_pl": "copies of No God" }, + "description": "This is a weatherworn paperback written by some skirt named \"Lee Racket.\" It tells how rage and jealousy can turn a man, or a woman, into a monster. This story is hard-boiled enough to break a spoon.", + "//translator": "'Hard-boiled enough to break a spoon' means melodramatic, exaggerated, emotional but simple, and possessing a general lack of literary pretense. Weatherworn means damaged by age. Skirt means woman.", + "//isbn13": 9781627551144, + "weight": "225 g", + "volume": "408 ml", + "longest_side": "20 cm", + "copy-from": "book_fict_soft_pulp_tpl" + }, + { + "id": "book_fict_soft_pulp_ddive", + "type": "BOOK", + "name": { "str": "The Deep Dive", "str_pl": "copies of Deep Dive" }, + "description": "This dimestore short story about space travel is written by a broad named \"Lee Racket.\"", + "//translator": "Broad is a dismissive and outdated term that simply means \"woman.\" The term is used because it evokes the (decidedly misogynistic) era in which the pulp genre gained popularity within the United States.", + "//isbn13": 9781612420530, + "//genre": "this is also scifi", + "weight": "154 g", + "volume": "206 ml", + "longest_side": "19 cm", + "copy-from": "book_fict_soft_pulp_tpl", + "relative": { "chapters": -2 } + }, + { + "id": "book_fict_soft_pulp_squids", + "type": "BOOK", + "name": "Planet of the Murderous Squids that Time Forgot!", + "description": "In this psychedelic adventure novel of cosmic exploration, an elderly assassin discovers a planet too good to be true. Only once it is too late does she discover the harrowing truth at the center of \"The Planet of the Murderous Squids that Time Forgot!\"", + "copy-from": "book_fict_soft_pulp_tpl" + }, + { + "id": "book_fict_soft_pulp_gcapes", + "type": "BOOK", + "name": "The Great Capes of Metropolis", + "description": "In this classic pulp paperback of superheroic exploits, a group of masked vigilantes with diverse superpowers learn to work together to defeat the ultimate villain.", + "copy-from": "book_fict_soft_pulp_tpl" + }, + { + "id": "book_fict_soft_pulp_yesmurd", + "type": "BOOK", + "name": "Yesterday's Murdered", + "description": "In this fast paced pulp noir, a hard-drinking detective with nerves of steel has one last shot at vengeance.", + "copy-from": "book_fict_soft_pulp_tpl" + }, + { + "id": "book_fict_soft_pulp_flashcc", + "type": "BOOK", + "name": "Flashgun Condor and the Crimson Criminal", + "description": "A hot-blooded photographer who fights crime with film, footage, and fists, Condor is more than a mere shutterbug on the crime beat. But will she be able to unravel a devious deception and bring the \"Crimson Criminal\" to justice?", + "copy-from": "book_fict_soft_pulp_tpl" + } +] diff --git a/data/json/items/book/misc_scifi.json b/data/json/items/book/misc_scifi.json new file mode 100644 index 0000000000000..0fd9be5ce99bc --- /dev/null +++ b/data/json/items/book/misc_scifi.json @@ -0,0 +1,272 @@ +[ + { + "id": "novel_scifi", + "type": "BOOK", + "name": { "str": "scifi novel" }, + "description": "Aliens, ray guns, and space ships.", + "snippet_category": [ + { + "id": "scifi1_1", + "text": "This is a copy of Gibson's \"Neuromancer\". Written in the eighties, it was surprisingly accurate in predicting much of modern society… Until recently." + }, + { + "id": "scifi1_2", + "text": "This is a copy of \"The Stars My Destination\" by Alfred Bester.\n\nTyger, Tyger, Burning bright,\nIn the forests of the night:\nWhat immortal hand or eye,\nDare frame thy fearful symmetry?" + }, + { + "id": "scifi1_3", + "text": "This is a copy of \"The Lathe of Heaven\" by Ursula Le Guin. Dirty finger-stains have smudged the occasional word." + }, + { "id": "scifi1_4", "text": "This is a copy of \"The Dispossessed\" by Ursula Le Guin." }, + { "id": "scifi1_6", "text": "This is a copy of \"Hyperion\" by Dan Simmons." }, + { + "id": "scifi1_7", + "text": "This is a copy of \"Endymion\" by Dan Simmons. It opens with a poem by D.H. Lawrence:\n\nGive us gods. Oh give them us!\nGive us gods.\nWe are so tired of men\nAnd motor-power." + }, + { "id": "scifi1_8", "text": "This is a copy of Philip K. Dick's \"Do Androids Dream of Electric Sheep?\"." }, + { "id": "scifi1_9", "text": "This is a dog-eared copy of \"Nova Express\" by William Burroughs." }, + { + "id": "scifi1_10", + "text": "This is a copy of \"Foundation\" by Isaac Asimov. The back cover has been ripped off." + }, + { "id": "scifi1_12", "text": "This is a copy of \"The Trial\" by Franz Kafka. This book is rather worn." }, + { "id": "scifi1_13", "text": "This is a copy of \"The Handmaid's Tale\" by Margaret Atwood." }, + { + "id": "scifi1_14", + "text": "This is a copy of \"The Windup Girl\" by Paolo Bacigalupi. The blurb makes you wonder how Thailand fared the end of the world." + }, + { "id": "scifi1_15", "text": "This is a copy of \"Islands in the Net\" by Bruce Sterling." }, + { + "id": "scifi1_16", + "text": "This is a copy of \"Foundation and Empire\" by Isaac Asimov. The back page contains a hand-written grocery list." + }, + { + "id": "scifi1_17", + "text": "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It still has the smell of new books within its pages." + }, + { + "id": "scifi1_18", + "text": "This is a copy of \"Mirrorshades: A Cyberpunk Anthology\" compiled by Bruce Sterling. The cover has rings of coffee stains over it." + }, + { + "id": "scifi1_19", + "text": "This is a copy of \"The World of Null-A\" by A. E. van Vogt. This copy looks to have been used to press flowers." + }, + { "id": "scifi1_20", "text": "This is a copy of \"Altered Carbon\" by Richard Morgan." }, + { + "id": "scifi1_21", + "text": "This is a copy of Mary Shelly's \"Frankenstein\". Wasn't that the name of the monster?" + }, + { + "id": "scifi1_22", + "text": "This is a copy of \"Wasp\" by Eric Frank Russel. The futuristic terrorist's handbook." + }, + { + "id": "scifi1_23", + "text": "This is a copy of \"I Am Legend\" by Richard Matheson. The sleeve is covered in dried blood." + }, + { + "id": "scifi1_25", + "text": "This is a copy of \"The Forever War\" by Joe Haldeman. This copy looks as if it's been slightly chewed by a dog or other large animal." + }, + { "id": "scifi1_26", "text": "This is a copy of \"The Moon Is a Harsh Mistress\" by Robert A. Heinlein." }, + { + "id": "scifi1_28", + "text": "This is a copy of Samuel R. Delany's \"Nova\". The cover reads \"Review Copy. Not for re-sale.\"" + }, + { "id": "scifi1_29", "text": "This is a copy of Vonnegut's \"The Sirens of Titan\"." }, + { + "id": "scifi1_30", + "text": "This is a copy of \"Grass\" by Sheri S. Tepper. A child has scribbled over the first pages in crayon." + }, + { + "id": "scifi1_31", + "text": "This is a copy of William Gibson's \"Count Zero\". The spine is stamped with 'Library Copy'. And a sticker reading 'Science Fiction'." + }, + { "id": "scifi1_33", "text": "This is a copy of \"The Weapon Makers\" by A. E. van Vogt." }, + { + "id": "scifi1_34", + "text": "This is a copy of \"Record of a Spaceborn Few\" by Becky Chambers. It looks almost brand new." + }, + { + "id": "scifi1_35", + "text": "This is a copy of \"Use of Weapons\" by Ian M. Banks. The spine is cracked and worn, some pages appear to be loose." + }, + { "id": "scifi1_36", "text": "This is a copy of Jean-Baptiste Cousin de Grainville's \"Le Dernier Homme\"." }, + { + "id": "scifi1_37", + "text": "This is a copy of Orwell's \"Nineteen Eighty-Four\". The pages are loose and thin. You should probably be careful with this copy." + }, + { + "id": "scifi1_38", + "text": "This is a copy of Heinlein's \"Stranger in a Strange Land\". The cover is dog-eared and worn." + }, + { "id": "scifi1_39", "text": "This is a copy of Orson Scott Card's \"Ender's Game\"." }, + { "id": "scifi1_41", "text": "This is a copy of \"The Lost World\" by Arthur Conan Doyle." }, + { "id": "scifi1_42", "text": "This is a copy of \"Islands in the Sky\" by Arthur C. Clarke." }, + { "id": "scifi1_43", "text": "This is a copy of H. G. Wells' \"The Island of Doctor Moreau\"." }, + { "id": "scifi1_44", "text": "This is a copy of Stanislaw Lem's \"His Masters Voice\"." }, + { "id": "scifi1_45", "text": "This is a copy of Fred Hoyle's \"The Black Cloud\"." }, + { "id": "scifi1_46", "text": "This is a copy of \"Last and First Men\" by Olaf Stapeldon." }, + { "id": "scifi1_47", "text": "This is a copy of Stanislaw Lem's \"Solaris\"." }, + { "id": "scifi1_48", "text": "This is a copy of Theodore Sturgeon's \"More Than Human\"." }, + { "id": "scifi1_49", "text": "This is a copy of \"Vurt\" by Jeff Noon." }, + { "id": "scifi1_50", "text": "This is a copy of \"A Canticle for Leibowitz\" by Walter M. Miller Jr." }, + { "id": "scifi1_51", "text": "This is a copy of \"The War of The Worlds\" by H.G Wells." }, + { "id": "scifi1_52", "text": "This is a copy of \"Iron Sunrise\" by Charles Stross." }, + { + "id": "scifi1_53", + "text": "This is a copy of \"The Hunger Games\" by Suzanne Collins. Reading the blurb reminds you of a Japanese movie you think you once caught on the television late at night." + }, + { "id": "scifi1_54", "text": "This is a copy of \"The Day of the Triffids\" by John Wyndham." }, + { "id": "scifi1_55", "text": "This is a copy of \"A Clockwork Orange\" by Anthony Burges." }, + { "id": "scifi1_56", "text": "This is a copy of \"The Man Who Fell to Earth\" by Walter Tevis." }, + { "id": "scifi1_57", "text": "This is a copy of \"Simulacron-3\" by Daniel F. Galouye." }, + { "id": "scifi1_58", "text": "This is a copy of \"The Glass Bees\" by Ernst Jünger." }, + { "id": "scifi1_59", "text": "This is a copy of \"Journey to The Center of the Earth\" by Jules Verne." }, + { + "id": "scifi1_60", + "text": "This is a copy of Larry Niven's \"Ringworld\". There are a couple of pages missing from the end of the book. Luckily only mail-order advertisements." + }, + { + "id": "scifi1_61", + "text": "This is a well-worn copy of \"The Hitchhikers Guide to the Galaxy\" by Douglas Adams." + } + ], + "copy-from": "book_fict_soft_scifi_tpl" + }, + { + "id": "book_fict_soft_scifi_dune", + "type": "BOOK", + "name": { "str": "Dune", "str_pl": "copies of Dune" }, + "description": "This is a dog-eared copy of \"Dune\" by Frank Herbert. It has sand between some of its pages. Weird.", + "//isbn13": 9780450011849, + "//": "this variant of the book Dune is intentional", + "price": 1744, + "copy-from": "book_fict_soft_scifi_tpl" + }, + { + "id": "book_fict_hard_scifi_dune", + "type": "BOOK", + "name": { "str": "Dune", "str_pl": "copies of Dune" }, + "description": "This is a sturdy copy of \"Dune\" by Frank Herbert. It is a fairly new reprint with the words \"SOON TO BE A MAJOR MOTION PICTURE\" splashed across its dust jacket.", + "//isbn13": 9780593099322, + "//": "this variant of the book Dune is intentional", + "price": 3299, + "copy-from": "book_fict_hard_scifi_tpl" + }, + { + "id": "book_fict_hard_scifi_talnt", + "type": "BOOK", + "name": { "str": "Parable of the Talents", "str_pl": "copies of Parable of the Talents" }, + "description": "This is a sturdy copy of \"Parable of the Talents.\". It is Octavia Butler's sequel to her book \"Parable of the Sower.\"", + "//isbn13": 9780613914314, + "price": 2575, + "weight": "517 g", + "volume": "963 ml", + "longest_side": "21 cm", + "bashing": 1, + "chapters": 25, + "copy-from": "book_fict_hard_scifi_tpl" + }, + { + "id": "book_fict_hard_scifi_fifth", + "type": "BOOK", + "name": { "str": "The Fifth Season", "str_pl": "signed copies of Fifth Season" }, + "description": "This is a signed hardcover copy of the Hugo award winning \"The Fifth Season\" by N.K. Jemisin. It smells faintly of dirt.", + "//isbn13": 9780356511931, + "//note": "if we make a rare or collectors' item library group, this should go there too", + "price": 19999, + "copy-from": "book_fict_hard_scifi_tpl" + }, + { + "id": "book_fict_hard_scifi_zamwe", + "type": "BOOK", + "name": { "str": "We", "str_pl": "copies of We" }, + "description": "This hardback book is titled \"The Annotated We: A New Translation of Evgeny Zamiatin's Novel.\"\n\nIt is Vladimir Wozniuk's 2015 translation of \"We,\" originally published in 1924 and generally seen as the first modern dystopian novel. The commentary examines the profusive allusions and highlights the poetic nature of Zamiatin's language.", + "//isbn13": 9781611461787, + "//": "this variant is intentional", + "price": 8799, + "weight": "458 g", + "volume": "756 ml", + "longest_side": "23 cm", + "bashing": 1, + "chapters": 40, + "time": "6 m", + "copy-from": "book_fict_hard_scifi_tpl", + "relative": { "intelligence": 1, "fun": -1 } + }, + { + "id": "book_fict_soft_scifi_zamwe", + "type": "BOOK", + "name": { "str": "We", "str_pl": "copies of We" }, + "description": "A seminal work of dystopian fiction, Evgeny Zamiatin's \"We\" was first published in 1924 but suppresed by the Soviet Union until 1988.\n\nThis mass-market 1993 edition you've found was translated from the Russian by Clarence Brown and includes a short introduction. The slightly worn cover features a surrealist photo of a person gazing backward suspiciouly.", + "//isbn13": 9780140185850, + "//": "this variant is intentional", + "price": 1399, + "weight": "182 g", + "volume": "289 ml", + "longest_side": "20 cm", + "chapters": 40, + "time": "6 m", + "copy-from": "book_fict_soft_scifi_tpl", + "relative": { "intelligence": 1, "fun": -1 } + }, + { + "id": "book_fict_soft_scifi_cybrd", + "type": "BOOK", + "name": { "str": "The Cyberiad", "str_pl": "copies of The Cyberiad" }, + "description": "This 350 page paperback presents the exploits and robotic rivalries of Trurl and Klapaucius. Originally written in Polish by Stanislaw Lem, it has been masterfully translated into English by Michael Kandel.", + "//isbn13": 9780241467992, + "price": 1069, + "copy-from": "book_fict_soft_scifi_tpl" + }, + { + "id": "book_fict_soft_scifi_brave", + "type": "BOOK", + "name": { "str": "Brave New World", "str_pl": "copies of Brave New World" }, + "description": "This is weather worn copy of \"Brave New World\" by Aldous Huxley looks like it has been left out in rain. The novel begins in a bleak building where fetuses are grown in bottles on an assembly line.", + "copy-from": "book_fict_soft_scifi_tpl", + "relative": { "chapters": -6, "price_postapoc": -1490 } + }, + { + "id": "book_fict_soft_scifi_roadp", + "type": "BOOK", + "name": { "str": "Roadside Picnic", "str_pl": "copies of Roadside Picnic" }, + "description": "This is a paperback copy of \"Roadside Picnic\" by Arkady and Boris Strugatsky. It has been translated into over 20 languages, occasionally under the name \"Stalker.\" This copy, fortunately for you, just happens to be in your native tongue.", + "copy-from": "book_fict_soft_scifi_tpl" + }, + { + "id": "book_fict_soft_scifi_f451", + "type": "BOOK", + "name": { "str": "Fahrenheit 451", "str_pl": "copies of Fahrenheit 451" }, + "description": "This is a copy of Ray Bradbury's \"Fahrenheit 451.\"", + "snippet_category": [ + { + "id": "book_fict_soft_scifi_f451_1", + "text": "Some joker has gently burnt the exterior edge of this paperback dystopia. It's still perfectly readable." + }, + { + "id": "book_fict_soft_scifi_f451_2", + "text": "\"It was a pleasure to burn. It was a special pleasure to see things eaten, to see things blackened and changed.\"" + }, + { + "id": "book_fict_soft_scifi_f451_3", + "text": "This 1979 softcover edition of Ray Bradbury's \"Fahrenheit 451\" was once a library book. It still has a light blue checkout card pocketed on the torn back cover. One \"Suzanne Collins\" borrowed it in 1981." + }, + { + "id": "book_fict_soft_scifi_f451_4", + "text": "The red and black paperback novel you hold in your hands is a modern reprint of Ray Bradbury's \"Fahrenheit 451.\"" + }, + { + "id": "book_fict_soft_scifi_f451_5", + "text": "This scifi novel is divided into three parts: \"The Hearth and the Salamander,\" \"The Sieve and the Sand,\", and \"Burning Bright.\"" + } + ], + "copy-from": "book_fict_soft_scifi_tpl", + "time": "60 m", + "chapters": 3, + "fun": 8, + "relative": { "intelligence": -2 } + } +] diff --git a/data/json/items/book/misc_sports.json b/data/json/items/book/misc_sports.json new file mode 100644 index 0000000000000..fe5699a8b95fa --- /dev/null +++ b/data/json/items/book/misc_sports.json @@ -0,0 +1,172 @@ +[ + { + "id": "novel_sports", + "type": "BOOK", + "name": { "str": "sports novel" }, + "description": "The dramatic tale of a small-time boxer who gets a rare chance to fight the heavy-weight champion, and seize his one chance to make a better life for himself while impressing the cute girl who works in the pet store.", + "time": "20 m", + "copy-from": "book_fict_soft_tpl", + "relative": { "chapters": 12, "fun": 1, "intelligence": 1 } + }, + { + "id": "book_fict_soft_sports_bunt", + "type": "BOOK", + "name": { "str": "The Art of Bunting", "str_pl": "copies of The Art of Bunting" }, + "description": "While you might be forgiven for expecting instructions for party decorating, it is in fact a novel about baseball. In the final climactic game a young star proves to himself that he is ready for the big leagues.", + "//isbn13": 9780316126670, + "weight": "472 g", + "volume": "1074 ml", + "longest_side": "20 cm", + "copy-from": "book_fict_soft_tpl" + }, + { + "id": "book_fict_soft_sports_tdsp", + "type": "BOOK", + "name": { "str": "The Touchdown Special", "str_pl": "copies of The Touchdown Special" }, + "description": "In this absorbing novel of football fandom, a pizza delivery driver makes a desperate gamble on the monday night game.", + "//isbn13": 9780393353785, + "weight": "184 g", + "volume": "450 ml", + "longest_side": "21 cm", + "copy-from": "book_fict_soft_tpl" + }, + { + "id": "book_fict_soft_sports_envy", + "type": "BOOK", + "name": { "str": "Trophy Envy", "str_pl": "copies of Trophy Envy" }, + "description": "This paperback tells the story of a tennis prodigy who begins to regret her own success.", + "//isbn13": 9781250183170, + "weight": "227 g", + "volume": "535 ml", + "longest_side": "20 cm", + "price": 1799, + "copy-from": "book_fict_soft_tpl" + }, + { + "id": "book_fict_hard_sports_semi", + "type": "BOOK", + "name": { "str": "Semi-Rough", "str_pl": "copies of Semi-Rough" }, + "description": "This novel follows the humorous adventures of a professional athlete turned amateur reporter.", + "//isbn13": 9780689105180, + "copy-from": "book_fict_hard_tpl", + "relative": { "fun": 1 } + }, + { + "id": "book_fict_hard_sports_omni", + "type": "BOOK", + "name": { "str": "The Golf Omnivore", "str_pl": "copies of The Golf Omnivore" }, + "description": "This hardback book is a collection of short stories in which love and golf are the only two constants.", + "//isbn13": 9780091439606, + "weight": "648 g", + "volume": "720 ml", + "longest_side": "21 cm", + "copy-from": "book_fict_hard_tpl" + }, + { + "id": "book_fict_hard_sports_uni", + "type": "BOOK", + "name": { "str": "Uniform Boy", "str_pl": "copies of Uniform Boy" }, + "description": "This hardback book about an equipment manager for a minor league team explores themes of loyalty and resentment.", + "//isbn13": 9780606153522, + "//dual genre": "sports and ya", + "weight": "363 g", + "volume": "640 ml", + "longest_side": "20 cm", + "price": 1899, + "copy-from": "book_fict_hard_tpl" + }, + { + "id": "book_nonf_soft_sports_bdgt", + "type": "BOOK", + "name": { "str": "Budgetball: Winning a Rigged Game", "str_pl": "copies of Budgetball" }, + "description": "Budgetball tells the true story of the curious case of Benny Bobbin and his quixotic quest to defeat the deep-pocketed Orlando O's.", + "//isbn13": 9780393324815, + "weight": "245 g", + "volume": "679 ml", + "longest_side": "21 cm", + "price": 1299, + "copy-from": "book_nonf_soft_tpl", + "relative": { "fun": 1, "intelligence": 1 } + }, + { + "id": "book_nonf_soft_sports_lads", + "type": "BOOK", + "name": { "str": "The Lads of Summer", "str_pl": "copies of The Lads of Summer" }, + "description": "This well worn paperback details the early baseball careers of one of the greatest teams professional sports has ever known.", + "//isbn13": 9780060883966, + "weight": "408 g", + "volume": "654 ml", + "longest_side": "20 cm", + "price": 1399, + "copy-from": "book_nonf_soft_tpl", + "relative": { "fun": 1 } + }, + { + "id": "book_nonf_soft_sports_vlly", + "type": "BOOK", + "name": { "str": "Volleyball: Get Ready to Get Ready", "str_pl": "copies of Volleyball" }, + "description": "\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up your game. With full-color photos and diagrams, you will learn the drills and techniques you need to dominate the competition.", + "//isbn13": 9781450468824, + "weight": "703 g", + "volume": "920 ml", + "longest_side": "28 cm", + "chapters": 12, + "copy-from": "book_nonf_soft_tpl", + "relative": { "fun": -1, "intelligence": -1 } + }, + { + "id": "book_nonf_hard_sports_morg", + "type": "BOOK", + "name": { "str": "William G. Morgan, the Godfather of Volleyball", "str_pl": "copies of The Godfather of Volleyball" }, + "description": "This odd little hardbound book is only 98 pages long, and a dozen of those are comprised of grainy black and white photos. If you read this book, you learn that volleyball was originally called \"Mintonette\" and also some biographic details about its inventor.", + "//isbn13": 9781595941893, + "weight": "272 g", + "volume": "400 ml", + "longest_side": "22 cm", + "price": 3999, + "copy-from": "book_nonf_hard_tpl", + "relative": { "fun": -1, "intelligence": 1 } + }, + { + "id": "book_nonf_hard_sports_bike", + "type": "BOOK", + "name": { "str": "Legendary Bike Rides", "str_pl": "copies of Bike Rides" }, + "description": "This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the WORLD.\" It provides a wealth of detail about paved bike trails in every part of the globe except New England. But if you make it to Patagonia on bike, you're all set.", + "//isbn13": 9781760340834, + "weight": "1589 g", + "volume": "1660 ml", + "longest_side": "27 cm", + "price": 2999, + "chapters": 40, + "time": "8 m", + "copy-from": "book_nonf_hard_tpl", + "relative": { "intelligence": -1 } + }, + { + "id": "book_nonf_hard_sports_ergo", + "type": "BOOK", + "name": { "str": "Natare Ergo Sum", "str_pl": "copies of Natare Ergo Sum" }, + "description": "The poorly translated title is supposed to be Latin for \"I Swim, Therefore I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then playfully attributes a variety of famous philosophical expressions into edorsements for the sport of swimming. It's not a bad book, just a bit odd.", + "//isbn13": 9781587313776, + "//dual genre": "sports and phil", + "weight": "167 g", + "volume": "289 ml", + "longest_side": "18 cm", + "price": 1299, + "copy-from": "book_fict_hard_tpl", + "relative": { "fun": 1, "intelligence": 2, "chapters": -10 } + }, + { + "id": "book_nonf_hard_sports_hoop", + "type": "BOOK", + "name": { "str": "Stratosphere: The Rise of Hoops", "str_pl": "copies of Stratosphere" }, + "description": "\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional basketball against a backdrop of sustained social change.", + "//isbn13": 9781629376509, + "weight": "818 g", + "volume": "1114 ml", + "longest_side": "23 cm", + "price": 2699, + "copy-from": "book_nonf_hard_tpl", + "relative": { "chapters": 8 } + } +] diff --git a/data/json/items/book/nonfiction.json b/data/json/items/book/nonfiction.json index 5b9a1596f41a5..6a76c402e6c1a 100644 --- a/data/json/items/book/nonfiction.json +++ b/data/json/items/book/nonfiction.json @@ -72,7 +72,7 @@ "type": "BOOK", "name": "10 Cool Things About Being A Ring Bearer", "//": "This book belongs to two genres: wedding and kids", - "description": "This book is for the delightful little ring bearer in your wedding. The author depicts the responsibility and the honor in being a ring bearer your little angel will cherish.", + "description": "This book is for the delightful little ring bearer in your wedding. The author depicts the responsibility and honor in being a ring bearer. Your little angel will cherish this book as he or she learns how to behave on your perfect day.", "time": "15 m", "copy-from": "book_nonf_soft_tpl", "relative": { "chapters": -17, "intelligence": -2 } diff --git a/data/json/items/book/tailor.json b/data/json/items/book/tailor.json index fe7005a362bda..b4c0f3bfd71a5 100644 --- a/data/json/items/book/tailor.json +++ b/data/json/items/book/tailor.json @@ -136,5 +136,25 @@ "max_level": 6, "intelligence": 8, "time": "30 m" + }, + { + "id": "scots_tailor", + "type": "BOOK", + "name": { "str": "Ye Scots Beuk o Tailorin'", "str_pl": "copies of Ye Scots Beuk o Tailorin'" }, + "description": "A translated Gaelic book from Scotland. While boring to read due to its technical tone, it provides insights into Scottish culture and information about tailoring.", + "weight": "2600 g", + "volume": "2 L", + "price": 3000, + "price_postapoc": 550, + "bashing": 5, + "material": [ "paper" ], + "symbol": "?", + "color": "green", + "skill": "tailor", + "required_level": 2, + "max_level": 5, + "intelligence": 8, + "time": "30 m", + "fun": -1 } ] diff --git a/data/json/items/book/young.json b/data/json/items/book/young.json index a8f3a7a96d1b0..a37af1c47962a 100644 --- a/data/json/items/book/young.json +++ b/data/json/items/book/young.json @@ -129,65 +129,109 @@ { "id": "book_fict_soft_ya_adrk", "type": "BOOK", - "name": "The Adorkable Girl", + "name": { "str": "The Adorkable Girl", "str_pl": "copies of Adorkable" }, "description": "When a therapist's daughter transfers to a new school, she decides to change her personality type. As her social life begins to blossom, can she maintain a healthy boundary between her home life and her public persona?", "copy-from": "book_fict_soft_ya_quiddity", - "relative": { "weight": -150, "time": 5, "chapters": -6 } + "relative": { "weight": -75, "chapters": -6 } }, { "id": "book_fict_soft_ya_bjak", "type": "BOOK", - "name": "Becoming Jackson", - "description": "When Jackson gains the mystical talent to alter his appearance on command, how will he continue to recognize himself in his own mirror?", - "copy-from": "book_fict_soft_ya_vanilla" + "name": { "str": "Becoming Jackson", "str_pl": "copies of Becoming Jackson" }, + "description": "When Jackson gains the mystical talent to alter his appearance on command, will he be able to recognize himself in his own mirror?", + "copy-from": "book_fict_soft_ya_vanilla", + "relative": { "fun": -1 } }, { "id": "book_fict_soft_ya_burn", "type": "BOOK", - "name": "Nothing Burned", + "name": { "str": "Nothing Burned", "str_pl": "copies of Nothing Burned" }, "description": "A teenage influencer becomes fast friends with someone who may or may not be an actual demon.", "copy-from": "book_fict_soft_ya_quiddity" }, { "id": "book_fict_soft_ya_hilo", "type": "BOOK", - "name": "High and Low", + "name": { "str": "High and Low", "str_pl": "copies of High and Low" }, "description": "In this work of adolescent fiction, a young gemini discovers that the astrology section of his small town newspaper is eerily preminiscent. His efforts to uncover the oracle reveal more than the stars could have predicted.", "copy-from": "book_fict_soft_ya_vanilla" }, { "id": "book_fict_soft_ya_myeyes", "type": "BOOK", - "name": "Fire When You See My Eyes", + "name": { "str": "Fire When You See My Eyes", "str_pl": "copies of Fire When" }, "description": "In a cataclysmic future, advanced technology gives parents access to video footage of every moment of their teenage children's lives.", "copy-from": "book_fict_soft_ya_quiddity" }, { "id": "book_fict_soft_ya_pbbr", "type": "BOOK", - "name": "Peanut Butter Bruised", + "name": { "str": "Peanut Butter Bruised", "str_pl": "copies of Peanut Butter Bruised" }, "description": "In this work of young adult fiction, a woman raised on food stamps falls in love with a young cook. More importantly, she falls in love with the idea of become a professional chef.", "copy-from": "book_fict_soft_ya_quiddity" }, { "id": "book_fict_soft_ya_rwya", "type": "BOOK", - "name": "Ready When You Are", + "name": { "str": "Ready When You Are", "str_pl": "copies of Ready When" }, "description": "When three teenage girls ditch class to drive cross country together they get a strong dose of life lessons on the road. This work of young adult fiction explores how friendships evolve in early adulthood.", "copy-from": "book_fict_soft_ya_vanilla" }, { "id": "book_fict_soft_ya_sboy", "type": "BOOK", - "name": "Study of a Boy", + "name": { "str": "Study of a Boy", "str_pl": "copies of \"Study of a Boy\"" }, "description": "A high school sophomore's personal journal is stolen and then leaked on social media. When it goes viral he is forced simultaneously to contend with both fame and betrayal.", "copy-from": "book_fict_soft_ya_vanilla" }, { "id": "book_fict_soft_ya_sumv", "type": "BOOK", - "name": "Summer Variables", + "name": { "str": "Summer Variables", "str_pl": "copies of Summer Variables" }, "description": "In this book written primarily for young adults, a woman's modest summer internship results in an incredible discovery that attracts the attention of unsavory elements.", "copy-from": "book_fict_soft_ya_vanilla" + }, + { + "id": "book_fict_hard_ya_dark", + "type": "BOOK", + "name": { "str": "In a Dark Place", "str_pl": "copies of Dark Place" }, + "description": "Markia dreams about the future. Theo longs for the past. Together can they find a way to live in the now?", + "//isbn13": 9780385755887, + "copy-from": "book_fict_hard_ya_quiddity" + }, + { + "id": "book_fict_hard_ya_btwo", + "type": "BOOK", + "name": { "str": "Betrayal Takes Two", "str_pl": "copies of Betrayal" }, + "description": "This is a hard cover book for older teens. The two main characters pull a cruel prank on their classmates, and are brought together both by their frantic efforts to avoid being caught and their shared sense of guilt.", + "//isbn13": 9780385755924, + "copy-from": "book_fict_hard_ya_quiddity" + }, + { + "id": "novel_coa", + "type": "BOOK", + "name": { "str": "coming of age novel" }, + "description": "A classic tale about growing up, portraying one young man's funny and poignant experiences with life, love, and sex.", + "weight": "187 g", + "volume": "500 ml", + "price": 750, + "price_postapoc": 50, + "material": [ "paper" ], + "symbol": "?", + "color": "light_blue", + "intelligence": 4, + "time": "20 m", + "chapters": 16, + "fun": 2 + }, + { + "id": "novel_coa2", + "type": "BOOK", + "name": { "str": "Pantheon: The Story of an Iranian Youth", "str_pl": "copies of Pantheon" }, + "description": "A hard cover graphic novel about a young girl living in Iran during the 1980's, seeing the world change around her as Iraq invaded her country.", + "longest_side": "27 cm", + "time": "16 m", + "copy-from": "book_fict_hard_ya_quiddity", + "relative": { "chapters": -12, "fun": 1 } } ] diff --git a/data/json/items/chemicals_and_resources.json b/data/json/items/chemicals_and_resources.json index 42f380375b78e..897e21d24f724 100644 --- a/data/json/items/chemicals_and_resources.json +++ b/data/json/items/chemicals_and_resources.json @@ -730,6 +730,22 @@ "phase": "liquid", "container": "bottle_glass" }, + { + "type": "GENERIC", + "id": "plutonium", + "name": { "str": "plutonium" }, + "category": "chems", + "//0": "Plutonium is about 5000 USD/gram", + "price": 495000000, + "//1": "Nobody wants raw plutonium, unless they have a deathwish", + "price_postapoc": 0, + "symbol": ",", + "color": "light_gray", + "description": "Some plutonium. You should probably get very far away from this, if you enjoy not being irradiated.", + "flags": [ "TRADER_AVOID", "LEAK_ALWAYS", "RADIOACTIVE" ], + "volume": "50 ml", + "weight": "990 g" + }, { "type": "AMMO", "id": "chem_ammonium_nitrate", diff --git a/data/json/items/classes/magazine.json b/data/json/items/classes/magazine.json index 7c6d59217189b..c2b4f030a331c 100644 --- a/data/json/items/classes/magazine.json +++ b/data/json/items/classes/magazine.json @@ -9,7 +9,6 @@ "material": "steel", "symbol": "#", "color": "light_gray", - "reliability": 6, "armor_data": { "covers": [ "TORSO" ], "coverage": 5 }, "flags": [ "MAG_BELT", "MAG_DESTROY", "BELTED", "OVERSIZE", "WATER_FRIENDLY" ] } diff --git a/data/json/items/comestibles/baked.json b/data/json/items/comestibles/baked.json new file mode 100644 index 0000000000000..2492f56a0c405 --- /dev/null +++ b/data/json/items/comestibles/baked.json @@ -0,0 +1,23 @@ +[ + { + "type": "COMESTIBLE", + "id": "pumpkin_muffins", + "name": { "str_sp": "pumpkin muffin" }, + "weight": "30 g", + "color": "red", + "spoils_in": "3 days 12 hours", + "comestible_type": "FOOD", + "symbol": "%", + "quench": -1, + "healthy": 2, + "calories": 45, + "description": "Baked muffins made of pumpkin. Perfect for your fall feast.", + "price": 50, + "price_postapoc": 5, + "material": "fruit", + "volume": "35 ml", + "stack_size": 24, + "fun": 3, + "vitamins": [ [ "vitC", 3 ], [ "calcium", 2 ] ] + } +] diff --git a/data/json/items/comestibles/carnivore.json b/data/json/items/comestibles/carnivore.json index 003df8d1bc3ae..233f28fd51997 100644 --- a/data/json/items/comestibles/carnivore.json +++ b/data/json/items/comestibles/carnivore.json @@ -137,7 +137,8 @@ "type": "COMESTIBLE", "copy-from": "meat", "name": { "str": "chunk of mutant meat", "str_pl": "chunks of mutant meat" }, - "description": "Meat from a heavily mutated animal. It has an unsettling loose and spongy texture, but smells… mostly normal. There are strange tangles and formations in it that don't appear natural at all: bits of bone and hair crusted up inside the muscle, as if trying to form another organism. Still, seems digestible at least, if you cook it and remove the worst parts.", + "snippet_category": "mutant_meat_desc", + "description": "Meat from a heavily mutated animal.", "looks_like": "meat", "cooks_like": "mutant_meat_cooked", "proportional": { "price": 0.2, "calories": 0.5 }, @@ -149,7 +150,7 @@ "type": "COMESTIBLE", "copy-from": "meat_scrap", "name": { "str": "scrap of mutant meat", "str_pl": "scraps of mutant meat" }, - "description": "A tiny scrap of meat from a heavily mutated animal. It smells a bit odd, and has bits of hair and bone mixed in that seem like they grew inside the muscle itself. Still, seems digestible at least, if you cook it and remove the worst parts.", + "description": "A tiny scrap of meat from a heavily mutated animal. It smells unappealing, to say the least.", "looks_like": "meat_scrap", "cooks_like": "mutant_meat_scrap_cooked", "proportional": { "price": 0.2, "calories": 0.5 }, @@ -230,7 +231,8 @@ "type": "COMESTIBLE", "copy-from": "mutant_meat", "name": "cooked mutant meat", - "description": "This is a cooked chunk of meat from a mutated animal. It has an unsettling, spongy texture, but otherwise tastes… mostly normal. Hopefully you got all the bits of hair and bone out…", + "snippet_category": "cooked_mutant_meat_desc", + "description": "This is a cooked chunk of meat from a mutated animal.", "looks_like": "meat_cooked", "proportional": { "price": 1.5 }, "parasites": 0, @@ -243,6 +245,7 @@ "type": "COMESTIBLE", "copy-from": "mutant_meat_scrap", "name": { "str": "cooked scrap of mutant meat", "str_pl": "cooked scraps of mutant meat" }, + "description": "This is a tiny scrap of cooked mutant meat. It is small enough that it's hard to tell how disgusting it is.", "looks_like": "meat_scrap_cooked", "parasites": 0, "calories": 25, @@ -273,6 +276,17 @@ "fun": -5, "flags": [ "EATEN_HOT" ] }, + { + "id": "mutant_bug_organs", + "type": "COMESTIBLE", + "copy-from": "offal", + "name": { "str_sp": "mutant organs" }, + "snippet_category": "bug_organs_desc", + "description": "These organs came from a giant mutant bug.", + "looks_like": "offal", + "proportional": { "price": 0.1, "calories": 0.65 }, + "extend": { "flags": [ "BAD_TASTE" ], "vitamins": [ [ "mutant_toxin", 25 ] ] } + }, { "id": "offal_pickled", "copy-from": "offal", @@ -432,6 +446,18 @@ "parasites": 0, "delete": { "flags": [ "RAW" ] } }, + { + "id": "mutant_bug_lungs", + "type": "COMESTIBLE", + "copy-from": "lung", + "name": { "str_sp": "mutant lungs" }, + "snippet_category": "mutant_lung_desc", + "description": "You're pretty sure this is lung tissue.", + "looks_like": "lung", + "cooks_like": "lung_cooked", + "proportional": { "price": 0.1, "calories": 0.65 }, + "extend": { "flags": [ "BAD_TASTE" ], "vitamins": [ [ "mutant_toxin", 25 ] ] } + }, { "id": "liver", "type": "COMESTIBLE", @@ -631,7 +657,7 @@ "type": "COMESTIBLE", "copy-from": "fat", "name": { "str": "chunk of mutant fat", "str_pl": "chunks of mutant fat" }, - "description": "Freshly butchered fat from a heavily mutated animal. You could eat it raw, but it is better used as an ingredient in other foods or projects.", + "description": "Freshly butchered fat from a heavily mutated animal. It smells, if anything, even more disgusting than the rest of the mutant. There are little puddles of unidentified oils dripping from it.", "looks_like": "fat", "proportional": { "price": 0.2 }, "vitamins": [ [ "mutant_toxin", 360 ] ] @@ -840,7 +866,7 @@ "price": 330, "price_postapoc": 20, "material": "flesh", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID" ], "stack_size": 1, "fun": -12 }, diff --git a/data/json/items/comestibles/drink.json b/data/json/items/comestibles/drink.json index 3930e1ba8858d..eddb3315ab72d 100644 --- a/data/json/items/comestibles/drink.json +++ b/data/json/items/comestibles/drink.json @@ -1041,5 +1041,63 @@ "proportional": { "quench": 1.2 }, "relative": { "fun": 1 }, "use_action": [ ] + }, + { + "type": "COMESTIBLE", + "id": "coffee_sweetened", + "copy-from": "coffee", + "name": "sweetened coffee", + "calories": 21, + "description": "The morning ritual of the pre-apocalyptic world, created from coffee cherries through a complex process of seed removal, roasting, grinding, and brewing. Coffee is substantially richer in caffeine than its rival tea. With added sweetener for better taste.", + "price": 110, + "price_postapoc": 60, + "material": "water", + "fun": 10 + }, + { + "type": "COMESTIBLE", + "id": "tea_sweetened", + "copy-from": "tea", + "name": "sweetened tea", + "calories": 21, + "description": "The beverage of gentlemen everywhere, made from applying hot water to leaves of the tea plant /Camellia sinensis/. Added sweetener for a better taste.", + "price": 100, + "price_postapoc": 35, + "fun": 10 + }, + { + "type": "COMESTIBLE", + "id": "milk_tea_sweetened", + "copy-from": "milk_tea", + "name": "sweetened milk tea", + "calories": 88, + "description": "Hot tea with cold milk and added sweetener.", + "price": 460, + "price_postapoc": 60, + "vitamins": [ [ "vitA", 5 ], [ "vitB", 3 ], [ "vitC", 2 ], [ "calcium", 12 ] ], + "fun": 14 + }, + { + "type": "COMESTIBLE", + "id": "coffee_substitute_sweetened", + "copy-from": "coffee_substitute", + "name": "sweetened coffee substitute", + "calories": 21, + "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. The added sweetness neutralize the bitterness somewhat.", + "price": 110, + "price_postapoc": 35, + "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], + "fun": 1 + }, + { + "type": "COMESTIBLE", + "id": "milk_coffee_sweetened", + "copy-from": "milk_coffee", + "name": "sweetened coffee milk", + "calories": 88, + "description": "Coffee syrup mixed into milk. It's been the state drink of Rhode Island since 1993. Added sweetener for those who like it even sweeter.", + "price": 490, + "price_postapoc": 60, + "fun": 14 } ] diff --git a/data/json/items/comestibles/egg.json b/data/json/items/comestibles/egg.json index 3022795a59530..a481ab0fa0244 100644 --- a/data/json/items/comestibles/egg.json +++ b/data/json/items/comestibles/egg.json @@ -31,6 +31,15 @@ "rot_spawn": "GROUP_EGG_CHICKEN", "rot_spawn_chance": 70 }, + { + "type": "COMESTIBLE", + "id": "egg_bird_unfert", + "copy-from": "egg_bird", + "looks_like": "egg_bird", + "name": { "str": "unfertilized bird egg" }, + "description": "Nutritious egg laid by a bird. This one is unfertilized and is probably from a farm.", + "rot_spawn_chance": 0 + }, { "type": "COMESTIBLE", "id": "egg_grouse", diff --git a/data/json/items/comestibles/fruit_dishes.json b/data/json/items/comestibles/fruit_dishes.json index b023e50673ad5..4c059ea8c7f60 100644 --- a/data/json/items/comestibles/fruit_dishes.json +++ b/data/json/items/comestibles/fruit_dishes.json @@ -248,5 +248,26 @@ "stack_size": 2, "fun": 1, "vitamins": [ [ "vitC", 3 ], [ "calcium", 2 ], [ "iron", 10 ] ] + }, + { + "type": "COMESTIBLE", + "id": "pumpkin_yeast_bread", + "name": { "str_sp": "pumpkin yeast bread" }, + "weight": "50 g", + "color": "red", + "spoils_in": "7 days 12 hours", + "comestible_type": "FOOD", + "symbol": "%", + "quench": -1, + "healthy": 2, + "calories": 130, + "description": "A festive autumnal bread with a golden color in either rolls or sliced loaves of bread.", + "price": 220, + "price_postapoc": 50, + "material": "fruit", + "volume": "250 ml", + "stack_size": 24, + "fun": 3, + "vitamins": [ [ "vitC", 3 ], [ "calcium", 2 ] ] } ] diff --git a/data/json/items/comestibles/junkfood.json b/data/json/items/comestibles/junkfood.json index 636b99ccd149d..74560eedb1c58 100644 --- a/data/json/items/comestibles/junkfood.json +++ b/data/json/items/comestibles/junkfood.json @@ -926,7 +926,7 @@ "name": { "str": "chocolate pancake" }, "weight": "78 g", "healthy": 0, - "calories": 219, + "calories": 217, "description": "Fluffy and delicious pancakes with real maple syrup, with delicious chocolate baked right in.", "price": 700, "price_postapoc": 100, diff --git a/data/json/items/comestibles/med.json b/data/json/items/comestibles/med.json index 520434fcab50c..461889c900466 100644 --- a/data/json/items/comestibles/med.json +++ b/data/json/items/comestibles/med.json @@ -158,7 +158,7 @@ "volume": "250 ml", "price": 600, "price_postapoc": 200, - "material": "cotton", + "material": [ "cotton" ], "symbol": "!", "color": "white", "charges": 3, @@ -253,6 +253,7 @@ "stim": 12, "addiction_potential": 3, "addiction_type": "caffeine", + "use_action": { "type": "consume_drug", "activation_message": "You take a caffeine pill." }, "fatigue_mod": 9 }, { @@ -351,7 +352,7 @@ "volume": "250 ml", "price": 3000, "price_postapoc": 250, - "material": "cotton", + "material": [ "cotton" ], "symbol": "!", "color": "red", "flags": [ "NO_INGEST" ], @@ -464,7 +465,7 @@ "price": 500, "price_postapoc": 50, "charges": 2, - "material": "cotton", + "material": [ "cotton" ], "symbol": "*", "color": "white", "container": "bag_plastic", @@ -1150,7 +1151,7 @@ "weight": "90 g", "price": 350, "price_postapoc": 200, - "material": "cotton", + "material": [ "cotton" ], "symbol": ",", "color": "white", "flags": [ "NO_INGEST" ], @@ -1227,7 +1228,7 @@ "fun": -5, "spoils_in": "28 days", "use_action": "ANTIPARASITIC", - "flags": "NPC_SAFE" + "flags": [ "NPC_SAFE" ] }, { "id": "nic_gum", @@ -1768,7 +1769,7 @@ "volume": "250 ml", "price": 250, "price_postapoc": 50, - "material": "cotton", + "material": [ "cotton" ], "symbol": ",", "color": "white", "flags": [ "NO_INGEST" ], @@ -1791,7 +1792,7 @@ "volume": "125 ml", "price": 250, "price_postapoc": 50, - "material": "cotton", + "material": [ "cotton" ], "symbol": "*", "color": "white", "category": "drugs", @@ -1828,7 +1829,7 @@ "type": "COMESTIBLE", "comestible_type": "MED", "name": "heartburn medicine", - "description": "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous urges; with a twist off cap that doubles as a dosage cup.", + "description": "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous urges.", "weight": "1 g", "volume": "250 ml", "price": 1000, diff --git a/data/json/items/comestibles/protein.json b/data/json/items/comestibles/protein.json index fe3e2eac753ca..7421b0e8f7c10 100644 --- a/data/json/items/comestibles/protein.json +++ b/data/json/items/comestibles/protein.json @@ -58,7 +58,7 @@ "comestible_type": "FOOD", "name": { "str": "protein ration" }, "//": "Inspired by, but not based on, a true story", - "description": "SoyPelusa ran a highly successful crowdfunding campaign for this protein bar. A person can live on one of these bars, three times a day, presumably forever. After backers received their product, a single flaw was found: most consumers found starvation preferable to the flavor. Warehouses of the product went unsold as the company went bankrupt, providing the perfect opportunity for FEMA to scoop them up and stock the evac shelters. Now, you hold a piece of famous crowdfunding history in your hands. How exciting.", + "description": "SoyPelusa ran a highly successful crowdfunding campaign for their signature protein bar, dubbed \"DaiZoom.\"\n\nA person can live on one of these bars, three times a day, presumably forever. After backers received their product, a single flaw was found: most consumers found starvation preferable to the flavor. Warehouses of the product went unsold as the company went bankrupt, providing the perfect opportunity for FEMA to scoop them up and stock the evac shelters.\n\nNow, you hold a piece of famous crowdfunding history in your hands. How exciting.", "weight": "150 g", "volume": "223 ml", "price": 500, @@ -70,7 +70,7 @@ "material": [ "fruit", "veggy" ], "symbol": "%", "color": "green", - "container": "wrapper", + "container": "wrapper_pr", "calories": 400, "vitamins": [ [ "calcium", 30 ], [ "iron", 30 ], [ "vitA", 30 ], [ "vitB", 30 ], [ "vitC", 30 ], [ "bad_food", 5 ] ] }, diff --git a/data/json/items/comestibles/spice.json b/data/json/items/comestibles/spice.json index d574119e831b7..b80f02749fe19 100644 --- a/data/json/items/comestibles/spice.json +++ b/data/json/items/comestibles/spice.json @@ -154,5 +154,13 @@ "name": { "str_sp": "mustard powder" }, "description": "A fragnant yellow powder. Not edible in this form.", "color": "red" + }, + { + "id": "artificial_sweetener", + "copy-from": "sugar", + "type": "COMESTIBLE", + "name": "artificial sweetener", + "description": "Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No calories, no worries.", + "calories": 0 } ] diff --git a/data/json/items/containers.json b/data/json/items/containers.json index a981fccc4e0cf..3f63204aef19c 100644 --- a/data/json/items/containers.json +++ b/data/json/items/containers.json @@ -115,7 +115,7 @@ "price": 0, "price_postapoc": 10, "to_hit": -5, - "material": "cotton", + "material": [ "cotton" ], "pocket_data": [ { "pocket_type": "CONTAINER", "max_contains_volume": "15 L", "max_contains_weight": "15 kg", "moves": 400 } ], "symbol": ")", "color": "brown" @@ -131,7 +131,7 @@ "price": 0, "price_postapoc": 10, "to_hit": -5, - "material": "cotton", + "material": [ "cotton" ], "pocket_data": [ { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "3 kg", "moves": 400 } ], "symbol": ")", "color": "brown" @@ -443,7 +443,7 @@ "description": "A small cardboard box. No bigger than a foot in dimension.", "weight": "151 g", "volume": "1 L", - "pocket_data": [ { "pocket_type": "CONTAINER", "rigid": true, "max_contains_volume": "990 ml", "max_contains_weight": "4 kg" } ], + "pocket_data": [ { "pocket_type": "CONTAINER", "rigid": false, "max_contains_volume": "990 ml", "max_contains_weight": "4 kg" } ], "price": 0, "price_postapoc": 0, "material": "cardboard", @@ -464,7 +464,7 @@ "pocket_data": [ { "pocket_type": "CONTAINER", - "rigid": true, + "rigid": false, "max_contains_volume": "2990 ml", "max_contains_weight": "20 kg", "magazine_well": "2 L" @@ -491,7 +491,7 @@ "pocket_data": [ { "pocket_type": "CONTAINER", - "rigid": true, + "rigid": false, "max_contains_volume": "4990 ml", "max_contains_weight": "50 kg", "magazine_well": "3 L" @@ -1017,7 +1017,7 @@ "price_postapoc": 10, "to_hit": 1, "bashing": 3, - "material": "iron", + "material": [ "iron" ], "symbol": ")", "color": "light_gray", "pocket_data": [ @@ -1476,6 +1476,15 @@ "pocket_data": [ { "pocket_type": "CONTAINER", "max_contains_volume": "2500 ml", "max_contains_weight": "6 kg" } ], "flags": [ "TRADER_AVOID" ] }, + { + "id": "wrapper_pr", + "type": "GENERIC", + "name": { "str": "wrapper" }, + "//desc": "Daizu is Japanese for soy, hence DaiZoom", + "description": "\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly upon this greaseproof wrapper.", + "copy-from": "wrapper", + "pocket_data": [ { "pocket_type": "CONTAINER", "max_contains_volume": "225 ml", "max_contains_weight": "1 kg" } ] + }, { "id": "styrofoam_cup", "type": "GENERIC", diff --git a/data/json/items/corpses/inactive_bots.json b/data/json/items/corpses/inactive_bots.json index 668d221805835..bf48a81bc0792 100644 --- a/data/json/items/corpses/inactive_bots.json +++ b/data/json/items/corpses/inactive_bots.json @@ -22,8 +22,7 @@ "difficulty": 4, "moves": 60, "place_randomly": true, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -49,8 +48,7 @@ "difficulty": 4, "moves": 60, "place_randomly": true, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -76,8 +74,7 @@ "difficulty": 4, "moves": 60, "place_randomly": true, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -103,8 +100,7 @@ "difficulty": 4, "moves": 60, "place_randomly": true, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -130,31 +126,7 @@ "difficulty": 4, "moves": 60, "place_randomly": true, - "skill1": "electronics", - "skill2": "computer" - } - }, - { - "id": "bot_laserturret", - "type": "TOOL", - "name": { "str": "inactive laser turret" }, - "description": "This is an inactive laser turret. Using this item involves turning it on and placing it on the ground, where it will attach itself. If reprogrammed and rewired successfully the turret will identify you as a friendly, and attack all enemies with its revolving laser cannons. It requires sunlight in order to fire.", - "weight": "40750 g", - "volume": "30 L", - "price": 600000, - "price_postapoc": 12000, - "to_hit": -3, - "bashing": 8, - "material": [ "steel", "plastic" ], - "symbol": ";", - "color": "white", - "use_action": { - "type": "place_monster", - "monster_id": "mon_laserturret", - "difficulty": 6, - "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -176,8 +148,7 @@ "monster_id": "mon_turret_bmg", "difficulty": 6, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -203,8 +174,7 @@ "difficulty": 4, "moves": 60, "place_randomly": true, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -230,8 +200,7 @@ "difficulty": 5, "moves": 60, "place_randomly": true, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -253,8 +222,7 @@ "monster_id": "mon_turret_rifle", "difficulty": 6, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -276,8 +244,7 @@ "monster_id": "mon_crows_m240", "difficulty": 6, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -299,8 +266,7 @@ "monster_id": "mon_turret_riot", "difficulty": 6, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -322,8 +288,7 @@ "monster_id": "mon_turret", "difficulty": 6, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -347,8 +312,7 @@ "hostile_msg": "You misprogram the security bot and it trains its gun on you. RUN!", "difficulty": 6, "moves": 150, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -372,8 +336,7 @@ "hostile_msg": "You misprogram the security bot and it trains its gun on you. RUN!", "difficulty": 6, "moves": 150, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -397,8 +360,7 @@ "hostile_msg": "You misprogram the nurse bot. It's looking at you funny.", "difficulty": 6, "moves": 150, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -422,8 +384,7 @@ "hostile_msg": "You misprogram the grocery bot. It's looking at you funny.", "difficulty": 6, "moves": 150, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -447,8 +408,7 @@ "hostile_msg": "You misprogram the grocery bot. It's looking at you funny.", "difficulty": 4, "moves": 150, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -474,8 +434,7 @@ "//": "Very difficult due to organic interference and failed components", "difficulty": 9, "moves": 250, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -501,8 +460,7 @@ "//": "Very difficult due to organic interference and failed components", "difficulty": 9, "moves": 250, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -528,8 +486,7 @@ "//": "Wheeled and must be easy-to-use for police deployment", "difficulty": 3, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -555,8 +512,7 @@ "//": "Like most surveillance tech these likely have poor security. Secure the wifi!", "difficulty": 1, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -581,8 +537,7 @@ "//": "Currently has no higher functions", "difficulty": 1, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -608,8 +563,7 @@ "//": "Digging parameters need special attention but no (intentional) lethal weapons", "difficulty": 3, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -635,8 +589,7 @@ "//": "Pretty easy but you want to be careful with the gas", "difficulty": 4, "moves": 150, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -662,8 +615,7 @@ "//": "Same as hacks", "difficulty": 4, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -689,8 +641,7 @@ "//": "Not as lethal as a secubot but far more fiddly and complex with its implied assembly and sub-deployment systems", "difficulty": 6, "moves": 100, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -715,8 +666,7 @@ "//": "Milspec but immobile and no lethal weaponry", "difficulty": 4, "moves": 150, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -740,8 +690,7 @@ "hostile_msg": "The dispatch turns on you, whacking at you with its arms!", "difficulty": 1, "moves": 300, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -765,8 +714,7 @@ "hostile_msg": "The dispatch turns on you, slashing at you with its arms!", "difficulty": 1, "moves": 300, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -790,8 +738,7 @@ "hostile_msg": "The loudspeaker activates and begins his non-stopping shouts.", "difficulty": 2, "moves": 150, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } } ] diff --git a/data/json/items/fake.json b/data/json/items/fake.json index 01d33f1e6cfde..738a66501bc47 100644 --- a/data/json/items/fake.json +++ b/data/json/items/fake.json @@ -18,7 +18,7 @@ "copy-from": "fake_item", "type": "TOOL", "name": { "str_sp": "teeth and claws" }, - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID" ], "use_action": [ "BURROW" ], "qualities": [ [ "DIG", 3 ] ] }, @@ -61,7 +61,7 @@ "description": "A system of surgical grade scalpels. They allow you to make precise cuts and can also be used as a high-quality butchering tool.", "to_hit": 2, "cutting": 8, - "techniques": "PRECISE", + "techniques": [ "PRECISE" ], "flags": [ "TRADER_AVOID", "NO_UNWIELD", "UNBREAKABLE_MELEE", "SPEAR" ], "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 5 ], [ "BUTCHER", 50 ] ] }, diff --git a/data/json/items/fluff.json b/data/json/items/fluff.json index 1b9438f0d8334..558f37b7a1c5c 100644 --- a/data/json/items/fluff.json +++ b/data/json/items/fluff.json @@ -59,5 +59,181 @@ "material": [ "paper" ], "symbol": "*", "color": "light_gray" + }, + { + "id": "chess", + "type": "GENERIC", + "category": "other", + "name": { "str": "chess set" }, + "description": "A wooden box containing all the equipment needed to play a game of chess.", + "weight": "907 g", + "volume": "2 L", + "price": 7500, + "price_postapoc": 100, + "material": [ "wood" ], + "symbol": "?", + "color": "brown", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "checkers", + "type": "GENERIC", + "category": "other", + "name": { "str": "checkers set" }, + "description": "A wooden box containing a set of round tokens used to play checkers.", + "weight": "788 g", + "volume": "1500 ml", + "price": 2000, + "price_postapoc": 100, + "material": [ "wood" ], + "symbol": "?", + "color": "brown", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "cards_magic", + "type": "GENERIC", + "category": "other", + "name": { "str": "deck of Sorcery cards", "str_pl": "decks of Sorcery cards" }, + "description": "A set of cards meant to play the game \"Sorcery.\" Each card has a fun picture of a different monster.", + "weight": "210 g", + "volume": "250 ml", + "price": 2300, + "price_postapoc": 100, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "pictionary", + "type": "GENERIC", + "category": "other", + "name": { "str": "Picturesque", "str_pl": "sets of Picturesque" }, + "description": "A game where one draws an image, and the others attempt to guess what it is.", + "weight": "350 g", + "volume": "500 ml", + "price": 1500, + "price_postapoc": 100, + "material": [ "plastic" ], + "symbol": "?", + "color": "yellow", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "monopoly", + "type": "GENERIC", + "category": "other", + "name": { "str": "Capitalism", "str_pl": "sets of Capitalism" }, + "description": "A game where players traverse around the board buying property and swindling their friends.", + "weight": "300 g", + "volume": "500 ml", + "price": 99, + "price_postapoc": 100, + "material": [ "plastic" ], + "symbol": "?", + "color": "red", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "dnd", + "type": "GENERIC", + "category": "other", + "name": { "str": "Blobs and Bandits", "str_pl": "sets of Blobs and Bandits" }, + "description": "A roleplaying game set in the post-apocalypse, so you can pretend to survive the apocalypse while surviving the apocalypse.", + "weight": "680 g", + "volume": "1250 ml", + "price": 12950, + "price_postapoc": 1000, + "material": [ "plastic" ], + "symbol": "?", + "color": "red", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "g_warhammer", + "type": "GENERIC", + "category": "other", + "name": { "str": "Battlehammer", "str_pl": "sets of Battlehammer" }, + "description": "A strategy game featuring a set of tiny figurines of fantasy creatures.", + "weight": "680 g", + "volume": "1250 ml", + "price": 10880, + "price_postapoc": 5000, + "material": [ "plastic" ], + "symbol": "?", + "color": "yellow", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "g_warhammer40k", + "type": "GENERIC", + "category": "other", + "name": { "str": "Battlehammer 20k", "str_pl": "sets of Battlehammer 20k" }, + "description": "A strategy game featuring a set of tiny figurines of space aliens and grotesque space marines.", + "weight": "680 g", + "volume": "1250 ml", + "price": 10880, + "price_postapoc": 5000, + "material": [ "plastic" ], + "symbol": "?", + "color": "yellow", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "catan", + "type": "GENERIC", + "category": "other", + "name": { "str": "Settlers of the Ranch", "str_pl": "sets of Settlers of the Ranch" }, + "description": "A strategy game where players build settlements and trade for supplies.", + "weight": "804 g", + "volume": "1250 ml", + "price": 7050, + "price_postapoc": 5000, + "material": [ "wood" ], + "symbol": "?", + "color": "light_blue", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "battleship", + "type": "GENERIC", + "category": "other", + "name": { "str": "Warships", "str_pl": "sets of Warships" }, + "description": "A game where players try to guess where the opponent placed their ships on the board.", + "weight": "450 g", + "volume": "500 ml", + "price": 2000, + "price_postapoc": 1000, + "material": [ "plastic" ], + "symbol": "?", + "color": "blue", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "clue", + "type": "GENERIC", + "category": "other", + "name": { "str": "Murder Mystery", "str_pl": "sets of Murder Mystery" }, + "description": "A game where players try to figure out who murdered the butler.", + "weight": "370 g", + "volume": "500 ml", + "price": 2480, + "price_postapoc": 1000, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" } ] diff --git a/data/json/items/generic.json b/data/json/items/generic.json index ecf70b681cfa7..07be8df69afba 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -307,6 +307,7 @@ "symbol": ",", "color": "light_gray", "name": { "str": "chunk of chitin", "str_pl": "chunks of chitin" }, + "snippet_category": "chitin_desc", "description": "A piece of an insect's exoskeleton. It is light and very durable.", "price": 0, "price_postapoc": 25, @@ -317,6 +318,37 @@ "bashing": 1, "to_hit": -2 }, + { + "type": "GENERIC", + "id": "endochitin", + "category": "spare_parts", + "symbol": ",", + "color": "light_gray", + "name": { "str": "strand of endochitin", "str_pl": "strands of endochitin" }, + "snippet_category": "endochitin_desc", + "description": "A piece of an insect's endoskeleton.", + "price": 0, + "material": "chitin", + "flags": [ "NO_SALVAGE" ], + "weight": "89 g", + "volume": "300 ml", + "bashing": 1 + }, + { + "type": "GENERIC", + "id": "mutant_bug_hydrogen_sacs", + "category": "spare_parts", + "symbol": "o", + "color": "light_gray", + "name": { "str": "cluster of gas sacs", "str_pl": "clusters of gas sacs" }, + "description": "This is a cluster of membranous bubbles, each about the size of a grape, retrieved from inside a mutant insect. They float like tiny helium balloons, and are likely full of a lighter-than-air gas helping the bug to fly.", + "price": 0, + "material": "flesh", + "flags": [ "NO_SALVAGE" ], + "weight": "50 g", + "volume": "250 ml", + "to_hit": -4 + }, { "type": "GENERIC", "id": "ceramicdisks", @@ -354,7 +386,7 @@ "volume": "750 ml", "price": 0, "price_postapoc": 5, - "material": "cotton", + "material": [ "cotton" ], "symbol": ",", "color": "white" }, @@ -476,6 +508,7 @@ "material": "plastic", "weight": "18 g", "volume": "5 ml", + "pocket_data": [ { "pocket_type": "SOFTWARE", "max_contains_volume": "1 L", "max_contains_weight": "1 kg" } ], "to_hit": -3 }, { @@ -719,7 +752,7 @@ "description": "A large, heavy-duty spring. Expands with significant force when compressed.", "price": 1000, "price_postapoc": 100, - "material": "iron", + "material": [ "iron" ], "weight": "3000 g", "volume": "750 ml" }, @@ -781,7 +814,7 @@ "description": "A heating element, like the ones used in hotplates or kettles.", "price": 1000, "price_postapoc": 10, - "material": "iron", + "material": [ "iron" ], "weight": "226 g", "volume": "250 ml" }, @@ -795,7 +828,7 @@ "description": "A simple thermostat controlled by thermal expansion of a bimetal strip.", "price": 1000, "price_postapoc": 10, - "material": "iron", + "material": [ "iron" ], "weight": "226 g", "volume": "250 ml" }, @@ -1645,7 +1678,7 @@ "color": "red", "name": { "str": "blood soaked rag" }, "description": "A large rag, drenched in blood. It could be cleaned with boiling water.", - "material": "cotton", + "material": [ "cotton" ], "flags": [ "NO_SALVAGE", "TRADER_AVOID" ], "weight": "80 g", "volume": "250 ml" @@ -1773,7 +1806,7 @@ "category": "other", "price": 20000, "price_postapoc": 10, - "material": "iron", + "material": [ "iron" ], "flags": [ "DURABLE_MELEE", "TRADER_AVOID" ], "weight": "36287 g", "volume": "3 L", @@ -2481,6 +2514,7 @@ "weight": "6 g", "volume": "5 ml", "to_hit": -3, + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "money": 200000000 } } ], "max_charges": 200000000, "rand_charges": [ 0, @@ -2535,6 +2569,7 @@ "price": 500, "price_postapoc": 0, "material": "plastic", + "flags": [ "MISSION_ITEM" ], "weight": "6 g", "volume": "5 ml", "to_hit": -3 @@ -2645,20 +2680,6 @@ "volume": "250 ml", "category": "spare_parts" }, - { - "id": "cerberus_laser", - "type": "GENERIC", - "symbol": "(", - "color": "magenta", - "name": { "str": "TX-5LR Laser Cannon" }, - "description": "A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. Unusable as a weapon on its own without the necessary parts.", - "price": 5000000, - "price_postapoc": 1000, - "material": [ "steel", "plastic" ], - "weight": "5000 g", - "volume": "750 ml", - "category": "spare_parts" - }, { "id": "light_bulb", "type": "GENERIC", @@ -2933,15 +2954,6 @@ "weight": "100 kg", "copy-from": "broken_turret" }, - { - "type": "GENERIC", - "id": "broken_laserturret", - "symbol": ",", - "color": "green", - "name": { "str": "broken laser turret" }, - "weight": "110 kg", - "copy-from": "broken_turret" - }, { "type": "GENERIC", "id": "broken_secubot", diff --git a/data/json/items/generic/dining_kitchen.json b/data/json/items/generic/dining_kitchen.json index 1025e52e2197c..f3359f4a08469 100644 --- a/data/json/items/generic/dining_kitchen.json +++ b/data/json/items/generic/dining_kitchen.json @@ -138,6 +138,7 @@ "symbol": ")", "description": "A perfectly ordinary ceramic soup bowl.", "copy-from": "base_ceramic_dish", + "volume": "500 ml", "pocket_data": [ { "max_contains_volume": "500 ml", @@ -283,6 +284,7 @@ "symbol": "U", "description": "A tall drinking glass.", "copy-from": "base_glass_dish", + "volume": "600 ml", "pocket_data": [ { "max_contains_volume": "500 ml", @@ -322,6 +324,7 @@ "symbol": "u", "description": "A glass bowl for soup or dessert.", "copy-from": "base_glass_dish", + "volume": "500 ml", "pocket_data": [ { "max_contains_volume": "500 ml", @@ -393,7 +396,7 @@ "copy-from": "base_plastic_dish", "pocket_data": [ { - "max_contains_volume": "250 ml", + "max_contains_volume": "120 ml", "max_contains_weight": "1 kg", "watertight": true, "open_container": true, @@ -425,7 +428,7 @@ "proportional": { "weight": 0.4, "volume": 0.5 }, "description": "A plastic cup with a spill-proof lid, designed for use by children.", "copy-from": "base_plastic_dish", - "pocket_data": [ { "max_contains_volume": "250 ml", "max_contains_weight": "1 kg", "watertight": true, "rigid": true } ], + "pocket_data": [ { "max_contains_volume": "120 ml", "max_contains_weight": "1 kg", "watertight": true, "rigid": true } ], "qualities": [ [ "CONTAIN", 1 ] ], "snippet_category": [ { "id": "sippycup1", "text": "This cup is decorated with cartoon bears." }, @@ -719,7 +722,7 @@ "name": { "str": "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", + "material": [ "iron" ], "color": "dark_gray", "weight": "3000 g", "volume": "2 L", @@ -789,8 +792,7 @@ "material": "steel", "color": "light_gray", "weight": "2490 g", - "volume": "9 L", - "//": "Volume assumes you can stick some stuff in the pot inside your bag", + "volume": "12800 ml", "bashing": 8, "pocket_data": [ { @@ -836,7 +838,7 @@ "name": { "str": "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", + "material": [ "iron" ], "color": "dark_gray", "weight": "2628 g", "volume": "1 L", @@ -870,7 +872,7 @@ "to_hit": -2, "pocket_data": [ { - "max_contains_volume": "2 L", + "max_contains_volume": "800 ml", "max_contains_weight": "1 kg", "watertight": true, "open_container": true, diff --git a/data/json/items/generic/spares.json b/data/json/items/generic/spares.json index 95f22c1d1b78d..15f72e4a04e07 100644 --- a/data/json/items/generic/spares.json +++ b/data/json/items/generic/spares.json @@ -98,7 +98,7 @@ "type": "GENERIC", "name": { "str": "high-pressure pump" }, "description": "A complex mechanical pump capable of achieving high pressures. Far beyond anything you could reasonably improvise.", - "material": "iron", + "material": [ "iron" ], "weight": "2800 g", "volume": "1250 ml", "price": 28900, @@ -111,7 +111,7 @@ "type": "GENERIC", "name": { "str": "mechanical pump" }, "description": "A simple cast iron mechanical impeller pump. It's not good for much of anything on its own.", - "material": "iron", + "material": [ "iron" ], "weight": "2400 g", "volume": "1 L", "price": 1800, diff --git a/data/json/items/generic/string.json b/data/json/items/generic/string.json index 718999993696a..df1544dcd4201 100644 --- a/data/json/items/generic/string.json +++ b/data/json/items/generic/string.json @@ -27,7 +27,7 @@ "volume": "10ml", "price": 10, "price_postapoc": 10, - "material": "cotton", + "material": [ "cotton" ], "symbol": ",", "color": "light_gray", "flags": [ "NO_SALVAGE" ] diff --git a/data/json/items/generic/toys_and_sports.json b/data/json/items/generic/toys_and_sports.json index 8a81360a0d16f..aaf0feaa0df25 100644 --- a/data/json/items/generic/toys_and_sports.json +++ b/data/json/items/generic/toys_and_sports.json @@ -16,10 +16,13 @@ "charges_per_use": 1, "turns_per_charge": 20, "use_action": "DOLLCHAT", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_disposable_cell", "light_disposable_cell", "light_minus_battery_cell", @@ -28,7 +31,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -48,10 +51,13 @@ "charges_per_use": 1, "turns_per_charge": 20, "use_action": "DOLLCHAT", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_disposable_cell", "light_disposable_cell", "light_minus_battery_cell", @@ -60,7 +66,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { diff --git a/data/json/items/gun/12mm.json b/data/json/items/gun/12mm.json index 05ca317c29eed..24da85a479237 100644 --- a/data/json/items/gun/12mm.json +++ b/data/json/items/gun/12mm.json @@ -29,7 +29,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "12mm", [ "hk_g80mag" ] ] ], - "flags": [ "NEVER_JAMS" ] + "flags": [ "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hk_g80mag" ] + } + ] } ] diff --git a/data/json/items/gun/20x66mm.json b/data/json/items/gun/20x66mm.json index bf8586fd11726..cb67a0ce7b954 100644 --- a/data/json/items/gun/20x66mm.json +++ b/data/json/items/gun/20x66mm.json @@ -70,8 +70,16 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "20x66mm", [ "20x66_20_mag", "20x66_40_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "20x66_20_mag", "20x66_40_mag" ] + } + ] }, { "id": "rm228", @@ -103,7 +111,15 @@ [ "stock", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "20x66mm", [ "20x66_10_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "20x66_10_mag" ] + } + ] } ] diff --git a/data/json/items/gun/22.json b/data/json/items/gun/22.json index efe023a510528..5d8a853cb5178 100644 --- a/data/json/items/gun/22.json +++ b/data/json/items/gun/22.json @@ -38,7 +38,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "22", [ "a180mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "a180mag" ] + } + ] }, { "id": "marlin_9a", @@ -63,7 +71,6 @@ "durability": 8, "blackpowder_tolerance": 56, "clip_size": 19, - "magazines": [ [ "22", [ "marlin_tubeloader" ] ] ], "valid_mod_locations": [ [ "accessories", 4 ], [ "barrel", 1 ], @@ -80,7 +87,15 @@ ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], "flags": [ "RELOAD_ONE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 19 } } ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "marlin_tubeloader" ] + } + ] }, { "id": "moss_brownie", @@ -195,7 +210,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "22", [ "ruger1022mag", "ruger1022bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ruger1022mag", "ruger1022bigmag" ] + } + ] }, { "id": "ruger_lcr_22", @@ -206,8 +229,7 @@ "weight": "420 g", "ammo": [ "22" ], "clip_size": 8, - "magazines": [ [ "22", [ "22_speedloader8" ] ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 8 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "22": 8 } } ] }, { "id": "sig_mosquito", @@ -245,7 +267,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "22", [ "mosquitomag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "mosquitomag" ] + } + ] }, { "id": "sw_22", @@ -266,7 +296,15 @@ "dispersion": 480, "durability": 7, "min_cycle_recoil": 39, - "magazines": [ [ "22", [ "sw22mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "sw22mag" ] + } + ] }, { "id": "j22", @@ -288,7 +326,15 @@ "durability": 5, "min_cycle_recoil": 39, "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "22", [ "j22mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "j22mag" ] + } + ] }, { "id": "walther_p22", @@ -309,6 +355,14 @@ "dispersion": 480, "durability": 7, "min_cycle_recoil": 39, - "magazines": [ [ "22", [ "wp22mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "wp22mag" ] + } + ] } ] diff --git a/data/json/items/gun/223.json b/data/json/items/gun/223.json index b289f6b02586d..48782ad80d681 100644 --- a/data/json/items/gun/223.json +++ b/data/json/items/gun/223.json @@ -23,10 +23,13 @@ "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], "barrel_length": "250 ml", "built_in_mods": [ "folding_stock" ], - "magazines": [ - [ - "223", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -41,7 +44,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { @@ -64,10 +67,13 @@ "dispersion": 150, "durability": 7, "min_cycle_recoil": 1350, - "magazines": [ - [ - "223", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -82,7 +88,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { @@ -94,6 +100,7 @@ "description": "A compact, 7.5 inch barrel version of the classic AR-15 design, commercially marketed as a home defense weapon.", "weight": "2267 g", "volume": "1758 ml", + "longest_side": "1116 mm", "price": 91400, "price_postapoc": 3500, "to_hit": -2, @@ -107,7 +114,15 @@ "dispersion": 380, "durability": 6, "min_cycle_recoil": 1350, - "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag50", "survivor223mag" ] + } + ] }, { "id": "famas", @@ -144,7 +159,15 @@ [ "underbarrel mount", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "223", [ "famasmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "famasmag" ] + } + ] }, { "id": "fs2000", @@ -167,7 +190,6 @@ "durability": 9, "min_cycle_recoil": 1350, "default_mods": [ "factory_handguard" ], - "magazines": [ [ "223", [ "stanag30" ] ] ], "//": "Forward ejection port would require a different brass catcher design, so there is no slot for it. Bullpup design requires the factory stock to function.", "valid_mod_locations": [ [ "accessories", 2 ], @@ -177,6 +199,15 @@ [ "rail mount", 1 ], [ "sights", 1 ], [ "underbarrel mount", 1 ] + ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30" ] + } ] }, { @@ -202,10 +233,13 @@ "durability": 8, "min_cycle_recoil": 1350, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], - "magazines": [ - [ - "223", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -220,7 +254,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { @@ -244,7 +278,15 @@ "durability": 8, "min_cycle_recoil": 1350, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], - "magazines": [ [ "223", [ "g36mag_30rd", "g36mag_100rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "g36mag_30rd", "g36mag_100rd" ] + } + ] }, { "id": "m249", @@ -282,10 +324,13 @@ [ "sling", 1 ], [ "stock", 1 ] ], - "magazines": [ - [ - "223", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "belt223", "stanag30", "stanag5", @@ -301,9 +346,17 @@ "stanag150", "survivor223mag" ] - ] + } ] }, + { + "id": "m249_semi", + "type": "GUN", + "copy-from": "m249", + "name": { "str": "M249S" }, + "description": "This is a semi-automatic civilian variant of the M249 machine gun, manufactured for sport shooting and collectors market. Notably, it retains the ability to be belt fed, an uncommon feature in civilian firearms.", + "modes": [ [ "DEFAULT", "semi-auto", 1 ] ] + }, { "id": "m27iar", "copy-from": "h&k416a5", @@ -312,10 +365,14 @@ "description": "A H&K416 carbine outfitted with a heavier barrel to enable higher amounts of suppressive fire while retaining a good degree of mobility.", "weight": "3710 g", "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], - "magazines": [ - [ - "223", - [ + "relative": { "ranged_damage": { "damage_type": "bullet", "amount": 1 }, "durability": 1 }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -330,9 +387,8 @@ "stanag150", "survivor223mag" ] - ] - ], - "relative": { "ranged_damage": { "damage_type": "bullet", "amount": 1 }, "durability": 1 } + } + ] }, { "id": "m4a1", @@ -356,10 +412,13 @@ "durability": 6, "min_cycle_recoil": 1350, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], - "magazines": [ - [ - "223", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -374,7 +433,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { @@ -398,10 +457,13 @@ "durability": 7, "min_cycle_recoil": 1350, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "3 rd.", 3 ] ], - "magazines": [ - [ - "223", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -416,7 +478,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { @@ -441,47 +503,15 @@ "dispersion": 380, "durability": 6, "min_cycle_recoil": 1350, - "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ] - }, - { - "id": "rifle_223", - "copy-from": "gun_base", - "looks_like": "ar15", - "type": "GUN", - "name": { "str": "pipe rifle: .223", "str_pl": "pipe rifles: .223" }, - "description": "A homemade rifle. It is simply a pipe attached to a stock, with a hammer to strike the single round it holds.", - "weight": "4080 g", - "volume": "3 L", - "price": 110000, - "price_postapoc": 500, - "to_hit": -1, - "bashing": 12, - "material": [ "steel", "wood" ], - "symbol": "(", - "color": "brown", - "ammo": [ "223" ], - "skill": "rifle", - "ranged_damage": { "damage_type": "bullet", "amount": -2 }, - "dispersion": 550, - "durability": 6, - "blackpowder_tolerance": 60, - "loudness": 25, - "clip_size": 1, - "reload": 200, - "barrel_length": "1000 ml", - "valid_mod_locations": [ - [ "accessories", 2 ], - [ "muzzle", 1 ], - [ "sling", 1 ], - [ "stock", 1 ], - [ "grip mount", 1 ], - [ "rail mount", 1 ], - [ "sights mount", 1 ], - [ "underbarrel mount", 1 ] - ], - "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], - "flags": [ "RELOAD_EJECT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 1 } } ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag50", "survivor223mag" ] + } + ] }, { "id": "ruger_mini", @@ -519,7 +549,15 @@ [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "223", [ "ruger20", "ruger5", "ruger10", "ruger30", "ruger90", "ruger100", "ruger_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ruger20", "ruger5", "ruger10", "ruger30", "ruger90", "ruger100", "ruger_makeshiftmag" ] + } + ] }, { "id": "scar_l", @@ -543,10 +581,13 @@ "durability": 8, "min_cycle_recoil": 1350, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], - "magazines": [ - [ - "223", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -561,7 +602,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { @@ -584,10 +625,13 @@ "min_cycle_recoil": 1350, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "3 rd.", 3 ], [ "AUTO", "auto", 4 ] ], "built_in_mods": [ "folding_stock" ], - "magazines": [ - [ - "223", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -602,7 +646,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { @@ -641,63 +685,14 @@ [ "sling", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "223", [ "augmag_30rd", "augmag_10rd", "augmag_42rd", "augmag_100rd" ] ] ] - }, - { - "id": "surv_carbine_223", - "copy-from": "rifle_manual", - "looks_like": "ar15", - "type": "GUN", - "name": { "str": "handmade carbine" }, - "//": "It's smaller than an M4A1, plus it's a homemade firearm.", - "description": "A well-designed improvised lever-action carbine with a shortened barrel. Accepting crude detachable magazines or STANAG magazines, this is one of the better homemade weapons.", - "weight": "1950 g", - "volume": "1500 ml", - "price": 10000, - "price_postapoc": 2750, - "to_hit": -1, - "bashing": 6, - "material": [ "steel", "wood" ], - "symbol": "(", - "color": "brown", - "ammo": [ "223" ], - "ranged_damage": { "damage_type": "bullet", "amount": -4 }, - "dispersion": 550, - "durability": 6, - "blackpowder_tolerance": 32, - "loudness": 25, - "reload": 200, - "valid_mod_locations": [ - [ "accessories", 2 ], - [ "barrel", 1 ], - [ "brass catcher", 1 ], - [ "muzzle", 1 ], - [ "sling", 1 ], - [ "stock", 1 ], - [ "underbarrel", 1 ], - [ "grip mount", 1 ], - [ "rail mount", 1 ], - [ "sights mount", 1 ] - ], - "magazines": [ - [ - "223", - [ - "survivor223mag", - "stanag30", - "stanag5", - "stanag10", - "stanag20", - "stanag40", - "stanag50", - "stanag60", - "stanag60drum", - "stanag90", - "stanag100", - "stanag100drum", - "stanag150" - ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "augmag_30rd", "augmag_10rd", "augmag_42rd", "augmag_100rd" ] + } ] } ] diff --git a/data/json/items/gun/270win.json b/data/json/items/gun/270win.json index cd317e48c62f7..75ef7ab216db8 100644 --- a/data/json/items/gun/270win.json +++ b/data/json/items/gun/270win.json @@ -8,6 +8,7 @@ "description": "A classic bolt action rifle chambered for .270 Winchester, very popular among hunters. This is a CDL SF model with a forged, fluted, 416 stainless steel barrel threaded into the receiver and a recessed bolt face. It has checkered walnut furniture and a recoil pad to reduce perceived recoil.", "weight": "3410 g", "volume": "2202 ml", + "longest_side": "1135 mm", "price": 112600, "price_postapoc": 2750, "to_hit": -1, diff --git a/data/json/items/gun/300.json b/data/json/items/gun/300.json index 29f87071c5f2f..ab775480c573b 100644 --- a/data/json/items/gun/300.json +++ b/data/json/items/gun/300.json @@ -19,8 +19,16 @@ "durability": 8, "min_cycle_recoil": 4770, "barrel_length": "500 ml", - "magazines": [ [ "300", [ "m2010mag" ] ] ], - "flags": [ "NEVER_JAMS" ] + "flags": [ "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m2010mag" ] + } + ] }, { "id": "weatherby_5", diff --git a/data/json/items/gun/3006.json b/data/json/items/gun/3006.json index 8ee4ded31c953..10cb19ae73476 100644 --- a/data/json/items/gun/3006.json +++ b/data/json/items/gun/3006.json @@ -37,7 +37,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], - "magazines": [ [ "3006", [ "blrmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "blrmag" ] + } + ] }, { "id": "garand", @@ -75,7 +83,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "3006", [ "garandclip" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "garandclip" ] + } + ] }, { "id": "m1903", @@ -112,9 +128,16 @@ [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "3006", [ "3006_clip" ] ] ], "flags": [ "RELOAD_ONE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 5 } } ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "3006_clip" ] + } + ] }, { "id": "m1918", @@ -154,7 +177,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "3006", [ "m1918mag", "m1918bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m1918mag", "m1918bigmag" ] + } + ] }, { "id": "remington_700", @@ -179,46 +210,5 @@ "barrel_length": "750 ml", "flags": [ "RELOAD_ONE", "NEVER_JAMS" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 4 } } ] - }, - { - "id": "rifle_3006", - "looks_like": "ar15", - "type": "GUN", - "reload_noise_volume": 10, - "name": { "str": "pipe rifle: .30-06", "str_pl": "pipe rifles: .30-06" }, - "//": "It's the same size as the others, but it's still a scrap weapon.", - "description": "A homemade rifle. It is simply a pipe attached to a stock, with a hammer to strike the single round it holds.", - "weight": "4080 g", - "volume": "3 L", - "price": 110000, - "price_postapoc": 500, - "to_hit": -1, - "bashing": 12, - "material": [ "steel", "wood" ], - "symbol": "(", - "color": "brown", - "ammo": [ "3006" ], - "skill": "rifle", - "ranged_damage": { "damage_type": "bullet", "amount": -2 }, - "dispersion": 550, - "durability": 6, - "blackpowder_tolerance": 60, - "loudness": 25, - "clip_size": 1, - "reload": 200, - "barrel_length": "1000 ml", - "valid_mod_locations": [ - [ "accessories", 2 ], - [ "muzzle", 1 ], - [ "sling", 1 ], - [ "stock", 1 ], - [ "grip mount", 1 ], - [ "rail mount", 1 ], - [ "sights mount", 1 ], - [ "underbarrel mount", 1 ] - ], - "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], - "flags": [ "RELOAD_EJECT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 1 } } ] } ] diff --git a/data/json/items/gun/300BLK.json b/data/json/items/gun/300BLK.json index 253b364462d38..7dca2e1c4c5d8 100644 --- a/data/json/items/gun/300BLK.json +++ b/data/json/items/gun/300BLK.json @@ -23,10 +23,13 @@ "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], "barrel_length": "250 ml", "built_in_mods": [ "folding_stock" ], - "magazines": [ - [ - "300blk", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -41,7 +44,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { @@ -79,10 +82,13 @@ [ "sling", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ - [ - "300blk", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stanag30", "stanag5", "stanag10", @@ -97,7 +103,7 @@ "stanag150", "survivor223mag" ] - ] + } ] }, { diff --git a/data/json/items/gun/308.json b/data/json/items/gun/308.json index 957e4e8e45026..3bc215ec05d97 100644 --- a/data/json/items/gun/308.json +++ b/data/json/items/gun/308.json @@ -22,7 +22,15 @@ "min_cycle_recoil": 2700, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], "barrel_length": "500 ml", - "magazines": [ [ "308", [ "falmag", "falbigmag", "fal_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "falmag", "falbigmag", "fal_makeshiftmag" ] + } + ] }, { "id": "hk_g3", @@ -46,7 +54,15 @@ "min_cycle_recoil": 2700, "durability": 8, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "3 rd.", 3 ], [ "AUTO", "auto", 4 ] ], - "magazines": [ [ "308", [ "g3mag", "g3bigmag", "g3_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "g3mag", "g3bigmag", "g3_makeshiftmag" ] + } + ] }, { "id": "m134", @@ -75,8 +91,16 @@ "valid_mod_locations": [ [ "brass catcher", 1 ], [ "sling", 1 ], [ "rail mount", 1 ], [ "sights mount", 1 ] ], "modes": [ [ "DEFAULT", "low auto", 50 ], [ "AUTO", "high auto", 100 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], - "magazines": [ [ "308", [ "belt308" ] ] ], - "flags": [ "NEVER_JAMS", "MOUNTED_GUN" ] + "flags": [ "NEVER_JAMS", "MOUNTED_GUN" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "belt308" ] + } + ] }, { "id": "m14ebr", @@ -140,7 +164,15 @@ [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "308", [ "m14mag", "m14smallmag", "m14_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m14mag", "m14smallmag", "m14_makeshiftmag" ] + } + ] }, { "id": "m240", @@ -178,7 +210,15 @@ [ "sling", 1 ], [ "stock", 1 ] ], - "magazines": [ [ "308", [ "belt308" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "belt308" ] + } + ] }, { "id": "m60", @@ -217,47 +257,23 @@ [ "sling", 1 ], [ "stock", 1 ] ], - "magazines": [ [ "308", [ "belt308" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "belt308" ] + } + ] }, { - "id": "rifle_308", - "copy-from": "rifle_manual", - "looks_like": "ar15", + "id": "m60_semi", "type": "GUN", - "name": { "str": "handmade heavy carbine" }, - "//": "It's amongst the smallest of the .308 firearms, and a scrap weapon as well. This means a short handmade barrel, and considerable loss of energy.", - "description": "A homemade lever-action magazine-fed smoothbore rifle. While still a primitive pipe and 2x4 design, some minor improvements have been made, such as being able to accept G3 compatible magazines, and chambering the more powerful .308 rounds.", - "weight": "2311 g", - "volume": "2 L", - "price": 10000, - "price_postapoc": 2250, - "to_hit": -1, - "bashing": 10, - "material": [ "steel", "wood" ], - "symbol": "(", - "color": "brown", - "ammo": [ "308" ], - "ranged_damage": { "damage_type": "bullet", "amount": -5 }, - "dispersion": 550, - "durability": 6, - "blackpowder_tolerance": 60, - "reload": 200, - "barrel_length": "500 ml", - "valid_mod_locations": [ - [ "accessories", 4 ], - [ "barrel", 1 ], - [ "bore", 1 ], - [ "brass catcher", 1 ], - [ "muzzle", 1 ], - [ "stock", 1 ], - [ "mechanism", 4 ], - [ "sights", 1 ], - [ "sling", 1 ], - [ "grip mount", 1 ], - [ "rail mount", 1 ], - [ "underbarrel mount", 1 ] - ], - "magazines": [ [ "308", [ "g3_makeshiftmag", "g3mag", "g3bigmag" ] ] ] + "copy-from": "m60", + "name": { "str": "M60 Semi Auto" }, + "description": "This is a semi-automatic civilian variant of the M60 machine gun, retaining the ability to be belt fed, an uncommon feature in civilian firearms.", + "modes": [ [ "DEFAULT", "semi-auto", 1 ] ] }, { "id": "savage_111f", @@ -295,7 +311,15 @@ "ammo": [ "308" ], "ranged_damage": { "damage_type": "bullet", "amount": -3 }, "min_cycle_recoil": 2700, - "magazines": [ [ "308", [ "scarhmag", "scarhbigmag", "scarhmag_30rd", "scarh_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "scarhmag", "scarhbigmag", "scarhmag_30rd", "scarh_makeshiftmag" ] + } + ] }, { "id": "M24", @@ -306,6 +330,7 @@ "description": "The M24 Sniper is the military and police version of the Remington Model 700 rifle, M24 being the model name assigned by the United States Army after adoption as their standard sniper rifle in 1988. The M24 is referred to as a 'weapon system' because it consists of not only a rifle, but also a detachable telescopic sight and other accessories.", "weight": "4990 g", "volume": "4084 ml", + "longest_side": "992 mm", "price": 350000, "price_postapoc": 4500, "to_hit": -1, @@ -360,7 +385,15 @@ "min_cycle_recoil": 2700, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 4 ] ], "default_mods": [ "adjustable_stock" ], - "magazines": [ [ "308", [ "hk417mag_20rd", "hk417mag_10rd", "hk417_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hk417mag_20rd", "hk417mag_10rd", "hk417_makeshiftmag" ] + } + ] }, { "id": "m110a1", @@ -384,7 +417,15 @@ "durability": 8, "min_cycle_recoil": 2700, "default_mods": [ "adjustable_stock", "bipod", "rifle_scope", "suppressor" ], - "magazines": [ [ "308", [ "hk417mag_20rd", "hk417mag_10rd", "hk417_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hk417mag_20rd", "hk417mag_10rd", "hk417_makeshiftmag" ] + } + ] }, { "id": "ar10", @@ -407,6 +448,14 @@ "dispersion": 150, "durability": 7, "min_cycle_recoil": 2700, - "magazines": [ [ "308", [ "ar10mag_20rd", "ar10_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ar10mag_20rd", "ar10_makeshiftmag" ] + } + ] } ] diff --git a/data/json/items/gun/32.json b/data/json/items/gun/32.json index 954cb16fb6f7a..932946d4cff3f 100644 --- a/data/json/items/gun/32.json +++ b/data/json/items/gun/32.json @@ -8,6 +8,7 @@ "description": "The SIG Sauer P230 is a small, semi-automatic handgun chambered in .32 ACP. Due to its small dimensions, it was often carried as a backup weapon.", "weight": "460 g", "volume": "312 ml", + "longest_side": "194 mm", "price": 43000, "price_postapoc": 1000, "to_hit": -1, @@ -34,7 +35,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "32", [ "sigp230mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "sigp230mag" ] + } + ] }, { "id": "skorpion_61", @@ -46,6 +55,7 @@ "description": "The Skorpion Vz. 61 is a Czechoslovak submachine gun from the 1950s, chambered in .32 ACP.", "weight": "1300 g", "volume": "788 ml", + "longest_side": "1116 mm", "price": 150000, "price_postapoc": 2500, "to_hit": -2, @@ -75,7 +85,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "32", [ "skorpion61mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "skorpion61mag" ] + } + ] }, { "id": "walther_ppk", @@ -86,6 +104,7 @@ "description": "One of the most famous handguns of the 20th century. Your name is not Bond, but you might find this little gun still useful.", "weight": "540 g", "volume": "216 ml", + "longest_side": "173 mm", "price": 45000, "price_postapoc": 1250, "to_hit": -1, @@ -112,7 +131,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "32", [ "ppkmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ppkmag" ] + } + ] }, { "id": "kp32", @@ -121,8 +148,9 @@ "type": "GUN", "name": { "str": "Kel-Tec P32" }, "description": "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.", - "weight": "198 g", - "volume": "132ml", + "weight": "186 g", + "volume": "138 ml", + "longest_side": "147 mm", "price": 14000, "price_postapoc": 1000, "to_hit": -3, @@ -133,6 +161,14 @@ "dispersion": 480, "durability": 8, "min_cycle_recoil": 135, - "magazines": [ [ "32", [ "kp32mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "kp32mag" ] + } + ] } ] diff --git a/data/json/items/gun/357sig.json b/data/json/items/gun/357sig.json index 5824eae93821b..d39e30d1b9212 100644 --- a/data/json/items/gun/357sig.json +++ b/data/json/items/gun/357sig.json @@ -8,6 +8,7 @@ "description": "A SIG Sauer P226 chambered for .357 SIG. The P226 is a DA/SA, short-recoil operated semi-automatic pistol.", "weight": "964 g", "volume": "549 ml", + "longest_side": "232 mm", "price": 50000, "price_postapoc": 2250, "to_hit": -1, @@ -18,7 +19,15 @@ "ammo": [ "357sig" ], "dispersion": 480, "durability": 7, - "magazines": [ [ "357sig", [ "p226mag_12rd_357sig" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "p226mag_12rd_357sig" ] + } + ] }, { "id": "glock_31", @@ -28,9 +37,18 @@ "description": "A full size .357 SIG Glock pistol. It is extremely similar to the Glock 22, and could be converted to fire .40 S&W by switching the barrel.", "weight": "660 g", "volume": "443 ml", + "longest_side": "234 mm", "price_postapoc": 2250, "ammo": [ "357sig" ], - "magazines": [ [ "357sig", [ "glock40mag", "glock40bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "glock40mag", "glock40bigmag" ] + } + ] }, { "id": "p320_357sig", @@ -41,6 +59,7 @@ "description": "The P320 Compact is a semi-automatic, short recoil operated pistol. This one is chambered for .357 SIG.", "weight": "731 g", "volume": "462 ml", + "longest_side": "217 mm", "price": 69000, "price_postapoc": 2250, "to_hit": -2, @@ -50,6 +69,14 @@ "ammo": [ "357sig" ], "dispersion": 480, "durability": 6, - "magazines": [ [ "357sig", [ "p320mag_13rd_357sig" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "p320mag_13rd_357sig" ] + } + ] } ] diff --git a/data/json/items/gun/36paper.json b/data/json/items/gun/36paper.json index d7be562a05daa..c12181f0541e8 100644 --- a/data/json/items/gun/36paper.json +++ b/data/json/items/gun/36paper.json @@ -8,6 +8,7 @@ "description": "The Colt Model 1861 Navy cap & ball .36-caliber revolver was a six-shot, single-action percussion weapon produced by Colt's Manufacturing Company from 1861 until 1873.", "weight": "1184 g", "volume": "540 ml", + "longest_side": "351 mm", "price": 30000, "price_postapoc": 3000, "to_hit": -1, diff --git a/data/json/items/gun/38.json b/data/json/items/gun/38.json index 3d356648c9524..ab8a8f9eae681 100644 --- a/data/json/items/gun/38.json +++ b/data/json/items/gun/38.json @@ -45,6 +45,7 @@ "description": "A small, chubby derringer pistol bearing a slight resemblance to the Mossberg Brownie. It uses a rotating firing pin to fire the individual hammers of the four barrels arranged in a square formation.", "weight": "800 g", "volume": "399 ml", + "longest_side": "162 mm", "price": 120000, "price_postapoc": 1000, "to_hit": -1, @@ -79,6 +80,7 @@ "description": "A six-shot revolver, produced since 1899 and known as the most popular handgun of the 20th century. It has a swing-out cylinder for ease of reloading.", "weight": "975 g", "volume": "402 ml", + "longest_side": "252 mm", "price": 42400, "price_postapoc": 1250, "to_hit": -2, @@ -90,8 +92,7 @@ "durability": 8, "blackpowder_tolerance": 56, "clip_size": 6, - "magazines": [ [ "38", [ "38_speedloader6" ] ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "38": 6 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "38": 6 } } ] }, { "id": "rifle_38", @@ -141,6 +142,7 @@ "description": "A compact, double-action-only revolver designed for easy concealment, with a stainless steel cylinder and aluminum frame.", "weight": "382 g", "volume": "321 ml", + "longest_side": "191 mm", "price": 54500, "price_postapoc": 1000, "to_hit": -2, @@ -154,7 +156,6 @@ "durability": 10, "blackpowder_tolerance": 56, "clip_size": 5, - "magazines": [ [ "38", [ "38_speedloader5" ] ] ], "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], @@ -166,7 +167,7 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "38": 5 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "38": 5 } } ] }, { "id": "sw_619", @@ -177,6 +178,7 @@ "description": "A seven-round .38 revolver sold by Smith & Wesson. It features a fixed rear sight and a reinforced frame.", "weight": "1074 g", "volume": "608 ml", + "longest_side": "278 mm", "price": 62000, "price_postapoc": 1250, "to_hit": -2, @@ -189,7 +191,6 @@ "durability": 10, "blackpowder_tolerance": 56, "clip_size": 7, - "magazines": [ [ "38", [ "38_speedloader" ] ] ], "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], @@ -201,6 +202,6 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "357mag": 7, "38": 7 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "357mag": 7, "38": 7 } } ] } ] diff --git a/data/json/items/gun/380.json b/data/json/items/gun/380.json index 61e5a5dd07201..2c59117880504 100644 --- a/data/json/items/gun/380.json +++ b/data/json/items/gun/380.json @@ -8,13 +8,22 @@ "description": "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.", "weight": "1590 g", "volume": "754 ml", + "longest_side": "253 mm", "price": 160000, "price_postapoc": 2500, "bashing": 5, "ammo": [ "380" ], "min_cycle_recoil": 270, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 6 ] ], - "magazines": [ [ "380", [ "mac11mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "mac11mag" ] + } + ] }, { "id": "kp3at", @@ -28,7 +37,15 @@ "price_postapoc": 1750, "ammo": [ "380" ], "min_cycle_recoil": 270, - "magazines": [ [ "380", [ "kp3atmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "kp3atmag" ] + } + ] }, { "id": "fn1910", @@ -49,7 +66,15 @@ "dispersion": 480, "durability": 7, "min_cycle_recoil": 270, - "magazines": [ [ "380", [ "fn1910mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "fn1910mag" ] + } + ] }, { "id": "rugerlcp", @@ -60,6 +85,7 @@ "description": "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.", "weight": "267 g", "volume": "160 ml", + "longest_side": "145 mm", "price": 21000, "price_postapoc": 1250, "to_hit": -3, @@ -70,7 +96,15 @@ "dispersion": 480, "durability": 8, "min_cycle_recoil": 270, - "magazines": [ [ "380", [ "rugerlcpmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rugerlcpmag" ] + } + ] }, { "id": "hptcf380", @@ -90,7 +124,15 @@ "ammo": [ "380" ], "dispersion": 480, "durability": 7, - "magazines": [ [ "380", [ "hptcf380mag_8rd", "hptcf380mag_10rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hptcf380mag_8rd", "hptcf380mag_10rd" ] + } + ] }, { "id": "taurus_spectrum", @@ -112,6 +154,14 @@ "dispersion": 480, "durability": 7, "min_cycle_recoil": 225, - "magazines": [ [ "380", [ "taurus_spectrum_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "taurus_spectrum_mag" ] + } + ] } ] diff --git a/data/json/items/gun/38super.json b/data/json/items/gun/38super.json index 6988f623e5130..647e2ea873734 100644 --- a/data/json/items/gun/38super.json +++ b/data/json/items/gun/38super.json @@ -8,6 +8,7 @@ "description": "A double-barrel semi-automatic pistol of Italian origin, firing two bullets per shot, a derivative of the M1911 pistol.", "weight": "2041 g", "volume": "716 ml", + "longest_side": "247 mm", "price": 479900, "price_postapoc": 2000, "to_hit": -2, @@ -34,7 +35,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "38super", [ "af2011a1mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "af2011a1mag" ] + } + ] }, { "id": "m1911a1_38super", @@ -45,6 +54,7 @@ "description": "The M1911A1 is an extremely popular pistol known for its reliability. This one is chambered for .38 Super.", "weight": "1157 g", "volume": "462 ml", + "longest_side": "247 mm", "price": 78400, "price_postapoc": 2000, "to_hit": -2, @@ -55,6 +65,14 @@ "ammo": [ "38super" ], "dispersion": 480, "durability": 7, - "magazines": [ [ "38super", [ "m1911mag_10rd_38super" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m1911mag_10rd_38super" ] + } + ] } ] diff --git a/data/json/items/gun/40.json b/data/json/items/gun/40.json index 04f651ab8d55d..1ab36ef8601c6 100644 --- a/data/json/items/gun/40.json +++ b/data/json/items/gun/40.json @@ -19,7 +19,15 @@ "dispersion": 480, "durability": 7, "min_cycle_recoil": 450, - "magazines": [ [ "40", [ "90two40mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "90two40mag" ] + } + ] }, { "id": "glock_22", @@ -58,7 +66,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "40", [ "glock40mag", "glock40bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "glock40mag", "glock40bigmag" ] + } + ] }, { "id": "px4_40", @@ -80,7 +96,15 @@ "dispersion": 480, "durability": 7, "min_cycle_recoil": 450, - "magazines": [ [ "40", [ "px4_40mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "px4_40mag" ] + } + ] }, { "id": "rifle_40", @@ -156,7 +180,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "40", [ "sig40mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "sig40mag" ] + } + ] }, { "id": "smg_40", @@ -196,7 +228,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "40", [ "smg_40_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "smg_40_mag" ] + } + ] }, { "id": "surv_six_shooter", @@ -259,7 +299,6 @@ "durability": 8, "blackpowder_tolerance": 56, "clip_size": 6, - "magazines": [ [ "40", [ "40_speedloader6" ] ] ], "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], @@ -270,7 +309,7 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "10mm": 6, "40": 6 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "10mm": 6, "40": 6 } } ] }, { "id": "hi_power_40", @@ -290,7 +329,15 @@ "ammo": [ "40" ], "dispersion": 480, "durability": 8, - "magazines": [ [ "40", [ "bhp40mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "bhp40mag" ] + } + ] }, { "id": "walther_ppq_40", @@ -309,7 +356,15 @@ "ammo": [ "40" ], "dispersion": 480, "durability": 9, - "magazines": [ [ "40", [ "ppq40mag_10rd", "ppq40mag_12rd", "ppq40mag_14rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ppq40mag_10rd", "ppq40mag_12rd", "ppq40mag_14rd" ] + } + ] }, { "id": "hptjcp", @@ -329,6 +384,14 @@ "ammo": [ "40" ], "dispersion": 480, "durability": 7, - "magazines": [ [ "40", [ "hptjcpmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hptjcpmag" ] + } + ] } ] diff --git a/data/json/items/gun/40x53mm.json b/data/json/items/gun/40x53mm.json index 9ec1be57f1c27..0c639556207df 100644 --- a/data/json/items/gun/40x53mm.json +++ b/data/json/items/gun/40x53mm.json @@ -29,7 +29,15 @@ [ "underbarrel mount", 1 ] ], "modes": [ [ "DEFAULT", "semi-auto", 1, "NPC_AVOID" ], [ "AUTO", "auto", 2, "NPC_AVOID" ] ], - "magazines": [ [ "40x53mm", [ "belt40mm" ] ] ], - "flags": [ "MOUNTED_GUN" ] + "flags": [ "MOUNTED_GUN" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "belt40mm" ] + } + ] } ] diff --git a/data/json/items/gun/410shot.json b/data/json/items/gun/410shot.json index 3dd3a9ce18a4e..ef2cbf0cc4e24 100644 --- a/data/json/items/gun/410shot.json +++ b/data/json/items/gun/410shot.json @@ -8,6 +8,7 @@ "description": "The Saiga-410 is a semi-automatic shotgun designed on the same Kalashnikov pattern as the AK47 rifle. It reloads with a magazine, rather than one shell at a time like most shotguns.", "weight": "3400 g", "volume": "5762 ml", + "longest_side": "1171 mm", "price": 189000, "price_postapoc": 7000, "to_hit": -1, @@ -17,8 +18,16 @@ "durability": 7, "barrel_length": "750 ml", "ammo": [ "410shot" ], - "magazines": [ [ "410shot", [ "saiga410mag_10rd", "saiga410mag_30rd" ] ] ], - "flags": [ "NEVER_JAMS" ] + "flags": [ "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "saiga410mag_10rd", "saiga410mag_30rd" ] + } + ] }, { "id": "shotgun_410", @@ -29,6 +38,7 @@ "description": "A single-shot break-action shotgun, chambered in .410 bore. Designed as a lower-recoil alternative to 12 gauge shotguns, it is light and easy to manufacture.", "weight": "2948 g", "volume": "1748 ml", + "longest_side": "1152 mm", "price_postapoc": 2000, "blackpowder_tolerance": 80, "ammo": [ "410shot" ] diff --git a/data/json/items/gun/44.json b/data/json/items/gun/44.json index 29c66d6460bc2..b030986c2f892 100644 --- a/data/json/items/gun/44.json +++ b/data/json/items/gun/44.json @@ -36,7 +36,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "44", [ "deaglemag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "deaglemag" ] + } + ] }, { "id": "henry_big_boy", @@ -137,7 +145,6 @@ "durability": 8, "blackpowder_tolerance": 56, "clip_size": 6, - "magazines": [ [ "44", [ "44_speedloader6" ] ] ], "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], @@ -149,7 +156,7 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "44": 6 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "44": 6 } } ] }, { "id": "sw629", @@ -173,7 +180,6 @@ "durability": 8, "blackpowder_tolerance": 56, "clip_size": 6, - "magazines": [ [ "44", [ "44_speedloader6" ] ] ], "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], @@ -185,6 +191,6 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "44": 6 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "44": 6 } } ] } ] diff --git a/data/json/items/gun/44paper.json b/data/json/items/gun/44paper.json index 641a83da70870..a723fda4616f3 100644 --- a/data/json/items/gun/44paper.json +++ b/data/json/items/gun/44paper.json @@ -8,6 +8,7 @@ "description": "The Colt Army Model 1860 is a cap & ball .44-caliber revolver. It was used during the American Civil War, and made by Colt's Manufacturing Company.", "weight": "1188 g", "volume": "486 ml", + "longest_side": "373 mm", "price": 43000, "price_postapoc": 3000, "to_hit": -1, @@ -29,6 +30,7 @@ "description": "A Pietta reproduction of the civil war era LeMat revolver, a rare and unusual cap & ball .44-caliber revolver. While its original non-standard .42 or .35 caliber curbed its usefulness for the CSA army, this reproduction is offered in more prevalent .44 caliber. Despite modern quality materials, the design is still rather delicate.", "weight": "1410 g", "volume": "851 ml", + "longest_side": "378 mm", "price": 120000, "price_postapoc": 4000, "bashing": 4, diff --git a/data/json/items/gun/45.json b/data/json/items/gun/45.json index 4497e72798a97..ee160193c0717 100644 --- a/data/json/items/gun/45.json +++ b/data/json/items/gun/45.json @@ -7,7 +7,8 @@ "name": { "str": "TDI Vector" }, "description": "The TDI Vector is a submachine gun with a unique, in-line design that makes recoil very manageable, even in the powerful .45 caliber.", "weight": "3100 g", - "volume": "1750 ml", + "volume": "4248 ml", + "longest_side": "611 mm", "price": 310000, "price_postapoc": 3500, "to_hit": -2, @@ -36,7 +37,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "45", [ "tdi_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "tdi_mag" ] + } + ] }, { "id": "hk_ump45", @@ -46,7 +55,8 @@ "name": { "str": "H&K UMP45" }, "description": "Developed as a successor to the MP5 submachine gun, the UMP45 retains the earlier model's supreme accuracy and low recoil, but in the higher .45 caliber.", "weight": "2300 g", - "volume": "1250 ml", + "volume": "4451 ml", + "longest_side": "452 mm", "price": 290000, "price_postapoc": 3000, "to_hit": -2, @@ -76,7 +86,16 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "45", [ "ump45mag", "ump45_makeshiftmag" ] ] ] + "default_mods": [ "folding_stock" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ump45mag", "ump45_makeshiftmag" ] + } + ] }, { "id": "m1911", @@ -87,7 +106,8 @@ "//": "You can get 'em for over US$1K if you want. This is a fairly cheap remake.", "description": "The M1911 was the US Military standard-issue sidearm for most of the 20th Century. It remains one of the most popular .45 pistols today.", "weight": "1120 g", - "volume": "500 ml", + "volume": "454 ml", + "longest_side": "245 mm", "price": 78400, "price_postapoc": 2500, "to_hit": -2, @@ -100,7 +120,15 @@ "durability": 7, "min_cycle_recoil": 540, "blackpowder_tolerance": 48, - "magazines": [ [ "45", [ "m1911mag", "m1911bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m1911mag", "m1911bigmag" ] + } + ] }, { "id": "m1911_MEU", @@ -123,8 +151,9 @@ "reload_noise_volume": 10, "name": { "str": "MAC-10" }, "description": "The MAC-10 is a popular machine pistol originally designed for military use. For many years they were the most inexpensive automatic weapon in the US, and enjoyed great popularity among criminals less concerned with quality firearms.", - "weight": "2840 g", - "volume": "750 ml", + "weight": "2810 g", + "volume": "1195 ml", + "longest_side": "298 mm", "price": 180000, "price_postapoc": 2500, "to_hit": -2, @@ -154,7 +183,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "45", [ "mac10mag", "smg_45_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "mac10mag", "smg_45_mag" ] + } + ] }, { "id": "rifle_45", @@ -234,7 +271,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "45", [ "smg_45_mag", "mac10mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "smg_45_mag", "mac10mag" ] + } + ] }, { "id": "surv_hand_cannon", @@ -267,10 +312,11 @@ "looks_like": "hk_mp5", "type": "GUN", "reload_noise_volume": 10, - "name": { "str": "Thompson submachine gun" }, + "name": { "str": "Thompson M1928A1" }, "description": "An American-made submachine gun developed during the very end of World War I, too late to see action. Infamous during the 1920s for its use by gangsters, and was used during World War II before being mostly replaced with less-expensive alternatives.", - "weight": "5910 g", - "volume": "2 L", + "weight": "4899 g", + "volume": "1230 ml", + "longest_side": "832 mm", "price": 450000, "price_postapoc": 2750, "to_hit": -2, @@ -301,19 +347,37 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "45", [ "thompson_mag", "thompson_bigmag", "thompson_drum", "thompson_makeshiftmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "thompson_mag", "thompson_bigmag", "thompson_drum", "thompson_makeshiftmag" ] + } + ] }, { "id": "usp_45", "copy-from": "usp_9mm", "type": "GUN", "name": { "str": "USP .45" }, - "weight": "930 g", + "weight": "887 g", + "volume": "483 ml", + "longest_side": "241 mm", "ammo": [ "45" ], "price_postapoc": 2500, "ranged_damage": 0, "built_in_mods": [ "match_trigger" ], - "magazines": [ [ "45", [ "usp45mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "usp45mag" ] + } + ] }, { "id": "mk23", @@ -321,8 +385,9 @@ "type": "GUN", "name": { "str": "MK 23 MOD 0" }, "description": "Jokingly referred to as \"The World's Only Crew-Served Pistol\", this massive pistol was designed as a primary weapon for select \"special operators\". Its cumbersome nature, the introduction of the derivative HK USP series and the logistics of getting .45 ACP ammunition in theater doomed this behemoth to US SOCOM armories. Like the USP, the Mk 23 is a remarkably reliable gun; someone could probably take out a nuclear equipped walking tank with this in their holster.", - "weight": "1120 g", - "volume": "1607 ml", + "weight": "844 g", + "volume": "698 ml", + "longest_side": "277 mm", "price_postapoc": 3000, "default_mods": [ "suppressor", "laser_sight" ], "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] @@ -332,10 +397,11 @@ "copy-from": "pistol_base", "looks_like": "glock_17", "type": "GUN", - "name": { "str": "Walther PPQ .45 ACP" }, + "name": { "str": "Walther PPQ 45" }, "description": "The Walther PPQ is a semi-automatic pistol originating from the Walther P99QA, and maintains compatibility with some of its predecessor's accessories. This model is chambered in .45 ACP.", - "weight": "714 g", - "volume": "470 ml", + "weight": "799 g", + "volume": "472 ml", + "longest_side": "224 mm", "price": 80000, "price_postapoc": 2250, "bashing": 8, @@ -344,7 +410,15 @@ "ammo": [ "45" ], "dispersion": 480, "durability": 9, - "magazines": [ [ "45", [ "ppq45mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ppq45mag" ] + } + ] }, { "id": "hptjhp", @@ -354,7 +428,8 @@ "name": { "str": "Hi-Point Model JHP" }, "description": "The Hi-Point Model JHP is a blowback operated semi-automatic pistol designed by Hi-Point Firearms, which is known for making inexpensive firearms, and for making said firearms bulky and uncomfortable. Hi-Points have slides made with a zinc pot-metal which is relatively fragile compared to steel slides.", "weight": "990 g", - "volume": "720 ml", + "volume": "538 ml", + "longest_side": "238 mm", "price": 7500, "price_postapoc": 2000, "to_hit": -2, @@ -364,6 +439,14 @@ "ammo": [ "45" ], "dispersion": 480, "durability": 7, - "magazines": [ [ "45", [ "hptjhpmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hptjhpmag" ] + } + ] } ] diff --git a/data/json/items/gun/454.json b/data/json/items/gun/454.json index f63546faaff5a..40758403c8844 100644 --- a/data/json/items/gun/454.json +++ b/data/json/items/gun/454.json @@ -8,6 +8,7 @@ "description": "The Taurus Raging Bull is a 5-shot revolver chambered in .454 Casull. It has impressive stopping power.", "weight": "1502 g", "volume": "565 ml", + "longest_side": "332 mm", "price": 64100, "price_postapoc": 2500, "to_hit": -2, @@ -20,7 +21,6 @@ "durability": 8, "blackpowder_tolerance": 56, "clip_size": 5, - "magazines": [ [ "454", [ "454_speedloader5" ] ] ], "valid_mod_locations": [ [ "accessories", 2 ], [ "grip", 1 ], @@ -30,7 +30,7 @@ [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "454": 5, "410shot": 5, "45colt": 5 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "454": 5, "410shot": 5, "45colt": 5 } } ] }, { "id": "raging_judge", @@ -41,8 +41,8 @@ "description": "The Taurus Raging Judge Magnum is a 6-shot revolver chambered in .454 Casull. It can fire .410 shotshells and .45 Colt cartridges as well.", "weight": "2070 g", "volume": "1175 ml", + "longest_side": "385 mm", "clip_size": 6, - "magazines": [ [ "454", [ "454_speedloader6" ] ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "454": 6, "410shot": 6, "45colt": 6 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "454": 6, "410shot": 6, "45colt": 6 } } ] } ] diff --git a/data/json/items/gun/45colt.json b/data/json/items/gun/45colt.json index fff51e234a991..c31f3ae5c2d06 100644 --- a/data/json/items/gun/45colt.json +++ b/data/json/items/gun/45colt.json @@ -8,6 +8,7 @@ "description": "The Bond Arms Derringer is a series of multi-barrel compact pistols. Most commonly chambered for .45 Colt, with chambers long enough to accept .410 shotgun shells.", "weight": "595 g", "volume": "132 ml", + "longest_side": "158 mm", "price": 41500, "price_postapoc": 2250, "to_hit": -1, @@ -44,6 +45,7 @@ "description": "A modern reproduction of a Colt pump-action rifle. Originally chambered in .44-40, modern versions most commonly use .45 Colt, complementing the Single Action Army as a Cowboy Action Shooting firearm.", "weight": "2722 g", "volume": "1601 ml", + "longest_side": "1106 mm", "price": 132000, "price_postapoc": 2500, "to_hit": -1, @@ -69,6 +71,7 @@ "description": "This 7.5\" barreled Uberti Cattleman is a modern reproduction of the legendary Colt Single Action Army, or Colt Peacemaker, one of the first revolvers to use a modern self-contained cartridge. Made famous by westerns, it is still in demand for Cowboy Action Shooting, reenactors and collectors. Unlike modern revolvers, the cylinder cannot swing out for loading, and spent brass must be ejected one at a time.", "weight": "1048 g", "volume": "324 ml", + "longest_side": "208 mm", "price": 47900, "price_postapoc": 2500, "to_hit": -1, diff --git a/data/json/items/gun/46.json b/data/json/items/gun/46.json index b273a36f2ec0a..a06a91a91dd16 100644 --- a/data/json/items/gun/46.json +++ b/data/json/items/gun/46.json @@ -37,6 +37,14 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "46", [ "hk46mag", "hk46bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hk46mag", "hk46bigmag" ] + } + ] } ] diff --git a/data/json/items/gun/460.json b/data/json/items/gun/460.json index 08ddc9916fe71..1e95df83773bc 100644 --- a/data/json/items/gun/460.json +++ b/data/json/items/gun/460.json @@ -9,8 +9,16 @@ "price": 166800, "price_postapoc": 3250, "ammo": [ "460", "45" ], - "magazines": [ [ "460", [ "m1911mag", "m1911bigmag" ] ], [ "45", [ "m1911mag", "m1911bigmag" ] ] ], "relative": { "durability": -1 }, - "built_in_mods": [ "barrel_ported" ] + "built_in_mods": [ "barrel_ported" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m1911mag", "m1911bigmag", "m1911mag", "m1911bigmag" ] + } + ] } ] diff --git a/data/json/items/gun/50.json b/data/json/items/gun/50.json index 9c726904e76ca..e60d098654bda 100644 --- a/data/json/items/gun/50.json +++ b/data/json/items/gun/50.json @@ -21,8 +21,16 @@ "durability": 8, "barrel_length": "1250 ml", "default_mods": [ "bipod", "rifle_scope", "muzzle_brake" ], - "magazines": [ [ "50", [ "m107a1mag" ] ] ], - "flags": [ "NEVER_JAMS" ] + "flags": [ "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m107a1mag" ] + } + ] }, { "id": "m2browning", @@ -58,8 +66,16 @@ [ "rail mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "50", [ "belt50" ] ] ], - "flags": [ "MOUNTED_GUN" ] + "flags": [ "MOUNTED_GUN" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "belt50" ] + } + ] }, { "id": "m2browning_sawn", @@ -84,7 +100,6 @@ [ "rail mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ ], "relative": { "weight": -21500, "volume": -6, @@ -94,7 +109,7 @@ "barrel_length": -1 }, "flags": [ "RELOAD_EJECT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "50": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "50": 1 } } ] }, { "id": "as50", @@ -118,8 +133,16 @@ "reload": 400, "barrel_length": "1250 ml", "default_mods": [ "bipod", "rifle_scope", "muzzle_brake" ], - "magazines": [ [ "50", [ "as50mag" ] ] ], - "flags": [ "NEVER_JAMS" ] + "flags": [ "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "as50mag" ] + } + ] }, { "id": "tac50", @@ -143,8 +166,16 @@ "reload": 450, "barrel_length": "1250 ml", "default_mods": [ "recoil_stock", "bipod", "rifle_scope", "muzzle_brake" ], - "magazines": [ [ "50", [ "tac50mag" ] ] ], - "flags": [ "NEVER_JAMS" ] + "flags": [ "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "tac50mag" ] + } + ] }, { "id": "bfg50", diff --git a/data/json/items/gun/500.json b/data/json/items/gun/500.json index 9dd788a52e137..5cfd9aa940961 100644 --- a/data/json/items/gun/500.json +++ b/data/json/items/gun/500.json @@ -57,7 +57,6 @@ "durability": 8, "blackpowder_tolerance": 56, "clip_size": 5, - "magazines": [ [ "500", [ "500_speedloader5" ] ] ], "valid_mod_locations": [ [ "accessories", 2 ], [ "grip", 1 ], @@ -67,6 +66,6 @@ [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "500": 5 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "500": 5 } } ] } ] diff --git a/data/json/items/gun/545x39.json b/data/json/items/gun/545x39.json index f703ea67ef517..f0776a85b9ad5 100644 --- a/data/json/items/gun/545x39.json +++ b/data/json/items/gun/545x39.json @@ -37,7 +37,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "545x39", [ "ak74mag", "rpk74mag" ] ] ], - "flags": [ "NEVER_JAMS" ] + "flags": [ "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ak74mag", "rpk74mag" ] + } + ] } ] diff --git a/data/json/items/gun/57.json b/data/json/items/gun/57.json index 1a1508633e527..07577623f26a2 100644 --- a/data/json/items/gun/57.json +++ b/data/json/items/gun/57.json @@ -8,6 +8,7 @@ "description": "Designed to work with FN's proprietary 5.7x28mm round, the Five-Seven is a lightweight pistol with a very high capacity, best used against armored opponents.", "weight": "600 g", "volume": "551 ml", + "longest_side": "164 mm", "price": 124900, "price_postapoc": 2750, "to_hit": -2, @@ -34,7 +35,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "57", [ "fn57mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "fn57mag" ] + } + ] }, { "id": "fn_p90", @@ -45,6 +54,7 @@ "description": "The first in a new genre of guns, termed \"personal defense weapons.\" FN designed the P90 to use their proprietary 5.7x28mm ammunition. It is made for firing bursts manageably.", "weight": "2640 g", "volume": "3817 ml", + "longest_side": "511 mm", "price": 350000, "price_postapoc": 3500, "to_hit": -2, @@ -72,6 +82,14 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "57", [ "fnp90mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "fnp90mag" ] + } + ] } ] diff --git a/data/json/items/gun/5x50.json b/data/json/items/gun/5x50.json index 0c6f3163e0c7a..8587b8ab3d017 100644 --- a/data/json/items/gun/5x50.json +++ b/data/json/items/gun/5x50.json @@ -36,8 +36,16 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "5x50", [ "5x50_100_mag", "5x50_50_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "5x50_100_mag", "5x50_50_mag" ] + } + ] }, { "id": "needlepistol", @@ -71,7 +79,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "5x50", [ "5x50_50_mag", "5x50_100_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "5x50_50_mag", "5x50_100_mag" ] + } + ] } ] diff --git a/data/json/items/gun/66mm.json b/data/json/items/gun/66mm.json index 8a0f3a36748b0..fbdb6d7fe10c3 100644 --- a/data/json/items/gun/66mm.json +++ b/data/json/items/gun/66mm.json @@ -20,10 +20,18 @@ "dispersion": 300, "durability": 7, "modes": [ [ "DEFAULT", "single shot", 1 ], [ "BURST", "all barrels", 4 ] ], - "magazines": [ [ "m235", [ "m74_clip" ] ] ], "reload": 600, "loudness": 200, "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "sling", 1 ] ], - "flags": [ "BACKBLAST", "NEVER_JAMS" ] + "flags": [ "BACKBLAST", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m74_clip" ] + } + ] } ] diff --git a/data/json/items/gun/762.json b/data/json/items/gun/762.json index 1ae1187eaaf91..9e02910fda61d 100644 --- a/data/json/items/gun/762.json +++ b/data/json/items/gun/762.json @@ -35,7 +35,15 @@ [ "stock", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "762", [ "akmag30", "akmag10", "akmag20", "akmag40", "akdrum75" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "akmag30", "akmag10", "akmag20", "akmag40", "akdrum75" ] + } + ] }, { "id": "arx160", @@ -76,7 +84,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "762", [ "akmag30", "akmag10", "akmag20", "akmag40" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "akmag30", "akmag10", "akmag20", "akmag40" ] + } + ] }, { "id": "sks", @@ -117,9 +133,16 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "762", [ "762x39_clip" ] ] ], "flags": [ "RELOAD_ONE", "NEVER_JAMS" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762": 10 } } ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "762x39_clip" ] + } + ] }, { "id": "aksemi", @@ -156,7 +179,15 @@ [ "stock", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "762", [ "akmag30", "akmag10", "akmag20", "akmag40", "akdrum75" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "akmag30", "akmag10", "akmag20", "akmag40", "akdrum75" ] + } + ] }, { "id": "draco", @@ -194,6 +225,14 @@ [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "762", [ "akmag30", "akmag10", "akmag20", "akmag40", "akdrum75" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "akmag30", "akmag10", "akmag20", "akmag40", "akdrum75" ] + } + ] } ] diff --git a/data/json/items/gun/762R.json b/data/json/items/gun/762R.json index 2043965834a10..9dd327fd2fe7d 100644 --- a/data/json/items/gun/762R.json +++ b/data/json/items/gun/762R.json @@ -71,9 +71,16 @@ [ "sights", 1 ], [ "sling", 1 ] ], - "magazines": [ [ "762R", [ "762R_clip" ] ] ], "flags": [ "RELOAD_ONE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762R": 5 } } ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "762R_clip" ] + } + ] }, { "id": "mosin91_30_ebr", diff --git a/data/json/items/gun/762x25.json b/data/json/items/gun/762x25.json index df891e2c3e8ae..77e278bfc069a 100644 --- a/data/json/items/gun/762x25.json +++ b/data/json/items/gun/762x25.json @@ -8,6 +8,7 @@ "description": "The Soviet-made PPSh-41 is a mass-produced selective-fire submachine gun. It has a relatively high rate of fire.", "weight": "3640 g", "volume": "2873 ml", + "longest_side": "844 mm", "price": 280000, "price_postapoc": 2250, "to_hit": -2, @@ -38,7 +39,15 @@ [ "rail mount", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "762x25", [ "ppshmag", "ppshdrum" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ppshmag", "ppshdrum" ] + } + ] }, { "id": "tokarev", @@ -50,6 +59,7 @@ "description": "The Tokarev TT-33 is an antique Russian semiautomatic pistol, famous for its durability, accuracy, and uncomfortable grip angle. It was chambered for the 7.62x25mm due to the popularity of the C96 pistol among Russian revolutionaries.", "weight": "870 g", "volume": "251 ml", + "longest_side": "220 mm", "price": 100000, "price_postapoc": 1250, "to_hit": -2, @@ -59,6 +69,14 @@ "dispersion": 225, "durability": 7, "min_cycle_recoil": 270, - "magazines": [ [ "762x25", [ "tokarevmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "tokarevmag" ] + } + ] } ] diff --git a/data/json/items/gun/8x40mm.json b/data/json/items/gun/8x40mm.json index 3e304c64618b3..5394c071d09d9 100644 --- a/data/json/items/gun/8x40mm.json +++ b/data/json/items/gun/8x40mm.json @@ -31,8 +31,16 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "8x40mm", [ "8x40_10_mag", "8x40_25_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "8x40_10_mag", "8x40_25_mag" ] + } + ] }, { "id": "rm11b_sniper_rifle", @@ -69,8 +77,16 @@ [ "sling", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "8x40mm", [ "8x40_10_mag", "8x40_25_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "8x40_10_mag", "8x40_25_mag" ] + } + ] }, { "id": "rm2000_smg", @@ -104,8 +120,16 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "8x40mm", [ "8x40_25_mag", "8x40_10_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "8x40_25_mag", "8x40_10_mag" ] + } + ] }, { "id": "rm298", @@ -132,8 +156,16 @@ "reload": 400, "barrel_length": "1500 ml", "valid_mod_locations": [ [ "barrel", 1 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "rail", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ] ], - "magazines": [ [ "8x40mm", [ "8x40_500_mag", "8x40_250_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "8x40_500_mag", "8x40_250_mag" ] + } + ] }, { "id": "rm51_assault_rifle", @@ -167,8 +199,16 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "8x40mm", [ "8x40_50_mag", "8x40_100_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "8x40_50_mag", "8x40_100_mag" ] + } + ] }, { "id": "rm614_lmg", @@ -204,8 +244,16 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "8x40mm", [ "8x40_250_mag", "8x40_500_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "8x40_250_mag", "8x40_500_mag" ] + } + ] }, { "id": "rm88_battle_rifle", @@ -239,42 +287,15 @@ [ "underbarrel", 1 ] ], "magazines": [ [ "8x40mm", [ "8x40_100_mag", "8x40_50_mag", "8x40_250_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] - }, - { - "id": "rm99_pistol", - "type": "GUN", - "reload_noise_volume": 10, - "name": { "str": "RM99 revolver" }, - "//": "Bear in mind that most revolvers don't reach $1K. Expensive.", - "description": "Considered overkill by some, the Rivtech M99 remains an exceedingly powerful addition to the arsenal of any gunslinger.", - "weight": "1204 g", - "volume": "750 ml", - "price": 210000, - "price_postapoc": 8000, - "to_hit": -2, - "bashing": 12, - "material": [ "superalloy", "ceramic" ], - "symbol": "(", - "color": "dark_gray", - "ammo": [ "8x40mm" ], - "skill": "pistol", - "ranged_damage": { "damage_type": "bullet", "amount": 10 }, - "dispersion": 175, - "durability": 9, - "clip_size": 5, - "magazines": [ [ "8x40mm", [ "8x40_speedloader5" ] ] ], - "valid_mod_locations": [ - [ "accessories", 2 ], - [ "barrel", 1 ], - [ "grip", 1 ], - [ "mechanism", 4 ], - [ "rail", 1 ], - [ "sights", 1 ], - [ "stock", 1 ], - [ "underbarrel", 1 ] - ], - "flags": [ "WATERPROOF_GUN", "RELOAD_ONE", "NEVER_JAMS" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "8x40mm": 5 } } ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "8x40_100_mag", "8x40_50_mag", "8x40_250_mag" ] + } + ] } ] diff --git a/data/json/items/gun/9mm.json b/data/json/items/gun/9mm.json index faf22e90f226a..7f949e368801f 100644 --- a/data/json/items/gun/9mm.json +++ b/data/json/items/gun/9mm.json @@ -19,7 +19,15 @@ "dispersion": 480, "durability": 7, "min_cycle_recoil": 450, - "magazines": [ [ "9mm", [ "m9mag", "m9bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m9mag", "m9bigmag" ] + } + ] }, { "id": "calico", @@ -60,7 +68,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "9mm", [ "calicomag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "calicomag" ] + } + ] }, { "id": "cx4", @@ -101,7 +117,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "9mm", [ "m9bigmag", "m9mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m9bigmag", "m9mag" ] + } + ] }, { "id": "glock_19", @@ -125,7 +149,15 @@ "durability": 6, "blackpowder_tolerance": 48, "min_cycle_recoil": 380, - "magazines": [ [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] + } + ] }, { "id": "hk_mp5", @@ -166,7 +198,15 @@ [ "stock", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "9mm", [ "mp5mag", "mp5bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "mp5mag", "mp5bigmag" ] + } + ] }, { "id": "hk_mp5sd", @@ -264,8 +304,15 @@ "armor_data": { "covers": [ "ARM_EITHER", "HAND_EITHER" ], "coverage": 10, "encumbrance": 30, "material_thickness": 2 }, "flags": [ "OVERSIZE", "RELOAD_EJECT", "BELTED", "RESTRICT_HANDS" ], "valid_mod_locations": [ ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "max_contains_volume": "1 L", "max_contains_weight": "10 kg", "holster": true } ], - "magazines": [ [ "9mm", [ "mp5mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "mp5mag" ] + } + ] }, { "id": "ksub2000", @@ -305,7 +352,15 @@ [ "sling", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] + } + ] }, { "id": "m9", @@ -328,7 +383,15 @@ "dispersion": 480, "durability": 7, "min_cycle_recoil": 450, - "magazines": [ [ "9mm", [ "m9mag", "m9bigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "m9mag", "m9bigmag" ] + } + ] }, { "id": "px4", @@ -350,7 +413,15 @@ "dispersion": 440, "durability": 7, "min_cycle_recoil": 450, - "magazines": [ [ "9mm", [ "px4mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "px4mag" ] + } + ] }, { "id": "rifle_9mm", @@ -431,7 +502,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "9mm", [ "survivor9mm_mag", "stenmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "survivor9mm_mag", "stenmag" ] + } + ] }, { "id": "sten", @@ -467,7 +546,15 @@ [ "underbarrel mount", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "9mm", [ "stenmag", "survivor9mm_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "stenmag", "survivor9mm_mag" ] + } + ] }, { "id": "tec9", @@ -506,7 +593,15 @@ [ "underbarrel", 1 ] ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt", "fault_gun_chamber_spent" ], - "magazines": [ [ "9mm", [ "tec9mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "tec9mag" ] + } + ] }, { "id": "usp_9mm", @@ -530,7 +625,15 @@ "durability": 9, "blackpowder_tolerance": 48, "min_cycle_recoil": 450, - "magazines": [ [ "9mm", [ "usp9mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "usp9mag" ] + } + ] }, { "id": "uzi", @@ -569,7 +672,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "9mm", [ "uzimag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "uzimag" ] + } + ] }, { "id": "glock_17", @@ -593,7 +704,15 @@ "blackpowder_tolerance": 48, "min_cycle_recoil": 380, "//2": "Glock 17s cannot load magazines shorter than the standard 17rd magazine.", - "magazines": [ [ "9mm", [ "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd", "glockbigmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd", "glockbigmag" ] + } + ] }, { "id": "glock_18c", @@ -621,7 +740,15 @@ "bashing": 2, "ammo": [ "9mm" ], "min_cycle_recoil": 450, - "magazines": [ [ "9mm", [ "kpf9mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "kpf9mag" ] + } + ] }, { "id": "m17", @@ -642,7 +769,15 @@ "dispersion": 480, "durability": 6, "min_cycle_recoil": 450, - "magazines": [ [ "9mm", [ "p320mag_17rd_9x19mm" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "p320mag_17rd_9x19mm" ] + } + ] }, { "id": "hi_power_9mm", @@ -662,7 +797,15 @@ "ammo": [ "9mm" ], "dispersion": 480, "durability": 8, - "magazines": [ [ "9mm", [ "bhp9mag_13rd", "bhp9mag_15rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "bhp9mag_13rd", "bhp9mag_15rd" ] + } + ] }, { "id": "walther_p38", @@ -682,7 +825,15 @@ "ammo": [ "9mm" ], "dispersion": 480, "durability": 8, - "magazines": [ [ "9mm", [ "p38mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "p38mag" ] + } + ] }, { "id": "walther_ppq_9mm", @@ -701,7 +852,15 @@ "ammo": [ "9mm" ], "dispersion": 480, "durability": 9, - "magazines": [ [ "9mm", [ "ppq9mag_10rd", "ppq9mag_15rd", "ppq9mag_17rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ppq9mag_10rd", "ppq9mag_15rd", "ppq9mag_17rd" ] + } + ] }, { "id": "hptc9", @@ -721,7 +880,15 @@ "ammo": [ "9mm" ], "dispersion": 480, "durability": 7, - "magazines": [ [ "9mm", [ "hptc9mag_8rd", "hptc9mag_10rd", "hptc9mag_15rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hptc9mag_8rd", "hptc9mag_10rd", "hptc9mag_15rd" ] + } + ] }, { "id": "cz75", @@ -741,7 +908,15 @@ "ammo": [ "9mm" ], "dispersion": 480, "durability": 8, - "magazines": [ [ "9mm", [ "cz75mag_12rd", "cz75mag_20rd", "cz75mag_26rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "cz75mag_12rd", "cz75mag_20rd", "cz75mag_26rd" ] + } + ] }, { "id": "walther_ccp", @@ -761,6 +936,14 @@ "ammo": [ "9mm" ], "dispersion": 480, "durability": 8, - "magazines": [ [ "9mm", [ "ccpmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ccpmag" ] + } + ] } ] diff --git a/data/json/items/gun/9x18.json b/data/json/items/gun/9x18.json index cb032ac54ca70..96adc8253495d 100644 --- a/data/json/items/gun/9x18.json +++ b/data/json/items/gun/9x18.json @@ -9,6 +9,7 @@ "description": "The Pistolet Makarova was developed by the Soviet Union to replace the WWII-era TT-33 pistol. It uses the 9x18mm cartridge, which remains in use among various former Soviet countries.", "weight": "730 g", "volume": "346 ml", + "longest_side": "196 mm", "price": 25000, "price_postapoc": 2000, "to_hit": -2, @@ -32,7 +33,15 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "9x18", [ "makarovmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "makarovmag" ] + } + ] }, { "id": "skorpion_82", @@ -46,6 +55,14 @@ "ammo": [ "9x18" ], "min_cycle_recoil": 270, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 5 ] ], - "magazines": [ [ "9x18", [ "skorpion82mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "skorpion82mag" ] + } + ] } ] diff --git a/data/json/items/gun/chemical_spray.json b/data/json/items/gun/chemical_spray.json index 0b4a67c22b58c..8fa4df29ef16e 100644 --- a/data/json/items/gun/chemical_spray.json +++ b/data/json/items/gun/chemical_spray.json @@ -19,7 +19,6 @@ "ammo": [ "chemical_spray" ], "dispersion": 300, "durability": 6, - "magazines": [ [ "chemical_spray", [ "pressurized_tank_chem" ] ] ], "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], @@ -28,6 +27,15 @@ [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] + ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pressurized_tank_chem" ] + } ] } ] diff --git a/data/json/items/gun/combination.json b/data/json/items/gun/combination.json index d21bb40a2ab6f..399539152a8ac 100644 --- a/data/json/items/gun/combination.json +++ b/data/json/items/gun/combination.json @@ -39,44 +39,5 @@ [ "rail mount", 1 ] ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 1 } } ] - }, - { - "id": "pipe_combination_gun", - "looks_like": "ar15", - "type": "GUN", - "reload_noise_volume": 10, - "symbol": "(", - "color": "brown", - "name": { "str": "pipe combination gun" }, - "description": "A home-made triple-barreled firearm, one barrel chambered in .30-06 and two other for shotgun shells. It is made from pipes and parts cannibalized from a double barrel shotgun.", - "price": 40000, - "//": "Attached mod will now have weight.", - "material": [ "steel", "wood" ], - "flags": [ "NEVER_JAMS", "RELOAD_EJECT" ], - "skill": "shotgun", - "ammo": [ "3006" ], - "weight": "2267 g", - "volume": "2 L", - "price_postapoc": 1250, - "bashing": 12, - "to_hit": -1, - "dispersion": 550, - "durability": 6, - "blackpowder_tolerance": 60, - "clip_size": 1, - "loudness": 25, - "barrel_length": "500 ml", - "built_in_mods": [ "combination_gun_shotgun_pipe" ], - "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], - "valid_mod_locations": [ - [ "muzzle", 1 ], - [ "sling", 1 ], - [ "stock", 1 ], - [ "grip mount", 1 ], - [ "rail mount", 1 ], - [ "sights mount", 1 ], - [ "underbarrel mount", 1 ] - ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 1 } } ] } ] diff --git a/data/json/items/gun/flammable.json b/data/json/items/gun/flammable.json index 7368f8b5a7d09..aa2c4967b9929 100644 --- a/data/json/items/gun/flammable.json +++ b/data/json/items/gun/flammable.json @@ -26,7 +26,15 @@ [ "sights mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "flammable", [ "pressurized_tank" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pressurized_tank" ] + } + ] }, { "id": "rm451_flamethrower", @@ -50,6 +58,14 @@ "valid_mod_locations": [ [ "accessories", 4 ], [ "rail", 1 ], [ "grip", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], "extend": { "flags": [ "FIRE_20", "MODE_BURST", "NON-FOULING" ] }, "delete": { "flags": [ "FIRE_100" ] }, - "magazines": [ [ "flammable", [ "rm4502", "rm4504" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rm4502", "rm4504" ] + } + ] } ] diff --git a/data/json/items/gun/flintlock.json b/data/json/items/gun/flintlock.json index 10fdf4fd34c09..9f6fd1ac3fd77 100644 --- a/data/json/items/gun/flintlock.json +++ b/data/json/items/gun/flintlock.json @@ -18,6 +18,7 @@ ], "volume": "2250 ml", "weight": "3600 g", + "longest_side": "1202 mm", "relative": { "range": -2, "ranged_damage": { "damage_type": "bullet", "amount": -4 } }, "proportional": { "bashing": 0.6, "dispersion": 1.35, "reload": 0.6 }, "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "flintlock": 1 } } ] @@ -44,6 +45,7 @@ "description": "A beautifully decorated flintlock pistol. If using this doesn't make you feel a pirate, nothing will.", "weight": "1 kg", "volume": "390 ml", + "longest_side": "345 mm", "price": 35000, "price_postapoc": 1750, "to_hit": -1, @@ -80,6 +82,7 @@ "description": "For once, something *good* came back from the dead. This ancient design lacks the fire-rate of modern weapons, but packs as much punch as the best of 'em and rewards the skilled shooter with easily-crafted ammunition.", "weight": "4900 g", "volume": "2500 ml", + "longest_side": "1466 mm", "price": 41000, "price_postapoc": 2250, "to_hit": -1, @@ -116,6 +119,7 @@ "description": "Also called a Pennsylvania rifle, this long barreled rifled flintlock gun has signficantly increased accuracy at the cost of taking even longer to reload.", "weight": "3700 g", "volume": "1700 ml", + "longest_side": "1278 mm", "relative": { "range": 2 }, "proportional": { "dispersion": 0.5, "reload": 2.0 } } diff --git a/data/json/items/gun/shot.json b/data/json/items/gun/shot.json index a0edf64faea81..c80f7c9de45db 100644 --- a/data/json/items/gun/shot.json +++ b/data/json/items/gun/shot.json @@ -54,8 +54,52 @@ "ups_charges": 1, "reload": 200, "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], [ "rail mount", 1 ] ], - "magazines": [ [ "shot", [ "shotbelt_20" ] ] ], - "flags": [ "MOUNTED_GUN" ] + "flags": [ "MOUNTED_GUN" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "shotbelt_20" ] + } + ] + }, + { + "id": "lever_shotgun", + "copy-from": "shotgun_base", + "looks_like": "remington_870", + "type": "GUN", + "name": { "str": "handmade lever shotgun" }, + "description": "A short homemade lever-action shotgun with a small internal tube magazine. While still a primitive pipe and 2x4 design, it is a formiddable shotgun in it's own right with room for improvement.", + "weight": "2311 g", + "volume": "2 L", + "price": 10000, + "price_postapoc": 2250, + "to_hit": -1, + "bashing": 10, + "material": [ "steel", "wood" ], + "ranged_damage": { "damage_type": "bullet", "amount": -2 }, + "dispersion": 550, + "durability": 6, + "barrel_length": "500 ml", + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "barrel", 1 ], + [ "bore", 1 ], + [ "brass catcher", 1 ], + [ "muzzle", 1 ], + [ "stock", 1 ], + [ "mechanism", 4 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ], + "clip_size": 6, + "extend": { "flags": [ "RELOAD_ONE" ] }, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 6 } } ] }, { "id": "browning_a5", @@ -492,7 +536,15 @@ [ "sights mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "shot", [ "saiga10mag", "saiga30mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "saiga10mag", "saiga30mag" ] + } + ] }, { "id": "shotgun_d", @@ -694,7 +746,15 @@ [ "underbarrel mount", 1 ] ], "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 5 ] ], - "magazines": [ [ "shot", [ "USAS10mag", "USAS20mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "USAS10mag", "USAS20mag" ] + } + ] }, { "id": "winchester_1887", diff --git a/data/json/items/gun/ups.json b/data/json/items/gun/ups.json index 903fe6c613b61..b0f7285b8e23e 100644 --- a/data/json/items/gun/ups.json +++ b/data/json/items/gun/ups.json @@ -111,43 +111,6 @@ "NEEDS_NO_LUBE" ] }, - { - "id": "laser_cannon", - "looks_like": "ar15", - "type": "GUN", - "reload_noise_volume": 10, - "name": { "str": "handheld laser cannon" }, - "description": "This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret that has been modified to use UPS power for firing.", - "weight": "5140 g", - "volume": "1500 ml", - "price": 400000, - "price_postapoc": 8000, - "to_hit": -1, - "bashing": 4, - "material": [ "steel", "plastic" ], - "symbol": "(", - "color": "magenta", - "skill": "rifle", - "range": 30, - "ranged_damage": { "damage_type": "heat", "amount": 10, "armor_penetration": 4 }, - "dispersion": 90, - "durability": 7, - "loudness": 8, - "ups_charges": 25, - "reload": 200, - "valid_mod_locations": [ - [ "emitter", 1 ], - [ "lens", 1 ], - [ "sling", 1 ], - [ "grip mount", 1 ], - [ "rail mount", 1 ], - [ "sights mount", 1 ], - [ "stock mount", 1 ], - [ "underbarrel mount", 1 ] - ], - "ammo_effects": [ "LASER", "INCENDIARY" ], - "flags": [ "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ] - }, { "id": "laser_rifle", "looks_like": "ar15", diff --git a/data/json/items/gunmod/mechanism.json b/data/json/items/gunmod/mechanism.json index 2e6556bc7bfb9..5230986522b0f 100644 --- a/data/json/items/gunmod/mechanism.json +++ b/data/json/items/gunmod/mechanism.json @@ -34,7 +34,7 @@ "symbol": ":", "color": "red", "location": "mechanism", - "mod_targets": [ "ar15" ], + "mod_targets": [ "ar15", "ar15_retool_300blk", "ar_pistol", "oa93" ], "//": "Install time short since it drops in, hinging open the AR being all the 'skill' necessary. Precision drop marginal since it'd change how semi and FA trigger pulls feel.", "install_time": "5 m", "dispersion_modifier": 10, @@ -56,7 +56,7 @@ "symbol": ":", "color": "red", "location": "mechanism", - "mod_targets": [ "ar15" ], + "mod_targets": [ "ar15", "ar15_retool_300blk", "ar_pistol", "oa93" ], "//": "Sort of long install time. Gotta grind down the carrier trip to SP1-ish length. Unfortunately, since you're sort of guessing how long that is, the AR's timing with this installed will be borked.(disco might be disengaged at non-ideal times).", "install_time": "25 m", "dispersion_modifier": 40, diff --git a/data/json/items/gunmod/rail.json b/data/json/items/gunmod/rail.json index a3734ec8308d6..ff308c69ba080 100644 --- a/data/json/items/gunmod/rail.json +++ b/data/json/items/gunmod/rail.json @@ -24,7 +24,7 @@ }, "dispersion_modifier": 60, "min_skills": [ [ "weapon", 2 ], [ "rifle", 1 ] ], - "flags": [ "STR_RELOAD", "NON-FOULING" ], + "flags": [ "NON-FOULING" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "bolt": 1 } } ] }, { diff --git a/data/json/items/gunmod/sling.json b/data/json/items/gunmod/sling.json index 4a3c1834a6d24..274798e705ae6 100644 --- a/data/json/items/gunmod/sling.json +++ b/data/json/items/gunmod/sling.json @@ -9,7 +9,7 @@ "integral_volume": "250 ml", "price": 480, "price_postapoc": 10, - "material": "cotton", + "material": [ "cotton" ], "symbol": ":", "color": "green", "location": "sling", diff --git a/data/json/items/gunmod/underbarrel.json b/data/json/items/gunmod/underbarrel.json index fd68b642865e6..91866b6055182 100644 --- a/data/json/items/gunmod/underbarrel.json +++ b/data/json/items/gunmod/underbarrel.json @@ -47,25 +47,6 @@ "flags": [ "IRREMOVABLE", "RELOAD_ONE", "RELOAD_EJECT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 2 } } ] }, - { - "id": "combination_gun_shotgun_pipe", - "type": "GUNMOD", - "name": { "str": "pipe combination gun shotgun" }, - "description": "The integrated underbarrel shotgun of a pipe combination gun which holds two shots. It's irremovable.", - "weight": "1134 g", - "volume": "1 L", - "price": 10000, - "price_postapoc": 500, - "to_hit": -1, - "material": [ "steel" ], - "symbol": ":", - "color": "light_red", - "location": "underbarrel", - "mod_targets": [ "rifle" ], - "gun_data": { "ammo": "shot", "skill": "shotgun", "dispersion": 480, "durability": 6, "clip_size": 2 }, - "flags": [ "IRREMOVABLE", "RELOAD_ONE", "NEVER_JAMS", "RELOAD_EJECT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 2 } } ] - }, { "id": "factory_handguard", "type": "GUNMOD", @@ -446,8 +427,16 @@ "mod_targets": [ "rifle", "crossbow" ], "gun_data": { "ammo": "20x66mm", "skill": "shotgun", "dispersion": 320, "durability": 9, "reload": 125 }, "min_skills": [ [ "weapon", 2 ], [ "shotgun", 2 ] ], - "magazines": [ [ "20x66mm", [ "20x66_10_mag" ] ] ], - "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ] + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "20x66_10_mag" ] + } + ] }, { "id": "rm121aux_mod", diff --git a/data/json/items/magazine/12mm.json b/data/json/items/magazine/12mm.json index 6adfe0a446040..0c5d9eaf84e37 100644 --- a/data/json/items/magazine/12mm.json +++ b/data/json/items/magazine/12mm.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "12mm" ], "capacity": 20, - "reliability": 10, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "12mm": 20 } } ] } diff --git a/data/json/items/magazine/20x60mm.json b/data/json/items/magazine/20x60mm.json index f4d54dd5abbb9..278f160e58882 100644 --- a/data/json/items/magazine/20x60mm.json +++ b/data/json/items/magazine/20x60mm.json @@ -14,7 +14,6 @@ "color": "dark_gray", "ammo_type": [ "20x66mm" ], "capacity": 10, - "reliability": 10, "reload_time": 60, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "20x66mm": 10 } } ] @@ -34,7 +33,6 @@ "color": "dark_gray", "ammo_type": [ "20x66mm" ], "capacity": 20, - "reliability": 10, "reload_time": 60, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "20x66mm": 20 } } ] @@ -54,7 +52,6 @@ "color": "dark_gray", "ammo_type": [ "20x66mm" ], "capacity": 40, - "reliability": 10, "reload_time": 70, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "20x66mm": 40 } } ] diff --git a/data/json/items/magazine/22.json b/data/json/items/magazine/22.json index ebf4b8b2c1344..9d7b920181776 100644 --- a/data/json/items/magazine/22.json +++ b/data/json/items/magazine/22.json @@ -32,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "22" ], "capacity": 165, - "reliability": 7, "reload_time": 150, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 165 } } ] @@ -70,7 +69,6 @@ "color": "light_gray", "ammo_type": [ "22" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 10 } } ] }, @@ -89,7 +87,6 @@ "color": "light_gray", "ammo_type": [ "22" ], "capacity": 25, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 25 } } ] }, @@ -108,7 +105,6 @@ "color": "light_gray", "ammo_type": [ "22" ], "capacity": 10, - "reliability": 9, "reload_time": 160, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 10 } } ] @@ -128,7 +124,6 @@ "color": "light_gray", "ammo_type": [ "22" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 10 } } ] }, @@ -147,7 +142,6 @@ "color": "light_gray", "ammo_type": [ "22" ], "capacity": 6, - "reliability": 6, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 6 } } ] }, @@ -166,7 +160,6 @@ "color": "light_gray", "ammo_type": [ "22" ], "capacity": 10, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 10 } } ] } diff --git a/data/json/items/magazine/223.json b/data/json/items/magazine/223.json index b1aa94d9b1b34..13407042392f8 100644 --- a/data/json/items/magazine/223.json +++ b/data/json/items/magazine/223.json @@ -27,7 +27,6 @@ "color": "light_gray", "ammo_type": [ "223" ], "capacity": 25, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 25 } } ] }, @@ -46,7 +45,6 @@ "color": "light_gray", "ammo_type": [ "223" ], "capacity": 5, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 5 } } ] }, @@ -65,7 +63,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 10, "300blk": 10 } } ] }, @@ -102,7 +99,6 @@ "color": "light_gray", "ammo_type": [ "223" ], "capacity": 30, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 30 } } ] }, @@ -138,7 +134,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 5, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 5, "300blk": 5 } } ] }, @@ -156,7 +151,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 20, "300blk": 20 } } ] }, @@ -175,7 +169,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 30, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 30, "300blk": 30 } } ] }, @@ -193,7 +186,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 40, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 40, "300blk": 40 } } ] }, @@ -214,7 +206,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 50, - "reliability": 7, "reload_time": 200, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 50, "300blk": 50 } } ] @@ -233,7 +224,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 60, - "reliability": 7, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 60, "300blk": 60 } } ] }, @@ -253,7 +243,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 60, - "reliability": 7, "reload_time": 200, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 60, "300blk": 60 } } ] @@ -274,7 +263,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 90, - "reliability": 6, "reload_time": 200, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 90, "300blk": 90 } } ] @@ -293,7 +281,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 100, - "reliability": 7, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 100, "300blk": 100 } } ] }, @@ -311,7 +298,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 100, - "reliability": 6, "reload_time": 200, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 100, "300blk": 100 } } ] @@ -330,7 +316,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 150, - "reliability": 7, "reload_time": 200, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 150, "300blk": 150 } } ] @@ -387,7 +372,6 @@ "color": "light_gray", "ammo_type": [ "223" ], "capacity": 42, - "reliability": 7, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 42 } } ] }, @@ -416,7 +400,6 @@ "color": "light_gray", "ammo_type": [ "223", "300blk" ], "capacity": 5, - "reliability": 1, "reload_time": 150, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 5, "300blk": 5 } } ] diff --git a/data/json/items/magazine/300.json b/data/json/items/magazine/300.json index 7ff012bba0fea..f66ce495a8a9d 100644 --- a/data/json/items/magazine/300.json +++ b/data/json/items/magazine/300.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "300" ], "capacity": 5, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "300": 5 } } ] } diff --git a/data/json/items/magazine/3006.json b/data/json/items/magazine/3006.json index 3aa936471cadf..0b6e42d18553e 100644 --- a/data/json/items/magazine/3006.json +++ b/data/json/items/magazine/3006.json @@ -33,7 +33,6 @@ "color": "light_gray", "ammo_type": [ "3006" ], "capacity": 4, - "reliability": 10, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 4 } } ] }, @@ -52,7 +51,6 @@ "color": "light_gray", "ammo_type": [ "3006" ], "capacity": 8, - "reliability": 8, "reload_time": 150, "flags": [ "MAG_COMPACT", "MAG_EJECT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 8 } } ] @@ -72,7 +70,6 @@ "color": "light_gray", "ammo_type": [ "3006" ], "capacity": 30, - "reliability": 7, "reload_time": 120, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 30 } } ] @@ -93,7 +90,6 @@ "color": "light_gray", "ammo_type": [ "3006" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 20 } } ] } diff --git a/data/json/items/magazine/308.json b/data/json/items/magazine/308.json index 6713ed13048f7..96f5935a8f1c0 100644 --- a/data/json/items/magazine/308.json +++ b/data/json/items/magazine/308.json @@ -26,7 +26,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 30, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 30 } } ] }, @@ -45,7 +44,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 20 } } ] }, @@ -64,7 +62,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 5, - "reliability": 1, "reload_time": 150, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 5 } } ] @@ -84,7 +81,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 50, - "reliability": 7, "reload_time": 160, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 50 } } ] @@ -104,7 +100,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 20 } } ] }, @@ -130,7 +125,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 20 } } ] }, @@ -149,7 +143,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 5, - "reliability": 10, "reload_time": 50, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 5 } } ] @@ -177,7 +170,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 50, - "reliability": 7, "reload_time": 160, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 50 } } ] @@ -205,7 +197,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 20 } } ] }, @@ -232,7 +223,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 20 } } ] }, @@ -251,7 +241,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 10 } } ] }, @@ -278,7 +267,6 @@ "color": "light_gray", "ammo_type": [ "308" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 20 } } ] }, diff --git a/data/json/items/magazine/32.json b/data/json/items/magazine/32.json index dcaf1f57613a2..72da2fbcdfd80 100644 --- a/data/json/items/magazine/32.json +++ b/data/json/items/magazine/32.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "32" ], "capacity": 8, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "32": 8 } } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "32" ], "capacity": 8, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "32": 8 } } ] }, @@ -52,7 +50,6 @@ "color": "light_gray", "ammo_type": [ "32" ], "capacity": 20, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "32": 20 } } ] }, @@ -71,7 +68,6 @@ "color": "light_gray", "ammo_type": [ "32" ], "capacity": 7, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "32": 7 } } ] } diff --git a/data/json/items/magazine/357sig.json b/data/json/items/magazine/357sig.json index cfb5b9c42f018..c0209a2007652 100644 --- a/data/json/items/magazine/357sig.json +++ b/data/json/items/magazine/357sig.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "357sig" ], "capacity": 12, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "357sig": 12 } } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "357sig" ], "capacity": 13, - "reliability": 7, "reload_time": 140, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "357sig": 13 } } ] diff --git a/data/json/items/magazine/380.json b/data/json/items/magazine/380.json index 59f44f3031183..4b8d02cf80b2b 100644 --- a/data/json/items/magazine/380.json +++ b/data/json/items/magazine/380.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "380" ], "capacity": 6, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "380": 6 } } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "380" ], "capacity": 6, - "reliability": 6, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "380": 6 } } ] }, @@ -52,7 +50,6 @@ "color": "light_gray", "ammo_type": [ "380" ], "capacity": 6, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "380": 6 } } ] }, @@ -71,7 +68,6 @@ "color": "light_gray", "ammo_type": [ "380" ], "capacity": 32, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "380": 32 } } ] }, @@ -90,7 +86,6 @@ "color": "light_gray", "ammo_type": [ "380" ], "capacity": 8, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "380": 8 } } ] }, @@ -109,7 +104,6 @@ "color": "light_gray", "ammo_type": [ "380" ], "capacity": 10, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "380": 10 } } ] }, @@ -128,7 +122,6 @@ "color": "light_gray", "ammo_type": [ "380" ], "capacity": 6, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "380": 6 } } ] } diff --git a/data/json/items/magazine/38super.json b/data/json/items/magazine/38super.json index 62839cfdb11d7..2bc8dde91ffb1 100644 --- a/data/json/items/magazine/38super.json +++ b/data/json/items/magazine/38super.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "38super" ], "capacity": 16, - "reliability": 7, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "38super": 16 } } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "38super" ], "capacity": 9, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "38super": 9 } } ] } diff --git a/data/json/items/magazine/40.json b/data/json/items/magazine/40.json index b4a9f3359e90f..c5a19f96cb7a2 100644 --- a/data/json/items/magazine/40.json +++ b/data/json/items/magazine/40.json @@ -32,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "40", "357sig" ], "capacity": 12, - "reliability": 8, "reload_time": 140, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 12, "357sig": 12 } } ] @@ -52,7 +51,6 @@ "color": "light_gray", "ammo_type": [ "40", "357sig" ], "capacity": 22, - "reliability": 7, "reload_time": 140, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 22, "357sig": 22 } } ] @@ -72,7 +70,6 @@ "color": "light_gray", "ammo_type": [ "40", "357sig" ], "capacity": 15, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 15, "357sig": 15 } } ] }, @@ -91,7 +88,6 @@ "color": "light_gray", "ammo_type": [ "40", "357sig" ], "capacity": 14, - "reliability": 8, "reload_time": 140, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 14, "357sig": 14 } } ] @@ -111,7 +107,6 @@ "color": "light_gray", "ammo_type": [ "40" ], "capacity": 12, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 12 } } ] }, @@ -130,7 +125,6 @@ "color": "light_gray", "ammo_type": [ "40" ], "capacity": 20, - "reliability": 1, "reload_time": 160, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 20 } } ] @@ -150,7 +144,6 @@ "color": "light_gray", "ammo_type": [ "40" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 10 } } ] }, @@ -169,7 +162,6 @@ "color": "light_gray", "ammo_type": [ "40" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 10 } } ] }, @@ -188,7 +180,6 @@ "color": "light_gray", "ammo_type": [ "40" ], "capacity": 12, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 12 } } ] }, @@ -207,7 +198,6 @@ "color": "light_gray", "ammo_type": [ "40" ], "capacity": 14, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 14 } } ] }, @@ -226,7 +216,6 @@ "color": "light_gray", "ammo_type": [ "40" ], "capacity": 10, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 10 } } ] } diff --git a/data/json/items/magazine/40mm.json b/data/json/items/magazine/40mm.json index ddc0f0538facc..ccd074ef9503b 100644 --- a/data/json/items/magazine/40mm.json +++ b/data/json/items/magazine/40mm.json @@ -14,7 +14,6 @@ "ammo_type": [ "40x53mm" ], "capacity": 50, "count": 25, - "reliability": 6, "linkage": "ammolink40mm", "flags": [ "MAG_BELT", "MAG_DESTROY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40x53mm": 50 } } ] diff --git a/data/json/items/magazine/410shot.json b/data/json/items/magazine/410shot.json index 12dd196f6fe54..aa48f17ca4443 100644 --- a/data/json/items/magazine/410shot.json +++ b/data/json/items/magazine/410shot.json @@ -14,7 +14,6 @@ "color": "dark_gray", "ammo_type": [ "410shot" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "410shot": 10 } } ] }, @@ -33,7 +32,6 @@ "color": "dark_gray", "ammo_type": [ "410shot" ], "capacity": 30, - "reliability": 8, "reload_time": 130, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "410shot": 30 } } ] diff --git a/data/json/items/magazine/44.json b/data/json/items/magazine/44.json index 6bbeab8a5cbe5..f418469f57d62 100644 --- a/data/json/items/magazine/44.json +++ b/data/json/items/magazine/44.json @@ -22,7 +22,7 @@ "looks_like": "glock17_17", "type": "MAGAZINE", "name": { "str": "Desert Eagle magazine" }, - "description": "A standard 7-round steel box magazine for use with the IMI Desert Eagle.", + "description": "A standard 8-round steel box magazine for use with the IMI Desert Eagle.", "weight": "90 g", "volume": "250 ml", "price": 6750, @@ -32,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "44" ], "capacity": 8, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "44": 8 } } ] } diff --git a/data/json/items/magazine/45.json b/data/json/items/magazine/45.json index 7dce7e185dcb4..eb9acb9b2e12b 100644 --- a/data/json/items/magazine/45.json +++ b/data/json/items/magazine/45.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 30, - "reliability": 7, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 30 } } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 20, - "reliability": 1, "reload_time": 160, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 20 } } ] @@ -53,7 +51,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 30, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 30 } } ] }, @@ -72,7 +69,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 30, - "reliability": 8, "reload_time": 120, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 30 } } ] @@ -92,7 +88,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 50, - "reliability": 7, "reload_time": 150, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 50 } } ] @@ -112,7 +107,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 20, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 20 } } ] }, @@ -139,7 +133,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 25, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 25 } } ] }, @@ -166,7 +159,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 12, - "reliability": 10, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 12 } } ] }, @@ -185,7 +177,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 12, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 12 } } ] }, @@ -204,7 +195,6 @@ "color": "light_gray", "ammo_type": [ "45" ], "capacity": 9, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 9 } } ] } diff --git a/data/json/items/magazine/46.json b/data/json/items/magazine/46.json index eff8fc3c46305..c70910608c5ee 100644 --- a/data/json/items/magazine/46.json +++ b/data/json/items/magazine/46.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "46" ], "capacity": 40, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "46": 40 } } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "46" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "46": 20 } } ] } diff --git a/data/json/items/magazine/460.json b/data/json/items/magazine/460.json index 50de31c183d6a..bca340cd0497f 100644 --- a/data/json/items/magazine/460.json +++ b/data/json/items/magazine/460.json @@ -13,7 +13,6 @@ "color": "light_gray", "ammo_type": [ "45", "460" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 10, "460": 10 } } ] }, @@ -31,7 +30,6 @@ "color": "light_gray", "ammo_type": [ "45", "460" ], "capacity": 7, - "reliability": 10, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 7, "460": 7 } } ] } diff --git a/data/json/items/magazine/50.json b/data/json/items/magazine/50.json index 2216ad5bb46f7..f4d6d670c3485 100644 --- a/data/json/items/magazine/50.json +++ b/data/json/items/magazine/50.json @@ -27,7 +27,6 @@ "color": "light_gray", "ammo_type": [ "50" ], "capacity": 10, - "reliability": 9, "reload_time": 130, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "50": 10 } } ] @@ -47,7 +46,6 @@ "color": "dark_gray", "ammo_type": [ "50" ], "capacity": 10, - "reliability": 9, "reload_time": 110, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "50": 10 } } ] @@ -67,7 +65,6 @@ "color": "dark_gray", "ammo_type": [ "50" ], "capacity": 5, - "reliability": 9, "reload_time": 200, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "50": 5 } } ] diff --git a/data/json/items/magazine/545x39.json b/data/json/items/magazine/545x39.json index 27717c25f2793..133ab5a0cda98 100644 --- a/data/json/items/magazine/545x39.json +++ b/data/json/items/magazine/545x39.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "545x39" ], "capacity": 30, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "545x39": 30 } } ] }, @@ -34,7 +33,6 @@ "color": "light_gray", "ammo_type": [ "545x39" ], "capacity": 45, - "reliability": 8, "reload_time": 130, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "545x39": 45 } } ] diff --git a/data/json/items/magazine/57.json b/data/json/items/magazine/57.json index f7b6d5114ac35..9e11e4a8870d0 100644 --- a/data/json/items/magazine/57.json +++ b/data/json/items/magazine/57.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "57" ], "capacity": 20, - "reliability": 10, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "57": 20 } } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "57" ], "capacity": 50, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "57": 50 } } ] } diff --git a/data/json/items/magazine/5x50.json b/data/json/items/magazine/5x50.json index 10b12f41b7382..0c99640652135 100644 --- a/data/json/items/magazine/5x50.json +++ b/data/json/items/magazine/5x50.json @@ -14,7 +14,6 @@ "color": "dark_gray", "ammo_type": [ "5x50" ], "capacity": 100, - "reliability": 10, "reload_time": 60, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "5x50": 100 } } ] @@ -34,7 +33,6 @@ "color": "dark_gray", "ammo_type": [ "5x50" ], "capacity": 50, - "reliability": 10, "reload_time": 50, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "5x50": 50 } } ] diff --git a/data/json/items/magazine/762.json b/data/json/items/magazine/762.json index 28e298b734376..89d5994f7b7d2 100644 --- a/data/json/items/magazine/762.json +++ b/data/json/items/magazine/762.json @@ -33,7 +33,6 @@ "color": "light_gray", "ammo_type": [ "762" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762": 10 } } ] }, @@ -52,7 +51,6 @@ "color": "light_gray", "ammo_type": [ "762" ], "capacity": 20, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762": 20 } } ] }, @@ -71,7 +69,6 @@ "color": "light_gray", "ammo_type": [ "762" ], "capacity": 30, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762": 30 } } ] }, @@ -90,7 +87,6 @@ "color": "light_gray", "ammo_type": [ "762" ], "capacity": 40, - "reliability": 8, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762": 40 } } ] }, @@ -109,7 +105,6 @@ "color": "light_gray", "ammo_type": [ "762" ], "capacity": 75, - "reliability": 7, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762": 75 } } ] } diff --git a/data/json/items/magazine/762x25.json b/data/json/items/magazine/762x25.json index fafb2bec83753..aa249639f9b0a 100644 --- a/data/json/items/magazine/762x25.json +++ b/data/json/items/magazine/762x25.json @@ -15,7 +15,6 @@ "color": "light_gray", "ammo_type": [ "762x25" ], "capacity": 71, - "reliability": 7, "reload_time": 190, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762x25": 71 } } ] @@ -35,7 +34,6 @@ "color": "light_gray", "ammo_type": [ "762x25" ], "capacity": 35, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762x25": 35 } } ] }, @@ -54,7 +52,6 @@ "color": "light_gray", "ammo_type": [ "762x25" ], "capacity": 8, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762x25": 8 } } ] } diff --git a/data/json/items/magazine/8x40mm.json b/data/json/items/magazine/8x40mm.json index 6ee86fc27f2a5..80d2178d056f4 100644 --- a/data/json/items/magazine/8x40mm.json +++ b/data/json/items/magazine/8x40mm.json @@ -14,7 +14,6 @@ "color": "dark_gray", "ammo_type": [ "8x40mm" ], "capacity": 100, - "reliability": 10, "reload_time": 50, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "8x40mm": 100 } } ] @@ -34,7 +33,6 @@ "color": "dark_gray", "ammo_type": [ "8x40mm" ], "capacity": 10, - "reliability": 10, "reload_time": 40, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "8x40mm": 10 } } ] @@ -54,7 +52,6 @@ "color": "dark_gray", "ammo_type": [ "8x40mm" ], "capacity": 250, - "reliability": 10, "reload_time": 60, "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "8x40mm": 250 } } ] }, @@ -73,7 +70,6 @@ "color": "dark_gray", "ammo_type": [ "8x40mm" ], "capacity": 25, - "reliability": 10, "reload_time": 50, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "8x40mm": 25 } } ] @@ -93,7 +89,6 @@ "color": "dark_gray", "ammo_type": [ "8x40mm" ], "capacity": 500, - "reliability": 10, "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "8x40mm": 500 } } ] }, { @@ -111,27 +106,7 @@ "color": "dark_gray", "ammo_type": [ "8x40mm" ], "capacity": 50, - "reliability": 10, "reload_time": 50, - "flags": [ "MAG_COMPACT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "8x40mm": 50 } } ] - }, - { - "id": "8x40_speedloader5", - "looks_like": "38_speedloader", - "type": "MAGAZINE", - "name": { "str": "RMGS5 8x40mm speedloader" }, - "description": "This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 rounds of 8x40mm caseless rounds and quickly reload a compatible revolver.", - "weight": "92 g", - "volume": "250 ml", - "price": 8000, - "price_postapoc": 250, - "material": [ "superalloy", "plastic" ], - "symbol": "#", - "color": "dark_gray", - "ammo_type": [ "8x40mm" ], - "capacity": 5, - "flags": [ "SPEEDLOADER" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "8x40mm": 5 } } ] + "flags": [ "MAG_COMPACT" ] } ] diff --git a/data/json/items/magazine/9mm.json b/data/json/items/magazine/9mm.json index 97342dcc56c0f..0b4b73604a57e 100644 --- a/data/json/items/magazine/9mm.json +++ b/data/json/items/magazine/9mm.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 50, - "reliability": 7, "reload_time": 160, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 50 } } ] @@ -34,7 +33,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 30, - "reliability": 7, "reload_time": 140, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 30 } } ] @@ -54,7 +52,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 15, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 15 } } ] }, @@ -73,7 +70,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 17, - "reliability": 7, "reload_time": 140, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 17 } } ] @@ -93,7 +89,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 22, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 22 } } ] }, @@ -112,7 +107,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 50, - "reliability": 8, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 50 } } ] }, @@ -131,7 +125,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 100, - "reliability": 8, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 100 } } ] }, @@ -150,7 +143,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 30, - "reliability": 7, "reload_time": 140, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 30 } } ] @@ -170,7 +162,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 15, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 15 } } ] }, @@ -189,7 +180,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 50, - "reliability": 8, "reload_time": 160, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 50 } } ] @@ -210,7 +200,6 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 30 } } ], "ammo_type": [ "9mm" ], "capacity": 30, - "reliability": 9, "flags": [ "MAG_COMPACT" ] }, { @@ -228,7 +217,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 17, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 17 } } ] }, @@ -247,7 +235,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 32, - "reliability": 6, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 32 } } ] }, @@ -266,7 +253,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 20, - "reliability": 1, "reload_time": 160, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 20 } } ] @@ -286,7 +272,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 32, - "reliability": 7, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 32 } } ] }, @@ -305,7 +290,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 15, - "reliability": 10, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 15 } } ] }, @@ -324,7 +308,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 32, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 32 } } ] }, @@ -343,7 +326,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 7, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 7 } } ] }, @@ -362,7 +344,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 17, - "reliability": 7, "reload_time": 140, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 17 } } ] @@ -382,7 +363,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 13, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 13 } } ] }, @@ -401,7 +381,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 15, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 15 } } ] }, @@ -420,7 +399,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 8, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 8 } } ] }, @@ -439,7 +417,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 10 } } ] }, @@ -458,7 +435,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 15, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 15 } } ] }, @@ -477,7 +453,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 17, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 17 } } ] }, @@ -496,7 +471,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 8, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 8 } } ] }, @@ -515,7 +489,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 10, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 10 } } ] }, @@ -534,7 +507,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 15, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 15 } } ] }, @@ -553,7 +525,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 12, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 12 } } ] }, @@ -572,7 +543,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 20, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 20 } } ] }, @@ -591,7 +561,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 26, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 26 } } ] }, @@ -610,7 +579,6 @@ "color": "light_gray", "ammo_type": [ "9mm" ], "capacity": 8, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 8 } } ] } diff --git a/data/json/items/magazine/9x18.json b/data/json/items/magazine/9x18.json index d4a8cc8ee3ae7..62742d394e17a 100644 --- a/data/json/items/magazine/9x18.json +++ b/data/json/items/magazine/9x18.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "9x18" ], "capacity": 8, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9x18": 8 } } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "9x18" ], "capacity": 20, - "reliability": 8, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9x18": 20 } } ] } diff --git a/data/json/items/magazine/chemical_spray.json b/data/json/items/magazine/chemical_spray.json index bad00a4023cba..814aeac199795 100644 --- a/data/json/items/magazine/chemical_spray.json +++ b/data/json/items/magazine/chemical_spray.json @@ -14,8 +14,7 @@ "color": "light_gray", "ammo_type": [ "chemical_spray" ], "capacity": 800, - "reliability": 9, "reload_time": 3, - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "chemical_spray": 800 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "chemical_spray": 800 }, "watertight": true } ] } ] diff --git a/data/json/items/magazine/liquid.json b/data/json/items/magazine/liquid.json index 234244c08880d..4d5daa7ff98ce 100644 --- a/data/json/items/magazine/liquid.json +++ b/data/json/items/magazine/liquid.json @@ -14,7 +14,6 @@ "color": "light_gray", "ammo_type": [ "flammable" ], "capacity": 3000, - "reliability": 9, "reload_time": 3, "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "flammable": 3000 }, "watertight": true } ] }, @@ -33,7 +32,6 @@ "color": "light_gray", "ammo_type": [ "flammable" ], "capacity": 500, - "reliability": 9, "reload_time": 3, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "flammable": 500 }, "watertight": true } ] @@ -53,7 +51,6 @@ "color": "light_gray", "ammo_type": [ "flammable" ], "capacity": 2000, - "reliability": 10, "reload_time": 3, "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "flammable": 2000 }, "watertight": true } ] }, @@ -72,7 +69,6 @@ "color": "light_gray", "ammo_type": [ "flammable" ], "capacity": 4000, - "reliability": 10, "reload_time": 3, "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "flammable": 4000 }, "watertight": true } ] } diff --git a/data/json/items/magazine/shot.json b/data/json/items/magazine/shot.json index 38bb717976906..977c351432874 100644 --- a/data/json/items/magazine/shot.json +++ b/data/json/items/magazine/shot.json @@ -14,7 +14,6 @@ "color": "dark_gray", "ammo_type": [ "shot" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 10 } } ] }, @@ -33,7 +32,6 @@ "color": "dark_gray", "ammo_type": [ "shot" ], "capacity": 30, - "reliability": 8, "reload_time": 130, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 30 } } ] @@ -53,7 +51,6 @@ "color": "dark_gray", "ammo_type": [ "shot" ], "capacity": 10, - "reliability": 9, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 10 } } ] }, @@ -72,7 +69,6 @@ "color": "dark_gray", "ammo_type": [ "shot" ], "capacity": 20, - "reliability": 8, "reload_time": 110, "flags": [ "MAG_BULKY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 20 } } ] @@ -87,12 +83,11 @@ "volume": "500 ml", "price": 1000, "price_postapoc": 50, - "material": "cotton", + "material": [ "cotton" ], "symbol": "#", "color": "light_gray", "ammo_type": [ "shot" ], "capacity": 20, - "reliability": 5, "armor_data": { "covers": [ "TORSO" ], "coverage": 5, "material_thickness": 1, "encumbrance": 2 }, "flags": [ "MAG_EJECT", "BELTED", "OVERSIZE", "WATER_FRIENDLY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 20 } } ] diff --git a/data/json/items/magazine/weldgas.json b/data/json/items/magazine/weldgas.json index 142ff7f8486bf..0cfc8d19d8178 100644 --- a/data/json/items/magazine/weldgas.json +++ b/data/json/items/magazine/weldgas.json @@ -15,7 +15,6 @@ "ammo_type": [ "weldgas" ], "capacity": 60, "count": 60, - "reliability": 10, "flags": [ "NO_UNLOAD", "NO_RELOAD" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "weldgas": 60 }, "watertight": true } ] }, @@ -35,7 +34,6 @@ "ammo_type": [ "weldgas" ], "capacity": 240, "count": 240, - "reliability": 10, "flags": [ "NO_UNLOAD", "NO_RELOAD" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "weldgas": 240 }, "watertight": true } ] } diff --git a/data/json/items/melee/bludgeons.json b/data/json/items/melee/bludgeons.json index 08c7f8e8d9979..84a93f3599f2a 100644 --- a/data/json/items/melee/bludgeons.json +++ b/data/json/items/melee/bludgeons.json @@ -5,11 +5,11 @@ "category": "weapons", "name": { "str": "war flail" }, "description": "This is a stout pole with a large steel flanged mace head on a short chain attached to it, based on the peasant flail agricultural tool except now with a metal head and made to thresh people in metal armor rather than grain.", - "weight": "4550 g", - "volume": "3750 ml", + "weight": "3550 g", + "volume": "2250 ml", "price": 25000, "price_postapoc": 3000, - "bashing": 50, + "bashing": 65, "material": [ "wood", "steel" ], "symbol": "\\", "color": "dark_gray", @@ -23,10 +23,10 @@ "name": { "str": "peasant flail" }, "description": "This is a stout pole with a wooden club on a leather cord attached to it, this is a tool used to thresh wheat and occasionally people when the peasants got angry at their feudal lords.", "weight": "1700 g", - "volume": "3750 ml", + "volume": "2250 ml", "price": 4000, "price_postapoc": 1000, - "bashing": 26, + "bashing": 35, "material": [ "wood" ], "symbol": "\\", "color": "brown", @@ -47,7 +47,7 @@ "techniques": [ "WBLOCK_1" ], "flags": [ "DURABLE_MELEE" ], "volume": "1750 ml", - "bashing": 26, + "bashing": 22, "price": 16000 }, { @@ -65,7 +65,7 @@ "qualities": [ [ "HAMMER", 1 ] ], "flags": [ "DURABLE_MELEE" ], "volume": "1750 ml", - "bashing": 26, + "bashing": 22, "price": 16000 }, { @@ -116,7 +116,7 @@ "flags": [ "DURABLE_MELEE", "BELT_CLIP" ], "use_action": { "menu_text": "Collapse", "type": "transform", "target": "baton", "msg": "You collapse your baton." }, "volume": "750 ml", - "bashing": 18, + "bashing": 21, "price": 17500 }, { @@ -129,9 +129,8 @@ "volume": "2500 ml", "price": 40000, "price_postapoc": 12000, - "to_hit": 1, - "bashing": 22, - "cutting": 40, + "bashing": 19, + "cutting": 38, "material": [ "steel", "wood" ], "symbol": "/", "color": "light_gray", @@ -153,7 +152,7 @@ "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], "weight": "2068 g", "volume": "3250 ml", - "bashing": 21, + "bashing": 19, "cutting": 3, "to_hit": 1, "category": "weapons" @@ -170,11 +169,10 @@ "material": [ "budget_steel", "wood" ], "weight": "2002 g", "volume": "2500 ml", - "bashing": 42, + "bashing": 38, "cutting": 10, "flags": [ "NONCONDUCTIVE", "SHEATH_AXE" ], "techniques": [ "WBLOCK_1", "BRUTAL", "SWEEP" ], - "to_hit": 1, "category": "weapons", "qualities": [ [ "AXE", 2 ], [ "BUTCHER", -20 ] ] }, @@ -211,9 +209,9 @@ "weight": "1133 g", "volume": "2 L", "//": "MA reference I used held that a bokken crushes rather than cuts (or impales) but is otherwise just as damaging as a katana. Nerfed by popular demand.", - "bashing": 26, + "bashing": 24, "cutting": 1, - "to_hit": 2, + "to_hit": 3, "category": "weapons" }, { @@ -232,7 +230,7 @@ "weight": "680 g", "volume": "2 L", "bashing": 13, - "to_hit": 1, + "to_hit": 2, "category": "weapons" }, { @@ -250,8 +248,8 @@ "flags": [ "SHEATH_SWORD" ], "weight": "1133 g", "volume": "2 L", - "bashing": 26, - "to_hit": 1, + "bashing": 17, + "to_hit": 2, "category": "weapons" }, { @@ -303,7 +301,7 @@ "techniques": [ "WBLOCK_1" ], "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE" ], "volume": "2 L", - "bashing": 26, + "bashing": 22, "cutting": 8, "price": 20000 }, @@ -338,7 +336,7 @@ "techniques": [ "WBLOCK_2", "RAPID", "PRECISE" ], "flags": [ "DURABLE_MELEE" ], "volume": "600 ml", - "bashing": 8, + "bashing": 10, "price": 1000 }, { @@ -477,7 +475,7 @@ "techniques": [ "WBLOCK_1" ], "weight": "420 g", "volume": "1750 ml", - "bashing": 18, + "bashing": 14, "cutting": 1, "to_hit": 2 }, @@ -514,7 +512,7 @@ "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], "weight": "2200 g", "volume": "3 L", - "bashing": 29, + "bashing": 32, "category": "weapons", "to_hit": 3, "qualities": [ [ "HAMMER", 1 ] ] @@ -546,11 +544,14 @@ "type": "transform" }, "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR" ], - "magazines": [ - [ - "battery", - [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -571,15 +572,15 @@ "symbol": "/", "color": "light_gray", "name": { "str": "lucerne hammer" }, - "description": "This is a versatile polearm with a spiked hammer head, a spike, and a hook attached to a long stick.", + "description": "This is a versatile polearm with a spiked hammer head, a spike, and a hook attached to a beefy wooden pole.", "price": 50000, "material": [ "wood", "steel" ], "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "SPEAR", "ALWAYS_TWOHAND" ], "techniques": [ "WBLOCK_1", "WIDE", "SWEEP" ], "weight": "3200 g", "volume": "3750 ml", - "bashing": 34, - "cutting": 34, + "bashing": 44, + "cutting": 33, "to_hit": 1, "price_postapoc": 10000, "qualities": [ [ "COOK", 1 ] ] @@ -598,8 +599,8 @@ "techniques": [ "WBLOCK_1", "SWEEP" ], "weight": "2700 g", "volume": "3750 ml", - "bashing": 48, - "cutting": 8, + "bashing": 25, + "cutting": 2, "to_hit": 1, "qualities": [ [ "COOK", 1 ] ] }, @@ -700,14 +701,13 @@ "name": { "str": "morningstar" }, "description": "A medieval weapon consisting of a wood handle with a heavy, spiked iron ball on the end. It deals devastating crushing damage, with a small amount of piercing to boot.", "weight": "1400 g", - "to_hit": -1, "color": "dark_gray", "symbol": "/", "material": [ "iron", "wood" ], "techniques": [ "SWEEP" ], "volume": "1500 ml", "bashing": 38, - "cutting": 6, + "cutting": 8, "flags": [ "DURABLE_MELEE", "SPEAR", "NONCONDUCTIVE" ], "price": 120000, "price_postapoc": 8000, @@ -726,7 +726,7 @@ "material": [ "aluminum", "wood" ], "techniques": [ "SWEEP" ], "volume": "1500 ml", - "bashing": 26, + "bashing": 13, "cutting": 1, "flags": [ "SPEAR", "NONCONDUCTIVE", "FRAGILE_MELEE" ], "price": 12000, @@ -764,7 +764,7 @@ "material": [ "wood" ], "techniques": [ "WBLOCK_1" ], "volume": "1750 ml", - "bashing": 26, + "bashing": 22, "cutting": 4, "flags": [ "STAB" ], "price": 16000, @@ -820,7 +820,7 @@ "flags": [ "DURABLE_MELEE", "BELT_CLIP" ], "use_action": { "menu_text": "Retract", "type": "transform", "target": "PR24-retracted", "msg": "You collapse your PR-24 baton." }, "volume": "2 L", - "bashing": 20, + "bashing": 22, "price": 30000, "price_postapoc": 750 }, @@ -908,7 +908,7 @@ "flags": [ "DURABLE_MELEE" ], "weight": "910 g", "volume": "1500 ml", - "bashing": 26, + "bashing": 24, "to_hit": 2, "price_postapoc": 1250, "category": "weapons" @@ -926,7 +926,7 @@ "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE" ], "weight": "1135 g", "volume": "1500 ml", - "bashing": 30, + "bashing": 27, "to_hit": 2, "price_postapoc": 1750, "category": "weapons" @@ -944,7 +944,7 @@ "flags": [ "FRAGILE_MELEE" ], "weight": "850 g", "volume": "1500 ml", - "bashing": 26, + "bashing": 12, "to_hit": 1, "price_postapoc": 50, "category": "weapons" @@ -960,7 +960,7 @@ "price": 8000, "to_hit": 3, "price_postapoc": 4500, - "bashing": 29, + "bashing": 32, "material": [ "wood", "iron" ], "symbol": "/", "color": "brown", @@ -970,11 +970,14 @@ "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], "use_action": "TAZER", "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -997,11 +1000,14 @@ "techniques": [ "WBLOCK_2", "RAPID" ], "use_action": "SHOCKTONFA_OFF", "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { diff --git a/data/json/items/melee/misc.json b/data/json/items/melee/misc.json index e04de04b8410d..4afd28cfc7686 100644 --- a/data/json/items/melee/misc.json +++ b/data/json/items/melee/misc.json @@ -42,8 +42,8 @@ "price": 25000, "price_postapoc": 1250, "to_hit": -1, - "bashing": 19, - "cutting": 39, + "bashing": 18, + "cutting": 37, "material": [ "steel" ], "symbol": "/", "color": "dark_gray", @@ -70,11 +70,14 @@ "ammo": [ "battery" ], "charges_per_use": 100, "use_action": "TAZER", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] } ] diff --git a/data/json/items/melee/spears_and_polearms.json b/data/json/items/melee/spears_and_polearms.json index f040553367b5e..1fd2067ac7e1f 100644 --- a/data/json/items/melee/spears_and_polearms.json +++ b/data/json/items/melee/spears_and_polearms.json @@ -47,7 +47,7 @@ "color": "brown", "symbol": "/", "material": [ "wood" ], - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "volume": "1250 ml", "bashing": 4, "cutting": 15, @@ -89,7 +89,7 @@ "material": [ "wood", "iron" ], "symbol": "/", "color": "brown", - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "qualities": [ [ "COOK", 1 ] ], "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "FRAGILE_MELEE", "SHEATH_SPEAR" ] }, @@ -105,11 +105,11 @@ "price_postapoc": 150, "to_hit": 1, "bashing": 5, - "cutting": 17, + "cutting": 19, "material": [ "wood", "iron" ], "symbol": "/", "color": "brown", - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "qualities": [ [ "CUT", 1 ], [ "COOK", 1 ] ], "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "FRAGILE_MELEE", "SHEATH_SPEAR" ] }, @@ -125,11 +125,11 @@ "price_postapoc": 500, "to_hit": 1, "bashing": 5, - "cutting": 17, + "cutting": 19, "material": [ "wood", "iron" ], "symbol": "/", "color": "brown", - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "qualities": [ [ "CUT", 1 ], [ "COOK", 1 ] ], "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ] }, @@ -143,8 +143,8 @@ "volume": "1500 ml", "price": 1400, "price_postapoc": 750, - "bashing": 6, - "cutting": 22, + "bashing": 7, + "cutting": 24, "material": [ "wood", "iron" ], "symbol": "/", "color": "brown", @@ -184,7 +184,7 @@ "techniques": [ "WBLOCK_1" ], "volume": "1500 ml", "bashing": 6, - "cutting": 31, + "cutting": 20, "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "price": 1400, "qualities": [ [ "COOK", 1 ] ] @@ -223,7 +223,7 @@ "techniques": [ "WBLOCK_1", "IMPALE" ], "volume": "1250 ml", "bashing": 6, - "cutting": 22, + "cutting": 25, "flags": [ "SPEAR", "REACH_ATTACK", "SHEATH_SPEAR" ], "price": 8000, "qualities": [ [ "COOK", 1 ] ] @@ -237,7 +237,7 @@ "description": "A somewhat sharpened piece of rebar.", "price": 500, "price_postapoc": 50, - "material": "iron", + "material": [ "iron" ], "weight": "908 g", "volume": "1500 ml", "bashing": 5, @@ -270,7 +270,7 @@ "symbol": "/", "color": "light_gray", "name": { "str": "halberd" }, - "description": "This is a versatile polearm with an axe blade, a spike, and other fun things attached to a long stick.", + "description": "This is a versatile polearm with an axe blade, a spike, and other fun things attached to a long sturdy stick.", "price": 50000, "material": [ "wood", "steel" ], "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], @@ -288,7 +288,7 @@ "symbol": "/", "color": "light_gray", "name": { "str": "halberd" }, - "description": "This is a dull, cheaply made replica of a polearm with an axe blade, a spike, and other fun things attached to a long stick.", + "description": "This is a dull, cheaply made replica of a polearm with an axe blade, a spike, and other fun things attached to a thick pole.", "price": 5000, "material": [ "wood", "aluminum" ], "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "ALWAYS_TWOHAND", "FRAGILE_MELEE" ], @@ -315,8 +315,8 @@ "techniques": [ "WIDE", "WBLOCK_1" ], "weight": "2100 g", "volume": "2500 ml", - "bashing": 14, - "cutting": 38, + "bashing": 17, + "cutting": 40, "price_postapoc": 8000 }, { @@ -387,7 +387,7 @@ "volume": "2250 ml", "bashing": 6, "cutting": 40, - "flags": [ "STAB", "POLEARM", "REACH_ATTACK", "SHEATH_SPEAR" ], + "flags": [ "POLEARM", "REACH_ATTACK", "SHEATH_SPEAR" ], "//": "Description says it can slash. STAB currently doesn't slash, but at least it doesn't give the spear bonus", "price": 8000, "price_postapoc": 4500, @@ -403,7 +403,7 @@ "color": "brown", "symbol": "/", "material": [ "wood" ], - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "volume": "1 L", "cutting": 11, "thrown_damage": [ { "damage_type": "bash", "amount": 5 }, { "damage_type": "stab", "amount": 11 } ], @@ -422,7 +422,7 @@ "color": "light_gray", "symbol": "/", "material": [ "wood", "iron" ], - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "volume": "1 L", "bashing": 5, "cutting": 19, @@ -522,7 +522,6 @@ "volume": "3500 ml", "price": 40000, "price_postapoc": 1250, - "to_hit": -1, "bashing": 25, "cutting": 8, "material": [ "budget_steel", "wood" ], @@ -580,7 +579,6 @@ "volume": "3750 ml", "price": 50000, "price_postapoc": 3500, - "to_hit": 2, "bashing": 11, "cutting": 57, "material": [ "wood", "bronze" ], diff --git a/data/json/items/melee/swords_and_blades.json b/data/json/items/melee/swords_and_blades.json index a098d9a3a1fc4..262ea123bbba0 100644 --- a/data/json/items/melee/swords_and_blades.json +++ b/data/json/items/melee/swords_and_blades.json @@ -8,7 +8,8 @@ "description": "A two by four with a cross guard and whittled down point; not much for slashing, but much better than your bare hands.", "material": "wood", "volume": "1250 ml", - "weight": "600 g", + "weight": "1000 g", + "longest_side": "100 cm", "bashing": 12, "cutting": 1, "to_hit": 1, @@ -25,7 +26,8 @@ "description": "The nail sword, or nord for short. This wooden sword has a dozen nails sticking at jagged angles from edge of the blade, making it much better at chopping than slashing.", "material": "wood", "volume": "1750 ml", - "weight": "648 g", + "weight": "1148 g", + "longest_side": "100 cm", "bashing": 12, "cutting": 4, "to_hit": 2, @@ -42,6 +44,7 @@ "material": "wood", "volume": "2 L", "weight": "1100 g", + "longest_side": "100 cm", "bashing": 6, "cutting": 18, "to_hit": 1, @@ -58,6 +61,7 @@ "description": "This is a long and thin knife with a spring-loaded blade that rests inside the handle while not in use.", "weight": "100 g", "volume": "50 ml", + "longest_side": "15 cm", "price": 2000, "price_postapoc": 50, "to_hit": -2, @@ -76,6 +80,7 @@ "description": "This is a small folding knife, with a locking blade and a pocket clip. Not as good a weapon as a solid fixed-blade knife, but better than a penknife.", "weight": "80 g", "volume": "40 ml", + "longest_side": "10 cm", "price": 1500, "price_postapoc": 50, "bashing": 1, @@ -94,6 +99,7 @@ "description": "This is a military combat knife. It is light and extremely sharp, and could be deadly in either the right hands or when attached as a bayonet.", "weight": "558 g", "volume": "500 ml", + "longest_side": "30 cm", "price": 10000, "price_postapoc": 1250, "to_hit": 1, @@ -108,7 +114,7 @@ "mode_modifier": [ [ "REACH", "bayonet", 2, [ "MELEE", "REACH_ATTACK" ] ] ] }, "min_skills": [ [ "weapon", 2 ], [ "melee", 1 ] ], - "techniques": "RAPID", + "techniques": [ "RAPID" ], "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 19 ] ], "thrown_damage": [ { "damage_type": "stab", "amount": 14 } ], "flags": [ "STAB", "DURABLE_MELEE", "SHEATH_KNIFE", "NPC_THROWN" ] @@ -135,6 +141,7 @@ "description": "Commonly used by hunters, this single-edge sheath knife is designed for cutting and skinning game rather than combat.", "weight": "390 g", "volume": "250 ml", + "longest_side": "20 cm", "price": 4000, "price_postapoc": 750, "cutting": 16, @@ -153,6 +160,7 @@ "description": "This massive knife features a hollow handle with a compass built into the pommel and a row of fearsome looking saw teeth along the back of its blade.", "weight": "612 g", "volume": "1 L", + "longest_side": "30 cm", "price": 2000, "price_postapoc": 500, "bashing": 4, @@ -172,6 +180,7 @@ "description": "This sturdy matte black Rivtech combat dagger features a long and slim double-edged blade with a spear-point and a distinctive slip-resistant grip which can also be used to affix it to a suitable firearm. Originally manufactured for the military, it was very popular in films and among collectors due to its fearsome appearance.", "weight": "188 g", "volume": "750 ml", + "longest_side": "30 cm", "price": 45000, "price_postapoc": 4000, "to_hit": 2, @@ -199,6 +208,7 @@ "description": "An iconic pocket knife imported from Europe. Its red plastic handle conceals many small tools.", "weight": "120 g", "volume": "60 ml", + "longest_side": "9 cm", "price": 3000, "price_postapoc": 500, "to_hit": -2, @@ -217,6 +227,7 @@ "description": "This stout combat knife features a steel guard to protect the user's knuckles. The guard can also be used for striking or blocking, and the knife can also be used to butcher corpses.", "weight": "608 g", "volume": "500 ml", + "longest_side": "20 cm", "price": 11000, "price_postapoc": 1250, "to_hit": 1, @@ -236,6 +247,7 @@ "description": "A knife consisting of a long, somewhat sharpened, spike and a tightly wrapped rag as a handle. It makes a good melee weapon.", "weight": "550 g", "volume": "251 ml", + "longest_side": "20 cm", "price": 0, "price_postapoc": 50, "to_hit": -1, @@ -251,12 +263,13 @@ "id": "bone_knife", "name": { "str": "bone shiv" }, "type": "TOOL", - "description": "A femur or other bone, at least 30 cm long, which has been broken at one end and sharpened into a cutting tool. Its jagged edge is wicked but fragile.", + "description": "A femur or other bone, about 20 cm long, which has been broken at one end and sharpened into a cutting tool. Its jagged edge is wicked but fragile.", "symbol": "/", "color": "white", "weight": 169, "//": "literally 75% of a bone.", "volume": "188 ml", + "longest_side": "20 cm", "price": 0, "price_postapoc": 0, "bashing": 4, @@ -272,6 +285,7 @@ "description": "A medieval dagger forged from rough iron. It is not the sharpest tool in the shed, but it is certainly one of the largest.", "weight": "420 g", "volume": "250 ml", + "longest_side": "60 cm", "price": 19590, "to_hit": 1, "bashing": 5, @@ -280,7 +294,7 @@ "symbol": ";", "color": "dark_gray", "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 15 ] ], - "flags": [ "STAB", "SHEATHE_KNIFE" ] + "flags": [ "STAB", "SHEATH_KNIFE" ] }, { "id": "makeshift_machete", @@ -290,6 +304,7 @@ "description": "This is a large blade that has had a portion of the handle wrapped in duct tape, making it easier to wield as a rough machete.", "weight": "581 g", "volume": "2 L", + "longest_side": "50 cm", "price": 1000, "price_postapoc": 250, "bashing": 5, @@ -309,6 +324,7 @@ "description": "This huge steel knife makes an excellent tool for cutting down large vegetation or other 'obstacles.'", "weight": "538 g", "volume": "1 L", + "longest_side": "50 cm", "price": 2800, "price_postapoc": 1500, "to_hit": 1, @@ -317,7 +333,7 @@ "material": "steel", "symbol": "/", "color": "dark_gray", - "techniques": "WBLOCK_2", + "techniques": [ "WBLOCK_2" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 15 ] ], "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ] }, @@ -326,6 +342,7 @@ "name": { "str": "machete multitool" }, "type": "TOOL", "description": "A thin, wobbly steel blade with sawteeth on one side and a flat chisel tip for digging. A jack of many trades and a master of none.", + "longest_side": "50 cm", "symbol": "/", "color": "green", "weight": 522, @@ -347,6 +364,7 @@ "description": "This is a curved sword associated with cavalry from the Early Modern period onwards. Lightweight but a deadly slashing weapon.", "weight": "910 g", "volume": "1250 ml", + "longest_side": "100 cm", "price": 97000, "price_postapoc": 4000, "to_hit": 1, @@ -367,6 +385,7 @@ "description": "This wavy bladed dagger comes from Southeast Asia. The design of the blade causes it to make broad, painful wounds.", "weight": "558 g", "volume": "750 ml", + "longest_side": "50 cm", "price": 9000, "price_postapoc": 500, "to_hit": 1, @@ -387,6 +406,7 @@ "description": "This versatile implement is a modern take on a traditional weapon that originated in Nepal. Featuring a heavy blade with an inwardly curved edge, it is used as both a tool and as a weapon.", "weight": "450 g", "volume": "750 ml", + "longest_side": "50 cm", "price": 8000, "price_postapoc": 1250, "bashing": 7, @@ -412,6 +432,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "800 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 8, "cutting": 30, "to_hit": 2, @@ -432,6 +453,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "800 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 7, "cutting": 24, "to_hit": 2, @@ -452,6 +474,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "414 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 8, "cutting": 2, "to_hit": 2, @@ -466,11 +489,12 @@ "description": "This is a curved sword associated with various Middle Eastern and Central Asian countries. Designed for slashing, and quite deadly against unarmored targets.", "price": 93000, "price_postapoc": 3500, - "material": "iron", + "material": [ "iron" ], "techniques": [ "WBLOCK_2" ], "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ], "weight": "1133 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 6, "cutting": 30, "to_hit": 1, @@ -491,6 +515,7 @@ "flags": [ "SHEATH_SWORD" ], "weight": "1133 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 5, "cutting": 24, "to_hit": 1, @@ -511,6 +536,7 @@ "flags": [ "SHEATH_SWORD", "FRAGILE_MELEE" ], "weight": "586 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 6, "cutting": 2, "to_hit": 1, @@ -530,6 +556,7 @@ "flags": [ "STAB", "DURABLE_MELEE", "SHEATH_SWORD" ], "weight": "1814 g", "volume": "2750 ml", + "longest_side": "130 cm", "bashing": 9, "cutting": 40, "to_hit": 1, @@ -550,6 +577,7 @@ "flags": [ "SHEATH_SWORD" ], "weight": "1814 g", "volume": "2750 ml", + "longest_side": "130 cm", "bashing": 29, "cutting": 10, "category": "weapons" @@ -568,6 +596,7 @@ "flags": [ "SHEATH_SWORD", "FRAGILE_MELEE" ], "weight": "939 g", "volume": "2750 ml", + "longest_side": "130 cm", "bashing": 13, "cutting": 2, "to_hit": 2, @@ -587,6 +616,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "1814 g", "volume": "2750 ml", + "longest_side": "120 cm", "bashing": 13, "cutting": 34, "to_hit": 2, @@ -607,6 +637,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "1814 g", "volume": "2750 ml", + "longest_side": "120 cm", "bashing": 30, "cutting": 9, "to_hit": 2, @@ -627,6 +658,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "939 g", "volume": "2750 ml", + "longest_side": "120 cm", "bashing": 15, "cutting": 2, "to_hit": 1, @@ -646,6 +678,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "1360 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 14, "cutting": 31, "to_hit": 1, @@ -667,6 +700,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "704 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 14, "cutting": 2, "to_hit": 2, @@ -687,6 +721,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "2721 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 12, "cutting": 25, "to_hit": 1, @@ -701,6 +736,7 @@ "description": "A bronze sword of ancient Greek origin, wielded as a sidearm to the dory spear.", "weight": "800 g", "volume": "2 L", + "longest_side": "50 cm", "price": 12000, "price_postapoc": 2500, "to_hit": 1, @@ -721,6 +757,7 @@ "description": "This ancient bronze weapon features a curved, sickle-like blade sharpened on the outside edge. Associated with the New Kingdom period of Ancient Egypt, it was designed mainly to hack through the light armor common to the region.", "weight": "750 g", "volume": "1750 ml", + "longest_side": "50 cm", "price": 12000, "price_postapoc": 3000, "to_hit": 1, @@ -741,6 +778,7 @@ "description": "An ancient Chinese sword consisting of a curved blade and a guard with a cupped design. Existing since the Shang dynasty, this one is made of bronze. One of the four major weapons in folklore, alongside the jian sword, qiang spear, and gun staff.", "weight": "850 g", "volume": "1750 ml", + "longest_side": "95 cm", "price": 12500, "price_postapoc": 3500, "bashing": 7, @@ -760,6 +798,7 @@ "description": "This common gardening tool has been customized and rebalanced to improve its performance as a weapon.", "weight": "565 g", "volume": "1 L", + "longest_side": "50 cm", "price": 2800, "price_postapoc": 2500, "to_hit": 1, @@ -780,6 +819,7 @@ "description": "A sword bayonet is a large slashing weapon that can be attached to the front of a firearm or crossbow converting it into a pike.", "weight": "923 g", "volume": "1750 ml", + "longest_side": "40 cm", "price": 25000, "price_postapoc": 4000, "to_hit": 1, @@ -814,6 +854,7 @@ "description": "Long Japanese knives like this more-modern remake were the samurai's backup weapon, before the advent of the larger wakizashi. It's still a deadly blade, even if it's smaller than its more famous relatives.", "weight": "558 g", "volume": "500 ml", + "longest_side": "50 cm", "price": 18000, "price_postapoc": 1500, "to_hit": 2, @@ -822,7 +863,7 @@ "material": "steel", "symbol": "/", "color": "dark_gray", - "techniques": "RAPID", + "techniques": [ "RAPID" ], "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 18 ] ], "flags": [ "STAB", "DURABLE_MELEE", "SHEATH_KNIFE" ] }, @@ -834,6 +875,7 @@ "description": "This is a comparatively-common Japanese short sword. Smaller and lighter than a katana, but still effective in combat.", "weight": "835 g", "volume": "1500 ml", + "longest_side": "70 cm", "price": 17800, "price_postapoc": 2750, "to_hit": 1, @@ -854,6 +896,7 @@ "description": "This is a huge two-handed sword from Germany. It packs a real wallop.", "weight": "3176 g", "volume": "3250 ml", + "longest_side": "180 cm", "price": 160000, "price_postapoc": 9500, "to_hit": 2, @@ -874,6 +917,7 @@ "looks_like": "kukri", "weight": "374 g", "volume": "500 ml", + "longest_side": "30 cm", "price": 1800, "to_hit": 1, "price_postapoc": 250, @@ -882,7 +926,7 @@ "material": "steel", "symbol": "/", "color": "dark_gray", - "techniques": "RAPID", + "techniques": [ "RAPID" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], "flags": [ "STAB", "SHEATH_KNIFE" ] }, @@ -894,6 +938,7 @@ "looks_like": "kirpan", "weight": "374 g", "volume": "500 ml", + "longest_side": "30 cm", "price": 900, "price_postapoc": 50, "bashing": 1, @@ -901,7 +946,7 @@ "material": "budget_steel", "symbol": "/", "color": "dark_gray", - "techniques": "RAPID", + "techniques": [ "RAPID" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 4 ] ], "flags": [ "STAB", "SHEATH_KNIFE" ] }, @@ -913,6 +958,7 @@ "description": "This is a dull, cheaply made replica of a long Japanese knife, typically used as a samurai's backup weapon.", "weight": "374 g", "volume": "500 ml", + "longest_side": "50 cm", "price": 1800, "price_postapoc": 10, "to_hit": 1, @@ -922,7 +968,7 @@ "symbol": "/", "color": "dark_gray", "looks_like": "tanto", - "techniques": "RAPID", + "techniques": [ "RAPID" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 5 ] ], "flags": [ "STAB", "SHEATH_KNIFE", "FRAGILE_MELEE" ] }, @@ -934,6 +980,7 @@ "description": "Long Japanese knives like this more-modern remake were the samurai's backup weapon, before the advent of the larger wakizashi. This one doesn't feel well-balanced", "weight": "3 g", "volume": "500 ml", + "longest_side": "50 cm", "price": 18000, "price_postapoc": 25, "to_hit": 2, @@ -943,7 +990,7 @@ "symbol": "/", "color": "dark_gray", "looks_like": "tanto", - "techniques": "RAPID", + "techniques": [ "RAPID" ], "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 7 ] ], "flags": [ "STAB", "SHEATH_KNIFE" ] }, @@ -955,6 +1002,7 @@ "description": "This is a huge, curved, two-handed sword from Japan. It is surprisingly light for its size.", "weight": "2822 g", "volume": "3250 ml", + "longest_side": "120 cm", "price": 150000, "price_postapoc": 12000, "to_hit": 2, @@ -981,6 +1029,7 @@ "techniques": [ "WBLOCK_1", "RAPID", "WIDE" ], "weight": "1882 g", "volume": "3250 ml", + "longest_side": "120 cm", "bashing": 15, "cutting": 3, "to_hit": 2, @@ -1000,6 +1049,7 @@ "techniques": [ "WBLOCK_1", "RAPID", "WIDE" ], "weight": "1882 g", "volume": "3250 ml", + "longest_side": "120 cm", "bashing": 30, "cutting": 12, "to_hit": 1, @@ -1017,6 +1067,7 @@ "material": "steel", "weight": "450 g", "volume": "1250 ml", + "longest_side": "100 cm", "bashing": 1, "cutting": 2, "techniques": [ "PRECISE", "RAPID", "WBLOCK_2" ], @@ -1034,6 +1085,7 @@ "material": "steel", "weight": "650 g", "volume": "1250 ml", + "longest_side": "100 cm", "bashing": 3, "cutting": 7, "techniques": [ "PRECISE", "RAPID", "WBLOCK_2" ], @@ -1051,6 +1103,7 @@ "material": "steel", "weight": "400 g", "volume": "1250 ml", + "longest_side": "100 cm", "bashing": 1, "cutting": 6, "techniques": [ "PRECISE", "RAPID", "WBLOCK_2" ], @@ -1095,11 +1148,14 @@ "use_action": "TAZER", "extend": { "flags": [ "NONCONDUCTIVE" ] }, "relative": { "volume": "250 ml", "weight": "151 g" }, - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -1115,11 +1171,14 @@ "use_action": "TAZER", "extend": { "flags": [ "NONCONDUCTIVE" ] }, "relative": { "volume": "250 ml", "weight": "151 g" }, - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -1135,11 +1194,14 @@ "use_action": "TAZER", "extend": { "flags": [ "NONCONDUCTIVE" ] }, "relative": { "volume": "250 ml", "weight": "151 g" }, - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -1154,6 +1216,7 @@ "material": [ "wood" ], "weight": "200 g", "volume": "1531 ml", + "longest_side": "80 cm", "bashing": 3, "looks_like": "cane", "pocket_data": [ @@ -1180,6 +1243,7 @@ "material": [ "steel" ], "weight": "650 g", "volume": "1200 ml", + "longest_side": "80 cm", "bashing": 2, "cutting": 25, "looks_like": "rapier", @@ -1194,6 +1258,7 @@ "description": "This is an early modern sword seeing use in the 16th, 17th, and 18th centuries. Called 'broad' to contrast with the slimmer rapiers.", "weight": "1133 g", "volume": "1750 ml", + "longest_side": "100 cm", "price": 120000, "price_postapoc": 5000, "to_hit": 2, @@ -1217,9 +1282,10 @@ "price_postapoc": 750, "material": "budget_steel", "flags": [ "SHEATH_SWORD" ], - "techniques": "WBLOCK_2", + "techniques": [ "WBLOCK_2" ], "weight": "1133 g", "volume": "1750 ml", + "longest_side": "100 cm", "bashing": 7, "cutting": 29, "to_hit": 2, @@ -1236,10 +1302,11 @@ "price": 9600, "price_postapoc": 50, "material": "aluminum", - "techniques": "WBLOCK_2", + "techniques": [ "WBLOCK_2" ], "flags": [ "SHEATH_SWORD", "FRAGILE_MELEE" ], "weight": "634 g", "volume": "1750 ml", + "longest_side": "90 cm", "bashing": 12, "cutting": 1, "to_hit": 1, @@ -1255,9 +1322,10 @@ "price": 96000, "price_postapoc": 500, "material": "budget_steel", - "techniques": "WBLOCK_2", + "techniques": [ "WBLOCK_2" ], "weight": "955 g", "volume": "1250 ml", + "longest_side": "90 cm", "bashing": 23, "cutting": 7, "flags": [ "SHEATH_SWORD" ], @@ -1272,6 +1340,7 @@ "description": "This is a thin sword with an ornate hand guard. It looks like the preferred weapon of gentlemen and swashbucklers. Light and quick, it makes any battle a stylish battle.", "weight": "1000 g", "volume": "1500 ml", + "longest_side": "100 cm", "price": 98000, "price_postapoc": 2500, "to_hit": 2, @@ -1292,6 +1361,7 @@ "description": "This is a rare sword from Japan. Deadly against unarmored targets, and still very effective against armor.", "weight": "1133 g", "volume": "2 L", + "longest_side": "90 cm", "price": 98000, "price_postapoc": 4500, "to_hit": 1, @@ -1318,6 +1388,7 @@ "flags": [ "SHEATH_SWORD", "FRAGILE_MELEE" ], "weight": "753 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 11, "cutting": 2, "to_hit": 2, @@ -1337,6 +1408,7 @@ "flags": [ "SHEATH_SWORD" ], "weight": "1133 g", "volume": "2 L", + "longest_side": "90 cm", "bashing": 22, "cutting": 9, "to_hit": 2, @@ -1357,6 +1429,7 @@ "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], "weight": "3176 g", "volume": "3250 ml", + "longest_side": "200 cm", "bashing": 19, "cutting": 3, "to_hit": 2, @@ -1376,6 +1449,7 @@ "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], "weight": "3176 g", "volume": "3250 ml", + "longest_side": "200 cm", "bashing": 38, "cutting": 10, "to_hit": 1, @@ -1393,9 +1467,10 @@ "price_postapoc": 50, "material": "aluminum", "flags": [ "SHEATH_SWORD", "FRAGILE_MELEE" ], - "techniques": "WBLOCK_2", + "techniques": [ "WBLOCK_2" ], "weight": "753 g", "volume": "1750 ml", + "longest_side": "90 cm", "bashing": 10, "cutting": 2, "to_hit": 2, @@ -1409,6 +1484,7 @@ "description": "This is a dull, cheap replica of a curved sword associated with cavalry, from the Early Modern period onwards.", "weight": "600 g", "volume": "1250 ml", + "longest_side": "90 cm", "price": 9700, "price_postapoc": 50, "to_hit": 1, @@ -1434,6 +1510,7 @@ "flags": [ "SHEATH_SWORD", "FRAGILE_MELEE" ], "weight": "660 g", "volume": "1500 ml", + "longest_side": "100 cm", "bashing": 4, "cutting": 2, "to_hit": 2, @@ -1453,6 +1530,7 @@ "flags": [ "SHEATH_SWORD", "FRAGILE_MELEE" ], "weight": "557 g", "volume": "1500 ml", + "longest_side": "70 cm", "bashing": 8, "cutting": 2, "to_hit": 1, @@ -1472,6 +1550,7 @@ "flags": [ "SHEATH_SWORD" ], "weight": "835 g", "volume": "1500 ml", + "longest_side": "70 cm", "bashing": 17, "cutting": 7, "to_hit": 1, @@ -1491,6 +1570,7 @@ "techniques": [ "WBLOCK_1", "RAPID" ], "weight": "558 g", "volume": "750 ml", + "longest_side": "50 cm", "bashing": 2, "cutting": 2, "flags": [ "SHEATH_SWORD", "FRAGILE_MELEE" ], @@ -1512,6 +1592,7 @@ "techniques": [ "WBLOCK_2" ], "weight": "1766 g", "volume": "1500 ml", + "longest_side": "50 cm", "to_hit": 1, "bashing": 7, "cutting": 32, @@ -1526,9 +1607,10 @@ "description": "A long wooden pole with chainsaws impractically attached to both ends. The product of either genius or insanity, but not both; the weight ensures that only someone both strong and very skilled could possibly hope to use it.", "weight": "14254 g", "volume": "7500 ml", + "longest_side": "290 cm", "price": 40000, "price_postapoc": 2000, - "to_hit": -3, + "to_hit": -2, "bashing": 20, "material": [ "plastic", "steel" ], "symbol": "/", @@ -1548,7 +1630,7 @@ "description": "A long wooden pole with chainsaws impractically attached to both ends. They are currently on and draining gasoline; use this item to turn them off.", "bashing": 4, "cutting": 140, - "to_hit": -1, + "to_hit": -4, "revert_to": "cs_lajatang_off", "use_action": "CS_LAJATANG_ON", "turns_per_charge": 1, @@ -1563,9 +1645,10 @@ "description": "A long wooden pole with electric chainsaws impractically attached to both ends. The product of either genius or insanity, but not both; the weight ensures that only someone both strong and very skilled could possibly hope to use it.", "weight": "14254 g", "volume": "7500 ml", + "longest_side": "290 cm", "price": 40000, "price_postapoc": 2000, - "to_hit": -3, + "to_hit": -2, "bashing": 20, "material": [ "plastic", "steel" ], "symbol": "/", @@ -1575,8 +1658,14 @@ "techniques": [ "WBLOCK_1", "SPIN", "SWEEP" ], "use_action": "ECS_LAJATANG_OFF", "flags": [ "NONCONDUCTIVE", "ALWAYS_TWOHAND" ], - "magazines": [ - [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] + } ] }, { @@ -1585,7 +1674,7 @@ "type": "TOOL", "name": { "str": "electric chainsaw lajatang (on)", "str_pl": "electric chainsaw lajatangs (on)" }, "description": "A long wooden pole with electric chainsaws impractically attached to both ends. They are currently on and draining power; use this item to turn them off.", - "to_hit": -1, + "to_hit": -4, "bashing": 4, "cutting": 140, "power_draw": 4000000, @@ -1602,6 +1691,7 @@ "description": "This is a broad saber known for its use by sailors and pirates, as its short blade is easy to handle in close quarters.", "weight": "955 g", "volume": "1250 ml", + "longest_side": "80 cm", "price": 96000, "price_postapoc": 3500, "to_hit": 2, @@ -1610,7 +1700,7 @@ "material": "steel", "symbol": "/", "color": "dark_gray", - "techniques": "WBLOCK_2", + "techniques": [ "WBLOCK_2" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 9 ] ], "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ] }, @@ -1628,6 +1718,7 @@ "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ], "weight": "2500 g", "volume": "6500 ml", + "longest_side": "180 cm", "bashing": 4, "cutting": 26, "to_hit": -1, @@ -1641,6 +1732,7 @@ "description": "This is a chainsaw that has been lightened, tuned, and extensively modified to be a more effective weapon. Unfortunately these modifications have rendered it much less effective as a woodcutting tool.", "weight": "5122 g", "volume": "2250 ml", + "longest_side": "70 cm", "price": 25000, "price_postapoc": 3000, "to_hit": -1, @@ -1661,7 +1753,7 @@ "type": "TOOL", "name": { "str": "combat chainsaw (on)", "str_pl": "combat chainsaws (on)" }, "description": "This combat chainsaw is on, and is continuously draining gasoline. Use it to turn it off.", - "to_hit": 1, + "to_hit": -3, "cutting": 82, "turns_per_charge": 4, "charges_per_use": 0, @@ -1678,6 +1770,7 @@ "description": "This is an electric chainsaw that has been lightened, tuned, and extensively modified to be a more effective weapon. Unfortunately these modifications have rendered it much less effective as a woodcutting tool.", "weight": "5122 g", "volume": "2250 ml", + "longest_side": "70 cm", "price": 25000, "price_postapoc": 3000, "to_hit": -1, @@ -1690,11 +1783,14 @@ "use_action": "E_COMBATSAW_OFF", "techniques": [ "WBLOCK_1", "SWEEP" ], "flags": [ "ALWAYS_TWOHAND" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -1703,7 +1799,7 @@ "type": "TOOL", "name": { "str": "electric combat chainsaw (on)", "str_pl": "electric combat chainsaws (on)" }, "description": "This electric combat chainsaw is on, and is continuously draining power. Use it to turn it off.", - "to_hit": 1, + "to_hit": -3, "cutting": 82, "power_draw": 2000000, "charges_per_use": 0, diff --git a/data/json/items/melee/unarmed_weapons.json b/data/json/items/melee/unarmed_weapons.json index 9d1c5b3fb21b2..0479d469fe23c 100644 --- a/data/json/items/melee/unarmed_weapons.json +++ b/data/json/items/melee/unarmed_weapons.json @@ -39,7 +39,8 @@ "description": "A metal weapon made of brass, designed to be gripped in the palm and cause punches to do extra damage. A good, quick weapon - but you have to get within punching range to use it.", "material": "brass", "weight": "320 g", - "bashing": 3, + "volume": "250 ml", + "bashing": 4, "price_postapoc": 250, "flags": [ "UNARMED_WEAPON", "DURABLE_MELEE" ] }, @@ -57,7 +58,7 @@ "cutting": 14, "price_postapoc": 500, "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], - "flags": [ "UNARMED_WEAPON" ], + "flags": [ "UNARMED_WEAPON", "STAB" ], "techniques": [ "WBLOCK_1" ] }, { @@ -70,10 +71,10 @@ "material": "wood", "volume": "250 ml", "weight": "430 g", - "bashing": 3, - "cutting": 4, + "bashing": 2, + "cutting": 3, "price_postapoc": 50, - "flags": [ "UNARMED_WEAPON" ] + "flags": [ "UNARMED_WEAPON", "STAB" ] }, { "type": "GENERIC", @@ -85,7 +86,7 @@ "material": "steel", "volume": "250 ml", "weight": "430 g", - "bashing": 3, + "bashing": 4, "price_postapoc": 50, "qualities": [ [ "HAMMER", 1 ] ], "flags": [ "UNARMED_WEAPON" ] diff --git a/data/json/items/migration.json b/data/json/items/migration.json index 53890b6f99216..47e8365c25640 100644 --- a/data/json/items/migration.json +++ b/data/json/items/migration.json @@ -1188,5 +1188,20 @@ "id": "akmbigmag", "type": "MIGRATION", "replace": "akmag40" + }, + { + "id": "rm99_pistol", + "type": "MIGRATION", + "replace": "rm103a_pistol" + }, + { + "id": "8x40_speedloader5", + "type": "MIGRATION", + "replace": "8x40_10_mag" + }, + { + "id": "kevlar_plate", + "type": "MIGRATION", + "replace": "sheet_kevlar_layered" } ] diff --git a/data/json/items/obsolete.json b/data/json/items/obsolete.json index 9d99ac28c28ac..99f652a3e652d 100644 --- a/data/json/items/obsolete.json +++ b/data/json/items/obsolete.json @@ -379,7 +379,7 @@ "clip_size": 100, "valid_mod_locations": [ [ "sling", 1 ], [ "stock", 1 ], [ "rail mount", 1 ] ], "relative": { "reload": 4 }, - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "flammable": 100 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "flammable": 100 }, "watertight": true } ] }, { "type": "effect_type", @@ -422,7 +422,15 @@ "dispersion": 600, "durability": 6, "relative": { "reload": 2 }, - "magazines": [ [ "flammable", [ "aux_pressurized_tank", "pressurized_tank" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "aux_pressurized_tank", "pressurized_tank" ] + } + ] }, { "id": "bio_advreactor", @@ -1054,8 +1062,7 @@ "//": "Milspec, but was deployed in active service implying a reliable IFF", "difficulty": 9, "moves": 250, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -1081,8 +1088,7 @@ "//": "Milspec, clearly designed with little concern for collateral damage. What did you expect of a robo-tank?", "difficulty": 10, "moves": 500, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -1109,8 +1115,7 @@ "//": "Milspec, clearly designed with little concern for collateral damage. What did you expect of a chicken walker?", "difficulty": 10, "moves": 500, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -1135,8 +1140,7 @@ "//": "No observed open deployment, likely a prototype or secret project", "difficulty": 15, "moves": 500, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -1373,7 +1377,7 @@ "ammo": [ "gasoline" ], "charges_per_use": 1, "max_charges": 50, - "techniques": "WBLOCK_2", + "techniques": [ "WBLOCK_2" ], "use_action": { "type": "fireweapon_off", "target_id": "firemachete_on", @@ -1502,7 +1506,7 @@ "ammo": [ "gasoline" ], "charges_per_use": 1, "max_charges": 50, - "techniques": "WBLOCK_2", + "techniques": [ "WBLOCK_2" ], "use_action": { "type": "fireweapon_off", "target_id": "broadfire_on", @@ -1768,12 +1772,11 @@ "blackpowder_tolerance": 32, "loudness": 30, "clip_size": 5, - "magazines": [ [ "223", [ "223_speedloader5" ] ] ], "valid_mod_locations": [ [ "accessories", 2 ], [ "sights", 1 ], [ "underbarrel", 1 ] ], "proportional": { "reload": 0.7 }, "extend": { "flags": [ "RELOAD_ONE", "RELOAD_EJECT", "NEVER_JAMS" ] }, "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 5 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "223": 5 } } ] }, { "id": "223_speedloader5", @@ -1856,9 +1859,17 @@ "location": "underbarrel", "mod_targets": [ "rifle", "shotgun", "smg", "crossbow", "launcher" ], "gun_data": { "ammo": "flammable", "skill": "launcher", "dispersion": 300, "durability": 10 }, - "magazines": [ [ "flammable", [ "aux_pressurized_tank" ] ] ], "min_skills": [ [ "weapon", 2 ], [ "launcher", 1 ] ], - "flags": [ "FIRE_100", "PUMP_RAIL_COMPATIBLE", "NON-FOULING" ] + "flags": [ "FIRE_100", "PUMP_RAIL_COMPATIBLE", "NON-FOULING" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "aux_pressurized_tank" ] + } + ] }, { "type": "recipe", @@ -2239,7 +2250,15 @@ [ "rail mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "nail", [ "nailmag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "nailmag" ] + } + ] }, { "id": "nailrifle", @@ -2263,9 +2282,17 @@ [ "rail mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "nail", [ "nailmag" ] ] ], "relative": { "weight": 1000, "volume": 6, "range": 3, "ranged_damage": { "damage_type": "stab", "amount": 4 } }, - "proportional": { "price": 3, "dispersion": 0.5 } + "proportional": { "price": 3, "dispersion": 0.5 }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "nailmag" ] + } + ] }, { "id": "nailmag", @@ -2281,7 +2308,6 @@ "color": "light_gray", "ammo_type": [ "nail" ], "capacity": 50, - "reliability": 6, "reload_time": 300, "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "nail": 50 } } ] @@ -2634,11 +2660,14 @@ "ammo": [ "battery" ], "charges_per_use": 2, "use_action": "ROBOTCONTROL", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -2678,6 +2707,112 @@ [ "stock", 1 ], [ "underbarrel", 1 ] ], - "magazines": [ [ "545x39", [ "ak74mag", "rpk74mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "ak74mag", "rpk74mag" ] + } + ] + }, + { + "id": "bot_laserturret", + "type": "TOOL", + "name": { "str": "inactive laser turret" }, + "description": "This is an inactive laser turret. Using this item involves turning it on and placing it on the ground, where it will attach itself. If reprogrammed and rewired successfully the turret will identify you as a friendly, and attack all enemies with its revolving laser cannons. It requires sunlight in order to fire.", + "weight": "40750 g", + "volume": "30 L", + "price": 600000, + "price_postapoc": 12000, + "to_hit": -3, + "bashing": 8, + "material": [ "steel", "plastic" ], + "symbol": ";", + "color": "white", + "use_action": { + "type": "place_monster", + "monster_id": "mon_laserturret", + "difficulty": 6, + "moves": 100, + "skills": [ "electronics", "computer" ] + } + }, + { + "type": "GENERIC", + "id": "broken_laserturret", + "symbol": ",", + "color": "green", + "name": { "str": "broken laser turret" }, + "weight": "110 kg", + "copy-from": "broken_turret" + }, + { + "id": "cerberus_laser", + "type": "GENERIC", + "symbol": "(", + "color": "magenta", + "name": { "str": "TX-5LR Laser Cannon" }, + "description": "A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. Unusable as a weapon on its own without the necessary parts.", + "price": 5000000, + "price_postapoc": 1000, + "material": [ "steel", "plastic" ], + "weight": "5000 g", + "volume": "750 ml", + "category": "spare_parts" + }, + { + "id": "laser_cannon", + "looks_like": "ar15", + "type": "GUN", + "reload_noise_volume": 10, + "name": { "str": "handheld laser cannon" }, + "description": "This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret that has been modified to use UPS power for firing.", + "weight": "5140 g", + "volume": "1500 ml", + "price": 400000, + "price_postapoc": 8000, + "to_hit": -1, + "bashing": 4, + "material": [ "steel", "plastic" ], + "symbol": "(", + "color": "magenta", + "skill": "rifle", + "range": 30, + "ranged_damage": { "damage_type": "heat", "amount": 10, "armor_penetration": 4 }, + "dispersion": 90, + "durability": 7, + "loudness": 8, + "ups_charges": 25, + "reload": 200, + "valid_mod_locations": [ + [ "emitter", 1 ], + [ "lens", 1 ], + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "stock mount", 1 ], + [ "underbarrel mount", 1 ] + ], + "ammo_effects": [ "LASER", "INCENDIARY" ], + "flags": [ "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ] + }, + { + "type": "GENERIC", + "id": "bone_plate", + "symbol": "]", + "color": "white", + "name": { "str": "bone armor kit" }, + "description": "Bone plating made for a vehicle.", + "price": 1200, + "price_postapoc": 100, + "material": [ "bone" ], + "weight": "4000 g", + "volume": "9500 ml", + "bashing": 8, + "to_hit": -4, + "category": "veh_parts" } ] diff --git a/data/json/items/ranged/crossbows.json b/data/json/items/ranged/crossbows.json index f46d29e8daa08..c9395de06b927 100644 --- a/data/json/items/ranged/crossbows.json +++ b/data/json/items/ranged/crossbows.json @@ -289,17 +289,17 @@ "symbol": "(", "color": "green", "name": { "str": "bullet crossbow" }, - "description": "A modified version of the classic crossbow which utilizes stones as projectiles instead of the traditional quarrel. Primarily intended for hunting small game, stronger people can reload it much faster.", + "description": "A modified version of the classic crossbow which utilizes stones as projectiles instead of the traditional quarrel. Primarily intended for hunting small game.", "price": 20000, "price_postapoc": 2000, "material": [ "wood", "iron" ], - "flags": [ "STR_RELOAD", "PRIMITIVE_RANGED_WEAPON" ], + "flags": [ "PRIMITIVE_RANGED_WEAPON" ], "skill": "rifle", "ammo": [ "pebble" ], "weight": "1906 g", "volume": "1250 ml", "bashing": 9, - "ranged_damage": { "damage_type": "stab", "amount": 10 }, + "ranged_damage": { "damage_type": "bullet", "amount": 4 }, "range": 10, "dispersion": 55, "durability": 6, @@ -363,12 +363,12 @@ "symbol": "(", "color": "green", "name": { "str": "crossbow" }, - "description": "A slow-loading hand weapon that launches bolts. Stronger people can reload it much faster. Bolts fired from this weapon have a good chance of remaining intact for re-use.", + "description": "A slow-loading hand weapon that launches bolts. Bolts fired from this weapon have a good chance of remaining intact for re-use.", "//2": "150lb @ 10in powerstroke, 34in wood limbs, 37.7J, 0.337 slugs with a 0.066lb bolt", "price": 6000, "price_postapoc": 3500, "material": [ "wood" ], - "flags": "PRIMITIVE_RANGED_WEAPON", + "flags": [ "PRIMITIVE_RANGED_WEAPON" ], "skill": "rifle", "min_strength": 8, "ammo": [ "bolt" ], @@ -399,7 +399,7 @@ "price": 89000, "price_postapoc": 4000, "material": [ "wood", "bone" ], - "flags": "PRIMITIVE_RANGED_WEAPON", + "flags": [ "PRIMITIVE_RANGED_WEAPON" ], "skill": "rifle", "min_strength": 9, "ammo": [ "bolt" ], @@ -439,7 +439,7 @@ "//": "27in Carbon fiber compound crossbow at 17in draw with 20in, 197J, 175 lbs draw, 0.636 Slugs with 300grain quarrels.", "price": 200000, "material": [ "steel", "plastic" ], - "flags": "PRIMITIVE_RANGED_WEAPON", + "flags": [ "PRIMITIVE_RANGED_WEAPON" ], "skill": "rifle", "min_strength": 7, "ammo": [ "bolt" ], diff --git a/data/json/items/ranged/launchers.json b/data/json/items/ranged/launchers.json index 0a93dfd279710..9ae0fd2117b89 100644 --- a/data/json/items/ranged/launchers.json +++ b/data/json/items/ranged/launchers.json @@ -120,6 +120,6 @@ "clip_size": 100, "reload": 0, "valid_mod_locations": [ [ "sling", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "water": 100 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "water": 100 }, "watertight": true } ] } ] diff --git a/data/json/items/ranged/slings.json b/data/json/items/ranged/slings.json index 4da17476d69d1..9dc72701c0bbb 100644 --- a/data/json/items/ranged/slings.json +++ b/data/json/items/ranged/slings.json @@ -6,23 +6,23 @@ "symbol": "(", "color": "brown", "name": { "ctxt": "weapon", "str": "sling" }, - "description": "A leather sling, easy to use and accurate. It uses pebbles as ammunition.", + "description": "A leather sling, can launch rocks much further and faster than throwing them by hand.", "price": 150, "//": "It's little more than a piece of slightly shaped leather", "material": "leather", "flags": [ "RELOAD_AND_SHOOT", "NEVER_JAMS", "PRIMITIVE_RANGED_WEAPON", "BELT_CLIP" ], "skill": "throw", - "ammo": [ "pebble" ], + "ammo": [ "rock" ], "weight": "96 g", "volume": "250 ml", "price_postapoc": 250, "to_hit": -2, - "ranged_damage": { "damage_type": "stab", "amount": 6 }, + "ranged_damage": { "damage_type": "bullet", "amount": 4 }, "range": 8, "dispersion": 150, "durability": 6, "clip_size": 1, - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "pebble": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "rock": 1 } } ] }, { "id": "slingshot", @@ -31,7 +31,7 @@ "symbol": "(", "color": "brown", "name": { "str": "slingshot" }, - "description": "A wooden slingshot, easy to use and accurate. It uses pebbles as ammunition.", + "description": "A forked piece of wood with an elastic band stretched between two of its tips. Can launch tiny pebbles and similar things at high speeds.", "price": 500, "material": "wood", "flags": [ "RELOAD_AND_SHOOT", "NEVER_JAMS", "PRIMITIVE_RANGED_WEAPON", "BELT_CLIP" ], @@ -41,7 +41,7 @@ "volume": "250 ml", "price_postapoc": 50, "to_hit": -2, - "ranged_damage": { "damage_type": "stab", "amount": 3 }, + "ranged_damage": { "damage_type": "bullet", "amount": 3 }, "range": 5, "dispersion": 75, "durability": 6, @@ -56,7 +56,7 @@ "symbol": "(", "color": "brown", "name": { "str": "staff sling" }, - "description": "A leather sling attached to a staff, easy to use and accurate. It uses rocks as ammunition.", + "description": "This staff can launch rocks with a whiping motion that sends them flying much further and faster than throwing them.", "price": 150, "//": "The staff sling,consists of a staff with a short sling at one end. ", "material": [ "wood", "leather" ], @@ -77,7 +77,7 @@ "volume": "3 L", "price_postapoc": 250, "to_hit": 1, - "ranged_damage": { "damage_type": "stab", "amount": 10 }, + "ranged_damage": { "damage_type": "bullet", "amount": 10 }, "bashing": 18, "range": 10, "dispersion": 200, @@ -92,7 +92,7 @@ "symbol": "(", "color": "dark_gray", "name": { "str": "brace slingshot" }, - "description": "A modern slingshot with a wrist brace, it is easy to use, accurate, and quite powerful.", + "description": "A modern slingshot with a wrist brace, allowing it to fire tiny objects slightly more forcefully than a simple wooden slingshot.", "price": 3000, "material": [ "steel", "plastic" ], "flags": [ "RELOAD_AND_SHOOT", "NEVER_JAMS", "PRIMITIVE_RANGED_WEAPON", "BELT_CLIP" ], @@ -102,7 +102,7 @@ "volume": "500 ml", "price_postapoc": 250, "to_hit": -2, - "ranged_damage": { "damage_type": "stab", "amount": 5 }, + "ranged_damage": { "damage_type": "bullet", "amount": 4 }, "range": 8, "dispersion": 45, "durability": 7, diff --git a/data/json/items/ranged/spearguns.json b/data/json/items/ranged/spearguns.json index 41d57a67c799e..6a5cfbc1b43f8 100644 --- a/data/json/items/ranged/spearguns.json +++ b/data/json/items/ranged/spearguns.json @@ -50,7 +50,7 @@ "symbol": "=", "color": "light_gray", "description": "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.", - "material": "iron", + "material": [ "iron" ], "volume": "250 ml", "weight": "28 g", "bashing": 1, @@ -111,7 +111,7 @@ "price": 17500, "price_postapoc": 2000, "material": [ "wood", "plastic" ], - "flags": [ "RELOAD_ONE", "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON-FOULING" ], + "flags": [ "RELOAD_ONE", "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON-FOULING" ], "skill": "rifle", "ammo": [ "fishspear" ], "weight": "3060 g", @@ -147,7 +147,7 @@ "price": 10000, "price_postapoc": 1500, "material": [ "wood", "plastic" ], - "flags": [ "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON-FOULING" ], + "flags": [ "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON-FOULING" ], "skill": "pistol", "ammo": [ "fishspear" ], "weight": "840 g", @@ -180,7 +180,7 @@ "price": 11500, "price_postapoc": 1500, "material": [ "wood", "plastic" ], - "flags": [ "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON-FOULING" ], + "flags": [ "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON-FOULING" ], "skill": "rifle", "ammo": [ "fishspear" ], "weight": "2100 g", diff --git a/data/json/items/resources/fasteners.json b/data/json/items/resources/fasteners.json index fce9f5ee1b587..04b7120455709 100644 --- a/data/json/items/resources/fasteners.json +++ b/data/json/items/resources/fasteners.json @@ -66,7 +66,7 @@ "volume": "2 ml", "price": 100, "price_postapoc": 0, - "material": "cotton", + "material": [ "cotton" ], "symbol": "=", "color": "dark_gray", "ammo_type": "components" diff --git a/data/json/items/resources/home_improvement.json b/data/json/items/resources/home_improvement.json index 8412ee479efaf..9d96a07967eee 100644 --- a/data/json/items/resources/home_improvement.json +++ b/data/json/items/resources/home_improvement.json @@ -105,7 +105,7 @@ "symbol": "}", "color": "red", "description": "A roll of red carpet.", - "material": "cotton", + "material": [ "cotton" ], "volume": "1750 ml", "weight": "45 g", "ammo_type": "NULL", @@ -121,7 +121,7 @@ "symbol": "}", "color": "green", "description": "A roll of green carpet.", - "material": "cotton", + "material": [ "cotton" ], "volume": "1750 ml", "weight": "45 g", "ammo_type": "NULL", @@ -137,7 +137,7 @@ "symbol": "}", "color": "yellow", "description": "A roll of yellow carpet.", - "material": "cotton", + "material": [ "cotton" ], "volume": "1750 ml", "weight": "45 g", "ammo_type": "NULL", @@ -153,7 +153,7 @@ "symbol": "}", "color": "magenta", "description": "A roll of purple carpet.", - "material": "cotton", + "material": [ "cotton" ], "volume": "1750 ml", "weight": "45 g", "ammo_type": "NULL", diff --git a/data/json/items/resources/tailoring.json b/data/json/items/resources/tailoring.json index 948a0bb13adeb..fb6c40c5a3e1f 100644 --- a/data/json/items/resources/tailoring.json +++ b/data/json/items/resources/tailoring.json @@ -9,7 +9,7 @@ "volume": "1 ml", "price": 1, "price_postapoc": 5, - "material": "cotton", + "material": [ "cotton" ], "symbol": "=", "color": "dark_gray", "ammo_type": "components", @@ -106,7 +106,7 @@ "volume": "300 ml", "price": 1000, "price_postapoc": 100, - "material": "cotton", + "material": [ "cotton" ], "symbol": "=", "color": "dark_gray", "count": 100, @@ -185,10 +185,10 @@ "type": "AMMO", "category": "spare_parts", "name": { "str": "Kevlar sheet" }, - "description": "A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. In this form, unlike rigid plates, it can be stitched.", + "description": "A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, durable clothing. In this form, unlike rigid plates, it can be stitched.", "weight": "5 g", "volume": "300 ml", - "price": 15000, + "price": 900, "price_postapoc": 500, "material": "kevlar", "symbol": "=", @@ -212,6 +212,34 @@ "count": 100, "ammo_type": "components" }, + { + "id": "sheet_kevlar_layered", + "type": "TOOL", + "category": "spare_parts", + "name": "layered kevlar panel", + "description": "This is a small 16-layer thick Kevlar panel. It could be used to repair armor made of Kevlar.", + "weight": "80 g", + "volume": "600 ml", + "price": 15000, + "material": "kevlar_layered", + "flags": [ "NO_SALVAGE" ], + "symbol": ",", + "color": "green" + }, + { + "id": "rigid_kevlar_plate", + "type": "TOOL", + "category": "spare_parts", + "name": "rigid kevlar plate", + "description": "This is a compressed panel of kevlar treated with epoxy or other adhesive. It could be used to repair items made of Kevlar.", + "weight": "300 g", + "volume": "250 ml", + "price": 1000, + "material": "kevlar_rigid", + "flags": [ "NO_SALVAGE" ], + "symbol": ",", + "color": "green" + }, { "id": "sheet_lycra_patchwork", "copy-from": "sheet_lycra", diff --git a/data/json/items/resources/wood.json b/data/json/items/resources/wood.json index 1be4109c8756e..c3f604da1ed84 100644 --- a/data/json/items/resources/wood.json +++ b/data/json/items/resources/wood.json @@ -10,8 +10,9 @@ "price": 10000, "price_postapoc": 10, "material": "wood", - "weight": "9071 g", + "weight": "6 kg", "volume": "10 L", + "longest_side": "140 cm", "bashing": 10, "to_hit": -10, "flags": [ "FIREWOOD" ] @@ -25,8 +26,9 @@ "description": "A splintered piece of wood, could be used as a skewer or for kindling.", "category": "other", "material": "wood", - "weight": "225 g", + "weight": "150 g", "volume": "250 ml", + "longest_side": "30 cm", "bashing": 4, "to_hit": 1, "qualities": [ [ "COOK", 1 ] ], @@ -37,13 +39,14 @@ "id": "stick", "symbol": "/", "color": "brown", - "name": { "str": "heavy stick" }, - "description": "A sturdy, heavy stick. Makes a decent melee weapon.", + "name": { "str": "stout branch", "str_pl": "stout branches" }, + "description": "A respectable length of tree branch, just big enough to wrap your hand around. Makes a decent melee weapon.", "material": "wood", "techniques": [ "WBLOCK_1" ], "flags": [ "TRADER_AVOID", "FIREWOOD" ], - "weight": "1700 g", - "volume": "1250 ml", + "weight": "1500 g", + "volume": "2500 ml", + "longest_side": "130 cm", "bashing": 14, "to_hit": -1, "category": "spare_parts" @@ -53,13 +56,14 @@ "id": "stick_long", "symbol": "/", "color": "brown", - "name": { "str": "long stick" }, - "description": "A long stick. Makes a decent melee weapon, and can be broken into heavy sticks for crafting.", + "name": { "str": "long stout branch", "str_pl": "long stout branches" }, + "description": "A straight section of wood from a tree branch, about eight feet long and a couple of inches in diameter. Makes a decent melee weapon, and can be broken into shorter pieces for crafting.", "material": "wood", "techniques": [ "WBLOCK_1" ], "flags": [ "TRADER_AVOID", "FIREWOOD" ], - "weight": "3400 g", - "volume": "2500 ml", + "weight": "3000 g", + "volume": "5000 ml", + "longest_side": "260 cm", "looks_like": "stick", "bashing": 18, "to_hit": -1, @@ -76,9 +80,10 @@ "color": "brown", "symbol": "/", "material": [ "wood" ], - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "weight": "2250 g", "volume": "3750 ml", + "longest_side": "305 cm", "bashing": 19, "flags": [ "POLEARM", "SPEAR", "REACH_ATTACK", "REACH3", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ], "price": 4000, @@ -91,13 +96,14 @@ "name": { "str": "plank" }, "description": "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional lumber. Makes a decent melee weapon, and can be used for all kinds construction.", "category": "spare_parts", - "weight": "2200 g", + "weight": "2600 g", "to_hit": 1, "color": "brown", "symbol": "/", "material": [ "wood" ], "techniques": [ "WBLOCK_1" ], "volume": "4400 ml", + "longest_side": "130 cm", "bashing": 10, "price": 1000, "price_postapoc": 10, @@ -109,9 +115,10 @@ "name": { "str": "heavy wooden beam" }, "description": "An enormous beam of solid wood, very heavy and hard to lug around, but also very sturdy for construction. You could saw or chop it into smaller pieces, like planks or panels.", "category": "spare_parts", + "//": "weight for a roughly 6x6x8 wooden beam at 0.60 g/cm3 density.", "weight": "36000 g", "volume": "60000 ml", - "//": "weight for a roughly 6x6x8 wooden beam. Probably a bit small tbh.", + "longest_side": "244 cm", "to_hit": -2, "color": "brown", "symbol": "/", @@ -126,16 +133,17 @@ "id": "wood_panel", "name": { "str": "wooden panel" }, "description": "A wide, thin wooden board - plywood, OSB, MDF, tongue-in-groove boards, or similar, already cut to shape. These large flat boards are good for all kinds of construction, but for really big projects you'd need a proper sheet of uncut plywood or the like.", - "//": "Weight and volume assumes 18 square feet of 1/2 inch plywood. The actual size of the panel likely varies wildly and the item entry may represent several smaller pieces.", + "//": "Weight and volume assumes 16 square feet of 1/2 inch plywood. The actual size of the panel likely varies wildly and the item entry may represent several smaller pieces.", "category": "spare_parts", - "weight": "15000 g", + "weight": "12 kg", + "longest_side": "122 cm", "to_hit": 1, "color": "brown", "looks_like": "2x4", "symbol": "H", "material": [ "wood" ], "techniques": [ "WBLOCK_1" ], - "volume": "3 L", + "volume": "19 L", "bashing": 8, "price": 8000, "price_postapoc": 10, @@ -148,13 +156,14 @@ "description": "A standard 4x8 sheet of flat wood - usually plywood, OSB, or MDF. Heavy and bulky, this is extremely useful for all manner of construction, but you might have to cut it to size before doing smaller projects.", "//": "Weight and volume assumes 32 square feet of 1/2 inch plywood. Due to its enormously bulky shape, volume is higher than actual displacement volume", "category": "spare_parts", - "weight": "20000 g", + "weight": "24 kg", "to_hit": 1, "color": "brown", "symbol": "H", "material": [ "wood" ], "techniques": [ "WBLOCK_1" ], - "volume": "6250 ml", + "volume": "38 L", + "longest_side": "244 cm", "bashing": 8, "price": 20000, "price_postapoc": 10, diff --git a/data/json/items/tool/cooking.json b/data/json/items/tool/cooking.json index 1f281bf9c2aa4..adab1c4857ff3 100644 --- a/data/json/items/tool/cooking.json +++ b/data/json/items/tool/cooking.json @@ -83,11 +83,14 @@ "charges_per_use": 5, "use_action": "CARVER_OFF", "flags": [ "SHEATH_SWORD", "NONCONDUCTIVE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -233,11 +236,14 @@ "charges_per_use": 10, "qualities": [ [ "BOIL", 1 ] ], "use_action": "HOTPLATE", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -256,11 +262,14 @@ "color": "blue", "ammo": [ "battery" ], "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -351,11 +360,14 @@ "color": "white", "ammo": [ "battery" ], "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -449,11 +461,14 @@ "ammo": [ "battery" ], "charges_per_use": 5, "use_action": "HOTPLATE", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -541,11 +556,14 @@ "color": "white", "ammo": [ "battery" ], "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -567,11 +585,14 @@ "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", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -651,11 +672,14 @@ "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", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -691,11 +715,14 @@ "power_draw": 1500000, "qualities": [ [ "CONTAIN", 1 ] ], "use_action": "MULTICOOKER", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -739,7 +766,7 @@ "price_postapoc": 100, "to_hit": 2, "bashing": 10, - "material": "iron", + "material": [ "iron" ], "symbol": ")", "color": "dark_gray" }, @@ -949,11 +976,14 @@ "color": "white", "ammo": [ "battery" ], "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -968,7 +998,7 @@ "price_postapoc": 10, "to_hit": 2, "bashing": 10, - "material": "iron", + "material": [ "iron" ], "symbol": ")", "color": "dark_gray", "qualities": [ [ "COOK", 1 ] ] @@ -991,10 +1021,13 @@ "charges_per_use": 1, "use_action": "WATER_PURIFIER", "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -1003,7 +1036,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] } ] diff --git a/data/json/items/tool/electronics.json b/data/json/items/tool/electronics.json index 74026e2c8346e..d8bac7c76361d 100644 --- a/data/json/items/tool/electronics.json +++ b/data/json/items/tool/electronics.json @@ -14,7 +14,7 @@ "symbol": ";", "color": "light_green", "ammo": [ "plutonium" ], - "max_charges": 2500, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "plutonium": 2500 } } ], "flags": [ "IS_UPS" ] }, { @@ -33,10 +33,13 @@ "ammo": [ "battery" ], "charges_per_use": 5, "use_action": "CAMERA", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_minus_battery_cell", "light_battery_cell", @@ -45,7 +48,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -65,10 +68,13 @@ "charges_per_use": 5, "use_action": "CAMERA", "flags": [ "CAMERA_PRO", "ALWAYS_TWOHAND" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_minus_battery_cell", "light_battery_cell", @@ -77,7 +83,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -103,10 +109,13 @@ "type": "transform" }, "flags": [ "WATCH", "ALARMCLOCK" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_minus_battery_cell", "light_minus_disposable_cell", @@ -115,7 +124,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -179,10 +188,13 @@ "charges_per_use": 1, "use_action": "EINKTABLETPC", "flags": [ "WATCH" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell", @@ -191,7 +203,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -210,10 +222,13 @@ "symbol": ",", "color": "green", "ammo": [ "battery" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -222,7 +237,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -241,10 +256,13 @@ "ammo": [ "battery" ], "charges_per_use": 1, "use_action": "GEIGER", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -253,7 +271,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -282,10 +300,13 @@ "color": "light_gray", "ammo": [ "battery" ], "use_action": "HAND_CRANK", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -294,7 +315,7 @@ "heavy_battery_cell", "heavy_plus_battery_cell" ] - ] + } ] }, { @@ -326,11 +347,14 @@ } ], "flags": [ "WATCH" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -358,10 +382,13 @@ "ammo": [ "battery" ], "use_action": "MP3", "charges_per_use": 1, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -370,7 +397,7 @@ "light_disposable_cell", "light_minus_disposable_cell" ] - ] + } ] }, { @@ -402,10 +429,13 @@ "charges_per_use": 1, "use_action": "NOISE_EMITTER_OFF", "flags": [ "RADIO_MODABLE" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -414,7 +444,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -442,10 +472,13 @@ "color": "light_gray", "ammo": [ "battery" ], "use_action": "PORTABLE_GAME", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_disposable_cell", "light_minus_disposable_cell", "light_battery_cell", @@ -454,7 +487,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -529,10 +562,16 @@ "symbol": ";", "color": "light_gray", "ammo": [ "battery" ], - "magazines": [ - [ "battery", [ "heavy_plus_battery_cell", "heavy_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] - ], - "flags": [ "IS_UPS" ] + "flags": [ "IS_UPS" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "heavy_plus_battery_cell", "heavy_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] + } + ] }, { "id": "vibrator", @@ -549,10 +588,13 @@ "ammo": [ "battery" ], "charges_per_use": 10, "use_action": "VIBE", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -561,7 +603,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] } ] diff --git a/data/json/items/tool/entry_tools.json b/data/json/items/tool/entry_tools.json index 8c6de6bb8f256..83cd22c6fe5d9 100644 --- a/data/json/items/tool/entry_tools.json +++ b/data/json/items/tool/entry_tools.json @@ -32,7 +32,7 @@ "symbol": ";", "color": "light_gray", "qualities": [ [ "LOCKPICK", 3 ] ], - "use_action": { "type": "picklock", "pick_quality": 3 } + "use_action": "PICK_LOCK" }, { "id": "iceaxe", @@ -87,7 +87,7 @@ "symbol": ";", "color": "light_gray", "qualities": [ [ "LOCKPICK", 5 ] ], - "use_action": { "type": "picklock", "pick_quality": 5 } + "use_action": "PICK_LOCK" }, { "id": "pseudo_bio_picklock", @@ -99,11 +99,7 @@ "price_postapoc": 0, "symbol": ";", "color": "light_gray", - "initial_charges": 1, - "max_charges": 1, - "charges_per_use": 1, "qualities": [ [ "LOCKPICK", 40 ] ], - "flags": [ "PSEUDO" ], - "use_action": { "type": "picklock", "pick_quality": 40 } + "flags": [ "PSEUDO", "PERFECT_LOCKPICK" ] } ] diff --git a/data/json/items/tool/fire.json b/data/json/items/tool/fire.json index ef4739f96a145..97ebec9a3282b 100644 --- a/data/json/items/tool/fire.json +++ b/data/json/items/tool/fire.json @@ -14,10 +14,14 @@ "ammo": [ "battery" ], "charges_per_use": 5, "use_action": { "type": "firestarter" }, - "magazines": [ - [ - "battery", - [ + "flags": [ "FIRESTARTER" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_minus_battery_cell", "light_plus_battery_cell", @@ -26,9 +30,8 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] - ], - "flags": [ "FIRESTARTER" ] + } + ] }, { "id": "fire_drill", @@ -100,8 +103,9 @@ "rand_charges": [ 1, 10, 12, 15, 16, 22, 44, 50, 67, 75, 82, 100 ], "max_charges": 100, "charges_per_use": 1, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "butane": 100 } } ], "use_action": { "type": "firestarter", "moves": 50 }, - "flags": [ "FIRESTARTER" ] + "flags": [ "FIRESTARTER", "NO_UNLOAD" ] }, { "id": "magnifying_glass", @@ -134,8 +138,9 @@ "initial_charges": 20, "max_charges": 20, "charges_per_use": 1, + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "match": 20 } } ], "use_action": { "type": "firestarter", "moves": 40, "moves_slow": 1000 }, - "flags": [ "FIRESTARTER" ] + "flags": [ "FIRESTARTER", "NO_RELOAD", "NO_UNLOAD" ] }, { "id": "ref_lighter", diff --git a/data/json/items/tool/firefighting.json b/data/json/items/tool/firefighting.json index 2b00e0ea029ce..17eaee6abea34 100644 --- a/data/json/items/tool/firefighting.json +++ b/data/json/items/tool/firefighting.json @@ -14,9 +14,9 @@ "techniques": [ "WBLOCK_1" ], "weight": "907 g", "volume": "1 L", - "bashing": 14, - "cutting": 8, - "to_hit": -1, + "bashing": 17, + "cutting": 28, + "to_hit": -2, "flags": [ "DURABLE_MELEE", "BELT_CLIP", "NONCONDUCTIVE", "SHEATH_AXE" ], "qualities": [ [ "AXE", 2 ], [ "CUT", 1 ], [ "PRY", 2 ], [ "BUTCHER", 16 ] ] }, @@ -48,8 +48,8 @@ "volume": "2 L", "price": 20000, "price_postapoc": 1500, - "bashing": 21, - "cutting": 35, + "bashing": 17, + "cutting": 34, "material": [ "steel", "wood" ], "symbol": "/", "color": "light_gray", @@ -130,7 +130,7 @@ "volume": "3250 ml", "bashing": 20, "cutting": 6, - "to_hit": 2, + "to_hit": -1, "qualities": [ [ "COOK", 1 ] ] }, { @@ -149,7 +149,7 @@ "volume": "1900 ml", "bashing": 15, "cutting": 13, - "to_hit": 1, + "to_hit": -1, "qualities": [ [ "PRY", 3 ], [ "HAMMER", 1 ], [ "DIG", 1 ] ], "use_action": [ "HAMMER", "CROWBAR" ] } diff --git a/data/json/items/tool/landscaping.json b/data/json/items/tool/landscaping.json index 63a2b0a58a354..214d5a3d61fd8 100644 --- a/data/json/items/tool/landscaping.json +++ b/data/json/items/tool/landscaping.json @@ -50,7 +50,7 @@ "symbol": "/", "color": "brown", "qualities": [ [ "DIG", 1 ] ], - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "use_action": "MAKEMOUND" }, { diff --git a/data/json/items/tool/lighting.json b/data/json/items/tool/lighting.json index 49318327ef0c6..5f61fa3d54806 100644 --- a/data/json/items/tool/lighting.json +++ b/data/json/items/tool/lighting.json @@ -161,10 +161,13 @@ "need_charges_msg": "The lantern has no batteries." }, "flags": [ "RADIO_MODABLE", "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_battery_cell", "light_minus_disposable_cell", "light_minus_atomic_battery_cell", @@ -173,7 +176,7 @@ "light_plus_battery_cell", "light_atomic_battery_cell" ] - ] + } ] }, { @@ -208,10 +211,14 @@ "need_charges": 1, "need_charges_msg": "The flashlight's batteries are dead." }, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "rigid": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_disposable_cell", "light_minus_disposable_cell", "light_battery_cell", @@ -220,7 +227,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -343,7 +350,8 @@ "volume": "250 ml", "price": 400, "price_postapoc": 100, - "max_charges": 300, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "flare_nitrate": 300 } } ], + "ammo": "flare_nitrate", "initial_charges": 300, "use_action": { "menu_text": "Strike the striker", @@ -389,10 +397,14 @@ "need_charges": 1, "need_charges_msg": "The heavy duty flashlight's batteries are dead." }, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "rigid": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_disposable_cell", "light_minus_disposable_cell", "light_plus_battery_cell", @@ -401,7 +413,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -460,10 +472,13 @@ "need_charges": 1, "type": "transform" }, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -472,7 +487,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -537,7 +552,15 @@ "need_charges": 1, "need_charges_msg": "The %s must be attached to a gas cylinder to light." }, - "magazines": [ [ "weldgas", [ "weldtank", "tinyweldtank" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "weldtank", "tinyweldtank" ] + } + ] }, { "id": "oxylamp_on", @@ -571,7 +594,15 @@ "need_charges_msg": "The reading light winks out.", "type": "transform" }, - "magazines": [ [ "battery", [ "light_minus_disposable_cell", "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_disposable_cell", "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] + } + ] }, { "id": "reading_light_on", @@ -609,10 +640,13 @@ "type": "transform" }, "flags": [ "RADIO_ACTIVATION", "RADIOSIGNAL_2" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -621,7 +655,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { diff --git a/data/json/items/tool/med.json b/data/json/items/tool/med.json index 217a5847c2c7b..7f07235add427 100644 --- a/data/json/items/tool/med.json +++ b/data/json/items/tool/med.json @@ -13,10 +13,9 @@ "symbol": "!", "color": "cyan", "ammo": [ "anesthetic" ], - "initial_charges": 3000, - "max_charges": 3000, "flags": [ "IRREPLACEABLE_CONSUMABLE" ], - "qualities": [ [ "ANESTHESIA", 1 ] ] + "qualities": [ [ "ANESTHESIA", 1 ] ], + "pocket_data": [ { "watertight": true, "rigid": true, "pocket_type": "MAGAZINE", "ammo_restriction": { "anesthetic": 3000 } } ] }, { "id": "autoclave", @@ -37,8 +36,14 @@ "power_draw": 1500000, "looks_like": "microwave", "ammo": [ "battery" ], - "magazines": [ - [ "battery", [ "heavy_plus_battery_cell", "heavy_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "heavy_plus_battery_cell", "heavy_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] + } ] }, { @@ -54,10 +59,11 @@ "material": "plastic", "symbol": "!", "color": "light_blue", - "max_charges": 100, "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "airtight": true, "watertight": true, "ammo_restriction": { "albuterol": 100 } } ], + "max_charges": 100, "charges_per_use": 1, - "flags": [ "IRREPLACEABLE_CONSUMABLE" ], + "flags": [ "NO_UNLOAD", "NO_RELOAD" ], "use_action": "INHALER" }, { @@ -92,7 +98,7 @@ "material": "steel", "symbol": ",", "color": "light_gray", - "techniques": "PRECISE", + "techniques": [ "PRECISE" ], "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 3 ] ], "flags": [ "SPEAR" ] }, @@ -160,6 +166,7 @@ "symbol": ";", "color": "light_gray", "initial_charges": 24, + "pocket_data": [ { "pocket_type": "MAGAZINE", "airtight": true, "watertight": true, "ammo_restriction": { "oxygen": 24 } } ], "max_charges": 24, "charges_per_use": 1, "use_action": "OXYGEN_BOTTLE" diff --git a/data/json/items/tool/metalworking.json b/data/json/items/tool/metalworking.json index cef7d4dec354f..af78c3eb16c9b 100644 --- a/data/json/items/tool/metalworking.json +++ b/data/json/items/tool/metalworking.json @@ -10,7 +10,7 @@ "price_postapoc": 2000, "to_hit": -5, "bashing": 40, - "material": "iron", + "material": [ "iron" ], "symbol": ";", "color": "dark_gray", "qualities": [ [ "ANVIL", 3 ] ], @@ -152,8 +152,14 @@ "color": "light_gray", "ammo": [ "battery" ], "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] + } ] }, { @@ -229,7 +235,7 @@ "volume": "500 ml", "price": 1000, "price_postapoc": 500, - "material": "iron", + "material": [ "iron" ], "symbol": ",", "color": "light_gray", "flags": [ "NO_SALVAGE" ] diff --git a/data/json/items/tool/misc.json b/data/json/items/tool/misc.json index b7d879665020a..8c52b89d6ff33 100644 --- a/data/json/items/tool/misc.json +++ b/data/json/items/tool/misc.json @@ -99,12 +99,6 @@ "price_postapoc": 100, "material": "plastic", "ammo": [ "battery" ], - "magazines": [ - [ - "battery", - [ "light_minus_battery_cell", "light_minus_disposable_cell", "light_battery_cell", "light_disposable_cell" ] - ] - ], "charges_per_use": 1, "max_charges": 100, "use_action": { @@ -114,7 +108,16 @@ "need_charges": 1, "need_charges_msg": "The dab pen's batteries need more charge.", "type": "transform" - } + }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_battery_cell", "light_minus_disposable_cell", "light_battery_cell", "light_disposable_cell" ] + } + ] }, { "type": "TOOL", @@ -132,12 +135,6 @@ "ammo": [ "battery" ], "power_draw": 9000, "revert_to": "dab_pen", - "magazines": [ - [ - "battery", - [ "light_minus_battery_cell", "light_minus_disposable_cell", "light_battery_cell", "light_disposable_cell" ] - ] - ], "charges_per_use": 1, "max_charges": 100, "use_action": { @@ -147,7 +144,16 @@ "need_charges": 0, "need_charges_msg": "The dab pen's batteries need more charge.", "type": "transform" - } + }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_battery_cell", "light_minus_disposable_cell", "light_battery_cell", "light_disposable_cell" ] + } + ] }, { "id": "e_tool", @@ -335,21 +341,6 @@ "symbol": ";", "color": "light_gray" }, - { - "id": "kevlar_plate", - "type": "TOOL", - "category": "spare_parts", - "name": { "str": "Kevlar plate" }, - "description": "This is a plate of reinforced Kevlar. It could be used to repair items made of Kevlar.", - "weight": "300 g", - "volume": "250 ml", - "price": 1000, - "price_postapoc": 25, - "material": "kevlar", - "symbol": ",", - "color": "green", - "flags": [ "NO_SALVAGE" ] - }, { "id": "large_space_heater", "type": "TOOL", @@ -375,8 +366,14 @@ "menu_text": "Turn on", "type": "transform" }, - "magazines": [ - [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] + } ] }, { @@ -416,7 +413,7 @@ "type": "GENERIC", "name": { "str": "makeshift glaive" }, "//": "Name changed to glaive, but changing the id would break e.g. tilesets.", - "description": "This is a large blade attached to a long stick. It could do a considerable amount of damage.", + "description": "This is a large blade attached to a stout section of tree branch. It could do a considerable amount of damage.", "weight": "1800 g", "volume": "3 L", "price": 5000, @@ -427,7 +424,7 @@ "material": [ "steel", "wood" ], "symbol": "/", "color": "light_gray", - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -42 ] ], "flags": [ "REACH_ATTACK", "POLEARM", "NONCONDUCTIVE", "SHEATH_SPEAR", "FRAGILE_MELEE" ] }, @@ -594,11 +591,14 @@ "menu_text": "Turn on", "type": "transform" }, - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -809,6 +809,28 @@ "charges_per_use": 1, "use_action": "VORTEX" }, + { + "id": "sandbox_kit", + "type": "TOOL", + "name": { "str": "sandbox kit" }, + "description": "A plastic bucket holding a small spade and rake, perfect to build sand castles!", + "weight": "250 g", + "volume": "1 L", + "price": 300, + "price_postapoc": 3, + "material": "plastic", + "symbol": "u", + "color": "red", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "rigid": true, + "open_container": true, + "max_contains_volume": "1 L", + "max_contains_weight": "2 kg" + } + ] + }, { "id": "whistle_multitool", "type": "TOOL", diff --git a/data/json/items/tool/musical_instruments.json b/data/json/items/tool/musical_instruments.json index 95fc4902dfd28..2070a6aa6333b 100644 --- a/data/json/items/tool/musical_instruments.json +++ b/data/json/items/tool/musical_instruments.json @@ -15,7 +15,6 @@ "symbol": "|", "color": "white", "initial_charges": 1, - "max_charges": 1, "use_action": { "type": "musical_instrument", "volume": 18, @@ -45,7 +44,6 @@ "symbol": "-", "color": "white", "initial_charges": 1, - "max_charges": 1, "use_action": { "type": "musical_instrument", "volume": 12, @@ -77,7 +75,6 @@ "symbol": "|", "color": "light_gray", "initial_charges": 1, - "max_charges": 1, "use_action": { "type": "musical_instrument", "volume": 14, @@ -107,7 +104,6 @@ "symbol": "-", "color": "light_gray", "initial_charges": 1, - "max_charges": 1, "use_action": { "type": "musical_instrument", "volume": 12, @@ -138,7 +134,6 @@ "symbol": "-", "color": "yellow", "initial_charges": 1, - "max_charges": 1, "use_action": { "type": "musical_instrument", "volume": 21, @@ -169,7 +164,6 @@ "symbol": "(", "color": "brown", "initial_charges": 1, - "max_charges": 1, "use_action": { "type": "musical_instrument", "volume": 16, @@ -200,7 +194,6 @@ "symbol": "}", "color": "brown", "initial_charges": 1, - "max_charges": 1, "use_action": { "type": "musical_instrument", "volume": 18, @@ -231,7 +224,6 @@ "symbol": "}", "color": "yellow", "initial_charges": 1, - "max_charges": 1, "use_action": { "type": "musical_instrument", "volume": 25, diff --git a/data/json/items/tool/pets.json b/data/json/items/tool/pets.json index 155aef4f5373a..cce57412bafed 100644 --- a/data/json/items/tool/pets.json +++ b/data/json/items/tool/pets.json @@ -13,7 +13,7 @@ "material": [ "steel" ], "symbol": "#", "color": "light_gray", - "properties": [ [ "monster_size_capacity", "TINY" ] ], + "properties": [ [ "creature_size_capacity", "TINY" ] ], "use_action": "CAPTURE_MONSTER_ACT", "flags": [ "TRADER_AVOID" ] }, @@ -98,7 +98,7 @@ "material": [ "steel", "plastic" ], "symbol": "#", "color": "light_gray", - "properties": [ [ "monster_size_capacity", "SMALL" ] ], + "properties": [ [ "creature_size_capacity", "SMALL" ] ], "use_action": "CAPTURE_MONSTER_ACT", "flags": [ "TRADER_AVOID" ] }, diff --git a/data/json/items/tool/radio_tools.json b/data/json/items/tool/radio_tools.json index 56dfda2091dee..dfc48792c1cc3 100644 --- a/data/json/items/tool/radio_tools.json +++ b/data/json/items/tool/radio_tools.json @@ -27,10 +27,13 @@ "turns_per_charge": 5, "proportional": { "weight": 0.21, "volume": 0.25, "price": 0.2 }, "use_action": "RADIOCONTROL", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_disposable_cell", "light_minus_disposable_cell", "light_battery_cell", @@ -39,7 +42,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -54,7 +57,15 @@ "proportional": { "weight": 0.73, "volume": 0.75, "price": 0.8 }, "use_action": "RADIOCAR", "flags": [ "RADIO_CONTAINER" ], - "magazines": [ [ "battery", [ "light_minus_disposable_cell", "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_disposable_cell", "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] + } + ] }, { "id": "radio_car_on", @@ -99,10 +110,13 @@ "ammo": [ "battery" ], "charges_per_use": 1, "use_action": "RADIO_OFF", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_disposable_cell", "light_minus_disposable_cell", "light_battery_cell", @@ -111,7 +125,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -141,10 +155,13 @@ "ammo": [ "battery" ], "charges_per_use": 1, "flags": [ "TWO_WAY_RADIO" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_disposable_cell", "light_minus_disposable_cell", "light_battery_cell", @@ -153,7 +170,7 @@ "light_atomic_battery_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -173,10 +190,13 @@ "charges_per_use": 1, "turns_per_charge": 10, "use_action": "REMOTEVEH", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -185,7 +205,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] } ] diff --git a/data/json/items/tool/science.json b/data/json/items/tool/science.json index 6ade64bd77ec3..22d7cde9d3ce0 100644 --- a/data/json/items/tool/science.json +++ b/data/json/items/tool/science.json @@ -54,11 +54,14 @@ "charges_per_use": 1, "qualities": [ [ "DISTILL", 1 ], [ "CHEM", 3 ], [ "BOIL", 1 ] ], "use_action": "HOTPLATE", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -90,11 +93,14 @@ "material": [ "steel", "copper", "plastic" ], "symbol": ";", "ammo": [ "battery" ], - "magazines": [ - [ - "battery", - [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery", "storage_battery" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "25 L", + "max_contains_weight": "200 kg", + "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery", "storage_battery" ] + } ] }, { @@ -106,7 +112,6 @@ "weight": "40860 g", "ammo": [ "battery" ], "charges_per_use": 1, - "magazines": [ [ "battery", [ "large_storage_battery", "storage_battery" ] ] ], "volume": "27 L", "price": 100000, "to_hit": -10, @@ -114,7 +119,16 @@ "material": "steel", "symbol": "E", "flags": [ "ALLOWS_REMOTE_USE" ], - "color": "dark_gray" + "color": "dark_gray", + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "large_storage_battery", "storage_battery" ] + } + ] }, { "id": "vac_oven_small_full", @@ -130,7 +144,6 @@ "material": "steel", "ammo": [ "battery" ], "charges_per_use": 1, - "magazines": [ [ "battery", [ "large_storage_battery", "storage_battery" ] ] ], "symbol": "E", "color": "dark_gray", "use_action": { @@ -141,7 +154,16 @@ "need_charges_msg": "The vacuum oven's batteries need more charge.", "type": "transform" }, - "flags": [ "TRADER_AVOID", "ALLOWS_REMOTE_USE" ] + "flags": [ "TRADER_AVOID", "ALLOWS_REMOTE_USE" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "large_storage_battery", "storage_battery" ] + } + ] }, { "id": "vac_oven_small_on", @@ -158,7 +180,6 @@ "power_draw": 120000, "revert_to": "vac_oven_small_full", "charges_per_use": 1, - "magazines": [ [ "battery", [ "large_storage_battery", "storage_battery" ] ] ], "material": "steel", "symbol": "E", "color": "dark_gray", @@ -171,7 +192,16 @@ "transform_age": 259200, "not_ready_msg": "The vacuum oven is still purging." }, - "flags": [ "TRADER_AVOID", "NO_UNLOAD", "ALLOWS_REMOTE_USE" ] + "flags": [ "TRADER_AVOID", "NO_UNLOAD", "ALLOWS_REMOTE_USE" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "large_storage_battery", "storage_battery" ] + } + ] }, { "id": "vac_oven_small_done", @@ -186,11 +216,19 @@ "bashing": 10, "ammo": [ "battery" ], "charges_per_use": 1, - "magazines": [ [ "battery", [ "large_storage_battery", "storage_battery" ] ] ], "material": "steel", "symbol": "E", "color": "dark_gray", - "flags": [ "TRADER_AVOID", "ALLOWS_REMOTE_USE" ] + "flags": [ "TRADER_AVOID", "ALLOWS_REMOTE_USE" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "large_storage_battery", "storage_battery" ] + } + ] }, { "id": "closed_loop_extractor_small", @@ -219,10 +257,14 @@ "need_charges_msg": "The small closed loop extractor's batteries need more charge.", "type": "transform" }, - "magazines": [ - [ - "battery", - [ + "qualities": [ [ "EXTRACT", 2 ] ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_disposable_cell", @@ -236,9 +278,8 @@ "large_storage_battery", "storage_battery" ] - ] - ], - "qualities": [ [ "EXTRACT", 2 ] ] + } + ] }, { "id": "closed_loop_extractor_small_on", @@ -267,10 +308,14 @@ "need_charges_msg": "The small closed loop extractor's batteries need more charge.", "type": "transform" }, - "magazines": [ - [ - "battery", - [ + "qualities": [ [ "EXTRACT", 2 ] ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_disposable_cell", @@ -284,9 +329,8 @@ "large_storage_battery", "storage_battery" ] - ] - ], - "qualities": [ [ "EXTRACT", 2 ] ] + } + ] }, { "id": "closed_loop_extractor_large", @@ -305,10 +349,23 @@ "flags": [ "ALLOWS_REMOTE_USE", "TRADER_AVOID" ], "ammo": [ "battery" ], "charges_per_use": 1, - "magazines": [ - [ - "battery", - [ + "use_action": { + "target": "closed_loop_extractor_large_on", + "msg": "You turn on the large closed loop extractor.", + "menu_text": "turn on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The large closed loop extractor's batteries need more charge.", + "type": "transform" + }, + "qualities": [ [ "EXTRACT", 1 ] ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_disposable_cell", @@ -322,18 +379,8 @@ "large_storage_battery", "storage_battery" ] - ] - ], - "use_action": { - "target": "closed_loop_extractor_large_on", - "msg": "You turn on the large closed loop extractor.", - "menu_text": "turn on", - "active": true, - "need_charges": 1, - "need_charges_msg": "The large closed loop extractor's batteries need more charge.", - "type": "transform" - }, - "qualities": [ [ "EXTRACT", 1 ] ] + } + ] }, { "id": "closed_loop_extractor_large_on", @@ -354,10 +401,22 @@ "power_draw": 1500000, "revert_to": "closed_loop_extractor_large", "charges_per_use": 1, - "magazines": [ - [ - "battery", - [ + "use_action": { + "target": "closed_loop_extractor_large", + "msg": "You turn off the large closed loop extractor.", + "menu_text": "turn off", + "need_charges": 0, + "need_charges_msg": "The large closed loop extractor's batteries need more charge.", + "type": "transform" + }, + "qualities": [ [ "EXTRACT", 1 ] ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_disposable_cell", @@ -371,17 +430,8 @@ "large_storage_battery", "storage_battery" ] - ] - ], - "use_action": { - "target": "closed_loop_extractor_large", - "msg": "You turn off the large closed loop extractor.", - "menu_text": "turn off", - "need_charges": 0, - "need_charges_msg": "The large closed loop extractor's batteries need more charge.", - "type": "transform" - }, - "qualities": [ [ "EXTRACT", 1 ] ] + } + ] }, { "id": "oil_extractor_crude", @@ -444,7 +494,7 @@ "price": 300000, "to_hit": -5, "bashing": 10, - "material": "iron", + "material": [ "iron" ], "flags": [ "ALLOWS_REMOTE_USE" ], "ammo": [ "battery" ], "charges_per_use": 1, @@ -457,10 +507,13 @@ "need_charges_msg": "The vacuum pump's batteries need more charge.", "type": "transform" }, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_disposable_cell", @@ -474,7 +527,7 @@ "large_storage_battery", "storage_battery" ] - ] + } ] }, { @@ -490,7 +543,7 @@ "price": 200000, "to_hit": -5, "bashing": 10, - "material": "iron", + "material": [ "iron" ], "ammo": [ "battery" ], "power_draw": 600000, "charges_per_use": 1, @@ -505,10 +558,13 @@ "need_charges_msg": "The vacuum pump's batteries need more charge.", "type": "transform" }, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_disposable_cell", @@ -522,7 +578,7 @@ "large_storage_battery", "storage_battery" ] - ] + } ] }, { @@ -731,10 +787,13 @@ "charges_per_use": 5, "use_action": "WEATHER_TOOL", "flags": [ "THERMOMETER", "HYGROMETER", "BAROMETER" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_disposable_cell", @@ -743,7 +802,7 @@ "light_minus_disposable_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { @@ -763,11 +822,14 @@ "symbol": ";", "color": "light_gray", "qualities": [ [ "ANALYSIS", 1 ] ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -802,11 +864,14 @@ "material": [ "plastic", "steel" ], "symbol": ";", "color": "light_gray", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -841,10 +906,13 @@ "material": [ "plastic", "glass" ], "symbol": ";", "color": "light_gray", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -853,7 +921,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -872,10 +940,13 @@ "material": [ "plastic" ], "symbol": ";", "color": "light_gray", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -884,7 +955,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -903,10 +974,13 @@ "material": [ "plastic", "glass" ], "symbol": ";", "color": "light_gray", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -915,7 +989,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -1121,10 +1195,13 @@ "color": "white", "ammo": [ "battery" ], "qualities": [ [ "CONCENTRATE", 1 ] ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -1133,7 +1210,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { diff --git a/data/json/items/tool/smoking.json b/data/json/items/tool/smoking.json index e2a40bda3054e..6778fe2b80e9b 100644 --- a/data/json/items/tool/smoking.json +++ b/data/json/items/tool/smoking.json @@ -17,10 +17,13 @@ "charges_per_use": 1, "power_draw": 7500, "use_action": "ECIG", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -29,7 +32,7 @@ "light_minus_disposable_cell", "light_minus_atomic_battery_cell" ] - ] + } ] }, { diff --git a/data/json/items/tool/tailoring.json b/data/json/items/tool/tailoring.json index 5760db0eb696f..6b076920ba293 100644 --- a/data/json/items/tool/tailoring.json +++ b/data/json/items/tool/tailoring.json @@ -83,7 +83,7 @@ "use_action": { "type": "repair_item", "item_action_type": "repair_fabric", - "materials": [ "cotton", "leather", "lycra", "nylon", "wool", "fur", "faux_fur", "nomex", "kevlar", "gutskin" ], + "materials": [ "cotton", "leather", "lycra", "nylon", "wool", "fur", "faux_fur", "nomex", "kevlar", "kevlar_layered", "gutskin" ], "skill": "tailor", "tool_quality": -1, "cost_scaling": 0.1, @@ -160,15 +160,13 @@ "material": [ "plastic", "steel" ], "symbol": ",", "color": "red", - "ammo": [ "thread" ], - "initial_charges": 50, - "max_charges": 200, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "thread": 200 } } ], "charges_per_use": 1, "qualities": [ [ "SEW", 3 ] ], "use_action": { "type": "repair_item", "item_action_type": "repair_fabric", - "materials": [ "cotton", "leather", "lycra", "nylon", "wool", "fur", "faux_fur", "nomex", "kevlar", "gutskin" ], + "materials": [ "cotton", "leather", "lycra", "nylon", "wool", "fur", "faux_fur", "nomex", "kevlar", "kevlar_layered", "gutskin" ], "skill": "tailor", "tool_quality": 0, "cost_scaling": 0.1, @@ -274,11 +272,25 @@ "max_charges": 400, "charges_per_use": 1, "qualities": [ [ "SEW", 4 ], [ "SEW_CURVED", 1 ], [ "KNIT", 1 ], [ "LEATHER_AWL", 2 ], [ "CUT", 1 ] ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "thread": 400 } } ], "use_action": [ { "type": "repair_item", "item_action_type": "repair_fabric", - "materials": [ "cotton", "leather", "lycra", "nylon", "wool", "fur", "faux_fur", "nomex", "kevlar", "neoprene", "gutskin" ], + "materials": [ + "cotton", + "leather", + "lycra", + "nylon", + "wool", + "fur", + "faux_fur", + "nomex", + "kevlar", + "kevlar_layered", + "neoprene", + "gutskin" + ], "skill": "tailor", "tool_quality": 1, "cost_scaling": 0.1, diff --git a/data/json/items/tool/toileteries.json b/data/json/items/tool/toileteries.json index 350a0ea38fabe..4815f930d6540 100644 --- a/data/json/items/tool/toileteries.json +++ b/data/json/items/tool/toileteries.json @@ -49,7 +49,15 @@ "ammo": [ "battery" ], "charges_per_use": 10, "use_action": "HAIRKIT", - "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell", "light_minus_disposable_cell" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_battery_cell", "light_minus_atomic_battery_cell", "light_minus_disposable_cell" ] + } + ] }, { "id": "mop", @@ -65,7 +73,7 @@ "material": "wood", "symbol": "/", "color": "light_gray", - "techniques": "WBLOCK_1", + "techniques": [ "WBLOCK_1" ], "use_action": "MOP" }, { @@ -78,7 +86,7 @@ "volume": "250 ml", "price": 0, "price_postapoc": 0, - "material": "cotton", + "material": [ "cotton" ], "symbol": ",", "color": "white", "use_action": [ { "type": "heal", "move_cost": 200, "used_up_item": "rag_bloody", "bleed": 0.5, "limb_power": 0 }, "WASH_HARD_ITEMS" ], diff --git a/data/json/items/tool/traps.json b/data/json/items/tool/traps.json index e689c7e947d14..04af96b6dcde3 100644 --- a/data/json/items/tool/traps.json +++ b/data/json/items/tool/traps.json @@ -127,7 +127,7 @@ "to_hit": -4, "bashing": 1, "cutting": 8, - "material": "iron", + "material": [ "iron" ], "symbol": ";", "color": "dark_gray", "use_action": { diff --git a/data/json/items/tool/woodworking.json b/data/json/items/tool/woodworking.json index 0c7408aec6813..5fe603b6b9daf 100644 --- a/data/json/items/tool/woodworking.json +++ b/data/json/items/tool/woodworking.json @@ -8,8 +8,7 @@ "volume": "2500 ml", "price": 10500, "price_postapoc": 750, - "to_hit": 1, - "bashing": 20, + "bashing": 15, "cutting": 30, "material": [ "wood", "steel" ], "symbol": "/", @@ -35,7 +34,7 @@ "ammo": [ "gasoline" ], "charges_per_use": 5, "max_charges": 450, - "techniques": "SWEEP", + "techniques": [ "SWEEP" ], "use_action": "CHAINSAW_OFF", "flags": [ "NONCONDUCTIVE" ] }, @@ -45,13 +44,13 @@ "type": "TOOL", "name": { "str": "chainsaw (on)", "str_pl": "chainsaws (on)" }, "description": "This chainsaw is on and making a lot of noise. Use it to turn it off.", - "to_hit": -1, + "to_hit": -4, "bashing": 4, "cutting": 70, "turns_per_charge": 4, "charges_per_use": 0, "revert_to": "chainsaw_off", - "techniques": "SWEEP", + "techniques": [ "SWEEP" ], "qualities": [ [ "AXE", 4 ], [ "BUTCHER", -100 ] ], "use_action": "CHAINSAW_ON", "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE", "POWERED", "FRAGILE_MELEE" ] @@ -75,11 +74,14 @@ "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", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -90,7 +92,7 @@ "//": "Circular saw would be very fast but imprecise butchering tool - alas the qualities are not separate and so speed is sacrificed.", "description": "A lightweight handheld cordless circular saw. It is currently on and the blade is spinning; use this item to turn it off.", "cutting": 50, - "to_hit": -1, + "to_hit": -4, "power_draw": 1200000, "charges_per_use": 0, "revert_to": "circsaw_off", @@ -153,14 +155,17 @@ "color": "red", "ammo": [ "battery" ], "charges_per_use": 5, - "techniques": "SWEEP", + "techniques": [ "SWEEP" ], "use_action": "ELEC_CHAINSAW_OFF", "flags": [ "NONCONDUCTIVE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -169,7 +174,7 @@ "type": "TOOL", "name": { "str": "electric chainsaw (on)", "str_pl": "electric chainsaws (on)" }, "description": "This electric chainsaw is on and making a lot of noise. Use it to turn it off.", - "to_hit": -1, + "to_hit": -4, "bashing": 4, "cutting": 70, "power_draw": 2000000, @@ -182,15 +187,15 @@ { "id": "hand_axe", "type": "TOOL", - "name": { "str": "stone hand axe" }, + "name": { "str": "stone axe head" }, "description": "This is a broad piece of stone with an edge narrow enough to roughly chop wood.", "weight": "453 g", "volume": "500 ml", "price": 0, "price_postapoc": 50, - "to_hit": -2, - "bashing": 14, - "cutting": 8, + "to_hit": -3, + "bashing": 7, + "cutting": 11, "material": "stone", "symbol": ";", "color": "light_gray", @@ -201,12 +206,11 @@ "id": "makeshift_axe", "copy-from": "hand_axe", "type": "TOOL", - "name": { "str": "metal hand axe" }, + "name": { "str": "metal axe head" }, "description": "This is a chunk of steel with one edge hammered down to something resembling a cutting edge. It works passably well as an axe but really can't compare to a proper axe.", "material": "steel", - "to_hit": -3, - "bashing": 9, - "cutting": 15, + "bashing": 8, + "cutting": 12, "flags": [ "SHEATH_AXE" ] }, { @@ -216,7 +220,7 @@ "description": "This is a stone adze, somewhat useful for smoothing wood objects.", "weight": "1300 g", "volume": "1 L", - "price": 1000, + "price": 0, "price_postapoc": 50, "bashing": 9, "cutting": 15, @@ -225,15 +229,15 @@ "symbol": ";", "color": "brown", "qualities": [ [ "SAW_W", 1 ], [ "BUTCHER", -56 ] ], - "flags": [ "BELT_CLIP" ] + "flags": [ "BELT_CLIP", "SHEATH_AXE" ] }, { "id": "primitive_axe", "type": "TOOL", "name": { "str": "stone axe" }, "description": "This is a stone with a narrow edge affixed to a stick. It can chop wood, but requires much more effort than a modern axe.", - "weight": "3154 g", - "volume": "3500 ml", + "weight": "1300 g", + "volume": "1 L", "price": 0, "price_postapoc": 50, "bashing": 9, diff --git a/data/json/items/tool/workshop.json b/data/json/items/tool/workshop.json index ed9d7e6d48a9e..e530de9f98f78 100644 --- a/data/json/items/tool/workshop.json +++ b/data/json/items/tool/workshop.json @@ -76,11 +76,14 @@ "charges_per_use": 1, "power_draw": 800000, "flags": [ "NONCONDUCTIVE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -187,11 +190,14 @@ "charges_per_use": 20, "qualities": [ [ "CONTAIN", 1 ] ], "use_action": "HOTPLATE", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -211,11 +217,14 @@ "color": "yellow", "ammo": [ "battery" ], "qualities": [ [ "DRILL", 3 ], [ "SCREW", 1 ] ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -324,7 +333,7 @@ "material": [ "rubber" ], "symbol": ",", "color": "green", - "use_action": "SIPHON" + "qualities": [ [ "HOSE", 1 ] ] }, { "id": "jack", @@ -379,8 +388,9 @@ "type": "TOOL", "name": { "str": "jackhammer" }, "description": "This is a construction tool for drilling through hard rock or other surfaces. It runs on gasoline. Use it (if loaded) to blast a hole in adjacent solid terrain.", - "weight": "15875 g", + "weight": "27215 g", "volume": "5 L", + "longest_side": "92 cm", "price": 40000, "price_postapoc": 1000, "to_hit": -8, @@ -393,6 +403,7 @@ "max_charges": 400, "charges_per_use": 10, "use_action": "JACKHAMMER", + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 400 } } ], "flags": [ "STAB", "DIG_TOOL", "POWERED" ] }, { @@ -411,8 +422,14 @@ "color": "dark_gray", "ammo": [ "battery" ], "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] + } ] }, { @@ -444,13 +461,16 @@ [ "CHISEL", 3 ] ], "use_action": [ "GUN_REPAIR", "CROWBAR", "HAMMER" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] - ], - "flags": [ "ALLOWS_REMOTE_USE" ] + "flags": [ "ALLOWS_REMOTE_USE" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } + ] }, { "id": "makeshift_hammer", @@ -497,7 +517,7 @@ "price": 1000, "price_postapoc": 50, "bashing": 4, - "material": "iron", + "material": [ "iron" ], "symbol": ",", "color": "light_gray", "qualities": [ [ "SMOOTH", 2 ] ] @@ -584,8 +604,16 @@ "charges_per_use": 4, "use_action": "OXYTORCH", "qualities": [ [ "WELD", 2 ] ], - "magazines": [ [ "weldgas", [ "weldtank", "tinyweldtank" ] ] ], - "flags": [ "ALLOWS_REMOTE_USE" ] + "flags": [ "ALLOWS_REMOTE_USE" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "weldtank", "tinyweldtank" ] + } + ] }, { "id": "paint_brush", @@ -612,8 +640,8 @@ "price": 16000, "price_postapoc": 1250, "to_hit": -2, - "bashing": 20, - "cutting": 12, + "bashing": 30, + "cutting": 15, "material": [ "wood", "steel" ], "symbol": "/", "color": "dark_gray", @@ -671,10 +699,13 @@ "color": "light_gray", "ammo": [ "battery" ], "flags": [ "TRADER_AVOID" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -683,7 +714,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -770,13 +801,16 @@ [ "CHISEL", 3 ] ], "use_action": [ "GUN_REPAIR", "CROWBAR", "HAMMER" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] - ], - "flags": [ "ALLOWS_REMOTE_USE" ] + "flags": [ "ALLOWS_REMOTE_USE" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } + ] }, { "id": "soldering_iron", @@ -789,7 +823,7 @@ "price_postapoc": 100, "bashing": 2, "cutting": 6, - "material": "iron", + "material": [ "iron" ], "symbol": ",", "color": "light_gray", "ammo": [ "battery" ], @@ -806,10 +840,13 @@ { "flame": false, "type": "cauterize" } ], "flags": [ "SPEAR", "BELT_CLIP", "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_battery_cell", "light_battery_cell", "light_plus_battery_cell", @@ -818,7 +855,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -882,7 +919,7 @@ [ "SCREW_FINE", 1 ], [ "BUTCHER", 11 ], [ "FILE", 2 ], - [ "REAM", 1 ], + [ "REAM", 2 ], [ "VISE", 1 ] ], "use_action": [ "HAMMER", "CROWBAR" ] @@ -907,7 +944,7 @@ { "type": "repair_item", "item_action_type": "repair_metal", - "materials": [ "kevlar", "plastic", "iron", "steel", "hardsteel", "aluminum", "copper", "silver", "gold" ], + "materials": [ "kevlar", "kevlar_layered", "plastic", "iron", "steel", "hardsteel", "aluminum", "copper", "silver", "gold" ], "skill": "mechanics", "cost_scaling": 0.1, "move_cost": 1000 @@ -961,11 +998,14 @@ } ], "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -997,11 +1037,14 @@ } ], "flags": [ "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -1050,7 +1093,7 @@ "material": [ "steel", "plastic" ], "symbol": ";", "color": "light_gray", - "techniques": "PRECISE", + "techniques": [ "PRECISE" ], "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 2 ] ], "flags": [ "SPEAR" ] }, @@ -1082,7 +1125,7 @@ "material": "leather", "symbol": ",", "color": "green", - "use_action": "SIPHON" + "qualities": [ [ "HOSE", 1 ] ] }, { "id": "makeshift_hand_drill", diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json index 3c093c871706b..7e8f9d924ed85 100644 --- a/data/json/items/tool_armor.json +++ b/data/json/items/tool_armor.json @@ -167,10 +167,13 @@ "encumbrance": 15, "coverage": 80, "material_thickness": 4, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -179,7 +182,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -315,7 +318,15 @@ "symbol": "[", "ammo": "battery", "use_action": "PORTABLE_GAME", - "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell", "light_minus_disposable_cell" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_battery_cell", "light_minus_atomic_battery_cell", "light_minus_disposable_cell" ] + } + ] }, { "type": "TOOL_ARMOR", @@ -352,10 +363,10 @@ "covers": [ "TORSO", "HEAD", "ARMS", "LEGS" ], "coverage": 65, "encumbrance": 10, - "max_charges": 1000, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "plutonium": 1000 } } ], + "ammo": "plutonium", "initial_charges": 500, "charges_per_use": 25, - "ammo": "plutonium", "warmth": 10, "material_thickness": 1, "environmental_protection": 4, @@ -412,10 +423,13 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -424,7 +438,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -468,10 +482,13 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell", @@ -480,7 +497,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -524,10 +541,13 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -536,7 +556,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -580,10 +600,13 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -592,7 +615,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -658,10 +681,13 @@ "covers": [ "HEAD" ], "coverage": 15, "material_thickness": 1, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell", @@ -670,7 +696,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -714,10 +740,13 @@ "covers": [ "HEAD" ], "coverage": 20, "material_thickness": 1, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell", @@ -726,7 +755,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -786,6 +815,52 @@ "target": "wearable_atomic_light" } }, + { + "id": "helmet_eod", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "EOD helmet" }, + "description": "An armored electronically shielded helmet containing a camera, a two-way radio, and a headlamp, all of which can be voice-activated for redundancy. It is designed to protect against overpressure, fragmentation, impact and heat.", + "weight": "5600 g", + "volume": "4 L", + "price": 150000, + "covers": [ "HEAD", "MOUTH", "EYES" ], + "coverage": 100, + "encumbrance": 20, + "warmth": 65, + "material": [ "kevlar_rigid", "nomex" ], + "symbol": "[", + "color": "light_gray", + "environmental_protection": 2, + "ammo": "battery", + "magazines": [ + [ + "battery", + [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + ] + ], + "use_action": { + "type": "transform", + "menu_text": "Turn on headlamps", + "msg": "\"Activating illumination.\"", + "target": "helmet_eod_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "\"Illumination disabled, low power.\"" + }, + "material_thickness": 15, + "flags": [ "STURDY", "OUTER", "RAINPROOF", "TWO_WAY_RADIO", "WATCH", "ALARMCLOCK" ] + }, + { + "id": "helmet_eod_on", + "type": "TOOL_ARMOR", + "copy-from": "helmet_eod", + "name": { "str": "EOD helmet (on)", "str_pl": "EOD helmets (on)" }, + "extend": { "flags": [ "LIGHT_350", "CHARGEDIM", "TRADER_AVOID" ] }, + "power_draw": 10000, + "revert_to": "helmet_eod", + "use_action": { "type": "transform", "menu_text": "Turn off headlamps", "msg": "\"Disabling illumination.\"", "target": "helmet_eod" } + }, { "id": "rm13_armor", "type": "TOOL_ARMOR", @@ -797,13 +872,13 @@ "flags": [ "VARSIZE", "STURDY", "WATERPROOF", "RAINPROOF", "WATCH", "ALARMCLOCK", "SWIM_GOGGLES", "SUN_GLASSES", "RAD_RESIST" ], "price": 50000000, "price_postapoc": 10000, - "material": [ "ceramic", "kevlar" ], + "material": [ "ceramic", "kevlar_layered" ], "weight": "6820 g", "volume": "9 L", "to_hit": -3, - "max_charges": 5000, - "charges_per_use": 5, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "plutonium": 5000 } } ], "ammo": "plutonium", + "charges_per_use": 5, "use_action": "RM13ARMOR_OFF", "covers": [ "HEAD", "MOUTH", "EYES", "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], "warmth": 30, @@ -856,8 +931,8 @@ "material": [ "ceramic", "kevlar" ], "weight": "1250 g", "volume": "4500 ml", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "plutonium": 1000 } } ], "ammo": "plutonium", - "max_charges": 1000, "initial_charges": 1000, "use_action": { "type": "transform", @@ -907,8 +982,8 @@ "material": [ "carbide" ], "weight": "1250 g", "volume": "4500 ml", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "plutonium": 2500 } } ], "ammo": "plutonium", - "max_charges": 2500, "initial_charges": 1000, "use_action": { "type": "transform", @@ -987,10 +1062,10 @@ "weight": "720 g", "volume": "500 ml", "to_hit": -3, - "max_charges": 60, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "rebreather_filter": 60 } } ], + "ammo": "rebreather_filter", "initial_charges": 60, "charges_per_use": 1, - "ammo": "rebreather_filter", "use_action": { "type": "transform", "msg": "You activate your %s.", @@ -1035,10 +1110,10 @@ "weight": "960 g", "volume": "1250 ml", "to_hit": -3, - "max_charges": 60, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "rebreather_filter": 60 } } ], + "ammo": "rebreather_filter", "initial_charges": 60, "charges_per_use": 1, - "ammo": "rebreather_filter", "use_action": { "type": "transform", "msg": "You activate your %s.", @@ -1090,9 +1165,9 @@ "material_thickness": 2, "environmental_protection": 1, "environmental_protection_with_filter": 7, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_s": 100 } } ], "ammo": "gasfilter_s", + "initial_charges": 100, "use_action": "GASMASK" }, { @@ -1117,9 +1192,9 @@ "material_thickness": 2, "environmental_protection": 1, "environmental_protection_with_filter": 16, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK" }, { @@ -1143,9 +1218,9 @@ "material_thickness": 2, "environmental_protection": 1, "environmental_protection_with_filter": 16, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", "flags": [ "OVERSIZE", "SLEEP_IGNORE" ] }, @@ -1160,7 +1235,7 @@ "price": 24000, "price_postapoc": 1750, "to_hit": -3, - "material": [ "kevlar", "nomex" ], + "material": [ "kevlar_layered", "nomex" ], "symbol": "[", "color": "light_gray", "covers": [ "MOUTH", "EYES" ], @@ -1171,9 +1246,9 @@ "material_thickness": 3, "environmental_protection": 1, "environmental_protection_with_filter": 15, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", "flags": [ "VARSIZE", "STURDY", "SUN_GLASSES", "SLEEP_IGNORE" ] }, @@ -1188,7 +1263,7 @@ "price": 24000, "price_postapoc": 1500, "to_hit": -3, - "material": [ "kevlar", "nomex" ], + "material": [ "kevlar_layered", "nomex" ], "symbol": "[", "color": "light_gray", "covers": [ "MOUTH", "EYES" ], @@ -1199,9 +1274,9 @@ "material_thickness": 3, "environmental_protection": 1, "environmental_protection_with_filter": 15, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", "flags": [ "VARSIZE", "STURDY", "OVERSIZE", "SUN_GLASSES", "SLEEP_IGNORE" ] }, @@ -1221,9 +1296,9 @@ "weight": "1260 g", "volume": "1500 ml", "to_hit": -3, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", "covers": [ "MOUTH", "EYES" ], "warmth": 30, @@ -1245,11 +1320,11 @@ "price": 24000, "price_postapoc": 2000, "to_hit": -3, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", - "material": [ "kevlar", "steel" ], + "material": [ "kevlar_layered", "steel" ], "symbol": "[", "color": "dark_gray", "covers": [ "MOUTH", "EYES" ], @@ -1273,12 +1348,12 @@ "price": 24000, "price_postapoc": 1500, "to_hit": -3, - "max_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], + "ammo": "gasfilter_m", "initial_charges": 100, "charges_per_use": 1, - "ammo": "gasfilter_m", "use_action": "GASMASK", - "material": [ "kevlar", "cotton" ], + "material": [ "kevlar_layered", "cotton" ], "symbol": "[", "color": "dark_gray", "covers": [ "MOUTH", "EYES" ], @@ -1302,11 +1377,11 @@ "price": 24000, "price_postapoc": 1750, "to_hit": -3, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", - "material": [ "kevlar", "leather" ], + "material": [ "kevlar_layered", "leather" ], "symbol": "[", "color": "dark_gray", "covers": [ "MOUTH", "EYES" ], @@ -1330,11 +1405,11 @@ "price": 24000, "price_postapoc": 1500, "to_hit": -3, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_layered", "plastic" ], "symbol": "[", "color": "dark_gray", "covers": [ "MOUTH", "EYES" ], @@ -1358,11 +1433,11 @@ "price": 24000, "price_postapoc": 1750, "to_hit": -3, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", - "material": [ "kevlar", "fur" ], + "material": [ "kevlar_layered", "fur" ], "symbol": "[", "color": "light_gray", "covers": [ "MOUTH", "EYES" ], @@ -1386,11 +1461,11 @@ "price": 24000, "price_postapoc": 1500, "to_hit": -3, - "max_charges": 100, - "initial_charges": 100, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", + "initial_charges": 100, "use_action": "GASMASK", - "material": [ "kevlar", "fur" ], + "material": [ "kevlar_layered", "fur" ], "symbol": "[", "color": "light_gray", "covers": [ "MOUTH", "EYES" ], @@ -1434,10 +1509,13 @@ "encumbrance": 40, "coverage": 100, "material_thickness": 2, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell", @@ -1446,7 +1524,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -1495,10 +1573,13 @@ "encumbrance": 40, "coverage": 100, "material_thickness": 2, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell", @@ -1507,7 +1588,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -1539,9 +1620,8 @@ "flags": [ "OVERSIZE" ], "weight": "364 g", "volume": "750 ml", - "max_charges": 2, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "ampoule": 2 } } ], "charges_per_use": 1, - "ammo": "ampoule", "use_action": "JET_INJECTOR", "material_thickness": 3 }, @@ -1559,10 +1639,10 @@ "flags": [ "OVERSIZE" ], "weight": "212 g", "volume": "750 ml", - "max_charges": 5, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "stimpack_ammo": 5 } } ], + "ammo": "stimpack_ammo", "initial_charges": 5, "charges_per_use": 1, - "ammo": "stimpack_ammo", "use_action": "STIMPACK", "material_thickness": 3 }, @@ -1577,13 +1657,13 @@ "flags": [ "VARSIZE", "STURDY", "WATER_FRIENDLY", "SWIM_GOGGLES" ], "price": 40000, "price_postapoc": 2000, - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_layered", "plastic" ], "weight": "982 g", "volume": "1500 ml", "to_hit": -3, - "max_charges": 120, - "charges_per_use": 1, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "rebreather_filter": 120 } } ], "ammo": "rebreather_filter", + "charges_per_use": 1, "use_action": { "type": "transform", "msg": "You activate your %s.", @@ -1625,13 +1705,13 @@ "flags": [ "VARSIZE", "STURDY", "WATER_FRIENDLY", "SWIM_GOGGLES", "OVERSIZE" ], "price": 40000, "price_postapoc": 1500, - "material": [ "kevlar", "plastic" ], + "material": [ "kevlar_layered", "plastic" ], "weight": "1302 g", "volume": "2 L", "to_hit": -3, - "max_charges": 120, - "charges_per_use": 1, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "rebreather_filter": 120 } } ], "ammo": "rebreather_filter", + "charges_per_use": 1, "use_action": { "type": "transform", "msg": "You activate your %s.", @@ -1759,7 +1839,15 @@ "coverage": 5, "material_thickness": 1, "flags": [ "BELTED", "FRAGILE", "ALLOWS_NATURAL_ATTACKS", "WATER_FRIENDLY", "OVERSIZE" ], - "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] + } + ] }, { "type": "ARMOR", @@ -1815,7 +1903,7 @@ "price_postapoc": 25, "material": [ "iron" ], "weight": "2 g", - "use_action": { "type": "picklock", "pick_quality": 3 }, + "use_action": "PICK_LOCK", "qualities": [ [ "LOCKPICK", 3 ] ] }, { @@ -1830,7 +1918,7 @@ "price_postapoc": 5, "material": [ "plastic" ], "weight": "4 g", - "use_action": { "type": "picklock", "pick_quality": 1 }, + "use_action": "PICK_LOCK", "qualities": [ [ "LOCKPICK", 1 ] ], "flags": [ "FANCY" ] }, @@ -1843,7 +1931,7 @@ "description": "This is a fluffy and large towel. It could be used to dry yourself. Any person that can travel the length and breadth of the apocalypse, rough it, slum it, struggle against terrible odds, win through and still know where their towel is, is clearly a force to be reckoned with.", "price": 4500, "price_postapoc": 10, - "material": "cotton", + "material": [ "cotton" ], "covers": [ "TORSO", "LEGS" ], "weight": "370 g", "volume": "500 ml", @@ -1863,7 +1951,7 @@ "description": "This is a large, sopping wet towel. If you wait a little bit, it should dry out. Don't panic.", "price": 2000, "price_postapoc": 0, - "material": "cotton", + "material": [ "cotton" ], "covers": [ "TORSO", "LEGS" ], "weight": "400 g", "volume": "500 ml", @@ -1884,7 +1972,7 @@ "description": "This is a large towel, covered in a thick, gooey liquid. You'll need to wash it in some water to make it usable again. Don't panic.", "price": 2000, "price_postapoc": 0, - "material": "cotton", + "material": [ "cotton" ], "covers": [ "TORSO", "LEGS" ], "weight": "400 g", "volume": "500 ml", @@ -2333,11 +2421,14 @@ "warmth": 10, "coverage": 100, "material_thickness": 1, - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -2443,7 +2534,6 @@ "weight": "200 g", "color": "brown", "covers": [ "HEAD" ], - "max_charges": 1, "initial_charges": 1, "use_action": { "type": "musical_instrument", @@ -2473,7 +2563,6 @@ "color": "brown", "covers": [ "TORSO" ], "to_hit": 2, - "max_charges": 1, "initial_charges": 1, "use_action": { "type": "musical_instrument", @@ -2511,7 +2600,6 @@ "color": "red", "covers": [ "TORSO" ], "to_hit": 2, - "max_charges": 1, "initial_charges": 1, "use_action": { "type": "musical_instrument", @@ -2554,7 +2642,6 @@ "color": "green", "covers": [ "TORSO" ], "to_hit": -2, - "max_charges": 1, "initial_charges": 1, "use_action": { "type": "musical_instrument", @@ -2596,7 +2683,6 @@ "covers": [ "TORSO" ], "flags": [ "BELTED", "SLEEP_IGNORE" ], "to_hit": -1, - "max_charges": 1, "initial_charges": 1, "use_action": { "type": "musical_instrument", @@ -2632,7 +2718,6 @@ "covers": [ "TORSO" ], "flags": [ "BELTED", "SLEEP_IGNORE" ], "to_hit": 1, - "max_charges": 1, "initial_charges": 1, "use_action": { "type": "musical_instrument", @@ -2692,10 +2777,13 @@ "encumbrance": 5, "coverage": 10, "material_thickness": 2, - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_plus_battery_cell", "light_battery_cell", "light_minus_battery_cell", @@ -2704,7 +2792,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -2880,8 +2968,8 @@ "symbol": ";", "color": "light_gray", "initial_charges": 60, - "max_charges": 60, "ammo": "nitrox", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "nitrox": 60 } } ], "covers": [ "TORSO" ], "flags": [ "WATER_FRIENDLY", "BELTED", "ONLY_ONE", "STURDY", "NO_UNLOAD" ], "environmental_protection": 1, @@ -2908,10 +2996,10 @@ "material": [ "steel", "plastic" ], "symbol": ";", "color": "light_gray", - "max_charges": 60, + "ammo": "nitrox", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "nitrox": 60 } } ], "charges_per_use": 1, "turns_per_charge": 60, - "ammo": "nitrox", "covers": [ "TORSO", "MOUTH" ], "flags": [ "WATER_FRIENDLY", "BELTED", "ONLY_ONE", "STURDY", "NO_UNLOAD" ], "environmental_protection": 1, @@ -2937,9 +3025,9 @@ "material": [ "aluminum", "plastic" ], "symbol": ";", "color": "light_gray", - "initial_charges": 20, - "max_charges": 20, "ammo": "nitrox", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "nitrox": 20 } } ], + "max_charges": 20, "covers": [ "TORSO" ], "flags": [ "WATER_FRIENDLY", "BELTED", "ONLY_ONE", "STURDY", "NO_UNLOAD" ], "environmental_protection": 1, @@ -2966,10 +3054,10 @@ "material": [ "aluminum", "plastic" ], "symbol": ";", "color": "light_gray", - "max_charges": 20, + "ammo": "nitrox", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "nitrox": 20 } } ], "charges_per_use": 1, "turns_per_charge": 60, - "ammo": "nitrox", "covers": [ "TORSO", "MOUTH" ], "flags": [ "WATER_FRIENDLY", "BELTED", "ONLY_ONE", "STURDY", "NO_UNLOAD" ], "environmental_protection": 1, @@ -3009,11 +3097,14 @@ "need_charges_msg": "The blanket's batteries are dead." }, "flags": [ "OVERSIZE", "OUTER", "ALLOWS_NATURAL_ATTACKS" ], - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] }, { @@ -3059,13 +3150,16 @@ "need_charges": 1, "need_charges_msg": "The mask's batteries are dead." }, - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] - ], - "flags": [ "OUTER", "SUN_GLASSES" ] + "flags": [ "OUTER", "SUN_GLASSES" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } + ] }, { "id": "foodperson_mask_on", diff --git a/data/json/items/vehicle/battery.json b/data/json/items/vehicle/battery.json index db5aa2bdfe8c8..196a8d2a93a7b 100644 --- a/data/json/items/vehicle/battery.json +++ b/data/json/items/vehicle/battery.json @@ -16,7 +16,7 @@ "capacity": 2500, "//": "58Ah @ 12VDC. Could supply ~700 watts for an hour", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "RECHARGE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 2500 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 2500 } } ] }, { "id": "battery_motorbike", @@ -30,7 +30,7 @@ "price_postapoc": 250, "capacity": 500, "//": "12Ah @ 12VDC. Could supply ~140 watts for an hour", - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 500 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 500 } } ] }, { "id": "battery_motorbike_small", @@ -44,7 +44,7 @@ "price_postapoc": 100, "capacity": 150, "//": "~2.4Ah @ 12VDC. Could supply ~140 watts 10 minutes or so", - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 150 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 150 } } ] }, { "type": "GENERIC", @@ -74,7 +74,7 @@ "price_postapoc": 2500, "bashing": 40, "capacity": 80000, - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 80000 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 80000 } } ] }, { "id": "medium_storage_battery", @@ -88,7 +88,7 @@ "price_postapoc": 750, "bashing": 14, "capacity": 7000, - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 7000 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 7000 } } ] }, { "id": "small_storage_battery", @@ -102,7 +102,7 @@ "price_postapoc": 500, "bashing": 7, "capacity": 500, - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 500 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 500 } } ] }, { "id": "storage_battery", @@ -122,6 +122,6 @@ "ammo_type": [ "battery" ], "capacity": 40000, "flags": [ "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "NO_REPAIR" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 40000 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } } ] } ] diff --git a/data/json/items/vehicle/cargo.json b/data/json/items/vehicle/cargo.json index 4e32017d349a5..2f09978581037 100644 --- a/data/json/items/vehicle/cargo.json +++ b/data/json/items/vehicle/cargo.json @@ -111,7 +111,7 @@ "symbol": "]", "color": "light_gray", "looks_like": "cargo_rack", - "properties": [ [ "monster_size_capacity", "HUGE" ] ], + "properties": [ [ "creature_size_capacity", "HUGE" ] ], "use_action": "CAPTURE_MONSTER_VEH", "flags": [ "TRADER_AVOID", "USE_PART_ITEM" ] }, diff --git a/data/json/items/vehicle/engine.json b/data/json/items/vehicle/engine.json index 5b280482bcc7d..ac70aa7f5be91 100644 --- a/data/json/items/vehicle/engine.json +++ b/data/json/items/vehicle/engine.json @@ -4,7 +4,7 @@ "type": "ENGINE", "category": "veh_parts", "name": { "str": "internal combustion engine" }, - "material": "iron", + "material": [ "iron" ], "symbol": ":", "color": "light_cyan" }, @@ -245,7 +245,7 @@ "type": "GENERIC", "name": { "str": "massive engine block" }, "description": "The beginnings of a massive gas or diesel engine. It's not good for much of anything on its own.", - "material": "iron", + "material": [ "iron" ], "weight": "280000 g", "volume": "6250 ml", "price": 30000, @@ -257,7 +257,7 @@ "type": "GENERIC", "name": { "str": "large engine block" }, "description": "The beginnings of a large gas or diesel engine. It's not good for much of anything on its own.", - "material": "iron", + "material": [ "iron" ], "weight": "190000 g", "volume": "5 L", "price": 20000, @@ -269,7 +269,7 @@ "type": "GENERIC", "name": { "str": "medium engine block" }, "description": "The beginnings of a medium gas or diesel engine. It's not good for much of anything on its own.", - "material": "iron", + "material": [ "iron" ], "weight": "90000 g", "volume": "2500 ml", "price": 10000, @@ -281,7 +281,7 @@ "type": "GENERIC", "name": { "str": "small engine block" }, "description": "The beginnings of a small gas or diesel engine. It's not good for much of anything on its own.", - "material": "iron", + "material": [ "iron" ], "weight": "40000 g", "volume": "1250 ml", "price": 5000, @@ -293,7 +293,7 @@ "type": "GENERIC", "name": { "str": "tiny engine block" }, "description": "The beginnings of a tiny gas or diesel engine. It's not good for much of anything on its own.", - "material": "iron", + "material": [ "iron" ], "weight": "8000 g", "volume": "500 ml", "price": 3500, diff --git a/data/json/items/vehicle/frames.json b/data/json/items/vehicle/frames.json index 4d3ffc7cc799d..6e7b14a88f5e6 100644 --- a/data/json/items/vehicle/frames.json +++ b/data/json/items/vehicle/frames.json @@ -22,6 +22,7 @@ "name": { "str": "extra-light frame" }, "description": "A small lightweight frame made from pipework. Useful for crafting.", "material": [ "aluminum" ], + "weight": "1677 g", "copy-from": "foldframe" }, { diff --git a/data/json/items/vehicle/fuel_storage.json b/data/json/items/vehicle/fuel_storage.json index b6d255a1d52de..65e9fa00a0ba6 100644 --- a/data/json/items/vehicle/fuel_storage.json +++ b/data/json/items/vehicle/fuel_storage.json @@ -12,7 +12,6 @@ "weight": "22000 g", "volume": "55 L", "capacity": 2000, - "reliability": 10, "//": "mods will need to expand", "ammo_type": [ "charcoal" ], "price": 3000, diff --git a/data/json/items/vehicle/plating.json b/data/json/items/vehicle/plating.json index eecf44e91708b..b72cb81677581 100644 --- a/data/json/items/vehicle/plating.json +++ b/data/json/items/vehicle/plating.json @@ -176,21 +176,5 @@ "description": "Durable silica-coated chitin plating made for a vehicle.", "material": [ "acidchitin" ], "proportional": { "price": 1.333, "weight": 1.2, "volume": 1.18, "bashing": 1.25 } - }, - { - "type": "GENERIC", - "id": "bone_plate", - "symbol": "]", - "color": "white", - "name": { "str": "bone armor kit" }, - "description": "Bone plating made for a vehicle.", - "price": 1200, - "price_postapoc": 100, - "material": [ "bone" ], - "weight": "4000 g", - "volume": "9500 ml", - "bashing": 8, - "to_hit": -4, - "category": "veh_parts" } ] diff --git a/data/json/mapgen/airport/s_airport_private.json b/data/json/mapgen/airport/s_airport_private.json new file mode 100644 index 0000000000000..cbd8a1a5a74ca --- /dev/null +++ b/data/json/mapgen/airport/s_airport_private.json @@ -0,0 +1,287 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "s_air_parking", "s_air_term", "s_air_atc", "s_air_hangars" ] ], + "object": { + "fill_ter": "t_linoleum_gray", + "rows": [ + "ssssssssssssssssssssssssc_d____________________ssssssssss.....____111_________________________ss", + "s______________________s##e#++##:::##:::##______________s######^.|||||....____________________..", + "s______________________s#~d~~~# u#^_____________s#;;;;#s||QQQ||...____________________..", + "s______________________s#~d~~~+ ;;;E;;E; ##++##ss_______s+;;<;#s|QQQQQ|...____________________..", + "s______________________s#~d~~~# d;;h;;h; # l#.s_______s#I;;j#s|QQQQQ|..a&_______a..a&_______a.", + "sbbbbbb__________bbbbbbs#~e~~m# d;;h;;h;p# ;; o.s_______s#I;;j#s|QQQQQ|..aa======aa..aa======aa.", + "s______________________s#~e~~m# d;;h;;h;p# ;; #.sqq_____s###+##s||QQQ||..a&~~~~~~~a^.a&~~~~~~~a^", + "s______________________s#~d~mm# d;;h;;h; ;; #.sqq_____s^#;;;#s3|||||...a~~~~~~~fa..a~~~~~~~~a.", + "s______________________s#~ddddedd;;h;;h;;;;;; #.sqq_____s.#jjj#s3........a~~~~~~~fa..a~~~~~~~~a.", + "s______________________s#~~~~~# ;;;;;;;;;;;;; o.sss_____s.#####s3..|||...a~~~~~~~~a..a~~~~~~~~a.", + "sbbbbbb__________bbbbbbs####### JJ;;;;;; u u#...s_____ssssss.s3.||Q||..a~~~~~~~~a..a~~~~~~~~a.", + "s______________________ss#t;hh# ;J;hhhhE ##oo##...s_____sssDDsss33|QQQ|..a~~~~~~~~a..a~~~~~~~~a.", + "s______________________ss#;;;;+ ;J;;;;;; #^.......s_____sssDDsss3.||Q||..a~~~~~~~~a..a~~~~~~~~a.", + "s______________________ss#kkkk# ;J;;;;;; #........s_____ssssss.s3..|||...a~~~~~~~~a..a~~~~~~~~a.", + "s______________________ss##oo##j i u#........s_____s......s3........a~~~~~~~~a..a~~~~~gg~a.", + "sbbbbbb__________bbbbbbss....^####::))::##........s_____s.c.44.s3..|||...a~~~~~~~~a..a~~~~~gg~a.", + "s______________________ssssssssssssssssssssssssssss_____s.c.44.s3.||Q||..a~~~~~~~~a..a~~~~~~~~a.", + "s_______________________________________________________s.c....s33|QQQ|..a~~~~~~~ga..a~~~~~~~~a.", + "s_______________________________________________________s.c.44.s..||Q||..a~~~~~~gga..a~~~~~~~~a.", + "s_______________________________________________________s.c.44.s...|||...a~~~~~~gga..a~~~~~~~~a.", + "ssssssss________________________________________________s.c..............ag~~~~~gga..a~~~~~~~~a.", + ".......s________________________________________________s cccccccccccccccagg~~~gggacca~ff~~~gga.", + ".......s_______________ssssssssssssssssssssssssssss_____s................aaaaaaaaaa..aaaaaaaaaa.", + ".......sssssssssssssssss..........................s_____s........................^....^........." + ], + "terrain": { + "#": "t_brick_wall", + ".": "t_region_groundcover_urban", + "_": "t_pavement", + "b": "t_pavement_y", + "s": "t_sidewalk", + "~": "t_thconc_floor", + "m": "t_thconc_floor", + "t": "t_linoleum_white", + ";": "t_linoleum_white", + "k": "t_linoleum_white", + "I": "t_linoleum_white", + "h": "t_linoleum_white", + "J": "t_linoleum_white", + "E": "t_linoleum_white", + " ": "t_linoleum_gray", + "o": "t_window", + ":": "t_wall_glass", + "+": "t_door_c", + ")": "t_door_glass_c", + "d": "t_conveyor", + "j": "t_console_broken", + "c": "t_chainfence", + "<": "t_stairs_up", + "^": "t_gutter_downspout", + "D": "t_radio_tower", + "|": "t_wall_metal", + "Q": "t_metal_floor", + "q": "t_pavement", + "e": "t_machinery_light", + "1": "t_gas_pump", + "2": "t_water_pump", + "3": "t_sewage_pipe", + "a": "t_wall_metal", + "g": "t_thconc_floor", + "f": "t_thconc_floor", + "=": "t_door_metal_locked", + "&": "t_gates_control_metal", + "4": "t_generator_broken" + }, + "furniture": { + "q": "f_dumpster", + "f": "f_locker", + "g": "f_crate_o", + "h": "f_bench", + "I": "f_desk", + "i": "f_counter", + "J": "f_counter", + "k": "f_table", + "l": "f_trashcan", + "E": "f_trashcan", + "m": "f_crate_c", + "p": "f_vending_c", + "t": "f_locker", + "u": "f_indoor_plant" + }, + "gaspumps": { "1": { } }, + "place_loot": [ + { "group": "road", "chance": 50, "repeat": 4, "x": [ 1, 22 ], "y": [ 1, 19 ] }, + { "group": "allclothes", "chance": 80, "repeat": [ 10 ], "x": 29, "y": [ 5, 6 ] }, + { "group": "allclothes", "chance": 80, "repeat": 5, "x": 28, "y": 7 }, + { "group": "office", "chance": 80, "repeat": 5, "x": 29, "y": 7 }, + { "group": "office", "chance": 80, "repeat": 2, "x": [ 26, 29 ], "y": 13 }, + { "group": "office", "chance": 80, "repeat": 2, "x": 26, "y": 11 }, + { "group": "bags_trip", "chance": 80, "repeat": 1, "x": 26, "y": [ 2, 4 ] }, + { "group": "bags_trip", "chance": 80, "repeat": 1, "x": 32, "y": [ 4, 8 ] }, + { "group": "bags_trip", "chance": 80, "repeat": 2, "x": 35, "y": [ 4, 8 ] }, + { "group": "bags_trip", "chance": 80, "repeat": 1, "x": 38, "y": [ 4, 8 ] }, + { "group": "bags_trip", "chance": 80, "repeat": 1, "x": [ 26, 29 ], "y": 8 }, + { "group": "bags_trip", "chance": 80, "repeat": 2, "x": [ 34, 38 ], "y": 11 }, + { "group": "bar_trash", "chance": 50, "repeat": 5, "x": 45, "y": 4 }, + { "group": "bar_trash", "chance": 50, "repeat": 5, "x": 38, "y": 3 }, + { "group": "bar_trash", "chance": 50, "repeat": 5, "x": 35, "y": 3 }, + { "group": "bar_trash", "chance": 50, "repeat": 5, "x": 39, "y": 11 }, + { "group": "office", "chance": 50, "repeat": 5, "x": 33, "y": [ 10, 14 ] }, + { "group": "vending_food", "chance": 80, "repeat": 1, "x": 40, "y": 5 }, + { "group": "vending_drink", "chance": 80, "repeat": 1, "x": 40, "y": 6 }, + { "group": "road", "chance": 50, "repeat": 10, "x": [ 75, 80 ], "y": [ 7, 20 ] }, + { "group": "road", "chance": 50, "repeat": 10, "x": [ 87, 92 ], "y": [ 7, 20 ] }, + { "group": "clothing_work_mask", "chance": 50, "repeat": 2, "x": 81, "y": 7 }, + { "group": "clothing_work_mask", "chance": 50, "repeat": 2, "x": 87, "y": 21 }, + { "group": "tools_mechanic", "chance": 50, "repeat": 4, "x": 88, "y": 21 }, + { "group": "tools_mechanic", "chance": 50, "repeat": 4, "x": 81, "y": 8 } + ], + "items": { + "q": { "item": "trash", "chance": 30, "repeat": [ 2, 3 ] }, + "I": { "item": "office", "chance": 30, "repeat": [ 2, 3 ] } + }, + "place_vehicles": [ + { "vehicle": "dealership", "x": 3, "y": 3, "chance": 50, "rotation": 180 }, + { "vehicle": "dealership", "x": 3, "y": 8, "chance": 50, "rotation": 180 }, + { "vehicle": "dealership", "x": 3, "y": 13, "chance": 50, "rotation": 180 }, + { "vehicle": "dealership", "x": 3, "y": 18, "chance": 50, "rotation": 180 }, + { "vehicle": "dealership", "x": 20, "y": 2, "chance": 50, "rotation": 0 }, + { "vehicle": "dealership", "x": 20, "y": 7, "chance": 50, "rotation": 0 }, + { "vehicle": "dealership", "x": 20, "y": 12, "chance": 50, "rotation": 0 }, + { "vehicle": "dealership", "x": 38, "y": 19, "chance": 50, "rotation": 0 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "s_air_hangars_roof", + "object": { + "fill_ter": "t_metal_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " . . . . ", + " |222222223 |222222223 ", + " |........5 |........5 ", + " |........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 ", + " |-------53 |5-------3 ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_metal_flat_roof" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "s_air_term_roof", + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + "|22222222222222223 ", + "|................3 ", + "|................522223 ", + "|.........=...........3 ", + "|.....................3 ", + "|.....................3 ", + "|....:..........XX....3 ", + "|.....................3 ", + "|.....................3 ", + "||.......&............3 ", + " |...............5----3 ", + " |...............3 ", + " |...............3 ", + " |----5..........3 ", + " ------------ ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_air_atc_2" ], + "object": { + "fill_ter": "t_open_air", + "rows": [ + " ", + " |----5 ;;;;; ", + " |####3 ;;;;;;; ", + " |#<>#3 ;;;;;;; ", + " |#``#3 ;;;;;;; ", + " |####3 ;;;;;;; ", + " |5...3 ;;;;;;; ", + " |...3 ;;;;; ", + " |...3 ", + " |---3 ;;; ", + " ;;;;; ", + " ;;;;; ", + " ;;;;; ", + " ;;; ", + " ", + " ;;; ", + " ;;;;; ", + " ;;;;; ", + " ;;;;; ", + " ;;; ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { "#": "t_brick_wall", "`": "t_linoleum_white", ";": "t_metal_flat_roof", ">": "t_stairs_down", "<": "t_stairs_up" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_air_atc_3" ], + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + " hhhhhhhh ", + " habbgbah ", + " hb....bh ", + " hbfd..bh ", + " hbf.Eebh ", + " hb..eebh ", + " habbbbah ", + " hhhhhhhh ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { + "a": "t_brick_wall", + "b": "t_wall_glass", + " ": "t_open_air", + "d": "t_stairs_down", + ".": "t_linoleum_white", + "f": "t_console_broken", + "g": "t_door_glass_c", + "h": "t_metal_floor" + }, + "furniture": { "e": "f_table", "E": "f_chair" }, + "place_loot": [ { "group": "office_mess", "chance": 80, "repeat": [ 5 ], "x": [ 10, 13 ], "y": [ 2, 5 ] } ] + } + } +] diff --git a/data/json/mapgen/airport/s_airport_runway_private.json b/data/json/mapgen/airport/s_airport_runway_private.json new file mode 100644 index 0000000000000..332c3693b3711 --- /dev/null +++ b/data/json/mapgen/airport/s_airport_runway_private.json @@ -0,0 +1,75 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "s_air_runway_l", "s_air_runway_B", "s_air_runway_term", "s_air_runway", "s_air_runway_hangars", "s_air_runway_r" ] + ], + "object": { + "fill_ter": "t_pavement", + "rows": [ + "................................................................................................................................................", + ".cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.", + ".c............................................................................................................................................c.", + ".c............................................................................................................................................c.", + ".c............................................................................................................................................c.", + ".c............................................................................................................................................c.", + ".c.....___________________________________________________________________________________________________________________________________....c.", + ".c.....bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb....c.", + ".c.....______b_________b__________________________________________________________________________________________________________________....c.", + ".c....._____b_________b___________________________________________________________________________________________________________________....c.", + ".c.....____b_________b____________________________________________________________________________________________________________________....c.", + ".c.....___b_________b_____________________________________________________________________________________________________________________....c.", + ".c.....__b_________b______bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____bbbb____....c.", + ".c.....___b_________b_____________________________________________________________________________________________________________________....c.", + ".c.....____b_________b____________________________________________________________________________________________________________________....c.", + ".c....._____b_________b___________________________________________________________________________________________________________________....c.", + ".c.....______b_________b__________________________________________________________________________________________________________________....c.", + ".c.....bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb....c.", + ".c.....___________________________________________________________________________________________________________________________________....c.", + ".c..............................................._d____________________..........................._b________________b_........................c.", + ".c..............................................._d____________________...........................____________________........................c.", + ".c..............................................._d____________________..........................._b________________b_........................c.", + ".cccccccccccccccccccccccccccccccccccccccccccccccc_d____________________...........................____________________..ccccccccccccccccccccccc.", + "................................................c_d____________________..........................._b________________b_.........................." + ], + "terrain": { ".": "t_region_groundcover_urban", "_": "t_pavement", "b": "t_pavement_y", "c": "t_chainfence", "d": "t_conveyor" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_air_helicopter_pad" ], + "object": { + "fill_ter": "t_pavement", + "rows": [ + "________________________", + "________________________", + "________________________", + "_______bbbbbbbb_________", + "______bb______bb________", + "_____bb________bb_______", + "____bb__________bb______", + "__ bb____________bb_____", + "__bb___b______b___bb____", + "__b____b______b____b____", + "__b____b______b____b__ss", + "__b____b______b____b_sss", + "__b____bbbbbbbb____b_sss", + "__b____b______b____b_sss", + "__b____b______b____b__ss", + "__b____b______b____b___s", + "__bb___b______b___bb___s", + "___bb____________bb____s", + "____bb__________bb_____s", + "_____bb________bb______s", + "______bb______bb_______s", + "_______bbbbbbbb________s", + "_______________________s", + "_______________________s" + ], + "terrain": { "_": "t_pavement", "b": "t_pavement_y", "s": "t_sidewalk" }, + "place_vehicles": [ { "vehicle": "2seater2", "x": 10, "y": 10, "chance": 50, "rotation": 270 } ] + } + } +] diff --git a/data/json/mapgen/basement/basement_bionic.json b/data/json/mapgen/basement/basement_bionic.json index a5905d7378bce..729e4d713465f 100644 --- a/data/json/mapgen/basement/basement_bionic.json +++ b/data/json/mapgen/basement/basement_bionic.json @@ -65,7 +65,7 @@ { "group": "cleaning", "x": [ 11, 12 ], "y": 8, "chance": 70, "repeat": [ 1, 2 ] }, { "group": "surgery", "x": [ 8, 9 ], "y": 9, "chance": 70, "repeat": [ 1, 2 ] }, { "group": "bionics_common", "x": 7, "y": 9 }, - { "item": "anesthetic_kit", "x": 7, "y": 9 }, + { "item": "anesthetic_kit", "x": 7, "y": 9, "ammo": 100 }, { "item": "television", "x": 21, "y": 16, "chance": 95 }, { "item": "soap", "x": 19, "y": 21, "chance": 80 }, { "item": "towel", "x": 20, "y": 21, "chance": 80 }, diff --git a/data/json/mapgen/bunker.json b/data/json/mapgen/bunker.json index e0922fa507ebf..d99f896cae9cf 100644 --- a/data/json/mapgen/bunker.json +++ b/data/json/mapgen/bunker.json @@ -200,7 +200,7 @@ { "item": "whiskey", "x": 5, "y": 3 }, { "item": "glass", "x": 5, "y": 3 }, { "item": "militarymap", "x": 5, "y": 3 }, - { "item": "anesthetic_kit", "x": 17, "y": 4 }, + { "item": "anesthetic_kit", "x": 17, "y": 4, "ammo": 100 }, { "item": "television", "x": 17, "y": 13, "chance": 95 }, { "item": "stereo", "x": 19, "y": 15, "chance": 80 } ], @@ -295,7 +295,7 @@ { "group": "alcohol", "x": 5, "y": 3 }, { "item": "glass", "x": 5, "y": 3 }, { "item": "militarymap", "x": 5, "y": 3, "chance": 80 }, - { "item": "anesthetic_kit", "x": 17, "y": 4 }, + { "item": "anesthetic_kit", "x": 17, "y": 4, "ammo": 100 }, { "item": "television", "x": 17, "y": 13, "chance": 95 }, { "item": "stereo", "x": 19, "y": 15, "chance": 80 } ], diff --git a/data/json/mapgen/house/house33.json b/data/json/mapgen/house/house33.json new file mode 100644 index 0000000000000..d051d5c81420e --- /dev/null +++ b/data/json/mapgen/house/house33.json @@ -0,0 +1,185 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_33", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".&``````.%%%.```.%%%....", + "##=====##!!!#~~~#!!!#...", + "#&~~~~~~#~~~~~~~~~~~#...", + "#~~~~~~~#KG~~~~~~G~~~.[.", + "#~~~~~~~##oo##*##oo##...", + "#~~~~~~~# | |D d#...", + "#~~~~~~~# hh |D d#...", + "#N~~~~~~# ff |||+|#...", + "#NA~~~~~# ff |t__B#...", + "######*## hh |||_B#...", + ".^#III T| | +>|_So...", + "..o E || || |U|_t#..[", + "..#R RR |||+|#...", + "..#|||||| |RR D#...", + "..#6 |t_+ + o...", + "..#6 |8S| | #...", + "..#|+||||Y xx s|b I#...", + "..#1__FJJ H| @@#...", + "..o5_____ H| @@#...", + "..#34O_27 |d I#...", + "..##o#*##yHHHHs##oo##...", + "....````##oooo##^%%.....", + ".X..````............[...", + "........................" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "=": "t_door_metal_locked", + "&": "t_gates_control_brick", + "#": "t_brick_wall", + "~": "t_thconc_floor", + "A": "t_thconc_floor", + "N": "t_thconc_floor", + "K": "t_thconc_floor", + "G": "t_thconc_floor", + "`": "t_concrete", + "!": "t_railing", + "_": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white" + }, + "place_loot": [ + { "item": "hose", "x": 7, "y": 21 }, + { "item": "lawnmower", "x": 1, "y": 4 }, + { "item": "television", "x": 11, "y": 16 }, + { "item": "stereo", "x": 12, "y": 16 } + ], + "place_vehicles": [ + { "vehicle": "car", "x": 4, "y": 4, "chance": 35, "rotation": 270 }, + { "vehicle": "tricycle", "x": 6, "y": 22, "chance": 40, "status": 0 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_33_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + "|22222222222222222223 ", + "|...................3 ", + "|...................3 ", + "|...................3 ", + "|...................3 ", + "|....&.........N....3 ", + "|...................3 ", + "|...................3 ", + "|-5.................3 ", + " |.............=...3 ", + " |.................3 ", + " |.................3 ", + " |............X....3 ", + " |.................3 ", + " |.................3 ", + " |.................3 ", + " |.................3 ", + " |.................3 ", + " |.................3 ", + " |-----|......5----3 ", + " |------| ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_33_basement", + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ||||||||||||| ", + " |3.........z| ", + " |........z.U| ", + " |..........U| ", + " |.........z.| ", + " |||||||......|||||| ", + " |1...........+<+.Z| ", + " |............|U|.W| ", + " |............|||||| ", + " |...........2.....| ", + " |.................| ", + " |.................| ", + " |.................| ", + " |.................| ", + " |.................| ", + " |.................| ", + " |||||||.F...g|||||| ", + " |||||||| ", + " ", + " " + ], + "palettes": [ "basement_empty" ], + "nested": { + "1": { + "chunks": [ + [ "null", 70 ], + [ "room_6x6_office_E", 40 ], + [ "room_6x6_brewer_E", 20 ], + [ "room_6x6_junk_E", 50 ], + [ "6x6_sewing_open", 20 ] + ] + }, + "2": { + "chunks": [ + [ "null", 70 ], + [ "room_6x6_guns_W", 5 ], + [ "room_6x6_brewer_W", 10 ], + [ "6x6_electronics_open", 20 ], + [ "room_6x6_junk_W", 20 ] + ] + }, + "3": { + "chunks": [ + [ "null", 80 ], + [ "5x5_gym_N", 20 ], + [ "5x5_gym_S", 20 ], + [ "5x5_gym_E", 20 ], + [ "5x5_gym_W", 20 ], + [ "livingroom_5x5_S_1", 30 ], + [ "livingroom_5x5_E_1", 30 ], + [ "livingroom_5x5_N_1", 30 ], + [ "livingroom_5x5_W_1", 30 ], + [ "livingroom_5x5_S_2", 30 ], + [ "livingroom_5x5_E_2", 30 ], + [ "livingroom_5x5_N_2", 30 ], + [ "livingroom_5x5_W_2", 30 ], + [ "home_office_4x4_N", 20 ], + [ "home_office_4x4_S", 20 ] + ] + } + } + } + } +] diff --git a/data/json/mapgen/house/house34.json b/data/json/mapgen/house/house34.json new file mode 100644 index 0000000000000..de6e575f1270f --- /dev/null +++ b/data/json/mapgen/house/house34.json @@ -0,0 +1,180 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_34" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + ".........p```!..........", + ".....[....```!.%%%......", + "....%%%.^#o*o##oo####...", + "..##o##o##y L| xx #...", + "..#I dd| ; H #...", + ".%#@@ | ; llH #...", + ".%o@@ | ; | HHHs #...", + ".%#I RR | ; #%..", + "..#|+|||+| ; Er#%..", + "..#D |6+ |RR r#...", + "..#||||| |||| |#...", + "..#D |> ||+|hfh_J_7#...", + ".%#|+|||+|5_|hfh_J_4#%..", + ".%# |t_|______3o%..", + "..o @@ d|BB|F__O512#%..", + "..#I@@I d##o##*##o###^..", + "..####o###:::~~~~GKG$%..", + "....!!!``=~~~~~~~~~~$%..", + "...`````!#$$#$=$$#$$#!..", + "...`````!!%%!%.%%!%%!!..", + "....[...................", + "........................", + ".................[......", + "........................" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "$": "t_screened_porch_wall", + "=": "t_screen_door_c", + "#": "t_adobe_brick_wall", + ";": "t_carpet_green", + "~": "t_thconc_floor", + "A": "t_thconc_floor", + "N": "t_thconc_floor", + "K": "t_thconc_floor", + "G": "t_thconc_floor", + ":": "t_thconc_floor", + "`": "t_concrete", + "_": "t_linoleum_white", + "J": "t_linoleum_white", + "h": "t_linoleum_white", + "f": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white" + }, + "furniture": { "!": "f_region_flower", ":": [ "f_indoor_plant", "f_indoor_plant_y" ] }, + "place_loot": [ + { "item": "hose", "x": 10, "y": 1 }, + { "item": "television", "x": 16, "y": 3 }, + { "item": "stereo", "x": 15, "y": 3, "chance": 50 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_34_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " ", + " |22222222223 ", + " |2222225..........3 ", + " |.................3 ", + " |.................3 ", + " |.................3 ", + " |.................3 ", + " |............N....3 ", + " |.................3 ", + " |....&............3 ", + " |.................3 ", + " |............=....3 ", + " |.................3 ", + " |.................3 ", + " |.................5 ", + " |------|..........3 ", + " |..........3 ", + " |----------3 ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_34_basement", + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " |||||||||||| ", + " ||||||||2.........| ", + " |3................| ", + " |.................| ", + " |.................| ", + " |.................| ", + " |.................| ", + " |.................| ", + " |.................| ", + " |g..<.............| ", + " |W................| ", + " |J........4.......| ", + " |J................| ", + " |Z.UU.F...........| ", + " ||||||||..........| ", + " |..........| ", + " |||||||||||| ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "basement_empty" ], + "nested": { + "2": { + "chunks": [ + [ "null", 70 ], + [ "room_10x10_recording_studio_W", 5 ], + [ "room_10x10_woodworker_S", 10 ], + [ "room_10x10_guns_S", 10 ], + [ "room_10x10_junk_S", 30 ] + ] + }, + "3": { + "chunks": [ [ "null", 95 ], [ "7x7_tent_indoors", 5 ], [ "room_7x7_recroom_S", 20 ], [ "7x7_band_practice_open", 20 ] ] + }, + "4": { + "chunks": [ + [ "null", 80 ], + [ "5x5_holdout_W", 2 ], + [ "5x5_gym_N", 10 ], + [ "5x5_gym_S", 10 ], + [ "5x5_gym_E", 10 ], + [ "5x5_gym_W", 10 ], + [ "livingroom_5x5_S_1", 30 ], + [ "livingroom_5x5_E_1", 30 ], + [ "livingroom_5x5_N_1", 30 ], + [ "livingroom_5x5_W_1", 30 ], + [ "livingroom_5x5_S_2", 30 ], + [ "livingroom_5x5_E_2", 30 ], + [ "livingroom_5x5_N_2", 30 ], + [ "livingroom_5x5_W_2", 30 ], + [ "home_office_4x4_N", 20 ], + [ "home_office_4x4_S", 20 ] + ] + } + } + } + } +] diff --git a/data/json/mapgen/house/house35.json b/data/json/mapgen/house/house35.json new file mode 100644 index 0000000000000..96dc7345ccf1e --- /dev/null +++ b/data/json/mapgen/house/house35.json @@ -0,0 +1,110 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_35" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "........p`..............", + "....%%%%.`.%%%..........", + "...##oo##`##o##````````.", + ".###R I|*|rrR#````````.", + ".#D+ @@| + h *````````.", + ".#||d | |E T##oo##```.", + ".#D|||+|| |||||O152#```.", + ".#+| + II|F___3#```.", + "!# d ||+| J___7#*##.", + "!o |S_|H E ____6|~~#.", + "!#@@ |t_|H hfh |ANo!", + ".#I |BB|H hfh |~N#!", + ".#|||||||sHH +~~o!", + "!#tS|D|U|RRR |y Y|qq#.", + "!o__+ |+| ||xx |####.", + "!#BB| | + T#^...", + ".#|||+| ##oo### lHo!...", + ".#dbd #G::~~* lHo!...", + ".# o~~~~~#sHHI#!...", + ".o @@ *~~~~~##oo##....", + ".# I@@I #~~:~~:$........", + "^##o##o##$$$=$$$........", + "...%%%%%...```.......u..", + "........................" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "$": "t_screened_porch_wall", + "=": "t_screen_door_c", + "#": "t_adobe_brick_wall", + "~": "t_thconc_floor", + "A": "t_thconc_floor", + "N": "t_thconc_floor", + "K": "t_thconc_floor", + "G": "t_thconc_floor", + ":": "t_thconc_floor", + "q": "t_thconc_floor", + "`": "t_concrete", + "_": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "6": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white" + }, + "furniture": { "!": "f_region_flower", ":": [ "f_indoor_plant", "f_indoor_plant_y" ] }, + "place_loot": [ + { "item": "hose", "x": 9, "y": 22 }, + { "item": "television", "x": 16, "y": 14 }, + { "item": "stereo", "x": 15, "y": 14, "chance": 20 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_35_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " ", + " |22222 22223 ", + " |2|....222...3 ", + " |............3 ", + " |............3----3 ", + " |.................3 ", + " |.................3 ", + " |.................3223 ", + " |....................3 ", + " |....................3 ", + " |......&.............3 ", + " |....................3 ", + " |....................3 ", + " |..........N......5--3 ", + " |.................3 ", + " |.......=.........3 ", + " |.................3 ", + " |.................3 ", + " |.............3---3 ", + " |.............3 ", + " 5-------------3 ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + } +] diff --git a/data/json/mapgen/house/house36.json b/data/json/mapgen/house/house36.json new file mode 100644 index 0000000000000..6a960ea1e9251 --- /dev/null +++ b/data/json/mapgen/house/house36.json @@ -0,0 +1,166 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_36" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + ".```````........```.!!!.", + ".```````........```.![!.", + ".```````##oooo##```.!!!.", + ".```````#RE y##*#oo##.", + ".```````o d|L y xx#^", + ".```````# d|r #.", + ".``````:# @@ |r llE#.", + ".```````#I@@I | HHs#.", + ".``````:#||||| | #.", + ".&``````* |>| |R R#.", + "##=====##i |+|+|R R#.", + "#&~~~~~U#i || |#.", + "o~~~~~~~#|+|y T#.", + "#~~~~~~q#S_||||||| #.", + "#~~~~~~q#t9|32F1O| hh #.", + "#~~~~~~##|||4____J ff #.", + "#~~~~~~*~~+______J ff #.", + "o~~~~~~#~A|+||____ hh #.", + "#~~~~~~#NN|_S|_45|y #.", + "#########o#_t#*#o##oo##.", + "......^...##o#..........", + "................[.......", + "....[...............[...", + "........................" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "=": "t_door_metal_locked", + "&": "t_gates_control_brick", + "#": "t_brick_wall", + "~": "t_thconc_floor", + "q": "t_thconc_floor", + "U": "t_thconc_floor", + "A": "t_thconc_floor", + "N": "t_thconc_floor", + "`": "t_concrete", + ":": "t_concrete", + "_": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white" + }, + "furniture": { "!": "f_region_flower", ":": [ "f_indoor_plant", "f_indoor_plant_y" ] }, + "place_loot": [ + { "item": "hose", "x": 10, "y": 20 }, + { "item": "lawnmower", "x": 1, "y": 4 }, + { "item": "television", "x": 20, "y": 4 }, + { "item": "stereo", "x": 21, "y": 4 } + ], + "place_vehicles": [ + { "vehicle": "car", "x": 3, "y": 14, "chance": 60, "rotation": 270 }, + { "vehicle": "tricycle", "x": 4, "y": 7, "chance": 40, "status": 0 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_36_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " ", + " |22222222222223 ", + " |.............5 ", + " |...........X.3 ", + " |....N........3 ", + " |.............3 ", + " |.............3 ", + " |.............3 ", + " |.............3 ", + "|2222222|.............3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "|.....&.......=.......3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "|-----5---|..3--------3 ", + " |--3 ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_36_basement", + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " |||||||| ", + " |....UU|||||||| ", + " |.z.z...2.....| ", + " |..z..........| ", + " |F............| ", + " |g............| ", + " ||||||........| ", + " |WZ|<|........| ", + " |..|+|........| ", + " |.............| ", + " |1............| ", + " |.............| ", + " |.............| ", + " ||.............| ", + " |..............| ", + " |..............| ", + " |..............| ", + " ||||..|||||||||| ", + " |||| ", + " ", + " ", + " " + ], + "palettes": [ "basement_empty" ], + "nested": { + "2": { + "chunks": [ + [ "null", 70 ], + [ "room_6x6_office_S", 35 ], + [ "room_6x6_woodworker", 10 ], + [ "room_6x6_guns_S", 10 ], + [ "room_6x6_brewer_S", 10 ], + [ "room_6x6_bike", 10 ], + [ "6x6_electronics_open", 10 ], + [ "6x6_sewing_open", 10 ], + [ "room_6x6_junk_S", 20 ] + ] + }, + "1": { + "chunks": [ [ "null", 95 ], [ "7x7_tent_indoors", 5 ], [ "room_7x7_recroom_N", 20 ], [ "7x7_band_practice_open", 20 ] ] + } + } + } + } +] diff --git a/data/json/mapgen/house/house37.json b/data/json/mapgen/house/house37.json new file mode 100644 index 0000000000000..eec5731fd05a6 --- /dev/null +++ b/data/json/mapgen/house/house37.json @@ -0,0 +1,186 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_37" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + ".&``````......``p.......", + "##=====##!!!!!``.%%%....", + "#&~~~~~~##$$$#$;##o##...", + "#~~~~~~~#~A~~~~~#IIT#...", + "#~~~~~~~##ooo##*#h #^..", + "#~~~~~~~#R T| |||+##..", + "#~~~~~~~#R @@| |t|_B#..", + "#~~~~~~~#b @@| |___Bo..", + "#N~~~~Uq#d I| |S8_Q#..", + "#NA~#####|+|||| |||+|#..", + "###*#B__+ >#..", + "..# |BtS|| || |||+|#..", + "..o |||||Y y| |D+ d#..", + "..# |D+ o..", + ".%# hfh sHHH ||| #..", + ".%o hfh Elll R|RR E#..", + ".%# R| #..", + "..#|JJ_|| E R| @@ o..", + ".^#6___F| xxx R|I@@I#..", + "..#4___7##oo#oo###oo##..", + "..#O____*`::`....!!!!%..", + "..#3251n#````.....X.....", + "..##o#o##:```.!![!!.!%..", + ".......%%%%%%%%%%%%%%%.." + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "=": "t_door_metal_locked", + "&": "t_gates_control_brick", + "#": "t_brick_wall", + "~": "t_thconc_floor", + "q": "t_thconc_floor", + "U": "t_thconc_floor", + "A": "t_thconc_floor", + "N": "t_thconc_floor", + "`": "t_concrete", + ":": "t_concrete", + "_": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "Q": "t_linoleum_white", + "6": "t_linoleum_white", + "n": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white", + "$": "t_screened_porch_wall", + ";": "t_screen_door_c" + }, + "furniture": { "!": "f_region_flower", ":": [ "f_indoor_plant", "f_indoor_plant_y" ] }, + "place_loot": [ + { "item": "hose", "x": 16, "y": 20, "chance": 35 }, + { "item": "lawnmower", "x": 15, "y": 20, "chance": 35 }, + { "item": "television", "x": 12, "y": 18 }, + { "item": "stereo", "x": 13, "y": 18, "chance": 35 } + ], + "place_vehicles": [ { "vehicle": "car", "x": 4, "y": 4, "chance": 35, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_37_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + "|22222223 ", + "|.......3222222222223 ", + "|...................3 ", + "|...................5 ", + "|...................33 ", + "|....................3 ", + "|....................3 ", + "|.......X............3 ", + "|....................3 ", + "|-|..................3 ", + " |.............N....3 ", + " |..................3 ", + " |..................3 ", + " |.....=............3 ", + " |..................3 ", + " |..................3 ", + " |.........&........3 ", + " 5..................3 ", + " |.....3------------3 ", + " |.....3 ", + " |.....3 ", + " |-----3 ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_37_basement", + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + "||||||||| ", + "|..F.g..||||||||||||| ", + "|...................| ", + "|...................| ", + "|...................|| ", + "|...................W| ", + "|...................Z| ", + "|...................J| ", + "|..1................J| ", + "|||.................<| ", + " |..........2.......| ", + " |..................| ", + " |..................| ", + " |..................| ", + " |..................| ", + " |..................| ", + " |..................| ", + " |..................| ", + " |.....|||||||||||||| ", + " |.....| ", + " |.....| ", + " ||||||| ", + " " + ], + "palettes": [ "basement_empty" ], + "place_nested": [ + { + "chunks": [ + [ "null", 60 ], + [ "5x5_holdout_W", 2 ], + [ "5x5_gym_N", 10 ], + [ "5x5_gym_S", 10 ], + [ "5x5_gym_E", 10 ], + [ "5x5_gym_W", 10 ], + [ "livingroom_5x5_S_1", 30 ], + [ "livingroom_5x5_E_1", 30 ], + [ "livingroom_5x5_N_1", 30 ], + [ "livingroom_5x5_W_1", 30 ], + [ "livingroom_5x5_S_2", 30 ], + [ "livingroom_5x5_E_2", 30 ], + [ "livingroom_5x5_N_2", 30 ], + [ "livingroom_5x5_W_2", 30 ], + [ "home_office_4x4_N", 20 ], + [ "home_office_4x4_S", 20 ] + ], + "x": [ 2, 15 ], + "y": 3 + } + ], + "nested": { + "2": { "chunks": [ [ "null", 70 ], [ "8x8_gym_N", 35 ], [ "room_8x8_junk_N", 20 ], [ "room_8x8_hobby_N", 10 ] ] }, + "1": { + "chunks": [ + [ "null", 75 ], + [ "room_10x10_recording_studio_N", 5 ], + [ "room_10x10_woodworker_N", 10 ], + [ "room_10x10_junk_N", 30 ], + [ "room_10x10_guns_N", 5 ] + ] + } + } + } + } +] diff --git a/data/json/mapgen/house/house38.json b/data/json/mapgen/house/house38.json new file mode 100644 index 0000000000000..5ef2a01d75ff7 --- /dev/null +++ b/data/json/mapgen/house/house38.json @@ -0,0 +1,114 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_38" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "........p`!.....&`````%.", + "....%%%.!`!..[.##=====#.", + "...##o##!`!....#&~~~~~#.", + "...#D d#$;$#$$$#~~~~~~#.", + "...#D d#~~~~G::#~~~~~~#.", + "..##|+|#*o##oo##~~~~~~#^", + "..#BB_S| L| hhh#~~~~~~##", + "..oBB_t| fff#~~~~~~U#", + "..#BB_8| hhh#~~~~~~~o", + "..#||+|| #q~~~~~No", + "..#D| R| | RRy#q~~~~AN#", + "..#+| + |||||###*#####", + "..# | rrT |6___1#.", + "..o d| h ____O#.", + "..#b | EsE ____2#.", + "..o @@ |H y|F_453#.", + "..#I@@I|H l x##*#o##.", + "..##oo##H l a#~~~~~$.", + "....%%^#H E x#~~~::$.", + ".......##oo##oo##$;$$$$.", + ".........%%..%%..```!!!.", + ".................`````..", + "........................", + "........................" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "=": "t_door_metal_locked", + "&": "t_gates_control_brick", + "#": "t_brick_wall", + "~": "t_thconc_floor", + "q": "t_thconc_floor", + "U": "t_thconc_floor", + "A": "t_thconc_floor", + "G": "t_thconc_floor", + "N": "t_thconc_floor", + "`": "t_concrete", + ":": "t_thconc_floor", + "_": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "6": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white", + "$": "t_screened_porch_wall", + ";": "t_screen_door_c" + }, + "furniture": { "!": "f_region_flower", ":": [ "f_indoor_plant", "f_indoor_plant_y" ] }, + "place_loot": [ + { "item": "hose", "x": 19, "y": 20, "chance": 35 }, + { "item": "lawnmower", "x": 22, "y": 8, "chance": 35 }, + { "item": "television", "x": 15, "y": 16 }, + { "item": "stereo", "x": 15, "y": 18, "chance": 35 } + ], + "place_vehicles": [ { "vehicle": "car", "x": 19, "y": 5, "chance": 35, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_38_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " |2222223 ", + " |2222 |......3 ", + " |...32222222|......3 ", + " |..................3 ", + " ||..................3 ", + " |...................53", + " |....................3", + " |....................3", + " |......X.......N.....3", + " |....................3", + " |...................33", + " |...................3 ", + " |.......=.&.........3 ", + " |...................3 ", + " |...................3 ", + " |...................3 ", + " |----5..............3 ", + " |..............3 ", + " |--------------3 ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + } +] diff --git a/data/json/mapgen/house/house39.json b/data/json/mapgen/house/house39.json new file mode 100644 index 0000000000000..cf8ff2c4f7083 --- /dev/null +++ b/data/json/mapgen/house/house39.json @@ -0,0 +1,168 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_39" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "..`````..%%%%.```p%%%%..", + ".&`````^#$$$##$;$##oo##.", + "##=====##::~~~~~~#D y#.", + "#&~~~~~~#~~~~~~~~#d I#.", + "#~~~~~~~######o*o# @@#.", + "#~~~~~~~# |L y| @@#.", + "#~~~~~~~#hh r| I#.", + "#~~~~~~~#ff r|+|||#.", + "#~~~~~~~#hh |BB#.", + "#~~~~~~~# |R E +__o.", + "#~~~~~~~#| ||R l |St#.", + "#qqq~~~~#2_F|R E|+|||#.", + "#######*#O_4| | RR#.", + ".#B_t|6 |1_3| s| #.", + ".#B_S|6 |5__ H| #.", + ".#__8|| ___ H| @@ #.", + ".#|+||> _AA|E s|s@@d#^", + ".# D||+|JJJ##]]###oo##.", + ".#I |d #ooo#~~~~~$.....", + ".#@@ #~~~~~GKG~$..u..", + ".#@@ *~~~~~~~~:$...[.", + ".#I ER#$$$$$$;$$$.....", + ".##o##o##.....```...[...", + "...........[............" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "]": "t_door_glass_c", + "=": "t_door_metal_locked", + "&": "t_gates_control_brick", + "#": "t_brick_wall", + "~": "t_thconc_floor", + "q": "t_thconc_floor", + "U": "t_thconc_floor", + "K": "t_thconc_floor", + "G": "t_thconc_floor", + "A": "t_linoleum_white", + "N": "t_thconc_floor", + "`": "t_concrete", + ":": "t_thconc_floor", + "_": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white", + "$": "t_screened_porch_wall", + ";": "t_screen_door_c" + }, + "furniture": { "!": "f_region_flower", ":": [ "f_indoor_plant", "f_indoor_plant_y" ] }, + "place_loot": [ { "item": "hose", "x": 19, "y": 18, "chance": 35 } ], + "place_vehicles": [ { "vehicle": "car", "x": 4, "y": 6, "chance": 35, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_39_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " 222222222222223 ", + "|22222225.............3 ", + "|.....................3 ", + "|.......&........:....3 ", + "|.....................3 ", + "|.....................3 ", + "|...........=.........3 ", + "|........N............3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "||....................3 ", + " |....................3 ", + " |....................3 ", + " |....................3 ", + " |....................5 ", + " |................----3 ", + " |................3 ", + " |................3 ", + " |................3 ", + " |......3---------3 ", + " |------3 ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_39_basement", + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ||||||||||||||| ", + " |1............| ", + " |.............| ", + " |.............| ", + " |.............| ", + " |.............| ", + " |.............| ", + " |.............| ", + " |.............| ", + " |.............| ", + " |.............| ", + " ||||||||.............| ", + " |.WJZJJ..............| ", + " |z...................| ", + " |F.......2...........| ", + " |gz..<...............| ", + " |................||||| ", + " |................| ", + " |................| ", + " |.....z..........| ", + " |.UUzz.||||||||||| ", + " |||||||| ", + " " + ], + "palettes": [ "basement_empty" ], + "nested": { + "1": { "chunks": [ [ "null", 75 ], [ "workoutroom_12x12", 5 ], [ "tvroom_12x12", 10 ], [ "recroom_12x12", 30 ] ] }, + "2": { + "chunks": [ + [ "null", 60 ], + [ "5x5_holdout_W", 2 ], + [ "5x5_gym_N", 10 ], + [ "5x5_gym_S", 10 ], + [ "5x5_gym_E", 10 ], + [ "5x5_gym_W", 10 ], + [ "livingroom_5x5_S_1", 30 ], + [ "livingroom_5x5_E_1", 30 ], + [ "livingroom_5x5_N_1", 30 ], + [ "livingroom_5x5_W_1", 30 ], + [ "livingroom_5x5_S_2", 30 ], + [ "livingroom_5x5_E_2", 30 ], + [ "livingroom_5x5_N_2", 30 ], + [ "livingroom_5x5_W_2", 30 ], + [ "home_office_4x4_N", 20 ], + [ "home_office_4x4_S", 20 ] + ] + } + } + } + } +] diff --git a/data/json/mapgen/house/house40.json b/data/json/mapgen/house/house40.json new file mode 100644 index 0000000000000..7fd863cce852f --- /dev/null +++ b/data/json/mapgen/house/house40.json @@ -0,0 +1,106 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_40" ], + "object": { + "fill_ter": "t_floor_waxed", + "rows": [ + "...........```p.........", + "...........```.##:#:#:##", + ".$$$$$$$$$$$;$$#BB|y I#", + ".$%!!!!!!!%```.#_t| @@#", + ".$%.[...X..```.#_S| @@#", + ".$^%%%%!!!%```.#+||b I#", + "######%%%%%```.# :", + "#t__9##:###:*:##+||||Dd#", + ":8__||Q__Z|y I| |dD|||#", + "#BB_S|U__W|L r| + I#", + "#||+|||+|||& &| | @@:", + "#R + |s @@:", + ": ||+|+||||||| |E b#", + "# |S_| 6|1234| ||||||#", + ": |t_| 6|O__AJ RRT#", + "#d |||||||4__AJ hh :", + "#d @@I|DD|5____ ff r :", + ": @@ |n__AJ ff rh :", + ": |7__JJ hh r y#", + ": ##::## #::#", + "#yHHHy|DD#````: E E :...", + "##:::#####````/ lll :...", + "......^...````: HHH :...", + "..........````#:::::#..." + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "&": "t_window_stained_blue", + "#": "t_rock_wall", + "A": "t_linoleum_gray", + "/": "t_door_glass_c", + "`": "t_concrete", + "_": "t_linoleum_gray", + "U": "t_linoleum_gray", + "Z": "t_linoleum_gray", + "W": "t_linoleum_gray", + "Q": "t_linoleum_gray", + "J": "t_linoleum_gray", + "1": "t_linoleum_gray", + "2": "t_linoleum_gray", + "3": "t_linoleum_gray", + "n": "t_linoleum_gray", + "4": "t_linoleum_gray", + "5": "t_linoleum_gray", + "7": "t_linoleum_gray", + "8": "t_linoleum_gray", + "9": "t_linoleum_gray", + "O": "t_linoleum_gray", + "F": "t_linoleum_gray", + "B": "t_linoleum_gray", + "S": "t_linoleum_gray", + "t": "t_linoleum_gray", + "$": "t_drystone_wall", + ";": "t_chaingate_l" + }, + "furniture": { "!": "f_region_flower" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_40_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " |22222223", + " |.......3", + " |.......3", + " |.......3", + " |.......3", + "|25222 |.......3", + "|....3222222222|.......3", + "|......................3", + "|......................3", + "|......................3", + "|......................3", + "|.................&....3", + "|......................3", + "|........N........=....3", + "|......................3", + "|......................3", + "|......................3", + "|......................3", + "|........3----|.....|--3", + "|........3 |.....3 ", + "|-----5--3 |.....3 ", + " |.....3 ", + " |-----3 " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + } +] diff --git a/data/json/mapgen/house/house41.json b/data/json/mapgen/house/house41.json new file mode 100644 index 0000000000000..73284cd139b07 --- /dev/null +++ b/data/json/mapgen/house/house41.json @@ -0,0 +1,105 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_41" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "......p_____!_____p.....", + "......._____!_____......", + "......._____!_____......", + "...X..._____!_____..[...", + "......._____!_____......", + "..jjj.._____!_____......", + ".##o##._____!_____``....", + "^#I@I#!_____._____%`....", + ".# @ ##*#o##.##o##%`....", + ".o |L Exx#.# R##*o##.", + ".#Dd + l o.oI |L y#^", + ".#|||| HHH#.#@@ | To.", + ".o8;;+ o.#@@ |x H#.", + ".#9tS| sRR#.o + H#.", + ".#|||| ####.#DdE| Es#.", + ".#17F h#^...##||| o.", + ".#O;; fo%.`YY#WZ; R#.", + ".o5;; h#%.```*;;;||+|#.", + ".#42;|;;#..``G#7;3|S;8#.", + ".###*#WZ#..``KoO;F|t;9#.", + "..G``####..```#42S##o##.", + "..```.........##o##^%%..", + ".......u..[....%%%......", + "..[....................." + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "#": "t_adobe_brick_wall", + "`": "t_concrete", + "K": "t_concrete", + "G": "t_concrete", + "Y": "t_concrete", + "_": "t_pavement", + "Z": "t_linoleum_white", + "W": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "9": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white", + ";": "t_linoleum_white" + }, + "furniture": { "!": "f_region_flower" }, + "place_loot": [ { "item": "television", "x": 10, "y": 9 }, { "item": "television", "x": 18, "y": 12 } ], + "place_vehicles": [ + { "vehicle": "car", "x": 8, "y": 3, "chance": 35, "rotation": 270 }, + { "vehicle": "motorcycle_sidecart", "x": 14, "y": 2, "chance": 35, "rotation": 270 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_41_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " |2223 ", + " 5...3 ", + " |...3222223 |2223 ", + " |.........3 |...322223 ", + " |.=.......3 |........5 ", + " |....X....3 |.....=..3 ", + " |.........3 |........3 ", + " |..N......3 |........3 ", + " |......5--3 |...N....3 ", + " |......3 |-.......3 ", + " |......3 |.......3 ", + " |...&..3 |...&...3 ", + " |......3 |.......3 ", + " |---|..3 |.......3 ", + " |--3 |...5---3 ", + " |---3 ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + } +] diff --git a/data/json/mapgen/house/house42.json b/data/json/mapgen/house/house42.json new file mode 100644 index 0000000000000..7ae221387650c --- /dev/null +++ b/data/json/mapgen/house/house42.json @@ -0,0 +1,113 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_42" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "............``p.........", + "............``....[.....", + "..##oo##o##.``..........", + "..#REII| d#.``..%%%%%%^.", + "..oy h + D#!``!##oooo##.", + "..# |||##o*##x Es #.", + "..# @@ |y L|x Ho.", + "..#I@@ + llH#.", + "..#||||| hfh HHHs#.", + "..o8tS| hfh o.", + "..#9;;+ T| yRRR#.", + "..#||||;;;###&## ||||#.", + "..#F;JJ;AJ#jj~~# + dD#.", + "..o5;;;;AJ#j~~~#|+| o.", + "..#1;;;;;J#j~~~#S;| I#.", + "..#23O47;Y#~~~~ot;| @@o.", + "..##o##|;|#$$/$#BB|b I#.", + ".....^#W;6#````#####o##.", + "......#Z;6#.............", + "......##*##.............", + "...[...............[....", + "........................", + ".............[.....[....", + "........................" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "#": "t_brick_wall", + "&": "t_door_glass_c", + "~": "t_thconc_floor", + "j": "t_thconc_floor", + "`": "t_concrete", + "_": "t_pavement", + ";": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white", + "A": "t_linoleum_white", + "6": "t_linoleum_white", + "Z": "t_linoleum_white", + "W": "t_linoleum_white", + "9": "t_linoleum_white", + "Y": "t_linoleum_white", + "$": "t_screened_porch_wall", + "/": "t_screen_door_c" + }, + "furniture": { "!": "f_region_flower", ":": [ "f_indoor_plant", "f_indoor_plant_y" ] }, + "place_loot": [ + { "item": "hose", "x": 19, "y": 18, "chance": 35 }, + { "item": "television", "x": 16, "y": 5, "chance": 35 }, + { "item": "stereo", "x": 16, "y": 6, "chance": 35 } + ], + "place_vehicles": [ { "vehicle": "tricycle", "x": 13, "y": 14, "chance": 35, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "house_42_roof", + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " ", + " |22222223 ", + " |.......3 ", + " |.......3 |2222253 ", + " |.......32222|......3 ", + " |..............X....3 ", + " |...................3 ", + " |...................3 ", + " |...................3 ", + " |...........N.......3 ", + " |...................3 ", + " |.....=.........&...3 ", + " |...................3 ", + " |...................3 ", + " |...................3 ", + " |---5...3----|......3 ", + " |...3 |------3 ", + " |...3 ", + " |---3 ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + } +] diff --git a/data/json/mapgen/lab/lab_floorplans.json b/data/json/mapgen/lab/lab_floorplans.json index d839a92416446..7bd70ed17d36d 100644 --- a/data/json/mapgen/lab/lab_floorplans.json +++ b/data/json/mapgen/lab/lab_floorplans.json @@ -542,7 +542,7 @@ "7": "t_console", "r": "t_floor_blue" }, - "place_loot": [ { "item": "anesthetic_kit", "x": 15, "y": 11 } ], + "place_loot": [ { "item": "anesthetic_kit", "x": 15, "y": 11, "ammo": 100 } ], "mapping": { "r": { "items": [ diff --git a/data/json/mapgen/lab/lab_floorplans_finale1level.json b/data/json/mapgen/lab/lab_floorplans_finale1level.json index 0a7db4fa0685a..ec5402e4a6b58 100644 --- a/data/json/mapgen/lab/lab_floorplans_finale1level.json +++ b/data/json/mapgen/lab/lab_floorplans_finale1level.json @@ -45,7 +45,7 @@ "r": "t_floor_blue" }, "place_loot": [ - { "item": "anesthetic_kit", "x": 15, "y": 11, "repeat": [ 4, 9 ] }, + { "item": "anesthetic_kit", "x": 15, "y": 11, "repeat": [ 4, 9 ], "ammo": 100 }, { "item": "id_science", "x": 7, "y": 11, "chance": 100 } ], "mapping": { diff --git a/data/json/mapgen/mall/mall_basement.json b/data/json/mapgen/mall/mall_basement.json new file mode 100644 index 0000000000000..3fa32164343a8 --- /dev/null +++ b/data/json/mapgen/mall/mall_basement.json @@ -0,0 +1,175 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ + "mall_a_56_basement", + "mall_a_57_basement", + "mall_a_58_basement", + "mall_a_59_basement", + "mall_a_60_basement", + "mall_a_61_basement", + "mall_a_62_basement" + ] + ], + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||#####||||||#####||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ", + " |................................................................#<6<#......#<6<#..............................................................| ", + " |................................................................#666########666#..............................................................| ", + " |......................................................###########6#+#(*FF*)#+#6###########....................................................| ", + " |||......................................................#EEEE#EEEE#H#***,*,****#H#EEEE#EEEE#....................................................| ", + " |........................................................#EEEE#EEEE#****,*,*,*,***#EEEE#EEEE#....................................................| ", + " |......................................................###H++H#H++H#*,*,*,*,*,*,**#H++H#H++H###..................................................| ", + " |......................................................#******Ŋ*******,*,*,*,*,*,******Ŋ******#..................................................| ", + " |......................................................#*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,**#..................................................| ", + " |......................................................#**,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*#..................................................| ", + " |......................................................#F,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*F#..................................................| ", + " |......................................................#F*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,F#..................................................| ", + " |......................................................#F,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*F#..................................................| ", + " |......................................................#**,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*#..................................................| ", + " |......................................................#Y()**,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*()Y#..................................................| ", + " |......................................................####*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,**####..................................................| ", + " |.........................................................#**,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*#.....................................................| ", + " |.........................................................#*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,**#.....................................................| ", + " |.........................................................#F*,*,*,*,*,*,*}*,{,*,*,*,*,*,*,F#.....................................................| ", + " |.........................................................#F,*,*,*,*,*,*,{,*}*,*,*,*,*,*,*F#.....................................................| ", + " |.........................................................#F*,*,*,*,*,*,*}*,{,*,*,*,*,*,*,F#.....................................................| ", + " |.........................................................#Y,*,*,*,*,*,*,{,*}*,*,*,*,*,*,*Y#.....................................................| ", + " |.........................................................#**,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*#.....................................................| ", + " |.........................................................#*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,**#.....................................................| " + ], + "palettes": [ "mall_palette_basement" ], + "terrain": { + "#": "t_brick_wall", + "*": "t_linoleum_gray", + ",": "t_linoleum_white", + "6": "t_carpet_red", + ".": "t_rock", + "{": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "}": "t_linoleum_white", + "(": "t_linoleum_gray", + ")": "t_linoleum_gray", + "F": "t_linoleum_gray" + }, + "furniture": { "{": "f_bench", "}": "f_bench", "Y": "f_trashcan" }, + "vendingmachines": { "(": { "item_group": "vending_drink" }, ")": { "item_group": "vending_food" } }, + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 72, 95 ], "y": [ 8, 23 ], "density": 0.4 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ + "mall_a_65_basement", + "mall_a_66_basement", + "mall_a_67_basement", + "mall_a_68_basement", + "mall_a_69_basement", + "mall_a_70_basement", + "mall_a_71_basement" + ] + ], + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " |.........................................................#{*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,{#.....................................................| ", + " |.........................................................#{,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*{#.....................................................| ", + " |.........................................................#{*,*,*,*,*,*,*}*,{,*,*,*,*,*,*,{#.....................................................| ", + " |.........................................................#Y,*,*,*,*,*,*,{,*}*,*,*,*,*,*,*Y#.....................................................| ", + " |.........................................................#{*,*,*,*,*,*,*}*,{,*,*,*,*,*,*,{#.....................................................| ", + " |.........................................................#{,*,*,*,*,*,*,{,*}*,*,*,*,*,*,*{#.....................................................|||| ", + " |.........................................................#{*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,{#........................................................| ", + " |.........................................................#*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,**#........................................................| ", + " |.........................................................#**,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*#.....................................................|||| ", + " |.........................................................#*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,**#.....................................................| ", + " |.........................................................#>*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,>#.....................................................| ", + " |....................................|||||||||||||........#>***Ŋ**********************Ŋ***>#.....................................................| ", + " |....................................| |........##+++########################+++##.....................................................| ", + " |||||||||||||||||||||||||||||||||||||| |||||||||||ŊEE||||||||||||||||||||||||ŊEE|||||||||||||||||||||||||||||||||||||||||||||||||||||||| ", + " |EEE| |EEE| ", + " |EEE| |EEE| ", + " ||||| ||||| ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "mall_palette_basement" ], + "terrain": { + "#": "t_brick_wall", + "*": "t_linoleum_gray", + ",": "t_linoleum_white", + ".": "t_rock", + "{": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "}": "t_linoleum_white" + }, + "furniture": { "{": "f_bench", "}": "f_bench", "Y": "f_trashcan" }, + "place_vehicles": [ + { "vehicle": "food_cart", "x": 75, "y": 3, "chance": 100, "rotation": 270 }, + { "vehicle": "ice_cream_cart", "x": 93, "y": 3, "chance": 100, "rotation": 180 } + ], + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 72, 95 ], "y": [ 0, 9 ], "density": 0.5 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "mall_a_67_sub_basement", "mall_a_68_sub_basement", "mall_a_69_sub_basement" ] ], + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ############ ", + " ########.{{.().{{.######## ", + " #####.,.,.,.,.,.,.,.,.,.,.,.,##### ", + " #<__#,.,.,.,.,.,.,.,.,.,.,.,.#__<# ", + " #<__θ.,.,.,.,.,.,.,.,.,.,.,.,θ__<# ", + " ######Ŋ,.,.,.,.,.,.,.,.,.,.Ŋ###### ", + " #EEŊ+..,.,.,.,.}{,.,.,.,.,.+ŊEE# ", + " #EEE+.,.,.,.,.,{}.,.,.,.,..+EEE# ", + " #EEE+..,.,.,.,.}{,.,.,.,.,.+EEE# ", + " #####.,.,.,.,.,.,.,.,.,.,..##### ", + " #.{{Y......................Y{{.# ", + " #______________________________# ", + " #______4%444%4;;;;4%444%4______# ", + " #__FF__-&---&-;;;;-&---&-__FF__# ", + " #__FF__4%444%4;;;;4%444%4__FF__# ", + " #__FF__-&---&-;;;;-&---&-__FF__# ", + " #______4%444%4;;;;4%444%4______# " + ], + "palettes": [ "mall_palette_2" ], + "terrain": { + "&": "t_railroad_track", + " ": "t_rock", + "#": "t_brick_wall", + "%": "t_railroad_track_on_tie", + ";": "t_rock_floor", + "4": "t_railroad_rubble", + "-": "t_railroad_tie_h", + "{": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "}": "t_linoleum_white", + "(": "t_linoleum_gray", + ")": "t_linoleum_gray" + }, + "furniture": { "{": "f_bench", "}": "f_bench", "Y": "f_trashcan" }, + "vendingmachines": { "(": { "item_group": "vending_drink" }, ")": { "item_group": "vending_food" } }, + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 24, 47 ], "y": [ 10, 23 ], "density": 0.3 } ] + } + } +] diff --git a/data/json/mapgen/mall/mall_ground.json b/data/json/mapgen/mall/mall_ground.json index ececf31fd7f6e..a4edc5fab150b 100644 --- a/data/json/mapgen/mall/mall_ground.json +++ b/data/json/mapgen/mall/mall_ground.json @@ -1416,10 +1416,10 @@ "fill_ter": "t_floor", "rows": [ "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯЯЯɱ|__|;^^^^^^^^^J^A~|MH.,,,,.^^^^±^^m|Q^^QQ^^QQ^^QQ^^QQ^^^J^^~|z___|||||666666|||||||=|", - "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯЯЯɱ|__|;;;;^^^;;^J^^~|^|.,,,,.^^^^±^^m|Q^^QQ^^QQ^^QQ^^±±^^^?^^~|U__S|UUU|666666|UUU|___j", - "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯЯϻɱ|__||||||=|||||||||^H.,,,,.H±^^±^^m|Q^^QQ^^±±^^±±^^±±^^^J^^~|U__P|___|||==|||___|_t_0", - "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯɱɱɱ|__|PP_______|PP_&|MH.,,,,.H±^^±^^m|Q^^QQ^^±±^^±±^^^^^^|||||||||||P|=|%....%|=|_|||||", - "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯɱ|||__θ_____B__S|__B&|dH.,,,,.H±^^^^^m|Q^^^^^^^^^^^^^^^^^±|EEEE|EEEE|||..........|||EEEE", + "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯЯЯɱ|__|;;;;^^^;;^J^^~|^|.,,,,.^^^^±^^m|Q^^QQ^^QQ^^QQ^^±±^^^?^^~|U__S|>6>|666666|>6>|___j", + "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯЯϻɱ|__||||||=|||||||||^H.,,,,.H±^^±^^m|Q^^QQ^^±±^^±±^^±±^^^J^^~|U__P|666|||==|||666|_t_0", + "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯɱɱɱ|__|PP_______|PP_&|MH.,,,,.H±^^±^^m|Q^^QQ^^±±^^±±^^^^^^|||||||||||6|+|%....%|+|6|||||", + "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯɱ|||__θ_____B__S|__B&|dH.,,,,.H±^^^^^m|Q^^^^^^^^^^^^^^^^^±|EEEE|EEEE|H|..........|H|EEEE", "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯɱHy|__|U__a&&&_S|____θ^|%....%|^^mmm^^|Q^^^^^^^^^^^^±±±±±±|EEEE|EEEE|%............%|EEEE", "ւГɔɔɔɔɔɔɔ˽˽˽˽˽˽˽˽˽˽˽˽ɔɔɔɔɔɔɔГГɱϻɱHdθ__|||||||||||||=||||HH^^HH||||||||||HHH|HHH^^^HHH|HHH||H++H|H++H|..............|H++H", "ւГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽ГГɱЯɱHy|__θ^^^^^^^^J^^J^^^J^^^^^^^^yĦĦĦĦĦyH....FFF.....FFF.........Ŋ.......FFFF..FFFF.......", @@ -1559,7 +1559,7 @@ "|EEEE|||||7|||||7ɄɄɄ77777ɄH.,,,,,,.HB^BB^BB9999999999999^`|ɱЯЯϻЯЯɱГГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽Гւ", "|EEEE|ɄɄ7777ɄɄɄ|ɅɄɄɄɅ7777Ʉ|.,,,,,,%|^^^^^^^A```````````^^<|ɱЯЯЯЯЯɱГГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽Гւ", "|H++H|HHH|||HHH||HHH|7777||.,,,,,,F||||||||||||||||||||=|||ɱЯЯЯЯЯɱГГɔɔɔɔɔɔɔ˽˽˽˽˽˽˽˽˽˽˽˽ɔɔɔɔɔɔɔГւ", - ".........FFF................,,,,,,FFF%|.333Δ333*♥..*|I__zP|ɱЯЯϻЯЯɱГГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽Гւ", + "Ŋ........FFF................,,,,,,FFF%|.333Δ333*♥..*|I__zP|ɱЯЯϻЯЯɱГГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽Гւ", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.H.ŦŦŦ,ŦŦŦ.?,Ŧ.|I}_zP|ɱЯЯЯЯЯɱГГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽Гւ", ",,,,,,,,,,,,,,,,,,,,,,,,,...........,,+,,,,,,,,.♠..%|S___z|ɱЯЯЯЯЯɱГГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽Гւ", "³³³³³{{,,,,,{{³³³³³³³³³{{.,,,,,,,,,.,.H.ŦŦŦ,ŦŦŦ.||=||||θ|||ɱЯЯϻЯЯɱГГ˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽˽Гւ", diff --git a/data/json/mapgen/microlab/microlab_special_tiles.json b/data/json/mapgen/microlab/microlab_special_tiles.json index 4cab1797a0b5b..02770c09f013b 100644 --- a/data/json/mapgen/microlab/microlab_special_tiles.json +++ b/data/json/mapgen/microlab/microlab_special_tiles.json @@ -203,7 +203,7 @@ { "item": "bionics", "chance": 100, "repeat": [ 1, 3 ] } ] }, - "place_loot": [ { "item": "anesthetic_kit", "x": 20, "y": 15 } ], + "place_loot": [ { "item": "anesthetic_kit", "x": 20, "y": 15, "ammo": 100 } ], "place_monsters": [ { "monster": "GROUP_LAB", "x": [ 2, 21 ], "y": [ 2, 21 ], "repeat": [ 1, 5 ] } ], "monster": { "T": { "monster": "mon_prototype_cyborg" } }, "computers": { diff --git a/data/json/mapgen/military/mil_base/mil_base_z0.json b/data/json/mapgen/military/mil_base/mil_base_z0.json index df80ca73d0727..355123db9ff79 100644 --- a/data/json/mapgen/military/mil_base/mil_base_z0.json +++ b/data/json/mapgen/military/mil_base/mil_base_z0.json @@ -1133,7 +1133,7 @@ { "item": "medical_tape", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, { "group": "mil_base_iv", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 80 ] }, { "item": "eyedrops", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, - { "item": "anesthetic_kit", "x": 29, "y": 25, "chance": 50, "repeat": [ 1, 10 ] }, + { "item": "anesthetic_kit", "x": 29, "y": 25, "chance": 50, "repeat": [ 1, 10 ], "ammo": 100 }, { "item": "disinfectant", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, { "item": "quikclot", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, { "item": "bfipowder", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, diff --git a/data/json/mapgen/office_doctor.json b/data/json/mapgen/office_doctor.json index 4d89c85a96249..18b15a8403515 100644 --- a/data/json/mapgen/office_doctor.json +++ b/data/json/mapgen/office_doctor.json @@ -45,7 +45,7 @@ "f": { "item": "office_paper", "chance": 70, "repeat": [ 1, 3 ] } }, "place_items": [ { "item": "record_patient", "x": 7, "y": 6, "chance": 50 } ], - "place_loot": [ { "item": "anesthetic_kit", "x": 16, "y": [ 14, 17 ], "chance": 75 } ], + "place_loot": [ { "item": "anesthetic_kit", "x": 16, "y": [ 14, 17 ], "chance": 75, "ammo": 100 } ], "computers": { "5": { "name": "Medical Supply Access", @@ -182,7 +182,7 @@ { "group": "gear_medical", "x": [ 4, 5 ], "y": 10, "chance": 60, "repeat": [ 2, 5 ] }, { "group": "drugs_analgesic", "x": [ 4, 5 ], "y": 12, "chance": 75, "repeat": [ 1, 3 ] }, { "group": "drugs_rare", "x": [ 4, 5 ], "y": 14, "chance": 75 }, - { "item": "anesthetic_kit", "x": [ 4, 5 ], "y": 14, "chance": 75 } + { "item": "anesthetic_kit", "x": [ 4, 5 ], "y": 14, "chance": 75, "ammo": 100 } ] } }, @@ -336,7 +336,7 @@ { "item": "laptop", "x": 4, "y": 4, "chance": 85 }, { "item": "television", "x": 15, "y": 6, "chance": 95 }, { "item": "soap", "x": 5, "y": 18, "chance": 95 }, - { "item": "anesthetic_kit", "x": 13, "y": 18, "chance": 75 } + { "item": "anesthetic_kit", "x": 13, "y": 18, "chance": 75, "ammo": 100 } ], "vehicles": { "W": { "vehicle": "swivel_chair", "chance": 100, "status": 1 } } } diff --git a/data/json/mapgen/outpost.json b/data/json/mapgen/outpost.json index 9485efd0a87d6..eb38a164cfa65 100644 --- a/data/json/mapgen/outpost.json +++ b/data/json/mapgen/outpost.json @@ -94,14 +94,54 @@ "place_fields": [ { "field": "fd_blood", "x": [ 2, 21 ], "y": [ 2, 21 ], "repeat": [ 1, 12 ] } ], "toilets": { "&": { } }, "place_monster": [ - { "monster": "mon_crows_m240", "x": 10, "y": 1 }, - { "monster": "mon_turret_bmg", "x": 13, "y": 1 }, - { "monster": "mon_crows_m240", "x": 1, "y": 10 }, - { "monster": "mon_turret_bmg", "x": 1, "y": 13 }, - { "monster": "mon_crows_m240", "x": 22, "y": 10 }, - { "monster": "mon_turret_bmg", "x": 22, "y": 13 }, - { "monster": "mon_crows_m240", "x": 10, "y": 22 }, - { "monster": "mon_turret_bmg", "x": 13, "y": 22 }, + { + "monster": "mon_crows_m240", + "x": 10, + "y": 1, + "spawn_data": { "ammo": [ { "ammo_id": "762_51", "qty": [ 1200, 1600 ] } ] } + }, + { + "monster": "mon_turret_bmg", + "x": 13, + "y": 1, + "spawn_data": { "ammo": [ { "ammo_id": "50bmg", "qty": 400 } ] } + }, + { + "monster": "mon_crows_m240", + "x": 1, + "y": 10, + "spawn_data": { "ammo": [ { "ammo_id": "762_51", "qty": [ 1200, 1600 ] } ] } + }, + { + "monster": "mon_turret_bmg", + "x": 1, + "y": 13, + "spawn_data": { "ammo": [ { "ammo_id": "50bmg", "qty": 400 } ] } + }, + { + "monster": "mon_crows_m240", + "x": 22, + "y": 10, + "spawn_data": { "ammo": [ { "ammo_id": "762_51", "qty": [ 1200, 1600 ] } ] } + }, + { + "monster": "mon_turret_bmg", + "x": 22, + "y": 13, + "spawn_data": { "ammo": [ { "ammo_id": "50bmg", "qty": 400 } ] } + }, + { + "monster": "mon_crows_m240", + "x": 10, + "y": 22, + "spawn_data": { "ammo": [ { "ammo_id": "762_51", "qty": [ 1200, 1600 ] } ] } + }, + { + "monster": "mon_turret_bmg", + "x": 13, + "y": 22, + "spawn_data": { "ammo": [ { "ammo_id": "50bmg", "qty": 400 } ] } + }, { "monster": "mon_turret_searchlight", "x": 1, "y": 1 }, { "monster": "mon_turret_searchlight", "x": 22, "y": 22 }, { "monster": "mon_turret_searchlight", "x": 1, "y": 22 }, diff --git a/data/json/mapgen/park.json b/data/json/mapgen/park.json index 0c1b13e5adbab..081717678aaec 100644 --- a/data/json/mapgen/park.json +++ b/data/json/mapgen/park.json @@ -157,7 +157,7 @@ ], "palettes": [ "park_asphalt_palette" ], "items": { "b": { "item": "shoes", "chance": 15, "repeat": [ 2, 5 ] } }, - "place_item": [ { "item": "beach_volleyball", "x": 8, "y": 6 } ], + "place_item": [ { "item": "beach_volleyball", "x": 8, "y": 6 }, { "item": "sandbox_kit", "x": 8, "y": 6 } ], "monsters": { "$": { "monster": "GROUP_PARK_SCENIC", "chance": 50 }, " ": { "monster": "GROUP_PARK_PLAYGROUND", "chance": 100 } } } }, diff --git a/data/json/mapgen/s_apt.json b/data/json/mapgen/s_apt.json new file mode 100644 index 0000000000000..7fc87b35c3211 --- /dev/null +++ b/data/json/mapgen/s_apt.json @@ -0,0 +1,182 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_apt" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "##o####o##&*&##o####o##.", + "#d@@I|fhF|===|7 |d y#.", + "o @@ |h O|===|5 + @@o.", + "#y + 5|===|O A|D I#.", + "##|||| 7|===|F f||||##.", + ".o8__+ *===* +__8o..", + ".#9tS|HHL|===|LHH|St9#..", + "##||||||||===||||||||##.", + "#b d|F 7|===|Fhf| d@I#.", + "o @ + 5|===|5 + @ o.", + "#I@ D|H O|===|O 6|D #.", + "##||||H 6|===|7 6||||##.", + ".o8__+ *===* +__8o..", + ".#9tS|hfh|===|sHH|St9#..", + "##||||||||===||||||||##.", + "#__|__|Æ_|===|7 |y I#.", + "#$/|$/|$/|===|5 + @@o.", + "#________|===|O f|E d#.", + "#________|===|F h||||##.", + "#$/|$/|__+===* +__8o..", + "#__|__|WZ|===|HHs|St9#..", + "##########===##o######..", + "%%%%%%%%#<===<#%%%%%%%..", + "!!!!!!!%##&*&##%!!!!!!!." + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "!": "t_region_groundcover_urban", + "=": "t_carpet_green", + "#": "t_adobe_brick_wall", + "<": "t_stairs_up", + "&": "t_window", + "~": "t_thconc_floor", + "_": "t_linoleum_white", + "8": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white", + "Z": "t_linoleum_white", + "W": "t_linoleum_white", + "9": "t_linoleum_white", + "$": "t_chainfence", + "/": "t_chaingate_c" + }, + "furniture": { "!": "f_region_flower" }, + "place_loot": [ + { "group": "allclothes", "chance": 50, "repeat": [ 5 ], "x": [ 7, 8 ], "y": [ 20, 20 ] }, + { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 5, 4 ], "y": [ 15, 15 ] }, + { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 2, 1 ], "y": [ 15, 15 ] }, + { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 2, 1 ], "y": [ 20, 20 ] }, + { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 4, 5 ], "y": [ 20, 20 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_apt_2ndfloor" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "##o####o##&*&##o####o##.", + "#d@@I|fhF|===|7 F|d y#.", + "o @@ |h O|===|5 + @@o.", + "#y + 5|===|O A|D I#.", + "##|||| 7|===|2 f||||##.", + ".o8__+ *===* +__8o..", + ".#9tS|HHL|===|LHH|St9#..", + "##||||||||===||||||||##.", + "# d|F 7|===|Fhf|Md@I#.", + "o @ + 5|===|5 + @ o.", + "#I@ D|H O|===|O 6|D Æ#.", + "##||||H 3|===|7 6||||##.", + ".o8__+ *===* +__8o..", + ".#9tS|hfh|===|sHH|St9#..", + "##||||||||===||||||||##.", + "#@@ D|fAF|===|7 |y I#.", + "o h |A 5|===|5 + @@o.", + "#dII + O|===|O f|E d#.", + "#|||||E 7|===|F h||||##.", + "#9__|R +===* +__8o..", + "#8St+ sHH|===|HHs|St9#..", + "##########===##o######..", + "........#>=<=>#.........", + "........##&#&##........." + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "=": "t_carpet_green", + "#": "t_adobe_brick_wall", + ".": "t_open_air", + "<": "t_stairs_up", + ">": "t_stairs_down", + "&": "t_window", + "_": "t_linoleum_white", + "8": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white", + "9": "t_linoleum_white" + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_apt_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "|2222222222222222222222 ", + "|.....................3 ", + "|.A..A...........A..A.3 ", + "|.....................3 ", + "||...................33 ", + " |&.................&3 ", + " |..X.......N........3 ", + "||................:..33 ", + "|.....................3 ", + "|.A..A...........A..A.3 ", + "|.....................3 ", + "||...................33 ", + " |&.................&3 ", + " |.......N...........3 ", + "||...................33 ", + "|.....................3 ", + "|.A..A...........A..A.3 ", + "|.....................3 ", + "|....................33 ", + "|.&...............X.&3 ", + "|....................3 ", + "|-------$$$$+$$------3 ", + " $__>__$ ", + " $$$$$$$ " + ], + "palettes": [ "roof_palette" ], + "terrain": { "$": "t_adobe_brick_wall", "+": "t_door_c", ">": "t_stairs_down" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_apt_upper_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ....... ", + " ..X.... ", + " ....... " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/json/mapgen/s_apt_2.json b/data/json/mapgen/s_apt_2.json new file mode 100644 index 0000000000000..702a12efdf0b2 --- /dev/null +++ b/data/json/mapgen/s_apt_2.json @@ -0,0 +1,211 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_apt_2" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "##oo###o##%``%######oo##", + "#I@@I|I@d#%``%#RER|d E#", + "o @@ | @ o!``!o |@@ o", + "o | o!``!o AN|@@ o", + "#Dd T|D #%``%#R N|I D#", + "#||+|||+|#%``%#|+|||+||#", + "#12__6 h#%``%#l 67_21#", + "o_____ f#%``%#H _____o", + "#3O5F4 h#&++&#H 4F5O3#", + "##||||x #y__y# x||||##", + "%o8__+ l *____* +__8o%", + "%#9tS|HHH#____#hfh|St9#%", + "%#||||||##____##||||||#%", + "%#9tS|fh#y____y# |St9#%", + "%o8__+ *______* +__8o%", + "##|||| #______#h ||||##", + "o1O5F2 H#<____<#f 2F5O1o", + "o_____ H#y____y#h _____o", + "##|+||+|###__###|+||+|##", + "%#d | dD#__#HHs |d D#%", + "%o |R #&+# | o%", + "%o @ |R I#``#R hr| @ o%", + "%# @I|E @@#``#R r|T@I#%", + "%##o###oo##``##oo###o##%" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "!": "t_region_groundcover_urban", + "#": "t_brick_wall", + "<": "t_stairs_up", + "&": "t_window", + "`": "t_concrete", + "~": "t_thconc_floor", + "_": "t_linoleum_white", + "y": "t_linoleum_white", + "6": "t_linoleum_white", + "U": "t_linoleum_white", + "Z": "t_linoleum_white", + "W": "t_linoleum_white", + "Q": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "n": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "9": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white" + }, + "furniture": { "!": "f_region_flower" }, + "place_loot": [ + { "group": "allclothes", "chance": 50, "repeat": [ 5 ], "x": [ 7, 8 ], "y": [ 20, 20 ] }, + { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 5, 4 ], "y": [ 15, 15 ] }, + { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 2, 1 ], "y": [ 15, 15 ] }, + { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 2, 1 ], "y": [ 20, 20 ] }, + { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 4, 5 ], "y": [ 20, 20 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_apt_2_2ndfloor" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "##oo###o##````######oo##", + "#I@@I|I@d#````#RER|d E#", + "o @@ | @ o````o |@@ o", + "o | o````o AN|@@ o", + "#Dd T|D #````#R N|I D#", + "#||+|||+|#````#|+|||+||#", + "#12__6 h#````#l 67_21#", + "o_____ f#````#H _____o", + "#3O5F4 h#&&&&#H 4F5O3#", + "##||||R #y__y# x||||##", + "`o8__+ l *____* +__8o`", + "`#9tS|HHH#____#hfh|St9#`", + "`#||||||##____##||||||#`", + "`#9tS|fh#y____y#UY|St9#`", + "`o8__+ *______* +__8o`", + "##|||| #______#h ||||##", + "o1O5F2 R#>____>#f 2F5O1o", + "o_____ R#y____y#h _____o", + "##|+|| ###++### ||+|##", + "`#d |s R#<<#HHs |d D#`", + "`o |Hl x#### | o`", + "`o @ |Hl x#``#R hr| @ o`", + "`#D@I|HH T#``#R r|T@I#`", + "`##o###oo##``##oo###o##`" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "#": "t_brick_wall", + "<": "t_stairs_up", + ">": "t_stairs_down", + "&": "t_window", + "`": "t_open_air", + "_": "t_linoleum_white", + "y": "t_linoleum_white", + "6": "t_linoleum_white", + "U": "t_linoleum_white", + "Z": "t_linoleum_white", + "W": "t_linoleum_white", + "Q": "t_linoleum_white", + "J": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "n": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "9": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white" + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_apt_2_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "|222222223 |222222222", + "|........3 |........3", + "|........3 |........3", + "|...A....3 |....A...3", + "|......X.3 |........3", + "|........3 |........3", + "|...A....3 |....A...3", + "|........3 |........3", + "|........32222|........3", + "||....=...............33", + " |..&..............&..3 ", + " |..................X.3 ", + " |....................3 ", + " |................=...3 ", + " |......A.........=...3 ", + "||..&..........A...&..33", + "|......................3", + "|..A......##+#......A..3", + "||........#__#.........3", + " |........#>>#.........3", + " |........####.........3", + " |........3 |.........3", + " |........3 |.........3", + " |--------3 |---------3" + ], + "palettes": [ "roof_palette" ], + "terrain": { "#": "t_brick_wall", "+": "t_door_c", ">": "t_stairs_down" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_apt_2_upper_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " .... ", + " ..N. ", + " .... ", + " .... ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/json/mapgen/s_gas.json b/data/json/mapgen/s_gas.json index 5f276fe967f29..92bcc43661a40 100644 --- a/data/json/mapgen/s_gas.json +++ b/data/json/mapgen/s_gas.json @@ -17,22 +17,22 @@ "........................", "...s9s...........s9s....", "........................", - "....5.............5.....", + "....G.............D.....", "........................", "........................", "........................", "........................", - "....5.............5.....", + "....G.............D.....", "........................", "........................", "........................", "........................", "........................", - "....5.............5.....", + "....G.............D.....", "...s9s...........s9s....", "........................" ], - "place_terrain": [ { "ter": "t_gas_tank", "x": 3, "y": 3 } ], + "place_terrain": [ { "ter": "t_gas_tank", "x": 2, "y": 3 }, { "ter": "t_diesel_tank", "x": 4, "y": 3 } ], "terrain": { "&": "t_atm", "+": "t_chaingate_l", @@ -42,10 +42,14 @@ "s": "t_little_column", "|": "t_chainfence_v" }, + "gaspumps": { "G": { "fuel": "gasoline" }, "D": { "fuel": "diesel" } }, "furniture": { "9": "f_aut_gas_console" }, "signs": { "P": { "signage": "Danger! Do not smoke! Risk of explosion!" } }, "vendingmachines": { "1": { "item_group": "vending_drink" }, "2": { "item_group": "vending_food" } }, - "place_liquids": [ { "liquid": "gasoline", "x": 3, "y": 3, "repeat": [ 200, 1075 ] } ] + "place_liquids": [ + { "liquid": "gasoline", "x": 2, "y": 3, "repeat": [ 200, 1075 ] }, + { "liquid": "diesel", "x": 4, "y": 3, "repeat": [ 200, 1075 ] } + ] } }, { @@ -166,7 +170,7 @@ "________________________", "________________________", "________________________", - "_______O________O_______", + "_______G________D_______", "________________________", "________________________", "________________________", @@ -222,7 +226,7 @@ "R": "f_shower" }, "toilets": { ";": { } }, - "gaspumps": { "O": { } }, + "gaspumps": { "G": { "fuel": "gasoline" }, "D": { "fuel": "diesel" } }, "place_items": [ { "item": "bed", "x": [ 2, 3 ], "y": [ 19, 20 ], "chance": 80 }, { "item": "dresser", "x": 2, "y": 21, "chance": 80 }, diff --git a/data/json/mapgen/s_lightindustry.json b/data/json/mapgen/s_lightindustry.json new file mode 100644 index 0000000000000..99ab2feebc1fb --- /dev/null +++ b/data/json/mapgen/s_lightindustry.json @@ -0,0 +1,285 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "s_lightindustry_10", "s_lightindustry_11" ], + [ "s_lightindustry_road_0", "s_lightindustry_road_1" ], + [ "s_lightindustry_00", "s_lightindustry_01" ] + ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "................................................", + "................................................", + "#%%%%#%%%%#%%%%#%%#%%%%#%%%%#%%%%#%%%%#%%%%#....", + "##::###::###::##::#######oo###oo###oo###oo##^%%#", + "#!{!v#rrrP#Prrr#HHHN#jk#U~~UUU~~U#~55~d~88~##o##", + "#!}}!: h h :!!!H#;;#U~~~~~~~U#~~~~d~~~~#ppp#", + "#!!!!: :NN!H#M;#U~~~~~~~U#dd&dd~~~~:;q;o", + "#L!!!:r hrh ) ##+##ddddd&d##~~~~~~6~~:;;;#", + "#L!!L:rh r r: zz #~~~~~~~~~#~~~~~~9~~:;;M#", + "###)##B P#P hr: +~~`````~~~~~45~~5~~);;p#", + "+ u# B #~~`~~~`~~~~~~~~~~~~:;qpo", + "#::):#::):#::):#))#::):#~~`~~~`~~~~~52~~~~~#;;p#", + "# #P u#u # #r #~~`~~~`~~~~~~~~~##+##+##", + "#rr u#r hr#P hr# :rh u#~~`~~~`~~~~~~~~1#;;#.s.#", + "# h P#rh r#P rr# #r P#c~`~~~`~~#5~31~5#kj#.s..", + "##::###::###::##))##::###bbbbbbb###o##o#####.s..", + "#%%%%#%%%%#%%%%#ss#%%%%#c_______s#%%%%%%.^.#.s..", + "sssssssssssssssssssssssss_______ssssssssssssssss", + "s____e____e____e____es%s___________se____e____es", + "s____e____e____e____es%s___________se____e____es", + "s____e____e____e____es%s___________se____e____es", + "s____e____e____e____es%s___________se____e____es", + "s____e____e____e____es%s___________se____e____es", + "s____e____e____e____esss___________se____e____es", + "s______________________________________________s", + "s______________________________________________s", + "s______________________________________________s", + "s______________________________________________s", + "s______________________________________________s", + "s______ssssssssssssssssssssssssssssssssss______s", + "s______s%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%s_______", + "s______ssssssssssssssssssssssssssssssssss_______", + "s_______________________________________________", + "s_______________________________________________", + "s_______________________________________________", + "s_______________________________________________", + "s_______________________________________________", + "s_______________________________________________", + "s_______________________________________________", + "s_______________________________________________", + "s_______________________________________________", + "s_______________________________________________", + "s___________________ssssssss__________ssssssssss", + "s___________________s%%s...s__________s.........", + "s___________________s%%s...s__________s.........", + "s___________________s%%s...s__________s.........", + "s___________________s%%s...s__________s.........", + "s___________________ssssssss__________s.........", + "s____e____e____e____ssss...s__________s.........", + "s____e____e____e____s%%s...s__________s.........", + "s____e____e____e____s%%s...s__________s.........", + "s____e____e____e____s%%s...s__________s.........", + "s____e____e____e____s%%s...s__________s.........", + "s____e____e____e____ssss...s__________s%%%.%%%..", + "ssssssssssssssssssssssss...s__________##o###o##.", + ".##o###o###o##...sss...s...s__________#rrr#Phr#.", + ".#rru#thr#rBt#...sss...sssssc_________# h # r#.", + "^# h # r#rh #...sss...s...##bbbbbbb#+# ##", + "## #%%#o+o#%%s%%%#c~`~~~`~~~# u#", + "#r ####==y#####o##~~`~~~`~~~o hhhh ho", + "orh # h # u# u#===wwx#CCC~~~`~~~`~~~# ZZZZ rr#", + "#r #rru# u#hro=====w#CC~~~~`~~~`~~~o hhhh ###", + "### ##### u# r#=====w#~~~~~~`~~~`~~~# r#", + "#rr #thr# u#+##======+~~~~~~`````~~~+ hro", + "#th # r# B# zz======#~~~~~~~~~57~~~# u#", + "or + #####d&d#~~~~~31~~~#B P ##+##", + "#rh + #Y;j#Q~Q#~~~~~~~~~5##+# #B r#", + "###+##t ####### +;;k#Q~Q#~52~~~~~~2#;;# # hr#", + "#rr B#t #mnlkn# #####Q~Q#~~~~~46~~~#jk# # r#", + "o h u# +;;;;;+ +;;k#Q~Q#~52~~~~~~8####+##o##", + "# u#t #qpq;Y# #Y;j#Q~Q#~~~~~~~~~8#^sssss...", + "###o###+####o########o###o####o####o###.sssss..." + ], + "terrain": { + ".": "t_region_groundcover_urban", + "%": "t_region_shrub_decorative", + "#": "t_brick_wall", + "o": "t_window", + " ": "t_floor", + "s": "t_sidewalk", + "_": "t_pavement", + "e": "t_pavement_y", + ";": "t_linoleum_gray", + "j": "t_linoleum_gray", + "k": "t_linoleum_gray", + "l": "t_linoleum_gray", + "m": "t_linoleum_gray", + "n": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "M": "t_linoleum_gray", + "q": "t_linoleum_gray", + "p": "t_linoleum_gray", + "=": "t_carpet_green", + "w": "t_carpet_green", + "x": "t_carpet_green", + "y": "t_carpet_green", + "!": "t_carpet_red", + "v": "t_carpet_red", + "H": "t_carpet_red", + "}": "t_carpet_red", + "{": "t_carpet_red", + "L": "t_carpet_red", + "N": "t_carpet_red", + "~": "t_thconc_floor", + "C": "t_thconc_floor", + "Q": "t_thconc_floor", + "U": "t_thconc_floor", + "1": "t_thconc_floor", + "2": "t_thconc_floor", + "3": "t_thconc_floor", + "4": "t_thconc_floor", + "9": "t_thconc_floor", + "`": "t_metal_floor", + ":": "t_wall_glass", + ")": "t_door_glass_c", + "+": "t_door_c", + "b": "t_door_metal_locked", + "c": "t_gates_mech_control", + "d": "t_chainfence_h", + "&": "t_chaingate_l", + "5": "t_machinery_electronic", + "6": "t_machinery_light", + "7": "t_machinery_heavy", + "8": "t_machinery_old", + "^": "t_gutter_downspout" + }, + "furniture": { + "k": "f_sink", + "l": "f_oven", + "m": "f_fridge", + "n": "f_counter", + "q": "f_chair", + "h": "f_chair", + "{": "f_chair", + "p": "f_table", + "}": "f_desk", + "r": "f_desk", + "x": "f_table", + "Z": "f_table", + "N": "f_table", + "Q": "f_rack", + "t": "f_locker", + "U": "f_locker", + "M": "f_locker", + "P": "f_filing_cabinet", + "u": "f_bookcase", + "L": "f_bookcase", + "w": "f_sofa", + "H": "f_sofa", + "z": "f_vending_c", + "Y": "f_trashcan", + "y": "f_trashcan", + "B": "f_trashcan", + "v": "f_safe_l", + "1": "f_arcfurnace_empty", + "2": "f_hydraulic_press", + "3": "f_air_compressor", + "4": "f_drill_press", + "9": "f_heavy_lathe", + "C": "f_crate_c" + }, + "toilets": { "j": { } }, + "items": { + "y": { "item": "trash", "chance": 30, "repeat": [ 2, 3 ] }, + "B": { "item": "trash", "chance": 30, "repeat": [ 2, 3 ] }, + "Y": { "item": "trash", "chance": 30, "repeat": [ 2, 3 ] }, + "v": { "item": "vault", "chance": 30, "repeat": [ 2, 3 ] }, + "r": { "item": "office", "chance": 30 }, + "Z": { "item": "office", "chance": 30 }, + "t": { "item": "cleaning_bulk", "chance": 30, "repeat": [ 2, 3 ] }, + "n": { "item": "kitchen_nonfood", "chance": 30, "repeat": [ 1, 2 ] }, + "l": { "item": "oven", "chance": 30, "repeat": [ 1, 3 ] }, + "m": { "item": "fridge", "chance": 30, "repeat": [ 2, 5 ] }, + "x": { "item": "magazines", "chance": 30, "repeat": [ 2, 5 ] }, + "N": { "item": "magazines", "chance": 30, "repeat": [ 0, 2 ] }, + "P": { "item": "office_paper", "chance": 30 }, + "H": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ], + "u": { "item": "textbooks", "chance": 30, "repeat": [ 1, 2 ] }, + "L": { "item": "textbooks", "chance": 30, "repeat": [ 1, 2 ] }, + "C": { "item": "tools_construction", "chance": 50, "repeat": [ 2, 3 ] }, + " ": { "item": "office_mess", "chance": 5 }, + "~": { "item": "vehicle_scrapped", "chance": 3 } + }, + "place_loot": [ + { "group": "vending_food", "chance": 80, "x": 15, "y": 64 }, + { "group": "vending_drink", "chance": 80, "x": 16, "y": 64 }, + { "group": "vending_food", "chance": 80, "x": 20, "y": 8 }, + { "group": "vending_drink", "chance": 80, "x": 21, "y": 8 }, + { "group": "bar_trash", "chance": 50, "repeat": 2, "x": 11, "y": 70 }, + { "group": "tools_blacksmith", "chance": 60, "repeat": 4, "x": 26, "y": [ 68, 70 ] }, + { "group": "tools_mechanic", "chance": 60, "repeat": 2, "x": 26, "y": [ 66, 67 ] }, + { "group": "tools_home", "chance": 60, "repeat": 4, "x": 24, "y": [ 66, 68 ] }, + { "group": "power_tools", "chance": 60, "repeat": 3, "x": 24, "y": [ 69, 70 ] }, + { "group": "hand_tools", "chance": 75, "repeat": 4, "x": 24, "y": [ 4, 6 ] }, + { "group": "power_tools", "chance": 75, "repeat": 4, "x": [ 27, 29 ], "y": 4 }, + { "group": "tools_mechanic", "chance": 75, "repeat": 4, "x": 32, "y": [ 4, 6 ] }, + { "group": "elecsto_diy", "chance": 60, "repeat": 4, "x": [ 34, 39 ], "y": [ 12, 14 ] }, + { "group": "elecsto_diy", "chance": 60, "repeat": 4, "x": [ 34, 37 ], "y": [ 4, 5 ] } + ], + "place_vehicles": [ { "vehicle": "cube_van", "x": 31, "y": 50, "chance": 70, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "s_lightindustry_10_roof", "s_lightindustry_11_roof" ] ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + ". . . . . . . . . . ", + "|2222222222222222222222222222222222222222223 .", + "|..........................................52223", + "|................................=.............3", + "|..............................................3", + "|..............................................3", + "|.........&........................&...........3", + "|..............................................3", + "|..................X........:..................3", + "|..............................................3", + "|..........................................3---3", + "|............=.............................3 .", + "|..........................................3 ", + "|----------------------------------------5-3 ", + ". . . . . . . . ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "s_lightindustry_00_roof", "s_lightindustry_01_roof" ] ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " |22222223 ", + " |222222222223 |.......3 ", + " |...........3 |.......3 ", + " 5...........3 |2222222222|.......33", + "||...........3 |2223 |...................3", + "|............322|...3222222|....X....:.........3", + "|..............................................3", + "|..............................................3", + "|..............................................3", + "|..............................................3", + "|..........&.............................=.....3", + "|.................:............................3", + "|............................&.................3", + "|....X.........................................3", + "|..............................................3", + "|.....................................5--------3", + "|.....................=...............3 ", + "|-------------------------------------3 " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/json/mapgen/shelter.json b/data/json/mapgen/shelter.json index 99521327f4a70..2fa9cd66a7ba9 100644 --- a/data/json/mapgen/shelter.json +++ b/data/json/mapgen/shelter.json @@ -65,7 +65,7 @@ " |----:--+-:----|4 " ], "palettes": [ "shelter" ], - "place_nested": [ { "chunks": [ [ "shelter_nest_base", 50 ], [ "shelter_nest_used", 50 ] ], "x": 0, "y": 0 } ] + "place_nested": [ { "chunks": [ [ "shelter_nest_base", 100 ] ], "x": 0, "y": 0 } ] } }, { @@ -149,7 +149,7 @@ " |----:--+-:----| " ], "palettes": [ "shelter" ], - "place_nested": [ { "chunks": [ [ "shelter_1_nest_base", 50 ], [ "shelter_1_nest_used", 50 ] ], "x": 0, "y": 0 } ] + "place_nested": [ { "chunks": [ [ "shelter_1_nest_base", 100 ] ], "x": 0, "y": 0 } ] } }, { @@ -233,7 +233,7 @@ " |-:-+-:-| " ], "palettes": [ "shelter" ], - "place_nested": [ { "chunks": [ [ "shelter_2_nest_base", 50 ], [ "shelter_2_nest_used", 50 ] ], "x": 0, "y": 0 } ], + "place_nested": [ { "chunks": [ [ "shelter_2_nest_base", 100 ] ], "x": 0, "y": 0 } ], "computers": { "6": { "name": "Evac shelter computer", @@ -327,7 +327,7 @@ " |----:--+-:----|4 " ], "palettes": [ "shelter" ], - "place_nested": [ { "chunks": [ [ "shelter_nest_vandal", 100 ] ], "x": 0, "y": 0 } ] + "place_nested": [ { "chunks": [ [ "shelter_nest_vandal", 50 ], [ "shelter_nest_used", 50 ] ], "x": 0, "y": 0 } ] } }, { @@ -364,7 +364,7 @@ " |----:--+-:----| " ], "palettes": [ "shelter" ], - "place_nested": [ { "chunks": [ [ "shelter_1_nest_vandal", 100 ] ], "x": 0, "y": 0 } ] + "place_nested": [ { "chunks": [ [ "shelter_1_nest_vandal", 50 ], [ "shelter_1_nest_used", 50 ] ], "x": 0, "y": 0 } ] } }, { @@ -401,7 +401,7 @@ " |-:-+-:-| " ], "palettes": [ "shelter" ], - "place_nested": [ { "chunks": [ [ "shelter_2_nest_vandal", 100 ] ], "x": 0, "y": 0 } ], + "place_nested": [ { "chunks": [ [ "shelter_2_nest_vandal", 50 ], [ "shelter_2_nest_used", 50 ] ], "x": 0, "y": 0 } ], "computers": { "6": { "name": "Evac shelter computer", diff --git a/data/json/mapgen/store/s_camping.json b/data/json/mapgen/store/s_camping.json new file mode 100644 index 0000000000000..ae12955f8ec7b --- /dev/null +++ b/data/json/mapgen/store/s_camping.json @@ -0,0 +1,152 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_camping" ], + "object": { + "fill_ter": "t_linoleum_gray", + "rows": [ + "..............`````.....", + ".##ccc##ccc##.`````.....", + ".# MMM MMMz#.`````.....", + ".# b``````.....", + ".# ss ss b``````.....", + ".c ss ss tƃ##ghhggg##..", + ".# ss ss u #________#..", + ".# ss ss M cj____G__g..", + ".# ss ss M cj___GiG_g..", + ".c ss ss u cGG___G__g..", + ".# ss ss tƃ#GG______g..", + ".# ## ## b________#..", + ".# ss ss y#____www_g..", + ".c c____xvw_g..", + ".# c__K_www_g..", + ".# ssssss y#________g..", + ".# ||||||b|#;_K__jjj#..", + ".# |ooo===q###hh#####..", + ".#|b|oop===q#mm__illlg..", + ".#z |=======b_____lllg..", + ".# |rr=====b________h..", + ";#AB|krr==kk#iii_____g..", + ".############ggggggggg..", + "........................" + ], + "terrain": { + "#": "t_adobe_brick_wall", + "|": "t_wall_w", + "b": "t_door_c", + "c": "t_wall_glass", + ".": "t_region_groundcover_urban", + "`": "t_sidewalk", + "_": "t_pavement", + "g": "t_chainfence_v", + "h": "t_chaingate_c", + "i": "t_pavement", + "j": "t_pavement", + "l": "t_pavement", + "m": "t_pavement", + "=": "t_thconc_floor", + "o": "t_thconc_floor", + "p": "t_thconc_floor", + "q": "t_thconc_floor", + "r": "t_thconc_floor", + "k": "t_thconc_floor", + "s": "t_linoleum_gray", + "t": "t_linoleum_gray", + "u": "t_console_broken", + "v": "t_pavement", + "w": "t_pavement", + "x": "t_pavement", + "K": "t_pavement", + "G": "t_pavement", + "y": "t_linoleum_gray", + "z": "t_linoleum_gray", + "A": "t_linoleum_gray", + "B": "t_linoleum_gray", + "M": "t_linoleum_gray", + ";": "t_gutter_downspout" + }, + "furniture": { + "i": "f_brazier", + "j": "f_bench", + "G": "f_camp_chair", + "K": "f_tourist_table", + "r": "f_camp_chair", + "k": "f_tourist_table", + "l": "f_dumpster", + "m": "f_crate_c", + "o": "f_crate_c", + "p": "f_crate_o", + "q": "f_bench", + "s": "f_rack", + "ƃ": "f_counter_gate_c", + "t": "f_counter", + "v": "f_groundsheet", + "w": "f_canvas_wall", + "x": "f_canvas_door", + "M": "f_displaycase", + "y": "f_vending_c", + "z": "f_trashcan", + "A": "f_sink" + }, + "toilets": { "B": { } }, + "place_loot": [ + { "group": "cannedfood", "chance": 50, "repeat": 10, "x": [ 3, 3 ], "y": [ 4, 10 ] }, + { "group": "swimmer_shoes", "chance": 50, "repeat": 3, "x": 4, "y": [ 4, 5 ] }, + { "group": "NC_COWBOY_shoes", "chance": 50, "repeat": 6, "x": 4, "y": [ 6, 10 ] }, + { "group": "camping", "chance": 60, "repeat": 10, "x": 6, "y": [ 4, 10 ] }, + { "group": "hand_tools", "chance": 60, "repeat": 5, "x": 7, "y": [ 4, 10 ] }, + { "group": "softdrugs", "chance": 60, "repeat": 2, "x": [ 3, 4 ], "y": 12 }, + { "group": "archery", "chance": 50, "repeat": 2, "x": [ 4, 7 ], "y": 15 }, + { "group": "archery_ammo", "chance": 50, "repeat": 2, "x": [ 8, 9 ], "y": 15 }, + { "group": "archery_ammo", "chance": 50, "repeat": 4, "x": [ 3, 5 ], "y": 2 }, + { "group": "archery_mods", "chance": 50, "repeat": 4, "x": [ 8, 10 ], "y": 2 }, + { "group": "kitchen_nonfood", "chance": 50, "repeat": 4, "x": [ 6, 7 ], "y": 12 }, + { "group": "book_survival", "chance": 50, "repeat": 2, "x": 10, "y": 7 }, + { "group": "tools_hunting", "chance": 50, "repeat": 2, "x": 10, "y": 7 }, + { "group": "vending_food_items", "chance": 80, "repeat": 2, "x": 11, "y": 15 }, + { "group": "vending_drink", "chance": 80, "repeat": 1, "x": 11, "y": 12 }, + { "group": "trash", "chance": 50, "repeat": 5, "x": 11, "y": 2 }, + { "group": "trash", "chance": 50, "repeat": 5, "x": [ 18, 20 ], "y": [ 18, 19 ] }, + { "group": "camping", "chance": 60, "repeat": 4, "x": [ 5, 6 ], "y": 17 }, + { "group": "hand_tools", "chance": 50, "repeat": 3, "x": 7, "y": 17 }, + { "group": "cannedfood", "chance": 60, "repeat": 6, "x": [ 5, 6 ], "y": 18 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_camping_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " |22222222223 ", + " |..........3 ", + " |..oo..oo..3 ", + " |..........3 ", + " |..........3 ", + " |..........3 ", + " |..oo..oo..3 ", + " |..........3 ", + " |...A......3 ", + " |..........3 ", + " |..oo..oo..3 ", + " |..........3 ", + " |..........3 ", + " |..........3 ", + " |..........3 ", + " |.=........5 ", + " |.=........3 ", + " |..........3 ", + " |.......:..3 ", + " |....A.....3 ", + " 5..........3 ", + " |----------3 ", + " " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/mods/Fuji_Structures/worldgen/s_cardealer.json b/data/json/mapgen/store/s_cardealer.json similarity index 97% rename from data/mods/Fuji_Structures/worldgen/s_cardealer.json rename to data/json/mapgen/store/s_cardealer.json index d192252d35c3f..6ae62a20a8a7e 100644 --- a/data/mods/Fuji_Structures/worldgen/s_cardealer.json +++ b/data/json/mapgen/store/s_cardealer.json @@ -33,8 +33,8 @@ ], "terrain": { "a": "t_pavement_y", - "b": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "c": "t_wall", + "b": "t_region_groundcover_urban", + "c": "t_adobe_brick_wall", "d": "t_floor", "e": "t_sidewalk", "f": "t_window", diff --git a/data/json/mapgen/store/s_diner.json b/data/json/mapgen/store/s_diner.json new file mode 100644 index 0000000000000..640d3bac0d122 --- /dev/null +++ b/data/json/mapgen/store/s_diner.json @@ -0,0 +1,198 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_diner" ], + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "%%%%```%%%%!!%````!%....", + ".`````````%%%%````!%.[..", + ".`````````````````!%%%%%", + ".``v```v``%%%%````!!!!!!", + ".`vuv`vuv##bb##cc##bb##.", + ".``v```v`#<;;;;;;;;;;;#.", + ".````````#G ;gG ;gG ;G#.", + ".##bbbbb##F; Ff; Ff; F#.", + ".bHH;G;HH#G ;gG ;gG ;G#.", + ".bFF F FF#;; ; ; ; ; ;#.", + ".bH@;g;@H## ;## ;## ;##.", + ".#F; ; ; ; ; ; ; ; ; ;#.", + ".#||||; ; ; ; A A A A #.", + ".#HH@| ;@H|~~eeeeeeeee#.", + ".#FfF ; Ff|~~~~~~~~~~~#.", + ".#HH@| ;@H|tt~~~~~n~~m#.", + ".#||||; |||||||eee||~|#.", + ".#j~m| ;|s~EI|p~~~~~~~#.", + ".#k~~c; |~~~I|p~~~~~~~#.", + ".#|||| ;||c|||~~ee~|||#.", + ".#k~~c; c~~~~~~~~~~~~~#.", + ".#j~m| ;|mm~r~eeoo~|qq#.", + ".######c###############.", + "......```..............." + ], + "terrain": { + "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], + "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], + "!": "t_region_groundcover_urban", + "#": "t_brick_wall", + "|": "t_wall_w", + "b": "t_window", + "c": "t_door_c", + ";": "t_linoleum_gray", + "G": "t_linoleum_gray", + "F": "t_linoleum_gray", + "H": "t_linoleum_gray", + "A": "t_linoleum_gray", + "~": "t_thconc_floor", + "s": "t_thconc_floor", + "I": "t_thconc_floor", + "E": "t_thconc_floor", + "e": "t_thconc_floor", + ".": "t_region_groundcover_urban", + "`": "t_sidewalk", + "j": "t_thconc_floor", + "k": "t_thconc_floor", + "m": "t_thconc_floor", + "n": "t_console_broken", + "o": "t_thconc_floor", + "p": "t_thconc_floor", + "q": "t_thconc_floor", + "r": "t_thconc_floor", + "t": "t_thconc_floor", + "u": "t_sidewalk", + "v": "t_sidewalk", + "<": "t_stairs_up" + }, + "furniture": { + "e": "f_counter", + "f": "f_table", + "F": "f_table", + "@": "f_sofa", + "H": "f_sofa", + "A": "f_stool", + "g": "f_chair", + "G": "f_chair", + "!": "f_region_flower", + "k": "f_sink", + "l": "f_trashcan", + "m": "f_trashcan", + "o": "f_sink", + "p": "f_oven", + "q": "f_fridge", + "r": "f_locker", + "I": "f_desk", + "E": "f_armchair", + "s": "f_locker", + "t": "f_rack", + "u": "f_table", + "v": "f_chair" + }, + "toilets": { "j": { } }, + "items": { + "p": { "item": "oven", "chance": 80, "repeat": [ 2, 4 ] }, + "F": [ + { "item": "coffee_dishes", "chance": 20 }, + { "item": "coffee_condiments", "chance": 20 }, + { "item": "baked_goods", "chance": 10 }, + { "item": "prepared_teas", "chance": 20 }, + { "item": "coffee_counter", "chance": 20 } + ], + "f": [ + { "item": "coffee_dishes", "chance": 20 }, + { "item": "coffee_condiments", "chance": 20 }, + { "item": "baked_goods", "chance": 10 }, + { "item": "prepared_teas", "chance": 20 }, + { "item": "coffee_table", "chance": 20 } + ], + "m": { "item": "bar_trash", "chance": 50, "repeat": [ 1, 2 ] }, + "I": { "item": "office", "chance": 30, "repeat": [ 1, 2 ] } + }, + "place_loot": [ + { "group": "coffee_prep", "chance": 50, "repeat": [ 4 ], "x": [ 11, 12 ], "y": [ 15, 15 ] }, + { "group": "bar_food", "chance": 50, "repeat": [ 4 ], "x": [ 20, 20 ], "y": [ 21, 21 ] }, + { "group": "diner_food", "chance": 50, "repeat": [ 4 ], "x": [ 21, 21 ], "y": [ 21, 21 ] }, + { "group": "kitchen", "chance": 80, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 21, 21 ] }, + { "group": "kitchen", "chance": 80, "repeat": [ 2 ], "x": [ 17, 17 ], "y": [ 21, 21 ] }, + { "group": "cleaning_bulk", "chance": 50, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 21, 21 ] }, + { "group": "cleaning", "chance": 50, "repeat": [ 1 ], "x": [ 2, 2 ], "y": [ 18, 18 ] }, + { "group": "cleaning", "chance": 50, "repeat": [ 1 ], "x": [ 2, 2 ], "y": [ 20, 20 ] }, + { "group": "restaur_kitchen", "chance": 50, "repeat": [ 2 ], "x": [ 14, 15 ], "y": [ 21, 21 ] }, + { "group": "fast_kitchen", "chance": 50, "repeat": [ 2 ], "x": [ 16, 17 ], "y": [ 19, 19 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_diner_2ndfloor" ], + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "************************", + "************************", + "************************", + "************************", + "*********###WW#WW#WW###*", + "*********#>#hh...h..hh#*", + "*********#.#tt...t..ttW*", + "*##W###W##..hh...h..hh#*", + "*#....................#*", + "*W^..RRRRRRRRRRRRRR..^W*", + "*Wh..R;;;;;;;;;;;;R...W*", + "*Wt..R;;;;;;;;;;;;R..^W*", + "*Wh..RRRRRRRRRRRRRR...W*", + "*W^...................W*", + "*#........hth.hth.hth.#*", + "*####.####WWW#WWW#WWW##*", + "*4zz#.j#9zzzzzzzzzzzzz6*", + "*4zz#+##zzzzzzzzz&zzzz6*", + "*4zzzzzzzzzzzzzzzzzzzz6*", + "*4zzzzzzzzzzzz((zzzzzz6*", + "*4zzzzzzzzzzzzzzzzzzzz6*", + "*4zzzzzzzzzzzzzzzzzzzz6*", + "*4555555555555555555556*", + "************************" + ], + "palettes": [ "apartment_palette" ], + "terrain": { "*": "t_open_air", "9": "t_gutter_downspout", "R": "t_glass_railing", ";": "t_open_air_rooved", "#": "t_brick_wall" }, + "furniture": { "h": "f_chair" }, + "items": { "t": { "item": "coffee_table", "chance": 50 }, "j": { "item": "bar_trash", "chance": 65, "repeat": [ 1, 3 ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_diner_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " |2222222222223 ", + " |..........X.3 ", + " |............3 ", + " |2222222|............3 ", + " |....................3 ", + " |....................3 ", + " |....................3 ", + " |...A.........A......3 ", + " |....................3 ", + " |.........&..........3 ", + " |...............==...3 ", + " |--|..35-------------3 ", + " |..3 ", + " |--3 ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/json/mapgen/store/s_electronicstore.json b/data/json/mapgen/store/s_electronicstore.json new file mode 100644 index 0000000000000..204598829660f --- /dev/null +++ b/data/json/mapgen/store/s_electronicstore.json @@ -0,0 +1,145 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_electronicstore" ], + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "! sssssss ss !", + "! sssssss -w+- !", + "!--WW-GG---------,,----!", + "!-.......t......-,,-ST-!", + "!-.......t......--,-..-!", + "!-.......txnnnn.-<,-+--!", + "!-.1111.........----..-!", + "!-.2222.^^^^^...4444..-!", + "!-......^CCC^.........-!", + "!-......^CCC^.........-!", + "!-.2222.^^^^^.4444.4---!", + "!-.3333.^CCC^.4444.4-|!!", + "!-......^CCC^......4-!!!", + "!-......^^^^^.444444-!!!", + "!-.3333.......-------- ", + "!--------.....ooo-dd}- ", + "!!!!%-__-........+.c.- ", + "!!!!!=__----++-------- ", + "!!!!!=________O- ", + "!!!!(-________O- ", + "!!!!(----O____O- ", + "!!!!! -OO____- ", + "!!!!( -------- ", + "!!!!( " + ], + "palettes": [ "electro_palette" ], + "terrain": { " ": "t_region_groundcover_urban", "%": "t_gutter_downspout" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_electronicstore_2ndfloor" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~#::#~~~~", + "~##o###o#oo#o####yy#%%%~", + "~#2_F|fAxxxL * #..%~", + "~oO_7|fA ## :..%~", + "~#5___ ERRL#> #..%~", + "~o314_ HHH#######*#+##~", + "~#||||6 R#hh |xx F_O#~", + "~#D D|Y R#ff __2o~", + "~#| ||||| #hh 475#~", + "~#T bdy| E# |HH 6###~", + "~oE + # R| L#/%~", + "~# I|y # R|T *}%~", + "~o @@ hI||+#+|||||+|#$%~", + "~# @@ I|S_#_S|D|d y##%~", + "~##o##o##t_#_t| I#~~", + "~~~~~&^.#98#89#U|T @@#~~", + "~~~~~!..##o#o#####oo##~~", + "~~~~~!.........`~~~~~~~~", + "~~~~~!)........`~~~~~~~~", + "~~~~~!==!......`~~~~~~~~", + "~~~~~~~~!......`~~~~~~~~", + "~~~~~~~~!======`~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette" ], + "place_nested": [ { "chunks": [ "garden_3x3_2" ], "x": 10, "y": 19 } ], + "terrain": { + "}": "t_metal_floor_no_roof", + "$": "t_metal_floor_no_roof", + "/": "t_ladder_down", + "=": "t_gutter_south", + ":": "t_window", + "#": "t_brick_wall", + "%": "t_railing", + "`": "t_gutter_east", + "!": "t_gutter_west", + "&": "t_gutter_drop", + ".": "t_flat_roof", + ")": "t_flat_roof", + "u": "t_flat_roof", + "g": "t_flat_roof", + "~": "t_open_air", + "_": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "9": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white" + }, + "furniture": { "$": [ "f_indoor_plant", "f_indoor_plant_y" ], ")": "f_TV_antenna" }, + "place_loot": [ + { "item": "television", "x": 9, "y": 2 }, + { "item": "television", "x": 16, "y": 7 }, + { "item": "stereo", "x": 10, "y": 2, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_electronicstore_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " 2223 ", + " |222222222222222..3 ", + " |.................3 ", + " |.................3 ", + " |.=:..............3 ", + " |.................3333 ", + " |..&.......X.........3 ", + " |....................3 ", + " |....................3 ", + " |.....X............3-3 ", + " |..........N.......3 ", + " |..................3 ", + " |..............&...3 ", + " |...............=..33 ", + " |----5-|............3 ", + " |............3 ", + " |------------3 ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/json/mapgen/store/s_games.json b/data/json/mapgen/store/s_games.json new file mode 100644 index 0000000000000..18b62a01b3670 --- /dev/null +++ b/data/json/mapgen/store/s_games.json @@ -0,0 +1,139 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_games" ], + "object": { + "fill_ter": "t_carpet_purple", + "rows": [ + "......fg____g____g____gf", + "......fg____g____g____gf", + "......fg____g____g____gf", + "......fg____g____g____gf", + "......fg____g____g____gf", + "......fg____g____g____gf", + "......ffffffffffffffffff", + "......9##oooo#cc#oooo##.", + ".##o#o## kkkk Ykkkk #.", + ".#hhhhh| #.", + ".# iiƃ#.", + ".# l hh hh i #.", + ".# hhh | lkl hh hh i #.", + ".# hhh | l j A#.", + ".# i #.", + ".# hh hkk i #.", + ".#hhhhh| Y||c|oo||||#.", + ".##o#o###|c||D |;r#.", + ".______9#;;;| ll c;q#.", + "._______c;;;| lkkl |###.", + ".nn_____#;;m| lkkl c;q#.", + ".nn_____#mmm|F ll |;r#.", + ".nn_____######oooo#####.", + "........................" + ], + "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } }, + "terrain": { + "|": "t_wall_w", + "#": "t_brick_wall", + "o": "t_window", + "c": "t_door_c", + "_": "t_pavement", + ".": "t_region_groundcover_urban", + "f": "t_sidewalk", + "g": "t_pavement_y", + "h": "t_carpet_purple", + "i": "t_carpet_purple", + "j": "t_console_broken", + "k": "t_carpet_purple", + "l": "t_carpet_purple", + "n": "t_pavement", + "Y": "t_carpet_purple", + ";": "t_linoleum_gray", + "q": "t_linoleum_gray", + "r": "t_linoleum_gray", + "m": "t_linoleum_gray", + "s": "t_carpet_purple", + "9": "t_gutter_downspout" + }, + "furniture": { + "h": "f_rack_wood", + "i": "f_counter", + "ƃ": "f_counter_gate_c", + "k": "f_table", + "A": "f_stool", + "l": "f_chair", + "m": "f_crate_c", + "n": "f_dumpster", + "Y": "f_trashcan", + "r": "f_sink", + "s": "f_locker" + }, + "toilets": { "q": { } }, + "place_vehicles": [ + { "vehicle": "car", "x": 9, "y": 2, "chance": 35, "rotation": 270 }, + { "vehicle": "scooter_electric", "x": 5, "y": 20, "chance": 35, "rotation": 270 }, + { "vehicle": "beetle", "x": 14, "y": 2, "chance": 35, "rotation": 270 }, + { "vehicle": "electric_car", "x": 19, "y": 2, "chance": 35, "rotation": 270 } + ], + "place_loot": [ + { "group": "magazines", "chance": 50, "repeat": 5, "x": [ 2, 6 ], "y": 9 }, + { "group": "bookstore_misc", "chance": 50, "repeat": 5, "x": [ 3, 5 ], "y": 12 }, + { "group": "games", "chance": 50, "repeat": 3, "x": [ 3, 5 ], "y": 13 }, + { "group": "games", "chance": 50, "repeat": 5, "x": [ 2, 6 ], "y": 16 }, + { "group": "games", "chance": 50, "repeat": 4, "x": [ 13, 14 ], "y": [ 11, 12 ] }, + { "group": "games", "chance": 50, "repeat": 5, "x": [ 16, 17 ], "y": [ 11, 12 ] }, + { "group": "games", "chance": 50, "repeat": 4, "x": [ 9, 12 ], "y": 8 }, + { "group": "games", "chance": 50, "repeat": 4, "x": [ 17, 20 ], "y": 8 }, + { "group": "games", "chance": 50, "repeat": 5, "x": [ 12, 13 ], "y": 15 }, + { "group": "games", "chance": 50, "repeat": 5, "x": [ 15, 17 ], "y": 15 }, + { "group": "trash", "chance": 50, "repeat": 5, "x": 11, "y": 16 }, + { "group": "trash", "chance": 50, "repeat": 5, "x": 16, "y": 8 }, + { "group": "games", "chance": 50, "repeat": 3, "x": [ 9, 11 ], "y": 21 }, + { "group": "games", "chance": 50, "repeat": 4, "x": 11, "y": 20 }, + { "group": "cleaning_bulk", "chance": 80, "x": 18, "y": 21 }, + { "group": "vending_food_items", "chance": 80, "repeat": 4, "x": 19, "y": [ 14, 15 ] }, + { "group": "trash", "chance": 50, "repeat": 5, "x": [ 1, 2 ], "y": [ 20, 22 ] }, + { "item": "dnd_handbook", "x": 16, "y": 20, "chance": 100 }, + { "item": "dnd", "x": 15, "y": 20, "chance": 90 }, + { "item": "character_sheet", "x": [ 15, 16 ], "y": [ 19, 20 ], "chance": 80, "repeat": [ 1, 6 ] }, + { "item": "metal_RPG_die", "x": 16, "y": 19, "chance": 10 }, + { "item": "RPG_die", "x": 15, "y": 19, "chance": 90, "repeat": [ 1, 4 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_games_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " |222222222222223 ", + " |222225..............3 ", + " |...............X.:..3 ", + " |....................3 ", + " |....................3 ", + " |...A...........=&...3 ", + " |....................3 ", + " |....................3 ", + " |....................3 ", + " |....................3 ", + " |-----5|.............3 ", + " |.............3 ", + " |.............3 ", + " |........A....3 ", + " |.............3 ", + " |-------------3 ", + " " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/json/mapgen/store/s_gunstore.json b/data/json/mapgen/store/s_gunstore.json new file mode 100644 index 0000000000000..d05cf70c65472 --- /dev/null +++ b/data/json/mapgen/store/s_gunstore.json @@ -0,0 +1,239 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_gunstore" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + "..................```...", + ".###bb##bb##bb###`````..", + ";# Y#`````..", + ".# c`````..", + ".# ## ## jjj #`````..", + ".# jj jj jjj #######.", + ".# jj jj #Y L#.", + ".# jj jj d #.", + ".# jj jj kk k# a a #.", + ".# jj jj l jhkakak#.", + ".# jj jj m jh~~~~~#.", + ".# ## ## m jh~~~~~#.", + ".# m jh~~~~~#.", + ".# m L#~~~~~#.", + ".#adaadaaaaaaada#~~~~~#.", + ".#r~a~~a #######.....`~", + "~########*#}g.}.......`~", + "~!....:.:..{..{.......`~", + "~!.).......}}}}`&=====`~", + "~!.............`~~~~~~~~", + "~!.............`~~~~~~~~", + "~!....u........`~~~~~~~~", + "~!.............`~~~~~~~~", + "~!=============`~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "$": "t_gutter_north", + "=": "t_gutter_south", + "#": "t_brick_wall", + "`": "t_gutter_east", + "!": "t_gutter_west", + "&": "t_gutter_drop", + ".": "t_flat_roof", + ")": "t_flat_roof", + "u": "t_flat_roof", + ":": "t_flat_roof", + "g": "t_flat_roof", + "~": "t_open_air", + "_": "t_linoleum_white", + "Y": "t_linoleum_white", + "1": "t_linoleum_white", + "2": "t_linoleum_white", + "3": "t_linoleum_white", + "4": "t_linoleum_white", + "5": "t_linoleum_white", + "6": "t_linoleum_white", + "7": "t_linoleum_white", + "8": "t_linoleum_white", + "O": "t_linoleum_white", + "F": "t_linoleum_white", + "B": "t_linoleum_white", + "S": "t_linoleum_white", + "t": "t_linoleum_white", + "{": "t_chaingate_c", + "}": "t_chainfence" + }, + "furniture": { ":": [ "f_indoor_plant", "f_indoor_plant_y" ], ";": "f_gunsafe_ml", ")": "f_TV_antenna" }, + "place_loot": [ { "item": "television", "x": 2, "y": 9 }, { "item": "stereo", "x": 2, "y": 10, "chance": 100 } ], + "items": { + ";": [ + { "item": "guns_obscure", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "mags_obscure", "chance": 30, "repeat": [ 1, 4 ] }, + { "item": "ammo_obscure", "chance": 100, "repeat": [ 1, 2 ] } + ] + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_gunstore_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " 5222222222222223 ", + " |..............3 ", + " |..............3 ", + " |...A..........3 ", + " |..............3 ", + " |..............3 ", + " |X..........A.&3 ", + " |..............3 ", + " |..............3 ", + " |..............3 ", + " |..............3 ", + " |..............3 ", + " |.=............3 ", + " |..............5 ", + " |........3-----3 ", + " |--------3 ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/mods/Fuji_Structures/worldgen/palette_electronic.json b/data/json/mapgen_palettes/electronic_palette.json similarity index 92% rename from data/mods/Fuji_Structures/worldgen/palette_electronic.json rename to data/json/mapgen_palettes/electronic_palette.json index 1492c445231f4..bbf5b8f690ebd 100644 --- a/data/mods/Fuji_Structures/worldgen/palette_electronic.json +++ b/data/json/mapgen_palettes/electronic_palette.json @@ -3,7 +3,7 @@ "type": "palette", "id": "electro_palette", "terrain": { - " ": [ [ "t_dirt", 5 ], [ "t_grass", 16 ], [ "t_grass_long", 5 ], [ "t_underbrush", 1 ] ], + " ": "t_region_groundcover_urban", ",": "t_floor", "_": "t_thconc_floor", "^": "t_carpet_yellow", @@ -36,7 +36,7 @@ "t": "f_counter", "d": "f_desk", "S": "f_sink", - "f": "f_filing_cabinet", + "}": "f_filing_cabinet", "c": "f_chair", "o": "f_crate_c", "O": "f_crate_c", diff --git a/data/json/mapgen_palettes/mall_palette.json b/data/json/mapgen_palettes/mall_palette.json index b28f74d58b913..6cb70de570762 100644 --- a/data/json/mapgen_palettes/mall_palette.json +++ b/data/json/mapgen_palettes/mall_palette.json @@ -248,5 +248,27 @@ "§": "t_water_pool_shallow_outdoors" }, "toilets": { "t": { } } + }, + { + "type": "palette", + "id": "mall_palette_basement", + "terrain": { + ".": "t_thconc_floor", + "N": "t_chainfence", + "T": "t_chaingate_c", + "0": "t_door_metal_pickable", + "1": "t_door_metal_locked", + "=": [ "t_door_c", "t_door_locked" ], + "|": "t_concrete_wall", + " ": "t_rock", + "3": "t_gates_control_brick", + "E": "t_elevator", + "<": "t_stairs_up", + ">": "t_stairs_down", + "Ŋ": "t_elevator_control_off", + "H": "t_laminated_glass", + "+": "t_laminated_door_glass_c" + }, + "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ], "F": "f_bench" } } ] diff --git a/data/json/martialarts.json b/data/json/martialarts.json index bf28cb29054a7..8b9e9d662f948 100644 --- a/data/json/martialarts.json +++ b/data/json/martialarts.json @@ -114,7 +114,17 @@ "initiate": [ "You grit your teeth and prepare for a good fight.", "%s gets ready to brawl." ], "autolearn": [ [ "melee", "1" ] ], "arm_block": 1, - "leg_block": 7, + "static_buffs": [ + { + "id": "buff_brawling_block", + "name": "Enhanced Blocking", + "description": "Combat experience has led to you being able to block multiple attacks at a time.\n\n+1 Block attempts.", + "unarmed_allowed": true, + "melee_allowed": true, + "skill_requirements": [ { "name": "melee", "level": 7 } ], + "bonus_blocks": 1 + } + ], "allow_melee": true, "techniques": [ "tec_brawl_disarm_unarmed", diff --git a/data/json/materials.json b/data/json/materials.json index df95f30dd600b..de89a0e441c49 100644 --- a/data/json/materials.json +++ b/data/json/materials.json @@ -763,13 +763,36 @@ { "type": "material", "ident": "foodplace_foodstuff", - "name": "Foodplace'delicious foodstuff", + "name": "Foodplace's delicious foodstuff", "copy-from": "junk" }, { "type": "material", "ident": "kevlar", "name": "Kevlar", + "density": 9, + "soft": true, + "reinforces": true, + "specific_heat_liquid": 0.82, + "specific_heat_solid": 0.45, + "latent_heat": 273, + "bash_resist": 1, + "cut_resist": 3, + "bullet_resist": 5, + "acid_resist": 5, + "fire_resist": 1, + "elec_resist": 2, + "chip_resist": 7, + "repaired_with": "sheet_kevlar", + "salvaged_into": "sheet_kevlar", + "dmg_adj": [ "ripped", "torn", "shredded", "tattered" ], + "bash_dmg_verb": "ripped", + "cut_dmg_verb": "cut" + }, + { + "type": "material", + "ident": "kevlar_layered", + "name": "Layered Kevlar", "density": 10, "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, @@ -782,8 +805,8 @@ "fire_resist": 3, "elec_resist": 2, "chip_resist": 20, - "repaired_with": "kevlar_plate", - "salvaged_into": "kevlar_plate", + "repaired_with": "sheet_kevlar_layered", + "salvaged_into": "sheet_kevlar_layered", "dmg_adj": [ "ripped", "torn", "shredded", "tattered" ], "bash_dmg_verb": "ripped", "cut_dmg_verb": "cut" @@ -803,9 +826,9 @@ "fire_resist": 3, "elec_resist": 2, "chip_resist": 20, - "repaired_with": "kevlar_plate", - "salvaged_into": "kevlar_plate", - "dmg_adj": [ "marked", "dented", "scarred", "broken" ], + "repaired_with": "rigid_kevlar_plate", + "salvaged_into": "rigid_kevlar_plate", + "dmg_adj": [ "ripped", "torn", "shredded", "tattered" ], "bash_dmg_verb": "ripped", "cut_dmg_verb": "cut" }, diff --git a/data/json/monsterdrops/zombie_cop.json b/data/json/monsterdrops/zombie_cop.json index 3e11d0454fe15..8ef549093c7b1 100644 --- a/data/json/monsterdrops/zombie_cop.json +++ b/data/json/monsterdrops/zombie_cop.json @@ -35,6 +35,7 @@ [ "heavy_flashlight", 35 ], [ "holster", 25 ], [ "kevlar", 35 ], + [ "armguard_cut_resistant", 2 ], [ "bholster", 3 ], [ "legpouch_large", 5 ], [ "pocket_firstaid", 10 ], @@ -48,7 +49,7 @@ { "id": "cop_gloves", "type": "item_group", - "items": [ [ "gloves_leather", 45 ], [ "gloves_medical", 20 ], [ "gloves_tactical", 10 ] ] + "items": [ [ "gloves_leather", 45 ], [ "gloves_medical", 20 ], [ "gloves_cut_resistant", 20 ], [ "gloves_tactical", 10 ] ] }, { "id": "cop_helmet", diff --git a/data/json/monstergroups/eggs.json b/data/json/monstergroups/eggs.json index 9ad163f6a834e..63d9292146e91 100644 --- a/data/json/monstergroups/eggs.json +++ b/data/json/monstergroups/eggs.json @@ -17,91 +17,67 @@ "name": "GROUP_EGG_CHICKEN", "type": "monstergroup", "default": "mon_chicken_chick", - "monsters": [ - { "monster": "mon_cockatrice_chick", "freq": 5, "cost_multiplier": 1 }, - { "monster": "mon_rattlesnake", "freq": 1, "cost_multiplier": 1 } - ] + "monsters": [ { "monster": "mon_chicken_chick", "freq": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_GROUSE", "type": "monstergroup", "default": "mon_grouse_chick", - "monsters": [ - { "monster": "mon_cockatrice_chick", "freq": 5, "cost_multiplier": 1 }, - { "monster": "mon_rattlesnake", "freq": 1, "cost_multiplier": 1 } - ] + "monsters": [ { "monster": "mon_grouse_chick", "freq": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_CROW", "type": "monstergroup", "default": "mon_crow_chick", - "monsters": [ - { "monster": "mon_cockatrice_chick", "freq": 5, "cost_multiplier": 1 }, - { "monster": "mon_rattlesnake", "freq": 1, "cost_multiplier": 1 } - ] + "monsters": [ { "monster": "mon_crow_chick", "freq": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_DUCK", "type": "monstergroup", "default": "mon_duck_chick", - "monsters": [ - { "monster": "mon_cockatrice_chick", "freq": 5, "cost_multiplier": 1 }, - { "monster": "mon_rattlesnake", "freq": 1, "cost_multiplier": 1 } - ] + "monsters": [ { "monster": "mon_duck_chick", "freq": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_GOOSE_CANADIAN", "type": "monstergroup", "default": "mon_goose_canadian_chick", - "monsters": [ - { "monster": "mon_cockatrice_chick", "freq": 5, "cost_multiplier": 1 }, - { "monster": "mon_rattlesnake", "freq": 1, "cost_multiplier": 1 } - ] + "monsters": [ { "monster": "mon_goose_canadian_chick", "freq": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_TURKEY", "type": "monstergroup", "default": "mon_turkey_chick", - "monsters": [ - { "monster": "mon_cockatrice_chick", "freq": 5, "cost_multiplier": 1 }, - { "monster": "mon_rattlesnake", "freq": 1, "cost_multiplier": 1 } - ] + "monsters": [ { "monster": "mon_turkey_chick", "freq": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_PHEASANT", "type": "monstergroup", "default": "mon_pheasant_chick", - "monsters": [ - { "monster": "mon_cockatrice_chick", "freq": 8, "cost_multiplier": 1 }, - { "monster": "mon_rattlesnake", "freq": 1, "cost_multiplier": 1 } - ] + "monsters": [ { "monster": "mon_pheasant_chick", "freq": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_COCKATRICE", "type": "monstergroup", "default": "mon_cockatrice_chick", - "monsters": [ { "monster": "mon_rattlesnake", "freq": 1, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_cockatrice_chick", "freq": 1, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_SNAKE", "type": "monstergroup", "default": "mon_rattlesnake", - "monsters": [ - { "monster": "mon_chicken_chick", "freq": 30, "cost_multiplier": 1 }, - { "monster": "mon_rattlesnake", "freq": 100, "cost_multiplier": 1 } - ] + "monsters": [ { "monster": "mon_rattlesnake", "freq": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_ROACH", "type": "monstergroup", "default": "mon_giant_cockroach_nymph", - "monsters": [ { "monster": "mon_plague_nymph", "freq": 10, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_giant_cockroach_nymph", "freq": 10, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_ROACH_PLAGUE", "type": "monstergroup", "default": "mon_plague_nymph", - "monsters": [ { "monster": "mon_giant_cockroach_nymph", "freq": 10, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_plague_nymph", "freq": 10, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_LOCUST", @@ -113,6 +89,6 @@ "name": "GROUP_EGG_ANT", "type": "monstergroup", "default": "mon_ant_larva", - "monsters": [ { "monster": "mon_ant_acid_larva", "freq": 10, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_ant_larva", "freq": 10, "cost_multiplier": 1 } ] } ] diff --git a/data/json/monstergroups/mammal.json b/data/json/monstergroups/mammal.json index ac79743402e87..a0bcab9009071 100644 --- a/data/json/monstergroups/mammal.json +++ b/data/json/monstergroups/mammal.json @@ -40,6 +40,35 @@ { "monster": "mon_dog_auscattle_pup", "freq": 5, "cost_multiplier": 0 } ] }, + { + "name": "GROUP_STRAY_CATS", + "type": "monstergroup", + "default": "mon_cat", + "monsters": [ + { "monster": "mon_cat", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_tabby", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_tabby_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_longhair", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_longhair_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_siamese", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_siamese_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_persian", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_persian_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_calico", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_calico_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_maine_coon", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_maine_coon_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_bengal", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_bengal_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_devon_rex", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_devon_rex_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_sphynx", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_sphynx_kitten", "freq": 5, "cost_multiplier": 0 }, + { "monster": "mon_cat_chonker", "freq": 50, "cost_multiplier": 0 }, + { "monster": "mon_cat_chonker_kitten", "freq": 5, "cost_multiplier": 0 } + ] + }, { "name": "GROUP_PETS", "type": "monstergroup", diff --git a/data/json/monstergroups/robots.json b/data/json/monstergroups/robots.json index d4cbf677275ba..f140239c6cfbe 100644 --- a/data/json/monstergroups/robots.json +++ b/data/json/monstergroups/robots.json @@ -33,7 +33,14 @@ "type": "monstergroup", "name": "GROUP_ROBOT_SECUBOT", "default": "mon_secubot", - "monsters": [ { "monster": "mon_secubot", "freq": 100, "cost_multiplier": 0 } ] + "monsters": [ + { + "monster": "mon_secubot", + "freq": 100, + "cost_multiplier": 0, + "spawn_data": { "ammo": [ { "ammo_id": "556", "qty": 30 } ] } + } + ] }, { "type": "monstergroup", diff --git a/data/json/monsters/insect_spider.json b/data/json/monsters/insect_spider.json index 58c08aeec6cae..882c83de598ba 100644 --- a/data/json/monsters/insect_spider.json +++ b/data/json/monsters/insect_spider.json @@ -344,7 +344,6 @@ "vision_night": 5, "harvest": "arachnid_bee", "anger_triggers": [ "HURT", "FRIEND_DIED", "PLAYER_CLOSE" ], - "death_drops": { "subtype": "collection", "groups": [ [ "bees", 50 ] ], "//": "50% chance of an item from group bees" }, "death_function": [ "NORMAL" ], "flags": [ "SEES", "SMELLS", "VENOM", "FLIES", "STUMBLES", "SWARMS", "GROUP_MORALE", "CANPLAY", "PATH_AVOID_FIRE" ] }, @@ -795,7 +794,6 @@ "vision_night": 5, "harvest": "arachnid_wasp", "anger_triggers": [ "HURT", "FRIEND_DIED", "PLAYER_CLOSE", "PLAYER_WEAK", "STALK" ], - "death_drops": { "subtype": "collection", "groups": [ [ "wasps", 40 ] ], "//": "40% chance of an item from group bees" }, "death_function": [ "NORMAL" ], "flags": [ "SEES", "SMELLS", "VENOM", "FLIES", "SWARMS", "GROUP_MORALE", "CANPLAY", "PATH_AVOID_FIRE" ] }, diff --git a/data/json/monsters/monster_goals.json b/data/json/monsters/monster_goals.json index 43a5d05be11b8..91effca87fcca 100644 --- a/data/json/monsters/monster_goals.json +++ b/data/json/monsters/monster_goals.json @@ -3,25 +3,24 @@ "type": "behavior", "id": "monster_goals", "strategy": "sequential_until_done", - "children": [ "absorb_items", "monster_special" ] + "children": [ "absorb_items" ] }, { "type": "behavior", "id": "absorb_items", "strategy": "sequential", - "predicate": "monster_not_hallucination", - "children": [ "do_absorb" ] - }, - { - "type": "behavior", - "id": "do_absorb", - "predicate": "monster_items_available", + "conditions": [ { "predicate": "monster_not_hallucination" }, { "predicate": "monster_items_available" } ], "goal": "consume_items" }, { "type": "behavior", - "id": "monster_special", - "predicate": "monster_has_special", - "goal": "do_special" + "id": "EAT_CROP", + "strategy": "sequential", + "conditions": [ + { "predicate": "monster_not_hallucination" }, + { "predicate": "monster_special_available", "argument": "EAT_CROP" }, + { "predicate": "monster_adjacent_plants" } + ], + "goal": "EAT_CROP" } ] diff --git a/data/json/monsters/obsolete.json b/data/json/monsters/obsolete.json index e448fb549dd77..a728ed9866ed4 100644 --- a/data/json/monsters/obsolete.json +++ b/data/json/monsters/obsolete.json @@ -367,5 +367,42 @@ "special_attacks": [ [ "CHICKENBOT", 4 ] ], "death_function": [ "BROKEN" ], "flags": [ "SEES", "HEARS", "BASHES", "NO_BREATHE", "ELECTRONIC", "PRIORITIZE_TARGETS", "DROPS_AMMO" ] + }, + { + "id": "mon_laserturret", + "type": "MONSTER", + "name": { "str": "laser turret" }, + "description": "The TX-5LR Cerberus is an upgrade to its predecessors. It features a state of the art revolving laser cannon system with three barrels that charge from solar cells embedded in its hull.", + "default_faction": "military", + "species": [ "ROBOT" ], + "diff": 20, + "volume": "30000 ml", + "weight": "40750 g", + "hp": 30, + "speed": 100, + "material": [ "steel" ], + "symbol": "2", + "color": "white", + "aggression": 100, + "morale": 100, + "armor_bash": 14, + "armor_cut": 16, + "armor_bullet": 13, + "vision_day": 50, + "revert_to_itype": "bot_laserturret", + "special_attacks": [ + { + "type": "gun", + "cooldown": 1, + "gun_type": "laser_cannon", + "fake_skills": [ [ "gun", 4 ], [ "rifle", 8 ] ], + "ranges": [ [ 0, 30, "DEFAULT" ] ], + "require_sunlight": true + } + ], + "special_when_hit": [ "RETURN_FIRE", 100 ], + "death_drops": { }, + "death_function": [ "BROKEN" ], + "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE" ] } ] diff --git a/data/json/monsters/turrets.json b/data/json/monsters/turrets.json index c350f8ae0458e..2806aa27da25b 100644 --- a/data/json/monsters/turrets.json +++ b/data/json/monsters/turrets.json @@ -75,43 +75,6 @@ "death_function": [ "FOCUSEDBEAM" ], "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE", "PRIORITIZE_TARGETS" ] }, - { - "id": "mon_laserturret", - "type": "MONSTER", - "name": { "str": "laser turret" }, - "description": "The TX-5LR Cerberus is an upgrade to its predecessors. It features a state of the art revolving laser cannon system with three barrels that charge from solar cells embedded in its hull.", - "default_faction": "military", - "species": [ "ROBOT" ], - "diff": 20, - "volume": "30000 ml", - "weight": "40750 g", - "hp": 30, - "speed": 100, - "material": [ "steel" ], - "symbol": "2", - "color": "white", - "aggression": 100, - "morale": 100, - "armor_bash": 14, - "armor_cut": 16, - "armor_bullet": 13, - "vision_day": 50, - "revert_to_itype": "bot_laserturret", - "special_attacks": [ - { - "type": "gun", - "cooldown": 1, - "gun_type": "laser_cannon", - "fake_skills": [ [ "gun", 4 ], [ "rifle", 8 ] ], - "ranges": [ [ 0, 30, "DEFAULT" ] ], - "require_sunlight": true - } - ], - "special_when_hit": [ "RETURN_FIRE", 100 ], - "death_drops": { }, - "death_function": [ "BROKEN" ], - "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE" ] - }, { "id": "mon_turret_bmg", "type": "MONSTER", diff --git a/data/json/move_modes.json b/data/json/move_modes.json new file mode 100644 index 0000000000000..d18a8e5d23b40 --- /dev/null +++ b/data/json/move_modes.json @@ -0,0 +1,56 @@ +[ + { + "type": "movement_mode", + "id": "walk", + "character": "w", + "panel_char": "W", + "name": "walk", + "panel_color": "white", + "symbol_color": "white", + "exertion_level": "LIGHT_EXERCISE", + "change_good_none": "You start walking.", + "change_good_animal": "You nudge your steed into a steady trot.", + "change_good_mech": "You set your mech's leg power to a loping fast walk.", + "move_type": "walking", + "move_speed_multiplier": 1.0 + }, + { + "type": "movement_mode", + "id": "run", + "character": "r", + "panel_char": "R", + "name": "run", + "panel_color": "red", + "symbol_color": "yellow", + "exertion_level": "ACTIVE_EXERCISE", + "change_good_none": "You start running.", + "change_good_animal": "You spur your steed into a gallop.", + "change_good_mech": "You set the power of your mech's leg servos to maximum.", + "change_bad_none": "You're too tired to run.", + "change_bad_animal": "Your steed is too tired to go faster.", + "change_bad_mech": "Your mech's leg servos are unable to operate faster.", + "move_type": "running", + "stop_hauling": true, + "sound_multiplier": 1.5, + "move_speed_multiplier": 2.0, + "stamina_multiplier": 7.0, + "swim_speed_mod": -80 + }, + { + "type": "movement_mode", + "id": "crouch", + "character": "c", + "panel_char": "C", + "name": "crouch", + "panel_color": "light_blue", + "symbol_color": "light_gray", + "exertion_level": "MODERATE_EXERCISE", + "change_good_none": "You start crouching.", + "change_good_animal": "You slow your steed to a walk.", + "change_good_mech": "You reduce the power of your mech's leg servos to minimum.", + "move_type": "crouching", + "sound_multiplier": 0.5, + "move_speed_multiplier": 0.5, + "swim_speed_mod": 50 + } +] diff --git a/data/json/mutations/mutations.json b/data/json/mutations/mutations.json index 23f6061cbb274..0287ac6797198 100644 --- a/data/json/mutations/mutations.json +++ b/data/json/mutations/mutations.json @@ -21,10 +21,10 @@ "cost": 1, "time": 810000, "hunger": true, - "encumbrance_covered": [ [ "HEAD", 5 ] ], + "encumbrance_covered": [ [ "head", 5 ] ], "changes_to": [ "BIOLUM2" ], "category": [ "ELFA", "INSECT", "FISH" ], - "lumination": [ [ "HEAD", 8 ] ] + "lumination": [ [ "head", 8 ] ] }, { "type": "mutation", @@ -36,10 +36,10 @@ "cost": 1, "time": 405000, "hunger": true, - "encumbrance_covered": [ [ "HEAD", 5 ] ], + "encumbrance_covered": [ [ "head", 5 ] ], "prereqs": [ "BIOLUM1" ], "category": [ "ELFA", "INSECT", "FISH" ], - "lumination": [ [ "HEAD", 20 ] ] + "lumination": [ [ "head", 20 ] ] }, { "type": "mutation", @@ -74,16 +74,16 @@ "starting_trait": true, "valid": false, "wet_protection": [ - { "part": "HEAD", "neutral": 6 }, - { "part": "LEG_L", "neutral": 8 }, - { "part": "LEG_R", "neutral": 8 }, - { "part": "FOOT_L", "neutral": 2 }, - { "part": "FOOT_R", "neutral": 2 }, - { "part": "ARM_L", "neutral": 8 }, - { "part": "ARM_R", "neutral": 8 }, - { "part": "HAND_L", "neutral": 12 }, - { "part": "HAND_R", "neutral": 12 }, - { "part": "TORSO", "neutral": 10 } + { "part": "head", "neutral": 6 }, + { "part": "leg_l", "neutral": 8 }, + { "part": "leg_r", "neutral": 8 }, + { "part": "foot_l", "neutral": 2 }, + { "part": "foot_r", "neutral": 2 }, + { "part": "arm_l", "neutral": 8 }, + { "part": "arm_r", "neutral": 8 }, + { "part": "hand_l", "neutral": 12 }, + { "part": "hand_r", "neutral": 12 }, + { "part": "torso", "neutral": 10 } ] }, { @@ -294,14 +294,21 @@ "starting_trait": true, "category": [ "LIZARD", "CATTLE", "CHIMERA", "RAPTOR" ], "cancels": [ "THINSKIN" ], - "armor": [ { "parts": "ALL", "cut": 1, "bash": 1 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 1, + "bash": 1 + } + ] }, { "type": "mutation", "id": "PACKMULE", "name": { "str": "Packmule" }, - "points": 2, - "description": "You can manage to find space for anything! You can carry 40% more volume.", + "points": 1, + "description": "You pack things very efficiently! You can retrieve things from containers 10% faster.", + "obtain_cost_multiplier": 0.9, "starting_trait": true, "valid": false, "cancels": [ "DISORGANIZED" ] @@ -866,8 +873,9 @@ "type": "mutation", "id": "DISORGANIZED", "name": { "str": "Disorganized" }, - "points": -3, - "description": "You are terrible at organizing and storing your possessions. You can carry 40% less volume.", + "points": -1, + "description": "You are terrible at organizing and storing your possessions. You retrieve things from containers 10% slower.", + "obtain_cost_multiplier": 1.1, "starting_trait": true, "valid": false, "cancels": [ "PACKMULE" ] @@ -946,7 +954,13 @@ "description": "Your skin is fragile. Cutting and bash damage is slightly increased for you.", "starting_trait": true, "cancels": [ "THICKSKIN" ], - "armor": [ { "parts": "ALL", "cut": -1, "bash": -1 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": -1, + "bash": -1 + } + ] }, { "type": "mutation", @@ -1611,7 +1625,7 @@ "attack_text_u": "You sink your fangs into %s", "attack_text_npc": "%1$s sinks their fangs into %2$s", "blocker_mutations": [ "MUZZLE", "MUZZLE_LONG", "MUZZLE_RAT" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 20, "base_damage": { "damage_type": "stab", "amount": 20 } }, @@ -1619,7 +1633,7 @@ "attack_text_u": "You sink your fangs into %s", "attack_text_npc": "%1$s sinks their fangs into %2$s", "required_mutations": [ "MUZZLE" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 18, "base_damage": { "damage_type": "stab", "amount": 20 } }, @@ -1627,7 +1641,7 @@ "attack_text_u": "You sink your fangs into %s", "attack_text_npc": "%1$s sinks their fangs into %2$s", "required_mutations": [ "MUZZLE_LONG" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 15, "base_damage": { "damage_type": "stab", "amount": 20 } }, @@ -1635,7 +1649,7 @@ "attack_text_u": "You sink your fangs into %s", "attack_text_npc": "%1$s sinks their fangs into %2$s", "required_mutations": [ "MUZZLE_RAT" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 19, "base_damage": { "damage_type": "stab", "amount": 20 } } @@ -1656,7 +1670,7 @@ "attacks": { "attack_text_u": "You bite into %s with your ratlike incisors", "attack_text_npc": "%1$s bites %2$s with their ratlike incisors", - "body_part": "MOUTH", + "body_part": "mouth", "chance": 18, "base_damage": [ { "damage_type": "cut", "amount": 3 }, { "damage_type": "bash", "amount": 3 } ] } @@ -1671,7 +1685,7 @@ "description": "You have a set of clear lenses which lower over your eyes while underwater, allowing you to see as though you were wearing goggles. Slightly decreases wet penalties.", "prereqs": [ "EYEBULGE" ], "category": [ "LIZARD", "FISH" ], - "wet_protection": [ { "part": "EYES", "neutral": 1 } ] + "wet_protection": [ { "part": "eyes", "neutral": 1 } ] }, { "type": "mutation", @@ -1683,7 +1697,7 @@ "description": "You've grown a set of gills in your neck, allowing you to breathe underwater. Slightly increases wet benefits.", "category": [ "FISH" ], "cancels": [ "GILLS_CEPH" ], - "wet_protection": [ { "part": "HEAD", "good": 1 } ] + "wet_protection": [ { "part": "head", "good": 1 } ] }, { "type": "mutation", @@ -1695,7 +1709,7 @@ "description": "You've grown a set of gills, running from your neck up behind your ears. They allow you to breathe underwater and slightly increase wet benefits.", "category": [ "CEPHALOPOD" ], "cancels": [ "GILLS" ], - "wet_protection": [ { "part": "HEAD", "good": 1 } ] + "wet_protection": [ { "part": "head", "good": 1 } ] }, { "type": "mutation", @@ -1713,18 +1727,24 @@ "leads_to": [ "M_DEFENDER" ], "changes_to": [ "M_SKIN2" ], "wet_protection": [ - { "part": "HEAD", "ignored": 6 }, - { "part": "LEG_L", "ignored": 20 }, - { "part": "LEG_R", "ignored": 20 }, - { "part": "FOOT_L", "ignored": 6 }, - { "part": "FOOT_R", "ignored": 6 }, - { "part": "ARM_L", "ignored": 18 }, - { "part": "ARM_R", "ignored": 18 }, - { "part": "HAND_L", "ignored": 4 }, - { "part": "HAND_R", "ignored": 4 }, - { "part": "TORSO", "ignored": 40 } + { "part": "head", "ignored": 6 }, + { "part": "leg_l", "ignored": 20 }, + { "part": "leg_r", "ignored": 20 }, + { "part": "foot_l", "ignored": 6 }, + { "part": "foot_r", "ignored": 6 }, + { "part": "arm_l", "ignored": 18 }, + { "part": "arm_r", "ignored": 18 }, + { "part": "hand_l", "ignored": 4 }, + { "part": "hand_r", "ignored": 4 }, + { "part": "torso", "ignored": 40 } ], - "armor": [ { "parts": "ALL", "cut": 1, "bash": 2 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 1, + "bash": 2 + } + ] }, { "type": "mutation", @@ -1742,18 +1762,24 @@ "threshreq": [ "THRESH_MYCUS" ], "changes_to": [ "M_SKIN3" ], "wet_protection": [ - { "part": "HEAD", "ignored": 9 }, - { "part": "LEG_L", "ignored": 30 }, - { "part": "LEG_R", "ignored": 30 }, - { "part": "FOOT_L", "ignored": 9 }, - { "part": "FOOT_R", "ignored": 9 }, - { "part": "ARM_L", "ignored": 24 }, - { "part": "ARM_R", "ignored": 24 }, - { "part": "HAND_L", "ignored": 6 }, - { "part": "HAND_R", "ignored": 6 }, - { "part": "TORSO", "ignored": 60 } + { "part": "head", "ignored": 9 }, + { "part": "leg_l", "ignored": 30 }, + { "part": "leg_r", "ignored": 30 }, + { "part": "foot_l", "ignored": 9 }, + { "part": "foot_r", "ignored": 9 }, + { "part": "arm_l", "ignored": 24 }, + { "part": "arm_r", "ignored": 24 }, + { "part": "hand_l", "ignored": 6 }, + { "part": "hand_r", "ignored": 6 }, + { "part": "torso", "ignored": 60 } + ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 2, + "bash": 3 + } ], - "armor": [ { "parts": "ALL", "cut": 2, "bash": 3 } ], "speed_modifier": 0.8 }, { @@ -1770,18 +1796,24 @@ "prereqs": [ "M_SKIN2" ], "threshreq": [ "THRESH_MYCUS" ], "wet_protection": [ - { "part": "HEAD", "ignored": 9 }, - { "part": "LEG_L", "ignored": 30 }, - { "part": "LEG_R", "ignored": 30 }, - { "part": "FOOT_L", "ignored": 9 }, - { "part": "FOOT_R", "ignored": 9 }, - { "part": "ARM_L", "ignored": 24 }, - { "part": "ARM_R", "ignored": 24 }, - { "part": "HAND_L", "ignored": 6 }, - { "part": "HAND_R", "ignored": 6 }, - { "part": "TORSO", "ignored": 60 } + { "part": "head", "ignored": 9 }, + { "part": "leg_l", "ignored": 30 }, + { "part": "leg_r", "ignored": 30 }, + { "part": "foot_l", "ignored": 9 }, + { "part": "foot_r", "ignored": 9 }, + { "part": "arm_l", "ignored": 24 }, + { "part": "arm_r", "ignored": 24 }, + { "part": "hand_l", "ignored": 6 }, + { "part": "hand_r", "ignored": 6 }, + { "part": "torso", "ignored": 60 } + ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 3, + "bash": 5 + } ], - "armor": [ { "parts": "ALL", "cut": 3, "bash": 5 } ], "speed_modifier": 0.8 }, { @@ -1798,18 +1830,23 @@ "changes_to": [ "THICK_SCALES", "SLEEK_SCALES" ], "movecost_swim_modifier": 0.9, "wet_protection": [ - { "part": "HEAD", "ignored": 3 }, - { "part": "LEG_L", "ignored": 10 }, - { "part": "LEG_R", "ignored": 10 }, - { "part": "FOOT_L", "ignored": 3 }, - { "part": "FOOT_R", "ignored": 3 }, - { "part": "ARM_L", "ignored": 9 }, - { "part": "ARM_R", "ignored": 9 }, - { "part": "HAND_L", "ignored": 2 }, - { "part": "HAND_R", "ignored": 2 }, - { "part": "TORSO", "ignored": 20 } + { "part": "head", "ignored": 3 }, + { "part": "leg_l", "ignored": 10 }, + { "part": "leg_r", "ignored": 10 }, + { "part": "foot_l", "ignored": 3 }, + { "part": "foot_r", "ignored": 3 }, + { "part": "arm_l", "ignored": 9 }, + { "part": "arm_r", "ignored": 9 }, + { "part": "hand_l", "ignored": 2 }, + { "part": "hand_r", "ignored": 2 }, + { "part": "torso", "ignored": 20 } ], - "armor": [ { "parts": "ALL", "cut": 2 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 2 + } + ] }, { "type": "mutation", @@ -1825,18 +1862,23 @@ "threshreq": [ "THRESH_LIZARD" ], "category": [ "LIZARD" ], "wet_protection": [ - { "part": "HEAD", "ignored": 5 }, - { "part": "LEG_L", "ignored": 16 }, - { "part": "LEG_R", "ignored": 16 }, - { "part": "FOOT_L", "ignored": 5 }, - { "part": "FOOT_R", "ignored": 5 }, - { "part": "ARM_L", "ignored": 14 }, - { "part": "ARM_R", "ignored": 14 }, - { "part": "HAND_L", "ignored": 4 }, - { "part": "HAND_R", "ignored": 4 }, - { "part": "TORSO", "ignored": 30 } + { "part": "head", "ignored": 5 }, + { "part": "leg_l", "ignored": 16 }, + { "part": "leg_r", "ignored": 16 }, + { "part": "foot_l", "ignored": 5 }, + { "part": "foot_r", "ignored": 5 }, + { "part": "arm_l", "ignored": 14 }, + { "part": "arm_r", "ignored": 14 }, + { "part": "hand_l", "ignored": 4 }, + { "part": "hand_r", "ignored": 4 }, + { "part": "torso", "ignored": 30 } + ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 4 + } ], - "armor": [ { "parts": "ALL", "cut": 4 } ], "passive_mods": { "dex_mod": -2 } }, { @@ -1852,18 +1894,23 @@ "category": [ "FISH" ], "movecost_swim_modifier": 0.75, "wet_protection": [ - { "part": "HEAD", "good": 7 }, - { "part": "LEG_L", "good": 21 }, - { "part": "LEG_R", "good": 21 }, - { "part": "FOOT_L", "good": 6 }, - { "part": "FOOT_R", "good": 6 }, - { "part": "ARM_L", "good": 19 }, - { "part": "ARM_R", "good": 19 }, - { "part": "HAND_L", "good": 5 }, - { "part": "HAND_R", "good": 5 }, - { "part": "TORSO", "good": 40 } + { "part": "head", "good": 7 }, + { "part": "leg_l", "good": 21 }, + { "part": "leg_r", "good": 21 }, + { "part": "foot_l", "good": 6 }, + { "part": "foot_r", "good": 6 }, + { "part": "arm_l", "good": 19 }, + { "part": "arm_r", "good": 19 }, + { "part": "hand_l", "good": 5 }, + { "part": "hand_r", "good": 5 }, + { "part": "torso", "good": 40 } ], - "armor": [ { "parts": "ALL", "cut": 1 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 1 + } + ] }, { "type": "mutation", @@ -1890,7 +1937,12 @@ "leads_to": [ "DOWN" ], "prereqs": [ "SKIN_ROUGH" ], "category": [ "BIRD" ], - "armor": [ { "parts": "ALL", "bash": 1 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 1 + } + ] }, { "type": "mutation", @@ -1936,7 +1988,12 @@ "changes_to": [ "URSINE_FUR" ], "prereqs": [ "LIGHTFUR" ], "category": [ "BEAST", "CATTLE", "RAT" ], - "armor": [ { "parts": "ALL", "bash": 1 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 1 + } + ] }, { "type": "mutation", @@ -1951,7 +2008,12 @@ "types": [ "SKIN" ], "prereqs": [ "LIGHTFUR" ], "category": [ "URSINE" ], - "armor": [ { "parts": "ALL", "bash": 1 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 1 + } + ] }, { "type": "mutation", @@ -1966,7 +2028,12 @@ "types": [ "SKIN" ], "prereqs": [ "LIGHTFUR" ], "category": [ "LUPINE" ], - "armor": [ { "parts": "ALL", "bash": 1 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 1 + } + ] }, { "type": "mutation", @@ -1994,7 +2061,7 @@ "types": [ "SKIN" ], "prereqs": [ "FELINE_FUR" ], "category": [ "FELINE" ], - "armor": [ { "parts": [ "HEAD", "MOUTH" ], "bash": 1 } ] + "armor": [ { "parts": [ "head", "mouth" ], "bash": 1 } ] }, { "type": "mutation", @@ -2009,18 +2076,24 @@ "changes_to": [ "CHITIN2", "CHITIN_FUR" ], "category": [ "SPIDER" ], "wet_protection": [ - { "part": "HEAD", "ignored": 1 }, - { "part": "LEG_L", "ignored": 5 }, - { "part": "LEG_R", "ignored": 5 }, - { "part": "FOOT_L", "ignored": 1 }, - { "part": "FOOT_R", "ignored": 1 }, - { "part": "ARM_L", "ignored": 4 }, - { "part": "ARM_R", "ignored": 4 }, - { "part": "HAND_L", "ignored": 1 }, - { "part": "HAND_R", "ignored": 1 }, - { "part": "TORSO", "ignored": 10 } + { "part": "head", "ignored": 1 }, + { "part": "leg_l", "ignored": 5 }, + { "part": "leg_r", "ignored": 5 }, + { "part": "foot_l", "ignored": 1 }, + { "part": "foot_r", "ignored": 1 }, + { "part": "arm_l", "ignored": 4 }, + { "part": "arm_r", "ignored": 4 }, + { "part": "hand_l", "ignored": 1 }, + { "part": "hand_r", "ignored": 1 }, + { "part": "torso", "ignored": 10 } ], - "armor": [ { "parts": "ALL", "bash": 2, "cut": 2 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 2, + "cut": 2 + } + ] }, { "type": "mutation", @@ -2037,18 +2110,24 @@ "changes_to": [ "CHITIN3" ], "category": [ "INSECT" ], "wet_protection": [ - { "part": "HEAD", "ignored": 2 }, - { "part": "LEG_L", "ignored": 9 }, - { "part": "LEG_R", "ignored": 9 }, - { "part": "FOOT_L", "ignored": 2 }, - { "part": "FOOT_R", "ignored": 2 }, - { "part": "ARM_L", "ignored": 8 }, - { "part": "ARM_R", "ignored": 8 }, - { "part": "HAND_L", "ignored": 2 }, - { "part": "HAND_R", "ignored": 2 }, - { "part": "TORSO", "ignored": 18 } + { "part": "head", "ignored": 2 }, + { "part": "leg_l", "ignored": 9 }, + { "part": "leg_r", "ignored": 9 }, + { "part": "foot_l", "ignored": 2 }, + { "part": "foot_r", "ignored": 2 }, + { "part": "arm_l", "ignored": 8 }, + { "part": "arm_r", "ignored": 8 }, + { "part": "hand_l", "ignored": 2 }, + { "part": "hand_r", "ignored": 2 }, + { "part": "torso", "ignored": 18 } + ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 4, + "cut": 4 + } ], - "armor": [ { "parts": "ALL", "bash": 4, "cut": 4 } ], "passive_mods": { "dex_mod": -1 } }, { @@ -2065,31 +2144,37 @@ "category": [ "SPIDER" ], "changes_to": [ "CHITIN_FUR3" ], "wet_protection": [ - { "part": "HEAD", "ignored": 4 }, - { "part": "LEG_L", "ignored": 14 }, - { "part": "LEG_R", "ignored": 14 }, - { "part": "FOOT_L", "ignored": 4 }, - { "part": "FOOT_R", "ignored": 4 }, - { "part": "ARM_L", "ignored": 12 }, - { "part": "ARM_R", "ignored": 12 }, - { "part": "HAND_L", "ignored": 3 }, - { "part": "HAND_R", "ignored": 3 }, - { "part": "TORSO", "ignored": 26 } + { "part": "head", "ignored": 4 }, + { "part": "leg_l", "ignored": 14 }, + { "part": "leg_r", "ignored": 14 }, + { "part": "foot_l", "ignored": 4 }, + { "part": "foot_r", "ignored": 4 }, + { "part": "arm_l", "ignored": 12 }, + { "part": "arm_r", "ignored": 12 }, + { "part": "hand_l", "ignored": 3 }, + { "part": "hand_r", "ignored": 3 }, + { "part": "torso", "ignored": 26 } ], "encumbrance_always": [ - [ "TORSO", 10 ], - [ "HEAD", 10 ], - [ "ARM_L", 10 ], - [ "ARM_R", 10 ], - [ "HAND_L", 10 ], - [ "HAND_R", 10 ], - [ "LEG_L", 10 ], - [ "LEG_R", 10 ], - [ "FOOT_L", 10 ], - [ "FOOT_R", 10 ] + [ "torso", 10 ], + [ "head", 10 ], + [ "arm_l", 10 ], + [ "arm_r", 10 ], + [ "hand_l", 10 ], + [ "hand_r", 10 ], + [ "leg_l", 10 ], + [ "leg_r", 10 ], + [ "foot_l", 10 ], + [ "foot_r", 10 ] + ], + "restricts_gear": [ "head" ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 8, + "cut": 8 + } ], - "restricts_gear": [ "HEAD" ], - "armor": [ { "parts": "ALL", "bash": 8, "cut": 8 } ], "passive_mods": { "dex_mod": -1 } }, { @@ -2106,7 +2191,13 @@ "prereqs": [ "CHITIN", "LIGHTFUR" ], "category": [ "SPIDER" ], "changes_to": [ "CHITIN_FUR2" ], - "armor": [ { "parts": "ALL", "bash": 2, "cut": 2 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 2, + "cut": 2 + } + ] }, { "type": "mutation", @@ -2122,7 +2213,13 @@ "prereqs": [ "CHITIN_FUR" ], "category": [ "SPIDER" ], "changes_to": [ "CHITIN_FUR3", "CHITIN3" ], - "armor": [ { "parts": "ALL", "bash": 4, "cut": 4 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 4, + "cut": 4 + } + ] }, { "type": "mutation", @@ -2135,23 +2232,29 @@ "bodytemp_sleep": 75, "description": "Your exoskeleton has hardened considerably--restricting movement, granted--and boasts a fine coat of hairs that put feline whiskers to shame.", "encumbrance_always": [ - [ "TORSO", 10 ], - [ "HEAD", 10 ], - [ "ARM_L", 10 ], - [ "ARM_R", 10 ], - [ "HAND_L", 10 ], - [ "HAND_R", 10 ], - [ "LEG_L", 10 ], - [ "LEG_R", 10 ], - [ "FOOT_L", 10 ], - [ "FOOT_R", 10 ] + [ "torso", 10 ], + [ "head", 10 ], + [ "arm_l", 10 ], + [ "arm_r", 10 ], + [ "hand_l", 10 ], + [ "hand_r", 10 ], + [ "leg_l", 10 ], + [ "leg_r", 10 ], + [ "foot_l", 10 ], + [ "foot_r", 10 ] ], "types": [ "SKIN" ], "prereqs": [ "CHITIN_FUR2", "CHITIN3" ], "threshreq": [ "THRESH_SPIDER" ], "category": [ "SPIDER" ], - "restricts_gear": [ "HEAD" ], - "armor": [ { "parts": "ALL", "bash": 8, "cut": 8 } ], + "restricts_gear": [ "head" ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 8, + "cut": 8 + } + ], "passive_mods": { "dex_mod": -1 } }, { @@ -2213,18 +2316,23 @@ "leads_to": [ "THORNS", "LEAVES" ], "category": [ "PLANT", "ELFA" ], "wet_protection": [ - { "part": "HEAD", "neutral": 4 }, - { "part": "LEG_L", "neutral": 5 }, - { "part": "LEG_R", "neutral": 5 }, - { "part": "FOOT_L", "neutral": 1 }, - { "part": "FOOT_R", "neutral": 1 }, - { "part": "ARM_L", "neutral": 4 }, - { "part": "ARM_R", "neutral": 4 }, - { "part": "HAND_L", "neutral": 1 }, - { "part": "HAND_R", "neutral": 1 }, - { "part": "TORSO", "neutral": 10 } + { "part": "head", "neutral": 4 }, + { "part": "leg_l", "neutral": 5 }, + { "part": "leg_r", "neutral": 5 }, + { "part": "foot_l", "neutral": 1 }, + { "part": "foot_r", "neutral": 1 }, + { "part": "arm_l", "neutral": 4 }, + { "part": "arm_r", "neutral": 4 }, + { "part": "hand_l", "neutral": 1 }, + { "part": "hand_r", "neutral": 1 }, + { "part": "torso", "neutral": 10 } + ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 1 + } ], - "armor": [ { "parts": "ALL", "cut": 1 } ], "thirst_modifier": -0.2 }, { @@ -2239,18 +2347,23 @@ "prereqs": [ "PLANTSKIN" ], "category": [ "PLANT" ], "wet_protection": [ - { "part": "HEAD", "ignored": 5 }, - { "part": "LEG_L", "ignored": 16 }, - { "part": "LEG_R", "ignored": 16 }, - { "part": "FOOT_L", "ignored": 5 }, - { "part": "FOOT_R", "ignored": 5 }, - { "part": "ARM_L", "ignored": 14 }, - { "part": "ARM_R", "ignored": 14 }, - { "part": "HAND_L", "ignored": 4 }, - { "part": "HAND_R", "ignored": 4 }, - { "part": "TORSO", "ignored": 30 } + { "part": "head", "ignored": 5 }, + { "part": "leg_l", "ignored": 16 }, + { "part": "leg_r", "ignored": 16 }, + { "part": "foot_l", "ignored": 5 }, + { "part": "foot_r", "ignored": 5 }, + { "part": "arm_l", "ignored": 14 }, + { "part": "arm_r", "ignored": 14 }, + { "part": "hand_l", "ignored": 4 }, + { "part": "hand_r", "ignored": 4 }, + { "part": "torso", "ignored": 30 } ], - "armor": [ { "parts": "ALL", "cut": 2 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 2 + } + ] }, { "type": "mutation", @@ -2275,7 +2388,7 @@ "prereqs": [ "PLANTSKIN", "BARK" ], "changes_to": [ "LEAVES2" ], "category": [ "PLANT", "ELFA" ], - "wet_protection": [ { "part": "HEAD", "ignored": 1 } ] + "wet_protection": [ { "part": "head", "ignored": 1 } ] }, { "type": "mutation", @@ -2290,8 +2403,8 @@ "threshreq": [ "THRESH_PLANT" ], "changes_to": [ "LEAVES3" ], "category": [ "PLANT" ], - "wet_protection": [ { "part": "HEAD", "ignored": 4 }, { "part": "ARM_L", "ignored": 5 }, { "part": "ARM_R", "ignored": 5 } ], - "encumbrance_covered": [ [ "ARM_L", 5 ], [ "ARM_R", 5 ] ] + "wet_protection": [ { "part": "head", "ignored": 4 }, { "part": "arm_l", "ignored": 5 }, { "part": "arm_r", "ignored": 5 } ], + "encumbrance_covered": [ [ "arm_l", 5 ], [ "arm_r", 5 ] ] }, { "type": "mutation", @@ -2305,8 +2418,8 @@ "prereqs2": [ "TRANSPIRATION" ], "threshreq": [ "THRESH_PLANT" ], "category": [ "PLANT" ], - "wet_protection": [ { "part": "HEAD", "ignored": 5 }, { "part": "ARM_L", "ignored": 8 }, { "part": "ARM_R", "ignored": 8 } ], - "encumbrance_covered": [ [ "ARM_L", 10 ], [ "ARM_R", 10 ] ] + "wet_protection": [ { "part": "head", "ignored": 5 }, { "part": "arm_l", "ignored": 8 }, { "part": "arm_r", "ignored": 8 } ], + "encumbrance_covered": [ [ "arm_l", 10 ], [ "arm_r", 10 ] ] }, { "type": "mutation", @@ -2545,7 +2658,7 @@ "ugliness": 4, "mixed_effect": true, "description": "Your upper tentacles have grown large, hook-barbed rakes on the ends. They're quite vicious, but really aren't suited for fine manipulation.", - "encumbrance_always": [ [ "HAND_L", 20 ], [ "HAND_R", 20 ] ], + "encumbrance_always": [ [ "hand_l", 20 ], [ "hand_r", 20 ] ], "prereqs": [ "ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8" ], "threshreq": [ "THRESH_CEPHALOPOD" ], "category": [ "CEPHALOPOD" ] @@ -2572,7 +2685,7 @@ "butchering_quality": 4, "flags": [ "UNARMED_BONUS" ], "mixed_effect": true, - "restricts_gear": [ "HAND_L", "HAND_R" ], + "restricts_gear": [ "hand_l", "hand_r" ], "destroys_gear": true, "description": "Your index fingers have grown into huge talons. After a bit of practice, you find that this does not affect your dexterity, but allows for a deadly unarmed attack. They also prevent wearing gloves.", "types": [ "CLAWS" ], @@ -2742,7 +2855,7 @@ "description": "The skin on your hands is a mucous membrane and produces a thick, acrid slime. Attacks using your hand will cause minor acid damage. Slightly increases wet benefits.", "prereqs": [ "SLIMY" ], "category": [ "SLIME" ], - "wet_protection": [ { "part": "HAND_L", "good": 5 }, { "part": "HAND_R", "good": 5 } ] + "wet_protection": [ { "part": "hand_l", "good": 5 }, { "part": "hand_r", "good": 5 } ] }, { "type": "mutation", @@ -2825,7 +2938,7 @@ "valid": false, "types": [ "LEGS" ], "category": [ "RAPTOR" ], - "restricts_gear": [ "FOOT_L", "FOOT_R" ], + "restricts_gear": [ "foot_l", "foot_r" ], "destroys_gear": true, "attacks": { "attack_text_u": "You slash %s with a talon", @@ -2845,10 +2958,10 @@ "description": "Your feet have fused into hooves. This allows kicking attacks to do much more damage, provides natural armor, and removes the need to wear shoes; however, you cannot wear shoes of any kind. Reduces wet effects.", "types": [ "LEGS" ], "category": [ "CATTLE", "CHIMERA" ], - "wet_protection": [ { "part": "FOOT_L", "neutral": 10 }, { "part": "FOOT_R", "neutral": 10 } ], - "restricts_gear": [ "FOOT_L", "FOOT_R" ], + "wet_protection": [ { "part": "foot_l", "neutral": 10 }, { "part": "foot_r", "neutral": 10 } ], + "restricts_gear": [ "foot_l", "foot_r" ], "destroys_gear": true, - "armor": [ { "parts": [ "FOOT_L", "FOOT_R" ], "bash": 1 } ], + "armor": [ { "parts": [ "foot_l", "foot_r" ], "bash": 1 } ], "attacks": { "attack_text_u": "You kick %s with your hooves", "attack_text_npc": "%1$s kicks %2$s with their hooves", @@ -3019,13 +3132,13 @@ "prereqs": [ "FANGS" ], "threshreq": [ "THRESH_FELINE", "THRESH_CHIMERA" ], "category": [ "FELINE", "CHIMERA" ], - "restricts_gear": [ "MOUTH" ], + "restricts_gear": [ "mouth" ], "destroys_gear": true, "social_modifiers": { "intimidate": 15 }, "attacks": { "attack_text_u": "You tear into %s with your saber teeth", "attack_text_npc": "%1$s tears into %2$s with their saber teeth", - "body_part": "MOUTH", + "body_part": "mouth", "chance": 20, "base_damage": { "damage_type": "stab", "amount": 25 }, "strength_damage": { "damage_type": "stab", "amount": 1 } @@ -3075,7 +3188,7 @@ "types": [ "HORNS" ], "prereqs": [ "HORNS" ], "category": [ "CHIMERA" ], - "restricts_gear": [ "HEAD" ], + "restricts_gear": [ "head" ], "attacks": { "attack_text_u": "You headbutt %s with your curled horns", "attack_text_npc": "%1$s headbutts %2$s with their curled horns", @@ -3094,7 +3207,7 @@ "description": "You have a pair of long, pointed horns, like those of an antelope. They allow you to make a strong piercing headbutt attack, but prevent wearing headwear that is not made of fabric.", "types": [ "HORNS" ], "prereqs": [ "HORNS" ], - "restricts_gear": [ "HEAD" ], + "restricts_gear": [ "head" ], "allow_soft_gear": true, "attacks": { "attack_text_u": "You stab %s with your pointed horns", @@ -3114,7 +3227,7 @@ "description": "You have a huge rack of antlers, like those of a moose. They allow you to make a weak headbutt attack, but prevent wearing headwear that is not made of fabric.", "types": [ "HORNS" ], "prereqs": [ "HORNS" ], - "restricts_gear": [ "HEAD" ], + "restricts_gear": [ "head" ], "allow_soft_gear": true, "attacks": { "attack_text_u": "You butt %s with your antlers", @@ -3136,7 +3249,7 @@ "category": [ "INSECT" ], "active": true, "starts_active": true, - "restricts_gear": [ "HEAD" ], + "restricts_gear": [ "head" ], "allow_soft_gear": true }, { @@ -3173,9 +3286,9 @@ "types": [ "TAIL" ], "prereqs": [ "TAIL_STUB" ], "category": [ "FISH" ], - "wet_protection": [ { "part": "LEG_L", "good": 3 }, { "part": "LEG_R", "good": 3 } ], + "wet_protection": [ { "part": "leg_l", "good": 3 }, { "part": "leg_r", "good": 3 } ], "movecost_swim_modifier": 0.75, - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true }, { @@ -3190,7 +3303,7 @@ "prereqs": [ "TAIL_STUB" ], "changes_to": [ "TAIL_FLUFFY", "TAIL_STING", "TAIL_CLUB", "TAIL_CATTLE", "TAIL_RAT" ], "category": [ "FELINE" ], - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "dodge_modifier": 2 }, @@ -3205,7 +3318,7 @@ "types": [ "TAIL" ], "prereqs": [ "TAIL_LONG" ], "category": [ "CATTLE" ], - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "dodge_modifier": 1 }, @@ -3220,7 +3333,7 @@ "types": [ "TAIL" ], "prereqs": [ "TAIL_LONG", "TAIL_STUB" ], "category": [ "RAT", "MOUSE" ], - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "dodge_modifier": 2 }, @@ -3236,7 +3349,7 @@ "prereqs": [ "TAIL_STUB" ], "changes_to": [ "TAIL_CLUB" ], "category": [ "LIZARD" ], - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "attacks": { "attack_text_u": "You whap %s with your tail", @@ -3257,7 +3370,7 @@ "types": [ "TAIL" ], "prereqs": [ "TAIL_STUB" ], "category": [ "RAPTOR" ], - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "dodge_modifier": 3 }, @@ -3271,7 +3384,7 @@ "types": [ "TAIL" ], "prereqs": [ "TAIL_LONG" ], "category": [ "BEAST", "LUPINE" ], - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "social_modifiers": { "lie": -20, "persuade": 10 }, "dodge_modifier": 4 @@ -3286,7 +3399,7 @@ "description": "You have a long tail that ends in a vicious stinger. It does not improve your balance at all, but allows for a powerful piercing attack. Prevents wearing non-fabric pants.", "types": [ "TAIL" ], "prereqs": [ "TAIL_LONG" ], - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "attacks": { "attack_text_u": "You sting %s with your tail", @@ -3306,7 +3419,7 @@ "types": [ "TAIL" ], "prereqs": [ "TAIL_THICK" ], "category": [ "CHIMERA" ], - "restricts_gear": [ "LEG_L", "LEG_R" ], + "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "attacks": { "attack_text_u": "You club %s with your tail", @@ -3642,7 +3755,7 @@ "prereqs": [ "MOUTH_FLAPS" ], "cancels": [ "MANDIBLES" ], "category": [ "CEPHALOPOD" ], - "wet_protection": [ { "part": "MOUTH", "neutral": 4 } ] + "wet_protection": [ { "part": "mouth", "neutral": 4 } ] }, { "type": "mutation", @@ -3660,14 +3773,14 @@ "changes_to": [ "FANGS_SPIDER" ], "cancels": [ "MOUTH_TENTACLES" ], "category": [ "INSECT", "SPIDER" ], - "wet_protection": [ { "part": "MOUTH", "ignored": 1 } ], - "restricts_gear": [ "MOUTH" ], + "wet_protection": [ { "part": "mouth", "ignored": 1 } ], + "restricts_gear": [ "mouth" ], "destroys_gear": true, "attacks": { "attack_text_u": "You bite %s with your fangs", "attack_text_npc": "%1$s bites %2$s with their fangs", "blocker_mutations": [ "FANGS_SPIDER" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 22, "base_damage": { "damage_type": "cut", "amount": 12 } } @@ -3687,12 +3800,12 @@ "threshreq": [ "THRESH_SPIDER" ], "category": [ "SPIDER" ], "consume_time_modifier": 2.0, - "wet_protection": [ { "part": "MOUTH", "ignored": 1 } ], + "wet_protection": [ { "part": "mouth", "ignored": 1 } ], "attacks": { "attack_text_u": "You bite %s with your fangs", "attack_text_npc": "%1$s bites %2$s with their fangs", "blocker_mutations": [ "MANDIBLES" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 22, "base_damage": { "damage_type": "stab", "amount": 15 } } @@ -3869,7 +3982,12 @@ "leads_to": [ "HIBERNATE" ], "category": [ "URSINE" ], "movecost_swim_modifier": 0.95, - "armor": [ { "parts": "ALL", "bash": 1 } ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 1 + } + ], "movecost_modifier": 1.05 }, { @@ -3880,7 +3998,7 @@ "visibility": 1, "ugliness": 1, "mixed_effect": true, - "encumbrance_always": [ [ "TORSO", 10 ], [ "ARM_L", 10 ], [ "ARM_R", 10 ] ], + "encumbrance_always": [ [ "torso", 10 ], [ "arm_l", 10 ], [ "arm_r", 10 ] ], "description": "You have grown noticeably taller and broader. Much of it is useful muscle mass (Strength +2), but you find it throws off your balance and you get in your own way (+10 torso and arm encumbrance).", "prereqs": [ "STR_UP", "STR_UP_2", "STR_UP_3", "STR_UP_4" ], "cancels": [ "SMALL", "SMALL2" ], @@ -3923,7 +4041,7 @@ "passive_mods": { "str_mod": 4 }, "hp_adjustment": -6, "fatigue_modifier": 0.15, - "restricts_gear": [ "TORSO", "LEG_L", "LEG_R", "ARM_L", "ARM_R", "HAND_L", "HAND_R", "HEAD", "FOOT_L", "FOOT_R" ], + "restricts_gear": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r" ], "destroys_gear": true, "weight_capacity_modifier": 1.1 }, @@ -3943,7 +4061,7 @@ "leads_to": [ "MUT_TOUGH" ], "category": [ "URSINE", "CATTLE" ], "passive_mods": { "str_mod": 4 }, - "restricts_gear": [ "TORSO", "LEG_L", "LEG_R", "ARM_L", "ARM_R", "HAND_L", "HAND_R", "HEAD", "FOOT_L", "FOOT_R" ], + "restricts_gear": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r" ], "destroys_gear": true, "weight_capacity_modifier": 1.1 }, @@ -4135,7 +4253,12 @@ "prereqs2": [ "AMORPHOUS" ], "threshreq": [ "THRESH_SLIME" ], "category": [ "SLIME" ], - "armor": [ { "parts": "ALL", "bash": -3 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": -3 + } + ] }, { "type": "mutation", @@ -4319,7 +4442,7 @@ "visibility": 7, "ugliness": 4, "description": "You have a flattened nose and thin slits for nostrils, giving you a lizard-like appearance. This makes breathing slightly difficult and increases mouth encumbrance by 10.", - "encumbrance_always": [ [ "MOUTH", 10 ] ], + "encumbrance_always": [ [ "mouth", 10 ] ], "category": [ "LIZARD", "CEPHALOPOD", "RAPTOR" ] }, { @@ -4386,12 +4509,12 @@ "description": "You have a very large and very beautiful pair of brightly-colored wings. They can't lift you, and they make balancing tricky, but they certainly catch air and attention!", "valid": false, "purifiable": false, - "encumbrance_always": [ [ "TORSO", 10 ] ], + "encumbrance_always": [ [ "torso", 10 ] ], "types": [ "WINGS" ], "prereqs": [ "WINGS_STUB" ], "threshreq": [ "THRESH_INSECT" ], "category": [ "INSECT" ], - "restricts_gear": [ "TORSO" ], + "restricts_gear": [ "torso" ], "social_modifiers": { "lie": 15, "persuade": 5, "intimidate": -20 }, "dodge_modifier": -4, "movecost_modifier": 0.9 @@ -4529,7 +4652,7 @@ "types": [ "MUZZLE" ], "prereqs": [ "SNOUT" ], "category": [ "CATTLE" ], - "restricts_gear": [ "MOUTH" ], + "restricts_gear": [ "mouth" ], "social_modifiers": { "intimidate": 15 } }, { @@ -4544,13 +4667,13 @@ "types": [ "MUZZLE" ], "prereqs": [ "SNOUT" ], "category": [ "BEAST", "LUPINE" ], - "restricts_gear": [ "MOUTH" ], + "restricts_gear": [ "mouth" ], "social_modifiers": { "intimidate": 6 }, "attacks": { "attack_text_u": "You nip at %s", "attack_text_npc": "%1$s nips and harries %2$s", "blocker_mutations": [ "FANGS" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 18, "base_damage": { "damage_type": "cut", "amount": 4 } } @@ -4567,12 +4690,12 @@ "types": [ "MUZZLE" ], "prereqs": [ "SNOUT" ], "category": [ "URSINE" ], - "restricts_gear": [ "MOUTH" ], + "restricts_gear": [ "mouth" ], "attacks": { "attack_text_u": "You bite %s", "attack_text_npc": "%1$s bites %2$s", "blocker_mutations": [ "FANGS" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 20, "base_damage": { "damage_type": "cut", "amount": 5 } } @@ -4588,7 +4711,7 @@ "types": [ "MUZZLE" ], "prereqs": [ "SNOUT" ], "category": [ "RAT" ], - "restricts_gear": [ "MOUTH" ] + "restricts_gear": [ "mouth" ] }, { "type": "mutation", @@ -4602,13 +4725,13 @@ "types": [ "MUZZLE" ], "prereqs": [ "SNOUT" ], "category": [ "LIZARD" ], - "restricts_gear": [ "MOUTH" ], + "restricts_gear": [ "mouth" ], "social_modifiers": { "intimidate": 20 }, "attacks": { "attack_text_u": "You bite a chunk out of %s", "attack_text_npc": "%1$s bites a chunk out of %2$s", "blocker_mutations": [ "FANGS" ], - "body_part": "MOUTH", + "body_part": "mouth", "chance": 18, "base_damage": { "damage_type": "stab", "amount": 18 } } @@ -4629,7 +4752,7 @@ "threshreq": [ "THRESH_INSECT" ], "category": [ "INSECT" ], "active": true, - "restricts_gear": [ "MOUTH" ] + "restricts_gear": [ "mouth" ] }, { "type": "mutation", @@ -4890,8 +5013,8 @@ "cancels": [ "ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8" ], "description": "Your hands and feet are heavily webbed, reducing your Dexterity by 1 and causing problems with gloves. However, you can swim much faster. Slightly decreases wet penalties.", "category": [ "LIZARD", "FISH", "SLIME" ], - "wet_protection": [ { "part": "HAND_L", "good": 3 }, { "part": "HAND_R", "good": 3 } ], - "encumbrance_covered": [ [ "HAND_L", 50 ], [ "HAND_R", 50 ] ], + "wet_protection": [ { "part": "hand_l", "good": 3 }, { "part": "hand_r", "good": 3 } ], + "encumbrance_covered": [ [ "hand_l", 50 ], [ "hand_r", 50 ] ], "passive_mods": { "dex_mod": -1 } }, { @@ -4903,8 +5026,8 @@ "ugliness": 2, "mixed_effect": true, "description": "Your hands have fused into quasi-paws. Fine manipulation is a challenge: permanent hand encumbrance of 10, difficulty with delicate craftwork, and your gloves don't fit. But they handle water better.", - "encumbrance_always": [ [ "HAND_L", 10 ], [ "HAND_R", 10 ] ], - "restricts_gear": [ "HAND_L", "HAND_R" ], + "encumbrance_always": [ [ "hand_l", 10 ], [ "hand_r", 10 ] ], + "restricts_gear": [ "hand_l", "hand_r" ], "craft_skill_bonus": [ [ "electronics", -2 ], [ "tailor", -2 ], [ "mechanics", -2 ] ], "types": [ "HANDS" ], "prereqs": [ "CLAWS", "CLAWS_RETRACT", "CLAWS_RAT" ], @@ -4932,8 +5055,8 @@ [ "cooking", -2 ], [ "survival", -2 ] ], - "encumbrance_always": [ [ "HAND_L", 20 ], [ "HAND_R", 20 ] ], - "restricts_gear": [ "HAND_L", "HAND_R" ], + "encumbrance_always": [ [ "hand_l", 20 ], [ "hand_r", 20 ] ], + "restricts_gear": [ "hand_l", "hand_r" ], "types": [ "HANDS" ], "prereqs": [ "PAWS" ], "cancels": [ "TALONS" ], @@ -4951,13 +5074,13 @@ "types": [ "TEETH", "MUZZLE" ], "changes_to": [ "BEAK_HUM", "BEAK_PECK" ], "category": [ "BIRD", "CEPHALOPOD" ], - "wet_protection": [ { "part": "MOUTH", "ignored": 1 } ], - "restricts_gear": [ "MOUTH" ], + "wet_protection": [ { "part": "mouth", "ignored": 1 } ], + "restricts_gear": [ "mouth" ], "destroys_gear": true, "attacks": { "attack_text_u": "You peck %s", "attack_text_npc": "%1$s pecks %2$s", - "body_part": "MOUTH", + "body_part": "mouth", "chance": 15, "base_damage": { "damage_type": "stab", "amount": 15 } } @@ -4977,14 +5100,14 @@ "prereqs": [ "BEAK" ], "threshreq": [ "THRESH_BIRD" ], "category": [ "BIRD" ], - "wet_protection": [ { "part": "MOUTH", "ignored": 2 } ], - "restricts_gear": [ "MOUTH" ], + "wet_protection": [ { "part": "mouth", "ignored": 2 } ], + "restricts_gear": [ "mouth" ], "destroys_gear": true, "attacks": [ { "attack_text_u": "You jackhammer into %s with your beak", "attack_text_npc": "%1$s jackhammer into %2$s with their beak", - "body_part": "MOUTH", + "body_part": "mouth", "chance": 15, "hardcoded_effect": true } @@ -5006,9 +5129,9 @@ "prereqs": [ "BEAK" ], "threshreq": [ "THRESH_BIRD" ], "category": [ "BIRD" ], - "wet_protection": [ { "part": "MOUTH", "ignored": 2 } ], + "wet_protection": [ { "part": "mouth", "ignored": 2 } ], "active": true, - "restricts_gear": [ "MOUTH" ], + "restricts_gear": [ "mouth" ], "destroys_gear": true }, { @@ -5073,16 +5196,16 @@ "changes_to": [ "VISCOUS" ], "category": [ "FISH", "SLIME", "TROGLOBITE", "CEPHALOPOD" ], "wet_protection": [ - { "part": "HEAD", "neutral": 3, "good": 4 }, - { "part": "LEG_L", "neutral": 7, "good": 14 }, - { "part": "LEG_R", "neutral": 7, "good": 14 }, - { "part": "FOOT_L", "neutral": 2, "good": 4 }, - { "part": "FOOT_R", "neutral": 2, "good": 4 }, - { "part": "ARM_L", "neutral": 7, "good": 12 }, - { "part": "ARM_R", "neutral": 7, "good": 12 }, - { "part": "HAND_L", "neutral": 2, "good": 3 }, - { "part": "HAND_R", "neutral": 2, "good": 3 }, - { "part": "TORSO", "neutral": 14, "good": 26 } + { "part": "head", "neutral": 3, "good": 4 }, + { "part": "leg_l", "neutral": 7, "good": 14 }, + { "part": "leg_r", "neutral": 7, "good": 14 }, + { "part": "foot_l", "neutral": 2, "good": 4 }, + { "part": "foot_r", "neutral": 2, "good": 4 }, + { "part": "arm_l", "neutral": 7, "good": 12 }, + { "part": "arm_r", "neutral": 7, "good": 12 }, + { "part": "hand_l", "neutral": 2, "good": 3 }, + { "part": "hand_r", "neutral": 2, "good": 3 }, + { "part": "torso", "neutral": 14, "good": 26 } ] }, { @@ -5098,18 +5221,23 @@ "threshreq": [ "THRESH_SLIME" ], "category": [ "SLIME" ], "wet_protection": [ - { "part": "HEAD", "neutral": 4, "good": 5 }, - { "part": "LEG_L", "neutral": 8, "good": 15 }, - { "part": "LEG_R", "neutral": 8, "good": 15 }, - { "part": "FOOT_L", "neutral": 3, "good": 5 }, - { "part": "FOOT_R", "neutral": 3, "good": 5 }, - { "part": "ARM_L", "neutral": 8, "good": 14 }, - { "part": "ARM_R", "neutral": 8, "good": 14 }, - { "part": "HAND_L", "neutral": 3, "good": 4 }, - { "part": "HAND_R", "neutral": 3, "good": 4 }, - { "part": "TORSO", "neutral": 15, "good": 27 } + { "part": "head", "neutral": 4, "good": 5 }, + { "part": "leg_l", "neutral": 8, "good": 15 }, + { "part": "leg_r", "neutral": 8, "good": 15 }, + { "part": "foot_l", "neutral": 3, "good": 5 }, + { "part": "foot_r", "neutral": 3, "good": 5 }, + { "part": "arm_l", "neutral": 8, "good": 14 }, + { "part": "arm_r", "neutral": 8, "good": 14 }, + { "part": "hand_l", "neutral": 3, "good": 4 }, + { "part": "hand_r", "neutral": 3, "good": 4 }, + { "part": "torso", "neutral": 15, "good": 27 } ], - "armor": [ { "parts": "ALL", "acid": 2 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "acid": 2 + } + ] }, { "type": "mutation", @@ -5126,7 +5254,12 @@ "prereqs2": [ "BENDY2", "SLIME_HANDS" ], "threshreq": [ "THRESH_SLIME" ], "category": [ "SLIME" ], - "armor": [ { "parts": "ALL", "bash": 4 } ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 4 + } + ], "movecost_modifier": 1.25 }, { @@ -5224,7 +5357,7 @@ "prereqs": [ "PLANTSKIN", "BARK" ], "changes_to": [ "VINES2" ], "category": [ "PLANT" ], - "encumbrance_always": [ [ "TORSO", 10 ] ] + "encumbrance_always": [ [ "torso", 10 ] ] }, { "type": "mutation", @@ -5247,7 +5380,7 @@ "hardcoded_effect": true } ], - "encumbrance_always": [ [ "TORSO", 10 ] ] + "encumbrance_always": [ [ "torso", 10 ] ] }, { "type": "mutation", @@ -5300,7 +5433,7 @@ "changes_to": [ "ROOTS2" ], "cancels": [ "LEG_TENTACLES", "HOOVES" ], "category": [ "PLANT" ], - "encumbrance_covered": [ [ "FOOT_L", 10 ], [ "FOOT_R", 10 ] ] + "encumbrance_covered": [ [ "foot_l", 10 ], [ "foot_r", 10 ] ] }, { "type": "mutation", @@ -5318,7 +5451,7 @@ "threshreq": [ "THRESH_PLANT" ], "changes_to": [ "ROOTS3" ], "category": [ "PLANT" ], - "encumbrance_covered": [ [ "FOOT_L", 10 ], [ "FOOT_R", 10 ] ] + "encumbrance_covered": [ [ "foot_l", 10 ], [ "foot_r", 10 ] ] }, { "type": "mutation", @@ -5333,7 +5466,7 @@ "prereqs2": [ "SAPROPHAGE" ], "threshreq": [ "THRESH_PLANT" ], "category": [ "PLANT" ], - "encumbrance_covered": [ [ "FOOT_L", 10 ], [ "FOOT_R", 10 ] ] + "encumbrance_covered": [ [ "foot_l", 10 ], [ "foot_r", 10 ] ] }, { "type": "mutation", @@ -5352,7 +5485,7 @@ "cancels": [ "SMELLY", "SMELLY2" ], "category": [ "PLANT" ], "scent_type": "sc_flower", - "encumbrance_covered": [ [ "FOOT_L", 10 ], [ "FOOT_R", 10 ] ] + "encumbrance_covered": [ [ "foot_l", 10 ], [ "foot_r", 10 ] ] }, { "type": "mutation", @@ -5492,13 +5625,13 @@ "description": "Your arms have grown vibrantly colored feathers. They effectively waterproof your arms and take the edge off hits, but really get in the way. They're simply too small to help you in the air.", "category": [ "RAPTOR" ], "wet_protection": [ - { "part": "ARM_L", "neutral": 50 }, - { "part": "ARM_R", "neutral": 50 }, - { "part": "HAND_L", "neutral": 10 }, - { "part": "HAND_R", "neutral": 10 } + { "part": "arm_l", "neutral": 50 }, + { "part": "arm_r", "neutral": 50 }, + { "part": "hand_l", "neutral": 10 }, + { "part": "hand_r", "neutral": 10 } ], - "encumbrance_always": [ [ "ARM_L", 20 ], [ "ARM_R", 20 ] ], - "armor": [ { "parts": [ "ARM_L", "ARM_R" ], "bash": 1 } ] + "encumbrance_always": [ [ "arm_l", 20 ], [ "arm_r", 20 ] ], + "armor": [ { "parts": [ "arm_l", "arm_r" ], "bash": 1 } ] }, { "type": "mutation", @@ -5509,14 +5642,14 @@ "ugliness": 5, "description": "You've *finally* sprouted a pair of arms from your midsection. They flail more-or-less uncontrollably, making you feel rather larval.", "purifiable": false, - "encumbrance_always": [ [ "ARM_L", 30 ], [ "ARM_R", 30 ] ], + "encumbrance_always": [ [ "arm_l", 30 ], [ "arm_r", 30 ] ], "types": [ "HANDS" ], "changes_to": [ "INSECT_ARMS_OK", "ARACHNID_ARMS" ], "prereqs": [ "CHITIN", "CHITIN2", "CHITIN3", "CHITIN_FUR2", "CHITIN_FUR3" ], "prereqs2": [ "ANTENNAE" ], "threshreq": [ "THRESH_INSECT", "THRESH_SPIDER" ], "category": [ "INSECT", "SPIDER" ], - "restricts_gear": [ "TORSO" ], + "restricts_gear": [ "torso" ], "passive_mods": { "dex_mod": -2 } }, { @@ -5545,14 +5678,14 @@ "description": "There's the last two limbs you were expecting. Unfortunately you still can't coordinate them, so you're getting in your own way. A lot.", "valid": false, "purifiable": false, - "encumbrance_always": [ [ "ARM_L", 40 ], [ "ARM_R", 40 ] ], + "encumbrance_always": [ [ "arm_l", 40 ], [ "arm_r", 40 ] ], "types": [ "HANDS" ], "changes_to": [ "ARACHNID_ARMS_OK" ], "prereqs": [ "INSECT_ARMS" ], "prereqs2": [ "CHITIN3", "CHITIN_FUR2", "CHITIN_FUR3" ], "threshreq": [ "THRESH_SPIDER" ], "category": [ "SPIDER" ], - "restricts_gear": [ "TORSO" ], + "restricts_gear": [ "torso" ], "passive_mods": { "dex_mod": -4 } }, { @@ -5580,17 +5713,17 @@ "ugliness": 4, "mixed_effect": true, "description": "Your arms have transformed into tentacles, resulting in a bonus of 1 to Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. Somewhat decreases wet penalties.", - "encumbrance_always": [ [ "HAND_L", 30 ], [ "HAND_R", 30 ] ], - "restricts_gear": [ "HAND_L", "HAND_R" ], + "encumbrance_always": [ [ "hand_l", 30 ], [ "hand_r", 30 ] ], + "restricts_gear": [ "hand_l", "hand_r" ], "types": [ "HANDS" ], "leads_to": [ "CLAWS_TENTACLE" ], "changes_to": [ "ARM_TENTACLES_4" ], "cancels": [ "NAILS", "CLAWS", "TALONS", "WEBBED" ], "wet_protection": [ - { "part": "ARM_L", "neutral": 19 }, - { "part": "ARM_R", "neutral": 19 }, - { "part": "HAND_L", "neutral": 5 }, - { "part": "HAND_R", "neutral": 5 } + { "part": "arm_l", "neutral": 19 }, + { "part": "arm_r", "neutral": 19 }, + { "part": "hand_l", "neutral": 5 }, + { "part": "hand_r", "neutral": 5 } ], "attacks": [ { @@ -5618,17 +5751,17 @@ "visibility": 8, "ugliness": 5, "description": "Your arms have transformed into four tentacles, resulting in a bonus of 1 to Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. You can make up to 3 extra attacks with them. Somewhat decreases wet penalties.", - "encumbrance_always": [ [ "HAND_L", 30 ], [ "HAND_R", 30 ] ], - "restricts_gear": [ "HAND_L", "HAND_R" ], + "encumbrance_always": [ [ "hand_l", 30 ], [ "hand_r", 30 ] ], + "restricts_gear": [ "hand_l", "hand_r" ], "types": [ "HANDS" ], "prereqs": [ "ARM_TENTACLES" ], "leads_to": [ "CLAWS_TENTACLE" ], "changes_to": [ "ARM_TENTACLES_8" ], "wet_protection": [ - { "part": "ARM_L", "neutral": 19 }, - { "part": "ARM_R", "neutral": 19 }, - { "part": "HAND_L", "neutral": 5 }, - { "part": "HAND_R", "neutral": 5 } + { "part": "arm_l", "neutral": 19 }, + { "part": "arm_r", "neutral": 19 }, + { "part": "hand_l", "neutral": 5 }, + { "part": "hand_r", "neutral": 5 } ], "attacks": [ { @@ -5656,17 +5789,17 @@ "visibility": 9, "ugliness": 6, "description": "Your arms have transformed into eight tentacles, resulting in a bonus of 1 to Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. You can make up to 7 extra attacks with them. Somewhat decreases wet penalties.", - "encumbrance_always": [ [ "HAND_L", 30 ], [ "HAND_R", 30 ] ], - "restricts_gear": [ "HAND_L", "HAND_R" ], + "encumbrance_always": [ [ "hand_l", 30 ], [ "hand_r", 30 ] ], + "restricts_gear": [ "hand_l", "hand_r" ], "types": [ "HANDS" ], "prereqs": [ "ARM_TENTACLES_4" ], "leads_to": [ "CLAWS_TENTACLE" ], "category": [ "CEPHALOPOD" ], "wet_protection": [ - { "part": "ARM_L", "neutral": 19 }, - { "part": "ARM_R", "neutral": 19 }, - { "part": "HAND_L", "neutral": 5 }, - { "part": "HAND_R", "neutral": 5 } + { "part": "arm_l", "neutral": 19 }, + { "part": "arm_r", "neutral": 19 }, + { "part": "hand_l", "neutral": 5 }, + { "part": "hand_r", "neutral": 5 } ], "attacks": [ { @@ -5698,10 +5831,10 @@ "cancels": [ "CHITIN3" ], "changes_to": [ "SHELL2" ], "category": [ "CEPHALOPOD" ], - "wet_protection": [ { "part": "TORSO", "ignored": 26 } ], - "restricts_gear": [ "TORSO" ], + "wet_protection": [ { "part": "torso", "ignored": 26 } ], + "restricts_gear": [ "torso" ], "destroys_gear": true, - "armor": [ { "parts": "TORSO", "bash": 6, "cut": 14 } ] + "armor": [ { "parts": "torso", "bash": 6, "cut": 14 } ] }, { "type": "mutation", @@ -5714,15 +5847,15 @@ "bodytemp_sleep": 200, "mixed_effect": true, "description": "Your protective shell has grown large enough to accommodate--if need be--your whole body. Activate to pull your head and limbs into your shell, trading mobility and vision for warmth and shelter.", - "encumbrance_always": [ [ "TORSO", 10 ] ], + "encumbrance_always": [ [ "torso", 10 ] ], "prereqs": [ "SHELL" ], "threshreq": [ "THRESH_CEPHALOPOD" ], "category": [ "CEPHALOPOD" ], - "wet_protection": [ { "part": "TORSO", "ignored": 26 } ], + "wet_protection": [ { "part": "torso", "ignored": 26 } ], "active": true, - "restricts_gear": [ "TORSO" ], + "restricts_gear": [ "torso" ], "destroys_gear": true, - "armor": [ { "parts": "TORSO", "bash": 9, "cut": 17 } ] + "armor": [ { "parts": "torso", "bash": 9, "cut": 17 } ] }, { "type": "mutation", @@ -5738,12 +5871,12 @@ "movecost_swim_modifier": 0.85, "category": [ "CEPHALOPOD" ], "wet_protection": [ - { "part": "LEG_L", "neutral": 21 }, - { "part": "LEG_R", "neutral": 21 }, - { "part": "FOOT_L", "neutral": 6 }, - { "part": "FOOT_R", "neutral": 6 } + { "part": "leg_l", "neutral": 21 }, + { "part": "leg_r", "neutral": 21 }, + { "part": "foot_l", "neutral": 6 }, + { "part": "foot_r", "neutral": 6 } ], - "restricts_gear": [ "FOOT_L", "FOOT_R" ], + "restricts_gear": [ "foot_l", "foot_r" ], "movecost_modifier": 1.2, "noise_modifier": 0.0 }, @@ -6042,7 +6175,7 @@ "description": "Like a true fish, your eyes lack eyelids, and are are instead covered by a translucent, protective membrane that blocks irritants and water, and provides minor armor. It also allows you to sleep with your eyes open! Activate to cause the approach of hostile creatures to wake you up.", "category": [ "FISH" ], "threshreq": [ "THRESH_FISH" ], - "armor": [ { "parts": "EYES", "cut": 3, "bash": 1 } ], + "armor": [ { "parts": "eyes", "cut": 3, "bash": 1 } ], "active": true }, { @@ -6101,7 +6234,7 @@ "attacks": { "attack_text_u": "You tear into %s with your teeth", "attack_text_npc": "%1$s tears into %2$s with their teeth", - "body_part": "MOUTH", + "body_part": "mouth", "blocker_mutations": [ "MUZZLE", "MUZZLE_LONG", "MUZZLE_RAT" ], "chance": 20, "base_damage": { "damage_type": "stab", "amount": 25 } @@ -6474,7 +6607,7 @@ { "type": "mutation", "id": "DEBUG_STORAGE", - "name": { "str": "Debug Carrying Capacity" }, + "name": { "str": "Debug Very Strong Back" }, "points": 99, "valid": false, "description": "Lets you carry 15 bugs worth of your body weight in your mandibles.", @@ -6584,5 +6717,14 @@ "starting_trait": true, "valid": false, "cancels": [ "PROF_HELI_PILOT" ] + }, + { + "type": "mutation", + "id": "FAST_REFLEXES", + "name": { "str": "Fast Reflexes" }, + "points": 3, + "description": "You have fast reflexes, allowing you to dodge attacks more easily.", + "starting_trait": true, + "dodge_modifier": 2 } ] diff --git a/data/json/npcs/items_generic.json b/data/json/npcs/items_generic.json index 720702f73c4dc..a2f03681e2e4f 100644 --- a/data/json/npcs/items_generic.json +++ b/data/json/npcs/items_generic.json @@ -678,7 +678,7 @@ [ "juice", 5 ], [ "kernels", 4 ], [ "ketchup", 4 ], - [ "kevlar_plate", 1 ], + [ "sheet_kevlar_layered", 1 ], [ "knee_pads", 4 ], [ "knife_butcher", 6 ], [ "knife_butter", 4 ], diff --git a/data/json/npcs/npc_behavior.json b/data/json/npcs/npc_behavior.json index 070e74c31d15e..d56fc3dd0436a 100644 --- a/data/json/npcs/npc_behavior.json +++ b/data/json/npcs/npc_behavior.json @@ -9,13 +9,13 @@ "type": "behavior", "id": "npc_homeostasis", "strategy": "fallback", - "predicate": "npc_needs_warmth_badly", + "conditions": [ { "predicate": "npc_needs_warmth_badly" } ], "children": [ "npc_wear_warmer_clothes", "npc_get_warm" ] }, { "type": "behavior", "id": "npc_wear_warmer_clothes", - "predicate": "npc_can_wear_warmer_clothes", + "conditions": [ { "predicate": "npc_can_wear_warmer_clothes" } ], "goal": "wear_warmer_clothes" }, { @@ -27,39 +27,39 @@ { "type": "behavior", "id": "npc_make_fire", - "predicate": "npc_can_make_fire", + "conditions": [ { "predicate": "npc_can_make_fire" } ], "goal": "start_fire" }, { "type": "behavior", "id": "npc_take_shelter", - "predicate": "npc_can_take_shelter", + "conditions": [ { "predicate": "npc_can_take_shelter" } ], "goal": "take_shelter" }, { "type": "behavior", "id": "npc_thirst", "strategy": "sequential", - "predicate": "npc_needs_water_badly", + "conditions": [ { "predicate": "npc_needs_water_badly" } ], "children": [ "npc_drink_water" ] }, { "type": "behavior", "id": "npc_drink_water", - "predicate": "npc_has_water", + "conditions": [ { "predicate": "npc_has_water" } ], "goal": "drink_water" }, { "type": "behavior", "id": "npc_hunger", "strategy": "sequential", - "predicate": "npc_needs_food_badly", + "conditions": [ { "predicate": "npc_needs_food_badly" } ], "children": [ "npc_eat_food" ] }, { "type": "behavior", "id": "npc_eat_food", - "predicate": "npc_has_food", + "conditions": [ { "predicate": "npc_has_food" } ], "goal": "eat_food" } ] diff --git a/data/json/npcs/talk_tags.json b/data/json/npcs/talk_tags.json index 06317d6e2af56..c0c5dea450a1d 100644 --- a/data/json/npcs/talk_tags.json +++ b/data/json/npcs/talk_tags.json @@ -11,7 +11,8 @@ "Thorazine? I wouldn't if I were you.", "You don't need thorazine, it's limiting you.", "Thorazine… That's what 'they' use to keep you tame.", - "Don't. This thorazine seriously clouds your mind. You need to stay sharp." + "Don't. This thorazine seriously clouds your mind. You need to stay sharp.", + "Sure, take thorazine. If you want to lose your mind and wander into a horde of undead!" ] }, { @@ -41,7 +42,9 @@ "I'm not interested.", "How about no?", "I'm sorry . I'm afraid I can't do that.", - "Wish I could, ." + "Wish I could, .", + "Nothing to trade, sorry .", + "Maybe next time?" ] }, { @@ -56,7 +59,8 @@ "Who put you in charge of what I do?", "Great idea! Call me when you find SOMEONE ELSE to do it.", "I'm afraid I can't help you there.", - "Not exactly the settlin' type." + "Not exactly the settlin' type.", + "I'm more of a free spirit, can't settle, sorry." ] }, { @@ -153,7 +157,8 @@ "Oh definitely, how about one of those beers I see on you? What's up anyway?", "Yeah you share those beers I see you hoarding and then we chat all you like! Only joking, what's up ?", "Hey , I bet a chat would be all the sweeter with a nice, cold beer in hand. How's it going?", - "While we chat, what say you we open a beer and just… pretend the world isn't ending, just for a while?" + "While we chat, what say you we open a beer and just… pretend the world isn't ending, just for a while?", + "Pass me one and let's talk about the good ol' days, ." ] }, { @@ -351,7 +356,9 @@ "Hey Wait for me!", "Where are you?!", "Hey, I'm over here!", - "Hold up a second, will ya?" + "Hold up a second, will ya?", + "What's the rush?", + "Wait for me , I can't keep up with you like this!" ] }, { @@ -1345,6 +1352,62 @@ "category": "", "text": [ "child", "my child", "dear", "my dear", "friend", "survivor" ] }, + { + "type": "snippet", + "category": "", + "//": "NPCs say this after drinking water from a camp well.", + "text": [ + "Clean water, the taste that refreshes!", + "I was parched, but not I am not.", + "Water is nice, but I should get a grog ration.", + "That wasn't Evian, but I'm not thirsty." + ] + }, + { + "type": "snippet", + "category": "", + "//": "NPCs say this after eating food from a basecamp larder.", + "text": [ + "And now I have eaten and am not hungry.", + "That food was good, but I miss real restaurants.", + "Well, that satisfied me.", + "I just had some food, but I'm still peckish. Would you mind if I ate more?" + ] + }, + { + "type": "snippet", + "category": "", + "//": "NPCs say this after trying to eat from a basecamp larder with no food.", + "text": [ + "Hey, , we're out of food.", + "Hey, the larder is empty! We're going to starve.", + "Uhm, , I don't meant to criticize, but we should focus on distributing some food into the basecamp larder." + ] + }, + { + "type": "snippet", + "category": "", + "//": "A threat is very close.", + "text": [ "right on top of us!", "right there!", "danger close!", "almost in melee range!", "too close for comfort!" ] + }, + { + "type": "snippet", + "category": "", + "//": "A threat is close.", + "text": [ "within shooting range.", "only a couple of seconds' away.", "just a bit away.", "closer than I'd like." ] + }, + { + "type": "snippet", + "category": "", + "//": "A threat is nearby.", + "text": [ "near enough to see us.", "quite a bit away.", "maybe within shooting range.", "at a good distance." ] + }, + { + "type": "snippet", + "category": "", + "//": "A threat is on the horizon.", + "text": [ "far enough away that we could make sneak away.", "out on the horizon, so don't worry much.", "at a long distance." ] + }, { "type": "snippet", "category": "", diff --git a/data/json/obsolete.json b/data/json/obsolete.json index 332e4df4a0733..572a5d25620bc 100644 --- a/data/json/obsolete.json +++ b/data/json/obsolete.json @@ -1,4 +1,251 @@ [ + { + "id": "pipe_combination_gun", + "looks_like": "ar15", + "type": "GUN", + "reload_noise_volume": 10, + "symbol": "(", + "color": "brown", + "name": { "str": "pipe combination gun" }, + "description": "A home-made triple-barreled firearm, one barrel chambered in .30-06 and two other for shotgun shells. It is made from pipes and parts cannibalized from a double barrel shotgun.", + "price": 40000, + "//": "Attached mod will now have weight.", + "material": [ "steel", "wood" ], + "flags": [ "NEVER_JAMS", "RELOAD_EJECT" ], + "skill": "shotgun", + "ammo": [ "3006" ], + "weight": "2267 g", + "volume": "2 L", + "price_postapoc": 1250, + "bashing": 12, + "to_hit": -1, + "dispersion": 550, + "durability": 6, + "blackpowder_tolerance": 60, + "clip_size": 1, + "loudness": 25, + "barrel_length": "500 ml", + "built_in_mods": [ "combination_gun_shotgun_pipe" ], + "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], + "valid_mod_locations": [ + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 1 } } ] + }, + { + "id": "combination_gun_shotgun_pipe", + "type": "GUNMOD", + "name": { "str": "pipe combination gun shotgun" }, + "description": "The integrated underbarrel shotgun of a pipe combination gun which holds two shots. It's irremovable.", + "weight": "1134 g", + "volume": "1 L", + "price": 10000, + "price_postapoc": 500, + "to_hit": -1, + "material": [ "steel" ], + "symbol": ":", + "color": "light_red", + "location": "underbarrel", + "mod_targets": [ "rifle" ], + "gun_data": { "ammo": "shot", "skill": "shotgun", "dispersion": 480, "durability": 6, "clip_size": 2 }, + "flags": [ "IRREMOVABLE", "RELOAD_ONE", "NEVER_JAMS", "RELOAD_EJECT" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 2 } } ] + }, + { + "id": "rifle_3006", + "looks_like": "ar15", + "type": "GUN", + "reload_noise_volume": 10, + "name": { "str": "pipe rifle: .30-06", "str_pl": "pipe rifles: .30-06" }, + "//": "It's the same size as the others, but it's still a scrap weapon.", + "description": "A homemade rifle. It is simply a pipe attached to a stock, with a hammer to strike the single round it holds.", + "weight": "4080 g", + "volume": "3 L", + "price": 110000, + "price_postapoc": 500, + "to_hit": -1, + "bashing": 12, + "material": [ "steel", "wood" ], + "symbol": "(", + "color": "brown", + "ammo": [ "3006" ], + "skill": "rifle", + "ranged_damage": { "damage_type": "bullet", "amount": -2 }, + "dispersion": 550, + "durability": 6, + "blackpowder_tolerance": 60, + "loudness": 25, + "clip_size": 1, + "reload": 200, + "barrel_length": "1000 ml", + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], + "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], + "flags": [ "RELOAD_EJECT" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "3006": 1 } } ] + }, + { + "id": "rifle_308", + "copy-from": "rifle_manual", + "looks_like": "ar15", + "type": "GUN", + "name": { "str": "handmade heavy carbine" }, + "//": "It's amongst the smallest of the .308 firearms, and a scrap weapon as well. This means a short handmade barrel, and considerable loss of energy.", + "description": "A homemade lever-action magazine-fed smoothbore rifle. While still a primitive pipe and 2x4 design, some minor improvements have been made, such as being able to accept G3 compatible magazines, and chambering the more powerful .308 rounds.", + "weight": "2311 g", + "volume": "2 L", + "price": 10000, + "price_postapoc": 2250, + "to_hit": -1, + "bashing": 10, + "material": [ "steel", "wood" ], + "symbol": "(", + "color": "brown", + "ammo": [ "308" ], + "ranged_damage": { "damage_type": "bullet", "amount": -5 }, + "dispersion": 550, + "durability": 6, + "blackpowder_tolerance": 60, + "reload": 200, + "barrel_length": "500 ml", + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "barrel", 1 ], + [ "bore", 1 ], + [ "brass catcher", 1 ], + [ "muzzle", 1 ], + [ "stock", 1 ], + [ "mechanism", 4 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "g3_makeshiftmag", "g3mag", "g3bigmag" ] + } + ] + }, + { + "id": "surv_carbine_223", + "copy-from": "rifle_manual", + "looks_like": "ar15", + "type": "GUN", + "name": { "str": "handmade carbine" }, + "//": "It's smaller than an M4A1, plus it's a homemade firearm.", + "description": "A well-designed improvised lever-action carbine with a shortened barrel. Accepting crude detachable magazines or STANAG magazines, this is one of the better homemade weapons.", + "weight": "1950 g", + "volume": "1500 ml", + "price": 10000, + "price_postapoc": 2750, + "to_hit": -1, + "bashing": 6, + "material": [ "steel", "wood" ], + "symbol": "(", + "color": "brown", + "ammo": [ "223" ], + "ranged_damage": { "damage_type": "bullet", "amount": -4 }, + "dispersion": 550, + "durability": 6, + "blackpowder_tolerance": 32, + "loudness": 25, + "reload": 200, + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "barrel", 1 ], + [ "brass catcher", 1 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "underbarrel", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ] + ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ + "survivor223mag", + "stanag30", + "stanag5", + "stanag10", + "stanag20", + "stanag40", + "stanag50", + "stanag60", + "stanag60drum", + "stanag90", + "stanag100", + "stanag100drum", + "stanag150" + ] + } + ] + }, + { + "id": "rifle_223", + "copy-from": "gun_base", + "looks_like": "ar15", + "type": "GUN", + "name": { "str": "pipe rifle: .223", "str_pl": "pipe rifles: .223" }, + "description": "A homemade rifle. It is simply a pipe attached to a stock, with a hammer to strike the single round it holds.", + "weight": "4080 g", + "volume": "3 L", + "price": 110000, + "price_postapoc": 500, + "to_hit": -1, + "bashing": 12, + "material": [ "steel", "wood" ], + "symbol": "(", + "color": "brown", + "ammo": [ "223" ], + "skill": "rifle", + "ranged_damage": { "damage_type": "bullet", "amount": -2 }, + "dispersion": 550, + "durability": 6, + "blackpowder_tolerance": 60, + "loudness": 25, + "clip_size": 1, + "reload": 200, + "barrel_length": "1000 ml", + "valid_mod_locations": [ + [ "accessories", 2 ], + [ "muzzle", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], + "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], + "flags": [ "RELOAD_EJECT" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "223": 1 } } ] + }, { "id": "bio_advreactor", "type": "bionic", @@ -691,7 +938,7 @@ "weight": "80 g", "volume": "250 ml", "price": 0, - "material": "cotton", + "material": [ "cotton" ], "symbol": ",", "color": "white", "use_action": "WASH_HARD_ITEMS" @@ -862,6 +1109,26 @@ "react_cost": "2 J", "time": 1 }, + { + "type": "recipe", + "result": "pipe_combination_gun", + "obsolete": true + }, + { + "type": "recipe", + "result": "rifle_308", + "obsolete": true + }, + { + "type": "recipe", + "result": "surv_carbine_223", + "obsolete": true + }, + { + "type": "recipe", + "result": "rifle_3006", + "obsolete": true + }, { "type": "recipe", "result": "tihar", diff --git a/data/json/overmap/map_extras.json b/data/json/overmap/map_extras.json index 792ba5e61786b..9ad8ad9ce7ea2 100644 --- a/data/json/overmap/map_extras.json +++ b/data/json/overmap/map_extras.json @@ -2,14 +2,14 @@ { "id": "mx_null", "type": "map_extra", - "name": "Nothing", + "name": { "str": "Nothing" }, "description": "Nothing of interest is here.", "generator": { "generator_method": "null", "generator_id": "mx_null" } }, { "id": "mx_crater", "type": "map_extra", - "name": "Crater", + "name": { "str": "Crater" }, "description": "There is a crater here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_crater" }, "sym": "o", @@ -19,7 +19,7 @@ { "id": "mx_collegekids", "type": "map_extra", - "name": "College Kids", + "name": { "str": "College Kids" }, "description": "Several corpses of college kids are here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_collegekids" }, "sym": "c", @@ -29,7 +29,7 @@ { "id": "mx_drugdeal", "type": "map_extra", - "name": "Drug Deal", + "name": { "str": "Drug Deal" }, "description": "Several corpses of drug dealers are here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_drugdeal" }, "sym": "d", @@ -39,7 +39,7 @@ { "id": "mx_roadworks", "type": "map_extra", - "name": "Roadworks", + "name": { "str": "Roadworks" }, "description": "Roadworks are here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_roadworks" }, "sym": "X", @@ -49,7 +49,7 @@ { "id": "mx_mayhem", "type": "map_extra", - "name": "Road Mayhem", + "name": { "str": "Road Mayhem" }, "description": "Road mayhem is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_mayhem" }, "sym": "M", @@ -59,7 +59,7 @@ { "id": "mx_roadblock", "type": "map_extra", - "name": "Roadblock (Military)", + "name": { "str": "Roadblock (Military)" }, "description": "This road is blocked by military.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_roadblock" }, "sym": "X", @@ -69,7 +69,7 @@ { "id": "mx_bandits_block", "type": "map_extra", - "name": "Roadblock (Bandits)", + "name": { "str": "Roadblock (Bandits)" }, "description": "This road is blocked by bandits.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_bandits_block" }, "sym": "X", @@ -79,7 +79,7 @@ { "id": "mx_minefield", "type": "map_extra", - "name": "Minefield", + "name": { "str": "Minefield" }, "description": "Mines are scattered here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_minefield" }, "sym": "M", @@ -89,7 +89,7 @@ { "id": "mx_supplydrop", "type": "map_extra", - "name": "Supply Drop", + "name": { "str": "Supply Drop" }, "description": "Several supply crates were dropped here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_supplydrop" }, "sym": "C", @@ -99,7 +99,7 @@ { "id": "mx_military", "type": "map_extra", - "name": "Military", + "name": { "str": "Military", "ctxt": "Map Extra" }, "description": "Several corpses of soldiers are here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_military" }, "sym": "m", @@ -109,7 +109,7 @@ { "id": "mx_helicopter", "type": "map_extra", - "name": "Helicopter Crash", + "name": { "str": "Helicopter Crash" }, "description": "Helicopter crashed here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_helicopter" }, "sym": "X", @@ -119,7 +119,7 @@ { "id": "mx_science", "type": "map_extra", - "name": "Scientists", + "name": { "str": "Scientists" }, "description": "Several corpses of scientists are here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_science" }, "sym": "s", @@ -129,7 +129,7 @@ { "id": "mx_portal", "type": "map_extra", - "name": "Portal", + "name": { "str": "Portal" }, "description": "Portal is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_portal" }, "sym": "P", @@ -139,7 +139,7 @@ { "id": "mx_portal_in", "type": "map_extra", - "name": "Portal In", + "name": { "str": "Portal In" }, "description": "Another portal is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_portal_in" }, "sym": "P", @@ -149,7 +149,7 @@ { "id": "mx_house_spider", "type": "map_extra", - "name": "Spider Nest", + "name": { "str": "Spider Nest" }, "description": "Spider nest is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_house_spider" }, "sym": "S", @@ -159,7 +159,7 @@ { "id": "mx_house_wasp", "type": "map_extra", - "name": "Wasp Nest", + "name": { "str": "Wasp Nest" }, "description": "Wasp nest is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_house_wasp" }, "sym": "W", @@ -169,7 +169,7 @@ { "id": "mx_spider", "type": "map_extra", - "name": "Spiders", + "name": { "str": "Spiders" }, "description": "This area is covered with webs. Probably spiders are nearby", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_spider" }, "sym": "S", @@ -179,7 +179,7 @@ { "id": "mx_shia", "type": "map_extra", - "name": "Shia LaBeouf", + "name": { "str": "Shia LaBeouf" }, "description": "Cannibal is nearby.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_shia" }, "sym": "c", @@ -189,7 +189,7 @@ { "id": "mx_jabberwock", "type": "map_extra", - "name": "Jabberwock", + "name": { "str": "Jabberwock" }, "description": "Jabberwock is nearby.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_jabberwock" }, "sym": "J", @@ -199,7 +199,7 @@ { "id": "mx_grove", "type": "map_extra", - "name": "Grove", + "name": { "str": "Grove" }, "description": "This area is covered with a single type of trees.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_grove" }, "sym": "F", @@ -209,7 +209,7 @@ { "id": "mx_shrubbery", "type": "map_extra", - "name": "Shrubberry", + "name": { "str": "Shrubberry" }, "description": "This area is covered with a single type of shrubs.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_shrubbery" }, "sym": "s", @@ -219,7 +219,7 @@ { "id": "mx_clearcut", "type": "map_extra", - "name": "Clearcut", + "name": { "str": "Clearcut" }, "description": "Most trees in this area were uniformly cut down.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_clearcut" }, "sym": ".", @@ -229,7 +229,7 @@ { "id": "mx_pond", "type": "map_extra", - "name": "Pond", + "name": { "str": "Pond" }, "description": "Small pond is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_pond" }, "sym": "p", @@ -239,28 +239,28 @@ { "id": "mx_trees", "type": "map_extra", - "name": "Stand of trees", + "name": { "str": "Stand of trees" }, "description": "A copse of trees.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_trees_map" } }, { "id": "mx_grass", "type": "map_extra", - "name": "Tall grass", + "name": { "str": "Tall grass" }, "description": "A meadow of tall grass.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_grass_map" } }, { "id": "mx_fallen_shed", "type": "map_extra", - "name": "Derelict shed", + "name": { "str": "Derelict shed" }, "description": "A collapsed shed.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_fallen_shed_map" } }, { "id": "mx_clay_deposit", "type": "map_extra", - "name": "Clay Deposit", + "name": { "str": "Clay Deposit" }, "description": "Small clay deposit is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_clay_deposit" }, "sym": "c", @@ -270,7 +270,7 @@ { "id": "mx_dead_vegetation", "type": "map_extra", - "name": "Dead Vegetation", + "name": { "str": "Dead Vegetation" }, "description": "Dead vegetation is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_dead_vegetation" }, "sym": ".", @@ -280,7 +280,7 @@ { "id": "mx_point_dead_vegetation", "type": "map_extra", - "name": "Dead Vegetation (Point)", + "name": { "str": "Dead Vegetation (Point)" }, "description": "Dead vegetation is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_point_dead_vegetation" }, "sym": ".", @@ -290,7 +290,7 @@ { "id": "mx_burned_ground", "type": "map_extra", - "name": "Burned Ground", + "name": { "str": "Burned Ground" }, "description": "Burned ground is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_burned_ground" }, "sym": ".", @@ -300,7 +300,7 @@ { "id": "mx_point_burned_ground", "type": "map_extra", - "name": "Burned Ground (Point)", + "name": { "str": "Burned Ground (Point)" }, "description": "Burned ground is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_point_burned_ground" }, "sym": ".", @@ -310,7 +310,7 @@ { "id": "mx_marloss_pilgrimage", "type": "map_extra", - "name": "Marloss Pilgrimage", + "name": { "str": "Marloss Pilgrimage" }, "description": "Marloss Pilgrimage is here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_marloss_pilgrimage" }, "sym": "F", @@ -320,7 +320,7 @@ { "id": "mx_casings", "type": "map_extra", - "name": "Casings", + "name": { "str": "Casings" }, "description": "Several spent casings are here.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_casings" }, "sym": "C", @@ -330,21 +330,21 @@ { "id": "mx_looters", "type": "map_extra", - "name": "Looters", + "name": { "str": "Looters" }, "description": "Some looters gathering everything not nailed down.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_looters" } }, { "id": "mx_corpses", "type": "map_extra", - "name": "Corpses", + "name": { "str": "Corpses" }, "description": "Some unfortunates from the billions lost in the Cataclysm.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_corpses" } }, { "id": "mx_nest_wasp", "type": "map_extra", - "name": "Wasp Nest", + "name": { "str": "Wasp Nest" }, "description": "A wasp nest.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_wasp" }, "sym": "W", @@ -354,7 +354,7 @@ { "id": "mx_nest_dermatik", "type": "map_extra", - "name": "Dermatik Nest", + "name": { "str": "Dermatik Nest" }, "description": "A dermatik nest.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_dermatik" }, "sym": "D", @@ -364,14 +364,14 @@ { "id": "mx_prison_bus", "type": "map_extra", - "name": "Prison Bus", + "name": { "str": "Prison Bus" }, "description": "A prison bus.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_prison_bus" } }, { "id": "mx_mass_grave", "type": "map_extra", - "name": "Mass Grave", + "name": { "str": "Mass Grave" }, "description": "A mass grave.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_mass_grave" }, "sym": "X", @@ -381,14 +381,14 @@ { "id": "mx_grave", "type": "map_extra", - "name": "Grave", + "name": { "str": "Grave" }, "description": "A grave.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_grave" } }, { "id": "mx_city_trap", "type": "map_extra", - "name": "Zombie Trap", + "name": { "str": "Zombie Trap" }, "description": "Zombie trap.", "generator": { "generator_method": "map_extra_function", "generator_id": "mx_city_trap" } } diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index 8ae190d0c9f15..6a10ccb5e13ce 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -510,6 +510,86 @@ { "point": [ 0, 0, -1 ], "overmap": "basement" } ] }, + { + "type": "city_building", + "id": "house_33", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "house_33_north" }, + { "point": [ 0, 0, -1 ], "overmap": "house_33_basement_north" }, + { "point": [ 0, 0, 1 ], "overmap": "house_33_roof_north" } + ] + }, + { + "type": "city_building", + "id": "house_34", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "house_34_north" }, + { "point": [ 0, 0, -1 ], "overmap": "house_34_basement_north" }, + { "point": [ 0, 0, 1 ], "overmap": "house_34_roof_north" } + ] + }, + { + "type": "city_building", + "id": "house_35", + "locations": [ "land" ], + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "house_35_north" }, { "point": [ 0, 0, 1 ], "overmap": "house_35_roof_north" } ] + }, + { + "type": "city_building", + "id": "house_36", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "house_36_north" }, + { "point": [ 0, 0, 1 ], "overmap": "house_36_roof_north" }, + { "point": [ 0, 0, -1 ], "overmap": "house_36_basement_north" } + ] + }, + { + "type": "city_building", + "id": "house_37", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "house_37_north" }, + { "point": [ 0, 0, 1 ], "overmap": "house_37_roof_north" }, + { "point": [ 0, 0, -1 ], "overmap": "house_37_basement_north" } + ] + }, + { + "type": "city_building", + "id": "house_38", + "locations": [ "land" ], + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "house_38_north" }, { "point": [ 0, 0, 1 ], "overmap": "house_38_roof_north" } ] + }, + { + "type": "city_building", + "id": "house_39", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "house_39_north" }, + { "point": [ 0, 0, 1 ], "overmap": "house_39_roof_north" }, + { "point": [ 0, 0, -1 ], "overmap": "house_39_basement_north" } + ] + }, + { + "type": "city_building", + "id": "house_40", + "locations": [ "land" ], + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "house_40_north" }, { "point": [ 0, 0, 1 ], "overmap": "house_40_roof_north" } ] + }, + { + "type": "city_building", + "id": "house_41", + "locations": [ "land" ], + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "house_41_north" }, { "point": [ 0, 0, 1 ], "overmap": "house_41_roof_north" } ] + }, + { + "type": "city_building", + "id": "house_42", + "locations": [ "land" ], + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "house_42_north" }, { "point": [ 0, 0, 1 ], "overmap": "house_42_roof_north" } ] + }, { "type": "city_building", "id": "house_08", @@ -873,6 +953,26 @@ { "point": [ 0, 0, 2 ], "overmap": "s_gun_roof_4_north" } ] }, + { + "type": "city_building", + "id": "s_electronicstore", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_electronicstore_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_electronicstore_2ndfloor_north" }, + { "point": [ 0, 0, 2 ], "overmap": "s_electronicstore_roof_north" } + ] + }, + { + "type": "city_building", + "id": "s_gunstore", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_gunstore_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_gunstore_2ndfloor_north" }, + { "point": [ 0, 0, 2 ], "overmap": "s_gunstore_roof_north" } + ] + }, { "type": "city_building", "id": "mortuary", @@ -1667,6 +1767,28 @@ { "point": [ 0, 0, 5 ], "overmap": "apartments_mod_tower_003_south" } ] }, + { + "type": "city_building", + "id": "s_apt", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_apt_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_apt_2ndfloor_north" }, + { "point": [ 0, 0, 2 ], "overmap": "s_apt_roof_north" }, + { "point": [ 0, 0, 3 ], "overmap": "s_apt_upper_roof_north" } + ] + }, + { + "type": "city_building", + "id": "s_apt_2", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_apt_2_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_apt_2_2ndfloor_north" }, + { "point": [ 0, 0, 2 ], "overmap": "s_apt_2_roof_north" }, + { "point": [ 0, 0, 3 ], "overmap": "s_apt_2_upper_roof_north" } + ] + }, { "type": "city_building", "id": "office_tower", @@ -1949,47 +2071,64 @@ { "point": [ 7, 3, 0 ], "overmap": "mall_a_56_south" }, { "point": [ 7, 3, 1 ], "overmap": "mall_b_56_south" }, { "point": [ 7, 3, 2 ], "overmap": "mall_a_56_roof_south" }, + { "point": [ 7, 3, -1 ], "overmap": "mall_a_56_basement_south" }, { "point": [ 6, 3, 0 ], "overmap": "mall_a_57_south" }, { "point": [ 6, 3, 1 ], "overmap": "mall_b_57_south" }, { "point": [ 6, 3, 2 ], "overmap": "mall_a_57_roof_south" }, + { "point": [ 6, 3, -1 ], "overmap": "mall_a_57_basement_south" }, { "point": [ 5, 3, 0 ], "overmap": "mall_a_58_south" }, { "point": [ 5, 3, 1 ], "overmap": "mall_b_58_south" }, { "point": [ 5, 3, 2 ], "overmap": "mall_a_58_roof_south" }, + { "point": [ 5, 3, -1 ], "overmap": "mall_a_58_basement_south" }, { "point": [ 4, 3, 0 ], "overmap": "mall_a_59_south" }, { "point": [ 4, 3, 1 ], "overmap": "mall_b_59_south" }, { "point": [ 4, 3, 2 ], "overmap": "mall_a_59_roof_south" }, + { "point": [ 4, 3, -1 ], "overmap": "mall_a_59_basement_south" }, { "point": [ 3, 3, 0 ], "overmap": "mall_a_60_south" }, { "point": [ 3, 3, 1 ], "overmap": "mall_b_60_south" }, { "point": [ 3, 3, 2 ], "overmap": "mall_a_60_roof_south" }, + { "point": [ 3, 3, -1 ], "overmap": "mall_a_60_basement_south" }, { "point": [ 2, 3, 0 ], "overmap": "mall_a_61_south" }, { "point": [ 2, 3, 1 ], "overmap": "mall_b_61_south" }, { "point": [ 2, 3, 2 ], "overmap": "mall_a_61_roof_south" }, + { "point": [ 2, 3, -1 ], "overmap": "mall_a_61_basement_south" }, { "point": [ 1, 3, 0 ], "overmap": "mall_a_62_south" }, { "point": [ 1, 3, 1 ], "overmap": "mall_b_62_south" }, { "point": [ 1, 3, 2 ], "overmap": "mall_a_62_roof_south" }, + { "point": [ 1, 3, -1 ], "overmap": "mall_a_62_basement_south" }, { "point": [ 0, 3, 0 ], "overmap": "mall_a_63_south" }, { "point": [ 8, 2, 0 ], "overmap": "mall_a_64_south" }, { "point": [ 7, 2, 0 ], "overmap": "mall_a_65_south" }, { "point": [ 7, 2, 1 ], "overmap": "mall_b_65_south" }, { "point": [ 7, 2, 2 ], "overmap": "mall_a_65_roof_south" }, + { "point": [ 7, 2, -1 ], "overmap": "mall_a_65_basement_south" }, { "point": [ 6, 2, 0 ], "overmap": "mall_a_66_south" }, { "point": [ 6, 2, 1 ], "overmap": "mall_b_66_south" }, { "point": [ 6, 2, 2 ], "overmap": "mall_a_66_roof_south" }, + { "point": [ 6, 2, -1 ], "overmap": "mall_a_66_basement_south" }, { "point": [ 5, 2, 0 ], "overmap": "mall_a_67_south" }, { "point": [ 5, 2, 1 ], "overmap": "mall_b_67_south" }, { "point": [ 5, 2, 2 ], "overmap": "mall_a_67_roof_south" }, + { "point": [ 5, 2, -1 ], "overmap": "mall_a_67_basement_south" }, + { "point": [ 5, 2, -2 ], "overmap": "mall_a_67_sub_basement_south" }, { "point": [ 4, 2, 0 ], "overmap": "mall_a_68_south" }, { "point": [ 4, 2, 1 ], "overmap": "mall_b_68_south" }, { "point": [ 4, 2, 2 ], "overmap": "mall_a_68_roof_south" }, + { "point": [ 4, 2, -1 ], "overmap": "mall_a_68_basement_south" }, + { "point": [ 4, 2, -2 ], "overmap": "mall_a_68_sub_basement_south" }, { "point": [ 3, 2, 0 ], "overmap": "mall_a_69_south" }, { "point": [ 3, 2, 1 ], "overmap": "mall_b_69_south" }, { "point": [ 3, 2, 2 ], "overmap": "mall_a_69_roof_south" }, + { "point": [ 3, 2, -1 ], "overmap": "mall_a_69_basement_south" }, + { "point": [ 3, 2, -2 ], "overmap": "mall_a_69_sub_basement_south" }, { "point": [ 2, 2, 0 ], "overmap": "mall_a_70_south" }, { "point": [ 2, 2, 1 ], "overmap": "mall_b_70_south" }, { "point": [ 2, 2, 2 ], "overmap": "mall_a_70_roof_south" }, + { "point": [ 2, 2, -1 ], "overmap": "mall_a_70_basement_south" }, { "point": [ 1, 2, 0 ], "overmap": "mall_a_71_south" }, { "point": [ 1, 2, 1 ], "overmap": "mall_b_71_south" }, { "point": [ 1, 2, 2 ], "overmap": "mall_a_71_roof_south" }, + { "point": [ 1, 2, -1 ], "overmap": "mall_a_71_basement_south" }, { "point": [ 0, 2, 0 ], "overmap": "mall_a_72_south" }, { "point": [ 8, 1, 0 ], "overmap": "mall_a_73_south" }, { "point": [ 7, 1, 0 ], "overmap": "mall_a_74_south" }, @@ -2481,6 +2620,12 @@ "locations": [ "land" ], "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_arcade_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_arcade_roof_north" } ] }, + { + "type": "city_building", + "id": "s_games", + "locations": [ "land" ], + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_games_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_games_roof_north" } ] + }, { "type": "city_building", "id": "cs_car_dealership", @@ -3482,5 +3627,30 @@ { "point": [ 0, 0, 0 ], "overmap": "s_laundromat_1_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_laundromat_roof_1_north" } ] + }, + { + "type": "city_building", + "id": "s_camping", + "locations": [ "land" ], + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_camping_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_camping_roof_north" } ] + }, + { + "type": "city_building", + "id": "s_cardealer", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_cardealer_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_cardealer_roof_north" } + ] + }, + { + "type": "city_building", + "id": "s_diner", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_diner_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_diner_2ndfloor_north" }, + { "point": [ 0, 0, 2 ], "overmap": "s_diner_roof_north" } + ] } ] diff --git a/data/json/overmap/overmap_special/specials.json b/data/json/overmap/overmap_special/specials.json index 39d66e73d063e..3b9fc44f971eb 100644 --- a/data/json/overmap/overmap_special/specials.json +++ b/data/json/overmap/overmap_special/specials.json @@ -7060,5 +7060,65 @@ "city_sizes": [ 4, 12 ], "occurrences": [ 0, 1 ], "flags": [ "MILITARY" ] + }, + { + "type": "overmap_special", + "id": "o_airport", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_air_term_south" }, + { "point": [ 0, 0, 1 ], "overmap": "s_air_term_roof_south" }, + { "point": [ 1, 0, 0 ], "overmap": "s_air_parking_south" }, + { "point": [ -2, 0, 0 ], "overmap": "s_air_hangars_south" }, + { "point": [ -2, 0, 1 ], "overmap": "s_air_hangars_roof_south" }, + { "point": [ -3, 0, 0 ], "overmap": "s_air_helicopter_pad_north" }, + { "point": [ -1, 0, 0 ], "overmap": "s_air_atc_south" }, + { "point": [ -1, 0, 1 ], "overmap": "s_air_atc_2_south" }, + { "point": [ -1, 0, 2 ], "overmap": "s_air_atc_3_south" }, + { "point": [ -5, 1, 0 ], "overmap": "s_air_runway_r_south" }, + { "point": [ -4, 1, 0 ], "overmap": "s_air_runway_south" }, + { "point": [ -3, 1, 0 ], "overmap": "s_air_runway_south" }, + { "point": [ -2, 1, 0 ], "overmap": "s_air_runway_hangars_south" }, + { "point": [ -1, 1, 0 ], "overmap": "s_air_runway_south" }, + { "point": [ 0, 1, 0 ], "overmap": "s_air_runway_term_south" }, + { "point": [ 1, 1, 0 ], "overmap": "s_air_runway_B_south" }, + { "point": [ 2, 1, 0 ], "overmap": "s_air_runway_B_south" }, + { "point": [ 3, 1, 0 ], "overmap": "s_air_runway_B_south" }, + { "point": [ 4, 1, 0 ], "overmap": "s_air_runway_B_south" }, + { "point": [ 5, 1, 0 ], "overmap": "s_air_runway_l_south" } + ], + "connections": [ + { "point": [ -1, -1, 0 ], "terrain": "road", "existing": false }, + { "point": [ 0, -1, 0 ], "terrain": "road", "existing": false }, + { "point": [ 1, -1, 0 ], "terrain": "road", "existing": false } + ], + "locations": [ "land" ], + "city_distance": [ 5, -1 ], + "city_sizes": [ 1, 12 ], + "occurrences": [ 0, 1 ], + "flags": [ "CLASSIC" ] + }, + { + "type": "overmap_special", + "id": "o_lightindustry", + "overmaps": [ + { "point": [ 1, 0, 0 ], "overmap": "s_lightindustry_road_0_south" }, + { "point": [ 0, 0, 0 ], "overmap": "s_lightindustry_road_1_south" }, + { "point": [ 1, -1, 0 ], "overmap": "s_lightindustry_00_south" }, + { "point": [ 1, -1, 1 ], "overmap": "s_lightindustry_00_roof_south" }, + { "point": [ 0, -1, 0 ], "overmap": "s_lightindustry_01_south" }, + { "point": [ 0, -1, 1 ], "overmap": "s_lightindustry_01_roof_south" }, + { "point": [ 1, 1, 0 ], "overmap": "s_lightindustry_10_south" }, + { "point": [ 1, 1, 1 ], "overmap": "s_lightindustry_10_roof_south" }, + { "point": [ 0, 1, 0 ], "overmap": "s_lightindustry_11_south" }, + { "point": [ 0, 1, 1 ], "overmap": "s_lightindustry_11_roof_south" } + ], + "connections": [ + { "point": [ -1, 0, 0 ], "terrain": "road", "existing": false }, + { "point": [ -2, 0, 0 ], "terrain": "road", "existing": true } + ], + "locations": [ "land", "swamp" ], + "city_sizes": [ 1, 12 ], + "occurrences": [ 0, 3 ], + "flags": [ "CLASSIC" ] } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json index 8c98a5f368646..882f91dec62f8 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json @@ -195,7 +195,7 @@ }, { "type": "overmap_terrain", - "id": [ "s_electronics", "s_electronics_1" ], + "id": [ "s_electronics", "s_electronics_1", "s_electronicstore" ], "copy-from": "generic_city_building", "name": "electronics store", "color": "yellow", @@ -203,11 +203,18 @@ }, { "type": "overmap_terrain", - "id": [ "s_electronics_roof", "s_electronics_roof_1" ], + "id": [ "s_electronics_roof", "s_electronics_roof_1", "s_electronicstore_roof" ], "copy-from": "generic_city_building", "name": "electronics store roof", "color": "yellow" }, + { + "type": "overmap_terrain", + "id": "s_electronicstore_2ndfloor", + "name": "electronics store 2nd floor", + "copy-from": "generic_city_building", + "color": "yellow" + }, { "type": "overmap_terrain", "id": "s_sports", @@ -240,7 +247,7 @@ }, { "type": "overmap_terrain", - "id": [ "s_gun", "s_gun_1", "s_gun_2", "s_gun_3", "s_gun_4" ], + "id": [ "s_gun", "s_gun_1", "s_gun_2", "s_gun_3", "s_gun_4", "s_gunstore" ], "copy-from": "generic_city_building", "name": "gun store", "color": "red", @@ -248,14 +255,14 @@ }, { "type": "overmap_terrain", - "id": [ "s_gun_roof", "s_gun_roof_1", "s_gun_roof_3", "s_gun_roof_4" ], + "id": [ "s_gun_roof", "s_gun_roof_1", "s_gun_roof_3", "s_gun_roof_4", "s_gunstore_roof" ], "name": "gun store roof", "copy-from": "generic_city_building", "color": "red" }, { "type": "overmap_terrain", - "id": "s_gun_2ndfloor_4", + "id": [ "s_gun_2ndfloor_4", "s_gunstore_2ndfloor" ], "name": "gun store 2nd floor", "copy-from": "generic_city_building", "color": "red" @@ -306,6 +313,23 @@ "name": "bookstore roof", "color": "i_brown" }, + { + "type": "overmap_terrain", + "id": "s_diner", + "name": "diner", + "copy-from": "generic_city_building", + "sym": "d", + "color": "green", + "extend": { "flags": [ "SOURCE_FOOD", "SOURCE_DRINK", "SOURCE_COOKING" ] } + }, + { + "type": "overmap_terrain", + "id": [ "s_diner_2ndfloor", "s_diner_roof" ], + "name": "diner", + "copy-from": "generic_city_building", + "sym": "d", + "color": "green" + }, { "type": "overmap_terrain", "id": [ "s_restaurant_foodplace", "s_restaurant", "s_restaurant_1", "s_restaurant_2", "s_restaurant_3" ], @@ -1314,7 +1338,7 @@ }, { "type": "overmap_terrain", - "id": "cs_car_dealership", + "id": [ "cs_car_dealership", "s_cardealer" ], "copy-from": "generic_city_building", "name": "car dealership", "sym": "c", @@ -1323,7 +1347,7 @@ }, { "type": "overmap_terrain", - "id": "cs_car_dealership_roof", + "id": [ "cs_car_dealership_roof", "s_cardealer_roof" ], "copy-from": "generic_city_building", "name": "car dealership", "sym": "c", @@ -1465,6 +1489,23 @@ "sym": "H", "color": "brown" }, + { + "type": "overmap_terrain", + "id": "s_camping", + "name": "outdoorsman's store", + "copy-from": "generic_city_building", + "sym": "o", + "color": "brown", + "extend": { "flags": [ "SOURCE_WEAPON", "SOURCE_CLOTHING" ] } + }, + { + "type": "overmap_terrain", + "id": "s_camping_roof", + "name": "outdoorsman's store", + "copy-from": "generic_city_building", + "sym": "o", + "color": "brown" + }, { "type": "overmap_terrain", "id": [ @@ -1507,5 +1548,19 @@ "urban_14_9" ], "copy-from": "urban_13_3" + }, + { + "type": "overmap_terrain", + "id": "s_games", + "name": "gaming store", + "copy-from": "generic_city_building", + "sym": "g", + "color": "cyan" + }, + { + "type": "overmap_terrain", + "id": "s_games_roof", + "name": "gaming store roof", + "copy-from": "s_games" } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_industrial.json b/data/json/overmap/overmap_terrain/overmap_terrain_industrial.json index b5c8f851b55be..0485bde2cc4ff 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_industrial.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_industrial.json @@ -289,5 +289,73 @@ "name": "steel mill depot", "sym": "|", "color": "dark_gray" + }, + { + "type": "overmap_terrain", + "id": [ "s_lightindustry_road_0", "s_lightindustry_road_1" ], + "name": "light industry", + "sym": "─", + "color": "dark_gray", + "see_cost": 5, + "extras": "build", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": [ + "s_lightindustry_00", + "s_lightindustry_00_roof", + "s_lightindustry_01", + "s_lightindustry_01_roof", + "s_lightindustry_10", + "s_lightindustry_10_roof", + "s_lightindustry_11", + "s_lightindustry_11_roof" + ], + "name": "light industry", + "sym": "I", + "color": "light_blue", + "see_cost": 5, + "extras": "build", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": [ + "s_air_parking", + "s_air_term", + "s_air_atc", + "s_air_hangars", + "s_air_hangars_roof", + "s_air_term_roof", + "s_air_atc_2", + "s_air_atc_3" + ], + "name": "private airport", + "sym": "A", + "color": "i_cyan", + "see_cost": 5, + "extras": "build", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": [ "s_air_runway_l", "s_air_runway_B", "s_air_runway_term", "s_air_runway", "s_air_runway_hangars", "s_air_runway_r" ], + "name": "private airport runway", + "sym": "-", + "color": "blue", + "see_cost": 5, + "extras": "build", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": [ "s_air_helicopter_pad" ], + "name": "helicopter pad", + "sym": "H", + "color": "i_cyan", + "see_cost": 5, + "extras": "build", + "mondensity": 2 } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_mall.json b/data/json/overmap/overmap_terrain/overmap_terrain_mall.json index e689495872c4e..844d6c4cb9f80 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_mall.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_mall.json @@ -9,6 +9,13 @@ "mondensity": 2, "flags": [ "SIDEWALK", "RISK_HIGH", "SOURCE_FOOD", "SOURCE_DRINK", "SOURCE_MEDICINE", "SOURCE_FABRICATION" ] }, + { + "type": "overmap_terrain", + "abstract": "generic_mall_basement", + "name": "mall", + "color": "dark_gray", + "sym": "0" + }, { "type": "overmap_terrain", "abstract": "generic_mall_road", @@ -295,5 +302,32 @@ "mall_upper_roof_51" ], "copy-from": "generic_mall" + }, + { + "type": "overmap_terrain", + "id": [ + "mall_a_56_basement", + "mall_a_57_basement", + "mall_a_58_basement", + "mall_a_59_basement", + "mall_a_60_basement", + "mall_a_61_basement", + "mall_a_62_basement", + "mall_a_65_basement", + "mall_a_66_basement", + "mall_a_67_basement", + "mall_a_69_basement", + "mall_a_70_basement", + "mall_a_71_basement" + ], + "copy-from": "generic_mall_basement", + "sym": "0" + }, + { + "type": "overmap_terrain", + "id": [ "mall_a_68_basement", "mall_a_67_sub_basement", "mall_a_68_sub_basement", "mall_a_69_sub_basement" ], + "copy-from": "generic_mall", + "name": "mall - subway station", + "color": "i_light_red" } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_residential.json b/data/json/overmap/overmap_terrain/overmap_terrain_residential.json index ce891f01d7a31..b9a00dff11f61 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_residential.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_residential.json @@ -80,6 +80,16 @@ "house_30", "house_31", "house_32", + "house_33", + "house_34", + "house_35", + "house_36", + "house_37", + "house_38", + "house_39", + "house_40", + "house_41", + "house_42", "house_crack1", "house_crack2", "house_crack3", @@ -245,6 +255,16 @@ "house_30_roof", "house_31_roof", "house_32_roof", + "house_33_roof", + "house_34_roof", + "house_35_roof", + "house_36_roof", + "house_37_roof", + "house_38_roof", + "house_39_roof", + "house_40_roof", + "house_41_roof", + "house_42_roof", "house_crack1_roof", "house_crack3_roof", "house_detatched10_roof", @@ -325,6 +345,11 @@ "house_17_basement", "house_19_basement", "house_22_basement", + "house_33_basement", + "house_34_basement", + "house_36_basement", + "house_37_basement", + "house_39_basement", "house_2story_basement", "house_crack3_basement", "house_detatched1_basement", @@ -429,7 +454,15 @@ "apartments_mod_tower_NE", "apartments_mod_tower_NW", "apartments_mod_tower_SE", - "apartments_mod_tower_SW" + "apartments_mod_tower_SW", + "s_apt", + "s_apt_2ndfloor", + "s_apt_roof", + "s_apt_2_upper_roof", + "s_apt_2", + "s_apt_2_2ndfloor", + "s_apt_2_roof", + "s_apt_upper_roof" ], "copy-from": "apartments_tower_any" }, diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_waterbody.json b/data/json/overmap/overmap_terrain/overmap_terrain_waterbody.json index 56d3ae7d0f65e..6be2c73501878 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_waterbody.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_waterbody.json @@ -22,9 +22,7 @@ { "type": "overmap_terrain", "id": "lake_surface", - "copy-from": "generic_lake", - "delete": { "flags": [ "LAKE" ] }, - "extend": { "flags": [ "LAKE_SHORE" ] } + "copy-from": "generic_lake" }, { "type": "overmap_terrain", diff --git a/data/json/player_activities.json b/data/json/player_activities.json index 3a6f3bda8a0b1..9db49f5ac2afa 100644 --- a/data/json/player_activities.json +++ b/data/json/player_activities.json @@ -538,6 +538,8 @@ "activity_level": "NO_EXERCISE", "verb": "picking lock", "rooted": true, + "suspendable": false, + "no_resume": true, "based_on": "speed" }, { @@ -733,6 +735,7 @@ "activity_level": "NO_EXERCISE", "verb": "being operated on", "based_on": "time", + "interruptable": false, "suspendable": false }, { diff --git a/data/json/professions.json b/data/json/professions.json index 4d6a2af321545..9beadf0fea55f 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -245,7 +245,7 @@ { "present": [ "ANTIWHEAT" ], "absent": [ "VEGETARIAN", "ANTIJUNK" ], - "new": [ { "item": "fchicken", "ratio": 3 } ] + "new": [ { "item": "fchicken", "ratio": 1 } ] }, { "present": [ "ANTIWHEAT", "ANTIJUNK" ], @@ -262,7 +262,7 @@ { "present": [ "ANTIWHEAT" ], "absent": [ "VEGETARIAN", "ANTIJUNK" ], - "new": [ { "item": "fchicken", "ratio": 3 } ] + "new": [ { "item": "fchicken", "ratio": 1 } ] }, { "present": [ "ANTIWHEAT", "ANTIJUNK" ], @@ -320,7 +320,7 @@ "type": "profession", "ident": "vagabond", "name": "Vagabond", - "description": "Circumstances left you wandering, with no home, no family, no friends. But the world you knew is gone, and maybe your experiences relying on yourself to survive could be useful in this new one.", + "description": "Circumstance left you wandering the world, alone. Now there is nothing to go back to, even if you wanted to. Perhaps your experience in fending for yourself will prove useful in this new world.", "points": 2, "skills": [ { "level": 1, "name": "unarmed" }, @@ -359,7 +359,7 @@ "type": "profession", "ident": "bionic_prepper", "name": "Bionic Prepper", - "description": "You knew the end was coming. You augmented yourself with some basic bionics and got additional survival training. Now the end has come, and it is time to see if your efforts have paid off.", + "description": "You knew the end was coming. You augmented yourself with some basic bionic tools and underwent extensive survival training. Now the end has come, and it is time to see if your efforts have paid off.", "points": 6, "CBMs": [ "bio_metabolics", @@ -375,6 +375,7 @@ { "level": 4, "name": "survival" }, { "level": 3, "name": "fabrication" }, { "level": 3, "name": "cooking" }, + { "level": 3, "name": "chemistry" }, { "level": 2, "name": "firstaid" }, { "level": 2, "name": "gun" }, { "level": 2, "name": "rifle" }, @@ -414,7 +415,7 @@ "type": "profession", "ident": "unemployed", "name": "Survivor", - "description": "Some would say that there's nothing particularly notable about you. But you've survived, and that's more than most could say right now.", + "description": "Some would say that there's nothing particularly notable about you, but you've survived, and that's more than most could say right now.", "points": 0, "items": { "both": { @@ -440,12 +441,13 @@ "type": "profession", "ident": "sheltered_survivor", "name": "Sheltered Survivor", - "description": "At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it is winter, and you hope the rag-tag collection of skills you learned from all those books can help you survive.", + "description": "At the start of the Cataclysm, you hunkered down in a bomb shelter. You've spent the past months eating canned food, reading books, and tinkering with stuff in the bunker. Now it is winter - time to face the world above.", "points": 4, "skills": [ { "level": 2, "name": "tailor" }, { "level": 2, "name": "computer" }, { "level": 2, "name": "cooking" }, + { "level": 2, "name": "chemistry" }, { "level": 2, "name": "mechanics" }, { "level": 2, "name": "firstaid" }, { "level": 2, "name": "electronics" }, @@ -465,7 +467,7 @@ "type": "profession", "ident": "sheltered_militia", "name": "Sheltered Militia", - "description": "At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it is winter, and you hope your guns and the skills you have acquired can help you survive.", + "description": "At the start of the Cataclysm, you hunkered down in a bomb shelter with your collection of guns. You've spent the past months eating canned food and practicing your aim. Now it is winter - time to face the world above.", "points": 4, "skills": [ { "level": 2, "name": "gun" }, { "level": 1, "name": "rifle" }, { "level": 1, "name": "pistol" } ], "items": { @@ -500,7 +502,7 @@ "type": "profession", "ident": "tailor", "name": "Tailor", - "description": "Tailoring may not seem like the most useful skill when the world has ended. Most people wouldn't expect a simple tailor to live long. This is your opportunity to prove them wrong.", + "description": "Tailoring may not seem like the most useful skill when the world has ended. Most people wouldn't expect a simple tailor to live very long. This is your opportunity to prove them wrong.", "points": 2, "//": "Tailoring kit makes an already decent class for careful folks much more powerful.", "skills": [ { "level": 4, "name": "tailor" } ], @@ -517,7 +519,7 @@ "type": "profession", "ident": "chef", "name": "Chef", - "description": "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, but you managed to escape the carnage with a butchers knife and only a small collection of stains on your uniform.", + "description": "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, but you managed to escape the carnage with your trusty butcher knife and only a small collection of stains on your uniform.", "points": 1, "skills": [ { "name": "cooking", "level": 4 } ], "items": { @@ -557,11 +559,11 @@ "type": "profession", "ident": "labtech", "name": "Lab Technician", - "description": "Thanks to your time in the lab, you're familiar with the basics of conducting science. Now that the world has ended, only one question remains: Can you undo the very Cataclysm you helped create?", + "description": "Thanks to years of study and hard work in the lab, you're familiar with the basics of scientific inquiry. Only one question remains: can you undo the very Cataclysm your colleagues helped create?", "points": 3, "skills": [ { "level": 2, "name": "computer" }, - { "level": 2, "name": "cooking" }, + { "level": 2, "name": "chemistry" }, { "level": 2, "name": "electronics" }, { "level": 2, "name": "mechanics" } ], @@ -578,9 +580,9 @@ "type": "profession", "ident": "mechanic", "name": "Home Mechanic", - "description": "Although you never got your driver's license, you've always loved cars. At least now you'll never be wanting for materials.", + "description": "You've always loved cars, and there's nothing like getting under the hood and fixing it yourself. You've kept hold of some handy tools for the job, and at least now you'll never want for parts.", "points": 2, - "skills": [ { "level": 3, "name": "mechanics" } ], + "skills": [ { "level": 3, "name": "mechanics" }, { "level": 1, "name": "driving" } ], "items": { "both": { "items": [ "slingpack", "tank_top", "jeans", "socks", "boots_steel", "duct_tape", "screwdriver", "wristwatch", "mag_cars" ], @@ -599,7 +601,7 @@ "type": "profession", "ident": "scoundrel", "name": "Scoundrel", - "description": "Your flexible outlook on the law, the scuffles you've been in (and avoided) at the bar, and your impressive ability to weasel your way out of the consequences of your actions - all these skills have helped ensure your survival. But how much longer will they hold out?", + "description": "Your flexible outlook on the law, the scuffles you've been in (and avoided) at the bar, and your impressive ability to weasel your way out of the consequences of your actions - all these skills have helped ensure your survival. How much longer will they hold out?", "points": 2, "skills": [ { "level": 1, "name": "melee" }, @@ -634,7 +636,7 @@ "type": "profession", "ident": "beekeeper", "name": "Beekeeper", - "description": "You used to be a professional beekeeper. You had to abandon your precious bees when the Cataclysm struck, but at least you managed to grab some utensils and honey.", + "description": "You used to be a professional apiarist, building and maintaining beehives. You had to abandon your precious bees when the Cataclysm struck, but at least you managed to grab some utensils and honey.", "points": 2, "skills": [ { "name": "survival", "level": 2 }, { "name": "fabrication", "level": 1 } ], "items": { @@ -661,7 +663,7 @@ "type": "profession", "ident": "basketball_player", "name": "Basketball Player", - "description": "It was going to be your first major game, but then the Cataclysm struck. Thanks to your quick feet, you were among the lucky few to survive and escape from the creatures.", + "description": "Your first major game was abruptly cancelled when zombies stormed the court. Quick feet and good reflexes meant you were among the lucky few to escape the stadium alive.", "points": 1, "skills": [ { "level": 2, "name": "dodge" }, { "level": 3, "name": "throw" } ], "items": { @@ -677,7 +679,7 @@ "type": "profession", "ident": "true_foodperson", "name": "True Foodperson", - "description": "You are the true Foodperson, some might think Foodperson is just a mascot, but you know better. You are Foodperson, the mask has become your face, you are real and the only thing standing between this world and oblivion is you.", + "description": "You are the true Foodperson. Some might think Foodperson is just a mascot, but you know better. The mask has become your face, you are real, and the only thing standing between this world and oblivion is you.", "points": 0, "traits": [ "PROF_FOODP" ], "skills": [ { "level": 2, "name": "speech" } ], @@ -708,7 +710,7 @@ "type": "profession", "ident": "cyclist", "name": "Professional Cyclist", - "description": "You were a promising young cyclist with a bright career in front of you before this all happened. Perhaps you'll never get to participate in the grand tours now, but as the saying goes: Life is like riding a bicycle, you got to keep moving.", + "description": "You were a promising young cyclist with a bright career in front of you before this all happened. Perhaps you'll never get to participate in the grand tours now, but as the saying goes, life is like riding a bicycle: you've got to keep moving.", "points": 3, "skills": [ { "level": 3, "name": "driving" }, { "level": 2, "name": "dodge" } ], "items": { @@ -735,7 +737,7 @@ "type": "profession", "ident": "soldier", "name": "Military Recruit", - "description": "You were a high school drop-out with one goal in mind: to join the military. You finally got in, just in time for your training to get interrupted by a national emergency. As far as you can tell, military command abandoned you in this hellhole when you missed the emergency evac.", + "description": "Joining the military has been your dream for years. You finally got in, just in time for your training to get interrupted by some sort of national emergency. As far as you can tell, military command abandoned you in this hellhole when you missed the emergency evac.", "points": 4, "skills": [ { "level": 2, "name": "gun" }, @@ -825,7 +827,7 @@ "type": "profession", "ident": "maid", "name": { "male": "Butler", "female": "Maid" }, - "description": "You worked in a wealthy household, but after the Cataclysm they took a family vacation to an unknown place, leaving you to fend for yourself.", + "description": "You were hired to take care of the housekeeping for a wealthy family. Naturally, when things got bad, they all took off on a family vacation to somewhere unknown, leaving you to your fate.", "points": 1, "skills": [ { "level": 2, "name": "cooking" }, { "level": 1, "name": "driving" }, { "level": 2, "name": "tailor" } ], "items": { @@ -838,7 +840,7 @@ "type": "profession", "ident": "captive", "name": { "male": "Captive", "female": "Captive" }, - "description": "You were following a road at night trying to get away from the horrors of the city, when you heard a voice calling out in the dark. As you stepped away to investigate, you suddenly felt a searing pain in your head and blacked out. You just woke up in this place… Are you even on earth anymore?", + "description": "You were following a road at night, trying to get away from the horrors of the city, when you heard a voice calling out in the dark. You followed, hoping they were friendly, but suddenly felt a searing pain in your head and blacked out. You just woke up in this strange place… are you even on Earth anymore?", "points": -2, "flags": [ "SCEN_ONLY" ] }, @@ -846,7 +848,7 @@ "type": "profession", "ident": "rescuer", "name": { "male": "Rescuer", "female": "Rescuer" }, - "description": "You were ready. You went in determined to find and rescue your friends. But now as you walk through those strange corridors, the atmosphere grows heavy and you're not so sure anymore. You might be the one in need of a rescue now.", + "description": "You were ready. You went in determined to find and rescue your friends. Now the atmosphere in these twisting corridors grows heavy, and you don't feel quite so confident anymore. You might be the one in need of a rescue soon.", "points": 3, "skills": [ { "level": 4, "name": "dodge" }, @@ -875,7 +877,7 @@ "type": "profession", "ident": "medic", "name": "Medical Resident", - "description": "Fresh out of med school, you've got little in the way of practical experience. You just hope it will be enough if the old adage of 'Doctor, heal thyself' ends up being required.", + "description": "Fresh out of med school, you've got little in the way of practical experience and just a handful of first-aid supplies. You just hope it will be enough if 'physician, heal thyself' turns out to be more literal than you expected.", "points": 2, "skills": [ { "level": 4, "name": "firstaid" } ], "traits": [ "PROF_MED" ], @@ -905,7 +907,7 @@ "type": "profession", "ident": "gangster", "name": "Gangster", - "description": "The boss always said he could rely on you to pull through on the tough jobs. A shame he didn't manage it, himself. No stranger to a spot of violence, you almost feel at home in this new world already.", + "description": "The boss always said he could rely on you to pull through on the tough jobs. Shame he got himself smoked. No problem; the world's always got a place for someone with your kind of talents.", "points": 3, "skills": [ { "level": 1, "name": "melee" }, @@ -934,7 +936,7 @@ "type": "profession", "ident": "security", "name": "Security Guard", - "description": "A low paid security guard, things have suddenly gotten a lot more dangerous than patrolling the grounds warding off potential thieves. You don't have any particularly useful skills, but you do have some useful equipment since you were on the job when things started going south.", + "description": "You had a boring, underpaid job watching cameras and patrolling hallways, but things have suddenly gotten a lot more dangerous. You have some useful equipment, but you've never had any call to use it until now.", "points": 1, "items": { "both": { @@ -956,7 +958,7 @@ "ident": "groundskeeper", "name": "Landscaper", "//": "A simple class for players who want to try some basic crafting immediately, or who want a machete because it's in-genre.", - "description": "You used to mow lawns and trim hedges for the wealthy. Contract work was getting scarce even before the zombies came, but now you've got nothing left but your tools and expertise.", + "description": "You used to mow lawns and trim hedges for the wealthy. Contract work was getting scarce even before the zombies came, but now you've got nothing left except your tools and expertise.", "points": 1, "skills": [ { "level": 2, "name": "fabrication" }, { "level": 2, "name": "survival" } ], "items": { @@ -973,7 +975,7 @@ "ident": "homemaker", "name": "Nursing Assistant", "//": "They don't have the doctor's passive bonus to surgery. Nursing assistants aren't required to hold a doctorate.", - "description": "You were providing in-home care for the elderly, even as the whole world fell apart around you. You can only pray that you don't see your former clients among the walking dead...", + "description": "You went on providing in-home care for the elderly even as the whole world fell apart around you. You can only pray that you don't see your former clients among the walking dead…", "points": 1, "skills": [ { "level": 2, "name": "firstaid" }, { "level": 1, "name": "cooking" } ], "items": { @@ -999,13 +1001,14 @@ "type": "profession", "ident": "survivalist", "name": "Survivalist", - "description": "Skilled at surviving off the land far from civilization, your skills are quite likely to come in useful considering civilization is now full of monsters that want you dead. Your equipment is basic, but versatile - and with your skills, more than you need… except your canteen's run out!", + "description": "Living off the land, far from civilization, is nothing new to you. The only difference is all the monsters that suddenly want you dead. Your equipment is basic, but versatile… except that your canteen's run out!", "points": 3, "skills": [ { "level": 4, "name": "survival" }, { "level": 2, "name": "traps" }, { "level": 2, "name": "fabrication" }, { "level": 2, "name": "cooking" }, + { "level": 2, "name": "chemistry" }, { "level": 2, "name": "firstaid" }, { "level": 2, "name": "swimming" }, { "level": 1, "name": "lockpick" } @@ -1040,7 +1043,7 @@ "type": "profession", "ident": "smoker", "name": "Chain Smoker", - "description": "Everyone at work knew you as the person who always had a cigarette or two in hand. Now, you're down to a single pack, and you hope you find more soon. You start out with a strong nicotine addiction.", + "description": "Your coworkers always muttered when you had to duck outside every hour for a smoke, but it ended up saving your life when things got bad. Now you're down to your last pack. You start out with a strong nicotine addiction.", "points": -1, "items": { "both": { @@ -1056,7 +1059,7 @@ "type": "profession", "ident": "crackhead", "name": "Crackhead", - "description": "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, and before you knew it you were turning tricks behind the local CVS just to score one more line.", + "description": "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, and before you knew it you were turning tricks behind the local CVS just to score one more line. Where are you going to get your next fix now?", "points": -1, "items": { "both": [ "crackpipe", "crack", "crack", "ref_lighter", "tank_top" ], @@ -1069,7 +1072,7 @@ "type": "profession", "ident": "homeless", "name": "Hobo", - "description": "Society drove you to the fringes and set you wandering, with no home, no family, no friends, until you could only find solace in the bottom of a bottle. But society doesn't mean a thing anymore, and for all the crap thrown your way, you're still standing. God damn, you need a drink.", + "description": "Society drove you to the fringes and left you with no home, no family, no friends. You found solace in the bottom of a bottle. Well, society doesn't mean a thing anymore, and for all the crap thrown your way, you're still standing. God damn, you need a drink.", "points": -1, "items": { "both": [ "pants", "knit_scarf", "whiskey", "gin", "bum_wine", "ragpouch", "bindle", "can_beans", "pockknife", "matches" ], @@ -1082,7 +1085,7 @@ "type": "profession", "ident": "tweaker", "name": "Tweaker", - "description": "You're not entirely sure what happened, but everything has gone to shit, and the only thing running through your head is where you're gonna find your next hit.", + "description": "You're not entirely sure what happened last night, but you woke up on the floor and everything has gone completely to shit. The only thing running through your head, though, is where you're gonna find your next hit.", "points": -2, "items": { "both": [ "pants", "boxer_shorts" ], "male": [ "undershirt" ], "female": [ "camisole" ] }, "addictions": [ { "intensity": 30, "type": "amphetamine" } ] @@ -1091,7 +1094,7 @@ "type": "profession", "ident": "pillhead", "name": "Pillhead", - "description": "After an accident in your youth, you got addicted to the opiates treating your pain. With the pharmacies shut down and dealers turned undead, satisfying your fix just got a lot more difficult.", + "description": "After an accident in your youth, you got addicted to the opiates treating your pain. With the pharmacies shut down and your dealers turned undead, satisfying those cravings just got a lot more difficult.", "points": -1, "items": { "both": [ "sneakers", "socks", "jeans", "tshirt", "wristwatch", "oxycodone" ], @@ -1104,7 +1107,7 @@ "type": "profession", "ident": "heli_pilot", "name": "Helicopter Pilot", - "description": "You earned a living ferrying businessmen and tourists from helipad to helipad, the Cataclysm has grounded you, but the sky still calls you...", + "description": "You got your pilot's license, and earned a living ferrying businessmen and tourists around. The Cataclysm has grounded you for now, but the sky still calls to you…", "points": 4, "skills": [ { "level": 4, "name": "driving" }, { "level": 1, "name": "speech" }, { "level": 3, "name": "mechanics" } ], "traits": [ "PROF_HELI_PILOT" ], @@ -1121,7 +1124,7 @@ "type": "profession", "ident": "k9_cop", "name": "K9 Officer", - "description": "You spent your career busting drug smugglers with your faithful canine companion. Now the world has ended and none of that matters anymore. But at least you have a loyal friend.", + "description": "You spent your career busting drug smugglers with your faithful canine companion. Now the world has ended, and none of that matters anymore. Your loyal dog is still at your side, though, ready to face the Cataclysm with you.", "points": 4, "skills": [ { "level": 2, "name": "gun" }, { "level": 2, "name": "pistol" }, { "level": 2, "name": "survival" } ], "traits": [ "PROF_POLICE" ], @@ -1145,7 +1148,7 @@ "type": "profession", "ident": "crazy_cat_lady", "name": { "male": "Crazy Cat Dude", "female": "Crazy Cat Lady" }, - "description": "Everyone is dead? Well, it doesn't matter… your cats are all the friends you need!", + "description": "Everyone is dead? Oh well, it doesn't matter; it's not like you got along with people much anyway. Your beloved cats are all the friends you need!", "points": 5, "skills": [ { "level": 1, "name": "survival" }, { "level": 1, "name": "cooking" }, { "level": 1, "name": "tailor" } ], "pets": [ { "name": "mon_cat", "amount": 30 } ], @@ -1172,7 +1175,7 @@ "type": "profession", "ident": "cop", "name": "Police Officer", - "description": "Just a small-town deputy when you got the call, you were still ready to come to the rescue. Except that soon it was you who needed rescuing - you were lucky to escape with your life. Who's going to respect your authority when the government this badge represents might not even exist anymore?", + "description": "Just a small-town deputy, you got the call and were ready to come to the rescue. Soon it was you who needed rescuing, and you were lucky to escape with your life. Who's going to respect your authority when the government this badge represents might not even exist anymore?", "points": 2, "skills": [ { "level": 3, "name": "gun" }, { "level": 3, "name": "pistol" } ], "traits": [ "PROF_POLICE" ], @@ -1195,7 +1198,7 @@ "type": "profession", "ident": "detective", "name": "Police Detective", - "description": "You were on the brink of a major breakthrough in your last homicide case when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You need a smoke.", + "description": "You were on the brink of a major breakthrough in your latest homicide case when the Cataclysm struck. Now your prime suspect is dead. Everyone's dead. You could really use a smoke.", "points": 4, "traits": [ "PROF_PD_DET" ], "items": { @@ -1234,7 +1237,7 @@ "type": "profession", "ident": "swat", "name": "SWAT Officer", - "description": "As a member of the police force's most elite division, you are more than adequately trained and equipped to survive the brutal onslaught of the apocalypse. Unfortunately, the breakdown of society has brought you to your current state of affairs; you now fight to simply stay alive.", + "description": "As a member of the police force's most elite division, you are more than adequately trained and equipped to survive the brutal onslaught of the apocalypse. Unfortunately, the chain of command has broken down; your only mission now is to stay alive.", "points": 5, "skills": [ { "level": 3, "name": "gun" }, { "level": 3, "name": "pistol" }, { "level": 3, "name": "smg" } ], "traits": [ "PROF_SWAT" ], @@ -1263,7 +1266,7 @@ "type": "profession", "ident": "swat_heavy", "name": "SWAT CQC Specialist", - "description": "A member of the police force's most elite division, your close quarters combat training has kept you alive thus far. Unfortunately, the breakdown of society has brought you to your current state of affairs; you now fight to simply stay alive.", + "description": "As a member of the police force's most elite division, you were given special training and became an expert in close-quarters combat. Unfortunately, the chain of command has broken down; your only mission now is to stay alive.", "points": 5, "skills": [ { "level": 3, "name": "gun" }, @@ -1295,7 +1298,7 @@ "type": "profession", "ident": "sniper_police", "name": "Police Sniper", - "description": "Your skill as a sharpshooter served you well in the line of duty, protecting the innocent with a single, well placed bullet. Now survival itself is on the line, and you can't afford to miss if you don't want to end up as something's dinner.", + "description": "Your skill as a sharpshooter served you well in the line of duty, protecting the innocent with a single, well-placed bullet. Now survival itself is on the line, and you can't afford to miss if you don't want to end up as something's dinner.", "points": 5, "skills": [ { "level": 5, "name": "gun" }, { "level": 4, "name": "rifle" }, { "level": 1, "name": "pistol" } ], "traits": [ "PROF_POLICE" ], @@ -1332,7 +1335,7 @@ "type": "profession", "ident": "riot_police", "name": "Riot Control Officer", - "description": "The riots were brutal, and that's before the dead rose and started to devour the living. Soon it became apparent that the line you were holding was about to break - it was only through a bit of luck and a lot of head-bashing that you got away in one piece, and the worst is yet to come.", + "description": "The riots were brutal, and that was before the dead rose and started to devour the living. The line you were holding broke. It was only through a bit of luck and a lot of head-bashing that you got away in one piece, and the worst is yet to come.", "points": 5, "skills": [ { "level": 3, "name": "melee" }, @@ -1374,7 +1377,7 @@ "type": "profession", "ident": "salesman", "name": "Used Car Salesman", - "description": "You've been accused of being the sort of person who'd be willing to sell your own mother for a dollar. It always left you insulted - you've been around the block a time or two, and you'd charge way more than a dollar - and get it, too!", + "description": "They said you'd sell your own mother for a dollar. How dare they! You've been around the block a few times, and you'd charge way more than a dollar - and get it, too!", "points": 0, "skills": [ { "level": 4, "name": "barter" } ], "items": { @@ -1390,7 +1393,7 @@ "type": "profession", "ident": "bow_hunter", "name": "Bow Hunter", - "description": "Ever since you were a child you loved hunting, and you soon took a liking to the challenge of hunting with a bow. Why, if the world ended there's nothing you'd want at your side more than your trusty bow. So when it did, you made sure to bring it along.", + "description": "Ever since you were a child you loved hunting, and quickly developed a talent for archery. Why, if the world ended, there's nothing you'd want at your side more than your trusty bow. So, when it did, you made sure to bring it along.", "points": 2, "skills": [ { "level": 2, "name": "archery" } ], "items": { @@ -1420,7 +1423,7 @@ "type": "profession", "ident": "crossbow_hunter", "name": "Crossbow Hunter", - "description": "Ever since you were a child you loved hunting, and you soon took a liking to the challenge of hunting with a crossbow. Why, if the world ended there's nothing you'd want at your side more than your trusty crossbow. So when it did, you made sure to bring it along.", + "description": "Ever since you were a child you loved hunting, and crossbow hunting was always your favorite. Why, if the world ended, there's nothing you'd want at your side more than your trusty crossbow. So, when it did, you made sure to bring it along.", "points": 2, "skills": [ { "level": 2, "name": "rifle" } ], "items": { @@ -1441,7 +1444,7 @@ "type": "profession", "ident": "shotgun_hunter", "name": "Shotgun Hunter", - "description": "Ever since you were a child you loved hunting, and you soon took a liking to the challenge of hunting with a shotgun. Why, if the world ended there's nothing you'd want at your side more than your trusty shotgun. So when it did, you made sure to bring it along.", + "description": "Ever since you were a child you loved hunting, and one year you got a shotgun for your birthday. Why, if the world ended, there's nothing you'd want at your side more than your trusty shotgun. So, when it did, you made sure to bring it along.", "points": 2, "skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "shotgun" } ], "items": { @@ -1463,7 +1466,7 @@ "type": "profession", "ident": "rifle_hunter", "name": "Rifle Hunter", - "description": "Ever since you were a child you loved hunting, and you soon took a liking to the challenge of hunting with a rifle. Why, if the world ended there's nothing you'd want at your side more than your trusty rifle. So when it did, you made sure to bring it along.", + "description": "Ever since you were a child you loved hunting, and you fancy yourself a crack shot. Why, if the world ended, there's nothing you'd want at your side more than your trusty rifle. So, when it did, you made sure to bring it along.", "points": 2, "skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "rifle" } ], "items": { @@ -1485,7 +1488,7 @@ "type": "profession", "ident": "construction_worker", "name": { "male": "Handy Man", "female": "Handy Woman" }, - "description": "You used to work at a local hardware store, and you did a lot of home renovations yourself. Now you look out at the horizon of a ruined world, and wonder - are your meager skills, and the few supplies you grabbed on the way out, sufficient to help it rebuild?", + "description": "You used to work at a local hardware store, and you did plenty of home renovations yourself. Now you look out at the horizon of a ruined world, and wonder - are your meager skills, and the few supplies you grabbed on the way out, sufficient to help rebuild?", "points": 1, "skills": [ { "level": 2, "name": "fabrication" }, { "level": 1, "name": "lockpick" } ], "items": { @@ -1506,7 +1509,7 @@ "type": "profession", "ident": "trucker", "name": "Trucker", - "description": "You ruled the road in your big rig and managed to drive it somewhere you hoped was safe when the riots hit. Now it's just you and your trusty truck cab.", + "description": "You once ruled the road in your big rig. When the riots hit, you hopped in and drove it to safety. Now it's just you and your truck against the world.", "points": 5, "skills": [ { "level": 1, "name": "mechanics" }, { "level": 4, "name": "driving" } ], "vehicle": "semi_truck", @@ -1538,7 +1541,7 @@ "type": "profession", "ident": "backpacker", "name": "Backpacker", - "description": "You've traveled for a living, sightseeing here and there, and living off your parents' trust fund. But now they're gone, and the only thing between you and death is the open road and your backpack.", + "description": "For the past few years you've been traveling the world, sightseeing and living off your parents' trust fund. You came home to find the world in ruins, and the only thing between you and death is the open road and your backpack.", "points": 0, "items": { "both": { @@ -1553,7 +1556,7 @@ "type": "profession", "ident": "fastfoodcook", "name": "Fast Food Cook", - "description": "You used to work at a fancy fast food joint a week ago, but now you show the meaning of \"fast\" food by running for your life.", + "description": "The diners at the fancy burger joint where you work seem even more irritable and unreasonable than usual today. Time to show the meaning of fast food… by running for your life!", "points": 0, "skills": [ { "level": 1, "name": "cooking" } ], "items": { @@ -1566,7 +1569,7 @@ "type": "profession", "ident": "electrician", "name": "Electrician", - "description": "You used to work for some small-time business owners doing minor electrical work, and you just so happened to be working on one of these jokes of an evac shelter when the Cataclysm struck. Unfortunately, you didn't finish wiring anything up except the computer - fat lot of good it's doing you now.", + "description": "Small businesses often hired you for electrical work. You were halfway through your latest job when the whole power grid went dead.", "points": 1, "skills": [ { "level": 3, "name": "electronics" } ], "items": { @@ -1582,7 +1585,7 @@ "type": "profession", "ident": "hacker", "name": "Computer Hacker", - "description": "Caffeine pills and all-nighters in front of a computer screen have given you skills in an area that seem, on the face of it, distinctly less-than-useful when the world has ended. Unless you manage to find a military mainframe.", + "description": "Caffeine pills and all-nighters in front of a computer screen made you an expert. Sadly, the power's gone out, and suddenly your elite skills seem significantly less useful. Unless you manage to find a military mainframe, that is.", "points": 1, "skills": [ { "level": 4, "name": "computer" } ], "items": { @@ -1598,7 +1601,7 @@ "type": "profession", "ident": "student", "name": "Student", - "description": "You were a high school student, but the tests you'll face now will have much higher stakes. There might even be something useful in one of these books you've been lugging around all year.", + "description": "Just an average high school student, you find yourself facing a test you never studied for, and the stakes are a bit higher than geometry. Maybe there'll be something useful in one of these books you've been lugging around all year.", "points": 1, "items": { "both": { @@ -1625,7 +1628,7 @@ "type": "profession", "ident": "svictim", "name": "Shower Victim", - "description": "You were in the middle of a nice, hot shower when the Cataclysm struck! You barely managed to escape with some soap and the most massively useful thing ever… a towel.", + "description": "You just stepped out of a nice, hot shower to find the world had ended. You've got some soap, along with the most massively useful thing ever… a towel.", "points": -1, "flags": [ "NO_BONUS_ITEMS" ], "items": { "both": { "items": [ "towel_wet" ], "entries": [ { "item": "soap", "custom-flags": [ "auto_wield" ] } ] } } @@ -1634,12 +1637,13 @@ "type": "profession", "ident": "biker", "name": "Biker", - "description": "You spent most of your life on a Harley, and it's only natural you spend the rest of it riding one.", - "points": 1, + "description": "You spent most of your life on a Harley, out on the open road with your club. Now they're all dead. Time to ride or die.", + "points": 3, "skills": [ { "level": 4, "name": "driving" }, { "level": 1, "name": "mechanics" } ], + "vehicle": "motorcycle", "items": { "both": { - "items": [ "jeans", "tank_top", "chaps_leather", "socks", "boots", "bandana", "jacket_leather", "wristwatch" ], + "items": [ "jeans", "tank_top", "chaps_leather", "socks", "boots", "bandana", "jacket_leather", "wristwatch", "multitool" ], "entries": [ { "group": "charged_cell_phone" }, { "item": "sheath", "contents-item": "knife_trench" } ] }, "male": [ "boxer_shorts" ], @@ -1650,7 +1654,7 @@ "type": "profession", "ident": "dancer", "name": "Ballroom Dancer", - "description": "You used to be a ballroom dancer before the Cataclysm, and now you use your skills to save your life.", + "description": "Things got a little weird on your way to your weekly dance class. Zombies don't seem to know how to dance, but you're not about to let them step on your toes.", "points": 0, "skills": [ { "level": 2, "name": "dodge" } ], "items": { @@ -1663,7 +1667,7 @@ "type": "profession", "ident": "bionic_thief", "name": "Bionic Thief", - "description": "You have done many high profile heists, but your gains mean nothing in this world. All you have left are the tools of your trade and your impeccable style.", + "description": "Impeccable style and a few bionic tricks up your sleeve have seen you pull off a string of daring, high-profile heists. The cops would love to get their hands on you, but seem otherwise occupied.", "points": 4, "CBMs": [ "bio_batteries", "bio_lockpick", "bio_fingerhack", "bio_power_storage_mkII" ], "skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "smg" }, { "level": 3, "name": "lockpick" } ], @@ -1683,7 +1687,7 @@ "type": "profession", "ident": "bionic_patient", "name": "Bionic Patient", - "description": "When the diagnosis came back positive you signed up for a series of experimental bionic surgeries that saved your life. Now you're healthier than you ever were before, thanks to a suite of bionic systems powered by your own metabolic functions. Make the most of your second chance at life.", + "description": "When the diagnosis came back positive, you signed up for a series of experimental bionic surgeries that saved your life. Now you're healthier than you ever were before, thanks to a suite of bionic systems powered by your own metabolic functions. Make the most of your second chance at life.", "points": 5, "CBMs": [ "bio_leukocyte", "bio_blood_anal", "bio_blood_filter", "bio_nanobots", "bio_metabolics", "bio_power_storage_mkII" ], "items": { @@ -1696,7 +1700,7 @@ "type": "profession", "ident": "patient", "name": "Patient", - "description": "When the diagnosis came back positive, you were willing to fight to keep living. Now, you must renew your vow of tenacity in these new times.", + "description": "When the diagnosis came back positive, you made a vow: to fight for your life, and to never give in to despair. Now is the time to renew that vow.", "points": -2, "items": { "both": { "items": [ "jeans", "tshirt", "socks", "sneakers", "wristwatch" ], "entries": [ { "group": "charged_cell_phone" } ] }, @@ -1709,7 +1713,7 @@ "type": "profession", "ident": "mutant_patient", "name": "Unwilling Mutant", - "description": "You were a human guinea pig, used by laboratory technicians to understand the immense power of mutation.", + "description": "You were a human guinea pig, used by laboratory technicians to understand the immense power of mutation. You are determined to live on, if only to spite them for what they did to you.", "points": -1, "items": { "both": [ "subsuit_xl" ], "male": [ "briefs" ], "female": [ "bra", "panties" ] }, "flags": [ "SCEN_ONLY" ] @@ -1718,9 +1722,9 @@ "type": "profession", "ident": "mutant_volunteer", "name": "Volunteer Mutant", - "description": "Your dreams of becoming a super-human mutant through genetic alteration may have fallen a bit short, but when the Cataclysm struck, you and the scientists were ready to put your new body to the test.", + "description": "Your dreams of becoming a super-human mutant through genetic alteration may have fallen a bit short, but the scientists say you're ready. It's time for a field test.", "points": 1, - "skills": [ { "level": 2, "name": "cooking" }, { "level": 2, "name": "electronics" } ], + "skills": [ { "level": 2, "name": "chemistry" }, { "level": 2, "name": "electronics" } ], "items": { "both": [ "dress_shirt", "pants", "socks", "boots", "knit_scarf", "coat_lab", "glasses_safety", "wristwatch" ], "male": [ "briefs" ], @@ -1732,7 +1736,7 @@ "type": "profession", "ident": "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.", + "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 human now, but that might prove to be an advantage against the horrors that await.", "points": -2, "CBMs": [ "bio_dis_shock", @@ -1801,7 +1805,7 @@ "type": "profession", "ident": "bionic_athlete", "name": "Bionic Athlete", - "description": "It's a shame the apocalypse happened; you'll never get a shot at the Cyberolympics. Now the only thing between you and death by zombie is your freakish cyborg strength.", + "description": "You'll never get your shot at the Cyberolympics. All that's left of your dream is a single leftover protein shake. Well, that and your bulging, cybernetically-enhanced muscles.", "points": 5, "CBMs": [ "bio_str_enhancer", "bio_adrenaline", "bio_hydraulics", "bio_metabolics", "bio_power_storage_mkII" ], "items": { @@ -1825,7 +1829,7 @@ "type": "profession", "ident": "bionic_runner", "name": "Bionic Runner", - "description": "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.", + "description": "You were the kind of sportsman who couldn't get off the track. You love running, and you enhanced your body with cybernetics to go even faster. Now there's plenty to run from - this is your kind of game.", "points": 4, "CBMs": [ "bio_adrenaline", "bio_torsionratchet", "bio_power_storage_mkII", "bio_jointservo" ], "items": { @@ -1891,7 +1895,7 @@ "type": "profession", "ident": "bionic_firefighter", "name": "Bionic Firefighter", - "description": "As a second-generation augmented firefighter, you have been cybernetically enhanced to operate in the most dire of emergency situations. The end of the world definitely counts as a dire situation.", + "description": "As a second-generation augmented firefighter, you have been cybernetically enhanced to operate in the most dire of emergency situations. You're pretty sure this counts.", "points": 5, "CBMs": [ "bio_climate", @@ -1923,7 +1927,7 @@ "type": "profession", "ident": "bionic_mentat", "name": "Bionic Boffin", - "description": "Prior to the apocalypse you were employed by a major international corporation as a representative and technical advisor, utilizing the incredible power of your cybernetically augmented mind.", + "description": "You were employed by a major international corporation as a representative and technical advisor, utilizing the incredible power of your cybernetically augmented mind.", "points": 4, "CBMs": [ "bio_int_enhancer", "bio_face_mask", "bio_watch", "bio_memory", "bio_batteries", "bio_power_storage_mkII" ], "skills": [ { "level": 2, "name": "barter" }, { "level": 2, "name": "speech" } ], @@ -1938,7 +1942,7 @@ "type": "profession", "ident": "bio_soldier", "name": "Bionic Soldier", - "description": "You are the result of one of the military's latest and final research programs, a prototype cyborg soldier. You're still alive thanks to your augmentations, even after all your comrades fell to the undead.", + "description": "You are the result of one of the military's last research programs: a prototype cyborg soldier. The wars they expected you to fight have become obsolete, but war never changes.", "points": 6, "CBMs": [ "bio_targeting", @@ -1992,7 +1996,7 @@ "type": "profession", "ident": "bio_sniper", "name": "Bionic Sniper", - "description": "Your bionics, equipment, and extensive field training enable you to drop targets from implausible distances, even after weeks of total isolation in enemy territory.", + "description": "A top-secret military program sought to convert you into the perfect sniper. Your bionics, equipment, and extensive field training enable you to drop targets from implausible distances, even after weeks of total isolation in enemy territory.", "points": 8, "CBMs": [ "bio_eye_enhancer", @@ -2010,6 +2014,7 @@ { "level": 4, "name": "rifle" }, { "level": 2, "name": "pistol" }, { "level": 2, "name": "survival" }, + { "level": 2, "name": "chemistry" }, { "level": 1, "name": "cooking" }, { "level": 1, "name": "fabrication" } ], @@ -2046,6 +2051,7 @@ { "item": "usp_45", "ammo-item": "45_acp", "charges": 12, "container-item": "holster" }, { "item": "usp45mag", "ammo-item": "45_acp", "charges": 12 }, { "item": "usp45mag", "ammo-item": "45_acp", "charges": 12 }, + { "item": "legpouch_large" }, { "item": "tacvest", "contents-group": [ "army_mags_m2010" ] } ] }, @@ -2057,7 +2063,7 @@ "type": "profession", "ident": "bionic_spy", "name": "Bionic Agent", - "description": "Your body has several bionics worth millions of dollars, paid for by public taxes. The government has turned you into an infiltration and recon specialist: you have night vision, an alarm, lock picking capabilities and a hacking module.", + "description": "Your body conceals several bionic components, worth millions of dollars in public taxes. The government turned you into an infiltration and recon specialist: you have night vision, an alarm, lock picking capabilities and a hacking module.", "points": 4, "CBMs": [ "bio_fingerhack", @@ -2079,7 +2085,7 @@ "type": "profession", "ident": "bionic_hitman", "name": "Bionic Assassin", - "description": "The product of millions of dollars of clandestine research, you are a bionic sleeper agent capable of silently engaging your target while maintaining an innocuous appearance.", + "description": "The product of millions of dollars of clandestine research, you are a bionic sleeper agent capable of silently engaging your target while maintaining an innocuous appearance. Your handler cut all contact a week ago.", "points": 8, "CBMs": [ "bio_cqb", @@ -2103,7 +2109,7 @@ "type": "profession", "ident": "bio_gangster", "name": "Bionic Gangster", - "description": "You were the boss' favorite, their protege; they always counted on you to get the toughest jobs done. Seeing your potential, they invested in \"basic\" augments and the best gear on the market to better aid you in your job. After enjoying some period of freedom to do as you wanted, now you find yourself needing those skills to survive. ", + "description": "You were the boss's favorite, their protege; they always counted on you to get the toughest jobs done. They invested in \"basic\" augments and the best gear on the market in preparation for your biggest hit yet. Sadly, you came out of surgery to find your whole gang had been eaten.", "points": 8, "CBMs": [ "bio_targeting", @@ -2141,7 +2147,7 @@ "type": "profession", "ident": "faulty_bionic", "name": "Failed Cyborg", - "description": "Your body is a wreck of bionic parts. You have a large capacity for power, but are filled with broken bionics. At least your ethanol power supply still works.", + "description": "After a series of surgical mistakes, your body is a wreck of bionic parts. You have a large capacity for power, but are filled with broken and useless bionics. Your ethanol power supply still works, at least.", "points": -2, "CBMs": [ "bio_drain", @@ -2165,7 +2171,7 @@ "type": "profession", "ident": "bionic_customer", "name": "Commercial Cyborg", - "description": "You always had to have the latest and best gadgets and gizmos, so is it any wonder that you upgraded your flesh along with your smart phone? Only time will tell if your passion for electronics and your status as a marvel of bionic technology will be enough to ensure your survival after the apocalypse.", + "description": "You always had to have the latest and best gadgets and gizmos, so is it any wonder that you upgraded your flesh along with your smart phone?", "points": 6, "CBMs": [ "bio_flashlight", "bio_tools", "bio_ups", "bio_watch", "bio_batteries", "bio_power_storage_mkII" ], "skills": [ { "level": 4, "name": "electronics" }, { "level": 2, "name": "fabrication" } ], @@ -2191,7 +2197,7 @@ "type": "profession", "ident": "trapper", "name": "Trapper", - "description": "You spent most of your life trapping with your father. Both of you made a decent living off of your catches, and trapping tutorials. Hopefully, your skills will come in useful against less conventional game.", + "description": "You spent most of your life trapping with your father. Both of you made a decent living selling your catches and running trapping tutorials. Hopefully, your skills will come in useful against less conventional game.", "points": 2, "skills": [ { "level": 4, "name": "traps" }, { "level": 2, "name": "survival" } ], "items": { @@ -2220,7 +2226,7 @@ "type": "profession", "ident": "blacksmith", "name": "Blacksmith", - "description": "You were going through your community college's metalsmithing program when the world ended. You ran into trouble coming out of class - but managed to keep ahold of the equipment you were carrying at the time.", + "description": "You ran into trouble coming out of class at your community college's metalsmithing program, but despite the havoc you've managed to keep ahold of some of the equipment you were carrying.", "points": 1, "skills": [ { "level": 4, "name": "fabrication" } ], "items": { @@ -2236,7 +2242,7 @@ "type": "profession", "ident": "clown", "name": "Clown", - "description": "All you ever wanted was to make people laugh. Dropping out of school and performing at kids' parties was a dream come true until the world ended. There's precious few balloon animals in your future now.", + "description": "All you ever wanted was to make people laugh. Dropping out of school and performing at kids' parties was a dream come true until the world ended. There are precious few balloon animals in your future now.", "points": -1, "items": { "both": { @@ -2251,7 +2257,7 @@ "type": "profession", "ident": "lost_sub", "name": "Lost Submissive", - "description": "Early in the rush to safety, you were separated from your master by cruel fate. Now you are on your own with nothing to your name but a suit of really kinky black leather. Unfortunately, there's no safewords in the apocalypse.", + "description": "In the rush to safety, you were separated from your master by cruel fate. Now you are on your own, with nothing to your name but a suit of really kinky black leather. Unfortunately, there are no safewords in the apocalypse.", "points": -1, "flags": [ "NO_BONUS_ITEMS" ], "items": { "both": [ "bondage_suit", "bondage_mask", "boots", "leather_belt", "matches" ] } @@ -2275,7 +2281,7 @@ "type": "profession", "ident": "cosplay", "name": "Otaku", - "description": "Late nights with friends watching anime and eating snacks has prepared you for the premier anime convention in the Northeast. It just had to be the day of the apocalypse. At least you were ready in case your costume tore.", + "description": "After many late nights with friends watching anime and eating snacks, you decided to make the trip to the premier anime convention in the Northeast. Now zombies are eating everyone, and even worse, the convention is cancelled! At least you were ready in case your costume tore.", "points": 1, "skills": [ { "level": 1, "name": "tailor" } ], "items": { @@ -2316,7 +2322,7 @@ "type": "profession", "ident": "punkrockgirl", "name": { "male": "Punk Rock Dude", "female": "Punk Rock Girl" }, - "description": "The apocalypse has been your psychotic dream come true. Now that the system is dead, it's time to party among the bones of the world!", + "description": "All those wicked songs about the apocalypse have come to life. Brutal! Now that the system is dead, it's time to party among the bones of the world!", "points": 0, "items": { "both": { @@ -2341,7 +2347,7 @@ "type": "profession", "ident": "firefighter", "name": "Firefighter", - "description": "As a first responder you were direct witness to the gut-wrenching horrors of the apocalypse. Separated from most of your equipment and your unit while on call, you were forced to fight your way to safety with little more than your trusty iron and bunker gear to protect you.", + "description": "As a first responder, you were direct witness to the gut-wrenching horrors of the apocalypse. Separated from most of your equipment and your unit while on call, you were forced to fight your way to safety with little more than your trusty iron and your bunker gear to protect you.", "points": 2, "skills": [ { "level": 2, "name": "melee" }, { "level": 1, "name": "firstaid" }, { "level": 1, "name": "swimming" } ], "items": { @@ -2369,7 +2375,7 @@ "type": "profession", "ident": "skaboy", "name": { "male": "Rude Boy", "female": "Rude Girl" }, - "description": "Your ska band broke up after the drummer became a zombie, now you're alone in the Cataclysm with some cigarettes and your mp3 player.", + "description": "Your ska band broke up after the drummer became a zombie. Now you're alone in the Cataclysm with some cigarettes and your mp3 player.", "points": 0, "items": { "both": { @@ -2395,7 +2401,7 @@ "type": "profession", "ident": "postman", "name": "Mail Carrier", - "description": "Your skill at avoiding dogs and discarded children's toys while delivering the mail gives you an edge in your new role as a survivor.", + "description": "Neither snow nor rain nor heat nor dark of night stays you from delivering the mail, but nobody said anything about aliens.", "points": 1, "skills": [ { "level": 1, "name": "driving" }, { "level": 1, "name": "dodge" } ], "items": { @@ -2422,7 +2428,7 @@ "type": "profession", "ident": "convict", "name": "Convict", - "description": "The Cataclysm gave you a chance to escape, but freedom comes with a steep price.", + "description": "Your trial was contentious, but inevitably you found yourself behind bars. The Cataclysm has offered you a chance to escape, but freedom may come with a steep price.", "points": 0, "skills": [ { "level": 1, "name": "melee" }, { "level": 1, "name": "lockpick" } ], "items": { @@ -2435,8 +2441,8 @@ "type": "profession", "ident": "death_row_convict", "name": "Death Row Convict", - "description": "You were a serial killer ready to walk the green mile, but now everyone else is dead, and since true death comes only from your hands, you're in for a job.", - "points": 0, + "description": "You were a serial killer, ready to walk the green mile, but in a twist of fate you're one of the few still alive. True death comes only from your hands, so you're in for a job.", + "points": 2, "skills": [ { "level": 1, "name": "melee" } ], "traits": [ "KILLER" ], "items": { @@ -2449,7 +2455,7 @@ "type": "profession", "ident": "convict_embezzler", "name": "Embezzler", - "description": "You had a genius plan to skim fractions of cents out of your company's accounts. This plan immediately failed and got you arrested. They said you were too soft for prison, except right now they're dead and you're not.", + "description": "You had a genius plan to skim fractions of cents out of your company's accounts. This plan immediately failed and got you arrested. They said you were too soft for prison, but guess what? They're dead, and you're not.", "points": 1, "skills": [ { "level": 2, "name": "barter" }, { "level": 2, "name": "computer" } ], "items": { @@ -2465,7 +2471,7 @@ "name": "Meth Cook", "description": "You clawed your way out of poverty by selling products everyone wanted, and they had the nerve to put you in jail for it. Too bad you can't sell drugs to zombies or aliens.", "points": 1, - "skills": [ { "level": 2, "name": "cooking" }, { "level": 2, "name": "firstaid" } ], + "skills": [ { "level": 2, "name": "chemistry" }, { "level": 2, "name": "firstaid" } ], "items": { "both": { "items": [ "striped_shirt", "striped_pants", "sneakers", "socks", "adderall", "matches" ], @@ -2480,7 +2486,7 @@ "type": "profession", "ident": "convict_political", "name": "Political Prisoner", - "description": "Exposing what was going on in those labs was a noble idea. You insist you could have stopped the Cataclysm if it weren't for that misdemeanor charge.", + "description": "You did your best to expose what was going on in those labs, but they caught you and threw you in prison on trumped-up charges to silence you. Clearly, they should have listened.", "points": 1, "skills": [ { "level": 3, "name": "speech" } ], "items": { @@ -2498,7 +2504,7 @@ "ident": "convict_ratman", "name": { "male": "Rat Prince", "female": "Rat Princess" }, "description": "You probably needed psychiatric help instead of a prison sentence. At least your loyal subjects have agreed to hold the line as you make your daring escape.", - "points": 3, + "points": 4, "skills": [ { "level": 1, "name": "speech" }, { "level": 1, "name": "survival" } ], "traits": [ "ANIMALEMPATH" ], "pets": [ { "name": "mon_black_rat", "amount": 13 } ], @@ -2513,7 +2519,7 @@ "type": "profession", "ident": "burglar", "name": "Burglar", - "description": "You thought this would be your lucky break. Does it count as breaking and entering if everyone in town is undead?", + "description": "This could be your lucky break. Plenty of loot to be pilfered, and no cops to be seen. Does it count as breaking and entering if everyone in town is undead?", "points": 3, "skills": [ { "level": 4, "name": "lockpick" } ], "//": "A ski mask would fit the stereotype better, but wool allergy breaks this.", @@ -2542,7 +2548,7 @@ "type": "profession", "ident": "razorgirl", "name": { "male": "Razor Boy", "female": "Razor Girl" }, - "description": "Through a series of painful and expensive surgeries you became a walking bionic weapon, your services as a mercenary available to the highest bidder. Now that the world has ended, those bionic enhancements may spell the difference between life and death.", + "description": "Through a series of painful and expensive surgeries, you became a walking bionic weapon, your services as a mercenary available to the highest bidder.", "points": 5, "CBMs": [ "bio_razors", "bio_armor_eyes", "bio_sunglasses", "bio_dex_enhancer", "bio_ears", "bio_carbon" ], "skills": [ { "level": 2, "name": "melee" }, { "level": 2, "name": "unarmed" }, { "level": 2, "name": "dodge" } ], @@ -2566,7 +2572,7 @@ "type": "profession", "ident": "cyberjunkie", "name": "Cyberjunkie", - "description": "Long ago your lifelong infatuation with bionic enhancement lead you into a shady world of back-alley bionic clinics and self-installed secondhand CBMs. The world has moved on but your posthuman hunger still cries out to be fed; where will you get your bionic fix now?", + "description": "Long ago your lifelong infatuation with bionic enhancement lead you into a shady world of back-alley bionic clinics and self-installed secondhand CBMs. Your posthuman hunger still cries out to be fed; where will you get your bionic fix now?", "points": 0, "CBMs": [ "bio_itchy", @@ -2594,7 +2600,7 @@ "type": "profession", "ident": "cykotic", "name": "Bionic Monster", - "description": "Completely overtaken by bionic-induced psychosis, you are a deformed posthuman monster who had no place in society. But now, where once you were forced to hide in the shadows, you find in this new desolation a world where even a creature such as yourself might find its niche.", + "description": "Completely overtaken by bionic-induced psychosis, you are a deformed posthuman monster, forced to hide in the shadows. Amidst the desolation, however, even a creature such as yourself might find its niche.", "points": 2, "CBMs": [ "bio_thumbs", @@ -2640,7 +2646,7 @@ "type": "profession", "ident": "lawyer", "name": "Lawyer", - "description": "Now instead of complaining about your fees, your clients try to eat your brain. You can't tell which one is worse though.", + "description": "The jury were in the palm of your hand, but after the defendant tried to eat your brain, you were forced to flee the courtroom in disgrace. Now nobody seems to care about your objections.", "points": 1, "skills": [ { "level": 1, "name": "barter" }, { "level": 2, "name": "speech" } ], "items": { @@ -2665,7 +2671,7 @@ "type": "profession", "ident": "priest", "name": "Priest", - "description": "When the apocalypse struck, you did everything you could to protect your parish faithful, but it appears that prayers were not enough. Now that they are all dead, you should probably find something more tangible to protect you.", + "description": "Armageddon has come! You did everything you could to protect your parish faithful, but it appears that prayers were not enough. Now that they are all dead, you should probably find something more tangible to protect you.", "points": 0, "skills": [ { "level": 3, "name": "speech" } ], "items": { @@ -2697,7 +2703,7 @@ "type": "profession", "ident": "imam", "name": { "male": "Imam", "female": "Mourchida" }, - "description": "You spent much of your time prior to the apocalypse at the local mosque, studying the words of the Prophet and the Quran, and guiding your community in prayer. Back then they came from far and wide to listen to you, now they come to eat your brains.", + "description": "You spent much of your time prior to the apocalypse at the local mosque, studying the words of the Prophet and the Quran and guiding your community in prayer. Back then they came from far and wide to listen to you; now they come to eat your brains.", "points": 0, "//": "No knife, fire, or decent storage/armor. Skill points are countered.", "skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "barter" } ], @@ -2759,7 +2765,7 @@ "type": "profession", "ident": "preacher", "name": "Preacher", - "description": "You devoted your life to spreading the good word, always on the road, traveling from town to town. Now, everything has gone to hell, you can't host your daily podcast and the undead listening to your sermons don't seem particularly moved.", + "description": "You devoted your life to spreading the good word, always on the road, traveling from town to town. Now everything has gone to hell, you can't host your daily podcast, and the undead don't seem particularly moved by your sermons.", "points": 2, "//": "Storage + 2 points in skills, - no knife or fire.", "skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "driving" }, { "level": 1, "name": "computer" } ], @@ -2788,7 +2794,7 @@ "type": "profession", "ident": "blackbelt_novice", "name": "Novice Martial Artist", - "description": "You were on your way to the dojo for your first lesson when the world ended. And you really wanted to learn how to swim, too.", + "description": "You've decided today is the day to take your first lesson at the local dojo. You'll be great at it, you're sure of it.", "points": -1, "items": { "both": [ "karate_gi", "judo_belt_white", "mouthpiece", "socks_ankle", "sneakers" ], @@ -2828,7 +2834,7 @@ "type": "profession", "ident": "boxer", "name": "Boxer", - "description": "You were training for the fight of your life before the Cataclysm struck. Now you fight just to keep yourself alive.", + "description": "Your rival challenged you to the fight of your life, but now you fight just to keep yourself alive.", "points": 3, "traits": [ "PROF_BOXER" ], "skills": [ { "level": 2, "name": "melee" }, { "level": 2, "name": "unarmed" }, { "level": 2, "name": "dodge" } ], @@ -2854,7 +2860,7 @@ "type": "profession", "ident": "pizzaboy", "name": { "male": "Pizza Delivery Boy", "female": "Pizza Delivery Girl" }, - "description": "You were delivering the last pizza of the night to the local cryogenics lab when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself with only your wits and some leftover pizza. And they didn't even leave a tip!", + "description": "You were delivering the last pizza of the night to the local cryogenics lab when hungry zombies attempted to make a meal out of you. Fleeing for safety, you find yourself with only your wits and some leftover pizza. And they didn't even leave a tip!", "points": 1, "skills": [ { "level": 4, "name": "driving" }, { "level": 1, "name": "barter" }, { "level": 1, "name": "speech" } ], "items": { @@ -2882,7 +2888,7 @@ "type": "profession", "ident": "archaeologist", "name": "Archaeologist", - "description": "While on your way to a long-lost temple following a clue from your dead grandfather's journal, the ground started to shake uncontrollably. Getting a bad feeling about the situation, you head to the nearest shelter.", + "description": "Following a clue from your dead grandfather's journal, you made your way to a long-lost temple, but then the ground started to shake uncontrollably. You had a bad feeling about that, so you got out of there quickly.", "points": 3, "skills": [ { "level": 2, "name": "melee" }, { "level": 2, "name": "gun" } ], "items": { @@ -2915,7 +2921,7 @@ "type": "profession", "ident": "paperboy", "name": { "male": "Paperboy", "female": "Papergirl" }, - "description": "You were delivering the morning paper along your usual route when the Cataclysm struck. The undead hordes don't seem to value the latest news, but at least your trusty bicycle is still in working order.", + "description": "You set out this morning to deliver the news of the apocalypse. The undead hordes don't seem to value the latest news, but at least your trusty bicycle is still in working order.", "points": 3, "skills": [ { "level": 3, "name": "driving" }, { "level": 3, "name": "throw" }, { "level": 1, "name": "speech" } ], "items": { @@ -2949,7 +2955,7 @@ "type": "profession", "ident": "rollerderby", "name": "Roller Derby Player", - "description": "You were hell on wheels prior to the apocalypse. Now the rest of your team is dead, and you probably wouldn't have lived this long if not for your penchant for high-speed violence. Things are looking grim; how long can you race laps around the undead before you get blocked for good?", + "description": "You were hell on wheels. Now the rest of your team is dead, and you probably wouldn't have lived this long if not for your penchant for high-speed violence. Things are looking grim; how long can you race laps around the undead before you get blocked for good?", "points": 2, "skills": [ { "level": 1, "name": "melee" }, { "level": 1, "name": "unarmed" }, { "level": 1, "name": "dodge" } ], "traits": [ "PROF_SKATER" ], @@ -2978,7 +2984,7 @@ "type": "profession", "ident": "farmer", "name": "Farmer", - "description": "You were making a living by raising crops, when the Cataclysm struck. Now, with your trusty hoe and some seeds it's time to rebuild the Earth, one plant at a time.", + "description": "A patch of soil, some water, and sunlight were all you ever needed; why should things be any different now? With a handful of seeds and your trusty hoe, it's time to rebuild the Earth, one plant at a time.", "points": 1, "items": { "both": { @@ -3010,7 +3016,7 @@ "type": "profession", "ident": "national_guard", "name": "National Guard", - "description": "Your National Guard unit was activated when the epidemic struck. Despite your best efforts you did not manage to meet up with them before all communications ceased and you found yourself alone amongst the dead.", + "description": "The government activated your National Guard unit to deal with the growing epidemics. Despite your best efforts, you were unable to form up before all communications ceased and you found yourself alone amongst the dead.", "points": 3, "skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "firstaid" } ], "items": { @@ -3026,7 +3032,7 @@ "type": "profession", "ident": "winter_scavenger", "name": "Hardened Scavenger", - "description": "One of the lucky few who escaped the Cataclysm, you made a life for yourself on the ruins of others. Whether by force, guile, or luck, you've obtained the best gear you could find.", + "description": "One of the lucky few who escaped the Cataclysm, you made a life for yourself amidst the ruins of civilization. Whether through force, guile, or luck, you've obtained the best gear you could find.", "points": 8, "skills": [ { "level": 5, "name": "melee" }, @@ -3062,7 +3068,7 @@ "type": "profession", "ident": "winter_army", "name": "Military Holdout", - "description": "You must have paid attention to your survival training in boot camp, otherwise you would never have lived long enough to outlast the chain of command and find yourself in this predicament. The only mission left now is to survive.", + "description": "You must have paid attention to your survival training in boot camp; otherwise, you would never have lived long enough to outlast the chain of command and find yourself in this predicament. The only mission left now is to survive.", "points": 6, "skills": [ { "level": 4, "name": "survival" }, @@ -3110,7 +3116,7 @@ "type": "profession", "ident": "mall_cop", "name": "Mall Security", - "description": "A mall security guard. You don't have any useful skills, other than some basic training for your job. You do however have your trusty tazer, baton, and pocket knife.", + "description": "You spent dull nights guarding the local mall against teen hooligans and petty thieves. Your job training didn't provide any terribly useful skills, but you do have your trusty tazer, baton, and pocket knife.", "points": 0, "items": { "both": { @@ -3125,7 +3131,7 @@ "type": "profession", "ident": "naturalist", "name": "Naturalist", - "description": "You have come to an understanding with Mother Nature over long years of self-imposed exile in the wilderness. The world as they knew it might have ended for your forsaken species, but you can hardly tell the difference.", + "description": "Over long years of self-imposed exile in the wilderness, you have come to an understanding with Mother Nature. The world as they knew it might have ended for your forsaken species, but you can hardly tell the difference.", "points": 6, "skills": [ { "level": 6, "name": "survival" }, @@ -3136,6 +3142,7 @@ { "level": 3, "name": "melee" }, { "level": 2, "name": "dodge" }, { "level": 2, "name": "swimming" }, + { "level": 2, "name": "chemistry" }, { "level": 3, "name": "cooking" } ], "items": { @@ -3170,7 +3177,7 @@ "type": "profession", "ident": "fisher", "name": "Fisher", - "description": "You spent most of your days just fishing in the swamps getting by quietly on what you caught. You found the buzzing of insects enjoyable, but they got bigger and more mean. Now their horrible noises have you spooked- you just hope the fish aren't as nasty.", + "description": "You spent most of your days fishing in the swamp, getting by quietly on your catch. You found the buzzing of insects enjoyable, but recently they've gotten bigger and meaner. Now their horrible noises have you spooked - you just hope the fish aren't as nasty.", "points": 2, "skills": [ { "level": 2, "name": "swimming" }, { "level": 2, "name": "survival" } ], "items": { @@ -3312,7 +3319,7 @@ "type": "profession", "ident": "drone_op", "name": "Drone Operator", - "description": "You had a job programming machines such as automatic street cleaners, newsbots and pizza delivery drones. Now all the drones carry guns instead of pizza.", + "description": "You had a job programming machines such as automatic street cleaners, newsbots, and pizza delivery drones. Bionic implants helped you control them remotely. Now all the drones carry guns instead of pizza.", "points": 1, "CBMs": [ "bio_batteries", "bio_power_storage", "bio_remote" ], "skills": [ { "level": 2, "name": "computer" } ], @@ -3326,7 +3333,7 @@ "type": "profession", "ident": "skaterkid", "name": { "male": "Skater Boy", "female": "Skater Girl" }, - "description": "You love to skate! At least now the grown-ups aren't telling you where you can't roll.", + "description": "You love to skate! You've probably spent more time on a pair of blades than off. Things have gotten pretty bad, but at least the grown-ups aren't telling you where you can't roll.", "points": 1, "skills": [ { "level": 1, "name": "dodge" } ], "traits": [ "PROF_SKATER" ], @@ -3355,7 +3362,7 @@ "type": "profession", "ident": "jdelinquent", "name": "Juvenile Delinquent", - "description": "You never cared for grown-ups telling you what to do, and that's how you ended up spending most of your days in the principal's office. Now, not needing grown-ups to tell you what to do is the only reason you're alive. Man, you really should've played hooky today.", + "description": "You never cared for grown-ups telling you what to do, so you ended up spending quite a few days in the principal's office. Now, not needing grown-ups to tell you what to do is the only reason you're alive. Man, you really should've played hooky today.", "points": 2, "skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "dodge" }, { "level": 1, "name": "melee" } ], "items": { @@ -3423,7 +3430,7 @@ "type": "profession", "ident": "bionic_student", "name": "Bionic Student", - "description": "Your parents were so obsessed with making sure you aced every test that they had you outfitted with bionics to make you smarter and never forget anything. And now, you are facing the most dire test yet, and once again you had better succeed, or else.", + "description": "Your parents were so obsessed with making sure you aced every test that they had you outfitted with bionics to enhance your intellect and memory. Now you're facing the hardest test yet, and you're not sure if those are the right kind of tools for the job.", "points": 3, "CBMs": [ "bio_batteries", "bio_power_storage", "bio_int_enhancer", "bio_memory" ], "items": { @@ -3451,7 +3458,7 @@ "type": "profession", "ident": "dodgeball_player", "name": "Dodgeball Player", - "description": "You liked to play dodgeball, where failing to dodge the ball meant you were out. Now failing to dodge threatens your life. Don't slip up.", + "description": "In dodgeball, failing to dodge meant taking a ball to the head and being out of the game. In the Cataclysm, it means getting eaten by monsters. Don't slip up.", "points": 1, "skills": [ { "level": 1, "name": "dodge" }, { "level": 1, "name": "throw" } ], "items": { @@ -3467,12 +3474,12 @@ "type": "profession", "ident": "science_club_mem", "name": "Science Club Member", - "description": "You were a member of the school science club, and right now you're as upset as you've ever been that the school wouldn't let you play with the really fun chemicals that make things go boom. At least now no one's around to tell you that you can't.", + "description": "The school never let your club play with the really fun chemicals, the kind that make things go boom, but there aren't any teachers around to enforce the rules any more.", "points": 1, - "skills": [ { "level": 1, "name": "cooking" }, { "level": 1, "name": "mechanics" } ], + "skills": [ { "level": 1, "name": "chemistry" }, { "level": 1, "name": "mechanics" } ], "items": { "both": { - "items": [ "tshirt", "jacket_light", "jeans", "socks", "sneakers", "knit_scarf", "backpack", "textbook_chemistry", "wristwatch" ], + "items": [ "tshirt", "jacket_light", "jeans", "socks", "sneakers", "knit_scarf", "backpack", "basic_chemistry", "wristwatch" ], "entries": [ { "group": "charged_cell_phone" } ] }, "male": [ "briefs" ], @@ -3483,7 +3490,7 @@ "type": "profession", "ident": "av_club_mem", "name": "A/V Club Member", - "description": "You were a member of the school A/V club. You're sure there's some way you can use your technical skills to help stay alive. You just haven't figured out how to make an awesome death ray yet.", + "description": "You were a member of the school A/V club. You're sure there's some way you can use your technical skills to help you stay alive. You just haven't figured out how to make an awesome death ray yet.", "points": 1, "skills": [ { "level": 1, "name": "electronics" }, { "level": 1, "name": "computer" } ], "items": { @@ -3509,7 +3516,7 @@ "type": "profession", "ident": "teacher", "name": "Teacher", - "description": "You've been teaching kids for the whole of your life, and they've mostly listened to your teachings. However, the dead won't write out lines for eating you alive.", + "description": "You've been teaching kids all your life, experiencing the joy and aggravation of imparting knowledge to young minds. If zombies have any interest in education, they're not showing it.", "points": 0, "skills": [ { "level": 3, "name": "speech" } ], "items": { @@ -3536,7 +3543,7 @@ "type": "profession", "ident": "photojournalist", "name": "Photojournalist", - "description": "You were a freelance photojournalist before the end. You have a chance to be the first journalist to cover the apocalypse, though finding a publisher seems more difficult a prospect than usual. You managed to hold onto your camera, hopefully you can get some fantastic shots.", + "description": "Covering the apocalypse up close could make your career, though finding a publisher seems more difficult a prospect than usual. You managed to hold onto your camera - hopefully you can get some fantastic shots.", "points": 0, "items": { "both": { @@ -3554,7 +3561,7 @@ "type": "profession", "ident": "gym_teacher", "name": "Gym Teacher", - "description": "After a career of teaching kids the art of sports they mostly hate, the zombies around you refuse to do laps, even at the blow of your whistle.", + "description": "It was hard enough getting kids to run laps without having to worry about them trying to eat your brains. Zombies won't even line up when you blow your whistle.", "points": 3, "skills": [ { "level": 2, "name": "dodge" }, { "level": 2, "name": "speech" } ], "items": { @@ -3570,7 +3577,7 @@ "type": "profession", "ident": "camper", "name": "Camper", - "description": "You always enjoyed hiking and camping in the wilderness before everything fell apart, so it was a no-brainer to grab your bag and run when the sirens sounded. The world may be ruined, but you're prepared to make a home wherever you may find yourself.", + "description": "You always enjoyed hiking and camping in the wilderness, so it was a no-brainer to grab your bag and run when the sirens sounded. The cities are overrun, but you're prepared to make a home wherever you may find yourself.", "points": 6, "skills": [ { "level": 1, "name": "survival" }, { "level": 1, "name": "swimming" }, { "level": 1, "name": "firstaid" } ], "items": { @@ -3612,7 +3619,7 @@ "type": "profession", "ident": "miner", "name": "Miner", - "description": "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of gas, and you're on your last pair of batteries for your mining helmet...", + "description": "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of gas, and you're on your last pair of batteries for your mining helmet…", "points": 2, "items": { "both": { @@ -3645,7 +3652,7 @@ "type": "profession", "ident": "demolition_expert", "name": "Demolition Expert", - "description": "Before this all began you were having the time of your life at your dream job, blowing things up. Now you're finally allowed to do it full time. ", + "description": "Before this all began, you were having the time of your life at your dream job: blowing stuff up. The Cataclysm means you're finally allowed to do it full time. ", "skills": [ { "level": 2, "name": "fabrication" } ], "points": 3, "items": { @@ -3679,7 +3686,7 @@ "ident": "parkour_practitioner", "name": { "male": "Traceur", "female": "Traceuse" }, "description": "You've practiced parkour for many years, and made the world your playground. It wouldn't be a lie to say that running is your life. Which is good, because now that the end has come, you're running for your life.", - "points": 3, + "points": 5, "traits": [ "PARKOUR" ], "skills": [ { "level": 4, "name": "dodge" } ], "items": { @@ -3695,7 +3702,7 @@ "type": "profession", "ident": "tourist", "name": "Tourist", - "description": "You came here to get a taste of New England; Now you hope New England won't get a taste of you!", + "description": "This seemed like a great place for a holiday, but you're starting to regret ever leaving home. You came here to get a taste of New England, but New England keeps trying to get a taste of you!", "points": 1, "items": { "both": { @@ -3724,14 +3731,14 @@ "type": "profession", "ident": "naked", "name": "Naked and Afraid", - "description": "You were out filming a reality TV show in the woods and the cast and crew all seemed to have turned into zombies. Looks like it's for real now...", + "description": "You were out filming a reality TV show, naked in the woods. Strangely, the cast and crew all seem to have turned into zombies, which is pretty bad timing for you. Looks like it's for real this time…", "points": -1 }, { "type": "profession", "ident": "bionic_installer", "name": "Augmentation Associate", - "description": "When bionics first emerged, you were quick to make them into your career, and spent your days overseeing their installation. As one of the few non-zombies in the world that can calibrate an Autodoc, your skills might come in handy now that the world is over.", + "description": "When bionics first emerged, you were quick to make them into your career, and spent your days overseeing their installation. That makes you one of the few non-zombies in the world that can calibrate an Autodoc, which might come in handy.", "points": 4, "skills": [ { "level": 4, "name": "firstaid" }, { "level": 4, "name": "electronics" } ], "traits": [ "PROF_AUTODOC" ], @@ -3760,7 +3767,7 @@ "type": "profession", "ident": "game_master", "name": "Game Master", - "description": "Trying to herd cats into getting into one place every week has taught you something: it's usually better to cut your losses and trust your gut. For that reason, when you had two no-shows and the other two tried to eat you, you ditched. Maybe you can find some new players in the ruins of the world.", + "description": "Trying to herd cats into meeting up every week has taught you something: it's usually better to cut your losses and trust your gut. For that reason, when you had two no-shows and the other two tried to eat you, you ditched. Maybe you can find some new players in the ruins of the world.", "points": 2, "traits": [ "PROF_DICEMASTER" ], "skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "survival" } ], @@ -3777,7 +3784,7 @@ "type": "profession", "ident": "bionic_game_master", "name": "Bionic Game Master", - "description": "You came into a large fortune, through luck or will, and hosted games for people that most of the world knew on a first-name basis. You could afford to spoil your players, and so you did. You invested in bionics to make you smarter, and memorized the entire handbook. Let's hope that knowledge helps you now.", + "description": "You came into a large fortune, through luck or will, and hosted games for world-famous celebrities. You could afford to spoil your players, and so you did. You invested in bionics to make you smarter and memorized the entire handbook. Let's hope that knowledge helps you now.", "points": 4, "traits": [ "PROF_DICEMASTER" ], "CBMs": [ "bio_batteries", "bio_power_storage", "bio_memory", "bio_int_enhancer" ], @@ -3801,8 +3808,8 @@ "type": "profession", "ident": "zoo_keeper", "name": "Zoo Keeper", - "description": "You were called in on your day off to feed the animals at the zoo because none of your coworkers showed up for work for one reason or another.", - "points": 0, + "description": "You were called in on your day off to feed the animals at the zoo. For some reason, none of your coworkers bothered showing up for work today.", + "points": 1, "traits": [ "ANIMALEMPATH" ], "skills": [ { "level": 1, "name": "firstaid" }, { "level": 1, "name": "survival" } ], "items": { @@ -3828,7 +3835,7 @@ "type": "profession", "ident": "golfer", "name": "Golfer", - "description": "You decided to get away from the family for the day to do a little golfing by yourself.", + "description": "You decided to get away from the family for the day, so you headed to the fairway for a nice relaxing round of golf.", "points": 1, "skills": [ { "level": 2, "name": "bashing" }, { "level": 1, "name": "melee" }, { "level": 1, "name": "driving" } ], "items": { @@ -3888,7 +3895,7 @@ "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.", + "description": "You were always an inexplicable sight in town, with your funny hair and odd Japanese clothes. 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": { @@ -3902,8 +3909,8 @@ { "type": "profession", "ident": "fencer", - "name": "Competetive Fencer", - "description": "You were an avid sport fencer, always practicing at local clubs and competing in tournaments. You were on your way to have a few bouts at the club when the world ended. Now you're in your most important tournament, the refs are all dead, and none of your opponents follow the rules.", + "name": "Competitive Fencer", + "description": "Years of training prepared you for the competitive fencing circuit, but your latest tournament was cut short when zombies invaded the piste. The referee was eaten, so you're not sure if the rules are still in play.", "points": 5, "skills": [ { "level": 2, "name": "melee" }, { "level": 2, "name": "dodge" } ], "traits": [ "MARTIAL_FENCING" ], @@ -3930,7 +3937,7 @@ "ident": "politician", "name": "Career Politician", "description": "You've spent your life appealing to the people, persuading many and promising much throughout your time in office. Now that your voting base wants to eat you alive, winning hearts and minds just got that much harder.", - "points": 4, + "points": 5, "skills": [ { "level": 4, "name": "barter" }, { "level": 6, "name": "speech" } ], "traits": [ "LIAR" ], "items": { @@ -3955,7 +3962,7 @@ "type": "profession", "ident": "rancher", "name": "Rancher", - "description": "You've raised cows or horses most of your life, now we'll see what happens next.", + "description": "Taking care of cows, horses, and other animals is your passion, but the ways things are going, this isn't going to be just another day at the ranch.", "points": 2, "skills": { "level": 2, "name": "survival" }, "items": { @@ -3981,7 +3988,7 @@ "type": "profession", "ident": "roadie", "name": "Roadie", - "description": "You worked just outside of the limelight, ensuring that the performers got what they needed and that everything ran smoothly. The stakes are higher these days, but the show must go on.", + "description": "You've always worked just outside of the limelight, carrying and fixing the equipment and ensuring that the performers got what they needed. The show must go on.", "points": 3, "skills": [ { "level": 2, "name": "fabrication" }, @@ -4016,7 +4023,7 @@ "type": "profession", "ident": "musician", "name": "Musician", - "description": "You were just about to hit the stage when the Cataclysm struck. You weren't able to grab much during the panic, but at least you have your loaded six string on your back.", + "description": "You nailed your solo, but the audience erupted into screams instead of applause. You weren't able to grab much during the panic, but at least you have your loaded six string on your back.", "points": -1, "skills": [ { "level": 1, "name": "barter" }, { "level": 2, "name": "speech" } ], "items": { @@ -4048,7 +4055,7 @@ "type": "profession", "ident": "kit_survivor", "name": "Kitted Survivor", - "description": "At the local mall, you saw a sign advertising a discount on survival kits. You bought one, more for show than for actual use. Now, it's all you have.", + "description": "At the local mall, you saw a sign advertising a discount on survival kits. You bought one, more for show than for actual use. Now it's all you have.", "points": 1, "items": { "both": [ "sneakers", "socks", "jeans", "tshirt", "wristwatch", "jacket_light", "survival_kit" ], @@ -4060,7 +4067,7 @@ "type": "profession", "ident": "gunslinger", "name": "Wild West Gunslinger", - "description": "You made your living on Wild West exhibitions and shows, impressing tourists with your displays of marksmanship. But that world has ended, so you took your trusty 6-shooter and wandered into a world where it's always high noon.", + "description": "You made your living on Wild West exhibitions and shows, impressing tourists with your displays of marksmanship. But that world has ended, so you took your trusty six-shooter and wandered into a world where it's always high noon.", "points": 4, "skills": [ { "level": 4, "name": "gun" }, @@ -4096,7 +4103,7 @@ "type": "profession", "ident": "frat", "name": { "male": "Frat Boy", "female": "Sorority Girl" }, - "description": "You were living the high life, spending your parents money without a care in the world. You were at one of your usual crazy parties when the guests became hungry for more than your drugs. You still have a chance to use the last symbol of your luxurious life - your sport car - and get far away.", + "description": "You were living the high life, spending your parents' money without a care in the world. At one of your usual crazy parties, the guests became hungry for more than drugs and booze, but you still have a chance to use the last symbol of your luxurious life - your sports car - and get far away.", "points": 2, "skills": [ { "level": 1, "name": "speech" }, { "level": 2, "name": "driving" } ], "vehicle": "car_sports", diff --git a/data/json/recipes/ammo/components.json b/data/json/recipes/ammo/components.json index 61a87edd7c23e..829ad2a6fdac1 100644 --- a/data/json/recipes/ammo/components.json +++ b/data/json/recipes/ammo/components.json @@ -4,7 +4,7 @@ "type": "recipe", "category": "CC_AMMO", "subcategory": "CSC_AMMO_COMPONENTS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "15 m", "book_learn": [ [ "textbook_chemistry", 4 ], [ "recipe_bullets", 3 ], [ "textbook_anarch", 0 ] ], diff --git a/data/json/recipes/ammo/weldgas.json b/data/json/recipes/ammo/weldgas.json index f99e15b3cff12..0e756bf73dc1c 100644 --- a/data/json/recipes/ammo/weldgas.json +++ b/data/json/recipes/ammo/weldgas.json @@ -4,11 +4,11 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "45 m", "charges": 120, - "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_gaswarfare", 5 ], [ "atomic_survival", 3 ] ], + "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_gaswarfare", 4 ], [ "atomic_survival", 3 ] ], "qualities": [ { "id": "PRESSURIZATION", "level": 1 } ], "components": [ [ [ "oxygen", 24 ] ], [ [ "acetylene", 96 ] ] ] }, @@ -17,11 +17,11 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "60 m", "charges": 12, - "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_gaswarfare", 5 ], [ "atomic_survival", 3 ] ], + "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_gaswarfare", 4 ], [ "atomic_survival", 3 ] ], "tools": [ [ [ "acetylene_machine", -1 ] ] ], "components": [ [ [ "water", 12 ], [ "water_clean", 12 ] ], [ [ "chem_carbide", 326 ] ] ] }, diff --git a/data/json/recipes/armor/feet.json b/data/json/recipes/armor/feet.json index f715c2c8ea8ae..de66c42758f4c 100644 --- a/data/json/recipes/armor/feet.json +++ b/data/json/recipes/armor/feet.json @@ -63,7 +63,7 @@ "tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ], "components": [ [ [ "nomex", 8 ] ], - [ [ "kevlar_plate", 4 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], [ [ "duct_tape", 200 ] ], [ [ "nomex_socks", 1 ] ], [ [ "boots_combat", 1 ], [ "boots_steel", 1 ], [ "boots_bunker", 1 ] ] @@ -97,7 +97,7 @@ "tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ], "components": [ [ [ "plastic_chunk", 4 ] ], - [ [ "kevlar_plate", 4 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], [ [ "duct_tape", 200 ] ], [ [ "wetsuit_booties", 1 ] ], [ [ "boots_combat", 1 ], [ "boots_steel", 1 ], [ "boots_bunker", 1 ] ] @@ -119,7 +119,7 @@ [ [ "rag", 4 ] ], [ [ "leather", 4 ] ], [ [ "steel_chunk", 4 ], [ "scrap", 12 ] ], - [ [ "kevlar_plate", 4 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], [ [ "duct_tape", 100 ] ], [ [ "boots_combat", 1 ], [ "boots_steel", 1 ], [ "boots_hiking", 1 ], [ "boots_bunker", 1 ], [ "boots", 1 ] ] ] @@ -150,7 +150,7 @@ "tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ], "components": [ [ [ "rag", 8 ] ], - [ [ "kevlar_plate", 4 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], [ [ "duct_tape", 100 ] ], [ [ "boots_combat", 1 ], [ "boots_steel", 1 ], [ "boots_hiking", 1 ], [ "boots_bunker", 1 ], [ "boots", 1 ] ] ] @@ -198,7 +198,7 @@ "tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ], "components": [ [ [ "leather", 8 ], [ "tanned_hide", 2 ] ], - [ [ "kevlar_plate", 4 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], [ [ "duct_tape", 100 ] ], [ [ "boots_combat", 1 ], [ "boots_steel", 1 ], [ "boots_hiking", 1 ], [ "boots_bunker", 1 ], [ "boots", 1 ] ] ] @@ -241,7 +241,7 @@ "tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ], "components": [ [ [ "fur", 12 ], [ "tanned_pelt", 2 ] ], - [ [ "kevlar_plate", 4 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], [ [ "duct_tape", 100 ] ], [ [ "boots_combat", 1 ], [ "boots_steel", 1 ], [ "boots_hiking", 1 ], [ "boots_bunker", 1 ], [ "boots", 1 ] ] ] @@ -262,7 +262,7 @@ [ [ "leather", 24 ], [ "tanned_hide", 4 ] ], [ [ "rag", 6 ] ], [ [ "scrap", 4 ] ], - [ [ "boots_combat", 2 ], [ "kevlar_plate", 10 ] ], + [ [ "boots_combat", 2 ], [ "sheet_kevlar_layered", 10 ] ], [ [ "duct_tape", 200 ] ] ] }, diff --git a/data/json/recipes/armor/hands.json b/data/json/recipes/armor/hands.json index a822c50c63d5e..c7b6d6823d70c 100644 --- a/data/json/recipes/armor/hands.json +++ b/data/json/recipes/armor/hands.json @@ -101,7 +101,7 @@ [ [ "nomex", 6 ] ], [ [ "leather", 2 ] ], [ [ "duct_tape", 120 ] ], - [ [ "gloves_tactical", 1 ], [ "kevlar_plate", 4 ] ], + [ [ "gloves_tactical", 1 ], [ "sheet_kevlar_layered", 4 ] ], [ [ "nomex_gloves", 1 ], [ "fire_gauntlets", 1 ] ] ] }, @@ -134,7 +134,7 @@ "components": [ [ [ "plastic_chunk", 4 ] ], [ [ "duct_tape", 120 ] ], - [ [ "gloves_tactical", 1 ], [ "kevlar_plate", 4 ] ], + [ [ "gloves_tactical", 1 ], [ "sheet_kevlar_layered", 4 ] ], [ [ "wetsuit_gloves", 1 ] ] ] }, @@ -155,7 +155,7 @@ [ [ "leather", 2 ] ], [ [ "scrap", 4 ] ], [ [ "duct_tape", 50 ] ], - [ [ "gloves_tactical", 1 ], [ "kevlar_plate", 4 ] ], + [ [ "gloves_tactical", 1 ], [ "sheet_kevlar_layered", 4 ] ], [ [ "gloves_leather", 1 ], [ "gloves_light", 1 ], @@ -218,7 +218,7 @@ [ [ "rag", 6 ] ], [ [ "leather", 2 ] ], [ [ "duct_tape", 80 ] ], - [ [ "gloves_tactical", 1 ], [ "kevlar_plate", 4 ] ], + [ [ "gloves_tactical", 1 ], [ "sheet_kevlar_layered", 4 ] ], [ [ "gloves_leather", 1 ], [ "gloves_light", 1 ], @@ -269,7 +269,7 @@ [ [ "rag", 2 ] ], [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], [ [ "duct_tape", 80 ] ], - [ [ "gloves_tactical", 1 ], [ "kevlar_plate", 4 ] ], + [ [ "gloves_tactical", 1 ], [ "sheet_kevlar_layered", 4 ] ], [ [ "gloves_leather", 1 ], [ "gloves_light", 1 ], @@ -367,7 +367,7 @@ [ [ "rag", 2 ] ], [ [ "fur", 8 ], [ "tanned_pelt", 1 ] ], [ [ "duct_tape", 80 ] ], - [ [ "gloves_tactical", 1 ], [ "kevlar_plate", 4 ] ], + [ [ "gloves_tactical", 1 ], [ "sheet_kevlar_layered", 4 ] ], [ [ "gloves_leather", 1 ], [ "gloves_light", 1 ], @@ -394,7 +394,7 @@ [ [ "rag", 6 ] ], [ [ "scrap", 2 ] ], [ [ "duct_tape", 160 ] ], - [ [ "gloves_tactical", 2 ], [ "kevlar_plate", 6 ] ] + [ [ "gloves_tactical", 2 ], [ "sheet_kevlar_layered", 6 ] ] ] }, { diff --git a/data/json/recipes/armor/head.json b/data/json/recipes/armor/head.json index 8a69481884dcd..9c6d9e9f2bc27 100644 --- a/data/json/recipes/armor/head.json +++ b/data/json/recipes/armor/head.json @@ -491,7 +491,7 @@ [ [ "hat_ball", 1 ], [ "hat_boonie", 1 ] ], [ [ "mask_filter", 1 ] ], [ [ "glasses_bal", 1 ], [ "goggles_ski", 1 ] ], - [ [ "kevlar_plate", 8 ] ] + [ [ "sheet_kevlar_layered", 8 ] ] ] }, { @@ -521,7 +521,7 @@ "book_learn": [ [ "textbook_fireman", 7 ] ], "using": [ [ "sewing_standard", 40 ] ], "tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ], - "components": [ [ [ "nomex", 8 ] ], [ [ "kevlar_plate", 4 ] ], [ [ "nomex_hood", 1 ] ], [ [ "duct_tape", 100 ] ] ] + "components": [ [ [ "nomex", 8 ] ], [ [ "sheet_kevlar_layered", 4 ] ], [ [ "nomex_hood", 1 ] ], [ [ "duct_tape", 100 ] ] ] }, { "result": "hood_h20survivor", @@ -535,7 +535,7 @@ "autolearn": true, "using": [ [ "sewing_standard", 40 ] ], "tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ], - "components": [ [ [ "plastic_chunk", 4 ] ], [ [ "kevlar_plate", 4 ] ], [ [ "wetsuit_hood", 1 ] ], [ [ "duct_tape", 100 ] ] ] + "components": [ [ [ "plastic_chunk", 4 ] ], [ [ "sheet_kevlar_layered", 4 ] ], [ [ "wetsuit_hood", 1 ] ], [ [ "duct_tape", 100 ] ] ] }, { "result": "hood_lsurvivor", @@ -549,7 +549,12 @@ "autolearn": true, "using": [ [ "sewing_standard", 40 ] ], "tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ], - "components": [ [ [ "rag", 8 ] ], [ [ "kevlar_plate", 4 ] ], [ [ "hood_rain", 1 ], [ "bag_plastic", 2 ] ], [ [ "duct_tape", 100 ] ] ] + "components": [ + [ [ "rag", 8 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], + [ [ "hood_rain", 1 ], [ "bag_plastic", 2 ] ], + [ [ "duct_tape", 100 ] ] + ] }, { "result": "hood_rain", @@ -578,7 +583,7 @@ "components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], [ [ "rag", 2 ] ], - [ [ "kevlar_plate", 4 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], [ [ "hood_rain", 1 ], [ "bag_plastic", 2 ] ], [ [ "duct_tape", 100 ] ] ] @@ -598,7 +603,7 @@ "components": [ [ [ "fur", 8 ], [ "tanned_pelt", 1 ] ], [ [ "rag", 2 ] ], - [ [ "kevlar_plate", 4 ] ], + [ [ "sheet_kevlar_layered", 4 ] ], [ [ "hood_rain", 1 ], [ "bag_plastic", 2 ] ], [ [ "duct_tape", 100 ] ] ] @@ -619,7 +624,7 @@ [ [ "leather", 14 ], [ "tanned_hide", 3 ] ], [ [ "rag", 4 ] ], [ [ "scrap", 2 ] ], - [ [ "kevlar_plate", 6 ] ], + [ [ "sheet_kevlar_layered", 6 ] ], [ [ "hood_rain", 2 ], [ "bag_plastic", 4 ] ], [ [ "duct_tape", 200 ] ] ] @@ -742,7 +747,7 @@ "book_learn": [ [ "textbook_fireman", 7 ], [ "atomic_survival", 8 ], [ "textbook_gaswarfare", 9 ] ], "using": [ [ "adhesive", 2 ], [ "sewing_standard", 20 ] ], "tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ], - "components": [ [ [ "mask_bunker", 1 ] ], [ [ "nomex", 4 ] ], [ [ "mask_bal", 1 ], [ "kevlar_plate", 4 ] ] ] + "components": [ [ [ "mask_bunker", 1 ] ], [ [ "nomex", 4 ] ], [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 4 ] ] ] }, { "result": "mask_fsurvivorxl", @@ -757,7 +762,7 @@ "book_learn": [ [ "textbook_fireman", 7 ], [ "atomic_survival", 8 ], [ "textbook_gaswarfare", 9 ] ], "using": [ [ "adhesive", 2 ], [ "sewing_standard", 20 ] ], "tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ], - "components": [ [ [ "mask_bunker", 1 ] ], [ [ "nomex", 8 ] ], [ [ "mask_bal", 1 ], [ "kevlar_plate", 6 ] ] ] + "components": [ [ [ "mask_bunker", 1 ] ], [ [ "nomex", 8 ] ], [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 6 ] ] ] }, { "result": "mask_gas", @@ -845,7 +850,7 @@ [ [ "rebreather", 1 ] ], [ [ "goggles_swim", 1 ] ], [ [ "plastic_chunk", 4 ] ], - [ [ "mask_bal", 1 ], [ "kevlar_plate", 4 ] ] + [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 4 ] ] ] }, { @@ -864,7 +869,7 @@ [ [ "rebreather", 1 ] ], [ [ "goggles_swim", 1 ] ], [ [ "plastic_chunk", 8 ] ], - [ [ "mask_bal", 1 ], [ "kevlar_plate", 6 ] ] + [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 6 ] ] ] }, { @@ -884,7 +889,7 @@ [ [ "mask_filter", 2 ], [ "mask_gas", 1 ], [ "mask_bunker", 1 ] ], [ [ "glasses_safety", 2 ], [ "glasses_bal", 1 ] ], [ [ "scrap", 3 ] ], - [ [ "mask_bal", 1 ], [ "kevlar_plate", 4 ] ] + [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 4 ] ] ] }, { @@ -903,7 +908,7 @@ [ [ "mask_filter", 2 ], [ "mask_gas", 1 ], [ "mask_bunker", 1 ] ], [ [ "glasses_safety", 2 ], [ "glasses_bal", 1 ] ], [ [ "rag", 3 ] ], - [ [ "mask_bal", 1 ], [ "kevlar_plate", 4 ] ] + [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 4 ] ] ] }, { @@ -946,7 +951,7 @@ [ [ "mask_filter", 2 ], [ "mask_gas", 1 ], [ "mask_bunker", 1 ] ], [ [ "glasses_safety", 2 ], [ "glasses_bal", 1 ] ], [ [ "leather", 3 ] ], - [ [ "mask_bal", 1 ], [ "kevlar_plate", 4 ] ] + [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 4 ] ] ] }, { @@ -965,7 +970,7 @@ [ [ "mask_filter", 2 ], [ "mask_gas", 1 ], [ "mask_bunker", 1 ] ], [ [ "glasses_safety", 2 ], [ "glasses_bal", 1 ] ], [ [ "leather", 6 ] ], - [ [ "mask_bal", 1 ], [ "kevlar_plate", 6 ] ] + [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 6 ] ] ] }, { @@ -983,7 +988,7 @@ "components": [ [ [ "mask_filter", 2 ], [ "mask_gas", 1 ], [ "mask_bunker", 1 ] ], [ [ "glasses_safety", 2 ], [ "glasses_bal", 1 ] ], - [ [ "mask_bal", 1 ], [ "kevlar_plate", 4 ] ], + [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 4 ] ], [ [ "fur", 6 ], [ "tanned_pelt", 1 ] ] ] }, @@ -1002,7 +1007,7 @@ "components": [ [ [ "mask_filter", 2 ], [ "mask_gas", 1 ], [ "mask_bunker", 1 ] ], [ [ "glasses_safety", 2 ], [ "glasses_bal", 1 ] ], - [ [ "mask_bal", 1 ], [ "kevlar_plate", 4 ] ], + [ [ "mask_bal", 1 ], [ "sheet_kevlar_layered", 4 ] ], [ [ "fur", 12 ], [ "tanned_pelt", 2 ] ] ] }, @@ -1233,7 +1238,7 @@ ], [ [ "glasses_safety", 2 ], [ "glasses_bal", 1 ] ], [ [ "leather", 3 ] ], - [ [ "kevlar_plate", 2 ] ] + [ [ "sheet_kevlar_layered", 2 ] ] ] }, { diff --git a/data/json/recipes/armor/legs.json b/data/json/recipes/armor/legs.json index 31c5d2e5167d1..a135a11a18f31 100644 --- a/data/json/recipes/armor/legs.json +++ b/data/json/recipes/armor/legs.json @@ -211,7 +211,7 @@ "skill_used": "tailor", "difficulty": 4, "time": "90 m", - "book_learn": [ [ "scots_cookbook", 4 ] ], + "book_learn": [ [ "scots_tailor", 4 ], [ "scots_cookbook", 7 ] ], "using": [ [ "sewing_standard", 30 ] ], "components": [ [ [ "felt_patch", 18 ] ] ] }, @@ -425,7 +425,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 50 ] ], - [ [ "kevlar_plate", 8 ] ] + [ [ "sheet_kevlar_layered", 8 ] ] ] }, { @@ -517,7 +517,7 @@ "using": [ [ "sewing_standard", 100 ] ], "components": [ [ [ "pants_army", 1 ], [ "pants_cargo", 1 ], [ "shorts_cargo", 1 ] ], - [ [ "kevlar", 1 ], [ "kevlar_plate", 12 ] ], + [ [ "kevlar", 1 ], [ "sheet_kevlar_layered", 12 ] ], [ [ "rag", 12 ] ], [ [ "tacvest", 1 ], diff --git a/data/json/recipes/armor/other.json b/data/json/recipes/armor/other.json index 829d225759a57..a2100a0222fb0 100644 --- a/data/json/recipes/armor/other.json +++ b/data/json/recipes/armor/other.json @@ -238,7 +238,7 @@ "subcategory": "CSC_OTHER_OTHER", "skill_used": "fabrication", "difficulty": 5, - "skills_required": [ "cooking", 1 ], + "skills_required": [ "chemistry", 1 ], "time": "60 m", "reversible": true, "decomp_learn": 4, @@ -297,7 +297,7 @@ "subcategory": "CSC_OTHER_OTHER", "skill_used": "fabrication", "difficulty": 5, - "skills_required": [ "cooking", 1 ], + "skills_required": [ "chemistry", 1 ], "time": "60 m", "reversible": true, "decomp_learn": 4, diff --git a/data/json/recipes/armor/pets_horse.json b/data/json/recipes/armor/pets_horse.json index a020d119a8d9d..2fb9e1057eb80 100644 --- a/data/json/recipes/armor/pets_horse.json +++ b/data/json/recipes/armor/pets_horse.json @@ -47,7 +47,7 @@ "time": "210 m", "autolearn": true, "using": [ [ "sewing_standard", 190 ] ], - "components": [ [ [ "kevlar_plate", 56 ] ], [ [ "rag", 42 ] ], [ [ "leather", 24 ], [ "tanned_hide", 24 ] ] ] + "components": [ [ [ "sheet_kevlar_layered", 56 ] ], [ [ "rag", 42 ] ], [ [ "leather", 24 ], [ "tanned_hide", 24 ] ] ] }, { "result": "leather_armor_horse", @@ -115,8 +115,8 @@ "id_suffix": "from_scratch", "category": "CC_ANIMALS", "subcategory": "CSC_ANIMALS_EQUINE ARMOR", - "skill_used": "cooking", - "difficulty": 3, + "skill_used": "chemistry", + "difficulty": 4, "skills_required": [ "tailor", 6 ], "time": "525 m", "book_learn": [ diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json index a4295f4551334..b646b7c2aa211 100644 --- a/data/json/recipes/armor/suit.json +++ b/data/json/recipes/armor/suit.json @@ -14,7 +14,7 @@ "components": [ [ [ "cleansuit", 1 ] ], [ [ "duct_tape", 600 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ], + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ], [ [ "plastic_sheet", 1 ] ] ] }, @@ -33,7 +33,7 @@ "components": [ [ [ "hazmat_suit", 1 ] ], [ [ "duct_tape", 800 ] ], - [ [ "swat_armor", 1 ], [ "kevlar_plate", 48 ] ], + [ [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 48 ] ], [ [ "plastic_sheet", 1 ] ] ] }, @@ -42,8 +42,8 @@ "type": "recipe", "category": "CC_ARMOR", "subcategory": "CSC_ARMOR_SUIT", - "skill_used": "cooking", - "difficulty": 3, + "skill_used": "chemistry", + "difficulty": 4, "skills_required": [ "tailor", 3 ], "time": "1 h", "book_learn": [ @@ -255,7 +255,7 @@ [ [ "fanny", 2 ], [ "dump_pouch", 1 ] ], [ [ "tool_belt", 1 ], [ "legrig", 1 ] ], [ [ "pants_army", 1 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ] ] }, { @@ -424,9 +424,9 @@ "tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ], "components": [ [ [ "nomex", 40 ] ], - [ [ "kevlar_plate", 8 ] ], + [ [ "sheet_kevlar_layered", 8 ] ], [ [ "duct_tape", 200 ], [ "superglue", 5 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ] ] }, { @@ -458,7 +458,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 200 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ] ] }, { @@ -501,7 +501,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 400 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ] ] }, { @@ -533,7 +533,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 300 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ] ] }, { @@ -612,7 +612,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 200 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ] ] }, { @@ -668,7 +668,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 300 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ] ] }, { @@ -812,7 +812,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 300 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "swat_armor", 1 ], [ "sheet_kevlar_layered", 24 ] ] ] }, { @@ -844,7 +844,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 400 ] ], - [ [ "kevlar", 2 ], [ "ballistic_vest_empty", 2 ], [ "swat_armor", 2 ], [ "kevlar_plate", 48 ] ] + [ [ "kevlar", 2 ], [ "ballistic_vest_empty", 2 ], [ "swat_armor", 2 ], [ "sheet_kevlar_layered", 48 ] ] ] }, { @@ -876,7 +876,7 @@ [ "fanny", 2 ] ], [ [ "duct_tape", 400 ] ], - [ [ "kevlar", 2 ], [ "ballistic_vest_empty", 2 ], [ "swat_armor", 2 ], [ "kevlar_plate", 42 ] ] + [ [ "kevlar", 2 ], [ "ballistic_vest_empty", 2 ], [ "swat_armor", 2 ], [ "sheet_kevlar_layered", 42 ] ] ] }, { diff --git a/data/json/recipes/armor/torso.json b/data/json/recipes/armor/torso.json index e6729842e512a..82e5b57534c18 100644 --- a/data/json/recipes/armor/torso.json +++ b/data/json/recipes/armor/torso.json @@ -292,7 +292,7 @@ "components": [ [ [ "coat_rain", 1 ] ], [ [ "duster", 1 ], [ "jacket_army", 1 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "kevlar_plate", 16 ] ], + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "sheet_kevlar_layered", 16 ] ], [ [ "rag", 19 ] ], [ [ "tacvest", 1 ], @@ -698,7 +698,7 @@ "components": [ [ [ "coat_rain", 1 ] ], [ [ "duster", 1 ], [ "jacket_army", 1 ], [ "sleeveless_duster", 1 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "kevlar_plate", 13 ] ], + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "sheet_kevlar_layered", 13 ] ], [ [ "rag", 14 ] ], [ [ "tacvest", 1 ], @@ -843,7 +843,7 @@ "components": [ [ [ "coat_rain", 1 ] ], [ [ "trenchcoat", 1 ], [ "jacket_army", 1 ], [ "sleeveless_trenchcoat", 1 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "kevlar_plate", 10 ] ], + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "sheet_kevlar_layered", 10 ] ], [ [ "rag", 11 ] ], [ [ "tacvest", 1 ], @@ -1037,7 +1037,7 @@ "components": [ [ [ "coat_rain", 1 ] ], [ [ "trenchcoat", 1 ], [ "jacket_army", 1 ] ], - [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "kevlar_plate", 12 ] ], + [ [ "kevlar", 1 ], [ "ballistic_vest_empty", 1 ], [ "sheet_kevlar_layered", 12 ] ], [ [ "rag", 14 ] ], [ [ "tacvest", 1 ], @@ -1139,7 +1139,7 @@ "decomp_learn": 6, "autolearn": true, "using": [ [ "sewing_standard", 54 ] ], - "components": [ [ [ "kevlar_plate", 43 ] ] ] + "components": [ [ [ "sheet_kevlar_layered", 43 ] ] ] }, { "result": "vest_leather", diff --git a/data/json/recipes/chem/fuel.json b/data/json/recipes/chem/fuel.json index 89b643aea3a45..ae77278af0984 100644 --- a/data/json/recipes/chem/fuel.json +++ b/data/json/recipes/chem/fuel.json @@ -5,8 +5,8 @@ "byproducts": [ [ "water_clean" ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_FUEL", - "skill_used": "cooking", - "difficulty": 5, + "skill_used": "chemistry", + "difficulty": 4, "time": "30 m", "book_learn": [ [ "textbook_chemistry" ], [ "brewing_cookbook", 4 ] ], "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ], @@ -27,8 +27,8 @@ "byproducts": [ [ "water_clean" ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_FUEL", - "skill_used": "cooking", - "difficulty": 3, + "skill_used": "chemistry", + "difficulty": 4, "time": "30 m", "book_learn": [ [ "textbook_chemistry" ], [ "brewing_cookbook" ] ], "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 1 } ], @@ -48,8 +48,8 @@ "type": "recipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_FUEL", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 5, "result_mult": 4, "time": "420 m", "book_learn": [ [ "textbook_biodiesel", 5 ] ], @@ -78,8 +78,8 @@ "type": "recipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_FUEL", - "skill_used": "cooking", - "difficulty": 2, + "skill_used": "chemistry", + "difficulty": 3, "time": "30 m", "batch_time_factors": [ 80, 4 ], "autolearn": true, diff --git a/data/json/recipes/chem/mutagens.json b/data/json/recipes/chem/mutagens.json index 5b9d12cb522af..5cafd8da8cfe9 100644 --- a/data/json/recipes/chem/mutagens.json +++ b/data/json/recipes/chem/mutagens.json @@ -4,17 +4,17 @@ "result": "mutagen", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 8, + "difficulty": 6, "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ - [ "recipe_creepy", 8 ], - [ "recipe_animal", 8 ], - [ "recipe_maiar", 7 ], - [ "recipe_serum", 7 ], - [ "recipe_labchem", 7 ] + [ "recipe_creepy", 6 ], + [ "recipe_animal", 6 ], + [ "recipe_maiar", 5 ], + [ "recipe_serum", 5 ], + [ "recipe_labchem", 5 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ @@ -51,12 +51,12 @@ "result": "iv_mutagen", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_labchem", 9 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_labchem", 7 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen", 2 ] ] ], "flags": [ "SECRET" ] @@ -66,12 +66,12 @@ "result": "mutagen_plant", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_creepy", 8 ] ], + "book_learn": [ [ "recipe_creepy", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], @@ -85,12 +85,12 @@ "result": "iv_mutagen_plant", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_creepy", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_plant", 2 ] ] ], "flags": [ "SECRET" ] @@ -100,12 +100,12 @@ "result": "mutagen_insect", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_maiar", 8 ] ], + "book_learn": [ [ "recipe_maiar", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], @@ -119,12 +119,12 @@ "result": "iv_mutagen_insect", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_maiar", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_insect", 2 ] ] ], "flags": [ "SECRET" ] @@ -134,12 +134,12 @@ "result": "mutagen_spider", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_maiar", 8 ] ], + "book_learn": [ [ "recipe_maiar", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "spider_egg", 1 ], [ "chitin_piece", 4 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -149,12 +149,12 @@ "result": "iv_mutagen_spider", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_maiar", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_spider", 2 ] ] ], "flags": [ "SECRET" ] @@ -164,12 +164,12 @@ "result": "mutagen_slime", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_maiar", 8 ], [ "recipe_creepy", 8 ] ], + "book_learn": [ [ "recipe_maiar", 6 ], [ "recipe_creepy", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "sewage", 3 ], [ "slime_scrap", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -179,12 +179,12 @@ "result": "iv_mutagen_slime", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ], [ "recipe_creepy", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_maiar", 6 ], [ "recipe_creepy", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_slime", 2 ] ] ], "flags": [ "SECRET" ] @@ -194,12 +194,12 @@ "result": "mutagen_fish", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_animal", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], @@ -213,12 +213,12 @@ "result": "iv_mutagen_fish", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_fish", 2 ] ] ], "flags": [ "SECRET" ] @@ -228,12 +228,12 @@ "result": "mutagen_rat", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_creepy", 8 ] ], + "book_learn": [ [ "recipe_creepy", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], @@ -247,12 +247,12 @@ "result": "iv_mutagen_rat", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_creepy", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_rat", 2 ] ] ], "flags": [ "SECRET" ] @@ -262,12 +262,12 @@ "result": "mutagen_beast", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 7 ] ], + "book_learn": [ [ "recipe_animal", 5 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -277,12 +277,12 @@ "result": "iv_mutagen_beast", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_beast", 2 ] ] ], "flags": [ "SECRET" ] @@ -292,12 +292,12 @@ "result": "mutagen_ursine", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_animal", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -307,12 +307,12 @@ "result": "iv_mutagen_ursine", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_ursine", 2 ] ] ], "flags": [ "SECRET" ] @@ -322,12 +322,12 @@ "result": "mutagen_mouse", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_animal", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 1 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -337,12 +337,12 @@ "result": "iv_mutagen_mouse", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_mouse", 2 ] ] ], "flags": [ "SECRET" ] @@ -352,12 +352,12 @@ "result": "mutagen_feline", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_animal", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -367,12 +367,12 @@ "result": "iv_mutagen_feline", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_feline", 2 ] ] ], "flags": [ "SECRET" ] @@ -382,12 +382,12 @@ "result": "mutagen_lupine", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_animal", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -397,12 +397,12 @@ "result": "iv_mutagen_lupine", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_lupine", 2 ] ] ], "flags": [ "SECRET" ] @@ -412,12 +412,12 @@ "result": "mutagen_cattle", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_animal", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -427,12 +427,12 @@ "result": "iv_mutagen_cattle", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_cattle", 2 ] ] ], "flags": [ "SECRET" ] @@ -442,12 +442,12 @@ "result": "mutagen_cephalopod", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_creepy", 8 ] ], + "book_learn": [ [ "recipe_creepy", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], @@ -461,12 +461,12 @@ "result": "iv_mutagen_cephalopod", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_creepy", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_cephalopod", 2 ] ] ], "flags": [ "SECRET" ] @@ -476,12 +476,12 @@ "result": "mutagen_bird", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_animal", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "eggs_bird", 1, "LIST" ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -491,12 +491,12 @@ "result": "iv_mutagen_bird", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_bird", 2 ] ] ], "flags": [ "SECRET" ] @@ -506,12 +506,12 @@ "result": "mutagen_lizard", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_animal", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "egg_reptile", 1 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -521,12 +521,12 @@ "result": "iv_mutagen_lizard", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_animal", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_lizard", 2 ] ] ], "flags": [ "SECRET" ] @@ -536,12 +536,12 @@ "result": "mutagen_troglobite", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_maiar", 8 ] ], + "book_learn": [ [ "recipe_maiar", 6 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] @@ -551,12 +551,12 @@ "result": "iv_mutagen_troglobite", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 9, + "difficulty": 7, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ], + "book_learn": [ [ "recipe_serum", 6 ], [ "recipe_maiar", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_troglobite", 2 ] ] ], "flags": [ "SECRET" ] @@ -566,12 +566,12 @@ "result": "mutagen_medical", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "recipe_medicalmut", 9 ] ], + "book_learn": [ [ "recipe_medicalmut", 7 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 1 ] ], @@ -601,12 +601,12 @@ "result": "iv_mutagen_medical", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_medicalmut", 9 ], [ "recipe_serum", 9 ] ], + "book_learn": [ [ "recipe_medicalmut", 7 ], [ "recipe_serum", 7 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_medical", 2 ] ] ], "flags": [ "SECRET" ] @@ -616,12 +616,12 @@ "result": "purifier", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 9, + "difficulty": 7, "time": "45 m", "batch_time_factors": [ 80, 20 ], - "book_learn": [ [ "record_patient", 9 ], [ "recipe_maiar", 8 ], [ "recipe_labchem", 7 ] ], + "book_learn": [ [ "record_patient", 7 ], [ "recipe_maiar", 6 ], [ "recipe_labchem", 5 ] ], "using": [ [ "mutagen_production_standard", 25 ] ], "components": [ [ [ "mutagen", 2 ] ], [ [ "bleach", 3 ], [ "oxy_powder", 300 ] ], [ [ "ammonia", 2 ], [ "lye_powder", 200 ] ] ], "flags": [ "SECRET" ] @@ -631,12 +631,12 @@ "result": "iv_purifier", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_serum", 9 ], [ "recipe_labchem", 9 ] ], + "book_learn": [ [ "recipe_serum", 7 ], [ "recipe_labchem", 7 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "purifier", 2 ] ] ], "flags": [ "SECRET" ] @@ -646,11 +646,11 @@ "result": "mutagen_alpha", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 10, + "difficulty": 8, "time": "20 m", - "book_learn": [ [ "recipe_alpha", 9 ] ], + "book_learn": [ [ "recipe_alpha", 7 ] ], "using": [ [ "mutagen_production_standard", 50 ] ], "components": [ [ [ "mutagen_slime", 2 ], [ "iv_mutagen_slime", 1 ] ], @@ -665,12 +665,12 @@ "result": "iv_mutagen_alpha", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_alpha", 9 ] ], + "book_learn": [ [ "recipe_alpha", 7 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_alpha", 2 ] ] ], "flags": [ "SECRET" ] @@ -680,11 +680,11 @@ "result": "mutagen_elfa", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 10, + "difficulty": 8, "time": "12 m", - "book_learn": [ [ "recipe_elfa", 10 ] ], + "book_learn": [ [ "recipe_elfa", 8 ] ], "using": [ [ "mutagen_production_standard", 31 ] ], "components": [ [ [ "mutagen_slime", 2 ], [ "iv_mutagen_slime", 1 ] ], [ [ "mutagen_plant", 1 ] ], [ [ "mutagen_bird", 1 ] ] ], "flags": [ "SECRET" ] @@ -694,12 +694,12 @@ "result": "iv_mutagen_elfa", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_elfa", 10 ] ], + "book_learn": [ [ "recipe_elfa", 8 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_elfa", 2 ] ] ], "flags": [ "SECRET" ] @@ -709,12 +709,12 @@ "result": "mutagen_chimera", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_chimera", 9 ] ], + "book_learn": [ [ "recipe_chimera", 7 ] ], "using": [ [ "mutagen_production_standard", 37 ] ], "components": [ [ [ "mutagen_lizard", 1 ] ], [ [ "mutagen_bird", 1 ] ], [ [ "mutagen_beast", 1 ] ], [ [ "mutagen_cattle", 1 ] ] ], "flags": [ "SECRET" ] @@ -724,12 +724,12 @@ "result": "iv_mutagen_chimera", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_chimera", 8 ] ], + "book_learn": [ [ "recipe_chimera", 6 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_chimera", 2 ] ] ], "flags": [ "SECRET" ] @@ -739,11 +739,11 @@ "result": "mutagen_raptor", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 10, + "difficulty": 8, "time": "12 m", - "book_learn": [ [ "recipe_raptor", 9 ] ], + "book_learn": [ [ "recipe_raptor", 7 ] ], "using": [ [ "mutagen_production_standard", 31 ] ], "components": [ [ [ "mutagen_lizard", 1 ] ], [ [ "mutagen_bird", 1 ] ], [ [ "purifier", 1 ] ] ], "flags": [ "SECRET" ] @@ -753,12 +753,12 @@ "result": "iv_mutagen_raptor", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 3 ], - "difficulty": 10, + "difficulty": 8, "time": "2 h", "batch_time_factors": [ 20, 5 ], - "book_learn": [ [ "recipe_raptor", 9 ] ], + "book_learn": [ [ "recipe_raptor", 7 ] ], "using": [ [ "serum_production_standard", 37 ] ], "components": [ [ [ "mutagen_raptor", 2 ] ] ], "flags": [ "SECRET" ] diff --git a/data/json/recipes/chem/other.json b/data/json/recipes/chem/other.json index 396ec8b16b95b..9415555939a1e 100644 --- a/data/json/recipes/chem/other.json +++ b/data/json/recipes/chem/other.json @@ -6,7 +6,7 @@ "subcategory": "CSC_CHEM_OTHER", "skill_used": "survival", "difficulty": 2, - "skills_required": [ "cooking", 2 ], + "skills_required": [ "chemistry", 1 ], "time": "30 m", "batch_time_factors": [ 70, 4 ], "autolearn": true, @@ -20,8 +20,8 @@ "type": "recipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_OTHER", - "skill_used": "cooking", - "difficulty": 2, + "skill_used": "chemistry", + "difficulty": 3, "time": "12 m", "autolearn": true, "qualities": [ { "id": "CHEM", "level": 1 } ], @@ -48,7 +48,7 @@ "type": "recipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 3, "time": "60 m", "batch_time_factors": [ 70, 10 ], diff --git a/data/json/recipes/food/baking.json b/data/json/recipes/food/baking.json new file mode 100644 index 0000000000000..6a55087e0f570 --- /dev/null +++ b/data/json/recipes/food/baking.json @@ -0,0 +1,27 @@ +[ + { + "type": "recipe", + "result": "pumpkin_muffins", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREAD", + "skill_used": "cooking", + "difficulty": 3, + "charges": 24, + "time": "30 m", + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "family_cookbook", 3 ], [ "baking_book", 2 ], [ "cookbook", 3 ] ], + "qualities": [ { "id": "COOK", "level": 3 } ], + "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], + "components": [ + [ [ "flour", 4 ] ], + [ [ "yeast", 2 ] ], + [ [ "apple_cider", 2 ], [ "apple", 2 ] ], + [ [ "pumpkin", 2 ] ], + [ [ "sugar", 4 ] ], + [ [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], + [ [ "any_butter_or_oil", 2, "LIST" ] ], + [ [ "salt", 2 ] ], + [ [ "cinnamon", 2 ] ] + ] + } +] diff --git a/data/json/recipes/food/bread.json b/data/json/recipes/food/bread.json new file mode 100644 index 0000000000000..004c61edfb773 --- /dev/null +++ b/data/json/recipes/food/bread.json @@ -0,0 +1,26 @@ +[ + { + "type": "recipe", + "result": "pumpkin_yeast_bread", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREAD", + "skill_used": "cooking", + "difficulty": 2, + "charges": 24, + "time": "50 m", + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "family_cookbook", 1 ], [ "baking_book", 1 ], [ "cookbook", 2 ] ], + "qualities": [ { "id": "COOK", "level": 3 } ], + "tools": [ [ [ "surface_heat", 8, "LIST" ] ] ], + "components": [ + [ [ "flour", 40 ] ], + [ [ "yeast", 2 ] ], + [ [ "milk", 2 ], [ "milk_raw", 2 ] ], + [ [ "pumpkin", 2 ] ], + [ [ "sugar", 4 ] ], + [ [ "powder_eggs", 2 ], [ "eggs_bird", 2, "LIST" ], [ "egg_reptile", 2 ] ], + [ [ "any_butter_or_oil", 2, "LIST" ] ], + [ [ "salt", 2 ] ] + ] + } +] diff --git a/data/json/recipes/food/brewing.json b/data/json/recipes/food/brewing.json index bb550dec7c5bd..450837636adda 100644 --- a/data/json/recipes/food/brewing.json +++ b/data/json/recipes/food/brewing.json @@ -3,7 +3,7 @@ "type": "recipe", "result": "brew_mycus_wine", "category": "CC_FOOD", - "subcategory": "CSC_FOOD_BREWING", + "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", "difficulty": 3, "time": 40000, @@ -136,6 +136,23 @@ [ [ "yeast", 2 ] ] ] }, + { + "type": "recipe", + "result": "brew_moonshine", + "id_suffix": "pumpkin", + "result_mult": 15, + "byproducts": [ [ "chem_methanol", 275 ] ], + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_BREW", + "skill_used": "cooking", + "difficulty": 2, + "time": "40 m", + "batch_time_factors": [ 50, 4 ], + "book_learn": [ [ "brewing_cookbook", 1 ], [ "family_cookbook", 1 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ] ], + "components": [ [ [ "water", 15 ], [ "water_clean", 15 ] ], [ [ "pumpkin", 12 ] ], [ [ "sugar", 50 ] ], [ [ "yeast", 2 ] ] ] + }, { "type": "recipe", "result": "brew_fruit_wine", diff --git a/data/json/recipes/food/dairy_products.json b/data/json/recipes/food/dairy_products.json index 2a767cc415f02..a03bffcce266a 100644 --- a/data/json/recipes/food/dairy_products.json +++ b/data/json/recipes/food/dairy_products.json @@ -4,7 +4,7 @@ "result": "raw_butter", "result_mult": 1, "category": "CC_FOOD", - "subcategory": "CSC_FOOD_DAIRY", + "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 5, "time": "30 m", @@ -17,7 +17,7 @@ "type": "recipe", "result": "milk_cream_rising", "category": "CC_FOOD", - "subcategory": "CSC_FOOD_DAIRY", + "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 5, "time": "5 m", @@ -31,7 +31,7 @@ "result_mult": 5, "byproducts": [ [ "jar_3l_glass", 1 ], [ "buttermilk", 7 ] ], "category": "CC_FOOD", - "subcategory": "CSC_FOOD_DAIRY", + "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 5, "time": "30 m", @@ -43,7 +43,7 @@ "type": "recipe", "result": "ghee", "category": "CC_FOOD", - "subcategory": "CSC_FOOD_DAIRY", + "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 2, "charges": 1, diff --git a/data/json/recipes/other/materials.json b/data/json/recipes/other/materials.json index 9901f6c92cf87..c1645575ffc3f 100644 --- a/data/json/recipes/other/materials.json +++ b/data/json/recipes/other/materials.json @@ -77,7 +77,7 @@ "result": "sheet_neoprene", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 5, "time": "25 m", "book_learn": [ [ "adv_chemistry", 3 ], [ "textbook_chemistry", 3 ] ], @@ -176,7 +176,7 @@ "byproducts": [ [ "steel_chunk" ] ], "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_fabrication", 4 ], [ "welding_book", 4 ] ], "time": "30 m", @@ -204,7 +204,7 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 1, "autolearn": true, "time": "40 m", diff --git a/data/json/recipes/other/medical.json b/data/json/recipes/other/medical.json index 5d5679f13ffe7..e3ca6e2b9ec27 100644 --- a/data/json/recipes/other/medical.json +++ b/data/json/recipes/other/medical.json @@ -30,7 +30,7 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skill_used": "cooking", + "skill_used": "firstaid", "difficulty": 1, "time": "5 m", "batch_time_factors": [ 95, 4 ], @@ -42,7 +42,7 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skill_used": "cooking", + "skill_used": "firstaid", "difficulty": 1, "time": "5 m", "batch_time_factors": [ 95, 4 ], @@ -56,8 +56,8 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skill_used": "cooking", - "difficulty": 4, + "skill_used": "chemistry", + "difficulty": 3, "skills_required": [ "firstaid", 2 ], "time": "24 m", "book_learn": [ [ "textbook_firstaid", 2 ], [ "manual_first_aid", 2 ], [ "emergency_book", 2 ], [ "pocket_firstaid", 2 ] ], @@ -70,7 +70,7 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skill_used": "cooking", + "skill_used": "chemistry", "autolearn": true, "book_learn": [ [ "isherwood_herbal_remedies", 1 ] ], "time": "30 s", @@ -81,8 +81,8 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skill_used": "cooking", - "difficulty": 4, + "skill_used": "chemistry", + "difficulty": 3, "skills_required": [ "survival", 4 ], "time": "60 m", "autolearn": true, @@ -96,8 +96,8 @@ "type": "recipe", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skill_used": "cooking", - "difficulty": 4, + "skill_used": "chemistry", + "difficulty": 3, "skills_required": [ "survival", 4 ], "time": "60 m", "autolearn": true, diff --git a/data/json/recipes/other/tool.json b/data/json/recipes/other/tool.json index 578260da5977f..9a81fdf37b72c 100644 --- a/data/json/recipes/other/tool.json +++ b/data/json/recipes/other/tool.json @@ -366,7 +366,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", "skill_used": "fabrication", - "skills_required": [ "cooking", 3 ], + "skills_required": [ "chemistry", 3 ], "difficulty": 4, "time": "200 m", "book_learn": [ [ "textbook_chemistry", 4 ], [ "brewing_cookbook", 3 ] ], diff --git a/data/json/recipes/recipe_ammo.json b/data/json/recipes/recipe_ammo.json index 70e23d032276e..d2199868690e7 100644 --- a/data/json/recipes/recipe_ammo.json +++ b/data/json/recipes/recipe_ammo.json @@ -663,8 +663,8 @@ "result": "napalm", "category": "CC_AMMO", "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", - "difficulty": 7, + "skill_used": "chemistry", + "difficulty": 6, "time": "60 m", "qualities": [ { "id": "CHEM", "level": 2 } ], "book_learn": [ @@ -686,7 +686,7 @@ "result": "gelled_gasoline", "category": "CC_AMMO", "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 2, "time": "20 m", "batch_time_factors": [ 80, 5 ], @@ -699,7 +699,7 @@ "result": "flamethrower_fuel", "category": "CC_AMMO", "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 2, "time": "3 m", "batch_time_factors": [ 80, 5 ], @@ -768,7 +768,7 @@ "result": "gas_fungicidal", "category": "CC_AMMO", "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 2 ], "difficulty": 4, "time": "8 m", @@ -782,7 +782,7 @@ "result": "gas_insecticidal", "category": "CC_AMMO", "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 2 ], "difficulty": 4, "time": "8 m", @@ -796,7 +796,7 @@ "result": "gas_chloramine", "category": "CC_AMMO", "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 2 ], "difficulty": 3, "time": "8 m", diff --git a/data/json/recipes/recipe_deconstruction.json b/data/json/recipes/recipe_deconstruction.json index 34e04e178da92..28b875b32c929 100644 --- a/data/json/recipes/recipe_deconstruction.json +++ b/data/json/recipes/recipe_deconstruction.json @@ -948,28 +948,6 @@ [ [ "copbot_chassis", 1 ] ] ] }, - { - "result": "broken_laserturret", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 4, - "time": "1 h", - "using": [ [ "soldering_standard", 10 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "gun_module", 1 ] ], - [ [ "targeting_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "laser_cannon", 1 ] ], - [ [ "medium_storage_battery", 1 ] ], - [ [ "solar_cell", 4 ] ], - [ [ "power_supply", 1 ] ], - [ [ "robot_controls", 1 ] ], - [ [ "turret_chassis", 1 ] ] - ] - }, { "result": "broken_science_bot", "type": "uncraft", @@ -2276,10 +2254,10 @@ [ [ "cable", 12 ] ], [ [ "chem_rdx", 20 ] ], [ [ "circuit", 6 ] ], - [ [ "plut_cell", 6 ] ], + [ [ "plutonium", 6 ] ], [ [ "power_supply", 1 ] ], [ [ "scrap", 200 ] ], - [ [ "small_storage_battery", 2 ] ] + [ [ "plut_cell", 1 ] ] ] }, { @@ -3434,7 +3412,7 @@ "type": "uncraft", "skill_used": "electronics", "difficulty": 4, - "skills_required": [ "cooking", 1 ], + "skills_required": [ "chemistry", 1 ], "time": "1 h", "qualities": [ { "id": "SCREW", "level": 1 } ], "using": [ [ "soldering_standard", 20 ] ], diff --git a/data/json/recipes/recipe_electronics.json b/data/json/recipes/recipe_electronics.json index 72b0230877c4f..75f99200c30d6 100644 --- a/data/json/recipes/recipe_electronics.json +++ b/data/json/recipes/recipe_electronics.json @@ -1294,39 +1294,6 @@ [ [ "spring", 2 ] ] ] }, - { - "type": "recipe", - "result": "bot_laserturret", - "category": "CC_ELECTRONIC", - "subcategory": "CSC_ELECTRONIC_OTHER", - "skill_used": "electronics", - "skills_required": [ [ "mechanics", 8 ], [ "computer", 5 ] ], - "difficulty": 8, - "time": "30 m", - "reversible": true, - "decomp_learn": 9, - "book_learn": [ [ "recipe_lab_elec", 8 ] ], - "using": [ [ "soldering_standard", 14 ] ], - "qualities": [ - { "id": "SCREW", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "WRENCH", "level": 2 }, - { "id": "WRENCH_FINE", "level": 1 } - ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "gun_module", 1 ] ], - [ [ "targeting_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "laser_cannon", 1 ] ], - [ [ "medium_storage_battery", 1 ] ], - [ [ "solar_cell", 4 ] ], - [ [ "power_supply", 1 ] ], - [ [ "robot_controls", 1 ] ], - [ [ "turret_chassis", 1 ] ] - ] - }, { "type": "recipe", "result": "bot_rifleturret", @@ -2312,11 +2279,11 @@ "result": "light_minus_disposable_cell", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_TOOLS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "electronics", 5 ], - "difficulty": 6, + "difficulty": 4, "time": "45 m", - "book_learn": [ [ "adv_chemistry", 6 ] ], + "book_learn": [ [ "adv_chemistry", 4 ] ], "using": [ [ "blacksmithing_standard", 1 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], @@ -2333,11 +2300,11 @@ "result": "light_disposable_cell", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_TOOLS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "electronics", 5 ], - "difficulty": 6, + "difficulty": 4, "time": "1 h", - "book_learn": [ [ "adv_chemistry", 6 ] ], + "book_learn": [ [ "adv_chemistry", 4 ] ], "using": [ [ "blacksmithing_standard", 1 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], @@ -2354,11 +2321,11 @@ "result": "medium_disposable_cell", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_TOOLS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "electronics", 5 ], - "difficulty": 6, + "difficulty": 4, "time": "1 h 20 m", - "book_learn": [ [ "adv_chemistry", 6 ] ], + "book_learn": [ [ "adv_chemistry", 4 ] ], "using": [ [ "blacksmithing_standard", 1 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], @@ -2375,11 +2342,11 @@ "result": "heavy_disposable_cell", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_TOOLS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "electronics", 5 ], - "difficulty": 6, + "difficulty": 4, "time": "1 h 45 m", - "book_learn": [ [ "adv_chemistry", 6 ] ], + "book_learn": [ [ "adv_chemistry", 4 ] ], "using": [ [ "blacksmithing_standard", 1 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], diff --git a/data/json/recipes/recipe_food.json b/data/json/recipes/recipe_food.json index db4ba180e4e1f..a6c3aadff1e8a 100644 --- a/data/json/recipes/recipe_food.json +++ b/data/json/recipes/recipe_food.json @@ -66,7 +66,7 @@ "id_suffix": "from_salt_water", "category": "CC_FOOD", "subcategory": "CSC_FOOD_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "time": "1 h 30 m", "autolearn": true, "batch_time_factors": [ 80, 4 ], @@ -6494,5 +6494,121 @@ [ [ "sugar", 1 ] ], [ [ "water_clean", 1 ] ] ] + }, + { + "type": "recipe", + "result": "coffee_sweetened", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_DRINKS", + "skill_used": "cooking", + "time": "10 m", + "autolearn": true, + "batch_time_factors": [ 80, 4 ], + "qualities": [ { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "water_boiling_heat", 3, "LIST" ] ] ], + "components": [ + [ [ "coffee_raw", 1 ], [ "coffee_syrup", 1 ] ], + [ [ "water", 1 ], [ "water_clean", 1 ] ], + [ + [ "sugar", 5 ], + [ "honey_bottled", 1 ], + [ "honey_glassed", 1 ], + [ "honeycomb", 1 ], + [ "syrup", 1 ], + [ "beet_syrup", 1 ] + ] + ] + }, + { + "type": "recipe", + "result": "coffee_substitute_sweetened", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_DRINKS", + "skill_used": "cooking", + "time": "10 m", + "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 ] ], + [ + [ "sugar", 5 ], + [ "honey_bottled", 1 ], + [ "honey_glassed", 1 ], + [ "honeycomb", 1 ], + [ "syrup", 1 ], + [ "beet_syrup", 1 ] + ] + ] + }, + { + "type": "recipe", + "result": "milk_coffee_sweetened", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_DRINKS", + "skill_used": "cooking", + "time": "1 m 30 s", + "autolearn": true, + "flags": [ "BLIND_HARD" ], + "components": [ + [ [ "coffee_syrup", 1 ], [ "coffee", 1 ] ], + [ [ "milk_standard", 1, "LIST" ], [ "milk_powder", 1 ], [ "con_milk", 1 ] ], + [ + [ "sugar", 5 ], + [ "honey_bottled", 1 ], + [ "honey_glassed", 1 ], + [ "honeycomb", 1 ], + [ "syrup", 1 ], + [ "beet_syrup", 1 ] + ] + ] + }, + { + "type": "recipe", + "result": "tea_sweetened", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_DRINKS", + "skill_used": "cooking", + "time": "10 m", + "autolearn": true, + "batch_time_factors": [ 80, 4 ], + "qualities": [ { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "water_boiling_heat", 2, "LIST" ] ] ], + "components": [ + [ [ "tea_raw", 1 ] ], + [ [ "water", 1 ], [ "water_clean", 1 ] ], + [ + [ "sugar", 5 ], + [ "honey_bottled", 1 ], + [ "honey_glassed", 1 ], + [ "honeycomb", 1 ], + [ "syrup", 1 ], + [ "beet_syrup", 1 ] + ] + ] + }, + { + "type": "recipe", + "result": "milk_tea_sweetened", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_DRINKS", + "skill_used": "cooking", + "time": "1 m 30 s", + "autolearn": true, + "flags": [ "BLIND_HARD" ], + "components": [ + [ [ "tea", 1 ] ], + [ [ "milk_standard", 1, "LIST" ], [ "milk_powder", 1 ], [ "con_milk", 1 ] ], + [ + [ "sugar", 5 ], + [ "honey_bottled", 1 ], + [ "honey_glassed", 1 ], + [ "honeycomb", 1 ], + [ "syrup", 1 ], + [ "beet_syrup", 1 ] + ] + ] } ] diff --git a/data/json/recipes/recipe_medsandchemicals.json b/data/json/recipes/recipe_medsandchemicals.json index e57363fa2a5ef..17261fd56247b 100644 --- a/data/json/recipes/recipe_medsandchemicals.json +++ b/data/json/recipes/recipe_medsandchemicals.json @@ -15,7 +15,7 @@ "result": "soapy_water", "category": "CC_CHEM", "subcategory": "CSC_CHEM_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "time": "1 m", "autolearn": true, "flags": [ "BLIND_HARD" ], @@ -28,7 +28,7 @@ "subcategory": "CSC_OTHER_MEDICAL", "skill_used": "firstaid", "difficulty": 2, - "skills_required": [ "cooking", 2 ], + "skills_required": [ "chemistry", 2 ], "time": "30 m", "book_learn": [ [ "textbook_firstaid", 2 ], @@ -48,7 +48,7 @@ "result": "acid", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "10 m", "autolearn": true, @@ -85,7 +85,7 @@ "result": "water_acid", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "electronics", 1 ], "difficulty": 2, "time": "10 m", @@ -148,7 +148,7 @@ "result": "meth", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 5, "time": "20 m", "book_learn": [ [ "textbook_chemistry", 5 ], [ "adv_chemistry", 5 ], [ "recipe_labchem", 5 ] ], @@ -161,7 +161,7 @@ "result": "crack", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "30 m", "book_learn": [ [ "textbook_chemistry", 4 ], [ "adv_chemistry", 4 ], [ "recipe_labchem", 4 ] ], @@ -174,7 +174,7 @@ "result": "poppy_sleep", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 1 ], "difficulty": 2, "time": "5 m", @@ -234,7 +234,7 @@ "result": "poppy_pain", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 1 ], "difficulty": 2, "time": "5 m", @@ -256,10 +256,11 @@ "result": "fungicide", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 1 ], "difficulty": 2, "time": "5 m", + "flags": [ "SECRET" ], "book_learn": [ [ "textbook_chemistry", 2 ], [ "adv_chemistry", 2 ], @@ -278,7 +279,7 @@ "result": "antifungal", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "30 m", "book_learn": [ @@ -300,7 +301,7 @@ "result": "insecticide", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "30 m", "book_learn": [ [ "textbook_chemistry", 4 ], [ "adv_chemistry", 4 ], [ "recipe_labchem", 4 ] ], @@ -321,7 +322,7 @@ "id_suffix": "nicotine", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "30 m", "book_learn": [ [ "textbook_chemistry", 4 ], [ "adv_chemistry", 4 ], [ "recipe_labchem", 4 ] ], @@ -344,7 +345,7 @@ "result": "antiparasitic", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 6, "time": "30 m", "book_learn": [ @@ -371,7 +372,7 @@ "result": "adrenaline_injector", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 6, "time": "30 m", "book_learn": [ @@ -398,7 +399,7 @@ "result": "heroin", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 6, "time": "2 m", "book_learn": [ [ "textbook_chemistry", 7 ], [ "adv_chemistry", 7 ], [ "atomic_survival", 6 ], [ "recipe_labchem", 6 ] ], @@ -414,7 +415,7 @@ "result": "diazepam", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 6, "time": "4 m", "book_learn": [ [ "textbook_chemistry", 7 ], [ "adv_chemistry", 7 ], [ "atomic_survival", 6 ], [ "recipe_labchem", 6 ] ], @@ -427,10 +428,10 @@ "result": "thorazine", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 7, + "skill_used": "chemistry", + "difficulty": 6, "time": "4 m", - "book_learn": [ [ "textbook_chemistry", 8 ], [ "adv_chemistry", 8 ], [ "atomic_survival", 7 ], [ "recipe_labchem", 7 ] ], + "book_learn": [ [ "textbook_chemistry", 5 ], [ "adv_chemistry", 6 ], [ "atomic_survival", 7 ], [ "recipe_labchem", 6 ] ], "qualities": [ { "id": "CHEM", "level": 2 } ], "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], "components": [ [ [ "salt_water", 1 ], [ "salt", 10 ], [ "saline", 5 ] ], [ [ "diazepam", 5 ] ], [ [ "oxy_powder", 50 ] ] ] @@ -440,10 +441,10 @@ "result": "lsd", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 6, "time": "30 m", - "book_learn": [ [ "textbook_chemistry", 8 ], [ "adv_chemistry", 6 ], [ "recipe_labchem", 7 ] ], + "book_learn": [ [ "textbook_chemistry", 8 ], [ "adv_chemistry", 6 ], [ "recipe_labchem", 6 ] ], "qualities": [ { "id": "CHEM", "level": 3 } ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ @@ -472,11 +473,11 @@ "result": "iodine", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 6, + "difficulty": 4, "time": "24 m", - "book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 5 ], [ "atomic_survival", 5 ] ], + "book_learn": [ [ "adv_chemistry", 4 ], [ "textbook_chemistry", 4 ], [ "recipe_labchem", 4 ], [ "atomic_survival", 5 ] ], "qualities": [ { "id": "CHEM", "level": 2 } ], "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "disinfectant", 10 ], [ "salt", 50 ] ], [ [ "aspirin", 10 ] ] ] @@ -486,11 +487,11 @@ "result": "prussian_blue", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 7, + "difficulty": 5, "time": "36 m", - "book_learn": [ [ "adv_chemistry", 6 ], [ "textbook_chemistry", 7 ], [ "recipe_labchem", 6 ], [ "atomic_survival", 5 ] ], + "book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 6 ], [ "recipe_labchem", 5 ], [ "atomic_survival", 5 ] ], "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONTAIN", "level": 1 } ], "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ @@ -506,16 +507,17 @@ "result": "aspirin", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 4, + "difficulty": 2, "time": "24 m", "book_learn": [ [ "adv_chemistry", 2 ], [ "textbook_chemistry", 2 ], [ "recipe_labchem", 2 ], [ "atomic_survival", 3 ], - [ "isherwood_herbal_remedies", 2 ] + [ "isherwood_herbal_remedies", 2 ], + [ "basic_chemistry", 2 ] ], "qualities": [ { "id": "CHEM", "level": 2 } ], "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], @@ -526,8 +528,8 @@ "result": "pur_tablets", "category": "CC_CHEM", "subcategory": "CSC_CHEM_OTHER", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 5, "time": "24 m", "book_learn": [ [ "adv_chemistry", 5 ], @@ -545,9 +547,9 @@ "result": "bleach", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "electronics", 2 ], - "difficulty": 5, + "difficulty": 4, "time": "25 m", "batch_time_factors": [ 90, 4 ], "//": "another variation of chloralkali process, now used to produce bleach (sodium hypochlorite - or rather rough, technical grade hypochlorite/hydroxide/chloride mix), note we will not be heating anything and that the (mostly) electrochemical reaction easily scales in size, some hydrogen gas could be recoverable (optional byproduct)", @@ -556,32 +558,15 @@ "tools": [ [ [ "electrolysis_kit", 250 ] ] ], "components": [ [ [ "salt_water", 2 ], [ "saline", 10 ] ] ] }, - { - "type": "recipe", - "result": "ammonia", - "category": "CC_CHEM", - "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 6, - "time": "36 m", - "book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 5 ] ], - "qualities": [ { "id": "CHEM", "level": 2 } ], - "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], - "components": [ - [ [ "water_clean", 1 ], [ "water", 1 ] ], - [ [ "scrap", 1 ] ], - [ [ "charcoal", 5 ], [ "coal_lump", 5 ], [ "lye_powder", 20 ] ] - ] - }, { "type": "recipe", "result": "oxy_powder", "byproducts": [ [ "salt_water", 2 ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "electronics", 2 ], - "difficulty": 7, + "difficulty": 5, "time": "45 m", "batch_time_factors": [ 60, 4 ], "//": "abstracting using chloralkali process (hot solution, unpartitioned cell) to produce sodium chlorate, then perchlorate by anodic oxidation on platinum, then ammonia perchlorate by double decomposition from sodium perchlorate and ammonium chloride; while we can't directly use bleach here but we do end up recovering some brine", @@ -595,11 +580,11 @@ "result": "lye_powder", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 4, + "skill_used": "chemistry", + "difficulty": 3, "time": "3 h", "batch_time_factors": [ 80, 4 ], - "book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 5 ] ], + "book_learn": [ [ "adv_chemistry", 2 ], [ "textbook_chemistry", 2 ], [ "recipe_labchem", 2 ], [ "basic_chemistry", 2 ] ], "qualities": [ { "id": "CHEM", "level": 1 } ], "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "charcoal", 50 ] ], [ [ "water_clean", 2 ], [ "water", 2 ] ] ] @@ -610,8 +595,8 @@ "id_suffix": "from_lye", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 3, + "skill_used": "chemistry", + "difficulty": 2, "time": "1 h 30 m", "autolearn": true, "batch_time_factors": [ 80, 4 ], @@ -624,7 +609,7 @@ "result": "heatpack", "category": "CC_CHEM", "subcategory": "CSC_CHEM_OTHER", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 3, "time": "6 m", "book_learn": [ [ "adv_chemistry", 3 ], [ "textbook_chemistry", 3 ], [ "atomic_survival", 4 ] ], @@ -638,11 +623,11 @@ "result": "pheromone", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 1 ], - "difficulty": 3, + "difficulty": 4, "time": "1 m 12 s", - "book_learn": [ [ "adv_chemistry", 6 ], [ "textbook_chemistry", 6 ], [ "recipe_labchem", 3 ] ], + "book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 3 ] ], "tools": [ [ [ "surface_heat", 18, "LIST" ] ] ], "components": [ [ [ "meat_tainted", 1 ], [ "dry_meat_tainted", 1 ] ], [ [ "ammonia", 1 ] ] ] }, @@ -683,9 +668,9 @@ "result": "fertilizer_liquid", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 2 ], - "difficulty": 3, + "difficulty": 4, "time": "20 m", "autolearn": true, "book_learn": [ [ "adv_chemistry", 2 ], [ "textbook_chemistry", 2 ], [ "recipe_labchem", 3 ], [ "atomic_survival", 2 ] ], @@ -721,10 +706,10 @@ "result": "slime_scrap", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 5, "time": "45 m", - "book_learn": [ [ "recipe_creepy", 7 ], [ "recipe_serum", 7 ] ], + "book_learn": [ [ "recipe_creepy", 5 ], [ "recipe_serum", 5 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CHEM", "level": 2 } ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "meat_tainted", 1 ], [ "dry_meat_tainted", 1 ] ] ] @@ -734,8 +719,8 @@ "result": "soap", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 3, + "skill_used": "chemistry", + "difficulty": 2, "time": "45 m", "qualities": [ { "id": "CHEM", "level": 1 } ], "autolearn": true, @@ -752,7 +737,6 @@ "result": "soap_flakes", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", "time": "15 m", "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 } ], @@ -763,9 +747,9 @@ "result": "poppysyrup", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 1 ], - "difficulty": 2, + "difficulty": 3, "time": "5 m", "book_learn": [ [ "textbook_chemistry", 2 ], @@ -785,10 +769,10 @@ "result": "chem_hydrogen_peroxide_conc", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 7, + "skill_used": "chemistry", + "difficulty": 4, "time": "25 m", - "book_learn": [ [ "recipe_labchem", 7 ], [ "textbook_chemistry", 7 ] ], + "book_learn": [ [ "recipe_labchem", 4 ], [ "textbook_chemistry", 4 ] ], "qualities": [ { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "chem_hydrogen_peroxide", 50 ] ] ] @@ -799,9 +783,9 @@ "result_mult": 5, "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ [ "firstaid", 3 ] ], - "difficulty": 4, + "difficulty": 3, "time": "6 m", "autolearn": true, "book_learn": [ [ "recipe_labchem", 3 ], [ "textbook_chemistry", 3 ] ], @@ -814,7 +798,7 @@ "result": "chem_muriatic_acid", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "15 m", "book_learn": [ [ "recipe_labchem", 3 ], [ "textbook_chemistry", 3 ] ], @@ -829,9 +813,9 @@ "byproducts": [ [ "lye", 2 ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ [ "electronics", 2 ], [ "mechanics", 2 ] ], - "difficulty": 6, + "difficulty": 5, "time": "40 m", "batch_time_factors": [ 50, 5 ], "//": "abstracted chloralkali process, followed by 'burning' resulting chlorine and hydrogen with electric arc as uv source and crucible serving as reaction furnace, then dissolving resulting hydrogen chloride gas in water", @@ -849,8 +833,8 @@ "result": "chem_sulphuric_acid", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 7, + "skill_used": "chemistry", + "difficulty": 5, "time": "15 m", "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ], @@ -862,8 +846,8 @@ "result": "chem_nitric_acid", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 5, + "skill_used": "chemistry", + "difficulty": 4, "time": "10 m", "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ], @@ -876,10 +860,10 @@ "id_suffix": "from ammonia", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 5, "time": "40 m", - "book_learn": [ [ "adv_chemistry", 6 ], [ "textbook_chemistry", 6 ] ], + "book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ] ], "batch_time_factors": [ 80, 4 ], "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 }, { "id": "DISTILL", "level": 1 } ], "tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pressure_cooker", -1 ] ], [ [ "platinum_grille", -1 ] ] ], @@ -891,8 +875,8 @@ "byproducts": [ [ "chem_potassium_chloride" ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 5, + "skill_used": "chemistry", + "difficulty": 4, "time": "10 m", "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ], @@ -904,8 +888,8 @@ "result": "chem_aluminium_sulphate", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 5, + "skill_used": "chemistry", + "difficulty": 4, "time": "2 m 30 s", "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ], @@ -918,7 +902,7 @@ "byproducts": [ [ "water" ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "3 m", "autolearn": true, @@ -954,7 +938,7 @@ "byproducts": [ [ "water" ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 5, "charges": 680, "time": "45 m", @@ -974,13 +958,13 @@ "byproducts": [ [ "ammonia", 1 ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 5, + "skill_used": "chemistry", + "difficulty": 4, "time": "25 m", - "book_learn": [ [ "textbook_anarch", 7 ], [ "recipe_labchem", 5 ], [ "textbook_chemistry", 6 ] ], + "book_learn": [ [ "textbook_anarch", 7 ], [ "recipe_labchem", 4 ], [ "textbook_chemistry", 4 ] ], "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ], "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], - "components": [ [ [ "chem_ammonium_nitrate", 225 ] ], [ [ "lye_powder", 150 ] ] ] + "components": [ [ [ "chem_ammonium_nitrate", 225 ] ], [ [ "lye_powder", 150 ] ], [ [ "water_clean", 3 ], [ "water", 3 ] ] ] }, { "type": "recipe", @@ -989,7 +973,7 @@ "result_mult": 5, "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "40 m", "batch_time_factors": [ 80, 4 ], @@ -1003,7 +987,7 @@ "result": "chem_black_powder", "category": "CC_AMMO", "subcategory": "CSC_AMMO_COMPONENTS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "20 m", "book_learn": [ [ "textbook_anarch", 6 ], [ "recipe_labchem", 4 ], [ "textbook_chemistry", 5 ], [ "textbook_armschina", 5 ] ], @@ -1017,7 +1001,7 @@ "category": "CC_AMMO", "subcategory": "CSC_AMMO_COMPONENTS", "skill_used": "fabrication", - "skills_required": [ "cooking", 1 ], + "skills_required": [ "chemistry", 3 ], "difficulty": 4, "time": "20 m", "book_learn": [ @@ -1036,7 +1020,7 @@ "type": "recipe", "result": "chem_match_head_powder", "category": "CC_CHEM", - "subcategory": "CC_CHEM_OTHER", + "subcategory": "CSC_CHEM_OTHER", "skill_used": "fabrication", "time": "8 m", "autolearn": true, @@ -1047,7 +1031,7 @@ "result": "chem_anfo", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 5, "charges": 100, "time": "5 m", @@ -1061,7 +1045,7 @@ "result": "chem_acetic_acid", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "30 m", "autolearn": true, @@ -1074,11 +1058,11 @@ "result": "chem_hexamine", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 5, "time": "30 m", "batch_time_factors": [ 67, 5 ], - "book_learn": [ [ "recipe_labchem", 6 ] ], + "book_learn": [ [ "recipe_labchem", 5 ] ], "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 3 } ], "components": [ [ [ "ammonia", 4 ] ], [ [ "chem_formaldehyde", 6 ] ] ] }, @@ -1087,7 +1071,7 @@ "result": "chem_formaldehyde", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 5, "time": "15 m", "batch_time_factors": [ 80, 4 ], @@ -1102,7 +1086,7 @@ "byproducts": [ [ "chem_ethanol", 2 ] ], "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 3, "time": "10 m", "batch_time_factors": [ 80, 4 ], @@ -1117,7 +1101,7 @@ "id_suffix": "from wood", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "1 h", "batch_time_factors": [ 80, 4 ], @@ -1131,8 +1115,8 @@ "result": "chem_rdx", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 7, + "skill_used": "chemistry", + "difficulty": 5, "time": "1 h 15 m", "book_learn": [ [ "recipe_labchem", 8 ], [ "textbook_anarch", 10 ] ], "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 3 } ], @@ -1144,7 +1128,7 @@ "result": "chem_thermite", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "2 m", "autolearn": true, @@ -1156,8 +1140,8 @@ "result": "chem_hmtd", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 7, + "skill_used": "chemistry", + "difficulty": 5, "time": "55 m", "book_learn": [ [ "recipe_labchem", 8 ] ], "qualities": [ { "id": "BOIL", "level": 2 } ], @@ -1168,7 +1152,7 @@ "result": "chem_rocket_fuel", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "time": "5 m", "book_learn": [ [ "textbook_anarch", 5 ], [ "recipe_labchem", 4 ], [ "textbook_chemistry", 5 ] ], @@ -1180,7 +1164,7 @@ "result": "tool_rocket_candy", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 3, "time": "30 m", "book_learn": [ [ "textbook_anarch", 4 ], [ "recipe_labchem", 3 ], [ "textbook_chemistry", 5 ] ], @@ -1195,7 +1179,7 @@ "subcategory": "CSC_CHEM_OTHER", "skill_used": "survival", "difficulty": 2, - "skills_required": [ "cooking", 1 ], + "skills_required": [ "chemistry", 1 ], "time": "1 h", "batch_time_factors": [ 99, 1 ], "autolearn": true, @@ -1209,7 +1193,7 @@ "id_suffix": "by_electrolysis", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "electronics", 2 ], "difficulty": 4, "time": "20 m", @@ -1224,11 +1208,11 @@ "result": "anesthetic", "type": "recipe", "category": "CC_OTHER", - "subcategory": "CC_OTHER_MEDICAL", + "subcategory": "CSC_OTHER_MEDICAL", "skill_used": "firstaid", "difficulty": 3, "batch_time_factors": [ 99, 1 ], - "//": "This difficulty assumes that anaesthesia administration will be handled by the autodoc or the person using the kit. The included amount of ether is an estimate, based on average body size.", + "//": "This difficulty assumes that anesthesia administration will be handled by the autodoc or the person using the kit. The included amount of ether is an estimate, based on average body size.", "time": "2 m 30 s", "book_learn": [ [ "textbook_firstaid", 6 ], [ "emergency_book", 5 ] ], "qualities": [ { "id": "CONTAIN", "level": 1 } ], @@ -1242,8 +1226,8 @@ "type": "recipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "time": "1 h 20 m", "book_learn": [ [ "textbook_chemistry", 4 ], [ "adv_chemistry", 7 ] ], "charges": 250, @@ -1259,7 +1243,7 @@ "type": "recipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 3, "charges": 200, "time": "2 h", @@ -1273,7 +1257,7 @@ "type": "recipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 3, "charges": 785, "time": "2 h", @@ -1300,8 +1284,8 @@ "result": "hi_q_crude_oil", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 272, "time": "180 m", "book_learn": [ [ "textbook_extraction", 4 ] ], @@ -1319,7 +1303,7 @@ "id_suffix": "using_pipe", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 3, "batch_time_factors": [ 80, 3 ], "charges": 1, @@ -1333,8 +1317,8 @@ "result": "lo_q_crude_oil", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 181, "time": "60 m", "book_learn": [ [ "textbook_extraction", 4 ] ], @@ -1352,8 +1336,8 @@ "id_suffix": "using_oil_extractor_crude", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 1015, "time": "120 m", "book_learn": [ [ "textbook_extraction", 4 ] ], @@ -1380,8 +1364,8 @@ "result": "lo_q_crude_oil_ethanol", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 10, "time": "4 m", "batch_time_factors": [ 80, 4 ], @@ -1395,8 +1379,8 @@ "result": "hi_q_crude_oil_ethanol", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 10, "time": "4 m", "batch_time_factors": [ 80, 4 ], @@ -1410,7 +1394,7 @@ "result": "hi_q_wax", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 2, "charges": 4, "time": "45 m", @@ -1425,8 +1409,8 @@ "result": "lo_q_crude_oil_ethanol_filtered", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 196, "time": "10 m", "batch_time_factors": [ 80, 4 ], @@ -1439,8 +1423,8 @@ "result": "hi_q_crude_oil_ethanol_filtered", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 196, "time": "5 m", "batch_time_factors": [ 80, 4 ], @@ -1453,8 +1437,8 @@ "result": "lo_q_crude_oil_filtered", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 25, "time": "30 m", "batch_time_factors": [ 80, 4 ], @@ -1469,8 +1453,8 @@ "result": "hi_q_crude_oil_filtered", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 27, "time": "30 m", "batch_time_factors": [ 80, 4 ], @@ -1485,8 +1469,8 @@ "result": "hi_q_distillate_heads", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 600, "time": "180 m", "byproducts": [ [ "hi_q_distillate_tails", 300 ] ], @@ -1502,8 +1486,8 @@ "id_suffix": "using lo_q_crude", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 533, "time": "180 m", "byproducts": [ [ "hi_q_distillate_tails", 267 ] ], @@ -1519,8 +1503,8 @@ "id_suffix": "using_tails", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 633, "time": "180 m", "byproducts": [ [ "hi_q_distillate_tails", 317 ] ], @@ -1535,8 +1519,8 @@ "result": "hi_q_distillate", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", - "skill_used": "cooking", - "difficulty": 6, + "skill_used": "chemistry", + "difficulty": 4, "charges": 633, "time": "180 m", "byproducts": [ [ "hi_q_distillate_tails", 317 ] ], diff --git a/data/json/recipes/recipe_obsolete.json b/data/json/recipes/recipe_obsolete.json index 8b047ecd71cc3..1cb21d004dbb5 100644 --- a/data/json/recipes/recipe_obsolete.json +++ b/data/json/recipes/recipe_obsolete.json @@ -2469,5 +2469,35 @@ "type": "recipe", "result": "control_laptop", "obsolete": true + }, + { + "type": "recipe", + "result": "bot_laserturret", + "obsolete": true + }, + { + "type": "recipe", + "result": "broken_laserturret", + "obsolete": true + }, + { + "type": "recipe", + "result": "laser_cannon", + "obsolete": true + }, + { + "type": "recipe", + "result": "ammonia", + "obsolete": true + }, + { + "type": "recipe", + "result": "lever_shotgun", + "obsolete": true + }, + { + "type": "recipe", + "result": "bone_plate", + "obsolete": true } ] diff --git a/data/json/recipes/recipe_others.json b/data/json/recipes/recipe_others.json index 23d2866a13640..b8188107f076f 100644 --- a/data/json/recipes/recipe_others.json +++ b/data/json/recipes/recipe_others.json @@ -1171,6 +1171,28 @@ "using": [ [ "sewing_standard", 50 ] ], "components": [ [ [ "rag", 20 ] ] ] }, + { + "type": "recipe", + "result": "sheet_kevlar_layered", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "tailor", + "time": "2 m", + "autolearn": true, + "reversible": true, + "using": [ [ "sewing_standard", 15 ] ], + "components": [ [ [ "sheet_kevlar", 16 ] ] ] + }, + { + "type": "recipe", + "result": "rigid_kevlar_plate", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "tailor", + "time": "15 m", + "autolearn": true, + "components": [ [ [ "sheet_kevlar", 16 ], [ "sheet_kevlar_layered", 1 ] ], [ [ "superglue", 1 ] ] ] + }, { "type": "recipe", "result": "vehicle_controls", @@ -1915,7 +1937,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", "skill_used": "fabrication", - "skills_required": [ "cooking", 2 ], + "skills_required": [ "chemistry", 2 ], "time": "2 m", "reversible": true, "decomp_learn": 0, @@ -1934,7 +1956,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", "skill_used": "fabrication", - "skills_required": [ "cooking", 2 ], + "skills_required": [ "chemistry", 2 ], "time": "3 m", "reversible": true, "decomp_learn": 0, @@ -2016,7 +2038,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", "skill_used": "fabrication", - "skills_required": [ [ "survival", 1 ], [ "cooking", 2 ] ], + "skills_required": [ [ "survival", 1 ] ], "difficulty": 2, "time": "5 m", "autolearn": true, @@ -2241,7 +2263,7 @@ "result": "pot_copper", "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 4, "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_fabrication", 4 ], [ "welding_book", 4 ] ], "time": "1 h 30 m", @@ -2601,7 +2623,7 @@ "result": "quikclot", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], "difficulty": 4, "time": "1 m 12 s", @@ -2615,11 +2637,11 @@ "result": "bfipowder", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "firstaid", 1 ], - "difficulty": 6, + "difficulty": 5, "time": "1 m 12 s", - "book_learn": [ [ "textbook_firstaid", 8 ], [ "textbook_chemistry", 7 ], [ "adv_chemistry", 6 ], [ "emergency_book", 8 ] ], + "book_learn": [ [ "textbook_firstaid", 7 ], [ "textbook_chemistry", 5 ], [ "adv_chemistry", 5 ], [ "emergency_book", 7 ] ], "qualities": [ { "id": "CHEM", "level": 1 } ], "tools": [ [ [ "surface_heat", 18, "LIST" ] ] ], "components": [ [ [ "iodine", 2 ] ], [ [ "aspirin", 4 ] ], [ [ "oxy_powder", 50 ] ], [ [ "salt_water", 1 ], [ "saline", 5 ] ] ] @@ -2939,7 +2961,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", - "skills_required": [ "cooking", 4 ], + "skills_required": [ "chemistry", 4 ], "difficulty": 4, "time": "30 m", "book_learn": [ [ "glassblowing_book", 5 ] ], @@ -3228,7 +3250,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", - "skills_required": [ "cooking", 2 ], + "skills_required": [ "chemistry", 2 ], "difficulty": 3, "time": "1 h", "autolearn": false, @@ -3243,7 +3265,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", - "skills_required": [ "cooking", 3 ], + "skills_required": [ "chemistry", 3 ], "difficulty": 4, "time": "1 h 30 m", "autolearn": false, @@ -3359,8 +3381,8 @@ "result": "plastic_chunk", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "cooking", - "difficulty": 5, + "skill_used": "chemistry", + "difficulty": 3, "time": "50 m", "autolearn": true, "batch_time_factors": [ 80, 4 ], @@ -3444,34 +3466,6 @@ "autolearn": true, "components": [ [ [ "acidchitin_piece", 25 ] ], [ [ "rope_natural_short", 2, "LIST" ], [ "adhesive", 4, "LIST" ] ] ] }, - { - "type": "recipe", - "result": "bone_plate", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_PARTS", - "skill_used": "fabrication", - "difficulty": 3, - "time": "40 m", - "reversible": true, - "autolearn": true, - "components": [ - [ [ "bone", 25 ], [ "bone_human", 25 ], [ "bone_tainted", 50 ] ], - [ [ "rope_natural_short", 4, "LIST" ], [ "adhesive", 4, "LIST" ] ] - ] - }, - { - "type": "recipe", - "result": "wheel_metal", - "category": "CC_OTHER", - "subcategory": "CSC_WEAPON_PARTS", - "skill_used": "fabrication", - "difficulty": 6, - "time": "6 h", - "autolearn": true, - "using": [ [ "blacksmithing_standard", 20 ], [ "steel_standard", 5 ] ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] - }, { "type": "recipe", "result": "spring", @@ -3653,7 +3647,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "survival", - "skills_required": [ "cooking", 1 ], + "skills_required": [ "chemistry", 1 ], "difficulty": 1, "time": "5 m", "autolearn": true, @@ -3682,7 +3676,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "survival", - "skills_required": [ "cooking", 2 ], + "skills_required": [ "chemistry", 2 ], "difficulty": 3, "time": "48 m", "batch_time_factors": [ 20, 10 ], @@ -3708,7 +3702,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "survival", - "skills_required": [ "cooking", 1 ], + "skills_required": [ "chemistry", 1 ], "difficulty": 1, "time": "5 m", "autolearn": true, @@ -3724,7 +3718,7 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "survival", - "skills_required": [ "cooking", 2 ], + "skills_required": [ "chemistry", 2 ], "difficulty": 3, "time": "48 m", "batch_time_factors": [ 20, 10 ], @@ -3750,12 +3744,12 @@ "id_suffix": "modern", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 3 ], "difficulty": 4, "time": "20 m", "batch_time_factors": [ 50, 5 ], - "book_learn": [ [ "textbook_survival", 6 ], [ "textbook_chemistry", 5 ], [ "modern_tanner", 4 ] ], + "book_learn": [ [ "textbook_survival", 6 ], [ "textbook_chemistry", 4 ], [ "modern_tanner", 4 ] ], "qualities": [ { "id": "CHEM", "level": 1 }, { "id": "COOK", "level": 3 }, @@ -3771,12 +3765,12 @@ "id_suffix": "modern", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "survival", 3 ], "difficulty": 4, "time": "20 m", "batch_time_factors": [ 50, 5 ], - "book_learn": [ [ "textbook_survival", 6 ], [ "textbook_chemistry", 5 ], [ "modern_tanner", 4 ] ], + "book_learn": [ [ "textbook_survival", 6 ], [ "textbook_chemistry", 4 ], [ "modern_tanner", 4 ] ], "qualities": [ { "id": "CHEM", "level": 1 }, { "id": "COOK", "level": 3 }, @@ -3841,7 +3835,7 @@ "type": "recipe", "result": "clay_pot_flower", "category": "CC_OTHER", - "subcategory": "CSC_OTHER_GENERIC", + "subcategory": "CSC_OTHER_OTHER", "skill_used": "fabrication", "skills_required": [ "survival", 1 ], "difficulty": 2, @@ -4065,7 +4059,7 @@ "skills_required": [ "tailor", 4 ], "difficulty": 6, "time": "1 h", - "book_learn": [ [ "scots_cookbook", 3 ] ], + "book_learn": [ [ "scots_tailor", 3 ], [ "scots_cookbook", 7 ] ], "using": [ [ "sewing_standard", 20 ] ], "components": [ [ [ "large_stomach_sealed", 1 ], [ "tanned_hide", 2 ], [ "leather", 10 ], [ "tanned_pelt", 2 ], [ "fur", 10 ] ], @@ -4178,10 +4172,10 @@ "result": "neoprene", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "cooking", + "skill_used": "chemistry", "difficulty": 5, "time": "25 m", - "book_learn": [ [ "adv_chemistry", 3 ], [ "textbook_chemistry", 3 ] ], + "book_learn": [ [ "adv_chemistry", 4 ], [ "textbook_chemistry", 4 ] ], "result_mult": 9, "qualities": [ { "id": "CHEM", "level": 2 } ], "tools": [ [ [ "surface_heat", 100, "LIST" ] ], [ [ "sheet_metal", -1 ] ] ], @@ -4422,7 +4416,7 @@ "subcategory": "CSC_OTHER_TOOLS", "skill_used": "fabrication", "difficulty": 5, - "book_learn": [ [ "textbook_chemistry", 5 ], [ "textbook_fabrication", 4 ] ], + "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_fabrication", 4 ] ], "time": "2 h", "autolearn": true, "qualities": [ { "id": "HAMMER", "level": 3 } ], diff --git a/data/json/recipes/recipe_vehicle.json b/data/json/recipes/recipe_vehicle.json index 4d35d9ed39cd4..613024aadfb06 100644 --- a/data/json/recipes/recipe_vehicle.json +++ b/data/json/recipes/recipe_vehicle.json @@ -712,6 +712,19 @@ "using": [ [ "rope_natural_short", 2 ] ], "components": [ [ [ "2x4", 6 ] ] ] }, + { + "type": "recipe", + "result": "wheel_metal", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_PARTS", + "skill_used": "fabrication", + "difficulty": 6, + "time": "6 h", + "autolearn": true, + "using": [ [ "blacksmithing_standard", 20 ], [ "steel_standard", 5 ] ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] + }, { "type": "recipe", "result": "steel_plate", diff --git a/data/json/recipes/recipe_weapon.json b/data/json/recipes/recipe_weapon.json index 2114b9bd293d5..ca4668cdb0a11 100644 --- a/data/json/recipes/recipe_weapon.json +++ b/data/json/recipes/recipe_weapon.json @@ -637,20 +637,11 @@ "skill_used": "mechanics", "skills_required": [ [ "gun", 3 ] ], "difficulty": 3, - "time": "1 h", + "time": "2 h", "autolearn": true, "book_learn": [ [ "manual_shotgun", 2 ], [ "manual_pistol", 2 ] ], - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "GLARE", "level": 2 } ], - "tools": [ - [ - [ "oxy_torch", 6 ], - [ "welder", 30 ], - [ "welder_crude", 45 ], - [ "toolset", 45 ], - [ "small_repairkit", 150 ], - [ "large_repairkit", 30 ] - ] - ], + "qualities": [ { "id": "SAW_M_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 3 ] ], "components": [ [ [ "shotgun_s", 1 ], [ "pipe_shotgun", 1 ] ], [ [ "pipe", 3 ] ], @@ -669,17 +660,8 @@ "time": "1 h 30 m", "autolearn": true, "book_learn": [ [ "manual_pistol", 3 ] ], - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "GLARE", "level": 2 } ], - "tools": [ - [ - [ "oxy_torch", 6 ], - [ "welder", 30 ], - [ "welder_crude", 45 ], - [ "toolset", 45 ], - [ "small_repairkit", 150 ], - [ "large_repairkit", 30 ] - ] - ], + "qualities": [ { "id": "SAW_M_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 3 ] ], "components": [ [ [ "pipe", 1 ] ], [ [ "spring", 1 ] ], [ [ "steel_chunk", 2 ] ], [ [ "scrap", 2 ] ] ] }, { @@ -693,17 +675,8 @@ "time": "2 h", "autolearn": true, "book_learn": [ [ "manual_pistol", 5 ] ], - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "GLARE", "level": 2 } ], - "tools": [ - [ - [ "oxy_torch", 6 ], - [ "welder", 30 ], - [ "welder_crude", 45 ], - [ "toolset", 45 ], - [ "small_repairkit", 150 ], - [ "large_repairkit", 30 ] - ] - ], + "qualities": [ { "id": "SAW_M_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 3 ] ], "components": [ [ [ "pipe", 1 ] ], [ [ "spring", 1 ] ], [ [ "steel_chunk", 2 ] ], [ [ "scrap", 2 ] ] ] }, { @@ -741,13 +714,7 @@ "time": "15 m", "reversible": true, "decomp_learn": 2, - "book_learn": [ - [ "recipe_bows", 2 ], - [ "manual_archery", 4 ], - [ "book_archery", 3 ], - [ "scots_cookbook", 6 ], - [ "textbook_armschina", 5 ] - ], + "book_learn": [ [ "recipe_bows", 2 ], [ "manual_archery", 4 ], [ "book_archery", 3 ], [ "textbook_armschina", 5 ] ], "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], "components": [ [ [ "2x4", 2 ], [ "stick", 4 ] ], [ [ "scrap", 1 ] ], [ [ "cordage_superior", 3, "LIST" ] ] ] }, @@ -760,13 +727,7 @@ "skills_required": [ [ "mechanics", 3 ] ], "difficulty": 5, "time": "1 h", - "book_learn": [ - [ "recipe_bows", 5 ], - [ "manual_archery", 6 ], - [ "book_archery", 6 ], - [ "scots_cookbook", 6 ], - [ "textbook_armschina", 6 ] - ], + "book_learn": [ [ "recipe_bows", 5 ], [ "manual_archery", 6 ], [ "book_archery", 6 ], [ "textbook_armschina", 6 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], "components": [ [ [ "stick", 5 ], [ "2x4", 3 ] ], [ [ "bone", 3 ], [ "bone_human", 3 ] ], [ [ "cordage_superior", 1, "LIST" ] ] ] }, @@ -852,34 +813,6 @@ "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], "components": [ [ [ "pipe", 2 ] ], [ [ "scrap", 3 ] ], [ [ "2x4", 1 ] ] ] }, - { - "type": "recipe", - "result": "pipe_combination_gun", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_RANGED", - "skill_used": "mechanics", - "skills_required": [ "gun", 5 ], - "difficulty": 7, - "time": "4 h 30 m", - "autolearn": true, - "qualities": [ - { "id": "HAMMER_FINE", "level": 1 }, - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "GLARE", "level": 1 } - ], - "tools": [ - [ - [ "oxy_torch", 7 ], - [ "welder", 36 ], - [ "welder_crude", 54 ], - [ "toolset", 54 ], - [ "small_repairkit", 180 ], - [ "large_repairkit", 75 ] - ] - ], - "components": [ [ [ "pipe", 2 ] ], [ [ "nail", 2 ] ], [ [ "spring", 1 ] ], [ [ "scrap", 3 ] ], [ [ "shotgun_d", 1 ] ] ] - }, { "type": "recipe", "result": "rifle_9mm", @@ -894,61 +827,6 @@ "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], "components": [ [ [ "pipe", 1 ] ], [ [ "scrap", 2 ] ], [ [ "2x4", 1 ] ] ] }, - { - "type": "recipe", - "result": "rifle_308", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_RANGED", - "skill_used": "mechanics", - "skills_required": [ "gun", 3 ], - "difficulty": 7, - "time": "30 m", - "reversible": true, - "autolearn": true, - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ [ [ "pipe", 2 ] ], [ [ "spring", 1 ] ], [ [ "steel_chunk", 3 ] ], [ [ "2x4", 1 ] ], [ [ "scrap", 3 ] ] ] - }, - { - "type": "recipe", - "result": "surv_carbine_223", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_RANGED", - "skill_used": "mechanics", - "skills_required": [ "gun", 3 ], - "difficulty": 7, - "time": "2 h", - "autolearn": true, - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ [ [ "pipe", 2 ] ], [ [ "spring", 1 ] ], [ [ "steel_chunk", 3 ] ], [ [ "2x4", 1 ] ], [ [ "scrap", 3 ] ] ] - }, - { - "type": "recipe", - "result": "rifle_3006", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_RANGED", - "skill_used": "mechanics", - "skills_required": [ "gun", 4 ], - "difficulty": 6, - "time": "4 h", - "autolearn": true, - "qualities": [ - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "WRENCH_FINE", "level": 1 }, - { "id": "GLARE", "level": 2 } - ], - "tools": [ - [ - [ "oxy_torch", 30 ], - [ "welder", 150 ], - [ "large_repairkit", 75 ], - [ "small_repairkit", 150 ], - [ "welder_crude", 225 ], - [ "toolset", 225 ] - ] - ], - "components": [ [ [ "pipe", 3 ] ], [ [ "spring", 2 ] ], [ [ "steel_chunk", 3 ] ], [ [ "2x4", 1 ] ], [ [ "scrap", 3 ] ] ] - }, { "type": "recipe", "result": "triple_launcher_simple", @@ -959,22 +837,8 @@ "difficulty": 7, "time": "4 h", "autolearn": true, - "qualities": [ - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "WRENCH_FINE", "level": 1 }, - { "id": "GLARE", "level": 2 } - ], - "tools": [ - [ - [ "oxy_torch", 40 ], - [ "welder", 200 ], - [ "large_repairkit", 100 ], - [ "small_repairkit", 200 ], - [ "welder_crude", 300 ], - [ "toolset", 300 ] - ] - ], + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 20 ] ], "components": [ [ [ "pipe", 3 ] ], [ [ "nail", 3 ] ], [ [ "scrap", 3 ] ], [ [ "2x4", 1 ] ] ] }, { @@ -1180,22 +1044,8 @@ [ "manual_rifle", 4 ], [ "manual_launcher", 4 ] ], - "qualities": [ - { "id": "HAMMER_FINE", "level": 1 }, - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "GLARE", "level": 2 } - ], - "tools": [ - [ - [ "oxy_torch", 3 ], - [ "welder", 15 ], - [ "welder_crude", 25 ], - [ "toolset", 25 ], - [ "small_repairkit", 15 ], - [ "large_repairkit", 15 ] - ] - ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 1 ] ], "components": [ [ [ "scrap", 6 ], [ "pipe", 1 ], [ "steel_chunk", 2 ] ], [ [ "plastic_chunk", 3 ] ] ] }, { @@ -1209,22 +1059,8 @@ "time": "25 m", "autolearn": true, "book_learn": [ [ "manual_fabrication", 3 ], [ "manual_shotgun", 4 ], [ "manual_smg", 4 ], [ "manual_rifle", 4 ] ], - "qualities": [ - { "id": "HAMMER_FINE", "level": 1 }, - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "GLARE", "level": 2 } - ], - "tools": [ - [ - [ "oxy_torch", 3 ], - [ "welder", 15 ], - [ "welder_crude", 25 ], - [ "toolset", 25 ], - [ "small_repairkit", 15 ], - [ "large_repairkit", 15 ] - ] - ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 1 ] ], "components": [ [ [ "scrap", 6 ], [ "pipe", 1 ], [ "steel_chunk", 2 ] ], [ [ "spring", 1 ] ], [ [ "plastic_chunk", 3 ] ] ] }, { @@ -1257,22 +1093,8 @@ "time": "20 m", "autolearn": true, "book_learn": [ [ "manual_fabrication", 2 ], [ "manual_rifle", 3 ], [ "manual_launcher", 3 ] ], - "qualities": [ - { "id": "HAMMER_FINE", "level": 1 }, - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "GLARE", "level": 2 } - ], - "tools": [ - [ - [ "oxy_torch", 2 ], - [ "welder", 10 ], - [ "welder_crude", 20 ], - [ "toolset", 20 ], - [ "small_repairkit", 10 ], - [ "large_repairkit", 10 ] - ] - ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 1 ] ], "components": [ [ [ "scrap", 6 ], [ "pipe", 1 ], [ "steel_chunk", 2 ] ], [ [ "plastic_chunk", 3 ] ] ] }, { @@ -1343,22 +1165,8 @@ "time": "30 m", "autolearn": true, "book_learn": [ [ "manual_fabrication", 3 ], [ "manual_pistol", 4 ] ], - "qualities": [ - { "id": "HAMMER_FINE", "level": 1 }, - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "GLARE", "level": 2 } - ], - "tools": [ - [ - [ "oxy_torch", 3 ], - [ "welder", 15 ], - [ "welder_crude", 25 ], - [ "toolset", 25 ], - [ "small_repairkit", 15 ], - [ "large_repairkit", 15 ] - ] - ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 1 ] ], "components": [ [ [ "scrap", 6 ], [ "pipe", 1 ], [ "steel_chunk", 3 ] ], [ [ "plastic_chunk", 3 ] ] ] }, { @@ -1378,22 +1186,8 @@ [ "manual_rifle", 4 ], [ "manual_launcher", 4 ] ], - "qualities": [ - { "id": "HAMMER_FINE", "level": 1 }, - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "GLARE", "level": 2 } - ], - "tools": [ - [ - [ "oxy_torch", 3 ], - [ "welder", 15 ], - [ "welder_crude", 25 ], - [ "toolset", 25 ], - [ "small_repairkit", 15 ], - [ "large_repairkit", 15 ] - ] - ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 1 ] ], "components": [ [ [ "scrap", 6 ], [ "pipe", 1 ], [ "steel_chunk", 2 ] ], [ [ "plastic_chunk", 3 ] ], [ [ "spring", 2 ] ] ] }, { @@ -1430,10 +1224,19 @@ "book_learn": [ [ "manual_rifle", 5 ], [ "textbook_anarch", 5 ] ], "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "DRILL", "level": 1 } ], "tools": [ - [ [ "ar15", -1 ], [ "h&k416a5", -1 ], [ "m27iar", -1 ], [ "m4a1", -1 ], [ "m16a4", -1 ] ], - [ [ "oxy_torch", 4 ], [ "welder", 20 ], [ "welder_crude", 40 ], [ "toolset", 40 ] ], + [ + [ "ar15", -1 ], + [ "ar15_retool_300blk", -1 ], + [ "ar_pistol", -1 ], + [ "oa93", -1 ], + [ "h&k416a5", -1 ], + [ "m27iar", -1 ], + [ "m4a1", -1 ], + [ "m16a4", -1 ] + ], [ [ "small_repairkit", 40 ], [ "large_repairkit", 40 ] ] ], + "using": [ [ "welding_standard", 2 ] ], "components": [ [ [ "steel_plate", 1 ], [ "steel_lump", 2 ] ], [ [ "pipe", 1 ], [ "sheet_metal_small", 1 ] ], [ [ "scrap", 1 ] ] ] }, { @@ -1448,7 +1251,10 @@ "//": "Simple to manufacture, hence it's not gonna be in published in too much detail in gun-mags.", "book_learn": [ [ "manual_rifle", 6 ], [ "textbook_anarch", 3 ] ], "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ], - "tools": [ [ [ "ar15", -1 ] ], [ [ "small_repairkit", 40 ], [ "large_repairkit", 40 ] ] ], + "tools": [ + [ [ "ar15", -1 ], [ "ar15_retool_300blk", -1 ], [ "ar_pistol", -1 ], [ "oa93", -1 ] ], + [ [ "small_repairkit", 40 ], [ "large_repairkit", 40 ] ] + ], "components": [ [ [ "sheet_metal_small", 2 ] ] ] }, { @@ -1584,13 +1390,8 @@ "time": "3 h", "autolearn": true, "book_learn": [ [ "textbook_fabrication", 2 ] ], - "qualities": [ - { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, - { "id": "WRENCH_FINE", "level": 1 }, - { "id": "GLARE", "level": 2 } - ], - "tools": [ [ [ "oxy_torch", 20 ], [ "welder", 100 ], [ "welder_crude", 150 ], [ "toolset", 150 ] ] ], + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ], + "using": [ [ "welding_standard", 10 ] ], "components": [ [ [ "pipe", 1 ] ], [ [ "2x4", 1 ], [ "stick", 1 ] ], [ [ "scrap", 2 ] ] ] }, { @@ -2021,7 +1822,7 @@ "skill_used": "fabrication", "difficulty": 7, "time": "6 h 40 m", - "book_learn": [ [ "textbook_weapwest", 6 ], [ "scots_cookbook", 8 ] ], + "book_learn": [ [ "textbook_weapwest", 6 ] ], "using": [ [ "blacksmithing_standard", 12 ], [ "steel_standard", 3 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ], @@ -2035,7 +1836,7 @@ "skill_used": "fabrication", "difficulty": 8, "time": "8 h", - "book_learn": [ [ "textbook_weapwest", 7 ], [ "scots_cookbook", 9 ] ], + "book_learn": [ [ "textbook_weapwest", 7 ] ], "using": [ [ "blacksmithing_standard", 12 ], [ "steel_standard", 3 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ], @@ -2049,7 +1850,7 @@ "skill_used": "fabrication", "difficulty": 8, "time": "7 h", - "book_learn": [ [ "textbook_weapwest", 7 ], [ "scots_cookbook", 9 ] ], + "book_learn": [ [ "textbook_weapwest", 7 ] ], "using": [ [ "blacksmithing_standard", 12 ], [ "steel_standard", 3 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ], @@ -2063,7 +1864,7 @@ "skill_used": "fabrication", "difficulty": 8, "time": "8 h", - "book_learn": [ [ "textbook_weapwest", 8 ], [ "recipe_melee", 7 ], [ "scots_cookbook", 9 ] ], + "book_learn": [ [ "textbook_weapwest", 8 ], [ "recipe_melee", 7 ] ], "using": [ [ "blacksmithing_standard", 12 ], [ "steel_standard", 3 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ], @@ -2232,7 +2033,7 @@ "skill_used": "fabrication", "difficulty": 8, "time": "8 h 10 m", - "book_learn": [ [ "textbook_weapwest", 7 ], [ "scots_cookbook", 9 ] ], + "book_learn": [ [ "textbook_weapwest", 7 ] ], "using": [ [ "blacksmithing_standard", 16 ], [ "steel_standard", 4 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ], @@ -2246,7 +2047,7 @@ "skill_used": "fabrication", "difficulty": 8, "time": "7 h", - "book_learn": [ [ "textbook_weapwest", 7 ], [ "scots_cookbook", 9 ] ], + "book_learn": [ [ "textbook_weapwest", 7 ] ], "using": [ [ "blacksmithing_standard", 16 ], [ "steel_standard", 4 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ], @@ -2277,7 +2078,7 @@ "time": "5 h 40 m", "book_learn": [ [ "textbook_weapeast", 6 ] ], "qualities": [ { "id": "SAW_W", "level": 1 }, { "id": "CUT", "level": 1 } ], - "//": "Bokken is a single piece of wood, and the heavy stick just isn't large enough.", + "//": "Bokken is a single piece of wood, and the stout branch just isn't large enough.", "components": [ [ [ "log", 1 ] ], [ @@ -2521,20 +2322,6 @@ "tools": [ ], "components": [ [ [ "rock", 5 ], [ "ceramic_shard", 5 ], [ "sharp_rock", 5 ] ], [ [ "stick", 1 ], [ "2x4", 1 ] ] ] }, - { - "type": "recipe", - "result": "laser_cannon", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_RANGED", - "skill_used": "electronics", - "skills_required": [ "gun", 1 ], - "difficulty": 5, - "time": "30 m", - "reversible": true, - "autolearn": true, - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], - "components": [ [ [ "cerberus_laser", 1 ] ], [ [ "battery_ups", 1 ] ], [ [ "cable", 15 ] ] ] - }, { "type": "recipe", "result": "knife_steak", @@ -2671,11 +2458,9 @@ "difficulty": 6, "time": "3 h", "autolearn": true, - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "GLARE", "level": 2 } ], - "tools": [ - [ [ "oxy_torch", 6 ], [ "welder", 30 ], [ "welder_crude", 45 ], [ "toolset", 45 ] ], - [ [ "small_repairkit", 150 ], [ "large_repairkit", 30 ] ] - ], + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "tools": [ [ [ "small_repairkit", 150 ], [ "large_repairkit", 30 ] ] ], + "using": [ [ "welding_standard", 3 ] ], "components": [ [ [ "m2browning", 1 ] ], [ [ "2x4", 1 ] ] ] }, { @@ -2745,7 +2530,7 @@ "book_learn": [ [ "textbook_weapeast", 4 ] ], "autolearn": true, "qualities": [ { "id": "SAW_W", "level": 1 }, { "id": "CUT", "level": 1 } ], - "//": "a long pole is a single piece of wood, and the heavy stick just isn't large enough.", + "//": "a long pole is a single piece of wood, and the stout branch just isn't large enough.", "components": [ [ [ "wood_beam", 1 ] ], [ diff --git a/data/json/recipes/weapon/explosive.json b/data/json/recipes/weapon/explosive.json index cf00b6041a1f1..e3d4f877b6b2d 100644 --- a/data/json/recipes/weapon/explosive.json +++ b/data/json/recipes/weapon/explosive.json @@ -19,10 +19,10 @@ "type": "recipe", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", - "skill_used": "cooking", - "difficulty": 7, + "skill_used": "chemistry", + "difficulty": 5, "time": "10 m", - "book_learn": [ [ "textbook_anarch", 5 ], [ "adv_chemistry", 6 ], [ "textbook_chemistry", 6 ] ], + "book_learn": [ [ "textbook_anarch", 5 ], [ "adv_chemistry", 4 ], [ "textbook_chemistry", 4 ] ], "qualities": [ { "id": "CHEM", "level": 2 } ], "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ @@ -115,11 +115,11 @@ "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", "skill_used": "fabrication", - "skills_required": [ "cooking", 6 ], + "skills_required": [ "chemistry", 5 ], "difficulty": 6, "time": "40 m", "reversible": true, - "book_learn": [ [ "recipe_labchem", 7 ], [ "textbook_anarch", 7 ] ], + "book_learn": [ [ "recipe_labchem", 5 ], [ "textbook_anarch", 7 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "pilot_light", 1 ] ], @@ -135,7 +135,7 @@ "//": "Displaces older teargas recipe. Conventional teargas grenades generally aren't trichloramine.", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "mechanics", 1 ], "difficulty": 4, "time": "8 m", @@ -154,7 +154,7 @@ "type": "recipe", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "mechanics", 1 ], "difficulty": 4, "time": "8 m", @@ -174,7 +174,7 @@ "type": "recipe", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "mechanics", 1 ], "difficulty": 4, "time": "8 m", @@ -284,7 +284,7 @@ "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", "skill_used": "fabrication", - "skills_required": [ "cooking", 5 ], + "skills_required": [ "chemistry", 4 ], "difficulty": 5, "time": "15 m", "reversible": true, @@ -326,11 +326,11 @@ "type": "recipe", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", - "skill_used": "cooking", + "skill_used": "chemistry", "skills_required": [ "mechanics", 1 ], - "difficulty": 3, + "difficulty": 2, + "book_learn": [ [ "basic_chemistry", 2 ] ], "time": "7 m 30 s", - "autolearn": true, "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "water", 1 ], [ "water_clean", 1 ], [ "salt_water", 1 ], [ "saline", 5 ] ], diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index 1892f5448f3c6..50459927e0842 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -615,6 +615,16 @@ "house_30": 50, "house_31": 50, "house_32": 50, + "house_33": 50, + "house_34": 50, + "house_35": 50, + "house_36": 50, + "house_37": 50, + "house_38": 50, + "house_39": 50, + "house_40": 50, + "house_41": 50, + "house_42": 50, "house_garage": 50, "house_garage2": 50, "house_garage3": 50, @@ -657,6 +667,8 @@ "house_vacant2": 20, "apartments_con_new": 10, "apartments_mod_new": 10, + "s_apt": 30, + "s_apt_2": 30, "school": 15, "motel_city": 10, "fishing_pond_city": 10, @@ -698,6 +710,8 @@ "shops": { "bus_station": 200, "city_block_2": 300, + "s_apt": 50, + "s_apt_2": 50, "urban_13_dense_house_apt_house": 300, "urban_14_dense_house_mart_food": 200, "town_hall": 150, @@ -727,6 +741,7 @@ "s_gun_2": 200, "s_gun_3": 200, "s_gun_4": 200, + "s_gunstore": 200, "s_clothes": 450, "s_clothes_1": 200, "s_clothes_2": 200, @@ -745,6 +760,7 @@ "s_restaurant_1": 400, "s_restaurant_2": 400, "s_restaurant_3": 400, + "s_diner": 400, "sub_station": 1600, "bank": 300, "bank_1": 300, @@ -754,6 +770,7 @@ "bar_1": 400, "s_electronics": 400, "s_electronics_1": 400, + "s_electronicstore": 400, "pawn": 300, "pawn_1": 300, "pawn_pf": 50, @@ -793,6 +810,7 @@ "home_improvement": 200, "s_lot": 400, "s_arcade": 200, + "s_games": 200, "s_jewelry": 200, "s_antique": 200, "s_gardening": 200, @@ -878,8 +896,10 @@ "movie_theater": 75, "garage_gas_city": 250, "2fmotel_city": 50, - "cs_car_dealership": 100, + "cs_car_dealership": 200, "cs_car_showroom": 100, + "s_cardealer": 200, + "s_camping": 300, "cs_gardening_allotment": 100, "cs_internet_cafe": 100, "cs_market_small": 100, diff --git a/data/json/requirements/cooking_components.json b/data/json/requirements/cooking_components.json index 2d5dd35d06441..832f913805a87 100644 --- a/data/json/requirements/cooking_components.json +++ b/data/json/requirements/cooking_components.json @@ -47,6 +47,7 @@ "components": [ [ [ "egg_bird", 1 ], + [ "egg_bird_unfert", 1 ], [ "egg_chicken", 1 ], [ "egg_grouse", 1 ], [ "egg_crow", 1 ], @@ -484,7 +485,6 @@ [ "blackberries", 1 ], [ "blueberries", 1 ], [ "cherries", 1 ], - [ "cranberries", 1 ], [ "grapefruit", 1 ], [ "grapes", 1 ], [ "kiwi", 2 ], @@ -497,6 +497,7 @@ [ "pineapple", 1 ], [ "plums", 1 ], [ "pomegranate", 1 ], + [ "pumpkin", 1 ], [ "raspberries", 1 ], [ "rose_hips", 1 ], [ "strawberries", 1 ], @@ -519,7 +520,6 @@ [ "irradiated_blackberries", 1 ], [ "irradiated_blueberries", 1 ], [ "irradiated_cherries", 1 ], - [ "irradiated_cranberries", 1 ], [ "irradiated_grapefruit", 1 ], [ "irradiated_grapes", 1 ], [ "irradiated_kiwi", 2 ], @@ -528,6 +528,7 @@ [ "irradiated_orange", 1 ], [ "irradiated_papaya", 1 ], [ "irradiated_peach", 1 ], + [ "irradiated_pumpkin", 1 ], [ "irradiated_pear", 1 ], [ "irradiated_pineapple", 1 ], [ "irradiated_plums", 1 ], diff --git a/data/json/requirements/tailoring.json b/data/json/requirements/tailoring.json index 45dda3f726fff..4718b1a98f5c7 100644 --- a/data/json/requirements/tailoring.json +++ b/data/json/requirements/tailoring.json @@ -21,11 +21,18 @@ "components": [ [ [ "chitin_piece", 1 ] ], [ [ "filament", 1, "LIST" ] ] ] }, { - "id": "armor_kevlar_plate", + "id": "armor_kevlar_rigid", "type": "requirement", "//": "Shaping and attaching a rigid Kevlar plate to something, per 300 g of rigid Kevlar. Time needed is 10 minutes per unit.", "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "kevlar_plate", 1 ] ], [ [ "superglue", 1 ] ] ] + "components": [ [ [ "rigid_kevlar_plate", 1 ] ], [ [ "superglue", 1 ] ] ] + }, + { + "id": "armor_kevlar_layered", + "type": "requirement", + "//": "Joining kevlar panels together into something like a kevlar vest or other armor per 80 g of Kevlar. Time needed is 90 minutes per unit.", + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "sheet_kevlar_layered", 1 ] ], [ [ "filament", 4, "LIST" ] ] ] }, { "id": "armor_steel_plate", @@ -224,11 +231,11 @@ "components": [ [ [ "fur", 1 ] ], [ [ "filament", 1, "LIST" ] ] ] }, { - "id": "tailoring_kevlar", + "id": "tailoring_kevlar_fabric", "type": "requirement", "//": "Crafting Kevlar items, per 101 g of Kevlar; 10 g + excessive weight of material is wasted, producing Kevlar scraps as byproducts. Time needed is usually 90 minutes per unit if hand-stitching.", "qualities": [ { "id": "SEW", "level": 2 }, { "id": "CUT", "level": 1 } ], - "components": [ [ [ "sheet_kevlar", 22 ] ], [ [ "thread_kevlar", 1 ] ] ] + "components": [ [ [ "sheet_kevlar", 22 ] ], [ [ "filament", 1, "LIST" ] ] ] }, { "id": "tailoring_leather", diff --git a/data/json/scenarios.json b/data/json/scenarios.json index d38fbc73a18de..0b51973a7d253 100644 --- a/data/json/scenarios.json +++ b/data/json/scenarios.json @@ -115,6 +115,33 @@ ], "missions": [ "MISSION_INFECTED_START_FIND_ANTIBIOTICS" ] }, + { + "type": "scenario", + "ident": "fungal_start", + "name": "Challenge - Fungal Infection", + "points": -8, + "description": "You feel spores crawling beneath your skin. It's only a matter of time.", + "start_name": "In Town", + "blacklist_professions": true, + "professions": [ "bionic_patient" ], + "allowed_locs": [ + "sloc_house", + "sloc_house_boarded", + "sloc_school", + "sloc_grocery_store", + "sloc_garage", + "sloc_furniture_store", + "sloc_library", + "sloc_bookstore", + "sloc_zoo_giftshop", + "sloc_zoo_cages", + "sloc_golfcourse_mid_course", + "sloc_golfcourse_clubhouse", + "sloc_church", + "sloc_cemetery" + ], + "flags": [ "FUNGAL_INFECTION", "CHALLENGE", "LONE_START" ] + }, { "type": "scenario", "name": "Burning Building", diff --git a/data/json/scores.json b/data/json/scores.json index 7146b732a2ce1..e7ea7f4adffca 100644 --- a/data/json/scores.json +++ b/data/json/scores.json @@ -2,7 +2,7 @@ { "id": "score_kills", "type": "score", - "statistic": "num_avatar_kills" + "statistic": "num_avatar_monster_kills" }, { "id": "score_moves", diff --git a/data/json/skills.json b/data/json/skills.json index 97e0476ee1b1b..47fdf5e59e7d3 100644 --- a/data/json/skills.json +++ b/data/json/skills.json @@ -84,7 +84,7 @@ "type": "skill", "ident": "cooking", "name": { "str": "cooking" }, - "description": "Your skill in combining food ingredients to make other, tastier food items. It may also be used in certain chemical mixtures and other, more esoteric tasks.", + "description": "Your skill in combining food ingredients to make other, tastier food items.", "companion_industry_rank_factor": 1, "display_category": "display_crafting", "companion_skill_practice": [ { "skill": "menial", "weight": 15 } ] @@ -284,6 +284,15 @@ "companion_survival_rank_factor": 1, "display_category": "display_interaction" }, + { + "type": "skill", + "ident": "chemistry", + "name": { "str": "chemistry" }, + "description": "Your skill in creating certain mixtures, solutions and compounds from various chemical ingredients.", + "companion_industry_rank_factor": 1, + "display_category": "display_crafting", + "companion_skill_practice": [ { "skill": "menial", "weight": 15 } ] + }, { "type": "skill", "ident": "weapon", diff --git a/data/json/snippets/mutant_anatomy.json b/data/json/snippets/mutant_anatomy.json new file mode 100644 index 0000000000000..74d018aed5fc3 --- /dev/null +++ b/data/json/snippets/mutant_anatomy.json @@ -0,0 +1,201 @@ +[ + { + "type": "snippet", + "category": "mutant_meat_desc", + "text": [ + { + "id": "mutant_meat_1", + "text": "Meat from a heavily mutated animal. It has an unsettling loose and spongy texture, but smells… mostly normal. There are strange tangles and formations in it that don't appear natural at all: bits of bone and hair crusted up inside the muscle, as if trying to form another organism. Still, seems digestible at least, if you cook it and remove the worst parts." + }, + { + "id": "mutant_meat_2", + "text": "Meat from a heavily mutated animal. Although it came from muscle tissue, it has a curious swirling grain pattern, and at the center of each grain is a knot of hard, cartilaginous tissue. It smells offputting." + }, + { + "id": "mutant_meat_3", + "text": "Meat from a heavily mutated animal. This is from muscle, but in the fascial tissue between the muscles, thick spiny hairs have grown. Foul smelling, cream-colored fluid gushes out whenever a hair pulls loose." + }, + { + "id": "mutant_meat_4", + "text": "Meat from a heavily mutated animal. Although this came from muscle, it has a thick cordlike texture and smells like leather and bread mold." + } + ] + }, + { + "type": "snippet", + "category": "cooked_mutant_meat_desc", + "text": [ + { + "id": "cooked_mutant_meat_1", + "text": "This is a cooked chunk of meat from a mutated animal. It has an unsettling, spongy texture, but otherwise tastes… mostly normal. Hopefully you got all the bits of hair and bone out…" + }, + { + "id": "cooked_mutant_meat_2", + "text": "This is a cooked chunk of meat from a mutated animal. You thought you'd cleared out all the gross parts, but while cooking, a fluid-filled sac inside burst and covered it in some kind of thick grease." + }, + { + "id": "cooked_mutant_meat_3", + "text": "This is a cooked chunk of meat from a mutated animal. The surface is peppered with divets from the pieces you had to dig out to make it seem edible." + }, + { + "id": "cooked_mutant_meat_4", + "text": "This is a cooked chunk of meat from a mutated animal. Heat caused the muscles to twist and move as if they were alive, and now it has writhed itself into a dense knot." + } + ] + }, + { + "type": "snippet", + "category": "bug_organs_desc", + "text": [ + { + "id": "bug_organs_1", + "text": "These organs came from a giant mutant bug, and you really aren't sure what to make of them. There are things you've never seen in any anatomy book, with spines and hair and other unidentified parts protruding off seemingly at random." + }, + { + "id": "bug_organs_2", + "text": "These organs came from a giant mutant bug. They have a sickly green color, and one of them ripped when you were removing it, revealing an inner surface that looks like row upon row of human fingers, nails and all." + }, + { + "id": "bug_organs_3", + "text": "This is a huge, thick, fleshy sac you removed from a giant mutant bug. The surface is covered in smooth, soft skin, and beneath it is a coiled, twisted mess of cordlike tissue." + }, + { + "id": "bug_organs_4", + "text": "This is a long, corded organ you removed from a giant mutant bug. It ran from the head to the abdomen and has long tendrils coming off it, not unlike a spinal cord." + }, + { + "id": "bug_organs_5", + "text": "This is a meaty grey organ you removed from a mutant. It has a chalky yellow coating that burns your skin, and several unidentifiable fleshy tubes sticking out of it. The smell it gives off stings your nostrils. You're pretty confident no natural creature has one of these." + }, + { + "id": "bug_organs_6", + "text": "This organ meat, retrieved from a mutated creature, looks like a series of small mammalian hearts arranged in series on a long fleshy tube. At the end of the chain is a large fleshy sac resembling a stomach." + } + ] + }, + { + "type": "snippet", + "category": "mutant_lung_desc", + "text": [ + { + "id": "mutant_lung_1", + "text": "You're pretty sure this is lung tissue. It looks like a lung from a larger mammal, like a dog, but instead of a few distinct lobes, it has dozens of lobes arranged in sheets. Strange spindles and gnarled tumescences dot the surface." + }, + { + "id": "mutant_lung_2", + "text": "You're pretty sure this is lung tissue. It has a vaguely wing-like shape, with a series of nodules around what would be the trailing edge of the 'wing'. A cluster of quills in each corner of the organ held it to the bug's carapace like clasps." + } + ] + }, + { + "type": "snippet", + "category": "chitin_desc", + "text": [ + { + "id": "chitin_1", + "text": "A piece of a bug's exoskeleton, but mutated. The inner side is lined with veins and strange hooked protuberances." + }, + { + "id": "chitin_2", + "text": "A piece of a bug's exoskeleton. Stringy lines of nervous tissue and blood vessels still cling to the inner surface." + } + ] + }, + { + "type": "snippet", + "category": "endochitin_desc", + "text": [ + { + "id": "endochitin_1", + "text": "A piece of rigid, tube-shaped chitin from the inside of a giant bug. It seemed to be performing some kind of support role. You're quite sure normal insects don't have these." + }, + { + "id": "endochitin_2", + "text": "A long, flexible rod of chitin from inside a giant mutant bug. It is laced with blood vessels and chitinous nodules." + } + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "As you peel away the outer shell, you find veins lining the chitin plates", + "With the creature dead, its carapace comes away surprisingly easily", + "There's a thin membrane, much like skin, spread over the chitin of this creature", + "Under the carapace of this mutant is a bristly, velcro-like material", + "The anatomy concealed beneath seems almost like a small mammal given a shell and twisted into the shape of an arthropod", + "You crack the beast open like a horrific lobster", + "The chitin holds tight to the creature, and you need to snap and tear it away, sawing at tough fibers beneath" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "Inside, half-formed organs press against spongy meat that doesn't look anything like raw arthropod meat from normal creatures", + "You find a collection of hooked spines beneath that seem to have been clasping it on somehow", + "Inside is a complex, still-squirming mess of strange appendages and organs that bear only a passing resemblance to any natural creature", + "Beneath the chitin, the meat is covered in thick, bristly hair hiding a chaotic bramble of half-formed, mutated organs", + "Inside is a tangled mess of organs and tissues that do not appear to entirely natural", + "Inside the creature you find lungs, hearts, and intestines more like a mammal than a giant bug" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "The meat inside gives off a horrifying stench, and seems to be covered in thin damp hair, like a newborn animal gone horribly wrong", + "Small bundles of fiber break loose as you work, splitting open to reveal twisted, half-formed copies of the creature itself", + "It is difficult to work, as the spongey tissue tears apart under your tools" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "", + "Steaming puddles of acid spill from its outer shell as you pull it back", + "With the creature dead, its carapace comes away surprisingly easily", + "Steaming acid burbles from the creature's chitin as you peel it back", + "Several acid glands rupture as you peel back the carapace, sending streams of steaming caustic fluids spraying around" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "", + "The organs themselves have an acrid odour, but don't seem as caustically acidic as the outer shell", + "You carefully avoid breaking through pockets of what you think may be acid-secreting glands", + "Thick, ropey cords of tissue beneath its chitin protect an inner layer of strange organs, resembling those of a bird more than anything" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "", + "The powerfully acidic vapors coming from the carcass make it hard to work", + "The tissues of the creature are full of half-formed organs, their purpose unclear", + "Several times, you nearly burn yourself piercing a concealed gland full of acid" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + ".", + ". .", + ". . ." + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + ".", + ". .", + ". . ." + ] + } +] diff --git a/data/json/statistics.json b/data/json/statistics.json index e9d9fd5381aa2..cec40e76fe21d 100644 --- a/data/json/statistics.json +++ b/data/json/statistics.json @@ -21,16 +21,23 @@ "description": { "str": "wake up", "str_pl": "times woken up" } }, { - "id": "avatar_kills", + "id": "avatar_kills_monster", "type": "event_transformation", "event_type": "character_kills_monster", "value_constraints": { "killer": { "equals_statistic": "avatar_id" } }, "drop_fields": [ "killer" ] }, + { + "id": "avatar_kills_character", + "type": "event_transformation", + "event_type": "character_kills_character", + "value_constraints": { "killer": { "equals_statistic": "avatar_id" } }, + "drop_fields": [ "killer" ] + }, { "id": "avatar_species_kills", "type": "event_transformation", - "event_transformation": "avatar_kills", + "event_transformation": "avatar_kills_monster", "new_fields": { "species": { "species_of_monster": "victim_type" } }, "drop_fields": [ "victim_type" ] }, @@ -38,15 +45,22 @@ "id": "avatar_zombie_kills", "type": "event_transformation", "event_transformation": "avatar_species_kills", - "value_constraints": { "species": { "equals": "ZOMBIE" } } + "value_constraints": { "species": { "equals": [ "species_id", "ZOMBIE" ] } } }, { - "id": "num_avatar_kills", + "id": "num_avatar_monster_kills", "type": "event_statistic", "stat_type": "count", - "event_transformation": "avatar_kills", + "event_transformation": "avatar_kills_monster", "description": { "str": "monster killed", "str_pl": "monsters killed" } }, + { + "id": "num_avatar_character_kills", + "type": "event_statistic", + "stat_type": "count", + "event_transformation": "avatar_kills_character", + "description": { "str": "NPC killed", "str_pl": "NPCs killed" } + }, { "id": "num_avatar_zombie_kills", "type": "event_statistic", @@ -118,7 +132,11 @@ "id": "moves_walked", "type": "event_transformation", "event_transformation": "moves_expand_pre_move_mode", - "value_constraints": { "movement_mode": { "equals": "walk" }, "mounted": { "equals": false }, "swimming": { "equals": false } } + "value_constraints": { + "movement_mode": { "equals": [ "character_movemode", "walk" ] }, + "mounted": { "equals": false }, + "swimming": { "equals": false } + } }, { "id": "moves_mounted", @@ -130,13 +148,21 @@ "id": "moves_ran", "type": "event_transformation", "event_transformation": "moves_expand_pre_move_mode", - "value_constraints": { "movement_mode": { "equals": "run" }, "mounted": { "equals": false }, "swimming": { "equals": false } } + "value_constraints": { + "movement_mode": { "equals": [ "character_movemode", "run" ] }, + "mounted": { "equals": false }, + "swimming": { "equals": false } + } }, { "id": "moves_crouched", "type": "event_transformation", "event_transformation": "moves_expand_pre_move_mode", - "value_constraints": { "movement_mode": { "equals": "crouch" }, "mounted": { "equals": false }, "swimming": { "equals": false } } + "value_constraints": { + "movement_mode": { "equals": [ "character_movemode", "crouch" ] }, + "mounted": { "equals": false }, + "swimming": { "equals": false } + } }, { "id": "moves_swam", @@ -154,7 +180,7 @@ "id": "moves_sharp_terrain", "type": "event_transformation", "event_transformation": "moves_with_terrain_flags", - "value_constraints": { "terrain_flag": { "equals": "SHARP" } } + "value_constraints": { "terrain_flag": { "equals": [ "string", "SHARP" ] } } }, { "id": "num_moves_walked", @@ -228,5 +254,88 @@ "field": "z", "event_transformation": "moves_swam_underwater", "description": { "str_sp": "minimum z level reached underwater" } + }, + { + "id": "avatar_wields_item", + "type": "event_transformation", + "event_type": "character_wields_item", + "value_constraints": { "character": { "equals_statistic": "avatar_id" } }, + "drop_fields": [ "character" ] + }, + { + "id": "avatar_last_item_wielded", + "type": "event_statistic", + "stat_type": "last_value", + "event_transformation": "avatar_wields_item", + "field": "itype" + }, + { + "id": "avatar_wields_crowbar", + "type": "event_transformation", + "event_transformation": "avatar_wields_item", + "value_constraints": { "itype": { "equals": [ "itype_id", "crowbar" ] } }, + "drop_fields": [ "itype" ] + }, + { + "id": "num_avatar_wields_crowbar", + "type": "event_statistic", + "stat_type": "count", + "event_transformation": "avatar_wields_crowbar", + "description": { "str": "time wielded crowbar", "str_pl": "times wielded crowbar" } + }, + { + "id": "avatar_wears_item", + "type": "event_transformation", + "event_type": "character_wears_item", + "value_constraints": { "character": { "equals_statistic": "avatar_id" } }, + "drop_fields": [ "character" ] + }, + { + "id": "avatar_wears_power_armor_heavy", + "type": "event_transformation", + "event_transformation": "avatar_wears_item", + "value_constraints": { "itype": { "equals": [ "itype_id", "power_armor_heavy" ] } }, + "drop_fields": [ "itype" ] + }, + { + "id": "num_avatar_wears_power_armor_heavy", + "type": "event_statistic", + "stat_type": "count", + "event_transformation": "avatar_wears_power_armor_heavy", + "description": { "str": "time worn tank suit", "str_pl": "times worn tank suit" } + }, + { + "id": "first_omt", + "type": "event_statistic", + "stat_type": "first_value", + "event_type": "avatar_enters_omt", + "field": "pos" + }, + { + "id": "avatar_enters_first_omt", + "type": "event_transformation", + "event_type": "avatar_enters_omt", + "value_constraints": { "pos": { "equals_statistic": "first_omt" } }, + "drop_fields": [ "oter_id" ] + }, + { + "id": "num_avatar_enter_first_omt", + "type": "event_statistic", + "stat_type": "count", + "event_transformation": "avatar_enters_first_omt" + }, + { + "id": "avatar_enters_lab_finale", + "type": "event_transformation", + "event_type": "avatar_enters_omt", + "value_constraints": { "oter_id": { "equals": [ "oter_id", "lab_finale" ] } }, + "drop_fields": [ "oter_id" ] + }, + { + "id": "num_avatar_enter_lab_finale", + "type": "event_statistic", + "stat_type": "count", + "event_transformation": "avatar_enters_lab_finale", + "description": { "str": "time entered lab finale", "str_pl": "times entered lab finale" } } ] diff --git a/data/json/techniques.json b/data/json/techniques.json index b9c99e8a0d397..9d8a05cd7b4b1 100644 --- a/data/json/techniques.json +++ b/data/json/techniques.json @@ -1089,7 +1089,7 @@ { "type": "technique", "id": "tec_swordsmanship_mordhau", - "name": "Deathblow", + "name": "Mordhau", "messages": [ "You flip your weapon around and deliver a mordhau to %s", " flips their weapon around and smashes down on %s" diff --git a/data/json/tool_qualities.json b/data/json/tool_qualities.json index 35e6d2ae09eff..e370eee3f1436 100644 --- a/data/json/tool_qualities.json +++ b/data/json/tool_qualities.json @@ -176,6 +176,12 @@ "id": "SELF_JACK", "name": { "str": "self jacking" } }, + { + "type": "tool_quality", + "id": "HOSE", + "name": { "str": "siphoning" }, + "usages": [ [ 1, [ "SIPHON" ] ] ] + }, { "type": "tool_quality", "id": "CHISEL", diff --git a/data/json/uncraft/armor/pets_dog.json b/data/json/uncraft/armor/pets_dog.json index eb7bcb2e48a0f..8358112964928 100644 --- a/data/json/uncraft/armor/pets_dog.json +++ b/data/json/uncraft/armor/pets_dog.json @@ -51,7 +51,7 @@ "difficulty": 1, "time": "10 s", "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "kevlar_plate", 6 ] ] ] + "components": [ [ [ "sheet_kevlar_layered", 6 ] ] ] }, { "result": "rubber_harness_dog", diff --git a/data/json/uncraft/armor/suit.json b/data/json/uncraft/armor/suit.json index 52612425dd4e9..408a8dce08a5d 100644 --- a/data/json/uncraft/armor/suit.json +++ b/data/json/uncraft/armor/suit.json @@ -6,7 +6,7 @@ "difficulty": 3, "time": "5 m", "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "rag", 33 ] ], [ [ "leather", 35 ] ], [ [ "scrap", 24 ] ], [ [ "kevlar_plate", 48 ] ] ] + "components": [ [ [ "rag", 33 ] ], [ [ "leather", 35 ] ], [ [ "scrap", 24 ] ], [ [ "sheet_kevlar_layered", 48 ] ] ] }, { "result": "xlsurvivor_suit", @@ -15,6 +15,6 @@ "difficulty": 3, "time": "150 s", "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "rag", 23 ] ], [ [ "leather", 25 ] ], [ [ "scrap", 12 ] ], [ [ "kevlar_plate", 24 ] ] ] + "components": [ [ [ "rag", 23 ] ], [ [ "leather", 25 ] ], [ [ "scrap", 12 ] ], [ [ "sheet_kevlar_layered", 24 ] ] ] } ] diff --git a/data/json/vehicle_groups.json b/data/json/vehicle_groups.json index efd1459fe5a36..0e9e5bf4c3b39 100644 --- a/data/json/vehicle_groups.json +++ b/data/json/vehicle_groups.json @@ -705,6 +705,29 @@ [ "fire_truck", 150 ] ] }, + { + "type": "vehicle_group", + "id": "dealership", + "vehicles": [ + [ "car", 500 ], + [ "electric_car", 100 ], + [ "car_sports", 300 ], + [ "car_sports_atomic", 100 ], + [ "car_sports_electric", 300 ], + [ "suv", 500 ], + [ "suv_electric", 500 ], + [ "car_mini", 500 ], + [ "beetle", 500 ], + [ "motorcycle", 200 ], + [ "superbike", 200 ], + [ "motorcycle_sidecart", 100 ], + [ "scooter", 100 ], + [ "scooter_electric", 150 ], + [ "pickup", 800 ], + [ "hippie_van", 200 ], + [ "rv", 50 ] + ] + }, { "id": "park_playground_vehicles", "type": "vehicle_group", diff --git a/data/json/vehicleparts/obsolete.json b/data/json/vehicleparts/obsolete.json index 4fc42019ad588..6bdfd8c295ff6 100644 --- a/data/json/vehicleparts/obsolete.json +++ b/data/json/vehicleparts/obsolete.json @@ -20,5 +20,19 @@ { "item": "scrap", "count": [ 4, 4 ] }, { "item": "solar_cell", "count": [ 2, 8 ] } ] + }, + { + "id": "laser_cannon", + "copy-from": "turret", + "type": "vehicle_part", + "name": { "str": "mounted Cerberus laser cannon" }, + "item": "laser_cannon", + "color": "magenta", + "broken_color": "magenta", + "breaks_into": [ { "item": "scrap", "count": 14 }, { "item": "steel_chunk", "count": 6 }, { "item": "steel_lump", "count": 2 } ], + "requirements": { + "install": { "skills": [ [ "mechanics", 5 ], [ "electronics", 5 ] ] }, + "removal": { "skills": [ [ "mechanics", 3 ] ] } + } } ] diff --git a/data/json/vehicleparts/rotor.json b/data/json/vehicleparts/rotor.json index c3452b708d49e..664869ac9d7ca 100644 --- a/data/json/vehicleparts/rotor.json +++ b/data/json/vehicleparts/rotor.json @@ -7,7 +7,7 @@ "color": "light_blue", "broken_symbol": "O", "broken_color": "light_gray", - "flags": [ "ROTOR", "NO_INSTALL_PLAYER", "NO_UNINSTALL", "NO_REPAIR", "NO_MODIFY_VEHICLE" ], + "flags": [ "ROTOR", "NO_INSTALL_PLAYER", "NO_REPAIR", "SMASH_REMOVE" ], "description": "A set of aerofoil helicopter rotors, when spun at high speed, they generate thrust via lift." }, { @@ -21,6 +21,7 @@ "durability": 450, "description": "A set of four military-grade helicopter rotor blades, used to provide lift by rotation.", "damage_modifier": 80, + "requirements": { "removal": { "skills": [ [ "mechanics", 3 ] ], "time": "1 h", "using": "vehicle_weld_removal" } }, "breaks_into": [ { "item": "scrap", "count": [ 15, 30 ] }, { "item": "steel_chunk", "count": [ 8, 16 ] } ], "damage_reduction": { "all": 66 } }, @@ -35,6 +36,7 @@ "durability": 100, "description": "A set of four military-grade helicopter rotor blades, used to provide lift by rotation.", "damage_modifier": 80, + "requirements": { "removal": { "skills": [ [ "mechanics", 3 ] ], "time": "1 h", "using": "vehicle_weld_removal" } }, "breaks_into": [ { "item": "scrap", "count": [ 8, 15 ] }, { "item": "steel_chunk", "count": [ 2, 8 ] } ], "damage_reduction": { "all": 22 } }, diff --git a/data/json/vehicleparts/turret.json b/data/json/vehicleparts/turret.json index 88b0404f7352d..6dea634dfc789 100644 --- a/data/json/vehicleparts/turret.json +++ b/data/json/vehicleparts/turret.json @@ -91,25 +91,22 @@ } }, { - "id": "laser_cannon", + "id": "m249", "copy-from": "turret", "type": "vehicle_part", - "name": { "str": "mounted Cerberus laser cannon" }, - "item": "laser_cannon", - "color": "magenta", - "broken_color": "magenta", - "breaks_into": [ { "item": "scrap", "count": 14 }, { "item": "steel_chunk", "count": 6 }, { "item": "steel_lump", "count": 2 } ], - "requirements": { - "install": { "skills": [ [ "mechanics", 5 ], [ "electronics", 5 ] ] }, - "removal": { "skills": [ [ "mechanics", 3 ] ] } - } + "name": { "str": "mounted M249" }, + "item": "m249", + "color": "cyan", + "broken_color": "cyan", + "breaks_into": [ { "item": "scrap", "count": 24 }, { "item": "steel_chunk", "count": 9 }, { "item": "steel_lump", "count": 3 } ], + "requirements": { "install": { "skills": [ [ "mechanics", 3 ], [ "rifle", 1 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ] } } }, { - "id": "m249", + "id": "m249_semi", "copy-from": "turret", "type": "vehicle_part", - "name": { "str": "mounted M249" }, - "item": "m249", + "name": { "str": "mounted M249S" }, + "item": "m249_semi", "color": "cyan", "broken_color": "cyan", "breaks_into": [ { "item": "scrap", "count": 24 }, { "item": "steel_chunk", "count": 9 }, { "item": "steel_lump", "count": 3 } ], @@ -181,6 +178,17 @@ "breaks_into": [ { "item": "scrap", "count": 24 }, { "item": "steel_chunk", "count": 10 }, { "item": "steel_lump", "count": 6 } ], "requirements": { "install": { "skills": [ [ "mechanics", 4 ], [ "rifle", 2 ] ] }, "removal": { "skills": [ [ "mechanics", 2 ] ] } } }, + { + "id": "mounted_m60_semi", + "copy-from": "turret", + "type": "vehicle_part", + "name": { "str": "mounted M60 Semi Auto" }, + "item": "m60_semi", + "color": "cyan", + "broken_color": "cyan", + "breaks_into": [ { "item": "scrap", "count": 24 }, { "item": "steel_chunk", "count": 10 }, { "item": "steel_lump", "count": 6 } ], + "requirements": { "install": { "skills": [ [ "mechanics", 4 ], [ "rifle", 2 ] ] }, "removal": { "skills": [ [ "mechanics", 2 ] ] } } + }, { "id": "mounted_mk19", "copy-from": "turret", diff --git a/data/json/vehicleparts/vehicle_parts.json b/data/json/vehicleparts/vehicle_parts.json index 3b98fcf0483eb..1059a6a3dd9b5 100644 --- a/data/json/vehicleparts/vehicle_parts.json +++ b/data/json/vehicleparts/vehicle_parts.json @@ -127,7 +127,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "15 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "SEAT", "BOARDABLE", "CARGO", "BELTABLE" ], + "flags": [ "SEAT", "BOARDABLE", "CARGO", "BELTABLE", "SIMPLE_PART" ], "breaks_into": "ig_vp_seat", "damage_reduction": { "all": 2 } }, @@ -162,7 +162,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "15 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "BED", "SEAT", "BOARDABLE", "BELTABLE", "CARGO" ], + "flags": [ "BED", "SEAT", "BOARDABLE", "BELTABLE", "CARGO", "SIMPLE_PART" ], "breaks_into": "ig_vp_seat", "damage_reduction": { "all": 3 } }, @@ -589,7 +589,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW" ], + "flags": [ "CARGO", "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW", "SIMPLE_PART" ], "breaks_into": "ig_vp_frame", "damage_reduction": { "all": 21 } }, @@ -613,7 +613,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "OBSTACLE", "OPAQUE", "OPENABLE", "BOARDABLE" ], + "flags": [ "CARGO", "OBSTACLE", "OPAQUE", "OPENABLE", "BOARDABLE", "SIMPLE_PART" ], "breaks_into": "ig_vp_frame", "damage_reduction": { "all": 28 } }, @@ -637,7 +637,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW" ], + "flags": [ "CARGO", "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW", "SIMPLE_PART" ], "breaks_into": "ig_vp_hdframe", "damage_reduction": { "all": 68 } }, @@ -661,7 +661,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "OBSTACLE", "OPAQUE", "OPENABLE", "BOARDABLE" ], + "flags": [ "CARGO", "OBSTACLE", "OPAQUE", "OPENABLE", "BOARDABLE", "SIMPLE_PART" ], "breaks_into": "ig_vp_hdframe", "damage_reduction": { "all": 75 } }, @@ -684,7 +684,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "OBSTACLE", "OPAQUE", "OPENABLE", "ROOF", "BOARDABLE" ], + "flags": [ "OBSTACLE", "OPAQUE", "OPENABLE", "ROOF", "BOARDABLE", "SIMPLE_PART" ], "breaks_into": "ig_vp_frame", "damage_reduction": { "all": 28 } }, @@ -708,7 +708,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED" ], + "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED", "SIMPLE_PART" ], "breaks_into": "ig_vp_frame", "damage_reduction": { "all": 30 } }, @@ -732,7 +732,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED", "OPAQUE" ], + "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED", "OPAQUE", "SIMPLE_PART" ], "breaks_into": "ig_vp_frame", "damage_reduction": { "all": 34 } }, @@ -756,7 +756,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED" ], + "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED", "SIMPLE_PART" ], "breaks_into": "ig_vp_hdframe", "damage_reduction": { "all": 78 } }, @@ -780,7 +780,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED", "OPAQUE" ], + "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED", "OPAQUE", "SIMPLE_PART" ], "breaks_into": "ig_vp_hdframe", "damage_reduction": { "all": 80 } }, @@ -1154,7 +1154,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "LOCKABLE_CARGO", "COVERED", "BOARDABLE" ], + "flags": [ "CARGO", "LOCKABLE_CARGO", "COVERED", "BOARDABLE", "SIMPLE_PART" ], "breaks_into": "ig_vp_frame", "damage_reduction": { "all": 30 } }, @@ -1515,7 +1515,7 @@ "repair": { "skills": [ [ "mechanics", 7 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, "flags": [ "FLOATS", "BOARDABLE" ], - "breaks_into": [ { "item": "kevlar_plate", "count": [ 1, 3 ] } ], + "breaks_into": [ { "item": "sheet_kevlar", "count": [ 1, 3 ] } ], "damage_reduction": { "all": 14 } }, { @@ -1741,6 +1741,7 @@ }, "flags": [ "CTRL_ELECTRONIC", "ENABLED_DRAINS_EPOWER", "COOLER", "EMITTER" ], "emissions": [ "emit_cooler_vehicle" ], + "exhaust": [ "emit_heater_vehicle" ], "breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ], "damage_reduction": { "all": 15 } }, @@ -2628,7 +2629,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "LOW_FINAL_AIR_DRAG", "NO_ROOF_NEEDED", "WINDOW" ], + "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "LOW_FINAL_AIR_DRAG", "NO_ROOF_NEEDED", "WINDOW", "SIMPLE_PART" ], "breaks_into": "ig_vp_frame", "damage_reduction": { "all": 25 } }, @@ -2651,7 +2652,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "LOW_FINAL_AIR_DRAG", "WINDOW" ], + "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "LOW_FINAL_AIR_DRAG", "WINDOW", "SIMPLE_PART" ], "breaks_into": "ig_vp_hdframe", "damage_reduction": { "all": 78 } }, @@ -2674,7 +2675,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "OPAQUE", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE" ], + "flags": [ "OPAQUE", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "SIMPLE_PART" ], "breaks_into": "ig_vp_sheet_metal", "damage_reduction": { "all": 24 } }, @@ -2697,7 +2698,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_bolt", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE" ], + "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "SIMPLE_PART" ], "breaks_into": "ig_vp_frame", "damage_reduction": { "all": 26 } }, @@ -3044,7 +3045,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "15 m", "using": [ [ "vehicle_nail_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "30 m", "using": [ [ "adhesive", 2 ] ] } }, - "flags": [ "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW" ], + "flags": [ "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW", "SIMPLE_PART" ], "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ], "damage_reduction": { "all": 8 } }, @@ -3067,7 +3068,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "15 m", "using": [ [ "vehicle_nail_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "30 m", "using": [ [ "adhesive", 2 ] ] } }, - "flags": [ "OBSTACLE", "OPENABLE", "BOARDABLE", "OPAQUE" ], + "flags": [ "OBSTACLE", "OPENABLE", "BOARDABLE", "OPAQUE", "SIMPLE_PART" ], "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ], "damage_reduction": { "all": 12 } }, diff --git a/data/json/vehicles/cars.json b/data/json/vehicles/cars.json index c11a5de07b785..b7965cc0d8f3f 100644 --- a/data/json/vehicles/cars.json +++ b/data/json/vehicles/cars.json @@ -12,7 +12,7 @@ "parts": [ { "x": 0, "y": 0, "parts": [ "frame_vertical_2", "roof" ] }, { "x": 0, "y": 0, "parts": [ "reclining_seat", "seatbelt" ] }, - { "x": 0, "y": 0, "parts": [ "controls", "dashboard", "vehicle_clock", "vehicle_alarm", "horn_car" ] }, + { "x": 0, "y": 0, "parts": [ "controls", "dashboard", "vehicle_clock", "vehicle_alarm", "horn_car", "stereo" ] }, { "x": 0, "y": 1, "parts": [ "frame_vertical_2", "roof" ] }, { "x": 0, "y": 1, "parts": [ "reclining_seat", "seatbelt" ] }, { "x": 0, "y": -1, "parts": [ "frame_vertical", "door" ] }, @@ -85,6 +85,7 @@ { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "roof" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, { "x": 0, "y": 0, "part": "horn_car" }, @@ -481,6 +482,7 @@ { "x": 0, "y": 0, "part": "seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, @@ -551,6 +553,7 @@ { "x": 0, "y": 0, "part": "seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, @@ -639,6 +642,7 @@ { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, { "x": 0, "y": 0, "part": "dashboard" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, { "x": 0, "y": 0, "part": "horn_car" }, { "x": 0, "y": 0, "part": "roof" }, @@ -809,6 +813,7 @@ { "x": 0, "y": 0, "part": "seat_leather" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, { "x": 0, "y": 0, "part": "horn_car" }, @@ -932,6 +937,7 @@ { "x": 0, "y": 0, "part": "seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, diff --git a/data/json/vehicles/emergency.json b/data/json/vehicles/emergency.json index fcfd758d4aca9..cfc02a7289754 100644 --- a/data/json/vehicles/emergency.json +++ b/data/json/vehicles/emergency.json @@ -179,6 +179,7 @@ { "x": 0, "y": 0, "part": "seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, diff --git a/data/json/vehicles/trucks.json b/data/json/vehicles/trucks.json index b316984ef4c5d..a3e52fd71a15c 100644 --- a/data/json/vehicles/trucks.json +++ b/data/json/vehicles/trucks.json @@ -19,6 +19,7 @@ { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "roof" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, { "x": 0, "y": 0, "part": "horn_car" }, @@ -332,6 +333,7 @@ { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "roof" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, { "x": 0, "y": 0, "part": "horn_big" }, @@ -668,6 +670,7 @@ { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "hdroof" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "horn_big" }, diff --git a/data/json/vehicles/vans_busses.json b/data/json/vehicles/vans_busses.json index 148dafb054178..b42175f0f9516 100644 --- a/data/json/vehicles/vans_busses.json +++ b/data/json/vehicles/vans_busses.json @@ -155,6 +155,7 @@ { "x": 0, "y": 0, "part": "seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, { "x": 0, "y": 0, "part": "horn_car" }, @@ -305,6 +306,7 @@ { "x": 0, "y": 0, "part": "seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, { "x": 0, "y": 0, "part": "horn_car" }, @@ -442,6 +444,7 @@ { "x": 0, "y": 0, "part": "reclining_seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, @@ -1493,6 +1496,7 @@ { "x": 0, "y": 0, "part": "seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, @@ -1696,6 +1700,7 @@ { "x": 0, "y": 0, "part": "seat" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, @@ -1860,6 +1865,7 @@ { "x": 0, "y": 0, "part": "reclining_seat_leather" }, { "x": 0, "y": 0, "part": "seatbelt" }, { "x": 0, "y": 0, "part": "controls" }, + { "x": 0, "y": 0, "part": "stereo" }, { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, diff --git a/data/legacy/1/obsolete.json b/data/legacy/1/obsolete.json index 9a605e735ef81..5c84100845b0f 100644 --- a/data/legacy/1/obsolete.json +++ b/data/legacy/1/obsolete.json @@ -85,7 +85,7 @@ "weight": 46, "color": "red", "container": "jug_plastic", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID" ], "symbol": "~", "calories": 17, "quench": 6, diff --git a/data/mods/Aftershock/items/armor.json b/data/mods/Aftershock/items/armor.json index 56a8b35f8ace9..1a6110f9bde16 100644 --- a/data/mods/Aftershock/items/armor.json +++ b/data/mods/Aftershock/items/armor.json @@ -166,11 +166,11 @@ "type": "ARMOR", "category": "armor", "name": { "str": "Uplifted SWAT armor" }, - "//": "This is well within the pricing structure I found for ballistic vest, shins, and LBE. LEO gear ain't cheap.", "description": "An extra large suit of black bulletproof armor with lots of pockets. The word SWAT is emblazoned across the back. Specifically designed for Uplifted officers such as Mastodons.", "weight": "10 kg", "volume": "20 L", "price": 585000, + "price_postapoc": 5000, "to_hit": -3, "bashing": 6, "material": [ "kevlar", "cotton" ], @@ -184,7 +184,11 @@ "material_thickness": 9, "valid_mods": [ "steel_padded" ], "environmental_protection": 4, - "flags": [ "OVERSIZE", "POCKETS", "STURDY" ] + "flags": [ "OVERSIZE", "POCKETS", "STURDY" ], + "pocket_data": [ + { "pocket_type": "CONTAINER", "max_contains_volume": "750 ml", "max_contains_weight": "2 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "750 ml", "max_contains_weight": "2 kg", "moves": 80 } + ] }, { "id": "xlballistic_vest_empty", @@ -305,7 +309,7 @@ "flags": [ "WAIST", "WATER_FRIENDLY", "OVERSIZE" ] }, { - "id": "police_belt", + "id": "xlpolice_belt", "type": "ARMOR", "name": { "str": "XL police duty belt" }, "description": "An XL black leather belt used by extremely large uplifted police officers. It has several pouches and a holder for a baton.", diff --git a/data/mods/Aftershock/items/cbms.json b/data/mods/Aftershock/items/cbms.json index f20fc2a0f363e..ab23946b2879c 100644 --- a/data/mods/Aftershock/items/cbms.json +++ b/data/mods/Aftershock/items/cbms.json @@ -54,5 +54,15 @@ "price": 1000000, "price_postapoc": 100000, "difficulty": 8 + }, + { + "id": "afs_bio_cranialbomb", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Cranium Bomb" }, + "description": "A bomb installed where your spine meets your brain stem. It's on a timer from installation and you don't have the codes to reset the timer.", + "price": 0, + "price_postapoc": 0, + "difficulty": 8 } ] diff --git a/data/mods/Aftershock/items/inactiverobot.json b/data/mods/Aftershock/items/inactiverobot.json index 99764c450203b..f58d5d5473a25 100644 --- a/data/mods/Aftershock/items/inactiverobot.json +++ b/data/mods/Aftershock/items/inactiverobot.json @@ -19,8 +19,7 @@ "hostile_msg": "The brain blaster swivels towards you. You feel a buzzing in the air.", "difficulty": 6, "moves": 100, - "skill1": "cooking", - "skill2": "computer" + "skills": [ "cooking", "computer" ] } }, { @@ -44,8 +43,7 @@ "//": "Milspec, but was deployed in active service implying a reliable IFF", "difficulty": 9, "moves": 250, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -71,8 +69,7 @@ "//": "Milspec, clearly designed with little concern for collateral damage. What did you expect of a robo-tank?", "difficulty": 10, "moves": 500, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -98,8 +95,7 @@ "//": "Milspec, clearly designed with little concern for collateral damage. What did you expect of a chicken walker?", "difficulty": 10, "moves": 500, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -124,8 +120,7 @@ "//": "No observed open deployment, likely a prototype or secret project", "difficulty": 15, "moves": 500, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } }, { @@ -192,7 +187,13 @@ "material": "alien_resin", "symbol": ";", "color": "green", - "use_action": { "type": "place_monster", "monster_id": "afs_mon_sentinel_lx", "difficulty": 4, "moves": 100, "skill2": "computer" } + "use_action": { + "type": "place_monster", + "monster_id": "afs_mon_sentinel_lx", + "difficulty": 4, + "moves": 100, + "skills": [ "computer" ] + } }, { "id": "bot_bloodhound_drone", @@ -216,8 +217,7 @@ "difficulty": 4, "moves": 60, "place_randomly": true, - "skill1": "electronics", - "skill2": "computer" + "skills": [ "electronics", "computer" ] } } ] diff --git a/data/mods/Aftershock/items/items.json b/data/mods/Aftershock/items/items.json index 85f90622722d0..60837e919c24c 100644 --- a/data/mods/Aftershock/items/items.json +++ b/data/mods/Aftershock/items/items.json @@ -4,7 +4,7 @@ "copy-from": "fake_item", "type": "TOOL", "name": { "str_sp": "precision solderers" }, - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID" ], "qualities": [ [ "SAW_M_FINE", 1 ], [ "SCREW_FINE", 1 ], [ "CUT_FINE", 2 ], [ "BIONIC_ASSEMBLY", 2 ] ] }, { @@ -122,7 +122,7 @@ "weight": "30 g", "volume": "250 ml", "price": 0, - "material": "iron", + "material": [ "iron" ], "symbol": "*", "color": "light_green", "flags": [ "RADIOACTIVE", "LEAK_ALWAYS" ] diff --git a/data/mods/Aftershock/items/obsolete.json b/data/mods/Aftershock/items/obsolete.json index 338fad0c7e2d5..96a06e3bd73fe 100644 --- a/data/mods/Aftershock/items/obsolete.json +++ b/data/mods/Aftershock/items/obsolete.json @@ -1,4 +1,34 @@ [ + { + "type": "vehicle_part", + "id": "afs_hauling_space", + "copy-from": "cargo_space", + "name": { "str": "hauling space" }, + "looks_like": "cargo_space", + "item": "afs_hauling_space", + "location": "center", + "durability": 400, + "description": "A huge, empty space used in truck trailers to transport vast quantities of stuff.", + "size": 6000, + "breaks_into": [ { "item": "steel_lump", "count": [ 12, 18 ] }, { "item": "scrap", "count": [ 12, 18 ] } ], + "flags": [ "AISLE", "BOARDABLE", "CARGO", "ROOF" ] + }, + { + "type": "GENERIC", + "id": "afs_hauling_space", + "name": { "str": "hauling space" }, + "description": "A huge metal space used in conjunction with extension of a vehicle's roof to create a very large amount of space for transporting goods.", + "weight": "120 kg", + "to_hit": -6, + "color": "cyan", + "symbol": "]", + "looks_like": "cargo_aisle", + "material": [ "steel" ], + "volume": "100 L", + "bashing": 2, + "category": "veh_parts", + "price": 50000 + }, { "id": "afs_dough", "type": "COMESTIBLE", @@ -84,10 +114,13 @@ }, "flags": [ "WATERPROOF", "FLASH_PROTECTION", "ONLY_ONE", "STURDY" ], "looks_like": "depowered_helmet", - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_minus_battery_cell", "light_plus_battery_cell", @@ -96,7 +129,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { diff --git a/data/mods/Aftershock/items/tools.json b/data/mods/Aftershock/items/tools.json index d53e7fb9a1029..8bd700de560fa 100644 --- a/data/mods/Aftershock/items/tools.json +++ b/data/mods/Aftershock/items/tools.json @@ -46,7 +46,7 @@ "menu_text": "Turn off flashlight", "type": "transform" }, - "flags": [ "WATCH", "LIGHT_25", "CHARGEDIM", "TRADER_AVOID", "ALARMCLOCK", "NO_UNLOAD", "NO_RELOAD" ] + "flags": [ "WATCH", "LIGHT_25", "TRADER_AVOID", "ALARMCLOCK", "NO_UNLOAD", "NO_RELOAD" ] }, { "id": "afs_wraitheon_smartphone", @@ -227,7 +227,15 @@ "encumbrance": 2, "covers": [ "LEG_EITHER" ], "flags": [ "RECHARGE", "WAIST", "FRAGILE", "OVERSIZE", "WATERPROOF", "IS_UPS", "NO_RELOAD", "NO_UNLOAD" ], - "magazines": [ ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ ] + } + ] }, { "id": "adv_UPS_off", @@ -273,11 +281,14 @@ "ammo": [ "battery" ], "charges_per_use": 2, "use_action": "ROBOTCONTROL", - "magazines": [ - [ - "battery", - [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + } ] } ] diff --git a/data/mods/Aftershock/items/weapons.json b/data/mods/Aftershock/items/weapons.json index df28f3a46b786..8c94b236cbe66 100644 --- a/data/mods/Aftershock/items/weapons.json +++ b/data/mods/Aftershock/items/weapons.json @@ -24,10 +24,13 @@ "active": true }, "flags": [ "USE_UPS", "NO_UNLOAD", "NO_RELOAD" ], - "magazines": [ - [ - "battery", - [ + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "light_battery_cell", "light_minus_battery_cell", "light_plus_battery_cell", @@ -36,7 +39,7 @@ "light_minus_disposable_cell", "light_disposable_cell" ] - ] + } ] }, { @@ -181,10 +184,16 @@ "reload": 500, "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], "ammo_effects": [ "LASER", "DRAW_AS_LINE" ], - "magazines": [ - [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] - ], - "flags": [ "NEVER_JAMS", "FIRE_20", "NON-FOULING" ] + "flags": [ "NEVER_JAMS", "FIRE_20", "NON-FOULING" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] + } + ] }, { "id": "TANK", diff --git a/data/mods/Aftershock/mobs/monster_faction.json b/data/mods/Aftershock/mobs/monster_faction.json index cc042a85ab54a..5e3d92752628d 100644 --- a/data/mods/Aftershock/mobs/monster_faction.json +++ b/data/mods/Aftershock/mobs/monster_faction.json @@ -2,8 +2,8 @@ { "type": "MONSTER_FACTION", "name": "PrepNet", - "friendly": [ "Prepnet_Phyle", "human", "PrepNet", "player" ], - "neutral": "herbivore", + "friendly": [ "Prepnet_Phyle", "PrepNet" ], + "neutral": [ "herbivore", "human", "player" ], "by_mood": [ "insect", "small_animal" ], "hate": [ "fungus" ] }, @@ -18,7 +18,7 @@ "type": "MONSTER_FACTION", "name": "UPLIFT", "neutral": "herbivore", - "by_mood": [ "insect", "small_animal" ], + "by_mood": [ "insect", "small_animal", "player" ], "hate": "zombie" } ] diff --git a/data/mods/Aftershock/mobs/uplifted_monsters.json b/data/mods/Aftershock/mobs/uplifted_monsters.json index ee11c5f927cc2..68c0f64e938c9 100644 --- a/data/mods/Aftershock/mobs/uplifted_monsters.json +++ b/data/mods/Aftershock/mobs/uplifted_monsters.json @@ -15,7 +15,7 @@ "material": [ "flesh" ], "symbol": "B", "color": "dark_gray", - "aggression": 2, + "aggression": 6, "morale": 60, "melee_skill": 6, "melee_dice": 4, @@ -48,12 +48,10 @@ "vision_night": 10, "path_settings": { "max_dist": 10 }, "anger_triggers": [ "HURT", "PLAYER_NEAR_BABY" ], - "fear_triggers": [ "SOUND" ], "death_function": [ "NORMAL" ], "death_drops": "xl_uplift_death_drop", "harvest": "demihuman_large_fur", "reproduction": { "baby_monster": "mon_uplifted_bear_cub", "baby_count": 1, "baby_timer": 700 }, - "//": "Uplifts will likely outlive mankind", "baby_flags": [ "SPRING" ], "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "BLEED", "BASHES", "ATTACKMON" ] }, @@ -95,7 +93,8 @@ "material": [ "flesh" ], "symbol": "&", "color": "white", - "aggression": 1, + "aggression": 7, + "anger_triggers": [ "HURT", "PLAYER_NEAR_BABY" ], "morale": 100, "melee_skill": 6, "melee_dice": 2, diff --git a/data/mods/Aftershock/mutations/dreams.json b/data/mods/Aftershock/mutations/dreams.json index 8d9c5a3928e8c..7d497edfd3cd3 100644 --- a/data/mods/Aftershock/mutations/dreams.json +++ b/data/mods/Aftershock/mutations/dreams.json @@ -31,5 +31,41 @@ ], "category": "MIGO", "strength": 4 + }, + { + "type": "dream", + "messages": [ + "You have a strange dream about thundering ponderously through ancient, brittle tundras that crackle under your thick round feet.", + "Your dreams give you a strange, langourous, heavy feeling." + ], + "category": "MASTODON", + "strength": 1 + }, + { + "type": "dream", + "messages": [ + "You dream of swinging your heavy head to shake the clinging snow and ice from your large, limpid brown eyes. The weight is off, as if you had something… extra on either side of your mouth, and though you are surrounded by snow and bitter pelting winds, you feel confident and toasty-warm beneath your shaggy coat.", + "Your dream is a stream of shaggy loam-brown fur trailing into an ocean of punishing, icy white. Together, you are all strong. When you look around, you see elephantine faces looking back from all angles and you know they mirror your own. You just… know." + ], + "category": "MASTODON", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "You dream of your usual patient languor being interrupted by a flash of white teeth against a carmine-soaked muzzle. In an instant a thunderous fury overtakes you and you trumpet your rage… right before you bring that trumpeting snout, bring down those heavy spears of ivory on either side of it, down upon your attacker. They lie, bones shattered, bleeding out their red into the icy white and causing it to steam Just like that, your calm is restored.", + "You dream of slowly, patiently, plodding through the world to go from goal to goal, unrushed and unworried, for you are far too large and tough to kill for anyone or anything to bother trying to attack. And if they do… it'll be the last mistake of their life. Waking up gives you a brief jolt of fear and dysphoria, for your body feels so weak and fragile and incorrect compared to the powerful thing you know you are." + ], + "category": "MASTODON", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "Your thoughts within your dream may be slow, and it may take you some time to reach a conclusion, but what's the rush? What's the hurry? You are a huge and ancient thing with a pedigree that stretches back to a time before sapient life first had the gall to raise a sharpened stick and call itself superior. You are huge and powerful and all that work against you shall fall. You… you have all the time in the world, now.", + "Life is lonely without a family of Tusked Ones beside you, thundering as one through this desolate world in search of the hidden places. Perhaps… perhaps you should start your family." + ], + "category": "MASTODON", + "strength": 4 } ] diff --git a/data/mods/Aftershock/mutations/dreams_mastodon b/data/mods/Aftershock/mutations/dreams_mastodon deleted file mode 100644 index 740243bc4fc25..0000000000000 --- a/data/mods/Aftershock/mutations/dreams_mastodon +++ /dev/null @@ -1,37 +0,0 @@ -[ - -{ - "type": "dream", - "messages": [ "You have a strange dream about thundering ponderously through ancient, brittle tundras that crackle under your thick round feet.", "Your dreams give you a strange, langourous, heavy feeling." ], - "category": "MASTODON", - "strength": 1 - }, - { - "type": "dream", - "messages": [ - "You dream of swinging your heavy head to shake the clinging snow and ice from your large, limpid brown eyes. The weight is off, as if you had something… extra on either side of your mouth, and though you are surrounded by snow and bitter pelting winds, you feel confident and toasty-warm beneath your shaggy coat.", - "Your dream is a stream of shaggy loam-brown fur trailing into an ocean of punishing, icy white. Together, you are all strong. When you look around, you see elephantine faces looking back from all angles and you know they mirror your own. You just… know." - ], - "category": "MASTODON", - "strength": 2 - }, - { - "type": "dream", - "messages": [ - "You dream of your usual patient languor being interrupted by a flash of white teeth against a carmine-soaked muzzle. In an instant a thunderous fury overtakes you and you trumpet your rage… right before you bring that trumpeting snout, bring down those heavy spears of ivory on either side of it, down upon your attacker. They lie, bones shattered, bleeding out their red into the icy white and causing it to steam Just like that, your calm is restored.", - "You dream of slowly, patiently, plodding through the world to go from goal to goal, unrushed and unworried, for you are far too large and tough to kill for anyone or anything to bother trying to attack. And if they do… it'll be the last mistake of their life. Waking up gives you a brief jolt of fear and dysphoria, for your body feels so weak and fragile and incorrect compared to the powerful thing you know you are." - ], - "category": "MASTODON", - "strength": 3 - }, - { - "type": "dream", - "messages": [ - "Your thoughts within your dream may be slow, and it may take you some time to reach a conclusion, but what's the rush? What's the hurry? You are a huge and ancient thing with a pedigree that stretches back to a time before sapient life first had the gall to raise a sharpened stick and call itself superior. You are huge and powerful and all that work against you shall fall. You… you have all the time in the world, now.", - "Life is lonely without a family of Tusked Ones beside you, thundering as one through this desolate world in search of the hidden places. Perhaps… perhaps you should start your family." - ], - "category": "MASTODON", - "strength": 4 - } - -] diff --git a/data/mods/Aftershock/mutations/mutations.json b/data/mods/Aftershock/mutations/mutations.json index 1550e4b8e3c99..f95792dc2e8db 100644 --- a/data/mods/Aftershock/mutations/mutations.json +++ b/data/mods/Aftershock/mutations/mutations.json @@ -71,7 +71,7 @@ "prereqs": [ "MOUTH_TENDRILS" ], "cancels": [ "MANDIBLES" ], "category": [ "MIGO" ], - "wet_protection": [ { "part": "MOUTH", "neutral": 4 } ] + "wet_protection": [ { "part": "mouth", "neutral": 4 } ] }, { "type": "mutation", @@ -308,16 +308,16 @@ "description": "You come from uplifted animal stock. This decreases morale penalties for being wet.", "valid": false, "wet_protection": [ - { "part": "HEAD", "neutral": 9 }, - { "part": "LEG_L", "neutral": 11 }, - { "part": "LEG_R", "neutral": 11 }, - { "part": "FOOT_L", "neutral": 5 }, - { "part": "FOOT_R", "neutral": 5 }, - { "part": "ARM_L", "neutral": 11 }, - { "part": "ARM_R", "neutral": 11 }, - { "part": "HAND_L", "neutral": 16 }, - { "part": "HAND_R", "neutral": 16 }, - { "part": "TORSO", "neutral": 14 } + { "part": "head", "neutral": 9 }, + { "part": "leg_l", "neutral": 11 }, + { "part": "leg_r", "neutral": 11 }, + { "part": "foot_l", "neutral": 5 }, + { "part": "foot_r", "neutral": 5 }, + { "part": "arm_l", "neutral": 11 }, + { "part": "arm_r", "neutral": 11 }, + { "part": "hand_l", "neutral": 16 }, + { "part": "hand_r", "neutral": 16 }, + { "part": "torso", "neutral": 14 } ] }, { @@ -413,9 +413,9 @@ "description": "Your feet have grown massive and ready to support huge weight. This allows kicking attacks to do much more damage, provides natural armor, and removes the need to wear shoes; however, you cannot wear normal size shoes. Reduces wet effects.", "types": [ "LEGS" ], "category": [ "MASTODON" ], - "wet_protection": [ { "part": "FOOT_L", "neutral": 10 }, { "part": "FOOT_R", "neutral": 10 } ], + "wet_protection": [ { "part": "foot_l", "neutral": 10 }, { "part": "foot_r", "neutral": 10 } ], "destroys_gear": true, - "armor": [ { "parts": [ "FOOT_L", "FOOT_R" ], "bash": 2, "cut": 2 } ], + "armor": [ { "parts": [ "foot_l", "foot_r" ], "bash": 2, "cut": 2 } ], "attacks": { "attack_text_u": "You kick %s with your massive feet", "attack_text_npc": "%1$s kicks %2$s with their massive feet", @@ -476,7 +476,7 @@ "description": "You have a pair of long, pointed tusks, like someone weaponized an elephant. They allow you to make a strong piercing headbutt attack, but prevent wearing mouthgear that is not made of fabric.", "types": [ "HORNS" ], "prereqs": [ "HORNS" ], - "restricts_gear": [ "MOUTH" ], + "restricts_gear": [ "mouth" ], "allow_soft_gear": true, "category": [ "MASTODON" ], "threshreq": [ "THRESH_MASTODON" ], @@ -527,7 +527,8 @@ "type": "mutation", "id": "HUGE_OK", "copy-from": "HUGE_OK", - "extend": { "category": [ "MASTODON" ] } + "extend": { "category": [ "MASTODON" ], "threshreq": [ "THRESH_MASTODON" ] }, + "profession": true }, { "type": "mutation", @@ -553,7 +554,7 @@ "types": [ "MUZZLE" ], "prereqs": [ "SNOUT" ], "category": [ "MASTODON" ], - "restricts_gear": [ "MOUTH" ], + "restricts_gear": [ "mouth" ], "social_modifiers": { "intimidate": 10 }, "craft_skill_bonus": [ [ "electronics", 1 ], [ "tailor", 1 ], [ "mechanics", 1 ], [ "cooking", 1 ] ] }, @@ -590,8 +591,8 @@ "ugliness": 2, "mixed_effect": true, "description": "Your hands have fused into three fingered paws. Fine manipulation is a challenge: permanent hand encumbrance of 10, difficulty with delicate craftwork, and your gloves don't fit. But they handle water better.", - "encumbrance_always": [ [ "HAND_L", 10 ], [ "HAND_R", 10 ] ], - "restricts_gear": [ "HAND_L", "HAND_R" ], + "encumbrance_always": [ [ "hand_l", 10 ], [ "hand_r", 10 ] ], + "restricts_gear": [ "hand_l", "hand_r" ], "craft_skill_bonus": [ [ "electronics", -2 ], [ "tailor", -2 ], [ "mechanics", -2 ] ], "types": [ "HANDS" ], "cancels": [ "TALONS" ], diff --git a/data/mods/Aftershock/mutations/obsolete.json b/data/mods/Aftershock/mutations/obsolete.json index 4aa97ea93ff38..a8532f21ba237 100644 --- a/data/mods/Aftershock/mutations/obsolete.json +++ b/data/mods/Aftershock/mutations/obsolete.json @@ -45,7 +45,12 @@ { "part": "ARM_R", "neutral": 2 }, { "part": "TORSO", "neutral": 4 } ], - "armor": [ { "parts": "ALL", "cut": 1 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 1 + } + ] }, { "type": "mutation", @@ -128,7 +133,12 @@ "types": [ "SKIN" ], "changes_to": [ "MASTODON_FUR" ], "prereqs": [ "LIGHTFUR" ], - "armor": [ { "parts": "ALL", "bash": 2 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 2 + } + ] }, { "type": "mutation", @@ -144,7 +154,12 @@ "types": [ "SKIN" ], "prereqs": [ "MEDIUMFUR" ], "threshreq": [ "THRESH_MASTODON" ], - "armor": [ { "parts": "ALL", "bash": 4 } ] + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "bash": 4 + } + ] }, { "type": "mutation", diff --git a/data/mods/Aftershock/npcs/Backgrounds/BG_tableofcontents_AFS.JSON b/data/mods/Aftershock/npcs/Backgrounds/BG_tableofcontents_AFS.JSON new file mode 100644 index 0000000000000..ab902d29257da --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/BG_tableofcontents_AFS.JSON @@ -0,0 +1,72 @@ +[ + { + "id": "TALK_FRIEND_CONVERSATION", + "type": "talk_topic", + "responses": [ + { + "text": "", + "topic": "BGSS_RECENT_MUTATION_1_STORY1", + "condition": { "npc_has_trait": "BGSS_RECENT_MUTATION_1" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_UPLIFTED_ANIMAL_1_STORY1", + "condition": { "npc_has_trait": "BGSS_UPLIFTED_ANIMAL_1" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_UPLIFTED_ANIMAL_2_STORY1", + "condition": { "npc_has_trait": "BGSS_UPLIFTED_ANIMAL_2" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_UPLIFTED_ANIMAL_3_STORY1", + "condition": { "npc_has_trait": "BGSS_UPLIFTED_ANIMAL_3" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_UPLIFTED_ANIMAL_4_STORY1", + "condition": { "npc_has_trait": "BGSS_UPLIFTED_ANIMAL_4" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_UPLIFTED_ANIMAL_5_STORY1", + "condition": { "npc_has_trait": "BGSS_UPLIFTED_ANIMAL_5" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_RADIATION_1_STORY1", + "condition": { "npc_has_trait": "BGSS_RADIATION_1" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_RADIATION_2_STORY1", + "condition": { "npc_has_trait": "BGSS_RADIATION_2" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_SELFTEST_STORY1", + "condition": { "npc_has_trait": "BGSS_SELFTEST" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_VATGROWN_1_STORY1", + "condition": { "npc_has_trait": "BGSS_VATGROWN_1" }, + "switch": true + }, + { + "text": "", + "topic": "BGSS_CRIMINAL_EXPERIMENT_STORY1", + "condition": { "npc_has_trait": "BGSS_CRIMINAL_EXPERIMENT" }, + "switch": true + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/BG_trait_groups_afs.json b/data/mods/Aftershock/npcs/Backgrounds/BG_trait_groups_afs.json new file mode 100644 index 0000000000000..cf63b826f6afe --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/BG_trait_groups_afs.json @@ -0,0 +1,21 @@ +[ + { + "//": "This group picks out background traits that could apply to any mutant survivor.", + "type": "trait_group", + "id": "BG_survival_story_MUTANTS", + "subtype": "distribution", + "traits": [ + { "trait": "BGSS_RECENT_MUTATION_1" }, + { "trait": "BGSS_UPLIFTED_ANIMAL_1" }, + { "trait": "BGSS_UPLIFTED_ANIMAL_2" }, + { "trait": "BGSS_UPLIFTED_ANIMAL_3" }, + { "trait": "BGSS_UPLIFTED_ANIMAL_4" }, + { "trait": "BGSS_UPLIFTED_ANIMAL_5" }, + { "trait": "BGSS_RADIATION_1" }, + { "trait": "BGSS_RADIATION_2" }, + { "trait": "BGSS_SELFTEST" }, + { "trait": "BGSS_VATGROWN_1" }, + { "trait": "BGSS_CRIMINAL_EXPERIMENT" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/BG_traits_afs.json b/data/mods/Aftershock/npcs/Backgrounds/BG_traits_afs.json new file mode 100644 index 0000000000000..62568660c8241 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/BG_traits_afs.json @@ -0,0 +1,138 @@ +[ + { + "type": "mutation_type", + "id": "BACKGROUND_SURVIVAL_STORY" + }, + { + "type": "mutation", + "id": "BGSS_RECENT_MUTATION_1", + "name": { "str": "Survivor Story" }, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "player_display": false, + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_UPLIFTED_ANIMAL_1", + "name": { "str": "Survivor Story" }, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "player_display": false, + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_UPLIFTED_ANIMAL_2", + "name": { "str": "Survivor Story" }, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "player_display": false, + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_UPLIFTED_ANIMAL_3", + "name": { "str": "Survivor Story" }, + "player_display": false, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_UPLIFTED_ANIMAL_4", + "name": { "str": "Survivor Story" }, + "player_display": false, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_UPLIFTED_ANIMAL_5", + "name": { "str": "Survivor Story" }, + "player_display": false, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_RADIATION_1", + "name": { "str": "Survivor Story" }, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "player_display": false, + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_RADIATION_2", + "name": { "str": "Survivor Story" }, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "player_display": false, + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_SELFTEST", + "name": { "str": "Survivor Story" }, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "player_display": false, + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_VATGROWN_1", + "name": { "str": "Survivor" }, + "player_display": false, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + }, + { + "type": "mutation", + "id": "BGSS_CRIMINAL_EXPERIMENT", + "name": { "str": "Survivor Story" }, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", + "player_display": false, + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], + "flags": [ "BG_SURVIVAL_STORY" ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/criminal_experiment.json b/data/mods/Aftershock/npcs/Backgrounds/criminal_experiment.json new file mode 100644 index 0000000000000..992294dd1cc97 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/criminal_experiment.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_CRIMINAL_EXPERIMENT_STORY1", + "type": "talk_topic", + "dynamic_line": "I underwent experimental treatments paid for by the cartels to become a more fearsome enforcer.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_CRIMINAL_EXPERIMENT_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_CRIMINAL_EXPERIMENT_STORY2", + "type": "talk_topic", + "dynamic_line": "Half of the guys I underwent gene therapy with died, but hey if I had to guess 90 percent of everyone is dead now?", + "responses": [ + { "text": "Tell me more?", "topic": "BGSS_CRIMINAL_EXPERIMENT_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_CRIMINAL_EXPERIMENT_STORY3", + "type": "talk_topic", + "dynamic_line": "Only the insane will prosper.", + "responses": [ + { "text": "How did it end?", "topic": "BGSS_CRIMINAL_EXPERIMENT_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/npc_classes_mutant.json b/data/mods/Aftershock/npcs/Backgrounds/npc_classes_mutant.json new file mode 100644 index 0000000000000..ab0677b3ac616 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/npc_classes_mutant.json @@ -0,0 +1,385 @@ +[ + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_LIZARD", + "name": "Lizard Mutant", + "job_description": "I'm looking for lizard mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_str": 4, + "bonus_dex": 2, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_lizard" }, + { "distribution": [ { "group": "trait_group_lizard_nonthres" }, { "group": "trait_group_lizard_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_MEDICAL", + "name": "Medical Mutant", + "job_description": "I'm looking for medical mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_medical" }, + { + "distribution": [ { "group": "trait_group_medical_nonthres" }, { "group": "trait_group_medical_postthres" } ] + } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_BIRD", + "name": "Bird Mutant", + "job_description": "I'm looking for bird mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 4, 8 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_dex": 4, + "bonus_per": 7, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_bird" }, + { "distribution": [ { "group": "trait_group_bird_nonthres" }, { "group": "trait_group_bird_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_FISH", + "name": "Fish Mutant", + "job_description": "I'm looking for fish mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 4, 8 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "swimming", "bonus": { "rng": [ 5, 15 ] } } + ], + "bonus_dex": 7, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_fish" }, + { "distribution": [ { "group": "trait_group_fish_nonthres" }, { "group": "trait_group_fish_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_BEAST", + "name": "Beast Mutant", + "job_description": "I'm looking for beast mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 4, 8 ] } }, + { "skill": "melee", "bonus": { "rng": [ 4, 8 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 4, 8 ] } } + ], + "bonus_str": 7, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_beast" }, + { "distribution": [ { "group": "trait_group_beast_nonthres" }, { "group": "trait_group_beast_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_URSINE", + "name": "Ursine Mutant", + "job_description": "I'm looking for ursine mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_str": 11, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_ursine" }, + { "distribution": [ { "group": "trait_group_ursine_nonthres" }, { "group": "trait_group_ursine_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_FELINE", + "name": "Feline Mutant", + "job_description": "I'm looking for feline mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_dex": 4, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_feline" }, + { "distribution": [ { "group": "trait_group_feline_nonthres" }, { "group": "trait_group_feline_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_LUPINE", + "name": "Lupine Mutant", + "job_description": "I'm looking for lupine mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_str": 4, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_lupine" }, + { "distribution": [ { "group": "trait_group_lupine_nonthres" }, { "group": "trait_group_lupine_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_CATTLE", + "name": "Cattle Mutant", + "job_description": "I'm looking for cattle mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_str": 6, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_cattle" }, + { "distribution": [ { "group": "trait_group_cattle_nonthres" }, { "group": "trait_group_cattle_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_INSECT", + "name": "Insect Mutant", + "job_description": "I'm looking for insect mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_str": 1, + "bonus_dex": 1, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_insect" }, + { "distribution": [ { "group": "trait_group_insect_nonthres" }, { "group": "trait_group_insect_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_PLANT", + "name": "Plant Mutant", + "job_description": "I'm looking for plant mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_str": 2, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_plant" }, + { "distribution": [ { "group": "trait_group_plant_nonthres" }, { "group": "trait_group_plant_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_SLIME", + "name": "Slime Mutant", + "job_description": "I'm looking for slime mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "melee", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 2, 4 ] } } + ], + "bonus_str": -4, + "bonus_dex": 5, + "bonus_int": 10, + "bonus_per": 5, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_slime" }, + { "distribution": [ { "group": "trait_group_slime_nonthres" }, { "group": "trait_group_slime_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_TROGLOBITE", + "name": "Troglobite Mutant", + "job_description": "I'm looking for troglobite mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "melee", "bonus": { "rng": [ 4, 8 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 4, 8 ] } } + ], + "bonus_str": 6, + "bonus_dex": -2, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_troglobite" }, + { + "distribution": [ { "group": "trait_group_troglobite_nonthres" }, { "group": "trait_group_troglobite_postthres" } ] + } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_CEPHALOPOD", + "name": "Cephalopod Mutant", + "job_description": "I'm looking for cephalopod mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "swimming", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_dex": 7, + "bonus_int": 7, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_cephalopod" }, + { + "distribution": [ { "group": "trait_group_cephalopod_nonthres" }, { "group": "trait_group_cephalopod_postthres" } ] + } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_SPIDER", + "name": "Spider Mutant", + "job_description": "I'm looking for spider mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_dex": 2, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_spider" }, + { "distribution": [ { "group": "trait_group_spider_nonthres" }, { "group": "trait_group_spider_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_RAT", + "name": "Rat Mutant", + "job_description": "I'm looking for rat mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_rat" }, + { "distribution": [ { "group": "trait_group_rat_nonthres" }, { "group": "trait_group_rat_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_MOUSE", + "name": "Mouse Mutant", + "job_description": "I'm looking for mouse mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 4, 7 ] } }, + { "skill": "melee", "bonus": { "rng": [ 2, 5 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 2, 5 ] } } + ], + "bonus_dex": 6, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_mouse" }, + { "distribution": [ { "group": "trait_group_mouse_nonthres" }, { "group": "trait_group_mouse_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_ALPHA", + "name": "Alpha Mutant", + "job_description": "I'm looking for alpha mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 3, 6 ] } } + ], + "bonus_str": 5, + "bonus_dex": 5, + "bonus_int": 5, + "bonus_per": 5, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_alpha" }, + { "distribution": [ { "group": "trait_group_alpha_nonthres" }, { "group": "trait_group_alpha_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_ELFA", + "name": "Elfa Mutant", + "job_description": "I'm looking for elfa mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 4, 8 ] } }, + { "skill": "melee", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 2, 4 ] } } + ], + "bonus_str": 1, + "bonus_dex": 5, + "bonus_int": 4, + "bonus_per": 4, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_elfa" }, + { "distribution": [ { "group": "trait_group_elfa_nonthres" }, { "group": "trait_group_elfa_postthres" } ] } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_CHIMERA", + "name": "Chimera Mutant", + "job_description": "I'm looking for chimera mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 4, 8 ] } }, + { "skill": "melee", "bonus": { "rng": [ 4, 8 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 4, 8 ] } } + ], + "bonus_str": 4, + "bonus_dex": 2, + "bonus_per": 2, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_chimera" }, + { + "distribution": [ { "group": "trait_group_chimera_nonthres" }, { "group": "trait_group_chimera_postthres" } ] + } + ] + }, + { + "type": "npc_class", + "id": "NC_NPC_MUTANT_RAPTOR", + "name": "Raptor Mutant", + "job_description": "I'm looking for raptor mutagen… this world is no place for humans anymore, and I don't plan to keep being one.", + "skills": [ + { "skill": "dodge", "bonus": { "rng": [ 6, 10 ] } }, + { "skill": "melee", "bonus": { "rng": [ 6, 10 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 6, 10 ] } } + ], + "bonus_str": 1, + "bonus_dex": 2, + "bonus_per": 4, + "traits": [ + { "group": "trait_mutant_npc_common" }, + { "group": "trait_group_raptor" }, + { "distribution": [ { "group": "trait_group_raptor_nonthres" }, { "group": "trait_group_raptor_postthres" } ] } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/radiation_1.json b/data/mods/Aftershock/npcs/Backgrounds/radiation_1.json new file mode 100644 index 0000000000000..a83bfefe20a69 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/radiation_1.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_RADIATION_1_STORY1", + "type": "talk_topic", + "dynamic_line": "When the government gave up on saving the depths of the city someone decided to use tactical nukes and buy time for the retreat.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_RADIATION_1_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_RADIATION_1_STORY2", + "type": "talk_topic", + "dynamic_line": "It blew an opening in the horde roaming the city and allowed me to escape.", + "responses": [ + { "text": "Tell me more?", "topic": "BGSS_RADIATION_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_RADIATION_1_STORY3", + "type": "talk_topic", + "dynamic_line": "Every choice has consequences though. But every consequence is probably worth it, if it's the only way to survive.", + "responses": [ + { "text": "How did it end?", "topic": "BGSS_RADIATION_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/radiation_2.json b/data/mods/Aftershock/npcs/Backgrounds/radiation_2.json new file mode 100644 index 0000000000000..f5d526231dee0 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/radiation_2.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_RADIATION_2_STORY1", + "type": "talk_topic", + "dynamic_line": "I was working in a reactor when something big started smashing everything.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_RADIATION_2_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_RADIATION_2_STORY2", + "type": "talk_topic", + "dynamic_line": "My coworkers and I spiked the reactor to prevent the deaths of hundreds of thousands.", + "responses": [ + { "text": "Tell me more?", "topic": "BGSS_RADIATION_2_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_RADIATION_1_STORY3", + "type": "talk_topic", + "dynamic_line": "I guess the other workers are probably all dead anyway now.", + "responses": [ + { "text": "How did it end?", "topic": "BGSS_RADIATION_2_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/recent_mutation_1.json b/data/mods/Aftershock/npcs/Backgrounds/recent_mutation_1.json new file mode 100644 index 0000000000000..76a97ae612353 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/recent_mutation_1.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_RECENT_MUTATION_1_STORY1", + "type": "talk_topic", + "dynamic_line": "Things were good. I had a good job working for a zaibatsu. I was respected, and had people working for me. I mostly ignored the changes that were happening in the city, they were beneath me.", + "responses": [ + { "text": "So, what happened?", "topic": "BGSS_RECENT_MUTATION_1_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_RECENT_MUTATION_1_STORY2", + "type": "talk_topic", + "dynamic_line": "Slowly fewer and fewer of the cubicle drones came into the office. Security notices piled up about routes through the city to avoid. Finally, one day I came in and you could hear the riots coming closer and some kind of animalistic roars, gigantic animals.", + "responses": [ + { "text": "So, what happened?", "topic": "BGSS_RECENT_MUTATION_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_RECENT_MUTATION_1_STORY3", + "type": "talk_topic", + "dynamic_line": "That last day security and scientists came up from the underground lab and rounded up all the remaining staff. One of them said that this was the only chance any of us had of surviving. They started injecting people at gunpoint.", + "responses": [ + { "text": "So, did you evacuate?", "topic": "BGSS_RECENT_MUTATION_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/selftest.json b/data/mods/Aftershock/npcs/Backgrounds/selftest.json new file mode 100644 index 0000000000000..20264025bd0a4 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/selftest.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_SELFTEST_STORY1", + "type": "talk_topic", + "dynamic_line": "I was a biohacker by trade before the Cataclysm. I made a living out of bootlegging medicines, drugs and other copywritten biological products.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_SELFTEST_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_SELFTEST_STORY2", + "type": "talk_topic", + "dynamic_line": "Imagine my surprise when I found myself infected with some kind of alien stem cells.", + "responses": [ + { "text": "Tell me more?", "topic": "BGSS_SELFTEST_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_SELFTEST_STORY3", + "type": "talk_topic", + "dynamic_line": "It's certainly helped me survive so far. Was there even a choice not to take advantage of that?", + "responses": [ + { "text": "How did it end?", "topic": "BGSS_SELFTEST_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/trait_groups.json b/data/mods/Aftershock/npcs/Backgrounds/trait_groups.json new file mode 100644 index 0000000000000..c8b08a0792f54 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/trait_groups.json @@ -0,0 +1,924 @@ +[ + { + "type": "trait_group", + "id": "trait_group_spider", + "subtype": "collection", + "traits": [ + { "trait": "FLEET", "prob": 50 }, + { "trait": "POISRESIST", "prob": 50 }, + { "trait": "NIGHTVISION3", "prob": 50 }, + { "trait": "INFRARED", "prob": 50 }, + { "trait": "WEB_WALKER", "prob": 50 }, + { "trait": "DEX_UP_2" }, + { "trait": "TROGLO", "prob": 50 }, + { "trait": "CARNIVORE", "prob": 50 }, + { "trait": "COLDBLOOD", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_spider_nonthres", + "subtype": "collection", + "traits": [ + { "trait": "POISONOUS", "prob": 50 }, + { "trait": "MANDIBLES", "prob": 50 }, + { "distribution": [ { "trait": "CHITIN3" }, { "trait": "CHITIN_FUR2" } ] } + ] + }, + { + "type": "trait_group", + "id": "trait_group_spider_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_SPIDER" }, + { "distribution": [ { "trait": "ARACHNID_ARMS" }, { "trait": "ARACHNID_ARMS_OK" } ] }, + { "trait": "CHITIN_FUR3" }, + { "trait": "CF_HAIR", "prob": 50 }, + { "trait": "POISONOUS2", "prob": 50 }, + { "trait": "PRED3", "prob": 50 }, + { "trait": "SAPIOVORE", "prob": 50 }, + { "trait": "FANGS_SPIDER", "prob": 50 }, + { + "distribution": [ + { "trait": "WEB_SPINNER" }, + { "collection": [ { "trait": "WEB_WEAVER" }, { "trait": "WEB_RAPPEL" }, { "trait": "WEB_ROPE" } ] } + ] + } + ] + }, + { + "type": "trait_group", + "id": "trait_group_alpha", + "subtype": "collection", + "traits": [ + { "trait": "GOODHEARING", "prob": 50 }, + { "trait": "ROBUST", "prob": 50 }, + { "trait": "PRETTY", "prob": 50 }, + { "trait": "ANTIJUNK", "prob": 50 }, + { "trait": "NAUSEA", "prob": 50 }, + { "trait": "HUNGER", "prob": 50 }, + { "trait": "ROT3", "prob": 50 }, + { "trait": "STR_ALPHA" }, + { "trait": "DEX_ALPHA" }, + { "trait": "INT_ALPHA" }, + { "trait": "PER_ALPHA" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_alpha_nonthres", + "subtype": "collection", + "traits": [ { "trait": "WAKEFUL", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_alpha_postthres", + "subtype": "collection", + "traits": [ { "trait": "THRESH_ALPHA" }, { "trait": "WAKEFUL2", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_fish", + "subtype": "collection", + "traits": [ + { "trait": "GOODCARDIO", "prob": 50 }, + { "trait": "QUICK", "prob": 50 }, + { "trait": "LIGHTEATER", "prob": 50 }, + { "trait": "ROBUST", "prob": 50 }, + { "trait": "NIGHTVISION3", "prob": 50 }, + { "trait": "FANGS", "prob": 50 }, + { "trait": "MEMBRANE", "prob": 50 }, + { "trait": "GILLS", "prob": 50 }, + { "trait": "SLEEK_SCALES", "prob": 50 }, + { "trait": "TAIL_FIN", "prob": 50 }, + { "trait": "SMELLY2", "prob": 50 }, + { "trait": "DEFORMED", "prob": 50 }, + { "trait": "THIRST2", "prob": 50 }, + { "trait": "WEBBED", "prob": 50 }, + { "trait": "SLIMY", "prob": 50 }, + { "trait": "COLDBLOOD", "prob": 50 }, + { "trait": "DEX_UP_4" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_fish_nonthres", + "subtype": "collection", + "traits": [ ] + }, + { + "type": "trait_group", + "id": "trait_group_fish_postthres", + "subtype": "collection", + "traits": [ { "trait": "THRESH_FISH" } ] + }, + { + "type": "trait_group", + "id": "trait_group_lupine", + "subtype": "collection", + "traits": [ + { "trait": "GOODCARDIO", "prob": 50 }, + { "trait": "SMELLY", "prob": 50 }, + { "distribution": [ { "trait": "UGLY" }, { "trait": "DEFORMED" }, { "trait": "PRETTY" } ] }, + { "trait": "ANIMALDISCORD", "prob": 50 }, + { "trait": "NIGHTVISION2", "prob": 50 }, + { "trait": "FANGS", "prob": 50 }, + { "trait": "LUPINE_FUR", "prob": 50 }, + { "trait": "PADDED_FEET", "prob": 50 }, + { "trait": "TAIL_FLUFFY", "prob": 50 }, + { "trait": "LUPINE_EARS", "prob": 50 }, + { "trait": "STR_UP_3" }, + { "trait": "MUZZLE", "prob": 50 }, + { "trait": "HEAVYSLEEPER2", "prob": 50 }, + { "trait": "PAWS", "prob": 50 }, + { "trait": "GROWL", "prob": 50 }, + { "trait": "SHOUT3", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_lupine_nonthres", + "subtype": "collection", + "traits": [ ] + }, + { + "type": "trait_group", + "id": "trait_group_lupine_postthres", + "subtype": "collection", + "traits": [ { "trait": "THRESH_LUPINE" }, { "trait": "PRED3", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_bird", + "subtype": "collection", + "traits": [ + { "trait": "QUICK", "prob": 50 }, + { "trait": "LIGHTEATER", "prob": 50 }, + { "trait": "NIGHTVISION", "prob": 50 }, + { "trait": "DEFT", "prob": 50 }, + { "trait": "LIGHTSTEP", "prob": 50 }, + { "trait": "BADBACK", "prob": 50 }, + { "trait": "GLASSJAW", "prob": 50 }, + { "trait": "BIRD_EYE", "prob": 50 }, + { "trait": "FEATHERS", "prob": 50 }, + { "trait": "WINGS_BIRD", "prob": 50 }, + { "trait": "DEX_UP_3" }, + { "trait": "HOLLOW_BONES", "prob": 50 }, + { "trait": "PER_UP_4" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_bird_nonthres", + "subtype": "collection", + "traits": [ { "trait": "BEAK", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_bird_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_BIRD" }, + { "trait": "DOWN", "prob": 50 }, + { "trait": "TALONS", "prob": 50 }, + { "trait": "GIZZARD", "prob": 50 }, + { "trait": "FLEET2", "prob": 50 }, + { "distribution": [ { "trait": "BEAK_PECK", "prob": 50 }, { "trait": "BEAK_HUM", "prob": 50 } ] } + ] + }, + { + "type": "trait_group", + "id": "trait_group_insect", + "subtype": "collection", + "traits": [ + { "trait": "QUICK", "prob": 50 }, + { "trait": "LIGHTEATER", "prob": 50 }, + { "trait": "NIGHTVISION", "prob": 50 }, + { "trait": "POISRESIST", "prob": 50 }, + { "trait": "TERRIFYING", "prob": 50 }, + { "trait": "HEAVYSLEEPER", "prob": 50 }, + { "trait": "NIGHTVISION2", "prob": 50 }, + { "trait": "INFRARED", "prob": 50 }, + { "trait": "CHITIN2", "prob": 50 }, + { "trait": "PHEROMONE_INSECT", "prob": 50 }, + { "trait": "COMPOUND_EYES", "prob": 50 }, + { "trait": "ANTENNAE", "prob": 50 }, + { "trait": "TAIL_STING", "prob": 50 }, + { "trait": "MANDIBLES", "prob": 50 }, + { "trait": "STR_UP", "prob": 50 }, + { "trait": "DEX_UP" }, + { "trait": "DEFORMED", "prob": 50 }, + { "trait": "TROGLO", "prob": 50 }, + { "trait": "COLDBLOOD3", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_insect_nonthres", + "subtype": "collection", + "traits": [ { "trait": "WINGS_INSECT", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_insect_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_INSECT" }, + { "distribution": [ { "trait": "WINGS_BUTTERFLY", "prob": 50 }, { "trait": "WINGS_INSECT", "prob": 50 } ] }, + { "trait": "PROBOSCIS", "prob": 50 }, + { "distribution": [ { "trait": "INSECT_ARMS", "prob": 50 }, { "trait": "INSECT_ARMS_OK", "prob": 50 } ] } + ] + }, + { + "type": "trait_group", + "id": "trait_group_troglobite", + "subtype": "collection", + "traits": [ + { "trait": "QUICK", "prob": 50 }, + { "trait": "LIGHTEATER", "prob": 50 }, + { "trait": "MYOPIC", "prob": 50 }, + { "trait": "NIGHTVISION3", "prob": 50 }, + { "trait": "INFRARED", "prob": 50 }, + { "trait": "REGEN", "prob": 50 }, + { "trait": "DISIMMUNE", "prob": 50 }, + { "trait": "INFRESIST", "prob": 50 }, + { "trait": "POISONOUS", "prob": 50 }, + { "trait": "ALCMET", "prob": 50 }, + { "trait": "SAPROVORE", "prob": 50 }, + { "trait": "STR_UP_3" }, + { "trait": "SUNBURN", "prob": 50 }, + { "trait": "TROGLO3", "prob": 50 }, + { "trait": "SLIMY", "prob": 50 }, + { "trait": "STOCKY_TROGLO" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_troglobite_nonthres", + "subtype": "collection", + "traits": [ ] + }, + { + "type": "trait_group", + "id": "trait_group_troglobite_postthres", + "subtype": "collection", + "traits": [ { "trait": "THRESH_TROGLOBITE" }, { "trait": "PAINRESIST_TROGLO", "prob": 50 }, { "trait": "EATPOISON", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_chimera", + "subtype": "collection", + "traits": [ + { "trait": "QUICK", "prob": 50 }, + { "trait": "THICKSKIN", "prob": 50 }, + { "trait": "TERRIFYING", "prob": 50 }, + { "trait": "ADRENALINE", "prob": 50 }, + { "trait": "SLEEPY", "prob": 50 }, + { "trait": "BADTEMPER", "prob": 50 }, + { "trait": "FORGETFUL", "prob": 50 }, + { "trait": "CHEMIMBALANCE", "prob": 50 }, + { "trait": "NIGHTVISION2", "prob": 50 }, + { "trait": "SCALES", "prob": 50 }, + { "trait": "LIGHTFUR", "prob": 50 }, + { "trait": "TALONS", "prob": 50 }, + { "trait": "PARAIMMUNE", "prob": 50 }, + { "trait": "HOOVES", "prob": 50 }, + { "trait": "SAPROVORE", "prob": 50 }, + { "trait": "HORNS_CURLED", "prob": 50 }, + { "trait": "TAIL_CLUB", "prob": 50 }, + { "trait": "CANINE_EARS", "prob": 50 }, + { "trait": "STR_UP_3" }, + { "trait": "DEX_UP_2" }, + { "trait": "PER_UP_2" }, + { "trait": "MOUTH_FLAPS", "prob": 50 }, + { "trait": "SMELLY2", "prob": 50 }, + { "trait": "DEFORMED3", "prob": 50 }, + { "trait": "HUNGER3", "prob": 50 }, + { "trait": "THIRST", "prob": 50 }, + { "trait": "ROT2", "prob": 50 }, + { "distribution": [ { "trait": "UNSTABLE", "prob": 10 }, { "trait": "CHAOTIC", "prob": 10 } ] }, + { "trait": "CARNIVORE", "prob": 50 }, + { "trait": "SNARL", "prob": 50 }, + { "trait": "SHOUT3", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_chimera_nonthres", + "subtype": "collection", + "traits": [ { "trait": "FANGS", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_chimera_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_CHIMERA" }, + { "trait": "PRED4", "prob": 50 }, + { "trait": "SAPIOVORE", "prob": 50 }, + { "trait": "MUT_JUNKIE", "prob": 50 }, + { "trait": "MUT_TOUGH2", "prob": 50 }, + { "trait": "EATPOISON", "prob": 50 }, + { "trait": "EATDEAD", "prob": 50 }, + { "trait": "SABER_TEETH", "prob": 50 }, + { "trait": "EATHEALTH", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_raptor", + "subtype": "collection", + "traits": [ + { "trait": "QUICK", "prob": 50 }, + { "trait": "THICKSKIN", "prob": 50 }, + { "trait": "DEFT", "prob": 50 }, + { "trait": "ANTIJUNK", "prob": 50 }, + { "trait": "GLASSJAW", "prob": 50 }, + { "trait": "ANIMALDISCORD", "prob": 50 }, + { "trait": "UGLY", "prob": 50 }, + { "trait": "LIZ_EYE", "prob": 50 }, + { "trait": "SCALES", "prob": 50 }, + { "trait": "NAILS", "prob": 50 }, + { "trait": "RAP_TALONS", "prob": 50 }, + { "trait": "TAIL_RAPTOR", "prob": 50 }, + { "trait": "STR_UP" }, + { "trait": "DEX_UP_2" }, + { "trait": "PER_UP_3" }, + { "trait": "SLIT_NOSTRILS", "prob": 50 }, + { "trait": "FORKED_TONGUE", "prob": 50 }, + { "trait": "HUNGER2", "prob": 50 }, + { "trait": "CARNIVORE", "prob": 50 }, + { "trait": "COLDBLOOD2", "prob": 50 }, + { "trait": "HISS", "prob": 50 }, + { "trait": "SHOUT1", "prob": 50 }, + { "trait": "ARM_FEATHERS", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_raptor_nonthres", + "subtype": "collection", + "traits": [ { "trait": "FANGS", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_raptor_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_RAPTOR" }, + { "trait": "PRED4", "prob": 50 }, + { "trait": "SAPIOVORE", "prob": 50 }, + { "trait": "EATPOISON", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_medical", + "subtype": "collection", + "traits": [ + { "trait": "FASTHEALER", "prob": 50 }, + { "trait": "POISRESIST", "prob": 50 }, + { "trait": "DISRESISTANT", "prob": 50 }, + { "trait": "SELFAWARE", "prob": 50 }, + { "trait": "MASOCHIST", "prob": 50 }, + { "trait": "ROBUST", "prob": 50 }, + { "trait": "HEAVYSLEEPER", "prob": 50 }, + { "trait": "INSOMNIA", "prob": 50 }, + { "trait": "FORGETFUL", "prob": 50 }, + { "trait": "LIGHTWEIGHT", "prob": 50 }, + { "trait": "ADDICTIVE", "prob": 50 }, + { "trait": "CHEMIMBALANCE", "prob": 50 }, + { "trait": "SCHIZOPHRENIC", "prob": 50 }, + { "trait": "JITTERY", "prob": 50 }, + { "trait": "MOODSWINGS", "prob": 50 }, + { "trait": "RADIOGENIC", "prob": 50 }, + { "trait": "INFIMMUNE", "prob": 50 }, + { "trait": "PARAIMMUNE", "prob": 50 }, + { "trait": "PAINREC3", "prob": 50 }, + { "trait": "VOMITOUS", "prob": 50 }, + { "trait": "HUNGER", "prob": 50 }, + { "trait": "UNSTABLE", "prob": 10 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_medical_nonthres", + "subtype": "collection", + "traits": [ { "trait": "PAINRESIST", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_medical_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_MEDICAL", "prob": 50 }, + { "trait": "MUT_TOUGH2", "prob": 50 }, + { "trait": "CENOBITE", "prob": 50 }, + { "trait": "NOPAIN", "prob": 50 }, + { "trait": "MUT_JUNKIE", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_cattle", + "subtype": "collection", + "traits": [ + { "trait": "NIGHTVISION", "prob": 50 }, + { "trait": "THICKSKIN", "prob": 50 }, + { "trait": "DISRESISTANT", "prob": 50 }, + { "trait": "FUR", "prob": 50 }, + { "trait": "HOOVES", "prob": 50 }, + { "trait": "HORNS", "prob": 50 }, + { "trait": "TAIL_CATTLE", "prob": 50 }, + { "trait": "CANINE_EARS", "prob": 50 }, + { "trait": "STR_UP_2" }, + { "trait": "DEFORMED", "prob": 50 }, + { "trait": "MINOTAUR", "prob": 50 }, + { "trait": "PONDEROUS2", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_cattle_nonthres", + "subtype": "collection", + "traits": [ { "trait": "RUMINANT", "prob": 50 }, { "trait": "HUGE" } ] + }, + { + "type": "trait_group", + "id": "trait_group_cattle_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_CATTLE" }, + { "trait": "GRAZER", "prob": 50 }, + { "trait": "HUGE_OK" }, + { "trait": "MUT_TOUGH3", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_slime", + "subtype": "collection", + "traits": [ + { "trait": "POISRESIST", "prob": 50 }, + { "trait": "ROBUST", "prob": 50 }, + { "trait": "CHEMIMBALANCE", "prob": 50 }, + { "trait": "REGEN", "prob": 50 }, + { "trait": "RADIOGENIC", "prob": 50 }, + { "trait": "DISIMMUNE", "prob": 50 }, + { "trait": "PARAIMMUNE", "prob": 50 }, + { "trait": "POISONOUS", "prob": 50 }, + { "trait": "SLIME_HANDS", "prob": 50 }, + { "trait": "DEX_UP" }, + { "trait": "DEFORMED3", "prob": 50 }, + { "trait": "HOLLOW_BONES", "prob": 50 }, + { "trait": "VOMITOUS", "prob": 50 }, + { "trait": "HUNGER2", "prob": 50 }, + { "trait": "THIRST2", "prob": 50 }, + { "trait": "SORES", "prob": 50 }, + { "trait": "TROGLO", "prob": 50 }, + { "trait": "WEBBED", "prob": 50 }, + { "trait": "UNSTABLE", "prob": 10 }, + { "trait": "RADIOACTIVE1", "prob": 0 }, + { "trait": "SLIMY", "prob": 50 }, + { "trait": "INT_SLIME" }, + { "trait": "BENDY3" }, + { "trait": "PER_SLIME_OK" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_slime_nonthres", + "subtype": "collection", + "traits": [ ] + }, + { + "type": "trait_group", + "id": "trait_group_slime_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_SLIME" }, + { "trait": "VISCOUS", "prob": 50 }, + { "trait": "AMORPHOUS", "prob": 50 }, + { "trait": "SLIMESPAWNER", "prob": 50 }, + { "trait": "SMELLY2", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_lizard", + "subtype": "collection", + "traits": [ + { "trait": "THICKSKIN", "prob": 50 }, + { "trait": "BADTEMPER", "prob": 50 }, + { "trait": "LIZ_EYE", "prob": 50 }, + { "trait": "REGEN_LIZ", "prob": 50 }, + { "trait": "FANGS", "prob": 50 }, + { "trait": "MEMBRANE", "prob": 50 }, + { "trait": "TAIL_THICK", "prob": 50 }, + { "trait": "STR_UP_2" }, + { "trait": "DEX_UP_2" }, + { "trait": "SLIT_NOSTRILS", "prob": 50 }, + { "trait": "FORKED_TONGUE", "prob": 50 }, + { "trait": "MUZZLE_LONG", "prob": 50 }, + { "trait": "TROGLO", "prob": 50 }, + { "trait": "WEBBED", "prob": 50 }, + { "trait": "HISS", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_lizard_nonthres", + "subtype": "collection", + "traits": [ + { "trait": "SCALES", "prob": 50 }, + { "trait": "LARGE" }, + { "trait": "CARNIVORE", "prob": 50 }, + { "trait": "COLDBLOOD3", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_lizard_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_LIZARD" }, + { "trait": "THICK_SCALES", "prob": 50 }, + { "trait": "TALONS", "prob": 50 }, + { "trait": "MUT_TOUGH", "prob": 50 }, + { "trait": "PRED3", "prob": 50 }, + { "trait": "SAPIOVORE", "prob": 50 }, + { "trait": "LARGE_OK" }, + { "trait": "COLDBLOOD4", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_beast", + "subtype": "collection", + "traits": [ + { "trait": "DEFT", "prob": 50 }, + { "trait": "ANIMALEMPATH", "prob": 50 }, + { "trait": "TERRIFYING", "prob": 50 }, + { "trait": "ADRENALINE", "prob": 50 }, + { "trait": "MYOPIC", "prob": 50 }, + { "trait": "SLEEPY", "prob": 50 }, + { "trait": "ANTIJUNK", "prob": 50 }, + { "trait": "FORGETFUL", "prob": 50 }, + { "trait": "ANIMALDISCORD", "prob": 50 }, + { "trait": "NIGHTVISION2", "prob": 50 }, + { "trait": "FUR", "prob": 50 }, + { "trait": "CLAWS", "prob": 50 }, + { "trait": "PADDED_FEET", "prob": 50 }, + { "trait": "TAIL_FLUFFY", "prob": 50 }, + { "trait": "CANINE_EARS", "prob": 50 }, + { "trait": "SMELLY2", "prob": 50 }, + { "trait": "DEFORMED2", "prob": 50 }, + { "trait": "MUZZLE", "prob": 50 }, + { "trait": "HUNGER2", "prob": 50 }, + { "trait": "HEAVYSLEEPER2", "prob": 50 }, + { "trait": "TROGLO", "prob": 50 }, + { "trait": "PAWS_LARGE", "prob": 50 }, + { "trait": "SNARL", "prob": 50 }, + { "trait": "SHOUT2", "prob": 50 }, + { "trait": "STR_UP_4" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_beast_nonthres", + "subtype": "collection", + "traits": [ { "trait": "CARNIVORE", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_beast_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_BEAST" }, + { "trait": "MUT_TOUGH", "prob": 50 }, + { "trait": "PRED4", "prob": 50 }, + { "trait": "SAPIOVORE", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_rat", + "subtype": "collection", + "traits": [ + { "trait": "DISRESISTANT", "prob": 50 }, + { "trait": "NIGHTVISION2", "prob": 50 }, + { "trait": "INCISORS", "prob": 50 }, + { "trait": "FUR", "prob": 50 }, + { "trait": "TAIL_RAT", "prob": 50 }, + { "trait": "WHISKERS_RAT", "prob": 50 }, + { "trait": "DEFORMED3", "prob": 50 }, + { "trait": "MUZZLE_RAT", "prob": 50 }, + { "trait": "VOMITOUS", "prob": 50 }, + { "trait": "MET_RAT", "prob": 50 }, + { "trait": "PAWS", "prob": 50 }, + { "trait": "GROWL", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_rat_nonthres", + "subtype": "collection", + "traits": [ { "trait": "CLAWS_RAT", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_rat_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_RAT" }, + { "trait": "CLAWS_ST", "prob": 50 }, + { "trait": "BURROW", "prob": 50 }, + { "trait": "INFRESIST", "prob": 50 }, + { "trait": "EATDEAD", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_mouse", + "subtype": "collection", + "traits": [ + { "trait": "DISRESISTANT", "prob": 50 }, + { "trait": "NIGHTVISION2", "prob": 50 }, + { "trait": "FELINE_FUR", "prob": 50 }, + { "trait": "TAIL_RAT", "prob": 50 }, + { "trait": "MET_RAT", "prob": 50 }, + { "trait": "ANIMALDISCORD2", "prob": 50 }, + { "trait": "WHISKERS_RAT", "prob": 50 }, + { "trait": "PROJUNK", "prob": 50 }, + { "trait": "SMALL2", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_mouse_nonthres", + "subtype": "collection", + "traits": [ ] + }, + { + "type": "trait_group", + "id": "trait_group_mouse_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_MOUSE" }, + { "trait": "GOODCARDIO2", "prob": 50 }, + { "trait": "SMALL_OK", "prob": 50 }, + { "trait": "INFRESIST", "prob": 50 }, + { "trait": "PROJUNK2", "prob": 50 }, + { "trait": "EASYSLEEPER2", "prob": 50 }, + { "trait": "CRAFTY", "prob": 50 }, + { "trait": "EATDEAD", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_elfa", + "subtype": "collection", + "traits": [ + { "trait": "LIGHTSTEP", "prob": 50 }, + { "trait": "WEAKSCENT", "prob": 50 }, + { "trait": "BADBACK", "prob": 50 }, + { "trait": "CHEMIMBALANCE", "prob": 50 }, + { "trait": "ELFAEYES", "prob": 50 }, + { "trait": "ELFA_FNV", "prob": 50 }, + { "trait": "PLANTSKIN", "prob": 50 }, + { "trait": "LEAVES", "prob": 50 }, + { "trait": "PARAIMMUNE", "prob": 50 }, + { "trait": "ELFA_EARS", "prob": 50 }, + { "trait": "STR_UP" }, + { "trait": "DEX_UP_3" }, + { "trait": "INT_UP_3" }, + { "trait": "PER_UP_3" }, + { "trait": "BEAUTIFUL3", "prob": 50 }, + { "trait": "HOLLOW_BONES", "prob": 50 }, + { "trait": "VOMITOUS", "prob": 50 }, + { "trait": "HUNGER", "prob": 50 }, + { "trait": "THIRST", "prob": 50 }, + { "trait": "ROT1", "prob": 50 }, + { "trait": "RADIOACTIVE2", "prob": 0 }, + { "trait": "BENDY1" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_elfa_nonthres", + "subtype": "collection", + "traits": [ { "trait": "WAKEFUL", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_elfa_postthres", + "subtype": "collection", + "traits": [ { "trait": "THRESH_ELFA" }, { "trait": "WAKEFUL3", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_feline", + "subtype": "collection", + "traits": [ + { "trait": "LIGHTSTEP", "prob": 50 }, + { "trait": "SMELLY", "prob": 50 }, + { "distribution": [ { "trait": "PRETTY" }, { "trait": "DEFORMED" }, { "trait": "UGLY" } ] }, + { "trait": "FEL_EYE", "prob": 50 }, + { "trait": "FEL_NV", "prob": 50 }, + { "trait": "FELINE_FUR", "prob": 50 }, + { "trait": "LYNX_FUR", "prob": 50 }, + { "trait": "CLAWS_RETRACT", "prob": 50 }, + { "trait": "PADDED_FEET", "prob": 50 }, + { "trait": "FELINE_EARS", "prob": 50 }, + { "trait": "WHISKERS", "prob": 50 }, + { "trait": "DEX_UP_3" }, + { "trait": "SNOUT", "prob": 50 }, + { "trait": "SLEEPY2", "prob": 50 }, + { "trait": "PAWS", "prob": 50 }, + { "trait": "SNARL", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_feline_nonthres", + "subtype": "collection", + "traits": [ { "trait": "FANGS", "prob": 50 }, { "trait": "CARNIVORE", "prob": 50 } ] + }, + { + "type": "trait_group", + "id": "trait_group_feline_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_FELINE" }, + { "trait": "PRED3", "prob": 50 }, + { "trait": "SABER_TEETH", "prob": 50 }, + { "trait": "TAIL_LONG", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_plant", + "subtype": "collection", + "traits": [ + { "trait": "HEAVYSLEEPER", "prob": 50 }, + { "trait": "BADHEARING", "prob": 50 }, + { "trait": "FASTHEALER2", "prob": 50 }, + { "trait": "BARK", "prob": 50 }, + { "trait": "THORNS", "prob": 50 }, + { "trait": "LEAVES", "prob": 50 }, + { "trait": "STR_UP_2" }, + { "trait": "DEFORMED2", "prob": 50 }, + { "trait": "PONDEROUS3", "prob": 50 }, + { "trait": "SUNLIGHT_DEPENDENT", "prob": 50 }, + { "trait": "VINES3", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_plant_nonthres", + "subtype": "collection", + "traits": [ ] + }, + { + "type": "trait_group", + "id": "trait_group_plant_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_PLANT" }, + { "trait": "FLOWERS", "prob": 50 }, + { "trait": "DISIMMUNE", "prob": 50 }, + { "trait": "SAPROPHAGE", "prob": 50 }, + { "trait": "ROOTS3", "prob": 50 }, + { "trait": "CHLOROMORPH", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_ursine", + "subtype": "collection", + "traits": [ + { "trait": "BADTEMPER", "prob": 50 }, + { "trait": "URSINE_EYE", "prob": 50 }, + { "trait": "URSINE_FUR", "prob": 50 }, + { "trait": "CLAWS", "prob": 50 }, + { "trait": "PADDED_FEET", "prob": 50 }, + { "trait": "TAIL_STUB", "prob": 50 }, + { "trait": "HIBERNATE", "prob": 50 }, + { "trait": "URSINE_EARS", "prob": 50 }, + { "trait": "FAT", "prob": 50 }, + { "trait": "SMELLY2", "prob": 50 }, + { "trait": "DEFORMED2", "prob": 50 }, + { "trait": "MUZZLE_BEAR", "prob": 50 }, + { "trait": "PAWS_LARGE", "prob": 50 }, + { "trait": "PONDEROUS1", "prob": 50 }, + { "trait": "GROWL", "prob": 50 }, + { "trait": "STR_UP_4" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_ursine_nonthres", + "subtype": "collection", + "traits": [ { "trait": "HUGE" } ] + }, + { + "type": "trait_group", + "id": "trait_group_ursine_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_URSINE" }, + { "trait": "MUT_TOUGH3", "prob": 50 }, + { "trait": "PRED4", "prob": 50 }, + { "trait": "SAPIOVORE", "prob": 50 }, + { "trait": "HUGE_OK" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_cephalopod", + "subtype": "collection", + "traits": [ + { "trait": "CEPH_EYES", "prob": 50 }, + { "trait": "CEPH_VISION", "prob": 50 }, + { "trait": "GILLS_CEPH", "prob": 50 }, + { "trait": "SLIT_NOSTRILS", "prob": 50 }, + { "trait": "DEFORMED", "prob": 50 }, + { "trait": "THIRST2", "prob": 50 }, + { "trait": "BEAK", "prob": 50 }, + { "trait": "SLIMY", "prob": 50 }, + { "trait": "COLDBLOOD", "prob": 50 }, + { "trait": "DEX_UP_4" }, + { "trait": "INT_UP_4" } + ] + }, + { + "type": "trait_group", + "id": "trait_group_cephalopod_nonthres", + "subtype": "collection", + "traits": [ + { "trait": "LEG_TENTACLES", "prob": 50 }, + { "distribution": [ { "trait": "ARM_TENTACLES" }, { "trait": "ARM_TENTACLES_4" } ], "prob": 50 }, + { "trait": "SHELL", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_group_cephalopod_postthres", + "subtype": "collection", + "traits": [ + { "trait": "THRESH_CEPHALOPOD" }, + { "trait": "MOUTH_TENTACLES", "prob": 50 }, + { + "distribution": [ { "trait": "ARM_TENTACLES" }, { "trait": "ARM_TENTACLES_4" }, { "trait": "ARM_TENTACLES_8" } ] + }, + { "trait": "CLAWS_TENTACLE", "prob": 50 }, + { "trait": "LEG_TENTACLES" }, + { "trait": "LEG_TENT_BRACE", "prob": 50 }, + { "trait": "SHELL2", "prob": 50 } + ] + }, + { + "type": "trait_group", + "id": "trait_mutant_npc_common", + "subtype": "collection", + "traits": [ + { "distribution": [ { "trait": "FASTLEARNER" }, { "trait": "SLOWLEARNER" } ], "prob": 10 }, + { + "distribution": [ { "trait": "FASTREADER" }, { "trait": "SLOWREADER" }, { "trait": "ILLITERATE", "prob": 5 } ], + "prob": 10 + }, + { "distribution": [ { "trait": "PARKOUR" }, { "trait": "BADKNEES" } ], "prob": 10 }, + { "distribution": [ { "trait": "LIAR" }, { "trait": "TRUTHTELLER" } ], "prob": 10 }, + { + "distribution": [ + { "trait": "MARTIAL_ARTS" }, + { "trait": "MARTIAL_ARTS2" }, + { "trait": "MARTIAL_ARTS3" }, + { "trait": "MARTIAL_ARTS4" }, + { "trait": "MARTIAL_ARTS5" } + ], + "prob": 10 + }, + { "trait": "DEFT", "prob": 10 }, + { "trait": "ADRENALINE", "prob": 10 }, + { "trait": "OUTDOORSMAN", "prob": 10 }, + { "trait": "PAINRESIST", "prob": 10 }, + { "trait": "QUICK", "prob": 10 }, + { "trait": "ROBUST", "prob": 10 }, + { "trait": "SELFAWARE", "prob": 10 }, + { "trait": "SPIRITUAL", "prob": 10 }, + { "trait": "STYLISH", "prob": 10 }, + { "trait": "ALBINO", "prob": 5 }, + { "trait": "ASTHMA", "prob": 5 }, + { "trait": "CHEMIMBALANCE", "prob": 10 }, + { "trait": "HOARDER", "prob": 10 }, + { "trait": "JITTERY", "prob": 10 }, + { "trait": "MOODSWINGS", "prob": 10 }, + { "trait": "SAVANT", "prob": 10 }, + { "trait": "SCHIZOPHRENIC", "prob": 10 }, + { "trait": "SQUEAMISH", "prob": 10 }, + { "trait": "TRIGGERHAPPY", "prob": 10 }, + { "group": "Appearance_demographics", "prob": 100 } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_1.json b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_1.json new file mode 100644 index 0000000000000..9fad32aaeb485 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_1.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_UPLIFTED_ANIMAL_1_STORY1", + "type": "talk_topic", + "dynamic_line": "I was created to be a billionaire's companion.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_UPLIFTED_ANIMAL_1_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_1_STORY2", + "type": "talk_topic", + "dynamic_line": "Their wealth and connections didn't save them.", + "responses": [ + { "text": "So, what happened?", "topic": "BGSS_UPLIFTED_ANIMAL_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_1_STORY3", + "type": "talk_topic", + "dynamic_line": "But they built me with the ability to survive a world beyond imagining.", + "responses": [ + { "text": "But here you are?", "topic": "BGSS_UPLIFTED_ANIMAL_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_2.json b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_2.json new file mode 100644 index 0000000000000..a1926083b7318 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_2.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_UPLIFTED_ANIMAL_2_STORY1", + "type": "talk_topic", + "dynamic_line": "A resort created a whole line of Uplifts just like me.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_UPLIFTED_ANIMAL_1_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_2_STORY2", + "type": "talk_topic", + "dynamic_line": "We should have created a whole village of just us away from all the humans once the Cataclysm came.", + "responses": [ + { "text": "So, what happened?", "topic": "BGSS_UPLIFTED_ANIMAL_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_2_STORY3", + "type": "talk_topic", + "dynamic_line": "Maybe we did, haha.", + "responses": [ + { "text": "Why didn't you?", "topic": "BGSS_UPLIFTED_ANIMAL_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_3.json b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_3.json new file mode 100644 index 0000000000000..56391e17f7595 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_3.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_UPLIFTED_ANIMAL_3_STORY1", + "type": "talk_topic", + "dynamic_line": "I grew up on an island with a doctor.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_UPLIFTED_ANIMAL_3_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_3_STORY2", + "type": "talk_topic", + "dynamic_line": "I had so many brothers and sisters.", + "responses": [ + { "text": "Tell me more?", "topic": "BGSS_UPLIFTED_ANIMAL_3_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_3_STORY3", + "type": "talk_topic", + "dynamic_line": "We ate him.", + "responses": [ + { "text": "How did it end?", "topic": "BGSS_UPLIFTED_ANIMAL_3_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_4.json b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_4.json new file mode 100644 index 0000000000000..fa9834fc7c2db --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_4.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_UPLIFTED_ANIMAL_4_STORY1", + "type": "talk_topic", + "dynamic_line": "The zoo designed me to be a link between my original species and humans studying us.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_UPLIFTED_ANIMAL_4_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_4_STORY2", + "type": "talk_topic", + "dynamic_line": "I was there when the Cataclysm happened. Many animals were infected.", + "responses": [ + { "text": "Tell me more?", "topic": "BGSS_UPLIFTED_ANIMAL_4_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_4_STORY3", + "type": "talk_topic", + "dynamic_line": "Zombears are terrifying creatures of destruction.", + "responses": [ + { "text": "How did it end?", "topic": "BGSS_UPLIFTED_ANIMAL_4_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_5.json b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_5.json new file mode 100644 index 0000000000000..a3b471e8f2501 --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/uplifted_animal_5.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_UPLIFTED_ANIMAL_5_STORY1", + "type": "talk_topic", + "dynamic_line": "I was part of a black ops paramilitary unit. I still don't know if I worked for the government or a corporation.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_UPLIFTED_ANIMAL_5_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_5_STORY2", + "type": "talk_topic", + "dynamic_line": "My team was sent in to a lab on a purge in fire mission. The things I saw in there haunt me.", + "responses": [ + { "text": "Tell me more?", "topic": "BGSS_UPLIFTED_ANIMAL_5_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_UPLIFTED_ANIMAL_5_STORY3", + "type": "talk_topic", + "dynamic_line": "Others may have survived but I doubt it. I certainly hope they haven't come back.", + "responses": [ + { "text": "How did it end?", "topic": "BGSS_UPLIFTED_ANIMAL_5_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Backgrounds/vatgrown_1.json b/data/mods/Aftershock/npcs/Backgrounds/vatgrown_1.json new file mode 100644 index 0000000000000..a0c7dad3dffea --- /dev/null +++ b/data/mods/Aftershock/npcs/Backgrounds/vatgrown_1.json @@ -0,0 +1,32 @@ +[ + { + "id": "BGSS_VATGROWN_1_STORY1", + "type": "talk_topic", + "dynamic_line": "I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World.", + "responses": [ + { "text": "Where are you from?", "topic": "BGSS_VATGROWN_1_STORY2" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_VATGROWN_1_STORY2", + "type": "talk_topic", + "dynamic_line": "Now there are too few people left to differentiate. Other than those morons afraid of mutants.", + "responses": [ + { "text": "Tell me more?", "topic": "BGSS_VATGROWN_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + }, + { + "id": "BGSS_VATGROWN_1_STORY3", + "type": "talk_topic", + "dynamic_line": "Now I choose the cause I'll die for.", + "responses": [ + { "text": "How did it end?", "topic": "BGSS_VATGROWN_1_STORY3" }, + { "text": "", "topic": "TALK_FRIEND" }, + { "text": "", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/mutant_npcs/npc_classes_mutant.json b/data/mods/Aftershock/npcs/mutant_npcs/npc_classes_mutant.json index 7f9e7377356e1..accfd7bd7275c 100644 --- a/data/mods/Aftershock/npcs/mutant_npcs/npc_classes_mutant.json +++ b/data/mods/Aftershock/npcs/mutant_npcs/npc_classes_mutant.json @@ -13,6 +13,7 @@ "bonus_dex": 2, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_lizard" }, { "distribution": [ { "group": "trait_group_lizard_nonthres" }, { "group": "trait_group_lizard_postthres" } ] } ] @@ -29,6 +30,7 @@ ], "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_medical" }, { "distribution": [ { "group": "trait_group_medical_nonthres" }, { "group": "trait_group_medical_postthres" } ] @@ -49,6 +51,7 @@ "bonus_per": 7, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_bird" }, { "distribution": [ { "group": "trait_group_bird_nonthres" }, { "group": "trait_group_bird_postthres" } ] } ] @@ -67,6 +70,7 @@ "bonus_dex": 7, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_fish" }, { "distribution": [ { "group": "trait_group_fish_nonthres" }, { "group": "trait_group_fish_postthres" } ] } ] @@ -84,6 +88,7 @@ "bonus_str": 7, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_beast" }, { "distribution": [ { "group": "trait_group_beast_nonthres" }, { "group": "trait_group_beast_postthres" } ] } ] @@ -101,6 +106,7 @@ "bonus_str": 11, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_ursine" }, { "distribution": [ { "group": "trait_group_ursine_nonthres" }, { "group": "trait_group_ursine_postthres" } ] } ] @@ -118,6 +124,7 @@ "bonus_dex": 4, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_feline" }, { "distribution": [ { "group": "trait_group_feline_nonthres" }, { "group": "trait_group_feline_postthres" } ] } ] @@ -136,6 +143,7 @@ "traits": [ { "group": "trait_mutant_npc_common" }, { "group": "trait_group_lupine" }, + { "group": "BG_survival_story_MUTANTS" }, { "distribution": [ { "group": "trait_group_lupine_nonthres" }, { "group": "trait_group_lupine_postthres" } ] } ] }, @@ -152,6 +160,7 @@ "bonus_str": 6, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_cattle" }, { "distribution": [ { "group": "trait_group_cattle_nonthres" }, { "group": "trait_group_cattle_postthres" } ] } ] @@ -170,6 +179,7 @@ "bonus_dex": 1, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_insect" }, { "distribution": [ { "group": "trait_group_insect_nonthres" }, { "group": "trait_group_insect_postthres" } ] } ] @@ -187,6 +197,7 @@ "bonus_str": 2, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_plant" }, { "distribution": [ { "group": "trait_group_plant_nonthres" }, { "group": "trait_group_plant_postthres" } ] } ] @@ -207,6 +218,7 @@ "bonus_per": 5, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_slime" }, { "distribution": [ { "group": "trait_group_slime_nonthres" }, { "group": "trait_group_slime_postthres" } ] } ] @@ -225,6 +237,7 @@ "bonus_dex": -2, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_troglobite" }, { "distribution": [ { "group": "trait_group_troglobite_nonthres" }, { "group": "trait_group_troglobite_postthres" } ] @@ -246,6 +259,7 @@ "bonus_int": 7, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_cephalopod" }, { "distribution": [ { "group": "trait_group_cephalopod_nonthres" }, { "group": "trait_group_cephalopod_postthres" } ] @@ -265,6 +279,7 @@ "bonus_dex": 2, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_spider" }, { "distribution": [ { "group": "trait_group_spider_nonthres" }, { "group": "trait_group_spider_postthres" } ] } ] @@ -281,6 +296,7 @@ ], "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_rat" }, { "distribution": [ { "group": "trait_group_rat_nonthres" }, { "group": "trait_group_rat_postthres" } ] } ] @@ -298,6 +314,7 @@ "bonus_dex": 6, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_mouse" }, { "distribution": [ { "group": "trait_group_mouse_nonthres" }, { "group": "trait_group_mouse_postthres" } ] } ] @@ -318,6 +335,7 @@ "bonus_per": 5, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_alpha" }, { "distribution": [ { "group": "trait_group_alpha_nonthres" }, { "group": "trait_group_alpha_postthres" } ] } ] @@ -338,6 +356,7 @@ "bonus_per": 4, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_elfa" }, { "distribution": [ { "group": "trait_group_elfa_nonthres" }, { "group": "trait_group_elfa_postthres" } ] } ] @@ -357,6 +376,7 @@ "bonus_per": 2, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, { "group": "trait_group_chimera" }, { "distribution": [ { "group": "trait_group_chimera_nonthres" }, { "group": "trait_group_chimera_postthres" } ] @@ -378,6 +398,9 @@ "bonus_per": 4, "traits": [ { "group": "trait_mutant_npc_common" }, + { "group": "BG_survival_story_MUTANTS" }, + { "group": "trait_group_raptor" }, + { "distribution": [ { "group": "trait_group_raptor_nonthres" }, { "group": "trait_group_raptor_postthres" } ] }, { "group": "trait_group_raptor" }, { "distribution": [ { "group": "trait_group_raptor_nonthres" }, { "group": "trait_group_raptor_postthres" } ] } ] diff --git a/data/mods/Aftershock/player/bionics.json b/data/mods/Aftershock/player/bionics.json index 99ed90ec9caab..f3b8add9fd05f 100644 --- a/data/mods/Aftershock/player/bionics.json +++ b/data/mods/Aftershock/player/bionics.json @@ -57,5 +57,13 @@ "act_cost": 5, "react_cost": 5, "time": 200 + }, + { + "id": "afs_bio_cranialbomb", + "type": "bionic", + "name": { "str": "Cranium Bomb" }, + "description": "You've worked for some nasty people. People who installed a bomb at the top of your spine. They are all dead now but there is unfortunately a dead man switch if you don't check in roughly every thirty days. You need this out and fast.", + "occupied_bodyparts": [ [ "head", 2 ] ], + "enchantments": [ "cranial_explosion" ] } ] diff --git a/data/mods/Aftershock/player/professions.json b/data/mods/Aftershock/player/professions.json index 5493bd5fb8d7e..1f1b359f41853 100644 --- a/data/mods/Aftershock/player/professions.json +++ b/data/mods/Aftershock/player/professions.json @@ -200,23 +200,88 @@ { "level": 3, "name": "melee" }, { "level": 3, "name": "bashing" } ], - "traits": [ "PROF_SWAT", "UPLIFTED", "THRESH_MASTODON", "MUT_TANK", "TUSKS" ], + "traits": [ "PROF_SWAT", "UPLIFTED", "THRESH_MASTODON", "MUT_TANK", "TUSKS", "HUGE_OK" ], "//": "Need to add XL gear for MASTODON's in more items.", "items": { "both": { - "items": [ "xlswat_armor", "xlboots_combat", "xlgloves_tactical", "badge_swat", "wristwatch", "baton" ], + "items": [ "xlswat_armor", "xlboots_combat", "xlgloves_tactical", "badge_swat", "wristwatch" ], "entries": [ - { "group": "charged_two_way_radio" }, { "group": "army_mags_usp9" }, { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, { "item": "bandolier_shotgun", "contents-group": "bandolier_swat_cqc1" }, { "item": "bandolier_shotgun", "contents-group": "bandolier_swat_cqc2" }, - { "item": "usp_9mm", "ammo-item": "9mmfmj", "charges": 15, "container-item": "sholster" }, - { "item": "ksg", "ammo-item": "shot_00", "charges": 7, "contents-item": "shoulder_strap" } + { "item": "usp_9mm", "ammo-item": "9mmfmj", "charges": 15, "container-item": "holster" }, + { "item": "ksg", "ammo-item": "shot_00", "charges": 7, "contents-item": "shoulder_strap" }, + { "item": "baton", "container-item": "xlpolice_belt" } + ] + }, + "male": [ "xlboxer_shorts" ], + "female": [ "xlsports_bra", "xlboy_shorts" ] + } + }, + { + "type": "profession", + "ident": "afs_bio_operator", + "name": "Bionic Operator", + "description": "You worked as a mercenary across six continents for a dozen corps. A VP at the last corp decided he wanted to put you on retainer and you agreed to a three month gig in return for some additional bionics. You woke up with an extra bionic, a cranial bomb that needed to be reset every month or so or it blows up. Now you're free until the bomb goes off. Maybe you'll find someone who can remove it.", + "points": 2, + "CBMs": [ + "bio_carbon", + "bio_targeting", + "bio_climate", + "bio_ups", + "bio_eye_optic", + "bio_power_storage_mkII", + "bio_torsionratchet", + "bio_uncanny_dodge", + "bio_night_vision", + "afs_bio_cranialbomb" + ], + "skills": [ + { "level": 5, "name": "gun" }, + { "level": 4, "name": "rifle" }, + { "level": 2, "name": "pistol" }, + { "level": 2, "name": "survival" }, + { "level": 1, "name": "melee" }, + { "level": 2, "name": "dodge" } + ], + "items": { + "both": { + "items": [ + "winter_pants_army", + "army_top", + "winter_jacket_army", + "gloves_tactical", + "rucksack", + "cloak", + "mask_ski", + "socks", + "boots_combat", + "canteen", + "wristwatch", + "tent_kit", + "rollmat", + "e_tool", + "knife_hunting" + ], + "entries": [ + { "item": "medium_plus_battery_cell", "ammo-item": "battery", "charges": 600, "container-item": "mil_mess_kit" }, + { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, + { "item": "hat_boonie", "custom-flags": [ "no_auto_equip" ] }, + { + "item": "m2010", + "ammo-item": "300_winmag", + "charges": 5, + "contents-item": [ "shoulder_strap", "rifle_scope", "bipod" ] + }, + { "item": "usp_45", "ammo-item": "45_acp", "charges": 12, "container-item": "holster" }, + { "item": "usp45mag", "ammo-item": "45_acp", "charges": 12 }, + { "item": "usp45mag", "ammo-item": "45_acp", "charges": 12 }, + { "item": "tacvest", "contents-group": [ "army_mags_m2010" ] } ] }, "male": [ "boxer_shorts" ], - "female": [ "sports_bra", "boy_shorts" ] + "female": [ "sports_bra", "boxer_shorts" ] } } ] diff --git a/data/mods/Aftershock/recipes/recipes.json b/data/mods/Aftershock/recipes/recipes.json index 3bee6ef794171..1d54a5f8b4238 100644 --- a/data/mods/Aftershock/recipes/recipes.json +++ b/data/mods/Aftershock/recipes/recipes.json @@ -323,19 +323,6 @@ [ [ "plastic_chunk", 6 ] ] ] }, - { - "result": "afs_hauling_space", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_VEHICLE", - "skill_used": "fabrication", - "difficulty": 5, - "time": 60000, - "autolearn": true, - "using": [ [ "welding_standard", 10 ] ], - "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "WRENCH", "level": 2 }, { "id": "SAW_M", "level": 2 } ], - "components": [ [ [ "hdframe", 3 ] ], [ [ "sheet_metal", 4 ] ] ] - }, { "result": "plut_cell", "type": "recipe", diff --git a/data/mods/Aftershock/spells/enchantments.json b/data/mods/Aftershock/spells/enchantments.json new file mode 100644 index 0000000000000..91a8cff64615d --- /dev/null +++ b/data/mods/Aftershock/spells/enchantments.json @@ -0,0 +1,7 @@ +[ + { + "type": "enchantment", + "id": "cranial_explosion", + "intermittent_activation": { "effects": [ { "frequency": "5 days", "spell_effects": [ { "id": "head_go_bye" } ] } ] } + } +] diff --git a/data/mods/Aftershock/spells/spells.json b/data/mods/Aftershock/spells/spells.json new file mode 100644 index 0000000000000..540295dcb5968 --- /dev/null +++ b/data/mods/Aftershock/spells/spells.json @@ -0,0 +1,14 @@ +[ + { + "id": "head_go_bye", + "type": "SPELL", + "name": "Cranial Explosion", + "description": "This fake spell occurs on cranial bomb activation. Likely fatal.", + "effect": "target_attack", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_LEGS", "NO_HANDS" ], + "min_damage": 82, + "max_damage": 166, + "damage_type": "fire" + } +] diff --git a/data/mods/Aftershock/vehicles/part_items.json b/data/mods/Aftershock/vehicles/part_items.json index 94d59bb9a5bfe..add4e61efdf30 100644 --- a/data/mods/Aftershock/vehicles/part_items.json +++ b/data/mods/Aftershock/vehicles/part_items.json @@ -1,20 +1,4 @@ [ - { - "type": "GENERIC", - "id": "afs_hauling_space", - "name": { "str": "hauling space" }, - "description": "A huge metal space used in conjunction with extension of a vehicle's roof to create a very large amount of space for transporting goods.", - "weight": "120 kg", - "to_hit": -6, - "color": "cyan", - "symbol": "]", - "looks_like": "cargo_aisle", - "material": [ "steel" ], - "volume": "100 L", - "bashing": 2, - "category": "veh_parts", - "price": 50000 - }, { "type": "GENERIC", "id": "afs_titanium_frame", diff --git a/data/mods/Aftershock/vehicles/vehicle_overrides.json b/data/mods/Aftershock/vehicles/vehicle_overrides.json index f4882e95aca6f..bde4234f65bd6 100644 --- a/data/mods/Aftershock/vehicles/vehicle_overrides.json +++ b/data/mods/Aftershock/vehicles/vehicle_overrides.json @@ -97,7 +97,7 @@ { "y": 1, "x": 3, - "parts": [ "turret_mount", { "ammo_types": [ "40x46mm_m433" ], "part": "mounted_mk19", "ammo": 60, "ammo_qty": [ 1, 25 ] } ] + "parts": [ "turret_mount", { "ammo_types": [ "40x53mm_m430a1" ], "part": "mounted_mk19", "ammo": 60, "ammo_qty": [ 1, 25 ] } ] }, { "y": 1, "x": 3, "parts": [ "seat", "seatbelt_heavyduty" ] }, { "y": 0, "x": 3, "parts": [ "hdframe_vertical_2", "stowboard_vertical", "hdroof" ] }, @@ -142,123 +142,6 @@ { "y": -2, "x": -3, "parts": [ { "fuel": "diesel", "part": "external_tank" } ] } ] }, - { - "id": "truck_trailer", - "type": "vehicle", - "name": "Truck Trailer", - "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_vertical_2", "afs_hauling_space", "roof" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_vertical_2", "afs_hauling_space", "roof" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 0, "y": -2, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": 0, "y": -3, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": 1, "y": 0, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 1, "y": 1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 1, "y": -2, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 1, "y": 2, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": 1, "y": -3, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": -1, "y": 0, "parts": [ "hdframe_cross", "afs_hauling_space", "roof" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_cross", "afs_hauling_space", "roof" ] }, - { - "x": -1, - "y": 1, - "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide", "afs_hauling_space", "roof" ] - }, - { - "x": -1, - "y": -2, - "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide", "afs_hauling_space", "roof" ] - }, - { "x": -1, "y": 2, "parts": [ "hdframe_horizontal", "board_vertical", "wheel_mount_medium", "wheel_wide" ] }, - { "x": -1, "y": -3, "parts": [ "hdframe_horizontal", "board_vertical", "wheel_mount_medium", "wheel_wide" ] }, - { "x": 2, "y": 0, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 2, "y": -2, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 2, "y": 2, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": 2, "y": -3, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": -2, "y": 0, "parts": [ "hdframe_cross", "afs_hauling_space", "roof" ] }, - { "x": -2, "y": -1, "parts": [ "hdframe_cross", "afs_hauling_space", "roof" ] }, - { - "x": -2, - "y": 1, - "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide", "afs_hauling_space", "roof" ] - }, - { - "x": -2, - "y": -2, - "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide", "afs_hauling_space", "roof" ] - }, - { "x": -2, "y": 2, "parts": [ "hdframe_horizontal", "board_vertical", "wheel_mount_medium", "wheel_wide" ] }, - { "x": -2, "y": -3, "parts": [ "hdframe_horizontal", "board_vertical", "wheel_mount_medium", "wheel_wide" ] }, - { "x": 3, "y": 0, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 3, "y": -1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 3, "y": 1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 3, "y": -2, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": 3, "y": -3, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": -3, "y": 0, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": -3, "y": -1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": -3, "y": 1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": -3, "y": -2, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": -3, "y": 2, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": -3, "y": -3, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": 4, "y": 0, "parts": [ "hdframe_cross", "afs_hauling_space", "roof" ] }, - { "x": 4, "y": -1, "parts": [ "hdframe_cross", "afs_hauling_space", "roof" ] }, - { "x": 4, "y": 1, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 4, "y": -2, "parts": [ "hdframe_horizontal", "afs_hauling_space", "roof" ] }, - { "x": 4, "y": 2, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": 4, "y": -3, "parts": [ "hdframe_vertical", "board_vertical" ] }, - { "x": -4, "y": 0, "parts": [ "hdframe_horizontal", "door_shutter" ] }, - { "x": -4, "y": -1, "parts": [ "hdframe_horizontal", "door_shutter" ] }, - { "x": -4, "y": 1, "parts": [ "hdframe_horizontal", "door_shutter" ] }, - { "x": -4, "y": -2, "parts": [ "hdframe_horizontal", "door_shutter" ] }, - { "x": -4, "y": 2, "parts": [ "hdframe_se", "board_se" ] }, - { "x": -4, "y": -3, "parts": [ "hdframe_sw", "board_sw" ] }, - { "x": 5, "y": 0, "parts": [ "hdframe_horizontal", "board_horizontal" ] }, - { "x": 5, "y": -1, "parts": [ "hdframe_horizontal", "board_horizontal" ] }, - { "x": 5, "y": 1, "parts": [ "hdframe_horizontal", "board_horizontal" ] }, - { "x": 5, "y": -2, "parts": [ "hdframe_horizontal", "board_horizontal" ] }, - { "x": 5, "y": 2, "parts": [ "hdframe_ne", "board_ne" ] }, - { "x": 5, "y": -3, "parts": [ "hdframe_nw", "board_nw" ] } - ], - "items": [ - { "x": 4, "y": -2, "chance": 2, "items": [ "bubblewrap" ] }, - { "x": 4, "y": -1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": 4, "y": 0, "chance": 5, "items": [ "rope_30" ] }, - { "x": 4, "y": 1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": 3, "y": -2, "chance": 4, "items": [ "bubblewrap" ] }, - { "x": 3, "y": -1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": 3, "y": 0, "chance": 2, "items": [ "rope_30" ] }, - { "x": 3, "y": 1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": 2, "y": -2, "chance": 2, "items": [ "bubblewrap" ] }, - { "x": 2, "y": -1, "chance": 1, "items": [ "bubblewrap" ] }, - { "x": 2, "y": 0, "chance": 4, "items": [ "bubblewrap" ] }, - { "x": 2, "y": 1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": 1, "y": -2, "chance": 2, "items": [ "bubblewrap" ] }, - { "x": 1, "y": -1, "chance": 5, "items": [ "bubblewrap" ] }, - { "x": 1, "y": 0, "chance": 3, "items": [ "rope_30" ] }, - { "x": 1, "y": 1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": 0, "y": -2, "chance": 1, "items": [ "bubblewrap" ] }, - { "x": 0, "y": -1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": 0, "y": 0, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": 0, "y": 1, "chance": 2, "items": [ "bubblewrap" ] }, - { "x": -1, "y": -2, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": -1, "y": -1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": -1, "y": 0, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": -1, "y": 1, "chance": 1, "items": [ "bubblewrap" ] }, - { "x": -2, "y": -2, "chance": 3, "items": [ "rope_6" ] }, - { "x": -2, "y": -1, "chance": 1, "items": [ "bubblewrap" ] }, - { "x": -2, "y": 0, "chance": 2, "items": [ "bubblewrap" ] }, - { "x": -2, "y": 1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": -3, "y": -2, "chance": 1, "items": [ "bubblewrap" ] }, - { "x": -3, "y": -1, "chance": 3, "items": [ "bubblewrap" ] }, - { "x": -3, "y": 0, "chance": 2, "items": [ "bubblewrap" ] }, - { "x": -3, "y": 1, "chance": 5, "items": [ "bubblewrap" ] } - ] - }, { "id": "afs_gas_tanker", "type": "vehicle", diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index 98cb2c35c4754..d73701ac55381 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -13,20 +13,6 @@ "size": 1200, "breaks_into": [ { "item": "steel_lump", "count": [ 4, 6 ] }, { "item": "scrap", "count": [ 4, 6 ] } ] }, - { - "type": "vehicle_part", - "id": "afs_hauling_space", - "copy-from": "cargo_space", - "name": { "str": "hauling space" }, - "looks_like": "cargo_space", - "item": "afs_hauling_space", - "location": "center", - "durability": 400, - "description": "A huge, empty space used in truck trailers to transport vast quantities of stuff.", - "size": 6000, - "breaks_into": [ { "item": "steel_lump", "count": [ 12, 18 ] }, { "item": "scrap", "count": [ 12, 18 ] } ], - "flags": [ "AISLE", "BOARDABLE", "CARGO", "ROOF" ] - }, { "type": "vehicle_part", "id": "afs_crude_plating", @@ -49,21 +35,6 @@ "breaks_into": [ { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 4, 6 ] } ], "damage_reduction": { "all": 4 } }, - { - "id": "laser_cannon", - "copy-from": "turret", - "type": "vehicle_part", - "name": { "str": "mounted laser cannon" }, - "item": "laser_cannon", - "color": "magenta", - "broken_color": "magenta", - "looks_like": "laser_rifle", - "breaks_into": [ { "item": "laser_cannon", "prob": 50 } ], - "requirements": { - "install": { "skills": [ [ "mechanics", 4 ], [ "electronics", 3 ] ] }, - "removal": { "skills": [ [ "mechanics", 3 ] ] } - } - }, { "type": "vehicle_part", "id": "afs_fridge", diff --git a/data/mods/Aftershock/vehicles/vehicles.json b/data/mods/Aftershock/vehicles/vehicles.json index 9fc911500fbde..c032c4e7ac623 100644 --- a/data/mods/Aftershock/vehicles/vehicles.json +++ b/data/mods/Aftershock/vehicles/vehicles.json @@ -447,56 +447,5 @@ { "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": -1, "part": "frame_vertical" }, - { "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": "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, "parts": [ "wheel_mount_medium", "wheel" ] }, - { "x": -1, "y": -1, "part": "storage_battery" }, - { "x": -1, "y": 2, "part": "frame_vertical" }, - { "x": -1, "y": 2, "parts": [ "wheel_mount_medium", "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, "parts": [ "wheel_mount_medium_steerable", "wheel" ] }, - { "x": 1, "y": -1, "part": "turret_mount" }, - { "x": 1, "y": -1, "part": "watercannon" }, - { "x": 1, "y": 2, "part": "frame_ne" }, - { "x": 1, "y": 2, "parts": [ "wheel_mount_medium_steerable", "wheel" ] }, - { "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/CrazyCataclysm/crazy_items.json b/data/mods/CrazyCataclysm/crazy_items.json index ed547af2d2eda..d102441e431e2 100644 --- a/data/mods/CrazyCataclysm/crazy_items.json +++ b/data/mods/CrazyCataclysm/crazy_items.json @@ -94,7 +94,15 @@ "ammo": [ "9mm" ], "dispersion": 480, "durability": 7, - "magazines": [ [ "9mm", [ "hptc9mag_8rd", "hptc9mag_10rd", "hptc9mag_15rd" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "hptc9mag_8rd", "hptc9mag_10rd", "hptc9mag_15rd" ] + } + ] }, { "id": "firekatana_off", diff --git a/data/mods/Dark-Skies-Above/blacklists/item_blacklist.json b/data/mods/Dark-Skies-Above/blacklists/item_blacklist.json index 4ee71013522cc..8102ab8095837 100644 --- a/data/mods/Dark-Skies-Above/blacklists/item_blacklist.json +++ b/data/mods/Dark-Skies-Above/blacklists/item_blacklist.json @@ -234,7 +234,6 @@ "rm614_lmg", "rm802", "rm88_battle_rifle", - "rm99_pistol", "steel_rail", "taint_tornado", "unbio_blaster_gun", diff --git a/data/mods/Dark-Skies-Above/items/alien-scrap.json b/data/mods/Dark-Skies-Above/items/alien-scrap.json new file mode 100644 index 0000000000000..60246ce67e201 --- /dev/null +++ b/data/mods/Dark-Skies-Above/items/alien-scrap.json @@ -0,0 +1,110 @@ +[ + { + "id": "dks_blend_scrap", + "type": "AMMO", + "category": "spare_parts", + "name": { "str": "alien metal scrap" }, + "description": "Scraps of some sort of alien metal of varying sizes, light but tough. It's quite pretty to look at, silvery with faint blue and green undertones. Makes a decent weapon in a pinch and is useful for crafting recipes.", + "weight": "450 g", + "volume": "250 ml", + "price": 0, + "bashing": 8, + "to_hit": -2, + "stack_size": 4, + "material": "dks_blend_mat", + "symbol": ",", + "color": "light_cyan", + "ammo_type": "components", + "qualities": [ [ "HAMMER", 1 ] ] + }, + { + "id": "dks_weave_scrap", + "type": "TOOL", + "category": "spare_parts", + "name": { "str": "alien cloth scrap" }, + "description": "This is a sizable portion of fibrous synthetic cloth, flexible and resistant, but unpleasant to the touch. Useful in crafting.", + "weight": "80 g", + "volume": "300 ml", + "price": 0, + "material": "dks_weave_mat", + "symbol": ",", + "color": "white", + "flags": [ "NO_SALVAGE" ] + }, + { + "id": "dks_polymer_scrap", + "type": "TOOL", + "category": "spare_parts", + "name": { "str": "alien polymer scrap" }, + "description": "This is a collection of strange, ivory colored plastics that are unnervingly warm to the touch. It could be used to fabricate, repair, or reinforce.", + "weight": "50 g", + "volume": "250 ml", + "price": 0, + "material": "dks_biopoly_mat", + "symbol": ",", + "color": "light_gray", + "flags": [ "NO_SALVAGE" ] + }, + { + "type": "GENERIC", + "id": "dks_elecscrap", + "symbol": ",", + "color": "light_green", + "name": { "str": "alien electronic scrap" }, + "category": "spare_parts", + "description": "A collection of dazzling alien electronics, far beyond anything of terrestrial manufacture. Useful in crafting.", + "price": 0, + "material": [ "dks_biopoly_mat" ], + "weight": "26 g", + "volume": "150 ml", + "to_hit": 2 + }, + { + "type": "GENERIC", + "id": "dks_biotech", + "symbol": ",", + "color": "light_red", + "name": { "str": "alien biotech" }, + "category": "spare_parts", + "description": "A fistfull of gently squirming parts that secrete viscous gel. Useful in crafting, but not fun to hold.", + "price": 0, + "material": [ "dks_biopoly_mat", "dks_biogel_mat" ], + "weight": "26 g", + "volume": "150 ml", + "to_hit": 2 + }, + { + "type": "GENERIC", + "id": "dks_powercell", + "category": "spare_parts", + "name": { "str": "alien power cell" }, + "description": "A fist-sized, cylindrical canister that makes you feel a bit tingly when you hold it. Its center houses a faintly glowing red core of some sort. Though fundementally incompatable with earthly technologies, it still might be useful in crafting.", + "weight": "80 g", + "volume": "30 ml", + "price": 15000, + "material": [ "dks_blend_mat", "dks_biopoly_mat" ], + "symbol": "=", + "color": "green", + "looks_like": "battery", + "flags": [ "NO_SALVAGE", "LEAK_DAM", "RADIOACTIVE" ] + }, + { + "type": "COMESTIBLE", + "id": "dks_biogel", + "name": { "str": "alien hydrogel" }, + "weight": "280 g", + "color": "cyan", + "container": "30gal_drum", + "comestible_type": "DRINK", + "symbol": "~", + "quench": 5, + "description": "A lump of alien hydrogel with small writhing specks in it. Useful in crafting. You could 'drink' it, but there's no way it would be pleasant.", + "price": 0, + "price_postapoc": 0, + "material": [ "dks_biogel_mat" ], + "volume": "500 ml", + "phase": "liquid", + "category": "chems", + "fun": -12 + } +] diff --git a/data/mods/Dark-Skies-Above/items/electronics.json b/data/mods/Dark-Skies-Above/items/electronics.json index baffaf3a265eb..d955b72c7eb39 100644 --- a/data/mods/Dark-Skies-Above/items/electronics.json +++ b/data/mods/Dark-Skies-Above/items/electronics.json @@ -6,7 +6,7 @@ "color": "green", "name": { "str": "broken emissary", "str_pl": "broken emissaries" }, "category": "other", - "description": "The massive body of a collapsed emissary. Still a bit intimidating, perhaps knowing the damage it can cause. Could be gutted for parts.", + "description": "The massive body of a collapsed emissary. Still a bit intimidating, perhaps knowing the damage it can cause. Could be gutted for parts, but you'll probably need specialized alien tools.", "price": 1000, "material": [ "superalloy" ], "volume": "875000 ml", @@ -20,7 +20,7 @@ "color": "green", "name": { "str": "broken emissary of war", "str_pl": "broken emissaries of war" }, "category": "other", - "description": "The massive body of a collapsed emissary of war. Still a bit intimidating, perhaps knowing the damage it can cause. Could be gutted for parts.", + "description": "The massive body of a collapsed emissary of war. Still a bit intimidating, perhaps knowing the damage it can cause. Could be gutted for parts, but you'll probably need specialized alien tools.", "price": 1000, "material": [ "superalloy" ], "volume": "875000 ml", @@ -34,7 +34,7 @@ "color": "green", "name": { "str": "broken emissary of flame", "str_pl": "broken emissaries of flame" }, "category": "other", - "description": "The massive body of a collapsed emissary of flame. Still a bit intimidating, perhaps knowing the damage it can cause. Could be gutted for parts.", + "description": "The massive body of a collapsed emissary of flame. Still a bit intimidating, perhaps knowing the damage it can cause. Could be gutted for parts, but you'll probably need specialized alien tools.", "price": 1000, "material": [ "superalloy" ], "volume": "875000 ml", @@ -46,13 +46,13 @@ "id": "broken_dks_glowdrone", "copy-from": "broken_eyebot", "name": { "str": "broken surveillance drone" }, - "description": "A broken drone. Much less threatening now that it isn't shining its light everywhere. Could be gutted for parts." + "description": "A broken drone. Much less threatening now that it isn't shining its light everywhere. Could be gutted for parts. Specialized alien tools would be best for disassembly, but you could make do with more human instruments instead." }, { "type": "GENERIC", "id": "broken_dks_scidrone", "copy-from": "broken_eyebot", "name": { "str": "broken seeker drone" }, - "description": "A broken drone. Much less threatening now that it isn't prodding you with its tools. Could be gutted for parts." + "description": "A broken drone. Much less threatening now that it isn't prodding you. Specialized alien tools would be best for disassembly, but you could make do with more human instruments instead." } ] diff --git a/data/mods/Dark-Skies-Above/materials.json b/data/mods/Dark-Skies-Above/materials.json new file mode 100644 index 0000000000000..1486c985fb507 --- /dev/null +++ b/data/mods/Dark-Skies-Above/materials.json @@ -0,0 +1,102 @@ +[ + { + "type": "material", + "ident": "dks_blend_mat", + "name": "Prismetallic Blend", + "density": 30, + "specific_heat_liquid": 0.79, + "specific_heat_solid": 0.54, + "latent_heat": 390, + "bash_resist": 6, + "cut_resist": 6, + "bullet_resist": 5, + "acid_resist": 6, + "fire_resist": 7, + "elec_resist": 0, + "chip_resist": 30, + "repaired_with": "dks_blend_scrap", + "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], + "bash_dmg_verb": "dented", + "cut_dmg_verb": "scratched", + "burn_products": [ [ "dks_blend_scrap", 1 ] ], + "compacts_into": [ "dks_blend_scrap" ] + }, + { + "type": "material", + "ident": "dks_weave_mat", + "name": "Chromogenic Weave", + "density": 2, + "specific_heat_liquid": 1.7, + "specific_heat_solid": 1.7, + "latent_heat": 42, + "soft": true, + "reinforces": true, + "bash_resist": 3, + "cut_resist": 3, + "bullet_resist": 2, + "acid_resist": 9, + "fire_resist": 2, + "elec_resist": 2, + "chip_resist": 7, + "repaired_with": "dks_weave_scrap", + "salvaged_into": "dks_weave_scrap", + "dmg_adj": [ "ripped", "torn", "shredded", "tattered" ], + "bash_dmg_verb": "ripped", + "cut_dmg_verb": "cut", + "burn_data": [ + { "fuel": 1, "smoke": 1, "burn": 1, "volume_per_turn": "650 ml" }, + { "fuel": 1, "smoke": 1, "burn": 1 }, + { "fuel": 1, "smoke": 1, "burn": 2 } + ] + }, + { + "type": "material", + "ident": "dks_biopoly_mat", + "name": "Collagenic Polymer", + "density": 8, + "specific_heat_liquid": 1.6, + "specific_heat_solid": 1.6, + "latent_heat": 50, + "bash_resist": 3, + "cut_resist": 3, + "bullet_resist": 2, + "acid_resist": 7, + "fire_resist": 5, + "elec_resist": 2, + "chip_resist": 6, + "repaired_with": "dks_polymer_scrap", + "salvaged_into": "dks_polymer_scrap", + "dmg_adj": [ "scratched", "cut", "cracked", "shattered" ], + "bash_dmg_verb": "dented", + "cut_dmg_verb": "gouged", + "burn_data": [ + { "fuel": 1, "smoke": 2, "burn": 1, "volume_per_turn": "750 ml" }, + { "fuel": 1, "smoke": 3, "burn": 2 }, + { "fuel": 1, "smoke": 5, "burn": 5 } + ] + }, + { + "type": "material", + "ident": "dks_biogel_mat", + "name": "Emulsified Hydrogel", + "density": 8, + "specific_heat_liquid": 1.6, + "specific_heat_solid": 1.6, + "latent_heat": 200, + "bash_resist": 1, + "cut_resist": 1, + "bullet_resist": 1, + "acid_resist": 2, + "fire_resist": 1, + "elec_resist": 1, + "chip_resist": 2, + "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], + "bash_dmg_verb": "pupled", + "cut_dmg_verb": "cut", + "burn_data": [ + { "fuel": 1, "smoke": 2, "burn": 1, "volume_per_turn": "750 ml" }, + { "fuel": 1, "smoke": 3, "burn": 2 }, + { "fuel": 1, "smoke": 5, "burn": 5 } + ] + } +] diff --git a/data/mods/Dark-Skies-Above/monsters/mon_groups/stray_spawns.json b/data/mods/Dark-Skies-Above/monsters/mon_groups/stray_spawns.json index ed3413e72591b..b56b2a20542a1 100644 --- a/data/mods/Dark-Skies-Above/monsters/mon_groups/stray_spawns.json +++ b/data/mods/Dark-Skies-Above/monsters/mon_groups/stray_spawns.json @@ -2,43 +2,36 @@ { "type": "monstergroup", "name": "DKS_GROUP_STRAY_UPGRADE", - "default": "dks_mon_stray", + "default": "mon_null", "monsters": [ - { "monster": "dks_mon_stray_eater", "freq": 150, "cost_multiplier": 10 }, - { "monster": "dks_mon_stray_heavy", "freq": 100, "cost_multiplier": 12 }, - { "monster": "dks_mon_stray_fast", "freq": 100, "cost_multiplier": 5 } + { "monster": "dks_mon_stray_heavy", "freq": 250, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_big", "freq": 175, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_fast", "freq": 175, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_prowler", "freq": 100, "cost_multiplier": 15 }, + { "monster": "dks_mon_stray_eater", "freq": 125, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_golem", "freq": 100, "cost_multiplier": 20 } ] }, { "type": "monstergroup", - "name": "MON_CRYSTAL_UPGRADE", - "default": "dks_mon_crystal_wall", + "name": "DKS_WRETCH_UPGRADE", + "default": "mon_null", "monsters": [ - { "monster": "dks_mon_crystal_shriek", "freq": 25, "cost_multiplier": 5 }, - { "monster": "dks_mon_crystal_whip", "freq": 25, "cost_multiplier": 5 }, - { "monster": "dks_mon_crystal_zap", "freq": 25, "cost_multiplier": 7 }, - { "monster": "dks_mon_crystal_hive", "freq": 15, "cost_multiplier": 10 } + { "monster": "dks_mon_stray_wretch_tendrils", "freq": 200, "cost_multiplier": 10 }, + { "monster": "dks_mon_stray_wretch_elec", "freq": 100, "cost_multiplier": 12 }, + { "monster": "dks_mon_stray_wretch_tough", "freq": 150, "cost_multiplier": 10 }, + { "monster": "dks_mon_stray_wretchmother", "freq": 150, "cost_multiplier": 30 } ] }, { "type": "monstergroup", - "name": "GROUP_ZOMBIE", - "default": "dks_mon_stray_burnt", - "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 1, "cost_multiplier": 7, "pack_size": [ 15, 25 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 1, "cost_multiplier": 13, "pack_size": [ 25, 45 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 1, "cost_multiplier": 20, "pack_size": [ 35, 65 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 75, "cost_multiplier": 0 }, - { "monster": "dks_mon_stray_child_burnt", "freq": 1, "cost_multiplier": 8, "pack_size": [ 2, 5 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 1, "cost_multiplier": 14, "pack_size": [ 5, 11 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 1, "cost_multiplier": 21, "pack_size": [ 11, 17 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 75, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 20, "cost_multiplier": 2 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 16, "pack_size": [ 2, 5 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 24, "pack_size": [ 5, 9 ] }, - { "monster": "dks_mon_crystal_mite", "freq": 1, "cost_multiplier": 5, "pack_size": [ 4, 6 ], "starts": 1440 }, - { "monster": "dks_mon_crystal_mite", "freq": 1, "cost_multiplier": 10, "pack_size": [ 7, 9 ], "starts": 2160 } + "name": "MON_CRYSTAL_UPGRADE", + "default": "dks_mon_crystal_wall", + "monsters": [ + { "monster": "dks_mon_crystal_shriek", "freq": 125, "cost_multiplier": 5 }, + { "monster": "dks_mon_crystal_whip", "freq": 125, "cost_multiplier": 5 }, + { "monster": "dks_mon_crystal_zap", "freq": 125, "cost_multiplier": 7 }, + { "monster": "dks_mon_crystal_hive", "freq": 115, "cost_multiplier": 10 } ] }, { @@ -46,8 +39,10 @@ "type": "monstergroup", "default": "mon_null", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 100, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 100, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray", "freq": 100, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray_child", "freq": 100, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 75, "cost_multiplier": 2, "pack_size": [ 1, 2 ] }, + { "monster": "dks_mon_stray_big", "freq": 50, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, { "monster": "dks_mon_stray_wretch_burnt", "freq": 25, "cost_multiplier": 1, "pack_size": [ 2, 3 ] } ] }, @@ -56,8 +51,10 @@ "type": "monstergroup", "default": "mon_null", "monsters": [ - { "monster": "dks_mon_stray_child_burnt", "freq": 295, "cost_multiplier": 1, "pack_size": [ 5, 12 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 100, "cost_multiplier": 2 } + { "monster": "dks_mon_stray_child", "freq": 295, "cost_multiplier": 1, "pack_size": [ 5, 12 ] }, + { "monster": "dks_mon_stray", "freq": 100, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_heavy", "freq": 75, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 25, "cost_multiplier": 1, "pack_size": [ 2, 3 ] } ] }, { @@ -65,77 +62,181 @@ "type": "monstergroup", "default": "mon_null", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 125, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 175, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 125, "cost_multiplier": 1, "pack_size": [ 5, 6 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 25, "cost_multiplier": 1, "pack_size": [ 8, 9 ] } + { "monster": "dks_mon_stray", "freq": 125, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 125, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 75, "cost_multiplier": 2, "pack_size": [ 1, 2 ] }, + { "monster": "dks_mon_stray_big", "freq": 50, "cost_multiplier": 1, "pack_size": [ 2, 3 ] } ] }, { "type": "monstergroup", - "name": "GROUP_HOUSE", - "default": "dks_mon_stray_burnt", + "name": "GROUP_ZOMBIE", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_child_burnt", "freq": 150, "cost_multiplier": 2 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 40, "cost_multiplier": 2 }, - { "monster": "dks_mon_crystal_mite", "freq": 1, "cost_multiplier": 10 } + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 7, "pack_size": [ 5, 20 ] }, + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 13, "pack_size": [ 15, 50 ] }, + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 20, "pack_size": [ 25, 70 ] }, + { "monster": "dks_mon_stray", "freq": 75, "cost_multiplier": 0, "pack_size": [ 5, 10 ] }, + { "monster": "dks_mon_stray_big", "freq": 75, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_big", "freq": 3, "cost_multiplier": 7, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 75, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_child", "freq": 75, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 16, "pack_size": [ 5, 8 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 24, "pack_size": [ 8, 12 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 5, "cost_multiplier": 4 }, + { "monster": "dks_mon_stray_fireman", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 8, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_soldier", "freq": 5, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_soldier", "freq": 1, "cost_multiplier": 9, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_cop", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 5, "cost_multiplier": 6, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 10, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_heavy", "freq": 20, "cost_multiplier": 5, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_crystal_mite", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 1, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { "type": "monstergroup", - "name": "GROUP_PREPPER_HOUSE", - "default": "mon_null", + "name": "GROUP_VANILLA", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 125, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_burnt", "freq": 125, "cost_multiplier": 4, "pack_size": [ 2, 3 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 180, "cost_multiplier": 0 } + { "monster": "dks_mon_stray_big", "freq": 266, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_child", "freq": 100, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_heavy", "freq": 100, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 60, "cost_multiplier": 0 } ] }, { "type": "monstergroup", - "name": "GROUP_VANILLA", - "default": "dks_mon_stray_burnt", + "name": "GROUP_POLICE", + "//": "+30% cops", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_child_burnt", "freq": 100, "cost_multiplier": 0 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 50, "cost_multiplier": 0 }, - { "monster": "dks_mon_crystal_mite", "freq": 1, "cost_multiplier": 10 } + { "monster": "dks_mon_stray_big", "freq": 100, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_child", "freq": 40, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_heavy", "freq": 40, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_cop", "freq": 280, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_cop", "freq": 140, "cost_multiplier": 3, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_fireman", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 16, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 5, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 30, "cost_multiplier": 5 }, + { "monster": "dks_mon_crystal_mite", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 1, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_HOUSE", + "//": "+15% child", + "default": "dks_mon_stray", + "monsters": [ + { "monster": "dks_mon_stray_big", "freq": 130, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_heavy", "freq": 50, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_child", "freq": 150, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 5, "cost_multiplier": 4, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray_fireman", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 8, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 40, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 15, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 30, "cost_multiplier": 5 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 15, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_PREPPER_HOUSE", + "default": "dks_mon_stray", + "monsters": [ + { "monster": "dks_mon_stray_heavy", "freq": 180, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_soldier", "freq": 10, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_soldier", "freq": 10, "cost_multiplier": 5, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_crystal_hive", "freq": 10, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 20, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 25, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { "type": "monstergroup", "name": "GROUP_PHARM", - "default": "dks_mon_stray_burnt", + "//": "+13% fast", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_child_burnt", "freq": 5, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 130, "cost_multiplier": 2 } + { "monster": "dks_mon_stray_big", "freq": 130, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_heavy", "freq": 130, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_child", "freq": 50, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_cop", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 5, "cost_multiplier": 4, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray_fireman", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 8, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 130, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 15, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 30, "cost_multiplier": 5 }, + { "monster": "dks_mon_crystal_hive", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 15, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { "type": "monstergroup", "name": "GROUP_ELECTRO", - "default": "dks_mon_stray_burnt", + "//": "+15% electric", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_child_burnt", "freq": 50, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 130, "cost_multiplier": 2 } + { "monster": "dks_mon_stray_big", "freq": 130, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_heavy", "freq": 50, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_child", "freq": 50, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_cop", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 5, "cost_multiplier": 4, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray_fireman", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 8, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 40, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 15, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 180, "cost_multiplier": 5 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 15, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { "type": "monstergroup", "name": "GROUP_GROCERY", - "default": "dks_mon_stray_burnt", + "//": "+15% fat", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 280, "cost_multiplier": 5, "pack_size": [ 5, 10 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 50, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 40, "cost_multiplier": 2 } + { "monster": "dks_mon_stray_big", "freq": 280, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_heavy", "freq": 50, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_child", "freq": 50, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_cop", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 5, "cost_multiplier": 4, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray_fireman", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 8, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 40, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 15, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 30, "cost_multiplier": 5 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 15, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { "type": "monstergroup", "name": "GROUP_PUBLICWORKERS", - "default": "mon_null", + "default": "dks_mon_stray_heavy", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 125, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 4, "cost_multiplier": 5 } + { "monster": "dks_mon_stray", "freq": 100, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_big", "freq": 26, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_child", "freq": 10, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 10, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_crackle", "freq": 200, "cost_multiplier": 5 } ] }, { @@ -144,59 +245,138 @@ "//": "10% chance of a zombie", "default": "mon_null", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 40, "cost_multiplier": 0, "pack_size": [ 1, 5 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 10, "cost_multiplier": 0 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 10, "cost_multiplier": 5 } + { "monster": "dks_mon_stray", "freq": 40, "cost_multiplier": 0, "pack_size": [ 1, 5 ] }, + { "monster": "dks_mon_stray_big", "freq": 18, "cost_multiplier": 2, "pack_size": [ 1, 5 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 10, "cost_multiplier": 3, "pack_size": [ 1, 5 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 6, "cost_multiplier": 2, "pack_size": [ 1, 5 ] }, + { "monster": "dks_mon_stray_child", "freq": 5, "cost_multiplier": 2, "pack_size": [ 1, 5 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE_FAT_BASE", + "default": "dks_mon_stray_big", + "monsters": [ { "monster": "dks_mon_stray_big", "freq": 40, "cost_multiplier": 2 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE_FAT", + "default": "dks_mon_stray_big", + "monsters": [ + { "monster": "dks_mon_stray_eater", "freq": 20, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_big", "freq": 480, "cost_multiplier": 2 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE_GRAB", + "default": "dks_mon_stray", + "monsters": [ + { "monster": "dks_mon_stray_wretch", "freq": 40, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_wretch_tendrils", "freq": 40, "cost_multiplier": 2 } ] }, { "type": "monstergroup", "name": "GROUP_SCHOOL", - "default": "dks_mon_stray_child_burnt", + "default": "dks_mon_stray_child", "//": "School monster spawns.", "monsters": [ - { "monster": "dks_mon_stray_child_burnt", "freq": 650, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_burnt", "freq": 150, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 50, "cost_multiplier": 1 } + { "monster": "dks_mon_stray_child", "freq": 650, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_big", "freq": 50, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_heavy", "freq": 50, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray", "freq": 150, "cost_multiplier": 1 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 15, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SMALL_STATION", + "default": "dks_mon_stray_heavy", + "monsters": [ + { "monster": "dks_mon_stray", "freq": 55, "cost_multiplier": 4, "pack_size": [ 1, 2 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 50, "cost_multiplier": 5, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 25, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LARGE_STATION", + "default": "mon_zombie_technician", + "monsters": [ + { "monster": "dks_mon_stray_heavy", "freq": 55, "cost_multiplier": 4, "pack_size": [ 1, 2 ] }, + { "monster": "dks_mon_stray", "freq": 50, "cost_multiplier": 5, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 25, "cost_multiplier": 0 } ] }, { "type": "monstergroup", "name": "GROUP_CHURCH_ZOMBIE", - "default": "dks_mon_stray_burnt", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 1, "cost_multiplier": 7, "pack_size": [ 5, 10 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 1, "cost_multiplier": 13, "pack_size": [ 15, 20 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 1, "cost_multiplier": 20, "pack_size": [ 25, 30 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 75, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 25, "cost_multiplier": 3 } + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 7, "pack_size": [ 5, 10 ] }, + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 13, "pack_size": [ 15, 20 ] }, + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 20, "pack_size": [ 25, 30 ] }, + { "monster": "dks_mon_stray_big", "freq": 75, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_big", "freq": 3, "cost_multiplier": 7, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 75, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_child", "freq": 75, "cost_multiplier": 1 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 15, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { "type": "monstergroup", "name": "GROUP_ZOMBIE_PRISON", - "default": "dks_mon_stray_burnt", - "monsters": [ { "monster": "dks_mon_stray_wretch_burnt", "freq": 25, "cost_multiplier": 1 } ] + "default": "dks_mon_stray", + "monsters": [ + { "monster": "dks_mon_stray", "freq": 350, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_crackle", "freq": 10, "cost_multiplier": 0 } + ] }, { "type": "monstergroup", "name": "GROUP_ZOMBIE_COP", - "default": "dks_mon_stray_burnt", - "monsters": [ { "monster": "dks_mon_stray_wretch_burnt", "freq": 40, "cost_multiplier": 10 } ] + "default": "dks_mon_stray_cop", + "monsters": [ + { "monster": "dks_mon_stray_cop", "freq": 100, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 50, "cost_multiplier": 4, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray", "freq": 50, "cost_multiplier": 2, "pack_size": [ 1, 2 ] } + ] }, { "type": "monstergroup", "name": "GROUP_HOSPITAL", - "default": "dks_mon_stray_burnt", + "default": "mon_null", + "//": "Hospital monster spawns. Same as GROUP_ZOMBIE, but without Z-dogs.", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 7, "pack_size": [ 5, 10 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 15, "pack_size": [ 15, 20 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 20, "pack_size": [ 25, 30 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 75, "cost_multiplier": 0, "pack_size": [ 5, 15 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 5, "cost_multiplier": 10, "pack_size": [ 5, 15 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 10, "cost_multiplier": 5, "pack_size": [ 1, 10 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 70, "cost_multiplier": 5, "pack_size": [ 1, 6 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 40, "cost_multiplier": 5, "pack_size": [ 2, 8 ] } + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 7, "pack_size": [ 5, 20 ] }, + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 13, "pack_size": [ 15, 40 ] }, + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 20, "pack_size": [ 25, 60 ] }, + { "monster": "dks_mon_stray", "freq": 75, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_big", "freq": 75, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_big", "freq": 3, "cost_multiplier": 7, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 75, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_child", "freq": 75, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 16, "pack_size": [ 5, 8 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 24, "pack_size": [ 8, 12 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 5, "cost_multiplier": 4 }, + { "monster": "dks_mon_stray_fireman", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 8, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_soldier", "freq": 5, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_soldier", "freq": 1, "cost_multiplier": 9, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_cop", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 5, "cost_multiplier": 6, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 10, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_heavy", "freq": 20, "cost_multiplier": 5, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_crystal_mite", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 1, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { @@ -205,82 +385,107 @@ "default": "mon_null", "//": "Steel mill monster spawns.", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 7, "pack_size": [ 5, 10 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 15, "pack_size": [ 15, 20 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 20, "pack_size": [ 25, 30 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 75, "cost_multiplier": 0, "pack_size": [ 5, 15 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 5, "cost_multiplier": 10, "pack_size": [ 5, 15 ] }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 10, "cost_multiplier": 5, "pack_size": [ 1, 10 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 70, "cost_multiplier": 5, "pack_size": [ 1, 6 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 40, "cost_multiplier": 5, "pack_size": [ 2, 8 ] }, - { "monster": "dks_mon_crystal_mite", "freq": 1, "cost_multiplier": 7, "pack_size": [ 4, 6 ], "starts": 2160 }, - { "monster": "dks_mon_crystal_mite", "freq": 1, "cost_multiplier": 13, "pack_size": [ 7, 9 ], "starts": 2160 } + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 7, "pack_size": [ 5, 20 ] }, + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 13, "pack_size": [ 15, 40 ] }, + { "monster": "dks_mon_stray", "freq": 1, "cost_multiplier": 20, "pack_size": [ 25, 60 ] }, + { "monster": "dks_mon_stray", "freq": 75, "cost_multiplier": 0 }, + { "monster": "dks_mon_stray_big", "freq": 75, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_big", "freq": 3, "cost_multiplier": 7, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 75, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_child", "freq": 75, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 4, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 16, "pack_size": [ 5, 8 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 1, "cost_multiplier": 24, "pack_size": [ 8, 12 ] }, + { "monster": "dks_mon_stray_wretch_burnt", "freq": 5, "cost_multiplier": 4 }, + { "monster": "dks_mon_stray_fireman", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 8, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_soldier", "freq": 5, "cost_multiplier": 3 }, + { "monster": "dks_mon_stray_soldier", "freq": 1, "cost_multiplier": 9, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_cop", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 5, "cost_multiplier": 6, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_crackle", "freq": 10, "cost_multiplier": 5 }, + { "monster": "dks_mon_stray_heavy", "freq": 20, "cost_multiplier": 5, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_crystal_mite", "freq": 5, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 1, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 10, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { "name": "GROUP_MALL", "type": "monstergroup", - "default": "dks_mon_stray_burnt", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 7, "pack_size": [ 5, 10 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 15, "pack_size": [ 15, 20 ] }, - { "monster": "dks_mon_stray_burnt", "freq": 5, "cost_multiplier": 20, "pack_size": [ 25, 30 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 70, "cost_multiplier": 5, "pack_size": [ 1, 6 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 40, "cost_multiplier": 5, "pack_size": [ 2, 8 ] }, - { "monster": "dks_mon_crystal_mite", "freq": 1, "cost_multiplier": 7, "pack_size": [ 4, 6 ], "starts": 2160 }, - { "monster": "dks_mon_crystal_mite", "freq": 1, "cost_multiplier": 13, "pack_size": [ 7, 9 ], "starts": 2160 } + { "monster": "dks_mon_stray", "freq": 100, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_big", "freq": 30, "cost_multiplier": 1 }, + { "monster": "dks_mon_stray_fireman", "freq": 10, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_fireman", "freq": 8, "cost_multiplier": 3, "pack_size": [ 1, 4 ] }, + { "monster": "dks_mon_stray_cop", "freq": 20, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 5, "cost_multiplier": 6, "pack_size": [ 2, 4 ] }, + { "monster": "dks_mon_stray_child", "freq": 20, "cost_multiplier": 1 }, + { "monster": "dks_mon_crystal_mite", "freq": 30, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_hive", "freq": 30, "cost_multiplier": 25, "starts": 1440 }, + { "monster": "dks_mon_crystal_mite", "freq": 30, "cost_multiplier": 25, "pack_size": [ 2, 5 ], "starts": 2160 } ] }, { "type": "monstergroup", "name": "GROUP_ZOMBIE_SEXSHOP_A", - "default": "mon_null", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 150, "cost_multiplier": 1 }, - { "monster": "dks_mon_stray_wretch_burnt", "freq": 100, "cost_multiplier": 2 } + { "monster": "dks_mon_stray_cop", "freq": 250, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_cop", "freq": 125, "cost_multiplier": 2, "pack_size": [ 2, 3 ] }, + { "monster": "dks_mon_stray", "freq": 150, "cost_multiplier": 1 } ] }, { "type": "monstergroup", "name": "GROUP_ZOMBIE_SEXSHOP_B", - "default": "mon_null", - "monsters": [ { "monster": "dks_mon_stray_burnt", "freq": 500, "cost_multiplier": 2 } ] + "default": "dks_mon_stray", + "monsters": [ { "monster": "dks_mon_stray_big", "freq": 500, "cost_multiplier": 2 } ] }, { "name": "GROUP_FIRE", "type": "monstergroup", - "default": "dks_mon_stray_burnt", - "monsters": [ { "monster": "dks_mon_stray_child_burnt", "freq": 100, "cost_multiplier": 2, "pack_size": [ 3, 5 ] } ] + "default": "dks_mon_stray_heavy", + "monsters": [ + { "monster": "dks_mon_stray_cop", "freq": 100, "cost_multiplier": 2, "pack_size": [ 3, 5 ] }, + { "monster": "dks_mon_stray", "freq": 40, "cost_multiplier": 1 } + ] }, { "name": "GROUP_PLAIN", "type": "monstergroup", - "default": "dks_mon_stray_burnt", - "monsters": [ { "monster": "dks_mon_stray_burnt", "freq": 40, "cost_multiplier": 1 } ] + "default": "dks_mon_stray", + "monsters": [ { "monster": "dks_mon_stray", "freq": 40, "cost_multiplier": 1 } ] }, { "name": "GROUP_HOTEL_POOL", "type": "monstergroup", - "default": "mon_null", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 100, "cost_multiplier": 2 }, - { "monster": "dks_mon_stray_burnt", "freq": 50, "cost_multiplier": 10, "pack_size": [ 3, 8 ] }, - { "monster": "dks_mon_stray_child_burnt", "freq": 35, "cost_multiplier": 1 } + { "monster": "dks_mon_stray", "freq": 100, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray", "freq": 50, "cost_multiplier": 10, "pack_size": [ 3, 8 ] }, + { "monster": "dks_mon_stray_child", "freq": 35, "cost_multiplier": 1 } ] }, { "name": "GROUP_HOTEL_GYM", "type": "monstergroup", - "default": "mon_null", - "monsters": [ { "monster": "dks_mon_stray_burnt", "freq": 30, "cost_multiplier": 2 } ] + "default": "dks_mon_stray", + "monsters": [ + { "monster": "dks_mon_stray_big", "freq": 30, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray_big", "freq": 15, "cost_multiplier": 8, "pack_size": [ 2, 6 ] }, + { "monster": "dks_mon_stray_heavy", "freq": 8, "cost_multiplier": 3 } + ] }, { "name": "GROUP_POOL_NOKIDS", "type": "monstergroup", - "default": "mon_null", + "default": "dks_mon_stray", "monsters": [ - { "monster": "dks_mon_stray_burnt", "freq": 100, "cost_multiplier": 2 }, - { "monster": "dks_mon_stray_burnt", "freq": 50, "cost_multiplier": 10, "pack_size": [ 3, 8 ] } + { "monster": "dks_mon_stray_heavy", "freq": 100, "cost_multiplier": 2 }, + { "monster": "dks_mon_stray", "freq": 50, "cost_multiplier": 10, "pack_size": [ 3, 8 ] } ] } ] diff --git a/data/mods/Dark-Skies-Above/monsters/wild_aliens/strays.json b/data/mods/Dark-Skies-Above/monsters/wild_aliens/strays.json index a615d405b1a13..a455b09e196b9 100644 --- a/data/mods/Dark-Skies-Above/monsters/wild_aliens/strays.json +++ b/data/mods/Dark-Skies-Above/monsters/wild_aliens/strays.json @@ -3,16 +3,16 @@ "id": "dks_mon_stray", "type": "MONSTER", "name": { "str": "stray" }, - "description": "A mutated human, a hateful shadow of their former self. Patches of cyan-purple crystals grow out of their pale flesh, slowly overtaking it.", - "looks_like": "mon_skeleton", + "description": "A former human, a hateful shadow of its former self capable of violent outbursts of fury. Large patches of cyan-purple crystals grow out of its bruised flesh, slowly overtaking it.", + "looks_like": "mon_zombie", "default_faction": "stray", "bodytype": "human", "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], "volume": "62500 ml", "weight": "81500 g", - "hp": 60, - "speed": 70, + "hp": 70, + "speed": 80, "material": [ "flesh" ], "symbol": "S", "color": "white", @@ -20,29 +20,206 @@ "morale": 100, "melee_skill": 4, "melee_dice": 2, - "melee_dice_sides": 3, - "melee_cut": 1, + "melee_dice_sides": 4, + "melee_cut": 2, "dodge": 1, "vision_night": 3, "harvest": "mutant_human", - "path_settings": { "max_dist": 2 }, + "path_settings": { "max_dist": 4 }, "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "GRAB", 7 ], [ "scratch", 20 ] ], - "death_drops": "mon_zombie_hulk_death_drops", + "death_drops": "default_zombie_death_drops", + "death_function": [ "NORMAL" ], + "upgrades": { "half_life": 21, "into_group": "DKS_GROUP_STRAY_UPGRADE" }, + "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "POISON", "BLEED", "FILTHY", "BASHES", "GROUP_BASH", "PUSH_MON", "REVIVES" ] + }, + { + "id": "dks_mon_stray_cop", + "type": "MONSTER", + "name": "stray cop", + "description": "A former law enforcer, no doubt deployed to help civilians evacuate during the Arrival. Unfortunately, despite their best efforts, many were still infested. It still clad from head to toe in light body armor, partially overtaken by crystal.", + "looks_like": "mon_zombie_cop", + "bodytype": "human", + "default_faction": "stray", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 80, + "material": [ "flesh" ], + "symbol": "S", + "color": "blue", + "aggression": 100, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 5, + "armor_bash": 6, + "armor_cut": 8, + "armor_bullet": 6, + "vision_night": 3, + "harvest": "mutant_human", + "path_settings": { "max_dist": 4 }, + "special_attacks": [ + { "type": "bite", "cooldown": 5 }, + [ "GRAB", 7 ], + { "id": "slam", "damage_max_instance": [ { "damage_type": "bash", "amount": 10 } ] } + ], + "death_drops": "mon_zombie_cop_death_drops", + "upgrades": { "half_life": 60, "into": "dks_mon_crystal_baby" }, "death_function": [ "NORMAL" ], - "upgrades": { "half_life": 12, "into_group": "DKS_GROUP_STRAY_UPGRADE" }, "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", + "WARM", + "BASHES", + "GROUP_BASH", + "POISON", + "BLEED", + "PUSH_MON", + "FILTHY", + "REVIVES" + ] + }, + { + "id": "dks_mon_stray_soldier", + "type": "MONSTER", + "name": { "str": "stray soldier" }, + "description": "A former soldier, no doubt deployed to assist with evacuations and drive off the Order, dressed from head to toe in partially crystalized combat armor. Though their training could not have prepared them for what they were up against, they still seem to remember enough to take you on.", + "looks_like": "mon_zombie_soldier", + "default_faction": "stray", + "bodytype": "human", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 100, + "speed": 90, + "material": [ "flesh" ], + "symbol": "S", + "color": "light_green_green", + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 6, + "dodge": 1, + "armor_bash": 12, + "armor_cut": 25, + "armor_bullet": 20, + "vision_day": 30, + "vision_night": 3, + "harvest": "mutant_human", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ + { "type": "bite", "cooldown": 5 }, + [ "GRAB", 7 ], + { "id": "slam", "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] } + ], + "death_drops": "mon_zombie_soldier_death_drops", + "death_function": [ "NORMAL" ], + "upgrades": { "half_life": 60, "into": "dks_mon_crystal_baby" }, + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GROUP_BASH", "POISON", "BLEED", "PUSH_MON", "FILTHY", "REVIVES" ] + }, + { + "id": "dks_mon_stray_fireman", + "type": "MONSTER", + "name": { "str": "stray firefighter" }, + "description": "A former human body clad in tattered first responder gear, wet sounding breath gurgling through the gas mask encrusted to its face. Staggering aroun the community it once served, it is little more than yet another host for the crystal infestation.", + "looks_like": "mon_zombie_fireman", + "default_faction": "stray", + "bodytype": "human", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 80, + "material": [ "flesh" ], + "symbol": "S", + "color": "yellow", + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 3, + "melee_dice_sides": 3, + "melee_cut": 0, + "armor_bash": 6, + "armor_cut": 6, + "armor_bullet": 5, + "armor_acid": 3, + "armor_fire": 10, + "vision_night": 3, + "harvest": "mutant_human", + "path_settings": { "max_dist": 4 }, + "special_attacks": [ { "id": "slam" }, [ "GRAB", 7 ] ], + "death_drops": "mon_zombie_fireman_death_drops", + "death_function": [ "NORMAL" ], + "upgrades": { "half_life": 60, "into": "dks_mon_crystal_baby" }, + "flags": [ + "SEES", + "HEARS", + "STUMBLES", + "WARM", + "BASHES", + "GROUP_BASH", "POISON", "BLEED", - "HUMAN", + "NO_BREATHE", + "REVIVES", + "PUSH_MON", "FILTHY", + "REVIVES" + ] + }, + { + "id": "dks_mon_stray_big", + "type": "MONSTER", + "name": { "str": "hungry stray" }, + "description": "An obese former human, body studded with irregular crystal growths deforming its body. It howls in mockery of hunger as it wanders, seeking new meals to add to its bulk.", + "default_faction": "stray", + "looks_like": "mon_zombie_fat", + "bodytype": "human", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 95, + "speed": 60, + "material": [ "flesh" ], + "symbol": "S", + "color": "i_white", + "aggression": 100, + "morale": 100, + "melee_skill": 3, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_cut": 0, + "armor_bash": 5, + "armor_cut": 3, + "armor_bullet": 2, + "vision_night": 3, + "harvest": "mutant_human", + "path_settings": { "max_dist": 4 }, + "special_attacks": [ { "type": "bite", "cooldown": 5, "min_mul": 0.75, "no_infection_chance": 10 }, [ "GRAB", 6 ], [ "SHRIEK", 10 ] ], + "death_drops": "default_zombie_death_drops", + "death_function": [ "NORMAL" ], + "upgrades": { "half_life": 21, "into": "dks_mon_stray_eater" }, + "flags": [ + "SEES", + "HEARS", + "SMELLS", "BASHES", "GROUP_BASH", "PUSH_MON", - "PATH_AVOID_FIRE" + "STUMBLES", + "WARM", + "POISON", + "BLEED", + "FILTHY", + "REVIVES" ] }, { @@ -54,29 +231,30 @@ "default_faction": "stray", "bodytype": "human", "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], "volume": "92500 ml", "weight": "120 kg", - "hp": 80, - "speed": 55, + "hp": 100, + "speed": 65, "material": [ "flesh" ], "symbol": "S", "color": "pink_white", "aggression": 100, "morale": 100, - "melee_skill": 4, + "melee_skill": 3, "melee_dice": 2, "melee_dice_sides": 3, "melee_cut": 1, - "armor_bash": 3, + "armor_bash": 5, "armor_cut": 5, + "armor_bullet": 2, "vision_night": 3, - "harvest": "zombie", - "path_settings": { "max_dist": 2 }, - "special_attacks": [ [ "BOOMER", 20 ], { "type": "bite", "cooldown": 2, "accuracy": 3, "no_infection_chance": 10 }, [ "SHRIEK", 10 ] ], - "death_drops": "mon_zombie_hulk_death_drops", + "harvest": "mutant_human", + "path_settings": { "max_dist": 4 }, + "special_attacks": [ [ "BOOMER", 20 ], { "type": "bite", "cooldown": 5, "min_mul": 0.75, "no_infection_chance": 10 }, [ "SHRIEK", 10 ] ], + "death_drops": "default_zombie_death_drops", "death_function": [ "BOOMER", "NORMAL" ], - "upgrades": { "half_life": 17, "into": "dks_mon_stray_tender" }, + "upgrades": { "half_life": 21, "into": "dks_mon_stray_tender" }, "flags": [ "SEES", "HEARS", @@ -88,27 +266,27 @@ "BASHES", "GROUP_BASH", "PUSH_MON", - "PATH_AVOID_FIRE" + "REVIVES" ] }, { "id": "dks_mon_stray_tender", "type": "MONSTER", "name": { "str": "stray crystaltender" }, - "description": "Little more than a moving mound of crystal and meat that occasionally spits up a tide of glowing, rocky gruel from its many cracks and crevices, this creature trudges to and fro, bearing a heavy burden. From just behind the murky surfaces of its shell, you can almost make out small, moving creatures skittering about in its complex innards. It seems only a matter of time before its bulk grows too heavy for it and it collapses, becoming just another part of this ever-alien world.", - "looks_like": "mon_boomer", + "description": "Little more than a moving mound of crystal and meat that occasionally spits up a tide of glowing, rocky gruel from its many cracks and crevices, this crab-like creature trudges to and fro bearing a heavy burden. From just behind the murky surfaces of its shell, you can almost make out small, moving creatures skittering about in its complex innards. It seems to stay close to other crystal creatures, pouring the goop it secretes onto them like some sort of caretaker. When threatened it is capable of producing harrowing screams, no doubt drawing its friends to its aide.", + "looks_like": "mon_boomer_huge", "default_faction": "stray", "bodytype": "human", "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], "volume": "102500 ml", "weight": "160 kg", - "hp": 80, - "speed": 55, + "hp": 120, + "speed": 65, "material": [ "flesh" ], "symbol": "S", "color": "cyan_white", - "aggression": 100, + "aggression": 5, "morale": 100, "melee_skill": 2, "melee_dice": 2, @@ -116,17 +294,22 @@ "melee_cut": 1, "armor_bash": 6, "armor_cut": 8, + "armor_bullet": 4, "vision_night": 3, "harvest": "zombie", - "path_settings": { "max_dist": 2 }, - "special_attacks": [ [ "BOOMER_GLOW", 20 ] ], + "path_settings": { "max_dist": 5 }, + "special_attacks": [ [ "BOOMER_GLOW", 20 ], [ "SHRIEK_ALERT", 20 ], [ "SHRIEK_STUN", 1 ] ], "death_drops": "mon_zombie_hulk_death_drops", + "reproduction": { "baby_monster": "dks_mon_crystal_mite", "baby_count": 5, "baby_timer": 60 }, + "anger_triggers": [ "PLAYER_CLOSE", "FRIEND_ATTACKED" ], + "placate_triggers": [ "PLAYER_WEAK" ], "death_function": [ "BOOMER_GLOW", "NORMAL" ], - "upgrades": { "half_life": 19, "into": "dks_mon_crystal_hive" }, + "upgrades": { "half_life": 60, "into": "dks_mon_crystal_hive" }, "flags": [ "SEES", "HEARS", "SMELLS", + "ELECTRIC", "STUMBLES", "POISON", "BILE_BLOOD", @@ -134,23 +317,117 @@ "BASHES", "GROUP_BASH", "PUSH_MON", - "PATH_AVOID_FIRE" + "REVIVES" + ] + }, + { + "id": "dks_mon_stray_crackle", + "type": "MONSTER", + "name": { "str": "crackling stray" }, + "description": "A hunched human form, back bristling with a hedge of buzzing blue crystals. Its veins visibly glow with some sort of unearthly substance.", + "default_faction": "stray", + "bodytype": "human", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 70, + "speed": 80, + "material": [ "flesh" ], + "symbol": "S", + "color": "blue_white", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], + "melee_cut": 0, + "dodge": 2, + "luminance": 4, + "harvest": "mutant_human", + "path_settings": { "max_dist": 4 }, + "special_when_hit": [ "ZAPBACK", 100 ], + "death_drops": "default_zombie_death_drops", + "death_function": [ "NORMAL" ], + "upgrades": { "half_life": 10, "into": "dks_mon_stray_electric" }, + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "STUMBLES", + "WARM", + "BASHES", + "GROUP_BASH", + "POISON", + "ELECTRIC", + "PUSH_MON", + "FILTHY", + "REVIVES" + ] + }, + { + "id": "dks_mon_stray_electric", + "type": "MONSTER", + "name": { "str": "arcing stray" }, + "description": "A deformed multi-legged creature, its once teresstial body now merely a platform for the massive crystalline pylons that jut from its torso where its head once was. Its arms dangle uselessly at its sides, but is more than capable of simply ramming its prey to deliver dangerous electric shocks.", + "default_faction": "stray", + "bodytype": "human", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "diff": 10, + "volume": "62500 ml", + "weight": "81500 g", + "hp": 85, + "speed": 105, + "material": [ "flesh" ], + "symbol": "S", + "color": "light_cyan", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "electric", "amount": 8 } ], + "melee_cut": 0, + "dodge": 2, + "luminance": 8, + "harvest": "zombie", + "path_settings": { "max_dist": 4 }, + "special_attacks": [ [ "SHOCKSTORM", 25 ] ], + "special_when_hit": [ "ZAPBACK", 100 ], + "death_drops": "default_zombie_death_drops", + "death_function": [ "NORMAL" ], + "upgrades": { "half_life": 60, "into": "dks_mon_crystal_zap" }, + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "STUMBLES", + "WARM", + "BASHES", + "GROUP_BASH", + "POISON", + "ELECTRIC", + "PUSH_MON", + "FILTHY", + "REVIVES" ] }, { "id": "dks_mon_stray_fast", "type": "MONSTER", - "name": { "str": "stray prowler" }, - "description": "This once-shambling mutant now moves with feral cunning, mouth menacing with tusks of polished stone and fingers tipped with crystal-fused claws.", + "name": { "str": "stray sprinter" }, + "description": "This well-toned toned, agile former human was once an athletic figure, and appears to have retained some of its wit to boot.", "default_faction": "stray", "looks_like": "mon_zombie_runner", "bodytype": "human", "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], "volume": "62500 ml", "weight": "81500 g", - "hp": 60, - "speed": 100, + "hp": 70, + "speed": 105, "material": [ "flesh" ], "symbol": "S", "color": "light_gray", @@ -160,12 +437,68 @@ "melee_dice": 4, "melee_dice_sides": 3, "melee_cut": 3, + "armor_bash": 2, + "armor_cut": 1, + "armor_bullet": 1, "dodge": 2, "vision_night": 3, "harvest": "mutant_human", - "path_settings": { "max_dist": 2 }, + "path_settings": { "max_dist": 5 }, "special_attacks": [ [ "scratch", 10 ], + { + "type": "bite", + "cooldown": 5, + "damage_max_instance": [ { "damage_type": "stab", "amount": 10, "armor_multiplier": 0.7 } ] + } + ], + "death_drops": "default_zombie_death_drops", + "death_function": [ "NORMAL" ], + "upgrades": { "half_life": 21, "into": "dks_mon_stray_prowler" }, + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "KEENNOSE", + "WARM", + "BASHES", + "POISON", + "PUSH_MON", + "PATH_AVOID_FIRE", + "FILTHY", + "BLEED", + "REVIVES" + ] + }, + { + "id": "dks_mon_stray_prowler", + "type": "MONSTER", + "name": { "str": "stray prowler" }, + "description": "This tightly-wound mutant now moves like some sort of animal, sometimes on two legs and sometimes on four. Its mouth menaces with tusks of polished stone and fingers gleam with crystal-fused claws.", + "default_faction": "stray", + "looks_like": "mon_zombie_hunter", + "bodytype": "human", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 110, + "material": [ "flesh" ], + "symbol": "S", + "color": "light_gray_green", + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 4, + "melee_dice_sides": 3, + "melee_cut": 5, + "dodge": 2, + "vision_night": 3, + "harvest": "mutant_human", + "path_settings": { "max_dist": 9 }, + "special_attacks": [ + { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 12 } ] }, { "type": "bite", "cooldown": 5, @@ -173,9 +506,9 @@ }, [ "LUNGE", 20 ] ], - "death_drops": "mon_zombie_hulk_death_drops", + "death_drops": "default_zombie_death_drops", "death_function": [ "NORMAL" ], - "upgrades": { "half_life": 17, "into": "dks_mon_stray_predator" }, + "upgrades": { "half_life": 40, "into": "dks_mon_stray_predator" }, "flags": [ "SEES", "HEARS", @@ -188,23 +521,24 @@ "PATH_AVOID_FALL", "PATH_AVOID_FIRE", "FILTHY", - "BLEED" + "BLEED", + "REVIVES" ] }, { "id": "dks_mon_stray_predator", "type": "MONSTER", - "name": { "str": "stray predator" }, - "description": "Lithe muscle and pulasting crystal fused together, this creature crawls on four, grossly enlongated limbs sharpened to deadly points, spearing intruders to its domain. Though it moves quickly, it seems only a matter of time before the very shell that protects it weighs it down to the ground.", + "name": { "str": "stray guardian" }, + "description": "Lithe muscle and pulasting crystal fused together into a mass that must be made up of multiple bodies, propelled forward by multiple grossly enlongated crystal limbs sharpened to dangerous points. It strides about the streets, spearing intruders to its domain like some sort of horrid spider from beyond the stars.", "default_faction": "stray", "looks_like": "mon_zombie_predator", "bodytype": "human", "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], - "volume": "62500 ml", - "weight": "81500 g", + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "volume": "875000 ml", + "weight": "200 kg", "hp": 100, - "speed": 110, + "speed": 130, "material": [ "flesh" ], "symbol": "S", "color": "light_gray_red", @@ -213,77 +547,136 @@ "melee_skill": 6, "melee_dice": 4, "melee_dice_sides": 5, - "melee_cut": 3, + "melee_cut": 5, "dodge": 4, "vision_night": 5, - "harvest": "mutant_human", - "path_settings": { "max_dist": 2 }, + "harvest": "zombie", + "path_settings": { "max_dist": 15 }, "special_attacks": [ - [ "STRETCH_ATTACK", 20 ], - [ "LONGSWIPE", 20 ], { "type": "bite", "cooldown": 5, "damage_max_instance": [ { "damage_type": "stab", "amount": 10, "armor_multiplier": 0.5 } ] }, - [ "LUNGE", 20 ] + { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 12, "armor_multiplier": 0.5 } ] }, + [ "LUNGE", 20 ], + { "id": "impale" } ], "death_drops": "mon_zombie_hulk_death_drops", - "upgrades": { "half_life": 17, "into": "dks_mon_crystal_whip" }, + "upgrades": { "half_life": 60, "into": "dks_mon_crystal_baby" }, "death_function": [ "NORMAL" ], "flags": [ "SEES", "HEARS", "SMELLS", + "ELECTRIC", "KEENNOSE", "WARM", "BASHES", "POISON", "PUSH_MON", - "PATH_AVOID_FALL", - "PATH_AVOID_FIRE", + "PATH_AVOID_DANGER_1", "FILTHY", - "BLEED" + "BLEED", + "REVIVES" ] }, { "id": "dks_mon_stray_heavy", "type": "MONSTER", "name": { "str": "stray bruiser" }, - "description": "Standing much steadier than its peers, this formerly human body is laden with thick crystal growths that pulsate as if alive. Its hands are little more than spiked clubs now, dragging behind it as it trudges along.", + "description": "A former human, athletic and toned, body menacing with thick crystal armor that pulsates as if alive.", "default_faction": "stray", "looks_like": "mon_zombie_tough", "bodytype": "human", "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 100, + "speed": 75, + "material": [ "flesh" ], + "symbol": "S", + "color": "light_red", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 3, + "melee_dice_sides": 4, + "melee_cut": 2, + "armor_bash": 6, + "armor_cut": 15, + "armor_bullet": 9, + "vision_day": 30, + "vision_night": 3, + "harvest": "mutant_human", + "path_settings": { "max_dist": 4 }, + "special_attacks": [ + [ "GRAB", 7 ], + { "id": "slam", "damage_max_instance": [ { "damage_type": "bash", "amount": 15, "armor_multiplier": 0.8 } ] } + ], + "death_drops": "default_zombie_death_drops", + "upgrades": { "half_life": 21, "into_group": "DKS_GROUP_STRAY_UPGRADE" }, + "death_function": [ "NORMAL" ], + "flags": [ + "SEES", + "HEARS", + "GOODHEARING", + "SMELLS", + "STUMBLES", + "WARM", + "BASHES", + "GROUP_BASH", + "POISON", + "PUSH_MON", + "FILTHY", + "REVIVES" + ] + }, + { + "id": "dks_mon_stray_golem", + "type": "MONSTER", + "name": { "str": "stray golem" }, + "description": "A human that has grown considerably in stature after accuring plenty of additional biomass, now at least ten foot tall and covered in rocky plates that make it seem more mineral than human.", + "default_faction": "stray", + "looks_like": "mon_zombie_brute", + "bodytype": "human", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], "volume": "62500 ml", "weight": "81500 g", - "hp": 80, - "speed": 65, + "hp": 120, + "speed": 80, "material": [ "flesh" ], "symbol": "S", "color": "light_red_white", "aggression": 100, "morale": 100, "melee_skill": 4, - "melee_dice": 3, - "melee_dice_sides": 4, - "melee_cut": 2, - "armor_bash": 6, - "armor_cut": 15, + "melee_dice": 2, + "melee_dice_sides": 8, + "dodge": 1, + "armor_cut": 30, + "armor_bullet": 24, + "armor_bash": 12, "vision_day": 30, "vision_night": 3, "harvest": "zombie", - "path_settings": { "max_dist": 2 }, - "special_attacks": [ { "id": "slam", "damage_max_instance": [ { "damage_type": "bash", "amount": 12, "armor_multiplier": 0.8 } ] } ], + "path_settings": { "max_dist": 5 }, + "special_attacks": [ + [ "SMASH", 30 ], + [ "GRAB", 7 ], + { "id": "slam", "damage_max_instance": [ { "damage_type": "bash", "amount": 15, "armor_multiplier": 0.8 } ] } + ], "death_drops": "mon_zombie_hulk_death_drops", - "upgrades": { "half_life": 21, "into": "dks_mon_stray_titan" }, + "upgrades": { "half_life": 40, "into": "dks_mon_stray_titan" }, "death_function": [ "NORMAL" ], "flags": [ "SEES", "HEARS", "GOODHEARING", "SMELLS", + "ELECTRIC", "STUMBLES", "WARM", "BASHES", @@ -291,51 +684,51 @@ "POISON", "PUSH_MON", "FILTHY", - "PATH_AVOID_FIRE" + "REVIVES" ] }, { "id": "dks_mon_stray_titan", "type": "MONSTER", "name": { "str": "stray titan" }, - "description": "This towering mass of fused flesh and stone crushes everything that stands in its way with club-like 'hands'. Despite its great power, it seems only a matter of time before the very shell that protects it crushes it beneath its own weight.", + "description": "This towering mass of fused flesh and crystal is humanoid, but far beyond merely human now at its towering height. It crushes everything that stands in its way with club-like 'hands' that are even bigger than you are and easily throws anything in its way aside.", "default_faction": "stray", - "looks_like": "mon_skeleton_brute", + "looks_like": "mon_skeleton_hulk", "bodytype": "human", "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], "diff": 2, "volume": "875000 ml", "weight": "200 kg", - "hp": 300, - "speed": 65, + "hp": 450, + "speed": 90, "material": [ "flesh" ], "symbol": "S", "color": "red_white", "aggression": 100, "morale": 100, "melee_skill": 5, - "melee_dice": 3, + "melee_dice": 4, "melee_dice_sides": 8, - "melee_cut": 3, - "armor_bash": 5, - "armor_cut": 25, - "armor_stab": 30, + "armor_bash": 20, + "armor_cut": 45, + "armor_bullet": 36, "harvest": "zombie", - "path_settings": { "max_dist": 2 }, + "path_settings": { "max_dist": 6 }, "special_attacks": [ - [ "SMASH", 30 ], + [ "SMASH", 20 ], { "id": "slam", "damage_max_instance": [ { "damage_type": "bash", "amount": 24, "armor_multiplier": 0.7 } ] } ], "death_drops": "mon_zombie_hulk_death_drops", + "upgrades": { "half_life": 50, "into": "dks_mon_crystal_sprout" }, "death_function": [ "NORMAL" ], - "upgrades": { "half_life": 17, "into": "dks_mon_crystal_wall" }, "flags": [ "SEES", "HEARS", "GOODHEARING", "SMELLS", "STUMBLES", + "ELECTRIC", "WARM", "BASHES", "DESTROYS", @@ -344,56 +737,23 @@ "PUSH_MON", "PUSH_VEH", "FILTHY", - "PATH_AVOID_FIRE" + "REVIVES" ] }, - { - "id": "dks_mon_stray_burnt", - "type": "MONSTER", - "name": { "str": "stray husk" }, - "description": "The war-torn and charred body of a human, still smoldering after exposure to alien bioweapons. Clusters of shimmering purple crystals sprout from its wounds like weeds pushing out between cracks in concrete.", - "default_faction": "stray", - "looks_like": "mon_zombie_scorched", - "bodytype": "human", - "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], - "volume": "62500 ml", - "weight": "81500 g", - "hp": 40, - "speed": 65, - "material": [ "flesh" ], - "symbol": "S", - "color": "i_white", - "aggression": 100, - "morale": 100, - "melee_skill": 2, - "melee_dice": 2, - "melee_dice_sides": 2, - "melee_cut": 1, - "vision_night": 3, - "harvest": "mutant_human", - "emit_fields": [ "emit_smaller_smoke_plume" ], - "path_settings": { "max_dist": 2 }, - "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "GRAB", 7 ], [ "scratch", 20 ] ], - "death_function": [ "NORMAL" ], - "death_drops": "mon_zombie_hulk_death_drops", - "upgrades": { "half_life": 2, "into": "dks_mon_stray" }, - "flags": [ "SEES", "HEARS", "SMELLS", "BASHES", "GROUP_BASH", "STUMBLES", "HUMAN", "WARM", "POISON", "BLEED", "FILTHY" ] - }, { "id": "dks_mon_stray_child", "type": "MONSTER", "name": { "str": "stray waif" }, - "description": "If not for the patches of irregular crystal growth, it would be easy to mistake this little figure for a normal child. Unfortunately, whatever terrible weapon that the aliens used on much of the population has been no kinder to them. Still, the idea of putting them down still twists your gut in a primal way.", + "description": "A small, quick mutant, most likely once a human child, now disfigured by patches of crystal. Their features are still recognizable enough to make the thought of putting them down cause your gut to churn.", "default_faction": "stray", - "looks_like": "mon_zombie_waif", + "looks_like": "mon_zombie_child", "bodytype": "human", "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], + "species": [ "BIOCRYSTAL", "HUMAN", "ZOMBIE" ], "volume": "30000 ml", "weight": "40750 g", "hp": 40, - "speed": 65, + "speed": 95, "material": [ "flesh" ], "symbol": "s", "color": "white", @@ -401,17 +761,17 @@ "morale": 100, "melee_skill": 2, "melee_dice": 2, - "melee_dice_sides": 2, - "melee_cut": 1, + "melee_dice_sides": 3, + "melee_cut": 2, "dodge": 2, "vision_day": 30, "vision_night": 3, "harvest": "mutant_human", "path_settings": { "max_dist": 2 }, "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "scratch", 10 ] ], - "death_drops": { "subtype": "collection", "groups": [ [ "mon_zombie_hulk_death_drops", 100 ], [ "child_items", 65 ] ] }, + "death_drops": { "subtype": "collection", "groups": [ [ "default_zombie_children_clothes", 100 ], [ "child_items", 65 ] ] }, "death_function": [ "NORMAL" ], - "upgrades": { "half_life": 12, "into": "dks_mon_stray_wretch" }, + "upgrades": { "half_life": 50, "into": "dks_mon_stray_wretch" }, "flags": [ "SEES", "HEARS", @@ -419,53 +779,19 @@ "BASHES", "GROUP_BASH", "STUMBLES", - "HUMAN", "WARM", "BLEED", "GUILT", "POISON", "FILTHY", - "PATH_AVOID_FIRE" + "REVIVES" ] }, - { - "id": "dks_mon_stray_child_burnt", - "type": "MONSTER", - "name": { "str": "stray tinder" }, - "description": "A child, still smoking and wounded after firsthand exposure to alien bioweapons. Its features are just intact enough to make your gut churn.", - "default_faction": "stray", - "looks_like": "mon_zombie_child_scorched", - "bodytype": "human", - "categories": [ "ALIEN" ], - "species": [ "BIOCRYSTAL", "HUMAN" ], - "volume": "30000 ml", - "weight": "40750 g", - "hp": 35, - "speed": 60, - "material": [ "flesh" ], - "symbol": "s", - "color": "i_white", - "aggression": 100, - "morale": 100, - "melee_skill": 2, - "melee_dice": 1, - "melee_dice_sides": 3, - "melee_cut": 1, - "vision_night": 3, - "harvest": "mutant_human", - "path_settings": { "max_dist": 2 }, - "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "scratch", 10 ] ], - "emit_fields": [ "emit_smaller_smoke_plume" ], - "death_drops": { "subtype": "collection", "groups": [ [ "mon_zombie_hulk_death_drops", 100 ], [ "child_items", 65 ] ] }, - "death_function": [ "NORMAL" ], - "upgrades": { "half_life": 2, "into": "dks_mon_stray_child" }, - "flags": [ "SEES", "HEARS", "SMELLS", "BASHES", "GROUP_BASH", "STUMBLES", "POISON", "GUILT", "HUMAN", "WARM", "FILTHY" ] - }, { "id": "dks_mon_stray_wretch_burnt", "type": "MONSTER", "name": { "str": "stray creep" }, - "description": "A smouldering husk of a creature scrambling about on all fours, a mongrel housepet or the like only recently mutated by exposure to alien bioweapons.", + "description": "A terrifying, hairy husk of a creature scrambling about on all fours, a mongrel housepet or the like covered in patches of crystal growths that jut from it like spikes.", "default_faction": "stray", "looks_like": "mon_dog_zombie_rot", "bodytype": "dog", @@ -473,25 +799,24 @@ "species": [ "BIOCRYSTAL" ], "volume": "30000 ml", "weight": "40750 g", - "hp": 15, - "speed": 100, + "hp": 36, + "speed": 105, "material": [ "flesh" ], - "symbol": "s", - "color": "i_light_gray", + "symbol": "d", + "color": "white", "aggression": 100, "morale": 100, "melee_skill": 3, "melee_dice": 1, "melee_dice_sides": 5, - "melee_cut": 1, + "melee_cut": 3, "dodge": 2, "vision_night": 5, "harvest": "zombie_fur", "path_settings": { "max_dist": 3 }, - "emit_fields": [ "emit_smaller_smoke_plume" ], "special_attacks": [ [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], "death_function": [ "NORMAL" ], - "upgrades": { "half_life": 2, "into": "dks_mon_stray_wretch" }, + "upgrades": { "half_life": 21, "into": "dks_mon_stray_wretch" }, "flags": [ "SEES", "HEARS", @@ -500,27 +825,27 @@ "BASHES", "BLEED", "WARM", - "HARDTOSHOOT", "POISON", - "CLIMBS", + "HIT_AND_RUN", "FILTHY", "PATH_AVOID_FIRE", - "PATH_AVOID_FALL" + "PATH_AVOID_FALL", + "REVIVES" ] }, { "id": "dks_mon_stray_wretch", "type": "MONSTER", "name": { "str": "stray wretch", "str_pl": "stray wretches" }, - "description": "This blur of jagged, crystal-fused limbs and hair might have been a housepet at some point, but now it leaps and skitters around like something out of a nightmare. It is likely that one day the very crystal that arms it will weigh overtake its body and weigh it to the ground, given its slow expansion across its body.", + "description": "This blur of jagged, crystal-fused limbs and hair could've been anything from a housepet to a human at some point, but now it leaps and skitters around like something out of a nightmare.", "default_faction": "stray", - "looks_like": "mon_dog_skeleton", + "looks_like": "mon_dog_zombie", "bodytype": "dog", "categories": [ "ALIEN" ], "species": [ "BIOCRYSTAL" ], "volume": "30000 ml", "weight": "40750 g", - "hp": 40, + "hp": 50, "speed": 105, "material": [ "flesh" ], "symbol": "s", @@ -537,21 +862,117 @@ "path_settings": { "max_dist": 5 }, "special_attacks": [ { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 10 } ] }, - { "type": "leap", "cooldown": 10, "max_range": 5, "allow_no_target": true }, + { "type": "leap", "cooldown": 10, "max_range": 5 }, { "type": "bite", "cooldown": 10, "damage_max_instance": [ { "damage_type": "stab", "amount": 10, "armor_multiplier": 0.7 } ] } ], - "death_drops": { "subtype": "collection", "groups": [ [ "child_items", 5 ] ] }, "death_function": [ "NORMAL" ], - "upgrades": { "half_life": 17, "into": "dks_mon_crystal_baby" }, + "upgrades": { "half_life": 23, "into_group": "DKS_WRETCH_UPGRADE" }, + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "KEENNOSE", + "BLEED", + "WARM", + "POISON", + "CLIMBS", + "FILTHY", + "PATH_AVOID_FIRE", + "PATH_AVOID_FALL", + "REVIVES" + ] + }, + { + "id": "dks_mon_stray_wretch_tough", + "type": "MONSTER", + "name": { "str": "stray stalker" }, + "description": "A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils drifting off of it like cilia. It seems more than happy to tear the life out of anything living unfortunate enough to cross its path, to drag back to its 'family'.", + "default_faction": "stray", + "bodytype": "dog", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 120, + "speed": 105, + "material": [ "flesh" ], + "symbol": "s", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_cut": 2, + "armor_bash": 10, + "armor_cut": 17, + "armor_bullet": 14, + "dodge": 2, + "vision_night": 5, + "harvest": "zombie_fur", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ + { "id": "slam", "damage_max_instance": [ { "damage_type": "bash", "amount": 15 } ] }, + { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 10, "armor_multiplier": 0.7 } ] }, + { "type": "leap", "cooldown": 5, "max_range": 5 } + ], + "death_function": [ "NORMAL" ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "KEENNOSE", + "ELECTRIC", + "BLEED", + "WARM", + "POISON", + "CLIMBS", + "FILTHY", + "PATH_AVOID_FIRE", + "PATH_AVOID_FALL", + "REVIVES" + ] + }, + { + "id": "dks_mon_stray_wretch_tendrils", + "type": "MONSTER", + "name": { "str": "flailing wretch" }, + "description": "A person-sized mass of writhing, barbed tendrils that barely seems like it was even any terrestrial animal anymore, originating from a barely visible mass of central crystal. It slithers across the ground, snatching up organic matter to bring back to feed to its smaller companions so that they too may grow larger.", + "default_faction": "stray", + "bodytype": "blob", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL" ], + "diff": 2, + "volume": "62500 ml", + "weight": "81500 g", + "hp": 50, + "speed": 110, + "material": [ "flesh" ], + "symbol": "s", + "color": "dark_gray_green", + "aggression": 100, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_cut": 2, + "dodge": 3, + "vision_night": 5, + "harvest": "zombie_thorny", + "attack_effs": [ { "id": "paralyzepoison", "duration": 33 } ], + "path_settings": { "max_dist": 5 }, + "special_attacks": [ { "type": "leap", "cooldown": 10, "max_range": 5 }, [ "RANGED_PULL", 20 ], [ "GRAB_DRAG", 3 ], [ "LONGSWIPE", 20 ] ], + "death_function": [ "NORMAL" ], "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", + "ELECTRIC", "BLEED", "HARDTOSHOOT", "WARM", @@ -559,13 +980,130 @@ "CLIMBS", "FILTHY", "PATH_AVOID_FIRE", - "PATH_AVOID_FALL" + "PATH_AVOID_FALL", + "REVIVES", + "PARALYZEVENOM" + ] + }, + { + "id": "dks_mon_stray_wretch_elec", + "type": "MONSTER", + "name": { "str": "crackling wretch" }, + "description": "A flailing mass of tendrils and burnt hair that quickly skirts across the ground like an insect, arched back bristling with loudly arcing crystal spears.", + "default_faction": "stray", + "bodytype": "human", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL" ], + "diff": 20, + "volume": "30000 ml", + "weight": "40750 g", + "hp": 45, + "speed": 115, + "material": [ "flesh" ], + "symbol": "s", + "color": "light_cyan", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], + "melee_cut": 0, + "dodge": 3, + "luminance": 4, + "harvest": "zombie", + "path_settings": { "max_dist": 10 }, + "special_attacks": [ { "type": "leap", "cooldown": 10, "max_range": 5 } ], + "special_when_hit": [ "ZAPBACK", 100 ], + "death_function": [ "NORMAL" ], + "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "LOUDMOVES", "WARM", "BASHES", "POISON", "ELECTRIC", "FILTHY", "REVIVES" ] + }, + { + "id": "dks_mon_stray_wretchmother", + "type": "MONSTER", + "name": { "str": "stray wretchmother" }, + "description": "A large, crystal-packed creature capable of massive, bounding leaps like some sort of alien wolf. Its topmost layer of crystal sprouts several flailing, fleshy tendrils, which pull in anything they can reach into the gnashing maw just under its body. Something else just as unseemly writhes just beneath the murky surface of its glassy body.", + "default_faction": "stray", + "bodytype": "dog", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL" ], + "volume": "74973 ml", + "weight": "90718 g", + "hp": 350, + "speed": 120, + "material": [ "flesh" ], + "symbol": "S", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_cut": 6, + "armor_bash": 10, + "armor_cut": 25, + "armor_bullet": 14, + "dodge": 3, + "vision_night": 5, + "harvest": "zombie_fur", + "path_settings": { "max_dist": 10 }, + "reproduction": { "baby_monster": "dks_mon_stray_wretch", "baby_count": 2, "baby_timer": 14 }, + "special_attacks": [ + [ "STRETCH_ATTACK", 20 ], + [ "RANGED_PULL", 20 ], + { "type": "leap", "cooldown": 10, "max_range": 10, "min_consider_range": 3, "max_consider_range": 8 }, + { + "type": "bite", + "cooldown": 10, + "damage_max_instance": [ { "damage_type": "stab", "amount": 20, "armor_multiplier": 0.5 } ] + } + ], + "death_function": [ "NORMAL" ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "KEENNOSE", + "BLEED", + "ELECTRIC", + "WARM", + "POISON", + "CLIMBS", + "FILTHY", + "PATH_AVOID_DANGER_1", + "REVIVES" ] }, { "id": "dks_mon_crystal_baby", "type": "MONSTER", "name": { "str": "germinating crystal mass", "str_pl": "germinating crystal masses" }, + "description": "A little bulb of crystal rooted into the earth through dirt and concrete alike, noodle-like tendrils squirming across the ground, grabbing any little bit of organic matter it can find and drawing it to its base.", + "default_faction": "stray", + "bodytype": "blob", + "categories": [ "ALIEN" ], + "species": [ "BIOCRYSTAL" ], + "volume": "3840 ml", + "weight": "4608 g", + "hp": 10, + "speed": 100, + "symbol": "'", + "color": "light_blue", + "aggression": 5, + "morale": 100, + "melee_cut": 0, + "armor_cut": 15, + "armor_stab": 20, + "harvest": "exempt", + "special_when_hit": [ "ZAPBACK", 100 ], + "death_function": [ "DISINTEGRATE" ], + "upgrades": { "half_life": 5, "into": "dks_mon_crystal_sprout" }, + "flags": [ "IMMOBILE", "NOGIB", "ELECTRIC", "WARM", "NO_BREATHE", "NOHEAD", "ARTHROPOD_BLOOD" ] + }, + { + "id": "dks_mon_crystal_sprout", + "type": "MONSTER", + "name": { "str": "sprouting crystal mass", "str_pl": "sprouting crystal masses" }, "description": "A human-sized mound of shimmering blue-purple crystals growing on the base of what looks like a mound of foul smelling garbage and organic leftovers. Long, thin tendrils appear to grow out of the mound, and are subtly rooting down into the ground below it, boring through dirt and concrete alike. It crackles weakly with electrical energy. If you look closely, it almost looks like something wet and meaty is squirming just inside the inner shell of crystals…", "default_faction": "stray", "bodytype": "blob", @@ -684,7 +1222,7 @@ "id": "dks_mon_crystal_wall", "type": "MONSTER", "name": { "str": "crystal mass wall" }, - "description": "A massive wall of thick, blocky crystals that glow faintly and crackle with electric energy.", + "description": "A massive wall of thick, blocky crystals that glow faintly and crackle with residual electric energy.", "default_faction": "stray", "bodytype": "blob", "categories": [ "ALIEN" ], @@ -693,7 +1231,7 @@ "weight": "680388 g", "hp": 200, "speed": 100, - "symbol": "^", + "symbol": "#", "color": "light_cyan_white", "aggression": 5, "morale": 100, @@ -745,7 +1283,7 @@ { "id": "dks_mon_crystal_mite", "type": "MONSTER", - "name": { "str": "crystal mite" }, + "name": { "str": "crystal seed" }, "description": "A tiny, multilegged creature that appears to be made of a chunk of crystal. It skitters around on wire-like legs, eating bits of organic leftovers to gain mass in hopes of one day seeding a crystal colony of its own.", "default_faction": "stray", "bodytype": "spider", @@ -765,7 +1303,7 @@ "melee_cut": 1, "dodge": 4, "harvest": "exempt", - "upgrades": { "half_life": 5, "into": "dks_mon_crystal_mite_fat" }, + "upgrades": { "age_grow": 12, "into": "dks_mon_crystal_mite_fat" }, "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], "death_function": [ "DISINTEGRATE" ], "flags": [ @@ -785,8 +1323,8 @@ "id": "dks_mon_crystal_mite_fat", "copy-from": "dks_mon_crystal_mite", "type": "MONSTER", - "name": { "str": "engorged crystal mite" }, - "description": "A swollen crystal mite, now grown to about the size of a cat, heavy enough with accumulated crystal structure to settle down and begin germinating into a proper crystal mass.", + "name": { "str": "engorged crystal seed" }, + "description": "A swollen crystal seed, now grown to about the size of a cat, heavy enough with accumulated biomass to settle down and begin germinating into a proper crystal mass.", "volume": "3840 ml", "weight": "4608 g", "speed": 20, diff --git a/data/mods/Dark-Skies-Above/recipies/uncraft.json b/data/mods/Dark-Skies-Above/recipies/uncraft.json new file mode 100644 index 0000000000000..fe6804d6ac346 --- /dev/null +++ b/data/mods/Dark-Skies-Above/recipies/uncraft.json @@ -0,0 +1,34 @@ +[ + { + "result": "broken_dks_glowdrone", + "type": "uncraft", + "skill_used": "electronics", + "difficulty": 2, + "time": "30 m", + "using": [ [ "soldering_standard", 3 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ + [ [ "dks_powercell", 1 ] ], + [ [ "dks_elecscrap", 1 ] ], + [ [ "dks_biotech", 1 ] ], + [ [ "dks_blend_scrap", 1 ] ], + [ [ "lens", 1 ] ] + ] + }, + { + "result": "broken_dks_scidrone", + "type": "uncraft", + "skill_used": "electronics", + "difficulty": 2, + "time": "30 m", + "using": [ [ "soldering_standard", 3 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ + [ [ "dks_powercell", 1 ] ], + [ [ "dks_elecscrap", 1 ] ], + [ [ "dks_biotech", 1 ] ], + [ [ "dks_blend_scrap", 1 ] ], + [ [ "lens", 1 ] ] + ] + } +] diff --git a/data/mods/DinoMod/README.md b/data/mods/DinoMod/README.md new file mode 100644 index 0000000000000..dd1fe3107edc1 --- /dev/null +++ b/data/mods/DinoMod/README.md @@ -0,0 +1,12 @@ +# DinoMod +A content addition mod for Cataclysm: DDA, adds dinosaurs to fight, befriend or just to add something fun and new. Intended to work with all other vanilla-DDA based mods, but probably not total conversions. + +# Takeaway Features +Intended for all players and includes content of varying difficulty + + - Introduces dinosaur faction, which operates and interacts in a similar way to vanilla factions like the blob or the fungus + - Spawns a rich variety of dinosaurs in many locations based on natural habitat and story + - Includes additional story content related to the new dinosaurs + - Spawns a new location outside cities and adds variants to certain areas + - Dinos lay eggs, some can be tamed and ridden, and spawns change seasonally and as the game progresses + - Higher difficulty encounters can be found in labs, along streams, and in swamps, some with better loot diff --git a/data/mods/DinoMod/dinosaur.json b/data/mods/DinoMod/dinosaur.json index b311afbc594d1..a5e360f9a6f1a 100644 --- a/data/mods/DinoMod/dinosaur.json +++ b/data/mods/DinoMod/dinosaur.json @@ -2,6 +2,7 @@ { "type": "SPECIES", "id": "DINOSAUR", + "//": "Capping these at 1000 L to prevent bodies disappearing", "anger_triggers": [ "PLAYER_WEAK" ], "fear_triggers": [ "SOUND", "FIRE" ] }, @@ -29,7 +30,7 @@ "armor_cut": 0, "hp": 20, "death_function": [ "NORMAL" ], - "description": "A bipedal dinosaur about the size of a turkey. Its teeth and claws are small but sharp.", + "description": "A fast moving bipedal dinosaur about the size of a turkey. Its teeth and claws are small but sharp.", "reproduction": { "baby_egg": "egg_compsognathus", "baby_count": 3, "baby_timer": 12 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, @@ -37,6 +38,7 @@ "SEES", "SMELLS", "HEARS", + "GUILT", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", @@ -68,7 +70,7 @@ "material": "flesh", "aggression": -60, "morale": -20, - "speed": 150, + "speed": 125, "melee_skill": 2, "melee_dice": 1, "melee_dice_sides": 4, @@ -113,7 +115,7 @@ "material": "flesh", "aggression": -40, "morale": -10, - "speed": 150, + "speed": 120, "melee_skill": 4, "melee_dice": 1, "melee_dice_sides": 4, @@ -142,6 +144,52 @@ "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "HURT", "FIRE" ], "categories": [ "DINOSAUR" ] }, + { + "type": "MONSTER", + "id": "mon_camptosaurus", + "name": { "str_sp": "Camptosaurus" }, + "species": "DINOSAUR", + "default_faction": "camptosaurus", + "symbol": "D", + "color": "light_green_yellow", + "volume": "850 L", + "weight": "850 kg", + "bodytype": "ostrich", + "material": "flesh", + "aggression": -40, + "morale": 25, + "speed": 75, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_cut": 2, + "dodge": 1, + "armor_bash": 4, + "armor_cut": 1, + "armor_bullet": 1, + "hp": 80, + "death_function": [ "NORMAL" ], + "description": "A large feathered bipedal dinosaur with strong legs, broad shoulders and a pointed beak. It moves slowly but with enormous strength.", + "reproduction": { "baby_egg": "egg_camptosaurus", "baby_count": 3, "baby_timer": 12 }, + "baby_flags": [ "SPRING", "SUMMER" ], + "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "GOODHEARING", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "CATTLEFODDER", + "PET_WONT_FOLLOW", + "BASHES", + "WARM" + ], + "harvest": "dino_feather_leather", + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "HURT", "FIRE" ], + "categories": [ "DINOSAUR" ] + }, { "type": "MONSTER", "id": "mon_spinosaurus", @@ -150,12 +198,12 @@ "default_faction": "spinosaurus", "symbol": "D", "color": "red_white", - "volume": "16000000 ml", + "volume": "1000 L", "weight": 16000000, "material": "flesh", "aggression": 100, "morale": 100, - "speed": 130, + "speed": 100, "melee_skill": 15, "melee_dice": 3, "melee_dice_sides": 8, @@ -197,12 +245,12 @@ "default_faction": "t-rex", "symbol": "D", "color": "light_red_white", - "volume": "5500000 ml", + "volume": "1000 L", "weight": 5500000, "material": "flesh", "aggression": 100, "morale": 100, - "speed": 130, + "speed": 50, "melee_skill": 13, "melee_dice": 3, "melee_dice_sides": 6, @@ -213,12 +261,49 @@ "armor_bullet": 2, "hp": 300, "death_function": [ "NORMAL" ], - "description": "Look at those teeth! Tiny little claws though.", + "description": "Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive it forward.", "reproduction": { "baby_egg": "egg_tyrannosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "BLEED", "ATTACKMON", "WARM" ], - "harvest": "mammal_large_leather", + "harvest": "dino_feather_leather", + "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_albertosaurus", + "name": { "str_sp": "Albertosaurus" }, + "species": "DINOSAUR", + "default_faction": "albertosaurus", + "symbol": "D", + "looks_like": "mon_tyrannosaurus", + "color": "light_red_white", + "volume": "1000 L", + "weight": "2500 kg", + "material": "flesh", + "aggression": 90, + "morale": 90, + "speed": 50, + "melee_skill": 11, + "melee_dice": 3, + "melee_dice_sides": 4, + "melee_cut": 10, + "dodge": 0, + "armor_bash": 4, + "armor_cut": 2, + "armor_bullet": 2, + "hp": 200, + "death_function": [ "NORMAL" ], + "description": "Looks like a smaller tyrannosaurus rex, but those arms are much longer", + "reproduction": { "baby_egg": "egg_albertosaurus", "baby_count": 3, "baby_timer": 24 }, + "baby_flags": [ "SPRING", "SUMMER" ], + "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "BLEED", "ATTACKMON", "WARM" ], + "special_attacks": [ [ "GRAB", 7 ], [ "LUNGE", 5 ] ], + "harvest": "dino_feather_leather", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT" ], "fear_triggers": [ "SOUND", "FIRE" ], "placate_triggers": [ "MEAT" ], @@ -232,7 +317,7 @@ "default_faction": "herbivore_dino", "symbol": "D", "color": "light_green_magenta", - "volume": "6000000 ml", + "volume": "1000 L", "weight": 6000000, "bodytype": "elephant", "material": "flesh", @@ -271,6 +356,45 @@ "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], "categories": [ "DINOSAUR" ] }, + { + "type": "MONSTER", + "id": "mon_trice_bio_op", + "name": { "str_sp": "Triceratops bio-operator" }, + "copy-from": "mon_triceratops", + "diff": 5, + "aggression": 0, + "morale": 80, + "speed": 90, + "melee_skill": 17, + "melee_dice": 3, + "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], + "dodge": 1, + "armor_bash": 7, + "armor_cut": 5, + "armor_bullet": 5, + "vision_day": 80, + "luminance": 4, + "hp": 180, + "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "description": "A massive three-horned four-legged dinosaur dotted with crackling bionics. The horns glow menacingly.", + "special_when_hit": [ "ZAPBACK", 75 ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "GOODHEARING", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "CATTLEFODDER", + "BASHES", + "WARM", + "PRIORITIZE_TARGETS", + "ACIDPROOF", + "ELECTRIC" + ], + "harvest": "CBM_DINO" + }, { "type": "MONSTER", "id": "mon_stegosaurus", @@ -279,12 +403,12 @@ "default_faction": "herbivore_dino", "symbol": "D", "color": "green_magenta", - "volume": "3000000 ml", + "volume": "1000 L", "weight": 3000000, "material": "flesh", "aggression": -50, "morale": -20, - "speed": 40, + "speed": 20, "melee_skill": 7, "melee_dice": 2, "melee_dice_sides": 4, @@ -295,7 +419,7 @@ "armor_bullet": 1, "hp": 150, "death_function": [ "NORMAL" ], - "description": "A large quadruped dinosaur with plates on its back, and a spiked tail.", + "description": "A large slow quadruped dinosaur with plates on its back, and a spiked tail.", "reproduction": { "baby_egg": "egg_stegosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, @@ -313,12 +437,12 @@ "default_faction": "herbivore_dino", "symbol": "D", "color": "brown_magenta", - "volume": "6000000 ml", + "volume": "1000 L", "weight": 6000000, "material": "flesh", "aggression": -50, "morale": 30, - "speed": 60, + "speed": 25, "melee_skill": 7, "melee_dice": 2, "melee_dice_sides": 4, @@ -339,6 +463,41 @@ "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], "categories": [ "DINOSAUR" ] }, + { + "type": "MONSTER", + "id": "mon_ceratosaurus", + "name": { "str_sp": "Ceratosaurus" }, + "species": "DINOSAUR", + "default_faction": "Ceratosaurus", + "symbol": "D", + "color": "brown_white", + "volume": "540 L", + "weight": "540 kg", + "material": "flesh", + "aggression": 70, + "morale": 70, + "speed": 250, + "melee_skill": 8, + "melee_dice": 3, + "melee_dice_sides": 4, + "melee_cut": 6, + "dodge": 2, + "armor_bash": 3, + "armor_cut": 2, + "armor_bullet": 1, + "hp": 70, + "death_function": [ "NORMAL" ], + "description": "A large, fast predatory bipedal dinosaur, decorated with three colorful horns on its head and dotted with bright skin bones with long sharp teeth and a long flexible tail.", + "reproduction": { "baby_egg": "egg_ceratosaurus", "baby_count": 3, "baby_timer": 24 }, + "baby_flags": [ "SPRING", "SUMMER" ], + "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "BLEED", "ATTACKMON", "WARM", "SWIMS" ], + "harvest": "mammal_large_leather", + "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "MEAT" ], + "categories": [ "DINOSAUR" ] + }, { "type": "MONSTER", "id": "mon_allosaurus", @@ -347,7 +506,7 @@ "default_faction": "allosaurus", "symbol": "D", "color": "brown_white", - "volume": "1000000 ml", + "volume": "1000 L", "weight": 1000000, "material": "flesh", "aggression": 80, @@ -387,7 +546,7 @@ "material": "flesh", "aggression": -60, "morale": -60, - "speed": 200, + "speed": 100, "melee_skill": 1, "melee_dice": 1, "melee_dice_sides": 1, @@ -397,12 +556,15 @@ "armor_cut": 0, "hp": 10, "death_function": [ "NORMAL" ], - "description": "A bipedal dinosaur about the size of a chicken. It roots around the undergrowth, scavenging on small animals and plants.", + "death_drops": { "subtype": "collection", "groups": [ [ "science", 100 ], [ "mut_lab", 10 ] ] }, + "description": "A bipedal dinosaur about the size of a chicken. It darts around quickly and has long arms for grabbing what it desires. It's holding something.", "reproduction": { "baby_egg": "egg_eoraptor", "baby_count": 3, "baby_timer": 12 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, - "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM" ], + "special_attacks": [ [ "EAT_FOOD", 20 ] ], + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CLIMBS" ], "harvest": "mammal_tiny", + "vision_night": 5, "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], "categories": [ "DINOSAUR" ] }, @@ -430,12 +592,13 @@ "armor_bullet": 1, "hp": 30, "death_function": [ "NORMAL" ], + "vision_night": 5, "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true } ], "description": "A small bipedal dinosaur covered with feathers. Small, hooked claws emerge from its feet and hands.", "reproduction": { "baby_egg": "egg_velociraptor", "baby_count": 3, "baby_timer": 18 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "WARM" ], + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "WARM", "CLIMBS" ], "harvest": "dino_feather_leather", "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT" ], "fear_triggers": [ "SOUND", "FIRE" ], @@ -455,7 +618,7 @@ "material": "flesh", "aggression": 1, "morale": 50, - "speed": 130, + "speed": 25, "melee_skill": 7, "melee_dice": 1, "melee_dice_sides": 8, @@ -466,18 +629,73 @@ "armor_bullet": 1, "hp": 60, "death_function": [ "NORMAL" ], + "vision_night": 5, "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true } ], "description": "A medium-sized bipedal dinosaur covered with feathers. At the end of each foot is a large sickle-like claw.", "reproduction": { "baby_egg": "egg_deinonychus", "baby_count": 3, "baby_timer": 18 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "ATTACKMON", "WARM" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "KEENNOSE", + "BLEED", + "ATTACKMON", + "WARM", + "CLIMBS", + "CAN_OPEN_DOORS", + "PRIORITIZE_TARGETS" + ], "harvest": "dino_feather_leather", "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT" ], "fear_triggers": [ "SOUND", "FIRE" ], "placate_triggers": [ "MEAT" ], "categories": [ "DINOSAUR" ] }, + { + "type": "MONSTER", + "id": "mon_deino_bio_op", + "name": { "str_sp": "Deinonychus bio-operator" }, + "copy-from": "mon_deinonychus", + "diff": 5, + "aggression": 10, + "morale": 100, + "speed": 40, + "melee_skill": 10, + "melee_dice": 2, + "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], + "dodge": 6, + "armor_bash": 4, + "armor_cut": 4, + "armor_bullet": 4, + "vision_day": 100, + "vision_night": 5, + "luminance": 4, + "hp": 72, + "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "BIO_OP_TAKEDOWN", 20 ] ], + "description": "A bipedal dinosaur covered with feathers and crackling bionics. Each foot has a large glowing sickle-like claw.", + "special_when_hit": [ "ZAPBACK", 75 ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "KEENNOSE", + "BLEED", + "ATTACKMON", + "WARM", + "CLIMBS", + "CAN_OPEN_DOORS", + "PRIORITIZE_TARGETS", + "ACIDPROOF", + "ELECTRIC" + ], + "harvest": "CBM_DINO" + }, { "type": "MONSTER", "id": "mon_utahraptor", @@ -491,7 +709,7 @@ "material": "flesh", "aggression": 30, "morale": 80, - "speed": 100, + "speed": 160, "melee_skill": 10, "melee_dice": 2, "melee_dice_sides": 6, @@ -502,12 +720,13 @@ "armor_bullet": 1, "hp": 100, "death_function": [ "NORMAL" ], + "vision_night": 5, "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true } ], "description": "A large bipedal dinosaur with feathered arms, a long tail, and scythe-like claws.", "reproduction": { "baby_egg": "egg_utahraptor", "baby_count": 3, "baby_timer": 18 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "ATTACKMON", "WARM" ], + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "BLEED", "ATTACKMON", "WARM", "CLIMBS" ], "harvest": "dino_feather_leather", "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "HURT" ], "fear_triggers": [ "SOUND", "FIRE" ], @@ -522,7 +741,7 @@ "default_faction": "herbivore_dino", "symbol": "D", "color": "dark_gray_magenta", - "volume": "3500000 ml", + "volume": "1000 L", "weight": 3500000, "material": "flesh", "aggression": -40, @@ -589,14 +808,13 @@ "species": "DINOSAUR", "default_faction": "dilophosaurus", "symbol": "D", - "diff": 2, "color": "magenta_green", "volume": "400000 ml", "weight": 400000, "material": "flesh", "aggression": 10, "morale": 30, - "speed": 100, + "speed": 120, "melee_skill": 4, "melee_dice": 1, "melee_dice_sides": 6, @@ -607,8 +825,7 @@ "armor_bullet": 1, "hp": 120, "death_function": [ "NORMAL" ], - "special_attacks": [ [ "BOOMER", 20 ] ], - "description": "A medium dinosaur with a sticky green bile dripping from its teeth.", + "description": "A medium dinosaur with sharp teeth and two prominent bony crests on its head.", "reproduction": { "baby_egg": "egg_dilophosaurus", "baby_count": 3, "baby_timer": 18 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, @@ -645,7 +862,7 @@ "dodge": 1, "death_function": [ "NORMAL" ], "upgrades": { "age_grow": 14, "into": "mon_compsognathus" }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CATFOOD" ], + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CATFOOD", "GUILT", "STUMBLES" ], "harvest": "mammal_tiny" }, { @@ -662,6 +879,13 @@ "name": "light green and yellow hatchling", "upgrades": { "age_grow": 20, "into": "mon_pachycephalosaurus" } }, + { + "id": "mon_camptosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_compsognathus_hatchling", + "name": "light green and yellow hatchling", + "upgrades": { "age_grow": 20, "into": "mon_camptosaurus" } + }, { "id": "mon_spinosaurus_hatchling", "type": "MONSTER", @@ -676,6 +900,13 @@ "name": "light red and white hatchling", "upgrades": { "age_grow": 30, "into": "mon_tyrannosaurus" } }, + { + "id": "mon_albertosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_compsognathus_hatchling", + "name": "light red and white hatchling", + "upgrades": { "age_grow": 30, "into": "mon_albertosaurus" } + }, { "id": "mon_triceratops_hatchling", "type": "MONSTER", @@ -697,6 +928,13 @@ "name": "brown and magenta hatchling", "upgrades": { "age_grow": 30, "into": "mon_ankylosaurus" } }, + { + "id": "mon_ceratosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_compsognathus_hatchling", + "name": "brown and white hatchling", + "upgrades": { "age_grow": 30, "into": "mon_ceratosaurus" } + }, { "id": "mon_allosaurus_hatchling", "type": "MONSTER", @@ -752,217 +990,5 @@ "copy-from": "mon_compsognathus_hatchling", "name": "magenta and green hatchling", "upgrades": { "age_grow": 20, "into": "mon_dilophosaurus" } - }, - { - "type": "monstergroup", - "name": "GROUP_DINOSAUR", - "default": "mon_null", - "monsters": [ - { "monster": "mon_compsognathus", "freq": 100, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, - { "monster": "mon_gallimimus", "freq": 50, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, - { "monster": "mon_pachycephalosaurus", "freq": 25, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, - { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, - { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, - { "monster": "mon_triceratops", "freq": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, - { "monster": "mon_stegosaurus", "freq": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, - { "monster": "mon_ankylosaurus", "freq": 5, "cost_multiplier": 20 }, - { "monster": "mon_allosaurus", "freq": 2, "cost_multiplier": 30 }, - { "monster": "mon_eoraptor", "freq": 20, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, - { "monster": "mon_velociraptor", "freq": 15, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_deinonychus", "freq": 10, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, - { "monster": "mon_utahraptor", "freq": 5, "cost_multiplier": 30 }, - { "monster": "mon_parasaurolophus", "freq": 3, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, - { "monster": "mon_dilophosaurus", "freq": 15, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_DINOSAUR_HARMLESS", - "default": "mon_null", - "monsters": [ - { "monster": "mon_gallimimus", "freq": 50, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, - { "monster": "mon_eoraptor", "freq": 20, "cost_multiplier": 0, "pack_size": [ 4, 12 ] } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_DINOSAUR_DANGEROUS", - "default": "mon_null", - "monsters": [ - { "monster": "mon_compsognathus", "freq": 100, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, - { "monster": "mon_allosaurus", "freq": 2, "cost_multiplier": 30 }, - { "monster": "mon_velociraptor", "freq": 15, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_deinonychus", "freq": 10, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, - { "monster": "mon_utahraptor", "freq": 5, "cost_multiplier": 30 }, - { "monster": "mon_dilophosaurus", "freq": 15, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_DINOSAUR_FLY", - "default": "mon_null", - "monsters": [ { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] } ] - }, - { - "type": "monstergroup", - "name": "GROUP_DINOSAUR_MEGA_HERBIVORE", - "default": "mon_null", - "monsters": [ - { "monster": "mon_triceratops", "freq": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, - { "monster": "mon_stegosaurus", "freq": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, - { "monster": "mon_ankylosaurus", "freq": 5, "cost_multiplier": 20 }, - { "monster": "mon_parasaurolophus", "freq": 3, "cost_multiplier": 10, "pack_size": [ 2, 4 ] } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_DINOSAUR_MEGA_CARNIVORE", - "default": "mon_null", - "monsters": [ - { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, - { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, - { "monster": "mon_allosaurus", "freq": 2, "cost_multiplier": 30 } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_FOREST", - "default": "mon_null", - "is_animal": true, - "monsters": [ - { - "monster": "mon_gallimimus", - "freq": 20, - "cost_multiplier": 0, - "pack_size": [ 4, 8 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_pachycephalosaurus", - "freq": 10, - "cost_multiplier": 0, - "pack_size": [ 1, 2 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_stegosaurus", - "freq": 10, - "cost_multiplier": 20, - "pack_size": [ 2, 4 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_ankylosaurus", - "freq": 3, - "cost_multiplier": 20, - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_triceratops", - "freq": 10, - "cost_multiplier": 30, - "pack_size": [ 1, 2 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_dilophosaurus", - "freq": 5, - "cost_multiplier": 10, - "pack_size": [ 1, 2 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_utahraptor", "freq": 3, "cost_multiplier": 30 }, - { - "monster": "mon_eoraptor", - "freq": 3, - "cost_multiplier": 0, - "pack_size": [ 4, 12 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_SWAMP", - "default": "mon_null", - "is_animal": true, - "monsters": [ - { "monster": "mon_parasaurolophus", "freq": 30, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_deinonychus", "freq": 10, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, - { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, - { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, - { "monster": "mon_allosaurus", "freq": 2, "cost_multiplier": 30 }, - { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 100, "starts": 72 }, - { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 100, "starts": 168 }, - { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 100, "starts": 672 }, - { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 100, "starts": 2160 } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_SEWER", - "default": "mon_sewer_rat", - "is_animal": true, - "monsters": [ - { "monster": "mon_compsognathus", "freq": 300, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, - { "monster": "mon_eoraptor", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, - { "monster": "mon_velociraptor", "freq": 150, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_deinonychus", "freq": 100, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, - { "monster": "mon_utahraptor", "freq": 100, "cost_multiplier": 30 }, - { "monster": "mon_dilophosaurus", "freq": 150, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_SAFE", - "is_safe": true, - "default": "mon_null", - "monsters": [ - { "monster": "mon_gallimimus", "freq": 50, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, - { "monster": "mon_eoraptor", "freq": 20, "cost_multiplier": 0, "pack_size": [ 4, 12 ] } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_PARK_ANIMAL", - "default": "mon_null", - "is_animal": true, - "monsters": [ { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] } ] - }, - { - "type": "monstergroup", - "name": "GROUP_CAVE", - "default": "mon_null", - "is_animal": true, - "monsters": [ - { "monster": "mon_compsognathus", "freq": 600, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, - { "monster": "mon_gallimimus", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, - { "monster": "mon_spinosaurus", "freq": 50, "cost_multiplier": 50 }, - { "monster": "mon_tyrannosaurus", "freq": 50, "cost_multiplier": 40 }, - { "monster": "mon_triceratops", "freq": 80, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, - { "monster": "mon_stegosaurus", "freq": 80, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, - { "monster": "mon_ankylosaurus", "freq": 80, "cost_multiplier": 20 }, - { "monster": "mon_allosaurus", "freq": 100, "cost_multiplier": 30 }, - { "monster": "mon_eoraptor", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, - { "monster": "mon_velociraptor", "freq": 150, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_deinonychus", "freq": 100, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, - { "monster": "mon_utahraptor", "freq": 100, "cost_multiplier": 30 }, - { "monster": "mon_parasaurolophus", "freq": 80, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_dimorphodon", "freq": 500, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, - { "monster": "mon_dilophosaurus", "freq": 150, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } - ] - }, - { - "type": "monstergroup", - "name": "GROUP_CENTRAL_LAB", - "default": "mon_zombie_scientist", - "monsters": [ { "monster": "mon_deinonychus", "freq": 200, "cost_multiplier": 15, "pack_size": [ 2, 3 ] } ] - }, - { - "type": "monstergroup", - "name": "GROUP_LAB", - "default": "mon_zombie_scientist", - "monsters": [ { "monster": "mon_deinonychus", "freq": 500, "cost_multiplier": 15, "pack_size": [ 2, 3 ] } ] } ] diff --git a/data/mods/DinoMod/egg.json b/data/mods/DinoMod/egg.json index 314370df84825..002e0c93b5d25 100644 --- a/data/mods/DinoMod/egg.json +++ b/data/mods/DinoMod/egg.json @@ -5,7 +5,7 @@ "name": "dinosaur egg", "weight": 75, "color": "green", - "spoils_in": "14 days", + "spoils_in": "4 days", "comestible_type": "FOOD", "symbol": "o", "quench": 4, @@ -25,96 +25,133 @@ "type": "COMESTIBLE", "id": "egg_compsognathus", "name": "compsognathus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_compsognathus" }, { "type": "COMESTIBLE", "id": "egg_gallimimus", "name": "gallimimus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_gallimimus" }, { "type": "COMESTIBLE", "id": "egg_pachycephalosaurus", "name": "pachycephalosaurus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_pachycephalosaurus" + }, + { + "type": "COMESTIBLE", + "id": "egg_camptosaurus", + "name": "camptosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_camptosaurus" }, { "type": "COMESTIBLE", "id": "egg_spinosaurus", "name": "spinosaurus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_spinosaurus" }, { "type": "COMESTIBLE", "id": "egg_tyrannosaurus", "name": "tyrannosaurus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_tyrannosaurus" + }, + { + "type": "COMESTIBLE", + "id": "egg_albertosaurus", + "name": "albertosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_albertosaurus" }, { "type": "COMESTIBLE", "id": "egg_triceratops", "name": "triceratops egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_triceratops" }, { "type": "COMESTIBLE", "id": "egg_stegosaurus", "name": "stegosaurus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_stegosaurus" }, { "type": "COMESTIBLE", "id": "egg_ankylosaurus", "name": "ankylosaurus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_ankylosaurus" + }, + { + "type": "COMESTIBLE", + "id": "egg_ceratosaurus", + "name": "ceratosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_ceratosaurus" }, { "type": "COMESTIBLE", "id": "egg_allosaurus", "name": "allosaurus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_allosaurus" }, { "type": "COMESTIBLE", "id": "egg_eoraptor", "name": "eoraptor egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_eoraptor" }, { "type": "COMESTIBLE", "id": "egg_velociraptor", "name": "velociraptor egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_velociraptor" }, { "type": "COMESTIBLE", "id": "egg_deinonychus", "name": "deinonychus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_deinonychus" }, { "type": "COMESTIBLE", "id": "egg_utahraptor", "name": "utahraptor egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_utahraptor" }, { "type": "COMESTIBLE", "id": "egg_parasaurolophus", "name": "parasaurolophus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_parasaurolophus" }, { "type": "COMESTIBLE", "id": "egg_dimorphodon", "name": "dimorphodon egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_dimorphodon" }, { "type": "COMESTIBLE", "id": "egg_dilophosaurus", "name": "dilophosaurus egg", - "copy-from": "egg_dino" + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_dilophosaurus" } ] diff --git a/data/mods/DinoMod/fieldoffice.json b/data/mods/DinoMod/fieldoffice.json deleted file mode 100644 index 99c28e53068bc..0000000000000 --- a/data/mods/DinoMod/fieldoffice.json +++ /dev/null @@ -1,197 +0,0 @@ -[ - { - "type": "item_group", - "id": "fieldoffice_weapons", - "items": [ - [ "crossbow", 40 ], - [ "bolt_metal", 60 ], - [ "bolt_steel", 30 ], - [ "remington_870", 10 ], - [ "mossberg_500", 5 ], - [ "shot_bird", 10 ], - [ "shot_00", 10 ], - [ "shot_slug", 4 ], - [ "shot_beanbag", 10 ], - [ "marlin_9a", 14 ], - [ "ruger_1022", 12 ], - [ "22_fmj", 6 ], - [ "22_lr", 8 ], - [ "22_cb", 10 ], - [ "22_ratshot", 8 ], - [ "browning_blr", 5 ], - [ "remington_700", 10 ], - [ "remington700_270", 10 ], - [ "270win_jsp", 8 ], - [ "rifle_scope", 10 ], - [ "laser_sight", 10 ], - [ "rail_laser_sight", 10 ] - ] - }, - { - "type": "item_group", - "id": "fieldoffice_tools", - "items": [ - [ "hammer", 35 ], - [ "saw", 15 ], - [ "ax", 8 ], - [ "hoe", 30 ], - [ "shovel", 40 ], - [ "chainsaw_off", 7 ], - [ "trimmer_off", 10 ], - [ "tool_belt", 5 ], - [ "boots_steel", 50 ], - [ "boots_hiking", 10 ], - [ "vest", 15 ], - [ "glasses_safety", 40 ], - [ "beartrap", 5 ], - [ "radio", 20 ] - ] - }, - { - "type": "item_group", - "id": "fieldoffice_books", - "items": [ - [ "mag_traps", 20 ], - [ "manual_traps", 12 ], - [ "trappers_companion", 2 ], - [ "mag_guns", 15 ], - [ "mag_rifle", 15 ], - [ "mag_shotgun", 15 ], - [ "mag_survival", 40 ], - [ "manual_survival", 20 ], - [ "textbook_firstaid", 8 ], - [ "pocket_firstaid", 4 ], - [ "pocket_survival", 2 ], - [ "pocket_firearms", 2 ], - [ "mag_archery", 15 ], - [ "manual_archery", 8 ], - [ "book_archery", 2 ], - [ "recipe_arrows", 4 ] - ] - }, - { - "type": "monstergroup", - "name": "GROUP_FIELDOFFICE_ZOMBIE", - "default": "mon_null", - "monsters": [ - { "monster": "mon_zombie_fat", "freq": 100, "cost_multiplier": 2 }, - { "monster": "mon_zombie_tough", "freq": 40, "cost_multiplier": 3 }, - { "monster": "mon_zombie_rot", "freq": 20, "cost_multiplier": 2 }, - { "monster": "mon_zombie_crawler", "freq": 10, "cost_multiplier": 2 }, - { "monster": "mon_zombie_dog", "freq": 10, "cost_multiplier": 2 }, - { "monster": "mon_zombie_grabber", "freq": 70, "cost_multiplier": 1 }, - { "monster": "mon_skeleton", "freq": 30, "cost_multiplier": 2 }, - { "monster": "mon_zombie_shrieker", "freq": 30, "cost_multiplier": 5 }, - { "monster": "mon_zombie_spitter", "freq": 30, "cost_multiplier": 5 }, - { "monster": "mon_zombie_necro", "freq": 1, "cost_multiplier": 25 }, - { "monster": "mon_zombie_survivor", "freq": 1, "cost_multiplier": 25 }, - { "monster": "mon_boomer", "freq": 30, "cost_multiplier": 7 }, - { "monster": "mon_zombie_brute", "freq": 10, "cost_multiplier": 15 }, - { "monster": "mon_zombie_hulk", "freq": 1, "cost_multiplier": 50 }, - { "monster": "mon_zombie_master", "freq": 1, "cost_multiplier": 25 } - ] - }, - { - "type": "overmap_terrain", - "id": "fieldoffice", - "sym": "^", - "name": "wildlife field office", - "color": "brown", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "mapgen": [ - { - "method": "json", - "weight": 10000, - "object": { - "rows": [ - "rrrrrrrrrrrrrrrrrrrrrrrr", - "yrrryrrryrrryrrryrrryrrr", - "yrrryrrryrrryrrryrrryrrr", - "yrrryrrryrrryrrryrrryrrr", - "yrrryrrryrrryrrryrrryrrr", - "yrrryrrryrrryrrryrrryrrr", - "yyyyyyyyyyyyyyyyyyyyyyyy", - "222222222222222---1+111-", - "3..............|B|F |", - "3.2222222222222| |CCC A|", - "3.3...3...3...3|D+ F A|", - "3.3I..3...3.I.3--|-+---|", - "3.3...3..I3...3.E......3", - "3.2242224222422........3", - "3......................3", - "3.2222422222422.. .3", - "3.3.....3.....3..HH .3", - "3.3.....3.....3..HH .3", - "3.3.....3.....3.5555+553", - "3.3.....3.....3.5.....53", - "3.3....I3...I.3.5GGGGG53", - "3.2222222222222.55555553", - "3......................3", - "222222222222222222222222" - ], - "terrain": { - "r": "t_pavement", - "y": "t_pavement_y", - ".": "t_dirtfloor", - "-": "t_wall", - "1": "t_window", - "|": "t_wall", - "+": "t_door_c", - "2": "t_chainfence_h", - "3": "t_chainfence_v", - "4": "t_chaingate_l", - "5": "t_wall_wood", - " ": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "E": "t_dirtfloor", - "F": "t_floor", - "G": "t_dirtfloor", - "H": "t_floor", - "I": "t_dirtfloor" - }, - "furniture": { - "A": "f_rack", - "C": "f_counter", - "D": "f_sink", - "E": "f_sink", - "F": "f_chair", - "G": "f_locker", - "H": "f_hay", - "I": "f_hay" - }, - "toilets": { "B": { } }, - "place_items": [ - { "item": "fieldoffice_weapons", "chance": 70, "x": [ 20, 21 ], "y": 20 }, - { "item": "fieldoffice_tools", "chance": 80, "x": [ 18, 19 ], "y": 20 }, - { "item": "fieldoffice_books", "chance": 80, "x": 22, "y": [ 9, 10 ] } - ], - "place_monsters": [ - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_FOREST", "chance": 2, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, - { "monster": "GROUP_FIELDOFFICE_ZOMBIE", "chance": 2, "x": [ 1, 22 ], "y": [ 1, 6 ], "density": 0.15 }, - { "monster": "GROUP_FIELDOFFICE_ZOMBIE", "chance": 2, "x": [ 16, 22 ], "y": [ 8, 21 ], "density": 0.15 } - ] - } - } - ], - "flags": [ "SIDEWALK" ] - } -] diff --git a/data/mods/DinoMod/harvest.json b/data/mods/DinoMod/harvest.json index aaa668af576ef..5639782e6dfc0 100644 --- a/data/mods/DinoMod/harvest.json +++ b/data/mods/DinoMod/harvest.json @@ -18,5 +18,51 @@ { "drop": "feather", "type": "skin", "mass_ratio": 0.0001 }, { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 } ] + }, + { + "id": "CBM_DINO", + "type": "harvest", + "entries": [ + { + "drop": "bio_power_storage_mkII", + "type": "bionic", + "flags": [ "NO_STERILE", "NO_PACKED" ], + "faults": [ "fault_bionic_salvaged" ] + }, + { + "drop": "bionics_op", + "type": "bionic_group", + "flags": [ "NO_STERILE", "NO_PACKED" ], + "faults": [ "fault_bionic_salvaged" ] + }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.3 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.03 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "feather", "type": "skin", "mass_ratio": 0.0001 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 } + ] + }, + { + "id": "zed_dino_feather_leather", + "type": "harvest", + "entries": [ + { "drop": "spider", "type": "bionic_group", "flags": [ "FILTHY" ] }, + { "drop": "science", "type": "bionic_group", "flags": [ "FILTHY" ] }, + { "drop": "corpses", "type": "bionic_group", "flags": [ "FILTHY" ] }, + { "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.25 }, + { "drop": "fat_tainted", "type": "flesh", "mass_ratio": 0.08 }, + { "drop": "bone_tainted", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "raw_tainted_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "pheromone", "type": "bionic", "max": 1 }, + { "drop": "feather", "type": "skin", "mass_ratio": 0.0001 } + ] } ] diff --git a/data/mods/DinoMod/hints.json b/data/mods/DinoMod/hints.json new file mode 100644 index 0000000000000..aa9a0929281f8 --- /dev/null +++ b/data/mods/DinoMod/hints.json @@ -0,0 +1,14 @@ +{ + "type": "snippet", + "category": "hint", + "text": [ + "I've seen some big dinosaurs out there. I know that should be scary, but all I felt was hungry.", + "I think those little dinosaurs are kind of cute, like a cat kind of. Do you think they eat cat food?", + "Dinosaurs are a bow hunter's best friend. Feathers forever!", + "A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big lizard. I'd be careful unless you have a gun and plenty of ammo.", + "I hear the zombies have been in the swamps. Bad news if they bite a dinosaur before it bites them.", + "I know there aren't alligators in the sewer, but I heard there was some kind of big lizard down there. Probably not a good idea to check.", + "Some of those big dinosaurs seem halfway all right. I bet if you fed them something nice and gave them a pet you could ride them like a pony. Or maybe they'd eat you instead.", + "One time I found a strange egg out in the woods. It was probably a dinosaur, but I cooked it and it was pretty good!" + ] +} diff --git a/data/mods/DinoMod/lab_notes.json b/data/mods/DinoMod/lab_notes.json index ae03e7703214b..b1a4ed17a7c93 100644 --- a/data/mods/DinoMod/lab_notes.json +++ b/data/mods/DinoMod/lab_notes.json @@ -3,6 +3,7 @@ "category": "lab_notes", "text": [ "Research on our visitors is proceeding nicely. The raptor DNA is of special interest, with some novel protein chains that may lead to medical breakthroughs.", + "Research proceeds apace on our visitors. While Operation Major Laser did not receive enough funding as hoped, our more humble bio-operator protocols were already prepared and are proceeding ahead of schedule. The hosts are most receptive to improvement.", "Dr. Yoshimi has been reprimanded for unauthorized contact with the procompsignathids. Disgusting behavior, and a terrible example to the junior researchers.", "Dr. Yoshimi has escaped, along with an unknown number of dinosaurs. Unfortunately, we have bigger problems with XE037.", "Strange sounds have been reported from the swamp nearby. An enhanced security team was dispatched, but has not returned in 48 hours. The facility is on lockdown. We can’t let them get back in." diff --git a/data/mods/DinoMod/mapgen/DinoLabFinale.json b/data/mods/DinoMod/mapgen/DinoLabFinale.json new file mode 100644 index 0000000000000..79b63086be8de --- /dev/null +++ b/data/mods/DinoMod/mapgen/DinoLabFinale.json @@ -0,0 +1,87 @@ +{ + "//": "dino operating theater", + "type": "mapgen", + "method": "json", + "om_terrain": [ + "lab_finale_1level" + ], + "weight": 75, + "object": { + "rotation": [ 0, 3 ], + "fill_ter": "t_thconc_floor", + "rows": [ + "..cccccc.|...|,,,|..|,,,", + "c........|...|,,,|.6|,,,", + "c..Ccxc..|...|,,,g..g,,,", + "c........g...|,,,g..g,,,", + "c........g...|,,,L..L,,,", + "......llS|...|---|..|---", + "--gg-G---|...|,,,|..|,,,", + ".............|,,,g..g,,,", + ".............|,,,g..g,,,", + ".............|,,,L..L,,,", + "........|-ggg----|..|---", + "........|r,,,r|t--G-|...", + "........g,,/,,L.....G...", + "........g,,?,,|-ggg-|...", + "........|r,,,r|.........", + "........|-ggg-|.........", + "........................", + "........................", + "..........dd7dd.........", + "..........d.h.d.........", + "...ddxdd.........ddxdd..", + "...d.h.d.........d.h.d..", + "........................", + "........................" + ], + "palettes": [ "lab_palette", "lab_loot_research" ], + "furniture": { "?": "f_autodoc", "/": "f_autodoc_couch" }, + "terrain": { + ",": "t_floor_blue", + "C": "t_centrifuge", + "?": "t_floor_blue", + "/": "t_floor_blue", + "7": "t_console", + "r": "t_floor_blue" + }, + "place_loot": [ + { "item": "anesthetic_kit", "x": 15, "y": 11, "repeat": [ 4, 9 ], "ammo": 100 }, + { "item": "id_science", "x": 7, "y": 11, "chance": 100 }, + { "item": "cattlefodder", "x": 7, "y": 11, "chance": 100 } + ], + "mapping": { + "r": { + "items": [ + { "item": "bionics_common", "chance": 40 }, + { "item": "bionics", "chance": 20 }, + { "item": "hospital_medical_items", "chance": 80 }, + { "item": "dissection", "chance": 60 } + ] + } + }, + "computers": { + "6": { + "name": "DinoLab Operating Theater Controls", + "security": 0, + "options": [ { "name": "EMERGENCY EVAC - OPEN ALL DOORS", "action": "open", "security": 0 } ], + "failures": [ { "action": "damage" }, { "action": "shutdown" } ] + }, + "7": { + "name": "DinoLab Operating Theater Controls", + "security": 2, + "options": [ { "name": "UNLOCK AUTODOC DOOR", "action": "unlock", "security": 6 } ], + "failures": [ { "action": "damage" }, { "action": "shutdown" } ] + } + }, + "place_monster": [ + { "monster": [ "mon_deino_bio_op" ], "x": [ 14, 16 ], "y": [ 1, 4 ], "chance": 90 }, + { "monster": [ "mon_deino_bio_op" ], "x": [ 14, 16 ], "y": [ 6, 9 ], "chance": 90 }, + { "monster": [ "mon_deino_bio_op" ], "x": [ 21, 22 ], "y": [ 1, 4 ], "chance": 90 }, + { "monster": [ "mon_deino_bio_op" ], "x": [ 21, 22 ], "y": [ 6, 9 ], "chance": 90 }, + { "monster": [ "mon_trice_bio_op" ], "x": [ 11, 13 ], "y": [ 13, 14 ], "chance": 100 }, + { "monster": "mon_zeinonychus", "x": [ 15, 19 ], "y": 12, "chance": 90, "repeat": [ 1, 2 ] }, + { "monster": "mon_zeinonychus", "x": [ 9, 10 ], "y": [ 12, 13 ] } + ] + } +} diff --git a/data/mods/DinoMod/mapgen/dinoexhibit.json b/data/mods/DinoMod/mapgen/dinoexhibit.json new file mode 100644 index 0000000000000..39bb31da9bc8e --- /dev/null +++ b/data/mods/DinoMod/mapgen/dinoexhibit.json @@ -0,0 +1,95 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dinoexhibit" ], + "weight": 10000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "rrrrrrrrrrrrrrrrrrrrrrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yyyyyyyyyyyyyyyyyyyyyyyy", + "222222222222222---1+111-", + "3..............|B|F |", + "3.2222222222222| |CCC A|", + "3.3...3...3...3|D+ F A|", + "3.3I..3...3.I.3--|-+---|", + "3.3...3..I3...3.E......3", + "3.2242224222422........3", + "3......................3", + "3.2222422222422.. .3", + "3.3.....3.....3..HH .3", + "3.3.....3.....3..HH .3", + "3.3.....3.....3.5555+553", + "3.3.....3.....3.5.....53", + "3.3....I3...I.3.5GGGGG53", + "3.2222222222222.55555553", + "3......................3", + "222222222222222222222222" + ], + "terrain": { + "r": "t_pavement", + "y": "t_pavement_y", + ".": "t_dirtfloor", + "-": "t_wall", + "1": "t_window", + "|": "t_wall", + "+": "t_door_c", + "2": "t_chainfence_h", + "3": "t_chainfence_v", + "4": "t_chaingate_l", + "5": "t_wall_wood", + " ": "t_floor", + "A": "t_floor", + "B": "t_floor", + "C": "t_floor", + "D": "t_floor", + "E": "t_dirtfloor", + "F": "t_floor", + "G": "t_dirtfloor", + "H": "t_floor", + "I": "t_dirtfloor" + }, + "furniture": { + "A": "f_rack", + "C": "f_counter", + "D": "f_sink", + "E": "f_sink", + "F": "f_chair", + "G": "f_locker", + "H": "f_hay", + "I": "f_hay" + }, + "toilets": { "B": { } }, + "place_items": [ + { "item": "guns_rifle_common", "chance": 70, "x": [ 20, 21 ], "y": 20 }, + { "item": "tools_hunting", "chance": 80, "x": [ 18, 19 ], "y": 20 }, + { "item": "book_mag_surv", "chance": 80, "x": 22, "y": [ 9, 10 ] } + ], + "place_monsters": [ + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 2, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 3, 5 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 2, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 7, 9 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 2, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 11, 13 ], "y": [ 10, 12 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 2, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 3, 7 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 2, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_DANGEROUS", "chance": 4, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_HARMLESS", "chance": 3, "x": [ 9, 13 ], "y": [ 16, 20 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_ZOMBIE", "chance": 2, "x": [ 1, 22 ], "y": [ 1, 6 ], "density": 0.15 }, + { "monster": "GROUP_DINOSAUR_ZOMBIE", "chance": 2, "x": [ 16, 22 ], "y": [ 8, 21 ], "density": 0.15 } + ] + } + } +] diff --git a/data/mods/DinoMod/mapgen/farm.json b/data/mods/DinoMod/mapgen/farm.json new file mode 100644 index 0000000000000..394f18482329b --- /dev/null +++ b/data/mods/DinoMod/mapgen/farm.json @@ -0,0 +1,54 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "farm_1" ] ], + "//": "Compy Coop", + "weight": 500, + "object": { + "fill_ter": "t_dirtfloor", + "rows": [ + " ", + " ", + " :::::::::########### ", + " : #_#_#_#_#_# ", + " : #_______7_# ", + " C +_______8_# ", + " C c__7______# ", + " : #_#_#_#_#_# ", + " : ########### ", + " : : ", + " : : ", + " : : ", + " :::::::::::::::::::: ", + " ", + " FFFFFFFFFFFFFFFFFFFFFF ", + " F F ", + " F DDDDDDDDDDDDDDDD F ", + " F F ", + " F DDDDDDDDDDDDDDDD F ", + " F F ", + " F DDDDDDDDDDDDDDDD F ", + " F F ", + " F DDDDDDDDDDDDDDDD F ", + "FF F " + ], + "monster": { "7": { "monster": "mon_compsognathus" }, "8": { "monster": "mon_compsognathus_hatchling" } }, + "place_item": [ + { "item": "straw_pile", "x": 12, "y": 3, "chance": 75 }, + { "item": "straw_pile", "x": 14, "y": 3, "chance": 75 }, + { "item": "straw_pile", "x": 16, "y": 3, "chance": 75 }, + { "item": "straw_pile", "x": 18, "y": 3, "chance": 75 }, + { "item": "straw_pile", "x": 20, "y": 3, "chance": 75 }, + { "item": "straw_pile", "x": 12, "y": 7, "chance": 75 }, + { "item": "straw_pile", "x": 14, "y": 7, "chance": 75 }, + { "item": "straw_pile", "x": 16, "y": 7, "chance": 75 }, + { "item": "straw_pile", "x": 18, "y": 7, "chance": 75 }, + { "item": "straw_pile", "x": 20, "y": 7, "chance": 75 }, + { "item": "catfood", "x": [ 3, 7 ], "y": [ 5, 11 ], "chance": 75, "repeat": [ 4, 7 ] }, + { "item": "straw_pile", "x": 20, "y": 7, "chance": 75 } + ], + "palettes": [ "farm" ] + } + } +] diff --git a/data/mods/DinoMod/monstergroups.json b/data/mods/DinoMod/monstergroups.json new file mode 100644 index 0000000000000..e69b670d53d7c --- /dev/null +++ b/data/mods/DinoMod/monstergroups.json @@ -0,0 +1,351 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR", + "default": "mon_null", + "monsters": [ + { "monster": "mon_compsognathus", "freq": 100, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_gallimimus", "freq": 50, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, + { "monster": "mon_pachycephalosaurus", "freq": 25, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, + { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, + { "monster": "mon_albertosaurus", "freq": 4, "cost_multiplier": 35 }, + { "monster": "mon_triceratops", "freq": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_stegosaurus", "freq": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, + { "monster": "mon_ankylosaurus", "freq": 5, "cost_multiplier": 20 }, + { "monster": "mon_ceratosaurus", "freq": 1, "cost_multiplier": 30 }, + { "monster": "mon_allosaurus", "freq": 8, "cost_multiplier": 30 }, + { "monster": "mon_eoraptor", "freq": 20, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_velociraptor", "freq": 15, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_deinonychus", "freq": 10, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, + { "monster": "mon_utahraptor", "freq": 5, "cost_multiplier": 30 }, + { "monster": "mon_parasaurolophus", "freq": 3, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dilophosaurus", "freq": 1, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_HARMLESS", + "default": "mon_null", + "monsters": [ + { "monster": "mon_compsognathus", "freq": 100, "cost_multiplier": 0, "pack_size": [ 4, 4 ] }, + { "monster": "mon_gallimimus", "freq": 50, "cost_multiplier": 0, "pack_size": [ 4, 4 ] }, + { "monster": "mon_pachycephalosaurus", "freq": 25, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, + { "monster": "mon_camptosaurus", "freq": 100, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, + { "monster": "mon_eoraptor", "freq": 20, "cost_multiplier": 0, "pack_size": [ 4, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_DANGEROUS", + "default": "mon_null", + "monsters": [ + { "monster": "mon_ceratosaurus", "freq": 1, "cost_multiplier": 30 }, + { "monster": "mon_allosaurus", "freq": 8, "cost_multiplier": 30 }, + { "monster": "mon_velociraptor", "freq": 15, "cost_multiplier": 10, "pack_size": [ 2, 2 ] }, + { "monster": "mon_deinonychus", "freq": 10, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, + { "monster": "mon_utahraptor", "freq": 5, "cost_multiplier": 30 }, + { "monster": "mon_dilophosaurus", "freq": 15, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_FLY", + "default": "mon_null", + "monsters": [ { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] } ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_MEGA_HERBIVORE", + "default": "mon_null", + "monsters": [ + { "monster": "mon_triceratops", "freq": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_stegosaurus", "freq": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, + { "monster": "mon_ankylosaurus", "freq": 5, "cost_multiplier": 20 }, + { "monster": "mon_parasaurolophus", "freq": 3, "cost_multiplier": 10, "pack_size": [ 2, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_MEGA_CARNIVORE", + "default": "mon_null", + "monsters": [ + { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, + { "monster": "mon_albertosaurus", "freq": 4, "cost_multiplier": 35 }, + { "monster": "mon_allosaurus", "freq": 8, "cost_multiplier": 30 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_ZOMBIE", + "default": "mon_null", + "monsters": [ + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 72, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 72 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_FOREST", + "default": "mon_null", + "is_animal": true, + "monsters": [ + { + "monster": "mon_gallimimus", + "freq": 20, + "cost_multiplier": 0, + "pack_size": [ 4, 8 ], + "conditions": [ "DUSK", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_pachycephalosaurus", + "freq": 10, + "cost_multiplier": 0, + "pack_size": [ 1, 2 ], + "conditions": [ "DUSK", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_camptosaurus", + "freq": 40, + "cost_multiplier": 0, + "pack_size": [ 4, 12 ], + "conditions": [ "DUSK", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_stegosaurus", + "freq": 10, + "cost_multiplier": 20, + "pack_size": [ 2, 4 ], + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_ankylosaurus", + "freq": 3, + "cost_multiplier": 20, + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_triceratops", + "freq": 10, + "cost_multiplier": 30, + "pack_size": [ 1, 2 ], + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_dilophosaurus", + "freq": 5, + "cost_multiplier": 10, + "pack_size": [ 1, 2 ], + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_utahraptor", + "freq": 3, + "cost_multiplier": 30, + "conditions": [ "NIGHT", "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_eoraptor", + "freq": 3, + "cost_multiplier": 0, + "pack_size": [ 4, 12 ], + "conditions": [ "NIGHT", "SPRING", "SUMMER", "AUTUMN" ] + } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_RIVER", + "default": "mon_null", + "is_animal": true, + "monsters": [ + { + "monster": "mon_camptosaurus", + "freq": 60, + "cost_multiplier": 0, + "pack_size": [ 4, 12 ], + "conditions": [ "DUSK", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_parasaurolophus", + "freq": 30, + "cost_multiplier": 10, + "pack_size": [ 2, 4 ], + "conditions": [ "DUSK", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] + }, + { + "monster": "mon_deinonychus", + "freq": 10, + "cost_multiplier": 15, + "pack_size": [ 2, 3 ], + "conditions": [ "NIGHT", "SPRING", "SUMMER", "AUTUMN" ] + }, + { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, + { "monster": "mon_albertosaurus", "freq": 4, "cost_multiplier": 35 }, + { "monster": "mon_ceratosaurus", "freq": 1, "cost_multiplier": 30 }, + { "monster": "mon_allosaurus", "freq": 8, "cost_multiplier": 30 }, + { "monster": "mon_dilophosaurus", "freq": 1, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 72, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 168, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 672, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 2160, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 72 }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 168 }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 672 }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 2160 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SWAMP", + "default": "mon_null", + "is_animal": true, + "monsters": [ + { + "monster": "mon_camptosaurus", + "freq": 60, + "cost_multiplier": 0, + "pack_size": [ 4, 12 ], + "conditions": [ "DUSK", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] + }, + { "monster": "mon_parasaurolophus", "freq": 30, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_deinonychus", "freq": 10, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_spinosaurus", "freq": 1, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 1, "cost_multiplier": 40 }, + { "monster": "mon_albertosaurus", "freq": 4, "cost_multiplier": 35 }, + { "monster": "mon_ceratosaurus", "freq": 1, "cost_multiplier": 30 }, + { "monster": "mon_allosaurus", "freq": 8, "cost_multiplier": 30 }, + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 72, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 168, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 672, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 2160, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 72 }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 168 }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 672 }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 2160 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SEWER", + "default": "mon_sewer_rat", + "is_animal": true, + "monsters": [ + { "monster": "mon_compsognathus", "freq": 300, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_eoraptor", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_velociraptor", "freq": 150, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_deinonychus", "freq": 100, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_utahraptor", "freq": 100, "cost_multiplier": 30 }, + { "monster": "mon_dilophosaurus", "freq": 10, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_zeinonychus", "freq": 25, "cost_multiplier": 30, "starts": 72, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 25, "cost_multiplier": 30, "starts": 168, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 25, "cost_multiplier": 30, "starts": 672, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 25, "cost_multiplier": 30, "starts": 2160, "pack_size": [ 2, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SAFE", + "is_safe": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_gallimimus", "freq": 50, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, + { "monster": "mon_eoraptor", "freq": 20, "cost_multiplier": 0, "pack_size": [ 4, 12 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_PARK_ANIMAL", + "default": "mon_null", + "is_animal": true, + "monsters": [ + { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, + { + "monster": "mon_eoraptor", + "freq": 50, + "cost_multiplier": 0, + "pack_size": [ 4, 12 ], + "conditions": [ "NIGHT", "SPRING", "SUMMER", "AUTUMN" ] + } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_CAVE", + "default": "mon_null", + "is_animal": true, + "monsters": [ + { "monster": "mon_compsognathus", "freq": 600, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_gallimimus", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, + { "monster": "mon_spinosaurus", "freq": 50, "cost_multiplier": 50 }, + { "monster": "mon_tyrannosaurus", "freq": 50, "cost_multiplier": 40 }, + { "monster": "mon_albertosaurus", "freq": 200, "cost_multiplier": 35 }, + { "monster": "mon_triceratops", "freq": 80, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_stegosaurus", "freq": 80, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, + { "monster": "mon_ankylosaurus", "freq": 80, "cost_multiplier": 20 }, + { "monster": "mon_ceratosaurus", "freq": 50, "cost_multiplier": 30 }, + { "monster": "mon_allosaurus", "freq": 400, "cost_multiplier": 30 }, + { "monster": "mon_eoraptor", "freq": 200, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_velociraptor", "freq": 150, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_deinonychus", "freq": 100, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_utahraptor", "freq": 100, "cost_multiplier": 30 }, + { "monster": "mon_parasaurolophus", "freq": 80, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dimorphodon", "freq": 500, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, + { "monster": "mon_dilophosaurus", "freq": 50, "cost_multiplier": 10, "pack_size": [ 1, 2 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ROOF_ANIMAL", + "default": "mon_null", + "is_animal": true, + "monsters": [ + { "monster": "mon_dimorphodon", "freq": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, + { + "monster": "mon_eoraptor", + "freq": 50, + "cost_multiplier": 0, + "pack_size": [ 4, 12 ], + "conditions": [ "NIGHT", "SPRING", "SUMMER", "AUTUMN" ] + } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE", + "default": "mon_zombie", + "monsters": [ + { "monster": "mon_zeinonychus", "freq": 3, "cost_multiplier": 30, "starts": 72, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zyrannosaurus", "freq": 1, "cost_multiplier": 80, "starts": 72 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_CENTRAL_LAB", + "default": "mon_zombie_scientist", + "monsters": [ + { "monster": "mon_deinonychus", "freq": 200, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_deino_bio_op", "freq": 100, "cost_multiplier": 20, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 50, "cost_multiplier": 30, "starts": 72, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 50, "cost_multiplier": 30, "starts": 168, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 50, "cost_multiplier": 30, "starts": 672, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 50, "cost_multiplier": 30, "starts": 2160, "pack_size": [ 2, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB", + "default": "mon_zombie_scientist", + "monsters": [ + { "monster": "mon_deinonychus", "freq": 500, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_deino_bio_op", "freq": 250, "cost_multiplier": 20, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 125, "cost_multiplier": 30, "starts": 72 }, + { "monster": "mon_zeinonychus", "freq": 125, "cost_multiplier": 30, "starts": 168, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 125, "cost_multiplier": 30, "starts": 672, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zeinonychus", "freq": 125, "cost_multiplier": 30, "starts": 2160, "pack_size": [ 2, 3 ] } + ] + } +] diff --git a/data/mods/DinoMod/monstergroups_egg.json b/data/mods/DinoMod/monstergroups_egg.json index ebf80e5c1edb4..6a78a4ce91734 100644 --- a/data/mods/DinoMod/monstergroups_egg.json +++ b/data/mods/DinoMod/monstergroups_egg.json @@ -7,19 +7,136 @@ { "monster": "mon_compsognathus_hatchling", "freq": 100, "cost_multiplier": 1 }, { "monster": "mon_gallimimus_hatchling", "freq": 50, "cost_multiplier": 1 }, { "monster": "mon_pachycephalosaurus_hatchling", "freq": 25, "cost_multiplier": 1 }, + { "monster": "mon_camptosaurus_hatchling", "freq": 75, "cost_multiplier": 1 }, { "monster": "mon_spinosaurus_hatchling", "freq": 1, "cost_multiplier": 1 }, { "monster": "mon_tyrannosaurus_hatchling", "freq": 1, "cost_multiplier": 1 }, + { "monster": "mon_albertosaurus_hatchling", "freq": 4, "cost_multiplier": 1 }, { "monster": "mon_triceratops_hatchling", "freq": 3, "cost_multiplier": 1 }, { "monster": "mon_stegosaurus_hatchling", "freq": 5, "cost_multiplier": 1 }, { "monster": "mon_ankylosaurus_hatchling", "freq": 5, "cost_multiplier": 1 }, - { "monster": "mon_allosaurus_hatchling", "freq": 2, "cost_multiplier": 1 }, + { "monster": "mon_ceratosaurus_hatchling", "freq": 1, "cost_multiplier": 1 }, + { "monster": "mon_allosaurus_hatchling", "freq": 8, "cost_multiplier": 1 }, { "monster": "mon_eoraptor_hatchling", "freq": 20, "cost_multiplier": 1 }, { "monster": "mon_velociraptor_hatchling", "freq": 15, "cost_multiplier": 1 }, { "monster": "mon_deinonychus_hatchling", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_utahraptor_hatchling", "freq": 5, "cost_multiplier": 1 }, { "monster": "mon_parasaurolophus_hatchling", "freq": 3, "cost_multiplier": 1 }, { "monster": "mon_dimorphodon_hatchling", "freq": 50, "cost_multiplier": 1 }, - { "monster": "mon_dilophosaurus_hatchling", "freq": 15, "cost_multiplier": 1 } + { "monster": "mon_dilophosaurus_hatchling", "freq": 1, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_compsognathus", + "type": "monstergroup", + "default": "mon_compsognathus_hatchling", + "monsters": [ { "monster": "mon_compsognathus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_gallimimus", + "type": "monstergroup", + "default": "mon_gallimimus_hatchling", + "monsters": [ { "monster": "mon_gallimimus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_pachycephalosaurus", + "type": "monstergroup", + "default": "mon_pachycephalosaurus_hatchling", + "monsters": [ { "monster": "mon_pachycephalosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_camptosaurus", + "type": "monstergroup", + "default": "mon_camptosaurus_hatchling", + "monsters": [ { "monster": "mon_camptosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_spinosaurus", + "type": "monstergroup", + "default": "mon_spinosaurus_hatchling", + "monsters": [ { "monster": "mon_spinosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_tyrannosaurus", + "type": "monstergroup", + "default": "mon_tyrannosaurus_hatchling", + "monsters": [ { "monster": "mon_tyrannosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_albertosaurus", + "type": "monstergroup", + "default": "mon_albertosaurus_hatchling", + "monsters": [ { "monster": "mon_albertosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_triceratops", + "type": "monstergroup", + "default": "mon_triceratops_hatchling", + "monsters": [ { "monster": "mon_triceratops_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_stegosaurus", + "type": "monstergroup", + "default": "mon_stegosaurus_hatchling", + "monsters": [ { "monster": "mon_stegosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_ankylosaurus", + "type": "monstergroup", + "default": "mon_ankylosaurus_hatchling", + "monsters": [ { "monster": "mon_ankylosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_ceratosaurus", + "type": "monstergroup", + "default": "mon_ceratosaurus_hatchling", + "monsters": [ { "monster": "mon_ceratosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_allosaurus", + "type": "monstergroup", + "default": "mon_allosaurus_hatchling", + "monsters": [ { "monster": "mon_allosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_eoraptor", + "type": "monstergroup", + "default": "mon_eoraptor_hatchling", + "monsters": [ { "monster": "mon_eoraptor_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_velociraptor", + "type": "monstergroup", + "default": "mon_velociraptor_hatchling", + "monsters": [ { "monster": "mon_velociraptor_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_deinonychus", + "type": "monstergroup", + "default": "mon_deinonychus_hatchling", + "monsters": [ { "monster": "mon_deinonychus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_utahraptor", + "type": "monstergroup", + "default": "mon_utahraptor_hatchling", + "monsters": [ { "monster": "mon_utahraptor_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_parasaurolophus", + "type": "monstergroup", + "default": "mon_parasaurolophus_hatchling", + "monsters": [ { "monster": "mon_parasaurolophus_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_dimorphodon", + "type": "monstergroup", + "default": "mon_dimorphodon_hatchling", + "monsters": [ { "monster": "mon_dimorphodon_hatchling", "freq": 100, "cost_multiplier": 1 } ] + }, + { + "name": "GROUP_EGG_dilophosaurus", + "type": "monstergroup", + "default": "mon_dilophosaurus_hatchling", + "monsters": [ { "monster": "mon_dilophosaurus_hatchling", "freq": 100, "cost_multiplier": 1 } ] } ] diff --git a/data/mods/DinoMod/obsolete/fieldoffice.json b/data/mods/DinoMod/obsolete/fieldoffice.json new file mode 100644 index 0000000000000..3830cd3a1f982 --- /dev/null +++ b/data/mods/DinoMod/obsolete/fieldoffice.json @@ -0,0 +1,82 @@ +[ + { + "//": "Currently unused, here for save compatibility", + "type": "overmap_terrain", + "id": "fieldoffice", + "sym": "^", + "name": "wildlife field office", + "color": "brown", + "see_cost": 5, + "extras": "build", + "mondensity": 2, + "mapgen": [ + { + "method": "json", + "weight": 10000, + "object": { + "rows": [ + "rrrrrrrrrrrrrrrrrrrrrrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yrrryrrryrrryrrryrrryrrr", + "yyyyyyyyyyyyyyyyyyyyyyyy", + "222222222222222---1+111-", + "3..............|B|F |", + "3.2222222222222| |CCC A|", + "3.3...3...3...3|D+ F A|", + "3.3I..3...3.I.3--|-+---|", + "3.3...3..I3...3.E......3", + "3.2242224222422........3", + "3......................3", + "3.2222422222422.. .3", + "3.3.....3.....3..HH .3", + "3.3.....3.....3..HH .3", + "3.3.....3.....3.5555+553", + "3.3.....3.....3.5.....53", + "3.3....I3...I.3.5GGGGG53", + "3.2222222222222.55555553", + "3......................3", + "222222222222222222222222" + ], + "terrain": { + "r": "t_pavement", + "y": "t_pavement_y", + ".": "t_dirtfloor", + "-": "t_wall", + "1": "t_window", + "|": "t_wall", + "+": "t_door_c", + "2": "t_chainfence_h", + "3": "t_chainfence_v", + "4": "t_chaingate_l", + "5": "t_wall_wood", + " ": "t_floor", + "A": "t_floor", + "B": "t_floor", + "C": "t_floor", + "D": "t_floor", + "E": "t_dirtfloor", + "F": "t_floor", + "G": "t_dirtfloor", + "H": "t_floor", + "I": "t_dirtfloor" + }, + "furniture": { + "A": "f_rack", + "C": "f_counter", + "D": "f_sink", + "E": "f_sink", + "F": "f_chair", + "G": "f_locker", + "H": "f_hay", + "I": "f_hay" + }, + "toilets": { "B": { } } + } + } + ], + "flags": [ "SIDEWALK" ] + } +] diff --git a/data/mods/DinoMod/overmap_specials.json b/data/mods/DinoMod/overmap_specials.json new file mode 100644 index 0000000000000..ae93cb998a9ec --- /dev/null +++ b/data/mods/DinoMod/overmap_specials.json @@ -0,0 +1,13 @@ +[ + { + "type": "overmap_special", + "id": "dinosaur exhibit", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "dinoexhibit_north" } ], + "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" } ], + "locations": [ "wilderness" ], + "city_distance": [ 10, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 1, 1 ], + "flags": [ "CLASSIC", "WILDERNESS" ] + } +] diff --git a/data/mods/DinoMod/overmap_terrain.json b/data/mods/DinoMod/overmap_terrain.json new file mode 100644 index 0000000000000..5e8c590948016 --- /dev/null +++ b/data/mods/DinoMod/overmap_terrain.json @@ -0,0 +1,11 @@ +[ + { + "color": "brown", + "id": "dinoexhibit", + "mondensity": 2, + "name": "Dinosaur Exhibit", + "see_cost": 5, + "sym": "^", + "type": "overmap_terrain" + } +] diff --git a/data/mods/DinoMod/regional_overlay.json b/data/mods/DinoMod/regional_overlay.json index ff207bc0061fd..e2dd53835fce1 100644 --- a/data/mods/DinoMod/regional_overlay.json +++ b/data/mods/DinoMod/regional_overlay.json @@ -1,7 +1,8 @@ [ { + "//": "Currently unused, here for save compatibility", "type": "region_overlay", "regions": [ "all" ], - "city": { "parks": { "fieldoffice": 100 } } + "city": { "parks": { "field": 1 } } } ] diff --git a/data/mods/DinoMod/snippets.json b/data/mods/DinoMod/snippets.json index fa57f769cb1e2..453cb93213fe2 100644 --- a/data/mods/DinoMod/snippets.json +++ b/data/mods/DinoMod/snippets.json @@ -15,12 +15,33 @@ "text": [ { "id": "note_dinomod_1", "text": "\"SWAMPS BAD TEETH HUGE OHGOD\"" }, { "id": "note_dinomod_2", "text": "\"Why is that place just fucking crawling with lizards?\"" }, - { "id": "note_dinomod_3", "text": "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" }, + { + "id": "note_dinomod_3", + "text": "\"I bet dinosaurs can read and play chess so don't eat us because we can teach you important things like magnets and ramen\"" + }, { "id": "note_dinomod_4", "text": "\"where's some .700 t-rex medicine when you need it?\"" }, { "id": "note_dinomod_5", "text": "\"So is this what happens when you stray off the path and step on a butterfly?\"" } ] + }, + { + "type": "snippet", + "category": "newest_news", + "text": [ + { + "id": "dinomod_newest_news_1", + "text": "MANY MISSING: A wave of missing persons reports have shaken an already troubled nation, especially among members of the popular Swampers religion and hotel and casino chain. Asked to comment, their charismatic CEO Bo Baronyx refused to explain their whereabouts, saying only 'The great eaters have returned and they will be sated' and winked and smiled in the most charming way. The Swampers are doing their part in this crisis and are accepting donations of meat and money to feed the hungry." + }, + { + "id": "dinomod_newest_news_2", + "text": "CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing lights opened above Cretaceous Kindergarten today, showering children with the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not died out millions of years ago but 'at this point why not, at least they're cute'. And cute they are!" + }, + { + "id": "dinomod_newest_news_3", + "text": "DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the cities are not safe and reports of dinosaurs outside the cities are wrong and 'possibly drug-related' but cautioned refugees to 'get all the guns you can' because 'it's bad out there'." + } + ] } ] diff --git a/data/mods/DinoMod/zed-dinosaur.json b/data/mods/DinoMod/zed-dinosaur.json index 6fac722ff6fe6..b3c08a8046be8 100644 --- a/data/mods/DinoMod/zed-dinosaur.json +++ b/data/mods/DinoMod/zed-dinosaur.json @@ -3,16 +3,16 @@ "type": "MONSTER", "id": "mon_zyrannosaurus", "name": { "str": "Z-Rex", "str_pl": "Z-Rexes" }, - "species": "ZOMBIE", + "species": [ "ZOMBIE", "DINOSAUR" ], "default_faction": "zombie", - "symbol": "D", + "symbol": "Z", "color": "green", - "volume": "5000000 ml", + "volume": "1000 L", "weight": 5000000, "material": "flesh", "aggression": 100, "morale": 100, - "speed": 100, + "speed": 40, "melee_skill": 13, "melee_dice": 3, "melee_dice_sides": 6, @@ -22,6 +22,8 @@ "hp": 500, "death_function": [ "NORMAL" ], "description": "Massive piles of ragged, stinking flesh lifting enormous teeth.", + "special_attacks": [ [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "upgrades": { "half_life": 14, "into": "mon_syrannosaurus" }, "flags": [ "SEES", "SMELLS", @@ -36,9 +38,68 @@ "FILTHY", "WARM" ], - "harvest": "zombie_large_leather", - "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], - "fear_triggers": [ "FIRE" ], + "vision_night": 3, + "harvest": "zed_dino_feather_leather", + "categories": [ "DINOSAUR", "CLASSIC" ] + }, + { + "type": "MONSTER", + "id": "mon_syrannosaurus", + "name": { "str": "S-Rex", "str_pl": "S-Rexes" }, + "copy-from": "mon_zyrannosaurus", + "color": "white", + "material": "bone", + "speed": 35, + "melee_skill": 13, + "melee_dice": 4, + "melee_dice_sides": 12, + "melee_cut": 20, + "armor_bash": 0, + "armor_cut": 30, + "armor_bullet": 30, + "armor_stab": 30, + "armor_acid": 3, + "vision_day": 30, + "hp": 200, + "description": "Monstrous columns of dense bone lifting enormous sharp pointed teeth dripping with black goo.", + "flags": [ "SEES", "HEARS", "POISON", "HARDTOSHOOT", "BLEED", "NO_BREATHE", "REVIVES", "FILTHY" ], + "harvest": "mr_bones", "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zeinonychus", + "name": { "str_sp": "Z-Deinonychus" }, + "looks_like": "mon_deinonychus", + "species": [ "ZOMBIE", "DINOSAUR" ], + "default_faction": "zombie", + "symbol": "Z", + "color": "green", + "volume": "70000 ml", + "weight": 70000, + "material": "flesh", + "aggression": 100, + "morale": 100, + "speed": 20, + "melee_skill": 7, + "melee_dice": 1, + "melee_dice_sides": 8, + "melee_cut": 4, + "armor_bash": 2, + "armor_cut": 4, + "armor_bullet": 2, + "hp": 100, + "death_function": [ "NORMAL" ], + "special_attacks": [ + { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, + [ "scratch", 10 ], + { "type": "bite", "cooldown": 5 } + ], + "description": "The shuffling corpse of a medium-sized bipedal dinosaur covered with tattered feathers and black putrid liquid. Both feet brandish a large sickle-like claw.", + "flags": [ "SEES", "SMELLS", "HEARS", "KEENNOSE", "BLEED", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "vision_day": 30, + "vision_night": 10, + "harvest": "zed_dino_feather_leather", + "categories": [ "DINOSAUR", "CLASSIC" ] } ] diff --git a/data/mods/Fuji_Structures/items/itemgroups.json b/data/mods/Fuji_Structures/items/itemgroups.json deleted file mode 100644 index a4f7f7b68ab2f..0000000000000 --- a/data/mods/Fuji_Structures/items/itemgroups.json +++ /dev/null @@ -1,25 +0,0 @@ -[ - { - "type": "item_group", - "id": "gunshop_accessories", - "items": [ [ "powered_earmuffs", 50 ], [ "ear_plugs", 80 ] ] - }, - { - "type": "item_group", - "id": "games", - "items": [ - [ "chess", 50 ], - [ "checkers", 50 ], - [ "cards", 50 ], - [ "cards_magic", 50 ], - [ "pictionary", 50 ], - [ "monopoly", 50 ], - [ "dnd", 50 ], - [ "g_warhammer", 50 ], - [ "g_warhammer40k", 50 ], - [ "catan", 50 ], - [ "battleship", 50 ], - [ "clue", 50 ] - ] - } -] diff --git a/data/mods/Fuji_Structures/items/items_games.json b/data/mods/Fuji_Structures/items/items_games.json deleted file mode 100644 index 14548c81e882c..0000000000000 --- a/data/mods/Fuji_Structures/items/items_games.json +++ /dev/null @@ -1,194 +0,0 @@ -[ - { - "id": "chess", - "type": "BOOK", - "name": "chess set", - "description": "A wooden box containing all the equipment needed to play a game of chess.", - "weight": "907 g", - "volume": "2 L", - "price": 7500, - "material": [ "wood" ], - "symbol": "?", - "color": "brown", - "intelligence": 10, - "time": 30, - "chapters": 12, - "fun": 10 - }, - { - "id": "checkers", - "type": "BOOK", - "name": "checkers set", - "description": "A wooden box containing a set of round tokens used to play checkers.", - "weight": "788 g", - "volume": "1500 ml", - "price": 2000, - "material": [ "wood" ], - "symbol": "?", - "color": "brown", - "intelligence": 5, - "time": 20, - "chapters": 5, - "fun": 3 - }, - { - "id": "cards", - "type": "BOOK", - "name": { "str": "deck of cards", "str_pl": "decks of cards" }, - "description": "A collection of 52 cards made to play poker.", - "weight": "96 g", - "volume": "125 ml", - "price": 599, - "material": [ "paper" ], - "symbol": "?", - "color": "white", - "intelligence": 8, - "time": 10, - "chapters": 8, - "fun": 5 - }, - { - "id": "cards_magic", - "type": "BOOK", - "name": { "str": "deck of Sorcery cards", "str_pl": "decks of Sorcery cards" }, - "description": "A set of cards meant to play the game \"Sorcery.\" Each card has a fun picture of a different monster.", - "weight": "210 g", - "volume": "250 ml", - "price": 2300, - "material": [ "paper" ], - "symbol": "?", - "color": "blue", - "intelligence": 9, - "time": 20, - "chapters": 16, - "fun": 10 - }, - { - "id": "pictionary", - "type": "BOOK", - "name": { "str": "Picturesque", "str_pl": "sets of Picturesque" }, - "description": "A game where one draws an image, and the others attempt to guess what it is.", - "weight": "350 g", - "volume": "500 ml", - "price": 1500, - "material": [ "plastic" ], - "symbol": "?", - "color": "yellow", - "intelligence": 7, - "time": 10, - "chapters": 5, - "fun": 1 - }, - { - "id": "monopoly", - "type": "BOOK", - "name": { "str": "Capitalism", "str_pl": "sets of Capitalism" }, - "description": "A game where players traverse around the board buying property and swindling their friends.", - "weight": "300 g", - "volume": "500 ml", - "price": 99, - "material": [ "plastic" ], - "symbol": "?", - "color": "red", - "intelligence": 5, - "time": 240, - "chapters": 1, - "fun": -5 - }, - { - "id": "dnd", - "type": "BOOK", - "name": { "str": "Blobs and Bandits", "str_pl": "sets of Blobs and Bandits" }, - "description": "A roleplaying game set in the post-apocalypse, so you can pretend to survive the apocalypse while surviving the apocalypse.", - "weight": "680 g", - "volume": "1250 ml", - "price": 12950, - "material": [ "plastic" ], - "symbol": "?", - "color": "red", - "intelligence": 5, - "time": 120, - "chapters": 100, - "fun": 5 - }, - { - "id": "g_warhammer", - "type": "BOOK", - "name": { "str": "Battlehammer", "str_pl": "sets of Battlehammer" }, - "description": "A strategy game featuring a set of tiny figurines of fantasy creatures.", - "weight": "680 g", - "volume": "1250 ml", - "price": 10880, - "material": [ "plastic" ], - "symbol": "?", - "color": "yellow", - "intelligence": 9, - "time": 60, - "chapters": 20, - "fun": 4 - }, - { - "id": "g_warhammer40k", - "type": "BOOK", - "name": { "str": "Battlehammer 20k", "str_pl": "sets of Battlehammer 20k" }, - "description": "A strategy game featuring a set of tiny figurines of space aliens and grotesque space marines.", - "weight": "680 g", - "volume": "1250 ml", - "price": 10880, - "material": [ "plastic" ], - "symbol": "?", - "color": "yellow", - "intelligence": 9, - "time": 60, - "chapters": 20, - "fun": 4 - }, - { - "id": "catan", - "type": "BOOK", - "name": { "str": "Settlers of the Ranch", "str_pl": "sets of Settlers of the Ranch" }, - "description": "A strategy game where players build settlements and trade for supplies.", - "weight": "804 g", - "volume": "1250 ml", - "price": 7050, - "material": [ "wood" ], - "symbol": "?", - "color": "light_blue", - "intelligence": 8, - "time": 60, - "chapters": 10, - "fun": 3 - }, - { - "id": "battleship", - "type": "BOOK", - "name": { "str": "Warships", "str_pl": "sets of Warships" }, - "description": "A game where players try to guess where the opponent placed their ships on the board.", - "weight": "450 g", - "volume": "500 ml", - "price": 2000, - "material": [ "plastic" ], - "symbol": "?", - "color": "blue", - "intelligence": 4, - "time": 10, - "chapters": 5, - "fun": 2 - }, - { - "id": "clue", - "type": "BOOK", - "name": { "str": "Murder Mystery", "str_pl": "sets of Murder Mystery" }, - "description": "A game where players try to figure out who murdered the butler.", - "weight": "370 g", - "volume": "500 ml", - "price": 2480, - "material": [ "paper" ], - "symbol": "?", - "color": "blue", - "intelligence": 6, - "time": 20, - "chapters": 5, - "fun": 3 - } -] diff --git a/data/mods/Fuji_Structures/items/vehicle_groups.json b/data/mods/Fuji_Structures/items/vehicle_groups.json deleted file mode 100644 index 2962e36e0b99b..0000000000000 --- a/data/mods/Fuji_Structures/items/vehicle_groups.json +++ /dev/null @@ -1,25 +0,0 @@ -[ - { - "type": "vehicle_group", - "id": "dealership", - "vehicles": [ - [ "car", 500 ], - [ "electric_car", 100 ], - [ "car_sports", 300 ], - [ "car_sports_atomic", 100 ], - [ "car_sports_electric", 300 ], - [ "suv", 500 ], - [ "suv_electric", 500 ], - [ "car_mini", 500 ], - [ "beetle", 500 ], - [ "motorcycle", 200 ], - [ "superbike", 200 ], - [ "motorcycle_sidecart", 100 ], - [ "scooter", 100 ], - [ "scooter_electric", 150 ], - [ "pickup", 800 ], - [ "hippie_van", 200 ], - [ "rv", 50 ] - ] - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_atc.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_atc.json deleted file mode 100644 index 8166885727fdf..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_atc.json +++ /dev/null @@ -1,63 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_atc" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "eeeeeeeeezzzzzzzzzlllzzz", - "aaaaaaaaebbbbbbzzjjjjjzz", - "aaaaaaaaebffffbejjkkkjjz", - "eaaaaaaaecffgfbejkkkkkjz", - "eaaaaaaaebhffibejkkkkkjz", - "eaaaaaaaebhffibejkkkkkjz", - "eqqaaaaaebbbcbbejjkkkjjz", - "eqqaaaaaezbfffbenjjjjjzz", - "eqqaaaaaezbiiibenzzzzzzz", - "eeeaaaaaezbbbbbenzzjjjzz", - "zzeaaaaaeeeeeezenzjjkjjz", - "zzeaaaaaeeeddeeennjkkkjz", - "zzeaaaaaeeeddeeenzjjkjjz", - "zzeaaaaaeeeeeezenzzjjjzz", - "zzeaaaaaezzzzzzenzzzzzzz", - "zzeaaaaaezozppzenzzjjjzz", - "eeeaaaaaezozppzenzjjkjjz", - "aaaaaaaaezozzzzennjkkkjz", - "aaaaaaaaezozppzezzjjkjjz", - "aaaaaaaaezozppzezzzjjjzz", - "aaaaaaaaezozzzzzzzzzzzzz", - "aaaaaaaae oooooooooooooo", - "eeeaaaaaezzzzzzzzzzzzzzz", - "zzeaaaaaezzzzzzzzzzzzzzz" - ], - "terrain": { - "z": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "a": "t_pavement", - "b": "t_wall", - "c": "t_door_c", - "d": "t_radio_tower", - "e": "t_sidewalk", - "f": "t_floor", - "g": "t_stairs_up", - "h": "t_floor", - "i": "t_console_broken", - "j": "t_wall_metal", - "k": "t_metal_floor", - "l": "t_gas_pump", - "m": "t_water_pump", - "n": "t_sewage_pipe", - "o": "t_chainfence_v", - "p": "t_generator_broken", - "q": "t_pavement" - }, - "furniture": { "h": "f_table", "q": "f_dumpster" }, - "gaspumps": { "l": { } }, - "place_loot": [ - { "group": "office_mess", "chance": 80, "repeat": [ 3 ], "x": [ 10, 13 ], "y": [ 2, 5 ] }, - { "group": "office_mess", "chance": 80, "repeat": [ 1 ], "x": [ 11, 13 ], "y": [ 7, 7 ] }, - { "group": "trash", "chance": 50, "repeat": [ 5 ], "x": [ 1, 2 ], "y": [ 6, 8 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_atc_2.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_atc_2.json deleted file mode 100644 index a5a309c2497fa..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_atc_2.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_atc_2" ], - "object": { - "fill_ter": "t_open_air", - "rows": [ - " ", - " ", - " aaaa ", - " adca ", - " abba ", - " aaaa ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "terrain": { "a": "t_wall", "b": "t_floor", "c": "t_stairs_down", "d": "t_stairs_up" }, - "furniture": { } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_atc_3.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_atc_3.json deleted file mode 100644 index 4efe9970c6b6a..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_atc_3.json +++ /dev/null @@ -1,48 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_atc_3" ], - "object": { - "fill_ter": "t_open_air", - "rows": [ - " hhhhhhhh ", - " habbgbah ", - " hbcdccbh ", - " hbfcccbh ", - " hbfccebh ", - " hbcceebh ", - " habbbbah ", - " hhhhhhhh ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "terrain": { - "a": "t_wall", - "b": "t_wall_glass", - "c": "t_floor", - "d": "t_stairs_down", - "e": "t_floor", - "f": "t_console_broken", - "g": "t_door_glass_c", - "h": "t_metal_floor" - }, - "furniture": { "e": "f_table" }, - "place_loot": [ { "group": "office_mess", "chance": 80, "repeat": [ 5 ], "x": [ 10, 13 ], "y": [ 2, 5 ] } ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_hangars.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_hangars.json deleted file mode 100644 index 4c16defc94cad..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_hangars.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_hangars" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "zzeeeeeeeeeeeeeeeeeeeezz", - "zzeeeeeeeeeeeeeeeeeeeezz", - "zzeeeeeeeeeeeeeeeeeeeezz", - "zzeeeeeeeeeeeeeeeeeeeezz", - "zadeeeeeeeazzadeeeeeeeaz", - "zaaccccccaazzaaccccccaaz", - "zadbbbbbbbazzadbbbbbbbaz", - "zabbbbbbbfazzabbbbbbbbaz", - "zabbbbbbbfazzabbbbbbbbaz", - "zabbbbbbbbazzabbbbbbbbaz", - "zabbbbbbbbazzabbbbbbbbaz", - "zabbbbbbbbazzabbbbbbbbaz", - "zabbbbbbbbazzabbbbbbbbaz", - "zabbbbbbbbazzabbbbbbbbaz", - "zabbbbbbbbazzabbbbbggbaz", - "zabbbbbbbbazzabbbbbggbaz", - "zabbbbbbbbazzabbbbbbbbaz", - "zabbbbbbbgazzabbbbbbbbaz", - "zabbbbbbggazzabbbbbbbbaz", - "zabbbbbbggazzabbbbbbbbaz", - "zagbbbbbggazzabbbbbbbbaz", - "haggbbbgggahhabffbbbggaz", - "zaaaaaaaaaazzaaaaaaaaaaz", - "zzzzzzzzzzzzzzzzzzzzzzzz" - ], - "terrain": { - "z": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "a": "t_wall", - "b": "t_thconc_floor", - "c": "t_door_metal_locked", - "d": "t_gates_mech_control", - "e": "t_pavement", - "f": "t_floor", - "g": "t_floor", - "h": "t_chainfence_v" - }, - "furniture": { "f": "f_locker", "g": "f_crate_o" }, - "place_loot": [ - { "group": "road", "chance": 50, "repeat": [ 10 ], "x": [ 3, 8 ], "y": [ 7, 20 ] }, - { "group": "road", "chance": 50, "repeat": [ 10 ], "x": [ 15, 20 ], "y": [ 20, 7 ] }, - { "group": "clothing_work_mask", "chance": 50, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 7, 7 ] }, - { "group": "clothing_work_mask", "chance": 50, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 21, 21 ] }, - { "group": "tools_mechanic", "chance": 50, "repeat": [ 4 ], "x": [ 16, 16 ], "y": [ 21, 21 ] }, - { "group": "tools_mechanic", "chance": 50, "repeat": [ 4 ], "x": [ 9, 9 ], "y": [ 8, 8 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_parking.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_parking.json deleted file mode 100644 index 1c8cbfbefc6f1..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_parking.json +++ /dev/null @@ -1,48 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_parking" ], - "object": { - "fill_ter": "t_pavement", - "rows": [ - "aaaaaaaaaaaaaaaaaaaaaaaa", - "a a", - "a a", - "a a", - "a a", - "abbbbbb bbbbbba", - "a a", - "a a", - "a a", - "a a", - "abbbbbb bbbbbba", - "a a", - "a a", - "a a", - "a a", - "abbbbbb bbbbbba", - "a a", - "a ", - "a ", - "a ", - "aaaaaaaa ", - "ccccccca ", - "ccccccca a", - "cccccccaaaaaaaaaaaaaaaaa" - ], - "terrain": { "a": "t_sidewalk", "b": "t_pavement_y", "c": [ "t_grass", "t_grass", "t_grass", "t_dirt" ] }, - "furniture": { }, - "place_loot": [ { "group": "road", "chance": 50, "repeat": [ 4 ], "x": [ 1, 22 ], "y": [ 1, 19 ] } ], - "place_vehicles": [ - { "vehicle": "dealership", "x": [ 3, 3 ], "y": [ 3, 3 ], "chance": 50, "rotation": 180 }, - { "vehicle": "dealership", "x": [ 3, 3 ], "y": [ 8, 8 ], "chance": 50, "rotation": 180 }, - { "vehicle": "dealership", "x": [ 3, 3 ], "y": [ 13, 13 ], "chance": 50, "rotation": 180 }, - { "vehicle": "dealership", "x": [ 3, 3 ], "y": [ 18, 18 ], "chance": 50, "rotation": 180 }, - { "vehicle": "dealership", "x": [ 20, 20 ], "y": [ 2, 2 ], "chance": 50, "rotation": 0 }, - { "vehicle": "dealership", "x": [ 20, 20 ], "y": [ 7, 7 ], "chance": 50, "rotation": 0 }, - { "vehicle": "dealership", "x": [ 20, 20 ], "y": [ 12, 12 ], "chance": 50, "rotation": 0 } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_runway.json deleted file mode 100644 index 150b9c5f88004..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_runway" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "zzzzzzzzzzzzzzzzzzzzzzzz", - "cccccccccccccccccccccccc", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "bbbbbbbbbbbbbbbbbbbbbbbb", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aabbbbaaaabbbbaaaabbbbaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "bbbbbbbbbbbbbbbbbbbbbbbb", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz" - ], - "terrain": { "z": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], "a": "t_pavement", "b": "t_pavement_y", "c": "t_chainfence_v" }, - "furniture": { } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_hangars.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_hangars.json deleted file mode 100644 index 3a691cc6bb35a..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_hangars.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_runway_hangars" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "zzzzzzzzzzzzzzzzzzzzzzzz", - "cccccccccccccccccccccccc", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "bbbbbbbbbbbbbbbbbbbbbbbb", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aabbbbaaaabbbbaaaabbbbaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "bbbbbbbbbbbbbbbbbbbbbbbb", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "zzabaaaaaaaaaaaaaaaabazz", - "zzaaaaaaaaaaaaaaaaaaaazz", - "zzabaaaaaaaaaaaaaaaabazz", - "zzaaaaaaaaaaaaaaaaaaaazz", - "zzabaaaaaaaaaaaaaaaabazz" - ], - "terrain": { "z": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], "a": "t_pavement", "b": "t_pavement_y", "c": "t_chainfence_v" }, - "furniture": { } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_l.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_l.json deleted file mode 100644 index e0866261117a2..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_l.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_runway_l" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zccccccccccccccccccccccc", - "zczzzzzzzzzzzzzzzzzzzzzz", - "zczzzzzzzzzzzzzzzzzzzzzz", - "zczzzzzzzzzzzzzzzzzzzzzz", - "zczzzzzzzzzzzzzzzzzzzzzz", - "zczzzzzaaaaaaaaaaaaaaaaa", - "zczzzzzbbbbbbbbbbbbbbbbb", - "zczzzzzaaaaaabaaaaaaaaab", - "zczzzzzaaaaabaaaaaaaaaba", - "zczzzzzaaaabbaaaaaaaabaa", - "zczzzzzaaabaaaaaaaaabaaa", - "zczzzzzaabaaaaaaaaabaaaa", - "zczzzzzaaabaaaaaaaaabaaa", - "zczzzzzaaaabaaaaaaaaabaa", - "zczzzzzaaaaabaaaaaaaaaba", - "zczzzzzaaaaaabaaaaaaaaab", - "zczzzzzbbbbbbbbbbbbbbbbb", - "zczzzzzaaaaaaaaaaaaaaaaa", - "zczzzzzzzzzzzzzzzzzzzzzz", - "zczzzzzzzzzzzzzzzzzzzzzz", - "zczzzzzzzzzzzzzzzzzzzzzz", - "zccccccccccccccccccccccc", - "zzzzzzzzzzzzzzzzzzzzzzzz" - ], - "terrain": { "z": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], "a": "t_pavement", "b": "t_pavement_y", "c": "t_chainfence_v" }, - "furniture": { } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_r.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_r.json deleted file mode 100644 index 1cb8e67567ecc..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_r.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_runway_r" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "zzzzzzzzzzzzzzzzzzzzzzzz", - "cccccccccccccccccccccccz", - "zzzzzzzzzzzzzzzzzzzzzzcz", - "zzzzzzzzzzzzzzzzzzzzzzcz", - "zzzzzzzzzzzzzzzzzzzzzzcz", - "zzzzzzzzzzzzzzzzzzzzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "bbbbbbbbbbbbbbbbbbzzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "aabbbbaaaabbbbaaaazzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "bbbbbbbbbbbbbbbbbbzzzzcz", - "aaaaaaaaaaaaaaaaaazzzzcz", - "zzzzzzzzzzzzzzzzzzzzzzcz", - "zzzzzzzzzzzzzzzzzzzzzzcz", - "zzzzzzzzzzzzzzzzzzzzzzcz", - "cccccccccccccccccccccccz", - "zzzzzzzzzzzzzzzzzzzzzzzz" - ], - "terrain": { "z": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], "a": "t_pavement", "b": "t_pavement_y", "c": "t_chainfence_v" }, - "furniture": { } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_term.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_term.json deleted file mode 100644 index fda15a80ae217..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_runway_term.json +++ /dev/null @@ -1,45 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_runway_term" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "zzzzzzzzzzzzzzzzzzzzzzzz", - "cccccccccccccccccccccccc", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "zzzzzzzzzzzzzzzzzzzzzzzz", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "bbbbbbbbbbbbbbbbbbbbbbbb", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aabbbbaaaabbbbaaaabbbbaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "bbbbbbbbbbbbbbbbbbbbbbbb", - "aaaaaaaaaaaaaaaaaaaaaaaa", - "zadaaaaaaaaaaaaaaaaaaaaz", - "zadaaaaaaaaaaaaaaaaaaaaz", - "zadaaaaaaaaaaaaaaaaaaaaz", - "zadaaaaaaaaaaaaaaaaaaaaz", - "zadaaaaaaaaaaaaaaaaaaaaz" - ], - "terrain": { - "z": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "a": "t_pavement", - "b": "t_pavement_y", - "c": "t_chainfence_v", - "d": "t_conveyor" - }, - "furniture": { }, - "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 4, 21 ], "y": [ 19, 23 ], "chance": 100, "rotation": 270 } ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/airport/s_air_term.json b/data/mods/Fuji_Structures/worldgen/airport/s_air_term.json deleted file mode 100644 index b1c97b4085ea1..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/airport/s_air_term.json +++ /dev/null @@ -1,90 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_air_term" ], - "object": { - "fill_ter": "t_linoleum_gray", - "rows": [ - "oqbqqqqqqqqqqqqqqqqqqqqo", - "aaeaccaasssaasssaaqqqqqq", - "afbfffa uaqqqqqq", - "afbfffc l l aaccaao", - "afbfffa b h h a lan", - "afeffma b h h pa dn", - "afeffma b h h pa an", - "afbfmma b h h a an", - "afbbbbebb h h an", - "afffffa dn", - "aaaaaaa ii au uan", - "oatggga i hhhhl aaddaan", - "oaggggc i annnnnn", - "oakkkka i annnnnn", - "oaaddaaj i uannnnnn", - "onnnnnaaaasssrrsaannnnnn", - "oooooooooooooooooooooooo", - "qqqqqqqqqqqqqqqqqqqqqqqq", - "qqqqqqqqqqqqqqqqqqqqqqqq", - "qqqqqqqqqqqqqqqqqqqqqqqq", - "qqqqqqqqqqqqqqqqqqqqqqqq", - "qqqqqqqqqqqqqqqqqqqqqqqq", - "oooooooooooooooooooooooo", - "nnnnnnnnnnnnnnnnnnnnnnnn" - ], - "terrain": { - "a": "t_brick_wall", - "b": "t_conveyor", - "c": "t_door_c", - "d": "t_window", - "e": "t_machinery_light", - "f": "t_thconc_floor", - "g": "t_floor", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_console_broken", - "k": "t_floor", - "l": "t_linoleum_gray", - "m": "t_thconc_floor", - "n": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "o": "t_sidewalk", - "p": "t_linoleum_gray", - "q": "t_pavement", - "r": "t_door_glass_c", - "s": "t_wall_glass", - "t": "t_floor", - "u": "t_linoleum_gray" - }, - "furniture": { - "h": "f_bench", - "i": "f_counter", - "k": "f_table", - "l": "f_trashcan", - "m": "f_crate_c", - "p": "f_vending_c", - "t": "f_locker", - "u": "f_indoor_plant" - }, - "place_loot": [ - { "group": "allclothes", "chance": 80, "repeat": [ 10 ], "x": [ 5, 5 ], "y": [ 5, 6 ] }, - { "group": "allclothes", "chance": 80, "repeat": [ 5 ], "x": [ 4, 4 ], "y": [ 7, 7 ] }, - { "group": "office", "chance": 80, "repeat": [ 5 ], "x": [ 5, 5 ], "y": [ 7, 7 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 2, 5 ], "y": [ 13, 13 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 11, 11 ] }, - { "group": "bags", "chance": 80, "repeat": [ 1 ], "x": [ 2, 2 ], "y": [ 2, 4 ] }, - { "group": "bags", "chance": 80, "repeat": [ 1 ], "x": [ 8, 8 ], "y": [ 4, 8 ] }, - { "group": "bags", "chance": 80, "repeat": [ 1 ], "x": [ 2, 5 ], "y": [ 8, 8 ] }, - { "group": "bags", "chance": 80, "repeat": [ 1 ], "x": [ 14, 14 ], "y": [ 8, 4 ] }, - { "group": "bags", "chance": 80, "repeat": [ 2 ], "x": [ 11, 14 ], "y": [ 11, 11 ] }, - { "group": "bags", "chance": 80, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 8, 4 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 5 ], "x": [ 21, 21 ], "y": [ 4, 4 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 5 ], "x": [ 14, 14 ], "y": [ 3, 3 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 5 ], "x": [ 11, 11 ], "y": [ 3, 3 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 5 ], "x": [ 15, 15 ], "y": [ 11, 11 ] }, - { "group": "office", "chance": 50, "repeat": [ 5 ], "x": [ 9, 9 ], "y": [ 10, 14 ] }, - { "group": "vending_food", "chance": 80, "repeat": [ 1 ], "x": [ 16, 16 ], "y": [ 5, 5 ] }, - { "group": "vending_drink", "chance": 80, "repeat": [ 1 ], "x": [ 16, 16 ], "y": [ 6, 6 ] } - ], - "place_vehicles": [ { "vehicle": "dealership", "x": [ 14, 14 ], "y": [ 19, 19 ], "chance": 50, "rotation": 0 } ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_b.json b/data/mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_b.json index 0532376c25453..7509ddfbeb7b4 100644 --- a/data/mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_b.json +++ b/data/mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_b.json @@ -33,26 +33,26 @@ ], "terrain": { "a": "t_stairs_up", - "b": "t_concrete_floor", + "b": "t_thconc_floor", "c": "t_floor", "d": "t_door_metal_c", "e": "t_door_metal_locked", "f": "t_concrete_wall", "g": "t_reinforced_glass", - "h": "t_concrete_floor", - "i": "t_concrete_floor", - "j": "t_concrete_floor", + "h": "t_thconc_floor", + "i": "t_thconc_floor", + "j": "t_thconc_floor", "k": "t_plut_generator", "l": "t_floor", "m": "t_floor", "n": "t_floor", "o": "t_floor", - "p": "t_concrete_floor", - "q": "t_concrete_floor", - "r": "t_concrete_floor", - "s": "t_concrete_floor", - "t": "t_concrete_floor", - "u": "t_concrete_floor", + "p": "t_thconc_floor", + "q": "t_thconc_floor", + "r": "t_thconc_floor", + "s": "t_thconc_floor", + "t": "t_thconc_floor", + "u": "t_thconc_floor", "v": "t_utility_light", "w": "t_console_broken", "x": "t_atm" diff --git a/data/mods/Fuji_Structures/worldgen/gas/s_gas_b11.json b/data/mods/Fuji_Structures/worldgen/gas/s_gas_b11.json index 33fb4f7dd4d73..0c7c6fb7dc85e 100644 --- a/data/mods/Fuji_Structures/worldgen/gas/s_gas_b11.json +++ b/data/mods/Fuji_Structures/worldgen/gas/s_gas_b11.json @@ -32,7 +32,7 @@ " " ], "terrain": { - "a": "t_concrete_floor", + "a": "t_thconc_floor", "b": "t_door_metal_c", "c": "t_reinforced_glass", "d": "t_reinforced_door_glass_c", @@ -40,16 +40,16 @@ "f": "t_door_metal_locked", "g": "t_ladder_up", "h": "t_metal_floor", - "i": "t_concrete_floor", - "j": "t_concrete_floor", - "k": "t_concrete_floor", - "l": "t_concrete_floor", - "m": "t_concrete_floor", - "n": "t_concrete_floor", + "i": "t_thconc_floor", + "j": "t_thconc_floor", + "k": "t_thconc_floor", + "l": "t_thconc_floor", + "m": "t_thconc_floor", + "n": "t_thconc_floor", "o": "t_stairs_down", - "p": "t_concrete_floor", - "q": "t_concrete_floor", - "r": "t_concrete_floor" + "p": "t_thconc_floor", + "q": "t_thconc_floor", + "r": "t_thconc_floor" }, "furniture": { "i": "f_table", "j": "f_bed", "k": "f_bench", "l": "f_chair", "m": "f_toilet", "n": "f_sink", "p": "f_locker" }, "place_loot": [ diff --git a/data/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json b/data/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json index ecb8f61dadbbe..c7296ae47c957 100644 --- a/data/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json +++ b/data/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json @@ -32,7 +32,7 @@ " bbbb cccccccc" ], "terrain": { - "a": "t_concrete_floor", + "a": "t_thconc_floor", "b": "t_strconc_wall", "c": "t_wall_metal", "d": "t_wall_glass", @@ -46,23 +46,23 @@ "l": "t_lava", "m": "t_gates_mech_control", "n": "t_sewage_pipe", - "o": "t_concrete_floor", - "p": "t_concrete_floor", - "q": "t_concrete_floor", - "r": "t_concrete_floor", - "s": "t_ind_mixer", - "t": "t_ind_furnace", - "u": "t_ind_lathe", + "o": "t_thconc_floor", + "p": "t_thconc_floor", + "q": "t_thconc_floor", + "r": "t_thconc_floor", + "s": "t_thconc_floor", + "t": "t_thconc_floor", + "u": "t_thconc_floor", "v": "t_machinery_light", "w": "t_machinery_electronic", - "x": "t_ind_press", + "x": "t_thconc_floor", "y": "t_machinery_heavy", - "z": "t_ind_furnace", - "A": "t_ind_drill", - "B": "t_concrete_floor", - "C": "t_concrete_floor", - "D": "t_concrete_floor", - "E": "t_concrete_floor", + "z": "t_thconc_floor", + "A": "t_thconc_floor", + "B": "t_thconc_floor", + "C": "t_thconc_floor", + "D": "t_thconc_floor", + "E": "t_thconc_floor", "F": "t_linoleum_gray", "G": "t_linoleum_gray", "H": "t_linoleum_gray", @@ -70,7 +70,7 @@ "J": "t_console_broken", "K": "t_door_glass_c", "L": "t_metal_floor", - "M": "t_concrete_floor" + "M": "t_thconc_floor" }, "furniture": { "h": "f_rubble_rock", @@ -78,6 +78,12 @@ "p": "f_autodoc", "q": "f_table", "r": "f_chair", + "s": "f_chemical_mixer", + "t": "f_arcfurnace_empty", + "u": "f_heavy_lathe", + "x": "f_drill_press", + "z": "f_arcfurnace_empty", + "A": "f_drill_press", "B": "f_rack", "C": "f_bench", "D": "f_bookcase", diff --git a/data/mods/Fuji_Structures/worldgen/gas/s_gas_b21.json b/data/mods/Fuji_Structures/worldgen/gas/s_gas_b21.json index c9df7fa8f268a..7e3544246d05f 100644 --- a/data/mods/Fuji_Structures/worldgen/gas/s_gas_b21.json +++ b/data/mods/Fuji_Structures/worldgen/gas/s_gas_b21.json @@ -32,7 +32,7 @@ "bcccdcbazadsssssssususvb" ], "terrain": { - "a": "t_concrete_floor", + "a": "t_thconc_floor", "b": "t_strconc_wall", "c": "t_wall_glass", "d": "t_door_glass_c", @@ -41,13 +41,13 @@ "g": "t_carpet_red", "h": "t_carpet_red", "i": "t_carpet_red", - "j": "t_concrete_floor", - "k": "t_concrete_floor", - "l": "t_concrete_floor", - "m": "t_concrete_floor", - "n": "t_concrete_floor", + "j": "t_thconc_floor", + "k": "t_thconc_floor", + "l": "t_thconc_floor", + "m": "t_thconc_floor", + "n": "t_thconc_floor", "o": "t_door_c", - "p": "t_concrete_floor", + "p": "t_thconc_floor", "q": "t_sewage_pipe", "r": "t_machinery_heavy", "s": "t_linoleum_gray", @@ -55,9 +55,9 @@ "u": "t_linoleum_gray", "v": "t_linoleum_gray", "w": "t_linoleum_gray", - "x": "t_concrete_floor", - "y": "t_concrete_floor", - "A": "t_concrete_floor", + "x": "t_thconc_floor", + "y": "t_thconc_floor", + "A": "t_thconc_floor", "z": "t_metal_floor", "B": "t_stairs_up" }, diff --git a/data/mods/Fuji_Structures/worldgen/gas/s_gas_g0.json b/data/mods/Fuji_Structures/worldgen/gas/s_gas_g0.json index 7514de1e75b93..cbad333927a9f 100644 --- a/data/mods/Fuji_Structures/worldgen/gas/s_gas_g0.json +++ b/data/mods/Fuji_Structures/worldgen/gas/s_gas_g0.json @@ -38,7 +38,7 @@ "d": "t_wall", "e": "t_shrub", "f": [ "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_shrub", "t_grass", "t_grass", "t_grass", "t_grass", "t_grass" ], - "g": "t_concrete_floor" + "g": "t_thconc_floor" }, "furniture": { }, "place_loot": [ { "group": "road", "chance": 60, "repeat": [ 10 ], "x": [ 1, 22 ], "y": [ 1, 20 ] } ] diff --git a/data/mods/Fuji_Structures/worldgen/gas/s_gas_g1.json b/data/mods/Fuji_Structures/worldgen/gas/s_gas_g1.json index 8bd929a465a87..7d8bd857da096 100644 --- a/data/mods/Fuji_Structures/worldgen/gas/s_gas_g1.json +++ b/data/mods/Fuji_Structures/worldgen/gas/s_gas_g1.json @@ -43,7 +43,7 @@ "j": "t_door_metal_pickable", "k": "t_metal_floor", "l": "t_dirtfloor", - "m": "t_concrete_floor", + "m": "t_thconc_floor", "f": "t_reinforced_glass", "n": "t_water_pump", "o": "t_sewage_pipe", @@ -52,7 +52,7 @@ "r": "t_linoleum_gray", "s": "t_linoleum_gray", "t": "t_linoleum_gray", - "u": "t_concrete_floor", + "u": "t_thconc_floor", "v": "t_linoleum_gray", "w": "t_linoleum_gray", "x": "t_linoleum_gray", diff --git a/data/mods/Fuji_Structures/worldgen/houses/_house_template.json b/data/mods/Fuji_Structures/worldgen/houses/_house_template.json deleted file mode 100644 index 3d259f80b688c..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/_house_template.json +++ /dev/null @@ -1,105 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "_house_template" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window", - "d": "t_grass", - "e": "t_sidewalk", - "f": "t_tree_apple", - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": "t_shrub_strawberry", - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "k": "f_toilet", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair" - }, - "place_loot": [ ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house33.json b/data/mods/Fuji_Structures/worldgen/houses/house33.json deleted file mode 100644 index 9293973e645b4..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house33.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_33" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "ddQDDDDDdddddDDDdddddddd", - "daaPPPPaazzzaDDDazzzaddd", - "daQDDDDDaDDDDDDDDDDDaddd", - "daDDDDDDaDDDDDDDDDDDDddd", - "daDDDDDDaaccaabaaccaaddd", - "daDDDDDDa a aH Haddd", - "daDDDDDDa qq aH Haddd", - "davDDDDDa pp aaabaaddd", - "davDDDDDa pp akhhladdd", - "daaaaabaa qq aaahladdd", - "ddappp sa a b ahjcddd", - "ddc aa aa aRahjaddd", - "ddaIJ uu aaabaaddd", - "ddaaaaaaa auu Haddd", - "ddaR akhb b cddd", - "ddaR ajha a addd", - "ddaabaaaar pp pa paddd", - "ddamhhnNN ta GGaddd", - "ddcjhhhhh taH GGaddd", - "ddammihhh a paddd", - "ddaacabaaAttttpaaccaaddd", - "ddddeeeeaaccccaadddddddd", - "ddddeeeedddddddddddddddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_chainfence_h", - "F": "t_chaingate_l", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_concrete_floor", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_locker" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 19, 19 ], "y": [ 13, 13 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 16, 16 ], "y": [ 18, 18 ] }, - { "group": "novels", "chance": 80, "repeat": [ 1 ], "x": [ 19, 19 ], "y": [ 16, 16 ] }, - { "group": "homebooks", "chance": 70, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 13, 13 ] }, - { "group": "homebooks", "chance": 70, "repeat": [ 2 ], "x": [ 17, 17 ], "y": [ 13, 13 ] }, - { "group": "homebooks", "chance": 70, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 12, 12 ] }, - { "group": "homebooks", "chance": 70, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 12, 12 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 16, 16 ], "y": [ 11, 11 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 16, 16 ], "y": [ 5, 6 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 19, 19 ], "y": [ 5, 6 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 19, 19 ], "y": [ 11, 11 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 15, 15 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 8, 8 ] }, - { "group": "tools_home", "chance": 60, "repeat": [ 4 ], "x": [ 2, 2 ], "y": [ 7, 7 ] }, - { "group": "cleaning", "chance": 70, "repeat": [ 3 ], "x": [ 3, 5 ], "y": [ 10, 10 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 12, 12 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 12, 12 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 19, 19 ], "y": [ 10, 10 ] }, - { "group": "pantry", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 14, 14 ] }, - { "group": "pantry", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 15, 15 ] }, - { "group": "kitchen", "chance": 60, "repeat": [ 2 ], "x": [ 7, 8 ], "y": [ 17, 17 ] }, - { "group": "kitchen", "chance": 60, "repeat": [ 2 ], "x": [ 3, 4 ], "y": [ 19, 19 ] }, - { "group": "kitchen", "chance": 60, "repeat": [ 1 ], "x": [ 3, 3 ], "y": [ 17, 17 ] }, - { "group": "kitchen_nonfood", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 18, 18 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 5, 5 ], "y": [ 19, 19 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 9, 9 ], "y": [ 16, 16 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 16, 16 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 16, 16 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 20, 20 ] }, - { "group": "a_television", "chance": 100, "repeat": [ 1 ], "x": [ 11, 11 ], "y": [ 16, 16 ] }, - { "group": "dining", "chance": 80, "repeat": [ 4 ], "x": [ 10, 11 ], "y": [ 7, 8 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 18, 19 ], "y": [ 17, 18 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 17, 18 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 4 ], "x": [ 13, 10 ], "y": [ 20, 20 ] }, - { "group": "fridge", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 17, 17 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 16, 19 ], "y": [ 19, 14 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 9, 14 ], "y": [ 12, 20 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 9, 12 ], "y": [ 10, 5 ] }, - { "group": "mechanics", "chance": 60, "repeat": [ 2 ], "x": [ 7, 3 ], "y": [ 2, 8 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house34.json b/data/mods/Fuji_Structures/worldgen/houses/house34.json deleted file mode 100644 index 627f3173f0ebe..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house34.json +++ /dev/null @@ -1,150 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_34" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "ddddddddddeeeddddddddddd", - "dddddfddddeeeddddddddddd", - "dddddddddacbcaaccaaaaddd", - "ddaacaacaaA Aa pp addd", - "ddap HHa t addd", - "ddaGG a t addd", - "ddcGG a a tttp addd", - "ddap uu a addd", - "ddaabaaaba paddd", - "ddaH aOh auu paddd", - "ddaaaaJh aaaa aaddd", - "ddaH aIh aabavNvhhhmaddd", - "ddaabaaabajhavNvhhhmaddd", - "dda akhahhhhhhmcddd", - "ddc GG Hallanhhijmmaddd", - "ddapGGp Haacaabaacaaaddd", - "ddaaaacaaaDDDDDDDDDDzddd", - "dddddddddzDDDDDDDDDDzddd", - "dddddddddazzazDzzazzaddd", - "dddddddddddddddddddddddd", - "ddddfddddddddddddddddddd", - "dddddddfdddddddddddddddd", - "dddddddddddddddddfdddddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 9, 9 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 9, 9 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 7, 7 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 3 ], "x": [ 7, 7 ], "y": [ 7, 7 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 3 ], "x": [ 8, 8 ], "y": [ 14, 15 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 3 ], "x": [ 7, 8 ], "y": [ 4, 4 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 3 ], "x": [ 3, 3 ], "y": [ 9, 9 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 3 ], "x": [ 3, 3 ], "y": [ 11, 11 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 4, 4 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 7, 7 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 15, 15 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 15, 15 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 4, 5 ], "y": [ 14, 15 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 3, 4 ], "y": [ 5, 6 ] }, - { "group": "a_television", "chance": 100, "repeat": [ 1 ], "x": [ 16, 16 ], "y": [ 3, 3 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 18, 18 ], "y": [ 6, 6 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 19, 19 ], "y": [ 8, 9 ] }, - { "group": "dining", "chance": 80, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 11, 12 ] }, - { "group": "kitchen", "chance": 60, "repeat": [ 4 ], "x": [ 19, 19 ], "y": [ 11, 14 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 14, 14 ] }, - { "group": "cleaning", "chance": 80, "repeat": [ 2 ], "x": [ 17, 17 ], "y": [ 14, 14 ] }, - { "group": "fridge", "chance": 80, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 14, 14 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 12, 12 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 3 ], "x": [ 6, 6 ], "y": [ 10, 11 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 9, 9 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 15, 17 ], "y": [ 6, 6 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 18, 18 ], "y": [ 5, 4 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 8, 3 ], "y": [ 7, 4 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 3, 8 ], "y": [ 13, 15 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 19, 14 ], "y": [ 3, 9 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 12, 10 ], "y": [ 9, 3 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house35.json b/data/mods/Fuji_Structures/worldgen/houses/house35.json deleted file mode 100644 index b5fc087f961c9..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house35.json +++ /dev/null @@ -1,160 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_35" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "dddddddddedddddddddddddd", - "dddddddddedddddddddddddd", - "dddaaccaaeaacaaeeeeeeeed", - "daaau pabappuaeeeeeeeed", - "daHb GGa b q beeeeeeeed", - "daaa a a aaccaaeeed", - "daHaaabaa aaaaaimjmaeeed", - "daba b pparhhhmaeeed", - "da u aaba hhhhnabaad", - "dc ajhat hhhhha ad", - "daGG akhat qpq aO cd", - "dap allat qpq aO ad", - "daaaaaaaaptt b cd", - "dakjaHasauuu a aIJad", - "dchhb aba aaa aaaaad", - "dalla a b padddd", - "daaaaba aaccaaa tcdddd", - "dauHH a b tcdddd", - "da c apttpadddd", - "dc GG b aaccaadddd", - "da pGGp a Edddddddd", - "daacaacaaEEEFEEEdddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_linoleum_gray", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "fridge", "chance": 80, "repeat": [ 4 ], "x": [ 18, 18 ], "y": [ 8, 8 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 2 ], "x": [ 18, 18 ], "y": [ 6, 7 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 6, 6 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 14, 14 ], "y": [ 7, 7 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 6, 6 ] }, - { "group": "cleaning", "chance": 80, "repeat": [ 2 ], "x": [ 17, 17 ], "y": [ 6, 6 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 4 ], "x": [ 20, 20 ], "y": [ 10, 11 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 13, 13 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 9, 9 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 8, 8 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 3, 3 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 17, 17 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 13, 13 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 13, 13 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 13, 13 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 12, 12 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 10, 11 ], "y": [ 12, 12 ] }, - { "group": "bed", "chance": 60, "repeat": [ 2 ], "x": [ 2, 3 ], "y": [ 10, 10 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 4, 5 ], "y": [ 19, 20 ] }, - { "group": "bedroom", "chance": 80, "repeat": [ 1 ], "x": [ 3, 3 ], "y": [ 20, 20 ] }, - { "group": "bedroom", "chance": 80, "repeat": [ 1 ], "x": [ 2, 2 ], "y": [ 11, 11 ] }, - { "group": "bedroom", "chance": 80, "repeat": [ 1 ], "x": [ 6, 6 ], "y": [ 20, 20 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 11, 12 ], "y": [ 7, 7 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 11, 12 ], "y": [ 3, 3 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 3, 3 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 20, 21 ], "y": [ 13, 13 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 5, 5 ], "y": [ 13, 13 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 2, 2 ], "y": [ 4, 4 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 2, 2 ], "y": [ 6, 6 ] }, - { "group": "bedroom", "chance": 80, "repeat": [ 1 ], "x": [ 7, 7 ], "y": [ 3, 3 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 18, 18 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 18, 18 ], "y": [ 18, 18 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 18, 18 ], "y": [ 15, 15 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 18, 18 ], "y": [ 16, 17 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 17, 16 ], "y": [ 18, 18 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 3, 4 ], "y": [ 17, 17 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 15, 18 ], "y": [ 15, 18 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 7, 2 ], "y": [ 17, 20 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 4 ], "x": [ 4, 7 ], "y": [ 5, 3 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 4, 2 ], "y": [ 8, 11 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 11, 9 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house36.json b/data/mods/Fuji_Structures/worldgen/houses/house36.json deleted file mode 100644 index afb588f547583..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house36.json +++ /dev/null @@ -1,147 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_36" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "ddeeeeeeddddddddeeeddddd", - "ddeeeeeeddddddddeeeddddd", - "ddeeeeeeaaccccaaeeeddddd", - "ddeeeeeeau Aaabaccaad", - "ddeeeeeec Hap App ad", - "ddeeeeeea Hap ad", - "ddeeeeeea GG ap tad", - "ddeeeeeeapGGp a ttpad", - "ddeeeeeeaaaaaa a ad", - "ddQeeeeeb a au uad", - "daaPPPPaaaaa abau uad", - "daQDDDDDalla s aa aad", - "dcDDDDDDahha ad", - "daDDDDDOahhb aaaaa ad", - "daDDDDDOakja ammja qq ad", - "daDDDDDaaaaa anhh pp ad", - "daDDDDDbhhb hhh pp ad", - "dcDDDDDahhabaahhh qq ad", - "daDDDDDaIJahjahriaA ad", - "daaaaaaaacahkabacaaccaad", - "ddddddddddaacadddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_linoleum_gray", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 7, 7 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 7, 7 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 19, 20 ], "y": [ 7, 7 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 1 ], "x": [ 21, 21 ], "y": [ 6, 6 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 20, 20 ], "y": [ 4, 4 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 4, 6 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 7, 7 ] }, - { "group": "a_television", "chance": 100, "repeat": [ 1 ], "x": [ 19, 19 ], "y": [ 4, 4 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 9, 10 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 9, 10 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 14, 14 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 18, 18 ] }, - { "group": "tools_home", "chance": 80, "repeat": [ 2 ], "x": [ 7, 7 ], "y": [ 13, 13 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 2 ], "x": [ 7, 7 ], "y": [ 14, 14 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 2 ], "x": [ 8, 9 ], "y": [ 18, 18 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 4, 4 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 5, 5 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 3, 3 ] }, - { "group": "fridge", "chance": 80, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 15, 15 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 18, 18 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 15, 15 ], "y": [ 18, 18 ] }, - { "group": "kitchen_nonfood", "chance": 60, "repeat": [ 5 ], "x": [ 14, 16 ], "y": [ 14, 14 ] }, - { "group": "dining", "chance": 80, "repeat": [ 4 ], "x": [ 19, 20 ], "y": [ 15, 16 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 20, 20 ], "y": [ 8, 8 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 10, 11 ], "y": [ 6, 7 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 14, 9 ], "y": [ 7, 3 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 21, 16 ], "y": [ 4, 10 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 21, 18 ], "y": [ 12, 18 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house37.json b/data/mods/Fuji_Structures/worldgen/houses/house37.json deleted file mode 100644 index b208d1d3f4227..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house37.json +++ /dev/null @@ -1,157 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_37" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "ddQeeeeeddddddeedddddddd", - "daaPPPPaadddddeedddddddd", - "daQDDDDDaazzzaDDaacaaddd", - "daDDDDDDaDDDDDDDa addd", - "daDDDDDDaacccaabaHH addd", - "daDDDDDDau pa aaabaadd", - "daDDDDDDau GGa akahladd", - "daDDDDDDa GGa ahhhlcdd", - "daIDDDDDaH pa ahhhjadd", - "daJDaaaaaabaaaa aaabaadd", - "daabalhhb sadd", - "dda alkjaa aa aaabaadd", - "ddc aaaaa a aHb Hadd", - "dda r aHb cdd", - "dda qpq pttt aaa add", - "ddc qpq t uauu add", - "dda t ua add", - "ddaa aa ua GG cdd", - "ddamhhhNa ppp uapGGpadd", - "ddamhhhNaaccaccaaaccaadd", - "ddaihhhhbeeeeddddddddddd", - "ddammjmnaeeeeddddddddddd", - "ddaacacaaeeeeddddddddddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "dining", "chance": 80, "repeat": [ 2 ], "x": [ 5, 5 ], "y": [ 14, 15 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 11, 13 ], "y": [ 14, 14 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 15, 16 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 14, 14 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 18, 18 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 18, 18 ] }, - { "group": "a_television", "chance": 100, "repeat": [ 1 ], "x": [ 12, 12 ], "y": [ 18, 18 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 15, 17 ] }, - { "group": "textbooks", "chance": 80, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 18, 18 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 17, 18 ], "y": [ 15, 15 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 6, 5 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 9, 9 ], "y": [ 8, 8 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 17, 17 ], "y": [ 12, 12 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 17, 17 ], "y": [ 13, 13 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 20, 20 ], "y": [ 12, 12 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 17, 18 ], "y": [ 4, 4 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 7, 7 ], "y": [ 11, 11 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 20, 20 ], "y": [ 8, 8 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 2 ], "x": [ 20, 20 ], "y": [ 10, 10 ] }, - { "group": "kitchen_nonfood", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 18, 19 ] }, - { "group": "kitchen_nonfood", "chance": 60, "repeat": [ 2 ], "x": [ 3, 4 ], "y": [ 21, 21 ] }, - { "group": "kitchen_nonfood", "chance": 60, "repeat": [ 2 ], "x": [ 7, 7 ], "y": [ 18, 19 ] }, - { "group": "fridge", "chance": 60, "repeat": [ 4 ], "x": [ 7, 7 ], "y": [ 21, 21 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 5, 5 ], "y": [ 21, 21 ] }, - { "group": "cleaning", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 20, 20 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 8, 8 ], "y": [ 13, 13 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 18, 19 ], "y": [ 17, 18 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 20, 20 ], "y": [ 18, 18 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 17, 17 ], "y": [ 18, 18 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 9, 15 ], "y": [ 18, 13 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 8, 3 ], "y": [ 16, 13 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 12, 13 ], "y": [ 6, 7 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 5, 5 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 8, 8 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 12, 10 ], "y": [ 8, 5 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 20, 17 ], "y": [ 15, 18 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 1 ], "x": [ 20, 19 ], "y": [ 14, 12 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 2, 2 ], "y": [ 8, 9 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house38.json b/data/mods/Fuji_Structures/worldgen/houses/house38.json deleted file mode 100644 index f8f6ebd57298e..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house38.json +++ /dev/null @@ -1,145 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_38" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "ddddddddeeddddddQeeeeddd", - "ddddddddeedddddaaPPPPaad", - "dddaacaaeedddddaQDDDDDad", - "dddaH HaDDDaDDDaDDDDDDad", - "dddaH HaDDDDDDDaDDDDDDad", - "ddaaabaabcaaccaaDDDDDDad", - "ddallhja Aa tt aDDDDDDaa", - "ddcllhka aDDDDDDOa", - "ddallhma aDDDDDDDc", - "ddaaabaa aDDDDDDJc", - "ddaHa ua a uu aDDDDDDIa", - "ddaba b aaaaaaaabaaaaa", - "dda a qppq arhhhmad", - "ddc a qppq hhhhiad", - "dda a hhhhmad", - "ddc GG at anhmjmad", - "ddapGGpat p qaabacaad", - "ddaaccaat p paeeeeeEd", - "ddddBBdat qaeeeeeEd", - "dddddddaaccaaccaaEFEEEEd", - "dddddddddBBddBBddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_linoleum_gray", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 4, 5 ], "y": [ 15, 16 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 16, 16 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 16, 16 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 3, 3 ], "y": [ 10, 10 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 4, 4 ], "y": [ 3, 4 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 6, 6 ], "y": [ 3, 4 ] }, - { "group": "textbooks", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 10, 10 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 12, 13 ], "y": [ 10, 10 ] }, - { "group": "dining", "chance": 60, "repeat": [ 4 ], "x": [ 12, 13 ], "y": [ 12, 13 ] }, - { "group": "cleaning_bulk", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 7, 7 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 22, 22 ], "y": [ 9, 10 ] }, - { "group": "kitchen", "chance": 60, "repeat": [ 4 ], "x": [ 21, 21 ], "y": [ 14, 15 ] }, - { "group": "kitchen", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 12, 12 ] }, - { "group": "kitchen", "chance": 60, "repeat": [ 2 ], "x": [ 19, 19 ], "y": [ 15, 15 ] }, - { "group": "fridge", "chance": 60, "repeat": [ 6 ], "x": [ 17, 17 ], "y": [ 15, 15 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 8, 8 ], "y": [ 15, 18 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 12, 13 ], "y": [ 6, 6 ] }, - { "group": "cleaning", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 8, 8 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 6, 6 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 16, 17 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 17, 17 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 17, 17 ], "y": [ 12, 12 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 4 ], "x": [ 6, 3 ], "y": [ 12, 16 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 15, 8 ], "y": [ 12, 18 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 9, 8 ], "y": [ 11, 6 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 11, 14 ], "y": [ 10, 6 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house39.json b/data/mods/Fuji_Structures/worldgen/houses/house39.json deleted file mode 100644 index 4fed6ea94e086..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house39.json +++ /dev/null @@ -1,157 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_39" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "dddeeeedddddddDDDdBBBBdd", - "ddQeeeedazzzaaDDDaaccaad", - "daaPPPPaaDDDDDDDDaH ad", - "daQDDDDDaDDDDDDDDaH pad", - "daDDDDDDaaaaaacbca GGad", - "daDDDDDDa aA a GGad", - "daDDDDDDaqq pa pad", - "daDDDDDDapp pabaaaad", - "daDDDDDDaqq allad", - "daDDDDDDa au bhhcd", - "daDDDDDDaaa au ajkad", - "dawwDDDDamhhau abaaaad", - "daaaaaabaihhatt a uuad", - "dalhkaIhamhh pa ad", - "dalhjaJhajhh ta ad", - "dahhmaa ahhh ta GG ad", - "daabaaO hhha papGGHad", - "da aabavNvaaFFaaaccaad", - "daN aH acccaeeeeezddddd", - "daGG aeeeeeeeeezddddd", - "daGG beeeeeeeeezddddd", - "daN u azzzzzeezzzddddd", - "daacaacaaddddddddddddddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "w": "t_concrete_floor", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair", - "w": "f_locker" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "tools_home", "chance": 60, "repeat": [ 5 ], "x": [ 2, 2 ], "y": [ 11, 11 ] }, - { "group": "camping", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 11, 11 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 14, 14 ] }, - { "group": "cleaning", "chance": 80, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 15, 15 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 16, 16 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 6, 6 ], "y": [ 13, 13 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 6, 6 ], "y": [ 14, 14 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 6, 6 ], "y": [ 18, 18 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 21, 21 ], "y": [ 16, 16 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 18, 18 ], "y": [ 3, 3 ] }, - { "group": "dresser", "chance": 80, "repeat": [ 4 ], "x": [ 18, 18 ], "y": [ 2, 2 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 20, 21 ], "y": [ 4, 5 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 19, 20 ], "y": [ 15, 16 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 2, 3 ], "y": [ 19, 20 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 6, 6 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 3, 3 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 18, 18 ], "y": [ 16, 16 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 21, 21 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 18, 18 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 5, 5 ], "y": [ 21, 21 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 20, 21 ], "y": [ 12, 12 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 4 ], "x": [ 13, 13 ], "y": [ 11, 10 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 9, 9 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 14, 15 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 6, 7 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 13, 13 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 16, 16 ] }, - { "group": "dining", "chance": 80, "repeat": [ 2 ], "x": [ 9, 10 ], "y": [ 7, 7 ] }, - { "group": "dining", "chance": 80, "repeat": [ 1 ], "x": [ 10, 10 ], "y": [ 17, 17 ] }, - { "group": "softdrugs", "chance": 80, "repeat": [ 2 ], "x": [ 20, 20 ], "y": [ 10, 10 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 13, 14 ], "y": [ 12, 12 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 13, 16 ], "y": [ 16, 5 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 11, 9 ], "y": [ 5, 9 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 7, 2 ], "y": [ 21, 19 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 18, 21 ], "y": [ 6, 2 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 1 ], "x": [ 4, 2 ], "y": [ 18, 17 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house40.json b/data/mods/Fuji_Structures/worldgen/houses/house40.json deleted file mode 100644 index a6ab3680ec038..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house40.json +++ /dev/null @@ -1,165 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_40" ], - "object": { - "fill_ter": "t_floor_waxed", - "rows": [ - "dddddddddddeeedddddddddd", - "dddddddddddeeedaaEaEaEaa", - "daaaaaaaaaaaxaaallaA pa", - "dadddddddddeeedahka GGa", - "daddyddddddeeedahja GGa", - "dadddddddddeeedabaa pa", - "aaaaaaBBBddeeeda E", - "akhhwaaEaaaEbEaabaaaaHHa", - "EhhhaaOhhJaA pa aHHaaaa", - "allhjaOhhIa pa b pa", - "aaabaaabaaaE Ea a GGE", - "au b a GGE", - "E aababaaaaaaa a a", - "a ajha Rammnna aaaaaaa", - "E akha Raihhhm uusa", - "aH aaaaaaamhhhm qq E", - "aH GGpaHHajhhhh pp p E", - "E GG ajhhhh pp pq E", - "E amhhhr qq p Aa", - "E aaEEaa aEEa", - "aAtttAaHHaeeeeE Eddd", - "aaEEEaaaaaeeeeF ttt Eddd", - "ddddddddddeeeeE Eddd", - "ddddddddddeeeeaEEEEEaddd" - ], - "terrain": { - "a": "t_brick_wall", - "b": "t_door_locked", - "c": "t_window", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor_waxed", - "q": "t_floor_waxed", - "r": "t_linoleum_gray", - "s": "t_floor_waxed", - "t": "t_floor_waxed", - "u": "t_floor_waxed", - "A": "t_floor_waxed", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor_waxed", - "H": "t_floor_waxed_y", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "w": "t_linoleum_gray", - "x": "t_chaingate_l", - "y": "t_tree_cherry", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair", - "w": "f_shower" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "tools_home", "chance": 60, "repeat": [ 4 ], "x": [ 6, 6 ], "y": [ 8, 8 ] }, - { "group": "cleaning_bulk", "chance": 60, "repeat": [ 4 ], "x": [ 6, 6 ], "y": [ 9, 9 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 9, 9 ], "y": [ 8, 9 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 7, 7 ], "y": [ 16, 16 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 16, 16 ] }, - { "group": "dresser_fancy", "chance": 60, "repeat": [ 4 ], "x": [ 7, 7 ], "y": [ 20, 20 ] }, - { "group": "dresser_fancy", "chance": 60, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 20, 20 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 3, 4 ], "y": [ 16, 17 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 1, 1 ], "y": [ 16, 16 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 1, 1 ], "y": [ 15, 15 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 18, 19 ], "y": [ 8, 8 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 21, 22 ], "y": [ 7, 7 ] }, - { "group": "mansion_bookcase", "chance": 60, "repeat": [ 4 ], "x": [ 1, 1 ], "y": [ 11, 11 ] }, - { "group": "mansion_bookcase", "chance": 60, "repeat": [ 4 ], "x": [ 20, 21 ], "y": [ 14, 14 ] }, - { "group": "softdrugs", "chance": 60, "repeat": [ 3 ], "x": [ 4, 4 ], "y": [ 9, 9 ] }, - { "group": "softdrugs", "chance": 60, "repeat": [ 3 ], "x": [ 4, 4 ], "y": [ 13, 13 ] }, - { "group": "pantry", "chance": 60, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 13, 14 ] }, - { "group": "fridge", "chance": 60, "repeat": [ 8 ], "x": [ 12, 13 ], "y": [ 13, 13 ] }, - { "group": "kitchen_nonfood", "chance": 80, "repeat": [ 2 ], "x": [ 11, 10 ], "y": [ 13, 13 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 1 ], "x": [ 10, 10 ], "y": [ 15, 15 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 1 ], "x": [ 10, 10 ], "y": [ 18, 18 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 14, 14 ] }, - { "group": "kitchen_nonfood", "chance": 80, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 16, 17 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 14, 15 ] }, - { "group": "trash", "chance": 80, "repeat": [ 4 ], "x": [ 14, 14 ], "y": [ 18, 18 ] }, - { "group": "dining", "chance": 80, "repeat": [ 4 ], "x": [ 16, 17 ], "y": [ 16, 17 ] }, - { "group": "office", "chance": 60, "repeat": [ 3 ], "x": [ 20, 20 ], "y": [ 16, 18 ] }, - { "group": "office", "chance": 60, "repeat": [ 4 ], "x": [ 22, 22 ], "y": [ 14, 14 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 5, 5 ], "y": [ 16, 16 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 5, 5 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 2, 2 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 16, 18 ], "y": [ 21, 21 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 2, 4 ], "y": [ 20, 20 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 8, 9 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 21, 22 ], "y": [ 3, 4 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 21, 22 ], "y": [ 10, 11 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 9, 9 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 4 ], "x": [ 1, 8 ], "y": [ 20, 16 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 2, 1 ], "y": [ 11, 15 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 19, 22 ], "y": [ 2, 6 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 19, 15 ], "y": [ 14, 22 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 18, 22 ], "y": [ 9, 12 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house41.json b/data/mods/Fuji_Structures/worldgen/houses/house41.json deleted file mode 100644 index 9dc0f1264f0dc..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house41.json +++ /dev/null @@ -1,155 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_41" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "dddddddeeeeedeeeeedddedd", - "dddddddeeeeedeeeeedddddd", - "dddddddeeeeedeeeeedddddd", - "dddddddeeeeedeeeeeddfddd", - "dddddddeeeeedeeeeedddddd", - "dddddddeeeeedeeeeedddddd", - "daacaadeeeeedeeeeeeedddd", - "dapGpadeeeeedeeeeeBedddd", - "da G aabacaadaacaaBedddd", - "dc aA p ada uaabcaad", - "daHH b cdcp aA Aad", - "daaaaa tttadaGG a pcd", - "dclhhb cdaGG a tad", - "dalkja puuadc b tad", - "daaaaa aaaadaHH a tad", - "damhh qaddddaaaaa cd", - "daihh pcddeeeaIJh uad", - "dcjhh qaddeeebhhhaabaad", - "damnhahhaddeeeamhnajhlad", - "daaabaIJaddeeecihhakhlad", - "dddddaaaaddeeeammjaacaad", - "ddddddddddddddaacaaddddd", - "ddddddddddfddddddddddddd", - "ddfddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 7, 7 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 7, 7 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 10, 10 ] }, - { "group": "bed", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 7, 8 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 14, 15 ], "y": [ 11, 12 ] }, - { "group": "softdrugs", "chance": 60, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 13, 13 ] }, - { "group": "softdrugs", "chance": 60, "repeat": [ 2 ], "x": [ 19, 19 ], "y": [ 18, 18 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 14, 15 ], "y": [ 14, 14 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 2, 3 ], "y": [ 10, 10 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 15, 16 ], "y": [ 16, 16 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 6, 7 ], "y": [ 19, 19 ] }, - { "group": "dining", "chance": 80, "repeat": [ 1 ], "x": [ 7, 7 ], "y": [ 16, 16 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 1 ], "x": [ 2, 2 ], "y": [ 15, 15 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 1 ], "x": [ 2, 2 ], "y": [ 18, 18 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 1 ], "x": [ 15, 15 ], "y": [ 18, 18 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 1 ], "x": [ 15, 15 ], "y": [ 20, 20 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 1 ], "x": [ 16, 16 ], "y": [ 20, 20 ] }, - { "group": "kitchen_nonfood", "chance": 80, "repeat": [ 2 ], "x": [ 17, 17 ], "y": [ 20, 20 ] }, - { "group": "kitchen_nonfood", "chance": 80, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 17, 17 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 16, 16 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 19, 19 ] }, - { "group": "fridge", "chance": 80, "repeat": [ 4 ], "x": [ 3, 3 ], "y": [ 18, 18 ] }, - { "group": "fridge", "chance": 80, "repeat": [ 4 ], "x": [ 17, 17 ], "y": [ 18, 18 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 4 ], "x": [ 9, 10 ], "y": [ 13, 13 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 9, 9 ] }, - { "group": "homebooks", "chance": 80, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 16, 16 ] }, - { "group": "livingroom", "chance": 80, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 12, 14 ] }, - { "group": "livingroom", "chance": 80, "repeat": [ 2 ], "x": [ 8, 10 ], "y": [ 11, 11 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 11, 11 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 8, 8 ], "y": [ 13, 13 ] }, - { "group": "a_television", "chance": 100, "repeat": [ 1 ], "x": [ 9, 9 ], "y": [ 9, 9 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 18, 21 ], "y": [ 16, 10 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 4 ], "x": [ 6, 10 ], "y": [ 9, 13 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 1 ], "x": [ 6, 7 ], "y": [ 14, 17 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 4, 2 ], "y": [ 10, 7 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 16, 14 ], "y": [ 14, 9 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/houses/house42.json b/data/mods/Fuji_Structures/worldgen/houses/house42.json deleted file mode 100644 index a63f86cd4259c..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/houses/house42.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "house_42" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "ddddddddddddeedddddddddd", - "ddddddddddddeeddddfddddd", - "ddaaccaacaadeedddddddddd", - "ddau b Hadeedddddddddd", - "ddc b Hadeedaaccccaad", - "dda aaaaacbaaA NN ad", - "dda GG as pp Aa tcd", - "ddapGG b tad", - "ddaaaaaa tttpad", - "ddclkja tt cd", - "ddalhhb a uuuad", - "ddaaaaahhhaaFFaa aaaaad", - "ddamhNNhvvaeeeea b HHad", - "ddcjhhhhNNaeeeeaaba cd", - "ddamhhhhvvaeeeeajha pad", - "ddamminhhraeeeeckha GGcd", - "ddaacaaahaaeeeealla ad", - "ddddddaIhNaeeeeaaaaacaad", - "ddddddaJhNaddddddddddddd", - "ddddddaabaaddddddddddddd", - "dddfdddddddddddddddfdddd", - "dddddddddddddddddddddddd", - "dddddddddddddfdddddfdddd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_brick_wall", - "b": "t_door_locked", - "c": "t_window_domestic", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": [ - "t_tree", - "t_tree_pine", - "t_tree_pear", - "t_tree_plum", - "t_tree_cherry", - "t_tree_maple", - "t_tree_birch", - "t_tree_apple", - "t_tree_willow", - "t_tree_hickory", - "t_tree_young" - ], - "g": "t_sidewalk", - "h": "t_linoleum_gray", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "A": "t_floor", - "B": [ "t_shrub", "t_shrub", "t_shrub_strawberry", "t_shrub_blueberry" ], - "C": "t_fence_v", - "D": "t_concrete_floor", - "E": "t_wall_glass", - "F": "t_door_glass_c", - "G": "t_floor", - "H": "t_floor", - "I": "t_linoleum_gray", - "J": "t_linoleum_gray", - "K": "t_rock_floor", - "L": "t_rock_floor", - "M": "t_rock", - "N": "t_linoleum_gray", - "O": "t_linoleum_gray", - "P": "t_door_metal_locked", - "Q": "t_gates_mech_control", - "R": "t_linoleum_gray", - "v": "t_linoleum_gray", - "z": "t_railing_h" - }, - "furniture": { - "g": "f_dumpster", - "i": "f_oven", - "j": "f_sink", - "l": "f_bathtub", - "m": "f_counter", - "n": "f_fridge", - "o": "f_cupboard", - "p": "f_table", - "q": "f_chair", - "r": "f_trashcan", - "s": "f_locker", - "t": "f_sofa", - "u": "f_bookcase", - "A": "f_indoor_plant", - "G": "f_bed", - "H": "f_dresser", - "I": "f_washer", - "J": "f_dryer", - "K": "f_fireplace", - "N": "f_table", - "O": "f_locker", - "R": "f_rack", - "v": "f_chair" - }, - "toilets": { "k": { } }, - "place_loot": [ - { "group": "a_television", "chance": 100, "repeat": [ 1 ], "x": [ 19, 19 ], "y": [ 5, 5 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 6, 7 ] }, - { "group": "livingroom", "chance": 30, "repeat": [ 2 ], "x": [ 20, 18 ], "y": [ 8, 8 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 8, 8 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 18, 18 ], "y": [ 5, 5 ] }, - { "group": "table_livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 10, 11 ], "y": [ 6, 6 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 12, 13 ], "y": [ 9, 9 ] }, - { "group": "cleaning_bulk", "chance": 60, "repeat": [ 2 ], "x": [ 8, 8 ], "y": [ 6, 6 ] }, - { "group": "cleaning", "chance": 60, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 17, 18 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 7, 7 ], "y": [ 17, 18 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 9, 9 ], "y": [ 3, 4 ] }, - { "group": "dresser", "chance": 60, "repeat": [ 4 ], "x": [ 20, 21 ], "y": [ 12, 12 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 19, 19 ], "y": [ 10, 10 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 20, 20 ], "y": [ 10, 10 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 10, 10 ] }, - { "group": "homebooks", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 3, 3 ] }, - { "group": "kitchen", "chance": 60, "repeat": [ 2 ], "x": [ 5, 6 ], "y": [ 12, 12 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 12, 12 ] }, - { "group": "kitchen_nonfood", "chance": 60, "repeat": [ 4 ], "x": [ 3, 3 ], "y": [ 14, 15 ] }, - { "group": "kitchen_nonfood", "chance": 60, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 15, 15 ] }, - { "group": "oven", "chance": 80, "repeat": [ 2 ], "x": [ 5, 5 ], "y": [ 15, 15 ] }, - { "group": "cleaning", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 13, 13 ] }, - { "group": "softdrugs", "chance": 60, "repeat": [ 2 ], "x": [ 5, 5 ], "y": [ 9, 9 ] }, - { "group": "softdrugs", "chance": 60, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 14, 14 ] }, - { "group": "bed", "chance": 60, "repeat": [ 1 ], "x": [ 20, 21 ], "y": [ 15, 15 ] }, - { "group": "bed", "chance": 60, "repeat": [ 4 ], "x": [ 4, 5 ], "y": [ 6, 7 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 3, 3 ], "y": [ 7, 7 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 14, 14 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 14, 8 ], "y": [ 10, 7 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 2 ], "x": [ 16, 21 ], "y": [ 6, 9 ] }, - { "group": "livingroom", "chance": 60, "repeat": [ 1 ], "x": [ 16, 17 ], "y": [ 10, 12 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 19, 21 ], "y": [ 12, 16 ] }, - { "group": "bedroom", "chance": 60, "repeat": [ 2 ], "x": [ 6, 3 ], "y": [ 3, 7 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_00.json b/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_00.json deleted file mode 100644 index 78a65671bc674..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_00.json +++ /dev/null @@ -1,132 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_lightindustry_00" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "fcccceccccecccceccccffff", - "fcccceccccecccceccccfhhf", - "fcccceccccecccceccccfhhf", - "fcccceccccecccceccccfhhf", - "fcccceccccecccceccccfhhf", - "fcccceccccecccceccccffff", - "ffffffffffffffffffffffff", - "daabaaabaaabaadddfffdddf", - "darruatsrar tadddfffdddf", - "da s a rars adddfffdddf", - "aa ahhabgbahhf", - "ar aaaavvyaaaa", - "brs a s a ua uavvvwwxa", - "ar arrua uasrbvvvvvwa", - "aaa aaaaa ua ravvvvvwa", - "arr atsra uagaavvvvvvg", - "ats a ra a zzvvvvvva", - "br g aaaaa", - "ars g aoija", - "aaagaat aaaaaaa giika", - "arr at amnlkna aaaaa", - "b s ua giiiiig giika", - "a uao aqpqioa aoija", - "aaabaaagaaaabaaaaaaaabaa" - ], - "terrain": { - "a": "t_wall", - "b": "t_window", - "c": "t_pavement", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_pavement_y", - "f": "t_sidewalk", - "g": "t_door_c", - "h": "t_shrub", - "i": "t_linoleum_gray", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_linoleum_gray", - "p": "t_linoleum_gray", - "q": "t_linoleum_gray", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "v": "t_carpet_green", - "w": "t_carpet_green", - "x": "t_carpet_green", - "y": "t_carpet_green", - "z": "t_floor" - }, - "furniture": { - "k": "f_sink", - "l": "f_oven", - "m": "f_fridge", - "n": "f_counter", - "o": "f_trashcan", - "p": "f_table", - "q": "f_chair", - "r": "f_table", - "s": "f_chair", - "t": "f_locker", - "u": "f_bookcase", - "w": "f_sofa", - "x": "f_table", - "y": "f_trashcan", - "z": "f_vending_c" - }, - "toilets": { "j": { } }, - "place_loot": [ - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 2, 3 ], "y": [ 8, 8 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 8, 8 ], "y": [ 8, 9 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 8, 9 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 6, 7 ], "y": [ 13, 13 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 8, 8 ], "y": [ 15, 16 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 1, 1 ], "y": [ 18, 17 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 1, 2 ], "y": [ 15, 15 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 1, 1 ], "y": [ 13, 11 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 1, 2 ], "y": [ 20, 20 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 14, 13 ] }, - { "group": "magazines", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 12, 12 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 19, 19 ], "y": [ 11, 11 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 6, 6 ], "y": [ 22, 22 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 14, 14 ], "y": [ 22, 22 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 20, 20 ], "y": [ 18, 18 ] }, - { "group": "trash", "chance": 60, "repeat": [ 5 ], "x": [ 20, 20 ], "y": [ 22, 22 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 15, 15 ], "y": [ 12, 12 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 15, 15 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 14, 14 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 13, 13 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 12, 12 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 8, 8 ], "y": [ 13, 13 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 8, 8 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 21, 21 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 22, 22 ] }, - { "group": "cleaning_bulk", "chance": 60, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 19, 19 ] }, - { "group": "cleaning_bulk", "chance": 60, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 20, 20 ] }, - { "group": "oven", "chance": 60, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 20, 20 ] }, - { "group": "kitchen_nonfood", "chance": 60, "repeat": [ 4 ], "x": [ 13, 13 ], "y": [ 20, 20 ] }, - { "group": "fridge", "chance": 60, "repeat": [ 5 ], "x": [ 10, 10 ], "y": [ 20, 20 ] }, - { "group": "office", "chance": 60, "repeat": [ 4 ], "x": [ 6, 6 ], "y": [ 15, 15 ] }, - { "group": "office", "chance": 60, "repeat": [ 4 ], "x": [ 12, 12 ], "y": [ 8, 8 ] }, - { "group": "office", "chance": 60, "repeat": [ 4 ], "x": [ 6, 6 ], "y": [ 8, 8 ] }, - { "group": "office", "chance": 60, "repeat": [ 4 ], "x": [ 1, 1 ], "y": [ 16, 16 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 6, 8 ], "y": [ 12, 12 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 6, 7 ], "y": [ 9, 9 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 12, 11 ], "y": [ 9, 8 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 4, 2 ], "y": [ 9, 9 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 11, 13 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 3, 12 ], "y": [ 10, 11 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 10, 11 ], "y": [ 12, 16 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 12, 3 ], "y": [ 17, 18 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 3, 4 ], "y": [ 16, 12 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 1, 3 ], "y": [ 22, 21 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 14, 12 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 22, 22 ] }, - { "group": "vending_food", "chance": 80, "repeat": [ 1 ], "x": [ 15, 15 ], "y": [ 16, 16 ] }, - { "group": "vending_drink", "chance": 80, "repeat": [ 1 ], "x": [ 16, 16 ], "y": [ 16, 16 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_01.json b/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_01.json deleted file mode 100644 index e375deb951eda..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_01.json +++ /dev/null @@ -1,103 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_lightindustry_01" ], - "object": { - "fill_ter": "t_concrete_floor", - "rows": [ - " khhhhhhhhhhklllllllll", - "lllkhhhhhhhhhhklllllllll", - "lllkhhhhhhhhhhklllllllll", - "lllkhhhhhhhhhhklllllllll", - "lllkhhhhhhhhhhklllllllll", - "lllkhhhhhhhhhhkmmmlmmmll", - "lllkhhhhhhhhhhaafaaafaal", - "lll hhhhhhhhhhazzzaDAzal", - "kkkkhchhhhhhhhaiAiaiizal", - "lllaaabbbbbagaaiiiiiiiaa", - "mmma cu u aiiiiiiiEa", - "afaa u u fiAAAAiiAf", - "CCC u u aizzzzizza", - "CC u u fiAAAAiaaa", - " u u aiiiiiiiza", - " uuuuu giiiiiiAzf", - " wy aiiiiiiiEa", - "deda rs aBiDiaagaa", - "o oa waagaiaiiza", - "o oa wq qajjaiaiAza", - "o oa tx apnaiaiiza", - "o oa wq vaaaagaafaa", - "o oa valkkkkklll", - "afaaaafaaaafaaalkkkkklll" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_metal_locked", - "c": "t_gates_mech_control", - "d": "t_chainfence_h", - "e": "t_chaingate_l", - "f": "t_window", - "g": "t_door_c", - "h": "t_pavement", - "i": "t_floor", - "j": "t_linoleum_gray", - "k": "t_sidewalk", - "l": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "m": "t_shrub", - "o": "t_concrete_floor", - "q": "t_ind_press", - "r": "t_ind_mixer", - "s": "t_ind_furnace", - "t": "t_ind_drill", - "u": "t_metal_floor", - "v": "t_machinery_old", - "w": "t_machinery_electronic", - "x": "t_machinery_light", - "y": "t_machinery_heavy", - "n": "t_linoleum_gray", - "p": "t_linoleum_gray", - "z": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_concrete_floor", - "D": "t_floor", - "E": "t_floor" - }, - "furniture": { - "o": "f_rack", - "p": "f_sink", - "z": "f_table", - "A": "f_chair", - "B": "f_trashcan", - "C": "f_crate_c", - "D": "f_locker", - "E": "f_bookcase" - }, - "toilets": { "n": { } }, - "place_loot": [ - { "group": "vehicle_scrapped", "chance": 60, "repeat": [ 10 ], "x": [ 5, 12 ], "y": [ 11, 21 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 7, 8 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 15, 17 ], "y": [ 7, 7 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 21, 22 ], "y": [ 12, 12 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 14, 15 ] }, - { "group": "office", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 18, 20 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 16, 16 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 10, 10 ] }, - { "group": "cleaning_bulk", "chance": 60, "repeat": [ 2 ], "x": [ 17, 17 ], "y": [ 17, 17 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 5 ], "x": [ 15, 20 ], "y": [ 16, 9 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 2 ], "x": [ 20, 21 ], "y": [ 18, 20 ] }, - { "group": "tools_blacksmith", "chance": 60, "repeat": [ 4 ], "x": [ 2, 2 ], "y": [ 22, 20 ] }, - { "group": "tools_mechanic", "chance": 60, "repeat": [ 2 ], "x": [ 2, 2 ], "y": [ 18, 19 ] }, - { "group": "tools_home", "chance": 60, "repeat": [ 4 ], "x": [ 0, 0 ], "y": [ 18, 20 ] }, - { "group": "power_tools", "chance": 60, "repeat": [ 3 ], "x": [ 0, 0 ], "y": [ 21, 22 ] }, - { "group": "vehicle_scrapped", "chance": 60, "repeat": [ 3 ], "x": [ 0, 0 ], "y": [ 12, 12 ] }, - { "group": "vehicle_scrapped", "chance": 60, "repeat": [ 3 ], "x": [ 1, 1 ], "y": [ 12, 12 ] }, - { "group": "vehicle_scrapped", "chance": 60, "repeat": [ 3 ], "x": [ 2, 2 ], "y": [ 12, 12 ] }, - { "group": "tools_construction", "chance": 60, "repeat": [ 3 ], "x": [ 0, 0 ], "y": [ 13, 13 ] }, - { "group": "tools_construction", "chance": 60, "repeat": [ 3 ], "x": [ 1, 1 ], "y": [ 13, 13 ] } - ], - "place_vehicles": [ { "vehicle": "cube_van", "x": [ 7, 7 ], "y": [ 2, 2 ], "chance": 80, "rotation": 270 } ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_10.json b/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_10.json deleted file mode 100644 index c8f548aabf656..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_10.json +++ /dev/null @@ -1,118 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_lightindustry_10" ], - "object": { - "fill_ter": "t_linoleum_gray", - "rows": [ - "hhhhhhhhhhhhhhhhhhhhhhhh", - "hhhhhhhhhhhhhhhhhhhhhhhh", - "aggggaggggaggggaggagggga", - "aabbaaabbaaabbaabbaaaaaa", - "aotovajjjmamjjjaqqqparsa", - "aoppob l l boooqa a", - "aoooob bppoqam a", - "auooobj ljl c aaia", - "auoombjl j pb ww a", - "aaacaax mam lpb i", - "i ua x a", - "abbcbabbcbabbcbaccabbcba", - "a am nan a aj a", - "ajj naj ljam lja bjl na", - "a l majl jam jja aj ma", - "aabbaaabbaaabbaaccaabbaa", - "aggggaggggaggggaeeagggga", - "eeeeeeeeeeeeeeeeeeeeeeee", - "eddddfddddfddddfddddfege", - "eddddfddddfddddfddddfege", - "eddddfddddfddddfddddfege", - "eddddfddddfddddfddddfege", - "eddddfddddfddddfddddfege", - "eddddfddddfddddfddddfeee" - ], - "terrain": { - "a": "t_brick_wall", - "b": "t_wall_glass", - "c": "t_door_glass_c", - "d": "t_pavement", - "e": "t_sidewalk", - "f": "t_pavement_y", - "g": "t_shrub", - "h": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "i": "t_door_c", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_linoleum_gray", - "m": "t_linoleum_gray", - "n": "t_linoleum_gray", - "o": "t_carpet_red", - "p": "t_carpet_red", - "q": "t_carpet_red", - "r": "t_linoleum_gray", - "s": "t_carpet_red", - "t": "t_carpet_red", - "u": "t_carpet_red", - "v": "t_carpet_red", - "w": "t_linoleum_gray", - "x": "t_linoleum_gray" - }, - "furniture": { - "j": "f_table", - "k": "f_sofa", - "l": "f_chair", - "m": "f_locker", - "n": "f_bookcase", - "p": "f_table", - "q": "f_sofa", - "s": "f_sink", - "t": "f_chair", - "u": "f_bookcase", - "v": "f_safe_l", - "w": "f_vending_c", - "x": "f_trashcan" - }, - "toilets": { "r": { } }, - "place_loot": [ - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 8, 9 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 7, 8 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 7, 8 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 6, 8 ], "y": [ 4, 4 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 12, 14 ], "y": [ 4, 4 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 4, 4 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 4, 4 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 9, 9 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 9, 9 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 8, 8 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 14, 14 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 6, 6 ], "y": [ 12, 12 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 13, 14 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 13, 14 ], "y": [ 14, 14 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 13, 13 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 19, 19 ], "y": [ 14, 12 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 22, 22 ], "y": [ 14, 14 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 2, 1 ], "y": [ 13, 13 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 1, 1 ], "y": [ 7, 7 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 1, 1 ], "y": [ 8, 8 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 13, 13 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 12, 12 ] }, - { "group": "textbooks", "chance": 60, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 12, 12 ] }, - { "group": "textbooks", "chance": 80, "repeat": [ 10 ], "x": [ 14, 14 ], "y": [ 10, 10 ] }, - { "group": "office_mess", "chance": 80, "repeat": [ 10 ], "x": [ 22, 22 ], "y": [ 13, 13 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 10 ], "x": [ 1, 4 ], "y": [ 12, 14 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 10 ], "x": [ 9, 6 ], "y": [ 14, 12 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 10 ], "x": [ 14, 11 ], "y": [ 12, 14 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 10 ], "x": [ 22, 19 ], "y": [ 12, 14 ] }, - { "group": "vending_food", "chance": 80, "repeat": [ 1 ], "x": [ 20, 20 ], "y": [ 8, 8 ] }, - { "group": "vending_drink", "chance": 80, "repeat": [ 1 ], "x": [ 21, 21 ], "y": [ 8, 8 ] }, - { "group": "magazines", "chance": 80, "repeat": [ 2 ], "x": [ 19, 16 ], "y": [ 4, 6 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 6, 6 ] }, - { "group": "vault", "chance": 60, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 4, 4 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 4 ], "x": [ 1, 4 ], "y": [ 4, 8 ] }, - { "group": "floor_trash", "chance": 60, "repeat": [ 5 ], "x": [ 18, 18 ], "y": [ 10, 10 ] }, - { "group": "floor_trash", "chance": 60, "repeat": [ 5 ], "x": [ 6, 6 ], "y": [ 9, 9 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 10 ], "x": [ 6, 14 ], "y": [ 10, 4 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_11.json b/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_11.json deleted file mode 100644 index f1220ad71361b..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_11.json +++ /dev/null @@ -1,81 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_lightindustry_11" ], - "object": { - "fill_ter": "t_thconc_floor", - "rows": [ - "oooooooooooooooooooooooo", - "oooooooooooooooooooooooo", - "nnnnannnnannnnannnnaoooo", - "affaaaffaaaffaaaffaannna", - "t ttt ta rr g pp aafaa", - "t ta g awwwa", - "t tagghgg bdxdf", - "aggggghgaa s bddda", - " a C bddya", - " zzzzz Ar r eddwa", - " z z bdxwf", - " z z rB addwa", - " z z aacaacaa", - " z z Eaddaokoa", - " jz z ar DE rauvaokoo", - "aaiiiiiaaaafaafaaaaaokoo", - "kjlllllkkannnnnnoooaokoo", - "kklllllkkkkkkkkkkkkkkkkk", - "lllllllllllkmllllmllllmk", - "lllllllllllkmllllmllllmk", - "lllllllllllkmllllmllllmk", - "lllllllllllkmllllmllllmk", - "lllllllllllkmllllmllllmk", - "lllllllllllkmllllmllllmk" - ], - "terrain": { - "a": "t_brick_wall", - "b": "t_wall_glass", - "c": "t_door_c", - "d": "t_linoleum_gray", - "e": "t_door_glass_c", - "f": "t_window", - "g": "t_chainfence_h", - "h": "t_chaingate_l", - "i": "t_door_metal_locked", - "j": "t_gates_mech_control", - "k": "t_sidewalk", - "l": "t_pavement", - "m": "t_pavement_y", - "n": "t_shrub", - "o": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "p": "t_machinery_old", - "q": "t_machinery_heavy", - "r": "t_machinery_electronic", - "s": "t_machinery_light", - "t": "t_thconc_floor", - "u": "t_linoleum_gray", - "v": "t_linoleum_gray", - "w": "t_linoleum_gray", - "x": "t_linoleum_gray", - "y": "t_linoleum_gray", - "z": "t_metal_floor", - "A": "t_ind_drill", - "B": "t_ind_press", - "C": "t_ind_lathe", - "D": "t_ind_mixer", - "E": "t_ind_furnace" - }, - "furniture": { "t": "f_locker", "u": "f_sink", "w": "f_table", "x": "f_chair", "y": "f_locker" }, - "toilets": { "v": { } }, - "place_loot": [ - { "group": "hand_tools", "chance": 75, "repeat": [ 4 ], "x": [ 0, 0 ], "y": [ 4, 6 ] }, - { "group": "power_tools", "chance": 75, "repeat": [ 4 ], "x": [ 3, 5 ], "y": [ 4, 4 ] }, - { "group": "tools_mechanic", "chance": 75, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 4, 6 ] }, - { "group": "elecsto_diy", "chance": 60, "repeat": [ 4 ], "x": [ 10, 15 ], "y": [ 14, 12 ] }, - { "group": "elecsto_diy", "chance": 60, "repeat": [ 4 ], "x": [ 10, 13 ], "y": [ 4, 5 ] }, - { "group": "vehicle_scrapped", "chance": 60, "repeat": [ 4 ], "x": [ 10, 18 ], "y": [ 11, 7 ] }, - { "group": "vehicle_scrapped", "chance": 60, "repeat": [ 4 ], "x": [ 8, 0 ], "y": [ 8, 13 ] }, - { "group": "office_mess", "chance": 60, "repeat": [ 6 ], "x": [ 20, 22 ], "y": [ 5, 11 ] } - ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_road_0.json b/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_road_0.json deleted file mode 100644 index 173aad3855dc2..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_road_0.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_lightindustry_road_0" ], - "object": { - "fill_ter": "t_pavement", - "rows": [ - "b ", - "b ", - "b ", - "b ", - "b ", - "b bbbbbbbbbbbbbbbbb", - "b bdddddddddddddddd", - "b bbbbbbbbbbbbbbbbb", - "b ", - "b ", - "b ", - "b ", - "b ", - "b ", - "b ", - "b ", - "b ", - "b ", - "b bbbb", - "b bddb", - "b bddb", - "b bddb", - "b bddb", - "b bbbb" - ], - "terrain": { "a": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], "b": "t_sidewalk", "c": "t_pavement_y", "d": "t_shrub" }, - "furniture": { } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_road_1.json b/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_road_1.json deleted file mode 100644 index afdd405436477..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/lightindustry/s_lightindustry_road_1.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_lightindustry_road_1" ], - "object": { - "fill_ter": "t_pavement", - "rows": [ - " b", - " b", - " b", - " b", - " b", - "bbbbbbbbbbbbbbbbb b", - "ddddddddddddddddb ", - "bbbbbbbbbbbbbbbbb ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "bbbb bbbbbbbbbb", - "aaab baaaaaaaaa", - "aaab baaaaaaaaa", - "aaab baaaaaaaaa", - "aaab baaaaaaaaa", - "bbbb baaaaaaaaa" - ], - "terrain": { "a": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], "b": "t_sidewalk", "c": "t_pavement_y", "d": "t_shrub" }, - "furniture": { } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/overmap_multitile_city.json b/data/mods/Fuji_Structures/worldgen/overmap_multitile_city.json deleted file mode 100644 index bcc733a231448..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/overmap_multitile_city.json +++ /dev/null @@ -1,72 +0,0 @@ -[ - { - "type": "city_building", - "id": "s_electronicstore", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "s_electronicstore_north" }, - { "point": [ 0, 0, 1 ], "overmap": "s_electronicstore_2ndfloor_north" } - ] - }, - { - "type": "city_building", - "id": "s_gunstore", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "s_gunstore_north" }, - { "point": [ 0, 0, 1 ], "overmap": "s_gunstore_2ndfloor_north" }, - { "point": [ 0, 0, 2 ], "overmap": "s_gunstore_roof_north" } - ] - }, - { - "type": "city_building", - "id": "s_camping", - "locations": [ "land" ], - "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_camping_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_camping_roof_north" } ] - }, - { - "type": "city_building", - "id": "s_cardealer", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "s_cardealer_north" }, - { "point": [ 0, 0, 1 ], "overmap": "s_cardealer_roof_north" } - ] - }, - { - "type": "city_building", - "id": "s_diner", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "s_diner_north" }, - { "point": [ 0, 0, 1 ], "overmap": "s_diner_2ndfloor_north" }, - { "point": [ 0, 0, 2 ], "overmap": "s_diner_roof_north" } - ] - }, - { - "type": "city_building", - "id": "s_games", - "locations": [ "land" ], - "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_games_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_games_roof_north" } ] - }, - { - "type": "city_building", - "id": "s_apt", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "s_apt_north" }, - { "point": [ 0, 0, 1 ], "overmap": "s_apt_2ndfloor_north" }, - { "point": [ 0, 0, 2 ], "overmap": "s_apt_roof_north" } - ] - }, - { - "type": "city_building", - "id": "s_apt_2", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "s_apt_2_north" }, - { "point": [ 0, 0, 1 ], "overmap": "s_apt_2_2ndfloor_north" }, - { "point": [ 0, 0, 2 ], "overmap": "s_apt_2_roof_north" } - ] - } -] diff --git a/data/mods/Fuji_Structures/worldgen/overmap_specials.json b/data/mods/Fuji_Structures/worldgen/overmap_specials.json index 26d89613b8159..c4b852cf5d976 100644 --- a/data/mods/Fuji_Structures/worldgen/overmap_specials.json +++ b/data/mods/Fuji_Structures/worldgen/overmap_specials.json @@ -1,55 +1,4 @@ [ - { - "type": "overmap_special", - "id": "o_airport", - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "s_air_term_south" }, - { "point": [ 1, 0, 0 ], "overmap": "s_air_parking_south" }, - { "point": [ -2, 0, 0 ], "overmap": "s_air_hangars_south" }, - { "point": [ -1, 0, 0 ], "overmap": "s_air_atc_south" }, - { "point": [ -1, 0, 1 ], "overmap": "s_air_atc_2_south" }, - { "point": [ -1, 0, 2 ], "overmap": "s_air_atc_3_south" }, - { "point": [ -3, 1, 0 ], "overmap": "s_air_runway_r_south" }, - { "point": [ -2, 1, 0 ], "overmap": "s_air_runway_hangars_south" }, - { "point": [ -1, 1, 0 ], "overmap": "s_air_runway_south" }, - { "point": [ 0, 1, 0 ], "overmap": "s_air_runway_term_south" }, - { "point": [ 1, 1, 0 ], "overmap": "s_air_runway_south" }, - { "point": [ 2, 1, 0 ], "overmap": "s_air_runway_l_south" } - ], - "connections": [ - { "point": [ -1, -1, 0 ], "terrain": "road", "existing": false }, - { "point": [ 0, -1, 0 ], "terrain": "road", "existing": false }, - { "point": [ 1, -1, 0 ], "terrain": "road", "existing": false } - ], - "locations": [ "land", "swamp" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, 12 ], - "occurrences": [ 0, 1 ], - "required": false, - "flags": [ "CLASSIC", "UNIQUE" ] - }, - { - "type": "overmap_special", - "id": "o_lightindustry", - "overmaps": [ - { "point": [ 1, 0, 0 ], "overmap": "s_lightindustry_road_0_south" }, - { "point": [ 0, 0, 0 ], "overmap": "s_lightindustry_road_1_south" }, - { "point": [ 1, -1, 0 ], "overmap": "s_lightindustry_00_south" }, - { "point": [ 0, -1, 0 ], "overmap": "s_lightindustry_01_south" }, - { "point": [ 1, 1, 0 ], "overmap": "s_lightindustry_10_south" }, - { "point": [ 0, 1, 0 ], "overmap": "s_lightindustry_11_south" } - ], - "connections": [ - { "point": [ -1, 0, 0 ], "terrain": "road", "existing": false }, - { "point": [ -2, 0, 0 ], "terrain": "road", "existing": true } - ], - "locations": [ "land", "swamp" ], - "city_distance": [ 0, -1 ], - "city_sizes": [ 1, 12 ], - "occurrences": [ 0, 3 ], - "required": false, - "flags": [ "CLASSIC" ] - }, { "type": "overmap_special", "id": "o_gas_spc", @@ -65,7 +14,6 @@ "city_distance": [ 0, -1 ], "city_sizes": [ 1, 12 ], "occurrences": [ 1, 1 ], - "required": true, "flags": [ "CLASSIC" ] }, { @@ -80,7 +28,6 @@ "city_distance": [ 10, -1 ], "city_sizes": [ 1, 12 ], "occurrences": [ 1, 1 ], - "required": true, "flags": [ "CLASSIC" ] } ] diff --git a/data/mods/Fuji_Structures/worldgen/overmap_terrain.json b/data/mods/Fuji_Structures/worldgen/overmap_terrain.json index 352be97d12782..3fcded6cca25c 100644 --- a/data/mods/Fuji_Structures/worldgen/overmap_terrain.json +++ b/data/mods/Fuji_Structures/worldgen/overmap_terrain.json @@ -1,346 +1,4 @@ [ - { - "type": "overmap_terrain", - "id": "s_electronicstore", - "name": "electronics store", - "copy-from": "generic_city_building", - "color": "yellow", - "land_use_code": "commercial" - }, - { - "type": "overmap_terrain", - "id": "s_electronicstore_2ndfloor", - "name": "electronics store", - "copy-from": "s_electronicstore", - "land_use_code": "residential_multi" - }, - { - "type": "overmap_terrain", - "id": "s_gunstore", - "name": "gun store", - "copy-from": "generic_city_building", - "color": "red", - "land_use_code": "commercial" - }, - { - "type": "overmap_terrain", - "id": "s_gunstore_2ndfloor", - "name": "gun store", - "copy-from": "s_gunstore", - "land_use_code": "residential_high" - }, - { - "type": "overmap_terrain", - "id": "s_gunstore_roof", - "name": "gun store", - "copy-from": "s_gunstore" - }, - { - "type": "overmap_terrain", - "id": "s_diner", - "name": "diner", - "copy-from": "generic_city_building", - "sym": "d", - "color": "green", - "land_use_code": "commercial" - }, - { - "type": "overmap_terrain", - "id": "s_diner_2ndfloor", - "name": "diner", - "copy-from": "s_diner" - }, - { - "type": "overmap_terrain", - "id": "s_diner_roof", - "name": "diner", - "copy-from": "s_diner" - }, - { - "type": "overmap_terrain", - "id": "s_apt", - "name": "apartment", - "copy-from": "generic_city_building", - "sym": "A", - "color": "light_green", - "land_use_code": "residential_multi" - }, - { - "type": "overmap_terrain", - "id": "s_apt_2ndfloor", - "name": "apartment", - "copy-from": "s_apt" - }, - { - "type": "overmap_terrain", - "id": "s_apt_roof", - "name": "apartment", - "copy-from": "s_apt" - }, - { - "type": "overmap_terrain", - "id": "s_apt_2", - "name": "apartment", - "copy-from": "generic_city_building", - "sym": "A", - "color": "light_green", - "land_use_code": "residential_multi" - }, - { - "type": "overmap_terrain", - "id": "s_apt_2_2ndfloor", - "name": "apartment", - "copy-from": "s_apt_2" - }, - { - "type": "overmap_terrain", - "id": "s_apt_2_roof", - "name": "apartment", - "copy-from": "s_apt_2" - }, - { - "type": "overmap_terrain", - "id": "s_cardealer", - "name": "dealership", - "copy-from": "generic_city_building", - "sym": "0", - "color": "blue", - "land_use_code": "commercial" - }, - { - "type": "overmap_terrain", - "id": "s_cardealer_roof", - "name": "dealership", - "copy-from": "s_cardealer" - }, - { - "type": "overmap_terrain", - "id": "s_camping", - "name": "outdoorsman's store", - "copy-from": "generic_city_building", - "sym": "o", - "color": "brown", - "land_use_code": "commercial" - }, - { - "type": "overmap_terrain", - "id": "s_camping_roof", - "name": "outdoorsman's store", - "copy-from": "s_camping" - }, - { - "type": "overmap_terrain", - "id": "s_games", - "name": "gaming store", - "copy-from": "generic_city_building", - "sym": "g", - "color": "cyan", - "land_use_code": "commercial" - }, - { - "type": "overmap_terrain", - "id": "s_games_roof", - "name": "gaming store", - "copy-from": "s_games" - }, - { - "type": "overmap_terrain", - "id": "s_air_term", - "name": "airport", - "sym": "A", - "color": "i_cyan", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_parking", - "name": "airport", - "sym": "A", - "color": "i_cyan", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_atc", - "name": "airport", - "sym": "A", - "color": "i_cyan", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_atc_2", - "name": "airport", - "sym": "A", - "color": "i_cyan", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_atc_3", - "name": "airport", - "sym": "A", - "color": "i_cyan", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_hangars", - "name": "airport", - "sym": "A", - "color": "i_cyan", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_runway", - "name": "runway", - "sym": "0", - "color": "blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_runway_hangars", - "name": "runway", - "sym": "0", - "color": "blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_runway_l", - "name": "runway", - "sym": "0", - "color": "blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_runway_r", - "name": "runway", - "sym": "0", - "color": "blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_air_runway_term", - "name": "runway", - "sym": "0", - "color": "blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "flags": [ "SIDEWALK" ], - "land_use_code": "transportation" - }, - { - "type": "overmap_terrain", - "id": "s_lightindustry_road_0", - "name": "light industry", - "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "land_use_code": "industrial" - }, - { - "type": "overmap_terrain", - "id": "s_lightindustry_road_1", - "name": "light industry", - "sym": "─", - "color": "dark_gray", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "land_use_code": "industrial" - }, - { - "type": "overmap_terrain", - "id": "s_lightindustry_00", - "name": "light industry", - "sym": "I", - "color": "light_blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "land_use_code": "industrial" - }, - { - "type": "overmap_terrain", - "id": "s_lightindustry_01", - "name": "light industry", - "sym": "I", - "color": "light_blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "land_use_code": "industrial" - }, - { - "type": "overmap_terrain", - "id": "s_lightindustry_10", - "name": "light industry", - "sym": "I", - "color": "light_blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "land_use_code": "industrial" - }, - { - "type": "overmap_terrain", - "id": "s_lightindustry_11", - "name": "light industry", - "sym": "I", - "color": "light_blue", - "see_cost": 5, - "extras": "build", - "mondensity": 2, - "land_use_code": "industrial" - }, { "type": "overmap_terrain", "id": "s_gas_g1", @@ -416,95 +74,5 @@ "see_cost": 5, "extras": "build", "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "house_33", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_34", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_35", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_36", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_37", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_38", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_39", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_40", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_41", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_42", - "copy-from": "generic_city_building", - "name": "house", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] } ] diff --git a/data/mods/Fuji_Structures/worldgen/regional_overlay.json b/data/mods/Fuji_Structures/worldgen/regional_overlay.json deleted file mode 100644 index 9a65464403aaa..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/regional_overlay.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "type": "region_overlay", - "regions": [ "all" ], - "city": { - "houses": { - "s_apt": 40, - "s_apt_2": 40, - "house_33": 50, - "house_34": 50, - "house_35": 50, - "house_36": 50, - "house_37": 50, - "house_38": 50, - "house_39": 50, - "house_40": 50, - "house_41": 50, - "house_42": 50 - }, - "shops": { - "s_gunstore": 500, - "s_diner": 400, - "s_apt": 400, - "s_apt_2": 400, - "s_cardealer": 200, - "s_camping": 100, - "s_games": 100, - "s_electronicstore": 400 - } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/s_apt.json b/data/mods/Fuji_Structures/worldgen/s_apt.json deleted file mode 100644 index 4df9c9680ca61..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/s_apt.json +++ /dev/null @@ -1,117 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_apt" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "--w----w--W+W--w----w-- ", - "-dBBd-FFt-...-t..-d...- ", - "w.BB.+..3-.<.-3..+..BBw ", - "-....-..O-...-O.A-....- ", - "------..e-...-e.t------ ", - " wwii+...D...D...+iiww ", - " -wTS-hth-...-...-STw- ", - "----------...---------- ", - "-...d-..t-...-th.-..B.- ", - "w.B..+..3-...-3..+..B.w ", - "-.B..-F.O-...-O..-d...- ", - "------F.e-...-e..------ ", - " wwii+...D...D...+iiww ", - " -wTS-hth-...-tFF-STw- ", - "----------...---------- ", - "-ii-ii-ii-...-t..-...d- ", - "-fg-fg-fg-...-3..+..BBw ", - "-iiiiiiii-...-O.t-...d- ", - "-iiiiiiii-...-e.h------ ", - "-fg-fg-iiD.<.D...+iiww ", - "-ii-ii-gf-...-FFA-STw- ", - "----------...--w------ ", - " -W+W- ", - " " - ], - "palettes": [ "apartment_palette" ], - "terrain": { "4": "t_linoleum_white", "5": "t_linoleum_white" }, - "furniture": { "4": "f_washer", "5": "f_dryer" }, - "place_loot": [ - { "group": "allclothes", "chance": 50, "repeat": [ 5 ], "x": [ 7, 8 ], "y": [ 20, 20 ] }, - { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 5, 4 ], "y": [ 15, 15 ] }, - { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 2, 1 ], "y": [ 15, 15 ] }, - { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 2, 1 ], "y": [ 20, 20 ] }, - { "group": "tools_home", "chance": 50, "repeat": [ 1 ], "x": [ 4, 5 ], "y": [ 20, 20 ] } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_apt_2ndfloor" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "--w----w--W-W--w----w--*", - "-dB.d-..t-...-t..-....-*", - "w.B..+..3-.>.-3..+..BBw*", - "-...d-A.O-...-O.h-...d-*", - "------..e-...-e.t------*", - "*wwii+...D...D...+iiww**", - "*-wTS-AtA-...-...-STw-**", - "----------...----------*", - "-...d-..t-...-AtA-..B.-*", - "w.B..+..3-...-3..+..B.w*", - "-.B..-F.O-...-O..-d...-*", - "------F.e-...-e..------*", - "*wwii+...D...D...+iiww**", - "*-wTS-htA-...-tFF-STw-**", - "----------...----------*", - "-...d-A.t-...-...-..BB-*", - "w.B..+..3-...-3..+...dw*", - "-.B..-F.O-.<.-O.t-..BB-*", - "------F.e-...-e.h------*", - "*wwii+...D.>.D...+iiww**", - "*-wTS-AtA-...-FFA-STw-**", - "*---------W-W--w------**", - "************************", - "************************" - ], - "palettes": [ "apartment_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_apt_roof" ], - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "|2222222222222222222222 ", - "|.....................3 ", - "|.A..A...........A..A.3 ", - "|.....................3 ", - "||...................33 ", - " |&.................&3 ", - " |..X................3 ", - "||................:..33 ", - "|.....................3 ", - "|.A..A...........A..A.3 ", - "|.....................3 ", - "||...................33 ", - " |&.................&3 ", - " |...................3 ", - "||...................33 ", - "|.........$$+$$.......3 ", - "|.A..A....$___$..A..A.3 ", - "|.........$>__$.......3 ", - "||........$$$$$......33 ", - " |&...............X.&3 ", - " |...................3 ", - " |-------------------3 ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { "$": "t_wall", "+": "t_door_c", ">": "t_stairs_down" } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/s_apt_2.json b/data/mods/Fuji_Structures/worldgen/s_apt_2.json deleted file mode 100644 index b2eaca8e04fdf..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/s_apt_2.json +++ /dev/null @@ -1,110 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_apt_2" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "--ww---w--.ss.------ww--", - "-dBBd-.Bd-.ss.-oFo-d...-", - "w.BB.-.B.w.ss.w...-BB..w", - "w....-...w.ss.w...-BB..w", - "-dd..-...-.ss.-o.d-...d-", - "---+---+--.ss.--+---+---", - "-12iii..h-.ss.-...iii11-", - "wiiiii..j-.ss.-F..iiiiiw", - "-2O3ei..h-W++W-F..ie3O1-", - "------...-^ii^-...------", - ".wbii+...DiiiiD...+iibw.", - ".-bTS-FFF-iiii-hjh-STb-.", - ".---------iiii---------.", - ".-bTS-jh-^iiii^-..-STb-.", - ".wbii+..DiiiiiiD..+iibw.", - "------..-iiiiii-h.------", - "w1O3e2.F-iiii>-j.2e3O1w", - "wiiiii..-_$........A..3", - "||......$$$$-|.........3", - " |........3 |.........3", - " |........3 |.........3", - " |........3 |.........3", - " |........3 |.........3", - " |--------3 |--------.3" - ], - "palettes": [ "roof_palette" ], - "terrain": { "$": "t_wall", "+": "t_door_c", ">": "t_stairs_down" } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/s_camping.json b/data/mods/Fuji_Structures/worldgen/s_camping.json deleted file mode 100644 index 815e3ac4c9ae5..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/s_camping.json +++ /dev/null @@ -1,141 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_camping" ], - "object": { - "fill_ter": "t_linoleum_gray", - "rows": [ - "ddddddddddddddeeeeeddddd", - "daacccaacccaadeeeeeddddd", - "da zadeeeeeddddd", - "da beeeeeeddddd", - "da ss ss beeeeeeddddd", - "dc ss ss t aaghhgggaadd", - "da ss ss u affffffffadd", - "da ss ss s cjffffjffgdd", - "da ss ss s cjfffjijfgdd", - "dc ss ss u ckkfffjffgdd", - "da ss ss t akkffffffgdd", - "da aa aa bffffffffadd", - "da ss ss yaffffwwwfgdd", - "dc cffffxvwfgdd", - "da cffffwwwfgdd", - "da ssssss affffffffgdd", - "da aaaaaabaa;fffffffadd", - "da aooonnnqaaahhaaaaadd", - "daabaoopnnnqammffilllgdd", - "da annnnnnnbffffflllgdd", - "da arrnnnnnbffffffffhdd", - "daABarrrnnrraiiifffffgdd", - "daaaaaaaaaaaagggggggggdd", - "dddddddddddddddddddddddd" - ], - "terrain": { - "a": "t_wall", - "b": "t_door_c", - "c": "t_wall_glass", - "d": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "e": "t_sidewalk", - "f": "t_pavement", - "g": "t_chainfence_v", - "h": "t_chaingate_c", - "i": "t_pavement", - "j": "t_pavement", - "k": "t_pavement", - "l": "t_pavement", - "m": "t_pavement", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_linoleum_gray", - "t": "t_linoleum_gray", - "u": "t_console_broken", - "v": "t_pavement", - "w": "t_pavement", - "x": "t_pavement", - "y": "t_linoleum_gray", - "z": "t_linoleum_gray", - "A": "t_linoleum_gray", - "B": "t_linoleum_gray", - ";": "t_gutter_downspout" - }, - "furniture": { - "i": "f_brazier", - "j": "f_bench", - "k": "f_chair", - "l": "f_dumpster", - "m": "f_crate_c", - "o": "f_crate_c", - "p": "f_crate_o", - "q": "f_bench", - "r": "f_chair", - "s": "f_rack", - "t": "f_counter", - "v": "f_groundsheet", - "w": "f_canvas_wall", - "x": "f_canvas_door", - "y": "f_vending_c", - "z": "f_trashcan", - "A": "f_sink" - }, - "toilets": { "B": { } }, - "place_loot": [ - { "group": "cannedfood", "chance": 50, "repeat": [ 10 ], "x": [ 3, 3 ], "y": [ 4, 10 ] }, - { "group": "swimmer_shoes", "chance": 50, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 4, 5 ] }, - { "group": "NC_COWBOY_shoes", "chance": 50, "repeat": [ 5 ], "x": [ 4, 4 ], "y": [ 6, 10 ] }, - { "group": "camping", "chance": 50, "repeat": [ 10 ], "x": [ 6, 6 ], "y": [ 4, 10 ] }, - { "group": "hand_tools", "chance": 50, "repeat": [ 5 ], "x": [ 7, 7 ], "y": [ 4, 10 ] }, - { "group": "softdrugs", "chance": 50, "repeat": [ 2 ], "x": [ 3, 4 ], "y": [ 12, 12 ] }, - { "group": "archery", "chance": 50, "repeat": [ 2 ], "x": [ 4, 7 ], "y": [ 15, 15 ] }, - { "group": "archery_ammo", "chance": 50, "repeat": [ 2 ], "x": [ 8, 9 ], "y": [ 15, 15 ] }, - { "group": "kitchen_nonfood", "chance": 50, "repeat": [ 4 ], "x": [ 6, 7 ], "y": [ 12, 12 ] }, - { "group": "book_survival", "chance": 50, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 7, 7 ] }, - { "group": "vending_food_items", "chance": 50, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 8, 8 ] }, - { "group": "vending_drink", "chance": 80, "repeat": [ 1 ], "x": [ 11, 11 ], "y": [ 12, 12 ] }, - { "group": "trash", "chance": 50, "repeat": [ 5 ], "x": [ 11, 11 ], "y": [ 2, 2 ] }, - { "group": "trash", "chance": 50, "repeat": [ 5 ], "x": [ 18, 20 ], "y": [ 18, 19 ] }, - { "group": "camping", "chance": 50, "repeat": [ 4 ], "x": [ 5, 6 ], "y": [ 17, 17 ] }, - { "group": "hand_tools", "chance": 50, "repeat": [ 2 ], "x": [ 7, 7 ], "y": [ 17, 17 ] }, - { "group": "cannedfood", "chance": 50, "repeat": [ 5 ], "x": [ 5, 6 ], "y": [ 18, 18 ] } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_camping_roof" ], - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - " ", - " |22222222223 ", - " |..........3 ", - " |..oo..oo..3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..oo..oo..3 ", - " |..........3 ", - " |...A......3 ", - " |..........3 ", - " |..oo..oo..3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |.=........5 ", - " |.=........3 ", - " |..........3 ", - " |.......:..3 ", - " |....A.....3 ", - " |..........3 ", - " |----------3 ", - " " - ], - "palettes": [ "roof_palette" ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/s_diner.json b/data/mods/Fuji_Structures/worldgen/s_diner.json deleted file mode 100644 index fbf6613ebff6a..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/s_diner.json +++ /dev/null @@ -1,191 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_diner" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "hhhhiiihhhhhhhiiiihhhhhh", - "hiiiiiiiiihhhhiiiihhhhhh", - "hiiiiiiiiiiiiiiiiihhhhhh", - "hiiviiiviihhhhiiiihhhhhh", - "hivuvivuvaabbaaccaabbaah", - "hiiviiivia< ah", - "hiiiiiiiiag gg gg gah", - "haabacabaaf ff ff fah", - "hagfg gfgag gg gg gah", - "ha a ah", - "ha laa aa aa aah", - "haaaaa ah", - "hagfga g g g g ah", - "ha ggaddeeeeeeeeeah", - "ha ffadddddddddddah", - "hagfga ggattdddddnddmah", - "haaaaa aaaaaaaeeeaadaah", - "hajdma as gfapdddddddah", - "hakddc a fapdddddddah", - "haaaaa aacaaaddeedaaaah", - "hakddc cdddddddddddddah", - "hajdma ammdrdeeoodaqqah", - "haaaaaacaaaaaaaaaaaaaaah", - "hhhhhhhhhhhhhhhhhhhhhhhh" - ], - "terrain": { - "a": "t_wall", - "b": "t_window", - "c": "t_door_c", - "d": "t_linoleum_gray", - "e": "t_linoleum_gray", - "f": "t_floor", - "g": "t_floor", - "h": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "i": "t_sidewalk", - "j": "t_linoleum_gray", - "k": "t_linoleum_gray", - "l": "t_floor", - "m": "t_linoleum_gray", - "n": "t_console_broken", - "o": "t_linoleum_gray", - "p": "t_linoleum_gray", - "q": "t_linoleum_gray", - "r": "t_linoleum_gray", - "s": "t_floor", - "t": "t_linoleum_gray", - "u": "t_sidewalk", - "v": "t_sidewalk", - "<": "t_stairs_up" - }, - "furniture": { - "e": "f_counter", - "f": "f_table", - "g": "f_chair", - "k": "f_sink", - "l": "f_trashcan", - "m": "f_trashcan", - "o": "f_sink", - "p": "f_oven", - "q": "f_fridge", - "r": "f_locker", - "s": "f_locker", - "t": "f_rack", - "u": "f_table", - "v": "f_chair" - }, - "toilets": { "j": { } }, - "place_loot": [ - { "group": "bar_trash", "chance": 50, "repeat": [ 4 ], "x": [ 4, 4 ], "y": [ 21, 21 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 4 ], "x": [ 4, 4 ], "y": [ 17, 17 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 4 ], "x": [ 9, 9 ], "y": [ 21, 21 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 4 ], "x": [ 10, 10 ], "y": [ 21, 21 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 4 ], "x": [ 21, 21 ], "y": [ 15, 15 ] }, - { "group": "bar_trash", "chance": 50, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 10, 10 ] }, - { "group": "coffee_prep", "chance": 50, "repeat": [ 4 ], "x": [ 11, 12 ], "y": [ 15, 15 ] }, - { "group": "bar_food", "chance": 50, "repeat": [ 4 ], "x": [ 20, 20 ], "y": [ 21, 21 ] }, - { "group": "diner_food", "chance": 50, "repeat": [ 4 ], "x": [ 21, 21 ], "y": [ 21, 21 ] }, - { "group": "oven", "chance": 50, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 17, 17 ] }, - { "group": "oven", "chance": 50, "repeat": [ 2 ], "x": [ 14, 14 ], "y": [ 18, 18 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 2 ], "x": [ 16, 16 ], "y": [ 21, 21 ] }, - { "group": "kitchen", "chance": 80, "repeat": [ 2 ], "x": [ 17, 17 ], "y": [ 21, 21 ] }, - { "group": "cleaning_bulk", "chance": 50, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 21, 21 ] }, - { "group": "cleaning", "chance": 50, "repeat": [ 1 ], "x": [ 2, 2 ], "y": [ 18, 18 ] }, - { "group": "cleaning", "chance": 50, "repeat": [ 1 ], "x": [ 2, 2 ], "y": [ 20, 20 ] }, - { "group": "restaur_kitchen", "chance": 50, "repeat": [ 2 ], "x": [ 14, 15 ], "y": [ 21, 21 ] }, - { "group": "fast_kitchen", "chance": 50, "repeat": [ 2 ], "x": [ 16, 17 ], "y": [ 19, 19 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 12, 12 ], "y": [ 17, 18 ] }, - { "group": "office", "chance": 80, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 17, 17 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 3, 3 ], "y": [ 4, 4 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 7, 7 ], "y": [ 4, 4 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 3, 3 ], "y": [ 8, 8 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 7, 7 ], "y": [ 8, 8 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 3, 3 ], "y": [ 12, 12 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 3, 3 ], "y": [ 15, 15 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 8, 8 ], "y": [ 14, 14 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 9, 9 ], "y": [ 14, 14 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 10, 10 ], "y": [ 7, 7 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 13, 13 ], "y": [ 7, 7 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 14, 14 ], "y": [ 7, 7 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 17, 17 ], "y": [ 7, 7 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 18, 18 ], "y": [ 7, 7 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 21, 21 ], "y": [ 7, 7 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 13, 15 ], "y": [ 13, 13 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 17, 15 ], "y": [ 13, 13 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 19, 17 ], "y": [ 13, 13 ] }, - { "group": "coffee_table", "chance": 50, "repeat": [ 1 ], "x": [ 21, 19 ], "y": [ 13, 13 ] } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_diner_2ndfloor" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "************************", - "************************", - "************************", - "************************", - "*********---W--WW--W---*", - "*********->-hh...h..hh-*", - "*********-.-tt...t..ttW*", - "*--W---W--..hh...h..hh-*", - "*-....................-*", - "*W^..RRRRRRRRRRRRRR..^-*", - "*-h..R;;;;;;;;;;;;R...-*", - "*-t..R;;;;;;;;;;;;R..^-*", - "*-h..RRRRRRRRRRRRRR...-*", - "*W^...................W*", - "*-........hth.hth.hth.-*", - "*----.-----------------*", - "*4zz-.j-9zzzzzzzzzzzzz6*", - "*4zz-+--zzzzzzzzz&zzzz6*", - "*4zzzzzzzzzzzzzzzzzzzz6*", - "*4zzzzzzzzzzzz((zzzzzz6*", - "*4zzzzzzzzzzzzzzzzzzzz6*", - "*4zzzzzzzzzzzzzzzzzzzz6*", - "*4555555555555555555556*", - "************************" - ], - "palettes": [ "apartment_palette" ], - "terrain": { "*": "t_open_air", "9": "t_gutter_downspout", "R": "t_glass_railing", ";": "t_open_air_rooved" }, - "furniture": { "h": "f_chair" }, - "items": { "t": { "item": "coffee_table", "chance": 50 }, "j": { "item": "bar_trash", "chance": 65, "repeat": [ 1, 3 ] } } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_diner_roof" ], - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - " ", - " ", - " ", - " ", - " |2222222222223 ", - " |..........X.3 ", - " |............3 ", - " |2222222|............3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |...A.........A......3 ", - " |....................3 ", - " |.........&..........3 ", - " |...............==...3 ", - " |--|..35-------------3 ", - " |..3 ", - " |--3 ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/s_electronicstore.json b/data/mods/Fuji_Structures/worldgen/s_electronicstore.json deleted file mode 100644 index 150fd5f762715..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/s_electronicstore.json +++ /dev/null @@ -1,74 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_electronicstore" ], - "object": { - "fill_ter": "t_linoleum_white", - "rows": [ - "! sssssss ss !", - "! sssssss -w+- !", - "!--WW-GG---------,,----!", - "!-.......t......-,,-ST-!", - "!-.......t......--,-..-!", - "!-.......txnnnn.-<,-+--!", - "!-.1111.........----..-!", - "!-.2222.^^^^^...4444..-!", - "!-......^CCC^.........-!", - "!-......^CCC^.........-!", - "!-.2222.^^^^^.4444.4---!", - "!-.3333.^CCC^.4444.4-|!!", - "!-......^CCC^......4-!!!", - "!-......^^^^^.444444-!!!", - "!-.3333.......-------- ", - "!--------.....ooo-ddf- ", - "!!!!!-__-........+.c.- ", - "!!!!!=__----++-------- ", - "!!!!!=________O- ", - "!!!!(-________O- ", - "!!!!(----O____O- ", - "!!!!! -OO____- ", - "!!!!( -------- ", - "!!!!( " - ], - "palettes": [ "electro_palette" ], - "terrain": { " ": [ [ "t_dirt", 5 ], [ "t_grass", 16 ], [ "t_grass_long", 5 ], [ "t_underbrush", 1 ] ] } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_electronicstore_2ndfloor" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "************************", - "****************zzzz****", - "*--w---w-ww-w----WW-RRR*", - "*-2ie-tltntI....D..-zzR*", - "*wOiu-tl........--.WzzR*", - "*-1iii......AooY->.-zzR*", - "*w3iii..FFF-------D-+--*", - "*-----....o-hh.-tn.eiO-*", - "*-r.r-j...o-tt.....ii2w*", - "*--.-----..-hh.....ii3-*", - "*-I..dd.-.A-...-FF.Y---*", - "*w......+..-..o-...A-/R*", - "*-.....t-..-..o-I...+#R*", - "*w.BB.ht--+-+-----+--#R*", - "*-.BB..t-S.-.S-r-d..--R*", - "*--w--w--T.-.T-.....d-**", - "*****4zz-bb-bb-r-I.BB-**", - "*****4zz--w-w-----ww--**", - "*****4zzzzzzzzz6********", - "*****4zzzzzzzzz6********", - "*****4554zzzzzz6********", - "********4zzzzzz6********", - "********45555556********", - "************************" - ], - "palettes": [ "apartment_palette" ], - "terrain": { "-": "t_brick_wall", "#": "t_metal_floor_no_roof", "/": "t_ladder_down" } - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/s_games.json b/data/mods/Fuji_Structures/worldgen/s_games.json deleted file mode 100644 index e0a1bc5f659d7..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/s_games.json +++ /dev/null @@ -1,123 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_games" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "eeeeeefgddddgddddgddddgf", - "eeeeeefgddddgddddgddddgf", - "eeeeeefgddddgddddgddddgf", - "eeeeeefgddddgddddgddddgf", - "eeeeeefgddddgddddgddddgf", - "eeeeeefgddddgddddgddddgf", - "eeeeeeffffffffffffffffff", - "eeeeeeeaabbbbaccabbbbaae", - "eaababaa iiii oiiii ae", - "eahhhhha ae", - "ea ii ae", - "ea l hh hh i ae", - "ea hhh a lkl hh hh i ae", - "ea hhh a l j ae", - "ea i ae", - "ea hh hhh i ae", - "eahhhhha oaacaaa aaaae", - "eaababaaaacaa a aprae", - "edddddd9a a ll a cpqae", - "edddddddc alkkla aaaae", - "ennddddda malkkla cpqae", - "enndddddammma ll asaprae", - "enndddddaaaaaabbaaaaaaae", - "eeeeeeeeeeeeeeeeeeeeeeee" - ], - "terrain": { - "a": "t_wall", - "b": "t_window", - "c": "t_door_c", - "d": "t_pavement", - "e": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "f": "t_sidewalk", - "g": "t_pavement_y", - "h": "t_floor", - "i": "t_floor", - "j": "t_console_broken", - "k": "t_floor", - "l": "t_floor", - "m": "t_floor", - "n": "t_pavement", - "o": "t_floor", - "p": "t_linoleum_gray", - "q": "t_linoleum_gray", - "r": "t_linoleum_gray", - "s": "t_floor", - "9": "t_gutter_downspout" - }, - "furniture": { - "h": "f_rack", - "i": "f_counter", - "k": "f_table", - "l": "f_chair", - "m": "f_crate_c", - "n": "f_dumpster", - "o": "f_trashcan", - "r": "f_sink", - "s": "f_locker" - }, - "toilets": { "q": { } }, - "place_loot": [ - { "group": "magazines", "chance": 50, "repeat": [ 5 ], "x": [ 2, 6 ], "y": [ 9, 9 ] }, - { "group": "bookstore_misc", "chance": 50, "repeat": [ 5 ], "x": [ 3, 5 ], "y": [ 12, 12 ] }, - { "group": "games", "chance": 50, "repeat": [ 3 ], "x": [ 3, 5 ], "y": [ 13, 13 ] }, - { "group": "games", "chance": 50, "repeat": [ 5 ], "x": [ 2, 6 ], "y": [ 16, 16 ] }, - { "group": "games", "chance": 50, "repeat": [ 4 ], "x": [ 13, 14 ], "y": [ 12, 11 ] }, - { "group": "games", "chance": 50, "repeat": [ 5 ], "x": [ 16, 17 ], "y": [ 11, 12 ] }, - { "group": "games", "chance": 50, "repeat": [ 5 ], "x": [ 12, 13 ], "y": [ 15, 15 ] }, - { "group": "games", "chance": 50, "repeat": [ 5 ], "x": [ 15, 17 ], "y": [ 15, 15 ] }, - { "group": "trash", "chance": 50, "repeat": [ 5 ], "x": [ 11, 11 ], "y": [ 16, 16 ] }, - { "group": "trash", "chance": 50, "repeat": [ 5 ], "x": [ 16, 16 ], "y": [ 8, 8 ] }, - { "group": "games", "chance": 50, "repeat": [ 3 ], "x": [ 9, 11 ], "y": [ 21, 21 ] }, - { "group": "games", "chance": 50, "repeat": [ 1 ], "x": [ 11, 11 ], "y": [ 20, 20 ] }, - { "group": "games", "chance": 50, "repeat": [ 1 ], "x": [ 14, 15 ], "y": [ 19, 20 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 1 ], "x": [ 18, 18 ], "y": [ 21, 21 ] }, - { "group": "vending_food_items", "chance": 80, "repeat": [ 4 ], "x": [ 19, 19 ], "y": [ 14, 15 ] }, - { "group": "trash", "chance": 50, "repeat": [ 5 ], "x": [ 1, 2 ], "y": [ 20, 22 ] } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_games_roof" ], - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " |222222222222223 ", - " |22252|..............3 ", - " |...............X.:..3 ", - " |....................3 ", - " |....................3 ", - " |...A...........=&...3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |-----5|.............3 ", - " |.............3 ", - " |.............3 ", - " |........A....3 ", - " |.............3 ", - " |-------------3 ", - " " - ], - "palettes": [ "roof_palette" ] - } - } -] diff --git a/data/mods/Fuji_Structures/worldgen/s_gunstore.json b/data/mods/Fuji_Structures/worldgen/s_gunstore.json deleted file mode 100644 index 259cd13570335..0000000000000 --- a/data/mods/Fuji_Structures/worldgen/s_gunstore.json +++ /dev/null @@ -1,298 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_gunstore" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "eeeeeeeeeeeeeeeeeefffeee", - "eaaabbaabbaabbaaafffffee", - "ea rafffffee", - "ea cfffffee", - "ea aa aa jjj afffffee", - "ea jj jj jjj aaaaaaae", - "ea jj jj ar oae", - "ea jj jj d ae", - "ea jj jj kk ka a a ae", - "ea jj jj l jhkakakae", - "ea jj jj m jhiiiiiae", - "ea aa aa m jhiiiiiae", - "ea m jhiiiiiae", - "ea m oaiiiiiae", - "eaadaaddaaaaaadaaiiiiiae", - "ear a< avvou oaiiiiiae", - "ea ao avt hiiiiiae", - "eaqpao av raxxxxxae", - "eaaaa aaaaadaaaaaaaae", - "easss a;gggggge", - "ea ss ss cgggggwwe", - "eass ss ss cgggggwwe", - "eassss agggggwwe", - "eaaaaaaaaaaaaaaaggggggge" - ], - "terrain": { - "a": "t_wall", - "b": "t_window_bars_alarm", - "c": "t_door_metal_pickable", - "d": "t_door_c", - "e": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], - "f": "t_sidewalk", - "g": "t_pavement", - "h": "t_reinforced_glass", - "i": "t_thconc_floor", - "j": "t_floor", - "k": "t_floor", - "l": "t_console_broken", - "m": "t_floor", - "n": "t_floor", - "o": "t_floor", - "p": "t_floor", - "q": "t_floor", - "r": "t_floor", - "s": "t_floor", - "t": "t_floor", - "u": "t_floor", - "v": "t_floor", - "w": "t_pavement", - "x": "t_thconc_floor", - "<": "t_stairs_up", - ";": "t_gutter_downspout" - }, - "furniture": { - "j": "f_rack", - "k": "f_counter", - "m": "f_displaycase", - "n": "f_table", - "o": "f_locker", - "q": "f_sink", - "r": "f_trashcan", - "s": "f_crate_c", - "t": "f_chair", - "u": "f_gunsafe_ml", - "v": "f_desk", - "w": "f_dumpster", - "x": "f_sandbag_wall" - }, - "toilets": { "p": { } }, - "place_loot": [ - { "group": "guns_rifle_common", "chance": 50, "repeat": [ 1 ], "x": [ 15, 15 ], "y": [ 9, 9 ], "magazine": 100 }, - { - "group": "guns_rifle_common", - "chance": 50, - "repeat": [ 1 ], - "x": [ 15, 15 ], - "y": [ 10, 10 ], - "magazine": 100 - }, - { - "group": "guns_smg_common", - "chance": 50, - "repeat": [ 1 ], - "x": [ 15, 15 ], - "y": [ 11, 11 ], - "magazine": 100 - }, - { - "group": "guns_shotgun_common", - "chance": 50, - "repeat": [ 1 ], - "x": [ 15, 15 ], - "y": [ 12, 12 ], - "magazine": 100 - }, - { - "group": "guns_shotgun_common", - "chance": 50, - "repeat": [ 1 ], - "x": [ 15, 15 ], - "y": [ 13, 13 ], - "magazine": 100 - }, - { - "group": "guns_pistol_rare", - "chance": 40, - "repeat": [ 1 ], - "x": [ 12, 12 ], - "y": [ 12, 12 ], - "magazine": 100 - }, - { - "group": "guns_pistol_obscure", - "chance": 30, - "repeat": [ 1 ], - "x": [ 12, 12 ], - "y": [ 13, 13 ], - "magazine": 100 - }, - { - "group": "guns_rifle_milspec", - "chance": 80, - "repeat": [ 3 ], - "x": [ 13, 13 ], - "y": [ 15, 15 ], - "magazine": 100 - }, - { - "group": "guns_pistol_common", - "chance": 100, - "repeat": [ 1 ], - "x": [ 11, 11 ], - "y": [ 15, 15 ], - "magazine": 100 - }, - { - "group": "guns_pistol_rare", - "chance": 80, - "repeat": [ 1 ], - "x": [ 17, 17 ], - "y": [ 9, 9 ], - "magazine": 100 - }, - { - "group": "guns_pistol_rare", - "chance": 40, - "repeat": [ 1 ], - "x": [ 19, 19 ], - "y": [ 9, 9 ], - "magazine": 100 - }, - { - "group": "guns_pistol_rare", - "chance": 40, - "repeat": [ 1 ], - "x": [ 21, 21 ], - "y": [ 9, 9 ], - "magazine": 100 - }, - { "group": "mags_rifle_common", "chance": 50, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 5, 5 ] }, - { "group": "mags_smg_common", "chance": 50, "repeat": [ 2 ], "x": [ 8, 8 ], "y": [ 6, 6 ] }, - { "group": "ammo_pistol_rare", "chance": 50, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 10, 10 ] }, - { "group": "clothing_tactical_torso", "chance": 50, "repeat": [ 2 ], "x": [ 5, 5 ], "y": [ 5, 6 ] }, - { "group": "ammo_pistol_common", "chance": 50, "repeat": [ 6 ], "x": [ 9, 9 ], "y": [ 7, 9 ] }, - { "group": "ammo_shotgun_common", "chance": 50, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 9, 10 ] }, - { "group": "ammo_rifle_common", "chance": 50, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 7, 8 ] }, - { "group": "mags_pistol_common", "chance": 50, "repeat": [ 4 ], "x": [ 9, 9 ], "y": [ 5, 5 ] }, - { "group": "mags_pistol_rare", "chance": 50, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 6, 6 ] }, - { "group": "clothing_tactical_leg", "chance": 50, "repeat": [ 2 ], "x": [ 5, 5 ], "y": [ 7, 8 ] }, - { "group": "mil_food_nodrugs", "chance": 50, "repeat": [ 4 ], "x": [ 5, 5 ], "y": [ 9, 10 ] }, - { "group": "gunmod_common", "chance": 50, "repeat": [ 4 ], "x": [ 4, 4 ], "y": [ 10, 7 ] }, - { "group": "gunmod_rare", "chance": 50, "repeat": [ 2 ], "x": [ 4, 4 ], "y": [ 6, 5 ] }, - { "group": "gunmod_milspec", "chance": 50, "repeat": [ 5 ], "x": [ 2, 4 ], "y": [ 19, 19 ] }, - { "group": "ammo_rifle_common", "chance": 50, "repeat": [ 4 ], "x": [ 2, 2 ], "y": [ 21, 22 ] }, - { "group": "tools_gunsmith", "chance": 75, "repeat": [ 4 ], "x": [ 3, 3 ], "y": [ 21, 22 ] }, - { "group": "ammo_pistol_common", "chance": 50, "repeat": [ 4 ], "x": [ 8, 8 ], "y": [ 20, 21 ] }, - { "group": "ammo_shotgun_common", "chance": 50, "repeat": [ 4 ], "x": [ 11, 12 ], "y": [ 20, 21 ] }, - { "group": "ammo_rifle_obscure", "chance": 50, "repeat": [ 4 ], "x": [ 4, 5 ], "y": [ 22, 22 ] }, - { "group": "ammo_pistol_rare", "chance": 50, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 20, 20 ] }, - { "group": "ammo_pistol_obscure", "chance": 50, "repeat": [ 2 ], "x": [ 9, 9 ], "y": [ 21, 21 ] }, - { "group": "office_mess", "chance": 80, "repeat": [ 2 ], "x": [ 10, 10 ], "y": [ 17, 15 ] }, - { "group": "cleaning_bulk", "chance": 80, "repeat": [ 4 ], "x": [ 5, 5 ], "y": [ 16, 17 ] }, - { "group": "floor_trash", "chance": 50, "repeat": [ 4 ], "x": [ 15, 15 ], "y": [ 2, 2 ] }, - { "group": "floor_trash", "chance": 50, "repeat": [ 4 ], "x": [ 15, 15 ], "y": [ 17, 17 ] }, - { "group": "floor_trash", "chance": 50, "repeat": [ 4 ], "x": [ 2, 2 ], "y": [ 15, 15 ] }, - { "group": "office_mess", "chance": 50, "repeat": [ 4 ], "x": [ 15, 15 ], "y": [ 15, 15 ] }, - { "group": "trash", "chance": 50, "repeat": [ 4 ], "x": [ 21, 22 ], "y": [ 20, 22 ] }, - { "group": "book_gunref", "chance": 50, "repeat": [ 4 ], "x": [ 12, 14 ], "y": [ 4, 4 ] }, - { "group": "book_gunmags", "chance": 50, "repeat": [ 4 ], "x": [ 12, 14 ], "y": [ 5, 5 ] }, - { "group": "floor_trash", "chance": 50, "repeat": [ 4 ], "x": [ 17, 17 ], "y": [ 6, 6 ] }, - { "group": "gunshop_accessories", "chance": 50, "repeat": [ 2 ], "x": [ 21, 21 ], "y": [ 6, 6 ] }, - { - "group": "guns_pistol_common", - "chance": 50, - "repeat": [ 1 ], - "x": [ 12, 12 ], - "y": [ 10, 10 ], - "magazine": 100 - }, - { - "group": "guns_pistol_common", - "chance": 50, - "repeat": [ 1 ], - "x": [ 12, 12 ], - "y": [ 11, 11 ], - "magazine": 100 - } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_gunstore_2ndfloor" ], - "object": { - "fill_ter": "t_floor", - "rows": [ - "************************", - "*---w-----w--w---*******", - "*-BB.dd-...BB...-*******", - "*-BB...-...BB...-*******", - "*w.....-d......o-*******", - "*-....^-d...A..I-888886*", - "*----+---+-------zzzzz6*", - "*-I.......j-iiiO-zzzzz6*", - "*wt.FFll...iiii1-zzzzz6*", - "*-n..Ftt...iiii3wzzzzz6*", - "*wt..Fll..o-1ii2-zzzzz6*", - "*-........o-uiie-zzzzz6*", - "*-+--D-Y...------zzzzz6*", - "*-iS-.-A...+...;-zzzzz6*", - "*wiT->-....-rr.;-9zzzz6*", - "*-bb---w+w-------zzzzz6*", - "*----zzzzzzfMzfzzzzzzz6*", - "*4zzzzzzzzzgzzgzzzzzzz6*", - "*4z@zzzzzzzffff67555556*", - "*4zzzzzzzzzzzzz6********", - "*4zzzzzzzzzzzzz6********", - "*4zzzzzzzzzzzzz6********", - "*4zzzzzzzzzzzzz6********", - "*455555555555556********" - ], - "palettes": [ "apartment_palette" ], - "terrain": { "9": "t_gutter_downspout" }, - "furniture": { ";": "f_gunsafe_ml" }, - "items": { - ";": [ - { "item": "guns_obscure", "chance": 30, "repeat": [ 1, 3 ] }, - { "item": "mags_obscure", "chance": 30, "repeat": [ 1, 4 ] }, - { "item": "ammo_obscure", "chance": 100, "repeat": [ 1, 2 ] } - ] - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_gunstore_roof" ], - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - " ", - " |222222222222223 ", - " |..............3 ", - " |..............3 ", - " |...A..........3 ", - " |..............3 ", - " |..............3 ", - " |X..........A.&3 ", - " |..............3 ", - " |..............3 ", - " |..............3 ", - " |..............3 ", - " |..............3 ", - " |.=............3 ", - " |..............5 ", - " |..|-----------3 ", - " |--| ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ] - } - } -] diff --git a/data/mods/Generic_Guns/firearms/gg_firearms_migration.json b/data/mods/Generic_Guns/firearms/gg_firearms_migration.json index ff004849dbf03..a3bb83542b657 100644 --- a/data/mods/Generic_Guns/firearms/gg_firearms_migration.json +++ b/data/mods/Generic_Guns/firearms/gg_firearms_migration.json @@ -145,7 +145,7 @@ "replace": "pistol_pipe_smg" }, { - "id": [ "cop_38", "model_10_revolver", "ruger_lcr_38", "sw_610", "bond_410", "colt_saa", "rm99_pistol", "m47a1" ], + "id": [ "cop_38", "model_10_revolver", "ruger_lcr_38", "sw_610", "bond_410", "colt_saa", "m47a1" ], "type": "MIGRATION", "replace": "pistol_revolver" }, @@ -207,16 +207,6 @@ "type": "MIGRATION", "replace": "rifle_lmg" }, - { - "id": [ "surv_carbine_223" ], - "type": "MIGRATION", - "replace": "rifle_pipe_carbine" - }, - { - "id": [ "rifle_3006", "rifle_223", "rifle_308" ], - "type": "MIGRATION", - "replace": "rifle_pipe_rifle" - }, { "id": [ "survivor_special_700", @@ -250,6 +240,8 @@ "ak47", "arx160", "mosin91_30", + "m249_semi", + "m60_semi", "ar15", "oa93", "ar_pistol", @@ -285,7 +277,7 @@ "replace": "shot_double" }, { - "id": [ "pipe_double_shotgun", "revolver_shotgun", "ashot", "pipe_combination_gun" ], + "id": [ "pipe_double_shotgun", "revolver_shotgun", "ashot" ], "type": "MIGRATION", "replace": "shot_pipe_double" }, diff --git a/data/mods/Generic_Guns/firearms/grenade.json b/data/mods/Generic_Guns/firearms/grenade.json index 256179235b6a0..f5b025eb913e0 100644 --- a/data/mods/Generic_Guns/firearms/grenade.json +++ b/data/mods/Generic_Guns/firearms/grenade.json @@ -16,7 +16,15 @@ "name": { "str": "automatic grenade launcher" }, "ammo": [ "ammo_grenade" ], "description": "This large, clumsy looking launcher looks like the offspring of a machine gun and a mortar; its bore is huge, and its action is just as massive. A huge belt of grenade cartridges loads into its tray, allowing several grenades to be launched in rapid succession. If one grenade fired from this isn't enough to solve your problems, surely a dozen more are. This must be mounted on a frame to be fired, and reloading is a bit slow.", - "magazines": [ [ "ammo_grenade", [ "grenade_belt" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "grenade_belt" ] + } + ] }, { "id": "grenade_pistol", diff --git a/data/mods/Generic_Guns/firearms/pistol.json b/data/mods/Generic_Guns/firearms/pistol.json index 132ad276eb391..015f5f11ffd36 100644 --- a/data/mods/Generic_Guns/firearms/pistol.json +++ b/data/mods/Generic_Guns/firearms/pistol.json @@ -16,7 +16,15 @@ "name": { "str": "machine pistol" }, "ammo": [ "ammo_pistol" ], "description": "This pistol is a tiny machinegun you can stuff into a holster, with which you could dump its magazine at a blistering rate into any close range foes. Machine pistols mostly see use by vehicle crewmen or bodygaurds of VIPs. Due to its preposterous rate of fire it is difficult to control.", - "magazines": [ [ "ammo_pistol", [ "pistol_mag", "pistol_smg_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_mag", "pistol_smg_mag" ] + } + ] }, { "id": "pistol_medium", @@ -25,7 +33,15 @@ "name": { "str": "defensive pistol" }, "ammo": [ "ammo_pistol" ], "description": "A modern pistol fit for duty, military service, or personal defense, with a detachable box magazine and a reliable action. Though its chambering is capable of meeting FBI penetration minimums, the lack of a shoulder stock limits its utility.", - "magazines": [ [ "ammo_pistol", [ "pistol_mag", "pistol_smg_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_mag", "pistol_smg_mag" ] + } + ] }, { "id": "pistol_pcc", @@ -34,7 +50,15 @@ "name": "survivalist carbine", "ammo": [ "ammo_pistol" ], "description": "These small carbines share ammunition and magazines with common pistols, offering a more controllable carbine than a normal rifle, while also reducing ammunition costs. Because of their compatibility, they pair well with duty pistols, allowing one to transition to a more stable weapon without carrying extra ammo or magazines.", - "magazines": [ [ "ammo_pistol", [ "pistol_mag", "pistol_smg_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_mag", "pistol_smg_mag" ] + } + ] }, { "id": "pistol_revolver", @@ -44,8 +68,7 @@ "ammo": [ "ammo_pistol" ], "description": "Revolvers like this, chambered for standard defensive calibers, were a favorite of police departments for nearly a century, up until the 1986 Miami shootout. Afterwards, the slow reloading and shooting of revolvers were considered liabilities; still, this model's accuracy and moderate recoil make for a serviceable sidearm, and there are no magazines for you to lose or damage.", "clip_size": 6, - "magazines": [ [ "ammo_pistol", [ "pistol_speedloader" ] ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "ammo_pistol": 6 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "ammo_pistol": 6 } } ] }, { "id": "pistol_smg", @@ -54,7 +77,15 @@ "name": "submachine gun", "ammo": [ "ammo_pistol" ], "description": "Chambered in common pistol ammunition, this compact long arm is perfect for trench raiders, vehicular crewmen, SWAT teams and special forces. Though not as accurate as a proper rifle, especially at longer ranges, it is very controllable in automatic fire. It feeds from detachable box magazines, which are easy to unload into close range targets.", - "magazines": [ [ "ammo_pistol", [ "pistol_mag", "pistol_smg_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_mag", "pistol_smg_mag" ] + } + ] }, { "id": "pistol_pipe_smg", @@ -63,6 +94,14 @@ "name": "survivor subgun", "ammo": [ "ammo_pistol" ], "description": "A crudely constructed fully automatic submachinegun, accepting standard pistol and submachine gun magazines. The heavy bolt makes accurate fire difficult, and its questionable construction makes for poor reliability and longevity. Similar designs of desperation from the Second World War served their nations well enough, so this should be good for zombies... right? Accepts standard pistol ammunition.", - "magazines": [ [ "ammo_pistol", [ "pistol_mag", "pistol_smg_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_mag", "pistol_smg_mag" ] + } + ] } ] diff --git a/data/mods/Generic_Guns/firearms/pistol_magnum.json b/data/mods/Generic_Guns/firearms/pistol_magnum.json index e03a8a6b6abaf..f1079f276cb95 100644 --- a/data/mods/Generic_Guns/firearms/pistol_magnum.json +++ b/data/mods/Generic_Guns/firearms/pistol_magnum.json @@ -7,7 +7,15 @@ "ammo": [ "ammo_pistol_magnum", "ammo_pistol" ], "//": "We're just going to prtend that .357 and .44 magnum deagles will run .38's and .44 special just fine", "description": "This large pistol is almost as heavy as a small carbine, and just about as powerful too. Chambered in hard hitting magnum calibers, it is suitable for hunting medium game, humans, or offsetting any of one's perceived deficiencies. Though tradtionally such magnums are revolvers, this one is a magazine fed semi-automatic.", - "magazines": [ [ "ammo_pistol", [ "pistol_magnum_mag" ] ], [ "ammo_pistol_magnum", [ "pistol_magnum_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_magnum_mag", "pistol_magnum_mag" ] + } + ] }, { "id": "pistol_magnum_levergun", @@ -47,7 +55,15 @@ [ "sights mount", 1 ], [ "underbarrel mount", 1 ] ], - "magazines": [ [ "ammo_pistol", [ "pistol_magnum_mag" ] ], [ "ammo_pistol_magnum", [ "pistol_magnum_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_magnum_mag", "pistol_magnum_mag" ] + } + ] }, { "id": "pistol_magnum_pipe", @@ -68,7 +84,6 @@ "ammo": [ "ammo_pistol_magnum", "ammo_pistol" ], "description": "Early handgun hunters helped develop this revolver's magnum ammunition from standard calibers, which needed heavier revolvers to safely fire it. These revolvers' cylinders can thus chamber both magnum and standard pistol ammunition. You could take medium to large game with this hefty piece.", "clip_size": 6, - "magazines": [ [ "ammo_pistol", [ "pistol_speedloader" ] ], [ "ammo_pistol_magnum", [ "pistol_speedloader" ] ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "ammo_pistol_magnum": 6, "ammo_pistol": 6 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "ammo_pistol_magnum": 6, "ammo_pistol": 6 } } ] } ] diff --git a/data/mods/Generic_Guns/firearms/pistol_tiny.json b/data/mods/Generic_Guns/firearms/pistol_tiny.json index 580a63c88bf11..9bcd8504c2421 100644 --- a/data/mods/Generic_Guns/firearms/pistol_tiny.json +++ b/data/mods/Generic_Guns/firearms/pistol_tiny.json @@ -7,8 +7,15 @@ "ammo": [ "ammo_pistol_tiny" ], "description": "With near non-existent recoil and inexpensive ammunition, rifles like this one are popular introductory firearms. It has a built in magazine, capable of holding an impressive amount of its small cartridges. You could take small game with this, but anything bigger might not even notice.", "clip_size": 19, - "magazines": [ ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "ammo_pistol_tiny": 19 } } ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ ] + } + ] }, { "id": "pistol_tiny_target", @@ -17,7 +24,15 @@ "name": "target pistol", "ammo": [ "ammo_pistol_tiny" ], "description": "This medium sized pistol fires cheap and plentiful plinking ammo, and is exceptionally popular for practice or target shooting. This pistol is unsuited for taking on anything but small game, as it is meant to poke holes in paper. Accepts box magazines.", - "magazines": [ [ "ammo_pistol_tiny", [ "pistol_tiny_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_tiny_mag" ] + } + ] }, { "id": "pistol_tiny_zip", diff --git a/data/mods/Generic_Guns/firearms/rifle.json b/data/mods/Generic_Guns/firearms/rifle.json index 7fff5f4946410..bfb9f1f249876 100644 --- a/data/mods/Generic_Guns/firearms/rifle.json +++ b/data/mods/Generic_Guns/firearms/rifle.json @@ -6,7 +6,15 @@ "name": { "str": "assault rifle" }, "ammo": [ "ammo_rifle" ], "description": "The products of decades of improvement, rifle such as this are handy, reliable, and adaptable. An 'assault rifle', it is capable of providing both accurate semi-automatic fire and bursts of automatic fire. Short of large creatures and light vehicles, this should take care of most of your problems out to several hundred meters.", - "magazines": [ [ "ammo_rifle", [ "rifle_mag", "rifle_sniper_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rifle_mag", "rifle_sniper_mag" ] + } + ] }, { "id": "rifle_lmg", @@ -15,27 +23,15 @@ "name": { "str": "light machine gun" }, "ammo": [ "ammo_rifle" ], "description": "The light machine gun is a formidable implement for suppressive fire, an important part of squad tactics. Its belt feed allows for hundreds of rounds to be loaded, and its heavy components can withstand long bursts of fire. While perhaps not as precise as a service rifle, a light machinegun does allow for a considerable amount of energy to be sent down range. Slow to reload.", - "magazines": [ [ "ammo_rifle", [ "rifle_belt" ] ] ] - }, - { - "id": "rifle_pipe_rifle", - "copy-from": "rifle_308", - "type": "GUN", - "name": { "str": "pipe rifle" }, - "ammo": [ "ammo_rifle" ], - "description": "A crude longarm chambered in standard rifle ammunition, reinforced near the chamber. It holds a single a round and has a crude assembly to fire it. There's no extractor, so it might be slow to reload, and its construction makes for poor reliability and longevity.", - "clip_size": 1, - "magazines": [ ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "ammo_rifle": 1 } } ] - }, - { - "id": "rifle_pipe_carbine", - "copy-from": "surv_carbine_223", - "type": "GUN", - "name": "survivor carbine", - "ammo": [ "ammo_rifle" ], - "description": "A crudely constructed carbine chambered for standard rifle ammo, fed from service rifle magazines. It locks with a rudimentary lever action system. The high pressures involved and questionable construction make for less than ideal durability and reliability, but this should still be a serviceable weapon, provided you can stay accurate with it.", - "magazines": [ [ "ammo_rifle", [ "rifle_mag", "rifle_sniper_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rifle_belt" ] + } + ] }, { "id": "rifle_sniper", @@ -44,7 +40,15 @@ "name": "sniper rifle", "ammo": [ "ammo_rifle" ], "description": "Sniper rifles fill military, police and civilian needs for precise, accurate fire. Modern examples feature detachable magazines and various mounting interfaces for optics and supports. With care and practice, all should be quite capable of eliminating bipedal threats from very safe ranges. ", - "magazines": [ [ "ammo_rifle", [ "rifle_sniper_mag", "rifle_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rifle_sniper_mag", "rifle_mag" ] + } + ] }, { "id": "rifle_sporter", @@ -53,6 +57,14 @@ "name": "sporter carbine", "ammo": [ "ammo_rifle" ], "description": "Though often mislabeled an asssault rifle, this common, cheap magazine fed carbine isn't capable of automatic fire. While almost as effective as a proper rifle, the wider variety of components and varying levels of maintenance make these less reliable than their military brethren. These rifles are just as adequate for taking on anything smaller than large game, however.", - "magazines": [ [ "ammo_rifle", [ "rifle_mag", "rifle_sniper_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rifle_mag", "rifle_sniper_mag" ] + } + ] } ] diff --git a/data/mods/Generic_Guns/firearms/rifle_huge.json b/data/mods/Generic_Guns/firearms/rifle_huge.json index 46c7b65fb38e0..9c4c628e63fe6 100644 --- a/data/mods/Generic_Guns/firearms/rifle_huge.json +++ b/data/mods/Generic_Guns/firearms/rifle_huge.json @@ -6,7 +6,15 @@ "name": { "str": "anti-materiel rifle" }, "ammo": [ "ammo_rifle_huge" ], "description": "Large, intimidating, and overbuilt, this hefty rifle fires huge projectiles with relative precision. Though it resembles a sniper rifle, this anti-material weapon is best suited for blinding tanks, shooting at aircraft, or destroying explosives. It feeds from comically oversized magazines.", - "magazines": [ [ "ammo_rifle_huge", [ "rifle_huge_amr_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rifle_huge_amr_mag" ] + } + ] }, { "id": "rifle_huge_double", @@ -27,6 +35,14 @@ "name": { "str": "heavy machine gun" }, "ammo": [ "ammo_rifle_huge" ], "description": "This large, ungainly belt-fed machine gun fires huge projectiles, originally intended for turn of the century anti-vehicular use. While no longer suitable for modern tanks or aircraft, thinner skinned vehicles or drones are just as susceptible, as are any other 'smaller' threats. Slow to reload, incredibly loud, and must be mounted to be fired.", - "magazines": [ [ "ammo_rifle_huge", [ "rifle_huge_belt" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rifle_huge_belt" ] + } + ] } ] diff --git a/data/mods/Generic_Guns/firearms/shot.json b/data/mods/Generic_Guns/firearms/shot.json index eb7cde8535d55..8acbfbdcc31db 100644 --- a/data/mods/Generic_Guns/firearms/shot.json +++ b/data/mods/Generic_Guns/firearms/shot.json @@ -32,7 +32,15 @@ "name": "tactical shotgun", "ammo": [ "ammo_shot" ], "description": "A detachable magazine fed shotgun, mostly oriented towards overly enthusiastic civilians. Featuring rails and a menacing black appearance, this sort of shotgun doesn't really look like it has a sporting use. The magazines reduce lengthy reloading times associated with shotguns. Though known for being somewhat finicky, these can be tuned to run with some reliability.", - "magazines": [ [ "ammo_shot", [ "shot_mag" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "shot_mag" ] + } + ] }, { "id": "bio_shotgun_gun", diff --git a/data/mods/Generic_Guns/magazines/grenade.json b/data/mods/Generic_Guns/magazines/grenade.json index 6d8f85d63fe73..cee4c228ef64e 100644 --- a/data/mods/Generic_Guns/magazines/grenade.json +++ b/data/mods/Generic_Guns/magazines/grenade.json @@ -12,7 +12,6 @@ "ammo_type": [ "ammo_grenade" ], "capacity": 50, "count": 25, - "reliability": 6, "linkage": "ammolinkgrenade", "flags": [ "MAG_BELT", "MAG_DESTROY" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "ammo_grenade": 50 } } ] diff --git a/data/mods/Generic_Guns/magazines/shot.json b/data/mods/Generic_Guns/magazines/shot.json index 733bc27e2708b..83a5aeb66b8b2 100644 --- a/data/mods/Generic_Guns/magazines/shot.json +++ b/data/mods/Generic_Guns/magazines/shot.json @@ -6,7 +6,6 @@ "name": "shotgun box magazine", "capacity": 8, "material": "plastic", - "reliability": 6, "description": "An 8 round box magazine for tactical shotguns. Shotshells tend to not work well in box magazines due to their plastic hulls and the compression from the magazine spring.", "ammo_type": [ "ammo_shot" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "ammo_shot": 8 } } ] diff --git a/data/mods/Generic_Guns/obsolete.json b/data/mods/Generic_Guns/obsolete.json new file mode 100644 index 0000000000000..452cccd75d252 --- /dev/null +++ b/data/mods/Generic_Guns/obsolete.json @@ -0,0 +1,47 @@ +[ + { + "id": "rifle_pipe_rifle", + "copy-from": "rifle_308", + "type": "GUN", + "name": { "str": "pipe rifle" }, + "ammo": [ "ammo_rifle" ], + "description": "A crude longarm chambered in standard rifle ammunition, reinforced near the chamber. It holds a single a round and has a crude assembly to fire it. There's no extractor, so it might be slow to reload, and its construction makes for poor reliability and longevity.", + "clip_size": 1, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ ] + } + ] + }, + { + "id": "rifle_pipe_carbine", + "copy-from": "surv_carbine_223", + "type": "GUN", + "name": "survivor carbine", + "ammo": [ "ammo_rifle" ], + "description": "A crudely constructed carbine chambered for standard rifle ammo, fed from service rifle magazines. It locks with a rudimentary lever action system. The high pressures involved and questionable construction make for less than ideal durability and reliability, but this should still be a serviceable weapon, provided you can stay accurate with it.", + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "rifle_mag", "rifle_sniper_mag" ] + } + ] + }, + { + "type": "recipe", + "result": "rifle_pipe_carbine", + "obsolete": true + }, + { + "type": "recipe", + "result": "rifle_pipe_rifle", + "obsolete": true + } +] diff --git a/data/mods/Generic_Guns/recipes/recipes_firearms_repeater.json b/data/mods/Generic_Guns/recipes/recipes_firearms_repeater.json index cf40b9febfde4..65cd712efc726 100644 --- a/data/mods/Generic_Guns/recipes/recipes_firearms_repeater.json +++ b/data/mods/Generic_Guns/recipes/recipes_firearms_repeater.json @@ -56,31 +56,6 @@ ], "components": [ [ [ "pipe", 2 ] ], [ [ "spring", 1 ] ], [ [ "steel_chunk", 3 ] ], [ [ "2x4", 1 ] ], [ [ "scrap", 3 ] ] ] }, - { - "result": "rifle_pipe_carbine", - "type": "recipe", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_RANGED", - "skill_used": "mechanics", - "skills_required": [ "gun", 3 ], - "difficulty": 7, - "time": "3 h", - "autolearn": true, - "using": [ [ "welding_standard", 15 ] ], - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "tools": [ - [ - [ "rifle_ball", -1 ], - [ "rifle_AP", -1 ], - [ "reloaded_rifle_ball", -1 ], - [ "reloaded_rifle_AP", -1 ], - [ "bp_rifle_ball", -1 ], - [ "bp_rifle_AP", -1 ], - [ "rifle_casing", -1 ] - ] - ], - "components": [ [ [ "pipe", 2 ] ], [ [ "spring", 1 ] ], [ [ "steel_chunk", 3 ] ], [ [ "2x4", 1 ] ], [ [ "scrap", 3 ] ] ] - }, { "type": "recipe", "result": "black_powder_revolver", diff --git a/data/mods/Generic_Guns/recipes/recipes_firearms_single.json b/data/mods/Generic_Guns/recipes/recipes_firearms_single.json index 1d63b40db30fb..b1ed34bd60437 100644 --- a/data/mods/Generic_Guns/recipes/recipes_firearms_single.json +++ b/data/mods/Generic_Guns/recipes/recipes_firearms_single.json @@ -55,31 +55,6 @@ ], "components": [ [ [ "pipe", 1 ] ], [ [ "scrap", 2 ] ], [ [ "steel_chunk", 1 ] ], [ [ "2x4", 1 ] ] ] }, - { - "result": "rifle_pipe_rifle", - "type": "recipe", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_RANGED", - "skill_used": "mechanics", - "skills_required": [ "gun", 3 ], - "difficulty": 4, - "time": "30 m", - "reversible": true, - "autolearn": true, - "tools": [ - [ - [ "rifle_ball", -1 ], - [ "rifle_AP", -1 ], - [ "bp_rifle_ball", -1 ], - [ "bp_rifle_AP", -1 ], - [ "reloaded_rifle_ball", -1 ], - [ "reloaded_rifle_AP", -1 ], - [ "rifle_casing", -1 ] - ] - ], - "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ [ [ "pipe", 2 ] ], [ [ "spring", 1 ] ], [ [ "steel_chunk", 3 ] ], [ [ "2x4", 1 ] ], [ [ "scrap", 3 ] ] ] - }, { "result": "shot_pipe_double", "type": "recipe", diff --git a/data/mods/Graphical_Overmap_Magiclysm/go_overmap_terrain_magical.json b/data/mods/Graphical_Overmap_Magiclysm/go_overmap_terrain_magical.json new file mode 100644 index 0000000000000..2fb099030e5bb --- /dev/null +++ b/data/mods/Graphical_Overmap_Magiclysm/go_overmap_terrain_magical.json @@ -0,0 +1,351 @@ +[ + { + "type": "overmap_terrain", + "id": "magic_shop", + "copy-from": "magic_shop", + "sym": "\u00FF" + }, + { + "type": "overmap_terrain", + "id": "magic_shop_2ndfloor", + "copy-from": "magic_shop_2ndfloor", + "sym": "\u00FF" + }, + { + "type": "overmap_terrain", + "id": "magic_shop_roof", + "copy-from": "magic_shop_roof", + "sym": "\u00FF" + }, + { + "type": "overmap_terrain", + "id": "magic_cabin", + "copy-from": "magic_cabin", + "sym": "\u00E2" + }, + { + "type": "overmap_terrain", + "id": "magic_cabin_roof", + "copy-from": "magic_cabin_roof", + "sym": "\u00E2" + }, + { + "type": "overmap_terrain", + "id": "demon_spider_lair", + "copy-from": "demon_spider_lair", + "sym": "\u00E8" + }, + { + "type": "overmap_terrain", + "id": "used_bookstore", + "copy-from": "used_bookstore", + "sym": "\u00E7" + }, + { + "type": "overmap_terrain", + "id": "used_bookstore_roof", + "copy-from": "used_bookstore_roof", + "sym": "\u00E7" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-0_NW", + "copy-from": "black_dragon_lair_z-0_NW", + "sym": "\u00E8" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-0_NE", + "copy-from": "black_dragon_lair_z-0_NE", + "sym": "\u00E8" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-0_SW", + "copy-from": "black_dragon_lair_z-0_SW", + "sym": "\u00E8" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-0_SE", + "copy-from": "black_dragon_lair_z-0_SE", + "sym": "\u00E8" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-1_NW", + "copy-from": "black_dragon_lair_z-1_NW", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-1_NE", + "copy-from": "black_dragon_lair_z-1_NE", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-1_SW", + "copy-from": "black_dragon_lair_z-1_SW", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-1_SE", + "copy-from": "black_dragon_lair_z-1_SE", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-2_NW", + "copy-from": "black_dragon_lair_z-2_NW", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-2_NE", + "copy-from": "black_dragon_lair_z-2_NE", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-2_SW", + "copy-from": "black_dragon_lair_z-2_SW", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-2_SE", + "copy-from": "black_dragon_lair_z-2_SE", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-3_NW", + "copy-from": "black_dragon_lair_z-3_NW", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-3_NE", + "copy-from": "black_dragon_lair_z-3_NE", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-3_SW", + "copy-from": "black_dragon_lair_z-3_SW", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-3_SE", + "copy-from": "black_dragon_lair_z-3_SE", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-4_NW", + "copy-from": "black_dragon_lair_z-4_NW", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-4_NE", + "copy-from": "black_dragon_lair_z-4_NE", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-4_SW", + "copy-from": "black_dragon_lair_z-4_SW", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "black_dragon_lair_z-4_SE", + "copy-from": "black_dragon_lair_z-4_SE", + "sym": "\u00AE" + }, + { + "type": "overmap_terrain", + "id": "lake_retreat_ground", + "copy-from": "lake_retreat_ground", + "sym": "\u00ED" + }, + { + "type": "overmap_terrain", + "id": "lake_retreat_z1", + "copy-from": "lake_retreat_z1", + "sym": "\u00ED" + }, + { + "type": "overmap_terrain", + "id": "lake_retreat_z2", + "copy-from": "lake_retreat_z2", + "sym": "\u00ED" + }, + { + "type": "overmap_terrain", + "id": "lake_retreat_z3", + "copy-from": "lake_retreat_z3", + "sym": "\u00ED" + }, + { + "type": "overmap_terrain", + "id": "lake_retreat_z4", + "copy-from": "lake_retreat_z4", + "sym": "\u00ED" + }, + { + "type": "overmap_terrain", + "id": "lake_retreat_boathouse", + "copy-from": "lake_retreat_boathouse", + "sym": "\u00E7" + }, + { + "type": "overmap_terrain", + "id": "lake_retreat_boathouse_roof", + "copy-from": "lake_retreat_boathouse_roof", + "sym": "\u00E7" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_ground", + "copy-from": "wizardtower1_ground", + "sym": "\u00ED" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_living", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_golems", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_study", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_roof", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_ground", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_stairs1", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_stairs2", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_study", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_roof", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "forest_tomb", + "copy-from": "forest_tomb", + "sym": "\u00EA" + }, + { + "type": "overmap_terrain", + "id": "forest_tomb_roof", + "copy-from": "forest_tomb", + "sym": "\u00EA" + }, + { + "type": "overmap_terrain", + "id": "forest_tomb_bottom", + "copy-from": "forest_tomb", + "sym": "\u00EA" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_ground", + "copy-from": "magic_academy_ground", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_2nd", + "copy-from": "magic_academy_2nd", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_3rd", + "copy-from": "magic_academy_3rd", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_4th", + "copy-from": "magic_academy_4th", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_5th", + "copy-from": "magic_academy_5th", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_6th", + "copy-from": "magic_academy_6th", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_7th", + "copy-from": "magic_academy_7th", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_8th", + "copy-from": "magic_academy_8th", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_basement", + "copy-from": "magic_academy_basement", + "color": "cyan", + "sym": "\u00C1" + }, + { + "type": "overmap_terrain", + "id": "magic_academy_roof", + "copy-from": "magic_academy_roof", + "color": "cyan", + "sym": "\u00C1" + } +] diff --git a/data/mods/Graphical_Overmap_Magiclysm/modinfo.json b/data/mods/Graphical_Overmap_Magiclysm/modinfo.json new file mode 100644 index 0000000000000..eeb0dc6ebf692 --- /dev/null +++ b/data/mods/Graphical_Overmap_Magiclysm/modinfo.json @@ -0,0 +1,13 @@ +[ + { + "type": "MOD_INFO", + "ident": "Graphical_Overmap_Magiclysm", + "name": "Graphical Overmap Magiclysm", + "authors": [ "Nphyx" ], + "maintainers": [ "Nphyx" ], + "description": "Magiclysm support for Graphical Overmap.", + "category": "graphical", + "dependencies": [ "dda", "Graphical_Overmap", "magiclysm" ], + "obsolete": false + } +] diff --git a/data/mods/MMA/martial.json b/data/mods/MMA/martial.json index c1ad4c2843159..57b9a8f53e39d 100644 --- a/data/mods/MMA/martial.json +++ b/data/mods/MMA/martial.json @@ -1,4 +1,40 @@ [ + { + "id": "manual_mma_desert_wind", + "copy-from": "book_martial", + "looks_like": "manual_karate", + "type": "GENERIC", + "name": { "str_sp": "Scorching Sirocco" }, + "description": "This book contains the teaching of the Desert Wind discipline.", + "book_data": { "martial_art": "style_mma_desert_wind" } + }, + { + "id": "manual_mma_diamond_mind", + "copy-from": "book_martial", + "looks_like": "manual_karate", + "type": "GENERIC", + "name": { "str_sp": "Perfect Clarity of Mind and Body" }, + "description": "This book contains the teaching of the Diamond Mind discipline.", + "book_data": { "martial_art": "style_mma_diamond_mind" } + }, + { + "id": "manual_mma_hylian", + "copy-from": "book_martial", + "looks_like": "manual_karate", + "type": "GENERIC", + "name": { "str_sp": "The Book of Mudora" }, + "description": "A collection of ancient Hylian lore and stories. A section on historic battles is bookmarked.", + "book_data": { "martial_art": "style_mma_hylian" } + }, + { + "id": "manual_mma_iron_heart", + "copy-from": "book_martial", + "looks_like": "manual_karate", + "type": "GENERIC", + "name": { "str_sp": "Stormguard Warrior" }, + "description": "This book contains the teaching of the Iron Heart discipline.", + "book_data": { "martial_art": "style_mma_iron_heart" } + }, { "id": "manual_mma_panzer", "copy-from": "book_martial", @@ -7,5 +43,23 @@ "name": { "str_sp": "The Life and Work of Tiger Sauer" }, "description": "A biography of a combat cyborg agent detailing his philosophy and martial art.", "book_data": { "martial_art": "style_mma_panzer" } + }, + { + "id": "manual_mma_pokken", + "copy-from": "book_martial", + "looks_like": "manual_karate", + "type": "GENERIC", + "name": { "str_sp": "Pocket Monster Encyclopedia" }, + "description": "This encyclopedia contains a detailed listing of the strengths and techniques of various fictional monsters and how to apply them the in a real fight.", + "book_data": { "martial_art": "style_mma_pokken" } + }, + { + "id": "manual_mma_setting_sun", + "copy-from": "book_martial", + "looks_like": "manual_karate", + "type": "GENERIC", + "name": { "str_sp": "Distant Horizon" }, + "description": "This book contains the teaching of the Setting Sun discipline.", + "book_data": { "martial_art": "style_mma_setting_sun" } } ] diff --git a/data/mods/MMA/martialarts.json b/data/mods/MMA/martialarts.json index 19b69608bdb8a..37a5d8489f1c8 100644 --- a/data/mods/MMA/martialarts.json +++ b/data/mods/MMA/martialarts.json @@ -1,4 +1,271 @@ [ + { + "type": "martial_art", + "id": "style_mma_desert_wind", + "name": { "str": "Desert Wind" }, + "description": "Desert Wind maneuvers focus on quick movement and swirling, flaming strikes. The complex spinning and slashing of the curved blade incorporated into many Desert Wind maneuvers are in fact carefully honed gestures that evoke the power of fire, if performed correctly and with the proper focus.", + "initiate": [ + "You feel a wave of heat wash over you as you assume a running combat stance.", + "%s assumes into a running combat stance." + ], + "learn_difficulty": 10, + "primary_skill": "cutting", + "strictly_melee": true, + "ondodge_buffs": [ + { + "id": "mma_buff_desert_wind_ondodge", + "name": "Zephyr Dance", + "description": "You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n\n+1.0 Dodging skill, +1 Dodge attempt\nLasts 1 turn.", + "skill_requirements": [ { "name": "melee", "level": 3 } ], + "melee_allowed": true, + "buff_duration": 2, + "bonus_dodges": 1, + "flat_bonuses": [ { "stat": "dodge", "scale": 1.0 } ] + } + ], + "onmove_buffs": [ + { + "id": "mma_buff_desert_wind_onmove", + "name": "Wind Stride", + "description": "A warm breeze swirls about you as you move speedily away.\n\n+1.0 Dodging skill.\nLasts 1 turn.", + "skill_requirements": [ { "name": "melee", "level": 3 } ], + "melee_allowed": true, + "buff_duration": 1, + "max_stacks": 2, + "flat_bonuses": [ { "stat": "dodge", "scale": 1.0 } ] + } + ], + "techniques": [ + "mma_tec_desert_wind_strike", + "mma_tec_desert_wind_crit", + "mma_tec_desert_wind_impale", + "mma_tec_desert_wind_spin", + "mma_tec_desert_wind_wide" + ], + "weapons": [ + "mace", + "mace_inferior", + "mace_fake", + "scimitar", + "scimitar_inferior", + "scimitar_fake", + "spear_knife", + "spear_knife_superior", + "spear_spike", + "spear_rebar", + "spear_pipe", + "spear_forked", + "spear_steel", + "spear_wood", + "spear_copper", + "spear_homemade_halfpike", + "sword_wood" + ] + }, + { + "type": "martial_art", + "id": "style_mma_diamond_mind", + "name": { "str": "Diamond Mind" }, + "description": "True quickness lies in the mind, not the body. A student of the Diamond Mind discipline seeks to hone his perceptions and discipline his thoughts so that he can act in slivers of time so narrow that others cannot even perceive them. A corollary of this speed of thought and action is the concept of the mind as the battleground. An enemy defeated in his mind must inevitably.", + "initiate": [ "You concentrate and become very still for a moment.", "%s becomes very still for a moment." ], + "learn_difficulty": 10, + "primary_skill": "cutting", + "strictly_melee": true, + "static_buffs": [ + { + "id": "mma_buff_diamond_mind_static", + "name": "Stance of Alacrity", + "description": "You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n\n-10% move cost", + "skill_requirements": [ { "name": "melee", "level": 3 } ], + "melee_allowed": true, + "mult_bonuses": [ { "stat": "movecost", "scale": 0.85 } ] + } + ], + "ondodge_buffs": [ + { + "id": "mma_buff_diamond_mind_ondodge", + "name": "Pearl of Black Doubt", + "description": "With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n\n+1 Dodge attempt\nLasts 1 turn. Stacks 2 times", + "melee_allowed": true, + "buff_duration": 1, + "max_stacks": 2, + "bonus_dodges": 1 + } + ], + "ongethit_buffs": [ + { + "id": "mma_buff_diamond_mind_ongethit", + "name": "Mind over Body", + "description": "Your training and mental toughness allow you to use your focus to overcome physical threats.\n\n+1 Accuracy.\nLasts 1 turn. Stacks 2 times", + "skill_requirements": [ { "name": "melee", "level": 2 } ], + "melee_allowed": true, + "buff_duration": 1, + "max_stacks": 2, + "flat_bonuses": [ { "stat": "hit", "scale": 1.0 } ] + } + ], + "onpause_buffs": [ + { + "id": "mma_buff_diamond_mind_onpause", + "name": "Quicksilver Motion", + "description": "In the blink of an eye, you make your move. Your speed, reflexes, and boundless confidence combine to allow you to make a fast, bold move that catches your foes off guard.\n\n+50 Speed.\nLasts 1 turn.", + "skill_requirements": [ { "name": "melee", "level": 5 } ], + "melee_allowed": true, + "buff_duration": 1, + "flat_bonuses": [ { "stat": "speed", "scale": 50.0 } ] + } + ], + "techniques": [ "mma_tec_diamond_mind_strike", "mma_tec_diamond_mind_crit" ], + "weapons": [ + "fencing_foil", + "fencing_epee", + "fencing_foil_sharpened", + "fencing_epee_sharpened", + "katana", + "katana_inferior", + "katana_fake", + "pointy_stick", + "rapier", + "rapier_fake", + "shock_foil", + "shock_epee" + ] + }, + { + "type": "martial_art", + "id": "style_mma_hylian", + "name": { "str": "Hylian Swordsmanship" }, + "description": "This rare form of combat has been practiced by many legendary heroes throughout the ages. Hylian Swordsmanship favors mobility for offense and defense by using spins, jumps, and flips to confuse enemies and strike from unexpected angles.", + "initiate": [ "You begin to step lightly from side to side.", "%s begins to step lightly from side to side." ], + "learn_difficulty": 10, + "primary_skill": "cutting", + "strictly_melee": true, + "static_buffs": [ + { + "id": "mma_buff_hylian_static1", + "name": "Combat Acrobat", + "description": "Always stay light on your feet. It is better to evade than be hit.\n\n+1.0 Dodging skill.", + "melee_allowed": true, + "flat_bonuses": [ { "stat": "hit", "scale": 1.0 } ] + }, + { + "id": "mma_buff_hylian_static2", + "name": "Intermediate Combat Acrobat", + "description": "After a great deal of practice, you have become even more nimble in a battle.\n\n+1.0 Dodging skill.", + "skill_requirements": [ { "name": "melee", "level": 3 } ], + "melee_allowed": true, + "flat_bonuses": [ { "stat": "dodge", "scale": 1.0 } ] + }, + { + "id": "mma_buff_hylian_static3", + "name": "Master Combat Acrobat", + "description": "You have seen so much combat that your dodging skills have become top notch!\n\n+1.0 Dodging skill.", + "skill_requirements": [ { "name": "melee", "level": 5 } ], + "melee_allowed": true, + "flat_bonuses": [ { "stat": "dodge", "scale": 1.0 } ] + } + ], + "ondodge_buffs": [ + { + "id": "mma_buff_hylian_ondodge", + "name": "Flurry Rush", + "description": "When you perfectly dodge an attack, you can attack rapidly for a short time.\n\n-25% move cost.\nLasts 1 turn.", + "skill_requirements": [ { "name": "melee", "level": 2 } ], + "melee_allowed": true, + "buff_duration": 1, + "mult_bonuses": [ { "stat": "movecost", "scale": 0.75 } ] + } + ], + "onmove_buffs": [ + { + "id": "mma_buff_hylian_onmove", + "name": "Dash Attack", + "description": "Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n\n+10% damage.\nLasts 1 turn. Stacks 3 times.", + "skill_requirements": [ { "name": "melee", "level": 1 } ], + "melee_allowed": true, + "buff_duration": 1, + "max_stacks": 3, + "mult_bonuses": [ + { "stat": "damage", "type": "bash", "scale": 1.1 }, + { "stat": "damage", "type": "cut", "scale": 1.1 }, + { "stat": "damage", "type": "stab", "scale": 1.1 } + ] + } + ], + "onpause_buffs": [ + { + "id": "mma_buff_hylian_onpause", + "name": "Charge Up", + "description": "By taking a moment to prepare, you can unleash a strong, spinning slash!\n\n+20% damage, enables \"Spin Attack\" technique.\nLasts 1 turn.", + "skill_requirements": [ { "name": "melee", "level": 4 } ], + "melee_allowed": true, + "buff_duration": 1, + "mult_bonuses": [ + { "stat": "damage", "type": "bash", "scale": 1.2 }, + { "stat": "damage", "type": "cut", "scale": 1.2 }, + { "stat": "damage", "type": "stab", "scale": 1.2 } + ] + } + ], + "techniques": [ "mma_tec_hylian_spin", "mma_tec_hylian_wide" ], + "weapons": [ + "broadsword", + "broadsword_inferior", + "broadsword_fake", + "cudgel", + "katana", + "katana_inferior", + "katana_fake", + "ladle", + "longsword", + "longsword_inferior", + "longsword_fake", + "sickle", + "stick", + "sword_wood", + "torch", + "torch_lit", + "zweihander", + "zweihander_inferior", + "zweihander_fake" + ] + }, + { + "type": "martial_art", + "id": "style_mma_iron_heart", + "name": { "str": "Iron Heart" }, + "description": "Absolute mastery of the sword is the goal of the Iron Heart discipline. Through unending practice and study, the Iron Heart adept achieves superhuman skill with her weapons. Iron Heart maneuvers are demonstrations of uncanny martial skill—weaving patterns of steel that dizzy, confuse, and ultimately kill with no recourse.", + "initiate": [ "You push away your fear and stand tall.", "%s takes a bold and fearless stance." ], + "learn_difficulty": 10, + "primary_skill": "cutting", + "strictly_melee": true, + "techniques": [ + "mma_tec_iron_heart_disarm", + "mma_tec_iron_heart_feint", + "mma_tec_iron_heart_execute", + "mma_tec_iron_heart_stun", + "mma_tec_iron_heart_wide", + "mma_tec_iron_heart_wide_crit" + ], + "weapons": [ + "arming_sword", + "arming_sword_inferior", + "arming_sword_fake", + "broadsword", + "broadsword_inferior", + "broadsword_fake", + "hand_axe", + "hatchet", + "katana", + "katana_inferior", + "katana_fake", + "longsword", + "longsword_inferior", + "longsword_fake", + "makeshift_axe", + "sword_wood" + ] + }, { "type": "martial_art", "id": "style_mma_panzer", @@ -38,5 +305,101 @@ ], "techniques": [ "mma_tec_panzer_counter", "mma_tec_panzer_somersault", "mma_tec_panzer_precise", "mma_tec_panzer_rapid" ], "weapons": [ "bio_claws_weapon", "bio_blade_weapon" ] + }, + { + "type": "martial_art", + "id": "style_mma_pokken", + "name": { "str": "Pokken" }, + "description": "Pokken or \"Pocket Fist\" is a strange martial art developed from the famous Pokemon video game series. Somehow, a group of dedicated fans managed to combine the moves used by various pokemon with multiple existing martial arts such as boxing and karate. Amazingly, it actually works. Some might even say it's a super effective way to fight.", + "initiate": [ "You get ready to battle.", "%s is about to challenge someone to a battle." ], + "learn_difficulty": 10, + "primary_skill": "bashing", + "oncrit_buffs": [ + { + "id": "mma_buff_pokken_oncrit", + "name": "Sniper", + "description": "Powers up your techniques after you score a critical hit.\n\n+50% damage.\nLasts 1 turn.", + "skill_requirements": [ { "name": "unarmed", "level": 2 } ], + "unarmed_allowed": true, + "buff_duration": 1, + "mult_bonuses": [ + { "stat": "damage", "type": "bash", "scale": 1.5 }, + { "stat": "damage", "type": "cut", "scale": 1.5 }, + { "stat": "damage", "type": "stab", "scale": 1.5 } + ] + } + ], + "ongethit_buffs": [ + { + "id": "mma_buff_pokken_ongethit", + "name": "Stamina", + "description": "Boosts your defense after you get hit.\n\nGain bash, cut, stab armor equal to 50% of Strength.\nLasts 3 turns.", + "skill_requirements": [ { "name": "unarmed", "level": 3 } ], + "unarmed_allowed": true, + "buff_duration": 3, + "flat_bonuses": [ + { "stat": "armor", "type": "bash", "scaling-stat": "str", "scale": 0.5 }, + { "stat": "armor", "type": "cut", "scaling-stat": "str", "scale": 0.5 }, + { "stat": "armor", "type": "stab", "scaling-stat": "str", "scale": 0.5 } + ] + } + ], + "onkill_buffs": [ + { + "id": "mma_buff_pokken_onkill", + "name": "Moxie", + "description": "Boosts your damage after defeating an opponent.\n\n+50% damage.\nLasts 3 turns.", + "skill_requirements": [ { "name": "unarmed", "level": 1 } ], + "unarmed_allowed": true, + "buff_duration": 3, + "mult_bonuses": [ + { "stat": "damage", "type": "bash", "scale": 1.5 }, + { "stat": "damage", "type": "cut", "scale": 1.5 }, + { "stat": "damage", "type": "stab", "scale": 1.5 } + ] + } + ], + "techniques": [ "mma_tec_pokken_kick", "mma_tec_pokken_lariat", "mma_tec_pokken_strike", "mma_tec_pokken_sweep" ] + }, + { + "type": "martial_art", + "id": "style_mma_setting_sun", + "name": { "str": "Setting Sun" }, + "description": "The Setting Sun discipline teaches its initiates to turn their opponents' strength against them With a quick shift in stance and carefully aimed attack, a Setting Sun warrior sends a charging enemy tumbling in a new direction.", + "initiate": [ "You shift your weight and prepare to defend yourself.", "%s shifts their weight and assumes a new stance." ], + "arm_block": 0, + "learn_difficulty": 10, + "primary_skill": "bashing", + "ongethit_buffs": [ + { + "id": "mma_buff_setting_sun_ongethit", + "name": "Feigned Opening", + "description": "By intentionally openning your guard, you force your opponent to overextend and are able to take full advantage of your next attack!\n\n+20 Speed.\nLasts 1 turn.", + "skill_requirements": [ { "name": "unarmed", "level": 1 } ], + "melee_allowed": true, + "unarmed_allowed": true, + "buff_duration": 1, + "flat_bonuses": [ { "stat": "speed", "scale": 20.0 } ] + } + ], + "onpause_buffs": [ + { + "id": "mma_buff_setting_sun_onpause", + "name": "Baffling Defense", + "description": "You intentionally move and position yourself awkwardly to confuse and throw off your opponents.\n\nDodging Skill increased by 20% of Intelligence, enables \"Mighty Throw\" and \"Ballista Throw\" techniques.\nLasts 1 turn.", + "skill_requirements": [ { "name": "unarmed", "level": 2 } ], + "melee_allowed": true, + "unarmed_allowed": true, + "buff_duration": 1, + "flat_bonuses": [ { "stat": "dodge", "scaling-stat": "int", "scale": 0.2 } ] + } + ], + "techniques": [ + "mma_tec_setting_sun_counter", + "mma_tec_setting_sun_stun", + "mma_tec_setting_sun_throw", + "mma_tec_setting_sun_throw_crit" + ], + "weapons": [ "i_staff", "shock_staff", "sword_crude", "sword_nail", "sword_wood", "q_staff" ] } ] diff --git a/data/mods/MMA/mutations.json b/data/mods/MMA/mutations.json index ebab6003b8fa2..1931519eb29e4 100644 --- a/data/mods/MMA/mutations.json +++ b/data/mods/MMA/mutations.json @@ -13,7 +13,7 @@ "type": "mutation", "id": "MMA_MARTIAL_ARTS_PANZER", "name": { "str": "Künstler" }, - "points": 3, + "points": 2, "description": "You have lingering memories of training to fight cyborgs and war machines in zero gravity using the obscure Panzer Kunst.", "starting_trait": true, "initial_ma_styles": [ "style_mma_panzer" ], @@ -29,10 +29,49 @@ "valid": false, "cancels": [ "LIGHTWEIGHT" ] }, + { + "type": "mutation", + "id": "MMA_MARTIAL_ARTS_HYLIAN", + "name": { "str": "Hero's Spirit" }, + "points": 3, + "description": "You have studied the deeds and legends of ancient heroes. From your research, you have learned an ancient form of combat called Hylian Swordsmanship.", + "starting_trait": true, + "initial_ma_styles": [ "style_mma_hylian" ], + "valid": false + }, + { + "type": "mutation", + "id": "KI_STRIKE", + "name": { "str": "Ki Strike" }, + "points": 2, + "description": "Who needs weapons? You deal more melee damage while unarmed. This damage improves as your unarmed skill increases.", + "starting_trait": true, + "valid": false + }, { "type": "mutation", "id": "LIGHTWEIGHT", "copy-from": "LIGHTWEIGHT", "extend": { "cancels": [ "DRUNKEN" ] } + }, + { + "type": "mutation", + "id": "MMA_MARTIAL_ARTS_POKKEN", + "name": { "str": "Pokken Master" }, + "points": 2, + "description": "You are well versed in the monsterous Pocket Fist martial art. Train well, because it is your destiny to be a master.", + "starting_trait": true, + "initial_ma_styles": [ "style_mma_pokken" ], + "valid": false + }, + { + "type": "mutation", + "id": "MMA_MARTIAL_ARTS_SUBLIME", + "name": { "str": "Martial Adept" }, + "points": 2, + "description": "You are a martial adept and learned one of the martial disciplines of the Sublime Way.", + "starting_trait": true, + "initial_ma_styles": [ "style_mma_desert_wind", "style_mma_diamond_mind", "style_mma_iron_heart", "style_mma_setting_sun" ], + "valid": false } ] diff --git a/data/mods/MMA/techniques.json b/data/mods/MMA/techniques.json index a6010240bed30..8a34987712c53 100644 --- a/data/mods/MMA/techniques.json +++ b/data/mods/MMA/techniques.json @@ -1,4 +1,178 @@ [ + { + "type": "technique", + "id": "mma_tec_desert_wind_strike", + "name": "Burning Blade", + "messages": [ "You unleash a fiery attack against %s", " unleash a fiery attack against %s" ], + "melee_allowed": true, + "flat_bonuses": [ { "stat": "damage", "type": "heat", "scale": 3.0 } ] + }, + { + "type": "technique", + "id": "mma_tec_desert_wind_crit", + "name": "Inferno Blade", + "messages": [ "You strike %s with powerful inferno", " strikes %s with powerful inferno" ], + "skill_requirements": [ { "name": "melee", "level": 1 } ], + "melee_allowed": true, + "crit_tec": true, + "flat_bonuses": [ { "stat": "damage", "type": "heat", "scale": 7.0 } ] + }, + { + "type": "technique", + "id": "mma_tec_desert_wind_impale", + "name": "Firesnake", + "messages": [ "You strike through %s with a snaking flame", " strikes through %s with a snaking flame" ], + "skill_requirements": [ { "name": "melee", "level": 4 } ], + "melee_allowed": true, + "crit_ok": true, + "aoe": "impale", + "flat_bonuses": [ { "stat": "damage", "type": "heat", "scale": 7.0 } ] + }, + { + "type": "technique", + "id": "mma_tec_desert_wind_spin", + "name": "Ring of Fire", + "messages": [ + "You become a flaming blur as you strike %s and those around you", + " becomes a flaming blur as they strike %s and those around them" + ], + "skill_requirements": [ { "name": "melee", "level": 5 } ], + "melee_allowed": true, + "crit_tec": true, + "aoe": "spin", + "flat_bonuses": [ { "stat": "damage", "type": "heat", "scale": 10.0 } ] + }, + { + "type": "technique", + "id": "mma_tec_desert_wind_wide", + "name": "Flashing Sun", + "messages": [ "You carve an arc through %s and those nearby", " carve an arc through %s and those nearby" ], + "skill_requirements": [ { "name": "melee", "level": 2 } ], + "melee_allowed": true, + "aoe": "wide" + }, + { + "type": "technique", + "id": "mma_tec_diamond_mind_strike", + "name": "Insightful Strike", + "messages": [ "You spot %s's weakpoint and strike", " spot %s's weakpoint and strike" ], + "skill_requirements": [ { "name": "melee", "level": 1 } ], + "melee_allowed": true, + "flat_bonuses": [ { "stat": "damage", "type": "stab", "scaling-stat": "int", "scale": 0.5 } ] + }, + { + "type": "technique", + "id": "mma_tec_diamond_mind_crit", + "name": "Greater Insightful Strike", + "messages": [ "You spot %s's weakpoint and strike", " spot %s's weakpoint and strike" ], + "skill_requirements": [ { "name": "melee", "level": 4 } ], + "melee_allowed": true, + "crit_tec": true, + "flat_bonuses": [ { "stat": "damage", "type": "stab", "scaling-stat": "int", "scale": 1.0 } ] + }, + { + "type": "technique", + "id": "mma_tec_hylian_spin", + "name": "Spin Attack", + "messages": [ + "You unleash a spin attack against %s and those nearby", + " unleashes a spin attack against %s and those nearby" + ], + "skill_requirements": [ { "name": "melee", "level": 4 } ], + "melee_allowed": true, + "req_buffs": [ "mma_buff_hylian_onpause" ], + "crit_ok": true, + "aoe": "spin" + }, + { + "type": "technique", + "id": "mma_tec_hylian_wide", + "name": "Spin Attack", + "messages": [ + "You unleash a spin attack against %s and those nearby", + " unleashes a spin attack against %s and those nearby" + ], + "skill_requirements": [ { "name": "melee", "level": 4 } ], + "melee_allowed": true, + "req_buffs": [ "mma_buff_hylian_onpause" ], + "crit_ok": true, + "aoe": "wide" + }, + { + "type": "technique", + "id": "mma_tec_iron_heart_disarm", + "name": "Disarming Strike", + "messages": [ "You skillfully disarm %s", " skillfully disarms %s" ], + "unarmed_allowed": true, + "disarms": true + }, + { + "type": "technique", + "id": "mma_tec_iron_heart_feint", + "name": "Lightning Recovery", + "messages": [ "You miss %s but recover in the blink of an eye", " misses %s but recovers in the blink of an eye" ], + "skill_requirements": [ { "name": "melee", "level": 1 } ], + "melee_allowed": true, + "defensive": true, + "miss_recovery": true + }, + { + "type": "technique", + "id": "mma_tec_iron_heart_execute", + "name": "Finishing Move", + "messages": [ "You finish off %s with a powerful slash", " finishes off %s with a powerful slash" ], + "skill_requirements": [ { "name": "melee", "level": 5 } ], + "melee_allowed": true, + "crit_tec": true, + "stun_dur": 1, + "mult_bonuses": [ + { "stat": "damage", "type": "bash", "scale": 1.25 }, + { "stat": "damage", "type": "cut", "scale": 1.25 }, + { "stat": "damage", "type": "stab", "scale": 1.25 } + ] + }, + { + "type": "technique", + "id": "mma_tec_iron_heart_stun", + "name": "Dazing Strike", + "messages": [ "You harshly stun %s", " harshly stuns %s" ], + "skill_requirements": [ { "name": "melee", "level": 2 } ], + "melee_allowed": true, + "crit_tec": true, + "stun_dur": 1, + "mult_bonuses": [ + { "stat": "damage", "type": "bash", "scale": 1.4 }, + { "stat": "damage", "type": "cut", "scale": 1.4 }, + { "stat": "damage", "type": "stab", "scale": 1.4 } + ] + }, + { + "type": "technique", + "id": "mma_tec_iron_heart_wide", + "name": "Steel Wind", + "messages": [ + "You cleave through %s and those nearby like a steel wind", + " cleaves through %s and those nearby like a steel wind" + ], + "skill_requirements": [ { "name": "melee", "level": 3 } ], + "melee_allowed": true, + "aoe": "wide" + }, + { + "type": "technique", + "id": "mma_tec_iron_heart_wide_crit", + "name": "Scything Blade", + "messages": [ "You cleanly reap through %s and those nearby", " cleanly reap throug %s and those nearby" ], + "skill_requirements": [ { "name": "melee", "level": 4 } ], + "melee_allowed": true, + "crit_tec": true, + "aoe": "wide", + "mult_bonuses": [ + { "stat": "damage", "type": "bash", "scale": 1.25 }, + { "stat": "damage", "type": "cut", "scale": 1.25 }, + { "stat": "damage", "type": "stab", "scale": 1.25 } + ] + }, { "type": "technique", "id": "mma_tec_panzer_counter", @@ -56,5 +230,102 @@ { "stat": "damage", "type": "cut", "scale": 0.66 }, { "stat": "damage", "type": "stab", "scale": 0.66 } ] + }, + { + "type": "technique", + "id": "mma_tec_pokken_kick", + "name": "Mega Kick", + "messages": [ "You use Mega Kick on %s", " uses Mega Kick on %s" ], + "skill_requirements": [ { "name": "unarmed", "level": 3 } ], + "unarmed_allowed": true, + "crit_ok": true, + "flat_bonuses": [ { "stat": "hit", "scale": -2.0 } ], + "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 2.0 } ] + }, + { + "type": "technique", + "id": "mma_tec_pokken_lariat", + "name": "Darkest Lariat", + "messages": [ "You use Darkest Lariat on %s", " uses Darkest Lariat on %s" ], + "skill_requirements": [ { "name": "unarmed", "level": 3 } ], + "unarmed_allowed": true, + "crit_ok": true, + "flat_bonuses": [ { "stat": "arpen", "type": "bash", "scaling-stat": "str", "scale": 1.5 } ] + }, + { + "type": "technique", + "id": "mma_tec_pokken_strike", + "name": "Smart Strike", + "messages": [ "You use Smart Strike on %s", " uses Smart Strike on %s" ], + "skill_requirements": [ { "name": "unarmed", "level": 3 } ], + "unarmed_allowed": true, + "crit_ok": true, + "flat_bonuses": [ { "stat": "hit", "scale": 5.0 } ] + }, + { + "type": "technique", + "id": "mma_tec_pokken_sweep", + "name": "Low Sweep", + "messages": [ "You use Low Sweep on %s", " uses Low Sweep on %s" ], + "skill_requirements": [ { "name": "unarmed", "level": 3 } ], + "unarmed_allowed": true, + "crit_ok": true, + "down_dur": 1 + }, + { + "type": "technique", + "id": "mma_tec_setting_sun_counter", + "name": "Fool's Strike", + "messages": [ "You completely fool %s and strike back", " completely fools %s and strike back" ], + "melee_allowed": true, + "unarmed_allowed": true, + "block_counter": true, + "crit_ok": true, + "mult_bonuses": [ + { "stat": "movecost", "scale": 0.0 }, + { "stat": "damage", "type": "bash", "scale": 1.2 }, + { "stat": "damage", "type": "cut", "scale": 1.2 }, + { "stat": "damage", "type": "stab", "scale": 1.2 } + ] + }, + { + "type": "technique", + "id": "mma_tec_setting_sun_stun", + "name": "Hydra Slaying Strike", + "messages": [ "You interrupt %s with a perfectly aimed strike", " interrupt %s with a perfectly aimed strike" ], + "skill_requirements": [ { "name": "unarmed", "level": 4 } ], + "melee_allowed": true, + "unarmed_allowed": true, + "crit_tec": true, + "stun_dur": 1 + }, + { + "type": "technique", + "id": "mma_tec_setting_sun_throw", + "name": "Mighty Throw", + "messages": [ "You toss %s aside with a Mighty Throw", " tosses %s with a Mighty Throw" ], + "skill_requirements": [ { "name": "unarmed", "level": 3 } ], + "melee_allowed": true, + "unarmed_allowed": true, + "req_buffs": [ "mma_buff_setting_sun_onpause" ], + "down_dur": 2, + "knockback_dist": 2, + "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 1.33 } ] + }, + { + "type": "technique", + "id": "mma_tec_setting_sun_throw_crit", + "name": "Ballista Throw", + "messages": [ "You spin and hurl %s away with a Ballista Throw", " spins and hurls %s away with a Ballista Throw" ], + "skill_requirements": [ { "name": "unarmed", "level": 5 } ], + "melee_allowed": true, + "unarmed_allowed": true, + "req_buffs": [ "mma_buff_setting_sun_onpause" ], + "crit_tec": true, + "down_dur": 2, + "knockback_dist": 4, + "powerful_knockback": true, + "weighting": 2, + "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 1.5 } ] } ] diff --git a/data/mods/Magiclysm/Spells/druid.json b/data/mods/Magiclysm/Spells/druid.json index d5d7766daf970..211ed3e6336d9 100644 --- a/data/mods/Magiclysm/Spells/druid.json +++ b/data/mods/Magiclysm/Spells/druid.json @@ -142,7 +142,7 @@ "name": { "str": "Bag of Cats" }, "description": "Are you the crazy cat lady?", "valid_targets": [ "ground" ], - "flags": [ "LOUD", "SOMATIC" ], + "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP" ], "min_damage": 1, "max_damage": 12, "damage_increment": 1.0, @@ -161,7 +161,7 @@ "difficulty": 1, "base_energy_cost": 265, "effect": "summon", - "effect_str": "mon_cat" + "effect_str": "GROUP_STRAY_CATS" }, { "id": "summon_bear", diff --git a/data/mods/Magiclysm/Spells/earthshaper.json b/data/mods/Magiclysm/Spells/earthshaper.json index 6d124105e44a2..97e7e26c540b3 100644 --- a/data/mods/Magiclysm/Spells/earthshaper.json +++ b/data/mods/Magiclysm/Spells/earthshaper.json @@ -271,7 +271,8 @@ "base_energy_cost": 1000, "energy_source": "MANA", "flags": [ "VERBAL", "SOMATIC", "LOUD" ], - "extra_effects": [ { "id": "lava_bomb_shrapnel" }, { "id": "lava_bomb_heat" }, { "id": "lava_bomb_ter" } ] + "extra_effects": [ { "id": "lava_bomb_shrapnel" }, { "id": "lava_bomb_heat" }, { "id": "lava_bomb_ter" } ], + "spell_class": "EARTHSHAPER" }, { "id": "clairvoyance", diff --git a/data/mods/Magiclysm/achievements/spells.json b/data/mods/Magiclysm/achievements/spells.json new file mode 100644 index 0000000000000..dc9b3f8a1af77 --- /dev/null +++ b/data/mods/Magiclysm/achievements/spells.json @@ -0,0 +1,94 @@ +[ + { + "id": "achievement_learn_any_spell", + "type": "achievement", + "name": "Would-be Wizard", + "requirements": [ { "event_statistic": "num_spells_learned", "is": ">=", "target": 1 } ] + }, + { + "id": "achievement_learn_any_spell_3", + "hidden_by": [ "achievement_learn_any_spell" ], + "type": "achievement", + "name": "Wizard's Apprentice", + "requirements": [ { "event_statistic": "num_spells_learned", "is": ">=", "target": 3 } ] + }, + { + "id": "achievement_learn_any_spell_10", + "hidden_by": [ "achievement_learn_any_spell_3" ], + "type": "achievement", + "name": "Journeyman Wizard", + "description": "You have learned enough spells that in more reasonable times you would have graduated from your apprenticeship.", + "requirements": [ { "event_statistic": "num_spells_learned", "is": ">=", "target": 10 } ] + }, + { + "id": "achievement_learn_any_spell_20", + "hidden_by": [ "achievement_learn_any_spell_10" ], + "type": "achievement", + "name": "Archmage", + "description": "You have learned a large number of spells, and would be qualified for the Archmage title.", + "requirements": [ { "event_statistic": "num_spells_learned", "is": ">=", "target": 20 } ] + }, + { + "id": "achievement_learn_any_spell_50", + "hidden_by": [ "achievement_learn_any_spell_20" ], + "type": "achievement", + "name": "Master Archmage", + "description": "You have learned so many spells, that you would have been a major source of knowledge for many wizards. Also known as a Sage, Master Archmages enjoy a wide variety of perks due to their lifelong commitment to learning and helping others learn.", + "requirements": [ { "event_statistic": "num_spells_learned", "is": ">=", "target": 50 } ] + }, + { + "id": "achievement_forget_any_spell", + "type": "achievement", + "name": "Senile Wizard", + "requirements": [ { "event_statistic": "num_spells_forgotten", "is": ">=", "target": 1 } ] + }, + { + "id": "achievement_max_spell_level_1", + "type": "achievement", + "name": "Cast a Spell", + "description": "The first great milestone to becoming a full-fledged wizard is to cast a spell. Some mages simply study the spell in the spellbook until they think they understand it as well as they can, but you can't beat practice over theory.", + "requirements": [ { "event_statistic": "avatar_max_spell_level", "is": ">=", "target": 1 } ] + }, + { + "id": "achievement_max_spell_level_5", + "hidden_by": [ "achievement_max_spell_level_1" ], + "type": "achievement", + "name": "Spell Level 5", + "requirements": [ { "event_statistic": "avatar_max_spell_level", "is": ">=", "target": 5 } ] + }, + { + "id": "achievement_max_spell_level_10", + "hidden_by": [ "achievement_max_spell_level_5" ], + "type": "achievement", + "name": "Spell Level 10", + "requirements": [ { "event_statistic": "avatar_max_spell_level", "is": ">=", "target": 10 } ] + }, + { + "id": "achievement_max_spell_level_15", + "hidden_by": [ "achievement_max_spell_level_10" ], + "type": "achievement", + "name": "Spell Level 15", + "requirements": [ { "event_statistic": "avatar_max_spell_level", "is": ">=", "target": 15 } ] + }, + { + "id": "achievement_max_spell_level_20", + "hidden_by": [ "achievement_max_spell_level_15" ], + "type": "achievement", + "name": "Spell Level 20", + "requirements": [ { "event_statistic": "avatar_max_spell_level", "is": ">=", "target": 20 } ] + }, + { + "id": "achievement_max_spell_level_25", + "hidden_by": [ "achievement_max_spell_level_20" ], + "type": "achievement", + "name": "Spell Level 25", + "requirements": [ { "event_statistic": "avatar_max_spell_level", "is": ">=", "target": 25 } ] + }, + { + "id": "achievement_max_spell_level_30", + "hidden_by": [ "achievement_max_spell_level_25" ], + "type": "achievement", + "name": "Spell Level 30", + "requirements": [ { "event_statistic": "avatar_max_spell_level", "is": ">=", "target": 30 } ] + } +] diff --git a/data/mods/Magiclysm/achievements/statistics.json b/data/mods/Magiclysm/achievements/statistics.json new file mode 100644 index 0000000000000..0d157cff9f377 --- /dev/null +++ b/data/mods/Magiclysm/achievements/statistics.json @@ -0,0 +1,55 @@ +[ + { + "id": "avatar_levels_spell", + "type": "event_transformation", + "event_type": "player_levels_spell", + "value_constraints": { "character": { "equals_statistic": "avatar_id" } }, + "drop_fields": [ "character" ] + }, + { + "id": "avatar_learns_spell", + "type": "event_transformation", + "event_type": "character_learns_spell", + "value_constraints": { "character": { "equals_statistic": "avatar_id" } }, + "drop_fields": [ "character" ] + }, + { + "id": "num_spells_learned", + "type": "event_statistic", + "stat_type": "count", + "event_transformation": "avatar_learns_spell", + "description": { "str": "spell learned", "str_pl": "spells learned" } + }, + { + "id": "avatar_forgets_spell", + "type": "event_transformation", + "event_type": "character_forgets_spell", + "value_constraints": { "character": { "equals_statistic": "avatar_id" } }, + "drop_fields": [ "character" ] + }, + { + "id": "num_spells_forgotten", + "type": "event_statistic", + "stat_type": "count", + "event_transformation": "avatar_forgets_spell", + "description": { "str": "spell forgotten", "str_pl": "spells forgotten" } + }, + { + "id": "avatar_max_spell_level", + "type": "event_statistic", + "stat_type": "maximum", + "field": "new_level", + "event_transformation": "avatar_levels_spell", + "description": { "str_sp": "maximum spell level earned" } + }, + { + "type": "score", + "id": "score_spells_learned", + "statistic": "num_spells_learned" + }, + { + "type": "score", + "id": "score_spells_forgotten", + "statistic": "num_spells_forgotten" + } +] diff --git a/data/mods/Magiclysm/cooking_components.json b/data/mods/Magiclysm/cooking_components.json index 89af18fa1004a..4ac666e0decb4 100644 --- a/data/mods/Magiclysm/cooking_components.json +++ b/data/mods/Magiclysm/cooking_components.json @@ -5,6 +5,7 @@ "components": [ [ [ "egg_bird", 1 ], + [ "egg_bird_unfert", 1 ], [ "egg_chicken", 1 ], [ "egg_grouse", 1 ], [ "egg_crow", 1 ], diff --git a/data/mods/Magiclysm/itemgroups/itemgroups.json b/data/mods/Magiclysm/itemgroups/itemgroups.json index 784ffcab5699c..42a02689f241a 100644 --- a/data/mods/Magiclysm/itemgroups/itemgroups.json +++ b/data/mods/Magiclysm/itemgroups/itemgroups.json @@ -159,6 +159,7 @@ [ "egg_owlbear_rock", 5 ], [ "glow_light_off", 1 ], [ "bulette_plate", 10 ], + [ "cauldron_orichalcum", 7 ], { "item": "bulette_pearl", "prob": 8, "count-min": 1, "count-max": 2 } ] }, @@ -180,11 +181,13 @@ { "group": "enchanted_rings_common", "prob": 20 }, { "group": "enchanted_rings_uncommon", "prob": 5 }, { "group": "enchanted_combat_items", "prob": 10 }, - { "group": "enchanted_belts", "prob": 2 } + { "group": "enchanted_belts", "prob": 2 }, + { "group": "enchanted_misc", "prob": 1 } ], "prob": 15 }, { "item": "bone_human", "prob": 60, "count-min": 1, "count-max": 5 }, + [ "cauldron_orichalcum", 10 ], [ "toolbox", 10 ] ] }, @@ -281,7 +284,8 @@ { "group": "enchanted_bracers_greater", "prob": 10 }, { "group": "enchanted_boots", "prob": 15 }, { "group": "enchanted_belts", "prob": 15 }, - { "group": "spellbook_loot_2", "prob": 20 } + { "group": "spellbook_loot_2", "prob": 20 }, + { "group": "enchanted_misc", "prob": 5 } ] }, { @@ -290,13 +294,17 @@ "//": "all enchanted miscellanious items", "subtype": "collection", "items": [ - { "item": "heat_cube", "prob": 10 }, - { "item": "mkey_opening", "prob": 10 }, - { "item": "mtorch_everburning", "prob": 10 }, - { "item": "mflask_hip_whiskey", "prob": 10 }, - { "item": "mtailors_kit", "prob": 10 }, - { "item": "mspider_box", "prob": 10 }, - { "item": "cauldron_demon_chitin", "prob": 2 } + { "item": "heat_cube", "prob": 100 }, + { "item": "mkey_opening", "prob": 100 }, + { "item": "mtorch_everburning", "prob": 100 }, + { "item": "mflask_hip_whiskey", "prob": 100 }, + { "item": "mtailors_kit", "prob": 100 }, + { "item": "mspider_box", "prob": 100 }, + { "item": "cauldron_demon_chitin", "prob": 20 }, + { "item": "fridge_holding_1", "prob": 12 }, + { "item": "bag_holding_1", "prob": 8 }, + { "item": "bag_holding_2", "prob": 1 }, + { "item": "cauldron_orichalcum", "prob": 100 } ] }, { @@ -1048,6 +1056,7 @@ }, [ "crystallized_mana", 50 ], [ "copper_circlet", 10 ], + [ "cauldron_orichalcum", 1 ], { "item": "small_mana_crystal", "prob": 40, "charges-min": 5, "charges-max": 50 } ] }, @@ -1065,5 +1074,60 @@ "type": "item_group", "id": "forest_tomb_spellbook", "items": [ [ "summon_undead_spellbook", 100 ] ] + }, + { + "type": "item_group", + "id": "midden_heap", + "//": "a large pile of trash, made for goblin encampments.", + "subtype": "collection", + "items": [ + { "group": "trash", "prob": 100 }, + { "group": "trash_forest", "prob": 95 }, + { "group": "trash", "prob": 80 }, + { "group": "trash_forest", "prob": 70 }, + { "group": "trash", "prob": 50 }, + { "group": "trash_forest", "prob": 25 } + ] + }, + { + "type": "item_group", + "id": "cookpot", + "//": "Things suitable for cooking something in (pot like objects, not spits)", + "items": [ + [ "waffleiron", 20 ], + [ "mess_tray", 20 ], + [ "sheet_metal", 20 ], + [ "alloy_plate", 1 ], + [ "basket", 10 ], + [ "mess_kit", 2 ], + [ "rock_pot", 100 ], + [ "pot_makeshift", 100 ], + [ "pot_makeshift_copper", 50 ], + [ "pressure_cooker", 5 ], + [ "pot", 45 ], + [ "clay_pot", 80 ], + [ "iron_pot", 45 ], + [ "pot_copper", 45 ], + [ "casserole", 45 ], + [ "stock_pot", 80 ], + [ "pot_canning", 60 ] + ] + }, + { + "type": "item_group", + "id": "wood_fuel", + "//": "fuel for a cookpot", + "items": [ + { "item": "charcoal", "count": [ 20, 75 ], "prob": 20 }, + { "item": "log", "count": [ 1, 3 ], "prob": 40 }, + { "item": "2x4", "count": [ 4, 8 ], "prob": 40 } + ] + }, + { + "type": "item_group", + "id": "goblin_cookpot", + "//": "the things that would be on the same tile as a cookpot, such as fuel and one pot.", + "subtype": "collection", + "items": [ { "group": "cookpot", "prob": 100 }, { "group": "wood_fuel", "prob": 80 } ] } ] diff --git a/data/mods/Magiclysm/items/books_lore.json b/data/mods/Magiclysm/items/books_lore.json index 858ce1fd3fdf6..d7920c471160f 100644 --- a/data/mods/Magiclysm/items/books_lore.json +++ b/data/mods/Magiclysm/items/books_lore.json @@ -3,6 +3,7 @@ "id": "retreat_map", "copy-from": "abstractmap", "type": "GENERIC", + "category": "maps", "name": "vacation brochure", "description": "This is a glossy brochure encouraging students to book vactaions at a lake retreat or remote cabin. The brochure includes lush photographs of a tower on an island and a remote looking cabin in the woods. It includes a map of the areas.", "color": "white", @@ -17,6 +18,7 @@ "id": "lair_map", "copy-from": "abstractmap", "type": "GENERIC", + "category": "maps", "name": "lair map", "description": "This is an well worn map. It has pictures of fantastical beasts embellishing the carefully drawn map markers.", "color": "white", diff --git a/data/mods/Magiclysm/items/comestibles.json b/data/mods/Magiclysm/items/comestibles.json index 24f1dfbacd7a3..f98c7d2dde641 100644 --- a/data/mods/Magiclysm/items/comestibles.json +++ b/data/mods/Magiclysm/items/comestibles.json @@ -70,7 +70,7 @@ { "id": "purified_meat", "type": "COMESTIBLE", - "flags": "NUTRIENT_OVERRIDE", + "flags": [ "NUTRIENT_OVERRIDE" ], "copy-from": "meat", "name": "purified meat", "description": "Indistinguishable from pre-Cataclysm lab grown beef. It should be excellent but somehow it's just edible.", @@ -79,7 +79,7 @@ { "id": "impure_meat", "type": "COMESTIBLE", - "flags": "NUTRIENT_OVERRIDE", + "flags": [ "NUTRIENT_OVERRIDE" ], "copy-from": "mutant_meat", "name": "impure meat", "description": "Not as tainted as previously and tastes like the real thing. You do not want to cook this for your friends, though if you do they won't know the difference for a while.", diff --git a/data/mods/Magiclysm/items/containers.json b/data/mods/Magiclysm/items/containers.json new file mode 100644 index 0000000000000..f8a461c2f546d --- /dev/null +++ b/data/mods/Magiclysm/items/containers.json @@ -0,0 +1,100 @@ +[ + { + "type": "GENERIC", + "id": "bag_holding_1", + "name": { "str": "lesser dimensional bag" }, + "description": "This is a bag that can contain more than it should. The bag magically reduces the weight of its contents and expands less than the amount of stuff you put into it. It takes a few words and hand-waving to take an item out.", + "symbol": "U", + "color": "magenta", + "volume": "4 L", + "weight": "4 kg", + "price": "3000 USD", + "flags": [ "TARDIS" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "moves": 1800, + "max_contains_volume": "40 L", + "max_contains_weight": "50 kg", + "max_item_volume": "7 L", + "max_item_length": "3 meter", + "spoil_multiplier": 1.5, + "weight_multiplier": 0.7, + "volume_multiplier": 0.7, + "rigid": false, + "magazine_well": "1 L" + } + ] + }, + { + "type": "GENERIC", + "copy-from": "bag_holding_1", + "id": "bag_holding_2", + "name": { "str": "dimensional bag" }, + "weight": "6 kg", + "price": "7500 USD", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "moves": 1800, + "max_contains_volume": "100 L", + "max_contains_weight": "110 kg", + "max_item_volume": "10 L", + "max_item_length": "4 meter", + "spoil_multiplier": 1.5, + "weight_multiplier": 0.5, + "volume_multiplier": 0.5, + "rigid": false, + "magazine_well": "1 L" + } + ] + }, + { + "type": "GENERIC", + "copy-from": "bag_holding_1", + "id": "bag_holding_3", + "name": { "str": "greater dimensional bag" }, + "description": "This dimensional bag has reached the limits of human innovation with a combination of manufacturing and magical secrets.", + "weight": "10 kg", + "price": "85000 USD", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "moves": 1800, + "max_contains_volume": "165 L", + "max_contains_weight": "200 kg", + "max_item_volume": "15 L", + "max_item_length": "6 meter", + "spoil_multiplier": 1.5, + "weight_multiplier": 0.3, + "volume_multiplier": 0.3, + "rigid": false, + "magazine_well": "1 L" + } + ] + }, + { + "type": "GENERIC", + "id": "fridge_holding_1", + "name": { "str": "supergravity preservation box" }, + "description": "A box that uses gravity magic to preserve food. It makes the box much heavier, but anything in it lasts far longer and you can store more.", + "weight": "80 kg", + "symbol": "E", + "color": "light_red", + "volume": "100 L", + "price": "4000 USD", + "flags": [ "TARDIS" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "moves": 2300, + "max_contains_volume": "200 L", + "max_contains_weight": "500 kg", + "max_item_length": "1 meter", + "spoil_multiplier": 0.2, + "weight_multiplier": 2.5, + "rigid": true + } + ] + } +] diff --git a/data/mods/Magiclysm/items/enchanted_misc.json b/data/mods/Magiclysm/items/enchanted_misc.json index 585a84ea9f8ab..ba7e4fc7bd44f 100644 --- a/data/mods/Magiclysm/items/enchanted_misc.json +++ b/data/mods/Magiclysm/items/enchanted_misc.json @@ -61,8 +61,9 @@ "initial_charges": 5, "max_charges": 5, "charges_per_use": 1, - "flags": [ "ARTC_TIME" ], - "use_action": { "type": "picklock", "pick_quality": 50 } + "qualities": [ [ "LOCKPICK", 50 ] ], + "flags": [ "ARTC_TIME", "PERFECT_LOCKPICK" ], + "use_action": "PICK_LOCK" }, { "id": "mtorch_everburning", diff --git a/data/mods/Magiclysm/items/enchanted_wands.json b/data/mods/Magiclysm/items/enchanted_wands.json index 1e80593a5ce6b..62f1cf0496962 100644 --- a/data/mods/Magiclysm/items/enchanted_wands.json +++ b/data/mods/Magiclysm/items/enchanted_wands.json @@ -14,7 +14,15 @@ "flags": [ "BELT_CLIP", "NONCONDUCTIVE" ], "charges_per_use": 1, "ammo": [ "crystallized_mana" ], - "magazines": [ [ "crystallized_mana", [ "small_mana_crystal" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "small_mana_crystal" ] + } + ] }, { "abstract": "disp_wand", diff --git a/data/mods/Magiclysm/items/obsolete.json b/data/mods/Magiclysm/items/obsolete.json index 6496ccb544324..d88a387c2f723 100644 --- a/data/mods/Magiclysm/items/obsolete.json +++ b/data/mods/Magiclysm/items/obsolete.json @@ -15,7 +15,15 @@ "charges_per_use": 1, "ammo": [ "crystallized_mana" ], "use_action": { "type": "cast_spell", "spell_id": "fireball", "no_fail": true, "level": 5, "need_wielding": true }, - "magazines": [ [ "crystallized_mana", [ "small_mana_crystal" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "small_mana_crystal" ] + } + ] }, { "id": "wand_magic_missile", @@ -33,6 +41,14 @@ "charges_per_use": 1, "ammo": [ "crystallized_mana" ], "use_action": { "type": "cast_spell", "spell_id": "magic_missile", "no_fail": true, "level": 10, "need_wielding": true }, - "magazines": [ [ "crystallized_mana", [ "small_mana_crystal" ] ] ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "small_mana_crystal" ] + } + ] } ] diff --git a/data/mods/Magiclysm/items/spell_scrolls.json b/data/mods/Magiclysm/items/spell_scrolls.json index 1a14e8f087579..302146ee7eccb 100644 --- a/data/mods/Magiclysm/items/spell_scrolls.json +++ b/data/mods/Magiclysm/items/spell_scrolls.json @@ -2,7 +2,7 @@ { "abstract": "spell_scroll", "name": { "str": "Spell Scroll" }, - "type": "GENERIC", + "type": "BOOK", "weight": "475 g", "volume": "500 ml", "price": 4000, @@ -11,7 +11,7 @@ "color": "white" }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_crystallize_mana", "//": "Classless spell", @@ -20,7 +20,7 @@ "use_action": { "type": "learn_spell", "spells": [ "crystallize_mana" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_dark_sight", "//": "Classless spell", @@ -29,7 +29,7 @@ "use_action": { "type": "learn_spell", "spells": [ "dark_sight" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_invisibility", "//": "Technomancer spell", @@ -38,7 +38,7 @@ "use_action": { "type": "learn_spell", "spells": [ "invisibility" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_obfuscated_body", "//": "Classless spell", @@ -47,7 +47,7 @@ "use_action": { "type": "learn_spell", "spells": [ "obfuscated_body" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_holographic_transposition", "//": "Technomancer spell", @@ -56,7 +56,7 @@ "use_action": { "type": "learn_spell", "spells": [ "holographic_transposition" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_smite", "//": "Animist spell", @@ -65,7 +65,7 @@ "use_action": { "type": "learn_spell", "spells": [ "smite" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_recover_mana", "//": "Animist spell", @@ -74,7 +74,7 @@ "use_action": { "type": "learn_spell", "spells": [ "recover_mana" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_recover_pain", "//": "Animist spell", @@ -83,7 +83,7 @@ "use_action": { "type": "learn_spell", "spells": [ "recover_pain" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_summon_zombie", "//": "Animist spell", @@ -92,7 +92,7 @@ "use_action": { "type": "learn_spell", "spells": [ "summon_zombie" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_summon_skeleton", "//": "Animist spell", @@ -101,7 +101,7 @@ "use_action": { "type": "learn_spell", "spells": [ "summon_skeleton" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_summon_floating_disk", "name": { "str": "Scroll of Summon Floating Disk", "str_pl": "Scrolls of Summon Floating Disk" }, @@ -109,7 +109,7 @@ "use_action": { "type": "learn_spell", "spells": [ "summon_floating_disk" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_summon_decayed_pouncer", "//": "Animist spell", @@ -118,7 +118,7 @@ "use_action": { "type": "learn_spell", "spells": [ "summon_decayed_pouncer" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_light_healing", "//": "Biomancer spell", @@ -127,7 +127,7 @@ "use_action": { "type": "learn_spell", "spells": [ "light_healing" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_pain_split", "//": "Biomancer spell", @@ -136,7 +136,7 @@ "use_action": { "type": "learn_spell", "spells": [ "pain_split" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_vicious_tentacle", "//": "Biomancer spell", @@ -145,7 +145,7 @@ "use_action": { "type": "learn_spell", "spells": [ "vicious_tentacle" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_bio_grotesque", "//": "Biomancer spell", @@ -154,7 +154,7 @@ "use_action": { "type": "learn_spell", "spells": [ "bio_grotesque" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_bio_acidicspray", "//": "Biomancer spell", @@ -163,7 +163,7 @@ "use_action": { "type": "learn_spell", "spells": [ "bio_acidicspray" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_bio_fleshpouch", "//": "Biomancer spell", @@ -172,7 +172,7 @@ "use_action": { "type": "learn_spell", "spells": [ "bio_fleshpouch" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_bio_bonespear", "//": "Biomancer spell", @@ -181,7 +181,7 @@ "use_action": { "type": "learn_spell", "spells": [ "bio_bonespear" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_megablast", "//": "Classless spell", @@ -190,7 +190,7 @@ "use_action": { "type": "learn_spell", "spells": [ "megablast" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_create_atomic_light", "//": "Classless spell1", @@ -199,7 +199,7 @@ "use_action": { "type": "learn_spell", "spells": [ "create_atomic_light" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_blinding_flash", "//": "Classless spell", @@ -208,7 +208,7 @@ "use_action": { "type": "learn_spell", "spells": [ "blinding_flash" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_ethereal_grasp", "//": "Classless spell", @@ -217,7 +217,7 @@ "use_action": { "type": "learn_spell", "spells": [ "ethereal_grasp" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_protection_aura", "//": "Classless spell", @@ -226,7 +226,7 @@ "use_action": { "type": "learn_spell", "spells": [ "protection_aura" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_druid_veggrasp", "//": "Druid spell", @@ -235,7 +235,7 @@ "use_action": { "type": "learn_spell", "spells": [ "druid_veggrasp" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_druid_rootstrike", "//": "Druid spell", @@ -244,7 +244,7 @@ "use_action": { "type": "learn_spell", "spells": [ "druid_rootstrike" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_druid_woodshaft", "//": "Druid spell", @@ -253,7 +253,7 @@ "use_action": { "type": "learn_spell", "spells": [ "druid_woodshaft" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_druid_naturebow1", "//": "Druid spell", @@ -262,7 +262,7 @@ "use_action": { "type": "learn_spell", "spells": [ "druid_naturebow1" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_recover_fatigue", "//": "Druid spell", @@ -271,7 +271,7 @@ "use_action": { "type": "learn_spell", "spells": [ "recover_fatigue" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_summon_cats", "//": "Druid spell", @@ -280,7 +280,7 @@ "use_action": { "type": "learn_spell", "spells": [ "summon_cats" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_stonefist", "//": "Earthshaper spell", @@ -289,7 +289,7 @@ "use_action": { "type": "learn_spell", "spells": [ "stonefist" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_seismic_stomp", "//": "Earthshaper spell", @@ -298,7 +298,7 @@ "use_action": { "type": "learn_spell", "spells": [ "seismic_stomp" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_recover_stamina", "//": "Earthshaper spell", @@ -307,7 +307,7 @@ "use_action": { "type": "learn_spell", "spells": [ "recover_stamina" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_eshaper_shardspray", "//": "Earthshaper spell", @@ -316,7 +316,7 @@ "use_action": { "type": "learn_spell", "spells": [ "eshaper_shardspray" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_eshaper_piercing_bolt", "//": "Earthshaper spell", @@ -325,7 +325,7 @@ "use_action": { "type": "learn_spell", "spells": [ "eshaper_piercing_bolt" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_eshaper_shardstorm", "//": "Earthshaper spell", @@ -334,7 +334,7 @@ "use_action": { "type": "learn_spell", "spells": [ "eshaper_shardstorm" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_eshaper_rockbolt", "//": "Earthshaper spell", @@ -343,7 +343,7 @@ "use_action": { "type": "learn_spell", "spells": [ "eshaper_rockbolt" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_point_flare", "//": "Kelvinist spell", @@ -352,7 +352,7 @@ "use_action": { "type": "learn_spell", "spells": [ "point_flare" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_create_lighter", "//": "Kelvinist spell", @@ -361,7 +361,7 @@ "use_action": { "type": "learn_spell", "spells": [ "create_lighter" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_ice_spike", "//": "Kelvinist spell", @@ -370,7 +370,7 @@ "use_action": { "type": "learn_spell", "spells": [ "ice_spike" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_fireball", "//": "Kelvinist spell", @@ -379,7 +379,7 @@ "use_action": { "type": "learn_spell", "spells": [ "fireball" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_cone_cold", "//": "Kelvinist spell", @@ -388,7 +388,7 @@ "use_action": { "type": "learn_spell", "spells": [ "cone_cold" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_burning_hands", "//": "Kelvinist spell", @@ -397,7 +397,7 @@ "use_action": { "type": "learn_spell", "spells": [ "burning_hands" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_frost_spray", "//": "Kelvinist spell", @@ -406,7 +406,7 @@ "use_action": { "type": "learn_spell", "spells": [ "frost_spray" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_chilling_touch", "//": "Kelvinist spell", @@ -415,7 +415,7 @@ "use_action": { "type": "learn_spell", "spells": [ "chilling_touch" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_glide_ice", "//": "Kelvinist spell", @@ -424,7 +424,7 @@ "use_action": { "type": "learn_spell", "spells": [ "glide_ice" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_hoary_blast", "//": "Kelvinist spell", @@ -433,7 +433,7 @@ "use_action": { "type": "learn_spell", "spells": [ "hoary_blast" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_ice_shield", "//": "Kelvinist spell", @@ -442,7 +442,7 @@ "use_action": { "type": "learn_spell", "spells": [ "ice_shield" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_frost_armor", "//": "Kelvinist spell", @@ -451,7 +451,7 @@ "use_action": { "type": "learn_spell", "spells": [ "frost_armor" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_magic_missile", "//": "Magus spell", @@ -460,7 +460,7 @@ "use_action": { "type": "learn_spell", "spells": [ "magic_missile" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_phase_door", "//": "Magus spell", @@ -469,7 +469,7 @@ "use_action": { "type": "learn_spell", "spells": [ "phase_door" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_gravity_well", "//": "Magus spell", @@ -478,7 +478,7 @@ "use_action": { "type": "learn_spell", "spells": [ "gravity_well" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_magus_mana_blast", "//": "Magus spell", @@ -487,7 +487,7 @@ "use_action": { "type": "learn_spell", "spells": [ "magus_mana_blast" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_magus_mana_bolt", "//": "Magus spell", @@ -496,7 +496,7 @@ "use_action": { "type": "learn_spell", "spells": [ "magus_mana_bolt" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_magus_haste", "//": "Magus spell", @@ -505,7 +505,7 @@ "use_action": { "type": "learn_spell", "spells": [ "magus_haste" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_magus_mana_beam", "//": "Magus spell", @@ -514,7 +514,7 @@ "use_action": { "type": "learn_spell", "spells": [ "magus_mana_beam" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_magus_escape", "//": "Magus spell", @@ -523,7 +523,7 @@ "use_action": { "type": "learn_spell", "spells": [ "magus_escape" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_cats_grace", "//": "Magus spell", @@ -532,7 +532,7 @@ "use_action": { "type": "learn_spell", "spells": [ "cats_grace" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_eagles_sight", "//": "Magus spell", @@ -541,7 +541,7 @@ "use_action": { "type": "learn_spell", "spells": [ "eagles_sight" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_ogres_strength", "//": "Magus spell", @@ -550,7 +550,7 @@ "use_action": { "type": "learn_spell", "spells": [ "ogres_strength" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_foxs_cunning", "//": "Magus spell", @@ -559,7 +559,7 @@ "use_action": { "type": "learn_spell", "spells": [ "foxs_cunning" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_jolt", "//": "Stormshaper spell", @@ -568,7 +568,7 @@ "use_action": { "type": "learn_spell", "spells": [ "jolt" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_lightning_bolt", "//": "Stormshaper spell", @@ -577,7 +577,7 @@ "use_action": { "type": "learn_spell", "spells": [ "lightning_bolt" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_windstrike", "//": "Stormshaper spell", @@ -586,7 +586,7 @@ "use_action": { "type": "learn_spell", "spells": [ "windstrike" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_windrun", "//": "Stormshaper spell", @@ -595,7 +595,7 @@ "use_action": { "type": "learn_spell", "spells": [ "windrun" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_storm_hammer", "//": "Stormshaper spell", @@ -604,7 +604,7 @@ "use_action": { "type": "learn_spell", "spells": [ "storm_hammer" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_bless", "//": "Technomancer spell", @@ -613,7 +613,7 @@ "use_action": { "type": "learn_spell", "spells": [ "bless" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_holy_blade", "//": "Technomancer spell", @@ -622,7 +622,7 @@ "use_action": { "type": "learn_spell", "spells": [ "holy_blade" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_spirit_armor", "//": "Technomancer spell", @@ -631,7 +631,7 @@ "use_action": { "type": "learn_spell", "spells": [ "spirit_armor" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_create_atomic_lamp", "//": "Technomancer spell", @@ -640,7 +640,7 @@ "use_action": { "type": "learn_spell", "spells": [ "create_atomic_lamp" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_recover_bionic_power", "//": "Technomancer spell", @@ -649,7 +649,7 @@ "use_action": { "type": "learn_spell", "spells": [ "recover_bionic_power" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_taze", "//": "Technomancer spell", @@ -658,7 +658,7 @@ "use_action": { "type": "learn_spell", "spells": [ "taze" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_quantum_tunnel_lesser", "//": "Technomancer spell", @@ -667,7 +667,7 @@ "use_action": { "type": "learn_spell", "spells": [ "quantum_tunnel_lesser" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_synaptic_stimulation", "//": "Technomancer spell", @@ -676,7 +676,7 @@ "use_action": { "type": "learn_spell", "spells": [ "synaptic_stimulation" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_laze", "//": "Technomancer spell", @@ -685,7 +685,7 @@ "use_action": { "type": "learn_spell", "spells": [ "laze" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_animated_blade", "//": "Technomancer spell", @@ -694,7 +694,7 @@ "use_action": { "type": "learn_spell", "spells": [ "animated_blade" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_mirror_image", "//": "Technomancer spell", @@ -703,7 +703,7 @@ "use_action": { "type": "learn_spell", "spells": [ "mirror_image" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_lightning_blast", "//": "Stormshaper spell", @@ -712,7 +712,7 @@ "use_action": { "type": "learn_spell", "spells": [ "lightning_blast" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_necrotic_gaze", "//": "Animist spell", @@ -721,7 +721,7 @@ "use_action": { "type": "learn_spell", "spells": [ "necrotic_gaze" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_purification_seed", "//": "Druid spell", @@ -730,7 +730,7 @@ "use_action": { "type": "learn_spell", "spells": [ "purify_seed" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_x-ray", "//": "Technomancer spell", @@ -739,7 +739,7 @@ "use_action": { "type": "learn_spell", "spells": [ "x-ray" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_overcharge_eyes", "//": "Technomancer spell", @@ -748,7 +748,7 @@ "use_action": { "type": "learn_spell", "spells": [ "overcharge_eyes" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_clairvoyance", "//": "Earthshaper spell", @@ -757,7 +757,7 @@ "use_action": { "type": "learn_spell", "spells": [ "clairvoyance" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_lava_bomb", "//": "Earthshaper spell", @@ -766,7 +766,7 @@ "use_action": { "type": "learn_spell", "spells": [ "lava_bomb_main" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_acid_resistance", "//": "Classless spell, black dragon books", @@ -776,7 +776,7 @@ }, { "id": "lightning_storm_scroll", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Scroll of Lightning Storm", "str_pl": "Scrolls of Lightning Storm" }, "//": "Stormshaper spell", "description": "This scroll details how a spell called 'Lightning Blast' which is commonly used among Stormshapers can be altered to become much more powerful, at a much higher mana cost.", @@ -788,7 +788,7 @@ "use_action": { "type": "learn_spell", "spells": [ "lightning_storm" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_druidic_regrowth", "//": "Druid spell", @@ -797,7 +797,7 @@ "use_action": { "type": "learn_spell", "spells": [ "druidic_regrowth" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_druidic_healing", "//": "Druid spell", @@ -806,7 +806,7 @@ "use_action": { "type": "learn_spell", "spells": [ "druidic_healing" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_earthshaper_stoneskin", "//": "Earthshaper spell", @@ -815,7 +815,7 @@ "use_action": { "type": "learn_spell", "spells": [ "earthshaper_stoneskin" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_earthshaper_pillar", "//": "Earthshaper spell", @@ -824,7 +824,7 @@ "use_action": { "type": "learn_spell", "spells": [ "earthshaper_pillar" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_biomancer_paralytic_dart", "//": "Biomancer spell", @@ -833,7 +833,7 @@ "use_action": { "type": "learn_spell", "spells": [ "biomancer_paralytic_dart" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_biomancer_visceral_projection", "//": "Biomancer spell", @@ -842,7 +842,7 @@ "use_action": { "type": "learn_spell", "spells": [ "biomancer_visceral_projection" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_biomancer_coagulant_weave", "//": "Biomancer spell", @@ -851,7 +851,7 @@ "use_action": { "type": "learn_spell", "spells": [ "biomancer_coagulant_weave" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_stormshaper_ionization", "//": "Stormshaper spell", @@ -860,7 +860,7 @@ "use_action": { "type": "learn_spell", "spells": [ "stormshaper_ionization" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_summon_wisps", "//": "Animist spell", @@ -869,7 +869,7 @@ "use_action": { "type": "learn_spell", "spells": [ "summon_wisps" ] } }, { - "type": "GENERIC", + "type": "BOOK", "copy-from": "spell_scroll", "id": "spell_scroll_stormshaper_wall_of_fog", "//": "Stormshaper spell", diff --git a/data/mods/Magiclysm/items/spellbooks.json b/data/mods/Magiclysm/items/spellbooks.json index 8e50f943d6902..248c3de9a628b 100644 --- a/data/mods/Magiclysm/items/spellbooks.json +++ b/data/mods/Magiclysm/items/spellbooks.json @@ -1,11 +1,12 @@ [ { "id": "DEBUG_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "A Technomancer's Guide to Debugging C:DDA", "str_pl": "copies of A Technomancer's Guide to Debugging C:DDA" }, "description": "static std::string description( spell sp ) const;", "weight": "1 g", "volume": "1 ml", + "material": [ "paper" ], "symbol": "?", "color": "magenta", "use_action": { @@ -28,72 +29,77 @@ }, { "id": "wizard_beginner", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "A Beginner's Guide to Magic", "str_pl": "copies of A Beginner's Guide to Magic" }, "//": "2 Magus, 1 classless spell", "description": "You would describe this as more like a pamphlet than a spellbook, but it seems to have at least one interesting spell you can use.", "weight": "585 g", "volume": "250 ml", "price": 5000, + "material": [ "paper" ], "symbol": "?", "color": "light_red", "use_action": { "type": "learn_spell", "spells": [ "magic_missile", "phase_door", "create_atomic_light" ] } }, { "id": "wizard_utility", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Wizarding Guide to Backpacking", "str_pl": "copies of Wizarding Guide to Backpacking" }, "//": "1 Magus, 1 Biomancer, 1, Kelvinist, 1 classless spell", "description": "This appears to be the spell version of a guide for what things to take with you when backpacking. It's a little bulky, but will certainly prove useful.", "weight": "1 kg", "volume": "1250 ml", "price": 35000, + "material": [ "paper" ], "symbol": "?", "color": "red", "use_action": { "type": "learn_spell", "spells": [ "phase_door", "create_lighter", "pain_split", "protection_aura" ] } }, { "id": "pyro", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Pyromancy for Heretics", "str_pl": "copies of Pyromancy for Heretics" }, "//": "4 Kelvinist spells", "description": "This charred husk of a book still contains many ways to light things aflame.", "weight": "450 g", "volume": "1 L", "price": 1904, + "material": [ "paper" ], "symbol": "?", "color": "light_red", "use_action": { "type": "learn_spell", "spells": [ "point_flare", "fireball", "burning_hands", "create_lighter" ] } }, { "id": "wizard_advanced", - "type": "GENERIC", + "type": "BOOK", "//": "1 Magus, 1 biomancer, 2 kelvinist spells", "name": { "str": "A Treatise on Magical Elements", "str_pl": "copies of A Treatise on Magical Elements" }, "description": "This details complex diagrams, rituals, and choreography that describes various spells.", "weight": "920 g", "volume": "750 ml", "price": 30000, + "material": [ "paper" ], "symbol": "?", "color": "light_red", "use_action": { "type": "learn_spell", "spells": [ "point_flare", "ice_spike", "gravity_well", "pain_split" ] } }, { "id": "priest_beginner", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Introduction to the Divine", "str_pl": "copies of Introduction to the Divine" }, "//": "1 technomancer, 1 biomancer, 1 classless spells", "description": "This appears to mostly be a religious text, but it does have some notes on healing.", "weight": "585 g", "volume": "500 ml", "price": 5000, + "material": [ "paper" ], "symbol": "?", "color": "light_green", "use_action": { "type": "learn_spell", "spells": [ "light_healing", "blinding_flash", "bless" ] } }, { "id": "priest_advanced", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "The Paladin's Guide to Modern Spellcasting", "str_pl": "copies of The Paladin's Guide to Modern Spellcasting" @@ -103,32 +109,35 @@ "weight": "830 g", "volume": "750 ml", "price": 30000, + "material": [ "paper" ], "symbol": "?", "color": "green", "use_action": { "type": "learn_spell", "spells": [ "smite", "holy_blade", "spirit_armor" ] } }, { "id": "winter_grasp", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Winter's Eternal Grasp", "str_pl": "copies of Winter's Eternal Grasp" }, "//": "5 Kelvinist spells", "description": "This slim book almost seems to be made from ice, it's cold to the touch.", "weight": "450 g", "volume": "1 L", "price": 1904, + "material": [ "paper" ], "symbol": "?", "color": "light_blue", "use_action": { "type": "learn_spell", "spells": [ "cone_cold", "ice_spike", "hoary_blast", "chilling_touch", "frost_spray" ] } }, { "id": "tome_of_storms", - "type": "GENERIC", + "type": "BOOK", "//": "6 Stormshaper spells", "name": { "str": "The Tome of The Oncoming Storm", "str_pl": "copies of The Tome of The Oncoming Storm" }, "description": "A large book embossed with crossed lightning bolts and storm clouds, it tingles to the touch.", "weight": "430 g", "volume": "750 ml", "price": 5000, + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { @@ -138,25 +147,27 @@ }, { "id": "generic_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Nondescript Spellbook", "str_pl": "copies of Nondescript Spellbook" }, "//": "1 technomancer, 1 earthshaper, 1 classless spell", "description": "A small book, containing spells created by a novice magician.", "weight": "355 g", "volume": "500 ml", + "material": [ "paper" ], "symbol": "?", "color": "magenta", "use_action": { "type": "learn_spell", "spells": [ "seismic_stomp", "create_atomic_lamp", "ethereal_grasp" ] } }, { "id": "light_manipulation_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Of Light and Falsehoods", "str_pl": "copies of Of Light and Falsehoods" }, "//": "3 technomancer, 4 classless spell", "description": "A small white book, it subtly amplifies the ambient light around it.", "weight": "430 g", "volume": "750 ml", "price": 5000, + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { @@ -174,12 +185,13 @@ }, { "id": "biomancer_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "The Tome of Flesh", "str_pl": "copies of The Tome of Flesh" }, "//": "5 Biomancer spells", "description": "A small tome, seemingly covered in tanned human skin.", "weight": "355 g", "volume": "500 ml", + "material": [ "paper" ], "symbol": "?", "color": "red", "use_action": { @@ -189,24 +201,26 @@ }, { "id": "druid_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "The Book of Trees", "str_pl": "copies of The Book of Trees" }, "//": "4 Druid spells", "description": "A bark covered book.", "weight": "355 g", "volume": "500 ml", + "material": [ "paper" ], "symbol": "?", "color": "green", "use_action": { "type": "learn_spell", "spells": [ "druid_woodshaft", "druid_veggrasp", "druid_rootstrike", "druid_naturebow1" ] } }, { "id": "recovery_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "The Utility of Mana as an Energy Source", "str_pl": "copies of The Utility of Mana as an Energy Source" }, "description": "This book details spells that use your mana to recover various physiological effects.", "//": "1 technomancer, 2 animist, 1 druid, 1 earthshaper spell", "weight": "728 g", "volume": "3 L", + "material": [ "paper" ], "symbol": "?", "color": "light_blue", "use_action": { @@ -216,24 +230,26 @@ }, { "id": "magus_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "The Tome of The Battle Mage", "str_pl": "copies of The Tome of The Battle Mage" }, "//": "3 Magus spells", "description": "Your standard wizardy looking spellbook, filled with Magus combat spells. You sure lucked out!", "weight": "434 g", "volume": "750 ml", + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "magus_mana_beam", "magus_mana_bolt", "magus_mana_blast" ] } }, { "id": "eshaper_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "The Tome of the Hollow Earth", "str_pl": "copies of The Tome of the Hollow Earth" }, "//": "4 earthshaper spells", "description": "This large dusty spellbook seems perpetually, well, dusty. It contains the power of the earth.", "weight": "483 g", "volume": "825 ml", + "material": [ "paper" ], "symbol": "?", "color": "brown", "use_action": { @@ -243,67 +259,72 @@ }, { "id": "magus_spellbook_move", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "The Tome of Magical Movement", "str_pl": "copies of The Tome of Magical Movement" }, "//": "3 Magus spells", "description": "This small lightweight book seems to almost not entirely exist, let's say it 97% does. It contains Magus spells focused on movement.", "weight": "231 g", "volume": "500 ml", + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "phase_door", "magus_escape", "magus_haste" ] } }, { "id": "summon_scroll_smudged", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Smudged Scroll" }, "//": "Druid spell", "description": "This looks like someone was designing a new spell, but spilled a mug of coffee on it and crumpled it up in anger. You can tell that it will definitely cast something, but you can't be sure that it will work very well.", "weight": "129 g", "volume": "100 ml", + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "summon_bear" ] } }, { "id": "summon_undead_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Necromantic Minions for Dummies", "str_pl": "copies of Necromantic Minions for Dummies" }, "//": "3 Animist spells", "description": "This book details various ways of summoning an undead minion to fight for you. They all appear to disappear after a short time, crumbling to dust.", "weight": "788 g", "volume": "2250 ml", + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "summon_zombie", "summon_skeleton", "summon_decayed_pouncer" ] } }, { "id": "techno_fundamentals", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Fundamentals of Technomancy", "str_pl": "copies of Fundamentals of Technomancy" }, "//": "3 Technomancer spells", "description": "This thick manual instructs the spellcaster on manipulating and empowering various forms of matter and energy.", "weight": "258 g", "volume": "750 ml", + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "synaptic_stimulation", "animated_blade", "mirror_image" ] } }, { "id": "techno_idiots", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Complete Idiot's Guide to Technomancy", "str_pl": "copies of Complete Idiot's Guide to Technomancy" }, "description": "This colorful guide, full of diagrams and cartoons, teaches a couple of very basic Technomancy spells for the not-so-bright pupils.", "//": "2 Technomancer spells", "weight": "211 g", "volume": "500 ml", + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "taze", "quantum_tunnel_lesser" ] } }, { "id": "techno_em", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Technomancy and the Electromagnetic Spectrum", "str_pl": "copies of Technomancy and the Electromagnetic Spectrum" @@ -312,30 +333,33 @@ "description": "This lab reference material book is thick and overflowing with information on combining magic with EM radiation.", "weight": "284 g", "volume": "1 L", + "material": [ "paper" ], "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "taze", "laze" ] } }, { "id": "translocate_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Geospatial Systems: The Lie Of Linearity", "str_pl": "copies of Geospatial Systems: The Lie Of Linearity" }, "//": "1 classless spell", "description": "This book outlines in great detail how time and space are wibbly-wobbly and non-Euclidean. It also appears to have a dozen different coordinate systems that it uses nearly interchangeably, which makes it hard to follow. There's lots of jargon, but with intense study you can probably learn a thing or two about portals.", "weight": "1200 g", "volume": "2500 ml", + "material": [ "paper" ], "symbol": "?", "color": "light_blue", "use_action": { "type": "learn_spell", "spells": [ "translocate_self" ] } }, { "id": "stat_up_spellbook", - "type": "GENERIC", + "type": "BOOK", "name": { "str": "Transcendence of the Human Condition", "str_pl": "copies of Transcendence of the Human Condition" }, "//": "4 Magus spells", "description": "The Human is the only creature that seeks to improve himself. This study examines different spells that can heighten various senses temporarily, in hopes to discover a more permanent solution.", "weight": "1300 g", "volume": "2500 ml", + "material": [ "paper" ], "symbol": "?", "color": "yellow", "use_action": { "type": "learn_spell", "spells": [ "cats_grace", "ogres_strength", "foxs_cunning", "eagles_sight" ] } diff --git a/data/mods/Magiclysm/items/tools.json b/data/mods/Magiclysm/items/tools.json index 93b61da61479b..a560c1e579696 100644 --- a/data/mods/Magiclysm/items/tools.json +++ b/data/mods/Magiclysm/items/tools.json @@ -19,6 +19,24 @@ "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "MAGIC_MUTAGEN", 2 ] ], "use_action": "HEAT_FOOD" }, + { + "id": "cauldron_orichalcum", + "type": "GENERIC", + "name": { "str": "orichalcum cauldron" }, + "description": "This is an alchemical cauldron made of orichalcum. The metal is especially resistant to the unique types of corrosion caused by alchemy.", + "weight": "15 kg", + "volume": "20 L", + "price": "750 USD", + "to_hit": -4, + "looks_like": "canning_pot", + "bashing": 6, + "material": "orichalcum_metal", + "symbol": "U", + "color": "yellow", + "pocket_data": [ { "open_container": true, "watertight": true, "max_contains_volume": "16 L", "max_contains_weight": "50 kg" } ], + "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "MAGIC_MUTAGEN", 1 ] ], + "use_action": "HEAT_FOOD" + }, { "id": "demon_forge", "type": "TOOL", diff --git a/data/mods/Magiclysm/monster_factions.json b/data/mods/Magiclysm/monster_factions.json index b9adba0930c22..ffdbd33889bbb 100644 --- a/data/mods/Magiclysm/monster_factions.json +++ b/data/mods/Magiclysm/monster_factions.json @@ -17,5 +17,9 @@ "type": "MONSTER_FACTION", "name": "lizardfolk", "friendly": [ "dragon_black", "ooze", "lizardfolk" ] + }, + { + "type": "MONSTER_FACTION", + "name": "goblin" } ] diff --git a/data/mods/Magiclysm/monstergroups.json b/data/mods/Magiclysm/monstergroups.json index 286de2c020d13..c9636e361e5af 100644 --- a/data/mods/Magiclysm/monstergroups.json +++ b/data/mods/Magiclysm/monstergroups.json @@ -114,5 +114,20 @@ { "monster": "mon_stonegolem", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_irongolem", "freq": 5, "cost_multiplier": 1 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_GOBLIN_STANDARD", + "default": "mon_goblin_warrior", + "monsters": [ + { "monster": "mon_goblin_warrior", "freq": 35, "cost_multiplier": 1, "pack_size": [ 2, 4 ] }, + { "monster": "mon_goblin_slinger", "freq": 65, "cost_multiplier": 1, "pack_size": [ 2, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GOBLIN_ADVANCED", + "default": "mon_goblin_chieftain", + "monsters": [ { "monster": "mon_goblin_chieftain", "freq": 40, "cost_multiplier": 1 } ] } ] diff --git a/data/mods/Magiclysm/monsters/goblin.json b/data/mods/Magiclysm/monsters/goblin.json new file mode 100644 index 0000000000000..0a0798d1653b1 --- /dev/null +++ b/data/mods/Magiclysm/monsters/goblin.json @@ -0,0 +1,106 @@ +[ + { + "id": "mon_goblin_warrior", + "type": "MONSTER", + "name": { "str": "goblin warrior" }, + "description": "This short humanoid is covered in filth and shouts slurs at you as it brandishes a cudgel.", + "default_faction": "goblin", + "bodytype": "human", + "species": [ "GOBLIN" ], + "volume": "32 L", + "weight": "42 kg", + "hp": 40, + "speed": 105, + "material": [ "flesh" ], + "symbol": "g", + "color": "brown", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 4, + "dodge": 5, + "harvest": "demihuman", + "vision_day": 30, + "vision_night": 8, + "death_drops": { + "subtype": "collection", + "items": [ + { "item": "helmet_scrap", "prob": 40 }, + { "item": "legguard_scrap", "prob": 40 }, + { "item": "boots_scrap", "prob": 40 }, + { "item": "armguard_scrap", "prob": 40 }, + { "item": "cuirass_scrap", "prob": 40 }, + { "item": "cudgel", "prob": 95 } + ] + }, + "death_function": [ "NORMAL" ], + "flags": [ "SEES", "HEARS", "WARM", "BASHES", "BLEED", "FILTHY", "PATH_AVOID_DANGER_2" ] + }, + { + "type": "MONSTER", + "id": "mon_goblin_slinger", + "name": { "str": "goblin slinger" }, + "description": "An ugly creature that slings rocks almost as well as it slings insults.", + "copy-from": "mon_goblin_warrior", + "melee_skill": 2, + "death_drops": { + "subtype": "collection", + "items": [ + { "item": "helmet_scrap", "prob": 40 }, + { "item": "legguard_scrap", "prob": 40 }, + { "item": "boots_scrap", "prob": 40 }, + { "item": "armguard_scrap", "prob": 40 }, + { "item": "cuirass_scrap", "prob": 40 }, + { "item": "sling", "prob": 95 } + ] + }, + "starting_ammo": { "rock": 30 }, + "extend": { + "special_attacks": [ + { + "type": "gun", + "cooldown": 15, + "move_cost": 90, + "gun_type": "sling", + "ammo_type": "rock", + "fake_skills": [ [ "gun", 4 ], [ "rifle", 4 ] ], + "fake_dex": 8, + "fake_per": 8, + "require_targeting_player": false, + "description": "The goblin slings a rock at you!", + "ranges": [ [ 2, 10, "DEFAULT" ] ], + "no_ammo_sound": "grunting" + } + ] + } + }, + { + "id": "mon_goblin_chieftain", + "type": "MONSTER", + "copy-from": "mon_goblin_warrior", + "name": { "str": "goblin chieftain" }, + "description": "An ugly creature that was promoted to chieftain because it figured out which end of the weapon is pointy.", + "hp": 135, + "dodge": 6, + "melee_dice_sides": 8, + "melee_cut": 4, + "death_drops": { + "subtype": "collection", + "items": [ + { "item": "helmet_scrap", "prob": 40 }, + { "item": "legguard_scrap", "prob": 40 }, + { "item": "boots_scrap", "prob": 40 }, + { "item": "armguard_scrap", "prob": 40 }, + { "item": "cuirass_scrap", "prob": 40 }, + { "group": "enchanted_melee_weapons_plus1", "prob": 100 } + ] + } + }, + { + "id": "mon_troll_goblin_tamed", + "type": "MONSTER", + "copy-from": "mon_troll", + "default_faction": "goblin" + } +] diff --git a/data/mods/Magiclysm/recipes/cooking.json b/data/mods/Magiclysm/recipes/cooking.json index 7acea7addb8a6..e7c2c795c209e 100644 --- a/data/mods/Magiclysm/recipes/cooking.json +++ b/data/mods/Magiclysm/recipes/cooking.json @@ -10,7 +10,7 @@ "book_learn": [ [ "cooking_poison", 2 ] ], "time": "15 m", "batch_time_factors": [ 67, 5 ], - "qualities": [ { "id": "COOK", "level": 1 }, { "id": "MAGIC_MUTAGEN", "level": 1 } ], + "qualities": [ { "id": "COOK", "level": 1 }, { "id": "MAGIC_MUTAGEN", "level": 2 } ], "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], "components": [ [ [ "mutant_meat", 3 ] ] ] }, @@ -26,7 +26,7 @@ "time": "15 m", "autolearn": true, "batch_time_factors": [ 67, 5 ], - "qualities": [ { "id": "COOK", "level": 1 }, { "id": "MAGIC_MUTAGEN", "level": 1 } ], + "qualities": [ { "id": "COOK", "level": 1 }, { "id": "MAGIC_MUTAGEN", "level": 2 } ], "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], "components": [ [ [ "meat_tainted", 4 ] ] ] }, diff --git a/data/mods/Magiclysm/recipes/recipe_potions.json b/data/mods/Magiclysm/recipes/recipe_potions.json index 19b2e07b29fdb..1332ad256ad0f 100644 --- a/data/mods/Magiclysm/recipes/recipe_potions.json +++ b/data/mods/Magiclysm/recipes/recipe_potions.json @@ -79,7 +79,7 @@ { "type": "recipe", "result": "manatouched_serum", - "qualities": [ { "id": "MAGIC_MUTAGEN", "level": 2 }, { "id": "MANA_INFUSE", "level": 2 }, { "id": "CONCENTRATE", "level": 1 } ], + "qualities": [ { "id": "MAGIC_MUTAGEN", "level": 1 }, { "id": "MANA_INFUSE", "level": 2 }, { "id": "CONCENTRATE", "level": 1 } ], "components": [ [ [ "mana_dust", 20 ] ], [ [ "mana_potion", 4 ], [ "mana_potion_greater", 1 ], [ "mana_infused_blood", 6 ] ] ], "skill_used": "cooking", "difficulty": 4, @@ -154,6 +154,7 @@ [ [ "potion_starter", 5 ] ], [ [ "egg_bird", 5 ], + [ "egg_bird_unfert", 5 ], [ "egg_grouse", 5 ], [ "egg_duck", 3 ], [ "egg_crow", 5 ], diff --git a/data/mods/Magiclysm/recipes/weapons.json b/data/mods/Magiclysm/recipes/weapons.json index 8766048a0bf57..f90bc50294aa4 100644 --- a/data/mods/Magiclysm/recipes/weapons.json +++ b/data/mods/Magiclysm/recipes/weapons.json @@ -312,9 +312,14 @@ "time": 480000, "book_learn": [ [ "book_mythological", 10 ] ], "using": [ [ "forging_standard", 3 ] ], - "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], + "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 }, { "id": "CUT", "level": 1 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], - "components": [ [ [ "reflexrecurvebow", 1 ] ], [ [ "gold_small", 1 ] ], [ [ "orichalcum_ingot", 1 ] ] ] + "components": [ + [ [ "stick_long", 1 ], [ "2x4", 1 ] ], + [ [ "cordage_superior", 2, "LIST" ] ], + [ [ "gold_small", 1 ] ], + [ [ "orichalcum_ingot", 1 ] ] + ] }, { "type": "recipe", diff --git a/data/mods/Magiclysm/species.json b/data/mods/Magiclysm/species.json index c546b8ed1b82d..d5a089a4a6c34 100644 --- a/data/mods/Magiclysm/species.json +++ b/data/mods/Magiclysm/species.json @@ -13,5 +13,10 @@ "id": "LIZARDFOLK", "anger_triggers": [ "FRIEND_ATTACKED" ], "fear_triggers": [ "FIRE" ] + }, + { + "type": "SPECIES", + "id": "GOBLIN", + "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_WEAK" ] } ] diff --git a/data/mods/Magiclysm/traits/manatouched.json b/data/mods/Magiclysm/traits/manatouched.json index 2f85c682c44b0..6941c40c94613 100644 --- a/data/mods/Magiclysm/traits/manatouched.json +++ b/data/mods/Magiclysm/traits/manatouched.json @@ -10,7 +10,7 @@ "iv_sound_message": "a crackle", "iv_sound_id": "crackle", "iv_noise": 1, - "iv_additional_mutations": 0, + "iv_additional_mutations": 1, "memorial_message": "Ascended to the metaphysical." }, { @@ -41,7 +41,7 @@ "description": "Your hands glow with mana energy. You can fire seeker bolts from your fingertips.", "points": 2, "mana_modifier": 250, - "lumination": [ [ "HAND_R", 8 ], [ "HAND_L", 8 ] ], + "lumination": [ [ "hand_r", 8 ], [ "hand_l", 8 ] ], "prereqs": [ "MANA_LUM" ], "category": [ "MANATOUCHED" ], "threshreq": [ "THRESH_MANA" ], @@ -53,7 +53,7 @@ "name": { "str": "Subtle Spell" }, "description": "You no longer need to move your arms to cast spells, due to your ley lines becoming untethered from your arms. Arm encumbrance no longer applies to spell failure chance.", "points": 3, - "lumination": [ [ "ARM_R", 4 ], [ "ARM_L", 4 ] ], + "lumination": [ [ "arm_r", 4 ], [ "arm_l", 4 ] ], "threshreq": [ "THRESH_MANA" ], "prereqs": [ "MANA_LUM" ], "category": [ "MANATOUCHED" ], @@ -65,7 +65,7 @@ "name": { "str": "Silent Spell" }, "description": "You no longer need to use your voice to enforce your will upon the world. Mouth encumbrance no longer applies to spell failure chance.", "points": 3, - "lumination": [ [ "MOUTH", 4 ] ], + "lumination": [ [ "mouth", 4 ] ], "threshreq": [ "THRESH_MANA" ], "prereqs": [ "MANA_LUM" ], "category": [ "MANATOUCHED" ], @@ -113,8 +113,7 @@ "bodytemp_modifiers": [ 100, 100 ], "description": "Your body discards unusable mana as light and heat, making you glow softly.", "category": [ "MANATOUCHED" ], - "threshreq": [ "THRESH_MANA" ], - "lumination": [ [ "TORSO", 8 ] ] + "lumination": [ [ "torso", 8 ] ] }, { "type": "mutation", @@ -190,5 +189,43 @@ "threshreq": [ "THRESH_MANA" ], "prereqs": [ "MANA_SIPHON_2" ], "enchantments": [ "ench_mana_siphon_3" ] + }, + { + "type": "mutation", + "id": "MANA_ADD_MANATOUCHED", + "name": { "str": "Manatouched Mana Efficiency" }, + "points": 5, + "description": "You are able to store a lot more mana in your body than usual.", + "cancels": [ "MANA_SUB1", "MANA_SUB2", "MANA_SUB3" ], + "types": [ "MANA_ADD" ], + "starting_trait": true, + "prereqs": [ "MANA_ADD3" ], + "category": [ "MANATOUCHED" ], + "mana_modifier": 2500 + }, + { + "type": "mutation", + "id": "MANA_REGEN_MANATOUCHED", + "name": "Manatouched Mana Regeneration", + "points": 10, + "description": "Your natural mana regeneration is much faster than normal.", + "prereqs": [ "MANA_REGEN2" ], + "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], + "threshreq": [ "THRESH_MANA" ], + "types": [ "MANA_REGEN" ], + "category": [ "MANATOUCHED" ], + "mana_regen_multiplier": 2 + }, + { + "type": "mutation", + "id": "MANA_MULT_MANATOUCHED", + "name": "Manatouched Mana Sensitivity", + "points": 10, + "description": "You can sense the mana in your body much better than normal, allowing you to tap into more of your reserves.", + "cancels": [ "BAD_MANA_MULT1", "BAD_MANA_MULT2", "BAD_MANA_MULT3" ], + "types": [ "MANA_MULT" ], + "category": [ "MANATOUCHED" ], + "prereqs": [ "MANA_MULT3" ], + "mana_multiplier": 2.65 } ] diff --git a/data/mods/Magiclysm/traits/mutation.json b/data/mods/Magiclysm/traits/mutation.json index a1c291829cf9a..b5de6abf5226f 100644 --- a/data/mods/Magiclysm/traits/mutation.json +++ b/data/mods/Magiclysm/traits/mutation.json @@ -21,7 +21,6 @@ "changes_to": [ "MANA_ADD2" ], "types": [ "MANA_ADD" ], "starting_trait": true, - "category": [ "MANATOUCHED" ], "flags": [ "NON_THRESH" ], "mana_modifier": 500 }, @@ -35,7 +34,6 @@ "changes_to": [ "MANA_ADD3" ], "types": [ "MANA_ADD" ], "starting_trait": true, - "category": [ "MANATOUCHED" ], "prereqs": [ "MANA_ADD1" ], "flags": [ "NON_THRESH" ], "mana_modifier": 1000 @@ -49,7 +47,7 @@ "cancels": [ "MANA_SUB1", "MANA_SUB2", "MANA_SUB3" ], "types": [ "MANA_ADD" ], "starting_trait": true, - "category": [ "MANATOUCHED" ], + "changes_to": [ "MANA_ADD_MANATOUCHED" ], "prereqs": [ "MANA_ADD2" ], "flags": [ "NON_THRESH" ], "mana_modifier": 2000 @@ -100,7 +98,7 @@ "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], "changes_to": [ "MANA_REGEN2" ], "types": [ "MANA_REGEN" ], - "category": [ "FISH", "ELFA", "ALPHA", "PLANT", "CEPHALOPOD", "MANATOUCHED" ], + "category": [ "FISH", "ELFA", "ALPHA", "PLANT", "CEPHALOPOD" ], "starting_trait": true, "flags": [ "NON_THRESH" ], "mana_regen_multiplier": 1.1 @@ -113,7 +111,7 @@ "description": "Your natural mana regeneration is faster than normal.", "prereqs": [ "MANA_REGEN1" ], "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], - "changes_to": [ "MANA_REGEN3" ], + "changes_to": [ "MANA_REGEN3", "MANA_REGEN_MANATOUCHED" ], "types": [ "MANA_REGEN" ], "category": [ "FISH", "ELFA", "PLANT", "MANATOUCHED" ], "flags": [ "NON_THRESH" ], @@ -129,7 +127,7 @@ "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], "types": [ "MANA_REGEN" ], "threshreq": [ "THRESH_PLANT", "THRESH_MANA" ], - "category": [ "PLANT", "MANATOUCHED" ], + "category": [ "PLANT" ], "flags": [ "NON_THRESH" ], "mana_regen_multiplier": 1.5 }, @@ -183,7 +181,7 @@ "cancels": [ "BAD_MANA_MULT1", "BAD_MANA_MULT2", "BAD_MANA_MULT3" ], "changes_to": [ "MANA_MULT2" ], "types": [ "MANA_MULT" ], - "category": [ "BIRD", "LIZARD", "SLIME", "FELINE", "CATTLE", "URSINE", "PLANT", "CEPHALOPOD", "ALPHA", "ELFA", "MANATOUCHED" ], + "category": [ "BIRD", "LIZARD", "SLIME", "FELINE", "CATTLE", "URSINE", "PLANT", "CEPHALOPOD", "ALPHA", "ELFA" ], "starting_trait": true, "flags": [ "NON_THRESH" ], "mana_multiplier": 1.25 @@ -197,7 +195,7 @@ "cancels": [ "BAD_MANA_MULT1", "BAD_MANA_MULT2", "BAD_MANA_MULT3" ], "changes_to": [ "MANA_MULT3" ], "types": [ "MANA_MULT" ], - "category": [ "BIRD", "SLIME", "CATTLE", "PLANT", "CEPHALOPOD", "ELFA", "MANATOUCHED" ], + "category": [ "BIRD", "SLIME", "CATTLE", "PLANT", "CEPHALOPOD", "ELFA" ], "prereqs": [ "MANA_MULT1" ], "flags": [ "NON_THRESH" ], "mana_multiplier": 1.9 @@ -210,7 +208,8 @@ "description": "You can sense the mana in your body much better than normal, allowing you to tap into more of your reserves.", "cancels": [ "BAD_MANA_MULT1", "BAD_MANA_MULT2", "BAD_MANA_MULT3" ], "types": [ "MANA_MULT" ], - "category": [ "SLIME", "CATTLE", "CEPHALOPOD", "MANATOUCHED" ], + "changes_to": [ "MANA_MULT_MANATOUCHED" ], + "category": [ "SLIME", "CATTLE", "CEPHALOPOD" ], "prereqs": [ "MANA_MULT2" ], "flags": [ "NON_THRESH" ], "mana_multiplier": 2.5 diff --git a/data/mods/Magiclysm/worldgen/goblin_encampment.json b/data/mods/Magiclysm/worldgen/goblin_encampment.json new file mode 100644 index 0000000000000..f3c5960c42d5f --- /dev/null +++ b/data/mods/Magiclysm/worldgen/goblin_encampment.json @@ -0,0 +1,578 @@ +[ + { + "type": "mapgen", + "method": "json", + "//": "ground entrance", + "om_terrain": [ + [ "goblin_1A", "goblin_2A", "goblin_3A", "goblin_4A", "goblin_5A" ], + [ "goblin_1B", "goblin_2B", "goblin_3B", "goblin_4B", "goblin_5B" ], + [ "goblin_1C", "goblin_2C", "goblin_3C", "goblin_4C", "goblin_5C" ] + ], + "object": { + "fill_ter": "t_dirt", + "rows": [ + " ", + " ", + " ", + " & ", + " #####################################||3333333||#################################################### ", + " #1.....1.............1......1.......# & #1......1.........1........1................1......# ", + " #...................................# % #..................................................# ", + " #...................................# #..................................................# ", + " #...................................# % #..................................................# ", + " #...................................# #..................................................# ", + " #1....##########################.#### ##############################################.....# ", + " #.....#l l #1....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #1....# ", + " #1....# #.....# ", + " #.....# #.....# ", + " #.....# ......# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# l#.....# ", + " #1....# #1....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #1....# #1....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #1....# #1....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #1....# ", + " #1....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #.....# ", + " #.....# #1....# ", + " #1....#l TTT Y #.....# ", + " #.....# Y #.....# ", + " #.....# === = #.....# ", + " #.....# ====== #.....# ", + " #.....# c === #.....# ", + " #.....# %%% #1....# ", + " #1....# %%% #.....# ", + " #.....# T Y %% #.....# ", + " #.....# T Y #.....# ", + " #.....# #.....# ", + " #.....# l l #.....# ", + " #.....########################.##################################################.############.....# ", + " #1......1............1......1...........1......1.................1.......1...................1.....# ", + " #..................................................................................................# ", + " #..................................................................................................# ", + " #..................................................................................................# ", + " #..................................................................................................# ", + " #################################################################################################### ", + " ", + " ", + " ", + " " + ], + "palettes": [ "goblin_palette" ], + "items": { + "c": { "item": "stash_wood", "chance": 50 }, + "h": { "item": "bed", "chance": 40, "repeat": [ 1, 2 ] }, + "%": { "item": "trash", "chance": 40, "repeat": [ 1, 2 ] } + }, + "place_nested": [ + { "chunks": [ "goblin_center_nest" ], "x": 25, "y": 25 }, + { "chunks": [ "goblin_center_nest" ], "x": 49, "y": 25 }, + { "chunks": [ "goblin_center_nest" ], "x": 73, "y": 25 } + ], + "nested": { "1": { "chunks": [ [ "null", 20 ], [ "goblin_campfire", 80 ] ] } }, + "place_monsters": [ + { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 24, 47 ], "y": [ 24, 46 ], "density": 0.1, "repeat": [ 1, 3 ] }, + { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 48, 71 ], "y": [ 24, 46 ], "density": 0.1, "repeat": [ 1, 3 ] }, + { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 72, 95 ], "y": [ 24, 46 ], "density": 0.1, "repeat": [ 1, 3 ] } + ] + } + }, + { + "type": "palette", + "id": "goblin_palette", + "terrain": { + "3": "t_palisade_gate", + "l": "t_ladder_up", + "#": "t_wall_rammed_earth", + "t": "t_wall_wattle", + "W": "t_wall_wattle_half", + "w": "t_wall_wattle_broken", + " ": "t_region_groundcover_urban", + "T": "t_trunk", + "&": "t_palisade_pulley", + "|": "t_palisade", + ".": "t_dirtfloor", + "h": "t_dirtfloor", + "!": "t_dirtfloor", + "~": "t_dirtfloor", + "1": "t_dirtfloor", + "+": "t_door_makeshift_c", + "=": "t_water_murky" + }, + "furniture": { + "h": "f_straw_bed", + "@": "f_logstool", + "c": "f_firering", + "Y": [ [ "f_boulder_small", 5 ], "f_boulder_medium", "f_boulder_large" ] + }, + "items": { + "c": { "item": "goblin_cookpot", "chance": 50 }, + "h": { "item": "bed", "chance": 40, "repeat": [ 1, 2 ] }, + "!": { "item": "boss_treasure_items", "chance": 40, "repeat": [ 1, 2 ] }, + "$": { "item": "boss_treasure_items", "chance": 40, "repeat": [ 1, 2 ] }, + "%": { "item": "midden_heap", "chance": 40, "repeat": [ 1, 2 ] }, + "~": { "item": "midden_heap", "chance": 40, "repeat": [ 1, 2 ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest", + "object": { + "mapgensize": [ 23, 23 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " tttttt %%%%% ", + " th~.G+ g %%% ", + " t!~~.t %%% ", + " tttttt % %%% ", + " @ c %%% ", + " %% ", + " %%% g @ c ", + " %% @ ", + " %% g ", + " %% ", + " %%%% ", + " %%% tt+t ", + " %%% t~Gt ", + " %% t~ht ", + " t!.t ", + " tttt ", + " ", + " " + ], + "palettes": [ "goblin_palette" ], + "terrain": { "G": "t_dirtfloor" }, + "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "monster": "mon_goblin_slinger" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest", + "object": { + "mapgensize": [ 23, 23 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " %%%% ", + " % ", + " %%%% % ", + " %% ", + " % %% ", + " % ", + " ", + " ttttt+tttttt ", + " t!T.......!t ", + " t!........!t ", + " t!........!t ", + " tGGGggggGGGt ", + " thhhhhhhhhht ", + " tttttttttttt ", + " %%%%% ", + " % %%% ", + " %% % ", + " ", + " c c ", + " ", + " ", + " " + ], + "palettes": [ "goblin_palette" ], + "terrain": { "G": "t_dirtfloor", "g": "t_dirtfloor" }, + "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "monster": "mon_goblin_slinger" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest", + "object": { + "mapgensize": [ 23, 23 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " ", + " ", + " % %% ", + " %%%% %% ", + " g % % ", + " % ", + " c c %% ", + " % h G c ", + " %% %% G g % g ", + " % % h c %$%% ", + " % % % ", + " % c c h ", + " G h ", + " G ", + " %%% ", + " %% ", + " ", + " %%% % ", + " %% %%% ", + " %% %%% ", + " " + ], + "palettes": [ "goblin_palette" ], + "terrain": { "h": "t_region_groundcover_urban", "G": "t_region_groundcover_urban", "g": "t_region_groundcover_urban" }, + "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "monster": "mon_goblin_slinger" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest", + "object": { + "mapgensize": [ 23, 23 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " ", + " G ", + " g ", + " %%%% g ", + " %% %%% ", + " %% %%%% ", + " T % T %% ", + " %%%%%% %%% ", + " T%%%%%% ", + " %%%%%%%% T g ", + " %% %%%%%%%%%% ", + " T%%%% %%% ", + " %%%%% T g ", + " %%%% ", + " %%%% ", + " ", + " g G ", + " ", + " ", + " ", + " " + ], + "palettes": [ "goblin_palette" ], + "terrain": { "G": "t_region_groundcover_urban", "g": "t_region_groundcover_urban" }, + "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "monster": "mon_goblin_slinger" } } + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "h ", + " ", + " ~~c ", + " h", + " " + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "h ", + "h ", + " ~~ ", + " h ~h", + " h " + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "~ ", + " ", + " ", + " c", + " ~" + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "~ ", + " ~~~ ", + " c~~~", + " ~h", + " ~" + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "~ ~", + "h ~~", + "h ~~", + "h ~~", + "h ~" + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " c ~ ", + " h~ ", + " ", + " ~" + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "overmap_special", + "id": "goblin_encampment", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "goblin_1A_north" }, + { "point": [ 0, 0, 1 ], "overmap": "goblin_1A_roof_north" }, + { "point": [ 1, 0, 0 ], "overmap": "goblin_2A_north" }, + { "point": [ 1, 0, 1 ], "overmap": "goblin_2A_roof_north" }, + { "point": [ 2, 0, 0 ], "overmap": "goblin_3A_north" }, + { "point": [ 2, 0, 1 ], "overmap": "goblin_3A_roof_north" }, + { "point": [ 3, 0, 0 ], "overmap": "goblin_4A_north" }, + { "point": [ 3, 0, 1 ], "overmap": "goblin_4A_roof_north" }, + { "point": [ 4, 0, 0 ], "overmap": "goblin_5A_north" }, + { "point": [ 4, 0, 1 ], "overmap": "goblin_5A_roof_north" }, + { "point": [ 0, 1, 0 ], "overmap": "goblin_1B_north" }, + { "point": [ 0, 1, 1 ], "overmap": "goblin_1B_roof_north" }, + { "point": [ 1, 1, 0 ], "overmap": "goblin_2B_north" }, + { "point": [ 1, 1, 1 ], "overmap": "goblin_2B_roof_north" }, + { "point": [ 2, 1, 0 ], "overmap": "goblin_3B_north" }, + { "point": [ 2, 1, 1 ], "overmap": "goblin_3B_roof_north" }, + { "point": [ 3, 1, 0 ], "overmap": "goblin_4B_north" }, + { "point": [ 3, 1, 1 ], "overmap": "goblin_4B_roof_north" }, + { "point": [ 4, 1, 0 ], "overmap": "goblin_5B_north" }, + { "point": [ 4, 1, 1 ], "overmap": "goblin_5B_roof_north" }, + { "point": [ 0, 2, 0 ], "overmap": "goblin_1C_north" }, + { "point": [ 0, 2, 1 ], "overmap": "goblin_1C_roof_north" }, + { "point": [ 1, 2, 0 ], "overmap": "goblin_2C_north" }, + { "point": [ 1, 2, 1 ], "overmap": "goblin_2C_roof_north" }, + { "point": [ 2, 2, 0 ], "overmap": "goblin_3C_north" }, + { "point": [ 2, 2, 1 ], "overmap": "goblin_3C_roof_north" }, + { "point": [ 3, 2, 0 ], "overmap": "goblin_4C_north" }, + { "point": [ 3, 2, 1 ], "overmap": "goblin_4C_roof_north" }, + { "point": [ 4, 2, 0 ], "overmap": "goblin_5C_north" }, + { "point": [ 4, 2, 1 ], "overmap": "goblin_5C_roof_north" } + ], + "locations": [ "wilderness" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 0, 5 ] + }, + { + "type": "overmap_terrain", + "id": [ + "goblin_1A", + "goblin_2A", + "goblin_3A", + "goblin_4A", + "goblin_5A", + "goblin_1B", + "goblin_2B", + "goblin_3B", + "goblin_4B", + "goblin_5B", + "goblin_1C", + "goblin_2C", + "goblin_3C", + "goblin_4C", + "goblin_5C", + "goblin_1A_roof", + "goblin_2A_roof", + "goblin_3A_roof", + "goblin_4A_roof", + "goblin_5A_roof", + "goblin_1B_roof", + "goblin_2B_roof", + "goblin_3B_roof", + "goblin_4B_roof", + "goblin_5B_roof", + "goblin_1C_roof", + "goblin_2C_roof", + "goblin_3C_roof", + "goblin_4C_roof", + "goblin_5C_roof" + ], + "name": "goblin encampment", + "sym": "#", + "color": "red", + "see_cost": 5 + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "goblin_1A_roof", "goblin_2A_roof", "goblin_3A_roof", "goblin_4A_roof", "goblin_5A_roof" ], + [ "goblin_1B_roof", "goblin_2B_roof", "goblin_3B_roof", "goblin_4B_roof", "goblin_5B_roof" ], + [ "goblin_1C_roof", "goblin_2C_roof", "goblin_3C_roof", "goblin_4C_roof", "goblin_5C_roof" ] + ], + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ..................................... .................................................... ", + " ..................................... .................................................... ", + " ..................................... .................................................... ", + " ..................................... .................................................... ", + " ..................................... .................................................... ", + " ..................................... .................................................... ", + " ..................................... .................................................... ", + " .......> > ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ...... ", + " ....... ....... ", + " ....... ....... ", + " ....... >....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... ....... ", + " ....... > > ....... ", + " .................................................................................................... ", + " .................................................................................................... ", + " .................................................................................................... ", + " .................................................................................................... ", + " .................................................................................................... ", + " .................................................................................................... ", + " .................................................................................................... ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_thatch_roof", ">": "t_ladder_down" } + } + } +] diff --git a/data/mods/My_Sweet_Cataclysm/sweet_mutations.json b/data/mods/My_Sweet_Cataclysm/sweet_mutations.json index 961c0d74fae43..b56219f0ac8ce 100644 --- a/data/mods/My_Sweet_Cataclysm/sweet_mutations.json +++ b/data/mods/My_Sweet_Cataclysm/sweet_mutations.json @@ -42,7 +42,13 @@ "anger_relations": [ [ "MARSHMALLOW", 20 ], [ "GUMMY", 5 ], [ "CHEWGUM", 20 ] ], "allowed_category": [ "SUGAR" ], "no_cbm_on_bp": [ "torso", "head", "eyes", "mouth", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ], - "armor": [ { "parts": "ALL", "cut": 10, "bash": 5 } ], + "armor": [ + { + "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], + "cut": 10, + "bash": 5 + } + ], "flags": [ "NO_THIRST", "NO_DISEASE", "NO_RADIATION" ] } ] diff --git a/data/mods/TEST_DATA/items.json b/data/mods/TEST_DATA/items.json index bae275165b88a..c02ebcf0be525 100644 --- a/data/mods/TEST_DATA/items.json +++ b/data/mods/TEST_DATA/items.json @@ -9,7 +9,7 @@ "category": "spare_parts", "material": "stone", "ammo_type": "rock", - "flags": "TRADER_AVOID", + "flags": [ "TRADER_AVOID" ], "weight": "657 g", "volume": "250 ml", "bashing": 7, @@ -30,7 +30,7 @@ "weight": "80 g", "volume": "250 ml", "price": 0, - "material": "cotton", + "material": [ "cotton" ], "symbol": ",", "color": "white", "use_action": [ { "type": "heal", "move_cost": 200, "used_up_item": "rag_bloody", "bleed": 0.5, "limb_power": 0 }, "WASH_HARD_ITEMS" ], @@ -40,15 +40,16 @@ "type": "GENERIC", "id": "test_2x4", "name": "TEST plank", - "description": "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional lumber. Makes a decent melee weapon, and can be used for all kinds construction.", + "description": "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional lumber. Makes a decent melee weapon, and can be used for all kinds of construction.", "category": "spare_parts", + "volume": "4400 ml", "weight": "2200 g", + "longest_side": "130 cm", "to_hit": 1, "color": "brown", "symbol": "/", "material": [ "wood" ], "techniques": [ "WBLOCK_1" ], - "volume": "4400 ml", "bashing": 10, "price": 1000, "price_postapoc": 0, @@ -61,13 +62,14 @@ "description": "A steel pipe, makes a good melee weapon. Useful in a few crafting recipes.", "category": "spare_parts", "weight": "1250 g", + "volume": "1 L", + "longest_side": "50 cm", "to_hit": 1, "color": "dark_gray", "symbol": "/", "material": [ "steel" ], "qualities": [ [ "HAMMER", 1 ] ], "techniques": [ "WBLOCK_1" ], - "volume": "1 L", "bashing": 12, "price": 7500, "price_postapoc": 300 @@ -158,7 +160,7 @@ "to_hit": -3, "stack_size": 8, "//": "Roughly in the 15cm×15cm to 20cm×20cm range. Compact and stacks well, so equally dense as a solid block.", - "material": "steel", + "material": [ "steel" ], "symbol": "]", "color": "light_cyan", "ammo_type": "components" @@ -170,11 +172,12 @@ "description": "This is a heavy multiple-use tool commonly carried by firefighters, law enforcement, and military rescue units. Use it to open locked doors without destroying them or to lift manhole covers. You could also wield it to bash some heads in.", "weight": "3600 g", "volume": "1250 ml", + "longest_side": "76 cm", "price": 7500, "to_hit": 2, "bashing": 20, "cutting": 5, - "material": "steel", + "material": [ "steel" ], "symbol": ";", "color": "dark_gray", "techniques": [ "WBLOCK_1", "BRUTAL", "SWEEP" ], @@ -207,7 +210,8 @@ "name": "TEST screwdriver", "description": "This is a Philips-head screwdriver. It is important for almost all electronics crafting, most mechanics crafting, and has many more uses.", "weight": "170 g", - "volume": "250 ml", + "volume": "40 ml", + "longest_side": "15 cm", "price": 450, "to_hit": -1, "bashing": 2, @@ -225,6 +229,7 @@ "description": "This is a sonic screwdriver. Like a normal screwdriver, but sonic.", "weight": "170 g", "volume": "250 ml", + "longest_side": "25 cm", "price": 450, "to_hit": -1, "bashing": 2, @@ -232,9 +237,12 @@ "material": [ "steel", "plastic" ], "symbol": ";", "color": "yellow", - "qualities": [ [ "SCREW", 2 ], [ "SCREW_FINE", 1 ], [ "WRENCH", 1 ], [ "PRY", 2 ] ], - "use_action": { "type": "picklock", "pick_quality": 30 }, - "flags": [ "SPEAR", "BELT_CLIP" ] + "qualities": [ [ "SCREW", 2 ], [ "SCREW_FINE", 1 ], [ "WRENCH", 1 ], [ "PRY", 2 ], [ "LOCKPICK", 30 ] ], + "use_action": "PICK_LOCK", + "flags": [ "SPEAR", "BELT_CLIP" ], + "min_skills": [ [ "electronics", 3 ], [ "lockpick", 2 ] ], + "min_intelligence": 9, + "min_perception": 5 }, { "id": "test_soldering_iron", @@ -246,7 +254,7 @@ "price": 1000, "bashing": 2, "cutting": 6, - "material": "iron", + "material": [ "iron" ], "symbol": ",", "color": "light_gray", "ammo": [ "battery" ], @@ -263,27 +271,61 @@ { "flame": false, "type": "cauterize" } ], "flags": [ "SPEAR", "BELT_CLIP", "ALLOWS_REMOTE_USE" ], - "magazines": [ - [ - "battery", - [ - "light_minus_battery_cell", - "light_battery_cell", - "light_plus_battery_cell", - "light_atomic_battery_cell", - "light_minus_atomic_battery_cell", - "light_minus_disposable_cell", - "light_disposable_cell" - ] - ] + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "test_battery_disposable", "test_battery_rechargeable" ] + } ] }, + { + "id": "test_battery_disposable", + "type": "MAGAZINE", + "category": "spare_parts", + "name": { "str": "test disposable battery", "str_pl": "test disposable batteries" }, + "description": "This is a test disposable battery.", + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 300 } } ], + "flags": [ "NO_SALVAGE", "NO_UNLOAD" ], + "weight": "45 g", + "volume": "35 ml", + "price": 10000, + "price_postapoc": 200, + "material": [ "iron", "plastic" ], + "symbol": "=", + "color": "yellow", + "ammo_type": [ "battery" ], + "count": 300, + "capacity": 300, + "looks_like": "battery" + }, + { + "id": "test_battery_rechargable", + "type": "MAGAZINE", + "category": "spare_parts", + "name": { "str": "test rechargeable battery", "str_pl": "test rechargeable batteries" }, + "description": "This is a test battery that may be recharged.", + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 150 } } ], + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ], + "weight": "45 g", + "volume": "35ml", + "price": 5000, + "price_postapoc": 150, + "material": [ "iron", "plastic" ], + "symbol": "=", + "color": "yellow", + "ammo_type": [ "battery" ], + "capacity": 150, + "looks_like": "battery" + }, { "id": "test_jack_small", "type": "TOOL", "name": "TEST scissor jack", "description": "A compact scissor jack used for lifting vehicles.", - "material": "steel", + "material": [ "steel" ], "symbol": ";", "color": "light_gray", "weight": "3000 g", @@ -293,6 +335,37 @@ "to_hit": -2, "qualities": [ [ "JACK", 4 ] ] }, + { + "id": "test_smart_phone", + "type": "TOOL", + "name": { "str": "test smartphone" }, + "description": "UPS-powered smartphone with a flashlight, camera, and MP3 player.", + "weight": "230 g", + "volume": "100 ml", + "price": 20000, + "price_postapoc": 200, + "material": [ "plastic", "aluminum" ], + "looks_like": "cell_phone", + "symbol": ";", + "color": "light_gray", + "ammo": [ "battery" ], + "initial_charges": 110, + "max_charges": 120, + "charges_per_use": 1, + "use_action": [ + { + "target": "smart_phone_flashlight", + "msg": "You activate the flashlight app.", + "active": true, + "need_charges": 5, + "need_charges_msg": "The smartphone's charge is too low.", + "type": "transform" + }, + "CAMERA", + "MP3" + ], + "flags": [ "WATCH", "ALARMCLOCK", "USE_UPS", "NO_UNLOAD", "RECHARGE", "NO_RELOAD" ] + }, { "id": "test_socks", "type": "ARMOR", @@ -301,7 +374,7 @@ "weight": "32 g", "volume": "250 ml", "price": 200, - "material": [ "cotton" ], + "material": [ "cotton", "wool" ], "symbol": "[", "looks_like": "socks_wool", "color": "white", @@ -417,13 +490,68 @@ "calories": 202, "description": "A handful of tasty crunchy nuts from a pinecone.", "price": 136, - "material": "nut", + "price_postapoc": 136, + "material": [ "nut" ], "volume": "250 ml", "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], "charges": 4, "vitamins": [ [ "iron", 9 ] ], "fun": 2 }, + { + "id": "test_bitter_almond", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "category": "food", + "name": { "str_sp": "test bitter almonds" }, + "description": "A variety of almonds with traces of hydrocyanic acid, potentially toxic when eaten raw.", + "flags": [ "HIDDEN_POISON", "RAW" ], + "weight": "200 g", + "volume": "250 ml", + "symbol": "%", + "color": "brown", + "calories": 200, + "quench": -10, + "fun": -5 + }, + { + "id": "test_hallu_nutmeg", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "category": "food", + "name": { "str_sp": "test hallucinogenic nutmeg" }, + "description": "With high levels of the psychoactive myristicin, high doses of nutmeg can cause hallucinations and euphoria, along with a lot of nasty side effects.", + "flags": [ "HIDDEN_HALLU" ], + "weight": "212 g", + "volume": "250 ml", + "symbol": "%", + "color": "brown", + "quench": -50, + "fun": -20 + }, + { + "id": "test_apple", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "category": "food", + "name": { "str": "test apple" }, + "description": "Test apple. May contain worms, but tastes delicious!", + "volume": "250 ml", + "weight": "200 g", + "color": "red", + "spoils_in": "5 days", + "symbol": "%", + "quench": 3, + "healthy": -1, + "calories": 95, + "price": 900, + "price_postapoc": 100, + "material": [ "fruit" ], + "fun": 10, + "flags": [ "FREEZERBURN", "SMOKABLE" ], + "smoking_result": "dry_fruit", + "vitamins": [ [ "vitA", 2 ], [ "vitC", 14 ], [ "iron", 1 ] ] + }, { "id": "test_jug_plastic", "type": "GENERIC", @@ -434,10 +562,20 @@ "volume": "3750 ml", "price": 0, "to_hit": 1, - "material": "plastic", + "material": [ "plastic" ], "symbol": ")", "color": "light_cyan", - "pocket_data": [ { "max_contains_volume": "3750 ml", "max_contains_weight": "5 kg", "watertight": true, "rigid": true } ] + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "watertight": true, + "rigid": true, + "max_contains_volume": "3750 ml", + "max_item_volume": "15 ml", + "max_contains_weight": "5 kg", + "moves": 100 + } + ] }, { "id": "test_waterskin", @@ -450,13 +588,51 @@ "price": 2000, "to_hit": -1, "bashing": 1, - "material": "leather", + "material": [ "leather" ], "symbol": ")", "color": "brown", "armor_data": { "covers": [ "LEG_EITHER" ], "coverage": 5, "material_thickness": 2 }, - "pocket_data": [ { "max_contains_volume": "1500 ml", "max_contains_weight": "3 kg", "watertight": true } ], + "pocket_data": [ + { + "max_item_volume": "15 ml", + "max_item_length": "12 cm", + "max_contains_volume": "1500 ml", + "max_contains_weight": "3 kg", + "watertight": true, + "rigid": false, + "moves": 220 + } + ], "flags": [ "WAIST", "WATER_FRIENDLY" ] }, + { + "id": "test_balloon", + "type": "GENERIC", + "category": "container", + "name": { "str": "test balloon" }, + "description": "Stretchy, watertight, and airtight - the perfect trial balloon.", + "weight": "5 g", + "volume": "15 ml", + "price": 0, + "price_postapoc": 25, + "to_hit": -5, + "material": [ "rubber" ], + "symbol": ")", + "color": "white", + "flags": [ "CONDUCTIVE", "WATER_FRIENDLY" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "rigid": false, + "airtight": true, + "watertight": true, + "max_contains_volume": "10 L", + "max_contains_weight": "10 kg", + "moves": 1000 + } + ], + "properties": [ [ "burst_when_filled", "75" ] ] + }, { "id": "test_backpack", "type": "ARMOR", @@ -509,6 +685,68 @@ "material_thickness": 2, "flags": [ "FANCY", "OVERSIZE", "BELTED", "RESTRICT_HANDS", "WATER_FRIENDLY" ] }, + { + "id": "test_quiver", + "type": "ARMOR", + "name": { "str": "test quiver" }, + "description": "Quiver of Testing, with room for 20 arrows or bolts.", + "weight": "260 g", + "volume": "500 ml", + "price": 6500, + "price_postapoc": 1000, + "bashing": 2, + "material": [ "leather" ], + "symbol": "[", + "looks_like": "bscabbard", + "color": "brown", + "covers": [ "LEG_EITHER" ], + "coverage": 10, + "encumbrance": 3, + "material_thickness": 1, + "pocket_data": [ { "ammo_restriction": { "arrow": 20, "bolt": 20 }, "moves": 20 } ], + "flags": [ "WAIST", "OVERSIZE", "WATER_FRIENDLY" ] + }, + { + "id": "test_arrow_wood", + "type": "AMMO", + "price": 1000, + "name": { "str": "test wooden broadhead arrow" }, + "symbol": "=", + "color": "green", + "looks_like": "arrow_fire_hardened_fletched", + "description": "Test arrow", + "material": [ "wood", "steel" ], + "volume": "250 ml", + "price_postapoc": 250, + "weight": "30 g", + "bashing": 2, + "cutting": 1, + "ammo_type": "arrow", + "damage": { "damage_type": "stab", "armor_penetration": 1, "constant_damage_multiplier": 1.5 }, + "dispersion": 110, + "loudness": 0, + "count": 10, + "critical_multiplier": 10, + "effects": [ "RECOVER_25" ] + }, + { + "id": "test_pointy_stick", + "type": "GENERIC", + "name": { "str": "test pointy stick" }, + "description": "A simple wood pole with one end sharpened.", + "material": "wood", + "volume": "1250 ml", + "weight": "900 g", + "symbol": "/", + "color": "brown", + "bashing": 5, + "cutting": 9, + "to_hit": -1, + "price_postapoc": 10, + "flags": [ "SPEAR" ], + "techniques": [ "WBLOCK_1" ], + "qualities": [ [ "COOK", 1 ] ] + }, { "type": "GENERIC", "id": "test_clumsy_sword", @@ -516,11 +754,12 @@ "description": "A poorly balanced sword for test purposes", "category": "spare_parts", "weight": "1250 g", + "volume": "1 L", + "longest_side": "1 meter", "to_hit": -1, "color": "dark_gray", "symbol": "/", "material": [ "steel" ], - "volume": "1 L", "bashing": 32, "cutting": 32, "price": 7500, @@ -533,11 +772,12 @@ "description": "A sword for test purposes", "category": "spare_parts", "weight": "1250 g", + "volume": "1 L", + "longest_side": "1 meter", "to_hit": 1, "color": "dark_gray", "symbol": "/", "material": [ "steel" ], - "volume": "1 L", "bashing": 32, "cutting": 32, "price": 7500, @@ -550,14 +790,430 @@ "description": "A well-balanced sword for test purposes", "category": "spare_parts", "weight": "1250 g", + "volume": "1 L", + "longest_side": "1 meter", "to_hit": 3, "color": "dark_gray", "symbol": "/", "material": [ "steel" ], - "volume": "1 L", "bashing": 32, "cutting": 32, "price": 7500, "price_postapoc": 300 + }, + { + "id": "test_glock", + "type": "GUN", + "name": { "str": "Test Glock" }, + "description": "A handgun for testing, based on the Glock 9mm.", + "weight": "600 g", + "volume": "500 ml", + "price": 69000, + "price_postapoc": 2500, + "to_hit": -2, + "bashing": 8, + "material": [ "plastic", "steel" ], + "symbol": "(", + "color": "dark_gray", + "ammo": [ "9mm" ], + "ranged_damage": { "damage_type": "bullet", "amount": -1 }, + "dispersion": 480, + "durability": 6, + "blackpowder_tolerance": 48, + "min_cycle_recoil": 380, + "skill": "pistol", + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "glockmag", "glockbigmag" ] + } + ] + }, + { + "id": "test_9mm_ammo", + "type": "AMMO", + "name": { "str": "Test 9mm ammo" }, + "description": "Generic 9mm ammo based on JHP.", + "weight": "7 g", + "volume": "250 ml", + "price": 150, + "price_postapoc": 1000, + "flags": [ "IRREPLACEABLE_CONSUMABLE" ], + "material": [ "brass", "powder" ], + "symbol": "=", + "color": "yellow", + "count": 50, + "stack_size": 50, + "ammo_type": "9mm", + "casing": "9mm_casing", + "range": 14, + "damage": { "damage_type": "bullet", "amount": 26 }, + "dispersion": 60, + "recoil": 500, + "effects": [ "COOKOFF" ] + }, + { + "id": "test_45_ammo", + "type": "AMMO", + "name": { "str": "Test .45 ammo" }, + "description": "Test ammo based on the .45 JHP.", + "weight": "10 g", + "volume": "250 ml", + "price": 180, + "price_postapoc": 600, + "flags": [ "IRREPLACEABLE_CONSUMABLE" ], + "material": [ "brass", "powder" ], + "symbol": "=", + "color": "yellow", + "count": 30, + "stack_size": 30, + "ammo_type": "45", + "casing": "45_casing", + "range": 16, + "damage": { "damage_type": "bullet", "amount": 30, "armor_penetration": 2 }, + "dispersion": 50, + "recoil": 600, + "effects": [ "COOKOFF" ] + }, + { + "id": "test_liquid", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "category": "food", + "name": { "str_sp": "test liquid" }, + "description": "No clue what it's made of, but it's definitely liquid. Only for testing, do not drink!", + "phase": "liquid", + "weight": "250 g", + "volume": "250 ml", + "price": 50, + "symbol": "~", + "color": "light_blue" + }, + { + "id": "test_gas", + "type": "ammunition_type", + "name": "heady vapours", + "default": "test_gas" + }, + { + "id": "test_gas", + "type": "AMMO", + "ammo_type": "test_gas", + "category": "chems", + "name": { "str_sp": "test gas" }, + "description": "Some mysterious substance in the form of a gas. Only for testing, do not inhale!", + "phase": "gas", + "weight": "250 g", + "volume": "250 ml", + "price": 50, + "symbol": "~", + "color": "light_gray" + }, + { + "id": "test_box", + "type": "GENERIC", + "category": "container", + "name": { "str": "test box" }, + "description": "A simple 1-liter cardboard box of deliberately undefined proportions.", + "weight": "100 g", + "volume": "1 L", + "price": 0, + "price_postapoc": 25, + "material": "cardboard", + "symbol": "[", + "color": "brown", + "pocket_data": [ + { + "//": "max_item_length is left undefined on purpose, to test default length from volume", + "pocket_type": "CONTAINER", + "rigid": true, + "max_item_volume": "1 L", + "max_contains_volume": "1 L", + "max_contains_weight": "10 kg", + "moves": 200 + } + ] + }, + { + "id": "test_rod_14cm", + "type": "GENERIC", + "name": "test 14 cm rod", + "description": "A thin rod exactly 14 cm in length", + "category": "spare_parts", + "weight": "1 g", + "volume": "1 ml", + "longest_side": "14 cm", + "color": "dark_gray", + "symbol": "/", + "material": "steel" + }, + { + "id": "test_rod_15cm", + "type": "GENERIC", + "name": "test 15 cm rod", + "description": "A thin rod exactly 15 cm in length", + "category": "spare_parts", + "weight": "1 g", + "volume": "1 ml", + "longest_side": "15 cm", + "color": "dark_gray", + "symbol": "/", + "material": "steel" + }, + { + "id": "test_crafted_suppressor", + "type": "GUNMOD", + "name": { "str": "test suppressor" }, + "description": "Gun suppressor mod for testing.", + "weight": "880 g", + "volume": "750 ml", + "price": 480, + "price_postapoc": 250, + "to_hit": 1, + "bashing": 3, + "material": [ "steel" ], + "symbol": ":", + "color": "dark_gray", + "location": "muzzle", + "mod_targets": [ "pistol", "rifle" ], + "consume_chance": 20, + "consume_divisor": 110, + "damage_modifier": { "damage_type": "bullet", "amount": -5 }, + "dispersion_modifier": 40, + "sight_dispersion": 11, + "aim_speed": 4, + "handling_modifier": 1, + "loudness_modifier": -30, + "flags": [ "DISABLE_SIGHTS", "CONSUMABLE", "REACH_ATTACK" ] + }, + { + "type": "COMESTIBLE", + "id": "test_brew_wine", + "name": "tennis ball wine must", + "description": "Unfermented tennis ball wine. A rubbery, boiled juice made from mashed tennis balls.", + "weight": "46 g", + "color": "light_red", + "container": "bottle_glass", + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], + "symbol": "~", + "calories": 17, + "quench": 6, + "fun": -5, + "price": 0, + "material": [ "rubber", "water" ], + "volume": "250 ml", + "price_postapoc": 10, + "charges": 7, + "phase": "liquid", + "comestible_type": "DRINK", + "brewable": { "time": "12 hours", "results": [ "test_wine", "yeast" ] } + }, + { + "type": "COMESTIBLE", + "id": "test_wine", + "name": { "str_sp": "test tennis ball wine" }, + "weight": "36 g", + "color": "light_red", + "addiction_type": "alcohol", + "use_action": "ALCOHOL_WEAK", + "stim": -4, + "container": "bottle_glass", + "comestible_type": "DRINK", + "symbol": "~", + "quench": 10, + "healthy": -2, + "addiction_potential": 3, + "calories": 49, + "description": "Cheap booze made from fermented tennis ball juice. Tastes just like it sounds.", + "price": 550, + "price_postapoc": 100, + "material": [ "alcohol", "water" ], + "primary_material": "alcohol", + "volume": "250 ml", + "phase": "liquid", + "charges": 7, + "flags": [ "EATEN_COLD" ], + "fun": -5, + "freezing_point": 20 + }, + { + "id": "test_nuclear_carafe", + "type": "GENERIC", + "category": "tools", + "name": { "str": "test nuclear carafe" }, + "description": "This is a test coffee carafe designed to keep atomic beverages extra radioactive. It leaks radiation all the time.", + "weight": "5 kg", + "volume": "4 L", + "price": 100000, + "price_postapoc": 3000, + "material": [ "plastic", "aluminum" ], + "qualities": [ [ "BOIL", 1 ] ], + "symbol": "&", + "color": "light_green", + "flags": [ "LEAK_ALWAYS", "RADIOACTIVE" ] + }, + { + "id": "test_gum", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str_sp": "test chewing gum" }, + "description": "Curiously stimulating and thirst-quenching blueberry-flavored chewing gum.", + "category": "food", + "weight": "3 g", + "volume": "250 ml", + "price": 100, + "price_postapoc": 100, + "charges": 10, + "stack_size": 100, + "symbol": "*", + "color": "pink", + "fun": 5, + "stim": 10, + "quench": 50, + "addiction_potential": 10, + "flags": [ "NO_INGEST" ], + "use_action": "CHEW" + }, + { + "id": "test_cmdline_book", + "type": "BOOK", + "name": { "str": "In the Beginning… Was the Command Line", "str_pl": "copies of In the Beginning… Was the Command Line" }, + "description": "Humorous 1999 essay by Neal Stephenson comparing computer operating system vendors to car dealerships.", + "weight": "300 g", + "volume": "300 ml", + "price": 500, + "price_postapoc": 500, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "time": "5 m", + "fun": 2 + }, + { + "id": "test_dragon_book", + "type": "BOOK", + "name": { "str": "Principles of Compiler Design", "str_pl": "copies of Principles of Compiler Design" }, + "description": "Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. Features a cover drawing of a knight wielding an LALR parser generation and syntax directed translation against the metaphorical green dragon, The Complexity of Compiler Design.", + "weight": "1587 g", + "volume": "1500 ml", + "price": 7800, + "price_postapoc": 500, + "bashing": 6, + "material": [ "paper" ], + "symbol": "?", + "color": "green", + "skill": "computer", + "required_level": 4, + "max_level": 7, + "intelligence": 12, + "time": "50 m", + "fun": -1 + }, + { + "id": "test_power_armor", + "type": "ARMOR", + "category": "armor", + "name": { "str": "test power armor" }, + "description": "This is a prototype power armor just for testing.", + "weight": "55 kg", + "volume": "100 L", + "price": 7000000, + "price_postapoc": 30000, + "to_hit": 1, + "bashing": 1, + "material": [ "hardsteel", "ceramic", "kevlar_rigid" ], + "symbol": "[", + "looks_like": "depowered_armor", + "color": "light_gray", + "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], + "coverage": 100, + "encumbrance": 50, + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "rigid": true, + "max_contains_volume": "2500 ml", + "max_contains_weight": "15 kg", + "moves": 200 + } + ], + "warmth": 90, + "power_armor": true, + "material_thickness": 14, + "environmental_protection": 16, + "use_action": { "type": "ups_based_armor", "activate_msg": "Your power armor engages." }, + "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE" ] + }, + { + "id": "test_meower_armor", + "type": "PET_ARMOR", + "name": { "str": "meower armor" }, + "description": "Sleek and lightweight kevlar cat harness with a protective hood and chestplate. Includes a very small, inconvenient velcro pocket on the back.", + "weight": "300 g", + "volume": "1 L", + "price": 30000, + "price_postapoc": 1000, + "material": [ "kevlar_layered" ], + "material_thickness": 2, + "environmental_protection": 10, + "symbol": "[", + "looks_like": "tacvest", + "color": "blue", + "flags": [ "IS_PET_ARMOR", "NO_SALVAGE" ], + "max_pet_vol": "3 L", + "min_pet_vol": "6 L", + "pet_bodytype": "dog", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "100 ml", + "max_contains_weight": "100 g", + "//": "It takes you an extremely long time to make your cat hold still.", + "moves": 2500 + } + ] + }, + { + "id": "test_matches", + "type": "TOOL", + "name": { "str": "test matchbook" }, + "description": "Test matches - when you must burn things, for science!", + "weight": "10 g", + "volume": "10 ml", + "price": 10, + "price_postapoc": 50, + "material": "cardboard", + "symbol": ",", + "color": "blue", + "initial_charges": 20, + "max_charges": 20, + "charges_per_use": 1, + "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "match": 20 } } ], + "use_action": { "type": "firestarter", "moves": 40, "moves_slow": 1000 }, + "flags": [ "FIRESTARTER", "NO_RELOAD", "NO_UNLOAD" ] + }, + { + "id": "test_thumb", + "type": "COMESTIBLE", + "category": "other", + "material": "hflesh", + "name": { "str": "test mutated thumb" }, + "description": "A misshapen human thumb. Eating this would be incredibly disgusting and probably cause you to mutate.", + "volume": "100 ml", + "weight": "100 g", + "color": "brown", + "spoils_in": "2 days", + "use_action": { "type": "mutagen", "is_weak": true }, + "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], + "comestible_type": "FOOD", + "symbol": "%", + "healthy": -8, + "calories": 50, + "price": 0, + "price_postapoc": 0, + "fun": -20 } ] diff --git a/data/names/ja.json b/data/names/ja.json index f3e6f92ff397e..c9752b14adac6 100644 --- a/data/names/ja.json +++ b/data/names/ja.json @@ -1,1611 +1,1640 @@ [ -{"usage": "backer", "gender": "unisex", "name": "アーガス M. ローウェル"}, -{"usage": "backer", "gender": "unisex", "name": "アーク"}, -{"usage": "backer", "gender": "unisex", "name": "アーチャー"}, -{"usage": "backer", "gender": "unisex", "name": "アーリスト マクプリューデント"}, -{"usage": "backer", "gender": "unisex", "name": "アジャイ チャンドラ"}, -{"usage": "backer", "gender": "unisex", "name": "アトモス"}, -{"usage": "backer", "gender": "unisex", "name": "アルファイ"}, -{"usage": "backer", "gender": "unisex", "name": "アレクサンダー ウィークス"}, -{"usage": "backer", "gender": "unisex", "name": "アレクサンダー クリックコー"}, -{"usage": "backer", "gender": "unisex", "name": "アレクサンダー ドミトリエフ"}, -{"usage": "backer", "gender": "unisex", "name": "アンソニー バーリー"}, -{"usage": "backer", "gender": "unisex", "name": "アントン ストライク"}, -{"usage": "backer", "gender": "unisex", "name": "アンドリュー ウェブスター"}, -{"usage": "backer", "gender": "unisex", "name": "アンドリュー ガーステラー"}, -{"usage": "backer", "gender": "unisex", "name": "イェレミアス ブラベータ"}, -{"usage": "backer", "gender": "unisex", "name": "イェンス ベッカー"}, -{"usage": "backer", "gender": "unisex", "name": "イーリー フォレスト キートン"}, -{"usage": "backer", "gender": "unisex", "name": "イアン クリー"}, -{"usage": "backer", "gender": "unisex", "name": "ウィリアム フォレスト"}, -{"usage": "backer", "gender": "unisex", "name": "ウィル ウォーカー"}, -{"usage": "backer", "gender": "unisex", "name": "ウィンター グードブロッド"}, -{"usage": "backer", "gender": "unisex", "name": "ウェイン A アーサートン"}, -{"usage": "backer", "gender": "unisex", "name": "エベリン フロスト"}, -{"usage": "backer", "gender": "unisex", "name": "エリック ハンガーブーラー"}, -{"usage": "backer", "gender": "unisex", "name": "エリック ローサック"}, -{"usage": "backer", "gender": "unisex", "name": "エンリケ アロンソ"}, -{"usage": "backer", "gender": "unisex", "name": "オーエン ダン"}, -{"usage": "backer", "gender": "unisex", "name": "カミル クリウィソン"}, -{"usage": "backer", "gender": "unisex", "name": "ガッツ"}, -{"usage": "backer", "gender": "unisex", "name": "ガーグ ハックポフ"}, -{"usage": "backer", "gender": "unisex", "name": "ガブリエル ドン"}, -{"usage": "backer", "gender": "unisex", "name": "ガルファス モーゴロック"}, -{"usage": "backer", "gender": "unisex", "name": "ギョーム レビゴット"}, -{"usage": "backer", "gender": "unisex", "name": "クリス ワトキンス"}, -{"usage": "backer", "gender": "unisex", "name": "クリストファー フォーリンズ"}, -{"usage": "backer", "gender": "unisex", "name": "クレイ フォックステイル"}, -{"usage": "backer", "gender": "unisex", "name": "クレイグ ファーガソン"}, -{"usage": "backer", "gender": "unisex", "name": "クレイグ マトン"}, -{"usage": "backer", "gender": "unisex", "name": "グレン ランシッター"}, -{"usage": "backer", "gender": "unisex", "name": "ケビン ウィット"}, -{"usage": "backer", "gender": "unisex", "name": "ケビン グラッソ"}, -{"usage": "backer", "gender": "unisex", "name": "ケンジ クロカワ"}, -{"usage": "backer", "gender": "unisex", "name": "コムレイド ギャリー"}, -{"usage": "backer", "gender": "unisex", "name": "サイモン トーレセン ハルト"}, -{"usage": "backer", "gender": "unisex", "name": "サム スタイン"}, -{"usage": "backer", "gender": "unisex", "name": "ザナム"}, -{"usage": "backer", "gender": "unisex", "name": "シャーロット ホール"}, -{"usage": "backer", "gender": "unisex", "name": "ショーン ダンカン"}, -{"usage": "backer", "gender": "unisex", "name": "シメファミ"}, -{"usage": "backer", "gender": "unisex", "name": "ジェームス ケニー"}, -{"usage": "backer", "gender": "unisex", "name": "ジェフ メジャー"}, -{"usage": "backer", "gender": "unisex", "name": "ジャスティン マッキノン"}, -{"usage": "backer", "gender": "unisex", "name": "ジョシュア ヤング"}, -{"usage": "backer", "gender": "unisex", "name": "ジョセフ 'ザキャルゥー' バートレット"}, -{"usage": "backer", "gender": "unisex", "name": "ジョン エニオン"}, -{"usage": "backer", "gender": "unisex", "name": "ジョン ハメル"}, -{"usage": "backer", "gender": "unisex", "name": "ジム ウィーバー"}, -{"usage": "backer", "gender": "unisex", "name": "ジム ランダーランド"}, -{"usage": "backer", "gender": "unisex", "name": "スゾックス ガボール フェレンツ"}, -{"usage": "backer", "gender": "unisex", "name": "スティーブン ビーターソン"}, -{"usage": "backer", "gender": "unisex", "name": "ストットナー"}, -{"usage": "backer", "gender": "unisex", "name": "スノー 'ニャー'"}, -{"usage": "backer", "gender": "unisex", "name": "スパシー プケラウクト"}, -{"usage": "backer", "gender": "unisex", "name": "スパロー グリフォン"}, -{"usage": "backer", "gender": "unisex", "name": "ズヒアオ"}, -{"usage": "backer", "gender": "unisex", "name": "セバスチャン ジャフル"}, -{"usage": "backer", "gender": "unisex", "name": "セルカン コイル"}, -{"usage": "backer", "gender": "unisex", "name": "ダックコー"}, -{"usage": "backer", "gender": "unisex", "name": "ダグ オグデン"}, -{"usage": "backer", "gender": "unisex", "name": "ダスク ガオ"}, -{"usage": "backer", "gender": "unisex", "name": "ダニエル アンフィールド"}, -{"usage": "backer", "gender": "unisex", "name": "ダニエル ダナヒー"}, -{"usage": "backer", "gender": "unisex", "name": "ディック サージ"}, -{"usage": "backer", "gender": "unisex", "name": "デイヴ ステバーデイバーソン"}, -{"usage": "backer", "gender": "unisex", "name": "トッドリック リッホープ"}, -{"usage": "backer", "gender": "unisex", "name": "トーマス サイモン"}, -{"usage": "backer", "gender": "unisex", "name": "トーマス ラルソン"}, -{"usage": "backer", "gender": "unisex", "name": "トナミ ヨルゲンセン"}, -{"usage": "backer", "gender": "unisex", "name": "トビアス フランケ"}, -{"usage": "backer", "gender": "unisex", "name": "トム フーパー"}, -{"usage": "backer", "gender": "unisex", "name": "トラビス ギブソン"}, -{"usage": "backer", "gender": "unisex", "name": "トリアナ"}, -{"usage": "backer", "gender": "unisex", "name": "トンザ"}, -{"usage": "backer", "gender": "unisex", "name": "ドクター ヒルク ヴァン ダー シャーフ"}, -{"usage": "backer", "gender": "unisex", "name": "ドリオ"}, -{"usage": "backer", "gender": "unisex", "name": "ナサニエル フォード"}, -{"usage": "backer", "gender": "unisex", "name": "ニック 'ハボック' パーカー"}, -{"usage": "backer", "gender": "unisex", "name": "ニック ステファン"}, -{"usage": "backer", "gender": "unisex", "name": "ネイサン キャン"}, -{"usage": "backer", "gender": "unisex", "name": "ハリド ラシッド"}, -{"usage": "backer", "gender": "unisex", "name": "ハンク レクラム"}, -{"usage": "backer", "gender": "unisex", "name": "パスカル フィリッポビックズ"}, -{"usage": "backer", "gender": "unisex", "name": "ヒューバート ヒューズ"}, -{"usage": "backer", "gender": "unisex", "name": "ヒューバート ローデンボウ"}, -{"usage": "backer", "gender": "unisex", "name": "ピーター ストールベリ"}, -{"usage": "backer", "gender": "unisex", "name": "フィリップ トレンブレイ"}, -{"usage": "backer", "gender": "unisex", "name": "フェリックス アプリン"}, -{"usage": "backer", "gender": "unisex", "name": "フェリックス フォックス"}, -{"usage": "backer", "gender": "unisex", "name": "フローズンフォクシー"}, -{"usage": "backer", "gender": "unisex", "name": "ブライアン デビットソン"}, -{"usage": "backer", "gender": "unisex", "name": "ブライアン ホースターマン"}, -{"usage": "backer", "gender": "unisex", "name": "ヘリス ゼーボン"}, -{"usage": "backer", "gender": "unisex", "name": "ベン マクルーア"}, -{"usage": "backer", "gender": "unisex", "name": "ベンジャミン レップローグル"}, -{"usage": "backer", "gender": "unisex", "name": "ホメロス"}, -{"usage": "backer", "gender": "unisex", "name": "ボバロット"}, -{"usage": "backer", "gender": "unisex", "name": "ポール ウォレス"}, -{"usage": "backer", "gender": "unisex", "name": "マット ウィリアムズ"}, -{"usage": "backer", "gender": "unisex", "name": "マット デイビス"}, -{"usage": "backer", "gender": "unisex", "name": "マーク 'バッド ボーイ' バッドイ"}, -{"usage": "backer", "gender": "unisex", "name": "マーティン ウッダード"}, -{"usage": "backer", "gender": "unisex", "name": "マーティン スウェンソン"}, -{"usage": "backer", "gender": "unisex", "name": "マイケル 'ディス ホリブリー' ジョーンズ"}, -{"usage": "backer", "gender": "unisex", "name": "マイケル キンケイド"}, -{"usage": "backer", "gender": "unisex", "name": "マイケル ヒル"}, -{"usage": "backer", "gender": "unisex", "name": "マイル プロワース"}, -{"usage": "backer", "gender": "unisex", "name": "マシュー セント ジョン"}, -{"usage": "backer", "gender": "unisex", "name": "マニック デプレイシーブ"}, -{"usage": "backer", "gender": "unisex", "name": "ミック バット"}, -{"usage": "backer", "gender": "unisex", "name": "ミゲル ハーメズ"}, -{"usage": "backer", "gender": "unisex", "name": "ミシェル バージェロン"}, -{"usage": "backer", "gender": "unisex", "name": "ミロッチ"}, -{"usage": "backer", "gender": "unisex", "name": "ラクエル マクマホン"}, -{"usage": "backer", "gender": "unisex", "name": "ラクラン"}, -{"usage": "backer", "gender": "unisex", "name": "ラス レイノルズ III"}, -{"usage": "backer", "gender": "unisex", "name": "ラリアン"}, -{"usage": "backer", "gender": "unisex", "name": "ランバンクティオス リック"}, -{"usage": "backer", "gender": "unisex", "name": "リノ パーカー"}, -{"usage": "backer", "gender": "unisex", "name": "ルドルフ シュミット"}, -{"usage": "backer", "gender": "unisex", "name": "レイモンド ベラス"}, -{"usage": "backer", "gender": "unisex", "name": "レオニード ワシリエフ"}, -{"usage": "backer", "gender": "unisex", "name": "レフ ムイシキン"}, -{"usage": "backer", "gender": "unisex", "name": "ロール"}, -{"usage": "backer", "gender": "unisex", "name": "ロウリー デニス"}, -{"usage": "backer", "gender": "unisex", "name": "ロニー マグヌソン"}, -{"usage": "backer", "gender": "unisex", "name": "ロブ ウェッツェル"}, -{"usage": "backer", "gender": "unisex", "name": "ロブ キー"}, -{"usage": "backer", "gender": "unisex", "name": "ロン 'ノイズ' ハキム"}, -{"usage": "city", "name": "アッシュバーンハム"}, -{"usage": "city", "name": "アッシュビー"}, -{"usage": "city", "name": "アッシュフィールド"}, -{"usage": "city", "name": "アッシュフォード"}, -{"usage": "city", "name": "アッシュランド"}, -{"usage": "city", "name": "アッタルボロー"}, -{"usage": "city", "name": "アップルトン"}, -{"usage": "city", "name": "アーガイル"}, -{"usage": "city", "name": "アービング"}, -{"usage": "city", "name": "アーラスバーグ"}, -{"usage": "city", "name": "アーリントン"}, -{"usage": "city", "name": "アイヤー"}, -{"usage": "city", "name": "アイラ"}, -{"usage": "city", "name": "アイランダー"}, -{"usage": "city", "name": "アイランドフォールス"}, -{"usage": "city", "name": "アイル・オ・ホット"}, -{"usage": "city", "name": "アイル・ラ・モッテ"}, -{"usage": "city", "name": "アイルズボロ"}, -{"usage": "city", "name": "アカシュネット"}, -{"usage": "city", "name": "アガウァム"}, -{"usage": "city", "name": "アクァース"}, -{"usage": "city", "name": "アクイナ"}, -{"usage": "city", "name": "アクスブリッジ"}, -{"usage": "city", "name": "アクトン"}, -{"usage": "city", "name": "アソール"}, -{"usage": "city", "name": "アダムス"}, -{"usage": "city", "name": "アテネ"}, -{"usage": "city", "name": "アディソン"}, -{"usage": "city", "name": "アトキンソン"}, -{"usage": "city", "name": "アビングトン"}, -{"usage": "city", "name": "アプトン"}, -{"usage": "city", "name": "アボット"}, -{"usage": "city", "name": "アミティ"}, -{"usage": "city", "name": "アムハースト"}, -{"usage": "city", "name": "アランデル"}, -{"usage": "city", "name": "アルステッド"}, -{"usage": "city", "name": "アルトン"}, -{"usage": "city", "name": "アルナ"}, -{"usage": "city", "name": "アルバーグ"}, -{"usage": "city", "name": "アルビオン"}, -{"usage": "city", "name": "アルフレッド"}, -{"usage": "city", "name": "アレクサンダー"}, -{"usage": "city", "name": "アレクサンドリア"}, -{"usage": "city", "name": "アローシック"}, -{"usage": "city", "name": "アンソニア"}, -{"usage": "city", "name": "アンソン"}, -{"usage": "city", "name": "アンダーヒル"}, -{"usage": "city", "name": "アントリム"}, -{"usage": "city", "name": "アンドーバー"}, -{"usage": "city", "name": "イーグルレイク"}, -{"usage": "city", "name": "イーストウィンザー"}, -{"usage": "city", "name": "イーストキングストン"}, -{"usage": "city", "name": "イーストグランビー"}, -{"usage": "city", "name": "イーストグリニッジ"}, -{"usage": "city", "name": "イーストハッダム"}, -{"usage": "city", "name": "イーストハートフォード"}, -{"usage": "city", "name": "イーストハム"}, -{"usage": "city", "name": "イーストハンプトン"}, -{"usage": "city", "name": "イーストハンプトン"}, -{"usage": "city", "name": "イーストフォード"}, -{"usage": "city", "name": "イーストブリッジウォーター"}, -{"usage": "city", "name": "イーストブルック"}, -{"usage": "city", "name": "イーストブルックフィールド"}, -{"usage": "city", "name": "イーストプロビデンス"}, -{"usage": "city", "name": "イーストヘブン"}, -{"usage": "city", "name": "イーストポート"}, -{"usage": "city", "name": "イーストマチアス"}, -{"usage": "city", "name": "イーストミリノケット"}, -{"usage": "city", "name": "イーストモントピーリア"}, -{"usage": "city", "name": "イーストライム"}, -{"usage": "city", "name": "イーストロングメドウ"}, -{"usage": "city", "name": "イーストン"}, -{"usage": "city", "name": "イートン"}, -{"usage": "city", "name": "イプスウィッチ"}, -{"usage": "city", "name": "インダストリー"}, -{"usage": "city", "name": "ウィーアー"}, -{"usage": "city", "name": "ウィーロック"}, -{"usage": "city", "name": "ウィーン"}, -{"usage": "city", "name": "ウィスキャセット"}, -{"usage": "city", "name": "ウィヌースキ"}, -{"usage": "city", "name": "ウィリアムズタウン"}, -{"usage": "city", "name": "ウィリアムズバーグ"}, -{"usage": "city", "name": "ウィリストン"}, -{"usage": "city", "name": "ウィリマンティック"}, -{"usage": "city", "name": "ウィルトン"}, -{"usage": "city", "name": "ウィルブラーム"}, -{"usage": "city", "name": "ウィルミントン"}, -{"usage": "city", "name": "ウィルモット"}, -{"usage": "city", "name": "ウィン"}, -{"usage": "city", "name": "ウィンザー"}, -{"usage": "city", "name": "ウィンザーロックス"}, -{"usage": "city", "name": "ウィンスロップ"}, -{"usage": "city", "name": "ウィンスロー"}, -{"usage": "city", "name": "ウィンターハーバー"}, -{"usage": "city", "name": "ウィンタービルプランテーション"}, -{"usage": "city", "name": "ウィンターポート"}, -{"usage": "city", "name": "ウィンダム"}, -{"usage": "city", "name": "ウィンチェスター"}, -{"usage": "city", "name": "ウィンチェンドン"}, -{"usage": "city", "name": "ウィンホール"}, -{"usage": "city", "name": "ウェールズ"}, -{"usage": "city", "name": "ウェア"}, -{"usage": "city", "name": "ウェアラム"}, -{"usage": "city", "name": "ウェイクフィールド"}, -{"usage": "city", "name": "ウェイト"}, -{"usage": "city", "name": "ウェイトスフィールド"}, -{"usage": "city", "name": "ウェイトリー"}, -{"usage": "city", "name": "ウェイド"}, -{"usage": "city", "name": "ウェイブリッジ"}, -{"usage": "city", "name": "ウェイマス"}, -{"usage": "city", "name": "ウェイランド"}, -{"usage": "city", "name": "ウェイン"}, -{"usage": "city", "name": "ウェザースフィールド"}, -{"usage": "city", "name": "ウェザーズフィールド"}, -{"usage": "city", "name": "ウェスタリー"}, -{"usage": "city", "name": "ウェストン"}, -{"usage": "city", "name": "ウェズレー"}, -{"usage": "city", "name": "ウェブスター"}, -{"usage": "city", "name": "ウェブスタープランテーション"}, -{"usage": "city", "name": "ウェリントン"}, -{"usage": "city", "name": "ウェリントン"}, -{"usage": "city", "name": "ウェルズ"}, -{"usage": "city", "name": "ウェルズリー"}, -{"usage": "city", "name": "ウェルド"}, -{"usage": "city", "name": "ウェルフリート"}, -{"usage": "city", "name": "ウェンデル"}, -{"usage": "city", "name": "ウェントワース"}, -{"usage": "city", "name": "ウェンハム"}, -{"usage": "city", "name": "ウォッシュバーン"}, -{"usage": "city", "name": "ウォータータウン"}, -{"usage": "city", "name": "ウォータービル"}, -{"usage": "city", "name": "ウォータービルバレー"}, -{"usage": "city", "name": "ウォーターフォード"}, -{"usage": "city", "name": "ウォーターベリー"}, -{"usage": "city", "name": "ウォーターボロー"}, -{"usage": "city", "name": "ウォールデン"}, -{"usage": "city", "name": "ウォーレン"}, -{"usage": "city", "name": "ウォバーン"}, -{"usage": "city", "name": "ウォリングフォード"}, -{"usage": "city", "name": "ウォルコット"}, -{"usage": "city", "name": "ウォルサム"}, -{"usage": "city", "name": "ウォルドー"}, -{"usage": "city", "name": "ウォルドボロー"}, -{"usage": "city", "name": "ウォルポール"}, -{"usage": "city", "name": "ウッドストック"}, -{"usage": "city", "name": "ウッドビル"}, -{"usage": "city", "name": "ウッドフォード"}, -{"usage": "city", "name": "ウッドブリッジ"}, -{"usage": "city", "name": "ウッドベリー"}, -{"usage": "city", "name": "ウッドランド"}, -{"usage": "city", "name": "ウースター"}, -{"usage": "city", "name": "ウーリッジ"}, -{"usage": "city", "name": "ウーンソケット"}, -{"usage": "city", "name": "ウエストウィンザー"}, -{"usage": "city", "name": "ウエストウッド"}, -{"usage": "city", "name": "ウエストガーディナー"}, -{"usage": "city", "name": "ウエストグリニッジ"}, -{"usage": "city", "name": "ウエストストックブリッジ"}, -{"usage": "city", "name": "ウエストスプリングフィールド"}, -{"usage": "city", "name": "ウエストティスベリー"}, -{"usage": "city", "name": "ウエストニューベリー"}, -{"usage": "city", "name": "ウエストハートフォード"}, -{"usage": "city", "name": "ウエストハンプトン"}, -{"usage": "city", "name": "ウエストバース"}, -{"usage": "city", "name": "ウエストパリ"}, -{"usage": "city", "name": "ウエストフィールド"}, -{"usage": "city", "name": "ウエストフェアリー"}, -{"usage": "city", "name": "ウエストフォークス"}, -{"usage": "city", "name": "ウエストフォード"}, -{"usage": "city", "name": "ウエストブリッジウォーター"}, -{"usage": "city", "name": "ウエストブルック"}, -{"usage": "city", "name": "ウエストブルックフィールド"}, -{"usage": "city", "name": "ウエストベリー"}, -{"usage": "city", "name": "ウエストボイルストン"}, -{"usage": "city", "name": "ウエストボロー"}, -{"usage": "city", "name": "ウエストポート"}, -{"usage": "city", "name": "ウエストマンランド"}, -{"usage": "city", "name": "ウエストミンスター"}, -{"usage": "city", "name": "ウエストモア"}, -{"usage": "city", "name": "ウエストモアランド"}, -{"usage": "city", "name": "ウエストラトランド"}, -{"usage": "city", "name": "ウエストワーウィック"}, -{"usage": "city", "name": "ウルフボロー"}, -{"usage": "city", "name": "ヴァーシャイル"}, -{"usage": "city", "name": "ヴァートン"}, -{"usage": "city", "name": "ヴァーノン"}, -{"usage": "city", "name": "ヴァイナルヘブン"}, -{"usage": "city", "name": "ヴァサルボロー"}, -{"usage": "city", "name": "ヴァン・ビューレン"}, -{"usage": "city", "name": "ヴァンスボロー"}, -{"usage": "city", "name": "ヴィージー"}, -{"usage": "city", "name": "ヴェルジェンヌ"}, -{"usage": "city", "name": "ヴェローナアイランド"}, -{"usage": "city", "name": "エッジコーム"}, -{"usage": "city", "name": "エッピング"}, -{"usage": "city", "name": "エイボン"}, -{"usage": "city", "name": "エイムズベリー"}, -{"usage": "city", "name": "エクセター"}, -{"usage": "city", "name": "エグリモント"}, -{"usage": "city", "name": "エセックス"}, -{"usage": "city", "name": "エディントン"}, -{"usage": "city", "name": "エディンバーグ"}, -{"usage": "city", "name": "エデン"}, -{"usage": "city", "name": "エトナ"}, -{"usage": "city", "name": "エドガータウン"}, -{"usage": "city", "name": "エドマンズ"}, -{"usage": "city", "name": "エノスバーグ"}, -{"usage": "city", "name": "エフィンハム"}, -{"usage": "city", "name": "エプソム"}, -{"usage": "city", "name": "エベレット"}, -{"usage": "city", "name": "エムデン"}, -{"usage": "city", "name": "エリオット"}, -{"usage": "city", "name": "エリコ"}, -{"usage": "city", "name": "エリザベスミサキ"}, -{"usage": "city", "name": "エリントン"}, -{"usage": "city", "name": "エルズワース"}, -{"usage": "city", "name": "エルモア"}, -{"usage": "city", "name": "エロール"}, -{"usage": "city", "name": "エンフィールド"}, -{"usage": "city", "name": "オックスフォード"}, -{"usage": "city", "name": "オックスボー"}, -{"usage": "city", "name": "オーウェル"}, -{"usage": "city", "name": "オーカム"}, -{"usage": "city", "name": "オーガスタ"}, -{"usage": "city", "name": "オークフィールド"}, -{"usage": "city", "name": "オークブラフス"}, -{"usage": "city", "name": "オークランド"}, -{"usage": "city", "name": "オーチス"}, -{"usage": "city", "name": "オーチスフィールド"}, -{"usage": "city", "name": "オーバーン"}, -{"usage": "city", "name": "オーフォード"}, -{"usage": "city", "name": "オーラガッシュ"}, -{"usage": "city", "name": "オーランド"}, -{"usage": "city", "name": "オールド・オーチャート・゙ビーチ"}, -{"usage": "city", "name": "オールドセイブルック"}, -{"usage": "city", "name": "オールドタウン"}, -{"usage": "city", "name": "オールドライム"}, -{"usage": "city", "name": "オールバニー"}, -{"usage": "city", "name": "オーレンストーン"}, -{"usage": "city", "name": "オーロラ"}, -{"usage": "city", "name": "オーンビル"}, -{"usage": "city", "name": "オウルヘッド"}, -{"usage": "city", "name": "オガンキット"}, -{"usage": "city", "name": "オシッピー"}, -{"usage": "city", "name": "オズボーン"}, -{"usage": "city", "name": "オランダ"}, -{"usage": "city", "name": "オリエント"}, -{"usage": "city", "name": "オリントン"}, -{"usage": "city", "name": "オルフォード"}, -{"usage": "city", "name": "オルレアン"}, -{"usage": "city", "name": "オレンジ"}, -{"usage": "city", "name": "オロノ"}, -{"usage": "city", "name": "カッシング"}, -{"usage": "city", "name": "カーバー"}, -{"usage": "city", "name": "カービー"}, -{"usage": "city", "name": "カーライル"}, -{"usage": "city", "name": "カスティーニ"}, -{"usage": "city", "name": "カトラー"}, -{"usage": "city", "name": "カナン"}, -{"usage": "city", "name": "カベンディッシュ"}, -{"usage": "city", "name": "カボット"}, -{"usage": "city", "name": "カミングトン"}, -{"usage": "city", "name": "カムデン"}, -{"usage": "city", "name": "カラタンク"}, -{"usage": "city", "name": "カリブー"}, -{"usage": "city", "name": "カルタゴ"}, -{"usage": "city", "name": "カルメル"}, -{"usage": "city", "name": "カレー"}, -{"usage": "city", "name": "カンタベリー"}, -{"usage": "city", "name": "カントン"}, -{"usage": "city", "name": "カンバーランド"}, -{"usage": "city", "name": "ガーディナー"}, -{"usage": "city", "name": "ガードナー"}, -{"usage": "city", "name": "ガーフィールドプランテーション"}, -{"usage": "city", "name": "ガーランド"}, -{"usage": "city", "name": "キャッスルトン"}, -{"usage": "city", "name": "キャッスルヒル"}, -{"usage": "city", "name": "キャスウェル"}, -{"usage": "city", "name": "キャスコ"}, -{"usage": "city", "name": "キャラバセットバレー"}, -{"usage": "city", "name": "キャロル"}, -{"usage": "city", "name": "キャロルプランテーション"}, -{"usage": "city", "name": "キャンディア"}, -{"usage": "city", "name": "キャンプトン"}, -{"usage": "city", "name": "キッタリー"}, -{"usage": "city", "name": "キーン"}, -{"usage": "city", "name": "キリングトン"}, -{"usage": "city", "name": "キリングリー"}, -{"usage": "city", "name": "キリングワース"}, -{"usage": "city", "name": "キングストン"}, -{"usage": "city", "name": "キングズバリプランテーション"}, -{"usage": "city", "name": "キングフィールド"}, -{"usage": "city", "name": "キングマン"}, -{"usage": "city", "name": "ギル"}, -{"usage": "city", "name": "ギルサム"}, -{"usage": "city", "name": "ギルドホール"}, -{"usage": "city", "name": "ギルフォード"}, -{"usage": "city", "name": "ギルフォード"}, -{"usage": "city", "name": "ギルマントン"}, -{"usage": "city", "name": "ギレアド"}, -{"usage": "city", "name": "クーパー"}, -{"usage": "city", "name": "クインシー"}, -{"usage": "city", "name": "クラークスバーグ"}, -{"usage": "city", "name": "クラークスビル"}, -{"usage": "city", "name": "クラフトベリー"}, -{"usage": "city", "name": "クラレンドン"}, -{"usage": "city", "name": "クランストン"}, -{"usage": "city", "name": "クランベリーアイルズ"}, -{"usage": "city", "name": "クリスタル"}, -{"usage": "city", "name": "クリフトン"}, -{"usage": "city", "name": "クリントン"}, -{"usage": "city", "name": "クレアモント"}, -{"usage": "city", "name": "クロイドン"}, -{"usage": "city", "name": "クロウフォード"}, -{"usage": "city", "name": "クロムウェル"}, -{"usage": "city", "name": "グールドボロ"}, -{"usage": "city", "name": "グラステンベリー"}, -{"usage": "city", "name": "グラストンベリー"}, -{"usage": "city", "name": "グラバー"}, -{"usage": "city", "name": "グラフトン"}, -{"usage": "city", "name": "グランサム"}, -{"usage": "city", "name": "グランドアイル"}, -{"usage": "city", "name": "グランドレイクストリーム"}, -{"usage": "city", "name": "グランビー"}, -{"usage": "city", "name": "グランビル"}, -{"usage": "city", "name": "グリーン"}, -{"usage": "city", "name": "グリーンウッド"}, -{"usage": "city", "name": "グリーンズバラ"}, -{"usage": "city", "name": "グリーンビル"}, -{"usage": "city", "name": "グリーンフィールド"}, -{"usage": "city", "name": "グリーンブッシュ"}, -{"usage": "city", "name": "グリーンランド"}, -{"usage": "city", "name": "グリスウォルド"}, -{"usage": "city", "name": "グリニッジ"}, -{"usage": "city", "name": "グレートバーリントン"}, -{"usage": "city", "name": "グレートポンド"}, -{"usage": "city", "name": "グレイ"}, -{"usage": "city", "name": "グレンウッドプランテーション"}, -{"usage": "city", "name": "グレンバーン"}, -{"usage": "city", "name": "グローブランド"}, -{"usage": "city", "name": "グロウスター"}, -{"usage": "city", "name": "グロスター"}, -{"usage": "city", "name": "グロトン"}, -{"usage": "city", "name": "ケーリープランテーション"}, -{"usage": "city", "name": "ケンジントン"}, -{"usage": "city", "name": "ケンダスキング"}, -{"usage": "city", "name": "ケント"}, -{"usage": "city", "name": "ケンネバンク"}, -{"usage": "city", "name": "ケンネバンクポート"}, -{"usage": "city", "name": "ケンブリッジ"}, -{"usage": "city", "name": "コッディビルプランテーション"}, -{"usage": "city", "name": "コーニッシュ"}, -{"usage": "city", "name": "コーハセット"}, -{"usage": "city", "name": "コールブルック"}, -{"usage": "city", "name": "コーンウォール"}, -{"usage": "city", "name": "コーンビル"}, -{"usage": "city", "name": "コナー"}, -{"usage": "city", "name": "コプリンプランテーション"}, -{"usage": "city", "name": "コベントリー"}, -{"usage": "city", "name": "コリナー"}, -{"usage": "city", "name": "コリントン"}, -{"usage": "city", "name": "コルチェスター"}, -{"usage": "city", "name": "コルライン"}, -{"usage": "city", "name": "コロンビア"}, -{"usage": "city", "name": "コロンビアフォールズ"}, -{"usage": "city", "name": "コンウェイ"}, -{"usage": "city", "name": "コンコード"}, -{"usage": "city", "name": "ゴーシェン"}, -{"usage": "city", "name": "ゴーラム"}, -{"usage": "city", "name": "ゴスノールド"}, -{"usage": "city", "name": "ゴフスタウン"}, -{"usage": "city", "name": "サットン"}, -{"usage": "city", "name": "サーリー"}, -{"usage": "city", "name": "サウサンプトン"}, -{"usage": "city", "name": "サウスウィンザー"}, -{"usage": "city", "name": "サウスウイック"}, -{"usage": "city", "name": "サウスウエストハーバー"}, -{"usage": "city", "name": "サウスキングスタウン"}, -{"usage": "city", "name": "サウストーマストン"}, -{"usage": "city", "name": "サウスハドリー"}, -{"usage": "city", "name": "サウスハンプトン"}, -{"usage": "city", "name": "サウスバーリントン"}, -{"usage": "city", "name": "サウスヒーロー"}, -{"usage": "city", "name": "サウスブリッジ"}, -{"usage": "city", "name": "サウスブリストル"}, -{"usage": "city", "name": "サウスベリック"}, -{"usage": "city", "name": "サウスベリー"}, -{"usage": "city", "name": "サウスボロー"}, -{"usage": "city", "name": "サウスポート"}, -{"usage": "city", "name": "サウスポートランド"}, -{"usage": "city", "name": "サヴァア"}, -{"usage": "city", "name": "サジントン"}, -{"usage": "city", "name": "サドベリー"}, -{"usage": "city", "name": "サバッタス"}, -{"usage": "city", "name": "サフィールド"}, -{"usage": "city", "name": "サマーズ"}, -{"usage": "city", "name": "サマーズワース"}, -{"usage": "city", "name": "サマービル"}, -{"usage": "city", "name": "サマセット"}, -{"usage": "city", "name": "サムナー"}, -{"usage": "city", "name": "サリー"}, -{"usage": "city", "name": "サリバン"}, -{"usage": "city", "name": "サンガービル"}, -{"usage": "city", "name": "サンダーランド"}, -{"usage": "city", "name": "サンダウン"}, -{"usage": "city", "name": "サンディスフィールド"}, -{"usage": "city", "name": "サンディリバープランテーション"}, -{"usage": "city", "name": "サンドイッチ"}, -{"usage": "city", "name": "サンドゲート"}, -{"usage": "city", "name": "サンフォード"}, -{"usage": "city", "name": "サンボーントン"}, -{"usage": "city", "name": "ザ・フォークス"}, -{"usage": "city", "name": "シェフィールド"}, -{"usage": "city", "name": "シェルトン"}, -{"usage": "city", "name": "シェルドン"}, -{"usage": "city", "name": "シェルバーン"}, -{"usage": "city", "name": "シャップレイ"}, -{"usage": "city", "name": "シャーバーン"}, -{"usage": "city", "name": "シャーマン"}, -{"usage": "city", "name": "シャーリー"}, -{"usage": "city", "name": "シャーロット"}, -{"usage": "city", "name": "シャフトスベリー"}, -{"usage": "city", "name": "シャロン"}, -{"usage": "city", "name": "シューツベリー"}, -{"usage": "city", "name": "シュガーヒル"}, -{"usage": "city", "name": "シュルーズベリー"}, -{"usage": "city", "name": "ショーハム"}, -{"usage": "city", "name": "ショーンズバラ"}, -{"usage": "city", "name": "ショーンズポート"}, -{"usage": "city", "name": "シーコンク"}, -{"usage": "city", "name": "シーブルック"}, -{"usage": "city", "name": "シーモア"}, -{"usage": "city", "name": "シールプランテーション"}, -{"usage": "city", "name": "シアスバーグ"}, -{"usage": "city", "name": "シアスポート"}, -{"usage": "city", "name": "シアスモント"}, -{"usage": "city", "name": "シチュエート"}, -{"usage": "city", "name": "シドニー"}, -{"usage": "city", "name": "シビグアイランド"}, -{"usage": "city", "name": "シムズベリー"}, -{"usage": "city", "name": "ジェイ"}, -{"usage": "city", "name": "ジェイムズタウン"}, -{"usage": "city", "name": "ジェファーソン"}, -{"usage": "city", "name": "ジャックマン"}, -{"usage": "city", "name": "ジャクソン"}, -{"usage": "city", "name": "ジャフリー"}, -{"usage": "city", "name": "ジャマイカ"}, -{"usage": "city", "name": "ジョージア"}, -{"usage": "city", "name": "ジョージタウン"}, -{"usage": "city", "name": "ジョンストン"}, -{"usage": "city", "name": "ジョンソン"}, -{"usage": "city", "name": "スウェーデン"}, -{"usage": "city", "name": "スウォンジ"}, -{"usage": "city", "name": "スカボロー"}, -{"usage": "city", "name": "スコットランド"}, -{"usage": "city", "name": "スコーヒガン"}, -{"usage": "city", "name": "スタッダード"}, -{"usage": "city", "name": "スタッフォード"}, -{"usage": "city", "name": "スターク"}, -{"usage": "city", "name": "スタークス"}, -{"usage": "city", "name": "スタークスボロー"}, -{"usage": "city", "name": "スターブリッジ"}, -{"usage": "city", "name": "スターリング"}, -{"usage": "city", "name": "スタナード"}, -{"usage": "city", "name": "スタンディッシュ"}, -{"usage": "city", "name": "スタンフォード"}, -{"usage": "city", "name": "スチューベン"}, -{"usage": "city", "name": "スチュワーツタウン"}, -{"usage": "city", "name": "ステットソン"}, -{"usage": "city", "name": "ステイシービル"}, -{"usage": "city", "name": "ストックトンスプリングス"}, -{"usage": "city", "name": "ストックブリッジ"}, -{"usage": "city", "name": "ストックホルム"}, -{"usage": "city", "name": "ストー"}, -{"usage": "city", "name": "ストートン"}, -{"usage": "city", "name": "ストーナム"}, -{"usage": "city", "name": "ストウ"}, -{"usage": "city", "name": "ストニントン"}, -{"usage": "city", "name": "ストラットン"}, -{"usage": "city", "name": "ストラッフォード"}, -{"usage": "city", "name": "ストラサム"}, -{"usage": "city", "name": "ストラトフォード"}, -{"usage": "city", "name": "ストロング"}, -{"usage": "city", "name": "スナピー"}, -{"usage": "city", "name": "スピローグ"}, -{"usage": "city", "name": "スプリングフィールド"}, -{"usage": "city", "name": "スペンサー"}, -{"usage": "city", "name": "スミュルナ"}, -{"usage": "city", "name": "スミスフィールド"}, -{"usage": "city", "name": "スワンジー"}, -{"usage": "city", "name": "スワンズアイランド"}, -{"usage": "city", "name": "スワントン"}, -{"usage": "city", "name": "スワンビル"}, -{"usage": "city", "name": "スワンプスコット"}, -{"usage": "city", "name": "セットフォード"}, -{"usage": "city", "name": "セーラム"}, -{"usage": "city", "name": "セイントジョンプランテーション"}, -{"usage": "city", "name": "セジウィック"}, -{"usage": "city", "name": "セバゴ"}, -{"usage": "city", "name": "セベック"}, -{"usage": "city", "name": "セボイズプランテーション"}, -{"usage": "city", "name": "センターハーバー"}, -{"usage": "city", "name": "センタービル"}, -{"usage": "city", "name": "セントアガサ"}, -{"usage": "city", "name": "セントアルバンス"}, -{"usage": "city", "name": "セントジョージ"}, -{"usage": "city", "name": "セントジョンズベリー"}, -{"usage": "city", "name": "セントフランシス"}, -{"usage": "city", "name": "セントラルフォールス"}, -{"usage": "city", "name": "ソーガス"}, -{"usage": "city", "name": "ソーコ"}, -{"usage": "city", "name": "ソールズベリー"}, -{"usage": "city", "name": "ソーンダイク"}, -{"usage": "city", "name": "ソーントン"}, -{"usage": "city", "name": "ソレント"}, -{"usage": "city", "name": "ソロン"}, -{"usage": "city", "name": "ターナー"}, -{"usage": "city", "name": "ターランド"}, -{"usage": "city", "name": "タウンゼント"}, -{"usage": "city", "name": "タウンゼンド"}, -{"usage": "city", "name": "タウントン"}, -{"usage": "city", "name": "タフトンボロー"}, -{"usage": "city", "name": "タムワース"}, -{"usage": "city", "name": "タルマッジ"}, -{"usage": "city", "name": "タンブリッジ"}, -{"usage": "city", "name": "ダッドリー"}, -{"usage": "city", "name": "ダートマス"}, -{"usage": "city", "name": "ダービー"}, -{"usage": "city", "name": "ダイアーブルック"}, -{"usage": "city", "name": "ダイトン"}, -{"usage": "city", "name": "ダクスバリ"}, -{"usage": "city", "name": "ダグラス"}, -{"usage": "city", "name": "ダブリン"}, -{"usage": "city", "name": "ダマー"}, -{"usage": "city", "name": "ダマーストン"}, -{"usage": "city", "name": "ダマリスコッタ"}, -{"usage": "city", "name": "ダラスプランテーション"}, -{"usage": "city", "name": "ダラム"}, -{"usage": "city", "name": "ダルトン"}, -{"usage": "city", "name": "ダンスタブル"}, -{"usage": "city", "name": "ダンバース"}, -{"usage": "city", "name": "ダンバートン"}, -{"usage": "city", "name": "ダンビー"}, -{"usage": "city", "name": "ダンビル"}, -{"usage": "city", "name": "ダンフォース"}, -{"usage": "city", "name": "ダンベリー"}, -{"usage": "city", "name": "チェシャー"}, -{"usage": "city", "name": "チェスター"}, -{"usage": "city", "name": "チェスタービル"}, -{"usage": "city", "name": "チェスターフィールド"}, -{"usage": "city", "name": "チェリーフィールド"}, -{"usage": "city", "name": "チェルシー"}, -{"usage": "city", "name": "チェルムズフォード"}, -{"usage": "city", "name": "チャップマン"}, -{"usage": "city", "name": "チャップリン"}, -{"usage": "city", "name": "チャールスタウン"}, -{"usage": "city", "name": "チャールストン"}, -{"usage": "city", "name": "チャールトン"}, -{"usage": "city", "name": "チャーレモント"}, -{"usage": "city", "name": "チャイナ"}, -{"usage": "city", "name": "チャタム"}, -{"usage": "city", "name": "チッテンデン"}, -{"usage": "city", "name": "チコピー"}, -{"usage": "city", "name": "チチェスター"}, -{"usage": "city", "name": "チルマーク"}, -{"usage": "city", "name": "ティスベリー"}, -{"usage": "city", "name": "ティリングハム"}, -{"usage": "city", "name": "ティルトン"}, -{"usage": "city", "name": "ティングスボロー"}, -{"usage": "city", "name": "ティンマウス"}, -{"usage": "city", "name": "テュークスベリー"}, -{"usage": "city", "name": "テンプル"}, -{"usage": "city", "name": "テンプルトン"}, -{"usage": "city", "name": "ディックスフィールド"}, -{"usage": "city", "name": "ディックスモント"}, -{"usage": "city", "name": "ディープリバー"}, -{"usage": "city", "name": "ディーリング"}, -{"usage": "city", "name": "ディアアイル"}, -{"usage": "city", "name": "ディアフィールド"}, -{"usage": "city", "name": "デッダム"}, -{"usage": "city", "name": "デイトン"}, -{"usage": "city", "name": "デクスター"}, -{"usage": "city", "name": "デトロイト"}, -{"usage": "city", "name": "デニーズビル"}, -{"usage": "city", "name": "デニス"}, -{"usage": "city", "name": "デニスタウン"}, -{"usage": "city", "name": "デブルー"}, -{"usage": "city", "name": "デリー"}, -{"usage": "city", "name": "デリエン"}, -{"usage": "city", "name": "デンマーク"}, -{"usage": "city", "name": "トゥルーロ"}, -{"usage": "city", "name": "トップスハム"}, -{"usage": "city", "name": "トップスフィールド"}, -{"usage": "city", "name": "トーマストン"}, -{"usage": "city", "name": "トランバル"}, -{"usage": "city", "name": "トリントン"}, -{"usage": "city", "name": "トレスコット"}, -{"usage": "city", "name": "トレモント"}, -{"usage": "city", "name": "トレントン"}, -{"usage": "city", "name": "トロイ"}, -{"usage": "city", "name": "トンプソン"}, -{"usage": "city", "name": "ドーセット"}, -{"usage": "city", "name": "ドーチェスター"}, -{"usage": "city", "name": "ドーバー"}, -{"usage": "city", "name": "ドーバーフォックスクロフト"}, -{"usage": "city", "name": "ドラカット"}, -{"usage": "city", "name": "ドリュープランテーション"}, -{"usage": "city", "name": "ドレスデン"}, -{"usage": "city", "name": "ナッシュビルプランテーション"}, -{"usage": "city", "name": "ナシュア"}, -{"usage": "city", "name": "ナティック"}, -{"usage": "city", "name": "ナハント"}, -{"usage": "city", "name": "ナポリ"}, -{"usage": "city", "name": "ナラガンセット"}, -{"usage": "city", "name": "ナンタケット"}, -{"usage": "city", "name": "ニューアッシュフォード"}, -{"usage": "city", "name": "ニューアーク"}, -{"usage": "city", "name": "ニューイプスウィッチ"}, -{"usage": "city", "name": "ニューイングトン"}, -{"usage": "city", "name": "ニューカッスル"}, -{"usage": "city", "name": "ニューカナダ"}, -{"usage": "city", "name": "ニューカナン"}, -{"usage": "city", "name": "ニューキャッスル"}, -{"usage": "city", "name": "ニューグロスター"}, -{"usage": "city", "name": "ニューシャロン"}, -{"usage": "city", "name": "ニューショーハム"}, -{"usage": "city", "name": "ニュースウェーデン"}, -{"usage": "city", "name": "ニューセーラム"}, -{"usage": "city", "name": "ニュータウン"}, -{"usage": "city", "name": "ニューダラム"}, -{"usage": "city", "name": "ニュートン"}, -{"usage": "city", "name": "ニューハートフォード"}, -{"usage": "city", "name": "ニューハンプトン"}, -{"usage": "city", "name": "ニューバインヤード"}, -{"usage": "city", "name": "ニューバラー"}, -{"usage": "city", "name": "ニューフィールズ"}, -{"usage": "city", "name": "ニューフィールド"}, -{"usage": "city", "name": "ニューフェアフィールド"}, -{"usage": "city", "name": "ニューフェイン"}, -{"usage": "city", "name": "ニューブリテン"}, -{"usage": "city", "name": "ニューブレインツリー"}, -{"usage": "city", "name": "ニューヘブン"}, -{"usage": "city", "name": "ニューベッドフォード"}, -{"usage": "city", "name": "ニューベリー"}, -{"usage": "city", "name": "ニューベリーポート"}, -{"usage": "city", "name": "ニューボストン"}, -{"usage": "city", "name": "ニューポート"}, -{"usage": "city", "name": "ニューポートランド"}, -{"usage": "city", "name": "ニューマーケット"}, -{"usage": "city", "name": "ニューマールボロー"}, -{"usage": "city", "name": "ニューミルフォード"}, -{"usage": "city", "name": "ニューリメリック"}, -{"usage": "city", "name": "ニューロンドン"}, -{"usage": "city", "name": "ニュアリー"}, -{"usage": "city", "name": "ニーダム"}, -{"usage": "city", "name": "ネルソン"}, -{"usage": "city", "name": "ノックス"}, -{"usage": "city", "name": "ノッティンガム"}, -{"usage": "city", "name": "ノーウェイ"}, -{"usage": "city", "name": "ノーウェル"}, -{"usage": "city", "name": "ノーウォーク"}, -{"usage": "city", "name": "ノーウッド"}, -{"usage": "city", "name": "ノーガタック"}, -{"usage": "city", "name": "ノーサンバーランド"}, -{"usage": "city", "name": "ノーサンプトン"}, -{"usage": "city", "name": "ノースアダムス"}, -{"usage": "city", "name": "ノースアチルボロ"}, -{"usage": "city", "name": "ノースアンドーバー"}, -{"usage": "city", "name": "ノースウッド"}, -{"usage": "city", "name": "ノースカナン"}, -{"usage": "city", "name": "ノースキングスタウン"}, -{"usage": "city", "name": "ノースストニントン"}, -{"usage": "city", "name": "ノーススミスフィールド"}, -{"usage": "city", "name": "ノースハンプトン"}, -{"usage": "city", "name": "ノースヒーロー"}, -{"usage": "city", "name": "ノースフィールド"}, -{"usage": "city", "name": "ノースブランフォード"}, -{"usage": "city", "name": "ノースブリッジ"}, -{"usage": "city", "name": "ノースブルックフィールド"}, -{"usage": "city", "name": "ノースプロビデンス"}, -{"usage": "city", "name": "ノースヘブン"}, -{"usage": "city", "name": "ノースベリック"}, -{"usage": "city", "name": "ノースボロー"}, -{"usage": "city", "name": "ノースポート"}, -{"usage": "city", "name": "ノースヤーマス"}, -{"usage": "city", "name": "ノースリーディング"}, -{"usage": "city", "name": "ノートン"}, -{"usage": "city", "name": "ノーフォーク"}, -{"usage": "city", "name": "ノーブルボロー"}, -{"usage": "city", "name": "ノリッジ"}, -{"usage": "city", "name": "ノリッジウォック"}, -{"usage": "city", "name": "ハッダム"}, -{"usage": "city", "name": "ハッバートン"}, -{"usage": "city", "name": "ハッバードソン"}, -{"usage": "city", "name": "ハーウィッチ"}, -{"usage": "city", "name": "ハーウィントン"}, -{"usage": "city", "name": "ハーシー"}, -{"usage": "city", "name": "ハートフォード"}, -{"usage": "city", "name": "ハートランド"}, -{"usage": "city", "name": "ハートロケーション"}, -{"usage": "city", "name": "ハードウィック"}, -{"usage": "city", "name": "ハーバード"}, -{"usage": "city", "name": "ハープスウェル"}, -{"usage": "city", "name": "ハーモニー"}, -{"usage": "city", "name": "ハーモン"}, -{"usage": "city", "name": "ハイゲート"}, -{"usage": "city", "name": "ハイドパーク"}, -{"usage": "city", "name": "ハイラム"}, -{"usage": "city", "name": "ハイランドプランテーション"}, -{"usage": "city", "name": "ハインズバーグ"}, -{"usage": "city", "name": "ハウランド"}, -{"usage": "city", "name": "ハヴァーヒル"}, -{"usage": "city", "name": "ハジドン"}, -{"usage": "city", "name": "ハトフィールド"}, -{"usage": "city", "name": "ハドソン"}, -{"usage": "city", "name": "ハドリー"}, -{"usage": "city", "name": "ハノーバー"}, -{"usage": "city", "name": "ハミルトン"}, -{"usage": "city", "name": "ハムステッド"}, -{"usage": "city", "name": "ハムデン"}, -{"usage": "city", "name": "ハムリン"}, -{"usage": "city", "name": "ハモンド"}, -{"usage": "city", "name": "ハリケーンアイル"}, -{"usage": "city", "name": "ハリスビル"}, -{"usage": "city", "name": "ハリソン"}, -{"usage": "city", "name": "ハリファックス"}, -{"usage": "city", "name": "ハリントン"}, -{"usage": "city", "name": "ハル"}, -{"usage": "city", "name": "ハロウェル"}, -{"usage": "city", "name": "ハンコック"}, -{"usage": "city", "name": "ハンソン"}, -{"usage": "city", "name": "ハンチントン"}, -{"usage": "city", "name": "ハンプデン"}, -{"usage": "city", "name": "ハンプトン"}, -{"usage": "city", "name": "ハンプトンフォールス"}, -{"usage": "city", "name": "バックスポート"}, -{"usage": "city", "name": "バックフィールド"}, -{"usage": "city", "name": "バックランド"}, -{"usage": "city", "name": "バーク"}, -{"usage": "city", "name": "バークシャー"}, -{"usage": "city", "name": "バークハムステッド"}, -{"usage": "city", "name": "バークリー"}, -{"usage": "city", "name": "バース"}, -{"usage": "city", "name": "バートレット"}, -{"usage": "city", "name": "バートン"}, -{"usage": "city", "name": "バーナード"}, -{"usage": "city", "name": "バーナードストン"}, -{"usage": "city", "name": "バーナム"}, -{"usage": "city", "name": "バーネット"}, -{"usage": "city", "name": "バーハーバー"}, -{"usage": "city", "name": "バーリントン"}, -{"usage": "city", "name": "バーリントン"}, -{"usage": "city", "name": "バーンステッド"}, -{"usage": "city", "name": "バーンステーブル"}, -{"usage": "city", "name": "バイレイビル"}, -{"usage": "city", "name": "バイロン"}, -{"usage": "city", "name": "バウアーバンク"}, -{"usage": "city", "name": "バクストン"}, -{"usage": "city", "name": "バリルビル"}, -{"usage": "city", "name": "バレー"}, -{"usage": "city", "name": "バンクロフト"}, -{"usage": "city", "name": "バンゴール"}, -{"usage": "city", "name": "パッサダムキング"}, -{"usage": "city", "name": "パッテン"}, -{"usage": "city", "name": "パーキンズ"}, -{"usage": "city", "name": "パークマン"}, -{"usage": "city", "name": "パーソンズフィールド"}, -{"usage": "city", "name": "パーハム"}, -{"usage": "city", "name": "パーマー"}, -{"usage": "city", "name": "パウルトニー"}, -{"usage": "city", "name": "パクストン"}, -{"usage": "city", "name": "パトナム"}, -{"usage": "city", "name": "パトニー"}, -{"usage": "city", "name": "パリ"}, -{"usage": "city", "name": "パルミラ"}, -{"usage": "city", "name": "パレルモ"}, -{"usage": "city", "name": "パントン"}, -{"usage": "city", "name": "ヒース"}, -{"usage": "city", "name": "ヒル"}, -{"usage": "city", "name": "ヒルズボロウ"}, -{"usage": "city", "name": "ヒンガム"}, -{"usage": "city", "name": "ヒンズデール"}, -{"usage": "city", "name": "ビッデフォード"}, -{"usage": "city", "name": "ビーコンフォールズ"}, -{"usage": "city", "name": "ビーバーコーブ"}, -{"usage": "city", "name": "ビールズ"}, -{"usage": "city", "name": "ビクトリー"}, -{"usage": "city", "name": "ビバリー"}, -{"usage": "city", "name": "ビルリーカ"}, -{"usage": "city", "name": "ビンガム"}, -{"usage": "city", "name": "ピッツトン"}, -{"usage": "city", "name": "ピッツバーグ"}, -{"usage": "city", "name": "ピッツフィールド"}, -{"usage": "city", "name": "ピッツフォード"}, -{"usage": "city", "name": "ピーターシャム"}, -{"usage": "city", "name": "ピーターボロ"}, -{"usage": "city", "name": "ピーチァム"}, -{"usage": "city", "name": "ピーボディ"}, -{"usage": "city", "name": "ピアモント"}, -{"usage": "city", "name": "ファーミングデール"}, -{"usage": "city", "name": "ファーミントン"}, -{"usage": "city", "name": "ファイエット"}, -{"usage": "city", "name": "ファルマス"}, -{"usage": "city", "name": "フィッチバーグ"}, -{"usage": "city", "name": "フィッツウィリアム"}, -{"usage": "city", "name": "フィップスバーグ"}, -{"usage": "city", "name": "フィリップス"}, -{"usage": "city", "name": "フィリップストン"}, -{"usage": "city", "name": "フェアファクス"}, -{"usage": "city", "name": "フェアフィールド"}, -{"usage": "city", "name": "フェアヘヴン"}, -{"usage": "city", "name": "フェアヘブン"}, -{"usage": "city", "name": "フェアリー"}, -{"usage": "city", "name": "フェイストン"}, -{"usage": "city", "name": "フェリスバーグ"}, -{"usage": "city", "name": "フォックスボロ"}, -{"usage": "city", "name": "フォートケント"}, -{"usage": "city", "name": "フォートフェアフィールド"}, -{"usage": "city", "name": "フォーマータウン"}, -{"usage": "city", "name": "フォールリバー"}, -{"usage": "city", "name": "フォスター"}, -{"usage": "city", "name": "フォレストシティ"}, -{"usage": "city", "name": "フライアイランド"}, -{"usage": "city", "name": "フライブルグ"}, -{"usage": "city", "name": "フラミンガム"}, -{"usage": "city", "name": "フランクフォート"}, -{"usage": "city", "name": "フランクリン"}, -{"usage": "city", "name": "フランケン"}, -{"usage": "city", "name": "フランストーン"}, -{"usage": "city", "name": "フリータウン"}, -{"usage": "city", "name": "フリーダム"}, -{"usage": "city", "name": "フリーポート"}, -{"usage": "city", "name": "フリーマン"}, -{"usage": "city", "name": "フリーモント"}, -{"usage": "city", "name": "フレッチャー"}, -{"usage": "city", "name": "フレンチビル"}, -{"usage": "city", "name": "フレンドシップ"}, -{"usage": "city", "name": "フロリダ"}, -{"usage": "city", "name": "ブースベイ"}, -{"usage": "city", "name": "ブースベイハーバー"}, -{"usage": "city", "name": "ブラックストーン"}, -{"usage": "city", "name": "ブラットレボーロー"}, -{"usage": "city", "name": "ブラッドフォード"}, -{"usage": "city", "name": "ブラッドリー"}, -{"usage": "city", "name": "ブライトン"}, -{"usage": "city", "name": "ブライトンプランテーション"}, -{"usage": "city", "name": "ブラウニングトン"}, -{"usage": "city", "name": "ブラウンビル"}, -{"usage": "city", "name": "ブラウンフィールド"}, -{"usage": "city", "name": "ブランシャール"}, -{"usage": "city", "name": "ブランズウィック"}, -{"usage": "city", "name": "ブランドフォード"}, -{"usage": "city", "name": "ブランドン"}, -{"usage": "city", "name": "ブランフォード"}, -{"usage": "city", "name": "ブリッジウォーター"}, -{"usage": "city", "name": "ブリッジポート"}, -{"usage": "city", "name": "ブリッドグトン"}, -{"usage": "city", "name": "ブリッドポート"}, -{"usage": "city", "name": "ブリストル"}, -{"usage": "city", "name": "ブリムフィールド"}, -{"usage": "city", "name": "ブルックス"}, -{"usage": "city", "name": "ブルックスビル"}, -{"usage": "city", "name": "ブルックトン"}, -{"usage": "city", "name": "ブルックフィールド"}, -{"usage": "city", "name": "ブルックライン"}, -{"usage": "city", "name": "ブルックリン"}, -{"usage": "city", "name": "ブルックリン"}, -{"usage": "city", "name": "ブルーアー"}, -{"usage": "city", "name": "ブルースター"}, -{"usage": "city", "name": "ブルーヒル"}, -{"usage": "city", "name": "ブルームフィールド"}, -{"usage": "city", "name": "ブレーメン"}, -{"usage": "city", "name": "ブレーン"}, -{"usage": "city", "name": "ブレインツリー"}, -{"usage": "city", "name": "ブレンチボロ"}, -{"usage": "city", "name": "ブレントウッド"}, -{"usage": "city", "name": "ブロックトン"}, -{"usage": "city", "name": "プライストー"}, -{"usage": "city", "name": "プリマス"}, -{"usage": "city", "name": "プリンストン"}, -{"usage": "city", "name": "プリンプトン"}, -{"usage": "city", "name": "プレーンビル"}, -{"usage": "city", "name": "プレーンフィールド"}, -{"usage": "city", "name": "プレザントリッジプランテーション"}, -{"usage": "city", "name": "プレスクアイル"}, -{"usage": "city", "name": "プレスコット"}, -{"usage": "city", "name": "プレストン"}, -{"usage": "city", "name": "プレンティス"}, -{"usage": "city", "name": "プロクター"}, -{"usage": "city", "name": "プロスペクト"}, -{"usage": "city", "name": "プロビデンス"}, -{"usage": "city", "name": "プロビンスタウン"}, -{"usage": "city", "name": "ヘインズビル"}, -{"usage": "city", "name": "ヘニッカー"}, -{"usage": "city", "name": "ヘブロン"}, -{"usage": "city", "name": "ベッディントン"}, -{"usage": "city", "name": "ベッドフォード"}, -{"usage": "city", "name": "ベーカースフィールド"}, -{"usage": "city", "name": "ベアリングプランテーション"}, -{"usage": "city", "name": "ベオグラード"}, -{"usage": "city", "name": "ベケット"}, -{"usage": "city", "name": "ベサニー"}, -{"usage": "city", "name": "ベセル"}, -{"usage": "city", "name": "ベツレヘム"}, -{"usage": "city", "name": "ベニントン"}, -{"usage": "city", "name": "ベネディクター"}, -{"usage": "city", "name": "ベリック"}, -{"usage": "city", "name": "ベリンガム"}, -{"usage": "city", "name": "ベルチャータウン"}, -{"usage": "city", "name": "ベルビデーレ"}, -{"usage": "city", "name": "ベルファスト"}, -{"usage": "city", "name": "ベルモント"}, -{"usage": "city", "name": "ベルリン"}, -{"usage": "city", "name": "ベンソン"}, -{"usage": "city", "name": "ベントン"}, -{"usage": "city", "name": "ペッパーレル"}, -{"usage": "city", "name": "ペノブスコット"}, -{"usage": "city", "name": "ペラム"}, -{"usage": "city", "name": "ペリー"}, -{"usage": "city", "name": "ペルー"}, -{"usage": "city", "name": "ペンブルック"}, -{"usage": "city", "name": "ホックセット"}, -{"usage": "city", "name": "ホープ"}, -{"usage": "city", "name": "ホープデール"}, -{"usage": "city", "name": "ホーリー"}, -{"usage": "city", "name": "ホールデン"}, -{"usage": "city", "name": "ホールヨーク"}, -{"usage": "city", "name": "ホイットマン"}, -{"usage": "city", "name": "ホウィットニービル"}, -{"usage": "city", "name": "ホウルトン"}, -{"usage": "city", "name": "ホプキントン"}, -{"usage": "city", "name": "ホリス"}, -{"usage": "city", "name": "ホリストン"}, -{"usage": "city", "name": "ホルダーネス"}, -{"usage": "city", "name": "ホルブルック"}, -{"usage": "city", "name": "ホワイティング"}, -{"usage": "city", "name": "ホワイティングハム"}, -{"usage": "city", "name": "ホワイトフィールド"}, -{"usage": "city", "name": "ボックスフォード"}, -{"usage": "city", "name": "ボックスボーラフ"}, -{"usage": "city", "name": "ボードイン"}, -{"usage": "city", "name": "ボードインハム"}, -{"usage": "city", "name": "ボールドウィン"}, -{"usage": "city", "name": "ボーン"}, -{"usage": "city", "name": "ボイルストン"}, -{"usage": "city", "name": "ボウ"}, -{"usage": "city", "name": "ボスコーエン"}, -{"usage": "city", "name": "ボストン"}, -{"usage": "city", "name": "ボズラ"}, -{"usage": "city", "name": "ボランタウン"}, -{"usage": "city", "name": "ボルチモア"}, -{"usage": "city", "name": "ボルトン"}, -{"usage": "city", "name": "ポーター"}, -{"usage": "city", "name": "ポータケット"}, -{"usage": "city", "name": "ポーツマス"}, -{"usage": "city", "name": "ポーテージレイク"}, -{"usage": "city", "name": "ポートランド"}, -{"usage": "city", "name": "ポーランド"}, -{"usage": "city", "name": "ポーレット"}, -{"usage": "city", "name": "ポムフレット"}, -{"usage": "city", "name": "マックスフィールド"}, -{"usage": "city", "name": "マッシュピー"}, -{"usage": "city", "name": "マッタポイセット"}, -{"usage": "city", "name": "マッタミスコンティス"}, -{"usage": "city", "name": "マッタワムキング"}, -{"usage": "city", "name": "マッドバリー"}, -{"usage": "city", "name": "マーサ"}, -{"usage": "city", "name": "マーシュフィールド"}, -{"usage": "city", "name": "マーズヒル"}, -{"usage": "city", "name": "マーブルヘッド"}, -{"usage": "city", "name": "マールボロー"}, -{"usage": "city", "name": "マーロウ"}, -{"usage": "city", "name": "マウントヴァーノン"}, -{"usage": "city", "name": "マウントチェース"}, -{"usage": "city", "name": "マウントテーバー"}, -{"usage": "city", "name": "マウントデザート"}, -{"usage": "city", "name": "マウントホリー"}, -{"usage": "city", "name": "マウントワシントン"}, -{"usage": "city", "name": "マクワホックプランテーション"}, -{"usage": "city", "name": "マゴーロウェイプランテーション"}, -{"usage": "city", "name": "マサーディス"}, -{"usage": "city", "name": "マダワスカ"}, -{"usage": "city", "name": "マチアズ"}, -{"usage": "city", "name": "マチアズポート"}, -{"usage": "city", "name": "マティニッカスアイル"}, -{"usage": "city", "name": "マディソン"}, -{"usage": "city", "name": "マドリード"}, -{"usage": "city", "name": "マリアビル"}, -{"usage": "city", "name": "マリオン"}, -{"usage": "city", "name": "マルデン"}, -{"usage": "city", "name": "マルボロ"}, -{"usage": "city", "name": "マンスフィールド"}, -{"usage": "city", "name": "マンチェスター"}, -{"usage": "city", "name": "マンチェスター・バイ・ザ・シー"}, -{"usage": "city", "name": "ミドルセックス"}, -{"usage": "city", "name": "ミドルタウン"}, -{"usage": "city", "name": "ミドルタウン・スプリングス"}, -{"usage": "city", "name": "ミドルトン"}, -{"usage": "city", "name": "ミドルフィールド"}, -{"usage": "city", "name": "ミドルベリー"}, -{"usage": "city", "name": "ミドルボロー"}, -{"usage": "city", "name": "ミノ"}, -{"usage": "city", "name": "ミラノ"}, -{"usage": "city", "name": "ミリス"}, -{"usage": "city", "name": "ミリノケット"}, -{"usage": "city", "name": "ミリビル"}, -{"usage": "city", "name": "ミルトン"}, -{"usage": "city", "name": "ミルフォード"}, -{"usage": "city", "name": "ミルブリッジ"}, -{"usage": "city", "name": "ミルベリー"}, -{"usage": "city", "name": "ミロ"}, -{"usage": "city", "name": "ムースリバー"}, -{"usage": "city", "name": "メッディーベンプス"}, -{"usage": "city", "name": "メードストン"}, -{"usage": "city", "name": "メイソン"}, -{"usage": "city", "name": "メイナード"}, -{"usage": "city", "name": "メイプルトン"}, -{"usage": "city", "name": "メカニックフォールズ"}, -{"usage": "city", "name": "メキシコ"}, -{"usage": "city", "name": "メスエン"}, -{"usage": "city", "name": "メドウェイ"}, -{"usage": "city", "name": "メドフィールド"}, -{"usage": "city", "name": "メドフォード"}, -{"usage": "city", "name": "メリデン"}, -{"usage": "city", "name": "メリマック"}, -{"usage": "city", "name": "メリマク"}, -{"usage": "city", "name": "メリル"}, -{"usage": "city", "name": "メルローズ"}, -{"usage": "city", "name": "メレディス"}, -{"usage": "city", "name": "メンドン"}, -{"usage": "city", "name": "モーガン"}, -{"usage": "city", "name": "モールトンボロー"}, -{"usage": "city", "name": "モアタウン"}, -{"usage": "city", "name": "モスクワ"}, -{"usage": "city", "name": "モリス"}, -{"usage": "city", "name": "モリスタウン"}, -{"usage": "city", "name": "モリル"}, -{"usage": "city", "name": "モロープランテーション"}, -{"usage": "city", "name": "モンクトン"}, -{"usage": "city", "name": "モンゴメリー"}, -{"usage": "city", "name": "モンソン"}, -{"usage": "city", "name": "モンタギュー"}, -{"usage": "city", "name": "モンティチェロ"}, -{"usage": "city", "name": "モンテレー"}, -{"usage": "city", "name": "モントヴァーノン"}, -{"usage": "city", "name": "モントビル"}, -{"usage": "city", "name": "モントピーリア"}, -{"usage": "city", "name": "モンヘガン"}, -{"usage": "city", "name": "モンマス"}, -{"usage": "city", "name": "モンロー"}, -{"usage": "city", "name": "ヤーマス"}, -{"usage": "city", "name": "ユースティス"}, -{"usage": "city", "name": "ユニオン"}, -{"usage": "city", "name": "ユニティ"}, -{"usage": "city", "name": "ヨーク"}, -{"usage": "city", "name": "ラッセル"}, -{"usage": "city", "name": "ラッドロー"}, -{"usage": "city", "name": "ライ"}, -{"usage": "city", "name": "ライゲート"}, -{"usage": "city", "name": "ライデン"}, -{"usage": "city", "name": "ライマン"}, -{"usage": "city", "name": "ライム"}, -{"usage": "city", "name": "ラウドン"}, -{"usage": "city", "name": "ラグランジュ"}, -{"usage": "city", "name": "ラコニア"}, -{"usage": "city", "name": "ラトランド"}, -{"usage": "city", "name": "ラムネー"}, -{"usage": "city", "name": "ラモイン"}, -{"usage": "city", "name": "ランカスター"}, -{"usage": "city", "name": "ラングドン"}, -{"usage": "city", "name": "ランダフ"}, -{"usage": "city", "name": "ランドグローブ"}, -{"usage": "city", "name": "ランドルフ"}, -{"usage": "city", "name": "ランフォード"}, -{"usage": "city", "name": "リューネンバーグ"}, -{"usage": "city", "name": "リッジフィールド"}, -{"usage": "city", "name": "リッチフィールド"}, -{"usage": "city", "name": "リッチフォード"}, -{"usage": "city", "name": "リッチモンド"}, -{"usage": "city", "name": "リー"}, -{"usage": "city", "name": "リーズ"}, -{"usage": "city", "name": "リーディング"}, -{"usage": "city", "name": "リードスボロー"}, -{"usage": "city", "name": "リードフィールド"}, -{"usage": "city", "name": "リードプランテーション"}, -{"usage": "city", "name": "リスボン"}, -{"usage": "city", "name": "リトルコンプトン"}, -{"usage": "city", "name": "リトルトン"}, -{"usage": "city", "name": "リネアズ"}, -{"usage": "city", "name": "リバーモア"}, -{"usage": "city", "name": "リバーモアフォールズ"}, -{"usage": "city", "name": "リバティー"}, -{"usage": "city", "name": "リビア"}, -{"usage": "city", "name": "リプトン"}, -{"usage": "city", "name": "リプリー"}, -{"usage": "city", "name": "リホボス"}, -{"usage": "city", "name": "リミングトン"}, -{"usage": "city", "name": "リメストーン"}, -{"usage": "city", "name": "リメリック"}, -{"usage": "city", "name": "リン"}, -{"usage": "city", "name": "リンカーン"}, -{"usage": "city", "name": "リンカーンビル"}, -{"usage": "city", "name": "リンカーンプランテーション"}, -{"usage": "city", "name": "リンジ"}, -{"usage": "city", "name": "リンデボロー"}, -{"usage": "city", "name": "リンドン"}, -{"usage": "city", "name": "リンフィールド"}, -{"usage": "city", "name": "ルーパート"}, -{"usage": "city", "name": "ルイストン"}, -{"usage": "city", "name": "ルベック"}, -{"usage": "city", "name": "レーンジリー"}, -{"usage": "city", "name": "レーンジリープランテーション"}, -{"usage": "city", "name": "レイクビュープランテーション"}, -{"usage": "city", "name": "レイクビル"}, -{"usage": "city", "name": "レイネスボロー"}, -{"usage": "city", "name": "レイモンド"}, -{"usage": "city", "name": "レインハム"}, -{"usage": "city", "name": "レキシントン"}, -{"usage": "city", "name": "レスター"}, -{"usage": "city", "name": "レドヤード"}, -{"usage": "city", "name": "レノックス"}, -{"usage": "city", "name": "レバノン"}, -{"usage": "city", "name": "レバレット"}, -{"usage": "city", "name": "レバント"}, -{"usage": "city", "name": "レミングトン"}, -{"usage": "city", "name": "レムスター"}, -{"usage": "city", "name": "レンサム"}, -{"usage": "city", "name": "レンプスター"}, -{"usage": "city", "name": "ロッキーヒル"}, -{"usage": "city", "name": "ロッキンガム"}, -{"usage": "city", "name": "ロックスベリー"}, -{"usage": "city", "name": "ロックポート"}, -{"usage": "city", "name": "ロックランド"}, -{"usage": "city", "name": "ロッケブラフス"}, -{"usage": "city", "name": "ロー"}, -{"usage": "city", "name": "ローウェル"}, -{"usage": "city", "name": "ローベル"}, -{"usage": "city", "name": "ローマ"}, -{"usage": "city", "name": "ローリー"}, -{"usage": "city", "name": "ローレンス"}, -{"usage": "city", "name": "ロイヤルストン"}, -{"usage": "city", "name": "ロイヤルトン"}, -{"usage": "city", "name": "ロチェスター"}, -{"usage": "city", "name": "ロビンストン"}, -{"usage": "city", "name": "ロリンズフォード"}, -{"usage": "city", "name": "ロングアイランド"}, -{"usage": "city", "name": "ロングメドウ"}, -{"usage": "city", "name": "ロンドンデリー"}, -{"usage": "city", "name": "ワーウィック"}, -{"usage": "city", "name": "ワージントン"}, -{"usage": "city", "name": "ワーズボロー"}, -{"usage": "city", "name": "ワーナー"}, -{"usage": "city", "name": "ワシントン"}, -{"usage": "city", "name": "ワラーグラス"}, -{"usage": "family", "gender": "unisex", "name": "アダムズ"}, -{"usage": "family", "gender": "unisex", "name": "アレクサンダー"}, -{"usage": "family", "gender": "unisex", "name": "アレン"}, -{"usage": "family", "gender": "unisex", "name": "アンダーソン"}, -{"usage": "family", "gender": "unisex", "name": "ウィリアムズ"}, -{"usage": "family", "gender": "unisex", "name": "ウィルソン"}, -{"usage": "family", "gender": "unisex", "name": "ウェスト"}, -{"usage": "family", "gender": "unisex", "name": "ウォーカー"}, -{"usage": "family", "gender": "unisex", "name": "ウッド"}, -{"usage": "family", "gender": "unisex", "name": "ヴァンワイルド"}, -{"usage": "family", "gender": "unisex", "name": "エドワーズ"}, -{"usage": "family", "gender": "unisex", "name": "エバンス"}, -{"usage": "family", "gender": "unisex", "name": "カーター"}, -{"usage": "family", "gender": "unisex", "name": "カイコ"}, -{"usage": "family", "gender": "unisex", "name": "ガルシア"}, -{"usage": "family", "gender": "unisex", "name": "キャンベル"}, -{"usage": "family", "gender": "unisex", "name": "キング"}, -{"usage": "family", "gender": "unisex", "name": "クック"}, -{"usage": "family", "gender": "unisex", "name": "クーパー"}, -{"usage": "family", "gender": "unisex", "name": "クラーク"}, -{"usage": "family", "gender": "unisex", "name": "グリーン"}, -{"usage": "family", "gender": "unisex", "name": "グリフィン"}, -{"usage": "family", "gender": "unisex", "name": "グレイ"}, -{"usage": "family", "gender": "unisex", "name": "ケリィ"}, -{"usage": "family", "gender": "unisex", "name": "コックス"}, -{"usage": "family", "gender": "unisex", "name": "コールマン"}, -{"usage": "family", "gender": "unisex", "name": "コリンズ"}, -{"usage": "family", "gender": "unisex", "name": "ゴンザレス"}, -{"usage": "family", "gender": "unisex", "name": "ゴンザレス"}, -{"usage": "family", "gender": "unisex", "name": "サンダース"}, -{"usage": "family", "gender": "unisex", "name": "サンチェス"}, -{"usage": "family", "gender": "unisex", "name": "シモンズ"}, -{"usage": "family", "gender": "unisex", "name": "ジェームス"}, -{"usage": "family", "gender": "unisex", "name": "ジェンキンス"}, -{"usage": "family", "gender": "unisex", "name": "ジャクソン"}, -{"usage": "family", "gender": "unisex", "name": "ジョーンズ"}, -{"usage": "family", "gender": "unisex", "name": "ジョンソン"}, -{"usage": "family", "gender": "unisex", "name": "スコツト"}, -{"usage": "family", "gender": "unisex", "name": "スチュワート"}, -{"usage": "family", "gender": "unisex", "name": "スミス"}, -{"usage": "family", "gender": "unisex", "name": "ターナー"}, -{"usage": "family", "gender": "unisex", "name": "テーラー"}, -{"usage": "family", "gender": "unisex", "name": "ディアス"}, -{"usage": "family", "gender": "unisex", "name": "デイビス"}, -{"usage": "family", "gender": "unisex", "name": "トーマス"}, -{"usage": "family", "gender": "unisex", "name": "トレス"}, -{"usage": "family", "gender": "unisex", "name": "トンプソン"}, -{"usage": "family", "gender": "unisex", "name": "ナキヤ"}, -{"usage": "family", "gender": "unisex", "name": "ネルソン"}, -{"usage": "family", "gender": "unisex", "name": "ハリス"}, -{"usage": "family", "gender": "unisex", "name": "ハワード"}, -{"usage": "family", "gender": "unisex", "name": "バーンズ"}, -{"usage": "family", "gender": "unisex", "name": "バイレイ"}, -{"usage": "family", "gender": "unisex", "name": "バトラー"}, -{"usage": "family", "gender": "unisex", "name": "パーカー"}, -{"usage": "family", "gender": "unisex", "name": "パウエル"}, -{"usage": "family", "gender": "unisex", "name": "パターソン"}, -{"usage": "family", "gender": "unisex", "name": "ヒューズ"}, -{"usage": "family", "gender": "unisex", "name": "ヒル"}, -{"usage": "family", "gender": "unisex", "name": "ピーターソン"}, -{"usage": "family", "gender": "unisex", "name": "フィリップス"}, -{"usage": "family", "gender": "unisex", "name": "フォスター"}, -{"usage": "family", "gender": "unisex", "name": "フローレス"}, -{"usage": "family", "gender": "unisex", "name": "ブライアント"}, -{"usage": "family", "gender": "unisex", "name": "ブラウン"}, -{"usage": "family", "gender": "unisex", "name": "ブルックス"}, -{"usage": "family", "gender": "unisex", "name": "プライス"}, -{"usage": "family", "gender": "unisex", "name": "ヘイズ"}, -{"usage": "family", "gender": "unisex", "name": "ヘルナンデス"}, -{"usage": "family", "gender": "unisex", "name": "ヘンダーソン"}, -{"usage": "family", "gender": "unisex", "name": "ベイカー"}, -{"usage": "family", "gender": "unisex", "name": "ベネット"}, -{"usage": "family", "gender": "unisex", "name": "ベル"}, -{"usage": "family", "gender": "unisex", "name": "ペリー"}, -{"usage": "family", "gender": "unisex", "name": "ペレス"}, -{"usage": "family", "gender": "unisex", "name": "ホール"}, -{"usage": "family", "gender": "unisex", "name": "ホワイト"}, -{"usage": "family", "gender": "unisex", "name": "マーティン"}, -{"usage": "family", "gender": "unisex", "name": "マーフィー"}, -{"usage": "family", "gender": "unisex", "name": "マルチネス"}, -{"usage": "family", "gender": "unisex", "name": "ミッチェル"}, -{"usage": "family", "gender": "unisex", "name": "ミラー"}, -{"usage": "family", "gender": "unisex", "name": "ムーア"}, -{"usage": "family", "gender": "unisex", "name": "モリス"}, -{"usage": "family", "gender": "unisex", "name": "モルガン"}, -{"usage": "family", "gender": "unisex", "name": "ヤング"}, -{"usage": "family", "gender": "unisex", "name": "ラッセル"}, -{"usage": "family", "gender": "unisex", "name": "ライト"}, -{"usage": "family", "gender": "unisex", "name": "ラミレス"}, -{"usage": "family", "gender": "unisex", "name": "リュイス"}, -{"usage": "family", "gender": "unisex", "name": "リー"}, -{"usage": "family", "gender": "unisex", "name": "リード"}, -{"usage": "family", "gender": "unisex", "name": "リチャードソン"}, -{"usage": "family", "gender": "unisex", "name": "リベラ"}, -{"usage": "family", "gender": "unisex", "name": "ロジャース"}, -{"usage": "family", "gender": "unisex", "name": "ロス"}, -{"usage": "family", "gender": "unisex", "name": "ロドリゲス"}, -{"usage": "family", "gender": "unisex", "name": "ロバーツ"}, -{"usage": "family", "gender": "unisex", "name": "ロビンソン"}, -{"usage": "family", "gender": "unisex", "name": "ロペス"}, -{"usage": "family", "gender": "unisex", "name": "ロング"}, -{"usage": "family", "gender": "unisex", "name": "ワード"}, -{"usage": "family", "gender": "unisex", "name": "ワシントン"}, -{"usage": "family", "gender": "unisex", "name": "ワトソン"}, -{"usage": "given", "gender": "female", "name": "アイザワ"}, -{"usage": "given", "gender": "female", "name": "アキコ"}, -{"usage": "given", "gender": "female", "name": "アシュリー"}, -{"usage": "given", "gender": "female", "name": "アディソン"}, -{"usage": "given", "gender": "female", "name": "アナ"}, -{"usage": "given", "gender": "female", "name": "アビゲイル"}, -{"usage": "given", "gender": "female", "name": "アブリー"}, -{"usage": "given", "gender": "female", "name": "アメリア"}, -{"usage": "given", "gender": "female", "name": "アリッサ"}, -{"usage": "given", "gender": "female", "name": "アリーヤ"}, -{"usage": "given", "gender": "female", "name": "アリアーナ"}, -{"usage": "given", "gender": "female", "name": "アリアンナ"}, -{"usage": "given", "gender": "female", "name": "アリソン"}, -{"usage": "given", "gender": "female", "name": "アレクサ"}, -{"usage": "given", "gender": "female", "name": "アレクサンドラ"}, -{"usage": "given", "gender": "female", "name": "アレクシス"}, -{"usage": "given", "gender": "female", "name": "アンジョリーナ"}, -{"usage": "given", "gender": "female", "name": "アンドレア"}, -{"usage": "given", "gender": "female", "name": "イヴリン"}, -{"usage": "given", "gender": "female", "name": "イザベラ"}, -{"usage": "given", "gender": "female", "name": "イザベル"}, -{"usage": "given", "gender": "female", "name": "イザベル"}, -{"usage": "given", "gender": "female", "name": "ヴァレリア"}, -{"usage": "given", "gender": "female", "name": "エイブリー"}, -{"usage": "given", "gender": "female", "name": "エバ"}, -{"usage": "given", "gender": "female", "name": "エマ"}, -{"usage": "given", "gender": "female", "name": "エミリー"}, -{"usage": "given", "gender": "female", "name": "エラ"}, -{"usage": "given", "gender": "female", "name": "エリザベス"}, -{"usage": "given", "gender": "female", "name": "オータム"}, -{"usage": "given", "gender": "female", "name": "オードリー"}, -{"usage": "given", "gender": "female", "name": "オリビア"}, -{"usage": "given", "gender": "female", "name": "カイリー"}, -{"usage": "given", "gender": "female", "name": "カミーラ"}, -{"usage": "given", "gender": "female", "name": "ガブリエラ"}, -{"usage": "given", "gender": "female", "name": "ガブリエラ"}, -{"usage": "given", "gender": "female", "name": "キャロライン"}, -{"usage": "given", "gender": "female", "name": "キム"}, -{"usage": "given", "gender": "female", "name": "キンバリー"}, -{"usage": "given", "gender": "female", "name": "クレア"}, -{"usage": "given", "gender": "female", "name": "クロエ"}, -{"usage": "given", "gender": "female", "name": "グレイシー"}, -{"usage": "given", "gender": "female", "name": "グレイス"}, -{"usage": "given", "gender": "female", "name": "ケイティ"}, -{"usage": "given", "gender": "female", "name": "ケイティン"}, -{"usage": "given", "gender": "female", "name": "ケイトリン"}, -{"usage": "given", "gender": "female", "name": "ケイラ"}, -{"usage": "given", "gender": "female", "name": "ケイリー"}, -{"usage": "given", "gender": "female", "name": "サバナ"}, -{"usage": "given", "gender": "female", "name": "サマンサ"}, -{"usage": "given", "gender": "female", "name": "サラ"}, -{"usage": "given", "gender": "female", "name": "サラ"}, -{"usage": "given", "gender": "female", "name": "シャーロット"}, -{"usage": "given", "gender": "female", "name": "シドニー"}, -{"usage": "given", "gender": "female", "name": "ジェシー"}, -{"usage": "given", "gender": "female", "name": "ジェシカ"}, -{"usage": "given", "gender": "female", "name": "ジェニファー"}, -{"usage": "given", "gender": "female", "name": "ジェネシス"}, -{"usage": "given", "gender": "female", "name": "ジェン"}, -{"usage": "given", "gender": "female", "name": "ジャスミン"}, -{"usage": "given", "gender": "female", "name": "ジャンナ"}, -{"usage": "given", "gender": "female", "name": "ジュリア"}, -{"usage": "given", "gender": "female", "name": "ジョセリン"}, -{"usage": "given", "gender": "female", "name": "ソフィー"}, -{"usage": "given", "gender": "female", "name": "ソフィア"}, -{"usage": "given", "gender": "female", "name": "ゾーイ"}, -{"usage": "given", "gender": "female", "name": "ゾーイー"}, -{"usage": "given", "gender": "female", "name": "デスティニー"}, -{"usage": "given", "gender": "female", "name": "トリニティー"}, -{"usage": "given", "gender": "female", "name": "ナタリー"}, -{"usage": "given", "gender": "female", "name": "ナツキ"}, -{"usage": "given", "gender": "female", "name": "ヌク"}, -{"usage": "given", "gender": "female", "name": "ネバエ"}, -{"usage": "given", "gender": "female", "name": "ハンナ"}, -{"usage": "given", "gender": "female", "name": "ヒカリ"}, -{"usage": "given", "gender": "female", "name": "ビクトリア"}, -{"usage": "given", "gender": "female", "name": "フェイス"}, -{"usage": "given", "gender": "female", "name": "ブリアナ"}, -{"usage": "given", "gender": "female", "name": "ブルック"}, -{"usage": "given", "gender": "female", "name": "ブルックリン"}, -{"usage": "given", "gender": "female", "name": "ヘイリー"}, -{"usage": "given", "gender": "female", "name": "ヘザー"}, -{"usage": "given", "gender": "female", "name": "ベイリー"}, -{"usage": "given", "gender": "female", "name": "ベネッサ"}, -{"usage": "given", "gender": "female", "name": "ペイジ"}, -{"usage": "given", "gender": "female", "name": "ペイトン"}, -{"usage": "given", "gender": "female", "name": "マケイラ"}, -{"usage": "given", "gender": "female", "name": "マディソン"}, -{"usage": "given", "gender": "female", "name": "マデリーン"}, -{"usage": "given", "gender": "female", "name": "マデリン"}, -{"usage": "given", "gender": "female", "name": "マヤ"}, -{"usage": "given", "gender": "female", "name": "マライア"}, -{"usage": "given", "gender": "female", "name": "マリア"}, -{"usage": "given", "gender": "female", "name": "ミア"}, -{"usage": "given", "gender": "female", "name": "メーガン"}, -{"usage": "given", "gender": "female", "name": "メアリー"}, -{"usage": "given", "gender": "female", "name": "メラニー"}, -{"usage": "given", "gender": "female", "name": "モーガン"}, -{"usage": "given", "gender": "female", "name": "ユキ"}, -{"usage": "given", "gender": "female", "name": "ライリー"}, -{"usage": "given", "gender": "female", "name": "リリー"}, -{"usage": "given", "gender": "female", "name": "リリアン"}, -{"usage": "given", "gender": "female", "name": "レア"}, -{"usage": "given", "gender": "female", "name": "レイチェル"}, -{"usage": "given", "gender": "female", "name": "レイラ"}, -{"usage": "given", "gender": "female", "name": "ローレン"}, -{"usage": "given", "gender": "male", "name": "アーロン"}, -{"usage": "given", "gender": "male", "name": "アイザック"}, -{"usage": "given", "gender": "male", "name": "アイデン"}, -{"usage": "given", "gender": "male", "name": "アダム"}, -{"usage": "given", "gender": "male", "name": "アドリアン"}, -{"usage": "given", "gender": "male", "name": "アレックス"}, -{"usage": "given", "gender": "male", "name": "アレクサンドル"}, -{"usage": "given", "gender": "male", "name": "アンジェル"}, -{"usage": "given", "gender": "male", "name": "アントニー"}, -{"usage": "given", "gender": "male", "name": "アンドリュー"}, -{"usage": "given", "gender": "male", "name": "イーサン"}, -{"usage": "given", "gender": "male", "name": "イーブン"}, -{"usage": "given", "gender": "male", "name": "イアン"}, -{"usage": "given", "gender": "male", "name": "イザヤ"}, -{"usage": "given", "gender": "male", "name": "イライジャ"}, -{"usage": "given", "gender": "male", "name": "ウィリアム"}, -{"usage": "given", "gender": "male", "name": "エイダン"}, -{"usage": "given", "gender": "male", "name": "エイデン"}, -{"usage": "given", "gender": "male", "name": "エバン"}, -{"usage": "given", "gender": "male", "name": "エリ"}, -{"usage": "given", "gender": "male", "name": "エリック"}, -{"usage": "given", "gender": "male", "name": "オーウェン"}, -{"usage": "given", "gender": "male", "name": "オースチン"}, -{"usage": "given", "gender": "male", "name": "カーソン"}, -{"usage": "given", "gender": "male", "name": "カーター"}, -{"usage": "given", "gender": "male", "name": "カイル"}, -{"usage": "given", "gender": "male", "name": "カデン"}, -{"usage": "given", "gender": "male", "name": "カルロス"}, -{"usage": "given", "gender": "male", "name": "カレブ"}, -{"usage": "given", "gender": "male", "name": "ガビン"}, -{"usage": "given", "gender": "male", "name": "キャメロン"}, -{"usage": "given", "gender": "male", "name": "キョースケ"}, -{"usage": "given", "gender": "male", "name": "キラ"}, -{"usage": "given", "gender": "male", "name": "クーパー"}, -{"usage": "given", "gender": "male", "name": "クリスチャン"}, -{"usage": "given", "gender": "male", "name": "クリストファー"}, -{"usage": "given", "gender": "male", "name": "ケイタ"}, -{"usage": "given", "gender": "male", "name": "ケイデン"}, -{"usage": "given", "gender": "male", "name": "ケビン"}, -{"usage": "given", "gender": "male", "name": "ゲイブリエル"}, -{"usage": "given", "gender": "male", "name": "ゲンドー"}, -{"usage": "given", "gender": "male", "name": "コール"}, -{"usage": "given", "gender": "male", "name": "コナー"}, -{"usage": "given", "gender": "male", "name": "コルトン"}, -{"usage": "given", "gender": "male", "name": "サビエル"}, -{"usage": "given", "gender": "male", "name": "サミュエル"}, -{"usage": "given", "gender": "male", "name": "ザカリー"}, -{"usage": "given", "gender": "male", "name": "ショーン"}, -{"usage": "given", "gender": "male", "name": "ジェームス"}, -{"usage": "given", "gender": "male", "name": "ジェイコブ"}, -{"usage": "given", "gender": "male", "name": "ジェイスン"}, -{"usage": "given", "gender": "male", "name": "ジェイデン"}, -{"usage": "given", "gender": "male", "name": "ジェイデン"}, -{"usage": "given", "gender": "male", "name": "ジェレミア"}, -{"usage": "given", "gender": "male", "name": "ジャック"}, -{"usage": "given", "gender": "male", "name": "ジャクソン"}, -{"usage": "given", "gender": "male", "name": "ジャスティン"}, -{"usage": "given", "gender": "male", "name": "ジュリアン"}, -{"usage": "given", "gender": "male", "name": "ジョーダン"}, -{"usage": "given", "gender": "male", "name": "ジョアン"}, -{"usage": "given", "gender": "male", "name": "ジョサイア"}, -{"usage": "given", "gender": "male", "name": "ジョシュア"}, -{"usage": "given", "gender": "male", "name": "ジョセフ"}, -{"usage": "given", "gender": "male", "name": "ジョゼ"}, -{"usage": "given", "gender": "male", "name": "ジョナサン"}, -{"usage": "given", "gender": "male", "name": "ジョン"}, -{"usage": "given", "gender": "male", "name": "セバスチャン"}, -{"usage": "given", "gender": "male", "name": "タイラー"}, -{"usage": "given", "gender": "male", "name": "タケウチ"}, -{"usage": "given", "gender": "male", "name": "ダイスケ"}, -{"usage": "given", "gender": "male", "name": "ダニエル"}, -{"usage": "given", "gender": "male", "name": "チェイス"}, -{"usage": "given", "gender": "male", "name": "チャールズ"}, -{"usage": "given", "gender": "male", "name": "ディエゴ"}, -{"usage": "given", "gender": "male", "name": "ディラン"}, -{"usage": "given", "gender": "male", "name": "デイビッド"}, -{"usage": "given", "gender": "male", "name": "トマス"}, -{"usage": "given", "gender": "male", "name": "トリスタン"}, -{"usage": "given", "gender": "male", "name": "ドミニク"}, -{"usage": "given", "gender": "male", "name": "ナサニエル"}, -{"usage": "given", "gender": "male", "name": "ニコラス"}, -{"usage": "given", "gender": "male", "name": "ネイサン"}, -{"usage": "given", "gender": "male", "name": "ノア"}, -{"usage": "given", "gender": "male", "name": "ハンター"}, -{"usage": "given", "gender": "male", "name": "ブライアン"}, -{"usage": "given", "gender": "male", "name": "ブライヤン"}, -{"usage": "given", "gender": "male", "name": "ブラディ"}, -{"usage": "given", "gender": "male", "name": "ブラディ"}, -{"usage": "given", "gender": "male", "name": "ブランドン"}, -{"usage": "given", "gender": "male", "name": "ブレイク"}, -{"usage": "given", "gender": "male", "name": "ブレイデン"}, -{"usage": "given", "gender": "male", "name": "ヘイデン"}, -{"usage": "given", "gender": "male", "name": "ヘスウス"}, -{"usage": "given", "gender": "male", "name": "ヘンリー"}, -{"usage": "given", "gender": "male", "name": "ベンジャミン"}, -{"usage": "given", "gender": "male", "name": "マイケル"}, -{"usage": "given", "gender": "male", "name": "マシュー"}, -{"usage": "given", "gender": "male", "name": "メーソン"}, -{"usage": "given", "gender": "male", "name": "ライアン"}, -{"usage": "given", "gender": "male", "name": "ランドン"}, -{"usage": "given", "gender": "male", "name": "リーアム"}, -{"usage": "given", "gender": "male", "name": "ルーカス"}, -{"usage": "given", "gender": "male", "name": "ルーク"}, -{"usage": "given", "gender": "male", "name": "ルイス"}, -{"usage": "given", "gender": "male", "name": "ローガン"}, -{"usage": "given", "gender": "male", "name": "ロバート"}, -{"usage": "given", "gender": "male", "name": "ワイアット"} + { + "usage": "backer", + "gender": "unisex", + "name": [ + "アーガス M. ローウェル", + "アーク", + "アーチャー", + "アーリスト マクプリューデント", + "アジャイ チャンドラ", + "アトモス", + "アルファイ", + "アレクサンダー ウィークス", + "アレクサンダー クリックコー", + "アレクサンダー ドミトリエフ", + "アンソニー バーリー", + "アントン ストライク", + "アンドリュー ウェブスター", + "アンドリュー ガーステラー", + "イェレミアス ブラベータ", + "イェンス ベッカー", + "イーリー フォレスト キートン", + "イアン クリー", + "ウィリアム フォレスト", + "ウィル ウォーカー", + "ウィンター グードブロッド", + "ウェイン A アーサートン", + "エベリン フロスト", + "エリック ハンガーブーラー", + "エリック ローサック", + "エンリケ アロンソ", + "オーエン ダン", + "カミル クリウィソン", + "ガッツ", + "ガーグ ハックポフ", + "ガブリエル ドン", + "ガルファス モーゴロック", + "ギョーム レビゴット", + "クリス ワトキンス", + "クリストファー フォーリンズ", + "クレイ フォックステイル", + "クレイグ ファーガソン", + "クレイグ マトン", + "グレン ランシッター", + "ケビン ウィット", + "ケビン グラッソ", + "ケンジ クロカワ", + "コムレイド ギャリー", + "サイモン トーレセン ハルト", + "サム スタイン", + "ザナム", + "シャーロット ホール", + "ショーン ダンカン", + "シメファミ", + "ジェームス ケニー", + "ジェフ メジャー", + "ジャスティン マッキノン", + "ジョシュア ヤング", + "ジョセフ 'ザキャルゥー' バートレット", + "ジョン エニオン", + "ジョン ハメル", + "ジム ウィーバー", + "ジム ランダーランド", + "スゾックス ガボール フェレンツ", + "スティーブン ビーターソン", + "ストットナー", + "スノー 'ニャー'", + "スパシー プケラウクト", + "スパロー グリフォン", + "ズヒアオ", + "セバスチャン ジャフル", + "セルカン コイル", + "ダックコー", + "ダグ オグデン", + "ダスク ガオ", + "ダニエル アンフィールド", + "ダニエル ダナヒー", + "ディック サージ", + "デイヴ ステバーデイバーソン", + "トッドリック リッホープ", + "トーマス サイモン", + "トーマス ラルソン", + "トナミ ヨルゲンセン", + "トビアス フランケ", + "トム フーパー", + "トラビス ギブソン", + "トリアナ", + "トンザ", + "ドクター ヒルク ヴァン ダー シャーフ", + "ドリオ", + "ナサニエル フォード", + "ニック 'ハボック' パーカー", + "ニック ステファン", + "ネイサン キャン", + "ハリド ラシッド", + "ハンク レクラム", + "パスカル フィリッポビックズ", + "ヒューバート ヒューズ", + "ヒューバート ローデンボウ", + "ピーター ストールベリ", + "フィリップ トレンブレイ", + "フェリックス アプリン", + "フェリックス フォックス", + "フローズンフォクシー", + "ブライアン デビットソン", + "ブライアン ホースターマン", + "ヘリス ゼーボン", + "ベン マクルーア", + "ベンジャミン レップローグル", + "ホメロス", + "ボバロット", + "ポール ウォレス", + "マット ウィリアムズ", + "マット デイビス", + "マーク 'バッド ボーイ' バッドイ", + "マーティン ウッダード", + "マーティン スウェンソン", + "マイケル 'ディス ホリブリー' ジョーンズ", + "マイケル キンケイド", + "マイケル ヒル", + "マイル プロワース", + "マシュー セント ジョン", + "マニック デプレイシーブ", + "ミック バット", + "ミゲル ハーメズ", + "ミシェル バージェロン", + "ミロッチ", + "ラクエル マクマホン", + "ラクラン", + "ラス レイノルズ III", + "ラリアン", + "ランバンクティオス リック", + "リノ パーカー", + "ルドルフ シュミット", + "レイモンド ベラス", + "レオニード ワシリエフ", + "レフ ムイシキン", + "ロール", + "ロウリー デニス", + "ロニー マグヌソン", + "ロブ ウェッツェル", + "ロブ キー", + "ロン 'ノイズ' ハキム" + ] + }, + { + "usage": "city", + "name": [ + "アッシュバーンハム", + "アッシュビー", + "アッシュフィールド", + "アッシュフォード", + "アッシュランド", + "アッタルボロー", + "アップルトン", + "アーガイル", + "アービング", + "アーラスバーグ", + "アーリントン", + "アイヤー", + "アイラ", + "アイランダー", + "アイランドフォールス", + "アイル・オ・ホット", + "アイル・ラ・モッテ", + "アイルズボロ", + "アカシュネット", + "アガウァム", + "アクァース", + "アクイナ", + "アクスブリッジ", + "アクトン", + "アソール", + "アダムス", + "アテネ", + "アディソン", + "アトキンソン", + "アビングトン", + "アプトン", + "アボット", + "アミティ", + "アムハースト", + "アランデル", + "アルステッド", + "アルトン", + "アルナ", + "アルバーグ", + "アルビオン", + "アルフレッド", + "アレクサンダー", + "アレクサンドリア", + "アローシック", + "アンソニア", + "アンソン", + "アンダーヒル", + "アントリム", + "アンドーバー", + "イーグルレイク", + "イーストウィンザー", + "イーストキングストン", + "イーストグランビー", + "イーストグリニッジ", + "イーストハッダム", + "イーストハートフォード", + "イーストハム", + "イーストハンプトン", + "イーストハンプトン", + "イーストフォード", + "イーストブリッジウォーター", + "イーストブルック", + "イーストブルックフィールド", + "イーストプロビデンス", + "イーストヘブン", + "イーストポート", + "イーストマチアス", + "イーストミリノケット", + "イーストモントピーリア", + "イーストライム", + "イーストロングメドウ", + "イーストン", + "イートン", + "イプスウィッチ", + "インダストリー", + "ウィーアー", + "ウィーロック", + "ウィーン", + "ウィスキャセット", + "ウィヌースキ", + "ウィリアムズタウン", + "ウィリアムズバーグ", + "ウィリストン", + "ウィリマンティック", + "ウィルトン", + "ウィルブラーム", + "ウィルミントン", + "ウィルモット", + "ウィン", + "ウィンザー", + "ウィンザーロックス", + "ウィンスロップ", + "ウィンスロー", + "ウィンターハーバー", + "ウィンタービルプランテーション", + "ウィンターポート", + "ウィンダム", + "ウィンチェスター", + "ウィンチェンドン", + "ウィンホール", + "ウェールズ", + "ウェア", + "ウェアラム", + "ウェイクフィールド", + "ウェイト", + "ウェイトスフィールド", + "ウェイトリー", + "ウェイド", + "ウェイブリッジ", + "ウェイマス", + "ウェイランド", + "ウェイン", + "ウェザースフィールド", + "ウェザーズフィールド", + "ウェスタリー", + "ウェストン", + "ウェズレー", + "ウェブスター", + "ウェブスタープランテーション", + "ウェリントン", + "ウェリントン", + "ウェルズ", + "ウェルズリー", + "ウェルド", + "ウェルフリート", + "ウェンデル", + "ウェントワース", + "ウェンハム", + "ウォッシュバーン", + "ウォータータウン", + "ウォータービル", + "ウォータービルバレー", + "ウォーターフォード", + "ウォーターベリー", + "ウォーターボロー", + "ウォールデン", + "ウォーレン", + "ウォバーン", + "ウォリングフォード", + "ウォルコット", + "ウォルサム", + "ウォルドー", + "ウォルドボロー", + "ウォルポール", + "ウッドストック", + "ウッドビル", + "ウッドフォード", + "ウッドブリッジ", + "ウッドベリー", + "ウッドランド", + "ウースター", + "ウーリッジ", + "ウーンソケット", + "ウエストウィンザー", + "ウエストウッド", + "ウエストガーディナー", + "ウエストグリニッジ", + "ウエストストックブリッジ", + "ウエストスプリングフィールド", + "ウエストティスベリー", + "ウエストニューベリー", + "ウエストハートフォード", + "ウエストハンプトン", + "ウエストバース", + "ウエストパリ", + "ウエストフィールド", + "ウエストフェアリー", + "ウエストフォークス", + "ウエストフォード", + "ウエストブリッジウォーター", + "ウエストブルック", + "ウエストブルックフィールド", + "ウエストベリー", + "ウエストボイルストン", + "ウエストボロー", + "ウエストポート", + "ウエストマンランド", + "ウエストミンスター", + "ウエストモア", + "ウエストモアランド", + "ウエストラトランド", + "ウエストワーウィック", + "ウルフボロー", + "ヴァーシャイル", + "ヴァートン", + "ヴァーノン", + "ヴァイナルヘブン", + "ヴァサルボロー", + "ヴァン・ビューレン", + "ヴァンスボロー", + "ヴィージー", + "ヴェルジェンヌ", + "ヴェローナアイランド", + "エッジコーム", + "エッピング", + "エイボン", + "エイムズベリー", + "エクセター", + "エグリモント", + "エセックス", + "エディントン", + "エディンバーグ", + "エデン", + "エトナ", + "エドガータウン", + "エドマンズ", + "エノスバーグ", + "エフィンハム", + "エプソム", + "エベレット", + "エムデン", + "エリオット", + "エリコ", + "エリザベスミサキ", + "エリントン", + "エルズワース", + "エルモア", + "エロール", + "エンフィールド", + "オックスフォード", + "オックスボー", + "オーウェル", + "オーカム", + "オーガスタ", + "オークフィールド", + "オークブラフス", + "オークランド", + "オーチス", + "オーチスフィールド", + "オーバーン", + "オーフォード", + "オーラガッシュ", + "オーランド", + "オールド・オーチャート・゙ビーチ", + "オールドセイブルック", + "オールドタウン", + "オールドライム", + "オールバニー", + "オーレンストーン", + "オーロラ", + "オーンビル", + "オウルヘッド", + "オガンキット", + "オシッピー", + "オズボーン", + "オランダ", + "オリエント", + "オリントン", + "オルフォード", + "オルレアン", + "オレンジ", + "オロノ", + "カッシング", + "カーバー", + "カービー", + "カーライル", + "カスティーニ", + "カトラー", + "カナン", + "カベンディッシュ", + "カボット", + "カミングトン", + "カムデン", + "カラタンク", + "カリブー", + "カルタゴ", + "カルメル", + "カレー", + "カンタベリー", + "カントン", + "カンバーランド", + "ガーディナー", + "ガードナー", + "ガーフィールドプランテーション", + "ガーランド", + "キャッスルトン", + "キャッスルヒル", + "キャスウェル", + "キャスコ", + "キャラバセットバレー", + "キャロル", + "キャロルプランテーション", + "キャンディア", + "キャンプトン", + "キッタリー", + "キーン", + "キリングトン", + "キリングリー", + "キリングワース", + "キングストン", + "キングズバリプランテーション", + "キングフィールド", + "キングマン", + "ギル", + "ギルサム", + "ギルドホール", + "ギルフォード", + "ギルフォード", + "ギルマントン", + "ギレアド", + "クーパー", + "クインシー", + "クラークスバーグ", + "クラークスビル", + "クラフトベリー", + "クラレンドン", + "クランストン", + "クランベリーアイルズ", + "クリスタル", + "クリフトン", + "クリントン", + "クレアモント", + "クロイドン", + "クロウフォード", + "クロムウェル", + "グールドボロ", + "グラステンベリー", + "グラストンベリー", + "グラバー", + "グラフトン", + "グランサム", + "グランドアイル", + "グランドレイクストリーム", + "グランビー", + "グランビル", + "グリーン", + "グリーンウッド", + "グリーンズバラ", + "グリーンビル", + "グリーンフィールド", + "グリーンブッシュ", + "グリーンランド", + "グリスウォルド", + "グリニッジ", + "グレートバーリントン", + "グレートポンド", + "グレイ", + "グレンウッドプランテーション", + "グレンバーン", + "グローブランド", + "グロウスター", + "グロスター", + "グロトン", + "ケーリープランテーション", + "ケンジントン", + "ケンダスキング", + "ケント", + "ケンネバンク", + "ケンネバンクポート", + "ケンブリッジ", + "コッディビルプランテーション", + "コーニッシュ", + "コーハセット", + "コールブルック", + "コーンウォール", + "コーンビル", + "コナー", + "コプリンプランテーション", + "コベントリー", + "コリナー", + "コリントン", + "コルチェスター", + "コルライン", + "コロンビア", + "コロンビアフォールズ", + "コンウェイ", + "コンコード", + "ゴーシェン", + "ゴーラム", + "ゴスノールド", + "ゴフスタウン", + "サットン", + "サーリー", + "サウサンプトン", + "サウスウィンザー", + "サウスウイック", + "サウスウエストハーバー", + "サウスキングスタウン", + "サウストーマストン", + "サウスハドリー", + "サウスハンプトン", + "サウスバーリントン", + "サウスヒーロー", + "サウスブリッジ", + "サウスブリストル", + "サウスベリック", + "サウスベリー", + "サウスボロー", + "サウスポート", + "サウスポートランド", + "サヴァア", + "サジントン", + "サドベリー", + "サバッタス", + "サフィールド", + "サマーズ", + "サマーズワース", + "サマービル", + "サマセット", + "サムナー", + "サリー", + "サリバン", + "サンガービル", + "サンダーランド", + "サンダウン", + "サンディスフィールド", + "サンディリバープランテーション", + "サンドイッチ", + "サンドゲート", + "サンフォード", + "サンボーントン", + "ザ・フォークス", + "シェフィールド", + "シェルトン", + "シェルドン", + "シェルバーン", + "シャップレイ", + "シャーバーン", + "シャーマン", + "シャーリー", + "シャーロット", + "シャフトスベリー", + "シャロン", + "シューツベリー", + "シュガーヒル", + "シュルーズベリー", + "ショーハム", + "ショーンズバラ", + "ショーンズポート", + "シーコンク", + "シーブルック", + "シーモア", + "シールプランテーション", + "シアスバーグ", + "シアスポート", + "シアスモント", + "シチュエート", + "シドニー", + "シビグアイランド", + "シムズベリー", + "ジェイ", + "ジェイムズタウン", + "ジェファーソン", + "ジャックマン", + "ジャクソン", + "ジャフリー", + "ジャマイカ", + "ジョージア", + "ジョージタウン", + "ジョンストン", + "ジョンソン", + "スウェーデン", + "スウォンジ", + "スカボロー", + "スコットランド", + "スコーヒガン", + "スタッダード", + "スタッフォード", + "スターク", + "スタークス", + "スタークスボロー", + "スターブリッジ", + "スターリング", + "スタナード", + "スタンディッシュ", + "スタンフォード", + "スチューベン", + "スチュワーツタウン", + "ステットソン", + "ステイシービル", + "ストックトンスプリングス", + "ストックブリッジ", + "ストックホルム", + "ストー", + "ストートン", + "ストーナム", + "ストウ", + "ストニントン", + "ストラットン", + "ストラッフォード", + "ストラサム", + "ストラトフォード", + "ストロング", + "スナピー", + "スピローグ", + "スプリングフィールド", + "スペンサー", + "スミュルナ", + "スミスフィールド", + "スワンジー", + "スワンズアイランド", + "スワントン", + "スワンビル", + "スワンプスコット", + "セットフォード", + "セーラム", + "セイントジョンプランテーション", + "セジウィック", + "セバゴ", + "セベック", + "セボイズプランテーション", + "センターハーバー", + "センタービル", + "セントアガサ", + "セントアルバンス", + "セントジョージ", + "セントジョンズベリー", + "セントフランシス", + "セントラルフォールス", + "ソーガス", + "ソーコ", + "ソールズベリー", + "ソーンダイク", + "ソーントン", + "ソレント", + "ソロン", + "ターナー", + "ターランド", + "タウンゼント", + "タウンゼンド", + "タウントン", + "タフトンボロー", + "タムワース", + "タルマッジ", + "タンブリッジ", + "ダッドリー", + "ダートマス", + "ダービー", + "ダイアーブルック", + "ダイトン", + "ダクスバリ", + "ダグラス", + "ダブリン", + "ダマー", + "ダマーストン", + "ダマリスコッタ", + "ダラスプランテーション", + "ダラム", + "ダルトン", + "ダンスタブル", + "ダンバース", + "ダンバートン", + "ダンビー", + "ダンビル", + "ダンフォース", + "ダンベリー", + "チェシャー", + "チェスター", + "チェスタービル", + "チェスターフィールド", + "チェリーフィールド", + "チェルシー", + "チェルムズフォード", + "チャップマン", + "チャップリン", + "チャールスタウン", + "チャールストン", + "チャールトン", + "チャーレモント", + "チャイナ", + "チャタム", + "チッテンデン", + "チコピー", + "チチェスター", + "チルマーク", + "ティスベリー", + "ティリングハム", + "ティルトン", + "ティングスボロー", + "ティンマウス", + "テュークスベリー", + "テンプル", + "テンプルトン", + "ディックスフィールド", + "ディックスモント", + "ディープリバー", + "ディーリング", + "ディアアイル", + "ディアフィールド", + "デッダム", + "デイトン", + "デクスター", + "デトロイト", + "デニーズビル", + "デニス", + "デニスタウン", + "デブルー", + "デリー", + "デリエン", + "デンマーク", + "トゥルーロ", + "トップスハム", + "トップスフィールド", + "トーマストン", + "トランバル", + "トリントン", + "トレスコット", + "トレモント", + "トレントン", + "トロイ", + "トンプソン", + "ドーセット", + "ドーチェスター", + "ドーバー", + "ドーバーフォックスクロフト", + "ドラカット", + "ドリュープランテーション", + "ドレスデン", + "ナッシュビルプランテーション", + "ナシュア", + "ナティック", + "ナハント", + "ナポリ", + "ナラガンセット", + "ナンタケット", + "ニューアッシュフォード", + "ニューアーク", + "ニューイプスウィッチ", + "ニューイングトン", + "ニューカッスル", + "ニューカナダ", + "ニューカナン", + "ニューキャッスル", + "ニューグロスター", + "ニューシャロン", + "ニューショーハム", + "ニュースウェーデン", + "ニューセーラム", + "ニュータウン", + "ニューダラム", + "ニュートン", + "ニューハートフォード", + "ニューハンプトン", + "ニューバインヤード", + "ニューバラー", + "ニューフィールズ", + "ニューフィールド", + "ニューフェアフィールド", + "ニューフェイン", + "ニューブリテン", + "ニューブレインツリー", + "ニューヘブン", + "ニューベッドフォード", + "ニューベリー", + "ニューベリーポート", + "ニューボストン", + "ニューポート", + "ニューポートランド", + "ニューマーケット", + "ニューマールボロー", + "ニューミルフォード", + "ニューリメリック", + "ニューロンドン", + "ニュアリー", + "ニーダム", + "ネルソン", + "ノックス", + "ノッティンガム", + "ノーウェイ", + "ノーウェル", + "ノーウォーク", + "ノーウッド", + "ノーガタック", + "ノーサンバーランド", + "ノーサンプトン", + "ノースアダムス", + "ノースアチルボロ", + "ノースアンドーバー", + "ノースウッド", + "ノースカナン", + "ノースキングスタウン", + "ノースストニントン", + "ノーススミスフィールド", + "ノースハンプトン", + "ノースヒーロー", + "ノースフィールド", + "ノースブランフォード", + "ノースブリッジ", + "ノースブルックフィールド", + "ノースプロビデンス", + "ノースヘブン", + "ノースベリック", + "ノースボロー", + "ノースポート", + "ノースヤーマス", + "ノースリーディング", + "ノートン", + "ノーフォーク", + "ノーブルボロー", + "ノリッジ", + "ノリッジウォック", + "ハッダム", + "ハッバートン", + "ハッバードソン", + "ハーウィッチ", + "ハーウィントン", + "ハーシー", + "ハートフォード", + "ハートランド", + "ハートロケーション", + "ハードウィック", + "ハーバード", + "ハープスウェル", + "ハーモニー", + "ハーモン", + "ハイゲート", + "ハイドパーク", + "ハイラム", + "ハイランドプランテーション", + "ハインズバーグ", + "ハウランド", + "ハヴァーヒル", + "ハジドン", + "ハトフィールド", + "ハドソン", + "ハドリー", + "ハノーバー", + "ハミルトン", + "ハムステッド", + "ハムデン", + "ハムリン", + "ハモンド", + "ハリケーンアイル", + "ハリスビル", + "ハリソン", + "ハリファックス", + "ハリントン", + "ハル", + "ハロウェル", + "ハンコック", + "ハンソン", + "ハンチントン", + "ハンプデン", + "ハンプトン", + "ハンプトンフォールス", + "バックスポート", + "バックフィールド", + "バックランド", + "バーク", + "バークシャー", + "バークハムステッド", + "バークリー", + "バース", + "バートレット", + "バートン", + "バーナード", + "バーナードストン", + "バーナム", + "バーネット", + "バーハーバー", + "バーリントン", + "バーリントン", + "バーンステッド", + "バーンステーブル", + "バイレイビル", + "バイロン", + "バウアーバンク", + "バクストン", + "バリルビル", + "バレー", + "バンクロフト", + "バンゴール", + "パッサダムキング", + "パッテン", + "パーキンズ", + "パークマン", + "パーソンズフィールド", + "パーハム", + "パーマー", + "パウルトニー", + "パクストン", + "パトナム", + "パトニー", + "パリ", + "パルミラ", + "パレルモ", + "パントン", + "ヒース", + "ヒル", + "ヒルズボロウ", + "ヒンガム", + "ヒンズデール", + "ビッデフォード", + "ビーコンフォールズ", + "ビーバーコーブ", + "ビールズ", + "ビクトリー", + "ビバリー", + "ビルリーカ", + "ビンガム", + "ピッツトン", + "ピッツバーグ", + "ピッツフィールド", + "ピッツフォード", + "ピーターシャム", + "ピーターボロ", + "ピーチァム", + "ピーボディ", + "ピアモント", + "ファーミングデール", + "ファーミントン", + "ファイエット", + "ファルマス", + "フィッチバーグ", + "フィッツウィリアム", + "フィップスバーグ", + "フィリップス", + "フィリップストン", + "フェアファクス", + "フェアフィールド", + "フェアヘヴン", + "フェアヘブン", + "フェアリー", + "フェイストン", + "フェリスバーグ", + "フォックスボロ", + "フォートケント", + "フォートフェアフィールド", + "フォーマータウン", + "フォールリバー", + "フォスター", + "フォレストシティ", + "フライアイランド", + "フライブルグ", + "フラミンガム", + "フランクフォート", + "フランクリン", + "フランケン", + "フランストーン", + "フリータウン", + "フリーダム", + "フリーポート", + "フリーマン", + "フリーモント", + "フレッチャー", + "フレンチビル", + "フレンドシップ", + "フロリダ", + "ブースベイ", + "ブースベイハーバー", + "ブラックストーン", + "ブラットレボーロー", + "ブラッドフォード", + "ブラッドリー", + "ブライトン", + "ブライトンプランテーション", + "ブラウニングトン", + "ブラウンビル", + "ブラウンフィールド", + "ブランシャール", + "ブランズウィック", + "ブランドフォード", + "ブランドン", + "ブランフォード", + "ブリッジウォーター", + "ブリッジポート", + "ブリッドグトン", + "ブリッドポート", + "ブリストル", + "ブリムフィールド", + "ブルックス", + "ブルックスビル", + "ブルックトン", + "ブルックフィールド", + "ブルックライン", + "ブルックリン", + "ブルックリン", + "ブルーアー", + "ブルースター", + "ブルーヒル", + "ブルームフィールド", + "ブレーメン", + "ブレーン", + "ブレインツリー", + "ブレンチボロ", + "ブレントウッド", + "ブロックトン", + "プライストー", + "プリマス", + "プリンストン", + "プリンプトン", + "プレーンビル", + "プレーンフィールド", + "プレザントリッジプランテーション", + "プレスクアイル", + "プレスコット", + "プレストン", + "プレンティス", + "プロクター", + "プロスペクト", + "プロビデンス", + "プロビンスタウン", + "ヘインズビル", + "ヘニッカー", + "ヘブロン", + "ベッディントン", + "ベッドフォード", + "ベーカースフィールド", + "ベアリングプランテーション", + "ベオグラード", + "ベケット", + "ベサニー", + "ベセル", + "ベツレヘム", + "ベニントン", + "ベネディクター", + "ベリック", + "ベリンガム", + "ベルチャータウン", + "ベルビデーレ", + "ベルファスト", + "ベルモント", + "ベルリン", + "ベンソン", + "ベントン", + "ペッパーレル", + "ペノブスコット", + "ペラム", + "ペリー", + "ペルー", + "ペンブルック", + "ホックセット", + "ホープ", + "ホープデール", + "ホーリー", + "ホールデン", + "ホールヨーク", + "ホイットマン", + "ホウィットニービル", + "ホウルトン", + "ホプキントン", + "ホリス", + "ホリストン", + "ホルダーネス", + "ホルブルック", + "ホワイティング", + "ホワイティングハム", + "ホワイトフィールド", + "ボックスフォード", + "ボックスボーラフ", + "ボードイン", + "ボードインハム", + "ボールドウィン", + "ボーン", + "ボイルストン", + "ボウ", + "ボスコーエン", + "ボストン", + "ボズラ", + "ボランタウン", + "ボルチモア", + "ボルトン", + "ポーター", + "ポータケット", + "ポーツマス", + "ポーテージレイク", + "ポートランド", + "ポーランド", + "ポーレット", + "ポムフレット", + "マックスフィールド", + "マッシュピー", + "マッタポイセット", + "マッタミスコンティス", + "マッタワムキング", + "マッドバリー", + "マーサ", + "マーシュフィールド", + "マーズヒル", + "マーブルヘッド", + "マールボロー", + "マーロウ", + "マウントヴァーノン", + "マウントチェース", + "マウントテーバー", + "マウントデザート", + "マウントホリー", + "マウントワシントン", + "マクワホックプランテーション", + "マゴーロウェイプランテーション", + "マサーディス", + "マダワスカ", + "マチアズ", + "マチアズポート", + "マティニッカスアイル", + "マディソン", + "マドリード", + "マリアビル", + "マリオン", + "マルデン", + "マルボロ", + "マンスフィールド", + "マンチェスター", + "マンチェスター・バイ・ザ・シー", + "ミドルセックス", + "ミドルタウン", + "ミドルタウン・スプリングス", + "ミドルトン", + "ミドルフィールド", + "ミドルベリー", + "ミドルボロー", + "ミノ", + "ミラノ", + "ミリス", + "ミリノケット", + "ミリビル", + "ミルトン", + "ミルフォード", + "ミルブリッジ", + "ミルベリー", + "ミロ", + "ムースリバー", + "メッディーベンプス", + "メードストン", + "メイソン", + "メイナード", + "メイプルトン", + "メカニックフォールズ", + "メキシコ", + "メスエン", + "メドウェイ", + "メドフィールド", + "メドフォード", + "メリデン", + "メリマック", + "メリマク", + "メリル", + "メルローズ", + "メレディス", + "メンドン", + "モーガン", + "モールトンボロー", + "モアタウン", + "モスクワ", + "モリス", + "モリスタウン", + "モリル", + "モロープランテーション", + "モンクトン", + "モンゴメリー", + "モンソン", + "モンタギュー", + "モンティチェロ", + "モンテレー", + "モントヴァーノン", + "モントビル", + "モントピーリア", + "モンヘガン", + "モンマス", + "モンロー", + "ヤーマス", + "ユースティス", + "ユニオン", + "ユニティ", + "ヨーク", + "ラッセル", + "ラッドロー", + "ライ", + "ライゲート", + "ライデン", + "ライマン", + "ライム", + "ラウドン", + "ラグランジュ", + "ラコニア", + "ラトランド", + "ラムネー", + "ラモイン", + "ランカスター", + "ラングドン", + "ランダフ", + "ランドグローブ", + "ランドルフ", + "ランフォード", + "リューネンバーグ", + "リッジフィールド", + "リッチフィールド", + "リッチフォード", + "リッチモンド", + "リー", + "リーズ", + "リーディング", + "リードスボロー", + "リードフィールド", + "リードプランテーション", + "リスボン", + "リトルコンプトン", + "リトルトン", + "リネアズ", + "リバーモア", + "リバーモアフォールズ", + "リバティー", + "リビア", + "リプトン", + "リプリー", + "リホボス", + "リミングトン", + "リメストーン", + "リメリック", + "リン", + "リンカーン", + "リンカーンビル", + "リンカーンプランテーション", + "リンジ", + "リンデボロー", + "リンドン", + "リンフィールド", + "ルーパート", + "ルイストン", + "ルベック", + "レーンジリー", + "レーンジリープランテーション", + "レイクビュープランテーション", + "レイクビル", + "レイネスボロー", + "レイモンド", + "レインハム", + "レキシントン", + "レスター", + "レドヤード", + "レノックス", + "レバノン", + "レバレット", + "レバント", + "レミングトン", + "レムスター", + "レンサム", + "レンプスター", + "ロッキーヒル", + "ロッキンガム", + "ロックスベリー", + "ロックポート", + "ロックランド", + "ロッケブラフス", + "ロー", + "ローウェル", + "ローベル", + "ローマ", + "ローリー", + "ローレンス", + "ロイヤルストン", + "ロイヤルトン", + "ロチェスター", + "ロビンストン", + "ロリンズフォード", + "ロングアイランド", + "ロングメドウ", + "ロンドンデリー", + "ワーウィック", + "ワージントン", + "ワーズボロー", + "ワーナー", + "ワシントン", + "ワラーグラス" + ] + }, + { + "usage": "family", + "gender": "unisex", + "name": [ + "アダムズ", + "アレクサンダー", + "アレン", + "アンダーソン", + "ウィリアムズ", + "ウィルソン", + "ウェスト", + "ウォーカー", + "ウッド", + "ヴァンワイルド", + "エドワーズ", + "エバンス", + "カーター", + "カイコ", + "ガルシア", + "キャンベル", + "キング", + "クック", + "クーパー", + "クラーク", + "グリーン", + "グリフィン", + "グレイ", + "ケリィ", + "コックス", + "コールマン", + "コリンズ", + "ゴンザレス", + "ゴンザレス", + "サンダース", + "サンチェス", + "シモンズ", + "ジェームス", + "ジェンキンス", + "ジャクソン", + "ジョーンズ", + "ジョンソン", + "スコツト", + "スチュワート", + "スミス", + "ターナー", + "テーラー", + "ディアス", + "デイビス", + "トーマス", + "トレス", + "トンプソン", + "ナキヤ", + "ネルソン", + "ハリス", + "ハワード", + "バーンズ", + "バイレイ", + "バトラー", + "パーカー", + "パウエル", + "パターソン", + "ヒューズ", + "ヒル", + "ピーターソン", + "フィリップス", + "フォスター", + "フローレス", + "ブライアント", + "ブラウン", + "ブルックス", + "プライス", + "ヘイズ", + "ヘルナンデス", + "ヘンダーソン", + "ベイカー", + "ベネット", + "ベル", + "ペリー", + "ペレス", + "ホール", + "ホワイト", + "マーティン", + "マーフィー", + "マルチネス", + "ミッチェル", + "ミラー", + "ムーア", + "モリス", + "モルガン", + "ヤング", + "ラッセル", + "ライト", + "ラミレス", + "リュイス", + "リー", + "リード", + "リチャードソン", + "リベラ", + "ロジャース", + "ロス", + "ロドリゲス", + "ロバーツ", + "ロビンソン", + "ロペス", + "ロング", + "ワード", + "ワシントン", + "ワトソン" + ] + }, + { + "usage": "given", + "gender": "female", + "name": [ + "アイザワ", + "アキコ", + "アシュリー", + "アディソン", + "アナ", + "アビゲイル", + "アブリー", + "アメリア", + "アリッサ", + "アリーヤ", + "アリアーナ", + "アリアンナ", + "アリソン", + "アレクサ", + "アレクサンドラ", + "アレクシス", + "アンジョリーナ", + "アンドレア", + "イヴリン", + "イザベラ", + "イザベル", + "イザベル", + "ヴァレリア", + "エイブリー", + "エバ", + "エマ", + "エミリー", + "エラ", + "エリザベス", + "オータム", + "オードリー", + "オリビア", + "カイリー", + "カミーラ", + "ガブリエラ", + "ガブリエラ", + "キャロライン", + "キム", + "キンバリー", + "クレア", + "クロエ", + "グレイシー", + "グレイス", + "ケイティ", + "ケイティン", + "ケイトリン", + "ケイラ", + "ケイリー", + "サバナ", + "サマンサ", + "サラ", + "サラ", + "シャーロット", + "シドニー", + "ジェシー", + "ジェシカ", + "ジェニファー", + "ジェネシス", + "ジェン", + "ジャスミン", + "ジャンナ", + "ジュリア", + "ジョセリン", + "ソフィー", + "ソフィア", + "ゾーイ", + "ゾーイー", + "デスティニー", + "トリニティー", + "ナタリー", + "ナツキ", + "ヌク", + "ネバエ", + "ハンナ", + "ヒカリ", + "ビクトリア", + "フェイス", + "ブリアナ", + "ブルック", + "ブルックリン", + "ヘイリー", + "ヘザー", + "ベイリー", + "ベネッサ", + "ペイジ", + "ペイトン", + "マケイラ", + "マディソン", + "マデリーン", + "マデリン", + "マヤ", + "マライア", + "マリア", + "ミア", + "メーガン", + "メアリー", + "メラニー", + "モーガン", + "ユキ", + "ライリー", + "リリー", + "リリアン", + "レア", + "レイチェル", + "レイラ", + "ローレン" + ] + }, + { + "usage": "given", + "gender": "male", + "name": [ + "アーロン", + "アイザック", + "アイデン", + "アダム", + "アドリアン", + "アレックス", + "アレクサンドル", + "アンジェル", + "アントニー", + "アンドリュー", + "イーサン", + "イーブン", + "イアン", + "イザヤ", + "イライジャ", + "ウィリアム", + "エイダン", + "エイデン", + "エバン", + "エリ", + "エリック", + "オーウェン", + "オースチン", + "カーソン", + "カーター", + "カイル", + "カデン", + "カルロス", + "カレブ", + "ガビン", + "キャメロン", + "キョースケ", + "キラ", + "クーパー", + "クリスチャン", + "クリストファー", + "ケイタ", + "ケイデン", + "ケビン", + "ゲイブリエル", + "ゲンドー", + "コール", + "コナー", + "コルトン", + "サビエル", + "サミュエル", + "ザカリー", + "ショーン", + "ジェームス", + "ジェイコブ", + "ジェイスン", + "ジェイデン", + "ジェイデン", + "ジェレミア", + "ジャック", + "ジャクソン", + "ジャスティン", + "ジュリアン", + "ジョーダン", + "ジョアン", + "ジョサイア", + "ジョシュア", + "ジョセフ", + "ジョゼ", + "ジョナサン", + "ジョン", + "セバスチャン", + "タイラー", + "タケウチ", + "ダイスケ", + "ダニエル", + "チェイス", + "チャールズ", + "ディエゴ", + "ディラン", + "デイビッド", + "トマス", + "トリスタン", + "ドミニク", + "ナサニエル", + "ニコラス", + "ネイサン", + "ノア", + "ハンター", + "ブライアン", + "ブライヤン", + "ブラディ", + "ブラディ", + "ブランドン", + "ブレイク", + "ブレイデン", + "ヘイデン", + "ヘスウス", + "ヘンリー", + "ベンジャミン", + "マイケル", + "マシュー", + "メーソン", + "ライアン", + "ランドン", + "リーアム", + "ルーカス", + "ルーク", + "ルイス", + "ローガン", + "ロバート", + "ワイアット" + ] + } ] diff --git a/data/names/ko.json b/data/names/ko.json index bea6a7453c82f..694423f4b24d5 100644 --- a/data/names/ko.json +++ b/data/names/ko.json @@ -1,1611 +1,1640 @@ [ -{"usage": "backer", "gender": "unisex", "name": "Ajay Chandra"}, -{"usage": "backer", "gender": "unisex", "name": "Alexander Dmitriev"}, -{"usage": "backer", "gender": "unisex", "name": "Alexander Krichko"}, -{"usage": "backer", "gender": "unisex", "name": "Alexander Weeks"}, -{"usage": "backer", "gender": "unisex", "name": "Alphai"}, -{"usage": "backer", "gender": "unisex", "name": "Andrew Guastella"}, -{"usage": "backer", "gender": "unisex", "name": "Andrew Webster"}, -{"usage": "backer", "gender": "unisex", "name": "Anthony Burleigh"}, -{"usage": "backer", "gender": "unisex", "name": "Anton Struyk"}, -{"usage": "backer", "gender": "unisex", "name": "Arc"}, -{"usage": "backer", "gender": "unisex", "name": "Argus M. Lowell"}, -{"usage": "backer", "gender": "unisex", "name": "Artcher"}, -{"usage": "backer", "gender": "unisex", "name": "Atomos"}, -{"usage": "backer", "gender": "unisex", "name": "Ben McClure"}, -{"usage": "backer", "gender": "unisex", "name": "Benjamin Replogle"}, -{"usage": "backer", "gender": "unisex", "name": "Bobalot"}, -{"usage": "backer", "gender": "unisex", "name": "Brian Davidson"}, -{"usage": "backer", "gender": "unisex", "name": "Brian Hosterman"}, -{"usage": "backer", "gender": "unisex", "name": "Charlotte Hall"}, -{"usage": "backer", "gender": "unisex", "name": "Chris Watkins"}, -{"usage": "backer", "gender": "unisex", "name": "Christopher Fallins"}, -{"usage": "backer", "gender": "unisex", "name": "Clay Foxtail"}, -{"usage": "backer", "gender": "unisex", "name": "Comrade Garry"}, -{"usage": "backer", "gender": "unisex", "name": "Craig Ferguson"}, -{"usage": "backer", "gender": "unisex", "name": "Craig Matton"}, -{"usage": "backer", "gender": "unisex", "name": "Dak'kor"}, -{"usage": "backer", "gender": "unisex", "name": "Daniel Annfield"}, -{"usage": "backer", "gender": "unisex", "name": "Daniel Danahy"}, -{"usage": "backer", "gender": "unisex", "name": "Dave Steverdaverson"}, -{"usage": "backer", "gender": "unisex", "name": "Dick Surges"}, -{"usage": "backer", "gender": "unisex", "name": "Doug Ogden"}, -{"usage": "backer", "gender": "unisex", "name": "Dr. Hylke van der Schaaf"}, -{"usage": "backer", "gender": "unisex", "name": "Dusk Gao"}, -{"usage": "backer", "gender": "unisex", "name": "Ely Forrest Keaton"}, -{"usage": "backer", "gender": "unisex", "name": "Enrique Alonso"}, -{"usage": "backer", "gender": "unisex", "name": "Eric Roussac"}, -{"usage": "backer", "gender": "unisex", "name": "Erik Hungerbuhler"}, -{"usage": "backer", "gender": "unisex", "name": "Evelynn Frost"}, -{"usage": "backer", "gender": "unisex", "name": "Felix Aplin"}, -{"usage": "backer", "gender": "unisex", "name": "Felix Fox"}, -{"usage": "backer", "gender": "unisex", "name": "FrozenFoxy"}, -{"usage": "backer", "gender": "unisex", "name": "Gabriel Dong"}, -{"usage": "backer", "gender": "unisex", "name": "Gattsu"}, -{"usage": "backer", "gender": "unisex", "name": "Glen Runciter"}, -{"usage": "backer", "gender": "unisex", "name": "Guillaume Lebigot"}, -{"usage": "backer", "gender": "unisex", "name": "Gulfas Morgolock"}, -{"usage": "backer", "gender": "unisex", "name": "Gurg Hackpof"}, -{"usage": "backer", "gender": "unisex", "name": "Hank Lecram"}, -{"usage": "backer", "gender": "unisex", "name": "Herrith Sebon"}, -{"usage": "backer", "gender": "unisex", "name": "Homer"}, -{"usage": "backer", "gender": "unisex", "name": "Hubert Hughes"}, -{"usage": "backer", "gender": "unisex", "name": "Hubert Rodenbaugh"}, -{"usage": "backer", "gender": "unisex", "name": "Ian Cleere"}, -{"usage": "backer", "gender": "unisex", "name": "James Kenny"}, -{"usage": "backer", "gender": "unisex", "name": "Jef Major"}, -{"usage": "backer", "gender": "unisex", "name": "Jens Becker"}, -{"usage": "backer", "gender": "unisex", "name": "Jeremias Braß"}, -{"usage": "backer", "gender": "unisex", "name": "Jim Landerland"}, -{"usage": "backer", "gender": "unisex", "name": "Jim Weaver"}, -{"usage": "backer", "gender": "unisex", "name": "John Ennion"}, -{"usage": "backer", "gender": "unisex", "name": "John Hammell"}, -{"usage": "backer", "gender": "unisex", "name": "Joseph 'Zakalwe' Bartlett"}, -{"usage": "backer", "gender": "unisex", "name": "Joshua Young"}, -{"usage": "backer", "gender": "unisex", "name": "Justine McKinnon"}, -{"usage": "backer", "gender": "unisex", "name": "Kamil Kliwison"}, -{"usage": "backer", "gender": "unisex", "name": "Kenji Gurokawa"}, -{"usage": "backer", "gender": "unisex", "name": "Kevin Grasso"}, -{"usage": "backer", "gender": "unisex", "name": "Kevin Witt"}, -{"usage": "backer", "gender": "unisex", "name": "Khalid Rashid"}, -{"usage": "backer", "gender": "unisex", "name": "Lachlan"}, -{"usage": "backer", "gender": "unisex", "name": "Larion"}, -{"usage": "backer", "gender": "unisex", "name": "Lawry Dennis"}, -{"usage": "backer", "gender": "unisex", "name": "Leonid Vasilev"}, -{"usage": "backer", "gender": "unisex", "name": "Lev Myshkin"}, -{"usage": "backer", "gender": "unisex", "name": "Manik DepraSeeve"}, -{"usage": "backer", "gender": "unisex", "name": "Mark 'Bad Boy' Badoy"}, -{"usage": "backer", "gender": "unisex", "name": "Martin Svensson"}, -{"usage": "backer", "gender": "unisex", "name": "Martin Woodard"}, -{"usage": "backer", "gender": "unisex", "name": "Matt Davis"}, -{"usage": "backer", "gender": "unisex", "name": "Matt Williams"}, -{"usage": "backer", "gender": "unisex", "name": "Matthew St. John"}, -{"usage": "backer", "gender": "unisex", "name": "Michael 'Dies Horribly' Jones"}, -{"usage": "backer", "gender": "unisex", "name": "Michael Hill"}, -{"usage": "backer", "gender": "unisex", "name": "Michael Kincaid"}, -{"usage": "backer", "gender": "unisex", "name": "Michel Bergeron"}, -{"usage": "backer", "gender": "unisex", "name": "Mick Batt"}, -{"usage": "backer", "gender": "unisex", "name": "Miguel Hermez"}, -{"usage": "backer", "gender": "unisex", "name": "Miles Prowers"}, -{"usage": "backer", "gender": "unisex", "name": "Miloch"}, -{"usage": "backer", "gender": "unisex", "name": "Nathan Cann"}, -{"usage": "backer", "gender": "unisex", "name": "Nathaniel Ford"}, -{"usage": "backer", "gender": "unisex", "name": "Nick 'Havoc' Parker"}, -{"usage": "backer", "gender": "unisex", "name": "Nick Stefan"}, -{"usage": "backer", "gender": "unisex", "name": "Owen Dunne"}, -{"usage": "backer", "gender": "unisex", "name": "Pascal Filipovicz"}, -{"usage": "backer", "gender": "unisex", "name": "Paul Wallace"}, -{"usage": "backer", "gender": "unisex", "name": "Peter Stahlberg"}, -{"usage": "backer", "gender": "unisex", "name": "Philippe Tremblay"}, -{"usage": "backer", "gender": "unisex", "name": "Rambunctious Rick"}, -{"usage": "backer", "gender": "unisex", "name": "Raquel Macmahon"}, -{"usage": "backer", "gender": "unisex", "name": "Raymond Bellas"}, -{"usage": "backer", "gender": "unisex", "name": "Reno Parker"}, -{"usage": "backer", "gender": "unisex", "name": "Rob Keys"}, -{"usage": "backer", "gender": "unisex", "name": "Rob Wetzel"}, -{"usage": "backer", "gender": "unisex", "name": "Rolle"}, -{"usage": "backer", "gender": "unisex", "name": "Ron 'Noise' Hakim"}, -{"usage": "backer", "gender": "unisex", "name": "Ronni Magnusson"}, -{"usage": "backer", "gender": "unisex", "name": "Rudolf Schmidt"}, -{"usage": "backer", "gender": "unisex", "name": "Russ Reynolds III"}, -{"usage": "backer", "gender": "unisex", "name": "Sam Stein"}, -{"usage": "backer", "gender": "unisex", "name": "Sean Duncan"}, -{"usage": "backer", "gender": "unisex", "name": "Sercan Coyle"}, -{"usage": "backer", "gender": "unisex", "name": "Simefirmi"}, -{"usage": "backer", "gender": "unisex", "name": "Simon Thoresen Hult"}, -{"usage": "backer", "gender": "unisex", "name": "Snow 'Meow'"}, -{"usage": "backer", "gender": "unisex", "name": "Sparrow Gryphon"}, -{"usage": "backer", "gender": "unisex", "name": "Spathi Pkeloucht"}, -{"usage": "backer", "gender": "unisex", "name": "Steven Peterson"}, -{"usage": "backer", "gender": "unisex", "name": "Stottner"}, -{"usage": "backer", "gender": "unisex", "name": "Szocs Gabor Ferenc"}, -{"usage": "backer", "gender": "unisex", "name": "Sébastien Jaffre"}, -{"usage": "backer", "gender": "unisex", "name": "Thomas Larsson"}, -{"usage": "backer", "gender": "unisex", "name": "Tobias Franke"}, -{"usage": "backer", "gender": "unisex", "name": "Todric Ryhope"}, -{"usage": "backer", "gender": "unisex", "name": "Tom Hooper"}, -{"usage": "backer", "gender": "unisex", "name": "Tomas Simon"}, -{"usage": "backer", "gender": "unisex", "name": "TonZa"}, -{"usage": "backer", "gender": "unisex", "name": "Tonami Jorgensen"}, -{"usage": "backer", "gender": "unisex", "name": "Travis Gibson"}, -{"usage": "backer", "gender": "unisex", "name": "Trianna"}, -{"usage": "backer", "gender": "unisex", "name": "Urist McPrudent"}, -{"usage": "backer", "gender": "unisex", "name": "Wayne A Arthurton"}, -{"usage": "backer", "gender": "unisex", "name": "Will Walker"}, -{"usage": "backer", "gender": "unisex", "name": "William Forrest"}, -{"usage": "backer", "gender": "unisex", "name": "Wintar Gootblod"}, -{"usage": "backer", "gender": "unisex", "name": "Zanam"}, -{"usage": "backer", "gender": "unisex", "name": "Zhiao"}, -{"usage": "backer", "gender": "unisex", "name": "dolio"}, -{"usage": "city", "name": "가드너"}, -{"usage": "city", "name": "가디너"}, -{"usage": "city", "name": "가필드 플랜테이션"}, -{"usage": "city", "name": "갈랜드"}, -{"usage": "city", "name": "고센"}, -{"usage": "city", "name": "고스널드"}, -{"usage": "city", "name": "고어햄"}, -{"usage": "city", "name": "고프스타운"}, -{"usage": "city", "name": "굴즈버로"}, -{"usage": "city", "name": "그래프턴"}, -{"usage": "city", "name": "그랜드 레이크 스트림"}, -{"usage": "city", "name": "그랜드 아일"}, -{"usage": "city", "name": "그랜비"}, -{"usage": "city", "name": "그랜빌"}, -{"usage": "city", "name": "그랜트햄"}, -{"usage": "city", "name": "그레이"}, -{"usage": "city", "name": "그레이트 배링턴"}, -{"usage": "city", "name": "그레이트 폰드"}, -{"usage": "city", "name": "그로브랜드"}, -{"usage": "city", "name": "그로턴"}, -{"usage": "city", "name": "그리스올드"}, -{"usage": "city", "name": "그린"}, -{"usage": "city", "name": "그린랜드"}, -{"usage": "city", "name": "그린부쉬"}, -{"usage": "city", "name": "그린빌"}, -{"usage": "city", "name": "그린우드"}, -{"usage": "city", "name": "그린위치"}, -{"usage": "city", "name": "그린즈버러"}, -{"usage": "city", "name": "그린필드"}, -{"usage": "city", "name": "글래스턴베리"}, -{"usage": "city", "name": "글래스턴베리"}, -{"usage": "city", "name": "글러스터"}, -{"usage": "city", "name": "글렌번"}, -{"usage": "city", "name": "글렌우드 대농장"}, -{"usage": "city", "name": "글로버"}, -{"usage": "city", "name": "글로스터"}, -{"usage": "city", "name": "길"}, -{"usage": "city", "name": "길드홀"}, -{"usage": "city", "name": "길레아"}, -{"usage": "city", "name": "길맨턴"}, -{"usage": "city", "name": "길섬"}, -{"usage": "city", "name": "길포드"}, -{"usage": "city", "name": "길포드"}, -{"usage": "city", "name": "나티크"}, -{"usage": "city", "name": "나폴리"}, -{"usage": "city", "name": "난터켓"}, -{"usage": "city", "name": "내러갠셋"}, -{"usage": "city", "name": "내쉬빌 플랜테이션"}, -{"usage": "city", "name": "내슈어"}, -{"usage": "city", "name": "너리"}, -{"usage": "city", "name": "네이헌트"}, -{"usage": "city", "name": "넬손"}, -{"usage": "city", "name": "노거턱"}, -{"usage": "city", "name": "노르우드"}, -{"usage": "city", "name": "노르워크"}, -{"usage": "city", "name": "노르웨이"}, -{"usage": "city", "name": "노르웰"}, -{"usage": "city", "name": "노르위치"}, -{"usage": "city", "name": "노리지웍"}, -{"usage": "city", "name": "노블보로"}, -{"usage": "city", "name": "노샘프턴"}, -{"usage": "city", "name": "노섬버랜드"}, -{"usage": "city", "name": "노스 리딩"}, -{"usage": "city", "name": "노스 베릭"}, -{"usage": "city", "name": "노스 브랜포드"}, -{"usage": "city", "name": "노스 브룩필드"}, -{"usage": "city", "name": "노스 스미스필드"}, -{"usage": "city", "name": "노스 스토닝턴"}, -{"usage": "city", "name": "노스 아담스"}, -{"usage": "city", "name": "노스 애틀보로"}, -{"usage": "city", "name": "노스 앤도버"}, -{"usage": "city", "name": "노스 야마스"}, -{"usage": "city", "name": "노스 캐이넌"}, -{"usage": "city", "name": "노스 킹스타운"}, -{"usage": "city", "name": "노스 프로비던스"}, -{"usage": "city", "name": "노스 햄프턴"}, -{"usage": "city", "name": "노스 헤이븐"}, -{"usage": "city", "name": "노스 히어로"}, -{"usage": "city", "name": "노스버러"}, -{"usage": "city", "name": "노스브릿지"}, -{"usage": "city", "name": "노스우드"}, -{"usage": "city", "name": "노스포트"}, -{"usage": "city", "name": "노스필드"}, -{"usage": "city", "name": "노팅험"}, -{"usage": "city", "name": "녹스"}, -{"usage": "city", "name": "놀턴"}, -{"usage": "city", "name": "놀포크"}, -{"usage": "city", "name": "뉴 가나안"}, -{"usage": "city", "name": "뉴 글로스터"}, -{"usage": "city", "name": "뉴 더럼"}, -{"usage": "city", "name": "뉴 런던"}, -{"usage": "city", "name": "뉴 리머릭"}, -{"usage": "city", "name": "뉴 말보로"}, -{"usage": "city", "name": "뉴 밀포드"}, -{"usage": "city", "name": "뉴 바인야드"}, -{"usage": "city", "name": "뉴 버리포트"}, -{"usage": "city", "name": "뉴 베드포드"}, -{"usage": "city", "name": "뉴 보스턴"}, -{"usage": "city", "name": "뉴 브레인트리"}, -{"usage": "city", "name": "뉴 브리튼"}, -{"usage": "city", "name": "뉴 샤론"}, -{"usage": "city", "name": "뉴 세일럼"}, -{"usage": "city", "name": "뉴 쇼어햄"}, -{"usage": "city", "name": "뉴 스웨덴"}, -{"usage": "city", "name": "뉴 애쉬포드"}, -{"usage": "city", "name": "뉴 입스위치"}, -{"usage": "city", "name": "뉴 캐나다"}, -{"usage": "city", "name": "뉴 캐슬"}, -{"usage": "city", "name": "뉴 페어필드"}, -{"usage": "city", "name": "뉴 포틀랜드"}, -{"usage": "city", "name": "뉴 할트포드"}, -{"usage": "city", "name": "뉴 햄튼"}, -{"usage": "city", "name": "뉴 헤이븐"}, -{"usage": "city", "name": "뉴마켓"}, -{"usage": "city", "name": "뉴버리"}, -{"usage": "city", "name": "뉴버지"}, -{"usage": "city", "name": "뉴아크"}, -{"usage": "city", "name": "뉴잉턴"}, -{"usage": "city", "name": "뉴캐슬"}, -{"usage": "city", "name": "뉴타운"}, -{"usage": "city", "name": "뉴튼"}, -{"usage": "city", "name": "뉴패인"}, -{"usage": "city", "name": "뉴포트"}, -{"usage": "city", "name": "뉴필드"}, -{"usage": "city", "name": "뉴필즈"}, -{"usage": "city", "name": "니덤"}, -{"usage": "city", "name": "다 마리스 코타"}, -{"usage": "city", "name": "다이어 브룩"}, -{"usage": "city", "name": "다이튼"}, -{"usage": "city", "name": "다트무스"}, -{"usage": "city", "name": "달라스 농장"}, -{"usage": "city", "name": "달튼"}, -{"usage": "city", "name": "대리언"}, -{"usage": "city", "name": "댄 버리"}, -{"usage": "city", "name": "댄버스"}, -{"usage": "city", "name": "댄비"}, -{"usage": "city", "name": "댄빌"}, -{"usage": "city", "name": "댄포스"}, -{"usage": "city", "name": "더글라스"}, -{"usage": "city", "name": "더들리"}, -{"usage": "city", "name": "더블린"}, -{"usage": "city", "name": "더비"}, -{"usage": "city", "name": "더햄"}, -{"usage": "city", "name": "덕스베리"}, -{"usage": "city", "name": "던바턴"}, -{"usage": "city", "name": "던스테이블"}, -{"usage": "city", "name": "덤머"}, -{"usage": "city", "name": "덤머스턴"}, -{"usage": "city", "name": "데니스"}, -{"usage": "city", "name": "데니스빌"}, -{"usage": "city", "name": "데니스타운"}, -{"usage": "city", "name": "데드햄"}, -{"usage": "city", "name": "데블로이스"}, -{"usage": "city", "name": "데어리"}, -{"usage": "city", "name": "데이톤"}, -{"usage": "city", "name": "덱스터"}, -{"usage": "city", "name": "덴마크"}, -{"usage": "city", "name": "도버"}, -{"usage": "city", "name": "도버-폭스크로프트"}, -{"usage": "city", "name": "도어셋"}, -{"usage": "city", "name": "도어체스터"}, -{"usage": "city", "name": "동굴 물고기"}, -{"usage": "city", "name": "드라컷"}, -{"usage": "city", "name": "드레스덴"}, -{"usage": "city", "name": "드류의 대농장"}, -{"usage": "city", "name": "디어 아일"}, -{"usage": "city", "name": "디어링"}, -{"usage": "city", "name": "디어필드"}, -{"usage": "city", "name": "디트로이트"}, -{"usage": "city", "name": "딕스몬트"}, -{"usage": "city", "name": "딕스필드"}, -{"usage": "city", "name": "딥 리버"}, -{"usage": "city", "name": "라그랑쥬"}, -{"usage": "city", "name": "라모인"}, -{"usage": "city", "name": "라우던"}, -{"usage": "city", "name": "라이"}, -{"usage": "city", "name": "라이게이트"}, -{"usage": "city", "name": "라이먼"}, -{"usage": "city", "name": "라임"}, -{"usage": "city", "name": "라코니아"}, -{"usage": "city", "name": "랜대프"}, -{"usage": "city", "name": "랜돌프"}, -{"usage": "city", "name": "랜드그로브"}, -{"usage": "city", "name": "랭던"}, -{"usage": "city", "name": "랭커스터"}, -{"usage": "city", "name": "러들로"}, -{"usage": "city", "name": "러벨"}, -{"usage": "city", "name": "러쎌"}, -{"usage": "city", "name": "러틀랜드"}, -{"usage": "city", "name": "런던데리"}, -{"usage": "city", "name": "럼니"}, -{"usage": "city", "name": "럼포드"}, -{"usage": "city", "name": "레녹스"}, -{"usage": "city", "name": "레디어드"}, -{"usage": "city", "name": "레민스터"}, -{"usage": "city", "name": "레밍턴"}, -{"usage": "city", "name": "레바논"}, -{"usage": "city", "name": "레반트"}, -{"usage": "city", "name": "레버렛"}, -{"usage": "city", "name": "레스터"}, -{"usage": "city", "name": "레이든"}, -{"usage": "city", "name": "레이몬드"}, -{"usage": "city", "name": "레이크 뷰 플랜테이션"}, -{"usage": "city", "name": "레이크빌"}, -{"usage": "city", "name": "레인즈버러"}, -{"usage": "city", "name": "레인질리 플랜테이션"}, -{"usage": "city", "name": "레인질리"}, -{"usage": "city", "name": "레인헴"}, -{"usage": "city", "name": "렉싱턴"}, -{"usage": "city", "name": "렌헴"}, -{"usage": "city", "name": "렘스터"}, -{"usage": "city", "name": "로렌스"}, -{"usage": "city", "name": "로마"}, -{"usage": "city", "name": "로빈스턴"}, -{"usage": "city", "name": "로얄스턴"}, -{"usage": "city", "name": "로얄턴"}, -{"usage": "city", "name": "로우"}, -{"usage": "city", "name": "로웰"}, -{"usage": "city", "name": "로체스터"}, -{"usage": "city", "name": "로크 블럽스"}, -{"usage": "city", "name": "록스버리"}, -{"usage": "city", "name": "록클랜드"}, -{"usage": "city", "name": "록키 힐"}, -{"usage": "city", "name": "록킹헴"}, -{"usage": "city", "name": "록포트"}, -{"usage": "city", "name": "롤리"}, -{"usage": "city", "name": "롤린스포드"}, -{"usage": "city", "name": "롱 아일랜드"}, -{"usage": "city", "name": "롱메도우"}, -{"usage": "city", "name": "루넨버그"}, -{"usage": "city", "name": "루벡"}, -{"usage": "city", "name": "루이스턴"}, -{"usage": "city", "name": "루퍼트"}, -{"usage": "city", "name": "리"}, -{"usage": "city", "name": "리드 플랜테이션"}, -{"usage": "city", "name": "리드필드"}, -{"usage": "city", "name": "리딩"}, -{"usage": "city", "name": "리머릭"}, -{"usage": "city", "name": "리밍턴"}, -{"usage": "city", "name": "리버모어 폴즈"}, -{"usage": "city", "name": "리버모어"}, -{"usage": "city", "name": "리비어"}, -{"usage": "city", "name": "리스본"}, -{"usage": "city", "name": "리즈"}, -{"usage": "city", "name": "리즈보로"}, -{"usage": "city", "name": "리치몬드"}, -{"usage": "city", "name": "리치포드"}, -{"usage": "city", "name": "리치필드"}, -{"usage": "city", "name": "리치필드"}, -{"usage": "city", "name": "리틀 콤프턴"}, -{"usage": "city", "name": "리틀턴"}, -{"usage": "city", "name": "리플리"}, -{"usage": "city", "name": "리호보스"}, -{"usage": "city", "name": "린"}, -{"usage": "city", "name": "린네"}, -{"usage": "city", "name": "린던"}, -{"usage": "city", "name": "린데버러"}, -{"usage": "city", "name": "린지"}, -{"usage": "city", "name": "린필드"}, -{"usage": "city", "name": "립톤"}, -{"usage": "city", "name": "링컨 농장"}, -{"usage": "city", "name": "링컨"}, -{"usage": "city", "name": "링컨빌"}, -{"usage": "city", "name": "마갈로웨이 농장"}, -{"usage": "city", "name": "마다와스카"}, -{"usage": "city", "name": "마드리드"}, -{"usage": "city", "name": "마리아빌"}, -{"usage": "city", "name": "마블헤드"}, -{"usage": "city", "name": "마사르디스"}, -{"usage": "city", "name": "마손"}, -{"usage": "city", "name": "마쉬필드"}, -{"usage": "city", "name": "마스 힐"}, -{"usage": "city", "name": "마시피"}, -{"usage": "city", "name": "마운트 데저트"}, -{"usage": "city", "name": "마운트 버넌"}, -{"usage": "city", "name": "마운트 워싱턴"}, -{"usage": "city", "name": "마운트 체이스"}, -{"usage": "city", "name": "마운트 테이버"}, -{"usage": "city", "name": "마운트 홀리"}, -{"usage": "city", "name": "마키아스"}, -{"usage": "city", "name": "마키아스포트"}, -{"usage": "city", "name": "마티니커스 섬"}, -{"usage": "city", "name": "말로우"}, -{"usage": "city", "name": "말보로"}, -{"usage": "city", "name": "말보로우"}, -{"usage": "city", "name": "매드버리"}, -{"usage": "city", "name": "매리언"}, -{"usage": "city", "name": "매타미스콘티스"}, -{"usage": "city", "name": "매타웜키"}, -{"usage": "city", "name": "매타포이세트"}, -{"usage": "city", "name": "맥스필드"}, -{"usage": "city", "name": "맥와호크 농장"}, -{"usage": "city", "name": "맨스필드"}, -{"usage": "city", "name": "머서"}, -{"usage": "city", "name": "메드웨이"}, -{"usage": "city", "name": "메드포드"}, -{"usage": "city", "name": "메드필드"}, -{"usage": "city", "name": "메디벺스"}, -{"usage": "city", "name": "메디슨"}, -{"usage": "city", "name": "메레디스"}, -{"usage": "city", "name": "메리든"}, -{"usage": "city", "name": "메리맥"}, -{"usage": "city", "name": "메리맥"}, -{"usage": "city", "name": "메릴"}, -{"usage": "city", "name": "메이너드"}, -{"usage": "city", "name": "메이드스톤"}, -{"usage": "city", "name": "메이플턴"}, -{"usage": "city", "name": "메카닉 폴즈"}, -{"usage": "city", "name": "메투엔"}, -{"usage": "city", "name": "멕시코"}, -{"usage": "city", "name": "멘든"}, -{"usage": "city", "name": "멘체스터 바이 더 시"}, -{"usage": "city", "name": "멘체스터"}, -{"usage": "city", "name": "멜로즈"}, -{"usage": "city", "name": "모건"}, -{"usage": "city", "name": "모로 플랜테이션"}, -{"usage": "city", "name": "모리스"}, -{"usage": "city", "name": "모리스타운"}, -{"usage": "city", "name": "모릴"}, -{"usage": "city", "name": "모스크바"}, -{"usage": "city", "name": "모어타운"}, -{"usage": "city", "name": "몬로"}, -{"usage": "city", "name": "몬머스"}, -{"usage": "city", "name": "몬슨"}, -{"usage": "city", "name": "몬태규"}, -{"usage": "city", "name": "몬트 버넌"}, -{"usage": "city", "name": "몬트레이"}, -{"usage": "city", "name": "몬트빌"}, -{"usage": "city", "name": "몬티첼로"}, -{"usage": "city", "name": "몬필리어"}, -{"usage": "city", "name": "몬헤이건"}, -{"usage": "city", "name": "몰든"}, -{"usage": "city", "name": "몰튼버러"}, -{"usage": "city", "name": "몽고메리"}, -{"usage": "city", "name": "몽튼"}, -{"usage": "city", "name": "무스 리버"}, -{"usage": "city", "name": "미노"}, -{"usage": "city", "name": "미들버리"}, -{"usage": "city", "name": "미들보로"}, -{"usage": "city", "name": "미들섹스"}, -{"usage": "city", "name": "미들타운 스프링스"}, -{"usage": "city", "name": "미들타운"}, -{"usage": "city", "name": "미들턴"}, -{"usage": "city", "name": "미들필드"}, -{"usage": "city", "name": "밀란"}, -{"usage": "city", "name": "밀로"}, -{"usage": "city", "name": "밀리노켓"}, -{"usage": "city", "name": "밀베리"}, -{"usage": "city", "name": "밀브리지"}, -{"usage": "city", "name": "밀빌"}, -{"usage": "city", "name": "밀즈"}, -{"usage": "city", "name": "밀튼"}, -{"usage": "city", "name": "밀포드"}, -{"usage": "city", "name": "바 하버"}, -{"usage": "city", "name": "바레"}, -{"usage": "city", "name": "바이런"}, -{"usage": "city", "name": "바턴"}, -{"usage": "city", "name": "박스버러"}, -{"usage": "city", "name": "박스포드"}, -{"usage": "city", "name": "반고"}, -{"usage": "city", "name": "반크로프트"}, -{"usage": "city", "name": "배살보로"}, -{"usage": "city", "name": "배아지"}, -{"usage": "city", "name": "밴 뷰런"}, -{"usage": "city", "name": "밴스버러"}, -{"usage": "city", "name": "버겐스"}, -{"usage": "city", "name": "버나드"}, -{"usage": "city", "name": "버나즈턴"}, -{"usage": "city", "name": "버넷"}, -{"usage": "city", "name": "버논"}, -{"usage": "city", "name": "버릴빌"}, -{"usage": "city", "name": "버셔"}, -{"usage": "city", "name": "버윜"}, -{"usage": "city", "name": "버크"}, -{"usage": "city", "name": "버크셔"}, -{"usage": "city", "name": "버크햄스티드"}, -{"usage": "city", "name": "버클리"}, -{"usage": "city", "name": "버트렛"}, -{"usage": "city", "name": "벅랜드"}, -{"usage": "city", "name": "벅스턴"}, -{"usage": "city", "name": "벅스포드"}, -{"usage": "city", "name": "벅필드"}, -{"usage": "city", "name": "번스테드"}, -{"usage": "city", "name": "번스테블"}, -{"usage": "city", "name": "번햄"}, -{"usage": "city", "name": "벌링턴"}, -{"usage": "city", "name": "베네딕타"}, -{"usage": "city", "name": "베닝턴"}, -{"usage": "city", "name": "베드포드"}, -{"usage": "city", "name": "베들레햄"}, -{"usage": "city", "name": "베딩턴"}, -{"usage": "city", "name": "베로나 아일랜드"}, -{"usage": "city", "name": "베를린"}, -{"usage": "city", "name": "베링턴"}, -{"usage": "city", "name": "베버리"}, -{"usage": "city", "name": "베살"}, -{"usage": "city", "name": "베서니"}, -{"usage": "city", "name": "베스"}, -{"usage": "city", "name": "베어링 플렌테이션"}, -{"usage": "city", "name": "베이커스필드"}, -{"usage": "city", "name": "베이컨 폴스"}, -{"usage": "city", "name": "베킷"}, -{"usage": "city", "name": "벤슨"}, -{"usage": "city", "name": "벤턴"}, -{"usage": "city", "name": "벨그레이드"}, -{"usage": "city", "name": "벨드윈"}, -{"usage": "city", "name": "벨리빌"}, -{"usage": "city", "name": "벨링햄"}, -{"usage": "city", "name": "벨몬트"}, -{"usage": "city", "name": "벨비드리"}, -{"usage": "city", "name": "벨쳐타운"}, -{"usage": "city", "name": "벨티모어"}, -{"usage": "city", "name": "벨페스트"}, -{"usage": "city", "name": "보스카웬"}, -{"usage": "city", "name": "보스턴"}, -{"usage": "city", "name": "보우"}, -{"usage": "city", "name": "보우다인"}, -{"usage": "city", "name": "보우다인햄"}, -{"usage": "city", "name": "보워뱅크"}, -{"usage": "city", "name": "보일스턴"}, -{"usage": "city", "name": "보즈라"}, -{"usage": "city", "name": "본"}, -{"usage": "city", "name": "볼룬타운"}, -{"usage": "city", "name": "볼턴"}, -{"usage": "city", "name": "부스베이 하버"}, -{"usage": "city", "name": "부스베이"}, -{"usage": "city", "name": "브라우닝튼"}, -{"usage": "city", "name": "브라운빌"}, -{"usage": "city", "name": "브라운필드"}, -{"usage": "city", "name": "브라잇턴 플랜테이션"}, -{"usage": "city", "name": "브라잇턴"}, -{"usage": "city", "name": "브란포드"}, -{"usage": "city", "name": "브래드포드"}, -{"usage": "city", "name": "브래들리"}, -{"usage": "city", "name": "브래틀보로"}, -{"usage": "city", "name": "브런즈윜"}, -{"usage": "city", "name": "브레멘"}, -{"usage": "city", "name": "브레인트리"}, -{"usage": "city", "name": "브렌든"}, -{"usage": "city", "name": "브렌트우드"}, -{"usage": "city", "name": "브루워"}, -{"usage": "city", "name": "브루워스터"}, -{"usage": "city", "name": "브루클린"}, -{"usage": "city", "name": "브룩스"}, -{"usage": "city", "name": "브룩스빌"}, -{"usage": "city", "name": "브룩클린"}, -{"usage": "city", "name": "브룩클린"}, -{"usage": "city", "name": "브룩턴"}, -{"usage": "city", "name": "브룩튼"}, -{"usage": "city", "name": "브룩필드"}, -{"usage": "city", "name": "브리드포트"}, -{"usage": "city", "name": "브리스톨"}, -{"usage": "city", "name": "브리지튼"}, -{"usage": "city", "name": "브림필드"}, -{"usage": "city", "name": "브릿지워터"}, -{"usage": "city", "name": "브릿지포트"}, -{"usage": "city", "name": "블랙스톤"}, -{"usage": "city", "name": "블랜드포드"}, -{"usage": "city", "name": "블랜챠드"}, -{"usage": "city", "name": "블레인"}, -{"usage": "city", "name": "블루 힐"}, -{"usage": "city", "name": "블룸필드"}, -{"usage": "city", "name": "비날헤이븐"}, -{"usage": "city", "name": "비드포드"}, -{"usage": "city", "name": "비버 코브"}, -{"usage": "city", "name": "비엔나"}, -{"usage": "city", "name": "빅토리"}, -{"usage": "city", "name": "빌러리카"}, -{"usage": "city", "name": "빌스"}, -{"usage": "city", "name": "빙햄"}, -{"usage": "city", "name": "사바터스"}, -{"usage": "city", "name": "사보이"}, -{"usage": "city", "name": "사우스 벌링턴"}, -{"usage": "city", "name": "사우스 베릭"}, -{"usage": "city", "name": "사우스 브리스톨"}, -{"usage": "city", "name": "사우스 브리지"}, -{"usage": "city", "name": "사우스 앰튼"}, -{"usage": "city", "name": "사우스 윈저"}, -{"usage": "city", "name": "사우스 잉턴"}, -{"usage": "city", "name": "사우스 킹스타운"}, -{"usage": "city", "name": "사우스 토마스톤"}, -{"usage": "city", "name": "사우스 포틀랜드"}, -{"usage": "city", "name": "사우스 하들리"}, -{"usage": "city", "name": "사우스 햄프턴"}, -{"usage": "city", "name": "사우스 히어로"}, -{"usage": "city", "name": "사우스버러"}, -{"usage": "city", "name": "사우스베리"}, -{"usage": "city", "name": "사우스웨스트 하버"}, -{"usage": "city", "name": "사우스윅"}, -{"usage": "city", "name": "사우스포트"}, -{"usage": "city", "name": "사코"}, -{"usage": "city", "name": "샌다운"}, -{"usage": "city", "name": "샌드게이트"}, -{"usage": "city", "name": "샌드위치"}, -{"usage": "city", "name": "샌디 리버 플랜테이션"}, -{"usage": "city", "name": "샌디스필드"}, -{"usage": "city", "name": "샌본턴"}, -{"usage": "city", "name": "샌퍼드"}, -{"usage": "city", "name": "샐스버리"}, -{"usage": "city", "name": "생거빌"}, -{"usage": "city", "name": "샤론"}, -{"usage": "city", "name": "샤비그 아일랜드"}, -{"usage": "city", "name": "샤프츠버리"}, -{"usage": "city", "name": "샬롯"}, -{"usage": "city", "name": "서거스"}, -{"usage": "city", "name": "서나피"}, -{"usage": "city", "name": "서레이"}, -{"usage": "city", "name": "서머빌"}, -{"usage": "city", "name": "서머셋"}, -{"usage": "city", "name": "서머스"}, -{"usage": "city", "name": "서머스워쓰"}, -{"usage": "city", "name": "서버리"}, -{"usage": "city", "name": "서턴"}, -{"usage": "city", "name": "서필드"}, -{"usage": "city", "name": "석회암"}, -{"usage": "city", "name": "선덜랜드"}, -{"usage": "city", "name": "설리번"}, -{"usage": "city", "name": "섬너"}, -{"usage": "city", "name": "세바고"}, -{"usage": "city", "name": "세벡"}, -{"usage": "city", "name": "세보아이스 플렌테이션"}, -{"usage": "city", "name": "세인트 존 플랜테이션"}, -{"usage": "city", "name": "세인트 존스버리"}, -{"usage": "city", "name": "세인트아가사"}, -{"usage": "city", "name": "세인트앨번스"}, -{"usage": "city", "name": "세인트조지"}, -{"usage": "city", "name": "세인트프란시스"}, -{"usage": "city", "name": "세일럼"}, -{"usage": "city", "name": "세지윅"}, -{"usage": "city", "name": "센터 하버"}, -{"usage": "city", "name": "센터빌"}, -{"usage": "city", "name": "센트럴 폴"}, -{"usage": "city", "name": "셔먼"}, -{"usage": "city", "name": "셔본"}, -{"usage": "city", "name": "셜리"}, -{"usage": "city", "name": "셰필드"}, -{"usage": "city", "name": "셸던"}, -{"usage": "city", "name": "소렌토"}, -{"usage": "city", "name": "손다이크"}, -{"usage": "city", "name": "솔론"}, -{"usage": "city", "name": "쇼어햄"}, -{"usage": "city", "name": "쇼워스베리"}, -{"usage": "city", "name": "쉐플레이"}, -{"usage": "city", "name": "쉘번"}, -{"usage": "city", "name": "쉘톤"}, -{"usage": "city", "name": "슈거 힐"}, -{"usage": "city", "name": "슈츠버리"}, -{"usage": "city", "name": "스미르나"}, -{"usage": "city", "name": "스미스필드"}, -{"usage": "city", "name": "스완빌"}, -{"usage": "city", "name": "스완스 아일랜드"}, -{"usage": "city", "name": "스완지"}, -{"usage": "city", "name": "스완지"}, -{"usage": "city", "name": "스완튼"}, -{"usage": "city", "name": "스웜프스캇"}, -{"usage": "city", "name": "스웨든"}, -{"usage": "city", "name": "스카보로"}, -{"usage": "city", "name": "스코틀랜드"}, -{"usage": "city", "name": "스코헤간"}, -{"usage": "city", "name": "스타크"}, -{"usage": "city", "name": "스타크"}, -{"usage": "city", "name": "스타포드"}, -{"usage": "city", "name": "스탁스보로"}, -{"usage": "city", "name": "스태너드"}, -{"usage": "city", "name": "스탠디쉬"}, -{"usage": "city", "name": "스탬포드"}, -{"usage": "city", "name": "스터브리지"}, -{"usage": "city", "name": "스털링"}, -{"usage": "city", "name": "스테슨"}, -{"usage": "city", "name": "스테우벤"}, -{"usage": "city", "name": "스테이시빌"}, -{"usage": "city", "name": "스토닝턴"}, -{"usage": "city", "name": "스토다드"}, -{"usage": "city", "name": "스토우"}, -{"usage": "city", "name": "스토위"}, -{"usage": "city", "name": "스토턴"}, -{"usage": "city", "name": "스톡브리지"}, -{"usage": "city", "name": "스톡턴 스프링스"}, -{"usage": "city", "name": "스톡홀름"}, -{"usage": "city", "name": "스톤햄"}, -{"usage": "city", "name": "스튜워츠타운"}, -{"usage": "city", "name": "스트라포드"}, -{"usage": "city", "name": "스트래튼"}, -{"usage": "city", "name": "스트랫포드"}, -{"usage": "city", "name": "스트레텀"}, -{"usage": "city", "name": "스트롱"}, -{"usage": "city", "name": "스펜서"}, -{"usage": "city", "name": "스프라그"}, -{"usage": "city", "name": "스프링필드"}, -{"usage": "city", "name": "시드니"}, -{"usage": "city", "name": "시르 농장"}, -{"usage": "city", "name": "시모어"}, -{"usage": "city", "name": "시브룩"}, -{"usage": "city", "name": "시어스몬트"}, -{"usage": "city", "name": "시어스버그"}, -{"usage": "city", "name": "시어스포트"}, -{"usage": "city", "name": "시추에이트"}, -{"usage": "city", "name": "시콩크"}, -{"usage": "city", "name": "심즈버리"}, -{"usage": "city", "name": "써리"}, -{"usage": "city", "name": "쏜턴"}, -{"usage": "city", "name": "아가일"}, -{"usage": "city", "name": "아궈웜"}, -{"usage": "city", "name": "아담스"}, -{"usage": "city", "name": "아울스 헤드"}, -{"usage": "city", "name": "아일 라 오트"}, -{"usage": "city", "name": "아일 오 호트"}, -{"usage": "city", "name": "아일랜드 폴스"}, -{"usage": "city", "name": "아일보로"}, -{"usage": "city", "name": "아쿠이나"}, -{"usage": "city", "name": "아텐스"}, -{"usage": "city", "name": "아톨"}, -{"usage": "city", "name": "알렉산더"}, -{"usage": "city", "name": "알렉산드리어"}, -{"usage": "city", "name": "알링턴"}, -{"usage": "city", "name": "애슈랜드"}, -{"usage": "city", "name": "애슈번햄"}, -{"usage": "city", "name": "애슈비"}, -{"usage": "city", "name": "애슈포드"}, -{"usage": "city", "name": "애슈필드"}, -{"usage": "city", "name": "액턴"}, -{"usage": "city", "name": "얄머스"}, -{"usage": "city", "name": "어룬델"}, -{"usage": "city", "name": "어빙"}, -{"usage": "city", "name": "어빙턴"}, -{"usage": "city", "name": "어큐쉬넷"}, -{"usage": "city", "name": "어클쓰"}, -{"usage": "city", "name": "어포드"}, -{"usage": "city", "name": "어프레드"}, -{"usage": "city", "name": "억스브리지"}, -{"usage": "city", "name": "언더힐"}, -{"usage": "city", "name": "언도버"}, -{"usage": "city", "name": "얼버그"}, -{"usage": "city", "name": "얼비온"}, -{"usage": "city", "name": "업튼"}, -{"usage": "city", "name": "에그리몬트"}, -{"usage": "city", "name": "에노스버그"}, -{"usage": "city", "name": "에덴"}, -{"usage": "city", "name": "에드가타운"}, -{"usage": "city", "name": "에드문즈"}, -{"usage": "city", "name": "에디슨"}, -{"usage": "city", "name": "에딘버그"}, -{"usage": "city", "name": "에딩턴"}, -{"usage": "city", "name": "에로우식"}, -{"usage": "city", "name": "에롤"}, -{"usage": "city", "name": "에미티"}, -{"usage": "city", "name": "에버렛"}, -{"usage": "city", "name": "에벗"}, -{"usage": "city", "name": "에섹스"}, -{"usage": "city", "name": "에이번"}, -{"usage": "city", "name": "에이어"}, -{"usage": "city", "name": "에지콤"}, -{"usage": "city", "name": "에트나"}, -{"usage": "city", "name": "에플톤"}, -{"usage": "city", "name": "에핑"}, -{"usage": "city", "name": "에핑엄"}, -{"usage": "city", "name": "엑세터"}, -{"usage": "city", "name": "엔소니아"}, -{"usage": "city", "name": "엔손"}, -{"usage": "city", "name": "엔트림"}, -{"usage": "city", "name": "엔필드"}, -{"usage": "city", "name": "엘나"}, -{"usage": "city", "name": "엘라가쉬"}, -{"usage": "city", "name": "엘렌스톤"}, -{"usage": "city", "name": "엘리엇"}, -{"usage": "city", "name": "엘링턴"}, -{"usage": "city", "name": "엘모어"}, -{"usage": "city", "name": "엘바니"}, -{"usage": "city", "name": "엘스워스"}, -{"usage": "city", "name": "엘스티드"}, -{"usage": "city", "name": "엘톤"}, -{"usage": "city", "name": "엠덴"}, -{"usage": "city", "name": "엠스부리"}, -{"usage": "city", "name": "엠허스트"}, -{"usage": "city", "name": "엡섬"}, -{"usage": "city", "name": "엣킨슨"}, -{"usage": "city", "name": "엣틀보로"}, -{"usage": "city", "name": "오거스타"}, -{"usage": "city", "name": "오건큇트"}, -{"usage": "city", "name": "오느빌"}, -{"usage": "city", "name": "오렌지"}, -{"usage": "city", "name": "오로노"}, -{"usage": "city", "name": "오로라"}, -{"usage": "city", "name": "오르웰"}, -{"usage": "city", "name": "오를랜드"}, -{"usage": "city", "name": "오를리언스"}, -{"usage": "city", "name": "오리엔트"}, -{"usage": "city", "name": "오링턴"}, -{"usage": "city", "name": "오스본"}, -{"usage": "city", "name": "오시피"}, -{"usage": "city", "name": "오우번"}, -{"usage": "city", "name": "오컴"}, -{"usage": "city", "name": "오크 블렆스"}, -{"usage": "city", "name": "오크필드"}, -{"usage": "city", "name": "오클랜드"}, -{"usage": "city", "name": "오티스"}, -{"usage": "city", "name": "오티스필드"}, -{"usage": "city", "name": "오퍼드"}, -{"usage": "city", "name": "옥스보우"}, -{"usage": "city", "name": "옥스포드"}, -{"usage": "city", "name": "올드 라임"}, -{"usage": "city", "name": "올드 세이브룩"}, -{"usage": "city", "name": "올드 오챠드 비치"}, -{"usage": "city", "name": "올드 타운"}, -{"usage": "city", "name": "와이팅"}, -{"usage": "city", "name": "와이팅헴"}, -{"usage": "city", "name": "왈도"}, -{"usage": "city", "name": "왈도보로"}, -{"usage": "city", "name": "왈라그라스"}, -{"usage": "city", "name": "왈스헴"}, -{"usage": "city", "name": "왈폴"}, -{"usage": "city", "name": "요크"}, -{"usage": "city", "name": "우드버리"}, -{"usage": "city", "name": "우드브릿지"}, -{"usage": "city", "name": "우드빌"}, -{"usage": "city", "name": "우드스탁"}, -{"usage": "city", "name": "우드포드"}, -{"usage": "city", "name": "우들랜드"}, -{"usage": "city", "name": "우번"}, -{"usage": "city", "name": "우정"}, -{"usage": "city", "name": "운소켓"}, -{"usage": "city", "name": "워너"}, -{"usage": "city", "name": "워렌"}, -{"usage": "city", "name": "워시본"}, -{"usage": "city", "name": "워싱턴"}, -{"usage": "city", "name": "워윅"}, -{"usage": "city", "name": "워즈보로"}, -{"usage": "city", "name": "워터버리"}, -{"usage": "city", "name": "워터보로"}, -{"usage": "city", "name": "워터빌 밸리"}, -{"usage": "city", "name": "워터빌"}, -{"usage": "city", "name": "워터타운"}, -{"usage": "city", "name": "워터포드"}, -{"usage": "city", "name": "월든"}, -{"usage": "city", "name": "월리치"}, -{"usage": "city", "name": "월링포드"}, -{"usage": "city", "name": "월스터"}, -{"usage": "city", "name": "월싱턴"}, -{"usage": "city", "name": "월콧"}, -{"usage": "city", "name": "월프보로"}, -{"usage": "city", "name": "웨더스필드"}, -{"usage": "city", "name": "웨더즈필드"}, -{"usage": "city", "name": "웨스터리"}, -{"usage": "city", "name": "웨스턴"}, -{"usage": "city", "name": "웨스트 가디너"}, -{"usage": "city", "name": "웨스트 그린위치"}, -{"usage": "city", "name": "웨스트 뉴버리"}, -{"usage": "city", "name": "웨스트 럿랜드"}, -{"usage": "city", "name": "웨스트 배스"}, -{"usage": "city", "name": "웨스트 보일스턴"}, -{"usage": "city", "name": "웨스트 브룩필드"}, -{"usage": "city", "name": "웨스트 브릿지워터"}, -{"usage": "city", "name": "웨스트 스톡브릿지"}, -{"usage": "city", "name": "웨스트 스프링필드"}, -{"usage": "city", "name": "웨스트 워윅"}, -{"usage": "city", "name": "웨스트 윈저"}, -{"usage": "city", "name": "웨스트 티스버리"}, -{"usage": "city", "name": "웨스트 패리스"}, -{"usage": "city", "name": "웨스트 페얼리"}, -{"usage": "city", "name": "웨스트 포크스"}, -{"usage": "city", "name": "웨스트 하트포드"}, -{"usage": "city", "name": "웨스트 헤이븐"}, -{"usage": "city", "name": "웨스트맨랜드"}, -{"usage": "city", "name": "웨스트모어"}, -{"usage": "city", "name": "웨스트모어랜드"}, -{"usage": "city", "name": "웨스트민스터"}, -{"usage": "city", "name": "웨스트보로우"}, -{"usage": "city", "name": "웨스트브룩"}, -{"usage": "city", "name": "웨스트우드"}, -{"usage": "city", "name": "웨스트포드"}, -{"usage": "city", "name": "웨스트포트"}, -{"usage": "city", "name": "웨스트필드"}, -{"usage": "city", "name": "웨스트햄프턴"}, -{"usage": "city", "name": "웨슬리"}, -{"usage": "city", "name": "웨아츠필드"}, -{"usage": "city", "name": "웨어"}, -{"usage": "city", "name": "웨어햄"}, -{"usage": "city", "name": "웨이드"}, -{"usage": "city", "name": "웨이랜드"}, -{"usage": "city", "name": "웨이머스"}, -{"usage": "city", "name": "웨이브릿지"}, -{"usage": "city", "name": "웨이크필드"}, -{"usage": "city", "name": "웨이트"}, -{"usage": "city", "name": "웨이틀리"}, -{"usage": "city", "name": "웨인"}, -{"usage": "city", "name": "웨일즈"}, -{"usage": "city", "name": "웬델"}, -{"usage": "city", "name": "웬트워스"}, -{"usage": "city", "name": "웬헴"}, -{"usage": "city", "name": "웰드"}, -{"usage": "city", "name": "웰링턴"}, -{"usage": "city", "name": "웰스"}, -{"usage": "city", "name": "웰즐리"}, -{"usage": "city", "name": "웰플릿"}, -{"usage": "city", "name": "웹스터 플랜테이션"}, -{"usage": "city", "name": "웹스터"}, -{"usage": "city", "name": "위누스키"}, -{"usage": "city", "name": "위스카셋"}, -{"usage": "city", "name": "위어"}, -{"usage": "city", "name": "위트니빌"}, -{"usage": "city", "name": "윈"}, -{"usage": "city", "name": "윈뎀"}, -{"usage": "city", "name": "윈스롭"}, -{"usage": "city", "name": "윈슬로우"}, -{"usage": "city", "name": "윈저 락스"}, -{"usage": "city", "name": "윈저"}, -{"usage": "city", "name": "윈체스터"}, -{"usage": "city", "name": "윈첸던"}, -{"usage": "city", "name": "윈터 하버"}, -{"usage": "city", "name": "윈터빌 플랜테이션"}, -{"usage": "city", "name": "윈터포트"}, -{"usage": "city", "name": "윈홀"}, -{"usage": "city", "name": "윌락"}, -{"usage": "city", "name": "윌리만틱"}, -{"usage": "city", "name": "윌리스턴"}, -{"usage": "city", "name": "윌리암스버그"}, -{"usage": "city", "name": "윌리암스타운"}, -{"usage": "city", "name": "윌링턴"}, -{"usage": "city", "name": "윌멋"}, -{"usage": "city", "name": "윌밍턴"}, -{"usage": "city", "name": "윌브라함"}, -{"usage": "city", "name": "윌턴"}, -{"usage": "city", "name": "유니온"}, -{"usage": "city", "name": "유니티"}, -{"usage": "city", "name": "유스티스"}, -{"usage": "city", "name": "이글 레이크"}, -{"usage": "city", "name": "이라"}, -{"usage": "city", "name": "이라스버그"}, -{"usage": "city", "name": "이스턴"}, -{"usage": "city", "name": "이스트 그랜비"}, -{"usage": "city", "name": "이스트 그린위치"}, -{"usage": "city", "name": "이스트 라임"}, -{"usage": "city", "name": "이스트 롱메도우"}, -{"usage": "city", "name": "이스트 마키어즈"}, -{"usage": "city", "name": "이스트 몬트필리어"}, -{"usage": "city", "name": "이스트 밀리노켓"}, -{"usage": "city", "name": "이스트 브룩필드"}, -{"usage": "city", "name": "이스트 브리지워터"}, -{"usage": "city", "name": "이스트 윈저"}, -{"usage": "city", "name": "이스트 킹스턴"}, -{"usage": "city", "name": "이스트 프로비던스"}, -{"usage": "city", "name": "이스트 하트포드"}, -{"usage": "city", "name": "이스트 해덤"}, -{"usage": "city", "name": "이스트 해븐"}, -{"usage": "city", "name": "이스트 햄프턴"}, -{"usage": "city", "name": "이스트브룩"}, -{"usage": "city", "name": "이스트포드"}, -{"usage": "city", "name": "이스트포트"}, -{"usage": "city", "name": "이스트햄"}, -{"usage": "city", "name": "이스트햄프턴"}, -{"usage": "city", "name": "이튼"}, -{"usage": "city", "name": "인더스트리"}, -{"usage": "city", "name": "입스위치"}, -{"usage": "city", "name": "자메이카"}, -{"usage": "city", "name": "자유"}, -{"usage": "city", "name": "잭맨"}, -{"usage": "city", "name": "잭슨"}, -{"usage": "city", "name": "제리코"}, -{"usage": "city", "name": "제이"}, -{"usage": "city", "name": "제임스타운"}, -{"usage": "city", "name": "제퍼슨"}, -{"usage": "city", "name": "제프리"}, -{"usage": "city", "name": "조지아"}, -{"usage": "city", "name": "조지타운"}, -{"usage": "city", "name": "존스보로"}, -{"usage": "city", "name": "존스턴"}, -{"usage": "city", "name": "존스포트"}, -{"usage": "city", "name": "존슨"}, -{"usage": "city", "name": "차이나"}, -{"usage": "city", "name": "찰레몬트"}, -{"usage": "city", "name": "찰레스턴"}, -{"usage": "city", "name": "찰리스타운"}, -{"usage": "city", "name": "찰턴"}, -{"usage": "city", "name": "채텀"}, -{"usage": "city", "name": "채플린"}, -{"usage": "city", "name": "챕맨"}, -{"usage": "city", "name": "체리필드"}, -{"usage": "city", "name": "체셔"}, -{"usage": "city", "name": "체스터"}, -{"usage": "city", "name": "체스터빌"}, -{"usage": "city", "name": "체스터필드"}, -{"usage": "city", "name": "첼시"}, -{"usage": "city", "name": "쳄스포드"}, -{"usage": "city", "name": "치체스터"}, -{"usage": "city", "name": "치코피"}, -{"usage": "city", "name": "치텐던"}, -{"usage": "city", "name": "칠마크"}, -{"usage": "city", "name": "카라바셋 벨리"}, -{"usage": "city", "name": "카라텅크"}, -{"usage": "city", "name": "카르타고"}, -{"usage": "city", "name": "카리 플랜테이션"}, -{"usage": "city", "name": "카리부"}, -{"usage": "city", "name": "카멜"}, -{"usage": "city", "name": "카버"}, -{"usage": "city", "name": "카봇"}, -{"usage": "city", "name": "카스웰"}, -{"usage": "city", "name": "카스코"}, -{"usage": "city", "name": "칸디아"}, -{"usage": "city", "name": "칼라일"}, -{"usage": "city", "name": "칼레"}, -{"usage": "city", "name": "캄덴"}, -{"usage": "city", "name": "캄프튼"}, -{"usage": "city", "name": "캅린 플랜테이션Coplin Plantation"}, -{"usage": "city", "name": "캐롤 플랜테이션"}, -{"usage": "city", "name": "캐롤"}, -{"usage": "city", "name": "캐스틴"}, -{"usage": "city", "name": "캐슬 힐"}, -{"usage": "city", "name": "캐슬턴"}, -{"usage": "city", "name": "캐이넌"}, -{"usage": "city", "name": "캔톤"}, -{"usage": "city", "name": "캠브리지"}, -{"usage": "city", "name": "커밍턴"}, -{"usage": "city", "name": "커비"}, -{"usage": "city", "name": "커싱"}, -{"usage": "city", "name": "커틀러"}, -{"usage": "city", "name": "컬럼비아 폴스"}, -{"usage": "city", "name": "컬럼비아"}, -{"usage": "city", "name": "컴벌 랜드"}, -{"usage": "city", "name": "케네벙크"}, -{"usage": "city", "name": "케네벙크포트"}, -{"usage": "city", "name": "케이프 엘리자베스"}, -{"usage": "city", "name": "켄덕스키그"}, -{"usage": "city", "name": "켄싱턴"}, -{"usage": "city", "name": "켄터베리"}, -{"usage": "city", "name": "켄트"}, -{"usage": "city", "name": "코너"}, -{"usage": "city", "name": "코니쉬"}, -{"usage": "city", "name": "코디빌 플랜테이션"}, -{"usage": "city", "name": "코리나"}, -{"usage": "city", "name": "코린스"}, -{"usage": "city", "name": "코벤트리"}, -{"usage": "city", "name": "코하셋"}, -{"usage": "city", "name": "콘빌"}, -{"usage": "city", "name": "콘월"}, -{"usage": "city", "name": "콘웨이"}, -{"usage": "city", "name": "콜레인"}, -{"usage": "city", "name": "콜브룩"}, -{"usage": "city", "name": "콜체스터"}, -{"usage": "city", "name": "콩코드"}, -{"usage": "city", "name": "쿠퍼"}, -{"usage": "city", "name": "퀸시"}, -{"usage": "city", "name": "크라우포드"}, -{"usage": "city", "name": "크레프트스베리"}, -{"usage": "city", "name": "크렌베리 아이리쉬"}, -{"usage": "city", "name": "크렌스턴"}, -{"usage": "city", "name": "크로이던"}, -{"usage": "city", "name": "크롬웰"}, -{"usage": "city", "name": "크리스탈"}, -{"usage": "city", "name": "클라렌든"}, -{"usage": "city", "name": "클락스버그"}, -{"usage": "city", "name": "클락스빌"}, -{"usage": "city", "name": "클레어몬트"}, -{"usage": "city", "name": "클리프턴"}, -{"usage": "city", "name": "클린턴"}, -{"usage": "city", "name": "키터리"}, -{"usage": "city", "name": "킨"}, -{"usage": "city", "name": "킬링리"}, -{"usage": "city", "name": "킬링워스"}, -{"usage": "city", "name": "킬링턴"}, -{"usage": "city", "name": "킹맨"}, -{"usage": "city", "name": "킹스버리 플랜테이션"}, -{"usage": "city", "name": "킹스턴"}, -{"usage": "city", "name": "킹필드"}, -{"usage": "city", "name": "타우튼"}, -{"usage": "city", "name": "타운샌드"}, -{"usage": "city", "name": "타운스핸드"}, -{"usage": "city", "name": "타이링헴"}, -{"usage": "city", "name": "탈마지"}, -{"usage": "city", "name": "탐워스"}, -{"usage": "city", "name": "탑스필드"}, -{"usage": "city", "name": "탑스햄"}, -{"usage": "city", "name": "터너"}, -{"usage": "city", "name": "터프튼보로"}, -{"usage": "city", "name": "턱스베리"}, -{"usage": "city", "name": "턴브릿지"}, -{"usage": "city", "name": "템플"}, -{"usage": "city", "name": "템플턴"}, -{"usage": "city", "name": "텟포드"}, -{"usage": "city", "name": "토링턴"}, -{"usage": "city", "name": "토마스톤"}, -{"usage": "city", "name": "톨랜드"}, -{"usage": "city", "name": "톰슨"}, -{"usage": "city", "name": "트럼벨"}, -{"usage": "city", "name": "트레몬트"}, -{"usage": "city", "name": "트레스콧"}, -{"usage": "city", "name": "트렌턴"}, -{"usage": "city", "name": "트로이"}, -{"usage": "city", "name": "트루로"}, -{"usage": "city", "name": "티버튼"}, -{"usage": "city", "name": "티즈버리"}, -{"usage": "city", "name": "틴마우스"}, -{"usage": "city", "name": "틸턴"}, -{"usage": "city", "name": "팅스버러"}, -{"usage": "city", "name": "파리"}, -{"usage": "city", "name": "파밍데일"}, -{"usage": "city", "name": "파밍튼"}, -{"usage": "city", "name": "파사덤키"}, -{"usage": "city", "name": "파슨스필드"}, -{"usage": "city", "name": "파이에트"}, -{"usage": "city", "name": "파크맨"}, -{"usage": "city", "name": "판톤"}, -{"usage": "city", "name": "팔레르모"}, -{"usage": "city", "name": "팔마이라"}, -{"usage": "city", "name": "팔머"}, -{"usage": "city", "name": "패튼"}, -{"usage": "city", "name": "팩스턴"}, -{"usage": "city", "name": "팰머스"}, -{"usage": "city", "name": "팸브로크"}, -{"usage": "city", "name": "퍼널"}, -{"usage": "city", "name": "퍼킨스"}, -{"usage": "city", "name": "퍼터킷"}, -{"usage": "city", "name": "퍼햄"}, -{"usage": "city", "name": "페놉스콧"}, -{"usage": "city", "name": "페루"}, -{"usage": "city", "name": "페리"}, -{"usage": "city", "name": "페리스버그"}, -{"usage": "city", "name": "페어 해븐"}, -{"usage": "city", "name": "페어리"}, -{"usage": "city", "name": "페어팩스"}, -{"usage": "city", "name": "페어필드"}, -{"usage": "city", "name": "페어해븐"}, -{"usage": "city", "name": "페이스턴"}, -{"usage": "city", "name": "페퍼렐"}, -{"usage": "city", "name": "펠햄"}, -{"usage": "city", "name": "포레스트 시티"}, -{"usage": "city", "name": "포를릿"}, -{"usage": "city", "name": "포머 타운즈:"}, -{"usage": "city", "name": "포스터"}, -{"usage": "city", "name": "포츠머스"}, -{"usage": "city", "name": "포크"}, -{"usage": "city", "name": "포터"}, -{"usage": "city", "name": "포테지 레이크"}, -{"usage": "city", "name": "포트 켄트"}, -{"usage": "city", "name": "포트 페어필드"}, -{"usage": "city", "name": "포틀랜드"}, -{"usage": "city", "name": "폭스버러"}, -{"usage": "city", "name": "폴 리버"}, -{"usage": "city", "name": "폴란드"}, -{"usage": "city", "name": "폴트니"}, -{"usage": "city", "name": "폼프렛"}, -{"usage": "city", "name": "풋남"}, -{"usage": "city", "name": "풋니"}, -{"usage": "city", "name": "프라이 아일랜드"}, -{"usage": "city", "name": "프라이버그"}, -{"usage": "city", "name": "프랑코니아"}, -{"usage": "city", "name": "프랜시스타운"}, -{"usage": "city", "name": "프랭크포트"}, -{"usage": "city", "name": "프랭클린"}, -{"usage": "city", "name": "프레스콧"}, -{"usage": "city", "name": "프레스크 아일"}, -{"usage": "city", "name": "프레스턴"}, -{"usage": "city", "name": "프레이밍햄"}, -{"usage": "city", "name": "프렌치버로"}, -{"usage": "city", "name": "프렌치빌"}, -{"usage": "city", "name": "프렌티스"}, -{"usage": "city", "name": "프로비던스"}, -{"usage": "city", "name": "프로빈스타운"}, -{"usage": "city", "name": "프로스펙트"}, -{"usage": "city", "name": "프록터"}, -{"usage": "city", "name": "프리덤"}, -{"usage": "city", "name": "프리먼"}, -{"usage": "city", "name": "프리몬트"}, -{"usage": "city", "name": "프리타운"}, -{"usage": "city", "name": "프리포트"}, -{"usage": "city", "name": "프린스턴"}, -{"usage": "city", "name": "플레이스토우"}, -{"usage": "city", "name": "플레인빌"}, -{"usage": "city", "name": "플레인필드"}, -{"usage": "city", "name": "플레쳐"}, -{"usage": "city", "name": "플로리다"}, -{"usage": "city", "name": "플리머스"}, -{"usage": "city", "name": "플리전트 릿지 플렌테이션"}, -{"usage": "city", "name": "플림턴"}, -{"usage": "city", "name": "피바디"}, -{"usage": "city", "name": "피에르몬트"}, -{"usage": "city", "name": "피챔"}, -{"usage": "city", "name": "피츠윌리엄"}, -{"usage": "city", "name": "피치버그"}, -{"usage": "city", "name": "피터보로"}, -{"usage": "city", "name": "피터샘"}, -{"usage": "city", "name": "필립"}, -{"usage": "city", "name": "필립스턴"}, -{"usage": "city", "name": "핍스버그"}, -{"usage": "city", "name": "핏츠버그"}, -{"usage": "city", "name": "핏츠턴"}, -{"usage": "city", "name": "핏츠포드"}, -{"usage": "city", "name": "핏츠필드"}, -{"usage": "city", "name": "하노버"}, -{"usage": "city", "name": "하드윅"}, -{"usage": "city", "name": "하모니"}, -{"usage": "city", "name": "하버드"}, -{"usage": "city", "name": "하버드스턴"}, -{"usage": "city", "name": "하버드턴"}, -{"usage": "city", "name": "하울랜드"}, -{"usage": "city", "name": "하위치"}, -{"usage": "city", "name": "하윈턴"}, -{"usage": "city", "name": "하이게이트"}, -{"usage": "city", "name": "하이드 공원"}, -{"usage": "city", "name": "하이랜드 대농장"}, -{"usage": "city", "name": "하이럼"}, -{"usage": "city", "name": "하인즈버그"}, -{"usage": "city", "name": "하츠 로케이션"}, -{"usage": "city", "name": "하트랜드"}, -{"usage": "city", "name": "하트포드"}, -{"usage": "city", "name": "하프스웰"}, -{"usage": "city", "name": "할로웰"}, -{"usage": "city", "name": "할리팩스"}, -{"usage": "city", "name": "해덤"}, -{"usage": "city", "name": "해들리"}, -{"usage": "city", "name": "해리스빌"}, -{"usage": "city", "name": "해리슨"}, -{"usage": "city", "name": "해링턴"}, -{"usage": "city", "name": "해몬드"}, -{"usage": "city", "name": "해밀턴"}, -{"usage": "city", "name": "해이버힐"}, -{"usage": "city", "name": "해트필드"}, -{"usage": "city", "name": "핸슨"}, -{"usage": "city", "name": "핸콕"}, -{"usage": "city", "name": "햄덴"}, -{"usage": "city", "name": "햄린"}, -{"usage": "city", "name": "햄스테드"}, -{"usage": "city", "name": "햄프덴"}, -{"usage": "city", "name": "햄프턴 폴스"}, -{"usage": "city", "name": "햄프턴"}, -{"usage": "city", "name": "허드슨"}, -{"usage": "city", "name": "허리케인 섬"}, -{"usage": "city", "name": "허먼"}, -{"usage": "city", "name": "허시"}, -{"usage": "city", "name": "허지든"}, -{"usage": "city", "name": "헌팅턴"}, -{"usage": "city", "name": "헤브론"}, -{"usage": "city", "name": "헤인즈빌"}, -{"usage": "city", "name": "헨니커"}, -{"usage": "city", "name": "호프"}, -{"usage": "city", "name": "호프데일"}, -{"usage": "city", "name": "홀더니스"}, -{"usage": "city", "name": "홀덴"}, -{"usage": "city", "name": "홀랜드"}, -{"usage": "city", "name": "홀리"}, -{"usage": "city", "name": "홀리스"}, -{"usage": "city", "name": "홀리스턴"}, -{"usage": "city", "name": "홀리요크"}, -{"usage": "city", "name": "홀브룩"}, -{"usage": "city", "name": "홉킨턴"}, -{"usage": "city", "name": "화이트필드"}, -{"usage": "city", "name": "후크세트"}, -{"usage": "city", "name": "훌"}, -{"usage": "city", "name": "훌턴"}, -{"usage": "city", "name": "휘트먼"}, -{"usage": "city", "name": "히스"}, -{"usage": "city", "name": "힌스데일"}, -{"usage": "city", "name": "힐"}, -{"usage": "city", "name": "힐스버러"}, -{"usage": "city", "name": "힝햄"}, -{"usage": "family", "gender": "unisex", "name": "가르시아"}, -{"usage": "family", "gender": "unisex", "name": "곤잘레스"}, -{"usage": "family", "gender": "unisex", "name": "곤잘레스"}, -{"usage": "family", "gender": "unisex", "name": "그레이"}, -{"usage": "family", "gender": "unisex", "name": "그리핀"}, -{"usage": "family", "gender": "unisex", "name": "그린"}, -{"usage": "family", "gender": "unisex", "name": "나키야"}, -{"usage": "family", "gender": "unisex", "name": "넬손"}, -{"usage": "family", "gender": "unisex", "name": "데이비스"}, -{"usage": "family", "gender": "unisex", "name": "디아즈"}, -{"usage": "family", "gender": "unisex", "name": "라미레즈"}, -{"usage": "family", "gender": "unisex", "name": "라이트"}, -{"usage": "family", "gender": "unisex", "name": "러쎌"}, -{"usage": "family", "gender": "unisex", "name": "레위스"}, -{"usage": "family", "gender": "unisex", "name": "로거스"}, -{"usage": "family", "gender": "unisex", "name": "로드리게즈"}, -{"usage": "family", "gender": "unisex", "name": "로버트즈"}, -{"usage": "family", "gender": "unisex", "name": "로빈슨"}, -{"usage": "family", "gender": "unisex", "name": "로스"}, -{"usage": "family", "gender": "unisex", "name": "로페즈"}, -{"usage": "family", "gender": "unisex", "name": "롱"}, -{"usage": "family", "gender": "unisex", "name": "리"}, -{"usage": "family", "gender": "unisex", "name": "리드"}, -{"usage": "family", "gender": "unisex", "name": "리버라"}, -{"usage": "family", "gender": "unisex", "name": "리차드손"}, -{"usage": "family", "gender": "unisex", "name": "마틴"}, -{"usage": "family", "gender": "unisex", "name": "마틴즈"}, -{"usage": "family", "gender": "unisex", "name": "머피"}, -{"usage": "family", "gender": "unisex", "name": "모건"}, -{"usage": "family", "gender": "unisex", "name": "모리스"}, -{"usage": "family", "gender": "unisex", "name": "무어"}, -{"usage": "family", "gender": "unisex", "name": "미췔"}, -{"usage": "family", "gender": "unisex", "name": "밀러"}, -{"usage": "family", "gender": "unisex", "name": "반 와일드"}, -{"usage": "family", "gender": "unisex", "name": "반즈"}, -{"usage": "family", "gender": "unisex", "name": "버틀러"}, -{"usage": "family", "gender": "unisex", "name": "베넷"}, -{"usage": "family", "gender": "unisex", "name": "베이커"}, -{"usage": "family", "gender": "unisex", "name": "베일리"}, -{"usage": "family", "gender": "unisex", "name": "벨"}, -{"usage": "family", "gender": "unisex", "name": "브라운"}, -{"usage": "family", "gender": "unisex", "name": "브라이언트"}, -{"usage": "family", "gender": "unisex", "name": "브룩스"}, -{"usage": "family", "gender": "unisex", "name": "산체스"}, -{"usage": "family", "gender": "unisex", "name": "센더스"}, -{"usage": "family", "gender": "unisex", "name": "스미스"}, -{"usage": "family", "gender": "unisex", "name": "스캇"}, -{"usage": "family", "gender": "unisex", "name": "스튜아트"}, -{"usage": "family", "gender": "unisex", "name": "시몬스"}, -{"usage": "family", "gender": "unisex", "name": "아담스"}, -{"usage": "family", "gender": "unisex", "name": "알렉산더"}, -{"usage": "family", "gender": "unisex", "name": "알렌"}, -{"usage": "family", "gender": "unisex", "name": "앤더슨"}, -{"usage": "family", "gender": "unisex", "name": "에드워드"}, -{"usage": "family", "gender": "unisex", "name": "에반스"}, -{"usage": "family", "gender": "unisex", "name": "영"}, -{"usage": "family", "gender": "unisex", "name": "왓슨"}, -{"usage": "family", "gender": "unisex", "name": "우드"}, -{"usage": "family", "gender": "unisex", "name": "워드"}, -{"usage": "family", "gender": "unisex", "name": "워싱턴"}, -{"usage": "family", "gender": "unisex", "name": "워커"}, -{"usage": "family", "gender": "unisex", "name": "웨스트"}, -{"usage": "family", "gender": "unisex", "name": "윌리엄스"}, -{"usage": "family", "gender": "unisex", "name": "윌슨"}, -{"usage": "family", "gender": "unisex", "name": "잭슨"}, -{"usage": "family", "gender": "unisex", "name": "제임스"}, -{"usage": "family", "gender": "unisex", "name": "젠킨슨"}, -{"usage": "family", "gender": "unisex", "name": "존스"}, -{"usage": "family", "gender": "unisex", "name": "존슨"}, -{"usage": "family", "gender": "unisex", "name": "카이코"}, -{"usage": "family", "gender": "unisex", "name": "카터"}, -{"usage": "family", "gender": "unisex", "name": "켈리"}, -{"usage": "family", "gender": "unisex", "name": "켐벨"}, -{"usage": "family", "gender": "unisex", "name": "콕스"}, -{"usage": "family", "gender": "unisex", "name": "콜린"}, -{"usage": "family", "gender": "unisex", "name": "콜맨"}, -{"usage": "family", "gender": "unisex", "name": "쿠퍼"}, -{"usage": "family", "gender": "unisex", "name": "쿡"}, -{"usage": "family", "gender": "unisex", "name": "클라크"}, -{"usage": "family", "gender": "unisex", "name": "킹"}, -{"usage": "family", "gender": "unisex", "name": "타일러"}, -{"usage": "family", "gender": "unisex", "name": "터너"}, -{"usage": "family", "gender": "unisex", "name": "토레스"}, -{"usage": "family", "gender": "unisex", "name": "토마스"}, -{"usage": "family", "gender": "unisex", "name": "톰슨"}, -{"usage": "family", "gender": "unisex", "name": "파커"}, -{"usage": "family", "gender": "unisex", "name": "페레즈"}, -{"usage": "family", "gender": "unisex", "name": "페리"}, -{"usage": "family", "gender": "unisex", "name": "페터슨"}, -{"usage": "family", "gender": "unisex", "name": "포스터"}, -{"usage": "family", "gender": "unisex", "name": "포웰"}, -{"usage": "family", "gender": "unisex", "name": "프라이스"}, -{"usage": "family", "gender": "unisex", "name": "플로레스"}, -{"usage": "family", "gender": "unisex", "name": "피터슨"}, -{"usage": "family", "gender": "unisex", "name": "필립"}, -{"usage": "family", "gender": "unisex", "name": "하워드"}, -{"usage": "family", "gender": "unisex", "name": "해리스"}, -{"usage": "family", "gender": "unisex", "name": "헤르난데스"}, -{"usage": "family", "gender": "unisex", "name": "헤이즈"}, -{"usage": "family", "gender": "unisex", "name": "헨더슨"}, -{"usage": "family", "gender": "unisex", "name": "홀"}, -{"usage": "family", "gender": "unisex", "name": "화이트"}, -{"usage": "family", "gender": "unisex", "name": "휴즈"}, -{"usage": "family", "gender": "unisex", "name": "힐"}, -{"usage": "given", "gender": "female", "name": "가브리엘"}, -{"usage": "given", "gender": "female", "name": "가브리엘라"}, -{"usage": "given", "gender": "female", "name": "그레이스"}, -{"usage": "given", "gender": "female", "name": "그레이시"}, -{"usage": "given", "gender": "female", "name": "나스키"}, -{"usage": "given", "gender": "female", "name": "나탈리"}, -{"usage": "given", "gender": "female", "name": "누쿠"}, -{"usage": "given", "gender": "female", "name": "니베"}, -{"usage": "given", "gender": "female", "name": "데스티니"}, -{"usage": "given", "gender": "female", "name": "라일리"}, -{"usage": "given", "gender": "female", "name": "라췔"}, -{"usage": "given", "gender": "female", "name": "레아"}, -{"usage": "given", "gender": "female", "name": "레일라"}, -{"usage": "given", "gender": "female", "name": "로렌"}, -{"usage": "given", "gender": "female", "name": "릴리"}, -{"usage": "given", "gender": "female", "name": "릴리언"}, -{"usage": "given", "gender": "female", "name": "마리"}, -{"usage": "given", "gender": "female", "name": "마리아"}, -{"usage": "given", "gender": "female", "name": "마리아"}, -{"usage": "given", "gender": "female", "name": "마야"}, -{"usage": "given", "gender": "female", "name": "마켈라"}, -{"usage": "given", "gender": "female", "name": "맬라니"}, -{"usage": "given", "gender": "female", "name": "메건"}, -{"usage": "given", "gender": "female", "name": "메델린"}, -{"usage": "given", "gender": "female", "name": "메들린"}, -{"usage": "given", "gender": "female", "name": "메디슨"}, -{"usage": "given", "gender": "female", "name": "모건"}, -{"usage": "given", "gender": "female", "name": "미아"}, -{"usage": "given", "gender": "female", "name": "바네사"}, -{"usage": "given", "gender": "female", "name": "발레리아"}, -{"usage": "given", "gender": "female", "name": "베일리"}, -{"usage": "given", "gender": "female", "name": "브룩"}, -{"usage": "given", "gender": "female", "name": "브룩클린"}, -{"usage": "given", "gender": "female", "name": "브리아나"}, -{"usage": "given", "gender": "female", "name": "빅토리아"}, -{"usage": "given", "gender": "female", "name": "사라"}, -{"usage": "given", "gender": "female", "name": "사라"}, -{"usage": "given", "gender": "female", "name": "사만타"}, -{"usage": "given", "gender": "female", "name": "사바나"}, -{"usage": "given", "gender": "female", "name": "샬롯"}, -{"usage": "given", "gender": "female", "name": "소피"}, -{"usage": "given", "gender": "female", "name": "소피아"}, -{"usage": "given", "gender": "female", "name": "시드니"}, -{"usage": "given", "gender": "female", "name": "아나"}, -{"usage": "given", "gender": "female", "name": "아리아나"}, -{"usage": "given", "gender": "female", "name": "아리안나"}, -{"usage": "given", "gender": "female", "name": "아멜리아"}, -{"usage": "given", "gender": "female", "name": "아베리"}, -{"usage": "given", "gender": "female", "name": "아비게일"}, -{"usage": "given", "gender": "female", "name": "아이자와"}, -{"usage": "given", "gender": "female", "name": "아키코"}, -{"usage": "given", "gender": "female", "name": "안드레아"}, -{"usage": "given", "gender": "female", "name": "안젤리나"}, -{"usage": "given", "gender": "female", "name": "알렉사"}, -{"usage": "given", "gender": "female", "name": "알렉산드라"}, -{"usage": "given", "gender": "female", "name": "알렉시아"}, -{"usage": "given", "gender": "female", "name": "알리사"}, -{"usage": "given", "gender": "female", "name": "알리야"}, -{"usage": "given", "gender": "female", "name": "애쉴리"}, -{"usage": "given", "gender": "female", "name": "어텀"}, -{"usage": "given", "gender": "female", "name": "에디슨"}, -{"usage": "given", "gender": "female", "name": "에밀리"}, -{"usage": "given", "gender": "female", "name": "에바"}, -{"usage": "given", "gender": "female", "name": "에블린"}, -{"usage": "given", "gender": "female", "name": "엘라"}, -{"usage": "given", "gender": "female", "name": "엘리슨"}, -{"usage": "given", "gender": "female", "name": "엘리자베스"}, -{"usage": "given", "gender": "female", "name": "엠마"}, -{"usage": "given", "gender": "female", "name": "오드리"}, -{"usage": "given", "gender": "female", "name": "오브리"}, -{"usage": "given", "gender": "female", "name": "올리비아"}, -{"usage": "given", "gender": "female", "name": "유키"}, -{"usage": "given", "gender": "female", "name": "이사벨"}, -{"usage": "given", "gender": "female", "name": "이사벨"}, -{"usage": "given", "gender": "female", "name": "이사벨라"}, -{"usage": "given", "gender": "female", "name": "재스민"}, -{"usage": "given", "gender": "female", "name": "제니퍼"}, -{"usage": "given", "gender": "female", "name": "제시"}, -{"usage": "given", "gender": "female", "name": "제시카"}, -{"usage": "given", "gender": "female", "name": "젠"}, -{"usage": "given", "gender": "female", "name": "조셀린"}, -{"usage": "given", "gender": "female", "name": "조이"}, -{"usage": "given", "gender": "female", "name": "조이"}, -{"usage": "given", "gender": "female", "name": "줄리아"}, -{"usage": "given", "gender": "female", "name": "지노시스"}, -{"usage": "given", "gender": "female", "name": "지안나"}, -{"usage": "given", "gender": "female", "name": "카밀라"}, -{"usage": "given", "gender": "female", "name": "카일리"}, -{"usage": "given", "gender": "female", "name": "카텔린"}, -{"usage": "given", "gender": "female", "name": "캐롤라인"}, -{"usage": "given", "gender": "female", "name": "케이틀린"}, -{"usage": "given", "gender": "female", "name": "케일라"}, -{"usage": "given", "gender": "female", "name": "케일리"}, -{"usage": "given", "gender": "female", "name": "케티"}, -{"usage": "given", "gender": "female", "name": "클레어"}, -{"usage": "given", "gender": "female", "name": "클로에"}, -{"usage": "given", "gender": "female", "name": "킬벌리"}, -{"usage": "given", "gender": "female", "name": "킴"}, -{"usage": "given", "gender": "female", "name": "트리니티"}, -{"usage": "given", "gender": "female", "name": "페이지"}, -{"usage": "given", "gender": "female", "name": "페이턴"}, -{"usage": "given", "gender": "female", "name": "페이트"}, -{"usage": "given", "gender": "female", "name": "헤나"}, -{"usage": "given", "gender": "female", "name": "헤더"}, -{"usage": "given", "gender": "female", "name": "헤일리"}, -{"usage": "given", "gender": "female", "name": "히카리"}, -{"usage": "given", "gender": "male", "name": "가브리엘"}, -{"usage": "given", "gender": "male", "name": "개빈"}, -{"usage": "given", "gender": "male", "name": "겐도"}, -{"usage": "given", "gender": "male", "name": "교수키"}, -{"usage": "given", "gender": "male", "name": "나다니엘"}, -{"usage": "given", "gender": "male", "name": "나단"}, -{"usage": "given", "gender": "male", "name": "노아"}, -{"usage": "given", "gender": "male", "name": "니콜라스"}, -{"usage": "given", "gender": "male", "name": "다니엘"}, -{"usage": "given", "gender": "male", "name": "다이스키"}, -{"usage": "given", "gender": "male", "name": "데이비드"}, -{"usage": "given", "gender": "male", "name": "도미닉"}, -{"usage": "given", "gender": "male", "name": "디에고"}, -{"usage": "given", "gender": "male", "name": "딜런"}, -{"usage": "given", "gender": "male", "name": "란"}, -{"usage": "given", "gender": "male", "name": "랸"}, -{"usage": "given", "gender": "male", "name": "렌던"}, -{"usage": "given", "gender": "male", "name": "로겐"}, -{"usage": "given", "gender": "male", "name": "로버트"}, -{"usage": "given", "gender": "male", "name": "루이스"}, -{"usage": "given", "gender": "male", "name": "루카스"}, -{"usage": "given", "gender": "male", "name": "류크"}, -{"usage": "given", "gender": "male", "name": "리엠"}, -{"usage": "given", "gender": "male", "name": "마손"}, -{"usage": "given", "gender": "male", "name": "마이클"}, -{"usage": "given", "gender": "male", "name": "매튜"}, -{"usage": "given", "gender": "male", "name": "벤자민"}, -{"usage": "given", "gender": "male", "name": "브라이언"}, -{"usage": "given", "gender": "male", "name": "브라이언"}, -{"usage": "given", "gender": "male", "name": "브레디"}, -{"usage": "given", "gender": "male", "name": "브레이든"}, -{"usage": "given", "gender": "male", "name": "브렌든"}, -{"usage": "given", "gender": "male", "name": "브로디"}, -{"usage": "given", "gender": "male", "name": "블레이크"}, -{"usage": "given", "gender": "male", "name": "사바스티안"}, -{"usage": "given", "gender": "male", "name": "션"}, -{"usage": "given", "gender": "male", "name": "싸무엘"}, -{"usage": "given", "gender": "male", "name": "아담"}, -{"usage": "given", "gender": "male", "name": "아론"}, -{"usage": "given", "gender": "male", "name": "아이단"}, -{"usage": "given", "gender": "male", "name": "아이덴"}, -{"usage": "given", "gender": "male", "name": "아이작"}, -{"usage": "given", "gender": "male", "name": "알렉산더"}, -{"usage": "given", "gender": "male", "name": "알렉스"}, -{"usage": "given", "gender": "male", "name": "앤드류"}, -{"usage": "given", "gender": "male", "name": "앤소니"}, -{"usage": "given", "gender": "male", "name": "에단"}, -{"usage": "given", "gender": "male", "name": "에릭"}, -{"usage": "given", "gender": "male", "name": "에반"}, -{"usage": "given", "gender": "male", "name": "에번"}, -{"usage": "given", "gender": "male", "name": "에이드리안"}, -{"usage": "given", "gender": "male", "name": "에이든"}, -{"usage": "given", "gender": "male", "name": "엔젤"}, -{"usage": "given", "gender": "male", "name": "엘리"}, -{"usage": "given", "gender": "male", "name": "오스틴"}, -{"usage": "given", "gender": "male", "name": "오웬"}, -{"usage": "given", "gender": "male", "name": "와이어트"}, -{"usage": "given", "gender": "male", "name": "윌리엄"}, -{"usage": "given", "gender": "male", "name": "이사야"}, -{"usage": "given", "gender": "male", "name": "일라이자"}, -{"usage": "given", "gender": "male", "name": "자비엘"}, -{"usage": "given", "gender": "male", "name": "재커리"}, -{"usage": "given", "gender": "male", "name": "잭"}, -{"usage": "given", "gender": "male", "name": "잭슨"}, -{"usage": "given", "gender": "male", "name": "저스틴"}, -{"usage": "given", "gender": "male", "name": "제레미"}, -{"usage": "given", "gender": "male", "name": "제이든"}, -{"usage": "given", "gender": "male", "name": "제이든"}, -{"usage": "given", "gender": "male", "name": "제이슨"}, -{"usage": "given", "gender": "male", "name": "제이콥"}, -{"usage": "given", "gender": "male", "name": "제임스"}, -{"usage": "given", "gender": "male", "name": "조나단"}, -{"usage": "given", "gender": "male", "name": "조단"}, -{"usage": "given", "gender": "male", "name": "조셉"}, -{"usage": "given", "gender": "male", "name": "조슈아"}, -{"usage": "given", "gender": "male", "name": "조시"}, -{"usage": "given", "gender": "male", "name": "조시어"}, -{"usage": "given", "gender": "male", "name": "존"}, -{"usage": "given", "gender": "male", "name": "줄리안"}, -{"usage": "given", "gender": "male", "name": "지져스"}, -{"usage": "given", "gender": "male", "name": "찰스"}, -{"usage": "given", "gender": "male", "name": "체이스"}, -{"usage": "given", "gender": "male", "name": "카덴"}, -{"usage": "given", "gender": "male", "name": "카를로스"}, -{"usage": "given", "gender": "male", "name": "카메론"}, -{"usage": "given", "gender": "male", "name": "카슨"}, -{"usage": "given", "gender": "male", "name": "카일"}, -{"usage": "given", "gender": "male", "name": "카터"}, -{"usage": "given", "gender": "male", "name": "칼렙"}, -{"usage": "given", "gender": "male", "name": "케빈"}, -{"usage": "given", "gender": "male", "name": "케이든"}, -{"usage": "given", "gender": "male", "name": "케이타"}, -{"usage": "given", "gender": "male", "name": "코너"}, -{"usage": "given", "gender": "male", "name": "콜"}, -{"usage": "given", "gender": "male", "name": "콜턴"}, -{"usage": "given", "gender": "male", "name": "쿠퍼"}, -{"usage": "given", "gender": "male", "name": "크리스토퍼"}, -{"usage": "given", "gender": "male", "name": "크리스티안"}, -{"usage": "given", "gender": "male", "name": "키라"}, -{"usage": "given", "gender": "male", "name": "타일러"}, -{"usage": "given", "gender": "male", "name": "타케우치"}, -{"usage": "given", "gender": "male", "name": "토마스"}, -{"usage": "given", "gender": "male", "name": "트리스탄"}, -{"usage": "given", "gender": "male", "name": "헌터"}, -{"usage": "given", "gender": "male", "name": "헤이던"}, -{"usage": "given", "gender": "male", "name": "헨리"}, -{"usage": "given", "gender": "male", "name": "후안"} + { + "usage": "backer", + "gender": "unisex", + "name": [ + "Ajay Chandra", + "Alexander Dmitriev", + "Alexander Krichko", + "Alexander Weeks", + "Alphai", + "Andrew Guastella", + "Andrew Webster", + "Anthony Burleigh", + "Anton Struyk", + "Arc", + "Argus M. Lowell", + "Artcher", + "Atomos", + "Ben McClure", + "Benjamin Replogle", + "Bobalot", + "Brian Davidson", + "Brian Hosterman", + "Charlotte Hall", + "Chris Watkins", + "Christopher Fallins", + "Clay Foxtail", + "Comrade Garry", + "Craig Ferguson", + "Craig Matton", + "Dak'kor", + "Daniel Annfield", + "Daniel Danahy", + "Dave Steverdaverson", + "Dick Surges", + "Doug Ogden", + "Dr. Hylke van der Schaaf", + "Dusk Gao", + "Ely Forrest Keaton", + "Enrique Alonso", + "Eric Roussac", + "Erik Hungerbuhler", + "Evelynn Frost", + "Felix Aplin", + "Felix Fox", + "FrozenFoxy", + "Gabriel Dong", + "Gattsu", + "Glen Runciter", + "Guillaume Lebigot", + "Gulfas Morgolock", + "Gurg Hackpof", + "Hank Lecram", + "Herrith Sebon", + "Homer", + "Hubert Hughes", + "Hubert Rodenbaugh", + "Ian Cleere", + "James Kenny", + "Jef Major", + "Jens Becker", + "Jeremias Braß", + "Jim Landerland", + "Jim Weaver", + "John Ennion", + "John Hammell", + "Joseph 'Zakalwe' Bartlett", + "Joshua Young", + "Justine McKinnon", + "Kamil Kliwison", + "Kenji Gurokawa", + "Kevin Grasso", + "Kevin Witt", + "Khalid Rashid", + "Lachlan", + "Larion", + "Lawry Dennis", + "Leonid Vasilev", + "Lev Myshkin", + "Manik DepraSeeve", + "Mark 'Bad Boy' Badoy", + "Martin Svensson", + "Martin Woodard", + "Matt Davis", + "Matt Williams", + "Matthew St. John", + "Michael 'Dies Horribly' Jones", + "Michael Hill", + "Michael Kincaid", + "Michel Bergeron", + "Mick Batt", + "Miguel Hermez", + "Miles Prowers", + "Miloch", + "Nathan Cann", + "Nathaniel Ford", + "Nick 'Havoc' Parker", + "Nick Stefan", + "Owen Dunne", + "Pascal Filipovicz", + "Paul Wallace", + "Peter Stahlberg", + "Philippe Tremblay", + "Rambunctious Rick", + "Raquel Macmahon", + "Raymond Bellas", + "Reno Parker", + "Rob Keys", + "Rob Wetzel", + "Rolle", + "Ron 'Noise' Hakim", + "Ronni Magnusson", + "Rudolf Schmidt", + "Russ Reynolds III", + "Sam Stein", + "Sean Duncan", + "Sercan Coyle", + "Simefirmi", + "Simon Thoresen Hult", + "Snow 'Meow'", + "Sparrow Gryphon", + "Spathi Pkeloucht", + "Steven Peterson", + "Stottner", + "Szocs Gabor Ferenc", + "Sébastien Jaffre", + "Thomas Larsson", + "Tobias Franke", + "Todric Ryhope", + "Tom Hooper", + "Tomas Simon", + "TonZa", + "Tonami Jorgensen", + "Travis Gibson", + "Trianna", + "Urist McPrudent", + "Wayne A Arthurton", + "Will Walker", + "William Forrest", + "Wintar Gootblod", + "Zanam", + "Zhiao", + "dolio" + ] + }, + { + "usage": "city", + "name": [ + "가드너", + "가디너", + "가필드 플랜테이션", + "갈랜드", + "고센", + "고스널드", + "고어햄", + "고프스타운", + "굴즈버로", + "그래프턴", + "그랜드 레이크 스트림", + "그랜드 아일", + "그랜비", + "그랜빌", + "그랜트햄", + "그레이", + "그레이트 배링턴", + "그레이트 폰드", + "그로브랜드", + "그로턴", + "그리스올드", + "그린", + "그린랜드", + "그린부쉬", + "그린빌", + "그린우드", + "그린위치", + "그린즈버러", + "그린필드", + "글래스턴베리", + "글래스턴베리", + "글러스터", + "글렌번", + "글렌우드 대농장", + "글로버", + "글로스터", + "길", + "길드홀", + "길레아", + "길맨턴", + "길섬", + "길포드", + "길포드", + "나티크", + "나폴리", + "난터켓", + "내러갠셋", + "내쉬빌 플랜테이션", + "내슈어", + "너리", + "네이헌트", + "넬손", + "노거턱", + "노르우드", + "노르워크", + "노르웨이", + "노르웰", + "노르위치", + "노리지웍", + "노블보로", + "노샘프턴", + "노섬버랜드", + "노스 리딩", + "노스 베릭", + "노스 브랜포드", + "노스 브룩필드", + "노스 스미스필드", + "노스 스토닝턴", + "노스 아담스", + "노스 애틀보로", + "노스 앤도버", + "노스 야마스", + "노스 캐이넌", + "노스 킹스타운", + "노스 프로비던스", + "노스 햄프턴", + "노스 헤이븐", + "노스 히어로", + "노스버러", + "노스브릿지", + "노스우드", + "노스포트", + "노스필드", + "노팅험", + "녹스", + "놀턴", + "놀포크", + "뉴 가나안", + "뉴 글로스터", + "뉴 더럼", + "뉴 런던", + "뉴 리머릭", + "뉴 말보로", + "뉴 밀포드", + "뉴 바인야드", + "뉴 버리포트", + "뉴 베드포드", + "뉴 보스턴", + "뉴 브레인트리", + "뉴 브리튼", + "뉴 샤론", + "뉴 세일럼", + "뉴 쇼어햄", + "뉴 스웨덴", + "뉴 애쉬포드", + "뉴 입스위치", + "뉴 캐나다", + "뉴 캐슬", + "뉴 페어필드", + "뉴 포틀랜드", + "뉴 할트포드", + "뉴 햄튼", + "뉴 헤이븐", + "뉴마켓", + "뉴버리", + "뉴버지", + "뉴아크", + "뉴잉턴", + "뉴캐슬", + "뉴타운", + "뉴튼", + "뉴패인", + "뉴포트", + "뉴필드", + "뉴필즈", + "니덤", + "다 마리스 코타", + "다이어 브룩", + "다이튼", + "다트무스", + "달라스 농장", + "달튼", + "대리언", + "댄 버리", + "댄버스", + "댄비", + "댄빌", + "댄포스", + "더글라스", + "더들리", + "더블린", + "더비", + "더햄", + "덕스베리", + "던바턴", + "던스테이블", + "덤머", + "덤머스턴", + "데니스", + "데니스빌", + "데니스타운", + "데드햄", + "데블로이스", + "데어리", + "데이톤", + "덱스터", + "덴마크", + "도버", + "도버-폭스크로프트", + "도어셋", + "도어체스터", + "동굴 물고기", + "드라컷", + "드레스덴", + "드류의 대농장", + "디어 아일", + "디어링", + "디어필드", + "디트로이트", + "딕스몬트", + "딕스필드", + "딥 리버", + "라그랑쥬", + "라모인", + "라우던", + "라이", + "라이게이트", + "라이먼", + "라임", + "라코니아", + "랜대프", + "랜돌프", + "랜드그로브", + "랭던", + "랭커스터", + "러들로", + "러벨", + "러쎌", + "러틀랜드", + "런던데리", + "럼니", + "럼포드", + "레녹스", + "레디어드", + "레민스터", + "레밍턴", + "레바논", + "레반트", + "레버렛", + "레스터", + "레이든", + "레이몬드", + "레이크 뷰 플랜테이션", + "레이크빌", + "레인즈버러", + "레인질리 플랜테이션", + "레인질리", + "레인헴", + "렉싱턴", + "렌헴", + "렘스터", + "로렌스", + "로마", + "로빈스턴", + "로얄스턴", + "로얄턴", + "로우", + "로웰", + "로체스터", + "로크 블럽스", + "록스버리", + "록클랜드", + "록키 힐", + "록킹헴", + "록포트", + "롤리", + "롤린스포드", + "롱 아일랜드", + "롱메도우", + "루넨버그", + "루벡", + "루이스턴", + "루퍼트", + "리", + "리드 플랜테이션", + "리드필드", + "리딩", + "리머릭", + "리밍턴", + "리버모어 폴즈", + "리버모어", + "리비어", + "리스본", + "리즈", + "리즈보로", + "리치몬드", + "리치포드", + "리치필드", + "리치필드", + "리틀 콤프턴", + "리틀턴", + "리플리", + "리호보스", + "린", + "린네", + "린던", + "린데버러", + "린지", + "린필드", + "립톤", + "링컨 농장", + "링컨", + "링컨빌", + "마갈로웨이 농장", + "마다와스카", + "마드리드", + "마리아빌", + "마블헤드", + "마사르디스", + "마손", + "마쉬필드", + "마스 힐", + "마시피", + "마운트 데저트", + "마운트 버넌", + "마운트 워싱턴", + "마운트 체이스", + "마운트 테이버", + "마운트 홀리", + "마키아스", + "마키아스포트", + "마티니커스 섬", + "말로우", + "말보로", + "말보로우", + "매드버리", + "매리언", + "매타미스콘티스", + "매타웜키", + "매타포이세트", + "맥스필드", + "맥와호크 농장", + "맨스필드", + "머서", + "메드웨이", + "메드포드", + "메드필드", + "메디벺스", + "메디슨", + "메레디스", + "메리든", + "메리맥", + "메리맥", + "메릴", + "메이너드", + "메이드스톤", + "메이플턴", + "메카닉 폴즈", + "메투엔", + "멕시코", + "멘든", + "멘체스터 바이 더 시", + "멘체스터", + "멜로즈", + "모건", + "모로 플랜테이션", + "모리스", + "모리스타운", + "모릴", + "모스크바", + "모어타운", + "몬로", + "몬머스", + "몬슨", + "몬태규", + "몬트 버넌", + "몬트레이", + "몬트빌", + "몬티첼로", + "몬필리어", + "몬헤이건", + "몰든", + "몰튼버러", + "몽고메리", + "몽튼", + "무스 리버", + "미노", + "미들버리", + "미들보로", + "미들섹스", + "미들타운 스프링스", + "미들타운", + "미들턴", + "미들필드", + "밀란", + "밀로", + "밀리노켓", + "밀베리", + "밀브리지", + "밀빌", + "밀즈", + "밀튼", + "밀포드", + "바 하버", + "바레", + "바이런", + "바턴", + "박스버러", + "박스포드", + "반고", + "반크로프트", + "배살보로", + "배아지", + "밴 뷰런", + "밴스버러", + "버겐스", + "버나드", + "버나즈턴", + "버넷", + "버논", + "버릴빌", + "버셔", + "버윜", + "버크", + "버크셔", + "버크햄스티드", + "버클리", + "버트렛", + "벅랜드", + "벅스턴", + "벅스포드", + "벅필드", + "번스테드", + "번스테블", + "번햄", + "벌링턴", + "베네딕타", + "베닝턴", + "베드포드", + "베들레햄", + "베딩턴", + "베로나 아일랜드", + "베를린", + "베링턴", + "베버리", + "베살", + "베서니", + "베스", + "베어링 플렌테이션", + "베이커스필드", + "베이컨 폴스", + "베킷", + "벤슨", + "벤턴", + "벨그레이드", + "벨드윈", + "벨리빌", + "벨링햄", + "벨몬트", + "벨비드리", + "벨쳐타운", + "벨티모어", + "벨페스트", + "보스카웬", + "보스턴", + "보우", + "보우다인", + "보우다인햄", + "보워뱅크", + "보일스턴", + "보즈라", + "본", + "볼룬타운", + "볼턴", + "부스베이 하버", + "부스베이", + "브라우닝튼", + "브라운빌", + "브라운필드", + "브라잇턴 플랜테이션", + "브라잇턴", + "브란포드", + "브래드포드", + "브래들리", + "브래틀보로", + "브런즈윜", + "브레멘", + "브레인트리", + "브렌든", + "브렌트우드", + "브루워", + "브루워스터", + "브루클린", + "브룩스", + "브룩스빌", + "브룩클린", + "브룩클린", + "브룩턴", + "브룩튼", + "브룩필드", + "브리드포트", + "브리스톨", + "브리지튼", + "브림필드", + "브릿지워터", + "브릿지포트", + "블랙스톤", + "블랜드포드", + "블랜챠드", + "블레인", + "블루 힐", + "블룸필드", + "비날헤이븐", + "비드포드", + "비버 코브", + "비엔나", + "빅토리", + "빌러리카", + "빌스", + "빙햄", + "사바터스", + "사보이", + "사우스 벌링턴", + "사우스 베릭", + "사우스 브리스톨", + "사우스 브리지", + "사우스 앰튼", + "사우스 윈저", + "사우스 잉턴", + "사우스 킹스타운", + "사우스 토마스톤", + "사우스 포틀랜드", + "사우스 하들리", + "사우스 햄프턴", + "사우스 히어로", + "사우스버러", + "사우스베리", + "사우스웨스트 하버", + "사우스윅", + "사우스포트", + "사코", + "샌다운", + "샌드게이트", + "샌드위치", + "샌디 리버 플랜테이션", + "샌디스필드", + "샌본턴", + "샌퍼드", + "샐스버리", + "생거빌", + "샤론", + "샤비그 아일랜드", + "샤프츠버리", + "샬롯", + "서거스", + "서나피", + "서레이", + "서머빌", + "서머셋", + "서머스", + "서머스워쓰", + "서버리", + "서턴", + "서필드", + "석회암", + "선덜랜드", + "설리번", + "섬너", + "세바고", + "세벡", + "세보아이스 플렌테이션", + "세인트 존 플랜테이션", + "세인트 존스버리", + "세인트아가사", + "세인트앨번스", + "세인트조지", + "세인트프란시스", + "세일럼", + "세지윅", + "센터 하버", + "센터빌", + "센트럴 폴", + "셔먼", + "셔본", + "셜리", + "셰필드", + "셸던", + "소렌토", + "손다이크", + "솔론", + "쇼어햄", + "쇼워스베리", + "쉐플레이", + "쉘번", + "쉘톤", + "슈거 힐", + "슈츠버리", + "스미르나", + "스미스필드", + "스완빌", + "스완스 아일랜드", + "스완지", + "스완지", + "스완튼", + "스웜프스캇", + "스웨든", + "스카보로", + "스코틀랜드", + "스코헤간", + "스타크", + "스타크", + "스타포드", + "스탁스보로", + "스태너드", + "스탠디쉬", + "스탬포드", + "스터브리지", + "스털링", + "스테슨", + "스테우벤", + "스테이시빌", + "스토닝턴", + "스토다드", + "스토우", + "스토위", + "스토턴", + "스톡브리지", + "스톡턴 스프링스", + "스톡홀름", + "스톤햄", + "스튜워츠타운", + "스트라포드", + "스트래튼", + "스트랫포드", + "스트레텀", + "스트롱", + "스펜서", + "스프라그", + "스프링필드", + "시드니", + "시르 농장", + "시모어", + "시브룩", + "시어스몬트", + "시어스버그", + "시어스포트", + "시추에이트", + "시콩크", + "심즈버리", + "써리", + "쏜턴", + "아가일", + "아궈웜", + "아담스", + "아울스 헤드", + "아일 라 오트", + "아일 오 호트", + "아일랜드 폴스", + "아일보로", + "아쿠이나", + "아텐스", + "아톨", + "알렉산더", + "알렉산드리어", + "알링턴", + "애슈랜드", + "애슈번햄", + "애슈비", + "애슈포드", + "애슈필드", + "액턴", + "얄머스", + "어룬델", + "어빙", + "어빙턴", + "어큐쉬넷", + "어클쓰", + "어포드", + "어프레드", + "억스브리지", + "언더힐", + "언도버", + "얼버그", + "얼비온", + "업튼", + "에그리몬트", + "에노스버그", + "에덴", + "에드가타운", + "에드문즈", + "에디슨", + "에딘버그", + "에딩턴", + "에로우식", + "에롤", + "에미티", + "에버렛", + "에벗", + "에섹스", + "에이번", + "에이어", + "에지콤", + "에트나", + "에플톤", + "에핑", + "에핑엄", + "엑세터", + "엔소니아", + "엔손", + "엔트림", + "엔필드", + "엘나", + "엘라가쉬", + "엘렌스톤", + "엘리엇", + "엘링턴", + "엘모어", + "엘바니", + "엘스워스", + "엘스티드", + "엘톤", + "엠덴", + "엠스부리", + "엠허스트", + "엡섬", + "엣킨슨", + "엣틀보로", + "오거스타", + "오건큇트", + "오느빌", + "오렌지", + "오로노", + "오로라", + "오르웰", + "오를랜드", + "오를리언스", + "오리엔트", + "오링턴", + "오스본", + "오시피", + "오우번", + "오컴", + "오크 블렆스", + "오크필드", + "오클랜드", + "오티스", + "오티스필드", + "오퍼드", + "옥스보우", + "옥스포드", + "올드 라임", + "올드 세이브룩", + "올드 오챠드 비치", + "올드 타운", + "와이팅", + "와이팅헴", + "왈도", + "왈도보로", + "왈라그라스", + "왈스헴", + "왈폴", + "요크", + "우드버리", + "우드브릿지", + "우드빌", + "우드스탁", + "우드포드", + "우들랜드", + "우번", + "우정", + "운소켓", + "워너", + "워렌", + "워시본", + "워싱턴", + "워윅", + "워즈보로", + "워터버리", + "워터보로", + "워터빌 밸리", + "워터빌", + "워터타운", + "워터포드", + "월든", + "월리치", + "월링포드", + "월스터", + "월싱턴", + "월콧", + "월프보로", + "웨더스필드", + "웨더즈필드", + "웨스터리", + "웨스턴", + "웨스트 가디너", + "웨스트 그린위치", + "웨스트 뉴버리", + "웨스트 럿랜드", + "웨스트 배스", + "웨스트 보일스턴", + "웨스트 브룩필드", + "웨스트 브릿지워터", + "웨스트 스톡브릿지", + "웨스트 스프링필드", + "웨스트 워윅", + "웨스트 윈저", + "웨스트 티스버리", + "웨스트 패리스", + "웨스트 페얼리", + "웨스트 포크스", + "웨스트 하트포드", + "웨스트 헤이븐", + "웨스트맨랜드", + "웨스트모어", + "웨스트모어랜드", + "웨스트민스터", + "웨스트보로우", + "웨스트브룩", + "웨스트우드", + "웨스트포드", + "웨스트포트", + "웨스트필드", + "웨스트햄프턴", + "웨슬리", + "웨아츠필드", + "웨어", + "웨어햄", + "웨이드", + "웨이랜드", + "웨이머스", + "웨이브릿지", + "웨이크필드", + "웨이트", + "웨이틀리", + "웨인", + "웨일즈", + "웬델", + "웬트워스", + "웬헴", + "웰드", + "웰링턴", + "웰스", + "웰즐리", + "웰플릿", + "웹스터 플랜테이션", + "웹스터", + "위누스키", + "위스카셋", + "위어", + "위트니빌", + "윈", + "윈뎀", + "윈스롭", + "윈슬로우", + "윈저 락스", + "윈저", + "윈체스터", + "윈첸던", + "윈터 하버", + "윈터빌 플랜테이션", + "윈터포트", + "윈홀", + "윌락", + "윌리만틱", + "윌리스턴", + "윌리암스버그", + "윌리암스타운", + "윌링턴", + "윌멋", + "윌밍턴", + "윌브라함", + "윌턴", + "유니온", + "유니티", + "유스티스", + "이글 레이크", + "이라", + "이라스버그", + "이스턴", + "이스트 그랜비", + "이스트 그린위치", + "이스트 라임", + "이스트 롱메도우", + "이스트 마키어즈", + "이스트 몬트필리어", + "이스트 밀리노켓", + "이스트 브룩필드", + "이스트 브리지워터", + "이스트 윈저", + "이스트 킹스턴", + "이스트 프로비던스", + "이스트 하트포드", + "이스트 해덤", + "이스트 해븐", + "이스트 햄프턴", + "이스트브룩", + "이스트포드", + "이스트포트", + "이스트햄", + "이스트햄프턴", + "이튼", + "인더스트리", + "입스위치", + "자메이카", + "자유", + "잭맨", + "잭슨", + "제리코", + "제이", + "제임스타운", + "제퍼슨", + "제프리", + "조지아", + "조지타운", + "존스보로", + "존스턴", + "존스포트", + "존슨", + "차이나", + "찰레몬트", + "찰레스턴", + "찰리스타운", + "찰턴", + "채텀", + "채플린", + "챕맨", + "체리필드", + "체셔", + "체스터", + "체스터빌", + "체스터필드", + "첼시", + "쳄스포드", + "치체스터", + "치코피", + "치텐던", + "칠마크", + "카라바셋 벨리", + "카라텅크", + "카르타고", + "카리 플랜테이션", + "카리부", + "카멜", + "카버", + "카봇", + "카스웰", + "카스코", + "칸디아", + "칼라일", + "칼레", + "캄덴", + "캄프튼", + "캅린 플랜테이션Coplin Plantation", + "캐롤 플랜테이션", + "캐롤", + "캐스틴", + "캐슬 힐", + "캐슬턴", + "캐이넌", + "캔톤", + "캠브리지", + "커밍턴", + "커비", + "커싱", + "커틀러", + "컬럼비아 폴스", + "컬럼비아", + "컴벌 랜드", + "케네벙크", + "케네벙크포트", + "케이프 엘리자베스", + "켄덕스키그", + "켄싱턴", + "켄터베리", + "켄트", + "코너", + "코니쉬", + "코디빌 플랜테이션", + "코리나", + "코린스", + "코벤트리", + "코하셋", + "콘빌", + "콘월", + "콘웨이", + "콜레인", + "콜브룩", + "콜체스터", + "콩코드", + "쿠퍼", + "퀸시", + "크라우포드", + "크레프트스베리", + "크렌베리 아이리쉬", + "크렌스턴", + "크로이던", + "크롬웰", + "크리스탈", + "클라렌든", + "클락스버그", + "클락스빌", + "클레어몬트", + "클리프턴", + "클린턴", + "키터리", + "킨", + "킬링리", + "킬링워스", + "킬링턴", + "킹맨", + "킹스버리 플랜테이션", + "킹스턴", + "킹필드", + "타우튼", + "타운샌드", + "타운스핸드", + "타이링헴", + "탈마지", + "탐워스", + "탑스필드", + "탑스햄", + "터너", + "터프튼보로", + "턱스베리", + "턴브릿지", + "템플", + "템플턴", + "텟포드", + "토링턴", + "토마스톤", + "톨랜드", + "톰슨", + "트럼벨", + "트레몬트", + "트레스콧", + "트렌턴", + "트로이", + "트루로", + "티버튼", + "티즈버리", + "틴마우스", + "틸턴", + "팅스버러", + "파리", + "파밍데일", + "파밍튼", + "파사덤키", + "파슨스필드", + "파이에트", + "파크맨", + "판톤", + "팔레르모", + "팔마이라", + "팔머", + "패튼", + "팩스턴", + "팰머스", + "팸브로크", + "퍼널", + "퍼킨스", + "퍼터킷", + "퍼햄", + "페놉스콧", + "페루", + "페리", + "페리스버그", + "페어 해븐", + "페어리", + "페어팩스", + "페어필드", + "페어해븐", + "페이스턴", + "페퍼렐", + "펠햄", + "포레스트 시티", + "포를릿", + "포머 타운즈:", + "포스터", + "포츠머스", + "포크", + "포터", + "포테지 레이크", + "포트 켄트", + "포트 페어필드", + "포틀랜드", + "폭스버러", + "폴 리버", + "폴란드", + "폴트니", + "폼프렛", + "풋남", + "풋니", + "프라이 아일랜드", + "프라이버그", + "프랑코니아", + "프랜시스타운", + "프랭크포트", + "프랭클린", + "프레스콧", + "프레스크 아일", + "프레스턴", + "프레이밍햄", + "프렌치버로", + "프렌치빌", + "프렌티스", + "프로비던스", + "프로빈스타운", + "프로스펙트", + "프록터", + "프리덤", + "프리먼", + "프리몬트", + "프리타운", + "프리포트", + "프린스턴", + "플레이스토우", + "플레인빌", + "플레인필드", + "플레쳐", + "플로리다", + "플리머스", + "플리전트 릿지 플렌테이션", + "플림턴", + "피바디", + "피에르몬트", + "피챔", + "피츠윌리엄", + "피치버그", + "피터보로", + "피터샘", + "필립", + "필립스턴", + "핍스버그", + "핏츠버그", + "핏츠턴", + "핏츠포드", + "핏츠필드", + "하노버", + "하드윅", + "하모니", + "하버드", + "하버드스턴", + "하버드턴", + "하울랜드", + "하위치", + "하윈턴", + "하이게이트", + "하이드 공원", + "하이랜드 대농장", + "하이럼", + "하인즈버그", + "하츠 로케이션", + "하트랜드", + "하트포드", + "하프스웰", + "할로웰", + "할리팩스", + "해덤", + "해들리", + "해리스빌", + "해리슨", + "해링턴", + "해몬드", + "해밀턴", + "해이버힐", + "해트필드", + "핸슨", + "핸콕", + "햄덴", + "햄린", + "햄스테드", + "햄프덴", + "햄프턴 폴스", + "햄프턴", + "허드슨", + "허리케인 섬", + "허먼", + "허시", + "허지든", + "헌팅턴", + "헤브론", + "헤인즈빌", + "헨니커", + "호프", + "호프데일", + "홀더니스", + "홀덴", + "홀랜드", + "홀리", + "홀리스", + "홀리스턴", + "홀리요크", + "홀브룩", + "홉킨턴", + "화이트필드", + "후크세트", + "훌", + "훌턴", + "휘트먼", + "히스", + "힌스데일", + "힐", + "힐스버러", + "힝햄" + ] + }, + { + "usage": "family", + "gender": "unisex", + "name": [ + "가르시아", + "곤잘레스", + "곤잘레스", + "그레이", + "그리핀", + "그린", + "나키야", + "넬손", + "데이비스", + "디아즈", + "라미레즈", + "라이트", + "러쎌", + "레위스", + "로거스", + "로드리게즈", + "로버트즈", + "로빈슨", + "로스", + "로페즈", + "롱", + "리", + "리드", + "리버라", + "리차드손", + "마틴", + "마틴즈", + "머피", + "모건", + "모리스", + "무어", + "미췔", + "밀러", + "반 와일드", + "반즈", + "버틀러", + "베넷", + "베이커", + "베일리", + "벨", + "브라운", + "브라이언트", + "브룩스", + "산체스", + "센더스", + "스미스", + "스캇", + "스튜아트", + "시몬스", + "아담스", + "알렉산더", + "알렌", + "앤더슨", + "에드워드", + "에반스", + "영", + "왓슨", + "우드", + "워드", + "워싱턴", + "워커", + "웨스트", + "윌리엄스", + "윌슨", + "잭슨", + "제임스", + "젠킨슨", + "존스", + "존슨", + "카이코", + "카터", + "켈리", + "켐벨", + "콕스", + "콜린", + "콜맨", + "쿠퍼", + "쿡", + "클라크", + "킹", + "타일러", + "터너", + "토레스", + "토마스", + "톰슨", + "파커", + "페레즈", + "페리", + "페터슨", + "포스터", + "포웰", + "프라이스", + "플로레스", + "피터슨", + "필립", + "하워드", + "해리스", + "헤르난데스", + "헤이즈", + "헨더슨", + "홀", + "화이트", + "휴즈", + "힐" + ] + }, + { + "usage": "given", + "gender": "female", + "name": [ + "가브리엘", + "가브리엘라", + "그레이스", + "그레이시", + "나스키", + "나탈리", + "누쿠", + "니베", + "데스티니", + "라일리", + "라췔", + "레아", + "레일라", + "로렌", + "릴리", + "릴리언", + "마리", + "마리아", + "마리아", + "마야", + "마켈라", + "맬라니", + "메건", + "메델린", + "메들린", + "메디슨", + "모건", + "미아", + "바네사", + "발레리아", + "베일리", + "브룩", + "브룩클린", + "브리아나", + "빅토리아", + "사라", + "사라", + "사만타", + "사바나", + "샬롯", + "소피", + "소피아", + "시드니", + "아나", + "아리아나", + "아리안나", + "아멜리아", + "아베리", + "아비게일", + "아이자와", + "아키코", + "안드레아", + "안젤리나", + "알렉사", + "알렉산드라", + "알렉시아", + "알리사", + "알리야", + "애쉴리", + "어텀", + "에디슨", + "에밀리", + "에바", + "에블린", + "엘라", + "엘리슨", + "엘리자베스", + "엠마", + "오드리", + "오브리", + "올리비아", + "유키", + "이사벨", + "이사벨", + "이사벨라", + "재스민", + "제니퍼", + "제시", + "제시카", + "젠", + "조셀린", + "조이", + "조이", + "줄리아", + "지노시스", + "지안나", + "카밀라", + "카일리", + "카텔린", + "캐롤라인", + "케이틀린", + "케일라", + "케일리", + "케티", + "클레어", + "클로에", + "킬벌리", + "킴", + "트리니티", + "페이지", + "페이턴", + "페이트", + "헤나", + "헤더", + "헤일리", + "히카리" + ] + }, + { + "usage": "given", + "gender": "male", + "name": [ + "가브리엘", + "개빈", + "겐도", + "교수키", + "나다니엘", + "나단", + "노아", + "니콜라스", + "다니엘", + "다이스키", + "데이비드", + "도미닉", + "디에고", + "딜런", + "란", + "랸", + "렌던", + "로겐", + "로버트", + "루이스", + "루카스", + "류크", + "리엠", + "마손", + "마이클", + "매튜", + "벤자민", + "브라이언", + "브라이언", + "브레디", + "브레이든", + "브렌든", + "브로디", + "블레이크", + "사바스티안", + "션", + "싸무엘", + "아담", + "아론", + "아이단", + "아이덴", + "아이작", + "알렉산더", + "알렉스", + "앤드류", + "앤소니", + "에단", + "에릭", + "에반", + "에번", + "에이드리안", + "에이든", + "엔젤", + "엘리", + "오스틴", + "오웬", + "와이어트", + "윌리엄", + "이사야", + "일라이자", + "자비엘", + "재커리", + "잭", + "잭슨", + "저스틴", + "제레미", + "제이든", + "제이든", + "제이슨", + "제이콥", + "제임스", + "조나단", + "조단", + "조셉", + "조슈아", + "조시", + "조시어", + "존", + "줄리안", + "지져스", + "찰스", + "체이스", + "카덴", + "카를로스", + "카메론", + "카슨", + "카일", + "카터", + "칼렙", + "케빈", + "케이든", + "케이타", + "코너", + "콜", + "콜턴", + "쿠퍼", + "크리스토퍼", + "크리스티안", + "키라", + "타일러", + "타케우치", + "토마스", + "트리스탄", + "헌터", + "헤이던", + "헨리", + "후안" + ] + } ] diff --git a/data/names/ru.json b/data/names/ru.json index 092003d209e54..b13d887737789 100644 --- a/data/names/ru.json +++ b/data/names/ru.json @@ -1,21649 +1,21700 @@ [ -{"usage": "nick", "name": "10-4"}, -{"usage": "nick", "name": "Брошенка"}, -{"usage": "nick", "name": "Терпила"}, -{"usage": "nick", "name": "Кубики"}, -{"usage": "nick", "name": "Козырь"}, -{"usage": "nick", "name": "Кислота"}, -{"usage": "nick", "name": "Адажио"}, -{"usage": "nick", "name": "Хрен переспоришь"}, -{"usage": "nick", "name": "Адмирал"}, -{"usage": "nick", "name": "Эон"}, -{"usage": "nick", "name": "Аэро"}, -{"usage": "nick", "name": "ППЦ"}, -{"usage": "nick", "name": "После"}, -{"usage": "nick", "name": "Агат"}, -{"usage": "nick", "name": "Агент"}, -{"usage": "nick", "name": "Злюка"}, -{"usage": "nick", "name": "Изжога"}, -{"usage": "nick", "name": "Ура"}, -{"usage": "nick", "name": "Привет"}, -{"usage": "nick", "name": "Руки-в-боки"}, -{"usage": "nick", "name": "Альбатрос"}, -{"usage": "nick", "name": "Алиби"}, -{"usage": "nick", "name": "Звезда"}, -{"usage": "nick", "name": "Альфа"}, -{"usage": "nick", "name": "Абы как"}, -{"usage": "nick", "name": "Амброзия"}, -{"usage": "nick", "name": "Аминь"}, -{"usage": "nick", "name": "Америка"}, -{"usage": "nick", "name": "Аметист"}, -{"usage": "nick", "name": "Патрон"}, -{"usage": "nick", "name": "Люто-бешено"}, -{"usage": "nick", "name": "Заткнись"}, -{"usage": "nick", "name": "Якорь"}, -{"usage": "nick", "name": "Ангел"}, -{"usage": "nick", "name": "Анима"}, -{"usage": "nick", "name": "Животина"}, -{"usage": "nick", "name": "Девчонка"}, -{"usage": "nick", "name": "Мурашка"}, -{"usage": "nick", "name": "Дырень"}, -{"usage": "nick", "name": "Верхотура"}, -{"usage": "nick", "name": "Апокалипсис"}, -{"usage": "nick", "name": "Апогей"}, -{"usage": "nick", "name": "Яблоко"}, -{"usage": "nick", "name": "Яблочник"}, -{"usage": "nick", "name": "Яблочное Зёрнышко"}, -{"usage": "nick", "name": "Аква"}, -{"usage": "nick", "name": "Аркада"}, -{"usage": "nick", "name": "Архон"}, -{"usage": "nick", "name": "Арканзас"}, -{"usage": "nick", "name": "Аркан"}, -{"usage": "nick", "name": "Бычара"}, -{"usage": "nick", "name": "Армагеддон"}, -{"usage": "nick", "name": "Астро"}, -{"usage": "nick", "name": "Атлант"}, -{"usage": "nick", "name": "Атом"}, -{"usage": "nick", "name": "Аура"}, -{"usage": "nick", "name": "Пощёчина"}, -{"usage": "nick", "name": "Аврора"}, -{"usage": "nick", "name": "Оззи"}, -{"usage": "nick", "name": "Австралия"}, -{"usage": "nick", "name": "Самоволка"}, -{"usage": "nick", "name": "Топор"}, -{"usage": "nick", "name": "Эй"}, -{"usage": "nick", "name": "Детка"}, -{"usage": "nick", "name": "Малыш"}, -{"usage": "nick", "name": "Бекон"}, -{"usage": "nick", "name": "Задира"}, -{"usage": "nick", "name": "Барсук"}, -{"usage": "nick", "name": "Плешь"}, -{"usage": "nick", "name": "Круши-ломай"}, -{"usage": "nick", "name": "Бэмби"}, -{"usage": "nick", "name": "Банан"}, -{"usage": "nick", "name": "Охренеть"}, -{"usage": "nick", "name": "Бандюга"}, -{"usage": "nick", "name": "Я со всеми"}, -{"usage": "nick", "name": "Бабах"}, -{"usage": "nick", "name": "Банхаммер"}, -{"usage": "nick", "name": "Вписка"}, -{"usage": "nick", "name": "Банши"}, -{"usage": "nick", "name": "Банзай"}, -{"usage": "nick", "name": "Барбитурат"}, -{"usage": "nick", "name": "Варвар"}, -{"usage": "nick", "name": "Побрейся"}, -{"usage": "nick", "name": "Бард"}, -{"usage": "nick", "name": "Барон"}, -{"usage": "nick", "name": "Сделай бочку"}, -{"usage": "nick", "name": "Стыдоба"}, -{"usage": "nick", "name": "Мне похер"}, -{"usage": "nick", "name": "Жопошник"}, -{"usage": "nick", "name": "Лучик"}, -{"usage": "nick", "name": "Весельчак"}, -{"usage": "nick", "name": "Медведь"}, -{"usage": "nick", "name": "Зверюга"}, -{"usage": "nick", "name": "Лапочка"}, -{"usage": "nick", "name": "Бибоп"}, -{"usage": "nick", "name": "Бедлам"}, -{"usage": "nick", "name": "Пчёлка"}, -{"usage": "nick", "name": "Придира"}, -{"usage": "nick", "name": "Бип"}, -{"usage": "nick", "name": "Би-бип"}, -{"usage": "nick", "name": "Ни о чём"}, -{"usage": "nick", "name": "Жиртрест"}, -{"usage": "nick", "name": "Берсерк"}, -{"usage": "nick", "name": "Лучше всех"}, -{"usage": "nick", "name": "Бета"}, -{"usage": "nick", "name": "Больше всех"}, -{"usage": "nick", "name": "Большие пушки"}, -{"usage": "nick", "name": "Важная шишка"}, -{"usage": "nick", "name": "Биггс"}, -{"usage": "nick", "name": "Трепло"}, -{"usage": "nick", "name": "По-крупному"}, -{"usage": "nick", "name": "Бихари"}, -{"usage": "nick", "name": "Миллиард"}, -{"usage": "nick", "name": "Бинг"}, -{"usage": "nick", "name": "Бинго"}, -{"usage": "nick", "name": "Био"}, -{"usage": "nick", "name": "Цыпа"}, -{"usage": "nick", "name": "Пташка"}, -{"usage": "nick", "name": "Косяк"}, -{"usage": "nick", "name": "Повторюха"}, -{"usage": "nick", "name": "Битмап"}, -{"usage": "nick", "name": "Чернота"}, -{"usage": "nick", "name": "Блэкджек"}, -{"usage": "nick", "name": "Блейд"}, -{"usage": "nick", "name": "Позорище"}, -{"usage": "nick", "name": "Просто пушка"}, -{"usage": "nick", "name": "Укурок"}, -{"usage": "nick", "name": "Внезапность"}, -{"usage": "nick", "name": "Показуха"}, -{"usage": "nick", "name": "Блинк"}, -{"usage": "nick", "name": "Волына"}, -{"usage": "nick", "name": "Прыщ"}, -{"usage": "nick", "name": "Блиц"}, -{"usage": "nick", "name": "Пурга"}, -{"usage": "nick", "name": "Забаню"}, -{"usage": "nick", "name": "Балда"}, -{"usage": "nick", "name": "Блонди"}, -{"usage": "nick", "name": "Прелесть"}, -{"usage": "nick", "name": "Вдул"}, -{"usage": "nick", "name": "Блю"}, -{"usage": "nick", "name": "Жополиз"}, -{"usage": "nick", "name": "Залей глаза"}, -{"usage": "nick", "name": "Скромняга"}, -{"usage": "nick", "name": "Посан"}, -{"usage": "nick", "name": "Кабан"}, -{"usage": "nick", "name": "Тело"}, -{"usage": "nick", "name": "Под орех"}, -{"usage": "nick", "name": "Окурок"}, -{"usage": "nick", "name": "Брехло"}, -{"usage": "nick", "name": "Болт"}, -{"usage": "nick", "name": "Режу правду"}, -{"usage": "nick", "name": "Рыбак"}, -{"usage": "nick", "name": "Бонанза"}, -{"usage": "nick", "name": "Бонд"}, -{"usage": "nick", "name": "Стояк"}, -{"usage": "nick", "name": "Крыша поехала"}, -{"usage": "nick", "name": "Бонсай"}, -{"usage": "nick", "name": "Бонус"}, -{"usage": "nick", "name": "Половинка"}, -{"usage": "nick", "name": "Радость"}, -{"usage": "nick", "name": "Ставка"}, -{"usage": "nick", "name": "Ёпт"}, -{"usage": "nick", "name": "Нищебро"}, -{"usage": "nick", "name": "Халява"}, -{"usage": "nick", "name": "Нубло"}, -{"usage": "nick", "name": "Фуфло"}, -{"usage": "nick", "name": "Жлоб"}, -{"usage": "nick", "name": "Босс"}, -{"usage": "nick", "name": "Баузер"}, -{"usage": "nick", "name": "Пацан"}, -{"usage": "nick", "name": "Без мозгов"}, -{"usage": "nick", "name": "Мозг"}, -{"usage": "nick", "name": "Мозговой штурм"}, -{"usage": "nick", "name": "Крысюк"}, -{"usage": "nick", "name": "Отвага"}, -{"usage": "nick", "name": "Браво"}, -{"usage": "nick", "name": "Бразилия"}, -{"usage": "nick", "name": "Из Бразилии"}, -{"usage": "nick", "name": "Бабло"}, -{"usage": "nick", "name": "Разрыв"}, -{"usage": "nick", "name": "Раз-два"}, -{"usage": "nick", "name": "Головокружение"}, -{"usage": "nick", "name": "Кирпич"}, -{"usage": "nick", "name": "Дисбат"}, -{"usage": "nick", "name": "Бронко"}, -{"usage": "nick", "name": "Коп"}, -{"usage": "nick", "name": "Бугага"}, -{"usage": "nick", "name": "Мачо"}, -{"usage": "nick", "name": "Брамми"}, -{"usage": "nick", "name": "Братишка"}, -{"usage": "nick", "name": "Себе на уме"}, -{"usage": "nick", "name": "Бабблс"}, -{"usage": "nick", "name": "Дружище"}, -{"usage": "nick", "name": "Лавэ"}, -{"usage": "nick", "name": "Бакай"}, -{"usage": "nick", "name": "Жук"}, -{"usage": "nick", "name": "Багбир"}, -{"usage": "nick", "name": "Багз"}, -{"usage": "nick", "name": "Бицепс"}, -{"usage": "nick", "name": "Бык"}, -{"usage": "nick", "name": "Пуля"}, -{"usage": "nick", "name": "В яблочко"}, -{"usage": "nick", "name": "Неваляшка"}, -{"usage": "nick", "name": "Балбес"}, -{"usage": "nick", "name": "Зайка"}, -{"usage": "nick", "name": "Булки"}, -{"usage": "nick", "name": "Нихера"}, -{"usage": "nick", "name": "Балабол"}, -{"usage": "nick", "name": "На подскоке"}, -{"usage": "nick", "name": "У меня дела"}, -{"usage": "nick", "name": "Брюзга"}, -{"usage": "nick", "name": "Мужлан"}, -{"usage": "nick", "name": "Мясник"}, -{"usage": "nick", "name": "Как по маслу"}, -{"usage": "nick", "name": "Истеричка"}, -{"usage": "nick", "name": "Милашка"}, -{"usage": "nick", "name": "Круто"}, -{"usage": "nick", "name": "Капуста"}, -{"usage": "nick", "name": "Какофония"}, -{"usage": "nick", "name": "Овощ"}, -{"usage": "nick", "name": "Цезарь"}, -{"usage": "nick", "name": "На кофеине"}, -{"usage": "nick", "name": "Кейдж"}, -{"usage": "nick", "name": "Мухлёж"}, -{"usage": "nick", "name": "Кахун"}, -{"usage": "nick", "name": "Беда"}, -{"usage": "nick", "name": "Матан"}, -{"usage": "nick", "name": "Калипсо"}, -{"usage": "nick", "name": "Мордашка"}, -{"usage": "nick", "name": "Камуфляж"}, -{"usage": "nick", "name": "Так точно"}, -{"usage": "nick", "name": "Канада"}, -{"usage": "nick", "name": "Из Канады"}, -{"usage": "nick", "name": "Дрищ"}, -{"usage": "nick", "name": "Канданго"}, -{"usage": "nick", "name": "И так сойдёт"}, -{"usage": "nick", "name": "Канада"}, -{"usage": "nick", "name": "Не гони"}, -{"usage": "nick", "name": "Воротила"}, -{"usage": "nick", "name": "Капихаба"}, -{"usage": "nick", "name": "Кэппи"}, -{"usage": "nick", "name": "Кэп"}, -{"usage": "nick", "name": "Карамелька"}, -{"usage": "nick", "name": "Каркамано"}, -{"usage": "nick", "name": "Кариока"}, -{"usage": "nick", "name": "Моркоу"}, -{"usage": "nick", "name": "Кэрри"}, -{"usage": "nick", "name": "Касабланка"}, -{"usage": "nick", "name": "Казино"}, -{"usage": "nick", "name": "Фейк"}, -{"usage": "nick", "name": "Гондурас"}, -{"usage": "nick", "name": "Загвоздка"}, -{"usage": "nick", "name": "Кореш"}, -{"usage": "nick", "name": "Многоножка"}, -{"usage": "nick", "name": "Церера"}, -{"usage": "nick", "name": "Чемпион"}, -{"usage": "nick", "name": "Кент"}, -{"usage": "nick", "name": "Гватемала"}, -{"usage": "nick", "name": "Чаппи"}, -{"usage": "nick", "name": "На колёсах"}, -{"usage": "nick", "name": "Очаровашка"}, -{"usage": "nick", "name": "Хрен заткнёшь"}, -{"usage": "nick", "name": "Флудер"}, -{"usage": "nick", "name": "Шах-и-мат"}, -{"usage": "nick", "name": "Щёчки"}, -{"usage": "nick", "name": "Сноб"}, -{"usage": "nick", "name": "Спасибки"}, -{"usage": "nick", "name": "Падонак"}, -{"usage": "nick", "name": "Шеф"}, -{"usage": "nick", "name": "Черри"}, -{"usage": "nick", "name": "Шахматист"}, -{"usage": "nick", "name": "Хи"}, -{"usage": "nick", "name": "Чел"}, -{"usage": "nick", "name": "Мексика"}, -{"usage": "nick", "name": "Спокойно"}, -{"usage": "nick", "name": "Китай"}, -{"usage": "nick", "name": "Китаёза"}, -{"usage": "nick", "name": "Чирик-чирик"}, -{"usage": "nick", "name": "Потрындим"}, -{"usage": "nick", "name": "Чоко"}, -{"usage": "nick", "name": "Шоколадка"}, -{"usage": "nick", "name": "Не вышло"}, -{"usage": "nick", "name": "Чух-чух"}, -{"usage": "nick", "name": "Отбивная"}, -{"usage": "nick", "name": "Хром"}, -{"usage": "nick", "name": "Хроно"}, -{"usage": "nick", "name": "Хи-хи"}, -{"usage": "nick", "name": "Бро"}, -{"usage": "nick", "name": "Лох"}, -{"usage": "nick", "name": "Чао"}, -{"usage": "nick", "name": "Сидр"}, -{"usage": "nick", "name": "Синко"}, -{"usage": "nick", "name": "Кино"}, -{"usage": "nick", "name": "Веснушка"}, -{"usage": "nick", "name": "Шифр"}, -{"usage": "nick", "name": "Клэнк"}, -{"usage": "nick", "name": "Гонишь"}, -{"usage": "nick", "name": "Коготь"}, -{"usage": "nick", "name": "Хлебушек"}, -{"usage": "nick", "name": "Клеймора"}, -{"usage": "nick", "name": "Церковник"}, -{"usage": "nick", "name": "Клик"}, -{"usage": "nick", "name": "Под кайфом"}, -{"usage": "nick", "name": "Закон-и-порядок"}, -{"usage": "nick", "name": "Профессор"}, -{"usage": "nick", "name": "Коусти"}, -{"usage": "nick", "name": "Кобра"}, -{"usage": "nick", "name": "Сыч"}, -{"usage": "nick", "name": "Кокни"}, -{"usage": "nick", "name": "Таракан"}, -{"usage": "nick", "name": "Коко"}, -{"usage": "nick", "name": "Кофеёк"}, -{"usage": "nick", "name": "Планктонина"}, -{"usage": "nick", "name": "Коуи"}, -{"usage": "nick", "name": "Толстосум"}, -{"usage": "nick", "name": "Полковник"}, -{"usage": "nick", "name": "Коматоз"}, -{"usage": "nick", "name": "Комбо"}, -{"usage": "nick", "name": "Очень смешно"}, -{"usage": "nick", "name": "Комета"}, -{"usage": "nick", "name": "Душа компании"}, -{"usage": "nick", "name": "Кон"}, -{"usage": "nick", "name": "Фейл"}, -{"usage": "nick", "name": "Ракушка"}, -{"usage": "nick", "name": "Поплачься"}, -{"usage": "nick", "name": "Состав"}, -{"usage": "nick", "name": "Контрабанда"}, -{"usage": "nick", "name": "Печенька"}, -{"usage": "nick", "name": "Халтура"}, -{"usage": "nick", "name": "Медяк"}, -{"usage": "nick", "name": "Да-да"}, -{"usage": "nick", "name": "Штопор"}, -{"usage": "nick", "name": "Дурашка"}, -{"usage": "nick", "name": "Космо"}, -{"usage": "nick", "name": "До зарезу"}, -{"usage": "nick", "name": "Табло"}, -{"usage": "nick", "name": "Не скажу"}, -{"usage": "nick", "name": "Кавабанга"}, -{"usage": "nick", "name": "Койот"}, -{"usage": "nick", "name": "Краб"}, -{"usage": "nick", "name": "Супер-пупер"}, -{"usage": "nick", "name": "Крэш"}, -{"usage": "nick", "name": "Кратер"}, -{"usage": "nick", "name": "Я хочу"}, -{"usage": "nick", "name": "Деньги решают"}, -{"usage": "nick", "name": "Крещендо"}, -{"usage": "nick", "name": "Печалька"}, -{"usage": "nick", "name": "Пурпур"}, -{"usage": "nick", "name": "Как по маслу"}, -{"usage": "nick", "name": "Перекрёст"}, -{"usage": "nick", "name": "Ква"}, -{"usage": "nick", "name": "Лапоть"}, -{"usage": "nick", "name": "Жулик"}, -{"usage": "nick", "name": "Ворон"}, -{"usage": "nick", "name": "Ни гроша"}, -{"usage": "nick", "name": "Крейсер"}, -{"usage": "nick", "name": "Мудила"}, -{"usage": "nick", "name": "Вот блин"}, -{"usage": "nick", "name": "В стельку"}, -{"usage": "nick", "name": "Стерва"}, -{"usage": "nick", "name": "Криптид"}, -{"usage": "nick", "name": "Куатро"}, -{"usage": "nick", "name": "Ку-ку"}, -{"usage": "nick", "name": "Деревня"}, -{"usage": "nick", "name": "Амур"}, -{"usage": "nick", "name": "Таблетка"}, -{"usage": "nick", "name": "Кудряшка"}, -{"usage": "nick", "name": "Проклятье"}, -{"usage": "nick", "name": "Милочка"}, -{"usage": "nick", "name": "Циан"}, -{"usage": "nick", "name": "Цианид"}, -{"usage": "nick", "name": "Кибер"}, -{"usage": "nick", "name": "Циклон"}, -{"usage": "nick", "name": "Циклоп"}, -{"usage": "nick", "name": "Знаток"}, -{"usage": "nick", "name": "Не все дома"}, -{"usage": "nick", "name": "Кинжал"}, -{"usage": "nick", "name": "Даллас"}, -{"usage": "nick", "name": "Сцуко"}, -{"usage": "nick", "name": "Угроза"}, -{"usage": "nick", "name": "Тьма"}, -{"usage": "nick", "name": "Дорогуша"}, -{"usage": "nick", "name": "Дарт"}, -{"usage": "nick", "name": "Дата"}, -{"usage": "nick", "name": "Снайпер"}, -{"usage": "nick", "name": "Зая"}, -{"usage": "nick", "name": "Обманка"}, -{"usage": "nick", "name": "Ди"}, -{"usage": "nick", "name": "Проныра"}, -{"usage": "nick", "name": "Дельта"}, -{"usage": "nick", "name": "Деми"}, -{"usage": "nick", "name": "Демон"}, -{"usage": "nick", "name": "Безнадёга"}, -{"usage": "nick", "name": "Боже"}, -{"usage": "nick", "name": "Дьявол"}, -{"usage": "nick", "name": "Дью"}, -{"usage": "nick", "name": "Диабло"}, -{"usage": "nick", "name": "Алмаз"}, -{"usage": "nick", "name": "Даймондбэк"}, -{"usage": "nick", "name": "Это моё"}, -{"usage": "nick", "name": "Кубик"}, -{"usage": "nick", "name": "Дизель"}, -{"usage": "nick", "name": "Дижон"}, -{"usage": "nick", "name": "Дилемма"}, -{"usage": "nick", "name": "Туман"}, -{"usage": "nick", "name": "Грош"}, -{"usage": "nick", "name": "Ямочки"}, -{"usage": "nick", "name": "Дино"}, -{"usage": "nick", "name": "Отчаяние"}, -{"usage": "nick", "name": "Реквием"}, -{"usage": "nick", "name": "Диско"}, -{"usage": "nick", "name": "То же"}, -{"usage": "nick", "name": "Совсем того"}, -{"usage": "nick", "name": "Джинн"}, -{"usage": "nick", "name": "Мёртвое тело"}, -{"usage": "nick", "name": "Док"}, -{"usage": "nick", "name": "Додик"}, -{"usage": "nick", "name": "Псина"}, -{"usage": "nick", "name": "Депрессия"}, -{"usage": "nick", "name": "Куколка"}, -{"usage": "nick", "name": "Ишак"}, -{"usage": "nick", "name": "Косячок"}, -{"usage": "nick", "name": "Штуковина"}, -{"usage": "nick", "name": "Рок"}, -{"usage": "nick", "name": "Судный день"}, -{"usage": "nick", "name": "Дурь"}, -{"usage": "nick", "name": "Торчок"}, -{"usage": "nick", "name": "Двойник"}, -{"usage": "nick", "name": "Ничоси"}, -{"usage": "nick", "name": "Дабл"}, -{"usage": "nick", "name": "Богач"}, -{"usage": "nick", "name": "Отпад"}, -{"usage": "nick", "name": "Драко"}, -{"usage": "nick", "name": "Дракон"}, -{"usage": "nick", "name": "Страх"}, -{"usage": "nick", "name": "Дредноут"}, -{"usage": "nick", "name": "Дрифт"}, -{"usage": "nick", "name": "Дрифтер"}, -{"usage": "nick", "name": "Дроид"}, -{"usage": "nick", "name": "Общак"}, -{"usage": "nick", "name": "Друид"}, -{"usage": "nick", "name": "Сладость"}, -{"usage": "nick", "name": "Нежность"}, -{"usage": "nick", "name": "Ни бум-бум"}, -{"usage": "nick", "name": "Тупица"}, -{"usage": "nick", "name": "Дамбо"}, -{"usage": "nick", "name": "Пышка"}, -{"usage": "nick", "name": "Дандер"}, -{"usage": "nick", "name": "Всё тлен"}, -{"usage": "nick", "name": "Голландец"}, -{"usage": "nick", "name": "Динамо"}, -{"usage": "nick", "name": "Диз"}, -{"usage": "nick", "name": "Восток"}, -{"usage": "nick", "name": "Успокойся"}, -{"usage": "nick", "name": "Эйбон"}, -{"usage": "nick", "name": "Эхо"}, -{"usage": "nick", "name": "Затмение"}, -{"usage": "nick", "name": "Экстази"}, -{"usage": "nick", "name": "Угорь"}, -{"usage": "nick", "name": "Умник"}, -{"usage": "nick", "name": "Эго"}, -{"usage": "nick", "name": "Восьмёрка"}, -{"usage": "nick", "name": "Эйтс"}, -{"usage": "nick", "name": "Эйнштейн"}, -{"usage": "nick", "name": "Или-или"}, -{"usage": "nick", "name": "Кончина"}, -{"usage": "nick", "name": "Эль Диабло"}, -{"usage": "nick", "name": "Старпёр"}, -{"usage": "nick", "name": "Клёво"}, -{"usage": "nick", "name": "Элемент"}, -{"usage": "nick", "name": "Элита"}, -{"usage": "nick", "name": "Изумруд"}, -{"usage": "nick", "name": "На бис"}, -{"usage": "nick", "name": "Конец света"}, -{"usage": "nick", "name": "Эндер"}, -{"usage": "nick", "name": "Вышибала"}, -{"usage": "nick", "name": "Энигма"}, -{"usage": "nick", "name": "Зависть"}, -{"usage": "nick", "name": "Эпсилон"}, -{"usage": "nick", "name": "День-и-ночь"}, -{"usage": "nick", "name": "Эрида"}, -{"usage": "nick", "name": "Эсквайр"}, -{"usage": "nick", "name": "Эта"}, -{"usage": "nick", "name": "Эфир"}, -{"usage": "nick", "name": "Этимология"}, -{"usage": "nick", "name": "Эврика"}, -{"usage": "nick", "name": "Евротрэш"}, -{"usage": "nick", "name": "Изгой"}, -{"usage": "nick", "name": "На выход"}, -{"usage": "nick", "name": "Экзо"}, -{"usage": "nick", "name": "Академик"}, -{"usage": "nick", "name": "Мне-с-собой"}, -{"usage": "nick", "name": "Глаза"}, -{"usage": "nick", "name": "Красота"}, -{"usage": "nick", "name": "Лицо"}, -{"usage": "nick", "name": "Вера"}, -{"usage": "nick", "name": "Сокол"}, -{"usage": "nick", "name": "Падший"}, -{"usage": "nick", "name": "Фанданго"}, -{"usage": "nick", "name": "Фантастика"}, -{"usage": "nick", "name": "Лайк"}, -{"usage": "nick", "name": "Ужас"}, -{"usage": "nick", "name": "Крошка"}, -{"usage": "nick", "name": "Фехтовальщик"}, -{"usage": "nick", "name": "Хорёк"}, -{"usage": "nick", "name": "Феска"}, -{"usage": "nick", "name": "Скрипач"}, -{"usage": "nick", "name": "Бляха-муха"}, -{"usage": "nick", "name": "Фидо"}, -{"usage": "nick", "name": "Нарик"}, -{"usage": "nick", "name": "Лохотрон"}, -{"usage": "nick", "name": "Финал"}, -{"usage": "nick", "name": "Два пальца"}, -{"usage": "nick", "name": "Пламя"}, -{"usage": "nick", "name": "Головёшка"}, -{"usage": "nick", "name": "Пироманьяк"}, -{"usage": "nick", "name": "Петарда"}, -{"usage": "nick", "name": "Фаервол"}, -{"usage": "nick", "name": "Раз"}, -{"usage": "nick", "name": "Рыбка"}, -{"usage": "nick", "name": "Кулак"}, -{"usage": "nick", "name": "Мордобой"}, -{"usage": "nick", "name": "Дай пять"}, -{"usage": "nick", "name": "Фикс"}, -{"usage": "nick", "name": "Шипучка"}, -{"usage": "nick", "name": "Флак"}, -{"usage": "nick", "name": "Фламинго"}, -{"usage": "nick", "name": "Флэш"}, -{"usage": "nick", "name": "Флатландец"}, -{"usage": "nick", "name": "Не жилец"}, -{"usage": "nick", "name": "Блоха"}, -{"usage": "nick", "name": "Фильмец"}, -{"usage": "nick", "name": "Флиппер"}, -{"usage": "nick", "name": "Потопали"}, -{"usage": "nick", "name": "Флорида"}, -{"usage": "nick", "name": "Запой"}, -{"usage": "nick", "name": "Кидала"}, -{"usage": "nick", "name": "Флейта"}, -{"usage": "nick", "name": "Муха"}, -{"usage": "nick", "name": "Летучка"}, -{"usage": "nick", "name": "Липучка"}, -{"usage": "nick", "name": "Фокус"}, -{"usage": "nick", "name": "Рапира"}, -{"usage": "nick", "name": "Селюк"}, -{"usage": "nick", "name": "Дубина"}, -{"usage": "nick", "name": "Олень"}, -{"usage": "nick", "name": "Свобода"}, -{"usage": "nick", "name": "Удача"}, -{"usage": "nick", "name": "Четвёрка"}, -{"usage": "nick", "name": "Лиса"}, -{"usage": "nick", "name": "Скандал"}, -{"usage": "nick", "name": "Франция"}, -{"usage": "nick", "name": "Фрик"}, -{"usage": "nick", "name": "Стоять-бояться"}, -{"usage": "nick", "name": "По-французски"}, -{"usage": "nick", "name": "Напряг"}, -{"usage": "nick", "name": "Пятница"}, -{"usage": "nick", "name": "Лягушка"}, -{"usage": "nick", "name": "Шило-в-жопе"}, -{"usage": "nick", "name": "Фром"}, -{"usage": "nick", "name": "Фронт"}, -{"usage": "nick", "name": "Фрост"}, -{"usage": "nick", "name": "Фри"}, -{"usage": "nick", "name": "Всё, пиздец"}, -{"usage": "nick", "name": "Ириска"}, -{"usage": "nick", "name": "Огонь"}, -{"usage": "nick", "name": "Фурия"}, -{"usage": "nick", "name": "Будущее"}, -{"usage": "nick", "name": "Пушистик"}, -{"usage": "nick", "name": "Атас"}, -{"usage": "nick", "name": "Галактика"}, -{"usage": "nick", "name": "Игрок"}, -{"usage": "nick", "name": "Гамма"}, -{"usage": "nick", "name": "Гаргулья"}, -{"usage": "nick", "name": "Гранат"}, -{"usage": "nick", "name": "Пустышка"}, -{"usage": "nick", "name": "Сальник"}, -{"usage": "nick", "name": "Гатлинг"}, -{"usage": "nick", "name": "Гэйтор"}, -{"usage": "nick", "name": "Гаучо"}, -{"usage": "nick", "name": "Шестерня"}, -{"usage": "nick", "name": "Шмотки"}, -{"usage": "nick", "name": "Геккон"}, -{"usage": "nick", "name": "Чудак"}, -{"usage": "nick", "name": "Самоцвет"}, -{"usage": "nick", "name": "Близнец"}, -{"usage": "nick", "name": "Аккурат"}, -{"usage": "nick", "name": "Гео"}, -{"usage": "nick", "name": "Джорди"}, -{"usage": "nick", "name": "Бацилла"}, -{"usage": "nick", "name": "Немец"}, -{"usage": "nick", "name": "Германия"}, -{"usage": "nick", "name": "Призрак"}, -{"usage": "nick", "name": "Гига"}, -{"usage": "nick", "name": "Ололо"}, -{"usage": "nick", "name": "Рыжик"}, -{"usage": "nick", "name": "Гизмо"}, -{"usage": "nick", "name": "Гладиус"}, -{"usage": "nick", "name": "Вспышка"}, -{"usage": "nick", "name": "Глюк"}, -{"usage": "nick", "name": "Аж светится"}, -{"usage": "nick", "name": "Обжора"}, -{"usage": "nick", "name": "Выкуси"}, -{"usage": "nick", "name": "Козлина"}, -{"usage": "nick", "name": "Гоблин"}, -{"usage": "nick", "name": "Боженька"}, -{"usage": "nick", "name": "Годзилла"}, -{"usage": "nick", "name": "Золото"}, -{"usage": "nick", "name": "Высший класс"}, -{"usage": "nick", "name": "Голем"}, -{"usage": "nick", "name": "Гольф"}, -{"usage": "nick", "name": "Ей-богу"}, -{"usage": "nick", "name": "Гонг"}, -{"usage": "nick", "name": "Чайник"}, -{"usage": "nick", "name": "В порядке"}, -{"usage": "nick", "name": "Маня"}, -{"usage": "nick", "name": "Двачер"}, -{"usage": "nick", "name": "Гусь"}, -{"usage": "nick", "name": "Мурашки"}, -{"usage": "nick", "name": "Кровь-кишки"}, -{"usage": "nick", "name": "Горгона"}, -{"usage": "nick", "name": "Паутинка"}, -{"usage": "nick", "name": "Авторитет"}, -{"usage": "nick", "name": "Гранде"}, -{"usage": "nick", "name": "Серость"}, -{"usage": "nick", "name": "Грязь"}, -{"usage": "nick", "name": "Фу"}, -{"usage": "nick", "name": "Греция"}, -{"usage": "nick", "name": "Жадина"}, -{"usage": "nick", "name": "Грек"}, -{"usage": "nick", "name": "Зелень"}, -{"usage": "nick", "name": "Салага"}, -{"usage": "nick", "name": "Гремлин"}, -{"usage": "nick", "name": "Тоска"}, -{"usage": "nick", "name": "Уныло"}, -{"usage": "nick", "name": "Лыба"}, -{"usage": "nick", "name": "Ворчун"}, -{"usage": "nick", "name": "Хочу и бухчу"}, -{"usage": "nick", "name": "Грифон"}, -{"usage": "nick", "name": "Гуахиро"}, -{"usage": "nick", "name": "Гуава"}, -{"usage": "nick", "name": "Хитрец"}, -{"usage": "nick", "name": "Леденец"}, -{"usage": "nick", "name": "Выскочка"}, -{"usage": "nick", "name": "Гуру"}, -{"usage": "nick", "name": "Кишка"}, -{"usage": "nick", "name": "Толчок"}, -{"usage": "nick", "name": "Цыган"}, -{"usage": "nick", "name": "Гиро"}, -{"usage": "nick", "name": "Патлы"}, -{"usage": "nick", "name": "Тишь да гладь"}, -{"usage": "nick", "name": "Жиробас"}, -{"usage": "nick", "name": "Молот"}, -{"usage": "nick", "name": "Дам-по-морде"}, -{"usage": "nick", "name": "Ганнибал"}, -{"usage": "nick", "name": "Счастье"}, -{"usage": "nick", "name": "Жжошь"}, -{"usage": "nick", "name": "Каска"}, -{"usage": "nick", "name": "Заяц"}, -{"usage": "nick", "name": "Куриные мозги"}, -{"usage": "nick", "name": "Гарпия"}, -{"usage": "nick", "name": "Тесак"}, -{"usage": "nick", "name": "Гавана"}, -{"usage": "nick", "name": "10 из 10"}, -{"usage": "nick", "name": "Нищенка"}, -{"usage": "nick", "name": "Хаос"}, -{"usage": "nick", "name": "Ястреб"}, -{"usage": "nick", "name": "Зоркий глаз"}, -{"usage": "nick", "name": "Дымок"}, -{"usage": "nick", "name": "Сломя голову"}, -{"usage": "nick", "name": "Бессердечная сука"}, -{"usage": "nick", "name": "Пекло"}, -{"usage": "nick", "name": "Пшёл вон"}, -{"usage": "nick", "name": "Хэви"}, -{"usage": "nick", "name": "Умеет пить"}, -{"usage": "nick", "name": "Наследник"}, -{"usage": "nick", "name": "Чертовски"}, -{"usage": "nick", "name": "Чертовка"}, -{"usage": "nick", "name": "Дьяволёнок"}, -{"usage": "nick", "name": "Из ада"}, -{"usage": "nick", "name": "Болиголов"}, -{"usage": "nick", "name": "Дурной глаз"}, -{"usage": "nick", "name": "В расцвете сил"}, -{"usage": "nick", "name": "Гикори"}, -{"usage": "nick", "name": "Хайд"}, -{"usage": "nick", "name": "Полдень"}, -{"usage": "nick", "name": "Каланча"}, -{"usage": "nick", "name": "Весёлый шутник"}, -{"usage": "nick", "name": "Хамло"}, -{"usage": "nick", "name": "Подскажу"}, -{"usage": "nick", "name": "Ништяк"}, -{"usage": "nick", "name": "Бегемот"}, -{"usage": "nick", "name": "Хипстер"}, -{"usage": "nick", "name": "Хит"}, -{"usage": "nick", "name": "Бутер"}, -{"usage": "nick", "name": "Бомж"}, -{"usage": "nick", "name": "Бардак"}, -{"usage": "nick", "name": "Ты бредишь"}, -{"usage": "nick", "name": "Ересь"}, -{"usage": "nick", "name": "Гол"}, -{"usage": "nick", "name": "Ласточка"}, -{"usage": "nick", "name": "Крюк"}, -{"usage": "nick", "name": "Хулиган"}, -{"usage": "nick", "name": "Верзила"}, -{"usage": "nick", "name": "Остряк"}, -{"usage": "nick", "name": "Посиделки"}, -{"usage": "nick", "name": "Сиська"}, -{"usage": "nick", "name": "Навеселе"}, -{"usage": "nick", "name": "Попрыгун"}, -{"usage": "nick", "name": "Братан"}, -{"usage": "nick", "name": "Все ко мне"}, -{"usage": "nick", "name": "Горячо"}, -{"usage": "nick", "name": "Хот дог"}, -{"usage": "nick", "name": "Горячая штучка"}, -{"usage": "nick", "name": "Отель"}, -{"usage": "nick", "name": "Поджига"}, -{"usage": "nick", "name": "Секси"}, -{"usage": "nick", "name": "Хвастун"}, -{"usage": "nick", "name": "Гуддини"}, -{"usage": "nick", "name": "Гончая"}, -{"usage": "nick", "name": "Я подожду"}, -{"usage": "nick", "name": "Вой"}, -{"usage": "nick", "name": "Высокомерие"}, -{"usage": "nick", "name": "Халк"}, -{"usage": "nick", "name": "Дичь"}, -{"usage": "nick", "name": "Высший сорт"}, -{"usage": "nick", "name": "Сотка"}, -{"usage": "nick", "name": "Голод"}, -{"usage": "nick", "name": "Жрать охота"}, -{"usage": "nick", "name": "Гидра"}, -{"usage": "nick", "name": "Хайп"}, -{"usage": "nick", "name": "Гипер"}, -{"usage": "nick", "name": "Гипердрайв"}, -{"usage": "nick", "name": "Гипно"}, -{"usage": "nick", "name": "Козлёнок"}, -{"usage": "nick", "name": "Лёд"}, -{"usage": "nick", "name": "Ледокол"}, -{"usage": "nick", "name": "Тьфу"}, -{"usage": "nick", "name": "Икона"}, -{"usage": "nick", "name": "Идол"}, -{"usage": "nick", "name": "Берлога"}, -{"usage": "nick", "name": "Зажигание"}, -{"usage": "nick", "name": "Видение"}, -{"usage": "nick", "name": "Бес"}, -{"usage": "nick", "name": "Понаех"}, -{"usage": "nick", "name": "Импульс"}, -{"usage": "nick", "name": "Инкогнито"}, -{"usage": "nick", "name": "Невероятно"}, -{"usage": "nick", "name": "Индия"}, -{"usage": "nick", "name": "Инди"}, -{"usage": "nick", "name": "Индиго"}, -{"usage": "nick", "name": "Индонезия"}, -{"usage": "nick", "name": "Индианаполис"}, -{"usage": "nick", "name": "Инферно"}, -{"usage": "nick", "name": "Татуха"}, -{"usage": "nick", "name": "Инспектор"}, -{"usage": "nick", "name": "Сейчас же"}, -{"usage": "nick", "name": "Интро"}, -{"usage": "nick", "name": "Йота"}, -{"usage": "nick", "name": "Ирландец"}, -{"usage": "nick", "name": "Железо"}, -{"usage": "nick", "name": "Железная воля"}, -{"usage": "nick", "name": "Коляска"}, -{"usage": "nick", "name": "Ирвинг"}, -{"usage": "nick", "name": "Остров"}, -{"usage": "nick", "name": "Итальяшка"}, -{"usage": "nick", "name": "Италия"}, -{"usage": "nick", "name": "Аж зудит"}, -{"usage": "nick", "name": "Блеск"}, -{"usage": "nick", "name": "Мелочь"}, -{"usage": "nick", "name": "Кремень"}, -{"usage": "nick", "name": "Шакал"}, -{"usage": "nick", "name": "Дублин"}, -{"usage": "nick", "name": "Джейд"}, -{"usage": "nick", "name": "Окленд"}, -{"usage": "nick", "name": "Драндулет"}, -{"usage": "nick", "name": "Джем"}, -{"usage": "nick", "name": "Плимут"}, -{"usage": "nick", "name": "Сапог"}, -{"usage": "nick", "name": "Харочо"}, -{"usage": "nick", "name": "Пасть порву"}, -{"usage": "nick", "name": "Челюсти"}, -{"usage": "nick", "name": "Джаз"}, -{"usage": "nick", "name": "Джедай"}, -{"usage": "nick", "name": "Желе"}, -{"usage": "nick", "name": "Тебе печёт"}, -{"usage": "nick", "name": "Шут"}, -{"usage": "nick", "name": "Барахло"}, -{"usage": "nick", "name": "Жемчужина"}, -{"usage": "nick", "name": "Пляска"}, -{"usage": "nick", "name": "Пила"}, -{"usage": "nick", "name": "Борцуха"}, -{"usage": "nick", "name": "Джокер"}, -{"usage": "nick", "name": "Оптимист"}, -{"usage": "nick", "name": "Жердь"}, -{"usage": "nick", "name": "Джорни"}, -{"usage": "nick", "name": "Господь"}, -{"usage": "nick", "name": "Судия"}, -{"usage": "nick", "name": "Джаггернаут"}, -{"usage": "nick", "name": "Моё почтение"}, -{"usage": "nick", "name": "Самый сок"}, -{"usage": "nick", "name": "Оберег"}, -{"usage": "nick", "name": "Джамбо"}, -{"usage": "nick", "name": "Прыг-скок"}, -{"usage": "nick", "name": "Прыгун"}, -{"usage": "nick", "name": "Юпитер"}, -{"usage": "nick", "name": "Правосудие"}, -{"usage": "nick", "name": "Кайзер"}, -{"usage": "nick", "name": "Каппа"}, -{"usage": "nick", "name": "Капут"}, -{"usage": "nick", "name": "Бултых"}, -{"usage": "nick", "name": "Кевлар"}, -{"usage": "nick", "name": "Пивко"}, -{"usage": "nick", "name": "Медным тазом"}, -{"usage": "nick", "name": "Дверь запили"}, -{"usage": "nick", "name": "Ребёнок"}, -{"usage": "nick", "name": "Киллер"}, -{"usage": "nick", "name": "Кайфолом"}, -{"usage": "nick", "name": "Килограмм"}, -{"usage": "nick", "name": "Зимородок"}, -{"usage": "nick", "name": "Вор в законе"}, -{"usage": "nick", "name": "Такие дела"}, -{"usage": "nick", "name": "Чмок-чмок"}, -{"usage": "nick", "name": "Киви"}, -{"usage": "nick", "name": "Рыцарь"}, -{"usage": "nick", "name": "В отрубе"}, -{"usage": "nick", "name": "Денежка"}, -{"usage": "nick", "name": "Костяшки"}, -{"usage": "nick", "name": "Капитан Очевидность"}, -{"usage": "nick", "name": "Кракен"}, -{"usage": "nick", "name": "Фриц"}, -{"usage": "nick", "name": "Камрад"}, -{"usage": "nick", "name": "Дружок"}, -{"usage": "nick", "name": "Лямбда"}, -{"usage": "nick", "name": "Фонарь"}, -{"usage": "nick", "name": "Сухопутная крыса"}, -{"usage": "nick", "name": "Ляпис"}, -{"usage": "nick", "name": "Торопыга"}, -{"usage": "nick", "name": "Лазер"}, -{"usage": "nick", "name": "Лава"}, -{"usage": "nick", "name": "Свинец"}, -{"usage": "nick", "name": "Пиявка"}, -{"usage": "nick", "name": "Левак"}, -{"usage": "nick", "name": "Лимон"}, -{"usage": "nick", "name": "Лео"}, -{"usage": "nick", "name": "Левиафан"}, -{"usage": "nick", "name": "Моё спасение"}, -{"usage": "nick", "name": "Свет"}, -{"usage": "nick", "name": "Молния"}, -{"usage": "nick", "name": "Мне хватит"}, -{"usage": "nick", "name": "Лайтер"}, -{"usage": "nick", "name": "Лима"}, -{"usage": "nick", "name": "Лайм"}, -{"usage": "nick", "name": "Морячок"}, -{"usage": "nick", "name": "Слабак"}, -{"usage": "nick", "name": "Акцент"}, -{"usage": "nick", "name": "Линк"}, -{"usage": "nick", "name": "Подшофе"}, -{"usage": "nick", "name": "Ящер"}, -{"usage": "nick", "name": "Закрыто"}, -{"usage": "nick", "name": "Хикки"}, -{"usage": "nick", "name": "Столбняк"}, -{"usage": "nick", "name": "Локо"}, -{"usage": "nick", "name": "Лойнер"}, -{"usage": "nick", "name": "Одиночка"}, -{"usage": "nick", "name": "Мочалка"}, -{"usage": "nick", "name": "Лазейка"}, -{"usage": "nick", "name": "Лузер"}, -{"usage": "nick", "name": "Любовник"}, -{"usage": "nick", "name": "Счастливчик"}, -{"usage": "nick", "name": "Шишка"}, -{"usage": "nick", "name": "Соблазн"}, -{"usage": "nick", "name": "Пьяница"}, -{"usage": "nick", "name": "Похоть"}, -{"usage": "nick", "name": "Семиструнка"}, -{"usage": "nick", "name": "Люкс"}, -{"usage": "nick", "name": "Киса"}, -{"usage": "nick", "name": "Лирика"}, -{"usage": "nick", "name": "Мак"}, -{"usage": "nick", "name": "Машина"}, -{"usage": "nick", "name": "Эй, красотка"}, -{"usage": "nick", "name": "Макем"}, -{"usage": "nick", "name": "Бешеный пёс"}, -{"usage": "nick", "name": "Сорванец"}, -{"usage": "nick", "name": "Мадраси"}, -{"usage": "nick", "name": "Водоворот"}, -{"usage": "nick", "name": "Маджента"}, -{"usage": "nick", "name": "Слизняк"}, -{"usage": "nick", "name": "Магия"}, -{"usage": "nick", "name": "Магнум"}, -{"usage": "nick", "name": "Дай сигу"}, -{"usage": "nick", "name": "Дева"}, -{"usage": "nick", "name": "Материк"}, -{"usage": "nick", "name": "Мажор"}, -{"usage": "nick", "name": "Пургу несёшь"}, -{"usage": "nick", "name": "Малибу"}, -{"usage": "nick", "name": "Великан"}, -{"usage": "nick", "name": "Маньяк"}, -{"usage": "nick", "name": "Шары"}, -{"usage": "nick", "name": "Марс"}, -{"usage": "nick", "name": "Маска"}, -{"usage": "nick", "name": "Вожу-как-мудак"}, -{"usage": "nick", "name": "Мастер"}, -{"usage": "nick", "name": "Майя"}, -{"usage": "nick", "name": "Помогите"}, -{"usage": "nick", "name": "Беспредел"}, -{"usage": "nick", "name": "Медовуха"}, -{"usage": "nick", "name": "Медаль"}, -{"usage": "nick", "name": "Медичи"}, -{"usage": "nick", "name": "Мега"}, -{"usage": "nick", "name": "Расслабон"}, -{"usage": "nick", "name": "С катушек"}, -{"usage": "nick", "name": "Битард"}, -{"usage": "nick", "name": "Мяу"}, -{"usage": "nick", "name": "Наёмник"}, -{"usage": "nick", "name": "Барыга"}, -{"usage": "nick", "name": "Меркурий"}, -{"usage": "nick", "name": "Мерлин"}, -{"usage": "nick", "name": "Мета"}, -{"usage": "nick", "name": "Металл"}, -{"usage": "nick", "name": "Мичиган"}, -{"usage": "nick", "name": "Микро"}, -{"usage": "nick", "name": "Мидас"}, -{"usage": "nick", "name": "Карлан"}, -{"usage": "nick", "name": "Милка"}, -{"usage": "nick", "name": "Так-же-как-все"}, -{"usage": "nick", "name": "Миллион"}, -{"usage": "nick", "name": "Нюня"}, -{"usage": "nick", "name": "Вне правил"}, -{"usage": "nick", "name": "Мини"}, -{"usage": "nick", "name": "Миньон"}, -{"usage": "nick", "name": "Минор"}, -{"usage": "nick", "name": "Мята"}, -{"usage": "nick", "name": "Мираж"}, -{"usage": "nick", "name": "Микс"}, -{"usage": "nick", "name": "Мнемоник"}, -{"usage": "nick", "name": "Пухлик"}, -{"usage": "nick", "name": "Моджо"}, -{"usage": "nick", "name": "Момо"}, -{"usage": "nick", "name": "Монарх"}, -{"usage": "nick", "name": "Понедельник"}, -{"usage": "nick", "name": "Без меры"}, -{"usage": "nick", "name": "Деньги"}, -{"usage": "nick", "name": "Австрияк"}, -{"usage": "nick", "name": "Погоняло"}, -{"usage": "nick", "name": "Монах"}, -{"usage": "nick", "name": "Макака"}, -{"usage": "nick", "name": "Чудище"}, -{"usage": "nick", "name": "Му"}, -{"usage": "nick", "name": "Нахаляву"}, -{"usage": "nick", "name": "Луна"}, -{"usage": "nick", "name": "Мунрейкер"}, -{"usage": "nick", "name": "Лунатик"}, -{"usage": "nick", "name": "Лось"}, -{"usage": "nick", "name": "Морфей"}, -{"usage": "nick", "name": "Мотор"}, -{"usage": "nick", "name": "Язык-без-костей"}, -{"usage": "nick", "name": "Мышка"}, -{"usage": "nick", "name": "Мю"}, -{"usage": "nick", "name": "Грязнуля"}, -{"usage": "nick", "name": "Мне хреново"}, -{"usage": "nick", "name": "Кексик"}, -{"usage": "nick", "name": "Вторая попытка"}, -{"usage": "nick", "name": "Маппет"}, -{"usage": "nick", "name": "Шорох"}, -{"usage": "nick", "name": "Мусаси"}, -{"usage": "nick", "name": "Музло"}, -{"usage": "nick", "name": "Хлам"}, -{"usage": "nick", "name": "Метис"}, -{"usage": "nick", "name": "Тайна"}, -{"usage": "nick", "name": "Миф"}, -{"usage": "nick", "name": "Голышом"}, -{"usage": "nick", "name": "Угар"}, -{"usage": "nick", "name": "Нара"}, -{"usage": "nick", "name": "Нарко"}, -{"usage": "nick", "name": "Какая гадость"}, -{"usage": "nick", "name": "Навигатор"}, -{"usage": "nick", "name": "Флот"}, -{"usage": "nick", "name": "Не-а"}, -{"usage": "nick", "name": "Небула"}, -{"usage": "nick", "name": "Некро"}, -{"usage": "nick", "name": "Иголка"}, -{"usage": "nick", "name": "Немезида"}, -{"usage": "nick", "name": "Нео"}, -{"usage": "nick", "name": "Нептун"}, -{"usage": "nick", "name": "Нерон"}, -{"usage": "nick", "name": "Новичок"}, -{"usage": "nick", "name": "Ньюфи"}, -{"usage": "nick", "name": "Ньют"}, -{"usage": "nick", "name": "Это тупо"}, -{"usage": "nick", "name": "Пятак"}, -{"usage": "nick", "name": "Ночь"}, -{"usage": "nick", "name": "Сова"}, -{"usage": "nick", "name": "Ничего"}, -{"usage": "nick", "name": "Ноль"}, -{"usage": "nick", "name": "Девятка"}, -{"usage": "nick", "name": "Чмошник"}, -{"usage": "nick", "name": "Ниндзя"}, -{"usage": "nick", "name": "Нитро"}, -{"usage": "nick", "name": "Нуар"}, -{"usage": "nick", "name": "Кочевник"}, -{"usage": "nick", "name": "Северянин"}, -{"usage": "nick", "name": "Север"}, -{"usage": "nick", "name": "Норд-вест"}, -{"usage": "nick", "name": "Нова"}, -{"usage": "nick", "name": "Ноябрь"}, -{"usage": "nick", "name": "Нокс"}, -{"usage": "nick", "name": "Ню"}, -{"usage": "nick", "name": "Нуво"}, -{"usage": "nick", "name": "Бомба"}, -{"usage": "nick", "name": "Пустота"}, -{"usage": "nick", "name": "Онемение"}, -{"usage": "nick", "name": "Число"}, -{"usage": "nick", "name": "Болван"}, -{"usage": "nick", "name": "Слоупок"}, -{"usage": "nick", "name": "Псих"}, -{"usage": "nick", "name": "Оазис"}, -{"usage": "nick", "name": "Гобой"}, -{"usage": "nick", "name": "Океан"}, -{"usage": "nick", "name": "Оччо"}, -{"usage": "nick", "name": "Октан"}, -{"usage": "nick", "name": "Шанс"}, -{"usage": "nick", "name": "Огр"}, -{"usage": "nick", "name": "Океюшки"}, -{"usage": "nick", "name": "Омега"}, -{"usage": "nick", "name": "Знамение"}, -{"usage": "nick", "name": "Омикрон"}, -{"usage": "nick", "name": "Омни"}, -{"usage": "nick", "name": "Один"}, -{"usage": "nick", "name": "Оникс"}, -{"usage": "nick", "name": "У-упс"}, -{"usage": "nick", "name": "Забей"}, -{"usage": "nick", "name": "Опал"}, -{"usage": "nick", "name": "Чпок"}, -{"usage": "nick", "name": "Опус"}, -{"usage": "nick", "name": "Оракул"}, -{"usage": "nick", "name": "Апельсин"}, -{"usage": "nick", "name": "Осси"}, -{"usage": "nick", "name": "Уиджа"}, -{"usage": "nick", "name": "Бандит"}, -{"usage": "nick", "name": "Мне пора"}, -{"usage": "nick", "name": "Хорош уже"}, -{"usage": "nick", "name": "Переклинило"}, -{"usage": "nick", "name": "Отмена"}, -{"usage": "nick", "name": "Заточка"}, -{"usage": "nick", "name": "Оксфорд"}, -{"usage": "nick", "name": "Боль"}, -{"usage": "nick", "name": "Няшка"}, -{"usage": "nick", "name": "Старина"}, -{"usage": "nick", "name": "Паладин"}, -{"usage": "nick", "name": "Палео"}, -{"usage": "nick", "name": "Панацея"}, -{"usage": "nick", "name": "Стиляга"}, -{"usage": "nick", "name": "Панчо"}, -{"usage": "nick", "name": "Паника"}, -{"usage": "nick", "name": "Панцер"}, -{"usage": "nick", "name": "Совершенство"}, -{"usage": "nick", "name": "Между строк"}, -{"usage": "nick", "name": "Сушняк"}, -{"usage": "nick", "name": "Париж"}, -{"usage": "nick", "name": "Прилипала"}, -{"usage": "nick", "name": "Попугай"}, -{"usage": "nick", "name": "Макаронник"}, -{"usage": "nick", "name": "Пафос"}, -{"usage": "nick", "name": "Патриот"}, -{"usage": "nick", "name": "Пешка"}, -{"usage": "nick", "name": "Мир"}, -{"usage": "nick", "name": "Покой"}, -{"usage": "nick", "name": "Персик"}, -{"usage": "nick", "name": "Павлин"}, -{"usage": "nick", "name": "Тихоня"}, -{"usage": "nick", "name": "Братва"}, -{"usage": "nick", "name": "Коротышка"}, -{"usage": "nick", "name": "Пеликан"}, -{"usage": "nick", "name": "Пенни"}, -{"usage": "nick", "name": "Перфекционист"}, -{"usage": "nick", "name": "Хризолит"}, -{"usage": "nick", "name": "Громила"}, -{"usage": "nick", "name": "Петрикор"}, -{"usage": "nick", "name": "Фараон"}, -{"usage": "nick", "name": "Просто улёт"}, -{"usage": "nick", "name": "Фи"}, -{"usage": "nick", "name": "Ссыкло"}, -{"usage": "nick", "name": "Пи"}, -{"usage": "nick", "name": "Огурцом"}, -{"usage": "nick", "name": "Пиклз"}, -{"usage": "nick", "name": "Пико"}, -{"usage": "nick", "name": "Бродяга"}, -{"usage": "nick", "name": "Пайни"}, -{"usage": "nick", "name": "Пинки"}, -{"usage": "nick", "name": "Филиппины"}, -{"usage": "nick", "name": "Пинап"}, -{"usage": "nick", "name": "Пиранья"}, -{"usage": "nick", "name": "Пистолет"}, -{"usage": "nick", "name": "Пикс"}, -{"usage": "nick", "name": "Пицца"}, -{"usage": "nick", "name": "Шикос"}, -{"usage": "nick", "name": "Чума"}, -{"usage": "nick", "name": "Лампово"}, -{"usage": "nick", "name": "Платина"}, -{"usage": "nick", "name": "Ня"}, -{"usage": "nick", "name": "Плутон"}, -{"usage": "nick", "name": "По"}, -{"usage": "nick", "name": "Поэт"}, -{"usage": "nick", "name": "Пого"}, -{"usage": "nick", "name": "Ботан"}, -{"usage": "nick", "name": "Яд"}, -{"usage": "nick", "name": "Поленто"}, -{"usage": "nick", "name": "Пом"}, -{"usage": "nick", "name": "Пони"}, -{"usage": "nick", "name": "Стесняша"}, -{"usage": "nick", "name": "Пупсик"}, -{"usage": "nick", "name": "Поп"}, -{"usage": "nick", "name": "Дедуля"}, -{"usage": "nick", "name": "Недотёпа"}, -{"usage": "nick", "name": "Покайтеся"}, -{"usage": "nick", "name": "Позер"}, -{"usage": "nick", "name": "Угощайся"}, -{"usage": "nick", "name": "Пыщ-пыщ"}, -{"usage": "nick", "name": "Бледная немощь"}, -{"usage": "nick", "name": "Мощь"}, -{"usage": "nick", "name": "Моя прелесть"}, -{"usage": "nick", "name": "Престо"}, -{"usage": "nick", "name": "Крендель"}, -{"usage": "nick", "name": "Начальник"}, -{"usage": "nick", "name": "Колючка"}, -{"usage": "nick", "name": "Гордость"}, -{"usage": "nick", "name": "Примо"}, -{"usage": "nick", "name": "Принт"}, -{"usage": "nick", "name": "Призма"}, -{"usage": "nick", "name": "Приз"}, -{"usage": "nick", "name": "Профи"}, -{"usage": "nick", "name": "Вот свезло"}, -{"usage": "nick", "name": "Пророк"}, -{"usage": "nick", "name": "Респект"}, -{"usage": "nick", "name": "Прото"}, -{"usage": "nick", "name": "Пси"}, -{"usage": "nick", "name": "То есть"}, -{"usage": "nick", "name": "Психопат"}, -{"usage": "nick", "name": "Пирожок"}, -{"usage": "nick", "name": "Выдыхай"}, -{"usage": "nick", "name": "Пума"}, -{"usage": "nick", "name": "Пробойник"}, -{"usage": "nick", "name": "Сирень"}, -{"usage": "nick", "name": "Мур-мур"}, -{"usage": "nick", "name": "Есть чо"}, -{"usage": "nick", "name": "Кошечка"}, -{"usage": "nick", "name": "Питон"}, -{"usage": "nick", "name": "Знахарь"}, -{"usage": "nick", "name": "Квад"}, -{"usage": "nick", "name": "Недотрога"}, -{"usage": "nick", "name": "Встряска"}, -{"usage": "nick", "name": "Зашибись"}, -{"usage": "nick", "name": "Четвертак"}, -{"usage": "nick", "name": "Квазар"}, -{"usage": "nick", "name": "Квебек"}, -{"usage": "nick", "name": "Ртуть"}, -{"usage": "nick", "name": "Полтос"}, -{"usage": "nick", "name": "Тихо"}, -{"usage": "nick", "name": "Куинт"}, -{"usage": "nick", "name": "С прибабахом"}, -{"usage": "nick", "name": "Задачка"}, -{"usage": "nick", "name": "Кво"}, -{"usage": "nick", "name": "Цитатник"}, -{"usage": "nick", "name": "В кавычках"}, -{"usage": "nick", "name": "Отвал башки"}, -{"usage": "nick", "name": "Радар"}, -{"usage": "nick", "name": "Ярость"}, -{"usage": "nick", "name": "Регги"}, -{"usage": "nick", "name": "Всего понемногу"}, -{"usage": "nick", "name": "Трудоголик"}, -{"usage": "nick", "name": "Рэмбо"}, -{"usage": "nick", "name": "Развалина"}, -{"usage": "nick", "name": "Рейнджер"}, -{"usage": "nick", "name": "Второе пришествие"}, -{"usage": "nick", "name": "Шпана"}, -{"usage": "nick", "name": "Крыса"}, -{"usage": "nick", "name": "Трещотка"}, -{"usage": "nick", "name": "Рейв"}, -{"usage": "nick", "name": "Ворон"}, -{"usage": "nick", "name": "Выпилю"}, -{"usage": "nick", "name": "Бритва"}, -{"usage": "nick", "name": "Потрошитель"}, -{"usage": "nick", "name": "Бунтарь"}, -{"usage": "nick", "name": "Рэд"}, -{"usage": "nick", "name": "Деревенщина"}, -{"usage": "nick", "name": "По-новой"}, -{"usage": "nick", "name": "Вонючка"}, -{"usage": "nick", "name": "Хрен докажешь"}, -{"usage": "nick", "name": "Горец"}, -{"usage": "nick", "name": "Ремикс"}, -{"usage": "nick", "name": "Ретро"}, -{"usage": "nick", "name": "Преподобие"}, -{"usage": "nick", "name": "Откровение"}, -{"usage": "nick", "name": "Рекс"}, -{"usage": "nick", "name": "Рез"}, -{"usage": "nick", "name": "Носорог"}, -{"usage": "nick", "name": "Ро"}, -{"usage": "nick", "name": "Роди"}, -{"usage": "nick", "name": "Рикошет"}, -{"usage": "nick", "name": "Загадка"}, -{"usage": "nick", "name": "Наездник"}, -{"usage": "nick", "name": "Костыль"}, -{"usage": "nick", "name": "Риггер"}, -{"usage": "nick", "name": "Сматываемся"}, -{"usage": "nick", "name": "Риц"}, -{"usage": "nick", "name": "Бычок"}, -{"usage": "nick", "name": "Ты не пройдешь"}, -{"usage": "nick", "name": "Отвёртка"}, -{"usage": "nick", "name": "Сбитый лось"}, -{"usage": "nick", "name": "Скиталец"}, -{"usage": "nick", "name": "Робин"}, -{"usage": "nick", "name": "Робо"}, -{"usage": "nick", "name": "Скала"}, -{"usage": "nick", "name": "Ракета"}, -{"usage": "nick", "name": "Рокки"}, -{"usage": "nick", "name": "Ясно-понятно"}, -{"usage": "nick", "name": "Плут"}, -{"usage": "nick", "name": "Перепих"}, -{"usage": "nick", "name": "Ронин"}, -{"usage": "nick", "name": "Разводила"}, -{"usage": "nick", "name": "Рози"}, -{"usage": "nick", "name": "Румянец"}, -{"usage": "nick", "name": "Странник"}, -{"usage": "nick", "name": "Зевака"}, -{"usage": "nick", "name": "Рубин"}, -{"usage": "nick", "name": "Сопляк"}, -{"usage": "nick", "name": "Русский"}, -{"usage": "nick", "name": "Не заржавеет"}, -{"usage": "nick", "name": "Тебе бомбит"}, -{"usage": "nick", "name": "Расти"}, -{"usage": "nick", "name": "Клинок"}, -{"usage": "nick", "name": "Шпага"}, -{"usage": "nick", "name": "Мудрец"}, -{"usage": "nick", "name": "Святоша"}, -{"usage": "nick", "name": "Саламандра"}, -{"usage": "nick", "name": "Солт"}, -{"usage": "nick", "name": "Самурай"}, -{"usage": "nick", "name": "Санчез"}, -{"usage": "nick", "name": "Песок"}, -{"usage": "nick", "name": "Каро"}, -{"usage": "nick", "name": "Сэндвич"}, -{"usage": "nick", "name": "Врёт как дышит"}, -{"usage": "nick", "name": "Сапфир"}, -{"usage": "nick", "name": "Снежный человек"}, -{"usage": "nick", "name": "Суббота"}, -{"usage": "nick", "name": "Сатурн"}, -{"usage": "nick", "name": "Дикарь"}, -{"usage": "nick", "name": "Савант"}, -{"usage": "nick", "name": "Саксофон"}, -{"usage": "nick", "name": "Негодяй"}, -{"usage": "nick", "name": "Шрам"}, -{"usage": "nick", "name": "Разиня"}, -{"usage": "nick", "name": "Щепотка"}, -{"usage": "nick", "name": "Потомок"}, -{"usage": "nick", "name": "Припекло"}, -{"usage": "nick", "name": "Скорпион"}, -{"usage": "nick", "name": "Скаузер"}, -{"usage": "nick", "name": "Скаут"}, -{"usage": "nick", "name": "Не вовремя"}, -{"usage": "nick", "name": "Это царапина"}, -{"usage": "nick", "name": "На мели"}, -{"usage": "nick", "name": "Визгун"}, -{"usage": "nick", "name": "Сплетня"}, -{"usage": "nick", "name": "Коса"}, -{"usage": "nick", "name": "Секундочку"}, -{"usage": "nick", "name": "Два"}, -{"usage": "nick", "name": "Сепия"}, -{"usage": "nick", "name": "Механик"}, -{"usage": "nick", "name": "Семёрка"}, -{"usage": "nick", "name": "Три семёрки"}, -{"usage": "nick", "name": "Мрак"}, -{"usage": "nick", "name": "Тень"}, -{"usage": "nick", "name": "Причешись"}, -{"usage": "nick", "name": "Озноб"}, -{"usage": "nick", "name": "Трясучка"}, -{"usage": "nick", "name": "Акула"}, -{"usage": "nick", "name": "То, что надо"}, -{"usage": "nick", "name": "Расклад"}, -{"usage": "nick", "name": "Шейх"}, -{"usage": "nick", "name": "Розыгрыщ"}, -{"usage": "nick", "name": "Шериф"}, -{"usage": "nick", "name": "Шерлок"}, -{"usage": "nick", "name": "Туда-сюда"}, -{"usage": "nick", "name": "Нигга"}, -{"usage": "nick", "name": "Кайф"}, -{"usage": "nick", "name": "Перо"}, -{"usage": "nick", "name": "Дрожь"}, -{"usage": "nick", "name": "Шок"}, -{"usage": "nick", "name": "Кыш"}, -{"usage": "nick", "name": "Недомерок"}, -{"usage": "nick", "name": "Шоумэн"}, -{"usage": "nick", "name": "Ща будет"}, -{"usage": "nick", "name": "В клочки"}, -{"usage": "nick", "name": "Козявка"}, -{"usage": "nick", "name": "Мозгоправ"}, -{"usage": "nick", "name": "Уловка"}, -{"usage": "nick", "name": "Сицилиец"}, -{"usage": "nick", "name": "Сицилия"}, -{"usage": "nick", "name": "Тошнота"}, -{"usage": "nick", "name": "Шизик"}, -{"usage": "nick", "name": "Подстава"}, -{"usage": "nick", "name": "Сьерра"}, -{"usage": "nick", "name": "Сиеста"}, -{"usage": "nick", "name": "Сигма"}, -{"usage": "nick", "name": "Шёлк"}, -{"usage": "nick", "name": "Конь"}, -{"usage": "nick", "name": "Серебро"}, -{"usage": "nick", "name": "Холостяк"}, -{"usage": "nick", "name": "Бубнёж"}, -{"usage": "nick", "name": "Сирена"}, -{"usage": "nick", "name": "Шестёрка"}, -{"usage": "nick", "name": "Шесть банок"}, -{"usage": "nick", "name": "Похер"}, -{"usage": "nick", "name": "Шестнадцать"}, -{"usage": "nick", "name": "Быстра"}, -{"usage": "nick", "name": "Скелли"}, -{"usage": "nick", "name": "Скетч"}, -{"usage": "nick", "name": "Самокрутка"}, -{"usage": "nick", "name": "Скип"}, -{"usage": "nick", "name": "Шкипер"}, -{"usage": "nick", "name": "Небо"}, -{"usage": "nick", "name": "Кое-как"}, -{"usage": "nick", "name": "Фарс"}, -{"usage": "nick", "name": "Слэш"}, -{"usage": "nick", "name": "Палач"}, -{"usage": "nick", "name": "Грубиян"}, -{"usage": "nick", "name": "Сон"}, -{"usage": "nick", "name": "Соня"}, -{"usage": "nick", "name": "Манёвр"}, -{"usage": "nick", "name": "В форме"}, -{"usage": "nick", "name": "Скользкий тип"}, -{"usage": "nick", "name": "Осколок"}, -{"usage": "nick", "name": "Лень"}, -{"usage": "nick", "name": "Тормоз"}, -{"usage": "nick", "name": "Умница"}, -{"usage": "nick", "name": "С головой"}, -{"usage": "nick", "name": "Смэш"}, -{"usage": "nick", "name": "Смогги"}, -{"usage": "nick", "name": "Дым"}, -{"usage": "nick", "name": "Куряга"}, -{"usage": "nick", "name": "Без проблем"}, -{"usage": "nick", "name": "Клякса"}, -{"usage": "nick", "name": "Проёб"}, -{"usage": "nick", "name": "Змея"}, -{"usage": "nick", "name": "Пирсинг"}, -{"usage": "nick", "name": "Надо же"}, -{"usage": "nick", "name": "Тайком"}, -{"usage": "nick", "name": "Чихоня"}, -{"usage": "nick", "name": "Гламур"}, -{"usage": "nick", "name": "Сволочь"}, -{"usage": "nick", "name": "Снежок"}, -{"usage": "nick", "name": "Снеговик"}, -{"usage": "nick", "name": "Обнимашки"}, -{"usage": "nick", "name": "Стакан"}, -{"usage": "nick", "name": "Добрая душа"}, -{"usage": "nick", "name": "Сол"}, -{"usage": "nick", "name": "На все сто"}, -{"usage": "nick", "name": "Соло"}, -{"usage": "nick", "name": "Соник"}, -{"usage": "nick", "name": "Шнырь"}, -{"usage": "nick", "name": "Лажа"}, -{"usage": "nick", "name": "Душа"}, -{"usage": "nick", "name": "Юг"}, -{"usage": "nick", "name": "Космос"}, -{"usage": "nick", "name": "Ушлёпок"}, -{"usage": "nick", "name": "Искра"}, -{"usage": "nick", "name": "Живчик"}, -{"usage": "nick", "name": "Воробей"}, -{"usage": "nick", "name": "Отродье"}, -{"usage": "nick", "name": "Дурик"}, -{"usage": "nick", "name": "Фантом"}, -{"usage": "nick", "name": "Гонщик"}, -{"usage": "nick", "name": "Острослов"}, -{"usage": "nick", "name": "Сфинкс"}, -{"usage": "nick", "name": "Спайс"}, -{"usage": "nick", "name": "Остренько"}, -{"usage": "nick", "name": "Паук"}, -{"usage": "nick", "name": "Щёголь"}, -{"usage": "nick", "name": "Наряд"}, -{"usage": "nick", "name": "Дух"}, -{"usage": "nick", "name": "Заноза"}, -{"usage": "nick", "name": "Два ножа"}, -{"usage": "nick", "name": "Спок"}, -{"usage": "nick", "name": "Жмот"}, -{"usage": "nick", "name": "Спорт"}, -{"usage": "nick", "name": "Должок"}, -{"usage": "nick", "name": "Дятел"}, -{"usage": "nick", "name": "Картофан"}, -{"usage": "nick", "name": "По щщам"}, -{"usage": "nick", "name": "Туса"}, -{"usage": "nick", "name": "Амиго"}, -{"usage": "nick", "name": "Хрустик"}, -{"usage": "nick", "name": "Закорючка"}, -{"usage": "nick", "name": "Сквирт"}, -{"usage": "nick", "name": "Стаккато"}, -{"usage": "nick", "name": "Меня шатает"}, -{"usage": "nick", "name": "Сталкер"}, -{"usage": "nick", "name": "Светило"}, -{"usage": "nick", "name": "Зыркало"}, -{"usage": "nick", "name": "Срочно"}, -{"usage": "nick", "name": "Счёт"}, -{"usage": "nick", "name": "Из стали"}, -{"usage": "nick", "name": "Жало"}, -{"usage": "nick", "name": "Отстой"}, -{"usage": "nick", "name": "Чухан"}, -{"usage": "nick", "name": "Шов"}, -{"usage": "nick", "name": "Стопудово"}, -{"usage": "nick", "name": "Шторм"}, -{"usage": "nick", "name": "История"}, -{"usage": "nick", "name": "Отшельник"}, -{"usage": "nick", "name": "Два метра"}, -{"usage": "nick", "name": "Ударник"}, -{"usage": "nick", "name": "Лентяй"}, -{"usage": "nick", "name": "Влом"}, -{"usage": "nick", "name": "Везунчик"}, -{"usage": "nick", "name": "Топ"}, -{"usage": "nick", "name": "Дайте две"}, -{"usage": "nick", "name": "Фасолька"}, -{"usage": "nick", "name": "Орешек"}, -{"usage": "nick", "name": "Конфетка"}, -{"usage": "nick", "name": "Султан"}, -{"usage": "nick", "name": "Воскресенье"}, -{"usage": "nick", "name": "Позитив"}, -{"usage": "nick", "name": "Супер"}, -{"usage": "nick", "name": "Суперзвезда"}, -{"usage": "nick", "name": "Отвечаю"}, -{"usage": "nick", "name": "Волна"}, -{"usage": "nick", "name": "Кукловод"}, -{"usage": "nick", "name": "Главарь"}, -{"usage": "nick", "name": "Подлива"}, -{"usage": "nick", "name": "Сигай вниз"}, -{"usage": "nick", "name": "Лебединая песня"}, -{"usage": "nick", "name": "Збс"}, -{"usage": "nick", "name": "Суонси"}, -{"usage": "nick", "name": "Кавай"}, -{"usage": "nick", "name": "Сладкоежка"}, -{"usage": "nick", "name": "Сгинь"}, -{"usage": "nick", "name": "Ходок"}, -{"usage": "nick", "name": "Сало"}, -{"usage": "nick", "name": "Ключ"}, -{"usage": "nick", "name": "Вжух"}, -{"usage": "nick", "name": "Отключка"}, -{"usage": "nick", "name": "Синхрон"}, -{"usage": "nick", "name": "Синдром"}, -{"usage": "nick", "name": "Табу"}, -{"usage": "nick", "name": "Тянучка"}, -{"usage": "nick", "name": "Загар"}, -{"usage": "nick", "name": "Танго"}, -{"usage": "nick", "name": "Танк"}, -{"usage": "nick", "name": "Тапатио"}, -{"usage": "nick", "name": "Пенёк"}, -{"usage": "nick", "name": "Тасмания"}, -{"usage": "nick", "name": "Дурнина"}, -{"usage": "nick", "name": "Наколка"}, -{"usage": "nick", "name": "Тау"}, -{"usage": "nick", "name": "Технарь"}, -{"usage": "nick", "name": "Мишка"}, -{"usage": "nick", "name": "Ябеда"}, -{"usage": "nick", "name": "Зомбоящик"}, -{"usage": "nick", "name": "С характером"}, -{"usage": "nick", "name": "Десятка"}, -{"usage": "nick", "name": "Косарь"}, -{"usage": "nick", "name": "Терроне"}, -{"usage": "nick", "name": "Шотландец"}, -{"usage": "nick", "name": "Техас"}, -{"usage": "nick", "name": "Тире"}, -{"usage": "nick", "name": "Тета"}, -{"usage": "nick", "name": "Три"}, -{"usage": "nick", "name": "Жажда"}, -{"usage": "nick", "name": "Трубы горят"}, -{"usage": "nick", "name": "Тринадцать"}, -{"usage": "nick", "name": "Шип"}, -{"usage": "nick", "name": "Трэш"}, -{"usage": "nick", "name": "Тройка"}, -{"usage": "nick", "name": "Гром"}, -{"usage": "nick", "name": "В шоке"}, -{"usage": "nick", "name": "Четверг"}, -{"usage": "nick", "name": "Тик-так"}, -{"usage": "nick", "name": "Тико"}, -{"usage": "nick", "name": "Чуть-чуть"}, -{"usage": "nick", "name": "Раскраска"}, -{"usage": "nick", "name": "Тигр"}, -{"usage": "nick", "name": "Полено"}, -{"usage": "nick", "name": "Малёк"}, -{"usage": "nick", "name": "Титан"}, -{"usage": "nick", "name": "Жаба"}, -{"usage": "nick", "name": "Поганка"}, -{"usage": "nick", "name": "Льстец"}, -{"usage": "nick", "name": "Жги их"}, -{"usage": "nick", "name": "Помидорка"}, -{"usage": "nick", "name": "Всё завтра"}, -{"usage": "nick", "name": "Молоток"}, -{"usage": "nick", "name": "Кадр"}, -{"usage": "nick", "name": "Топаз"}, -{"usage": "nick", "name": "Вверх ногами"}, -{"usage": "nick", "name": "Факел"}, -{"usage": "nick", "name": "Торпедо"}, -{"usage": "nick", "name": "Тото"}, -{"usage": "nick", "name": "Вышка"}, -{"usage": "nick", "name": "Трагедия"}, -{"usage": "nick", "name": "Паровоз"}, -{"usage": "nick", "name": "Транс"}, -{"usage": "nick", "name": "Сокровище"}, -{"usage": "nick", "name": "Всё"}, -{"usage": "nick", "name": "Прикол"}, -{"usage": "nick", "name": "Профит"}, -{"usage": "nick", "name": "Нюанс"}, -{"usage": "nick", "name": "Тринити"}, -{"usage": "nick", "name": "Рибейро"}, -{"usage": "nick", "name": "За троих"}, -{"usage": "nick", "name": "Трикс"}, -{"usage": "nick", "name": "Тролль"}, -{"usage": "nick", "name": "Йоба"}, -{"usage": "nick", "name": "Истина"}, -{"usage": "nick", "name": "Тэкахо"}, -{"usage": "nick", "name": "Вторник"}, -{"usage": "nick", "name": "Мелодия"}, -{"usage": "nick", "name": "Турбо"}, -{"usage": "nick", "name": "Индюшка"}, -{"usage": "nick", "name": "Черепаха"}, -{"usage": "nick", "name": "Бивень"}, -{"usage": "nick", "name": "Туту"}, -{"usage": "nick", "name": "Хам"}, -{"usage": "nick", "name": "Прутик"}, -{"usage": "nick", "name": "Худышка"}, -{"usage": "nick", "name": "Вдвое"}, -{"usage": "nick", "name": "Тик"}, -{"usage": "nick", "name": "Двойка"}, -{"usage": "nick", "name": "Тайк"}, -{"usage": "nick", "name": "Тайфун"}, -{"usage": "nick", "name": "Тиран"}, -{"usage": "nick", "name": "Убер"}, -{"usage": "nick", "name": "Убик"}, -{"usage": "nick", "name": "Ой-ой"}, -{"usage": "nick", "name": "Раб"}, -{"usage": "nick", "name": "Ультима"}, -{"usage": "nick", "name": "Ультра"}, -{"usage": "nick", "name": "Амбер"}, -{"usage": "nick", "name": "Умбра"}, -{"usage": "nick", "name": "В оба"}, -{"usage": "nick", "name": "Дохрена"}, -{"usage": "nick", "name": "Тряпка"}, -{"usage": "nick", "name": "Вне закона"}, -{"usage": "nick", "name": "Не надо"}, -{"usage": "nick", "name": "Нет прощения"}, -{"usage": "nick", "name": "Униформа"}, -{"usage": "nick", "name": "Юнит"}, -{"usage": "nick", "name": "Уно"}, -{"usage": "nick", "name": "Без преград"}, -{"usage": "nick", "name": "Ипсилон"}, -{"usage": "nick", "name": "Разочарование"}, -{"usage": "nick", "name": "Уран"}, -{"usage": "nick", "name": "Надо"}, -{"usage": "nick", "name": "Юта"}, -{"usage": "nick", "name": "Валентин"}, -{"usage": "nick", "name": "Исчезни"}, -{"usage": "nick", "name": "Вампир"}, -{"usage": "nick", "name": "Пар"}, -{"usage": "nick", "name": "Вектор"}, -{"usage": "nick", "name": "Веган"}, -{"usage": "nick", "name": "Вегас"}, -{"usage": "nick", "name": "Месть"}, -{"usage": "nick", "name": "Венеция"}, -{"usage": "nick", "name": "Отрава"}, -{"usage": "nick", "name": "Двадцатка"}, -{"usage": "nick", "name": "Венера"}, -{"usage": "nick", "name": "Вертиго"}, -{"usage": "nick", "name": "Либидо"}, -{"usage": "nick", "name": "Вето"}, -{"usage": "nick", "name": "Векс"}, -{"usage": "nick", "name": "Победа"}, -{"usage": "nick", "name": "Объектив"}, -{"usage": "nick", "name": "Викинг"}, -{"usage": "nick", "name": "Уксус"}, -{"usage": "nick", "name": "ВИП"}, -{"usage": "nick", "name": "Гадюка"}, -{"usage": "nick", "name": "Вольт"}, -{"usage": "nick", "name": "Волонтёр"}, -{"usage": "nick", "name": "Вуду"}, -{"usage": "nick", "name": "Голос"}, -{"usage": "nick", "name": "Стервятник"}, -{"usage": "nick", "name": "Не айс"}, -{"usage": "nick", "name": "Вафля"}, -{"usage": "nick", "name": "Подъём"}, -{"usage": "nick", "name": "Уокер"}, -{"usage": "nick", "name": "Ветошь"}, -{"usage": "nick", "name": "Малолетка"}, -{"usage": "nick", "name": "Разврат"}, -{"usage": "nick", "name": "Война"}, -{"usage": "nick", "name": "Смотритель"}, -{"usage": "nick", "name": "Командир"}, -{"usage": "nick", "name": "Штык"}, -{"usage": "nick", "name": "Свинья"}, -{"usage": "nick", "name": "Суслик"}, -{"usage": "nick", "name": "Большой куш"}, -{"usage": "nick", "name": "Среда"}, -{"usage": "nick", "name": "Чудила"}, -{"usage": "nick", "name": "Уэсси"}, -{"usage": "nick", "name": "Запад"}, -{"usage": "nick", "name": "Уэсти"}, -{"usage": "nick", "name": "Трущоба"}, -{"usage": "nick", "name": "Хрипун"}, -{"usage": "nick", "name": "Фантазия"}, -{"usage": "nick", "name": "Вихрь"}, -{"usage": "nick", "name": "Вискарь"}, -{"usage": "nick", "name": "Шёпот"}, -{"usage": "nick", "name": "Уайт"}, -{"usage": "nick", "name": "Гений"}, -{"usage": "nick", "name": "Свистун"}, -{"usage": "nick", "name": "Ого-го"}, -{"usage": "nick", "name": "Ну почему"}, -{"usage": "nick", "name": "Хрень"}, -{"usage": "nick", "name": "Фон"}, -{"usage": "nick", "name": "Безумие"}, -{"usage": "nick", "name": "Манул"}, -{"usage": "nick", "name": "Плакса"}, -{"usage": "nick", "name": "Пустозвон"}, -{"usage": "nick", "name": "Авось"}, -{"usage": "nick", "name": "Перчик"}, -{"usage": "nick", "name": "Разгром"}, -{"usage": "nick", "name": "Жучок"}, -{"usage": "nick", "name": "Провод"}, -{"usage": "nick", "name": "Хитрая жопа"}, -{"usage": "nick", "name": "Волшебник"}, -{"usage": "nick", "name": "Волк"}, -{"usage": "nick", "name": "Росомаха"}, -{"usage": "nick", "name": "Чудо"}, -{"usage": "nick", "name": "Задрот"}, -{"usage": "nick", "name": "Уонка"}, -{"usage": "nick", "name": "Оно само"}, -{"usage": "nick", "name": "Гав-гав"}, -{"usage": "nick", "name": "Уоллибэк"}, -{"usage": "nick", "name": "Гангста"}, -{"usage": "nick", "name": "Честно"}, -{"usage": "nick", "name": "Червяк"}, -{"usage": "nick", "name": "Вау"}, -{"usage": "nick", "name": "Привидение"}, -{"usage": "nick", "name": "Гнев"}, -{"usage": "nick", "name": "Кара"}, -{"usage": "nick", "name": "Авария"}, -{"usage": "nick", "name": "Мародёр"}, -{"usage": "nick", "name": "Гнида"}, -{"usage": "nick", "name": "Ксено"}, -{"usage": "nick", "name": "Кси"}, -{"usage": "nick", "name": "Рентген"}, -{"usage": "nick", "name": "Бла-бла-бла"}, -{"usage": "nick", "name": "Ура"}, -{"usage": "nick", "name": "Туз"}, -{"usage": "nick", "name": "Янк"}, -{"usage": "nick", "name": "Янки"}, -{"usage": "nick", "name": "Ярди"}, -{"usage": "nick", "name": "Ят"}, -{"usage": "nick", "name": "Йеллоу"}, -{"usage": "nick", "name": "Трус"}, -{"usage": "nick", "name": "Уилмингтон"}, -{"usage": "nick", "name": "Йети"}, -{"usage": "nick", "name": "Пенсильвания"}, -{"usage": "nick", "name": "Бревно"}, -{"usage": "nick", "name": "Юпер"}, -{"usage": "nick", "name": "Молодь"}, -{"usage": "nick", "name": "Йо-йо"}, -{"usage": "nick", "name": "Буэ-э"}, -{"usage": "nick", "name": "Ням-ням"}, -{"usage": "nick", "name": "Разряд"}, -{"usage": "nick", "name": "Зебра"}, -{"usage": "nick", "name": "Зед"}, -{"usage": "nick", "name": "Дух времени"}, -{"usage": "nick", "name": "Дзен"}, -{"usage": "nick", "name": "Зенит"}, -{"usage": "nick", "name": "Зеро"}, -{"usage": "nick", "name": "Дзета"}, -{"usage": "nick", "name": "Шевелись"}, -{"usage": "nick", "name": "Зигги"}, -{"usage": "nick", "name": "Зигзаг"}, -{"usage": "nick", "name": "Пшик"}, -{"usage": "nick", "name": "Клочок"}, -{"usage": "nick", "name": "Зиппи"}, -{"usage": "nick", "name": "Зодиак"}, -{"usage": "nick", "name": "Зона"}, -{"usage": "nick", "name": "Панама"}, -{"usage": "nick", "name": "Зоуни"}, -{"usage": "nick", "name": "Бух"}, -{"usage": "nick", "name": "Зум"}, -{"usage": "backer", "gender": "male", "name": "Аджай Чандра"}, -{"usage": "backer", "gender": "male", "name": "Александр Викс"}, -{"usage": "backer", "gender": "male", "name": "Александр Дмитриев"}, -{"usage": "backer", "gender": "male", "name": "Александр Кричко"}, -{"usage": "backer", "gender": "unisex", "name": "Альфаи"}, -{"usage": "backer", "gender": "male", "name": "Антон Стрюк"}, -{"usage": "backer", "gender": "male", "name": "Аргус М. Лоуэлл"}, -{"usage": "backer", "gender": "unisex", "name": "Арк"}, -{"usage": "backer", "gender": "male", "name": "Артчер"}, -{"usage": "backer", "gender": "unisex", "name": "Атомос"}, -{"usage": "backer", "gender": "male", "name": "Бен Макклюр"}, -{"usage": "backer", "gender": "male", "name": "Бенджамин Реплож"}, -{"usage": "backer", "gender": "male", "name": "Бобалот"}, -{"usage": "backer", "gender": "male", "name": "Брайан Дэвидсон"}, -{"usage": "backer", "gender": "male", "name": "Брайан Хостерман"}, -{"usage": "backer", "gender": "male", "name": "Вильям Форест"}, -{"usage": "backer", "gender": "male", "name": "Винтар Гутблод"}, -{"usage": "backer", "gender": "male", "name": "Габриэль Дун"}, -{"usage": "backer", "gender": "unisex", "name": "Гатцу"}, -{"usage": "backer", "gender": "female", "name": "Глен Ранситер"}, -{"usage": "backer", "gender": "male", "name": "Гомер"}, -{"usage": "backer", "gender": "male", "name": "Грифон-воробей"}, -{"usage": "backer", "gender": "male", "name": "Гульфас Морголок"}, -{"usage": "backer", "gender": "male", "name": "Гург Хакпоф"}, -{"usage": "backer", "gender": "male", "name": "Д-р Хелька ван дер Шааф"}, -{"usage": "backer", "gender": "male", "name": "Дак'кор"}, -{"usage": "backer", "gender": "male", "name": "Даниэль Данахи"}, -{"usage": "backer", "gender": "male", "name": "Даниэль Энфилд"}, -{"usage": "backer", "gender": "unisex", "name": "Даск Гао"}, -{"usage": "backer", "gender": "male", "name": "Дейв Штевердаверсон"}, -{"usage": "backer", "gender": "male", "name": "Джастин Маккинон"}, -{"usage": "backer", "gender": "male", "name": "Джеймс Кенни"}, -{"usage": "backer", "gender": "male", "name": "Дженс Бекер"}, -{"usage": "backer", "gender": "male", "name": "Джеф Мейджор"}, -{"usage": "backer", "gender": "male", "name": "Джиллами Лебигот"}, -{"usage": "backer", "gender": "male", "name": "Джим Вивер"}, -{"usage": "backer", "gender": "male", "name": "Джим Ландерленд"}, -{"usage": "backer", "gender": "male", "name": "Джозеф 'Янтарь' Бартлет"}, -{"usage": "backer", "gender": "male", "name": "Джон Хаммэл"}, -{"usage": "backer", "gender": "male", "name": "Джон Эннион"}, -{"usage": "backer", "gender": "male", "name": "Джошуа Янг"}, -{"usage": "backer", "gender": "male", "name": "Дик Суржес"}, -{"usage": "backer", "gender": "unisex", "name": "Долио"}, -{"usage": "backer", "gender": "male", "name": "Дуг Огден"}, -{"usage": "backer", "gender": "male", "name": "Занам"}, -{"usage": "backer", "gender": "male", "name": "Иеремия Брасс"}, -{"usage": "backer", "gender": "male", "name": "Камиль Кливисон"}, -{"usage": "backer", "gender": "male", "name": "Кевин Витт"}, -{"usage": "backer", "gender": "male", "name": "Кевин Грассо"}, -{"usage": "backer", "gender": "male", "name": "Кендзи Курокава"}, -{"usage": "backer", "gender": "unisex", "name": "Клей Фокстейл"}, -{"usage": "backer", "gender": "male", "name": "Крейг Маттон"}, -{"usage": "backer", "gender": "male", "name": "Крейг Фергюсон"}, -{"usage": "backer", "gender": "male", "name": "Крис Уоткинс"}, -{"usage": "backer", "gender": "male", "name": "Кристофер Фолинз"}, -{"usage": "backer", "gender": "unisex", "name": "Лаклан"}, -{"usage": "backer", "gender": "unisex", "name": "Ларион"}, -{"usage": "backer", "gender": "male", "name": "Лев Мышкин"}, -{"usage": "backer", "gender": "male", "name": "Леонид Васильев"}, -{"usage": "backer", "gender": "male", "name": "Лоури Денис"}, -{"usage": "backer", "gender": "male", "name": "Майкл 'Ужасный конец' Джонс"}, -{"usage": "backer", "gender": "male", "name": "Майкл Кинкейд"}, -{"usage": "backer", "gender": "male", "name": "Майкл Хилл"}, -{"usage": "backer", "gender": "male", "name": "Майлс Прауэрс"}, -{"usage": "backer", "gender": "unisex", "name": "Маник Депрасив"}, -{"usage": "backer", "gender": "male", "name": "Марк 'Плохиш' Бэдой"}, -{"usage": "backer", "gender": "male", "name": "Мартин Вударт"}, -{"usage": "backer", "gender": "male", "name": "Мартин Свенсон"}, -{"usage": "backer", "gender": "male", "name": "Мигель Гермес"}, -{"usage": "backer", "gender": "male", "name": "Мик Бат"}, -{"usage": "backer", "gender": "male", "name": "Милоч"}, -{"usage": "backer", "gender": "male", "name": "Мишель Бержерон"}, -{"usage": "backer", "gender": "male", "name": "Морозный Лис"}, -{"usage": "backer", "gender": "male", "name": "Мэт Вильямс"}, -{"usage": "backer", "gender": "male", "name": "Мэтт Дэвис"}, -{"usage": "backer", "gender": "male", "name": "Мэттью Ст. Джон"}, -{"usage": "backer", "gender": "male", "name": "Натан Кан"}, -{"usage": "backer", "gender": "male", "name": "Натаниэль Форд"}, -{"usage": "backer", "gender": "male", "name": "Непокорный Рик"}, -{"usage": "backer", "gender": "male", "name": "Ник 'Хаос' Паркер"}, -{"usage": "backer", "gender": "male", "name": "Ник Стефан"}, -{"usage": "backer", "gender": "male", "name": "Оуэн Дан"}, -{"usage": "backer", "gender": "male", "name": "Паскаль Филипович"}, -{"usage": "backer", "gender": "male", "name": "Питер Штальберг"}, -{"usage": "backer", "gender": "male", "name": "Пол Уоллас"}, -{"usage": "backer", "gender": "male", "name": "Раймонд Белас"}, -{"usage": "backer", "gender": "female", "name": "Ракель Макмахон"}, -{"usage": "backer", "gender": "male", "name": "Расс Рейнольдс III"}, -{"usage": "backer", "gender": "unisex", "name": "Рено Паркер"}, -{"usage": "backer", "gender": "male", "name": "Роб Ветзель"}, -{"usage": "backer", "gender": "male", "name": "Роб Кейс"}, -{"usage": "backer", "gender": "unisex", "name": "Ролль"}, -{"usage": "backer", "gender": "male", "name": "Рон 'Шумный' Хаким"}, -{"usage": "backer", "gender": "unisex", "name": "Ронни Магнуссон"}, -{"usage": "backer", "gender": "male", "name": "Рудольф Шмидт"}, -{"usage": "backer", "gender": "male", "name": "Саймон Торесен Хульт"}, -{"usage": "backer", "gender": "male", "name": "Себастьян Жафрэ"}, -{"usage": "backer", "gender": "male", "name": "Серкан Койл"}, -{"usage": "backer", "gender": "unisex", "name": "Симефирми"}, -{"usage": "backer", "gender": "unisex", "name": "Снежный Мяу"}, -{"usage": "backer", "gender": "unisex", "name": "Спати Пкелуч"}, -{"usage": "backer", "gender": "male", "name": "Стивен Петерсон"}, -{"usage": "backer", "gender": "male", "name": "Стотнер"}, -{"usage": "backer", "gender": "male", "name": "Сэм Стейн"}, -{"usage": "backer", "gender": "male", "name": "Сёч Габор Ференс"}, -{"usage": "backer", "gender": "male", "name": "Тобиас Франк"}, -{"usage": "backer", "gender": "male", "name": "Товарищ Гарри"}, -{"usage": "backer", "gender": "male", "name": "Тодрик Райеп"}, -{"usage": "backer", "gender": "male", "name": "Том Хупер"}, -{"usage": "backer", "gender": "male", "name": "Томас Ларсон"}, -{"usage": "backer", "gender": "male", "name": "Томас Саймон"}, -{"usage": "backer", "gender": "unisex", "name": "ТонЗа"}, -{"usage": "backer", "gender": "male", "name": "Тонами Йогенсен"}, -{"usage": "backer", "gender": "male", "name": "Тревис Гибсон"}, -{"usage": "backer", "gender": "female", "name": "Трианна"}, -{"usage": "backer", "gender": "male", "name": "Уилл Уолкер"}, -{"usage": "backer", "gender": "male", "name": "Урист МакПрудент"}, -{"usage": "backer", "gender": "male", "name": "Уэйн А. Артуртон"}, -{"usage": "backer", "gender": "male", "name": "Феликс Аплин"}, -{"usage": "backer", "gender": "male", "name": "Феликс Фокс"}, -{"usage": "backer", "gender": "male", "name": "Филипп Тремблей"}, -{"usage": "backer", "gender": "male", "name": "Халид Рашид"}, -{"usage": "backer", "gender": "female", "name": "Херит Себон"}, -{"usage": "backer", "gender": "male", "name": "Хуберт Роденбаух"}, -{"usage": "backer", "gender": "male", "name": "Хуберт Хьюз"}, -{"usage": "backer", "gender": "male", "name": "Хэнк Лекрам"}, -{"usage": "backer", "gender": "unisex", "name": "Чжао"}, -{"usage": "backer", "gender": "female", "name": "Шарлотта Холл"}, -{"usage": "backer", "gender": "male", "name": "Шон Дункан"}, -{"usage": "backer", "gender": "female", "name": "Эвелин Фрост"}, -{"usage": "backer", "gender": "female", "name": "Эли Форест Китон"}, -{"usage": "backer", "gender": "male", "name": "Эндрю Вебстер"}, -{"usage": "backer", "gender": "male", "name": "Эндрю Гуастелла"}, -{"usage": "backer", "gender": "male", "name": "Энрике Алонсо"}, -{"usage": "backer", "gender": "male", "name": "Энтони Берли"}, -{"usage": "backer", "gender": "male", "name": "Эрик Русак"}, -{"usage": "backer", "gender": "male", "name": "Эрик Хангебухлер"}, -{"usage": "backer", "gender": "male", "name": "Ян Клир"}, -{"usage": "city", "name": "Абингтон"}, -{"usage": "city", "name": "Аврора"}, -{"usage": "city", "name": "Агавам"}, -{"usage": "city", "name": "Адамс"}, -{"usage": "city", "name": "Аддисон"}, -{"usage": "city", "name": "Айер"}, -{"usage": "city", "name": "Айл Ла Мотт"}, -{"usage": "city", "name": "Айл о Хаут"}, -{"usage": "city", "name": "Айленд Фолс"}, -{"usage": "city", "name": "Айлсборо"}, -{"usage": "city", "name": "Айра"}, -{"usage": "city", "name": "Аквинна"}, -{"usage": "city", "name": "Акворт"}, -{"usage": "city", "name": "Аксбридж"}, -{"usage": "city", "name": "Актон"}, -{"usage": "city", "name": "Акушнет"}, -{"usage": "city", "name": "Албион"}, -{"usage": "city", "name": "Александер"}, -{"usage": "city", "name": "Александрия"}, -{"usage": "city", "name": "Аллагаш"}, -{"usage": "city", "name": "Алленстаун"}, -{"usage": "city", "name": "Ална"}, -{"usage": "city", "name": "Альтон"}, -{"usage": "city", "name": "Альфред"}, -{"usage": "city", "name": "Амити"}, -{"usage": "city", "name": "Амхерст"}, -{"usage": "city", "name": "Андерхилл"}, -{"usage": "city", "name": "Ансония"}, -{"usage": "city", "name": "Антрим"}, -{"usage": "city", "name": "Аптон"}, -{"usage": "city", "name": "Аргайл"}, -{"usage": "city", "name": "Арлингтон"}, -{"usage": "city", "name": "Арроузик"}, -{"usage": "city", "name": "Арундел"}, -{"usage": "city", "name": "Атенс"}, -{"usage": "city", "name": "Аткинсон"}, -{"usage": "city", "name": "Атол"}, -{"usage": "city", "name": "Ашбернем"}, -{"usage": "city", "name": "Ашби"}, -{"usage": "city", "name": "Ашленд"}, -{"usage": "city", "name": "Ашфилд"}, -{"usage": "city", "name": "Ашфорд"}, -{"usage": "city", "name": "Байрон"}, -{"usage": "city", "name": "Бакленд"}, -{"usage": "city", "name": "Бакспорт"}, -{"usage": "city", "name": "Бакстон"}, -{"usage": "city", "name": "Бакфилд"}, -{"usage": "city", "name": "Балтимор"}, -{"usage": "city", "name": "Бангор"}, -{"usage": "city", "name": "Банкрофт"}, -{"usage": "city", "name": "Бар Харбор"}, -{"usage": "city", "name": "Баринг плантейшн"}, -{"usage": "city", "name": "Баркхамстед"}, -{"usage": "city", "name": "Барлингтон"}, -{"usage": "city", "name": "Барнард"}, -{"usage": "city", "name": "Барнет"}, -{"usage": "city", "name": "Барнстед"}, -{"usage": "city", "name": "Барнстейбл"}, -{"usage": "city", "name": "Барр"}, -{"usage": "city", "name": "Баррингтон"}, -{"usage": "city", "name": "Бартлетт"}, -{"usage": "city", "name": "Бартон"}, -{"usage": "city", "name": "Бат"}, -{"usage": "city", "name": "Беверли"}, -{"usage": "city", "name": "Беддингтон"}, -{"usage": "city", "name": "Бедфорд"}, -{"usage": "city", "name": "Бейкерсфилд"}, -{"usage": "city", "name": "Бейливилл"}, -{"usage": "city", "name": "Бекет"}, -{"usage": "city", "name": "Белвидер"}, -{"usage": "city", "name": "Белград"}, -{"usage": "city", "name": "Беллингхем"}, -{"usage": "city", "name": "Белмонт"}, -{"usage": "city", "name": "Белфаст"}, -{"usage": "city", "name": "Белчертаун"}, -{"usage": "city", "name": "Бенедикта"}, -{"usage": "city", "name": "Беннингтон"}, -{"usage": "city", "name": "Бенсон"}, -{"usage": "city", "name": "Бентон"}, -{"usage": "city", "name": "Берк"}, -{"usage": "city", "name": "Беркли"}, -{"usage": "city", "name": "Беркшир"}, -{"usage": "city", "name": "Берлин"}, -{"usage": "city", "name": "Бернардстон"}, -{"usage": "city", "name": "Бернем"}, -{"usage": "city", "name": "Беррилвилл"}, -{"usage": "city", "name": "Беруик"}, -{"usage": "city", "name": "Бетани"}, -{"usage": "city", "name": "Бетел"}, -{"usage": "city", "name": "Бетлехем"}, -{"usage": "city", "name": "Бивер Ков"}, -{"usage": "city", "name": "Биддефорд"}, -{"usage": "city", "name": "Бикон Фолс"}, -{"usage": "city", "name": "Биллерика"}, -{"usage": "city", "name": "Билс"}, -{"usage": "city", "name": "Бингам"}, -{"usage": "city", "name": "Бланфорд"}, -{"usage": "city", "name": "Бланчард"}, -{"usage": "city", "name": "Блейн"}, -{"usage": "city", "name": "Блекстон"}, -{"usage": "city", "name": "Блу Хил"}, -{"usage": "city", "name": "Блумфилд"}, -{"usage": "city", "name": "Бозра"}, -{"usage": "city", "name": "Бойлстон"}, -{"usage": "city", "name": "Боксборо"}, -{"usage": "city", "name": "Боксфорд"}, -{"usage": "city", "name": "Болдуин"}, -{"usage": "city", "name": "Болтон"}, -{"usage": "city", "name": "Борн"}, -{"usage": "city", "name": "Боскавен"}, -{"usage": "city", "name": "Бостон"}, -{"usage": "city", "name": "Боу"}, -{"usage": "city", "name": "Боудойн"}, -{"usage": "city", "name": "Боудойнхем"}, -{"usage": "city", "name": "Боуэрбанк"}, -{"usage": "city", "name": "Брадфорд"}, -{"usage": "city", "name": "Брайтон"}, -{"usage": "city", "name": "Брайтон"}, -{"usage": "city", "name": "Брансуик"}, -{"usage": "city", "name": "Бранфорд"}, -{"usage": "city", "name": "Братлборо"}, -{"usage": "city", "name": "Браунвилль"}, -{"usage": "city", "name": "Браунингтон"}, -{"usage": "city", "name": "Браунфилд"}, -{"usage": "city", "name": "Бредли"}, -{"usage": "city", "name": "Брейнтри"}, -{"usage": "city", "name": "Бремен"}, -{"usage": "city", "name": "Брендон"}, -{"usage": "city", "name": "Брентвуд"}, -{"usage": "city", "name": "Бриджпорт"}, -{"usage": "city", "name": "Бриджпорт"}, -{"usage": "city", "name": "Бриджтон"}, -{"usage": "city", "name": "Бриджуотер"}, -{"usage": "city", "name": "Бримфилд"}, -{"usage": "city", "name": "Бристоль"}, -{"usage": "city", "name": "Броктон"}, -{"usage": "city", "name": "Бруклин"}, -{"usage": "city", "name": "Бруклин"}, -{"usage": "city", "name": "Бруклин"}, -{"usage": "city", "name": "Брукс"}, -{"usage": "city", "name": "Бруксвилль"}, -{"usage": "city", "name": "Бруктон"}, -{"usage": "city", "name": "Брукфилд"}, -{"usage": "city", "name": "Брустер"}, -{"usage": "city", "name": "Брюэр"}, -{"usage": "city", "name": "Бутбей Харбор"}, -{"usage": "city", "name": "Бутбей"}, -{"usage": "city", "name": "Бывшие города:"}, -{"usage": "city", "name": "Ван-Бьюрен"}, -{"usage": "city", "name": "Вансеборо"}, -{"usage": "city", "name": "Вассалборо"}, -{"usage": "city", "name": "Вашингтон"}, -{"usage": "city", "name": "Веази"}, -{"usage": "city", "name": "Веллингтон"}, -{"usage": "city", "name": "Вердженес"}, -{"usage": "city", "name": "Вернон"}, -{"usage": "city", "name": "Верона Айленд"}, -{"usage": "city", "name": "Вершир"}, -{"usage": "city", "name": "Вест Бат"}, -{"usage": "city", "name": "Вест Бойлстон"}, -{"usage": "city", "name": "Вест Бриджуотер"}, -{"usage": "city", "name": "Вест Брукфилд"}, -{"usage": "city", "name": "Вест Виндзор"}, -{"usage": "city", "name": "Вест Гардинер"}, -{"usage": "city", "name": "Вест Гринвич"}, -{"usage": "city", "name": "Вест Ньюбери"}, -{"usage": "city", "name": "Вест Парис"}, -{"usage": "city", "name": "Вест Ратленд"}, -{"usage": "city", "name": "Вест Спрингфилд"}, -{"usage": "city", "name": "Вест Стокбридж"}, -{"usage": "city", "name": "Вест Тисбери"}, -{"usage": "city", "name": "Вест Уорик"}, -{"usage": "city", "name": "Вест Форкс"}, -{"usage": "city", "name": "Вест Фэрли"}, -{"usage": "city", "name": "Вест Хартфорд"}, -{"usage": "city", "name": "Вест Хейвен"}, -{"usage": "city", "name": "Вестминстер"}, -{"usage": "city", "name": "Виктори"}, -{"usage": "city", "name": "Виналхейвен"}, -{"usage": "city", "name": "Виндзор Локс"}, -{"usage": "city", "name": "Виндзор"}, -{"usage": "city", "name": "Виндхам"}, -{"usage": "city", "name": "Винчестер"}, -{"usage": "city", "name": "Вискассет"}, -{"usage": "city", "name": "Волантаун"}, -{"usage": "city", "name": "Восточный Бриджуотер"}, -{"usage": "city", "name": "Восточный Брукфилд"}, -{"usage": "city", "name": "Восточный Виндзор"}, -{"usage": "city", "name": "Восточный Гранби"}, -{"usage": "city", "name": "Восточный Гринвич"}, -{"usage": "city", "name": "Восточный Кингстон"}, -{"usage": "city", "name": "Восточный Лайм"}, -{"usage": "city", "name": "Восточный Лонгмидоу"}, -{"usage": "city", "name": "Восточный Макиас"}, -{"usage": "city", "name": "Восточный Миллинокет"}, -{"usage": "city", "name": "Восточный Монпелье"}, -{"usage": "city", "name": "Восточный Провиденс"}, -{"usage": "city", "name": "Восточный Хаддэм"}, -{"usage": "city", "name": "Восточный Хамптон"}, -{"usage": "city", "name": "Восточный Хартфорд"}, -{"usage": "city", "name": "Восточный Хейвен"}, -{"usage": "city", "name": "Вудбери"}, -{"usage": "city", "name": "Вудбридж"}, -{"usage": "city", "name": "Вудвилл"}, -{"usage": "city", "name": "Вудленд"}, -{"usage": "city", "name": "Вудсток"}, -{"usage": "city", "name": "Вудфорд"}, -{"usage": "city", "name": "Вулуич"}, -{"usage": "city", "name": "Вулфборо"}, -{"usage": "city", "name": "Вунсокет"}, -{"usage": "city", "name": "Вустер"}, -{"usage": "city", "name": "Вьенна"}, -{"usage": "city", "name": "Вэр"}, -{"usage": "city", "name": "Вэрхэм"}, -{"usage": "city", "name": "Гайд Парк"}, -{"usage": "city", "name": "Галифакс"}, -{"usage": "city", "name": "Гамильтон"}, -{"usage": "city", "name": "Ганновер"}, -{"usage": "city", "name": "Гарвард"}, -{"usage": "city", "name": "Гардинер"}, -{"usage": "city", "name": "Гарднер"}, -{"usage": "city", "name": "Гарленд"}, -{"usage": "city", "name": "Гаррисон"}, -{"usage": "city", "name": "Гарфилд Плантейшн"}, -{"usage": "city", "name": "Гилдхолл"}, -{"usage": "city", "name": "Гилеад"}, -{"usage": "city", "name": "Гилл"}, -{"usage": "city", "name": "Гилмантон"}, -{"usage": "city", "name": "Гилсум"}, -{"usage": "city", "name": "Гилфорд"}, -{"usage": "city", "name": "Гилфорд"}, -{"usage": "city", "name": "Гластенбери"}, -{"usage": "city", "name": "Гластонбери"}, -{"usage": "city", "name": "Гленберн"}, -{"usage": "city", "name": "Гленвуд Плантейшен"}, -{"usage": "city", "name": "Гловер"}, -{"usage": "city", "name": "Глостер"}, -{"usage": "city", "name": "Глостер"}, -{"usage": "city", "name": "Горем"}, -{"usage": "city", "name": "Госнолд"}, -{"usage": "city", "name": "Гоффстаун"}, -{"usage": "city", "name": "Гошен"}, -{"usage": "city", "name": "Гранвилл"}, -{"usage": "city", "name": "Гранд Лейк Стрим"}, -{"usage": "city", "name": "Гранд-Айл"}, -{"usage": "city", "name": "Грантам"}, -{"usage": "city", "name": "Графтон"}, -{"usage": "city", "name": "Грей"}, -{"usage": "city", "name": "Грин"}, -{"usage": "city", "name": "Гринбуш"}, -{"usage": "city", "name": "Гринвилл"}, -{"usage": "city", "name": "Гринвич"}, -{"usage": "city", "name": "Гринвуд"}, -{"usage": "city", "name": "Гринленд"}, -{"usage": "city", "name": "Гринсборо"}, -{"usage": "city", "name": "Гринфилд"}, -{"usage": "city", "name": "Грисволд"}, -{"usage": "city", "name": "Гровленд"}, -{"usage": "city", "name": "Гротон"}, -{"usage": "city", "name": "Грэйт Баррингтон"}, -{"usage": "city", "name": "Грэйт Понд"}, -{"usage": "city", "name": "Грэнби"}, -{"usage": "city", "name": "Гудзон"}, -{"usage": "city", "name": "Гулдсборо"}, -{"usage": "city", "name": "Дадли"}, -{"usage": "city", "name": "Дайер Брук"}, -{"usage": "city", "name": "Дайтон"}, -{"usage": "city", "name": "Даксбери"}, -{"usage": "city", "name": "Даллас Плантейшен"}, -{"usage": "city", "name": "Дамарискотта"}, -{"usage": "city", "name": "Даммер"}, -{"usage": "city", "name": "Даммерстон"}, -{"usage": "city", "name": "Данбери"}, -{"usage": "city", "name": "Данби"}, -{"usage": "city", "name": "Данверс"}, -{"usage": "city", "name": "Данвилл"}, -{"usage": "city", "name": "Данстэбл"}, -{"usage": "city", "name": "Данфорт"}, -{"usage": "city", "name": "Дарем"}, -{"usage": "city", "name": "Дариен"}, -{"usage": "city", "name": "Дартмут"}, -{"usage": "city", "name": "Деблойс"}, -{"usage": "city", "name": "Дедхэм"}, -{"usage": "city", "name": "Дейтон"}, -{"usage": "city", "name": "Декстер"}, -{"usage": "city", "name": "Денмарк"}, -{"usage": "city", "name": "Деннис"}, -{"usage": "city", "name": "Деннисвилл"}, -{"usage": "city", "name": "Деннистаун"}, -{"usage": "city", "name": "Дерби"}, -{"usage": "city", "name": "Дерри"}, -{"usage": "city", "name": "Детройт"}, -{"usage": "city", "name": "Джамайка"}, -{"usage": "city", "name": "Джаффри"}, -{"usage": "city", "name": "Джей"}, -{"usage": "city", "name": "Джеймстаун"}, -{"usage": "city", "name": "Джексон"}, -{"usage": "city", "name": "Джерико"}, -{"usage": "city", "name": "Джефферсон"}, -{"usage": "city", "name": "Джонсборо"}, -{"usage": "city", "name": "Джонсон"}, -{"usage": "city", "name": "Джонспорт"}, -{"usage": "city", "name": "Джонстон"}, -{"usage": "city", "name": "Джорджия"}, -{"usage": "city", "name": "Джорджтаун"}, -{"usage": "city", "name": "Джэкман"}, -{"usage": "city", "name": "Диксмонт"}, -{"usage": "city", "name": "Диксфилд"}, -{"usage": "city", "name": "Дип Ривер"}, -{"usage": "city", "name": "Дир Айл"}, -{"usage": "city", "name": "Диринг"}, -{"usage": "city", "name": "Дирфилд"}, -{"usage": "city", "name": "Довер-Фокскрофт"}, -{"usage": "city", "name": "Долтон"}, -{"usage": "city", "name": "Дорсет"}, -{"usage": "city", "name": "Дорчестер"}, -{"usage": "city", "name": "Дракат"}, -{"usage": "city", "name": "Дрезден"}, -{"usage": "city", "name": "Дрю Плантейшен"}, -{"usage": "city", "name": "Дублин"}, -{"usage": "city", "name": "Дувр"}, -{"usage": "city", "name": "Дуглас"}, -{"usage": "city", "name": "Дунбартон"}, -{"usage": "city", "name": "Игл Лейк"}, -{"usage": "city", "name": "Иден"}, -{"usage": "city", "name": "Индастри"}, -{"usage": "city", "name": "Ипсуич"}, -{"usage": "city", "name": "Ирасберг"}, -{"usage": "city", "name": "Истам"}, -{"usage": "city", "name": "Истбрук"}, -{"usage": "city", "name": "Истгемптон"}, -{"usage": "city", "name": "Истон"}, -{"usage": "city", "name": "Истпорт"}, -{"usage": "city", "name": "Истфорд"}, -{"usage": "city", "name": "Йорк"}, -{"usage": "city", "name": "Кабот"}, -{"usage": "city", "name": "Кавендиш"}, -{"usage": "city", "name": "Кале"}, -{"usage": "city", "name": "Камберленд"}, -{"usage": "city", "name": "Каммингтон"}, -{"usage": "city", "name": "Канаан"}, -{"usage": "city", "name": "Кандия"}, -{"usage": "city", "name": "Кантон"}, -{"usage": "city", "name": "Каратанк"}, -{"usage": "city", "name": "Карвер"}, -{"usage": "city", "name": "Кари Плантейшен"}, -{"usage": "city", "name": "Карибу"}, -{"usage": "city", "name": "Карлайл"}, -{"usage": "city", "name": "Кармел"}, -{"usage": "city", "name": "Каролл"}, -{"usage": "city", "name": "Каррабассетт Вэлли"}, -{"usage": "city", "name": "Карролл Плантейшен"}, -{"usage": "city", "name": "Картаж"}, -{"usage": "city", "name": "Касвелл"}, -{"usage": "city", "name": "Каско"}, -{"usage": "city", "name": "Касл Хилл"}, -{"usage": "city", "name": "Каслтон"}, -{"usage": "city", "name": "Кастин"}, -{"usage": "city", "name": "Катлер"}, -{"usage": "city", "name": "Кейп Элизабет"}, -{"usage": "city", "name": "Кембридж"}, -{"usage": "city", "name": "Кендаскиг"}, -{"usage": "city", "name": "Кеннебанк"}, -{"usage": "city", "name": "Кеннебанкпорт"}, -{"usage": "city", "name": "Кенсингтон"}, -{"usage": "city", "name": "Кент"}, -{"usage": "city", "name": "Кентербери"}, -{"usage": "city", "name": "Киллингворт"}, -{"usage": "city", "name": "Киллингли"}, -{"usage": "city", "name": "Киллингтон"}, -{"usage": "city", "name": "Кин"}, -{"usage": "city", "name": "Кингман"}, -{"usage": "city", "name": "Кингсбери Плантейшен"}, -{"usage": "city", "name": "Кингстон"}, -{"usage": "city", "name": "Кингфилд"}, -{"usage": "city", "name": "Кир Плантейшен"}, -{"usage": "city", "name": "Кирби"}, -{"usage": "city", "name": "Киттери"}, -{"usage": "city", "name": "Кларендон"}, -{"usage": "city", "name": "Кларксбург"}, -{"usage": "city", "name": "Кларксвилль"}, -{"usage": "city", "name": "Клермонт"}, -{"usage": "city", "name": "Клинтон"}, -{"usage": "city", "name": "Клифтон"}, -{"usage": "city", "name": "Ковентри"}, -{"usage": "city", "name": "Кодивилл Плантейшен"}, -{"usage": "city", "name": "Колбрук"}, -{"usage": "city", "name": "Колрейн"}, -{"usage": "city", "name": "Колумбия Фолс"}, -{"usage": "city", "name": "Колумбия"}, -{"usage": "city", "name": "Колчестер"}, -{"usage": "city", "name": "Конкорд"}, -{"usage": "city", "name": "Коннор"}, -{"usage": "city", "name": "Конуэй"}, -{"usage": "city", "name": "Коплин Плантейшен"}, -{"usage": "city", "name": "Коринна"}, -{"usage": "city", "name": "Коринф"}, -{"usage": "city", "name": "Корнвилл"}, -{"usage": "city", "name": "Корниш"}, -{"usage": "city", "name": "Корнуолл"}, -{"usage": "city", "name": "Кохассет"}, -{"usage": "city", "name": "Кранберри Айлс"}, -{"usage": "city", "name": "Кранстон"}, -{"usage": "city", "name": "Крафтсбери"}, -{"usage": "city", "name": "Кристл"}, -{"usage": "city", "name": "Кройдон"}, -{"usage": "city", "name": "Кромвель"}, -{"usage": "city", "name": "Кроуфорд"}, -{"usage": "city", "name": "Куинси"}, -{"usage": "city", "name": "Купер"}, -{"usage": "city", "name": "Кушинг"}, -{"usage": "city", "name": "Кэмден"}, -{"usage": "city", "name": "Кэмптон"}, -{"usage": "city", "name": "Лаграндж"}, -{"usage": "city", "name": "Ладлоу"}, -{"usage": "city", "name": "Лайм"}, -{"usage": "city", "name": "Лаймстон"}, -{"usage": "city", "name": "Лакония"}, -{"usage": "city", "name": "Ламоайн"}, -{"usage": "city", "name": "Лангдон"}, -{"usage": "city", "name": "Ландафф"}, -{"usage": "city", "name": "Ландгров"}, -{"usage": "city", "name": "Ланкастер"}, -{"usage": "city", "name": "Лансборо"}, -{"usage": "city", "name": "Лебанон"}, -{"usage": "city", "name": "Левант"}, -{"usage": "city", "name": "Левант"}, -{"usage": "city", "name": "Ледьярд"}, -{"usage": "city", "name": "Лейден"}, -{"usage": "city", "name": "Лейден"}, -{"usage": "city", "name": "Лейквилл"}, -{"usage": "city", "name": "Лексингтон"}, -{"usage": "city", "name": "Лемингтон"}, -{"usage": "city", "name": "Лемпстер"}, -{"usage": "city", "name": "Ленокс"}, -{"usage": "city", "name": "Леоминстер"}, -{"usage": "city", "name": "Лестер"}, -{"usage": "city", "name": "Ли"}, -{"usage": "city", "name": "Либерти"}, -{"usage": "city", "name": "Ливермор Фолс"}, -{"usage": "city", "name": "Ливермор"}, -{"usage": "city", "name": "Лидс"}, -{"usage": "city", "name": "Лиман"}, -{"usage": "city", "name": "Лимингтон"}, -{"usage": "city", "name": "Линдеборо"}, -{"usage": "city", "name": "Линдон"}, -{"usage": "city", "name": "Линкольн Плантейшен"}, -{"usage": "city", "name": "Линкольн"}, -{"usage": "city", "name": "Линкольнвилл"}, -{"usage": "city", "name": "Линн"}, -{"usage": "city", "name": "Линнеус"}, -{"usage": "city", "name": "Линнфилд"}, -{"usage": "city", "name": "Лисбон"}, -{"usage": "city", "name": "Литл Комптон"}, -{"usage": "city", "name": "Литлтон"}, -{"usage": "city", "name": "Литчфилд"}, -{"usage": "city", "name": "Ловелл"}, -{"usage": "city", "name": "Лонг Айлэнд"}, -{"usage": "city", "name": "Лонгмидоу"}, -{"usage": "city", "name": "Лондондерри"}, -{"usage": "city", "name": "Лоренс"}, -{"usage": "city", "name": "Лоудон"}, -{"usage": "city", "name": "Лоуэлл"}, -{"usage": "city", "name": "Лубек"}, -{"usage": "city", "name": "Луненберг"}, -{"usage": "city", "name": "Льюистон"}, -{"usage": "city", "name": "Лэйк Вью Плантейшен"}, -{"usage": "city", "name": "Магаллоуэй Плантейшен"}, -{"usage": "city", "name": "Мадавоска"}, -{"usage": "city", "name": "Мадрид"}, -{"usage": "city", "name": "Майло"}, -{"usage": "city", "name": "Маквахок Плэнтейшен"}, -{"usage": "city", "name": "Макиас"}, -{"usage": "city", "name": "Макиаспорт"}, -{"usage": "city", "name": "Максфилд"}, -{"usage": "city", "name": "Малден"}, -{"usage": "city", "name": "Мальборо"}, -{"usage": "city", "name": "Мальборо"}, -{"usage": "city", "name": "Мансфилд"}, -{"usage": "city", "name": "Манчестер"}, -{"usage": "city", "name": "Манчестер-бай-зе-Си"}, -{"usage": "city", "name": "Марблхед"}, -{"usage": "city", "name": "Мариавилл"}, -{"usage": "city", "name": "Марион"}, -{"usage": "city", "name": "Марлоу"}, -{"usage": "city", "name": "Марс Хилл"}, -{"usage": "city", "name": "Маршфилд"}, -{"usage": "city", "name": "Масардис"}, -{"usage": "city", "name": "Матиникус Айл"}, -{"usage": "city", "name": "Маунт Вашингтон"}, -{"usage": "city", "name": "Маунт Вернон"}, -{"usage": "city", "name": "Маунт Десерт"}, -{"usage": "city", "name": "Маунт Табор"}, -{"usage": "city", "name": "Маунт Холли"}, -{"usage": "city", "name": "Маунт Чейз"}, -{"usage": "city", "name": "Машпи"}, -{"usage": "city", "name": "Медбери"}, -{"usage": "city", "name": "Меддибемпс"}, -{"usage": "city", "name": "Медуэй"}, -{"usage": "city", "name": "Медфилд"}, -{"usage": "city", "name": "Медфорд"}, -{"usage": "city", "name": "Мейдстон"}, -{"usage": "city", "name": "Мейнард"}, -{"usage": "city", "name": "Мейплтон"}, -{"usage": "city", "name": "Мейсон"}, -{"usage": "city", "name": "Меканик Фолс"}, -{"usage": "city", "name": "Мексико"}, -{"usage": "city", "name": "Мелроз"}, -{"usage": "city", "name": "Мендон"}, -{"usage": "city", "name": "Мередит"}, -{"usage": "city", "name": "Мериден"}, -{"usage": "city", "name": "Мерилл"}, -{"usage": "city", "name": "Мерримак"}, -{"usage": "city", "name": "Метуен"}, -{"usage": "city", "name": "Мидлбери"}, -{"usage": "city", "name": "Мидлборо"}, -{"usage": "city", "name": "Мидлсекс"}, -{"usage": "city", "name": "Мидлтаун Спрингс"}, -{"usage": "city", "name": "Мидлтаун"}, -{"usage": "city", "name": "Мидлтон"}, -{"usage": "city", "name": "Мидлфилд"}, -{"usage": "city", "name": "Милан"}, -{"usage": "city", "name": "Милбери"}, -{"usage": "city", "name": "Милбридж"}, -{"usage": "city", "name": "Миллвилл"}, -{"usage": "city", "name": "Миллинокет"}, -{"usage": "city", "name": "Миллис"}, -{"usage": "city", "name": "Милтон"}, -{"usage": "city", "name": "Милфорд"}, -{"usage": "city", "name": "Минот"}, -{"usage": "city", "name": "Молтонборо"}, -{"usage": "city", "name": "Монктон"}, -{"usage": "city", "name": "Монмут"}, -{"usage": "city", "name": "Монпелье"}, -{"usage": "city", "name": "Монро"}, -{"usage": "city", "name": "Монсон"}, -{"usage": "city", "name": "Монт Вернон"}, -{"usage": "city", "name": "Монтагю"}, -{"usage": "city", "name": "Монтвилл"}, -{"usage": "city", "name": "Монтгомери"}, -{"usage": "city", "name": "Монтерей"}, -{"usage": "city", "name": "Монтиселло"}, -{"usage": "city", "name": "Монхеган"}, -{"usage": "city", "name": "Морган"}, -{"usage": "city", "name": "Моро Плантейшен"}, -{"usage": "city", "name": "Моррилл"}, -{"usage": "city", "name": "Моррис"}, -{"usage": "city", "name": "Морристаун"}, -{"usage": "city", "name": "Мортаун"}, -{"usage": "city", "name": "Москоу"}, -{"usage": "city", "name": "Муз Ривер"}, -{"usage": "city", "name": "Мэдисон"}, -{"usage": "city", "name": "Мэрримек"}, -{"usage": "city", "name": "Мэттавамкиг"}, -{"usage": "city", "name": "Мэттапойсетт"}, -{"usage": "city", "name": "Мэттемисконтис"}, -{"usage": "city", "name": "Мёрсер"}, -{"usage": "city", "name": "Нантакет"}, -{"usage": "city", "name": "Наррагансетт"}, -{"usage": "city", "name": "Натик"}, -{"usage": "city", "name": "Нахант"}, -{"usage": "city", "name": "Нашвилл Плантейшен"}, -{"usage": "city", "name": "Нашуа"}, -{"usage": "city", "name": "Нейплс"}, -{"usage": "city", "name": "Нельсон"}, -{"usage": "city", "name": "Нидхам"}, -{"usage": "city", "name": "Ноблборо"}, -{"usage": "city", "name": "Нокс"}, -{"usage": "city", "name": "Норвич"}, -{"usage": "city", "name": "Норвуд"}, -{"usage": "city", "name": "Норриджвок"}, -{"usage": "city", "name": "Норт-Херо"}, -{"usage": "city", "name": "Нортборо"}, -{"usage": "city", "name": "Нортбридж"}, -{"usage": "city", "name": "Нортвуд"}, -{"usage": "city", "name": "Нортгемптон"}, -{"usage": "city", "name": "Нортон"}, -{"usage": "city", "name": "Нортпорт"}, -{"usage": "city", "name": "Нортумберленд"}, -{"usage": "city", "name": "Нортфилд"}, -{"usage": "city", "name": "Норуолк"}, -{"usage": "city", "name": "Норуэй"}, -{"usage": "city", "name": "Норуэлл"}, -{"usage": "city", "name": "Норфолк"}, -{"usage": "city", "name": "Нотак"}, -{"usage": "city", "name": "Ноттингем"}, -{"usage": "city", "name": "Нью-Ашфорд"}, -{"usage": "city", "name": "Нью-Бедфорд"}, -{"usage": "city", "name": "Нью-Бостон"}, -{"usage": "city", "name": "Нью-Брейнтри"}, -{"usage": "city", "name": "Нью-Бритен"}, -{"usage": "city", "name": "Нью-Вайнярд"}, -{"usage": "city", "name": "Нью-Глостер"}, -{"usage": "city", "name": "Нью-Дарем"}, -{"usage": "city", "name": "Нью-Ипсвич"}, -{"usage": "city", "name": "Нью-Канаан"}, -{"usage": "city", "name": "Нью-Канада"}, -{"usage": "city", "name": "Нью-Касл"}, -{"usage": "city", "name": "Нью-Лимерик"}, -{"usage": "city", "name": "Нью-Лондон"}, -{"usage": "city", "name": "Нью-Мальборо"}, -{"usage": "city", "name": "Нью-Милфорд"}, -{"usage": "city", "name": "Нью-Портленд"}, -{"usage": "city", "name": "Нью-Сейлем"}, -{"usage": "city", "name": "Нью-Суиден"}, -{"usage": "city", "name": "Нью-Фэрфилд"}, -{"usage": "city", "name": "Нью-Хамптон"}, -{"usage": "city", "name": "Нью-Хартфорд"}, -{"usage": "city", "name": "Нью-Хейвен"}, -{"usage": "city", "name": "Нью-Шарон"}, -{"usage": "city", "name": "Нью-Шорхэм"}, -{"usage": "city", "name": "Ньюарк"}, -{"usage": "city", "name": "Ньюбери"}, -{"usage": "city", "name": "Ньюберипорт"}, -{"usage": "city", "name": "Ньюбург"}, -{"usage": "city", "name": "Ньюингтон"}, -{"usage": "city", "name": "Ньюкасл"}, -{"usage": "city", "name": "Ньюмаркет"}, -{"usage": "city", "name": "Ньюпорт"}, -{"usage": "city", "name": "Ньюри"}, -{"usage": "city", "name": "Ньютаун"}, -{"usage": "city", "name": "Ньютон"}, -{"usage": "city", "name": "Ньюфан"}, -{"usage": "city", "name": "Ньюфилд"}, -{"usage": "city", "name": "Ньюфилдс"}, -{"usage": "city", "name": "Оберн"}, -{"usage": "city", "name": "Оганкит"}, -{"usage": "city", "name": "Огаста"}, -{"usage": "city", "name": "Ок Блафс"}, -{"usage": "city", "name": "Окленд"}, -{"usage": "city", "name": "Оксбоу"}, -{"usage": "city", "name": "Оксфорд"}, -{"usage": "city", "name": "Окфилд"}, -{"usage": "city", "name": "Окхем"}, -{"usage": "city", "name": "Олбани"}, -{"usage": "city", "name": "Олбург"}, -{"usage": "city", "name": "Олд Лайм"}, -{"usage": "city", "name": "Олд Сейбрук"}, -{"usage": "city", "name": "Олд Таун"}, -{"usage": "city", "name": "Олд-Орчард-Бич"}, -{"usage": "city", "name": "Олстед"}, -{"usage": "city", "name": "Олфорд"}, -{"usage": "city", "name": "Ориент"}, -{"usage": "city", "name": "Ориндж"}, -{"usage": "city", "name": "Орлеан"}, -{"usage": "city", "name": "Орленд"}, -{"usage": "city", "name": "Орнвилл"}, -{"usage": "city", "name": "Ороно"}, -{"usage": "city", "name": "Оррингтон"}, -{"usage": "city", "name": "Оруэлл"}, -{"usage": "city", "name": "Орфорд"}, -{"usage": "city", "name": "Осборн"}, -{"usage": "city", "name": "Оссипи"}, -{"usage": "city", "name": "Отис"}, -{"usage": "city", "name": "Отисфилд"}, -{"usage": "city", "name": "Оулс Хед"}, -{"usage": "city", "name": "Пакстон"}, -{"usage": "city", "name": "Палермо"}, -{"usage": "city", "name": "Палмер"}, -{"usage": "city", "name": "Пальмира"}, -{"usage": "city", "name": "Пантон"}, -{"usage": "city", "name": "Парис"}, -{"usage": "city", "name": "Паркман"}, -{"usage": "city", "name": "Парсонсфилд"}, -{"usage": "city", "name": "Пассадумкиг"}, -{"usage": "city", "name": "Паттен"}, -{"usage": "city", "name": "Паунал"}, -{"usage": "city", "name": "Пелхэм"}, -{"usage": "city", "name": "Пемброк"}, -{"usage": "city", "name": "Пенобскот"}, -{"usage": "city", "name": "Пепперелл"}, -{"usage": "city", "name": "Перкинс"}, -{"usage": "city", "name": "Перри"}, -{"usage": "city", "name": "Перу"}, -{"usage": "city", "name": "Перхем"}, -{"usage": "city", "name": "Пибоди"}, -{"usage": "city", "name": "Пирмонт"}, -{"usage": "city", "name": "Питерборо"}, -{"usage": "city", "name": "Питершам"}, -{"usage": "city", "name": "Питтсбург"}, -{"usage": "city", "name": "Питтстон"}, -{"usage": "city", "name": "Питтсфилд"}, -{"usage": "city", "name": "Питтфорд"}, -{"usage": "city", "name": "Пичем"}, -{"usage": "city", "name": "Плезант Ридж Плантейшен"}, -{"usage": "city", "name": "Плейнвилл"}, -{"usage": "city", "name": "Плейнфилд"}, -{"usage": "city", "name": "Плейстоу"}, -{"usage": "city", "name": "Плимптон"}, -{"usage": "city", "name": "Плимут"}, -{"usage": "city", "name": "Поланд"}, -{"usage": "city", "name": "Полет"}, -{"usage": "city", "name": "Полтни"}, -{"usage": "city", "name": "Помфрет"}, -{"usage": "city", "name": "Портедж Лейкс"}, -{"usage": "city", "name": "Портер"}, -{"usage": "city", "name": "Портленд"}, -{"usage": "city", "name": "Портсмут"}, -{"usage": "city", "name": "Потакет"}, -{"usage": "city", "name": "Прентисс"}, -{"usage": "city", "name": "Преск Айл"}, -{"usage": "city", "name": "Прескотт"}, -{"usage": "city", "name": "Престон"}, -{"usage": "city", "name": "Принстон"}, -{"usage": "city", "name": "Провиденс"}, -{"usage": "city", "name": "Провинстаун"}, -{"usage": "city", "name": "Проктор"}, -{"usage": "city", "name": "Проспект"}, -{"usage": "city", "name": "Путнам"}, -{"usage": "city", "name": "Путни"}, -{"usage": "city", "name": "Рай"}, -{"usage": "city", "name": "Райгейт"}, -{"usage": "city", "name": "Рамни"}, -{"usage": "city", "name": "Рамфорд"}, -{"usage": "city", "name": "Рандольф"}, -{"usage": "city", "name": "Рассел"}, -{"usage": "city", "name": "Ратленд"}, -{"usage": "city", "name": "Ревир"}, -{"usage": "city", "name": "Реймонд"}, -{"usage": "city", "name": "Рейнджели Плантейшен"}, -{"usage": "city", "name": "Рейнджели"}, -{"usage": "city", "name": "Рейнхем"}, -{"usage": "city", "name": "Рентам"}, -{"usage": "city", "name": "Рехобот"}, -{"usage": "city", "name": "Рид Плантейшен"}, -{"usage": "city", "name": "Риджфилд"}, -{"usage": "city", "name": "Ридинг"}, -{"usage": "city", "name": "Ридсборо"}, -{"usage": "city", "name": "Ридфилд"}, -{"usage": "city", "name": "Риндж"}, -{"usage": "city", "name": "Рипли"}, -{"usage": "city", "name": "Риптон"}, -{"usage": "city", "name": "Ричмонд"}, -{"usage": "city", "name": "Ричфорд"}, -{"usage": "city", "name": "Роббинстон"}, -{"usage": "city", "name": "Ройалстон"}, -{"usage": "city", "name": "Ройалтон"}, -{"usage": "city", "name": "Рок Блафс"}, -{"usage": "city", "name": "Роки Хилл"}, -{"usage": "city", "name": "Рокингем"}, -{"usage": "city", "name": "Рокленд"}, -{"usage": "city", "name": "Рокпорт"}, -{"usage": "city", "name": "Роксбери"}, -{"usage": "city", "name": "Роллинсфорд"}, -{"usage": "city", "name": "Ром"}, -{"usage": "city", "name": "Роу"}, -{"usage": "city", "name": "Роули"}, -{"usage": "city", "name": "Рочестер"}, -{"usage": "city", "name": "Руперт"}, -{"usage": "city", "name": "Сабаттус"}, -{"usage": "city", "name": "Савой"}, -{"usage": "city", "name": "Садбери"}, -{"usage": "city", "name": "Сайчуат"}, -{"usage": "city", "name": "Сако"}, -{"usage": "city", "name": "Салливан"}, -{"usage": "city", "name": "Самнер"}, -{"usage": "city", "name": "Санапи"}, -{"usage": "city", "name": "Санборнтон"}, -{"usage": "city", "name": "Сангервилл"}, -{"usage": "city", "name": "Сандан"}, -{"usage": "city", "name": "Сандгейт"}, -{"usage": "city", "name": "Сандерленд"}, -{"usage": "city", "name": "Санди Ривер Плантейшен"}, -{"usage": "city", "name": "Сандисфилд"}, -{"usage": "city", "name": "Сандуич"}, -{"usage": "city", "name": "Санфорд"}, -{"usage": "city", "name": "Саттон"}, -{"usage": "city", "name": "Саут-Бёрлингтон"}, -{"usage": "city", "name": "Саут-Портленд"}, -{"usage": "city", "name": "Саут-Херо"}, -{"usage": "city", "name": "Саутбери"}, -{"usage": "city", "name": "Саутборо"}, -{"usage": "city", "name": "Саутбридж"}, -{"usage": "city", "name": "Саутвест Харбор"}, -{"usage": "city", "name": "Саутгемптон"}, -{"usage": "city", "name": "Саутингтон"}, -{"usage": "city", "name": "Саутпорт"}, -{"usage": "city", "name": "Саутуик"}, -{"usage": "city", "name": "Саффилд"}, -{"usage": "city", "name": "Себаго"}, -{"usage": "city", "name": "Себек"}, -{"usage": "city", "name": "Себоис Плантейшен"}, -{"usage": "city", "name": "Северный Адамс"}, -{"usage": "city", "name": "Северный Андовер"}, -{"usage": "city", "name": "Северный Беруик"}, -{"usage": "city", "name": "Северный Бранфорд"}, -{"usage": "city", "name": "Северный Брукфилд"}, -{"usage": "city", "name": "Северный Канаан"}, -{"usage": "city", "name": "Северный Кингстаун"}, -{"usage": "city", "name": "Северный Провиденс"}, -{"usage": "city", "name": "Северный Ридинг"}, -{"usage": "city", "name": "Северный Смитфилд"}, -{"usage": "city", "name": "Северный Стонингтон"}, -{"usage": "city", "name": "Северный Хамптон"}, -{"usage": "city", "name": "Северный Хейвен"}, -{"usage": "city", "name": "Северный Этлборо"}, -{"usage": "city", "name": "Северный Ярмут"}, -{"usage": "city", "name": "Седжвик"}, -{"usage": "city", "name": "Сейлем"}, -{"usage": "city", "name": "Сеймур"}, -{"usage": "city", "name": "Сейнт Агата"}, -{"usage": "city", "name": "Сейнт Джон Плантейшен"}, -{"usage": "city", "name": "Сейнт Джонсбери"}, -{"usage": "city", "name": "Сейнт Джордж"}, -{"usage": "city", "name": "Сейнт Олбанс"}, -{"usage": "city", "name": "Сейнт Франсис"}, -{"usage": "city", "name": "Сентер Харбор"}, -{"usage": "city", "name": "Сентервилл"}, -{"usage": "city", "name": "Сентрал Фолс"}, -{"usage": "city", "name": "Серри"}, -{"usage": "city", "name": "Сибрук"}, -{"usage": "city", "name": "Сидни"}, -{"usage": "city", "name": "Сиконк"}, -{"usage": "city", "name": "Симсбери"}, -{"usage": "city", "name": "Сирсберг"}, -{"usage": "city", "name": "Сирсмонт"}, -{"usage": "city", "name": "Сирспорт"}, -{"usage": "city", "name": "Скарборо"}, -{"usage": "city", "name": "Скотленд"}, -{"usage": "city", "name": "Скоухеган"}, -{"usage": "city", "name": "Смирна"}, -{"usage": "city", "name": "Смитфилд"}, -{"usage": "city", "name": "Согас"}, -{"usage": "city", "name": "Солон"}, -{"usage": "city", "name": "Солсбери"}, -{"usage": "city", "name": "Сомервилл"}, -{"usage": "city", "name": "Сомерс"}, -{"usage": "city", "name": "Сомерсворт"}, -{"usage": "city", "name": "Сомерсет"}, -{"usage": "city", "name": "Сорренто"}, -{"usage": "city", "name": "Спенсер"}, -{"usage": "city", "name": "Спраг"}, -{"usage": "city", "name": "Спрингфилд"}, -{"usage": "city", "name": "Стандиш"}, -{"usage": "city", "name": "Станнард"}, -{"usage": "city", "name": "Старк"}, -{"usage": "city", "name": "Старкс"}, -{"usage": "city", "name": "Старксборо"}, -{"usage": "city", "name": "Стаффорд"}, -{"usage": "city", "name": "Стейсивилл"}, -{"usage": "city", "name": "Стербридж"}, -{"usage": "city", "name": "Стерлинг"}, -{"usage": "city", "name": "Стетсон"}, -{"usage": "city", "name": "Стоддард"}, -{"usage": "city", "name": "Стокбридж"}, -{"usage": "city", "name": "Стокем"}, -{"usage": "city", "name": "Стоктон Спрингс"}, -{"usage": "city", "name": "Стонингтон"}, -{"usage": "city", "name": "Стонхем"}, -{"usage": "city", "name": "Стоу"}, -{"usage": "city", "name": "Стоу"}, -{"usage": "city", "name": "Стоутон"}, -{"usage": "city", "name": "Стратам"}, -{"usage": "city", "name": "Страттон"}, -{"usage": "city", "name": "Стратфорд"}, -{"usage": "city", "name": "Страффорд"}, -{"usage": "city", "name": "Стронг"}, -{"usage": "city", "name": "Стьюбен"}, -{"usage": "city", "name": "Стэмфорд"}, -{"usage": "city", "name": "Стюартстаун"}, -{"usage": "city", "name": "Суиден"}, -{"usage": "city", "name": "Суомпскотт"}, -{"usage": "city", "name": "Суонвилл"}, -{"usage": "city", "name": "Суонзей"}, -{"usage": "city", "name": "Суонс Айленд"}, -{"usage": "city", "name": "Суонси"}, -{"usage": "city", "name": "Суонтон"}, -{"usage": "city", "name": "Суррей"}, -{"usage": "city", "name": "Тайнгсборо"}, -{"usage": "city", "name": "Тайрингем"}, -{"usage": "city", "name": "Талмадж"}, -{"usage": "city", "name": "Тамворт"}, -{"usage": "city", "name": "Танбридж"}, -{"usage": "city", "name": "Таунсенд"}, -{"usage": "city", "name": "Таунтон"}, -{"usage": "city", "name": "Тауншенд"}, -{"usage": "city", "name": "Тафтонборо"}, -{"usage": "city", "name": "Тексбери"}, -{"usage": "city", "name": "Темпл"}, -{"usage": "city", "name": "Темплтон"}, -{"usage": "city", "name": "Тетфорд"}, -{"usage": "city", "name": "Тивертон"}, -{"usage": "city", "name": "Тилтон"}, -{"usage": "city", "name": "Тинмут"}, -{"usage": "city", "name": "Тисбери"}, -{"usage": "city", "name": "Толенд"}, -{"usage": "city", "name": "Томастон"}, -{"usage": "city", "name": "Томпсон"}, -{"usage": "city", "name": "Топсфилд"}, -{"usage": "city", "name": "Топсхем"}, -{"usage": "city", "name": "Торндайк"}, -{"usage": "city", "name": "Торнтон"}, -{"usage": "city", "name": "Торрингтон"}, -{"usage": "city", "name": "Трамбулл"}, -{"usage": "city", "name": "Тремонт"}, -{"usage": "city", "name": "Трентон"}, -{"usage": "city", "name": "Трескотт"}, -{"usage": "city", "name": "Трой"}, -{"usage": "city", "name": "Труро"}, -{"usage": "city", "name": "Тёрнер"}, -{"usage": "city", "name": "Уайтинг"}, -{"usage": "city", "name": "Уайтингем"}, -{"usage": "city", "name": "Уайтфилд"}, -{"usage": "city", "name": "Уатли"}, -{"usage": "city", "name": "Уилбрахам"}, -{"usage": "city", "name": "Уиллимантик"}, -{"usage": "city", "name": "Уиллингтон"}, -{"usage": "city", "name": "Уиллистон"}, -{"usage": "city", "name": "Уилмингтон"}, -{"usage": "city", "name": "Уилмот"}, -{"usage": "city", "name": "Уилок"}, -{"usage": "city", "name": "Уилтон"}, -{"usage": "city", "name": "Уильямсберг"}, -{"usage": "city", "name": "Уильямстаун"}, -{"usage": "city", "name": "Уинн"}, -{"usage": "city", "name": "Уинслоу"}, -{"usage": "city", "name": "Уинтер Харбор"}, -{"usage": "city", "name": "Уинтервилл Плантейшен"}, -{"usage": "city", "name": "Уинтерпорт"}, -{"usage": "city", "name": "Уинтроп"}, -{"usage": "city", "name": "Уинуски"}, -{"usage": "city", "name": "Уинхолл"}, -{"usage": "city", "name": "Уинчендон"}, -{"usage": "city", "name": "Уитмен"}, -{"usage": "city", "name": "Уитнивилл"}, -{"usage": "city", "name": "Уоберн"}, -{"usage": "city", "name": "Уолден"}, -{"usage": "city", "name": "Уолдо"}, -{"usage": "city", "name": "Уолдоборо"}, -{"usage": "city", "name": "Уолкотт"}, -{"usage": "city", "name": "Уоллаграсс"}, -{"usage": "city", "name": "Уоллингфорд"}, -{"usage": "city", "name": "Уолпол"}, -{"usage": "city", "name": "Уолтем"}, -{"usage": "city", "name": "Уордсборо"}, -{"usage": "city", "name": "Уорик"}, -{"usage": "city", "name": "Уорнер"}, -{"usage": "city", "name": "Уоррен"}, -{"usage": "city", "name": "Уортингтон"}, -{"usage": "city", "name": "Уотербери"}, -{"usage": "city", "name": "Уотерборо"}, -{"usage": "city", "name": "Уотервилл Вэлли"}, -{"usage": "city", "name": "Уотервиль"}, -{"usage": "city", "name": "Уотертаун"}, -{"usage": "city", "name": "Уотерфорд"}, -{"usage": "city", "name": "Уошберн"}, -{"usage": "city", "name": "Уэбстер Плантейшен"}, -{"usage": "city", "name": "Уэбстер"}, -{"usage": "city", "name": "Уэйбридж"}, -{"usage": "city", "name": "Уэйд"}, -{"usage": "city", "name": "Уэйкфилд"}, -{"usage": "city", "name": "Уэйленд"}, -{"usage": "city", "name": "Уэймут"}, -{"usage": "city", "name": "Уэйн"}, -{"usage": "city", "name": "Уэйт"}, -{"usage": "city", "name": "Уэйтсфилд"}, -{"usage": "city", "name": "Уэлд"}, -{"usage": "city", "name": "Уэллсли"}, -{"usage": "city", "name": "Уэлс"}, -{"usage": "city", "name": "Уэлфлит"}, -{"usage": "city", "name": "Уэльс"}, -{"usage": "city", "name": "Уэнделл"}, -{"usage": "city", "name": "Уэнтворт"}, -{"usage": "city", "name": "Уэнхем"}, -{"usage": "city", "name": "Уэр"}, -{"usage": "city", "name": "Уэсли"}, -{"usage": "city", "name": "Уэстборо"}, -{"usage": "city", "name": "Уэстбрук"}, -{"usage": "city", "name": "Уэствуд"}, -{"usage": "city", "name": "Уэстгемптон"}, -{"usage": "city", "name": "Уэстерли"}, -{"usage": "city", "name": "Уэстманленд"}, -{"usage": "city", "name": "Уэстмор"}, -{"usage": "city", "name": "Уэстморленд"}, -{"usage": "city", "name": "Уэстон"}, -{"usage": "city", "name": "Уэстпорт"}, -{"usage": "city", "name": "Уэстфилд"}, -{"usage": "city", "name": "Уэстфорд"}, -{"usage": "city", "name": "Уэтерсфилд"}, -{"usage": "city", "name": "Уэтерсфилд"}, -{"usage": "city", "name": "Файет"}, -{"usage": "city", "name": "Фармингдейл"}, -{"usage": "city", "name": "Фармингтон"}, -{"usage": "city", "name": "Фейстон"}, -{"usage": "city", "name": "Феррисбург"}, -{"usage": "city", "name": "Филлипс"}, -{"usage": "city", "name": "Филлипстон"}, -{"usage": "city", "name": "Фипсберг"}, -{"usage": "city", "name": "Фицвиллиам"}, -{"usage": "city", "name": "Фичберг"}, -{"usage": "city", "name": "Флетчер"}, -{"usage": "city", "name": "Флорида"}, -{"usage": "city", "name": "Фоксборо"}, -{"usage": "city", "name": "Фолл-Ривер"}, -{"usage": "city", "name": "Фолмут"}, -{"usage": "city", "name": "Форест Сити"}, -{"usage": "city", "name": "Форкс"}, -{"usage": "city", "name": "Форт Кент"}, -{"usage": "city", "name": "Форт Фэрфилд"}, -{"usage": "city", "name": "Фостер"}, -{"usage": "city", "name": "Фрай Айленд"}, -{"usage": "city", "name": "Фрайбург"}, -{"usage": "city", "name": "Фрамингем"}, -{"usage": "city", "name": "Франклин"}, -{"usage": "city", "name": "Франкония"}, -{"usage": "city", "name": "Франкфорт"}, -{"usage": "city", "name": "Франсстаун"}, -{"usage": "city", "name": "Френдшип"}, -{"usage": "city", "name": "Френчборо"}, -{"usage": "city", "name": "Френчвилл"}, -{"usage": "city", "name": "Фридом"}, -{"usage": "city", "name": "Фримен"}, -{"usage": "city", "name": "Фримонт"}, -{"usage": "city", "name": "Фрипорт"}, -{"usage": "city", "name": "Фритаун"}, -{"usage": "city", "name": "Фэр Хейвен"}, -{"usage": "city", "name": "Фэрли"}, -{"usage": "city", "name": "Фэрфакс"}, -{"usage": "city", "name": "Фэрфилд"}, -{"usage": "city", "name": "Фэрхейвен"}, -{"usage": "city", "name": "Хаббардстон"}, -{"usage": "city", "name": "Хаббардтон"}, -{"usage": "city", "name": "Хаддэм"}, -{"usage": "city", "name": "Хадли"}, -{"usage": "city", "name": "Хайгейт"}, -{"usage": "city", "name": "Хайленд Плантейшен"}, -{"usage": "city", "name": "Хайнсберг"}, -{"usage": "city", "name": "Халл"}, -{"usage": "city", "name": "Халлоуэлл"}, -{"usage": "city", "name": "Хамден"}, -{"usage": "city", "name": "Хамлин"}, -{"usage": "city", "name": "Хаммонд"}, -{"usage": "city", "name": "Хампден"}, -{"usage": "city", "name": "Хампстед"}, -{"usage": "city", "name": "Хамптон Фолс"}, -{"usage": "city", "name": "Хамптон"}, -{"usage": "city", "name": "Ханкок"}, -{"usage": "city", "name": "Хансон"}, -{"usage": "city", "name": "Хантингтон"}, -{"usage": "city", "name": "Харвинтон"}, -{"usage": "city", "name": "Харвич"}, -{"usage": "city", "name": "Хардвик"}, -{"usage": "city", "name": "Хармони"}, -{"usage": "city", "name": "Харпсуэлл"}, -{"usage": "city", "name": "Харрикейн Айл"}, -{"usage": "city", "name": "Харрингтон"}, -{"usage": "city", "name": "Харрисвилл"}, -{"usage": "city", "name": "Хартленд"}, -{"usage": "city", "name": "Хартс Локейшен"}, -{"usage": "city", "name": "Хартфорд"}, -{"usage": "city", "name": "Хатфилд"}, -{"usage": "city", "name": "Хеброн"}, -{"usage": "city", "name": "Хейвенхилл"}, -{"usage": "city", "name": "Хейнсвилл"}, -{"usage": "city", "name": "Хенникер"}, -{"usage": "city", "name": "Хермон"}, -{"usage": "city", "name": "Херси"}, -{"usage": "city", "name": "Хилл"}, -{"usage": "city", "name": "Хиллсборо"}, -{"usage": "city", "name": "Хингем"}, -{"usage": "city", "name": "Хинсдейл"}, -{"usage": "city", "name": "Хирам"}, -{"usage": "city", "name": "Хит"}, -{"usage": "city", "name": "Ходждон"}, -{"usage": "city", "name": "Холбрук"}, -{"usage": "city", "name": "Холдернесс"}, -{"usage": "city", "name": "Холдэн"}, -{"usage": "city", "name": "Холи"}, -{"usage": "city", "name": "Холиок"}, -{"usage": "city", "name": "Холланд"}, -{"usage": "city", "name": "Холлис"}, -{"usage": "city", "name": "Холлистон"}, -{"usage": "city", "name": "Хоп"}, -{"usage": "city", "name": "Хопдейл"}, -{"usage": "city", "name": "Хопкинтон"}, -{"usage": "city", "name": "Хоуленд"}, -{"usage": "city", "name": "Хоултон"}, -{"usage": "city", "name": "Хуксетт"}, -{"usage": "city", "name": "Чайна"}, -{"usage": "city", "name": "Чаплин"}, -{"usage": "city", "name": "Чапман"}, -{"usage": "city", "name": "Чарлмонт"}, -{"usage": "city", "name": "Чарлстаун"}, -{"usage": "city", "name": "Чарлстон"}, -{"usage": "city", "name": "Чарлтон"}, -{"usage": "city", "name": "Чатем"}, -{"usage": "city", "name": "Чебиг Айленд"}, -{"usage": "city", "name": "Челмсфорд"}, -{"usage": "city", "name": "Челси"}, -{"usage": "city", "name": "Черрифилд"}, -{"usage": "city", "name": "Честер"}, -{"usage": "city", "name": "Честервилль"}, -{"usage": "city", "name": "Честерфилд"}, -{"usage": "city", "name": "Чешир"}, -{"usage": "city", "name": "Чикопи"}, -{"usage": "city", "name": "Чилмарк"}, -{"usage": "city", "name": "Читтенден"}, -{"usage": "city", "name": "Чичестер"}, -{"usage": "city", "name": "Шапли"}, -{"usage": "city", "name": "Шарлотта"}, -{"usage": "city", "name": "Шарон"}, -{"usage": "city", "name": "Шафтсбери"}, -{"usage": "city", "name": "Шелберн"}, -{"usage": "city", "name": "Шелдон"}, -{"usage": "city", "name": "Шелтон"}, -{"usage": "city", "name": "Шерборн"}, -{"usage": "city", "name": "Шерман"}, -{"usage": "city", "name": "Шеффилд"}, -{"usage": "city", "name": "Ширли"}, -{"usage": "city", "name": "Шорхэм"}, -{"usage": "city", "name": "Шрусбери"}, -{"usage": "city", "name": "Шугар Хилл"}, -{"usage": "city", "name": "Шютсбери"}, -{"usage": "city", "name": "Эатон"}, -{"usage": "city", "name": "Эббот"}, -{"usage": "city", "name": "Эверетт"}, -{"usage": "city", "name": "Эгремонт"}, -{"usage": "city", "name": "Эдгартаун"}, -{"usage": "city", "name": "Эддингтон"}, -{"usage": "city", "name": "Эджком"}, -{"usage": "city", "name": "Эдинбург"}, -{"usage": "city", "name": "Эдмундс"}, -{"usage": "city", "name": "Эйвон"}, -{"usage": "city", "name": "Эймсбери"}, -{"usage": "city", "name": "Эксетер"}, -{"usage": "city", "name": "Элиот"}, -{"usage": "city", "name": "Эллингтон"}, -{"usage": "city", "name": "Эллсворт"}, -{"usage": "city", "name": "Элмор"}, -{"usage": "city", "name": "Эмбден"}, -{"usage": "city", "name": "Эндовер"}, -{"usage": "city", "name": "Эносберг"}, -{"usage": "city", "name": "Энсон"}, -{"usage": "city", "name": "Энфилд"}, -{"usage": "city", "name": "Эппинг"}, -{"usage": "city", "name": "Эпплтон"}, -{"usage": "city", "name": "Эпсом"}, -{"usage": "city", "name": "Эрвинг"}, -{"usage": "city", "name": "Эррол"}, -{"usage": "city", "name": "Эссекс"}, -{"usage": "city", "name": "Этна"}, -{"usage": "city", "name": "Эттлборо"}, -{"usage": "city", "name": "Эфингем"}, -{"usage": "city", "name": "Южный Беруик"}, -{"usage": "city", "name": "Южный Бристоль"}, -{"usage": "city", "name": "Южный Виндзор"}, -{"usage": "city", "name": "Южный Кингстаун"}, -{"usage": "city", "name": "Южный Томастон"}, -{"usage": "city", "name": "Южный Хадли"}, -{"usage": "city", "name": "Южный Хамптон"}, -{"usage": "city", "name": "Юнион"}, -{"usage": "city", "name": "Юнити"}, -{"usage": "city", "name": "Юстис"}, -{"usage": "city", "name": "Ярмут"}, -{"usage": "family", "gender": "unisex", "name": "Аарон"}, -{"usage": "family", "gender": "unisex", "name": "Абель"}, -{"usage": "family", "gender": "unisex", "name": "Абернати"}, -{"usage": "family", "gender": "unisex", "name": "Абрамс"}, -{"usage": "family", "gender": "unisex", "name": "Абрахам"}, -{"usage": "family", "gender": "unisex", "name": "Абреу"}, -{"usage": "family", "gender": "unisex", "name": "Авалос"}, -{"usage": "family", "gender": "unisex", "name": "Августин"}, -{"usage": "family", "gender": "unisex", "name": "Авила"}, -{"usage": "family", "gender": "unisex", "name": "Авилес"}, -{"usage": "family", "gender": "unisex", "name": "Агилар"}, -{"usage": "family", "gender": "unisex", "name": "Агилера"}, -{"usage": "family", "gender": "unisex", "name": "Агирре"}, -{"usage": "family", "gender": "unisex", "name": "Адаме"}, -{"usage": "family", "gender": "unisex", "name": "Адамсон"}, -{"usage": "family", "gender": "unisex", "name": "Адамс"}, -{"usage": "family", "gender": "unisex", "name": "Адам"}, -{"usage": "family", "gender": "unisex", "name": "Аддисон"}, -{"usage": "family", "gender": "unisex", "name": "Адкинс"}, -{"usage": "family", "gender": "unisex", "name": "Адкок"}, -{"usage": "family", "gender": "unisex", "name": "Адлер"}, -{"usage": "family", "gender": "unisex", "name": "Адэр"}, -{"usage": "family", "gender": "unisex", "name": "Айверсон"}, -{"usage": "family", "gender": "unisex", "name": "Айви"}, -{"usage": "family", "gender": "unisex", "name": "Айерс"}, -{"usage": "family", "gender": "unisex", "name": "Айзекс"}, -{"usage": "family", "gender": "unisex", "name": "Айзек"}, -{"usage": "family", "gender": "unisex", "name": "Айкен"}, -{"usage": "family", "gender": "unisex", "name": "Айрлэнд"}, -{"usage": "family", "gender": "unisex", "name": "Акерман"}, -{"usage": "family", "gender": "unisex", "name": "Акино"}, -{"usage": "family", "gender": "unisex", "name": "Акинс"}, -{"usage": "family", "gender": "unisex", "name": "Акоста"}, -{"usage": "family", "gender": "unisex", "name": "Акуна"}, -{"usage": "family", "gender": "unisex", "name": "Аланис"}, -{"usage": "family", "gender": "unisex", "name": "Аларкон"}, -{"usage": "family", "gender": "unisex", "name": "Алвес"}, -{"usage": "family", "gender": "unisex", "name": "Александер"}, -{"usage": "family", "gender": "unisex", "name": "Алеман"}, -{"usage": "family", "gender": "unisex", "name": "Али"}, -{"usage": "family", "gender": "unisex", "name": "Аллен"}, -{"usage": "family", "gender": "unisex", "name": "Алмейда"}, -{"usage": "family", "gender": "unisex", "name": "Алонзо"}, -{"usage": "family", "gender": "unisex", "name": "Алонсо"}, -{"usage": "family", "gender": "unisex", "name": "Алстон"}, -{"usage": "family", "gender": "unisex", "name": "Алфорд"}, -{"usage": "family", "gender": "unisex", "name": "Альберт"}, -{"usage": "family", "gender": "unisex", "name": "Альбрехт"}, -{"usage": "family", "gender": "unisex", "name": "Альварадо"}, -{"usage": "family", "gender": "unisex", "name": "Альварес"}, -{"usage": "family", "gender": "unisex", "name": "Алькала"}, -{"usage": "family", "gender": "unisex", "name": "Альтман"}, -{"usage": "family", "gender": "unisex", "name": "Альфаро"}, -{"usage": "family", "gender": "unisex", "name": "Амадор"}, -{"usage": "family", "gender": "unisex", "name": "Амато"}, -{"usage": "family", "gender": "unisex", "name": "Амая"}, -{"usage": "family", "gender": "unisex", "name": "Анайя"}, -{"usage": "family", "gender": "unisex", "name": "Ангиано"}, -{"usage": "family", "gender": "unisex", "name": "Андервуд"}, -{"usage": "family", "gender": "unisex", "name": "Андерсен"}, -{"usage": "family", "gender": "unisex", "name": "Андерсон"}, -{"usage": "family", "gender": "unisex", "name": "Андерс"}, -{"usage": "family", "gender": "unisex", "name": "Андраде"}, -{"usage": "family", "gender": "unisex", "name": "Апонте"}, -{"usage": "family", "gender": "unisex", "name": "Аптон"}, -{"usage": "family", "gender": "unisex", "name": "Арагон"}, -{"usage": "family", "gender": "unisex", "name": "Аранда"}, -{"usage": "family", "gender": "unisex", "name": "Араужо"}, -{"usage": "family", "gender": "unisex", "name": "Аревало"}, -{"usage": "family", "gender": "unisex", "name": "Арельяно"}, -{"usage": "family", "gender": "unisex", "name": "Ариас"}, -{"usage": "family", "gender": "unisex", "name": "Армстронг"}, -{"usage": "family", "gender": "unisex", "name": "Арндт"}, -{"usage": "family", "gender": "unisex", "name": "Арнетт"}, -{"usage": "family", "gender": "unisex", "name": "Арнольд"}, -{"usage": "family", "gender": "unisex", "name": "Арредондо"}, -{"usage": "family", "gender": "unisex", "name": "Арреола"}, -{"usage": "family", "gender": "unisex", "name": "Арриага"}, -{"usage": "family", "gender": "unisex", "name": "Аррингтон"}, -{"usage": "family", "gender": "unisex", "name": "Арройо"}, -{"usage": "family", "gender": "unisex", "name": "Арсе"}, -{"usage": "family", "gender": "unisex", "name": "Артеага"}, -{"usage": "family", "gender": "unisex", "name": "Артур"}, -{"usage": "family", "gender": "unisex", "name": "Арчер"}, -{"usage": "family", "gender": "unisex", "name": "Арчулета"}, -{"usage": "family", "gender": "unisex", "name": "Асеведо"}, -{"usage": "family", "gender": "unisex", "name": "Аскью"}, -{"usage": "family", "gender": "unisex", "name": "Аткинсон"}, -{"usage": "family", "gender": "unisex", "name": "Аткинс"}, -{"usage": "family", "gender": "unisex", "name": "Ахмад"}, -{"usage": "family", "gender": "unisex", "name": "Ахмед"}, -{"usage": "family", "gender": "unisex", "name": "Ашер"}, -{"usage": "family", "gender": "unisex", "name": "Аяла"}, -{"usage": "family", "gender": "unisex", "name": "Бабб"}, -{"usage": "family", "gender": "unisex", "name": "Баггетт"}, -{"usage": "family", "gender": "unisex", "name": "Байерс"}, -{"usage": "family", "gender": "unisex", "name": "Бака"}, -{"usage": "family", "gender": "unisex", "name": "Бакли"}, -{"usage": "family", "gender": "unisex", "name": "Бакнер"}, -{"usage": "family", "gender": "unisex", "name": "Бакстер"}, -{"usage": "family", "gender": "unisex", "name": "Бак"}, -{"usage": "family", "gender": "unisex", "name": "Баллард"}, -{"usage": "family", "gender": "unisex", "name": "Банди"}, -{"usage": "family", "gender": "unisex", "name": "Бануэлос"}, -{"usage": "family", "gender": "unisex", "name": "Банч"}, -{"usage": "family", "gender": "unisex", "name": "Барахас"}, -{"usage": "family", "gender": "unisex", "name": "Барбер"}, -{"usage": "family", "gender": "unisex", "name": "Барбоза"}, -{"usage": "family", "gender": "unisex", "name": "Барбур"}, -{"usage": "family", "gender": "unisex", "name": "Баргер"}, -{"usage": "family", "gender": "unisex", "name": "Баркер"}, -{"usage": "family", "gender": "unisex", "name": "Барклай"}, -{"usage": "family", "gender": "unisex", "name": "Баркли"}, -{"usage": "family", "gender": "unisex", "name": "Барлоу"}, -{"usage": "family", "gender": "unisex", "name": "Барнард"}, -{"usage": "family", "gender": "unisex", "name": "Барнетт"}, -{"usage": "family", "gender": "unisex", "name": "Барни"}, -{"usage": "family", "gender": "unisex", "name": "Барнс"}, -{"usage": "family", "gender": "unisex", "name": "Барнхарт"}, -{"usage": "family", "gender": "unisex", "name": "Бароне"}, -{"usage": "family", "gender": "unisex", "name": "Барон"}, -{"usage": "family", "gender": "unisex", "name": "Барраган"}, -{"usage": "family", "gender": "unisex", "name": "Барраза"}, -{"usage": "family", "gender": "unisex", "name": "Баррелл"}, -{"usage": "family", "gender": "unisex", "name": "Баррера"}, -{"usage": "family", "gender": "unisex", "name": "Баррет"}, -{"usage": "family", "gender": "unisex", "name": "Барриос"}, -{"usage": "family", "gender": "unisex", "name": "Баррис"}, -{"usage": "family", "gender": "unisex", "name": "Барри"}, -{"usage": "family", "gender": "unisex", "name": "Баррон"}, -{"usage": "family", "gender": "unisex", "name": "Барроу"}, -{"usage": "family", "gender": "unisex", "name": "Баррьентос"}, -{"usage": "family", "gender": "unisex", "name": "Барр"}, -{"usage": "family", "gender": "unisex", "name": "Бартлетт"}, -{"usage": "family", "gender": "unisex", "name": "Бартли"}, -{"usage": "family", "gender": "unisex", "name": "Бартоломью"}, -{"usage": "family", "gender": "unisex", "name": "Бартон"}, -{"usage": "family", "gender": "unisex", "name": "Барт"}, -{"usage": "family", "gender": "unisex", "name": "Барфильд"}, -{"usage": "family", "gender": "unisex", "name": "Басби"}, -{"usage": "family", "gender": "unisex", "name": "Бассет"}, -{"usage": "family", "gender": "unisex", "name": "Басс"}, -{"usage": "family", "gender": "unisex", "name": "Батиста"}, -{"usage": "family", "gender": "unisex", "name": "Батлер"}, -{"usage": "family", "gender": "unisex", "name": "Баттерфилд"}, -{"usage": "family", "gender": "unisex", "name": "Баттс"}, -{"usage": "family", "gender": "unisex", "name": "Батчер"}, -{"usage": "family", "gender": "unisex", "name": "Баузер"}, -{"usage": "family", "gender": "unisex", "name": "Бауманн"}, -{"usage": "family", "gender": "unisex", "name": "Бауман"}, -{"usage": "family", "gender": "unisex", "name": "Баумгартнер"}, -{"usage": "family", "gender": "unisex", "name": "Баум"}, -{"usage": "family", "gender": "unisex", "name": "Баутиста"}, -{"usage": "family", "gender": "unisex", "name": "Бауэрс"}, -{"usage": "family", "gender": "unisex", "name": "Бауэр"}, -{"usage": "family", "gender": "unisex", "name": "Бахман"}, -{"usage": "family", "gender": "unisex", "name": "Бах"}, -{"usage": "family", "gender": "unisex", "name": "Баэз"}, -{"usage": "family", "gender": "unisex", "name": "Беверли"}, -{"usage": "family", "gender": "unisex", "name": "Бегей"}, -{"usage": "family", "gender": "unisex", "name": "Бейер"}, -{"usage": "family", "gender": "unisex", "name": "Бейкер"}, -{"usage": "family", "gender": "unisex", "name": "Бейлс"}, -{"usage": "family", "gender": "unisex", "name": "Бейтман"}, -{"usage": "family", "gender": "unisex", "name": "Бейтс"}, -{"usage": "family", "gender": "unisex", "name": "Беквит"}, -{"usage": "family", "gender": "unisex", "name": "Беккер"}, -{"usage": "family", "gender": "unisex", "name": "Беккет"}, -{"usage": "family", "gender": "unisex", "name": "Бекман"}, -{"usage": "family", "gender": "unisex", "name": "Бек"}, -{"usage": "family", "gender": "unisex", "name": "Беллами"}, -{"usage": "family", "gender": "unisex", "name": "Белло"}, -{"usage": "family", "gender": "unisex", "name": "Белл"}, -{"usage": "family", "gender": "unisex", "name": "Белчер"}, -{"usage": "family", "gender": "unisex", "name": "Бельтран"}, -{"usage": "family", "gender": "unisex", "name": "Белэнджер"}, -{"usage": "family", "gender": "unisex", "name": "Бенавидес"}, -{"usage": "family", "gender": "unisex", "name": "Бендер"}, -{"usage": "family", "gender": "unisex", "name": "Бенджамин"}, -{"usage": "family", "gender": "unisex", "name": "Бенедикт"}, -{"usage": "family", "gender": "unisex", "name": "Бенитес"}, -{"usage": "family", "gender": "unisex", "name": "Беннер"}, -{"usage": "family", "gender": "unisex", "name": "Беннетт"}, -{"usage": "family", "gender": "unisex", "name": "Бенсон"}, -{"usage": "family", "gender": "unisex", "name": "Бентли"}, -{"usage": "family", "gender": "unisex", "name": "Бентон"}, -{"usage": "family", "gender": "unisex", "name": "Бенуа"}, -{"usage": "family", "gender": "unisex", "name": "Бергер"}, -{"usage": "family", "gender": "unisex", "name": "Бергман"}, -{"usage": "family", "gender": "unisex", "name": "Берг"}, -{"usage": "family", "gender": "unisex", "name": "Берден"}, -{"usage": "family", "gender": "unisex", "name": "Бердетт"}, -{"usage": "family", "gender": "unisex", "name": "Берд"}, -{"usage": "family", "gender": "unisex", "name": "Бержерон"}, -{"usage": "family", "gender": "unisex", "name": "Берман"}, -{"usage": "family", "gender": "unisex", "name": "Бермудес"}, -{"usage": "family", "gender": "unisex", "name": "Берналь"}, -{"usage": "family", "gender": "unisex", "name": "Бернард"}, -{"usage": "family", "gender": "unisex", "name": "Бернетт"}, -{"usage": "family", "gender": "unisex", "name": "Бернштейн"}, -{"usage": "family", "gender": "unisex", "name": "Берри"}, -{"usage": "family", "gender": "unisex", "name": "Берроуз"}, -{"usage": "family", "gender": "unisex", "name": "Бертран"}, -{"usage": "family", "gender": "unisex", "name": "Берч"}, -{"usage": "family", "gender": "unisex", "name": "Бесерра"}, -{"usage": "family", "gender": "unisex", "name": "Бест"}, -{"usage": "family", "gender": "unisex", "name": "Бетанкур"}, -{"usage": "family", "gender": "unisex", "name": "Беттс"}, -{"usage": "family", "gender": "unisex", "name": "Биб"}, -{"usage": "family", "gender": "unisex", "name": "Биверс"}, -{"usage": "family", "gender": "unisex", "name": "Бивер"}, -{"usage": "family", "gender": "unisex", "name": "Биггс"}, -{"usage": "family", "gender": "unisex", "name": "Бигелоу"}, -{"usage": "family", "gender": "unisex", "name": "Биллингсли"}, -{"usage": "family", "gender": "unisex", "name": "Биллингс"}, -{"usage": "family", "gender": "unisex", "name": "Бил"}, -{"usage": "family", "gender": "unisex", "name": "Бим"}, -{"usage": "family", "gender": "unisex", "name": "Бингем"}, -{"usage": "family", "gender": "unisex", "name": "Бинум"}, -{"usage": "family", "gender": "unisex", "name": "Бин"}, -{"usage": "family", "gender": "unisex", "name": "Бирд"}, -{"usage": "family", "gender": "unisex", "name": "Бирн"}, -{"usage": "family", "gender": "unisex", "name": "Бисли"}, -{"usage": "family", "gender": "unisex", "name": "Бити"}, -{"usage": "family", "gender": "unisex", "name": "Битти"}, -{"usage": "family", "gender": "unisex", "name": "Бич"}, -{"usage": "family", "gender": "unisex", "name": "Бишоп"}, -{"usage": "family", "gender": "unisex", "name": "Бланкеншип"}, -{"usage": "family", "gender": "unisex", "name": "Бланко"}, -{"usage": "family", "gender": "unisex", "name": "Бланк"}, -{"usage": "family", "gender": "unisex", "name": "Блант"}, -{"usage": "family", "gender": "unisex", "name": "Бланшар"}, -{"usage": "family", "gender": "unisex", "name": "Блевинс"}, -{"usage": "family", "gender": "unisex", "name": "Бледсо"}, -{"usage": "family", "gender": "unisex", "name": "Блейкли"}, -{"usage": "family", "gender": "unisex", "name": "Блейк"}, -{"usage": "family", "gender": "unisex", "name": "Блисс"}, -{"usage": "family", "gender": "unisex", "name": "Блок"}, -{"usage": "family", "gender": "unisex", "name": "Блум"}, -{"usage": "family", "gender": "unisex", "name": "Блэкбёрн"}, -{"usage": "family", "gender": "unisex", "name": "Блэквелл"}, -{"usage": "family", "gender": "unisex", "name": "Блэкман"}, -{"usage": "family", "gender": "unisex", "name": "Блэкмон"}, -{"usage": "family", "gender": "unisex", "name": "Блэк"}, -{"usage": "family", "gender": "unisex", "name": "Блэлок"}, -{"usage": "family", "gender": "unisex", "name": "Блэнд"}, -{"usage": "family", "gender": "unisex", "name": "Блэнтон"}, -{"usage": "family", "gender": "unisex", "name": "Блэр"}, -{"usage": "family", "gender": "unisex", "name": "Блюм"}, -{"usage": "family", "gender": "unisex", "name": "Блю"}, -{"usage": "family", "gender": "unisex", "name": "Боггс"}, -{"usage": "family", "gender": "unisex", "name": "Бойд"}, -{"usage": "family", "gender": "unisex", "name": "Бойер"}, -{"usage": "family", "gender": "unisex", "name": "Бойкин"}, -{"usage": "family", "gender": "unisex", "name": "Бойл"}, -{"usage": "family", "gender": "unisex", "name": "Бойс"}, -{"usage": "family", "gender": "unisex", "name": "Бок"}, -{"usage": "family", "gender": "unisex", "name": "Боланд"}, -{"usage": "family", "gender": "unisex", "name": "Болден"}, -{"usage": "family", "gender": "unisex", "name": "Болдерас"}, -{"usage": "family", "gender": "unisex", "name": "Болдуин"}, -{"usage": "family", "gender": "unisex", "name": "Болес"}, -{"usage": "family", "gender": "unisex", "name": "Болин"}, -{"usage": "family", "gender": "unisex", "name": "Боллинджер"}, -{"usage": "family", "gender": "unisex", "name": "Болл"}, -{"usage": "family", "gender": "unisex", "name": "Болтон"}, -{"usage": "family", "gender": "unisex", "name": "Боман"}, -{"usage": "family", "gender": "unisex", "name": "Бондс"}, -{"usage": "family", "gender": "unisex", "name": "Бонд"}, -{"usage": "family", "gender": "unisex", "name": "Бонилья"}, -{"usage": "family", "gender": "unisex", "name": "Боннер"}, -{"usage": "family", "gender": "unisex", "name": "Борден"}, -{"usage": "family", "gender": "unisex", "name": "Бостон"}, -{"usage": "family", "gender": "unisex", "name": "Босуэлл"}, -{"usage": "family", "gender": "unisex", "name": "Боуден"}, -{"usage": "family", "gender": "unisex", "name": "Боулз"}, -{"usage": "family", "gender": "unisex", "name": "Боулинг"}, -{"usage": "family", "gender": "unisex", "name": "Боуман"}, -{"usage": "family", "gender": "unisex", "name": "Боуэн"}, -{"usage": "family", "gender": "unisex", "name": "Бошам"}, -{"usage": "family", "gender": "unisex", "name": "Бо"}, -{"usage": "family", "gender": "unisex", "name": "Браво"}, -{"usage": "family", "gender": "unisex", "name": "Бразерс"}, -{"usage": "family", "gender": "unisex", "name": "Брайант"}, -{"usage": "family", "gender": "unisex", "name": "Брайан"}, -{"usage": "family", "gender": "unisex", "name": "Брайсон"}, -{"usage": "family", "gender": "unisex", "name": "Брайт"}, -{"usage": "family", "gender": "unisex", "name": "Брандт"}, -{"usage": "family", "gender": "unisex", "name": "Браннон"}, -{"usage": "family", "gender": "unisex", "name": "Брансон"}, -{"usage": "family", "gender": "unisex", "name": "Брасвел"}, -{"usage": "family", "gender": "unisex", "name": "Браунинг"}, -{"usage": "family", "gender": "unisex", "name": "Браун"}, -{"usage": "family", "gender": "unisex", "name": "Брауэр"}, -{"usage": "family", "gender": "unisex", "name": "Брейден"}, -{"usage": "family", "gender": "unisex", "name": "Бреннан"}, -{"usage": "family", "gender": "unisex", "name": "Бреннер"}, -{"usage": "family", "gender": "unisex", "name": "Бренхем"}, -{"usage": "family", "gender": "unisex", "name": "Бренч"}, -{"usage": "family", "gender": "unisex", "name": "Бриггс"}, -{"usage": "family", "gender": "unisex", "name": "Бриджес"}, -{"usage": "family", "gender": "unisex", "name": "Бринкли"}, -{"usage": "family", "gender": "unisex", "name": "Бринк"}, -{"usage": "family", "gender": "unisex", "name": "Бринсон"}, -{"usage": "family", "gender": "unisex", "name": "Брин"}, -{"usage": "family", "gender": "unisex", "name": "Брионес"}, -{"usage": "family", "gender": "unisex", "name": "Бриско"}, -{"usage": "family", "gender": "unisex", "name": "Брис"}, -{"usage": "family", "gender": "unisex", "name": "Брито"}, -{"usage": "family", "gender": "unisex", "name": "Бриттон"}, -{"usage": "family", "gender": "unisex", "name": "Бритт"}, -{"usage": "family", "gender": "unisex", "name": "Брок"}, -{"usage": "family", "gender": "unisex", "name": "Бротон"}, -{"usage": "family", "gender": "unisex", "name": "Бро"}, -{"usage": "family", "gender": "unisex", "name": "Брубэйкер"}, -{"usage": "family", "gender": "unisex", "name": "Брукс"}, -{"usage": "family", "gender": "unisex", "name": "Брумфилд"}, -{"usage": "family", "gender": "unisex", "name": "Брунер"}, -{"usage": "family", "gender": "unisex", "name": "Бруннер"}, -{"usage": "family", "gender": "unisex", "name": "Бруно"}, -{"usage": "family", "gender": "unisex", "name": "Бруссард"}, -{"usage": "family", "gender": "unisex", "name": "Брэгг"}, -{"usage": "family", "gender": "unisex", "name": "Брэди"}, -{"usage": "family", "gender": "unisex", "name": "Брэдли"}, -{"usage": "family", "gender": "unisex", "name": "Брэдфорд"}, -{"usage": "family", "gender": "unisex", "name": "Брэдшоу"}, -{"usage": "family", "gender": "unisex", "name": "Брэй"}, -{"usage": "family", "gender": "unisex", "name": "Брэкстон"}, -{"usage": "family", "gender": "unisex", "name": "Брэндон"}, -{"usage": "family", "gender": "unisex", "name": "Брэнд"}, -{"usage": "family", "gender": "unisex", "name": "Брэнтли"}, -{"usage": "family", "gender": "unisex", "name": "Брюстер"}, -{"usage": "family", "gender": "unisex", "name": "Брюс"}, -{"usage": "family", "gender": "unisex", "name": "Брюэр"}, -{"usage": "family", "gender": "unisex", "name": "Будро"}, -{"usage": "family", "gender": "unisex", "name": "Буй"}, -{"usage": "family", "gender": "unisex", "name": "Букер"}, -{"usage": "family", "gender": "unisex", "name": "Буллард"}, -{"usage": "family", "gender": "unisex", "name": "Буллок"}, -{"usage": "family", "gender": "unisex", "name": "Булл"}, -{"usage": "family", "gender": "unisex", "name": "Бун"}, -{"usage": "family", "gender": "unisex", "name": "Бургос"}, -{"usage": "family", "gender": "unisex", "name": "Буржуа"}, -{"usage": "family", "gender": "unisex", "name": "Буркетт"}, -{"usage": "family", "gender": "unisex", "name": "Буркс"}, -{"usage": "family", "gender": "unisex", "name": "Буркхарт"}, -{"usage": "family", "gender": "unisex", "name": "Бустаманте"}, -{"usage": "family", "gender": "unisex", "name": "Бустос"}, -{"usage": "family", "gender": "unisex", "name": "Бут"}, -{"usage": "family", "gender": "unisex", "name": "Бушар"}, -{"usage": "family", "gender": "unisex", "name": "Буше"}, -{"usage": "family", "gender": "unisex", "name": "Буш"}, -{"usage": "family", "gender": "unisex", "name": "Буэно"}, -{"usage": "family", "gender": "unisex", "name": "Бьюкенен"}, -{"usage": "family", "gender": "unisex", "name": "Бэбкок"}, -{"usage": "family", "gender": "unisex", "name": "Бэгли"}, -{"usage": "family", "gender": "unisex", "name": "Бэйли"}, -{"usage": "family", "gender": "unisex", "name": "Бэйн"}, -{"usage": "family", "gender": "unisex", "name": "Бэкон"}, -{"usage": "family", "gender": "unisex", "name": "Бэнкс"}, -{"usage": "family", "gender": "unisex", "name": "Бэрд"}, -{"usage": "family", "gender": "unisex", "name": "Бэр"}, -{"usage": "family", "gender": "unisex", "name": "Бэттл"}, -{"usage": "family", "gender": "unisex", "name": "Бюргер"}, -{"usage": "family", "gender": "unisex", "name": "Бюрден"}, -{"usage": "family", "gender": "unisex", "name": "Бёрджесс"}, -{"usage": "family", "gender": "unisex", "name": "Бёрдик"}, -{"usage": "family", "gender": "unisex", "name": "Бёрд"}, -{"usage": "family", "gender": "unisex", "name": "Бёрк"}, -{"usage": "family", "gender": "unisex", "name": "Бёрлсон"}, -{"usage": "family", "gender": "unisex", "name": "Бёрнет"}, -{"usage": "family", "gender": "unisex", "name": "Бёрнс"}, -{"usage": "family", "gender": "unisex", "name": "Бёрнэм"}, -{"usage": "family", "gender": "unisex", "name": "Бёрр"}, -{"usage": "family", "gender": "unisex", "name": "Бёртон"}, -{"usage": "family", "gender": "unisex", "name": "Бёрт"}, -{"usage": "family", "gender": "unisex", "name": "Бёрч"}, -{"usage": "family", "gender": "unisex", "name": "Ваггонер"}, -{"usage": "family", "gender": "unisex", "name": "Вагнер"}, -{"usage": "family", "gender": "unisex", "name": "Вагонер"}, -{"usage": "family", "gender": "unisex", "name": "Вайман"}, -{"usage": "family", "gender": "unisex", "name": "Вайнер"}, -{"usage": "family", "gender": "unisex", "name": "Вайнштейн"}, -{"usage": "family", "gender": "unisex", "name": "Вайс"}, -{"usage": "family", "gender": "unisex", "name": "Валадес"}, -{"usage": "family", "gender": "unisex", "name": "Валенсия"}, -{"usage": "family", "gender": "unisex", "name": "Валенсуэла"}, -{"usage": "family", "gender": "unisex", "name": "Валентин"}, -{"usage": "family", "gender": "unisex", "name": "Валле"}, -{"usage": "family", "gender": "unisex", "name": "Вальдез"}, -{"usage": "family", "gender": "unisex", "name": "Вальдес"}, -{"usage": "family", "gender": "unisex", "name": "Вальдивия"}, -{"usage": "family", "gender": "unisex", "name": "Вальехо"}, -{"usage": "family", "gender": "unisex", "name": "Валь"}, -{"usage": "family", "gender": "unisex", "name": "ВанХорн"}, -{"usage": "family", "gender": "unisex", "name": "Ванг"}, -{"usage": "family", "gender": "unisex", "name": "Вандайк"}, -{"usage": "family", "gender": "unisex", "name": "Ванн"}, -{"usage": "family", "gender": "unisex", "name": "Ван"}, -{"usage": "family", "gender": "unisex", "name": "Варгас"}, -{"usage": "family", "gender": "unisex", "name": "Варела"}, -{"usage": "family", "gender": "unisex", "name": "Варнер"}, -{"usage": "family", "gender": "unisex", "name": "Васкес"}, -{"usage": "family", "gender": "unisex", "name": "Ватерман"}, -{"usage": "family", "gender": "unisex", "name": "Вашингтон"}, -{"usage": "family", "gender": "unisex", "name": "Вебер"}, -{"usage": "family", "gender": "unisex", "name": "Вебстер"}, -{"usage": "family", "gender": "unisex", "name": "Вега"}, -{"usage": "family", "gender": "unisex", "name": "Веласкес"}, -{"usage": "family", "gender": "unisex", "name": "Веласко"}, -{"usage": "family", "gender": "unisex", "name": "Вела"}, -{"usage": "family", "gender": "unisex", "name": "Велес"}, -{"usage": "family", "gender": "unisex", "name": "Веллер"}, -{"usage": "family", "gender": "unisex", "name": "Вендт"}, -{"usage": "family", "gender": "unisex", "name": "Венегас"}, -{"usage": "family", "gender": "unisex", "name": "Вентура"}, -{"usage": "family", "gender": "unisex", "name": "Венцель"}, -{"usage": "family", "gender": "unisex", "name": "Вера"}, -{"usage": "family", "gender": "unisex", "name": "Вернер"}, -{"usage": "family", "gender": "unisex", "name": "Вернон"}, -{"usage": "family", "gender": "unisex", "name": "Вест"}, -{"usage": "family", "gender": "unisex", "name": "Ветцель"}, -{"usage": "family", "gender": "unisex", "name": "Видал"}, -{"usage": "family", "gender": "unisex", "name": "Виджил"}, -{"usage": "family", "gender": "unisex", "name": "Викерс"}, -{"usage": "family", "gender": "unisex", "name": "Викс"}, -{"usage": "family", "gender": "unisex", "name": "Вик"}, -{"usage": "family", "gender": "unisex", "name": "Вилкерсон"}, -{"usage": "family", "gender": "unisex", "name": "Вилла"}, -{"usage": "family", "gender": "unisex", "name": "Виллингхэм"}, -{"usage": "family", "gender": "unisex", "name": "Вильгельм"}, -{"usage": "family", "gender": "unisex", "name": "Вильегас"}, -{"usage": "family", "gender": "unisex", "name": "Вильялобос"}, -{"usage": "family", "gender": "unisex", "name": "Вильянуэва"}, -{"usage": "family", "gender": "unisex", "name": "Вильярреал"}, -{"usage": "family", "gender": "unisex", "name": "Винклер"}, -{"usage": "family", "gender": "unisex", "name": "Винн"}, -{"usage": "family", "gender": "unisex", "name": "Винсент"}, -{"usage": "family", "gender": "unisex", "name": "Винсон"}, -{"usage": "family", "gender": "unisex", "name": "Винтер"}, -{"usage": "family", "gender": "unisex", "name": "Витале"}, -{"usage": "family", "gender": "unisex", "name": "Виттен"}, -{"usage": "family", "gender": "unisex", "name": "Витт"}, -{"usage": "family", "gender": "unisex", "name": "Вишневски"}, -{"usage": "family", "gender": "unisex", "name": "Воган"}, -{"usage": "family", "gender": "unisex", "name": "Вольф"}, -{"usage": "family", "gender": "unisex", "name": "Вонг"}, -{"usage": "family", "gender": "unisex", "name": "Вон"}, -{"usage": "family", "gender": "unisex", "name": "Восс"}, -{"usage": "family", "gender": "unisex", "name": "Во"}, -{"usage": "family", "gender": "unisex", "name": "Вудалл"}, -{"usage": "family", "gender": "unisex", "name": "Вудард"}, -{"usage": "family", "gender": "unisex", "name": "Вудворд"}, -{"usage": "family", "gender": "unisex", "name": "Вуди"}, -{"usage": "family", "gender": "unisex", "name": "Вудрафф"}, -{"usage": "family", "gender": "unisex", "name": "Вудсон"}, -{"usage": "family", "gender": "unisex", "name": "Вудс"}, -{"usage": "family", "gender": "unisex", "name": "Вуд"}, -{"usage": "family", "gender": "unisex", "name": "Вулф"}, -{"usage": "family", "gender": "unisex", "name": "Ву"}, -{"usage": "family", "gender": "unisex", "name": "Вэнс"}, -{"usage": "family", "gender": "unisex", "name": "Гай"}, -{"usage": "family", "gender": "unisex", "name": "Галиндо"}, -{"usage": "family", "gender": "unisex", "name": "Галлахер"}, -{"usage": "family", "gender": "unisex", "name": "Галло"}, -{"usage": "family", "gender": "unisex", "name": "Гальван"}, -{"usage": "family", "gender": "unisex", "name": "Гальвес"}, -{"usage": "family", "gender": "unisex", "name": "Гальвин"}, -{"usage": "family", "gender": "unisex", "name": "Гальегос"}, -{"usage": "family", "gender": "unisex", "name": "Гальярдо"}, -{"usage": "family", "gender": "unisex", "name": "Гамбоа"}, -{"usage": "family", "gender": "unisex", "name": "Гамез"}, -{"usage": "family", "gender": "unisex", "name": "Гамильтон"}, -{"usage": "family", "gender": "unisex", "name": "Гандерсон"}, -{"usage": "family", "gender": "unisex", "name": "Ганн"}, -{"usage": "family", "gender": "unisex", "name": "Гант"}, -{"usage": "family", "gender": "unisex", "name": "Ганьон"}, -{"usage": "family", "gender": "unisex", "name": "Гарбер"}, -{"usage": "family", "gender": "unisex", "name": "Гарвин"}, -{"usage": "family", "gender": "unisex", "name": "Гарви"}, -{"usage": "family", "gender": "unisex", "name": "Гарднер"}, -{"usage": "family", "gender": "unisex", "name": "Гарлэнд"}, -{"usage": "family", "gender": "unisex", "name": "Гарнер"}, -{"usage": "family", "gender": "unisex", "name": "Гаррет"}, -{"usage": "family", "gender": "unisex", "name": "Гаррисон"}, -{"usage": "family", "gender": "unisex", "name": "Гарса"}, -{"usage": "family", "gender": "unisex", "name": "Гарсия"}, -{"usage": "family", "gender": "unisex", "name": "Гастингс"}, -{"usage": "family", "gender": "unisex", "name": "Гастон"}, -{"usage": "family", "gender": "unisex", "name": "Гатри"}, -{"usage": "family", "gender": "unisex", "name": "Гаффни"}, -{"usage": "family", "gender": "unisex", "name": "Гваджардо"}, -{"usage": "family", "gender": "unisex", "name": "Гевара"}, -{"usage": "family", "gender": "unisex", "name": "Гейджер"}, -{"usage": "family", "gender": "unisex", "name": "Гейдж"}, -{"usage": "family", "gender": "unisex", "name": "Гейнс"}, -{"usage": "family", "gender": "unisex", "name": "Гейтс"}, -{"usage": "family", "gender": "unisex", "name": "Гей"}, -{"usage": "family", "gender": "unisex", "name": "Геллер"}, -{"usage": "family", "gender": "unisex", "name": "Генри"}, -{"usage": "family", "gender": "unisex", "name": "Гентри"}, -{"usage": "family", "gender": "unisex", "name": "Герберт"}, -{"usage": "family", "gender": "unisex", "name": "Гербер"}, -{"usage": "family", "gender": "unisex", "name": "Герман"}, -{"usage": "family", "gender": "unisex", "name": "Герреро"}, -{"usage": "family", "gender": "unisex", "name": "Геррик"}, -{"usage": "family", "gender": "unisex", "name": "Герр"}, -{"usage": "family", "gender": "unisex", "name": "Гесс"}, -{"usage": "family", "gender": "unisex", "name": "Гетц"}, -{"usage": "family", "gender": "unisex", "name": "Гиббонс"}, -{"usage": "family", "gender": "unisex", "name": "Гиббс"}, -{"usage": "family", "gender": "unisex", "name": "Гибсон"}, -{"usage": "family", "gender": "unisex", "name": "Гивенс"}, -{"usage": "family", "gender": "unisex", "name": "Гидри"}, -{"usage": "family", "gender": "unisex", "name": "Гилберт"}, -{"usage": "family", "gender": "unisex", "name": "Гилкрист"}, -{"usage": "family", "gender": "unisex", "name": "Гиллеспи"}, -{"usage": "family", "gender": "unisex", "name": "Гиллиам"}, -{"usage": "family", "gender": "unisex", "name": "Гиллилэнд"}, -{"usage": "family", "gender": "unisex", "name": "Гиллис"}, -{"usage": "family", "gender": "unisex", "name": "Гиллори"}, -{"usage": "family", "gender": "unisex", "name": "Гилл"}, -{"usage": "family", "gender": "unisex", "name": "Гилман"}, -{"usage": "family", "gender": "unisex", "name": "Гилмор"}, -{"usage": "family", "gender": "unisex", "name": "Гильен"}, -{"usage": "family", "gender": "unisex", "name": "Гил"}, -{"usage": "family", "gender": "unisex", "name": "Гипсон"}, -{"usage": "family", "gender": "unisex", "name": "Гири"}, -{"usage": "family", "gender": "unisex", "name": "Гиффорд"}, -{"usage": "family", "gender": "unisex", "name": "Ги"}, -{"usage": "family", "gender": "unisex", "name": "Гласс"}, -{"usage": "family", "gender": "unisex", "name": "Гленн"}, -{"usage": "family", "gender": "unisex", "name": "Глисон"}, -{"usage": "family", "gender": "unisex", "name": "Гловер"}, -{"usage": "family", "gender": "unisex", "name": "Годвин"}, -{"usage": "family", "gender": "unisex", "name": "Годдард"}, -{"usage": "family", "gender": "unisex", "name": "Годинес"}, -{"usage": "family", "gender": "unisex", "name": "Годфри"}, -{"usage": "family", "gender": "unisex", "name": "Гоинс"}, -{"usage": "family", "gender": "unisex", "name": "Голдберг"}, -{"usage": "family", "gender": "unisex", "name": "Голден"}, -{"usage": "family", "gender": "unisex", "name": "Голдман"}, -{"usage": "family", "gender": "unisex", "name": "Голдсмит"}, -{"usage": "family", "gender": "unisex", "name": "Голд"}, -{"usage": "family", "gender": "unisex", "name": "Гольдштейн"}, -{"usage": "family", "gender": "unisex", "name": "Гомес"}, -{"usage": "family", "gender": "unisex", "name": "Гонсалес"}, -{"usage": "family", "gender": "unisex", "name": "Гордон"}, -{"usage": "family", "gender": "unisex", "name": "Горман"}, -{"usage": "family", "gender": "unisex", "name": "Гор"}, -{"usage": "family", "gender": "unisex", "name": "Госсетт"}, -{"usage": "family", "gender": "unisex", "name": "Госс"}, -{"usage": "family", "gender": "unisex", "name": "Готье"}, -{"usage": "family", "gender": "unisex", "name": "Гофф"}, -{"usage": "family", "gender": "unisex", "name": "Граббса"}, -{"usage": "family", "gender": "unisex", "name": "Грабб"}, -{"usage": "family", "gender": "unisex", "name": "Граймс"}, -{"usage": "family", "gender": "unisex", "name": "Гранадос"}, -{"usage": "family", "gender": "unisex", "name": "Грант"}, -{"usage": "family", "gender": "unisex", "name": "Графф"}, -{"usage": "family", "gender": "unisex", "name": "Граф"}, -{"usage": "family", "gender": "unisex", "name": "Грегг"}, -{"usage": "family", "gender": "unisex", "name": "Грегори"}, -{"usage": "family", "gender": "unisex", "name": "Грейвз"}, -{"usage": "family", "gender": "unisex", "name": "Грейди"}, -{"usage": "family", "gender": "unisex", "name": "Грейсон"}, -{"usage": "family", "gender": "unisex", "name": "Грейс"}, -{"usage": "family", "gender": "unisex", "name": "Грей"}, -{"usage": "family", "gender": "unisex", "name": "Греко"}, -{"usage": "family", "gender": "unisex", "name": "Грешам"}, -{"usage": "family", "gender": "unisex", "name": "Григгс"}, -{"usage": "family", "gender": "unisex", "name": "Гримм"}, -{"usage": "family", "gender": "unisex", "name": "Гринберг"}, -{"usage": "family", "gender": "unisex", "name": "Гринвуд"}, -{"usage": "family", "gender": "unisex", "name": "Гринфилд"}, -{"usage": "family", "gender": "unisex", "name": "Грин"}, -{"usage": "family", "gender": "unisex", "name": "Грир"}, -{"usage": "family", "gender": "unisex", "name": "Гриссом"}, -{"usage": "family", "gender": "unisex", "name": "Гриффин"}, -{"usage": "family", "gender": "unisex", "name": "Гриффитс"}, -{"usage": "family", "gender": "unisex", "name": "Гриффит"}, -{"usage": "family", "gender": "unisex", "name": "Гровер"}, -{"usage": "family", "gender": "unisex", "name": "Гровс"}, -{"usage": "family", "gender": "unisex", "name": "Гроган"}, -{"usage": "family", "gender": "unisex", "name": "Гроссман"}, -{"usage": "family", "gender": "unisex", "name": "Гросс"}, -{"usage": "family", "gender": "unisex", "name": "Гроув"}, -{"usage": "family", "gender": "unisex", "name": "Грубер"}, -{"usage": "family", "gender": "unisex", "name": "Грэй"}, -{"usage": "family", "gender": "unisex", "name": "Грэнджер"}, -{"usage": "family", "gender": "unisex", "name": "Грэхем"}, -{"usage": "family", "gender": "unisex", "name": "Гудвин"}, -{"usage": "family", "gender": "unisex", "name": "Гудзон"}, -{"usage": "family", "gender": "unisex", "name": "Гудман"}, -{"usage": "family", "gender": "unisex", "name": "Гудрич"}, -{"usage": "family", "gender": "unisex", "name": "Гудсон"}, -{"usage": "family", "gender": "unisex", "name": "Гуд"}, -{"usage": "family", "gender": "unisex", "name": "Гуинн"}, -{"usage": "family", "gender": "unisex", "name": "Гулд"}, -{"usage": "family", "gender": "unisex", "name": "Гусман"}, -{"usage": "family", "gender": "unisex", "name": "Густафсон"}, -{"usage": "family", "gender": "unisex", "name": "Гутьеррес"}, -{"usage": "family", "gender": "unisex", "name": "Гуч"}, -{"usage": "family", "gender": "unisex", "name": "Гуэрра"}, -{"usage": "family", "gender": "unisex", "name": "Гэбриел"}, -{"usage": "family", "gender": "unisex", "name": "Гэвин"}, -{"usage": "family", "gender": "unisex", "name": "Гэйл"}, -{"usage": "family", "gender": "unisex", "name": "Гэлловэй"}, -{"usage": "family", "gender": "unisex", "name": "Гэмбл"}, -{"usage": "family", "gender": "unisex", "name": "Гэннон"}, -{"usage": "family", "gender": "unisex", "name": "Гэнн"}, -{"usage": "family", "gender": "unisex", "name": "Гэри"}, -{"usage": "family", "gender": "unisex", "name": "Гюнтер"}, -{"usage": "family", "gender": "unisex", "name": "ДаСилва"}, -{"usage": "family", "gender": "unisex", "name": "Давила"}, -{"usage": "family", "gender": "unisex", "name": "Дав"}, -{"usage": "family", "gender": "unisex", "name": "Дагган"}, -{"usage": "family", "gender": "unisex", "name": "Дадли"}, -{"usage": "family", "gender": "unisex", "name": "Дайал"}, -{"usage": "family", "gender": "unisex", "name": "Дайер"}, -{"usage": "family", "gender": "unisex", "name": "Дайкс"}, -{"usage": "family", "gender": "unisex", "name": "Даймонд"}, -{"usage": "family", "gender": "unisex", "name": "Дайсон"}, -{"usage": "family", "gender": "unisex", "name": "Дай"}, -{"usage": "family", "gender": "unisex", "name": "Дакворт"}, -{"usage": "family", "gender": "unisex", "name": "Дали"}, -{"usage": "family", "gender": "unisex", "name": "Далтон"}, -{"usage": "family", "gender": "unisex", "name": "Даль"}, -{"usage": "family", "gender": "unisex", "name": "Дамико"}, -{"usage": "family", "gender": "unisex", "name": "Данбар"}, -{"usage": "family", "gender": "unisex", "name": "Дангело"}, -{"usage": "family", "gender": "unisex", "name": "Данг"}, -{"usage": "family", "gender": "unisex", "name": "Данлэп"}, -{"usage": "family", "gender": "unisex", "name": "Данн"}, -{"usage": "family", "gender": "unisex", "name": "Данхэм"}, -{"usage": "family", "gender": "unisex", "name": "Дарден"}, -{"usage": "family", "gender": "unisex", "name": "Дарем"}, -{"usage": "family", "gender": "unisex", "name": "Дарлинг"}, -{"usage": "family", "gender": "unisex", "name": "Дарнелл"}, -{"usage": "family", "gender": "unisex", "name": "Даттон"}, -{"usage": "family", "gender": "unisex", "name": "Дауд"}, -{"usage": "family", "gender": "unisex", "name": "Даулинг"}, -{"usage": "family", "gender": "unisex", "name": "Даунинг"}, -{"usage": "family", "gender": "unisex", "name": "Дауни"}, -{"usage": "family", "gender": "unisex", "name": "Даунс"}, -{"usage": "family", "gender": "unisex", "name": "Даути"}, -{"usage": "family", "gender": "unisex", "name": "Даффи"}, -{"usage": "family", "gender": "unisex", "name": "Дафф"}, -{"usage": "family", "gender": "unisex", "name": "Двайер"}, -{"usage": "family", "gender": "unisex", "name": "ДеДжизес"}, -{"usage": "family", "gender": "unisex", "name": "Девайн"}, -{"usage": "family", "gender": "unisex", "name": "Девенпорт"}, -{"usage": "family", "gender": "unisex", "name": "Девитт"}, -{"usage": "family", "gender": "unisex", "name": "Девлин"}, -{"usage": "family", "gender": "unisex", "name": "Дейгл"}, -{"usage": "family", "gender": "unisex", "name": "Дейли"}, -{"usage": "family", "gender": "unisex", "name": "Декер"}, -{"usage": "family", "gender": "unisex", "name": "Делакруз"}, -{"usage": "family", "gender": "unisex", "name": "Делани"}, -{"usage": "family", "gender": "unisex", "name": "Делароса"}, -{"usage": "family", "gender": "unisex", "name": "Делаторре"}, -{"usage": "family", "gender": "unisex", "name": "Делеон"}, -{"usage": "family", "gender": "unisex", "name": "Делонг"}, -{"usage": "family", "gender": "unisex", "name": "Делоссантос"}, -{"usage": "family", "gender": "unisex", "name": "Делука"}, -{"usage": "family", "gender": "unisex", "name": "Дельгадильо"}, -{"usage": "family", "gender": "unisex", "name": "Дельгадо"}, -{"usage": "family", "gender": "unisex", "name": "Демарко"}, -{"usage": "family", "gender": "unisex", "name": "Демпси"}, -{"usage": "family", "gender": "unisex", "name": "Деннисон"}, -{"usage": "family", "gender": "unisex", "name": "Деннис"}, -{"usage": "family", "gender": "unisex", "name": "Денни"}, -{"usage": "family", "gender": "unisex", "name": "Денсон"}, -{"usage": "family", "gender": "unisex", "name": "Дентон"}, -{"usage": "family", "gender": "unisex", "name": "Дент"}, -{"usage": "family", "gender": "unisex", "name": "Десаи"}, -{"usage": "family", "gender": "unisex", "name": "Де"}, -{"usage": "family", "gender": "unisex", "name": "Джагер"}, -{"usage": "family", "gender": "unisex", "name": "Джадд"}, -{"usage": "family", "gender": "unisex", "name": "Джайлс"}, -{"usage": "family", "gender": "unisex", "name": "Джарвис"}, -{"usage": "family", "gender": "unisex", "name": "Джаррелл"}, -{"usage": "family", "gender": "unisex", "name": "Джарретт"}, -{"usage": "family", "gender": "unisex", "name": "Джастис"}, -{"usage": "family", "gender": "unisex", "name": "Джейкобс"}, -{"usage": "family", "gender": "unisex", "name": "Джейкоб"}, -{"usage": "family", "gender": "unisex", "name": "Джеймсон"}, -{"usage": "family", "gender": "unisex", "name": "Джеймс"}, -{"usage": "family", "gender": "unisex", "name": "Джексон"}, -{"usage": "family", "gender": "unisex", "name": "Джек"}, -{"usage": "family", "gender": "unisex", "name": "Джемисон"}, -{"usage": "family", "gender": "unisex", "name": "Дженкинс"}, -{"usage": "family", "gender": "unisex", "name": "Дженнингс"}, -{"usage": "family", "gender": "unisex", "name": "Дженсен"}, -{"usage": "family", "gender": "unisex", "name": "Джентиле"}, -{"usage": "family", "gender": "unisex", "name": "Джерман"}, -{"usage": "family", "gender": "unisex", "name": "Джерниган"}, -{"usage": "family", "gender": "unisex", "name": "Джетер"}, -{"usage": "family", "gender": "unisex", "name": "Джетт"}, -{"usage": "family", "gender": "unisex", "name": "Джефферсон"}, -{"usage": "family", "gender": "unisex", "name": "Джефферс"}, -{"usage": "family", "gender": "unisex", "name": "Джеффрис"}, -{"usage": "family", "gender": "unisex", "name": "Джиллет"}, -{"usage": "family", "gender": "unisex", "name": "Джин"}, -{"usage": "family", "gender": "unisex", "name": "Джозеф"}, -{"usage": "family", "gender": "unisex", "name": "Джойнер"}, -{"usage": "family", "gender": "unisex", "name": "Джойс"}, -{"usage": "family", "gender": "unisex", "name": "Джой"}, -{"usage": "family", "gender": "unisex", "name": "Джолли"}, -{"usage": "family", "gender": "unisex", "name": "Джонсон"}, -{"usage": "family", "gender": "unisex", "name": "Джонстон"}, -{"usage": "family", "gender": "unisex", "name": "Джонс"}, -{"usage": "family", "gender": "unisex", "name": "Джон"}, -{"usage": "family", "gender": "unisex", "name": "Джордано"}, -{"usage": "family", "gender": "unisex", "name": "Джордан"}, -{"usage": "family", "gender": "unisex", "name": "Джордж"}, -{"usage": "family", "gender": "unisex", "name": "Джулиан"}, -{"usage": "family", "gender": "unisex", "name": "Джуэл"}, -{"usage": "family", "gender": "unisex", "name": "Диас"}, -{"usage": "family", "gender": "unisex", "name": "Дигс"}, -{"usage": "family", "gender": "unisex", "name": "Дикерсон"}, -{"usage": "family", "gender": "unisex", "name": "Дикинсон"}, -{"usage": "family", "gender": "unisex", "name": "Диккенс"}, -{"usage": "family", "gender": "unisex", "name": "Дикки"}, -{"usage": "family", "gender": "unisex", "name": "Диксон"}, -{"usage": "family", "gender": "unisex", "name": "Дик"}, -{"usage": "family", "gender": "unisex", "name": "Диллард"}, -{"usage": "family", "gender": "unisex", "name": "Диллон"}, -{"usage": "family", "gender": "unisex", "name": "Дилл"}, -{"usage": "family", "gender": "unisex", "name": "Дил"}, -{"usage": "family", "gender": "unisex", "name": "Динь"}, -{"usage": "family", "gender": "unisex", "name": "Дин"}, -{"usage": "family", "gender": "unisex", "name": "Дитон"}, -{"usage": "family", "gender": "unisex", "name": "Дитрих"}, -{"usage": "family", "gender": "unisex", "name": "Дитц"}, -{"usage": "family", "gender": "unisex", "name": "Доан"}, -{"usage": "family", "gender": "unisex", "name": "Доббинс"}, -{"usage": "family", "gender": "unisex", "name": "Доббс"}, -{"usage": "family", "gender": "unisex", "name": "Добсон"}, -{"usage": "family", "gender": "unisex", "name": "Догерти"}, -{"usage": "family", "gender": "unisex", "name": "Додд"}, -{"usage": "family", "gender": "unisex", "name": "Додж"}, -{"usage": "family", "gender": "unisex", "name": "Додсон"}, -{"usage": "family", "gender": "unisex", "name": "Дозьер"}, -{"usage": "family", "gender": "unisex", "name": "Дойл"}, -{"usage": "family", "gender": "unisex", "name": "Докери"}, -{"usage": "family", "gender": "unisex", "name": "Докинз"}, -{"usage": "family", "gender": "unisex", "name": "Долан"}, -{"usage": "family", "gender": "unisex", "name": "Домингес"}, -{"usage": "family", "gender": "unisex", "name": "Дональдсон"}, -{"usage": "family", "gender": "unisex", "name": "Дональд"}, -{"usage": "family", "gender": "unisex", "name": "Донахью"}, -{"usage": "family", "gender": "unisex", "name": "Доннелли"}, -{"usage": "family", "gender": "unisex", "name": "Донован"}, -{"usage": "family", "gender": "unisex", "name": "Донохью"}, -{"usage": "family", "gender": "unisex", "name": "Доран"}, -{"usage": "family", "gender": "unisex", "name": "Дорман"}, -{"usage": "family", "gender": "unisex", "name": "Дорси"}, -{"usage": "family", "gender": "unisex", "name": "Досс"}, -{"usage": "family", "gender": "unisex", "name": "Дотсон"}, -{"usage": "family", "gender": "unisex", "name": "Доуди"}, -{"usage": "family", "gender": "unisex", "name": "Доусон"}, -{"usage": "family", "gender": "unisex", "name": "Доути"}, -{"usage": "family", "gender": "unisex", "name": "Доуэлл"}, -{"usage": "family", "gender": "unisex", "name": "Доу"}, -{"usage": "family", "gender": "unisex", "name": "Доэрти"}, -{"usage": "family", "gender": "unisex", "name": "Драйвер"}, -{"usage": "family", "gender": "unisex", "name": "Драммонд"}, -{"usage": "family", "gender": "unisex", "name": "Дрисколл"}, -{"usage": "family", "gender": "unisex", "name": "Дрэйк"}, -{"usage": "family", "gender": "unisex", "name": "Дрэйпер"}, -{"usage": "family", "gender": "unisex", "name": "Дрю"}, -{"usage": "family", "gender": "unisex", "name": "Дуарте"}, -{"usage": "family", "gender": "unisex", "name": "Дуган"}, -{"usage": "family", "gender": "unisex", "name": "Дуглас"}, -{"usage": "family", "gender": "unisex", "name": "Дули"}, -{"usage": "family", "gender": "unisex", "name": "Дункан"}, -{"usage": "family", "gender": "unisex", "name": "Дуонг"}, -{"usage": "family", "gender": "unisex", "name": "Дурбин"}, -{"usage": "family", "gender": "unisex", "name": "Ду"}, -{"usage": "family", "gender": "unisex", "name": "Дьюи"}, -{"usage": "family", "gender": "unisex", "name": "Дьюкс"}, -{"usage": "family", "gender": "unisex", "name": "Дьюк"}, -{"usage": "family", "gender": "unisex", "name": "Дэвидсон"}, -{"usage": "family", "gender": "unisex", "name": "Дэвид"}, -{"usage": "family", "gender": "unisex", "name": "Дэвисон"}, -{"usage": "family", "gender": "unisex", "name": "Дэвис"}, -{"usage": "family", "gender": "unisex", "name": "Дэйл"}, -{"usage": "family", "gender": "unisex", "name": "Дэй"}, -{"usage": "family", "gender": "unisex", "name": "Дэниелсон"}, -{"usage": "family", "gender": "unisex", "name": "Дэниелс"}, -{"usage": "family", "gender": "unisex", "name": "Дэниел"}, -{"usage": "family", "gender": "unisex", "name": "Дэрби"}, -{"usage": "family", "gender": "unisex", "name": "Дюбос"}, -{"usage": "family", "gender": "unisex", "name": "Дюбуа"}, -{"usage": "family", "gender": "unisex", "name": "Дюваль"}, -{"usage": "family", "gender": "unisex", "name": "Дюма"}, -{"usage": "family", "gender": "unisex", "name": "Дюпре"}, -{"usage": "family", "gender": "unisex", "name": "Дюрант"}, -{"usage": "family", "gender": "unisex", "name": "Дюран"}, -{"usage": "family", "gender": "unisex", "name": "Жак"}, -{"usage": "family", "gender": "unisex", "name": "Жирар"}, -{"usage": "family", "gender": "unisex", "name": "Завала"}, -{"usage": "family", "gender": "unisex", "name": "Зайтц"}, -{"usage": "family", "gender": "unisex", "name": "Замора"}, -{"usage": "family", "gender": "unisex", "name": "Зауэр"}, -{"usage": "family", "gender": "unisex", "name": "Зиглер"}, -{"usage": "family", "gender": "unisex", "name": "Зунига"}, -{"usage": "family", "gender": "unisex", "name": "Ибарра"}, -{"usage": "family", "gender": "unisex", "name": "Иви"}, -{"usage": "family", "gender": "unisex", "name": "Иган"}, -{"usage": "family", "gender": "unisex", "name": "Идальго"}, -{"usage": "family", "gender": "unisex", "name": "Инглиш"}, -{"usage": "family", "gender": "unisex", "name": "Инглэнд"}, -{"usage": "family", "gender": "unisex", "name": "Ингрэм"}, -{"usage": "family", "gender": "unisex", "name": "Инман"}, -{"usage": "family", "gender": "unisex", "name": "Инохоса"}, -{"usage": "family", "gender": "unisex", "name": "Ирвинг"}, -{"usage": "family", "gender": "unisex", "name": "Ирвин"}, -{"usage": "family", "gender": "unisex", "name": "Ирисарри"}, -{"usage": "family", "gender": "unisex", "name": "Исли"}, -{"usage": "family", "gender": "unisex", "name": "Исон"}, -{"usage": "family", "gender": "unisex", "name": "Истер"}, -{"usage": "family", "gender": "unisex", "name": "Истман"}, -{"usage": "family", "gender": "unisex", "name": "Ист"}, -{"usage": "family", "gender": "unisex", "name": "Итон"}, -{"usage": "family", "gender": "unisex", "name": "И"}, -{"usage": "family", "gender": "unisex", "name": "Йегер"}, -{"usage": "family", "gender": "unisex", "name": "Йетс"}, -{"usage": "family", "gender": "unisex", "name": "Йи"}, -{"usage": "family", "gender": "unisex", "name": "Йодер"}, -{"usage": "family", "gender": "unisex", "name": "Йоргенсен"}, -{"usage": "family", "gender": "unisex", "name": "Йорк"}, -{"usage": "family", "gender": "unisex", "name": "Йост"}, -{"usage": "family", "gender": "unisex", "name": "Кабальеро"}, -{"usage": "family", "gender": "unisex", "name": "Кабрал"}, -{"usage": "family", "gender": "unisex", "name": "Кабрера"}, -{"usage": "family", "gender": "unisex", "name": "Кавазос"}, -{"usage": "family", "gender": "unisex", "name": "Кавано"}, -{"usage": "family", "gender": "unisex", "name": "Каин"}, -{"usage": "family", "gender": "unisex", "name": "Кайзер"}, -{"usage": "family", "gender": "unisex", "name": "Кайл"}, -{"usage": "family", "gender": "unisex", "name": "Калверт"}, -{"usage": "family", "gender": "unisex", "name": "Калвер"}, -{"usage": "family", "gender": "unisex", "name": "Каллахан"}, -{"usage": "family", "gender": "unisex", "name": "Каллен"}, -{"usage": "family", "gender": "unisex", "name": "Калп"}, -{"usage": "family", "gender": "unisex", "name": "Калхун"}, -{"usage": "family", "gender": "unisex", "name": "Кальдерон"}, -{"usage": "family", "gender": "unisex", "name": "Камачо"}, -{"usage": "family", "gender": "unisex", "name": "Камински"}, -{"usage": "family", "gender": "unisex", "name": "Каммингс"}, -{"usage": "family", "gender": "unisex", "name": "Камминс"}, -{"usage": "family", "gender": "unisex", "name": "Кампос"}, -{"usage": "family", "gender": "unisex", "name": "Каналес"}, -{"usage": "family", "gender": "unisex", "name": "Канг"}, -{"usage": "family", "gender": "unisex", "name": "Каннингем"}, -{"usage": "family", "gender": "unisex", "name": "Кано"}, -{"usage": "family", "gender": "unisex", "name": "Кантрелл"}, -{"usage": "family", "gender": "unisex", "name": "Канту"}, -{"usage": "family", "gender": "unisex", "name": "Кан"}, -{"usage": "family", "gender": "unisex", "name": "Каплан"}, -{"usage": "family", "gender": "unisex", "name": "Капс"}, -{"usage": "family", "gender": "unisex", "name": "Карбаджал"}, -{"usage": "family", "gender": "unisex", "name": "Карвер"}, -{"usage": "family", "gender": "unisex", "name": "Кардвелл"}, -{"usage": "family", "gender": "unisex", "name": "Карденас"}, -{"usage": "family", "gender": "unisex", "name": "Кардона"}, -{"usage": "family", "gender": "unisex", "name": "Кард"}, -{"usage": "family", "gender": "unisex", "name": "Карлайл"}, -{"usage": "family", "gender": "unisex", "name": "Карлин"}, -{"usage": "family", "gender": "unisex", "name": "Карлос"}, -{"usage": "family", "gender": "unisex", "name": "Карлсон"}, -{"usage": "family", "gender": "unisex", "name": "Карлтон"}, -{"usage": "family", "gender": "unisex", "name": "Карл"}, -{"usage": "family", "gender": "unisex", "name": "Кармайкл"}, -{"usage": "family", "gender": "unisex", "name": "Кармона"}, -{"usage": "family", "gender": "unisex", "name": "Карнес"}, -{"usage": "family", "gender": "unisex", "name": "Карни"}, -{"usage": "family", "gender": "unisex", "name": "Карон"}, -{"usage": "family", "gender": "unisex", "name": "Карпентер"}, -{"usage": "family", "gender": "unisex", "name": "Карранса"}, -{"usage": "family", "gender": "unisex", "name": "Карраско"}, -{"usage": "family", "gender": "unisex", "name": "Каррен"}, -{"usage": "family", "gender": "unisex", "name": "Каррера"}, -{"usage": "family", "gender": "unisex", "name": "Каррильо"}, -{"usage": "family", "gender": "unisex", "name": "Каррингтон"}, -{"usage": "family", "gender": "unisex", "name": "Карри"}, -{"usage": "family", "gender": "unisex", "name": "Карр"}, -{"usage": "family", "gender": "unisex", "name": "Карсон"}, -{"usage": "family", "gender": "unisex", "name": "Картер"}, -{"usage": "family", "gender": "unisex", "name": "Картрайт"}, -{"usage": "family", "gender": "unisex", "name": "Карузо"}, -{"usage": "family", "gender": "unisex", "name": "Касарес"}, -{"usage": "family", "gender": "unisex", "name": "Касас"}, -{"usage": "family", "gender": "unisex", "name": "Касильяс"}, -{"usage": "family", "gender": "unisex", "name": "Касл"}, -{"usage": "family", "gender": "unisex", "name": "Каспер"}, -{"usage": "family", "gender": "unisex", "name": "Кастанеда"}, -{"usage": "family", "gender": "unisex", "name": "Кастелланос"}, -{"usage": "family", "gender": "unisex", "name": "Кастильо"}, -{"usage": "family", "gender": "unisex", "name": "Кастро"}, -{"usage": "family", "gender": "unisex", "name": "Катлер"}, -{"usage": "family", "gender": "unisex", "name": "Кауарт"}, -{"usage": "family", "gender": "unisex", "name": "Каудилл"}, -{"usage": "family", "gender": "unisex", "name": "Каур"}, -{"usage": "family", "gender": "unisex", "name": "Кауфман"}, -{"usage": "family", "gender": "unisex", "name": "Кац"}, -{"usage": "family", "gender": "unisex", "name": "Кейн"}, -{"usage": "family", "gender": "unisex", "name": "Кейси"}, -{"usage": "family", "gender": "unisex", "name": "Кейсон"}, -{"usage": "family", "gender": "unisex", "name": "Кейс"}, -{"usage": "family", "gender": "unisex", "name": "Кейтс"}, -{"usage": "family", "gender": "unisex", "name": "Кей"}, -{"usage": "family", "gender": "unisex", "name": "Келлер"}, -{"usage": "family", "gender": "unisex", "name": "Келли"}, -{"usage": "family", "gender": "unisex", "name": "Келлог"}, -{"usage": "family", "gender": "unisex", "name": "Келси"}, -{"usage": "family", "gender": "unisex", "name": "Кемп"}, -{"usage": "family", "gender": "unisex", "name": "Кендалл"}, -{"usage": "family", "gender": "unisex", "name": "Кендрик"}, -{"usage": "family", "gender": "unisex", "name": "Кеннеди"}, -{"usage": "family", "gender": "unisex", "name": "Кенни"}, -{"usage": "family", "gender": "unisex", "name": "Кент"}, -{"usage": "family", "gender": "unisex", "name": "Кеньон"}, -{"usage": "family", "gender": "unisex", "name": "Кернс"}, -{"usage": "family", "gender": "unisex", "name": "Керн"}, -{"usage": "family", "gender": "unisex", "name": "Керр"}, -{"usage": "family", "gender": "unisex", "name": "Кертис"}, -{"usage": "family", "gender": "unisex", "name": "Кесада"}, -{"usage": "family", "gender": "unisex", "name": "Кесслер"}, -{"usage": "family", "gender": "unisex", "name": "Кидд"}, -{"usage": "family", "gender": "unisex", "name": "Киз"}, -{"usage": "family", "gender": "unisex", "name": "Килгор"}, -{"usage": "family", "gender": "unisex", "name": "Киллиан"}, -{"usage": "family", "gender": "unisex", "name": "Килпатрик"}, -{"usage": "family", "gender": "unisex", "name": "Кимбалл"}, -{"usage": "family", "gender": "unisex", "name": "Кимбл"}, -{"usage": "family", "gender": "unisex", "name": "Кимброу"}, -{"usage": "family", "gender": "unisex", "name": "Ким"}, -{"usage": "family", "gender": "unisex", "name": "Кинан"}, -{"usage": "family", "gender": "unisex", "name": "Кинг"}, -{"usage": "family", "gender": "unisex", "name": "Кинер"}, -{"usage": "family", "gender": "unisex", "name": "Кинкейд"}, -{"usage": "family", "gender": "unisex", "name": "Кинни"}, -{"usage": "family", "gender": "unisex", "name": "Кинси"}, -{"usage": "family", "gender": "unisex", "name": "Кинтана"}, -{"usage": "family", "gender": "unisex", "name": "Кинтанилья"}, -{"usage": "family", "gender": "unisex", "name": "Кинтеро"}, -{"usage": "family", "gender": "unisex", "name": "Киньонес"}, -{"usage": "family", "gender": "unisex", "name": "Кин"}, -{"usage": "family", "gender": "unisex", "name": "Кирби"}, -{"usage": "family", "gender": "unisex", "name": "Киркланд"}, -{"usage": "family", "gender": "unisex", "name": "Киркпатрик"}, -{"usage": "family", "gender": "unisex", "name": "Кирк"}, -{"usage": "family", "gender": "unisex", "name": "Кирни"}, -{"usage": "family", "gender": "unisex", "name": "Кирос"}, -{"usage": "family", "gender": "unisex", "name": "Кис"}, -{"usage": "family", "gender": "unisex", "name": "Китинг"}, -{"usage": "family", "gender": "unisex", "name": "Китчен"}, -{"usage": "family", "gender": "unisex", "name": "Кит"}, -{"usage": "family", "gender": "unisex", "name": "Ки"}, -{"usage": "family", "gender": "unisex", "name": "Клайн"}, -{"usage": "family", "gender": "unisex", "name": "Кларк"}, -{"usage": "family", "gender": "unisex", "name": "Клауд"}, -{"usage": "family", "gender": "unisex", "name": "Клевенджер"}, -{"usage": "family", "gender": "unisex", "name": "Клейн"}, -{"usage": "family", "gender": "unisex", "name": "Клейтон"}, -{"usage": "family", "gender": "unisex", "name": "Клеменс"}, -{"usage": "family", "gender": "unisex", "name": "Клементс"}, -{"usage": "family", "gender": "unisex", "name": "Клемент"}, -{"usage": "family", "gender": "unisex", "name": "Клемонс"}, -{"usage": "family", "gender": "unisex", "name": "Кливленд"}, -{"usage": "family", "gender": "unisex", "name": "Клинтон"}, -{"usage": "family", "gender": "unisex", "name": "Клири"}, -{"usage": "family", "gender": "unisex", "name": "Клифтон"}, -{"usage": "family", "gender": "unisex", "name": "Клиффорд"}, -{"usage": "family", "gender": "unisex", "name": "Клэй"}, -{"usage": "family", "gender": "unisex", "name": "Клэнси"}, -{"usage": "family", "gender": "unisex", "name": "Кнапп"}, -{"usage": "family", "gender": "unisex", "name": "Кобб"}, -{"usage": "family", "gender": "unisex", "name": "Коберн"}, -{"usage": "family", "gender": "unisex", "name": "Ковальски"}, -{"usage": "family", "gender": "unisex", "name": "Коваррубиас"}, -{"usage": "family", "gender": "unisex", "name": "Ковингтон"}, -{"usage": "family", "gender": "unisex", "name": "Коди"}, -{"usage": "family", "gender": "unisex", "name": "Кози"}, -{"usage": "family", "gender": "unisex", "name": "Койл"}, -{"usage": "family", "gender": "unisex", "name": "Койн"}, -{"usage": "family", "gender": "unisex", "name": "Кой"}, -{"usage": "family", "gender": "unisex", "name": "Кокер"}, -{"usage": "family", "gender": "unisex", "name": "Кокран"}, -{"usage": "family", "gender": "unisex", "name": "Кокс"}, -{"usage": "family", "gender": "unisex", "name": "Колб"}, -{"usage": "family", "gender": "unisex", "name": "Колвин"}, -{"usage": "family", "gender": "unisex", "name": "Колдуэлл"}, -{"usage": "family", "gender": "unisex", "name": "Колин"}, -{"usage": "family", "gender": "unisex", "name": "Коли"}, -{"usage": "family", "gender": "unisex", "name": "Коллинз"}, -{"usage": "family", "gender": "unisex", "name": "Колльер"}, -{"usage": "family", "gender": "unisex", "name": "Колл"}, -{"usage": "family", "gender": "unisex", "name": "Колон"}, -{"usage": "family", "gender": "unisex", "name": "Кольбер"}, -{"usage": "family", "gender": "unisex", "name": "Кольясо"}, -{"usage": "family", "gender": "unisex", "name": "Колэуэй"}, -{"usage": "family", "gender": "unisex", "name": "Комбс"}, -{"usage": "family", "gender": "unisex", "name": "Комер"}, -{"usage": "family", "gender": "unisex", "name": "Комптон"}, -{"usage": "family", "gender": "unisex", "name": "Кондон"}, -{"usage": "family", "gender": "unisex", "name": "Конклин"}, -{"usage": "family", "gender": "unisex", "name": "Конли"}, -{"usage": "family", "gender": "unisex", "name": "Коннектикут"}, -{"usage": "family", "gender": "unisex", "name": "Коннелли"}, -{"usage": "family", "gender": "unisex", "name": "Коннелл"}, -{"usage": "family", "gender": "unisex", "name": "Коннер"}, -{"usage": "family", "gender": "unisex", "name": "Коннолли"}, -{"usage": "family", "gender": "unisex", "name": "Коннорс"}, -{"usage": "family", "gender": "unisex", "name": "Коннор"}, -{"usage": "family", "gender": "unisex", "name": "Конрад"}, -{"usage": "family", "gender": "unisex", "name": "Конрой"}, -{"usage": "family", "gender": "unisex", "name": "Контрерас"}, -{"usage": "family", "gender": "unisex", "name": "Конуэй"}, -{"usage": "family", "gender": "unisex", "name": "Корбетт"}, -{"usage": "family", "gender": "unisex", "name": "Корбин"}, -{"usage": "family", "gender": "unisex", "name": "Кордеро"}, -{"usage": "family", "gender": "unisex", "name": "Кордова"}, -{"usage": "family", "gender": "unisex", "name": "Кори"}, -{"usage": "family", "gender": "unisex", "name": "Коркоран"}, -{"usage": "family", "gender": "unisex", "name": "Корли"}, -{"usage": "family", "gender": "unisex", "name": "Кормье"}, -{"usage": "family", "gender": "unisex", "name": "Корнелиус"}, -{"usage": "family", "gender": "unisex", "name": "Корнелл"}, -{"usage": "family", "gender": "unisex", "name": "Корнетт"}, -{"usage": "family", "gender": "unisex", "name": "Корнехо"}, -{"usage": "family", "gender": "unisex", "name": "Корнуэлл"}, -{"usage": "family", "gender": "unisex", "name": "Коронадо"}, -{"usage": "family", "gender": "unisex", "name": "Корона"}, -{"usage": "family", "gender": "unisex", "name": "Корраль"}, -{"usage": "family", "gender": "unisex", "name": "Корреа"}, -{"usage": "family", "gender": "unisex", "name": "Корриган"}, -{"usage": "family", "gender": "unisex", "name": "Кортесы"}, -{"usage": "family", "gender": "unisex", "name": "Кортес"}, -{"usage": "family", "gender": "unisex", "name": "Кортни"}, -{"usage": "family", "gender": "unisex", "name": "Коста"}, -{"usage": "family", "gender": "unisex", "name": "Костелло"}, -{"usage": "family", "gender": "unisex", "name": "Коте"}, -{"usage": "family", "gender": "unisex", "name": "Коттер"}, -{"usage": "family", "gender": "unisex", "name": "Коттон"}, -{"usage": "family", "gender": "unisex", "name": "Коттрелл"}, -{"usage": "family", "gender": "unisex", "name": "Коулз"}, -{"usage": "family", "gender": "unisex", "name": "Коулман"}, -{"usage": "family", "gender": "unisex", "name": "Коул"}, -{"usage": "family", "gender": "unisex", "name": "Коупленд"}, -{"usage": "family", "gender": "unisex", "name": "Коуп"}, -{"usage": "family", "gender": "unisex", "name": "Коутс"}, -{"usage": "family", "gender": "unisex", "name": "Коуч"}, -{"usage": "family", "gender": "unisex", "name": "Коуэн"}, -{"usage": "family", "gender": "unisex", "name": "Коу"}, -{"usage": "family", "gender": "unisex", "name": "Кофман"}, -{"usage": "family", "gender": "unisex", "name": "Коффи"}, -{"usage": "family", "gender": "unisex", "name": "Кохлер"}, -{"usage": "family", "gender": "unisex", "name": "Кох"}, -{"usage": "family", "gender": "unisex", "name": "Коэн"}, -{"usage": "family", "gender": "unisex", "name": "Крабтри"}, -{"usage": "family", "gender": "unisex", "name": "Крамер"}, -{"usage": "family", "gender": "unisex", "name": "Крамп"}, -{"usage": "family", "gender": "unisex", "name": "Крам"}, -{"usage": "family", "gender": "unisex", "name": "Крандалл"}, -{"usage": "family", "gender": "unisex", "name": "Кран"}, -{"usage": "family", "gender": "unisex", "name": "Краудер"}, -{"usage": "family", "gender": "unisex", "name": "Краузе"}, -{"usage": "family", "gender": "unisex", "name": "Краус"}, -{"usage": "family", "gender": "unisex", "name": "Крауч"}, -{"usage": "family", "gender": "unisex", "name": "Крафт"}, -{"usage": "family", "gender": "unisex", "name": "Крейг"}, -{"usage": "family", "gender": "unisex", "name": "Крейн"}, -{"usage": "family", "gender": "unisex", "name": "Креншоу"}, -{"usage": "family", "gender": "unisex", "name": "Креспо"}, -{"usage": "family", "gender": "unisex", "name": "Крисп"}, -{"usage": "family", "gender": "unisex", "name": "Кристенсен"}, -{"usage": "family", "gender": "unisex", "name": "Кристиансен"}, -{"usage": "family", "gender": "unisex", "name": "Кристиансон"}, -{"usage": "family", "gender": "unisex", "name": "Кристиан"}, -{"usage": "family", "gender": "unisex", "name": "Кристи"}, -{"usage": "family", "gender": "unisex", "name": "Кристман"}, -{"usage": "family", "gender": "unisex", "name": "Кристофер"}, -{"usage": "family", "gender": "unisex", "name": "Крич"}, -{"usage": "family", "gender": "unisex", "name": "Крокер"}, -{"usage": "family", "gender": "unisex", "name": "Крокетт"}, -{"usage": "family", "gender": "unisex", "name": "Кронин"}, -{"usage": "family", "gender": "unisex", "name": "Кросби"}, -{"usage": "family", "gender": "unisex", "name": "Кросс"}, -{"usage": "family", "gender": "unisex", "name": "Кроули"}, -{"usage": "family", "gender": "unisex", "name": "Кроуфорд"}, -{"usage": "family", "gender": "unisex", "name": "Кроуэлл"}, -{"usage": "family", "gender": "unisex", "name": "Кроу"}, -{"usage": "family", "gender": "unisex", "name": "Крофт"}, -{"usage": "family", "gender": "unisex", "name": "Крузе"}, -{"usage": "family", "gender": "unisex", "name": "Круз"}, -{"usage": "family", "gender": "unisex", "name": "Крук"}, -{"usage": "family", "gender": "unisex", "name": "Крус"}, -{"usage": "family", "gender": "unisex", "name": "Крэйвен"}, -{"usage": "family", "gender": "unisex", "name": "Крюгер"}, -{"usage": "family", "gender": "unisex", "name": "Крюс"}, -{"usage": "family", "gender": "unisex", "name": "Куигли"}, -{"usage": "family", "gender": "unisex", "name": "Куик"}, -{"usage": "family", "gender": "unisex", "name": "Куинн"}, -{"usage": "family", "gender": "unisex", "name": "Куин"}, -{"usage": "family", "gender": "unisex", "name": "Кук"}, -{"usage": "family", "gender": "unisex", "name": "Кули"}, -{"usage": "family", "gender": "unisex", "name": "Култер"}, -{"usage": "family", "gender": "unisex", "name": "Кумар"}, -{"usage": "family", "gender": "unisex", "name": "Куни"}, -{"usage": "family", "gender": "unisex", "name": "Кун"}, -{"usage": "family", "gender": "unisex", "name": "Куолс"}, -{"usage": "family", "gender": "unisex", "name": "Купер"}, -{"usage": "family", "gender": "unisex", "name": "Курц"}, -{"usage": "family", "gender": "unisex", "name": "Куэвас"}, -{"usage": "family", "gender": "unisex", "name": "Куэльяр"}, -{"usage": "family", "gender": "unisex", "name": "Кэйгл"}, -{"usage": "family", "gender": "unisex", "name": "Кэллоуэй"}, -{"usage": "family", "gender": "unisex", "name": "Кэмерон"}, -{"usage": "family", "gender": "unisex", "name": "Кэмпбелл"}, -{"usage": "family", "gender": "unisex", "name": "Кэмп"}, -{"usage": "family", "gender": "unisex", "name": "Кэннон"}, -{"usage": "family", "gender": "unisex", "name": "Кэнфилд"}, -{"usage": "family", "gender": "unisex", "name": "Кэри"}, -{"usage": "family", "gender": "unisex", "name": "Кэрриэр"}, -{"usage": "family", "gender": "unisex", "name": "Кэрролл"}, -{"usage": "family", "gender": "unisex", "name": "Кэссиди"}, -{"usage": "family", "gender": "unisex", "name": "Кэхилл"}, -{"usage": "family", "gender": "unisex", "name": "Кэш"}, -{"usage": "family", "gender": "unisex", "name": "Кёлер"}, -{"usage": "family", "gender": "unisex", "name": "Кёниг"}, -{"usage": "family", "gender": "unisex", "name": "Кёрли"}, -{"usage": "family", "gender": "unisex", "name": "Лав"}, -{"usage": "family", "gender": "unisex", "name": "Лайлс"}, -{"usage": "family", "gender": "unisex", "name": "Лайл"}, -{"usage": "family", "gender": "unisex", "name": "Лайт"}, -{"usage": "family", "gender": "unisex", "name": "Лай"}, -{"usage": "family", "gender": "unisex", "name": "Ламберт"}, -{"usage": "family", "gender": "unisex", "name": "Ламб"}, -{"usage": "family", "gender": "unisex", "name": "Лам"}, -{"usage": "family", "gender": "unisex", "name": "Ланге"}, -{"usage": "family", "gender": "unisex", "name": "Ланг"}, -{"usage": "family", "gender": "unisex", "name": "Ландерс"}, -{"usage": "family", "gender": "unisex", "name": "Ланди"}, -{"usage": "family", "gender": "unisex", "name": "Ландри"}, -{"usage": "family", "gender": "unisex", "name": "Ландрум"}, -{"usage": "family", "gender": "unisex", "name": "Ланкастер"}, -{"usage": "family", "gender": "unisex", "name": "Ланц"}, -{"usage": "family", "gender": "unisex", "name": "Ланье"}, -{"usage": "family", "gender": "unisex", "name": "Лара"}, -{"usage": "family", "gender": "unisex", "name": "Ларкин"}, -{"usage": "family", "gender": "unisex", "name": "Ларсен"}, -{"usage": "family", "gender": "unisex", "name": "Ларсон"}, -{"usage": "family", "gender": "unisex", "name": "Лару"}, -{"usage": "family", "gender": "unisex", "name": "Ласк"}, -{"usage": "family", "gender": "unisex", "name": "Ласситер"}, -{"usage": "family", "gender": "unisex", "name": "Латам"}, -{"usage": "family", "gender": "unisex", "name": "Лауэр"}, -{"usage": "family", "gender": "unisex", "name": "Лау"}, -{"usage": "family", "gender": "unisex", "name": "Лафлин"}, -{"usage": "family", "gender": "unisex", "name": "Леаль"}, -{"usage": "family", "gender": "unisex", "name": "Леблан"}, -{"usage": "family", "gender": "unisex", "name": "Левандовски"}, -{"usage": "family", "gender": "unisex", "name": "Левек"}, -{"usage": "family", "gender": "unisex", "name": "Левин"}, -{"usage": "family", "gender": "unisex", "name": "Леви"}, -{"usage": "family", "gender": "unisex", "name": "Леггетт"}, -{"usage": "family", "gender": "unisex", "name": "Ледбеттер"}, -{"usage": "family", "gender": "unisex", "name": "Ледесма"}, -{"usage": "family", "gender": "unisex", "name": "Ледфорд"}, -{"usage": "family", "gender": "unisex", "name": "Лейва"}, -{"usage": "family", "gender": "unisex", "name": "Лейси"}, -{"usage": "family", "gender": "unisex", "name": "Лейтон"}, -{"usage": "family", "gender": "unisex", "name": "Леман"}, -{"usage": "family", "gender": "unisex", "name": "Лемонс"}, -{"usage": "family", "gender": "unisex", "name": "Лемон"}, -{"usage": "family", "gender": "unisex", "name": "Лемус"}, -{"usage": "family", "gender": "unisex", "name": "Ленц"}, -{"usage": "family", "gender": "unisex", "name": "Леонард"}, -{"usage": "family", "gender": "unisex", "name": "Леоне"}, -{"usage": "family", "gender": "unisex", "name": "Леон"}, -{"usage": "family", "gender": "unisex", "name": "Лесли"}, -{"usage": "family", "gender": "unisex", "name": "Лестер"}, -{"usage": "family", "gender": "unisex", "name": "Ле"}, -{"usage": "family", "gender": "unisex", "name": "Ливингстон"}, -{"usage": "family", "gender": "unisex", "name": "Ливитт"}, -{"usage": "family", "gender": "unisex", "name": "Лилли"}, -{"usage": "family", "gender": "unisex", "name": "Лиман"}, -{"usage": "family", "gender": "unisex", "name": "Лима"}, -{"usage": "family", "gender": "unisex", "name": "Лим"}, -{"usage": "family", "gender": "unisex", "name": "Линарес"}, -{"usage": "family", "gender": "unisex", "name": "Линдер"}, -{"usage": "family", "gender": "unisex", "name": "Линдквист"}, -{"usage": "family", "gender": "unisex", "name": "Линдсей"}, -{"usage": "family", "gender": "unisex", "name": "Линдси"}, -{"usage": "family", "gender": "unisex", "name": "Линд"}, -{"usage": "family", "gender": "unisex", "name": "Линкольн"}, -{"usage": "family", "gender": "unisex", "name": "Линк"}, -{"usage": "family", "gender": "unisex", "name": "Линн"}, -{"usage": "family", "gender": "unisex", "name": "Линтон"}, -{"usage": "family", "gender": "unisex", "name": "Линч"}, -{"usage": "family", "gender": "unisex", "name": "Лин"}, -{"usage": "family", "gender": "unisex", "name": "Лионс"}, -{"usage": "family", "gender": "unisex", "name": "Лион"}, -{"usage": "family", "gender": "unisex", "name": "Липскомб"}, -{"usage": "family", "gender": "unisex", "name": "Лири"}, -{"usage": "family", "gender": "unisex", "name": "Литл"}, -{"usage": "family", "gender": "unisex", "name": "Литтлджон"}, -{"usage": "family", "gender": "unisex", "name": "Литтл"}, -{"usage": "family", "gender": "unisex", "name": "Лич"}, -{"usage": "family", "gender": "unisex", "name": "Ли"}, -{"usage": "family", "gender": "unisex", "name": "Ллойд"}, -{"usage": "family", "gender": "unisex", "name": "Ловелас"}, -{"usage": "family", "gender": "unisex", "name": "Ловелл"}, -{"usage": "family", "gender": "unisex", "name": "Ловетт"}, -{"usage": "family", "gender": "unisex", "name": "Логан"}, -{"usage": "family", "gender": "unisex", "name": "Лозано"}, -{"usage": "family", "gender": "unisex", "name": "Лойд"}, -{"usage": "family", "gender": "unisex", "name": "Локвуд"}, -{"usage": "family", "gender": "unisex", "name": "Локетт"}, -{"usage": "family", "gender": "unisex", "name": "Локк"}, -{"usage": "family", "gender": "unisex", "name": "Локлир"}, -{"usage": "family", "gender": "unisex", "name": "Локхарт"}, -{"usage": "family", "gender": "unisex", "name": "Ломбарди"}, -{"usage": "family", "gender": "unisex", "name": "Ломбардо"}, -{"usage": "family", "gender": "unisex", "name": "Лонгория"}, -{"usage": "family", "gender": "unisex", "name": "Лонго"}, -{"usage": "family", "gender": "unisex", "name": "Лонг"}, -{"usage": "family", "gender": "unisex", "name": "Лондон"}, -{"usage": "family", "gender": "unisex", "name": "Лопес"}, -{"usage": "family", "gender": "unisex", "name": "Лорд"}, -{"usage": "family", "gender": "unisex", "name": "Лоренс"}, -{"usage": "family", "gender": "unisex", "name": "Лоренцо"}, -{"usage": "family", "gender": "unisex", "name": "Лоренц"}, -{"usage": "family", "gender": "unisex", "name": "Лотт"}, -{"usage": "family", "gender": "unisex", "name": "Лоулер"}, -{"usage": "family", "gender": "unisex", "name": "Лоури"}, -{"usage": "family", "gender": "unisex", "name": "Лоусон"}, -{"usage": "family", "gender": "unisex", "name": "Лоус"}, -{"usage": "family", "gender": "unisex", "name": "Лоутон"}, -{"usage": "family", "gender": "unisex", "name": "Лоу"}, -{"usage": "family", "gender": "unisex", "name": "Лофтон"}, -{"usage": "family", "gender": "unisex", "name": "Ло"}, -{"usage": "family", "gender": "unisex", "name": "Луго"}, -{"usage": "family", "gender": "unisex", "name": "Луис"}, -{"usage": "family", "gender": "unisex", "name": "Лукас"}, -{"usage": "family", "gender": "unisex", "name": "Лумис"}, -{"usage": "family", "gender": "unisex", "name": "Луна"}, -{"usage": "family", "gender": "unisex", "name": "Лунд"}, -{"usage": "family", "gender": "unisex", "name": "Луни"}, -{"usage": "family", "gender": "unisex", "name": "Лунсфорд"}, -{"usage": "family", "gender": "unisex", "name": "Луонг"}, -{"usage": "family", "gender": "unisex", "name": "Лусеро"}, -{"usage": "family", "gender": "unisex", "name": "Лутц"}, -{"usage": "family", "gender": "unisex", "name": "Лухан"}, -{"usage": "family", "gender": "unisex", "name": "Лу"}, -{"usage": "family", "gender": "unisex", "name": "Льюис"}, -{"usage": "family", "gender": "unisex", "name": "Лэдд"}, -{"usage": "family", "gender": "unisex", "name": "Лэйк"}, -{"usage": "family", "gender": "unisex", "name": "Лэйн"}, -{"usage": "family", "gender": "unisex", "name": "Лэйрд"}, -{"usage": "family", "gender": "unisex", "name": "Лэй"}, -{"usage": "family", "gender": "unisex", "name": "Лэки"}, -{"usage": "family", "gender": "unisex", "name": "Лэнгли"}, -{"usage": "family", "gender": "unisex", "name": "Лэнгстон"}, -{"usage": "family", "gender": "unisex", "name": "Лэнгфорд"}, -{"usage": "family", "gender": "unisex", "name": "Лэндис"}, -{"usage": "family", "gender": "unisex", "name": "Лэнд"}, -{"usage": "family", "gender": "unisex", "name": "Лэнкфорд"}, -{"usage": "family", "gender": "unisex", "name": "Лэнс"}, -{"usage": "family", "gender": "unisex", "name": "Лэси"}, -{"usage": "family", "gender": "unisex", "name": "Людвиг"}, -{"usage": "family", "gender": "unisex", "name": "Люк"}, -{"usage": "family", "gender": "unisex", "name": "Люн"}, -{"usage": "family", "gender": "unisex", "name": "Лютер"}, -{"usage": "family", "gender": "unisex", "name": "Лю"}, -{"usage": "family", "gender": "unisex", "name": "Лян"}, -{"usage": "family", "gender": "unisex", "name": "Мабри"}, -{"usage": "family", "gender": "unisex", "name": "Магана"}, -{"usage": "family", "gender": "unisex", "name": "Маги"}, -{"usage": "family", "gender": "unisex", "name": "Магуайр"}, -{"usage": "family", "gender": "unisex", "name": "Мадригал"}, -{"usage": "family", "gender": "unisex", "name": "Мадрид"}, -{"usage": "family", "gender": "unisex", "name": "Майерс"}, -{"usage": "family", "gender": "unisex", "name": "Майер"}, -{"usage": "family", "gender": "unisex", "name": "Майз"}, -{"usage": "family", "gender": "unisex", "name": "Майклс"}, -{"usage": "family", "gender": "unisex", "name": "Майкл"}, -{"usage": "family", "gender": "unisex", "name": "Майлз"}, -{"usage": "family", "gender": "unisex", "name": "Майлс"}, -{"usage": "family", "gender": "unisex", "name": "Майнер"}, -{"usage": "family", "gender": "unisex", "name": "Майнор"}, -{"usage": "family", "gender": "unisex", "name": "Майн"}, -{"usage": "family", "gender": "unisex", "name": "Майо"}, -{"usage": "family", "gender": "unisex", "name": "Майрилис"}, -{"usage": "family", "gender": "unisex", "name": "Май"}, -{"usage": "family", "gender": "unisex", "name": "МакАдамс"}, -{"usage": "family", "gender": "unisex", "name": "МакАлистер"}, -{"usage": "family", "gender": "unisex", "name": "МакАртур"}, -{"usage": "family", "gender": "unisex", "name": "МакБрайд"}, -{"usage": "family", "gender": "unisex", "name": "МакВильямс"}, -{"usage": "family", "gender": "unisex", "name": "МакГенри"}, -{"usage": "family", "gender": "unisex", "name": "МакГилл"}, -{"usage": "family", "gender": "unisex", "name": "МакГиннис"}, -{"usage": "family", "gender": "unisex", "name": "МакГи"}, -{"usage": "family", "gender": "unisex", "name": "МакГоуэн"}, -{"usage": "family", "gender": "unisex", "name": "МакГрат"}, -{"usage": "family", "gender": "unisex", "name": "МакГрегор"}, -{"usage": "family", "gender": "unisex", "name": "МакГроу"}, -{"usage": "family", "gender": "unisex", "name": "МакГуайр"}, -{"usage": "family", "gender": "unisex", "name": "МакДауэлл"}, -{"usage": "family", "gender": "unisex", "name": "МакДермотт"}, -{"usage": "family", "gender": "unisex", "name": "МакДональд"}, -{"usage": "family", "gender": "unisex", "name": "МакДоннелл"}, -{"usage": "family", "gender": "unisex", "name": "МакДоно"}, -{"usage": "family", "gender": "unisex", "name": "МакДэниэл"}, -{"usage": "family", "gender": "unisex", "name": "МакКалоу"}, -{"usage": "family", "gender": "unisex", "name": "МакКанн"}, -{"usage": "family", "gender": "unisex", "name": "МакКарди"}, -{"usage": "family", "gender": "unisex", "name": "МакКарти"}, -{"usage": "family", "gender": "unisex", "name": "МакКартни"}, -{"usage": "family", "gender": "unisex", "name": "МакКейб"}, -{"usage": "family", "gender": "unisex", "name": "МакКейн"}, -{"usage": "family", "gender": "unisex", "name": "МакКей"}, -{"usage": "family", "gender": "unisex", "name": "МакКензи"}, -{"usage": "family", "gender": "unisex", "name": "МакКенна"}, -{"usage": "family", "gender": "unisex", "name": "МакКинли"}, -{"usage": "family", "gender": "unisex", "name": "МакКинни"}, -{"usage": "family", "gender": "unisex", "name": "МакКиннон"}, -{"usage": "family", "gender": "unisex", "name": "МакКи"}, -{"usage": "family", "gender": "unisex", "name": "МакКлауд"}, -{"usage": "family", "gender": "unisex", "name": "МакКлейн"}, -{"usage": "family", "gender": "unisex", "name": "МакКлелланд"}, -{"usage": "family", "gender": "unisex", "name": "МакКлеллан"}, -{"usage": "family", "gender": "unisex", "name": "МакКлендон"}, -{"usage": "family", "gender": "unisex", "name": "МакКлюр"}, -{"usage": "family", "gender": "unisex", "name": "МакКой"}, -{"usage": "family", "gender": "unisex", "name": "МакКолам"}, -{"usage": "family", "gender": "unisex", "name": "МакКоли"}, -{"usage": "family", "gender": "unisex", "name": "МакКолл"}, -{"usage": "family", "gender": "unisex", "name": "МакКоннелл"}, -{"usage": "family", "gender": "unisex", "name": "МакКорд"}, -{"usage": "family", "gender": "unisex", "name": "МакКормак"}, -{"usage": "family", "gender": "unisex", "name": "МакКормик"}, -{"usage": "family", "gender": "unisex", "name": "МакКракен"}, -{"usage": "family", "gender": "unisex", "name": "МакКрей"}, -{"usage": "family", "gender": "unisex", "name": "МакКрэри"}, -{"usage": "family", "gender": "unisex", "name": "МакКуин"}, -{"usage": "family", "gender": "unisex", "name": "МакЛафлин"}, -{"usage": "family", "gender": "unisex", "name": "МакЛейн"}, -{"usage": "family", "gender": "unisex", "name": "МакЛеод"}, -{"usage": "family", "gender": "unisex", "name": "МакЛин"}, -{"usage": "family", "gender": "unisex", "name": "МакМагон"}, -{"usage": "family", "gender": "unisex", "name": "МакМаллен"}, -{"usage": "family", "gender": "unisex", "name": "МакМанус"}, -{"usage": "family", "gender": "unisex", "name": "МакНайт"}, -{"usage": "family", "gender": "unisex", "name": "МакНил"}, -{"usage": "family", "gender": "unisex", "name": "МакРей"}, -{"usage": "family", "gender": "unisex", "name": "МакЭлрой"}, -{"usage": "family", "gender": "unisex", "name": "МакЭфи"}, -{"usage": "family", "gender": "unisex", "name": "Макалистер"}, -{"usage": "family", "gender": "unisex", "name": "Макги"}, -{"usage": "family", "gender": "unisex", "name": "Макговерн"}, -{"usage": "family", "gender": "unisex", "name": "Макдональд"}, -{"usage": "family", "gender": "unisex", "name": "Макинтайр"}, -{"usage": "family", "gender": "unisex", "name": "Макинтош"}, -{"usage": "family", "gender": "unisex", "name": "Маккарти"}, -{"usage": "family", "gender": "unisex", "name": "Маккензи"}, -{"usage": "family", "gender": "unisex", "name": "Макки"}, -{"usage": "family", "gender": "unisex", "name": "Макмиллан"}, -{"usage": "family", "gender": "unisex", "name": "Макмэхэн"}, -{"usage": "family", "gender": "unisex", "name": "Макналли"}, -{"usage": "family", "gender": "unisex", "name": "Макналти"}, -{"usage": "family", "gender": "unisex", "name": "Макнамара"}, -{"usage": "family", "gender": "unisex", "name": "Макнейл"}, -{"usage": "family", "gender": "unisex", "name": "Макнейр"}, -{"usage": "family", "gender": "unisex", "name": "Макнили"}, -{"usage": "family", "gender": "unisex", "name": "Макнил"}, -{"usage": "family", "gender": "unisex", "name": "Максвелл"}, -{"usage": "family", "gender": "unisex", "name": "Макфадден"}, -{"usage": "family", "gender": "unisex", "name": "Макфарлэнд"}, -{"usage": "family", "gender": "unisex", "name": "Макферсон"}, -{"usage": "family", "gender": "unisex", "name": "Макхью"}, -{"usage": "family", "gender": "unisex", "name": "Мак"}, -{"usage": "family", "gender": "unisex", "name": "Маллен"}, -{"usage": "family", "gender": "unisex", "name": "Маллиган"}, -{"usage": "family", "gender": "unisex", "name": "Маллинс"}, -{"usage": "family", "gender": "unisex", "name": "Маллин"}, -{"usage": "family", "gender": "unisex", "name": "Маллой"}, -{"usage": "family", "gender": "unisex", "name": "Маллори"}, -{"usage": "family", "gender": "unisex", "name": "Мальдонадо"}, -{"usage": "family", "gender": "unisex", "name": "Манн"}, -{"usage": "family", "gender": "unisex", "name": "Мансон"}, -{"usage": "family", "gender": "unisex", "name": "Мануэль"}, -{"usage": "family", "gender": "unisex", "name": "Марес"}, -{"usage": "family", "gender": "unisex", "name": "Марино"}, -{"usage": "family", "gender": "unisex", "name": "Марин"}, -{"usage": "family", "gender": "unisex", "name": "Марион"}, -{"usage": "family", "gender": "unisex", "name": "Маркес"}, -{"usage": "family", "gender": "unisex", "name": "Маркс"}, -{"usage": "family", "gender": "unisex", "name": "Маркум"}, -{"usage": "family", "gender": "unisex", "name": "Маркус"}, -{"usage": "family", "gender": "unisex", "name": "Маркхэм"}, -{"usage": "family", "gender": "unisex", "name": "Марк"}, -{"usage": "family", "gender": "unisex", "name": "Марлоу"}, -{"usage": "family", "gender": "unisex", "name": "Марреро"}, -{"usage": "family", "gender": "unisex", "name": "Маррокин"}, -{"usage": "family", "gender": "unisex", "name": "Мартинес"}, -{"usage": "family", "gender": "unisex", "name": "Мартино"}, -{"usage": "family", "gender": "unisex", "name": "Мартин"}, -{"usage": "family", "gender": "unisex", "name": "Маршалл"}, -{"usage": "family", "gender": "unisex", "name": "Марш"}, -{"usage": "family", "gender": "unisex", "name": "Масиас"}, -{"usage": "family", "gender": "unisex", "name": "Массачусетс"}, -{"usage": "family", "gender": "unisex", "name": "Мастерсон"}, -{"usage": "family", "gender": "unisex", "name": "Мастерс"}, -{"usage": "family", "gender": "unisex", "name": "Маст"}, -{"usage": "family", "gender": "unisex", "name": "Мата"}, -{"usage": "family", "gender": "unisex", "name": "Матис"}, -{"usage": "family", "gender": "unisex", "name": "Матос"}, -{"usage": "family", "gender": "unisex", "name": "Маттингли"}, -{"usage": "family", "gender": "unisex", "name": "Маурер"}, -{"usage": "family", "gender": "unisex", "name": "Махан"}, -{"usage": "family", "gender": "unisex", "name": "Махер"}, -{"usage": "family", "gender": "unisex", "name": "Махони"}, -{"usage": "family", "gender": "unisex", "name": "Мачадо"}, -{"usage": "family", "gender": "unisex", "name": "Медейрус"}, -{"usage": "family", "gender": "unisex", "name": "Медина"}, -{"usage": "family", "gender": "unisex", "name": "Медоуз"}, -{"usage": "family", "gender": "unisex", "name": "Медрано"}, -{"usage": "family", "gender": "unisex", "name": "Межа"}, -{"usage": "family", "gender": "unisex", "name": "Мейберри"}, -{"usage": "family", "gender": "unisex", "name": "Мейджор"}, -{"usage": "family", "gender": "unisex", "name": "Мейер"}, -{"usage": "family", "gender": "unisex", "name": "Мейнард"}, -{"usage": "family", "gender": "unisex", "name": "Мейс"}, -{"usage": "family", "gender": "unisex", "name": "Мелвин"}, -{"usage": "family", "gender": "unisex", "name": "Мелендес"}, -{"usage": "family", "gender": "unisex", "name": "Мелло"}, -{"usage": "family", "gender": "unisex", "name": "Мельтон"}, -{"usage": "family", "gender": "unisex", "name": "Мена"}, -{"usage": "family", "gender": "unisex", "name": "Мендес"}, -{"usage": "family", "gender": "unisex", "name": "Мендоса"}, -{"usage": "family", "gender": "unisex", "name": "Мердок"}, -{"usage": "family", "gender": "unisex", "name": "Мередит"}, -{"usage": "family", "gender": "unisex", "name": "Меркадо"}, -{"usage": "family", "gender": "unisex", "name": "Мерритт"}, -{"usage": "family", "gender": "unisex", "name": "Мерсер"}, -{"usage": "family", "gender": "unisex", "name": "Мерчант"}, -{"usage": "family", "gender": "unisex", "name": "Меса"}, -{"usage": "family", "gender": "unisex", "name": "Мессер"}, -{"usage": "family", "gender": "unisex", "name": "Мессина"}, -{"usage": "family", "gender": "unisex", "name": "Месси"}, -{"usage": "family", "gender": "unisex", "name": "Меткалф"}, -{"usage": "family", "gender": "unisex", "name": "Мехия"}, -{"usage": "family", "gender": "unisex", "name": "Мецгер"}, -{"usage": "family", "gender": "unisex", "name": "Мец"}, -{"usage": "family", "gender": "unisex", "name": "Миддлтон"}, -{"usage": "family", "gender": "unisex", "name": "Мид"}, -{"usage": "family", "gender": "unisex", "name": "Миксон"}, -{"usage": "family", "gender": "unisex", "name": "Микс"}, -{"usage": "family", "gender": "unisex", "name": "Мик"}, -{"usage": "family", "gender": "unisex", "name": "Милам"}, -{"usage": "family", "gender": "unisex", "name": "Миллард"}, -{"usage": "family", "gender": "unisex", "name": "Миллер"}, -{"usage": "family", "gender": "unisex", "name": "Миллиган"}, -{"usage": "family", "gender": "unisex", "name": "Миллс"}, -{"usage": "family", "gender": "unisex", "name": "Милнер"}, -{"usage": "family", "gender": "unisex", "name": "Милтон"}, -{"usage": "family", "gender": "unisex", "name": "Мимс"}, -{"usage": "family", "gender": "unisex", "name": "Минс"}, -{"usage": "family", "gender": "unisex", "name": "Минтон"}, -{"usage": "family", "gender": "unisex", "name": "Миранда"}, -{"usage": "family", "gender": "unisex", "name": "Мирик"}, -{"usage": "family", "gender": "unisex", "name": "Митчелл"}, -{"usage": "family", "gender": "unisex", "name": "Михан"}, -{"usage": "family", "gender": "unisex", "name": "Мишель"}, -{"usage": "family", "gender": "unisex", "name": "Мишо"}, -{"usage": "family", "gender": "unisex", "name": "Мобли"}, -{"usage": "family", "gender": "unisex", "name": "Мозер"}, -{"usage": "family", "gender": "unisex", "name": "Мозли"}, -{"usage": "family", "gender": "unisex", "name": "Мойер"}, -{"usage": "family", "gender": "unisex", "name": "Мокк"}, -{"usage": "family", "gender": "unisex", "name": "Молина"}, -{"usage": "family", "gender": "unisex", "name": "Монахан"}, -{"usage": "family", "gender": "unisex", "name": "Мондрагон"}, -{"usage": "family", "gender": "unisex", "name": "Монк"}, -{"usage": "family", "gender": "unisex", "name": "Монро"}, -{"usage": "family", "gender": "unisex", "name": "Монтальво"}, -{"usage": "family", "gender": "unisex", "name": "Монтано"}, -{"usage": "family", "gender": "unisex", "name": "Монтаньес"}, -{"usage": "family", "gender": "unisex", "name": "Монтгомери"}, -{"usage": "family", "gender": "unisex", "name": "Монтеро"}, -{"usage": "family", "gender": "unisex", "name": "Монтес"}, -{"usage": "family", "gender": "unisex", "name": "Монтойя"}, -{"usage": "family", "gender": "unisex", "name": "Моралес"}, -{"usage": "family", "gender": "unisex", "name": "Моран"}, -{"usage": "family", "gender": "unisex", "name": "Мора"}, -{"usage": "family", "gender": "unisex", "name": "Морган"}, -{"usage": "family", "gender": "unisex", "name": "Морено"}, -{"usage": "family", "gender": "unisex", "name": "Морзе"}, -{"usage": "family", "gender": "unisex", "name": "Морин"}, -{"usage": "family", "gender": "unisex", "name": "Морленд"}, -{"usage": "family", "gender": "unisex", "name": "Моррелл"}, -{"usage": "family", "gender": "unisex", "name": "Моррисон"}, -{"usage": "family", "gender": "unisex", "name": "Моррисси"}, -{"usage": "family", "gender": "unisex", "name": "Моррис"}, -{"usage": "family", "gender": "unisex", "name": "Морроу"}, -{"usage": "family", "gender": "unisex", "name": "Мортон"}, -{"usage": "family", "gender": "unisex", "name": "Мор"}, -{"usage": "family", "gender": "unisex", "name": "Мосли"}, -{"usage": "family", "gender": "unisex", "name": "Мосс"}, -{"usage": "family", "gender": "unisex", "name": "Мотт"}, -{"usage": "family", "gender": "unisex", "name": "Моусес"}, -{"usage": "family", "gender": "unisex", "name": "Моффетт"}, -{"usage": "family", "gender": "unisex", "name": "Мохамед"}, -{"usage": "family", "gender": "unisex", "name": "Мошер"}, -{"usage": "family", "gender": "unisex", "name": "Моя"}, -{"usage": "family", "gender": "unisex", "name": "Муди"}, -{"usage": "family", "gender": "unisex", "name": "Мултон"}, -{"usage": "family", "gender": "unisex", "name": "Мунис"}, -{"usage": "family", "gender": "unisex", "name": "Муни"}, -{"usage": "family", "gender": "unisex", "name": "Муньос"}, -{"usage": "family", "gender": "unisex", "name": "Мун"}, -{"usage": "family", "gender": "unisex", "name": "Мурильо"}, -{"usage": "family", "gender": "unisex", "name": "Мур"}, -{"usage": "family", "gender": "unisex", "name": "Мухаммед"}, -{"usage": "family", "gender": "unisex", "name": "Мьюз"}, -{"usage": "family", "gender": "unisex", "name": "Мэдден"}, -{"usage": "family", "gender": "unisex", "name": "Мэддокс"}, -{"usage": "family", "gender": "unisex", "name": "Мэдисон"}, -{"usage": "family", "gender": "unisex", "name": "Мэдли"}, -{"usage": "family", "gender": "unisex", "name": "Мэдсен"}, -{"usage": "family", "gender": "unisex", "name": "Мэйсон"}, -{"usage": "family", "gender": "unisex", "name": "Мэйфилд"}, -{"usage": "family", "gender": "unisex", "name": "Мэй"}, -{"usage": "family", "gender": "unisex", "name": "Мэлони"}, -{"usage": "family", "gender": "unisex", "name": "Мэлоун"}, -{"usage": "family", "gender": "unisex", "name": "Мэнли"}, -{"usage": "family", "gender": "unisex", "name": "Мэннинг"}, -{"usage": "family", "gender": "unisex", "name": "Мэнсфилд"}, -{"usage": "family", "gender": "unisex", "name": "Мэрилл"}, -{"usage": "family", "gender": "unisex", "name": "Мэтлок"}, -{"usage": "family", "gender": "unisex", "name": "Мэтсон"}, -{"usage": "family", "gender": "unisex", "name": "Мэтьюз"}, -{"usage": "family", "gender": "unisex", "name": "Мюллер"}, -{"usage": "family", "gender": "unisex", "name": "Мюррей"}, -{"usage": "family", "gender": "unisex", "name": "Мёллер"}, -{"usage": "family", "gender": "unisex", "name": "Мёрфи"}, -{"usage": "family", "gender": "unisex", "name": "Наваррете"}, -{"usage": "family", "gender": "unisex", "name": "Наварро"}, -{"usage": "family", "gender": "unisex", "name": "Нава"}, -{"usage": "family", "gender": "unisex", "name": "Нагель"}, -{"usage": "family", "gender": "unisex", "name": "Надь"}, -{"usage": "family", "gender": "unisex", "name": "Найт"}, -{"usage": "family", "gender": "unisex", "name": "Най"}, -{"usage": "family", "gender": "unisex", "name": "Нанн"}, -{"usage": "family", "gender": "unisex", "name": "Напье"}, -{"usage": "family", "gender": "unisex", "name": "Наранхо"}, -{"usage": "family", "gender": "unisex", "name": "Натсон"}, -{"usage": "family", "gender": "unisex", "name": "Нахера"}, -{"usage": "family", "gender": "unisex", "name": "Нго"}, -{"usage": "family", "gender": "unisex", "name": "Нгуен"}, -{"usage": "family", "gender": "unisex", "name": "Неварес"}, -{"usage": "family", "gender": "unisex", "name": "Невиль"}, -{"usage": "family", "gender": "unisex", "name": "Негрете"}, -{"usage": "family", "gender": "unisex", "name": "Негрон"}, -{"usage": "family", "gender": "unisex", "name": "Нейдо"}, -{"usage": "family", "gender": "unisex", "name": "Нейлор"}, -{"usage": "family", "gender": "unisex", "name": "Нейман"}, -{"usage": "family", "gender": "unisex", "name": "Нельсон"}, -{"usage": "family", "gender": "unisex", "name": "Несбитт"}, -{"usage": "family", "gender": "unisex", "name": "Несс"}, -{"usage": "family", "gender": "unisex", "name": "Нефф"}, -{"usage": "family", "gender": "unisex", "name": "Никерсон"}, -{"usage": "family", "gender": "unisex", "name": "Николас"}, -{"usage": "family", "gender": "unisex", "name": "Николсон"}, -{"usage": "family", "gender": "unisex", "name": "Николс"}, -{"usage": "family", "gender": "unisex", "name": "Никсон"}, -{"usage": "family", "gender": "unisex", "name": "Никс"}, -{"usage": "family", "gender": "unisex", "name": "Нили"}, -{"usage": "family", "gender": "unisex", "name": "Нильсен"}, -{"usage": "family", "gender": "unisex", "name": "Нил"}, -{"usage": "family", "gender": "unisex", "name": "Нобльз"}, -{"usage": "family", "gender": "unisex", "name": "Новак"}, -{"usage": "family", "gender": "unisex", "name": "Нокс"}, -{"usage": "family", "gender": "unisex", "name": "Нолан"}, -{"usage": "family", "gender": "unisex", "name": "Норвуд"}, -{"usage": "family", "gender": "unisex", "name": "Норман"}, -{"usage": "family", "gender": "unisex", "name": "Норрис"}, -{"usage": "family", "gender": "unisex", "name": "Нортон"}, -{"usage": "family", "gender": "unisex", "name": "Норт"}, -{"usage": "family", "gender": "unisex", "name": "Норьега"}, -{"usage": "family", "gender": "unisex", "name": "Нотт"}, -{"usage": "family", "gender": "unisex", "name": "Ноубл"}, -{"usage": "family", "gender": "unisex", "name": "Ноулз"}, -{"usage": "family", "gender": "unisex", "name": "Ноэль"}, -{"usage": "family", "gender": "unisex", "name": "Нугент"}, -{"usage": "family", "gender": "unisex", "name": "Нунан"}, -{"usage": "family", "gender": "unisex", "name": "Нуньес"}, -{"usage": "family", "gender": "unisex", "name": "Ньевес"}, -{"usage": "family", "gender": "unisex", "name": "Ньето"}, -{"usage": "family", "gender": "unisex", "name": "Ньюберри"}, -{"usage": "family", "gender": "unisex", "name": "Ньюби"}, -{"usage": "family", "gender": "unisex", "name": "Ньюкомб"}, -{"usage": "family", "gender": "unisex", "name": "Ньюман"}, -{"usage": "family", "gender": "unisex", "name": "Ньюсом"}, -{"usage": "family", "gender": "unisex", "name": "Ньютон"}, -{"usage": "family", "gender": "unisex", "name": "Ньюэлл"}, -{"usage": "family", "gender": "unisex", "name": "Нью"}, -{"usage": "family", "gender": "unisex", "name": "Нэнс"}, -{"usage": "family", "gender": "unisex", "name": "Нэш"}, -{"usage": "family", "gender": "unisex", "name": "Н"}, -{"usage": "family", "gender": "unisex", "name": "ОДоннелл"}, -{"usage": "family", "gender": "unisex", "name": "ОКоннелл"}, -{"usage": "family", "gender": "unisex", "name": "ОМэйли"}, -{"usage": "family", "gender": "unisex", "name": "ОНил"}, -{"usage": "family", "gender": "unisex", "name": "ОРейли"}, -{"usage": "family", "gender": "unisex", "name": "ОРурк"}, -{"usage": "family", "gender": "unisex", "name": "Обрин"}, -{"usage": "family", "gender": "unisex", "name": "Оверстрит"}, -{"usage": "family", "gender": "unisex", "name": "Овертон"}, -{"usage": "family", "gender": "unisex", "name": "Огден"}, -{"usage": "family", "gender": "unisex", "name": "Оглсби"}, -{"usage": "family", "gender": "unisex", "name": "Огл"}, -{"usage": "family", "gender": "unisex", "name": "Оделл"}, -{"usage": "family", "gender": "unisex", "name": "Одом"}, -{"usage": "family", "gender": "unisex", "name": "Окампо"}, -{"usage": "family", "gender": "unisex", "name": "Окифи"}, -{"usage": "family", "gender": "unisex", "name": "Оконнор"}, -{"usage": "family", "gender": "unisex", "name": "Олбрайт"}, -{"usage": "family", "gender": "unisex", "name": "Олдридж"}, -{"usage": "family", "gender": "unisex", "name": "Олдрич"}, -{"usage": "family", "gender": "unisex", "name": "Олдхэм"}, -{"usage": "family", "gender": "unisex", "name": "Олеарий"}, -{"usage": "family", "gender": "unisex", "name": "Оливарес"}, -{"usage": "family", "gender": "unisex", "name": "Оливас"}, -{"usage": "family", "gender": "unisex", "name": "Олива"}, -{"usage": "family", "gender": "unisex", "name": "Оливейра"}, -{"usage": "family", "gender": "unisex", "name": "Оливер"}, -{"usage": "family", "gender": "unisex", "name": "Оллред"}, -{"usage": "family", "gender": "unisex", "name": "Олсен"}, -{"usage": "family", "gender": "unisex", "name": "Олсон"}, -{"usage": "family", "gender": "unisex", "name": "Ольвера"}, -{"usage": "family", "gender": "unisex", "name": "Онеилл"}, -{"usage": "family", "gender": "unisex", "name": "Онил"}, -{"usage": "family", "gender": "unisex", "name": "Онтиверос"}, -{"usage": "family", "gender": "unisex", "name": "Ордоньес"}, -{"usage": "family", "gender": "unisex", "name": "Орельяна"}, -{"usage": "family", "gender": "unisex", "name": "Орландо"}, -{"usage": "family", "gender": "unisex", "name": "Орнелас"}, -{"usage": "family", "gender": "unisex", "name": "Ороско"}, -{"usage": "family", "gender": "unisex", "name": "Орр"}, -{"usage": "family", "gender": "unisex", "name": "Ортега"}, -{"usage": "family", "gender": "unisex", "name": "Ортис"}, -{"usage": "family", "gender": "unisex", "name": "Осборн"}, -{"usage": "family", "gender": "unisex", "name": "Освальд"}, -{"usage": "family", "gender": "unisex", "name": "Осорио"}, -{"usage": "family", "gender": "unisex", "name": "Остин"}, -{"usage": "family", "gender": "unisex", "name": "Отеро"}, -{"usage": "family", "gender": "unisex", "name": "Отто"}, -{"usage": "family", "gender": "unisex", "name": "Отт"}, -{"usage": "family", "gender": "unisex", "name": "Оукли"}, -{"usage": "family", "gender": "unisex", "name": "Оукс"}, -{"usage": "family", "gender": "unisex", "name": "Оутс"}, -{"usage": "family", "gender": "unisex", "name": "Оуэнс"}, -{"usage": "family", "gender": "unisex", "name": "Оуэн"}, -{"usage": "family", "gender": "unisex", "name": "Охара"}, -{"usage": "family", "gender": "unisex", "name": "Охеда"}, -{"usage": "family", "gender": "unisex", "name": "Очоа"}, -{"usage": "family", "gender": "unisex", "name": "О"}, -{"usage": "family", "gender": "unisex", "name": "Паган"}, -{"usage": "family", "gender": "unisex", "name": "Паджетт"}, -{"usage": "family", "gender": "unisex", "name": "Падилья"}, -{"usage": "family", "gender": "unisex", "name": "Пайк"}, -{"usage": "family", "gender": "unisex", "name": "Пайл"}, -{"usage": "family", "gender": "unisex", "name": "Пайпер"}, -{"usage": "family", "gender": "unisex", "name": "Пакетт"}, -{"usage": "family", "gender": "unisex", "name": "Пак"}, -{"usage": "family", "gender": "unisex", "name": "Паласиос"}, -{"usage": "family", "gender": "unisex", "name": "Палмер"}, -{"usage": "family", "gender": "unisex", "name": "Палумбо"}, -{"usage": "family", "gender": "unisex", "name": "Пальма"}, -{"usage": "family", "gender": "unisex", "name": "Паппас"}, -{"usage": "family", "gender": "unisex", "name": "Парди"}, -{"usage": "family", "gender": "unisex", "name": "Паредес"}, -{"usage": "family", "gender": "unisex", "name": "Паркер"}, -{"usage": "family", "gender": "unisex", "name": "Паркс"}, -{"usage": "family", "gender": "unisex", "name": "Парк"}, -{"usage": "family", "gender": "unisex", "name": "Парнелл"}, -{"usage": "family", "gender": "unisex", "name": "Парра"}, -{"usage": "family", "gender": "unisex", "name": "Парротт"}, -{"usage": "family", "gender": "unisex", "name": "Парр"}, -{"usage": "family", "gender": "unisex", "name": "Парсонс"}, -{"usage": "family", "gender": "unisex", "name": "Парсон"}, -{"usage": "family", "gender": "unisex", "name": "Пархам"}, -{"usage": "family", "gender": "unisex", "name": "Пас"}, -{"usage": "family", "gender": "unisex", "name": "Патель"}, -{"usage": "family", "gender": "unisex", "name": "Патиньо"}, -{"usage": "family", "gender": "unisex", "name": "Патнэм"}, -{"usage": "family", "gender": "unisex", "name": "Патрик"}, -{"usage": "family", "gender": "unisex", "name": "Паттен"}, -{"usage": "family", "gender": "unisex", "name": "Паттерсон"}, -{"usage": "family", "gender": "unisex", "name": "Паттон"}, -{"usage": "family", "gender": "unisex", "name": "Пауэлл"}, -{"usage": "family", "gender": "unisex", "name": "Пауэрс"}, -{"usage": "family", "gender": "unisex", "name": "Пауэр"}, -{"usage": "family", "gender": "unisex", "name": "Пачеко"}, -{"usage": "family", "gender": "unisex", "name": "Педерсен"}, -{"usage": "family", "gender": "unisex", "name": "Педерсон"}, -{"usage": "family", "gender": "unisex", "name": "Пейдж"}, -{"usage": "family", "gender": "unisex", "name": "Пейс"}, -{"usage": "family", "gender": "unisex", "name": "Пек"}, -{"usage": "family", "gender": "unisex", "name": "Пеллетье"}, -{"usage": "family", "gender": "unisex", "name": "Пена"}, -{"usage": "family", "gender": "unisex", "name": "Пендлтон"}, -{"usage": "family", "gender": "unisex", "name": "Пеннингтон"}, -{"usage": "family", "gender": "unisex", "name": "Пенни"}, -{"usage": "family", "gender": "unisex", "name": "Пенн"}, -{"usage": "family", "gender": "unisex", "name": "Пеппер"}, -{"usage": "family", "gender": "unisex", "name": "Пералез"}, -{"usage": "family", "gender": "unisex", "name": "Перальта"}, -{"usage": "family", "gender": "unisex", "name": "Первис"}, -{"usage": "family", "gender": "unisex", "name": "Пердью"}, -{"usage": "family", "gender": "unisex", "name": "Перейра"}, -{"usage": "family", "gender": "unisex", "name": "Перес"}, -{"usage": "family", "gender": "unisex", "name": "Перкинс"}, -{"usage": "family", "gender": "unisex", "name": "Перрин"}, -{"usage": "family", "gender": "unisex", "name": "Перри"}, -{"usage": "family", "gender": "unisex", "name": "Петерсен"}, -{"usage": "family", "gender": "unisex", "name": "Петерсон"}, -{"usage": "family", "gender": "unisex", "name": "Петтит"}, -{"usage": "family", "gender": "unisex", "name": "Петти"}, -{"usage": "family", "gender": "unisex", "name": "Пиз"}, -{"usage": "family", "gender": "unisex", "name": "Пикенс"}, -{"usage": "family", "gender": "unisex", "name": "Пикеринг"}, -{"usage": "family", "gender": "unisex", "name": "Пикетт"}, -{"usage": "family", "gender": "unisex", "name": "Пикок"}, -{"usage": "family", "gender": "unisex", "name": "Пиментель"}, -{"usage": "family", "gender": "unisex", "name": "Пина"}, -{"usage": "family", "gender": "unisex", "name": "Пинеда"}, -{"usage": "family", "gender": "unisex", "name": "Пинто"}, -{"usage": "family", "gender": "unisex", "name": "Пиплз"}, -{"usage": "family", "gender": "unisex", "name": "Пирсон"}, -{"usage": "family", "gender": "unisex", "name": "Пирс"}, -{"usage": "family", "gender": "unisex", "name": "Питерс"}, -{"usage": "family", "gender": "unisex", "name": "Питтман"}, -{"usage": "family", "gender": "unisex", "name": "Питтс"}, -{"usage": "family", "gender": "unisex", "name": "Пламмер"}, -{"usage": "family", "gender": "unisex", "name": "Платт"}, -{"usage": "family", "gender": "unisex", "name": "Пойндекстер"}, -{"usage": "family", "gender": "unisex", "name": "Поланко"}, -{"usage": "family", "gender": "unisex", "name": "Полк"}, -{"usage": "family", "gender": "unisex", "name": "Поллард"}, -{"usage": "family", "gender": "unisex", "name": "Поллок"}, -{"usage": "family", "gender": "unisex", "name": "Полсен"}, -{"usage": "family", "gender": "unisex", "name": "Полсон"}, -{"usage": "family", "gender": "unisex", "name": "Пол"}, -{"usage": "family", "gender": "unisex", "name": "Пондер"}, -{"usage": "family", "gender": "unisex", "name": "Понсе"}, -{"usage": "family", "gender": "unisex", "name": "Портер"}, -{"usage": "family", "gender": "unisex", "name": "Портильо"}, -{"usage": "family", "gender": "unisex", "name": "Пост"}, -{"usage": "family", "gender": "unisex", "name": "Поттер"}, -{"usage": "family", "gender": "unisex", "name": "Поттс"}, -{"usage": "family", "gender": "unisex", "name": "Поузи"}, -{"usage": "family", "gender": "unisex", "name": "Поуп"}, -{"usage": "family", "gender": "unisex", "name": "По"}, -{"usage": "family", "gender": "unisex", "name": "Прадо"}, -{"usage": "family", "gender": "unisex", "name": "Прайор"}, -{"usage": "family", "gender": "unisex", "name": "Прайс"}, -{"usage": "family", "gender": "unisex", "name": "Пратер"}, -{"usage": "family", "gender": "unisex", "name": "Прескотт"}, -{"usage": "family", "gender": "unisex", "name": "Пресли"}, -{"usage": "family", "gender": "unisex", "name": "Прессли"}, -{"usage": "family", "gender": "unisex", "name": "Престон"}, -{"usage": "family", "gender": "unisex", "name": "Прието"}, -{"usage": "family", "gender": "unisex", "name": "Прингл"}, -{"usage": "family", "gender": "unisex", "name": "Принц"}, -{"usage": "family", "gender": "unisex", "name": "Прист"}, -{"usage": "family", "gender": "unisex", "name": "Притчард"}, -{"usage": "family", "gender": "unisex", "name": "Притчетт"}, -{"usage": "family", "gender": "unisex", "name": "Проктор"}, -{"usage": "family", "gender": "unisex", "name": "Пруетт"}, -{"usage": "family", "gender": "unisex", "name": "Прэтт"}, -{"usage": "family", "gender": "unisex", "name": "Прюитт"}, -{"usage": "family", "gender": "unisex", "name": "Пулидо"}, -{"usage": "family", "gender": "unisex", "name": "Пул"}, -{"usage": "family", "gender": "unisex", "name": "Пуэнте"}, -{"usage": "family", "gender": "unisex", "name": "Пфайффер"}, -{"usage": "family", "gender": "unisex", "name": "Пьер"}, -{"usage": "family", "gender": "unisex", "name": "Пью"}, -{"usage": "family", "gender": "unisex", "name": "Пэйнтер"}, -{"usage": "family", "gender": "unisex", "name": "Пэйн"}, -{"usage": "family", "gender": "unisex", "name": "Пэйтон"}, -{"usage": "family", "gender": "unisex", "name": "Пэйт"}, -{"usage": "family", "gender": "unisex", "name": "Пэрис"}, -{"usage": "family", "gender": "unisex", "name": "Пэриш"}, -{"usage": "family", "gender": "unisex", "name": "Пэррис"}, -{"usage": "family", "gender": "unisex", "name": "Пэрриш"}, -{"usage": "family", "gender": "unisex", "name": "Пёрселл"}, -{"usage": "family", "gender": "unisex", "name": "Пёрсон"}, -{"usage": "family", "gender": "unisex", "name": "Радд"}, -{"usage": "family", "gender": "unisex", "name": "Райан"}, -{"usage": "family", "gender": "unisex", "name": "Райдер"}, -{"usage": "family", "gender": "unisex", "name": "Райли"}, -{"usage": "family", "gender": "unisex", "name": "Раймонд"}, -{"usage": "family", "gender": "unisex", "name": "Райнхарт"}, -{"usage": "family", "gender": "unisex", "name": "Райс"}, -{"usage": "family", "gender": "unisex", "name": "Райт"}, -{"usage": "family", "gender": "unisex", "name": "Рамирес"}, -{"usage": "family", "gender": "unisex", "name": "Рамос"}, -{"usage": "family", "gender": "unisex", "name": "Ранжел"}, -{"usage": "family", "gender": "unisex", "name": "Ранкин"}, -{"usage": "family", "gender": "unisex", "name": "Рапп"}, -{"usage": "family", "gender": "unisex", "name": "Расмуссен"}, -{"usage": "family", "gender": "unisex", "name": "Рассел"}, -{"usage": "family", "gender": "unisex", "name": "Расс"}, -{"usage": "family", "gender": "unisex", "name": "Ратлифф"}, -{"usage": "family", "gender": "unisex", "name": "Раус"}, -{"usage": "family", "gender": "unisex", "name": "Раффин"}, -{"usage": "family", "gender": "unisex", "name": "Рафф"}, -{"usage": "family", "gender": "unisex", "name": "Рашинг"}, -{"usage": "family", "gender": "unisex", "name": "Раш"}, -{"usage": "family", "gender": "unisex", "name": "Реддинг"}, -{"usage": "family", "gender": "unisex", "name": "Редд"}, -{"usage": "family", "gender": "unisex", "name": "Редман"}, -{"usage": "family", "gender": "unisex", "name": "Редмонд"}, -{"usage": "family", "gender": "unisex", "name": "Резерфорд"}, -{"usage": "family", "gender": "unisex", "name": "Рейган"}, -{"usage": "family", "gender": "unisex", "name": "Рейдер"}, -{"usage": "family", "gender": "unisex", "name": "Рейд"}, -{"usage": "family", "gender": "unisex", "name": "Рейес"}, -{"usage": "family", "gender": "unisex", "name": "Рейли"}, -{"usage": "family", "gender": "unisex", "name": "Рейна"}, -{"usage": "family", "gender": "unisex", "name": "Рейни"}, -{"usage": "family", "gender": "unisex", "name": "Рейнольдс"}, -{"usage": "family", "gender": "unisex", "name": "Рейносо"}, -{"usage": "family", "gender": "unisex", "name": "Рейнс"}, -{"usage": "family", "gender": "unisex", "name": "Рейнхардт"}, -{"usage": "family", "gender": "unisex", "name": "Рейс"}, -{"usage": "family", "gender": "unisex", "name": "Рейх"}, -{"usage": "family", "gender": "unisex", "name": "Рей"}, -{"usage": "family", "gender": "unisex", "name": "Ректор"}, -{"usage": "family", "gender": "unisex", "name": "Реми"}, -{"usage": "family", "gender": "unisex", "name": "Рендон"}, -{"usage": "family", "gender": "unisex", "name": "Реннер"}, -{"usage": "family", "gender": "unisex", "name": "Рентериа"}, -{"usage": "family", "gender": "unisex", "name": "Ривас"}, -{"usage": "family", "gender": "unisex", "name": "Ривера"}, -{"usage": "family", "gender": "unisex", "name": "Риверз"}, -{"usage": "family", "gender": "unisex", "name": "Ривз"}, -{"usage": "family", "gender": "unisex", "name": "Риган"}, -{"usage": "family", "gender": "unisex", "name": "Риггинс"}, -{"usage": "family", "gender": "unisex", "name": "Риггс"}, -{"usage": "family", "gender": "unisex", "name": "Риддл"}, -{"usage": "family", "gender": "unisex", "name": "Ридер"}, -{"usage": "family", "gender": "unisex", "name": "Риди"}, -{"usage": "family", "gender": "unisex", "name": "Ридли"}, -{"usage": "family", "gender": "unisex", "name": "Рид"}, -{"usage": "family", "gender": "unisex", "name": "Риз"}, -{"usage": "family", "gender": "unisex", "name": "Рикеттс"}, -{"usage": "family", "gender": "unisex", "name": "Рико"}, -{"usage": "family", "gender": "unisex", "name": "Рикс"}, -{"usage": "family", "gender": "unisex", "name": "Ринг"}, -{"usage": "family", "gender": "unisex", "name": "Ринкон"}, -{"usage": "family", "gender": "unisex", "name": "Риос"}, -{"usage": "family", "gender": "unisex", "name": "Рирдон"}, -{"usage": "family", "gender": "unisex", "name": "Рис"}, -{"usage": "family", "gender": "unisex", "name": "Риттер"}, -{"usage": "family", "gender": "unisex", "name": "Рихтер"}, -{"usage": "family", "gender": "unisex", "name": "Риццо"}, -{"usage": "family", "gender": "unisex", "name": "Ричардсон"}, -{"usage": "family", "gender": "unisex", "name": "Ричардс"}, -{"usage": "family", "gender": "unisex", "name": "Ричард"}, -{"usage": "family", "gender": "unisex", "name": "Ричи"}, -{"usage": "family", "gender": "unisex", "name": "Ричмонд"}, -{"usage": "family", "gender": "unisex", "name": "Риччи"}, -{"usage": "family", "gender": "unisex", "name": "Рич"}, -{"usage": "family", "gender": "unisex", "name": "Ри"}, -{"usage": "family", "gender": "unisex", "name": "Роббинс"}, -{"usage": "family", "gender": "unisex", "name": "Робб"}, -{"usage": "family", "gender": "unisex", "name": "Роберсон"}, -{"usage": "family", "gender": "unisex", "name": "Робертсон"}, -{"usage": "family", "gender": "unisex", "name": "Робертс"}, -{"usage": "family", "gender": "unisex", "name": "Роберт"}, -{"usage": "family", "gender": "unisex", "name": "Робинсон"}, -{"usage": "family", "gender": "unisex", "name": "Робледо"}, -{"usage": "family", "gender": "unisex", "name": "Роблес"}, -{"usage": "family", "gender": "unisex", "name": "Роджерс"}, -{"usage": "family", "gender": "unisex", "name": "Родригес"}, -{"usage": "family", "gender": "unisex", "name": "Роза"}, -{"usage": "family", "gender": "unisex", "name": "Розенберг"}, -{"usage": "family", "gender": "unisex", "name": "Розенталь"}, -{"usage": "family", "gender": "unisex", "name": "Розен"}, -{"usage": "family", "gender": "unisex", "name": "Ройал"}, -{"usage": "family", "gender": "unisex", "name": "Рой"}, -{"usage": "family", "gender": "unisex", "name": "Рокуэлл"}, -{"usage": "family", "gender": "unisex", "name": "Рок"}, -{"usage": "family", "gender": "unisex", "name": "Роланд"}, -{"usage": "family", "gender": "unisex", "name": "Роллинз"}, -{"usage": "family", "gender": "unisex", "name": "Ролстон"}, -{"usage": "family", "gender": "unisex", "name": "Ролс"}, -{"usage": "family", "gender": "unisex", "name": "Романо"}, -{"usage": "family", "gender": "unisex", "name": "Роман"}, -{"usage": "family", "gender": "unisex", "name": "Ромеро"}, -{"usage": "family", "gender": "unisex", "name": "Ромо"}, -{"usage": "family", "gender": "unisex", "name": "Рорк"}, -{"usage": "family", "gender": "unisex", "name": "Росадо"}, -{"usage": "family", "gender": "unisex", "name": "Росалес"}, -{"usage": "family", "gender": "unisex", "name": "Росарио"}, -{"usage": "family", "gender": "unisex", "name": "Росас"}, -{"usage": "family", "gender": "unisex", "name": "Росси"}, -{"usage": "family", "gender": "unisex", "name": "Росс"}, -{"usage": "family", "gender": "unisex", "name": "Рот"}, -{"usage": "family", "gender": "unisex", "name": "Роудз"}, -{"usage": "family", "gender": "unisex", "name": "Роудс"}, -{"usage": "family", "gender": "unisex", "name": "Роуз"}, -{"usage": "family", "gender": "unisex", "name": "Роули"}, -{"usage": "family", "gender": "unisex", "name": "Роупер"}, -{"usage": "family", "gender": "unisex", "name": "Роуч"}, -{"usage": "family", "gender": "unisex", "name": "Роуэлл"}, -{"usage": "family", "gender": "unisex", "name": "Роуэн"}, -{"usage": "family", "gender": "unisex", "name": "Роу"}, -{"usage": "family", "gender": "unisex", "name": "Рохас"}, -{"usage": "family", "gender": "unisex", "name": "Роча"}, -{"usage": "family", "gender": "unisex", "name": "Рош"}, -{"usage": "family", "gender": "unisex", "name": "Рубин"}, -{"usage": "family", "gender": "unisex", "name": "Рубио"}, -{"usage": "family", "gender": "unisex", "name": "Рудольф"}, -{"usage": "family", "gender": "unisex", "name": "Руис"}, -{"usage": "family", "gender": "unisex", "name": "Рукер"}, -{"usage": "family", "gender": "unisex", "name": "Руни"}, -{"usage": "family", "gender": "unisex", "name": "Руссо"}, -{"usage": "family", "gender": "unisex", "name": "Руст"}, -{"usage": "family", "gender": "unisex", "name": "Рутледж"}, -{"usage": "family", "gender": "unisex", "name": "Рут"}, -{"usage": "family", "gender": "unisex", "name": "Рэглэнд"}, -{"usage": "family", "gender": "unisex", "name": "Рэгсдэйл"}, -{"usage": "family", "gender": "unisex", "name": "Рэдфорд"}, -{"usage": "family", "gender": "unisex", "name": "Рэйнс"}, -{"usage": "family", "gender": "unisex", "name": "Рэй"}, -{"usage": "family", "gender": "unisex", "name": "Рэмси"}, -{"usage": "family", "gender": "unisex", "name": "Рэндалл"}, -{"usage": "family", "gender": "unisex", "name": "Рэндл"}, -{"usage": "family", "gender": "unisex", "name": "Рэндольф"}, -{"usage": "family", "gender": "unisex", "name": "Рэнсом"}, -{"usage": "family", "gender": "unisex", "name": "Рэпп"}, -{"usage": "family", "gender": "unisex", "name": "Сааведра"}, -{"usage": "family", "gender": "unisex", "name": "Саггс"}, -{"usage": "family", "gender": "unisex", "name": "Саенс"}, -{"usage": "family", "gender": "unisex", "name": "Сазерленд"}, -{"usage": "family", "gender": "unisex", "name": "Сайзмор"}, -{"usage": "family", "gender": "unisex", "name": "Сайкс"}, -{"usage": "family", "gender": "unisex", "name": "Саймон"}, -{"usage": "family", "gender": "unisex", "name": "Салазар"}, -{"usage": "family", "gender": "unisex", "name": "Салас"}, -{"usage": "family", "gender": "unisex", "name": "Салдана"}, -{"usage": "family", "gender": "unisex", "name": "Салинас"}, -{"usage": "family", "gender": "unisex", "name": "Салливан"}, -{"usage": "family", "gender": "unisex", "name": "Сальгадо"}, -{"usage": "family", "gender": "unisex", "name": "Сальдивар"}, -{"usage": "family", "gender": "unisex", "name": "Сальседо"}, -{"usage": "family", "gender": "unisex", "name": "Самбрано"}, -{"usage": "family", "gender": "unisex", "name": "Саммерс"}, -{"usage": "family", "gender": "unisex", "name": "Самнер"}, -{"usage": "family", "gender": "unisex", "name": "Сандерсон"}, -{"usage": "family", "gender": "unisex", "name": "Сандерс"}, -{"usage": "family", "gender": "unisex", "name": "Сандовал"}, -{"usage": "family", "gender": "unisex", "name": "Сантана"}, -{"usage": "family", "gender": "unisex", "name": "Сантос"}, -{"usage": "family", "gender": "unisex", "name": "Сантьяго"}, -{"usage": "family", "gender": "unisex", "name": "Санчес"}, -{"usage": "family", "gender": "unisex", "name": "Сан"}, -{"usage": "family", "gender": "unisex", "name": "Сапата"}, -{"usage": "family", "gender": "unisex", "name": "Сапп"}, -{"usage": "family", "gender": "unisex", "name": "Сарагоса"}, -{"usage": "family", "gender": "unisex", "name": "Сарате"}, -{"usage": "family", "gender": "unisex", "name": "Сарджент"}, -{"usage": "family", "gender": "unisex", "name": "Саттерфилд"}, -{"usage": "family", "gender": "unisex", "name": "Саттон"}, -{"usage": "family", "gender": "unisex", "name": "Сауседо"}, -{"usage": "family", "gender": "unisex", "name": "Свенсон"}, -{"usage": "family", "gender": "unisex", "name": "Свитзер"}, -{"usage": "family", "gender": "unisex", "name": "Свит"}, -{"usage": "family", "gender": "unisex", "name": "Свифт"}, -{"usage": "family", "gender": "unisex", "name": "Свон"}, -{"usage": "family", "gender": "unisex", "name": "Себальос"}, -{"usage": "family", "gender": "unisex", "name": "Сегура"}, -{"usage": "family", "gender": "unisex", "name": "Сейлор"}, -{"usage": "family", "gender": "unisex", "name": "Сеймур"}, -{"usage": "family", "gender": "unisex", "name": "Секстон"}, -{"usage": "family", "gender": "unisex", "name": "Селби"}, -{"usage": "family", "gender": "unisex", "name": "Селлерс"}, -{"usage": "family", "gender": "unisex", "name": "Селф"}, -{"usage": "family", "gender": "unisex", "name": "Сепеда"}, -{"usage": "family", "gender": "unisex", "name": "Сепульведа"}, -{"usage": "family", "gender": "unisex", "name": "Сервантес"}, -{"usage": "family", "gender": "unisex", "name": "Серда"}, -{"usage": "family", "gender": "unisex", "name": "Серна"}, -{"usage": "family", "gender": "unisex", "name": "Серрано"}, -{"usage": "family", "gender": "unisex", "name": "Сесил"}, -{"usage": "family", "gender": "unisex", "name": "Сеха"}, -{"usage": "family", "gender": "unisex", "name": "Сигел"}, -{"usage": "family", "gender": "unisex", "name": "Силс"}, -{"usage": "family", "gender": "unisex", "name": "Сильва"}, -{"usage": "family", "gender": "unisex", "name": "Сильверман"}, -{"usage": "family", "gender": "unisex", "name": "Сильвер"}, -{"usage": "family", "gender": "unisex", "name": "Сильвестер"}, -{"usage": "family", "gender": "unisex", "name": "Симан"}, -{"usage": "family", "gender": "unisex", "name": "Симмонс"}, -{"usage": "family", "gender": "unisex", "name": "Симмс"}, -{"usage": "family", "gender": "unisex", "name": "Симонс"}, -{"usage": "family", "gender": "unisex", "name": "Симпкинс"}, -{"usage": "family", "gender": "unisex", "name": "Симпсон"}, -{"usage": "family", "gender": "unisex", "name": "Симс"}, -{"usage": "family", "gender": "unisex", "name": "Сингер"}, -{"usage": "family", "gender": "unisex", "name": "Синглтари"}, -{"usage": "family", "gender": "unisex", "name": "Синглтон"}, -{"usage": "family", "gender": "unisex", "name": "Сингх"}, -{"usage": "family", "gender": "unisex", "name": "Синклер"}, -{"usage": "family", "gender": "unisex", "name": "Сирс"}, -{"usage": "family", "gender": "unisex", "name": "Сир"}, -{"usage": "family", "gender": "unisex", "name": "Сиск"}, -{"usage": "family", "gender": "unisex", "name": "Сиснерос"}, -{"usage": "family", "gender": "unisex", "name": "Сиссон"}, -{"usage": "family", "gender": "unisex", "name": "Сиэй"}, -{"usage": "family", "gender": "unisex", "name": "Скарборо"}, -{"usage": "family", "gender": "unisex", "name": "Сквайрс"}, -{"usage": "family", "gender": "unisex", "name": "Скейлс"}, -{"usage": "family", "gender": "unisex", "name": "Скелтон"}, -{"usage": "family", "gender": "unisex", "name": "Скиннер"}, -{"usage": "family", "gender": "unisex", "name": "Скотт"}, -{"usage": "family", "gender": "unisex", "name": "Скраггс"}, -{"usage": "family", "gender": "unisex", "name": "Скэггс"}, -{"usage": "family", "gender": "unisex", "name": "Скэнлон"}, -{"usage": "family", "gender": "unisex", "name": "Слоан"}, -{"usage": "family", "gender": "unisex", "name": "Слотер"}, -{"usage": "family", "gender": "unisex", "name": "Слоун"}, -{"usage": "family", "gender": "unisex", "name": "Слэйд"}, -{"usage": "family", "gender": "unisex", "name": "Слэйтер"}, -{"usage": "family", "gender": "unisex", "name": "Слэк"}, -{"usage": "family", "gender": "unisex", "name": "Смайли"}, -{"usage": "family", "gender": "unisex", "name": "Смарт"}, -{"usage": "family", "gender": "unisex", "name": "Смит"}, -{"usage": "family", "gender": "unisex", "name": "Смоллвуда"}, -{"usage": "family", "gender": "unisex", "name": "Смолли"}, -{"usage": "family", "gender": "unisex", "name": "Смолл"}, -{"usage": "family", "gender": "unisex", "name": "Снайдер"}, -{"usage": "family", "gender": "unisex", "name": "Снелл"}, -{"usage": "family", "gender": "unisex", "name": "Снид"}, -{"usage": "family", "gender": "unisex", "name": "Снодграсс"}, -{"usage": "family", "gender": "unisex", "name": "Сноу"}, -{"usage": "family", "gender": "unisex", "name": "Сойер"}, -{"usage": "family", "gender": "unisex", "name": "Солано"}, -{"usage": "family", "gender": "unisex", "name": "Солис"}, -{"usage": "family", "gender": "unisex", "name": "Соломон"}, -{"usage": "family", "gender": "unisex", "name": "Солсбери"}, -{"usage": "family", "gender": "unisex", "name": "Солтер"}, -{"usage": "family", "gender": "unisex", "name": "Соммер"}, -{"usage": "family", "gender": "unisex", "name": "Сонг"}, -{"usage": "family", "gender": "unisex", "name": "Сондерс"}, -{"usage": "family", "gender": "unisex", "name": "Соренсен"}, -{"usage": "family", "gender": "unisex", "name": "Соренсон"}, -{"usage": "family", "gender": "unisex", "name": "Сориано"}, -{"usage": "family", "gender": "unisex", "name": "Соса"}, -{"usage": "family", "gender": "unisex", "name": "Сотело"}, -{"usage": "family", "gender": "unisex", "name": "Сото"}, -{"usage": "family", "gender": "unisex", "name": "Соуза"}, -{"usage": "family", "gender": "unisex", "name": "Спайви"}, -{"usage": "family", "gender": "unisex", "name": "Спайсер"}, -{"usage": "family", "gender": "unisex", "name": "Спанн"}, -{"usage": "family", "gender": "unisex", "name": "Спаркс"}, -{"usage": "family", "gender": "unisex", "name": "Спенглер"}, -{"usage": "family", "gender": "unisex", "name": "Спенсер"}, -{"usage": "family", "gender": "unisex", "name": "Спенс"}, -{"usage": "family", "gender": "unisex", "name": "Сперлок"}, -{"usage": "family", "gender": "unisex", "name": "Спирс"}, -{"usage": "family", "gender": "unisex", "name": "Спир"}, -{"usage": "family", "gender": "unisex", "name": "Сполдинг"}, -{"usage": "family", "gender": "unisex", "name": "Спрингер"}, -{"usage": "family", "gender": "unisex", "name": "Спрэг"}, -{"usage": "family", "gender": "unisex", "name": "Спэйн"}, -{"usage": "family", "gender": "unisex", "name": "СтДжон"}, -{"usage": "family", "gender": "unisex", "name": "СтКлэр"}, -{"usage": "family", "gender": "unisex", "name": "Стаббс"}, -{"usage": "family", "gender": "unisex", "name": "Стайлз"}, -{"usage": "family", "gender": "unisex", "name": "Стаки"}, -{"usage": "family", "gender": "unisex", "name": "Стали"}, -{"usage": "family", "gender": "unisex", "name": "Сталлингс"}, -{"usage": "family", "gender": "unisex", "name": "Стампер"}, -{"usage": "family", "gender": "unisex", "name": "Стамп"}, -{"usage": "family", "gender": "unisex", "name": "Старки"}, -{"usage": "family", "gender": "unisex", "name": "Старкс"}, -{"usage": "family", "gender": "unisex", "name": "Старк"}, -{"usage": "family", "gender": "unisex", "name": "Старнс"}, -{"usage": "family", "gender": "unisex", "name": "Старр"}, -{"usage": "family", "gender": "unisex", "name": "Стаут"}, -{"usage": "family", "gender": "unisex", "name": "Стауффер"}, -{"usage": "family", "gender": "unisex", "name": "Стаффорд"}, -{"usage": "family", "gender": "unisex", "name": "Стейси"}, -{"usage": "family", "gender": "unisex", "name": "Стек"}, -{"usage": "family", "gender": "unisex", "name": "Стерлинг"}, -{"usage": "family", "gender": "unisex", "name": "Стернс"}, -{"usage": "family", "gender": "unisex", "name": "Стерн"}, -{"usage": "family", "gender": "unisex", "name": "Стивенсон"}, -{"usage": "family", "gender": "unisex", "name": "Стивенс"}, -{"usage": "family", "gender": "unisex", "name": "Стилл"}, -{"usage": "family", "gender": "unisex", "name": "Стил"}, -{"usage": "family", "gender": "unisex", "name": "Стинсон"}, -{"usage": "family", "gender": "unisex", "name": "Стин"}, -{"usage": "family", "gender": "unisex", "name": "Стовэлл"}, -{"usage": "family", "gender": "unisex", "name": "Стоддард"}, -{"usage": "family", "gender": "unisex", "name": "Стокс"}, -{"usage": "family", "gender": "unisex", "name": "Стоктон"}, -{"usage": "family", "gender": "unisex", "name": "Сток"}, -{"usage": "family", "gender": "unisex", "name": "Столл"}, -{"usage": "family", "gender": "unisex", "name": "Стори"}, -{"usage": "family", "gender": "unisex", "name": "Стоувер"}, -{"usage": "family", "gender": "unisex", "name": "Стоунер"}, -{"usage": "family", "gender": "unisex", "name": "Стоун"}, -{"usage": "family", "gender": "unisex", "name": "Страттон"}, -{"usage": "family", "gender": "unisex", "name": "Страуд"}, -{"usage": "family", "gender": "unisex", "name": "Стрикленд"}, -{"usage": "family", "gender": "unisex", "name": "Стрингер"}, -{"usage": "family", "gender": "unisex", "name": "Стритер"}, -{"usage": "family", "gender": "unisex", "name": "Стрит"}, -{"usage": "family", "gender": "unisex", "name": "Стронг"}, -{"usage": "family", "gender": "unisex", "name": "Стросс"}, -{"usage": "family", "gender": "unisex", "name": "Стрэндж"}, -{"usage": "family", "gender": "unisex", "name": "Стэйплс"}, -{"usage": "family", "gender": "unisex", "name": "Стэнли"}, -{"usage": "family", "gender": "unisex", "name": "Стэнтон"}, -{"usage": "family", "gender": "unisex", "name": "Стэнфилду"}, -{"usage": "family", "gender": "unisex", "name": "Стэнфорд"}, -{"usage": "family", "gender": "unisex", "name": "Стэплтон"}, -{"usage": "family", "gender": "unisex", "name": "Стэтон"}, -{"usage": "family", "gender": "unisex", "name": "Стюард"}, -{"usage": "family", "gender": "unisex", "name": "Стюарт"}, -{"usage": "family", "gender": "unisex", "name": "Суарес"}, -{"usage": "family", "gender": "unisex", "name": "Суини"}, -{"usage": "family", "gender": "unisex", "name": "Суонн"}, -{"usage": "family", "gender": "unisex", "name": "Суонсон"}, -{"usage": "family", "gender": "unisex", "name": "Суэйн"}, -{"usage": "family", "gender": "unisex", "name": "Сьерра"}, -{"usage": "family", "gender": "unisex", "name": "Сьюэлл"}, -{"usage": "family", "gender": "unisex", "name": "Сэвэдж"}, -{"usage": "family", "gender": "unisex", "name": "Сэдлер"}, -{"usage": "family", "gender": "unisex", "name": "Сэлмон"}, -{"usage": "family", "gender": "unisex", "name": "Сэмпл"}, -{"usage": "family", "gender": "unisex", "name": "Сэмпсон"}, -{"usage": "family", "gender": "unisex", "name": "Сэмс"}, -{"usage": "family", "gender": "unisex", "name": "Сэмюэлс"}, -{"usage": "family", "gender": "unisex", "name": "Сэмюэл"}, -{"usage": "family", "gender": "unisex", "name": "Сэндс"}, -{"usage": "family", "gender": "unisex", "name": "Сэнфорд"}, -{"usage": "family", "gender": "unisex", "name": "Сюй"}, -{"usage": "family", "gender": "unisex", "name": "Сюн"}, -{"usage": "family", "gender": "unisex", "name": "Таббс"}, -{"usage": "family", "gender": "unisex", "name": "Табор"}, -{"usage": "family", "gender": "unisex", "name": "Тайер"}, -{"usage": "family", "gender": "unisex", "name": "Тайлер"}, -{"usage": "family", "gender": "unisex", "name": "Тайсон"}, -{"usage": "family", "gender": "unisex", "name": "Такер"}, -{"usage": "family", "gender": "unisex", "name": "Такетт"}, -{"usage": "family", "gender": "unisex", "name": "Талберт"}, -{"usage": "family", "gender": "unisex", "name": "Талбот"}, -{"usage": "family", "gender": "unisex", "name": "Тамайо"}, -{"usage": "family", "gender": "unisex", "name": "Там"}, -{"usage": "family", "gender": "unisex", "name": "Тан"}, -{"usage": "family", "gender": "unisex", "name": "Тао"}, -{"usage": "family", "gender": "unisex", "name": "Тапиа"}, -{"usage": "family", "gender": "unisex", "name": "Тарп"}, -{"usage": "family", "gender": "unisex", "name": "Таттл"}, -{"usage": "family", "gender": "unisex", "name": "Татум"}, -{"usage": "family", "gender": "unisex", "name": "Таунсенд"}, -{"usage": "family", "gender": "unisex", "name": "Тейлор"}, -{"usage": "family", "gender": "unisex", "name": "Тейт"}, -{"usage": "family", "gender": "unisex", "name": "Тельес"}, -{"usage": "family", "gender": "unisex", "name": "Темплтон"}, -{"usage": "family", "gender": "unisex", "name": "Темпл"}, -{"usage": "family", "gender": "unisex", "name": "Терпин"}, -{"usage": "family", "gender": "unisex", "name": "Террелл"}, -{"usage": "family", "gender": "unisex", "name": "Терри"}, -{"usage": "family", "gender": "unisex", "name": "Терстон"}, -{"usage": "family", "gender": "unisex", "name": "Тибодо"}, -{"usage": "family", "gender": "unisex", "name": "Тиг"}, -{"usage": "family", "gender": "unisex", "name": "Тидвелл"}, -{"usage": "family", "gender": "unisex", "name": "Тилли"}, -{"usage": "family", "gender": "unisex", "name": "Тиллман"}, -{"usage": "family", "gender": "unisex", "name": "Тиммонс"}, -{"usage": "family", "gender": "unisex", "name": "Тинсли"}, -{"usage": "family", "gender": "unisex", "name": "Типтон"}, -{"usage": "family", "gender": "unisex", "name": "Тирни"}, -{"usage": "family", "gender": "unisex", "name": "Титус"}, -{"usage": "family", "gender": "unisex", "name": "Тобиас"}, -{"usage": "family", "gender": "unisex", "name": "Тобин"}, -{"usage": "family", "gender": "unisex", "name": "Товар"}, -{"usage": "family", "gender": "unisex", "name": "Тодд"}, -{"usage": "family", "gender": "unisex", "name": "Толедо"}, -{"usage": "family", "gender": "unisex", "name": "Толливер"}, -{"usage": "family", "gender": "unisex", "name": "Тольберт"}, -{"usage": "family", "gender": "unisex", "name": "Томасон"}, -{"usage": "family", "gender": "unisex", "name": "Томас"}, -{"usage": "family", "gender": "unisex", "name": "Томлинсон"}, -{"usage": "family", "gender": "unisex", "name": "Томлин"}, -{"usage": "family", "gender": "unisex", "name": "Томпкинс"}, -{"usage": "family", "gender": "unisex", "name": "Томпсон"}, -{"usage": "family", "gender": "unisex", "name": "Томсон"}, -{"usage": "family", "gender": "unisex", "name": "Тони"}, -{"usage": "family", "gender": "unisex", "name": "Торнтон"}, -{"usage": "family", "gender": "unisex", "name": "Торн"}, -{"usage": "family", "gender": "unisex", "name": "Торп"}, -{"usage": "family", "gender": "unisex", "name": "Торрез"}, -{"usage": "family", "gender": "unisex", "name": "Торрес"}, -{"usage": "family", "gender": "unisex", "name": "Тот"}, -{"usage": "family", "gender": "unisex", "name": "Тран"}, -{"usage": "family", "gender": "unisex", "name": "Трахан"}, -{"usage": "family", "gender": "unisex", "name": "Тревино"}, -{"usage": "family", "gender": "unisex", "name": "Трейлор"}, -{"usage": "family", "gender": "unisex", "name": "Трейси"}, -{"usage": "family", "gender": "unisex", "name": "Трент"}, -{"usage": "family", "gender": "unisex", "name": "Трехо"}, -{"usage": "family", "gender": "unisex", "name": "Тримбл"}, -{"usage": "family", "gender": "unisex", "name": "Трин"}, -{"usage": "family", "gender": "unisex", "name": "Триплетт"}, -{"usage": "family", "gender": "unisex", "name": "Трипп"}, -{"usage": "family", "gender": "unisex", "name": "Тройер"}, -{"usage": "family", "gender": "unisex", "name": "Троттер"}, -{"usage": "family", "gender": "unisex", "name": "Троут"}, -{"usage": "family", "gender": "unisex", "name": "Трутмен"}, -{"usage": "family", "gender": "unisex", "name": "Трухильо"}, -{"usage": "family", "gender": "unisex", "name": "Трэвис"}, -{"usage": "family", "gender": "unisex", "name": "Трэммелл"}, -{"usage": "family", "gender": "unisex", "name": "Трэшер"}, -{"usage": "family", "gender": "unisex", "name": "Турман"}, -{"usage": "family", "gender": "unisex", "name": "Тэлли"}, -{"usage": "family", "gender": "unisex", "name": "Тэнг"}, -{"usage": "family", "gender": "unisex", "name": "Тэннер"}, -{"usage": "family", "gender": "unisex", "name": "Тёрнер"}, -{"usage": "family", "gender": "unisex", "name": "Уайатт"}, -{"usage": "family", "gender": "unisex", "name": "Уайзман"}, -{"usage": "family", "gender": "unisex", "name": "Уайз"}, -{"usage": "family", "gender": "unisex", "name": "Уайлдер"}, -{"usage": "family", "gender": "unisex", "name": "Уайлз"}, -{"usage": "family", "gender": "unisex", "name": "Уайли"}, -{"usage": "family", "gender": "unisex", "name": "Уайтинг"}, -{"usage": "family", "gender": "unisex", "name": "Уайтхед"}, -{"usage": "family", "gender": "unisex", "name": "Уайт"}, -{"usage": "family", "gender": "unisex", "name": "Уеллетт"}, -{"usage": "family", "gender": "unisex", "name": "Уивер"}, -{"usage": "family", "gender": "unisex", "name": "Уиггинс"}, -{"usage": "family", "gender": "unisex", "name": "Уизерспун"}, -{"usage": "family", "gender": "unisex", "name": "Уилан"}, -{"usage": "family", "gender": "unisex", "name": "Уилберн"}, -{"usage": "family", "gender": "unisex", "name": "Уилер"}, -{"usage": "family", "gender": "unisex", "name": "Уилкинсон"}, -{"usage": "family", "gender": "unisex", "name": "Уилкинс"}, -{"usage": "family", "gender": "unisex", "name": "Уилкокс"}, -{"usage": "family", "gender": "unisex", "name": "Уилкс"}, -{"usage": "family", "gender": "unisex", "name": "Уиллард"}, -{"usage": "family", "gender": "unisex", "name": "Уиллетт"}, -{"usage": "family", "gender": "unisex", "name": "Уиллис"}, -{"usage": "family", "gender": "unisex", "name": "Уилли"}, -{"usage": "family", "gender": "unisex", "name": "Уиллоуби"}, -{"usage": "family", "gender": "unisex", "name": "Уиллс"}, -{"usage": "family", "gender": "unisex", "name": "Уилл"}, -{"usage": "family", "gender": "unisex", "name": "Уилсон"}, -{"usage": "family", "gender": "unisex", "name": "Уильямсон"}, -{"usage": "family", "gender": "unisex", "name": "Уильямс"}, -{"usage": "family", "gender": "unisex", "name": "Уильям"}, -{"usage": "family", "gender": "unisex", "name": "Уинг"}, -{"usage": "family", "gender": "unisex", "name": "Уинслоу"}, -{"usage": "family", "gender": "unisex", "name": "Уинстон"}, -{"usage": "family", "gender": "unisex", "name": "Уинтерс"}, -{"usage": "family", "gender": "unisex", "name": "Уиппл"}, -{"usage": "family", "gender": "unisex", "name": "Уитакер"}, -{"usage": "family", "gender": "unisex", "name": "Уитингтон"}, -{"usage": "family", "gender": "unisex", "name": "Уитли"}, -{"usage": "family", "gender": "unisex", "name": "Уитлок"}, -{"usage": "family", "gender": "unisex", "name": "Уитмен"}, -{"usage": "family", "gender": "unisex", "name": "Уитмор"}, -{"usage": "family", "gender": "unisex", "name": "Уитни"}, -{"usage": "family", "gender": "unisex", "name": "Уиттакер"}, -{"usage": "family", "gender": "unisex", "name": "Уитт"}, -{"usage": "family", "gender": "unisex", "name": "Уитфилд"}, -{"usage": "family", "gender": "unisex", "name": "Ульрих"}, -{"usage": "family", "gender": "unisex", "name": "Унгер"}, -{"usage": "family", "gender": "unisex", "name": "Уодделл"}, -{"usage": "family", "gender": "unisex", "name": "Уокер"}, -{"usage": "family", "gender": "unisex", "name": "Уолден"}, -{"usage": "family", "gender": "unisex", "name": "Уолдрон"}, -{"usage": "family", "gender": "unisex", "name": "Уоллер"}, -{"usage": "family", "gender": "unisex", "name": "Уоллес"}, -{"usage": "family", "gender": "unisex", "name": "Уоллис"}, -{"usage": "family", "gender": "unisex", "name": "Уоллс"}, -{"usage": "family", "gender": "unisex", "name": "Уолл"}, -{"usage": "family", "gender": "unisex", "name": "Уолтерс"}, -{"usage": "family", "gender": "unisex", "name": "Уолтер"}, -{"usage": "family", "gender": "unisex", "name": "Уолтон"}, -{"usage": "family", "gender": "unisex", "name": "Уолш"}, -{"usage": "family", "gender": "unisex", "name": "Уомакк"}, -{"usage": "family", "gender": "unisex", "name": "Уорд"}, -{"usage": "family", "gender": "unisex", "name": "Уоркмэн"}, -{"usage": "family", "gender": "unisex", "name": "Уорли"}, -{"usage": "family", "gender": "unisex", "name": "Уорнер"}, -{"usage": "family", "gender": "unisex", "name": "Уоррен"}, -{"usage": "family", "gender": "unisex", "name": "Уортингтон"}, -{"usage": "family", "gender": "unisex", "name": "Уортон"}, -{"usage": "family", "gender": "unisex", "name": "Уотерс"}, -{"usage": "family", "gender": "unisex", "name": "Уоткинс"}, -{"usage": "family", "gender": "unisex", "name": "Уотсон"}, -{"usage": "family", "gender": "unisex", "name": "Уоттерс"}, -{"usage": "family", "gender": "unisex", "name": "Уоттс"}, -{"usage": "family", "gender": "unisex", "name": "Уотт"}, -{"usage": "family", "gender": "unisex", "name": "Уошберн"}, -{"usage": "family", "gender": "unisex", "name": "Урбан"}, -{"usage": "family", "gender": "unisex", "name": "Урибе"}, -{"usage": "family", "gender": "unisex", "name": "Уртадо"}, -{"usage": "family", "gender": "unisex", "name": "Уэббер"}, -{"usage": "family", "gender": "unisex", "name": "Уэбб"}, -{"usage": "family", "gender": "unisex", "name": "Уэзерс"}, -{"usage": "family", "gender": "unisex", "name": "Уэйд"}, -{"usage": "family", "gender": "unisex", "name": "Уэйкфилд"}, -{"usage": "family", "gender": "unisex", "name": "Уэйли"}, -{"usage": "family", "gender": "unisex", "name": "Уэйр"}, -{"usage": "family", "gender": "unisex", "name": "Уэйт"}, -{"usage": "family", "gender": "unisex", "name": "Уэй"}, -{"usage": "family", "gender": "unisex", "name": "Уэлдон"}, -{"usage": "family", "gender": "unisex", "name": "Уэлен"}, -{"usage": "family", "gender": "unisex", "name": "Уэллс"}, -{"usage": "family", "gender": "unisex", "name": "Уэлш"}, -{"usage": "family", "gender": "unisex", "name": "Уэрта"}, -{"usage": "family", "gender": "unisex", "name": "Уэр"}, -{"usage": "family", "gender": "unisex", "name": "Уэсли"}, -{"usage": "family", "gender": "unisex", "name": "Уэстбрук"}, -{"usage": "family", "gender": "unisex", "name": "Уэстон"}, -{"usage": "family", "gender": "unisex", "name": "Уэстфолл"}, -{"usage": "family", "gender": "unisex", "name": "Уэст"}, -{"usage": "family", "gender": "unisex", "name": "Фаган"}, -{"usage": "family", "gender": "unisex", "name": "Файн"}, -{"usage": "family", "gender": "unisex", "name": "Фалькон"}, -{"usage": "family", "gender": "unisex", "name": "Фальк"}, -{"usage": "family", "gender": "unisex", "name": "Фам"}, -{"usage": "family", "gender": "unisex", "name": "Фанк"}, -{"usage": "family", "gender": "unisex", "name": "Фан"}, -{"usage": "family", "gender": "unisex", "name": "Фариас"}, -{"usage": "family", "gender": "unisex", "name": "Фарли"}, -{"usage": "family", "gender": "unisex", "name": "Фарнсворт"}, -{"usage": "family", "gender": "unisex", "name": "Фаррар"}, -{"usage": "family", "gender": "unisex", "name": "Фаррелл"}, -{"usage": "family", "gender": "unisex", "name": "Фарр"}, -{"usage": "family", "gender": "unisex", "name": "Фаулер"}, -{"usage": "family", "gender": "unisex", "name": "Фаунтин"}, -{"usage": "family", "gender": "unisex", "name": "Фауст"}, -{"usage": "family", "gender": "unisex", "name": "Феликс"}, -{"usage": "family", "gender": "unisex", "name": "Фелисиано"}, -{"usage": "family", "gender": "unisex", "name": "Фелпс"}, -{"usage": "family", "gender": "unisex", "name": "Фелтон"}, -{"usage": "family", "gender": "unisex", "name": "Фельдер"}, -{"usage": "family", "gender": "unisex", "name": "Фельдман"}, -{"usage": "family", "gender": "unisex", "name": "Фентон"}, -{"usage": "family", "gender": "unisex", "name": "Фергюсон"}, -{"usage": "family", "gender": "unisex", "name": "Фермер"}, -{"usage": "family", "gender": "unisex", "name": "Фернандес"}, -{"usage": "family", "gender": "unisex", "name": "Феррара"}, -{"usage": "family", "gender": "unisex", "name": "Ферраро"}, -{"usage": "family", "gender": "unisex", "name": "Феррейра"}, -{"usage": "family", "gender": "unisex", "name": "Феррелл"}, -{"usage": "family", "gender": "unisex", "name": "Феррер"}, -{"usage": "family", "gender": "unisex", "name": "Феррис"}, -{"usage": "family", "gender": "unisex", "name": "Ферри"}, -{"usage": "family", "gender": "unisex", "name": "Фигероа"}, -{"usage": "family", "gender": "unisex", "name": "Фиерро"}, -{"usage": "family", "gender": "unisex", "name": "Филдс"}, -{"usage": "family", "gender": "unisex", "name": "Филд"}, -{"usage": "family", "gender": "unisex", "name": "Филлипс"}, -{"usage": "family", "gender": "unisex", "name": "Финк"}, -{"usage": "family", "gender": "unisex", "name": "Финли"}, -{"usage": "family", "gender": "unisex", "name": "Финни"}, -{"usage": "family", "gender": "unisex", "name": "Финн"}, -{"usage": "family", "gender": "unisex", "name": "Финч"}, -{"usage": "family", "gender": "unisex", "name": "Фиппс"}, -{"usage": "family", "gender": "unisex", "name": "Фитч"}, -{"usage": "family", "gender": "unisex", "name": "Фицджеральд"}, -{"usage": "family", "gender": "unisex", "name": "Фицпатрик"}, -{"usage": "family", "gender": "unisex", "name": "Фишер"}, -{"usage": "family", "gender": "unisex", "name": "Фиш"}, -{"usage": "family", "gender": "unisex", "name": "Фламандец"}, -{"usage": "family", "gender": "unisex", "name": "Фланаган"}, -{"usage": "family", "gender": "unisex", "name": "Флауэрс"}, -{"usage": "family", "gender": "unisex", "name": "Флаэрти"}, -{"usage": "family", "gender": "unisex", "name": "Флетчер"}, -{"usage": "family", "gender": "unisex", "name": "Флинн"}, -{"usage": "family", "gender": "unisex", "name": "Флинт"}, -{"usage": "family", "gender": "unisex", "name": "Флойд"}, -{"usage": "family", "gender": "unisex", "name": "Флорес"}, -{"usage": "family", "gender": "unisex", "name": "Флуд"}, -{"usage": "family", "gender": "unisex", "name": "Фогель"}, -{"usage": "family", "gender": "unisex", "name": "Фогт"}, -{"usage": "family", "gender": "unisex", "name": "Фокс"}, -{"usage": "family", "gender": "unisex", "name": "Фолей"}, -{"usage": "family", "gender": "unisex", "name": "Фолкнер"}, -{"usage": "family", "gender": "unisex", "name": "Фолк"}, -{"usage": "family", "gender": "unisex", "name": "Фонг"}, -{"usage": "family", "gender": "unisex", "name": "Фонсека"}, -{"usage": "family", "gender": "unisex", "name": "Фонтейн"}, -{"usage": "family", "gender": "unisex", "name": "Фонтенот"}, -{"usage": "family", "gender": "unisex", "name": "Форбс"}, -{"usage": "family", "gender": "unisex", "name": "Форд"}, -{"usage": "family", "gender": "unisex", "name": "Форман"}, -{"usage": "family", "gender": "unisex", "name": "Формен"}, -{"usage": "family", "gender": "unisex", "name": "Форрестер"}, -{"usage": "family", "gender": "unisex", "name": "Форрест"}, -{"usage": "family", "gender": "unisex", "name": "Форсайт"}, -{"usage": "family", "gender": "unisex", "name": "Форте"}, -{"usage": "family", "gender": "unisex", "name": "Фортнер"}, -{"usage": "family", "gender": "unisex", "name": "Фосс"}, -{"usage": "family", "gender": "unisex", "name": "Фостер"}, -{"usage": "family", "gender": "unisex", "name": "Фрай"}, -{"usage": "family", "gender": "unisex", "name": "Франки"}, -{"usage": "family", "gender": "unisex", "name": "Франклин"}, -{"usage": "family", "gender": "unisex", "name": "Франко"}, -{"usage": "family", "gender": "unisex", "name": "Франс"}, -{"usage": "family", "gender": "unisex", "name": "Франциско"}, -{"usage": "family", "gender": "unisex", "name": "Франц"}, -{"usage": "family", "gender": "unisex", "name": "Фредерик"}, -{"usage": "family", "gender": "unisex", "name": "Фрейзер"}, -{"usage": "family", "gender": "unisex", "name": "Фрей"}, -{"usage": "family", "gender": "unisex", "name": "Френд"}, -{"usage": "family", "gender": "unisex", "name": "Френч"}, -{"usage": "family", "gender": "unisex", "name": "Фриас"}, -{"usage": "family", "gender": "unisex", "name": "Фридман"}, -{"usage": "family", "gender": "unisex", "name": "Фриман"}, -{"usage": "family", "gender": "unisex", "name": "Фриц"}, -{"usage": "family", "gender": "unisex", "name": "Фрост"}, -{"usage": "family", "gender": "unisex", "name": "Фрэли"}, -{"usage": "family", "gender": "unisex", "name": "Фрэнк"}, -{"usage": "family", "gender": "unisex", "name": "Фрэнсис"}, -{"usage": "family", "gender": "unisex", "name": "Фуа"}, -{"usage": "family", "gender": "unisex", "name": "Фукс"}, -{"usage": "family", "gender": "unisex", "name": "Фуллер"}, -{"usage": "family", "gender": "unisex", "name": "Фултон"}, -{"usage": "family", "gender": "unisex", "name": "Фурнье"}, -{"usage": "family", "gender": "unisex", "name": "Фут"}, -{"usage": "family", "gender": "unisex", "name": "Фуэнтес"}, -{"usage": "family", "gender": "unisex", "name": "Фэйрчайлд"}, -{"usage": "family", "gender": "unisex", "name": "Фэйр"}, -{"usage": "family", "gender": "unisex", "name": "Фэй"}, -{"usage": "family", "gender": "unisex", "name": "Фэллон"}, -{"usage": "family", "gender": "unisex", "name": "Фэррис"}, -{"usage": "family", "gender": "unisex", "name": "Хаас"}, -{"usage": "family", "gender": "unisex", "name": "Хаббард"}, -{"usage": "family", "gender": "unisex", "name": "Хаган"}, -{"usage": "family", "gender": "unisex", "name": "Хаггинс"}, -{"usage": "family", "gender": "unisex", "name": "Хаген"}, -{"usage": "family", "gender": "unisex", "name": "Хагер"}, -{"usage": "family", "gender": "unisex", "name": "Хаддлстон"}, -{"usage": "family", "gender": "unisex", "name": "Хаджинс"}, -{"usage": "family", "gender": "unisex", "name": "Хайатт"}, -{"usage": "family", "gender": "unisex", "name": "Хайден"}, -{"usage": "family", "gender": "unisex", "name": "Хайд"}, -{"usage": "family", "gender": "unisex", "name": "Хайман"}, -{"usage": "family", "gender": "unisex", "name": "Хайнс"}, -{"usage": "family", "gender": "unisex", "name": "Хайн"}, -{"usage": "family", "gender": "unisex", "name": "Хайтауэр"}, -{"usage": "family", "gender": "unisex", "name": "Хайт"}, -{"usage": "family", "gender": "unisex", "name": "Хай"}, -{"usage": "family", "gender": "unisex", "name": "Хакер"}, -{"usage": "family", "gender": "unisex", "name": "Халверсон"}, -{"usage": "family", "gender": "unisex", "name": "Халл"}, -{"usage": "family", "gender": "unisex", "name": "Хаммер"}, -{"usage": "family", "gender": "unisex", "name": "Хаммонд"}, -{"usage": "family", "gender": "unisex", "name": "Хамм"}, -{"usage": "family", "gender": "unisex", "name": "Хамфрис"}, -{"usage": "family", "gender": "unisex", "name": "Хамфри"}, -{"usage": "family", "gender": "unisex", "name": "Ханикатт"}, -{"usage": "family", "gender": "unisex", "name": "Ханна"}, -{"usage": "family", "gender": "unisex", "name": "Хансен"}, -{"usage": "family", "gender": "unisex", "name": "Хантер"}, -{"usage": "family", "gender": "unisex", "name": "Хантли"}, -{"usage": "family", "gender": "unisex", "name": "Хант"}, -{"usage": "family", "gender": "unisex", "name": "Хан"}, -{"usage": "family", "gender": "unisex", "name": "Харамильо"}, -{"usage": "family", "gender": "unisex", "name": "Харви"}, -{"usage": "family", "gender": "unisex", "name": "Харвуд"}, -{"usage": "family", "gender": "unisex", "name": "Харгрув"}, -{"usage": "family", "gender": "unisex", "name": "Харден"}, -{"usage": "family", "gender": "unisex", "name": "Хардинг"}, -{"usage": "family", "gender": "unisex", "name": "Хардин"}, -{"usage": "family", "gender": "unisex", "name": "Харди"}, -{"usage": "family", "gender": "unisex", "name": "Харкинс"}, -{"usage": "family", "gender": "unisex", "name": "Харли"}, -{"usage": "family", "gender": "unisex", "name": "Харлоу"}, -{"usage": "family", "gender": "unisex", "name": "Харман"}, -{"usage": "family", "gender": "unisex", "name": "Хармон"}, -{"usage": "family", "gender": "unisex", "name": "Хармс"}, -{"usage": "family", "gender": "unisex", "name": "Харпер"}, -{"usage": "family", "gender": "unisex", "name": "Харп"}, -{"usage": "family", "gender": "unisex", "name": "Харрелл"}, -{"usage": "family", "gender": "unisex", "name": "Харрингтон"}, -{"usage": "family", "gender": "unisex", "name": "Харрисон"}, -{"usage": "family", "gender": "unisex", "name": "Харрис"}, -{"usage": "family", "gender": "unisex", "name": "Хартли"}, -{"usage": "family", "gender": "unisex", "name": "Хартман"}, -{"usage": "family", "gender": "unisex", "name": "Харт"}, -{"usage": "family", "gender": "unisex", "name": "Хасан"}, -{"usage": "family", "gender": "unisex", "name": "Хаскинс"}, -{"usage": "family", "gender": "unisex", "name": "Хаттон"}, -{"usage": "family", "gender": "unisex", "name": "Хатчинсон"}, -{"usage": "family", "gender": "unisex", "name": "Хатчинс"}, -{"usage": "family", "gender": "unisex", "name": "Хатчисон"}, -{"usage": "family", "gender": "unisex", "name": "Хаузер"}, -{"usage": "family", "gender": "unisex", "name": "Хаус"}, -{"usage": "family", "gender": "unisex", "name": "Хауэлл"}, -{"usage": "family", "gender": "unisex", "name": "Хаффман"}, -{"usage": "family", "gender": "unisex", "name": "Хафф"}, -{"usage": "family", "gender": "unisex", "name": "Хаф"}, -{"usage": "family", "gender": "unisex", "name": "Ха"}, -{"usage": "family", "gender": "unisex", "name": "Хван"}, -{"usage": "family", "gender": "unisex", "name": "Хевенс"}, -{"usage": "family", "gender": "unisex", "name": "Хедрик"}, -{"usage": "family", "gender": "unisex", "name": "Хейворд"}, -{"usage": "family", "gender": "unisex", "name": "Хейвуд"}, -{"usage": "family", "gender": "unisex", "name": "Хейли"}, -{"usage": "family", "gender": "unisex", "name": "Хейл"}, -{"usage": "family", "gender": "unisex", "name": "Хейни"}, -{"usage": "family", "gender": "unisex", "name": "Хейнс"}, -{"usage": "family", "gender": "unisex", "name": "Хейрстон"}, -{"usage": "family", "gender": "unisex", "name": "Хейс"}, -{"usage": "family", "gender": "unisex", "name": "Хек"}, -{"usage": "family", "gender": "unisex", "name": "Хелмс"}, -{"usage": "family", "gender": "unisex", "name": "Хелм"}, -{"usage": "family", "gender": "unisex", "name": "Хемфилл"}, -{"usage": "family", "gender": "unisex", "name": "Хендерсон"}, -{"usage": "family", "gender": "unisex", "name": "Хендриксон"}, -{"usage": "family", "gender": "unisex", "name": "Хендрикс"}, -{"usage": "family", "gender": "unisex", "name": "Хенкинс"}, -{"usage": "family", "gender": "unisex", "name": "Хенли"}, -{"usage": "family", "gender": "unisex", "name": "Хеннинг"}, -{"usage": "family", "gender": "unisex", "name": "Хенсли"}, -{"usage": "family", "gender": "unisex", "name": "Хенсон"}, -{"usage": "family", "gender": "unisex", "name": "Херндон"}, -{"usage": "family", "gender": "unisex", "name": "Херн"}, -{"usage": "family", "gender": "unisex", "name": "Херрингтон"}, -{"usage": "family", "gender": "unisex", "name": "Херринг"}, -{"usage": "family", "gender": "unisex", "name": "Херрманн"}, -{"usage": "family", "gender": "unisex", "name": "Хиггинботам"}, -{"usage": "family", "gender": "unisex", "name": "Хиггинс"}, -{"usage": "family", "gender": "unisex", "name": "Хикки"}, -{"usage": "family", "gender": "unisex", "name": "Хикман"}, -{"usage": "family", "gender": "unisex", "name": "Хикс"}, -{"usage": "family", "gender": "unisex", "name": "Хили"}, -{"usage": "family", "gender": "unisex", "name": "Хиллиард"}, -{"usage": "family", "gender": "unisex", "name": "Хиллман"}, -{"usage": "family", "gender": "unisex", "name": "Хиллс"}, -{"usage": "family", "gender": "unisex", "name": "Хилл"}, -{"usage": "family", "gender": "unisex", "name": "Хилтон"}, -{"usage": "family", "gender": "unisex", "name": "Хильдебранд"}, -{"usage": "family", "gender": "unisex", "name": "Хименес"}, -{"usage": "family", "gender": "unisex", "name": "Хиндс"}, -{"usage": "family", "gender": "unisex", "name": "Хинкл"}, -{"usage": "family", "gender": "unisex", "name": "Хинсон"}, -{"usage": "family", "gender": "unisex", "name": "Хинтон"}, -{"usage": "family", "gender": "unisex", "name": "Хирш"}, -{"usage": "family", "gender": "unisex", "name": "Хитон"}, -{"usage": "family", "gender": "unisex", "name": "Хит"}, -{"usage": "family", "gender": "unisex", "name": "Хичкок"}, -{"usage": "family", "gender": "unisex", "name": "Хоанг"}, -{"usage": "family", "gender": "unisex", "name": "Хоббс"}, -{"usage": "family", "gender": "unisex", "name": "Хобсон"}, -{"usage": "family", "gender": "unisex", "name": "Ховард"}, -{"usage": "family", "gender": "unisex", "name": "Хоган"}, -{"usage": "family", "gender": "unisex", "name": "Хог"}, -{"usage": "family", "gender": "unisex", "name": "Ходжес"}, -{"usage": "family", "gender": "unisex", "name": "Ходж"}, -{"usage": "family", "gender": "unisex", "name": "Хойт"}, -{"usage": "family", "gender": "unisex", "name": "Хокинс"}, -{"usage": "family", "gender": "unisex", "name": "Холбрук"}, -{"usage": "family", "gender": "unisex", "name": "Холгин"}, -{"usage": "family", "gender": "unisex", "name": "Холден"}, -{"usage": "family", "gender": "unisex", "name": "Холдер"}, -{"usage": "family", "gender": "unisex", "name": "Холи"}, -{"usage": "family", "gender": "unisex", "name": "Холкомб"}, -{"usage": "family", "gender": "unisex", "name": "Холланд"}, -{"usage": "family", "gender": "unisex", "name": "Холлидей"}, -{"usage": "family", "gender": "unisex", "name": "Холлингсворт"}, -{"usage": "family", "gender": "unisex", "name": "Холлис"}, -{"usage": "family", "gender": "unisex", "name": "Холли"}, -{"usage": "family", "gender": "unisex", "name": "Холлоуэй"}, -{"usage": "family", "gender": "unisex", "name": "Холл"}, -{"usage": "family", "gender": "unisex", "name": "Холман"}, -{"usage": "family", "gender": "unisex", "name": "Холмс"}, -{"usage": "family", "gender": "unisex", "name": "Холм"}, -{"usage": "family", "gender": "unisex", "name": "Холтон"}, -{"usage": "family", "gender": "unisex", "name": "Холт"}, -{"usage": "family", "gender": "unisex", "name": "Хонг"}, -{"usage": "family", "gender": "unisex", "name": "Хопкинс"}, -{"usage": "family", "gender": "unisex", "name": "Хоппер"}, -{"usage": "family", "gender": "unisex", "name": "Хопсон"}, -{"usage": "family", "gender": "unisex", "name": "Хорват"}, -{"usage": "family", "gender": "unisex", "name": "Хорнер"}, -{"usage": "family", "gender": "unisex", "name": "Хорн"}, -{"usage": "family", "gender": "unisex", "name": "Хортон"}, -{"usage": "family", "gender": "unisex", "name": "Хоскинс"}, -{"usage": "family", "gender": "unisex", "name": "Хостетлер"}, -{"usage": "family", "gender": "unisex", "name": "Хоторн"}, -{"usage": "family", "gender": "unisex", "name": "Хоук"}, -{"usage": "family", "gender": "unisex", "name": "Хоуп"}, -{"usage": "family", "gender": "unisex", "name": "Хоу"}, -{"usage": "family", "gender": "unisex", "name": "Хоффманн"}, -{"usage": "family", "gender": "unisex", "name": "Хоффман"}, -{"usage": "family", "gender": "unisex", "name": "Хофф"}, -{"usage": "family", "gender": "unisex", "name": "Хо"}, -{"usage": "family", "gender": "unisex", "name": "Хсу"}, -{"usage": "family", "gender": "unisex", "name": "Хуан"}, -{"usage": "family", "gender": "unisex", "name": "Хуарес"}, -{"usage": "family", "gender": "unisex", "name": "Хубер"}, -{"usage": "family", "gender": "unisex", "name": "Хувер"}, -{"usage": "family", "gender": "unisex", "name": "Худ"}, -{"usage": "family", "gender": "unisex", "name": "Хукер"}, -{"usage": "family", "gender": "unisex", "name": "Хукс"}, -{"usage": "family", "gender": "unisex", "name": "Хук"}, -{"usage": "family", "gender": "unisex", "name": "Хуммель"}, -{"usage": "family", "gender": "unisex", "name": "Хупер"}, -{"usage": "family", "gender": "unisex", "name": "Хусейн"}, -{"usage": "family", "gender": "unisex", "name": "Хутсон"}, -{"usage": "family", "gender": "unisex", "name": "Ху"}, -{"usage": "family", "gender": "unisex", "name": "Хьюз"}, -{"usage": "family", "gender": "unisex", "name": "Хьюитт"}, -{"usage": "family", "gender": "unisex", "name": "Хьюстон"}, -{"usage": "family", "gender": "unisex", "name": "Хэа"}, -{"usage": "family", "gender": "unisex", "name": "Хэдли"}, -{"usage": "family", "gender": "unisex", "name": "Хэд"}, -{"usage": "family", "gender": "unisex", "name": "Хэй"}, -{"usage": "family", "gender": "unisex", "name": "Хэкетт"}, -{"usage": "family", "gender": "unisex", "name": "Хэмби"}, -{"usage": "family", "gender": "unisex", "name": "Хэмлин"}, -{"usage": "family", "gender": "unisex", "name": "Хэммондс"}, -{"usage": "family", "gender": "unisex", "name": "Хэмптон"}, -{"usage": "family", "gender": "unisex", "name": "Хэмрик"}, -{"usage": "family", "gender": "unisex", "name": "Хэм"}, -{"usage": "family", "gender": "unisex", "name": "Хэнди"}, -{"usage": "family", "gender": "unisex", "name": "Хэнд"}, -{"usage": "family", "gender": "unisex", "name": "Хэнкок"}, -{"usage": "family", "gender": "unisex", "name": "Хэнкс"}, -{"usage": "family", "gender": "unisex", "name": "Хэнли"}, -{"usage": "family", "gender": "unisex", "name": "Хэннон"}, -{"usage": "family", "gender": "unisex", "name": "Хэнсон"}, -{"usage": "family", "gender": "unisex", "name": "Хэтфилд"}, -{"usage": "family", "gender": "unisex", "name": "Хэтчер"}, -{"usage": "family", "gender": "unisex", "name": "Хэтч"}, -{"usage": "family", "gender": "unisex", "name": "Хэтэуэй"}, -{"usage": "family", "gender": "unisex", "name": "Хюинь"}, -{"usage": "family", "gender": "unisex", "name": "Хёрд"}, -{"usage": "family", "gender": "unisex", "name": "Хёрли"}, -{"usage": "family", "gender": "unisex", "name": "Хёрст"}, -{"usage": "family", "gender": "unisex", "name": "Хёрт"}, -{"usage": "family", "gender": "unisex", "name": "Цао"}, -{"usage": "family", "gender": "unisex", "name": "Циглер"}, -{"usage": "family", "gender": "unisex", "name": "Циммерман"}, -{"usage": "family", "gender": "unisex", "name": "Циммер"}, -{"usage": "family", "gender": "unisex", "name": "Чаваррия"}, -{"usage": "family", "gender": "unisex", "name": "Чавес"}, -{"usage": "family", "gender": "unisex", "name": "Чавис"}, -{"usage": "family", "gender": "unisex", "name": "Чайлдерс"}, -{"usage": "family", "gender": "unisex", "name": "Чайлдз"}, -{"usage": "family", "gender": "unisex", "name": "Чакон"}, -{"usage": "family", "gender": "unisex", "name": "Чанг"}, -{"usage": "family", "gender": "unisex", "name": "Чандлер"}, -{"usage": "family", "gender": "unisex", "name": "Чан"}, -{"usage": "family", "gender": "unisex", "name": "Чапа"}, -{"usage": "family", "gender": "unisex", "name": "Чарльз"}, -{"usage": "family", "gender": "unisex", "name": "Чатман"}, -{"usage": "family", "gender": "unisex", "name": "Чау"}, -{"usage": "family", "gender": "unisex", "name": "Чедвик"}, -{"usage": "family", "gender": "unisex", "name": "Чейз"}, -{"usage": "family", "gender": "unisex", "name": "Чейни"}, -{"usage": "family", "gender": "unisex", "name": "Чемберлен"}, -{"usage": "family", "gender": "unisex", "name": "Чемпион"}, -{"usage": "family", "gender": "unisex", "name": "Ченс"}, -{"usage": "family", "gender": "unisex", "name": "Черри"}, -{"usage": "family", "gender": "unisex", "name": "Черчилль"}, -{"usage": "family", "gender": "unisex", "name": "Честейн"}, -{"usage": "family", "gender": "unisex", "name": "Честер"}, -{"usage": "family", "gender": "unisex", "name": "Четам"}, -{"usage": "family", "gender": "unisex", "name": "Чжан"}, -{"usage": "family", "gender": "unisex", "name": "Чжоу"}, -{"usage": "family", "gender": "unisex", "name": "Чик"}, -{"usage": "family", "gender": "unisex", "name": "Чилдресс"}, -{"usage": "family", "gender": "unisex", "name": "Чин"}, -{"usage": "family", "gender": "unisex", "name": "Чисхолм"}, -{"usage": "family", "gender": "unisex", "name": "Чиу"}, -{"usage": "family", "gender": "unisex", "name": "Чой"}, -{"usage": "family", "gender": "unisex", "name": "Чонг"}, -{"usage": "family", "gender": "unisex", "name": "Чо"}, -{"usage": "family", "gender": "unisex", "name": "Чунг"}, -{"usage": "family", "gender": "unisex", "name": "Чун"}, -{"usage": "family", "gender": "unisex", "name": "Чу"}, -{"usage": "family", "gender": "unisex", "name": "Чыонг"}, -{"usage": "family", "gender": "unisex", "name": "Чэмберс"}, -{"usage": "family", "gender": "unisex", "name": "Чэнь"}, -{"usage": "family", "gender": "unisex", "name": "Чэн"}, -{"usage": "family", "gender": "unisex", "name": "Чэпман"}, -{"usage": "family", "gender": "unisex", "name": "Чэппелл"}, -{"usage": "family", "gender": "unisex", "name": "Чёрч"}, -{"usage": "family", "gender": "unisex", "name": "Шакельфорд"}, -{"usage": "family", "gender": "unisex", "name": "Шампейн"}, -{"usage": "family", "gender": "unisex", "name": "Шанкс"}, -{"usage": "family", "gender": "unisex", "name": "Шапиро"}, -{"usage": "family", "gender": "unisex", "name": "Шарма"}, -{"usage": "family", "gender": "unisex", "name": "Шарп"}, -{"usage": "family", "gender": "unisex", "name": "Шафер"}, -{"usage": "family", "gender": "unisex", "name": "Шаффер"}, -{"usage": "family", "gender": "unisex", "name": "Шах"}, -{"usage": "family", "gender": "unisex", "name": "Шваб"}, -{"usage": "family", "gender": "unisex", "name": "Шварц"}, -{"usage": "family", "gender": "unisex", "name": "Шелби"}, -{"usage": "family", "gender": "unisex", "name": "Шелдон"}, -{"usage": "family", "gender": "unisex", "name": "Шелли"}, -{"usage": "family", "gender": "unisex", "name": "Шелл"}, -{"usage": "family", "gender": "unisex", "name": "Шелтон"}, -{"usage": "family", "gender": "unisex", "name": "Шеннон"}, -{"usage": "family", "gender": "unisex", "name": "Шепард"}, -{"usage": "family", "gender": "unisex", "name": "Шеппард"}, -{"usage": "family", "gender": "unisex", "name": "Шервуд"}, -{"usage": "family", "gender": "unisex", "name": "Шерер"}, -{"usage": "family", "gender": "unisex", "name": "Шеридан"}, -{"usage": "family", "gender": "unisex", "name": "Шерман"}, -{"usage": "family", "gender": "unisex", "name": "Шеррилл"}, -{"usage": "family", "gender": "unisex", "name": "Шефер"}, -{"usage": "family", "gender": "unisex", "name": "Шеффер"}, -{"usage": "family", "gender": "unisex", "name": "Шеффилд"}, -{"usage": "family", "gender": "unisex", "name": "Шилдс"}, -{"usage": "family", "gender": "unisex", "name": "Шиллинг"}, -{"usage": "family", "gender": "unisex", "name": "Шин"}, -{"usage": "family", "gender": "unisex", "name": "Шипли"}, -{"usage": "family", "gender": "unisex", "name": "Шипман"}, -{"usage": "family", "gender": "unisex", "name": "Шипп"}, -{"usage": "family", "gender": "unisex", "name": "Ширер"}, -{"usage": "family", "gender": "unisex", "name": "Ширли"}, -{"usage": "family", "gender": "unisex", "name": "Шитс"}, -{"usage": "family", "gender": "unisex", "name": "Шихен"}, -{"usage": "family", "gender": "unisex", "name": "Ши"}, -{"usage": "family", "gender": "unisex", "name": "Шмидт"}, -{"usage": "family", "gender": "unisex", "name": "Шмид"}, -{"usage": "family", "gender": "unisex", "name": "Шмитт"}, -{"usage": "family", "gender": "unisex", "name": "Шмитц"}, -{"usage": "family", "gender": "unisex", "name": "Шнайдер"}, -{"usage": "family", "gender": "unisex", "name": "Шокли"}, -{"usage": "family", "gender": "unisex", "name": "Шорт"}, -{"usage": "family", "gender": "unisex", "name": "Шоу"}, -{"usage": "family", "gender": "unisex", "name": "Шофилд"}, -{"usage": "family", "gender": "unisex", "name": "Шпеер"}, -{"usage": "family", "gender": "unisex", "name": "Шрайбер"}, -{"usage": "family", "gender": "unisex", "name": "Шредер"}, -{"usage": "family", "gender": "unisex", "name": "Шрейдер"}, -{"usage": "family", "gender": "unisex", "name": "Штайнер"}, -{"usage": "family", "gender": "unisex", "name": "Штайн"}, -{"usage": "family", "gender": "unisex", "name": "Шталь"}, -{"usage": "family", "gender": "unisex", "name": "Штейнберг"}, -{"usage": "family", "gender": "unisex", "name": "Штеффен"}, -{"usage": "family", "gender": "unisex", "name": "Шуберт"}, -{"usage": "family", "gender": "unisex", "name": "Шук"}, -{"usage": "family", "gender": "unisex", "name": "Шулер"}, -{"usage": "family", "gender": "unisex", "name": "Шульте"}, -{"usage": "family", "gender": "unisex", "name": "Шульц"}, -{"usage": "family", "gender": "unisex", "name": "Шумахер"}, -{"usage": "family", "gender": "unisex", "name": "Шумэйкер"}, -{"usage": "family", "gender": "unisex", "name": "Шустер"}, -{"usage": "family", "gender": "unisex", "name": "Шэйвер"}, -{"usage": "family", "gender": "unisex", "name": "Шэнк"}, -{"usage": "family", "gender": "unisex", "name": "Эбботт"}, -{"usage": "family", "gender": "unisex", "name": "Эберт"}, -{"usage": "family", "gender": "unisex", "name": "Эбер"}, -{"usage": "family", "gender": "unisex", "name": "Эванс"}, -{"usage": "family", "gender": "unisex", "name": "Эверетт"}, -{"usage": "family", "gender": "unisex", "name": "Эдвардс"}, -{"usage": "family", "gender": "unisex", "name": "Эдгар"}, -{"usage": "family", "gender": "unisex", "name": "Эдди"}, -{"usage": "family", "gender": "unisex", "name": "Эдж"}, -{"usage": "family", "gender": "unisex", "name": "Эдмондсон"}, -{"usage": "family", "gender": "unisex", "name": "Эдмондс"}, -{"usage": "family", "gender": "unisex", "name": "Эйвери"}, -{"usage": "family", "gender": "unisex", "name": "Эйкерс"}, -{"usage": "family", "gender": "unisex", "name": "Эймос"}, -{"usage": "family", "gender": "unisex", "name": "Эймс"}, -{"usage": "family", "gender": "unisex", "name": "Эккерт"}, -{"usage": "family", "gender": "unisex", "name": "Эколс"}, -{"usage": "family", "gender": "unisex", "name": "Элам"}, -{"usage": "family", "gender": "unisex", "name": "Элдер"}, -{"usage": "family", "gender": "unisex", "name": "Элдридж"}, -{"usage": "family", "gender": "unisex", "name": "Элиас"}, -{"usage": "family", "gender": "unisex", "name": "Элизондо"}, -{"usage": "family", "gender": "unisex", "name": "Эли"}, -{"usage": "family", "gender": "unisex", "name": "Элкинс"}, -{"usage": "family", "gender": "unisex", "name": "Эллер"}, -{"usage": "family", "gender": "unisex", "name": "Эллиот"}, -{"usage": "family", "gender": "unisex", "name": "Эллисон"}, -{"usage": "family", "gender": "unisex", "name": "Эллис"}, -{"usage": "family", "gender": "unisex", "name": "Элли"}, -{"usage": "family", "gender": "unisex", "name": "Эллсворт"}, -{"usage": "family", "gender": "unisex", "name": "Элмор"}, -{"usage": "family", "gender": "unisex", "name": "Элтон"}, -{"usage": "family", "gender": "unisex", "name": "Эмброуз"}, -{"usage": "family", "gender": "unisex", "name": "Эмери"}, -{"usage": "family", "gender": "unisex", "name": "Эмерсон"}, -{"usage": "family", "gender": "unisex", "name": "Эммонс"}, -{"usage": "family", "gender": "unisex", "name": "Энгель"}, -{"usage": "family", "gender": "unisex", "name": "Энгл"}, -{"usage": "family", "gender": "unisex", "name": "Энджел"}, -{"usage": "family", "gender": "unisex", "name": "Эндрюс"}, -{"usage": "family", "gender": "unisex", "name": "Эндрю"}, -{"usage": "family", "gender": "unisex", "name": "Эннис"}, -{"usage": "family", "gender": "unisex", "name": "Энрикес"}, -{"usage": "family", "gender": "unisex", "name": "Энтони"}, -{"usage": "family", "gender": "unisex", "name": "Эпперсон"}, -{"usage": "family", "gender": "unisex", "name": "Эпплгейт"}, -{"usage": "family", "gender": "unisex", "name": "Эппс"}, -{"usage": "family", "gender": "unisex", "name": "Эпштейн"}, -{"usage": "family", "gender": "unisex", "name": "Эрвин"}, -{"usage": "family", "gender": "unisex", "name": "Эредиа"}, -{"usage": "family", "gender": "unisex", "name": "Эриксон"}, -{"usage": "family", "gender": "unisex", "name": "Эрли"}, -{"usage": "family", "gender": "unisex", "name": "Эрл"}, -{"usage": "family", "gender": "unisex", "name": "Эрнандес"}, -{"usage": "family", "gender": "unisex", "name": "Эрнст"}, -{"usage": "family", "gender": "unisex", "name": "Эррера"}, -{"usage": "family", "gender": "unisex", "name": "Эррон"}, -{"usage": "family", "gender": "unisex", "name": "Эскаланте"}, -{"usage": "family", "gender": "unisex", "name": "Эскамиллья"}, -{"usage": "family", "gender": "unisex", "name": "Эскивеля"}, -{"usage": "family", "gender": "unisex", "name": "Эскобар"}, -{"usage": "family", "gender": "unisex", "name": "Эскобедо"}, -{"usage": "family", "gender": "unisex", "name": "Эспарза"}, -{"usage": "family", "gender": "unisex", "name": "Эспиноза"}, -{"usage": "family", "gender": "unisex", "name": "Эспиноса"}, -{"usage": "family", "gender": "unisex", "name": "Эспозито"}, -{"usage": "family", "gender": "unisex", "name": "Эстеп"}, -{"usage": "family", "gender": "unisex", "name": "Эстер"}, -{"usage": "family", "gender": "unisex", "name": "Эстес"}, -{"usage": "family", "gender": "unisex", "name": "Эстрада"}, -{"usage": "family", "gender": "unisex", "name": "Этвуд"}, -{"usage": "family", "gender": "unisex", "name": "Эшби"}, -{"usage": "family", "gender": "unisex", "name": "Эшли"}, -{"usage": "family", "gender": "unisex", "name": "Эштон"}, -{"usage": "family", "gender": "unisex", "name": "Эш"}, -{"usage": "family", "gender": "unisex", "name": "Юбэнкс"}, -{"usage": "family", "gender": "unisex", "name": "Юинг"}, -{"usage": "family", "gender": "unisex", "name": "Юнг"}, -{"usage": "family", "gender": "unisex", "name": "Юн"}, -{"usage": "family", "gender": "unisex", "name": "Ю"}, -{"usage": "family", "gender": "unisex", "name": "Яззи"}, -{"usage": "family", "gender": "unisex", "name": "Якобсен"}, -{"usage": "family", "gender": "unisex", "name": "Якобсон"}, -{"usage": "family", "gender": "unisex", "name": "Янгблад"}, -{"usage": "family", "gender": "unisex", "name": "Янг"}, -{"usage": "family", "gender": "unisex", "name": "Янез"}, -{"usage": "family", "gender": "unisex", "name": "Янсен"}, -{"usage": "family", "gender": "unisex", "name": "Янси"}, -{"usage": "family", "gender": "unisex", "name": "Ян"}, -{"usage": "family", "gender": "unisex", "name": "Ярбро"}, -{"usage": "given", "gender": "female", "name": "Ава"}, -{"usage": "given", "gender": "female", "name": "Августа"}, -{"usage": "given", "gender": "female", "name": "Августина"}, -{"usage": "given", "gender": "female", "name": "Авелина"}, -{"usage": "given", "gender": "female", "name": "Авильда"}, -{"usage": "given", "gender": "female", "name": "Авис"}, -{"usage": "given", "gender": "female", "name": "Аврил"}, -{"usage": "given", "gender": "female", "name": "Аврора"}, -{"usage": "given", "gender": "female", "name": "Агата"}, -{"usage": "given", "gender": "female", "name": "Агеда"}, -{"usage": "given", "gender": "female", "name": "Агнесса"}, -{"usage": "given", "gender": "female", "name": "Агнус"}, -{"usage": "given", "gender": "female", "name": "Агрипина"}, -{"usage": "given", "gender": "female", "name": "Агустина"}, -{"usage": "given", "gender": "female", "name": "Адалина"}, -{"usage": "given", "gender": "female", "name": "Ада"}, -{"usage": "given", "gender": "female", "name": "Аделаида"}, -{"usage": "given", "gender": "female", "name": "Адела"}, -{"usage": "given", "gender": "female", "name": "Аделина"}, -{"usage": "given", "gender": "female", "name": "Аделия"}, -{"usage": "given", "gender": "female", "name": "Аделла"}, -{"usage": "given", "gender": "female", "name": "Адель"}, -{"usage": "given", "gender": "female", "name": "Адена"}, -{"usage": "given", "gender": "female", "name": "Адина"}, -{"usage": "given", "gender": "female", "name": "Адриана"}, -{"usage": "given", "gender": "female", "name": "Адрианна"}, -{"usage": "given", "gender": "female", "name": "Адриа"}, -{"usage": "given", "gender": "female", "name": "Адриенн"}, -{"usage": "given", "gender": "female", "name": "Адриен"}, -{"usage": "given", "gender": "female", "name": "Адриэн"}, -{"usage": "given", "gender": "female", "name": "Азали"}, -{"usage": "given", "gender": "female", "name": "Аззи"}, -{"usage": "given", "gender": "female", "name": "Азия"}, -{"usage": "given", "gender": "female", "name": "Азучена"}, -{"usage": "given", "gender": "female", "name": "Аида"}, -{"usage": "given", "gender": "female", "name": "Аиша"}, -{"usage": "given", "gender": "female", "name": "Айа"}, -{"usage": "given", "gender": "female", "name": "Айви"}, -{"usage": "given", "gender": "female", "name": "Айвори"}, -{"usage": "given", "gender": "female", "name": "Айлин"}, -{"usage": "given", "gender": "female", "name": "Айра"}, -{"usage": "given", "gender": "female", "name": "Айседора"}, -{"usage": "given", "gender": "female", "name": "Айша"}, -{"usage": "given", "gender": "female", "name": "Акила"}, -{"usage": "given", "gender": "female", "name": "Алайна"}, -{"usage": "given", "gender": "female", "name": "Алана"}, -{"usage": "given", "gender": "female", "name": "Аланна"}, -{"usage": "given", "gender": "female", "name": "Алеида"}, -{"usage": "given", "gender": "female", "name": "Алейша"}, -{"usage": "given", "gender": "female", "name": "Александра"}, -{"usage": "given", "gender": "female", "name": "Александрия"}, -{"usage": "given", "gender": "female", "name": "Алекса"}, -{"usage": "given", "gender": "female", "name": "Алексис"}, -{"usage": "given", "gender": "female", "name": "Алексия"}, -{"usage": "given", "gender": "female", "name": "Алекс"}, -{"usage": "given", "gender": "female", "name": "Алена"}, -{"usage": "given", "gender": "female", "name": "Алессандра"}, -{"usage": "given", "gender": "female", "name": "Алеся"}, -{"usage": "given", "gender": "female", "name": "Алета"}, -{"usage": "given", "gender": "female", "name": "Алетия"}, -{"usage": "given", "gender": "female", "name": "Алехандра"}, -{"usage": "given", "gender": "female", "name": "Алехандрина"}, -{"usage": "given", "gender": "female", "name": "Алеша"}, -{"usage": "given", "gender": "female", "name": "Алешия"}, -{"usage": "given", "gender": "female", "name": "Ализа"}, -{"usage": "given", "gender": "female", "name": "Аликс"}, -{"usage": "given", "gender": "female", "name": "Алина"}, -{"usage": "given", "gender": "female", "name": "Алин"}, -{"usage": "given", "gender": "female", "name": "Алиса"}, -{"usage": "given", "gender": "female", "name": "Алисия"}, -{"usage": "given", "gender": "female", "name": "Алисса"}, -{"usage": "given", "gender": "female", "name": "Алита"}, -{"usage": "given", "gender": "female", "name": "Алиша"}, -{"usage": "given", "gender": "female", "name": "Алишия"}, -{"usage": "given", "gender": "female", "name": "Алия"}, -{"usage": "given", "gender": "female", "name": "Али"}, -{"usage": "given", "gender": "female", "name": "Алла"}, -{"usage": "given", "gender": "female", "name": "Аллегра"}, -{"usage": "given", "gender": "female", "name": "Аллена"}, -{"usage": "given", "gender": "female", "name": "Аллен"}, -{"usage": "given", "gender": "female", "name": "Аллин"}, -{"usage": "given", "gender": "female", "name": "Алма"}, -{"usage": "given", "gender": "female", "name": "Алона"}, -{"usage": "given", "gender": "female", "name": "Алтея"}, -{"usage": "given", "gender": "female", "name": "Альба"}, -{"usage": "given", "gender": "female", "name": "Альберта"}, -{"usage": "given", "gender": "female", "name": "Альбертина"}, -{"usage": "given", "gender": "female", "name": "Альбина"}, -{"usage": "given", "gender": "female", "name": "Альва"}, -{"usage": "given", "gender": "female", "name": "Альвера"}, -{"usage": "given", "gender": "female", "name": "Альверта"}, -{"usage": "given", "gender": "female", "name": "Альвина"}, -{"usage": "given", "gender": "female", "name": "Альда"}, -{"usage": "given", "gender": "female", "name": "Альмеда"}, -{"usage": "given", "gender": "female", "name": "Альмета"}, -{"usage": "given", "gender": "female", "name": "Альтаграсия"}, -{"usage": "given", "gender": "female", "name": "Альта"}, -{"usage": "given", "gender": "female", "name": "Альфа"}, -{"usage": "given", "gender": "female", "name": "Альфреда"}, -{"usage": "given", "gender": "female", "name": "Альфредия"}, -{"usage": "given", "gender": "female", "name": "Алэйна"}, -{"usage": "given", "gender": "female", "name": "Амада"}, -{"usage": "given", "gender": "female", "name": "Амалия"}, -{"usage": "given", "gender": "female", "name": "Амаль"}, -{"usage": "given", "gender": "female", "name": "Аманда"}, -{"usage": "given", "gender": "female", "name": "Амелия"}, -{"usage": "given", "gender": "female", "name": "Америка"}, -{"usage": "given", "gender": "female", "name": "Амина"}, -{"usage": "given", "gender": "female", "name": "Амира"}, -{"usage": "given", "gender": "female", "name": "Ами"}, -{"usage": "given", "gender": "female", "name": "Анабель"}, -{"usage": "given", "gender": "female", "name": "Аналиса"}, -{"usage": "given", "gender": "female", "name": "Анамария"}, -{"usage": "given", "gender": "female", "name": "Анастасия"}, -{"usage": "given", "gender": "female", "name": "Анастейша"}, -{"usage": "given", "gender": "female", "name": "Ана"}, -{"usage": "given", "gender": "female", "name": "Ангела"}, -{"usage": "given", "gender": "female", "name": "Ангелина"}, -{"usage": "given", "gender": "female", "name": "Ангила"}, -{"usage": "given", "gender": "female", "name": "Англа"}, -{"usage": "given", "gender": "female", "name": "Англея"}, -{"usage": "given", "gender": "female", "name": "Андера"}, -{"usage": "given", "gender": "female", "name": "Анджела"}, -{"usage": "given", "gender": "female", "name": "Анджелик"}, -{"usage": "given", "gender": "female", "name": "Анджелина"}, -{"usage": "given", "gender": "female", "name": "Анджелита"}, -{"usage": "given", "gender": "female", "name": "Анджелия"}, -{"usage": "given", "gender": "female", "name": "Анджелла"}, -{"usage": "given", "gender": "female", "name": "Андра"}, -{"usage": "given", "gender": "female", "name": "Андреа"}, -{"usage": "given", "gender": "female", "name": "Андре"}, -{"usage": "given", "gender": "female", "name": "Андрия"}, -{"usage": "given", "gender": "female", "name": "Анетт"}, -{"usage": "given", "gender": "female", "name": "Анжанетт"}, -{"usage": "given", "gender": "female", "name": "Анжелика"}, -{"usage": "given", "gender": "female", "name": "Анжелина"}, -{"usage": "given", "gender": "female", "name": "Аника"}, -{"usage": "given", "gender": "female", "name": "Аниса"}, -{"usage": "given", "gender": "female", "name": "Анисса"}, -{"usage": "given", "gender": "female", "name": "Анита"}, -{"usage": "given", "gender": "female", "name": "Анитра"}, -{"usage": "given", "gender": "female", "name": "Аниша"}, -{"usage": "given", "gender": "female", "name": "Аннабель"}, -{"usage": "given", "gender": "female", "name": "Аннализа"}, -{"usage": "given", "gender": "female", "name": "Аннамария"}, -{"usage": "given", "gender": "female", "name": "Аннамари"}, -{"usage": "given", "gender": "female", "name": "Аннамэй"}, -{"usage": "given", "gender": "female", "name": "Анна"}, -{"usage": "given", "gender": "female", "name": "Аннелизе"}, -{"usage": "given", "gender": "female", "name": "Аннели"}, -{"usage": "given", "gender": "female", "name": "Аннель"}, -{"usage": "given", "gender": "female", "name": "Аннемари"}, -{"usage": "given", "gender": "female", "name": "Аннета"}, -{"usage": "given", "gender": "female", "name": "Аннетт"}, -{"usage": "given", "gender": "female", "name": "Аннет"}, -{"usage": "given", "gender": "female", "name": "Анника"}, -{"usage": "given", "gender": "female", "name": "Аннис"}, -{"usage": "given", "gender": "female", "name": "Аннита"}, -{"usage": "given", "gender": "female", "name": "Антонетта"}, -{"usage": "given", "gender": "female", "name": "Антонетт"}, -{"usage": "given", "gender": "female", "name": "Антонина"}, -{"usage": "given", "gender": "female", "name": "Антониэтта"}, -{"usage": "given", "gender": "female", "name": "Антония"}, -{"usage": "given", "gender": "female", "name": "Антуанетта"}, -{"usage": "given", "gender": "female", "name": "Анхелес"}, -{"usage": "given", "gender": "female", "name": "Ань"}, -{"usage": "given", "gender": "female", "name": "Аня"}, -{"usage": "given", "gender": "female", "name": "Аполлония"}, -{"usage": "given", "gender": "female", "name": "Араселис"}, -{"usage": "given", "gender": "female", "name": "Арасели"}, -{"usage": "given", "gender": "female", "name": "Ара"}, -{"usage": "given", "gender": "female", "name": "Арвилла"}, -{"usage": "given", "gender": "female", "name": "Аргелия"}, -{"usage": "given", "gender": "female", "name": "Аргентина"}, -{"usage": "given", "gender": "female", "name": "Ардат"}, -{"usage": "given", "gender": "female", "name": "Арделия"}, -{"usage": "given", "gender": "female", "name": "Арделла"}, -{"usage": "given", "gender": "female", "name": "Ардель"}, -{"usage": "given", "gender": "female", "name": "Ардис"}, -{"usage": "given", "gender": "female", "name": "Ардит"}, -{"usage": "given", "gender": "female", "name": "Арета"}, -{"usage": "given", "gender": "female", "name": "Ариана"}, -{"usage": "given", "gender": "female", "name": "Арианна"}, -{"usage": "given", "gender": "female", "name": "Ариан"}, -{"usage": "given", "gender": "female", "name": "Арика"}, -{"usage": "given", "gender": "female", "name": "Ариэль"}, -{"usage": "given", "gender": "female", "name": "Арлайн"}, -{"usage": "given", "gender": "female", "name": "Арла"}, -{"usage": "given", "gender": "female", "name": "Арлена"}, -{"usage": "given", "gender": "female", "name": "Арлета"}, -{"usage": "given", "gender": "female", "name": "Арлетта"}, -{"usage": "given", "gender": "female", "name": "Арлетт"}, -{"usage": "given", "gender": "female", "name": "Арлинда"}, -{"usage": "given", "gender": "female", "name": "Арлин"}, -{"usage": "given", "gender": "female", "name": "Арманда"}, -{"usage": "given", "gender": "female", "name": "Армандина"}, -{"usage": "given", "gender": "female", "name": "Армида"}, -{"usage": "given", "gender": "female", "name": "Арминда"}, -{"usage": "given", "gender": "female", "name": "Арнетта"}, -{"usage": "given", "gender": "female", "name": "Арнетт"}, -{"usage": "given", "gender": "female", "name": "Арнита"}, -{"usage": "given", "gender": "female", "name": "Арселия"}, -{"usage": "given", "gender": "female", "name": "Арти"}, -{"usage": "given", "gender": "female", "name": "Арье"}, -{"usage": "given", "gender": "female", "name": "Ассунта"}, -{"usage": "given", "gender": "female", "name": "Астрид"}, -{"usage": "given", "gender": "female", "name": "Асунсьон"}, -{"usage": "given", "gender": "female", "name": "Аура"}, -{"usage": "given", "gender": "female", "name": "Аурелия"}, -{"usage": "given", "gender": "female", "name": "Афина"}, -{"usage": "given", "gender": "female", "name": "Ашанти"}, -{"usage": "given", "gender": "female", "name": "Аша"}, -{"usage": "given", "gender": "female", "name": "Аяна"}, -{"usage": "given", "gender": "female", "name": "Аянна"}, -{"usage": "given", "gender": "female", "name": "Бабара"}, -{"usage": "given", "gender": "female", "name": "Бабетта"}, -{"usage": "given", "gender": "female", "name": "Банни"}, -{"usage": "given", "gender": "female", "name": "Барабара"}, -{"usage": "given", "gender": "female", "name": "Барбара"}, -{"usage": "given", "gender": "female", "name": "Барбера"}, -{"usage": "given", "gender": "female", "name": "Барби"}, -{"usage": "given", "gender": "female", "name": "Барбра"}, -{"usage": "given", "gender": "female", "name": "Барб"}, -{"usage": "given", "gender": "female", "name": "Бари"}, -{"usage": "given", "gender": "female", "name": "Барри"}, -{"usage": "given", "gender": "female", "name": "Басилия"}, -{"usage": "given", "gender": "female", "name": "Баффи"}, -{"usage": "given", "gender": "female", "name": "Беата"}, -{"usage": "given", "gender": "female", "name": "Беатрис"}, -{"usage": "given", "gender": "female", "name": "Беа"}, -{"usage": "given", "gender": "female", "name": "Бебе"}, -{"usage": "given", "gender": "female", "name": "Беверли"}, -{"usage": "given", "gender": "female", "name": "Беки"}, -{"usage": "given", "gender": "female", "name": "Бекки"}, -{"usage": "given", "gender": "female", "name": "Бела"}, -{"usage": "given", "gender": "female", "name": "Белен"}, -{"usage": "given", "gender": "female", "name": "Белинда"}, -{"usage": "given", "gender": "female", "name": "Белия"}, -{"usage": "given", "gender": "female", "name": "Белкис"}, -{"usage": "given", "gender": "female", "name": "Белла"}, -{"usage": "given", "gender": "female", "name": "Бельва"}, -{"usage": "given", "gender": "female", "name": "Бель"}, -{"usage": "given", "gender": "female", "name": "Бенита"}, -{"usage": "given", "gender": "female", "name": "Бенни"}, -{"usage": "given", "gender": "female", "name": "Беренис"}, -{"usage": "given", "gender": "female", "name": "Берил"}, -{"usage": "given", "gender": "female", "name": "Бернадетт"}, -{"usage": "given", "gender": "female", "name": "Бернадина"}, -{"usage": "given", "gender": "female", "name": "Бернарда"}, -{"usage": "given", "gender": "female", "name": "Бернардина"}, -{"usage": "given", "gender": "female", "name": "Берна"}, -{"usage": "given", "gender": "female", "name": "Бернетта"}, -{"usage": "given", "gender": "female", "name": "Бернис"}, -{"usage": "given", "gender": "female", "name": "Бернита"}, -{"usage": "given", "gender": "female", "name": "Берни"}, -{"usage": "given", "gender": "female", "name": "Берри"}, -{"usage": "given", "gender": "female", "name": "Берта"}, -{"usage": "given", "gender": "female", "name": "Берти"}, -{"usage": "given", "gender": "female", "name": "Бесси"}, -{"usage": "given", "gender": "female", "name": "Бесс"}, -{"usage": "given", "gender": "female", "name": "Бетани"}, -{"usage": "given", "gender": "female", "name": "Бетель"}, -{"usage": "given", "gender": "female", "name": "Беттина"}, -{"usage": "given", "gender": "female", "name": "Беттиэнн"}, -{"usage": "given", "gender": "female", "name": "Бетти"}, -{"usage": "given", "gender": "female", "name": "Бетт"}, -{"usage": "given", "gender": "female", "name": "Бетэнн"}, -{"usage": "given", "gender": "female", "name": "Бет"}, -{"usage": "given", "gender": "female", "name": "Беци"}, -{"usage": "given", "gender": "female", "name": "Биби"}, -{"usage": "given", "gender": "female", "name": "Билли"}, -{"usage": "given", "gender": "female", "name": "Биргит"}, -{"usage": "given", "gender": "female", "name": "Бирма"}, -{"usage": "given", "gender": "female", "name": "Блайт"}, -{"usage": "given", "gender": "female", "name": "Бланка"}, -{"usage": "given", "gender": "female", "name": "Бланш"}, -{"usage": "given", "gender": "female", "name": "Блонделл"}, -{"usage": "given", "gender": "female", "name": "Блоссом"}, -{"usage": "given", "gender": "female", "name": "Блэр"}, -{"usage": "given", "gender": "female", "name": "Бобби"}, -{"usage": "given", "gender": "female", "name": "Бобетт"}, -{"usage": "given", "gender": "female", "name": "Бойла"}, -{"usage": "given", "gender": "female", "name": "Бонита"}, -{"usage": "given", "gender": "female", "name": "Бонни"}, -{"usage": "given", "gender": "female", "name": "Бранда"}, -{"usage": "given", "gender": "female", "name": "Бранде"}, -{"usage": "given", "gender": "female", "name": "Бреанна"}, -{"usage": "given", "gender": "female", "name": "Бреанн"}, -{"usage": "given", "gender": "female", "name": "Бренда"}, -{"usage": "given", "gender": "female", "name": "Бренди"}, -{"usage": "given", "gender": "female", "name": "Бренна"}, -{"usage": "given", "gender": "female", "name": "Бретт"}, -{"usage": "given", "gender": "female", "name": "Бриана"}, -{"usage": "given", "gender": "female", "name": "Брианна"}, -{"usage": "given", "gender": "female", "name": "Брианн"}, -{"usage": "given", "gender": "female", "name": "Бригитта"}, -{"usage": "given", "gender": "female", "name": "Бригитт"}, -{"usage": "given", "gender": "female", "name": "Бриджетт"}, -{"usage": "given", "gender": "female", "name": "Бриджит"}, -{"usage": "given", "gender": "female", "name": "Брина"}, -{"usage": "given", "gender": "female", "name": "Бринда"}, -{"usage": "given", "gender": "female", "name": "Бринн"}, -{"usage": "given", "gender": "female", "name": "Британи"}, -{"usage": "given", "gender": "female", "name": "Бритни"}, -{"usage": "given", "gender": "female", "name": "Бриттани"}, -{"usage": "given", "gender": "female", "name": "Бритта"}, -{"usage": "given", "gender": "female", "name": "Бриттени"}, -{"usage": "given", "gender": "female", "name": "Бриттни"}, -{"usage": "given", "gender": "female", "name": "Бритт"}, -{"usage": "given", "gender": "female", "name": "Бри"}, -{"usage": "given", "gender": "female", "name": "Бронвин"}, -{"usage": "given", "gender": "female", "name": "Брук"}, -{"usage": "given", "gender": "female", "name": "Бруна"}, -{"usage": "given", "gender": "female", "name": "Брунильда"}, -{"usage": "given", "gender": "female", "name": "Брэнди"}, -{"usage": "given", "gender": "female", "name": "Була"}, -{"usage": "given", "gender": "female", "name": "Буэна"}, -{"usage": "given", "gender": "female", "name": "Бьюла"}, -{"usage": "given", "gender": "female", "name": "Бьянка"}, -{"usage": "given", "gender": "female", "name": "Бэйли"}, -{"usage": "given", "gender": "female", "name": "Бэмби"}, -{"usage": "given", "gender": "female", "name": "Бёрди"}, -{"usage": "given", "gender": "female", "name": "Вава"}, -{"usage": "given", "gender": "female", "name": "Вада"}, -{"usage": "given", "gender": "female", "name": "Вайнона"}, -{"usage": "given", "gender": "female", "name": "Валда"}, -{"usage": "given", "gender": "female", "name": "Валенсия"}, -{"usage": "given", "gender": "female", "name": "Валентина"}, -{"usage": "given", "gender": "female", "name": "Валерия"}, -{"usage": "given", "gender": "female", "name": "Валери"}, -{"usage": "given", "gender": "female", "name": "Валин"}, -{"usage": "given", "gender": "female", "name": "Валли"}, -{"usage": "given", "gender": "female", "name": "Валори"}, -{"usage": "given", "gender": "female", "name": "Валри"}, -{"usage": "given", "gender": "female", "name": "Вальтрауд"}, -{"usage": "given", "gender": "female", "name": "Ванда"}, -{"usage": "given", "gender": "female", "name": "Ванеса"}, -{"usage": "given", "gender": "female", "name": "Ванесса"}, -{"usage": "given", "gender": "female", "name": "Ванета"}, -{"usage": "given", "gender": "female", "name": "Ванетта"}, -{"usage": "given", "gender": "female", "name": "Ванита"}, -{"usage": "given", "gender": "female", "name": "Вания"}, -{"usage": "given", "gender": "female", "name": "Ванна"}, -{"usage": "given", "gender": "female", "name": "Ваннеса"}, -{"usage": "given", "gender": "female", "name": "Ваннесса"}, -{"usage": "given", "gender": "female", "name": "Василики"}, -{"usage": "given", "gender": "female", "name": "Вашти"}, -{"usage": "given", "gender": "female", "name": "Веда"}, -{"usage": "given", "gender": "female", "name": "Велвьет"}, -{"usage": "given", "gender": "female", "name": "Велда"}, -{"usage": "given", "gender": "female", "name": "Велия"}, -{"usage": "given", "gender": "female", "name": "Велма"}, -{"usage": "given", "gender": "female", "name": "Вельва"}, -{"usage": "given", "gender": "female", "name": "Велья"}, -{"usage": "given", "gender": "female", "name": "Вена"}, -{"usage": "given", "gender": "female", "name": "Венди"}, -{"usage": "given", "gender": "female", "name": "Вендолин"}, -{"usage": "given", "gender": "female", "name": "Венесса"}, -{"usage": "given", "gender": "female", "name": "Венетта"}, -{"usage": "given", "gender": "female", "name": "Венис"}, -{"usage": "given", "gender": "female", "name": "Венита"}, -{"usage": "given", "gender": "female", "name": "Венни"}, -{"usage": "given", "gender": "female", "name": "Венона"}, -{"usage": "given", "gender": "female", "name": "Венус"}, -{"usage": "given", "gender": "female", "name": "Веола"}, -{"usage": "given", "gender": "female", "name": "Вера"}, -{"usage": "given", "gender": "female", "name": "Верда"}, -{"usage": "given", "gender": "female", "name": "Верджи"}, -{"usage": "given", "gender": "female", "name": "Верди"}, -{"usage": "given", "gender": "female", "name": "Верена"}, -{"usage": "given", "gender": "female", "name": "Верла"}, -{"usage": "given", "gender": "female", "name": "Верлин"}, -{"usage": "given", "gender": "female", "name": "Верли"}, -{"usage": "given", "gender": "female", "name": "Верна"}, -{"usage": "given", "gender": "female", "name": "Вернетта"}, -{"usage": "given", "gender": "female", "name": "Вернис"}, -{"usage": "given", "gender": "female", "name": "Вернита"}, -{"usage": "given", "gender": "female", "name": "Верния"}, -{"usage": "given", "gender": "female", "name": "Верни"}, -{"usage": "given", "gender": "female", "name": "Верона"}, -{"usage": "given", "gender": "female", "name": "Вероника"}, -{"usage": "given", "gender": "female", "name": "Вероник"}, -{"usage": "given", "gender": "female", "name": "Верси"}, -{"usage": "given", "gender": "female", "name": "Верти"}, -{"usage": "given", "gender": "female", "name": "Веста"}, -{"usage": "given", "gender": "female", "name": "Вета"}, -{"usage": "given", "gender": "female", "name": "Виван"}, -{"usage": "given", "gender": "female", "name": "Вива"}, -{"usage": "given", "gender": "female", "name": "Вивиана"}, -{"usage": "given", "gender": "female", "name": "Вивьен"}, -{"usage": "given", "gender": "female", "name": "Вида"}, -{"usage": "given", "gender": "female", "name": "Вики"}, -{"usage": "given", "gender": "female", "name": "Викки"}, -{"usage": "given", "gender": "female", "name": "Викторина"}, -{"usage": "given", "gender": "female", "name": "Виктория"}, -{"usage": "given", "gender": "female", "name": "Вилда"}, -{"usage": "given", "gender": "female", "name": "Вильгельмина"}, -{"usage": "given", "gender": "female", "name": "Вильгемина"}, -{"usage": "given", "gender": "female", "name": "Вильма"}, -{"usage": "given", "gender": "female", "name": "Вина"}, -{"usage": "given", "gender": "female", "name": "Винита"}, -{"usage": "given", "gender": "female", "name": "Винни"}, -{"usage": "given", "gender": "female", "name": "Винона"}, -{"usage": "given", "gender": "female", "name": "Винченца"}, -{"usage": "given", "gender": "female", "name": "Виола"}, -{"usage": "given", "gender": "female", "name": "Виолета"}, -{"usage": "given", "gender": "female", "name": "Виолетта"}, -{"usage": "given", "gender": "female", "name": "Вирген"}, -{"usage": "given", "gender": "female", "name": "Виргиния"}, -{"usage": "given", "gender": "female", "name": "Вирджина"}, -{"usage": "given", "gender": "female", "name": "Вирджи"}, -{"usage": "given", "gender": "female", "name": "Висента"}, -{"usage": "given", "gender": "female", "name": "Вита"}, -{"usage": "given", "gender": "female", "name": "Вонда"}, -{"usage": "given", "gender": "female", "name": "Вонни"}, -{"usage": "given", "gender": "female", "name": "Вонсиль"}, -{"usage": "given", "gender": "female", "name": "Вэлари"}, -{"usage": "given", "gender": "female", "name": "Габриэла"}, -{"usage": "given", "gender": "female", "name": "Габриэлла"}, -{"usage": "given", "gender": "female", "name": "Габриэль"}, -{"usage": "given", "gender": "female", "name": "Гайя"}, -{"usage": "given", "gender": "female", "name": "Гала"}, -{"usage": "given", "gender": "female", "name": "Галина"}, -{"usage": "given", "gender": "female", "name": "Гарнетт"}, -{"usage": "given", "gender": "female", "name": "Гарнет"}, -{"usage": "given", "gender": "female", "name": "Гасси"}, -{"usage": "given", "gender": "female", "name": "Гвенда"}, -{"usage": "given", "gender": "female", "name": "Гвендолин"}, -{"usage": "given", "gender": "female", "name": "Гвен"}, -{"usage": "given", "gender": "female", "name": "Гвинет"}, -{"usage": "given", "gender": "female", "name": "Гвин"}, -{"usage": "given", "gender": "female", "name": "Гейл"}, -{"usage": "given", "gender": "female", "name": "Генриетта"}, -{"usage": "given", "gender": "female", "name": "Герда"}, -{"usage": "given", "gender": "female", "name": "Герта"}, -{"usage": "given", "gender": "female", "name": "Герти"}, -{"usage": "given", "gender": "female", "name": "Гертруда"}, -{"usage": "given", "gender": "female", "name": "Гертрудис"}, -{"usage": "given", "gender": "female", "name": "Гиги"}, -{"usage": "given", "gender": "female", "name": "Гизела"}, -{"usage": "given", "gender": "female", "name": "Гильермина"}, -{"usage": "given", "gender": "female", "name": "Гислена"}, -{"usage": "given", "gender": "female", "name": "Гита"}, -{"usage": "given", "gender": "female", "name": "Гия"}, -{"usage": "given", "gender": "female", "name": "Глайнда"}, -{"usage": "given", "gender": "female", "name": "Гленда"}, -{"usage": "given", "gender": "female", "name": "Глендора"}, -{"usage": "given", "gender": "female", "name": "Гленна"}, -{"usage": "given", "gender": "female", "name": "Гленнис"}, -{"usage": "given", "gender": "female", "name": "Гленни"}, -{"usage": "given", "gender": "female", "name": "Гленн"}, -{"usage": "given", "gender": "female", "name": "Глинда"}, -{"usage": "given", "gender": "female", "name": "Глинис"}, -{"usage": "given", "gender": "female", "name": "Глория"}, -{"usage": "given", "gender": "female", "name": "Глори"}, -{"usage": "given", "gender": "female", "name": "Глэдис"}, -{"usage": "given", "gender": "female", "name": "Глэди"}, -{"usage": "given", "gender": "female", "name": "Глэйдс"}, -{"usage": "given", "gender": "female", "name": "Голда"}, -{"usage": "given", "gender": "female", "name": "Голден"}, -{"usage": "given", "gender": "female", "name": "Голди"}, -{"usage": "given", "gender": "female", "name": "Гражина"}, -{"usage": "given", "gender": "female", "name": "Грасия"}, -{"usage": "given", "gender": "female", "name": "Грасьела"}, -{"usage": "given", "gender": "female", "name": "Грегория"}, -{"usage": "given", "gender": "female", "name": "Грегори"}, -{"usage": "given", "gender": "female", "name": "Грейси"}, -{"usage": "given", "gender": "female", "name": "Грейс"}, -{"usage": "given", "gender": "female", "name": "Грета"}, -{"usage": "given", "gender": "female", "name": "Гретта"}, -{"usage": "given", "gender": "female", "name": "Гретхен"}, -{"usage": "given", "gender": "female", "name": "Гризельда"}, -{"usage": "given", "gender": "female", "name": "Грисель"}, -{"usage": "given", "gender": "female", "name": "Гуадалупе"}, -{"usage": "given", "gender": "female", "name": "Гудрун"}, -{"usage": "given", "gender": "female", "name": "Гэйла"}, -{"usage": "given", "gender": "female", "name": "Гэйлен"}, -{"usage": "given", "gender": "female", "name": "Гэйл"}, -{"usage": "given", "gender": "female", "name": "Гэйнель"}, -{"usage": "given", "gender": "female", "name": "Гэри"}, -{"usage": "given", "gender": "female", "name": "Давида"}, -{"usage": "given", "gender": "female", "name": "Давина"}, -{"usage": "given", "gender": "female", "name": "Дагмар"}, -{"usage": "given", "gender": "female", "name": "Дагни"}, -{"usage": "given", "gender": "female", "name": "Даймонд"}, -{"usage": "given", "gender": "female", "name": "Дайна"}, -{"usage": "given", "gender": "female", "name": "Дайси"}, -{"usage": "given", "gender": "female", "name": "Дайэн"}, -{"usage": "given", "gender": "female", "name": "Дакота"}, -{"usage": "given", "gender": "female", "name": "Далида"}, -{"usage": "given", "gender": "female", "name": "Далила"}, -{"usage": "given", "gender": "female", "name": "Далин"}, -{"usage": "given", "gender": "female", "name": "Далия"}, -{"usage": "given", "gender": "female", "name": "Даллас"}, -{"usage": "given", "gender": "female", "name": "Даля"}, -{"usage": "given", "gender": "female", "name": "Дамарь"}, -{"usage": "given", "gender": "female", "name": "Даная"}, -{"usage": "given", "gender": "female", "name": "Дана"}, -{"usage": "given", "gender": "female", "name": "Данель"}, -{"usage": "given", "gender": "female", "name": "Данетт"}, -{"usage": "given", "gender": "female", "name": "Даника"}, -{"usage": "given", "gender": "female", "name": "Даниль"}, -{"usage": "given", "gender": "female", "name": "Данита"}, -{"usage": "given", "gender": "female", "name": "Даниэла"}, -{"usage": "given", "gender": "female", "name": "Даниэлла"}, -{"usage": "given", "gender": "female", "name": "Даниэль"}, -{"usage": "given", "gender": "female", "name": "Дания"}, -{"usage": "given", "gender": "female", "name": "Дани"}, -{"usage": "given", "gender": "female", "name": "Данна"}, -{"usage": "given", "gender": "female", "name": "Данниэль"}, -{"usage": "given", "gender": "female", "name": "Данн"}, -{"usage": "given", "gender": "female", "name": "Данута"}, -{"usage": "given", "gender": "female", "name": "Дара"}, -{"usage": "given", "gender": "female", "name": "Дарла"}, -{"usage": "given", "gender": "female", "name": "Дарлена"}, -{"usage": "given", "gender": "female", "name": "Дарлин"}, -{"usage": "given", "gender": "female", "name": "Дарнелл"}, -{"usage": "given", "gender": "female", "name": "Дарсел"}, -{"usage": "given", "gender": "female", "name": "Дарси"}, -{"usage": "given", "gender": "female", "name": "Дарья"}, -{"usage": "given", "gender": "female", "name": "Дафина"}, -{"usage": "given", "gender": "female", "name": "Дафна"}, -{"usage": "given", "gender": "female", "name": "Дачия"}, -{"usage": "given", "gender": "female", "name": "Двана"}, -{"usage": "given", "gender": "female", "name": "Двора"}, -{"usage": "given", "gender": "female", "name": "ДеАнн"}, -{"usage": "given", "gender": "female", "name": "Деадра"}, -{"usage": "given", "gender": "female", "name": "Деандра"}, -{"usage": "given", "gender": "female", "name": "Деандреа"}, -{"usage": "given", "gender": "female", "name": "Дебби"}, -{"usage": "given", "gender": "female", "name": "Деббра"}, -{"usage": "given", "gender": "female", "name": "Дебера"}, -{"usage": "given", "gender": "female", "name": "Деби"}, -{"usage": "given", "gender": "female", "name": "Дебора"}, -{"usage": "given", "gender": "female", "name": "Дебра"}, -{"usage": "given", "gender": "female", "name": "Деб"}, -{"usage": "given", "gender": "female", "name": "Девин"}, -{"usage": "given", "gender": "female", "name": "Девона"}, -{"usage": "given", "gender": "female", "name": "Девон"}, -{"usage": "given", "gender": "female", "name": "Девора"}, -{"usage": "given", "gender": "female", "name": "Деде"}, -{"usage": "given", "gender": "female", "name": "Дедра"}, -{"usage": "given", "gender": "female", "name": "Дежа"}, -{"usage": "given", "gender": "female", "name": "Дезире"}, -{"usage": "given", "gender": "female", "name": "Дейдра"}, -{"usage": "given", "gender": "female", "name": "Дейдре"}, -{"usage": "given", "gender": "female", "name": "Дейзи"}, -{"usage": "given", "gender": "female", "name": "Дейл"}, -{"usage": "given", "gender": "female", "name": "Дейн"}, -{"usage": "given", "gender": "female", "name": "Делана"}, -{"usage": "given", "gender": "female", "name": "Делена"}, -{"usage": "given", "gender": "female", "name": "Делинда"}, -{"usage": "given", "gender": "female", "name": "Делиса"}, -{"usage": "given", "gender": "female", "name": "Делисия"}, -{"usage": "given", "gender": "female", "name": "Делия"}, -{"usage": "given", "gender": "female", "name": "Делла"}, -{"usage": "given", "gender": "female", "name": "Делорас"}, -{"usage": "given", "gender": "female", "name": "Делора"}, -{"usage": "given", "gender": "female", "name": "Делси"}, -{"usage": "given", "gender": "female", "name": "Делуис"}, -{"usage": "given", "gender": "female", "name": "Дельма"}, -{"usage": "given", "gender": "female", "name": "Дельми"}, -{"usage": "given", "gender": "female", "name": "Дельта"}, -{"usage": "given", "gender": "female", "name": "Дельфа"}, -{"usage": "given", "gender": "female", "name": "Дельфина"}, -{"usage": "given", "gender": "female", "name": "Дельфия"}, -{"usage": "given", "gender": "female", "name": "Дель"}, -{"usage": "given", "gender": "female", "name": "Делэйн"}, -{"usage": "given", "gender": "female", "name": "Деметра"}, -{"usage": "given", "gender": "female", "name": "Деметрис"}, -{"usage": "given", "gender": "female", "name": "Деметрия"}, -{"usage": "given", "gender": "female", "name": "Денаэ"}, -{"usage": "given", "gender": "female", "name": "Дена"}, -{"usage": "given", "gender": "female", "name": "Дениз"}, -{"usage": "given", "gender": "female", "name": "Денин"}, -{"usage": "given", "gender": "female", "name": "Денисс"}, -{"usage": "given", "gender": "female", "name": "Денита"}, -{"usage": "given", "gender": "female", "name": "Дениша"}, -{"usage": "given", "gender": "female", "name": "Денна"}, -{"usage": "given", "gender": "female", "name": "Деннис"}, -{"usage": "given", "gender": "female", "name": "Денни"}, -{"usage": "given", "gender": "female", "name": "Деонна"}, -{"usage": "given", "gender": "female", "name": "Деон"}, -{"usage": "given", "gender": "female", "name": "Деспина"}, -{"usage": "given", "gender": "female", "name": "Десси"}, -{"usage": "given", "gender": "female", "name": "Дестини"}, -{"usage": "given", "gender": "female", "name": "Детра"}, -{"usage": "given", "gender": "female", "name": "Деэтта"}, -{"usage": "given", "gender": "female", "name": "Джада"}, -{"usage": "given", "gender": "female", "name": "Джалиса"}, -{"usage": "given", "gender": "female", "name": "Джамила"}, -{"usage": "given", "gender": "female", "name": "Джами"}, -{"usage": "given", "gender": "female", "name": "Джана"}, -{"usage": "given", "gender": "female", "name": "Джанелла"}, -{"usage": "given", "gender": "female", "name": "Джанель"}, -{"usage": "given", "gender": "female", "name": "Джанесса"}, -{"usage": "given", "gender": "female", "name": "Джанетт"}, -{"usage": "given", "gender": "female", "name": "Джанина"}, -{"usage": "given", "gender": "female", "name": "Джанин"}, -{"usage": "given", "gender": "female", "name": "Джанна"}, -{"usage": "given", "gender": "female", "name": "Джаннетт"}, -{"usage": "given", "gender": "female", "name": "Джасинда"}, -{"usage": "given", "gender": "female", "name": "Джасинта"}, -{"usage": "given", "gender": "female", "name": "Джастина"}, -{"usage": "given", "gender": "female", "name": "Джейми"}, -{"usage": "given", "gender": "female", "name": "Джеймс"}, -{"usage": "given", "gender": "female", "name": "Джейна"}, -{"usage": "given", "gender": "female", "name": "Джейни"}, -{"usage": "given", "gender": "female", "name": "Джейн"}, -{"usage": "given", "gender": "female", "name": "Джей"}, -{"usage": "given", "gender": "female", "name": "Джеки"}, -{"usage": "given", "gender": "female", "name": "Джеклин"}, -{"usage": "given", "gender": "female", "name": "Джема"}, -{"usage": "given", "gender": "female", "name": "Джемма"}, -{"usage": "given", "gender": "female", "name": "Джена"}, -{"usage": "given", "gender": "female", "name": "Дженезис"}, -{"usage": "given", "gender": "female", "name": "Дженей"}, -{"usage": "given", "gender": "female", "name": "Дженелла"}, -{"usage": "given", "gender": "female", "name": "Дженель"}, -{"usage": "given", "gender": "female", "name": "Дженетт"}, -{"usage": "given", "gender": "female", "name": "Дженет"}, -{"usage": "given", "gender": "female", "name": "Дженин"}, -{"usage": "given", "gender": "female", "name": "Дженис"}, -{"usage": "given", "gender": "female", "name": "Дженифер"}, -{"usage": "given", "gender": "female", "name": "Джениффер"}, -{"usage": "given", "gender": "female", "name": "Джения"}, -{"usage": "given", "gender": "female", "name": "Джени"}, -{"usage": "given", "gender": "female", "name": "Дженна"}, -{"usage": "given", "gender": "female", "name": "Дженнель"}, -{"usage": "given", "gender": "female", "name": "Дженнет"}, -{"usage": "given", "gender": "female", "name": "Дженнефер"}, -{"usage": "given", "gender": "female", "name": "Дженнин"}, -{"usage": "given", "gender": "female", "name": "Дженнифер"}, -{"usage": "given", "gender": "female", "name": "Дженни"}, -{"usage": "given", "gender": "female", "name": "Дженьюэри"}, -{"usage": "given", "gender": "female", "name": "Дженэй"}, -{"usage": "given", "gender": "female", "name": "Джен"}, -{"usage": "given", "gender": "female", "name": "Джералин"}, -{"usage": "given", "gender": "female", "name": "Джеральдин"}, -{"usage": "given", "gender": "female", "name": "Джереми"}, -{"usage": "given", "gender": "female", "name": "Джерика"}, -{"usage": "given", "gender": "female", "name": "Джерилин"}, -{"usage": "given", "gender": "female", "name": "Джери"}, -{"usage": "given", "gender": "female", "name": "Джерлин"}, -{"usage": "given", "gender": "female", "name": "Джеррика"}, -{"usage": "given", "gender": "female", "name": "Джерри"}, -{"usage": "given", "gender": "female", "name": "Джесения"}, -{"usage": "given", "gender": "female", "name": "Джесика"}, -{"usage": "given", "gender": "female", "name": "Джессика"}, -{"usage": "given", "gender": "female", "name": "Джессия"}, -{"usage": "given", "gender": "female", "name": "Джесси"}, -{"usage": "given", "gender": "female", "name": "Джестин"}, -{"usage": "given", "gender": "female", "name": "Джетта"}, -{"usage": "given", "gender": "female", "name": "Джетти"}, -{"usage": "given", "gender": "female", "name": "Джеффи"}, -{"usage": "given", "gender": "female", "name": "Джеффри"}, -{"usage": "given", "gender": "female", "name": "Джиджет"}, -{"usage": "given", "gender": "female", "name": "Джиллиан"}, -{"usage": "given", "gender": "female", "name": "Джильда"}, -{"usage": "given", "gender": "female", "name": "Джил"}, -{"usage": "given", "gender": "female", "name": "Джимми"}, -{"usage": "given", "gender": "female", "name": "Джина"}, -{"usage": "given", "gender": "female", "name": "Джинджер"}, -{"usage": "given", "gender": "female", "name": "Джинен"}, -{"usage": "given", "gender": "female", "name": "Джинетта"}, -{"usage": "given", "gender": "female", "name": "Джинис"}, -{"usage": "given", "gender": "female", "name": "Джини"}, -{"usage": "given", "gender": "female", "name": "Джинни"}, -{"usage": "given", "gender": "female", "name": "Джинн"}, -{"usage": "given", "gender": "female", "name": "Джин"}, -{"usage": "given", "gender": "female", "name": "Джоана"}, -{"usage": "given", "gender": "female", "name": "Джоани"}, -{"usage": "given", "gender": "female", "name": "Джоанна"}, -{"usage": "given", "gender": "female", "name": "Джоанни"}, -{"usage": "given", "gender": "female", "name": "Джоанн"}, -{"usage": "given", "gender": "female", "name": "Джоан"}, -{"usage": "given", "gender": "female", "name": "Джованна"}, -{"usage": "given", "gender": "female", "name": "Джовита"}, -{"usage": "given", "gender": "female", "name": "Джоди"}, -{"usage": "given", "gender": "female", "name": "Джозелин"}, -{"usage": "given", "gender": "female", "name": "Джозефина"}, -{"usage": "given", "gender": "female", "name": "Джози"}, -{"usage": "given", "gender": "female", "name": "Джойслин"}, -{"usage": "given", "gender": "female", "name": "Джойс"}, -{"usage": "given", "gender": "female", "name": "Джой"}, -{"usage": "given", "gender": "female", "name": "Джолин"}, -{"usage": "given", "gender": "female", "name": "Джоли"}, -{"usage": "given", "gender": "female", "name": "Джона"}, -{"usage": "given", "gender": "female", "name": "Джонелл"}, -{"usage": "given", "gender": "female", "name": "Джонель"}, -{"usage": "given", "gender": "female", "name": "Джонетта"}, -{"usage": "given", "gender": "female", "name": "Джони"}, -{"usage": "given", "gender": "female", "name": "Джонна"}, -{"usage": "given", "gender": "female", "name": "Джонни"}, -{"usage": "given", "gender": "female", "name": "Джонси"}, -{"usage": "given", "gender": "female", "name": "Джордан"}, -{"usage": "given", "gender": "female", "name": "Джорджана"}, -{"usage": "given", "gender": "female", "name": "Джорджанн"}, -{"usage": "given", "gender": "female", "name": "Джорджиана"}, -{"usage": "given", "gender": "female", "name": "Джорджина"}, -{"usage": "given", "gender": "female", "name": "Джорджин"}, -{"usage": "given", "gender": "female", "name": "Джорджия"}, -{"usage": "given", "gender": "female", "name": "Джорджи"}, -{"usage": "given", "gender": "female", "name": "Джоселин"}, -{"usage": "given", "gender": "female", "name": "Джослин"}, -{"usage": "given", "gender": "female", "name": "Джотта"}, -{"usage": "given", "gender": "female", "name": "Джоэлла"}, -{"usage": "given", "gender": "female", "name": "Джоэль"}, -{"usage": "given", "gender": "female", "name": "Джоэл"}, -{"usage": "given", "gender": "female", "name": "Джоэнн"}, -{"usage": "given", "gender": "female", "name": "Джоя"}, -{"usage": "given", "gender": "female", "name": "Джудит"}, -{"usage": "given", "gender": "female", "name": "Джуди"}, -{"usage": "given", "gender": "female", "name": "Джуд"}, -{"usage": "given", "gender": "female", "name": "Джузеппина"}, -{"usage": "given", "gender": "female", "name": "Джулиана"}, -{"usage": "given", "gender": "female", "name": "Джулианна"}, -{"usage": "given", "gender": "female", "name": "Джулианн"}, -{"usage": "given", "gender": "female", "name": "Джулиан"}, -{"usage": "given", "gender": "female", "name": "Джулин"}, -{"usage": "given", "gender": "female", "name": "Джулисса"}, -{"usage": "given", "gender": "female", "name": "Джулия"}, -{"usage": "given", "gender": "female", "name": "Джули"}, -{"usage": "given", "gender": "female", "name": "Джульета"}, -{"usage": "given", "gender": "female", "name": "Джульетта"}, -{"usage": "given", "gender": "female", "name": "Джунита"}, -{"usage": "given", "gender": "female", "name": "Джуни"}, -{"usage": "given", "gender": "female", "name": "Джун"}, -{"usage": "given", "gender": "female", "name": "Джуэл"}, -{"usage": "given", "gender": "female", "name": "Джэйд"}, -{"usage": "given", "gender": "female", "name": "Джэйми"}, -{"usage": "given", "gender": "female", "name": "Джэйм"}, -{"usage": "given", "gender": "female", "name": "Джэма"}, -{"usage": "given", "gender": "female", "name": "Джэмми"}, -{"usage": "given", "gender": "female", "name": "Джэнн"}, -{"usage": "given", "gender": "female", "name": "Диана"}, -{"usage": "given", "gender": "female", "name": "Дианна"}, -{"usage": "given", "gender": "female", "name": "Дианн"}, -{"usage": "given", "gender": "female", "name": "Диан"}, -{"usage": "given", "gender": "female", "name": "Дивина"}, -{"usage": "given", "gender": "female", "name": "Дигна"}, -{"usage": "given", "gender": "female", "name": "Диди"}, -{"usage": "given", "gender": "female", "name": "Дидра"}, -{"usage": "given", "gender": "female", "name": "Диедра"}, -{"usage": "given", "gender": "female", "name": "Дикси"}, -{"usage": "given", "gender": "female", "name": "Димпл"}, -{"usage": "given", "gender": "female", "name": "Дина"}, -{"usage": "given", "gender": "female", "name": "Динора"}, -{"usage": "given", "gender": "female", "name": "Диона"}, -{"usage": "given", "gender": "female", "name": "Дионна"}, -{"usage": "given", "gender": "female", "name": "Дионн"}, -{"usage": "given", "gender": "female", "name": "Дион"}, -{"usage": "given", "gender": "female", "name": "Дирдре"}, -{"usage": "given", "gender": "female", "name": "Диэнн"}, -{"usage": "given", "gender": "female", "name": "Дия"}, -{"usage": "given", "gender": "female", "name": "Дови"}, -{"usage": "given", "gender": "female", "name": "Доди"}, -{"usage": "given", "gender": "female", "name": "Долли"}, -{"usage": "given", "gender": "female", "name": "Долорес"}, -{"usage": "given", "gender": "female", "name": "Долорис"}, -{"usage": "given", "gender": "female", "name": "Доменика"}, -{"usage": "given", "gender": "female", "name": "Доминга"}, -{"usage": "given", "gender": "female", "name": "Доминика"}, -{"usage": "given", "gender": "female", "name": "Доминик"}, -{"usage": "given", "gender": "female", "name": "Домитила"}, -{"usage": "given", "gender": "female", "name": "Домоник"}, -{"usage": "given", "gender": "female", "name": "Дона"}, -{"usage": "given", "gender": "female", "name": "Донелла"}, -{"usage": "given", "gender": "female", "name": "Донетта"}, -{"usage": "given", "gender": "female", "name": "Донита"}, -{"usage": "given", "gender": "female", "name": "Донна"}, -{"usage": "given", "gender": "female", "name": "Доннетта"}, -{"usage": "given", "gender": "female", "name": "Донни"}, -{"usage": "given", "gender": "female", "name": "Доня"}, -{"usage": "given", "gender": "female", "name": "Дорати"}, -{"usage": "given", "gender": "female", "name": "Дора"}, -{"usage": "given", "gender": "female", "name": "Дореата"}, -{"usage": "given", "gender": "female", "name": "Дорена"}, -{"usage": "given", "gender": "female", "name": "Дорета"}, -{"usage": "given", "gender": "female", "name": "Доретея"}, -{"usage": "given", "gender": "female", "name": "Доретта"}, -{"usage": "given", "gender": "female", "name": "Дориан"}, -{"usage": "given", "gender": "female", "name": "Доринда"}, -{"usage": "given", "gender": "female", "name": "Дорин"}, -{"usage": "given", "gender": "female", "name": "Дорис"}, -{"usage": "given", "gender": "female", "name": "Дория"}, -{"usage": "given", "gender": "female", "name": "Дори"}, -{"usage": "given", "gender": "female", "name": "Доркас"}, -{"usage": "given", "gender": "female", "name": "Дорла"}, -{"usage": "given", "gender": "female", "name": "Дорота"}, -{"usage": "given", "gender": "female", "name": "Доротея"}, -{"usage": "given", "gender": "female", "name": "Дороти"}, -{"usage": "given", "gender": "female", "name": "Доррис"}, -{"usage": "given", "gender": "female", "name": "Дорта"}, -{"usage": "given", "gender": "female", "name": "Дорти"}, -{"usage": "given", "gender": "female", "name": "Дотти"}, -{"usage": "given", "gender": "female", "name": "Доун"}, -{"usage": "given", "gender": "female", "name": "Дрема"}, -{"usage": "given", "gender": "female", "name": "Дрима"}, -{"usage": "given", "gender": "female", "name": "Друзилла"}, -{"usage": "given", "gender": "female", "name": "Дрю"}, -{"usage": "given", "gender": "female", "name": "Дульсе"}, -{"usage": "given", "gender": "female", "name": "Дульси"}, -{"usage": "given", "gender": "female", "name": "Дусти"}, -{"usage": "given", "gender": "female", "name": "Дэннетт"}, -{"usage": "given", "gender": "female", "name": "Дэнни"}, -{"usage": "given", "gender": "female", "name": "Дэн"}, -{"usage": "given", "gender": "female", "name": "Дэрби"}, -{"usage": "given", "gender": "female", "name": "Дэрил"}, -{"usage": "given", "gender": "female", "name": "Евангелина"}, -{"usage": "given", "gender": "female", "name": "Ева"}, -{"usage": "given", "gender": "female", "name": "Еветта"}, -{"usage": "given", "gender": "female", "name": "Елена"}, -{"usage": "given", "gender": "female", "name": "Ена"}, -{"usage": "given", "gender": "female", "name": "Есения"}, -{"usage": "given", "gender": "female", "name": "Ессения"}, -{"usage": "given", "gender": "female", "name": "Жакетта"}, -{"usage": "given", "gender": "female", "name": "Жаклин"}, -{"usage": "given", "gender": "female", "name": "Жанель"}, -{"usage": "given", "gender": "female", "name": "Жанетта"}, -{"usage": "given", "gender": "female", "name": "Жанетт"}, -{"usage": "given", "gender": "female", "name": "Жанин"}, -{"usage": "given", "gender": "female", "name": "Жанмари"}, -{"usage": "given", "gender": "female", "name": "Жанна"}, -{"usage": "given", "gender": "female", "name": "Жаннетта"}, -{"usage": "given", "gender": "female", "name": "Жаннет"}, -{"usage": "given", "gender": "female", "name": "Жасмин"}, -{"usage": "given", "gender": "female", "name": "Женева"}, -{"usage": "given", "gender": "female", "name": "Женевив"}, -{"usage": "given", "gender": "female", "name": "Женевьева"}, -{"usage": "given", "gender": "female", "name": "Женевьев"}, -{"usage": "given", "gender": "female", "name": "Жермен"}, -{"usage": "given", "gender": "female", "name": "Жизель"}, -{"usage": "given", "gender": "female", "name": "Жильберта"}, -{"usage": "given", "gender": "female", "name": "Жинетт"}, -{"usage": "given", "gender": "female", "name": "Жозетт"}, -{"usage": "given", "gender": "female", "name": "Жозефина"}, -{"usage": "given", "gender": "female", "name": "Жоржетта"}, -{"usage": "given", "gender": "female", "name": "Жоржет"}, -{"usage": "given", "gender": "female", "name": "Жюль"}, -{"usage": "given", "gender": "female", "name": "Жюстин"}, -{"usage": "given", "gender": "female", "name": "Зада"}, -{"usage": "given", "gender": "female", "name": "Зайда"}, -{"usage": "given", "gender": "female", "name": "Зана"}, -{"usage": "given", "gender": "female", "name": "Зандра"}, -{"usage": "given", "gender": "female", "name": "Зелла"}, -{"usage": "given", "gender": "female", "name": "Зельда"}, -{"usage": "given", "gender": "female", "name": "Зельма"}, -{"usage": "given", "gender": "female", "name": "Зена"}, -{"usage": "given", "gender": "female", "name": "Зения"}, -{"usage": "given", "gender": "female", "name": "Зенобия"}, -{"usage": "given", "gender": "female", "name": "Зетта"}, -{"usage": "given", "gender": "female", "name": "Зинаида"}, -{"usage": "given", "gender": "female", "name": "Зина"}, -{"usage": "given", "gender": "female", "name": "Зита"}, -{"usage": "given", "gender": "female", "name": "Зойла"}, -{"usage": "given", "gender": "female", "name": "Зола"}, -{"usage": "given", "gender": "female", "name": "Зона"}, -{"usage": "given", "gender": "female", "name": "Зония"}, -{"usage": "given", "gender": "female", "name": "Зораида"}, -{"usage": "given", "gender": "female", "name": "Зора"}, -{"usage": "given", "gender": "female", "name": "Зофья"}, -{"usage": "given", "gender": "female", "name": "Зоя"}, -{"usage": "given", "gender": "female", "name": "Зула"}, -{"usage": "given", "gender": "female", "name": "Зулема"}, -{"usage": "given", "gender": "female", "name": "Зюльма"}, -{"usage": "given", "gender": "female", "name": "Ивана"}, -{"usage": "given", "gender": "female", "name": "Ива"}, -{"usage": "given", "gender": "female", "name": "Ивелисс"}, -{"usage": "given", "gender": "female", "name": "Иветта"}, -{"usage": "given", "gender": "female", "name": "Иветт"}, -{"usage": "given", "gender": "female", "name": "Ивона"}, -{"usage": "given", "gender": "female", "name": "Ивонна"}, -{"usage": "given", "gender": "female", "name": "Ивонн"}, -{"usage": "given", "gender": "female", "name": "Ив"}, -{"usage": "given", "gender": "female", "name": "Игнасия"}, -{"usage": "given", "gender": "female", "name": "Идалия"}, -{"usage": "given", "gender": "female", "name": "Ида"}, -{"usage": "given", "gender": "female", "name": "Иделла"}, -{"usage": "given", "gender": "female", "name": "Иделль"}, -{"usage": "given", "gender": "female", "name": "Иден"}, -{"usage": "given", "gender": "female", "name": "Иеша"}, -{"usage": "given", "gender": "female", "name": "Изабелла"}, -{"usage": "given", "gender": "female", "name": "Изабель"}, -{"usage": "given", "gender": "female", "name": "Изаура"}, -{"usage": "given", "gender": "female", "name": "Иза"}, -{"usage": "given", "gender": "female", "name": "Изетта"}, -{"usage": "given", "gender": "female", "name": "Изобель"}, -{"usage": "given", "gender": "female", "name": "Изола"}, -{"usage": "given", "gender": "female", "name": "Илана"}, -{"usage": "given", "gender": "female", "name": "Ила"}, -{"usage": "given", "gender": "female", "name": "Илеана"}, -{"usage": "given", "gender": "female", "name": "Илиана"}, -{"usage": "given", "gender": "female", "name": "Илона"}, -{"usage": "given", "gender": "female", "name": "Илуминада "}, -{"usage": "given", "gender": "female", "name": "Ильда"}, -{"usage": "given", "gender": "female", "name": "Ильзе"}, -{"usage": "given", "gender": "female", "name": "Илья"}, -{"usage": "given", "gender": "female", "name": "Илэйн"}, -{"usage": "given", "gender": "female", "name": "Има"}, -{"usage": "given", "gender": "female", "name": "Имельда"}, -{"usage": "given", "gender": "female", "name": "Имогена"}, -{"usage": "given", "gender": "female", "name": "Ина"}, -{"usage": "given", "gender": "female", "name": "Инга"}, -{"usage": "given", "gender": "female", "name": "Ингер"}, -{"usage": "given", "gender": "female", "name": "Ингрид"}, -{"usage": "given", "gender": "female", "name": "Индира"}, -{"usage": "given", "gender": "female", "name": "Индия"}, -{"usage": "given", "gender": "female", "name": "Инес"}, -{"usage": "given", "gender": "female", "name": "Иносенсия"}, -{"usage": "given", "gender": "female", "name": "Иоланда"}, -{"usage": "given", "gender": "female", "name": "Иола"}, -{"usage": "given", "gender": "female", "name": "Иона"}, -{"usage": "given", "gender": "female", "name": "Ираида"}, -{"usage": "given", "gender": "female", "name": "Ирена"}, -{"usage": "given", "gender": "female", "name": "Ирина"}, -{"usage": "given", "gender": "female", "name": "Ирис"}, -{"usage": "given", "gender": "female", "name": "Ириш"}, -{"usage": "given", "gender": "female", "name": "Ирма"}, -{"usage": "given", "gender": "female", "name": "Ирэн"}, -{"usage": "given", "gender": "female", "name": "Исела"}, -{"usage": "given", "gender": "female", "name": "Исида"}, -{"usage": "given", "gender": "female", "name": "Исидра"}, -{"usage": "given", "gender": "female", "name": "Истер"}, -{"usage": "given", "gender": "female", "name": "Йетта"}, -{"usage": "given", "gender": "female", "name": "Йован"}, -{"usage": "given", "gender": "female", "name": "Йоланда"}, -{"usage": "given", "gender": "female", "name": "Йолонда"}, -{"usage": "given", "gender": "female", "name": "Йоне"}, -{"usage": "given", "gender": "female", "name": "Йонна"}, -{"usage": "given", "gender": "female", "name": "Кайла"}, -{"usage": "given", "gender": "female", "name": "Кайли"}, -{"usage": "given", "gender": "female", "name": "Кайл"}, -{"usage": "given", "gender": "female", "name": "Кай"}, -{"usage": "given", "gender": "female", "name": "Каландра"}, -{"usage": "given", "gender": "female", "name": "Кала"}, -{"usage": "given", "gender": "female", "name": "Калин"}, -{"usage": "given", "gender": "female", "name": "Калиста"}, -{"usage": "given", "gender": "female", "name": "Калли"}, -{"usage": "given", "gender": "female", "name": "Камала"}, -{"usage": "given", "gender": "female", "name": "Камелия"}, -{"usage": "given", "gender": "female", "name": "Камила"}, -{"usage": "given", "gender": "female", "name": "Камилла"}, -{"usage": "given", "gender": "female", "name": "Камиль"}, -{"usage": "given", "gender": "female", "name": "Ками"}, -{"usage": "given", "gender": "female", "name": "Канделария"}, -{"usage": "given", "gender": "female", "name": "Кандида"}, -{"usage": "given", "gender": "female", "name": "Канди"}, -{"usage": "given", "gender": "female", "name": "Кандра"}, -{"usage": "given", "gender": "female", "name": "Канеша"}, -{"usage": "given", "gender": "female", "name": "Каниша"}, -{"usage": "given", "gender": "female", "name": "Каприс"}, -{"usage": "given", "gender": "female", "name": "Каран"}, -{"usage": "given", "gender": "female", "name": "Кара"}, -{"usage": "given", "gender": "female", "name": "Карена"}, -{"usage": "given", "gender": "female", "name": "Карен"}, -{"usage": "given", "gender": "female", "name": "Каридад"}, -{"usage": "given", "gender": "female", "name": "Карима"}, -{"usage": "given", "gender": "female", "name": "Карина"}, -{"usage": "given", "gender": "female", "name": "Карин"}, -{"usage": "given", "gender": "female", "name": "Кариса"}, -{"usage": "given", "gender": "female", "name": "Карисса"}, -{"usage": "given", "gender": "female", "name": "Карита"}, -{"usage": "given", "gender": "female", "name": "Кари"}, -{"usage": "given", "gender": "female", "name": "Карла"}, -{"usage": "given", "gender": "female", "name": "Карлена"}, -{"usage": "given", "gender": "female", "name": "Карлетта"}, -{"usage": "given", "gender": "female", "name": "Карлина"}, -{"usage": "given", "gender": "female", "name": "Карлин"}, -{"usage": "given", "gender": "female", "name": "Карлита"}, -{"usage": "given", "gender": "female", "name": "Карли"}, -{"usage": "given", "gender": "female", "name": "Карлота"}, -{"usage": "given", "gender": "female", "name": "Карлотта"}, -{"usage": "given", "gender": "female", "name": "Карман"}, -{"usage": "given", "gender": "female", "name": "Карма"}, -{"usage": "given", "gender": "female", "name": "Кармела"}, -{"usage": "given", "gender": "female", "name": "Кармелина"}, -{"usage": "given", "gender": "female", "name": "Кармелита"}, -{"usage": "given", "gender": "female", "name": "Кармелия"}, -{"usage": "given", "gender": "female", "name": "Кармелла"}, -{"usage": "given", "gender": "female", "name": "Кармель"}, -{"usage": "given", "gender": "female", "name": "Кармен"}, -{"usage": "given", "gender": "female", "name": "Кармина"}, -{"usage": "given", "gender": "female", "name": "Кармон"}, -{"usage": "given", "gender": "female", "name": "Карола"}, -{"usage": "given", "gender": "female", "name": "Каролина"}, -{"usage": "given", "gender": "female", "name": "Каролин"}, -{"usage": "given", "gender": "female", "name": "Кароли"}, -{"usage": "given", "gender": "female", "name": "Кароль"}, -{"usage": "given", "gender": "female", "name": "Карон"}, -{"usage": "given", "gender": "female", "name": "Каррен"}, -{"usage": "given", "gender": "female", "name": "Карри"}, -{"usage": "given", "gender": "female", "name": "Касандра"}, -{"usage": "given", "gender": "female", "name": "Касимира"}, -{"usage": "given", "gender": "female", "name": "Кассандра"}, -{"usage": "given", "gender": "female", "name": "Кассаундра"}, -{"usage": "given", "gender": "female", "name": "Касси"}, -{"usage": "given", "gender": "female", "name": "Кассондра"}, -{"usage": "given", "gender": "female", "name": "Каталина"}, -{"usage": "given", "gender": "female", "name": "Каталин"}, -{"usage": "given", "gender": "female", "name": "Катарина"}, -{"usage": "given", "gender": "female", "name": "Катерина"}, -{"usage": "given", "gender": "female", "name": "Катерин"}, -{"usage": "given", "gender": "female", "name": "Катина"}, -{"usage": "given", "gender": "female", "name": "Кати"}, -{"usage": "given", "gender": "female", "name": "Катрина"}, -{"usage": "given", "gender": "female", "name": "Катрине"}, -{"usage": "given", "gender": "female", "name": "Катрин"}, -{"usage": "given", "gender": "female", "name": "Катрис"}, -{"usage": "given", "gender": "female", "name": "Катя"}, -{"usage": "given", "gender": "female", "name": "Каша"}, -{"usage": "given", "gender": "female", "name": "Квианна"}, -{"usage": "given", "gender": "female", "name": "Кева"}, -{"usage": "given", "gender": "female", "name": "Кейла"}, -{"usage": "given", "gender": "female", "name": "Кейлин"}, -{"usage": "given", "gender": "female", "name": "Кейли"}, -{"usage": "given", "gender": "female", "name": "Кейси"}, -{"usage": "given", "gender": "female", "name": "Кейсси"}, -{"usage": "given", "gender": "female", "name": "Кейс"}, -{"usage": "given", "gender": "female", "name": "Кейтлин"}, -{"usage": "given", "gender": "female", "name": "Кейт"}, -{"usage": "given", "gender": "female", "name": "Кейша"}, -{"usage": "given", "gender": "female", "name": "Кей"}, -{"usage": "given", "gender": "female", "name": "Кели"}, -{"usage": "given", "gender": "female", "name": "Келли"}, -{"usage": "given", "gender": "female", "name": "Келси"}, -{"usage": "given", "gender": "female", "name": "Кемберли"}, -{"usage": "given", "gender": "female", "name": "Кена"}, -{"usage": "given", "gender": "female", "name": "Кендал"}, -{"usage": "given", "gender": "female", "name": "Кенда"}, -{"usage": "given", "gender": "female", "name": "Кенденс"}, -{"usage": "given", "gender": "female", "name": "Кендра"}, -{"usage": "given", "gender": "female", "name": "Кениата"}, -{"usage": "given", "gender": "female", "name": "Кениатта"}, -{"usage": "given", "gender": "female", "name": "Кениша"}, -{"usage": "given", "gender": "female", "name": "Кения"}, -{"usage": "given", "gender": "female", "name": "Кенна"}, -{"usage": "given", "gender": "female", "name": "Кеннет"}, -{"usage": "given", "gender": "female", "name": "Кера"}, -{"usage": "given", "gender": "female", "name": "Керен"}, -{"usage": "given", "gender": "female", "name": "Кери"}, -{"usage": "given", "gender": "female", "name": "Керри"}, -{"usage": "given", "gender": "female", "name": "Керстин"}, -{"usage": "given", "gender": "female", "name": "Кертис"}, -{"usage": "given", "gender": "female", "name": "Кетура"}, -{"usage": "given", "gender": "female", "name": "Кеша"}, -{"usage": "given", "gender": "female", "name": "Кешия"}, -{"usage": "given", "gender": "female", "name": "Киана"}, -{"usage": "given", "gender": "female", "name": "Киара"}, -{"usage": "given", "gender": "female", "name": "Киззи"}, -{"usage": "given", "gender": "female", "name": "Кили"}, -{"usage": "given", "gender": "female", "name": "Кимбери"}, -{"usage": "given", "gender": "female", "name": "Кимберли"}, -{"usage": "given", "gender": "female", "name": "Кимбер"}, -{"usage": "given", "gender": "female", "name": "Кимбра"}, -{"usage": "given", "gender": "female", "name": "Кими"}, -{"usage": "given", "gender": "female", "name": "Ким"}, -{"usage": "given", "gender": "female", "name": "Кина"}, -{"usage": "given", "gender": "female", "name": "Киндра"}, -{"usage": "given", "gender": "female", "name": "Кира"}, -{"usage": "given", "gender": "female", "name": "Кирби"}, -{"usage": "given", "gender": "female", "name": "Кирстал"}, -{"usage": "given", "gender": "female", "name": "Кирстен"}, -{"usage": "given", "gender": "female", "name": "Кирсти"}, -{"usage": "given", "gender": "female", "name": "Кита"}, -{"usage": "given", "gender": "female", "name": "Китти"}, -{"usage": "given", "gender": "female", "name": "Кит"}, -{"usage": "given", "gender": "female", "name": "Киша"}, -{"usage": "given", "gender": "female", "name": "Кия"}, -{"usage": "given", "gender": "female", "name": "Клайд"}, -{"usage": "given", "gender": "female", "name": "Клара"}, -{"usage": "given", "gender": "female", "name": "Кларенс"}, -{"usage": "given", "gender": "female", "name": "Кларета"}, -{"usage": "given", "gender": "female", "name": "Кларетта"}, -{"usage": "given", "gender": "female", "name": "Кларибель"}, -{"usage": "given", "gender": "female", "name": "Кларина"}, -{"usage": "given", "gender": "female", "name": "Кларинда"}, -{"usage": "given", "gender": "female", "name": "Кларисса"}, -{"usage": "given", "gender": "female", "name": "Кларис"}, -{"usage": "given", "gender": "female", "name": "Кларита"}, -{"usage": "given", "gender": "female", "name": "Клаудиа"}, -{"usage": "given", "gender": "female", "name": "Клелия"}, -{"usage": "given", "gender": "female", "name": "Клеменсия"}, -{"usage": "given", "gender": "female", "name": "Клементина"}, -{"usage": "given", "gender": "female", "name": "Клемми"}, -{"usage": "given", "gender": "female", "name": "Клеопатра"}, -{"usage": "given", "gender": "female", "name": "Клеора"}, -{"usage": "given", "gender": "female", "name": "Клеотильда"}, -{"usage": "given", "gender": "female", "name": "Клео"}, -{"usage": "given", "gender": "female", "name": "Клер"}, -{"usage": "given", "gender": "female", "name": "Клета"}, -{"usage": "given", "gender": "female", "name": "Клодетт"}, -{"usage": "given", "gender": "female", "name": "Клодин"}, -{"usage": "given", "gender": "female", "name": "Клоди"}, -{"usage": "given", "gender": "female", "name": "Клора"}, -{"usage": "given", "gender": "female", "name": "Клоринда"}, -{"usage": "given", "gender": "female", "name": "Клотильда"}, -{"usage": "given", "gender": "female", "name": "Клэр"}, -{"usage": "given", "gender": "female", "name": "Клэсси"}, -{"usage": "given", "gender": "female", "name": "Коди"}, -{"usage": "given", "gender": "female", "name": "Колби"}, -{"usage": "given", "gender": "female", "name": "Колена"}, -{"usage": "given", "gender": "female", "name": "Колетта"}, -{"usage": "given", "gender": "female", "name": "Колетт"}, -{"usage": "given", "gender": "female", "name": "Колин"}, -{"usage": "given", "gender": "female", "name": "Коллен"}, -{"usage": "given", "gender": "female", "name": "Коллетт"}, -{"usage": "given", "gender": "female", "name": "Коллин"}, -{"usage": "given", "gender": "female", "name": "Конни"}, -{"usage": "given", "gender": "female", "name": "Консепсьон"}, -{"usage": "given", "gender": "female", "name": "Консепшн"}, -{"usage": "given", "gender": "female", "name": "Констанс"}, -{"usage": "given", "gender": "female", "name": "Консуэла"}, -{"usage": "given", "gender": "female", "name": "Контесса"}, -{"usage": "given", "gender": "female", "name": "Конча"}, -{"usage": "given", "gender": "female", "name": "Кончетта"}, -{"usage": "given", "gender": "female", "name": "Кончита"}, -{"usage": "given", "gender": "female", "name": "Корали"}, -{"usage": "given", "gender": "female", "name": "Корасон"}, -{"usage": "given", "gender": "female", "name": "Кора"}, -{"usage": "given", "gender": "female", "name": "Корделия"}, -{"usage": "given", "gender": "female", "name": "Кордия"}, -{"usage": "given", "gender": "female", "name": "Корди"}, -{"usage": "given", "gender": "female", "name": "Корена"}, -{"usage": "given", "gender": "female", "name": "Коретта"}, -{"usage": "given", "gender": "female", "name": "Корина"}, -{"usage": "given", "gender": "female", "name": "Коринна"}, -{"usage": "given", "gender": "female", "name": "Корин"}, -{"usage": "given", "gender": "female", "name": "Кори"}, -{"usage": "given", "gender": "female", "name": "Корлисс"}, -{"usage": "given", "gender": "female", "name": "Корнелия"}, -{"usage": "given", "gender": "female", "name": "Коррина"}, -{"usage": "given", "gender": "female", "name": "Корринн"}, -{"usage": "given", "gender": "female", "name": "Коррин"}, -{"usage": "given", "gender": "female", "name": "Корри"}, -{"usage": "given", "gender": "female", "name": "Кортни"}, -{"usage": "given", "gender": "female", "name": "Корэл"}, -{"usage": "given", "gender": "female", "name": "Креола"}, -{"usage": "given", "gender": "female", "name": "Крисельда"}, -{"usage": "given", "gender": "female", "name": "Крисси"}, -{"usage": "given", "gender": "female", "name": "Кристал"}, -{"usage": "given", "gender": "female", "name": "Кристан"}, -{"usage": "given", "gender": "female", "name": "Криста"}, -{"usage": "given", "gender": "female", "name": "Кристель"}, -{"usage": "given", "gender": "female", "name": "Кристена"}, -{"usage": "given", "gender": "female", "name": "Кристен"}, -{"usage": "given", "gender": "female", "name": "Кристиана"}, -{"usage": "given", "gender": "female", "name": "Кристиан"}, -{"usage": "given", "gender": "female", "name": "Кристина"}, -{"usage": "given", "gender": "female", "name": "Кристиния"}, -{"usage": "given", "gender": "female", "name": "Кристин"}, -{"usage": "given", "gender": "female", "name": "Кристия"}, -{"usage": "given", "gender": "female", "name": "Кристи"}, -{"usage": "given", "gender": "female", "name": "Кристл"}, -{"usage": "given", "gender": "female", "name": "Крис"}, -{"usage": "given", "gender": "female", "name": "Крус"}, -{"usage": "given", "gender": "female", "name": "Ксения"}, -{"usage": "given", "gender": "female", "name": "Куинн"}, -{"usage": "given", "gender": "female", "name": "Куин"}, -{"usage": "given", "gender": "female", "name": "Кук"}, -{"usage": "given", "gender": "female", "name": "Куэн"}, -{"usage": "given", "gender": "female", "name": "Кэй"}, -{"usage": "given", "gender": "female", "name": "Кэмерон"}, -{"usage": "given", "gender": "female", "name": "Кэмми"}, -{"usage": "given", "gender": "female", "name": "Кэм"}, -{"usage": "given", "gender": "female", "name": "Кэндес"}, -{"usage": "given", "gender": "female", "name": "Кэндис"}, -{"usage": "given", "gender": "female", "name": "Кэнди"}, -{"usage": "given", "gender": "female", "name": "Кэрил"}, -{"usage": "given", "gender": "female", "name": "Кэрин"}, -{"usage": "given", "gender": "female", "name": "Кэри"}, -{"usage": "given", "gender": "female", "name": "Кэролл"}, -{"usage": "given", "gender": "female", "name": "Кэролэнн"}, -{"usage": "given", "gender": "female", "name": "Кэрол"}, -{"usage": "given", "gender": "female", "name": "Кэрри"}, -{"usage": "given", "gender": "female", "name": "Кэрролл"}, -{"usage": "given", "gender": "female", "name": "Кэррол"}, -{"usage": "given", "gender": "female", "name": "Кэссиди"}, -{"usage": "given", "gender": "female", "name": "Кэсси"}, -{"usage": "given", "gender": "female", "name": "Кэтерн"}, -{"usage": "given", "gender": "female", "name": "Кэти"}, -{"usage": "given", "gender": "female", "name": "Кэтлин"}, -{"usage": "given", "gender": "female", "name": "Кэтрин"}, -{"usage": "given", "gender": "female", "name": "Кэтти"}, -{"usage": "given", "gender": "female", "name": "Кэт"}, -{"usage": "given", "gender": "female", "name": "ЛаДонна"}, -{"usage": "given", "gender": "female", "name": "ЛаКейша"}, -{"usage": "given", "gender": "female", "name": "ЛаКения"}, -{"usage": "given", "gender": "female", "name": "ЛаХуана"}, -{"usage": "given", "gender": "female", "name": "Лавада"}, -{"usage": "given", "gender": "female", "name": "Лавана"}, -{"usage": "given", "gender": "female", "name": "Лаванда"}, -{"usage": "given", "gender": "female", "name": "Лаванна"}, -{"usage": "given", "gender": "female", "name": "Лавения"}, -{"usage": "given", "gender": "female", "name": "Лавера"}, -{"usage": "given", "gender": "female", "name": "Лаверна"}, -{"usage": "given", "gender": "female", "name": "Лаверн"}, -{"usage": "given", "gender": "female", "name": "Лавета"}, -{"usage": "given", "gender": "female", "name": "Лаветта"}, -{"usage": "given", "gender": "female", "name": "Лавина"}, -{"usage": "given", "gender": "female", "name": "Лавиния"}, -{"usage": "given", "gender": "female", "name": "Лавона"}, -{"usage": "given", "gender": "female", "name": "Лавонда"}, -{"usage": "given", "gender": "female", "name": "Лавония"}, -{"usage": "given", "gender": "female", "name": "Лавонна"}, -{"usage": "given", "gender": "female", "name": "Лавон"}, -{"usage": "given", "gender": "female", "name": "Лав"}, -{"usage": "given", "gender": "female", "name": "Лайла"}, -{"usage": "given", "gender": "female", "name": "Лайнелл"}, -{"usage": "given", "gender": "female", "name": "Лай"}, -{"usage": "given", "gender": "female", "name": "Лакендра"}, -{"usage": "given", "gender": "female", "name": "Лакеша"}, -{"usage": "given", "gender": "female", "name": "Лакешия"}, -{"usage": "given", "gender": "female", "name": "Лакита"}, -{"usage": "given", "gender": "female", "name": "Лакиша"}, -{"usage": "given", "gender": "female", "name": "Лакия"}, -{"usage": "given", "gender": "female", "name": "Лакреша"}, -{"usage": "given", "gender": "female", "name": "Лакуанда"}, -{"usage": "given", "gender": "female", "name": "Лакуита"}, -{"usage": "given", "gender": "female", "name": "Лала"}, -{"usage": "given", "gender": "female", "name": "Ламоника"}, -{"usage": "given", "gender": "female", "name": "Лана"}, -{"usage": "given", "gender": "female", "name": "Ланетт"}, -{"usage": "given", "gender": "female", "name": "Ланита"}, -{"usage": "given", "gender": "female", "name": "Лани"}, -{"usage": "given", "gender": "female", "name": "Ланора"}, -{"usage": "given", "gender": "female", "name": "Ланэ"}, -{"usage": "given", "gender": "female", "name": "Лара"}, -{"usage": "given", "gender": "female", "name": "Лариса"}, -{"usage": "given", "gender": "female", "name": "Ларита"}, -{"usage": "given", "gender": "female", "name": "Лари"}, -{"usage": "given", "gender": "female", "name": "Ларлин"}, -{"usage": "given", "gender": "female", "name": "Ларонда"}, -{"usage": "given", "gender": "female", "name": "Ларри"}, -{"usage": "given", "gender": "female", "name": "Ларрэйн"}, -{"usage": "given", "gender": "female", "name": "Лару"}, -{"usage": "given", "gender": "female", "name": "Ласандра"}, -{"usage": "given", "gender": "female", "name": "Ласонья"}, -{"usage": "given", "gender": "female", "name": "Латеша"}, -{"usage": "given", "gender": "female", "name": "Латина"}, -{"usage": "given", "gender": "female", "name": "Латисия"}, -{"usage": "given", "gender": "female", "name": "Латиша"}, -{"usage": "given", "gender": "female", "name": "Латия"}, -{"usage": "given", "gender": "female", "name": "Латония"}, -{"usage": "given", "gender": "female", "name": "Латория"}, -{"usage": "given", "gender": "female", "name": "Латоша"}, -{"usage": "given", "gender": "female", "name": "Латоя"}, -{"usage": "given", "gender": "female", "name": "Латрина"}, -{"usage": "given", "gender": "female", "name": "Латриса"}, -{"usage": "given", "gender": "female", "name": "Латрисия"}, -{"usage": "given", "gender": "female", "name": "Латриша"}, -{"usage": "given", "gender": "female", "name": "Лаура"}, -{"usage": "given", "gender": "female", "name": "Лаури"}, -{"usage": "given", "gender": "female", "name": "Лахома"}, -{"usage": "given", "gender": "female", "name": "Лашанда"}, -{"usage": "given", "gender": "female", "name": "Лашель"}, -{"usage": "given", "gender": "female", "name": "Лашонда"}, -{"usage": "given", "gender": "female", "name": "Лашон"}, -{"usage": "given", "gender": "female", "name": "Лашоуна"}, -{"usage": "given", "gender": "female", "name": "Лашоун"}, -{"usage": "given", "gender": "female", "name": "Лашунда"}, -{"usage": "given", "gender": "female", "name": "ЛеАнна"}, -{"usage": "given", "gender": "female", "name": "Леандра"}, -{"usage": "given", "gender": "female", "name": "Леанора"}, -{"usage": "given", "gender": "female", "name": "Леата"}, -{"usage": "given", "gender": "female", "name": "Леда"}, -{"usage": "given", "gender": "female", "name": "Леиза"}, -{"usage": "given", "gender": "female", "name": "Лейганн"}, -{"usage": "given", "gender": "female", "name": "Лейда"}, -{"usage": "given", "gender": "female", "name": "Лейлани"}, -{"usage": "given", "gender": "female", "name": "Лейла"}, -{"usage": "given", "gender": "female", "name": "Лейси"}, -{"usage": "given", "gender": "female", "name": "Лейша"}, -{"usage": "given", "gender": "female", "name": "Лекиша"}, -{"usage": "given", "gender": "female", "name": "Лекси"}, -{"usage": "given", "gender": "female", "name": "Лела"}, -{"usage": "given", "gender": "female", "name": "Лелия"}, -{"usage": "given", "gender": "female", "name": "Лена"}, -{"usage": "given", "gender": "female", "name": "Ленита"}, -{"usage": "given", "gender": "female", "name": "Ленна"}, -{"usage": "given", "gender": "female", "name": "Ленни"}, -{"usage": "given", "gender": "female", "name": "Ленора"}, -{"usage": "given", "gender": "female", "name": "Ленор"}, -{"usage": "given", "gender": "female", "name": "Леола"}, -{"usage": "given", "gender": "female", "name": "Леома"}, -{"usage": "given", "gender": "female", "name": "Леонарда"}, -{"usage": "given", "gender": "female", "name": "Леона"}, -{"usage": "given", "gender": "female", "name": "Леоне"}, -{"usage": "given", "gender": "female", "name": "Леонида"}, -{"usage": "given", "gender": "female", "name": "Леонила"}, -{"usage": "given", "gender": "female", "name": "Леония"}, -{"usage": "given", "gender": "female", "name": "Леони"}, -{"usage": "given", "gender": "female", "name": "Леонора"}, -{"usage": "given", "gender": "female", "name": "Леонор"}, -{"usage": "given", "gender": "female", "name": "Леонтина"}, -{"usage": "given", "gender": "female", "name": "Леон"}, -{"usage": "given", "gender": "female", "name": "Леота"}, -{"usage": "given", "gender": "female", "name": "Лера"}, -{"usage": "given", "gender": "female", "name": "Леса"}, -{"usage": "given", "gender": "female", "name": "Лесли"}, -{"usage": "given", "gender": "female", "name": "Лесси"}, -{"usage": "given", "gender": "female", "name": "Лестер"}, -{"usage": "given", "gender": "female", "name": "Леся"}, -{"usage": "given", "gender": "female", "name": "Лета"}, -{"usage": "given", "gender": "female", "name": "Летисия"}, -{"usage": "given", "gender": "female", "name": "Летиша"}, -{"usage": "given", "gender": "female", "name": "Летишия"}, -{"usage": "given", "gender": "female", "name": "Летти"}, -{"usage": "given", "gender": "female", "name": "Леша"}, -{"usage": "given", "gender": "female", "name": "Лешия"}, -{"usage": "given", "gender": "female", "name": "Лея"}, -{"usage": "given", "gender": "female", "name": "ЛиЭнн"}, -{"usage": "given", "gender": "female", "name": "Лиана"}, -{"usage": "given", "gender": "female", "name": "Лианна"}, -{"usage": "given", "gender": "female", "name": "Лиа"}, -{"usage": "given", "gender": "female", "name": "Либби"}, -{"usage": "given", "gender": "female", "name": "Либерти"}, -{"usage": "given", "gender": "female", "name": "Либрада"}, -{"usage": "given", "gender": "female", "name": "Ливия"}, -{"usage": "given", "gender": "female", "name": "Лигия"}, -{"usage": "given", "gender": "female", "name": "Лида"}, -{"usage": "given", "gender": "female", "name": "Лидия"}, -{"usage": "given", "gender": "female", "name": "Лизабет"}, -{"usage": "given", "gender": "female", "name": "Лиза"}, -{"usage": "given", "gender": "female", "name": "Лизбет"}, -{"usage": "given", "gender": "female", "name": "Лизелотта"}, -{"usage": "given", "gender": "female", "name": "Лизетт"}, -{"usage": "given", "gender": "female", "name": "Лизет"}, -{"usage": "given", "gender": "female", "name": "Лиззетт"}, -{"usage": "given", "gender": "female", "name": "Лиззи"}, -{"usage": "given", "gender": "female", "name": "Лиз"}, -{"usage": "given", "gender": "female", "name": "Лила"}, -{"usage": "given", "gender": "female", "name": "Лилиана"}, -{"usage": "given", "gender": "female", "name": "Лилиан"}, -{"usage": "given", "gender": "female", "name": "Лилия"}, -{"usage": "given", "gender": "female", "name": "Лили"}, -{"usage": "given", "gender": "female", "name": "Лилла"}, -{"usage": "given", "gender": "female", "name": "Лиллиам"}, -{"usage": "given", "gender": "female", "name": "Лиллия"}, -{"usage": "given", "gender": "female", "name": "Лилли"}, -{"usage": "given", "gender": "female", "name": "Лина"}, -{"usage": "given", "gender": "female", "name": "Линда"}, -{"usage": "given", "gender": "female", "name": "Линдия"}, -{"usage": "given", "gender": "female", "name": "Линди"}, -{"usage": "given", "gender": "female", "name": "Линдсей"}, -{"usage": "given", "gender": "female", "name": "Линдси"}, -{"usage": "given", "gender": "female", "name": "Линетта"}, -{"usage": "given", "gender": "female", "name": "Линетт"}, -{"usage": "given", "gender": "female", "name": "Линна"}, -{"usage": "given", "gender": "female", "name": "Линни"}, -{"usage": "given", "gender": "female", "name": "Линн"}, -{"usage": "given", "gender": "female", "name": "Линси"}, -{"usage": "given", "gender": "female", "name": "Лиора"}, -{"usage": "given", "gender": "female", "name": "Лисандра"}, -{"usage": "given", "gender": "female", "name": "Лиса"}, -{"usage": "given", "gender": "female", "name": "Лисбет"}, -{"usage": "given", "gender": "female", "name": "Лисса"}, -{"usage": "given", "gender": "female", "name": "Лиссетта"}, -{"usage": "given", "gender": "female", "name": "Лита"}, -{"usage": "given", "gender": "female", "name": "Литрис"}, -{"usage": "given", "gender": "female", "name": "Лиша"}, -{"usage": "given", "gender": "female", "name": "Лиэнн"}, -{"usage": "given", "gender": "female", "name": "Лия"}, -{"usage": "given", "gender": "female", "name": "Лоан"}, -{"usage": "given", "gender": "female", "name": "Ловелла"}, -{"usage": "given", "gender": "female", "name": "Ловения"}, -{"usage": "given", "gender": "female", "name": "Ловетта"}, -{"usage": "given", "gender": "female", "name": "Лови"}, -{"usage": "given", "gender": "female", "name": "Логан"}, -{"usage": "given", "gender": "female", "name": "Лоида"}, -{"usage": "given", "gender": "female", "name": "Лоис"}, -{"usage": "given", "gender": "female", "name": "Лойс"}, -{"usage": "given", "gender": "female", "name": "Лола"}, -{"usage": "given", "gender": "female", "name": "Лолита"}, -{"usage": "given", "gender": "female", "name": "Лома"}, -{"usage": "given", "gender": "female", "name": "Лона"}, -{"usage": "given", "gender": "female", "name": "Лонда"}, -{"usage": "given", "gender": "female", "name": "Лони"}, -{"usage": "given", "gender": "female", "name": "Лонна"}, -{"usage": "given", "gender": "female", "name": "Лонни"}, -{"usage": "given", "gender": "female", "name": "Лоран"}, -{"usage": "given", "gender": "female", "name": "Лора"}, -{"usage": "given", "gender": "female", "name": "Лореан"}, -{"usage": "given", "gender": "female", "name": "Лорейн"}, -{"usage": "given", "gender": "female", "name": "Лорелея"}, -{"usage": "given", "gender": "female", "name": "Лорел"}, -{"usage": "given", "gender": "female", "name": "Лорена"}, -{"usage": "given", "gender": "female", "name": "Лоренс"}, -{"usage": "given", "gender": "female", "name": "Лоренца"}, -{"usage": "given", "gender": "female", "name": "Лорен"}, -{"usage": "given", "gender": "female", "name": "Лорета"}, -{"usage": "given", "gender": "female", "name": "Лоретта"}, -{"usage": "given", "gender": "female", "name": "Лорет"}, -{"usage": "given", "gender": "female", "name": "Лоре"}, -{"usage": "given", "gender": "female", "name": "ЛориЭнн"}, -{"usage": "given", "gender": "female", "name": "Лорили"}, -{"usage": "given", "gender": "female", "name": "Лорина"}, -{"usage": "given", "gender": "female", "name": "Лоринда"}, -{"usage": "given", "gender": "female", "name": "Лорин"}, -{"usage": "given", "gender": "female", "name": "Лорис"}, -{"usage": "given", "gender": "female", "name": "Лорита"}, -{"usage": "given", "gender": "female", "name": "Лория"}, -{"usage": "given", "gender": "female", "name": "Лори"}, -{"usage": "given", "gender": "female", "name": "Лорна"}, -{"usage": "given", "gender": "female", "name": "Лорретта"}, -{"usage": "given", "gender": "female", "name": "Лоррина"}, -{"usage": "given", "gender": "female", "name": "Лорри"}, -{"usage": "given", "gender": "female", "name": "Лоррэйн"}, -{"usage": "given", "gender": "female", "name": "Лорэли"}, -{"usage": "given", "gender": "female", "name": "Лор"}, -{"usage": "given", "gender": "female", "name": "Лотти"}, -{"usage": "given", "gender": "female", "name": "Лоурэли"}, -{"usage": "given", "gender": "female", "name": "Луана"}, -{"usage": "given", "gender": "female", "name": "Луанна"}, -{"usage": "given", "gender": "female", "name": "Луанн"}, -{"usage": "given", "gender": "female", "name": "Луан"}, -{"usage": "given", "gender": "female", "name": "Луиза"}, -{"usage": "given", "gender": "female", "name": "Луис"}, -{"usage": "given", "gender": "female", "name": "Луи"}, -{"usage": "given", "gender": "female", "name": "Лукреция"}, -{"usage": "given", "gender": "female", "name": "Лула"}, -{"usage": "given", "gender": "female", "name": "Лулу"}, -{"usage": "given", "gender": "female", "name": "Луна"}, -{"usage": "given", "gender": "female", "name": "Лупе"}, -{"usage": "given", "gender": "female", "name": "Лупита"}, -{"usage": "given", "gender": "female", "name": "Лура"}, -{"usage": "given", "gender": "female", "name": "Лурдес"}, -{"usage": "given", "gender": "female", "name": "Лусила"}, -{"usage": "given", "gender": "female", "name": "Лусилла"}, -{"usage": "given", "gender": "female", "name": "Луэлла"}, -{"usage": "given", "gender": "female", "name": "Луэнн"}, -{"usage": "given", "gender": "female", "name": "Луэтта"}, -{"usage": "given", "gender": "female", "name": "Лу"}, -{"usage": "given", "gender": "female", "name": "Льюис"}, -{"usage": "given", "gender": "female", "name": "Лэвелл"}, -{"usage": "given", "gender": "female", "name": "Лэйл"}, -{"usage": "given", "gender": "female", "name": "Лэйнелл"}, -{"usage": "given", "gender": "female", "name": "Лэйнель"}, -{"usage": "given", "gender": "female", "name": "Лэйн"}, -{"usage": "given", "gender": "female", "name": "Лэнни"}, -{"usage": "given", "gender": "female", "name": "Лэси"}, -{"usage": "given", "gender": "female", "name": "Лэшей"}, -{"usage": "given", "gender": "female", "name": "Люба"}, -{"usage": "given", "gender": "female", "name": "Люсиана"}, -{"usage": "given", "gender": "female", "name": "Люсиль"}, -{"usage": "given", "gender": "female", "name": "Люсина"}, -{"usage": "given", "gender": "female", "name": "Люсинда"}, -{"usage": "given", "gender": "female", "name": "Люсия"}, -{"usage": "given", "gender": "female", "name": "Люси"}, -{"usage": "given", "gender": "female", "name": "Люсьен"}, -{"usage": "given", "gender": "female", "name": "Мабелль"}, -{"usage": "given", "gender": "female", "name": "Магали"}, -{"usage": "given", "gender": "female", "name": "Магарет"}, -{"usage": "given", "gender": "female", "name": "Магдалена"}, -{"usage": "given", "gender": "female", "name": "Магдалина"}, -{"usage": "given", "gender": "female", "name": "Магда"}, -{"usage": "given", "gender": "female", "name": "Маген"}, -{"usage": "given", "gender": "female", "name": "Магнолия"}, -{"usage": "given", "gender": "female", "name": "Маджори"}, -{"usage": "given", "gender": "female", "name": "Мадлен"}, -{"usage": "given", "gender": "female", "name": "Мадонна"}, -{"usage": "given", "gender": "female", "name": "Майда"}, -{"usage": "given", "gender": "female", "name": "Майма"}, -{"usage": "given", "gender": "female", "name": "Майола"}, -{"usage": "given", "gender": "female", "name": "Майра"}, -{"usage": "given", "gender": "female", "name": "Майя"}, -{"usage": "given", "gender": "female", "name": "Май"}, -{"usage": "given", "gender": "female", "name": "Македа"}, -{"usage": "given", "gender": "female", "name": "Маккензи"}, -{"usage": "given", "gender": "female", "name": "Максима"}, -{"usage": "given", "gender": "female", "name": "Максимина"}, -{"usage": "given", "gender": "female", "name": "Максин"}, -{"usage": "given", "gender": "female", "name": "Макси"}, -{"usage": "given", "gender": "female", "name": "Малена"}, -{"usage": "given", "gender": "female", "name": "Малика"}, -{"usage": "given", "gender": "female", "name": "Малинда"}, -{"usage": "given", "gender": "female", "name": "Малиса"}, -{"usage": "given", "gender": "female", "name": "Малисса"}, -{"usage": "given", "gender": "female", "name": "Малия"}, -{"usage": "given", "gender": "female", "name": "Малка"}, -{"usage": "given", "gender": "female", "name": "Маллори"}, -{"usage": "given", "gender": "female", "name": "Мальвина"}, -{"usage": "given", "gender": "female", "name": "Мана"}, -{"usage": "given", "gender": "female", "name": "Мани"}, -{"usage": "given", "gender": "female", "name": "Мануэла"}, -{"usage": "given", "gender": "female", "name": "Мапл"}, -{"usage": "given", "gender": "female", "name": "Маранда"}, -{"usage": "given", "gender": "female", "name": "Мара"}, -{"usage": "given", "gender": "female", "name": "Марва"}, -{"usage": "given", "gender": "female", "name": "Марвелла"}, -{"usage": "given", "gender": "female", "name": "Марвел"}, -{"usage": "given", "gender": "female", "name": "Марвис"}, -{"usage": "given", "gender": "female", "name": "Маргарета"}, -{"usage": "given", "gender": "female", "name": "Маргаретта"}, -{"usage": "given", "gender": "female", "name": "Маргаретт"}, -{"usage": "given", "gender": "female", "name": "Маргарет"}, -{"usage": "given", "gender": "female", "name": "Маргарита"}, -{"usage": "given", "gender": "female", "name": "Маргарит"}, -{"usage": "given", "gender": "female", "name": "Маргерит"}, -{"usage": "given", "gender": "female", "name": "Маргит"}, -{"usage": "given", "gender": "female", "name": "Марго"}, -{"usage": "given", "gender": "female", "name": "Маргрет"}, -{"usage": "given", "gender": "female", "name": "Марджери"}, -{"usage": "given", "gender": "female", "name": "Марджин"}, -{"usage": "given", "gender": "female", "name": "Марджи"}, -{"usage": "given", "gender": "female", "name": "Марджори"}, -{"usage": "given", "gender": "female", "name": "Мардж"}, -{"usage": "given", "gender": "female", "name": "Марен"}, -{"usage": "given", "gender": "female", "name": "Маржерет"}, -{"usage": "given", "gender": "female", "name": "Марж"}, -{"usage": "given", "gender": "female", "name": "Мариам"}, -{"usage": "given", "gender": "female", "name": "Марианела"}, -{"usage": "given", "gender": "female", "name": "Марианна"}, -{"usage": "given", "gender": "female", "name": "Марианн"}, -{"usage": "given", "gender": "female", "name": "Марибель"}, -{"usage": "given", "gender": "female", "name": "Марибет"}, -{"usage": "given", "gender": "female", "name": "Маривель"}, -{"usage": "given", "gender": "female", "name": "Марика"}, -{"usage": "given", "gender": "female", "name": "Марикрус"}, -{"usage": "given", "gender": "female", "name": "Марилу"}, -{"usage": "given", "gender": "female", "name": "Марина"}, -{"usage": "given", "gender": "female", "name": "Маринда"}, -{"usage": "given", "gender": "female", "name": "Марин"}, -{"usage": "given", "gender": "female", "name": "Марион"}, -{"usage": "given", "gender": "female", "name": "Мариса"}, -{"usage": "given", "gender": "female", "name": "Марисела"}, -{"usage": "given", "gender": "female", "name": "Марисоль"}, -{"usage": "given", "gender": "female", "name": "Марисса"}, -{"usage": "given", "gender": "female", "name": "Марис"}, -{"usage": "given", "gender": "female", "name": "Марита"}, -{"usage": "given", "gender": "female", "name": "Марица"}, -{"usage": "given", "gender": "female", "name": "Мариша"}, -{"usage": "given", "gender": "female", "name": "Мариэла"}, -{"usage": "given", "gender": "female", "name": "Мариэль"}, -{"usage": "given", "gender": "female", "name": "Мариэтта"}, -{"usage": "given", "gender": "female", "name": "Мария"}, -{"usage": "given", "gender": "female", "name": "Мари"}, -{"usage": "given", "gender": "female", "name": "Маркетта"}, -{"usage": "given", "gender": "female", "name": "Маркита"}, -{"usage": "given", "gender": "female", "name": "Маркс"}, -{"usage": "given", "gender": "female", "name": "Марлана"}, -{"usage": "given", "gender": "female", "name": "Марла"}, -{"usage": "given", "gender": "female", "name": "Марлена"}, -{"usage": "given", "gender": "female", "name": "Марлен"}, -{"usage": "given", "gender": "female", "name": "Марлин"}, -{"usage": "given", "gender": "female", "name": "Марлис"}, -{"usage": "given", "gender": "female", "name": "Марло"}, -{"usage": "given", "gender": "female", "name": "Марна"}, -{"usage": "given", "gender": "female", "name": "Марни"}, -{"usage": "given", "gender": "female", "name": "Марсела"}, -{"usage": "given", "gender": "female", "name": "Марселена"}, -{"usage": "given", "gender": "female", "name": "Марселина"}, -{"usage": "given", "gender": "female", "name": "Марселла"}, -{"usage": "given", "gender": "female", "name": "Марсель"}, -{"usage": "given", "gender": "female", "name": "Марсена"}, -{"usage": "given", "gender": "female", "name": "Марсия"}, -{"usage": "given", "gender": "female", "name": "Марси"}, -{"usage": "given", "gender": "female", "name": "Марта"}, -{"usage": "given", "gender": "female", "name": "Мартина"}, -{"usage": "given", "gender": "female", "name": "Марти"}, -{"usage": "given", "gender": "female", "name": "Марша"}, -{"usage": "given", "gender": "female", "name": "Маршель"}, -{"usage": "given", "gender": "female", "name": "Марьяна"}, -{"usage": "given", "gender": "female", "name": "Марья"}, -{"usage": "given", "gender": "female", "name": "Мата"}, -{"usage": "given", "gender": "female", "name": "Матильда"}, -{"usage": "given", "gender": "female", "name": "Маурита"}, -{"usage": "given", "gender": "female", "name": "Мафальда"}, -{"usage": "given", "gender": "female", "name": "Махалия"}, -{"usage": "given", "gender": "female", "name": "Машель"}, -{"usage": "given", "gender": "female", "name": "Меганн"}, -{"usage": "given", "gender": "female", "name": "Меган"}, -{"usage": "given", "gender": "female", "name": "Мегган"}, -{"usage": "given", "gender": "female", "name": "Мег"}, -{"usage": "given", "gender": "female", "name": "Меда"}, -{"usage": "given", "gender": "female", "name": "Мейбелл"}, -{"usage": "given", "gender": "female", "name": "Мейбл"}, -{"usage": "given", "gender": "female", "name": "Мейл"}, -{"usage": "given", "gender": "female", "name": "Мейми"}, -{"usage": "given", "gender": "female", "name": "Мейси"}, -{"usage": "given", "gender": "female", "name": "Мелания"}, -{"usage": "given", "gender": "female", "name": "Мелани"}, -{"usage": "given", "gender": "female", "name": "Мелида"}, -{"usage": "given", "gender": "female", "name": "Мелина"}, -{"usage": "given", "gender": "female", "name": "Мелинда"}, -{"usage": "given", "gender": "female", "name": "Мелиса"}, -{"usage": "given", "gender": "female", "name": "Мелисса"}, -{"usage": "given", "gender": "female", "name": "Мелиссия"}, -{"usage": "given", "gender": "female", "name": "Мелита"}, -{"usage": "given", "gender": "female", "name": "Мелия"}, -{"usage": "given", "gender": "female", "name": "Меллиса"}, -{"usage": "given", "gender": "female", "name": "Меллисса"}, -{"usage": "given", "gender": "female", "name": "Мелли"}, -{"usage": "given", "gender": "female", "name": "Мелодия"}, -{"usage": "given", "gender": "female", "name": "Мелоди"}, -{"usage": "given", "gender": "female", "name": "Мелони"}, -{"usage": "given", "gender": "female", "name": "Мельба"}, -{"usage": "given", "gender": "female", "name": "Мельва"}, -{"usage": "given", "gender": "female", "name": "Мельвина"}, -{"usage": "given", "gender": "female", "name": "Мельда"}, -{"usage": "given", "gender": "female", "name": "Менди"}, -{"usage": "given", "gender": "female", "name": "Мередит"}, -{"usage": "given", "gender": "female", "name": "Меридет"}, -{"usage": "given", "gender": "female", "name": "Меридит"}, -{"usage": "given", "gender": "female", "name": "Мерил"}, -{"usage": "given", "gender": "female", "name": "Мерисса"}, -{"usage": "given", "gender": "female", "name": "Мери"}, -{"usage": "given", "gender": "female", "name": "Мерлин"}, -{"usage": "given", "gender": "female", "name": "Мерл"}, -{"usage": "given", "gender": "female", "name": "Мерна"}, -{"usage": "given", "gender": "female", "name": "Меррили"}, -{"usage": "given", "gender": "female", "name": "Меррилл"}, -{"usage": "given", "gender": "female", "name": "Мерри"}, -{"usage": "given", "gender": "female", "name": "Мерседес"}, -{"usage": "given", "gender": "female", "name": "Мерси"}, -{"usage": "given", "gender": "female", "name": "Мерти"}, -{"usage": "given", "gender": "female", "name": "Мета"}, -{"usage": "given", "gender": "female", "name": "Мехелла"}, -{"usage": "given", "gender": "female", "name": "Мигдалия"}, -{"usage": "given", "gender": "female", "name": "Мигелина"}, -{"usage": "given", "gender": "female", "name": "Микаэла"}, -{"usage": "given", "gender": "female", "name": "Мика"}, -{"usage": "given", "gender": "female", "name": "Мики"}, -{"usage": "given", "gender": "female", "name": "Микки"}, -{"usage": "given", "gender": "female", "name": "Милагрос"}, -{"usage": "given", "gender": "female", "name": "Мила"}, -{"usage": "given", "gender": "female", "name": "Милдред"}, -{"usage": "given", "gender": "female", "name": "Милисса"}, -{"usage": "given", "gender": "female", "name": "Миллисент"}, -{"usage": "given", "gender": "female", "name": "Милли"}, -{"usage": "given", "gender": "female", "name": "Мильда"}, -{"usage": "given", "gender": "female", "name": "Мими"}, -{"usage": "given", "gender": "female", "name": "Мина"}, -{"usage": "given", "gender": "female", "name": "Минда"}, -{"usage": "given", "gender": "female", "name": "Минди"}, -{"usage": "given", "gender": "female", "name": "Минерва"}, -{"usage": "given", "gender": "female", "name": "Минна"}, -{"usage": "given", "gender": "female", "name": "Минни"}, -{"usage": "given", "gender": "female", "name": "Минта"}, -{"usage": "given", "gender": "female", "name": "Миньон"}, -{"usage": "given", "gender": "female", "name": "Миранда"}, -{"usage": "given", "gender": "female", "name": "Мира"}, -{"usage": "given", "gender": "female", "name": "Мирейя"}, -{"usage": "given", "gender": "female", "name": "Мирей"}, -{"usage": "given", "gender": "female", "name": "Мирелла"}, -{"usage": "given", "gender": "female", "name": "Мириам"}, -{"usage": "given", "gender": "female", "name": "Мириан"}, -{"usage": "given", "gender": "female", "name": "Мирл"}, -{"usage": "given", "gender": "female", "name": "Мирна"}, -{"usage": "given", "gender": "female", "name": "Мирта"}, -{"usage": "given", "gender": "female", "name": "Миртис"}, -{"usage": "given", "gender": "female", "name": "Мирти"}, -{"usage": "given", "gender": "female", "name": "Мирт"}, -{"usage": "given", "gender": "female", "name": "Мисси"}, -{"usage": "given", "gender": "female", "name": "Мисс"}, -{"usage": "given", "gender": "female", "name": "Мисти"}, -{"usage": "given", "gender": "female", "name": "Митти"}, -{"usage": "given", "gender": "female", "name": "Михаэль"}, -{"usage": "given", "gender": "female", "name": "Миха"}, -{"usage": "given", "gender": "female", "name": "Мици"}, -{"usage": "given", "gender": "female", "name": "Мичелл"}, -{"usage": "given", "gender": "female", "name": "Миша"}, -{"usage": "given", "gender": "female", "name": "Мишель"}, -{"usage": "given", "gender": "female", "name": "Мишлин"}, -{"usage": "given", "gender": "female", "name": "Миэша"}, -{"usage": "given", "gender": "female", "name": "Мия"}, -{"usage": "given", "gender": "female", "name": "Модеста"}, -{"usage": "given", "gender": "female", "name": "Моди"}, -{"usage": "given", "gender": "female", "name": "Мозелла"}, -{"usage": "given", "gender": "female", "name": "Мозли"}, -{"usage": "given", "gender": "female", "name": "Мойра"}, -{"usage": "given", "gender": "female", "name": "Молли"}, -{"usage": "given", "gender": "female", "name": "Мона"}, -{"usage": "given", "gender": "female", "name": "Моне"}, -{"usage": "given", "gender": "female", "name": "Моника"}, -{"usage": "given", "gender": "female", "name": "Моник"}, -{"usage": "given", "gender": "female", "name": "Монни"}, -{"usage": "given", "gender": "female", "name": "Монсеррат"}, -{"usage": "given", "gender": "female", "name": "Мора"}, -{"usage": "given", "gender": "female", "name": "Морган"}, -{"usage": "given", "gender": "female", "name": "Морин"}, -{"usage": "given", "gender": "female", "name": "Морис"}, -{"usage": "given", "gender": "female", "name": "Мория"}, -{"usage": "given", "gender": "female", "name": "Мэвис"}, -{"usage": "given", "gender": "female", "name": "Мэгги"}, -{"usage": "given", "gender": "female", "name": "Мэдди"}, -{"usage": "given", "gender": "female", "name": "Мэделин"}, -{"usage": "given", "gender": "female", "name": "Мэдж"}, -{"usage": "given", "gender": "female", "name": "Мэдисон"}, -{"usage": "given", "gender": "female", "name": "Мэди"}, -{"usage": "given", "gender": "female", "name": "Мэдлин"}, -{"usage": "given", "gender": "female", "name": "Мэдэлин"}, -{"usage": "given", "gender": "female", "name": "Мэзи"}, -{"usage": "given", "gender": "female", "name": "Мэйбл"}, -{"usage": "given", "gender": "female", "name": "Мэйзи"}, -{"usage": "given", "gender": "female", "name": "Мэйси"}, -{"usage": "given", "gender": "female", "name": "Мэйша"}, -{"usage": "given", "gender": "female", "name": "Мэй"}, -{"usage": "given", "gender": "female", "name": "Мэлли"}, -{"usage": "given", "gender": "female", "name": "Мэлори"}, -{"usage": "given", "gender": "female", "name": "Мэнди"}, -{"usage": "given", "gender": "female", "name": "Мэрайя"}, -{"usage": "given", "gender": "female", "name": "Мэрделл"}, -{"usage": "given", "gender": "female", "name": "МэриДжейн"}, -{"usage": "given", "gender": "female", "name": "МэриЛуиза"}, -{"usage": "given", "gender": "female", "name": "МэриРоуз"}, -{"usage": "given", "gender": "female", "name": "МэриЭлис"}, -{"usage": "given", "gender": "female", "name": "МэриЭнн"}, -{"usage": "given", "gender": "female", "name": "Мэриам"}, -{"usage": "given", "gender": "female", "name": "Мэриан"}, -{"usage": "given", "gender": "female", "name": "Мэрибель"}, -{"usage": "given", "gender": "female", "name": "Мэрибет"}, -{"usage": "given", "gender": "female", "name": "Мэриленд"}, -{"usage": "given", "gender": "female", "name": "Мэрилин"}, -{"usage": "given", "gender": "female", "name": "Мэрили"}, -{"usage": "given", "gender": "female", "name": "Мэрилу"}, -{"usage": "given", "gender": "female", "name": "Мэриэллен"}, -{"usage": "given", "gender": "female", "name": "Мэриэнн"}, -{"usage": "given", "gender": "female", "name": "Мэриэтта"}, -{"usage": "given", "gender": "female", "name": "Мэри"}, -{"usage": "given", "gender": "female", "name": "Мэрри"}, -{"usage": "given", "gender": "female", "name": "Мэтти"}, -{"usage": "given", "gender": "female", "name": "Мюриель"}, -{"usage": "given", "gender": "female", "name": "Нада"}, -{"usage": "given", "gender": "female", "name": "Надена"}, -{"usage": "given", "gender": "female", "name": "Надин"}, -{"usage": "given", "gender": "female", "name": "Надя"}, -{"usage": "given", "gender": "female", "name": "Найда"}, -{"usage": "given", "gender": "female", "name": "Найла"}, -{"usage": "given", "gender": "female", "name": "Накеша"}, -{"usage": "given", "gender": "female", "name": "Накита"}, -{"usage": "given", "gender": "female", "name": "Накиша"}, -{"usage": "given", "gender": "female", "name": "Накия"}, -{"usage": "given", "gender": "female", "name": "Нана"}, -{"usage": "given", "gender": "female", "name": "Наннетт"}, -{"usage": "given", "gender": "female", "name": "Наома"}, -{"usage": "given", "gender": "female", "name": "Наоми"}, -{"usage": "given", "gender": "female", "name": "Нарциса"}, -{"usage": "given", "gender": "female", "name": "Наталия"}, -{"usage": "given", "gender": "female", "name": "Натали"}, -{"usage": "given", "gender": "female", "name": "Наташа"}, -{"usage": "given", "gender": "female", "name": "Наташия"}, -{"usage": "given", "gender": "female", "name": "Натиша"}, -{"usage": "given", "gender": "female", "name": "Натоша"}, -{"usage": "given", "gender": "female", "name": "Невада"}, -{"usage": "given", "gender": "female", "name": "Нева"}, -{"usage": "given", "gender": "female", "name": "Неда"}, -{"usage": "given", "gender": "female", "name": "Недра"}, -{"usage": "given", "gender": "female", "name": "Неида"}, -{"usage": "given", "gender": "female", "name": "Неколь"}, -{"usage": "given", "gender": "female", "name": "Нелида"}, -{"usage": "given", "gender": "female", "name": "Нелия"}, -{"usage": "given", "gender": "female", "name": "Нелла"}, -{"usage": "given", "gender": "female", "name": "Нелли"}, -{"usage": "given", "gender": "female", "name": "Нелл"}, -{"usage": "given", "gender": "female", "name": "Нельда"}, -{"usage": "given", "gender": "female", "name": "Нена"}, -{"usage": "given", "gender": "female", "name": "Ненита"}, -{"usage": "given", "gender": "female", "name": "Неома"}, -{"usage": "given", "gender": "female", "name": "Неоми"}, -{"usage": "given", "gender": "female", "name": "Нереида"}, -{"usage": "given", "gender": "female", "name": "Нерисса"}, -{"usage": "given", "gender": "female", "name": "Нери"}, -{"usage": "given", "gender": "female", "name": "Нета"}, -{"usage": "given", "gender": "female", "name": "Нетти"}, -{"usage": "given", "gender": "female", "name": "Нида"}, -{"usage": "given", "gender": "female", "name": "Нидия"}, -{"usage": "given", "gender": "female", "name": "Никита"}, -{"usage": "given", "gender": "female", "name": "Никия"}, -{"usage": "given", "gender": "female", "name": "Ники"}, -{"usage": "given", "gender": "female", "name": "Никки"}, -{"usage": "given", "gender": "female", "name": "Николаса"}, -{"usage": "given", "gender": "female", "name": "Никола"}, -{"usage": "given", "gender": "female", "name": "Николетт"}, -{"usage": "given", "gender": "female", "name": "Николе"}, -{"usage": "given", "gender": "female", "name": "Николь"}, -{"usage": "given", "gender": "female", "name": "Нила"}, -{"usage": "given", "gender": "female", "name": "Нили"}, -{"usage": "given", "gender": "female", "name": "Нилса"}, -{"usage": "given", "gender": "female", "name": "Нильди"}, -{"usage": "given", "gender": "female", "name": "Нина"}, -{"usage": "given", "gender": "female", "name": "Нинфа"}, -{"usage": "given", "gender": "female", "name": "Нита"}, -{"usage": "given", "gender": "female", "name": "Ниша"}, -{"usage": "given", "gender": "female", "name": "Нишелль"}, -{"usage": "given", "gender": "female", "name": "Ния"}, -{"usage": "given", "gender": "female", "name": "Нова"}, -{"usage": "given", "gender": "female", "name": "Новелла"}, -{"usage": "given", "gender": "female", "name": "Нола"}, -{"usage": "given", "gender": "female", "name": "Нома"}, -{"usage": "given", "gender": "female", "name": "Нона"}, -{"usage": "given", "gender": "female", "name": "Нора"}, -{"usage": "given", "gender": "female", "name": "Норин"}, -{"usage": "given", "gender": "female", "name": "Норма"}, -{"usage": "given", "gender": "female", "name": "Ноэлия"}, -{"usage": "given", "gender": "female", "name": "Ноэлла"}, -{"usage": "given", "gender": "female", "name": "Ноэль"}, -{"usage": "given", "gender": "female", "name": "Ноэми"}, -{"usage": "given", "gender": "female", "name": "Нубия"}, -{"usage": "given", "gender": "female", "name": "Ньевес"}, -{"usage": "given", "gender": "female", "name": "Нэнетт"}, -{"usage": "given", "gender": "female", "name": "Нэнни"}, -{"usage": "given", "gender": "female", "name": "Нэнси"}, -{"usage": "given", "gender": "female", "name": "Обдулия"}, -{"usage": "given", "gender": "female", "name": "Обри"}, -{"usage": "given", "gender": "female", "name": "Ода"}, -{"usage": "given", "gender": "female", "name": "Оделия"}, -{"usage": "given", "gender": "female", "name": "Одель"}, -{"usage": "given", "gender": "female", "name": "Одесса"}, -{"usage": "given", "gender": "female", "name": "Одетта"}, -{"usage": "given", "gender": "female", "name": "Одилия"}, -{"usage": "given", "gender": "female", "name": "Оди"}, -{"usage": "given", "gender": "female", "name": "Одра"}, -{"usage": "given", "gender": "female", "name": "Одреа"}, -{"usage": "given", "gender": "female", "name": "Одрия"}, -{"usage": "given", "gender": "female", "name": "Одри"}, -{"usage": "given", "gender": "female", "name": "Озелла"}, -{"usage": "given", "gender": "female", "name": "Ози"}, -{"usage": "given", "gender": "female", "name": "Оида"}, -{"usage": "given", "gender": "female", "name": "Октавия"}, -{"usage": "given", "gender": "female", "name": "Ола"}, -{"usage": "given", "gender": "female", "name": "Олевия"}, -{"usage": "given", "gender": "female", "name": "Олета"}, -{"usage": "given", "gender": "female", "name": "Олива"}, -{"usage": "given", "gender": "female", "name": "Оливия"}, -{"usage": "given", "gender": "female", "name": "Олимпия"}, -{"usage": "given", "gender": "female", "name": "Олинда"}, -{"usage": "given", "gender": "female", "name": "Олли"}, -{"usage": "given", "gender": "female", "name": "Ольга"}, -{"usage": "given", "gender": "female", "name": "Ома"}, -{"usage": "given", "gender": "female", "name": "Омега"}, -{"usage": "given", "gender": "female", "name": "Она"}, -{"usage": "given", "gender": "female", "name": "Ондреа"}, -{"usage": "given", "gender": "female", "name": "Онейда"}, -{"usage": "given", "gender": "female", "name": "Онита"}, -{"usage": "given", "gender": "female", "name": "Они"}, -{"usage": "given", "gender": "female", "name": "Опал"}, -{"usage": "given", "gender": "female", "name": "Оралия"}, -{"usage": "given", "gender": "female", "name": "Орали"}, -{"usage": "given", "gender": "female", "name": "Ора"}, -{"usage": "given", "gender": "female", "name": "Орета"}, -{"usage": "given", "gender": "female", "name": "Орея"}, -{"usage": "given", "gender": "female", "name": "Орфа"}, -{"usage": "given", "gender": "female", "name": "Оси"}, -{"usage": "given", "gender": "female", "name": "Осси"}, -{"usage": "given", "gender": "female", "name": "Остин"}, -{"usage": "given", "gender": "female", "name": "Ота"}, -{"usage": "given", "gender": "female", "name": "Отелия"}, -{"usage": "given", "gender": "female", "name": "Отем"}, -{"usage": "given", "gender": "female", "name": "Отилия"}, -{"usage": "given", "gender": "female", "name": "Офелия"}, -{"usage": "given", "gender": "female", "name": "Пайпер"}, -{"usage": "given", "gender": "female", "name": "Пальма"}, -{"usage": "given", "gender": "female", "name": "Пальмира"}, -{"usage": "given", "gender": "female", "name": "Памала"}, -{"usage": "given", "gender": "female", "name": "Памела"}, -{"usage": "given", "gender": "female", "name": "Памелия"}, -{"usage": "given", "gender": "female", "name": "Памелла"}, -{"usage": "given", "gender": "female", "name": "Памила"}, -{"usage": "given", "gender": "female", "name": "Пандора"}, -{"usage": "given", "gender": "female", "name": "Паола"}, -{"usage": "given", "gender": "female", "name": "Партения"}, -{"usage": "given", "gender": "female", "name": "Партиша"}, -{"usage": "given", "gender": "female", "name": "Пас"}, -{"usage": "given", "gender": "female", "name": "Патрика"}, -{"usage": "given", "gender": "female", "name": "Патрина"}, -{"usage": "given", "gender": "female", "name": "Патрис"}, -{"usage": "given", "gender": "female", "name": "Патриция"}, -{"usage": "given", "gender": "female", "name": "Патрия"}, -{"usage": "given", "gender": "female", "name": "Паула"}, -{"usage": "given", "gender": "female", "name": "Пегги"}, -{"usage": "given", "gender": "female", "name": "Пег"}, -{"usage": "given", "gender": "female", "name": "Пейдж"}, -{"usage": "given", "gender": "female", "name": "Пейшнс"}, -{"usage": "given", "gender": "female", "name": "Пенелопа"}, -{"usage": "given", "gender": "female", "name": "Пенни"}, -{"usage": "given", "gender": "female", "name": "Перла"}, -{"usage": "given", "gender": "female", "name": "Перл"}, -{"usage": "given", "gender": "female", "name": "Перри"}, -{"usage": "given", "gender": "female", "name": "Петра"}, -{"usage": "given", "gender": "female", "name": "Петрина"}, -{"usage": "given", "gender": "female", "name": "Петронила"}, -{"usage": "given", "gender": "female", "name": "Пилар"}, -{"usage": "given", "gender": "female", "name": "Пинки"}, -{"usage": "given", "gender": "female", "name": "Пия"}, -{"usage": "given", "gender": "female", "name": "Полетта"}, -{"usage": "given", "gender": "female", "name": "Полина"}, -{"usage": "given", "gender": "female", "name": "Полин"}, -{"usage": "given", "gender": "female", "name": "Полита"}, -{"usage": "given", "gender": "female", "name": "Полли"}, -{"usage": "given", "gender": "female", "name": "Поль"}, -{"usage": "given", "gender": "female", "name": "Порша"}, -{"usage": "given", "gender": "female", "name": "Прешес"}, -{"usage": "given", "gender": "female", "name": "Присила"}, -{"usage": "given", "gender": "female", "name": "Присилла"}, -{"usage": "given", "gender": "female", "name": "Присцилла"}, -{"usage": "given", "gender": "female", "name": "Провиденсия"}, -{"usage": "given", "gender": "female", "name": "Пруденс"}, -{"usage": "given", "gender": "female", "name": "Пура"}, -{"usage": "given", "gender": "female", "name": "Пьедад"}, -{"usage": "given", "gender": "female", "name": "Пэм"}, -{"usage": "given", "gender": "female", "name": "Пэнси"}, -{"usage": "given", "gender": "female", "name": "Пэрис"}, -{"usage": "given", "gender": "female", "name": "Пэтси"}, -{"usage": "given", "gender": "female", "name": "Пэтти"}, -{"usage": "given", "gender": "female", "name": "Пэт"}, -{"usage": "given", "gender": "female", "name": "Рагуил"}, -{"usage": "given", "gender": "female", "name": "Раиса"}, -{"usage": "given", "gender": "female", "name": "Райан"}, -{"usage": "given", "gender": "female", "name": "Раймонда"}, -{"usage": "given", "gender": "female", "name": "Райна"}, -{"usage": "given", "gender": "female", "name": "Ракель"}, -{"usage": "given", "gender": "female", "name": "Рамона"}, -{"usage": "given", "gender": "female", "name": "Рамонита"}, -{"usage": "given", "gender": "female", "name": "Рана"}, -{"usage": "given", "gender": "female", "name": "Ранда"}, -{"usage": "given", "gender": "female", "name": "Рафаэла"}, -{"usage": "given", "gender": "female", "name": "Рашель"}, -{"usage": "given", "gender": "female", "name": "Рашида"}, -{"usage": "given", "gender": "female", "name": "Раэлен"}, -{"usage": "given", "gender": "female", "name": "Раэнн"}, -{"usage": "given", "gender": "female", "name": "Реба"}, -{"usage": "given", "gender": "female", "name": "Реббека"}, -{"usage": "given", "gender": "female", "name": "Реббекка"}, -{"usage": "given", "gender": "female", "name": "Ребека"}, -{"usage": "given", "gender": "female", "name": "Ребекка"}, -{"usage": "given", "gender": "female", "name": "Рева"}, -{"usage": "given", "gender": "female", "name": "Регена"}, -{"usage": "given", "gender": "female", "name": "Регения"}, -{"usage": "given", "gender": "female", "name": "Регина"}, -{"usage": "given", "gender": "female", "name": "Региния"}, -{"usage": "given", "gender": "female", "name": "Реда"}, -{"usage": "given", "gender": "female", "name": "Реджайна"}, -{"usage": "given", "gender": "female", "name": "Рейган"}, -{"usage": "given", "gender": "female", "name": "Рейнальда"}, -{"usage": "given", "gender": "female", "name": "Рейна"}, -{"usage": "given", "gender": "female", "name": "Рейта"}, -{"usage": "given", "gender": "female", "name": "Рейчел"}, -{"usage": "given", "gender": "female", "name": "Рей"}, -{"usage": "given", "gender": "female", "name": "Рема"}, -{"usage": "given", "gender": "female", "name": "Ремедиос"}, -{"usage": "given", "gender": "female", "name": "Ремона"}, -{"usage": "given", "gender": "female", "name": "Рената"}, -{"usage": "given", "gender": "female", "name": "Рена"}, -{"usage": "given", "gender": "female", "name": "Ренда"}, -{"usage": "given", "gender": "female", "name": "Ренетта"}, -{"usage": "given", "gender": "female", "name": "Ренея"}, -{"usage": "given", "gender": "female", "name": "Рене"}, -{"usage": "given", "gender": "female", "name": "Ренита"}, -{"usage": "given", "gender": "female", "name": "Рени"}, -{"usage": "given", "gender": "female", "name": "Ренна"}, -{"usage": "given", "gender": "female", "name": "Ресси"}, -{"usage": "given", "gender": "female", "name": "Рета"}, -{"usage": "given", "gender": "female", "name": "Ретт"}, -{"usage": "given", "gender": "female", "name": "Рефугия"}, -{"usage": "given", "gender": "female", "name": "Рея"}, -{"usage": "given", "gender": "female", "name": "Рианна"}, -{"usage": "given", "gender": "female", "name": "Рианнон"}, -{"usage": "given", "gender": "female", "name": "Риа"}, -{"usage": "given", "gender": "female", "name": "Рива"}, -{"usage": "given", "gender": "female", "name": "Ривка"}, -{"usage": "given", "gender": "female", "name": "Риган"}, -{"usage": "given", "gender": "female", "name": "Рикарда"}, -{"usage": "given", "gender": "female", "name": "Рики"}, -{"usage": "given", "gender": "female", "name": "Рикки"}, -{"usage": "given", "gender": "female", "name": "Римма"}, -{"usage": "given", "gender": "female", "name": "Рина"}, -{"usage": "given", "gender": "female", "name": "Ринэй"}, -{"usage": "given", "gender": "female", "name": "Риса"}, -{"usage": "given", "gender": "female", "name": "Рита"}, -{"usage": "given", "gender": "female", "name": "Ришель"}, -{"usage": "given", "gender": "female", "name": "Робби"}, -{"usage": "given", "gender": "female", "name": "Робена"}, -{"usage": "given", "gender": "female", "name": "Роберта"}, -{"usage": "given", "gender": "female", "name": "Робин"}, -{"usage": "given", "gender": "female", "name": "Ровена"}, -{"usage": "given", "gender": "female", "name": "Рода"}, -{"usage": "given", "gender": "female", "name": "Розалина"}, -{"usage": "given", "gender": "female", "name": "Розалинда"}, -{"usage": "given", "gender": "female", "name": "Розалин"}, -{"usage": "given", "gender": "female", "name": "Розалия"}, -{"usage": "given", "gender": "female", "name": "Розали"}, -{"usage": "given", "gender": "female", "name": "Розальва"}, -{"usage": "given", "gender": "female", "name": "Розамария"}, -{"usage": "given", "gender": "female", "name": "Розамунда"}, -{"usage": "given", "gender": "female", "name": "Розана"}, -{"usage": "given", "gender": "female", "name": "Розанна"}, -{"usage": "given", "gender": "female", "name": "Розария"}, -{"usage": "given", "gender": "female", "name": "Розаура"}, -{"usage": "given", "gender": "female", "name": "Роза"}, -{"usage": "given", "gender": "female", "name": "Розелин"}, -{"usage": "given", "gender": "female", "name": "Розелия"}, -{"usage": "given", "gender": "female", "name": "Розели"}, -{"usage": "given", "gender": "female", "name": "Розелла"}, -{"usage": "given", "gender": "female", "name": "Розель"}, -{"usage": "given", "gender": "female", "name": "Розенда"}, -{"usage": "given", "gender": "female", "name": "Розетка"}, -{"usage": "given", "gender": "female", "name": "Розетта"}, -{"usage": "given", "gender": "female", "name": "Розина"}, -{"usage": "given", "gender": "female", "name": "Розита"}, -{"usage": "given", "gender": "female", "name": "Рози"}, -{"usage": "given", "gender": "female", "name": "Розмари"}, -{"usage": "given", "gender": "female", "name": "Ройс"}, -{"usage": "given", "gender": "female", "name": "Рой"}, -{"usage": "given", "gender": "female", "name": "Роксана"}, -{"usage": "given", "gender": "female", "name": "Рокси"}, -{"usage": "given", "gender": "female", "name": "Роланда"}, -{"usage": "given", "gender": "female", "name": "Романа"}, -{"usage": "given", "gender": "female", "name": "Рома"}, -{"usage": "given", "gender": "female", "name": "Ромелия"}, -{"usage": "given", "gender": "female", "name": "Ромона"}, -{"usage": "given", "gender": "female", "name": "Ромэн"}, -{"usage": "given", "gender": "female", "name": "Рона"}, -{"usage": "given", "gender": "female", "name": "Ронда"}, -{"usage": "given", "gender": "female", "name": "Рони"}, -{"usage": "given", "gender": "female", "name": "Ронна"}, -{"usage": "given", "gender": "female", "name": "Ронни"}, -{"usage": "given", "gender": "female", "name": "Рори"}, -{"usage": "given", "gender": "female", "name": "Росальба"}, -{"usage": "given", "gender": "female", "name": "Росена"}, -{"usage": "given", "gender": "female", "name": "Росия"}, -{"usage": "given", "gender": "female", "name": "Роси"}, -{"usage": "given", "gender": "female", "name": "Рослин"}, -{"usage": "given", "gender": "female", "name": "Россана"}, -{"usage": "given", "gender": "female", "name": "Росси"}, -{"usage": "given", "gender": "female", "name": "Роузэнн"}, -{"usage": "given", "gender": "female", "name": "Роуз"}, -{"usage": "given", "gender": "female", "name": "Рошель"}, -{"usage": "given", "gender": "female", "name": "Руби"}, -{"usage": "given", "gender": "female", "name": "Руди"}, -{"usage": "given", "gender": "female", "name": "Рутанна"}, -{"usage": "given", "gender": "female", "name": "Рута"}, -{"usage": "given", "gender": "female", "name": "Рути"}, -{"usage": "given", "gender": "female", "name": "Рутэнн"}, -{"usage": "given", "gender": "female", "name": "Рут"}, -{"usage": "given", "gender": "female", "name": "Руфина"}, -{"usage": "given", "gender": "female", "name": "Рэйвен"}, -{"usage": "given", "gender": "female", "name": "Рэйлин"}, -{"usage": "given", "gender": "female", "name": "Рэйчел"}, -{"usage": "given", "gender": "female", "name": "Рэйчил"}, -{"usage": "given", "gender": "female", "name": "Рэй"}, -{"usage": "given", "gender": "female", "name": "Рэнди"}, -{"usage": "given", "gender": "female", "name": "Рэни"}, -{"usage": "given", "gender": "female", "name": "Рэнэ"}, -{"usage": "given", "gender": "female", "name": "Сабина"}, -{"usage": "given", "gender": "female", "name": "Сабра"}, -{"usage": "given", "gender": "female", "name": "Сабрина"}, -{"usage": "given", "gender": "female", "name": "Саванна"}, -{"usage": "given", "gender": "female", "name": "Сади"}, -{"usage": "given", "gender": "female", "name": "Салена"}, -{"usage": "given", "gender": "female", "name": "Салина"}, -{"usage": "given", "gender": "female", "name": "Салли"}, -{"usage": "given", "gender": "female", "name": "Саломея"}, -{"usage": "given", "gender": "female", "name": "Саманта"}, -{"usage": "given", "gender": "female", "name": "Самара"}, -{"usage": "given", "gender": "female", "name": "Самата"}, -{"usage": "given", "gender": "female", "name": "Самелла"}, -{"usage": "given", "gender": "female", "name": "Самира"}, -{"usage": "given", "gender": "female", "name": "Саммер"}, -{"usage": "given", "gender": "female", "name": "Сана"}, -{"usage": "given", "gender": "female", "name": "Санда"}, -{"usage": "given", "gender": "female", "name": "Санди"}, -{"usage": "given", "gender": "female", "name": "Сандра"}, -{"usage": "given", "gender": "female", "name": "Сандэй"}, -{"usage": "given", "gender": "female", "name": "Санни"}, -{"usage": "given", "gender": "female", "name": "Санора"}, -{"usage": "given", "gender": "female", "name": "Сантана"}, -{"usage": "given", "gender": "female", "name": "Санта"}, -{"usage": "given", "gender": "female", "name": "Сантина"}, -{"usage": "given", "gender": "female", "name": "Сантос"}, -{"usage": "given", "gender": "female", "name": "Саншайн"}, -{"usage": "given", "gender": "female", "name": "Сан"}, -{"usage": "given", "gender": "female", "name": "Саран"}, -{"usage": "given", "gender": "female", "name": "Сара"}, -{"usage": "given", "gender": "female", "name": "Сарина"}, -{"usage": "given", "gender": "female", "name": "Сарита"}, -{"usage": "given", "gender": "female", "name": "Сари"}, -{"usage": "given", "gender": "female", "name": "Сатурнина"}, -{"usage": "given", "gender": "female", "name": "Сау"}, -{"usage": "given", "gender": "female", "name": "Саша"}, -{"usage": "given", "gender": "female", "name": "Светлана"}, -{"usage": "given", "gender": "female", "name": "Себрина"}, -{"usage": "given", "gender": "female", "name": "Селена"}, -{"usage": "given", "gender": "female", "name": "Селеста"}, -{"usage": "given", "gender": "female", "name": "Селестина"}, -{"usage": "given", "gender": "female", "name": "Селина"}, -{"usage": "given", "gender": "female", "name": "Селинда"}, -{"usage": "given", "gender": "female", "name": "Селин"}, -{"usage": "given", "gender": "female", "name": "Селия"}, -{"usage": "given", "gender": "female", "name": "Селса"}, -{"usage": "given", "gender": "female", "name": "Сельма"}, -{"usage": "given", "gender": "female", "name": "Сенаида"}, -{"usage": "given", "gender": "female", "name": "Сена"}, -{"usage": "given", "gender": "female", "name": "Септембер"}, -{"usage": "given", "gender": "female", "name": "Серафина"}, -{"usage": "given", "gender": "female", "name": "Серена"}, -{"usage": "given", "gender": "female", "name": "Серина"}, -{"usage": "given", "gender": "female", "name": "Серита"}, -{"usage": "given", "gender": "female", "name": "Сесила"}, -{"usage": "given", "gender": "female", "name": "Сесилия"}, -{"usage": "given", "gender": "female", "name": "Сесиль"}, -{"usage": "given", "gender": "female", "name": "Сиара"}, -{"usage": "given", "gender": "female", "name": "Сибил"}, -{"usage": "given", "gender": "female", "name": "Сивилла"}, -{"usage": "given", "gender": "female", "name": "Сигрид"}, -{"usage": "given", "gender": "female", "name": "Сидни"}, -{"usage": "given", "gender": "female", "name": "Сизон"}, -{"usage": "given", "gender": "female", "name": "Сикста"}, -{"usage": "given", "gender": "female", "name": "Сильвана"}, -{"usage": "given", "gender": "female", "name": "Сильва"}, -{"usage": "given", "gender": "female", "name": "Сильвия"}, -{"usage": "given", "gender": "female", "name": "Сильви"}, -{"usage": "given", "gender": "female", "name": "Сима"}, -{"usage": "given", "gender": "female", "name": "Симона"}, -{"usage": "given", "gender": "female", "name": "Симонна"}, -{"usage": "given", "gender": "female", "name": "Сина"}, -{"usage": "given", "gender": "female", "name": "Синда"}, -{"usage": "given", "gender": "female", "name": "Синдерелла"}, -{"usage": "given", "gender": "female", "name": "Синди"}, -{"usage": "given", "gender": "female", "name": "Синтия"}, -{"usage": "given", "gender": "female", "name": "Синье"}, -{"usage": "given", "gender": "female", "name": "Сиомара"}, -{"usage": "given", "gender": "female", "name": "Сира"}, -{"usage": "given", "gender": "female", "name": "Сирена"}, -{"usage": "given", "gender": "female", "name": "Сирита"}, -{"usage": "given", "gender": "female", "name": "Сисели"}, -{"usage": "given", "gender": "female", "name": "Сития"}, -{"usage": "given", "gender": "female", "name": "Скай"}, -{"usage": "given", "gender": "female", "name": "Скарлетт"}, -{"usage": "given", "gender": "female", "name": "Скарлет"}, -{"usage": "given", "gender": "female", "name": "Скотти"}, -{"usage": "given", "gender": "female", "name": "Сливия"}, -{"usage": "given", "gender": "female", "name": "Сойла"}, -{"usage": "given", "gender": "female", "name": "Сокорро"}, -{"usage": "given", "gender": "female", "name": "Соланж"}, -{"usage": "given", "gender": "female", "name": "Соледад"}, -{"usage": "given", "gender": "female", "name": "Сол"}, -{"usage": "given", "gender": "female", "name": "Соммер"}, -{"usage": "given", "gender": "female", "name": "Сона"}, -{"usage": "given", "gender": "female", "name": "Сондра"}, -{"usage": "given", "gender": "female", "name": "Соня"}, -{"usage": "given", "gender": "female", "name": "Сорайя"}, -{"usage": "given", "gender": "female", "name": "София"}, -{"usage": "given", "gender": "female", "name": "Софи"}, -{"usage": "given", "gender": "female", "name": "Спаркл"}, -{"usage": "given", "gender": "female", "name": "Спринг"}, -{"usage": "given", "gender": "female", "name": "Старла"}, -{"usage": "given", "gender": "female", "name": "Старр"}, -{"usage": "given", "gender": "female", "name": "Стар"}, -{"usage": "given", "gender": "female", "name": "Стася"}, -{"usage": "given", "gender": "female", "name": "Стейси"}, -{"usage": "given", "gender": "female", "name": "Стелла"}, -{"usage": "given", "gender": "female", "name": "Степани"}, -{"usage": "given", "gender": "female", "name": "Стефайн"}, -{"usage": "given", "gender": "female", "name": "Стефания"}, -{"usage": "given", "gender": "female", "name": "Стефани"}, -{"usage": "given", "gender": "female", "name": "Стефина"}, -{"usage": "given", "gender": "female", "name": "Стефни"}, -{"usage": "given", "gender": "female", "name": "Стеффани"}, -{"usage": "given", "gender": "female", "name": "Стиви"}, -{"usage": "given", "gender": "female", "name": "Сторми"}, -{"usage": "given", "gender": "female", "name": "Сулема"}, -{"usage": "given", "gender": "female", "name": "Сусана"}, -{"usage": "given", "gender": "female", "name": "Сьера"}, -{"usage": "given", "gender": "female", "name": "Сьерра"}, -{"usage": "given", "gender": "female", "name": "Сьюзан"}, -{"usage": "given", "gender": "female", "name": "Сьюзен"}, -{"usage": "given", "gender": "female", "name": "Сьюзи"}, -{"usage": "given", "gender": "female", "name": "Сьюлин"}, -{"usage": "given", "gender": "female", "name": "Сьюэнн"}, -{"usage": "given", "gender": "female", "name": "Сью"}, -{"usage": "given", "gender": "female", "name": "Сэди"}, -{"usage": "given", "gender": "female", "name": "Сэйдж"}, -{"usage": "given", "gender": "female", "name": "Сэмми"}, -{"usage": "given", "gender": "female", "name": "Сэм"}, -{"usage": "given", "gender": "female", "name": "Сэнди"}, -{"usage": "given", "gender": "female", "name": "Сюанн"}, -{"usage": "given", "gender": "female", "name": "Сюзанна"}, -{"usage": "given", "gender": "female", "name": "Сюзетта"}, -{"usage": "given", "gender": "female", "name": "Сюзи"}, -{"usage": "given", "gender": "female", "name": "Сю"}, -{"usage": "given", "gender": "female", "name": "Табата"}, -{"usage": "given", "gender": "female", "name": "Табета"}, -{"usage": "given", "gender": "female", "name": "Табита"}, -{"usage": "given", "gender": "female", "name": "Тавана"}, -{"usage": "given", "gender": "female", "name": "Таванда"}, -{"usage": "given", "gender": "female", "name": "Таванна"}, -{"usage": "given", "gender": "female", "name": "Тайет"}, -{"usage": "given", "gender": "female", "name": "Тайлер"}, -{"usage": "given", "gender": "female", "name": "Тайна"}, -{"usage": "given", "gender": "female", "name": "Тайра"}, -{"usage": "given", "gender": "female", "name": "Тайша"}, -{"usage": "given", "gender": "female", "name": "Тай"}, -{"usage": "given", "gender": "female", "name": "Такиша"}, -{"usage": "given", "gender": "female", "name": "Талита"}, -{"usage": "given", "gender": "female", "name": "Талиша"}, -{"usage": "given", "gender": "female", "name": "Талия"}, -{"usage": "given", "gender": "female", "name": "Тамала"}, -{"usage": "given", "gender": "female", "name": "Тамара"}, -{"usage": "given", "gender": "female", "name": "Тамар"}, -{"usage": "given", "gender": "female", "name": "Тамата"}, -{"usage": "given", "gender": "female", "name": "Тама"}, -{"usage": "given", "gender": "female", "name": "Тамбра"}, -{"usage": "given", "gender": "female", "name": "Тамейка"}, -{"usage": "given", "gender": "female", "name": "Тамекия"}, -{"usage": "given", "gender": "female", "name": "Тамела"}, -{"usage": "given", "gender": "female", "name": "Тамера"}, -{"usage": "given", "gender": "female", "name": "Тамеша"}, -{"usage": "given", "gender": "female", "name": "Тамика"}, -{"usage": "given", "gender": "female", "name": "Тамиша"}, -{"usage": "given", "gender": "female", "name": "Таммара"}, -{"usage": "given", "gender": "female", "name": "Таммера"}, -{"usage": "given", "gender": "female", "name": "Тамра"}, -{"usage": "given", "gender": "female", "name": "Тана"}, -{"usage": "given", "gender": "female", "name": "Танджела"}, -{"usage": "given", "gender": "female", "name": "Тандра"}, -{"usage": "given", "gender": "female", "name": "Танека"}, -{"usage": "given", "gender": "female", "name": "Танеша"}, -{"usage": "given", "gender": "female", "name": "Таника"}, -{"usage": "given", "gender": "female", "name": "Таниша"}, -{"usage": "given", "gender": "female", "name": "Танна"}, -{"usage": "given", "gender": "female", "name": "Таня"}, -{"usage": "given", "gender": "female", "name": "Тара"}, -{"usage": "given", "gender": "female", "name": "Тарен"}, -{"usage": "given", "gender": "female", "name": "Тарин"}, -{"usage": "given", "gender": "female", "name": "Тари"}, -{"usage": "given", "gender": "female", "name": "Тарра"}, -{"usage": "given", "gender": "female", "name": "Тарша"}, -{"usage": "given", "gender": "female", "name": "Тася"}, -{"usage": "given", "gender": "female", "name": "Татум"}, -{"usage": "given", "gender": "female", "name": "Татьяна"}, -{"usage": "given", "gender": "female", "name": "Тауна"}, -{"usage": "given", "gender": "female", "name": "Тауни"}, -{"usage": "given", "gender": "female", "name": "Тахуана"}, -{"usage": "given", "gender": "female", "name": "Таша"}, -{"usage": "given", "gender": "female", "name": "Ташина"}, -{"usage": "given", "gender": "female", "name": "Ташия"}, -{"usage": "given", "gender": "female", "name": "Твила"}, -{"usage": "given", "gender": "female", "name": "Теган"}, -{"usage": "given", "gender": "female", "name": "Теда"}, -{"usage": "given", "gender": "female", "name": "Тейлор"}, -{"usage": "given", "gender": "female", "name": "Тейша"}, -{"usage": "given", "gender": "female", "name": "Текила"}, -{"usage": "given", "gender": "female", "name": "Тельма"}, -{"usage": "given", "gender": "female", "name": "Темека"}, -{"usage": "given", "gender": "female", "name": "Темика"}, -{"usage": "given", "gender": "female", "name": "Темпи"}, -{"usage": "given", "gender": "female", "name": "Темпл"}, -{"usage": "given", "gender": "female", "name": "Тена"}, -{"usage": "given", "gender": "female", "name": "Тенеша"}, -{"usage": "given", "gender": "female", "name": "Тениша"}, -{"usage": "given", "gender": "female", "name": "Тенниль"}, -{"usage": "given", "gender": "female", "name": "Тенни"}, -{"usage": "given", "gender": "female", "name": "Теодора"}, -{"usage": "given", "gender": "female", "name": "Теола"}, -{"usage": "given", "gender": "female", "name": "Теофила"}, -{"usage": "given", "gender": "female", "name": "Тера"}, -{"usage": "given", "gender": "female", "name": "Тереза"}, -{"usage": "given", "gender": "female", "name": "Терезита"}, -{"usage": "given", "gender": "female", "name": "Терезия"}, -{"usage": "given", "gender": "female", "name": "Тересса"}, -{"usage": "given", "gender": "female", "name": "Терика"}, -{"usage": "given", "gender": "female", "name": "Терина"}, -{"usage": "given", "gender": "female", "name": "Териса"}, -{"usage": "given", "gender": "female", "name": "Тери"}, -{"usage": "given", "gender": "female", "name": "Терра"}, -{"usage": "given", "gender": "female", "name": "Террелл"}, -{"usage": "given", "gender": "female", "name": "Терреса"}, -{"usage": "given", "gender": "female", "name": "Террилин"}, -{"usage": "given", "gender": "female", "name": "Терри"}, -{"usage": "given", "gender": "female", "name": "Терса"}, -{"usage": "given", "gender": "female", "name": "Тесса"}, -{"usage": "given", "gender": "female", "name": "Тесси"}, -{"usage": "given", "gender": "female", "name": "Тесс"}, -{"usage": "given", "gender": "female", "name": "Теша"}, -{"usage": "given", "gender": "female", "name": "Тея"}, -{"usage": "given", "gender": "female", "name": "Тиана"}, -{"usage": "given", "gender": "female", "name": "Тианна"}, -{"usage": "given", "gender": "female", "name": "Тиара"}, -{"usage": "given", "gender": "female", "name": "Тилли"}, -{"usage": "given", "gender": "female", "name": "Тильда"}, -{"usage": "given", "gender": "female", "name": "Тимика"}, -{"usage": "given", "gender": "female", "name": "Тина"}, -{"usage": "given", "gender": "female", "name": "Тиниша"}, -{"usage": "given", "gender": "female", "name": "Тини"}, -{"usage": "given", "gender": "female", "name": "Тиса"}, -{"usage": "given", "gender": "female", "name": "Тифани"}, -{"usage": "given", "gender": "female", "name": "Тиффани"}, -{"usage": "given", "gender": "female", "name": "Тиффини"}, -{"usage": "given", "gender": "female", "name": "Тихуана"}, -{"usage": "given", "gender": "female", "name": "Тиша"}, -{"usage": "given", "gender": "female", "name": "Тиш"}, -{"usage": "given", "gender": "female", "name": "Тия"}, -{"usage": "given", "gender": "female", "name": "Тоби"}, -{"usage": "given", "gender": "female", "name": "Тованда"}, -{"usage": "given", "gender": "female", "name": "Това"}, -{"usage": "given", "gender": "female", "name": "Тойя"}, -{"usage": "given", "gender": "female", "name": "Токкара"}, -{"usage": "given", "gender": "female", "name": "Томаса"}, -{"usage": "given", "gender": "female", "name": "Томасена"}, -{"usage": "given", "gender": "female", "name": "Томасина"}, -{"usage": "given", "gender": "female", "name": "Томека"}, -{"usage": "given", "gender": "female", "name": "Томика"}, -{"usage": "given", "gender": "female", "name": "Томи"}, -{"usage": "given", "gender": "female", "name": "Томми"}, -{"usage": "given", "gender": "female", "name": "Тона"}, -{"usage": "given", "gender": "female", "name": "Тонда"}, -{"usage": "given", "gender": "female", "name": "Тонетта"}, -{"usage": "given", "gender": "female", "name": "Тонита"}, -{"usage": "given", "gender": "female", "name": "Тониша"}, -{"usage": "given", "gender": "female", "name": "Тони"}, -{"usage": "given", "gender": "female", "name": "Тоня"}, -{"usage": "given", "gender": "female", "name": "Тора"}, -{"usage": "given", "gender": "female", "name": "Тори"}, -{"usage": "given", "gender": "female", "name": "Торри"}, -{"usage": "given", "gender": "female", "name": "Тоша"}, -{"usage": "given", "gender": "female", "name": "Тошия"}, -{"usage": "given", "gender": "female", "name": "Треаса"}, -{"usage": "given", "gender": "female", "name": "Трева"}, -{"usage": "given", "gender": "female", "name": "Треза"}, -{"usage": "given", "gender": "female", "name": "Трейси"}, -{"usage": "given", "gender": "female", "name": "Трена"}, -{"usage": "given", "gender": "female", "name": "Тресса"}, -{"usage": "given", "gender": "female", "name": "Тресси"}, -{"usage": "given", "gender": "female", "name": "Трина"}, -{"usage": "given", "gender": "female", "name": "Тринити"}, -{"usage": "given", "gender": "female", "name": "Триста"}, -{"usage": "given", "gender": "female", "name": "Триша"}, -{"usage": "given", "gender": "female", "name": "Триш"}, -{"usage": "given", "gender": "female", "name": "Труди"}, -{"usage": "given", "gender": "female", "name": "Трула"}, -{"usage": "given", "gender": "female", "name": "Тула"}, -{"usage": "given", "gender": "female", "name": "Тьера"}, -{"usage": "given", "gender": "female", "name": "Тьерра"}, -{"usage": "given", "gender": "female", "name": "Тэмека"}, -{"usage": "given", "gender": "female", "name": "Тэми"}, -{"usage": "given", "gender": "female", "name": "Тэмми"}, -{"usage": "given", "gender": "female", "name": "Тэнди"}, -{"usage": "given", "gender": "female", "name": "Уилла"}, -{"usage": "given", "gender": "female", "name": "Уиллена"}, -{"usage": "given", "gender": "female", "name": "Уиллетта"}, -{"usage": "given", "gender": "female", "name": "УиллиМэй"}, -{"usage": "given", "gender": "female", "name": "Уилли"}, -{"usage": "given", "gender": "female", "name": "Уиллоу"}, -{"usage": "given", "gender": "female", "name": "Уильма"}, -{"usage": "given", "gender": "female", "name": "Уинди"}, -{"usage": "given", "gender": "female", "name": "Уинифред"}, -{"usage": "given", "gender": "female", "name": "Уиннифред"}, -{"usage": "given", "gender": "female", "name": "Уинни"}, -{"usage": "given", "gender": "female", "name": "Уинтер"}, -{"usage": "given", "gender": "female", "name": "Уитли"}, -{"usage": "given", "gender": "female", "name": "Уитни"}, -{"usage": "given", "gender": "female", "name": "Ула"}, -{"usage": "given", "gender": "female", "name": "Ульрика"}, -{"usage": "given", "gender": "female", "name": "Уна"}, -{"usage": "given", "gender": "female", "name": "Урсула"}, -{"usage": "given", "gender": "female", "name": "Уте"}, -{"usage": "given", "gender": "female", "name": "Уша"}, -{"usage": "given", "gender": "female", "name": "Уэсли"}, -{"usage": "given", "gender": "female", "name": "Фабиола"}, -{"usage": "given", "gender": "female", "name": "Фавиола"}, -{"usage": "given", "gender": "female", "name": "Фанни"}, -{"usage": "given", "gender": "female", "name": "Фара"}, -{"usage": "given", "gender": "female", "name": "Фарра"}, -{"usage": "given", "gender": "female", "name": "Фатима"}, -{"usage": "given", "gender": "female", "name": "Фаун"}, -{"usage": "given", "gender": "female", "name": "Фаустина"}, -{"usage": "given", "gender": "female", "name": "Феба"}, -{"usage": "given", "gender": "female", "name": "Фелесия"}, -{"usage": "given", "gender": "female", "name": "Фелика"}, -{"usage": "given", "gender": "female", "name": "Фелипа"}, -{"usage": "given", "gender": "female", "name": "Фелиса"}, -{"usage": "given", "gender": "female", "name": "Фелиситас"}, -{"usage": "given", "gender": "female", "name": "Фелиция"}, -{"usage": "given", "gender": "female", "name": "Феличита"}, -{"usage": "given", "gender": "female", "name": "Фелиша"}, -{"usage": "given", "gender": "female", "name": "Фермина"}, -{"usage": "given", "gender": "female", "name": "Фернанда"}, -{"usage": "given", "gender": "female", "name": "Ферн"}, -{"usage": "given", "gender": "female", "name": "Фиби"}, -{"usage": "given", "gender": "female", "name": "Фидела"}, -{"usage": "given", "gender": "female", "name": "Фиделия"}, -{"usage": "given", "gender": "female", "name": "Филисс"}, -{"usage": "given", "gender": "female", "name": "Филис"}, -{"usage": "given", "gender": "female", "name": "Филиция"}, -{"usage": "given", "gender": "female", "name": "Филлис"}, -{"usage": "given", "gender": "female", "name": "Филомена"}, -{"usage": "given", "gender": "female", "name": "Фиона"}, -{"usage": "given", "gender": "female", "name": "Флавия"}, -{"usage": "given", "gender": "female", "name": "Флета"}, -{"usage": "given", "gender": "female", "name": "Флой"}, -{"usage": "given", "gender": "female", "name": "Флоранс"}, -{"usage": "given", "gender": "female", "name": "Флора"}, -{"usage": "given", "gender": "female", "name": "Флорена"}, -{"usage": "given", "gender": "female", "name": "Флорентина"}, -{"usage": "given", "gender": "female", "name": "Флоренция"}, -{"usage": "given", "gender": "female", "name": "Флоретта"}, -{"usage": "given", "gender": "female", "name": "Флорида"}, -{"usage": "given", "gender": "female", "name": "Флорина"}, -{"usage": "given", "gender": "female", "name": "Флоринда"}, -{"usage": "given", "gender": "female", "name": "Флория"}, -{"usage": "given", "gender": "female", "name": "Флори"}, -{"usage": "given", "gender": "female", "name": "Флор"}, -{"usage": "given", "gender": "female", "name": "Флосси"}, -{"usage": "given", "gender": "female", "name": "Фло"}, -{"usage": "given", "gender": "female", "name": "Фонда"}, -{"usage": "given", "gender": "female", "name": "Франсена"}, -{"usage": "given", "gender": "female", "name": "Франсина"}, -{"usage": "given", "gender": "female", "name": "Франсиска"}, -{"usage": "given", "gender": "female", "name": "Франси"}, -{"usage": "given", "gender": "female", "name": "Франсуаза"}, -{"usage": "given", "gender": "female", "name": "Франс"}, -{"usage": "given", "gender": "female", "name": "Франциска"}, -{"usage": "given", "gender": "female", "name": "Франческа"}, -{"usage": "given", "gender": "female", "name": "Фреда"}, -{"usage": "given", "gender": "female", "name": "Фредди"}, -{"usage": "given", "gender": "female", "name": "Фредерика"}, -{"usage": "given", "gender": "female", "name": "Фредия"}, -{"usage": "given", "gender": "female", "name": "Фредрика"}, -{"usage": "given", "gender": "female", "name": "Фрида"}, -{"usage": "given", "gender": "female", "name": "Фрэнки"}, -{"usage": "given", "gender": "female", "name": "Фрэн"}, -{"usage": "given", "gender": "female", "name": "Фэйри"}, -{"usage": "given", "gender": "female", "name": "Фэйт"}, -{"usage": "given", "gender": "female", "name": "Фэй"}, -{"usage": "given", "gender": "female", "name": "Фэллон"}, -{"usage": "given", "gender": "female", "name": "Фэ"}, -{"usage": "given", "gender": "female", "name": "Хадиджа"}, -{"usage": "given", "gender": "female", "name": "Хайасинт"}, -{"usage": "given", "gender": "female", "name": "Хайде"}, -{"usage": "given", "gender": "female", "name": "Хайди"}, -{"usage": "given", "gender": "female", "name": "Хайке"}, -{"usage": "given", "gender": "female", "name": "Хайме"}, -{"usage": "given", "gender": "female", "name": "Халила"}, -{"usage": "given", "gender": "female", "name": "Халина"}, -{"usage": "given", "gender": "female", "name": "Хана"}, -{"usage": "given", "gender": "female", "name": "Ханна"}, -{"usage": "given", "gender": "female", "name": "Ханнелор"}, -{"usage": "given", "gender": "female", "name": "Хармони"}, -{"usage": "given", "gender": "female", "name": "Харриетт"}, -{"usage": "given", "gender": "female", "name": "Харриет"}, -{"usage": "given", "gender": "female", "name": "Хая"}, -{"usage": "given", "gender": "female", "name": "Хедвига"}, -{"usage": "given", "gender": "female", "name": "Хеди"}, -{"usage": "given", "gender": "female", "name": "Хейли"}, -{"usage": "given", "gender": "female", "name": "Хелена"}, -{"usage": "given", "gender": "female", "name": "Хелен"}, -{"usage": "given", "gender": "female", "name": "Хеллен"}, -{"usage": "given", "gender": "female", "name": "Хельга"}, -{"usage": "given", "gender": "female", "name": "Хермина"}, -{"usage": "given", "gender": "female", "name": "Херта"}, -{"usage": "given", "gender": "female", "name": "Хесуса"}, -{"usage": "given", "gender": "female", "name": "Хесусита"}, -{"usage": "given", "gender": "female", "name": "Хетти"}, -{"usage": "given", "gender": "female", "name": "Хиди"}, -{"usage": "given", "gender": "female", "name": "Хилария"}, -{"usage": "given", "gender": "female", "name": "Хилари"}, -{"usage": "given", "gender": "female", "name": "Хиллари"}, -{"usage": "given", "gender": "female", "name": "Хильда"}, -{"usage": "given", "gender": "female", "name": "Хильма"}, -{"usage": "given", "gender": "female", "name": "Хилэйн"}, -{"usage": "given", "gender": "female", "name": "Хлоя"}, -{"usage": "given", "gender": "female", "name": "Хоакина"}, -{"usage": "given", "gender": "female", "name": "Хозефа"}, -{"usage": "given", "gender": "female", "name": "Холли"}, -{"usage": "given", "gender": "female", "name": "Хони"}, -{"usage": "given", "gender": "female", "name": "Хоуп"}, -{"usage": "given", "gender": "female", "name": "Хочитль"}, -{"usage": "given", "gender": "female", "name": "Хуана"}, -{"usage": "given", "gender": "female", "name": "Хуанита"}, -{"usage": "given", "gender": "female", "name": "Хульда"}, -{"usage": "given", "gender": "female", "name": "Хуста"}, -{"usage": "given", "gender": "female", "name": "Хэзер"}, -{"usage": "given", "gender": "female", "name": "Хэйзел"}, -{"usage": "given", "gender": "female", "name": "Хэлли"}, -{"usage": "given", "gender": "female", "name": "Хэсси"}, -{"usage": "given", "gender": "female", "name": "Хэтти"}, -{"usage": "given", "gender": "female", "name": "Чайна"}, -{"usage": "given", "gender": "female", "name": "Чана"}, -{"usage": "given", "gender": "female", "name": "Чанда"}, -{"usage": "given", "gender": "female", "name": "Чандра"}, -{"usage": "given", "gender": "female", "name": "Чара"}, -{"usage": "given", "gender": "female", "name": "Чариз"}, -{"usage": "given", "gender": "female", "name": "Чарисса"}, -{"usage": "given", "gender": "female", "name": "Чарис"}, -{"usage": "given", "gender": "female", "name": "Чарита"}, -{"usage": "given", "gender": "female", "name": "Чарити"}, -{"usage": "given", "gender": "female", "name": "Чарла"}, -{"usage": "given", "gender": "female", "name": "Чарлин"}, -{"usage": "given", "gender": "female", "name": "Чарли"}, -{"usage": "given", "gender": "female", "name": "Чарлси"}, -{"usage": "given", "gender": "female", "name": "Чарльзетта"}, -{"usage": "given", "gender": "female", "name": "Чармен"}, -{"usage": "given", "gender": "female", "name": "Часиди"}, -{"usage": "given", "gender": "female", "name": "Часити"}, -{"usage": "given", "gender": "female", "name": "Чассиди"}, -{"usage": "given", "gender": "female", "name": "Частити"}, -{"usage": "given", "gender": "female", "name": "Челси"}, -{"usage": "given", "gender": "female", "name": "Чеола"}, -{"usage": "given", "gender": "female", "name": "Черелл"}, -{"usage": "given", "gender": "female", "name": "Чериз"}, -{"usage": "given", "gender": "female", "name": "Черилл"}, -{"usage": "given", "gender": "female", "name": "Чериш"}, -{"usage": "given", "gender": "female", "name": "Чери"}, -{"usage": "given", "gender": "female", "name": "Черлин"}, -{"usage": "given", "gender": "female", "name": "Черли"}, -{"usage": "given", "gender": "female", "name": "Черри"}, -{"usage": "given", "gender": "female", "name": "Чикита"}, -{"usage": "given", "gender": "female", "name": "Шайенн"}, -{"usage": "given", "gender": "female", "name": "Шайна"}, -{"usage": "given", "gender": "female", "name": "Шакана"}, -{"usage": "given", "gender": "female", "name": "Шакира"}, -{"usage": "given", "gender": "female", "name": "Шакита"}, -{"usage": "given", "gender": "female", "name": "Шакия"}, -{"usage": "given", "gender": "female", "name": "Шаланда"}, -{"usage": "given", "gender": "female", "name": "Шала"}, -{"usage": "given", "gender": "female", "name": "Шалонда"}, -{"usage": "given", "gender": "female", "name": "Шалон"}, -{"usage": "given", "gender": "female", "name": "Шамека"}, -{"usage": "given", "gender": "female", "name": "Шамика"}, -{"usage": "given", "gender": "female", "name": "Шана"}, -{"usage": "given", "gender": "female", "name": "Шанда"}, -{"usage": "given", "gender": "female", "name": "Шанди"}, -{"usage": "given", "gender": "female", "name": "Шандра"}, -{"usage": "given", "gender": "female", "name": "Шанека"}, -{"usage": "given", "gender": "female", "name": "Шанель"}, -{"usage": "given", "gender": "female", "name": "Шаника"}, -{"usage": "given", "gender": "female", "name": "Шанита"}, -{"usage": "given", "gender": "female", "name": "Шани"}, -{"usage": "given", "gender": "female", "name": "Шанталь"}, -{"usage": "given", "gender": "female", "name": "Шанта"}, -{"usage": "given", "gender": "female", "name": "Шантель"}, -{"usage": "given", "gender": "female", "name": "Шанте"}, -{"usage": "given", "gender": "female", "name": "Шанти"}, -{"usage": "given", "gender": "female", "name": "Шантэ"}, -{"usage": "given", "gender": "female", "name": "Шара"}, -{"usage": "given", "gender": "female", "name": "Шарда"}, -{"usage": "given", "gender": "female", "name": "Шарика"}, -{"usage": "given", "gender": "female", "name": "Шарилин"}, -{"usage": "given", "gender": "female", "name": "Шарил"}, -{"usage": "given", "gender": "female", "name": "Шарин"}, -{"usage": "given", "gender": "female", "name": "Шарис"}, -{"usage": "given", "gender": "female", "name": "Шарита"}, -{"usage": "given", "gender": "female", "name": "Шари"}, -{"usage": "given", "gender": "female", "name": "Шарла"}, -{"usage": "given", "gender": "female", "name": "Шарлена"}, -{"usage": "given", "gender": "female", "name": "Шарлетт"}, -{"usage": "given", "gender": "female", "name": "Шарлин"}, -{"usage": "given", "gender": "female", "name": "Шарлотта"}, -{"usage": "given", "gender": "female", "name": "Шармэйн"}, -{"usage": "given", "gender": "female", "name": "Шаролетта"}, -{"usage": "given", "gender": "female", "name": "Шаролин"}, -{"usage": "given", "gender": "female", "name": "Шаронда"}, -{"usage": "given", "gender": "female", "name": "Шарон"}, -{"usage": "given", "gender": "female", "name": "Шарри"}, -{"usage": "given", "gender": "female", "name": "Шаррон"}, -{"usage": "given", "gender": "female", "name": "Шаста"}, -{"usage": "given", "gender": "female", "name": "Шеба"}, -{"usage": "given", "gender": "female", "name": "Шейла"}, -{"usage": "given", "gender": "female", "name": "Шейна"}, -{"usage": "given", "gender": "female", "name": "Шейн"}, -{"usage": "given", "gender": "female", "name": "Шела"}, -{"usage": "given", "gender": "female", "name": "Шелби"}, -{"usage": "given", "gender": "female", "name": "Шелия"}, -{"usage": "given", "gender": "female", "name": "Шелла"}, -{"usage": "given", "gender": "female", "name": "Шелли"}, -{"usage": "given", "gender": "female", "name": "Шельба"}, -{"usage": "given", "gender": "female", "name": "Шемека"}, -{"usage": "given", "gender": "female", "name": "Шемика"}, -{"usage": "given", "gender": "female", "name": "Шена"}, -{"usage": "given", "gender": "female", "name": "Шеника"}, -{"usage": "given", "gender": "female", "name": "Шенита"}, -{"usage": "given", "gender": "female", "name": "Шенна"}, -{"usage": "given", "gender": "female", "name": "Шера"}, -{"usage": "given", "gender": "female", "name": "Шерелл"}, -{"usage": "given", "gender": "female", "name": "Шеридан"}, -{"usage": "given", "gender": "female", "name": "Шериз"}, -{"usage": "given", "gender": "female", "name": "Шерика"}, -{"usage": "given", "gender": "female", "name": "Шерилин"}, -{"usage": "given", "gender": "female", "name": "Шерилл"}, -{"usage": "given", "gender": "female", "name": "Шерил"}, -{"usage": "given", "gender": "female", "name": "Шерис"}, -{"usage": "given", "gender": "female", "name": "Шерита"}, -{"usage": "given", "gender": "female", "name": "Шери"}, -{"usage": "given", "gender": "female", "name": "Шерлин"}, -{"usage": "given", "gender": "female", "name": "Шерли"}, -{"usage": "given", "gender": "female", "name": "Шермейн"}, -{"usage": "given", "gender": "female", "name": "Шерон"}, -{"usage": "given", "gender": "female", "name": "Шеррелл"}, -{"usage": "given", "gender": "female", "name": "Шеррилл"}, -{"usage": "given", "gender": "female", "name": "Шеррил"}, -{"usage": "given", "gender": "female", "name": "Шерри"}, -{"usage": "given", "gender": "female", "name": "Шеррон"}, -{"usage": "given", "gender": "female", "name": "Шер"}, -{"usage": "given", "gender": "female", "name": "Шивон"}, -{"usage": "given", "gender": "female", "name": "Шила"}, -{"usage": "given", "gender": "female", "name": "Шина"}, -{"usage": "given", "gender": "female", "name": "Шира"}, -{"usage": "given", "gender": "female", "name": "Ширлин"}, -{"usage": "given", "gender": "female", "name": "Ширли"}, -{"usage": "given", "gender": "female", "name": "Ширл"}, -{"usage": "given", "gender": "female", "name": "Шона"}, -{"usage": "given", "gender": "female", "name": "Шонда"}, -{"usage": "given", "gender": "female", "name": "Шондра"}, -{"usage": "given", "gender": "female", "name": "Шонна"}, -{"usage": "given", "gender": "female", "name": "Шонта"}, -{"usage": "given", "gender": "female", "name": "Шон"}, -{"usage": "given", "gender": "female", "name": "Шоуана"}, -{"usage": "given", "gender": "female", "name": "Шоуанда"}, -{"usage": "given", "gender": "female", "name": "Шоуанна"}, -{"usage": "given", "gender": "female", "name": "Шоуна"}, -{"usage": "given", "gender": "female", "name": "Шоунда"}, -{"usage": "given", "gender": "female", "name": "Шоуни"}, -{"usage": "given", "gender": "female", "name": "Шоунна"}, -{"usage": "given", "gender": "female", "name": "Шоунта"}, -{"usage": "given", "gender": "female", "name": "Шоун"}, -{"usage": "given", "gender": "female", "name": "Шошана"}, -{"usage": "given", "gender": "female", "name": "Шэвон"}, -{"usage": "given", "gender": "female", "name": "Шэнис"}, -{"usage": "given", "gender": "female", "name": "Шэнна"}, -{"usage": "given", "gender": "female", "name": "Шэрис"}, -{"usage": "given", "gender": "female", "name": "Шэри"}, -{"usage": "given", "gender": "female", "name": "Эбби"}, -{"usage": "given", "gender": "female", "name": "Эбигейл"}, -{"usage": "given", "gender": "female", "name": "Эбони"}, -{"usage": "given", "gender": "female", "name": "Эвалин"}, -{"usage": "given", "gender": "female", "name": "Эванджелин"}, -{"usage": "given", "gender": "female", "name": "Эван"}, -{"usage": "given", "gender": "female", "name": "Эва"}, -{"usage": "given", "gender": "female", "name": "Эвелина"}, -{"usage": "given", "gender": "female", "name": "Эвелин"}, -{"usage": "given", "gender": "female", "name": "Эвелия"}, -{"usage": "given", "gender": "female", "name": "Эвита"}, -{"usage": "given", "gender": "female", "name": "Эвия"}, -{"usage": "given", "gender": "female", "name": "Эви"}, -{"usage": "given", "gender": "female", "name": "Эвонна"}, -{"usage": "given", "gender": "female", "name": "Эвон"}, -{"usage": "given", "gender": "female", "name": "Эда"}, -{"usage": "given", "gender": "female", "name": "Эдвина"}, -{"usage": "given", "gender": "female", "name": "Эдда"}, -{"usage": "given", "gender": "female", "name": "Эдди"}, -{"usage": "given", "gender": "female", "name": "Эдельмира"}, -{"usage": "given", "gender": "female", "name": "Эдит"}, -{"usage": "given", "gender": "female", "name": "Эди"}, -{"usage": "given", "gender": "female", "name": "Эдна"}, -{"usage": "given", "gender": "female", "name": "Эдра"}, -{"usage": "given", "gender": "female", "name": "Эдрис"}, -{"usage": "given", "gender": "female", "name": "Эйвери"}, -{"usage": "given", "gender": "female", "name": "Эйлин"}, -{"usage": "given", "gender": "female", "name": "Эйлис"}, -{"usage": "given", "gender": "female", "name": "Эйми"}, -{"usage": "given", "gender": "female", "name": "Эйприл"}, -{"usage": "given", "gender": "female", "name": "Экси"}, -{"usage": "given", "gender": "female", "name": "Эладия"}, -{"usage": "given", "gender": "female", "name": "Элайна"}, -{"usage": "given", "gender": "female", "name": "Элана"}, -{"usage": "given", "gender": "female", "name": "Эланор"}, -{"usage": "given", "gender": "female", "name": "Эла"}, -{"usage": "given", "gender": "female", "name": "Элейн"}, -{"usage": "given", "gender": "female", "name": "Элени"}, -{"usage": "given", "gender": "female", "name": "Эленора"}, -{"usage": "given", "gender": "female", "name": "Эленор"}, -{"usage": "given", "gender": "female", "name": "Элен"}, -{"usage": "given", "gender": "female", "name": "Элеонора"}, -{"usage": "given", "gender": "female", "name": "Элеонор"}, -{"usage": "given", "gender": "female", "name": "Элиана"}, -{"usage": "given", "gender": "female", "name": "Элида"}, -{"usage": "given", "gender": "female", "name": "Элидия"}, -{"usage": "given", "gender": "female", "name": "Элизабет"}, -{"usage": "given", "gender": "female", "name": "Элиза"}, -{"usage": "given", "gender": "female", "name": "Элизбет"}, -{"usage": "given", "gender": "female", "name": "Элиз"}, -{"usage": "given", "gender": "female", "name": "Элина"}, -{"usage": "given", "gender": "female", "name": "Элинор"}, -{"usage": "given", "gender": "female", "name": "Элин"}, -{"usage": "given", "gender": "female", "name": "Элисия"}, -{"usage": "given", "gender": "female", "name": "Элисон"}, -{"usage": "given", "gender": "female", "name": "Элисса"}, -{"usage": "given", "gender": "female", "name": "Элис"}, -{"usage": "given", "gender": "female", "name": "Элиша"}, -{"usage": "given", "gender": "female", "name": "Элия"}, -{"usage": "given", "gender": "female", "name": "Элламэй"}, -{"usage": "given", "gender": "female", "name": "Элла"}, -{"usage": "given", "gender": "female", "name": "Эллена"}, -{"usage": "given", "gender": "female", "name": "Эллен"}, -{"usage": "given", "gender": "female", "name": "Эллин"}, -{"usage": "given", "gender": "female", "name": "Эллисон"}, -{"usage": "given", "gender": "female", "name": "Эллис"}, -{"usage": "given", "gender": "female", "name": "Элли"}, -{"usage": "given", "gender": "female", "name": "Элма"}, -{"usage": "given", "gender": "female", "name": "Элмер"}, -{"usage": "given", "gender": "female", "name": "Элна"}, -{"usage": "given", "gender": "female", "name": "Элнора"}, -{"usage": "given", "gender": "female", "name": "Элодия "}, -{"usage": "given", "gender": "female", "name": "Элоиза"}, -{"usage": "given", "gender": "female", "name": "Элси"}, -{"usage": "given", "gender": "female", "name": "Элс"}, -{"usage": "given", "gender": "female", "name": "Элуиз "}, -{"usage": "given", "gender": "female", "name": "Эльба"}, -{"usage": "given", "gender": "female", "name": "Эльванда"}, -{"usage": "given", "gender": "female", "name": "Эльва"}, -{"usage": "given", "gender": "female", "name": "Эльвера"}, -{"usage": "given", "gender": "female", "name": "Эльвина"}, -{"usage": "given", "gender": "female", "name": "Эльвира"}, -{"usage": "given", "gender": "female", "name": "Эльвия"}, -{"usage": "given", "gender": "female", "name": "Эльви"}, -{"usage": "given", "gender": "female", "name": "Эльда"}, -{"usage": "given", "gender": "female", "name": "Эльдора"}, -{"usage": "given", "gender": "female", "name": "Эльза"}, -{"usage": "given", "gender": "female", "name": "Эльке"}, -{"usage": "given", "gender": "female", "name": "Эльмира"}, -{"usage": "given", "gender": "female", "name": "Эльфреда"}, -{"usage": "given", "gender": "female", "name": "Эльфрида"}, -{"usage": "given", "gender": "female", "name": "Эма"}, -{"usage": "given", "gender": "female", "name": "Эмберли"}, -{"usage": "given", "gender": "female", "name": "Эмбер"}, -{"usage": "given", "gender": "female", "name": "Эмелина"}, -{"usage": "given", "gender": "female", "name": "Эмелия"}, -{"usage": "given", "gender": "female", "name": "Эмели"}, -{"usage": "given", "gender": "female", "name": "Эмеральда"}, -{"usage": "given", "gender": "female", "name": "Эмерита"}, -{"usage": "given", "gender": "female", "name": "Эмии"}, -{"usage": "given", "gender": "female", "name": "Эмилия"}, -{"usage": "given", "gender": "female", "name": "Эмили"}, -{"usage": "given", "gender": "female", "name": "Эми"}, -{"usage": "given", "gender": "female", "name": "Эммалин"}, -{"usage": "given", "gender": "female", "name": "Эмма"}, -{"usage": "given", "gender": "female", "name": "Эмми"}, -{"usage": "given", "gender": "female", "name": "Энгл"}, -{"usage": "given", "gender": "female", "name": "Энда"}, -{"usage": "given", "gender": "female", "name": "Энджел"}, -{"usage": "given", "gender": "female", "name": "Энджи"}, -{"usage": "given", "gender": "female", "name": "Энедина"}, -{"usage": "given", "gender": "female", "name": "Энеида"}, -{"usage": "given", "gender": "female", "name": "Энжелин"}, -{"usage": "given", "gender": "female", "name": "Энид"}, -{"usage": "given", "gender": "female", "name": "Эннис"}, -{"usage": "given", "gender": "female", "name": "Энни"}, -{"usage": "given", "gender": "female", "name": "Эннмари"}, -{"usage": "given", "gender": "female", "name": "Энн"}, -{"usage": "given", "gender": "female", "name": "Энола"}, -{"usage": "given", "gender": "female", "name": "Энрикета"}, -{"usage": "given", "gender": "female", "name": "Эн"}, -{"usage": "given", "gender": "female", "name": "Эпифания"}, -{"usage": "given", "gender": "female", "name": "Эпоха"}, -{"usage": "given", "gender": "female", "name": "Эрика"}, -{"usage": "given", "gender": "female", "name": "Эрин"}, -{"usage": "given", "gender": "female", "name": "Эрлена"}, -{"usage": "given", "gender": "female", "name": "Эрлинда"}, -{"usage": "given", "gender": "female", "name": "Эрлин"}, -{"usage": "given", "gender": "female", "name": "Эрли"}, -{"usage": "given", "gender": "female", "name": "Эрма"}, -{"usage": "given", "gender": "female", "name": "Эрмелинда"}, -{"usage": "given", "gender": "female", "name": "Эрмила"}, -{"usage": "given", "gender": "female", "name": "Эрмина"}, -{"usage": "given", "gender": "female", "name": "Эрминия"}, -{"usage": "given", "gender": "female", "name": "Эрна"}, -{"usage": "given", "gender": "female", "name": "Эрнестина"}, -{"usage": "given", "gender": "female", "name": "Эрнестин"}, -{"usage": "given", "gender": "female", "name": "Эрта"}, -{"usage": "given", "gender": "female", "name": "Эсмеральда"}, -{"usage": "given", "gender": "female", "name": "Эсперанса"}, -{"usage": "given", "gender": "female", "name": "Эсси"}, -{"usage": "given", "gender": "female", "name": "Эста"}, -{"usage": "given", "gender": "female", "name": "Эстела"}, -{"usage": "given", "gender": "female", "name": "Эстелла"}, -{"usage": "given", "gender": "female", "name": "Эстель"}, -{"usage": "given", "gender": "female", "name": "Эстер"}, -{"usage": "given", "gender": "female", "name": "Эстефана"}, -{"usage": "given", "gender": "female", "name": "Эстрелла"}, -{"usage": "given", "gender": "female", "name": "Этанольн"}, -{"usage": "given", "gender": "female", "name": "Этелин"}, -{"usage": "given", "gender": "female", "name": "Этель"}, -{"usage": "given", "gender": "female", "name": "Этилен"}, -{"usage": "given", "gender": "female", "name": "Этил"}, -{"usage": "given", "gender": "female", "name": "Этта"}, -{"usage": "given", "gender": "female", "name": "Этти"}, -{"usage": "given", "gender": "female", "name": "Эулалия"}, -{"usage": "given", "gender": "female", "name": "Эура"}, -{"usage": "given", "gender": "female", "name": "Эусебия"}, -{"usage": "given", "gender": "female", "name": "Эустолия"}, -{"usage": "given", "gender": "female", "name": "Эуфемия"}, -{"usage": "given", "gender": "female", "name": "Эфтон"}, -{"usage": "given", "gender": "female", "name": "Эффи"}, -{"usage": "given", "gender": "female", "name": "Эхтель"}, -{"usage": "given", "gender": "female", "name": "Эшлин"}, -{"usage": "given", "gender": "female", "name": "Эшли"}, -{"usage": "given", "gender": "female", "name": "Юджения"}, -{"usage": "given", "gender": "female", "name": "Юджени"}, -{"usage": "given", "gender": "female", "name": "Юджина"}, -{"usage": "given", "gender": "female", "name": "Юланда"}, -{"usage": "given", "gender": "female", "name": "Юла"}, -{"usage": "given", "gender": "female", "name": "Юна"}, -{"usage": "given", "gender": "female", "name": "Юнис"}, -{"usage": "given", "gender": "female", "name": "Юн"}, -{"usage": "given", "gender": "female", "name": "Ютта"}, -{"usage": "given", "gender": "female", "name": "Ядвига"}, -{"usage": "given", "gender": "female", "name": "Ядира"}, -{"usage": "given", "gender": "female", "name": "Ямайка"}, -{"usage": "given", "gender": "female", "name": "Янира"}, -{"usage": "given", "gender": "female", "name": "Янита"}, -{"usage": "given", "gender": "female", "name": "Ясмин"}, -{"usage": "given", "gender": "female", "name": "Яхайра"}, -{"usage": "given", "gender": "male", "name": "Аарон"}, -{"usage": "given", "gender": "male", "name": "Абдул"}, -{"usage": "given", "gender": "male", "name": "Абель"}, -{"usage": "given", "gender": "male", "name": "Абрам"}, -{"usage": "given", "gender": "male", "name": "Абрахам"}, -{"usage": "given", "gender": "male", "name": "Августин"}, -{"usage": "given", "gender": "male", "name": "Августус"}, -{"usage": "given", "gender": "male", "name": "Агустин"}, -{"usage": "given", "gender": "male", "name": "Адальберто"}, -{"usage": "given", "gender": "male", "name": "Адам"}, -{"usage": "given", "gender": "male", "name": "Адан"}, -{"usage": "given", "gender": "male", "name": "Адольфо"}, -{"usage": "given", "gender": "male", "name": "Адольф"}, -{"usage": "given", "gender": "male", "name": "Айвори"}, -{"usage": "given", "gender": "male", "name": "Айзая"}, -{"usage": "given", "gender": "male", "name": "Айзек"}, -{"usage": "given", "gender": "male", "name": "Айк"}, -{"usage": "given", "gender": "male", "name": "Айра"}, -{"usage": "given", "gender": "male", "name": "Алан"}, -{"usage": "given", "gender": "male", "name": "Александр"}, -{"usage": "given", "gender": "male", "name": "Алексис"}, -{"usage": "given", "gender": "male", "name": "Алекс"}, -{"usage": "given", "gender": "male", "name": "Алек"}, -{"usage": "given", "gender": "male", "name": "Алехандро"}, -{"usage": "given", "gender": "male", "name": "Али"}, -{"usage": "given", "gender": "male", "name": "Аллан"}, -{"usage": "given", "gender": "male", "name": "Аллен"}, -{"usage": "given", "gender": "male", "name": "Алонзо"}, -{"usage": "given", "gender": "male", "name": "Алонсо"}, -{"usage": "given", "gender": "male", "name": "Альберто"}, -{"usage": "given", "gender": "male", "name": "Альберт"}, -{"usage": "given", "gender": "male", "name": "Альваро"}, -{"usage": "given", "gender": "male", "name": "Альдо"}, -{"usage": "given", "gender": "male", "name": "Альфонсо"}, -{"usage": "given", "gender": "male", "name": "Альфонс"}, -{"usage": "given", "gender": "male", "name": "Альфредо"}, -{"usage": "given", "gender": "male", "name": "Альфред"}, -{"usage": "given", "gender": "male", "name": "Аль"}, -{"usage": "given", "gender": "male", "name": "Амадо"}, -{"usage": "given", "gender": "male", "name": "Амосс"}, -{"usage": "given", "gender": "male", "name": "Андерсон"}, -{"usage": "given", "gender": "male", "name": "Анджело"}, -{"usage": "given", "gender": "male", "name": "Андреас"}, -{"usage": "given", "gender": "male", "name": "Андрес"}, -{"usage": "given", "gender": "male", "name": "Андре"}, -{"usage": "given", "gender": "male", "name": "Анибаль"}, -{"usage": "given", "gender": "male", "name": "Антонио"}, -{"usage": "given", "gender": "male", "name": "Антон"}, -{"usage": "given", "gender": "male", "name": "Антуан"}, -{"usage": "given", "gender": "male", "name": "Арден"}, -{"usage": "given", "gender": "male", "name": "Арлен"}, -{"usage": "given", "gender": "male", "name": "Арли"}, -{"usage": "given", "gender": "male", "name": "Армандо"}, -{"usage": "given", "gender": "male", "name": "Арманд"}, -{"usage": "given", "gender": "male", "name": "Арнольдо"}, -{"usage": "given", "gender": "male", "name": "Арнольд"}, -{"usage": "given", "gender": "male", "name": "Арнульфо"}, -{"usage": "given", "gender": "male", "name": "Арон"}, -{"usage": "given", "gender": "male", "name": "Артуро"}, -{"usage": "given", "gender": "male", "name": "Артур"}, -{"usage": "given", "gender": "male", "name": "Арт"}, -{"usage": "given", "gender": "male", "name": "Арчи"}, -{"usage": "given", "gender": "male", "name": "Аугуст"}, -{"usage": "given", "gender": "male", "name": "Аурелио"}, -{"usage": "given", "gender": "male", "name": "Ахмад"}, -{"usage": "given", "gender": "male", "name": "Ахмед"}, -{"usage": "given", "gender": "male", "name": "Бадди"}, -{"usage": "given", "gender": "male", "name": "Бад"}, -{"usage": "given", "gender": "male", "name": "Байрон"}, -{"usage": "given", "gender": "male", "name": "Бак"}, -{"usage": "given", "gender": "male", "name": "Барни"}, -{"usage": "given", "gender": "male", "name": "Баррет"}, -{"usage": "given", "gender": "male", "name": "Барри"}, -{"usage": "given", "gender": "male", "name": "Бартон"}, -{"usage": "given", "gender": "male", "name": "Барт"}, -{"usage": "given", "gender": "male", "name": "Бастер"}, -{"usage": "given", "gender": "male", "name": "Бенджамин"}, -{"usage": "given", "gender": "male", "name": "Бенедикт"}, -{"usage": "given", "gender": "male", "name": "Бенито"}, -{"usage": "given", "gender": "male", "name": "Беннетт"}, -{"usage": "given", "gender": "male", "name": "Бенни"}, -{"usage": "given", "gender": "male", "name": "Бентон"}, -{"usage": "given", "gender": "male", "name": "Бен"}, -{"usage": "given", "gender": "male", "name": "Бернардо"}, -{"usage": "given", "gender": "male", "name": "Бернард"}, -{"usage": "given", "gender": "male", "name": "Берни"}, -{"usage": "given", "gender": "male", "name": "Берри"}, -{"usage": "given", "gender": "male", "name": "Бертрам"}, -{"usage": "given", "gender": "male", "name": "Берт"}, -{"usage": "given", "gender": "male", "name": "Билли"}, -{"usage": "given", "gender": "male", "name": "Блейк"}, -{"usage": "given", "gender": "male", "name": "Блейн"}, -{"usage": "given", "gender": "male", "name": "Блэр"}, -{"usage": "given", "gender": "male", "name": "Бобби"}, -{"usage": "given", "gender": "male", "name": "Боб"}, -{"usage": "given", "gender": "male", "name": "Бойд"}, -{"usage": "given", "gender": "male", "name": "Бойс"}, -{"usage": "given", "gender": "male", "name": "Борис"}, -{"usage": "given", "gender": "male", "name": "Бо"}, -{"usage": "given", "gender": "male", "name": "Брайант"}, -{"usage": "given", "gender": "male", "name": "Брайан"}, -{"usage": "given", "gender": "male", "name": "Брайон"}, -{"usage": "given", "gender": "male", "name": "Брайс"}, -{"usage": "given", "gender": "male", "name": "Брендан"}, -{"usage": "given", "gender": "male", "name": "Брендон"}, -{"usage": "given", "gender": "male", "name": "Брентон"}, -{"usage": "given", "gender": "male", "name": "Брент"}, -{"usage": "given", "gender": "male", "name": "Бретт"}, -{"usage": "given", "gender": "male", "name": "Брет"}, -{"usage": "given", "gender": "male", "name": "Брис"}, -{"usage": "given", "gender": "male", "name": "Бритт"}, -{"usage": "given", "gender": "male", "name": "Бродерик"}, -{"usage": "given", "gender": "male", "name": "Брок"}, -{"usage": "given", "gender": "male", "name": "Брукс"}, -{"usage": "given", "gender": "male", "name": "Бруно"}, -{"usage": "given", "gender": "male", "name": "Брэди"}, -{"usage": "given", "gender": "male", "name": "Брэдли"}, -{"usage": "given", "gender": "male", "name": "Брэдфорд"}, -{"usage": "given", "gender": "male", "name": "Брэд"}, -{"usage": "given", "gender": "male", "name": "Брэйн"}, -{"usage": "given", "gender": "male", "name": "Брэнден"}, -{"usage": "given", "gender": "male", "name": "Брэндон"}, -{"usage": "given", "gender": "male", "name": "Брэнт"}, -{"usage": "given", "gender": "male", "name": "Брюс"}, -{"usage": "given", "gender": "male", "name": "Букер"}, -{"usage": "given", "gender": "male", "name": "Буфорд"}, -{"usage": "given", "gender": "male", "name": "Бэзил"}, -{"usage": "given", "gender": "male", "name": "Бёрл"}, -{"usage": "given", "gender": "male", "name": "Бёртон"}, -{"usage": "given", "gender": "male", "name": "Бёрт"}, -{"usage": "given", "gender": "male", "name": "Валентин"}, -{"usage": "given", "gender": "male", "name": "Вал"}, -{"usage": "given", "gender": "male", "name": "Вернер"}, -{"usage": "given", "gender": "male", "name": "Вернон"}, -{"usage": "given", "gender": "male", "name": "Верн"}, -{"usage": "given", "gender": "male", "name": "Виктор"}, -{"usage": "given", "gender": "male", "name": "Виллиан"}, -{"usage": "given", "gender": "male", "name": "Вилли"}, -{"usage": "given", "gender": "male", "name": "Вильфредо"}, -{"usage": "given", "gender": "male", "name": "Винсент"}, -{"usage": "given", "gender": "male", "name": "Винс"}, -{"usage": "given", "gender": "male", "name": "Винченцо"}, -{"usage": "given", "gender": "male", "name": "Вирджилио"}, -{"usage": "given", "gender": "male", "name": "Висенте"}, -{"usage": "given", "gender": "male", "name": "Вито"}, -{"usage": "given", "gender": "male", "name": "Вон"}, -{"usage": "given", "gender": "male", "name": "Вудро"}, -{"usage": "given", "gender": "male", "name": "Вэйлон"}, -{"usage": "given", "gender": "male", "name": "Вэнс"}, -{"usage": "given", "gender": "male", "name": "Вэн"}, -{"usage": "given", "gender": "male", "name": "Вёрджил"}, -{"usage": "given", "gender": "male", "name": "Габриэль"}, -{"usage": "given", "gender": "male", "name": "Гай"}, -{"usage": "given", "gender": "male", "name": "Гален"}, -{"usage": "given", "gender": "male", "name": "Гарланд"}, -{"usage": "given", "gender": "male", "name": "Гарольд"}, -{"usage": "given", "gender": "male", "name": "Гаррет"}, -{"usage": "given", "gender": "male", "name": "Гарри"}, -{"usage": "given", "gender": "male", "name": "Гарт"}, -{"usage": "given", "gender": "male", "name": "Гарфилд"}, -{"usage": "given", "gender": "male", "name": "Гастон"}, -{"usage": "given", "gender": "male", "name": "Гас"}, -{"usage": "given", "gender": "male", "name": "Гейл"}, -{"usage": "given", "gender": "male", "name": "Генри"}, -{"usage": "given", "gender": "male", "name": "Геральдо"}, -{"usage": "given", "gender": "male", "name": "Герберт"}, -{"usage": "given", "gender": "male", "name": "Герман"}, -{"usage": "given", "gender": "male", "name": "Гершель"}, -{"usage": "given", "gender": "male", "name": "Гилберт"}, -{"usage": "given", "gender": "male", "name": "Гильермо"}, -{"usage": "given", "gender": "male", "name": "Гил"}, -{"usage": "given", "gender": "male", "name": "Гленн"}, -{"usage": "given", "gender": "male", "name": "Глен"}, -{"usage": "given", "gender": "male", "name": "Говард"}, -{"usage": "given", "gender": "male", "name": "Гомер"}, -{"usage": "given", "gender": "male", "name": "Гонсало"}, -{"usage": "given", "gender": "male", "name": "Гордон"}, -{"usage": "given", "gender": "male", "name": "Гранвиль"}, -{"usage": "given", "gender": "male", "name": "Грант"}, -{"usage": "given", "gender": "male", "name": "Грегг"}, -{"usage": "given", "gender": "male", "name": "Грегорио"}, -{"usage": "given", "gender": "male", "name": "Грегори"}, -{"usage": "given", "gender": "male", "name": "Грег"}, -{"usage": "given", "gender": "male", "name": "Грейг"}, -{"usage": "given", "gender": "male", "name": "Грейди"}, -{"usage": "given", "gender": "male", "name": "Гровер"}, -{"usage": "given", "gender": "male", "name": "Грэхем"}, -{"usage": "given", "gender": "male", "name": "Густаво"}, -{"usage": "given", "gender": "male", "name": "Гэвин"}, -{"usage": "given", "gender": "male", "name": "Гэйлорд"}, -{"usage": "given", "gender": "male", "name": "Гэри"}, -{"usage": "given", "gender": "male", "name": "Дадли"}, -{"usage": "given", "gender": "male", "name": "Даллас"}, -{"usage": "given", "gender": "male", "name": "Далтон"}, -{"usage": "given", "gender": "male", "name": "Дамиан"}, -{"usage": "given", "gender": "male", "name": "Дамион"}, -{"usage": "given", "gender": "male", "name": "Данило"}, -{"usage": "given", "gender": "male", "name": "Данте"}, -{"usage": "given", "gender": "male", "name": "Дарвин"}, -{"usage": "given", "gender": "male", "name": "Дарелл"}, -{"usage": "given", "gender": "male", "name": "Дарен"}, -{"usage": "given", "gender": "male", "name": "Дарин"}, -{"usage": "given", "gender": "male", "name": "Дарио"}, -{"usage": "given", "gender": "male", "name": "Дариус"}, -{"usage": "given", "gender": "male", "name": "Дарнелл"}, -{"usage": "given", "gender": "male", "name": "Дарон"}, -{"usage": "given", "gender": "male", "name": "Даррелл"}, -{"usage": "given", "gender": "male", "name": "Даррел"}, -{"usage": "given", "gender": "male", "name": "Даррен"}, -{"usage": "given", "gender": "male", "name": "Даррик"}, -{"usage": "given", "gender": "male", "name": "Даррин"}, -{"usage": "given", "gender": "male", "name": "Даррон"}, -{"usage": "given", "gender": "male", "name": "Дастин"}, -{"usage": "given", "gender": "male", "name": "Дасти"}, -{"usage": "given", "gender": "male", "name": "ДеАнджело"}, -{"usage": "given", "gender": "male", "name": "ДеАндре"}, -{"usage": "given", "gender": "male", "name": "ДеШон"}, -{"usage": "given", "gender": "male", "name": "Девейн"}, -{"usage": "given", "gender": "male", "name": "Девин"}, -{"usage": "given", "gender": "male", "name": "Девитт"}, -{"usage": "given", "gender": "male", "name": "Девон"}, -{"usage": "given", "gender": "male", "name": "Дейв"}, -{"usage": "given", "gender": "male", "name": "Декстер"}, -{"usage": "given", "gender": "male", "name": "Делберт"}, -{"usage": "given", "gender": "male", "name": "Дельмар"}, -{"usage": "given", "gender": "male", "name": "Дельмер"}, -{"usage": "given", "gender": "male", "name": "Дель"}, -{"usage": "given", "gender": "male", "name": "Демаркус"}, -{"usage": "given", "gender": "male", "name": "Денвер"}, -{"usage": "given", "gender": "male", "name": "Денис"}, -{"usage": "given", "gender": "male", "name": "Деннис"}, -{"usage": "given", "gender": "male", "name": "Денни"}, -{"usage": "given", "gender": "male", "name": "Деон"}, -{"usage": "given", "gender": "male", "name": "Дерек"}, -{"usage": "given", "gender": "male", "name": "Дерик"}, -{"usage": "given", "gender": "male", "name": "Деррик"}, -{"usage": "given", "gender": "male", "name": "Десмонд"}, -{"usage": "given", "gender": "male", "name": "Джадсон"}, -{"usage": "given", "gender": "male", "name": "Джамал"}, -{"usage": "given", "gender": "male", "name": "Джамель"}, -{"usage": "given", "gender": "male", "name": "Джарвис"}, -{"usage": "given", "gender": "male", "name": "Джаред"}, -{"usage": "given", "gender": "male", "name": "Джарод"}, -{"usage": "given", "gender": "male", "name": "Джарред"}, -{"usage": "given", "gender": "male", "name": "Джарретт"}, -{"usage": "given", "gender": "male", "name": "Джаррод"}, -{"usage": "given", "gender": "male", "name": "Джаспер"}, -{"usage": "given", "gender": "male", "name": "Джастин"}, -{"usage": "given", "gender": "male", "name": "Джед"}, -{"usage": "given", "gender": "male", "name": "Джейкоб"}, -{"usage": "given", "gender": "male", "name": "Джейк"}, -{"usage": "given", "gender": "male", "name": "Джеймал"}, -{"usage": "given", "gender": "male", "name": "Джеймар"}, -{"usage": "given", "gender": "male", "name": "Джейми"}, -{"usage": "given", "gender": "male", "name": "Джеймс"}, -{"usage": "given", "gender": "male", "name": "Джейм"}, -{"usage": "given", "gender": "male", "name": "Джейсон"}, -{"usage": "given", "gender": "male", "name": "Джей"}, -{"usage": "given", "gender": "male", "name": "Джеки"}, -{"usage": "given", "gender": "male", "name": "Джексон"}, -{"usage": "given", "gender": "male", "name": "Джек"}, -{"usage": "given", "gender": "male", "name": "Джемисон"}, -{"usage": "given", "gender": "male", "name": "Джеральд"}, -{"usage": "given", "gender": "male", "name": "Джерами"}, -{"usage": "given", "gender": "male", "name": "Джереми"}, -{"usage": "given", "gender": "male", "name": "Джеримайя"}, -{"usage": "given", "gender": "male", "name": "Джери"}, -{"usage": "given", "gender": "male", "name": "Джермейн"}, -{"usage": "given", "gender": "male", "name": "Джерольд"}, -{"usage": "given", "gender": "male", "name": "Джероми"}, -{"usage": "given", "gender": "male", "name": "Джером"}, -{"usage": "given", "gender": "male", "name": "Джеррелл"}, -{"usage": "given", "gender": "male", "name": "Джерри"}, -{"usage": "given", "gender": "male", "name": "Джеррод"}, -{"usage": "given", "gender": "male", "name": "Джесси"}, -{"usage": "given", "gender": "male", "name": "Джесс"}, -{"usage": "given", "gender": "male", "name": "Джефферсон"}, -{"usage": "given", "gender": "male", "name": "Джеффри"}, -{"usage": "given", "gender": "male", "name": "Джефф"}, -{"usage": "given", "gender": "male", "name": "Дже"}, -{"usage": "given", "gender": "male", "name": "Джизус"}, -{"usage": "given", "gender": "male", "name": "Джилберто"}, -{"usage": "given", "gender": "male", "name": "Джимми"}, -{"usage": "given", "gender": "male", "name": "Джим"}, -{"usage": "given", "gender": "male", "name": "Джино"}, -{"usage": "given", "gender": "male", "name": "Джин"}, -{"usage": "given", "gender": "male", "name": "Джованни"}, -{"usage": "given", "gender": "male", "name": "Джоди"}, -{"usage": "given", "gender": "male", "name": "Джозеф"}, -{"usage": "given", "gender": "male", "name": "Джозиа"}, -{"usage": "given", "gender": "male", "name": "Джонас"}, -{"usage": "given", "gender": "male", "name": "Джонатан"}, -{"usage": "given", "gender": "male", "name": "Джонатон"}, -{"usage": "given", "gender": "male", "name": "Джона"}, -{"usage": "given", "gender": "male", "name": "Джонни"}, -{"usage": "given", "gender": "male", "name": "Джонсон"}, -{"usage": "given", "gender": "male", "name": "Джон"}, -{"usage": "given", "gender": "male", "name": "Джордан"}, -{"usage": "given", "gender": "male", "name": "Джордж"}, -{"usage": "given", "gender": "male", "name": "Джоспех"}, -{"usage": "given", "gender": "male", "name": "Джосу"}, -{"usage": "given", "gender": "male", "name": "Джошуа"}, -{"usage": "given", "gender": "male", "name": "Джош"}, -{"usage": "given", "gender": "male", "name": "Джоэл"}, -{"usage": "given", "gender": "male", "name": "Джо"}, -{"usage": "given", "gender": "male", "name": "Джуд"}, -{"usage": "given", "gender": "male", "name": "Джузеппе"}, -{"usage": "given", "gender": "male", "name": "Джулиан"}, -{"usage": "given", "gender": "male", "name": "Джулиус"}, -{"usage": "given", "gender": "male", "name": "Джуниор"}, -{"usage": "given", "gender": "male", "name": "Джуэл"}, -{"usage": "given", "gender": "male", "name": "Диего"}, -{"usage": "given", "gender": "male", "name": "Дик"}, -{"usage": "given", "gender": "male", "name": "Дилан"}, -{"usage": "given", "gender": "male", "name": "Диллон"}, -{"usage": "given", "gender": "male", "name": "Димитрий"}, -{"usage": "given", "gender": "male", "name": "Дино"}, -{"usage": "given", "gender": "male", "name": "Дин"}, -{"usage": "given", "gender": "male", "name": "Дион"}, -{"usage": "given", "gender": "male", "name": "Дирк"}, -{"usage": "given", "gender": "male", "name": "Ди"}, -{"usage": "given", "gender": "male", "name": "Дойл"}, -{"usage": "given", "gender": "male", "name": "Доменик"}, -{"usage": "given", "gender": "male", "name": "Доминго"}, -{"usage": "given", "gender": "male", "name": "Доминик"}, -{"usage": "given", "gender": "male", "name": "Дональд"}, -{"usage": "given", "gender": "male", "name": "Доннелл"}, -{"usage": "given", "gender": "male", "name": "Донни"}, -{"usage": "given", "gender": "male", "name": "Донн"}, -{"usage": "given", "gender": "male", "name": "Донован"}, -{"usage": "given", "gender": "male", "name": "Донте"}, -{"usage": "given", "gender": "male", "name": "Дон"}, -{"usage": "given", "gender": "male", "name": "Дориан"}, -{"usage": "given", "gender": "male", "name": "Дорси"}, -{"usage": "given", "gender": "male", "name": "Дрю"}, -{"usage": "given", "gender": "male", "name": "Дуайт"}, -{"usage": "given", "gender": "male", "name": "Дуглас"}, -{"usage": "given", "gender": "male", "name": "Дуг"}, -{"usage": "given", "gender": "male", "name": "Дункан"}, -{"usage": "given", "gender": "male", "name": "Дуэйн"}, -{"usage": "given", "gender": "male", "name": "Дьюи"}, -{"usage": "given", "gender": "male", "name": "Дэвид"}, -{"usage": "given", "gender": "male", "name": "Дэвис"}, -{"usage": "given", "gender": "male", "name": "Дэйл"}, -{"usage": "given", "gender": "male", "name": "Дэймон"}, -{"usage": "given", "gender": "male", "name": "Дэйн"}, -{"usage": "given", "gender": "male", "name": "Дэмиен"}, -{"usage": "given", "gender": "male", "name": "Дэниал"}, -{"usage": "given", "gender": "male", "name": "Дэниел"}, -{"usage": "given", "gender": "male", "name": "Дэнни"}, -{"usage": "given", "gender": "male", "name": "Дэн"}, -{"usage": "given", "gender": "male", "name": "Дэрил"}, -{"usage": "given", "gender": "male", "name": "Дэррил"}, -{"usage": "given", "gender": "male", "name": "Жак"}, -{"usage": "given", "gender": "male", "name": "Жерар"}, -{"usage": "given", "gender": "male", "name": "Жюль"}, -{"usage": "given", "gender": "male", "name": "Закари"}, -{"usage": "given", "gender": "male", "name": "Зак"}, -{"usage": "given", "gender": "male", "name": "Захар"}, -{"usage": "given", "gender": "male", "name": "Захария"}, -{"usage": "given", "gender": "male", "name": "Захари"}, -{"usage": "given", "gender": "male", "name": "Зейн"}, -{"usage": "given", "gender": "male", "name": "Иван"}, -{"usage": "given", "gender": "male", "name": "Игнасио"}, -{"usage": "given", "gender": "male", "name": "Изекиль"}, -{"usage": "given", "gender": "male", "name": "Израиль"}, -{"usage": "given", "gender": "male", "name": "Изрил"}, -{"usage": "given", "gender": "male", "name": "Иларио"}, -{"usage": "given", "gender": "male", "name": "Иполито"}, -{"usage": "given", "gender": "male", "name": "Ирвинг"}, -{"usage": "given", "gender": "male", "name": "Ирвин"}, -{"usage": "given", "gender": "male", "name": "Исайас"}, -{"usage": "given", "gender": "male", "name": "Исайя"}, -{"usage": "given", "gender": "male", "name": "Исидро"}, -{"usage": "given", "gender": "male", "name": "Исмаэль"}, -{"usage": "given", "gender": "male", "name": "Иссак"}, -{"usage": "given", "gender": "male", "name": "Йонг"}, -{"usage": "given", "gender": "male", "name": "Кайл"}, -{"usage": "given", "gender": "male", "name": "Калеб"}, -{"usage": "given", "gender": "male", "name": "Кальвин"}, -{"usage": "given", "gender": "male", "name": "Карим"}, -{"usage": "given", "gender": "male", "name": "Карлос"}, -{"usage": "given", "gender": "male", "name": "Карло"}, -{"usage": "given", "gender": "male", "name": "Карлтон"}, -{"usage": "given", "gender": "male", "name": "Карл"}, -{"usage": "given", "gender": "male", "name": "Кармело"}, -{"usage": "given", "gender": "male", "name": "Кармен"}, -{"usage": "given", "gender": "male", "name": "Кармин"}, -{"usage": "given", "gender": "male", "name": "Карсон"}, -{"usage": "given", "gender": "male", "name": "Картер"}, -{"usage": "given", "gender": "male", "name": "Квентин"}, -{"usage": "given", "gender": "male", "name": "Квинтин"}, -{"usage": "given", "gender": "male", "name": "Кевин"}, -{"usage": "given", "gender": "male", "name": "Кейси"}, -{"usage": "given", "gender": "male", "name": "Кельвин"}, -{"usage": "given", "gender": "male", "name": "Кендалл"}, -{"usage": "given", "gender": "male", "name": "Кендрик"}, -{"usage": "given", "gender": "male", "name": "Кенет"}, -{"usage": "given", "gender": "male", "name": "Кеннет"}, -{"usage": "given", "gender": "male", "name": "Кеннит"}, -{"usage": "given", "gender": "male", "name": "Кенни"}, -{"usage": "given", "gender": "male", "name": "Кентон"}, -{"usage": "given", "gender": "male", "name": "Кент"}, -{"usage": "given", "gender": "male", "name": "Кен"}, -{"usage": "given", "gender": "male", "name": "Кермит"}, -{"usage": "given", "gender": "male", "name": "Керри"}, -{"usage": "given", "gender": "male", "name": "Ким"}, -{"usage": "given", "gender": "male", "name": "Кинан"}, -{"usage": "given", "gender": "male", "name": "Кинг"}, -{"usage": "given", "gender": "male", "name": "Кип"}, -{"usage": "given", "gender": "male", "name": "Кирби"}, -{"usage": "given", "gender": "male", "name": "Кирк"}, -{"usage": "given", "gender": "male", "name": "Кит"}, -{"usage": "given", "gender": "male", "name": "Клайд"}, -{"usage": "given", "gender": "male", "name": "Кларенс"}, -{"usage": "given", "gender": "male", "name": "Кларк"}, -{"usage": "given", "gender": "male", "name": "Клаудио"}, -{"usage": "given", "gender": "male", "name": "Клейтон"}, -{"usage": "given", "gender": "male", "name": "Клемент"}, -{"usage": "given", "gender": "male", "name": "Клер"}, -{"usage": "given", "gender": "male", "name": "Клетус"}, -{"usage": "given", "gender": "male", "name": "Кливленд"}, -{"usage": "given", "gender": "male", "name": "Клинтон"}, -{"usage": "given", "gender": "male", "name": "Клинт"}, -{"usage": "given", "gender": "male", "name": "Клифтон"}, -{"usage": "given", "gender": "male", "name": "Клиффорд"}, -{"usage": "given", "gender": "male", "name": "Клифф"}, -{"usage": "given", "gender": "male", "name": "Клод"}, -{"usage": "given", "gender": "male", "name": "Клэй"}, -{"usage": "given", "gender": "male", "name": "Коди"}, -{"usage": "given", "gender": "male", "name": "Кой"}, -{"usage": "given", "gender": "male", "name": "Колби"}, -{"usage": "given", "gender": "male", "name": "Колин"}, -{"usage": "given", "gender": "male", "name": "Коллин"}, -{"usage": "given", "gender": "male", "name": "Колтон"}, -{"usage": "given", "gender": "male", "name": "Колумбус"}, -{"usage": "given", "gender": "male", "name": "Конни"}, -{"usage": "given", "gender": "male", "name": "Конрад"}, -{"usage": "given", "gender": "male", "name": "Корделл"}, -{"usage": "given", "gender": "male", "name": "Кори"}, -{"usage": "given", "gender": "male", "name": "Корнелий"}, -{"usage": "given", "gender": "male", "name": "Корнелл"}, -{"usage": "given", "gender": "male", "name": "Кортес"}, -{"usage": "given", "gender": "male", "name": "Кортни"}, -{"usage": "given", "gender": "male", "name": "Коулман"}, -{"usage": "given", "gender": "male", "name": "Коул"}, -{"usage": "given", "gender": "male", "name": "Крейг"}, -{"usage": "given", "gender": "male", "name": "Кристиан"}, -{"usage": "given", "gender": "male", "name": "Кристобаль"}, -{"usage": "given", "gender": "male", "name": "Кристофер"}, -{"usage": "given", "gender": "male", "name": "Крис"}, -{"usage": "given", "gender": "male", "name": "Крус"}, -{"usage": "given", "gender": "male", "name": "Ксавье"}, -{"usage": "given", "gender": "male", "name": "Куинн"}, -{"usage": "given", "gender": "male", "name": "Куинси"}, -{"usage": "given", "gender": "male", "name": "Куинтон"}, -{"usage": "given", "gender": "male", "name": "Курт"}, -{"usage": "given", "gender": "male", "name": "Кэмерон"}, -{"usage": "given", "gender": "male", "name": "Кэри"}, -{"usage": "given", "gender": "male", "name": "Кёртис"}, -{"usage": "given", "gender": "male", "name": "Кёрт"}, -{"usage": "given", "gender": "male", "name": "Лаверн"}, -{"usage": "given", "gender": "male", "name": "Лазаро"}, -{"usage": "given", "gender": "male", "name": "Лайл"}, -{"usage": "given", "gender": "male", "name": "Ламар"}, -{"usage": "given", "gender": "male", "name": "Ламонт"}, -{"usage": "given", "gender": "male", "name": "Ландон"}, -{"usage": "given", "gender": "male", "name": "Ланс"}, -{"usage": "given", "gender": "male", "name": "Ларри"}, -{"usage": "given", "gender": "male", "name": "Леандро"}, -{"usage": "given", "gender": "male", "name": "Леви"}, -{"usage": "given", "gender": "male", "name": "Лейф"}, -{"usage": "given", "gender": "male", "name": "Леланд"}, -{"usage": "given", "gender": "male", "name": "Лемюэль"}, -{"usage": "given", "gender": "male", "name": "Ленард"}, -{"usage": "given", "gender": "male", "name": "Ленни"}, -{"usage": "given", "gender": "male", "name": "Лен"}, -{"usage": "given", "gender": "male", "name": "Леонардо"}, -{"usage": "given", "gender": "male", "name": "Леонард"}, -{"usage": "given", "gender": "male", "name": "Леонель"}, -{"usage": "given", "gender": "male", "name": "Леон"}, -{"usage": "given", "gender": "male", "name": "Леопольдо"}, -{"usage": "given", "gender": "male", "name": "Лео"}, -{"usage": "given", "gender": "male", "name": "Лерой"}, -{"usage": "given", "gender": "male", "name": "Лесли"}, -{"usage": "given", "gender": "male", "name": "Лестер"}, -{"usage": "given", "gender": "male", "name": "Лес"}, -{"usage": "given", "gender": "male", "name": "Лиман"}, -{"usage": "given", "gender": "male", "name": "Линвуд"}, -{"usage": "given", "gender": "male", "name": "Линдон"}, -{"usage": "given", "gender": "male", "name": "Линдсей"}, -{"usage": "given", "gender": "male", "name": "Линдси"}, -{"usage": "given", "gender": "male", "name": "Линкольн"}, -{"usage": "given", "gender": "male", "name": "Линн"}, -{"usage": "given", "gender": "male", "name": "Лино"}, -{"usage": "given", "gender": "male", "name": "Лионель"}, -{"usage": "given", "gender": "male", "name": "Ли"}, -{"usage": "given", "gender": "male", "name": "Ллойд"}, -{"usage": "given", "gender": "male", "name": "Логан"}, -{"usage": "given", "gender": "male", "name": "Лойд"}, -{"usage": "given", "gender": "male", "name": "Лонг"}, -{"usage": "given", "gender": "male", "name": "Лонни"}, -{"usage": "given", "gender": "male", "name": "Лон"}, -{"usage": "given", "gender": "male", "name": "Лоренс"}, -{"usage": "given", "gender": "male", "name": "Лоренцо"}, -{"usage": "given", "gender": "male", "name": "Лорен"}, -{"usage": "given", "gender": "male", "name": "Лоуэлл"}, -{"usage": "given", "gender": "male", "name": "Луиджи"}, -{"usage": "given", "gender": "male", "name": "Луис"}, -{"usage": "given", "gender": "male", "name": "Луи"}, -{"usage": "given", "gender": "male", "name": "Лукас"}, -{"usage": "given", "gender": "male", "name": "Лупе"}, -{"usage": "given", "gender": "male", "name": "Лусио"}, -{"usage": "given", "gender": "male", "name": "Лучано"}, -{"usage": "given", "gender": "male", "name": "Лу"}, -{"usage": "given", "gender": "male", "name": "Льюис"}, -{"usage": "given", "gender": "male", "name": "Лэйн"}, -{"usage": "given", "gender": "male", "name": "Лэнни"}, -{"usage": "given", "gender": "male", "name": "Лэси"}, -{"usage": "given", "gender": "male", "name": "Люк"}, -{"usage": "given", "gender": "male", "name": "Люсьен"}, -{"usage": "given", "gender": "male", "name": "Лютер"}, -{"usage": "given", "gender": "male", "name": "Люциус"}, -{"usage": "given", "gender": "male", "name": "Майкл"}, -{"usage": "given", "gender": "male", "name": "Майк"}, -{"usage": "given", "gender": "male", "name": "Майлс"}, -{"usage": "given", "gender": "male", "name": "Максвелл"}, -{"usage": "given", "gender": "male", "name": "Максимо"}, -{"usage": "given", "gender": "male", "name": "Макс"}, -{"usage": "given", "gender": "male", "name": "Мак"}, -{"usage": "given", "gender": "male", "name": "Малик"}, -{"usage": "given", "gender": "male", "name": "Малкольм"}, -{"usage": "given", "gender": "male", "name": "Мануэль"}, -{"usage": "given", "gender": "male", "name": "Ман"}, -{"usage": "given", "gender": "male", "name": "Марвин"}, -{"usage": "given", "gender": "male", "name": "Маргарито"}, -{"usage": "given", "gender": "male", "name": "Мариано"}, -{"usage": "given", "gender": "male", "name": "Марион"}, -{"usage": "given", "gender": "male", "name": "Марио"}, -{"usage": "given", "gender": "male", "name": "Маркиз"}, -{"usage": "given", "gender": "male", "name": "Маркос"}, -{"usage": "given", "gender": "male", "name": "Марко"}, -{"usage": "given", "gender": "male", "name": "Маркус"}, -{"usage": "given", "gender": "male", "name": "Марк"}, -{"usage": "given", "gender": "male", "name": "Марлин"}, -{"usage": "given", "gender": "male", "name": "Марлон"}, -{"usage": "given", "gender": "male", "name": "Марселино"}, -{"usage": "given", "gender": "male", "name": "Марселлус"}, -{"usage": "given", "gender": "male", "name": "Марсело"}, -{"usage": "given", "gender": "male", "name": "Марсель"}, -{"usage": "given", "gender": "male", "name": "Мартин"}, -{"usage": "given", "gender": "male", "name": "Марти"}, -{"usage": "given", "gender": "male", "name": "Маршалл"}, -{"usage": "given", "gender": "male", "name": "Маурисио"}, -{"usage": "given", "gender": "male", "name": "Мауро"}, -{"usage": "given", "gender": "male", "name": "Мейджор"}, -{"usage": "given", "gender": "male", "name": "Мейнард"}, -{"usage": "given", "gender": "male", "name": "Мелвин"}, -{"usage": "given", "gender": "male", "name": "Мел"}, -{"usage": "given", "gender": "male", "name": "Мервин"}, -{"usage": "given", "gender": "male", "name": "Мерлин"}, -{"usage": "given", "gender": "male", "name": "Мерл"}, -{"usage": "given", "gender": "male", "name": "Меррилл"}, -{"usage": "given", "gender": "male", "name": "Мигель"}, -{"usage": "given", "gender": "male", "name": "Мика"}, -{"usage": "given", "gender": "male", "name": "Микель"}, -{"usage": "given", "gender": "male", "name": "Микки"}, -{"usage": "given", "gender": "male", "name": "Милан"}, -{"usage": "given", "gender": "male", "name": "Миллард"}, -{"usage": "given", "gender": "male", "name": "Мило"}, -{"usage": "given", "gender": "male", "name": "Милтон"}, -{"usage": "given", "gender": "male", "name": "Милфорд"}, -{"usage": "given", "gender": "male", "name": "Мин"}, -{"usage": "given", "gender": "male", "name": "Мирон"}, -{"usage": "given", "gender": "male", "name": "Митчелл"}, -{"usage": "given", "gender": "male", "name": "Митчел"}, -{"usage": "given", "gender": "male", "name": "Митч"}, -{"usage": "given", "gender": "male", "name": "Михал"}, -{"usage": "given", "gender": "male", "name": "Мишель"}, -{"usage": "given", "gender": "male", "name": "Модесто"}, -{"usage": "given", "gender": "male", "name": "Мозес"}, -{"usage": "given", "gender": "male", "name": "Мойзес"}, -{"usage": "given", "gender": "male", "name": "Монро"}, -{"usage": "given", "gender": "male", "name": "Монте"}, -{"usage": "given", "gender": "male", "name": "Монти"}, -{"usage": "given", "gender": "male", "name": "Морган"}, -{"usage": "given", "gender": "male", "name": "Морис"}, -{"usage": "given", "gender": "male", "name": "Моррис"}, -{"usage": "given", "gender": "male", "name": "Мортон"}, -{"usage": "given", "gender": "male", "name": "Мос"}, -{"usage": "given", "gender": "male", "name": "Мохамед"}, -{"usage": "given", "gender": "male", "name": "Мохаммад"}, -{"usage": "given", "gender": "male", "name": "Моше"}, -{"usage": "given", "gender": "male", "name": "Мухаммед"}, -{"usage": "given", "gender": "male", "name": "Мэйсон"}, -{"usage": "given", "gender": "male", "name": "Мэтт"}, -{"usage": "given", "gender": "male", "name": "Мэтью"}, -{"usage": "given", "gender": "male", "name": "Мюррей"}, -{"usage": "given", "gender": "male", "name": "Найджел"}, -{"usage": "given", "gender": "male", "name": "Наполеон"}, -{"usage": "given", "gender": "male", "name": "Натаниель"}, -{"usage": "given", "gender": "male", "name": "Натаниэль"}, -{"usage": "given", "gender": "male", "name": "Натан"}, -{"usage": "given", "gender": "male", "name": "Нафанаил"}, -{"usage": "given", "gender": "male", "name": "Невилл"}, -{"usage": "given", "gender": "male", "name": "Нед"}, -{"usage": "given", "gender": "male", "name": "Нельсон"}, -{"usage": "given", "gender": "male", "name": "Нестор"}, -{"usage": "given", "gender": "male", "name": "Ники"}, -{"usage": "given", "gender": "male", "name": "Николас"}, -{"usage": "given", "gender": "male", "name": "Ник"}, -{"usage": "given", "gender": "male", "name": "Нил"}, -{"usage": "given", "gender": "male", "name": "Ноа"}, -{"usage": "given", "gender": "male", "name": "Ной"}, -{"usage": "given", "gender": "male", "name": "Нолан"}, -{"usage": "given", "gender": "male", "name": "Норберто"}, -{"usage": "given", "gender": "male", "name": "Норберт"}, -{"usage": "given", "gender": "male", "name": "Норман"}, -{"usage": "given", "gender": "male", "name": "Ноубл"}, -{"usage": "given", "gender": "male", "name": "Ноэль"}, -{"usage": "given", "gender": "male", "name": "Ньютон"}, -{"usage": "given", "gender": "male", "name": "Оделл"}, -{"usage": "given", "gender": "male", "name": "Одис"}, -{"usage": "given", "gender": "male", "name": "Октавио"}, -{"usage": "given", "gender": "male", "name": "Олден"}, -{"usage": "given", "gender": "male", "name": "Олен"}, -{"usage": "given", "gender": "male", "name": "Оливер"}, -{"usage": "given", "gender": "male", "name": "Олин"}, -{"usage": "given", "gender": "male", "name": "Олли"}, -{"usage": "given", "gender": "male", "name": "Омар"}, -{"usage": "given", "gender": "male", "name": "Омер"}, -{"usage": "given", "gender": "male", "name": "Орасио"}, -{"usage": "given", "gender": "male", "name": "Орвал"}, -{"usage": "given", "gender": "male", "name": "Орвилл"}, -{"usage": "given", "gender": "male", "name": "Орен"}, -{"usage": "given", "gender": "male", "name": "Орландо"}, -{"usage": "given", "gender": "male", "name": "Освальдо"}, -{"usage": "given", "gender": "male", "name": "Оскар"}, -{"usage": "given", "gender": "male", "name": "Остин"}, -{"usage": "given", "gender": "male", "name": "Отар"}, -{"usage": "given", "gender": "male", "name": "Отис"}, -{"usage": "given", "gender": "male", "name": "Отто"}, -{"usage": "given", "gender": "male", "name": "Оуэн"}, -{"usage": "given", "gender": "male", "name": "Пабло"}, -{"usage": "given", "gender": "male", "name": "Палмер"}, -{"usage": "given", "gender": "male", "name": "Паркер"}, -{"usage": "given", "gender": "male", "name": "Паскаль"}, -{"usage": "given", "gender": "male", "name": "Патрик"}, -{"usage": "given", "gender": "male", "name": "Педро"}, -{"usage": "given", "gender": "male", "name": "Перри"}, -{"usage": "given", "gender": "male", "name": "Перси"}, -{"usage": "given", "gender": "male", "name": "Питер"}, -{"usage": "given", "gender": "male", "name": "Пит"}, -{"usage": "given", "gender": "male", "name": "Поль"}, -{"usage": "given", "gender": "male", "name": "Портер"}, -{"usage": "given", "gender": "male", "name": "Порфирио"}, -{"usage": "given", "gender": "male", "name": "Престон"}, -{"usage": "given", "gender": "male", "name": "Пьер"}, -{"usage": "given", "gender": "male", "name": "Пэрис"}, -{"usage": "given", "gender": "male", "name": "Пэт"}, -{"usage": "given", "gender": "male", "name": "Райан"}, -{"usage": "given", "gender": "male", "name": "Райли"}, -{"usage": "given", "gender": "male", "name": "Раймонд"}, -{"usage": "given", "gender": "male", "name": "Раймон"}, -{"usage": "given", "gender": "male", "name": "Раймундо"}, -{"usage": "given", "gender": "male", "name": "Ральф"}, -{"usage": "given", "gender": "male", "name": "Рамиро"}, -{"usage": "given", "gender": "male", "name": "Рамон"}, -{"usage": "given", "gender": "male", "name": "Рандольф"}, -{"usage": "given", "gender": "male", "name": "Рассел"}, -{"usage": "given", "gender": "male", "name": "Расс"}, -{"usage": "given", "gender": "male", "name": "Расти"}, -{"usage": "given", "gender": "male", "name": "Рауль"}, -{"usage": "given", "gender": "male", "name": "Рафаэль"}, -{"usage": "given", "gender": "male", "name": "Рашад"}, -{"usage": "given", "gender": "male", "name": "Реджинальд"}, -{"usage": "given", "gender": "male", "name": "Реджи"}, -{"usage": "given", "gender": "male", "name": "Рейд"}, -{"usage": "given", "gender": "male", "name": "Рейес"}, -{"usage": "given", "gender": "male", "name": "Рейнальдо"}, -{"usage": "given", "gender": "male", "name": "Рейфорд"}, -{"usage": "given", "gender": "male", "name": "Рей"}, -{"usage": "given", "gender": "male", "name": "Рекс"}, -{"usage": "given", "gender": "male", "name": "Ренальдо"}, -{"usage": "given", "gender": "male", "name": "Ренато"}, -{"usage": "given", "gender": "male", "name": "Рене"}, -{"usage": "given", "gender": "male", "name": "Ретт"}, -{"usage": "given", "gender": "male", "name": "Рефьюджио"}, -{"usage": "given", "gender": "male", "name": "Ригоберто"}, -{"usage": "given", "gender": "male", "name": "Рид"}, -{"usage": "given", "gender": "male", "name": "Рикардо"}, -{"usage": "given", "gender": "male", "name": "Рики"}, -{"usage": "given", "gender": "male", "name": "Рико"}, -{"usage": "given", "gender": "male", "name": "Рик"}, -{"usage": "given", "gender": "male", "name": "Ричард"}, -{"usage": "given", "gender": "male", "name": "Ричи"}, -{"usage": "given", "gender": "male", "name": "Рич"}, -{"usage": "given", "gender": "male", "name": "Робби"}, -{"usage": "given", "gender": "male", "name": "Роберто"}, -{"usage": "given", "gender": "male", "name": "Роберт"}, -{"usage": "given", "gender": "male", "name": "Робин"}, -{"usage": "given", "gender": "male", "name": "Робт"}, -{"usage": "given", "gender": "male", "name": "Роб"}, -{"usage": "given", "gender": "male", "name": "Родерик"}, -{"usage": "given", "gender": "male", "name": "Роджер"}, -{"usage": "given", "gender": "male", "name": "Родни"}, -{"usage": "given", "gender": "male", "name": "Родольфо"}, -{"usage": "given", "gender": "male", "name": "Родриго"}, -{"usage": "given", "gender": "male", "name": "Родрик"}, -{"usage": "given", "gender": "male", "name": "Род"}, -{"usage": "given", "gender": "male", "name": "Ройал"}, -{"usage": "given", "gender": "male", "name": "Ройс"}, -{"usage": "given", "gender": "male", "name": "Рой"}, -{"usage": "given", "gender": "male", "name": "Рокки"}, -{"usage": "given", "gender": "male", "name": "Рокко"}, -{"usage": "given", "gender": "male", "name": "Роландо"}, -{"usage": "given", "gender": "male", "name": "Роланд"}, -{"usage": "given", "gender": "male", "name": "Роли"}, -{"usage": "given", "gender": "male", "name": "Роллан"}, -{"usage": "given", "gender": "male", "name": "Рольф"}, -{"usage": "given", "gender": "male", "name": "Роман"}, -{"usage": "given", "gender": "male", "name": "Ромео"}, -{"usage": "given", "gender": "male", "name": "Рональд"}, -{"usage": "given", "gender": "male", "name": "Ронни"}, -{"usage": "given", "gender": "male", "name": "Рон"}, -{"usage": "given", "gender": "male", "name": "Рори"}, -{"usage": "given", "gender": "male", "name": "Росарио"}, -{"usage": "given", "gender": "male", "name": "Росендо"}, -{"usage": "given", "gender": "male", "name": "Роско"}, -{"usage": "given", "gender": "male", "name": "Росс"}, -{"usage": "given", "gender": "male", "name": "Рохелио"}, -{"usage": "given", "gender": "male", "name": "Рубен"}, -{"usage": "given", "gender": "male", "name": "Рубин"}, -{"usage": "given", "gender": "male", "name": "Рувим"}, -{"usage": "given", "gender": "male", "name": "Руди"}, -{"usage": "given", "gender": "male", "name": "Рудольф"}, -{"usage": "given", "gender": "male", "name": "Рузвельт"}, -{"usage": "given", "gender": "male", "name": "Руперт"}, -{"usage": "given", "gender": "male", "name": "Руфус"}, -{"usage": "given", "gender": "male", "name": "Рэй"}, -{"usage": "given", "gender": "male", "name": "Рэндалл"}, -{"usage": "given", "gender": "male", "name": "Рэндал"}, -{"usage": "given", "gender": "male", "name": "Рэнделл"}, -{"usage": "given", "gender": "male", "name": "Рэнди"}, -{"usage": "given", "gender": "male", "name": "Сайлас"}, -{"usage": "given", "gender": "male", "name": "Саймон"}, -{"usage": "given", "gender": "male", "name": "Сайрус"}, -{"usage": "given", "gender": "male", "name": "Сальвадор"}, -{"usage": "given", "gender": "male", "name": "Сальваторе"}, -{"usage": "given", "gender": "male", "name": "Санг"}, -{"usage": "given", "gender": "male", "name": "Сантос"}, -{"usage": "given", "gender": "male", "name": "Санто"}, -{"usage": "given", "gender": "male", "name": "Сантьяго"}, -{"usage": "given", "gender": "male", "name": "Себастьян"}, -{"usage": "given", "gender": "male", "name": "Седрик"}, -{"usage": "given", "gender": "male", "name": "Сезар"}, -{"usage": "given", "gender": "male", "name": "Сеймур"}, -{"usage": "given", "gender": "male", "name": "Серхио"}, -{"usage": "given", "gender": "male", "name": "Сесил"}, -{"usage": "given", "gender": "male", "name": "Сет"}, -{"usage": "given", "gender": "male", "name": "Сидней"}, -{"usage": "given", "gender": "male", "name": "Сид"}, -{"usage": "given", "gender": "male", "name": "Сильвестр"}, -{"usage": "given", "gender": "male", "name": "Сирил"}, -{"usage": "given", "gender": "male", "name": "Скотти"}, -{"usage": "given", "gender": "male", "name": "Скотт"}, -{"usage": "given", "gender": "male", "name": "Скот"}, -{"usage": "given", "gender": "male", "name": "Соломон"}, -{"usage": "given", "gender": "male", "name": "Сол"}, -{"usage": "given", "gender": "male", "name": "Сонни"}, -{"usage": "given", "gender": "male", "name": "Сон"}, -{"usage": "given", "gender": "male", "name": "Спенсер"}, -{"usage": "given", "gender": "male", "name": "Стейси"}, -{"usage": "given", "gender": "male", "name": "Стерлинг"}, -{"usage": "given", "gender": "male", "name": "Стефан"}, -{"usage": "given", "gender": "male", "name": "Стивен"}, -{"usage": "given", "gender": "male", "name": "Стиви"}, -{"usage": "given", "gender": "male", "name": "Стив"}, -{"usage": "given", "gender": "male", "name": "Стэнли"}, -{"usage": "given", "gender": "male", "name": "Стэнтон"}, -{"usage": "given", "gender": "male", "name": "Стэнфорд"}, -{"usage": "given", "gender": "male", "name": "Стэн"}, -{"usage": "given", "gender": "male", "name": "Стюарт"}, -{"usage": "given", "gender": "male", "name": "Сэл"}, -{"usage": "given", "gender": "male", "name": "Сэмми"}, -{"usage": "given", "gender": "male", "name": "Сэмюэль"}, -{"usage": "given", "gender": "male", "name": "Сэм"}, -{"usage": "given", "gender": "male", "name": "Сэнди"}, -{"usage": "given", "gender": "male", "name": "Сэнфорд"}, -{"usage": "given", "gender": "male", "name": "Тайлер"}, -{"usage": "given", "gender": "male", "name": "Тайри"}, -{"usage": "given", "gender": "male", "name": "Тайрон"}, -{"usage": "given", "gender": "male", "name": "Тайсон"}, -{"usage": "given", "gender": "male", "name": "Таннер"}, -{"usage": "given", "gender": "male", "name": "Тан"}, -{"usage": "given", "gender": "male", "name": "Тедди"}, -{"usage": "given", "gender": "male", "name": "Тед"}, -{"usage": "given", "gender": "male", "name": "Тейлор"}, -{"usage": "given", "gender": "male", "name": "Теодоро"}, -{"usage": "given", "gender": "male", "name": "Теодор"}, -{"usage": "given", "gender": "male", "name": "Тео"}, -{"usage": "given", "gender": "male", "name": "Теренс"}, -{"usage": "given", "gender": "male", "name": "Терон"}, -{"usage": "given", "gender": "male", "name": "Террелл"}, -{"usage": "given", "gender": "male", "name": "Терренс"}, -{"usage": "given", "gender": "male", "name": "Терри"}, -{"usage": "given", "gender": "male", "name": "Тимми"}, -{"usage": "given", "gender": "male", "name": "Тимоти"}, -{"usage": "given", "gender": "male", "name": "Тим"}, -{"usage": "given", "gender": "male", "name": "Тирелл"}, -{"usage": "given", "gender": "male", "name": "Тит"}, -{"usage": "given", "gender": "male", "name": "Тобиас"}, -{"usage": "given", "gender": "male", "name": "Тоби"}, -{"usage": "given", "gender": "male", "name": "Тодд"}, -{"usage": "given", "gender": "male", "name": "Тод"}, -{"usage": "given", "gender": "male", "name": "Томас"}, -{"usage": "given", "gender": "male", "name": "Томми"}, -{"usage": "given", "gender": "male", "name": "Том"}, -{"usage": "given", "gender": "male", "name": "Тони"}, -{"usage": "given", "gender": "male", "name": "Тори"}, -{"usage": "given", "gender": "male", "name": "Тревор"}, -{"usage": "given", "gender": "male", "name": "Трейси"}, -{"usage": "given", "gender": "male", "name": "Трей"}, -{"usage": "given", "gender": "male", "name": "Трентон"}, -{"usage": "given", "gender": "male", "name": "Трент"}, -{"usage": "given", "gender": "male", "name": "Тринидад"}, -{"usage": "given", "gender": "male", "name": "Тристан"}, -{"usage": "given", "gender": "male", "name": "Трой"}, -{"usage": "given", "gender": "male", "name": "Трумэн"}, -{"usage": "given", "gender": "male", "name": "Трэвис"}, -{"usage": "given", "gender": "male", "name": "Туан"}, -{"usage": "given", "gender": "male", "name": "Турман"}, -{"usage": "given", "gender": "male", "name": "Тэд"}, -{"usage": "given", "gender": "male", "name": "Уайатт"}, -{"usage": "given", "gender": "male", "name": "Уилберн"}, -{"usage": "given", "gender": "male", "name": "Уилберт"}, -{"usage": "given", "gender": "male", "name": "Уилбер"}, -{"usage": "given", "gender": "male", "name": "Уилбур"}, -{"usage": "given", "gender": "male", "name": "Уили"}, -{"usage": "given", "gender": "male", "name": "Уиллард"}, -{"usage": "given", "gender": "male", "name": "Уиллис"}, -{"usage": "given", "gender": "male", "name": "Уилли"}, -{"usage": "given", "gender": "male", "name": "Уилл"}, -{"usage": "given", "gender": "male", "name": "Уилмер"}, -{"usage": "given", "gender": "male", "name": "Уилсон"}, -{"usage": "given", "gender": "male", "name": "Уилтон"}, -{"usage": "given", "gender": "male", "name": "Уилфорд"}, -{"usage": "given", "gender": "male", "name": "Уилфред"}, -{"usage": "given", "gender": "male", "name": "Уильямс"}, -{"usage": "given", "gender": "male", "name": "Уильям"}, -{"usage": "given", "gender": "male", "name": "Уинстон"}, -{"usage": "given", "gender": "male", "name": "Уинфорд"}, -{"usage": "given", "gender": "male", "name": "Уинфред"}, -{"usage": "given", "gender": "male", "name": "Уитни"}, -{"usage": "given", "gender": "male", "name": "Улисс"}, -{"usage": "given", "gender": "male", "name": "Умберто"}, -{"usage": "given", "gender": "male", "name": "Уокер"}, -{"usage": "given", "gender": "male", "name": "Уолдо"}, -{"usage": "given", "gender": "male", "name": "Уоллес"}, -{"usage": "given", "gender": "male", "name": "Уолли"}, -{"usage": "given", "gender": "male", "name": "Уолтер"}, -{"usage": "given", "gender": "male", "name": "Уолтон"}, -{"usage": "given", "gender": "male", "name": "Уорд"}, -{"usage": "given", "gender": "male", "name": "Уоррен"}, -{"usage": "given", "gender": "male", "name": "Уэйд"}, -{"usage": "given", "gender": "male", "name": "Уэйн"}, -{"usage": "given", "gender": "male", "name": "Уэлдон"}, -{"usage": "given", "gender": "male", "name": "Уэнделл"}, -{"usage": "given", "gender": "male", "name": "Уэсли"}, -{"usage": "given", "gender": "male", "name": "Уэстон"}, -{"usage": "given", "gender": "male", "name": "Уэс"}, -{"usage": "given", "gender": "male", "name": "Фабиан"}, -{"usage": "given", "gender": "male", "name": "Фаддей"}, -{"usage": "given", "gender": "male", "name": "Фаустино"}, -{"usage": "given", "gender": "male", "name": "Фаусто"}, -{"usage": "given", "gender": "male", "name": "Федерико"}, -{"usage": "given", "gender": "male", "name": "Феликс"}, -{"usage": "given", "gender": "male", "name": "Фелипе"}, -{"usage": "given", "gender": "male", "name": "Фелтон"}, -{"usage": "given", "gender": "male", "name": "Фердинанд"}, -{"usage": "given", "gender": "male", "name": "Фермин"}, -{"usage": "given", "gender": "male", "name": "Фернандо"}, -{"usage": "given", "gender": "male", "name": "Фидель"}, -{"usage": "given", "gender": "male", "name": "Филипп"}, -{"usage": "given", "gender": "male", "name": "Фил"}, -{"usage": "given", "gender": "male", "name": "Флетчер"}, -{"usage": "given", "gender": "male", "name": "Флойд"}, -{"usage": "given", "gender": "male", "name": "Флоренсио"}, -{"usage": "given", "gender": "male", "name": "Флорентино"}, -{"usage": "given", "gender": "male", "name": "Форест"}, -{"usage": "given", "gender": "male", "name": "Форрест"}, -{"usage": "given", "gender": "male", "name": "Фостер"}, -{"usage": "given", "gender": "male", "name": "Франклин"}, -{"usage": "given", "gender": "male", "name": "Франциско"}, -{"usage": "given", "gender": "male", "name": "Франческо"}, -{"usage": "given", "gender": "male", "name": "Фредди"}, -{"usage": "given", "gender": "male", "name": "Фредерик"}, -{"usage": "given", "gender": "male", "name": "Фредрик"}, -{"usage": "given", "gender": "male", "name": "Фред"}, -{"usage": "given", "gender": "male", "name": "Фриман"}, -{"usage": "given", "gender": "male", "name": "Фриц"}, -{"usage": "given", "gender": "male", "name": "Фрэнки"}, -{"usage": "given", "gender": "male", "name": "Фрэнк"}, -{"usage": "given", "gender": "male", "name": "Фрэнсис"}, -{"usage": "given", "gender": "male", "name": "Хавьер"}, -{"usage": "given", "gender": "male", "name": "Хайден"}, -{"usage": "given", "gender": "male", "name": "Хайман"}, -{"usage": "given", "gender": "male", "name": "Хай"}, -{"usage": "given", "gender": "male", "name": "Ханс"}, -{"usage": "given", "gender": "male", "name": "Хантер"}, -{"usage": "given", "gender": "male", "name": "Харви"}, -{"usage": "given", "gender": "male", "name": "Харланд"}, -{"usage": "given", "gender": "male", "name": "Харлан"}, -{"usage": "given", "gender": "male", "name": "Харли"}, -{"usage": "given", "gender": "male", "name": "Харрисон"}, -{"usage": "given", "gender": "male", "name": "Харрис"}, -{"usage": "given", "gender": "male", "name": "Хасан"}, -{"usage": "given", "gender": "male", "name": "Хасинто"}, -{"usage": "given", "gender": "male", "name": "Хейвуд"}, -{"usage": "given", "gender": "male", "name": "Хенаро"}, -{"usage": "given", "gender": "male", "name": "Херардо"}, -{"usage": "given", "gender": "male", "name": "Хилтон"}, -{"usage": "given", "gender": "male", "name": "Хирам"}, -{"usage": "given", "gender": "male", "name": "Хит"}, -{"usage": "given", "gender": "male", "name": "Хоакин"}, -{"usage": "given", "gender": "male", "name": "Хоберт"}, -{"usage": "given", "gender": "male", "name": "Хойт"}, -{"usage": "given", "gender": "male", "name": "Холлис"}, -{"usage": "given", "gender": "male", "name": "Хорас"}, -{"usage": "given", "gender": "male", "name": "Хорхе"}, -{"usage": "given", "gender": "male", "name": "Хосе"}, -{"usage": "given", "gender": "male", "name": "Хоси"}, -{"usage": "given", "gender": "male", "name": "Хуан"}, -{"usage": "given", "gender": "male", "name": "Хулио"}, -{"usage": "given", "gender": "male", "name": "Хьюберт"}, -{"usage": "given", "gender": "male", "name": "Хьюго"}, -{"usage": "given", "gender": "male", "name": "Хьюи"}, -{"usage": "given", "gender": "male", "name": "Хьюстон"}, -{"usage": "given", "gender": "male", "name": "Хью"}, -{"usage": "given", "gender": "male", "name": "Хэл"}, -{"usage": "given", "gender": "male", "name": "Хэнк"}, -{"usage": "given", "gender": "male", "name": "Чад"}, -{"usage": "given", "gender": "male", "name": "Чак"}, -{"usage": "given", "gender": "male", "name": "Чарли"}, -{"usage": "given", "gender": "male", "name": "Чарльз"}, -{"usage": "given", "gender": "male", "name": "Час"}, -{"usage": "given", "gender": "male", "name": "Чедвик"}, -{"usage": "given", "gender": "male", "name": "Чейз"}, -{"usage": "given", "gender": "male", "name": "Честер"}, -{"usage": "given", "gender": "male", "name": "Чет"}, -{"usage": "given", "gender": "male", "name": "Чонси"}, -{"usage": "given", "gender": "male", "name": "Чэнс"}, -{"usage": "given", "gender": "male", "name": "Шейн"}, -{"usage": "given", "gender": "male", "name": "Шелби"}, -{"usage": "given", "gender": "male", "name": "Шелдон"}, -{"usage": "given", "gender": "male", "name": "Шелтон"}, -{"usage": "given", "gender": "male", "name": "Шеннон"}, -{"usage": "given", "gender": "male", "name": "Шервуд"}, -{"usage": "given", "gender": "male", "name": "Шерман"}, -{"usage": "given", "gender": "male", "name": "Ширли"}, -{"usage": "given", "gender": "male", "name": "Шон"}, -{"usage": "given", "gender": "male", "name": "Шэд"}, -{"usage": "given", "gender": "male", "name": "Эван"}, -{"usage": "given", "gender": "male", "name": "Эверетт"}, -{"usage": "given", "gender": "male", "name": "Эдвард"}, -{"usage": "given", "gender": "male", "name": "Эдвин"}, -{"usage": "given", "gender": "male", "name": "Эдгардо"}, -{"usage": "given", "gender": "male", "name": "Эдгар"}, -{"usage": "given", "gender": "male", "name": "Эдди"}, -{"usage": "given", "gender": "male", "name": "Эдисон"}, -{"usage": "given", "gender": "male", "name": "Эдмонд"}, -{"usage": "given", "gender": "male", "name": "Эдмундо"}, -{"usage": "given", "gender": "male", "name": "Эдмунд"}, -{"usage": "given", "gender": "male", "name": "Эдриан"}, -{"usage": "given", "gender": "male", "name": "Эдуардо"}, -{"usage": "given", "gender": "male", "name": "Эд"}, -{"usage": "given", "gender": "male", "name": "Эзра"}, -{"usage": "given", "gender": "male", "name": "Эйб"}, -{"usage": "given", "gender": "male", "name": "Эйвери"}, -{"usage": "given", "gender": "male", "name": "Эктор"}, -{"usage": "given", "gender": "male", "name": "Элайджа"}, -{"usage": "given", "gender": "male", "name": "Элберт"}, -{"usage": "given", "gender": "male", "name": "Элвин"}, -{"usage": "given", "gender": "male", "name": "Элвис"}, -{"usage": "given", "gender": "male", "name": "Элвуд"}, -{"usage": "given", "gender": "male", "name": "Элден"}, -{"usage": "given", "gender": "male", "name": "Элдон"}, -{"usage": "given", "gender": "male", "name": "Элдридж"}, -{"usage": "given", "gender": "male", "name": "Элиас"}, -{"usage": "given", "gender": "male", "name": "Элизео"}, -{"usage": "given", "gender": "male", "name": "Эли"}, -{"usage": "given", "gender": "male", "name": "Эллиот"}, -{"usage": "given", "gender": "male", "name": "Эллис"}, -{"usage": "given", "gender": "male", "name": "Эллсворт"}, -{"usage": "given", "gender": "male", "name": "Элмер"}, -{"usage": "given", "gender": "male", "name": "Элмо"}, -{"usage": "given", "gender": "male", "name": "Элой"}, -{"usage": "given", "gender": "male", "name": "Элрой"}, -{"usage": "given", "gender": "male", "name": "Элтон"}, -{"usage": "given", "gender": "male", "name": "Эльвин"}, -{"usage": "given", "gender": "male", "name": "Эмануэль"}, -{"usage": "given", "gender": "male", "name": "Эмброуз"}, -{"usage": "given", "gender": "male", "name": "Эмери"}, -{"usage": "given", "gender": "male", "name": "Эмерсон"}, -{"usage": "given", "gender": "male", "name": "Эмилио"}, -{"usage": "given", "gender": "male", "name": "Эмиль"}, -{"usage": "given", "gender": "male", "name": "Эммануэль"}, -{"usage": "given", "gender": "male", "name": "Эмметт"}, -{"usage": "given", "gender": "male", "name": "Эммитт"}, -{"usage": "given", "gender": "male", "name": "Энджел"}, -{"usage": "given", "gender": "male", "name": "Энди"}, -{"usage": "given", "gender": "male", "name": "Эндрю"}, -{"usage": "given", "gender": "male", "name": "Энок"}, -{"usage": "given", "gender": "male", "name": "Энрике"}, -{"usage": "given", "gender": "male", "name": "Энтони"}, -{"usage": "given", "gender": "male", "name": "Эрасмо"}, -{"usage": "given", "gender": "male", "name": "Эрб"}, -{"usage": "given", "gender": "male", "name": "Эрвин"}, -{"usage": "given", "gender": "male", "name": "Эрик"}, -{"usage": "given", "gender": "male", "name": "Эрин"}, -{"usage": "given", "gender": "male", "name": "Эрих"}, -{"usage": "given", "gender": "male", "name": "Эрл"}, -{"usage": "given", "gender": "male", "name": "Эрнесто"}, -{"usage": "given", "gender": "male", "name": "Эрнест"}, -{"usage": "given", "gender": "male", "name": "Эрни"}, -{"usage": "given", "gender": "male", "name": "Эррол"}, -{"usage": "given", "gender": "male", "name": "Эстебан"}, -{"usage": "given", "gender": "male", "name": "Этан"}, -{"usage": "given", "gender": "male", "name": "Эудженио"}, -{"usage": "given", "gender": "male", "name": "Эусебио"}, -{"usage": "given", "gender": "male", "name": "Эфрен"}, -{"usage": "given", "gender": "male", "name": "Юджин"}, -{"usage": "given", "gender": "male", "name": "Янг"}, -{"usage": "given", "gender": "male", "name": "Ян"}, -{"usage": "world", "name": "Абахо"}, -{"usage": "world", "name": "Аббат"}, -{"usage": "world", "name": "Абвиль"}, -{"usage": "world", "name": "Абейтас"}, -{"usage": "world", "name": "Абердин"}, -{"usage": "world", "name": "Абернан"}, -{"usage": "world", "name": "Абернати"}, -{"usage": "world", "name": "Аберфойл"}, -{"usage": "world", "name": "Абер"}, -{"usage": "world", "name": "Абикью"}, -{"usage": "world", "name": "Абилин"}, -{"usage": "world", "name": "Абинг"}, -{"usage": "world", "name": "Абита"}, -{"usage": "world", "name": "Аби"}, -{"usage": "world", "name": "Абли"}, -{"usage": "world", "name": "Або"}, -{"usage": "world", "name": "Абрам"}, -{"usage": "world", "name": "Абсароки"}, -{"usage": "world", "name": "Абсекон"}, -{"usage": "world", "name": "Абуата"}, -{"usage": "world", "name": "Авалон"}, -{"usage": "world", "name": "Авани"}, -{"usage": "world", "name": "Авант"}, -{"usage": "world", "name": "Авард"}, -{"usage": "world", "name": "Ава"}, -{"usage": "world", "name": "Августин"}, -{"usage": "world", "name": "Августус"}, -{"usage": "world", "name": "Август"}, -{"usage": "world", "name": "Авелла"}, -{"usage": "world", "name": "Авенал"}, -{"usage": "world", "name": "Авентура"}, -{"usage": "world", "name": "Авеню"}, -{"usage": "world", "name": "Авера"}, -{"usage": "world", "name": "Аверилл"}, -{"usage": "world", "name": "Авилла"}, -{"usage": "world", "name": "Авингер"}, -{"usage": "world", "name": "Авис"}, -{"usage": "world", "name": "Авокадо"}, -{"usage": "world", "name": "Авока"}, -{"usage": "world", "name": "Авония"}, -{"usage": "world", "name": "Авон"}, -{"usage": "world", "name": "Авраам"}, -{"usage": "world", "name": "Авра"}, -{"usage": "world", "name": "Аврора"}, -{"usage": "world", "name": "Авостинг"}, -{"usage": "world", "name": "Агарь"}, -{"usage": "world", "name": "Агар"}, -{"usage": "world", "name": "Агат"}, -{"usage": "world", "name": "Агенство"}, -{"usage": "world", "name": "Агилар"}, -{"usage": "world", "name": "Агила"}, -{"usage": "world", "name": "Агилита"}, -{"usage": "world", "name": "Агирра"}, -{"usage": "world", "name": "Агнесса"}, -{"usage": "world", "name": "Агнец"}, -{"usage": "world", "name": "Агнос"}, -{"usage": "world", "name": "Агню"}, -{"usage": "world", "name": "Агоам"}, -{"usage": "world", "name": "Агодилья"}, -{"usage": "world", "name": "Агра"}, -{"usage": "world", "name": "Агрикола"}, -{"usage": "world", "name": "Агуада"}, -{"usage": "world", "name": "Агуанга"}, -{"usage": "world", "name": "Агуа"}, -{"usage": "world", "name": "Агудо"}, -{"usage": "world", "name": "Агура"}, -{"usage": "world", "name": "Адам"}, -{"usage": "world", "name": "Адарио"}, -{"usage": "world", "name": "Ада"}, -{"usage": "world", "name": "Адванс"}, -{"usage": "world", "name": "Адвольф"}, -{"usage": "world", "name": "Аддикс"}, -{"usage": "world", "name": "Аддинг"}, -{"usage": "world", "name": "Аддисон"}, -{"usage": "world", "name": "Аддис"}, -{"usage": "world", "name": "Аддишн"}, -{"usage": "world", "name": "Аделаида"}, -{"usage": "world", "name": "Аделанто"}, -{"usage": "world", "name": "Аделино"}, -{"usage": "world", "name": "Адельфия"}, -{"usage": "world", "name": "Адельфи"}, -{"usage": "world", "name": "Адель"}, -{"usage": "world", "name": "Адена"}, -{"usage": "world", "name": "Аден"}, -{"usage": "world", "name": "Адин"}, -{"usage": "world", "name": "Ади"}, -{"usage": "world", "name": "Адмайр"}, -{"usage": "world", "name": "Адна"}, -{"usage": "world", "name": "Адона"}, -{"usage": "world", "name": "Адриан"}, -{"usage": "world", "name": "Аду"}, -{"usage": "world", "name": "Адхунтас"}, -{"usage": "world", "name": "Адэр"}, -{"usage": "world", "name": "Азалия"}, -{"usage": "world", "name": "Азвелл"}, -{"usage": "world", "name": "Азуса"}, -{"usage": "world", "name": "Аид"}, -{"usage": "world", "name": "Айаегер"}, -{"usage": "world", "name": "Айатан"}, -{"usage": "world", "name": "Айбонито"}, -{"usage": "world", "name": "Айваноф"}, -{"usage": "world", "name": "Айванпа"}, -{"usage": "world", "name": "Айвенго"}, -{"usage": "world", "name": "Айвз"}, -{"usage": "world", "name": "Айвиленд"}, -{"usage": "world", "name": "Айвинс"}, -{"usage": "world", "name": "Айви"}, -{"usage": "world", "name": "Айвор"}, -{"usage": "world", "name": "Айдабел"}, -{"usage": "world", "name": "Айдалу"}, -{"usage": "world", "name": "Айдахо"}, -{"usage": "world", "name": "Айдлилд"}, -{"usage": "world", "name": "Айдл"}, -{"usage": "world", "name": "Айер"}, -{"usage": "world", "name": "Айея"}, -{"usage": "world", "name": "Айзи"}, -{"usage": "world", "name": "Айкатан"}, -{"usage": "world", "name": "Айкен"}, -{"usage": "world", "name": "Айленд"}, -{"usage": "world", "name": "Айлета"}, -{"usage": "world", "name": "Айл"}, -{"usage": "world", "name": "Айова"}, -{"usage": "world", "name": "Айра"}, -{"usage": "world", "name": "Айрин"}, -{"usage": "world", "name": "Айрон"}, -{"usage": "world", "name": "Айртон"}, -{"usage": "world", "name": "Айсаква"}, -{"usage": "world", "name": "Айтаска"}, -{"usage": "world", "name": "Айткин"}, -{"usage": "world", "name": "Ай"}, -{"usage": "world", "name": "Академи"}, -{"usage": "world", "name": "Акаска"}, -{"usage": "world", "name": "Акация"}, -{"usage": "world", "name": "Аква"}, -{"usage": "world", "name": "Аквилла"}, -{"usage": "world", "name": "Акворт"}, -{"usage": "world", "name": "Акерли"}, -{"usage": "world", "name": "Акерман"}, -{"usage": "world", "name": "Акиак"}, -{"usage": "world", "name": "Акиачак"}, -{"usage": "world", "name": "Акиль"}, -{"usage": "world", "name": "Акин"}, -{"usage": "world", "name": "Аккомак"}, -{"usage": "world", "name": "Аккорд"}, -{"usage": "world", "name": "Акма"}, -{"usage": "world", "name": "Акокик"}, -{"usage": "world", "name": "Акомита"}, -{"usage": "world", "name": "Акра"}, -{"usage": "world", "name": "Акрес"}, -{"usage": "world", "name": "Акри"}, -{"usage": "world", "name": "Акрон"}, -{"usage": "world", "name": "Аксиаль"}, -{"usage": "world", "name": "Акстелл"}, -{"usage": "world", "name": "Акстон"}, -{"usage": "world", "name": "Акс"}, -{"usage": "world", "name": "Актон"}, -{"usage": "world", "name": "Акутан"}, -{"usage": "world", "name": "Алабам"}, -{"usage": "world", "name": "Аладдин"}, -{"usage": "world", "name": "Алаканук"}, -{"usage": "world", "name": "Аламанс"}, -{"usage": "world", "name": "Аламеда"}, -{"usage": "world", "name": "Аламитос"}, -{"usage": "world", "name": "Аламоса"}, -{"usage": "world", "name": "Аламота"}, -{"usage": "world", "name": "Аламо"}, -{"usage": "world", "name": "Аланрид"}, -{"usage": "world", "name": "Алапаха"}, -{"usage": "world", "name": "Албемарла"}, -{"usage": "world", "name": "Алберена"}, -{"usage": "world", "name": "Алво"}, -{"usage": "world", "name": "Алгерита"}, -{"usage": "world", "name": "Алгоа"}, -{"usage": "world", "name": "Алгодонес"}, -{"usage": "world", "name": "Алгома"}, -{"usage": "world", "name": "Алгонак"}, -{"usage": "world", "name": "Алгона"}, -{"usage": "world", "name": "Алгонкин"}, -{"usage": "world", "name": "Алгуд"}, -{"usage": "world", "name": "Алдан"}, -{"usage": "world", "name": "Алджер"}, -{"usage": "world", "name": "Алдина"}, -{"usage": "world", "name": "Алебастр"}, -{"usage": "world", "name": "Аледо"}, -{"usage": "world", "name": "Алекнагик"}, -{"usage": "world", "name": "Александрия"}, -{"usage": "world", "name": "Александр"}, -{"usage": "world", "name": "Алексис"}, -{"usage": "world", "name": "Алекс"}, -{"usage": "world", "name": "Алестер"}, -{"usage": "world", "name": "Алзада"}, -{"usage": "world", "name": "Аликиппа"}, -{"usage": "world", "name": "Аликс"}, -{"usage": "world", "name": "Алина"}, -{"usage": "world", "name": "Алире"}, -{"usage": "world", "name": "Алиса"}, -{"usage": "world", "name": "Алисия"}, -{"usage": "world", "name": "Алисо"}, -{"usage": "world", "name": "Алистер"}, -{"usage": "world", "name": "Али"}, -{"usage": "world", "name": "Алкан"}, -{"usage": "world", "name": "Алквина"}, -{"usage": "world", "name": "Алколу"}, -{"usage": "world", "name": "Алкома"}, -{"usage": "world", "name": "Алкоя"}, -{"usage": "world", "name": "Алко"}, -{"usage": "world", "name": "Аллакакет"}, -{"usage": "world", "name": "Алламучи"}, -{"usage": "world", "name": "Аллан"}, -{"usage": "world", "name": "Аллардт"}, -{"usage": "world", "name": "Аллегани"}, -{"usage": "world", "name": "Аллеган"}, -{"usage": "world", "name": "Аллегро"}, -{"usage": "world", "name": "Аллемандс"}, -{"usage": "world", "name": "Аллеман"}, -{"usage": "world", "name": "Аллен"}, -{"usage": "world", "name": "Аллер"}, -{"usage": "world", "name": "Аллея"}, -{"usage": "world", "name": "Алле"}, -{"usage": "world", "name": "Аллигатор"}, -{"usage": "world", "name": "Аллина"}, -{"usage": "world", "name": "Аллин"}, -{"usage": "world", "name": "Аллис"}, -{"usage": "world", "name": "Алловэй"}, -{"usage": "world", "name": "Аллонс"}, -{"usage": "world", "name": "Аллува"}, -{"usage": "world", "name": "Алма"}, -{"usage": "world", "name": "Алмело"}, -{"usage": "world", "name": "Алмелунд"}, -{"usage": "world", "name": "Алми"}, -{"usage": "world", "name": "Алмонд"}, -{"usage": "world", "name": "Алмонт"}, -{"usage": "world", "name": "Алмон"}, -{"usage": "world", "name": "Алмота"}, -{"usage": "world", "name": "Алмо"}, -{"usage": "world", "name": "Алнвик"}, -{"usage": "world", "name": "Алондра"}, -{"usage": "world", "name": "Алосо"}, -{"usage": "world", "name": "Алоха"}, -{"usage": "world", "name": "Алоэ"}, -{"usage": "world", "name": "Алпена"}, -{"usage": "world", "name": "Алсворт"}, -{"usage": "world", "name": "Алсен"}, -{"usage": "world", "name": "Алсея"}, -{"usage": "world", "name": "Алси"}, -{"usage": "world", "name": "Алсума"}, -{"usage": "world", "name": "Алтависта"}, -{"usage": "world", "name": "Алтадена"}, -{"usage": "world", "name": "Алтамаха"}, -{"usage": "world", "name": "Алтеймер"}, -{"usage": "world", "name": "Алума"}, -{"usage": "world", "name": "Алум"}, -{"usage": "world", "name": "Алфаретта"}, -{"usage": "world", "name": "Альба"}, -{"usage": "world", "name": "Альберта"}, -{"usage": "world", "name": "Альбер"}, -{"usage": "world", "name": "Альбин"}, -{"usage": "world", "name": "Альбион"}, -{"usage": "world", "name": "Альборн"}, -{"usage": "world", "name": "Альбукерке"}, -{"usage": "world", "name": "Альбург"}, -{"usage": "world", "name": "Альбуртис"}, -{"usage": "world", "name": "Альбёрнетт"}, -{"usage": "world", "name": "Альварадо"}, -{"usage": "world", "name": "Альва"}, -{"usage": "world", "name": "Альгамбра"}, -{"usage": "world", "name": "Альда"}, -{"usage": "world", "name": "Алькабо"}, -{"usage": "world", "name": "Алькальд"}, -{"usage": "world", "name": "Альмена"}, -{"usage": "world", "name": "Альмерия"}, -{"usage": "world", "name": "Альмира"}, -{"usage": "world", "name": "Альмонте"}, -{"usage": "world", "name": "Альпаф"}, -{"usage": "world", "name": "Альпина"}, -{"usage": "world", "name": "Альпин"}, -{"usage": "world", "name": "Альп"}, -{"usage": "world", "name": "Альс"}, -{"usage": "world", "name": "Альтаир"}, -{"usage": "world", "name": "Альтамонт"}, -{"usage": "world", "name": "Альта"}, -{"usage": "world", "name": "Альтен"}, -{"usage": "world", "name": "Альтмар"}, -{"usage": "world", "name": "Альтона"}, -{"usage": "world", "name": "Альто"}, -{"usage": "world", "name": "Альтуна"}, -{"usage": "world", "name": "Альтура"}, -{"usage": "world", "name": "Альтус"}, -{"usage": "world", "name": "Альфальфа"}, -{"usage": "world", "name": "Альфа"}, -{"usage": "world", "name": "Альфред"}, -{"usage": "world", "name": "Альянза"}, -{"usage": "world", "name": "Альянс"}, -{"usage": "world", "name": "Амавок"}, -{"usage": "world", "name": "Амагансет"}, -{"usage": "world", "name": "Амагон"}, -{"usage": "world", "name": "Амадор"}, -{"usage": "world", "name": "Амадо"}, -{"usage": "world", "name": "Амазония"}, -{"usage": "world", "name": "Амалия"}, -{"usage": "world", "name": "Амальга"}, -{"usage": "world", "name": "Амана"}, -{"usage": "world", "name": "Аманда"}, -{"usage": "world", "name": "Амаргоза"}, -{"usage": "world", "name": "Амарилла"}, -{"usage": "world", "name": "Амарилло"}, -{"usage": "world", "name": "Амаса"}, -{"usage": "world", "name": "Амберг"}, -{"usage": "world", "name": "Амбер"}, -{"usage": "world", "name": "Амблер"}, -{"usage": "world", "name": "Амбой"}, -{"usage": "world", "name": "Амбридж"}, -{"usage": "world", "name": "Амелия"}, -{"usage": "world", "name": "Амель"}, -{"usage": "world", "name": "Амения"}, -{"usage": "world", "name": "Американа"}, -{"usage": "world", "name": "Америка"}, -{"usage": "world", "name": "Америкус"}, -{"usage": "world", "name": "Амери"}, -{"usage": "world", "name": "Амидон"}, -{"usage": "world", "name": "Амирет"}, -{"usage": "world", "name": "Амистад"}, -{"usage": "world", "name": "Амити"}, -{"usage": "world", "name": "Аммон"}, -{"usage": "world", "name": "Амонат"}, -{"usage": "world", "name": "Аморет"}, -{"usage": "world", "name": "Аморита"}, -{"usage": "world", "name": "Амори"}, -{"usage": "world", "name": "Амо"}, -{"usage": "world", "name": "Ампайр"}, -{"usage": "world", "name": "Ампква"}, -{"usage": "world", "name": "Амсден"}, -{"usage": "world", "name": "Амстердам"}, -{"usage": "world", "name": "Амхерст"}, -{"usage": "world", "name": "Амчитка"}, -{"usage": "world", "name": "Анакоко"}, -{"usage": "world", "name": "Анаконда"}, -{"usage": "world", "name": "Анакортес"}, -{"usage": "world", "name": "Анактувук"}, -{"usage": "world", "name": "Анамоса"}, -{"usage": "world", "name": "Анамус"}, -{"usage": "world", "name": "Анан"}, -{"usage": "world", "name": "Анаско"}, -{"usage": "world", "name": "Анатоне"}, -{"usage": "world", "name": "Анауак"}, -{"usage": "world", "name": "Анауолт"}, -{"usage": "world", "name": "Анахайм"}, -{"usage": "world", "name": "Анахола"}, -{"usage": "world", "name": "Ана"}, -{"usage": "world", "name": "Анвик"}, -{"usage": "world", "name": "Ангела"}, -{"usage": "world", "name": "Ангелюс"}, -{"usage": "world", "name": "Ангел"}, -{"usage": "world", "name": "Ангилья"}, -{"usage": "world", "name": "Ангиола"}, -{"usage": "world", "name": "Англ"}, -{"usage": "world", "name": "Ангола"}, -{"usage": "world", "name": "Ангора"}, -{"usage": "world", "name": "Ангус"}, -{"usage": "world", "name": "Ангьер"}, -{"usage": "world", "name": "Андалусия"}, -{"usage": "world", "name": "Андерсон"}, -{"usage": "world", "name": "Андер"}, -{"usage": "world", "name": "Андес"}, -{"usage": "world", "name": "Анджелес"}, -{"usage": "world", "name": "Анджело"}, -{"usage": "world", "name": "Андинг"}, -{"usage": "world", "name": "Андрада"}, -{"usage": "world", "name": "Андреас"}, -{"usage": "world", "name": "Андрикс"}, -{"usage": "world", "name": "Анегам"}, -{"usage": "world", "name": "Анета"}, -{"usage": "world", "name": "Анжелика"}, -{"usage": "world", "name": "Аниак"}, -{"usage": "world", "name": "Анива"}, -{"usage": "world", "name": "Анимас"}, -{"usage": "world", "name": "Анита"}, -{"usage": "world", "name": "Анкени"}, -{"usage": "world", "name": "Анкер"}, -{"usage": "world", "name": "Анкоридж"}, -{"usage": "world", "name": "Анмур"}, -{"usage": "world", "name": "Аннамория"}, -{"usage": "world", "name": "Аннан"}, -{"usage": "world", "name": "Аннаполис"}, -{"usage": "world", "name": "Анна"}, -{"usage": "world", "name": "Аннета"}, -{"usage": "world", "name": "Аннетт"}, -{"usage": "world", "name": "Анока"}, -{"usage": "world", "name": "Анона"}, -{"usage": "world", "name": "Ансгар"}, -{"usage": "world", "name": "Ансельма"}, -{"usage": "world", "name": "Ансертейн"}, -{"usage": "world", "name": "Ансли"}, -{"usage": "world", "name": "Ансония"}, -{"usage": "world", "name": "Анстон"}, -{"usage": "world", "name": "Антверп"}, -{"usage": "world", "name": "Антиго"}, -{"usage": "world", "name": "Антилопа"}, -{"usage": "world", "name": "Антимония"}, -{"usage": "world", "name": "Антиох"}, -{"usage": "world", "name": "Антиэтам"}, -{"usage": "world", "name": "Антлер"}, -{"usage": "world", "name": "Антонино"}, -{"usage": "world", "name": "Антонио"}, -{"usage": "world", "name": "Антонито"}, -{"usage": "world", "name": "Антония"}, -{"usage": "world", "name": "Антон"}, -{"usage": "world", "name": "Антостон"}, -{"usage": "world", "name": "Антоун"}, -{"usage": "world", "name": "Антрим"}, -{"usage": "world", "name": "Антуан"}, -{"usage": "world", "name": "Анчо"}, -{"usage": "world", "name": "Апалачикола"}, -{"usage": "world", "name": "Апалачин"}, -{"usage": "world", "name": "Апалачи"}, -{"usage": "world", "name": "Апач"}, -{"usage": "world", "name": "Апекс"}, -{"usage": "world", "name": "Апленд"}, -{"usage": "world", "name": "Аплинг"}, -{"usage": "world", "name": "Аплин"}, -{"usage": "world", "name": "Аполло"}, -{"usage": "world", "name": "Апоматтокс"}, -{"usage": "world", "name": "Апопка"}, -{"usage": "world", "name": "Аппалачия"}, -{"usage": "world", "name": "Аппер"}, -{"usage": "world", "name": "Апсон"}, -{"usage": "world", "name": "Аптакисик"}, -{"usage": "world", "name": "Аптон"}, -{"usage": "world", "name": "Аптос"}, -{"usage": "world", "name": "Апхем"}, -{"usage": "world", "name": "Апшоа"}, -{"usage": "world", "name": "Араби"}, -{"usage": "world", "name": "Араб"}, -{"usage": "world", "name": "Аравия"}, -{"usage": "world", "name": "Арагон"}, -{"usage": "world", "name": "Аранзас"}, -{"usage": "world", "name": "Арапахо"}, -{"usage": "world", "name": "Арарат"}, -{"usage": "world", "name": "Арбакл"}, -{"usage": "world", "name": "Арбери"}, -{"usage": "world", "name": "Арбон"}, -{"usage": "world", "name": "Арбор"}, -{"usage": "world", "name": "Арбутус"}, -{"usage": "world", "name": "Арбёрд"}, -{"usage": "world", "name": "Арвада"}, -{"usage": "world", "name": "Арвана"}, -{"usage": "world", "name": "Арвония"}, -{"usage": "world", "name": "Аргайл"}, -{"usage": "world", "name": "Аргента"}, -{"usage": "world", "name": "Аргентин"}, -{"usage": "world", "name": "Аргил"}, -{"usage": "world", "name": "Аргония"}, -{"usage": "world", "name": "Аргонна"}, -{"usage": "world", "name": "Арго"}, -{"usage": "world", "name": "Аргус"}, -{"usage": "world", "name": "Ардара"}, -{"usage": "world", "name": "Арденвуар"}, -{"usage": "world", "name": "Арденкрофт"}, -{"usage": "world", "name": "Арден"}, -{"usage": "world", "name": "Ардмор"}, -{"usage": "world", "name": "Ардок"}, -{"usage": "world", "name": "Ардо"}, -{"usage": "world", "name": "Ардсли"}, -{"usage": "world", "name": "Аредэйл"}, -{"usage": "world", "name": "Арена"}, -{"usage": "world", "name": "Арендат"}, -{"usage": "world", "name": "Аренц"}, -{"usage": "world", "name": "Аресибо"}, -{"usage": "world", "name": "Ариал"}, -{"usage": "world", "name": "Аривака"}, -{"usage": "world", "name": "Аризона"}, -{"usage": "world", "name": "Аримо"}, -{"usage": "world", "name": "Ариноса"}, -{"usage": "world", "name": "Арион"}, -{"usage": "world", "name": "Арипека"}, -{"usage": "world", "name": "Арипина"}, -{"usage": "world", "name": "Ариспа"}, -{"usage": "world", "name": "Ариста"}, -{"usage": "world", "name": "Аритон"}, -{"usage": "world", "name": "Ариэль"}, -{"usage": "world", "name": "Аркада"}, -{"usage": "world", "name": "Аркадельфия"}, -{"usage": "world", "name": "Аркадия"}, -{"usage": "world", "name": "Арканзас"}, -{"usage": "world", "name": "Арканум"}, -{"usage": "world", "name": "Арката"}, -{"usage": "world", "name": "Аркдэйл"}, -{"usage": "world", "name": "Аркинда"}, -{"usage": "world", "name": "Аркола"}, -{"usage": "world", "name": "Аркома"}, -{"usage": "world", "name": "Аркоу"}, -{"usage": "world", "name": "Арко"}, -{"usage": "world", "name": "Аркпорт"}, -{"usage": "world", "name": "Арктика"}, -{"usage": "world", "name": "Арк"}, -{"usage": "world", "name": "Арлетта"}, -{"usage": "world", "name": "Арлинг"}, -{"usage": "world", "name": "Арли"}, -{"usage": "world", "name": "Армада"}, -{"usage": "world", "name": "Арман"}, -{"usage": "world", "name": "Арма"}, -{"usage": "world", "name": "Армбруст"}, -{"usage": "world", "name": "Арминг"}, -{"usage": "world", "name": "Арминто"}, -{"usage": "world", "name": "Армихо"}, -{"usage": "world", "name": "Армона"}, -{"usage": "world", "name": "Армонк"}, -{"usage": "world", "name": "Арморель"}, -{"usage": "world", "name": "Армор"}, -{"usage": "world", "name": "Армстронг"}, -{"usage": "world", "name": "Арм"}, -{"usage": "world", "name": "Арнгард"}, -{"usage": "world", "name": "Арнетт"}, -{"usage": "world", "name": "Арни"}, -{"usage": "world", "name": "Арнольд"}, -{"usage": "world", "name": "Арнотт"}, -{"usage": "world", "name": "Арно"}, -{"usage": "world", "name": "Аромат"}, -{"usage": "world", "name": "Арона"}, -{"usage": "world", "name": "Ароя"}, -{"usage": "world", "name": "Арпин"}, -{"usage": "world", "name": "Арп"}, -{"usage": "world", "name": "Арредондо"}, -{"usage": "world", "name": "Аррей"}, -{"usage": "world", "name": "Арриба"}, -{"usage": "world", "name": "Арройо"}, -{"usage": "world", "name": "Артас"}, -{"usage": "world", "name": "Артезиана"}, -{"usage": "world", "name": "Артезия"}, -{"usage": "world", "name": "Артон"}, -{"usage": "world", "name": "Артс"}, -{"usage": "world", "name": "Артуа"}, -{"usage": "world", "name": "Артур"}, -{"usage": "world", "name": "Арундель"}, -{"usage": "world", "name": "Арчбальд"}, -{"usage": "world", "name": "Арчбольд"}, -{"usage": "world", "name": "Арчер"}, -{"usage": "world", "name": "Арчибальд"}, -{"usage": "world", "name": "Арчи"}, -{"usage": "world", "name": "Арч"}, -{"usage": "world", "name": "Асбури"}, -{"usage": "world", "name": "Асейтунас"}, -{"usage": "world", "name": "Асекья"}, -{"usage": "world", "name": "Аскатни"}, -{"usage": "world", "name": "Асков"}, -{"usage": "world", "name": "Аскью"}, -{"usage": "world", "name": "Асотин"}, -{"usage": "world", "name": "Аспен"}, -{"usage": "world", "name": "Аспер"}, -{"usage": "world", "name": "Аспетук"}, -{"usage": "world", "name": "Аспинуолл"}, -{"usage": "world", "name": "Ассария"}, -{"usage": "world", "name": "Ассиниппи"}, -{"usage": "world", "name": "Астико"}, -{"usage": "world", "name": "Астория"}, -{"usage": "world", "name": "Астор"}, -{"usage": "world", "name": "Ас"}, -{"usage": "world", "name": "Аталисса"}, -{"usage": "world", "name": "Аталия"}, -{"usage": "world", "name": "Атанум"}, -{"usage": "world", "name": "Атаскадеро"}, -{"usage": "world", "name": "Ателстан"}, -{"usage": "world", "name": "Атенс"}, -{"usage": "world", "name": "Атертон"}, -{"usage": "world", "name": "Атильо"}, -{"usage": "world", "name": "Атин"}, -{"usage": "world", "name": "Атка"}, -{"usage": "world", "name": "Аткинсон"}, -{"usage": "world", "name": "Аткинс"}, -{"usage": "world", "name": "Атко"}, -{"usage": "world", "name": "Атланта"}, -{"usage": "world", "name": "Атлантика"}, -{"usage": "world", "name": "Атлантис"}, -{"usage": "world", "name": "Атлас"}, -{"usage": "world", "name": "Атли"}, -{"usage": "world", "name": "Атмор"}, -{"usage": "world", "name": "Атмотлуак"}, -{"usage": "world", "name": "Атока"}, -{"usage": "world", "name": "Атолия"}, -{"usage": "world", "name": "Атол"}, -{"usage": "world", "name": "Атомик"}, -{"usage": "world", "name": "Ато"}, -{"usage": "world", "name": "Атсион"}, -{"usage": "world", "name": "Атталла"}, -{"usage": "world", "name": "Аттапулгус"}, -{"usage": "world", "name": "Аттика"}, -{"usage": "world", "name": "Атту"}, -{"usage": "world", "name": "Атчисон"}, -{"usage": "world", "name": "Ауке"}, -{"usage": "world", "name": "Аура"}, -{"usage": "world", "name": "Аурелия"}, -{"usage": "world", "name": "Аутинг"}, -{"usage": "world", "name": "Аутлук"}, -{"usage": "world", "name": "Ау"}, -{"usage": "world", "name": "Афера"}, -{"usage": "world", "name": "Афина"}, -{"usage": "world", "name": "Афи"}, -{"usage": "world", "name": "Афтон"}, -{"usage": "world", "name": "Аффтон"}, -{"usage": "world", "name": "Ахиллес"}, -{"usage": "world", "name": "Ахиману"}, -{"usage": "world", "name": "Ахиок"}, -{"usage": "world", "name": "Ахмик"}, -{"usage": "world", "name": "Ахоски"}, -{"usage": "world", "name": "Ахо"}, -{"usage": "world", "name": "Ацтек"}, -{"usage": "world", "name": "Ашарокен"}, -{"usage": "world", "name": "Ашвобенон"}, -{"usage": "world", "name": "Ашер"}, -{"usage": "world", "name": "Аше"}, -{"usage": "world", "name": "Ашиппун"}, -{"usage": "world", "name": "Ашкум"}, -{"usage": "world", "name": "Аштола"}, -{"usage": "world", "name": "Аэро"}, -{"usage": "world", "name": "Баббит"}, -{"usage": "world", "name": "Бабб"}, -{"usage": "world", "name": "Бавария"}, -{"usage": "world", "name": "Багама"}, -{"usage": "world", "name": "Баггс"}, -{"usage": "world", "name": "Багдад"}, -{"usage": "world", "name": "Багнелл"}, -{"usage": "world", "name": "Багуэлл"}, -{"usage": "world", "name": "Бадд"}, -{"usage": "world", "name": "Баден"}, -{"usage": "world", "name": "Баджер"}, -{"usage": "world", "name": "Бадьин"}, -{"usage": "world", "name": "Бад"}, -{"usage": "world", "name": "Базальт"}, -{"usage": "world", "name": "Базехор"}, -{"usage": "world", "name": "Баззард"}, -{"usage": "world", "name": "Базиль"}, -{"usage": "world", "name": "Базин"}, -{"usage": "world", "name": "Базис"}, -{"usage": "world", "name": "Байамон"}, -{"usage": "world", "name": "Байер"}, -{"usage": "world", "name": "Байл"}, -{"usage": "world", "name": "Байонет"}, -{"usage": "world", "name": "Байон"}, -{"usage": "world", "name": "Байром"}, -{"usage": "world", "name": "Байрон"}, -{"usage": "world", "name": "Байроя"}, -{"usage": "world", "name": "Байс"}, -{"usage": "world", "name": "Байтло"}, -{"usage": "world", "name": "Байхалия"}, -{"usage": "world", "name": "Байя"}, -{"usage": "world", "name": "Бакай"}, -{"usage": "world", "name": "Бакингем"}, -{"usage": "world", "name": "Бакирус"}, -{"usage": "world", "name": "Баклин"}, -{"usage": "world", "name": "Баклифф"}, -{"usage": "world", "name": "Бакли"}, -{"usage": "world", "name": "Бакл"}, -{"usage": "world", "name": "Бакман"}, -{"usage": "world", "name": "Бакнер"}, -{"usage": "world", "name": "Бакова"}, -{"usage": "world", "name": "Бакода"}, -{"usage": "world", "name": "Бакстер"}, -{"usage": "world", "name": "Бакстон"}, -{"usage": "world", "name": "Бакхолтс"}, -{"usage": "world", "name": "Бакхорн"}, -{"usage": "world", "name": "Бакэннон"}, -{"usage": "world", "name": "Бак"}, -{"usage": "world", "name": "Баланс"}, -{"usage": "world", "name": "Балатон"}, -{"usage": "world", "name": "Бала"}, -{"usage": "world", "name": "Балди"}, -{"usage": "world", "name": "Балконес"}, -{"usage": "world", "name": "Балко"}, -{"usage": "world", "name": "Баллард"}, -{"usage": "world", "name": "Балленгер"}, -{"usage": "world", "name": "Баллентайн"}, -{"usage": "world", "name": "Балмори"}, -{"usage": "world", "name": "Балта"}, -{"usage": "world", "name": "Балтик"}, -{"usage": "world", "name": "Балтимор"}, -{"usage": "world", "name": "Балх"}, -{"usage": "world", "name": "Бальд"}, -{"usage": "world", "name": "Бальзам"}, -{"usage": "world", "name": "Бальфур"}, -{"usage": "world", "name": "Бал"}, -{"usage": "world", "name": "Бамберг"}, -{"usage": "world", "name": "Баммель"}, -{"usage": "world", "name": "Бампус"}, -{"usage": "world", "name": "Бангор"}, -{"usage": "world", "name": "Бандана"}, -{"usage": "world", "name": "Бандера"}, -{"usage": "world", "name": "Банида"}, -{"usage": "world", "name": "Банкет"}, -{"usage": "world", "name": "Банки"}, -{"usage": "world", "name": "Банкомб"}, -{"usage": "world", "name": "Банк"}, -{"usage": "world", "name": "Баннак"}, -{"usage": "world", "name": "Баннелл"}, -{"usage": "world", "name": "Баннер"}, -{"usage": "world", "name": "Баннинг"}, -{"usage": "world", "name": "Банн"}, -{"usage": "world", "name": "Банс"}, -{"usage": "world", "name": "Бантам"}, -{"usage": "world", "name": "Банч"}, -{"usage": "world", "name": "Баньос"}, -{"usage": "world", "name": "Барабу"}, -{"usage": "world", "name": "Барага"}, -{"usage": "world", "name": "Барада"}, -{"usage": "world", "name": "Барак"}, -{"usage": "world", "name": "Бараноф"}, -{"usage": "world", "name": "Баратария"}, -{"usage": "world", "name": "Барахона"}, -{"usage": "world", "name": "Барбара"}, -{"usage": "world", "name": "Барбер"}, -{"usage": "world", "name": "Барбур"}, -{"usage": "world", "name": "Барвик"}, -{"usage": "world", "name": "Барвью"}, -{"usage": "world", "name": "Баргер"}, -{"usage": "world", "name": "Барден"}, -{"usage": "world", "name": "Бардли"}, -{"usage": "world", "name": "Бардольф"}, -{"usage": "world", "name": "Бардония"}, -{"usage": "world", "name": "Бардуэлл"}, -{"usage": "world", "name": "Бард"}, -{"usage": "world", "name": "Баржа"}, -{"usage": "world", "name": "Баринг"}, -{"usage": "world", "name": "Бари"}, -{"usage": "world", "name": "Баркер"}, -{"usage": "world", "name": "Барки"}, -{"usage": "world", "name": "Барклай"}, -{"usage": "world", "name": "Барко"}, -{"usage": "world", "name": "Баркрофт"}, -{"usage": "world", "name": "Барк"}, -{"usage": "world", "name": "Барлинг"}, -{"usage": "world", "name": "Барлоу"}, -{"usage": "world", "name": "Барнабус"}, -{"usage": "world", "name": "Барнард"}, -{"usage": "world", "name": "Барнвелл"}, -{"usage": "world", "name": "Барневельд"}, -{"usage": "world", "name": "Барнегат"}, -{"usage": "world", "name": "Барнетт"}, -{"usage": "world", "name": "Барне"}, -{"usage": "world", "name": "Барни"}, -{"usage": "world", "name": "Барнс"}, -{"usage": "world", "name": "Барнум"}, -{"usage": "world", "name": "Барнхарт"}, -{"usage": "world", "name": "Барн"}, -{"usage": "world", "name": "Барода"}, -{"usage": "world", "name": "Барон"}, -{"usage": "world", "name": "Барранкитас"}, -{"usage": "world", "name": "Баррелл"}, -{"usage": "world", "name": "Баррель"}, -{"usage": "world", "name": "Баррел"}, -{"usage": "world", "name": "Баррет"}, -{"usage": "world", "name": "Барре"}, -{"usage": "world", "name": "Барринг"}, -{"usage": "world", "name": "Баррино"}, -{"usage": "world", "name": "Барри"}, -{"usage": "world", "name": "Баррон"}, -{"usage": "world", "name": "Барроу"}, -{"usage": "world", "name": "Барр"}, -{"usage": "world", "name": "Барселонета"}, -{"usage": "world", "name": "Барстоу"}, -{"usage": "world", "name": "Бартелсо"}, -{"usage": "world", "name": "Бартлес"}, -{"usage": "world", "name": "Бартлетт"}, -{"usage": "world", "name": "Бартли"}, -{"usage": "world", "name": "Бартоло"}, -{"usage": "world", "name": "Бартон"}, -{"usage": "world", "name": "Бартоу"}, -{"usage": "world", "name": "Бар"}, -{"usage": "world", "name": "Басай"}, -{"usage": "world", "name": "Басби"}, -{"usage": "world", "name": "Баскерк"}, -{"usage": "world", "name": "Баскетт"}, -{"usage": "world", "name": "Баскинг"}, -{"usage": "world", "name": "Баскин"}, -{"usage": "world", "name": "Баском"}, -{"usage": "world", "name": "Баско"}, -{"usage": "world", "name": "Бассейн"}, -{"usage": "world", "name": "Бассет"}, -{"usage": "world", "name": "Басси"}, -{"usage": "world", "name": "Басс"}, -{"usage": "world", "name": "Бастиан"}, -{"usage": "world", "name": "Бастроп"}, -{"usage": "world", "name": "Батавия"}, -{"usage": "world", "name": "Батгейт"}, -{"usage": "world", "name": "Батлер"}, -{"usage": "world", "name": "Батнер"}, -{"usage": "world", "name": "Батр"}, -{"usage": "world", "name": "Батсон"}, -{"usage": "world", "name": "Баттер"}, -{"usage": "world", "name": "Баттлмент"}, -{"usage": "world", "name": "Баттл"}, -{"usage": "world", "name": "Баттон"}, -{"usage": "world", "name": "Батч"}, -{"usage": "world", "name": "Бат"}, -{"usage": "world", "name": "Бауерс"}, -{"usage": "world", "name": "Баундари"}, -{"usage": "world", "name": "Баунд"}, -{"usage": "world", "name": "Баунти"}, -{"usage": "world", "name": "Баус"}, -{"usage": "world", "name": "Баутон"}, -{"usage": "world", "name": "Баутт"}, -{"usage": "world", "name": "Баффинг"}, -{"usage": "world", "name": "Бахандас"}, -{"usage": "world", "name": "Бах"}, -{"usage": "world", "name": "Баш"}, -{"usage": "world", "name": "Баю"}, -{"usage": "world", "name": "Баядеро"}, -{"usage": "world", "name": "Баярд"}, -{"usage": "world", "name": "Беардс"}, -{"usage": "world", "name": "Беар"}, -{"usage": "world", "name": "Беатрис"}, -{"usage": "world", "name": "Беауо"}, -{"usage": "world", "name": "Бебе"}, -{"usage": "world", "name": "Беверли"}, -{"usage": "world", "name": "Бевинг"}, -{"usage": "world", "name": "Бевьер"}, -{"usage": "world", "name": "Беда"}, -{"usage": "world", "name": "Бедиас"}, -{"usage": "world", "name": "Бедминстер"}, -{"usage": "world", "name": "Бедрок"}, -{"usage": "world", "name": "Бед"}, -{"usage": "world", "name": "Бейлис"}, -{"usage": "world", "name": "Бейн"}, -{"usage": "world", "name": "Бейрн"}, -{"usage": "world", "name": "Бейсингер"}, -{"usage": "world", "name": "Бейтс"}, -{"usage": "world", "name": "Беккер"}, -{"usage": "world", "name": "Беккет"}, -{"usage": "world", "name": "Бекли"}, -{"usage": "world", "name": "Бекмейер"}, -{"usage": "world", "name": "Бекон"}, -{"usage": "world", "name": "Бекслей"}, -{"usage": "world", "name": "Бектон"}, -{"usage": "world", "name": "Бек"}, -{"usage": "world", "name": "Белва"}, -{"usage": "world", "name": "Белвью"}, -{"usage": "world", "name": "Белгик"}, -{"usage": "world", "name": "Белград"}, -{"usage": "world", "name": "Белден"}, -{"usage": "world", "name": "Белдинг"}, -{"usage": "world", "name": "Белен"}, -{"usage": "world", "name": "Белзони"}, -{"usage": "world", "name": "Белинг"}, -{"usage": "world", "name": "Белинда"}, -{"usage": "world", "name": "Белкамп"}, -{"usage": "world", "name": "Белкорт"}, -{"usage": "world", "name": "Белкофски"}, -{"usage": "world", "name": "Белк"}, -{"usage": "world", "name": "Беллами"}, -{"usage": "world", "name": "Белла"}, -{"usage": "world", "name": "Беллвью"}, -{"usage": "world", "name": "Беллингем"}, -{"usage": "world", "name": "Беллмор"}, -{"usage": "world", "name": "Беллоу"}, -{"usage": "world", "name": "Беллэр"}, -{"usage": "world", "name": "Белл"}, -{"usage": "world", "name": "Белмар"}, -{"usage": "world", "name": "Белмонт"}, -{"usage": "world", "name": "Белмор"}, -{"usage": "world", "name": "Белнап"}, -{"usage": "world", "name": "Белпре"}, -{"usage": "world", "name": "Белтон"}, -{"usage": "world", "name": "Белтрами"}, -{"usage": "world", "name": "Белт"}, -{"usage": "world", "name": "Белуа"}, -{"usage": "world", "name": "Белфаст"}, -{"usage": "world", "name": "Белфолл"}, -{"usage": "world", "name": "Белфри"}, -{"usage": "world", "name": "Белфэр"}, -{"usage": "world", "name": "Белчер"}, -{"usage": "world", "name": "Белчестер"}, -{"usage": "world", "name": "Бельведер"}, -{"usage": "world", "name": "Бельгия"}, -{"usage": "world", "name": "Бельмид"}, -{"usage": "world", "name": "Бельмонд"}, -{"usage": "world", "name": "Бельрив"}, -{"usage": "world", "name": "Бельфонт"}, -{"usage": "world", "name": "Бель"}, -{"usage": "world", "name": "Бел"}, -{"usage": "world", "name": "Бемент"}, -{"usage": "world", "name": "Бемисс"}, -{"usage": "world", "name": "Бемис"}, -{"usage": "world", "name": "Бемус"}, -{"usage": "world", "name": "Бенавидес"}, -{"usage": "world", "name": "Бена"}, -{"usage": "world", "name": "Бенгал"}, -{"usage": "world", "name": "Бенге"}, -{"usage": "world", "name": "Бендавис"}, -{"usage": "world", "name": "Бендер"}, -{"usage": "world", "name": "Бенджамин"}, -{"usage": "world", "name": "Бенд"}, -{"usage": "world", "name": "Беневоленс"}, -{"usage": "world", "name": "Бенедикт"}, -{"usage": "world", "name": "Бензония"}, -{"usage": "world", "name": "Бенитез"}, -{"usage": "world", "name": "Бенито"}, -{"usage": "world", "name": "Бениция"}, -{"usage": "world", "name": "Бенкелман"}, -{"usage": "world", "name": "Бенльд"}, -{"usage": "world", "name": "Беннетт"}, -{"usage": "world", "name": "Беннет"}, -{"usage": "world", "name": "Беннинг"}, -{"usage": "world", "name": "Беннион"}, -{"usage": "world", "name": "Бенн"}, -{"usage": "world", "name": "Бенонина"}, -{"usage": "world", "name": "Бенсен"}, -{"usage": "world", "name": "Бенсон"}, -{"usage": "world", "name": "Бентли"}, -{"usage": "world", "name": "Бентония"}, -{"usage": "world", "name": "Бентон"}, -{"usage": "world", "name": "Бент"}, -{"usage": "world", "name": "Бенуа"}, -{"usage": "world", "name": "Бенхам"}, -{"usage": "world", "name": "Бенчли"}, -{"usage": "world", "name": "Бенч"}, -{"usage": "world", "name": "Бен"}, -{"usage": "world", "name": "Бербанк"}, -{"usage": "world", "name": "Бервик"}, -{"usage": "world", "name": "Бервин"}, -{"usage": "world", "name": "Берген"}, -{"usage": "world", "name": "Бергер"}, -{"usage": "world", "name": "Бергу"}, -{"usage": "world", "name": "Бергхольц"}, -{"usage": "world", "name": "Берг"}, -{"usage": "world", "name": "Берден"}, -{"usage": "world", "name": "Бердетт"}, -{"usage": "world", "name": "Бердик"}, -{"usage": "world", "name": "Беренда"}, -{"usage": "world", "name": "Беренис"}, -{"usage": "world", "name": "Берес"}, -{"usage": "world", "name": "Берея"}, -{"usage": "world", "name": "Берилл"}, -{"usage": "world", "name": "Берино"}, -{"usage": "world", "name": "Бери"}, -{"usage": "world", "name": "Беркбернетт"}, -{"usage": "world", "name": "Беркетт"}, -{"usage": "world", "name": "Беркет"}, -{"usage": "world", "name": "Беркиттс"}, -{"usage": "world", "name": "Берки"}, -{"usage": "world", "name": "Беркли"}, -{"usage": "world", "name": "Берклэр"}, -{"usage": "world", "name": "Беркс"}, -{"usage": "world", "name": "Берк"}, -{"usage": "world", "name": "Берлей"}, -{"usage": "world", "name": "Берлингейм"}, -{"usage": "world", "name": "Берлинг"}, -{"usage": "world", "name": "Берлин"}, -{"usage": "world", "name": "Берлисон"}, -{"usage": "world", "name": "Берли"}, -{"usage": "world", "name": "Берлсон"}, -{"usage": "world", "name": "Берместер"}, -{"usage": "world", "name": "Бермуда"}, -{"usage": "world", "name": "Бермут"}, -{"usage": "world", "name": "Берналилло"}, -{"usage": "world", "name": "Бернардино"}, -{"usage": "world", "name": "Бернардо"}, -{"usage": "world", "name": "Бернард"}, -{"usage": "world", "name": "Бернекер"}, -{"usage": "world", "name": "Бернетт"}, -{"usage": "world", "name": "Бернет"}, -{"usage": "world", "name": "Бернис"}, -{"usage": "world", "name": "Берни"}, -{"usage": "world", "name": "Бернстад"}, -{"usage": "world", "name": "Бернхэм"}, -{"usage": "world", "name": "Бернштадт"}, -{"usage": "world", "name": "Бернштейн"}, -{"usage": "world", "name": "Берн"}, -{"usage": "world", "name": "Бероун"}, -{"usage": "world", "name": "Берриен"}, -{"usage": "world", "name": "Берри"}, -{"usage": "world", "name": "Берроуз"}, -{"usage": "world", "name": "Берр"}, -{"usage": "world", "name": "Берта"}, -{"usage": "world", "name": "Бертольд"}, -{"usage": "world", "name": "Бертон"}, -{"usage": "world", "name": "Бертрам"}, -{"usage": "world", "name": "Бертран"}, -{"usage": "world", "name": "Бертрум"}, -{"usage": "world", "name": "Бертхауд"}, -{"usage": "world", "name": "Берт"}, -{"usage": "world", "name": "Беруэлл"}, -{"usage": "world", "name": "Берчард"}, -{"usage": "world", "name": "Берчинал"}, -{"usage": "world", "name": "Бер"}, -{"usage": "world", "name": "Бесида"}, -{"usage": "world", "name": "Бессемер"}, -{"usage": "world", "name": "Бесси"}, -{"usage": "world", "name": "Бессмэй"}, -{"usage": "world", "name": "Бест"}, -{"usage": "world", "name": "Беталто"}, -{"usage": "world", "name": "Бетани"}, -{"usage": "world", "name": "Бетансес"}, -{"usage": "world", "name": "Бетвин"}, -{"usage": "world", "name": "Бетезда"}, -{"usage": "world", "name": "Бетейрс"}, -{"usage": "world", "name": "Бетел"}, -{"usage": "world", "name": "Бете"}, -{"usage": "world", "name": "Бетпаж"}, -{"usage": "world", "name": "Беттеравия"}, -{"usage": "world", "name": "Беттер"}, -{"usage": "world", "name": "Бетти"}, -{"usage": "world", "name": "Беттл"}, -{"usage": "world", "name": "Беттс"}, -{"usage": "world", "name": "Бетюн"}, -{"usage": "world", "name": "Бечин"}, -{"usage": "world", "name": "Бечтелс"}, -{"usage": "world", "name": "Бибб"}, -{"usage": "world", "name": "Бибер"}, -{"usage": "world", "name": "Биб"}, -{"usage": "world", "name": "Бивердам"}, -{"usage": "world", "name": "Биверлик"}, -{"usage": "world", "name": "Бивер"}, -{"usage": "world", "name": "Бивинс"}, -{"usage": "world", "name": "Бивис"}, -{"usage": "world", "name": "Бивабик"}, -{"usage": "world", "name": "Бигби"}, -{"usage": "world", "name": "Биггер"}, -{"usage": "world", "name": "Биггс"}, -{"usage": "world", "name": "Бигелоу"}, -{"usage": "world", "name": "Биглер"}, -{"usage": "world", "name": "Бигль"}, -{"usage": "world", "name": "Бигспринг"}, -{"usage": "world", "name": "Бигфорк"}, -{"usage": "world", "name": "Бигфут"}, -{"usage": "world", "name": "Биг"}, -{"usage": "world", "name": "Бидда"}, -{"usage": "world", "name": "Биддл"}, -{"usage": "world", "name": "Биджоу"}, -{"usage": "world", "name": "Биджу"}, -{"usage": "world", "name": "Бидуэлл"}, -{"usage": "world", "name": "Бид"}, -{"usage": "world", "name": "Бизон"}, -{"usage": "world", "name": "Бикнелл"}, -{"usage": "world", "name": "Бикон"}, -{"usage": "world", "name": "Биксби"}, -{"usage": "world", "name": "Билас"}, -{"usage": "world", "name": "Билер"}, -{"usage": "world", "name": "Биллерика"}, -{"usage": "world", "name": "Биллетт"}, -{"usage": "world", "name": "Биллингсли"}, -{"usage": "world", "name": "Биллинг"}, -{"usage": "world", "name": "Биллс"}, -{"usage": "world", "name": "Билл"}, -{"usage": "world", "name": "Билокси"}, -{"usage": "world", "name": "Бил"}, -{"usage": "world", "name": "Биман"}, -{"usage": "world", "name": "Бимер"}, -{"usage": "world", "name": "Бингем"}, -{"usage": "world", "name": "Бинген"}, -{"usage": "world", "name": "Бингер"}, -{"usage": "world", "name": "Бинг"}, -{"usage": "world", "name": "Бинум"}, -{"usage": "world", "name": "Бин"}, -{"usage": "world", "name": "Биола"}, -{"usage": "world", "name": "Биорка"}, -{"usage": "world", "name": "Биппус"}, -{"usage": "world", "name": "Бирдсейе"}, -{"usage": "world", "name": "Бирдсонг"}, -{"usage": "world", "name": "Бирд"}, -{"usage": "world", "name": "Бирмингем"}, -{"usage": "world", "name": "Бирнам"}, -{"usage": "world", "name": "Бирн"}, -{"usage": "world", "name": "Бирта"}, -{"usage": "world", "name": "Бирч"}, -{"usage": "world", "name": "Бисби"}, -{"usage": "world", "name": "Бискай"}, -{"usage": "world", "name": "Бискейн"}, -{"usage": "world", "name": "Бискоу"}, -{"usage": "world", "name": "Бисли"}, -{"usage": "world", "name": "Бисмарк"}, -{"usage": "world", "name": "Бисселл"}, -{"usage": "world", "name": "Биттер"}, -{"usage": "world", "name": "Битти"}, -{"usage": "world", "name": "Бичгров"}, -{"usage": "world", "name": "Бичер"}, -{"usage": "world", "name": "Бич"}, -{"usage": "world", "name": "Бишоп"}, -{"usage": "world", "name": "Би"}, -{"usage": "world", "name": "Бладен"}, -{"usage": "world", "name": "Блайт"}, -{"usage": "world", "name": "Блай"}, -{"usage": "world", "name": "Бландинс"}, -{"usage": "world", "name": "Бланд"}, -{"usage": "world", "name": "Бланка"}, -{"usage": "world", "name": "Бланкет"}, -{"usage": "world", "name": "Бланко"}, -{"usage": "world", "name": "Бланк"}, -{"usage": "world", "name": "Блант"}, -{"usage": "world", "name": "Бланшар"}, -{"usage": "world", "name": "Бланшстер"}, -{"usage": "world", "name": "Бланш"}, -{"usage": "world", "name": "Бласделл"}, -{"usage": "world", "name": "Блевинс"}, -{"usage": "world", "name": "Блеветт"}, -{"usage": "world", "name": "Бледсо"}, -{"usage": "world", "name": "Блейкли"}, -{"usage": "world", "name": "Блейкман"}, -{"usage": "world", "name": "Блейкс"}, -{"usage": "world", "name": "Блейсделл"}, -{"usage": "world", "name": "Блендинг"}, -{"usage": "world", "name": "Бленкоу"}, -{"usage": "world", "name": "Бленнер"}, -{"usage": "world", "name": "Бленхейм"}, -{"usage": "world", "name": "Блессинг"}, -{"usage": "world", "name": "Блеф"}, -{"usage": "world", "name": "Бликер"}, -{"usage": "world", "name": "Блик"}, -{"usage": "world", "name": "Блин"}, -{"usage": "world", "name": "Блисс"}, -{"usage": "world", "name": "Блитч"}, -{"usage": "world", "name": "Бловелт"}, -{"usage": "world", "name": "Блоджетт"}, -{"usage": "world", "name": "Блокер"}, -{"usage": "world", "name": "Блоксом"}, -{"usage": "world", "name": "Блоктон"}, -{"usage": "world", "name": "Блок"}, -{"usage": "world", "name": "Бломкест"}, -{"usage": "world", "name": "Блонокс"}, -{"usage": "world", "name": "Блоссом"}, -{"usage": "world", "name": "Блосс"}, -{"usage": "world", "name": "Блоуэн"}, -{"usage": "world", "name": "Блочер"}, -{"usage": "world", "name": "Блумер"}, -{"usage": "world", "name": "Блуминг"}, -{"usage": "world", "name": "Блум"}, -{"usage": "world", "name": "Блу"}, -{"usage": "world", "name": "Блэйдс"}, -{"usage": "world", "name": "Блэйксли"}, -{"usage": "world", "name": "Блэйн"}, -{"usage": "world", "name": "Блэкберн"}, -{"usage": "world", "name": "Блэквелл"}, -{"usage": "world", "name": "Блэкдак"}, -{"usage": "world", "name": "Блэки"}, -{"usage": "world", "name": "Блэксток"}, -{"usage": "world", "name": "Блэкфут"}, -{"usage": "world", "name": "Блэкшир"}, -{"usage": "world", "name": "Блэк"}, -{"usage": "world", "name": "Блэлок"}, -{"usage": "world", "name": "Блэнтон"}, -{"usage": "world", "name": "Блэрсден"}, -{"usage": "world", "name": "Блэр"}, -{"usage": "world", "name": "Блюменталь"}, -{"usage": "world", "name": "Блюм"}, -{"usage": "world", "name": "Блю"}, -{"usage": "world", "name": "Боаз"}, -{"usage": "world", "name": "Бобо"}, -{"usage": "world", "name": "Боб"}, -{"usage": "world", "name": "Бовард"}, -{"usage": "world", "name": "Бовилл"}, -{"usage": "world", "name": "Бовина"}, -{"usage": "world", "name": "Бови"}, -{"usage": "world", "name": "Богальюза"}, -{"usage": "world", "name": "Богард"}, -{"usage": "world", "name": "Богарт"}, -{"usage": "world", "name": "Богата"}, -{"usage": "world", "name": "Богемия"}, -{"usage": "world", "name": "Богия"}, -{"usage": "world", "name": "Богота"}, -{"usage": "world", "name": "Бодега"}, -{"usage": "world", "name": "Боден"}, -{"usage": "world", "name": "Бодетта"}, -{"usage": "world", "name": "Бодкоу"}, -{"usage": "world", "name": "Боерн"}, -{"usage": "world", "name": "Бозар"}, -{"usage": "world", "name": "Бозман"}, -{"usage": "world", "name": "Бойделл"}, -{"usage": "world", "name": "Бойден"}, -{"usage": "world", "name": "Бойд"}, -{"usage": "world", "name": "Бойеро"}, -{"usage": "world", "name": "Бойер"}, -{"usage": "world", "name": "Бойкин"}, -{"usage": "world", "name": "Бойкурт"}, -{"usage": "world", "name": "Бойла"}, -{"usage": "world", "name": "Бойлинг"}, -{"usage": "world", "name": "Бойл"}, -{"usage": "world", "name": "Бойн"}, -{"usage": "world", "name": "Бойсен"}, -{"usage": "world", "name": "Бойстфорт"}, -{"usage": "world", "name": "Бойс"}, -{"usage": "world", "name": "Бой"}, -{"usage": "world", "name": "Бока"}, -{"usage": "world", "name": "Бокерон"}, -{"usage": "world", "name": "Бокилия"}, -{"usage": "world", "name": "Бокиллас"}, -{"usage": "world", "name": "Бокоше"}, -{"usage": "world", "name": "Бокселдер"}, -{"usage": "world", "name": "Боксит"}, -{"usage": "world", "name": "Боксхольм"}, -{"usage": "world", "name": "Бокс"}, -{"usage": "world", "name": "Бокчито"}, -{"usage": "world", "name": "Бок"}, -{"usage": "world", "name": "Болдер"}, -{"usage": "world", "name": "Болдридж"}, -{"usage": "world", "name": "Болдуин"}, -{"usage": "world", "name": "Болд"}, -{"usage": "world", "name": "Болес"}, -{"usage": "world", "name": "Боливар"}, -{"usage": "world", "name": "Болиги"}, -{"usage": "world", "name": "Болингер"}, -{"usage": "world", "name": "Болинг"}, -{"usage": "world", "name": "Болин"}, -{"usage": "world", "name": "Боли"}, -{"usage": "world", "name": "Болкоу"}, -{"usage": "world", "name": "Боллинг"}, -{"usage": "world", "name": "Боллинджер"}, -{"usage": "world", "name": "Болли"}, -{"usage": "world", "name": "Боллуин"}, -{"usage": "world", "name": "Болл"}, -{"usage": "world", "name": "Болс"}, -{"usage": "world", "name": "Болтон"}, -{"usage": "world", "name": "Болт"}, -{"usage": "world", "name": "Болье"}, -{"usage": "world", "name": "Болэр"}, -{"usage": "world", "name": "Бомартон"}, -{"usage": "world", "name": "Бома"}, -{"usage": "world", "name": "Бомбей"}, -{"usage": "world", "name": "Бомонт"}, -{"usage": "world", "name": "Бонавентура"}, -{"usage": "world", "name": "Бонанза"}, -{"usage": "world", "name": "Бонапарт"}, -{"usage": "world", "name": "Бондад"}, -{"usage": "world", "name": "Бондуран"}, -{"usage": "world", "name": "Бондюэль"}, -{"usage": "world", "name": "Бонд"}, -{"usage": "world", "name": "Бонерс"}, -{"usage": "world", "name": "Бонилья"}, -{"usage": "world", "name": "Бонита"}, -{"usage": "world", "name": "Бонифациус"}, -{"usage": "world", "name": "Бонифэй"}, -{"usage": "world", "name": "Бонкарбо"}, -{"usage": "world", "name": "Бонли"}, -{"usage": "world", "name": "Бонна"}, -{"usage": "world", "name": "Боннер"}, -{"usage": "world", "name": "Бонни"}, -{"usage": "world", "name": "Бонно"}, -{"usage": "world", "name": "Бонсолл"}, -{"usage": "world", "name": "Бонхоми"}, -{"usage": "world", "name": "Бонэм"}, -{"usage": "world", "name": "Бонэр"}, -{"usage": "world", "name": "Бон"}, -{"usage": "world", "name": "Боргер"}, -{"usage": "world", "name": "Борделон"}, -{"usage": "world", "name": "Борден"}, -{"usage": "world", "name": "Бордер"}, -{"usage": "world", "name": "Бордман"}, -{"usage": "world", "name": "Бордо"}, -{"usage": "world", "name": "Бордулак"}, -{"usage": "world", "name": "Борд"}, -{"usage": "world", "name": "Борегард"}, -{"usage": "world", "name": "Боринг"}, -{"usage": "world", "name": "Борн"}, -{"usage": "world", "name": "Борон"}, -{"usage": "world", "name": "Боро"}, -{"usage": "world", "name": "Боррего"}, -{"usage": "world", "name": "Бортон"}, -{"usage": "world", "name": "Борт"}, -{"usage": "world", "name": "Боруп"}, -{"usage": "world", "name": "Боске"}, -{"usage": "world", "name": "Боскобель"}, -{"usage": "world", "name": "Боскоен"}, -{"usage": "world", "name": "Боско"}, -{"usage": "world", "name": "Бослер"}, -{"usage": "world", "name": "Боссье"}, -{"usage": "world", "name": "Босс"}, -{"usage": "world", "name": "Боствик"}, -{"usage": "world", "name": "Бостик"}, -{"usage": "world", "name": "Бостония"}, -{"usage": "world", "name": "Бостон"}, -{"usage": "world", "name": "Босуорт"}, -{"usage": "world", "name": "Босуэлл"}, -{"usage": "world", "name": "Ботелл"}, -{"usage": "world", "name": "Ботиста"}, -{"usage": "world", "name": "Боткинс"}, -{"usage": "world", "name": "Ботман"}, -{"usage": "world", "name": "Ботна"}, -{"usage": "world", "name": "Боттино"}, -{"usage": "world", "name": "Боттом"}, -{"usage": "world", "name": "Боубелл"}, -{"usage": "world", "name": "Боуг"}, -{"usage": "world", "name": "Боуден"}, -{"usage": "world", "name": "Боудл"}, -{"usage": "world", "name": "Боудойн"}, -{"usage": "world", "name": "Боудон"}, -{"usage": "world", "name": "Боуер"}, -{"usage": "world", "name": "Боузмен"}, -{"usage": "world", "name": "Боуз"}, -{"usage": "world", "name": "Боуи"}, -{"usage": "world", "name": "Боукет"}, -{"usage": "world", "name": "Боукс"}, -{"usage": "world", "name": "Боулегс"}, -{"usage": "world", "name": "Боулинг"}, -{"usage": "world", "name": "Боулис"}, -{"usage": "world", "name": "Боулус"}, -{"usage": "world", "name": "Боуман"}, -{"usage": "world", "name": "Боун"}, -{"usage": "world", "name": "Боуэн"}, -{"usage": "world", "name": "Бофорт"}, -{"usage": "world", "name": "Бохома"}, -{"usage": "world", "name": "Боше"}, -{"usage": "world", "name": "Браво"}, -{"usage": "world", "name": "Браггадочио"}, -{"usage": "world", "name": "Брадгейт"}, -{"usage": "world", "name": "Брад"}, -{"usage": "world", "name": "Бразер"}, -{"usage": "world", "name": "Бразилия"}, -{"usage": "world", "name": "Бразос"}, -{"usage": "world", "name": "Брайант"}, -{"usage": "world", "name": "Брайан"}, -{"usage": "world", "name": "Брайар"}, -{"usage": "world", "name": "Брайдена"}, -{"usage": "world", "name": "Брайд"}, -{"usage": "world", "name": "Брайер"}, -{"usage": "world", "name": "Брайсон"}, -{"usage": "world", "name": "Брайс"}, -{"usage": "world", "name": "Брайт"}, -{"usage": "world", "name": "Брай"}, -{"usage": "world", "name": "Бракен"}, -{"usage": "world", "name": "Брамвелл"}, -{"usage": "world", "name": "Брамли"}, -{"usage": "world", "name": "Брамп"}, -{"usage": "world", "name": "Бранден"}, -{"usage": "world", "name": "Брандрет"}, -{"usage": "world", "name": "Брансон"}, -{"usage": "world", "name": "Брансуик"}, -{"usage": "world", "name": "Брант"}, -{"usage": "world", "name": "Бранч"}, -{"usage": "world", "name": "Бран"}, -{"usage": "world", "name": "Брасель"}, -{"usage": "world", "name": "Брассард"}, -{"usage": "world", "name": "Брасс"}, -{"usage": "world", "name": "Братеналь"}, -{"usage": "world", "name": "Браттлборо"}, -{"usage": "world", "name": "Браунелл"}, -{"usage": "world", "name": "Браунинг"}, -{"usage": "world", "name": "Браунли"}, -{"usage": "world", "name": "Браунфелз"}, -{"usage": "world", "name": "Браун"}, -{"usage": "world", "name": "Брауэр"}, -{"usage": "world", "name": "Брахам"}, -{"usage": "world", "name": "Брашвейл"}, -{"usage": "world", "name": "Брашир"}, -{"usage": "world", "name": "Браши"}, -{"usage": "world", "name": "Брашли"}, -{"usage": "world", "name": "Браш"}, -{"usage": "world", "name": "Бревард"}, -{"usage": "world", "name": "Бревиг"}, -{"usage": "world", "name": "Бреворт"}, -{"usage": "world", "name": "Бреда"}, -{"usage": "world", "name": "Бреднер"}, -{"usage": "world", "name": "Брейв"}, -{"usage": "world", "name": "Брейдаблик"}, -{"usage": "world", "name": "Брейден"}, -{"usage": "world", "name": "Брейен"}, -{"usage": "world", "name": "Брейнтри"}, -{"usage": "world", "name": "Брейтуэйт"}, -{"usage": "world", "name": "Брекен"}, -{"usage": "world", "name": "Брекин"}, -{"usage": "world", "name": "Бреконе"}, -{"usage": "world", "name": "Брекс"}, -{"usage": "world", "name": "Бремен"}, -{"usage": "world", "name": "Бремер"}, -{"usage": "world", "name": "Бремонд"}, -{"usage": "world", "name": "Бренас"}, -{"usage": "world", "name": "Бренда"}, -{"usage": "world", "name": "Брендедж"}, -{"usage": "world", "name": "Брендивайн"}, -{"usage": "world", "name": "Бренд"}, -{"usage": "world", "name": "Брент"}, -{"usage": "world", "name": "Бренхам"}, -{"usage": "world", "name": "Брео"}, -{"usage": "world", "name": "Бреслау"}, -{"usage": "world", "name": "Бресслер"}, -{"usage": "world", "name": "Бригам"}, -{"usage": "world", "name": "Бригантина"}, -{"usage": "world", "name": "Бриггс"}, -{"usage": "world", "name": "Бриджер"}, -{"usage": "world", "name": "Бриджмен"}, -{"usage": "world", "name": "Бридж"}, -{"usage": "world", "name": "Брид"}, -{"usage": "world", "name": "Бриенс"}, -{"usage": "world", "name": "Бриз"}, -{"usage": "world", "name": "Брикер"}, -{"usage": "world", "name": "Брикис"}, -{"usage": "world", "name": "Бриллиант"}, -{"usage": "world", "name": "Бриллион"}, -{"usage": "world", "name": "Бримли"}, -{"usage": "world", "name": "Бримсон"}, -{"usage": "world", "name": "Брим"}, -{"usage": "world", "name": "Брини"}, -{"usage": "world", "name": "Бринкли"}, -{"usage": "world", "name": "Бринклоу"}, -{"usage": "world", "name": "Бринкман"}, -{"usage": "world", "name": "Бринсмэйд"}, -{"usage": "world", "name": "Бринсон"}, -{"usage": "world", "name": "Брин"}, -{"usage": "world", "name": "Брисбейн"}, -{"usage": "world", "name": "Брисбин"}, -{"usage": "world", "name": "Бриско"}, -{"usage": "world", "name": "Бристоль"}, -{"usage": "world", "name": "Бристоу"}, -{"usage": "world", "name": "Брис"}, -{"usage": "world", "name": "Британь"}, -{"usage": "world", "name": "Бриттон"}, -{"usage": "world", "name": "Бритт"}, -{"usage": "world", "name": "Бриэль"}, -{"usage": "world", "name": "Бри"}, -{"usage": "world", "name": "Броадус"}, -{"usage": "world", "name": "Броад"}, -{"usage": "world", "name": "Броган"}, -{"usage": "world", "name": "Бродалбин"}, -{"usage": "world", "name": "Бродбент"}, -{"usage": "world", "name": "Броддус"}, -{"usage": "world", "name": "Бродмур"}, -{"usage": "world", "name": "Броднакс"}, -{"usage": "world", "name": "Бродуэлл"}, -{"usage": "world", "name": "Бродхед"}, -{"usage": "world", "name": "Броек"}, -{"usage": "world", "name": "Брокен"}, -{"usage": "world", "name": "Брокоу"}, -{"usage": "world", "name": "Брокстон"}, -{"usage": "world", "name": "Броктон"}, -{"usage": "world", "name": "Брок"}, -{"usage": "world", "name": "Бромид"}, -{"usage": "world", "name": "Бромли"}, -{"usage": "world", "name": "Бронаф"}, -{"usage": "world", "name": "Бронкс"}, -{"usage": "world", "name": "Бронсон"}, -{"usage": "world", "name": "Бронте"}, -{"usage": "world", "name": "Брончо"}, -{"usage": "world", "name": "Брон"}, -{"usage": "world", "name": "Бросели"}, -{"usage": "world", "name": "Брос"}, -{"usage": "world", "name": "Броуар"}, -{"usage": "world", "name": "Броули"}, -{"usage": "world", "name": "Брохард"}, -{"usage": "world", "name": "Бро"}, -{"usage": "world", "name": "Бруин"}, -{"usage": "world", "name": "Бруквейл"}, -{"usage": "world", "name": "Брукер"}, -{"usage": "world", "name": "Брукинг"}, -{"usage": "world", "name": "Бруклет"}, -{"usage": "world", "name": "Бруклин"}, -{"usage": "world", "name": "Бруклоун"}, -{"usage": "world", "name": "Брукнил"}, -{"usage": "world", "name": "Брукридж"}, -{"usage": "world", "name": "Бруксмит"}, -{"usage": "world", "name": "Брукшир"}, -{"usage": "world", "name": "Брук"}, -{"usage": "world", "name": "Брул"}, -{"usage": "world", "name": "Брумалл"}, -{"usage": "world", "name": "Брум"}, -{"usage": "world", "name": "Брундидж"}, -{"usage": "world", "name": "Бруни"}, -{"usage": "world", "name": "Бруно"}, -{"usage": "world", "name": "Брунс"}, -{"usage": "world", "name": "Брусет"}, -{"usage": "world", "name": "Брутен"}, -{"usage": "world", "name": "Брэгг"}, -{"usage": "world", "name": "Брэдди"}, -{"usage": "world", "name": "Брэддок"}, -{"usage": "world", "name": "Брэди"}, -{"usage": "world", "name": "Брэдли"}, -{"usage": "world", "name": "Брэдшоу"}, -{"usage": "world", "name": "Брэйд"}, -{"usage": "world", "name": "Брэймер"}, -{"usage": "world", "name": "Брэйнард"}, -{"usage": "world", "name": "Брэйнерд"}, -{"usage": "world", "name": "Брэйси"}, -{"usage": "world", "name": "Брэйс"}, -{"usage": "world", "name": "Брэй"}, -{"usage": "world", "name": "Брэкетт"}, -{"usage": "world", "name": "Брэкстон"}, -{"usage": "world", "name": "Брэндон"}, -{"usage": "world", "name": "Брэнсон"}, -{"usage": "world", "name": "Брэнтли"}, -{"usage": "world", "name": "Брэнтон"}, -{"usage": "world", "name": "Брэтт"}, -{"usage": "world", "name": "Брэшер"}, -{"usage": "world", "name": "Брюер"}, -{"usage": "world", "name": "Брюнинг"}, -{"usage": "world", "name": "Брюссель"}, -{"usage": "world", "name": "Брюстер"}, -{"usage": "world", "name": "Брюс"}, -{"usage": "world", "name": "Брю"}, -{"usage": "world", "name": "Брёно"}, -{"usage": "world", "name": "Буа"}, -{"usage": "world", "name": "Буда"}, -{"usage": "world", "name": "Буди"}, -{"usage": "world", "name": "Буейерос"}, -{"usage": "world", "name": "Буелл"}, -{"usage": "world", "name": "Буик"}, -{"usage": "world", "name": "Буист"}, -{"usage": "world", "name": "Буйе"}, -{"usage": "world", "name": "Букатунна"}, -{"usage": "world", "name": "Букер"}, -{"usage": "world", "name": "Буктейл"}, -{"usage": "world", "name": "Булверд"}, -{"usage": "world", "name": "Булгер"}, -{"usage": "world", "name": "Булер"}, -{"usage": "world", "name": "Буллард"}, -{"usage": "world", "name": "Буллиттс"}, -{"usage": "world", "name": "Булл"}, -{"usage": "world", "name": "Булпитт"}, -{"usage": "world", "name": "Бульвар"}, -{"usage": "world", "name": "Буль"}, -{"usage": "world", "name": "Бумер"}, -{"usage": "world", "name": "Бунависта"}, -{"usage": "world", "name": "Буна"}, -{"usage": "world", "name": "Бункер"}, -{"usage": "world", "name": "Бунчи"}, -{"usage": "world", "name": "Бун"}, -{"usage": "world", "name": "Бурас"}, -{"usage": "world", "name": "Бурбоннис"}, -{"usage": "world", "name": "Бурбон"}, -{"usage": "world", "name": "Бургдорф"}, -{"usage": "world", "name": "Бургесс"}, -{"usage": "world", "name": "Бургин"}, -{"usage": "world", "name": "Бурго"}, -{"usage": "world", "name": "Бургун"}, -{"usage": "world", "name": "Бург"}, -{"usage": "world", "name": "Бурен"}, -{"usage": "world", "name": "Буриен"}, -{"usage": "world", "name": "Бурма"}, -{"usage": "world", "name": "Бурна"}, -{"usage": "world", "name": "Бустаманте"}, -{"usage": "world", "name": "Бутбей"}, -{"usage": "world", "name": "Бутвин"}, -{"usage": "world", "name": "Бутжек"}, -{"usage": "world", "name": "Бут"}, -{"usage": "world", "name": "Буфало"}, -{"usage": "world", "name": "Буффало"}, -{"usage": "world", "name": "Бучтель"}, -{"usage": "world", "name": "Бушкилл"}, -{"usage": "world", "name": "Бушнелл"}, -{"usage": "world", "name": "Бушонг"}, -{"usage": "world", "name": "Буш"}, -{"usage": "world", "name": "Буэна"}, -{"usage": "world", "name": "Буэнос"}, -{"usage": "world", "name": "Буэшел"}, -{"usage": "world", "name": "Бу"}, -{"usage": "world", "name": "Бьен"}, -{"usage": "world", "name": "Бьюд"}, -{"usage": "world", "name": "Бьюкенен"}, -{"usage": "world", "name": "Бьюла"}, -{"usage": "world", "name": "Бьюли"}, -{"usage": "world", "name": "Бьютт"}, -{"usage": "world", "name": "Бэбби"}, -{"usage": "world", "name": "Бэбкок"}, -{"usage": "world", "name": "Бэгли"}, -{"usage": "world", "name": "Бэйд"}, -{"usage": "world", "name": "Бэйзмор"}, -{"usage": "world", "name": "Бэйкер"}, -{"usage": "world", "name": "Бэйли"}, -{"usage": "world", "name": "Бэйн"}, -{"usage": "world", "name": "Бэйшор"}, -{"usage": "world", "name": "Бэй"}, -{"usage": "world", "name": "Бэксли"}, -{"usage": "world", "name": "Бэктон"}, -{"usage": "world", "name": "Бэнг"}, -{"usage": "world", "name": "Бэндон"}, -{"usage": "world", "name": "Бэнкрофт"}, -{"usage": "world", "name": "Бэннокберн"}, -{"usage": "world", "name": "Бэнтри"}, -{"usage": "world", "name": "Бэра"}, -{"usage": "world", "name": "Бэрдс"}, -{"usage": "world", "name": "Бэрд"}, -{"usage": "world", "name": "Бэройл"}, -{"usage": "world", "name": "Бэтчелор"}, -{"usage": "world", "name": "Бэ"}, -{"usage": "world", "name": "Бярс"}, -{"usage": "world", "name": "Бёрдок"}, -{"usage": "world", "name": "Бёрдсли"}, -{"usage": "world", "name": "Бёрнинг"}, -{"usage": "world", "name": "Бёрнт"}, -{"usage": "world", "name": "Бёрн"}, -{"usage": "world", "name": "Вабаска"}, -{"usage": "world", "name": "Вабассо"}, -{"usage": "world", "name": "Вабаунси"}, -{"usage": "world", "name": "Вабаша"}, -{"usage": "world", "name": "Вабено"}, -{"usage": "world", "name": "Вававай"}, -{"usage": "world", "name": "Вавилон"}, -{"usage": "world", "name": "Вавона"}, -{"usage": "world", "name": "Вагар"}, -{"usage": "world", "name": "Ваггонер"}, -{"usage": "world", "name": "Вагенер"}, -{"usage": "world", "name": "Вагнер"}, -{"usage": "world", "name": "Вагонер"}, -{"usage": "world", "name": "Вагоншер"}, -{"usage": "world", "name": "Вагон"}, -{"usage": "world", "name": "Ваграм"}, -{"usage": "world", "name": "Вагстафф"}, -{"usage": "world", "name": "Вадинг"}, -{"usage": "world", "name": "Вадито"}, -{"usage": "world", "name": "Ваднейс"}, -{"usage": "world", "name": "Вадо"}, -{"usage": "world", "name": "Вазича"}, -{"usage": "world", "name": "Ваималу"}, -{"usage": "world", "name": "Ваинаку"}, -{"usage": "world", "name": "Вайзер"}, -{"usage": "world", "name": "Вайкии"}, -{"usage": "world", "name": "Вайлуа"}, -{"usage": "world", "name": "Вайман"}, -{"usage": "world", "name": "Вайнгартен"}, -{"usage": "world", "name": "Вайнерт"}, -{"usage": "world", "name": "Вайнона"}, -{"usage": "world", "name": "Вайнъярд"}, -{"usage": "world", "name": "Вайн"}, -{"usage": "world", "name": "Вайолет"}, -{"usage": "world", "name": "Вайоминг"}, -{"usage": "world", "name": "Вайомиссинг"}, -{"usage": "world", "name": "Вайтло"}, -{"usage": "world", "name": "Вайян"}, -{"usage": "world", "name": "Вакабук"}, -{"usage": "world", "name": "Вакамо"}, -{"usage": "world", "name": "Вака"}, -{"usage": "world", "name": "Вакония"}, -{"usage": "world", "name": "Вако"}, -{"usage": "world", "name": "Ваксхо"}, -{"usage": "world", "name": "Вакс"}, -{"usage": "world", "name": "Валати"}, -{"usage": "world", "name": "Валгалла"}, -{"usage": "world", "name": "Валдерс"}, -{"usage": "world", "name": "Валенсия"}, -{"usage": "world", "name": "Валентин"}, -{"usage": "world", "name": "Валера"}, -{"usage": "world", "name": "Валерия"}, -{"usage": "world", "name": "Валинда"}, -{"usage": "world", "name": "Валин"}, -{"usage": "world", "name": "Валкария"}, -{"usage": "world", "name": "Валлесито"}, -{"usage": "world", "name": "Валлиант"}, -{"usage": "world", "name": "Валли"}, -{"usage": "world", "name": "Валль"}, -{"usage": "world", "name": "Валмайер"}, -{"usage": "world", "name": "Валрико"}, -{"usage": "world", "name": "Валсец"}, -{"usage": "world", "name": "Вальдес"}, -{"usage": "world", "name": "Вальдоста"}, -{"usage": "world", "name": "Вальехо"}, -{"usage": "world", "name": "Валье"}, -{"usage": "world", "name": "Вальмон"}, -{"usage": "world", "name": "Вальмора"}, -{"usage": "world", "name": "Вальпараисо"}, -{"usage": "world", "name": "Вальс"}, -{"usage": "world", "name": "Вальтер"}, -{"usage": "world", "name": "Вальтон"}, -{"usage": "world", "name": "Вальхалла"}, -{"usage": "world", "name": "Валью"}, -{"usage": "world", "name": "Вал"}, -{"usage": "world", "name": "Вамак"}, -{"usage": "world", "name": "Вамего"}, -{"usage": "world", "name": "Вамик"}, -{"usage": "world", "name": "Вамо"}, -{"usage": "world", "name": "Вампс"}, -{"usage": "world", "name": "Ванака"}, -{"usage": "world", "name": "Ванак"}, -{"usage": "world", "name": "Ванамасса"}, -{"usage": "world", "name": "Ванаминго"}, -{"usage": "world", "name": "Вананда"}, -{"usage": "world", "name": "Ваната"}, -{"usage": "world", "name": "Вандайк"}, -{"usage": "world", "name": "Вандалия"}, -{"usage": "world", "name": "Ванда"}, -{"usage": "world", "name": "Вандер"}, -{"usage": "world", "name": "Вандлинг"}, -{"usage": "world", "name": "Вандмир"}, -{"usage": "world", "name": "Вандузер"}, -{"usage": "world", "name": "Ванзант"}, -{"usage": "world", "name": "Ванилла"}, -{"usage": "world", "name": "Ванклив"}, -{"usage": "world", "name": "Ванкорт"}, -{"usage": "world", "name": "Ванкувер"}, -{"usage": "world", "name": "Ванлир"}, -{"usage": "world", "name": "Ванлю"}, -{"usage": "world", "name": "Ваннаска"}, -{"usage": "world", "name": "Ваносс"}, -{"usage": "world", "name": "Ванпорт"}, -{"usage": "world", "name": "Вансант"}, -{"usage": "world", "name": "Вантадж"}, -{"usage": "world", "name": "Ванта"}, -{"usage": "world", "name": "Ванчес"}, -{"usage": "world", "name": "Вапаконета"}, -{"usage": "world", "name": "Вапанака"}, -{"usage": "world", "name": "Вапато"}, -{"usage": "world", "name": "Вапелла"}, -{"usage": "world", "name": "Вапелло"}, -{"usage": "world", "name": "Вапинития"}, -{"usage": "world", "name": "Вапити"}, -{"usage": "world", "name": "Ваппингерс"}, -{"usage": "world", "name": "Вардаман"}, -{"usage": "world", "name": "Варина"}, -{"usage": "world", "name": "Варминстер"}, -{"usage": "world", "name": "Варнадо"}, -{"usage": "world", "name": "Варнам"}, -{"usage": "world", "name": "Варна"}, -{"usage": "world", "name": "Варнелл"}, -{"usage": "world", "name": "Варнер"}, -{"usage": "world", "name": "Варн"}, -{"usage": "world", "name": "Варт"}, -{"usage": "world", "name": "Варшава"}, -{"usage": "world", "name": "Васай"}, -{"usage": "world", "name": "Васисса"}, -{"usage": "world", "name": "Васкес"}, -{"usage": "world", "name": "Васком"}, -{"usage": "world", "name": "Васкотт"}, -{"usage": "world", "name": "Васко"}, -{"usage": "world", "name": "Вассар"}, -{"usage": "world", "name": "Вассон"}, -{"usage": "world", "name": "Васс"}, -{"usage": "world", "name": "Васта"}, -{"usage": "world", "name": "Вастелла"}, -{"usage": "world", "name": "Ватага"}, -{"usage": "world", "name": "Ватерлоо"}, -{"usage": "world", "name": "Ватсека"}, -{"usage": "world", "name": "Ват"}, -{"usage": "world", "name": "Ваутома"}, -{"usage": "world", "name": "Вахайава"}, -{"usage": "world", "name": "Вахоо"}, -{"usage": "world", "name": "Вах"}, -{"usage": "world", "name": "Вачери"}, -{"usage": "world", "name": "Вашингтон"}, -{"usage": "world", "name": "Вашон"}, -{"usage": "world", "name": "Вебер"}, -{"usage": "world", "name": "Веблен"}, -{"usage": "world", "name": "Вебстер"}, -{"usage": "world", "name": "Вевер"}, -{"usage": "world", "name": "Вевэй"}, -{"usage": "world", "name": "Вегас"}, -{"usage": "world", "name": "Вега"}, -{"usage": "world", "name": "Вегита"}, -{"usage": "world", "name": "Веддинг"}, -{"usage": "world", "name": "Ведж"}, -{"usage": "world", "name": "Ведик"}, -{"usage": "world", "name": "Ведоуи"}, -{"usage": "world", "name": "Ведра"}, -{"usage": "world", "name": "Ведрон"}, -{"usage": "world", "name": "Везувий"}, -{"usage": "world", "name": "Вейг"}, -{"usage": "world", "name": "Вейден"}, -{"usage": "world", "name": "Вейдер"}, -{"usage": "world", "name": "Вейдман"}, -{"usage": "world", "name": "Вейл"}, -{"usage": "world", "name": "Веймар"}, -{"usage": "world", "name": "Вейо"}, -{"usage": "world", "name": "Вейр"}, -{"usage": "world", "name": "Вейсерт"}, -{"usage": "world", "name": "Вейспорт"}, -{"usage": "world", "name": "Векс"}, -{"usage": "world", "name": "Велака"}, -{"usage": "world", "name": "Велва"}, -{"usage": "world", "name": "Велда"}, -{"usage": "world", "name": "Велма"}, -{"usage": "world", "name": "Велч"}, -{"usage": "world", "name": "Вел"}, -{"usage": "world", "name": "Венанго"}, -{"usage": "world", "name": "Веначи"}, -{"usage": "world", "name": "Вена"}, -{"usage": "world", "name": "Вендель"}, -{"usage": "world", "name": "Венден"}, -{"usage": "world", "name": "Вендовер"}, -{"usage": "world", "name": "Венеди"}, -{"usage": "world", "name": "Венедошия"}, -{"usage": "world", "name": "Венера"}, -{"usage": "world", "name": "Венета"}, -{"usage": "world", "name": "Венети"}, -{"usage": "world", "name": "Венециан"}, -{"usage": "world", "name": "Венеция"}, -{"usage": "world", "name": "Венис"}, -{"usage": "world", "name": "Вентнор"}, -{"usage": "world", "name": "Вентура"}, -{"usage": "world", "name": "Вентурия"}, -{"usage": "world", "name": "Верано"}, -{"usage": "world", "name": "Вера"}, -{"usage": "world", "name": "Вербена"}, -{"usage": "world", "name": "Вергас"}, -{"usage": "world", "name": "Вергиль"}, -{"usage": "world", "name": "Верда"}, -{"usage": "world", "name": "Вердел"}, -{"usage": "world", "name": "Верден"}, -{"usage": "world", "name": "Вердери"}, -{"usage": "world", "name": "Верде"}, -{"usage": "world", "name": "Вердженес"}, -{"usage": "world", "name": "Вердигриз"}, -{"usage": "world", "name": "Вердигр"}, -{"usage": "world", "name": "Верди"}, -{"usage": "world", "name": "Вердон"}, -{"usage": "world", "name": "Веркин"}, -{"usage": "world", "name": "Вермилен"}, -{"usage": "world", "name": "Вермильон"}, -{"usage": "world", "name": "Вермонт"}, -{"usage": "world", "name": "Вернал"}, -{"usage": "world", "name": "Верна"}, -{"usage": "world", "name": "Вернер"}, -{"usage": "world", "name": "Верния"}, -{"usage": "world", "name": "Вернония"}, -{"usage": "world", "name": "Вернон"}, -{"usage": "world", "name": "Вернь"}, -{"usage": "world", "name": "Верн"}, -{"usage": "world", "name": "Верона"}, -{"usage": "world", "name": "Веро"}, -{"usage": "world", "name": "Верпланк"}, -{"usage": "world", "name": "Веррет"}, -{"usage": "world", "name": "Версаль"}, -{"usage": "world", "name": "Верт"}, -{"usage": "world", "name": "Верхален"}, -{"usage": "world", "name": "Веспер"}, -{"usage": "world", "name": "Вессинг"}, -{"usage": "world", "name": "Вессон"}, -{"usage": "world", "name": "Веставия"}, -{"usage": "world", "name": "Вестал"}, -{"usage": "world", "name": "Веста"}, -{"usage": "world", "name": "Вестерло"}, -{"usage": "world", "name": "Вестерн"}, -{"usage": "world", "name": "Вестер"}, -{"usage": "world", "name": "Вестланд"}, -{"usage": "world", "name": "Вестминстерский"}, -{"usage": "world", "name": "Вестмор"}, -{"usage": "world", "name": "Вестфалия"}, -{"usage": "world", "name": "Вестфир"}, -{"usage": "world", "name": "Вестфолл"}, -{"usage": "world", "name": "Вестчестер"}, -{"usage": "world", "name": "Вест"}, -{"usage": "world", "name": "Ветал"}, -{"usage": "world", "name": "Вета"}, -{"usage": "world", "name": "Ветеран"}, -{"usage": "world", "name": "Вея"}, -{"usage": "world", "name": "Виано"}, -{"usage": "world", "name": "Виан"}, -{"usage": "world", "name": "Виббард"}, -{"usage": "world", "name": "Вибернум"}, -{"usage": "world", "name": "Виборас"}, -{"usage": "world", "name": "Вивьен"}, -{"usage": "world", "name": "Вигвам"}, -{"usage": "world", "name": "Виго"}, -{"usage": "world", "name": "Вигус"}, -{"usage": "world", "name": "Видаерри"}, -{"usage": "world", "name": "Видал"}, -{"usage": "world", "name": "Вида"}, -{"usage": "world", "name": "Видеркер"}, -{"usage": "world", "name": "Видер"}, -{"usage": "world", "name": "Видетт"}, -{"usage": "world", "name": "Видор"}, -{"usage": "world", "name": "Видрин"}, -{"usage": "world", "name": "Виза"}, -{"usage": "world", "name": "Визнер"}, -{"usage": "world", "name": "Викинг"}, -{"usage": "world", "name": "Вики"}, -{"usage": "world", "name": "Викко"}, -{"usage": "world", "name": "Виклифф"}, -{"usage": "world", "name": "Викофф"}, -{"usage": "world", "name": "Виктория"}, -{"usage": "world", "name": "Виктори"}, -{"usage": "world", "name": "Виктор"}, -{"usage": "world", "name": "Вик"}, -{"usage": "world", "name": "Вилас"}, -{"usage": "world", "name": "Виллалба"}, -{"usage": "world", "name": "Вилланова"}, -{"usage": "world", "name": "Виллано"}, -{"usage": "world", "name": "Виллард"}, -{"usage": "world", "name": "Вилла"}, -{"usage": "world", "name": "Виллидж"}, -{"usage": "world", "name": "Виллиска"}, -{"usage": "world", "name": "Вилли"}, -{"usage": "world", "name": "Вилль"}, -{"usage": "world", "name": "Вилмар"}, -{"usage": "world", "name": "Вилмер"}, -{"usage": "world", "name": "Вилмор"}, -{"usage": "world", "name": "Вилония"}, -{"usage": "world", "name": "Вильма"}, -{"usage": "world", "name": "Вильна"}, -{"usage": "world", "name": "Вильно"}, -{"usage": "world", "name": "Вильянуэва"}, -{"usage": "world", "name": "Вими"}, -{"usage": "world", "name": "Винал"}, -{"usage": "world", "name": "Вина"}, -{"usage": "world", "name": "Виндзор"}, -{"usage": "world", "name": "Винегар"}, -{"usage": "world", "name": "Вининг"}, -{"usage": "world", "name": "Винита"}, -{"usage": "world", "name": "Винкельман"}, -{"usage": "world", "name": "Винкен"}, -{"usage": "world", "name": "Винко"}, -{"usage": "world", "name": "Винланд"}, -{"usage": "world", "name": "Виннебаго"}, -{"usage": "world", "name": "Винн"}, -{"usage": "world", "name": "Винокур"}, -{"usage": "world", "name": "Винона"}, -{"usage": "world", "name": "Винот"}, -{"usage": "world", "name": "Винсеннес"}, -{"usage": "world", "name": "Винсент"}, -{"usage": "world", "name": "Винсон"}, -{"usage": "world", "name": "Винта"}, -{"usage": "world", "name": "Винтон"}, -{"usage": "world", "name": "Винчестер"}, -{"usage": "world", "name": "Виола"}, -{"usage": "world", "name": "Випер"}, -{"usage": "world", "name": "Виргиния"}, -{"usage": "world", "name": "Виргин"}, -{"usage": "world", "name": "Вирден"}, -{"usage": "world", "name": "Вирджелл"}, -{"usage": "world", "name": "Вирджилина"}, -{"usage": "world", "name": "Вироква"}, -{"usage": "world", "name": "Вирсавия"}, -{"usage": "world", "name": "Висалия"}, -{"usage": "world", "name": "Вискассет"}, -{"usage": "world", "name": "Виски"}, -{"usage": "world", "name": "Висконсин"}, -{"usage": "world", "name": "Виста"}, -{"usage": "world", "name": "Витамс"}, -{"usage": "world", "name": "Витман"}, -{"usage": "world", "name": "Витока"}, -{"usage": "world", "name": "Витроу"}, -{"usage": "world", "name": "Виттен"}, -{"usage": "world", "name": "Витт"}, -{"usage": "world", "name": "Вифания"}, -{"usage": "world", "name": "Вифлеем"}, -{"usage": "world", "name": "Виши"}, -{"usage": "world", "name": "Вия"}, -{"usage": "world", "name": "Ви"}, -{"usage": "world", "name": "Влек"}, -{"usage": "world", "name": "Вобурн"}, -{"usage": "world", "name": "Водрей"}, -{"usage": "world", "name": "Вока"}, -{"usage": "world", "name": "Воклюз"}, -{"usage": "world", "name": "Волант"}, -{"usage": "world", "name": "Волборг"}, -{"usage": "world", "name": "Волвертон"}, -{"usage": "world", "name": "Волга"}, -{"usage": "world", "name": "Воленс"}, -{"usage": "world", "name": "Волин"}, -{"usage": "world", "name": "Волкано"}, -{"usage": "world", "name": "Волк"}, -{"usage": "world", "name": "Волланд"}, -{"usage": "world", "name": "Воло"}, -{"usage": "world", "name": "Вольта"}, -{"usage": "world", "name": "Вольт"}, -{"usage": "world", "name": "Воль"}, -{"usage": "world", "name": "Вона"}, -{"usage": "world", "name": "Вонвок"}, -{"usage": "world", "name": "Вонни"}, -{"usage": "world", "name": "Вон"}, -{"usage": "world", "name": "Воорхис"}, -{"usage": "world", "name": "Вортекс"}, -{"usage": "world", "name": "Восс"}, -{"usage": "world", "name": "Вотан"}, -{"usage": "world", "name": "Вото"}, -{"usage": "world", "name": "Воф"}, -{"usage": "world", "name": "Врангель"}, -{"usage": "world", "name": "Вреден"}, -{"usage": "world", "name": "Вудард"}, -{"usage": "world", "name": "Вудин"}, -{"usage": "world", "name": "Вуди"}, -{"usage": "world", "name": "Вудлин"}, -{"usage": "world", "name": "Вудлиф"}, -{"usage": "world", "name": "Вудлон"}, -{"usage": "world", "name": "Вудмир"}, -{"usage": "world", "name": "Вудро"}, -{"usage": "world", "name": "Вудсток"}, -{"usage": "world", "name": "Вудфин"}, -{"usage": "world", "name": "Вуд"}, -{"usage": "world", "name": "Вук"}, -{"usage": "world", "name": "Вулверин"}, -{"usage": "world", "name": "Вулкан"}, -{"usage": "world", "name": "Вуллошет"}, -{"usage": "world", "name": "Вулси"}, -{"usage": "world", "name": "Вульф"}, -{"usage": "world", "name": "Вул"}, -{"usage": "world", "name": "Вунсокет"}, -{"usage": "world", "name": "Вурт"}, -{"usage": "world", "name": "Вусанг"}, -{"usage": "world", "name": "Вустер"}, -{"usage": "world", "name": "Выборг"}, -{"usage": "world", "name": "Вьекес"}, -{"usage": "world", "name": "Вьехо"}, -{"usage": "world", "name": "Вью"}, -{"usage": "world", "name": "Вэйл"}, -{"usage": "world", "name": "Вэймарт"}, -{"usage": "world", "name": "Вэй"}, -{"usage": "world", "name": "Вэнс"}, -{"usage": "world", "name": "Вэн"}, -{"usage": "world", "name": "Вэр"}, -{"usage": "world", "name": "Вю"}, -{"usage": "world", "name": "Гаастра"}, -{"usage": "world", "name": "Габбетт"}, -{"usage": "world", "name": "Габбс"}, -{"usage": "world", "name": "Гавайи"}, -{"usage": "world", "name": "Гавана"}, -{"usage": "world", "name": "Гавань"}, -{"usage": "world", "name": "Гаварден"}, -{"usage": "world", "name": "Гавиота"}, -{"usage": "world", "name": "Гаворт"}, -{"usage": "world", "name": "Гавриил"}, -{"usage": "world", "name": "Гавр"}, -{"usage": "world", "name": "Гаген"}, -{"usage": "world", "name": "Гаг"}, -{"usage": "world", "name": "Гаджби"}, -{"usage": "world", "name": "Гадсден"}, -{"usage": "world", "name": "Гаен"}, -{"usage": "world", "name": "Газа"}, -{"usage": "world", "name": "Газель"}, -{"usage": "world", "name": "Газ"}, -{"usage": "world", "name": "Гайавата"}, -{"usage": "world", "name": "Гайд"}, -{"usage": "world", "name": "Гаймон"}, -{"usage": "world", "name": "Гай"}, -{"usage": "world", "name": "Гакона"}, -{"usage": "world", "name": "Галакс"}, -{"usage": "world", "name": "Галатео"}, -{"usage": "world", "name": "Галатия"}, -{"usage": "world", "name": "Галва"}, -{"usage": "world", "name": "Галена"}, -{"usage": "world", "name": "Галивантс"}, -{"usage": "world", "name": "Галиен"}, -{"usage": "world", "name": "Галилея"}, -{"usage": "world", "name": "Галион"}, -{"usage": "world", "name": "Галифакс"}, -{"usage": "world", "name": "Галлатин"}, -{"usage": "world", "name": "Галлауэй"}, -{"usage": "world", "name": "Галлей"}, -{"usage": "world", "name": "Галлетт"}, -{"usage": "world", "name": "Галлинас"}, -{"usage": "world", "name": "Галлион"}, -{"usage": "world", "name": "Галлиполис"}, -{"usage": "world", "name": "Галлицин"}, -{"usage": "world", "name": "Галли"}, -{"usage": "world", "name": "Галлман"}, -{"usage": "world", "name": "Галлоуэй"}, -{"usage": "world", "name": "Галл"}, -{"usage": "world", "name": "Галнэр"}, -{"usage": "world", "name": "Галт"}, -{"usage": "world", "name": "Галф"}, -{"usage": "world", "name": "Галч"}, -{"usage": "world", "name": "Гальвес"}, -{"usage": "world", "name": "Гальяно"}, -{"usage": "world", "name": "Гамак"}, -{"usage": "world", "name": "Гамалиил"}, -{"usage": "world", "name": "Гамбелл"}, -{"usage": "world", "name": "Гамбиер"}, -{"usage": "world", "name": "Гамбрилл"}, -{"usage": "world", "name": "Гамерко"}, -{"usage": "world", "name": "Гамильтон"}, -{"usage": "world", "name": "Гамлет"}, -{"usage": "world", "name": "Гамлог"}, -{"usage": "world", "name": "Гам"}, -{"usage": "world", "name": "Ганадо"}, -{"usage": "world", "name": "Ганг"}, -{"usage": "world", "name": "Гандер"}, -{"usage": "world", "name": "Ганди"}, -{"usage": "world", "name": "Ганлок"}, -{"usage": "world", "name": "Ганнетт"}, -{"usage": "world", "name": "Ганнибал"}, -{"usage": "world", "name": "Ганнисон"}, -{"usage": "world", "name": "Ганновер"}, -{"usage": "world", "name": "Ганн"}, -{"usage": "world", "name": "Гано"}, -{"usage": "world", "name": "Гансвурт"}, -{"usage": "world", "name": "Ганс"}, -{"usage": "world", "name": "Ганта"}, -{"usage": "world", "name": "Ган"}, -{"usage": "world", "name": "Гарбер"}, -{"usage": "world", "name": "Гарвард"}, -{"usage": "world", "name": "Гарвин"}, -{"usage": "world", "name": "Гарвуд"}, -{"usage": "world", "name": "Гардар"}, -{"usage": "world", "name": "Гардена"}, -{"usage": "world", "name": "Гарден"}, -{"usage": "world", "name": "Гардинер"}, -{"usage": "world", "name": "Гарди"}, -{"usage": "world", "name": "Гарднер"}, -{"usage": "world", "name": "Гард"}, -{"usage": "world", "name": "Гарибальди"}, -{"usage": "world", "name": "Гарита"}, -{"usage": "world", "name": "Гарлем"}, -{"usage": "world", "name": "Гарлин"}, -{"usage": "world", "name": "Гарлок"}, -{"usage": "world", "name": "Гармони"}, -{"usage": "world", "name": "Гарнавилло"}, -{"usage": "world", "name": "Гарнейлл"}, -{"usage": "world", "name": "Гарнер"}, -{"usage": "world", "name": "Гарнетт"}, -{"usage": "world", "name": "Гарнизон"}, -{"usage": "world", "name": "Гарни"}, -{"usage": "world", "name": "Гарольд"}, -{"usage": "world", "name": "Гаро"}, -{"usage": "world", "name": "Гаррет"}, -{"usage": "world", "name": "Гаррочалес"}, -{"usage": "world", "name": "Гарсия"}, -{"usage": "world", "name": "Гарфилд"}, -{"usage": "world", "name": "Гар"}, -{"usage": "world", "name": "Гасиенда"}, -{"usage": "world", "name": "Гаске"}, -{"usage": "world", "name": "Гаскин"}, -{"usage": "world", "name": "Гаскойн"}, -{"usage": "world", "name": "Гасконада"}, -{"usage": "world", "name": "Гасконь"}, -{"usage": "world", "name": "Гаск"}, -{"usage": "world", "name": "Гаспер"}, -{"usage": "world", "name": "Гаспорт"}, -{"usage": "world", "name": "Гасс"}, -{"usage": "world", "name": "Гастингс"}, -{"usage": "world", "name": "Гастин"}, -{"usage": "world", "name": "Гастония"}, -{"usage": "world", "name": "Гастон"}, -{"usage": "world", "name": "Гатлин"}, -{"usage": "world", "name": "Гатлифф"}, -{"usage": "world", "name": "Гатос"}, -{"usage": "world", "name": "Гатри"}, -{"usage": "world", "name": "Гаттман"}, -{"usage": "world", "name": "Гаузе"}, -{"usage": "world", "name": "Гауэр"}, -{"usage": "world", "name": "Гаффи"}, -{"usage": "world", "name": "Гаффни"}, -{"usage": "world", "name": "Гаханна"}, -{"usage": "world", "name": "Гвалала"}, -{"usage": "world", "name": "Гвасти"}, -{"usage": "world", "name": "Гвен"}, -{"usage": "world", "name": "Гвинда"}, -{"usage": "world", "name": "Гвинед"}, -{"usage": "world", "name": "Гвинея"}, -{"usage": "world", "name": "Гвиннер"}, -{"usage": "world", "name": "Гвинн"}, -{"usage": "world", "name": "Гвинн"}, -{"usage": "world", "name": "Гебо"}, -{"usage": "world", "name": "Геддес"}, -{"usage": "world", "name": "Гейблс"}, -{"usage": "world", "name": "Гейгер"}, -{"usage": "world", "name": "Гейдан"}, -{"usage": "world", "name": "Гейдж"}, -{"usage": "world", "name": "Гейзер"}, -{"usage": "world", "name": "Гейли"}, -{"usage": "world", "name": "Гейлорд"}, -{"usage": "world", "name": "Гейлс"}, -{"usage": "world", "name": "Гейл"}, -{"usage": "world", "name": "Гейм"}, -{"usage": "world", "name": "Гейнс"}, -{"usage": "world", "name": "Гейсмар"}, -{"usage": "world", "name": "Гейс"}, -{"usage": "world", "name": "Гейтерс"}, -{"usage": "world", "name": "Гейт"}, -{"usage": "world", "name": "Гекла"}, -{"usage": "world", "name": "Гекл"}, -{"usage": "world", "name": "Гектор"}, -{"usage": "world", "name": "Геллер"}, -{"usage": "world", "name": "Гематит"}, -{"usage": "world", "name": "Гем"}, -{"usage": "world", "name": "Генриетта"}, -{"usage": "world", "name": "Генри"}, -{"usage": "world", "name": "Гент"}, -{"usage": "world", "name": "Генуя"}, -{"usage": "world", "name": "Геральд"}, -{"usage": "world", "name": "Гербер"}, -{"usage": "world", "name": "Геринг"}, -{"usage": "world", "name": "Геркулес"}, -{"usage": "world", "name": "Герлах"}, -{"usage": "world", "name": "Герли"}, -{"usage": "world", "name": "Германия"}, -{"usage": "world", "name": "Германн"}, -{"usage": "world", "name": "Германо"}, -{"usage": "world", "name": "Герман"}, -{"usage": "world", "name": "Гермфаск"}, -{"usage": "world", "name": "Герни"}, -{"usage": "world", "name": "Гернси"}, -{"usage": "world", "name": "Геррик"}, -{"usage": "world", "name": "Герстер"}, -{"usage": "world", "name": "Герти"}, -{"usage": "world", "name": "Гертон"}, -{"usage": "world", "name": "Гесси"}, -{"usage": "world", "name": "Гесс"}, -{"usage": "world", "name": "Геттис"}, -{"usage": "world", "name": "Гиампом"}, -{"usage": "world", "name": "Гиббон"}, -{"usage": "world", "name": "Гиббс"}, -{"usage": "world", "name": "Гибралтар"}, -{"usage": "world", "name": "Гибсония"}, -{"usage": "world", "name": "Гибсон"}, -{"usage": "world", "name": "Гибс"}, -{"usage": "world", "name": "Гигиена"}, -{"usage": "world", "name": "Гиг"}, -{"usage": "world", "name": "Гиддингс"}, -{"usage": "world", "name": "Гидеон"}, -{"usage": "world", "name": "Гидро"}, -{"usage": "world", "name": "Гид"}, -{"usage": "world", "name": "Гизела"}, -{"usage": "world", "name": "Гикори"}, -{"usage": "world", "name": "Гиларк"}, -{"usage": "world", "name": "Гила"}, -{"usage": "world", "name": "Гилбер"}, -{"usage": "world", "name": "Гилби"}, -{"usage": "world", "name": "Гилго"}, -{"usage": "world", "name": "Гилд"}, -{"usage": "world", "name": "Гилеад"}, -{"usage": "world", "name": "Гилкрест"}, -{"usage": "world", "name": "Гилкрист"}, -{"usage": "world", "name": "Гиллеспи"}, -{"usage": "world", "name": "Гиллиам"}, -{"usage": "world", "name": "Гиллиатт"}, -{"usage": "world", "name": "Гиллис"}, -{"usage": "world", "name": "Гиллули"}, -{"usage": "world", "name": "Гиллхэм"}, -{"usage": "world", "name": "Гилл"}, -{"usage": "world", "name": "Гилман"}, -{"usage": "world", "name": "Гилмер"}, -{"usage": "world", "name": "Гилмор"}, -{"usage": "world", "name": "Гилпин"}, -{"usage": "world", "name": "Гилрой"}, -{"usage": "world", "name": "Гилсум"}, -{"usage": "world", "name": "Гилтнер"}, -{"usage": "world", "name": "Гилт"}, -{"usage": "world", "name": "Гилфорд"}, -{"usage": "world", "name": "Гильберт"}, -{"usage": "world", "name": "Гильбоа"}, -{"usage": "world", "name": "Гильдия"}, -{"usage": "world", "name": "Гил"}, -{"usage": "world", "name": "Гин"}, -{"usage": "world", "name": "Гипс"}, -{"usage": "world", "name": "Гирвин"}, -{"usage": "world", "name": "Гирд"}, -{"usage": "world", "name": "Гири"}, -{"usage": "world", "name": "Гирт"}, -{"usage": "world", "name": "Гиффорд"}, -{"usage": "world", "name": "Ги"}, -{"usage": "world", "name": "Гладвин"}, -{"usage": "world", "name": "Гладден"}, -{"usage": "world", "name": "Гладиола"}, -{"usage": "world", "name": "Гладуин"}, -{"usage": "world", "name": "Глад"}, -{"usage": "world", "name": "Глазго"}, -{"usage": "world", "name": "Глайд"}, -{"usage": "world", "name": "Гламис"}, -{"usage": "world", "name": "Гландорф"}, -{"usage": "world", "name": "Гланси"}, -{"usage": "world", "name": "Гларус"}, -{"usage": "world", "name": "Гласко"}, -{"usage": "world", "name": "Гласс"}, -{"usage": "world", "name": "Гластон"}, -{"usage": "world", "name": "Глас"}, -{"usage": "world", "name": "Глез"}, -{"usage": "world", "name": "Глейд"}, -{"usage": "world", "name": "Глейшер"}, -{"usage": "world", "name": "Гленбар"}, -{"usage": "world", "name": "Гленвар"}, -{"usage": "world", "name": "Гленвил"}, -{"usage": "world", "name": "Глендайв"}, -{"usage": "world", "name": "Глендеви"}, -{"usage": "world", "name": "Глендон"}, -{"usage": "world", "name": "Глендора"}, -{"usage": "world", "name": "Глендо"}, -{"usage": "world", "name": "Гленко"}, -{"usage": "world", "name": "Гленкросс"}, -{"usage": "world", "name": "Гленлок"}, -{"usage": "world", "name": "Гленмора"}, -{"usage": "world", "name": "Гленни"}, -{"usage": "world", "name": "Гленн"}, -{"usage": "world", "name": "Гленолден"}, -{"usage": "world", "name": "Гленома"}, -{"usage": "world", "name": "Гленпул"}, -{"usage": "world", "name": "Глентана"}, -{"usage": "world", "name": "Гленхем"}, -{"usage": "world", "name": "Гленэр"}, -{"usage": "world", "name": "Глен"}, -{"usage": "world", "name": "Глидден"}, -{"usage": "world", "name": "Глид"}, -{"usage": "world", "name": "Глиндон"}, -{"usage": "world", "name": "Глинн"}, -{"usage": "world", "name": "Глисон"}, -{"usage": "world", "name": "Глоастер"}, -{"usage": "world", "name": "Глоба"}, -{"usage": "world", "name": "Гловер"}, -{"usage": "world", "name": "Глория"}, -{"usage": "world", "name": "Глори"}, -{"usage": "world", "name": "Глостер"}, -{"usage": "world", "name": "Гло"}, -{"usage": "world", "name": "Глук"}, -{"usage": "world", "name": "Глэди"}, -{"usage": "world", "name": "Глэйзер"}, -{"usage": "world", "name": "Глюк"}, -{"usage": "world", "name": "Гнаден"}, -{"usage": "world", "name": "Гобер"}, -{"usage": "world", "name": "Гоблер"}, -{"usage": "world", "name": "Гоблс"}, -{"usage": "world", "name": "Гован"}, -{"usage": "world", "name": "Говард"}, -{"usage": "world", "name": "Говерн"}, -{"usage": "world", "name": "Гованда"}, -{"usage": "world", "name": "Годвин"}, -{"usage": "world", "name": "Годдард"}, -{"usage": "world", "name": "Годли"}, -{"usage": "world", "name": "Годфри"}, -{"usage": "world", "name": "Гоессел"}, -{"usage": "world", "name": "Голва"}, -{"usage": "world", "name": "Голдвейн"}, -{"usage": "world", "name": "Голденрод"}, -{"usage": "world", "name": "Голден"}, -{"usage": "world", "name": "Голдман"}, -{"usage": "world", "name": "Голдонна"}, -{"usage": "world", "name": "Голдсби"}, -{"usage": "world", "name": "Голдсмит"}, -{"usage": "world", "name": "Голдтуэйт"}, -{"usage": "world", "name": "Голд"}, -{"usage": "world", "name": "Голета"}, -{"usage": "world", "name": "Голиед"}, -{"usage": "world", "name": "Голинда"}, -{"usage": "world", "name": "Голи"}, -{"usage": "world", "name": "Голконда"}, -{"usage": "world", "name": "Голландия"}, -{"usage": "world", "name": "Головин"}, -{"usage": "world", "name": "Голсон"}, -{"usage": "world", "name": "Голтри"}, -{"usage": "world", "name": "Голуэй"}, -{"usage": "world", "name": "Гольф"}, -{"usage": "world", "name": "Гольштейн"}, -{"usage": "world", "name": "Гомез"}, -{"usage": "world", "name": "Гомер"}, -{"usage": "world", "name": "Гонвик"}, -{"usage": "world", "name": "Гонигл"}, -{"usage": "world", "name": "Гонолулу"}, -{"usage": "world", "name": "Гонсалес"}, -{"usage": "world", "name": "Горам"}, -{"usage": "world", "name": "Горацио"}, -{"usage": "world", "name": "Горда"}, -{"usage": "world", "name": "Гордон"}, -{"usage": "world", "name": "Гордо"}, -{"usage": "world", "name": "Горизонт"}, -{"usage": "world", "name": "Горин"}, -{"usage": "world", "name": "Гори"}, -{"usage": "world", "name": "Горман"}, -{"usage": "world", "name": "Горн"}, -{"usage": "world", "name": "Горст"}, -{"usage": "world", "name": "Гортензия"}, -{"usage": "world", "name": "Горум"}, -{"usage": "world", "name": "Гор"}, -{"usage": "world", "name": "Госнелл"}, -{"usage": "world", "name": "Госпорт"}, -{"usage": "world", "name": "Госс"}, -{"usage": "world", "name": "Гост"}, -{"usage": "world", "name": "Готам"}, -{"usage": "world", "name": "Готебо"}, -{"usage": "world", "name": "Готен"}, -{"usage": "world", "name": "Готье"}, -{"usage": "world", "name": "Гоув"}, -{"usage": "world", "name": "Гоудо"}, -{"usage": "world", "name": "Гоула"}, -{"usage": "world", "name": "Гоуэн"}, -{"usage": "world", "name": "Гофф"}, -{"usage": "world", "name": "Гоф"}, -{"usage": "world", "name": "Гошен"}, -{"usage": "world", "name": "Гошут"}, -{"usage": "world", "name": "Граббс"}, -{"usage": "world", "name": "Грабилл"}, -{"usage": "world", "name": "Граветт"}, -{"usage": "world", "name": "Гравити"}, -{"usage": "world", "name": "Градец"}, -{"usage": "world", "name": "Грайдер"}, -{"usage": "world", "name": "Граймс"}, -{"usage": "world", "name": "Грайн"}, -{"usage": "world", "name": "Грама"}, -{"usage": "world", "name": "Грамблинг"}, -{"usage": "world", "name": "Грамерси"}, -{"usage": "world", "name": "Грампиан"}, -{"usage": "world", "name": "Гранада"}, -{"usage": "world", "name": "Гранде"}, -{"usage": "world", "name": "Гранджено"}, -{"usage": "world", "name": "Грандин"}, -{"usage": "world", "name": "Гранди"}, -{"usage": "world", "name": "Гранд"}, -{"usage": "world", "name": "Гранит"}, -{"usage": "world", "name": "Граннис"}, -{"usage": "world", "name": "Грантли"}, -{"usage": "world", "name": "Грантон"}, -{"usage": "world", "name": "Грант"}, -{"usage": "world", "name": "Гран"}, -{"usage": "world", "name": "Грасмир"}, -{"usage": "world", "name": "Грасон"}, -{"usage": "world", "name": "Грасси"}, -{"usage": "world", "name": "Грасс"}, -{"usage": "world", "name": "Гратон"}, -{"usage": "world", "name": "Грат"}, -{"usage": "world", "name": "Граунд"}, -{"usage": "world", "name": "Граус"}, -{"usage": "world", "name": "Грау"}, -{"usage": "world", "name": "Графорд"}, -{"usage": "world", "name": "Графтон"}, -{"usage": "world", "name": "Графф"}, -{"usage": "world", "name": "Граф"}, -{"usage": "world", "name": "Грегорио"}, -{"usage": "world", "name": "Грегори"}, -{"usage": "world", "name": "Грегор"}, -{"usage": "world", "name": "Грейвелли"}, -{"usage": "world", "name": "Грейвуа"}, -{"usage": "world", "name": "Грейв"}, -{"usage": "world", "name": "Грейди"}, -{"usage": "world", "name": "Грейнджер"}, -{"usage": "world", "name": "Грейндж"}, -{"usage": "world", "name": "Грейнола"}, -{"usage": "world", "name": "Грейп"}, -{"usage": "world", "name": "Грейси"}, -{"usage": "world", "name": "Грейс"}, -{"usage": "world", "name": "Грейтер"}, -{"usage": "world", "name": "Грейшез"}, -{"usage": "world", "name": "Грейшет"}, -{"usage": "world", "name": "Грей"}, -{"usage": "world", "name": "Гренада"}, -{"usage": "world", "name": "Гренби"}, -{"usage": "world", "name": "Гренландия"}, -{"usage": "world", "name": "Гренола"}, -{"usage": "world", "name": "Гренора"}, -{"usage": "world", "name": "Грено"}, -{"usage": "world", "name": "Грен"}, -{"usage": "world", "name": "Гресстон"}, -{"usage": "world", "name": "Грес"}, -{"usage": "world", "name": "Гретна"}, -{"usage": "world", "name": "Грец"}, -{"usage": "world", "name": "Грешам"}, -{"usage": "world", "name": "Григгс"}, -{"usage": "world", "name": "Григла"}, -{"usage": "world", "name": "Григстон"}, -{"usage": "world", "name": "Гридли"}, -{"usage": "world", "name": "Гриззли"}, -{"usage": "world", "name": "Гриз"}, -{"usage": "world", "name": "Грили"}, -{"usage": "world", "name": "Гримсли"}, -{"usage": "world", "name": "Гринакрс"}, -{"usage": "world", "name": "Гринап"}, -{"usage": "world", "name": "Гринбак"}, -{"usage": "world", "name": "Гринбанк"}, -{"usage": "world", "name": "Гринбелт"}, -{"usage": "world", "name": "Гринбуш"}, -{"usage": "world", "name": "Гринвальд"}, -{"usage": "world", "name": "Гринвич"}, -{"usage": "world", "name": "Гринго"}, -{"usage": "world", "name": "Гринд"}, -{"usage": "world", "name": "Гриневер"}, -{"usage": "world", "name": "Гринкасл"}, -{"usage": "world", "name": "Гринлиф"}, -{"usage": "world", "name": "Гринлон"}, -{"usage": "world", "name": "Гриннел"}, -{"usage": "world", "name": "Гринтоп"}, -{"usage": "world", "name": "Грин"}, -{"usage": "world", "name": "Грир"}, -{"usage": "world", "name": "Грисволд"}, -{"usage": "world", "name": "Грис"}, -{"usage": "world", "name": "Грит"}, -{"usage": "world", "name": "Грифон"}, -{"usage": "world", "name": "Грифтон"}, -{"usage": "world", "name": "Гриффит"}, -{"usage": "world", "name": "Грования"}, -{"usage": "world", "name": "Гровер"}, -{"usage": "world", "name": "Гровонт"}, -{"usage": "world", "name": "Гросбек"}, -{"usage": "world", "name": "Гросвенор"}, -{"usage": "world", "name": "Гросс"}, -{"usage": "world", "name": "Гротон"}, -{"usage": "world", "name": "Гротто"}, -{"usage": "world", "name": "Гроув"}, -{"usage": "world", "name": "Гроулер"}, -{"usage": "world", "name": "Грувер"}, -{"usage": "world", "name": "Груен"}, -{"usage": "world", "name": "Груетли"}, -{"usage": "world", "name": "Грулки"}, -{"usage": "world", "name": "Грулла"}, -{"usage": "world", "name": "Грум"}, -{"usage": "world", "name": "Грунди"}, -{"usage": "world", "name": "Грэйлинг"}, -{"usage": "world", "name": "Грэйт"}, -{"usage": "world", "name": "Грэй"}, -{"usage": "world", "name": "Грэнтэм"}, -{"usage": "world", "name": "Грэхем"}, -{"usage": "world", "name": "Грю"}, -{"usage": "world", "name": "Гуадалупе"}, -{"usage": "world", "name": "Гуайнабо"}, -{"usage": "world", "name": "Гуайябаль"}, -{"usage": "world", "name": "Гуайянилья"}, -{"usage": "world", "name": "Гуаника"}, -{"usage": "world", "name": "Гуаяма"}, -{"usage": "world", "name": "Гувернер"}, -{"usage": "world", "name": "Гудвин"}, -{"usage": "world", "name": "Гуделл"}, -{"usage": "world", "name": "Гуденау"}, -{"usage": "world", "name": "Гудзон"}, -{"usage": "world", "name": "Гудиер"}, -{"usage": "world", "name": "Гудинг"}, -{"usage": "world", "name": "Гудлетт"}, -{"usage": "world", "name": "Гудлоу"}, -{"usage": "world", "name": "Гудман"}, -{"usage": "world", "name": "Гуднайт"}, -{"usage": "world", "name": "Гудно"}, -{"usage": "world", "name": "Гудньюс"}, -{"usage": "world", "name": "Гудридж"}, -{"usage": "world", "name": "Гудрич"}, -{"usage": "world", "name": "Гудспринг"}, -{"usage": "world", "name": "Гудуэлл"}, -{"usage": "world", "name": "Гуд"}, -{"usage": "world", "name": "Гуин"}, -{"usage": "world", "name": "Гулдинг"}, -{"usage": "world", "name": "Гулд"}, -{"usage": "world", "name": "Гуливер"}, -{"usage": "world", "name": "Гулкана"}, -{"usage": "world", "name": "Гумбольдт"}, -{"usage": "world", "name": "Гурабо"}, -{"usage": "world", "name": "Гурон"}, -{"usage": "world", "name": "Гур"}, -{"usage": "world", "name": "Гуспорт"}, -{"usage": "world", "name": "Густавус"}, -{"usage": "world", "name": "Гусь"}, -{"usage": "world", "name": "Гуттен"}, -{"usage": "world", "name": "Гуч"}, -{"usage": "world", "name": "Гуэрра"}, -{"usage": "world", "name": "Гу"}, -{"usage": "world", "name": "Гэй"}, -{"usage": "world", "name": "Гэлбрейт"}, -{"usage": "world", "name": "Гэллап"}, -{"usage": "world", "name": "Гэмбл"}, -{"usage": "world", "name": "Гэп"}, -{"usage": "world", "name": "Гэрдон"}, -{"usage": "world", "name": "Гэри"}, -{"usage": "world", "name": "Гюнтер"}, -{"usage": "world", "name": "Гюттер"}, -{"usage": "world", "name": "Дабл"}, -{"usage": "world", "name": "Дабни"}, -{"usage": "world", "name": "Дабук"}, -{"usage": "world", "name": "Давант"}, -{"usage": "world", "name": "Давен"}, -{"usage": "world", "name": "Давид"}, -{"usage": "world", "name": "Дав"}, -{"usage": "world", "name": "Даггер"}, -{"usage": "world", "name": "Дагмар"}, -{"usage": "world", "name": "Дагсборо"}, -{"usage": "world", "name": "Дагуао"}, -{"usage": "world", "name": "Дадли"}, -{"usage": "world", "name": "Даелм"}, -{"usage": "world", "name": "Даенвег"}, -{"usage": "world", "name": "Даетт"}, -{"usage": "world", "name": "Дазей"}, -{"usage": "world", "name": "Дайерс"}, -{"usage": "world", "name": "Дайер"}, -{"usage": "world", "name": "Дайесс"}, -{"usage": "world", "name": "Дайк"}, -{"usage": "world", "name": "Дайм"}, -{"usage": "world", "name": "Дайсарт"}, -{"usage": "world", "name": "Дайтона"}, -{"usage": "world", "name": "Дайтон"}, -{"usage": "world", "name": "Даквойн"}, -{"usage": "world", "name": "Дакетт"}, -{"usage": "world", "name": "Дакома"}, -{"usage": "world", "name": "Даконо"}, -{"usage": "world", "name": "Дакота"}, -{"usage": "world", "name": "Даксбери"}, -{"usage": "world", "name": "Дакула"}, -{"usage": "world", "name": "Дак"}, -{"usage": "world", "name": "Даларк"}, -{"usage": "world", "name": "Далбо"}, -{"usage": "world", "name": "Далворт"}, -{"usage": "world", "name": "Далис"}, -{"usage": "world", "name": "Далия"}, -{"usage": "world", "name": "Далкена"}, -{"usage": "world", "name": "Далкит"}, -{"usage": "world", "name": "Далкур"}, -{"usage": "world", "name": "Даллас"}, -{"usage": "world", "name": "Даллес"}, -{"usage": "world", "name": "Далонега"}, -{"usage": "world", "name": "Далтон"}, -{"usage": "world", "name": "Далхарт"}, -{"usage": "world", "name": "Далцелл"}, -{"usage": "world", "name": "Дальгрен"}, -{"usage": "world", "name": "Дамар"}, -{"usage": "world", "name": "Дамаск"}, -{"usage": "world", "name": "Дамес"}, -{"usage": "world", "name": "Дамфрис"}, -{"usage": "world", "name": "Дам"}, -{"usage": "world", "name": "Дана"}, -{"usage": "world", "name": "Данбар"}, -{"usage": "world", "name": "Данвуди"}, -{"usage": "world", "name": "Дангенесс"}, -{"usage": "world", "name": "Дангэннон"}, -{"usage": "world", "name": "Дандаррач"}, -{"usage": "world", "name": "Дандас"}, -{"usage": "world", "name": "Данджер"}, -{"usage": "world", "name": "Данди"}, -{"usage": "world", "name": "Дандолк"}, -{"usage": "world", "name": "Даневанг"}, -{"usage": "world", "name": "Данеллен"}, -{"usage": "world", "name": "Данес"}, -{"usage": "world", "name": "Данидин"}, -{"usage": "world", "name": "Даниэль"}, -{"usage": "world", "name": "Дания"}, -{"usage": "world", "name": "Данкомб"}, -{"usage": "world", "name": "Данлеви"}, -{"usage": "world", "name": "Данлей"}, -{"usage": "world", "name": "Данлоу"}, -{"usage": "world", "name": "Данлэп"}, -{"usage": "world", "name": "Данмор"}, -{"usage": "world", "name": "Даннеган"}, -{"usage": "world", "name": "Даннеллон"}, -{"usage": "world", "name": "Даннелл"}, -{"usage": "world", "name": "Данниган"}, -{"usage": "world", "name": "Даннинг"}, -{"usage": "world", "name": "Данн"}, -{"usage": "world", "name": "Данпхи"}, -{"usage": "world", "name": "Данрейт"}, -{"usage": "world", "name": "Дансейт"}, -{"usage": "world", "name": "Дансмьюир"}, -{"usage": "world", "name": "Данстейбл"}, -{"usage": "world", "name": "Данте"}, -{"usage": "world", "name": "Дантон"}, -{"usage": "world", "name": "Данферм"}, -{"usage": "world", "name": "Дапуайр"}, -{"usage": "world", "name": "Дара"}, -{"usage": "world", "name": "Дарби"}, -{"usage": "world", "name": "Дарбун"}, -{"usage": "world", "name": "Дарвин"}, -{"usage": "world", "name": "Дарданеллы"}, -{"usage": "world", "name": "Дарден"}, -{"usage": "world", "name": "Дарема"}, -{"usage": "world", "name": "Дариен"}, -{"usage": "world", "name": "Дарко"}, -{"usage": "world", "name": "Дарк"}, -{"usage": "world", "name": "Дарлинг"}, -{"usage": "world", "name": "Дарлов"}, -{"usage": "world", "name": "Дармштадт"}, -{"usage": "world", "name": "Дарнелл"}, -{"usage": "world", "name": "Дарнес"}, -{"usage": "world", "name": "Дарринг"}, -{"usage": "world", "name": "Даррозетт"}, -{"usage": "world", "name": "Дартмут"}, -{"usage": "world", "name": "Дарфур"}, -{"usage": "world", "name": "Дассел"}, -{"usage": "world", "name": "Дастер"}, -{"usage": "world", "name": "Дастин"}, -{"usage": "world", "name": "Дасти"}, -{"usage": "world", "name": "Дата"}, -{"usage": "world", "name": "Датил"}, -{"usage": "world", "name": "Даттон"}, -{"usage": "world", "name": "Датто"}, -{"usage": "world", "name": "Датч"}, -{"usage": "world", "name": "Даулинг"}, -{"usage": "world", "name": "Даунер"}, -{"usage": "world", "name": "Даунинг"}, -{"usage": "world", "name": "Дауни"}, -{"usage": "world", "name": "Даунс"}, -{"usage": "world", "name": "Дафна"}, -{"usage": "world", "name": "Дафтер"}, -{"usage": "world", "name": "Дашер"}, -{"usage": "world", "name": "Дашор"}, -{"usage": "world", "name": "Девайн"}, -{"usage": "world", "name": "Деверо"}, -{"usage": "world", "name": "Деверс"}, -{"usage": "world", "name": "Девил"}, -{"usage": "world", "name": "Девола"}, -{"usage": "world", "name": "Девол"}, -{"usage": "world", "name": "Девон"}, -{"usage": "world", "name": "Девор"}, -{"usage": "world", "name": "Дедхем"}, -{"usage": "world", "name": "Дед"}, -{"usage": "world", "name": "Дездемона"}, -{"usage": "world", "name": "Дезерет"}, -{"usage": "world", "name": "Дейд"}, -{"usage": "world", "name": "Дейзи"}, -{"usage": "world", "name": "Дейкин"}, -{"usage": "world", "name": "Дейли"}, -{"usage": "world", "name": "Дейл"}, -{"usage": "world", "name": "Дейн"}, -{"usage": "world", "name": "Дейретта"}, -{"usage": "world", "name": "Дейри"}, -{"usage": "world", "name": "Дейтон"}, -{"usage": "world", "name": "Декейтер"}, -{"usage": "world", "name": "Декер"}, -{"usage": "world", "name": "Декло"}, -{"usage": "world", "name": "Декл"}, -{"usage": "world", "name": "Дековен"}, -{"usage": "world", "name": "Декора"}, -{"usage": "world", "name": "Декстер"}, -{"usage": "world", "name": "Делаван"}, -{"usage": "world", "name": "Делавэр"}, -{"usage": "world", "name": "Делайт"}, -{"usage": "world", "name": "Деланко"}, -{"usage": "world", "name": "Делано"}, -{"usage": "world", "name": "Делансон"}, -{"usage": "world", "name": "Делаплейн"}, -{"usage": "world", "name": "Дела"}, -{"usage": "world", "name": "Делеван"}, -{"usage": "world", "name": "Делия"}, -{"usage": "world", "name": "Дели"}, -{"usage": "world", "name": "Делкамбр"}, -{"usage": "world", "name": "Делко"}, -{"usage": "world", "name": "Деллрой"}, -{"usage": "world", "name": "Делл"}, -{"usage": "world", "name": "Делойт"}, -{"usage": "world", "name": "Делонг"}, -{"usage": "world", "name": "Делрей"}, -{"usage": "world", "name": "Делтона"}, -{"usage": "world", "name": "Делтон"}, -{"usage": "world", "name": "Делфт"}, -{"usage": "world", "name": "Дельмар"}, -{"usage": "world", "name": "Дельмонт"}, -{"usage": "world", "name": "Дельта"}, -{"usage": "world", "name": "Дельфия"}, -{"usage": "world", "name": "Дельфи"}, -{"usage": "world", "name": "Дельфос"}, -{"usage": "world", "name": "Демарест"}, -{"usage": "world", "name": "Деминг"}, -{"usage": "world", "name": "Демократ"}, -{"usage": "world", "name": "Демополис"}, -{"usage": "world", "name": "Деморест"}, -{"usage": "world", "name": "Демпси"}, -{"usage": "world", "name": "Денби"}, -{"usage": "world", "name": "Денвер"}, -{"usage": "world", "name": "Дендрон"}, -{"usage": "world", "name": "Денио"}, -{"usage": "world", "name": "Денисон"}, -{"usage": "world", "name": "Денмарк"}, -{"usage": "world", "name": "Деннард"}, -{"usage": "world", "name": "Деннинг"}, -{"usage": "world", "name": "Деннис"}, -{"usage": "world", "name": "Денод"}, -{"usage": "world", "name": "Денсмор"}, -{"usage": "world", "name": "Дентон"}, -{"usage": "world", "name": "Дент"}, -{"usage": "world", "name": "Денхофф"}, -{"usage": "world", "name": "Денхэм"}, -{"usage": "world", "name": "Денэр"}, -{"usage": "world", "name": "Ден"}, -{"usage": "world", "name": "Деора"}, -{"usage": "world", "name": "Депозит"}, -{"usage": "world", "name": "Депорт"}, -{"usage": "world", "name": "Депо"}, -{"usage": "world", "name": "Депью"}, -{"usage": "world", "name": "Деп"}, -{"usage": "world", "name": "Дерби"}, -{"usage": "world", "name": "Деринг"}, -{"usage": "world", "name": "Дерита"}, -{"usage": "world", "name": "Дермитт"}, -{"usage": "world", "name": "Дермотта"}, -{"usage": "world", "name": "Деррик"}, -{"usage": "world", "name": "Дерри"}, -{"usage": "world", "name": "Десерт"}, -{"usage": "world", "name": "Дескансо"}, -{"usage": "world", "name": "Деслодж"}, -{"usage": "world", "name": "Десото"}, -{"usage": "world", "name": "Деспард"}, -{"usage": "world", "name": "Дестин"}, -{"usage": "world", "name": "Дестрхен"}, -{"usage": "world", "name": "Дес"}, -{"usage": "world", "name": "Детонти"}, -{"usage": "world", "name": "Детройт"}, -{"usage": "world", "name": "Детур"}, -{"usage": "world", "name": "Деуолт"}, -{"usage": "world", "name": "Дефериет"}, -{"usage": "world", "name": "Дефианс"}, -{"usage": "world", "name": "Дечерд"}, -{"usage": "world", "name": "Деша"}, -{"usage": "world", "name": "Дешлер"}, -{"usage": "world", "name": "Дешют"}, -{"usage": "world", "name": "Джадсон"}, -{"usage": "world", "name": "Джайлс"}, -{"usage": "world", "name": "Джакамба"}, -{"usage": "world", "name": "Джаколоф"}, -{"usage": "world", "name": "Джал"}, -{"usage": "world", "name": "Джанго"}, -{"usage": "world", "name": "Джанкшен"}, -{"usage": "world", "name": "Джантура"}, -{"usage": "world", "name": "Джан"}, -{"usage": "world", "name": "Джаптон"}, -{"usage": "world", "name": "Джарбидж"}, -{"usage": "world", "name": "Джарвис"}, -{"usage": "world", "name": "Джаросо"}, -{"usage": "world", "name": "Джарратт"}, -{"usage": "world", "name": "Джаррелл"}, -{"usage": "world", "name": "Джарреттс"}, -{"usage": "world", "name": "Джаспер"}, -{"usage": "world", "name": "Джастус"}, -{"usage": "world", "name": "Джебель"}, -{"usage": "world", "name": "Джеддито"}, -{"usage": "world", "name": "Джеддо"}, -{"usage": "world", "name": "Джезуп"}, -{"usage": "world", "name": "Джейкин"}, -{"usage": "world", "name": "Джейкс"}, -{"usage": "world", "name": "Джеймача"}, -{"usage": "world", "name": "Джеймсон"}, -{"usage": "world", "name": "Джеймс"}, -{"usage": "world", "name": "Джеймул"}, -{"usage": "world", "name": "Джейнс"}, -{"usage": "world", "name": "Джейн"}, -{"usage": "world", "name": "Джейсон"}, -{"usage": "world", "name": "Джекман"}, -{"usage": "world", "name": "Джекоб"}, -{"usage": "world", "name": "Джекпот"}, -{"usage": "world", "name": "Джексон"}, -{"usage": "world", "name": "Джек"}, -{"usage": "world", "name": "Джеллико"}, -{"usage": "world", "name": "Джеллоуэй"}, -{"usage": "world", "name": "Джемез"}, -{"usage": "world", "name": "Джемисон"}, -{"usage": "world", "name": "Джеммелл"}, -{"usage": "world", "name": "Джемпер"}, -{"usage": "world", "name": "Дженезео"}, -{"usage": "world", "name": "Дженера"}, -{"usage": "world", "name": "Дженисон"}, -{"usage": "world", "name": "Дженифер"}, -{"usage": "world", "name": "Дженкин"}, -{"usage": "world", "name": "Дженкс"}, -{"usage": "world", "name": "Дженнер"}, -{"usage": "world", "name": "Дженнетт"}, -{"usage": "world", "name": "Дженнингс"}, -{"usage": "world", "name": "Дженни"}, -{"usage": "world", "name": "Дженола"}, -{"usage": "world", "name": "Дженсен"}, -{"usage": "world", "name": "Джентри"}, -{"usage": "world", "name": "Джеральдин"}, -{"usage": "world", "name": "Джеральд"}, -{"usage": "world", "name": "Джервис"}, -{"usage": "world", "name": "Джерико"}, -{"usage": "world", "name": "Джермин"}, -{"usage": "world", "name": "Джером"}, -{"usage": "world", "name": "Джеронимо"}, -{"usage": "world", "name": "Джерри"}, -{"usage": "world", "name": "Джерроу"}, -{"usage": "world", "name": "Джерси"}, -{"usage": "world", "name": "Джессап"}, -{"usage": "world", "name": "Джесси"}, -{"usage": "world", "name": "Джетерс"}, -{"usage": "world", "name": "Джетмор"}, -{"usage": "world", "name": "Джет"}, -{"usage": "world", "name": "Джеуда"}, -{"usage": "world", "name": "Джефферсон"}, -{"usage": "world", "name": "Джефферс"}, -{"usage": "world", "name": "Джеффри"}, -{"usage": "world", "name": "Джец"}, -{"usage": "world", "name": "Джиггер"}, -{"usage": "world", "name": "Джиллетт"}, -{"usage": "world", "name": "Джим"}, -{"usage": "world", "name": "Джинго"}, -{"usage": "world", "name": "Джинеси"}, -{"usage": "world", "name": "Джин"}, -{"usage": "world", "name": "Джоанна"}, -{"usage": "world", "name": "Джобс"}, -{"usage": "world", "name": "Джозеф"}, -{"usage": "world", "name": "Джойнер"}, -{"usage": "world", "name": "Джойс"}, -{"usage": "world", "name": "Джой"}, -{"usage": "world", "name": "Джоливью"}, -{"usage": "world", "name": "Джолиет"}, -{"usage": "world", "name": "Джолли"}, -{"usage": "world", "name": "Джонанси"}, -{"usage": "world", "name": "Джона"}, -{"usage": "world", "name": "Джонетта"}, -{"usage": "world", "name": "Джонсон"}, -{"usage": "world", "name": "Джонс"}, -{"usage": "world", "name": "Джонфаррис"}, -{"usage": "world", "name": "Джон"}, -{"usage": "world", "name": "Джоплин"}, -{"usage": "world", "name": "Джоппа"}, -{"usage": "world", "name": "Джордан"}, -{"usage": "world", "name": "Джорджиана"}, -{"usage": "world", "name": "Джорджио"}, -{"usage": "world", "name": "Джорджия"}, -{"usage": "world", "name": "Джордж"}, -{"usage": "world", "name": "Джослин"}, -{"usage": "world", "name": "Джофре"}, -{"usage": "world", "name": "Джошуа"}, -{"usage": "world", "name": "Джоэл"}, -{"usage": "world", "name": "Джоя"}, -{"usage": "world", "name": "Джо"}, -{"usage": "world", "name": "Джудит"}, -{"usage": "world", "name": "Джуди"}, -{"usage": "world", "name": "Джулиан"}, -{"usage": "world", "name": "Джулиус"}, -{"usage": "world", "name": "Джулифф"}, -{"usage": "world", "name": "Джульетта"}, -{"usage": "world", "name": "Джульярдской"}, -{"usage": "world", "name": "Джуналаска"}, -{"usage": "world", "name": "Джуниата"}, -{"usage": "world", "name": "Джуниор"}, -{"usage": "world", "name": "Джунипер"}, -{"usage": "world", "name": "Джуниус"}, -{"usage": "world", "name": "Джуно"}, -{"usage": "world", "name": "Джун"}, -{"usage": "world", "name": "Джуэл"}, -{"usage": "world", "name": "Джьюетт"}, -{"usage": "world", "name": "Джэйтон"}, -{"usage": "world", "name": "Джэй"}, -{"usage": "world", "name": "Джэрхарт"}, -{"usage": "world", "name": "Диабло"}, -{"usage": "world", "name": "Диагональ"}, -{"usage": "world", "name": "Диал"}, -{"usage": "world", "name": "Диамонд"}, -{"usage": "world", "name": "Диана"}, -{"usage": "world", "name": "Диас"}, -{"usage": "world", "name": "Диббл"}, -{"usage": "world", "name": "Дибер"}, -{"usage": "world", "name": "Диболл"}, -{"usage": "world", "name": "Дивайд"}, -{"usage": "world", "name": "Дивер"}, -{"usage": "world", "name": "Диггингс"}, -{"usage": "world", "name": "Диггинс"}, -{"usage": "world", "name": "Диего"}, -{"usage": "world", "name": "Дизни"}, -{"usage": "world", "name": "Дикенс"}, -{"usage": "world", "name": "Дикерсон"}, -{"usage": "world", "name": "Дикийголубь"}, -{"usage": "world", "name": "Дики"}, -{"usage": "world", "name": "Диксборо"}, -{"usage": "world", "name": "Дикси"}, -{"usage": "world", "name": "Диксмонт"}, -{"usage": "world", "name": "Диксмур"}, -{"usage": "world", "name": "Диксон"}, -{"usage": "world", "name": "Диксфилд"}, -{"usage": "world", "name": "Дикс"}, -{"usage": "world", "name": "Дикус"}, -{"usage": "world", "name": "Дик"}, -{"usage": "world", "name": "Дилинг"}, -{"usage": "world", "name": "Дилия"}, -{"usage": "world", "name": "Диллард"}, -{"usage": "world", "name": "Диллвин"}, -{"usage": "world", "name": "Диллер"}, -{"usage": "world", "name": "Диллингхем"}, -{"usage": "world", "name": "Дилли"}, -{"usage": "world", "name": "Диллон"}, -{"usage": "world", "name": "Дилл"}, -{"usage": "world", "name": "Дилстадт"}, -{"usage": "world", "name": "Дил"}, -{"usage": "world", "name": "Димас"}, -{"usage": "world", "name": "Димер"}, -{"usage": "world", "name": "Диммитт"}, -{"usage": "world", "name": "Димок"}, -{"usage": "world", "name": "Димон"}, -{"usage": "world", "name": "Димс"}, -{"usage": "world", "name": "Динвидди"}, -{"usage": "world", "name": "Дингл"}, -{"usage": "world", "name": "Дингман"}, -{"usage": "world", "name": "Дингус"}, -{"usage": "world", "name": "Динеро"}, -{"usage": "world", "name": "Диннер"}, -{"usage": "world", "name": "Динозавр"}, -{"usage": "world", "name": "Динуба"}, -{"usage": "world", "name": "Дин"}, -{"usage": "world", "name": "Диомид"}, -{"usage": "world", "name": "Диос"}, -{"usage": "world", "name": "Дип"}, -{"usage": "world", "name": "Диринг"}, -{"usage": "world", "name": "Дири"}, -{"usage": "world", "name": "Диркс"}, -{"usage": "world", "name": "Дир"}, -{"usage": "world", "name": "Дисаутел"}, -{"usage": "world", "name": "Дискавери"}, -{"usage": "world", "name": "Дисней"}, -{"usage": "world", "name": "Дисон"}, -{"usage": "world", "name": "Диспутанта"}, -{"usage": "world", "name": "Дисстон"}, -{"usage": "world", "name": "Дистрикт"}, -{"usage": "world", "name": "Дитерич"}, -{"usage": "world", "name": "Дитрих"}, -{"usage": "world", "name": "Диттлингер"}, -{"usage": "world", "name": "Дит"}, -{"usage": "world", "name": "Диффикулт"}, -{"usage": "world", "name": "Дишман"}, -{"usage": "world", "name": "Ди"}, -{"usage": "world", "name": "Дло"}, -{"usage": "world", "name": "Доббинс"}, -{"usage": "world", "name": "Доббс"}, -{"usage": "world", "name": "Добсон"}, -{"usage": "world", "name": "Доваджиак"}, -{"usage": "world", "name": "Довре"}, -{"usage": "world", "name": "Догерти"}, -{"usage": "world", "name": "Додд"}, -{"usage": "world", "name": "Додж"}, -{"usage": "world", "name": "Додсон"}, -{"usage": "world", "name": "Доеран"}, -{"usage": "world", "name": "Дозьер"}, -{"usage": "world", "name": "Дойлайн"}, -{"usage": "world", "name": "Дойл"}, -{"usage": "world", "name": "Доктор"}, -{"usage": "world", "name": "Док"}, -{"usage": "world", "name": "Доланд"}, -{"usage": "world", "name": "Долан"}, -{"usage": "world", "name": "Долг"}, -{"usage": "world", "name": "Доллар"}, -{"usage": "world", "name": "Долливер"}, -{"usage": "world", "name": "Долл"}, -{"usage": "world", "name": "Доломит"}, -{"usage": "world", "name": "Долорес"}, -{"usage": "world", "name": "Долтон"}, -{"usage": "world", "name": "Доместик"}, -{"usage": "world", "name": "Домингес"}, -{"usage": "world", "name": "Доминго"}, -{"usage": "world", "name": "Доминион"}, -{"usage": "world", "name": "Домино"}, -{"usage": "world", "name": "Дом"}, -{"usage": "world", "name": "Доналсон"}, -{"usage": "world", "name": "Дональд"}, -{"usage": "world", "name": "Доната"}, -{"usage": "world", "name": "Донахью"}, -{"usage": "world", "name": "Дона"}, -{"usage": "world", "name": "Донгола"}, -{"usage": "world", "name": "Донегал"}, -{"usage": "world", "name": "Донифен"}, -{"usage": "world", "name": "Дони"}, -{"usage": "world", "name": "Доннана"}, -{"usage": "world", "name": "Донна"}, -{"usage": "world", "name": "Доннелли"}, -{"usage": "world", "name": "Доннелл"}, -{"usage": "world", "name": "Доннелс"}, -{"usage": "world", "name": "Доннер"}, -{"usage": "world", "name": "Донован"}, -{"usage": "world", "name": "Донора"}, -{"usage": "world", "name": "Доно"}, -{"usage": "world", "name": "Дон"}, -{"usage": "world", "name": "Дорадо"}, -{"usage": "world", "name": "Дорал"}, -{"usage": "world", "name": "Доран"}, -{"usage": "world", "name": "Дора"}, -{"usage": "world", "name": "Дорена"}, -{"usage": "world", "name": "Доре"}, -{"usage": "world", "name": "Дорис"}, -{"usage": "world", "name": "Доркас"}, -{"usage": "world", "name": "Дормонт"}, -{"usage": "world", "name": "Дорнсайф"}, -{"usage": "world", "name": "Дороти"}, -{"usage": "world", "name": "Дорранс"}, -{"usage": "world", "name": "Доррис"}, -{"usage": "world", "name": "Дорсет"}, -{"usage": "world", "name": "Дорси"}, -{"usage": "world", "name": "Дортчес"}, -{"usage": "world", "name": "Дору"}, -{"usage": "world", "name": "Дорф"}, -{"usage": "world", "name": "Дорчестер"}, -{"usage": "world", "name": "Дос"}, -{"usage": "world", "name": "Дотан"}, -{"usage": "world", "name": "Доти"}, -{"usage": "world", "name": "Дот"}, -{"usage": "world", "name": "Доувер"}, -{"usage": "world", "name": "Доуз"}, -{"usage": "world", "name": "Доул"}, -{"usage": "world", "name": "Доусон"}, -{"usage": "world", "name": "Доуэлл"}, -{"usage": "world", "name": "Доу"}, -{"usage": "world", "name": "Дофин"}, -{"usage": "world", "name": "Дравос"}, -{"usage": "world", "name": "Драйв"}, -{"usage": "world", "name": "Драйден"}, -{"usage": "world", "name": "Драйноб"}, -{"usage": "world", "name": "Драй"}, -{"usage": "world", "name": "Драм"}, -{"usage": "world", "name": "Драпер"}, -{"usage": "world", "name": "Драфт"}, -{"usage": "world", "name": "Дрезден"}, -{"usage": "world", "name": "Дрейк"}, -{"usage": "world", "name": "Дрейтон"}, -{"usage": "world", "name": "Дрейф"}, -{"usage": "world", "name": "Дрексел"}, -{"usage": "world", "name": "Дресбак"}, -{"usage": "world", "name": "Дрессер"}, -{"usage": "world", "name": "Дриггс"}, -{"usage": "world", "name": "Дриппинг"}, -{"usage": "world", "name": "Дрип"}, -{"usage": "world", "name": "Дрисколл"}, -{"usage": "world", "name": "Дрифтон"}, -{"usage": "world", "name": "Дро"}, -{"usage": "world", "name": "Друид"}, -{"usage": "world", "name": "Друри"}, -{"usage": "world", "name": "Дуайт"}, -{"usage": "world", "name": "Дуарте"}, -{"usage": "world", "name": "Дубах"}, -{"usage": "world", "name": "Дубберли"}, -{"usage": "world", "name": "Дуббс"}, -{"usage": "world", "name": "Дублин"}, -{"usage": "world", "name": "Дугал"}, -{"usage": "world", "name": "Дуглас"}, -{"usage": "world", "name": "Дуке"}, -{"usage": "world", "name": "Дулинг"}, -{"usage": "world", "name": "Дулитл"}, -{"usage": "world", "name": "Дулут"}, -{"usage": "world", "name": "Дульсе"}, -{"usage": "world", "name": "Дул"}, -{"usage": "world", "name": "Дума"}, -{"usage": "world", "name": "Думбар"}, -{"usage": "world", "name": "Думс"}, -{"usage": "world", "name": "Дунканнон"}, -{"usage": "world", "name": "Дункан"}, -{"usage": "world", "name": "Дункен"}, -{"usage": "world", "name": "Дункер"}, -{"usage": "world", "name": "Дункинс"}, -{"usage": "world", "name": "Дун"}, -{"usage": "world", "name": "Дуранго"}, -{"usage": "world", "name": "Дурбин"}, -{"usage": "world", "name": "Дуриея"}, -{"usage": "world", "name": "Дусетт"}, -{"usage": "world", "name": "Дусман"}, -{"usage": "world", "name": "Дусон"}, -{"usage": "world", "name": "Дуф"}, -{"usage": "world", "name": "Дьюар"}, -{"usage": "world", "name": "Дьюи"}, -{"usage": "world", "name": "Дьюк"}, -{"usage": "world", "name": "Дью"}, -{"usage": "world", "name": "Дэвисон"}, -{"usage": "world", "name": "Дэвис"}, -{"usage": "world", "name": "Дэви"}, -{"usage": "world", "name": "Дэггет"}, -{"usage": "world", "name": "Дэймон"}, -{"usage": "world", "name": "Дэй"}, -{"usage": "world", "name": "Дэнбери"}, -{"usage": "world", "name": "Дэнбридж"}, -{"usage": "world", "name": "Дэнверс"}, -{"usage": "world", "name": "Дэниелс"}, -{"usage": "world", "name": "Дэнфорт"}, -{"usage": "world", "name": "Дэн"}, -{"usage": "world", "name": "Дэт"}, -{"usage": "world", "name": "Дюбуа"}, -{"usage": "world", "name": "Дюваль"}, -{"usage": "world", "name": "Дюкесн"}, -{"usage": "world", "name": "Дюлак"}, -{"usage": "world", "name": "Дюма"}, -{"usage": "world", "name": "Дюмон"}, -{"usage": "world", "name": "Дюне"}, -{"usage": "world", "name": "Дюнкерк"}, -{"usage": "world", "name": "Дюнс"}, -{"usage": "world", "name": "Дюпон"}, -{"usage": "world", "name": "Дюпо"}, -{"usage": "world", "name": "Дюпре"}, -{"usage": "world", "name": "Дюрант"}, -{"usage": "world", "name": "Дюран"}, -{"usage": "world", "name": "Дюшен"}, -{"usage": "world", "name": "Ева"}, -{"usage": "world", "name": "Евклид"}, -{"usage": "world", "name": "Египет"}, -{"usage": "world", "name": "Еззелл"}, -{"usage": "world", "name": "Елена"}, -{"usage": "world", "name": "Елисей"}, -{"usage": "world", "name": "Ен"}, -{"usage": "world", "name": "Жакет"}, -{"usage": "world", "name": "Жанеретт"}, -{"usage": "world", "name": "Жаннет"}, -{"usage": "world", "name": "Жасмин"}, -{"usage": "world", "name": "Жее"}, -{"usage": "world", "name": "Женева"}, -{"usage": "world", "name": "Женевьева"}, -{"usage": "world", "name": "Жерве"}, -{"usage": "world", "name": "Жермен"}, -{"usage": "world", "name": "Жирардо"}, -{"usage": "world", "name": "Жирар"}, -{"usage": "world", "name": "Жозефина"}, -{"usage": "world", "name": "Журден"}, -{"usage": "world", "name": "Жюль"}, -{"usage": "world", "name": "Завалла"}, -{"usage": "world", "name": "Заг"}, -{"usage": "world", "name": "Закари"}, -{"usage": "world", "name": "Залески"}, -{"usage": "world", "name": "Залма"}, -{"usage": "world", "name": "Залч"}, -{"usage": "world", "name": "Заль"}, -{"usage": "world", "name": "Зама"}, -{"usage": "world", "name": "Замбро"}, -{"usage": "world", "name": "Зандт"}, -{"usage": "world", "name": "Занс"}, -{"usage": "world", "name": "Запата"}, -{"usage": "world", "name": "Зап"}, -{"usage": "world", "name": "Зара"}, -{"usage": "world", "name": "Затруднение"}, -{"usage": "world", "name": "Зафра"}, -{"usage": "world", "name": "Зволле"}, -{"usage": "world", "name": "Зебина"}, -{"usage": "world", "name": "Зебулон"}, -{"usage": "world", "name": "Зеландия"}, -{"usage": "world", "name": "Зела"}, -{"usage": "world", "name": "Зелиенопль"}, -{"usage": "world", "name": "Земпл"}, -{"usage": "world", "name": "Зена"}, -{"usage": "world", "name": "Зенда"}, -{"usage": "world", "name": "Зенит"}, -{"usage": "world", "name": "Зеринг"}, -{"usage": "world", "name": "Зефир"}, -{"usage": "world", "name": "Зиглер"}, -{"usage": "world", "name": "Зим"}, -{"usage": "world", "name": "Зита"}, -{"usage": "world", "name": "Зия"}, -{"usage": "world", "name": "Зоар"}, -{"usage": "world", "name": "Золфо"}, -{"usage": "world", "name": "Зона"}, -{"usage": "world", "name": "Зонтаг"}, -{"usage": "world", "name": "Зумброта"}, -{"usage": "world", "name": "Зуньи"}, -{"usage": "world", "name": "Ибанез"}, -{"usage": "world", "name": "Ибапа"}, -{"usage": "world", "name": "Иберия"}, -{"usage": "world", "name": "Ибер"}, -{"usage": "world", "name": "Иван"}, -{"usage": "world", "name": "Ива"}, -{"usage": "world", "name": "Ивнинг"}, -{"usage": "world", "name": "Иган"}, -{"usage": "world", "name": "Игар"}, -{"usage": "world", "name": "Игер"}, -{"usage": "world", "name": "Иглу"}, -{"usage": "world", "name": "Игл"}, -{"usage": "world", "name": "Игнасио"}, -{"usage": "world", "name": "Игнас"}, -{"usage": "world", "name": "Игнатиус"}, -{"usage": "world", "name": "Иго"}, -{"usage": "world", "name": "Идавада"}, -{"usage": "world", "name": "Идалия"}, -{"usage": "world", "name": "Идальго"}, -{"usage": "world", "name": "Идамэй"}, -{"usage": "world", "name": "Идана"}, -{"usage": "world", "name": "Иданья"}, -{"usage": "world", "name": "Ида"}, -{"usage": "world", "name": "Идеал"}, -{"usage": "world", "name": "Идиль"}, -{"usage": "world", "name": "Идмон"}, -{"usage": "world", "name": "Идрия"}, -{"usage": "world", "name": "Идс"}, -{"usage": "world", "name": "Идэр"}, -{"usage": "world", "name": "Иерихон"}, -{"usage": "world", "name": "Иерусалим"}, -{"usage": "world", "name": "Изабелла"}, -{"usage": "world", "name": "Изабель"}, -{"usage": "world", "name": "Изагора"}, -{"usage": "world", "name": "Излер"}, -{"usage": "world", "name": "Изола"}, -{"usage": "world", "name": "Икард"}, -{"usage": "world", "name": "Иква"}, -{"usage": "world", "name": "Икес"}, -{"usage": "world", "name": "Иконию"}, -{"usage": "world", "name": "Иксония"}, -{"usage": "world", "name": "Ик"}, -{"usage": "world", "name": "Илария"}, -{"usage": "world", "name": "Ила"}, -{"usage": "world", "name": "Илвако"}, -{"usage": "world", "name": "Илен"}, -{"usage": "world", "name": "Илиада"}, -{"usage": "world", "name": "Илион"}, -{"usage": "world", "name": "Илифф"}, -{"usage": "world", "name": "Иллинойс"}, -{"usage": "world", "name": "Иллиополис"}, -{"usage": "world", "name": "Ильмо"}, -{"usage": "world", "name": "Ильм"}, -{"usage": "world", "name": "Ильфельд"}, -{"usage": "world", "name": "Иль"}, -{"usage": "world", "name": "Имбери"}, -{"usage": "world", "name": "Имблер"}, -{"usage": "world", "name": "Имбоден"}, -{"usage": "world", "name": "Имбс"}, -{"usage": "world", "name": "Имлей"}, -{"usage": "world", "name": "Иммокали"}, -{"usage": "world", "name": "Имогена"}, -{"usage": "world", "name": "Импакт"}, -{"usage": "world", "name": "Империал"}, -{"usage": "world", "name": "Инадэйл"}, -{"usage": "world", "name": "Ина"}, -{"usage": "world", "name": "Инвернесс"}, -{"usage": "world", "name": "Инвуд"}, -{"usage": "world", "name": "Ингаллс"}, -{"usage": "world", "name": "Ингерсолл"}, -{"usage": "world", "name": "Инглис"}, -{"usage": "world", "name": "Инглиш"}, -{"usage": "world", "name": "Ингл"}, -{"usage": "world", "name": "Ингомар"}, -{"usage": "world", "name": "Ингот"}, -{"usage": "world", "name": "Инграм"}, -{"usage": "world", "name": "Ингрэм"}, -{"usage": "world", "name": "Ингуадона"}, -{"usage": "world", "name": "Инда"}, -{"usage": "world", "name": "Индекс"}, -{"usage": "world", "name": "Индепенденс"}, -{"usage": "world", "name": "Индиалантик"}, -{"usage": "world", "name": "Индианаполис"}, -{"usage": "world", "name": "Индиана"}, -{"usage": "world", "name": "Индианола"}, -{"usage": "world", "name": "Индиан"}, -{"usage": "world", "name": "Индиахома"}, -{"usage": "world", "name": "Индио"}, -{"usage": "world", "name": "Индия"}, -{"usage": "world", "name": "Индрио"}, -{"usage": "world", "name": "Индустрия"}, -{"usage": "world", "name": "Инез"}, -{"usage": "world", "name": "Инес"}, -{"usage": "world", "name": "Инком"}, -{"usage": "world", "name": "Инкстер"}, -{"usage": "world", "name": "Инланд"}, -{"usage": "world", "name": "Инлет"}, -{"usage": "world", "name": "Инман"}, -{"usage": "world", "name": "Иннисволд"}, -{"usage": "world", "name": "Иннис"}, -{"usage": "world", "name": "Иннс"}, -{"usage": "world", "name": "Инн"}, -{"usage": "world", "name": "Инокерн"}, -{"usage": "world", "name": "Инок"}, -{"usage": "world", "name": "Инола"}, -{"usage": "world", "name": "Институт"}, -{"usage": "world", "name": "Интайр"}, -{"usage": "world", "name": "Интейк"}, -{"usage": "world", "name": "Интерлакен"}, -{"usage": "world", "name": "Интерсешен"}, -{"usage": "world", "name": "Интерьер"}, -{"usage": "world", "name": "Интер"}, -{"usage": "world", "name": "Интош"}, -{"usage": "world", "name": "Интра"}, -{"usage": "world", "name": "Инхенио"}, -{"usage": "world", "name": "Инчелиум"}, -{"usage": "world", "name": "Иола"}, -{"usage": "world", "name": "Иона"}, -{"usage": "world", "name": "Иония"}, -{"usage": "world", "name": "Ипава"}, -{"usage": "world", "name": "Ипсвич"}, -{"usage": "world", "name": "Ипсиланти"}, -{"usage": "world", "name": "Иран"}, -{"usage": "world", "name": "Ирби"}, -{"usage": "world", "name": "Ирвинг"}, -{"usage": "world", "name": "Ирвин"}, -{"usage": "world", "name": "Ирвона"}, -{"usage": "world", "name": "Иределл"}, -{"usage": "world", "name": "Ирека"}, -{"usage": "world", "name": "Ирена"}, -{"usage": "world", "name": "Ирландия"}, -{"usage": "world", "name": "Ирма"}, -{"usage": "world", "name": "Ирмо"}, -{"usage": "world", "name": "Ирод"}, -{"usage": "world", "name": "Ирокез"}, -{"usage": "world", "name": "Ирония"}, -{"usage": "world", "name": "Ирригон"}, -{"usage": "world", "name": "Исабела"}, -{"usage": "world", "name": "Исанти"}, -{"usage": "world", "name": "Исбелл"}, -{"usage": "world", "name": "Иселин"}, -{"usage": "world", "name": "Исидро"}, -{"usage": "world", "name": "Исклоски"}, -{"usage": "world", "name": "Исламорада"}, -{"usage": "world", "name": "Исландия"}, -{"usage": "world", "name": "Исла"}, -{"usage": "world", "name": "Ислинг"}, -{"usage": "world", "name": "Ислип"}, -{"usage": "world", "name": "Исли"}, -{"usage": "world", "name": "Исмей"}, -{"usage": "world", "name": "Истамп"}, -{"usage": "world", "name": "Истам"}, -{"usage": "world", "name": "Истанолли"}, -{"usage": "world", "name": "Истачатта"}, -{"usage": "world", "name": "Истборо"}, -{"usage": "world", "name": "Истгейт"}, -{"usage": "world", "name": "Истерли"}, -{"usage": "world", "name": "Истлон"}, -{"usage": "world", "name": "Истман"}, -{"usage": "world", "name": "Истовер"}, -{"usage": "world", "name": "Истон"}, -{"usage": "world", "name": "Истпойнт"}, -{"usage": "world", "name": "Истчестер"}, -{"usage": "world", "name": "Ист"}, -{"usage": "world", "name": "Итака"}, -{"usage": "world", "name": "Италия"}, -{"usage": "world", "name": "Итон"}, -{"usage": "world", "name": "Итта"}, -{"usage": "world", "name": "Иуда"}, -{"usage": "world", "name": "Иудея"}, -{"usage": "world", "name": "Иука"}, -{"usage": "world", "name": "Ишпеминг"}, -{"usage": "world", "name": "И"}, -{"usage": "world", "name": "Йегер"}, -{"usage": "world", "name": "Йеддо"}, -{"usage": "world", "name": "Йелвинг"}, -{"usage": "world", "name": "Йеллвиль"}, -{"usage": "world", "name": "Йеллоу"}, -{"usage": "world", "name": "Йелм"}, -{"usage": "world", "name": "Йель"}, -{"usage": "world", "name": "Йемасси"}, -{"usage": "world", "name": "Йена"}, -{"usage": "world", "name": "Йеоман"}, -{"usage": "world", "name": "Йеринг"}, -{"usage": "world", "name": "Йеркс"}, -{"usage": "world", "name": "Йетс"}, -{"usage": "world", "name": "Йеттер"}, -{"usage": "world", "name": "Йеуэд"}, -{"usage": "world", "name": "Йидон"}, -{"usage": "world", "name": "Йодер"}, -{"usage": "world", "name": "Йокум"}, -{"usage": "world", "name": "Йоло"}, -{"usage": "world", "name": "Йоман"}, -{"usage": "world", "name": "Йонкалла"}, -{"usage": "world", "name": "Йонкерс"}, -{"usage": "world", "name": "Йорба"}, -{"usage": "world", "name": "Йоркана"}, -{"usage": "world", "name": "Йорклин"}, -{"usage": "world", "name": "Йоркшир"}, -{"usage": "world", "name": "Йорк"}, -{"usage": "world", "name": "Йосементо"}, -{"usage": "world", "name": "Йосемити"}, -{"usage": "world", "name": "Йота"}, -{"usage": "world", "name": "Йоу"}, -{"usage": "world", "name": "Йоханнес"}, -{"usage": "world", "name": "Каава"}, -{"usage": "world", "name": "Каанапали"}, -{"usage": "world", "name": "Кабалло"}, -{"usage": "world", "name": "Кабан"}, -{"usage": "world", "name": "Кабезас"}, -{"usage": "world", "name": "Кабель"}, -{"usage": "world", "name": "Кабери"}, -{"usage": "world", "name": "Кабе"}, -{"usage": "world", "name": "Кабина"}, -{"usage": "world", "name": "Каборн"}, -{"usage": "world", "name": "Кабот"}, -{"usage": "world", "name": "Кабо"}, -{"usage": "world", "name": "Кабул"}, -{"usage": "world", "name": "Кавайлоа"}, -{"usage": "world", "name": "Кавайха"}, -{"usage": "world", "name": "Кавалеро"}, -{"usage": "world", "name": "Кавалер"}, -{"usage": "world", "name": "Кавур"}, -{"usage": "world", "name": "Каган"}, -{"usage": "world", "name": "Кагуас"}, -{"usage": "world", "name": "Кадджо"}, -{"usage": "world", "name": "Каддоя"}, -{"usage": "world", "name": "Каддо"}, -{"usage": "world", "name": "Каджах"}, -{"usage": "world", "name": "Каджон"}, -{"usage": "world", "name": "Кадиз"}, -{"usage": "world", "name": "Кадиллак"}, -{"usage": "world", "name": "Кадли"}, -{"usage": "world", "name": "Кадоган"}, -{"usage": "world", "name": "Кадотт"}, -{"usage": "world", "name": "Кадуэлл"}, -{"usage": "world", "name": "Кадьяк"}, -{"usage": "world", "name": "Каей"}, -{"usage": "world", "name": "Каелеку"}, -{"usage": "world", "name": "Каза"}, -{"usage": "world", "name": "Казеновия"}, -{"usage": "world", "name": "Казиглак"}, -{"usage": "world", "name": "Каиахога"}, -{"usage": "world", "name": "Кайбаб"}, -{"usage": "world", "name": "Кайбито"}, -{"usage": "world", "name": "Кайента"}, -{"usage": "world", "name": "Кайкотсмови"}, -{"usage": "world", "name": "Кайл"}, -{"usage": "world", "name": "Кайнд"}, -{"usage": "world", "name": "Кайнс"}, -{"usage": "world", "name": "Кайова"}, -{"usage": "world", "name": "Кайро"}, -{"usage": "world", "name": "Кайт"}, -{"usage": "world", "name": "Кайюна"}, -{"usage": "world", "name": "Какао"}, -{"usage": "world", "name": "Какапон"}, -{"usage": "world", "name": "Какли"}, -{"usage": "world", "name": "Кактовик"}, -{"usage": "world", "name": "Кактус"}, -{"usage": "world", "name": "Какэ"}, -{"usage": "world", "name": "Калабасас"}, -{"usage": "world", "name": "Калабаш"}, -{"usage": "world", "name": "Калаво"}, -{"usage": "world", "name": "Калалок"}, -{"usage": "world", "name": "Калама"}, -{"usage": "world", "name": "Каламин"}, -{"usage": "world", "name": "Каламус"}, -{"usage": "world", "name": "Калаоа"}, -{"usage": "world", "name": "Калапана"}, -{"usage": "world", "name": "Калахео"}, -{"usage": "world", "name": "Калберсон"}, -{"usage": "world", "name": "Калбертсон"}, -{"usage": "world", "name": "Калвари"}, -{"usage": "world", "name": "Калва"}, -{"usage": "world", "name": "Калверт"}, -{"usage": "world", "name": "Калвер"}, -{"usage": "world", "name": "Калдесак"}, -{"usage": "world", "name": "Калева"}, -{"usage": "world", "name": "Каледония"}, -{"usage": "world", "name": "Калексико"}, -{"usage": "world", "name": "Калера"}, -{"usage": "world", "name": "Кале"}, -{"usage": "world", "name": "Калида"}, -{"usage": "world", "name": "Калиенте"}, -{"usage": "world", "name": "Калико"}, -{"usage": "world", "name": "Калимеса"}, -{"usage": "world", "name": "Калио"}, -{"usage": "world", "name": "Калипсо"}, -{"usage": "world", "name": "Калиспелл"}, -{"usage": "world", "name": "Калиста"}, -{"usage": "world", "name": "Калистога"}, -{"usage": "world", "name": "Калифон"}, -{"usage": "world", "name": "Калифорния"}, -{"usage": "world", "name": "Калифорнски"}, -{"usage": "world", "name": "Калихиваи"}, -{"usage": "world", "name": "Калкаска"}, -{"usage": "world", "name": "Калкасье"}, -{"usage": "world", "name": "Калландс"}, -{"usage": "world", "name": "Каллауэй"}, -{"usage": "world", "name": "Каллахан"}, -{"usage": "world", "name": "Каллендер"}, -{"usage": "world", "name": "Калленс"}, -{"usage": "world", "name": "Каллен"}, -{"usage": "world", "name": "Каллеока"}, -{"usage": "world", "name": "Каллери"}, -{"usage": "world", "name": "Калликун"}, -{"usage": "world", "name": "Каллимонт"}, -{"usage": "world", "name": "Каллисон"}, -{"usage": "world", "name": "Каллис"}, -{"usage": "world", "name": "Каллихам"}, -{"usage": "world", "name": "Каллодене"}, -{"usage": "world", "name": "Каллом"}, -{"usage": "world", "name": "Каллоухе"}, -{"usage": "world", "name": "Каллум"}, -{"usage": "world", "name": "Калмер"}, -{"usage": "world", "name": "Калм"}, -{"usage": "world", "name": "Калона"}, -{"usage": "world", "name": "Калотус"}, -{"usage": "world", "name": "Калпелла"}, -{"usage": "world", "name": "Калпепер"}, -{"usage": "world", "name": "Калпет"}, -{"usage": "world", "name": "Калпин"}, -{"usage": "world", "name": "Калп"}, -{"usage": "world", "name": "Калскаг"}, -{"usage": "world", "name": "Калтаг"}, -{"usage": "world", "name": "Калумет"}, -{"usage": "world", "name": "Калхан"}, -{"usage": "world", "name": "Калхун"}, -{"usage": "world", "name": "Кальва"}, -{"usage": "world", "name": "Кальвеста"}, -{"usage": "world", "name": "Кальвин"}, -{"usage": "world", "name": "Калькутта"}, -{"usage": "world", "name": "Кальмар"}, -{"usage": "world", "name": "Кальций"}, -{"usage": "world", "name": "Кальюаха"}, -{"usage": "world", "name": "Кальяо"}, -{"usage": "world", "name": "Камак"}, -{"usage": "world", "name": "Камало"}, -{"usage": "world", "name": "Каманче"}, -{"usage": "world", "name": "Камарго"}, -{"usage": "world", "name": "Камарилло"}, -{"usage": "world", "name": "Камас"}, -{"usage": "world", "name": "Камби"}, -{"usage": "world", "name": "Камбриан"}, -{"usage": "world", "name": "Камбридж"}, -{"usage": "world", "name": "Камбрия"}, -{"usage": "world", "name": "Камден"}, -{"usage": "world", "name": "Камела"}, -{"usage": "world", "name": "Камелот"}, -{"usage": "world", "name": "Камергер"}, -{"usage": "world", "name": "Камея"}, -{"usage": "world", "name": "Камилла"}, -{"usage": "world", "name": "Камино"}, -{"usage": "world", "name": "Камия"}, -{"usage": "world", "name": "Ками"}, -{"usage": "world", "name": "Каммак"}, -{"usage": "world", "name": "Каммал"}, -{"usage": "world", "name": "Камминг"}, -{"usage": "world", "name": "Каммон"}, -{"usage": "world", "name": "Кампанилла"}, -{"usage": "world", "name": "Кампания"}, -{"usage": "world", "name": "Кампион"}, -{"usage": "world", "name": "Кампия"}, -{"usage": "world", "name": "Кампобелло"}, -{"usage": "world", "name": "Кампо"}, -{"usage": "world", "name": "Камптон"}, -{"usage": "world", "name": "Кампус"}, -{"usage": "world", "name": "Камрар"}, -{"usage": "world", "name": "Камуи"}, -{"usage": "world", "name": "Канаб"}, -{"usage": "world", "name": "Канаверал"}, -{"usage": "world", "name": "Канада"}, -{"usage": "world", "name": "Канаденсис"}, -{"usage": "world", "name": "Канаджохари"}, -{"usage": "world", "name": "Канадиан"}, -{"usage": "world", "name": "Канадис"}, -{"usage": "world", "name": "Каналоу"}, -{"usage": "world", "name": "Канал"}, -{"usage": "world", "name": "Канандаигуа"}, -{"usage": "world", "name": "Канаранзи"}, -{"usage": "world", "name": "Канасерага"}, -{"usage": "world", "name": "Канаскат"}, -{"usage": "world", "name": "Канастота"}, -{"usage": "world", "name": "Канас"}, -{"usage": "world", "name": "Канат"}, -{"usage": "world", "name": "Канаха"}, -{"usage": "world", "name": "Кангли"}, -{"usage": "world", "name": "Кандал"}, -{"usage": "world", "name": "Канделария"}, -{"usage": "world", "name": "Канделеро"}, -{"usage": "world", "name": "Канджилон"}, -{"usage": "world", "name": "Кандийохай"}, -{"usage": "world", "name": "Кандифф"}, -{"usage": "world", "name": "Кандор"}, -{"usage": "world", "name": "Кандо"}, -{"usage": "world", "name": "Канзас"}, -{"usage": "world", "name": "Канистео"}, -{"usage": "world", "name": "Канистота"}, -{"usage": "world", "name": "Кани"}, -{"usage": "world", "name": "Канкаки"}, -{"usage": "world", "name": "Канктон"}, -{"usage": "world", "name": "Канмер"}, -{"usage": "world", "name": "Каннаполис"}, -{"usage": "world", "name": "Каннел"}, -{"usage": "world", "name": "Каннингем"}, -{"usage": "world", "name": "Каннинг"}, -{"usage": "world", "name": "Каннон"}, -{"usage": "world", "name": "Канованас"}, -{"usage": "world", "name": "Канова"}, -{"usage": "world", "name": "Канонес"}, -{"usage": "world", "name": "Канонсито"}, -{"usage": "world", "name": "Канон"}, -{"usage": "world", "name": "Канополис"}, -{"usage": "world", "name": "Канорадо"}, -{"usage": "world", "name": "Канош"}, -{"usage": "world", "name": "Кано"}, -{"usage": "world", "name": "Кантил"}, -{"usage": "world", "name": "Кантонмент"}, -{"usage": "world", "name": "Кантон"}, -{"usage": "world", "name": "Кантрил"}, -{"usage": "world", "name": "Кантри"}, -{"usage": "world", "name": "Канутилло"}, -{"usage": "world", "name": "Каньон"}, -{"usage": "world", "name": "Кан"}, -{"usage": "world", "name": "Каолин"}, -{"usage": "world", "name": "Капаау"}, -{"usage": "world", "name": "Капаа"}, -{"usage": "world", "name": "Капак"}, -{"usage": "world", "name": "Капалуа"}, -{"usage": "world", "name": "Капа"}, -{"usage": "world", "name": "Капистрано"}, -{"usage": "world", "name": "Капитанехо"}, -{"usage": "world", "name": "Капитан"}, -{"usage": "world", "name": "Капитоль"}, -{"usage": "world", "name": "Каплан"}, -{"usage": "world", "name": "Каплингер"}, -{"usage": "world", "name": "Каплис"}, -{"usage": "world", "name": "Капл"}, -{"usage": "world", "name": "Капон"}, -{"usage": "world", "name": "Капоусин"}, -{"usage": "world", "name": "Капо"}, -{"usage": "world", "name": "Каппа"}, -{"usage": "world", "name": "Каппс"}, -{"usage": "world", "name": "Капрон"}, -{"usage": "world", "name": "Каптива"}, -{"usage": "world", "name": "Каптина"}, -{"usage": "world", "name": "Каптин"}, -{"usage": "world", "name": "Капута"}, -{"usage": "world", "name": "Каравай"}, -{"usage": "world", "name": "Каратунк"}, -{"usage": "world", "name": "Карбонадо"}, -{"usage": "world", "name": "Карбон"}, -{"usage": "world", "name": "Карвал"}, -{"usage": "world", "name": "Карвер"}, -{"usage": "world", "name": "Каргрэй"}, -{"usage": "world", "name": "Кардвелл"}, -{"usage": "world", "name": "Карденас"}, -{"usage": "world", "name": "Карден"}, -{"usage": "world", "name": "Кардифф"}, -{"usage": "world", "name": "Кардочесальный"}, -{"usage": "world", "name": "Каренкро"}, -{"usage": "world", "name": "Карибу"}, -{"usage": "world", "name": "Карлайл"}, -{"usage": "world", "name": "Карлин"}, -{"usage": "world", "name": "Карлисс"}, -{"usage": "world", "name": "Карлия"}, -{"usage": "world", "name": "Карлок"}, -{"usage": "world", "name": "Карлос"}, -{"usage": "world", "name": "Карлсбад"}, -{"usage": "world", "name": "Карлсруэ"}, -{"usage": "world", "name": "Карлстад"}, -{"usage": "world", "name": "Карлук"}, -{"usage": "world", "name": "Карлштадт"}, -{"usage": "world", "name": "Карль"}, -{"usage": "world", "name": "Карл"}, -{"usage": "world", "name": "Кармайкл"}, -{"usage": "world", "name": "Кармель"}, -{"usage": "world", "name": "Кармен"}, -{"usage": "world", "name": "Кармин"}, -{"usage": "world", "name": "Карми"}, -{"usage": "world", "name": "Кармоди"}, -{"usage": "world", "name": "Карнак"}, -{"usage": "world", "name": "Карнарвон"}, -{"usage": "world", "name": "Карнеги"}, -{"usage": "world", "name": "Карнейшен"}, -{"usage": "world", "name": "Карнеро"}, -{"usage": "world", "name": "Карни"}, -{"usage": "world", "name": "Карно"}, -{"usage": "world", "name": "Карнс"}, -{"usage": "world", "name": "Карн"}, -{"usage": "world", "name": "Каролина"}, -{"usage": "world", "name": "Каронделет"}, -{"usage": "world", "name": "Каро"}, -{"usage": "world", "name": "Карпентер"}, -{"usage": "world", "name": "Карпинтерия"}, -{"usage": "world", "name": "Карпио"}, -{"usage": "world", "name": "Карп"}, -{"usage": "world", "name": "Каррабассетт"}, -{"usage": "world", "name": "Каррабель"}, -{"usage": "world", "name": "Каррборо"}, -{"usage": "world", "name": "Карризалес"}, -{"usage": "world", "name": "Карризозо"}, -{"usage": "world", "name": "Карризо"}, -{"usage": "world", "name": "Карри"}, -{"usage": "world", "name": "Карротерс"}, -{"usage": "world", "name": "Карр"}, -{"usage": "world", "name": "Карсинс"}, -{"usage": "world", "name": "Карсон"}, -{"usage": "world", "name": "Картаго"}, -{"usage": "world", "name": "Картаус"}, -{"usage": "world", "name": "Карта"}, -{"usage": "world", "name": "Картере"}, -{"usage": "world", "name": "Картер"}, -{"usage": "world", "name": "Картис"}, -{"usage": "world", "name": "Карти"}, -{"usage": "world", "name": "Картрайт"}, -{"usage": "world", "name": "Карутерс"}, -{"usage": "world", "name": "Карфаген"}, -{"usage": "world", "name": "Кар"}, -{"usage": "world", "name": "Касаан"}, -{"usage": "world", "name": "Касар"}, -{"usage": "world", "name": "Каса"}, -{"usage": "world", "name": "Касел"}, -{"usage": "world", "name": "Касита"}, -{"usage": "world", "name": "Каскадия"}, -{"usage": "world", "name": "Каскад"}, -{"usage": "world", "name": "Каскаския"}, -{"usage": "world", "name": "Каскилл"}, -{"usage": "world", "name": "Каско"}, -{"usage": "world", "name": "Касл"}, -{"usage": "world", "name": "Касновия"}, -{"usage": "world", "name": "Касота"}, -{"usage": "world", "name": "Каспар"}, -{"usage": "world", "name": "Каспер"}, -{"usage": "world", "name": "Каспиана"}, -{"usage": "world", "name": "Каспий"}, -{"usage": "world", "name": "Кассадага"}, -{"usage": "world", "name": "Кассандра"}, -{"usage": "world", "name": "Кассат"}, -{"usage": "world", "name": "Касса"}, -{"usage": "world", "name": "Кассельман"}, -{"usage": "world", "name": "Кассель"}, -{"usage": "world", "name": "Касско"}, -{"usage": "world", "name": "Кассодей"}, -{"usage": "world", "name": "Кассон"}, -{"usage": "world", "name": "Кассополис"}, -{"usage": "world", "name": "Касс"}, -{"usage": "world", "name": "Касталиан"}, -{"usage": "world", "name": "Касталия"}, -{"usage": "world", "name": "Кастана"}, -{"usage": "world", "name": "Кастанеда"}, -{"usage": "world", "name": "Кастани"}, -{"usage": "world", "name": "Кастатан"}, -{"usage": "world", "name": "Кастелла"}, -{"usage": "world", "name": "Кастер"}, -{"usage": "world", "name": "Кастиль"}, -{"usage": "world", "name": "Кастин"}, -{"usage": "world", "name": "Кастолон"}, -{"usage": "world", "name": "Кастор"}, -{"usage": "world", "name": "Кастро"}, -{"usage": "world", "name": "Катай"}, -{"usage": "world", "name": "Каталина"}, -{"usage": "world", "name": "Каталла"}, -{"usage": "world", "name": "Катано"}, -{"usage": "world", "name": "Катан"}, -{"usage": "world", "name": "Катаракта"}, -{"usage": "world", "name": "Катарина"}, -{"usage": "world", "name": "Катасоква"}, -{"usage": "world", "name": "Катаула"}, -{"usage": "world", "name": "Катахоула"}, -{"usage": "world", "name": "Катберт"}, -{"usage": "world", "name": "Катедрал"}, -{"usage": "world", "name": "Катлер"}, -{"usage": "world", "name": "Катоба"}, -{"usage": "world", "name": "Катоисса"}, -{"usage": "world", "name": "Катона"}, -{"usage": "world", "name": "Като"}, -{"usage": "world", "name": "Катрин"}, -{"usage": "world", "name": "Катрон"}, -{"usage": "world", "name": "Катсби"}, -{"usage": "world", "name": "Каттава"}, -{"usage": "world", "name": "Каттарогас"}, -{"usage": "world", "name": "Каттен"}, -{"usage": "world", "name": "Каттер"}, -{"usage": "world", "name": "Катуса"}, -{"usage": "world", "name": "Катчен"}, -{"usage": "world", "name": "Кат"}, -{"usage": "world", "name": "Кауа"}, -{"usage": "world", "name": "Кауден"}, -{"usage": "world", "name": "Каудри"}, -{"usage": "world", "name": "Кауиа"}, -{"usage": "world", "name": "Каумакани"}, -{"usage": "world", "name": "Каумалапау"}, -{"usage": "world", "name": "Каунсил"}, -{"usage": "world", "name": "Каунс"}, -{"usage": "world", "name": "Каунтз"}, -{"usage": "world", "name": "Каунти"}, -{"usage": "world", "name": "Каупо"}, -{"usage": "world", "name": "Каутрон"}, -{"usage": "world", "name": "Каутс"}, -{"usage": "world", "name": "Кауфман"}, -{"usage": "world", "name": "Кауэла"}, -{"usage": "world", "name": "Кау"}, -{"usage": "world", "name": "Кафран"}, -{"usage": "world", "name": "Каффер"}, -{"usage": "world", "name": "Каффи"}, -{"usage": "world", "name": "Кахаба"}, -{"usage": "world", "name": "Кахакулоа"}, -{"usage": "world", "name": "Кахалуу"}, -{"usage": "world", "name": "Кахока"}, -{"usage": "world", "name": "Кахокия"}, -{"usage": "world", "name": "Кахон"}, -{"usage": "world", "name": "Кахо"}, -{"usage": "world", "name": "Кахуку"}, -{"usage": "world", "name": "Кахулуи"}, -{"usage": "world", "name": "Качемак"}, -{"usage": "world", "name": "Кашегелок"}, -{"usage": "world", "name": "Кашел"}, -{"usage": "world", "name": "Кашемир"}, -{"usage": "world", "name": "Каширс"}, -{"usage": "world", "name": "Кашмен"}, -{"usage": "world", "name": "Каюга"}, -{"usage": "world", "name": "Каюкос"}, -{"usage": "world", "name": "Каюко"}, -{"usage": "world", "name": "Каюс"}, -{"usage": "world", "name": "Каямунг"}, -{"usage": "world", "name": "Квайетус"}, -{"usage": "world", "name": "Квакер"}, -{"usage": "world", "name": "Квана"}, -{"usage": "world", "name": "Квантико"}, -{"usage": "world", "name": "Квапо"}, -{"usage": "world", "name": "Кваскетон"}, -{"usage": "world", "name": "Квебек"}, -{"usage": "world", "name": "Квейл"}, -{"usage": "world", "name": "Квентин"}, -{"usage": "world", "name": "Квеста"}, -{"usage": "world", "name": "Кветлак"}, -{"usage": "world", "name": "Квивайра"}, -{"usage": "world", "name": "Квиверо"}, -{"usage": "world", "name": "Квигиллингок"}, -{"usage": "world", "name": "Квиджотоа"}, -{"usage": "world", "name": "Квик"}, -{"usage": "world", "name": "Квилин"}, -{"usage": "world", "name": "Квимби"}, -{"usage": "world", "name": "Квинби"}, -{"usage": "world", "name": "Квинебааг"}, -{"usage": "world", "name": "Квинмо"}, -{"usage": "world", "name": "Квинолт"}, -{"usage": "world", "name": "Квинтер"}, -{"usage": "world", "name": "Квинтет"}, -{"usage": "world", "name": "Квинхагак"}, -{"usage": "world", "name": "Квин"}, -{"usage": "world", "name": "Квитак"}, -{"usage": "world", "name": "Квитман"}, -{"usage": "world", "name": "Квичак"}, -{"usage": "world", "name": "Квог"}, -{"usage": "world", "name": "Квойн"}, -{"usage": "world", "name": "Кебрадильяс"}, -{"usage": "world", "name": "Кевил"}, -{"usage": "world", "name": "Кевин"}, -{"usage": "world", "name": "Кевани"}, -{"usage": "world", "name": "Кеванна"}, -{"usage": "world", "name": "Кеваскум"}, -{"usage": "world", "name": "Кева"}, -{"usage": "world", "name": "Кевино"}, -{"usage": "world", "name": "Кедди"}, -{"usage": "world", "name": "Кедрон"}, -{"usage": "world", "name": "Кезар"}, -{"usage": "world", "name": "Кейапаха"}, -{"usage": "world", "name": "Кейви"}, -{"usage": "world", "name": "Кейв"}, -{"usage": "world", "name": "Кейд"}, -{"usage": "world", "name": "Кейзер"}, -{"usage": "world", "name": "Кейлор"}, -{"usage": "world", "name": "Кейл"}, -{"usage": "world", "name": "Кейни"}, -{"usage": "world", "name": "Кейн"}, -{"usage": "world", "name": "Кейпорт"}, -{"usage": "world", "name": "Кейп"}, -{"usage": "world", "name": "Кейсилоф"}, -{"usage": "world", "name": "Кейси"}, -{"usage": "world", "name": "Кейсон"}, -{"usage": "world", "name": "Кейс"}, -{"usage": "world", "name": "Кейтес"}, -{"usage": "world", "name": "Кейтмси"}, -{"usage": "world", "name": "Кекаха"}, -{"usage": "world", "name": "Кекоски"}, -{"usage": "world", "name": "Келер"}, -{"usage": "world", "name": "Келлер"}, -{"usage": "world", "name": "Келлис"}, -{"usage": "world", "name": "Келлихер"}, -{"usage": "world", "name": "Келли"}, -{"usage": "world", "name": "Келлог"}, -{"usage": "world", "name": "Келл"}, -{"usage": "world", "name": "Келси"}, -{"usage": "world", "name": "Келсо"}, -{"usage": "world", "name": "Келсэй"}, -{"usage": "world", "name": "Келтис"}, -{"usage": "world", "name": "Келтон"}, -{"usage": "world", "name": "Кельвин"}, -{"usage": "world", "name": "Кельнер"}, -{"usage": "world", "name": "Кель"}, -{"usage": "world", "name": "Кемадо"}, -{"usage": "world", "name": "Кема"}, -{"usage": "world", "name": "Кемблс"}, -{"usage": "world", "name": "Кеммерер"}, -{"usage": "world", "name": "Кемпнер"}, -{"usage": "world", "name": "Кемпстер"}, -{"usage": "world", "name": "Кемп"}, -{"usage": "world", "name": "Кенай"}, -{"usage": "world", "name": "Кенанс"}, -{"usage": "world", "name": "Кенвил"}, -{"usage": "world", "name": "Кендалл"}, -{"usage": "world", "name": "Кендл"}, -{"usage": "world", "name": "Кендрик"}, -{"usage": "world", "name": "Кенеди"}, -{"usage": "world", "name": "Кенель"}, -{"usage": "world", "name": "Кенесо"}, -{"usage": "world", "name": "Кенефик"}, -{"usage": "world", "name": "Кензи"}, -{"usage": "world", "name": "Кенли"}, -{"usage": "world", "name": "Кенмар"}, -{"usage": "world", "name": "Кенмор"}, -{"usage": "world", "name": "Кеннан"}, -{"usage": "world", "name": "Кеннард"}, -{"usage": "world", "name": "Кенна"}, -{"usage": "world", "name": "Кеннебанк"}, -{"usage": "world", "name": "Кеннебек"}, -{"usage": "world", "name": "Кенневик"}, -{"usage": "world", "name": "Кеннеди"}, -{"usage": "world", "name": "Кеннер"}, -{"usage": "world", "name": "Кеннесоу"}, -{"usage": "world", "name": "Кеннет"}, -{"usage": "world", "name": "Кенне"}, -{"usage": "world", "name": "Кенни"}, -{"usage": "world", "name": "Кенова"}, -{"usage": "world", "name": "Кеноша"}, -{"usage": "world", "name": "Кено"}, -{"usage": "world", "name": "Кенсал"}, -{"usage": "world", "name": "Кенсетт"}, -{"usage": "world", "name": "Кенсинг"}, -{"usage": "world", "name": "Кентон"}, -{"usage": "world", "name": "Кент"}, -{"usage": "world", "name": "Кенхорст"}, -{"usage": "world", "name": "Кеньон"}, -{"usage": "world", "name": "Кен"}, -{"usage": "world", "name": "Кеоки"}, -{"usage": "world", "name": "Кеокук"}, -{"usage": "world", "name": "Кеома"}, -{"usage": "world", "name": "Кеосоква"}, -{"usage": "world", "name": "Кеота"}, -{"usage": "world", "name": "Кео"}, -{"usage": "world", "name": "Керби"}, -{"usage": "world", "name": "Керенс"}, -{"usage": "world", "name": "Керлью"}, -{"usage": "world", "name": "Кермит"}, -{"usage": "world", "name": "Кернерс"}, -{"usage": "world", "name": "Керни"}, -{"usage": "world", "name": "Кернс"}, -{"usage": "world", "name": "Керн"}, -{"usage": "world", "name": "Керрик"}, -{"usage": "world", "name": "Керритак"}, -{"usage": "world", "name": "Керр"}, -{"usage": "world", "name": "Керси"}, -{"usage": "world", "name": "Кертейн"}, -{"usage": "world", "name": "Кертис"}, -{"usage": "world", "name": "Керт"}, -{"usage": "world", "name": "Керуэнс"}, -{"usage": "world", "name": "Керховен"}, -{"usage": "world", "name": "Керхонк"}, -{"usage": "world", "name": "Кершоу"}, -{"usage": "world", "name": "Кесли"}, -{"usage": "world", "name": "Кесуик"}, -{"usage": "world", "name": "Кетлман"}, -{"usage": "world", "name": "Кеттеринг"}, -{"usage": "world", "name": "Кеттлерс"}, -{"usage": "world", "name": "Кеттл"}, -{"usage": "world", "name": "Кетчикан"}, -{"usage": "world", "name": "Кетчум"}, -{"usage": "world", "name": "Кеука"}, -{"usage": "world", "name": "Кечи"}, -{"usage": "world", "name": "Кешена"}, -{"usage": "world", "name": "Киава"}, -{"usage": "world", "name": "Киана"}, -{"usage": "world", "name": "Киас"}, -{"usage": "world", "name": "Киббен"}, -{"usage": "world", "name": "Кибла"}, -{"usage": "world", "name": "Кибурц"}, -{"usage": "world", "name": "Кивакапу"}, -{"usage": "world", "name": "Кивалик"}, -{"usage": "world", "name": "Кивалина"}, -{"usage": "world", "name": "Киватин"}, -{"usage": "world", "name": "Киви"}, -{"usage": "world", "name": "Киго"}, -{"usage": "world", "name": "Киддер"}, -{"usage": "world", "name": "Кидис"}, -{"usage": "world", "name": "Киз"}, -{"usage": "world", "name": "Кикинг"}, -{"usage": "world", "name": "Килайн"}, -{"usage": "world", "name": "Килауэа"}, -{"usage": "world", "name": "Кила"}, -{"usage": "world", "name": "Килбурн"}, -{"usage": "world", "name": "Килгор"}, -{"usage": "world", "name": "Килдир"}, -{"usage": "world", "name": "Килдэр"}, -{"usage": "world", "name": "Килейккуа"}, -{"usage": "world", "name": "Килер"}, -{"usage": "world", "name": "Килин"}, -{"usage": "world", "name": "Килия"}, -{"usage": "world", "name": "Килкенни"}, -{"usage": "world", "name": "Килкэр"}, -{"usage": "world", "name": "Киллбук"}, -{"usage": "world", "name": "Киллдафф"}, -{"usage": "world", "name": "Киллдир"}, -{"usage": "world", "name": "Киллен"}, -{"usage": "world", "name": "Киллиан"}, -{"usage": "world", "name": "Килмайкл"}, -{"usage": "world", "name": "Килмарнок"}, -{"usage": "world", "name": "Килн"}, -{"usage": "world", "name": "Киль"}, -{"usage": "world", "name": "Кимбалл"}, -{"usage": "world", "name": "Кимберлинг"}, -{"usage": "world", "name": "Кимберли"}, -{"usage": "world", "name": "Кимбер"}, -{"usage": "world", "name": "Кимбол"}, -{"usage": "world", "name": "Кимброу"}, -{"usage": "world", "name": "Кимминс"}, -{"usage": "world", "name": "Кимпер"}, -{"usage": "world", "name": "Кимс"}, -{"usage": "world", "name": "Ким"}, -{"usage": "world", "name": "Кинан"}, -{"usage": "world", "name": "Кинард"}, -{"usage": "world", "name": "Кинбрей"}, -{"usage": "world", "name": "Кингдом"}, -{"usage": "world", "name": "Кингман"}, -{"usage": "world", "name": "Кингсли"}, -{"usage": "world", "name": "Кингс"}, -{"usage": "world", "name": "Кингфишер"}, -{"usage": "world", "name": "Кинг"}, -{"usage": "world", "name": "Киндерлоу"}, -{"usage": "world", "name": "Киндерхук"}, -{"usage": "world", "name": "Киндер"}, -{"usage": "world", "name": "Киндред"}, -{"usage": "world", "name": "Кинер"}, -{"usage": "world", "name": "Кинзуа"}, -{"usage": "world", "name": "Кини"}, -{"usage": "world", "name": "Кинкейд"}, -{"usage": "world", "name": "Кинли"}, -{"usage": "world", "name": "Кинмунди"}, -{"usage": "world", "name": "Киннелон"}, -{"usage": "world", "name": "Киннер"}, -{"usage": "world", "name": "Кинни"}, -{"usage": "world", "name": "Киннон"}, -{"usage": "world", "name": "Кинросс"}, -{"usage": "world", "name": "Кинси"}, -{"usage": "world", "name": "Кинсли"}, -{"usage": "world", "name": "Кинстон"}, -{"usage": "world", "name": "Кинсэйл"}, -{"usage": "world", "name": "Кинс"}, -{"usage": "world", "name": "Кинтайр"}, -{"usage": "world", "name": "Кинтана"}, -{"usage": "world", "name": "Кинта"}, -{"usage": "world", "name": "Кинтер"}, -{"usage": "world", "name": "Кин"}, -{"usage": "world", "name": "Киоау"}, -{"usage": "world", "name": "Кипарис"}, -{"usage": "world", "name": "Кипаулью"}, -{"usage": "world", "name": "Киплинг"}, -{"usage": "world", "name": "Кипнук"}, -{"usage": "world", "name": "Кипп"}, -{"usage": "world", "name": "Киптон"}, -{"usage": "world", "name": "Кирби"}, -{"usage": "world", "name": "Кирвин"}, -{"usage": "world", "name": "Кирвин"}, -{"usage": "world", "name": "Киркер"}, -{"usage": "world", "name": "Кирклин"}, -{"usage": "world", "name": "Киркман"}, -{"usage": "world", "name": "Киркси"}, -{"usage": "world", "name": "Киркс"}, -{"usage": "world", "name": "Кирк"}, -{"usage": "world", "name": "Кирли"}, -{"usage": "world", "name": "Кирни"}, -{"usage": "world", "name": "Кирон"}, -{"usage": "world", "name": "Кирт"}, -{"usage": "world", "name": "Кирьяс"}, -{"usage": "world", "name": "Кир"}, -{"usage": "world", "name": "Кисатчи"}, -{"usage": "world", "name": "Киско"}, -{"usage": "world", "name": "Киссимми"}, -{"usage": "world", "name": "Кистер"}, -{"usage": "world", "name": "Кистлер"}, -{"usage": "world", "name": "Кис"}, -{"usage": "world", "name": "Киталоу"}, -{"usage": "world", "name": "Китинг"}, -{"usage": "world", "name": "Кито"}, -{"usage": "world", "name": "Китсап"}, -{"usage": "world", "name": "Китс"}, -{"usage": "world", "name": "Киттаннинг"}, -{"usage": "world", "name": "Киттери"}, -{"usage": "world", "name": "Киттитас"}, -{"usage": "world", "name": "Китти"}, -{"usage": "world", "name": "Киттредж"}, -{"usage": "world", "name": "Киттрелл"}, -{"usage": "world", "name": "Киттрик"}, -{"usage": "world", "name": "Кит"}, -{"usage": "world", "name": "Кифер"}, -{"usage": "world", "name": "Кифтон"}, -{"usage": "world", "name": "Киф"}, -{"usage": "world", "name": "Кихей"}, -{"usage": "world", "name": "Кицмиллер"}, -{"usage": "world", "name": "Кичи"}, -{"usage": "world", "name": "Ки"}, -{"usage": "world", "name": "Клаверек"}, -{"usage": "world", "name": "Клайв"}, -{"usage": "world", "name": "Клайд"}, -{"usage": "world", "name": "Клаймер"}, -{"usage": "world", "name": "Клайн"}, -{"usage": "world", "name": "Клайо"}, -{"usage": "world", "name": "Клайэтт"}, -{"usage": "world", "name": "Клаллам"}, -{"usage": "world", "name": "Кламат"}, -{"usage": "world", "name": "Клам"}, -{"usage": "world", "name": "Клара"}, -{"usage": "world", "name": "Кларенс"}, -{"usage": "world", "name": "Кларидон"}, -{"usage": "world", "name": "Кларинда"}, -{"usage": "world", "name": "Кларион"}, -{"usage": "world", "name": "Кларисса"}, -{"usage": "world", "name": "Кларита"}, -{"usage": "world", "name": "Клари"}, -{"usage": "world", "name": "Кларкона"}, -{"usage": "world", "name": "Кларкранж"}, -{"usage": "world", "name": "Кларкридж"}, -{"usage": "world", "name": "Кларксон"}, -{"usage": "world", "name": "Кларкс"}, -{"usage": "world", "name": "Кларк"}, -{"usage": "world", "name": "Класки"}, -{"usage": "world", "name": "Кластер"}, -{"usage": "world", "name": "Клатония"}, -{"usage": "world", "name": "Клатьер"}, -{"usage": "world", "name": "Клауд"}, -{"usage": "world", "name": "Клауен"}, -{"usage": "world", "name": "Клаус"}, -{"usage": "world", "name": "Клевер"}, -{"usage": "world", "name": "Клевис"}, -{"usage": "world", "name": "Клегхорн"}, -{"usage": "world", "name": "Клед"}, -{"usage": "world", "name": "Клейборн"}, -{"usage": "world", "name": "Клейв"}, -{"usage": "world", "name": "Клейкомо"}, -{"usage": "world", "name": "Клейн"}, -{"usage": "world", "name": "Клейпул"}, -{"usage": "world", "name": "Клейтон"}, -{"usage": "world", "name": "Клей"}, -{"usage": "world", "name": "Клеллан"}, -{"usage": "world", "name": "Клел"}, -{"usage": "world", "name": "Клеменс"}, -{"usage": "world", "name": "Клементон"}, -{"usage": "world", "name": "Клемент"}, -{"usage": "world", "name": "Клеммонс"}, -{"usage": "world", "name": "Клемм"}, -{"usage": "world", "name": "Клемонс"}, -{"usage": "world", "name": "Клемсон"}, -{"usage": "world", "name": "Клем"}, -{"usage": "world", "name": "Кленденин"}, -{"usage": "world", "name": "Клеона"}, -{"usage": "world", "name": "Клео"}, -{"usage": "world", "name": "Клермон"}, -{"usage": "world", "name": "Клер"}, -{"usage": "world", "name": "Клета"}, -{"usage": "world", "name": "Кле"}, -{"usage": "world", "name": "Клиберн"}, -{"usage": "world", "name": "Клив"}, -{"usage": "world", "name": "Кликитат"}, -{"usage": "world", "name": "Клико"}, -{"usage": "world", "name": "Климакс"}, -{"usage": "world", "name": "Климан"}, -{"usage": "world", "name": "Климбинг"}, -{"usage": "world", "name": "Клинтон"}, -{"usage": "world", "name": "Клинт"}, -{"usage": "world", "name": "Клинчко"}, -{"usage": "world", "name": "Клинч"}, -{"usage": "world", "name": "Клио"}, -{"usage": "world", "name": "Клири"}, -{"usage": "world", "name": "Клирко"}, -{"usage": "world", "name": "Клир"}, -{"usage": "world", "name": "Клитералл"}, -{"usage": "world", "name": "Клитон"}, -{"usage": "world", "name": "Клифти"}, -{"usage": "world", "name": "Клифф"}, -{"usage": "world", "name": "Клиф"}, -{"usage": "world", "name": "Кловерли"}, -{"usage": "world", "name": "Кловер"}, -{"usage": "world", "name": "Кловис"}, -{"usage": "world", "name": "Клокей"}, -{"usage": "world", "name": "Клондайк"}, -{"usage": "world", "name": "Клонтарф"}, -{"usage": "world", "name": "Клонч"}, -{"usage": "world", "name": "Клоок"}, -{"usage": "world", "name": "Клоптон"}, -{"usage": "world", "name": "Клосснер"}, -{"usage": "world", "name": "Клоусон"}, -{"usage": "world", "name": "Клоу"}, -{"usage": "world", "name": "Клуб"}, -{"usage": "world", "name": "Клукван"}, -{"usage": "world", "name": "Клэкстон"}, -{"usage": "world", "name": "Клэнси"}, -{"usage": "world", "name": "Клэнтон"}, -{"usage": "world", "name": "Клэретт"}, -{"usage": "world", "name": "Клэрндон"}, -{"usage": "world", "name": "Клэр"}, -{"usage": "world", "name": "Клэтскани"}, -{"usage": "world", "name": "Клюр"}, -{"usage": "world", "name": "Кнаппа"}, -{"usage": "world", "name": "Кнауэр"}, -{"usage": "world", "name": "Кнолль"}, -{"usage": "world", "name": "Коамо"}, -{"usage": "world", "name": "Коахома"}, -{"usage": "world", "name": "Кобальт"}, -{"usage": "world", "name": "Кобб"}, -{"usage": "world", "name": "Кобден"}, -{"usage": "world", "name": "Коберн"}, -{"usage": "world", "name": "Кобл"}, -{"usage": "world", "name": "Кобри"}, -{"usage": "world", "name": "Кобук"}, -{"usage": "world", "name": "Ковада"}, -{"usage": "world", "name": "Ковело"}, -{"usage": "world", "name": "Ковенант"}, -{"usage": "world", "name": "Ковентри"}, -{"usage": "world", "name": "Коверт"}, -{"usage": "world", "name": "Ковер"}, -{"usage": "world", "name": "Ковина"}, -{"usage": "world", "name": "Ковинг"}, -{"usage": "world", "name": "Ковард"}, -{"usage": "world", "name": "Коварт"}, -{"usage": "world", "name": "Когар"}, -{"usage": "world", "name": "Коггиунг"}, -{"usage": "world", "name": "Коггон"}, -{"usage": "world", "name": "Когделл"}, -{"usage": "world", "name": "Когсвелл"}, -{"usage": "world", "name": "Коделл"}, -{"usage": "world", "name": "Коди"}, -{"usage": "world", "name": "Кодман"}, -{"usage": "world", "name": "Коер"}, -{"usage": "world", "name": "Кожа"}, -{"usage": "world", "name": "Козад"}, -{"usage": "world", "name": "Кози"}, -{"usage": "world", "name": "Коин"}, -{"usage": "world", "name": "Койек"}, -{"usage": "world", "name": "Койла"}, -{"usage": "world", "name": "Койл"}, -{"usage": "world", "name": "Койот"}, -{"usage": "world", "name": "Койукак"}, -{"usage": "world", "name": "Кой"}, -{"usage": "world", "name": "Кокадхо"}, -{"usage": "world", "name": "Кокато"}, -{"usage": "world", "name": "Кокиль"}, -{"usage": "world", "name": "Кокис"}, -{"usage": "world", "name": "Коки"}, -{"usage": "world", "name": "Кокодри"}, -{"usage": "world", "name": "Коколалла"}, -{"usage": "world", "name": "Кокомо"}, -{"usage": "world", "name": "Коконат"}, -{"usage": "world", "name": "Коконино"}, -{"usage": "world", "name": "Кокос"}, -{"usage": "world", "name": "Кокрайнс"}, -{"usage": "world", "name": "Кокрам"}, -{"usage": "world", "name": "Кокран"}, -{"usage": "world", "name": "Кокрейн"}, -{"usage": "world", "name": "Кокрелл"}, -{"usage": "world", "name": "Коксаки"}, -{"usage": "world", "name": "Кокс"}, -{"usage": "world", "name": "Кок"}, -{"usage": "world", "name": "Колберн"}, -{"usage": "world", "name": "Колби"}, -{"usage": "world", "name": "Колб"}, -{"usage": "world", "name": "Колвер"}, -{"usage": "world", "name": "Колвин"}, -{"usage": "world", "name": "Колвос"}, -{"usage": "world", "name": "Колден"}, -{"usage": "world", "name": "Колдуэлл"}, -{"usage": "world", "name": "Колд"}, -{"usage": "world", "name": "Колер"}, -{"usage": "world", "name": "Колета"}, -{"usage": "world", "name": "Колея"}, -{"usage": "world", "name": "Колиганек"}, -{"usage": "world", "name": "Колинг"}, -{"usage": "world", "name": "Колин"}, -{"usage": "world", "name": "Коли"}, -{"usage": "world", "name": "Колкитт"}, -{"usage": "world", "name": "Колкорд"}, -{"usage": "world", "name": "Колкс"}, -{"usage": "world", "name": "Коллайер"}, -{"usage": "world", "name": "Коллбран"}, -{"usage": "world", "name": "Колледж"}, -{"usage": "world", "name": "Коллеттс"}, -{"usage": "world", "name": "Коллинг"}, -{"usage": "world", "name": "Коллин"}, -{"usage": "world", "name": "Коллисон"}, -{"usage": "world", "name": "Коллис"}, -{"usage": "world", "name": "Колли"}, -{"usage": "world", "name": "Колл"}, -{"usage": "world", "name": "Колман"}, -{"usage": "world", "name": "Колма"}, -{"usage": "world", "name": "Колмес"}, -{"usage": "world", "name": "Колмор"}, -{"usage": "world", "name": "Колоа"}, -{"usage": "world", "name": "Колола"}, -{"usage": "world", "name": "Колома"}, -{"usage": "world", "name": "Коломбина"}, -{"usage": "world", "name": "Колона"}, -{"usage": "world", "name": "Колониаль"}, -{"usage": "world", "name": "Колония"}, -{"usage": "world", "name": "Колони"}, -{"usage": "world", "name": "Колонь"}, -{"usage": "world", "name": "Колон"}, -{"usage": "world", "name": "Колорадо"}, -{"usage": "world", "name": "Колп"}, -{"usage": "world", "name": "Колрейн"}, -{"usage": "world", "name": "Колсон"}, -{"usage": "world", "name": "Колстрип"}, -{"usage": "world", "name": "Колтон"}, -{"usage": "world", "name": "Колумбиана"}, -{"usage": "world", "name": "Колумбия"}, -{"usage": "world", "name": "Колумбус"}, -{"usage": "world", "name": "Колуэлл"}, -{"usage": "world", "name": "Колфакс"}, -{"usage": "world", "name": "Колчестер"}, -{"usage": "world", "name": "Кольберт"}, -{"usage": "world", "name": "Кольер"}, -{"usage": "world", "name": "Кольмар"}, -{"usage": "world", "name": "Кольридж"}, -{"usage": "world", "name": "Кольт"}, -{"usage": "world", "name": "Кольюза"}, -{"usage": "world", "name": "Коль"}, -{"usage": "world", "name": "Кол"}, -{"usage": "world", "name": "Комал"}, -{"usage": "world", "name": "Командор"}, -{"usage": "world", "name": "Команчи"}, -{"usage": "world", "name": "Коматк"}, -{"usage": "world", "name": "Комбайн"}, -{"usage": "world", "name": "Комбес"}, -{"usage": "world", "name": "Комби"}, -{"usage": "world", "name": "Комб"}, -{"usage": "world", "name": "Комелик"}, -{"usage": "world", "name": "Комерио"}, -{"usage": "world", "name": "Комер"}, -{"usage": "world", "name": "Коммак"}, -{"usage": "world", "name": "Коммерция"}, -{"usage": "world", "name": "Коммершиал"}, -{"usage": "world", "name": "Коммонуэлт"}, -{"usage": "world", "name": "Коммон"}, -{"usage": "world", "name": "Коммьюнити"}, -{"usage": "world", "name": "Комобаби"}, -{"usage": "world", "name": "Комо"}, -{"usage": "world", "name": "Компас"}, -{"usage": "world", "name": "Компетишн"}, -{"usage": "world", "name": "Комптон"}, -{"usage": "world", "name": "Комптче"}, -{"usage": "world", "name": "Комсток"}, -{"usage": "world", "name": "Комунас"}, -{"usage": "world", "name": "Комфорт"}, -{"usage": "world", "name": "Комфри"}, -{"usage": "world", "name": "Конава"}, -{"usage": "world", "name": "Конасога"}, -{"usage": "world", "name": "Коната"}, -{"usage": "world", "name": "Конвей"}, -{"usage": "world", "name": "Конвент"}, -{"usage": "world", "name": "Конверс"}, -{"usage": "world", "name": "Конвой"}, -{"usage": "world", "name": "Конгари"}, -{"usage": "world", "name": "Конгер"}, -{"usage": "world", "name": "Конгресс"}, -{"usage": "world", "name": "Конгрюити"}, -{"usage": "world", "name": "Конда"}, -{"usage": "world", "name": "Конджиганак"}, -{"usage": "world", "name": "Кондит"}, -{"usage": "world", "name": "Конди"}, -{"usage": "world", "name": "Кондон"}, -{"usage": "world", "name": "Конингхем"}, -{"usage": "world", "name": "Кони"}, -{"usage": "world", "name": "Конкан"}, -{"usage": "world", "name": "Конклин"}, -{"usage": "world", "name": "Конконулли"}, -{"usage": "world", "name": "Конкордия"}, -{"usage": "world", "name": "Конкорд"}, -{"usage": "world", "name": "Конкоу"}, -{"usage": "world", "name": "Конкрет"}, -{"usage": "world", "name": "Конли"}, -{"usage": "world", "name": "Коннарок"}, -{"usage": "world", "name": "Коннелли"}, -{"usage": "world", "name": "Коннелл"}, -{"usage": "world", "name": "Коннел"}, -{"usage": "world", "name": "Коннер"}, -{"usage": "world", "name": "Конниут"}, -{"usage": "world", "name": "Коннор"}, -{"usage": "world", "name": "Коновер"}, -{"usage": "world", "name": "Конрад"}, -{"usage": "world", "name": "Конрат"}, -{"usage": "world", "name": "Конрой"}, -{"usage": "world", "name": "Конро"}, -{"usage": "world", "name": "Консеквенсес"}, -{"usage": "world", "name": "Консепсьон"}, -{"usage": "world", "name": "Консешен"}, -{"usage": "world", "name": "Константин"}, -{"usage": "world", "name": "Констебль"}, -{"usage": "world", "name": "Контакт"}, -{"usage": "world", "name": "Континенталь"}, -{"usage": "world", "name": "Конто"}, -{"usage": "world", "name": "Контрерас"}, -{"usage": "world", "name": "Контукук"}, -{"usage": "world", "name": "Конус"}, -{"usage": "world", "name": "Конфлуенс"}, -{"usage": "world", "name": "Конхатта"}, -{"usage": "world", "name": "Концепция"}, -{"usage": "world", "name": "Кончас"}, -{"usage": "world", "name": "Кончо"}, -{"usage": "world", "name": "Коншохокен"}, -{"usage": "world", "name": "Коньехо"}, -{"usage": "world", "name": "Кооператив"}, -{"usage": "world", "name": "Копалис"}, -{"usage": "world", "name": "Копан"}, -{"usage": "world", "name": "Копемиш"}, -{"usage": "world", "name": "Копиаг"}, -{"usage": "world", "name": "Коплей"}, -{"usage": "world", "name": "Копли"}, -{"usage": "world", "name": "Коппелл"}, -{"usage": "world", "name": "Коппел"}, -{"usage": "world", "name": "Копперл"}, -{"usage": "world", "name": "Копперс"}, -{"usage": "world", "name": "Коппер"}, -{"usage": "world", "name": "Коппитт"}, -{"usage": "world", "name": "Коппок"}, -{"usage": "world", "name": "Коралл"}, -{"usage": "world", "name": "Корам"}, -{"usage": "world", "name": "Кораополис"}, -{"usage": "world", "name": "Корасон"}, -{"usage": "world", "name": "Кора"}, -{"usage": "world", "name": "Корбел"}, -{"usage": "world", "name": "Корбетт"}, -{"usage": "world", "name": "Корбет"}, -{"usage": "world", "name": "Корбин"}, -{"usage": "world", "name": "Корваллис"}, -{"usage": "world", "name": "Корвин"}, -{"usage": "world", "name": "Корвит"}, -{"usage": "world", "name": "Корделл"}, -{"usage": "world", "name": "Кордель"}, -{"usage": "world", "name": "Кордер"}, -{"usage": "world", "name": "Кордова"}, -{"usage": "world", "name": "Кордс"}, -{"usage": "world", "name": "Корд"}, -{"usage": "world", "name": "Коридон"}, -{"usage": "world", "name": "Коринна"}, -{"usage": "world", "name": "Коринф"}, -{"usage": "world", "name": "Кори"}, -{"usage": "world", "name": "Корковадо"}, -{"usage": "world", "name": "Коркоран"}, -{"usage": "world", "name": "Кормик"}, -{"usage": "world", "name": "Корморант"}, -{"usage": "world", "name": "Корнелий"}, -{"usage": "world", "name": "Корнелия"}, -{"usage": "world", "name": "Корнелл"}, -{"usage": "world", "name": "Корнер"}, -{"usage": "world", "name": "Корнеттс"}, -{"usage": "world", "name": "Корнинг"}, -{"usage": "world", "name": "Корниш"}, -{"usage": "world", "name": "Корнли"}, -{"usage": "world", "name": "Корнудас"}, -{"usage": "world", "name": "Корнукопия"}, -{"usage": "world", "name": "Корнуолл"}, -{"usage": "world", "name": "Корнуэлл"}, -{"usage": "world", "name": "Корн"}, -{"usage": "world", "name": "Корозал"}, -{"usage": "world", "name": "Королла"}, -{"usage": "world", "name": "Коронадо"}, -{"usage": "world", "name": "Корона"}, -{"usage": "world", "name": "Корпус"}, -{"usage": "world", "name": "Корралитос"}, -{"usage": "world", "name": "Коррал"}, -{"usage": "world", "name": "Коррекция"}, -{"usage": "world", "name": "Коррео"}, -{"usage": "world", "name": "Корриган"}, -{"usage": "world", "name": "Корри"}, -{"usage": "world", "name": "Корсика"}, -{"usage": "world", "name": "Корси"}, -{"usage": "world", "name": "Корс"}, -{"usage": "world", "name": "Кортада"}, -{"usage": "world", "name": "Кортаро"}, -{"usage": "world", "name": "Кортес"}, -{"usage": "world", "name": "Корте"}, -{"usage": "world", "name": "Кортланд"}, -{"usage": "world", "name": "Кортни"}, -{"usage": "world", "name": "Корт"}, -{"usage": "world", "name": "Корум"}, -{"usage": "world", "name": "Корунья"}, -{"usage": "world", "name": "Корфу"}, -{"usage": "world", "name": "Кор"}, -{"usage": "world", "name": "Косби"}, -{"usage": "world", "name": "Косгрейв"}, -{"usage": "world", "name": "Косзта"}, -{"usage": "world", "name": "Космополис"}, -{"usage": "world", "name": "Космос"}, -{"usage": "world", "name": "Коссе"}, -{"usage": "world", "name": "Коста"}, -{"usage": "world", "name": "Костилла"}, -{"usage": "world", "name": "Кость"}, -{"usage": "world", "name": "Кост"}, -{"usage": "world", "name": "Косциаско"}, -{"usage": "world", "name": "Котати"}, -{"usage": "world", "name": "Котес"}, -{"usage": "world", "name": "Котлик"}, -{"usage": "world", "name": "Котопакси"}, -{"usage": "world", "name": "Кото"}, -{"usage": "world", "name": "Коттедж"}, -{"usage": "world", "name": "Коттер"}, -{"usage": "world", "name": "Коттл"}, -{"usage": "world", "name": "Котуит"}, -{"usage": "world", "name": "Котулла"}, -{"usage": "world", "name": "Кот"}, -{"usage": "world", "name": "Коув"}, -{"usage": "world", "name": "Коудерс"}, -{"usage": "world", "name": "Коуд"}, -{"usage": "world", "name": "Коуета"}, -{"usage": "world", "name": "Коукер"}, -{"usage": "world", "name": "Коулза"}, -{"usage": "world", "name": "Коулик"}, -{"usage": "world", "name": "Коулинг"}, -{"usage": "world", "name": "Коули"}, -{"usage": "world", "name": "Коултер"}, -{"usage": "world", "name": "Коул"}, -{"usage": "world", "name": "Коупенс"}, -{"usage": "world", "name": "Коуп"}, -{"usage": "world", "name": "Коутс"}, -{"usage": "world", "name": "Коуч"}, -{"usage": "world", "name": "Коуэлл"}, -{"usage": "world", "name": "Коуэн"}, -{"usage": "world", "name": "Коу"}, -{"usage": "world", "name": "Кофе"}, -{"usage": "world", "name": "Кофилд"}, -{"usage": "world", "name": "Кофман"}, -{"usage": "world", "name": "Коффин"}, -{"usage": "world", "name": "Коффи"}, -{"usage": "world", "name": "Кохаген"}, -{"usage": "world", "name": "Коханок"}, -{"usage": "world", "name": "Кохассет"}, -{"usage": "world", "name": "Кохоктон"}, -{"usage": "world", "name": "Кохо"}, -{"usage": "world", "name": "Кохутта"}, -{"usage": "world", "name": "Коцебу"}, -{"usage": "world", "name": "Кочайчуат"}, -{"usage": "world", "name": "Кочелла"}, -{"usage": "world", "name": "Кочиз"}, -{"usage": "world", "name": "Кочити"}, -{"usage": "world", "name": "Кошкононг"}, -{"usage": "world", "name": "Кошок"}, -{"usage": "world", "name": "Кошут"}, -{"usage": "world", "name": "Ко"}, -{"usage": "world", "name": "Крабтри"}, -{"usage": "world", "name": "Крабэппл"}, -{"usage": "world", "name": "Краб"}, -{"usage": "world", "name": "Крагнс"}, -{"usage": "world", "name": "Краг"}, -{"usage": "world", "name": "Крайслер"}, -{"usage": "world", "name": "Кракен"}, -{"usage": "world", "name": "Краков"}, -{"usage": "world", "name": "Крамер"}, -{"usage": "world", "name": "Крамп"}, -{"usage": "world", "name": "Крандалл"}, -{"usage": "world", "name": "Кранелл"}, -{"usage": "world", "name": "Краннелл"}, -{"usage": "world", "name": "Кранфиллс"}, -{"usage": "world", "name": "Кранц"}, -{"usage": "world", "name": "Кран"}, -{"usage": "world", "name": "Крари"}, -{"usage": "world", "name": "Кратч"}, -{"usage": "world", "name": "Краудер"}, -{"usage": "world", "name": "Крафтон"}, -{"usage": "world", "name": "Кребс"}, -{"usage": "world", "name": "Креди"}, -{"usage": "world", "name": "Крейг"}, -{"usage": "world", "name": "Крейн"}, -{"usage": "world", "name": "Крейтон"}, -{"usage": "world", "name": "Крекер"}, -{"usage": "world", "name": "Кремер"}, -{"usage": "world", "name": "Кремль"}, -{"usage": "world", "name": "Креммлинг"}, -{"usage": "world", "name": "Крем"}, -{"usage": "world", "name": "Креншоу"}, -{"usage": "world", "name": "Креола"}, -{"usage": "world", "name": "Креол"}, -{"usage": "world", "name": "Кресап"}, -{"usage": "world", "name": "Кресбард"}, -{"usage": "world", "name": "Кресент"}, -{"usage": "world", "name": "Креско"}, -{"usage": "world", "name": "Кресскилл"}, -{"usage": "world", "name": "Крессона"}, -{"usage": "world", "name": "Крессон"}, -{"usage": "world", "name": "Кресс"}, -{"usage": "world", "name": "Крестед"}, -{"usage": "world", "name": "Крестлина"}, -{"usage": "world", "name": "Крестон"}, -{"usage": "world", "name": "Крест"}, -{"usage": "world", "name": "Кресуэлл"}, -{"usage": "world", "name": "Кривиц"}, -{"usage": "world", "name": "Крив"}, -{"usage": "world", "name": "Кридер"}, -{"usage": "world", "name": "Кридмур"}, -{"usage": "world", "name": "Крикет"}, -{"usage": "world", "name": "Крик"}, -{"usage": "world", "name": "Крилс"}, -{"usage": "world", "name": "Крил"}, -{"usage": "world", "name": "Кримора"}, -{"usage": "world", "name": "Кринер"}, -{"usage": "world", "name": "Криппл"}, -{"usage": "world", "name": "Крисман"}, -{"usage": "world", "name": "Кристалл"}, -{"usage": "world", "name": "Кристиана"}, -{"usage": "world", "name": "Кристиан"}, -{"usage": "world", "name": "Кристина"}, -{"usage": "world", "name": "Кристин"}, -{"usage": "world", "name": "Кристи"}, -{"usage": "world", "name": "Кристмас"}, -{"usage": "world", "name": "Кристобаль"}, -{"usage": "world", "name": "Кристоваль"}, -{"usage": "world", "name": "Кристола"}, -{"usage": "world", "name": "Кристофер"}, -{"usage": "world", "name": "Крис"}, -{"usage": "world", "name": "Крит"}, -{"usage": "world", "name": "Кроган"}, -{"usage": "world", "name": "Крозе"}, -{"usage": "world", "name": "Кройдон"}, -{"usage": "world", "name": "Крокер"}, -{"usage": "world", "name": "Крокетт"}, -{"usage": "world", "name": "Кромби"}, -{"usage": "world", "name": "Кромвель"}, -{"usage": "world", "name": "Кронборг"}, -{"usage": "world", "name": "Кронен"}, -{"usage": "world", "name": "Кроппер"}, -{"usage": "world", "name": "Кропси"}, -{"usage": "world", "name": "Крори"}, -{"usage": "world", "name": "Кросби"}, -{"usage": "world", "name": "Кросвелл"}, -{"usage": "world", "name": "Кроссвик"}, -{"usage": "world", "name": "Кроссетт"}, -{"usage": "world", "name": "Кроссинг"}, -{"usage": "world", "name": "Кросснор"}, -{"usage": "world", "name": "Кроссрод"}, -{"usage": "world", "name": "Кросс"}, -{"usage": "world", "name": "Кротерс"}, -{"usage": "world", "name": "Кротон"}, -{"usage": "world", "name": "Кроун"}, -{"usage": "world", "name": "Кроуч"}, -{"usage": "world", "name": "Кроуэл"}, -{"usage": "world", "name": "Кроу"}, -{"usage": "world", "name": "Крофтона"}, -{"usage": "world", "name": "Крофт"}, -{"usage": "world", "name": "Кроц"}, -{"usage": "world", "name": "Круа"}, -{"usage": "world", "name": "Кругер"}, -{"usage": "world", "name": "Крузо"}, -{"usage": "world", "name": "Крукед"}, -{"usage": "world", "name": "Крукс"}, -{"usage": "world", "name": "Крум"}, -{"usage": "world", "name": "Крупп"}, -{"usage": "world", "name": "Крусеро"}, -{"usage": "world", "name": "Крусес"}, -{"usage": "world", "name": "Крус"}, -{"usage": "world", "name": "Крэнстон"}, -{"usage": "world", "name": "Крюгер"}, -{"usage": "world", "name": "Крю"}, -{"usage": "world", "name": "Ксавьер"}, -{"usage": "world", "name": "Ксения"}, -{"usage": "world", "name": "Куамба"}, -{"usage": "world", "name": "Куба"}, -{"usage": "world", "name": "Куберо"}, -{"usage": "world", "name": "Куб"}, -{"usage": "world", "name": "Кугуар"}, -{"usage": "world", "name": "Кудаи"}, -{"usage": "world", "name": "Куебрада"}, -{"usage": "world", "name": "Куерво"}, -{"usage": "world", "name": "Куеро"}, -{"usage": "world", "name": "Куззарт"}, -{"usage": "world", "name": "Кузик"}, -{"usage": "world", "name": "Куинлан"}, -{"usage": "world", "name": "Куиннесек"}, -{"usage": "world", "name": "Куинн"}, -{"usage": "world", "name": "Куинси"}, -{"usage": "world", "name": "Куинтон"}, -{"usage": "world", "name": "Куйлер"}, -{"usage": "world", "name": "Кукамонга"}, -{"usage": "world", "name": "Куки"}, -{"usage": "world", "name": "Кук"}, -{"usage": "world", "name": "Кулебра"}, -{"usage": "world", "name": "Кулидж"}, -{"usage": "world", "name": "Кулин"}, -{"usage": "world", "name": "Кулпмонт"}, -{"usage": "world", "name": "Кулпсвиль"}, -{"usage": "world", "name": "Кульман"}, -{"usage": "world", "name": "Кул"}, -{"usage": "world", "name": "Куммер"}, -{"usage": "world", "name": "Куна"}, -{"usage": "world", "name": "Кункл"}, -{"usage": "world", "name": "Кунц"}, -{"usage": "world", "name": "Кунья"}, -{"usage": "world", "name": "Кун"}, -{"usage": "world", "name": "Куорри"}, -{"usage": "world", "name": "Куортерс"}, -{"usage": "world", "name": "Купертино"}, -{"usage": "world", "name": "Купер"}, -{"usage": "world", "name": "Купе"}, -{"usage": "world", "name": "Купорос"}, -{"usage": "world", "name": "Купреянов"}, -{"usage": "world", "name": "Купрум"}, -{"usage": "world", "name": "Куп"}, -{"usage": "world", "name": "Куртина"}, -{"usage": "world", "name": "Куртис"}, -{"usage": "world", "name": "Кур"}, -{"usage": "world", "name": "Кусада"}, -{"usage": "world", "name": "Куса"}, -{"usage": "world", "name": "Куския"}, -{"usage": "world", "name": "Куско"}, -{"usage": "world", "name": "Кусохатчи"}, -{"usage": "world", "name": "Куссета"}, -{"usage": "world", "name": "Куссон"}, -{"usage": "world", "name": "Кустар"}, -{"usage": "world", "name": "Кус"}, -{"usage": "world", "name": "Кутенэй"}, -{"usage": "world", "name": "Кутер"}, -{"usage": "world", "name": "Куц"}, -{"usage": "world", "name": "Кучара"}, -{"usage": "world", "name": "Кушарем"}, -{"usage": "world", "name": "Кушинг"}, -{"usage": "world", "name": "Куэва-"}, -{"usage": "world", "name": "Куэй"}, -{"usage": "world", "name": "Кьюн"}, -{"usage": "world", "name": "Кэди"}, -{"usage": "world", "name": "Кэй"}, -{"usage": "world", "name": "Кэмерон"}, -{"usage": "world", "name": "Кэмпбелл"}, -{"usage": "world", "name": "Кэмп"}, -{"usage": "world", "name": "Кэнби"}, -{"usage": "world", "name": "Кэндлер"}, -{"usage": "world", "name": "Кэндл"}, -{"usage": "world", "name": "Кэнтуэлл"}, -{"usage": "world", "name": "Кэпитола"}, -{"usage": "world", "name": "Кэпрок"}, -{"usage": "world", "name": "Кэп"}, -{"usage": "world", "name": "Кэрил"}, -{"usage": "world", "name": "Кэри"}, -{"usage": "world", "name": "Кэролин"}, -{"usage": "world", "name": "Кэрол"}, -{"usage": "world", "name": "Кэрриер"}, -{"usage": "world", "name": "Кэрринг"}, -{"usage": "world", "name": "Кэрри"}, -{"usage": "world", "name": "Кэрролл"}, -{"usage": "world", "name": "Кэрфри"}, -{"usage": "world", "name": "Кэсвелл"}, -{"usage": "world", "name": "Кэтис"}, -{"usage": "world", "name": "Кэти"}, -{"usage": "world", "name": "Кэткарт"}, -{"usage": "world", "name": "Кэтлин"}, -{"usage": "world", "name": "Кэтонс"}, -{"usage": "world", "name": "Кэтрин"}, -{"usage": "world", "name": "Кэтскилл"}, -{"usage": "world", "name": "Кэшен"}, -{"usage": "world", "name": "Кэш"}, -{"usage": "world", "name": "Кюртен"}, -{"usage": "world", "name": "Квини"}, -{"usage": "world", "name": "Куади"}, -{"usage": "world", "name": "Куили"}, -{"usage": "world", "name": "Лаагер"}, -{"usage": "world", "name": "Лабади"}, -{"usage": "world", "name": "Лаборатория"}, -{"usage": "world", "name": "Лабушер"}, -{"usage": "world", "name": "Лавай"}, -{"usage": "world", "name": "Лавака"}, -{"usage": "world", "name": "Лавалетта"}, -{"usage": "world", "name": "Лавалет"}, -{"usage": "world", "name": "Лава"}, -{"usage": "world", "name": "Лавджой"}, -{"usage": "world", "name": "Лаверна"}, -{"usage": "world", "name": "Лавина"}, -{"usage": "world", "name": "Лавинг"}, -{"usage": "world", "name": "Лавиния"}, -{"usage": "world", "name": "Лавлок"}, -{"usage": "world", "name": "Лавония"}, -{"usage": "world", "name": "Лавон"}, -{"usage": "world", "name": "Лавс"}, -{"usage": "world", "name": "Лавуэлл"}, -{"usage": "world", "name": "Лав"}, -{"usage": "world", "name": "Лагофф"}, -{"usage": "world", "name": "Лаго"}, -{"usage": "world", "name": "Лагранж"}, -{"usage": "world", "name": "Лагро"}, -{"usage": "world", "name": "Лагуна"}, -{"usage": "world", "name": "Лагунитас"}, -{"usage": "world", "name": "Лагун"}, -{"usage": "world", "name": "Ладден"}, -{"usage": "world", "name": "Ладдония"}, -{"usage": "world", "name": "Ладелль"}, -{"usage": "world", "name": "Ладен"}, -{"usage": "world", "name": "Ладера"}, -{"usage": "world", "name": "Ладжас"}, -{"usage": "world", "name": "Ладлам"}, -{"usage": "world", "name": "Ладлоу"}, -{"usage": "world", "name": "Ладнер"}, -{"usage": "world", "name": "Ладога"}, -{"usage": "world", "name": "Ладония"}, -{"usage": "world", "name": "Ладора"}, -{"usage": "world", "name": "Ладсон"}, -{"usage": "world", "name": "Ладю"}, -{"usage": "world", "name": "Лазар"}, -{"usage": "world", "name": "Лазир"}, -{"usage": "world", "name": "Лаингс"}, -{"usage": "world", "name": "Лаин"}, -{"usage": "world", "name": "Лайай"}, -{"usage": "world", "name": "Лайв"}, -{"usage": "world", "name": "Лайерли"}, -{"usage": "world", "name": "Лайзтон"}, -{"usage": "world", "name": "Лайл"}, -{"usage": "world", "name": "Лайма"}, -{"usage": "world", "name": "Лаймстон"}, -{"usage": "world", "name": "Лайм"}, -{"usage": "world", "name": "Лайнит"}, -{"usage": "world", "name": "Лайн"}, -{"usage": "world", "name": "Лайтнинг"}, -{"usage": "world", "name": "Лайтхаус"}, -{"usage": "world", "name": "Лайт"}, -{"usage": "world", "name": "Лайф"}, -{"usage": "world", "name": "Лай"}, -{"usage": "world", "name": "Лакаванна"}, -{"usage": "world", "name": "Лакей"}, -{"usage": "world", "name": "Лакин"}, -{"usage": "world", "name": "Лаки"}, -{"usage": "world", "name": "Лаклид"}, -{"usage": "world", "name": "Лакманс"}, -{"usage": "world", "name": "Лакомб"}, -{"usage": "world", "name": "Лакона"}, -{"usage": "world", "name": "Лакония"}, -{"usage": "world", "name": "Лакон"}, -{"usage": "world", "name": "Лакота"}, -{"usage": "world", "name": "Лаксон"}, -{"usage": "world", "name": "Лаксор"}, -{"usage": "world", "name": "Лакучи"}, -{"usage": "world", "name": "Лак"}, -{"usage": "world", "name": "Ламартин"}, -{"usage": "world", "name": "Ламар"}, -{"usage": "world", "name": "Ламаско"}, -{"usage": "world", "name": "Ламберт"}, -{"usage": "world", "name": "Ламбер"}, -{"usage": "world", "name": "Ламбоглия"}, -{"usage": "world", "name": "Ламбрук"}, -{"usage": "world", "name": "Ламбс"}, -{"usage": "world", "name": "Ламеса"}, -{"usage": "world", "name": "Ламин"}, -{"usage": "world", "name": "Ламисон"}, -{"usage": "world", "name": "Лами"}, -{"usage": "world", "name": "Ламкин"}, -{"usage": "world", "name": "Ламоайн"}, -{"usage": "world", "name": "Ламоиль"}, -{"usage": "world", "name": "Ламона"}, -{"usage": "world", "name": "Ламоний"}, -{"usage": "world", "name": "Ламонт"}, -{"usage": "world", "name": "Лампасас"}, -{"usage": "world", "name": "Лампкин"}, -{"usage": "world", "name": "Ламур"}, -{"usage": "world", "name": "Лам"}, -{"usage": "world", "name": "Ланаган"}, -{"usage": "world", "name": "Ланай"}, -{"usage": "world", "name": "Ланарк"}, -{"usage": "world", "name": "Ланар"}, -{"usage": "world", "name": "Лангворти"}, -{"usage": "world", "name": "Лангес"}, -{"usage": "world", "name": "Ланглейд"}, -{"usage": "world", "name": "Ланглуа"}, -{"usage": "world", "name": "Ланг"}, -{"usage": "world", "name": "Ландаски"}, -{"usage": "world", "name": "Ланда"}, -{"usage": "world", "name": "Ланделл"}, -{"usage": "world", "name": "Ландер"}, -{"usage": "world", "name": "Ландинг"}, -{"usage": "world", "name": "Ланди"}, -{"usage": "world", "name": "Ландовер"}, -{"usage": "world", "name": "Ландо"}, -{"usage": "world", "name": "Ландри"}, -{"usage": "world", "name": "Ландрум"}, -{"usage": "world", "name": "Ландфолл"}, -{"usage": "world", "name": "Ланд"}, -{"usage": "world", "name": "Ланес"}, -{"usage": "world", "name": "Ланетт"}, -{"usage": "world", "name": "Лани"}, -{"usage": "world", "name": "Ланкастер"}, -{"usage": "world", "name": "Ланкин"}, -{"usage": "world", "name": "Ланнон"}, -{"usage": "world", "name": "Лансдаун"}, -{"usage": "world", "name": "Лансе"}, -{"usage": "world", "name": "Лансинг"}, -{"usage": "world", "name": "Ланси"}, -{"usage": "world", "name": "Ланс"}, -{"usage": "world", "name": "Лантана"}, -{"usage": "world", "name": "Лантон"}, -{"usage": "world", "name": "Лантри"}, -{"usage": "world", "name": "Ланьон"}, -{"usage": "world", "name": "Лаона"}, -{"usage": "world", "name": "Лаотто"}, -{"usage": "world", "name": "Лапвай"}, -{"usage": "world", "name": "Лапел"}, -{"usage": "world", "name": "Лапир"}, -{"usage": "world", "name": "Лаплас"}, -{"usage": "world", "name": "Лапойнт"}, -{"usage": "world", "name": "Лапорт"}, -{"usage": "world", "name": "Ларами"}, -{"usage": "world", "name": "Ларвилл"}, -{"usage": "world", "name": "Ларго"}, -{"usage": "world", "name": "Лардо"}, -{"usage": "world", "name": "Ларедо"}, -{"usage": "world", "name": "Ларес"}, -{"usage": "world", "name": "Лариат"}, -{"usage": "world", "name": "Лаример"}, -{"usage": "world", "name": "Ларимор"}, -{"usage": "world", "name": "Ларкспур"}, -{"usage": "world", "name": "Ларк"}, -{"usage": "world", "name": "Ларнед"}, -{"usage": "world", "name": "Лароз"}, -{"usage": "world", "name": "Ларраби"}, -{"usage": "world", "name": "Ларсен"}, -{"usage": "world", "name": "Ларслан"}, -{"usage": "world", "name": "Ларсмонт"}, -{"usage": "world", "name": "Ларсон"}, -{"usage": "world", "name": "Ларто"}, -{"usage": "world", "name": "Лару"}, -{"usage": "world", "name": "Ларч"}, -{"usage": "world", "name": "Ласара"}, -{"usage": "world", "name": "Ласкер"}, -{"usage": "world", "name": "Ласк"}, -{"usage": "world", "name": "Ласт"}, -{"usage": "world", "name": "Лас"}, -{"usage": "world", "name": "Латам"}, -{"usage": "world", "name": "Лата"}, -{"usage": "world", "name": "Латексо"}, -{"usage": "world", "name": "Латимер"}, -{"usage": "world", "name": "Латония"}, -{"usage": "world", "name": "Латон"}, -{"usage": "world", "name": "Латрап"}, -{"usage": "world", "name": "Латроп"}, -{"usage": "world", "name": "Латроуб"}, -{"usage": "world", "name": "Латта"}, -{"usage": "world", "name": "Латтимор"}, -{"usage": "world", "name": "Латтинг"}, -{"usage": "world", "name": "Латти"}, -{"usage": "world", "name": "Латтрелл"}, -{"usage": "world", "name": "Латчер"}, -{"usage": "world", "name": "Лауд"}, -{"usage": "world", "name": "Лаундес"}, -{"usage": "world", "name": "Лаура"}, -{"usage": "world", "name": "Лаут"}, -{"usage": "world", "name": "Лафайетт"}, -{"usage": "world", "name": "Лафит"}, -{"usage": "world", "name": "Лафлин"}, -{"usage": "world", "name": "Лафонтен"}, -{"usage": "world", "name": "Лафорч"}, -{"usage": "world", "name": "Лафферти"}, -{"usage": "world", "name": "Лахайна"}, -{"usage": "world", "name": "Лахитас"}, -{"usage": "world", "name": "Лашин"}, -{"usage": "world", "name": "Леандер"}, -{"usage": "world", "name": "Леандро"}, -{"usage": "world", "name": "Леанна"}, -{"usage": "world", "name": "Леапп"}, -{"usage": "world", "name": "Лебек"}, -{"usage": "world", "name": "Лебо"}, -{"usage": "world", "name": "Леван"}, -{"usage": "world", "name": "Леваси"}, -{"usage": "world", "name": "Левелок"}, -{"usage": "world", "name": "Левел"}, -{"usage": "world", "name": "Леверинг"}, -{"usage": "world", "name": "Левит"}, -{"usage": "world", "name": "Леггетт"}, -{"usage": "world", "name": "Ледбеттер"}, -{"usage": "world", "name": "Леджер"}, -{"usage": "world", "name": "Ледж"}, -{"usage": "world", "name": "Ледисмит"}, -{"usage": "world", "name": "Леду"}, -{"usage": "world", "name": "Ледьярд"}, -{"usage": "world", "name": "Лед"}, -{"usage": "world", "name": "Лейден"}, -{"usage": "world", "name": "Лейжер"}, -{"usage": "world", "name": "Лейзи"}, -{"usage": "world", "name": "Лейкадия"}, -{"usage": "world", "name": "Лейкин"}, -{"usage": "world", "name": "Лейк"}, -{"usage": "world", "name": "Лейман"}, -{"usage": "world", "name": "Лейм"}, -{"usage": "world", "name": "Лейн"}, -{"usage": "world", "name": "Лейперс"}, -{"usage": "world", "name": "Лейпсик"}, -{"usage": "world", "name": "Лейпциг"}, -{"usage": "world", "name": "Лейси"}, -{"usage": "world", "name": "Лейструп"}, -{"usage": "world", "name": "Лейтер"}, -{"usage": "world", "name": "Лейтон"}, -{"usage": "world", "name": "Лейтч"}, -{"usage": "world", "name": "Лейт"}, -{"usage": "world", "name": "Лейф"}, -{"usage": "world", "name": "Леканто"}, -{"usage": "world", "name": "Лекомптон"}, -{"usage": "world", "name": "Лекомпт"}, -{"usage": "world", "name": "Лекса"}, -{"usage": "world", "name": "Лексинг"}, -{"usage": "world", "name": "Лекси"}, -{"usage": "world", "name": "Леланд"}, -{"usage": "world", "name": "Лела"}, -{"usage": "world", "name": "Лелия"}, -{"usage": "world", "name": "Лели"}, -{"usage": "world", "name": "Леман"}, -{"usage": "world", "name": "Лемей"}, -{"usage": "world", "name": "Лемета"}, -{"usage": "world", "name": "Леминг"}, -{"usage": "world", "name": "Лемитар"}, -{"usage": "world", "name": "Леммон"}, -{"usage": "world", "name": "Лемойн"}, -{"usage": "world", "name": "Лемонт"}, -{"usage": "world", "name": "Лемон"}, -{"usage": "world", "name": "Леморес"}, -{"usage": "world", "name": "Лемур"}, -{"usage": "world", "name": "Лемхи"}, -{"usage": "world", "name": "Ленапа"}, -{"usage": "world", "name": "Ленап"}, -{"usage": "world", "name": "Лена"}, -{"usage": "world", "name": "Ленгби"}, -{"usage": "world", "name": "Ленд"}, -{"usage": "world", "name": "Ленекса"}, -{"usage": "world", "name": "Леннеп"}, -{"usage": "world", "name": "Леннокс"}, -{"usage": "world", "name": "Леннон"}, -{"usage": "world", "name": "Ленокс"}, -{"usage": "world", "name": "Ленола"}, -{"usage": "world", "name": "Ленора"}, -{"usage": "world", "name": "Ленор"}, -{"usage": "world", "name": "Ленуар"}, -{"usage": "world", "name": "Ленхартс"}, -{"usage": "world", "name": "Ленхем"}, -{"usage": "world", "name": "Ленц"}, -{"usage": "world", "name": "Лен"}, -{"usage": "world", "name": "Леод"}, -{"usage": "world", "name": "Леола"}, -{"usage": "world", "name": "Леома"}, -{"usage": "world", "name": "Леоминстер"}, -{"usage": "world", "name": "Леонардо"}, -{"usage": "world", "name": "Леонард"}, -{"usage": "world", "name": "Леона"}, -{"usage": "world", "name": "Леонидас"}, -{"usage": "world", "name": "Леония"}, -{"usage": "world", "name": "Леонора"}, -{"usage": "world", "name": "Леон"}, -{"usage": "world", "name": "Леопольд"}, -{"usage": "world", "name": "Леоти"}, -{"usage": "world", "name": "Лео"}, -{"usage": "world", "name": "Лепанто"}, -{"usage": "world", "name": "Лерна"}, -{"usage": "world", "name": "Лернер"}, -{"usage": "world", "name": "Лерой"}, -{"usage": "world", "name": "Лер"}, -{"usage": "world", "name": "Лесли"}, -{"usage": "world", "name": "Лессли"}, -{"usage": "world", "name": "Лестер"}, -{"usage": "world", "name": "Летарт"}, -{"usage": "world", "name": "Летохатчи"}, -{"usage": "world", "name": "Леттс"}, -{"usage": "world", "name": "Летчер"}, -{"usage": "world", "name": "Леуэллен"}, -{"usage": "world", "name": "Лефлор"}, -{"usage": "world", "name": "Лефор"}, -{"usage": "world", "name": "Лешара"}, -{"usage": "world", "name": "Ле"}, -{"usage": "world", "name": "Либби"}, -{"usage": "world", "name": "Либенталь"}, -{"usage": "world", "name": "Либерал"}, -{"usage": "world", "name": "Либерти"}, -{"usage": "world", "name": "Либорио"}, -{"usage": "world", "name": "Либори"}, -{"usage": "world", "name": "Либрари"}, -{"usage": "world", "name": "Либус"}, -{"usage": "world", "name": "Ливан"}, -{"usage": "world", "name": "Ливенгуд"}, -{"usage": "world", "name": "Ливен"}, -{"usage": "world", "name": "Ливермор"}, -{"usage": "world", "name": "Ливерпуль"}, -{"usage": "world", "name": "Ливингс"}, -{"usage": "world", "name": "Ливона"}, -{"usage": "world", "name": "Ливония"}, -{"usage": "world", "name": "Ливуд"}, -{"usage": "world", "name": "Лига"}, -{"usage": "world", "name": "Лигерта"}, -{"usage": "world", "name": "Лигнум"}, -{"usage": "world", "name": "Лигонье"}, -{"usage": "world", "name": "Лигон"}, -{"usage": "world", "name": "Лидгер"}, -{"usage": "world", "name": "Лиддер"}, -{"usage": "world", "name": "Лидди"}, -{"usage": "world", "name": "Лидер"}, -{"usage": "world", "name": "Лидик"}, -{"usage": "world", "name": "Лидия"}, -{"usage": "world", "name": "Лиди"}, -{"usage": "world", "name": "Лидор"}, -{"usage": "world", "name": "Лидо"}, -{"usage": "world", "name": "Лидпойнт"}, -{"usage": "world", "name": "Лидс"}, -{"usage": "world", "name": "Лид"}, -{"usage": "world", "name": "Лизелла"}, -{"usage": "world", "name": "Лиземорс"}, -{"usage": "world", "name": "Ликан"}, -{"usage": "world", "name": "Ликенс"}, -{"usage": "world", "name": "Ликес"}, -{"usage": "world", "name": "Ликинг"}, -{"usage": "world", "name": "Лики"}, -{"usage": "world", "name": "Ликли"}, -{"usage": "world", "name": "Ликок"}, -{"usage": "world", "name": "Лик"}, -{"usage": "world", "name": "Лилберт"}, -{"usage": "world", "name": "Лилборн"}, -{"usage": "world", "name": "Лилиан"}, -{"usage": "world", "name": "Лилимур"}, -{"usage": "world", "name": "Лилита"}, -{"usage": "world", "name": "Лили"}, -{"usage": "world", "name": "Лилливаап"}, -{"usage": "world", "name": "Лиллинг"}, -{"usage": "world", "name": "Лилли"}, -{"usage": "world", "name": "Лилль"}, -{"usage": "world", "name": "Лилс"}, -{"usage": "world", "name": "Лил"}, -{"usage": "world", "name": "Лиман"}, -{"usage": "world", "name": "Лима"}, -{"usage": "world", "name": "Лимб"}, -{"usage": "world", "name": "Лимерик"}, -{"usage": "world", "name": "Лиминг"}, -{"usage": "world", "name": "Лимон"}, -{"usage": "world", "name": "Лим"}, -{"usage": "world", "name": "Линби"}, -{"usage": "world", "name": "Линвиль"}, -{"usage": "world", "name": "Линвуд"}, -{"usage": "world", "name": "Линганор"}, -{"usage": "world", "name": "Лингл"}, -{"usage": "world", "name": "Линда"}, -{"usage": "world", "name": "Линдгрен"}, -{"usage": "world", "name": "Линдейл"}, -{"usage": "world", "name": "Линделл"}, -{"usage": "world", "name": "Линден"}, -{"usage": "world", "name": "Линди"}, -{"usage": "world", "name": "Линдков"}, -{"usage": "world", "name": "Линдли"}, -{"usage": "world", "name": "Линдон"}, -{"usage": "world", "name": "Линдора"}, -{"usage": "world", "name": "Линдсборг"}, -{"usage": "world", "name": "Линдсей"}, -{"usage": "world", "name": "Линдси"}, -{"usage": "world", "name": "Линдстром"}, -{"usage": "world", "name": "Линд"}, -{"usage": "world", "name": "Линкольния"}, -{"usage": "world", "name": "Линкольн"}, -{"usage": "world", "name": "Линкорт"}, -{"usage": "world", "name": "Линкрофт"}, -{"usage": "world", "name": "Линкс"}, -{"usage": "world", "name": "Линк"}, -{"usage": "world", "name": "Линндил"}, -{"usage": "world", "name": "Линнеус"}, -{"usage": "world", "name": "Линн"}, -{"usage": "world", "name": "Лино"}, -{"usage": "world", "name": "Линс"}, -{"usage": "world", "name": "Линтикум"}, -{"usage": "world", "name": "Линтон"}, -{"usage": "world", "name": "Линч"}, -{"usage": "world", "name": "Лин"}, -{"usage": "world", "name": "Лион"}, -{"usage": "world", "name": "Липан"}, -{"usage": "world", "name": "Липер"}, -{"usage": "world", "name": "Липскомб"}, -{"usage": "world", "name": "Лири"}, -{"usage": "world", "name": "Лирнед"}, -{"usage": "world", "name": "Лир"}, -{"usage": "world", "name": "Лисабела"}, -{"usage": "world", "name": "Лисит"}, -{"usage": "world", "name": "Лискомб"}, -{"usage": "world", "name": "Лиско"}, -{"usage": "world", "name": "Лисман"}, -{"usage": "world", "name": "Лисмор"}, -{"usage": "world", "name": "Лиссабон"}, -{"usage": "world", "name": "Лисси"}, -{"usage": "world", "name": "Лист"}, -{"usage": "world", "name": "Лис"}, -{"usage": "world", "name": "Литер"}, -{"usage": "world", "name": "Литиум"}, -{"usage": "world", "name": "Литиц"}, -{"usage": "world", "name": "Лития"}, -{"usage": "world", "name": "Литл"}, -{"usage": "world", "name": "Литония"}, -{"usage": "world", "name": "Литон"}, -{"usage": "world", "name": "Литополис"}, -{"usage": "world", "name": "Литро"}, -{"usage": "world", "name": "Литс"}, -{"usage": "world", "name": "Литтиг"}, -{"usage": "world", "name": "Литтл"}, -{"usage": "world", "name": "Литтон"}, -{"usage": "world", "name": "Литч"}, -{"usage": "world", "name": "Лихай"}, -{"usage": "world", "name": "Лихуэ"}, -{"usage": "world", "name": "Лич"}, -{"usage": "world", "name": "Ли"}, -{"usage": "world", "name": "Ллойделл"}, -{"usage": "world", "name": "Ллойд"}, -{"usage": "world", "name": "Лоаг"}, -{"usage": "world", "name": "Лоада"}, -{"usage": "world", "name": "Лоа"}, -{"usage": "world", "name": "Лобеко"}, -{"usage": "world", "name": "Лобель"}, -{"usage": "world", "name": "Лобо"}, -{"usage": "world", "name": "Ловелл"}, -{"usage": "world", "name": "Ловетт"}, -{"usage": "world", "name": "Ловилия"}, -{"usage": "world", "name": "Логанс"}, -{"usage": "world", "name": "Логан"}, -{"usage": "world", "name": "Логсден"}, -{"usage": "world", "name": "Лог"}, -{"usage": "world", "name": "Лода"}, -{"usage": "world", "name": "Лодер"}, -{"usage": "world", "name": "Лодж"}, -{"usage": "world", "name": "Лоди"}, -{"usage": "world", "name": "Лодога"}, -{"usage": "world", "name": "Лод"}, -{"usage": "world", "name": "Лоеб"}, -{"usage": "world", "name": "Лоен"}, -{"usage": "world", "name": "Лозо"}, -{"usage": "world", "name": "Лоз"}, -{"usage": "world", "name": "Лоиза"}, -{"usage": "world", "name": "Лойал"}, -{"usage": "world", "name": "Лойд"}, -{"usage": "world", "name": "Лойола"}, -{"usage": "world", "name": "Лойолл"}, -{"usage": "world", "name": "Лойс"}, -{"usage": "world", "name": "Локаст"}, -{"usage": "world", "name": "Локбуи"}, -{"usage": "world", "name": "Локейт"}, -{"usage": "world", "name": "Локетт"}, -{"usage": "world", "name": "Локинг"}, -{"usage": "world", "name": "Локк"}, -{"usage": "world", "name": "Локлуза"}, -{"usage": "world", "name": "Локни"}, -{"usage": "world", "name": "Локо"}, -{"usage": "world", "name": "Локридж"}, -{"usage": "world", "name": "Локсахатчи"}, -{"usage": "world", "name": "Локса"}, -{"usage": "world", "name": "Локсли"}, -{"usage": "world", "name": "Локхарт"}, -{"usage": "world", "name": "Лок"}, -{"usage": "world", "name": "Лола"}, -{"usage": "world", "name": "Лолета"}, -{"usage": "world", "name": "Лолита"}, -{"usage": "world", "name": "Лоли"}, -{"usage": "world", "name": "Лоло"}, -{"usage": "world", "name": "Ломакс"}, -{"usage": "world", "name": "Ломан"}, -{"usage": "world", "name": "Лома"}, -{"usage": "world", "name": "Ломбард"}, -{"usage": "world", "name": "Ломета"}, -{"usage": "world", "name": "Ломира"}, -{"usage": "world", "name": "Ломита"}, -{"usage": "world", "name": "Ломонд"}, -{"usage": "world", "name": "Ломпок"}, -{"usage": "world", "name": "Лонаконинг"}, -{"usage": "world", "name": "Лонгбот"}, -{"usage": "world", "name": "Лонгмир"}, -{"usage": "world", "name": "Лонгран"}, -{"usage": "world", "name": "Лонг"}, -{"usage": "world", "name": "Лонда"}, -{"usage": "world", "name": "Лондон"}, -{"usage": "world", "name": "Лондэн"}, -{"usage": "world", "name": "Лонели"}, -{"usage": "world", "name": "Лонок"}, -{"usage": "world", "name": "Лоно"}, -{"usage": "world", "name": "Лон"}, -{"usage": "world", "name": "Лоогути"}, -{"usage": "world", "name": "Лопахохо"}, -{"usage": "world", "name": "Лопез"}, -{"usage": "world", "name": "Лопено"}, -{"usage": "world", "name": "Лорами"}, -{"usage": "world", "name": "Лоранже"}, -{"usage": "world", "name": "Лордиш"}, -{"usage": "world", "name": "Лорд"}, -{"usage": "world", "name": "Лорейн"}, -{"usage": "world", "name": "Лорел"}, -{"usage": "world", "name": "Лоренс"}, -{"usage": "world", "name": "Лоренцо"}, -{"usage": "world", "name": "Лоренц"}, -{"usage": "world", "name": "Лорен"}, -{"usage": "world", "name": "Лоретта"}, -{"usage": "world", "name": "Лоретто"}, -{"usage": "world", "name": "Лорида"}, -{"usage": "world", "name": "Лоримор"}, -{"usage": "world", "name": "Лоринг"}, -{"usage": "world", "name": "Лорис"}, -{"usage": "world", "name": "Лори"}, -{"usage": "world", "name": "Лорман"}, -{"usage": "world", "name": "Лоро"}, -{"usage": "world", "name": "Лортон"}, -{"usage": "world", "name": "Лор"}, -{"usage": "world", "name": "Лосант"}, -{"usage": "world", "name": "Лосония"}, -{"usage": "world", "name": "Лостант"}, -{"usage": "world", "name": "Лостин"}, -{"usage": "world", "name": "Лост"}, -{"usage": "world", "name": "Лос"}, -{"usage": "world", "name": "Лотарингия"}, -{"usage": "world", "name": "Лотарь"}, -{"usage": "world", "name": "Лотелл"}, -{"usage": "world", "name": "Лоти"}, -{"usage": "world", "name": "Лотос"}, -{"usage": "world", "name": "Лотроп"}, -{"usage": "world", "name": "Лотси"}, -{"usage": "world", "name": "Лотт"}, -{"usage": "world", "name": "Лоугап"}, -{"usage": "world", "name": "Лоуден"}, -{"usage": "world", "name": "Лоудон"}, -{"usage": "world", "name": "Лоулер"}, -{"usage": "world", "name": "Лоуман"}, -{"usage": "world", "name": "Лоумен"}, -{"usage": "world", "name": "Лоунпайн"}, -{"usage": "world", "name": "Лоун"}, -{"usage": "world", "name": "Лоури"}, -{"usage": "world", "name": "Лоусон"}, -{"usage": "world", "name": "Лоус"}, -{"usage": "world", "name": "Лоутон"}, -{"usage": "world", "name": "Лоуэлл"}, -{"usage": "world", "name": "Лоуэр"}, -{"usage": "world", "name": "Лоу"}, -{"usage": "world", "name": "Лофгрин"}, -{"usage": "world", "name": "Лох"}, -{"usage": "world", "name": "Лоц"}, -{"usage": "world", "name": "Лочапока"}, -{"usage": "world", "name": "Лочерн"}, -{"usage": "world", "name": "Лочиел"}, -{"usage": "world", "name": "Луалуалей"}, -{"usage": "world", "name": "Луана"}, -{"usage": "world", "name": "Лувейл"}, -{"usage": "world", "name": "Луверн"}, -{"usage": "world", "name": "Лувьер"}, -{"usage": "world", "name": "Лугерт"}, -{"usage": "world", "name": "Луделл"}, -{"usage": "world", "name": "Лудинг"}, -{"usage": "world", "name": "Лудоуиси"}, -{"usage": "world", "name": "Луедерс"}, -{"usage": "world", "name": "Лузерн"}, -{"usage": "world", "name": "Луз"}, -{"usage": "world", "name": "Луиза"}, -{"usage": "world", "name": "Луизиана"}, -{"usage": "world", "name": "Луин"}, -{"usage": "world", "name": "Луис"}, -{"usage": "world", "name": "Луйяндо"}, -{"usage": "world", "name": "Лукама"}, -{"usage": "world", "name": "Лукан"}, -{"usage": "world", "name": "Лукас"}, -{"usage": "world", "name": "Лукаут"}, -{"usage": "world", "name": "Лукба"}, -{"usage": "world", "name": "Лукильо"}, -{"usage": "world", "name": "Лукинг"}, -{"usage": "world", "name": "Лукка"}, -{"usage": "world", "name": "Луксем"}, -{"usage": "world", "name": "Луксора"}, -{"usage": "world", "name": "Лук"}, -{"usage": "world", "name": "Лула"}, -{"usage": "world", "name": "Лулинг"}, -{"usage": "world", "name": "Лулу"}, -{"usage": "world", "name": "Лумис"}, -{"usage": "world", "name": "Луна"}, -{"usage": "world", "name": "Лунинг"}, -{"usage": "world", "name": "Лун"}, -{"usage": "world", "name": "Луп"}, -{"usage": "world", "name": "Лура"}, -{"usage": "world", "name": "Лурей"}, -{"usage": "world", "name": "Луриг"}, -{"usage": "world", "name": "Лусеро"}, -{"usage": "world", "name": "Лутон"}, -{"usage": "world", "name": "Лутсен"}, -{"usage": "world", "name": "Лутц"}, -{"usage": "world", "name": "Лучин"}, -{"usage": "world", "name": "Луштон"}, -{"usage": "world", "name": "Луэлла"}, -{"usage": "world", "name": "Луэнн"}, -{"usage": "world", "name": "Лу"}, -{"usage": "world", "name": "Льоренс"}, -{"usage": "world", "name": "Льюверас"}, -{"usage": "world", "name": "Льюисетта"}, -{"usage": "world", "name": "Льюис"}, -{"usage": "world", "name": "Лью"}, -{"usage": "world", "name": "Льянос"}, -{"usage": "world", "name": "Льяно"}, -{"usage": "world", "name": "Лэдд"}, -{"usage": "world", "name": "Лэйн"}, -{"usage": "world", "name": "Лэй"}, -{"usage": "world", "name": "Лэминг"}, -{"usage": "world", "name": "Лэмпсон"}, -{"usage": "world", "name": "Лэнгли"}, -{"usage": "world", "name": "Лэнгорн"}, -{"usage": "world", "name": "Лэнгтри"}, -{"usage": "world", "name": "Лэндис"}, -{"usage": "world", "name": "Лэндон"}, -{"usage": "world", "name": "Лэр"}, -{"usage": "world", "name": "Любек"}, -{"usage": "world", "name": "Люблин"}, -{"usage": "world", "name": "Людвиг"}, -{"usage": "world", "name": "Люкачукай"}, -{"usage": "world", "name": "Люк"}, -{"usage": "world", "name": "Люнен"}, -{"usage": "world", "name": "Люптон"}, -{"usage": "world", "name": "Люпус"}, -{"usage": "world", "name": "Люртон"}, -{"usage": "world", "name": "Люр"}, -{"usage": "world", "name": "Люсиль"}, -{"usage": "world", "name": "Люсинда"}, -{"usage": "world", "name": "Люси"}, -{"usage": "world", "name": "Люсьен"}, -{"usage": "world", "name": "Люс"}, -{"usage": "world", "name": "Лютер"}, -{"usage": "world", "name": "Люти"}, -{"usage": "world", "name": "Люцерна"}, -{"usage": "world", "name": "Маалэа"}, -{"usage": "world", "name": "Мабана"}, -{"usage": "world", "name": "Мабанк"}, -{"usage": "world", "name": "Мабелль"}, -{"usage": "world", "name": "Мабен"}, -{"usage": "world", "name": "Мабскотт"}, -{"usage": "world", "name": "Мабтон"}, -{"usage": "world", "name": "Маверик"}, -{"usage": "world", "name": "Мавис"}, -{"usage": "world", "name": "Магазин"}, -{"usage": "world", "name": "Магалия"}, -{"usage": "world", "name": "Магаско"}, -{"usage": "world", "name": "Магас"}, -{"usage": "world", "name": "Маггус"}, -{"usage": "world", "name": "Магдалена"}, -{"usage": "world", "name": "Маги"}, -{"usage": "world", "name": "Магма"}, -{"usage": "world", "name": "Магна"}, -{"usage": "world", "name": "Магнит"}, -{"usage": "world", "name": "Магнолия"}, -{"usage": "world", "name": "Магомет"}, -{"usage": "world", "name": "Магопак"}, -{"usage": "world", "name": "Магун"}, -{"usage": "world", "name": "Магуолт"}, -{"usage": "world", "name": "Мадаваска"}, -{"usage": "world", "name": "Мадден"}, -{"usage": "world", "name": "Мадди"}, -{"usage": "world", "name": "Маддок"}, -{"usage": "world", "name": "Маделин"}, -{"usage": "world", "name": "Маделия"}, -{"usage": "world", "name": "Мадера"}, -{"usage": "world", "name": "Мадженика"}, -{"usage": "world", "name": "Маджестик"}, -{"usage": "world", "name": "Мадилл"}, -{"usage": "world", "name": "Мадонна"}, -{"usage": "world", "name": "Мадрас"}, -{"usage": "world", "name": "Мадре"}, -{"usage": "world", "name": "Мадрид"}, -{"usage": "world", "name": "Мад"}, -{"usage": "world", "name": "Мазама"}, -{"usage": "world", "name": "Мазепа"}, -{"usage": "world", "name": "Мазер"}, -{"usage": "world", "name": "Мази"}, -{"usage": "world", "name": "Мазомани"}, -{"usage": "world", "name": "Мазон"}, -{"usage": "world", "name": "Маис"}, -{"usage": "world", "name": "Майами"}, -{"usage": "world", "name": "Майда"}, -{"usage": "world", "name": "Майерс"}, -{"usage": "world", "name": "Майер"}, -{"usage": "world", "name": "Майетта"}, -{"usage": "world", "name": "Майкка"}, -{"usage": "world", "name": "Майкл"}, -{"usage": "world", "name": "Майли"}, -{"usage": "world", "name": "Майло"}, -{"usage": "world", "name": "Майнер"}, -{"usage": "world", "name": "Майнот"}, -{"usage": "world", "name": "Майнрад"}, -{"usage": "world", "name": "Майн"}, -{"usage": "world", "name": "Майо"}, -{"usage": "world", "name": "Майра"}, -{"usage": "world", "name": "Майтон"}, -{"usage": "world", "name": "Майт"}, -{"usage": "world", "name": "Макавао"}, -{"usage": "world", "name": "Макакило"}, -{"usage": "world", "name": "Маканда"}, -{"usage": "world", "name": "Макартур"}, -{"usage": "world", "name": "Макаха"}, -{"usage": "world", "name": "Маквахок"}, -{"usage": "world", "name": "Маквокета"}, -{"usage": "world", "name": "Маквон"}, -{"usage": "world", "name": "Макдона"}, -{"usage": "world", "name": "Макдоэл"}, -{"usage": "world", "name": "Македония"}, -{"usage": "world", "name": "Македон"}, -{"usage": "world", "name": "Макиас"}, -{"usage": "world", "name": "Макинен"}, -{"usage": "world", "name": "Макино"}, -{"usage": "world", "name": "Маки"}, -{"usage": "world", "name": "Маккей"}, -{"usage": "world", "name": "Маккензи"}, -{"usage": "world", "name": "Макки"}, -{"usage": "world", "name": "Макланд"}, -{"usage": "world", "name": "Макленни"}, -{"usage": "world", "name": "Маклес"}, -{"usage": "world", "name": "Маковек"}, -{"usage": "world", "name": "Макомб"}, -{"usage": "world", "name": "Макон"}, -{"usage": "world", "name": "Макопин"}, -{"usage": "world", "name": "Макоти"}, -{"usage": "world", "name": "Максбасс"}, -{"usage": "world", "name": "Максвелл"}, -{"usage": "world", "name": "Максвиль"}, -{"usage": "world", "name": "Максвелтон"}, -{"usage": "world", "name": "Максимо"}, -{"usage": "world", "name": "Максис"}, -{"usage": "world", "name": "Макси"}, -{"usage": "world", "name": "Макстон"}, -{"usage": "world", "name": "Макс"}, -{"usage": "world", "name": "Макунги"}, -{"usage": "world", "name": "Мак"}, -{"usage": "world", "name": "Малабар"}, -{"usage": "world", "name": "Малага"}, -{"usage": "world", "name": "Малад"}, -{"usage": "world", "name": "Малакофф"}, -{"usage": "world", "name": "Малвадо"}, -{"usage": "world", "name": "Малвейн"}, -{"usage": "world", "name": "Малверн"}, -{"usage": "world", "name": "Малга"}, -{"usage": "world", "name": "Малдроу"}, -{"usage": "world", "name": "Малдун"}, -{"usage": "world", "name": "Малесус"}, -{"usage": "world", "name": "Малжамар"}, -{"usage": "world", "name": "Малибу"}, -{"usage": "world", "name": "Малинта"}, -{"usage": "world", "name": "Малин"}, -{"usage": "world", "name": "Малкольм"}, -{"usage": "world", "name": "Маллан"}, -{"usage": "world", "name": "Маллард"}, -{"usage": "world", "name": "Маллен"}, -{"usage": "world", "name": "Маллет"}, -{"usage": "world", "name": "Маллика"}, -{"usage": "world", "name": "Малликен"}, -{"usage": "world", "name": "Маллин"}, -{"usage": "world", "name": "Маллори"}, -{"usage": "world", "name": "Малой"}, -{"usage": "world", "name": "Малотт"}, -{"usage": "world", "name": "Мало"}, -{"usage": "world", "name": "Малтби"}, -{"usage": "world", "name": "Малхолл"}, -{"usage": "world", "name": "Малшу"}, -{"usage": "world", "name": "Мальборо"}, -{"usage": "world", "name": "Малькольм"}, -{"usage": "world", "name": "Мальмо"}, -{"usage": "world", "name": "Мальта"}, -{"usage": "world", "name": "Мал"}, -{"usage": "world", "name": "Мамаронек"}, -{"usage": "world", "name": "Маммот"}, -{"usage": "world", "name": "Мамонт"}, -{"usage": "world", "name": "Маму"}, -{"usage": "world", "name": "Мам"}, -{"usage": "world", "name": "Манава"}, -{"usage": "world", "name": "Манакин"}, -{"usage": "world", "name": "Манак"}, -{"usage": "world", "name": "Маналапан"}, -{"usage": "world", "name": "Мананна"}, -{"usage": "world", "name": "Манасквен"}, -{"usage": "world", "name": "Манасота"}, -{"usage": "world", "name": "Манасса"}, -{"usage": "world", "name": "Манати"}, -{"usage": "world", "name": "Манахокин"}, -{"usage": "world", "name": "Мана"}, -{"usage": "world", "name": "Манвел"}, -{"usage": "world", "name": "Мангам"}, -{"usage": "world", "name": "Мангер"}, -{"usage": "world", "name": "Мангония"}, -{"usage": "world", "name": "Манго"}, -{"usage": "world", "name": "Мандан"}, -{"usage": "world", "name": "Мандари"}, -{"usage": "world", "name": "Мандей"}, -{"usage": "world", "name": "Манделей"}, -{"usage": "world", "name": "Манден"}, -{"usage": "world", "name": "Мандер"}, -{"usage": "world", "name": "Манджор"}, -{"usage": "world", "name": "Манд"}, -{"usage": "world", "name": "Манес"}, -{"usage": "world", "name": "Манзанита"}, -{"usage": "world", "name": "Манила"}, -{"usage": "world", "name": "Манилла"}, -{"usage": "world", "name": "Манистик"}, -{"usage": "world", "name": "Манисти"}, -{"usage": "world", "name": "Манитовиш"}, -{"usage": "world", "name": "Манитовок"}, -{"usage": "world", "name": "Манитоу"}, -{"usage": "world", "name": "Манито"}, -{"usage": "world", "name": "Манифолд"}, -{"usage": "world", "name": "Мани"}, -{"usage": "world", "name": "Манкато"}, -{"usage": "world", "name": "Манкинс"}, -{"usage": "world", "name": "Манкос"}, -{"usage": "world", "name": "Манлий"}, -{"usage": "world", "name": "Манн"}, -{"usage": "world", "name": "Манокотак"}, -{"usage": "world", "name": "Маномен"}, -{"usage": "world", "name": "Манор"}, -{"usage": "world", "name": "Манро"}, -{"usage": "world", "name": "Манселона"}, -{"usage": "world", "name": "Манси"}, -{"usage": "world", "name": "Мансон"}, -{"usage": "world", "name": "Мансура"}, -{"usage": "world", "name": "Манс"}, -{"usage": "world", "name": "Мантадор"}, -{"usage": "world", "name": "Мантено"}, -{"usage": "world", "name": "Мантео"}, -{"usage": "world", "name": "Мантер"}, -{"usage": "world", "name": "Мантика"}, -{"usage": "world", "name": "Манти"}, -{"usage": "world", "name": "Мантолокинг"}, -{"usage": "world", "name": "Мантон"}, -{"usage": "world", "name": "Мантор"}, -{"usage": "world", "name": "Мантуя"}, -{"usage": "world", "name": "Мантчи"}, -{"usage": "world", "name": "Манус"}, -{"usage": "world", "name": "Мануэлито"}, -{"usage": "world", "name": "Мануэль"}, -{"usage": "world", "name": "Манхассет"}, -{"usage": "world", "name": "Манхейм"}, -{"usage": "world", "name": "Манхеттен"}, -{"usage": "world", "name": "Манхол"}, -{"usage": "world", "name": "Манчестер"}, -{"usage": "world", "name": "Ман"}, -{"usage": "world", "name": "Мараис"}, -{"usage": "world", "name": "Марайдел"}, -{"usage": "world", "name": "Марана"}, -{"usage": "world", "name": "Марафон"}, -{"usage": "world", "name": "Марбери"}, -{"usage": "world", "name": "Марбл"}, -{"usage": "world", "name": "Марвелл"}, -{"usage": "world", "name": "Марвел"}, -{"usage": "world", "name": "Марвин"}, -{"usage": "world", "name": "Маргарет"}, -{"usage": "world", "name": "Маргарита"}, -{"usage": "world", "name": "Маргаритка"}, -{"usage": "world", "name": "Маргит"}, -{"usage": "world", "name": "Мардела"}, -{"usage": "world", "name": "Марджи"}, -{"usage": "world", "name": "Маренго"}, -{"usage": "world", "name": "Марианна"}, -{"usage": "world", "name": "Мариано"}, -{"usage": "world", "name": "Мариба"}, -{"usage": "world", "name": "Марибель"}, -{"usage": "world", "name": "Мариенталь"}, -{"usage": "world", "name": "Мариен"}, -{"usage": "world", "name": "Мариетта"}, -{"usage": "world", "name": "Марикао"}, -{"usage": "world", "name": "Марикопа"}, -{"usage": "world", "name": "Марина"}, -{"usage": "world", "name": "Марингуин"}, -{"usage": "world", "name": "Маринетт"}, -{"usage": "world", "name": "Марино"}, -{"usage": "world", "name": "Марин"}, -{"usage": "world", "name": "Марион"}, -{"usage": "world", "name": "Марипоса"}, -{"usage": "world", "name": "Мария"}, -{"usage": "world", "name": "Мари"}, -{"usage": "world", "name": "Маркванд"}, -{"usage": "world", "name": "Маркед"}, -{"usage": "world", "name": "Маркез"}, -{"usage": "world", "name": "Маркесан"}, -{"usage": "world", "name": "Маркетт"}, -{"usage": "world", "name": "Маркет"}, -{"usage": "world", "name": "Марке"}, -{"usage": "world", "name": "Марклейс"}, -{"usage": "world", "name": "Марклес"}, -{"usage": "world", "name": "Маркли"}, -{"usage": "world", "name": "Маркл"}, -{"usage": "world", "name": "Маркола"}, -{"usage": "world", "name": "Марко"}, -{"usage": "world", "name": "Маркус"}, -{"usage": "world", "name": "Маркхэм"}, -{"usage": "world", "name": "Марк"}, -{"usage": "world", "name": "Марлетт"}, -{"usage": "world", "name": "Марлин"}, -{"usage": "world", "name": "Марли"}, -{"usage": "world", "name": "Марлоу"}, -{"usage": "world", "name": "Марлтон"}, -{"usage": "world", "name": "Мармадук"}, -{"usage": "world", "name": "Мармарт"}, -{"usage": "world", "name": "Мармет"}, -{"usage": "world", "name": "Марн"}, -{"usage": "world", "name": "Мароа"}, -{"usage": "world", "name": "Марокко"}, -{"usage": "world", "name": "Марреллс"}, -{"usage": "world", "name": "Марреро"}, -{"usage": "world", "name": "Марриотт"}, -{"usage": "world", "name": "Марри"}, -{"usage": "world", "name": "Марроу"}, -{"usage": "world", "name": "Марселин"}, -{"usage": "world", "name": "Марселла"}, -{"usage": "world", "name": "Марсель"}, -{"usage": "world", "name": "Марсинг"}, -{"usage": "world", "name": "Марсланд"}, -{"usage": "world", "name": "Марстон"}, -{"usage": "world", "name": "Марсьяль"}, -{"usage": "world", "name": "Марс"}, -{"usage": "world", "name": "Мартас"}, -{"usage": "world", "name": "Марта"}, -{"usage": "world", "name": "Мартелл"}, -{"usage": "world", "name": "Мартель"}, -{"usage": "world", "name": "Мартенс"}, -{"usage": "world", "name": "Мартинес"}, -{"usage": "world", "name": "Мартин"}, -{"usage": "world", "name": "Марти"}, -{"usage": "world", "name": "Марторель"}, -{"usage": "world", "name": "Март"}, -{"usage": "world", "name": "Маруэньо"}, -{"usage": "world", "name": "Марфа"}, -{"usage": "world", "name": "Марцеллус"}, -{"usage": "world", "name": "Маршалл"}, -{"usage": "world", "name": "Марш"}, -{"usage": "world", "name": "Мар"}, -{"usage": "world", "name": "Масардис"}, -{"usage": "world", "name": "Масарик"}, -{"usage": "world", "name": "Масео"}, -{"usage": "world", "name": "Маскатин"}, -{"usage": "world", "name": "Маскаута"}, -{"usage": "world", "name": "Маскегон"}, -{"usage": "world", "name": "Маскего"}, -{"usage": "world", "name": "Маскелл"}, -{"usage": "world", "name": "Маскл"}, -{"usage": "world", "name": "Маскоги"}, -{"usage": "world", "name": "Маскода"}, -{"usage": "world", "name": "Маской"}, -{"usage": "world", "name": "Маскота"}, -{"usage": "world", "name": "Маскот"}, -{"usage": "world", "name": "Масон"}, -{"usage": "world", "name": "Массадона"}, -{"usage": "world", "name": "Массак"}, -{"usage": "world", "name": "Массанаттен"}, -{"usage": "world", "name": "Массапеква"}, -{"usage": "world", "name": "Массена"}, -{"usage": "world", "name": "Массиллон"}, -{"usage": "world", "name": "Масс"}, -{"usage": "world", "name": "Мастер"}, -{"usage": "world", "name": "Мастика"}, -{"usage": "world", "name": "Масто"}, -{"usage": "world", "name": "Матаван"}, -{"usage": "world", "name": "Матагорда"}, -{"usage": "world", "name": "Матадор"}, -{"usage": "world", "name": "Матаморас"}, -{"usage": "world", "name": "Матанаска"}, -{"usage": "world", "name": "Матео"}, -{"usage": "world", "name": "Матиас"}, -{"usage": "world", "name": "Матильда"}, -{"usage": "world", "name": "Матинекок"}, -{"usage": "world", "name": "Матис"}, -{"usage": "world", "name": "Матлака"}, -{"usage": "world", "name": "Матока"}, -{"usage": "world", "name": "Матомидай"}, -{"usage": "world", "name": "Маттапекс"}, -{"usage": "world", "name": "Маттесон"}, -{"usage": "world", "name": "Маттес"}, -{"usage": "world", "name": "Маттокс"}, -{"usage": "world", "name": "Маттон"}, -{"usage": "world", "name": "Маттун"}, -{"usage": "world", "name": "Матуон"}, -{"usage": "world", "name": "Маува"}, -{"usage": "world", "name": "Маук"}, -{"usage": "world", "name": "Маумель"}, -{"usage": "world", "name": "Маунабо"}, -{"usage": "world", "name": "Мауналоа"}, -{"usage": "world", "name": "Мауна"}, -{"usage": "world", "name": "Маунд"}, -{"usage": "world", "name": "Мауни"}, -{"usage": "world", "name": "Мауноили"}, -{"usage": "world", "name": "Маунтин"}, -{"usage": "world", "name": "Маунт"}, -{"usage": "world", "name": "Маусер"}, -{"usage": "world", "name": "Мауси"}, -{"usage": "world", "name": "Маус"}, -{"usage": "world", "name": "Маханой"}, -{"usage": "world", "name": "Махариши"}, -{"usage": "world", "name": "Махаска"}, -{"usage": "world", "name": "Махаффи"}, -{"usage": "world", "name": "Махтова"}, -{"usage": "world", "name": "Махукона"}, -{"usage": "world", "name": "Маченс"}, -{"usage": "world", "name": "Мачесни"}, -{"usage": "world", "name": "Машула"}, -{"usage": "world", "name": "Маэйс"}, -{"usage": "world", "name": "Маягуез"}, -{"usage": "world", "name": "Мебан"}, -{"usage": "world", "name": "Мегаргел"}, -{"usage": "world", "name": "Меггетт"}, -{"usage": "world", "name": "Меглер"}, -{"usage": "world", "name": "Медалла"}, -{"usage": "world", "name": "Меданалс"}, -{"usage": "world", "name": "Меданос"}, -{"usage": "world", "name": "Медари"}, -{"usage": "world", "name": "Медарт"}, -{"usage": "world", "name": "Медиаполис"}, -{"usage": "world", "name": "Медикал"}, -{"usage": "world", "name": "Медина"}, -{"usage": "world", "name": "Медицина"}, -{"usage": "world", "name": "Медия"}, -{"usage": "world", "name": "Медли"}, -{"usage": "world", "name": "Медон"}, -{"usage": "world", "name": "Медора"}, -{"usage": "world", "name": "Медоу"}, -{"usage": "world", "name": "Медуэй"}, -{"usage": "world", "name": "Медфра"}, -{"usage": "world", "name": "Мед"}, -{"usage": "world", "name": "Мееррин"}, -{"usage": "world", "name": "Мезерви"}, -{"usage": "world", "name": "Мейака"}, -{"usage": "world", "name": "Мейбеери"}, -{"usage": "world", "name": "Мейбл"}, -{"usage": "world", "name": "Мейгс"}, -{"usage": "world", "name": "Мейерс"}, -{"usage": "world", "name": "Мейнард"}, -{"usage": "world", "name": "Мейнерс"}, -{"usage": "world", "name": "Мейнхард"}, -{"usage": "world", "name": "Мейпл"}, -{"usage": "world", "name": "Мейр"}, -{"usage": "world", "name": "Мейси"}, -{"usage": "world", "name": "Мейс"}, -{"usage": "world", "name": "Меквонаго"}, -{"usage": "world", "name": "Меквон"}, -{"usage": "world", "name": "Мекилтео"}, -{"usage": "world", "name": "Мекинок"}, -{"usage": "world", "name": "Мекка"}, -{"usage": "world", "name": "Меклинг"}, -{"usage": "world", "name": "Мекорюк"}, -{"usage": "world", "name": "Мекоста"}, -{"usage": "world", "name": "Мексикана"}, -{"usage": "world", "name": "Мексика"}, -{"usage": "world", "name": "Мексия"}, -{"usage": "world", "name": "Мелби"}, -{"usage": "world", "name": "Мелверн"}, -{"usage": "world", "name": "Мелвина"}, -{"usage": "world", "name": "Мелвин"}, -{"usage": "world", "name": "Мелдер"}, -{"usage": "world", "name": "Мелдрум"}, -{"usage": "world", "name": "Мелисса"}, -{"usage": "world", "name": "Мелитота"}, -{"usage": "world", "name": "Меллен"}, -{"usage": "world", "name": "Меллетт"}, -{"usage": "world", "name": "Мелле"}, -{"usage": "world", "name": "Меллина"}, -{"usage": "world", "name": "Меллотт"}, -{"usage": "world", "name": "Мелмор"}, -{"usage": "world", "name": "Мелодия"}, -{"usage": "world", "name": "Мелроуз"}, -{"usage": "world", "name": "Мелруд"}, -{"usage": "world", "name": "Мелстранд"}, -{"usage": "world", "name": "Мелчер"}, -{"usage": "world", "name": "Мельба"}, -{"usage": "world", "name": "Мельбета"}, -{"usage": "world", "name": "Мельбурн"}, -{"usage": "world", "name": "Мельфа"}, -{"usage": "world", "name": "Мель"}, -{"usage": "world", "name": "Мел"}, -{"usage": "world", "name": "Мемфис"}, -{"usage": "world", "name": "Менага"}, -{"usage": "world", "name": "Менан"}, -{"usage": "world", "name": "Менар"}, -{"usage": "world", "name": "Менаша"}, -{"usage": "world", "name": "Мена"}, -{"usage": "world", "name": "Менделтна"}, -{"usage": "world", "name": "Менденхолл"}, -{"usage": "world", "name": "Мендоза"}, -{"usage": "world", "name": "Мендон"}, -{"usage": "world", "name": "Мендота"}, -{"usage": "world", "name": "Мендоцино"}, -{"usage": "world", "name": "Мендхэм"}, -{"usage": "world", "name": "Менифи"}, -{"usage": "world", "name": "Менло"}, -{"usage": "world", "name": "Меномини"}, -{"usage": "world", "name": "Меномони"}, -{"usage": "world", "name": "Мено"}, -{"usage": "world", "name": "Ментаста"}, -{"usage": "world", "name": "Ментмор"}, -{"usage": "world", "name": "Ментон"}, -{"usage": "world", "name": "Ментор"}, -{"usage": "world", "name": "Менфро"}, -{"usage": "world", "name": "Менчал"}, -{"usage": "world", "name": "Меппен"}, -{"usage": "world", "name": "Мервин"}, -{"usage": "world", "name": "Мердок"}, -{"usage": "world", "name": "Мердо"}, -{"usage": "world", "name": "Мередит"}, -{"usage": "world", "name": "Мередосия"}, -{"usage": "world", "name": "Меривезер"}, -{"usage": "world", "name": "Меригольд"}, -{"usage": "world", "name": "Мериден"}, -{"usage": "world", "name": "Меридиан"}, -{"usage": "world", "name": "Меридин"}, -{"usage": "world", "name": "Мерино"}, -{"usage": "world", "name": "Мерит"}, -{"usage": "world", "name": "Меркель"}, -{"usage": "world", "name": "Мерлин"}, -{"usage": "world", "name": "Мерменто"}, -{"usage": "world", "name": "Мерна"}, -{"usage": "world", "name": "Меро"}, -{"usage": "world", "name": "Мерриам"}, -{"usage": "world", "name": "Меррикорт"}, -{"usage": "world", "name": "Меррик"}, -{"usage": "world", "name": "Мерриллан"}, -{"usage": "world", "name": "Меррилл"}, -{"usage": "world", "name": "Мерримак"}, -{"usage": "world", "name": "Мерримен"}, -{"usage": "world", "name": "Мерритт"}, -{"usage": "world", "name": "Мерри"}, -{"usage": "world", "name": "Мерседес"}, -{"usage": "world", "name": "Мерсед"}, -{"usage": "world", "name": "Мерсер"}, -{"usage": "world", "name": "Мертенс"}, -{"usage": "world", "name": "Мертзон"}, -{"usage": "world", "name": "Мертон"}, -{"usage": "world", "name": "Мерто"}, -{"usage": "world", "name": "Мерфи"}, -{"usage": "world", "name": "Мерфрис"}, -{"usage": "world", "name": "Мерчант"}, -{"usage": "world", "name": "Мерчисон"}, -{"usage": "world", "name": "Мершон"}, -{"usage": "world", "name": "Мер"}, -{"usage": "world", "name": "Меса"}, -{"usage": "world", "name": "Месик"}, -{"usage": "world", "name": "Месита"}, -{"usage": "world", "name": "Мескалеро"}, -{"usage": "world", "name": "Мескит"}, -{"usage": "world", "name": "Металайн"}, -{"usage": "world", "name": "Метамора"}, -{"usage": "world", "name": "Мета"}, -{"usage": "world", "name": "Метейри"}, -{"usage": "world", "name": "Метея"}, -{"usage": "world", "name": "Меткальф"}, -{"usage": "world", "name": "Метлакатла"}, -{"usage": "world", "name": "Метолиус"}, -{"usage": "world", "name": "Мето"}, -{"usage": "world", "name": "Метрополис"}, -{"usage": "world", "name": "Метр"}, -{"usage": "world", "name": "Меттава"}, -{"usage": "world", "name": "Меттер"}, -{"usage": "world", "name": "Метучен"}, -{"usage": "world", "name": "Метуэн"}, -{"usage": "world", "name": "Механик"}, -{"usage": "world", "name": "Мехико"}, -{"usage": "world", "name": "Мецгер"}, -{"usage": "world", "name": "Мец"}, -{"usage": "world", "name": "Мешан"}, -{"usage": "world", "name": "Мешоппен"}, -{"usage": "world", "name": "Мигель"}, -{"usage": "world", "name": "Мидас"}, -{"usage": "world", "name": "Мидвейл"}, -{"usage": "world", "name": "Мидвиль"}, -{"usage": "world", "name": "Миддл"}, -{"usage": "world", "name": "Мидланд"}, -{"usage": "world", "name": "Мидлотиан"}, -{"usage": "world", "name": "Миднайт"}, -{"usage": "world", "name": "Мидо"}, -{"usage": "world", "name": "Мидтаун"}, -{"usage": "world", "name": "Мидфилд"}, -{"usage": "world", "name": "Мид"}, -{"usage": "world", "name": "Мизе"}, -{"usage": "world", "name": "Мизпа"}, -{"usage": "world", "name": "Мизула"}, -{"usage": "world", "name": "Микадо"}, -{"usage": "world", "name": "Мика"}, -{"usage": "world", "name": "Микер"}, -{"usage": "world", "name": "Мики"}, -{"usage": "world", "name": "Миккало"}, -{"usage": "world", "name": "Миккошеки"}, -{"usage": "world", "name": "Микко"}, -{"usage": "world", "name": "Микл"}, -{"usage": "world", "name": "Микро"}, -{"usage": "world", "name": "Миксерс"}, -{"usage": "world", "name": "Микс"}, -{"usage": "world", "name": "Милагроса"}, -{"usage": "world", "name": "Милам"}, -{"usage": "world", "name": "Милано"}, -{"usage": "world", "name": "Милан"}, -{"usage": "world", "name": "Мила"}, -{"usage": "world", "name": "Милилани"}, -{"usage": "world", "name": "Мили"}, -{"usage": "world", "name": "Милладор"}, -{"usage": "world", "name": "Миллан"}, -{"usage": "world", "name": "Миллард"}, -{"usage": "world", "name": "Миллборо"}, -{"usage": "world", "name": "Миллдж"}, -{"usage": "world", "name": "Миллен"}, -{"usage": "world", "name": "Миллер"}, -{"usage": "world", "name": "Миллетт"}, -{"usage": "world", "name": "Миллиган"}, -{"usage": "world", "name": "Милликен"}, -{"usage": "world", "name": "Милликин"}, -{"usage": "world", "name": "Миллинг"}, -{"usage": "world", "name": "Миллинокет"}, -{"usage": "world", "name": "Миллин"}, -{"usage": "world", "name": "Милль"}, -{"usage": "world", "name": "Милл"}, -{"usage": "world", "name": "Милнер"}, -{"usage": "world", "name": "Милнор"}, -{"usage": "world", "name": "Милолии"}, -{"usage": "world", "name": "Мило"}, -{"usage": "world", "name": "Милпитас"}, -{"usage": "world", "name": "Милрой"}, -{"usage": "world", "name": "Милсап"}, -{"usage": "world", "name": "Милтона"}, -{"usage": "world", "name": "Милтон"}, -{"usage": "world", "name": "Милуоки"}, -{"usage": "world", "name": "Мил"}, -{"usage": "world", "name": "Мимбрс"}, -{"usage": "world", "name": "Мимоза"}, -{"usage": "world", "name": "Мимс"}, -{"usage": "world", "name": "Минам"}, -{"usage": "world", "name": "Минард"}, -{"usage": "world", "name": "Минатар"}, -{"usage": "world", "name": "Мина"}, -{"usage": "world", "name": "Минго"}, -{"usage": "world", "name": "Мингус"}, -{"usage": "world", "name": "Минден"}, -{"usage": "world", "name": "Миндоро"}, -{"usage": "world", "name": "Минеола"}, -{"usage": "world", "name": "Минерал"}, -{"usage": "world", "name": "Минерва"}, -{"usage": "world", "name": "Минетто"}, -{"usage": "world", "name": "Минидока"}, -{"usage": "world", "name": "Минква"}, -{"usage": "world", "name": "Минко"}, -{"usage": "world", "name": "Минк"}, -{"usage": "world", "name": "Миннеола"}, -{"usage": "world", "name": "Миннеота"}, -{"usage": "world", "name": "Миннесота"}, -{"usage": "world", "name": "Миннетонка"}, -{"usage": "world", "name": "Миннетриста"}, -{"usage": "world", "name": "Миннехаха"}, -{"usage": "world", "name": "Миннеэска"}, -{"usage": "world", "name": "Минниполис"}, -{"usage": "world", "name": "Минн"}, -{"usage": "world", "name": "Миноа"}, -{"usage": "world", "name": "Минонг"}, -{"usage": "world", "name": "Минонк"}, -{"usage": "world", "name": "Минор"}, -{"usage": "world", "name": "Минстер"}, -{"usage": "world", "name": "Минс"}, -{"usage": "world", "name": "Минтер"}, -{"usage": "world", "name": "Минтл"}, -{"usage": "world", "name": "Минторн"}, -{"usage": "world", "name": "Минто"}, -{"usage": "world", "name": "Минт"}, -{"usage": "world", "name": "Минука"}, -{"usage": "world", "name": "Минчумина"}, -{"usage": "world", "name": "Миньер"}, -{"usage": "world", "name": "Миньон"}, -{"usage": "world", "name": "Мин"}, -{"usage": "world", "name": "Мио"}, -{"usage": "world", "name": "Мирада"}, -{"usage": "world", "name": "Мираж"}, -{"usage": "world", "name": "Миракл"}, -{"usage": "world", "name": "Мирамар"}, -{"usage": "world", "name": "Мирамигоа"}, -{"usage": "world", "name": "Миранда"}, -{"usage": "world", "name": "Мирандо"}, -{"usage": "world", "name": "Мира"}, -{"usage": "world", "name": "Мирик"}, -{"usage": "world", "name": "Мирон"}, -{"usage": "world", "name": "Миррор"}, -{"usage": "world", "name": "Мирс"}, -{"usage": "world", "name": "Миртл"}, -{"usage": "world", "name": "Мир"}, -{"usage": "world", "name": "Миссисипи"}, -{"usage": "world", "name": "Миссия"}, -{"usage": "world", "name": "Миссури"}, -{"usage": "world", "name": "Мистик"}, -{"usage": "world", "name": "Мист"}, -{"usage": "world", "name": "Митинг"}, -{"usage": "world", "name": "Мититсе"}, -{"usage": "world", "name": "Митти"}, -{"usage": "world", "name": "Митчелл"}, -{"usage": "world", "name": "Миффлин"}, -{"usage": "world", "name": "Мичема"}, -{"usage": "world", "name": "Мичиана"}, -{"usage": "world", "name": "Мичиган"}, -{"usage": "world", "name": "Мичи"}, -{"usage": "world", "name": "Мишикот"}, -{"usage": "world", "name": "Мишока"}, -{"usage": "world", "name": "Ми"}, -{"usage": "world", "name": "Мйома"}, -{"usage": "world", "name": "Моапа"}, -{"usage": "world", "name": "Моарк"}, -{"usage": "world", "name": "Мобайл"}, -{"usage": "world", "name": "Моберли"}, -{"usage": "world", "name": "Мобити"}, -{"usage": "world", "name": "Мобридж"}, -{"usage": "world", "name": "Могадор"}, -{"usage": "world", "name": "Моготе"}, -{"usage": "world", "name": "Моддерс"}, -{"usage": "world", "name": "Модель"}, -{"usage": "world", "name": "Модена"}, -{"usage": "world", "name": "Модесто"}, -{"usage": "world", "name": "Модест"}, -{"usage": "world", "name": "Модлоу"}, -{"usage": "world", "name": "Модок"}, -{"usage": "world", "name": "Модэйл"}, -{"usage": "world", "name": "Мод"}, -{"usage": "world", "name": "Мозелл"}, -{"usage": "world", "name": "Мозель"}, -{"usage": "world", "name": "Мозес"}, -{"usage": "world", "name": "Мозли"}, -{"usage": "world", "name": "Моиес"}, -{"usage": "world", "name": "Мойен"}, -{"usage": "world", "name": "Мойерс"}, -{"usage": "world", "name": "Мойи"}, -{"usage": "world", "name": "Мойлан"}, -{"usage": "world", "name": "Мойлль"}, -{"usage": "world", "name": "Мойн"}, -{"usage": "world", "name": "Мойок"}, -{"usage": "world", "name": "Моканаква"}, -{"usage": "world", "name": "Мокан"}, -{"usage": "world", "name": "Мокасин"}, -{"usage": "world", "name": "Мока"}, -{"usage": "world", "name": "Моква"}, -{"usage": "world", "name": "Мокена"}, -{"usage": "world", "name": "Мокламн"}, -{"usage": "world", "name": "Моклипс"}, -{"usage": "world", "name": "Моксахала"}, -{"usage": "world", "name": "Мокси"}, -{"usage": "world", "name": "Моксли"}, -{"usage": "world", "name": "Мокс"}, -{"usage": "world", "name": "Мокулеия"}, -{"usage": "world", "name": "Молалла"}, -{"usage": "world", "name": "Молден"}, -{"usage": "world", "name": "Молена"}, -{"usage": "world", "name": "Молина"}, -{"usage": "world", "name": "Молино"}, -{"usage": "world", "name": "Моллер"}, -{"usage": "world", "name": "Моллюск"}, -{"usage": "world", "name": "Молсон"}, -{"usage": "world", "name": "Молтри"}, -{"usage": "world", "name": "Моль"}, -{"usage": "world", "name": "Момайер"}, -{"usage": "world", "name": "Моменс"}, -{"usage": "world", "name": "Моми"}, -{"usage": "world", "name": "Монака"}, -{"usage": "world", "name": "Монанго"}, -{"usage": "world", "name": "Монарх"}, -{"usage": "world", "name": "Монаханс"}, -{"usage": "world", "name": "Мондамин"}, -{"usage": "world", "name": "Мондови"}, -{"usage": "world", "name": "Монель"}, -{"usage": "world", "name": "Монеро"}, -{"usage": "world", "name": "Монета"}, -{"usage": "world", "name": "Монетта"}, -{"usage": "world", "name": "Монетт"}, -{"usage": "world", "name": "Монида"}, -{"usage": "world", "name": "Моника"}, -{"usage": "world", "name": "Монико"}, -{"usage": "world", "name": "Монингер"}, -{"usage": "world", "name": "Монитор"}, -{"usage": "world", "name": "Мони"}, -{"usage": "world", "name": "Монкальм"}, -{"usage": "world", "name": "Монклер"}, -{"usage": "world", "name": "Монкс"}, -{"usage": "world", "name": "Монк"}, -{"usage": "world", "name": "Монмут"}, -{"usage": "world", "name": "Монови"}, -{"usage": "world", "name": "Моноган"}, -{"usage": "world", "name": "Монона"}, -{"usage": "world", "name": "Мононга"}, -{"usage": "world", "name": "Мононгиела"}, -{"usage": "world", "name": "Монон"}, -{"usage": "world", "name": "Моно"}, -{"usage": "world", "name": "Монпелье"}, -{"usage": "world", "name": "Монреаль"}, -{"usage": "world", "name": "Монрит"}, -{"usage": "world", "name": "Монровия"}, -{"usage": "world", "name": "Монро"}, -{"usage": "world", "name": "Монсеррат"}, -{"usage": "world", "name": "Монси"}, -{"usage": "world", "name": "Монсон"}, -{"usage": "world", "name": "Монс"}, -{"usage": "world", "name": "Монтальба"}, -{"usage": "world", "name": "Монтальво"}, -{"usage": "world", "name": "Монтана"}, -{"usage": "world", "name": "Монта"}, -{"usage": "world", "name": "Монтвейл"}, -{"usage": "world", "name": "Монтверде"}, -{"usage": "world", "name": "Монтгомери"}, -{"usage": "world", "name": "Монтебелло"}, -{"usage": "world", "name": "Монтевалло"}, -{"usage": "world", "name": "Монтегут"}, -{"usage": "world", "name": "Монтегю"}, -{"usage": "world", "name": "Монтейгл"}, -{"usage": "world", "name": "Монтейт"}, -{"usage": "world", "name": "Монтелло"}, -{"usage": "world", "name": "Монтерей"}, -{"usage": "world", "name": "Монтесано"}, -{"usage": "world", "name": "Монтесума"}, -{"usage": "world", "name": "Монте"}, -{"usage": "world", "name": "Монтичелло"}, -{"usage": "world", "name": "Монтморенси"}, -{"usage": "world", "name": "Монтойя"}, -{"usage": "world", "name": "Монток"}, -{"usage": "world", "name": "Монтон"}, -{"usage": "world", "name": "Монтор"}, -{"usage": "world", "name": "Монтросс"}, -{"usage": "world", "name": "Монтроуз"}, -{"usage": "world", "name": "Монтчанин"}, -{"usage": "world", "name": "Монт"}, -{"usage": "world", "name": "Монумент"}, -{"usage": "world", "name": "Монфор"}, -{"usage": "world", "name": "Мончес"}, -{"usage": "world", "name": "Моньяк"}, -{"usage": "world", "name": "Мопен"}, -{"usage": "world", "name": "Моравиан"}, -{"usage": "world", "name": "Моравия"}, -{"usage": "world", "name": "Морада"}, -{"usage": "world", "name": "Моралес"}, -{"usage": "world", "name": "Моран"}, -{"usage": "world", "name": "Мора"}, -{"usage": "world", "name": "Морвен"}, -{"usage": "world", "name": "Моргана"}, -{"usage": "world", "name": "Морганза"}, -{"usage": "world", "name": "Морган"}, -{"usage": "world", "name": "Моргнек"}, -{"usage": "world", "name": "Морена"}, -{"usage": "world", "name": "Морено"}, -{"usage": "world", "name": "Моренси"}, -{"usage": "world", "name": "Моржовой"}, -{"usage": "world", "name": "Морзе"}, -{"usage": "world", "name": "Мориарти"}, -{"usage": "world", "name": "Морин"}, -{"usage": "world", "name": "Морис"}, -{"usage": "world", "name": "Морита"}, -{"usage": "world", "name": "Моричес"}, -{"usage": "world", "name": "Мория"}, -{"usage": "world", "name": "Мори"}, -{"usage": "world", "name": "Морли"}, -{"usage": "world", "name": "Мормон"}, -{"usage": "world", "name": "Морнинг"}, -{"usage": "world", "name": "Моровис"}, -{"usage": "world", "name": "Моронго"}, -{"usage": "world", "name": "Морони"}, -{"usage": "world", "name": "Моро"}, -{"usage": "world", "name": "Моррал"}, -{"usage": "world", "name": "Моррилла"}, -{"usage": "world", "name": "Моррил"}, -{"usage": "world", "name": "Моррисон"}, -{"usage": "world", "name": "Моррис"}, -{"usage": "world", "name": "Морроу"}, -{"usage": "world", "name": "Морро"}, -{"usage": "world", "name": "Морстейн"}, -{"usage": "world", "name": "Мортон"}, -{"usage": "world", "name": "Мор"}, -{"usage": "world", "name": "Мосби"}, -{"usage": "world", "name": "Мосини"}, -{"usage": "world", "name": "Моска"}, -{"usage": "world", "name": "Москито"}, -{"usage": "world", "name": "Москоу"}, -{"usage": "world", "name": "Моссирок"}, -{"usage": "world", "name": "Мосси"}, -{"usage": "world", "name": "Мосс"}, -{"usage": "world", "name": "Мосьер"}, -{"usage": "world", "name": "Мотли"}, -{"usage": "world", "name": "Мотт"}, -{"usage": "world", "name": "Моуиква"}, -{"usage": "world", "name": "Моурис"}, -{"usage": "world", "name": "Моффат"}, -{"usage": "world", "name": "Моффетт"}, -{"usage": "world", "name": "Моффит"}, -{"usage": "world", "name": "Мохаве"}, -{"usage": "world", "name": "Мохейв"}, -{"usage": "world", "name": "Мохок"}, -{"usage": "world", "name": "Мохолл"}, -{"usage": "world", "name": "Мошаннон"}, -{"usage": "world", "name": "Мошер"}, -{"usage": "world", "name": "Моэб"}, -{"usage": "world", "name": "Моэнкопи"}, -{"usage": "world", "name": "Мо"}, -{"usage": "world", "name": "Муди"}, -{"usage": "world", "name": "Мудус"}, -{"usage": "world", "name": "Муерс"}, -{"usage": "world", "name": "Муза"}, -{"usage": "world", "name": "Музелла"}, -{"usage": "world", "name": "Музик"}, -{"usage": "world", "name": "Мукарабонес"}, -{"usage": "world", "name": "Мули"}, -{"usage": "world", "name": "Мултон"}, -{"usage": "world", "name": "Мул"}, -{"usage": "world", "name": "Муначи"}, -{"usage": "world", "name": "Мунизинг"}, -{"usage": "world", "name": "Мунстон"}, -{"usage": "world", "name": "Муншайн"}, -{"usage": "world", "name": "Мун"}, -{"usage": "world", "name": "Муринг"}, -{"usage": "world", "name": "Мурман"}, -{"usage": "world", "name": "Мурриета"}, -{"usage": "world", "name": "Мурьета"}, -{"usage": "world", "name": "Мур"}, -{"usage": "world", "name": "Мусикс"}, -{"usage": "world", "name": "Мустанг"}, -{"usage": "world", "name": "Мус"}, -{"usage": "world", "name": "Мучуал"}, -{"usage": "world", "name": "Мьес"}, -{"usage": "world", "name": "Мьюир"}, -{"usage": "world", "name": "Мэгги"}, -{"usage": "world", "name": "Мэгнесс"}, -{"usage": "world", "name": "Мэдисон"}, -{"usage": "world", "name": "Мэйбелл"}, -{"usage": "world", "name": "Мэйби"}, -{"usage": "world", "name": "Мэйбрук"}, -{"usage": "world", "name": "Мэйдель"}, -{"usage": "world", "name": "Мэйден"}, -{"usage": "world", "name": "Мэйдэй"}, -{"usage": "world", "name": "Мэйлен"}, -{"usage": "world", "name": "Мэйна"}, -{"usage": "world", "name": "Мэйпенс"}, -{"usage": "world", "name": "Мэйперл"}, -{"usage": "world", "name": "Мэйхью"}, -{"usage": "world", "name": "Мэй"}, -{"usage": "world", "name": "Мэлоун"}, -{"usage": "world", "name": "Мэнгам"}, -{"usage": "world", "name": "Мэни"}, -{"usage": "world", "name": "Мэнли"}, -{"usage": "world", "name": "Мэннинг"}, -{"usage": "world", "name": "Мэнсон"}, -{"usage": "world", "name": "Мэнс"}, -{"usage": "world", "name": "Мэн"}, -{"usage": "world", "name": "Мэрис"}, -{"usage": "world", "name": "Мэри"}, -{"usage": "world", "name": "Мэсси"}, -{"usage": "world", "name": "Мэтисон"}, -{"usage": "world", "name": "Мэтлок"}, -{"usage": "world", "name": "Мэтсон"}, -{"usage": "world", "name": "Мэттаван"}, -{"usage": "world", "name": "Мэттава"}, -{"usage": "world", "name": "Мэттитак"}, -{"usage": "world", "name": "Мэтти"}, -{"usage": "world", "name": "Мэтьюз"}, -{"usage": "world", "name": "Мюнстер"}, -{"usage": "world", "name": "Мюнхен"}, -{"usage": "world", "name": "Мюррей"}, -{"usage": "world", "name": "Наалеу"}, -{"usage": "world", "name": "Наангола"}, -{"usage": "world", "name": "Наанта"}, -{"usage": "world", "name": "Набб"}, -{"usage": "world", "name": "Набибер"}, -{"usage": "world", "name": "Набортон"}, -{"usage": "world", "name": "Наб"}, -{"usage": "world", "name": "Наварино"}, -{"usage": "world", "name": "Наварра"}, -{"usage": "world", "name": "Наварро"}, -{"usage": "world", "name": "Навасота"}, -{"usage": "world", "name": "Навасса"}, -{"usage": "world", "name": "Навахо"}, -{"usage": "world", "name": "Навесинк"}, -{"usage": "world", "name": "Нави"}, -{"usage": "world", "name": "Нагс"}, -{"usage": "world", "name": "Нагуабо"}, -{"usage": "world", "name": "Нада"}, -{"usage": "world", "name": "Назарет"}, -{"usage": "world", "name": "Назианс"}, -{"usage": "world", "name": "Наиксут"}, -{"usage": "world", "name": "Наир"}, -{"usage": "world", "name": "Найангуа"}, -{"usage": "world", "name": "Найантик"}, -{"usage": "world", "name": "Найарада"}, -{"usage": "world", "name": "Найек"}, -{"usage": "world", "name": "Найк"}, -{"usage": "world", "name": "Найнти"}, -{"usage": "world", "name": "Найн"}, -{"usage": "world", "name": "Найрим"}, -{"usage": "world", "name": "Найс"}, -{"usage": "world", "name": "Найт"}, -{"usage": "world", "name": "Найфли"}, -{"usage": "world", "name": "Найф"}, -{"usage": "world", "name": "Най"}, -{"usage": "world", "name": "Накия"}, -{"usage": "world", "name": "Накла"}, -{"usage": "world", "name": "Накнек"}, -{"usage": "world", "name": "Накодочес"}, -{"usage": "world", "name": "Нако"}, -{"usage": "world", "name": "Наллен"}, -{"usage": "world", "name": "Нама"}, -{"usage": "world", "name": "Намб"}, -{"usage": "world", "name": "Нампа"}, -{"usage": "world", "name": "Нанакули"}, -{"usage": "world", "name": "Нанда"}, -{"usage": "world", "name": "Нанкин"}, -{"usage": "world", "name": "Наннелли"}, -{"usage": "world", "name": "Нанн"}, -{"usage": "world", "name": "Нансон"}, -{"usage": "world", "name": "Нантакет"}, -{"usage": "world", "name": "Нантикок"}, -{"usage": "world", "name": "Нанту"}, -{"usage": "world", "name": "Нанюэт"}, -{"usage": "world", "name": "Напавайн"}, -{"usage": "world", "name": "Напакиак"}, -{"usage": "world", "name": "Напаноч"}, -{"usage": "world", "name": "Напаскиак"}, -{"usage": "world", "name": "Напа"}, -{"usage": "world", "name": "Напер"}, -{"usage": "world", "name": "Наполеон"}, -{"usage": "world", "name": "Напони"}, -{"usage": "world", "name": "Наппани"}, -{"usage": "world", "name": "Напьер"}, -{"usage": "world", "name": "Наранхито"}, -{"usage": "world", "name": "Нара"}, -{"usage": "world", "name": "Нарберт"}, -{"usage": "world", "name": "Нардин"}, -{"usage": "world", "name": "Нари"}, -{"usage": "world", "name": "Нарка"}, -{"usage": "world", "name": "Наркоосси"}, -{"usage": "world", "name": "Народ"}, -{"usage": "world", "name": "Нарроус"}, -{"usage": "world", "name": "Нарсиссо"}, -{"usage": "world", "name": "Наруна"}, -{"usage": "world", "name": "Насимьенто"}, -{"usage": "world", "name": "Насон"}, -{"usage": "world", "name": "Нассау"}, -{"usage": "world", "name": "Наталбани"}, -{"usage": "world", "name": "Наталия"}, -{"usage": "world", "name": "Натали"}, -{"usage": "world", "name": "Натан"}, -{"usage": "world", "name": "Натвик"}, -{"usage": "world", "name": "Натик"}, -{"usage": "world", "name": "Натли"}, -{"usage": "world", "name": "Натома"}, -{"usage": "world", "name": "Натриас"}, -{"usage": "world", "name": "Натриосо"}, -{"usage": "world", "name": "Натрона"}, -{"usage": "world", "name": "Наттер"}, -{"usage": "world", "name": "Наттинг"}, -{"usage": "world", "name": "Натт"}, -{"usage": "world", "name": "Натураль"}, -{"usage": "world", "name": "Натчез"}, -{"usage": "world", "name": "Натчиточес"}, -{"usage": "world", "name": "Науву"}, -{"usage": "world", "name": "Наф"}, -{"usage": "world", "name": "Нахант"}, -{"usage": "world", "name": "Начес"}, -{"usage": "world", "name": "Нашоба"}, -{"usage": "world", "name": "Нашота"}, -{"usage": "world", "name": "Нашуа"}, -{"usage": "world", "name": "Нашуок"}, -{"usage": "world", "name": "Наяк"}, -{"usage": "world", "name": "Неаполь"}, -{"usage": "world", "name": "Неа"}, -{"usage": "world", "name": "Небагамон"}, -{"usage": "world", "name": "Небо"}, -{"usage": "world", "name": "Небраска"}, -{"usage": "world", "name": "Невада"}, -{"usage": "world", "name": "Невин"}, -{"usage": "world", "name": "Невис"}, -{"usage": "world", "name": "Негауни"}, -{"usage": "world", "name": "Негра"}, -{"usage": "world", "name": "Негрит"}, -{"usage": "world", "name": "Негрон"}, -{"usage": "world", "name": "Негро"}, -{"usage": "world", "name": "Неддик"}, -{"usage": "world", "name": "Недерланд"}, -{"usage": "world", "name": "Недроу"}, -{"usage": "world", "name": "Незперс"}, -{"usage": "world", "name": "Нейборс"}, -{"usage": "world", "name": "Нейджизи"}, -{"usage": "world", "name": "Нейленд"}, -{"usage": "world", "name": "Нейлор"}, -{"usage": "world", "name": "Нейлтон"}, -{"usage": "world", "name": "Нейл"}, -{"usage": "world", "name": "Нейтавауш"}, -{"usage": "world", "name": "Нейхарт"}, -{"usage": "world", "name": "Нейчерита"}, -{"usage": "world", "name": "Нейшен"}, -{"usage": "world", "name": "Ней"}, -{"usage": "world", "name": "Некома"}, -{"usage": "world", "name": "Нектар"}, -{"usage": "world", "name": "Нек"}, -{"usage": "world", "name": "Нелагони"}, -{"usage": "world", "name": "Нелай"}, -{"usage": "world", "name": "Нелла"}, -{"usage": "world", "name": "Неллис"}, -{"usage": "world", "name": "Нелли"}, -{"usage": "world", "name": "Нельсон"}, -{"usage": "world", "name": "Немаколин"}, -{"usage": "world", "name": "Немаха"}, -{"usage": "world", "name": "Нема"}, -{"usage": "world", "name": "Немо"}, -{"usage": "world", "name": "Ненана"}, -{"usage": "world", "name": "Ненцел"}, -{"usage": "world", "name": "Неога"}, -{"usage": "world", "name": "Неола"}, -{"usage": "world", "name": "Неопит"}, -{"usage": "world", "name": "Неошо"}, -{"usage": "world", "name": "Непонсет"}, -{"usage": "world", "name": "Нептун"}, -{"usage": "world", "name": "Нерсери"}, -{"usage": "world", "name": "Несбитт"}, -{"usage": "world", "name": "Неседа"}, -{"usage": "world", "name": "Несика"}, -{"usage": "world", "name": "Неско"}, -{"usage": "world", "name": "Нескхонинг"}, -{"usage": "world", "name": "Несмит"}, -{"usage": "world", "name": "Неспелем"}, -{"usage": "world", "name": "Несс"}, -{"usage": "world", "name": "Нестория"}, -{"usage": "world", "name": "Нестор"}, -{"usage": "world", "name": "Нест"}, -{"usage": "world", "name": "Нетавака"}, -{"usage": "world", "name": "Нетартс"}, -{"usage": "world", "name": "Нетерс"}, -{"usage": "world", "name": "Нетконг"}, -{"usage": "world", "name": "Нетлтон"}, -{"usage": "world", "name": "Нефи"}, -{"usage": "world", "name": "Неффс"}, -{"usage": "world", "name": "Нехалем"}, -{"usage": "world", "name": "Нехока"}, -{"usage": "world", "name": "Нече"}, -{"usage": "world", "name": "Нешаник"}, -{"usage": "world", "name": "Нешемини"}, -{"usage": "world", "name": "Нешкоро"}, -{"usage": "world", "name": "Нешнел"}, -{"usage": "world", "name": "Нешоба"}, -{"usage": "world", "name": "Не"}, -{"usage": "world", "name": "Ниагара"}, -{"usage": "world", "name": "Нибли"}, -{"usage": "world", "name": "Нивер"}, -{"usage": "world", "name": "Нивитт"}, -{"usage": "world", "name": "Нивот"}, -{"usage": "world", "name": "Нигел"}, -{"usage": "world", "name": "Нидлс"}, -{"usage": "world", "name": "Нидмор"}, -{"usage": "world", "name": "Нидо"}, -{"usage": "world", "name": "Нидхэм"}, -{"usage": "world", "name": "Нид"}, -{"usage": "world", "name": "Низс"}, -{"usage": "world", "name": "Никель"}, -{"usage": "world", "name": "Никеп"}, -{"usage": "world", "name": "Никерсон"}, -{"usage": "world", "name": "Никиски"}, -{"usage": "world", "name": "Никодим"}, -{"usage": "world", "name": "Николаевск"}, -{"usage": "world", "name": "Николай"}, -{"usage": "world", "name": "Николас"}, -{"usage": "world", "name": "Николаус"}, -{"usage": "world", "name": "Николетт"}, -{"usage": "world", "name": "Никольский"}, -{"usage": "world", "name": "Николь"}, -{"usage": "world", "name": "Никол"}, -{"usage": "world", "name": "Никома"}, -{"usage": "world", "name": "Никса"}, -{"usage": "world", "name": "Никсон"}, -{"usage": "world", "name": "Ниланд"}, -{"usage": "world", "name": "Нили"}, -{"usage": "world", "name": "Нильс"}, -{"usage": "world", "name": "Нил"}, -{"usage": "world", "name": "Ниман"}, -{"usage": "world", "name": "Ниммонс"}, -{"usage": "world", "name": "Нимрод"}, -{"usage": "world", "name": "Ним"}, -{"usage": "world", "name": "Нина"}, -{"usage": "world", "name": "Нинилчайк"}, -{"usage": "world", "name": "Нинок"}, -{"usage": "world", "name": "Ниоба"}, -{"usage": "world", "name": "Ниобрара"}, -{"usage": "world", "name": "Ниотаз"}, -{"usage": "world", "name": "Ниота"}, -{"usage": "world", "name": "Нипомо"}, -{"usage": "world", "name": "Ниппа"}, -{"usage": "world", "name": "Ниптон"}, -{"usage": "world", "name": "Нискволли"}, -{"usage": "world", "name": "Нискейуна"}, -{"usage": "world", "name": "Нисланд"}, -{"usage": "world", "name": "Ниссеквог"}, -{"usage": "world", "name": "Ниссуа"}, -{"usage": "world", "name": "Нитер"}, -{"usage": "world", "name": "Нитос"}, -{"usage": "world", "name": "Нитро"}, -{"usage": "world", "name": "Нитта"}, -{"usage": "world", "name": "Ниулии"}, -{"usage": "world", "name": "Ни"}, -{"usage": "world", "name": "Ноатак"}, -{"usage": "world", "name": "Нобел"}, -{"usage": "world", "name": "Нобен"}, -{"usage": "world", "name": "Нобль"}, -{"usage": "world", "name": "Ноб"}, -{"usage": "world", "name": "Нова"}, -{"usage": "world", "name": "Новелти"}, -{"usage": "world", "name": "Новингер"}, -{"usage": "world", "name": "Новис"}, -{"usage": "world", "name": "Нови"}, -{"usage": "world", "name": "Ногалес"}, -{"usage": "world", "name": "Нодауэй"}, -{"usage": "world", "name": "Нойберт"}, -{"usage": "world", "name": "Нойек"}, -{"usage": "world", "name": "Нойес"}, -{"usage": "world", "name": "Ной"}, -{"usage": "world", "name": "Нокати"}, -{"usage": "world", "name": "Ноксапатер"}, -{"usage": "world", "name": "Ноксен"}, -{"usage": "world", "name": "Нокс"}, -{"usage": "world", "name": "Нок"}, -{"usage": "world", "name": "Нолан"}, -{"usage": "world", "name": "Ноленс"}, -{"usage": "world", "name": "Ноли"}, -{"usage": "world", "name": "Нома"}, -{"usage": "world", "name": "Ном"}, -{"usage": "world", "name": "Нонан"}, -{"usage": "world", "name": "Нондолтон"}, -{"usage": "world", "name": "Ноондей"}, -{"usage": "world", "name": "Нопал"}, -{"usage": "world", "name": "Нора"}, -{"usage": "world", "name": "Норбек"}, -{"usage": "world", "name": "Норборн"}, -{"usage": "world", "name": "Норвич"}, -{"usage": "world", "name": "Норге"}, -{"usage": "world", "name": "Нордгейм"}, -{"usage": "world", "name": "Норден"}, -{"usage": "world", "name": "Нордман"}, -{"usage": "world", "name": "Норд"}, -{"usage": "world", "name": "Нориас"}, -{"usage": "world", "name": "Норкатур"}, -{"usage": "world", "name": "Норко"}, -{"usage": "world", "name": "Норкросс"}, -{"usage": "world", "name": "Норланд"}, -{"usage": "world", "name": "Норлина"}, -{"usage": "world", "name": "Нормаль"}, -{"usage": "world", "name": "Норманги"}, -{"usage": "world", "name": "Нормандия"}, -{"usage": "world", "name": "Норман"}, -{"usage": "world", "name": "Норма"}, -{"usage": "world", "name": "Норридж"}, -{"usage": "world", "name": "Норрис"}, -{"usage": "world", "name": "Норритон"}, -{"usage": "world", "name": "Норсленд"}, -{"usage": "world", "name": "Нортамп"}, -{"usage": "world", "name": "Нортерн"}, -{"usage": "world", "name": "Норте"}, -{"usage": "world", "name": "Нортон"}, -{"usage": "world", "name": "Норт"}, -{"usage": "world", "name": "Норуолк"}, -{"usage": "world", "name": "Норуэй"}, -{"usage": "world", "name": "Норфлет"}, -{"usage": "world", "name": "Норфлит"}, -{"usage": "world", "name": "Норфолк"}, -{"usage": "world", "name": "Норфорк"}, -{"usage": "world", "name": "Норшор"}, -{"usage": "world", "name": "Нор"}, -{"usage": "world", "name": "Ностер"}, -{"usage": "world", "name": "Нос"}, -{"usage": "world", "name": "Нотак"}, -{"usage": "world", "name": "Нотасулга"}, -{"usage": "world", "name": "Нотрис"}, -{"usage": "world", "name": "Нотус"}, -{"usage": "world", "name": "Нотч"}, -{"usage": "world", "name": "Ноулз"}, -{"usage": "world", "name": "Ноулин"}, -{"usage": "world", "name": "Ноултон"}, -{"usage": "world", "name": "Ноуота"}, -{"usage": "world", "name": "Ноэлк"}, -{"usage": "world", "name": "Ноэль"}, -{"usage": "world", "name": "Но"}, -{"usage": "world", "name": "Нуксек"}, -{"usage": "world", "name": "Нулато"}, -{"usage": "world", "name": "Нунака"}, -{"usage": "world", "name": "Нунам"}, -{"usage": "world", "name": "Нунан"}, -{"usage": "world", "name": "Нуньес"}, -{"usage": "world", "name": "Нурвик"}, -{"usage": "world", "name": "Нурем"}, -{"usage": "world", "name": "Нутрия"}, -{"usage": "world", "name": "Нушагак"}, -{"usage": "world", "name": "Нуэвас"}, -{"usage": "world", "name": "Нуэво"}, -{"usage": "world", "name": "Нуяка"}, -{"usage": "world", "name": "Ньюарк"}, -{"usage": "world", "name": "Ньюейго"}, -{"usage": "world", "name": "Ньюз"}, -{"usage": "world", "name": "Ньюинг"}, -{"usage": "world", "name": "Ньюкасл"}, -{"usage": "world", "name": "Ньюкирк"}, -{"usage": "world", "name": "Ньюланд"}, -{"usage": "world", "name": "Ньюлонс"}, -{"usage": "world", "name": "Ньюман"}, -{"usage": "world", "name": "Ньюнен"}, -{"usage": "world", "name": "Ньюокум"}, -{"usage": "world", "name": "Ньюолд"}, -{"usage": "world", "name": "Ньюпойнт"}, -{"usage": "world", "name": "Ньюпорт"}, -{"usage": "world", "name": "Ньюри"}, -{"usage": "world", "name": "Ньюсомс"}, -{"usage": "world", "name": "Ньюсом"}, -{"usage": "world", "name": "Ньюток"}, -{"usage": "world", "name": "Ньютония"}, -{"usage": "world", "name": "Ньютон"}, -{"usage": "world", "name": "Ньютрал"}, -{"usage": "world", "name": "Ньюхолл"}, -{"usage": "world", "name": "Ньюэлл"}, -{"usage": "world", "name": "Нью"}, -{"usage": "world", "name": "Нэнси"}, -{"usage": "world", "name": "Нэрн"}, -{"usage": "world", "name": "Нэш"}, -{"usage": "world", "name": "Оазис"}, -{"usage": "world", "name": "Оакома"}, -{"usage": "world", "name": "Оарк"}, -{"usage": "world", "name": "Обар"}, -{"usage": "world", "name": "Обен"}, -{"usage": "world", "name": "Оберлин"}, -{"usage": "world", "name": "Оберн"}, -{"usage": "world", "name": "Оберон"}, -{"usage": "world", "name": "Оберри"}, -{"usage": "world", "name": "Оберт"}, -{"usage": "world", "name": "Обец"}, -{"usage": "world", "name": "Обиспо"}, -{"usage": "world", "name": "Облонг"}, -{"usage": "world", "name": "Обри"}, -{"usage": "world", "name": "Оваза"}, -{"usage": "world", "name": "Овало"}, -{"usage": "world", "name": "Оватонна"}, -{"usage": "world", "name": "Овего"}, -{"usage": "world", "name": "Оверли"}, -{"usage": "world", "name": "Овернь"}, -{"usage": "world", "name": "Овертон"}, -{"usage": "world", "name": "Овер"}, -{"usage": "world", "name": "Оветт"}, -{"usage": "world", "name": "Овид"}, -{"usage": "world", "name": "Овилла"}, -{"usage": "world", "name": "Овоссо"}, -{"usage": "world", "name": "Овьедо"}, -{"usage": "world", "name": "Ованеко"}, -{"usage": "world", "name": "Ованка"}, -{"usage": "world", "name": "Овассо"}, -{"usage": "world", "name": "Огайова"}, -{"usage": "world", "name": "Огайопайл"}, -{"usage": "world", "name": "Огайо"}, -{"usage": "world", "name": "Огаллала"}, -{"usage": "world", "name": "Огг"}, -{"usage": "world", "name": "Огденс"}, -{"usage": "world", "name": "Огден"}, -{"usage": "world", "name": "Огема"}, -{"usage": "world", "name": "Огемо"}, -{"usage": "world", "name": "Огилби"}, -{"usage": "world", "name": "Огилви"}, -{"usage": "world", "name": "Оглала"}, -{"usage": "world", "name": "Оглсби"}, -{"usage": "world", "name": "Оглс"}, -{"usage": "world", "name": "Оглторп"}, -{"usage": "world", "name": "Огункит"}, -{"usage": "world", "name": "Огуста"}, -{"usage": "world", "name": "Одана"}, -{"usage": "world", "name": "Одеболт"}, -{"usage": "world", "name": "Оделл"}, -{"usage": "world", "name": "Одем"}, -{"usage": "world", "name": "Оден"}, -{"usage": "world", "name": "Одесса"}, -{"usage": "world", "name": "Оджас"}, -{"usage": "world", "name": "Оджибва"}, -{"usage": "world", "name": "Один"}, -{"usage": "world", "name": "Одон"}, -{"usage": "world", "name": "Одубон"}, -{"usage": "world", "name": "Оелвейн"}, -{"usage": "world", "name": "Оелричс"}, -{"usage": "world", "name": "Озавки"}, -{"usage": "world", "name": "Озан"}, -{"usage": "world", "name": "Озарк"}, -{"usage": "world", "name": "Озинки"}, -{"usage": "world", "name": "Озона"}, -{"usage": "world", "name": "Озон"}, -{"usage": "world", "name": "Оидак"}, -{"usage": "world", "name": "Оилтон"}, -{"usage": "world", "name": "Ойлен"}, -{"usage": "world", "name": "Ойл"}, -{"usage": "world", "name": "Ойос"}, -{"usage": "world", "name": "Ойрен"}, -{"usage": "world", "name": "Ойстер"}, -{"usage": "world", "name": "Окабена"}, -{"usage": "world", "name": "Оканоган"}, -{"usage": "world", "name": "Окарч"}, -{"usage": "world", "name": "Окатон"}, -{"usage": "world", "name": "Окат"}, -{"usage": "world", "name": "Окаумпка"}, -{"usage": "world", "name": "Ока"}, -{"usage": "world", "name": "Оквир"}, -{"usage": "world", "name": "Оквока"}, -{"usage": "world", "name": "Оквоссос"}, -{"usage": "world", "name": "Океан"}, -{"usage": "world", "name": "Окемос"}, -{"usage": "world", "name": "Окето"}, -{"usage": "world", "name": "Окиланта"}, -{"usage": "world", "name": "Окина"}, -{"usage": "world", "name": "Окин"}, -{"usage": "world", "name": "Окичоби"}, -{"usage": "world", "name": "Оклаунен"}, -{"usage": "world", "name": "Оклахома"}, -{"usage": "world", "name": "Окли"}, -{"usage": "world", "name": "Окма"}, -{"usage": "world", "name": "Окмулги"}, -{"usage": "world", "name": "Окободжи"}, -{"usage": "world", "name": "Окои"}, -{"usage": "world", "name": "Околона"}, -{"usage": "world", "name": "Окони"}, -{"usage": "world", "name": "Окономовок"}, -{"usage": "world", "name": "Оконто"}, -{"usage": "world", "name": "Окопи"}, -{"usage": "world", "name": "Окоши"}, -{"usage": "world", "name": "Окракоук"}, -{"usage": "world", "name": "Окрик"}, -{"usage": "world", "name": "Оксбоу"}, -{"usage": "world", "name": "Оксвэсс"}, -{"usage": "world", "name": "Оксиденталь"}, -{"usage": "world", "name": "Окснард"}, -{"usage": "world", "name": "Оксоквен"}, -{"usage": "world", "name": "Окс"}, -{"usage": "world", "name": "Октавия"}, -{"usage": "world", "name": "Октаха"}, -{"usage": "world", "name": "Окта"}, -{"usage": "world", "name": "Окэй"}, -{"usage": "world", "name": "Олалья"}, -{"usage": "world", "name": "Оламон"}, -{"usage": "world", "name": "Оландер"}, -{"usage": "world", "name": "Оланча"}, -{"usage": "world", "name": "Олар"}, -{"usage": "world", "name": "Оласти"}, -{"usage": "world", "name": "Олатон"}, -{"usage": "world", "name": "Олат"}, -{"usage": "world", "name": "Олауолу"}, -{"usage": "world", "name": "Олаф"}, -{"usage": "world", "name": "Ола"}, -{"usage": "world", "name": "Олбани"}, -{"usage": "world", "name": "Олбанс"}, -{"usage": "world", "name": "Олби"}, -{"usage": "world", "name": "Олбрайт"}, -{"usage": "world", "name": "Олворд"}, -{"usage": "world", "name": "Олвуд"}, -{"usage": "world", "name": "Олден"}, -{"usage": "world", "name": "Олдер"}, -{"usage": "world", "name": "Олдрич"}, -{"usage": "world", "name": "Олдсмар"}, -{"usage": "world", "name": "Олдхэм"}, -{"usage": "world", "name": "Олд"}, -{"usage": "world", "name": "Олеан"}, -{"usage": "world", "name": "Олекс"}, -{"usage": "world", "name": "Олена"}, -{"usage": "world", "name": "Оленье"}, -{"usage": "world", "name": "Олень"}, -{"usage": "world", "name": "Олива"}, -{"usage": "world", "name": "Оливер"}, -{"usage": "world", "name": "Оливет"}, -{"usage": "world", "name": "Оливия"}, -{"usage": "world", "name": "Оливос"}, -{"usage": "world", "name": "Олимпиан"}, -{"usage": "world", "name": "Олимпик"}, -{"usage": "world", "name": "Олимпия"}, -{"usage": "world", "name": "Олимпо"}, -{"usage": "world", "name": "Олимпус"}, -{"usage": "world", "name": "Олин"}, -{"usage": "world", "name": "Олифант"}, -{"usage": "world", "name": "Олкотт"}, -{"usage": "world", "name": "Оллас"}, -{"usage": "world", "name": "Олла"}, -{"usage": "world", "name": "Оллгуд"}, -{"usage": "world", "name": "Олли"}, -{"usage": "world", "name": "Олман"}, -{"usage": "world", "name": "Олмедия"}, -{"usage": "world", "name": "Олмито"}, -{"usage": "world", "name": "Олмиц"}, -{"usage": "world", "name": "Олмос"}, -{"usage": "world", "name": "Олмстед"}, -{"usage": "world", "name": "Олна"}, -{"usage": "world", "name": "Олни"}, -{"usage": "world", "name": "Олнс"}, -{"usage": "world", "name": "Олпорт"}, -{"usage": "world", "name": "Олсип"}, -{"usage": "world", "name": "Олсон"}, -{"usage": "world", "name": "Олтон"}, -{"usage": "world", "name": "Олт"}, -{"usage": "world", "name": "Олфордс"}, -{"usage": "world", "name": "Ольберг"}, -{"usage": "world", "name": "Ольви"}, -{"usage": "world", "name": "Ольга"}, -{"usage": "world", "name": "Ольпе"}, -{"usage": "world", "name": "Ольстер"}, -{"usage": "world", "name": "Омак"}, -{"usage": "world", "name": "Омао"}, -{"usage": "world", "name": "Омаха"}, -{"usage": "world", "name": "Ома"}, -{"usage": "world", "name": "Омега"}, -{"usage": "world", "name": "Омеми"}, -{"usage": "world", "name": "Омер"}, -{"usage": "world", "name": "Омо"}, -{"usage": "world", "name": "Омро"}, -{"usage": "world", "name": "Омс"}, -{"usage": "world", "name": "Онава"}, -{"usage": "world", "name": "Онага"}, -{"usage": "world", "name": "Онака"}, -{"usage": "world", "name": "Оналаска"}, -{"usage": "world", "name": "Онамия"}, -{"usage": "world", "name": "Онанкок"}, -{"usage": "world", "name": "Онарга"}, -{"usage": "world", "name": "Она"}, -{"usage": "world", "name": "Онворд"}, -{"usage": "world", "name": "Онг"}, -{"usage": "world", "name": "Онего"}, -{"usage": "world", "name": "Онейда"}, -{"usage": "world", "name": "Онекама"}, -{"usage": "world", "name": "Онеонта"}, -{"usage": "world", "name": "Онида"}, -{"usage": "world", "name": "Оникс"}, -{"usage": "world", "name": "Онион"}, -{"usage": "world", "name": "Онича"}, -{"usage": "world", "name": "Онли"}, -{"usage": "world", "name": "Оноэй"}, -{"usage": "world", "name": "Оно"}, -{"usage": "world", "name": "Онсет"}, -{"usage": "world", "name": "Онслоу"}, -{"usage": "world", "name": "Онстед"}, -{"usage": "world", "name": "Онтарио"}, -{"usage": "world", "name": "Онтонагон"}, -{"usage": "world", "name": "Оош"}, -{"usage": "world", "name": "Опал"}, -{"usage": "world", "name": "Опа"}, -{"usage": "world", "name": "Опдайк"}, -{"usage": "world", "name": "Опелика"}, -{"usage": "world", "name": "Опелусас"}, -{"usage": "world", "name": "Опиайкао"}, -{"usage": "world", "name": "Ополис"}, -{"usage": "world", "name": "Оппортунити"}, -{"usage": "world", "name": "Опп"}, -{"usage": "world", "name": "Оптимо"}, -{"usage": "world", "name": "Ораб"}, -{"usage": "world", "name": "Ораделл"}, -{"usage": "world", "name": "Оракул"}, -{"usage": "world", "name": "Орал"}, -{"usage": "world", "name": "Оранж"}, -{"usage": "world", "name": "Оран"}, -{"usage": "world", "name": "Орвиг"}, -{"usage": "world", "name": "Орвин"}, -{"usage": "world", "name": "Ордер"}, -{"usage": "world", "name": "Орд"}, -{"usage": "world", "name": "Ореана"}, -{"usage": "world", "name": "Орегония"}, -{"usage": "world", "name": "Орегон"}, -{"usage": "world", "name": "Орей"}, -{"usage": "world", "name": "Орем"}, -{"usage": "world", "name": "Орестес"}, -{"usage": "world", "name": "Оретта"}, -{"usage": "world", "name": "Ориента"}, -{"usage": "world", "name": "Ориент"}, -{"usage": "world", "name": "Орик"}, -{"usage": "world", "name": "Оринда"}, -{"usage": "world", "name": "Орин"}, -{"usage": "world", "name": "Ориол"}, -{"usage": "world", "name": "Орион"}, -{"usage": "world", "name": "Орискани"}, -{"usage": "world", "name": "Ориска"}, -{"usage": "world", "name": "Оркас"}, -{"usage": "world", "name": "Оркатт"}, -{"usage": "world", "name": "Орландо"}, -{"usage": "world", "name": "Орланд"}, -{"usage": "world", "name": "Орла"}, -{"usage": "world", "name": "Орлеан"}, -{"usage": "world", "name": "Орлинда"}, -{"usage": "world", "name": "Орловиста"}, -{"usage": "world", "name": "Ормигерос"}, -{"usage": "world", "name": "Ормонд"}, -{"usage": "world", "name": "Ормсби"}, -{"usage": "world", "name": "Орм"}, -{"usage": "world", "name": "Оровада"}, -{"usage": "world", "name": "Орогранд"}, -{"usage": "world", "name": "Ороковис"}, -{"usage": "world", "name": "Ороного"}, -{"usage": "world", "name": "Ороноко"}, -{"usage": "world", "name": "Ороно"}, -{"usage": "world", "name": "Ороси"}, -{"usage": "world", "name": "Орофино"}, -{"usage": "world", "name": "Оро"}, -{"usage": "world", "name": "Оррик"}, -{"usage": "world", "name": "Оррин"}, -{"usage": "world", "name": "Оррум"}, -{"usage": "world", "name": "Орр"}, -{"usage": "world", "name": "Орсон"}, -{"usage": "world", "name": "Ортинг"}, -{"usage": "world", "name": "Ортли"}, -{"usage": "world", "name": "Ортон"}, -{"usage": "world", "name": "Орфа"}, -{"usage": "world", "name": "Орфорд"}, -{"usage": "world", "name": "Орчард"}, -{"usage": "world", "name": "Орчид"}, -{"usage": "world", "name": "Ор"}, -{"usage": "world", "name": "Осайка"}, -{"usage": "world", "name": "Осакис"}, -{"usage": "world", "name": "Осберн"}, -{"usage": "world", "name": "Осборн"}, -{"usage": "world", "name": "Освего"}, -{"usage": "world", "name": "Осгуд"}, -{"usage": "world", "name": "Осейдж"}, -{"usage": "world", "name": "Осер"}, -{"usage": "world", "name": "Оси"}, -{"usage": "world", "name": "Оскавалик"}, -{"usage": "world", "name": "Оскалуза"}, -{"usage": "world", "name": "Оскар"}, -{"usage": "world", "name": "Оскода"}, -{"usage": "world", "name": "Осло"}, -{"usage": "world", "name": "Осман"}, -{"usage": "world", "name": "Осмунд"}, -{"usage": "world", "name": "Оснаброк"}, -{"usage": "world", "name": "Осоатоми"}, -{"usage": "world", "name": "Осо"}, -{"usage": "world", "name": "Оспри"}, -{"usage": "world", "name": "Оссео"}, -{"usage": "world", "name": "Оссиан"}, -{"usage": "world", "name": "Оссининг"}, -{"usage": "world", "name": "Оссинк"}, -{"usage": "world", "name": "Оссипи"}, -{"usage": "world", "name": "Остелл"}, -{"usage": "world", "name": "Остер"}, -{"usage": "world", "name": "Остин"}, -{"usage": "world", "name": "Остонио"}, -{"usage": "world", "name": "Острандер"}, -{"usage": "world", "name": "Осуэйо"}, -{"usage": "world", "name": "Отего"}, -{"usage": "world", "name": "Отелло"}, -{"usage": "world", "name": "Отиско"}, -{"usage": "world", "name": "Отис"}, -{"usage": "world", "name": "Отли"}, -{"usage": "world", "name": "Отога"}, -{"usage": "world", "name": "Ото"}, -{"usage": "world", "name": "Отранто"}, -{"usage": "world", "name": "Отри"}, -{"usage": "world", "name": "Отсего"}, -{"usage": "world", "name": "Отселик"}, -{"usage": "world", "name": "Оттава"}, -{"usage": "world", "name": "Оттаму"}, -{"usage": "world", "name": "Оттер"}, -{"usage": "world", "name": "Оттосен"}, -{"usage": "world", "name": "Отто"}, -{"usage": "world", "name": "Отуэй"}, -{"usage": "world", "name": "Отуэлл"}, -{"usage": "world", "name": "Отэй"}, -{"usage": "world", "name": "От"}, -{"usage": "world", "name": "Оуайхи"}, -{"usage": "world", "name": "Оуинг"}, -{"usage": "world", "name": "Оукли"}, -{"usage": "world", "name": "Оукс"}, -{"usage": "world", "name": "Оук"}, -{"usage": "world", "name": "Оулс"}, -{"usage": "world", "name": "Оул"}, -{"usage": "world", "name": "Оупи"}, -{"usage": "world", "name": "Оушена"}, -{"usage": "world", "name": "Оушен"}, -{"usage": "world", "name": "Оуэндоу"}, -{"usage": "world", "name": "Оуэнтон"}, -{"usage": "world", "name": "Оуэньо"}, -{"usage": "world", "name": "Оуэн"}, -{"usage": "world", "name": "Офейм"}, -{"usage": "world", "name": "Офир"}, -{"usage": "world", "name": "Офферл"}, -{"usage": "world", "name": "Офферман"}, -{"usage": "world", "name": "Офф"}, -{"usage": "world", "name": "Охай"}, -{"usage": "world", "name": "Охатчи"}, -{"usage": "world", "name": "Охеа"}, -{"usage": "world", "name": "Охоп"}, -{"usage": "world", "name": "Охо"}, -{"usage": "world", "name": "Оцеола"}, -{"usage": "world", "name": "Оцилла"}, -{"usage": "world", "name": "Очелата"}, -{"usage": "world", "name": "Очента"}, -{"usage": "world", "name": "Очоа"}, -{"usage": "world", "name": "Ошайедан"}, -{"usage": "world", "name": "Ошкош"}, -{"usage": "world", "name": "Ошлокни"}, -{"usage": "world", "name": "Ошото"}, -{"usage": "world", "name": "О"}, -{"usage": "world", "name": "Паауило"}, -{"usage": "world", "name": "Пабло"}, -{"usage": "world", "name": "Павильон"}, -{"usage": "world", "name": "Паво"}, -{"usage": "world", "name": "Пагоса"}, -{"usage": "world", "name": "Пагуат"}, -{"usage": "world", "name": "Паддок"}, -{"usage": "world", "name": "Паден"}, -{"usage": "world", "name": "Падония"}, -{"usage": "world", "name": "Падре"}, -{"usage": "world", "name": "Падрони"}, -{"usage": "world", "name": "Падука"}, -{"usage": "world", "name": "Паз"}, -{"usage": "world", "name": "Паия"}, -{"usage": "world", "name": "Пайат"}, -{"usage": "world", "name": "Пайк"}, -{"usage": "world", "name": "Пайнери"}, -{"usage": "world", "name": "Пайни"}, -{"usage": "world", "name": "Пайнола"}, -{"usage": "world", "name": "Пайнора"}, -{"usage": "world", "name": "Пайнтоп"}, -{"usage": "world", "name": "Пайн"}, -{"usage": "world", "name": "Пайош"}, -{"usage": "world", "name": "Пайпер"}, -{"usage": "world", "name": "Пайп"}, -{"usage": "world", "name": "Пайсано"}, -{"usage": "world", "name": "Пай"}, -{"usage": "world", "name": "Пакала"}, -{"usage": "world", "name": "Пакард"}, -{"usage": "world", "name": "Паколет"}, -{"usage": "world", "name": "Паксико"}, -{"usage": "world", "name": "Пакссон"}, -{"usage": "world", "name": "Пакстанг"}, -{"usage": "world", "name": "Пакстония"}, -{"usage": "world", "name": "Пакстон"}, -{"usage": "world", "name": "Пакс"}, -{"usage": "world", "name": "Пак"}, -{"usage": "world", "name": "Палатин"}, -{"usage": "world", "name": "Палатка"}, -{"usage": "world", "name": "Палаус"}, -{"usage": "world", "name": "Пала"}, -{"usage": "world", "name": "Пален"}, -{"usage": "world", "name": "Палермо"}, -{"usage": "world", "name": "Палестина"}, -{"usage": "world", "name": "Палисад"}, -{"usage": "world", "name": "Палито"}, -{"usage": "world", "name": "Палко"}, -{"usage": "world", "name": "Паллман"}, -{"usage": "world", "name": "Палмер"}, -{"usage": "world", "name": "Паломар"}, -{"usage": "world", "name": "Палома"}, -{"usage": "world", "name": "Пало"}, -{"usage": "world", "name": "Пальмарехо"}, -{"usage": "world", "name": "Пальма"}, -{"usage": "world", "name": "Пальметто"}, -{"usage": "world", "name": "Пальмира"}, -{"usage": "world", "name": "Пальм"}, -{"usage": "world", "name": "Пальтц"}, -{"usage": "world", "name": "Памлико"}, -{"usage": "world", "name": "Пампа"}, -{"usage": "world", "name": "Пампкин"}, -{"usage": "world", "name": "Памплико"}, -{"usage": "world", "name": "Памп"}, -{"usage": "world", "name": "Памфри"}, -{"usage": "world", "name": "Панака"}, -{"usage": "world", "name": "Панама"}, -{"usage": "world", "name": "Панацея"}, -{"usage": "world", "name": "Пана"}, -{"usage": "world", "name": "Пангберн"}, -{"usage": "world", "name": "Пангитч"}, -{"usage": "world", "name": "Пандора"}, -{"usage": "world", "name": "Панко"}, -{"usage": "world", "name": "Панксатони"}, -{"usage": "world", "name": "Панола"}, -{"usage": "world", "name": "Панорама"}, -{"usage": "world", "name": "Панора"}, -{"usage": "world", "name": "Пантано"}, -{"usage": "world", "name": "Пантего"}, -{"usage": "world", "name": "Пантера"}, -{"usage": "world", "name": "Панхандл"}, -{"usage": "world", "name": "Паола"}, -{"usage": "world", "name": "Паоли"}, -{"usage": "world", "name": "Паония"}, -{"usage": "world", "name": "Папаикоу"}, -{"usage": "world", "name": "Папалот"}, -{"usage": "world", "name": "Папетон"}, -{"usage": "world", "name": "Папиллион"}, -{"usage": "world", "name": "Парагона"}, -{"usage": "world", "name": "Парагон"}, -{"usage": "world", "name": "Парагулд"}, -{"usage": "world", "name": "Парадайс"}, -{"usage": "world", "name": "Парадис"}, -{"usage": "world", "name": "Парад"}, -{"usage": "world", "name": "Парамаунт"}, -{"usage": "world", "name": "Парамп"}, -{"usage": "world", "name": "Парамус"}, -{"usage": "world", "name": "Парашют"}, -{"usage": "world", "name": "Паргера"}, -{"usage": "world", "name": "Парди"}, -{"usage": "world", "name": "Парис"}, -{"usage": "world", "name": "Паркер"}, -{"usage": "world", "name": "Паркин"}, -{"usage": "world", "name": "Парклайн"}, -{"usage": "world", "name": "Паркмен"}, -{"usage": "world", "name": "Паркроуз"}, -{"usage": "world", "name": "Парксли"}, -{"usage": "world", "name": "Паркс"}, -{"usage": "world", "name": "Парк"}, -{"usage": "world", "name": "Парлин"}, -{"usage": "world", "name": "Парльер"}, -{"usage": "world", "name": "Пармали"}, -{"usage": "world", "name": "Парма"}, -{"usage": "world", "name": "Пармели"}, -{"usage": "world", "name": "Пармель"}, -{"usage": "world", "name": "Пармер"}, -{"usage": "world", "name": "Парнелл"}, -{"usage": "world", "name": "Парован"}, -{"usage": "world", "name": "Пароль"}, -{"usage": "world", "name": "Паррал"}, -{"usage": "world", "name": "Парран"}, -{"usage": "world", "name": "Парротт"}, -{"usage": "world", "name": "Парселас"}, -{"usage": "world", "name": "Парсипани"}, -{"usage": "world", "name": "Парсонс"}, -{"usage": "world", "name": "Парсхолл"}, -{"usage": "world", "name": "Парт"}, -{"usage": "world", "name": "Парфенон"}, -{"usage": "world", "name": "Пархамс"}, -{"usage": "world", "name": "Парчмент"}, -{"usage": "world", "name": "Пасадена"}, -{"usage": "world", "name": "Пасифика"}, -{"usage": "world", "name": "Пасифик"}, -{"usage": "world", "name": "Паскагула"}, -{"usage": "world", "name": "Паскента"}, -{"usage": "world", "name": "Паскоаг"}, -{"usage": "world", "name": "Паскола"}, -{"usage": "world", "name": "Паско"}, -{"usage": "world", "name": "Пасо"}, -{"usage": "world", "name": "Пассаик"}, -{"usage": "world", "name": "Пасс"}, -{"usage": "world", "name": "Пастилло"}, -{"usage": "world", "name": "Пастос"}, -{"usage": "world", "name": "Пастура"}, -{"usage": "world", "name": "Пасчер"}, -{"usage": "world", "name": "Патагония"}, -{"usage": "world", "name": "Патаскала"}, -{"usage": "world", "name": "Патаха"}, -{"usage": "world", "name": "Патент"}, -{"usage": "world", "name": "Патерос"}, -{"usage": "world", "name": "Патерсон"}, -{"usage": "world", "name": "Патзау"}, -{"usage": "world", "name": "Патилла"}, -{"usage": "world", "name": "Патмос"}, -{"usage": "world", "name": "Патнэм"}, -{"usage": "world", "name": "Патока"}, -{"usage": "world", "name": "Патон"}, -{"usage": "world", "name": "Патрик"}, -{"usage": "world", "name": "Патриот"}, -{"usage": "world", "name": "Патрисио"}, -{"usage": "world", "name": "Патриция"}, -{"usage": "world", "name": "Патрун"}, -{"usage": "world", "name": "Паттен"}, -{"usage": "world", "name": "Паттерсон"}, -{"usage": "world", "name": "Паттисон"}, -{"usage": "world", "name": "Паттон"}, -{"usage": "world", "name": "Патчог"}, -{"usage": "world", "name": "Патч"}, -{"usage": "world", "name": "Пат"}, -{"usage": "world", "name": "Паудерли"}, -{"usage": "world", "name": "Паудер"}, -{"usage": "world", "name": "Паудр"}, -{"usage": "world", "name": "Паукаа"}, -{"usage": "world", "name": "Паула"}, -{"usage": "world", "name": "Паунал"}, -{"usage": "world", "name": "Паунд"}, -{"usage": "world", "name": "Пауэлл"}, -{"usage": "world", "name": "Пауэл"}, -{"usage": "world", "name": "Пауэр"}, -{"usage": "world", "name": "Пахарито"}, -{"usage": "world", "name": "Пахаро"}, -{"usage": "world", "name": "Пахаска"}, -{"usage": "world", "name": "Пахоа"}, -{"usage": "world", "name": "Пахоки"}, -{"usage": "world", "name": "Пац"}, -{"usage": "world", "name": "Пачеко"}, -{"usage": "world", "name": "Пачута"}, -{"usage": "world", "name": "Пеббл"}, -{"usage": "world", "name": "Певамо"}, -{"usage": "world", "name": "Певели"}, -{"usage": "world", "name": "Пеггс"}, -{"usage": "world", "name": "Пеграм"}, -{"usage": "world", "name": "Педерналь"}, -{"usage": "world", "name": "Педли"}, -{"usage": "world", "name": "Педрик"}, -{"usage": "world", "name": "Педро"}, -{"usage": "world", "name": "Пейдж"}, -{"usage": "world", "name": "Пейнс"}, -{"usage": "world", "name": "Пейнтед"}, -{"usage": "world", "name": "Пейнтер"}, -{"usage": "world", "name": "Пейнт"}, -{"usage": "world", "name": "Пейн"}, -{"usage": "world", "name": "Пейсинс"}, -{"usage": "world", "name": "Пейсли"}, -{"usage": "world", "name": "Пейс"}, -{"usage": "world", "name": "Пейтон"}, -{"usage": "world", "name": "Пейтс"}, -{"usage": "world", "name": "Пейт"}, -{"usage": "world", "name": "Пекан"}, -{"usage": "world", "name": "Пекатоника"}, -{"usage": "world", "name": "Пеквана"}, -{"usage": "world", "name": "Пекваннок"}, -{"usage": "world", "name": "Пеквоп"}, -{"usage": "world", "name": "Пекин"}, -{"usage": "world", "name": "Пеконик"}, -{"usage": "world", "name": "Пекос"}, -{"usage": "world", "name": "Пекулиар"}, -{"usage": "world", "name": "Пекхэм"}, -{"usage": "world", "name": "Пек"}, -{"usage": "world", "name": "Пелахатчи"}, -{"usage": "world", "name": "Пелетьер"}, -{"usage": "world", "name": "Пелзер"}, -{"usage": "world", "name": "Пеликан"}, -{"usage": "world", "name": "Пелион"}, -{"usage": "world", "name": "Пелки"}, -{"usage": "world", "name": "Пелланд"}, -{"usage": "world", "name": "Пелла"}, -{"usage": "world", "name": "Пеллет"}, -{"usage": "world", "name": "Пелл"}, -{"usage": "world", "name": "Пелхэм"}, -{"usage": "world", "name": "Пембер"}, -{"usage": "world", "name": "Пембина"}, -{"usage": "world", "name": "Пембрук"}, -{"usage": "world", "name": "Пеналоса"}, -{"usage": "world", "name": "Пена"}, -{"usage": "world", "name": "Пенбрук"}, -{"usage": "world", "name": "Пендер"}, -{"usage": "world", "name": "Пенджилли"}, -{"usage": "world", "name": "Пендл"}, -{"usage": "world", "name": "Пендрой"}, -{"usage": "world", "name": "Пенермон"}, -{"usage": "world", "name": "Пензанс"}, -{"usage": "world", "name": "Пенинсула"}, -{"usage": "world", "name": "Пенитас"}, -{"usage": "world", "name": "Пеннинг"}, -{"usage": "world", "name": "Пенни"}, -{"usage": "world", "name": "Пеннок"}, -{"usage": "world", "name": "Пеннсако"}, -{"usage": "world", "name": "Пеннсокен"}, -{"usage": "world", "name": "Пенн"}, -{"usage": "world", "name": "Пенроуз"}, -{"usage": "world", "name": "Пенсакола"}, -{"usage": "world", "name": "Пенсер"}, -{"usage": "world", "name": "Пенсоки"}, -{"usage": "world", "name": "Пент"}, -{"usage": "world", "name": "Пенхук"}, -{"usage": "world", "name": "Пеньюэлас"}, -{"usage": "world", "name": "Пеньяско"}, -{"usage": "world", "name": "Пен"}, -{"usage": "world", "name": "Пеоа"}, -{"usage": "world", "name": "Пеория"}, -{"usage": "world", "name": "Пеоста"}, -{"usage": "world", "name": "Пеотон"}, -{"usage": "world", "name": "Пепеэкео"}, -{"usage": "world", "name": "Пепин"}, -{"usage": "world", "name": "Пеппер"}, -{"usage": "world", "name": "Перальта"}, -{"usage": "world", "name": "Первес"}, -{"usage": "world", "name": "Первис"}, -{"usage": "world", "name": "Пердидо"}, -{"usage": "world", "name": "Пердиз"}, -{"usage": "world", "name": "Пердин"}, -{"usage": "world", "name": "Перди"}, -{"usage": "world", "name": "Пердон"}, -{"usage": "world", "name": "Пердум"}, -{"usage": "world", "name": "Перес"}, -{"usage": "world", "name": "Пере"}, -{"usage": "world", "name": "Перидот"}, -{"usage": "world", "name": "Перин"}, -{"usage": "world", "name": "Перкаси"}, -{"usage": "world", "name": "Перкинс"}, -{"usage": "world", "name": "Перкл"}, -{"usage": "world", "name": "Перлита"}, -{"usage": "world", "name": "Перли"}, -{"usage": "world", "name": "Перл"}, -{"usage": "world", "name": "Перма"}, -{"usage": "world", "name": "Пернелл"}, -{"usage": "world", "name": "Пернитас"}, -{"usage": "world", "name": "Перот"}, -{"usage": "world", "name": "Перриман"}, -{"usage": "world", "name": "Перрин"}, -{"usage": "world", "name": "Перриополис"}, -{"usage": "world", "name": "Перри"}, -{"usage": "world", "name": "Перселл"}, -{"usage": "world", "name": "Персилла"}, -{"usage": "world", "name": "Персия"}, -{"usage": "world", "name": "Перси"}, -{"usage": "world", "name": "Перт"}, -{"usage": "world", "name": "Перу"}, -{"usage": "world", "name": "Перхэм"}, -{"usage": "world", "name": "Перчейз"}, -{"usage": "world", "name": "Пескадеро"}, -{"usage": "world", "name": "Песотум"}, -{"usage": "world", "name": "Петалума"}, -{"usage": "world", "name": "Петал"}, -{"usage": "world", "name": "Петоски"}, -{"usage": "world", "name": "Петри"}, -{"usage": "world", "name": "Петролеум"}, -{"usage": "world", "name": "Петролия"}, -{"usage": "world", "name": "Петронила"}, -{"usage": "world", "name": "Петрос"}, -{"usage": "world", "name": "Петти"}, -{"usage": "world", "name": "Петтри"}, -{"usage": "world", "name": "Петтус"}, -{"usage": "world", "name": "Пеуи"}, -{"usage": "world", "name": "Пеуоки"}, -{"usage": "world", "name": "Пешастин"}, -{"usage": "world", "name": "Пешобес"}, -{"usage": "world", "name": "Пештиго"}, -{"usage": "world", "name": "Пе"}, -{"usage": "world", "name": "Пиблз"}, -{"usage": "world", "name": "Пибоди"}, -{"usage": "world", "name": "Пивер"}, -{"usage": "world", "name": "Пиготт"}, -{"usage": "world", "name": "Пиджен"}, -{"usage": "world", "name": "Пидкок"}, -{"usage": "world", "name": "Пидмонт"}, -{"usage": "world", "name": "Пикабо"}, -{"usage": "world", "name": "Пикачо"}, -{"usage": "world", "name": "Пикаюн"}, -{"usage": "world", "name": "Пика"}, -{"usage": "world", "name": "Пиква"}, -{"usage": "world", "name": "Пикенс"}, -{"usage": "world", "name": "Пикеринг"}, -{"usage": "world", "name": "Пикетт"}, -{"usage": "world", "name": "Пико"}, -{"usage": "world", "name": "Пикрелл"}, -{"usage": "world", "name": "Пикскилл"}, -{"usage": "world", "name": "Пиксли"}, -{"usage": "world", "name": "Пикчер"}, -{"usage": "world", "name": "Пик"}, -{"usage": "world", "name": "Пилар"}, -{"usage": "world", "name": "Пиллар"}, -{"usage": "world", "name": "Пиллиджер"}, -{"usage": "world", "name": "Пиллоу"}, -{"usage": "world", "name": "Пиллс"}, -{"usage": "world", "name": "Пилот"}, -{"usage": "world", "name": "Пилсен"}, -{"usage": "world", "name": "Пильгер"}, -{"usage": "world", "name": "Пил"}, -{"usage": "world", "name": "Пима"}, -{"usage": "world", "name": "Пименто"}, -{"usage": "world", "name": "Пиммит"}, -{"usage": "world", "name": "Пинакл"}, -{"usage": "world", "name": "Пинард"}, -{"usage": "world", "name": "Пингри"}, -{"usage": "world", "name": "Пиндалл"}, -{"usage": "world", "name": "Пинеда"}, -{"usage": "world", "name": "Пинеллас"}, -{"usage": "world", "name": "Пинетта"}, -{"usage": "world", "name": "Пинкард"}, -{"usage": "world", "name": "Пинкни"}, -{"usage": "world", "name": "Пинконнинг"}, -{"usage": "world", "name": "Пинк"}, -{"usage": "world", "name": "Пинола"}, -{"usage": "world", "name": "Пиноль"}, -{"usage": "world", "name": "Пинон"}, -{"usage": "world", "name": "Пинос"}, -{"usage": "world", "name": "Пинсон"}, -{"usage": "world", "name": "Пинта"}, -{"usage": "world", "name": "Пинто"}, -{"usage": "world", "name": "Пинтура"}, -{"usage": "world", "name": "Пинч"}, -{"usage": "world", "name": "Пионер"}, -{"usage": "world", "name": "Пипак"}, -{"usage": "world", "name": "Пиппа"}, -{"usage": "world", "name": "Пирамида"}, -{"usage": "world", "name": "Пирз"}, -{"usage": "world", "name": "Пирис"}, -{"usage": "world", "name": "Пиритон"}, -{"usage": "world", "name": "Пирлесс"}, -{"usage": "world", "name": "Пирлинг"}, -{"usage": "world", "name": "Пиррон"}, -{"usage": "world", "name": "Пирси"}, -{"usage": "world", "name": "Пирсолл"}, -{"usage": "world", "name": "Пирсон"}, -{"usage": "world", "name": "Пирс"}, -{"usage": "world", "name": "Пиртл"}, -{"usage": "world", "name": "Пиру"}, -{"usage": "world", "name": "Пир"}, -{"usage": "world", "name": "Писга"}, -{"usage": "world", "name": "Писек"}, -{"usage": "world", "name": "Пискатауэй"}, -{"usage": "world", "name": "Пистейки"}, -{"usage": "world", "name": "Пис"}, -{"usage": "world", "name": "Питер"}, -{"usage": "world", "name": "Питкас"}, -{"usage": "world", "name": "Питкин"}, -{"usage": "world", "name": "Питкэрн"}, -{"usage": "world", "name": "Питман"}, -{"usage": "world", "name": "Питс"}, -{"usage": "world", "name": "Питтман"}, -{"usage": "world", "name": "Питтсбург"}, -{"usage": "world", "name": "Питт"}, -{"usage": "world", "name": "Питц"}, -{"usage": "world", "name": "Пит"}, -{"usage": "world", "name": "Пичер"}, -{"usage": "world", "name": "Пич"}, -{"usage": "world", "name": "Пи"}, -{"usage": "world", "name": "Плаза"}, -{"usage": "world", "name": "Плаййта"}, -{"usage": "world", "name": "Плайя"}, -{"usage": "world", "name": "Плакемин"}, -{"usage": "world", "name": "Пламбсок"}, -{"usage": "world", "name": "Пламмер"}, -{"usage": "world", "name": "Плам"}, -{"usage": "world", "name": "Планада"}, -{"usage": "world", "name": "Пландом"}, -{"usage": "world", "name": "Планкинтон"}, -{"usage": "world", "name": "Плано"}, -{"usage": "world", "name": "Плантация"}, -{"usage": "world", "name": "Плантер"}, -{"usage": "world", "name": "Плант"}, -{"usage": "world", "name": "Пласедо"}, -{"usage": "world", "name": "Пласентия"}, -{"usage": "world", "name": "Пласида"}, -{"usage": "world", "name": "Пласид"}, -{"usage": "world", "name": "Пласитас"}, -{"usage": "world", "name": "Пластер"}, -{"usage": "world", "name": "Плата"}, -{"usage": "world", "name": "Платея"}, -{"usage": "world", "name": "Платина"}, -{"usage": "world", "name": "Платинум"}, -{"usage": "world", "name": "Платон"}, -{"usage": "world", "name": "Плато"}, -{"usage": "world", "name": "Платтс"}, -{"usage": "world", "name": "Платт"}, -{"usage": "world", "name": "Плат"}, -{"usage": "world", "name": "Плевна"}, -{"usage": "world", "name": "Пледжер"}, -{"usage": "world", "name": "Плежэ"}, -{"usage": "world", "name": "Плезантон"}, -{"usage": "world", "name": "Плезант"}, -{"usage": "world", "name": "Плейн"}, -{"usage": "world", "name": "Плейсер"}, -{"usage": "world", "name": "Плейстоу"}, -{"usage": "world", "name": "Плейс"}, -{"usage": "world", "name": "Плена"}, -{"usage": "world", "name": "Пленти"}, -{"usage": "world", "name": "Плен"}, -{"usage": "world", "name": "Плеттен"}, -{"usage": "world", "name": "Плетчер"}, -{"usage": "world", "name": "Плик"}, -{"usage": "world", "name": "Плимптон"}, -{"usage": "world", "name": "Плимут"}, -{"usage": "world", "name": "Плош"}, -{"usage": "world", "name": "Плумер"}, -{"usage": "world", "name": "Плэй"}, -{"usage": "world", "name": "Плюм"}, -{"usage": "world", "name": "Плюш"}, -{"usage": "world", "name": "Поаг"}, -{"usage": "world", "name": "Побре"}, -{"usage": "world", "name": "Повэй"}, -{"usage": "world", "name": "Погик"}, -{"usage": "world", "name": "Поджоак"}, -{"usage": "world", "name": "Позен"}, -{"usage": "world", "name": "Поинт"}, -{"usage": "world", "name": "Пойен"}, -{"usage": "world", "name": "Пойндекстер"}, -{"usage": "world", "name": "Пойнетт"}, -{"usage": "world", "name": "Пойнор"}, -{"usage": "world", "name": "Пойпу"}, -{"usage": "world", "name": "Пой"}, -{"usage": "world", "name": "Покалла"}, -{"usage": "world", "name": "Покассет"}, -{"usage": "world", "name": "Покатак"}, -{"usage": "world", "name": "Покаталико"}, -{"usage": "world", "name": "Покателло"}, -{"usage": "world", "name": "Покахонтас"}, -{"usage": "world", "name": "Пока"}, -{"usage": "world", "name": "Поквотт"}, -{"usage": "world", "name": "Покипси"}, -{"usage": "world", "name": "Покнок"}, -{"usage": "world", "name": "Покола"}, -{"usage": "world", "name": "Покомок"}, -{"usage": "world", "name": "Поконо"}, -{"usage": "world", "name": "Покопсон"}, -{"usage": "world", "name": "Покотопог"}, -{"usage": "world", "name": "Поланд"}, -{"usage": "world", "name": "Полвадера"}, -{"usage": "world", "name": "Полден"}, -{"usage": "world", "name": "Полдинг"}, -{"usage": "world", "name": "Полетт"}, -{"usage": "world", "name": "Полет"}, -{"usage": "world", "name": "Полина"}, -{"usage": "world", "name": "Полинг"}, -{"usage": "world", "name": "Поли"}, -{"usage": "world", "name": "Полк"}, -{"usage": "world", "name": "Поллард"}, -{"usage": "world", "name": "Поллок"}, -{"usage": "world", "name": "Полония"}, -{"usage": "world", "name": "Поло"}, -{"usage": "world", "name": "Полсон"}, -{"usage": "world", "name": "Поль"}, -{"usage": "world", "name": "Полюс"}, -{"usage": "world", "name": "Помария"}, -{"usage": "world", "name": "Помона"}, -{"usage": "world", "name": "Помонки"}, -{"usage": "world", "name": "Помпано"}, -{"usage": "world", "name": "Помпис"}, -{"usage": "world", "name": "Помптон"}, -{"usage": "world", "name": "Помрой"}, -{"usage": "world", "name": "Пондероса"}, -{"usage": "world", "name": "Пондерэй"}, -{"usage": "world", "name": "Пондер"}, -{"usage": "world", "name": "Пондоса"}, -{"usage": "world", "name": "Понд"}, -{"usage": "world", "name": "Понето"}, -{"usage": "world", "name": "Пониент"}, -{"usage": "world", "name": "Пони"}, -{"usage": "world", "name": "Понка"}, -{"usage": "world", "name": "Понма"}, -{"usage": "world", "name": "Понте"}, -{"usage": "world", "name": "Понтиак"}, -{"usage": "world", "name": "Понтон"}, -{"usage": "world", "name": "Понтоток"}, -{"usage": "world", "name": "Понтусук"}, -{"usage": "world", "name": "Пончатаула"}, -{"usage": "world", "name": "Понча"}, -{"usage": "world", "name": "Поплар"}, -{"usage": "world", "name": "Порвенир"}, -{"usage": "world", "name": "Портал"}, -{"usage": "world", "name": "Портедж"}, -{"usage": "world", "name": "Портис"}, -{"usage": "world", "name": "Портленд"}, -{"usage": "world", "name": "Портола"}, -{"usage": "world", "name": "Портсмут"}, -{"usage": "world", "name": "Портье"}, -{"usage": "world", "name": "Порт"}, -{"usage": "world", "name": "Порум"}, -{"usage": "world", "name": "Порция"}, -{"usage": "world", "name": "Поссесшен"}, -{"usage": "world", "name": "Постелл"}, -{"usage": "world", "name": "Постон"}, -{"usage": "world", "name": "Пост"}, -{"usage": "world", "name": "Пос"}, -{"usage": "world", "name": "Потакет"}, -{"usage": "world", "name": "Потала"}, -{"usage": "world", "name": "Потато"}, -{"usage": "world", "name": "Потвин"}, -{"usage": "world", "name": "Потит"}, -{"usage": "world", "name": "Потлач"}, -{"usage": "world", "name": "Потомак"}, -{"usage": "world", "name": "Потоси"}, -{"usage": "world", "name": "Пото"}, -{"usage": "world", "name": "Потсдам"}, -{"usage": "world", "name": "Поттери"}, -{"usage": "world", "name": "Поттер"}, -{"usage": "world", "name": "Поттс"}, -{"usage": "world", "name": "Пот"}, -{"usage": "world", "name": "Поузи"}, -{"usage": "world", "name": "Поулан"}, -{"usage": "world", "name": "Поулсбо"}, -{"usage": "world", "name": "Поуп"}, -{"usage": "world", "name": "Поуэла"}, -{"usage": "world", "name": "Похатан"}, -{"usage": "world", "name": "По"}, -{"usage": "world", "name": "Прага"}, -{"usage": "world", "name": "Прадо"}, -{"usage": "world", "name": "Прайд"}, -{"usage": "world", "name": "Прайн"}, -{"usage": "world", "name": "Прайор"}, -{"usage": "world", "name": "Прайс"}, -{"usage": "world", "name": "Пранти"}, -{"usage": "world", "name": "Прари"}, -{"usage": "world", "name": "Пратер"}, -{"usage": "world", "name": "Пребл"}, -{"usage": "world", "name": "Президент"}, -{"usage": "world", "name": "Президио"}, -{"usage": "world", "name": "Премонт"}, -{"usage": "world", "name": "Прентис"}, -{"usage": "world", "name": "Прерия"}, -{"usage": "world", "name": "Преса"}, -{"usage": "world", "name": "Прескотт"}, -{"usage": "world", "name": "Преск"}, -{"usage": "world", "name": "Престон"}, -{"usage": "world", "name": "Престо"}, -{"usage": "world", "name": "Претти"}, -{"usage": "world", "name": "Прешо"}, -{"usage": "world", "name": "Придди"}, -{"usage": "world", "name": "Приджн"}, -{"usage": "world", "name": "Призматик"}, -{"usage": "world", "name": "Примера"}, -{"usage": "world", "name": "Примроуз"}, -{"usage": "world", "name": "Примхар"}, -{"usage": "world", "name": "Прим"}, -{"usage": "world", "name": "Прингл"}, -{"usage": "world", "name": "Принс"}, -{"usage": "world", "name": "Принцесса"}, -{"usage": "world", "name": "Принц"}, -{"usage": "world", "name": "Прин"}, -{"usage": "world", "name": "Приор"}, -{"usage": "world", "name": "Прист"}, -{"usage": "world", "name": "Притчетт"}, -{"usage": "world", "name": "Причард"}, -{"usage": "world", "name": "Проберта"}, -{"usage": "world", "name": "Провансаль"}, -{"usage": "world", "name": "Провиденс"}, -{"usage": "world", "name": "Провинция"}, -{"usage": "world", "name": "Прово"}, -{"usage": "world", "name": "Прогресо"}, -{"usage": "world", "name": "Прогресс"}, -{"usage": "world", "name": "Проктор"}, -{"usage": "world", "name": "Промиз"}, -{"usage": "world", "name": "Промонтори"}, -{"usage": "world", "name": "Промптон"}, -{"usage": "world", "name": "Пронг"}, -{"usage": "world", "name": "Пронто"}, -{"usage": "world", "name": "Просит"}, -{"usage": "world", "name": "Проспект"}, -{"usage": "world", "name": "Просперити"}, -{"usage": "world", "name": "Проспер"}, -{"usage": "world", "name": "Проссер"}, -{"usage": "world", "name": "Протекшен"}, -{"usage": "world", "name": "Протем"}, -{"usage": "world", "name": "Противин"}, -{"usage": "world", "name": "Профетс"}, -{"usage": "world", "name": "Пруден"}, -{"usage": "world", "name": "Прудо"}, -{"usage": "world", "name": "Прун"}, -{"usage": "world", "name": "Пруссия"}, -{"usage": "world", "name": "Пруф"}, -{"usage": "world", "name": "Прэй"}, -{"usage": "world", "name": "Прэтт"}, -{"usage": "world", "name": "Прюитт"}, -{"usage": "world", "name": "Прю"}, -{"usage": "world", "name": "Пуако"}, -{"usage": "world", "name": "Пуант"}, -{"usage": "world", "name": "Пуйаллап"}, -{"usage": "world", "name": "Пукалани"}, -{"usage": "world", "name": "Пукетт"}, -{"usage": "world", "name": "Пуласки"}, -{"usage": "world", "name": "Пулер"}, -{"usage": "world", "name": "Пулс"}, -{"usage": "world", "name": "Пул"}, -{"usage": "world", "name": "Пуналуу"}, -{"usage": "world", "name": "Пунта"}, -{"usage": "world", "name": "Пурьер"}, -{"usage": "world", "name": "Путни"}, -{"usage": "world", "name": "Пут"}, -{"usage": "world", "name": "Пууанаулью"}, -{"usage": "world", "name": "Пуувай"}, -{"usage": "world", "name": "Пуш"}, -{"usage": "world", "name": "Пуэблито"}, -{"usage": "world", "name": "Пуэбло"}, -{"usage": "world", "name": "Пуэнте"}, -{"usage": "world", "name": "Пуэрто"}, -{"usage": "world", "name": "Пуюколии"}, -{"usage": "world", "name": "Пфайфер"}, -{"usage": "world", "name": "Пфлюгера"}, -{"usage": "world", "name": "Пьедра"}, -{"usage": "world", "name": "Пьерпонт"}, -{"usage": "world", "name": "Пьер"}, -{"usage": "world", "name": "Пэйсон"}, -{"usage": "world", "name": "Пэриш"}, -{"usage": "world", "name": "Пэрриш"}, -{"usage": "world", "name": "Пэрри"}, -{"usage": "world", "name": "Раббит"}, -{"usage": "world", "name": "Рабида"}, -{"usage": "world", "name": "Равалли"}, -{"usage": "world", "name": "Равенден"}, -{"usage": "world", "name": "Равенна"}, -{"usage": "world", "name": "Равиния"}, -{"usage": "world", "name": "Равия"}, -{"usage": "world", "name": "Раган"}, -{"usage": "world", "name": "Рагли"}, -{"usage": "world", "name": "Раго"}, -{"usage": "world", "name": "Радд"}, -{"usage": "world", "name": "Радий"}, -{"usage": "world", "name": "Радиссон"}, -{"usage": "world", "name": "Раднор"}, -{"usage": "world", "name": "Радом"}, -{"usage": "world", "name": "Рад"}, -{"usage": "world", "name": "Райан"}, -{"usage": "world", "name": "Райдер"}, -{"usage": "world", "name": "Райзинг"}, -{"usage": "world", "name": "Райз"}, -{"usage": "world", "name": "Райли"}, -{"usage": "world", "name": "Раймонд"}, -{"usage": "world", "name": "Райнбек"}, -{"usage": "world", "name": "Райнер"}, -{"usage": "world", "name": "Райс"}, -{"usage": "world", "name": "Райтс"}, -{"usage": "world", "name": "Райт"}, -{"usage": "world", "name": "Рай"}, -{"usage": "world", "name": "Ракер"}, -{"usage": "world", "name": "Ракетт"}, -{"usage": "world", "name": "Ральф"}, -{"usage": "world", "name": "Рамапо"}, -{"usage": "world", "name": "Рама"}, -{"usage": "world", "name": "Рамбл"}, -{"usage": "world", "name": "Рамер"}, -{"usage": "world", "name": "Рамирес"}, -{"usage": "world", "name": "Рамона"}, -{"usage": "world", "name": "Рамон"}, -{"usage": "world", "name": "Рамос"}, -{"usage": "world", "name": "Рампарт"}, -{"usage": "world", "name": "Рамсей"}, -{"usage": "world", "name": "Рамсон"}, -{"usage": "world", "name": "Рамсур"}, -{"usage": "world", "name": "Рам"}, -{"usage": "world", "name": "Рандадо"}, -{"usage": "world", "name": "Рандалия"}, -{"usage": "world", "name": "Рандж"}, -{"usage": "world", "name": "Рандлетт"}, -{"usage": "world", "name": "Рандольф"}, -{"usage": "world", "name": "Рандом"}, -{"usage": "world", "name": "Ранд"}, -{"usage": "world", "name": "Ранкин"}, -{"usage": "world", "name": "Ранкокас"}, -{"usage": "world", "name": "Ранло"}, -{"usage": "world", "name": "Раннелл"}, -{"usage": "world", "name": "Раннел"}, -{"usage": "world", "name": "Раннимид"}, -{"usage": "world", "name": "Раннинг"}, -{"usage": "world", "name": "Рансом"}, -{"usage": "world", "name": "Рансон"}, -{"usage": "world", "name": "Ранчеттс"}, -{"usage": "world", "name": "Ранчито"}, -{"usage": "world", "name": "Ранчо"}, -{"usage": "world", "name": "Ранч"}, -{"usage": "world", "name": "Раньер"}, -{"usage": "world", "name": "Ран"}, -{"usage": "world", "name": "Рапелж"}, -{"usage": "world", "name": "Рапид"}, -{"usage": "world", "name": "Рарден"}, -{"usage": "world", "name": "Рардин"}, -{"usage": "world", "name": "Раритан"}, -{"usage": "world", "name": "Раса"}, -{"usage": "world", "name": "Расин"}, -{"usage": "world", "name": "Раскин"}, -{"usage": "world", "name": "Раск"}, -{"usage": "world", "name": "Расса"}, -{"usage": "world", "name": "Рассел"}, -{"usage": "world", "name": "Растад"}, -{"usage": "world", "name": "Растон"}, -{"usage": "world", "name": "Раст"}, -{"usage": "world", "name": "Ратклифф"}, -{"usage": "world", "name": "Ратлифф"}, -{"usage": "world", "name": "Ратон"}, -{"usage": "world", "name": "Рауб"}, -{"usage": "world", "name": "Рауль"}, -{"usage": "world", "name": "Раундап"}, -{"usage": "world", "name": "Раунд"}, -{"usage": "world", "name": "Рауэй"}, -{"usage": "world", "name": "Рафаэль"}, -{"usage": "world", "name": "Рафтер"}, -{"usage": "world", "name": "Раффин"}, -{"usage": "world", "name": "Рафф"}, -{"usage": "world", "name": "Рачал"}, -{"usage": "world", "name": "Раш"}, -{"usage": "world", "name": "Реал"}, -{"usage": "world", "name": "Реберс"}, -{"usage": "world", "name": "Рева"}, -{"usage": "world", "name": "Ревенел"}, -{"usage": "world", "name": "Ревилло"}, -{"usage": "world", "name": "Ревир"}, -{"usage": "world", "name": "Регал"}, -{"usage": "world", "name": "Регби"}, -{"usage": "world", "name": "Регент"}, -{"usage": "world", "name": "Регистр"}, -{"usage": "world", "name": "Регис"}, -{"usage": "world", "name": "Редан"}, -{"usage": "world", "name": "Редберд"}, -{"usage": "world", "name": "Редби"}, -{"usage": "world", "name": "Редделл"}, -{"usage": "world", "name": "Редден"}, -{"usage": "world", "name": "Реддик"}, -{"usage": "world", "name": "Реддинг"}, -{"usage": "world", "name": "Реджо"}, -{"usage": "world", "name": "Редиг"}, -{"usage": "world", "name": "Рединг"}, -{"usage": "world", "name": "Редки"}, -{"usage": "world", "name": "Редланд"}, -{"usage": "world", "name": "Редмеса"}, -{"usage": "world", "name": "Редмонд"}, -{"usage": "world", "name": "Редмон"}, -{"usage": "world", "name": "Редондо"}, -{"usage": "world", "name": "Редоул"}, -{"usage": "world", "name": "Редрок"}, -{"usage": "world", "name": "Редьярд"}, -{"usage": "world", "name": "Ред"}, -{"usage": "world", "name": "Резерв"}, -{"usage": "world", "name": "Рейвен"}, -{"usage": "world", "name": "Рейган"}, -{"usage": "world", "name": "Рейдерс"}, -{"usage": "world", "name": "Рейдон"}, -{"usage": "world", "name": "Рейд"}, -{"usage": "world", "name": "Рейес"}, -{"usage": "world", "name": "Рейзин"}, -{"usage": "world", "name": "Рейк"}, -{"usage": "world", "name": "Рейли"}, -{"usage": "world", "name": "Рейль"}, -{"usage": "world", "name": "Рейл"}, -{"usage": "world", "name": "Реймер"}, -{"usage": "world", "name": "Реймор"}, -{"usage": "world", "name": "Рейнджер"}, -{"usage": "world", "name": "Рейнир"}, -{"usage": "world", "name": "Рейнольдс"}, -{"usage": "world", "name": "Рейно"}, -{"usage": "world", "name": "Рейнс"}, -{"usage": "world", "name": "Рейн"}, -{"usage": "world", "name": "Рейстерс"}, -{"usage": "world", "name": "Рейффтон"}, -{"usage": "world", "name": "Рей"}, -{"usage": "world", "name": "Реква"}, -{"usage": "world", "name": "Реклас"}, -{"usage": "world", "name": "Рекло"}, -{"usage": "world", "name": "Рековери"}, -{"usage": "world", "name": "Рекстон"}, -{"usage": "world", "name": "Рексхам"}, -{"usage": "world", "name": "Рекс"}, -{"usage": "world", "name": "Ректор"}, -{"usage": "world", "name": "Релайанс"}, -{"usage": "world", "name": "Ремайндер"}, -{"usage": "world", "name": "Ремберт"}, -{"usage": "world", "name": "Рембрандт"}, -{"usage": "world", "name": "Ремер"}, -{"usage": "world", "name": "Ремингтон"}, -{"usage": "world", "name": "Реми"}, -{"usage": "world", "name": "Ремо"}, -{"usage": "world", "name": "Ремсен"}, -{"usage": "world", "name": "Рем"}, -{"usage": "world", "name": "Рена"}, -{"usage": "world", "name": "Ренвик"}, -{"usage": "world", "name": "Рендон"}, -{"usage": "world", "name": "Ренд"}, -{"usage": "world", "name": "Реник"}, -{"usage": "world", "name": "Реннерт"}, -{"usage": "world", "name": "Ренова"}, -{"usage": "world", "name": "Реново"}, -{"usage": "world", "name": "Рено"}, -{"usage": "world", "name": "Ренсселаер"}, -{"usage": "world", "name": "Рентиес"}, -{"usage": "world", "name": "Рентон"}, -{"usage": "world", "name": "Рентул"}, -{"usage": "world", "name": "Рентц"}, -{"usage": "world", "name": "Ренфро"}, -{"usage": "world", "name": "Реншолл"}, -{"usage": "world", "name": "Рен"}, -{"usage": "world", "name": "Репабликан"}, -{"usage": "world", "name": "Репопо"}, -{"usage": "world", "name": "Репос"}, -{"usage": "world", "name": "Рердан"}, -{"usage": "world", "name": "Рерделл"}, -{"usage": "world", "name": "Ресака"}, -{"usage": "world", "name": "Ресорт"}, -{"usage": "world", "name": "Ресота"}, -{"usage": "world", "name": "Республика"}, -{"usage": "world", "name": "Рестон"}, -{"usage": "world", "name": "Рест"}, -{"usage": "world", "name": "Ретер"}, -{"usage": "world", "name": "Ретрит"}, -{"usage": "world", "name": "Ретроп"}, -{"usage": "world", "name": "Ретта"}, -{"usage": "world", "name": "Реформа"}, -{"usage": "world", "name": "Рефьюджио"}, -{"usage": "world", "name": "Рехобот"}, -{"usage": "world", "name": "Рея"}, -{"usage": "world", "name": "Риальто"}, -{"usage": "world", "name": "Рибера"}, -{"usage": "world", "name": "Риб"}, -{"usage": "world", "name": "Рива"}, -{"usage": "world", "name": "Ривера"}, -{"usage": "world", "name": "Риверли"}, -{"usage": "world", "name": "Ривер"}, -{"usage": "world", "name": "Ривз"}, -{"usage": "world", "name": "Ривс"}, -{"usage": "world", "name": "Ривьера"}, -{"usage": "world", "name": "Риган"}, -{"usage": "world", "name": "Ригби"}, -{"usage": "world", "name": "Риггинс"}, -{"usage": "world", "name": "Ригель"}, -{"usage": "world", "name": "Ригер"}, -{"usage": "world", "name": "Ригли"}, -{"usage": "world", "name": "Риддер"}, -{"usage": "world", "name": "Риддл"}, -{"usage": "world", "name": "Ридер"}, -{"usage": "world", "name": "Риджли"}, -{"usage": "world", "name": "Ридж"}, -{"usage": "world", "name": "Ридинг"}, -{"usage": "world", "name": "Риди"}, -{"usage": "world", "name": "Ридлин"}, -{"usage": "world", "name": "Ридли"}, -{"usage": "world", "name": "Ридотт"}, -{"usage": "world", "name": "Рид"}, -{"usage": "world", "name": "Риензи"}, -{"usage": "world", "name": "Риет"}, -{"usage": "world", "name": "Ризель"}, -{"usage": "world", "name": "Риз"}, -{"usage": "world", "name": "Рикардо"}, -{"usage": "world", "name": "Рикардс"}, -{"usage": "world", "name": "Рика"}, -{"usage": "world", "name": "Рикеттс"}, -{"usage": "world", "name": "Рико"}, -{"usage": "world", "name": "Рикс"}, -{"usage": "world", "name": "Риланд"}, -{"usage": "world", "name": "Рилитос"}, -{"usage": "world", "name": "Риллито"}, -{"usage": "world", "name": "Риллтон"}, -{"usage": "world", "name": "Римерс"}, -{"usage": "world", "name": "Римини"}, -{"usage": "world", "name": "Римс"}, -{"usage": "world", "name": "Рим"}, -{"usage": "world", "name": "Ринард"}, -{"usage": "world", "name": "Рингер"}, -{"usage": "world", "name": "Ринглинг"}, -{"usage": "world", "name": "Рингл"}, -{"usage": "world", "name": "Ринголд"}, -{"usage": "world", "name": "Ринг"}, -{"usage": "world", "name": "Ринер"}, -{"usage": "world", "name": "Рини"}, -{"usage": "world", "name": "Ринконада"}, -{"usage": "world", "name": "Ринкон"}, -{"usage": "world", "name": "Риомедина"}, -{"usage": "world", "name": "Рион"}, -{"usage": "world", "name": "Рио"}, -{"usage": "world", "name": "Риплингер"}, -{"usage": "world", "name": "Рипли"}, -{"usage": "world", "name": "Рипон"}, -{"usage": "world", "name": "Риппи"}, -{"usage": "world", "name": "Риппл"}, -{"usage": "world", "name": "Риппон"}, -{"usage": "world", "name": "Рири"}, -{"usage": "world", "name": "Риско"}, -{"usage": "world", "name": "Риснор"}, -{"usage": "world", "name": "Рис"}, -{"usage": "world", "name": "Рита"}, -{"usage": "world", "name": "Рито"}, -{"usage": "world", "name": "Ритт"}, -{"usage": "world", "name": "Ритчи"}, -{"usage": "world", "name": "Рифл"}, -{"usage": "world", "name": "Ричард"}, -{"usage": "world", "name": "Ричи"}, -{"usage": "world", "name": "Ричланд"}, -{"usage": "world", "name": "Ричлон"}, -{"usage": "world", "name": "Ричмонд"}, -{"usage": "world", "name": "Ричтекс"}, -{"usage": "world", "name": "Ричтон"}, -{"usage": "world", "name": "Рич"}, -{"usage": "world", "name": "Ри"}, -{"usage": "world", "name": "Роад"}, -{"usage": "world", "name": "Роаминг"}, -{"usage": "world", "name": "Роанок"}, -{"usage": "world", "name": "Роан"}, -{"usage": "world", "name": "Роаринг"}, -{"usage": "world", "name": "Роач"}, -{"usage": "world", "name": "Робардс"}, -{"usage": "world", "name": "Роба"}, -{"usage": "world", "name": "Роббинс"}, -{"usage": "world", "name": "Роббс"}, -{"usage": "world", "name": "Роберта"}, -{"usage": "world", "name": "Роберт"}, -{"usage": "world", "name": "Робесония"}, -{"usage": "world", "name": "Робинетт"}, -{"usage": "world", "name": "Робинсон"}, -{"usage": "world", "name": "Робинс"}, -{"usage": "world", "name": "Робин"}, -{"usage": "world", "name": "Роби"}, -{"usage": "world", "name": "Роблинг"}, -{"usage": "world", "name": "Роблс"}, -{"usage": "world", "name": "Робс"}, -{"usage": "world", "name": "Робук"}, -{"usage": "world", "name": "Ровена"}, -{"usage": "world", "name": "Ровер"}, -{"usage": "world", "name": "Ровес"}, -{"usage": "world", "name": "Роган"}, -{"usage": "world", "name": "Рогген"}, -{"usage": "world", "name": "Рог"}, -{"usage": "world", "name": "Роданте"}, -{"usage": "world", "name": "Родарт"}, -{"usage": "world", "name": "Роделл"}, -{"usage": "world", "name": "Родео"}, -{"usage": "world", "name": "Родесса"}, -{"usage": "world", "name": "Родес"}, -{"usage": "world", "name": "Родет"}, -{"usage": "world", "name": "Роджер"}, -{"usage": "world", "name": "Родман"}, -{"usage": "world", "name": "Родни"}, -{"usage": "world", "name": "Розалия"}, -{"usage": "world", "name": "Розали"}, -{"usage": "world", "name": "Розамунда"}, -{"usage": "world", "name": "Розанки"}, -{"usage": "world", "name": "Розарио"}, -{"usage": "world", "name": "Розари"}, -{"usage": "world", "name": "Роза"}, -{"usage": "world", "name": "Розелл"}, -{"usage": "world", "name": "Розель"}, -{"usage": "world", "name": "Розенхайн"}, -{"usage": "world", "name": "Розен"}, -{"usage": "world", "name": "Розето"}, -{"usage": "world", "name": "Розетта"}, -{"usage": "world", "name": "Розет"}, -{"usage": "world", "name": "Розита"}, -{"usage": "world", "name": "Розл"}, -{"usage": "world", "name": "Розмари"}, -{"usage": "world", "name": "Розо"}, -{"usage": "world", "name": "Розьер"}, -{"usage": "world", "name": "Ройал"}, -{"usage": "world", "name": "Ройерс"}, -{"usage": "world", "name": "Ройс"}, -{"usage": "world", "name": "Рой"}, -{"usage": "world", "name": "Рока"}, -{"usage": "world", "name": "Рокделл"}, -{"usage": "world", "name": "Рокер"}, -{"usage": "world", "name": "Рокингем"}, -{"usage": "world", "name": "Роки"}, -{"usage": "world", "name": "Рокледж"}, -{"usage": "world", "name": "Роклей"}, -{"usage": "world", "name": "Роклин"}, -{"usage": "world", "name": "Рокмарт"}, -{"usage": "world", "name": "Роксана"}, -{"usage": "world", "name": "Рокси"}, -{"usage": "world", "name": "Роксобел"}, -{"usage": "world", "name": "Рокстон"}, -{"usage": "world", "name": "Рокс"}, -{"usage": "world", "name": "Рокуэй"}, -{"usage": "world", "name": "Рокуэлл"}, -{"usage": "world", "name": "Рокхем"}, -{"usage": "world", "name": "Рок"}, -{"usage": "world", "name": "Роланд"}, -{"usage": "world", "name": "Ролетт"}, -{"usage": "world", "name": "Ролинда"}, -{"usage": "world", "name": "Ролинс"}, -{"usage": "world", "name": "Роли"}, -{"usage": "world", "name": "Ролла"}, -{"usage": "world", "name": "Роллинг"}, -{"usage": "world", "name": "Роллинз"}, -{"usage": "world", "name": "Роллс"}, -{"usage": "world", "name": "Ролл"}, -{"usage": "world", "name": "Ролстон"}, -{"usage": "world", "name": "Рольф"}, -{"usage": "world", "name": "Рома"}, -{"usage": "world", "name": "Ромбауэр"}, -{"usage": "world", "name": "Ромейор"}, -{"usage": "world", "name": "Ромео"}, -{"usage": "world", "name": "Ромеро"}, -{"usage": "world", "name": "Ромни"}, -{"usage": "world", "name": "Ронан"}, -{"usage": "world", "name": "Рондаут"}, -{"usage": "world", "name": "Ронда"}, -{"usage": "world", "name": "Рондо"}, -{"usage": "world", "name": "Ронд"}, -{"usage": "world", "name": "Ронер"}, -{"usage": "world", "name": "Ронконкома"}, -{"usage": "world", "name": "Роннеби"}, -{"usage": "world", "name": "Ронсеверт"}, -{"usage": "world", "name": "Роскоммон"}, -{"usage": "world", "name": "Роско"}, -{"usage": "world", "name": "Рослин"}, -{"usage": "world", "name": "Росмэн"}, -{"usage": "world", "name": "Росон"}, -{"usage": "world", "name": "Россер"}, -{"usage": "world", "name": "Россетт"}, -{"usage": "world", "name": "Росситер"}, -{"usage": "world", "name": "Россия"}, -{"usage": "world", "name": "Росси"}, -{"usage": "world", "name": "Росс"}, -{"usage": "world", "name": "Рос"}, -{"usage": "world", "name": "Ротанг"}, -{"usage": "world", "name": "Ротань"}, -{"usage": "world", "name": "Ротонда"}, -{"usage": "world", "name": "Ротсэй"}, -{"usage": "world", "name": "Ротшильд"}, -{"usage": "world", "name": "Рот"}, -{"usage": "world", "name": "Роуден"}, -{"usage": "world", "name": "Роуен"}, -{"usage": "world", "name": "Роузер"}, -{"usage": "world", "name": "Роуз"}, -{"usage": "world", "name": "Роулетт"}, -{"usage": "world", "name": "Роули"}, -{"usage": "world", "name": "Роулс"}, -{"usage": "world", "name": "Роупер"}, -{"usage": "world", "name": "Роупс"}, -{"usage": "world", "name": "Роуссл"}, -{"usage": "world", "name": "Роу"}, -{"usage": "world", "name": "Рофф"}, -{"usage": "world", "name": "Роха"}, -{"usage": "world", "name": "Рохнерт"}, -{"usage": "world", "name": "Рохо"}, -{"usage": "world", "name": "Рочерт"}, -{"usage": "world", "name": "Рочестер"}, -{"usage": "world", "name": "Рошарон"}, -{"usage": "world", "name": "Рошель"}, -{"usage": "world", "name": "Роше"}, -{"usage": "world", "name": "Рошолт"}, -{"usage": "world", "name": "Рош"}, -{"usage": "world", "name": "Роэнн"}, -{"usage": "world", "name": "Роялти"}, -{"usage": "world", "name": "Ро"}, -{"usage": "world", "name": "Рубенс"}, -{"usage": "world", "name": "Рубин"}, -{"usage": "world", "name": "Рубио"}, -{"usage": "world", "name": "Рубония"}, -{"usage": "world", "name": "Руди"}, -{"usage": "world", "name": "Рудольф"}, -{"usage": "world", "name": "Руд"}, -{"usage": "world", "name": "Руж"}, -{"usage": "world", "name": "Рузвельт"}, -{"usage": "world", "name": "Руидоса"}, -{"usage": "world", "name": "Руидосо"}, -{"usage": "world", "name": "Руиз"}, -{"usage": "world", "name": "Рулетта"}, -{"usage": "world", "name": "Руло"}, -{"usage": "world", "name": "Рул"}, -{"usage": "world", "name": "Рума"}, -{"usage": "world", "name": "Руноэй"}, -{"usage": "world", "name": "Руперт"}, -{"usage": "world", "name": "Руп"}, -{"usage": "world", "name": "Рурал"}, -{"usage": "world", "name": "Русо"}, -{"usage": "world", "name": "Рус"}, -{"usage": "world", "name": "Рутвен"}, -{"usage": "world", "name": "Рутерс"}, -{"usage": "world", "name": "Рутер"}, -{"usage": "world", "name": "Рутледж"}, -{"usage": "world", "name": "Рут"}, -{"usage": "world", "name": "Руфус"}, -{"usage": "world", "name": "Руф"}, -{"usage": "world", "name": "Рух"}, -{"usage": "world", "name": "Рходхисс"}, -{"usage": "world", "name": "Рью"}, -{"usage": "world", "name": "Рэй"}, -{"usage": "world", "name": "Рэмси"}, -{"usage": "world", "name": "Рэнгли"}, -{"usage": "world", "name": "Рэндалл"}, -{"usage": "world", "name": "Рэндл"}, -{"usage": "world", "name": "Рюи"}, -{"usage": "world", "name": "Саамико"}, -{"usage": "world", "name": "Сабана"}, -{"usage": "world", "name": "Сабаттис"}, -{"usage": "world", "name": "Саба"}, -{"usage": "world", "name": "Сабета"}, -{"usage": "world", "name": "Сабиако"}, -{"usage": "world", "name": "Сабинал"}, -{"usage": "world", "name": "Сабина"}, -{"usage": "world", "name": "Сабиносо"}, -{"usage": "world", "name": "Сабин"}, -{"usage": "world", "name": "Саблетт"}, -{"usage": "world", "name": "Саблимити"}, -{"usage": "world", "name": "Сабула"}, -{"usage": "world", "name": "Савадж"}, -{"usage": "world", "name": "Саванна"}, -{"usage": "world", "name": "Савери"}, -{"usage": "world", "name": "Савой"}, -{"usage": "world", "name": "Савона"}, -{"usage": "world", "name": "Савунга"}, -{"usage": "world", "name": "Сагден"}, -{"usage": "world", "name": "Сагер"}, -{"usage": "world", "name": "Сагино"}, -{"usage": "world", "name": "Саг"}, -{"usage": "world", "name": "Садбери"}, -{"usage": "world", "name": "Садден"}, -{"usage": "world", "name": "Садли"}, -{"usage": "world", "name": "Садорус"}, -{"usage": "world", "name": "Саегер"}, -{"usage": "world", "name": "Саенз"}, -{"usage": "world", "name": "Саисан"}, -{"usage": "world", "name": "Сайделл"}, -{"usage": "world", "name": "Сайд"}, -{"usage": "world", "name": "Сайенс"}, -{"usage": "world", "name": "Сайкс"}, -{"usage": "world", "name": "Сайлас"}, -{"usage": "world", "name": "Сайлец"}, -{"usage": "world", "name": "Саймон"}, -{"usage": "world", "name": "Сайнареп"}, -{"usage": "world", "name": "Сайо"}, -{"usage": "world", "name": "Сайрус"}, -{"usage": "world", "name": "Сайт"}, -{"usage": "world", "name": "Сайчуат"}, -{"usage": "world", "name": "Сакатон"}, -{"usage": "world", "name": "Саквалена"}, -{"usage": "world", "name": "Саквамиш"}, -{"usage": "world", "name": "Сакетс"}, -{"usage": "world", "name": "Сако"}, -{"usage": "world", "name": "Сакраменто"}, -{"usage": "world", "name": "Сакред"}, -{"usage": "world", "name": "Саксесс"}, -{"usage": "world", "name": "Саксе"}, -{"usage": "world", "name": "Саксис"}, -{"usage": "world", "name": "Саксман"}, -{"usage": "world", "name": "Саксон"}, -{"usage": "world", "name": "Сакстон"}, -{"usage": "world", "name": "Сакс"}, -{"usage": "world", "name": "Сак"}, -{"usage": "world", "name": "Саладо"}, -{"usage": "world", "name": "Салайерс"}, -{"usage": "world", "name": "Салайер"}, -{"usage": "world", "name": "Саламанка"}, -{"usage": "world", "name": "Саламатоф"}, -{"usage": "world", "name": "Саламония"}, -{"usage": "world", "name": "Саланга"}, -{"usage": "world", "name": "Салво"}, -{"usage": "world", "name": "Салдуро"}, -{"usage": "world", "name": "Салем"}, -{"usage": "world", "name": "Салерно"}, -{"usage": "world", "name": "Салида"}, -{"usage": "world", "name": "Саликс"}, -{"usage": "world", "name": "Салинас"}, -{"usage": "world", "name": "Салина"}, -{"usage": "world", "name": "Салинено"}, -{"usage": "world", "name": "Салис"}, -{"usage": "world", "name": "Салитпа"}, -{"usage": "world", "name": "Салкум"}, -{"usage": "world", "name": "Салладас"}, -{"usage": "world", "name": "Салливан"}, -{"usage": "world", "name": "Саллигент"}, -{"usage": "world", "name": "Саллисо"}, -{"usage": "world", "name": "Саллис"}, -{"usage": "world", "name": "Салли"}, -{"usage": "world", "name": "Саллярдс"}, -{"usage": "world", "name": "Салмон"}, -{"usage": "world", "name": "Салол"}, -{"usage": "world", "name": "Саломея"}, -{"usage": "world", "name": "Салонга"}, -{"usage": "world", "name": "Салтана"}, -{"usage": "world", "name": "Салтейр"}, -{"usage": "world", "name": "Салтес"}, -{"usage": "world", "name": "Салуда"}, -{"usage": "world", "name": "Салфер"}, -{"usage": "world", "name": "Сальтильо"}, -{"usage": "world", "name": "Саль"}, -{"usage": "world", "name": "Салюс"}, -{"usage": "world", "name": "Саманта"}, -{"usage": "world", "name": "Самария"}, -{"usage": "world", "name": "Самитон"}, -{"usage": "world", "name": "Самиш"}, -{"usage": "world", "name": "Саммамиш"}, -{"usage": "world", "name": "Саммерсет"}, -{"usage": "world", "name": "Саммер"}, -{"usage": "world", "name": "Саммит"}, -{"usage": "world", "name": "Саммум"}, -{"usage": "world", "name": "Самнер"}, -{"usage": "world", "name": "Самнор"}, -{"usage": "world", "name": "Самоа"}, -{"usage": "world", "name": "Самосет"}, -{"usage": "world", "name": "Самптер"}, -{"usage": "world", "name": "Самралл"}, -{"usage": "world", "name": "Самсон"}, -{"usage": "world", "name": "Самсула"}, -{"usage": "world", "name": "Самтер"}, -{"usage": "world", "name": "Санак"}, -{"usage": "world", "name": "Санатога"}, -{"usage": "world", "name": "Санаториум"}, -{"usage": "world", "name": "Санбери"}, -{"usage": "world", "name": "Санбим"}, -{"usage": "world", "name": "Санборн"}, -{"usage": "world", "name": "Сандаски"}, -{"usage": "world", "name": "Сандерс"}, -{"usage": "world", "name": "Сандер"}, -{"usage": "world", "name": "Сандия"}, -{"usage": "world", "name": "Сандовал"}, -{"usage": "world", "name": "Сандоу"}, -{"usage": "world", "name": "Сандэнс"}, -{"usage": "world", "name": "Санд"}, -{"usage": "world", "name": "Санибель"}, -{"usage": "world", "name": "Санилак"}, -{"usage": "world", "name": "Санкер"}, -{"usage": "world", "name": "Санкост"}, -{"usage": "world", "name": "Санкчури"}, -{"usage": "world", "name": "Санленд"}, -{"usage": "world", "name": "Санни"}, -{"usage": "world", "name": "Саности"}, -{"usage": "world", "name": "Санрайз"}, -{"usage": "world", "name": "Санрей"}, -{"usage": "world", "name": "Сансет"}, -{"usage": "world", "name": "Сансом"}, -{"usage": "world", "name": "Сантакин"}, -{"usage": "world", "name": "Сантан"}, -{"usage": "world", "name": "Санта"}, -{"usage": "world", "name": "Сантитла"}, -{"usage": "world", "name": "Санти"}, -{"usage": "world", "name": "Санто"}, -{"usage": "world", "name": "Сантрана"}, -{"usage": "world", "name": "Сантьяго"}, -{"usage": "world", "name": "Санчез"}, -{"usage": "world", "name": "Саншайн"}, -{"usage": "world", "name": "Сан"}, -{"usage": "world", "name": "Сапелло"}, -{"usage": "world", "name": "Сапело"}, -{"usage": "world", "name": "Саплай"}, -{"usage": "world", "name": "Саппинг"}, -{"usage": "world", "name": "Сапрем"}, -{"usage": "world", "name": "Сапулпа"}, -{"usage": "world", "name": "Сапфо"}, -{"usage": "world", "name": "Сарагоса"}, -{"usage": "world", "name": "Саранак"}, -{"usage": "world", "name": "Саранап"}, -{"usage": "world", "name": "Сарасота"}, -{"usage": "world", "name": "Сарас"}, -{"usage": "world", "name": "Саратога"}, -{"usage": "world", "name": "Сарбен"}, -{"usage": "world", "name": "Сарвер"}, -{"usage": "world", "name": "Сарджент"}, -{"usage": "world", "name": "Сардиния"}, -{"usage": "world", "name": "Сардис"}, -{"usage": "world", "name": "Сарепта"}, -{"usage": "world", "name": "Саркокси"}, -{"usage": "world", "name": "Сарко"}, -{"usage": "world", "name": "Сарлс"}, -{"usage": "world", "name": "Сарона"}, -{"usage": "world", "name": "Сарт"}, -{"usage": "world", "name": "Сасаква"}, -{"usage": "world", "name": "Сасанк"}, -{"usage": "world", "name": "Саскуэханны"}, -{"usage": "world", "name": "Сассекс"}, -{"usage": "world", "name": "Сассер"}, -{"usage": "world", "name": "Сатанта"}, -{"usage": "world", "name": "Сатартия"}, -{"usage": "world", "name": "Сателлит"}, -{"usage": "world", "name": "Сатерс"}, -{"usage": "world", "name": "Сатикой"}, -{"usage": "world", "name": "Сатин"}, -{"usage": "world", "name": "Сатола"}, -{"usage": "world", "name": "Саттер"}, -{"usage": "world", "name": "Саттл"}, -{"usage": "world", "name": "Саттон"}, -{"usage": "world", "name": "Сатурн"}, -{"usage": "world", "name": "Сатус"}, -{"usage": "world", "name": "Сауарита"}, -{"usage": "world", "name": "Саугус"}, -{"usage": "world", "name": "Саудер"}, -{"usage": "world", "name": "Саум"}, -{"usage": "world", "name": "Саунд"}, -{"usage": "world", "name": "Саутамп"}, -{"usage": "world", "name": "Саутам"}, -{"usage": "world", "name": "Саутерн"}, -{"usage": "world", "name": "Саутинг"}, -{"usage": "world", "name": "Саутленд"}, -{"usage": "world", "name": "Саут"}, -{"usage": "world", "name": "Сафферн"}, -{"usage": "world", "name": "Саффорд"}, -{"usage": "world", "name": "Саф"}, -{"usage": "world", "name": "Сахали"}, -{"usage": "world", "name": "Сацума"}, -{"usage": "world", "name": "Сачз"}, -{"usage": "world", "name": "Свенсон"}, -{"usage": "world", "name": "Сверинген"}, -{"usage": "world", "name": "Свея"}, -{"usage": "world", "name": "Свифтон"}, -{"usage": "world", "name": "Свиц"}, -{"usage": "world", "name": "Свепсон"}, -{"usage": "world", "name": "Свинк"}, -{"usage": "world", "name": "Свиномиш"}, -{"usage": "world", "name": "Свисс"}, -{"usage": "world", "name": "Свитч"}, -{"usage": "world", "name": "Свифт"}, -{"usage": "world", "name": "Свойерс"}, -{"usage": "world", "name": "Свордс"}, -{"usage": "world", "name": "Сворм"}, -{"usage": "world", "name": "Себастьян"}, -{"usage": "world", "name": "Себека"}, -{"usage": "world", "name": "Себоис"}, -{"usage": "world", "name": "Себойета"}, -{"usage": "world", "name": "Себолла"}, -{"usage": "world", "name": "Себрелл"}, -{"usage": "world", "name": "Себринг"}, -{"usage": "world", "name": "Себри"}, -{"usage": "world", "name": "Себуэйнг"}, -{"usage": "world", "name": "Севал"}, -{"usage": "world", "name": "Севастополь"}, -{"usage": "world", "name": "Севен"}, -{"usage": "world", "name": "Северанс"}, -{"usage": "world", "name": "Севери"}, -{"usage": "world", "name": "Северна"}, -{"usage": "world", "name": "Северн"}, -{"usage": "world", "name": "Севьер"}, -{"usage": "world", "name": "Севани"}, -{"usage": "world", "name": "Сеген"}, -{"usage": "world", "name": "Сегно"}, -{"usage": "world", "name": "Сего"}, -{"usage": "world", "name": "Сегундо"}, -{"usage": "world", "name": "Седалия"}, -{"usage": "world", "name": "Седан"}, -{"usage": "world", "name": "Седар"}, -{"usage": "world", "name": "Седжвик"}, -{"usage": "world", "name": "Седж"}, -{"usage": "world", "name": "Седко"}, -{"usage": "world", "name": "Седло"}, -{"usage": "world", "name": "Седона"}, -{"usage": "world", "name": "Седония"}, -{"usage": "world", "name": "Сезон"}, -{"usage": "world", "name": "Сейба"}, -{"usage": "world", "name": "Сейберт"}, -{"usage": "world", "name": "Сейдж"}, -{"usage": "world", "name": "Сейлайн"}, -{"usage": "world", "name": "Сейлинг"}, -{"usage": "world", "name": "Сейлор"}, -{"usage": "world", "name": "Сейл"}, -{"usage": "world", "name": "Сеймур"}, -{"usage": "world", "name": "Сейнер"}, -{"usage": "world", "name": "Сейр"}, -{"usage": "world", "name": "Сейфети"}, -{"usage": "world", "name": "Сека"}, -{"usage": "world", "name": "Секокус"}, -{"usage": "world", "name": "Секонд"}, -{"usage": "world", "name": "Секор"}, -{"usage": "world", "name": "Секо"}, -{"usage": "world", "name": "Секретарь"}, -{"usage": "world", "name": "Секстон"}, -{"usage": "world", "name": "Секуим"}, -{"usage": "world", "name": "Секция"}, -{"usage": "world", "name": "Селада"}, -{"usage": "world", "name": "Села"}, -{"usage": "world", "name": "Селби"}, -{"usage": "world", "name": "Селвин"}, -{"usage": "world", "name": "Селден"}, -{"usage": "world", "name": "Селдовия"}, -{"usage": "world", "name": "Селеста"}, -{"usage": "world", "name": "Селестина"}, -{"usage": "world", "name": "Селигман"}, -{"usage": "world", "name": "Селина"}, -{"usage": "world", "name": "Селинс"}, -{"usage": "world", "name": "Селлек"}, -{"usage": "world", "name": "Селлерс"}, -{"usage": "world", "name": "Селман"}, -{"usage": "world", "name": "Селмер"}, -{"usage": "world", "name": "Селмонт"}, -{"usage": "world", "name": "Селоик"}, -{"usage": "world", "name": "Селорон"}, -{"usage": "world", "name": "Село"}, -{"usage": "world", "name": "Селфридж"}, -{"usage": "world", "name": "Сельма"}, -{"usage": "world", "name": "Семинария"}, -{"usage": "world", "name": "Семинол"}, -{"usage": "world", "name": "Семино"}, -{"usage": "world", "name": "Семмес"}, -{"usage": "world", "name": "Сенатобия"}, -{"usage": "world", "name": "Сенат"}, -{"usage": "world", "name": "Сенека"}, -{"usage": "world", "name": "Сенизо"}, -{"usage": "world", "name": "Сени"}, -{"usage": "world", "name": "Сеноя"}, -{"usage": "world", "name": "Сентенниал"}, -{"usage": "world", "name": "Сентинель"}, -{"usage": "world", "name": "Сент"}, -{"usage": "world", "name": "Сепар"}, -{"usage": "world", "name": "Сербия"}, -{"usage": "world", "name": "Серд"}, -{"usage": "world", "name": "Середо"}, -{"usage": "world", "name": "Серенада"}, -{"usage": "world", "name": "Серена"}, -{"usage": "world", "name": "Серено"}, -{"usage": "world", "name": "Серес"}, -{"usage": "world", "name": "Сержант"}, -{"usage": "world", "name": "Серинг"}, -{"usage": "world", "name": "Серкл"}, -{"usage": "world", "name": "Серранос"}, -{"usage": "world", "name": "Серренси"}, -{"usage": "world", "name": "Серрильос"}, -{"usage": "world", "name": "Серри"}, -{"usage": "world", "name": "Серро"}, -{"usage": "world", "name": "Серулин"}, -{"usage": "world", "name": "Серф"}, -{"usage": "world", "name": "Серч"}, -{"usage": "world", "name": "Сесилия"}, -{"usage": "world", "name": "Сесил"}, -{"usage": "world", "name": "Сесп"}, -{"usage": "world", "name": "Сессер"}, -{"usage": "world", "name": "Сестос"}, -{"usage": "world", "name": "Сетокет"}, -{"usage": "world", "name": "Сеттлмент"}, -{"usage": "world", "name": "Сет"}, -{"usage": "world", "name": "Сеуикли"}, -{"usage": "world", "name": "Сеффнер"}, -{"usage": "world", "name": "Се"}, -{"usage": "world", "name": "Сиам"}, -{"usage": "world", "name": "Сиасконсет"}, -{"usage": "world", "name": "Сибекью"}, -{"usage": "world", "name": "Сибил"}, -{"usage": "world", "name": "Сибли"}, -{"usage": "world", "name": "Сибола"}, -{"usage": "world", "name": "Сиболо"}, -{"usage": "world", "name": "Сигел"}, -{"usage": "world", "name": "Сигнал"}, -{"usage": "world", "name": "Сигнет"}, -{"usage": "world", "name": "Сигн"}, -{"usage": "world", "name": "Сиго"}, -{"usage": "world", "name": "Сигсби"}, -{"usage": "world", "name": "Сигурд"}, -{"usage": "world", "name": "Сигурни"}, -{"usage": "world", "name": "Сидман"}, -{"usage": "world", "name": "Сидней"}, -{"usage": "world", "name": "Сидно"}, -{"usage": "world", "name": "Сидон"}, -{"usage": "world", "name": "Сидра"}, -{"usage": "world", "name": "Сиерра"}, -{"usage": "world", "name": "Сиеста"}, -{"usage": "world", "name": "Сикамор"}, -{"usage": "world", "name": "Сикард"}, -{"usage": "world", "name": "Сиклера"}, -{"usage": "world", "name": "Сиконк"}, -{"usage": "world", "name": "Сиксес"}, -{"usage": "world", "name": "Сикстин"}, -{"usage": "world", "name": "Сикс"}, -{"usage": "world", "name": "Силакога"}, -{"usage": "world", "name": "Силверадо"}, -{"usage": "world", "name": "Силвис"}, -{"usage": "world", "name": "Силезия"}, -{"usage": "world", "name": "Силер"}, -{"usage": "world", "name": "Силика"}, -{"usage": "world", "name": "Силио"}, -{"usage": "world", "name": "Сили"}, -{"usage": "world", "name": "Силко"}, -{"usage": "world", "name": "Силк"}, -{"usage": "world", "name": "Силоам"}, -{"usage": "world", "name": "Сило"}, -{"usage": "world", "name": "Силсби"}, -{"usage": "world", "name": "Силткуз"}, -{"usage": "world", "name": "Силт"}, -{"usage": "world", "name": "Сильвания"}, -{"usage": "world", "name": "Сильван"}, -{"usage": "world", "name": "Сильварена"}, -{"usage": "world", "name": "Сильва"}, -{"usage": "world", "name": "Сильвер"}, -{"usage": "world", "name": "Сильвестр"}, -{"usage": "world", "name": "Сильвия"}, -{"usage": "world", "name": "Сил"}, -{"usage": "world", "name": "Симаррон"}, -{"usage": "world", "name": "Сима"}, -{"usage": "world", "name": "Симеон"}, -{"usage": "world", "name": "Симертон"}, -{"usage": "world", "name": "Симилк"}, -{"usage": "world", "name": "Симко"}, -{"usage": "world", "name": "Симла"}, -{"usage": "world", "name": "Симмес"}, -{"usage": "world", "name": "Симмонс"}, -{"usage": "world", "name": "Симмс"}, -{"usage": "world", "name": "Симнашо"}, -{"usage": "world", "name": "Симпсон"}, -{"usage": "world", "name": "Симсония"}, -{"usage": "world", "name": "Симс"}, -{"usage": "world", "name": "Синай"}, -{"usage": "world", "name": "Синбар"}, -{"usage": "world", "name": "Синвайд"}, -{"usage": "world", "name": "Сингл"}, -{"usage": "world", "name": "Синкинг"}, -{"usage": "world", "name": "Синклер"}, -{"usage": "world", "name": "Синко"}, -{"usage": "world", "name": "Синк"}, -{"usage": "world", "name": "Синтиана"}, -{"usage": "world", "name": "Синтон"}, -{"usage": "world", "name": "Сионс"}, -{"usage": "world", "name": "Сион"}, -{"usage": "world", "name": "Сипер"}, -{"usage": "world", "name": "Сиппи"}, -{"usage": "world", "name": "Сипси"}, -{"usage": "world", "name": "Сиракузы"}, -{"usage": "world", "name": "Сирил"}, -{"usage": "world", "name": "Сиринг"}, -{"usage": "world", "name": "Сирия"}, -{"usage": "world", "name": "Сирлс"}, -{"usage": "world", "name": "Сирманс"}, -{"usage": "world", "name": "Сирси"}, -{"usage": "world", "name": "Сирс"}, -{"usage": "world", "name": "Сисеро"}, -{"usage": "world", "name": "Сиския"}, -{"usage": "world", "name": "Сиско"}, -{"usage": "world", "name": "Сисн"}, -{"usage": "world", "name": "Сиссетон"}, -{"usage": "world", "name": "Сиссна"}, -{"usage": "world", "name": "Сиссон"}, -{"usage": "world", "name": "Систер"}, -{"usage": "world", "name": "Сити"}, -{"usage": "world", "name": "Ситка"}, -{"usage": "world", "name": "Ситон"}, -{"usage": "world", "name": "Ситра"}, -{"usage": "world", "name": "Сит"}, -{"usage": "world", "name": "Сиу"}, -{"usage": "world", "name": "Сицилия"}, -{"usage": "world", "name": "Сиэтл"}, -{"usage": "world", "name": "Си"}, -{"usage": "world", "name": "Скаггс"}, -{"usage": "world", "name": "Скагуэй"}, -{"usage": "world", "name": "Скайатук"}, -{"usage": "world", "name": "Скайлайн"}, -{"usage": "world", "name": "Скай"}, -{"usage": "world", "name": "Скали"}, -{"usage": "world", "name": "Скаллорн"}, -{"usage": "world", "name": "Скалл"}, -{"usage": "world", "name": "Скальп"}, -{"usage": "world", "name": "Скаммон"}, -{"usage": "world", "name": "Скамокава"}, -{"usage": "world", "name": "Скандинавия"}, -{"usage": "world", "name": "Скандия"}, -{"usage": "world", "name": "Сканителс"}, -{"usage": "world", "name": "Скаппуз"}, -{"usage": "world", "name": "Скарбро"}, -{"usage": "world", "name": "Скарлетс"}, -{"usage": "world", "name": "Скарс"}, -{"usage": "world", "name": "Скар"}, -{"usage": "world", "name": "Сквайр"}, -{"usage": "world", "name": "Скванкум"}, -{"usage": "world", "name": "Сквер"}, -{"usage": "world", "name": "Скво"}, -{"usage": "world", "name": "Скеди"}, -{"usage": "world", "name": "Скелли"}, -{"usage": "world", "name": "Скенектади"}, -{"usage": "world", "name": "Скен"}, -{"usage": "world", "name": "Скерри"}, -{"usage": "world", "name": "Скилл"}, -{"usage": "world", "name": "Ским"}, -{"usage": "world", "name": "Скинчен"}, -{"usage": "world", "name": "Скип"}, -{"usage": "world", "name": "Скоби"}, -{"usage": "world", "name": "Скоки"}, -{"usage": "world", "name": "Скокомиш"}, -{"usage": "world", "name": "Скотия"}, -{"usage": "world", "name": "Скотланд"}, -{"usage": "world", "name": "Скотс"}, -{"usage": "world", "name": "Скотт"}, -{"usage": "world", "name": "Скотч"}, -{"usage": "world", "name": "Скоухеган"}, -{"usage": "world", "name": "Скофилд"}, -{"usage": "world", "name": "Скран"}, -{"usage": "world", "name": "Скревен"}, -{"usage": "world", "name": "Скрибнер"}, -{"usage": "world", "name": "Скуба"}, -{"usage": "world", "name": "Скулкрафт"}, -{"usage": "world", "name": "Скуэнтна"}, -{"usage": "world", "name": "Скхари"}, -{"usage": "world", "name": "Скэйлс"}, -{"usage": "world", "name": "Скэнлон"}, -{"usage": "world", "name": "Слагл"}, -{"usage": "world", "name": "Слайго"}, -{"usage": "world", "name": "Слайделл"}, -{"usage": "world", "name": "Слайд"}, -{"usage": "world", "name": "Слак"}, -{"usage": "world", "name": "Слана"}, -{"usage": "world", "name": "Следж"}, -{"usage": "world", "name": "Слейден"}, -{"usage": "world", "name": "Слейд"}, -{"usage": "world", "name": "Слейнс"}, -{"usage": "world", "name": "Слейтер"}, -{"usage": "world", "name": "Слейтинг"}, -{"usage": "world", "name": "Слейти"}, -{"usage": "world", "name": "Слейтон"}, -{"usage": "world", "name": "Слейт"}, -{"usage": "world", "name": "Слемп"}, -{"usage": "world", "name": "Слик"}, -{"usage": "world", "name": "Слингер"}, -{"usage": "world", "name": "Слипер"}, -{"usage": "world", "name": "Слипи"}, -{"usage": "world", "name": "Слиппери"}, -{"usage": "world", "name": "Слип"}, -{"usage": "world", "name": "Слитмьют"}, -{"usage": "world", "name": "Слоатс"}, -{"usage": "world", "name": "Слован"}, -{"usage": "world", "name": "Слокомб"}, -{"usage": "world", "name": "Слокум"}, -{"usage": "world", "name": "Слон"}, -{"usage": "world", "name": "Слотер"}, -{"usage": "world", "name": "Слот"}, -{"usage": "world", "name": "Слоуп"}, -{"usage": "world", "name": "Смайли"}, -{"usage": "world", "name": "Смаковер"}, -{"usage": "world", "name": "Смарр"}, -{"usage": "world", "name": "Смарт"}, -{"usage": "world", "name": "Смейл"}, -{"usage": "world", "name": "Смелтер"}, -{"usage": "world", "name": "Сметпорт"}, -{"usage": "world", "name": "Смет"}, -{"usage": "world", "name": "Смикс"}, -{"usage": "world", "name": "Смирна"}, -{"usage": "world", "name": "Смитвик"}, -{"usage": "world", "name": "Смитерс"}, -{"usage": "world", "name": "Смит"}, -{"usage": "world", "name": "Смоки"}, -{"usage": "world", "name": "Смокс"}, -{"usage": "world", "name": "Смолан"}, -{"usage": "world", "name": "Смолли"}, -{"usage": "world", "name": "Смоук"}, -{"usage": "world", "name": "Снайдер"}, -{"usage": "world", "name": "Снап"}, -{"usage": "world", "name": "Снейк"}, -{"usage": "world", "name": "Снеллинг"}, -{"usage": "world", "name": "Снелл"}, -{"usage": "world", "name": "Снид"}, -{"usage": "world", "name": "Сни"}, -{"usage": "world", "name": "Сновер"}, -{"usage": "world", "name": "Сноуболл"}, -{"usage": "world", "name": "Сноу"}, -{"usage": "world", "name": "Снохомиш"}, -{"usage": "world", "name": "Снук"}, -{"usage": "world", "name": "Собески"}, -{"usage": "world", "name": "Соболь"}, -{"usage": "world", "name": "Собрант"}, -{"usage": "world", "name": "Согатак"}, -{"usage": "world", "name": "Согертис"}, -{"usage": "world", "name": "Согет"}, -{"usage": "world", "name": "Сограсс"}, -{"usage": "world", "name": "Сода"}, -{"usage": "world", "name": "Содер"}, -{"usage": "world", "name": "Содус"}, -{"usage": "world", "name": "Сойер"}, -{"usage": "world", "name": "Сойл"}, -{"usage": "world", "name": "Сокасти"}, -{"usage": "world", "name": "Соквель"}, -{"usage": "world", "name": "Соквойт"}, -{"usage": "world", "name": "Сокорро"}, -{"usage": "world", "name": "Сок"}, -{"usage": "world", "name": "Солана"}, -{"usage": "world", "name": "Солванг"}, -{"usage": "world", "name": "Солвей"}, -{"usage": "world", "name": "Солдат"}, -{"usage": "world", "name": "Солдотна"}, -{"usage": "world", "name": "Соледад"}, -{"usage": "world", "name": "Солен"}, -{"usage": "world", "name": "Соломон"}, -{"usage": "world", "name": "Солон"}, -{"usage": "world", "name": "Солромар"}, -{"usage": "world", "name": "Солс"}, -{"usage": "world", "name": "Солтейр"}, -{"usage": "world", "name": "Солтер"}, -{"usage": "world", "name": "Солт"}, -{"usage": "world", "name": "Солуэй"}, -{"usage": "world", "name": "Сомер"}, -{"usage": "world", "name": "Сомилл"}, -{"usage": "world", "name": "Сомис"}, -{"usage": "world", "name": "Сомонок"}, -{"usage": "world", "name": "Сомс"}, -{"usage": "world", "name": "Сона"}, -{"usage": "world", "name": "Сондерс"}, -{"usage": "world", "name": "Сонд"}, -{"usage": "world", "name": "Сонемин"}, -{"usage": "world", "name": "Соннетт"}, -{"usage": "world", "name": "Сонойта"}, -{"usage": "world", "name": "Сонома"}, -{"usage": "world", "name": "Сонора"}, -{"usage": "world", "name": "Сон"}, -{"usage": "world", "name": "Сопер"}, -{"usage": "world", "name": "Сопит"}, -{"usage": "world", "name": "Соприс"}, -{"usage": "world", "name": "Сопчоппи"}, -{"usage": "world", "name": "Соренто"}, -{"usage": "world", "name": "Соррел"}, -{"usage": "world", "name": "Сорренто"}, -{"usage": "world", "name": "Сорум"}, -{"usage": "world", "name": "Сосо"}, -{"usage": "world", "name": "Сосье"}, -{"usage": "world", "name": "Сото"}, -{"usage": "world", "name": "Соулсби"}, -{"usage": "world", "name": "Соуп"}, -{"usage": "world", "name": "Соур"}, -{"usage": "world", "name": "Соуси"}, -{"usage": "world", "name": "София"}, -{"usage": "world", "name": "Социаль"}, -{"usage": "world", "name": "Социум"}, -{"usage": "world", "name": "Со"}, -{"usage": "world", "name": "Спавино"}, -{"usage": "world", "name": "Спайви"}, -{"usage": "world", "name": "Спайр"}, -{"usage": "world", "name": "Спайсер"}, -{"usage": "world", "name": "Спайс"}, -{"usage": "world", "name": "Спакен"}, -{"usage": "world", "name": "Спанауэй"}, -{"usage": "world", "name": "Спангл"}, -{"usage": "world", "name": "Спаниш"}, -{"usage": "world", "name": "Спаргерс"}, -{"usage": "world", "name": "Спаркс"}, -{"usage": "world", "name": "Спарлинг"}, -{"usage": "world", "name": "Спарр"}, -{"usage": "world", "name": "Спартан"}, -{"usage": "world", "name": "Спарта"}, -{"usage": "world", "name": "Спар"}, -{"usage": "world", "name": "Спа"}, -{"usage": "world", "name": "Спейд"}, -{"usage": "world", "name": "Спейс"}, -{"usage": "world", "name": "Спейт"}, -{"usage": "world", "name": "Спекулянт"}, -{"usage": "world", "name": "Спенард"}, -{"usage": "world", "name": "Спенглер"}, -{"usage": "world", "name": "Спенсер"}, -{"usage": "world", "name": "Спеонк"}, -{"usage": "world", "name": "Сперджен"}, -{"usage": "world", "name": "Сперри"}, -{"usage": "world", "name": "Спид"}, -{"usage": "world", "name": "Спиллер"}, -{"usage": "world", "name": "Спилл"}, -{"usage": "world", "name": "Спинк"}, -{"usage": "world", "name": "Спин"}, -{"usage": "world", "name": "Спирит"}, -{"usage": "world", "name": "Спирман"}, -{"usage": "world", "name": "Спиро"}, -{"usage": "world", "name": "Спирфиш"}, -{"usage": "world", "name": "Спир"}, -{"usage": "world", "name": "Сплендора"}, -{"usage": "world", "name": "Спокан"}, -{"usage": "world", "name": "Сполдинг"}, -{"usage": "world", "name": "Спортсмен"}, -{"usage": "world", "name": "Спотсильвания"}, -{"usage": "world", "name": "Спотс"}, -{"usage": "world", "name": "Споттед"}, -{"usage": "world", "name": "Споф"}, -{"usage": "world", "name": "Спрай"}, -{"usage": "world", "name": "Спраут"}, -{"usage": "world", "name": "Спра"}, -{"usage": "world", "name": "Спред"}, -{"usage": "world", "name": "Спрингер"}, -{"usage": "world", "name": "Спрингли"}, -{"usage": "world", "name": "Спринг"}, -{"usage": "world", "name": "Спротт"}, -{"usage": "world", "name": "Спрус"}, -{"usage": "world", "name": "Спрэг"}, -{"usage": "world", "name": "Спрэй"}, -{"usage": "world", "name": "Спунер"}, -{"usage": "world", "name": "Спур"}, -{"usage": "world", "name": "Стадли"}, -{"usage": "world", "name": "Стайлз"}, -{"usage": "world", "name": "Стайнауэр"}, -{"usage": "world", "name": "Стайр"}, -{"usage": "world", "name": "Стайтс"}, -{"usage": "world", "name": "Стаки"}, -{"usage": "world", "name": "Сталварт"}, -{"usage": "world", "name": "Сталлингс"}, -{"usage": "world", "name": "Сталло"}, -{"usage": "world", "name": "Сталл"}, -{"usage": "world", "name": "Сталь"}, -{"usage": "world", "name": "Стампинг"}, -{"usage": "world", "name": "Стампи"}, -{"usage": "world", "name": "Стампли"}, -{"usage": "world", "name": "Стампс"}, -{"usage": "world", "name": "Стам"}, -{"usage": "world", "name": "Станард"}, -{"usage": "world", "name": "Стандарт"}, -{"usage": "world", "name": "Стандинг"}, -{"usage": "world", "name": "Станд"}, -{"usage": "world", "name": "Станс"}, -{"usage": "world", "name": "Станция"}, -{"usage": "world", "name": "Старбак"}, -{"usage": "world", "name": "Старки"}, -{"usage": "world", "name": "Старк"}, -{"usage": "world", "name": "Старракка"}, -{"usage": "world", "name": "Старр"}, -{"usage": "world", "name": "Стартекс"}, -{"usage": "world", "name": "Старт"}, -{"usage": "world", "name": "Стар"}, -{"usage": "world", "name": "Статен"}, -{"usage": "world", "name": "Стаут"}, -{"usage": "world", "name": "Стаф"}, -{"usage": "world", "name": "Стеббинс"}, -{"usage": "world", "name": "Стедман"}, -{"usage": "world", "name": "Стед"}, -{"usage": "world", "name": "Стейджкоч"}, -{"usage": "world", "name": "Стейлакум"}, -{"usage": "world", "name": "Стейнхатчи"}, -{"usage": "world", "name": "Стейпл"}, -{"usage": "world", "name": "Стейси"}, -{"usage": "world", "name": "Стейтс"}, -{"usage": "world", "name": "Стейт"}, -{"usage": "world", "name": "Стекер"}, -{"usage": "world", "name": "Стелла"}, -{"usage": "world", "name": "Стем"}, -{"usage": "world", "name": "Стена"}, -{"usage": "world", "name": "Стеннет"}, -{"usage": "world", "name": "Степрок"}, -{"usage": "world", "name": "Степто"}, -{"usage": "world", "name": "Степ"}, -{"usage": "world", "name": "Стерджен"}, -{"usage": "world", "name": "Стерджис"}, -{"usage": "world", "name": "Стерки"}, -{"usage": "world", "name": "Стерлинг"}, -{"usage": "world", "name": "Стерли"}, -{"usage": "world", "name": "Стерретт"}, -{"usage": "world", "name": "Стертевант"}, -{"usage": "world", "name": "Стетсон"}, -{"usage": "world", "name": "Стефан"}, -{"usage": "world", "name": "Стивен"}, -{"usage": "world", "name": "Стиглер"}, -{"usage": "world", "name": "Стидхэм"}, -{"usage": "world", "name": "Стикни"}, -{"usage": "world", "name": "Стилл"}, -{"usage": "world", "name": "Стил"}, -{"usage": "world", "name": "Стимсон"}, -{"usage": "world", "name": "Стим"}, -{"usage": "world", "name": "Стиннетт"}, -{"usage": "world", "name": "Стин"}, -{"usage": "world", "name": "Стипп"}, -{"usage": "world", "name": "Стирлинг"}, -{"usage": "world", "name": "Стирнс"}, -{"usage": "world", "name": "Стиррат"}, -{"usage": "world", "name": "Ститцер"}, -{"usage": "world", "name": "Стобо"}, -{"usage": "world", "name": "Стовалл"}, -{"usage": "world", "name": "Стовер"}, -{"usage": "world", "name": "Стоддард"}, -{"usage": "world", "name": "Стойс"}, -{"usage": "world", "name": "Стой"}, -{"usage": "world", "name": "Стокгольм"}, -{"usage": "world", "name": "Стокер"}, -{"usage": "world", "name": "Стокетт"}, -{"usage": "world", "name": "Стокман"}, -{"usage": "world", "name": "Стокуэлл"}, -{"usage": "world", "name": "Стокхэм"}, -{"usage": "world", "name": "Сток"}, -{"usage": "world", "name": "Стонега"}, -{"usage": "world", "name": "Стонтон"}, -{"usage": "world", "name": "Сторден"}, -{"usage": "world", "name": "Стори"}, -{"usage": "world", "name": "Сторла"}, -{"usage": "world", "name": "Сторм"}, -{"usage": "world", "name": "Сторрс"}, -{"usage": "world", "name": "Стор"}, -{"usage": "world", "name": "Стоттс"}, -{"usage": "world", "name": "Стоукс"}, -{"usage": "world", "name": "Стоунер"}, -{"usage": "world", "name": "Стоунинг"}, -{"usage": "world", "name": "Стоуни"}, -{"usage": "world", "name": "Стоунхем"}, -{"usage": "world", "name": "Стоун"}, -{"usage": "world", "name": "Стоутон"}, -{"usage": "world", "name": "Стоутс"}, -{"usage": "world", "name": "Стоуэлл"}, -{"usage": "world", "name": "Стоу"}, -{"usage": "world", "name": "Страас"}, -{"usage": "world", "name": "Страбан"}, -{"usage": "world", "name": "Страйкер"}, -{"usage": "world", "name": "Страйк"}, -{"usage": "world", "name": "Страм"}, -{"usage": "world", "name": "Странделл"}, -{"usage": "world", "name": "Страндж"}, -{"usage": "world", "name": "Странд"}, -{"usage": "world", "name": "Страс"}, -{"usage": "world", "name": "Страт"}, -{"usage": "world", "name": "Страудс"}, -{"usage": "world", "name": "Страуд"}, -{"usage": "world", "name": "Стревелл"}, -{"usage": "world", "name": "Стрейтс"}, -{"usage": "world", "name": "Стрим"}, -{"usage": "world", "name": "Стрингер"}, -{"usage": "world", "name": "Стринг"}, -{"usage": "world", "name": "Стритер"}, -{"usage": "world", "name": "Стритман"}, -{"usage": "world", "name": "Стритор"}, -{"usage": "world", "name": "Стрит"}, -{"usage": "world", "name": "Стромс"}, -{"usage": "world", "name": "Стронак"}, -{"usage": "world", "name": "Стронг"}, -{"usage": "world", "name": "Строн"}, -{"usage": "world", "name": "Стро"}, -{"usage": "world", "name": "Струбл"}, -{"usage": "world", "name": "Струтерс"}, -{"usage": "world", "name": "Стуяхок"}, -{"usage": "world", "name": "Стхекин"}, -{"usage": "world", "name": "Стьюбен"}, -{"usage": "world", "name": "Стэйтон"}, -{"usage": "world", "name": "Стэндиш"}, -{"usage": "world", "name": "Стэнли"}, -{"usage": "world", "name": "Стэнтон"}, -{"usage": "world", "name": "Стэн"}, -{"usage": "world", "name": "Стэтхэм"}, -{"usage": "world", "name": "Стюард"}, -{"usage": "world", "name": "Стюарт"}, -{"usage": "world", "name": "Суарес"}, -{"usage": "world", "name": "Сувани"}, -{"usage": "world", "name": "Суванни"}, -{"usage": "world", "name": "Судан"}, -{"usage": "world", "name": "Суиден"}, -{"usage": "world", "name": "Суидс"}, -{"usage": "world", "name": "Суини"}, -{"usage": "world", "name": "Суитзер"}, -{"usage": "world", "name": "Суит"}, -{"usage": "world", "name": "Суишер"}, -{"usage": "world", "name": "Суи"}, -{"usage": "world", "name": "Сула"}, -{"usage": "world", "name": "Султан"}, -{"usage": "world", "name": "Сумас"}, -{"usage": "world", "name": "Суматра"}, -{"usage": "world", "name": "Сумах"}, -{"usage": "world", "name": "Сумидеро"}, -{"usage": "world", "name": "Суннит"}, -{"usage": "world", "name": "Сунол"}, -{"usage": "world", "name": "Суол"}, -{"usage": "world", "name": "Суомп"}, -{"usage": "world", "name": "Суонзей"}, -{"usage": "world", "name": "Суонкуортер"}, -{"usage": "world", "name": "Суоннаноа"}, -{"usage": "world", "name": "Суонси"}, -{"usage": "world", "name": "Суонс"}, -{"usage": "world", "name": "Суон"}, -{"usage": "world", "name": "Суортмор"}, -{"usage": "world", "name": "Суотара"}, -{"usage": "world", "name": "Супэй"}, -{"usage": "world", "name": "Сурдс"}, -{"usage": "world", "name": "Сурис"}, -{"usage": "world", "name": "Сур"}, -{"usage": "world", "name": "Сусана"}, -{"usage": "world", "name": "Сутерлин"}, -{"usage": "world", "name": "Сутер"}, -{"usage": "world", "name": "Суффолк"}, -{"usage": "world", "name": "Суэйзи"}, -{"usage": "world", "name": "Суэйн"}, -{"usage": "world", "name": "Сценик"}, -{"usage": "world", "name": "Сьенега"}, -{"usage": "world", "name": "Сьоссет"}, -{"usage": "world", "name": "Сьюард"}, -{"usage": "world", "name": "Сьюарен"}, -{"usage": "world", "name": "Сьюзен"}, -{"usage": "world", "name": "Сьюпириор"}, -{"usage": "world", "name": "Сьют"}, -{"usage": "world", "name": "Сьюэлл"}, -{"usage": "world", "name": "Сьялес"}, -{"usage": "world", "name": "Сэй"}, -{"usage": "world", "name": "Сэл"}, -{"usage": "world", "name": "Сэмпсон"}, -{"usage": "world", "name": "Сэм"}, -{"usage": "world", "name": "Сэнгер"}, -{"usage": "world", "name": "Сэндвич"}, -{"usage": "world", "name": "Сэнди"}, -{"usage": "world", "name": "Сюргуэн"}, -{"usage": "world", "name": "Табак"}, -{"usage": "world", "name": "Табернакль"}, -{"usage": "world", "name": "Табер"}, -{"usage": "world", "name": "Таблер"}, -{"usage": "world", "name": "Табор"}, -{"usage": "world", "name": "Тавакони"}, -{"usage": "world", "name": "Тавас"}, -{"usage": "world", "name": "Таверна"}, -{"usage": "world", "name": "Тавернье"}, -{"usage": "world", "name": "Тависток"}, -{"usage": "world", "name": "Тагус"}, -{"usage": "world", "name": "Тазлина"}, -{"usage": "world", "name": "Тазуэлл"}, -{"usage": "world", "name": "Тайбан"}, -{"usage": "world", "name": "Тайби"}, -{"usage": "world", "name": "Тайдиаут"}, -{"usage": "world", "name": "Тайд"}, -{"usage": "world", "name": "Тайер"}, -{"usage": "world", "name": "Тайи"}, -{"usage": "world", "name": "Тайлер"}, -{"usage": "world", "name": "Тайнан"}, -{"usage": "world", "name": "Тайнгсборо"}, -{"usage": "world", "name": "Тайнер"}, -{"usage": "world", "name": "Тайн"}, -{"usage": "world", "name": "Тайога"}, -{"usage": "world", "name": "Тайонк"}, -{"usage": "world", "name": "Тайрон"}, -{"usage": "world", "name": "Тайро"}, -{"usage": "world", "name": "Тайсонс"}, -{"usage": "world", "name": "Тайс"}, -{"usage": "world", "name": "Тайтон"}, -{"usage": "world", "name": "Тай"}, -{"usage": "world", "name": "Такахо"}, -{"usage": "world", "name": "Такер"}, -{"usage": "world", "name": "Такилма"}, -{"usage": "world", "name": "Такна"}, -{"usage": "world", "name": "Такома"}, -{"usage": "world", "name": "Таконит"}, -{"usage": "world", "name": "Такотна"}, -{"usage": "world", "name": "Такседо"}, -{"usage": "world", "name": "Таку"}, -{"usage": "world", "name": "Так"}, -{"usage": "world", "name": "Талаксак"}, -{"usage": "world", "name": "Талала"}, -{"usage": "world", "name": "Талант"}, -{"usage": "world", "name": "Талберт"}, -{"usage": "world", "name": "Талботтон"}, -{"usage": "world", "name": "Талекуа"}, -{"usage": "world", "name": "Талиайна"}, -{"usage": "world", "name": "Талишик"}, -{"usage": "world", "name": "Талия"}, -{"usage": "world", "name": "Талкитна"}, -{"usage": "world", "name": "Талко"}, -{"usage": "world", "name": "Таллабоа"}, -{"usage": "world", "name": "Таллахасси"}, -{"usage": "world", "name": "Таллахома"}, -{"usage": "world", "name": "Талли"}, -{"usage": "world", "name": "Таллла"}, -{"usage": "world", "name": "Таллмэддж"}, -{"usage": "world", "name": "Таллула"}, -{"usage": "world", "name": "Талл"}, -{"usage": "world", "name": "Талмейдж"}, -{"usage": "world", "name": "Талмо"}, -{"usage": "world", "name": "Талова"}, -{"usage": "world", "name": "Талога"}, -{"usage": "world", "name": "Талпа"}, -{"usage": "world", "name": "Талса"}, -{"usage": "world", "name": "Талты"}, -{"usage": "world", "name": "Тамайами"}, -{"usage": "world", "name": "Тамаква"}, -{"usage": "world", "name": "Тамарак"}, -{"usage": "world", "name": "Тамароа"}, -{"usage": "world", "name": "Тамаха"}, -{"usage": "world", "name": "Тама"}, -{"usage": "world", "name": "Тамб"}, -{"usage": "world", "name": "Тамина"}, -{"usage": "world", "name": "Таммс"}, -{"usage": "world", "name": "Тамола"}, -{"usage": "world", "name": "Тамора"}, -{"usage": "world", "name": "Тамо"}, -{"usage": "world", "name": "Тампа"}, -{"usage": "world", "name": "Тампико"}, -{"usage": "world", "name": "Тамуотер"}, -{"usage": "world", "name": "Танакросс"}, -{"usage": "world", "name": "Тананак"}, -{"usage": "world", "name": "Танана"}, -{"usage": "world", "name": "Тангело"}, -{"usage": "world", "name": "Тангенс"}, -{"usage": "world", "name": "Тангл"}, -{"usage": "world", "name": "Тандерболт"}, -{"usage": "world", "name": "Тандер"}, -{"usage": "world", "name": "Танджипахоа"}, -{"usage": "world", "name": "Танжер"}, -{"usage": "world", "name": "Тани"}, -{"usage": "world", "name": "Танкерсли"}, -{"usage": "world", "name": "Танки"}, -{"usage": "world", "name": "Танкханнок"}, -{"usage": "world", "name": "Танна"}, -{"usage": "world", "name": "Таннер"}, -{"usage": "world", "name": "Тансборо"}, -{"usage": "world", "name": "Тантутулиак"}, -{"usage": "world", "name": "Тан"}, -{"usage": "world", "name": "Таоламн"}, -{"usage": "world", "name": "Таос"}, -{"usage": "world", "name": "Тапавинго"}, -{"usage": "world", "name": "Таппа"}, -{"usage": "world", "name": "Таппен"}, -{"usage": "world", "name": "Таппер"}, -{"usage": "world", "name": "Тара"}, -{"usage": "world", "name": "Тарборо"}, -{"usage": "world", "name": "Тарвер"}, -{"usage": "world", "name": "Тарентум"}, -{"usage": "world", "name": "Тарзан"}, -{"usage": "world", "name": "Тариф"}, -{"usage": "world", "name": "Тарлтон"}, -{"usage": "world", "name": "Тарнов"}, -{"usage": "world", "name": "Тарпон"}, -{"usage": "world", "name": "Таррантс"}, -{"usage": "world", "name": "Тарриолл"}, -{"usage": "world", "name": "Тарри"}, -{"usage": "world", "name": "Таскаравас"}, -{"usage": "world", "name": "Таскахома"}, -{"usage": "world", "name": "Таскджи"}, -{"usage": "world", "name": "Таскоса"}, -{"usage": "world", "name": "Таско"}, -{"usage": "world", "name": "Таскумбия"}, -{"usage": "world", "name": "Тасселл"}, -{"usage": "world", "name": "Тастин"}, -{"usage": "world", "name": "Татами"}, -{"usage": "world", "name": "Татитлек"}, -{"usage": "world", "name": "Таттл"}, -{"usage": "world", "name": "Татуайлер"}, -{"usage": "world", "name": "Татум"}, -{"usage": "world", "name": "Тауи"}, -{"usage": "world", "name": "Тауйя"}, -{"usage": "world", "name": "Таунер"}, -{"usage": "world", "name": "Таунсенд"}, -{"usage": "world", "name": "Тауншип"}, -{"usage": "world", "name": "Таун"}, -{"usage": "world", "name": "Таусанд"}, -{"usage": "world", "name": "Таусон"}, -{"usage": "world", "name": "Таучет"}, -{"usage": "world", "name": "Тауэр"}, -{"usage": "world", "name": "Тафтон"}, -{"usage": "world", "name": "Тафт"}, -{"usage": "world", "name": "Тахола"}, -{"usage": "world", "name": "Тахоус"}, -{"usage": "world", "name": "Тахо"}, -{"usage": "world", "name": "Тач"}, -{"usage": "world", "name": "Твейн"}, -{"usage": "world", "name": "Твин"}, -{"usage": "world", "name": "Твисп"}, -{"usage": "world", "name": "Твитти"}, -{"usage": "world", "name": "Тводот"}, -{"usage": "world", "name": "Теба"}, -{"usage": "world", "name": "Тебес"}, -{"usage": "world", "name": "Тегарден"}, -{"usage": "world", "name": "Тега"}, -{"usage": "world", "name": "Теджигуас"}, -{"usage": "world", "name": "Тед"}, -{"usage": "world", "name": "Теейс"}, -{"usage": "world", "name": "Тейбл"}, -{"usage": "world", "name": "Тейген"}, -{"usage": "world", "name": "Тейлман"}, -{"usage": "world", "name": "Тейлор"}, -{"usage": "world", "name": "Тейнтер"}, -{"usage": "world", "name": "Тейопи"}, -{"usage": "world", "name": "Тейт"}, -{"usage": "world", "name": "Тейчида"}, -{"usage": "world", "name": "Текама"}, -{"usage": "world", "name": "Текамсе"}, -{"usage": "world", "name": "Текате"}, -{"usage": "world", "name": "Теквеста"}, -{"usage": "world", "name": "Теквила"}, -{"usage": "world", "name": "Текоа"}, -{"usage": "world", "name": "Теколота"}, -{"usage": "world", "name": "Теконша"}, -{"usage": "world", "name": "Текопа"}, -{"usage": "world", "name": "Тексаркана"}, -{"usage": "world", "name": "Тексико"}, -{"usage": "world", "name": "Тексон"}, -{"usage": "world", "name": "Текстон"}, -{"usage": "world", "name": "Тексхома"}, -{"usage": "world", "name": "Телеграф"}, -{"usage": "world", "name": "Телемарк"}, -{"usage": "world", "name": "Телефон"}, -{"usage": "world", "name": "Телида"}, -{"usage": "world", "name": "Теллер"}, -{"usage": "world", "name": "Теллурид"}, -{"usage": "world", "name": "Телл"}, -{"usage": "world", "name": "Телогия"}, -{"usage": "world", "name": "Телокасет"}, -{"usage": "world", "name": "Тельман"}, -{"usage": "world", "name": "Тельма"}, -{"usage": "world", "name": "Тел"}, -{"usage": "world", "name": "Темвик"}, -{"usage": "world", "name": "Темекула"}, -{"usage": "world", "name": "Темелек"}, -{"usage": "world", "name": "Темперанс"}, -{"usage": "world", "name": "Темпе"}, -{"usage": "world", "name": "Темпиют"}, -{"usage": "world", "name": "Темпл"}, -{"usage": "world", "name": "Тенафлай"}, -{"usage": "world", "name": "Тенаха"}, -{"usage": "world", "name": "Тендал"}, -{"usage": "world", "name": "Тенейки"}, -{"usage": "world", "name": "Тенино"}, -{"usage": "world", "name": "Тенмил"}, -{"usage": "world", "name": "Теннант"}, -{"usage": "world", "name": "Теннент"}, -{"usage": "world", "name": "Теннесси"}, -{"usage": "world", "name": "Тенниль"}, -{"usage": "world", "name": "Теннисон"}, -{"usage": "world", "name": "Тенни"}, -{"usage": "world", "name": "Тенсо"}, -{"usage": "world", "name": "Тенстрайк"}, -{"usage": "world", "name": "Тент"}, -{"usage": "world", "name": "Тен"}, -{"usage": "world", "name": "Тербот"}, -{"usage": "world", "name": "Тереза"}, -{"usage": "world", "name": "Терерро"}, -{"usage": "world", "name": "Тересса"}, -{"usage": "world", "name": "Териот"}, -{"usage": "world", "name": "Терки"}, -{"usage": "world", "name": "Терлингуа"}, -{"usage": "world", "name": "Терли"}, -{"usage": "world", "name": "Терлок"}, -{"usage": "world", "name": "Терлтон"}, -{"usage": "world", "name": "Термалито"}, -{"usage": "world", "name": "Термал"}, -{"usage": "world", "name": "Терминаус"}, -{"usage": "world", "name": "Термонд"}, -{"usage": "world", "name": "Термонт"}, -{"usage": "world", "name": "Термополис"}, -{"usage": "world", "name": "Термо"}, -{"usage": "world", "name": "Терни"}, -{"usage": "world", "name": "Терн"}, -{"usage": "world", "name": "Терпин"}, -{"usage": "world", "name": "Терраль"}, -{"usage": "world", "name": "Терраса"}, -{"usage": "world", "name": "Терра"}, -{"usage": "world", "name": "Террелл"}, -{"usage": "world", "name": "Терре"}, -{"usage": "world", "name": "Террил"}, -{"usage": "world", "name": "Терри"}, -{"usage": "world", "name": "Тертл"}, -{"usage": "world", "name": "Тертон"}, -{"usage": "world", "name": "Тескотт"}, -{"usage": "world", "name": "Теско"}, -{"usage": "world", "name": "Тесук"}, -{"usage": "world", "name": "Тета"}, -{"usage": "world", "name": "Тетер"}, -{"usage": "world", "name": "Тете"}, -{"usage": "world", "name": "Тетлин"}, -{"usage": "world", "name": "Тетония"}, -{"usage": "world", "name": "Теуакана"}, -{"usage": "world", "name": "Теутополис"}, -{"usage": "world", "name": "Техама"}, -{"usage": "world", "name": "Техас"}, -{"usage": "world", "name": "Техачепи"}, -{"usage": "world", "name": "Техлайн"}, -{"usage": "world", "name": "Техола"}, -{"usage": "world", "name": "Тибби"}, -{"usage": "world", "name": "Тиберон"}, -{"usage": "world", "name": "Тибодо"}, -{"usage": "world", "name": "Тивертон"}, -{"usage": "world", "name": "Тиволи"}, -{"usage": "world", "name": "Тигард"}, -{"usage": "world", "name": "Тигнолл"}, -{"usage": "world", "name": "Тигр"}, -{"usage": "world", "name": "Тиг"}, -{"usage": "world", "name": "Тидс"}, -{"usage": "world", "name": "Тики"}, -{"usage": "world", "name": "Тикнор"}, -{"usage": "world", "name": "Тик"}, -{"usage": "world", "name": "Тилден"}, -{"usage": "world", "name": "Тилламук"}, -{"usage": "world", "name": "Тиллар"}, -{"usage": "world", "name": "Тиллатоба"}, -{"usage": "world", "name": "Тилледа"}, -{"usage": "world", "name": "Тиллер"}, -{"usage": "world", "name": "Тилликум"}, -{"usage": "world", "name": "Тиллман"}, -{"usage": "world", "name": "Тиллсон"}, -{"usage": "world", "name": "Тиллс"}, -{"usage": "world", "name": "Тилман"}, -{"usage": "world", "name": "Тилтон"}, -{"usage": "world", "name": "Тилфорд"}, -{"usage": "world", "name": "Тимбер"}, -{"usage": "world", "name": "Тимблин"}, -{"usage": "world", "name": "Тимбо"}, -{"usage": "world", "name": "Тимкен"}, -{"usage": "world", "name": "Тиммонс"}, -{"usage": "world", "name": "Тимнат"}, -{"usage": "world", "name": "Тимониум"}, -{"usage": "world", "name": "Тимпас"}, -{"usage": "world", "name": "Тимпи"}, -{"usage": "world", "name": "Тимпсон"}, -{"usage": "world", "name": "Тинаджа"}, -{"usage": "world", "name": "Тина"}, -{"usage": "world", "name": "Тингли"}, -{"usage": "world", "name": "Тиндалл"}, -{"usage": "world", "name": "Тиндол"}, -{"usage": "world", "name": "Тинек"}, -{"usage": "world", "name": "Тинли"}, -{"usage": "world", "name": "Тинсли"}, -{"usage": "world", "name": "Тинсман"}, -{"usage": "world", "name": "Тинс"}, -{"usage": "world", "name": "Тинта"}, -{"usage": "world", "name": "Тинтон"}, -{"usage": "world", "name": "Тин"}, -{"usage": "world", "name": "Типлер"}, -{"usage": "world", "name": "Типпетт"}, -{"usage": "world", "name": "Типп"}, -{"usage": "world", "name": "Типтон"}, -{"usage": "world", "name": "Тира"}, -{"usage": "world", "name": "Тиронза"}, -{"usage": "world", "name": "Тирон"}, -{"usage": "world", "name": "Тискилва"}, -{"usage": "world", "name": "Тисл"}, -{"usage": "world", "name": "Тис"}, -{"usage": "world", "name": "Титикет"}, -{"usage": "world", "name": "Титонка"}, -{"usage": "world", "name": "Титон"}, -{"usage": "world", "name": "Титус"}, -{"usage": "world", "name": "Тифтон"}, -{"usage": "world", "name": "Тиффани"}, -{"usage": "world", "name": "Тиффин"}, -{"usage": "world", "name": "Тифф"}, -{"usage": "world", "name": "Тиф"}, -{"usage": "world", "name": "Тихерас"}, -{"usage": "world", "name": "Тичи"}, -{"usage": "world", "name": "Тишоминго"}, -{"usage": "world", "name": "Ти"}, -{"usage": "world", "name": "Тоано"}, -{"usage": "world", "name": "Тоаст"}, -{"usage": "world", "name": "Тоа"}, -{"usage": "world", "name": "Тобик"}, -{"usage": "world", "name": "Тобиханна"}, -{"usage": "world", "name": "Тобосо"}, -{"usage": "world", "name": "Тованда"}, -{"usage": "world", "name": "Товаок"}, -{"usage": "world", "name": "Тови"}, -{"usage": "world", "name": "Товако"}, -{"usage": "world", "name": "Тога"}, -{"usage": "world", "name": "Тогиак"}, -{"usage": "world", "name": "Того"}, -{"usage": "world", "name": "Тодд"}, -{"usage": "world", "name": "Тойвола"}, -{"usage": "world", "name": "Тойя"}, -{"usage": "world", "name": "Той"}, -{"usage": "world", "name": "Тока"}, -{"usage": "world", "name": "Токер"}, -{"usage": "world", "name": "Токин"}, -{"usage": "world", "name": "Токио"}, -{"usage": "world", "name": "Токкоа"}, -{"usage": "world", "name": "Токкопола"}, -{"usage": "world", "name": "Токлат"}, -{"usage": "world", "name": "Токо"}, -{"usage": "world", "name": "Токсауэй"}, -{"usage": "world", "name": "Токсей"}, -{"usage": "world", "name": "Токсук"}, -{"usage": "world", "name": "Ток"}, -{"usage": "world", "name": "Толар"}, -{"usage": "world", "name": "Толедо"}, -{"usage": "world", "name": "Толетт"}, -{"usage": "world", "name": "Толи"}, -{"usage": "world", "name": "Толкинг"}, -{"usage": "world", "name": "Толлесон"}, -{"usage": "world", "name": "Толл"}, -{"usage": "world", "name": "Толоно"}, -{"usage": "world", "name": "Толстой"}, -{"usage": "world", "name": "Толука"}, -{"usage": "world", "name": "Толчестер"}, -{"usage": "world", "name": "Тольберт"}, -{"usage": "world", "name": "Тольна"}, -{"usage": "world", "name": "Тольтек"}, -{"usage": "world", "name": "Томагавк"}, -{"usage": "world", "name": "Томас"}, -{"usage": "world", "name": "Томато"}, -{"usage": "world", "name": "Томах"}, -{"usage": "world", "name": "Томбал"}, -{"usage": "world", "name": "Томе"}, -{"usage": "world", "name": "Томкинс"}, -{"usage": "world", "name": "Томнолен"}, -{"usage": "world", "name": "Томпкинс"}, -{"usage": "world", "name": "Томпсон"}, -{"usage": "world", "name": "Томсон"}, -{"usage": "world", "name": "Том"}, -{"usage": "world", "name": "Тонаванда"}, -{"usage": "world", "name": "Тонаскет"}, -{"usage": "world", "name": "Тонганокси"}, -{"usage": "world", "name": "Тонет"}, -{"usage": "world", "name": "Тоника"}, -{"usage": "world", "name": "Тонкава"}, -{"usage": "world", "name": "Тонка"}, -{"usage": "world", "name": "Тонопа"}, -{"usage": "world", "name": "Тонотосасса"}, -{"usage": "world", "name": "Тонсина"}, -{"usage": "world", "name": "Тонти"}, -{"usage": "world", "name": "Тонтогани"}, -{"usage": "world", "name": "Тонтон"}, -{"usage": "world", "name": "Тонто"}, -{"usage": "world", "name": "Тон"}, -{"usage": "world", "name": "Тооел"}, -{"usage": "world", "name": "Тоомсборо"}, -{"usage": "world", "name": "Топава"}, -{"usage": "world", "name": "Топанга"}, -{"usage": "world", "name": "Топика"}, -{"usage": "world", "name": "Топинаби"}, -{"usage": "world", "name": "Топмост"}, -{"usage": "world", "name": "Топок"}, -{"usage": "world", "name": "Топонас"}, -{"usage": "world", "name": "Топпениш"}, -{"usage": "world", "name": "Топсейл"}, -{"usage": "world", "name": "Топс"}, -{"usage": "world", "name": "Топшам"}, -{"usage": "world", "name": "Топ"}, -{"usage": "world", "name": "Торнилло"}, -{"usage": "world", "name": "Торнтон"}, -{"usage": "world", "name": "Торн"}, -{"usage": "world", "name": "Торонто"}, -{"usage": "world", "name": "Торофэр"}, -{"usage": "world", "name": "Торо"}, -{"usage": "world", "name": "Торп"}, -{"usage": "world", "name": "Торранс"}, -{"usage": "world", "name": "Торрес"}, -{"usage": "world", "name": "Торринг"}, -{"usage": "world", "name": "Торри"}, -{"usage": "world", "name": "Торсби"}, -{"usage": "world", "name": "Тортилла"}, -{"usage": "world", "name": "Тор"}, -{"usage": "world", "name": "Тосито"}, -{"usage": "world", "name": "Тостон"}, -{"usage": "world", "name": "Тотова"}, -{"usage": "world", "name": "Тоттен"}, -{"usage": "world", "name": "Тоукенамон"}, -{"usage": "world", "name": "Тоу"}, -{"usage": "world", "name": "Тофте"}, -{"usage": "world", "name": "Тофти"}, -{"usage": "world", "name": "Тоц"}, -{"usage": "world", "name": "Трабуко"}, -{"usage": "world", "name": "Травелер"}, -{"usage": "world", "name": "Траверс"}, -{"usage": "world", "name": "Травик"}, -{"usage": "world", "name": "Траер"}, -{"usage": "world", "name": "Траки"}, -{"usage": "world", "name": "Траксолл"}, -{"usage": "world", "name": "Тракстон"}, -{"usage": "world", "name": "Тракт"}, -{"usage": "world", "name": "Трамбауэр"}, -{"usage": "world", "name": "Трамбулл"}, -{"usage": "world", "name": "Трамвай"}, -{"usage": "world", "name": "Траммеллс"}, -{"usage": "world", "name": "Траммел"}, -{"usage": "world", "name": "Транквиллити"}, -{"usage": "world", "name": "Транкос"}, -{"usage": "world", "name": "Трансильвания"}, -{"usage": "world", "name": "Траппер"}, -{"usage": "world", "name": "Трапп"}, -{"usage": "world", "name": "Траскотт"}, -{"usage": "world", "name": "Траск"}, -{"usage": "world", "name": "Трасс"}, -{"usage": "world", "name": "Трас"}, -{"usage": "world", "name": "Траут"}, -{"usage": "world", "name": "Трафальгар"}, -{"usage": "world", "name": "Трафант"}, -{"usage": "world", "name": "Траф"}, -{"usage": "world", "name": "Траянгл"}, -{"usage": "world", "name": "Треблок"}, -{"usage": "world", "name": "Тревескин"}, -{"usage": "world", "name": "Тревлак"}, -{"usage": "world", "name": "Тревор"}, -{"usage": "world", "name": "Тревос"}, -{"usage": "world", "name": "Трего"}, -{"usage": "world", "name": "Треже"}, -{"usage": "world", "name": "Трейдс"}, -{"usage": "world", "name": "Трейд"}, -{"usage": "world", "name": "Трейл"}, -{"usage": "world", "name": "Трейнор"}, -{"usage": "world", "name": "Трейн"}, -{"usage": "world", "name": "Трейси"}, -{"usage": "world", "name": "Трементина"}, -{"usage": "world", "name": "Тремонтон"}, -{"usage": "world", "name": "Тремон"}, -{"usage": "world", "name": "Тремпило"}, -{"usage": "world", "name": "Тренари"}, -{"usage": "world", "name": "Тренер"}, -{"usage": "world", "name": "Трентон"}, -{"usage": "world", "name": "Трент"}, -{"usage": "world", "name": "Тресков"}, -{"usage": "world", "name": "Трес"}, -{"usage": "world", "name": "Триадельфия"}, -{"usage": "world", "name": "Триана"}, -{"usage": "world", "name": "Трибес"}, -{"usage": "world", "name": "Трибуна"}, -{"usage": "world", "name": "Тридент"}, -{"usage": "world", "name": "Трилби"}, -{"usage": "world", "name": "Тримбелл"}, -{"usage": "world", "name": "Тримбл"}, -{"usage": "world", "name": "Триммер"}, -{"usage": "world", "name": "Тримонт"}, -{"usage": "world", "name": "Тринидад"}, -{"usage": "world", "name": "Тринити"}, -{"usage": "world", "name": "Тринуэй"}, -{"usage": "world", "name": "Тринчера"}, -{"usage": "world", "name": "Трион"}, -{"usage": "world", "name": "Триплетт"}, -{"usage": "world", "name": "Триплет"}, -{"usage": "world", "name": "Триполи"}, -{"usage": "world", "name": "Трипп"}, -{"usage": "world", "name": "Трир"}, -{"usage": "world", "name": "Триумф"}, -{"usage": "world", "name": "Три"}, -{"usage": "world", "name": "Троап"}, -{"usage": "world", "name": "Трой"}, -{"usage": "world", "name": "Трокмор"}, -{"usage": "world", "name": "Тролл"}, -{"usage": "world", "name": "Троммолд"}, -{"usage": "world", "name": "Трона"}, -{"usage": "world", "name": "Тропик"}, -{"usage": "world", "name": "Троски"}, -{"usage": "world", "name": "Троттер"}, -{"usage": "world", "name": "Трот"}, -{"usage": "world", "name": "Трофей"}, -{"usage": "world", "name": "Тро"}, -{"usage": "world", "name": "Трумэн"}, -{"usage": "world", "name": "Трупер"}, -{"usage": "world", "name": "Труп"}, -{"usage": "world", "name": "Труро"}, -{"usage": "world", "name": "Трутмен"}, -{"usage": "world", "name": "Трут"}, -{"usage": "world", "name": "Трухильо"}, -{"usage": "world", "name": "Тручас"}, -{"usage": "world", "name": "Тру"}, -{"usage": "world", "name": "Трэйл"}, -{"usage": "world", "name": "Трэп"}, -{"usage": "world", "name": "Тубак"}, -{"usage": "world", "name": "Туба"}, -{"usage": "world", "name": "Тугау"}, -{"usage": "world", "name": "Туичелл"}, -{"usage": "world", "name": "Тулалип"}, -{"usage": "world", "name": "Тулароса"}, -{"usage": "world", "name": "Тулар"}, -{"usage": "world", "name": "Тула"}, -{"usage": "world", "name": "Тулета"}, -{"usage": "world", "name": "Туле"}, -{"usage": "world", "name": "Тулия"}, -{"usage": "world", "name": "Тулон"}, -{"usage": "world", "name": "Тул"}, -{"usage": "world", "name": "Тумало"}, -{"usage": "world", "name": "Тунас"}, -{"usage": "world", "name": "Тундра"}, -{"usage": "world", "name": "Тунер"}, -{"usage": "world", "name": "Туника"}, -{"usage": "world", "name": "Тунис"}, -{"usage": "world", "name": "Туннель"}, -{"usage": "world", "name": "Тун"}, -{"usage": "world", "name": "Тупело"}, -{"usage": "world", "name": "Турбо"}, -{"usage": "world", "name": "Турин"}, -{"usage": "world", "name": "Турман"}, -{"usage": "world", "name": "Турон"}, -{"usage": "world", "name": "Турс"}, -{"usage": "world", "name": "Тур"}, -{"usage": "world", "name": "Тусаян"}, -{"usage": "world", "name": "Тускалуса"}, -{"usage": "world", "name": "Тускарора"}, -{"usage": "world", "name": "Тускола"}, -{"usage": "world", "name": "Тускулум"}, -{"usage": "world", "name": "Тусон"}, -{"usage": "world", "name": "Тут"}, -{"usage": "world", "name": "Тушка"}, -{"usage": "world", "name": "Ту"}, -{"usage": "world", "name": "Тчула"}, -{"usage": "world", "name": "Тшеттер"}, -{"usage": "world", "name": "Тьерра"}, -{"usage": "world", "name": "Тьюксбери"}, -{"usage": "world", "name": "Тьюлип"}, -{"usage": "world", "name": "Тэлбот"}, -{"usage": "world", "name": "Тэлли"}, -{"usage": "world", "name": "Тэппэн"}, -{"usage": "world", "name": "Тэтчер"}, -{"usage": "world", "name": "Тёрнер"}, -{"usage": "world", "name": "Уаббасика"}, -{"usage": "world", "name": "Уайаконда"}, -{"usage": "world", "name": "Уайанданч"}, -{"usage": "world", "name": "Уайандотт"}, -{"usage": "world", "name": "Уайанет"}, -{"usage": "world", "name": "Уайарно"}, -{"usage": "world", "name": "Уайатт"}, -{"usage": "world", "name": "Уайат"}, -{"usage": "world", "name": "Уайзмен"}, -{"usage": "world", "name": "Уайз"}, -{"usage": "world", "name": "Уайлделл"}, -{"usage": "world", "name": "Уайлдер"}, -{"usage": "world", "name": "Уайлдомар"}, -{"usage": "world", "name": "Уайлдорадо"}, -{"usage": "world", "name": "Уайлд"}, -{"usage": "world", "name": "Уайленд"}, -{"usage": "world", "name": "Уайли"}, -{"usage": "world", "name": "Уаймер"}, -{"usage": "world", "name": "Уаймома"}, -{"usage": "world", "name": "Уайодак"}, -{"usage": "world", "name": "Уайосена"}, -{"usage": "world", "name": "Уайтинг"}, -{"usage": "world", "name": "Уайтинс"}, -{"usage": "world", "name": "Уайтопитлок"}, -{"usage": "world", "name": "Уайтривер"}, -{"usage": "world", "name": "Уайттейл"}, -{"usage": "world", "name": "Уайтторн"}, -{"usage": "world", "name": "Уайтхолл"}, -{"usage": "world", "name": "Уайт"}, -{"usage": "world", "name": "Уай"}, -{"usage": "world", "name": "Уакон"}, -{"usage": "world", "name": "Уакота"}, -{"usage": "world", "name": "Уакулла"}, -{"usage": "world", "name": "Уандерву"}, -{"usage": "world", "name": "Уандер"}, -{"usage": "world", "name": "Уарба"}, -{"usage": "world", "name": "Уаскиш"}, -{"usage": "world", "name": "Уауватоса"}, -{"usage": "world", "name": "Уаундед"}, -{"usage": "world", "name": "Уачита"}, -{"usage": "world", "name": "Увада"}, -{"usage": "world", "name": "Угашик"}, -{"usage": "world", "name": "Уделл"}, -{"usage": "world", "name": "Удол"}, -{"usage": "world", "name": "Уерт"}, -{"usage": "world", "name": "Уибо"}, -{"usage": "world", "name": "Уивер"}, -{"usage": "world", "name": "Уигам"}, -{"usage": "world", "name": "Уиггинс"}, -{"usage": "world", "name": "Уидон"}, -{"usage": "world", "name": "Уид"}, -{"usage": "world", "name": "Уиер"}, -{"usage": "world", "name": "Уизатч"}, -{"usage": "world", "name": "Уиз"}, -{"usage": "world", "name": "Уиилбрахам"}, -{"usage": "world", "name": "Уикатанк"}, -{"usage": "world", "name": "Уикен"}, -{"usage": "world", "name": "Уикершам"}, -{"usage": "world", "name": "Уикет"}, -{"usage": "world", "name": "Уикомико"}, -{"usage": "world", "name": "Уиксом"}, -{"usage": "world", "name": "Уиксон"}, -{"usage": "world", "name": "Уикс"}, -{"usage": "world", "name": "Уик"}, -{"usage": "world", "name": "Уилбер"}, -{"usage": "world", "name": "Уилбур"}, -{"usage": "world", "name": "Уилер"}, -{"usage": "world", "name": "Уилесс"}, -{"usage": "world", "name": "Уилинг"}, -{"usage": "world", "name": "Уили"}, -{"usage": "world", "name": "Уилкин"}, -{"usage": "world", "name": "Уилкокс"}, -{"usage": "world", "name": "Уилксон"}, -{"usage": "world", "name": "Уилкс"}, -{"usage": "world", "name": "Уиллакоочи"}, -{"usage": "world", "name": "Уилламина"}, -{"usage": "world", "name": "Уиллард"}, -{"usage": "world", "name": "Уиллаха"}, -{"usage": "world", "name": "Уиллерни"}, -{"usage": "world", "name": "Уиллетт"}, -{"usage": "world", "name": "Уиллинг"}, -{"usage": "world", "name": "Уиллис"}, -{"usage": "world", "name": "Уиллитс"}, -{"usage": "world", "name": "Уилли"}, -{"usage": "world", "name": "Уиллкокс"}, -{"usage": "world", "name": "Уиллмар"}, -{"usage": "world", "name": "Уиллоуби"}, -{"usage": "world", "name": "Уиллоуик"}, -{"usage": "world", "name": "Уиллоу"}, -{"usage": "world", "name": "Уиллс"}, -{"usage": "world", "name": "Уиллхойт"}, -{"usage": "world", "name": "Уилметт"}, -{"usage": "world", "name": "Уилмот"}, -{"usage": "world", "name": "Уилок"}, -{"usage": "world", "name": "Уилсон"}, -{"usage": "world", "name": "Уилтон"}, -{"usage": "world", "name": "Уильямс"}, -{"usage": "world", "name": "Уильям"}, -{"usage": "world", "name": "Уил"}, -{"usage": "world", "name": "Уимберли"}, -{"usage": "world", "name": "Уимблдон"}, -{"usage": "world", "name": "Уингер"}, -{"usage": "world", "name": "Уинг"}, -{"usage": "world", "name": "Уиндер"}, -{"usage": "world", "name": "Уиндинг"}, -{"usage": "world", "name": "Уинди"}, -{"usage": "world", "name": "Уиндом"}, -{"usage": "world", "name": "Уиндоу"}, -{"usage": "world", "name": "Уинд"}, -{"usage": "world", "name": "Уинифред"}, -{"usage": "world", "name": "Уинк"}, -{"usage": "world", "name": "Уинлок"}, -{"usage": "world", "name": "Уиннер"}, -{"usage": "world", "name": "Уиннетка"}, -{"usage": "world", "name": "Уиннетт"}, -{"usage": "world", "name": "Уинни"}, -{"usage": "world", "name": "Уинн"}, -{"usage": "world", "name": "Уинслоу"}, -{"usage": "world", "name": "Уинстед"}, -{"usage": "world", "name": "Уинстон"}, -{"usage": "world", "name": "Уинтер"}, -{"usage": "world", "name": "Уинтон"}, -{"usage": "world", "name": "Уинтроп"}, -{"usage": "world", "name": "Уинуски"}, -{"usage": "world", "name": "Уинфред"}, -{"usage": "world", "name": "Уинфри"}, -{"usage": "world", "name": "Уинчелл"}, -{"usage": "world", "name": "Уин"}, -{"usage": "world", "name": "Уиота"}, -{"usage": "world", "name": "Уипинг"}, -{"usage": "world", "name": "Уиппани"}, -{"usage": "world", "name": "Уиппл"}, -{"usage": "world", "name": "Уипс"}, -{"usage": "world", "name": "Уипхолт"}, -{"usage": "world", "name": "Уисакки"}, -{"usage": "world", "name": "Уисдом"}, -{"usage": "world", "name": "Уисперинг"}, -{"usage": "world", "name": "Уиспер"}, -{"usage": "world", "name": "Уиссота"}, -{"usage": "world", "name": "Уистер"}, -{"usage": "world", "name": "Уитакер"}, -{"usage": "world", "name": "Уитерби"}, -{"usage": "world", "name": "Уитерс"}, -{"usage": "world", "name": "Уитлаш"}, -{"usage": "world", "name": "Уитли"}, -{"usage": "world", "name": "Уитман"}, -{"usage": "world", "name": "Уитмен"}, -{"usage": "world", "name": "Уитмир"}, -{"usage": "world", "name": "Уитмор"}, -{"usage": "world", "name": "Уитни"}, -{"usage": "world", "name": "Уитон"}, -{"usage": "world", "name": "Уитсетт"}, -{"usage": "world", "name": "Уиттакер"}, -{"usage": "world", "name": "Уиттер"}, -{"usage": "world", "name": "Уиттинг"}, -{"usage": "world", "name": "Уиттлси"}, -{"usage": "world", "name": "Уиттьер"}, -{"usage": "world", "name": "Уит"}, -{"usage": "world", "name": "Уихокен"}, -{"usage": "world", "name": "Уичито"}, -{"usage": "world", "name": "Уишек"}, -{"usage": "world", "name": "Уишрам"}, -{"usage": "world", "name": "Укала"}, -{"usage": "world", "name": "Уколо"}, -{"usage": "world", "name": "Уланда"}, -{"usage": "world", "name": "Улен"}, -{"usage": "world", "name": "Улисс"}, -{"usage": "world", "name": "Улитик"}, -{"usage": "world", "name": "Улога"}, -{"usage": "world", "name": "Ултюа"}, -{"usage": "world", "name": "Улупалакуа"}, -{"usage": "world", "name": "Ульм"}, -{"usage": "world", "name": "Умапин"}, -{"usage": "world", "name": "Уматилла"}, -{"usage": "world", "name": "Умбаргер"}, -{"usage": "world", "name": "Умбра"}, -{"usage": "world", "name": "Умиат"}, -{"usage": "world", "name": "Умикоа"}, -{"usage": "world", "name": "Умкумbeт"}, -{"usage": "world", "name": "Уналаклит"}, -{"usage": "world", "name": "Уналашка"}, -{"usage": "world", "name": "Унга"}, -{"usage": "world", "name": "Универсальный"}, -{"usage": "world", "name": "Университетский"}, -{"usage": "world", "name": "Ункас"}, -{"usage": "world", "name": "Уобан"}, -{"usage": "world", "name": "Уобаш"}, -{"usage": "world", "name": "Уовина"}, -{"usage": "world", "name": "Уоддинг"}, -{"usage": "world", "name": "Уодди"}, -{"usage": "world", "name": "Уодена"}, -{"usage": "world", "name": "Уодли"}, -{"usage": "world", "name": "Уодсворт"}, -{"usage": "world", "name": "Уоерика"}, -{"usage": "world", "name": "Уоиана"}, -{"usage": "world", "name": "Уокеша"}, -{"usage": "world", "name": "Уокиган"}, -{"usage": "world", "name": "Уокина"}, -{"usage": "world", "name": "Уоки"}, -{"usage": "world", "name": "Уокомис"}, -{"usage": "world", "name": "Уоксахачи"}, -{"usage": "world", "name": "Уолан"}, -{"usage": "world", "name": "Уолапай"}, -{"usage": "world", "name": "Уолворт"}, -{"usage": "world", "name": "Уолден"}, -{"usage": "world", "name": "Уолдо"}, -{"usage": "world", "name": "Уолдрон"}, -{"usage": "world", "name": "Уолкотт"}, -{"usage": "world", "name": "Уолк"}, -{"usage": "world", "name": "Уолла"}, -{"usage": "world", "name": "Уоллед"}, -{"usage": "world", "name": "Уолленд"}, -{"usage": "world", "name": "Уоллер"}, -{"usage": "world", "name": "Уоллес"}, -{"usage": "world", "name": "Уоллинг"}, -{"usage": "world", "name": "Уоллинс"}, -{"usage": "world", "name": "Уоллис"}, -{"usage": "world", "name": "Уоллова"}, -{"usage": "world", "name": "Уоллула"}, -{"usage": "world", "name": "Уолнат"}, -{"usage": "world", "name": "Уолпол"}, -{"usage": "world", "name": "Уолсен"}, -{"usage": "world", "name": "Уолска"}, -{"usage": "world", "name": "Уолстон"}, -{"usage": "world", "name": "Уолтон"}, -{"usage": "world", "name": "Уолт"}, -{"usage": "world", "name": "Уолум"}, -{"usage": "world", "name": "Уолц"}, -{"usage": "world", "name": "Уолш"}, -{"usage": "world", "name": "Уол"}, -{"usage": "world", "name": "Уомелсдорф"}, -{"usage": "world", "name": "Уомсаттер"}, -{"usage": "world", "name": "Уонбли"}, -{"usage": "world", "name": "Уондерус"}, -{"usage": "world", "name": "Уондо"}, -{"usage": "world", "name": "Уонетт"}, -{"usage": "world", "name": "Уонни"}, -{"usage": "world", "name": "Уонн"}, -{"usage": "world", "name": "Уоншип"}, -{"usage": "world", "name": "Уопетон"}, -{"usage": "world", "name": "Уорда"}, -{"usage": "world", "name": "Уордел"}, -{"usage": "world", "name": "Уорден"}, -{"usage": "world", "name": "Уорд"}, -{"usage": "world", "name": "Уорик"}, -{"usage": "world", "name": "Уоринг"}, -{"usage": "world", "name": "Уоркс"}, -{"usage": "world", "name": "Уорланд"}, -{"usage": "world", "name": "Уорлд"}, -{"usage": "world", "name": "Уорли"}, -{"usage": "world", "name": "Уорман"}, -{"usage": "world", "name": "Уормлис"}, -{"usage": "world", "name": "Уорм"}, -{"usage": "world", "name": "Уорнер"}, -{"usage": "world", "name": "Уорн"}, -{"usage": "world", "name": "Уоррен"}, -{"usage": "world", "name": "Уорринг"}, -{"usage": "world", "name": "Уорриор"}, -{"usage": "world", "name": "Уоррод"}, -{"usage": "world", "name": "Уорр"}, -{"usage": "world", "name": "Уорсон"}, -{"usage": "world", "name": "Уортен"}, -{"usage": "world", "name": "Уортер"}, -{"usage": "world", "name": "Уортинг"}, -{"usage": "world", "name": "Уортон"}, -{"usage": "world", "name": "Уортрас"}, -{"usage": "world", "name": "Уорт"}, -{"usage": "world", "name": "Уорф"}, -{"usage": "world", "name": "Уор"}, -{"usage": "world", "name": "Уосатч"}, -{"usage": "world", "name": "Уоса"}, -{"usage": "world", "name": "Уосика"}, -{"usage": "world", "name": "Уосо"}, -{"usage": "world", "name": "Уотена"}, -{"usage": "world", "name": "Уотери"}, -{"usage": "world", "name": "Уотер"}, -{"usage": "world", "name": "Уоткинс"}, -{"usage": "world", "name": "Уотли"}, -{"usage": "world", "name": "Уотова"}, -{"usage": "world", "name": "Уотога"}, -{"usage": "world", "name": "Уотонга"}, -{"usage": "world", "name": "Уотраус"}, -{"usage": "world", "name": "Уотсон"}, -{"usage": "world", "name": "Уоттен"}, -{"usage": "world", "name": "Уоттер"}, -{"usage": "world", "name": "Уоттс"}, -{"usage": "world", "name": "Уотчунг"}, -{"usage": "world", "name": "Уот"}, -{"usage": "world", "name": "Уоубей"}, -{"usage": "world", "name": "Уоузика"}, -{"usage": "world", "name": "Уоукома"}, -{"usage": "world", "name": "Уоуконда"}, -{"usage": "world", "name": "Уоукоста"}, -{"usage": "world", "name": "Уоуманди"}, -{"usage": "world", "name": "Уоуна"}, -{"usage": "world", "name": "Уоунейки"}, -{"usage": "world", "name": "Уоунета"}, -{"usage": "world", "name": "Уоупака"}, -{"usage": "world", "name": "Уоупан"}, -{"usage": "world", "name": "Уоусеон"}, -{"usage": "world", "name": "Уоусоки"}, -{"usage": "world", "name": "Уочаприг"}, -{"usage": "world", "name": "Уошберн"}, -{"usage": "world", "name": "Уошинг"}, -{"usage": "world", "name": "Уошо"}, -{"usage": "world", "name": "Уошта"}, -{"usage": "world", "name": "Уошугал"}, -{"usage": "world", "name": "Уошула"}, -{"usage": "world", "name": "Уошчукна"}, -{"usage": "world", "name": "Уошэки"}, -{"usage": "world", "name": "Уош"}, -{"usage": "world", "name": "Уоюкон"}, -{"usage": "world", "name": "Упалко"}, -{"usage": "world", "name": "Уппсала"}, -{"usage": "world", "name": "Ураван"}, -{"usage": "world", "name": "Ураган"}, -{"usage": "world", "name": "Урал"}, -{"usage": "world", "name": "Урания"}, -{"usage": "world", "name": "Урбанна"}, -{"usage": "world", "name": "Урбан"}, -{"usage": "world", "name": "Урихс"}, -{"usage": "world", "name": "Урса"}, -{"usage": "world", "name": "Урсина"}, -{"usage": "world", "name": "Уск"}, -{"usage": "world", "name": "Утика"}, -{"usage": "world", "name": "Утопия"}, -{"usage": "world", "name": "Утуадо"}, -{"usage": "world", "name": "Ушер"}, -{"usage": "world", "name": "Уэабло"}, -{"usage": "world", "name": "Уэббер"}, -{"usage": "world", "name": "Уэбб"}, -{"usage": "world", "name": "Уэвахичка"}, -{"usage": "world", "name": "Уэверли"}, -{"usage": "world", "name": "Уэвока"}, -{"usage": "world", "name": "Уэгдал"}, -{"usage": "world", "name": "Уэзерби"}, -{"usage": "world", "name": "Уэзерли"}, -{"usage": "world", "name": "Уэзерсби"}, -{"usage": "world", "name": "Уэзер"}, -{"usage": "world", "name": "Уэипп"}, -{"usage": "world", "name": "Уэйв"}, -{"usage": "world", "name": "Уэйд"}, -{"usage": "world", "name": "Уэйерхаьюзер"}, -{"usage": "world", "name": "Уэйзета"}, -{"usage": "world", "name": "Уэйкан"}, -{"usage": "world", "name": "Уэйкаруса"}, -{"usage": "world", "name": "Уэйка"}, -{"usage": "world", "name": "Уэйкенда"}, -{"usage": "world", "name": "Уэйкини"}, -{"usage": "world", "name": "Уэйкита"}, -{"usage": "world", "name": "Уэйкман"}, -{"usage": "world", "name": "Уэйколоа"}, -{"usage": "world", "name": "Уэйконда"}, -{"usage": "world", "name": "Уэйкпала"}, -{"usage": "world", "name": "Уэйкросс"}, -{"usage": "world", "name": "Уэйк"}, -{"usage": "world", "name": "Уэйли"}, -{"usage": "world", "name": "Уэйлуку"}, -{"usage": "world", "name": "Уэйл"}, -{"usage": "world", "name": "Уэйманало"}, -{"usage": "world", "name": "Уэймея"}, -{"usage": "world", "name": "Уэймсайт"}, -{"usage": "world", "name": "Уэймут"}, -{"usage": "world", "name": "Уэйнока"}, -{"usage": "world", "name": "Уэйнрайт"}, -{"usage": "world", "name": "Уэйн"}, -{"usage": "world", "name": "Уэйовега"}, -{"usage": "world", "name": "Уэйпау"}, -{"usage": "world", "name": "Уэйпио"}, -{"usage": "world", "name": "Уэйтс"}, -{"usage": "world", "name": "Уэйт"}, -{"usage": "world", "name": "Уэйхе"}, -{"usage": "world", "name": "Уэйэли"}, -{"usage": "world", "name": "Уэйэлуа"}, -{"usage": "world", "name": "Уэкива"}, -{"usage": "world", "name": "Уэлби"}, -{"usage": "world", "name": "Уэлда"}, -{"usage": "world", "name": "Уэлдона"}, -{"usage": "world", "name": "Уэлдон"}, -{"usage": "world", "name": "Уэлд"}, -{"usage": "world", "name": "Уэлен"}, -{"usage": "world", "name": "Уэлитка"}, -{"usage": "world", "name": "Уэлком"}, -{"usage": "world", "name": "Уэллер"}, -{"usage": "world", "name": "Уэллинг"}, -{"usage": "world", "name": "Уэлл"}, -{"usage": "world", "name": "Уэлока"}, -{"usage": "world", "name": "Уэлсли"}, -{"usage": "world", "name": "Уэлти"}, -{"usage": "world", "name": "Уэлтон"}, -{"usage": "world", "name": "Уэлш"}, -{"usage": "world", "name": "Уэльс"}, -{"usage": "world", "name": "Уэмпум"}, -{"usage": "world", "name": "Уэнам"}, -{"usage": "world", "name": "Уэнделл"}, -{"usage": "world", "name": "Уэндт"}, -{"usage": "world", "name": "Уэнона"}, -{"usage": "world", "name": "Уэнц"}, -{"usage": "world", "name": "Уэолап"}, -{"usage": "world", "name": "Уэотт"}, -{"usage": "world", "name": "Уэрли"}, -{"usage": "world", "name": "Уэрхэм"}, -{"usage": "world", "name": "Уэр"}, -{"usage": "world", "name": "Уэсилла"}, -{"usage": "world", "name": "Уэскан"}, -{"usage": "world", "name": "Уэслако"}, -{"usage": "world", "name": "Уэсли"}, -{"usage": "world", "name": "Уэстби"}, -{"usage": "world", "name": "Уэствего"}, -{"usage": "world", "name": "Уэствейко"}, -{"usage": "world", "name": "Уэстел"}, -{"usage": "world", "name": "Уэстли"}, -{"usage": "world", "name": "Уэстмор"}, -{"usage": "world", "name": "Уэстоак"}, -{"usage": "world", "name": "Уэстон"}, -{"usage": "world", "name": "Уэстэнд"}, -{"usage": "world", "name": "Уэтампка"}, -{"usage": "world", "name": "Уэтерс"}, -{"usage": "world", "name": "Уэтмор"}, -{"usage": "world", "name": "Уэтог"}, -{"usage": "world", "name": "Уэтонка"}, -{"usage": "world", "name": "Уэтумка"}, -{"usage": "world", "name": "Уэуэантик"}, -{"usage": "world", "name": "Уэуэла"}, -{"usage": "world", "name": "Уэчес"}, -{"usage": "world", "name": "Уэши"}, -{"usage": "world", "name": "Уяк"}, -{"usage": "world", "name": "Фабенс"}, -{"usage": "world", "name": "Фабиус"}, -{"usage": "world", "name": "Фавн"}, -{"usage": "world", "name": "Фаворетта"}, -{"usage": "world", "name": "Фагус"}, -{"usage": "world", "name": "Фадден"}, -{"usage": "world", "name": "Фаддин"}, -{"usage": "world", "name": "Файв"}, -{"usage": "world", "name": "Файербо"}, -{"usage": "world", "name": "Файет"}, -{"usage": "world", "name": "Файн"}, -{"usage": "world", "name": "Файр"}, -{"usage": "world", "name": "Файф"}, -{"usage": "world", "name": "Факлер"}, -{"usage": "world", "name": "Факсон"}, -{"usage": "world", "name": "Фактория"}, -{"usage": "world", "name": "Фаллон"}, -{"usage": "world", "name": "Фалмут"}, -{"usage": "world", "name": "Фальконер"}, -{"usage": "world", "name": "Фалькон"}, -{"usage": "world", "name": "Фальк"}, -{"usage": "world", "name": "Фандон"}, -{"usage": "world", "name": "Фанкли"}, -{"usage": "world", "name": "Фанк"}, -{"usage": "world", "name": "Фаннетт"}, -{"usage": "world", "name": "Фаннин"}, -{"usage": "world", "name": "Фанси"}, -{"usage": "world", "name": "Фанстон"}, -{"usage": "world", "name": "Фантер"}, -{"usage": "world", "name": "Фан"}, -{"usage": "world", "name": "Фарбер"}, -{"usage": "world", "name": "Фарго"}, -{"usage": "world", "name": "Фарж"}, -{"usage": "world", "name": "Фариболт"}, -{"usage": "world", "name": "Фарина"}, -{"usage": "world", "name": "Фарлинг"}, -{"usage": "world", "name": "Фарлин"}, -{"usage": "world", "name": "Фарли"}, -{"usage": "world", "name": "Фарминг"}, -{"usage": "world", "name": "Фарнам"}, -{"usage": "world", "name": "Фарнер"}, -{"usage": "world", "name": "Фарнс"}, -{"usage": "world", "name": "Фарнхем"}, -{"usage": "world", "name": "Фаррагут"}, -{"usage": "world", "name": "Фаррандс"}, -{"usage": "world", "name": "Фаррар"}, -{"usage": "world", "name": "Фаррелл"}, -{"usage": "world", "name": "Фарр"}, -{"usage": "world", "name": "Фарсон"}, -{"usage": "world", "name": "Фартинг"}, -{"usage": "world", "name": "Фаруэлл"}, -{"usage": "world", "name": "Фар"}, -{"usage": "world", "name": "Фасселс"}, -{"usage": "world", "name": "Фатер"}, -{"usage": "world", "name": "Фаук"}, -{"usage": "world", "name": "Фаунт"}, -{"usage": "world", "name": "Фауст"}, -{"usage": "world", "name": "Фахардо"}, -{"usage": "world", "name": "Фашинг"}, -{"usage": "world", "name": "Феба"}, -{"usage": "world", "name": "Федерал"}, -{"usage": "world", "name": "Федора"}, -{"usage": "world", "name": "Фейт"}, -{"usage": "world", "name": "Фелда"}, -{"usage": "world", "name": "Фелида"}, -{"usage": "world", "name": "Фелиз"}, -{"usage": "world", "name": "Феликс"}, -{"usage": "world", "name": "Фелипе"}, -{"usage": "world", "name": "Фелисити"}, -{"usage": "world", "name": "Фелиция"}, -{"usage": "world", "name": "Феллоус"}, -{"usage": "world", "name": "Феллс"}, -{"usage": "world", "name": "Фелпс"}, -{"usage": "world", "name": "Фелсентал"}, -{"usage": "world", "name": "Фелтон"}, -{"usage": "world", "name": "Фелт"}, -{"usage": "world", "name": "Фелч"}, -{"usage": "world", "name": "Фенвик"}, -{"usage": "world", "name": "Фенвуд"}, -{"usage": "world", "name": "Феникс"}, -{"usage": "world", "name": "Феннимор"}, -{"usage": "world", "name": "Фенн"}, -{"usage": "world", "name": "Фенс"}, -{"usage": "world", "name": "Фентон"}, -{"usage": "world", "name": "Фентресс"}, -{"usage": "world", "name": "Феодосия"}, -{"usage": "world", "name": "Фергус"}, -{"usage": "world", "name": "Фергюсон"}, -{"usage": "world", "name": "Фердинанд"}, -{"usage": "world", "name": "Ферис"}, -{"usage": "world", "name": "Ферия"}, -{"usage": "world", "name": "Ферли"}, -{"usage": "world", "name": "Ферма"}, -{"usage": "world", "name": "Фермер"}, -{"usage": "world", "name": "Фермина"}, -{"usage": "world", "name": "Фернальд"}, -{"usage": "world", "name": "Фернандина"}, -{"usage": "world", "name": "Фернандо"}, -{"usage": "world", "name": "Фернан"}, -{"usage": "world", "name": "Фернас"}, -{"usage": "world", "name": "Ферни"}, -{"usage": "world", "name": "Фернли"}, -{"usage": "world", "name": "Ферн"}, -{"usage": "world", "name": "Феррелл"}, -{"usage": "world", "name": "Феррел"}, -{"usage": "world", "name": "Ферридэй"}, -{"usage": "world", "name": "Ферринг"}, -{"usage": "world", "name": "Феррис"}, -{"usage": "world", "name": "Ферри"}, -{"usage": "world", "name": "Феррон"}, -{"usage": "world", "name": "Феррум"}, -{"usage": "world", "name": "Ферсон"}, -{"usage": "world", "name": "Ферст"}, -{"usage": "world", "name": "Фертайл"}, -{"usage": "world", "name": "Фессенден"}, -{"usage": "world", "name": "Фетер"}, -{"usage": "world", "name": "Феттерс"}, -{"usage": "world", "name": "Фея"}, -{"usage": "world", "name": "Фе"}, -{"usage": "world", "name": "Фиделити"}, -{"usage": "world", "name": "Фидель"}, -{"usage": "world", "name": "Филадельфия"}, -{"usage": "world", "name": "Филбрук"}, -{"usage": "world", "name": "Филдинг"}, -{"usage": "world", "name": "Филдон"}, -{"usage": "world", "name": "Филдэйл"}, -{"usage": "world", "name": "Филд"}, -{"usage": "world", "name": "Филер"}, -{"usage": "world", "name": "Филипп"}, -{"usage": "world", "name": "Филлипс"}, -{"usage": "world", "name": "Филли"}, -{"usage": "world", "name": "Филлмор"}, -{"usage": "world", "name": "Филл"}, -{"usage": "world", "name": "Филомат"}, -{"usage": "world", "name": "Фило"}, -{"usage": "world", "name": "Филпот"}, -{"usage": "world", "name": "Фил"}, -{"usage": "world", "name": "Фингал"}, -{"usage": "world", "name": "Фингер"}, -{"usage": "world", "name": "Финдли"}, -{"usage": "world", "name": "Финикия"}, -{"usage": "world", "name": "Финкасл"}, -{"usage": "world", "name": "Финлей"}, -{"usage": "world", "name": "Финли"}, -{"usage": "world", "name": "Финляндия"}, -{"usage": "world", "name": "Финни"}, -{"usage": "world", "name": "Финч"}, -{"usage": "world", "name": "Фиппс"}, -{"usage": "world", "name": "Фиреко"}, -{"usage": "world", "name": "Фирт"}, -{"usage": "world", "name": "Фиск"}, -{"usage": "world", "name": "Фитиан"}, -{"usage": "world", "name": "Фитлер"}, -{"usage": "world", "name": "Фиттс"}, -{"usage": "world", "name": "Фитцхью"}, -{"usage": "world", "name": "Фитч"}, -{"usage": "world", "name": "Фифилд"}, -{"usage": "world", "name": "Фицджеральд"}, -{"usage": "world", "name": "Фишер"}, -{"usage": "world", "name": "Фишинг"}, -{"usage": "world", "name": "Фиш"}, -{"usage": "world", "name": "Флаглер"}, -{"usage": "world", "name": "Флагшток"}, -{"usage": "world", "name": "Флаг"}, -{"usage": "world", "name": "Флад"}, -{"usage": "world", "name": "Флаинг"}, -{"usage": "world", "name": "Флакстон"}, -{"usage": "world", "name": "Фламбо"}, -{"usage": "world", "name": "Фламинго"}, -{"usage": "world", "name": "Фланаган"}, -{"usage": "world", "name": "Фландрия"}, -{"usage": "world", "name": "Фланиган"}, -{"usage": "world", "name": "Флауинг"}, -{"usage": "world", "name": "Флауэлл"}, -{"usage": "world", "name": "Флауэри"}, -{"usage": "world", "name": "Флауэр"}, -{"usage": "world", "name": "Флашер"}, -{"usage": "world", "name": "Флаэрти"}, -{"usage": "world", "name": "Флейк"}, -{"usage": "world", "name": "Флеминг"}, -{"usage": "world", "name": "Фленс"}, -{"usage": "world", "name": "Флетчер"}, -{"usage": "world", "name": "Флинн"}, -{"usage": "world", "name": "Флинт"}, -{"usage": "world", "name": "Флиппен"}, -{"usage": "world", "name": "Флиппин"}, -{"usage": "world", "name": "Флойд"}, -{"usage": "world", "name": "Флой"}, -{"usage": "world", "name": "Флокс"}, -{"usage": "world", "name": "Флок"}, -{"usage": "world", "name": "Фломатон"}, -{"usage": "world", "name": "Фломот"}, -{"usage": "world", "name": "Флом"}, -{"usage": "world", "name": "Флорала"}, -{"usage": "world", "name": "Флора"}, -{"usage": "world", "name": "Флорделл"}, -{"usage": "world", "name": "Флоренция"}, -{"usage": "world", "name": "Флорес"}, -{"usage": "world", "name": "Флориан"}, -{"usage": "world", "name": "Флорида"}, -{"usage": "world", "name": "Флориен"}, -{"usage": "world", "name": "Флорин"}, -{"usage": "world", "name": "Флориссант"}, -{"usage": "world", "name": "Флорис"}, -{"usage": "world", "name": "Флори"}, -{"usage": "world", "name": "Флорхем"}, -{"usage": "world", "name": "Флор"}, -{"usage": "world", "name": "Флоссмур"}, -{"usage": "world", "name": "Флот"}, -{"usage": "world", "name": "Флоувуд"}, -{"usage": "world", "name": "Фло"}, -{"usage": "world", "name": "Флукер"}, -{"usage": "world", "name": "Флушинг"}, -{"usage": "world", "name": "Флэтгап"}, -{"usage": "world", "name": "Флэт"}, -{"usage": "world", "name": "Фогельс"}, -{"usage": "world", "name": "Фойл"}, -{"usage": "world", "name": "Фокс"}, -{"usage": "world", "name": "Фолгер"}, -{"usage": "world", "name": "Фолей"}, -{"usage": "world", "name": "Фолз"}, -{"usage": "world", "name": "Фолкнер"}, -{"usage": "world", "name": "Фолкрофт"}, -{"usage": "world", "name": "Фолк"}, -{"usage": "world", "name": "Фоллансби"}, -{"usage": "world", "name": "Фоллетт"}, -{"usage": "world", "name": "Фоллинг"}, -{"usage": "world", "name": "Фоллис"}, -{"usage": "world", "name": "Фолли"}, -{"usage": "world", "name": "Фоллсинг"}, -{"usage": "world", "name": "Фолл"}, -{"usage": "world", "name": "Фолсом"}, -{"usage": "world", "name": "Фолферриас"}, -{"usage": "world", "name": "Фольмар"}, -{"usage": "world", "name": "Фонда"}, -{"usage": "world", "name": "Фонд"}, -{"usage": "world", "name": "Фонтана"}, -{"usage": "world", "name": "Фонтанель"}, -{"usage": "world", "name": "Фонтан"}, -{"usage": "world", "name": "Фонтейн"}, -{"usage": "world", "name": "Фон"}, -{"usage": "world", "name": "Форада"}, -{"usage": "world", "name": "Форбинг"}, -{"usage": "world", "name": "Форбс"}, -{"usage": "world", "name": "Форган"}, -{"usage": "world", "name": "Фордайс"}, -{"usage": "world", "name": "Фордош"}, -{"usage": "world", "name": "Форд"}, -{"usage": "world", "name": "Форестон"}, -{"usage": "world", "name": "Форест"}, -{"usage": "world", "name": "Форж"}, -{"usage": "world", "name": "Фористелл"}, -{"usage": "world", "name": "Форкед"}, -{"usage": "world", "name": "Форк"}, -{"usage": "world", "name": "Форман"}, -{"usage": "world", "name": "Формоза"}, -{"usage": "world", "name": "Формозу"}, -{"usage": "world", "name": "Форни"}, -{"usage": "world", "name": "Форпо"}, -{"usage": "world", "name": "Форрестон"}, -{"usage": "world", "name": "Форрест"}, -{"usage": "world", "name": "Форсайт"}, -{"usage": "world", "name": "Форсан"}, -{"usage": "world", "name": "Фортескью"}, -{"usage": "world", "name": "Фортин"}, -{"usage": "world", "name": "Форти"}, -{"usage": "world", "name": "Фортуна"}, -{"usage": "world", "name": "Форт"}, -{"usage": "world", "name": "Форч"}, -{"usage": "world", "name": "Фор"}, -{"usage": "world", "name": "Фосетт"}, -{"usage": "world", "name": "Фоссил"}, -{"usage": "world", "name": "Фоссум"}, -{"usage": "world", "name": "Фосс"}, -{"usage": "world", "name": "Фостер"}, -{"usage": "world", "name": "Фостория"}, -{"usage": "world", "name": "Фоулер"}, -{"usage": "world", "name": "Фоулкс"}, -{"usage": "world", "name": "Фоулс"}, -{"usage": "world", "name": "Фрагария"}, -{"usage": "world", "name": "Фрайарс"}, -{"usage": "world", "name": "Фрайдей"}, -{"usage": "world", "name": "Фрай"}, -{"usage": "world", "name": "Фрак"}, -{"usage": "world", "name": "Франкен"}, -{"usage": "world", "name": "Франкес"}, -{"usage": "world", "name": "Франклин"}, -{"usage": "world", "name": "Франкония"}, -{"usage": "world", "name": "Франкфурт"}, -{"usage": "world", "name": "Франциско"}, -{"usage": "world", "name": "Французский"}, -{"usage": "world", "name": "Франческа"}, -{"usage": "world", "name": "Фреденс"}, -{"usage": "world", "name": "Фредерика"}, -{"usage": "world", "name": "Фредерик"}, -{"usage": "world", "name": "Фредония"}, -{"usage": "world", "name": "Фред"}, -{"usage": "world", "name": "Фрейзер"}, -{"usage": "world", "name": "Фрейзис"}, -{"usage": "world", "name": "Френдли"}, -{"usage": "world", "name": "Френдшип"}, -{"usage": "world", "name": "Френд"}, -{"usage": "world", "name": "Френчглен"}, -{"usage": "world", "name": "Френчман"}, -{"usage": "world", "name": "Френье"}, -{"usage": "world", "name": "Фресно"}, -{"usage": "world", "name": "Фреш"}, -{"usage": "world", "name": "Фриан"}, -{"usage": "world", "name": "Фригольд"}, -{"usage": "world", "name": "Фрида"}, -{"usage": "world", "name": "Фридли"}, -{"usage": "world", "name": "Фридом"}, -{"usage": "world", "name": "Фридхем"}, -{"usage": "world", "name": "Фриман"}, -{"usage": "world", "name": "Фримонт"}, -{"usage": "world", "name": "Фрини"}, -{"usage": "world", "name": "Фринк"}, -{"usage": "world", "name": "Фриона"}, -{"usage": "world", "name": "Фрир"}, -{"usage": "world", "name": "Фриско"}, -{"usage": "world", "name": "Фристо"}, -{"usage": "world", "name": "Фрис"}, -{"usage": "world", "name": "Фриц"}, -{"usage": "world", "name": "Фрич"}, -{"usage": "world", "name": "Фрия"}, -{"usage": "world", "name": "Фри"}, -{"usage": "world", "name": "Фрогмор"}, -{"usage": "world", "name": "Фройд"}, -{"usage": "world", "name": "Фрона"}, -{"usage": "world", "name": "Фронтенак"}, -{"usage": "world", "name": "Фронтир"}, -{"usage": "world", "name": "Фронтон"}, -{"usage": "world", "name": "Фронт"}, -{"usage": "world", "name": "Фрост"}, -{"usage": "world", "name": "Фрукт"}, -{"usage": "world", "name": "Фрута"}, -{"usage": "world", "name": "Фрэнк"}, -{"usage": "world", "name": "Фрэнсис"}, -{"usage": "world", "name": "Фрюз"}, -{"usage": "world", "name": "Фрюэн"}, -{"usage": "world", "name": "Фуиг"}, -{"usage": "world", "name": "Фука"}, -{"usage": "world", "name": "Фуквэй"}, -{"usage": "world", "name": "Фулкс"}, -{"usage": "world", "name": "Фуллер"}, -{"usage": "world", "name": "Фултонхем"}, -{"usage": "world", "name": "Фултон"}, -{"usage": "world", "name": "Фултс"}, -{"usage": "world", "name": "Фулшир"}, -{"usage": "world", "name": "Фульда"}, -{"usage": "world", "name": "Фуньяк"}, -{"usage": "world", "name": "Фурман"}, -{"usage": "world", "name": "Фурнитур"}, -{"usage": "world", "name": "Фус"}, -{"usage": "world", "name": "Футхилл"}, -{"usage": "world", "name": "Фут"}, -{"usage": "world", "name": "Фьерро"}, -{"usage": "world", "name": "Фэйсон"}, -{"usage": "world", "name": "Фэррис"}, -{"usage": "world", "name": "Фэр"}, -{"usage": "world", "name": "Хаабстедт"}, -{"usage": "world", "name": "Хаайра"}, -{"usage": "world", "name": "Хаапподж"}, -{"usage": "world", "name": "Хаас"}, -{"usage": "world", "name": "Хаббард"}, -{"usage": "world", "name": "Хаббел"}, -{"usage": "world", "name": "Хабершам"}, -{"usage": "world", "name": "Хабра"}, -{"usage": "world", "name": "Хавасу"}, -{"usage": "world", "name": "Хавиланд"}, -{"usage": "world", "name": "Хагаман"}, -{"usage": "world", "name": "Хагеман"}, -{"usage": "world", "name": "Хагерман"}, -{"usage": "world", "name": "Хагер"}, -{"usage": "world", "name": "Хагуаль"}, -{"usage": "world", "name": "Хадар"}, -{"usage": "world", "name": "Хаддам"}, -{"usage": "world", "name": "Хадди"}, -{"usage": "world", "name": "Хаддок"}, -{"usage": "world", "name": "Хаддон"}, -{"usage": "world", "name": "Хадж"}, -{"usage": "world", "name": "Хадлок"}, -{"usage": "world", "name": "Хаена"}, -{"usage": "world", "name": "Хазард"}, -{"usage": "world", "name": "Хазел"}, -{"usage": "world", "name": "Хазен"}, -{"usage": "world", "name": "Хазлет"}, -{"usage": "world", "name": "Хазл"}, -{"usage": "world", "name": "Хайавасси"}, -{"usage": "world", "name": "Хайалих"}, -{"usage": "world", "name": "Хайат"}, -{"usage": "world", "name": "Хайбарт"}, -{"usage": "world", "name": "Хайбла"}, -{"usage": "world", "name": "Хайдел"}, -{"usage": "world", "name": "Хайден"}, -{"usage": "world", "name": "Хайдер"}, -{"usage": "world", "name": "Хайдрик"}, -{"usage": "world", "name": "Хайдс"}, -{"usage": "world", "name": "Хайдэуэй"}, -{"usage": "world", "name": "Хайку"}, -{"usage": "world", "name": "Хайленд"}, -{"usage": "world", "name": "Хайле"}, -{"usage": "world", "name": "Хайль"}, -{"usage": "world", "name": "Хайл"}, -{"usage": "world", "name": "Хаймер"}, -{"usage": "world", "name": "Хайнс"}, -{"usage": "world", "name": "Хайполюксо"}, -{"usage": "world", "name": "Хайрам"}, -{"usage": "world", "name": "Хайс"}, -{"usage": "world", "name": "Хайти"}, -{"usage": "world", "name": "Хайтоп"}, -{"usage": "world", "name": "Хайтс"}, -{"usage": "world", "name": "Хайт"}, -{"usage": "world", "name": "Хайуи"}, -{"usage": "world", "name": "Хайянис"}, -{"usage": "world", "name": "Хайятт"}, -{"usage": "world", "name": "Хай"}, -{"usage": "world", "name": "Хакабей"}, -{"usage": "world", "name": "Хакенсак"}, -{"usage": "world", "name": "Хакер"}, -{"usage": "world", "name": "Хакетт"}, -{"usage": "world", "name": "Хакл"}, -{"usage": "world", "name": "Хакни"}, -{"usage": "world", "name": "Хакода"}, -{"usage": "world", "name": "Хаксли"}, -{"usage": "world", "name": "Хакстун"}, -{"usage": "world", "name": "Хакс"}, -{"usage": "world", "name": "Хак"}, -{"usage": "world", "name": "Халава"}, -{"usage": "world", "name": "Халаула"}, -{"usage": "world", "name": "Халбер"}, -{"usage": "world", "name": "Халедон"}, -{"usage": "world", "name": "Халейва"}, -{"usage": "world", "name": "Халибут"}, -{"usage": "world", "name": "Халиимейл"}, -{"usage": "world", "name": "Халлам"}, -{"usage": "world", "name": "Халлан"}, -{"usage": "world", "name": "Халлек"}, -{"usage": "world", "name": "Халлетт"}, -{"usage": "world", "name": "Халлок"}, -{"usage": "world", "name": "Халл"}, -{"usage": "world", "name": "Халма"}, -{"usage": "world", "name": "Халм"}, -{"usage": "world", "name": "Халсит"}, -{"usage": "world", "name": "Халстед"}, -{"usage": "world", "name": "Халфа"}, -{"usage": "world", "name": "Халфмун"}, -{"usage": "world", "name": "Халф"}, -{"usage": "world", "name": "Хамарок"}, -{"usage": "world", "name": "Хамбл"}, -{"usage": "world", "name": "Хамден"}, -{"usage": "world", "name": "Хамер"}, -{"usage": "world", "name": "Хамлер"}, -{"usage": "world", "name": "Хаммонд"}, -{"usage": "world", "name": "Хамортон"}, -{"usage": "world", "name": "Хамфри"}, -{"usage": "world", "name": "Ханаан"}, -{"usage": "world", "name": "Ханамаулу"}, -{"usage": "world", "name": "Ханапепе"}, -{"usage": "world", "name": "Ханахан"}, -{"usage": "world", "name": "Хана"}, -{"usage": "world", "name": "Хангер"}, -{"usage": "world", "name": "Хангинг"}, -{"usage": "world", "name": "Хангри"}, -{"usage": "world", "name": "Хандред"}, -{"usage": "world", "name": "Хандшо"}, -{"usage": "world", "name": "Ханис"}, -{"usage": "world", "name": "Ханкамер"}, -{"usage": "world", "name": "Ханнава"}, -{"usage": "world", "name": "Ханнас"}, -{"usage": "world", "name": "Ханна"}, -{"usage": "world", "name": "Ханнеуэлл"}, -{"usage": "world", "name": "Ханнок"}, -{"usage": "world", "name": "Ханселл"}, -{"usage": "world", "name": "Хансен"}, -{"usage": "world", "name": "Ханска"}, -{"usage": "world", "name": "Ханс"}, -{"usage": "world", "name": "Хантер"}, -{"usage": "world", "name": "Хантинг"}, -{"usage": "world", "name": "Хантли"}, -{"usage": "world", "name": "Хантун"}, -{"usage": "world", "name": "Хант"}, -{"usage": "world", "name": "Хан"}, -{"usage": "world", "name": "Хап"}, -{"usage": "world", "name": "Харалсон"}, -{"usage": "world", "name": "Харахан"}, -{"usage": "world", "name": "Хара"}, -{"usage": "world", "name": "Харберт"}, -{"usage": "world", "name": "Харбин"}, -{"usage": "world", "name": "Харбисон"}, -{"usage": "world", "name": "Харбор"}, -{"usage": "world", "name": "Харвел"}, -{"usage": "world", "name": "Харвест"}, -{"usage": "world", "name": "Харвис"}, -{"usage": "world", "name": "Харвич"}, -{"usage": "world", "name": "Харви"}, -{"usage": "world", "name": "Харвюлл"}, -{"usage": "world", "name": "Харвик"}, -{"usage": "world", "name": "Хардвей"}, -{"usage": "world", "name": "Хардвик"}, -{"usage": "world", "name": "Хардести"}, -{"usage": "world", "name": "Харджилл"}, -{"usage": "world", "name": "Харджис"}, -{"usage": "world", "name": "Хардинг"}, -{"usage": "world", "name": "Хардин"}, -{"usage": "world", "name": "Харди"}, -{"usage": "world", "name": "Хардман"}, -{"usage": "world", "name": "Хардтнер"}, -{"usage": "world", "name": "Харитон"}, -{"usage": "world", "name": "Харкер"}, -{"usage": "world", "name": "Харки"}, -{"usage": "world", "name": "Харкорт"}, -{"usage": "world", "name": "Харлан"}, -{"usage": "world", "name": "Харлинген"}, -{"usage": "world", "name": "Харли"}, -{"usage": "world", "name": "Харлоу"}, -{"usage": "world", "name": "Харл"}, -{"usage": "world", "name": "Харман"}, -{"usage": "world", "name": "Хармар"}, -{"usage": "world", "name": "Хармон"}, -{"usage": "world", "name": "Харпер"}, -{"usage": "world", "name": "Харпстер"}, -{"usage": "world", "name": "Харп"}, -{"usage": "world", "name": "Харра"}, -{"usage": "world", "name": "Харреллс"}, -{"usage": "world", "name": "Харриетс"}, -{"usage": "world", "name": "Харриетта"}, -{"usage": "world", "name": "Харриет"}, -{"usage": "world", "name": "Харриман"}, -{"usage": "world", "name": "Харрисон"}, -{"usage": "world", "name": "Харрис"}, -{"usage": "world", "name": "Харрогит"}, -{"usage": "world", "name": "Харрод"}, -{"usage": "world", "name": "Харролд"}, -{"usage": "world", "name": "Хартвелл"}, -{"usage": "world", "name": "Хартвик"}, -{"usage": "world", "name": "Хартинг"}, -{"usage": "world", "name": "Хартлайн"}, -{"usage": "world", "name": "Хартленд"}, -{"usage": "world", "name": "Хартли"}, -{"usage": "world", "name": "Хартман"}, -{"usage": "world", "name": "Хартсель"}, -{"usage": "world", "name": "Хартсел"}, -{"usage": "world", "name": "Хартшорн"}, -{"usage": "world", "name": "Харт"}, -{"usage": "world", "name": "Харфф"}, -{"usage": "world", "name": "Харшо"}, -{"usage": "world", "name": "Хар"}, -{"usage": "world", "name": "Хасбрук"}, -{"usage": "world", "name": "Хасинто"}, -{"usage": "world", "name": "Хаскелл"}, -{"usage": "world", "name": "Хаскер"}, -{"usage": "world", "name": "Хаскинс"}, -{"usage": "world", "name": "Хаслетт"}, -{"usage": "world", "name": "Хаслет"}, -{"usage": "world", "name": "Хаслия"}, -{"usage": "world", "name": "Хассель"}, -{"usage": "world", "name": "Хассер"}, -{"usage": "world", "name": "Хассетт"}, -{"usage": "world", "name": "Хассман"}, -{"usage": "world", "name": "Хассон"}, -{"usage": "world", "name": "Хасс"}, -{"usage": "world", "name": "Хастис"}, -{"usage": "world", "name": "Хасти"}, -{"usage": "world", "name": "Хастлер"}, -{"usage": "world", "name": "Хасуэлл"}, -{"usage": "world", "name": "Хатауэй"}, -{"usage": "world", "name": "Хаттен"}, -{"usage": "world", "name": "Хаттерас"}, -{"usage": "world", "name": "Хаттиг"}, -{"usage": "world", "name": "Хаттисберг"}, -{"usage": "world", "name": "Хаттон"}, -{"usage": "world", "name": "Хатто"}, -{"usage": "world", "name": "Хатчел"}, -{"usage": "world", "name": "Хатчинс"}, -{"usage": "world", "name": "Хатчин"}, -{"usage": "world", "name": "Хатч"}, -{"usage": "world", "name": "Хауган"}, -{"usage": "world", "name": "Хауген"}, -{"usage": "world", "name": "Хаузер"}, -{"usage": "world", "name": "Хауз"}, -{"usage": "world", "name": "Хауисон"}, -{"usage": "world", "name": "Хаука"}, -{"usage": "world", "name": "Хаулка"}, -{"usage": "world", "name": "Хаустония"}, -{"usage": "world", "name": "Хаут"}, -{"usage": "world", "name": "Хауула"}, -{"usage": "world", "name": "Хауэлл"}, -{"usage": "world", "name": "Хау"}, -{"usage": "world", "name": "Хаффман"}, -{"usage": "world", "name": "Хачита"}, -{"usage": "world", "name": "Хач"}, -{"usage": "world", "name": "Хашпуккена"}, -{"usage": "world", "name": "Хаюйя"}, -{"usage": "world", "name": "Хебард"}, -{"usage": "world", "name": "Хеббардс"}, -{"usage": "world", "name": "Хебброн"}, -{"usage": "world", "name": "Хебб"}, -{"usage": "world", "name": "Хебер"}, -{"usage": "world", "name": "Хебо"}, -{"usage": "world", "name": "Хевелтон"}, -{"usage": "world", "name": "Хевенер"}, -{"usage": "world", "name": "Хеврон"}, -{"usage": "world", "name": "Хеглар"}, -{"usage": "world", "name": "Хедвиг"}, -{"usage": "world", "name": "Хеджес"}, -{"usage": "world", "name": "Хедли"}, -{"usage": "world", "name": "Хедрик"}, -{"usage": "world", "name": "Хед"}, -{"usage": "world", "name": "Хеия"}, -{"usage": "world", "name": "Хейберн"}, -{"usage": "world", "name": "Хейвер"}, -{"usage": "world", "name": "Хейворд"}, -{"usage": "world", "name": "Хейг"}, -{"usage": "world", "name": "Хейзер"}, -{"usage": "world", "name": "Хейкок"}, -{"usage": "world", "name": "Хейлер"}, -{"usage": "world", "name": "Хейли"}, -{"usage": "world", "name": "Хейлоу"}, -{"usage": "world", "name": "Хейл"}, -{"usage": "world", "name": "Хейни"}, -{"usage": "world", "name": "Хейнс"}, -{"usage": "world", "name": "Хейн"}, -{"usage": "world", "name": "Хейс"}, -{"usage": "world", "name": "Хейфорк"}, -{"usage": "world", "name": "Хей"}, -{"usage": "world", "name": "Хекер"}, -{"usage": "world", "name": "Хекст"}, -{"usage": "world", "name": "Хек"}, -{"usage": "world", "name": "Хелен"}, -{"usage": "world", "name": "Хеликс"}, -{"usage": "world", "name": "Хелметта"}, -{"usage": "world", "name": "Хелотс"}, -{"usage": "world", "name": "Хелпер"}, -{"usage": "world", "name": "Хельмер"}, -{"usage": "world", "name": "Хельм"}, -{"usage": "world", "name": "Хемби"}, -{"usage": "world", "name": "Хемет"}, -{"usage": "world", "name": "Хеминг"}, -{"usage": "world", "name": "Хемлок"}, -{"usage": "world", "name": "Хемпстед"}, -{"usage": "world", "name": "Хемп"}, -{"usage": "world", "name": "Хем"}, -{"usage": "world", "name": "Хенагар"}, -{"usage": "world", "name": "Хендерсон"}, -{"usage": "world", "name": "Хендли"}, -{"usage": "world", "name": "Хендрикс"}, -{"usage": "world", "name": "Хендрум"}, -{"usage": "world", "name": "Хенефер"}, -{"usage": "world", "name": "Хенли"}, -{"usage": "world", "name": "Хенлопен"}, -{"usage": "world", "name": "Хеннепин"}, -{"usage": "world", "name": "Хеннесси"}, -{"usage": "world", "name": "Хенникер"}, -{"usage": "world", "name": "Хеннинг"}, -{"usage": "world", "name": "Хенрик"}, -{"usage": "world", "name": "Хенри"}, -{"usage": "world", "name": "Хенслер"}, -{"usage": "world", "name": "Хеншо"}, -{"usage": "world", "name": "Хепберн"}, -{"usage": "world", "name": "Хеплер"}, -{"usage": "world", "name": "Хеппнер"}, -{"usage": "world", "name": "Хербстер"}, -{"usage": "world", "name": "Хердл"}, -{"usage": "world", "name": "Херд"}, -{"usage": "world", "name": "Херендин"}, -{"usage": "world", "name": "Херзман"}, -{"usage": "world", "name": "Херитедж"}, -{"usage": "world", "name": "Херкимер"}, -{"usage": "world", "name": "Херлок"}, -{"usage": "world", "name": "Хермини"}, -{"usage": "world", "name": "Хермис"}, -{"usage": "world", "name": "Хермитедж"}, -{"usage": "world", "name": "Хермли"}, -{"usage": "world", "name": "Хермоза"}, -{"usage": "world", "name": "Хермон"}, -{"usage": "world", "name": "Херндон"}, -{"usage": "world", "name": "Херншо"}, -{"usage": "world", "name": "Херн"}, -{"usage": "world", "name": "Херон"}, -{"usage": "world", "name": "Херо"}, -{"usage": "world", "name": "Херрейд"}, -{"usage": "world", "name": "Херриман"}, -{"usage": "world", "name": "Херринг"}, -{"usage": "world", "name": "Херси"}, -{"usage": "world", "name": "Херстборн"}, -{"usage": "world", "name": "Херст"}, -{"usage": "world", "name": "Хертел"}, -{"usage": "world", "name": "Херти"}, -{"usage": "world", "name": "Херт"}, -{"usage": "world", "name": "Хершер"}, -{"usage": "world", "name": "Херши"}, -{"usage": "world", "name": "Хер"}, -{"usage": "world", "name": "Хеслер"}, -{"usage": "world", "name": "Хесперия"}, -{"usage": "world", "name": "Хесперус"}, -{"usage": "world", "name": "Хеттик"}, -{"usage": "world", "name": "Хеттингер"}, -{"usage": "world", "name": "Хет"}, -{"usage": "world", "name": "Хефзиба"}, -{"usage": "world", "name": "Хефлин"}, -{"usage": "world", "name": "Хиббард"}, -{"usage": "world", "name": "Хиббинг"}, -{"usage": "world", "name": "Хиберния"}, -{"usage": "world", "name": "Хиванни"}, -{"usage": "world", "name": "Хивасси"}, -{"usage": "world", "name": "Хивасс"}, -{"usage": "world", "name": "Хигби"}, -{"usage": "world", "name": "Хигганум"}, -{"usage": "world", "name": "Хиггин"}, -{"usage": "world", "name": "Хиггс"}, -{"usage": "world", "name": "Хигли"}, -{"usage": "world", "name": "Хида"}, -{"usage": "world", "name": "Хидденит"}, -{"usage": "world", "name": "Хидден"}, -{"usage": "world", "name": "Хикман"}, -{"usage": "world", "name": "Хикокс"}, -{"usage": "world", "name": "Хикок"}, -{"usage": "world", "name": "Хико"}, -{"usage": "world", "name": "Хиксон"}, -{"usage": "world", "name": "Хикстон"}, -{"usage": "world", "name": "Хикс"}, -{"usage": "world", "name": "Хилгард"}, -{"usage": "world", "name": "Хилдебран"}, -{"usage": "world", "name": "Хилдрет"}, -{"usage": "world", "name": "Хилд"}, -{"usage": "world", "name": "Хиленд"}, -{"usage": "world", "name": "Хилинг"}, -{"usage": "world", "name": "Хили"}, -{"usage": "world", "name": "Хиллер"}, -{"usage": "world", "name": "Хиллиард"}, -{"usage": "world", "name": "Хиллистер"}, -{"usage": "world", "name": "Хиллман"}, -{"usage": "world", "name": "Хиллс"}, -{"usage": "world", "name": "Хиллтоп"}, -{"usage": "world", "name": "Хилмар"}, -{"usage": "world", "name": "Хило"}, -{"usage": "world", "name": "Хилс"}, -{"usage": "world", "name": "Хилти"}, -{"usage": "world", "name": "Хилтония"}, -{"usage": "world", "name": "Хилтон"}, -{"usage": "world", "name": "Хилт"}, -{"usage": "world", "name": "Хилшир"}, -{"usage": "world", "name": "Хильгер"}, -{"usage": "world", "name": "Хильда"}, -{"usage": "world", "name": "Хильден"}, -{"usage": "world", "name": "Хильдэйл"}, -{"usage": "world", "name": "Химера"}, -{"usage": "world", "name": "Химес"}, -{"usage": "world", "name": "Хингем"}, -{"usage": "world", "name": "Хиндман"}, -{"usage": "world", "name": "Хиндс"}, -{"usage": "world", "name": "Хинкли"}, -{"usage": "world", "name": "Хинсон"}, -{"usage": "world", "name": "Хинс"}, -{"usage": "world", "name": "Хинтон"}, -{"usage": "world", "name": "Хинч"}, -{"usage": "world", "name": "Хирам"}, -{"usage": "world", "name": "Хитон"}, -{"usage": "world", "name": "Хиттердал"}, -{"usage": "world", "name": "Хитчинс"}, -{"usage": "world", "name": "Хитч"}, -{"usage": "world", "name": "Хитшманн"}, -{"usage": "world", "name": "Хит"}, -{"usage": "world", "name": "Хиф"}, -{"usage": "world", "name": "Хичита"}, -{"usage": "world", "name": "Хичкок"}, -{"usage": "world", "name": "Хлопок"}, -{"usage": "world", "name": "Хлорид"}, -{"usage": "world", "name": "Хоаг"}, -{"usage": "world", "name": "Хоадли"}, -{"usage": "world", "name": "Хоакин"}, -{"usage": "world", "name": "Хобакен"}, -{"usage": "world", "name": "Хобан"}, -{"usage": "world", "name": "Хобарт"}, -{"usage": "world", "name": "Хоббс"}, -{"usage": "world", "name": "Хобгуд"}, -{"usage": "world", "name": "Хоберг"}, -{"usage": "world", "name": "Хобокен"}, -{"usage": "world", "name": "Хобос"}, -{"usage": "world", "name": "Хобсон"}, -{"usage": "world", "name": "Ховардвик"}, -{"usage": "world", "name": "Ховен"}, -{"usage": "world", "name": "Ховленд"}, -{"usage": "world", "name": "Хоганс"}, -{"usage": "world", "name": "Хогатза"}, -{"usage": "world", "name": "Хог"}, -{"usage": "world", "name": "Ходжен"}, -{"usage": "world", "name": "Ходжкинс"}, -{"usage": "world", "name": "Ходж"}, -{"usage": "world", "name": "Ходунки"}, -{"usage": "world", "name": "Хоик"}, -{"usage": "world", "name": "Хойлтон"}, -{"usage": "world", "name": "Хойсинг"}, -{"usage": "world", "name": "Хойт"}, -{"usage": "world", "name": "Хокай"}, -{"usage": "world", "name": "Хока"}, -{"usage": "world", "name": "Хокендоква"}, -{"usage": "world", "name": "Хокессин"}, -{"usage": "world", "name": "Хокиам"}, -{"usage": "world", "name": "Хокинс"}, -{"usage": "world", "name": "Хокли"}, -{"usage": "world", "name": "Хокси"}, -{"usage": "world", "name": "Хокс"}, -{"usage": "world", "name": "Хок"}, -{"usage": "world", "name": "Холаберд"}, -{"usage": "world", "name": "Холбрук"}, -{"usage": "world", "name": "Холгейт"}, -{"usage": "world", "name": "Холдейн"}, -{"usage": "world", "name": "Холдеман"}, -{"usage": "world", "name": "Холден"}, -{"usage": "world", "name": "Холдер"}, -{"usage": "world", "name": "Холдинг"}, -{"usage": "world", "name": "Холдредж"}, -{"usage": "world", "name": "Холидэй"}, -{"usage": "world", "name": "Холикачук"}, -{"usage": "world", "name": "Холируд"}, -{"usage": "world", "name": "Холи"}, -{"usage": "world", "name": "Холкат"}, -{"usage": "world", "name": "Холкомб"}, -{"usage": "world", "name": "Холладей"}, -{"usage": "world", "name": "Холлан"}, -{"usage": "world", "name": "Холлен"}, -{"usage": "world", "name": "Холлидей"}, -{"usage": "world", "name": "Холлинс"}, -{"usage": "world", "name": "Холлистер"}, -{"usage": "world", "name": "Холлис"}, -{"usage": "world", "name": "Холли"}, -{"usage": "world", "name": "Холлоуэй"}, -{"usage": "world", "name": "Холлоу"}, -{"usage": "world", "name": "Холл"}, -{"usage": "world", "name": "Холман"}, -{"usage": "world", "name": "Холмдел"}, -{"usage": "world", "name": "Холмс"}, -{"usage": "world", "name": "Холм"}, -{"usage": "world", "name": "Холопо"}, -{"usage": "world", "name": "Холстад"}, -{"usage": "world", "name": "Холтон"}, -{"usage": "world", "name": "Холт"}, -{"usage": "world", "name": "Холуалоа"}, -{"usage": "world", "name": "Хольок"}, -{"usage": "world", "name": "Хомакр"}, -{"usage": "world", "name": "Хома"}, -{"usage": "world", "name": "Хомини"}, -{"usage": "world", "name": "Хомкрофт"}, -{"usage": "world", "name": "Хомленд"}, -{"usage": "world", "name": "Хомме"}, -{"usage": "world", "name": "Хомосасса"}, -{"usage": "world", "name": "Хомстед"}, -{"usage": "world", "name": "Хонайдью"}, -{"usage": "world", "name": "Хонакер"}, -{"usage": "world", "name": "Хонало"}, -{"usage": "world", "name": "Хонда"}, -{"usage": "world", "name": "Хондо"}, -{"usage": "world", "name": "Хонес"}, -{"usage": "world", "name": "Хонея"}, -{"usage": "world", "name": "Хони"}, -{"usage": "world", "name": "Хонкат"}, -{"usage": "world", "name": "Хоноай"}, -{"usage": "world", "name": "Хонобия"}, -{"usage": "world", "name": "Хонокауа"}, -{"usage": "world", "name": "Хонок"}, -{"usage": "world", "name": "Хоному"}, -{"usage": "world", "name": "Хонуапо"}, -{"usage": "world", "name": "Хон"}, -{"usage": "world", "name": "Хопатконг"}, -{"usage": "world", "name": "Хопкин"}, -{"usage": "world", "name": "Хопленд"}, -{"usage": "world", "name": "Хопфул"}, -{"usage": "world", "name": "Хоп"}, -{"usage": "world", "name": "Хорас"}, -{"usage": "world", "name": "Хорд"}, -{"usage": "world", "name": "Хореб"}, -{"usage": "world", "name": "Хорикон"}, -{"usage": "world", "name": "Хорин"}, -{"usage": "world", "name": "Хорнелл"}, -{"usage": "world", "name": "Хорнерс"}, -{"usage": "world", "name": "Хорник"}, -{"usage": "world", "name": "Хорнитос"}, -{"usage": "world", "name": "Хорнсби"}, -{"usage": "world", "name": "Хорн"}, -{"usage": "world", "name": "Хоррел"}, -{"usage": "world", "name": "Хорсшу"}, -{"usage": "world", "name": "Хорс"}, -{"usage": "world", "name": "Хортон"}, -{"usage": "world", "name": "Хосе"}, -{"usage": "world", "name": "Хоскинс"}, -{"usage": "world", "name": "Хосмер"}, -{"usage": "world", "name": "Хосперс"}, -{"usage": "world", "name": "Хосстон"}, -{"usage": "world", "name": "Хосфорд"}, -{"usage": "world", "name": "Хос"}, -{"usage": "world", "name": "Хотевилла"}, -{"usage": "world", "name": "Хотон"}, -{"usage": "world", "name": "Хоторн"}, -{"usage": "world", "name": "Хотчкисс"}, -{"usage": "world", "name": "Хот"}, -{"usage": "world", "name": "Хоуб"}, -{"usage": "world", "name": "Хоув"}, -{"usage": "world", "name": "Хоултон"}, -{"usage": "world", "name": "Хоулэнд"}, -{"usage": "world", "name": "Хоул"}, -{"usage": "world", "name": "Хоума"}, -{"usage": "world", "name": "Хоумс"}, -{"usage": "world", "name": "Хоум"}, -{"usage": "world", "name": "Хоупвелл"}, -{"usage": "world", "name": "Хоуп"}, -{"usage": "world", "name": "Хоус"}, -{"usage": "world", "name": "Хоффман"}, -{"usage": "world", "name": "Хохгайм"}, -{"usage": "world", "name": "Хоштон"}, -{"usage": "world", "name": "Хоэнвальд"}, -{"usage": "world", "name": "Хо"}, -{"usage": "world", "name": "Хромо"}, -{"usage": "world", "name": "Хуана"}, -{"usage": "world", "name": "Хуанита"}, -{"usage": "world", "name": "Хуан"}, -{"usage": "world", "name": "Хуачука"}, -{"usage": "world", "name": "Хубер"}, -{"usage": "world", "name": "Хувен"}, -{"usage": "world", "name": "Хувер"}, -{"usage": "world", "name": "Худ"}, -{"usage": "world", "name": "Хузум"}, -{"usage": "world", "name": "Хукер"}, -{"usage": "world", "name": "Хуксетт"}, -{"usage": "world", "name": "Хук"}, -{"usage": "world", "name": "Хула"}, -{"usage": "world", "name": "Хулберт"}, -{"usage": "world", "name": "Хулехуа"}, -{"usage": "world", "name": "Хумакао"}, -{"usage": "world", "name": "Хуммельс"}, -{"usage": "world", "name": "Хумонт"}, -{"usage": "world", "name": "Хумс"}, -{"usage": "world", "name": "Хуна"}, -{"usage": "world", "name": "Хункаль"}, -{"usage": "world", "name": "Хункос"}, -{"usage": "world", "name": "Хунта"}, -{"usage": "world", "name": "Хупа"}, -{"usage": "world", "name": "Хупер"}, -{"usage": "world", "name": "Хупес"}, -{"usage": "world", "name": "Хупл"}, -{"usage": "world", "name": "Хусатоник"}, -{"usage": "world", "name": "Хусик"}, -{"usage": "world", "name": "Хусон"}, -{"usage": "world", "name": "Хутсон"}, -{"usage": "world", "name": "Хут"}, -{"usage": "world", "name": "Хуц"}, -{"usage": "world", "name": "Хьюго"}, -{"usage": "world", "name": "Хьюз"}, -{"usage": "world", "name": "Хьюинс"}, -{"usage": "world", "name": "Хьюитт"}, -{"usage": "world", "name": "Хьюи"}, -{"usage": "world", "name": "Хьюлетт"}, -{"usage": "world", "name": "Хьюманс"}, -{"usage": "world", "name": "Хьюнеми"}, -{"usage": "world", "name": "Хьюстон"}, -{"usage": "world", "name": "Хью"}, -{"usage": "world", "name": "Хэвлок"}, -{"usage": "world", "name": "Хэдли"}, -{"usage": "world", "name": "Хэд"}, -{"usage": "world", "name": "Хэй"}, -{"usage": "world", "name": "Хэллоуэлл"}, -{"usage": "world", "name": "Хэлси"}, -{"usage": "world", "name": "Хэмилл"}, -{"usage": "world", "name": "Хэмлин"}, -{"usage": "world", "name": "Хэммет"}, -{"usage": "world", "name": "Хэммон"}, -{"usage": "world", "name": "Хэмпден"}, -{"usage": "world", "name": "Хэмпстед"}, -{"usage": "world", "name": "Хэмптон"}, -{"usage": "world", "name": "Хэмпшир"}, -{"usage": "world", "name": "Хэндли"}, -{"usage": "world", "name": "Хэнкин"}, -{"usage": "world", "name": "Хэнкок"}, -{"usage": "world", "name": "Хэнкс"}, -{"usage": "world", "name": "Хэнли"}, -{"usage": "world", "name": "Хэнлон"}, -{"usage": "world", "name": "Хэнсон"}, -{"usage": "world", "name": "Хэнс"}, -{"usage": "world", "name": "Хэппи"}, -{"usage": "world", "name": "Хэрринг"}, -{"usage": "world", "name": "Хэтли"}, -{"usage": "world", "name": "Хэт"}, -{"usage": "world", "name": "Хэш"}, -{"usage": "world", "name": "Хяк"}, -{"usage": "world", "name": "Хёрли"}, -{"usage": "world", "name": "Хёрт"}, -{"usage": "world", "name": "Цвингли"}, -{"usage": "world", "name": "Цейлон"}, -{"usage": "world", "name": "Целль"}, -{"usage": "world", "name": "Цемент"}, -{"usage": "world", "name": "Центенари"}, -{"usage": "world", "name": "Центерич"}, -{"usage": "world", "name": "Централия"}, -{"usage": "world", "name": "Централь"}, -{"usage": "world", "name": "Центрополис"}, -{"usage": "world", "name": "Центро"}, -{"usage": "world", "name": "Центр"}, -{"usage": "world", "name": "Центурия"}, -{"usage": "world", "name": "Центури"}, -{"usage": "world", "name": "Цилиндр"}, -{"usage": "world", "name": "Цилла"}, -{"usage": "world", "name": "Цилуоки"}, -{"usage": "world", "name": "Циммерман"}, -{"usage": "world", "name": "Цинк"}, -{"usage": "world", "name": "Цинтрон"}, -{"usage": "world", "name": "Цинциннати"}, -{"usage": "world", "name": "Цинциннат"}, -{"usage": "world", "name": "Цистерна"}, -{"usage": "world", "name": "Цитрус"}, -{"usage": "world", "name": "Цюрих"}, -{"usage": "world", "name": "Чавес"}, -{"usage": "world", "name": "Чавис"}, -{"usage": "world", "name": "Чагрин"}, -{"usage": "world", "name": "Чадборн"}, -{"usage": "world", "name": "Чаддс"}, -{"usage": "world", "name": "Чази"}, -{"usage": "world", "name": "Чайлдерс"}, -{"usage": "world", "name": "Чайлдс"}, -{"usage": "world", "name": "Чайна"}, -{"usage": "world", "name": "Чакбей"}, -{"usage": "world", "name": "Чаксон"}, -{"usage": "world", "name": "Чак"}, -{"usage": "world", "name": "Чалибеейт"}, -{"usage": "world", "name": "Чалкаицик"}, -{"usage": "world", "name": "Чалко"}, -{"usage": "world", "name": "Чаллис"}, -{"usage": "world", "name": "Чалмерс"}, -{"usage": "world", "name": "Чалметт"}, -{"usage": "world", "name": "Чалфант"}, -{"usage": "world", "name": "Чалфонт"}, -{"usage": "world", "name": "Чама"}, -{"usage": "world", "name": "Чамберино"}, -{"usage": "world", "name": "Чамберс"}, -{"usage": "world", "name": "Чамбли"}, -{"usage": "world", "name": "Чамисал"}, -{"usage": "world", "name": "Чамплин"}, -{"usage": "world", "name": "Чамуа"}, -{"usage": "world", "name": "Чана"}, -{"usage": "world", "name": "Чандалар"}, -{"usage": "world", "name": "Чандлер"}, -{"usage": "world", "name": "Чанилют"}, -{"usage": "world", "name": "Чанки"}, -{"usage": "world", "name": "Чаннахон"}, -{"usage": "world", "name": "Чаннел"}, -{"usage": "world", "name": "Чанселлор"}, -{"usage": "world", "name": "Чапарраль"}, -{"usage": "world", "name": "Чапель"}, -{"usage": "world", "name": "Чапин"}, -{"usage": "world", "name": "Чапман"}, -{"usage": "world", "name": "Чаппаква"}, -{"usage": "world", "name": "Чарен"}, -{"usage": "world", "name": "Чаринг"}, -{"usage": "world", "name": "Чарко"}, -{"usage": "world", "name": "Чарлак"}, -{"usage": "world", "name": "Чарло"}, -{"usage": "world", "name": "Чарльз"}, -{"usage": "world", "name": "Чарм"}, -{"usage": "world", "name": "Чартер"}, -{"usage": "world", "name": "Часка"}, -{"usage": "world", "name": "Часли"}, -{"usage": "world", "name": "Чассахоуицка"}, -{"usage": "world", "name": "Частанг"}, -{"usage": "world", "name": "Чатава"}, -{"usage": "world", "name": "Чатаника"}, -{"usage": "world", "name": "Чатем"}, -{"usage": "world", "name": "Чатколет"}, -{"usage": "world", "name": "Чатмосс"}, -{"usage": "world", "name": "Чатом"}, -{"usage": "world", "name": "Чато"}, -{"usage": "world", "name": "Чатсворт"}, -{"usage": "world", "name": "Чаттануга"}, -{"usage": "world", "name": "Чаттарой"}, -{"usage": "world", "name": "Чаттахучи"}, -{"usage": "world", "name": "Чат"}, -{"usage": "world", "name": "Чаудрант"}, -{"usage": "world", "name": "Чаутоква"}, -{"usage": "world", "name": "Чаффи"}, -{"usage": "world", "name": "Чебанс"}, -{"usage": "world", "name": "Чебойган"}, -{"usage": "world", "name": "Чевак"}, -{"usage": "world", "name": "Чеверли"}, -{"usage": "world", "name": "Чеви"}, -{"usage": "world", "name": "Чедвик"}, -{"usage": "world", "name": "Чейз"}, -{"usage": "world", "name": "Чейни"}, -{"usage": "world", "name": "Чейн"}, -{"usage": "world", "name": "Чейрс"}, -{"usage": "world", "name": "Чекота"}, -{"usage": "world", "name": "Челатна"}, -{"usage": "world", "name": "Челатчи"}, -{"usage": "world", "name": "Челлендж"}, -{"usage": "world", "name": "Челмс"}, -{"usage": "world", "name": "Челси"}, -{"usage": "world", "name": "Чельян"}, -{"usage": "world", "name": "Чемберлин"}, -{"usage": "world", "name": "Чембер"}, -{"usage": "world", "name": "Чемпион"}, -{"usage": "world", "name": "Чемулт"}, -{"usage": "world", "name": "Ченанго"}, -{"usage": "world", "name": "Чена"}, -{"usage": "world", "name": "Ченега"}, -{"usage": "world", "name": "Ченеква"}, -{"usage": "world", "name": "Ченнинг"}, -{"usage": "world", "name": "Ченоа"}, -{"usage": "world", "name": "Ченовет"}, -{"usage": "world", "name": "Ченс"}, -{"usage": "world", "name": "Ченхессен"}, -{"usage": "world", "name": "Чердан"}, -{"usage": "world", "name": "Черити"}, -{"usage": "world", "name": "Черитон"}, -{"usage": "world", "name": "Чернофски"}, -{"usage": "world", "name": "Чероки"}, -{"usage": "world", "name": "Черо"}, -{"usage": "world", "name": "Черрито"}, -{"usage": "world", "name": "Черри"}, -{"usage": "world", "name": "Черчилль"}, -{"usage": "world", "name": "Черч"}, -{"usage": "world", "name": "Чесанинг"}, -{"usage": "world", "name": "Чесан"}, -{"usage": "world", "name": "Чесапик"}, -{"usage": "world", "name": "Чесвик"}, -{"usage": "world", "name": "Чесволд"}, -{"usage": "world", "name": "Чесилхерст"}, -{"usage": "world", "name": "Чесо"}, -{"usage": "world", "name": "Честер"}, -{"usage": "world", "name": "Честнат"}, -{"usage": "world", "name": "Чест"}, -{"usage": "world", "name": "Четек"}, -{"usage": "world", "name": "Четопа"}, -{"usage": "world", "name": "Чеуолла"}, -{"usage": "world", "name": "Чеуэла"}, -{"usage": "world", "name": "Чефорнак"}, -{"usage": "world", "name": "Чехалис"}, -{"usage": "world", "name": "Чешир"}, -{"usage": "world", "name": "Чиавули"}, -{"usage": "world", "name": "Чивинг"}, -{"usage": "world", "name": "Чигник"}, -{"usage": "world", "name": "Чидестер"}, -{"usage": "world", "name": "Чикаго"}, -{"usage": "world", "name": "Чикалун"}, -{"usage": "world", "name": "Чикамога"}, -{"usage": "world", "name": "Чикамо"}, -{"usage": "world", "name": "Чикаша"}, -{"usage": "world", "name": "Чикен"}, -{"usage": "world", "name": "Чикопи"}, -{"usage": "world", "name": "Чикора"}, -{"usage": "world", "name": "Чико"}, -{"usage": "world", "name": "Чиктовага"}, -{"usage": "world", "name": "Чилан"}, -{"usage": "world", "name": "Чилес"}, -{"usage": "world", "name": "Чилили"}, -{"usage": "world", "name": "Чили"}, -{"usage": "world", "name": "Чилкут"}, -{"usage": "world", "name": "Чилликот"}, -{"usage": "world", "name": "Чилли"}, -{"usage": "world", "name": "Чилокин"}, -{"usage": "world", "name": "Чило"}, -{"usage": "world", "name": "Чилсон"}, -{"usage": "world", "name": "Чилтон"}, -{"usage": "world", "name": "Чилхауи"}, -{"usage": "world", "name": "Чилчинбито"}, -{"usage": "world", "name": "Чимакум"}, -{"usage": "world", "name": "Чимни"}, -{"usage": "world", "name": "Чиниак"}, -{"usage": "world", "name": "Чинкапин"}, -{"usage": "world", "name": "Чинкотогу"}, -{"usage": "world", "name": "Чино"}, -{"usage": "world", "name": "Чинук"}, -{"usage": "world", "name": "Чипита"}, -{"usage": "world", "name": "Чипли"}, -{"usage": "world", "name": "Чиппева"}, -{"usage": "world", "name": "Чирено"}, -{"usage": "world", "name": "Чир"}, -{"usage": "world", "name": "Чисаго"}, -{"usage": "world", "name": "Чисана"}, -{"usage": "world", "name": "Чисм"}, -{"usage": "world", "name": "Чиспа"}, -{"usage": "world", "name": "Чисточина"}, -{"usage": "world", "name": "Чисхолм"}, -{"usage": "world", "name": "Читина"}, -{"usage": "world", "name": "Читтенанго"}, -{"usage": "world", "name": "Читто"}, -{"usage": "world", "name": "Чит"}, -{"usage": "world", "name": "Чиф"}, -{"usage": "world", "name": "Чиэнь"}, -{"usage": "world", "name": "Човин"}, -{"usage": "world", "name": "Чойс"}, -{"usage": "world", "name": "Чоколоски"}, -{"usage": "world", "name": "Чокоуинити"}, -{"usage": "world", "name": "Чоктоу"}, -{"usage": "world", "name": "Чокто"}, -{"usage": "world", "name": "Чок"}, -{"usage": "world", "name": "Чолам"}, -{"usage": "world", "name": "Чонси"}, -{"usage": "world", "name": "Чоппер"}, -{"usage": "world", "name": "Чоптанк"}, -{"usage": "world", "name": "Чото"}, -{"usage": "world", "name": "Чот"}, -{"usage": "world", "name": "Чоучилла"}, -{"usage": "world", "name": "Чуалар"}, -{"usage": "world", "name": "Чуалатин"}, -{"usage": "world", "name": "Чуатбалек"}, -{"usage": "world", "name": "Чуббак"}, -{"usage": "world", "name": "Чуг"}, -{"usage": "world", "name": "Чуджиак"}, -{"usage": "world", "name": "Чуичу"}, -{"usage": "world", "name": "Чула"}, -{"usage": "world", "name": "Чулуота"}, -{"usage": "world", "name": "Чунчула"}, -{"usage": "world", "name": "Чурубуско"}, -{"usage": "world", "name": "Чуто"}, -{"usage": "world", "name": "Чэппелл"}, -{"usage": "world", "name": "Чэффи"}, -{"usage": "world", "name": "Шаак"}, -{"usage": "world", "name": "Шаббона"}, -{"usage": "world", "name": "Шавани"}, -{"usage": "world", "name": "Шавано"}, -{"usage": "world", "name": "Шаван"}, -{"usage": "world", "name": "Шагелек"}, -{"usage": "world", "name": "Шадуэлл"}, -{"usage": "world", "name": "Шайенн"}, -{"usage": "world", "name": "Шайерс"}, -{"usage": "world", "name": "Шайлер"}, -{"usage": "world", "name": "Шайн"}, -{"usage": "world", "name": "Шакопи"}, -{"usage": "world", "name": "Шалимар"}, -{"usage": "world", "name": "Шаллер"}, -{"usage": "world", "name": "Шаллотт"}, -{"usage": "world", "name": "Шаллоу"}, -{"usage": "world", "name": "Шаллс"}, -{"usage": "world", "name": "Шал"}, -{"usage": "world", "name": "Шамбо"}, -{"usage": "world", "name": "Шамокин"}, -{"usage": "world", "name": "Шампань"}, -{"usage": "world", "name": "Шамплейн"}, -{"usage": "world", "name": "Шамп"}, -{"usage": "world", "name": "Шамрок"}, -{"usage": "world", "name": "Шандон"}, -{"usage": "world", "name": "Шанико"}, -{"usage": "world", "name": "Шантильи"}, -{"usage": "world", "name": "Шанхай"}, -{"usage": "world", "name": "Шардон"}, -{"usage": "world", "name": "Шарк"}, -{"usage": "world", "name": "Шарлевуа"}, -{"usage": "world", "name": "Шарлеруа"}, -{"usage": "world", "name": "Шарлотта"}, -{"usage": "world", "name": "Шарон"}, -{"usage": "world", "name": "Шарпс"}, -{"usage": "world", "name": "Шарп"}, -{"usage": "world", "name": "Шаста"}, -{"usage": "world", "name": "Шатенье"}, -{"usage": "world", "name": "Шаум"}, -{"usage": "world", "name": "Шафер"}, -{"usage": "world", "name": "Шафтер"}, -{"usage": "world", "name": "Шафтс"}, -{"usage": "world", "name": "Шаффер"}, -{"usage": "world", "name": "Шварц"}, -{"usage": "world", "name": "Швицер"}, -{"usage": "world", "name": "Швенкс"}, -{"usage": "world", "name": "Шебойган"}, -{"usage": "world", "name": "Шевиот"}, -{"usage": "world", "name": "Шевлин"}, -{"usage": "world", "name": "Шедд"}, -{"usage": "world", "name": "Шейди"}, -{"usage": "world", "name": "Шейд"}, -{"usage": "world", "name": "Шейкер"}, -{"usage": "world", "name": "Шейктулик"}, -{"usage": "world", "name": "Шелберн"}, -{"usage": "world", "name": "Шелбиана"}, -{"usage": "world", "name": "Шелбина"}, -{"usage": "world", "name": "Шелби"}, -{"usage": "world", "name": "Шелдал"}, -{"usage": "world", "name": "Шелдон"}, -{"usage": "world", "name": "Шелли"}, -{"usage": "world", "name": "Шеллман"}, -{"usage": "world", "name": "Шелл"}, -{"usage": "world", "name": "Шелокта"}, -{"usage": "world", "name": "Шелтер"}, -{"usage": "world", "name": "Шелтон"}, -{"usage": "world", "name": "Шенандоа"}, -{"usage": "world", "name": "Шенеста"}, -{"usage": "world", "name": "Шенли"}, -{"usage": "world", "name": "Шеннон"}, -{"usage": "world", "name": "Шенье"}, -{"usage": "world", "name": "Шепперд"}, -{"usage": "world", "name": "Шептон"}, -{"usage": "world", "name": "Шерак"}, -{"usage": "world", "name": "Шерандо"}, -{"usage": "world", "name": "Шерард"}, -{"usage": "world", "name": "Шерберн"}, -{"usage": "world", "name": "Шерборн"}, -{"usage": "world", "name": "Шервин"}, -{"usage": "world", "name": "Шервуд"}, -{"usage": "world", "name": "Шерер"}, -{"usage": "world", "name": "Шеридан"}, -{"usage": "world", "name": "Шерман"}, -{"usage": "world", "name": "Шеррард"}, -{"usage": "world", "name": "Шеррилл"}, -{"usage": "world", "name": "Шерри"}, -{"usage": "world", "name": "Шерродс"}, -{"usage": "world", "name": "Шерр"}, -{"usage": "world", "name": "Шертц"}, -{"usage": "world", "name": "Шеферд"}, -{"usage": "world", "name": "Шеф"}, -{"usage": "world", "name": "Шешеби"}, -{"usage": "world", "name": "Шиввитс"}, -{"usage": "world", "name": "Шиверс"}, -{"usage": "world", "name": "Шивли"}, -{"usage": "world", "name": "Шидлер"}, -{"usage": "world", "name": "Шикли"}, -{"usage": "world", "name": "Шико"}, -{"usage": "world", "name": "Шик"}, -{"usage": "world", "name": "Шилд"}, -{"usage": "world", "name": "Шиллер"}, -{"usage": "world", "name": "Шиллинг"}, -{"usage": "world", "name": "Шило"}, -{"usage": "world", "name": "Шинглер"}, -{"usage": "world", "name": "Шингл"}, -{"usage": "world", "name": "Шинер"}, -{"usage": "world", "name": "Шиннекок"}, -{"usage": "world", "name": "Шинни"}, -{"usage": "world", "name": "Шиннс"}, -{"usage": "world", "name": "Шинрок"}, -{"usage": "world", "name": "Шиоктон"}, -{"usage": "world", "name": "Шиота"}, -{"usage": "world", "name": "Шиото"}, -{"usage": "world", "name": "Шипио"}, -{"usage": "world", "name": "Шипли"}, -{"usage": "world", "name": "Шиппенс"}, -{"usage": "world", "name": "Шиппинг"}, -{"usage": "world", "name": "Шипрок"}, -{"usage": "world", "name": "Шипшевана"}, -{"usage": "world", "name": "Шип"}, -{"usage": "world", "name": "Ширли"}, -{"usage": "world", "name": "Ширман"}, -{"usage": "world", "name": "Широ"}, -{"usage": "world", "name": "Ширт"}, -{"usage": "world", "name": "Шир"}, -{"usage": "world", "name": "Шиссорс"}, -{"usage": "world", "name": "Шишмарев"}, -{"usage": "world", "name": "Ши"}, -{"usage": "world", "name": "Шкипер"}, -{"usage": "world", "name": "Школе"}, -{"usage": "world", "name": "Шлассер"}, -{"usage": "world", "name": "Шлатер"}, -{"usage": "world", "name": "Шлезвиг"}, -{"usage": "world", "name": "Шли"}, -{"usage": "world", "name": "Шнейдер"}, -{"usage": "world", "name": "Шнекс"}, -{"usage": "world", "name": "Шоап"}, -{"usage": "world", "name": "Шобоньер"}, -{"usage": "world", "name": "Шовел"}, -{"usage": "world", "name": "Шокайо"}, -{"usage": "world", "name": "Шолл"}, -{"usage": "world", "name": "Шолс"}, -{"usage": "world", "name": "Шомон"}, -{"usage": "world", "name": "Шомут"}, -{"usage": "world", "name": "Шонгалу"}, -{"usage": "world", "name": "Шонгопови"}, -{"usage": "world", "name": "Шони"}, -{"usage": "world", "name": "Шонкин"}, -{"usage": "world", "name": "Шонто"}, -{"usage": "world", "name": "Шопен"}, -{"usage": "world", "name": "Шоп"}, -{"usage": "world", "name": "Шоракрс"}, -{"usage": "world", "name": "Шортер"}, -{"usage": "world", "name": "Шорт"}, -{"usage": "world", "name": "Шорхэм"}, -{"usage": "world", "name": "Шор"}, -{"usage": "world", "name": "Шоул"}, -{"usage": "world", "name": "Шоу"}, -{"usage": "world", "name": "Шохан"}, -{"usage": "world", "name": "Шошин"}, -{"usage": "world", "name": "Шошон"}, -{"usage": "world", "name": "Шо"}, -{"usage": "world", "name": "Шраг"}, -{"usage": "world", "name": "Шрам"}, -{"usage": "world", "name": "Шредер"}, -{"usage": "world", "name": "Шривер"}, -{"usage": "world", "name": "Шрив"}, -{"usage": "world", "name": "Шрун"}, -{"usage": "world", "name": "Шрюс"}, -{"usage": "world", "name": "Штегер"}, -{"usage": "world", "name": "Штолле"}, -{"usage": "world", "name": "Штраф"}, -{"usage": "world", "name": "Штутгарт"}, -{"usage": "world", "name": "Шуберт"}, -{"usage": "world", "name": "Шубута"}, -{"usage": "world", "name": "Шугар"}, -{"usage": "world", "name": "Шуи"}, -{"usage": "world", "name": "Шуквалак"}, -{"usage": "world", "name": "Шукс"}, -{"usage": "world", "name": "Шулен"}, -{"usage": "world", "name": "Шулер"}, -{"usage": "world", "name": "Шултер"}, -{"usage": "world", "name": "Шульте"}, -{"usage": "world", "name": "Шульц"}, -{"usage": "world", "name": "Шунгнак"}, -{"usage": "world", "name": "Шурц"}, -{"usage": "world", "name": "Шут"}, -{"usage": "world", "name": "Шучк"}, -{"usage": "world", "name": "Шу"}, -{"usage": "world", "name": "Шэй"}, -{"usage": "world", "name": "Эбби"}, -{"usage": "world", "name": "Эбботт"}, -{"usage": "world", "name": "Эбенизер"}, -{"usage": "world", "name": "Эбенс"}, -{"usage": "world", "name": "Эбро"}, -{"usage": "world", "name": "Эвангелин"}, -{"usage": "world", "name": "Эвант"}, -{"usage": "world", "name": "Эван"}, -{"usage": "world", "name": "Эварт"}, -{"usage": "world", "name": "Эва"}, -{"usage": "world", "name": "Эвелет"}, -{"usage": "world", "name": "Эвелин"}, -{"usage": "world", "name": "Эвен"}, -{"usage": "world", "name": "Эверглейд"}, -{"usage": "world", "name": "Эвергрин"}, -{"usage": "world", "name": "Эверест"}, -{"usage": "world", "name": "Эверетт"}, -{"usage": "world", "name": "Эверли"}, -{"usage": "world", "name": "Эверман"}, -{"usage": "world", "name": "Эверсон"}, -{"usage": "world", "name": "Эвер"}, -{"usage": "world", "name": "Эвинг"}, -{"usage": "world", "name": "Эвкалипт"}, -{"usage": "world", "name": "Эврика"}, -{"usage": "world", "name": "Эвсборо"}, -{"usage": "world", "name": "Эгберт"}, -{"usage": "world", "name": "Эгглс"}, -{"usage": "world", "name": "Эгг"}, -{"usage": "world", "name": "Эге"}, -{"usage": "world", "name": "Эгиджик"}, -{"usage": "world", "name": "Эглон"}, -{"usage": "world", "name": "Эгнар"}, -{"usage": "world", "name": "Эдвард"}, -{"usage": "world", "name": "Эдгард"}, -{"usage": "world", "name": "Эдгар"}, -{"usage": "world", "name": "Эдгейт"}, -{"usage": "world", "name": "Эддинг"}, -{"usage": "world", "name": "Эддис"}, -{"usage": "world", "name": "Эдди"}, -{"usage": "world", "name": "Эдем"}, -{"usage": "world", "name": "Эдес"}, -{"usage": "world", "name": "Эджерли"}, -{"usage": "world", "name": "Эджер"}, -{"usage": "world", "name": "Эджли"}, -{"usage": "world", "name": "Эджмер"}, -{"usage": "world", "name": "Эджмур"}, -{"usage": "world", "name": "Эджуорт"}, -{"usage": "world", "name": "Эдж"}, -{"usage": "world", "name": "Эдина"}, -{"usage": "world", "name": "Эдинбург"}, -{"usage": "world", "name": "Эдин"}, -{"usage": "world", "name": "Эдисон"}, -{"usage": "world", "name": "Эдисто"}, -{"usage": "world", "name": "Эдкауч"}, -{"usage": "world", "name": "Эдлер"}, -{"usage": "world", "name": "Эдмес"}, -{"usage": "world", "name": "Эдмонд"}, -{"usage": "world", "name": "Эдмон"}, -{"usage": "world", "name": "Эдмор"}, -{"usage": "world", "name": "Эдмунд"}, -{"usage": "world", "name": "Эдна"}, -{"usage": "world", "name": "Эдом"}, -{"usage": "world", "name": "Эдон"}, -{"usage": "world", "name": "Эдрой"}, -{"usage": "world", "name": "Эдсон"}, -{"usage": "world", "name": "Эзели"}, -{"usage": "world", "name": "Эзель"}, -{"usage": "world", "name": "Эйбелл"}, -{"usage": "world", "name": "Эйвери"}, -{"usage": "world", "name": "Эйден"}, -{"usage": "world", "name": "Эйзл"}, -{"usage": "world", "name": "Эйкерс"}, -{"usage": "world", "name": "Эйли"}, -{"usage": "world", "name": "Эйлмер"}, -{"usage": "world", "name": "Эймс"}, -{"usage": "world", "name": "Эйнор"}, -{"usage": "world", "name": "Эйнсворт"}, -{"usage": "world", "name": "Эйота"}, -{"usage": "world", "name": "Эйри"}, -{"usage": "world", "name": "Эйршир"}, -{"usage": "world", "name": "Эйси"}, -{"usage": "world", "name": "Эйцен"}, -{"usage": "world", "name": "Экалака"}, -{"usage": "world", "name": "Эквалити"}, -{"usage": "world", "name": "Эквок"}, -{"usage": "world", "name": "Экерман"}, -{"usage": "world", "name": "Эклектик"}, -{"usage": "world", "name": "Экли"}, -{"usage": "world", "name": "Эклс"}, -{"usage": "world", "name": "Экман"}, -{"usage": "world", "name": "Эконом"}, -{"usage": "world", "name": "Эконфина"}, -{"usage": "world", "name": "Экорс"}, -{"usage": "world", "name": "Экор"}, -{"usage": "world", "name": "Экрон"}, -{"usage": "world", "name": "Экру"}, -{"usage": "world", "name": "Экселл"}, -{"usage": "world", "name": "Эксельсиор"}, -{"usage": "world", "name": "Эксель"}, -{"usage": "world", "name": "Эксетер"}, -{"usage": "world", "name": "Эксира"}, -{"usage": "world", "name": "Экслайн"}, -{"usage": "world", "name": "Эксмор"}, -{"usage": "world", "name": "Экспорт"}, -{"usage": "world", "name": "Эксселло"}, -{"usage": "world", "name": "Экстеншн"}, -{"usage": "world", "name": "Экстон"}, -{"usage": "world", "name": "Эксум"}, -{"usage": "world", "name": "Экс"}, -{"usage": "world", "name": "Эктор"}, -{"usage": "world", "name": "Экуорт"}, -{"usage": "world", "name": "Элайл"}, -{"usage": "world", "name": "Эланд"}, -{"usage": "world", "name": "Элберн"}, -{"usage": "world", "name": "Элберон"}, -{"usage": "world", "name": "Элберта"}, -{"usage": "world", "name": "Элберт"}, -{"usage": "world", "name": "Элбер"}, -{"usage": "world", "name": "Элбинг"}, -{"usage": "world", "name": "Элбоу"}, -{"usage": "world", "name": "Элваш"}, -{"usage": "world", "name": "Элвер"}, -{"usage": "world", "name": "Элвин"}, -{"usage": "world", "name": "Элвуд"}, -{"usage": "world", "name": "Элгин"}, -{"usage": "world", "name": "Элдерон"}, -{"usage": "world", "name": "Элдер"}, -{"usage": "world", "name": "Элдон"}, -{"usage": "world", "name": "Элдорендо"}, -{"usage": "world", "name": "Элдред"}, -{"usage": "world", "name": "Элдридж"}, -{"usage": "world", "name": "Элева"}, -{"usage": "world", "name": "Элейн"}, -{"usage": "world", "name": "Электра"}, -{"usage": "world", "name": "Электрик"}, -{"usage": "world", "name": "Элеонора"}, -{"usage": "world", "name": "Элефант"}, -{"usage": "world", "name": "Элиас"}, -{"usage": "world", "name": "Элида"}, -{"usage": "world", "name": "Элизабет"}, -{"usage": "world", "name": "Элиза"}, -{"usage": "world", "name": "Элим"}, -{"usage": "world", "name": "Элиот"}, -{"usage": "world", "name": "Элис"}, -{"usage": "world", "name": "Элиу"}, -{"usage": "world", "name": "Эли"}, -{"usage": "world", "name": "Элкадер"}, -{"usage": "world", "name": "Элкатава"}, -{"usage": "world", "name": "Элкин"}, -{"usage": "world", "name": "Элко"}, -{"usage": "world", "name": "Элкридж"}, -{"usage": "world", "name": "Элкхарт"}, -{"usage": "world", "name": "Элкхорн"}, -{"usage": "world", "name": "Элк"}, -{"usage": "world", "name": "Элламар"}, -{"usage": "world", "name": "Элла"}, -{"usage": "world", "name": "Эллен"}, -{"usage": "world", "name": "Эллерб"}, -{"usage": "world", "name": "Эллеттс"}, -{"usage": "world", "name": "Эллзи"}, -{"usage": "world", "name": "Эллиджей"}, -{"usage": "world", "name": "Элликотт"}, -{"usage": "world", "name": "Эллингер"}, -{"usage": "world", "name": "Эллинг"}, -{"usage": "world", "name": "Эллин"}, -{"usage": "world", "name": "Эллиот"}, -{"usage": "world", "name": "Эллисон"}, -{"usage": "world", "name": "Эллис"}, -{"usage": "world", "name": "Эллори"}, -{"usage": "world", "name": "Эллсворт"}, -{"usage": "world", "name": "Эллсинор"}, -{"usage": "world", "name": "Эллс"}, -{"usage": "world", "name": "Элл"}, -{"usage": "world", "name": "Элнора"}, -{"usage": "world", "name": "Элой"}, -{"usage": "world", "name": "Элон"}, -{"usage": "world", "name": "Элора"}, -{"usage": "world", "name": "Элрод"}, -{"usage": "world", "name": "Элроза"}, -{"usage": "world", "name": "Элрой"}, -{"usage": "world", "name": "Элса"}, -{"usage": "world", "name": "Элси"}, -{"usage": "world", "name": "Элс"}, -{"usage": "world", "name": "Элтон"}, -{"usage": "world", "name": "Элум"}, -{"usage": "world", "name": "Элферс"}, -{"usage": "world", "name": "Элчо"}, -{"usage": "world", "name": "Эльба"}, -{"usage": "world", "name": "Эльдена"}, -{"usage": "world", "name": "Эльдорадо"}, -{"usage": "world", "name": "Эльдора"}, -{"usage": "world", "name": "Эльма"}, -{"usage": "world", "name": "Эльмен"}, -{"usage": "world", "name": "Эльмер"}, -{"usage": "world", "name": "Эльмира"}, -{"usage": "world", "name": "Эльмодель"}, -{"usage": "world", "name": "Эльмонт"}, -{"usage": "world", "name": "Эльмор"}, -{"usage": "world", "name": "Эльмо"}, -{"usage": "world", "name": "Эльм"}, -{"usage": "world", "name": "Эльсинор"}, -{"usage": "world", "name": "Эльсмер"}, -{"usage": "world", "name": "Эльсмор"}, -{"usage": "world", "name": "Эльтопия"}, -{"usage": "world", "name": "Эльфин"}, -{"usage": "world", "name": "Эльфрида"}, -{"usage": "world", "name": "Эмайт"}, -{"usage": "world", "name": "Эмахагуа"}, -{"usage": "world", "name": "Эмбаррасс"}, -{"usage": "world", "name": "Эмберли"}, -{"usage": "world", "name": "Эмблема"}, -{"usage": "world", "name": "Эмбри"}, -{"usage": "world", "name": "Эмброуз"}, -{"usage": "world", "name": "Эмбудо"}, -{"usage": "world", "name": "Эмден"}, -{"usage": "world", "name": "Эмерадо"}, -{"usage": "world", "name": "Эмеральд"}, -{"usage": "world", "name": "Эмери"}, -{"usage": "world", "name": "Эмерсон"}, -{"usage": "world", "name": "Эмигрант"}, -{"usage": "world", "name": "Эмигс"}, -{"usage": "world", "name": "Эмида"}, -{"usage": "world", "name": "Эмили"}, -{"usage": "world", "name": "Эминг"}, -{"usage": "world", "name": "Эминенс"}, -{"usage": "world", "name": "Эми"}, -{"usage": "world", "name": "Эмлен"}, -{"usage": "world", "name": "Эммалан"}, -{"usage": "world", "name": "Эммаус"}, -{"usage": "world", "name": "Эмма"}, -{"usage": "world", "name": "Эмметс"}, -{"usage": "world", "name": "Эмметт"}, -{"usage": "world", "name": "Эммет"}, -{"usage": "world", "name": "Эммитс"}, -{"usage": "world", "name": "Эммонак"}, -{"usage": "world", "name": "Эммонс"}, -{"usage": "world", "name": "Эммортон"}, -{"usage": "world", "name": "Эмпаир"}, -{"usage": "world", "name": "Эмпориум"}, -{"usage": "world", "name": "Эмпория"}, -{"usage": "world", "name": "Эмсворт"}, -{"usage": "world", "name": "Эмхаус"}, -{"usage": "world", "name": "Эна"}, -{"usage": "world", "name": "Энгадин"}, -{"usage": "world", "name": "Энгвин"}, -{"usage": "world", "name": "Энгельхард"}, -{"usage": "world", "name": "Энгл"}, -{"usage": "world", "name": "Энг"}, -{"usage": "world", "name": "Эндейл"}, -{"usage": "world", "name": "Эндерлин"}, -{"usage": "world", "name": "Эндерс"}, -{"usage": "world", "name": "Эндивор"}, -{"usage": "world", "name": "Эндикот"}, -{"usage": "world", "name": "Энди"}, -{"usage": "world", "name": "Эндовер"}, -{"usage": "world", "name": "Эндрю"}, -{"usage": "world", "name": "Эндуэлл"}, -{"usage": "world", "name": "Энд"}, -{"usage": "world", "name": "Эней"}, -{"usage": "world", "name": "Энергия"}, -{"usage": "world", "name": "Энигма"}, -{"usage": "world", "name": "Энид"}, -{"usage": "world", "name": "Энистон"}, -{"usage": "world", "name": "Энкампмент"}, -{"usage": "world", "name": "Энка"}, -{"usage": "world", "name": "Энлоу"}, -{"usage": "world", "name": "Энло"}, -{"usage": "world", "name": "Эннада"}, -{"usage": "world", "name": "Эннинг"}, -{"usage": "world", "name": "Эннис"}, -{"usage": "world", "name": "Энноан"}, -{"usage": "world", "name": "Энн"}, -{"usage": "world", "name": "Энола"}, -{"usage": "world", "name": "Энон"}, -{"usage": "world", "name": "Энори"}, -{"usage": "world", "name": "Энос"}, -{"usage": "world", "name": "Энсайн"}, -{"usage": "world", "name": "Энсиналь"}, -{"usage": "world", "name": "Энсинитас"}, -{"usage": "world", "name": "Энсино"}, -{"usage": "world", "name": "Энсли"}, -{"usage": "world", "name": "Энсон"}, -{"usage": "world", "name": "Энсор"}, -{"usage": "world", "name": "Энтерпрайс"}, -{"usage": "world", "name": "Энтиэт"}, -{"usage": "world", "name": "Энтони"}, -{"usage": "world", "name": "Энумкло"}, -{"usage": "world", "name": "Энфилд"}, -{"usage": "world", "name": "Энхот"}, -{"usage": "world", "name": "Энчант"}, -{"usage": "world", "name": "Эншент"}, -{"usage": "world", "name": "Эн"}, -{"usage": "world", "name": "Эолин"}, -{"usage": "world", "name": "Эолия"}, -{"usage": "world", "name": "Эпворт"}, -{"usage": "world", "name": "Эплис"}, -{"usage": "world", "name": "Эппинг"}, -{"usage": "world", "name": "Эпплби"}, -{"usage": "world", "name": "Эпплволд"}, -{"usage": "world", "name": "Эпплгейт"}, -{"usage": "world", "name": "Эппл"}, -{"usage": "world", "name": "Эпси"}, -{"usage": "world", "name": "Эрат"}, -{"usage": "world", "name": "Эра"}, -{"usage": "world", "name": "Эрбакон"}, -{"usage": "world", "name": "Эрбанк"}, -{"usage": "world", "name": "Эрвин"}, -{"usage": "world", "name": "Эрда"}, -{"usage": "world", "name": "Эренфельд"}, -{"usage": "world", "name": "Эрен"}, -{"usage": "world", "name": "Эриду"}, -{"usage": "world", "name": "Эрик"}, -{"usage": "world", "name": "Эрин"}, -{"usage": "world", "name": "Эри"}, -{"usage": "world", "name": "Эрлангер"}, -{"usage": "world", "name": "Эрландс"}, -{"usage": "world", "name": "Эрлимарт"}, -{"usage": "world", "name": "Эрлинг"}, -{"usage": "world", "name": "Эрли"}, -{"usage": "world", "name": "Эрлхем"}, -{"usage": "world", "name": "Эрл"}, -{"usage": "world", "name": "Эрма"}, -{"usage": "world", "name": "Эрнандес"}, -{"usage": "world", "name": "Эрнандо"}, -{"usage": "world", "name": "Эрнест"}, -{"usage": "world", "name": "Эрнул"}, -{"usage": "world", "name": "Эрос"}, -{"usage": "world", "name": "Эроуз"}, -{"usage": "world", "name": "Эррол"}, -{"usage": "world", "name": "Эрроу"}, -{"usage": "world", "name": "Эрсилдаун"}, -{"usage": "world", "name": "Эрскин"}, -{"usage": "world", "name": "Эрт"}, -{"usage": "world", "name": "Эрхардт"}, -{"usage": "world", "name": "Эрхард"}, -{"usage": "world", "name": "Эр"}, -{"usage": "world", "name": "Эсбон"}, -{"usage": "world", "name": "Эскабоса"}, -{"usage": "world", "name": "Эскаланте"}, -{"usage": "world", "name": "Эскалон"}, -{"usage": "world", "name": "Эсканаба"}, -{"usage": "world", "name": "Эскатопа"}, -{"usage": "world", "name": "Эска"}, -{"usage": "world", "name": "Эскобарес"}, -{"usage": "world", "name": "Эскобас"}, -{"usage": "world", "name": "Эскондида"}, -{"usage": "world", "name": "Эскондидо"}, -{"usage": "world", "name": "Эскота"}, -{"usage": "world", "name": "Эскридж"}, -{"usage": "world", "name": "Эсмонд"}, -{"usage": "world", "name": "Эсмонт"}, -{"usage": "world", "name": "Эсом"}, -{"usage": "world", "name": "Эсофея"}, -{"usage": "world", "name": "Эспаньола"}, -{"usage": "world", "name": "Эспарто"}, -{"usage": "world", "name": "Эсперанза"}, -{"usage": "world", "name": "Эсперанс"}, -{"usage": "world", "name": "Эспино"}, -{"usage": "world", "name": "Эспи"}, -{"usage": "world", "name": "Эссекс"}, -{"usage": "world", "name": "Эссинг"}, -{"usage": "world", "name": "Эстакада"}, -{"usage": "world", "name": "Эстансиа"}, -{"usage": "world", "name": "Эстатула"}, -{"usage": "world", "name": "Эстейтс"}, -{"usage": "world", "name": "Эстеллайн"}, -{"usage": "world", "name": "Эстелл"}, -{"usage": "world", "name": "Эстеро"}, -{"usage": "world", "name": "Эстер"}, -{"usage": "world", "name": "Эсте"}, -{"usage": "world", "name": "Эстилл"}, -{"usage": "world", "name": "Эсто"}, -{"usage": "world", "name": "Эстраль"}, -{"usage": "world", "name": "Эстрелла"}, -{"usage": "world", "name": "Этвуд"}, -{"usage": "world", "name": "Этель"}, -{"usage": "world", "name": "Этет"}, -{"usage": "world", "name": "Этна"}, -{"usage": "world", "name": "Этова"}, -{"usage": "world", "name": "Этра"}, -{"usage": "world", "name": "Этридж"}, -{"usage": "world", "name": "Этта"}, -{"usage": "world", "name": "Эттен"}, -{"usage": "world", "name": "Эттер"}, -{"usage": "world", "name": "Эттлборо"}, -{"usage": "world", "name": "Эттрик"}, -{"usage": "world", "name": "Этуотер"}, -{"usage": "world", "name": "Эудора"}, -{"usage": "world", "name": "Эфес"}, -{"usage": "world", "name": "Эфир"}, -{"usage": "world", "name": "Эфланд"}, -{"usage": "world", "name": "Эфрата"}, -{"usage": "world", "name": "Эфрейм"}, -{"usage": "world", "name": "Эффингэм"}, -{"usage": "world", "name": "Эффинг"}, -{"usage": "world", "name": "Эффи"}, -{"usage": "world", "name": "Эхо"}, -{"usage": "world", "name": "Эчета"}, -{"usage": "world", "name": "Эшби"}, -{"usage": "world", "name": "Эшбёрн"}, -{"usage": "world", "name": "Эшвиль"}, -{"usage": "world", "name": "Эшли"}, -{"usage": "world", "name": "Эшмор"}, -{"usage": "world", "name": "Эшпорт"}, -{"usage": "world", "name": "Эштон"}, -{"usage": "world", "name": "Эш"}, -{"usage": "world", "name": "Эяк"}, -{"usage": "world", "name": "Юарт"}, -{"usage": "world", "name": "Юба"}, -{"usage": "world", "name": "Юбилей"}, -{"usage": "world", "name": "Ювалд"}, -{"usage": "world", "name": "Юджин"}, -{"usage": "world", "name": "Юинг"}, -{"usage": "world", "name": "Юкейпа"}, -{"usage": "world", "name": "Юкиа"}, -{"usage": "world", "name": "Юкка"}, -{"usage": "world", "name": "Юкон"}, -{"usage": "world", "name": "Юлесс"}, -{"usage": "world", "name": "Юли"}, -{"usage": "world", "name": "Юлония"}, -{"usage": "world", "name": "Юма"}, -{"usage": "world", "name": "Юнадилла"}, -{"usage": "world", "name": "Юникой"}, -{"usage": "world", "name": "Юнион"}, -{"usage": "world", "name": "Юниополис"}, -{"usage": "world", "name": "Юнис"}, -{"usage": "world", "name": "Юнити"}, -{"usage": "world", "name": "Юнола"}, -{"usage": "world", "name": "Юнт"}, -{"usage": "world", "name": "Юпитер"}, -{"usage": "world", "name": "Юпора"}, -{"usage": "world", "name": "Юстас"}, -{"usage": "world", "name": "Юстис"}, -{"usage": "world", "name": "Юстиция"}, -{"usage": "world", "name": "Ютан"}, -{"usage": "world", "name": "Юто"}, -{"usage": "world", "name": "Ют"}, -{"usage": "world", "name": "Юфола"}, -{"usage": "world", "name": "Юча"}, -{"usage": "world", "name": "Ючианна"}, -{"usage": "world", "name": "Юэлл"}, -{"usage": "world", "name": "Юэнс"}, -{"usage": "world", "name": "Юэн"}, -{"usage": "world", "name": "Ябукоа"}, -{"usage": "world", "name": "Ява"}, -{"usage": "world", "name": "Яго"}, -{"usage": "world", "name": "Ядкин"}, -{"usage": "world", "name": "Язу"}, -{"usage": "world", "name": "Якатага"}, -{"usage": "world", "name": "Якатат"}, -{"usage": "world", "name": "Якима"}, -{"usage": "world", "name": "Якобус"}, -{"usage": "world", "name": "Яколт"}, -{"usage": "world", "name": "Ялаха"}, -{"usage": "world", "name": "Ямайка"}, -{"usage": "world", "name": "Ямпай"}, -{"usage": "world", "name": "Ямпа"}, -{"usage": "world", "name": "Ям"}, -{"usage": "world", "name": "Янг"}, -{"usage": "world", "name": "Янки"}, -{"usage": "world", "name": "Янкопин"}, -{"usage": "world", "name": "Янктон"}, -{"usage": "world", "name": "Янсен"}, -{"usage": "world", "name": "Янси"}, -{"usage": "world", "name": "Янтис"}, -{"usage": "world", "name": "Януш"}, -{"usage": "world", "name": "Ян"}, -{"usage": "world", "name": "Ярбо"}, -{"usage": "world", "name": "Ярдли"}, -{"usage": "world", "name": "Ярд"}, -{"usage": "world", "name": "Ярмут"}, -{"usage": "world", "name": "Ярнелл"}, -{"usage": "world", "name": "Ярроу"}, -{"usage": "world", "name": "Яуко"}, -{"usage": "world", "name": "Яупон"}, -{"usage": "world", "name": "Яурел"}, -{"usage": "world", "name": "Яфанк"}, -{"usage": "world", "name": "Ячатс"} + { + "usage": "nick", + "name": [ + "10-4", + "Брошенка", + "Терпила", + "Кубики", + "Козырь", + "Кислота", + "Адажио", + "Хрен переспоришь", + "Адмирал", + "Эон", + "Аэро", + "ППЦ", + "После", + "Агат", + "Агент", + "Злюка", + "Изжога", + "Ура", + "Привет", + "Руки-в-боки", + "Альбатрос", + "Алиби", + "Звезда", + "Альфа", + "Абы как", + "Амброзия", + "Аминь", + "Америка", + "Аметист", + "Патрон", + "Люто-бешено", + "Заткнись", + "Якорь", + "Ангел", + "Анима", + "Животина", + "Девчонка", + "Мурашка", + "Дырень", + "Верхотура", + "Апокалипсис", + "Апогей", + "Яблоко", + "Яблочник", + "Яблочное Зёрнышко", + "Аква", + "Аркада", + "Архон", + "Арканзас", + "Аркан", + "Бычара", + "Армагеддон", + "Астро", + "Атлант", + "Атом", + "Аура", + "Пощёчина", + "Аврора", + "Оззи", + "Австралия", + "Самоволка", + "Топор", + "Эй", + "Детка", + "Малыш", + "Бекон", + "Задира", + "Барсук", + "Плешь", + "Круши-ломай", + "Бэмби", + "Банан", + "Охренеть", + "Бандюга", + "Я со всеми", + "Бабах", + "Банхаммер", + "Вписка", + "Банши", + "Банзай", + "Барбитурат", + "Варвар", + "Побрейся", + "Бард", + "Барон", + "Сделай бочку", + "Стыдоба", + "Мне похер", + "Жопошник", + "Лучик", + "Весельчак", + "Медведь", + "Зверюга", + "Лапочка", + "Бибоп", + "Бедлам", + "Пчёлка", + "Придира", + "Бип", + "Би-бип", + "Ни о чём", + "Жиртрест", + "Берсерк", + "Лучше всех", + "Бета", + "Больше всех", + "Большие пушки", + "Важная шишка", + "Биггс", + "Трепло", + "По-крупному", + "Бихари", + "Миллиард", + "Бинг", + "Бинго", + "Био", + "Цыпа", + "Пташка", + "Косяк", + "Повторюха", + "Битмап", + "Чернота", + "Блэкджек", + "Блейд", + "Позорище", + "Просто пушка", + "Укурок", + "Внезапность", + "Показуха", + "Блинк", + "Волына", + "Прыщ", + "Блиц", + "Пурга", + "Забаню", + "Балда", + "Блонди", + "Прелесть", + "Вдул", + "Блю", + "Жополиз", + "Залей глаза", + "Скромняга", + "Посан", + "Кабан", + "Тело", + "Под орех", + "Окурок", + "Брехло", + "Болт", + "Режу правду", + "Рыбак", + "Бонанза", + "Бонд", + "Стояк", + "Крыша поехала", + "Бонсай", + "Бонус", + "Половинка", + "Радость", + "Ставка", + "Ёпт", + "Нищебро", + "Халява", + "Нубло", + "Фуфло", + "Жлоб", + "Босс", + "Баузер", + "Пацан", + "Без мозгов", + "Мозг", + "Мозговой штурм", + "Крысюк", + "Отвага", + "Браво", + "Бразилия", + "Из Бразилии", + "Бабло", + "Разрыв", + "Раз-два", + "Головокружение", + "Кирпич", + "Дисбат", + "Бронко", + "Коп", + "Бугага", + "Мачо", + "Брамми", + "Братишка", + "Себе на уме", + "Бабблс", + "Дружище", + "Лавэ", + "Бакай", + "Жук", + "Багбир", + "Багз", + "Бицепс", + "Бык", + "Пуля", + "В яблочко", + "Неваляшка", + "Балбес", + "Зайка", + "Булки", + "Нихера", + "Балабол", + "На подскоке", + "У меня дела", + "Брюзга", + "Мужлан", + "Мясник", + "Как по маслу", + "Истеричка", + "Милашка", + "Круто", + "Капуста", + "Какофония", + "Овощ", + "Цезарь", + "На кофеине", + "Кейдж", + "Мухлёж", + "Кахун", + "Беда", + "Матан", + "Калипсо", + "Мордашка", + "Камуфляж", + "Так точно", + "Канада", + "Из Канады", + "Дрищ", + "Канданго", + "И так сойдёт", + "Канада", + "Не гони", + "Воротила", + "Капихаба", + "Кэппи", + "Кэп", + "Карамелька", + "Каркамано", + "Кариока", + "Моркоу", + "Кэрри", + "Касабланка", + "Казино", + "Фейк", + "Гондурас", + "Загвоздка", + "Кореш", + "Многоножка", + "Церера", + "Чемпион", + "Кент", + "Гватемала", + "Чаппи", + "На колёсах", + "Очаровашка", + "Хрен заткнёшь", + "Флудер", + "Шах-и-мат", + "Щёчки", + "Сноб", + "Спасибки", + "Падонак", + "Шеф", + "Черри", + "Шахматист", + "Хи", + "Чел", + "Мексика", + "Спокойно", + "Китай", + "Китаёза", + "Чирик-чирик", + "Потрындим", + "Чоко", + "Шоколадка", + "Не вышло", + "Чух-чух", + "Отбивная", + "Хром", + "Хроно", + "Хи-хи", + "Бро", + "Лох", + "Чао", + "Сидр", + "Синко", + "Кино", + "Веснушка", + "Шифр", + "Клэнк", + "Гонишь", + "Коготь", + "Хлебушек", + "Клеймора", + "Церковник", + "Клик", + "Под кайфом", + "Закон-и-порядок", + "Профессор", + "Коусти", + "Кобра", + "Сыч", + "Кокни", + "Таракан", + "Коко", + "Кофеёк", + "Планктонина", + "Коуи", + "Толстосум", + "Полковник", + "Коматоз", + "Комбо", + "Очень смешно", + "Комета", + "Душа компании", + "Кон", + "Фейл", + "Ракушка", + "Поплачься", + "Состав", + "Контрабанда", + "Печенька", + "Халтура", + "Медяк", + "Да-да", + "Штопор", + "Дурашка", + "Космо", + "До зарезу", + "Табло", + "Не скажу", + "Кавабанга", + "Койот", + "Краб", + "Супер-пупер", + "Крэш", + "Кратер", + "Я хочу", + "Деньги решают", + "Крещендо", + "Печалька", + "Пурпур", + "Как по маслу", + "Перекрёст", + "Ква", + "Лапоть", + "Жулик", + "Ворон", + "Ни гроша", + "Крейсер", + "Мудила", + "Вот блин", + "В стельку", + "Стерва", + "Криптид", + "Куатро", + "Ку-ку", + "Деревня", + "Амур", + "Таблетка", + "Кудряшка", + "Проклятье", + "Милочка", + "Циан", + "Цианид", + "Кибер", + "Циклон", + "Циклоп", + "Знаток", + "Не все дома", + "Кинжал", + "Даллас", + "Сцуко", + "Угроза", + "Тьма", + "Дорогуша", + "Дарт", + "Дата", + "Снайпер", + "Зая", + "Обманка", + "Ди", + "Проныра", + "Дельта", + "Деми", + "Демон", + "Безнадёга", + "Боже", + "Дьявол", + "Дью", + "Диабло", + "Алмаз", + "Даймондбэк", + "Это моё", + "Кубик", + "Дизель", + "Дижон", + "Дилемма", + "Туман", + "Грош", + "Ямочки", + "Дино", + "Отчаяние", + "Реквием", + "Диско", + "То же", + "Совсем того", + "Джинн", + "Мёртвое тело", + "Док", + "Додик", + "Псина", + "Депрессия", + "Куколка", + "Ишак", + "Косячок", + "Штуковина", + "Рок", + "Судный день", + "Дурь", + "Торчок", + "Двойник", + "Ничоси", + "Дабл", + "Богач", + "Отпад", + "Драко", + "Дракон", + "Страх", + "Дредноут", + "Дрифт", + "Дрифтер", + "Дроид", + "Общак", + "Друид", + "Сладость", + "Нежность", + "Ни бум-бум", + "Тупица", + "Дамбо", + "Пышка", + "Дандер", + "Всё тлен", + "Голландец", + "Динамо", + "Диз", + "Восток", + "Успокойся", + "Эйбон", + "Эхо", + "Затмение", + "Экстази", + "Угорь", + "Умник", + "Эго", + "Восьмёрка", + "Эйтс", + "Эйнштейн", + "Или-или", + "Кончина", + "Эль Диабло", + "Старпёр", + "Клёво", + "Элемент", + "Элита", + "Изумруд", + "На бис", + "Конец света", + "Эндер", + "Вышибала", + "Энигма", + "Зависть", + "Эпсилон", + "День-и-ночь", + "Эрида", + "Эсквайр", + "Эта", + "Эфир", + "Этимология", + "Эврика", + "Евротрэш", + "Изгой", + "На выход", + "Экзо", + "Академик", + "Мне-с-собой", + "Глаза", + "Красота", + "Лицо", + "Вера", + "Сокол", + "Падший", + "Фанданго", + "Фантастика", + "Лайк", + "Ужас", + "Крошка", + "Фехтовальщик", + "Хорёк", + "Феска", + "Скрипач", + "Бляха-муха", + "Фидо", + "Нарик", + "Лохотрон", + "Финал", + "Два пальца", + "Пламя", + "Головёшка", + "Пироманьяк", + "Петарда", + "Фаервол", + "Раз", + "Рыбка", + "Кулак", + "Мордобой", + "Дай пять", + "Фикс", + "Шипучка", + "Флак", + "Фламинго", + "Флэш", + "Флатландец", + "Не жилец", + "Блоха", + "Фильмец", + "Флиппер", + "Потопали", + "Флорида", + "Запой", + "Кидала", + "Флейта", + "Муха", + "Летучка", + "Липучка", + "Фокус", + "Рапира", + "Селюк", + "Дубина", + "Олень", + "Свобода", + "Удача", + "Четвёрка", + "Лиса", + "Скандал", + "Франция", + "Фрик", + "Стоять-бояться", + "По-французски", + "Напряг", + "Пятница", + "Лягушка", + "Шило-в-жопе", + "Фром", + "Фронт", + "Фрост", + "Фри", + "Всё, пиздец", + "Ириска", + "Огонь", + "Фурия", + "Будущее", + "Пушистик", + "Атас", + "Галактика", + "Игрок", + "Гамма", + "Гаргулья", + "Гранат", + "Пустышка", + "Сальник", + "Гатлинг", + "Гэйтор", + "Гаучо", + "Шестерня", + "Шмотки", + "Геккон", + "Чудак", + "Самоцвет", + "Близнец", + "Аккурат", + "Гео", + "Джорди", + "Бацилла", + "Немец", + "Германия", + "Призрак", + "Гига", + "Ололо", + "Рыжик", + "Гизмо", + "Гладиус", + "Вспышка", + "Глюк", + "Аж светится", + "Обжора", + "Выкуси", + "Козлина", + "Гоблин", + "Боженька", + "Годзилла", + "Золото", + "Высший класс", + "Голем", + "Гольф", + "Ей-богу", + "Гонг", + "Чайник", + "В порядке", + "Маня", + "Двачер", + "Гусь", + "Мурашки", + "Кровь-кишки", + "Горгона", + "Паутинка", + "Авторитет", + "Гранде", + "Серость", + "Грязь", + "Фу", + "Греция", + "Жадина", + "Грек", + "Зелень", + "Салага", + "Гремлин", + "Тоска", + "Уныло", + "Лыба", + "Ворчун", + "Хочу и бухчу", + "Грифон", + "Гуахиро", + "Гуава", + "Хитрец", + "Леденец", + "Выскочка", + "Гуру", + "Кишка", + "Толчок", + "Цыган", + "Гиро", + "Патлы", + "Тишь да гладь", + "Жиробас", + "Молот", + "Дам-по-морде", + "Ганнибал", + "Счастье", + "Жжошь", + "Каска", + "Заяц", + "Куриные мозги", + "Гарпия", + "Тесак", + "Гавана", + "10 из 10", + "Нищенка", + "Хаос", + "Ястреб", + "Зоркий глаз", + "Дымок", + "Сломя голову", + "Бессердечная сука", + "Пекло", + "Пшёл вон", + "Хэви", + "Умеет пить", + "Наследник", + "Чертовски", + "Чертовка", + "Дьяволёнок", + "Из ада", + "Болиголов", + "Дурной глаз", + "В расцвете сил", + "Гикори", + "Хайд", + "Полдень", + "Каланча", + "Весёлый шутник", + "Хамло", + "Подскажу", + "Ништяк", + "Бегемот", + "Хипстер", + "Хит", + "Бутер", + "Бомж", + "Бардак", + "Ты бредишь", + "Ересь", + "Гол", + "Ласточка", + "Крюк", + "Хулиган", + "Верзила", + "Остряк", + "Посиделки", + "Сиська", + "Навеселе", + "Попрыгун", + "Братан", + "Все ко мне", + "Горячо", + "Хот дог", + "Горячая штучка", + "Отель", + "Поджига", + "Секси", + "Хвастун", + "Гуддини", + "Гончая", + "Я подожду", + "Вой", + "Высокомерие", + "Халк", + "Дичь", + "Высший сорт", + "Сотка", + "Голод", + "Жрать охота", + "Гидра", + "Хайп", + "Гипер", + "Гипердрайв", + "Гипно", + "Козлёнок", + "Лёд", + "Ледокол", + "Тьфу", + "Икона", + "Идол", + "Берлога", + "Зажигание", + "Видение", + "Бес", + "Понаех", + "Импульс", + "Инкогнито", + "Невероятно", + "Индия", + "Инди", + "Индиго", + "Индонезия", + "Индианаполис", + "Инферно", + "Татуха", + "Инспектор", + "Сейчас же", + "Интро", + "Йота", + "Ирландец", + "Железо", + "Железная воля", + "Коляска", + "Ирвинг", + "Остров", + "Итальяшка", + "Италия", + "Аж зудит", + "Блеск", + "Мелочь", + "Кремень", + "Шакал", + "Дублин", + "Джейд", + "Окленд", + "Драндулет", + "Джем", + "Плимут", + "Сапог", + "Харочо", + "Пасть порву", + "Челюсти", + "Джаз", + "Джедай", + "Желе", + "Тебе печёт", + "Шут", + "Барахло", + "Жемчужина", + "Пляска", + "Пила", + "Борцуха", + "Джокер", + "Оптимист", + "Жердь", + "Джорни", + "Господь", + "Судия", + "Джаггернаут", + "Моё почтение", + "Самый сок", + "Оберег", + "Джамбо", + "Прыг-скок", + "Прыгун", + "Юпитер", + "Правосудие", + "Кайзер", + "Каппа", + "Капут", + "Бултых", + "Кевлар", + "Пивко", + "Медным тазом", + "Дверь запили", + "Ребёнок", + "Киллер", + "Кайфолом", + "Килограмм", + "Зимородок", + "Вор в законе", + "Такие дела", + "Чмок-чмок", + "Киви", + "Рыцарь", + "В отрубе", + "Денежка", + "Костяшки", + "Капитан Очевидность", + "Кракен", + "Фриц", + "Камрад", + "Дружок", + "Лямбда", + "Фонарь", + "Сухопутная крыса", + "Ляпис", + "Торопыга", + "Лазер", + "Лава", + "Свинец", + "Пиявка", + "Левак", + "Лимон", + "Лео", + "Левиафан", + "Моё спасение", + "Свет", + "Молния", + "Мне хватит", + "Лайтер", + "Лима", + "Лайм", + "Морячок", + "Слабак", + "Акцент", + "Линк", + "Подшофе", + "Ящер", + "Закрыто", + "Хикки", + "Столбняк", + "Локо", + "Лойнер", + "Одиночка", + "Мочалка", + "Лазейка", + "Лузер", + "Любовник", + "Счастливчик", + "Шишка", + "Соблазн", + "Пьяница", + "Похоть", + "Семиструнка", + "Люкс", + "Киса", + "Лирика", + "Мак", + "Машина", + "Эй, красотка", + "Макем", + "Бешеный пёс", + "Сорванец", + "Мадраси", + "Водоворот", + "Маджента", + "Слизняк", + "Магия", + "Магнум", + "Дай сигу", + "Дева", + "Материк", + "Мажор", + "Пургу несёшь", + "Малибу", + "Великан", + "Маньяк", + "Шары", + "Марс", + "Маска", + "Вожу-как-мудак", + "Мастер", + "Майя", + "Помогите", + "Беспредел", + "Медовуха", + "Медаль", + "Медичи", + "Мега", + "Расслабон", + "С катушек", + "Битард", + "Мяу", + "Наёмник", + "Барыга", + "Меркурий", + "Мерлин", + "Мета", + "Металл", + "Мичиган", + "Микро", + "Мидас", + "Карлан", + "Милка", + "Так-же-как-все", + "Миллион", + "Нюня", + "Вне правил", + "Мини", + "Миньон", + "Минор", + "Мята", + "Мираж", + "Микс", + "Мнемоник", + "Пухлик", + "Моджо", + "Момо", + "Монарх", + "Понедельник", + "Без меры", + "Деньги", + "Австрияк", + "Погоняло", + "Монах", + "Макака", + "Чудище", + "Му", + "Нахаляву", + "Луна", + "Мунрейкер", + "Лунатик", + "Лось", + "Морфей", + "Мотор", + "Язык-без-костей", + "Мышка", + "Мю", + "Грязнуля", + "Мне хреново", + "Кексик", + "Вторая попытка", + "Маппет", + "Шорох", + "Мусаси", + "Музло", + "Хлам", + "Метис", + "Тайна", + "Миф", + "Голышом", + "Угар", + "Нара", + "Нарко", + "Какая гадость", + "Навигатор", + "Флот", + "Не-а", + "Небула", + "Некро", + "Иголка", + "Немезида", + "Нео", + "Нептун", + "Нерон", + "Новичок", + "Ньюфи", + "Ньют", + "Это тупо", + "Пятак", + "Ночь", + "Сова", + "Ничего", + "Ноль", + "Девятка", + "Чмошник", + "Ниндзя", + "Нитро", + "Нуар", + "Кочевник", + "Северянин", + "Север", + "Норд-вест", + "Нова", + "Ноябрь", + "Нокс", + "Ню", + "Нуво", + "Бомба", + "Пустота", + "Онемение", + "Число", + "Болван", + "Слоупок", + "Псих", + "Оазис", + "Гобой", + "Океан", + "Оччо", + "Октан", + "Шанс", + "Огр", + "Океюшки", + "Омега", + "Знамение", + "Омикрон", + "Омни", + "Один", + "Оникс", + "У-упс", + "Забей", + "Опал", + "Чпок", + "Опус", + "Оракул", + "Апельсин", + "Осси", + "Уиджа", + "Бандит", + "Мне пора", + "Хорош уже", + "Переклинило", + "Отмена", + "Заточка", + "Оксфорд", + "Боль", + "Няшка", + "Старина", + "Паладин", + "Палео", + "Панацея", + "Стиляга", + "Панчо", + "Паника", + "Панцер", + "Совершенство", + "Между строк", + "Сушняк", + "Париж", + "Прилипала", + "Попугай", + "Макаронник", + "Пафос", + "Патриот", + "Пешка", + "Мир", + "Покой", + "Персик", + "Павлин", + "Тихоня", + "Братва", + "Коротышка", + "Пеликан", + "Пенни", + "Перфекционист", + "Хризолит", + "Громила", + "Петрикор", + "Фараон", + "Просто улёт", + "Фи", + "Ссыкло", + "Пи", + "Огурцом", + "Пиклз", + "Пико", + "Бродяга", + "Пайни", + "Пинки", + "Филиппины", + "Пинап", + "Пиранья", + "Пистолет", + "Пикс", + "Пицца", + "Шикос", + "Чума", + "Лампово", + "Платина", + "Ня", + "Плутон", + "По", + "Поэт", + "Пого", + "Ботан", + "Яд", + "Поленто", + "Пом", + "Пони", + "Стесняша", + "Пупсик", + "Поп", + "Дедуля", + "Недотёпа", + "Покайтеся", + "Позер", + "Угощайся", + "Пыщ-пыщ", + "Бледная немощь", + "Мощь", + "Моя прелесть", + "Престо", + "Крендель", + "Начальник", + "Колючка", + "Гордость", + "Примо", + "Принт", + "Призма", + "Приз", + "Профи", + "Вот свезло", + "Пророк", + "Респект", + "Прото", + "Пси", + "То есть", + "Психопат", + "Пирожок", + "Выдыхай", + "Пума", + "Пробойник", + "Сирень", + "Мур-мур", + "Есть чо", + "Кошечка", + "Питон", + "Знахарь", + "Квад", + "Недотрога", + "Встряска", + "Зашибись", + "Четвертак", + "Квазар", + "Квебек", + "Ртуть", + "Полтос", + "Тихо", + "Куинт", + "С прибабахом", + "Задачка", + "Кво", + "Цитатник", + "В кавычках", + "Отвал башки", + "Радар", + "Ярость", + "Регги", + "Всего понемногу", + "Трудоголик", + "Рэмбо", + "Развалина", + "Рейнджер", + "Второе пришествие", + "Шпана", + "Крыса", + "Трещотка", + "Рейв", + "Ворон", + "Выпилю", + "Бритва", + "Потрошитель", + "Бунтарь", + "Рэд", + "Деревенщина", + "По-новой", + "Вонючка", + "Хрен докажешь", + "Горец", + "Ремикс", + "Ретро", + "Преподобие", + "Откровение", + "Рекс", + "Рез", + "Носорог", + "Ро", + "Роди", + "Рикошет", + "Загадка", + "Наездник", + "Костыль", + "Риггер", + "Сматываемся", + "Риц", + "Бычок", + "Ты не пройдешь", + "Отвёртка", + "Сбитый лось", + "Скиталец", + "Робин", + "Робо", + "Скала", + "Ракета", + "Рокки", + "Ясно-понятно", + "Плут", + "Перепих", + "Ронин", + "Разводила", + "Рози", + "Румянец", + "Странник", + "Зевака", + "Рубин", + "Сопляк", + "Русский", + "Не заржавеет", + "Тебе бомбит", + "Расти", + "Клинок", + "Шпага", + "Мудрец", + "Святоша", + "Саламандра", + "Солт", + "Самурай", + "Санчез", + "Песок", + "Каро", + "Сэндвич", + "Врёт как дышит", + "Сапфир", + "Снежный человек", + "Суббота", + "Сатурн", + "Дикарь", + "Савант", + "Саксофон", + "Негодяй", + "Шрам", + "Разиня", + "Щепотка", + "Потомок", + "Припекло", + "Скорпион", + "Скаузер", + "Скаут", + "Не вовремя", + "Это царапина", + "На мели", + "Визгун", + "Сплетня", + "Коса", + "Секундочку", + "Два", + "Сепия", + "Механик", + "Семёрка", + "Три семёрки", + "Мрак", + "Тень", + "Причешись", + "Озноб", + "Трясучка", + "Акула", + "То, что надо", + "Расклад", + "Шейх", + "Розыгрыщ", + "Шериф", + "Шерлок", + "Туда-сюда", + "Нигга", + "Кайф", + "Перо", + "Дрожь", + "Шок", + "Кыш", + "Недомерок", + "Шоумэн", + "Ща будет", + "В клочки", + "Козявка", + "Мозгоправ", + "Уловка", + "Сицилиец", + "Сицилия", + "Тошнота", + "Шизик", + "Подстава", + "Сьерра", + "Сиеста", + "Сигма", + "Шёлк", + "Конь", + "Серебро", + "Холостяк", + "Бубнёж", + "Сирена", + "Шестёрка", + "Шесть банок", + "Похер", + "Шестнадцать", + "Быстра", + "Скелли", + "Скетч", + "Самокрутка", + "Скип", + "Шкипер", + "Небо", + "Кое-как", + "Фарс", + "Слэш", + "Палач", + "Грубиян", + "Сон", + "Соня", + "Манёвр", + "В форме", + "Скользкий тип", + "Осколок", + "Лень", + "Тормоз", + "Умница", + "С головой", + "Смэш", + "Смогги", + "Дым", + "Куряга", + "Без проблем", + "Клякса", + "Проёб", + "Змея", + "Пирсинг", + "Надо же", + "Тайком", + "Чихоня", + "Гламур", + "Сволочь", + "Снежок", + "Снеговик", + "Обнимашки", + "Стакан", + "Добрая душа", + "Сол", + "На все сто", + "Соло", + "Соник", + "Шнырь", + "Лажа", + "Душа", + "Юг", + "Космос", + "Ушлёпок", + "Искра", + "Живчик", + "Воробей", + "Отродье", + "Дурик", + "Фантом", + "Гонщик", + "Острослов", + "Сфинкс", + "Спайс", + "Остренько", + "Паук", + "Щёголь", + "Наряд", + "Дух", + "Заноза", + "Два ножа", + "Спок", + "Жмот", + "Спорт", + "Должок", + "Дятел", + "Картофан", + "По щщам", + "Туса", + "Амиго", + "Хрустик", + "Закорючка", + "Сквирт", + "Стаккато", + "Меня шатает", + "Сталкер", + "Светило", + "Зыркало", + "Срочно", + "Счёт", + "Из стали", + "Жало", + "Отстой", + "Чухан", + "Шов", + "Стопудово", + "Шторм", + "История", + "Отшельник", + "Два метра", + "Ударник", + "Лентяй", + "Влом", + "Везунчик", + "Топ", + "Дайте две", + "Фасолька", + "Орешек", + "Конфетка", + "Султан", + "Воскресенье", + "Позитив", + "Супер", + "Суперзвезда", + "Отвечаю", + "Волна", + "Кукловод", + "Главарь", + "Подлива", + "Сигай вниз", + "Лебединая песня", + "Збс", + "Суонси", + "Кавай", + "Сладкоежка", + "Сгинь", + "Ходок", + "Сало", + "Ключ", + "Вжух", + "Отключка", + "Синхрон", + "Синдром", + "Табу", + "Тянучка", + "Загар", + "Танго", + "Танк", + "Тапатио", + "Пенёк", + "Тасмания", + "Дурнина", + "Наколка", + "Тау", + "Технарь", + "Мишка", + "Ябеда", + "Зомбоящик", + "С характером", + "Десятка", + "Косарь", + "Терроне", + "Шотландец", + "Техас", + "Тире", + "Тета", + "Три", + "Жажда", + "Трубы горят", + "Тринадцать", + "Шип", + "Трэш", + "Тройка", + "Гром", + "В шоке", + "Четверг", + "Тик-так", + "Тико", + "Чуть-чуть", + "Раскраска", + "Тигр", + "Полено", + "Малёк", + "Титан", + "Жаба", + "Поганка", + "Льстец", + "Жги их", + "Помидорка", + "Всё завтра", + "Молоток", + "Кадр", + "Топаз", + "Вверх ногами", + "Факел", + "Торпедо", + "Тото", + "Вышка", + "Трагедия", + "Паровоз", + "Транс", + "Сокровище", + "Всё", + "Прикол", + "Профит", + "Нюанс", + "Тринити", + "Рибейро", + "За троих", + "Трикс", + "Тролль", + "Йоба", + "Истина", + "Тэкахо", + "Вторник", + "Мелодия", + "Турбо", + "Индюшка", + "Черепаха", + "Бивень", + "Туту", + "Хам", + "Прутик", + "Худышка", + "Вдвое", + "Тик", + "Двойка", + "Тайк", + "Тайфун", + "Тиран", + "Убер", + "Убик", + "Ой-ой", + "Раб", + "Ультима", + "Ультра", + "Амбер", + "Умбра", + "В оба", + "Дохрена", + "Тряпка", + "Вне закона", + "Не надо", + "Нет прощения", + "Униформа", + "Юнит", + "Уно", + "Без преград", + "Ипсилон", + "Разочарование", + "Уран", + "Надо", + "Юта", + "Валентин", + "Исчезни", + "Вампир", + "Пар", + "Вектор", + "Веган", + "Вегас", + "Месть", + "Венеция", + "Отрава", + "Двадцатка", + "Венера", + "Вертиго", + "Либидо", + "Вето", + "Векс", + "Победа", + "Объектив", + "Викинг", + "Уксус", + "ВИП", + "Гадюка", + "Вольт", + "Волонтёр", + "Вуду", + "Голос", + "Стервятник", + "Не айс", + "Вафля", + "Подъём", + "Уокер", + "Ветошь", + "Малолетка", + "Разврат", + "Война", + "Смотритель", + "Командир", + "Штык", + "Свинья", + "Суслик", + "Большой куш", + "Среда", + "Чудила", + "Уэсси", + "Запад", + "Уэсти", + "Трущоба", + "Хрипун", + "Фантазия", + "Вихрь", + "Вискарь", + "Шёпот", + "Уайт", + "Гений", + "Свистун", + "Ого-го", + "Ну почему", + "Хрень", + "Фон", + "Безумие", + "Манул", + "Плакса", + "Пустозвон", + "Авось", + "Перчик", + "Разгром", + "Жучок", + "Провод", + "Хитрая жопа", + "Волшебник", + "Волк", + "Росомаха", + "Чудо", + "Задрот", + "Уонка", + "Оно само", + "Гав-гав", + "Уоллибэк", + "Гангста", + "Честно", + "Червяк", + "Вау", + "Привидение", + "Гнев", + "Кара", + "Авария", + "Мародёр", + "Гнида", + "Ксено", + "Кси", + "Рентген", + "Бла-бла-бла", + "Ура", + "Туз", + "Янк", + "Янки", + "Ярди", + "Ят", + "Йеллоу", + "Трус", + "Уилмингтон", + "Йети", + "Пенсильвания", + "Бревно", + "Юпер", + "Молодь", + "Йо-йо", + "Буэ-э", + "Ням-ням", + "Разряд", + "Зебра", + "Зед", + "Дух времени", + "Дзен", + "Зенит", + "Зеро", + "Дзета", + "Шевелись", + "Зигги", + "Зигзаг", + "Пшик", + "Клочок", + "Зиппи", + "Зодиак", + "Зона", + "Панама", + "Зоуни", + "Бух", + "Зум" + ] + }, + { + "usage": "backer", + "gender": "female", + "name": [ + "Глен Ранситер", + "Ракель Макмахон", + "Трианна", + "Херит Себон", + "Шарлотта Холл", + "Эвелин Фрост", + "Эли Форест Китон" + ] + }, + { + "usage": "backer", + "gender": "male", + "name": [ + "Аджай Чандра", + "Александр Викс", + "Александр Дмитриев", + "Александр Кричко", + "Антон Стрюк", + "Аргус М. Лоуэлл", + "Артчер", + "Бен Макклюр", + "Бенджамин Реплож", + "Бобалот", + "Брайан Дэвидсон", + "Брайан Хостерман", + "Вильям Форест", + "Винтар Гутблод", + "Габриэль Дун", + "Гомер", + "Грифон-воробей", + "Гульфас Морголок", + "Гург Хакпоф", + "Д-р Хелька ван дер Шааф", + "Дак'кор", + "Даниэль Данахи", + "Даниэль Энфилд", + "Дейв Штевердаверсон", + "Джастин Маккинон", + "Джеймс Кенни", + "Дженс Бекер", + "Джеф Мейджор", + "Джиллами Лебигот", + "Джим Вивер", + "Джим Ландерленд", + "Джозеф 'Янтарь' Бартлет", + "Джон Хаммэл", + "Джон Эннион", + "Джошуа Янг", + "Дик Суржес", + "Дуг Огден", + "Занам", + "Иеремия Брасс", + "Камиль Кливисон", + "Кевин Витт", + "Кевин Грассо", + "Кендзи Курокава", + "Крейг Маттон", + "Крейг Фергюсон", + "Крис Уоткинс", + "Кристофер Фолинз", + "Лев Мышкин", + "Леонид Васильев", + "Лоури Денис", + "Майкл 'Ужасный конец' Джонс", + "Майкл Кинкейд", + "Майкл Хилл", + "Майлс Прауэрс", + "Марк 'Плохиш' Бэдой", + "Мартин Вударт", + "Мартин Свенсон", + "Мигель Гермес", + "Мик Бат", + "Милоч", + "Мишель Бержерон", + "Морозный Лис", + "Мэт Вильямс", + "Мэтт Дэвис", + "Мэттью Ст. Джон", + "Натан Кан", + "Натаниэль Форд", + "Непокорный Рик", + "Ник 'Хаос' Паркер", + "Ник Стефан", + "Оуэн Дан", + "Паскаль Филипович", + "Питер Штальберг", + "Пол Уоллас", + "Раймонд Белас", + "Расс Рейнольдс III", + "Роб Ветзель", + "Роб Кейс", + "Рон 'Шумный' Хаким", + "Рудольф Шмидт", + "Саймон Торесен Хульт", + "Себастьян Жафрэ", + "Серкан Койл", + "Стивен Петерсон", + "Стотнер", + "Сэм Стейн", + "Сёч Габор Ференс", + "Тобиас Франк", + "Товарищ Гарри", + "Тодрик Райеп", + "Том Хупер", + "Томас Ларсон", + "Томас Саймон", + "Тонами Йогенсен", + "Тревис Гибсон", + "Уилл Уолкер", + "Урист МакПрудент", + "Уэйн А. Артуртон", + "Феликс Аплин", + "Феликс Фокс", + "Филипп Тремблей", + "Халид Рашид", + "Хуберт Роденбаух", + "Хуберт Хьюз", + "Хэнк Лекрам", + "Шон Дункан", + "Эндрю Вебстер", + "Эндрю Гуастелла", + "Энрике Алонсо", + "Энтони Берли", + "Эрик Русак", + "Эрик Хангебухлер", + "Ян Клир" + ] + }, + { + "usage": "backer", + "gender": "unisex", + "name": [ + "Альфаи", + "Арк", + "Атомос", + "Гатцу", + "Даск Гао", + "Долио", + "Клей Фокстейл", + "Лаклан", + "Ларион", + "Маник Депрасив", + "Рено Паркер", + "Ролль", + "Ронни Магнуссон", + "Симефирми", + "Снежный Мяу", + "Спати Пкелуч", + "ТонЗа", + "Чжао" + ] + }, + { + "usage": "city", + "name": [ + "Абингтон", + "Аврора", + "Агавам", + "Адамс", + "Аддисон", + "Айер", + "Айл Ла Мотт", + "Айл о Хаут", + "Айленд Фолс", + "Айлсборо", + "Айра", + "Аквинна", + "Акворт", + "Аксбридж", + "Актон", + "Акушнет", + "Албион", + "Александер", + "Александрия", + "Аллагаш", + "Алленстаун", + "Ална", + "Альтон", + "Альфред", + "Амити", + "Амхерст", + "Андерхилл", + "Ансония", + "Антрим", + "Аптон", + "Аргайл", + "Арлингтон", + "Арроузик", + "Арундел", + "Атенс", + "Аткинсон", + "Атол", + "Ашбернем", + "Ашби", + "Ашленд", + "Ашфилд", + "Ашфорд", + "Байрон", + "Бакленд", + "Бакспорт", + "Бакстон", + "Бакфилд", + "Балтимор", + "Бангор", + "Банкрофт", + "Бар Харбор", + "Баринг плантейшн", + "Баркхамстед", + "Барлингтон", + "Барнард", + "Барнет", + "Барнстед", + "Барнстейбл", + "Барр", + "Баррингтон", + "Бартлетт", + "Бартон", + "Бат", + "Беверли", + "Беддингтон", + "Бедфорд", + "Бейкерсфилд", + "Бейливилл", + "Бекет", + "Белвидер", + "Белград", + "Беллингхем", + "Белмонт", + "Белфаст", + "Белчертаун", + "Бенедикта", + "Беннингтон", + "Бенсон", + "Бентон", + "Берк", + "Беркли", + "Беркшир", + "Берлин", + "Бернардстон", + "Бернем", + "Беррилвилл", + "Беруик", + "Бетани", + "Бетел", + "Бетлехем", + "Бивер Ков", + "Биддефорд", + "Бикон Фолс", + "Биллерика", + "Билс", + "Бингам", + "Бланфорд", + "Бланчард", + "Блейн", + "Блекстон", + "Блу Хил", + "Блумфилд", + "Бозра", + "Бойлстон", + "Боксборо", + "Боксфорд", + "Болдуин", + "Болтон", + "Борн", + "Боскавен", + "Бостон", + "Боу", + "Боудойн", + "Боудойнхем", + "Боуэрбанк", + "Брадфорд", + "Брайтон", + "Брайтон", + "Брансуик", + "Бранфорд", + "Братлборо", + "Браунвилль", + "Браунингтон", + "Браунфилд", + "Бредли", + "Брейнтри", + "Бремен", + "Брендон", + "Брентвуд", + "Бриджпорт", + "Бриджпорт", + "Бриджтон", + "Бриджуотер", + "Бримфилд", + "Бристоль", + "Броктон", + "Бруклин", + "Бруклин", + "Бруклин", + "Брукс", + "Бруксвилль", + "Бруктон", + "Брукфилд", + "Брустер", + "Брюэр", + "Бутбей Харбор", + "Бутбей", + "Бывшие города:", + "Ван-Бьюрен", + "Вансеборо", + "Вассалборо", + "Вашингтон", + "Веази", + "Веллингтон", + "Вердженес", + "Вернон", + "Верона Айленд", + "Вершир", + "Вест Бат", + "Вест Бойлстон", + "Вест Бриджуотер", + "Вест Брукфилд", + "Вест Виндзор", + "Вест Гардинер", + "Вест Гринвич", + "Вест Ньюбери", + "Вест Парис", + "Вест Ратленд", + "Вест Спрингфилд", + "Вест Стокбридж", + "Вест Тисбери", + "Вест Уорик", + "Вест Форкс", + "Вест Фэрли", + "Вест Хартфорд", + "Вест Хейвен", + "Вестминстер", + "Виктори", + "Виналхейвен", + "Виндзор Локс", + "Виндзор", + "Виндхам", + "Винчестер", + "Вискассет", + "Волантаун", + "Восточный Бриджуотер", + "Восточный Брукфилд", + "Восточный Виндзор", + "Восточный Гранби", + "Восточный Гринвич", + "Восточный Кингстон", + "Восточный Лайм", + "Восточный Лонгмидоу", + "Восточный Макиас", + "Восточный Миллинокет", + "Восточный Монпелье", + "Восточный Провиденс", + "Восточный Хаддэм", + "Восточный Хамптон", + "Восточный Хартфорд", + "Восточный Хейвен", + "Вудбери", + "Вудбридж", + "Вудвилл", + "Вудленд", + "Вудсток", + "Вудфорд", + "Вулуич", + "Вулфборо", + "Вунсокет", + "Вустер", + "Вьенна", + "Вэр", + "Вэрхэм", + "Гайд Парк", + "Галифакс", + "Гамильтон", + "Ганновер", + "Гарвард", + "Гардинер", + "Гарднер", + "Гарленд", + "Гаррисон", + "Гарфилд Плантейшн", + "Гилдхолл", + "Гилеад", + "Гилл", + "Гилмантон", + "Гилсум", + "Гилфорд", + "Гилфорд", + "Гластенбери", + "Гластонбери", + "Гленберн", + "Гленвуд Плантейшен", + "Гловер", + "Глостер", + "Глостер", + "Горем", + "Госнолд", + "Гоффстаун", + "Гошен", + "Гранвилл", + "Гранд Лейк Стрим", + "Гранд-Айл", + "Грантам", + "Графтон", + "Грей", + "Грин", + "Гринбуш", + "Гринвилл", + "Гринвич", + "Гринвуд", + "Гринленд", + "Гринсборо", + "Гринфилд", + "Грисволд", + "Гровленд", + "Гротон", + "Грэйт Баррингтон", + "Грэйт Понд", + "Грэнби", + "Гудзон", + "Гулдсборо", + "Дадли", + "Дайер Брук", + "Дайтон", + "Даксбери", + "Даллас Плантейшен", + "Дамарискотта", + "Даммер", + "Даммерстон", + "Данбери", + "Данби", + "Данверс", + "Данвилл", + "Данстэбл", + "Данфорт", + "Дарем", + "Дариен", + "Дартмут", + "Деблойс", + "Дедхэм", + "Дейтон", + "Декстер", + "Денмарк", + "Деннис", + "Деннисвилл", + "Деннистаун", + "Дерби", + "Дерри", + "Детройт", + "Джамайка", + "Джаффри", + "Джей", + "Джеймстаун", + "Джексон", + "Джерико", + "Джефферсон", + "Джонсборо", + "Джонсон", + "Джонспорт", + "Джонстон", + "Джорджия", + "Джорджтаун", + "Джэкман", + "Диксмонт", + "Диксфилд", + "Дип Ривер", + "Дир Айл", + "Диринг", + "Дирфилд", + "Довер-Фокскрофт", + "Долтон", + "Дорсет", + "Дорчестер", + "Дракат", + "Дрезден", + "Дрю Плантейшен", + "Дублин", + "Дувр", + "Дуглас", + "Дунбартон", + "Игл Лейк", + "Иден", + "Индастри", + "Ипсуич", + "Ирасберг", + "Истам", + "Истбрук", + "Истгемптон", + "Истон", + "Истпорт", + "Истфорд", + "Йорк", + "Кабот", + "Кавендиш", + "Кале", + "Камберленд", + "Каммингтон", + "Канаан", + "Кандия", + "Кантон", + "Каратанк", + "Карвер", + "Кари Плантейшен", + "Карибу", + "Карлайл", + "Кармел", + "Каролл", + "Каррабассетт Вэлли", + "Карролл Плантейшен", + "Картаж", + "Касвелл", + "Каско", + "Касл Хилл", + "Каслтон", + "Кастин", + "Катлер", + "Кейп Элизабет", + "Кембридж", + "Кендаскиг", + "Кеннебанк", + "Кеннебанкпорт", + "Кенсингтон", + "Кент", + "Кентербери", + "Киллингворт", + "Киллингли", + "Киллингтон", + "Кин", + "Кингман", + "Кингсбери Плантейшен", + "Кингстон", + "Кингфилд", + "Кир Плантейшен", + "Кирби", + "Киттери", + "Кларендон", + "Кларксбург", + "Кларксвилль", + "Клермонт", + "Клинтон", + "Клифтон", + "Ковентри", + "Кодивилл Плантейшен", + "Колбрук", + "Колрейн", + "Колумбия Фолс", + "Колумбия", + "Колчестер", + "Конкорд", + "Коннор", + "Конуэй", + "Коплин Плантейшен", + "Коринна", + "Коринф", + "Корнвилл", + "Корниш", + "Корнуолл", + "Кохассет", + "Кранберри Айлс", + "Кранстон", + "Крафтсбери", + "Кристл", + "Кройдон", + "Кромвель", + "Кроуфорд", + "Куинси", + "Купер", + "Кушинг", + "Кэмден", + "Кэмптон", + "Лаграндж", + "Ладлоу", + "Лайм", + "Лаймстон", + "Лакония", + "Ламоайн", + "Лангдон", + "Ландафф", + "Ландгров", + "Ланкастер", + "Лансборо", + "Лебанон", + "Левант", + "Левант", + "Ледьярд", + "Лейден", + "Лейден", + "Лейквилл", + "Лексингтон", + "Лемингтон", + "Лемпстер", + "Ленокс", + "Леоминстер", + "Лестер", + "Ли", + "Либерти", + "Ливермор Фолс", + "Ливермор", + "Лидс", + "Лиман", + "Лимингтон", + "Линдеборо", + "Линдон", + "Линкольн Плантейшен", + "Линкольн", + "Линкольнвилл", + "Линн", + "Линнеус", + "Линнфилд", + "Лисбон", + "Литл Комптон", + "Литлтон", + "Литчфилд", + "Ловелл", + "Лонг Айлэнд", + "Лонгмидоу", + "Лондондерри", + "Лоренс", + "Лоудон", + "Лоуэлл", + "Лубек", + "Луненберг", + "Льюистон", + "Лэйк Вью Плантейшен", + "Магаллоуэй Плантейшен", + "Мадавоска", + "Мадрид", + "Майло", + "Маквахок Плэнтейшен", + "Макиас", + "Макиаспорт", + "Максфилд", + "Малден", + "Мальборо", + "Мальборо", + "Мансфилд", + "Манчестер", + "Манчестер-бай-зе-Си", + "Марблхед", + "Мариавилл", + "Марион", + "Марлоу", + "Марс Хилл", + "Маршфилд", + "Масардис", + "Матиникус Айл", + "Маунт Вашингтон", + "Маунт Вернон", + "Маунт Десерт", + "Маунт Табор", + "Маунт Холли", + "Маунт Чейз", + "Машпи", + "Медбери", + "Меддибемпс", + "Медуэй", + "Медфилд", + "Медфорд", + "Мейдстон", + "Мейнард", + "Мейплтон", + "Мейсон", + "Меканик Фолс", + "Мексико", + "Мелроз", + "Мендон", + "Мередит", + "Мериден", + "Мерилл", + "Мерримак", + "Метуен", + "Мидлбери", + "Мидлборо", + "Мидлсекс", + "Мидлтаун Спрингс", + "Мидлтаун", + "Мидлтон", + "Мидлфилд", + "Милан", + "Милбери", + "Милбридж", + "Миллвилл", + "Миллинокет", + "Миллис", + "Милтон", + "Милфорд", + "Минот", + "Молтонборо", + "Монктон", + "Монмут", + "Монпелье", + "Монро", + "Монсон", + "Монт Вернон", + "Монтагю", + "Монтвилл", + "Монтгомери", + "Монтерей", + "Монтиселло", + "Монхеган", + "Морган", + "Моро Плантейшен", + "Моррилл", + "Моррис", + "Морристаун", + "Мортаун", + "Москоу", + "Муз Ривер", + "Мэдисон", + "Мэрримек", + "Мэттавамкиг", + "Мэттапойсетт", + "Мэттемисконтис", + "Мёрсер", + "Нантакет", + "Наррагансетт", + "Натик", + "Нахант", + "Нашвилл Плантейшен", + "Нашуа", + "Нейплс", + "Нельсон", + "Нидхам", + "Ноблборо", + "Нокс", + "Норвич", + "Норвуд", + "Норриджвок", + "Норт-Херо", + "Нортборо", + "Нортбридж", + "Нортвуд", + "Нортгемптон", + "Нортон", + "Нортпорт", + "Нортумберленд", + "Нортфилд", + "Норуолк", + "Норуэй", + "Норуэлл", + "Норфолк", + "Нотак", + "Ноттингем", + "Нью-Ашфорд", + "Нью-Бедфорд", + "Нью-Бостон", + "Нью-Брейнтри", + "Нью-Бритен", + "Нью-Вайнярд", + "Нью-Глостер", + "Нью-Дарем", + "Нью-Ипсвич", + "Нью-Канаан", + "Нью-Канада", + "Нью-Касл", + "Нью-Лимерик", + "Нью-Лондон", + "Нью-Мальборо", + "Нью-Милфорд", + "Нью-Портленд", + "Нью-Сейлем", + "Нью-Суиден", + "Нью-Фэрфилд", + "Нью-Хамптон", + "Нью-Хартфорд", + "Нью-Хейвен", + "Нью-Шарон", + "Нью-Шорхэм", + "Ньюарк", + "Ньюбери", + "Ньюберипорт", + "Ньюбург", + "Ньюингтон", + "Ньюкасл", + "Ньюмаркет", + "Ньюпорт", + "Ньюри", + "Ньютаун", + "Ньютон", + "Ньюфан", + "Ньюфилд", + "Ньюфилдс", + "Оберн", + "Оганкит", + "Огаста", + "Ок Блафс", + "Окленд", + "Оксбоу", + "Оксфорд", + "Окфилд", + "Окхем", + "Олбани", + "Олбург", + "Олд Лайм", + "Олд Сейбрук", + "Олд Таун", + "Олд-Орчард-Бич", + "Олстед", + "Олфорд", + "Ориент", + "Ориндж", + "Орлеан", + "Орленд", + "Орнвилл", + "Ороно", + "Оррингтон", + "Оруэлл", + "Орфорд", + "Осборн", + "Оссипи", + "Отис", + "Отисфилд", + "Оулс Хед", + "Пакстон", + "Палермо", + "Палмер", + "Пальмира", + "Пантон", + "Парис", + "Паркман", + "Парсонсфилд", + "Пассадумкиг", + "Паттен", + "Паунал", + "Пелхэм", + "Пемброк", + "Пенобскот", + "Пепперелл", + "Перкинс", + "Перри", + "Перу", + "Перхем", + "Пибоди", + "Пирмонт", + "Питерборо", + "Питершам", + "Питтсбург", + "Питтстон", + "Питтсфилд", + "Питтфорд", + "Пичем", + "Плезант Ридж Плантейшен", + "Плейнвилл", + "Плейнфилд", + "Плейстоу", + "Плимптон", + "Плимут", + "Поланд", + "Полет", + "Полтни", + "Помфрет", + "Портедж Лейкс", + "Портер", + "Портленд", + "Портсмут", + "Потакет", + "Прентисс", + "Преск Айл", + "Прескотт", + "Престон", + "Принстон", + "Провиденс", + "Провинстаун", + "Проктор", + "Проспект", + "Путнам", + "Путни", + "Рай", + "Райгейт", + "Рамни", + "Рамфорд", + "Рандольф", + "Рассел", + "Ратленд", + "Ревир", + "Реймонд", + "Рейнджели Плантейшен", + "Рейнджели", + "Рейнхем", + "Рентам", + "Рехобот", + "Рид Плантейшен", + "Риджфилд", + "Ридинг", + "Ридсборо", + "Ридфилд", + "Риндж", + "Рипли", + "Риптон", + "Ричмонд", + "Ричфорд", + "Роббинстон", + "Ройалстон", + "Ройалтон", + "Рок Блафс", + "Роки Хилл", + "Рокингем", + "Рокленд", + "Рокпорт", + "Роксбери", + "Роллинсфорд", + "Ром", + "Роу", + "Роули", + "Рочестер", + "Руперт", + "Сабаттус", + "Савой", + "Садбери", + "Сайчуат", + "Сако", + "Салливан", + "Самнер", + "Санапи", + "Санборнтон", + "Сангервилл", + "Сандан", + "Сандгейт", + "Сандерленд", + "Санди Ривер Плантейшен", + "Сандисфилд", + "Сандуич", + "Санфорд", + "Саттон", + "Саут-Бёрлингтон", + "Саут-Портленд", + "Саут-Херо", + "Саутбери", + "Саутборо", + "Саутбридж", + "Саутвест Харбор", + "Саутгемптон", + "Саутингтон", + "Саутпорт", + "Саутуик", + "Саффилд", + "Себаго", + "Себек", + "Себоис Плантейшен", + "Северный Адамс", + "Северный Андовер", + "Северный Беруик", + "Северный Бранфорд", + "Северный Брукфилд", + "Северный Канаан", + "Северный Кингстаун", + "Северный Провиденс", + "Северный Ридинг", + "Северный Смитфилд", + "Северный Стонингтон", + "Северный Хамптон", + "Северный Хейвен", + "Северный Этлборо", + "Северный Ярмут", + "Седжвик", + "Сейлем", + "Сеймур", + "Сейнт Агата", + "Сейнт Джон Плантейшен", + "Сейнт Джонсбери", + "Сейнт Джордж", + "Сейнт Олбанс", + "Сейнт Франсис", + "Сентер Харбор", + "Сентервилл", + "Сентрал Фолс", + "Серри", + "Сибрук", + "Сидни", + "Сиконк", + "Симсбери", + "Сирсберг", + "Сирсмонт", + "Сирспорт", + "Скарборо", + "Скотленд", + "Скоухеган", + "Смирна", + "Смитфилд", + "Согас", + "Солон", + "Солсбери", + "Сомервилл", + "Сомерс", + "Сомерсворт", + "Сомерсет", + "Сорренто", + "Спенсер", + "Спраг", + "Спрингфилд", + "Стандиш", + "Станнард", + "Старк", + "Старкс", + "Старксборо", + "Стаффорд", + "Стейсивилл", + "Стербридж", + "Стерлинг", + "Стетсон", + "Стоддард", + "Стокбридж", + "Стокем", + "Стоктон Спрингс", + "Стонингтон", + "Стонхем", + "Стоу", + "Стоу", + "Стоутон", + "Стратам", + "Страттон", + "Стратфорд", + "Страффорд", + "Стронг", + "Стьюбен", + "Стэмфорд", + "Стюартстаун", + "Суиден", + "Суомпскотт", + "Суонвилл", + "Суонзей", + "Суонс Айленд", + "Суонси", + "Суонтон", + "Суррей", + "Тайнгсборо", + "Тайрингем", + "Талмадж", + "Тамворт", + "Танбридж", + "Таунсенд", + "Таунтон", + "Тауншенд", + "Тафтонборо", + "Тексбери", + "Темпл", + "Темплтон", + "Тетфорд", + "Тивертон", + "Тилтон", + "Тинмут", + "Тисбери", + "Толенд", + "Томастон", + "Томпсон", + "Топсфилд", + "Топсхем", + "Торндайк", + "Торнтон", + "Торрингтон", + "Трамбулл", + "Тремонт", + "Трентон", + "Трескотт", + "Трой", + "Труро", + "Тёрнер", + "Уайтинг", + "Уайтингем", + "Уайтфилд", + "Уатли", + "Уилбрахам", + "Уиллимантик", + "Уиллингтон", + "Уиллистон", + "Уилмингтон", + "Уилмот", + "Уилок", + "Уилтон", + "Уильямсберг", + "Уильямстаун", + "Уинн", + "Уинслоу", + "Уинтер Харбор", + "Уинтервилл Плантейшен", + "Уинтерпорт", + "Уинтроп", + "Уинуски", + "Уинхолл", + "Уинчендон", + "Уитмен", + "Уитнивилл", + "Уоберн", + "Уолден", + "Уолдо", + "Уолдоборо", + "Уолкотт", + "Уоллаграсс", + "Уоллингфорд", + "Уолпол", + "Уолтем", + "Уордсборо", + "Уорик", + "Уорнер", + "Уоррен", + "Уортингтон", + "Уотербери", + "Уотерборо", + "Уотервилл Вэлли", + "Уотервиль", + "Уотертаун", + "Уотерфорд", + "Уошберн", + "Уэбстер Плантейшен", + "Уэбстер", + "Уэйбридж", + "Уэйд", + "Уэйкфилд", + "Уэйленд", + "Уэймут", + "Уэйн", + "Уэйт", + "Уэйтсфилд", + "Уэлд", + "Уэллсли", + "Уэлс", + "Уэлфлит", + "Уэльс", + "Уэнделл", + "Уэнтворт", + "Уэнхем", + "Уэр", + "Уэсли", + "Уэстборо", + "Уэстбрук", + "Уэствуд", + "Уэстгемптон", + "Уэстерли", + "Уэстманленд", + "Уэстмор", + "Уэстморленд", + "Уэстон", + "Уэстпорт", + "Уэстфилд", + "Уэстфорд", + "Уэтерсфилд", + "Уэтерсфилд", + "Файет", + "Фармингдейл", + "Фармингтон", + "Фейстон", + "Феррисбург", + "Филлипс", + "Филлипстон", + "Фипсберг", + "Фицвиллиам", + "Фичберг", + "Флетчер", + "Флорида", + "Фоксборо", + "Фолл-Ривер", + "Фолмут", + "Форест Сити", + "Форкс", + "Форт Кент", + "Форт Фэрфилд", + "Фостер", + "Фрай Айленд", + "Фрайбург", + "Фрамингем", + "Франклин", + "Франкония", + "Франкфорт", + "Франсстаун", + "Френдшип", + "Френчборо", + "Френчвилл", + "Фридом", + "Фримен", + "Фримонт", + "Фрипорт", + "Фритаун", + "Фэр Хейвен", + "Фэрли", + "Фэрфакс", + "Фэрфилд", + "Фэрхейвен", + "Хаббардстон", + "Хаббардтон", + "Хаддэм", + "Хадли", + "Хайгейт", + "Хайленд Плантейшен", + "Хайнсберг", + "Халл", + "Халлоуэлл", + "Хамден", + "Хамлин", + "Хаммонд", + "Хампден", + "Хампстед", + "Хамптон Фолс", + "Хамптон", + "Ханкок", + "Хансон", + "Хантингтон", + "Харвинтон", + "Харвич", + "Хардвик", + "Хармони", + "Харпсуэлл", + "Харрикейн Айл", + "Харрингтон", + "Харрисвилл", + "Хартленд", + "Хартс Локейшен", + "Хартфорд", + "Хатфилд", + "Хеброн", + "Хейвенхилл", + "Хейнсвилл", + "Хенникер", + "Хермон", + "Херси", + "Хилл", + "Хиллсборо", + "Хингем", + "Хинсдейл", + "Хирам", + "Хит", + "Ходждон", + "Холбрук", + "Холдернесс", + "Холдэн", + "Холи", + "Холиок", + "Холланд", + "Холлис", + "Холлистон", + "Хоп", + "Хопдейл", + "Хопкинтон", + "Хоуленд", + "Хоултон", + "Хуксетт", + "Чайна", + "Чаплин", + "Чапман", + "Чарлмонт", + "Чарлстаун", + "Чарлстон", + "Чарлтон", + "Чатем", + "Чебиг Айленд", + "Челмсфорд", + "Челси", + "Черрифилд", + "Честер", + "Честервилль", + "Честерфилд", + "Чешир", + "Чикопи", + "Чилмарк", + "Читтенден", + "Чичестер", + "Шапли", + "Шарлотта", + "Шарон", + "Шафтсбери", + "Шелберн", + "Шелдон", + "Шелтон", + "Шерборн", + "Шерман", + "Шеффилд", + "Ширли", + "Шорхэм", + "Шрусбери", + "Шугар Хилл", + "Шютсбери", + "Эатон", + "Эббот", + "Эверетт", + "Эгремонт", + "Эдгартаун", + "Эддингтон", + "Эджком", + "Эдинбург", + "Эдмундс", + "Эйвон", + "Эймсбери", + "Эксетер", + "Элиот", + "Эллингтон", + "Эллсворт", + "Элмор", + "Эмбден", + "Эндовер", + "Эносберг", + "Энсон", + "Энфилд", + "Эппинг", + "Эпплтон", + "Эпсом", + "Эрвинг", + "Эррол", + "Эссекс", + "Этна", + "Эттлборо", + "Эфингем", + "Южный Беруик", + "Южный Бристоль", + "Южный Виндзор", + "Южный Кингстаун", + "Южный Томастон", + "Южный Хадли", + "Южный Хамптон", + "Юнион", + "Юнити", + "Юстис", + "Ярмут" + ] + }, + { + "usage": "family", + "gender": "unisex", + "name": [ + "Аарон", + "Абель", + "Абернати", + "Абрамс", + "Абрахам", + "Абреу", + "Авалос", + "Августин", + "Авила", + "Авилес", + "Агилар", + "Агилера", + "Агирре", + "Адаме", + "Адамсон", + "Адамс", + "Адам", + "Аддисон", + "Адкинс", + "Адкок", + "Адлер", + "Адэр", + "Айверсон", + "Айви", + "Айерс", + "Айзекс", + "Айзек", + "Айкен", + "Айрлэнд", + "Акерман", + "Акино", + "Акинс", + "Акоста", + "Акуна", + "Аланис", + "Аларкон", + "Алвес", + "Александер", + "Алеман", + "Али", + "Аллен", + "Алмейда", + "Алонзо", + "Алонсо", + "Алстон", + "Алфорд", + "Альберт", + "Альбрехт", + "Альварадо", + "Альварес", + "Алькала", + "Альтман", + "Альфаро", + "Амадор", + "Амато", + "Амая", + "Анайя", + "Ангиано", + "Андервуд", + "Андерсен", + "Андерсон", + "Андерс", + "Андраде", + "Апонте", + "Аптон", + "Арагон", + "Аранда", + "Араужо", + "Аревало", + "Арельяно", + "Ариас", + "Армстронг", + "Арндт", + "Арнетт", + "Арнольд", + "Арредондо", + "Арреола", + "Арриага", + "Аррингтон", + "Арройо", + "Арсе", + "Артеага", + "Артур", + "Арчер", + "Арчулета", + "Асеведо", + "Аскью", + "Аткинсон", + "Аткинс", + "Ахмад", + "Ахмед", + "Ашер", + "Аяла", + "Бабб", + "Баггетт", + "Байерс", + "Бака", + "Бакли", + "Бакнер", + "Бакстер", + "Бак", + "Баллард", + "Банди", + "Бануэлос", + "Банч", + "Барахас", + "Барбер", + "Барбоза", + "Барбур", + "Баргер", + "Баркер", + "Барклай", + "Баркли", + "Барлоу", + "Барнард", + "Барнетт", + "Барни", + "Барнс", + "Барнхарт", + "Бароне", + "Барон", + "Барраган", + "Барраза", + "Баррелл", + "Баррера", + "Баррет", + "Барриос", + "Баррис", + "Барри", + "Баррон", + "Барроу", + "Баррьентос", + "Барр", + "Бартлетт", + "Бартли", + "Бартоломью", + "Бартон", + "Барт", + "Барфильд", + "Басби", + "Бассет", + "Басс", + "Батиста", + "Батлер", + "Баттерфилд", + "Баттс", + "Батчер", + "Баузер", + "Бауманн", + "Бауман", + "Баумгартнер", + "Баум", + "Баутиста", + "Бауэрс", + "Бауэр", + "Бахман", + "Бах", + "Баэз", + "Беверли", + "Бегей", + "Бейер", + "Бейкер", + "Бейлс", + "Бейтман", + "Бейтс", + "Беквит", + "Беккер", + "Беккет", + "Бекман", + "Бек", + "Беллами", + "Белло", + "Белл", + "Белчер", + "Бельтран", + "Белэнджер", + "Бенавидес", + "Бендер", + "Бенджамин", + "Бенедикт", + "Бенитес", + "Беннер", + "Беннетт", + "Бенсон", + "Бентли", + "Бентон", + "Бенуа", + "Бергер", + "Бергман", + "Берг", + "Берден", + "Бердетт", + "Берд", + "Бержерон", + "Берман", + "Бермудес", + "Берналь", + "Бернард", + "Бернетт", + "Бернштейн", + "Берри", + "Берроуз", + "Бертран", + "Берч", + "Бесерра", + "Бест", + "Бетанкур", + "Беттс", + "Биб", + "Биверс", + "Бивер", + "Биггс", + "Бигелоу", + "Биллингсли", + "Биллингс", + "Бил", + "Бим", + "Бингем", + "Бинум", + "Бин", + "Бирд", + "Бирн", + "Бисли", + "Бити", + "Битти", + "Бич", + "Бишоп", + "Бланкеншип", + "Бланко", + "Бланк", + "Блант", + "Бланшар", + "Блевинс", + "Бледсо", + "Блейкли", + "Блейк", + "Блисс", + "Блок", + "Блум", + "Блэкбёрн", + "Блэквелл", + "Блэкман", + "Блэкмон", + "Блэк", + "Блэлок", + "Блэнд", + "Блэнтон", + "Блэр", + "Блюм", + "Блю", + "Боггс", + "Бойд", + "Бойер", + "Бойкин", + "Бойл", + "Бойс", + "Бок", + "Боланд", + "Болден", + "Болдерас", + "Болдуин", + "Болес", + "Болин", + "Боллинджер", + "Болл", + "Болтон", + "Боман", + "Бондс", + "Бонд", + "Бонилья", + "Боннер", + "Борден", + "Бостон", + "Босуэлл", + "Боуден", + "Боулз", + "Боулинг", + "Боуман", + "Боуэн", + "Бошам", + "Бо", + "Браво", + "Бразерс", + "Брайант", + "Брайан", + "Брайсон", + "Брайт", + "Брандт", + "Браннон", + "Брансон", + "Брасвел", + "Браунинг", + "Браун", + "Брауэр", + "Брейден", + "Бреннан", + "Бреннер", + "Бренхем", + "Бренч", + "Бриггс", + "Бриджес", + "Бринкли", + "Бринк", + "Бринсон", + "Брин", + "Брионес", + "Бриско", + "Брис", + "Брито", + "Бриттон", + "Бритт", + "Брок", + "Бротон", + "Бро", + "Брубэйкер", + "Брукс", + "Брумфилд", + "Брунер", + "Бруннер", + "Бруно", + "Бруссард", + "Брэгг", + "Брэди", + "Брэдли", + "Брэдфорд", + "Брэдшоу", + "Брэй", + "Брэкстон", + "Брэндон", + "Брэнд", + "Брэнтли", + "Брюстер", + "Брюс", + "Брюэр", + "Будро", + "Буй", + "Букер", + "Буллард", + "Буллок", + "Булл", + "Бун", + "Бургос", + "Буржуа", + "Буркетт", + "Буркс", + "Буркхарт", + "Бустаманте", + "Бустос", + "Бут", + "Бушар", + "Буше", + "Буш", + "Буэно", + "Бьюкенен", + "Бэбкок", + "Бэгли", + "Бэйли", + "Бэйн", + "Бэкон", + "Бэнкс", + "Бэрд", + "Бэр", + "Бэттл", + "Бюргер", + "Бюрден", + "Бёрджесс", + "Бёрдик", + "Бёрд", + "Бёрк", + "Бёрлсон", + "Бёрнет", + "Бёрнс", + "Бёрнэм", + "Бёрр", + "Бёртон", + "Бёрт", + "Бёрч", + "Ваггонер", + "Вагнер", + "Вагонер", + "Вайман", + "Вайнер", + "Вайнштейн", + "Вайс", + "Валадес", + "Валенсия", + "Валенсуэла", + "Валентин", + "Валле", + "Вальдез", + "Вальдес", + "Вальдивия", + "Вальехо", + "Валь", + "ВанХорн", + "Ванг", + "Вандайк", + "Ванн", + "Ван", + "Варгас", + "Варела", + "Варнер", + "Васкес", + "Ватерман", + "Вашингтон", + "Вебер", + "Вебстер", + "Вега", + "Веласкес", + "Веласко", + "Вела", + "Велес", + "Веллер", + "Вендт", + "Венегас", + "Вентура", + "Венцель", + "Вера", + "Вернер", + "Вернон", + "Вест", + "Ветцель", + "Видал", + "Виджил", + "Викерс", + "Викс", + "Вик", + "Вилкерсон", + "Вилла", + "Виллингхэм", + "Вильгельм", + "Вильегас", + "Вильялобос", + "Вильянуэва", + "Вильярреал", + "Винклер", + "Винн", + "Винсент", + "Винсон", + "Винтер", + "Витале", + "Виттен", + "Витт", + "Вишневски", + "Воган", + "Вольф", + "Вонг", + "Вон", + "Восс", + "Во", + "Вудалл", + "Вудард", + "Вудворд", + "Вуди", + "Вудрафф", + "Вудсон", + "Вудс", + "Вуд", + "Вулф", + "Ву", + "Вэнс", + "Гай", + "Галиндо", + "Галлахер", + "Галло", + "Гальван", + "Гальвес", + "Гальвин", + "Гальегос", + "Гальярдо", + "Гамбоа", + "Гамез", + "Гамильтон", + "Гандерсон", + "Ганн", + "Гант", + "Ганьон", + "Гарбер", + "Гарвин", + "Гарви", + "Гарднер", + "Гарлэнд", + "Гарнер", + "Гаррет", + "Гаррисон", + "Гарса", + "Гарсия", + "Гастингс", + "Гастон", + "Гатри", + "Гаффни", + "Гваджардо", + "Гевара", + "Гейджер", + "Гейдж", + "Гейнс", + "Гейтс", + "Гей", + "Геллер", + "Генри", + "Гентри", + "Герберт", + "Гербер", + "Герман", + "Герреро", + "Геррик", + "Герр", + "Гесс", + "Гетц", + "Гиббонс", + "Гиббс", + "Гибсон", + "Гивенс", + "Гидри", + "Гилберт", + "Гилкрист", + "Гиллеспи", + "Гиллиам", + "Гиллилэнд", + "Гиллис", + "Гиллори", + "Гилл", + "Гилман", + "Гилмор", + "Гильен", + "Гил", + "Гипсон", + "Гири", + "Гиффорд", + "Ги", + "Гласс", + "Гленн", + "Глисон", + "Гловер", + "Годвин", + "Годдард", + "Годинес", + "Годфри", + "Гоинс", + "Голдберг", + "Голден", + "Голдман", + "Голдсмит", + "Голд", + "Гольдштейн", + "Гомес", + "Гонсалес", + "Гордон", + "Горман", + "Гор", + "Госсетт", + "Госс", + "Готье", + "Гофф", + "Граббса", + "Грабб", + "Граймс", + "Гранадос", + "Грант", + "Графф", + "Граф", + "Грегг", + "Грегори", + "Грейвз", + "Грейди", + "Грейсон", + "Грейс", + "Грей", + "Греко", + "Грешам", + "Григгс", + "Гримм", + "Гринберг", + "Гринвуд", + "Гринфилд", + "Грин", + "Грир", + "Гриссом", + "Гриффин", + "Гриффитс", + "Гриффит", + "Гровер", + "Гровс", + "Гроган", + "Гроссман", + "Гросс", + "Гроув", + "Грубер", + "Грэй", + "Грэнджер", + "Грэхем", + "Гудвин", + "Гудзон", + "Гудман", + "Гудрич", + "Гудсон", + "Гуд", + "Гуинн", + "Гулд", + "Гусман", + "Густафсон", + "Гутьеррес", + "Гуч", + "Гуэрра", + "Гэбриел", + "Гэвин", + "Гэйл", + "Гэлловэй", + "Гэмбл", + "Гэннон", + "Гэнн", + "Гэри", + "Гюнтер", + "ДаСилва", + "Давила", + "Дав", + "Дагган", + "Дадли", + "Дайал", + "Дайер", + "Дайкс", + "Даймонд", + "Дайсон", + "Дай", + "Дакворт", + "Дали", + "Далтон", + "Даль", + "Дамико", + "Данбар", + "Дангело", + "Данг", + "Данлэп", + "Данн", + "Данхэм", + "Дарден", + "Дарем", + "Дарлинг", + "Дарнелл", + "Даттон", + "Дауд", + "Даулинг", + "Даунинг", + "Дауни", + "Даунс", + "Даути", + "Даффи", + "Дафф", + "Двайер", + "ДеДжизес", + "Девайн", + "Девенпорт", + "Девитт", + "Девлин", + "Дейгл", + "Дейли", + "Декер", + "Делакруз", + "Делани", + "Делароса", + "Делаторре", + "Делеон", + "Делонг", + "Делоссантос", + "Делука", + "Дельгадильо", + "Дельгадо", + "Демарко", + "Демпси", + "Деннисон", + "Деннис", + "Денни", + "Денсон", + "Дентон", + "Дент", + "Десаи", + "Де", + "Джагер", + "Джадд", + "Джайлс", + "Джарвис", + "Джаррелл", + "Джарретт", + "Джастис", + "Джейкобс", + "Джейкоб", + "Джеймсон", + "Джеймс", + "Джексон", + "Джек", + "Джемисон", + "Дженкинс", + "Дженнингс", + "Дженсен", + "Джентиле", + "Джерман", + "Джерниган", + "Джетер", + "Джетт", + "Джефферсон", + "Джефферс", + "Джеффрис", + "Джиллет", + "Джин", + "Джозеф", + "Джойнер", + "Джойс", + "Джой", + "Джолли", + "Джонсон", + "Джонстон", + "Джонс", + "Джон", + "Джордано", + "Джордан", + "Джордж", + "Джулиан", + "Джуэл", + "Диас", + "Дигс", + "Дикерсон", + "Дикинсон", + "Диккенс", + "Дикки", + "Диксон", + "Дик", + "Диллард", + "Диллон", + "Дилл", + "Дил", + "Динь", + "Дин", + "Дитон", + "Дитрих", + "Дитц", + "Доан", + "Доббинс", + "Доббс", + "Добсон", + "Догерти", + "Додд", + "Додж", + "Додсон", + "Дозьер", + "Дойл", + "Докери", + "Докинз", + "Долан", + "Домингес", + "Дональдсон", + "Дональд", + "Донахью", + "Доннелли", + "Донован", + "Донохью", + "Доран", + "Дорман", + "Дорси", + "Досс", + "Дотсон", + "Доуди", + "Доусон", + "Доути", + "Доуэлл", + "Доу", + "Доэрти", + "Драйвер", + "Драммонд", + "Дрисколл", + "Дрэйк", + "Дрэйпер", + "Дрю", + "Дуарте", + "Дуган", + "Дуглас", + "Дули", + "Дункан", + "Дуонг", + "Дурбин", + "Ду", + "Дьюи", + "Дьюкс", + "Дьюк", + "Дэвидсон", + "Дэвид", + "Дэвисон", + "Дэвис", + "Дэйл", + "Дэй", + "Дэниелсон", + "Дэниелс", + "Дэниел", + "Дэрби", + "Дюбос", + "Дюбуа", + "Дюваль", + "Дюма", + "Дюпре", + "Дюрант", + "Дюран", + "Жак", + "Жирар", + "Завала", + "Зайтц", + "Замора", + "Зауэр", + "Зиглер", + "Зунига", + "Ибарра", + "Иви", + "Иган", + "Идальго", + "Инглиш", + "Инглэнд", + "Ингрэм", + "Инман", + "Инохоса", + "Ирвинг", + "Ирвин", + "Ирисарри", + "Исли", + "Исон", + "Истер", + "Истман", + "Ист", + "Итон", + "И", + "Йегер", + "Йетс", + "Йи", + "Йодер", + "Йоргенсен", + "Йорк", + "Йост", + "Кабальеро", + "Кабрал", + "Кабрера", + "Кавазос", + "Кавано", + "Каин", + "Кайзер", + "Кайл", + "Калверт", + "Калвер", + "Каллахан", + "Каллен", + "Калп", + "Калхун", + "Кальдерон", + "Камачо", + "Камински", + "Каммингс", + "Камминс", + "Кампос", + "Каналес", + "Канг", + "Каннингем", + "Кано", + "Кантрелл", + "Канту", + "Кан", + "Каплан", + "Капс", + "Карбаджал", + "Карвер", + "Кардвелл", + "Карденас", + "Кардона", + "Кард", + "Карлайл", + "Карлин", + "Карлос", + "Карлсон", + "Карлтон", + "Карл", + "Кармайкл", + "Кармона", + "Карнес", + "Карни", + "Карон", + "Карпентер", + "Карранса", + "Карраско", + "Каррен", + "Каррера", + "Каррильо", + "Каррингтон", + "Карри", + "Карр", + "Карсон", + "Картер", + "Картрайт", + "Карузо", + "Касарес", + "Касас", + "Касильяс", + "Касл", + "Каспер", + "Кастанеда", + "Кастелланос", + "Кастильо", + "Кастро", + "Катлер", + "Кауарт", + "Каудилл", + "Каур", + "Кауфман", + "Кац", + "Кейн", + "Кейси", + "Кейсон", + "Кейс", + "Кейтс", + "Кей", + "Келлер", + "Келли", + "Келлог", + "Келси", + "Кемп", + "Кендалл", + "Кендрик", + "Кеннеди", + "Кенни", + "Кент", + "Кеньон", + "Кернс", + "Керн", + "Керр", + "Кертис", + "Кесада", + "Кесслер", + "Кидд", + "Киз", + "Килгор", + "Киллиан", + "Килпатрик", + "Кимбалл", + "Кимбл", + "Кимброу", + "Ким", + "Кинан", + "Кинг", + "Кинер", + "Кинкейд", + "Кинни", + "Кинси", + "Кинтана", + "Кинтанилья", + "Кинтеро", + "Киньонес", + "Кин", + "Кирби", + "Киркланд", + "Киркпатрик", + "Кирк", + "Кирни", + "Кирос", + "Кис", + "Китинг", + "Китчен", + "Кит", + "Ки", + "Клайн", + "Кларк", + "Клауд", + "Клевенджер", + "Клейн", + "Клейтон", + "Клеменс", + "Клементс", + "Клемент", + "Клемонс", + "Кливленд", + "Клинтон", + "Клири", + "Клифтон", + "Клиффорд", + "Клэй", + "Клэнси", + "Кнапп", + "Кобб", + "Коберн", + "Ковальски", + "Коваррубиас", + "Ковингтон", + "Коди", + "Кози", + "Койл", + "Койн", + "Кой", + "Кокер", + "Кокран", + "Кокс", + "Колб", + "Колвин", + "Колдуэлл", + "Колин", + "Коли", + "Коллинз", + "Колльер", + "Колл", + "Колон", + "Кольбер", + "Кольясо", + "Колэуэй", + "Комбс", + "Комер", + "Комптон", + "Кондон", + "Конклин", + "Конли", + "Коннектикут", + "Коннелли", + "Коннелл", + "Коннер", + "Коннолли", + "Коннорс", + "Коннор", + "Конрад", + "Конрой", + "Контрерас", + "Конуэй", + "Корбетт", + "Корбин", + "Кордеро", + "Кордова", + "Кори", + "Коркоран", + "Корли", + "Кормье", + "Корнелиус", + "Корнелл", + "Корнетт", + "Корнехо", + "Корнуэлл", + "Коронадо", + "Корона", + "Корраль", + "Корреа", + "Корриган", + "Кортесы", + "Кортес", + "Кортни", + "Коста", + "Костелло", + "Коте", + "Коттер", + "Коттон", + "Коттрелл", + "Коулз", + "Коулман", + "Коул", + "Коупленд", + "Коуп", + "Коутс", + "Коуч", + "Коуэн", + "Коу", + "Кофман", + "Коффи", + "Кохлер", + "Кох", + "Коэн", + "Крабтри", + "Крамер", + "Крамп", + "Крам", + "Крандалл", + "Кран", + "Краудер", + "Краузе", + "Краус", + "Крауч", + "Крафт", + "Крейг", + "Крейн", + "Креншоу", + "Креспо", + "Крисп", + "Кристенсен", + "Кристиансен", + "Кристиансон", + "Кристиан", + "Кристи", + "Кристман", + "Кристофер", + "Крич", + "Крокер", + "Крокетт", + "Кронин", + "Кросби", + "Кросс", + "Кроули", + "Кроуфорд", + "Кроуэлл", + "Кроу", + "Крофт", + "Крузе", + "Круз", + "Крук", + "Крус", + "Крэйвен", + "Крюгер", + "Крюс", + "Куигли", + "Куик", + "Куинн", + "Куин", + "Кук", + "Кули", + "Култер", + "Кумар", + "Куни", + "Кун", + "Куолс", + "Купер", + "Курц", + "Куэвас", + "Куэльяр", + "Кэйгл", + "Кэллоуэй", + "Кэмерон", + "Кэмпбелл", + "Кэмп", + "Кэннон", + "Кэнфилд", + "Кэри", + "Кэрриэр", + "Кэрролл", + "Кэссиди", + "Кэхилл", + "Кэш", + "Кёлер", + "Кёниг", + "Кёрли", + "Лав", + "Лайлс", + "Лайл", + "Лайт", + "Лай", + "Ламберт", + "Ламб", + "Лам", + "Ланге", + "Ланг", + "Ландерс", + "Ланди", + "Ландри", + "Ландрум", + "Ланкастер", + "Ланц", + "Ланье", + "Лара", + "Ларкин", + "Ларсен", + "Ларсон", + "Лару", + "Ласк", + "Ласситер", + "Латам", + "Лауэр", + "Лау", + "Лафлин", + "Леаль", + "Леблан", + "Левандовски", + "Левек", + "Левин", + "Леви", + "Леггетт", + "Ледбеттер", + "Ледесма", + "Ледфорд", + "Лейва", + "Лейси", + "Лейтон", + "Леман", + "Лемонс", + "Лемон", + "Лемус", + "Ленц", + "Леонард", + "Леоне", + "Леон", + "Лесли", + "Лестер", + "Ле", + "Ливингстон", + "Ливитт", + "Лилли", + "Лиман", + "Лима", + "Лим", + "Линарес", + "Линдер", + "Линдквист", + "Линдсей", + "Линдси", + "Линд", + "Линкольн", + "Линк", + "Линн", + "Линтон", + "Линч", + "Лин", + "Лионс", + "Лион", + "Липскомб", + "Лири", + "Литл", + "Литтлджон", + "Литтл", + "Лич", + "Ли", + "Ллойд", + "Ловелас", + "Ловелл", + "Ловетт", + "Логан", + "Лозано", + "Лойд", + "Локвуд", + "Локетт", + "Локк", + "Локлир", + "Локхарт", + "Ломбарди", + "Ломбардо", + "Лонгория", + "Лонго", + "Лонг", + "Лондон", + "Лопес", + "Лорд", + "Лоренс", + "Лоренцо", + "Лоренц", + "Лотт", + "Лоулер", + "Лоури", + "Лоусон", + "Лоус", + "Лоутон", + "Лоу", + "Лофтон", + "Ло", + "Луго", + "Луис", + "Лукас", + "Лумис", + "Луна", + "Лунд", + "Луни", + "Лунсфорд", + "Луонг", + "Лусеро", + "Лутц", + "Лухан", + "Лу", + "Льюис", + "Лэдд", + "Лэйк", + "Лэйн", + "Лэйрд", + "Лэй", + "Лэки", + "Лэнгли", + "Лэнгстон", + "Лэнгфорд", + "Лэндис", + "Лэнд", + "Лэнкфорд", + "Лэнс", + "Лэси", + "Людвиг", + "Люк", + "Люн", + "Лютер", + "Лю", + "Лян", + "Мабри", + "Магана", + "Маги", + "Магуайр", + "Мадригал", + "Мадрид", + "Майерс", + "Майер", + "Майз", + "Майклс", + "Майкл", + "Майлз", + "Майлс", + "Майнер", + "Майнор", + "Майн", + "Майо", + "Майрилис", + "Май", + "МакАдамс", + "МакАлистер", + "МакАртур", + "МакБрайд", + "МакВильямс", + "МакГенри", + "МакГилл", + "МакГиннис", + "МакГи", + "МакГоуэн", + "МакГрат", + "МакГрегор", + "МакГроу", + "МакГуайр", + "МакДауэлл", + "МакДермотт", + "МакДональд", + "МакДоннелл", + "МакДоно", + "МакДэниэл", + "МакКалоу", + "МакКанн", + "МакКарди", + "МакКарти", + "МакКартни", + "МакКейб", + "МакКейн", + "МакКей", + "МакКензи", + "МакКенна", + "МакКинли", + "МакКинни", + "МакКиннон", + "МакКи", + "МакКлауд", + "МакКлейн", + "МакКлелланд", + "МакКлеллан", + "МакКлендон", + "МакКлюр", + "МакКой", + "МакКолам", + "МакКоли", + "МакКолл", + "МакКоннелл", + "МакКорд", + "МакКормак", + "МакКормик", + "МакКракен", + "МакКрей", + "МакКрэри", + "МакКуин", + "МакЛафлин", + "МакЛейн", + "МакЛеод", + "МакЛин", + "МакМагон", + "МакМаллен", + "МакМанус", + "МакНайт", + "МакНил", + "МакРей", + "МакЭлрой", + "МакЭфи", + "Макалистер", + "Макги", + "Макговерн", + "Макдональд", + "Макинтайр", + "Макинтош", + "Маккарти", + "Маккензи", + "Макки", + "Макмиллан", + "Макмэхэн", + "Макналли", + "Макналти", + "Макнамара", + "Макнейл", + "Макнейр", + "Макнили", + "Макнил", + "Максвелл", + "Макфадден", + "Макфарлэнд", + "Макферсон", + "Макхью", + "Мак", + "Маллен", + "Маллиган", + "Маллинс", + "Маллин", + "Маллой", + "Маллори", + "Мальдонадо", + "Манн", + "Мансон", + "Мануэль", + "Марес", + "Марино", + "Марин", + "Марион", + "Маркес", + "Маркс", + "Маркум", + "Маркус", + "Маркхэм", + "Марк", + "Марлоу", + "Марреро", + "Маррокин", + "Мартинес", + "Мартино", + "Мартин", + "Маршалл", + "Марш", + "Масиас", + "Массачусетс", + "Мастерсон", + "Мастерс", + "Маст", + "Мата", + "Матис", + "Матос", + "Маттингли", + "Маурер", + "Махан", + "Махер", + "Махони", + "Мачадо", + "Медейрус", + "Медина", + "Медоуз", + "Медрано", + "Межа", + "Мейберри", + "Мейджор", + "Мейер", + "Мейнард", + "Мейс", + "Мелвин", + "Мелендес", + "Мелло", + "Мельтон", + "Мена", + "Мендес", + "Мендоса", + "Мердок", + "Мередит", + "Меркадо", + "Мерритт", + "Мерсер", + "Мерчант", + "Меса", + "Мессер", + "Мессина", + "Месси", + "Меткалф", + "Мехия", + "Мецгер", + "Мец", + "Миддлтон", + "Мид", + "Миксон", + "Микс", + "Мик", + "Милам", + "Миллард", + "Миллер", + "Миллиган", + "Миллс", + "Милнер", + "Милтон", + "Мимс", + "Минс", + "Минтон", + "Миранда", + "Мирик", + "Митчелл", + "Михан", + "Мишель", + "Мишо", + "Мобли", + "Мозер", + "Мозли", + "Мойер", + "Мокк", + "Молина", + "Монахан", + "Мондрагон", + "Монк", + "Монро", + "Монтальво", + "Монтано", + "Монтаньес", + "Монтгомери", + "Монтеро", + "Монтес", + "Монтойя", + "Моралес", + "Моран", + "Мора", + "Морган", + "Морено", + "Морзе", + "Морин", + "Морленд", + "Моррелл", + "Моррисон", + "Моррисси", + "Моррис", + "Морроу", + "Мортон", + "Мор", + "Мосли", + "Мосс", + "Мотт", + "Моусес", + "Моффетт", + "Мохамед", + "Мошер", + "Моя", + "Муди", + "Мултон", + "Мунис", + "Муни", + "Муньос", + "Мун", + "Мурильо", + "Мур", + "Мухаммед", + "Мьюз", + "Мэдден", + "Мэддокс", + "Мэдисон", + "Мэдли", + "Мэдсен", + "Мэйсон", + "Мэйфилд", + "Мэй", + "Мэлони", + "Мэлоун", + "Мэнли", + "Мэннинг", + "Мэнсфилд", + "Мэрилл", + "Мэтлок", + "Мэтсон", + "Мэтьюз", + "Мюллер", + "Мюррей", + "Мёллер", + "Мёрфи", + "Наваррете", + "Наварро", + "Нава", + "Нагель", + "Надь", + "Найт", + "Най", + "Нанн", + "Напье", + "Наранхо", + "Натсон", + "Нахера", + "Нго", + "Нгуен", + "Неварес", + "Невиль", + "Негрете", + "Негрон", + "Нейдо", + "Нейлор", + "Нейман", + "Нельсон", + "Несбитт", + "Несс", + "Нефф", + "Никерсон", + "Николас", + "Николсон", + "Николс", + "Никсон", + "Никс", + "Нили", + "Нильсен", + "Нил", + "Нобльз", + "Новак", + "Нокс", + "Нолан", + "Норвуд", + "Норман", + "Норрис", + "Нортон", + "Норт", + "Норьега", + "Нотт", + "Ноубл", + "Ноулз", + "Ноэль", + "Нугент", + "Нунан", + "Нуньес", + "Ньевес", + "Ньето", + "Ньюберри", + "Ньюби", + "Ньюкомб", + "Ньюман", + "Ньюсом", + "Ньютон", + "Ньюэлл", + "Нью", + "Нэнс", + "Нэш", + "Н", + "ОДоннелл", + "ОКоннелл", + "ОМэйли", + "ОНил", + "ОРейли", + "ОРурк", + "Обрин", + "Оверстрит", + "Овертон", + "Огден", + "Оглсби", + "Огл", + "Оделл", + "Одом", + "Окампо", + "Окифи", + "Оконнор", + "Олбрайт", + "Олдридж", + "Олдрич", + "Олдхэм", + "Олеарий", + "Оливарес", + "Оливас", + "Олива", + "Оливейра", + "Оливер", + "Оллред", + "Олсен", + "Олсон", + "Ольвера", + "Онеилл", + "Онил", + "Онтиверос", + "Ордоньес", + "Орельяна", + "Орландо", + "Орнелас", + "Ороско", + "Орр", + "Ортега", + "Ортис", + "Осборн", + "Освальд", + "Осорио", + "Остин", + "Отеро", + "Отто", + "Отт", + "Оукли", + "Оукс", + "Оутс", + "Оуэнс", + "Оуэн", + "Охара", + "Охеда", + "Очоа", + "О", + "Паган", + "Паджетт", + "Падилья", + "Пайк", + "Пайл", + "Пайпер", + "Пакетт", + "Пак", + "Паласиос", + "Палмер", + "Палумбо", + "Пальма", + "Паппас", + "Парди", + "Паредес", + "Паркер", + "Паркс", + "Парк", + "Парнелл", + "Парра", + "Парротт", + "Парр", + "Парсонс", + "Парсон", + "Пархам", + "Пас", + "Патель", + "Патиньо", + "Патнэм", + "Патрик", + "Паттен", + "Паттерсон", + "Паттон", + "Пауэлл", + "Пауэрс", + "Пауэр", + "Пачеко", + "Педерсен", + "Педерсон", + "Пейдж", + "Пейс", + "Пек", + "Пеллетье", + "Пена", + "Пендлтон", + "Пеннингтон", + "Пенни", + "Пенн", + "Пеппер", + "Пералез", + "Перальта", + "Первис", + "Пердью", + "Перейра", + "Перес", + "Перкинс", + "Перрин", + "Перри", + "Петерсен", + "Петерсон", + "Петтит", + "Петти", + "Пиз", + "Пикенс", + "Пикеринг", + "Пикетт", + "Пикок", + "Пиментель", + "Пина", + "Пинеда", + "Пинто", + "Пиплз", + "Пирсон", + "Пирс", + "Питерс", + "Питтман", + "Питтс", + "Пламмер", + "Платт", + "Пойндекстер", + "Поланко", + "Полк", + "Поллард", + "Поллок", + "Полсен", + "Полсон", + "Пол", + "Пондер", + "Понсе", + "Портер", + "Портильо", + "Пост", + "Поттер", + "Поттс", + "Поузи", + "Поуп", + "По", + "Прадо", + "Прайор", + "Прайс", + "Пратер", + "Прескотт", + "Пресли", + "Прессли", + "Престон", + "Прието", + "Прингл", + "Принц", + "Прист", + "Притчард", + "Притчетт", + "Проктор", + "Пруетт", + "Прэтт", + "Прюитт", + "Пулидо", + "Пул", + "Пуэнте", + "Пфайффер", + "Пьер", + "Пью", + "Пэйнтер", + "Пэйн", + "Пэйтон", + "Пэйт", + "Пэрис", + "Пэриш", + "Пэррис", + "Пэрриш", + "Пёрселл", + "Пёрсон", + "Радд", + "Райан", + "Райдер", + "Райли", + "Раймонд", + "Райнхарт", + "Райс", + "Райт", + "Рамирес", + "Рамос", + "Ранжел", + "Ранкин", + "Рапп", + "Расмуссен", + "Рассел", + "Расс", + "Ратлифф", + "Раус", + "Раффин", + "Рафф", + "Рашинг", + "Раш", + "Реддинг", + "Редд", + "Редман", + "Редмонд", + "Резерфорд", + "Рейган", + "Рейдер", + "Рейд", + "Рейес", + "Рейли", + "Рейна", + "Рейни", + "Рейнольдс", + "Рейносо", + "Рейнс", + "Рейнхардт", + "Рейс", + "Рейх", + "Рей", + "Ректор", + "Реми", + "Рендон", + "Реннер", + "Рентериа", + "Ривас", + "Ривера", + "Риверз", + "Ривз", + "Риган", + "Риггинс", + "Риггс", + "Риддл", + "Ридер", + "Риди", + "Ридли", + "Рид", + "Риз", + "Рикеттс", + "Рико", + "Рикс", + "Ринг", + "Ринкон", + "Риос", + "Рирдон", + "Рис", + "Риттер", + "Рихтер", + "Риццо", + "Ричардсон", + "Ричардс", + "Ричард", + "Ричи", + "Ричмонд", + "Риччи", + "Рич", + "Ри", + "Роббинс", + "Робб", + "Роберсон", + "Робертсон", + "Робертс", + "Роберт", + "Робинсон", + "Робледо", + "Роблес", + "Роджерс", + "Родригес", + "Роза", + "Розенберг", + "Розенталь", + "Розен", + "Ройал", + "Рой", + "Рокуэлл", + "Рок", + "Роланд", + "Роллинз", + "Ролстон", + "Ролс", + "Романо", + "Роман", + "Ромеро", + "Ромо", + "Рорк", + "Росадо", + "Росалес", + "Росарио", + "Росас", + "Росси", + "Росс", + "Рот", + "Роудз", + "Роудс", + "Роуз", + "Роули", + "Роупер", + "Роуч", + "Роуэлл", + "Роуэн", + "Роу", + "Рохас", + "Роча", + "Рош", + "Рубин", + "Рубио", + "Рудольф", + "Руис", + "Рукер", + "Руни", + "Руссо", + "Руст", + "Рутледж", + "Рут", + "Рэглэнд", + "Рэгсдэйл", + "Рэдфорд", + "Рэйнс", + "Рэй", + "Рэмси", + "Рэндалл", + "Рэндл", + "Рэндольф", + "Рэнсом", + "Рэпп", + "Сааведра", + "Саггс", + "Саенс", + "Сазерленд", + "Сайзмор", + "Сайкс", + "Саймон", + "Салазар", + "Салас", + "Салдана", + "Салинас", + "Салливан", + "Сальгадо", + "Сальдивар", + "Сальседо", + "Самбрано", + "Саммерс", + "Самнер", + "Сандерсон", + "Сандерс", + "Сандовал", + "Сантана", + "Сантос", + "Сантьяго", + "Санчес", + "Сан", + "Сапата", + "Сапп", + "Сарагоса", + "Сарате", + "Сарджент", + "Саттерфилд", + "Саттон", + "Сауседо", + "Свенсон", + "Свитзер", + "Свит", + "Свифт", + "Свон", + "Себальос", + "Сегура", + "Сейлор", + "Сеймур", + "Секстон", + "Селби", + "Селлерс", + "Селф", + "Сепеда", + "Сепульведа", + "Сервантес", + "Серда", + "Серна", + "Серрано", + "Сесил", + "Сеха", + "Сигел", + "Силс", + "Сильва", + "Сильверман", + "Сильвер", + "Сильвестер", + "Симан", + "Симмонс", + "Симмс", + "Симонс", + "Симпкинс", + "Симпсон", + "Симс", + "Сингер", + "Синглтари", + "Синглтон", + "Сингх", + "Синклер", + "Сирс", + "Сир", + "Сиск", + "Сиснерос", + "Сиссон", + "Сиэй", + "Скарборо", + "Сквайрс", + "Скейлс", + "Скелтон", + "Скиннер", + "Скотт", + "Скраггс", + "Скэггс", + "Скэнлон", + "Слоан", + "Слотер", + "Слоун", + "Слэйд", + "Слэйтер", + "Слэк", + "Смайли", + "Смарт", + "Смит", + "Смоллвуда", + "Смолли", + "Смолл", + "Снайдер", + "Снелл", + "Снид", + "Снодграсс", + "Сноу", + "Сойер", + "Солано", + "Солис", + "Соломон", + "Солсбери", + "Солтер", + "Соммер", + "Сонг", + "Сондерс", + "Соренсен", + "Соренсон", + "Сориано", + "Соса", + "Сотело", + "Сото", + "Соуза", + "Спайви", + "Спайсер", + "Спанн", + "Спаркс", + "Спенглер", + "Спенсер", + "Спенс", + "Сперлок", + "Спирс", + "Спир", + "Сполдинг", + "Спрингер", + "Спрэг", + "Спэйн", + "СтДжон", + "СтКлэр", + "Стаббс", + "Стайлз", + "Стаки", + "Стали", + "Сталлингс", + "Стампер", + "Стамп", + "Старки", + "Старкс", + "Старк", + "Старнс", + "Старр", + "Стаут", + "Стауффер", + "Стаффорд", + "Стейси", + "Стек", + "Стерлинг", + "Стернс", + "Стерн", + "Стивенсон", + "Стивенс", + "Стилл", + "Стил", + "Стинсон", + "Стин", + "Стовэлл", + "Стоддард", + "Стокс", + "Стоктон", + "Сток", + "Столл", + "Стори", + "Стоувер", + "Стоунер", + "Стоун", + "Страттон", + "Страуд", + "Стрикленд", + "Стрингер", + "Стритер", + "Стрит", + "Стронг", + "Стросс", + "Стрэндж", + "Стэйплс", + "Стэнли", + "Стэнтон", + "Стэнфилду", + "Стэнфорд", + "Стэплтон", + "Стэтон", + "Стюард", + "Стюарт", + "Суарес", + "Суини", + "Суонн", + "Суонсон", + "Суэйн", + "Сьерра", + "Сьюэлл", + "Сэвэдж", + "Сэдлер", + "Сэлмон", + "Сэмпл", + "Сэмпсон", + "Сэмс", + "Сэмюэлс", + "Сэмюэл", + "Сэндс", + "Сэнфорд", + "Сюй", + "Сюн", + "Таббс", + "Табор", + "Тайер", + "Тайлер", + "Тайсон", + "Такер", + "Такетт", + "Талберт", + "Талбот", + "Тамайо", + "Там", + "Тан", + "Тао", + "Тапиа", + "Тарп", + "Таттл", + "Татум", + "Таунсенд", + "Тейлор", + "Тейт", + "Тельес", + "Темплтон", + "Темпл", + "Терпин", + "Террелл", + "Терри", + "Терстон", + "Тибодо", + "Тиг", + "Тидвелл", + "Тилли", + "Тиллман", + "Тиммонс", + "Тинсли", + "Типтон", + "Тирни", + "Титус", + "Тобиас", + "Тобин", + "Товар", + "Тодд", + "Толедо", + "Толливер", + "Тольберт", + "Томасон", + "Томас", + "Томлинсон", + "Томлин", + "Томпкинс", + "Томпсон", + "Томсон", + "Тони", + "Торнтон", + "Торн", + "Торп", + "Торрез", + "Торрес", + "Тот", + "Тран", + "Трахан", + "Тревино", + "Трейлор", + "Трейси", + "Трент", + "Трехо", + "Тримбл", + "Трин", + "Триплетт", + "Трипп", + "Тройер", + "Троттер", + "Троут", + "Трутмен", + "Трухильо", + "Трэвис", + "Трэммелл", + "Трэшер", + "Турман", + "Тэлли", + "Тэнг", + "Тэннер", + "Тёрнер", + "Уайатт", + "Уайзман", + "Уайз", + "Уайлдер", + "Уайлз", + "Уайли", + "Уайтинг", + "Уайтхед", + "Уайт", + "Уеллетт", + "Уивер", + "Уиггинс", + "Уизерспун", + "Уилан", + "Уилберн", + "Уилер", + "Уилкинсон", + "Уилкинс", + "Уилкокс", + "Уилкс", + "Уиллард", + "Уиллетт", + "Уиллис", + "Уилли", + "Уиллоуби", + "Уиллс", + "Уилл", + "Уилсон", + "Уильямсон", + "Уильямс", + "Уильям", + "Уинг", + "Уинслоу", + "Уинстон", + "Уинтерс", + "Уиппл", + "Уитакер", + "Уитингтон", + "Уитли", + "Уитлок", + "Уитмен", + "Уитмор", + "Уитни", + "Уиттакер", + "Уитт", + "Уитфилд", + "Ульрих", + "Унгер", + "Уодделл", + "Уокер", + "Уолден", + "Уолдрон", + "Уоллер", + "Уоллес", + "Уоллис", + "Уоллс", + "Уолл", + "Уолтерс", + "Уолтер", + "Уолтон", + "Уолш", + "Уомакк", + "Уорд", + "Уоркмэн", + "Уорли", + "Уорнер", + "Уоррен", + "Уортингтон", + "Уортон", + "Уотерс", + "Уоткинс", + "Уотсон", + "Уоттерс", + "Уоттс", + "Уотт", + "Уошберн", + "Урбан", + "Урибе", + "Уртадо", + "Уэббер", + "Уэбб", + "Уэзерс", + "Уэйд", + "Уэйкфилд", + "Уэйли", + "Уэйр", + "Уэйт", + "Уэй", + "Уэлдон", + "Уэлен", + "Уэллс", + "Уэлш", + "Уэрта", + "Уэр", + "Уэсли", + "Уэстбрук", + "Уэстон", + "Уэстфолл", + "Уэст", + "Фаган", + "Файн", + "Фалькон", + "Фальк", + "Фам", + "Фанк", + "Фан", + "Фариас", + "Фарли", + "Фарнсворт", + "Фаррар", + "Фаррелл", + "Фарр", + "Фаулер", + "Фаунтин", + "Фауст", + "Феликс", + "Фелисиано", + "Фелпс", + "Фелтон", + "Фельдер", + "Фельдман", + "Фентон", + "Фергюсон", + "Фермер", + "Фернандес", + "Феррара", + "Ферраро", + "Феррейра", + "Феррелл", + "Феррер", + "Феррис", + "Ферри", + "Фигероа", + "Фиерро", + "Филдс", + "Филд", + "Филлипс", + "Финк", + "Финли", + "Финни", + "Финн", + "Финч", + "Фиппс", + "Фитч", + "Фицджеральд", + "Фицпатрик", + "Фишер", + "Фиш", + "Фламандец", + "Фланаган", + "Флауэрс", + "Флаэрти", + "Флетчер", + "Флинн", + "Флинт", + "Флойд", + "Флорес", + "Флуд", + "Фогель", + "Фогт", + "Фокс", + "Фолей", + "Фолкнер", + "Фолк", + "Фонг", + "Фонсека", + "Фонтейн", + "Фонтенот", + "Форбс", + "Форд", + "Форман", + "Формен", + "Форрестер", + "Форрест", + "Форсайт", + "Форте", + "Фортнер", + "Фосс", + "Фостер", + "Фрай", + "Франки", + "Франклин", + "Франко", + "Франс", + "Франциско", + "Франц", + "Фредерик", + "Фрейзер", + "Фрей", + "Френд", + "Френч", + "Фриас", + "Фридман", + "Фриман", + "Фриц", + "Фрост", + "Фрэли", + "Фрэнк", + "Фрэнсис", + "Фуа", + "Фукс", + "Фуллер", + "Фултон", + "Фурнье", + "Фут", + "Фуэнтес", + "Фэйрчайлд", + "Фэйр", + "Фэй", + "Фэллон", + "Фэррис", + "Хаас", + "Хаббард", + "Хаган", + "Хаггинс", + "Хаген", + "Хагер", + "Хаддлстон", + "Хаджинс", + "Хайатт", + "Хайден", + "Хайд", + "Хайман", + "Хайнс", + "Хайн", + "Хайтауэр", + "Хайт", + "Хай", + "Хакер", + "Халверсон", + "Халл", + "Хаммер", + "Хаммонд", + "Хамм", + "Хамфрис", + "Хамфри", + "Ханикатт", + "Ханна", + "Хансен", + "Хантер", + "Хантли", + "Хант", + "Хан", + "Харамильо", + "Харви", + "Харвуд", + "Харгрув", + "Харден", + "Хардинг", + "Хардин", + "Харди", + "Харкинс", + "Харли", + "Харлоу", + "Харман", + "Хармон", + "Хармс", + "Харпер", + "Харп", + "Харрелл", + "Харрингтон", + "Харрисон", + "Харрис", + "Хартли", + "Хартман", + "Харт", + "Хасан", + "Хаскинс", + "Хаттон", + "Хатчинсон", + "Хатчинс", + "Хатчисон", + "Хаузер", + "Хаус", + "Хауэлл", + "Хаффман", + "Хафф", + "Хаф", + "Ха", + "Хван", + "Хевенс", + "Хедрик", + "Хейворд", + "Хейвуд", + "Хейли", + "Хейл", + "Хейни", + "Хейнс", + "Хейрстон", + "Хейс", + "Хек", + "Хелмс", + "Хелм", + "Хемфилл", + "Хендерсон", + "Хендриксон", + "Хендрикс", + "Хенкинс", + "Хенли", + "Хеннинг", + "Хенсли", + "Хенсон", + "Херндон", + "Херн", + "Херрингтон", + "Херринг", + "Херрманн", + "Хиггинботам", + "Хиггинс", + "Хикки", + "Хикман", + "Хикс", + "Хили", + "Хиллиард", + "Хиллман", + "Хиллс", + "Хилл", + "Хилтон", + "Хильдебранд", + "Хименес", + "Хиндс", + "Хинкл", + "Хинсон", + "Хинтон", + "Хирш", + "Хитон", + "Хит", + "Хичкок", + "Хоанг", + "Хоббс", + "Хобсон", + "Ховард", + "Хоган", + "Хог", + "Ходжес", + "Ходж", + "Хойт", + "Хокинс", + "Холбрук", + "Холгин", + "Холден", + "Холдер", + "Холи", + "Холкомб", + "Холланд", + "Холлидей", + "Холлингсворт", + "Холлис", + "Холли", + "Холлоуэй", + "Холл", + "Холман", + "Холмс", + "Холм", + "Холтон", + "Холт", + "Хонг", + "Хопкинс", + "Хоппер", + "Хопсон", + "Хорват", + "Хорнер", + "Хорн", + "Хортон", + "Хоскинс", + "Хостетлер", + "Хоторн", + "Хоук", + "Хоуп", + "Хоу", + "Хоффманн", + "Хоффман", + "Хофф", + "Хо", + "Хсу", + "Хуан", + "Хуарес", + "Хубер", + "Хувер", + "Худ", + "Хукер", + "Хукс", + "Хук", + "Хуммель", + "Хупер", + "Хусейн", + "Хутсон", + "Ху", + "Хьюз", + "Хьюитт", + "Хьюстон", + "Хэа", + "Хэдли", + "Хэд", + "Хэй", + "Хэкетт", + "Хэмби", + "Хэмлин", + "Хэммондс", + "Хэмптон", + "Хэмрик", + "Хэм", + "Хэнди", + "Хэнд", + "Хэнкок", + "Хэнкс", + "Хэнли", + "Хэннон", + "Хэнсон", + "Хэтфилд", + "Хэтчер", + "Хэтч", + "Хэтэуэй", + "Хюинь", + "Хёрд", + "Хёрли", + "Хёрст", + "Хёрт", + "Цао", + "Циглер", + "Циммерман", + "Циммер", + "Чаваррия", + "Чавес", + "Чавис", + "Чайлдерс", + "Чайлдз", + "Чакон", + "Чанг", + "Чандлер", + "Чан", + "Чапа", + "Чарльз", + "Чатман", + "Чау", + "Чедвик", + "Чейз", + "Чейни", + "Чемберлен", + "Чемпион", + "Ченс", + "Черри", + "Черчилль", + "Честейн", + "Честер", + "Четам", + "Чжан", + "Чжоу", + "Чик", + "Чилдресс", + "Чин", + "Чисхолм", + "Чиу", + "Чой", + "Чонг", + "Чо", + "Чунг", + "Чун", + "Чу", + "Чыонг", + "Чэмберс", + "Чэнь", + "Чэн", + "Чэпман", + "Чэппелл", + "Чёрч", + "Шакельфорд", + "Шампейн", + "Шанкс", + "Шапиро", + "Шарма", + "Шарп", + "Шафер", + "Шаффер", + "Шах", + "Шваб", + "Шварц", + "Шелби", + "Шелдон", + "Шелли", + "Шелл", + "Шелтон", + "Шеннон", + "Шепард", + "Шеппард", + "Шервуд", + "Шерер", + "Шеридан", + "Шерман", + "Шеррилл", + "Шефер", + "Шеффер", + "Шеффилд", + "Шилдс", + "Шиллинг", + "Шин", + "Шипли", + "Шипман", + "Шипп", + "Ширер", + "Ширли", + "Шитс", + "Шихен", + "Ши", + "Шмидт", + "Шмид", + "Шмитт", + "Шмитц", + "Шнайдер", + "Шокли", + "Шорт", + "Шоу", + "Шофилд", + "Шпеер", + "Шрайбер", + "Шредер", + "Шрейдер", + "Штайнер", + "Штайн", + "Шталь", + "Штейнберг", + "Штеффен", + "Шуберт", + "Шук", + "Шулер", + "Шульте", + "Шульц", + "Шумахер", + "Шумэйкер", + "Шустер", + "Шэйвер", + "Шэнк", + "Эбботт", + "Эберт", + "Эбер", + "Эванс", + "Эверетт", + "Эдвардс", + "Эдгар", + "Эдди", + "Эдж", + "Эдмондсон", + "Эдмондс", + "Эйвери", + "Эйкерс", + "Эймос", + "Эймс", + "Эккерт", + "Эколс", + "Элам", + "Элдер", + "Элдридж", + "Элиас", + "Элизондо", + "Эли", + "Элкинс", + "Эллер", + "Эллиот", + "Эллисон", + "Эллис", + "Элли", + "Эллсворт", + "Элмор", + "Элтон", + "Эмброуз", + "Эмери", + "Эмерсон", + "Эммонс", + "Энгель", + "Энгл", + "Энджел", + "Эндрюс", + "Эндрю", + "Эннис", + "Энрикес", + "Энтони", + "Эпперсон", + "Эпплгейт", + "Эппс", + "Эпштейн", + "Эрвин", + "Эредиа", + "Эриксон", + "Эрли", + "Эрл", + "Эрнандес", + "Эрнст", + "Эррера", + "Эррон", + "Эскаланте", + "Эскамиллья", + "Эскивеля", + "Эскобар", + "Эскобедо", + "Эспарза", + "Эспиноза", + "Эспиноса", + "Эспозито", + "Эстеп", + "Эстер", + "Эстес", + "Эстрада", + "Этвуд", + "Эшби", + "Эшли", + "Эштон", + "Эш", + "Юбэнкс", + "Юинг", + "Юнг", + "Юн", + "Ю", + "Яззи", + "Якобсен", + "Якобсон", + "Янгблад", + "Янг", + "Янез", + "Янсен", + "Янси", + "Ян", + "Ярбро" + ] + }, + { + "usage": "given", + "gender": "female", + "name": [ + "Ава", + "Августа", + "Августина", + "Авелина", + "Авильда", + "Авис", + "Аврил", + "Аврора", + "Агата", + "Агеда", + "Агнесса", + "Агнус", + "Агрипина", + "Агустина", + "Адалина", + "Ада", + "Аделаида", + "Адела", + "Аделина", + "Аделия", + "Аделла", + "Адель", + "Адена", + "Адина", + "Адриана", + "Адрианна", + "Адриа", + "Адриенн", + "Адриен", + "Адриэн", + "Азали", + "Аззи", + "Азия", + "Азучена", + "Аида", + "Аиша", + "Айа", + "Айви", + "Айвори", + "Айлин", + "Айра", + "Айседора", + "Айша", + "Акила", + "Алайна", + "Алана", + "Аланна", + "Алеида", + "Алейша", + "Александра", + "Александрия", + "Алекса", + "Алексис", + "Алексия", + "Алекс", + "Алена", + "Алессандра", + "Алеся", + "Алета", + "Алетия", + "Алехандра", + "Алехандрина", + "Алеша", + "Алешия", + "Ализа", + "Аликс", + "Алина", + "Алин", + "Алиса", + "Алисия", + "Алисса", + "Алита", + "Алиша", + "Алишия", + "Алия", + "Али", + "Алла", + "Аллегра", + "Аллена", + "Аллен", + "Аллин", + "Алма", + "Алона", + "Алтея", + "Альба", + "Альберта", + "Альбертина", + "Альбина", + "Альва", + "Альвера", + "Альверта", + "Альвина", + "Альда", + "Альмеда", + "Альмета", + "Альтаграсия", + "Альта", + "Альфа", + "Альфреда", + "Альфредия", + "Алэйна", + "Амада", + "Амалия", + "Амаль", + "Аманда", + "Амелия", + "Америка", + "Амина", + "Амира", + "Ами", + "Анабель", + "Аналиса", + "Анамария", + "Анастасия", + "Анастейша", + "Ана", + "Ангела", + "Ангелина", + "Ангила", + "Англа", + "Англея", + "Андера", + "Анджела", + "Анджелик", + "Анджелина", + "Анджелита", + "Анджелия", + "Анджелла", + "Андра", + "Андреа", + "Андре", + "Андрия", + "Анетт", + "Анжанетт", + "Анжелика", + "Анжелина", + "Аника", + "Аниса", + "Анисса", + "Анита", + "Анитра", + "Аниша", + "Аннабель", + "Аннализа", + "Аннамария", + "Аннамари", + "Аннамэй", + "Анна", + "Аннелизе", + "Аннели", + "Аннель", + "Аннемари", + "Аннета", + "Аннетт", + "Аннет", + "Анника", + "Аннис", + "Аннита", + "Антонетта", + "Антонетт", + "Антонина", + "Антониэтта", + "Антония", + "Антуанетта", + "Анхелес", + "Ань", + "Аня", + "Аполлония", + "Араселис", + "Арасели", + "Ара", + "Арвилла", + "Аргелия", + "Аргентина", + "Ардат", + "Арделия", + "Арделла", + "Ардель", + "Ардис", + "Ардит", + "Арета", + "Ариана", + "Арианна", + "Ариан", + "Арика", + "Ариэль", + "Арлайн", + "Арла", + "Арлена", + "Арлета", + "Арлетта", + "Арлетт", + "Арлинда", + "Арлин", + "Арманда", + "Армандина", + "Армида", + "Арминда", + "Арнетта", + "Арнетт", + "Арнита", + "Арселия", + "Арти", + "Арье", + "Ассунта", + "Астрид", + "Асунсьон", + "Аура", + "Аурелия", + "Афина", + "Ашанти", + "Аша", + "Аяна", + "Аянна", + "Бабара", + "Бабетта", + "Банни", + "Барабара", + "Барбара", + "Барбера", + "Барби", + "Барбра", + "Барб", + "Бари", + "Барри", + "Басилия", + "Баффи", + "Беата", + "Беатрис", + "Беа", + "Бебе", + "Беверли", + "Беки", + "Бекки", + "Бела", + "Белен", + "Белинда", + "Белия", + "Белкис", + "Белла", + "Бельва", + "Бель", + "Бенита", + "Бенни", + "Беренис", + "Берил", + "Бернадетт", + "Бернадина", + "Бернарда", + "Бернардина", + "Берна", + "Бернетта", + "Бернис", + "Бернита", + "Берни", + "Берри", + "Берта", + "Берти", + "Бесси", + "Бесс", + "Бетани", + "Бетель", + "Беттина", + "Беттиэнн", + "Бетти", + "Бетт", + "Бетэнн", + "Бет", + "Беци", + "Биби", + "Билли", + "Биргит", + "Бирма", + "Блайт", + "Бланка", + "Бланш", + "Блонделл", + "Блоссом", + "Блэр", + "Бобби", + "Бобетт", + "Бойла", + "Бонита", + "Бонни", + "Бранда", + "Бранде", + "Бреанна", + "Бреанн", + "Бренда", + "Бренди", + "Бренна", + "Бретт", + "Бриана", + "Брианна", + "Брианн", + "Бригитта", + "Бригитт", + "Бриджетт", + "Бриджит", + "Брина", + "Бринда", + "Бринн", + "Британи", + "Бритни", + "Бриттани", + "Бритта", + "Бриттени", + "Бриттни", + "Бритт", + "Бри", + "Бронвин", + "Брук", + "Бруна", + "Брунильда", + "Брэнди", + "Була", + "Буэна", + "Бьюла", + "Бьянка", + "Бэйли", + "Бэмби", + "Бёрди", + "Вава", + "Вада", + "Вайнона", + "Валда", + "Валенсия", + "Валентина", + "Валерия", + "Валери", + "Валин", + "Валли", + "Валори", + "Валри", + "Вальтрауд", + "Ванда", + "Ванеса", + "Ванесса", + "Ванета", + "Ванетта", + "Ванита", + "Вания", + "Ванна", + "Ваннеса", + "Ваннесса", + "Василики", + "Вашти", + "Веда", + "Велвьет", + "Велда", + "Велия", + "Велма", + "Вельва", + "Велья", + "Вена", + "Венди", + "Вендолин", + "Венесса", + "Венетта", + "Венис", + "Венита", + "Венни", + "Венона", + "Венус", + "Веола", + "Вера", + "Верда", + "Верджи", + "Верди", + "Верена", + "Верла", + "Верлин", + "Верли", + "Верна", + "Вернетта", + "Вернис", + "Вернита", + "Верния", + "Верни", + "Верона", + "Вероника", + "Вероник", + "Верси", + "Верти", + "Веста", + "Вета", + "Виван", + "Вива", + "Вивиана", + "Вивьен", + "Вида", + "Вики", + "Викки", + "Викторина", + "Виктория", + "Вилда", + "Вильгельмина", + "Вильгемина", + "Вильма", + "Вина", + "Винита", + "Винни", + "Винона", + "Винченца", + "Виола", + "Виолета", + "Виолетта", + "Вирген", + "Виргиния", + "Вирджина", + "Вирджи", + "Висента", + "Вита", + "Вонда", + "Вонни", + "Вонсиль", + "Вэлари", + "Габриэла", + "Габриэлла", + "Габриэль", + "Гайя", + "Гала", + "Галина", + "Гарнетт", + "Гарнет", + "Гасси", + "Гвенда", + "Гвендолин", + "Гвен", + "Гвинет", + "Гвин", + "Гейл", + "Генриетта", + "Герда", + "Герта", + "Герти", + "Гертруда", + "Гертрудис", + "Гиги", + "Гизела", + "Гильермина", + "Гислена", + "Гита", + "Гия", + "Глайнда", + "Гленда", + "Глендора", + "Гленна", + "Гленнис", + "Гленни", + "Гленн", + "Глинда", + "Глинис", + "Глория", + "Глори", + "Глэдис", + "Глэди", + "Глэйдс", + "Голда", + "Голден", + "Голди", + "Гражина", + "Грасия", + "Грасьела", + "Грегория", + "Грегори", + "Грейси", + "Грейс", + "Грета", + "Гретта", + "Гретхен", + "Гризельда", + "Грисель", + "Гуадалупе", + "Гудрун", + "Гэйла", + "Гэйлен", + "Гэйл", + "Гэйнель", + "Гэри", + "Давида", + "Давина", + "Дагмар", + "Дагни", + "Даймонд", + "Дайна", + "Дайси", + "Дайэн", + "Дакота", + "Далида", + "Далила", + "Далин", + "Далия", + "Даллас", + "Даля", + "Дамарь", + "Даная", + "Дана", + "Данель", + "Данетт", + "Даника", + "Даниль", + "Данита", + "Даниэла", + "Даниэлла", + "Даниэль", + "Дания", + "Дани", + "Данна", + "Данниэль", + "Данн", + "Данута", + "Дара", + "Дарла", + "Дарлена", + "Дарлин", + "Дарнелл", + "Дарсел", + "Дарси", + "Дарья", + "Дафина", + "Дафна", + "Дачия", + "Двана", + "Двора", + "ДеАнн", + "Деадра", + "Деандра", + "Деандреа", + "Дебби", + "Деббра", + "Дебера", + "Деби", + "Дебора", + "Дебра", + "Деб", + "Девин", + "Девона", + "Девон", + "Девора", + "Деде", + "Дедра", + "Дежа", + "Дезире", + "Дейдра", + "Дейдре", + "Дейзи", + "Дейл", + "Дейн", + "Делана", + "Делена", + "Делинда", + "Делиса", + "Делисия", + "Делия", + "Делла", + "Делорас", + "Делора", + "Делси", + "Делуис", + "Дельма", + "Дельми", + "Дельта", + "Дельфа", + "Дельфина", + "Дельфия", + "Дель", + "Делэйн", + "Деметра", + "Деметрис", + "Деметрия", + "Денаэ", + "Дена", + "Дениз", + "Денин", + "Денисс", + "Денита", + "Дениша", + "Денна", + "Деннис", + "Денни", + "Деонна", + "Деон", + "Деспина", + "Десси", + "Дестини", + "Детра", + "Деэтта", + "Джада", + "Джалиса", + "Джамила", + "Джами", + "Джана", + "Джанелла", + "Джанель", + "Джанесса", + "Джанетт", + "Джанина", + "Джанин", + "Джанна", + "Джаннетт", + "Джасинда", + "Джасинта", + "Джастина", + "Джейми", + "Джеймс", + "Джейна", + "Джейни", + "Джейн", + "Джей", + "Джеки", + "Джеклин", + "Джема", + "Джемма", + "Джена", + "Дженезис", + "Дженей", + "Дженелла", + "Дженель", + "Дженетт", + "Дженет", + "Дженин", + "Дженис", + "Дженифер", + "Джениффер", + "Джения", + "Джени", + "Дженна", + "Дженнель", + "Дженнет", + "Дженнефер", + "Дженнин", + "Дженнифер", + "Дженни", + "Дженьюэри", + "Дженэй", + "Джен", + "Джералин", + "Джеральдин", + "Джереми", + "Джерика", + "Джерилин", + "Джери", + "Джерлин", + "Джеррика", + "Джерри", + "Джесения", + "Джесика", + "Джессика", + "Джессия", + "Джесси", + "Джестин", + "Джетта", + "Джетти", + "Джеффи", + "Джеффри", + "Джиджет", + "Джиллиан", + "Джильда", + "Джил", + "Джимми", + "Джина", + "Джинджер", + "Джинен", + "Джинетта", + "Джинис", + "Джини", + "Джинни", + "Джинн", + "Джин", + "Джоана", + "Джоани", + "Джоанна", + "Джоанни", + "Джоанн", + "Джоан", + "Джованна", + "Джовита", + "Джоди", + "Джозелин", + "Джозефина", + "Джози", + "Джойслин", + "Джойс", + "Джой", + "Джолин", + "Джоли", + "Джона", + "Джонелл", + "Джонель", + "Джонетта", + "Джони", + "Джонна", + "Джонни", + "Джонси", + "Джордан", + "Джорджана", + "Джорджанн", + "Джорджиана", + "Джорджина", + "Джорджин", + "Джорджия", + "Джорджи", + "Джоселин", + "Джослин", + "Джотта", + "Джоэлла", + "Джоэль", + "Джоэл", + "Джоэнн", + "Джоя", + "Джудит", + "Джуди", + "Джуд", + "Джузеппина", + "Джулиана", + "Джулианна", + "Джулианн", + "Джулиан", + "Джулин", + "Джулисса", + "Джулия", + "Джули", + "Джульета", + "Джульетта", + "Джунита", + "Джуни", + "Джун", + "Джуэл", + "Джэйд", + "Джэйми", + "Джэйм", + "Джэма", + "Джэмми", + "Джэнн", + "Диана", + "Дианна", + "Дианн", + "Диан", + "Дивина", + "Дигна", + "Диди", + "Дидра", + "Диедра", + "Дикси", + "Димпл", + "Дина", + "Динора", + "Диона", + "Дионна", + "Дионн", + "Дион", + "Дирдре", + "Диэнн", + "Дия", + "Дови", + "Доди", + "Долли", + "Долорес", + "Долорис", + "Доменика", + "Доминга", + "Доминика", + "Доминик", + "Домитила", + "Домоник", + "Дона", + "Донелла", + "Донетта", + "Донита", + "Донна", + "Доннетта", + "Донни", + "Доня", + "Дорати", + "Дора", + "Дореата", + "Дорена", + "Дорета", + "Доретея", + "Доретта", + "Дориан", + "Доринда", + "Дорин", + "Дорис", + "Дория", + "Дори", + "Доркас", + "Дорла", + "Дорота", + "Доротея", + "Дороти", + "Доррис", + "Дорта", + "Дорти", + "Дотти", + "Доун", + "Дрема", + "Дрима", + "Друзилла", + "Дрю", + "Дульсе", + "Дульси", + "Дусти", + "Дэннетт", + "Дэнни", + "Дэн", + "Дэрби", + "Дэрил", + "Евангелина", + "Ева", + "Еветта", + "Елена", + "Ена", + "Есения", + "Ессения", + "Жакетта", + "Жаклин", + "Жанель", + "Жанетта", + "Жанетт", + "Жанин", + "Жанмари", + "Жанна", + "Жаннетта", + "Жаннет", + "Жасмин", + "Женева", + "Женевив", + "Женевьева", + "Женевьев", + "Жермен", + "Жизель", + "Жильберта", + "Жинетт", + "Жозетт", + "Жозефина", + "Жоржетта", + "Жоржет", + "Жюль", + "Жюстин", + "Зада", + "Зайда", + "Зана", + "Зандра", + "Зелла", + "Зельда", + "Зельма", + "Зена", + "Зения", + "Зенобия", + "Зетта", + "Зинаида", + "Зина", + "Зита", + "Зойла", + "Зола", + "Зона", + "Зония", + "Зораида", + "Зора", + "Зофья", + "Зоя", + "Зула", + "Зулема", + "Зюльма", + "Ивана", + "Ива", + "Ивелисс", + "Иветта", + "Иветт", + "Ивона", + "Ивонна", + "Ивонн", + "Ив", + "Игнасия", + "Идалия", + "Ида", + "Иделла", + "Иделль", + "Иден", + "Иеша", + "Изабелла", + "Изабель", + "Изаура", + "Иза", + "Изетта", + "Изобель", + "Изола", + "Илана", + "Ила", + "Илеана", + "Илиана", + "Илона", + "Илуминада ", + "Ильда", + "Ильзе", + "Илья", + "Илэйн", + "Има", + "Имельда", + "Имогена", + "Ина", + "Инга", + "Ингер", + "Ингрид", + "Индира", + "Индия", + "Инес", + "Иносенсия", + "Иоланда", + "Иола", + "Иона", + "Ираида", + "Ирена", + "Ирина", + "Ирис", + "Ириш", + "Ирма", + "Ирэн", + "Исела", + "Исида", + "Исидра", + "Истер", + "Йетта", + "Йован", + "Йоланда", + "Йолонда", + "Йоне", + "Йонна", + "Кайла", + "Кайли", + "Кайл", + "Кай", + "Каландра", + "Кала", + "Калин", + "Калиста", + "Калли", + "Камала", + "Камелия", + "Камила", + "Камилла", + "Камиль", + "Ками", + "Канделария", + "Кандида", + "Канди", + "Кандра", + "Канеша", + "Каниша", + "Каприс", + "Каран", + "Кара", + "Карена", + "Карен", + "Каридад", + "Карима", + "Карина", + "Карин", + "Кариса", + "Карисса", + "Карита", + "Кари", + "Карла", + "Карлена", + "Карлетта", + "Карлина", + "Карлин", + "Карлита", + "Карли", + "Карлота", + "Карлотта", + "Карман", + "Карма", + "Кармела", + "Кармелина", + "Кармелита", + "Кармелия", + "Кармелла", + "Кармель", + "Кармен", + "Кармина", + "Кармон", + "Карола", + "Каролина", + "Каролин", + "Кароли", + "Кароль", + "Карон", + "Каррен", + "Карри", + "Касандра", + "Касимира", + "Кассандра", + "Кассаундра", + "Касси", + "Кассондра", + "Каталина", + "Каталин", + "Катарина", + "Катерина", + "Катерин", + "Катина", + "Кати", + "Катрина", + "Катрине", + "Катрин", + "Катрис", + "Катя", + "Каша", + "Квианна", + "Кева", + "Кейла", + "Кейлин", + "Кейли", + "Кейси", + "Кейсси", + "Кейс", + "Кейтлин", + "Кейт", + "Кейша", + "Кей", + "Кели", + "Келли", + "Келси", + "Кемберли", + "Кена", + "Кендал", + "Кенда", + "Кенденс", + "Кендра", + "Кениата", + "Кениатта", + "Кениша", + "Кения", + "Кенна", + "Кеннет", + "Кера", + "Керен", + "Кери", + "Керри", + "Керстин", + "Кертис", + "Кетура", + "Кеша", + "Кешия", + "Киана", + "Киара", + "Киззи", + "Кили", + "Кимбери", + "Кимберли", + "Кимбер", + "Кимбра", + "Кими", + "Ким", + "Кина", + "Киндра", + "Кира", + "Кирби", + "Кирстал", + "Кирстен", + "Кирсти", + "Кита", + "Китти", + "Кит", + "Киша", + "Кия", + "Клайд", + "Клара", + "Кларенс", + "Кларета", + "Кларетта", + "Кларибель", + "Кларина", + "Кларинда", + "Кларисса", + "Кларис", + "Кларита", + "Клаудиа", + "Клелия", + "Клеменсия", + "Клементина", + "Клемми", + "Клеопатра", + "Клеора", + "Клеотильда", + "Клео", + "Клер", + "Клета", + "Клодетт", + "Клодин", + "Клоди", + "Клора", + "Клоринда", + "Клотильда", + "Клэр", + "Клэсси", + "Коди", + "Колби", + "Колена", + "Колетта", + "Колетт", + "Колин", + "Коллен", + "Коллетт", + "Коллин", + "Конни", + "Консепсьон", + "Консепшн", + "Констанс", + "Консуэла", + "Контесса", + "Конча", + "Кончетта", + "Кончита", + "Корали", + "Корасон", + "Кора", + "Корделия", + "Кордия", + "Корди", + "Корена", + "Коретта", + "Корина", + "Коринна", + "Корин", + "Кори", + "Корлисс", + "Корнелия", + "Коррина", + "Корринн", + "Коррин", + "Корри", + "Кортни", + "Корэл", + "Креола", + "Крисельда", + "Крисси", + "Кристал", + "Кристан", + "Криста", + "Кристель", + "Кристена", + "Кристен", + "Кристиана", + "Кристиан", + "Кристина", + "Кристиния", + "Кристин", + "Кристия", + "Кристи", + "Кристл", + "Крис", + "Крус", + "Ксения", + "Куинн", + "Куин", + "Кук", + "Куэн", + "Кэй", + "Кэмерон", + "Кэмми", + "Кэм", + "Кэндес", + "Кэндис", + "Кэнди", + "Кэрил", + "Кэрин", + "Кэри", + "Кэролл", + "Кэролэнн", + "Кэрол", + "Кэрри", + "Кэрролл", + "Кэррол", + "Кэссиди", + "Кэсси", + "Кэтерн", + "Кэти", + "Кэтлин", + "Кэтрин", + "Кэтти", + "Кэт", + "ЛаДонна", + "ЛаКейша", + "ЛаКения", + "ЛаХуана", + "Лавада", + "Лавана", + "Лаванда", + "Лаванна", + "Лавения", + "Лавера", + "Лаверна", + "Лаверн", + "Лавета", + "Лаветта", + "Лавина", + "Лавиния", + "Лавона", + "Лавонда", + "Лавония", + "Лавонна", + "Лавон", + "Лав", + "Лайла", + "Лайнелл", + "Лай", + "Лакендра", + "Лакеша", + "Лакешия", + "Лакита", + "Лакиша", + "Лакия", + "Лакреша", + "Лакуанда", + "Лакуита", + "Лала", + "Ламоника", + "Лана", + "Ланетт", + "Ланита", + "Лани", + "Ланора", + "Ланэ", + "Лара", + "Лариса", + "Ларита", + "Лари", + "Ларлин", + "Ларонда", + "Ларри", + "Ларрэйн", + "Лару", + "Ласандра", + "Ласонья", + "Латеша", + "Латина", + "Латисия", + "Латиша", + "Латия", + "Латония", + "Латория", + "Латоша", + "Латоя", + "Латрина", + "Латриса", + "Латрисия", + "Латриша", + "Лаура", + "Лаури", + "Лахома", + "Лашанда", + "Лашель", + "Лашонда", + "Лашон", + "Лашоуна", + "Лашоун", + "Лашунда", + "ЛеАнна", + "Леандра", + "Леанора", + "Леата", + "Леда", + "Леиза", + "Лейганн", + "Лейда", + "Лейлани", + "Лейла", + "Лейси", + "Лейша", + "Лекиша", + "Лекси", + "Лела", + "Лелия", + "Лена", + "Ленита", + "Ленна", + "Ленни", + "Ленора", + "Ленор", + "Леола", + "Леома", + "Леонарда", + "Леона", + "Леоне", + "Леонида", + "Леонила", + "Леония", + "Леони", + "Леонора", + "Леонор", + "Леонтина", + "Леон", + "Леота", + "Лера", + "Леса", + "Лесли", + "Лесси", + "Лестер", + "Леся", + "Лета", + "Летисия", + "Летиша", + "Летишия", + "Летти", + "Леша", + "Лешия", + "Лея", + "ЛиЭнн", + "Лиана", + "Лианна", + "Лиа", + "Либби", + "Либерти", + "Либрада", + "Ливия", + "Лигия", + "Лида", + "Лидия", + "Лизабет", + "Лиза", + "Лизбет", + "Лизелотта", + "Лизетт", + "Лизет", + "Лиззетт", + "Лиззи", + "Лиз", + "Лила", + "Лилиана", + "Лилиан", + "Лилия", + "Лили", + "Лилла", + "Лиллиам", + "Лиллия", + "Лилли", + "Лина", + "Линда", + "Линдия", + "Линди", + "Линдсей", + "Линдси", + "Линетта", + "Линетт", + "Линна", + "Линни", + "Линн", + "Линси", + "Лиора", + "Лисандра", + "Лиса", + "Лисбет", + "Лисса", + "Лиссетта", + "Лита", + "Литрис", + "Лиша", + "Лиэнн", + "Лия", + "Лоан", + "Ловелла", + "Ловения", + "Ловетта", + "Лови", + "Логан", + "Лоида", + "Лоис", + "Лойс", + "Лола", + "Лолита", + "Лома", + "Лона", + "Лонда", + "Лони", + "Лонна", + "Лонни", + "Лоран", + "Лора", + "Лореан", + "Лорейн", + "Лорелея", + "Лорел", + "Лорена", + "Лоренс", + "Лоренца", + "Лорен", + "Лорета", + "Лоретта", + "Лорет", + "Лоре", + "ЛориЭнн", + "Лорили", + "Лорина", + "Лоринда", + "Лорин", + "Лорис", + "Лорита", + "Лория", + "Лори", + "Лорна", + "Лорретта", + "Лоррина", + "Лорри", + "Лоррэйн", + "Лорэли", + "Лор", + "Лотти", + "Лоурэли", + "Луана", + "Луанна", + "Луанн", + "Луан", + "Луиза", + "Луис", + "Луи", + "Лукреция", + "Лула", + "Лулу", + "Луна", + "Лупе", + "Лупита", + "Лура", + "Лурдес", + "Лусила", + "Лусилла", + "Луэлла", + "Луэнн", + "Луэтта", + "Лу", + "Льюис", + "Лэвелл", + "Лэйл", + "Лэйнелл", + "Лэйнель", + "Лэйн", + "Лэнни", + "Лэси", + "Лэшей", + "Люба", + "Люсиана", + "Люсиль", + "Люсина", + "Люсинда", + "Люсия", + "Люси", + "Люсьен", + "Мабелль", + "Магали", + "Магарет", + "Магдалена", + "Магдалина", + "Магда", + "Маген", + "Магнолия", + "Маджори", + "Мадлен", + "Мадонна", + "Майда", + "Майма", + "Майола", + "Майра", + "Майя", + "Май", + "Македа", + "Маккензи", + "Максима", + "Максимина", + "Максин", + "Макси", + "Малена", + "Малика", + "Малинда", + "Малиса", + "Малисса", + "Малия", + "Малка", + "Маллори", + "Мальвина", + "Мана", + "Мани", + "Мануэла", + "Мапл", + "Маранда", + "Мара", + "Марва", + "Марвелла", + "Марвел", + "Марвис", + "Маргарета", + "Маргаретта", + "Маргаретт", + "Маргарет", + "Маргарита", + "Маргарит", + "Маргерит", + "Маргит", + "Марго", + "Маргрет", + "Марджери", + "Марджин", + "Марджи", + "Марджори", + "Мардж", + "Марен", + "Маржерет", + "Марж", + "Мариам", + "Марианела", + "Марианна", + "Марианн", + "Марибель", + "Марибет", + "Маривель", + "Марика", + "Марикрус", + "Марилу", + "Марина", + "Маринда", + "Марин", + "Марион", + "Мариса", + "Марисела", + "Марисоль", + "Марисса", + "Марис", + "Марита", + "Марица", + "Мариша", + "Мариэла", + "Мариэль", + "Мариэтта", + "Мария", + "Мари", + "Маркетта", + "Маркита", + "Маркс", + "Марлана", + "Марла", + "Марлена", + "Марлен", + "Марлин", + "Марлис", + "Марло", + "Марна", + "Марни", + "Марсела", + "Марселена", + "Марселина", + "Марселла", + "Марсель", + "Марсена", + "Марсия", + "Марси", + "Марта", + "Мартина", + "Марти", + "Марша", + "Маршель", + "Марьяна", + "Марья", + "Мата", + "Матильда", + "Маурита", + "Мафальда", + "Махалия", + "Машель", + "Меганн", + "Меган", + "Мегган", + "Мег", + "Меда", + "Мейбелл", + "Мейбл", + "Мейл", + "Мейми", + "Мейси", + "Мелания", + "Мелани", + "Мелида", + "Мелина", + "Мелинда", + "Мелиса", + "Мелисса", + "Мелиссия", + "Мелита", + "Мелия", + "Меллиса", + "Меллисса", + "Мелли", + "Мелодия", + "Мелоди", + "Мелони", + "Мельба", + "Мельва", + "Мельвина", + "Мельда", + "Менди", + "Мередит", + "Меридет", + "Меридит", + "Мерил", + "Мерисса", + "Мери", + "Мерлин", + "Мерл", + "Мерна", + "Меррили", + "Меррилл", + "Мерри", + "Мерседес", + "Мерси", + "Мерти", + "Мета", + "Мехелла", + "Мигдалия", + "Мигелина", + "Микаэла", + "Мика", + "Мики", + "Микки", + "Милагрос", + "Мила", + "Милдред", + "Милисса", + "Миллисент", + "Милли", + "Мильда", + "Мими", + "Мина", + "Минда", + "Минди", + "Минерва", + "Минна", + "Минни", + "Минта", + "Миньон", + "Миранда", + "Мира", + "Мирейя", + "Мирей", + "Мирелла", + "Мириам", + "Мириан", + "Мирл", + "Мирна", + "Мирта", + "Миртис", + "Мирти", + "Мирт", + "Мисси", + "Мисс", + "Мисти", + "Митти", + "Михаэль", + "Миха", + "Мици", + "Мичелл", + "Миша", + "Мишель", + "Мишлин", + "Миэша", + "Мия", + "Модеста", + "Моди", + "Мозелла", + "Мозли", + "Мойра", + "Молли", + "Мона", + "Моне", + "Моника", + "Моник", + "Монни", + "Монсеррат", + "Мора", + "Морган", + "Морин", + "Морис", + "Мория", + "Мэвис", + "Мэгги", + "Мэдди", + "Мэделин", + "Мэдж", + "Мэдисон", + "Мэди", + "Мэдлин", + "Мэдэлин", + "Мэзи", + "Мэйбл", + "Мэйзи", + "Мэйси", + "Мэйша", + "Мэй", + "Мэлли", + "Мэлори", + "Мэнди", + "Мэрайя", + "Мэрделл", + "МэриДжейн", + "МэриЛуиза", + "МэриРоуз", + "МэриЭлис", + "МэриЭнн", + "Мэриам", + "Мэриан", + "Мэрибель", + "Мэрибет", + "Мэриленд", + "Мэрилин", + "Мэрили", + "Мэрилу", + "Мэриэллен", + "Мэриэнн", + "Мэриэтта", + "Мэри", + "Мэрри", + "Мэтти", + "Мюриель", + "Нада", + "Надена", + "Надин", + "Надя", + "Найда", + "Найла", + "Накеша", + "Накита", + "Накиша", + "Накия", + "Нана", + "Наннетт", + "Наома", + "Наоми", + "Нарциса", + "Наталия", + "Натали", + "Наташа", + "Наташия", + "Натиша", + "Натоша", + "Невада", + "Нева", + "Неда", + "Недра", + "Неида", + "Неколь", + "Нелида", + "Нелия", + "Нелла", + "Нелли", + "Нелл", + "Нельда", + "Нена", + "Ненита", + "Неома", + "Неоми", + "Нереида", + "Нерисса", + "Нери", + "Нета", + "Нетти", + "Нида", + "Нидия", + "Никита", + "Никия", + "Ники", + "Никки", + "Николаса", + "Никола", + "Николетт", + "Николе", + "Николь", + "Нила", + "Нили", + "Нилса", + "Нильди", + "Нина", + "Нинфа", + "Нита", + "Ниша", + "Нишелль", + "Ния", + "Нова", + "Новелла", + "Нола", + "Нома", + "Нона", + "Нора", + "Норин", + "Норма", + "Ноэлия", + "Ноэлла", + "Ноэль", + "Ноэми", + "Нубия", + "Ньевес", + "Нэнетт", + "Нэнни", + "Нэнси", + "Обдулия", + "Обри", + "Ода", + "Оделия", + "Одель", + "Одесса", + "Одетта", + "Одилия", + "Оди", + "Одра", + "Одреа", + "Одрия", + "Одри", + "Озелла", + "Ози", + "Оида", + "Октавия", + "Ола", + "Олевия", + "Олета", + "Олива", + "Оливия", + "Олимпия", + "Олинда", + "Олли", + "Ольга", + "Ома", + "Омега", + "Она", + "Ондреа", + "Онейда", + "Онита", + "Они", + "Опал", + "Оралия", + "Орали", + "Ора", + "Орета", + "Орея", + "Орфа", + "Оси", + "Осси", + "Остин", + "Ота", + "Отелия", + "Отем", + "Отилия", + "Офелия", + "Пайпер", + "Пальма", + "Пальмира", + "Памала", + "Памела", + "Памелия", + "Памелла", + "Памила", + "Пандора", + "Паола", + "Партения", + "Партиша", + "Пас", + "Патрика", + "Патрина", + "Патрис", + "Патриция", + "Патрия", + "Паула", + "Пегги", + "Пег", + "Пейдж", + "Пейшнс", + "Пенелопа", + "Пенни", + "Перла", + "Перл", + "Перри", + "Петра", + "Петрина", + "Петронила", + "Пилар", + "Пинки", + "Пия", + "Полетта", + "Полина", + "Полин", + "Полита", + "Полли", + "Поль", + "Порша", + "Прешес", + "Присила", + "Присилла", + "Присцилла", + "Провиденсия", + "Пруденс", + "Пура", + "Пьедад", + "Пэм", + "Пэнси", + "Пэрис", + "Пэтси", + "Пэтти", + "Пэт", + "Рагуил", + "Раиса", + "Райан", + "Раймонда", + "Райна", + "Ракель", + "Рамона", + "Рамонита", + "Рана", + "Ранда", + "Рафаэла", + "Рашель", + "Рашида", + "Раэлен", + "Раэнн", + "Реба", + "Реббека", + "Реббекка", + "Ребека", + "Ребекка", + "Рева", + "Регена", + "Регения", + "Регина", + "Региния", + "Реда", + "Реджайна", + "Рейган", + "Рейнальда", + "Рейна", + "Рейта", + "Рейчел", + "Рей", + "Рема", + "Ремедиос", + "Ремона", + "Рената", + "Рена", + "Ренда", + "Ренетта", + "Ренея", + "Рене", + "Ренита", + "Рени", + "Ренна", + "Ресси", + "Рета", + "Ретт", + "Рефугия", + "Рея", + "Рианна", + "Рианнон", + "Риа", + "Рива", + "Ривка", + "Риган", + "Рикарда", + "Рики", + "Рикки", + "Римма", + "Рина", + "Ринэй", + "Риса", + "Рита", + "Ришель", + "Робби", + "Робена", + "Роберта", + "Робин", + "Ровена", + "Рода", + "Розалина", + "Розалинда", + "Розалин", + "Розалия", + "Розали", + "Розальва", + "Розамария", + "Розамунда", + "Розана", + "Розанна", + "Розария", + "Розаура", + "Роза", + "Розелин", + "Розелия", + "Розели", + "Розелла", + "Розель", + "Розенда", + "Розетка", + "Розетта", + "Розина", + "Розита", + "Рози", + "Розмари", + "Ройс", + "Рой", + "Роксана", + "Рокси", + "Роланда", + "Романа", + "Рома", + "Ромелия", + "Ромона", + "Ромэн", + "Рона", + "Ронда", + "Рони", + "Ронна", + "Ронни", + "Рори", + "Росальба", + "Росена", + "Росия", + "Роси", + "Рослин", + "Россана", + "Росси", + "Роузэнн", + "Роуз", + "Рошель", + "Руби", + "Руди", + "Рутанна", + "Рута", + "Рути", + "Рутэнн", + "Рут", + "Руфина", + "Рэйвен", + "Рэйлин", + "Рэйчел", + "Рэйчил", + "Рэй", + "Рэнди", + "Рэни", + "Рэнэ", + "Сабина", + "Сабра", + "Сабрина", + "Саванна", + "Сади", + "Салена", + "Салина", + "Салли", + "Саломея", + "Саманта", + "Самара", + "Самата", + "Самелла", + "Самира", + "Саммер", + "Сана", + "Санда", + "Санди", + "Сандра", + "Сандэй", + "Санни", + "Санора", + "Сантана", + "Санта", + "Сантина", + "Сантос", + "Саншайн", + "Сан", + "Саран", + "Сара", + "Сарина", + "Сарита", + "Сари", + "Сатурнина", + "Сау", + "Саша", + "Светлана", + "Себрина", + "Селена", + "Селеста", + "Селестина", + "Селина", + "Селинда", + "Селин", + "Селия", + "Селса", + "Сельма", + "Сенаида", + "Сена", + "Септембер", + "Серафина", + "Серена", + "Серина", + "Серита", + "Сесила", + "Сесилия", + "Сесиль", + "Сиара", + "Сибил", + "Сивилла", + "Сигрид", + "Сидни", + "Сизон", + "Сикста", + "Сильвана", + "Сильва", + "Сильвия", + "Сильви", + "Сима", + "Симона", + "Симонна", + "Сина", + "Синда", + "Синдерелла", + "Синди", + "Синтия", + "Синье", + "Сиомара", + "Сира", + "Сирена", + "Сирита", + "Сисели", + "Сития", + "Скай", + "Скарлетт", + "Скарлет", + "Скотти", + "Сливия", + "Сойла", + "Сокорро", + "Соланж", + "Соледад", + "Сол", + "Соммер", + "Сона", + "Сондра", + "Соня", + "Сорайя", + "София", + "Софи", + "Спаркл", + "Спринг", + "Старла", + "Старр", + "Стар", + "Стася", + "Стейси", + "Стелла", + "Степани", + "Стефайн", + "Стефания", + "Стефани", + "Стефина", + "Стефни", + "Стеффани", + "Стиви", + "Сторми", + "Сулема", + "Сусана", + "Сьера", + "Сьерра", + "Сьюзан", + "Сьюзен", + "Сьюзи", + "Сьюлин", + "Сьюэнн", + "Сью", + "Сэди", + "Сэйдж", + "Сэмми", + "Сэм", + "Сэнди", + "Сюанн", + "Сюзанна", + "Сюзетта", + "Сюзи", + "Сю", + "Табата", + "Табета", + "Табита", + "Тавана", + "Таванда", + "Таванна", + "Тайет", + "Тайлер", + "Тайна", + "Тайра", + "Тайша", + "Тай", + "Такиша", + "Талита", + "Талиша", + "Талия", + "Тамала", + "Тамара", + "Тамар", + "Тамата", + "Тама", + "Тамбра", + "Тамейка", + "Тамекия", + "Тамела", + "Тамера", + "Тамеша", + "Тамика", + "Тамиша", + "Таммара", + "Таммера", + "Тамра", + "Тана", + "Танджела", + "Тандра", + "Танека", + "Танеша", + "Таника", + "Таниша", + "Танна", + "Таня", + "Тара", + "Тарен", + "Тарин", + "Тари", + "Тарра", + "Тарша", + "Тася", + "Татум", + "Татьяна", + "Тауна", + "Тауни", + "Тахуана", + "Таша", + "Ташина", + "Ташия", + "Твила", + "Теган", + "Теда", + "Тейлор", + "Тейша", + "Текила", + "Тельма", + "Темека", + "Темика", + "Темпи", + "Темпл", + "Тена", + "Тенеша", + "Тениша", + "Тенниль", + "Тенни", + "Теодора", + "Теола", + "Теофила", + "Тера", + "Тереза", + "Терезита", + "Терезия", + "Тересса", + "Терика", + "Терина", + "Териса", + "Тери", + "Терра", + "Террелл", + "Терреса", + "Террилин", + "Терри", + "Терса", + "Тесса", + "Тесси", + "Тесс", + "Теша", + "Тея", + "Тиана", + "Тианна", + "Тиара", + "Тилли", + "Тильда", + "Тимика", + "Тина", + "Тиниша", + "Тини", + "Тиса", + "Тифани", + "Тиффани", + "Тиффини", + "Тихуана", + "Тиша", + "Тиш", + "Тия", + "Тоби", + "Тованда", + "Това", + "Тойя", + "Токкара", + "Томаса", + "Томасена", + "Томасина", + "Томека", + "Томика", + "Томи", + "Томми", + "Тона", + "Тонда", + "Тонетта", + "Тонита", + "Тониша", + "Тони", + "Тоня", + "Тора", + "Тори", + "Торри", + "Тоша", + "Тошия", + "Треаса", + "Трева", + "Треза", + "Трейси", + "Трена", + "Тресса", + "Тресси", + "Трина", + "Тринити", + "Триста", + "Триша", + "Триш", + "Труди", + "Трула", + "Тула", + "Тьера", + "Тьерра", + "Тэмека", + "Тэми", + "Тэмми", + "Тэнди", + "Уилла", + "Уиллена", + "Уиллетта", + "УиллиМэй", + "Уилли", + "Уиллоу", + "Уильма", + "Уинди", + "Уинифред", + "Уиннифред", + "Уинни", + "Уинтер", + "Уитли", + "Уитни", + "Ула", + "Ульрика", + "Уна", + "Урсула", + "Уте", + "Уша", + "Уэсли", + "Фабиола", + "Фавиола", + "Фанни", + "Фара", + "Фарра", + "Фатима", + "Фаун", + "Фаустина", + "Феба", + "Фелесия", + "Фелика", + "Фелипа", + "Фелиса", + "Фелиситас", + "Фелиция", + "Феличита", + "Фелиша", + "Фермина", + "Фернанда", + "Ферн", + "Фиби", + "Фидела", + "Фиделия", + "Филисс", + "Филис", + "Филиция", + "Филлис", + "Филомена", + "Фиона", + "Флавия", + "Флета", + "Флой", + "Флоранс", + "Флора", + "Флорена", + "Флорентина", + "Флоренция", + "Флоретта", + "Флорида", + "Флорина", + "Флоринда", + "Флория", + "Флори", + "Флор", + "Флосси", + "Фло", + "Фонда", + "Франсена", + "Франсина", + "Франсиска", + "Франси", + "Франсуаза", + "Франс", + "Франциска", + "Франческа", + "Фреда", + "Фредди", + "Фредерика", + "Фредия", + "Фредрика", + "Фрида", + "Фрэнки", + "Фрэн", + "Фэйри", + "Фэйт", + "Фэй", + "Фэллон", + "Фэ", + "Хадиджа", + "Хайасинт", + "Хайде", + "Хайди", + "Хайке", + "Хайме", + "Халила", + "Халина", + "Хана", + "Ханна", + "Ханнелор", + "Хармони", + "Харриетт", + "Харриет", + "Хая", + "Хедвига", + "Хеди", + "Хейли", + "Хелена", + "Хелен", + "Хеллен", + "Хельга", + "Хермина", + "Херта", + "Хесуса", + "Хесусита", + "Хетти", + "Хиди", + "Хилария", + "Хилари", + "Хиллари", + "Хильда", + "Хильма", + "Хилэйн", + "Хлоя", + "Хоакина", + "Хозефа", + "Холли", + "Хони", + "Хоуп", + "Хочитль", + "Хуана", + "Хуанита", + "Хульда", + "Хуста", + "Хэзер", + "Хэйзел", + "Хэлли", + "Хэсси", + "Хэтти", + "Чайна", + "Чана", + "Чанда", + "Чандра", + "Чара", + "Чариз", + "Чарисса", + "Чарис", + "Чарита", + "Чарити", + "Чарла", + "Чарлин", + "Чарли", + "Чарлси", + "Чарльзетта", + "Чармен", + "Часиди", + "Часити", + "Чассиди", + "Частити", + "Челси", + "Чеола", + "Черелл", + "Чериз", + "Черилл", + "Чериш", + "Чери", + "Черлин", + "Черли", + "Черри", + "Чикита", + "Шайенн", + "Шайна", + "Шакана", + "Шакира", + "Шакита", + "Шакия", + "Шаланда", + "Шала", + "Шалонда", + "Шалон", + "Шамека", + "Шамика", + "Шана", + "Шанда", + "Шанди", + "Шандра", + "Шанека", + "Шанель", + "Шаника", + "Шанита", + "Шани", + "Шанталь", + "Шанта", + "Шантель", + "Шанте", + "Шанти", + "Шантэ", + "Шара", + "Шарда", + "Шарика", + "Шарилин", + "Шарил", + "Шарин", + "Шарис", + "Шарита", + "Шари", + "Шарла", + "Шарлена", + "Шарлетт", + "Шарлин", + "Шарлотта", + "Шармэйн", + "Шаролетта", + "Шаролин", + "Шаронда", + "Шарон", + "Шарри", + "Шаррон", + "Шаста", + "Шеба", + "Шейла", + "Шейна", + "Шейн", + "Шела", + "Шелби", + "Шелия", + "Шелла", + "Шелли", + "Шельба", + "Шемека", + "Шемика", + "Шена", + "Шеника", + "Шенита", + "Шенна", + "Шера", + "Шерелл", + "Шеридан", + "Шериз", + "Шерика", + "Шерилин", + "Шерилл", + "Шерил", + "Шерис", + "Шерита", + "Шери", + "Шерлин", + "Шерли", + "Шермейн", + "Шерон", + "Шеррелл", + "Шеррилл", + "Шеррил", + "Шерри", + "Шеррон", + "Шер", + "Шивон", + "Шила", + "Шина", + "Шира", + "Ширлин", + "Ширли", + "Ширл", + "Шона", + "Шонда", + "Шондра", + "Шонна", + "Шонта", + "Шон", + "Шоуана", + "Шоуанда", + "Шоуанна", + "Шоуна", + "Шоунда", + "Шоуни", + "Шоунна", + "Шоунта", + "Шоун", + "Шошана", + "Шэвон", + "Шэнис", + "Шэнна", + "Шэрис", + "Шэри", + "Эбби", + "Эбигейл", + "Эбони", + "Эвалин", + "Эванджелин", + "Эван", + "Эва", + "Эвелина", + "Эвелин", + "Эвелия", + "Эвита", + "Эвия", + "Эви", + "Эвонна", + "Эвон", + "Эда", + "Эдвина", + "Эдда", + "Эдди", + "Эдельмира", + "Эдит", + "Эди", + "Эдна", + "Эдра", + "Эдрис", + "Эйвери", + "Эйлин", + "Эйлис", + "Эйми", + "Эйприл", + "Экси", + "Эладия", + "Элайна", + "Элана", + "Эланор", + "Эла", + "Элейн", + "Элени", + "Эленора", + "Эленор", + "Элен", + "Элеонора", + "Элеонор", + "Элиана", + "Элида", + "Элидия", + "Элизабет", + "Элиза", + "Элизбет", + "Элиз", + "Элина", + "Элинор", + "Элин", + "Элисия", + "Элисон", + "Элисса", + "Элис", + "Элиша", + "Элия", + "Элламэй", + "Элла", + "Эллена", + "Эллен", + "Эллин", + "Эллисон", + "Эллис", + "Элли", + "Элма", + "Элмер", + "Элна", + "Элнора", + "Элодия ", + "Элоиза", + "Элси", + "Элс", + "Элуиз ", + "Эльба", + "Эльванда", + "Эльва", + "Эльвера", + "Эльвина", + "Эльвира", + "Эльвия", + "Эльви", + "Эльда", + "Эльдора", + "Эльза", + "Эльке", + "Эльмира", + "Эльфреда", + "Эльфрида", + "Эма", + "Эмберли", + "Эмбер", + "Эмелина", + "Эмелия", + "Эмели", + "Эмеральда", + "Эмерита", + "Эмии", + "Эмилия", + "Эмили", + "Эми", + "Эммалин", + "Эмма", + "Эмми", + "Энгл", + "Энда", + "Энджел", + "Энджи", + "Энедина", + "Энеида", + "Энжелин", + "Энид", + "Эннис", + "Энни", + "Эннмари", + "Энн", + "Энола", + "Энрикета", + "Эн", + "Эпифания", + "Эпоха", + "Эрика", + "Эрин", + "Эрлена", + "Эрлинда", + "Эрлин", + "Эрли", + "Эрма", + "Эрмелинда", + "Эрмила", + "Эрмина", + "Эрминия", + "Эрна", + "Эрнестина", + "Эрнестин", + "Эрта", + "Эсмеральда", + "Эсперанса", + "Эсси", + "Эста", + "Эстела", + "Эстелла", + "Эстель", + "Эстер", + "Эстефана", + "Эстрелла", + "Этанольн", + "Этелин", + "Этель", + "Этилен", + "Этил", + "Этта", + "Этти", + "Эулалия", + "Эура", + "Эусебия", + "Эустолия", + "Эуфемия", + "Эфтон", + "Эффи", + "Эхтель", + "Эшлин", + "Эшли", + "Юджения", + "Юджени", + "Юджина", + "Юланда", + "Юла", + "Юна", + "Юнис", + "Юн", + "Ютта", + "Ядвига", + "Ядира", + "Ямайка", + "Янира", + "Янита", + "Ясмин", + "Яхайра" + ] + }, + { + "usage": "given", + "gender": "male", + "name": [ + "Аарон", + "Абдул", + "Абель", + "Абрам", + "Абрахам", + "Августин", + "Августус", + "Агустин", + "Адальберто", + "Адам", + "Адан", + "Адольфо", + "Адольф", + "Айвори", + "Айзая", + "Айзек", + "Айк", + "Айра", + "Алан", + "Александр", + "Алексис", + "Алекс", + "Алек", + "Алехандро", + "Али", + "Аллан", + "Аллен", + "Алонзо", + "Алонсо", + "Альберто", + "Альберт", + "Альваро", + "Альдо", + "Альфонсо", + "Альфонс", + "Альфредо", + "Альфред", + "Аль", + "Амадо", + "Амосс", + "Андерсон", + "Анджело", + "Андреас", + "Андрес", + "Андре", + "Анибаль", + "Антонио", + "Антон", + "Антуан", + "Арден", + "Арлен", + "Арли", + "Армандо", + "Арманд", + "Арнольдо", + "Арнольд", + "Арнульфо", + "Арон", + "Артуро", + "Артур", + "Арт", + "Арчи", + "Аугуст", + "Аурелио", + "Ахмад", + "Ахмед", + "Бадди", + "Бад", + "Байрон", + "Бак", + "Барни", + "Баррет", + "Барри", + "Бартон", + "Барт", + "Бастер", + "Бенджамин", + "Бенедикт", + "Бенито", + "Беннетт", + "Бенни", + "Бентон", + "Бен", + "Бернардо", + "Бернард", + "Берни", + "Берри", + "Бертрам", + "Берт", + "Билли", + "Блейк", + "Блейн", + "Блэр", + "Бобби", + "Боб", + "Бойд", + "Бойс", + "Борис", + "Бо", + "Брайант", + "Брайан", + "Брайон", + "Брайс", + "Брендан", + "Брендон", + "Брентон", + "Брент", + "Бретт", + "Брет", + "Брис", + "Бритт", + "Бродерик", + "Брок", + "Брукс", + "Бруно", + "Брэди", + "Брэдли", + "Брэдфорд", + "Брэд", + "Брэйн", + "Брэнден", + "Брэндон", + "Брэнт", + "Брюс", + "Букер", + "Буфорд", + "Бэзил", + "Бёрл", + "Бёртон", + "Бёрт", + "Валентин", + "Вал", + "Вернер", + "Вернон", + "Верн", + "Виктор", + "Виллиан", + "Вилли", + "Вильфредо", + "Винсент", + "Винс", + "Винченцо", + "Вирджилио", + "Висенте", + "Вито", + "Вон", + "Вудро", + "Вэйлон", + "Вэнс", + "Вэн", + "Вёрджил", + "Габриэль", + "Гай", + "Гален", + "Гарланд", + "Гарольд", + "Гаррет", + "Гарри", + "Гарт", + "Гарфилд", + "Гастон", + "Гас", + "Гейл", + "Генри", + "Геральдо", + "Герберт", + "Герман", + "Гершель", + "Гилберт", + "Гильермо", + "Гил", + "Гленн", + "Глен", + "Говард", + "Гомер", + "Гонсало", + "Гордон", + "Гранвиль", + "Грант", + "Грегг", + "Грегорио", + "Грегори", + "Грег", + "Грейг", + "Грейди", + "Гровер", + "Грэхем", + "Густаво", + "Гэвин", + "Гэйлорд", + "Гэри", + "Дадли", + "Даллас", + "Далтон", + "Дамиан", + "Дамион", + "Данило", + "Данте", + "Дарвин", + "Дарелл", + "Дарен", + "Дарин", + "Дарио", + "Дариус", + "Дарнелл", + "Дарон", + "Даррелл", + "Даррел", + "Даррен", + "Даррик", + "Даррин", + "Даррон", + "Дастин", + "Дасти", + "ДеАнджело", + "ДеАндре", + "ДеШон", + "Девейн", + "Девин", + "Девитт", + "Девон", + "Дейв", + "Декстер", + "Делберт", + "Дельмар", + "Дельмер", + "Дель", + "Демаркус", + "Денвер", + "Денис", + "Деннис", + "Денни", + "Деон", + "Дерек", + "Дерик", + "Деррик", + "Десмонд", + "Джадсон", + "Джамал", + "Джамель", + "Джарвис", + "Джаред", + "Джарод", + "Джарред", + "Джарретт", + "Джаррод", + "Джаспер", + "Джастин", + "Джед", + "Джейкоб", + "Джейк", + "Джеймал", + "Джеймар", + "Джейми", + "Джеймс", + "Джейм", + "Джейсон", + "Джей", + "Джеки", + "Джексон", + "Джек", + "Джемисон", + "Джеральд", + "Джерами", + "Джереми", + "Джеримайя", + "Джери", + "Джермейн", + "Джерольд", + "Джероми", + "Джером", + "Джеррелл", + "Джерри", + "Джеррод", + "Джесси", + "Джесс", + "Джефферсон", + "Джеффри", + "Джефф", + "Дже", + "Джизус", + "Джилберто", + "Джимми", + "Джим", + "Джино", + "Джин", + "Джованни", + "Джоди", + "Джозеф", + "Джозиа", + "Джонас", + "Джонатан", + "Джонатон", + "Джона", + "Джонни", + "Джонсон", + "Джон", + "Джордан", + "Джордж", + "Джоспех", + "Джосу", + "Джошуа", + "Джош", + "Джоэл", + "Джо", + "Джуд", + "Джузеппе", + "Джулиан", + "Джулиус", + "Джуниор", + "Джуэл", + "Диего", + "Дик", + "Дилан", + "Диллон", + "Димитрий", + "Дино", + "Дин", + "Дион", + "Дирк", + "Ди", + "Дойл", + "Доменик", + "Доминго", + "Доминик", + "Дональд", + "Доннелл", + "Донни", + "Донн", + "Донован", + "Донте", + "Дон", + "Дориан", + "Дорси", + "Дрю", + "Дуайт", + "Дуглас", + "Дуг", + "Дункан", + "Дуэйн", + "Дьюи", + "Дэвид", + "Дэвис", + "Дэйл", + "Дэймон", + "Дэйн", + "Дэмиен", + "Дэниал", + "Дэниел", + "Дэнни", + "Дэн", + "Дэрил", + "Дэррил", + "Жак", + "Жерар", + "Жюль", + "Закари", + "Зак", + "Захар", + "Захария", + "Захари", + "Зейн", + "Иван", + "Игнасио", + "Изекиль", + "Израиль", + "Изрил", + "Иларио", + "Иполито", + "Ирвинг", + "Ирвин", + "Исайас", + "Исайя", + "Исидро", + "Исмаэль", + "Иссак", + "Йонг", + "Кайл", + "Калеб", + "Кальвин", + "Карим", + "Карлос", + "Карло", + "Карлтон", + "Карл", + "Кармело", + "Кармен", + "Кармин", + "Карсон", + "Картер", + "Квентин", + "Квинтин", + "Кевин", + "Кейси", + "Кельвин", + "Кендалл", + "Кендрик", + "Кенет", + "Кеннет", + "Кеннит", + "Кенни", + "Кентон", + "Кент", + "Кен", + "Кермит", + "Керри", + "Ким", + "Кинан", + "Кинг", + "Кип", + "Кирби", + "Кирк", + "Кит", + "Клайд", + "Кларенс", + "Кларк", + "Клаудио", + "Клейтон", + "Клемент", + "Клер", + "Клетус", + "Кливленд", + "Клинтон", + "Клинт", + "Клифтон", + "Клиффорд", + "Клифф", + "Клод", + "Клэй", + "Коди", + "Кой", + "Колби", + "Колин", + "Коллин", + "Колтон", + "Колумбус", + "Конни", + "Конрад", + "Корделл", + "Кори", + "Корнелий", + "Корнелл", + "Кортес", + "Кортни", + "Коулман", + "Коул", + "Крейг", + "Кристиан", + "Кристобаль", + "Кристофер", + "Крис", + "Крус", + "Ксавье", + "Куинн", + "Куинси", + "Куинтон", + "Курт", + "Кэмерон", + "Кэри", + "Кёртис", + "Кёрт", + "Лаверн", + "Лазаро", + "Лайл", + "Ламар", + "Ламонт", + "Ландон", + "Ланс", + "Ларри", + "Леандро", + "Леви", + "Лейф", + "Леланд", + "Лемюэль", + "Ленард", + "Ленни", + "Лен", + "Леонардо", + "Леонард", + "Леонель", + "Леон", + "Леопольдо", + "Лео", + "Лерой", + "Лесли", + "Лестер", + "Лес", + "Лиман", + "Линвуд", + "Линдон", + "Линдсей", + "Линдси", + "Линкольн", + "Линн", + "Лино", + "Лионель", + "Ли", + "Ллойд", + "Логан", + "Лойд", + "Лонг", + "Лонни", + "Лон", + "Лоренс", + "Лоренцо", + "Лорен", + "Лоуэлл", + "Луиджи", + "Луис", + "Луи", + "Лукас", + "Лупе", + "Лусио", + "Лучано", + "Лу", + "Льюис", + "Лэйн", + "Лэнни", + "Лэси", + "Люк", + "Люсьен", + "Лютер", + "Люциус", + "Майкл", + "Майк", + "Майлс", + "Максвелл", + "Максимо", + "Макс", + "Мак", + "Малик", + "Малкольм", + "Мануэль", + "Ман", + "Марвин", + "Маргарито", + "Мариано", + "Марион", + "Марио", + "Маркиз", + "Маркос", + "Марко", + "Маркус", + "Марк", + "Марлин", + "Марлон", + "Марселино", + "Марселлус", + "Марсело", + "Марсель", + "Мартин", + "Марти", + "Маршалл", + "Маурисио", + "Мауро", + "Мейджор", + "Мейнард", + "Мелвин", + "Мел", + "Мервин", + "Мерлин", + "Мерл", + "Меррилл", + "Мигель", + "Мика", + "Микель", + "Микки", + "Милан", + "Миллард", + "Мило", + "Милтон", + "Милфорд", + "Мин", + "Мирон", + "Митчелл", + "Митчел", + "Митч", + "Михал", + "Мишель", + "Модесто", + "Мозес", + "Мойзес", + "Монро", + "Монте", + "Монти", + "Морган", + "Морис", + "Моррис", + "Мортон", + "Мос", + "Мохамед", + "Мохаммад", + "Моше", + "Мухаммед", + "Мэйсон", + "Мэтт", + "Мэтью", + "Мюррей", + "Найджел", + "Наполеон", + "Натаниель", + "Натаниэль", + "Натан", + "Нафанаил", + "Невилл", + "Нед", + "Нельсон", + "Нестор", + "Ники", + "Николас", + "Ник", + "Нил", + "Ноа", + "Ной", + "Нолан", + "Норберто", + "Норберт", + "Норман", + "Ноубл", + "Ноэль", + "Ньютон", + "Оделл", + "Одис", + "Октавио", + "Олден", + "Олен", + "Оливер", + "Олин", + "Олли", + "Омар", + "Омер", + "Орасио", + "Орвал", + "Орвилл", + "Орен", + "Орландо", + "Освальдо", + "Оскар", + "Остин", + "Отар", + "Отис", + "Отто", + "Оуэн", + "Пабло", + "Палмер", + "Паркер", + "Паскаль", + "Патрик", + "Педро", + "Перри", + "Перси", + "Питер", + "Пит", + "Поль", + "Портер", + "Порфирио", + "Престон", + "Пьер", + "Пэрис", + "Пэт", + "Райан", + "Райли", + "Раймонд", + "Раймон", + "Раймундо", + "Ральф", + "Рамиро", + "Рамон", + "Рандольф", + "Рассел", + "Расс", + "Расти", + "Рауль", + "Рафаэль", + "Рашад", + "Реджинальд", + "Реджи", + "Рейд", + "Рейес", + "Рейнальдо", + "Рейфорд", + "Рей", + "Рекс", + "Ренальдо", + "Ренато", + "Рене", + "Ретт", + "Рефьюджио", + "Ригоберто", + "Рид", + "Рикардо", + "Рики", + "Рико", + "Рик", + "Ричард", + "Ричи", + "Рич", + "Робби", + "Роберто", + "Роберт", + "Робин", + "Робт", + "Роб", + "Родерик", + "Роджер", + "Родни", + "Родольфо", + "Родриго", + "Родрик", + "Род", + "Ройал", + "Ройс", + "Рой", + "Рокки", + "Рокко", + "Роландо", + "Роланд", + "Роли", + "Роллан", + "Рольф", + "Роман", + "Ромео", + "Рональд", + "Ронни", + "Рон", + "Рори", + "Росарио", + "Росендо", + "Роско", + "Росс", + "Рохелио", + "Рубен", + "Рубин", + "Рувим", + "Руди", + "Рудольф", + "Рузвельт", + "Руперт", + "Руфус", + "Рэй", + "Рэндалл", + "Рэндал", + "Рэнделл", + "Рэнди", + "Сайлас", + "Саймон", + "Сайрус", + "Сальвадор", + "Сальваторе", + "Санг", + "Сантос", + "Санто", + "Сантьяго", + "Себастьян", + "Седрик", + "Сезар", + "Сеймур", + "Серхио", + "Сесил", + "Сет", + "Сидней", + "Сид", + "Сильвестр", + "Сирил", + "Скотти", + "Скотт", + "Скот", + "Соломон", + "Сол", + "Сонни", + "Сон", + "Спенсер", + "Стейси", + "Стерлинг", + "Стефан", + "Стивен", + "Стиви", + "Стив", + "Стэнли", + "Стэнтон", + "Стэнфорд", + "Стэн", + "Стюарт", + "Сэл", + "Сэмми", + "Сэмюэль", + "Сэм", + "Сэнди", + "Сэнфорд", + "Тайлер", + "Тайри", + "Тайрон", + "Тайсон", + "Таннер", + "Тан", + "Тедди", + "Тед", + "Тейлор", + "Теодоро", + "Теодор", + "Тео", + "Теренс", + "Терон", + "Террелл", + "Терренс", + "Терри", + "Тимми", + "Тимоти", + "Тим", + "Тирелл", + "Тит", + "Тобиас", + "Тоби", + "Тодд", + "Тод", + "Томас", + "Томми", + "Том", + "Тони", + "Тори", + "Тревор", + "Трейси", + "Трей", + "Трентон", + "Трент", + "Тринидад", + "Тристан", + "Трой", + "Трумэн", + "Трэвис", + "Туан", + "Турман", + "Тэд", + "Уайатт", + "Уилберн", + "Уилберт", + "Уилбер", + "Уилбур", + "Уили", + "Уиллард", + "Уиллис", + "Уилли", + "Уилл", + "Уилмер", + "Уилсон", + "Уилтон", + "Уилфорд", + "Уилфред", + "Уильямс", + "Уильям", + "Уинстон", + "Уинфорд", + "Уинфред", + "Уитни", + "Улисс", + "Умберто", + "Уокер", + "Уолдо", + "Уоллес", + "Уолли", + "Уолтер", + "Уолтон", + "Уорд", + "Уоррен", + "Уэйд", + "Уэйн", + "Уэлдон", + "Уэнделл", + "Уэсли", + "Уэстон", + "Уэс", + "Фабиан", + "Фаддей", + "Фаустино", + "Фаусто", + "Федерико", + "Феликс", + "Фелипе", + "Фелтон", + "Фердинанд", + "Фермин", + "Фернандо", + "Фидель", + "Филипп", + "Фил", + "Флетчер", + "Флойд", + "Флоренсио", + "Флорентино", + "Форест", + "Форрест", + "Фостер", + "Франклин", + "Франциско", + "Франческо", + "Фредди", + "Фредерик", + "Фредрик", + "Фред", + "Фриман", + "Фриц", + "Фрэнки", + "Фрэнк", + "Фрэнсис", + "Хавьер", + "Хайден", + "Хайман", + "Хай", + "Ханс", + "Хантер", + "Харви", + "Харланд", + "Харлан", + "Харли", + "Харрисон", + "Харрис", + "Хасан", + "Хасинто", + "Хейвуд", + "Хенаро", + "Херардо", + "Хилтон", + "Хирам", + "Хит", + "Хоакин", + "Хоберт", + "Хойт", + "Холлис", + "Хорас", + "Хорхе", + "Хосе", + "Хоси", + "Хуан", + "Хулио", + "Хьюберт", + "Хьюго", + "Хьюи", + "Хьюстон", + "Хью", + "Хэл", + "Хэнк", + "Чад", + "Чак", + "Чарли", + "Чарльз", + "Час", + "Чедвик", + "Чейз", + "Честер", + "Чет", + "Чонси", + "Чэнс", + "Шейн", + "Шелби", + "Шелдон", + "Шелтон", + "Шеннон", + "Шервуд", + "Шерман", + "Ширли", + "Шон", + "Шэд", + "Эван", + "Эверетт", + "Эдвард", + "Эдвин", + "Эдгардо", + "Эдгар", + "Эдди", + "Эдисон", + "Эдмонд", + "Эдмундо", + "Эдмунд", + "Эдриан", + "Эдуардо", + "Эд", + "Эзра", + "Эйб", + "Эйвери", + "Эктор", + "Элайджа", + "Элберт", + "Элвин", + "Элвис", + "Элвуд", + "Элден", + "Элдон", + "Элдридж", + "Элиас", + "Элизео", + "Эли", + "Эллиот", + "Эллис", + "Эллсворт", + "Элмер", + "Элмо", + "Элой", + "Элрой", + "Элтон", + "Эльвин", + "Эмануэль", + "Эмброуз", + "Эмери", + "Эмерсон", + "Эмилио", + "Эмиль", + "Эммануэль", + "Эмметт", + "Эммитт", + "Энджел", + "Энди", + "Эндрю", + "Энок", + "Энрике", + "Энтони", + "Эрасмо", + "Эрб", + "Эрвин", + "Эрик", + "Эрин", + "Эрих", + "Эрл", + "Эрнесто", + "Эрнест", + "Эрни", + "Эррол", + "Эстебан", + "Этан", + "Эудженио", + "Эусебио", + "Эфрен", + "Юджин", + "Янг", + "Ян" + ] + }, + { + "usage": "world", + "name": [ + "Абахо", + "Аббат", + "Абвиль", + "Абейтас", + "Абердин", + "Абернан", + "Абернати", + "Аберфойл", + "Абер", + "Абикью", + "Абилин", + "Абинг", + "Абита", + "Аби", + "Абли", + "Або", + "Абрам", + "Абсароки", + "Абсекон", + "Абуата", + "Авалон", + "Авани", + "Авант", + "Авард", + "Ава", + "Августин", + "Августус", + "Август", + "Авелла", + "Авенал", + "Авентура", + "Авеню", + "Авера", + "Аверилл", + "Авилла", + "Авингер", + "Авис", + "Авокадо", + "Авока", + "Авония", + "Авон", + "Авраам", + "Авра", + "Аврора", + "Авостинг", + "Агарь", + "Агар", + "Агат", + "Агенство", + "Агилар", + "Агила", + "Агилита", + "Агирра", + "Агнесса", + "Агнец", + "Агнос", + "Агню", + "Агоам", + "Агодилья", + "Агра", + "Агрикола", + "Агуада", + "Агуанга", + "Агуа", + "Агудо", + "Агура", + "Адам", + "Адарио", + "Ада", + "Адванс", + "Адвольф", + "Аддикс", + "Аддинг", + "Аддисон", + "Аддис", + "Аддишн", + "Аделаида", + "Аделанто", + "Аделино", + "Адельфия", + "Адельфи", + "Адель", + "Адена", + "Аден", + "Адин", + "Ади", + "Адмайр", + "Адна", + "Адона", + "Адриан", + "Аду", + "Адхунтас", + "Адэр", + "Азалия", + "Азвелл", + "Азуса", + "Аид", + "Айаегер", + "Айатан", + "Айбонито", + "Айваноф", + "Айванпа", + "Айвенго", + "Айвз", + "Айвиленд", + "Айвинс", + "Айви", + "Айвор", + "Айдабел", + "Айдалу", + "Айдахо", + "Айдлилд", + "Айдл", + "Айер", + "Айея", + "Айзи", + "Айкатан", + "Айкен", + "Айленд", + "Айлета", + "Айл", + "Айова", + "Айра", + "Айрин", + "Айрон", + "Айртон", + "Айсаква", + "Айтаска", + "Айткин", + "Ай", + "Академи", + "Акаска", + "Акация", + "Аква", + "Аквилла", + "Акворт", + "Акерли", + "Акерман", + "Акиак", + "Акиачак", + "Акиль", + "Акин", + "Аккомак", + "Аккорд", + "Акма", + "Акокик", + "Акомита", + "Акра", + "Акрес", + "Акри", + "Акрон", + "Аксиаль", + "Акстелл", + "Акстон", + "Акс", + "Актон", + "Акутан", + "Алабам", + "Аладдин", + "Алаканук", + "Аламанс", + "Аламеда", + "Аламитос", + "Аламоса", + "Аламота", + "Аламо", + "Аланрид", + "Алапаха", + "Албемарла", + "Алберена", + "Алво", + "Алгерита", + "Алгоа", + "Алгодонес", + "Алгома", + "Алгонак", + "Алгона", + "Алгонкин", + "Алгуд", + "Алдан", + "Алджер", + "Алдина", + "Алебастр", + "Аледо", + "Алекнагик", + "Александрия", + "Александр", + "Алексис", + "Алекс", + "Алестер", + "Алзада", + "Аликиппа", + "Аликс", + "Алина", + "Алире", + "Алиса", + "Алисия", + "Алисо", + "Алистер", + "Али", + "Алкан", + "Алквина", + "Алколу", + "Алкома", + "Алкоя", + "Алко", + "Аллакакет", + "Алламучи", + "Аллан", + "Аллардт", + "Аллегани", + "Аллеган", + "Аллегро", + "Аллемандс", + "Аллеман", + "Аллен", + "Аллер", + "Аллея", + "Алле", + "Аллигатор", + "Аллина", + "Аллин", + "Аллис", + "Алловэй", + "Аллонс", + "Аллува", + "Алма", + "Алмело", + "Алмелунд", + "Алми", + "Алмонд", + "Алмонт", + "Алмон", + "Алмота", + "Алмо", + "Алнвик", + "Алондра", + "Алосо", + "Алоха", + "Алоэ", + "Алпена", + "Алсворт", + "Алсен", + "Алсея", + "Алси", + "Алсума", + "Алтависта", + "Алтадена", + "Алтамаха", + "Алтеймер", + "Алума", + "Алум", + "Алфаретта", + "Альба", + "Альберта", + "Альбер", + "Альбин", + "Альбион", + "Альборн", + "Альбукерке", + "Альбург", + "Альбуртис", + "Альбёрнетт", + "Альварадо", + "Альва", + "Альгамбра", + "Альда", + "Алькабо", + "Алькальд", + "Альмена", + "Альмерия", + "Альмира", + "Альмонте", + "Альпаф", + "Альпина", + "Альпин", + "Альп", + "Альс", + "Альтаир", + "Альтамонт", + "Альта", + "Альтен", + "Альтмар", + "Альтона", + "Альто", + "Альтуна", + "Альтура", + "Альтус", + "Альфальфа", + "Альфа", + "Альфред", + "Альянза", + "Альянс", + "Амавок", + "Амагансет", + "Амагон", + "Амадор", + "Амадо", + "Амазония", + "Амалия", + "Амальга", + "Амана", + "Аманда", + "Амаргоза", + "Амарилла", + "Амарилло", + "Амаса", + "Амберг", + "Амбер", + "Амблер", + "Амбой", + "Амбридж", + "Амелия", + "Амель", + "Амения", + "Американа", + "Америка", + "Америкус", + "Амери", + "Амидон", + "Амирет", + "Амистад", + "Амити", + "Аммон", + "Амонат", + "Аморет", + "Аморита", + "Амори", + "Амо", + "Ампайр", + "Ампква", + "Амсден", + "Амстердам", + "Амхерст", + "Амчитка", + "Анакоко", + "Анаконда", + "Анакортес", + "Анактувук", + "Анамоса", + "Анамус", + "Анан", + "Анаско", + "Анатоне", + "Анауак", + "Анауолт", + "Анахайм", + "Анахола", + "Ана", + "Анвик", + "Ангела", + "Ангелюс", + "Ангел", + "Ангилья", + "Ангиола", + "Англ", + "Ангола", + "Ангора", + "Ангус", + "Ангьер", + "Андалусия", + "Андерсон", + "Андер", + "Андес", + "Анджелес", + "Анджело", + "Андинг", + "Андрада", + "Андреас", + "Андрикс", + "Анегам", + "Анета", + "Анжелика", + "Аниак", + "Анива", + "Анимас", + "Анита", + "Анкени", + "Анкер", + "Анкоридж", + "Анмур", + "Аннамория", + "Аннан", + "Аннаполис", + "Анна", + "Аннета", + "Аннетт", + "Анока", + "Анона", + "Ансгар", + "Ансельма", + "Ансертейн", + "Ансли", + "Ансония", + "Анстон", + "Антверп", + "Антиго", + "Антилопа", + "Антимония", + "Антиох", + "Антиэтам", + "Антлер", + "Антонино", + "Антонио", + "Антонито", + "Антония", + "Антон", + "Антостон", + "Антоун", + "Антрим", + "Антуан", + "Анчо", + "Апалачикола", + "Апалачин", + "Апалачи", + "Апач", + "Апекс", + "Апленд", + "Аплинг", + "Аплин", + "Аполло", + "Апоматтокс", + "Апопка", + "Аппалачия", + "Аппер", + "Апсон", + "Аптакисик", + "Аптон", + "Аптос", + "Апхем", + "Апшоа", + "Араби", + "Араб", + "Аравия", + "Арагон", + "Аранзас", + "Арапахо", + "Арарат", + "Арбакл", + "Арбери", + "Арбон", + "Арбор", + "Арбутус", + "Арбёрд", + "Арвада", + "Арвана", + "Арвония", + "Аргайл", + "Аргента", + "Аргентин", + "Аргил", + "Аргония", + "Аргонна", + "Арго", + "Аргус", + "Ардара", + "Арденвуар", + "Арденкрофт", + "Арден", + "Ардмор", + "Ардок", + "Ардо", + "Ардсли", + "Аредэйл", + "Арена", + "Арендат", + "Аренц", + "Аресибо", + "Ариал", + "Аривака", + "Аризона", + "Аримо", + "Ариноса", + "Арион", + "Арипека", + "Арипина", + "Ариспа", + "Ариста", + "Аритон", + "Ариэль", + "Аркада", + "Аркадельфия", + "Аркадия", + "Арканзас", + "Арканум", + "Арката", + "Аркдэйл", + "Аркинда", + "Аркола", + "Аркома", + "Аркоу", + "Арко", + "Аркпорт", + "Арктика", + "Арк", + "Арлетта", + "Арлинг", + "Арли", + "Армада", + "Арман", + "Арма", + "Армбруст", + "Арминг", + "Арминто", + "Армихо", + "Армона", + "Армонк", + "Арморель", + "Армор", + "Армстронг", + "Арм", + "Арнгард", + "Арнетт", + "Арни", + "Арнольд", + "Арнотт", + "Арно", + "Аромат", + "Арона", + "Ароя", + "Арпин", + "Арп", + "Арредондо", + "Аррей", + "Арриба", + "Арройо", + "Артас", + "Артезиана", + "Артезия", + "Артон", + "Артс", + "Артуа", + "Артур", + "Арундель", + "Арчбальд", + "Арчбольд", + "Арчер", + "Арчибальд", + "Арчи", + "Арч", + "Асбури", + "Асейтунас", + "Асекья", + "Аскатни", + "Асков", + "Аскью", + "Асотин", + "Аспен", + "Аспер", + "Аспетук", + "Аспинуолл", + "Ассария", + "Ассиниппи", + "Астико", + "Астория", + "Астор", + "Ас", + "Аталисса", + "Аталия", + "Атанум", + "Атаскадеро", + "Ателстан", + "Атенс", + "Атертон", + "Атильо", + "Атин", + "Атка", + "Аткинсон", + "Аткинс", + "Атко", + "Атланта", + "Атлантика", + "Атлантис", + "Атлас", + "Атли", + "Атмор", + "Атмотлуак", + "Атока", + "Атолия", + "Атол", + "Атомик", + "Ато", + "Атсион", + "Атталла", + "Аттапулгус", + "Аттика", + "Атту", + "Атчисон", + "Ауке", + "Аура", + "Аурелия", + "Аутинг", + "Аутлук", + "Ау", + "Афера", + "Афина", + "Афи", + "Афтон", + "Аффтон", + "Ахиллес", + "Ахиману", + "Ахиок", + "Ахмик", + "Ахоски", + "Ахо", + "Ацтек", + "Ашарокен", + "Ашвобенон", + "Ашер", + "Аше", + "Ашиппун", + "Ашкум", + "Аштола", + "Аэро", + "Баббит", + "Бабб", + "Бавария", + "Багама", + "Баггс", + "Багдад", + "Багнелл", + "Багуэлл", + "Бадд", + "Баден", + "Баджер", + "Бадьин", + "Бад", + "Базальт", + "Базехор", + "Баззард", + "Базиль", + "Базин", + "Базис", + "Байамон", + "Байер", + "Байл", + "Байонет", + "Байон", + "Байром", + "Байрон", + "Байроя", + "Байс", + "Байтло", + "Байхалия", + "Байя", + "Бакай", + "Бакингем", + "Бакирус", + "Баклин", + "Баклифф", + "Бакли", + "Бакл", + "Бакман", + "Бакнер", + "Бакова", + "Бакода", + "Бакстер", + "Бакстон", + "Бакхолтс", + "Бакхорн", + "Бакэннон", + "Бак", + "Баланс", + "Балатон", + "Бала", + "Балди", + "Балконес", + "Балко", + "Баллард", + "Балленгер", + "Баллентайн", + "Балмори", + "Балта", + "Балтик", + "Балтимор", + "Балх", + "Бальд", + "Бальзам", + "Бальфур", + "Бал", + "Бамберг", + "Баммель", + "Бампус", + "Бангор", + "Бандана", + "Бандера", + "Банида", + "Банкет", + "Банки", + "Банкомб", + "Банк", + "Баннак", + "Баннелл", + "Баннер", + "Баннинг", + "Банн", + "Банс", + "Бантам", + "Банч", + "Баньос", + "Барабу", + "Барага", + "Барада", + "Барак", + "Бараноф", + "Баратария", + "Барахона", + "Барбара", + "Барбер", + "Барбур", + "Барвик", + "Барвью", + "Баргер", + "Барден", + "Бардли", + "Бардольф", + "Бардония", + "Бардуэлл", + "Бард", + "Баржа", + "Баринг", + "Бари", + "Баркер", + "Барки", + "Барклай", + "Барко", + "Баркрофт", + "Барк", + "Барлинг", + "Барлоу", + "Барнабус", + "Барнард", + "Барнвелл", + "Барневельд", + "Барнегат", + "Барнетт", + "Барне", + "Барни", + "Барнс", + "Барнум", + "Барнхарт", + "Барн", + "Барода", + "Барон", + "Барранкитас", + "Баррелл", + "Баррель", + "Баррел", + "Баррет", + "Барре", + "Барринг", + "Баррино", + "Барри", + "Баррон", + "Барроу", + "Барр", + "Барселонета", + "Барстоу", + "Бартелсо", + "Бартлес", + "Бартлетт", + "Бартли", + "Бартоло", + "Бартон", + "Бартоу", + "Бар", + "Басай", + "Басби", + "Баскерк", + "Баскетт", + "Баскинг", + "Баскин", + "Баском", + "Баско", + "Бассейн", + "Бассет", + "Басси", + "Басс", + "Бастиан", + "Бастроп", + "Батавия", + "Батгейт", + "Батлер", + "Батнер", + "Батр", + "Батсон", + "Баттер", + "Баттлмент", + "Баттл", + "Баттон", + "Батч", + "Бат", + "Бауерс", + "Баундари", + "Баунд", + "Баунти", + "Баус", + "Баутон", + "Баутт", + "Баффинг", + "Бахандас", + "Бах", + "Баш", + "Баю", + "Баядеро", + "Баярд", + "Беардс", + "Беар", + "Беатрис", + "Беауо", + "Бебе", + "Беверли", + "Бевинг", + "Бевьер", + "Беда", + "Бедиас", + "Бедминстер", + "Бедрок", + "Бед", + "Бейлис", + "Бейн", + "Бейрн", + "Бейсингер", + "Бейтс", + "Беккер", + "Беккет", + "Бекли", + "Бекмейер", + "Бекон", + "Бекслей", + "Бектон", + "Бек", + "Белва", + "Белвью", + "Белгик", + "Белград", + "Белден", + "Белдинг", + "Белен", + "Белзони", + "Белинг", + "Белинда", + "Белкамп", + "Белкорт", + "Белкофски", + "Белк", + "Беллами", + "Белла", + "Беллвью", + "Беллингем", + "Беллмор", + "Беллоу", + "Беллэр", + "Белл", + "Белмар", + "Белмонт", + "Белмор", + "Белнап", + "Белпре", + "Белтон", + "Белтрами", + "Белт", + "Белуа", + "Белфаст", + "Белфолл", + "Белфри", + "Белфэр", + "Белчер", + "Белчестер", + "Бельведер", + "Бельгия", + "Бельмид", + "Бельмонд", + "Бельрив", + "Бельфонт", + "Бель", + "Бел", + "Бемент", + "Бемисс", + "Бемис", + "Бемус", + "Бенавидес", + "Бена", + "Бенгал", + "Бенге", + "Бендавис", + "Бендер", + "Бенджамин", + "Бенд", + "Беневоленс", + "Бенедикт", + "Бензония", + "Бенитез", + "Бенито", + "Бениция", + "Бенкелман", + "Бенльд", + "Беннетт", + "Беннет", + "Беннинг", + "Беннион", + "Бенн", + "Бенонина", + "Бенсен", + "Бенсон", + "Бентли", + "Бентония", + "Бентон", + "Бент", + "Бенуа", + "Бенхам", + "Бенчли", + "Бенч", + "Бен", + "Бербанк", + "Бервик", + "Бервин", + "Берген", + "Бергер", + "Бергу", + "Бергхольц", + "Берг", + "Берден", + "Бердетт", + "Бердик", + "Беренда", + "Беренис", + "Берес", + "Берея", + "Берилл", + "Берино", + "Бери", + "Беркбернетт", + "Беркетт", + "Беркет", + "Беркиттс", + "Берки", + "Беркли", + "Берклэр", + "Беркс", + "Берк", + "Берлей", + "Берлингейм", + "Берлинг", + "Берлин", + "Берлисон", + "Берли", + "Берлсон", + "Берместер", + "Бермуда", + "Бермут", + "Берналилло", + "Бернардино", + "Бернардо", + "Бернард", + "Бернекер", + "Бернетт", + "Бернет", + "Бернис", + "Берни", + "Бернстад", + "Бернхэм", + "Бернштадт", + "Бернштейн", + "Берн", + "Бероун", + "Берриен", + "Берри", + "Берроуз", + "Берр", + "Берта", + "Бертольд", + "Бертон", + "Бертрам", + "Бертран", + "Бертрум", + "Бертхауд", + "Берт", + "Беруэлл", + "Берчард", + "Берчинал", + "Бер", + "Бесида", + "Бессемер", + "Бесси", + "Бессмэй", + "Бест", + "Беталто", + "Бетани", + "Бетансес", + "Бетвин", + "Бетезда", + "Бетейрс", + "Бетел", + "Бете", + "Бетпаж", + "Беттеравия", + "Беттер", + "Бетти", + "Беттл", + "Беттс", + "Бетюн", + "Бечин", + "Бечтелс", + "Бибб", + "Бибер", + "Биб", + "Бивердам", + "Биверлик", + "Бивер", + "Бивинс", + "Бивис", + "Бивабик", + "Бигби", + "Биггер", + "Биггс", + "Бигелоу", + "Биглер", + "Бигль", + "Бигспринг", + "Бигфорк", + "Бигфут", + "Биг", + "Бидда", + "Биддл", + "Биджоу", + "Биджу", + "Бидуэлл", + "Бид", + "Бизон", + "Бикнелл", + "Бикон", + "Биксби", + "Билас", + "Билер", + "Биллерика", + "Биллетт", + "Биллингсли", + "Биллинг", + "Биллс", + "Билл", + "Билокси", + "Бил", + "Биман", + "Бимер", + "Бингем", + "Бинген", + "Бингер", + "Бинг", + "Бинум", + "Бин", + "Биола", + "Биорка", + "Биппус", + "Бирдсейе", + "Бирдсонг", + "Бирд", + "Бирмингем", + "Бирнам", + "Бирн", + "Бирта", + "Бирч", + "Бисби", + "Бискай", + "Бискейн", + "Бискоу", + "Бисли", + "Бисмарк", + "Бисселл", + "Биттер", + "Битти", + "Бичгров", + "Бичер", + "Бич", + "Бишоп", + "Би", + "Бладен", + "Блайт", + "Блай", + "Бландинс", + "Бланд", + "Бланка", + "Бланкет", + "Бланко", + "Бланк", + "Блант", + "Бланшар", + "Бланшстер", + "Бланш", + "Бласделл", + "Блевинс", + "Блеветт", + "Бледсо", + "Блейкли", + "Блейкман", + "Блейкс", + "Блейсделл", + "Блендинг", + "Бленкоу", + "Бленнер", + "Бленхейм", + "Блессинг", + "Блеф", + "Бликер", + "Блик", + "Блин", + "Блисс", + "Блитч", + "Бловелт", + "Блоджетт", + "Блокер", + "Блоксом", + "Блоктон", + "Блок", + "Бломкест", + "Блонокс", + "Блоссом", + "Блосс", + "Блоуэн", + "Блочер", + "Блумер", + "Блуминг", + "Блум", + "Блу", + "Блэйдс", + "Блэйксли", + "Блэйн", + "Блэкберн", + "Блэквелл", + "Блэкдак", + "Блэки", + "Блэксток", + "Блэкфут", + "Блэкшир", + "Блэк", + "Блэлок", + "Блэнтон", + "Блэрсден", + "Блэр", + "Блюменталь", + "Блюм", + "Блю", + "Боаз", + "Бобо", + "Боб", + "Бовард", + "Бовилл", + "Бовина", + "Бови", + "Богальюза", + "Богард", + "Богарт", + "Богата", + "Богемия", + "Богия", + "Богота", + "Бодега", + "Боден", + "Бодетта", + "Бодкоу", + "Боерн", + "Бозар", + "Бозман", + "Бойделл", + "Бойден", + "Бойд", + "Бойеро", + "Бойер", + "Бойкин", + "Бойкурт", + "Бойла", + "Бойлинг", + "Бойл", + "Бойн", + "Бойсен", + "Бойстфорт", + "Бойс", + "Бой", + "Бока", + "Бокерон", + "Бокилия", + "Бокиллас", + "Бокоше", + "Бокселдер", + "Боксит", + "Боксхольм", + "Бокс", + "Бокчито", + "Бок", + "Болдер", + "Болдридж", + "Болдуин", + "Болд", + "Болес", + "Боливар", + "Болиги", + "Болингер", + "Болинг", + "Болин", + "Боли", + "Болкоу", + "Боллинг", + "Боллинджер", + "Болли", + "Боллуин", + "Болл", + "Болс", + "Болтон", + "Болт", + "Болье", + "Болэр", + "Бомартон", + "Бома", + "Бомбей", + "Бомонт", + "Бонавентура", + "Бонанза", + "Бонапарт", + "Бондад", + "Бондуран", + "Бондюэль", + "Бонд", + "Бонерс", + "Бонилья", + "Бонита", + "Бонифациус", + "Бонифэй", + "Бонкарбо", + "Бонли", + "Бонна", + "Боннер", + "Бонни", + "Бонно", + "Бонсолл", + "Бонхоми", + "Бонэм", + "Бонэр", + "Бон", + "Боргер", + "Борделон", + "Борден", + "Бордер", + "Бордман", + "Бордо", + "Бордулак", + "Борд", + "Борегард", + "Боринг", + "Борн", + "Борон", + "Боро", + "Боррего", + "Бортон", + "Борт", + "Боруп", + "Боске", + "Боскобель", + "Боскоен", + "Боско", + "Бослер", + "Боссье", + "Босс", + "Боствик", + "Бостик", + "Бостония", + "Бостон", + "Босуорт", + "Босуэлл", + "Ботелл", + "Ботиста", + "Боткинс", + "Ботман", + "Ботна", + "Боттино", + "Боттом", + "Боубелл", + "Боуг", + "Боуден", + "Боудл", + "Боудойн", + "Боудон", + "Боуер", + "Боузмен", + "Боуз", + "Боуи", + "Боукет", + "Боукс", + "Боулегс", + "Боулинг", + "Боулис", + "Боулус", + "Боуман", + "Боун", + "Боуэн", + "Бофорт", + "Бохома", + "Боше", + "Браво", + "Браггадочио", + "Брадгейт", + "Брад", + "Бразер", + "Бразилия", + "Бразос", + "Брайант", + "Брайан", + "Брайар", + "Брайдена", + "Брайд", + "Брайер", + "Брайсон", + "Брайс", + "Брайт", + "Брай", + "Бракен", + "Брамвелл", + "Брамли", + "Брамп", + "Бранден", + "Брандрет", + "Брансон", + "Брансуик", + "Брант", + "Бранч", + "Бран", + "Брасель", + "Брассард", + "Брасс", + "Братеналь", + "Браттлборо", + "Браунелл", + "Браунинг", + "Браунли", + "Браунфелз", + "Браун", + "Брауэр", + "Брахам", + "Брашвейл", + "Брашир", + "Браши", + "Брашли", + "Браш", + "Бревард", + "Бревиг", + "Бреворт", + "Бреда", + "Бреднер", + "Брейв", + "Брейдаблик", + "Брейден", + "Брейен", + "Брейнтри", + "Брейтуэйт", + "Брекен", + "Брекин", + "Бреконе", + "Брекс", + "Бремен", + "Бремер", + "Бремонд", + "Бренас", + "Бренда", + "Брендедж", + "Брендивайн", + "Бренд", + "Брент", + "Бренхам", + "Брео", + "Бреслау", + "Бресслер", + "Бригам", + "Бригантина", + "Бриггс", + "Бриджер", + "Бриджмен", + "Бридж", + "Брид", + "Бриенс", + "Бриз", + "Брикер", + "Брикис", + "Бриллиант", + "Бриллион", + "Бримли", + "Бримсон", + "Брим", + "Брини", + "Бринкли", + "Бринклоу", + "Бринкман", + "Бринсмэйд", + "Бринсон", + "Брин", + "Брисбейн", + "Брисбин", + "Бриско", + "Бристоль", + "Бристоу", + "Брис", + "Британь", + "Бриттон", + "Бритт", + "Бриэль", + "Бри", + "Броадус", + "Броад", + "Броган", + "Бродалбин", + "Бродбент", + "Броддус", + "Бродмур", + "Броднакс", + "Бродуэлл", + "Бродхед", + "Броек", + "Брокен", + "Брокоу", + "Брокстон", + "Броктон", + "Брок", + "Бромид", + "Бромли", + "Бронаф", + "Бронкс", + "Бронсон", + "Бронте", + "Брончо", + "Брон", + "Бросели", + "Брос", + "Броуар", + "Броули", + "Брохард", + "Бро", + "Бруин", + "Бруквейл", + "Брукер", + "Брукинг", + "Бруклет", + "Бруклин", + "Бруклоун", + "Брукнил", + "Брукридж", + "Бруксмит", + "Брукшир", + "Брук", + "Брул", + "Брумалл", + "Брум", + "Брундидж", + "Бруни", + "Бруно", + "Брунс", + "Брусет", + "Брутен", + "Брэгг", + "Брэдди", + "Брэддок", + "Брэди", + "Брэдли", + "Брэдшоу", + "Брэйд", + "Брэймер", + "Брэйнард", + "Брэйнерд", + "Брэйси", + "Брэйс", + "Брэй", + "Брэкетт", + "Брэкстон", + "Брэндон", + "Брэнсон", + "Брэнтли", + "Брэнтон", + "Брэтт", + "Брэшер", + "Брюер", + "Брюнинг", + "Брюссель", + "Брюстер", + "Брюс", + "Брю", + "Брёно", + "Буа", + "Буда", + "Буди", + "Буейерос", + "Буелл", + "Буик", + "Буист", + "Буйе", + "Букатунна", + "Букер", + "Буктейл", + "Булверд", + "Булгер", + "Булер", + "Буллард", + "Буллиттс", + "Булл", + "Булпитт", + "Бульвар", + "Буль", + "Бумер", + "Бунависта", + "Буна", + "Бункер", + "Бунчи", + "Бун", + "Бурас", + "Бурбоннис", + "Бурбон", + "Бургдорф", + "Бургесс", + "Бургин", + "Бурго", + "Бургун", + "Бург", + "Бурен", + "Буриен", + "Бурма", + "Бурна", + "Бустаманте", + "Бутбей", + "Бутвин", + "Бутжек", + "Бут", + "Буфало", + "Буффало", + "Бучтель", + "Бушкилл", + "Бушнелл", + "Бушонг", + "Буш", + "Буэна", + "Буэнос", + "Буэшел", + "Бу", + "Бьен", + "Бьюд", + "Бьюкенен", + "Бьюла", + "Бьюли", + "Бьютт", + "Бэбби", + "Бэбкок", + "Бэгли", + "Бэйд", + "Бэйзмор", + "Бэйкер", + "Бэйли", + "Бэйн", + "Бэйшор", + "Бэй", + "Бэксли", + "Бэктон", + "Бэнг", + "Бэндон", + "Бэнкрофт", + "Бэннокберн", + "Бэнтри", + "Бэра", + "Бэрдс", + "Бэрд", + "Бэройл", + "Бэтчелор", + "Бэ", + "Бярс", + "Бёрдок", + "Бёрдсли", + "Бёрнинг", + "Бёрнт", + "Бёрн", + "Вабаска", + "Вабассо", + "Вабаунси", + "Вабаша", + "Вабено", + "Вававай", + "Вавилон", + "Вавона", + "Вагар", + "Ваггонер", + "Вагенер", + "Вагнер", + "Вагонер", + "Вагоншер", + "Вагон", + "Ваграм", + "Вагстафф", + "Вадинг", + "Вадито", + "Ваднейс", + "Вадо", + "Вазича", + "Ваималу", + "Ваинаку", + "Вайзер", + "Вайкии", + "Вайлуа", + "Вайман", + "Вайнгартен", + "Вайнерт", + "Вайнона", + "Вайнъярд", + "Вайн", + "Вайолет", + "Вайоминг", + "Вайомиссинг", + "Вайтло", + "Вайян", + "Вакабук", + "Вакамо", + "Вака", + "Вакония", + "Вако", + "Ваксхо", + "Вакс", + "Валати", + "Валгалла", + "Валдерс", + "Валенсия", + "Валентин", + "Валера", + "Валерия", + "Валинда", + "Валин", + "Валкария", + "Валлесито", + "Валлиант", + "Валли", + "Валль", + "Валмайер", + "Валрико", + "Валсец", + "Вальдес", + "Вальдоста", + "Вальехо", + "Валье", + "Вальмон", + "Вальмора", + "Вальпараисо", + "Вальс", + "Вальтер", + "Вальтон", + "Вальхалла", + "Валью", + "Вал", + "Вамак", + "Вамего", + "Вамик", + "Вамо", + "Вампс", + "Ванака", + "Ванак", + "Ванамасса", + "Ванаминго", + "Вананда", + "Ваната", + "Вандайк", + "Вандалия", + "Ванда", + "Вандер", + "Вандлинг", + "Вандмир", + "Вандузер", + "Ванзант", + "Ванилла", + "Ванклив", + "Ванкорт", + "Ванкувер", + "Ванлир", + "Ванлю", + "Ваннаска", + "Ваносс", + "Ванпорт", + "Вансант", + "Вантадж", + "Ванта", + "Ванчес", + "Вапаконета", + "Вапанака", + "Вапато", + "Вапелла", + "Вапелло", + "Вапинития", + "Вапити", + "Ваппингерс", + "Вардаман", + "Варина", + "Варминстер", + "Варнадо", + "Варнам", + "Варна", + "Варнелл", + "Варнер", + "Варн", + "Варт", + "Варшава", + "Васай", + "Васисса", + "Васкес", + "Васком", + "Васкотт", + "Васко", + "Вассар", + "Вассон", + "Васс", + "Васта", + "Вастелла", + "Ватага", + "Ватерлоо", + "Ватсека", + "Ват", + "Ваутома", + "Вахайава", + "Вахоо", + "Вах", + "Вачери", + "Вашингтон", + "Вашон", + "Вебер", + "Веблен", + "Вебстер", + "Вевер", + "Вевэй", + "Вегас", + "Вега", + "Вегита", + "Веддинг", + "Ведж", + "Ведик", + "Ведоуи", + "Ведра", + "Ведрон", + "Везувий", + "Вейг", + "Вейден", + "Вейдер", + "Вейдман", + "Вейл", + "Веймар", + "Вейо", + "Вейр", + "Вейсерт", + "Вейспорт", + "Векс", + "Велака", + "Велва", + "Велда", + "Велма", + "Велч", + "Вел", + "Венанго", + "Веначи", + "Вена", + "Вендель", + "Венден", + "Вендовер", + "Венеди", + "Венедошия", + "Венера", + "Венета", + "Венети", + "Венециан", + "Венеция", + "Венис", + "Вентнор", + "Вентура", + "Вентурия", + "Верано", + "Вера", + "Вербена", + "Вергас", + "Вергиль", + "Верда", + "Вердел", + "Верден", + "Вердери", + "Верде", + "Вердженес", + "Вердигриз", + "Вердигр", + "Верди", + "Вердон", + "Веркин", + "Вермилен", + "Вермильон", + "Вермонт", + "Вернал", + "Верна", + "Вернер", + "Верния", + "Вернония", + "Вернон", + "Вернь", + "Верн", + "Верона", + "Веро", + "Верпланк", + "Веррет", + "Версаль", + "Верт", + "Верхален", + "Веспер", + "Вессинг", + "Вессон", + "Веставия", + "Вестал", + "Веста", + "Вестерло", + "Вестерн", + "Вестер", + "Вестланд", + "Вестминстерский", + "Вестмор", + "Вестфалия", + "Вестфир", + "Вестфолл", + "Вестчестер", + "Вест", + "Ветал", + "Вета", + "Ветеран", + "Вея", + "Виано", + "Виан", + "Виббард", + "Вибернум", + "Виборас", + "Вивьен", + "Вигвам", + "Виго", + "Вигус", + "Видаерри", + "Видал", + "Вида", + "Видеркер", + "Видер", + "Видетт", + "Видор", + "Видрин", + "Виза", + "Визнер", + "Викинг", + "Вики", + "Викко", + "Виклифф", + "Викофф", + "Виктория", + "Виктори", + "Виктор", + "Вик", + "Вилас", + "Виллалба", + "Вилланова", + "Виллано", + "Виллард", + "Вилла", + "Виллидж", + "Виллиска", + "Вилли", + "Вилль", + "Вилмар", + "Вилмер", + "Вилмор", + "Вилония", + "Вильма", + "Вильна", + "Вильно", + "Вильянуэва", + "Вими", + "Винал", + "Вина", + "Виндзор", + "Винегар", + "Вининг", + "Винита", + "Винкельман", + "Винкен", + "Винко", + "Винланд", + "Виннебаго", + "Винн", + "Винокур", + "Винона", + "Винот", + "Винсеннес", + "Винсент", + "Винсон", + "Винта", + "Винтон", + "Винчестер", + "Виола", + "Випер", + "Виргиния", + "Виргин", + "Вирден", + "Вирджелл", + "Вирджилина", + "Вироква", + "Вирсавия", + "Висалия", + "Вискассет", + "Виски", + "Висконсин", + "Виста", + "Витамс", + "Витман", + "Витока", + "Витроу", + "Виттен", + "Витт", + "Вифания", + "Вифлеем", + "Виши", + "Вия", + "Ви", + "Влек", + "Вобурн", + "Водрей", + "Вока", + "Воклюз", + "Волант", + "Волборг", + "Волвертон", + "Волга", + "Воленс", + "Волин", + "Волкано", + "Волк", + "Волланд", + "Воло", + "Вольта", + "Вольт", + "Воль", + "Вона", + "Вонвок", + "Вонни", + "Вон", + "Воорхис", + "Вортекс", + "Восс", + "Вотан", + "Вото", + "Воф", + "Врангель", + "Вреден", + "Вудард", + "Вудин", + "Вуди", + "Вудлин", + "Вудлиф", + "Вудлон", + "Вудмир", + "Вудро", + "Вудсток", + "Вудфин", + "Вуд", + "Вук", + "Вулверин", + "Вулкан", + "Вуллошет", + "Вулси", + "Вульф", + "Вул", + "Вунсокет", + "Вурт", + "Вусанг", + "Вустер", + "Выборг", + "Вьекес", + "Вьехо", + "Вью", + "Вэйл", + "Вэймарт", + "Вэй", + "Вэнс", + "Вэн", + "Вэр", + "Вю", + "Гаастра", + "Габбетт", + "Габбс", + "Гавайи", + "Гавана", + "Гавань", + "Гаварден", + "Гавиота", + "Гаворт", + "Гавриил", + "Гавр", + "Гаген", + "Гаг", + "Гаджби", + "Гадсден", + "Гаен", + "Газа", + "Газель", + "Газ", + "Гайавата", + "Гайд", + "Гаймон", + "Гай", + "Гакона", + "Галакс", + "Галатео", + "Галатия", + "Галва", + "Галена", + "Галивантс", + "Галиен", + "Галилея", + "Галион", + "Галифакс", + "Галлатин", + "Галлауэй", + "Галлей", + "Галлетт", + "Галлинас", + "Галлион", + "Галлиполис", + "Галлицин", + "Галли", + "Галлман", + "Галлоуэй", + "Галл", + "Галнэр", + "Галт", + "Галф", + "Галч", + "Гальвес", + "Гальяно", + "Гамак", + "Гамалиил", + "Гамбелл", + "Гамбиер", + "Гамбрилл", + "Гамерко", + "Гамильтон", + "Гамлет", + "Гамлог", + "Гам", + "Ганадо", + "Ганг", + "Гандер", + "Ганди", + "Ганлок", + "Ганнетт", + "Ганнибал", + "Ганнисон", + "Ганновер", + "Ганн", + "Гано", + "Гансвурт", + "Ганс", + "Ганта", + "Ган", + "Гарбер", + "Гарвард", + "Гарвин", + "Гарвуд", + "Гардар", + "Гардена", + "Гарден", + "Гардинер", + "Гарди", + "Гарднер", + "Гард", + "Гарибальди", + "Гарита", + "Гарлем", + "Гарлин", + "Гарлок", + "Гармони", + "Гарнавилло", + "Гарнейлл", + "Гарнер", + "Гарнетт", + "Гарнизон", + "Гарни", + "Гарольд", + "Гаро", + "Гаррет", + "Гаррочалес", + "Гарсия", + "Гарфилд", + "Гар", + "Гасиенда", + "Гаске", + "Гаскин", + "Гаскойн", + "Гасконада", + "Гасконь", + "Гаск", + "Гаспер", + "Гаспорт", + "Гасс", + "Гастингс", + "Гастин", + "Гастония", + "Гастон", + "Гатлин", + "Гатлифф", + "Гатос", + "Гатри", + "Гаттман", + "Гаузе", + "Гауэр", + "Гаффи", + "Гаффни", + "Гаханна", + "Гвалала", + "Гвасти", + "Гвен", + "Гвинда", + "Гвинед", + "Гвинея", + "Гвиннер", + "Гвинн", + "Гвинн", + "Гебо", + "Геддес", + "Гейблс", + "Гейгер", + "Гейдан", + "Гейдж", + "Гейзер", + "Гейли", + "Гейлорд", + "Гейлс", + "Гейл", + "Гейм", + "Гейнс", + "Гейсмар", + "Гейс", + "Гейтерс", + "Гейт", + "Гекла", + "Гекл", + "Гектор", + "Геллер", + "Гематит", + "Гем", + "Генриетта", + "Генри", + "Гент", + "Генуя", + "Геральд", + "Гербер", + "Геринг", + "Геркулес", + "Герлах", + "Герли", + "Германия", + "Германн", + "Германо", + "Герман", + "Гермфаск", + "Герни", + "Гернси", + "Геррик", + "Герстер", + "Герти", + "Гертон", + "Гесси", + "Гесс", + "Геттис", + "Гиампом", + "Гиббон", + "Гиббс", + "Гибралтар", + "Гибсония", + "Гибсон", + "Гибс", + "Гигиена", + "Гиг", + "Гиддингс", + "Гидеон", + "Гидро", + "Гид", + "Гизела", + "Гикори", + "Гиларк", + "Гила", + "Гилбер", + "Гилби", + "Гилго", + "Гилд", + "Гилеад", + "Гилкрест", + "Гилкрист", + "Гиллеспи", + "Гиллиам", + "Гиллиатт", + "Гиллис", + "Гиллули", + "Гиллхэм", + "Гилл", + "Гилман", + "Гилмер", + "Гилмор", + "Гилпин", + "Гилрой", + "Гилсум", + "Гилтнер", + "Гилт", + "Гилфорд", + "Гильберт", + "Гильбоа", + "Гильдия", + "Гил", + "Гин", + "Гипс", + "Гирвин", + "Гирд", + "Гири", + "Гирт", + "Гиффорд", + "Ги", + "Гладвин", + "Гладден", + "Гладиола", + "Гладуин", + "Глад", + "Глазго", + "Глайд", + "Гламис", + "Гландорф", + "Гланси", + "Гларус", + "Гласко", + "Гласс", + "Гластон", + "Глас", + "Глез", + "Глейд", + "Глейшер", + "Гленбар", + "Гленвар", + "Гленвил", + "Глендайв", + "Глендеви", + "Глендон", + "Глендора", + "Глендо", + "Гленко", + "Гленкросс", + "Гленлок", + "Гленмора", + "Гленни", + "Гленн", + "Гленолден", + "Гленома", + "Гленпул", + "Глентана", + "Гленхем", + "Гленэр", + "Глен", + "Глидден", + "Глид", + "Глиндон", + "Глинн", + "Глисон", + "Глоастер", + "Глоба", + "Гловер", + "Глория", + "Глори", + "Глостер", + "Гло", + "Глук", + "Глэди", + "Глэйзер", + "Глюк", + "Гнаден", + "Гобер", + "Гоблер", + "Гоблс", + "Гован", + "Говард", + "Говерн", + "Гованда", + "Годвин", + "Годдард", + "Годли", + "Годфри", + "Гоессел", + "Голва", + "Голдвейн", + "Голденрод", + "Голден", + "Голдман", + "Голдонна", + "Голдсби", + "Голдсмит", + "Голдтуэйт", + "Голд", + "Голета", + "Голиед", + "Голинда", + "Голи", + "Голконда", + "Голландия", + "Головин", + "Голсон", + "Голтри", + "Голуэй", + "Гольф", + "Гольштейн", + "Гомез", + "Гомер", + "Гонвик", + "Гонигл", + "Гонолулу", + "Гонсалес", + "Горам", + "Горацио", + "Горда", + "Гордон", + "Гордо", + "Горизонт", + "Горин", + "Гори", + "Горман", + "Горн", + "Горст", + "Гортензия", + "Горум", + "Гор", + "Госнелл", + "Госпорт", + "Госс", + "Гост", + "Готам", + "Готебо", + "Готен", + "Готье", + "Гоув", + "Гоудо", + "Гоула", + "Гоуэн", + "Гофф", + "Гоф", + "Гошен", + "Гошут", + "Граббс", + "Грабилл", + "Граветт", + "Гравити", + "Градец", + "Грайдер", + "Граймс", + "Грайн", + "Грама", + "Грамблинг", + "Грамерси", + "Грампиан", + "Гранада", + "Гранде", + "Гранджено", + "Грандин", + "Гранди", + "Гранд", + "Гранит", + "Граннис", + "Грантли", + "Грантон", + "Грант", + "Гран", + "Грасмир", + "Грасон", + "Грасси", + "Грасс", + "Гратон", + "Грат", + "Граунд", + "Граус", + "Грау", + "Графорд", + "Графтон", + "Графф", + "Граф", + "Грегорио", + "Грегори", + "Грегор", + "Грейвелли", + "Грейвуа", + "Грейв", + "Грейди", + "Грейнджер", + "Грейндж", + "Грейнола", + "Грейп", + "Грейси", + "Грейс", + "Грейтер", + "Грейшез", + "Грейшет", + "Грей", + "Гренада", + "Гренби", + "Гренландия", + "Гренола", + "Гренора", + "Грено", + "Грен", + "Гресстон", + "Грес", + "Гретна", + "Грец", + "Грешам", + "Григгс", + "Григла", + "Григстон", + "Гридли", + "Гриззли", + "Гриз", + "Грили", + "Гримсли", + "Гринакрс", + "Гринап", + "Гринбак", + "Гринбанк", + "Гринбелт", + "Гринбуш", + "Гринвальд", + "Гринвич", + "Гринго", + "Гринд", + "Гриневер", + "Гринкасл", + "Гринлиф", + "Гринлон", + "Гриннел", + "Гринтоп", + "Грин", + "Грир", + "Грисволд", + "Грис", + "Грит", + "Грифон", + "Грифтон", + "Гриффит", + "Грования", + "Гровер", + "Гровонт", + "Гросбек", + "Гросвенор", + "Гросс", + "Гротон", + "Гротто", + "Гроув", + "Гроулер", + "Грувер", + "Груен", + "Груетли", + "Грулки", + "Грулла", + "Грум", + "Грунди", + "Грэйлинг", + "Грэйт", + "Грэй", + "Грэнтэм", + "Грэхем", + "Грю", + "Гуадалупе", + "Гуайнабо", + "Гуайябаль", + "Гуайянилья", + "Гуаника", + "Гуаяма", + "Гувернер", + "Гудвин", + "Гуделл", + "Гуденау", + "Гудзон", + "Гудиер", + "Гудинг", + "Гудлетт", + "Гудлоу", + "Гудман", + "Гуднайт", + "Гудно", + "Гудньюс", + "Гудридж", + "Гудрич", + "Гудспринг", + "Гудуэлл", + "Гуд", + "Гуин", + "Гулдинг", + "Гулд", + "Гуливер", + "Гулкана", + "Гумбольдт", + "Гурабо", + "Гурон", + "Гур", + "Гуспорт", + "Густавус", + "Гусь", + "Гуттен", + "Гуч", + "Гуэрра", + "Гу", + "Гэй", + "Гэлбрейт", + "Гэллап", + "Гэмбл", + "Гэп", + "Гэрдон", + "Гэри", + "Гюнтер", + "Гюттер", + "Дабл", + "Дабни", + "Дабук", + "Давант", + "Давен", + "Давид", + "Дав", + "Даггер", + "Дагмар", + "Дагсборо", + "Дагуао", + "Дадли", + "Даелм", + "Даенвег", + "Даетт", + "Дазей", + "Дайерс", + "Дайер", + "Дайесс", + "Дайк", + "Дайм", + "Дайсарт", + "Дайтона", + "Дайтон", + "Даквойн", + "Дакетт", + "Дакома", + "Даконо", + "Дакота", + "Даксбери", + "Дакула", + "Дак", + "Даларк", + "Далбо", + "Далворт", + "Далис", + "Далия", + "Далкена", + "Далкит", + "Далкур", + "Даллас", + "Даллес", + "Далонега", + "Далтон", + "Далхарт", + "Далцелл", + "Дальгрен", + "Дамар", + "Дамаск", + "Дамес", + "Дамфрис", + "Дам", + "Дана", + "Данбар", + "Данвуди", + "Дангенесс", + "Дангэннон", + "Дандаррач", + "Дандас", + "Данджер", + "Данди", + "Дандолк", + "Даневанг", + "Данеллен", + "Данес", + "Данидин", + "Даниэль", + "Дания", + "Данкомб", + "Данлеви", + "Данлей", + "Данлоу", + "Данлэп", + "Данмор", + "Даннеган", + "Даннеллон", + "Даннелл", + "Данниган", + "Даннинг", + "Данн", + "Данпхи", + "Данрейт", + "Дансейт", + "Дансмьюир", + "Данстейбл", + "Данте", + "Дантон", + "Данферм", + "Дапуайр", + "Дара", + "Дарби", + "Дарбун", + "Дарвин", + "Дарданеллы", + "Дарден", + "Дарема", + "Дариен", + "Дарко", + "Дарк", + "Дарлинг", + "Дарлов", + "Дармштадт", + "Дарнелл", + "Дарнес", + "Дарринг", + "Даррозетт", + "Дартмут", + "Дарфур", + "Дассел", + "Дастер", + "Дастин", + "Дасти", + "Дата", + "Датил", + "Даттон", + "Датто", + "Датч", + "Даулинг", + "Даунер", + "Даунинг", + "Дауни", + "Даунс", + "Дафна", + "Дафтер", + "Дашер", + "Дашор", + "Девайн", + "Деверо", + "Деверс", + "Девил", + "Девола", + "Девол", + "Девон", + "Девор", + "Дедхем", + "Дед", + "Дездемона", + "Дезерет", + "Дейд", + "Дейзи", + "Дейкин", + "Дейли", + "Дейл", + "Дейн", + "Дейретта", + "Дейри", + "Дейтон", + "Декейтер", + "Декер", + "Декло", + "Декл", + "Дековен", + "Декора", + "Декстер", + "Делаван", + "Делавэр", + "Делайт", + "Деланко", + "Делано", + "Делансон", + "Делаплейн", + "Дела", + "Делеван", + "Делия", + "Дели", + "Делкамбр", + "Делко", + "Деллрой", + "Делл", + "Делойт", + "Делонг", + "Делрей", + "Делтона", + "Делтон", + "Делфт", + "Дельмар", + "Дельмонт", + "Дельта", + "Дельфия", + "Дельфи", + "Дельфос", + "Демарест", + "Деминг", + "Демократ", + "Демополис", + "Деморест", + "Демпси", + "Денби", + "Денвер", + "Дендрон", + "Денио", + "Денисон", + "Денмарк", + "Деннард", + "Деннинг", + "Деннис", + "Денод", + "Денсмор", + "Дентон", + "Дент", + "Денхофф", + "Денхэм", + "Денэр", + "Ден", + "Деора", + "Депозит", + "Депорт", + "Депо", + "Депью", + "Деп", + "Дерби", + "Деринг", + "Дерита", + "Дермитт", + "Дермотта", + "Деррик", + "Дерри", + "Десерт", + "Дескансо", + "Деслодж", + "Десото", + "Деспард", + "Дестин", + "Дестрхен", + "Дес", + "Детонти", + "Детройт", + "Детур", + "Деуолт", + "Дефериет", + "Дефианс", + "Дечерд", + "Деша", + "Дешлер", + "Дешют", + "Джадсон", + "Джайлс", + "Джакамба", + "Джаколоф", + "Джал", + "Джанго", + "Джанкшен", + "Джантура", + "Джан", + "Джаптон", + "Джарбидж", + "Джарвис", + "Джаросо", + "Джарратт", + "Джаррелл", + "Джарреттс", + "Джаспер", + "Джастус", + "Джебель", + "Джеддито", + "Джеддо", + "Джезуп", + "Джейкин", + "Джейкс", + "Джеймача", + "Джеймсон", + "Джеймс", + "Джеймул", + "Джейнс", + "Джейн", + "Джейсон", + "Джекман", + "Джекоб", + "Джекпот", + "Джексон", + "Джек", + "Джеллико", + "Джеллоуэй", + "Джемез", + "Джемисон", + "Джеммелл", + "Джемпер", + "Дженезео", + "Дженера", + "Дженисон", + "Дженифер", + "Дженкин", + "Дженкс", + "Дженнер", + "Дженнетт", + "Дженнингс", + "Дженни", + "Дженола", + "Дженсен", + "Джентри", + "Джеральдин", + "Джеральд", + "Джервис", + "Джерико", + "Джермин", + "Джером", + "Джеронимо", + "Джерри", + "Джерроу", + "Джерси", + "Джессап", + "Джесси", + "Джетерс", + "Джетмор", + "Джет", + "Джеуда", + "Джефферсон", + "Джефферс", + "Джеффри", + "Джец", + "Джиггер", + "Джиллетт", + "Джим", + "Джинго", + "Джинеси", + "Джин", + "Джоанна", + "Джобс", + "Джозеф", + "Джойнер", + "Джойс", + "Джой", + "Джоливью", + "Джолиет", + "Джолли", + "Джонанси", + "Джона", + "Джонетта", + "Джонсон", + "Джонс", + "Джонфаррис", + "Джон", + "Джоплин", + "Джоппа", + "Джордан", + "Джорджиана", + "Джорджио", + "Джорджия", + "Джордж", + "Джослин", + "Джофре", + "Джошуа", + "Джоэл", + "Джоя", + "Джо", + "Джудит", + "Джуди", + "Джулиан", + "Джулиус", + "Джулифф", + "Джульетта", + "Джульярдской", + "Джуналаска", + "Джуниата", + "Джуниор", + "Джунипер", + "Джуниус", + "Джуно", + "Джун", + "Джуэл", + "Джьюетт", + "Джэйтон", + "Джэй", + "Джэрхарт", + "Диабло", + "Диагональ", + "Диал", + "Диамонд", + "Диана", + "Диас", + "Диббл", + "Дибер", + "Диболл", + "Дивайд", + "Дивер", + "Диггингс", + "Диггинс", + "Диего", + "Дизни", + "Дикенс", + "Дикерсон", + "Дикийголубь", + "Дики", + "Диксборо", + "Дикси", + "Диксмонт", + "Диксмур", + "Диксон", + "Диксфилд", + "Дикс", + "Дикус", + "Дик", + "Дилинг", + "Дилия", + "Диллард", + "Диллвин", + "Диллер", + "Диллингхем", + "Дилли", + "Диллон", + "Дилл", + "Дилстадт", + "Дил", + "Димас", + "Димер", + "Диммитт", + "Димок", + "Димон", + "Димс", + "Динвидди", + "Дингл", + "Дингман", + "Дингус", + "Динеро", + "Диннер", + "Динозавр", + "Динуба", + "Дин", + "Диомид", + "Диос", + "Дип", + "Диринг", + "Дири", + "Диркс", + "Дир", + "Дисаутел", + "Дискавери", + "Дисней", + "Дисон", + "Диспутанта", + "Дисстон", + "Дистрикт", + "Дитерич", + "Дитрих", + "Диттлингер", + "Дит", + "Диффикулт", + "Дишман", + "Ди", + "Дло", + "Доббинс", + "Доббс", + "Добсон", + "Доваджиак", + "Довре", + "Догерти", + "Додд", + "Додж", + "Додсон", + "Доеран", + "Дозьер", + "Дойлайн", + "Дойл", + "Доктор", + "Док", + "Доланд", + "Долан", + "Долг", + "Доллар", + "Долливер", + "Долл", + "Доломит", + "Долорес", + "Долтон", + "Доместик", + "Домингес", + "Доминго", + "Доминион", + "Домино", + "Дом", + "Доналсон", + "Дональд", + "Доната", + "Донахью", + "Дона", + "Донгола", + "Донегал", + "Донифен", + "Дони", + "Доннана", + "Донна", + "Доннелли", + "Доннелл", + "Доннелс", + "Доннер", + "Донован", + "Донора", + "Доно", + "Дон", + "Дорадо", + "Дорал", + "Доран", + "Дора", + "Дорена", + "Доре", + "Дорис", + "Доркас", + "Дормонт", + "Дорнсайф", + "Дороти", + "Дорранс", + "Доррис", + "Дорсет", + "Дорси", + "Дортчес", + "Дору", + "Дорф", + "Дорчестер", + "Дос", + "Дотан", + "Доти", + "Дот", + "Доувер", + "Доуз", + "Доул", + "Доусон", + "Доуэлл", + "Доу", + "Дофин", + "Дравос", + "Драйв", + "Драйден", + "Драйноб", + "Драй", + "Драм", + "Драпер", + "Драфт", + "Дрезден", + "Дрейк", + "Дрейтон", + "Дрейф", + "Дрексел", + "Дресбак", + "Дрессер", + "Дриггс", + "Дриппинг", + "Дрип", + "Дрисколл", + "Дрифтон", + "Дро", + "Друид", + "Друри", + "Дуайт", + "Дуарте", + "Дубах", + "Дубберли", + "Дуббс", + "Дублин", + "Дугал", + "Дуглас", + "Дуке", + "Дулинг", + "Дулитл", + "Дулут", + "Дульсе", + "Дул", + "Дума", + "Думбар", + "Думс", + "Дунканнон", + "Дункан", + "Дункен", + "Дункер", + "Дункинс", + "Дун", + "Дуранго", + "Дурбин", + "Дуриея", + "Дусетт", + "Дусман", + "Дусон", + "Дуф", + "Дьюар", + "Дьюи", + "Дьюк", + "Дью", + "Дэвисон", + "Дэвис", + "Дэви", + "Дэггет", + "Дэймон", + "Дэй", + "Дэнбери", + "Дэнбридж", + "Дэнверс", + "Дэниелс", + "Дэнфорт", + "Дэн", + "Дэт", + "Дюбуа", + "Дюваль", + "Дюкесн", + "Дюлак", + "Дюма", + "Дюмон", + "Дюне", + "Дюнкерк", + "Дюнс", + "Дюпон", + "Дюпо", + "Дюпре", + "Дюрант", + "Дюран", + "Дюшен", + "Ева", + "Евклид", + "Египет", + "Еззелл", + "Елена", + "Елисей", + "Ен", + "Жакет", + "Жанеретт", + "Жаннет", + "Жасмин", + "Жее", + "Женева", + "Женевьева", + "Жерве", + "Жермен", + "Жирардо", + "Жирар", + "Жозефина", + "Журден", + "Жюль", + "Завалла", + "Заг", + "Закари", + "Залески", + "Залма", + "Залч", + "Заль", + "Зама", + "Замбро", + "Зандт", + "Занс", + "Запата", + "Зап", + "Зара", + "Затруднение", + "Зафра", + "Зволле", + "Зебина", + "Зебулон", + "Зеландия", + "Зела", + "Зелиенопль", + "Земпл", + "Зена", + "Зенда", + "Зенит", + "Зеринг", + "Зефир", + "Зиглер", + "Зим", + "Зита", + "Зия", + "Зоар", + "Золфо", + "Зона", + "Зонтаг", + "Зумброта", + "Зуньи", + "Ибанез", + "Ибапа", + "Иберия", + "Ибер", + "Иван", + "Ива", + "Ивнинг", + "Иган", + "Игар", + "Игер", + "Иглу", + "Игл", + "Игнасио", + "Игнас", + "Игнатиус", + "Иго", + "Идавада", + "Идалия", + "Идальго", + "Идамэй", + "Идана", + "Иданья", + "Ида", + "Идеал", + "Идиль", + "Идмон", + "Идрия", + "Идс", + "Идэр", + "Иерихон", + "Иерусалим", + "Изабелла", + "Изабель", + "Изагора", + "Излер", + "Изола", + "Икард", + "Иква", + "Икес", + "Иконию", + "Иксония", + "Ик", + "Илария", + "Ила", + "Илвако", + "Илен", + "Илиада", + "Илион", + "Илифф", + "Иллинойс", + "Иллиополис", + "Ильмо", + "Ильм", + "Ильфельд", + "Иль", + "Имбери", + "Имблер", + "Имбоден", + "Имбс", + "Имлей", + "Иммокали", + "Имогена", + "Импакт", + "Империал", + "Инадэйл", + "Ина", + "Инвернесс", + "Инвуд", + "Ингаллс", + "Ингерсолл", + "Инглис", + "Инглиш", + "Ингл", + "Ингомар", + "Ингот", + "Инграм", + "Ингрэм", + "Ингуадона", + "Инда", + "Индекс", + "Индепенденс", + "Индиалантик", + "Индианаполис", + "Индиана", + "Индианола", + "Индиан", + "Индиахома", + "Индио", + "Индия", + "Индрио", + "Индустрия", + "Инез", + "Инес", + "Инком", + "Инкстер", + "Инланд", + "Инлет", + "Инман", + "Иннисволд", + "Иннис", + "Иннс", + "Инн", + "Инокерн", + "Инок", + "Инола", + "Институт", + "Интайр", + "Интейк", + "Интерлакен", + "Интерсешен", + "Интерьер", + "Интер", + "Интош", + "Интра", + "Инхенио", + "Инчелиум", + "Иола", + "Иона", + "Иония", + "Ипава", + "Ипсвич", + "Ипсиланти", + "Иран", + "Ирби", + "Ирвинг", + "Ирвин", + "Ирвона", + "Иределл", + "Ирека", + "Ирена", + "Ирландия", + "Ирма", + "Ирмо", + "Ирод", + "Ирокез", + "Ирония", + "Ирригон", + "Исабела", + "Исанти", + "Исбелл", + "Иселин", + "Исидро", + "Исклоски", + "Исламорада", + "Исландия", + "Исла", + "Ислинг", + "Ислип", + "Исли", + "Исмей", + "Истамп", + "Истам", + "Истанолли", + "Истачатта", + "Истборо", + "Истгейт", + "Истерли", + "Истлон", + "Истман", + "Истовер", + "Истон", + "Истпойнт", + "Истчестер", + "Ист", + "Итака", + "Италия", + "Итон", + "Итта", + "Иуда", + "Иудея", + "Иука", + "Ишпеминг", + "И", + "Йегер", + "Йеддо", + "Йелвинг", + "Йеллвиль", + "Йеллоу", + "Йелм", + "Йель", + "Йемасси", + "Йена", + "Йеоман", + "Йеринг", + "Йеркс", + "Йетс", + "Йеттер", + "Йеуэд", + "Йидон", + "Йодер", + "Йокум", + "Йоло", + "Йоман", + "Йонкалла", + "Йонкерс", + "Йорба", + "Йоркана", + "Йорклин", + "Йоркшир", + "Йорк", + "Йосементо", + "Йосемити", + "Йота", + "Йоу", + "Йоханнес", + "Каава", + "Каанапали", + "Кабалло", + "Кабан", + "Кабезас", + "Кабель", + "Кабери", + "Кабе", + "Кабина", + "Каборн", + "Кабот", + "Кабо", + "Кабул", + "Кавайлоа", + "Кавайха", + "Кавалеро", + "Кавалер", + "Кавур", + "Каган", + "Кагуас", + "Кадджо", + "Каддоя", + "Каддо", + "Каджах", + "Каджон", + "Кадиз", + "Кадиллак", + "Кадли", + "Кадоган", + "Кадотт", + "Кадуэлл", + "Кадьяк", + "Каей", + "Каелеку", + "Каза", + "Казеновия", + "Казиглак", + "Каиахога", + "Кайбаб", + "Кайбито", + "Кайента", + "Кайкотсмови", + "Кайл", + "Кайнд", + "Кайнс", + "Кайова", + "Кайро", + "Кайт", + "Кайюна", + "Какао", + "Какапон", + "Какли", + "Кактовик", + "Кактус", + "Какэ", + "Калабасас", + "Калабаш", + "Калаво", + "Калалок", + "Калама", + "Каламин", + "Каламус", + "Калаоа", + "Калапана", + "Калахео", + "Калберсон", + "Калбертсон", + "Калвари", + "Калва", + "Калверт", + "Калвер", + "Калдесак", + "Калева", + "Каледония", + "Калексико", + "Калера", + "Кале", + "Калида", + "Калиенте", + "Калико", + "Калимеса", + "Калио", + "Калипсо", + "Калиспелл", + "Калиста", + "Калистога", + "Калифон", + "Калифорния", + "Калифорнски", + "Калихиваи", + "Калкаска", + "Калкасье", + "Калландс", + "Каллауэй", + "Каллахан", + "Каллендер", + "Калленс", + "Каллен", + "Каллеока", + "Каллери", + "Калликун", + "Каллимонт", + "Каллисон", + "Каллис", + "Каллихам", + "Каллодене", + "Каллом", + "Каллоухе", + "Каллум", + "Калмер", + "Калм", + "Калона", + "Калотус", + "Калпелла", + "Калпепер", + "Калпет", + "Калпин", + "Калп", + "Калскаг", + "Калтаг", + "Калумет", + "Калхан", + "Калхун", + "Кальва", + "Кальвеста", + "Кальвин", + "Калькутта", + "Кальмар", + "Кальций", + "Кальюаха", + "Кальяо", + "Камак", + "Камало", + "Каманче", + "Камарго", + "Камарилло", + "Камас", + "Камби", + "Камбриан", + "Камбридж", + "Камбрия", + "Камден", + "Камела", + "Камелот", + "Камергер", + "Камея", + "Камилла", + "Камино", + "Камия", + "Ками", + "Каммак", + "Каммал", + "Камминг", + "Каммон", + "Кампанилла", + "Кампания", + "Кампион", + "Кампия", + "Кампобелло", + "Кампо", + "Камптон", + "Кампус", + "Камрар", + "Камуи", + "Канаб", + "Канаверал", + "Канада", + "Канаденсис", + "Канаджохари", + "Канадиан", + "Канадис", + "Каналоу", + "Канал", + "Канандаигуа", + "Канаранзи", + "Канасерага", + "Канаскат", + "Канастота", + "Канас", + "Канат", + "Канаха", + "Кангли", + "Кандал", + "Канделария", + "Канделеро", + "Канджилон", + "Кандийохай", + "Кандифф", + "Кандор", + "Кандо", + "Канзас", + "Канистео", + "Канистота", + "Кани", + "Канкаки", + "Канктон", + "Канмер", + "Каннаполис", + "Каннел", + "Каннингем", + "Каннинг", + "Каннон", + "Канованас", + "Канова", + "Канонес", + "Канонсито", + "Канон", + "Канополис", + "Канорадо", + "Канош", + "Кано", + "Кантил", + "Кантонмент", + "Кантон", + "Кантрил", + "Кантри", + "Канутилло", + "Каньон", + "Кан", + "Каолин", + "Капаау", + "Капаа", + "Капак", + "Капалуа", + "Капа", + "Капистрано", + "Капитанехо", + "Капитан", + "Капитоль", + "Каплан", + "Каплингер", + "Каплис", + "Капл", + "Капон", + "Капоусин", + "Капо", + "Каппа", + "Каппс", + "Капрон", + "Каптива", + "Каптина", + "Каптин", + "Капута", + "Каравай", + "Каратунк", + "Карбонадо", + "Карбон", + "Карвал", + "Карвер", + "Каргрэй", + "Кардвелл", + "Карденас", + "Карден", + "Кардифф", + "Кардочесальный", + "Каренкро", + "Карибу", + "Карлайл", + "Карлин", + "Карлисс", + "Карлия", + "Карлок", + "Карлос", + "Карлсбад", + "Карлсруэ", + "Карлстад", + "Карлук", + "Карлштадт", + "Карль", + "Карл", + "Кармайкл", + "Кармель", + "Кармен", + "Кармин", + "Карми", + "Кармоди", + "Карнак", + "Карнарвон", + "Карнеги", + "Карнейшен", + "Карнеро", + "Карни", + "Карно", + "Карнс", + "Карн", + "Каролина", + "Каронделет", + "Каро", + "Карпентер", + "Карпинтерия", + "Карпио", + "Карп", + "Каррабассетт", + "Каррабель", + "Каррборо", + "Карризалес", + "Карризозо", + "Карризо", + "Карри", + "Карротерс", + "Карр", + "Карсинс", + "Карсон", + "Картаго", + "Картаус", + "Карта", + "Картере", + "Картер", + "Картис", + "Карти", + "Картрайт", + "Карутерс", + "Карфаген", + "Кар", + "Касаан", + "Касар", + "Каса", + "Касел", + "Касита", + "Каскадия", + "Каскад", + "Каскаския", + "Каскилл", + "Каско", + "Касл", + "Касновия", + "Касота", + "Каспар", + "Каспер", + "Каспиана", + "Каспий", + "Кассадага", + "Кассандра", + "Кассат", + "Касса", + "Кассельман", + "Кассель", + "Касско", + "Кассодей", + "Кассон", + "Кассополис", + "Касс", + "Касталиан", + "Касталия", + "Кастана", + "Кастанеда", + "Кастани", + "Кастатан", + "Кастелла", + "Кастер", + "Кастиль", + "Кастин", + "Кастолон", + "Кастор", + "Кастро", + "Катай", + "Каталина", + "Каталла", + "Катано", + "Катан", + "Катаракта", + "Катарина", + "Катасоква", + "Катаула", + "Катахоула", + "Катберт", + "Катедрал", + "Катлер", + "Катоба", + "Катоисса", + "Катона", + "Като", + "Катрин", + "Катрон", + "Катсби", + "Каттава", + "Каттарогас", + "Каттен", + "Каттер", + "Катуса", + "Катчен", + "Кат", + "Кауа", + "Кауден", + "Каудри", + "Кауиа", + "Каумакани", + "Каумалапау", + "Каунсил", + "Каунс", + "Каунтз", + "Каунти", + "Каупо", + "Каутрон", + "Каутс", + "Кауфман", + "Кауэла", + "Кау", + "Кафран", + "Каффер", + "Каффи", + "Кахаба", + "Кахакулоа", + "Кахалуу", + "Кахока", + "Кахокия", + "Кахон", + "Кахо", + "Кахуку", + "Кахулуи", + "Качемак", + "Кашегелок", + "Кашел", + "Кашемир", + "Каширс", + "Кашмен", + "Каюга", + "Каюкос", + "Каюко", + "Каюс", + "Каямунг", + "Квайетус", + "Квакер", + "Квана", + "Квантико", + "Квапо", + "Кваскетон", + "Квебек", + "Квейл", + "Квентин", + "Квеста", + "Кветлак", + "Квивайра", + "Квиверо", + "Квигиллингок", + "Квиджотоа", + "Квик", + "Квилин", + "Квимби", + "Квинби", + "Квинебааг", + "Квинмо", + "Квинолт", + "Квинтер", + "Квинтет", + "Квинхагак", + "Квин", + "Квитак", + "Квитман", + "Квичак", + "Квог", + "Квойн", + "Кебрадильяс", + "Кевил", + "Кевин", + "Кевани", + "Кеванна", + "Кеваскум", + "Кева", + "Кевино", + "Кедди", + "Кедрон", + "Кезар", + "Кейапаха", + "Кейви", + "Кейв", + "Кейд", + "Кейзер", + "Кейлор", + "Кейл", + "Кейни", + "Кейн", + "Кейпорт", + "Кейп", + "Кейсилоф", + "Кейси", + "Кейсон", + "Кейс", + "Кейтес", + "Кейтмси", + "Кекаха", + "Кекоски", + "Келер", + "Келлер", + "Келлис", + "Келлихер", + "Келли", + "Келлог", + "Келл", + "Келси", + "Келсо", + "Келсэй", + "Келтис", + "Келтон", + "Кельвин", + "Кельнер", + "Кель", + "Кемадо", + "Кема", + "Кемблс", + "Кеммерер", + "Кемпнер", + "Кемпстер", + "Кемп", + "Кенай", + "Кенанс", + "Кенвил", + "Кендалл", + "Кендл", + "Кендрик", + "Кенеди", + "Кенель", + "Кенесо", + "Кенефик", + "Кензи", + "Кенли", + "Кенмар", + "Кенмор", + "Кеннан", + "Кеннард", + "Кенна", + "Кеннебанк", + "Кеннебек", + "Кенневик", + "Кеннеди", + "Кеннер", + "Кеннесоу", + "Кеннет", + "Кенне", + "Кенни", + "Кенова", + "Кеноша", + "Кено", + "Кенсал", + "Кенсетт", + "Кенсинг", + "Кентон", + "Кент", + "Кенхорст", + "Кеньон", + "Кен", + "Кеоки", + "Кеокук", + "Кеома", + "Кеосоква", + "Кеота", + "Кео", + "Керби", + "Керенс", + "Керлью", + "Кермит", + "Кернерс", + "Керни", + "Кернс", + "Керн", + "Керрик", + "Керритак", + "Керр", + "Керси", + "Кертейн", + "Кертис", + "Керт", + "Керуэнс", + "Керховен", + "Керхонк", + "Кершоу", + "Кесли", + "Кесуик", + "Кетлман", + "Кеттеринг", + "Кеттлерс", + "Кеттл", + "Кетчикан", + "Кетчум", + "Кеука", + "Кечи", + "Кешена", + "Киава", + "Киана", + "Киас", + "Киббен", + "Кибла", + "Кибурц", + "Кивакапу", + "Кивалик", + "Кивалина", + "Киватин", + "Киви", + "Киго", + "Киддер", + "Кидис", + "Киз", + "Кикинг", + "Килайн", + "Килауэа", + "Кила", + "Килбурн", + "Килгор", + "Килдир", + "Килдэр", + "Килейккуа", + "Килер", + "Килин", + "Килия", + "Килкенни", + "Килкэр", + "Киллбук", + "Киллдафф", + "Киллдир", + "Киллен", + "Киллиан", + "Килмайкл", + "Килмарнок", + "Килн", + "Киль", + "Кимбалл", + "Кимберлинг", + "Кимберли", + "Кимбер", + "Кимбол", + "Кимброу", + "Кимминс", + "Кимпер", + "Кимс", + "Ким", + "Кинан", + "Кинард", + "Кинбрей", + "Кингдом", + "Кингман", + "Кингсли", + "Кингс", + "Кингфишер", + "Кинг", + "Киндерлоу", + "Киндерхук", + "Киндер", + "Киндред", + "Кинер", + "Кинзуа", + "Кини", + "Кинкейд", + "Кинли", + "Кинмунди", + "Киннелон", + "Киннер", + "Кинни", + "Киннон", + "Кинросс", + "Кинси", + "Кинсли", + "Кинстон", + "Кинсэйл", + "Кинс", + "Кинтайр", + "Кинтана", + "Кинта", + "Кинтер", + "Кин", + "Киоау", + "Кипарис", + "Кипаулью", + "Киплинг", + "Кипнук", + "Кипп", + "Киптон", + "Кирби", + "Кирвин", + "Кирвин", + "Киркер", + "Кирклин", + "Киркман", + "Киркси", + "Киркс", + "Кирк", + "Кирли", + "Кирни", + "Кирон", + "Кирт", + "Кирьяс", + "Кир", + "Кисатчи", + "Киско", + "Киссимми", + "Кистер", + "Кистлер", + "Кис", + "Киталоу", + "Китинг", + "Кито", + "Китсап", + "Китс", + "Киттаннинг", + "Киттери", + "Киттитас", + "Китти", + "Киттредж", + "Киттрелл", + "Киттрик", + "Кит", + "Кифер", + "Кифтон", + "Киф", + "Кихей", + "Кицмиллер", + "Кичи", + "Ки", + "Клаверек", + "Клайв", + "Клайд", + "Клаймер", + "Клайн", + "Клайо", + "Клайэтт", + "Клаллам", + "Кламат", + "Клам", + "Клара", + "Кларенс", + "Кларидон", + "Кларинда", + "Кларион", + "Кларисса", + "Кларита", + "Клари", + "Кларкона", + "Кларкранж", + "Кларкридж", + "Кларксон", + "Кларкс", + "Кларк", + "Класки", + "Кластер", + "Клатония", + "Клатьер", + "Клауд", + "Клауен", + "Клаус", + "Клевер", + "Клевис", + "Клегхорн", + "Клед", + "Клейборн", + "Клейв", + "Клейкомо", + "Клейн", + "Клейпул", + "Клейтон", + "Клей", + "Клеллан", + "Клел", + "Клеменс", + "Клементон", + "Клемент", + "Клеммонс", + "Клемм", + "Клемонс", + "Клемсон", + "Клем", + "Кленденин", + "Клеона", + "Клео", + "Клермон", + "Клер", + "Клета", + "Кле", + "Клиберн", + "Клив", + "Кликитат", + "Клико", + "Климакс", + "Климан", + "Климбинг", + "Клинтон", + "Клинт", + "Клинчко", + "Клинч", + "Клио", + "Клири", + "Клирко", + "Клир", + "Клитералл", + "Клитон", + "Клифти", + "Клифф", + "Клиф", + "Кловерли", + "Кловер", + "Кловис", + "Клокей", + "Клондайк", + "Клонтарф", + "Клонч", + "Клоок", + "Клоптон", + "Клосснер", + "Клоусон", + "Клоу", + "Клуб", + "Клукван", + "Клэкстон", + "Клэнси", + "Клэнтон", + "Клэретт", + "Клэрндон", + "Клэр", + "Клэтскани", + "Клюр", + "Кнаппа", + "Кнауэр", + "Кнолль", + "Коамо", + "Коахома", + "Кобальт", + "Кобб", + "Кобден", + "Коберн", + "Кобл", + "Кобри", + "Кобук", + "Ковада", + "Ковело", + "Ковенант", + "Ковентри", + "Коверт", + "Ковер", + "Ковина", + "Ковинг", + "Ковард", + "Коварт", + "Когар", + "Коггиунг", + "Коггон", + "Когделл", + "Когсвелл", + "Коделл", + "Коди", + "Кодман", + "Коер", + "Кожа", + "Козад", + "Кози", + "Коин", + "Койек", + "Койла", + "Койл", + "Койот", + "Койукак", + "Кой", + "Кокадхо", + "Кокато", + "Кокиль", + "Кокис", + "Коки", + "Кокодри", + "Коколалла", + "Кокомо", + "Коконат", + "Коконино", + "Кокос", + "Кокрайнс", + "Кокрам", + "Кокран", + "Кокрейн", + "Кокрелл", + "Коксаки", + "Кокс", + "Кок", + "Колберн", + "Колби", + "Колб", + "Колвер", + "Колвин", + "Колвос", + "Колден", + "Колдуэлл", + "Колд", + "Колер", + "Колета", + "Колея", + "Колиганек", + "Колинг", + "Колин", + "Коли", + "Колкитт", + "Колкорд", + "Колкс", + "Коллайер", + "Коллбран", + "Колледж", + "Коллеттс", + "Коллинг", + "Коллин", + "Коллисон", + "Коллис", + "Колли", + "Колл", + "Колман", + "Колма", + "Колмес", + "Колмор", + "Колоа", + "Колола", + "Колома", + "Коломбина", + "Колона", + "Колониаль", + "Колония", + "Колони", + "Колонь", + "Колон", + "Колорадо", + "Колп", + "Колрейн", + "Колсон", + "Колстрип", + "Колтон", + "Колумбиана", + "Колумбия", + "Колумбус", + "Колуэлл", + "Колфакс", + "Колчестер", + "Кольберт", + "Кольер", + "Кольмар", + "Кольридж", + "Кольт", + "Кольюза", + "Коль", + "Кол", + "Комал", + "Командор", + "Команчи", + "Коматк", + "Комбайн", + "Комбес", + "Комби", + "Комб", + "Комелик", + "Комерио", + "Комер", + "Коммак", + "Коммерция", + "Коммершиал", + "Коммонуэлт", + "Коммон", + "Коммьюнити", + "Комобаби", + "Комо", + "Компас", + "Компетишн", + "Комптон", + "Комптче", + "Комсток", + "Комунас", + "Комфорт", + "Комфри", + "Конава", + "Конасога", + "Коната", + "Конвей", + "Конвент", + "Конверс", + "Конвой", + "Конгари", + "Конгер", + "Конгресс", + "Конгрюити", + "Конда", + "Конджиганак", + "Кондит", + "Конди", + "Кондон", + "Конингхем", + "Кони", + "Конкан", + "Конклин", + "Конконулли", + "Конкордия", + "Конкорд", + "Конкоу", + "Конкрет", + "Конли", + "Коннарок", + "Коннелли", + "Коннелл", + "Коннел", + "Коннер", + "Конниут", + "Коннор", + "Коновер", + "Конрад", + "Конрат", + "Конрой", + "Конро", + "Консеквенсес", + "Консепсьон", + "Консешен", + "Константин", + "Констебль", + "Контакт", + "Континенталь", + "Конто", + "Контрерас", + "Контукук", + "Конус", + "Конфлуенс", + "Конхатта", + "Концепция", + "Кончас", + "Кончо", + "Коншохокен", + "Коньехо", + "Кооператив", + "Копалис", + "Копан", + "Копемиш", + "Копиаг", + "Коплей", + "Копли", + "Коппелл", + "Коппел", + "Копперл", + "Копперс", + "Коппер", + "Коппитт", + "Коппок", + "Коралл", + "Корам", + "Кораополис", + "Корасон", + "Кора", + "Корбел", + "Корбетт", + "Корбет", + "Корбин", + "Корваллис", + "Корвин", + "Корвит", + "Корделл", + "Кордель", + "Кордер", + "Кордова", + "Кордс", + "Корд", + "Коридон", + "Коринна", + "Коринф", + "Кори", + "Корковадо", + "Коркоран", + "Кормик", + "Корморант", + "Корнелий", + "Корнелия", + "Корнелл", + "Корнер", + "Корнеттс", + "Корнинг", + "Корниш", + "Корнли", + "Корнудас", + "Корнукопия", + "Корнуолл", + "Корнуэлл", + "Корн", + "Корозал", + "Королла", + "Коронадо", + "Корона", + "Корпус", + "Корралитос", + "Коррал", + "Коррекция", + "Коррео", + "Корриган", + "Корри", + "Корсика", + "Корси", + "Корс", + "Кортада", + "Кортаро", + "Кортес", + "Корте", + "Кортланд", + "Кортни", + "Корт", + "Корум", + "Корунья", + "Корфу", + "Кор", + "Косби", + "Косгрейв", + "Косзта", + "Космополис", + "Космос", + "Коссе", + "Коста", + "Костилла", + "Кость", + "Кост", + "Косциаско", + "Котати", + "Котес", + "Котлик", + "Котопакси", + "Кото", + "Коттедж", + "Коттер", + "Коттл", + "Котуит", + "Котулла", + "Кот", + "Коув", + "Коудерс", + "Коуд", + "Коуета", + "Коукер", + "Коулза", + "Коулик", + "Коулинг", + "Коули", + "Коултер", + "Коул", + "Коупенс", + "Коуп", + "Коутс", + "Коуч", + "Коуэлл", + "Коуэн", + "Коу", + "Кофе", + "Кофилд", + "Кофман", + "Коффин", + "Коффи", + "Кохаген", + "Коханок", + "Кохассет", + "Кохоктон", + "Кохо", + "Кохутта", + "Коцебу", + "Кочайчуат", + "Кочелла", + "Кочиз", + "Кочити", + "Кошкононг", + "Кошок", + "Кошут", + "Ко", + "Крабтри", + "Крабэппл", + "Краб", + "Крагнс", + "Краг", + "Крайслер", + "Кракен", + "Краков", + "Крамер", + "Крамп", + "Крандалл", + "Кранелл", + "Краннелл", + "Кранфиллс", + "Кранц", + "Кран", + "Крари", + "Кратч", + "Краудер", + "Крафтон", + "Кребс", + "Креди", + "Крейг", + "Крейн", + "Крейтон", + "Крекер", + "Кремер", + "Кремль", + "Креммлинг", + "Крем", + "Креншоу", + "Креола", + "Креол", + "Кресап", + "Кресбард", + "Кресент", + "Креско", + "Кресскилл", + "Крессона", + "Крессон", + "Кресс", + "Крестед", + "Крестлина", + "Крестон", + "Крест", + "Кресуэлл", + "Кривиц", + "Крив", + "Кридер", + "Кридмур", + "Крикет", + "Крик", + "Крилс", + "Крил", + "Кримора", + "Кринер", + "Криппл", + "Крисман", + "Кристалл", + "Кристиана", + "Кристиан", + "Кристина", + "Кристин", + "Кристи", + "Кристмас", + "Кристобаль", + "Кристоваль", + "Кристола", + "Кристофер", + "Крис", + "Крит", + "Кроган", + "Крозе", + "Кройдон", + "Крокер", + "Крокетт", + "Кромби", + "Кромвель", + "Кронборг", + "Кронен", + "Кроппер", + "Кропси", + "Крори", + "Кросби", + "Кросвелл", + "Кроссвик", + "Кроссетт", + "Кроссинг", + "Кросснор", + "Кроссрод", + "Кросс", + "Кротерс", + "Кротон", + "Кроун", + "Кроуч", + "Кроуэл", + "Кроу", + "Крофтона", + "Крофт", + "Кроц", + "Круа", + "Кругер", + "Крузо", + "Крукед", + "Крукс", + "Крум", + "Крупп", + "Крусеро", + "Крусес", + "Крус", + "Крэнстон", + "Крюгер", + "Крю", + "Ксавьер", + "Ксения", + "Куамба", + "Куба", + "Куберо", + "Куб", + "Кугуар", + "Кудаи", + "Куебрада", + "Куерво", + "Куеро", + "Куззарт", + "Кузик", + "Куинлан", + "Куиннесек", + "Куинн", + "Куинси", + "Куинтон", + "Куйлер", + "Кукамонга", + "Куки", + "Кук", + "Кулебра", + "Кулидж", + "Кулин", + "Кулпмонт", + "Кулпсвиль", + "Кульман", + "Кул", + "Куммер", + "Куна", + "Кункл", + "Кунц", + "Кунья", + "Кун", + "Куорри", + "Куортерс", + "Купертино", + "Купер", + "Купе", + "Купорос", + "Купреянов", + "Купрум", + "Куп", + "Куртина", + "Куртис", + "Кур", + "Кусада", + "Куса", + "Куския", + "Куско", + "Кусохатчи", + "Куссета", + "Куссон", + "Кустар", + "Кус", + "Кутенэй", + "Кутер", + "Куц", + "Кучара", + "Кушарем", + "Кушинг", + "Куэва-", + "Куэй", + "Кьюн", + "Кэди", + "Кэй", + "Кэмерон", + "Кэмпбелл", + "Кэмп", + "Кэнби", + "Кэндлер", + "Кэндл", + "Кэнтуэлл", + "Кэпитола", + "Кэпрок", + "Кэп", + "Кэрил", + "Кэри", + "Кэролин", + "Кэрол", + "Кэрриер", + "Кэрринг", + "Кэрри", + "Кэрролл", + "Кэрфри", + "Кэсвелл", + "Кэтис", + "Кэти", + "Кэткарт", + "Кэтлин", + "Кэтонс", + "Кэтрин", + "Кэтскилл", + "Кэшен", + "Кэш", + "Кюртен", + "Квини", + "Куади", + "Куили", + "Лаагер", + "Лабади", + "Лаборатория", + "Лабушер", + "Лавай", + "Лавака", + "Лавалетта", + "Лавалет", + "Лава", + "Лавджой", + "Лаверна", + "Лавина", + "Лавинг", + "Лавиния", + "Лавлок", + "Лавония", + "Лавон", + "Лавс", + "Лавуэлл", + "Лав", + "Лагофф", + "Лаго", + "Лагранж", + "Лагро", + "Лагуна", + "Лагунитас", + "Лагун", + "Ладден", + "Ладдония", + "Ладелль", + "Ладен", + "Ладера", + "Ладжас", + "Ладлам", + "Ладлоу", + "Ладнер", + "Ладога", + "Ладония", + "Ладора", + "Ладсон", + "Ладю", + "Лазар", + "Лазир", + "Лаингс", + "Лаин", + "Лайай", + "Лайв", + "Лайерли", + "Лайзтон", + "Лайл", + "Лайма", + "Лаймстон", + "Лайм", + "Лайнит", + "Лайн", + "Лайтнинг", + "Лайтхаус", + "Лайт", + "Лайф", + "Лай", + "Лакаванна", + "Лакей", + "Лакин", + "Лаки", + "Лаклид", + "Лакманс", + "Лакомб", + "Лакона", + "Лакония", + "Лакон", + "Лакота", + "Лаксон", + "Лаксор", + "Лакучи", + "Лак", + "Ламартин", + "Ламар", + "Ламаско", + "Ламберт", + "Ламбер", + "Ламбоглия", + "Ламбрук", + "Ламбс", + "Ламеса", + "Ламин", + "Ламисон", + "Лами", + "Ламкин", + "Ламоайн", + "Ламоиль", + "Ламона", + "Ламоний", + "Ламонт", + "Лампасас", + "Лампкин", + "Ламур", + "Лам", + "Ланаган", + "Ланай", + "Ланарк", + "Ланар", + "Лангворти", + "Лангес", + "Ланглейд", + "Ланглуа", + "Ланг", + "Ландаски", + "Ланда", + "Ланделл", + "Ландер", + "Ландинг", + "Ланди", + "Ландовер", + "Ландо", + "Ландри", + "Ландрум", + "Ландфолл", + "Ланд", + "Ланес", + "Ланетт", + "Лани", + "Ланкастер", + "Ланкин", + "Ланнон", + "Лансдаун", + "Лансе", + "Лансинг", + "Ланси", + "Ланс", + "Лантана", + "Лантон", + "Лантри", + "Ланьон", + "Лаона", + "Лаотто", + "Лапвай", + "Лапел", + "Лапир", + "Лаплас", + "Лапойнт", + "Лапорт", + "Ларами", + "Ларвилл", + "Ларго", + "Лардо", + "Ларедо", + "Ларес", + "Лариат", + "Лаример", + "Ларимор", + "Ларкспур", + "Ларк", + "Ларнед", + "Лароз", + "Ларраби", + "Ларсен", + "Ларслан", + "Ларсмонт", + "Ларсон", + "Ларто", + "Лару", + "Ларч", + "Ласара", + "Ласкер", + "Ласк", + "Ласт", + "Лас", + "Латам", + "Лата", + "Латексо", + "Латимер", + "Латония", + "Латон", + "Латрап", + "Латроп", + "Латроуб", + "Латта", + "Латтимор", + "Латтинг", + "Латти", + "Латтрелл", + "Латчер", + "Лауд", + "Лаундес", + "Лаура", + "Лаут", + "Лафайетт", + "Лафит", + "Лафлин", + "Лафонтен", + "Лафорч", + "Лафферти", + "Лахайна", + "Лахитас", + "Лашин", + "Леандер", + "Леандро", + "Леанна", + "Леапп", + "Лебек", + "Лебо", + "Леван", + "Леваси", + "Левелок", + "Левел", + "Леверинг", + "Левит", + "Леггетт", + "Ледбеттер", + "Леджер", + "Ледж", + "Ледисмит", + "Леду", + "Ледьярд", + "Лед", + "Лейден", + "Лейжер", + "Лейзи", + "Лейкадия", + "Лейкин", + "Лейк", + "Лейман", + "Лейм", + "Лейн", + "Лейперс", + "Лейпсик", + "Лейпциг", + "Лейси", + "Лейструп", + "Лейтер", + "Лейтон", + "Лейтч", + "Лейт", + "Лейф", + "Леканто", + "Лекомптон", + "Лекомпт", + "Лекса", + "Лексинг", + "Лекси", + "Леланд", + "Лела", + "Лелия", + "Лели", + "Леман", + "Лемей", + "Лемета", + "Леминг", + "Лемитар", + "Леммон", + "Лемойн", + "Лемонт", + "Лемон", + "Леморес", + "Лемур", + "Лемхи", + "Ленапа", + "Ленап", + "Лена", + "Ленгби", + "Ленд", + "Ленекса", + "Леннеп", + "Леннокс", + "Леннон", + "Ленокс", + "Ленола", + "Ленора", + "Ленор", + "Ленуар", + "Ленхартс", + "Ленхем", + "Ленц", + "Лен", + "Леод", + "Леола", + "Леома", + "Леоминстер", + "Леонардо", + "Леонард", + "Леона", + "Леонидас", + "Леония", + "Леонора", + "Леон", + "Леопольд", + "Леоти", + "Лео", + "Лепанто", + "Лерна", + "Лернер", + "Лерой", + "Лер", + "Лесли", + "Лессли", + "Лестер", + "Летарт", + "Летохатчи", + "Леттс", + "Летчер", + "Леуэллен", + "Лефлор", + "Лефор", + "Лешара", + "Ле", + "Либби", + "Либенталь", + "Либерал", + "Либерти", + "Либорио", + "Либори", + "Либрари", + "Либус", + "Ливан", + "Ливенгуд", + "Ливен", + "Ливермор", + "Ливерпуль", + "Ливингс", + "Ливона", + "Ливония", + "Ливуд", + "Лига", + "Лигерта", + "Лигнум", + "Лигонье", + "Лигон", + "Лидгер", + "Лиддер", + "Лидди", + "Лидер", + "Лидик", + "Лидия", + "Лиди", + "Лидор", + "Лидо", + "Лидпойнт", + "Лидс", + "Лид", + "Лизелла", + "Лиземорс", + "Ликан", + "Ликенс", + "Ликес", + "Ликинг", + "Лики", + "Ликли", + "Ликок", + "Лик", + "Лилберт", + "Лилборн", + "Лилиан", + "Лилимур", + "Лилита", + "Лили", + "Лилливаап", + "Лиллинг", + "Лилли", + "Лилль", + "Лилс", + "Лил", + "Лиман", + "Лима", + "Лимб", + "Лимерик", + "Лиминг", + "Лимон", + "Лим", + "Линби", + "Линвиль", + "Линвуд", + "Линганор", + "Лингл", + "Линда", + "Линдгрен", + "Линдейл", + "Линделл", + "Линден", + "Линди", + "Линдков", + "Линдли", + "Линдон", + "Линдора", + "Линдсборг", + "Линдсей", + "Линдси", + "Линдстром", + "Линд", + "Линкольния", + "Линкольн", + "Линкорт", + "Линкрофт", + "Линкс", + "Линк", + "Линндил", + "Линнеус", + "Линн", + "Лино", + "Линс", + "Линтикум", + "Линтон", + "Линч", + "Лин", + "Лион", + "Липан", + "Липер", + "Липскомб", + "Лири", + "Лирнед", + "Лир", + "Лисабела", + "Лисит", + "Лискомб", + "Лиско", + "Лисман", + "Лисмор", + "Лиссабон", + "Лисси", + "Лист", + "Лис", + "Литер", + "Литиум", + "Литиц", + "Лития", + "Литл", + "Литония", + "Литон", + "Литополис", + "Литро", + "Литс", + "Литтиг", + "Литтл", + "Литтон", + "Литч", + "Лихай", + "Лихуэ", + "Лич", + "Ли", + "Ллойделл", + "Ллойд", + "Лоаг", + "Лоада", + "Лоа", + "Лобеко", + "Лобель", + "Лобо", + "Ловелл", + "Ловетт", + "Ловилия", + "Логанс", + "Логан", + "Логсден", + "Лог", + "Лода", + "Лодер", + "Лодж", + "Лоди", + "Лодога", + "Лод", + "Лоеб", + "Лоен", + "Лозо", + "Лоз", + "Лоиза", + "Лойал", + "Лойд", + "Лойола", + "Лойолл", + "Лойс", + "Локаст", + "Локбуи", + "Локейт", + "Локетт", + "Локинг", + "Локк", + "Локлуза", + "Локни", + "Локо", + "Локридж", + "Локсахатчи", + "Локса", + "Локсли", + "Локхарт", + "Лок", + "Лола", + "Лолета", + "Лолита", + "Лоли", + "Лоло", + "Ломакс", + "Ломан", + "Лома", + "Ломбард", + "Ломета", + "Ломира", + "Ломита", + "Ломонд", + "Ломпок", + "Лонаконинг", + "Лонгбот", + "Лонгмир", + "Лонгран", + "Лонг", + "Лонда", + "Лондон", + "Лондэн", + "Лонели", + "Лонок", + "Лоно", + "Лон", + "Лоогути", + "Лопахохо", + "Лопез", + "Лопено", + "Лорами", + "Лоранже", + "Лордиш", + "Лорд", + "Лорейн", + "Лорел", + "Лоренс", + "Лоренцо", + "Лоренц", + "Лорен", + "Лоретта", + "Лоретто", + "Лорида", + "Лоримор", + "Лоринг", + "Лорис", + "Лори", + "Лорман", + "Лоро", + "Лортон", + "Лор", + "Лосант", + "Лосония", + "Лостант", + "Лостин", + "Лост", + "Лос", + "Лотарингия", + "Лотарь", + "Лотелл", + "Лоти", + "Лотос", + "Лотроп", + "Лотси", + "Лотт", + "Лоугап", + "Лоуден", + "Лоудон", + "Лоулер", + "Лоуман", + "Лоумен", + "Лоунпайн", + "Лоун", + "Лоури", + "Лоусон", + "Лоус", + "Лоутон", + "Лоуэлл", + "Лоуэр", + "Лоу", + "Лофгрин", + "Лох", + "Лоц", + "Лочапока", + "Лочерн", + "Лочиел", + "Луалуалей", + "Луана", + "Лувейл", + "Луверн", + "Лувьер", + "Лугерт", + "Луделл", + "Лудинг", + "Лудоуиси", + "Луедерс", + "Лузерн", + "Луз", + "Луиза", + "Луизиана", + "Луин", + "Луис", + "Луйяндо", + "Лукама", + "Лукан", + "Лукас", + "Лукаут", + "Лукба", + "Лукильо", + "Лукинг", + "Лукка", + "Луксем", + "Луксора", + "Лук", + "Лула", + "Лулинг", + "Лулу", + "Лумис", + "Луна", + "Лунинг", + "Лун", + "Луп", + "Лура", + "Лурей", + "Луриг", + "Лусеро", + "Лутон", + "Лутсен", + "Лутц", + "Лучин", + "Луштон", + "Луэлла", + "Луэнн", + "Лу", + "Льоренс", + "Льюверас", + "Льюисетта", + "Льюис", + "Лью", + "Льянос", + "Льяно", + "Лэдд", + "Лэйн", + "Лэй", + "Лэминг", + "Лэмпсон", + "Лэнгли", + "Лэнгорн", + "Лэнгтри", + "Лэндис", + "Лэндон", + "Лэр", + "Любек", + "Люблин", + "Людвиг", + "Люкачукай", + "Люк", + "Люнен", + "Люптон", + "Люпус", + "Люртон", + "Люр", + "Люсиль", + "Люсинда", + "Люси", + "Люсьен", + "Люс", + "Лютер", + "Люти", + "Люцерна", + "Маалэа", + "Мабана", + "Мабанк", + "Мабелль", + "Мабен", + "Мабскотт", + "Мабтон", + "Маверик", + "Мавис", + "Магазин", + "Магалия", + "Магаско", + "Магас", + "Маггус", + "Магдалена", + "Маги", + "Магма", + "Магна", + "Магнит", + "Магнолия", + "Магомет", + "Магопак", + "Магун", + "Магуолт", + "Мадаваска", + "Мадден", + "Мадди", + "Маддок", + "Маделин", + "Маделия", + "Мадера", + "Мадженика", + "Маджестик", + "Мадилл", + "Мадонна", + "Мадрас", + "Мадре", + "Мадрид", + "Мад", + "Мазама", + "Мазепа", + "Мазер", + "Мази", + "Мазомани", + "Мазон", + "Маис", + "Майами", + "Майда", + "Майерс", + "Майер", + "Майетта", + "Майкка", + "Майкл", + "Майли", + "Майло", + "Майнер", + "Майнот", + "Майнрад", + "Майн", + "Майо", + "Майра", + "Майтон", + "Майт", + "Макавао", + "Макакило", + "Маканда", + "Макартур", + "Макаха", + "Маквахок", + "Маквокета", + "Маквон", + "Макдона", + "Макдоэл", + "Македония", + "Македон", + "Макиас", + "Макинен", + "Макино", + "Маки", + "Маккей", + "Маккензи", + "Макки", + "Макланд", + "Макленни", + "Маклес", + "Маковек", + "Макомб", + "Макон", + "Макопин", + "Макоти", + "Максбасс", + "Максвелл", + "Максвиль", + "Максвелтон", + "Максимо", + "Максис", + "Макси", + "Макстон", + "Макс", + "Макунги", + "Мак", + "Малабар", + "Малага", + "Малад", + "Малакофф", + "Малвадо", + "Малвейн", + "Малверн", + "Малга", + "Малдроу", + "Малдун", + "Малесус", + "Малжамар", + "Малибу", + "Малинта", + "Малин", + "Малкольм", + "Маллан", + "Маллард", + "Маллен", + "Маллет", + "Маллика", + "Малликен", + "Маллин", + "Маллори", + "Малой", + "Малотт", + "Мало", + "Малтби", + "Малхолл", + "Малшу", + "Мальборо", + "Малькольм", + "Мальмо", + "Мальта", + "Мал", + "Мамаронек", + "Маммот", + "Мамонт", + "Маму", + "Мам", + "Манава", + "Манакин", + "Манак", + "Маналапан", + "Мананна", + "Манасквен", + "Манасота", + "Манасса", + "Манати", + "Манахокин", + "Мана", + "Манвел", + "Мангам", + "Мангер", + "Мангония", + "Манго", + "Мандан", + "Мандари", + "Мандей", + "Манделей", + "Манден", + "Мандер", + "Манджор", + "Манд", + "Манес", + "Манзанита", + "Манила", + "Манилла", + "Манистик", + "Манисти", + "Манитовиш", + "Манитовок", + "Манитоу", + "Манито", + "Манифолд", + "Мани", + "Манкато", + "Манкинс", + "Манкос", + "Манлий", + "Манн", + "Манокотак", + "Маномен", + "Манор", + "Манро", + "Манселона", + "Манси", + "Мансон", + "Мансура", + "Манс", + "Мантадор", + "Мантено", + "Мантео", + "Мантер", + "Мантика", + "Манти", + "Мантолокинг", + "Мантон", + "Мантор", + "Мантуя", + "Мантчи", + "Манус", + "Мануэлито", + "Мануэль", + "Манхассет", + "Манхейм", + "Манхеттен", + "Манхол", + "Манчестер", + "Ман", + "Мараис", + "Марайдел", + "Марана", + "Марафон", + "Марбери", + "Марбл", + "Марвелл", + "Марвел", + "Марвин", + "Маргарет", + "Маргарита", + "Маргаритка", + "Маргит", + "Мардела", + "Марджи", + "Маренго", + "Марианна", + "Мариано", + "Мариба", + "Марибель", + "Мариенталь", + "Мариен", + "Мариетта", + "Марикао", + "Марикопа", + "Марина", + "Марингуин", + "Маринетт", + "Марино", + "Марин", + "Марион", + "Марипоса", + "Мария", + "Мари", + "Маркванд", + "Маркед", + "Маркез", + "Маркесан", + "Маркетт", + "Маркет", + "Марке", + "Марклейс", + "Марклес", + "Маркли", + "Маркл", + "Маркола", + "Марко", + "Маркус", + "Маркхэм", + "Марк", + "Марлетт", + "Марлин", + "Марли", + "Марлоу", + "Марлтон", + "Мармадук", + "Мармарт", + "Мармет", + "Марн", + "Мароа", + "Марокко", + "Марреллс", + "Марреро", + "Марриотт", + "Марри", + "Марроу", + "Марселин", + "Марселла", + "Марсель", + "Марсинг", + "Марсланд", + "Марстон", + "Марсьяль", + "Марс", + "Мартас", + "Марта", + "Мартелл", + "Мартель", + "Мартенс", + "Мартинес", + "Мартин", + "Марти", + "Марторель", + "Март", + "Маруэньо", + "Марфа", + "Марцеллус", + "Маршалл", + "Марш", + "Мар", + "Масардис", + "Масарик", + "Масео", + "Маскатин", + "Маскаута", + "Маскегон", + "Маскего", + "Маскелл", + "Маскл", + "Маскоги", + "Маскода", + "Маской", + "Маскота", + "Маскот", + "Масон", + "Массадона", + "Массак", + "Массанаттен", + "Массапеква", + "Массена", + "Массиллон", + "Масс", + "Мастер", + "Мастика", + "Масто", + "Матаван", + "Матагорда", + "Матадор", + "Матаморас", + "Матанаска", + "Матео", + "Матиас", + "Матильда", + "Матинекок", + "Матис", + "Матлака", + "Матока", + "Матомидай", + "Маттапекс", + "Маттесон", + "Маттес", + "Маттокс", + "Маттон", + "Маттун", + "Матуон", + "Маува", + "Маук", + "Маумель", + "Маунабо", + "Мауналоа", + "Мауна", + "Маунд", + "Мауни", + "Мауноили", + "Маунтин", + "Маунт", + "Маусер", + "Мауси", + "Маус", + "Маханой", + "Махариши", + "Махаска", + "Махаффи", + "Махтова", + "Махукона", + "Маченс", + "Мачесни", + "Машула", + "Маэйс", + "Маягуез", + "Мебан", + "Мегаргел", + "Меггетт", + "Меглер", + "Медалла", + "Меданалс", + "Меданос", + "Медари", + "Медарт", + "Медиаполис", + "Медикал", + "Медина", + "Медицина", + "Медия", + "Медли", + "Медон", + "Медора", + "Медоу", + "Медуэй", + "Медфра", + "Мед", + "Мееррин", + "Мезерви", + "Мейака", + "Мейбеери", + "Мейбл", + "Мейгс", + "Мейерс", + "Мейнард", + "Мейнерс", + "Мейнхард", + "Мейпл", + "Мейр", + "Мейси", + "Мейс", + "Меквонаго", + "Меквон", + "Мекилтео", + "Мекинок", + "Мекка", + "Меклинг", + "Мекорюк", + "Мекоста", + "Мексикана", + "Мексика", + "Мексия", + "Мелби", + "Мелверн", + "Мелвина", + "Мелвин", + "Мелдер", + "Мелдрум", + "Мелисса", + "Мелитота", + "Меллен", + "Меллетт", + "Мелле", + "Меллина", + "Меллотт", + "Мелмор", + "Мелодия", + "Мелроуз", + "Мелруд", + "Мелстранд", + "Мелчер", + "Мельба", + "Мельбета", + "Мельбурн", + "Мельфа", + "Мель", + "Мел", + "Мемфис", + "Менага", + "Менан", + "Менар", + "Менаша", + "Мена", + "Менделтна", + "Менденхолл", + "Мендоза", + "Мендон", + "Мендота", + "Мендоцино", + "Мендхэм", + "Менифи", + "Менло", + "Меномини", + "Меномони", + "Мено", + "Ментаста", + "Ментмор", + "Ментон", + "Ментор", + "Менфро", + "Менчал", + "Меппен", + "Мервин", + "Мердок", + "Мердо", + "Мередит", + "Мередосия", + "Меривезер", + "Меригольд", + "Мериден", + "Меридиан", + "Меридин", + "Мерино", + "Мерит", + "Меркель", + "Мерлин", + "Мерменто", + "Мерна", + "Меро", + "Мерриам", + "Меррикорт", + "Меррик", + "Мерриллан", + "Меррилл", + "Мерримак", + "Мерримен", + "Мерритт", + "Мерри", + "Мерседес", + "Мерсед", + "Мерсер", + "Мертенс", + "Мертзон", + "Мертон", + "Мерто", + "Мерфи", + "Мерфрис", + "Мерчант", + "Мерчисон", + "Мершон", + "Мер", + "Меса", + "Месик", + "Месита", + "Мескалеро", + "Мескит", + "Металайн", + "Метамора", + "Мета", + "Метейри", + "Метея", + "Меткальф", + "Метлакатла", + "Метолиус", + "Мето", + "Метрополис", + "Метр", + "Меттава", + "Меттер", + "Метучен", + "Метуэн", + "Механик", + "Мехико", + "Мецгер", + "Мец", + "Мешан", + "Мешоппен", + "Мигель", + "Мидас", + "Мидвейл", + "Мидвиль", + "Миддл", + "Мидланд", + "Мидлотиан", + "Миднайт", + "Мидо", + "Мидтаун", + "Мидфилд", + "Мид", + "Мизе", + "Мизпа", + "Мизула", + "Микадо", + "Мика", + "Микер", + "Мики", + "Миккало", + "Миккошеки", + "Микко", + "Микл", + "Микро", + "Миксерс", + "Микс", + "Милагроса", + "Милам", + "Милано", + "Милан", + "Мила", + "Милилани", + "Мили", + "Милладор", + "Миллан", + "Миллард", + "Миллборо", + "Миллдж", + "Миллен", + "Миллер", + "Миллетт", + "Миллиган", + "Милликен", + "Милликин", + "Миллинг", + "Миллинокет", + "Миллин", + "Милль", + "Милл", + "Милнер", + "Милнор", + "Милолии", + "Мило", + "Милпитас", + "Милрой", + "Милсап", + "Милтона", + "Милтон", + "Милуоки", + "Мил", + "Мимбрс", + "Мимоза", + "Мимс", + "Минам", + "Минард", + "Минатар", + "Мина", + "Минго", + "Мингус", + "Минден", + "Миндоро", + "Минеола", + "Минерал", + "Минерва", + "Минетто", + "Минидока", + "Минква", + "Минко", + "Минк", + "Миннеола", + "Миннеота", + "Миннесота", + "Миннетонка", + "Миннетриста", + "Миннехаха", + "Миннеэска", + "Минниполис", + "Минн", + "Миноа", + "Минонг", + "Минонк", + "Минор", + "Минстер", + "Минс", + "Минтер", + "Минтл", + "Минторн", + "Минто", + "Минт", + "Минука", + "Минчумина", + "Миньер", + "Миньон", + "Мин", + "Мио", + "Мирада", + "Мираж", + "Миракл", + "Мирамар", + "Мирамигоа", + "Миранда", + "Мирандо", + "Мира", + "Мирик", + "Мирон", + "Миррор", + "Мирс", + "Миртл", + "Мир", + "Миссисипи", + "Миссия", + "Миссури", + "Мистик", + "Мист", + "Митинг", + "Мититсе", + "Митти", + "Митчелл", + "Миффлин", + "Мичема", + "Мичиана", + "Мичиган", + "Мичи", + "Мишикот", + "Мишока", + "Ми", + "Мйома", + "Моапа", + "Моарк", + "Мобайл", + "Моберли", + "Мобити", + "Мобридж", + "Могадор", + "Моготе", + "Моддерс", + "Модель", + "Модена", + "Модесто", + "Модест", + "Модлоу", + "Модок", + "Модэйл", + "Мод", + "Мозелл", + "Мозель", + "Мозес", + "Мозли", + "Моиес", + "Мойен", + "Мойерс", + "Мойи", + "Мойлан", + "Мойлль", + "Мойн", + "Мойок", + "Моканаква", + "Мокан", + "Мокасин", + "Мока", + "Моква", + "Мокена", + "Мокламн", + "Моклипс", + "Моксахала", + "Мокси", + "Моксли", + "Мокс", + "Мокулеия", + "Молалла", + "Молден", + "Молена", + "Молина", + "Молино", + "Моллер", + "Моллюск", + "Молсон", + "Молтри", + "Моль", + "Момайер", + "Моменс", + "Моми", + "Монака", + "Монанго", + "Монарх", + "Монаханс", + "Мондамин", + "Мондови", + "Монель", + "Монеро", + "Монета", + "Монетта", + "Монетт", + "Монида", + "Моника", + "Монико", + "Монингер", + "Монитор", + "Мони", + "Монкальм", + "Монклер", + "Монкс", + "Монк", + "Монмут", + "Монови", + "Моноган", + "Монона", + "Мононга", + "Мононгиела", + "Монон", + "Моно", + "Монпелье", + "Монреаль", + "Монрит", + "Монровия", + "Монро", + "Монсеррат", + "Монси", + "Монсон", + "Монс", + "Монтальба", + "Монтальво", + "Монтана", + "Монта", + "Монтвейл", + "Монтверде", + "Монтгомери", + "Монтебелло", + "Монтевалло", + "Монтегут", + "Монтегю", + "Монтейгл", + "Монтейт", + "Монтелло", + "Монтерей", + "Монтесано", + "Монтесума", + "Монте", + "Монтичелло", + "Монтморенси", + "Монтойя", + "Монток", + "Монтон", + "Монтор", + "Монтросс", + "Монтроуз", + "Монтчанин", + "Монт", + "Монумент", + "Монфор", + "Мончес", + "Моньяк", + "Мопен", + "Моравиан", + "Моравия", + "Морада", + "Моралес", + "Моран", + "Мора", + "Морвен", + "Моргана", + "Морганза", + "Морган", + "Моргнек", + "Морена", + "Морено", + "Моренси", + "Моржовой", + "Морзе", + "Мориарти", + "Морин", + "Морис", + "Морита", + "Моричес", + "Мория", + "Мори", + "Морли", + "Мормон", + "Морнинг", + "Моровис", + "Моронго", + "Морони", + "Моро", + "Моррал", + "Моррилла", + "Моррил", + "Моррисон", + "Моррис", + "Морроу", + "Морро", + "Морстейн", + "Мортон", + "Мор", + "Мосби", + "Мосини", + "Моска", + "Москито", + "Москоу", + "Моссирок", + "Мосси", + "Мосс", + "Мосьер", + "Мотли", + "Мотт", + "Моуиква", + "Моурис", + "Моффат", + "Моффетт", + "Моффит", + "Мохаве", + "Мохейв", + "Мохок", + "Мохолл", + "Мошаннон", + "Мошер", + "Моэб", + "Моэнкопи", + "Мо", + "Муди", + "Мудус", + "Муерс", + "Муза", + "Музелла", + "Музик", + "Мукарабонес", + "Мули", + "Мултон", + "Мул", + "Муначи", + "Мунизинг", + "Мунстон", + "Муншайн", + "Мун", + "Муринг", + "Мурман", + "Мурриета", + "Мурьета", + "Мур", + "Мусикс", + "Мустанг", + "Мус", + "Мучуал", + "Мьес", + "Мьюир", + "Мэгги", + "Мэгнесс", + "Мэдисон", + "Мэйбелл", + "Мэйби", + "Мэйбрук", + "Мэйдель", + "Мэйден", + "Мэйдэй", + "Мэйлен", + "Мэйна", + "Мэйпенс", + "Мэйперл", + "Мэйхью", + "Мэй", + "Мэлоун", + "Мэнгам", + "Мэни", + "Мэнли", + "Мэннинг", + "Мэнсон", + "Мэнс", + "Мэн", + "Мэрис", + "Мэри", + "Мэсси", + "Мэтисон", + "Мэтлок", + "Мэтсон", + "Мэттаван", + "Мэттава", + "Мэттитак", + "Мэтти", + "Мэтьюз", + "Мюнстер", + "Мюнхен", + "Мюррей", + "Наалеу", + "Наангола", + "Наанта", + "Набб", + "Набибер", + "Набортон", + "Наб", + "Наварино", + "Наварра", + "Наварро", + "Навасота", + "Навасса", + "Навахо", + "Навесинк", + "Нави", + "Нагс", + "Нагуабо", + "Нада", + "Назарет", + "Назианс", + "Наиксут", + "Наир", + "Найангуа", + "Найантик", + "Найарада", + "Найек", + "Найк", + "Найнти", + "Найн", + "Найрим", + "Найс", + "Найт", + "Найфли", + "Найф", + "Най", + "Накия", + "Накла", + "Накнек", + "Накодочес", + "Нако", + "Наллен", + "Нама", + "Намб", + "Нампа", + "Нанакули", + "Нанда", + "Нанкин", + "Наннелли", + "Нанн", + "Нансон", + "Нантакет", + "Нантикок", + "Нанту", + "Нанюэт", + "Напавайн", + "Напакиак", + "Напаноч", + "Напаскиак", + "Напа", + "Напер", + "Наполеон", + "Напони", + "Наппани", + "Напьер", + "Наранхито", + "Нара", + "Нарберт", + "Нардин", + "Нари", + "Нарка", + "Наркоосси", + "Народ", + "Нарроус", + "Нарсиссо", + "Наруна", + "Насимьенто", + "Насон", + "Нассау", + "Наталбани", + "Наталия", + "Натали", + "Натан", + "Натвик", + "Натик", + "Натли", + "Натома", + "Натриас", + "Натриосо", + "Натрона", + "Наттер", + "Наттинг", + "Натт", + "Натураль", + "Натчез", + "Натчиточес", + "Науву", + "Наф", + "Нахант", + "Начес", + "Нашоба", + "Нашота", + "Нашуа", + "Нашуок", + "Наяк", + "Неаполь", + "Неа", + "Небагамон", + "Небо", + "Небраска", + "Невада", + "Невин", + "Невис", + "Негауни", + "Негра", + "Негрит", + "Негрон", + "Негро", + "Неддик", + "Недерланд", + "Недроу", + "Незперс", + "Нейборс", + "Нейджизи", + "Нейленд", + "Нейлор", + "Нейлтон", + "Нейл", + "Нейтавауш", + "Нейхарт", + "Нейчерита", + "Нейшен", + "Ней", + "Некома", + "Нектар", + "Нек", + "Нелагони", + "Нелай", + "Нелла", + "Неллис", + "Нелли", + "Нельсон", + "Немаколин", + "Немаха", + "Нема", + "Немо", + "Ненана", + "Ненцел", + "Неога", + "Неола", + "Неопит", + "Неошо", + "Непонсет", + "Нептун", + "Нерсери", + "Несбитт", + "Неседа", + "Несика", + "Неско", + "Нескхонинг", + "Несмит", + "Неспелем", + "Несс", + "Нестория", + "Нестор", + "Нест", + "Нетавака", + "Нетартс", + "Нетерс", + "Нетконг", + "Нетлтон", + "Нефи", + "Неффс", + "Нехалем", + "Нехока", + "Нече", + "Нешаник", + "Нешемини", + "Нешкоро", + "Нешнел", + "Нешоба", + "Не", + "Ниагара", + "Нибли", + "Нивер", + "Нивитт", + "Нивот", + "Нигел", + "Нидлс", + "Нидмор", + "Нидо", + "Нидхэм", + "Нид", + "Низс", + "Никель", + "Никеп", + "Никерсон", + "Никиски", + "Никодим", + "Николаевск", + "Николай", + "Николас", + "Николаус", + "Николетт", + "Никольский", + "Николь", + "Никол", + "Никома", + "Никса", + "Никсон", + "Ниланд", + "Нили", + "Нильс", + "Нил", + "Ниман", + "Ниммонс", + "Нимрод", + "Ним", + "Нина", + "Нинилчайк", + "Нинок", + "Ниоба", + "Ниобрара", + "Ниотаз", + "Ниота", + "Нипомо", + "Ниппа", + "Ниптон", + "Нискволли", + "Нискейуна", + "Нисланд", + "Ниссеквог", + "Ниссуа", + "Нитер", + "Нитос", + "Нитро", + "Нитта", + "Ниулии", + "Ни", + "Ноатак", + "Нобел", + "Нобен", + "Нобль", + "Ноб", + "Нова", + "Новелти", + "Новингер", + "Новис", + "Нови", + "Ногалес", + "Нодауэй", + "Нойберт", + "Нойек", + "Нойес", + "Ной", + "Нокати", + "Ноксапатер", + "Ноксен", + "Нокс", + "Нок", + "Нолан", + "Ноленс", + "Ноли", + "Нома", + "Ном", + "Нонан", + "Нондолтон", + "Ноондей", + "Нопал", + "Нора", + "Норбек", + "Норборн", + "Норвич", + "Норге", + "Нордгейм", + "Норден", + "Нордман", + "Норд", + "Нориас", + "Норкатур", + "Норко", + "Норкросс", + "Норланд", + "Норлина", + "Нормаль", + "Норманги", + "Нормандия", + "Норман", + "Норма", + "Норридж", + "Норрис", + "Норритон", + "Норсленд", + "Нортамп", + "Нортерн", + "Норте", + "Нортон", + "Норт", + "Норуолк", + "Норуэй", + "Норфлет", + "Норфлит", + "Норфолк", + "Норфорк", + "Норшор", + "Нор", + "Ностер", + "Нос", + "Нотак", + "Нотасулга", + "Нотрис", + "Нотус", + "Нотч", + "Ноулз", + "Ноулин", + "Ноултон", + "Ноуота", + "Ноэлк", + "Ноэль", + "Но", + "Нуксек", + "Нулато", + "Нунака", + "Нунам", + "Нунан", + "Нуньес", + "Нурвик", + "Нурем", + "Нутрия", + "Нушагак", + "Нуэвас", + "Нуэво", + "Нуяка", + "Ньюарк", + "Ньюейго", + "Ньюз", + "Ньюинг", + "Ньюкасл", + "Ньюкирк", + "Ньюланд", + "Ньюлонс", + "Ньюман", + "Ньюнен", + "Ньюокум", + "Ньюолд", + "Ньюпойнт", + "Ньюпорт", + "Ньюри", + "Ньюсомс", + "Ньюсом", + "Ньюток", + "Ньютония", + "Ньютон", + "Ньютрал", + "Ньюхолл", + "Ньюэлл", + "Нью", + "Нэнси", + "Нэрн", + "Нэш", + "Оазис", + "Оакома", + "Оарк", + "Обар", + "Обен", + "Оберлин", + "Оберн", + "Оберон", + "Оберри", + "Оберт", + "Обец", + "Обиспо", + "Облонг", + "Обри", + "Оваза", + "Овало", + "Оватонна", + "Овего", + "Оверли", + "Овернь", + "Овертон", + "Овер", + "Оветт", + "Овид", + "Овилла", + "Овоссо", + "Овьедо", + "Ованеко", + "Ованка", + "Овассо", + "Огайова", + "Огайопайл", + "Огайо", + "Огаллала", + "Огг", + "Огденс", + "Огден", + "Огема", + "Огемо", + "Огилби", + "Огилви", + "Оглала", + "Оглсби", + "Оглс", + "Оглторп", + "Огункит", + "Огуста", + "Одана", + "Одеболт", + "Оделл", + "Одем", + "Оден", + "Одесса", + "Оджас", + "Оджибва", + "Один", + "Одон", + "Одубон", + "Оелвейн", + "Оелричс", + "Озавки", + "Озан", + "Озарк", + "Озинки", + "Озона", + "Озон", + "Оидак", + "Оилтон", + "Ойлен", + "Ойл", + "Ойос", + "Ойрен", + "Ойстер", + "Окабена", + "Оканоган", + "Окарч", + "Окатон", + "Окат", + "Окаумпка", + "Ока", + "Оквир", + "Оквока", + "Оквоссос", + "Океан", + "Окемос", + "Окето", + "Окиланта", + "Окина", + "Окин", + "Окичоби", + "Оклаунен", + "Оклахома", + "Окли", + "Окма", + "Окмулги", + "Окободжи", + "Окои", + "Околона", + "Окони", + "Окономовок", + "Оконто", + "Окопи", + "Окоши", + "Окракоук", + "Окрик", + "Оксбоу", + "Оксвэсс", + "Оксиденталь", + "Окснард", + "Оксоквен", + "Окс", + "Октавия", + "Октаха", + "Окта", + "Окэй", + "Олалья", + "Оламон", + "Оландер", + "Оланча", + "Олар", + "Оласти", + "Олатон", + "Олат", + "Олауолу", + "Олаф", + "Ола", + "Олбани", + "Олбанс", + "Олби", + "Олбрайт", + "Олворд", + "Олвуд", + "Олден", + "Олдер", + "Олдрич", + "Олдсмар", + "Олдхэм", + "Олд", + "Олеан", + "Олекс", + "Олена", + "Оленье", + "Олень", + "Олива", + "Оливер", + "Оливет", + "Оливия", + "Оливос", + "Олимпиан", + "Олимпик", + "Олимпия", + "Олимпо", + "Олимпус", + "Олин", + "Олифант", + "Олкотт", + "Оллас", + "Олла", + "Оллгуд", + "Олли", + "Олман", + "Олмедия", + "Олмито", + "Олмиц", + "Олмос", + "Олмстед", + "Олна", + "Олни", + "Олнс", + "Олпорт", + "Олсип", + "Олсон", + "Олтон", + "Олт", + "Олфордс", + "Ольберг", + "Ольви", + "Ольга", + "Ольпе", + "Ольстер", + "Омак", + "Омао", + "Омаха", + "Ома", + "Омега", + "Омеми", + "Омер", + "Омо", + "Омро", + "Омс", + "Онава", + "Онага", + "Онака", + "Оналаска", + "Онамия", + "Онанкок", + "Онарга", + "Она", + "Онворд", + "Онг", + "Онего", + "Онейда", + "Онекама", + "Онеонта", + "Онида", + "Оникс", + "Онион", + "Онича", + "Онли", + "Оноэй", + "Оно", + "Онсет", + "Онслоу", + "Онстед", + "Онтарио", + "Онтонагон", + "Оош", + "Опал", + "Опа", + "Опдайк", + "Опелика", + "Опелусас", + "Опиайкао", + "Ополис", + "Оппортунити", + "Опп", + "Оптимо", + "Ораб", + "Ораделл", + "Оракул", + "Орал", + "Оранж", + "Оран", + "Орвиг", + "Орвин", + "Ордер", + "Орд", + "Ореана", + "Орегония", + "Орегон", + "Орей", + "Орем", + "Орестес", + "Оретта", + "Ориента", + "Ориент", + "Орик", + "Оринда", + "Орин", + "Ориол", + "Орион", + "Орискани", + "Ориска", + "Оркас", + "Оркатт", + "Орландо", + "Орланд", + "Орла", + "Орлеан", + "Орлинда", + "Орловиста", + "Ормигерос", + "Ормонд", + "Ормсби", + "Орм", + "Оровада", + "Орогранд", + "Ороковис", + "Ороного", + "Ороноко", + "Ороно", + "Ороси", + "Орофино", + "Оро", + "Оррик", + "Оррин", + "Оррум", + "Орр", + "Орсон", + "Ортинг", + "Ортли", + "Ортон", + "Орфа", + "Орфорд", + "Орчард", + "Орчид", + "Ор", + "Осайка", + "Осакис", + "Осберн", + "Осборн", + "Освего", + "Осгуд", + "Осейдж", + "Осер", + "Оси", + "Оскавалик", + "Оскалуза", + "Оскар", + "Оскода", + "Осло", + "Осман", + "Осмунд", + "Оснаброк", + "Осоатоми", + "Осо", + "Оспри", + "Оссео", + "Оссиан", + "Оссининг", + "Оссинк", + "Оссипи", + "Остелл", + "Остер", + "Остин", + "Остонио", + "Острандер", + "Осуэйо", + "Отего", + "Отелло", + "Отиско", + "Отис", + "Отли", + "Отога", + "Ото", + "Отранто", + "Отри", + "Отсего", + "Отселик", + "Оттава", + "Оттаму", + "Оттер", + "Оттосен", + "Отто", + "Отуэй", + "Отуэлл", + "Отэй", + "От", + "Оуайхи", + "Оуинг", + "Оукли", + "Оукс", + "Оук", + "Оулс", + "Оул", + "Оупи", + "Оушена", + "Оушен", + "Оуэндоу", + "Оуэнтон", + "Оуэньо", + "Оуэн", + "Офейм", + "Офир", + "Офферл", + "Офферман", + "Офф", + "Охай", + "Охатчи", + "Охеа", + "Охоп", + "Охо", + "Оцеола", + "Оцилла", + "Очелата", + "Очента", + "Очоа", + "Ошайедан", + "Ошкош", + "Ошлокни", + "Ошото", + "О", + "Паауило", + "Пабло", + "Павильон", + "Паво", + "Пагоса", + "Пагуат", + "Паддок", + "Паден", + "Падония", + "Падре", + "Падрони", + "Падука", + "Паз", + "Паия", + "Пайат", + "Пайк", + "Пайнери", + "Пайни", + "Пайнола", + "Пайнора", + "Пайнтоп", + "Пайн", + "Пайош", + "Пайпер", + "Пайп", + "Пайсано", + "Пай", + "Пакала", + "Пакард", + "Паколет", + "Паксико", + "Пакссон", + "Пакстанг", + "Пакстония", + "Пакстон", + "Пакс", + "Пак", + "Палатин", + "Палатка", + "Палаус", + "Пала", + "Пален", + "Палермо", + "Палестина", + "Палисад", + "Палито", + "Палко", + "Паллман", + "Палмер", + "Паломар", + "Палома", + "Пало", + "Пальмарехо", + "Пальма", + "Пальметто", + "Пальмира", + "Пальм", + "Пальтц", + "Памлико", + "Пампа", + "Пампкин", + "Памплико", + "Памп", + "Памфри", + "Панака", + "Панама", + "Панацея", + "Пана", + "Пангберн", + "Пангитч", + "Пандора", + "Панко", + "Панксатони", + "Панола", + "Панорама", + "Панора", + "Пантано", + "Пантего", + "Пантера", + "Панхандл", + "Паола", + "Паоли", + "Паония", + "Папаикоу", + "Папалот", + "Папетон", + "Папиллион", + "Парагона", + "Парагон", + "Парагулд", + "Парадайс", + "Парадис", + "Парад", + "Парамаунт", + "Парамп", + "Парамус", + "Парашют", + "Паргера", + "Парди", + "Парис", + "Паркер", + "Паркин", + "Парклайн", + "Паркмен", + "Паркроуз", + "Парксли", + "Паркс", + "Парк", + "Парлин", + "Парльер", + "Пармали", + "Парма", + "Пармели", + "Пармель", + "Пармер", + "Парнелл", + "Парован", + "Пароль", + "Паррал", + "Парран", + "Парротт", + "Парселас", + "Парсипани", + "Парсонс", + "Парсхолл", + "Парт", + "Парфенон", + "Пархамс", + "Парчмент", + "Пасадена", + "Пасифика", + "Пасифик", + "Паскагула", + "Паскента", + "Паскоаг", + "Паскола", + "Паско", + "Пасо", + "Пассаик", + "Пасс", + "Пастилло", + "Пастос", + "Пастура", + "Пасчер", + "Патагония", + "Патаскала", + "Патаха", + "Патент", + "Патерос", + "Патерсон", + "Патзау", + "Патилла", + "Патмос", + "Патнэм", + "Патока", + "Патон", + "Патрик", + "Патриот", + "Патрисио", + "Патриция", + "Патрун", + "Паттен", + "Паттерсон", + "Паттисон", + "Паттон", + "Патчог", + "Патч", + "Пат", + "Паудерли", + "Паудер", + "Паудр", + "Паукаа", + "Паула", + "Паунал", + "Паунд", + "Пауэлл", + "Пауэл", + "Пауэр", + "Пахарито", + "Пахаро", + "Пахаска", + "Пахоа", + "Пахоки", + "Пац", + "Пачеко", + "Пачута", + "Пеббл", + "Певамо", + "Певели", + "Пеггс", + "Пеграм", + "Педерналь", + "Педли", + "Педрик", + "Педро", + "Пейдж", + "Пейнс", + "Пейнтед", + "Пейнтер", + "Пейнт", + "Пейн", + "Пейсинс", + "Пейсли", + "Пейс", + "Пейтон", + "Пейтс", + "Пейт", + "Пекан", + "Пекатоника", + "Пеквана", + "Пекваннок", + "Пеквоп", + "Пекин", + "Пеконик", + "Пекос", + "Пекулиар", + "Пекхэм", + "Пек", + "Пелахатчи", + "Пелетьер", + "Пелзер", + "Пеликан", + "Пелион", + "Пелки", + "Пелланд", + "Пелла", + "Пеллет", + "Пелл", + "Пелхэм", + "Пембер", + "Пембина", + "Пембрук", + "Пеналоса", + "Пена", + "Пенбрук", + "Пендер", + "Пенджилли", + "Пендл", + "Пендрой", + "Пенермон", + "Пензанс", + "Пенинсула", + "Пенитас", + "Пеннинг", + "Пенни", + "Пеннок", + "Пеннсако", + "Пеннсокен", + "Пенн", + "Пенроуз", + "Пенсакола", + "Пенсер", + "Пенсоки", + "Пент", + "Пенхук", + "Пеньюэлас", + "Пеньяско", + "Пен", + "Пеоа", + "Пеория", + "Пеоста", + "Пеотон", + "Пепеэкео", + "Пепин", + "Пеппер", + "Перальта", + "Первес", + "Первис", + "Пердидо", + "Пердиз", + "Пердин", + "Перди", + "Пердон", + "Пердум", + "Перес", + "Пере", + "Перидот", + "Перин", + "Перкаси", + "Перкинс", + "Перкл", + "Перлита", + "Перли", + "Перл", + "Перма", + "Пернелл", + "Пернитас", + "Перот", + "Перриман", + "Перрин", + "Перриополис", + "Перри", + "Перселл", + "Персилла", + "Персия", + "Перси", + "Перт", + "Перу", + "Перхэм", + "Перчейз", + "Пескадеро", + "Песотум", + "Петалума", + "Петал", + "Петоски", + "Петри", + "Петролеум", + "Петролия", + "Петронила", + "Петрос", + "Петти", + "Петтри", + "Петтус", + "Пеуи", + "Пеуоки", + "Пешастин", + "Пешобес", + "Пештиго", + "Пе", + "Пиблз", + "Пибоди", + "Пивер", + "Пиготт", + "Пиджен", + "Пидкок", + "Пидмонт", + "Пикабо", + "Пикачо", + "Пикаюн", + "Пика", + "Пиква", + "Пикенс", + "Пикеринг", + "Пикетт", + "Пико", + "Пикрелл", + "Пикскилл", + "Пиксли", + "Пикчер", + "Пик", + "Пилар", + "Пиллар", + "Пиллиджер", + "Пиллоу", + "Пиллс", + "Пилот", + "Пилсен", + "Пильгер", + "Пил", + "Пима", + "Пименто", + "Пиммит", + "Пинакл", + "Пинард", + "Пингри", + "Пиндалл", + "Пинеда", + "Пинеллас", + "Пинетта", + "Пинкард", + "Пинкни", + "Пинконнинг", + "Пинк", + "Пинола", + "Пиноль", + "Пинон", + "Пинос", + "Пинсон", + "Пинта", + "Пинто", + "Пинтура", + "Пинч", + "Пионер", + "Пипак", + "Пиппа", + "Пирамида", + "Пирз", + "Пирис", + "Пиритон", + "Пирлесс", + "Пирлинг", + "Пиррон", + "Пирси", + "Пирсолл", + "Пирсон", + "Пирс", + "Пиртл", + "Пиру", + "Пир", + "Писга", + "Писек", + "Пискатауэй", + "Пистейки", + "Пис", + "Питер", + "Питкас", + "Питкин", + "Питкэрн", + "Питман", + "Питс", + "Питтман", + "Питтсбург", + "Питт", + "Питц", + "Пит", + "Пичер", + "Пич", + "Пи", + "Плаза", + "Плаййта", + "Плайя", + "Плакемин", + "Пламбсок", + "Пламмер", + "Плам", + "Планада", + "Пландом", + "Планкинтон", + "Плано", + "Плантация", + "Плантер", + "Плант", + "Пласедо", + "Пласентия", + "Пласида", + "Пласид", + "Пласитас", + "Пластер", + "Плата", + "Платея", + "Платина", + "Платинум", + "Платон", + "Плато", + "Платтс", + "Платт", + "Плат", + "Плевна", + "Пледжер", + "Плежэ", + "Плезантон", + "Плезант", + "Плейн", + "Плейсер", + "Плейстоу", + "Плейс", + "Плена", + "Пленти", + "Плен", + "Плеттен", + "Плетчер", + "Плик", + "Плимптон", + "Плимут", + "Плош", + "Плумер", + "Плэй", + "Плюм", + "Плюш", + "Поаг", + "Побре", + "Повэй", + "Погик", + "Поджоак", + "Позен", + "Поинт", + "Пойен", + "Пойндекстер", + "Пойнетт", + "Пойнор", + "Пойпу", + "Пой", + "Покалла", + "Покассет", + "Покатак", + "Покаталико", + "Покателло", + "Покахонтас", + "Пока", + "Поквотт", + "Покипси", + "Покнок", + "Покола", + "Покомок", + "Поконо", + "Покопсон", + "Покотопог", + "Поланд", + "Полвадера", + "Полден", + "Полдинг", + "Полетт", + "Полет", + "Полина", + "Полинг", + "Поли", + "Полк", + "Поллард", + "Поллок", + "Полония", + "Поло", + "Полсон", + "Поль", + "Полюс", + "Помария", + "Помона", + "Помонки", + "Помпано", + "Помпис", + "Помптон", + "Помрой", + "Пондероса", + "Пондерэй", + "Пондер", + "Пондоса", + "Понд", + "Понето", + "Пониент", + "Пони", + "Понка", + "Понма", + "Понте", + "Понтиак", + "Понтон", + "Понтоток", + "Понтусук", + "Пончатаула", + "Понча", + "Поплар", + "Порвенир", + "Портал", + "Портедж", + "Портис", + "Портленд", + "Портола", + "Портсмут", + "Портье", + "Порт", + "Порум", + "Порция", + "Поссесшен", + "Постелл", + "Постон", + "Пост", + "Пос", + "Потакет", + "Потала", + "Потато", + "Потвин", + "Потит", + "Потлач", + "Потомак", + "Потоси", + "Пото", + "Потсдам", + "Поттери", + "Поттер", + "Поттс", + "Пот", + "Поузи", + "Поулан", + "Поулсбо", + "Поуп", + "Поуэла", + "Похатан", + "По", + "Прага", + "Прадо", + "Прайд", + "Прайн", + "Прайор", + "Прайс", + "Пранти", + "Прари", + "Пратер", + "Пребл", + "Президент", + "Президио", + "Премонт", + "Прентис", + "Прерия", + "Преса", + "Прескотт", + "Преск", + "Престон", + "Престо", + "Претти", + "Прешо", + "Придди", + "Приджн", + "Призматик", + "Примера", + "Примроуз", + "Примхар", + "Прим", + "Прингл", + "Принс", + "Принцесса", + "Принц", + "Прин", + "Приор", + "Прист", + "Притчетт", + "Причард", + "Проберта", + "Провансаль", + "Провиденс", + "Провинция", + "Прово", + "Прогресо", + "Прогресс", + "Проктор", + "Промиз", + "Промонтори", + "Промптон", + "Пронг", + "Пронто", + "Просит", + "Проспект", + "Просперити", + "Проспер", + "Проссер", + "Протекшен", + "Протем", + "Противин", + "Профетс", + "Пруден", + "Прудо", + "Прун", + "Пруссия", + "Пруф", + "Прэй", + "Прэтт", + "Прюитт", + "Прю", + "Пуако", + "Пуант", + "Пуйаллап", + "Пукалани", + "Пукетт", + "Пуласки", + "Пулер", + "Пулс", + "Пул", + "Пуналуу", + "Пунта", + "Пурьер", + "Путни", + "Пут", + "Пууанаулью", + "Пуувай", + "Пуш", + "Пуэблито", + "Пуэбло", + "Пуэнте", + "Пуэрто", + "Пуюколии", + "Пфайфер", + "Пфлюгера", + "Пьедра", + "Пьерпонт", + "Пьер", + "Пэйсон", + "Пэриш", + "Пэрриш", + "Пэрри", + "Раббит", + "Рабида", + "Равалли", + "Равенден", + "Равенна", + "Равиния", + "Равия", + "Раган", + "Рагли", + "Раго", + "Радд", + "Радий", + "Радиссон", + "Раднор", + "Радом", + "Рад", + "Райан", + "Райдер", + "Райзинг", + "Райз", + "Райли", + "Раймонд", + "Райнбек", + "Райнер", + "Райс", + "Райтс", + "Райт", + "Рай", + "Ракер", + "Ракетт", + "Ральф", + "Рамапо", + "Рама", + "Рамбл", + "Рамер", + "Рамирес", + "Рамона", + "Рамон", + "Рамос", + "Рампарт", + "Рамсей", + "Рамсон", + "Рамсур", + "Рам", + "Рандадо", + "Рандалия", + "Рандж", + "Рандлетт", + "Рандольф", + "Рандом", + "Ранд", + "Ранкин", + "Ранкокас", + "Ранло", + "Раннелл", + "Раннел", + "Раннимид", + "Раннинг", + "Рансом", + "Рансон", + "Ранчеттс", + "Ранчито", + "Ранчо", + "Ранч", + "Раньер", + "Ран", + "Рапелж", + "Рапид", + "Рарден", + "Рардин", + "Раритан", + "Раса", + "Расин", + "Раскин", + "Раск", + "Расса", + "Рассел", + "Растад", + "Растон", + "Раст", + "Ратклифф", + "Ратлифф", + "Ратон", + "Рауб", + "Рауль", + "Раундап", + "Раунд", + "Рауэй", + "Рафаэль", + "Рафтер", + "Раффин", + "Рафф", + "Рачал", + "Раш", + "Реал", + "Реберс", + "Рева", + "Ревенел", + "Ревилло", + "Ревир", + "Регал", + "Регби", + "Регент", + "Регистр", + "Регис", + "Редан", + "Редберд", + "Редби", + "Редделл", + "Редден", + "Реддик", + "Реддинг", + "Реджо", + "Редиг", + "Рединг", + "Редки", + "Редланд", + "Редмеса", + "Редмонд", + "Редмон", + "Редондо", + "Редоул", + "Редрок", + "Редьярд", + "Ред", + "Резерв", + "Рейвен", + "Рейган", + "Рейдерс", + "Рейдон", + "Рейд", + "Рейес", + "Рейзин", + "Рейк", + "Рейли", + "Рейль", + "Рейл", + "Реймер", + "Реймор", + "Рейнджер", + "Рейнир", + "Рейнольдс", + "Рейно", + "Рейнс", + "Рейн", + "Рейстерс", + "Рейффтон", + "Рей", + "Реква", + "Реклас", + "Рекло", + "Рековери", + "Рекстон", + "Рексхам", + "Рекс", + "Ректор", + "Релайанс", + "Ремайндер", + "Ремберт", + "Рембрандт", + "Ремер", + "Ремингтон", + "Реми", + "Ремо", + "Ремсен", + "Рем", + "Рена", + "Ренвик", + "Рендон", + "Ренд", + "Реник", + "Реннерт", + "Ренова", + "Реново", + "Рено", + "Ренсселаер", + "Рентиес", + "Рентон", + "Рентул", + "Рентц", + "Ренфро", + "Реншолл", + "Рен", + "Репабликан", + "Репопо", + "Репос", + "Рердан", + "Рерделл", + "Ресака", + "Ресорт", + "Ресота", + "Республика", + "Рестон", + "Рест", + "Ретер", + "Ретрит", + "Ретроп", + "Ретта", + "Реформа", + "Рефьюджио", + "Рехобот", + "Рея", + "Риальто", + "Рибера", + "Риб", + "Рива", + "Ривера", + "Риверли", + "Ривер", + "Ривз", + "Ривс", + "Ривьера", + "Риган", + "Ригби", + "Риггинс", + "Ригель", + "Ригер", + "Ригли", + "Риддер", + "Риддл", + "Ридер", + "Риджли", + "Ридж", + "Ридинг", + "Риди", + "Ридлин", + "Ридли", + "Ридотт", + "Рид", + "Риензи", + "Риет", + "Ризель", + "Риз", + "Рикардо", + "Рикардс", + "Рика", + "Рикеттс", + "Рико", + "Рикс", + "Риланд", + "Рилитос", + "Риллито", + "Риллтон", + "Римерс", + "Римини", + "Римс", + "Рим", + "Ринард", + "Рингер", + "Ринглинг", + "Рингл", + "Ринголд", + "Ринг", + "Ринер", + "Рини", + "Ринконада", + "Ринкон", + "Риомедина", + "Рион", + "Рио", + "Риплингер", + "Рипли", + "Рипон", + "Риппи", + "Риппл", + "Риппон", + "Рири", + "Риско", + "Риснор", + "Рис", + "Рита", + "Рито", + "Ритт", + "Ритчи", + "Рифл", + "Ричард", + "Ричи", + "Ричланд", + "Ричлон", + "Ричмонд", + "Ричтекс", + "Ричтон", + "Рич", + "Ри", + "Роад", + "Роаминг", + "Роанок", + "Роан", + "Роаринг", + "Роач", + "Робардс", + "Роба", + "Роббинс", + "Роббс", + "Роберта", + "Роберт", + "Робесония", + "Робинетт", + "Робинсон", + "Робинс", + "Робин", + "Роби", + "Роблинг", + "Роблс", + "Робс", + "Робук", + "Ровена", + "Ровер", + "Ровес", + "Роган", + "Рогген", + "Рог", + "Роданте", + "Родарт", + "Роделл", + "Родео", + "Родесса", + "Родес", + "Родет", + "Роджер", + "Родман", + "Родни", + "Розалия", + "Розали", + "Розамунда", + "Розанки", + "Розарио", + "Розари", + "Роза", + "Розелл", + "Розель", + "Розенхайн", + "Розен", + "Розето", + "Розетта", + "Розет", + "Розита", + "Розл", + "Розмари", + "Розо", + "Розьер", + "Ройал", + "Ройерс", + "Ройс", + "Рой", + "Рока", + "Рокделл", + "Рокер", + "Рокингем", + "Роки", + "Рокледж", + "Роклей", + "Роклин", + "Рокмарт", + "Роксана", + "Рокси", + "Роксобел", + "Рокстон", + "Рокс", + "Рокуэй", + "Рокуэлл", + "Рокхем", + "Рок", + "Роланд", + "Ролетт", + "Ролинда", + "Ролинс", + "Роли", + "Ролла", + "Роллинг", + "Роллинз", + "Роллс", + "Ролл", + "Ролстон", + "Рольф", + "Рома", + "Ромбауэр", + "Ромейор", + "Ромео", + "Ромеро", + "Ромни", + "Ронан", + "Рондаут", + "Ронда", + "Рондо", + "Ронд", + "Ронер", + "Ронконкома", + "Роннеби", + "Ронсеверт", + "Роскоммон", + "Роско", + "Рослин", + "Росмэн", + "Росон", + "Россер", + "Россетт", + "Росситер", + "Россия", + "Росси", + "Росс", + "Рос", + "Ротанг", + "Ротань", + "Ротонда", + "Ротсэй", + "Ротшильд", + "Рот", + "Роуден", + "Роуен", + "Роузер", + "Роуз", + "Роулетт", + "Роули", + "Роулс", + "Роупер", + "Роупс", + "Роуссл", + "Роу", + "Рофф", + "Роха", + "Рохнерт", + "Рохо", + "Рочерт", + "Рочестер", + "Рошарон", + "Рошель", + "Роше", + "Рошолт", + "Рош", + "Роэнн", + "Роялти", + "Ро", + "Рубенс", + "Рубин", + "Рубио", + "Рубония", + "Руди", + "Рудольф", + "Руд", + "Руж", + "Рузвельт", + "Руидоса", + "Руидосо", + "Руиз", + "Рулетта", + "Руло", + "Рул", + "Рума", + "Руноэй", + "Руперт", + "Руп", + "Рурал", + "Русо", + "Рус", + "Рутвен", + "Рутерс", + "Рутер", + "Рутледж", + "Рут", + "Руфус", + "Руф", + "Рух", + "Рходхисс", + "Рью", + "Рэй", + "Рэмси", + "Рэнгли", + "Рэндалл", + "Рэндл", + "Рюи", + "Саамико", + "Сабана", + "Сабаттис", + "Саба", + "Сабета", + "Сабиако", + "Сабинал", + "Сабина", + "Сабиносо", + "Сабин", + "Саблетт", + "Саблимити", + "Сабула", + "Савадж", + "Саванна", + "Савери", + "Савой", + "Савона", + "Савунга", + "Сагден", + "Сагер", + "Сагино", + "Саг", + "Садбери", + "Садден", + "Садли", + "Садорус", + "Саегер", + "Саенз", + "Саисан", + "Сайделл", + "Сайд", + "Сайенс", + "Сайкс", + "Сайлас", + "Сайлец", + "Саймон", + "Сайнареп", + "Сайо", + "Сайрус", + "Сайт", + "Сайчуат", + "Сакатон", + "Саквалена", + "Саквамиш", + "Сакетс", + "Сако", + "Сакраменто", + "Сакред", + "Саксесс", + "Саксе", + "Саксис", + "Саксман", + "Саксон", + "Сакстон", + "Сакс", + "Сак", + "Саладо", + "Салайерс", + "Салайер", + "Саламанка", + "Саламатоф", + "Саламония", + "Саланга", + "Салво", + "Салдуро", + "Салем", + "Салерно", + "Салида", + "Саликс", + "Салинас", + "Салина", + "Салинено", + "Салис", + "Салитпа", + "Салкум", + "Салладас", + "Салливан", + "Саллигент", + "Саллисо", + "Саллис", + "Салли", + "Саллярдс", + "Салмон", + "Салол", + "Саломея", + "Салонга", + "Салтана", + "Салтейр", + "Салтес", + "Салуда", + "Салфер", + "Сальтильо", + "Саль", + "Салюс", + "Саманта", + "Самария", + "Самитон", + "Самиш", + "Саммамиш", + "Саммерсет", + "Саммер", + "Саммит", + "Саммум", + "Самнер", + "Самнор", + "Самоа", + "Самосет", + "Самптер", + "Самралл", + "Самсон", + "Самсула", + "Самтер", + "Санак", + "Санатога", + "Санаториум", + "Санбери", + "Санбим", + "Санборн", + "Сандаски", + "Сандерс", + "Сандер", + "Сандия", + "Сандовал", + "Сандоу", + "Сандэнс", + "Санд", + "Санибель", + "Санилак", + "Санкер", + "Санкост", + "Санкчури", + "Санленд", + "Санни", + "Саности", + "Санрайз", + "Санрей", + "Сансет", + "Сансом", + "Сантакин", + "Сантан", + "Санта", + "Сантитла", + "Санти", + "Санто", + "Сантрана", + "Сантьяго", + "Санчез", + "Саншайн", + "Сан", + "Сапелло", + "Сапело", + "Саплай", + "Саппинг", + "Сапрем", + "Сапулпа", + "Сапфо", + "Сарагоса", + "Саранак", + "Саранап", + "Сарасота", + "Сарас", + "Саратога", + "Сарбен", + "Сарвер", + "Сарджент", + "Сардиния", + "Сардис", + "Сарепта", + "Саркокси", + "Сарко", + "Сарлс", + "Сарона", + "Сарт", + "Сасаква", + "Сасанк", + "Саскуэханны", + "Сассекс", + "Сассер", + "Сатанта", + "Сатартия", + "Сателлит", + "Сатерс", + "Сатикой", + "Сатин", + "Сатола", + "Саттер", + "Саттл", + "Саттон", + "Сатурн", + "Сатус", + "Сауарита", + "Саугус", + "Саудер", + "Саум", + "Саунд", + "Саутамп", + "Саутам", + "Саутерн", + "Саутинг", + "Саутленд", + "Саут", + "Сафферн", + "Саффорд", + "Саф", + "Сахали", + "Сацума", + "Сачз", + "Свенсон", + "Сверинген", + "Свея", + "Свифтон", + "Свиц", + "Свепсон", + "Свинк", + "Свиномиш", + "Свисс", + "Свитч", + "Свифт", + "Свойерс", + "Свордс", + "Сворм", + "Себастьян", + "Себека", + "Себоис", + "Себойета", + "Себолла", + "Себрелл", + "Себринг", + "Себри", + "Себуэйнг", + "Севал", + "Севастополь", + "Севен", + "Северанс", + "Севери", + "Северна", + "Северн", + "Севьер", + "Севани", + "Сеген", + "Сегно", + "Сего", + "Сегундо", + "Седалия", + "Седан", + "Седар", + "Седжвик", + "Седж", + "Седко", + "Седло", + "Седона", + "Седония", + "Сезон", + "Сейба", + "Сейберт", + "Сейдж", + "Сейлайн", + "Сейлинг", + "Сейлор", + "Сейл", + "Сеймур", + "Сейнер", + "Сейр", + "Сейфети", + "Сека", + "Секокус", + "Секонд", + "Секор", + "Секо", + "Секретарь", + "Секстон", + "Секуим", + "Секция", + "Селада", + "Села", + "Селби", + "Селвин", + "Селден", + "Селдовия", + "Селеста", + "Селестина", + "Селигман", + "Селина", + "Селинс", + "Селлек", + "Селлерс", + "Селман", + "Селмер", + "Селмонт", + "Селоик", + "Селорон", + "Село", + "Селфридж", + "Сельма", + "Семинария", + "Семинол", + "Семино", + "Семмес", + "Сенатобия", + "Сенат", + "Сенека", + "Сенизо", + "Сени", + "Сеноя", + "Сентенниал", + "Сентинель", + "Сент", + "Сепар", + "Сербия", + "Серд", + "Середо", + "Серенада", + "Серена", + "Серено", + "Серес", + "Сержант", + "Серинг", + "Серкл", + "Серранос", + "Серренси", + "Серрильос", + "Серри", + "Серро", + "Серулин", + "Серф", + "Серч", + "Сесилия", + "Сесил", + "Сесп", + "Сессер", + "Сестос", + "Сетокет", + "Сеттлмент", + "Сет", + "Сеуикли", + "Сеффнер", + "Се", + "Сиам", + "Сиасконсет", + "Сибекью", + "Сибил", + "Сибли", + "Сибола", + "Сиболо", + "Сигел", + "Сигнал", + "Сигнет", + "Сигн", + "Сиго", + "Сигсби", + "Сигурд", + "Сигурни", + "Сидман", + "Сидней", + "Сидно", + "Сидон", + "Сидра", + "Сиерра", + "Сиеста", + "Сикамор", + "Сикард", + "Сиклера", + "Сиконк", + "Сиксес", + "Сикстин", + "Сикс", + "Силакога", + "Силверадо", + "Силвис", + "Силезия", + "Силер", + "Силика", + "Силио", + "Сили", + "Силко", + "Силк", + "Силоам", + "Сило", + "Силсби", + "Силткуз", + "Силт", + "Сильвания", + "Сильван", + "Сильварена", + "Сильва", + "Сильвер", + "Сильвестр", + "Сильвия", + "Сил", + "Симаррон", + "Сима", + "Симеон", + "Симертон", + "Симилк", + "Симко", + "Симла", + "Симмес", + "Симмонс", + "Симмс", + "Симнашо", + "Симпсон", + "Симсония", + "Симс", + "Синай", + "Синбар", + "Синвайд", + "Сингл", + "Синкинг", + "Синклер", + "Синко", + "Синк", + "Синтиана", + "Синтон", + "Сионс", + "Сион", + "Сипер", + "Сиппи", + "Сипси", + "Сиракузы", + "Сирил", + "Сиринг", + "Сирия", + "Сирлс", + "Сирманс", + "Сирси", + "Сирс", + "Сисеро", + "Сиския", + "Сиско", + "Сисн", + "Сиссетон", + "Сиссна", + "Сиссон", + "Систер", + "Сити", + "Ситка", + "Ситон", + "Ситра", + "Сит", + "Сиу", + "Сицилия", + "Сиэтл", + "Си", + "Скаггс", + "Скагуэй", + "Скайатук", + "Скайлайн", + "Скай", + "Скали", + "Скаллорн", + "Скалл", + "Скальп", + "Скаммон", + "Скамокава", + "Скандинавия", + "Скандия", + "Сканителс", + "Скаппуз", + "Скарбро", + "Скарлетс", + "Скарс", + "Скар", + "Сквайр", + "Скванкум", + "Сквер", + "Скво", + "Скеди", + "Скелли", + "Скенектади", + "Скен", + "Скерри", + "Скилл", + "Ским", + "Скинчен", + "Скип", + "Скоби", + "Скоки", + "Скокомиш", + "Скотия", + "Скотланд", + "Скотс", + "Скотт", + "Скотч", + "Скоухеган", + "Скофилд", + "Скран", + "Скревен", + "Скрибнер", + "Скуба", + "Скулкрафт", + "Скуэнтна", + "Скхари", + "Скэйлс", + "Скэнлон", + "Слагл", + "Слайго", + "Слайделл", + "Слайд", + "Слак", + "Слана", + "Следж", + "Слейден", + "Слейд", + "Слейнс", + "Слейтер", + "Слейтинг", + "Слейти", + "Слейтон", + "Слейт", + "Слемп", + "Слик", + "Слингер", + "Слипер", + "Слипи", + "Слиппери", + "Слип", + "Слитмьют", + "Слоатс", + "Слован", + "Слокомб", + "Слокум", + "Слон", + "Слотер", + "Слот", + "Слоуп", + "Смайли", + "Смаковер", + "Смарр", + "Смарт", + "Смейл", + "Смелтер", + "Сметпорт", + "Смет", + "Смикс", + "Смирна", + "Смитвик", + "Смитерс", + "Смит", + "Смоки", + "Смокс", + "Смолан", + "Смолли", + "Смоук", + "Снайдер", + "Снап", + "Снейк", + "Снеллинг", + "Снелл", + "Снид", + "Сни", + "Сновер", + "Сноуболл", + "Сноу", + "Снохомиш", + "Снук", + "Собески", + "Соболь", + "Собрант", + "Согатак", + "Согертис", + "Согет", + "Сограсс", + "Сода", + "Содер", + "Содус", + "Сойер", + "Сойл", + "Сокасти", + "Соквель", + "Соквойт", + "Сокорро", + "Сок", + "Солана", + "Солванг", + "Солвей", + "Солдат", + "Солдотна", + "Соледад", + "Солен", + "Соломон", + "Солон", + "Солромар", + "Солс", + "Солтейр", + "Солтер", + "Солт", + "Солуэй", + "Сомер", + "Сомилл", + "Сомис", + "Сомонок", + "Сомс", + "Сона", + "Сондерс", + "Сонд", + "Сонемин", + "Соннетт", + "Сонойта", + "Сонома", + "Сонора", + "Сон", + "Сопер", + "Сопит", + "Соприс", + "Сопчоппи", + "Соренто", + "Соррел", + "Сорренто", + "Сорум", + "Сосо", + "Сосье", + "Сото", + "Соулсби", + "Соуп", + "Соур", + "Соуси", + "София", + "Социаль", + "Социум", + "Со", + "Спавино", + "Спайви", + "Спайр", + "Спайсер", + "Спайс", + "Спакен", + "Спанауэй", + "Спангл", + "Спаниш", + "Спаргерс", + "Спаркс", + "Спарлинг", + "Спарр", + "Спартан", + "Спарта", + "Спар", + "Спа", + "Спейд", + "Спейс", + "Спейт", + "Спекулянт", + "Спенард", + "Спенглер", + "Спенсер", + "Спеонк", + "Сперджен", + "Сперри", + "Спид", + "Спиллер", + "Спилл", + "Спинк", + "Спин", + "Спирит", + "Спирман", + "Спиро", + "Спирфиш", + "Спир", + "Сплендора", + "Спокан", + "Сполдинг", + "Спортсмен", + "Спотсильвания", + "Спотс", + "Споттед", + "Споф", + "Спрай", + "Спраут", + "Спра", + "Спред", + "Спрингер", + "Спрингли", + "Спринг", + "Спротт", + "Спрус", + "Спрэг", + "Спрэй", + "Спунер", + "Спур", + "Стадли", + "Стайлз", + "Стайнауэр", + "Стайр", + "Стайтс", + "Стаки", + "Сталварт", + "Сталлингс", + "Сталло", + "Сталл", + "Сталь", + "Стампинг", + "Стампи", + "Стампли", + "Стампс", + "Стам", + "Станард", + "Стандарт", + "Стандинг", + "Станд", + "Станс", + "Станция", + "Старбак", + "Старки", + "Старк", + "Старракка", + "Старр", + "Стартекс", + "Старт", + "Стар", + "Статен", + "Стаут", + "Стаф", + "Стеббинс", + "Стедман", + "Стед", + "Стейджкоч", + "Стейлакум", + "Стейнхатчи", + "Стейпл", + "Стейси", + "Стейтс", + "Стейт", + "Стекер", + "Стелла", + "Стем", + "Стена", + "Стеннет", + "Степрок", + "Степто", + "Степ", + "Стерджен", + "Стерджис", + "Стерки", + "Стерлинг", + "Стерли", + "Стерретт", + "Стертевант", + "Стетсон", + "Стефан", + "Стивен", + "Стиглер", + "Стидхэм", + "Стикни", + "Стилл", + "Стил", + "Стимсон", + "Стим", + "Стиннетт", + "Стин", + "Стипп", + "Стирлинг", + "Стирнс", + "Стиррат", + "Ститцер", + "Стобо", + "Стовалл", + "Стовер", + "Стоддард", + "Стойс", + "Стой", + "Стокгольм", + "Стокер", + "Стокетт", + "Стокман", + "Стокуэлл", + "Стокхэм", + "Сток", + "Стонега", + "Стонтон", + "Сторден", + "Стори", + "Сторла", + "Сторм", + "Сторрс", + "Стор", + "Стоттс", + "Стоукс", + "Стоунер", + "Стоунинг", + "Стоуни", + "Стоунхем", + "Стоун", + "Стоутон", + "Стоутс", + "Стоуэлл", + "Стоу", + "Страас", + "Страбан", + "Страйкер", + "Страйк", + "Страм", + "Странделл", + "Страндж", + "Странд", + "Страс", + "Страт", + "Страудс", + "Страуд", + "Стревелл", + "Стрейтс", + "Стрим", + "Стрингер", + "Стринг", + "Стритер", + "Стритман", + "Стритор", + "Стрит", + "Стромс", + "Стронак", + "Стронг", + "Строн", + "Стро", + "Струбл", + "Струтерс", + "Стуяхок", + "Стхекин", + "Стьюбен", + "Стэйтон", + "Стэндиш", + "Стэнли", + "Стэнтон", + "Стэн", + "Стэтхэм", + "Стюард", + "Стюарт", + "Суарес", + "Сувани", + "Суванни", + "Судан", + "Суиден", + "Суидс", + "Суини", + "Суитзер", + "Суит", + "Суишер", + "Суи", + "Сула", + "Султан", + "Сумас", + "Суматра", + "Сумах", + "Сумидеро", + "Суннит", + "Сунол", + "Суол", + "Суомп", + "Суонзей", + "Суонкуортер", + "Суоннаноа", + "Суонси", + "Суонс", + "Суон", + "Суортмор", + "Суотара", + "Супэй", + "Сурдс", + "Сурис", + "Сур", + "Сусана", + "Сутерлин", + "Сутер", + "Суффолк", + "Суэйзи", + "Суэйн", + "Сценик", + "Сьенега", + "Сьоссет", + "Сьюард", + "Сьюарен", + "Сьюзен", + "Сьюпириор", + "Сьют", + "Сьюэлл", + "Сьялес", + "Сэй", + "Сэл", + "Сэмпсон", + "Сэм", + "Сэнгер", + "Сэндвич", + "Сэнди", + "Сюргуэн", + "Табак", + "Табернакль", + "Табер", + "Таблер", + "Табор", + "Тавакони", + "Тавас", + "Таверна", + "Тавернье", + "Тависток", + "Тагус", + "Тазлина", + "Тазуэлл", + "Тайбан", + "Тайби", + "Тайдиаут", + "Тайд", + "Тайер", + "Тайи", + "Тайлер", + "Тайнан", + "Тайнгсборо", + "Тайнер", + "Тайн", + "Тайога", + "Тайонк", + "Тайрон", + "Тайро", + "Тайсонс", + "Тайс", + "Тайтон", + "Тай", + "Такахо", + "Такер", + "Такилма", + "Такна", + "Такома", + "Таконит", + "Такотна", + "Такседо", + "Таку", + "Так", + "Талаксак", + "Талала", + "Талант", + "Талберт", + "Талботтон", + "Талекуа", + "Талиайна", + "Талишик", + "Талия", + "Талкитна", + "Талко", + "Таллабоа", + "Таллахасси", + "Таллахома", + "Талли", + "Таллла", + "Таллмэддж", + "Таллула", + "Талл", + "Талмейдж", + "Талмо", + "Талова", + "Талога", + "Талпа", + "Талса", + "Талты", + "Тамайами", + "Тамаква", + "Тамарак", + "Тамароа", + "Тамаха", + "Тама", + "Тамб", + "Тамина", + "Таммс", + "Тамола", + "Тамора", + "Тамо", + "Тампа", + "Тампико", + "Тамуотер", + "Танакросс", + "Тананак", + "Танана", + "Тангело", + "Тангенс", + "Тангл", + "Тандерболт", + "Тандер", + "Танджипахоа", + "Танжер", + "Тани", + "Танкерсли", + "Танки", + "Танкханнок", + "Танна", + "Таннер", + "Тансборо", + "Тантутулиак", + "Тан", + "Таоламн", + "Таос", + "Тапавинго", + "Таппа", + "Таппен", + "Таппер", + "Тара", + "Тарборо", + "Тарвер", + "Тарентум", + "Тарзан", + "Тариф", + "Тарлтон", + "Тарнов", + "Тарпон", + "Таррантс", + "Тарриолл", + "Тарри", + "Таскаравас", + "Таскахома", + "Таскджи", + "Таскоса", + "Таско", + "Таскумбия", + "Тасселл", + "Тастин", + "Татами", + "Татитлек", + "Таттл", + "Татуайлер", + "Татум", + "Тауи", + "Тауйя", + "Таунер", + "Таунсенд", + "Тауншип", + "Таун", + "Таусанд", + "Таусон", + "Таучет", + "Тауэр", + "Тафтон", + "Тафт", + "Тахола", + "Тахоус", + "Тахо", + "Тач", + "Твейн", + "Твин", + "Твисп", + "Твитти", + "Тводот", + "Теба", + "Тебес", + "Тегарден", + "Тега", + "Теджигуас", + "Тед", + "Теейс", + "Тейбл", + "Тейген", + "Тейлман", + "Тейлор", + "Тейнтер", + "Тейопи", + "Тейт", + "Тейчида", + "Текама", + "Текамсе", + "Текате", + "Теквеста", + "Теквила", + "Текоа", + "Теколота", + "Теконша", + "Текопа", + "Тексаркана", + "Тексико", + "Тексон", + "Текстон", + "Тексхома", + "Телеграф", + "Телемарк", + "Телефон", + "Телида", + "Теллер", + "Теллурид", + "Телл", + "Телогия", + "Телокасет", + "Тельман", + "Тельма", + "Тел", + "Темвик", + "Темекула", + "Темелек", + "Темперанс", + "Темпе", + "Темпиют", + "Темпл", + "Тенафлай", + "Тенаха", + "Тендал", + "Тенейки", + "Тенино", + "Тенмил", + "Теннант", + "Теннент", + "Теннесси", + "Тенниль", + "Теннисон", + "Тенни", + "Тенсо", + "Тенстрайк", + "Тент", + "Тен", + "Тербот", + "Тереза", + "Терерро", + "Тересса", + "Териот", + "Терки", + "Терлингуа", + "Терли", + "Терлок", + "Терлтон", + "Термалито", + "Термал", + "Терминаус", + "Термонд", + "Термонт", + "Термополис", + "Термо", + "Терни", + "Терн", + "Терпин", + "Терраль", + "Терраса", + "Терра", + "Террелл", + "Терре", + "Террил", + "Терри", + "Тертл", + "Тертон", + "Тескотт", + "Теско", + "Тесук", + "Тета", + "Тетер", + "Тете", + "Тетлин", + "Тетония", + "Теуакана", + "Теутополис", + "Техама", + "Техас", + "Техачепи", + "Техлайн", + "Техола", + "Тибби", + "Тиберон", + "Тибодо", + "Тивертон", + "Тиволи", + "Тигард", + "Тигнолл", + "Тигр", + "Тиг", + "Тидс", + "Тики", + "Тикнор", + "Тик", + "Тилден", + "Тилламук", + "Тиллар", + "Тиллатоба", + "Тилледа", + "Тиллер", + "Тилликум", + "Тиллман", + "Тиллсон", + "Тиллс", + "Тилман", + "Тилтон", + "Тилфорд", + "Тимбер", + "Тимблин", + "Тимбо", + "Тимкен", + "Тиммонс", + "Тимнат", + "Тимониум", + "Тимпас", + "Тимпи", + "Тимпсон", + "Тинаджа", + "Тина", + "Тингли", + "Тиндалл", + "Тиндол", + "Тинек", + "Тинли", + "Тинсли", + "Тинсман", + "Тинс", + "Тинта", + "Тинтон", + "Тин", + "Типлер", + "Типпетт", + "Типп", + "Типтон", + "Тира", + "Тиронза", + "Тирон", + "Тискилва", + "Тисл", + "Тис", + "Титикет", + "Титонка", + "Титон", + "Титус", + "Тифтон", + "Тиффани", + "Тиффин", + "Тифф", + "Тиф", + "Тихерас", + "Тичи", + "Тишоминго", + "Ти", + "Тоано", + "Тоаст", + "Тоа", + "Тобик", + "Тобиханна", + "Тобосо", + "Тованда", + "Товаок", + "Тови", + "Товако", + "Тога", + "Тогиак", + "Того", + "Тодд", + "Тойвола", + "Тойя", + "Той", + "Тока", + "Токер", + "Токин", + "Токио", + "Токкоа", + "Токкопола", + "Токлат", + "Токо", + "Токсауэй", + "Токсей", + "Токсук", + "Ток", + "Толар", + "Толедо", + "Толетт", + "Толи", + "Толкинг", + "Толлесон", + "Толл", + "Толоно", + "Толстой", + "Толука", + "Толчестер", + "Тольберт", + "Тольна", + "Тольтек", + "Томагавк", + "Томас", + "Томато", + "Томах", + "Томбал", + "Томе", + "Томкинс", + "Томнолен", + "Томпкинс", + "Томпсон", + "Томсон", + "Том", + "Тонаванда", + "Тонаскет", + "Тонганокси", + "Тонет", + "Тоника", + "Тонкава", + "Тонка", + "Тонопа", + "Тонотосасса", + "Тонсина", + "Тонти", + "Тонтогани", + "Тонтон", + "Тонто", + "Тон", + "Тооел", + "Тоомсборо", + "Топава", + "Топанга", + "Топика", + "Топинаби", + "Топмост", + "Топок", + "Топонас", + "Топпениш", + "Топсейл", + "Топс", + "Топшам", + "Топ", + "Торнилло", + "Торнтон", + "Торн", + "Торонто", + "Торофэр", + "Торо", + "Торп", + "Торранс", + "Торрес", + "Торринг", + "Торри", + "Торсби", + "Тортилла", + "Тор", + "Тосито", + "Тостон", + "Тотова", + "Тоттен", + "Тоукенамон", + "Тоу", + "Тофте", + "Тофти", + "Тоц", + "Трабуко", + "Травелер", + "Траверс", + "Травик", + "Траер", + "Траки", + "Траксолл", + "Тракстон", + "Тракт", + "Трамбауэр", + "Трамбулл", + "Трамвай", + "Траммеллс", + "Траммел", + "Транквиллити", + "Транкос", + "Трансильвания", + "Траппер", + "Трапп", + "Траскотт", + "Траск", + "Трасс", + "Трас", + "Траут", + "Трафальгар", + "Трафант", + "Траф", + "Траянгл", + "Треблок", + "Тревескин", + "Тревлак", + "Тревор", + "Тревос", + "Трего", + "Треже", + "Трейдс", + "Трейд", + "Трейл", + "Трейнор", + "Трейн", + "Трейси", + "Трементина", + "Тремонтон", + "Тремон", + "Тремпило", + "Тренари", + "Тренер", + "Трентон", + "Трент", + "Тресков", + "Трес", + "Триадельфия", + "Триана", + "Трибес", + "Трибуна", + "Тридент", + "Трилби", + "Тримбелл", + "Тримбл", + "Триммер", + "Тримонт", + "Тринидад", + "Тринити", + "Тринуэй", + "Тринчера", + "Трион", + "Триплетт", + "Триплет", + "Триполи", + "Трипп", + "Трир", + "Триумф", + "Три", + "Троап", + "Трой", + "Трокмор", + "Тролл", + "Троммолд", + "Трона", + "Тропик", + "Троски", + "Троттер", + "Трот", + "Трофей", + "Тро", + "Трумэн", + "Трупер", + "Труп", + "Труро", + "Трутмен", + "Трут", + "Трухильо", + "Тручас", + "Тру", + "Трэйл", + "Трэп", + "Тубак", + "Туба", + "Тугау", + "Туичелл", + "Тулалип", + "Тулароса", + "Тулар", + "Тула", + "Тулета", + "Туле", + "Тулия", + "Тулон", + "Тул", + "Тумало", + "Тунас", + "Тундра", + "Тунер", + "Туника", + "Тунис", + "Туннель", + "Тун", + "Тупело", + "Турбо", + "Турин", + "Турман", + "Турон", + "Турс", + "Тур", + "Тусаян", + "Тускалуса", + "Тускарора", + "Тускола", + "Тускулум", + "Тусон", + "Тут", + "Тушка", + "Ту", + "Тчула", + "Тшеттер", + "Тьерра", + "Тьюксбери", + "Тьюлип", + "Тэлбот", + "Тэлли", + "Тэппэн", + "Тэтчер", + "Тёрнер", + "Уаббасика", + "Уайаконда", + "Уайанданч", + "Уайандотт", + "Уайанет", + "Уайарно", + "Уайатт", + "Уайат", + "Уайзмен", + "Уайз", + "Уайлделл", + "Уайлдер", + "Уайлдомар", + "Уайлдорадо", + "Уайлд", + "Уайленд", + "Уайли", + "Уаймер", + "Уаймома", + "Уайодак", + "Уайосена", + "Уайтинг", + "Уайтинс", + "Уайтопитлок", + "Уайтривер", + "Уайттейл", + "Уайтторн", + "Уайтхолл", + "Уайт", + "Уай", + "Уакон", + "Уакота", + "Уакулла", + "Уандерву", + "Уандер", + "Уарба", + "Уаскиш", + "Уауватоса", + "Уаундед", + "Уачита", + "Увада", + "Угашик", + "Уделл", + "Удол", + "Уерт", + "Уибо", + "Уивер", + "Уигам", + "Уиггинс", + "Уидон", + "Уид", + "Уиер", + "Уизатч", + "Уиз", + "Уиилбрахам", + "Уикатанк", + "Уикен", + "Уикершам", + "Уикет", + "Уикомико", + "Уиксом", + "Уиксон", + "Уикс", + "Уик", + "Уилбер", + "Уилбур", + "Уилер", + "Уилесс", + "Уилинг", + "Уили", + "Уилкин", + "Уилкокс", + "Уилксон", + "Уилкс", + "Уиллакоочи", + "Уилламина", + "Уиллард", + "Уиллаха", + "Уиллерни", + "Уиллетт", + "Уиллинг", + "Уиллис", + "Уиллитс", + "Уилли", + "Уиллкокс", + "Уиллмар", + "Уиллоуби", + "Уиллоуик", + "Уиллоу", + "Уиллс", + "Уиллхойт", + "Уилметт", + "Уилмот", + "Уилок", + "Уилсон", + "Уилтон", + "Уильямс", + "Уильям", + "Уил", + "Уимберли", + "Уимблдон", + "Уингер", + "Уинг", + "Уиндер", + "Уиндинг", + "Уинди", + "Уиндом", + "Уиндоу", + "Уинд", + "Уинифред", + "Уинк", + "Уинлок", + "Уиннер", + "Уиннетка", + "Уиннетт", + "Уинни", + "Уинн", + "Уинслоу", + "Уинстед", + "Уинстон", + "Уинтер", + "Уинтон", + "Уинтроп", + "Уинуски", + "Уинфред", + "Уинфри", + "Уинчелл", + "Уин", + "Уиота", + "Уипинг", + "Уиппани", + "Уиппл", + "Уипс", + "Уипхолт", + "Уисакки", + "Уисдом", + "Уисперинг", + "Уиспер", + "Уиссота", + "Уистер", + "Уитакер", + "Уитерби", + "Уитерс", + "Уитлаш", + "Уитли", + "Уитман", + "Уитмен", + "Уитмир", + "Уитмор", + "Уитни", + "Уитон", + "Уитсетт", + "Уиттакер", + "Уиттер", + "Уиттинг", + "Уиттлси", + "Уиттьер", + "Уит", + "Уихокен", + "Уичито", + "Уишек", + "Уишрам", + "Укала", + "Уколо", + "Уланда", + "Улен", + "Улисс", + "Улитик", + "Улога", + "Ултюа", + "Улупалакуа", + "Ульм", + "Умапин", + "Уматилла", + "Умбаргер", + "Умбра", + "Умиат", + "Умикоа", + "Умкумbeт", + "Уналаклит", + "Уналашка", + "Унга", + "Универсальный", + "Университетский", + "Ункас", + "Уобан", + "Уобаш", + "Уовина", + "Уоддинг", + "Уодди", + "Уодена", + "Уодли", + "Уодсворт", + "Уоерика", + "Уоиана", + "Уокеша", + "Уокиган", + "Уокина", + "Уоки", + "Уокомис", + "Уоксахачи", + "Уолан", + "Уолапай", + "Уолворт", + "Уолден", + "Уолдо", + "Уолдрон", + "Уолкотт", + "Уолк", + "Уолла", + "Уоллед", + "Уолленд", + "Уоллер", + "Уоллес", + "Уоллинг", + "Уоллинс", + "Уоллис", + "Уоллова", + "Уоллула", + "Уолнат", + "Уолпол", + "Уолсен", + "Уолска", + "Уолстон", + "Уолтон", + "Уолт", + "Уолум", + "Уолц", + "Уолш", + "Уол", + "Уомелсдорф", + "Уомсаттер", + "Уонбли", + "Уондерус", + "Уондо", + "Уонетт", + "Уонни", + "Уонн", + "Уоншип", + "Уопетон", + "Уорда", + "Уордел", + "Уорден", + "Уорд", + "Уорик", + "Уоринг", + "Уоркс", + "Уорланд", + "Уорлд", + "Уорли", + "Уорман", + "Уормлис", + "Уорм", + "Уорнер", + "Уорн", + "Уоррен", + "Уорринг", + "Уорриор", + "Уоррод", + "Уорр", + "Уорсон", + "Уортен", + "Уортер", + "Уортинг", + "Уортон", + "Уортрас", + "Уорт", + "Уорф", + "Уор", + "Уосатч", + "Уоса", + "Уосика", + "Уосо", + "Уотена", + "Уотери", + "Уотер", + "Уоткинс", + "Уотли", + "Уотова", + "Уотога", + "Уотонга", + "Уотраус", + "Уотсон", + "Уоттен", + "Уоттер", + "Уоттс", + "Уотчунг", + "Уот", + "Уоубей", + "Уоузика", + "Уоукома", + "Уоуконда", + "Уоукоста", + "Уоуманди", + "Уоуна", + "Уоунейки", + "Уоунета", + "Уоупака", + "Уоупан", + "Уоусеон", + "Уоусоки", + "Уочаприг", + "Уошберн", + "Уошинг", + "Уошо", + "Уошта", + "Уошугал", + "Уошула", + "Уошчукна", + "Уошэки", + "Уош", + "Уоюкон", + "Упалко", + "Уппсала", + "Ураван", + "Ураган", + "Урал", + "Урания", + "Урбанна", + "Урбан", + "Урихс", + "Урса", + "Урсина", + "Уск", + "Утика", + "Утопия", + "Утуадо", + "Ушер", + "Уэабло", + "Уэббер", + "Уэбб", + "Уэвахичка", + "Уэверли", + "Уэвока", + "Уэгдал", + "Уэзерби", + "Уэзерли", + "Уэзерсби", + "Уэзер", + "Уэипп", + "Уэйв", + "Уэйд", + "Уэйерхаьюзер", + "Уэйзета", + "Уэйкан", + "Уэйкаруса", + "Уэйка", + "Уэйкенда", + "Уэйкини", + "Уэйкита", + "Уэйкман", + "Уэйколоа", + "Уэйконда", + "Уэйкпала", + "Уэйкросс", + "Уэйк", + "Уэйли", + "Уэйлуку", + "Уэйл", + "Уэйманало", + "Уэймея", + "Уэймсайт", + "Уэймут", + "Уэйнока", + "Уэйнрайт", + "Уэйн", + "Уэйовега", + "Уэйпау", + "Уэйпио", + "Уэйтс", + "Уэйт", + "Уэйхе", + "Уэйэли", + "Уэйэлуа", + "Уэкива", + "Уэлби", + "Уэлда", + "Уэлдона", + "Уэлдон", + "Уэлд", + "Уэлен", + "Уэлитка", + "Уэлком", + "Уэллер", + "Уэллинг", + "Уэлл", + "Уэлока", + "Уэлсли", + "Уэлти", + "Уэлтон", + "Уэлш", + "Уэльс", + "Уэмпум", + "Уэнам", + "Уэнделл", + "Уэндт", + "Уэнона", + "Уэнц", + "Уэолап", + "Уэотт", + "Уэрли", + "Уэрхэм", + "Уэр", + "Уэсилла", + "Уэскан", + "Уэслако", + "Уэсли", + "Уэстби", + "Уэствего", + "Уэствейко", + "Уэстел", + "Уэстли", + "Уэстмор", + "Уэстоак", + "Уэстон", + "Уэстэнд", + "Уэтампка", + "Уэтерс", + "Уэтмор", + "Уэтог", + "Уэтонка", + "Уэтумка", + "Уэуэантик", + "Уэуэла", + "Уэчес", + "Уэши", + "Уяк", + "Фабенс", + "Фабиус", + "Фавн", + "Фаворетта", + "Фагус", + "Фадден", + "Фаддин", + "Файв", + "Файербо", + "Файет", + "Файн", + "Файр", + "Файф", + "Факлер", + "Факсон", + "Фактория", + "Фаллон", + "Фалмут", + "Фальконер", + "Фалькон", + "Фальк", + "Фандон", + "Фанкли", + "Фанк", + "Фаннетт", + "Фаннин", + "Фанси", + "Фанстон", + "Фантер", + "Фан", + "Фарбер", + "Фарго", + "Фарж", + "Фариболт", + "Фарина", + "Фарлинг", + "Фарлин", + "Фарли", + "Фарминг", + "Фарнам", + "Фарнер", + "Фарнс", + "Фарнхем", + "Фаррагут", + "Фаррандс", + "Фаррар", + "Фаррелл", + "Фарр", + "Фарсон", + "Фартинг", + "Фаруэлл", + "Фар", + "Фасселс", + "Фатер", + "Фаук", + "Фаунт", + "Фауст", + "Фахардо", + "Фашинг", + "Феба", + "Федерал", + "Федора", + "Фейт", + "Фелда", + "Фелида", + "Фелиз", + "Феликс", + "Фелипе", + "Фелисити", + "Фелиция", + "Феллоус", + "Феллс", + "Фелпс", + "Фелсентал", + "Фелтон", + "Фелт", + "Фелч", + "Фенвик", + "Фенвуд", + "Феникс", + "Феннимор", + "Фенн", + "Фенс", + "Фентон", + "Фентресс", + "Феодосия", + "Фергус", + "Фергюсон", + "Фердинанд", + "Ферис", + "Ферия", + "Ферли", + "Ферма", + "Фермер", + "Фермина", + "Фернальд", + "Фернандина", + "Фернандо", + "Фернан", + "Фернас", + "Ферни", + "Фернли", + "Ферн", + "Феррелл", + "Феррел", + "Ферридэй", + "Ферринг", + "Феррис", + "Ферри", + "Феррон", + "Феррум", + "Ферсон", + "Ферст", + "Фертайл", + "Фессенден", + "Фетер", + "Феттерс", + "Фея", + "Фе", + "Фиделити", + "Фидель", + "Филадельфия", + "Филбрук", + "Филдинг", + "Филдон", + "Филдэйл", + "Филд", + "Филер", + "Филипп", + "Филлипс", + "Филли", + "Филлмор", + "Филл", + "Филомат", + "Фило", + "Филпот", + "Фил", + "Фингал", + "Фингер", + "Финдли", + "Финикия", + "Финкасл", + "Финлей", + "Финли", + "Финляндия", + "Финни", + "Финч", + "Фиппс", + "Фиреко", + "Фирт", + "Фиск", + "Фитиан", + "Фитлер", + "Фиттс", + "Фитцхью", + "Фитч", + "Фифилд", + "Фицджеральд", + "Фишер", + "Фишинг", + "Фиш", + "Флаглер", + "Флагшток", + "Флаг", + "Флад", + "Флаинг", + "Флакстон", + "Фламбо", + "Фламинго", + "Фланаган", + "Фландрия", + "Фланиган", + "Флауинг", + "Флауэлл", + "Флауэри", + "Флауэр", + "Флашер", + "Флаэрти", + "Флейк", + "Флеминг", + "Фленс", + "Флетчер", + "Флинн", + "Флинт", + "Флиппен", + "Флиппин", + "Флойд", + "Флой", + "Флокс", + "Флок", + "Фломатон", + "Фломот", + "Флом", + "Флорала", + "Флора", + "Флорделл", + "Флоренция", + "Флорес", + "Флориан", + "Флорида", + "Флориен", + "Флорин", + "Флориссант", + "Флорис", + "Флори", + "Флорхем", + "Флор", + "Флоссмур", + "Флот", + "Флоувуд", + "Фло", + "Флукер", + "Флушинг", + "Флэтгап", + "Флэт", + "Фогельс", + "Фойл", + "Фокс", + "Фолгер", + "Фолей", + "Фолз", + "Фолкнер", + "Фолкрофт", + "Фолк", + "Фоллансби", + "Фоллетт", + "Фоллинг", + "Фоллис", + "Фолли", + "Фоллсинг", + "Фолл", + "Фолсом", + "Фолферриас", + "Фольмар", + "Фонда", + "Фонд", + "Фонтана", + "Фонтанель", + "Фонтан", + "Фонтейн", + "Фон", + "Форада", + "Форбинг", + "Форбс", + "Форган", + "Фордайс", + "Фордош", + "Форд", + "Форестон", + "Форест", + "Форж", + "Фористелл", + "Форкед", + "Форк", + "Форман", + "Формоза", + "Формозу", + "Форни", + "Форпо", + "Форрестон", + "Форрест", + "Форсайт", + "Форсан", + "Фортескью", + "Фортин", + "Форти", + "Фортуна", + "Форт", + "Форч", + "Фор", + "Фосетт", + "Фоссил", + "Фоссум", + "Фосс", + "Фостер", + "Фостория", + "Фоулер", + "Фоулкс", + "Фоулс", + "Фрагария", + "Фрайарс", + "Фрайдей", + "Фрай", + "Фрак", + "Франкен", + "Франкес", + "Франклин", + "Франкония", + "Франкфурт", + "Франциско", + "Французский", + "Франческа", + "Фреденс", + "Фредерика", + "Фредерик", + "Фредония", + "Фред", + "Фрейзер", + "Фрейзис", + "Френдли", + "Френдшип", + "Френд", + "Френчглен", + "Френчман", + "Френье", + "Фресно", + "Фреш", + "Фриан", + "Фригольд", + "Фрида", + "Фридли", + "Фридом", + "Фридхем", + "Фриман", + "Фримонт", + "Фрини", + "Фринк", + "Фриона", + "Фрир", + "Фриско", + "Фристо", + "Фрис", + "Фриц", + "Фрич", + "Фрия", + "Фри", + "Фрогмор", + "Фройд", + "Фрона", + "Фронтенак", + "Фронтир", + "Фронтон", + "Фронт", + "Фрост", + "Фрукт", + "Фрута", + "Фрэнк", + "Фрэнсис", + "Фрюз", + "Фрюэн", + "Фуиг", + "Фука", + "Фуквэй", + "Фулкс", + "Фуллер", + "Фултонхем", + "Фултон", + "Фултс", + "Фулшир", + "Фульда", + "Фуньяк", + "Фурман", + "Фурнитур", + "Фус", + "Футхилл", + "Фут", + "Фьерро", + "Фэйсон", + "Фэррис", + "Фэр", + "Хаабстедт", + "Хаайра", + "Хаапподж", + "Хаас", + "Хаббард", + "Хаббел", + "Хабершам", + "Хабра", + "Хавасу", + "Хавиланд", + "Хагаман", + "Хагеман", + "Хагерман", + "Хагер", + "Хагуаль", + "Хадар", + "Хаддам", + "Хадди", + "Хаддок", + "Хаддон", + "Хадж", + "Хадлок", + "Хаена", + "Хазард", + "Хазел", + "Хазен", + "Хазлет", + "Хазл", + "Хайавасси", + "Хайалих", + "Хайат", + "Хайбарт", + "Хайбла", + "Хайдел", + "Хайден", + "Хайдер", + "Хайдрик", + "Хайдс", + "Хайдэуэй", + "Хайку", + "Хайленд", + "Хайле", + "Хайль", + "Хайл", + "Хаймер", + "Хайнс", + "Хайполюксо", + "Хайрам", + "Хайс", + "Хайти", + "Хайтоп", + "Хайтс", + "Хайт", + "Хайуи", + "Хайянис", + "Хайятт", + "Хай", + "Хакабей", + "Хакенсак", + "Хакер", + "Хакетт", + "Хакл", + "Хакни", + "Хакода", + "Хаксли", + "Хакстун", + "Хакс", + "Хак", + "Халава", + "Халаула", + "Халбер", + "Халедон", + "Халейва", + "Халибут", + "Халиимейл", + "Халлам", + "Халлан", + "Халлек", + "Халлетт", + "Халлок", + "Халл", + "Халма", + "Халм", + "Халсит", + "Халстед", + "Халфа", + "Халфмун", + "Халф", + "Хамарок", + "Хамбл", + "Хамден", + "Хамер", + "Хамлер", + "Хаммонд", + "Хамортон", + "Хамфри", + "Ханаан", + "Ханамаулу", + "Ханапепе", + "Ханахан", + "Хана", + "Хангер", + "Хангинг", + "Хангри", + "Хандред", + "Хандшо", + "Ханис", + "Ханкамер", + "Ханнава", + "Ханнас", + "Ханна", + "Ханнеуэлл", + "Ханнок", + "Ханселл", + "Хансен", + "Ханска", + "Ханс", + "Хантер", + "Хантинг", + "Хантли", + "Хантун", + "Хант", + "Хан", + "Хап", + "Харалсон", + "Харахан", + "Хара", + "Харберт", + "Харбин", + "Харбисон", + "Харбор", + "Харвел", + "Харвест", + "Харвис", + "Харвич", + "Харви", + "Харвюлл", + "Харвик", + "Хардвей", + "Хардвик", + "Хардести", + "Харджилл", + "Харджис", + "Хардинг", + "Хардин", + "Харди", + "Хардман", + "Хардтнер", + "Харитон", + "Харкер", + "Харки", + "Харкорт", + "Харлан", + "Харлинген", + "Харли", + "Харлоу", + "Харл", + "Харман", + "Хармар", + "Хармон", + "Харпер", + "Харпстер", + "Харп", + "Харра", + "Харреллс", + "Харриетс", + "Харриетта", + "Харриет", + "Харриман", + "Харрисон", + "Харрис", + "Харрогит", + "Харрод", + "Харролд", + "Хартвелл", + "Хартвик", + "Хартинг", + "Хартлайн", + "Хартленд", + "Хартли", + "Хартман", + "Хартсель", + "Хартсел", + "Хартшорн", + "Харт", + "Харфф", + "Харшо", + "Хар", + "Хасбрук", + "Хасинто", + "Хаскелл", + "Хаскер", + "Хаскинс", + "Хаслетт", + "Хаслет", + "Хаслия", + "Хассель", + "Хассер", + "Хассетт", + "Хассман", + "Хассон", + "Хасс", + "Хастис", + "Хасти", + "Хастлер", + "Хасуэлл", + "Хатауэй", + "Хаттен", + "Хаттерас", + "Хаттиг", + "Хаттисберг", + "Хаттон", + "Хатто", + "Хатчел", + "Хатчинс", + "Хатчин", + "Хатч", + "Хауган", + "Хауген", + "Хаузер", + "Хауз", + "Хауисон", + "Хаука", + "Хаулка", + "Хаустония", + "Хаут", + "Хауула", + "Хауэлл", + "Хау", + "Хаффман", + "Хачита", + "Хач", + "Хашпуккена", + "Хаюйя", + "Хебард", + "Хеббардс", + "Хебброн", + "Хебб", + "Хебер", + "Хебо", + "Хевелтон", + "Хевенер", + "Хеврон", + "Хеглар", + "Хедвиг", + "Хеджес", + "Хедли", + "Хедрик", + "Хед", + "Хеия", + "Хейберн", + "Хейвер", + "Хейворд", + "Хейг", + "Хейзер", + "Хейкок", + "Хейлер", + "Хейли", + "Хейлоу", + "Хейл", + "Хейни", + "Хейнс", + "Хейн", + "Хейс", + "Хейфорк", + "Хей", + "Хекер", + "Хекст", + "Хек", + "Хелен", + "Хеликс", + "Хелметта", + "Хелотс", + "Хелпер", + "Хельмер", + "Хельм", + "Хемби", + "Хемет", + "Хеминг", + "Хемлок", + "Хемпстед", + "Хемп", + "Хем", + "Хенагар", + "Хендерсон", + "Хендли", + "Хендрикс", + "Хендрум", + "Хенефер", + "Хенли", + "Хенлопен", + "Хеннепин", + "Хеннесси", + "Хенникер", + "Хеннинг", + "Хенрик", + "Хенри", + "Хенслер", + "Хеншо", + "Хепберн", + "Хеплер", + "Хеппнер", + "Хербстер", + "Хердл", + "Херд", + "Херендин", + "Херзман", + "Херитедж", + "Херкимер", + "Херлок", + "Хермини", + "Хермис", + "Хермитедж", + "Хермли", + "Хермоза", + "Хермон", + "Херндон", + "Херншо", + "Херн", + "Херон", + "Херо", + "Херрейд", + "Херриман", + "Херринг", + "Херси", + "Херстборн", + "Херст", + "Хертел", + "Херти", + "Херт", + "Хершер", + "Херши", + "Хер", + "Хеслер", + "Хесперия", + "Хесперус", + "Хеттик", + "Хеттингер", + "Хет", + "Хефзиба", + "Хефлин", + "Хиббард", + "Хиббинг", + "Хиберния", + "Хиванни", + "Хивасси", + "Хивасс", + "Хигби", + "Хигганум", + "Хиггин", + "Хиггс", + "Хигли", + "Хида", + "Хидденит", + "Хидден", + "Хикман", + "Хикокс", + "Хикок", + "Хико", + "Хиксон", + "Хикстон", + "Хикс", + "Хилгард", + "Хилдебран", + "Хилдрет", + "Хилд", + "Хиленд", + "Хилинг", + "Хили", + "Хиллер", + "Хиллиард", + "Хиллистер", + "Хиллман", + "Хиллс", + "Хиллтоп", + "Хилмар", + "Хило", + "Хилс", + "Хилти", + "Хилтония", + "Хилтон", + "Хилт", + "Хилшир", + "Хильгер", + "Хильда", + "Хильден", + "Хильдэйл", + "Химера", + "Химес", + "Хингем", + "Хиндман", + "Хиндс", + "Хинкли", + "Хинсон", + "Хинс", + "Хинтон", + "Хинч", + "Хирам", + "Хитон", + "Хиттердал", + "Хитчинс", + "Хитч", + "Хитшманн", + "Хит", + "Хиф", + "Хичита", + "Хичкок", + "Хлопок", + "Хлорид", + "Хоаг", + "Хоадли", + "Хоакин", + "Хобакен", + "Хобан", + "Хобарт", + "Хоббс", + "Хобгуд", + "Хоберг", + "Хобокен", + "Хобос", + "Хобсон", + "Ховардвик", + "Ховен", + "Ховленд", + "Хоганс", + "Хогатза", + "Хог", + "Ходжен", + "Ходжкинс", + "Ходж", + "Ходунки", + "Хоик", + "Хойлтон", + "Хойсинг", + "Хойт", + "Хокай", + "Хока", + "Хокендоква", + "Хокессин", + "Хокиам", + "Хокинс", + "Хокли", + "Хокси", + "Хокс", + "Хок", + "Холаберд", + "Холбрук", + "Холгейт", + "Холдейн", + "Холдеман", + "Холден", + "Холдер", + "Холдинг", + "Холдредж", + "Холидэй", + "Холикачук", + "Холируд", + "Холи", + "Холкат", + "Холкомб", + "Холладей", + "Холлан", + "Холлен", + "Холлидей", + "Холлинс", + "Холлистер", + "Холлис", + "Холли", + "Холлоуэй", + "Холлоу", + "Холл", + "Холман", + "Холмдел", + "Холмс", + "Холм", + "Холопо", + "Холстад", + "Холтон", + "Холт", + "Холуалоа", + "Хольок", + "Хомакр", + "Хома", + "Хомини", + "Хомкрофт", + "Хомленд", + "Хомме", + "Хомосасса", + "Хомстед", + "Хонайдью", + "Хонакер", + "Хонало", + "Хонда", + "Хондо", + "Хонес", + "Хонея", + "Хони", + "Хонкат", + "Хоноай", + "Хонобия", + "Хонокауа", + "Хонок", + "Хоному", + "Хонуапо", + "Хон", + "Хопатконг", + "Хопкин", + "Хопленд", + "Хопфул", + "Хоп", + "Хорас", + "Хорд", + "Хореб", + "Хорикон", + "Хорин", + "Хорнелл", + "Хорнерс", + "Хорник", + "Хорнитос", + "Хорнсби", + "Хорн", + "Хоррел", + "Хорсшу", + "Хорс", + "Хортон", + "Хосе", + "Хоскинс", + "Хосмер", + "Хосперс", + "Хосстон", + "Хосфорд", + "Хос", + "Хотевилла", + "Хотон", + "Хоторн", + "Хотчкисс", + "Хот", + "Хоуб", + "Хоув", + "Хоултон", + "Хоулэнд", + "Хоул", + "Хоума", + "Хоумс", + "Хоум", + "Хоупвелл", + "Хоуп", + "Хоус", + "Хоффман", + "Хохгайм", + "Хоштон", + "Хоэнвальд", + "Хо", + "Хромо", + "Хуана", + "Хуанита", + "Хуан", + "Хуачука", + "Хубер", + "Хувен", + "Хувер", + "Худ", + "Хузум", + "Хукер", + "Хуксетт", + "Хук", + "Хула", + "Хулберт", + "Хулехуа", + "Хумакао", + "Хуммельс", + "Хумонт", + "Хумс", + "Хуна", + "Хункаль", + "Хункос", + "Хунта", + "Хупа", + "Хупер", + "Хупес", + "Хупл", + "Хусатоник", + "Хусик", + "Хусон", + "Хутсон", + "Хут", + "Хуц", + "Хьюго", + "Хьюз", + "Хьюинс", + "Хьюитт", + "Хьюи", + "Хьюлетт", + "Хьюманс", + "Хьюнеми", + "Хьюстон", + "Хью", + "Хэвлок", + "Хэдли", + "Хэд", + "Хэй", + "Хэллоуэлл", + "Хэлси", + "Хэмилл", + "Хэмлин", + "Хэммет", + "Хэммон", + "Хэмпден", + "Хэмпстед", + "Хэмптон", + "Хэмпшир", + "Хэндли", + "Хэнкин", + "Хэнкок", + "Хэнкс", + "Хэнли", + "Хэнлон", + "Хэнсон", + "Хэнс", + "Хэппи", + "Хэрринг", + "Хэтли", + "Хэт", + "Хэш", + "Хяк", + "Хёрли", + "Хёрт", + "Цвингли", + "Цейлон", + "Целль", + "Цемент", + "Центенари", + "Центерич", + "Централия", + "Централь", + "Центрополис", + "Центро", + "Центр", + "Центурия", + "Центури", + "Цилиндр", + "Цилла", + "Цилуоки", + "Циммерман", + "Цинк", + "Цинтрон", + "Цинциннати", + "Цинциннат", + "Цистерна", + "Цитрус", + "Цюрих", + "Чавес", + "Чавис", + "Чагрин", + "Чадборн", + "Чаддс", + "Чази", + "Чайлдерс", + "Чайлдс", + "Чайна", + "Чакбей", + "Чаксон", + "Чак", + "Чалибеейт", + "Чалкаицик", + "Чалко", + "Чаллис", + "Чалмерс", + "Чалметт", + "Чалфант", + "Чалфонт", + "Чама", + "Чамберино", + "Чамберс", + "Чамбли", + "Чамисал", + "Чамплин", + "Чамуа", + "Чана", + "Чандалар", + "Чандлер", + "Чанилют", + "Чанки", + "Чаннахон", + "Чаннел", + "Чанселлор", + "Чапарраль", + "Чапель", + "Чапин", + "Чапман", + "Чаппаква", + "Чарен", + "Чаринг", + "Чарко", + "Чарлак", + "Чарло", + "Чарльз", + "Чарм", + "Чартер", + "Часка", + "Часли", + "Чассахоуицка", + "Частанг", + "Чатава", + "Чатаника", + "Чатем", + "Чатколет", + "Чатмосс", + "Чатом", + "Чато", + "Чатсворт", + "Чаттануга", + "Чаттарой", + "Чаттахучи", + "Чат", + "Чаудрант", + "Чаутоква", + "Чаффи", + "Чебанс", + "Чебойган", + "Чевак", + "Чеверли", + "Чеви", + "Чедвик", + "Чейз", + "Чейни", + "Чейн", + "Чейрс", + "Чекота", + "Челатна", + "Челатчи", + "Челлендж", + "Челмс", + "Челси", + "Чельян", + "Чемберлин", + "Чембер", + "Чемпион", + "Чемулт", + "Ченанго", + "Чена", + "Ченега", + "Ченеква", + "Ченнинг", + "Ченоа", + "Ченовет", + "Ченс", + "Ченхессен", + "Чердан", + "Черити", + "Черитон", + "Чернофски", + "Чероки", + "Черо", + "Черрито", + "Черри", + "Черчилль", + "Черч", + "Чесанинг", + "Чесан", + "Чесапик", + "Чесвик", + "Чесволд", + "Чесилхерст", + "Чесо", + "Честер", + "Честнат", + "Чест", + "Четек", + "Четопа", + "Чеуолла", + "Чеуэла", + "Чефорнак", + "Чехалис", + "Чешир", + "Чиавули", + "Чивинг", + "Чигник", + "Чидестер", + "Чикаго", + "Чикалун", + "Чикамога", + "Чикамо", + "Чикаша", + "Чикен", + "Чикопи", + "Чикора", + "Чико", + "Чиктовага", + "Чилан", + "Чилес", + "Чилили", + "Чили", + "Чилкут", + "Чилликот", + "Чилли", + "Чилокин", + "Чило", + "Чилсон", + "Чилтон", + "Чилхауи", + "Чилчинбито", + "Чимакум", + "Чимни", + "Чиниак", + "Чинкапин", + "Чинкотогу", + "Чино", + "Чинук", + "Чипита", + "Чипли", + "Чиппева", + "Чирено", + "Чир", + "Чисаго", + "Чисана", + "Чисм", + "Чиспа", + "Чисточина", + "Чисхолм", + "Читина", + "Читтенанго", + "Читто", + "Чит", + "Чиф", + "Чиэнь", + "Човин", + "Чойс", + "Чоколоски", + "Чокоуинити", + "Чоктоу", + "Чокто", + "Чок", + "Чолам", + "Чонси", + "Чоппер", + "Чоптанк", + "Чото", + "Чот", + "Чоучилла", + "Чуалар", + "Чуалатин", + "Чуатбалек", + "Чуббак", + "Чуг", + "Чуджиак", + "Чуичу", + "Чула", + "Чулуота", + "Чунчула", + "Чурубуско", + "Чуто", + "Чэппелл", + "Чэффи", + "Шаак", + "Шаббона", + "Шавани", + "Шавано", + "Шаван", + "Шагелек", + "Шадуэлл", + "Шайенн", + "Шайерс", + "Шайлер", + "Шайн", + "Шакопи", + "Шалимар", + "Шаллер", + "Шаллотт", + "Шаллоу", + "Шаллс", + "Шал", + "Шамбо", + "Шамокин", + "Шампань", + "Шамплейн", + "Шамп", + "Шамрок", + "Шандон", + "Шанико", + "Шантильи", + "Шанхай", + "Шардон", + "Шарк", + "Шарлевуа", + "Шарлеруа", + "Шарлотта", + "Шарон", + "Шарпс", + "Шарп", + "Шаста", + "Шатенье", + "Шаум", + "Шафер", + "Шафтер", + "Шафтс", + "Шаффер", + "Шварц", + "Швицер", + "Швенкс", + "Шебойган", + "Шевиот", + "Шевлин", + "Шедд", + "Шейди", + "Шейд", + "Шейкер", + "Шейктулик", + "Шелберн", + "Шелбиана", + "Шелбина", + "Шелби", + "Шелдал", + "Шелдон", + "Шелли", + "Шеллман", + "Шелл", + "Шелокта", + "Шелтер", + "Шелтон", + "Шенандоа", + "Шенеста", + "Шенли", + "Шеннон", + "Шенье", + "Шепперд", + "Шептон", + "Шерак", + "Шерандо", + "Шерард", + "Шерберн", + "Шерборн", + "Шервин", + "Шервуд", + "Шерер", + "Шеридан", + "Шерман", + "Шеррард", + "Шеррилл", + "Шерри", + "Шерродс", + "Шерр", + "Шертц", + "Шеферд", + "Шеф", + "Шешеби", + "Шиввитс", + "Шиверс", + "Шивли", + "Шидлер", + "Шикли", + "Шико", + "Шик", + "Шилд", + "Шиллер", + "Шиллинг", + "Шило", + "Шинглер", + "Шингл", + "Шинер", + "Шиннекок", + "Шинни", + "Шиннс", + "Шинрок", + "Шиоктон", + "Шиота", + "Шиото", + "Шипио", + "Шипли", + "Шиппенс", + "Шиппинг", + "Шипрок", + "Шипшевана", + "Шип", + "Ширли", + "Ширман", + "Широ", + "Ширт", + "Шир", + "Шиссорс", + "Шишмарев", + "Ши", + "Шкипер", + "Школе", + "Шлассер", + "Шлатер", + "Шлезвиг", + "Шли", + "Шнейдер", + "Шнекс", + "Шоап", + "Шобоньер", + "Шовел", + "Шокайо", + "Шолл", + "Шолс", + "Шомон", + "Шомут", + "Шонгалу", + "Шонгопови", + "Шони", + "Шонкин", + "Шонто", + "Шопен", + "Шоп", + "Шоракрс", + "Шортер", + "Шорт", + "Шорхэм", + "Шор", + "Шоул", + "Шоу", + "Шохан", + "Шошин", + "Шошон", + "Шо", + "Шраг", + "Шрам", + "Шредер", + "Шривер", + "Шрив", + "Шрун", + "Шрюс", + "Штегер", + "Штолле", + "Штраф", + "Штутгарт", + "Шуберт", + "Шубута", + "Шугар", + "Шуи", + "Шуквалак", + "Шукс", + "Шулен", + "Шулер", + "Шултер", + "Шульте", + "Шульц", + "Шунгнак", + "Шурц", + "Шут", + "Шучк", + "Шу", + "Шэй", + "Эбби", + "Эбботт", + "Эбенизер", + "Эбенс", + "Эбро", + "Эвангелин", + "Эвант", + "Эван", + "Эварт", + "Эва", + "Эвелет", + "Эвелин", + "Эвен", + "Эверглейд", + "Эвергрин", + "Эверест", + "Эверетт", + "Эверли", + "Эверман", + "Эверсон", + "Эвер", + "Эвинг", + "Эвкалипт", + "Эврика", + "Эвсборо", + "Эгберт", + "Эгглс", + "Эгг", + "Эге", + "Эгиджик", + "Эглон", + "Эгнар", + "Эдвард", + "Эдгард", + "Эдгар", + "Эдгейт", + "Эддинг", + "Эддис", + "Эдди", + "Эдем", + "Эдес", + "Эджерли", + "Эджер", + "Эджли", + "Эджмер", + "Эджмур", + "Эджуорт", + "Эдж", + "Эдина", + "Эдинбург", + "Эдин", + "Эдисон", + "Эдисто", + "Эдкауч", + "Эдлер", + "Эдмес", + "Эдмонд", + "Эдмон", + "Эдмор", + "Эдмунд", + "Эдна", + "Эдом", + "Эдон", + "Эдрой", + "Эдсон", + "Эзели", + "Эзель", + "Эйбелл", + "Эйвери", + "Эйден", + "Эйзл", + "Эйкерс", + "Эйли", + "Эйлмер", + "Эймс", + "Эйнор", + "Эйнсворт", + "Эйота", + "Эйри", + "Эйршир", + "Эйси", + "Эйцен", + "Экалака", + "Эквалити", + "Эквок", + "Экерман", + "Эклектик", + "Экли", + "Эклс", + "Экман", + "Эконом", + "Эконфина", + "Экорс", + "Экор", + "Экрон", + "Экру", + "Экселл", + "Эксельсиор", + "Эксель", + "Эксетер", + "Эксира", + "Экслайн", + "Эксмор", + "Экспорт", + "Эксселло", + "Экстеншн", + "Экстон", + "Эксум", + "Экс", + "Эктор", + "Экуорт", + "Элайл", + "Эланд", + "Элберн", + "Элберон", + "Элберта", + "Элберт", + "Элбер", + "Элбинг", + "Элбоу", + "Элваш", + "Элвер", + "Элвин", + "Элвуд", + "Элгин", + "Элдерон", + "Элдер", + "Элдон", + "Элдорендо", + "Элдред", + "Элдридж", + "Элева", + "Элейн", + "Электра", + "Электрик", + "Элеонора", + "Элефант", + "Элиас", + "Элида", + "Элизабет", + "Элиза", + "Элим", + "Элиот", + "Элис", + "Элиу", + "Эли", + "Элкадер", + "Элкатава", + "Элкин", + "Элко", + "Элкридж", + "Элкхарт", + "Элкхорн", + "Элк", + "Элламар", + "Элла", + "Эллен", + "Эллерб", + "Эллеттс", + "Эллзи", + "Эллиджей", + "Элликотт", + "Эллингер", + "Эллинг", + "Эллин", + "Эллиот", + "Эллисон", + "Эллис", + "Эллори", + "Эллсворт", + "Эллсинор", + "Эллс", + "Элл", + "Элнора", + "Элой", + "Элон", + "Элора", + "Элрод", + "Элроза", + "Элрой", + "Элса", + "Элси", + "Элс", + "Элтон", + "Элум", + "Элферс", + "Элчо", + "Эльба", + "Эльдена", + "Эльдорадо", + "Эльдора", + "Эльма", + "Эльмен", + "Эльмер", + "Эльмира", + "Эльмодель", + "Эльмонт", + "Эльмор", + "Эльмо", + "Эльм", + "Эльсинор", + "Эльсмер", + "Эльсмор", + "Эльтопия", + "Эльфин", + "Эльфрида", + "Эмайт", + "Эмахагуа", + "Эмбаррасс", + "Эмберли", + "Эмблема", + "Эмбри", + "Эмброуз", + "Эмбудо", + "Эмден", + "Эмерадо", + "Эмеральд", + "Эмери", + "Эмерсон", + "Эмигрант", + "Эмигс", + "Эмида", + "Эмили", + "Эминг", + "Эминенс", + "Эми", + "Эмлен", + "Эммалан", + "Эммаус", + "Эмма", + "Эмметс", + "Эмметт", + "Эммет", + "Эммитс", + "Эммонак", + "Эммонс", + "Эммортон", + "Эмпаир", + "Эмпориум", + "Эмпория", + "Эмсворт", + "Эмхаус", + "Эна", + "Энгадин", + "Энгвин", + "Энгельхард", + "Энгл", + "Энг", + "Эндейл", + "Эндерлин", + "Эндерс", + "Эндивор", + "Эндикот", + "Энди", + "Эндовер", + "Эндрю", + "Эндуэлл", + "Энд", + "Эней", + "Энергия", + "Энигма", + "Энид", + "Энистон", + "Энкампмент", + "Энка", + "Энлоу", + "Энло", + "Эннада", + "Эннинг", + "Эннис", + "Энноан", + "Энн", + "Энола", + "Энон", + "Энори", + "Энос", + "Энсайн", + "Энсиналь", + "Энсинитас", + "Энсино", + "Энсли", + "Энсон", + "Энсор", + "Энтерпрайс", + "Энтиэт", + "Энтони", + "Энумкло", + "Энфилд", + "Энхот", + "Энчант", + "Эншент", + "Эн", + "Эолин", + "Эолия", + "Эпворт", + "Эплис", + "Эппинг", + "Эпплби", + "Эпплволд", + "Эпплгейт", + "Эппл", + "Эпси", + "Эрат", + "Эра", + "Эрбакон", + "Эрбанк", + "Эрвин", + "Эрда", + "Эренфельд", + "Эрен", + "Эриду", + "Эрик", + "Эрин", + "Эри", + "Эрлангер", + "Эрландс", + "Эрлимарт", + "Эрлинг", + "Эрли", + "Эрлхем", + "Эрл", + "Эрма", + "Эрнандес", + "Эрнандо", + "Эрнест", + "Эрнул", + "Эрос", + "Эроуз", + "Эррол", + "Эрроу", + "Эрсилдаун", + "Эрскин", + "Эрт", + "Эрхардт", + "Эрхард", + "Эр", + "Эсбон", + "Эскабоса", + "Эскаланте", + "Эскалон", + "Эсканаба", + "Эскатопа", + "Эска", + "Эскобарес", + "Эскобас", + "Эскондида", + "Эскондидо", + "Эскота", + "Эскридж", + "Эсмонд", + "Эсмонт", + "Эсом", + "Эсофея", + "Эспаньола", + "Эспарто", + "Эсперанза", + "Эсперанс", + "Эспино", + "Эспи", + "Эссекс", + "Эссинг", + "Эстакада", + "Эстансиа", + "Эстатула", + "Эстейтс", + "Эстеллайн", + "Эстелл", + "Эстеро", + "Эстер", + "Эсте", + "Эстилл", + "Эсто", + "Эстраль", + "Эстрелла", + "Этвуд", + "Этель", + "Этет", + "Этна", + "Этова", + "Этра", + "Этридж", + "Этта", + "Эттен", + "Эттер", + "Эттлборо", + "Эттрик", + "Этуотер", + "Эудора", + "Эфес", + "Эфир", + "Эфланд", + "Эфрата", + "Эфрейм", + "Эффингэм", + "Эффинг", + "Эффи", + "Эхо", + "Эчета", + "Эшби", + "Эшбёрн", + "Эшвиль", + "Эшли", + "Эшмор", + "Эшпорт", + "Эштон", + "Эш", + "Эяк", + "Юарт", + "Юба", + "Юбилей", + "Ювалд", + "Юджин", + "Юинг", + "Юкейпа", + "Юкиа", + "Юкка", + "Юкон", + "Юлесс", + "Юли", + "Юлония", + "Юма", + "Юнадилла", + "Юникой", + "Юнион", + "Юниополис", + "Юнис", + "Юнити", + "Юнола", + "Юнт", + "Юпитер", + "Юпора", + "Юстас", + "Юстис", + "Юстиция", + "Ютан", + "Юто", + "Ют", + "Юфола", + "Юча", + "Ючианна", + "Юэлл", + "Юэнс", + "Юэн", + "Ябукоа", + "Ява", + "Яго", + "Ядкин", + "Язу", + "Якатага", + "Якатат", + "Якима", + "Якобус", + "Яколт", + "Ялаха", + "Ямайка", + "Ямпай", + "Ямпа", + "Ям", + "Янг", + "Янки", + "Янкопин", + "Янктон", + "Янсен", + "Янси", + "Янтис", + "Януш", + "Ян", + "Ярбо", + "Ярдли", + "Ярд", + "Ярмут", + "Ярнелл", + "Ярроу", + "Яуко", + "Яупон", + "Яурел", + "Яфанк", + "Ячатс" + ] + } ] diff --git a/data/names/zh_CN.json b/data/names/zh_CN.json index 714beff3fa480..cac4bd7f8c803 100644 --- a/data/names/zh_CN.json +++ b/data/names/zh_CN.json @@ -1,3790 +1,3841 @@ [ -{"usage": "nick", "name": "10-4"}, -{"usage": "nick", "name": "遗弃者"}, -{"usage": "nick", "name": "忍耐者"}, -{"usage": "nick", "name": "腹肌"}, -{"usage": "nick", "name": "王牌"}, -{"usage": "nick", "name": "酸"}, -{"usage": "nick", "name": "慢板"}, -{"usage": "nick", "name": "硬石"}, -{"usage": "nick", "name": "海军上将"}, -{"usage": "nick", "name": "永世"}, -{"usage": "nick", "name": "航空"}, -{"usage": "nick", "name": "AF"}, -{"usage": "nick", "name": "之后"}, -{"usage": "nick", "name": "玛瑙"}, -{"usage": "nick", "name": "代理人"}, -{"usage": "nick", "name": "暴力行为"}, -{"usage": "nick", "name": "胃灼热"}, -{"usage": "nick", "name": "渴望"}, -{"usage": "nick", "name": "啊呵"}, -{"usage": "nick", "name": "两手叉腰"}, -{"usage": "nick", "name": "信天翁"}, -{"usage": "nick", "name": "辩才"}, -{"usage": "nick", "name": "全明星"}, -{"usage": "nick", "name": "阿尔法"}, -{"usage": "nick", "name": "业余"}, -{"usage": "nick", "name": "仙酿"}, -{"usage": "nick", "name": "阿门"}, -{"usage": "nick", "name": "美国"}, -{"usage": "nick", "name": "紫水晶"}, -{"usage": "nick", "name": "弹药"}, -{"usage": "nick", "name": "疯狂"}, -{"usage": "nick", "name": "安培"}, -{"usage": "nick", "name": "锚"}, -{"usage": "nick", "name": "天使"}, -{"usage": "nick", "name": "灵魂"}, -{"usage": "nick", "name": "动物"}, -{"usage": "nick", "name": "安妮"}, -{"usage": "nick", "name": "蚂蚁"}, -{"usage": "nick", "name": "孔径"}, -{"usage": "nick", "name": "顶点"}, -{"usage": "nick", "name": "末日"}, -{"usage": "nick", "name": "远地点"}, -{"usage": "nick", "name": "苹果"}, -{"usage": "nick", "name": "苹果"}, -{"usage": "nick", "name": "苹果子"}, -{"usage": "nick", "name": "阿卡"}, -{"usage": "nick", "name": "拱廊"}, -{"usage": "nick", "name": "执政官"}, -{"usage": "nick", "name": "阿肯色州人"}, -{"usage": "nick", "name": "亚奇"}, -{"usage": "nick", "name": "亚奇"}, -{"usage": "nick", "name": "世界末日"}, -{"usage": "nick", "name": "阿斯特罗"}, -{"usage": "nick", "name": "阿特拉斯"}, -{"usage": "nick", "name": "原子"}, -{"usage": "nick", "name": "光辉"}, -{"usage": "nick", "name": "欧洲野牛"}, -{"usage": "nick", "name": "极光"}, -{"usage": "nick", "name": "澳洲人"}, -{"usage": "nick", "name": "澳大利亚"}, -{"usage": "nick", "name": "擅离职守"}, -{"usage": "nick", "name": "斧"}, -{"usage": "nick", "name": "啊"}, -{"usage": "nick", "name": "苍空"}, -{"usage": "nick", "name": "婴儿"}, -{"usage": "nick", "name": "培根"}, -{"usage": "nick", "name": "坏蛋"}, -{"usage": "nick", "name": "獾"}, -{"usage": "nick", "name": "秃头"}, -{"usage": "nick", "name": "弹道"}, -{"usage": "nick", "name": "斑比"}, -{"usage": "nick", "name": "香蕉"}, -{"usage": "nick", "name": "香蕉"}, -{"usage": "nick", "name": "强盗"}, -{"usage": "nick", "name": "潮流"}, -{"usage": "nick", "name": "爆炸"}, -{"usage": "nick", "name": "禁令"}, -{"usage": "nick", "name": "银行家"}, -{"usage": "nick", "name": "女妖"}, -{"usage": "nick", "name": "万岁"}, -{"usage": "nick", "name": "倒刺"}, -{"usage": "nick", "name": "野蛮人"}, -{"usage": "nick", "name": "理发师"}, -{"usage": "nick", "name": "吟游诗人"}, -{"usage": "nick", "name": "男爵"}, -{"usage": "nick", "name": "桶"}, -{"usage": "nick", "name": "害羞鬼"}, -{"usage": "nick", "name": "晒太阳"}, -{"usage": "nick", "name": "古怪鬼"}, -{"usage": "nick", "name": "灯塔"}, -{"usage": "nick", "name": "豆子"}, -{"usage": "nick", "name": "熊"}, -{"usage": "nick", "name": "野兽"}, -{"usage": "nick", "name": "花花公子"}, -{"usage": "nick", "name": "比波普爵士乐"}, -{"usage": "nick", "name": "混乱"}, -{"usage": "nick", "name": "蜜蜂"}, -{"usage": "nick", "name": "牛肉"}, -{"usage": "nick", "name": "哔哔"}, -{"usage": "nick", "name": "哔哔哔哔"}, -{"usage": "nick", "name": "米色"}, -{"usage": "nick", "name": "白鲸"}, -{"usage": "nick", "name": "狂暴"}, -{"usage": "nick", "name": "最好"}, -{"usage": "nick", "name": "贝塔"}, -{"usage": "nick", "name": "大"}, -{"usage": "nick", "name": "大炮"}, -{"usage": "nick", "name": "大人物"}, -{"usage": "nick", "name": "四棱大麦"}, -{"usage": "nick", "name": "多嘴多舌"}, -{"usage": "nick", "name": "大人物"}, -{"usage": "nick", "name": "比哈尔语"}, -{"usage": "nick", "name": "十亿"}, -{"usage": "nick", "name": "必应"}, -{"usage": "nick", "name": "宾果"}, -{"usage": "nick", "name": "自传"}, -{"usage": "nick", "name": "鸟"}, -{"usage": "nick", "name": "小鸟"}, -{"usage": "nick", "name": "主教"}, -{"usage": "nick", "name": "骗子"}, -{"usage": "nick", "name": "位图"}, -{"usage": "nick", "name": "黑色"}, -{"usage": "nick", "name": "21点"}, -{"usage": "nick", "name": "叶片"}, -{"usage": "nick", "name": "爆炸"}, -{"usage": "nick", "name": "爆破工"}, -{"usage": "nick", "name": "大火"}, -{"usage": "nick", "name": "攻其不备"}, -{"usage": "nick", "name": "珠宝"}, -{"usage": "nick", "name": "眨眼"}, -{"usage": "nick", "name": "作品"}, -{"usage": "nick", "name": "泡"}, -{"usage": "nick", "name": "闪电战"}, -{"usage": "nick", "name": "暴雪"}, -{"usage": "nick", "name": "块"}, -{"usage": "nick", "name": "傻子"}, -{"usage": "nick", "name": "金发"}, -{"usage": "nick", "name": "开花"}, -{"usage": "nick", "name": "反吹"}, -{"usage": "nick", "name": "蓝色"}, -{"usage": "nick", "name": "清教徒"}, -{"usage": "nick", "name": "模糊"}, -{"usage": "nick", "name": "脸红"}, -{"usage": "nick", "name": "蟒蛇"}, -{"usage": "nick", "name": "野猪"}, -{"usage": "nick", "name": "身体"}, -{"usage": "nick", "name": "尸袋"}, -{"usage": "nick", "name": "可怕的人"}, -{"usage": "nick", "name": "博洛尼亚"}, -{"usage": "nick", "name": "螺栓"}, -{"usage": "nick", "name": "善意的人"}, -{"usage": "nick", "name": "好伙计"}, -{"usage": "nick", "name": "走鸿运"}, -{"usage": "nick", "name": "债券"}, -{"usage": "nick", "name": "骨"}, -{"usage": "nick", "name": "疯狂的人"}, -{"usage": "nick", "name": "盆景"}, -{"usage": "nick", "name": "奖金"}, -{"usage": "nick", "name": "嘘"}, -{"usage": "nick", "name": "嘘嘘"}, -{"usage": "nick", "name": "赌徒"}, -{"usage": "nick", "name": "繁荣"}, -{"usage": "nick", "name": "砰砰"}, -{"usage": "nick", "name": "皮绳"}, -{"usage": "nick", "name": "靴子"}, -{"usage": "nick", "name": "毛线鞋"}, -{"usage": "nick", "name": "鲍里库"}, -{"usage": "nick", "name": "老板"}, -{"usage": "nick", "name": "加油车"}, -{"usage": "nick", "name": "男孩"}, -{"usage": "nick", "name": "大汉"}, -{"usage": "nick", "name": "大脑"}, -{"usage": "nick", "name": "头脑风暴"}, -{"usage": "nick", "name": "臭娃娃"}, -{"usage": "nick", "name": "勇敢的"}, -{"usage": "nick", "name": "喝采"}, -{"usage": "nick", "name": "巴西"}, -{"usage": "nick", "name": "巴西人"}, -{"usage": "nick", "name": "面包"}, -{"usage": "nick", "name": "打破"}, -{"usage": "nick", "name": "断路器"}, -{"usage": "nick", "name": "断脖子"}, -{"usage": "nick", "name": "砖"}, -{"usage": "nick", "name": "禁闭室"}, -{"usage": "nick", "name": "野马"}, -{"usage": "nick", "name": "青铜"}, -{"usage": "nick", "name": "喧嚣"}, -{"usage": "nick", "name": "压碎机"}, -{"usage": "nick", "name": "平庸可厌的人"}, -{"usage": "nick", "name": "布巴"}, -{"usage": "nick", "name": "泡沫"}, -{"usage": "nick", "name": "泡沫"}, -{"usage": "nick", "name": "布比人"}, -{"usage": "nick", "name": "牛仔"}, -{"usage": "nick", "name": "七叶树"}, -{"usage": "nick", "name": "虫子"}, -{"usage": "nick", "name": "棘手难题"}, -{"usage": "nick", "name": "错误"}, -{"usage": "nick", "name": "身材苗条"}, -{"usage": "nick", "name": "牛"}, -{"usage": "nick", "name": "子弹"}, -{"usage": "nick", "name": "牛眼灯"}, -{"usage": "nick", "name": "熊"}, -{"usage": "nick", "name": "土包子"}, -{"usage": "nick", "name": "兔子"}, -{"usage": "nick", "name": "面包"}, -{"usage": "nick", "name": "小豆子"}, -{"usage": "nick", "name": "破坏者"}, -{"usage": "nick", "name": "喧闹者"}, -{"usage": "nick", "name": "忙人"}, -{"usage": "nick", "name": "爱管闲事的人"}, -{"usage": "nick", "name": "大老粗"}, -{"usage": "nick", "name": "屠夫"}, -{"usage": "nick", "name": "黄油"}, -{"usage": "nick", "name": "娘娘腔"}, -{"usage": "nick", "name": "按钮"}, -{"usage": "nick", "name": "嗡嗡声"}, -{"usage": "nick", "name": "卷心菜"}, -{"usage": "nick", "name": "不和谐"}, -{"usage": "nick", "name": "仙人掌"}, -{"usage": "nick", "name": "凯撒"}, -{"usage": "nick", "name": "咖啡因"}, -{"usage": "nick", "name": "笼子里"}, -{"usage": "nick", "name": "结伙"}, -{"usage": "nick", "name": "法人后裔"}, -{"usage": "nick", "name": "灾难"}, -{"usage": "nick", "name": "石灰"}, -{"usage": "nick", "name": "海中女神"}, -{"usage": "nick", "name": "凸轮"}, -{"usage": "nick", "name": "迷彩色"}, -{"usage": "nick", "name": "可以做"}, -{"usage": "nick", "name": "加拿大"}, -{"usage": "nick", "name": "加拿大人"}, -{"usage": "nick", "name": "金丝雀"}, -{"usage": "nick", "name": "加丹戈"}, -{"usage": "nick", "name": "大炮"}, -{"usage": "nick", "name": "法裔加拿大人"}, -{"usage": "nick", "name": "帽"}, -{"usage": "nick", "name": "雀跃"}, -{"usage": "nick", "name": "卡皮沙巴"}, -{"usage": "nick", "name": "如帽般的"}, -{"usage": "nick", "name": "队长"}, -{"usage": "nick", "name": "焦糖"}, -{"usage": "nick", "name": "意大利裔巴西人"}, -{"usage": "nick", "name": "里约人"}, -{"usage": "nick", "name": "胡萝卜"}, -{"usage": "nick", "name": "携带"}, -{"usage": "nick", "name": "卡萨布兰卡"}, -{"usage": "nick", "name": "赌场"}, -{"usage": "nick", "name": "鲶鱼"}, -{"usage": "nick", "name": "洪都拉斯人"}, -{"usage": "nick", "name": "警告"}, -{"usage": "nick", "name": "雪松"}, -{"usage": "nick", "name": "蜈蚣"}, -{"usage": "nick", "name": "刻瑞斯"}, -{"usage": "nick", "name": "咬马嚼子"}, -{"usage": "nick", "name": "章"}, -{"usage": "nick", "name": "查宾"}, -{"usage": "nick", "name": "花花公子"}, -{"usage": "nick", "name": "战车"}, -{"usage": "nick", "name": "魅力"}, -{"usage": "nick", "name": "喋喋不休"}, -{"usage": "nick", "name": "唠叨的人"}, -{"usage": "nick", "name": "使彻底失败"}, -{"usage": "nick", "name": "厚脸皮"}, -{"usage": "nick", "name": "厚颜无耻"}, -{"usage": "nick", "name": "干杯"}, -{"usage": "nick", "name": "笨蛋"}, -{"usage": "nick", "name": "厨师"}, -{"usage": "nick", "name": "樱桃"}, -{"usage": "nick", "name": "国际象棋"}, -{"usage": "nick", "name": "气"}, -{"usage": "nick", "name": "首席"}, -{"usage": "nick", "name": "墨西哥城人"}, -{"usage": "nick", "name": "寒冷"}, -{"usage": "nick", "name": "中国"}, -{"usage": "nick", "name": "中国人"}, -{"usage": "nick", "name": "嘁嘁喳喳"}, -{"usage": "nick", "name": "谈天说地"}, -{"usage": "nick", "name": "巧克力"}, -{"usage": "nick", "name": "巧克力"}, -{"usage": "nick", "name": "窒息"}, -{"usage": "nick", "name": "火车 "}, -{"usage": "nick", "name": "排"}, -{"usage": "nick", "name": "铬合金"}, -{"usage": "nick", "name": "慢性子"}, -{"usage": "nick", "name": "笑着说"}, -{"usage": "nick", "name": "密友"}, -{"usage": "nick", "name": "笨蛋"}, -{"usage": "nick", "name": "再见"}, -{"usage": "nick", "name": "苹果酒"}, -{"usage": "nick", "name": "辛科"}, -{"usage": "nick", "name": "电影"}, -{"usage": "nick", "name": "肉桂"}, -{"usage": "nick", "name": "密码"}, -{"usage": "nick", "name": "叮当声"}, -{"usage": "nick", "name": "哗众取宠"}, -{"usage": "nick", "name": "爪"}, -{"usage": "nick", "name": "粘土"}, -{"usage": "nick", "name": "双刃大砍刀"}, -{"usage": "nick", "name": "神职人员"}, -{"usage": "nick", "name": "点击"}, -{"usage": "nick", "name": "多云的"}, -{"usage": "nick", "name": "三叶草"}, -{"usage": "nick", "name": "教练"}, -{"usage": "nick", "name": "海边人"}, -{"usage": "nick", "name": "眼镜蛇"}, -{"usage": "nick", "name": "蜘蛛网"}, -{"usage": "nick", "name": "伦敦"}, -{"usage": "nick", "name": "蟑螂"}, -{"usage": "nick", "name": "椰子树"}, -{"usage": "nick", "name": "咖啡"}, -{"usage": "nick", "name": "齿轮"}, -{"usage": "nick", "name": "科希"}, -{"usage": "nick", "name": "线圈"}, -{"usage": "nick", "name": "上校"}, -{"usage": "nick", "name": "昏迷"}, -{"usage": "nick", "name": "组合"}, -{"usage": "nick", "name": "喜剧"}, -{"usage": "nick", "name": "彗星"}, -{"usage": "nick", "name": "公司"}, -{"usage": "nick", "name": "骗子"}, -{"usage": "nick", "name": "浓缩"}, -{"usage": "nick", "name": "海螺"}, -{"usage": "nick", "name": "安慰"}, -{"usage": "nick", "name": "内容"}, -{"usage": "nick", "name": "违禁品"}, -{"usage": "nick", "name": "饼干"}, -{"usage": "nick", "name": "鸡笼"}, -{"usage": "nick", "name": "铜斑蛇"}, -{"usage": "nick", "name": "复制"}, -{"usage": "nick", "name": "螺旋"}, -{"usage": "nick", "name": "活泼的"}, -{"usage": "nick", "name": "宇宙"}, -{"usage": "nick", "name": "棉花"}, -{"usage": "nick", "name": "优惠券"}, -{"usage": "nick", "name": "秘密"}, -{"usage": "nick", "name": "好啊"}, -{"usage": "nick", "name": "郊狼"}, -{"usage": "nick", "name": "蟹"}, -{"usage": "nick", "name": "杰出的人"}, -{"usage": "nick", "name": "崩溃"}, -{"usage": "nick", "name": "火山口"}, -{"usage": "nick", "name": "渴望"}, -{"usage": "nick", "name": "奶油"}, -{"usage": "nick", "name": "持续噪声"}, -{"usage": "nick", "name": "水晶室女"}, -{"usage": "nick", "name": "深红色"}, -{"usage": "nick", "name": "胖子"}, -{"usage": "nick", "name": "十字交叉"}, -{"usage": "nick", "name": "嘶哑声"}, -{"usage": "nick", "name": "鳄鱼"}, -{"usage": "nick", "name": "骗子"}, -{"usage": "nick", "name": "乌鸦"}, -{"usage": "nick", "name": "吃乌鸦的人"}, -{"usage": "nick", "name": "巡洋舰"}, -{"usage": "nick", "name": "面包屑"}, -{"usage": "nick", "name": "面包屑"}, -{"usage": "nick", "name": "旷课乐"}, -{"usage": "nick", "name": "易怒的人"}, -{"usage": "nick", "name": "神秘生物"}, -{"usage": "nick", "name": "四弦吉他"}, -{"usage": "nick", "name": "杜鹃"}, -{"usage": "nick", "name": "土包子"}, -{"usage": "nick", "name": "丘比特"}, -{"usage": "nick", "name": "治愈"}, -{"usage": "nick", "name": "卷毛"}, -{"usage": "nick", "name": "诅咒"}, -{"usage": "nick", "name": "漂亮鬼"}, -{"usage": "nick", "name": "青色"}, -{"usage": "nick", "name": "氰化物"}, -{"usage": "nick", "name": "网络"}, -{"usage": "nick", "name": "旋风"}, -{"usage": "nick", "name": "独眼巨人"}, -{"usage": "nick", "name": "轻拍"}, -{"usage": "nick", "name": "疯狂的人"}, -{"usage": "nick", "name": "匕首"}, -{"usage": "nick", "name": "达拉斯"}, -{"usage": "nick", "name": "该死的人"}, -{"usage": "nick", "name": "危险"}, -{"usage": "nick", "name": "黑暗"}, -{"usage": "nick", "name": "亲爱的人"}, -{"usage": "nick", "name": "飞镖"}, -{"usage": "nick", "name": "数据"}, -{"usage": "nick", "name": "神枪手"}, -{"usage": "nick", "name": "最亲爱的人"}, -{"usage": "nick", "name": "诱饵"}, -{"usage": "nick", "name": "迪"}, -{"usage": "nick", "name": "灵巧的人"}, -{"usage": "nick", "name": "三角洲"}, -{"usage": "nick", "name": "平民"}, -{"usage": "nick", "name": "恶魔"}, -{"usage": "nick", "name": "亡命之徒"}, -{"usage": "nick", "name": "上帝"}, -{"usage": "nick", "name": "魔鬼"}, -{"usage": "nick", "name": "露水"}, -{"usage": "nick", "name": "恶魔"}, -{"usage": "nick", "name": "钻石"}, -{"usage": "nick", "name": "菱形斑纹"}, -{"usage": "nick", "name": "筹码"}, -{"usage": "nick", "name": "骰子"}, -{"usage": "nick", "name": "柴油"}, -{"usage": "nick", "name": "第戎"}, -{"usage": "nick", "name": "左右为难"}, -{"usage": "nick", "name": "昏暗的"}, -{"usage": "nick", "name": "一角银币"}, -{"usage": "nick", "name": "酒窝"}, -{"usage": "nick", "name": "恐龙"}, -{"usage": "nick", "name": "悲惨的人"}, -{"usage": "nick", "name": "挽歌"}, -{"usage": "nick", "name": "迪斯科"}, -{"usage": "nick", "name": "复制品"}, -{"usage": "nick", "name": "头晕"}, -{"usage": "nick", "name": "灯神"}, -{"usage": "nick", "name": "DOA"}, -{"usage": "nick", "name": "医生"}, -{"usage": "nick", "name": "十二关"}, -{"usage": "nick", "name": "狗"}, -{"usage": "nick", "name": "经济低潮"}, -{"usage": "nick", "name": "娃娃脸"}, -{"usage": "nick", "name": "驴"}, -{"usage": "nick", "name": "吸食大麻"}, -{"usage": "nick", "name": "小玩意儿"}, -{"usage": "nick", "name": "厄运"}, -{"usage": "nick", "name": "世界末日"}, -{"usage": "nick", "name": "涂料"}, -{"usage": "nick", "name": "迟钝的"}, -{"usage": "nick", "name": "面貌极相似的人"}, -{"usage": "nick", "name": "Dos"}, -{"usage": "nick", "name": "两面派"}, -{"usage": "nick", "name": "面团"}, -{"usage": "nick", "name": "推土机"}, -{"usage": "nick", "name": "德拉科"}, -{"usage": "nick", "name": "龙"}, -{"usage": "nick", "name": "恐惧"}, -{"usage": "nick", "name": "无畏"}, -{"usage": "nick", "name": "漂移"}, -{"usage": "nick", "name": "流浪者"}, -{"usage": "nick", "name": "机器人"}, -{"usage": "nick", "name": "下降"}, -{"usage": "nick", "name": "德鲁伊"}, -{"usage": "nick", "name": "甜食"}, -{"usage": "nick", "name": "美妙的"}, -{"usage": "nick", "name": "蠢人"}, -{"usage": "nick", "name": "愚蠢的"}, -{"usage": "nick", "name": "小飞象"}, -{"usage": "nick", "name": "饺子"}, -{"usage": "nick", "name": "甘蔗渣"}, -{"usage": "nick", "name": "灰尘"}, -{"usage": "nick", "name": "荷兰"}, -{"usage": "nick", "name": "功率计"}, -{"usage": "nick", "name": "Dys"}, -{"usage": "nick", "name": "东"}, -{"usage": "nick", "name": "容易"}, -{"usage": "nick", "name": "木树"}, -{"usage": "nick", "name": "回声"}, -{"usage": "nick", "name": "月蚀"}, -{"usage": "nick", "name": "星质"}, -{"usage": "nick", "name": "鳗鱼"}, -{"usage": "nick", "name": "书呆子"}, -{"usage": "nick", "name": "自我"}, -{"usage": "nick", "name": "八个"}, -{"usage": "nick", "name": "老八"}, -{"usage": "nick", "name": "爱因斯坦"}, -{"usage": "nick", "name": "二者择一的"}, -{"usage": "nick", "name": "喷射"}, -{"usage": "nick", "name": "大恶魔"}, -{"usage": "nick", "name": "老人"}, -{"usage": "nick", "name": "电"}, -{"usage": "nick", "name": "元素"}, -{"usage": "nick", "name": "精英"}, -{"usage": "nick", "name": "翡翠"}, -{"usage": "nick", "name": "重唱"}, -{"usage": "nick", "name": "结束时间"}, -{"usage": "nick", "name": "安德"}, -{"usage": "nick", "name": "执行者"}, -{"usage": "nick", "name": "谜"}, -{"usage": "nick", "name": "嫉妒"}, -{"usage": "nick", "name": "伊普西龙"}, -{"usage": "nick", "name": "昼夜平分点"}, -{"usage": "nick", "name": "阋神星"}, -{"usage": "nick", "name": "时尚先生"}, -{"usage": "nick", "name": "埃塔"}, -{"usage": "nick", "name": "醚"}, -{"usage": "nick", "name": "词源学"}, -{"usage": "nick", "name": "尤里卡"}, -{"usage": "nick", "name": "欧洲败类"}, -{"usage": "nick", "name": "流亡"}, -{"usage": "nick", "name": "退出"}, -{"usage": "nick", "name": "挂式"}, -{"usage": "nick", "name": "埃克塞特人"}, -{"usage": "nick", "name": "出口"}, -{"usage": "nick", "name": "眼睛"}, -{"usage": "nick", "name": "赏心悦目的人"}, -{"usage": "nick", "name": "脸"}, -{"usage": "nick", "name": "信仰"}, -{"usage": "nick", "name": "猎鹰"}, -{"usage": "nick", "name": "下降"}, -{"usage": "nick", "name": "凡登戈舞"}, -{"usage": "nick", "name": "神奇的"}, -{"usage": "nick", "name": "特别喜爱的人"}, -{"usage": "nick", "name": "恐惧"}, -{"usage": "nick", "name": "不重要的人"}, -{"usage": "nick", "name": "击剑"}, -{"usage": "nick", "name": "雪貂"}, -{"usage": "nick", "name": "留学生"}, -{"usage": "nick", "name": "小提琴"}, -{"usage": "nick", "name": "胡说"}, -{"usage": "nick", "name": "忠诚"}, -{"usage": "nick", "name": "恶魔"}, -{"usage": "nick", "name": "欺瞒"}, -{"usage": "nick", "name": "最后"}, -{"usage": "nick", "name": "手指"}, -{"usage": "nick", "name": "火"}, -{"usage": "nick", "name": "煽动者"}, -{"usage": "nick", "name": "萤火虫"}, -{"usage": "nick", "name": "爆竹"}, -{"usage": "nick", "name": "防火墙"}, -{"usage": "nick", "name": "第一"}, -{"usage": "nick", "name": "鱼"}, -{"usage": "nick", "name": "拳头"}, -{"usage": "nick", "name": "大打出手"}, -{"usage": "nick", "name": "五个"}, -{"usage": "nick", "name": "修复"}, -{"usage": "nick", "name": "饮料"}, -{"usage": "nick", "name": "防弹"}, -{"usage": "nick", "name": "火烈鸟"}, -{"usage": "nick", "name": "闪光"}, -{"usage": "nick", "name": "平地"}, -{"usage": "nick", "name": "平线"}, -{"usage": "nick", "name": "跳蚤"}, -{"usage": "nick", "name": "电影"}, -{"usage": "nick", "name": "阔鳍"}, -{"usage": "nick", "name": "浮动"}, -{"usage": "nick", "name": "佛罗里达"}, -{"usage": "nick", "name": "废料"}, -{"usage": "nick", "name": "狼狈而退"}, -{"usage": "nick", "name": "长笛"}, -{"usage": "nick", "name": "飞"}, -{"usage": "nick", "name": "飞行员"}, -{"usage": "nick", "name": "捕蝇草"}, -{"usage": "nick", "name": "焦点"}, -{"usage": "nick", "name": "箔"}, -{"usage": "nick", "name": "平易近人"}, -{"usage": "nick", "name": "傻瓜"}, -{"usage": "nick", "name": "蠢蛋"}, -{"usage": "nick", "name": "自由自在"}, -{"usage": "nick", "name": "财富"}, -{"usage": "nick", "name": "老四"}, -{"usage": "nick", "name": "福克斯"}, -{"usage": "nick", "name": "喧噪"}, -{"usage": "nick", "name": "法国"}, -{"usage": "nick", "name": "狂"}, -{"usage": "nick", "name": "冻结"}, -{"usage": "nick", "name": "法国人"}, -{"usage": "nick", "name": "摩擦"}, -{"usage": "nick", "name": "星期五"}, -{"usage": "nick", "name": "青蛙"}, -{"usage": "nick", "name": "蛙似的人"}, -{"usage": "nick", "name": "从"}, -{"usage": "nick", "name": "前面"}, -{"usage": "nick", "name": "霜"}, -{"usage": "nick", "name": "油炸"}, -{"usage": "nick", "name": "信息面板"}, -{"usage": "nick", "name": "爱好者"}, -{"usage": "nick", "name": "火焰"}, -{"usage": "nick", "name": "愤怒"}, -{"usage": "nick", "name": "未来"}, -{"usage": "nick", "name": "模糊"}, -{"usage": "nick", "name": "诅咒"}, -{"usage": "nick", "name": "星系"}, -{"usage": "nick", "name": "赌徒"}, -{"usage": "nick", "name": "伽马"}, -{"usage": "nick", "name": "石像鬼"}, -{"usage": "nick", "name": "石榴石"}, -{"usage": "nick", "name": "气囊"}, -{"usage": "nick", "name": "垫片"}, -{"usage": "nick", "name": "加特林"}, -{"usage": "nick", "name": "短吻鳄"}, -{"usage": "nick", "name": "加乌乔人"}, -{"usage": "nick", "name": "齿轮"}, -{"usage": "nick", "name": "齿轮"}, -{"usage": "nick", "name": "壁虎"}, -{"usage": "nick", "name": "古怪的人"}, -{"usage": "nick", "name": "宝石"}, -{"usage": "nick", "name": "双子座"}, -{"usage": "nick", "name": "温柔的"}, -{"usage": "nick", "name": "地理"}, -{"usage": "nick", "name": "基尼"}, -{"usage": "nick", "name": "细菌"}, -{"usage": "nick", "name": "德国人"}, -{"usage": "nick", "name": "德国"}, -{"usage": "nick", "name": "鬼"}, -{"usage": "nick", "name": "千兆"}, -{"usage": "nick", "name": "咯咯地笑"}, -{"usage": "nick", "name": "生姜"}, -{"usage": "nick", "name": "小发明"}, -{"usage": "nick", "name": "短剑"}, -{"usage": "nick", "name": "眩光"}, -{"usage": "nick", "name": "故障"}, -{"usage": "nick", "name": "发光"}, -{"usage": "nick", "name": "暴食"}, -{"usage": "nick", "name": "咬牙切齿"}, -{"usage": "nick", "name": "山羊"}, -{"usage": "nick", "name": "小妖精"}, -{"usage": "nick", "name": "神"}, -{"usage": "nick", "name": "哥斯拉"}, -{"usage": "nick", "name": "黄金"}, -{"usage": "nick", "name": "金"}, -{"usage": "nick", "name": "傀儡"}, -{"usage": "nick", "name": "高尔夫球"}, -{"usage": "nick", "name": "歌利亚"}, -{"usage": "nick", "name": "龚"}, -{"usage": "nick", "name": "花生"}, -{"usage": "nick", "name": "好人"}, -{"usage": "nick", "name": "穿帮"}, -{"usage": "nick", "name": "怪诞的人"}, -{"usage": "nick", "name": "鹅"}, -{"usage": "nick", "name": "起鸡皮疙瘩"}, -{"usage": "nick", "name": "戈尔"}, -{"usage": "nick", "name": "蛇发怪"}, -{"usage": "nick", "name": "轻飘飘的"}, -{"usage": "nick", "name": "伟大的"}, -{"usage": "nick", "name": "重大的"}, -{"usage": "nick", "name": "灰色的"}, -{"usage": "nick", "name": "油脂"}, -{"usage": "nick", "name": "油腻的"}, -{"usage": "nick", "name": "希腊"}, -{"usage": "nick", "name": "贪婪"}, -{"usage": "nick", "name": "希腊人"}, -{"usage": "nick", "name": "绿色"}, -{"usage": "nick", "name": "不懂世故的人"}, -{"usage": "nick", "name": "小鬼"}, -{"usage": "nick", "name": "悲伤"}, -{"usage": "nick", "name": "冷酷的人"}, -{"usage": "nick", "name": "露齿而笑"}, -{"usage": "nick", "name": "发火"}, -{"usage": "nick", "name": "脾气暴躁"}, -{"usage": "nick", "name": "鹰头狮"}, -{"usage": "nick", "name": "瓜希罗人"}, -{"usage": "nick", "name": "番石榴"}, -{"usage": "nick", "name": "诡计"}, -{"usage": "nick", "name": "橡皮软糖"}, -{"usage": "nick", "name": "枪手"}, -{"usage": "nick", "name": "大师"}, -{"usage": "nick", "name": "肠道"}, -{"usage": "nick", "name": "地沟"}, -{"usage": "nick", "name": "吉普赛"}, -{"usage": "nick", "name": "陀螺"}, -{"usage": "nick", "name": "多毛的"}, -{"usage": "nick", "name": "翠鸟"}, -{"usage": "nick", "name": "说唱乐"}, -{"usage": "nick", "name": "锤子"}, -{"usage": "nick", "name": "手"}, -{"usage": "nick", "name": "汉尼拔"}, -{"usage": "nick", "name": "快乐"}, -{"usage": "nick", "name": "硬汉子"}, -{"usage": "nick", "name": "安全帽"}, -{"usage": "nick", "name": "兔子"}, -{"usage": "nick", "name": "野兔脑子"}, -{"usage": "nick", "name": "鸟身女妖"}, -{"usage": "nick", "name": "手斧"}, -{"usage": "nick", "name": "哈瓦那"}, -{"usage": "nick", "name": "安息所"}, -{"usage": "nick", "name": "穷人"}, -{"usage": "nick", "name": "大破坏"}, -{"usage": "nick", "name": "鹰"}, -{"usage": "nick", "name": "鹰眼"}, -{"usage": "nick", "name": "阴霾"}, -{"usage": "nick", "name": "轻率的"}, -{"usage": "nick", "name": "无情的"}, -{"usage": "nick", "name": "热"}, -{"usage": "nick", "name": "开除"}, -{"usage": "nick", "name": "重"}, -{"usage": "nick", "name": "重量级的"}, -{"usage": "nick", "name": "继承人"}, -{"usage": "nick", "name": "赫拉"}, -{"usage": "nick", "name": "悍妇"}, -{"usage": "nick", "name": "应该下地狱的人"}, -{"usage": "nick", "name": "猛鬼追魂"}, -{"usage": "nick", "name": "铁杉"}, -{"usage": "nick", "name": "术士"}, -{"usage": "nick", "name": "全盛时期"}, -{"usage": "nick", "name": "胡桃木"}, -{"usage": "nick", "name": "隐藏"}, -{"usage": "nick", "name": "正午"}, -{"usage": "nick", "name": "高塔"}, -{"usage": "nick", "name": "车辆"}, -{"usage": "nick", "name": "乡下人"}, -{"usage": "nick", "name": "提示"}, -{"usage": "nick", "name": "臀部"}, -{"usage": "nick", "name": "河马"}, -{"usage": "nick", "name": "跛的"}, -{"usage": "nick", "name": "打击"}, -{"usage": "nick", "name": "特大号三明治"}, -{"usage": "nick", "name": "流浪汉"}, -{"usage": "nick", "name": "大杂烩"}, -{"usage": "nick", "name": "废话"}, -{"usage": "nick", "name": "废话"}, -{"usage": "nick", "name": "全垒打"}, -{"usage": "nick", "name": "蜂蜜"}, -{"usage": "nick", "name": "钩"}, -{"usage": "nick", "name": "流氓"}, -{"usage": "nick", "name": "印第安纳州人"}, -{"usage": "nick", "name": "猫头鹰叫"}, -{"usage": "nick", "name": "乡间音乐"}, -{"usage": "nick", "name": "笛"}, -{"usage": "nick", "name": "吸毒成瘾者"}, -{"usage": "nick", "name": "啤酒花"}, -{"usage": "nick", "name": "霍斯"}, -{"usage": "nick", "name": "主机"}, -{"usage": "nick", "name": "热"}, -{"usage": "nick", "name": "热狗"}, -{"usage": "nick", "name": "热的东西"}, -{"usage": "nick", "name": "酒店"}, -{"usage": "nick", "name": "恶作剧"}, -{"usage": "nick", "name": "暑热"}, -{"usage": "nick", "name": "炙手可热的"}, -{"usage": "nick", "name": "胡迪尼"}, -{"usage": "nick", "name": "猎犬"}, -{"usage": "nick", "name": "徘徊"}, -{"usage": "nick", "name": "嚎叫"}, -{"usage": "nick", "name": "狂妄自大"}, -{"usage": "nick", "name": "绿巨人"}, -{"usage": "nick", "name": "骗子"}, -{"usage": "nick", "name": "极出色的人"}, -{"usage": "nick", "name": "疯狗"}, -{"usage": "nick", "name": "饥饿"}, -{"usage": "nick", "name": "饿鬼"}, -{"usage": "nick", "name": "九头蛇"}, -{"usage": "nick", "name": "炒作"}, -{"usage": "nick", "name": "吸毒成瘾的人"}, -{"usage": "nick", "name": "超驱动器"}, -{"usage": "nick", "name": "睡神"}, -{"usage": "nick", "name": "野山羊"}, -{"usage": "nick", "name": "冰"}, -{"usage": "nick", "name": "冰镐"}, -{"usage": "nick", "name": "难闻的"}, -{"usage": "nick", "name": "图标"}, -{"usage": "nick", "name": "偶像"}, -{"usage": "nick", "name": "冰屋"}, -{"usage": "nick", "name": "点火"}, -{"usage": "nick", "name": "图像"}, -{"usage": "nick", "name": "小鬼"}, -{"usage": "nick", "name": "进口"}, -{"usage": "nick", "name": "冲动"}, -{"usage": "nick", "name": "隐身"}, -{"usage": "nick", "name": "不可思议"}, -{"usage": "nick", "name": "印度"}, -{"usage": "nick", "name": "独立"}, -{"usage": "nick", "name": "靛蓝"}, -{"usage": "nick", "name": "印度人"}, -{"usage": "nick", "name": "印第"}, -{"usage": "nick", "name": "地狱"}, -{"usage": "nick", "name": "漆黑的"}, -{"usage": "nick", "name": "检查员"}, -{"usage": "nick", "name": "即时"}, -{"usage": "nick", "name": "介绍"}, -{"usage": "nick", "name": "一点儿"}, -{"usage": "nick", "name": "爱尔兰"}, -{"usage": "nick", "name": "铁"}, -{"usage": "nick", "name": "装甲舰"}, -{"usage": "nick", "name": "铁甲军"}, -{"usage": "nick", "name": "欧文"}, -{"usage": "nick", "name": "岛"}, -{"usage": "nick", "name": "意大利人"}, -{"usage": "nick", "name": "意大利"}, -{"usage": "nick", "name": "痒"}, -{"usage": "nick", "name": "痒"}, -{"usage": "nick", "name": "小个子"}, -{"usage": "nick", "name": "象牙"}, -{"usage": "nick", "name": "豺"}, -{"usage": "nick", "name": "有作为的城市佬"}, -{"usage": "nick", "name": "玉"}, -{"usage": "nick", "name": "贾法"}, -{"usage": "nick", "name": "破旧飞机"}, -{"usage": "nick", "name": "果酱"}, -{"usage": "nick", "name": "一月"}, -{"usage": "nick", "name": "锅盖头"}, -{"usage": "nick", "name": "粗鲁无礼的人"}, -{"usage": "nick", "name": "大块硬糖"}, -{"usage": "nick", "name": "大白鲨"}, -{"usage": "nick", "name": "爵士乐"}, -{"usage": "nick", "name": "绝地武士"}, -{"usage": "nick", "name": "果冻"}, -{"usage": "nick", "name": "果冻"}, -{"usage": "nick", "name": "杰斯特"}, -{"usage": "nick", "name": "杂物"}, -{"usage": "nick", "name": "珠宝"}, -{"usage": "nick", "name": "跳汰机"}, -{"usage": "nick", "name": "拼图"}, -{"usage": "nick", "name": "运动员"}, -{"usage": "nick", "name": "小丑"}, -{"usage": "nick", "name": "快乐的"}, -{"usage": "nick", "name": "乔利"}, -{"usage": "nick", "name": "旅程"}, -{"usage": "nick", "name": "木星"}, -{"usage": "nick", "name": "法官"}, -{"usage": "nick", "name": "神像"}, -{"usage": "nick", "name": "汁"}, -{"usage": "nick", "name": "多汁的"}, -{"usage": "nick", "name": "护符"}, -{"usage": "nick", "name": "庞然大物"}, -{"usage": "nick", "name": "跳"}, -{"usage": "nick", "name": "跳投"}, -{"usage": "nick", "name": "木星"}, -{"usage": "nick", "name": "正义"}, -{"usage": "nick", "name": "凯撒"}, -{"usage": "nick", "name": "卡巴"}, -{"usage": "nick", "name": "坏了的"}, -{"usage": "nick", "name": "扑通"}, -{"usage": "nick", "name": "凯夫拉"}, -{"usage": "nick", "name": "梯形"}, -{"usage": "nick", "name": "胡说"}, -{"usage": "nick", "name": "启动"}, -{"usage": "nick", "name": "孩子"}, -{"usage": "nick", "name": "杀手"}, -{"usage": "nick", "name": "令人扫兴的人"}, -{"usage": "nick", "name": "公斤"}, -{"usage": "nick", "name": "翠鸟"}, -{"usage": "nick", "name": "主要人物"}, -{"usage": "nick", "name": "天命"}, -{"usage": "nick", "name": "吻吻"}, -{"usage": "nick", "name": "猕猴桃"}, -{"usage": "nick", "name": "骑士"}, -{"usage": "nick", "name": "迷药"}, -{"usage": "nick", "name": "结"}, -{"usage": "nick", "name": "指节"}, -{"usage": "nick", "name": "KO"}, -{"usage": "nick", "name": "海怪"}, -{"usage": "nick", "name": "德国人"}, -{"usage": "nick", "name": "花边"}, -{"usage": "nick", "name": "羊排"}, -{"usage": "nick", "name": "拉姆达"}, -{"usage": "nick", "name": "灯"}, -{"usage": "nick", "name": "新水手"}, -{"usage": "nick", "name": "青金石"}, -{"usage": "nick", "name": "云雀"}, -{"usage": "nick", "name": "激光"}, -{"usage": "nick", "name": "熔岩"}, -{"usage": "nick", "name": "铅"}, -{"usage": "nick", "name": "水蛭"}, -{"usage": "nick", "name": "左撇子"}, -{"usage": "nick", "name": "柠檬"}, -{"usage": "nick", "name": "细木匠"}, -{"usage": "nick", "name": "利维坦"}, -{"usage": "nick", "name": "生命线"}, -{"usage": "nick", "name": "光"}, -{"usage": "nick", "name": "闪电"}, -{"usage": "nick", "name": "轻量级"}, -{"usage": "nick", "name": "光年"}, -{"usage": "nick", "name": "利马"}, -{"usage": "nick", "name": "石灰"}, -{"usage": "nick", "name": "英国佬"}, -{"usage": "nick", "name": "跛行"}, -{"usage": "nick", "name": "术语"}, -{"usage": "nick", "name": "链接"}, -{"usage": "nick", "name": "点燃"}, -{"usage": "nick", "name": "蜥蜴"}, -{"usage": "nick", "name": "锁"}, -{"usage": "nick", "name": "封锁"}, -{"usage": "nick", "name": "破伤风"}, -{"usage": "nick", "name": "疯草"}, -{"usage": "nick", "name": "腰"}, -{"usage": "nick", "name": "孤独的人"}, -{"usage": "nick", "name": "丝瓜"}, -{"usage": "nick", "name": "漏洞"}, -{"usage": "nick", "name": "失败者"}, -{"usage": "nick", "name": "情人"}, -{"usage": "nick", "name": "幸运的"}, -{"usage": "nick", "name": "肿块"}, -{"usage": "nick", "name": "吸引"}, -{"usage": "nick", "name": "郁郁葱葱的"}, -{"usage": "nick", "name": "欲望"}, -{"usage": "nick", "name": "琵琶"}, -{"usage": "nick", "name": "勒克斯"}, -{"usage": "nick", "name": "猞猁"}, -{"usage": "nick", "name": "歌词"}, -{"usage": "nick", "name": "麦克"}, -{"usage": "nick", "name": "机器"}, -{"usage": "nick", "name": "麦克"}, -{"usage": "nick", "name": "迈科姆"}, -{"usage": "nick", "name": "疯狗"}, -{"usage": "nick", "name": "鲁莽的人"}, -{"usage": "nick", "name": "马德拉斯人"}, -{"usage": "nick", "name": "大漩涡"}, -{"usage": "nick", "name": "品红色的"}, -{"usage": "nick", "name": "蛆"}, -{"usage": "nick", "name": "魔法"}, -{"usage": "nick", "name": "玛格南"}, -{"usage": "nick", "name": "喜鹊"}, -{"usage": "nick", "name": "少女"}, -{"usage": "nick", "name": "大陆人"}, -{"usage": "nick", "name": "主要"}, -{"usage": "nick", "name": "胡说"}, -{"usage": "nick", "name": "马里布"}, -{"usage": "nick", "name": "庞大的"}, -{"usage": "nick", "name": "疯子"}, -{"usage": "nick", "name": "玻璃球"}, -{"usage": "nick", "name": "火星"}, -{"usage": "nick", "name": "面具"}, -{"usage": "nick", "name": "大洞子"}, -{"usage": "nick", "name": "主人"}, -{"usage": "nick", "name": "玛雅"}, -{"usage": "nick", "name": "五月天"}, -{"usage": "nick", "name": "混乱"}, -{"usage": "nick", "name": "米德"}, -{"usage": "nick", "name": "金牌"}, -{"usage": "nick", "name": "美第奇"}, -{"usage": "nick", "name": "大型"}, -{"usage": "nick", "name": "成熟的"}, -{"usage": "nick", "name": "崩溃"}, -{"usage": "nick", "name": "精神"}, -{"usage": "nick", "name": "猫叫"}, -{"usage": "nick", "name": "佣兵"}, -{"usage": "nick", "name": "商人"}, -{"usage": "nick", "name": "汞"}, -{"usage": "nick", "name": "梅林"}, -{"usage": "nick", "name": "主流"}, -{"usage": "nick", "name": "金属"}, -{"usage": "nick", "name": "密歇根人"}, -{"usage": "nick", "name": "微型"}, -{"usage": "nick", "name": "迈达斯"}, -{"usage": "nick", "name": "蚊"}, -{"usage": "nick", "name": "牛奶"}, -{"usage": "nick", "name": "乳白色的"}, -{"usage": "nick", "name": "几百万"}, -{"usage": "nick", "name": "意志薄弱的人"}, -{"usage": "nick", "name": "最小值"}, -{"usage": "nick", "name": "迷你"}, -{"usage": "nick", "name": "奴才"}, -{"usage": "nick", "name": "小"}, -{"usage": "nick", "name": "薄荷"}, -{"usage": "nick", "name": "海市蜃楼"}, -{"usage": "nick", "name": "混合"}, -{"usage": "nick", "name": "助记符"}, -{"usage": "nick", "name": "麻吉"}, -{"usage": "nick", "name": "魔力"}, -{"usage": "nick", "name": "摩摩"}, -{"usage": "nick", "name": "君主"}, -{"usage": "nick", "name": "周一"}, -{"usage": "nick", "name": "绝对的"}, -{"usage": "nick", "name": "钱"}, -{"usage": "nick", "name": "蒙戈"}, -{"usage": "nick", "name": "绰号"}, -{"usage": "nick", "name": "和尚"}, -{"usage": "nick", "name": "猴子"}, -{"usage": "nick", "name": "怪物"}, -{"usage": "nick", "name": "哞哞叫"}, -{"usage": "nick", "name": "彷徨"}, -{"usage": "nick", "name": "月亮"}, -{"usage": "nick", "name": "笨人"}, -{"usage": "nick", "name": "耽于幻想的"}, -{"usage": "nick", "name": "驼鹿"}, -{"usage": "nick", "name": "睡眠"}, -{"usage": "nick", "name": "电动机"}, -{"usage": "nick", "name": "喋喋不休的人"}, -{"usage": "nick", "name": "鼠标"}, -{"usage": "nick", "name": "Mu"}, -{"usage": "nick", "name": "泥"}, -{"usage": "nick", "name": "泥泞的"}, -{"usage": "nick", "name": "松饼"}, -{"usage": "nick", "name": "穆里根"}, -{"usage": "nick", "name": "提线木偶"}, -{"usage": "nick", "name": "杂音"}, -{"usage": "nick", "name": "武藏"}, -{"usage": "nick", "name": "音乐"}, -{"usage": "nick", "name": "芥末"}, -{"usage": "nick", "name": "杂种狗"}, -{"usage": "nick", "name": "神秘"}, -{"usage": "nick", "name": "神话"}, -{"usage": "nick", "name": "裸体"}, -{"usage": "nick", "name": "保姆"}, -{"usage": "nick", "name": "奈良"}, -{"usage": "nick", "name": "刑警"}, -{"usage": "nick", "name": "令人讨厌的"}, -{"usage": "nick", "name": "导航器"}, -{"usage": "nick", "name": "海军"}, -{"usage": "nick", "name": "不"}, -{"usage": "nick", "name": "星云"}, -{"usage": "nick", "name": "死灵法师"}, -{"usage": "nick", "name": "针"}, -{"usage": "nick", "name": "复仇者"}, -{"usage": "nick", "name": "尼奥"}, -{"usage": "nick", "name": "海王星"}, -{"usage": "nick", "name": "尼禄"}, -{"usage": "nick", "name": "新手"}, -{"usage": "nick", "name": "纽芬兰人"}, -{"usage": "nick", "name": "纽特"}, -{"usage": "nick", "name": "下一个"}, -{"usage": "nick", "name": "镍"}, -{"usage": "nick", "name": "晚上"}, -{"usage": "nick", "name": "夜猫子"}, -{"usage": "nick", "name": "毫无价值的东西"}, -{"usage": "nick", "name": "零"}, -{"usage": "nick", "name": "九个"}, -{"usage": "nick", "name": "消瘦"}, -{"usage": "nick", "name": "忍者"}, -{"usage": "nick", "name": "硝基"}, -{"usage": "nick", "name": "黑色数字"}, -{"usage": "nick", "name": "游牧"}, -{"usage": "nick", "name": "诺德人"}, -{"usage": "nick", "name": "北"}, -{"usage": "nick", "name": "西北"}, -{"usage": "nick", "name": "新星"}, -{"usage": "nick", "name": "11月"}, -{"usage": "nick", "name": "夜之女神"}, -{"usage": "nick", "name": "Nu"}, -{"usage": "nick", "name": "九点"}, -{"usage": "nick", "name": "核弹"}, -{"usage": "nick", "name": "零"}, -{"usage": "nick", "name": "麻木了"}, -{"usage": "nick", "name": "数字"}, -{"usage": "nick", "name": "笨蛋"}, -{"usage": "nick", "name": "肉豆蔻"}, -{"usage": "nick", "name": "坚果"}, -{"usage": "nick", "name": "绿洲"}, -{"usage": "nick", "name": "双簧管"}, -{"usage": "nick", "name": "海洋"}, -{"usage": "nick", "name": "八字步"}, -{"usage": "nick", "name": "辛烷"}, -{"usage": "nick", "name": "几率"}, -{"usage": "nick", "name": "食人魔"}, -{"usage": "nick", "name": "农夫移民"}, -{"usage": "nick", "name": "欧米伽"}, -{"usage": "nick", "name": "预兆"}, -{"usage": "nick", "name": "奥米克戎"}, -{"usage": "nick", "name": "泛光灯"}, -{"usage": "nick", "name": "唯一"}, -{"usage": "nick", "name": "缟玛瑙"}, -{"usage": "nick", "name": "哦"}, -{"usage": "nick", "name": "软泥"}, -{"usage": "nick", "name": "蛋白石"}, -{"usage": "nick", "name": "选择"}, -{"usage": "nick", "name": "作品"}, -{"usage": "nick", "name": "先知"}, -{"usage": "nick", "name": "橙色"}, -{"usage": "nick", "name": "东德"}, -{"usage": "nick", "name": "占卜板"}, -{"usage": "nick", "name": "不法之徒"}, -{"usage": "nick", "name": "结尾部分"}, -{"usage": "nick", "name": "越过"}, -{"usage": "nick", "name": "超速"}, -{"usage": "nick", "name": "覆盖"}, -{"usage": "nick", "name": "牛"}, -{"usage": "nick", "name": "牛津大学"}, -{"usage": "nick", "name": "疼痛"}, -{"usage": "nick", "name": "佩斯利"}, -{"usage": "nick", "name": "朋友"}, -{"usage": "nick", "name": "圣骑士"}, -{"usage": "nick", "name": "穿越"}, -{"usage": "nick", "name": "灵丹妙药"}, -{"usage": "nick", "name": "羽饰"}, -{"usage": "nick", "name": "潘乔"}, -{"usage": "nick", "name": "恐慌"}, -{"usage": "nick", "name": "装甲"}, -{"usage": "nick", "name": "典范"}, -{"usage": "nick", "name": "视差"}, -{"usage": "nick", "name": "烤干"}, -{"usage": "nick", "name": "巴黎"}, -{"usage": "nick", "name": "帕里什"}, -{"usage": "nick", "name": "鹦鹉"}, -{"usage": "nick", "name": "意大利面"}, -{"usage": "nick", "name": "同情"}, -{"usage": "nick", "name": "爱国者"}, -{"usage": "nick", "name": "兵"}, -{"usage": "nick", "name": "和平女神"}, -{"usage": "nick", "name": "和平"}, -{"usage": "nick", "name": "桃子"}, -{"usage": "nick", "name": "孔雀"}, -{"usage": "nick", "name": "花生"}, -{"usage": "nick", "name": "偷看"}, -{"usage": "nick", "name": "矮小的"}, -{"usage": "nick", "name": "鹈鹕"}, -{"usage": "nick", "name": "一分钱"}, -{"usage": "nick", "name": "完美的"}, -{"usage": "nick", "name": "橄榄石"}, -{"usage": "nick", "name": "罪犯"}, -{"usage": "nick", "name": "潮土油"}, -{"usage": "nick", "name": "法老王"}, -{"usage": "nick", "name": "酷毙了"}, -{"usage": "nick", "name": "斐"}, -{"usage": "nick", "name": "惧怕"}, -{"usage": "nick", "name": "圆周率"}, -{"usage": "nick", "name": "泡菜"}, -{"usage": "nick", "name": "泡菜"}, -{"usage": "nick", "name": "皮克"}, -{"usage": "nick", "name": "飘泊流浪的人"}, -{"usage": "nick", "name": "似松的"}, -{"usage": "nick", "name": "小指"}, -{"usage": "nick", "name": "打"}, -{"usage": "nick", "name": "美女照片"}, -{"usage": "nick", "name": "水虎鱼"}, -{"usage": "nick", "name": "手枪"}, -{"usage": "nick", "name": "照片"}, -{"usage": "nick", "name": "披萨"}, -{"usage": "nick", "name": "潇洒"}, -{"usage": "nick", "name": "瘟疫"}, -{"usage": "nick", "name": "格子"}, -{"usage": "nick", "name": "铂"}, -{"usage": "nick", "name": "梅花"}, -{"usage": "nick", "name": "冥王星"}, -{"usage": "nick", "name": "坡"}, -{"usage": "nick", "name": "诗人"}, -{"usage": "nick", "name": "弹簧单高跷"}, -{"usage": "nick", "name": "波因德克斯特"}, -{"usage": "nick", "name": "毒药"}, -{"usage": "nick", "name": "吃玉米糊糊的人"}, -{"usage": "nick", "name": "英国佬"}, -{"usage": "nick", "name": "小马"}, -{"usage": "nick", "name": "马形妖怪"}, -{"usage": "nick", "name": "小孩的"}, -{"usage": "nick", "name": "流行"}, -{"usage": "nick", "name": "砰砰响"}, -{"usage": "nick", "name": "猪排"}, -{"usage": "nick", "name": "布宜诺斯艾利斯人"}, -{"usage": "nick", "name": "豪华"}, -{"usage": "nick", "name": "家常便饭"}, -{"usage": "nick", "name": "战俘"}, -{"usage": "nick", "name": "粉"}, -{"usage": "nick", "name": "权力"}, -{"usage": "nick", "name": "珍贵的"}, -{"usage": "nick", "name": "急板"}, -{"usage": "nick", "name": "椒盐卷饼"}, -{"usage": "nick", "name": "总统"}, -{"usage": "nick", "name": "刺"}, -{"usage": "nick", "name": "骄傲"}, -{"usage": "nick", "name": "主要部"}, -{"usage": "nick", "name": "打印"}, -{"usage": "nick", "name": "棱镜"}, -{"usage": "nick", "name": "奖"}, -{"usage": "nick", "name": "职业选手"}, -{"usage": "nick", "name": "进程"}, -{"usage": "nick", "name": "先知"}, -{"usage": "nick", "name": "道具"}, -{"usage": "nick", "name": "原型"}, -{"usage": "nick", "name": "普西"}, -{"usage": "nick", "name": "神经"}, -{"usage": "nick", "name": "神经病"}, -{"usage": "nick", "name": "布丁"}, -{"usage": "nick", "name": "泡芙"}, -{"usage": "nick", "name": "彪马"}, -{"usage": "nick", "name": "穿孔"}, -{"usage": "nick", "name": "紫色的"}, -{"usage": "nick", "name": "咕噜咕噜声"}, -{"usage": "nick", "name": "推杆式"}, -{"usage": "nick", "name": "PYT"}, -{"usage": "nick", "name": "毒蛇"}, -{"usage": "nick", "name": "庸医"}, -{"usage": "nick", "name": "四方形"}, -{"usage": "nick", "name": "鹌鹑"}, -{"usage": "nick", "name": "地震"}, -{"usage": "nick", "name": "质量"}, -{"usage": "nick", "name": "季度"}, -{"usage": "nick", "name": "类星体"}, -{"usage": "nick", "name": "魁北克"}, -{"usage": "nick", "name": "水银"}, -{"usage": "nick", "name": "金镑"}, -{"usage": "nick", "name": "安静的"}, -{"usage": "nick", "name": "五胞胎"}, -{"usage": "nick", "name": "怪癖"}, -{"usage": "nick", "name": "测试"}, -{"usage": "nick", "name": "现状"}, -{"usage": "nick", "name": "报价"}, -{"usage": "nick", "name": "报价"}, -{"usage": "nick", "name": "辐射"}, -{"usage": "nick", "name": "雷达"}, -{"usage": "nick", "name": "愤怒"}, -{"usage": "nick", "name": "非常亲密的朋友"}, -{"usage": "nick", "name": "衣衫褴褛的"}, -{"usage": "nick", "name": "喷淋设备"}, -{"usage": "nick", "name": "兰博"}, -{"usage": "nick", "name": "摇摇欲坠的"}, -{"usage": "nick", "name": "游骑兵"}, -{"usage": "nick", "name": "狂喜"}, -{"usage": "nick", "name": "流氓"}, -{"usage": "nick", "name": "老鼠"}, -{"usage": "nick", "name": "棘轮"}, -{"usage": "nick", "name": "说胡话"}, -{"usage": "nick", "name": "乌鸦"}, -{"usage": "nick", "name": "夷为平地"}, -{"usage": "nick", "name": "剃须刀"}, -{"usage": "nick", "name": "收割者"}, -{"usage": "nick", "name": "反叛者"}, -{"usage": "nick", "name": "红色的"}, -{"usage": "nick", "name": "乡下人"}, -{"usage": "nick", "name": "重做"}, -{"usage": "nick", "name": "用烟熏"}, -{"usage": "nick", "name": "参考文献"}, -{"usage": "nick", "name": "蒙特雷人"}, -{"usage": "nick", "name": "混音"}, -{"usage": "nick", "name": "复古的"}, -{"usage": "nick", "name": "牧师"}, -{"usage": "nick", "name": "启示"}, -{"usage": "nick", "name": "雷克斯"}, -{"usage": "nick", "name": "雷兹"}, -{"usage": "nick", "name": "犀牛"}, -{"usage": "nick", "name": "柔"}, -{"usage": "nick", "name": "罗德岛人"}, -{"usage": "nick", "name": "跳弹"}, -{"usage": "nick", "name": "谜题"}, -{"usage": "nick", "name": "骑手"}, -{"usage": "nick", "name": "钻井平台"}, -{"usage": "nick", "name": "装配工"}, -{"usage": "nick", "name": "开伞索"}, -{"usage": "nick", "name": "丽兹"}, -{"usage": "nick", "name": "蟑螂"}, -{"usage": "nick", "name": "障碍"}, -{"usage": "nick", "name": "巡回乐队管理员"}, -{"usage": "nick", "name": "路毙的"}, -{"usage": "nick", "name": "漫游"}, -{"usage": "nick", "name": "罗宾"}, -{"usage": "nick", "name": "机器人"}, -{"usage": "nick", "name": "岩石"}, -{"usage": "nick", "name": "火箭"}, -{"usage": "nick", "name": "岩石"}, -{"usage": "nick", "name": "罗杰"}, -{"usage": "nick", "name": "流氓"}, -{"usage": "nick", "name": "顽童"}, -{"usage": "nick", "name": "浪人"}, -{"usage": "nick", "name": "车"}, -{"usage": "nick", "name": "乐观"}, -{"usage": "nick", "name": "口红"}, -{"usage": "nick", "name": "探测器"}, -{"usage": "nick", "name": "伸长脖子看"}, -{"usage": "nick", "name": "红宝石"}, -{"usage": "nick", "name": "小淘气"}, -{"usage": "nick", "name": "俄罗斯"}, -{"usage": "nick", "name": "生锈"}, -{"usage": "nick", "name": "沙沙声"}, -{"usage": "nick", "name": "生锈"}, -{"usage": "nick", "name": "军刀"}, -{"usage": "nick", "name": "马刀"}, -{"usage": "nick", "name": "贤人"}, -{"usage": "nick", "name": "圣人"}, -{"usage": "nick", "name": "火蜥蜴"}, -{"usage": "nick", "name": "盐"}, -{"usage": "nick", "name": "武士"}, -{"usage": "nick", "name": "桑切斯"}, -{"usage": "nick", "name": "旱鸭子"}, -{"usage": "nick", "name": "南卡罗莱那人"}, -{"usage": "nick", "name": "三明治"}, -{"usage": "nick", "name": "圣白托略"}, -{"usage": "nick", "name": "蓝宝石"}, -{"usage": "nick", "name": "大脚野人"}, -{"usage": "nick", "name": "周六"}, -{"usage": "nick", "name": "土星"}, -{"usage": "nick", "name": "野蛮人"}, -{"usage": "nick", "name": "学者"}, -{"usage": "nick", "name": "萨克斯"}, -{"usage": "nick", "name": "无赖汉"}, -{"usage": "nick", "name": "疤痕"}, -{"usage": "nick", "name": "注意力分散"}, -{"usage": "nick", "name": "闪烁"}, -{"usage": "nick", "name": "接穗"}, -{"usage": "nick", "name": "烧焦"}, -{"usage": "nick", "name": "蝎子"}, -{"usage": "nick", "name": "利物浦人"}, -{"usage": "nick", "name": "童子军"}, -{"usage": "nick", "name": "刮"}, -{"usage": "nick", "name": "刮伤"}, -{"usage": "nick", "name": "草率的"}, -{"usage": "nick", "name": "尖锐刺耳"}, -{"usage": "nick", "name": "谣言"}, -{"usage": "nick", "name": "长柄大镰刀"}, -{"usage": "nick", "name": "老二"}, -{"usage": "nick", "name": "第二个"}, -{"usage": "nick", "name": "乌贼"}, -{"usage": "nick", "name": "伺服"}, -{"usage": "nick", "name": "七个"}, -{"usage": "nick", "name": "老七"}, -{"usage": "nick", "name": "阴影"}, -{"usage": "nick", "name": "影子"}, -{"usage": "nick", "name": "粗野的"}, -{"usage": "nick", "name": "摇"}, -{"usage": "nick", "name": "摇摇欲坠的"}, -{"usage": "nick", "name": "鲨鱼"}, -{"usage": "nick", "name": "锋利的"}, -{"usage": "nick", "name": "工作"}, -{"usage": "nick", "name": "酋长"}, -{"usage": "nick", "name": "恶作剧"}, -{"usage": "nick", "name": "治安官"}, -{"usage": "nick", "name": "夏洛克"}, -{"usage": "nick", "name": "机智的"}, -{"usage": "nick", "name": "发光"}, -{"usage": "nick", "name": "闪亮的"}, -{"usage": "nick", "name": "刀"}, -{"usage": "nick", "name": "颤抖"}, -{"usage": "nick", "name": "冲击"}, -{"usage": "nick", "name": "嘘"}, -{"usage": "nick", "name": "矮个子"}, -{"usage": "nick", "name": "表演者"}, -{"usage": "nick", "name": "表演时间"}, -{"usage": "nick", "name": "分解"}, -{"usage": "nick", "name": "虾"}, -{"usage": "nick", "name": "缩小"}, -{"usage": "nick", "name": "洗牌"}, -{"usage": "nick", "name": "西西里人"}, -{"usage": "nick", "name": "西西里"}, -{"usage": "nick", "name": "病"}, -{"usage": "nick", "name": "神经有问题的人"}, -{"usage": "nick", "name": "响尾蛇导弹"}, -{"usage": "nick", "name": "锯齿山"}, -{"usage": "nick", "name": "谢特"}, -{"usage": "nick", "name": "西格玛"}, -{"usage": "nick", "name": "丝绸"}, -{"usage": "nick", "name": "筒仓"}, -{"usage": "nick", "name": "银"}, -{"usage": "nick", "name": "单"}, -{"usage": "nick", "name": "单调的节奏"}, -{"usage": "nick", "name": "塞壬"}, -{"usage": "nick", "name": "六个"}, -{"usage": "nick", "name": "六号"}, -{"usage": "nick", "name": "老六"}, -{"usage": "nick", "name": "十六岁"}, -{"usage": "nick", "name": "匆匆离去"}, -{"usage": "nick", "name": "白鲑"}, -{"usage": "nick", "name": "草图"}, -{"usage": "nick", "name": "皮"}, -{"usage": "nick", "name": "跳过"}, -{"usage": "nick", "name": "队长"}, -{"usage": "nick", "name": "天空"}, -{"usage": "nick", "name": "草率的"}, -{"usage": "nick", "name": "闹剧"}, -{"usage": "nick", "name": "削减"}, -{"usage": "nick", "name": "捉鬼"}, -{"usage": "nick", "name": "雪橇"}, -{"usage": "nick", "name": "睡眠"}, -{"usage": "nick", "name": "困了"}, -{"usage": "nick", "name": "浮油"}, -{"usage": "nick", "name": "苗条的"}, -{"usage": "nick", "name": "麻俐的"}, -{"usage": "nick", "name": "银"}, -{"usage": "nick", "name": "懒惰"}, -{"usage": "nick", "name": "慢"}, -{"usage": "nick", "name": "聪明的"}, -{"usage": "nick", "name": "自作聪明的人"}, -{"usage": "nick", "name": "粉碎"}, -{"usage": "nick", "name": "吞云吐雾的人"}, -{"usage": "nick", "name": "烟雾"}, -{"usage": "nick", "name": "烟雾缭绕的"}, -{"usage": "nick", "name": "光滑的"}, -{"usage": "nick", "name": "涂抹"}, -{"usage": "nick", "name": "混乱"}, -{"usage": "nick", "name": "蛇"}, -{"usage": "nick", "name": "蛇咬伤"}, -{"usage": "nick", "name": "提前"}, -{"usage": "nick", "name": "偷偷摸摸"}, -{"usage": "nick", "name": "爱打喷嚏"}, -{"usage": "nick", "name": "喷嚏鬼"}, -{"usage": "nick", "name": "哼鼻子"}, -{"usage": "nick", "name": "雪"}, -{"usage": "nick", "name": "雪人"}, -{"usage": "nick", "name": "舒适的"}, -{"usage": "nick", "name": "套接字"}, -{"usage": "nick", "name": "柔弱的人"}, -{"usage": "nick", "name": "太阳"}, -{"usage": "nick", "name": "太阳能"}, -{"usage": "nick", "name": "单挑"}, -{"usage": "nick", "name": "声波"}, -{"usage": "nick", "name": "俄克拉荷马州人"}, -{"usage": "nick", "name": "烟尘"}, -{"usage": "nick", "name": "灵魂"}, -{"usage": "nick", "name": "南"}, -{"usage": "nick", "name": "空间"}, -{"usage": "nick", "name": "调皮鬼"}, -{"usage": "nick", "name": "火花"}, -{"usage": "nick", "name": "充满活力的"}, -{"usage": "nick", "name": "麻雀"}, -{"usage": "nick", "name": "产卵"}, -{"usage": "nick", "name": "怪人"}, -{"usage": "nick", "name": "幽灵"}, -{"usage": "nick", "name": "快速"}, -{"usage": "nick", "name": "使人入迷的小说"}, -{"usage": "nick", "name": "斯芬克斯"}, -{"usage": "nick", "name": "香料"}, -{"usage": "nick", "name": "辣的"}, -{"usage": "nick", "name": "蜘蛛"}, -{"usage": "nick", "name": "使整洁"}, -{"usage": "nick", "name": "整洁的"}, -{"usage": "nick", "name": "精神"}, -{"usage": "nick", "name": "碎片"}, -{"usage": "nick", "name": "分裂"}, -{"usage": "nick", "name": "斯波克"}, -{"usage": "nick", "name": "海绵"}, -{"usage": "nick", "name": "体育运动"}, -{"usage": "nick", "name": "现货"}, -{"usage": "nick", "name": "马铃薯"}, -{"usage": "nick", "name": "土豆"}, -{"usage": "nick", "name": "矮胖子"}, -{"usage": "nick", "name": "小队"}, -{"usage": "nick", "name": "清洁刷"}, -{"usage": "nick", "name": "鱿鱼"}, -{"usage": "nick", "name": "乱涂乱画"}, -{"usage": "nick", "name": "喷射"}, -{"usage": "nick", "name": "断奏"}, -{"usage": "nick", "name": "错开"}, -{"usage": "nick", "name": "跟踪狂"}, -{"usage": "nick", "name": "明星"}, -{"usage": "nick", "name": "盯着看"}, -{"usage": "nick", "name": "统计"}, -{"usage": "nick", "name": "统计数据"}, -{"usage": "nick", "name": "钢"}, -{"usage": "nick", "name": "刺痛"}, -{"usage": "nick", "name": "臭鬼"}, -{"usage": "nick", "name": "臭"}, -{"usage": "nick", "name": "针"}, -{"usage": "nick", "name": "石头"}, -{"usage": "nick", "name": "风暴"}, -{"usage": "nick", "name": "故事"}, -{"usage": "nick", "name": "流浪"}, -{"usage": "nick", "name": "拉伸"}, -{"usage": "nick", "name": "前锋"}, -{"usage": "nick", "name": "选通脉冲"}, -{"usage": "nick", "name": "漫步"}, -{"usage": "nick", "name": "闷热的"}, -{"usage": "nick", "name": "眩晕"}, -{"usage": "nick", "name": "出色的人"}, -{"usage": "nick", "name": "豆煮玉米"}, -{"usage": "nick", "name": "糖"}, -{"usage": "nick", "name": "甜言蜜语"}, -{"usage": "nick", "name": "苏丹"}, -{"usage": "nick", "name": "周日"}, -{"usage": "nick", "name": "阳光明媚的"}, -{"usage": "nick", "name": "超级"}, -{"usage": "nick", "name": "超级巨星"}, -{"usage": "nick", "name": "神枪手"}, -{"usage": "nick", "name": "飙升"}, -{"usage": "nick", "name": "斯文加利"}, -{"usage": "nick", "name": "印度教大师"}, -{"usage": "nick", "name": "沼泽"}, -{"usage": "nick", "name": "燕式跳水"}, -{"usage": "nick", "name": "天鹅之歌"}, -{"usage": "nick", "name": "爱打扮的"}, -{"usage": "nick", "name": "斯旺西"}, -{"usage": "nick", "name": "甜蜜的"}, -{"usage": "nick", "name": "甜姐儿"}, -{"usage": "nick", "name": "三心二意"}, -{"usage": "nick", "name": "迅速的"}, -{"usage": "nick", "name": "冒牌货"}, -{"usage": "nick", "name": "开关"}, -{"usage": "nick", "name": "突如其来的变化"}, -{"usage": "nick", "name": "神魂颠倒"}, -{"usage": "nick", "name": "同步"}, -{"usage": "nick", "name": "综合症"}, -{"usage": "nick", "name": "禁忌"}, -{"usage": "nick", "name": "太妃糖"}, -{"usage": "nick", "name": "棕黄色"}, -{"usage": "nick", "name": "探戈"}, -{"usage": "nick", "name": "坦克"}, -{"usage": "nick", "name": "塔巴蒂奥"}, -{"usage": "nick", "name": "焦油"}, -{"usage": "nick", "name": "塔斯马尼亚人"}, -{"usage": "nick", "name": "马铃薯"}, -{"usage": "nick", "name": "刺青"}, -{"usage": "nick", "name": "陶"}, -{"usage": "nick", "name": "技术"}, -{"usage": "nick", "name": "泰迪"}, -{"usage": "nick", "name": "搬弄是非的"}, -{"usage": "nick", "name": "电视"}, -{"usage": "nick", "name": "脾气"}, -{"usage": "nick", "name": "十个"}, -{"usage": "nick", "name": "十元纸币"}, -{"usage": "nick", "name": "南方佬"}, -{"usage": "nick", "name": "苏格兰高地人"}, -{"usage": "nick", "name": "特克斯"}, -{"usage": "nick", "name": "那个人"}, -{"usage": "nick", "name": "西塔"}, -{"usage": "nick", "name": "第三"}, -{"usage": "nick", "name": "渴"}, -{"usage": "nick", "name": "渴了"}, -{"usage": "nick", "name": "十三"}, -{"usage": "nick", "name": "刺"}, -{"usage": "nick", "name": "打"}, -{"usage": "nick", "name": "老三"}, -{"usage": "nick", "name": "雷声"}, -{"usage": "nick", "name": "吓坏了的"}, -{"usage": "nick", "name": "周四"}, -{"usage": "nick", "name": "激情风暴"}, -{"usage": "nick", "name": "雀鸟"}, -{"usage": "nick", "name": "珍闻"}, -{"usage": "nick", "name": "扎染"}, -{"usage": "nick", "name": "老虎"}, -{"usage": "nick", "name": "木材"}, -{"usage": "nick", "name": "小"}, -{"usage": "nick", "name": "泰坦"}, -{"usage": "nick", "name": "蟾蜍"}, -{"usage": "nick", "name": "羊肚菌"}, -{"usage": "nick", "name": "马屁精"}, -{"usage": "nick", "name": "烤面包片"}, -{"usage": "nick", "name": "番茄"}, -{"usage": "nick", "name": "明天"}, -{"usage": "nick", "name": "工具"}, -{"usage": "nick", "name": "亲密的人"}, -{"usage": "nick", "name": "黄玉"}, -{"usage": "nick", "name": "乱七八糟的"}, -{"usage": "nick", "name": "火炬"}, -{"usage": "nick", "name": "鱼雷"}, -{"usage": "nick", "name": "托托"}, -{"usage": "nick", "name": "塔"}, -{"usage": "nick", "name": "悲剧"}, -{"usage": "nick", "name": "火车"}, -{"usage": "nick", "name": "恍惚"}, -{"usage": "nick", "name": "宝"}, -{"usage": "nick", "name": "三弦琴"}, -{"usage": "nick", "name": "技巧"}, -{"usage": "nick", "name": "顽皮的"}, -{"usage": "nick", "name": "棘手的"}, -{"usage": "nick", "name": "三一"}, -{"usage": "nick", "name": "波尔图人"}, -{"usage": "nick", "name": "三倍"}, -{"usage": "nick", "name": "特利克斯"}, -{"usage": "nick", "name": "巨魔"}, -{"usage": "nick", "name": "巨魔"}, -{"usage": "nick", "name": "真理"}, -{"usage": "nick", "name": "茯苓"}, -{"usage": "nick", "name": "周二"}, -{"usage": "nick", "name": "曲调"}, -{"usage": "nick", "name": "涡轮增压"}, -{"usage": "nick", "name": "火鸡"}, -{"usage": "nick", "name": "乌龟"}, -{"usage": "nick", "name": "图斯克"}, -{"usage": "nick", "name": "图图"}, -{"usage": "nick", "name": "卑鄙的人"}, -{"usage": "nick", "name": "嫩枝"}, -{"usage": "nick", "name": "苗条的"}, -{"usage": "nick", "name": "双胞胎"}, -{"usage": "nick", "name": "抽搐"}, -{"usage": "nick", "name": "两个"}, -{"usage": "nick", "name": "小孩子"}, -{"usage": "nick", "name": "台风"}, -{"usage": "nick", "name": "暴君"}, -{"usage": "nick", "name": "超级"}, -{"usage": "nick", "name": "尤比克"}, -{"usage": "nick", "name": "Uh-Oh"}, -{"usage": "nick", "name": "尤克里里琴"}, -{"usage": "nick", "name": "末音节"}, -{"usage": "nick", "name": "超"}, -{"usage": "nick", "name": "棕色的"}, -{"usage": "nick", "name": "暗影"}, -{"usage": "nick", "name": "裁判"}, -{"usage": "nick", "name": "无数的"}, -{"usage": "nick", "name": "失败者"}, -{"usage": "nick", "name": "地下"}, -{"usage": "nick", "name": "撤销"}, -{"usage": "nick", "name": "不可饶恕"}, -{"usage": "nick", "name": "统一的"}, -{"usage": "nick", "name": "单位"}, -{"usage": "nick", "name": "第一"}, -{"usage": "nick", "name": "不可阻挡的"}, -{"usage": "nick", "name": "宇普西龙"}, -{"usage": "nick", "name": "自命不凡的人"}, -{"usage": "nick", "name": "天王星"}, -{"usage": "nick", "name": "冲动"}, -{"usage": "nick", "name": "犹他人"}, -{"usage": "nick", "name": "情人节"}, -{"usage": "nick", "name": "匆匆离开"}, -{"usage": "nick", "name": "鞋面"}, -{"usage": "nick", "name": "蒸汽"}, -{"usage": "nick", "name": "向量"}, -{"usage": "nick", "name": "蔬菜"}, -{"usage": "nick", "name": "维加斯"}, -{"usage": "nick", "name": "报复"}, -{"usage": "nick", "name": "威尼斯"}, -{"usage": "nick", "name": "毒液"}, -{"usage": "nick", "name": "超大杯"}, -{"usage": "nick", "name": "金星"}, -{"usage": "nick", "name": "眩晕"}, -{"usage": "nick", "name": "才能"}, -{"usage": "nick", "name": "否决"}, -{"usage": "nick", "name": "烦恼"}, -{"usage": "nick", "name": "胜利"}, -{"usage": "nick", "name": "取景器"}, -{"usage": "nick", "name": "维京人"}, -{"usage": "nick", "name": "醋"}, -{"usage": "nick", "name": "贵宾"}, -{"usage": "nick", "name": "毒蛇"}, -{"usage": "nick", "name": "伏特"}, -{"usage": "nick", "name": "志愿者"}, -{"usage": "nick", "name": "伏都教"}, -{"usage": "nick", "name": "沃克斯"}, -{"usage": "nick", "name": "秃鹰"}, -{"usage": "nick", "name": "瓦克"}, -{"usage": "nick", "name": "华夫饼"}, -{"usage": "nick", "name": "醒来"}, -{"usage": "nick", "name": "沃克"}, -{"usage": "nick", "name": "壁花"}, -{"usage": "nick", "name": "减弱"}, -{"usage": "nick", "name": "水性杨花的女人"}, -{"usage": "nick", "name": "战争"}, -{"usage": "nick", "name": "监狱长"}, -{"usage": "nick", "name": "军阀"}, -{"usage": "nick", "name": "征途"}, -{"usage": "nick", "name": "疣猪"}, -{"usage": "nick", "name": "黄鼠狼"}, -{"usage": "nick", "name": "楔子"}, -{"usage": "nick", "name": "周三"}, -{"usage": "nick", "name": "怪人"}, -{"usage": "nick", "name": "西德佬"}, -{"usage": "nick", "name": "西"}, -{"usage": "nick", "name": "西部人"}, -{"usage": "nick", "name": "西部佬"}, -{"usage": "nick", "name": "老生常谈的"}, -{"usage": "nick", "name": "反复无常"}, -{"usage": "nick", "name": "旋风"}, -{"usage": "nick", "name": "威士忌"}, -{"usage": "nick", "name": "耳语"}, -{"usage": "nick", "name": "白色"}, -{"usage": "nick", "name": "奇才"}, -{"usage": "nick", "name": "威兹班"}, -{"usage": "nick", "name": "哇"}, -{"usage": "nick", "name": "为什么"}, -{"usage": "nick", "name": "小部件"}, -{"usage": "nick", "name": "摆动"}, -{"usage": "nick", "name": "野生"}, -{"usage": "nick", "name": "莽撞的人"}, -{"usage": "nick", "name": "懦弱的"}, -{"usage": "nick", "name": "饶舌之人"}, -{"usage": "nick", "name": "翅膀"}, -{"usage": "nick", "name": "剔出"}, -{"usage": "nick", "name": "惨败"}, -{"usage": "nick", "name": "线"}, -{"usage": "nick", "name": "电线"}, -{"usage": "nick", "name": "自以为聪明者"}, -{"usage": "nick", "name": "向导"}, -{"usage": "nick", "name": "狼"}, -{"usage": "nick", "name": "狼人"}, -{"usage": "nick", "name": "想知道"}, -{"usage": "nick", "name": "书呆子"}, -{"usage": "nick", "name": "旺卡"}, -{"usage": "nick", "name": "靠不住的"}, -{"usage": "nick", "name": "汪"}, -{"usage": "nick", "name": "兰开夏人"}, -{"usage": "nick", "name": "老王"}, -{"usage": "nick", "name": "词"}, -{"usage": "nick", "name": "蠕虫"}, -{"usage": "nick", "name": "哇"}, -{"usage": "nick", "name": "幽灵"}, -{"usage": "nick", "name": "忿怒"}, -{"usage": "nick", "name": "造成"}, -{"usage": "nick", "name": "沉船"}, -{"usage": "nick", "name": "肇事者"}, -{"usage": "nick", "name": "坏蛋"}, -{"usage": "nick", "name": "韩国帝王"}, -{"usage": "nick", "name": "Xi"}, -{"usage": "nick", "name": "x射线"}, -{"usage": "nick", "name": "Yadda Yadda"}, -{"usage": "nick", "name": "雅虎"}, -{"usage": "nick", "name": "山药"}, -{"usage": "nick", "name": "美国佬"}, -{"usage": "nick", "name": "杨基佬"}, -{"usage": "nick", "name": "亚迪"}, -{"usage": "nick", "name": "雅特"}, -{"usage": "nick", "name": "黄色的"}, -{"usage": "nick", "name": "懦夫"}, -{"usage": "nick", "name": "金翼啄木鸟"}, -{"usage": "nick", "name": "雪人"}, -{"usage": "nick", "name": "迎泽"}, -{"usage": "nick", "name": "乡巴佬"}, -{"usage": "nick", "name": "密歇根上半岛人"}, -{"usage": "nick", "name": "年轻人"}, -{"usage": "nick", "name": "悠悠球"}, -{"usage": "nick", "name": "令人反感的"}, -{"usage": "nick", "name": "百胜百胜"}, -{"usage": "nick", "name": "精力"}, -{"usage": "nick", "name": "斑马"}, -{"usage": "nick", "name": "老Z"}, -{"usage": "nick", "name": "时代精神"}, -{"usage": "nick", "name": "禅"}, -{"usage": "nick", "name": "天顶"}, -{"usage": "nick", "name": "零"}, -{"usage": "nick", "name": "泽塔"}, -{"usage": "nick", "name": "急转"}, -{"usage": "nick", "name": "瑞格"}, -{"usage": "nick", "name": "锯齿形"}, -{"usage": "nick", "name": "无价值之物"}, -{"usage": "nick", "name": "邮政编码"}, -{"usage": "nick", "name": "活泼的"}, -{"usage": "nick", "name": "星座"}, -{"usage": "nick", "name": "区"}, -{"usage": "nick", "name": "巴拿马美国人"}, -{"usage": "nick", "name": "巴拿马美国佬"}, -{"usage": "nick", "name": "不省人事"}, -{"usage": "nick", "name": "变焦"}, -{"usage": "backer", "gender": "male", "name": "阿杰伊·钱德拉"}, -{"usage": "backer", "gender": "male", "name": "亚历山大·德米特里耶夫"}, -{"usage": "backer", "gender": "male", "name": "亚历山大·克里奇科"}, -{"usage": "backer", "gender": "male", "name": "亚历山大·威克斯"}, -{"usage": "backer", "gender": "unisex", "name": "阿尔法伊"}, -{"usage": "backer", "gender": "male", "name": "安德鲁·瓜斯泰拉"}, -{"usage": "backer", "gender": "male", "name": "安德鲁·韦伯斯特"}, -{"usage": "backer", "gender": "male", "name": "安东尼·伯利"}, -{"usage": "backer", "gender": "male", "name": "安东·斯特鲁伊克"}, -{"usage": "backer", "gender": "unisex", "name": "阿克"}, -{"usage": "backer", "gender": "male", "name": "阿格斯·M.·洛厄尔"}, -{"usage": "backer", "gender": "male", "name": "阿切尔"}, -{"usage": "backer", "gender": "unisex", "name": "阿童木"}, -{"usage": "backer", "gender": "male", "name": "本杰明·里普洛格尔"}, -{"usage": "backer", "gender": "male", "name": "本·麦克卢尔"}, -{"usage": "backer", "gender": "male", "name": "博巴洛特"}, -{"usage": "backer", "gender": "male", "name": "布莱恩·戴维森"}, -{"usage": "backer", "gender": "male", "name": "布莱恩·霍斯特曼"}, -{"usage": "backer", "gender": "female", "name": "夏洛特·霍尔"}, -{"usage": "backer", "gender": "male", "name": "克里斯多夫·福林"}, -{"usage": "backer", "gender": "male", "name": "克里斯·沃特金斯"}, -{"usage": "backer", "gender": "unisex", "name": "克莱·福克森塔尔"}, -{"usage": "backer", "gender": "male", "name": "加里同志"}, -{"usage": "backer", "gender": "male", "name": "克雷格·弗格森"}, -{"usage": "backer", "gender": "male", "name": "克雷格·马顿"}, -{"usage": "backer", "gender": "male", "name": "达喀尔"}, -{"usage": "backer", "gender": "male", "name": "丹尼尔·安菲尔德"}, -{"usage": "backer", "gender": "male", "name": "丹尼尔·丹尼希"}, -{"usage": "backer", "gender": "male", "name": "戴夫·斯蒂尔德文森"}, -{"usage": "backer", "gender": "male", "name": "迪克·瑟吉斯"}, -{"usage": "backer", "gender": "unisex", "name": "多利奥"}, -{"usage": "backer", "gender": "male", "name": "道格·奥格登"}, -{"usage": "backer", "gender": "male", "name": "希尔克·范德沙夫博士"}, -{"usage": "backer", "gender": "unisex", "name": "达斯克·高"}, -{"usage": "backer", "gender": "female", "name": "埃利·福里斯特·基顿"}, -{"usage": "backer", "gender": "male", "name": "恩里克·阿隆索"}, -{"usage": "backer", "gender": "male", "name": "埃里克·鲁萨克"}, -{"usage": "backer", "gender": "male", "name": "埃里克·汉格布勒"}, -{"usage": "backer", "gender": "female", "name": "伊芙琳·弗罗斯特"}, -{"usage": "backer", "gender": "male", "name": "菲利克斯·阿普林"}, -{"usage": "backer", "gender": "male", "name": "菲利克斯·福克斯"}, -{"usage": "backer", "gender": "unisex", "name": "弗罗森·福克希"}, -{"usage": "backer", "gender": "male", "name": "加百利·唐"}, -{"usage": "backer", "gender": "unisex", "name": "加楚"}, -{"usage": "backer", "gender": "female", "name": "格伦·卢恩塞特"}, -{"usage": "backer", "gender": "male", "name": "纪尧姆·勒比格特"}, -{"usage": "backer", "gender": "male", "name": "古尔法斯·马戈洛克"}, -{"usage": "backer", "gender": "male", "name": "古尔戈·哈克波夫"}, -{"usage": "backer", "gender": "male", "name": "汉克·莱克拉姆"}, -{"usage": "backer", "gender": "female", "name": "哈瑞斯·瑟本"}, -{"usage": "backer", "gender": "male", "name": "荷马"}, -{"usage": "backer", "gender": "male", "name": "休伯特·休斯"}, -{"usage": "backer", "gender": "male", "name": "休伯特·罗登博"}, -{"usage": "backer", "gender": "male", "name": "伊恩·克利尔"}, -{"usage": "backer", "gender": "male", "name": "詹姆斯·肯尼"}, -{"usage": "backer", "gender": "male", "name": "杰夫·梅杰"}, -{"usage": "backer", "gender": "male", "name": "延斯·贝克"}, -{"usage": "backer", "gender": "male", "name": "热雷米亚斯·卜拉布"}, -{"usage": "backer", "gender": "male", "name": "吉姆·兰德龙"}, -{"usage": "backer", "gender": "male", "name": "吉姆·韦弗"}, -{"usage": "backer", "gender": "male", "name": "约翰·恩尼恩"}, -{"usage": "backer", "gender": "male", "name": "约翰·哈梅尔"}, -{"usage": "backer", "gender": "male", "name": "约瑟夫·扎卡维·巴特利特"}, -{"usage": "backer", "gender": "male", "name": "约书亚·扬"}, -{"usage": "backer", "gender": "male", "name": "贾斯汀·麦金农"}, -{"usage": "backer", "gender": "male", "name": "卡米尔·克里维森"}, -{"usage": "backer", "gender": "male", "name": "黑川健二"}, -{"usage": "backer", "gender": "male", "name": "凯文·格拉索"}, -{"usage": "backer", "gender": "male", "name": "凯文·威特"}, -{"usage": "backer", "gender": "male", "name": "哈立德·拉希德"}, -{"usage": "backer", "gender": "unisex", "name": "拉克兰"}, -{"usage": "backer", "gender": "unisex", "name": "拉瑞安"}, -{"usage": "backer", "gender": "male", "name": "劳里·丹尼斯"}, -{"usage": "backer", "gender": "male", "name": "列昂尼德·瓦斯莱夫"}, -{"usage": "backer", "gender": "male", "name": "列弗·米希金"}, -{"usage": "backer", "gender": "unisex", "name": "马尼柯·德帕赛文"}, -{"usage": "backer", "gender": "male", "name": "马克·'坏男孩'·巴多伊"}, -{"usage": "backer", "gender": "male", "name": "马丁·斯文松"}, -{"usage": "backer", "gender": "male", "name": "马丁·伍达德"}, -{"usage": "backer", "gender": "male", "name": "马特·戴维斯"}, -{"usage": "backer", "gender": "male", "name": "马修·圣约翰"}, -{"usage": "backer", "gender": "male", "name": "马特·威廉姆斯"}, -{"usage": "backer", "gender": "male", "name": "迈克尔·'死于非命'·琼斯"}, -{"usage": "backer", "gender": "male", "name": "迈克尔·希尔"}, -{"usage": "backer", "gender": "male", "name": "迈克尔·金凯德"}, -{"usage": "backer", "gender": "male", "name": "米歇尔·贝杰龙"}, -{"usage": "backer", "gender": "male", "name": "米克·巴特"}, -{"usage": "backer", "gender": "male", "name": "米格尔·赫尔梅斯"}, -{"usage": "backer", "gender": "male", "name": "迈尔斯·普洛韦斯"}, -{"usage": "backer", "gender": "male", "name": "米洛克"}, -{"usage": "backer", "gender": "male", "name": "南森·卡恩"}, -{"usage": "backer", "gender": "male", "name": "纳撒尼尔·福特"}, -{"usage": "backer", "gender": "male", "name": "尼克·'轰炸机'·帕克"}, -{"usage": "backer", "gender": "male", "name": "尼克·斯蒂芬"}, -{"usage": "backer", "gender": "male", "name": "欧文·邓恩"}, -{"usage": "backer", "gender": "male", "name": "帕斯卡尔·菲利波维奇"}, -{"usage": "backer", "gender": "male", "name": "保罗·华莱士"}, -{"usage": "backer", "gender": "male", "name": "彼特·斯皮尔伯格"}, -{"usage": "backer", "gender": "male", "name": "菲力浦·特朗布莱"}, -{"usage": "backer", "gender": "male", "name": "瑞克·'桀骜不驯之人'"}, -{"usage": "backer", "gender": "female", "name": "拉奎尔·麦克马洪"}, -{"usage": "backer", "gender": "male", "name": "雷蒙德·贝莱斯"}, -{"usage": "backer", "gender": "unisex", "name": "雷诺·帕克"}, -{"usage": "backer", "gender": "male", "name": "罗布·基斯"}, -{"usage": "backer", "gender": "male", "name": "罗布·韦策尔"}, -{"usage": "backer", "gender": "unisex", "name": "罗尔"}, -{"usage": "backer", "gender": "unisex", "name": "罗尼·马格努松"}, -{"usage": "backer", "gender": "male", "name": "罗恩·'噪音'·哈基姆"}, -{"usage": "backer", "gender": "male", "name": "鲁道夫·施密特"}, -{"usage": "backer", "gender": "male", "name": "罗素·雷诺兹三世"}, -{"usage": "backer", "gender": "male", "name": "山姆·施泰因"}, -{"usage": "backer", "gender": "male", "name": "肖恩·邓肯"}, -{"usage": "backer", "gender": "male", "name": "塞巴斯蒂安·雅弗雷"}, -{"usage": "backer", "gender": "male", "name": "萨拉勒·科伊尔"}, -{"usage": "backer", "gender": "unisex", "name": "希姆·费尔米"}, -{"usage": "backer", "gender": "male", "name": "西蒙·托雷森·赫尔特"}, -{"usage": "backer", "gender": "unisex", "name": "斯诺·'喵星人'"}, -{"usage": "backer", "gender": "unisex", "name": "斯帕洛·格里芬"}, -{"usage": "backer", "gender": "unisex", "name": "斯帕兹·佩克洛特"}, -{"usage": "backer", "gender": "male", "name": "史蒂文·彼得森"}, -{"usage": "backer", "gender": "male", "name": "斯泰特纳"}, -{"usage": "backer", "gender": "male", "name": "索奇·加博尔·费伦茨"}, -{"usage": "backer", "gender": "male", "name": "托马斯·拉尔森"}, -{"usage": "backer", "gender": "male", "name": "托拜厄斯·弗兰克"}, -{"usage": "backer", "gender": "male", "name": "托德里克·罗霍普"}, -{"usage": "backer", "gender": "male", "name": "托马斯·西蒙"}, -{"usage": "backer", "gender": "male", "name": "汤姆·霍珀"}, -{"usage": "backer", "gender": "male", "name": "砺波·约根森"}, -{"usage": "backer", "gender": "unisex", "name": "通萨"}, -{"usage": "backer", "gender": "male", "name": "特拉维斯·吉布森"}, -{"usage": "backer", "gender": "female", "name": "特里安娜"}, -{"usage": "backer", "gender": "unisex", "name": "尤瑞斯特·麦克普鲁丹特"}, -{"usage": "backer", "gender": "male", "name": "维克多·库罗皮尼科"}, -{"usage": "backer", "gender": "male", "name": "韦恩·A.·阿瑟顿"}, -{"usage": "backer", "gender": "male", "name": "威廉·福里斯特"}, -{"usage": "backer", "gender": "male", "name": "威尔·沃克"}, -{"usage": "backer", "gender": "male", "name": "温塔尔·戈特伯德"}, -{"usage": "backer", "gender": "male", "name": "正男"}, -{"usage": "backer", "gender": "male", "name": "知傲"}, -{"usage": "city", "name": "万斯伯勒"}, -{"usage": "city", "name": "不伦瑞克"}, -{"usage": "city", "name": "不来梅"}, -{"usage": "city", "name": "东哈德姆"}, -{"usage": "city", "name": "东哈特福德"}, -{"usage": "city", "name": "东布里奇沃特"}, -{"usage": "city", "name": "东布鲁克菲尔德"}, -{"usage": "city", "name": "东普罗维登斯"}, -{"usage": "city", "name": "东朗梅多"}, -{"usage": "city", "name": "东格兰比"}, -{"usage": "city", "name": "东格林威治"}, -{"usage": "city", "name": "东汉普顿"}, -{"usage": "city", "name": "东温莎"}, -{"usage": "city", "name": "东港"}, -{"usage": "city", "name": "东米利诺基特"}, -{"usage": "city", "name": "东莱姆"}, -{"usage": "city", "name": "东蒙彼利埃"}, -{"usage": "city", "name": "东金斯顿"}, -{"usage": "city", "name": "东马柴厄斯"}, -{"usage": "city", "name": "中国"}, -{"usage": "city", "name": "中心港"}, -{"usage": "city", "name": "丹伯里"}, -{"usage": "city", "name": "丹尼斯"}, -{"usage": "city", "name": "丹尼斯维尔"}, -{"usage": "city", "name": "丹尼斯镇"}, -{"usage": "city", "name": "丹巴顿郡"}, -{"usage": "city", "name": "丹弗斯"}, -{"usage": "city", "name": "丹弗斯"}, -{"usage": "city", "name": "丹比"}, -{"usage": "city", "name": "丹维尔"}, -{"usage": "city", "name": "丹麦"}, -{"usage": "city", "name": "乔治敦"}, -{"usage": "city", "name": "亚历山大"}, -{"usage": "city", "name": "亚历山大里亚"}, -{"usage": "city", "name": "亚当斯"}, -{"usage": "city", "name": "亨尼克"}, -{"usage": "city", "name": "亨廷顿"}, -{"usage": "city", "name": "什鲁斯伯里"}, -{"usage": "city", "name": "他泊山"}, -{"usage": "city", "name": "代顿"}, -{"usage": "city", "name": "伊丽莎白角"}, -{"usage": "city", "name": "伊斯特姆"}, -{"usage": "city", "name": "伊斯特布鲁克"}, -{"usage": "city", "name": "伊斯特汉普顿"}, -{"usage": "city", "name": "伊斯特福德"}, -{"usage": "city", "name": "伊斯顿"}, -{"usage": "city", "name": "伊普斯威奇"}, -{"usage": "city", "name": "伊格尔莱克"}, -{"usage": "city", "name": "伊诺斯堡"}, -{"usage": "city", "name": "伊顿"}, -{"usage": "city", "name": "伍兹塔克"}, -{"usage": "city", "name": "伍利奇"}, -{"usage": "city", "name": "伍德伯里"}, -{"usage": "city", "name": "伍德兰"}, -{"usage": "city", "name": "伍德布里奇"}, -{"usage": "city", "name": "伍德福德"}, -{"usage": "city", "name": "伍德维尔"}, -{"usage": "city", "name": "伍斯特"}, -{"usage": "city", "name": "伦敦德里"}, -{"usage": "city", "name": "伦瑟姆"}, -{"usage": "city", "name": "伦道夫"}, -{"usage": "city", "name": "伯丁罕"}, -{"usage": "city", "name": "伯克"}, -{"usage": "city", "name": "伯克利"}, -{"usage": "city", "name": "伯克郡"}, -{"usage": "city", "name": "伯利恒"}, -{"usage": "city", "name": "伯恩"}, -{"usage": "city", "name": "伯灵顿"}, -{"usage": "city", "name": "伯瑞特波罗"}, -{"usage": "city", "name": "伯纳姆"}, -{"usage": "city", "name": "伯纳德斯顿"}, -{"usage": "city", "name": "佛罗里达"}, -{"usage": "city", "name": "佩勒姆马勒衔"}, -{"usage": "city", "name": "佩珀勒尔"}, -{"usage": "city", "name": "佩里"}, -{"usage": "city", "name": "克伦威尔"}, -{"usage": "city", "name": "克兰斯顿"}, -{"usage": "city", "name": "克利夫顿"}, -{"usage": "city", "name": "克劳福德"}, -{"usage": "city", "name": "克劳顿市"}, -{"usage": "city", "name": "克拉伦登"}, -{"usage": "city", "name": "克拉克斯堡"}, -{"usage": "city", "name": "克拉克斯维尔"}, -{"usage": "city", "name": "克拉夫伯里"}, -{"usage": "city", "name": "克林顿"}, -{"usage": "city", "name": "克莱蒙特"}, -{"usage": "city", "name": "克里斯特尔"}, -{"usage": "city", "name": "兰开斯特"}, -{"usage": "city", "name": "兰德格罗夫"}, -{"usage": "city", "name": "兰登"}, -{"usage": "city", "name": "兰达夫"}, -{"usage": "city", "name": "内蒂克"}, -{"usage": "city", "name": "冬青山"}, -{"usage": "city", "name": "切姆斯福德"}, -{"usage": "city", "name": "切尔西"}, -{"usage": "city", "name": "切斯特"}, -{"usage": "city", "name": "切斯特维尔"}, -{"usage": "city", "name": "切斯特菲尔德"}, -{"usage": "city", "name": "切比克岛"}, -{"usage": "city", "name": "切里菲尔德"}, -{"usage": "city", "name": "列克星顿"}, -{"usage": "city", "name": "利伯蒂"}, -{"usage": "city", "name": "利兹"}, -{"usage": "city", "name": "利奇菲尔德"}, -{"usage": "city", "name": "利弗莫尔"}, -{"usage": "city", "name": "利弗莫尔福尔斯"}, -{"usage": "city", "name": "利明顿"}, -{"usage": "city", "name": "利特尔顿"}, -{"usage": "city", "name": "利默里克郡"}, -{"usage": "city", "name": "剑桥"}, -{"usage": "city", "name": "加兰"}, -{"usage": "city", "name": "加德纳"}, -{"usage": "city", "name": "加来"}, -{"usage": "city", "name": "加菲尔德种植园"}, -{"usage": "city", "name": "加迪纳"}, -{"usage": "city", "name": "劳伦斯"}, -{"usage": "city", "name": "劳登"}, -{"usage": "city", "name": "勒德洛"}, -{"usage": "city", "name": "勒普斯特尔"}, -{"usage": "city", "name": "北亚当斯"}, -{"usage": "city", "name": "北史密斯菲尔德"}, -{"usage": "city", "name": "北地市"}, -{"usage": "city", "name": "北安多福"}, -{"usage": "city", "name": "北安普敦"}, -{"usage": "city", "name": "北布兰福德"}, -{"usage": "city", "name": "北布鲁克菲尔德"}, -{"usage": "city", "name": "北希罗"}, -{"usage": "city", "name": "北斯托宁顿"}, -{"usage": "city", "name": "北普罗维登斯"}, -{"usage": "city", "name": "北汉普顿"}, -{"usage": "city", "name": "北贝里克"}, -{"usage": "city", "name": "北迦南"}, -{"usage": "city", "name": "北金斯敦"}, -{"usage": "city", "name": "北阿特尔伯勒"}, -{"usage": "city", "name": "北雅茅斯"}, -{"usage": "city", "name": "北雷丁"}, -{"usage": "city", "name": "匹兹堡"}, -{"usage": "city", "name": "华盛顿"}, -{"usage": "city", "name": "南伯灵顿"}, -{"usage": "city", "name": "南哈德利"}, -{"usage": "city", "name": "南安普敦"}, -{"usage": "city", "name": "南布里斯托"}, -{"usage": "city", "name": "南托马斯顿"}, -{"usage": "city", "name": "南汉普顿"}, -{"usage": "city", "name": "南波特兰"}, -{"usage": "city", "name": "南海罗"}, -{"usage": "city", "name": "南温莎"}, -{"usage": "city", "name": "南贝威克"}, -{"usage": "city", "name": "南金斯顿"}, -{"usage": "city", "name": "博伊尔斯"}, -{"usage": "city", "name": "博克斯伯勒"}, -{"usage": "city", "name": "博克斯福德"}, -{"usage": "city", "name": "博尔顿市"}, -{"usage": "city", "name": "博斯考恩"}, -{"usage": "city", "name": "卡伯特"}, -{"usage": "city", "name": "卡勒巴西特谷"}, -{"usage": "city", "name": "卡姆登"}, -{"usage": "city", "name": "卡弗"}, -{"usage": "city", "name": "卡拉滕克"}, -{"usage": "city", "name": "卡文迪许"}, -{"usage": "city", "name": "卡斯威尔"}, -{"usage": "city", "name": "卡斯尔山"}, -{"usage": "city", "name": "卡斯尔顿"}, -{"usage": "city", "name": "卡斯廷"}, -{"usage": "city", "name": "卡斯科"}, -{"usage": "city", "name": "卡明顿"}, -{"usage": "city", "name": "卡梅尔"}, -{"usage": "city", "name": "卡特勒"}, -{"usage": "city", "name": "卡罗尔"}, -{"usage": "city", "name": "卡罗尔种植园"}, -{"usage": "city", "name": "卡莱尔"}, -{"usage": "city", "name": "卡里布"}, -{"usage": "city", "name": "卡里种植园"}, -{"usage": "city", "name": "卢嫩堡"}, -{"usage": "city", "name": "卢贝克"}, -{"usage": "city", "name": "卫斯特利"}, -{"usage": "city", "name": "厄普顿"}, -{"usage": "city", "name": "古尔兹伯勒"}, -{"usage": "city", "name": "史密斯菲尔德"}, -{"usage": "city", "name": "吉利厄德"}, -{"usage": "city", "name": "吉尔"}, -{"usage": "city", "name": "吉尔德霍尔"}, -{"usage": "city", "name": "吉尔曼顿"}, -{"usage": "city", "name": "吉尔瑟姆"}, -{"usage": "city", "name": "吉尔福德"}, -{"usage": "city", "name": "吉尔福德"}, -{"usage": "city", "name": "哈伯兹"}, -{"usage": "city", "name": "哈伯顿"}, -{"usage": "city", "name": "哈佛"}, -{"usage": "city", "name": "哈利法克斯"}, -{"usage": "city", "name": "哈姆林"}, -{"usage": "city", "name": "哈姆登"}, -{"usage": "city", "name": "哈德利"}, -{"usage": "city", "name": "哈德威克"}, -{"usage": "city", "name": "哈德森"}, -{"usage": "city", "name": "哈波斯维尔"}, -{"usage": "city", "name": "哈洛韦尔"}, -{"usage": "city", "name": "哈温顿"}, -{"usage": "city", "name": "哈灵顿"}, -{"usage": "city", "name": "哈特兰"}, -{"usage": "city", "name": "哈特福德"}, -{"usage": "city", "name": "哈特菲尔德"}, -{"usage": "city", "name": "哈特镇"}, -{"usage": "city", "name": "哈莫尼"}, -{"usage": "city", "name": "哈蒙德"}, -{"usage": "city", "name": "哈达姆"}, -{"usage": "city", "name": "哈里奇"}, -{"usage": "city", "name": "哈里斯维尔"}, -{"usage": "city", "name": "哈里森"}, -{"usage": "city", "name": "哥伦比亚"}, -{"usage": "city", "name": "哥伦比亚福尔斯"}, -{"usage": "city", "name": "因达斯特里"}, -{"usage": "city", "name": "图克斯伯里"}, -{"usage": "city", "name": "图顿波瑞"}, -{"usage": "city", "name": "圣乔治"}, -{"usage": "city", "name": "圣奥尔本斯"}, -{"usage": "city", "name": "圣弗朗西斯"}, -{"usage": "city", "name": "圣约翰斯博瑞"}, -{"usage": "city", "name": "圣约翰种植园"}, -{"usage": "city", "name": "圣阿加莎"}, -{"usage": "city", "name": "坎伯兰郡"}, -{"usage": "city", "name": "坎普顿"}, -{"usage": "city", "name": "坎特伯雷"}, -{"usage": "city", "name": "坎顿"}, -{"usage": "city", "name": "坦普尔"}, -{"usage": "city", "name": "坦普尔顿"}, -{"usage": "city", "name": "埃丁顿"}, -{"usage": "city", "name": "埃克塞特"}, -{"usage": "city", "name": "埃勒尔"}, -{"usage": "city", "name": "埃塞克斯"}, -{"usage": "city", "name": "埃奇库姆"}, -{"usage": "city", "name": "埃姆斯伯里"}, -{"usage": "city", "name": "埃尔斯沃思"}, -{"usage": "city", "name": "埃尔莫尔"}, -{"usage": "city", "name": "埃平"}, -{"usage": "city", "name": "埃弗雷特"}, -{"usage": "city", "name": "埃德加敦"}, -{"usage": "city", "name": "埃德蒙兹"}, -{"usage": "city", "name": "埃普索姆"}, -{"usage": "city", "name": "埃林顿"}, -{"usage": "city", "name": "埃格勒蒙特"}, -{"usage": "city", "name": "埃特纳"}, -{"usage": "city", "name": "埃登"}, -{"usage": "city", "name": "埃芬厄姆"}, -{"usage": "city", "name": "培诺伯斯科特"}, -{"usage": "city", "name": "基恩"}, -{"usage": "city", "name": "基林顿"}, -{"usage": "city", "name": "基灵利"}, -{"usage": "city", "name": "基灵沃思"}, -{"usage": "city", "name": "基特里"}, -{"usage": "city", "name": "塔姆沃思"}, -{"usage": "city", "name": "塔尔梅奇"}, -{"usage": "city", "name": "塞勒姆"}, -{"usage": "city", "name": "塞巴戈"}, -{"usage": "city", "name": "塞布伊斯种植园"}, -{"usage": "city", "name": "塞贝克"}, -{"usage": "city", "name": "墨西哥"}, -{"usage": "city", "name": "士麦纳"}, -{"usage": "city", "name": "夏洛特"}, -{"usage": "city", "name": "多佛-福克斯克罗夫特"}, -{"usage": "city", "name": "多佛尔"}, -{"usage": "city", "name": "多塞特"}, -{"usage": "city", "name": "多尔切斯特"}, -{"usage": "city", "name": "大巴灵顿"}, -{"usage": "city", "name": "天鹅岛"}, -{"usage": "city", "name": "奇切斯特"}, -{"usage": "city", "name": "奇尔马克"}, -{"usage": "city", "name": "奇科皮"}, -{"usage": "city", "name": "奥克兰"}, -{"usage": "city", "name": "奥克姆"}, -{"usage": "city", "name": "奥克布拉夫斯"}, -{"usage": "city", "name": "奥克斯博"}, -{"usage": "city", "name": "奥克菲尔德"}, -{"usage": "city", "name": "奥兰"}, -{"usage": "city", "name": "奥兰治"}, -{"usage": "city", "name": "奥古斯塔"}, -{"usage": "city", "name": "奥威尔"}, -{"usage": "city", "name": "奥尔堡"}, -{"usage": "city", "name": "奥尔巴尼"}, -{"usage": "city", "name": "奥尔德敦"}, -{"usage": "city", "name": "奥尔斯黑德"}, -{"usage": "city", "name": "奥尔福德"}, -{"usage": "city", "name": "奥尔良"}, -{"usage": "city", "name": "奥尔顿"}, -{"usage": "city", "name": "奥提斯菲尔德"}, -{"usage": "city", "name": "奥斯本"}, -{"usage": "city", "name": "奥本"}, -{"usage": "city", "name": "奥灵顿"}, -{"usage": "city", "name": "奥甘奎特"}, -{"usage": "city", "name": "奥福德"}, -{"usage": "city", "name": "奥罗拉"}, -{"usage": "city", "name": "奥蒂斯"}, -{"usage": "city", "name": "奥西皮"}, -{"usage": "city", "name": "奥连特"}, -{"usage": "city", "name": "威丝曼兰德"}, -{"usage": "city", "name": "威利斯顿"}, -{"usage": "city", "name": "威利曼蒂克"}, -{"usage": "city", "name": "威努斯基"}, -{"usage": "city", "name": "威尔士"}, -{"usage": "city", "name": "威尔斯利"}, -{"usage": "city", "name": "威尔明顿"}, -{"usage": "city", "name": "威尔莫特"}, -{"usage": "city", "name": "威尔顿"}, -{"usage": "city", "name": "威廉斯堡"}, -{"usage": "city", "name": "威廉斯敦"}, -{"usage": "city", "name": "威斯卡西特"}, -{"usage": "city", "name": "威斯敏斯特"}, -{"usage": "city", "name": "威斯特伍德"}, -{"usage": "city", "name": "威斯特莫"}, -{"usage": "city", "name": "威斯特莫兰德"}, -{"usage": "city", "name": "威林顿"}, -{"usage": "city", "name": "安德沃"}, -{"usage": "city", "name": "安森"}, -{"usage": "city", "name": "安特里姆"}, -{"usage": "city", "name": "安索尼亚"}, -{"usage": "city", "name": "宾厄姆"}, -{"usage": "city", "name": "富兰克林"}, -{"usage": "city", "name": "小康普顿"}, -{"usage": "city", "name": "尤宁"}, -{"usage": "city", "name": "尤尼蒂"}, -{"usage": "city", "name": "尤斯蒂斯"}, -{"usage": "city", "name": "尼尔森"}, -{"usage": "city", "name": "尼维尔"}, -{"usage": "city", "name": "尼达姆"}, -{"usage": "city", "name": "巴克兰"}, -{"usage": "city", "name": "巴克哈姆斯特德"}, -{"usage": "city", "name": "巴克斯波特"}, -{"usage": "city", "name": "巴克斯顿"}, -{"usage": "city", "name": "巴克菲尔德"}, -{"usage": "city", "name": "巴奈特市"}, -{"usage": "city", "name": "巴尔港"}, -{"usage": "city", "name": "巴尔的摩"}, -{"usage": "city", "name": "巴思"}, -{"usage": "city", "name": "巴恩斯特布"}, -{"usage": "city", "name": "巴恩斯特德"}, -{"usage": "city", "name": "巴拉莫"}, -{"usage": "city", "name": "巴灵种植园"}, -{"usage": "city", "name": "巴灵顿"}, -{"usage": "city", "name": "巴特利特"}, -{"usage": "city", "name": "巴纳德"}, -{"usage": "city", "name": "巴里"}, -{"usage": "city", "name": "巴顿"}, -{"usage": "city", "name": "巴黎"}, -{"usage": "city", "name": "布伦特伍德"}, -{"usage": "city", "name": "布兰查德"}, -{"usage": "city", "name": "布兰登"}, -{"usage": "city", "name": "布兰福德"}, -{"usage": "city", "name": "布兰福德"}, -{"usage": "city", "name": "布卢姆菲尔德"}, -{"usage": "city", "name": "布卢希尔"}, -{"usage": "city", "name": "布拉克菲尔德"}, -{"usage": "city", "name": "布拉克顿"}, -{"usage": "city", "name": "布拉德利"}, -{"usage": "city", "name": "布拉德福"}, -{"usage": "city", "name": "布斯贝"}, -{"usage": "city", "name": "布斯贝港"}, -{"usage": "city", "name": "布朗宁顿"}, -{"usage": "city", "name": "布朗维尔"}, -{"usage": "city", "name": "布朗菲尔德"}, -{"usage": "city", "name": "布莱克斯通"}, -{"usage": "city", "name": "布莱恩"}, -{"usage": "city", "name": "布莱顿"}, -{"usage": "city", "name": "布莱顿种植园"}, -{"usage": "city", "name": "布里奇沃特"}, -{"usage": "city", "name": "布里奇波特"}, -{"usage": "city", "name": "布里奇顿"}, -{"usage": "city", "name": "布里姆菲尔德"}, -{"usage": "city", "name": "布里德波特"}, -{"usage": "city", "name": "布里斯托尔"}, -{"usage": "city", "name": "布雷茵特里"}, -{"usage": "city", "name": "布鲁克斯"}, -{"usage": "city", "name": "布鲁克斯维尔"}, -{"usage": "city", "name": "布鲁克林"}, -{"usage": "city", "name": "布鲁克林"}, -{"usage": "city", "name": "布鲁克莱恩"}, -{"usage": "city", "name": "布鲁克顿"}, -{"usage": "city", "name": "布鲁尔"}, -{"usage": "city", "name": "布鲁斯特"}, -{"usage": "city", "name": "希伯伦"}, -{"usage": "city", "name": "希尔"}, -{"usage": "city", "name": "希尔斯伯勒"}, -{"usage": "city", "name": "希尔种植园"}, -{"usage": "city", "name": "希思"}, -{"usage": "city", "name": "帕克斯顿"}, -{"usage": "city", "name": "帕克曼"}, -{"usage": "city", "name": "帕尔迈拉"}, -{"usage": "city", "name": "帕森菲尔德"}, -{"usage": "city", "name": "帕滕"}, -{"usage": "city", "name": "帕萨达姆凯格"}, -{"usage": "city", "name": "帕麦尔"}, -{"usage": "city", "name": "干地亚"}, -{"usage": "city", "name": "库恩维尔"}, -{"usage": "city", "name": "库珀"}, -{"usage": "city", "name": "底特律"}, -{"usage": "city", "name": "庞弗里特"}, -{"usage": "city", "name": "康威"}, -{"usage": "city", "name": "康沃尔"}, -{"usage": "city", "name": "康科德"}, -{"usage": "city", "name": "康纳"}, -{"usage": "city", "name": "廷斯堡罗夫"}, -{"usage": "city", "name": "廷茅斯"}, -{"usage": "city", "name": "弗伦奇伯勒"}, -{"usage": "city", "name": "弗伦奇维尔"}, -{"usage": "city", "name": "弗伦德希普"}, -{"usage": "city", "name": "弗农"}, -{"usage": "city", "name": "弗农山"}, -{"usage": "city", "name": "弗朗科尼亚"}, -{"usage": "city", "name": "弗朗西斯城"}, -{"usage": "city", "name": "弗莱岛"}, -{"usage": "city", "name": "弗莱彻"}, -{"usage": "city", "name": "弗里德姆"}, -{"usage": "city", "name": "弗里敦"}, -{"usage": "city", "name": "弗里曼"}, -{"usage": "city", "name": "弗里波特"}, -{"usage": "city", "name": "弗里蒙特"}, -{"usage": "city", "name": "弗金斯"}, -{"usage": "city", "name": "弗雷堡"}, -{"usage": "city", "name": "弗雷明汉"}, -{"usage": "city", "name": "彭布鲁克"}, -{"usage": "city", "name": "彼得伯勒"}, -{"usage": "city", "name": "彼得福特"}, -{"usage": "city", "name": "彼得舍姆"}, -{"usage": "city", "name": "德克斯特"}, -{"usage": "city", "name": "德布洛斯"}, -{"usage": "city", "name": "德比"}, -{"usage": "city", "name": "德累斯顿"}, -{"usage": "city", "name": "德里"}, -{"usage": "city", "name": "德雷卡特"}, -{"usage": "city", "name": "德鲁种植园"}, -{"usage": "city", "name": "怀廷"}, -{"usage": "city", "name": "怀特菲尔德"}, -{"usage": "city", "name": "恩巴顿"}, -{"usage": "city", "name": "恩菲尔德"}, -{"usage": "city", "name": "惠尔洛克"}, -{"usage": "city", "name": "惠廷厄姆"}, -{"usage": "city", "name": "惠灵顿"}, -{"usage": "city", "name": "惠特利"}, -{"usage": "city", "name": "惠特尼"}, -{"usage": "city", "name": "惠特曼"}, -{"usage": "city", "name": "戈勒姆"}, -{"usage": "city", "name": "戈夫斯敦"}, -{"usage": "city", "name": "戈斯诺尔德"}, -{"usage": "city", "name": "戈申"}, -{"usage": "city", "name": "戴尔布鲁克"}, -{"usage": "city", "name": "戴德姆"}, -{"usage": "city", "name": "戴顿"}, -{"usage": "city", "name": "托兰"}, -{"usage": "city", "name": "托普斯菲尔德"}, -{"usage": "city", "name": "托普瑟姆"}, -{"usage": "city", "name": "托灵顿"}, -{"usage": "city", "name": "拉伊"}, -{"usage": "city", "name": "拉伊盖特"}, -{"usage": "city", "name": "拉哥尼亚"}, -{"usage": "city", "name": "拉塞尔"}, -{"usage": "city", "name": "拉姆尼"}, -{"usage": "city", "name": "拉姆福德"}, -{"usage": "city", "name": "拉格朗日"}, -{"usage": "city", "name": "拉特兰郡"}, -{"usage": "city", "name": "拉莫因"}, -{"usage": "city", "name": "拜伦"}, -{"usage": "city", "name": "挪威"}, -{"usage": "city", "name": "摩根"}, -{"usage": "city", "name": "摩洛种植园"}, -{"usage": "city", "name": "摩顿巿"}, -{"usage": "city", "name": "文哈尔"}, -{"usage": "city", "name": "文索基特"}, -{"usage": "city", "name": "斯万普斯科特"}, -{"usage": "city", "name": "斯卡伯勒"}, -{"usage": "city", "name": "斯图尔兹敦"}, -{"usage": "city", "name": "斯图本"}, -{"usage": "city", "name": "斯坦福德"}, -{"usage": "city", "name": "斯坦纳德"}, -{"usage": "city", "name": "斯坦迪什"}, -{"usage": "city", "name": "斯塔克"}, -{"usage": "city", "name": "斯塔克斯"}, -{"usage": "city", "name": "斯塔克斯伯勒"}, -{"usage": "city", "name": "斯塔福德"}, -{"usage": "city", "name": "斯德哥尔摩"}, -{"usage": "city", "name": "斯托"}, -{"usage": "city", "name": "斯托"}, -{"usage": "city", "name": "斯托克布里奇"}, -{"usage": "city", "name": "斯托克斯普林斯"}, -{"usage": "city", "name": "斯托宁顿"}, -{"usage": "city", "name": "斯托纳姆"}, -{"usage": "city", "name": "斯托达德"}, -{"usage": "city", "name": "斯托顿"}, -{"usage": "city", "name": "斯旺威尔"}, -{"usage": "city", "name": "斯旺泽"}, -{"usage": "city", "name": "斯旺西"}, -{"usage": "city", "name": "斯旺顿"}, -{"usage": "city", "name": "斯普拉格"}, -{"usage": "city", "name": "斯普林菲尔德"}, -{"usage": "city", "name": "斯泰森"}, -{"usage": "city", "name": "斯特布里奇"}, -{"usage": "city", "name": "斯特拉森姆"}, -{"usage": "city", "name": "斯特拉特福德"}, -{"usage": "city", "name": "斯特拉福德"}, -{"usage": "city", "name": "斯特拉顿"}, -{"usage": "city", "name": "斯特朗"}, -{"usage": "city", "name": "斯特林"}, -{"usage": "city", "name": "斯特西维尔"}, -{"usage": "city", "name": "斯考希根"}, -{"usage": "city", "name": "新不列颠"}, -{"usage": "city", "name": "新伊普斯威奇"}, -{"usage": "city", "name": "新伦敦"}, -{"usage": "city", "name": "新利默里克"}, -{"usage": "city", "name": "新加拿大"}, -{"usage": "city", "name": "新哈特福德"}, -{"usage": "city", "name": "新塞勒姆"}, -{"usage": "city", "name": "新布伦特里"}, -{"usage": "city", "name": "新格洛斯特"}, -{"usage": "city", "name": "新汉普顿"}, -{"usage": "city", "name": "新沙伦"}, -{"usage": "city", "name": "新波士顿"}, -{"usage": "city", "name": "新波特兰"}, -{"usage": "city", "name": "新瑞典"}, -{"usage": "city", "name": "新瓦恩伊德"}, -{"usage": "city", "name": "新米尔福德"}, -{"usage": "city", "name": "新肖勒姆"}, -{"usage": "city", "name": "新贝德福德"}, -{"usage": "city", "name": "新费尔菲尔德"}, -{"usage": "city", "name": "新达勒姆"}, -{"usage": "city", "name": "新迦南"}, -{"usage": "city", "name": "新阿什福德"}, -{"usage": "city", "name": "新马尔堡"}, -{"usage": "city", "name": "旧塞布鲁克"}, -{"usage": "city", "name": "旧奥查德比奇"}, -{"usage": "city", "name": "旧莱姆"}, -{"usage": "city", "name": "昂德希尔"}, -{"usage": "city", "name": "昆西"}, -{"usage": "city", "name": "普兰蒂斯"}, -{"usage": "city", "name": "普利茅斯"}, -{"usage": "city", "name": "普拉斯托"}, -{"usage": "city", "name": "普林斯顿"}, -{"usage": "city", "name": "普林顿"}, -{"usage": "city", "name": "普特南"}, -{"usage": "city", "name": "普特尼"}, -{"usage": "city", "name": "普瑞斯克岛"}, -{"usage": "city", "name": "普罗文斯镇"}, -{"usage": "city", "name": "普罗斯佩克特"}, -{"usage": "city", "name": "普罗科特"}, -{"usage": "city", "name": "普罗维登斯"}, -{"usage": "city", "name": "普莱恩维尔"}, -{"usage": "city", "name": "普莱恩菲尔德"}, -{"usage": "city", "name": "普雷斯科特"}, -{"usage": "city", "name": "普雷斯顿"}, -{"usage": "city", "name": "曼彻斯特"}, -{"usage": "city", "name": "曼斯菲尔德"}, -{"usage": "city", "name": "朗吉利种植园"}, -{"usage": "city", "name": "朗格莱"}, -{"usage": "city", "name": "朗梅多"}, -{"usage": "city", "name": "本宁顿"}, -{"usage": "city", "name": "本尼迪克塔"}, -{"usage": "city", "name": "本森"}, -{"usage": "city", "name": "本顿"}, -{"usage": "city", "name": "朴茨茅斯"}, -{"usage": "city", "name": "李"}, -{"usage": "city", "name": "杰伊"}, -{"usage": "city", "name": "杰克曼"}, -{"usage": "city", "name": "杰克逊"}, -{"usage": "city", "name": "杰斐逊"}, -{"usage": "city", "name": "林奇"}, -{"usage": "city", "name": "林尼厄斯"}, -{"usage": "city", "name": "林德区"}, -{"usage": "city", "name": "林恩"}, -{"usage": "city", "name": "林登"}, -{"usage": "city", "name": "林肯"}, -{"usage": "city", "name": "林肯种植园"}, -{"usage": "city", "name": "林肯维尔"}, -{"usage": "city", "name": "林菲尔德"}, -{"usage": "city", "name": "柏林"}, -{"usage": "city", "name": "柏林威尔"}, -{"usage": "city", "name": "查塔姆"}, -{"usage": "city", "name": "查尔斯敦"}, -{"usage": "city", "name": "查尔斯顿"}, -{"usage": "city", "name": "查尔蒙特"}, -{"usage": "city", "name": "查尔顿"}, -{"usage": "city", "name": "查普曼"}, -{"usage": "city", "name": "查普林"}, -{"usage": "city", "name": "柯兴"}, -{"usage": "city", "name": "柯比"}, -{"usage": "city", "name": "柴郡"}, -{"usage": "city", "name": "格伦伍德种植园"}, -{"usage": "city", "name": "格伦本"}, -{"usage": "city", "name": "格兰德岛"}, -{"usage": "city", "name": "格兰德菜克斯蒂姆"}, -{"usage": "city", "name": "格兰比"}, -{"usage": "city", "name": "格兰瑟姆"}, -{"usage": "city", "name": "格兰维尔"}, -{"usage": "city", "name": "格拉夫顿"}, -{"usage": "city", "name": "格拉斯顿伯里"}, -{"usage": "city", "name": "格拉斯顿伯里"}, -{"usage": "city", "name": "格林"}, -{"usage": "city", "name": "格林伍德"}, -{"usage": "city", "name": "格林尼治"}, -{"usage": "city", "name": "格林布什"}, -{"usage": "city", "name": "格林斯博罗"}, -{"usage": "city", "name": "格林维尔"}, -{"usage": "city", "name": "格林菲尔德"}, -{"usage": "city", "name": "格洛弗"}, -{"usage": "city", "name": "格洛斯特"}, -{"usage": "city", "name": "格瑞特伯德"}, -{"usage": "city", "name": "格罗切斯特"}, -{"usage": "city", "name": "格罗夫兰"}, -{"usage": "city", "name": "格罗顿"}, -{"usage": "city", "name": "格里斯沃尔德"}, -{"usage": "city", "name": "格陵兰"}, -{"usage": "city", "name": "格雷"}, -{"usage": "city", "name": "格鲁吉亚"}, -{"usage": "city", "name": "桑代克"}, -{"usage": "city", "name": "桑威奇"}, -{"usage": "city", "name": "桑当"}, -{"usage": "city", "name": "桑格维尔"}, -{"usage": "city", "name": "桑盖特"}, -{"usage": "city", "name": "桑福德"}, -{"usage": "city", "name": "桑迪斯"}, -{"usage": "city", "name": "桑迪河种植园"}, -{"usage": "city", "name": "桑顿"}, -{"usage": "city", "name": "梅休因"}, -{"usage": "city", "name": "梅卡尼克福尔斯"}, -{"usage": "city", "name": "梅尔罗斯"}, -{"usage": "city", "name": "梅德斯通"}, -{"usage": "city", "name": "梅德菲尔德"}, -{"usage": "city", "name": "梅德韦"}, -{"usage": "city", "name": "梅普尔顿"}, -{"usage": "city", "name": "梅森"}, -{"usage": "city", "name": "梅纳德"}, -{"usage": "city", "name": "梅里尔"}, -{"usage": "city", "name": "梅里登"}, -{"usage": "city", "name": "梅里马克"}, -{"usage": "city", "name": "梅里麦克"}, -{"usage": "city", "name": "梅雷迪思"}, -{"usage": "city", "name": "森得兰郡"}, -{"usage": "city", "name": "森波顿"}, -{"usage": "city", "name": "森特勒尔福尔斯"}, -{"usage": "city", "name": "森特维尔"}, -{"usage": "city", "name": "楠塔基特"}, -{"usage": "city", "name": "欣厄姆"}, -{"usage": "city", "name": "欣斯代尔"}, -{"usage": "city", "name": "欧文"}, -{"usage": "city", "name": "比尔斯"}, -{"usage": "city", "name": "比尔里卡"}, -{"usage": "city", "name": "比肯福尔斯"}, -{"usage": "city", "name": "汉密尔顿"}, -{"usage": "city", "name": "汉普斯特德"}, -{"usage": "city", "name": "汉普顿"}, -{"usage": "city", "name": "汉普顿"}, -{"usage": "city", "name": "汉普顿瀑布"}, -{"usage": "city", "name": "汉森"}, -{"usage": "city", "name": "汉考克"}, -{"usage": "city", "name": "汉诺威"}, -{"usage": "city", "name": "汤普森"}, -{"usage": "city", "name": "汤森德"}, -{"usage": "city", "name": "汤森德"}, -{"usage": "city", "name": "汤玛斯敦"}, -{"usage": "city", "name": "沃什博恩"}, -{"usage": "city", "name": "沃伦"}, -{"usage": "city", "name": "沃伦顿"}, -{"usage": "city", "name": "沃兹伯勒"}, -{"usage": "city", "name": "沃夫博乐"}, -{"usage": "city", "name": "沃尔多"}, -{"usage": "city", "name": "沃尔多波罗"}, -{"usage": "city", "name": "沃尔波尔"}, -{"usage": "city", "name": "沃尔瑟姆"}, -{"usage": "city", "name": "沃尔科特"}, -{"usage": "city", "name": "沃本"}, -{"usage": "city", "name": "沃林福德"}, -{"usage": "city", "name": "沃格拉斯"}, -{"usage": "city", "name": "沃特伯勒"}, -{"usage": "city", "name": "沃特伯里"}, -{"usage": "city", "name": "沃特敦"}, -{"usage": "city", "name": "沃特福德"}, -{"usage": "city", "name": "沃特维尔瓦里"}, -{"usage": "city", "name": "沃纳"}, -{"usage": "city", "name": "沃辛顿"}, -{"usage": "city", "name": "沃里克"}, -{"usage": "city", "name": "沙伦"}, -{"usage": "city", "name": "沙利文"}, -{"usage": "city", "name": "沙夫兹伯里"}, -{"usage": "city", "name": "沙普利"}, -{"usage": "city", "name": "法兰克福"}, -{"usage": "city", "name": "法尔茅斯"}, -{"usage": "city", "name": "法明代尔"}, -{"usage": "city", "name": "法明顿"}, -{"usage": "city", "name": "波兰"}, -{"usage": "city", "name": "波利特"}, -{"usage": "city", "name": "波塔基特"}, -{"usage": "city", "name": "波士顿"}, -{"usage": "city", "name": "波尔特尼"}, -{"usage": "city", "name": "波斯拉"}, -{"usage": "city", "name": "波特"}, -{"usage": "city", "name": "波特兰"}, -{"usage": "city", "name": "波特治湖"}, -{"usage": "city", "name": "洛厄尔"}, -{"usage": "city", "name": "洛基希尔"}, -{"usage": "city", "name": "洛弗尔"}, -{"usage": "city", "name": "洛金汉"}, -{"usage": "city", "name": "浦纳"}, -{"usage": "city", "name": "海兰种植园"}, -{"usage": "city", "name": "海勒姆"}, -{"usage": "city", "name": "海德公园"}, -{"usage": "city", "name": "海恩斯堡"}, -{"usage": "city", "name": "海恩斯维尔"}, -{"usage": "city", "name": "海格特"}, -{"usage": "city", "name": "海狸湾"}, -{"usage": "city", "name": "温"}, -{"usage": "city", "name": "温彻斯特"}, -{"usage": "city", "name": "温彻顿"}, -{"usage": "city", "name": "温德姆"}, -{"usage": "city", "name": "温德尔"}, -{"usage": "city", "name": "温斯洛"}, -{"usage": "city", "name": "温特沃斯"}, -{"usage": "city", "name": "温特波特"}, -{"usage": "city", "name": "温特港"}, -{"usage": "city", "name": "温特维尔种植园"}, -{"usage": "city", "name": "温索普"}, -{"usage": "city", "name": "温色洛克"}, -{"usage": "city", "name": "温莎"}, -{"usage": "city", "name": "湖景保护区"}, -{"usage": "city", "name": "滕布里奇"}, -{"usage": "city", "name": "潘顿"}, -{"usage": "city", "name": "爱丁堡"}, -{"usage": "city", "name": "牙买加"}, -{"usage": "city", "name": "牛津"}, -{"usage": "city", "name": "牛顿"}, -{"usage": "city", "name": "特伦顿"}, -{"usage": "city", "name": "特朗布尔"}, -{"usage": "city", "name": "特洛伊"}, -{"usage": "city", "name": "特纳"}, -{"usage": "city", "name": "特里蒙特"}, -{"usage": "city", "name": "特雷斯科"}, -{"usage": "city", "name": "特鲁罗"}, -{"usage": "city", "name": "珀勒姆"}, -{"usage": "city", "name": "珀金斯"}, -{"usage": "city", "name": "班克罗夫特"}, -{"usage": "city", "name": "班戈"}, -{"usage": "city", "name": "琼斯伯勒"}, -{"usage": "city", "name": "琼斯波特"}, -{"usage": "city", "name": "瑞典"}, -{"usage": "city", "name": "瑞德菲尔德"}, -{"usage": "city", "name": "瑟斯伯格"}, -{"usage": "city", "name": "瓦尔登"}, -{"usage": "city", "name": "瓦特维尔"}, -{"usage": "city", "name": "瓦瑟尔伯勒"}, -{"usage": "city", "name": "皮博迪"}, -{"usage": "city", "name": "皮查姆"}, -{"usage": "city", "name": "皮耶蒙特"}, -{"usage": "city", "name": "皮茨福德"}, -{"usage": "city", "name": "皮茨菲尔德"}, -{"usage": "city", "name": "皮茨顿"}, -{"usage": "city", "name": "福克斯"}, -{"usage": "city", "name": "福克斯区"}, -{"usage": "city", "name": "福克斯堡"}, -{"usage": "city", "name": "福尔河"}, -{"usage": "city", "name": "福斯特"}, -{"usage": "city", "name": "福里斯特城"}, -{"usage": "city", "name": "福门城"}, -{"usage": "city", "name": "科哈西特"}, -{"usage": "city", "name": "科尔切斯特"}, -{"usage": "city", "name": "科尔布鲁克"}, -{"usage": "city", "name": "科尼什"}, -{"usage": "city", "name": "科普林种植园"}, -{"usage": "city", "name": "科林斯"}, -{"usage": "city", "name": "科琳娜"}, -{"usage": "city", "name": "科迪威尔种植园"}, -{"usage": "city", "name": "科雷恩"}, -{"usage": "city", "name": "秘鲁(美国)"}, -{"usage": "city", "name": "穆斯河"}, -{"usage": "city", "name": "米兰"}, -{"usage": "city", "name": "米利斯"}, -{"usage": "city", "name": "米利诺基特"}, -{"usage": "city", "name": "米尔伯里"}, -{"usage": "city", "name": "米尔布里奇"}, -{"usage": "city", "name": "米尔福德"}, -{"usage": "city", "name": "米尔维尔"}, -{"usage": "city", "name": "米尔顿"}, -{"usage": "city", "name": "米德尔伯里"}, -{"usage": "city", "name": "米德尔敦"}, -{"usage": "city", "name": "米德尔敦普林斯"}, -{"usage": "city", "name": "米德尔菲尔德"}, -{"usage": "city", "name": "米德尔赛克斯"}, -{"usage": "city", "name": "米德尔顿"}, -{"usage": "city", "name": "米德波罗"}, -{"usage": "city", "name": "米德福特"}, -{"usage": "city", "name": "索伦"}, -{"usage": "city", "name": "索伦托"}, -{"usage": "city", "name": "索尔兹伯里"}, -{"usage": "city", "name": "索斯维克"}, -{"usage": "city", "name": "索斯维克"}, -{"usage": "city", "name": "索格斯"}, -{"usage": "city", "name": "索科"}, -{"usage": "city", "name": "约克"}, -{"usage": "city", "name": "约翰斯顿"}, -{"usage": "city", "name": "约翰逊"}, -{"usage": "city", "name": "纳什维尔种植园"}, -{"usage": "city", "name": "纳拉甘西特"}, -{"usage": "city", "name": "纳罕特"}, -{"usage": "city", "name": "纳舒厄"}, -{"usage": "city", "name": "纽伯里"}, -{"usage": "city", "name": "纽伯里波特"}, -{"usage": "city", "name": "纽卡斯尔"}, -{"usage": "city", "name": "纽卡斯尔"}, -{"usage": "city", "name": "纽因顿"}, -{"usage": "city", "name": "纽堡"}, -{"usage": "city", "name": "纽敦"}, -{"usage": "city", "name": "纽波特"}, -{"usage": "city", "name": "纽瓦克"}, -{"usage": "city", "name": "纽菲尔德"}, -{"usage": "city", "name": "纽菲尔德"}, -{"usage": "city", "name": "纽里"}, -{"usage": "city", "name": "纽马克特"}, -{"usage": "city", "name": "纽黑文"}, -{"usage": "city", "name": "绍斯伯勒"}, -{"usage": "city", "name": "绍斯伯里"}, -{"usage": "city", "name": "绍斯布里奇"}, -{"usage": "city", "name": "绍斯波特"}, -{"usage": "city", "name": "绍辛顿"}, -{"usage": "city", "name": "维也纳"}, -{"usage": "city", "name": "维克托里"}, -{"usage": "city", "name": "维尔福利特"}, -{"usage": "city", "name": "维斯菲尔德"}, -{"usage": "city", "name": "维罗纳岛"}, -{"usage": "city", "name": "维齐"}, -{"usage": "city", "name": "罗亚尔顿"}, -{"usage": "city", "name": "罗伊"}, -{"usage": "city", "name": "罗伊尔斯顿"}, -{"usage": "city", "name": "罗克兰"}, -{"usage": "city", "name": "罗克夫斯"}, -{"usage": "city", "name": "罗克波特"}, -{"usage": "city", "name": "罗切斯特"}, -{"usage": "city", "name": "罗利"}, -{"usage": "city", "name": "罗宾斯顿"}, -{"usage": "city", "name": "罗林斯福德"}, -{"usage": "city", "name": "罗科斯伯里"}, -{"usage": "city", "name": "罗马"}, -{"usage": "city", "name": "考文垂"}, -{"usage": "city", "name": "耶利哥"}, -{"usage": "city", "name": "耶斯顿"}, -{"usage": "city", "name": "肖勒姆"}, -{"usage": "city", "name": "肯特"}, -{"usage": "city", "name": "肯特堡"}, -{"usage": "city", "name": "肯纳邦克"}, -{"usage": "city", "name": "肯纳邦克波特"}, -{"usage": "city", "name": "肯辛顿"}, -{"usage": "city", "name": "肯达斯科伊格"}, -{"usage": "city", "name": "舍伯恩"}, -{"usage": "city", "name": "舒兹伯利"}, -{"usage": "city", "name": "舒格高地"}, -{"usage": "city", "name": "艾仕本罕"}, -{"usage": "city", "name": "艾伦斯敦"}, -{"usage": "city", "name": "艾兰福尔斯"}, -{"usage": "city", "name": "艾冯郡"}, -{"usage": "city", "name": "艾勒斯堡"}, -{"usage": "city", "name": "艾尔伯勒"}, -{"usage": "city", "name": "艾拉"}, -{"usage": "city", "name": "艾略特"}, -{"usage": "city", "name": "艾默斯特"}, -{"usage": "city", "name": "芒克顿"}, -{"usage": "city", "name": "芒特佛南"}, -{"usage": "city", "name": "芒特切斯"}, -{"usage": "city", "name": "芒特华盛顿"}, -{"usage": "city", "name": "苏格兰"}, -{"usage": "city", "name": "苏纳皮"}, -{"usage": "city", "name": "范布伦"}, -{"usage": "city", "name": "荒山岛"}, -{"usage": "city", "name": "莫勒尔"}, -{"usage": "city", "name": "莫尔顿伯勒"}, -{"usage": "city", "name": "莫敦"}, -{"usage": "city", "name": "莫斯科"}, -{"usage": "city", "name": "莫里斯"}, -{"usage": "city", "name": "莫里斯敦"}, -{"usage": "city", "name": "莱克威尔"}, -{"usage": "city", "name": "莱切斯特"}, -{"usage": "city", "name": "莱姆"}, -{"usage": "city", "name": "莱姆斯通"}, -{"usage": "city", "name": "莱弗里特"}, -{"usage": "city", "name": "莱德亚德"}, -{"usage": "city", "name": "莱恩斯伯勒"}, -{"usage": "city", "name": "莱明斯特"}, -{"usage": "city", "name": "莱明顿"}, -{"usage": "city", "name": "莱曼"}, -{"usage": "city", "name": "莱诺克斯"}, -{"usage": "city", "name": "莱顿"}, -{"usage": "city", "name": "菲利普"}, -{"usage": "city", "name": "菲利普斯顿"}, -{"usage": "city", "name": "菲普斯堡"}, -{"usage": "city", "name": "菲茨威廉"}, -{"usage": "city", "name": "萨巴特斯"}, -{"usage": "city", "name": "萨德伯里"}, -{"usage": "city", "name": "萨沃伊"}, -{"usage": "city", "name": "萨纳姆"}, -{"usage": "city", "name": "萨菲尔德"}, -{"usage": "city", "name": "萨里"}, -{"usage": "city", "name": "萨里"}, -{"usage": "city", "name": "萨顿"}, -{"usage": "city", "name": "萨默塞特"}, -{"usage": "city", "name": "萨默斯"}, -{"usage": "city", "name": "萨默斯沃思"}, -{"usage": "city", "name": "萨默维尔"}, -{"usage": "city", "name": "蒂尔顿"}, -{"usage": "city", "name": "蒂弗顿"}, -{"usage": "city", "name": "蒙哥马利"}, -{"usage": "city", "name": "蒙塔古"}, -{"usage": "city", "name": "蒙彼利埃"}, -{"usage": "city", "name": "蒙根"}, -{"usage": "city", "name": "蒙森"}, -{"usage": "city", "name": "蒙特维尔"}, -{"usage": "city", "name": "蒙特雷"}, -{"usage": "city", "name": "蒙蒂塞洛"}, -{"usage": "city", "name": "蒙默思"}, -{"usage": "city", "name": "蔓越莓群岛"}, -{"usage": "city", "name": "西加德纳"}, -{"usage": "city", "name": "西南港"}, -{"usage": "city", "name": "西博伊尔斯顿"}, -{"usage": "city", "name": "西哈特福德"}, -{"usage": "city", "name": "西姆斯伯里"}, -{"usage": "city", "name": "西姆斯伯里"}, -{"usage": "city", "name": "西安普顿"}, -{"usage": "city", "name": "西巴特"}, -{"usage": "city", "name": "西布里奇沃特"}, -{"usage": "city", "name": "西布鲁克"}, -{"usage": "city", "name": "西布鲁克菲尔德"}, -{"usage": "city", "name": "西帕里斯"}, -{"usage": "city", "name": "西德尼"}, -{"usage": "city", "name": "西拉特兰"}, -{"usage": "city", "name": "西摩"}, -{"usage": "city", "name": "西斯托克布里奇"}, -{"usage": "city", "name": "西斯普林菲尔德"}, -{"usage": "city", "name": "西斯蒂伯里"}, -{"usage": "city", "name": "西格林威治"}, -{"usage": "city", "name": "西沃克利"}, -{"usage": "city", "name": "西温莎"}, -{"usage": "city", "name": "西港"}, -{"usage": "city", "name": "西福克斯"}, -{"usage": "city", "name": "西纽伯里"}, -{"usage": "city", "name": "西费尔里"}, -{"usage": "city", "name": "西黑文"}, -{"usage": "city", "name": "西黑文"}, -{"usage": "city", "name": "詹姆斯顿"}, -{"usage": "city", "name": "诺丁汉"}, -{"usage": "city", "name": "诺伍德"}, -{"usage": "city", "name": "诺伯伯瑞"}, -{"usage": "city", "name": "诺克斯"}, -{"usage": "city", "name": "诺威奇"}, -{"usage": "city", "name": "诺斯伍德"}, -{"usage": "city", "name": "诺斯伯勒"}, -{"usage": "city", "name": "诺斯布里奇"}, -{"usage": "city", "name": "诺斯波特"}, -{"usage": "city", "name": "诺斯黑文"}, -{"usage": "city", "name": "诺格塔克"}, -{"usage": "city", "name": "诺森伯兰"}, -{"usage": "city", "name": "诺沃克"}, -{"usage": "city", "name": "诺福克郡"}, -{"usage": "city", "name": "诺里奇沃克"}, -{"usage": "city", "name": "诺韦尔"}, -{"usage": "city", "name": "诺顿"}, -{"usage": "city", "name": "谢尔曼"}, -{"usage": "city", "name": "谢尔本"}, -{"usage": "city", "name": "谢尔登"}, -{"usage": "city", "name": "谢尔顿"}, -{"usage": "city", "name": "谢菲尔德"}, -{"usage": "city", "name": "豪兰"}, -{"usage": "city", "name": "贝丁顿"}, -{"usage": "city", "name": "贝克斯菲尔德"}, -{"usage": "city", "name": "贝利维尔"}, -{"usage": "city", "name": "贝基特"}, -{"usage": "city", "name": "贝尔彻敦"}, -{"usage": "city", "name": "贝尔格莱德"}, -{"usage": "city", "name": "贝尔法斯特"}, -{"usage": "city", "name": "贝尔维迪尔"}, -{"usage": "city", "name": "贝尔蒙特"}, -{"usage": "city", "name": "贝弗莉"}, -{"usage": "city", "name": "贝德福德"}, -{"usage": "city", "name": "贝灵哈姆"}, -{"usage": "city", "name": "贝瑟尔"}, -{"usage": "city", "name": "贝瑟尼"}, -{"usage": "city", "name": "贝里克"}, -{"usage": "city", "name": "费奇伯格"}, -{"usage": "city", "name": "费尔利"}, -{"usage": "city", "name": "费尔法克斯"}, -{"usage": "city", "name": "费尔港"}, -{"usage": "city", "name": "费尔菲尔德"}, -{"usage": "city", "name": "费尔菲尔德堡"}, -{"usage": "city", "name": "费尔黑文"}, -{"usage": "city", "name": "费耶特"}, -{"usage": "city", "name": "费里斯堡"}, -{"usage": "city", "name": "贾弗里"}, -{"usage": "city", "name": "赛奇威克"}, -{"usage": "city", "name": "赫尔"}, -{"usage": "city", "name": "赫尔"}, -{"usage": "city", "name": "赫蒙"}, -{"usage": "city", "name": "赫西"}, -{"usage": "city", "name": "路易斯顿"}, -{"usage": "city", "name": "达克斯伯里"}, -{"usage": "city", "name": "达勒姆"}, -{"usage": "city", "name": "达德利郡"}, -{"usage": "city", "name": "达拉斯种植园"}, -{"usage": "city", "name": "达特默斯"}, -{"usage": "city", "name": "达莫斯顿"}, -{"usage": "city", "name": "达里恩"}, -{"usage": "city", "name": "达马瑞斯哥塔"}, -{"usage": "city", "name": "达默"}, -{"usage": "city", "name": "迈诺特"}, -{"usage": "city", "name": "迦南"}, -{"usage": "city", "name": "迦太基"}, -{"usage": "city", "name": "迪克斯菲尔德"}, -{"usage": "city", "name": "迪克斯蒙特"}, -{"usage": "city", "name": "迪尔艾尔"}, -{"usage": "city", "name": "迪尔菲尔德"}, -{"usage": "city", "name": "迪斯伯里"}, -{"usage": "city", "name": "迪普里弗"}, -{"usage": "city", "name": "迪林厄姆"}, -{"usage": "city", "name": "迪灵"}, -{"usage": "city", "name": "逸岭种植园"}, -{"usage": "city", "name": "道尔顿"}, -{"usage": "city", "name": "道格拉斯"}, -{"usage": "city", "name": "邓斯特布尔"}, -{"usage": "city", "name": "那不勒斯"}, -{"usage": "city", "name": "都柏林"}, -{"usage": "city", "name": "里兹伯勒"}, -{"usage": "city", "name": "里士满"}, -{"usage": "city", "name": "里奇福德"}, -{"usage": "city", "name": "里奇菲尔德"}, -{"usage": "city", "name": "里德种植园"}, -{"usage": "city", "name": "里斯本"}, -{"usage": "city", "name": "里普利"}, -{"usage": "city", "name": "里维尔"}, -{"usage": "city", "name": "金士顿"}, -{"usage": "city", "name": "金斯伯里种植园"}, -{"usage": "city", "name": "金曼"}, -{"usage": "city", "name": "金菲尔德"}, -{"usage": "city", "name": "锡尔斯蒙特"}, -{"usage": "city", "name": "锡康克"}, -{"usage": "city", "name": "锡楚埃特"}, -{"usage": "city", "name": "长屿"}, -{"usage": "city", "name": "门登"}, -{"usage": "city", "name": "门罗"}, -{"usage": "city", "name": "阿什兰"}, -{"usage": "city", "name": "阿什比"}, -{"usage": "city", "name": "阿什福德"}, -{"usage": "city", "name": "阿什菲尔德"}, -{"usage": "city", "name": "阿伦德尔"}, -{"usage": "city", "name": "阿克斯布里奇"}, -{"usage": "city", "name": "阿克沃思"}, -{"usage": "city", "name": "阿克顿"}, -{"usage": "city", "name": "阿博特"}, -{"usage": "city", "name": "阿奎那"}, -{"usage": "city", "name": "阿宾顿"}, -{"usage": "city", "name": "阿尔弗雷德"}, -{"usage": "city", "name": "阿尔斯德"}, -{"usage": "city", "name": "阿尔比恩"}, -{"usage": "city", "name": "阿尔纳"}, -{"usage": "city", "name": "阿库斯内"}, -{"usage": "city", "name": "阿拉加什"}, -{"usage": "city", "name": "阿普尔顿"}, -{"usage": "city", "name": "阿格瓦姆"}, -{"usage": "city", "name": "阿灵顿"}, -{"usage": "city", "name": "阿特尔伯勒"}, -{"usage": "city", "name": "阿特金森"}, -{"usage": "city", "name": "阿狄森"}, -{"usage": "city", "name": "阿瑟尔"}, -{"usage": "city", "name": "阿盖尔"}, -{"usage": "city", "name": "阿米蒂"}, -{"usage": "city", "name": "阿罗斯克"}, -{"usage": "city", "name": "阿耶尔"}, -{"usage": "city", "name": "陶顿"}, -{"usage": "city", "name": "雅典"}, -{"usage": "city", "name": "雅茅斯"}, -{"usage": "city", "name": "雪利"}, -{"usage": "city", "name": "雷丁"}, -{"usage": "city", "name": "雷普敦"}, -{"usage": "city", "name": "雷纳姆"}, -{"usage": "city", "name": "雷蒙德"}, -{"usage": "city", "name": "雷霍博特"}, -{"usage": "city", "name": "霍克赛特"}, -{"usage": "city", "name": "霍兰"}, -{"usage": "city", "name": "霍利"}, -{"usage": "city", "name": "霍利奥克"}, -{"usage": "city", "name": "霍利斯"}, -{"usage": "city", "name": "霍奇登"}, -{"usage": "city", "name": "霍尔布鲁克"}, -{"usage": "city", "name": "霍尔德内斯"}, -{"usage": "city", "name": "霍尔登"}, -{"usage": "city", "name": "霍尔顿"}, -{"usage": "city", "name": "霍普"}, -{"usage": "city", "name": "霍普戴尔"}, -{"usage": "city", "name": "霍普金顿"}, -{"usage": "city", "name": "霍里斯顿"}, -{"usage": "city", "name": "韦伯拉汉"}, -{"usage": "city", "name": "韦伯斯特"}, -{"usage": "city", "name": "韦伯斯特种植园"}, -{"usage": "city", "name": "韦克菲尔德"}, -{"usage": "city", "name": "韦兰"}, -{"usage": "city", "name": "韦兹菲尔德"}, -{"usage": "city", "name": "韦勒姆"}, -{"usage": "city", "name": "韦尔"}, -{"usage": "city", "name": "韦尔勒"}, -{"usage": "city", "name": "韦尔德"}, -{"usage": "city", "name": "韦尔斯"}, -{"usage": "city", "name": "韦布里奇"}, -{"usage": "city", "name": "韦德"}, -{"usage": "city", "name": "韦恩"}, -{"usage": "city", "name": "韦斯利"}, -{"usage": "city", "name": "韦斯特伯勒"}, -{"usage": "city", "name": "韦斯特布鲁克"}, -{"usage": "city", "name": "韦斯特福德"}, -{"usage": "city", "name": "韦斯特菲尔德"}, -{"usage": "city", "name": "韦斯顿"}, -{"usage": "city", "name": "韦特"}, -{"usage": "city", "name": "韦瑟斯菲尔德"}, -{"usage": "city", "name": "韦纳尔黑文"}, -{"usage": "city", "name": "韦肖尔"}, -{"usage": "city", "name": "韦茅斯"}, -{"usage": "city", "name": "韦那姆"}, -{"usage": "city", "name": "马什皮"}, -{"usage": "city", "name": "马什菲尔德"}, -{"usage": "city", "name": "马克斯菲尔德"}, -{"usage": "city", "name": "马加洛韦种植园"}, -{"usage": "city", "name": "马尔伯勒"}, -{"usage": "city", "name": "马尔堡"}, -{"usage": "city", "name": "马布尔黑德"}, -{"usage": "city", "name": "马德里"}, -{"usage": "city", "name": "马恰斯波特"}, -{"usage": "city", "name": "马斯希尔"}, -{"usage": "city", "name": "马柴厄斯"}, -{"usage": "city", "name": "马波丽"}, -{"usage": "city", "name": "马泰森斯特"}, -{"usage": "city", "name": "马洛"}, -{"usage": "city", "name": "马特岛"}, -{"usage": "city", "name": "马特沃姆凯格"}, -{"usage": "city", "name": "马特波伊西特"}, -{"usage": "city", "name": "马萨迪斯"}, -{"usage": "city", "name": "马蒂尼克斯岛"}, -{"usage": "city", "name": "马蒂本普"}, -{"usage": "city", "name": "马达沃斯卡"}, -{"usage": "city", "name": "马里亚维尔"}, -{"usage": "city", "name": "马里恩"}, -{"usage": "city", "name": "高岛"}, -{"usage": "city", "name": "鲁伯特"}, -{"usage": "city", "name": "鲍尔班克"}, -{"usage": "city", "name": "鲍德温"}, -{"usage": "city", "name": "鲍村"}, -{"usage": "city", "name": "鲍登"}, -{"usage": "city", "name": "麦洛"}, -{"usage": "city", "name": "麦迪逊"}, -{"usage": "city", "name": "麦阔霍克种植园"}, -{"usage": "city", "name": "麻萨诸塞州曼彻斯特"}, -{"usage": "city", "name": "黎凡特"}, -{"usage": "city", "name": "黎巴嫩"}, -{"usage": "city", "name": "黑弗里尔"}, -{"usage": "city", "name": "默瑟"}, -{"usage": "city", "name": "齐坦丹"}, -{"usage": "family", "gender": "unisex", "name": "亚历山大"}, -{"usage": "family", "gender": "unisex", "name": "亚当斯"}, -{"usage": "family", "gender": "unisex", "name": "亨德森"}, -{"usage": "family", "gender": "unisex", "name": "伍德"}, -{"usage": "family", "gender": "unisex", "name": "休斯"}, -{"usage": "family", "gender": "unisex", "name": "佩里"}, -{"usage": "family", "gender": "unisex", "name": "佩雷斯"}, -{"usage": "family", "gender": "unisex", "name": "克拉克"}, -{"usage": "family", "gender": "unisex", "name": "冈萨雷斯"}, -{"usage": "family", "gender": "unisex", "name": "冈萨雷斯"}, -{"usage": "family", "gender": "unisex", "name": "凯利"}, -{"usage": "family", "gender": "unisex", "name": "刘易斯"}, -{"usage": "family", "gender": "unisex", "name": "加西亚"}, -{"usage": "family", "gender": "unisex", "name": "华盛顿"}, -{"usage": "family", "gender": "unisex", "name": "卡特"}, -{"usage": "family", "gender": "unisex", "name": "史密斯"}, -{"usage": "family", "gender": "unisex", "name": "哈里斯"}, -{"usage": "family", "gender": "unisex", "name": "坎贝尔"}, -{"usage": "family", "gender": "unisex", "name": "埃文斯"}, -{"usage": "family", "gender": "unisex", "name": "墨菲"}, -{"usage": "family", "gender": "unisex", "name": "始音"}, -{"usage": "family", "gender": "unisex", "name": "威尔森"}, -{"usage": "family", "gender": "unisex", "name": "威廉姆斯"}, -{"usage": "family", "gender": "unisex", "name": "娜吉雅"}, -{"usage": "family", "gender": "unisex", "name": "安德森"}, -{"usage": "family", "gender": "unisex", "name": "尼尔森"}, -{"usage": "family", "gender": "unisex", "name": "巴恩斯"}, -{"usage": "family", "gender": "unisex", "name": "巴特勒"}, -{"usage": "family", "gender": "unisex", "name": "布朗"}, -{"usage": "family", "gender": "unisex", "name": "布莱恩特"}, -{"usage": "family", "gender": "unisex", "name": "布鲁克斯"}, -{"usage": "family", "gender": "unisex", "name": "希尔"}, -{"usage": "family", "gender": "unisex", "name": "帕克"}, -{"usage": "family", "gender": "unisex", "name": "帕特森"}, -{"usage": "family", "gender": "unisex", "name": "库克"}, -{"usage": "family", "gender": "unisex", "name": "库珀"}, -{"usage": "family", "gender": "unisex", "name": "弗洛雷斯"}, -{"usage": "family", "gender": "unisex", "name": "怀特"}, -{"usage": "family", "gender": "unisex", "name": "戴维斯"}, -{"usage": "family", "gender": "unisex", "name": "托雷斯"}, -{"usage": "family", "gender": "unisex", "name": "托马斯"}, -{"usage": "family", "gender": "unisex", "name": "拉塞尔"}, -{"usage": "family", "gender": "unisex", "name": "拉米雷斯"}, -{"usage": "family", "gender": "unisex", "name": "摩尔"}, -{"usage": "family", "gender": "unisex", "name": "摩根"}, -{"usage": "family", "gender": "unisex", "name": "斯图尔特"}, -{"usage": "family", "gender": "unisex", "name": "斯科特"}, -{"usage": "family", "gender": "unisex", "name": "普赖斯"}, -{"usage": "family", "gender": "unisex", "name": "本内特"}, -{"usage": "family", "gender": "unisex", "name": "李"}, -{"usage": "family", "gender": "unisex", "name": "杨"}, -{"usage": "family", "gender": "unisex", "name": "杰克逊"}, -{"usage": "family", "gender": "unisex", "name": "柯林斯"}, -{"usage": "family", "gender": "unisex", "name": "格林"}, -{"usage": "family", "gender": "unisex", "name": "格里芬"}, -{"usage": "family", "gender": "unisex", "name": "格雷"}, -{"usage": "family", "gender": "unisex", "name": "桑切斯"}, -{"usage": "family", "gender": "unisex", "name": "桑德斯"}, -{"usage": "family", "gender": "unisex", "name": "汤普森"}, -{"usage": "family", "gender": "unisex", "name": "沃克"}, -{"usage": "family", "gender": "unisex", "name": "沃德"}, -{"usage": "family", "gender": "unisex", "name": "沃森"}, -{"usage": "family", "gender": "unisex", "name": "泰勒"}, -{"usage": "family", "gender": "unisex", "name": "洛佩斯"}, -{"usage": "family", "gender": "unisex", "name": "浪"}, -{"usage": "family", "gender": "unisex", "name": "海耶斯"}, -{"usage": "family", "gender": "unisex", "name": "爱德华兹"}, -{"usage": "family", "gender": "unisex", "name": "特纳"}, -{"usage": "family", "gender": "unisex", "name": "理查森"}, -{"usage": "family", "gender": "unisex", "name": "琼斯"}, -{"usage": "family", "gender": "unisex", "name": "皮特森"}, -{"usage": "family", "gender": "unisex", "name": "福斯特"}, -{"usage": "family", "gender": "unisex", "name": "科尔曼"}, -{"usage": "family", "gender": "unisex", "name": "米切尔"}, -{"usage": "family", "gender": "unisex", "name": "米勒"}, -{"usage": "family", "gender": "unisex", "name": "约翰逊"}, -{"usage": "family", "gender": "unisex", "name": "罗伯茨"}, -{"usage": "family", "gender": "unisex", "name": "罗宾逊"}, -{"usage": "family", "gender": "unisex", "name": "罗德里格斯"}, -{"usage": "family", "gender": "unisex", "name": "罗斯"}, -{"usage": "family", "gender": "unisex", "name": "罗杰斯"}, -{"usage": "family", "gender": "unisex", "name": "考克斯"}, -{"usage": "family", "gender": "unisex", "name": "艾伦"}, -{"usage": "family", "gender": "unisex", "name": "范·王尔德"}, -{"usage": "family", "gender": "unisex", "name": "莫里斯"}, -{"usage": "family", "gender": "unisex", "name": "菲利普"}, -{"usage": "family", "gender": "unisex", "name": "西蒙斯"}, -{"usage": "family", "gender": "unisex", "name": "詹姆斯"}, -{"usage": "family", "gender": "unisex", "name": "詹金斯"}, -{"usage": "family", "gender": "unisex", "name": "贝克"}, -{"usage": "family", "gender": "unisex", "name": "贝利"}, -{"usage": "family", "gender": "unisex", "name": "贝尔"}, -{"usage": "family", "gender": "unisex", "name": "赖特"}, -{"usage": "family", "gender": "unisex", "name": "赫尔南德斯"}, -{"usage": "family", "gender": "unisex", "name": "迪亚兹"}, -{"usage": "family", "gender": "unisex", "name": "里德"}, -{"usage": "family", "gender": "unisex", "name": "里维拉"}, -{"usage": "family", "gender": "unisex", "name": "金"}, -{"usage": "family", "gender": "unisex", "name": "霍华德"}, -{"usage": "family", "gender": "unisex", "name": "霍尔"}, -{"usage": "family", "gender": "unisex", "name": "韦斯特"}, -{"usage": "family", "gender": "unisex", "name": "马丁"}, -{"usage": "family", "gender": "unisex", "name": "马丁内斯"}, -{"usage": "family", "gender": "unisex", "name": "鲍威尔"}, -{"usage": "given", "gender": "female", "name": "乔斯林"}, -{"usage": "given", "gender": "female", "name": "亚历克西斯"}, -{"usage": "given", "gender": "female", "name": "亚历山德拉"}, -{"usage": "given", "gender": "female", "name": "亚纪子"}, -{"usage": "given", "gender": "female", "name": "亚莉克莎"}, -{"usage": "given", "gender": "female", "name": "伊丽莎白"}, -{"usage": "given", "gender": "female", "name": "伊芙琳"}, -{"usage": "given", "gender": "female", "name": "伊莎贝尔"}, -{"usage": "given", "gender": "female", "name": "伊莎贝拉"}, -{"usage": "given", "gender": "female", "name": "佐伊"}, -{"usage": "given", "gender": "female", "name": "佐伊"}, -{"usage": "given", "gender": "female", "name": "佩奇"}, -{"usage": "given", "gender": "female", "name": "佩顿"}, -{"usage": "given", "gender": "female", "name": "依莎贝尔"}, -{"usage": "given", "gender": "female", "name": "光"}, -{"usage": "given", "gender": "female", "name": "克洛伊"}, -{"usage": "given", "gender": "female", "name": "克莱儿"}, -{"usage": "given", "gender": "female", "name": "内瓦艾"}, -{"usage": "given", "gender": "female", "name": "凯拉"}, -{"usage": "given", "gender": "female", "name": "凯特琳"}, -{"usage": "given", "gender": "female", "name": "凯特琳"}, -{"usage": "given", "gender": "female", "name": "凯莉"}, -{"usage": "given", "gender": "female", "name": "凯莉"}, -{"usage": "given", "gender": "female", "name": "凯蒂"}, -{"usage": "given", "gender": "female", "name": "利亚"}, -{"usage": "given", "gender": "female", "name": "加布里埃"}, -{"usage": "given", "gender": "female", "name": "努库"}, -{"usage": "given", "gender": "female", "name": "劳伦"}, -{"usage": "given", "gender": "female", "name": "卡洛琳"}, -{"usage": "given", "gender": "female", "name": "卡米拉"}, -{"usage": "given", "gender": "female", "name": "吉安娜"}, -{"usage": "given", "gender": "female", "name": "嘉柏丽尔"}, -{"usage": "given", "gender": "female", "name": "夏树"}, -{"usage": "given", "gender": "female", "name": "夏洛特"}, -{"usage": "given", "gender": "female", "name": "奥布里"}, -{"usage": "given", "gender": "female", "name": "奥德丽"}, -{"usage": "given", "gender": "female", "name": "奥特姆"}, -{"usage": "given", "gender": "female", "name": "奥莉维亚"}, -{"usage": "given", "gender": "female", "name": "娜塔莉"}, -{"usage": "given", "gender": "female", "name": "安吉莉娜"}, -{"usage": "given", "gender": "female", "name": "安娜"}, -{"usage": "given", "gender": "female", "name": "安德烈"}, -{"usage": "given", "gender": "female", "name": "布丽安娜"}, -{"usage": "given", "gender": "female", "name": "布鲁克"}, -{"usage": "given", "gender": "female", "name": "布鲁克林"}, -{"usage": "given", "gender": "female", "name": "希瑟"}, -{"usage": "given", "gender": "female", "name": "德斯蒂尼"}, -{"usage": "given", "gender": "female", "name": "摩根"}, -{"usage": "given", "gender": "female", "name": "朱莉娅"}, -{"usage": "given", "gender": "female", "name": "杰妮西丝"}, -{"usage": "given", "gender": "female", "name": "杰西"}, -{"usage": "given", "gender": "female", "name": "杰西卡"}, -{"usage": "given", "gender": "female", "name": "格雷西"}, -{"usage": "given", "gender": "female", "name": "梅勒妮"}, -{"usage": "given", "gender": "female", "name": "梅根"}, -{"usage": "given", "gender": "female", "name": "汉娜"}, -{"usage": "given", "gender": "female", "name": "海莉"}, -{"usage": "given", "gender": "female", "name": "特里妮蒂"}, -{"usage": "given", "gender": "female", "name": "玛丽"}, -{"usage": "given", "gender": "female", "name": "玛丽亚"}, -{"usage": "given", "gender": "female", "name": "玛丽亚"}, -{"usage": "given", "gender": "female", "name": "玛凯拉"}, -{"usage": "given", "gender": "female", "name": "玛德琳"}, -{"usage": "given", "gender": "female", "name": "玛雅"}, -{"usage": "given", "gender": "female", "name": "珍"}, -{"usage": "given", "gender": "female", "name": "瓦妮莎"}, -{"usage": "given", "gender": "female", "name": "瓦莱里娅"}, -{"usage": "given", "gender": "female", "name": "由纪"}, -{"usage": "given", "gender": "female", "name": "相泽"}, -{"usage": "given", "gender": "female", "name": "米娅"}, -{"usage": "given", "gender": "female", "name": "索菲"}, -{"usage": "given", "gender": "female", "name": "索菲亚"}, -{"usage": "given", "gender": "female", "name": "维多利亚"}, -{"usage": "given", "gender": "female", "name": "艾利森"}, -{"usage": "given", "gender": "female", "name": "艾弗里"}, -{"usage": "given", "gender": "female", "name": "艾拉"}, -{"usage": "given", "gender": "female", "name": "艾玛"}, -{"usage": "given", "gender": "female", "name": "艾米丽"}, -{"usage": "given", "gender": "female", "name": "莉莉"}, -{"usage": "given", "gender": "female", "name": "莉莲"}, -{"usage": "given", "gender": "female", "name": "莎拉"}, -{"usage": "given", "gender": "female", "name": "莱利"}, -{"usage": "given", "gender": "female", "name": "萨凡纳"}, -{"usage": "given", "gender": "female", "name": "萨拉"}, -{"usage": "given", "gender": "female", "name": "萨曼莎"}, -{"usage": "given", "gender": "female", "name": "葛瑞丝"}, -{"usage": "given", "gender": "female", "name": "蕾拉"}, -{"usage": "given", "gender": "female", "name": "西德妮"}, -{"usage": "given", "gender": "female", "name": "詹尼弗"}, -{"usage": "given", "gender": "female", "name": "贝利"}, -{"usage": "given", "gender": "female", "name": "费斯"}, -{"usage": "given", "gender": "female", "name": "贾丝敏"}, -{"usage": "given", "gender": "female", "name": "金姆"}, -{"usage": "given", "gender": "female", "name": "金柏莉"}, -{"usage": "given", "gender": "female", "name": "阿丽亚娜"}, -{"usage": "given", "gender": "female", "name": "阿什利"}, -{"usage": "given", "gender": "female", "name": "阿比盖尔"}, -{"usage": "given", "gender": "female", "name": "阿狄森"}, -{"usage": "given", "gender": "female", "name": "阿瓦"}, -{"usage": "given", "gender": "female", "name": "阿米莉娅"}, -{"usage": "given", "gender": "female", "name": "阿莉娅"}, -{"usage": "given", "gender": "female", "name": "阿莉莎"}, -{"usage": "given", "gender": "female", "name": "阿里安娜"}, -{"usage": "given", "gender": "female", "name": "雷切尔"}, -{"usage": "given", "gender": "female", "name": "马德琳"}, -{"usage": "given", "gender": "female", "name": "麦迪逊"}, -{"usage": "given", "gender": "male", "name": "丹尼尔"}, -{"usage": "given", "gender": "male", "name": "乔丹"}, -{"usage": "given", "gender": "male", "name": "乔纳森"}, -{"usage": "given", "gender": "male", "name": "亚历克斯"}, -{"usage": "given", "gender": "male", "name": "亚历山大"}, -{"usage": "given", "gender": "male", "name": "亚当"}, -{"usage": "given", "gender": "male", "name": "亨利"}, -{"usage": "given", "gender": "male", "name": "亨特"}, -{"usage": "given", "gender": "male", "name": "京介"}, -{"usage": "given", "gender": "male", "name": "以赛亚"}, -{"usage": "given", "gender": "male", "name": "伊利亚"}, -{"usage": "given", "gender": "male", "name": "伊恩"}, -{"usage": "given", "gender": "male", "name": "伊森"}, -{"usage": "given", "gender": "male", "name": "伊莱"}, -{"usage": "given", "gender": "male", "name": "克来勃"}, -{"usage": "given", "gender": "male", "name": "克里斯托弗"}, -{"usage": "given", "gender": "male", "name": "克里斯蒂安"}, -{"usage": "given", "gender": "male", "name": "兰顿"}, -{"usage": "given", "gender": "male", "name": "凯塔"}, -{"usage": "given", "gender": "male", "name": "凯尔"}, -{"usage": "given", "gender": "male", "name": "凯文"}, -{"usage": "given", "gender": "male", "name": "利亚姆"}, -{"usage": "given", "gender": "male", "name": "加布里埃尔"}, -{"usage": "given", "gender": "male", "name": "加文"}, -{"usage": "given", "gender": "male", "name": "南森"}, -{"usage": "given", "gender": "male", "name": "卡梅伦"}, -{"usage": "given", "gender": "male", "name": "卡森"}, -{"usage": "given", "gender": "male", "name": "卡洛斯"}, -{"usage": "given", "gender": "male", "name": "卡特"}, -{"usage": "given", "gender": "male", "name": "卡登"}, -{"usage": "given", "gender": "male", "name": "卡登"}, -{"usage": "given", "gender": "male", "name": "卢克"}, -{"usage": "given", "gender": "male", "name": "卢卡斯"}, -{"usage": "given", "gender": "male", "name": "埃文"}, -{"usage": "given", "gender": "male", "name": "埃本"}, -{"usage": "given", "gender": "male", "name": "埃里克"}, -{"usage": "given", "gender": "male", "name": "基拉"}, -{"usage": "given", "gender": "male", "name": "塞巴斯森"}, -{"usage": "given", "gender": "male", "name": "塞缪尔"}, -{"usage": "given", "gender": "male", "name": "多米尼克"}, -{"usage": "given", "gender": "male", "name": "大佑"}, -{"usage": "given", "gender": "male", "name": "大卫"}, -{"usage": "given", "gender": "male", "name": "奥斯丁"}, -{"usage": "given", "gender": "male", "name": "威廉"}, -{"usage": "given", "gender": "male", "name": "安东尼"}, -{"usage": "given", "gender": "male", "name": "安吉尔"}, -{"usage": "given", "gender": "male", "name": "安德鲁"}, -{"usage": "given", "gender": "male", "name": "尼古拉斯"}, -{"usage": "given", "gender": "male", "name": "布兰登"}, -{"usage": "given", "gender": "male", "name": "布罗德"}, -{"usage": "given", "gender": "male", "name": "布莱克"}, -{"usage": "given", "gender": "male", "name": "布莱恩"}, -{"usage": "given", "gender": "male", "name": "布赖恩"}, -{"usage": "given", "gender": "male", "name": "布雷登"}, -{"usage": "given", "gender": "male", "name": "布雷迪"}, -{"usage": "given", "gender": "male", "name": "库珀"}, -{"usage": "given", "gender": "male", "name": "康纳"}, -{"usage": "given", "gender": "male", "name": "怀亚特"}, -{"usage": "given", "gender": "male", "name": "扎卡里"}, -{"usage": "given", "gender": "male", "name": "托马斯"}, -{"usage": "given", "gender": "male", "name": "本杰明"}, -{"usage": "given", "gender": "male", "name": "朱利安"}, -{"usage": "given", "gender": "male", "name": "杰克"}, -{"usage": "given", "gender": "male", "name": "杰克逊"}, -{"usage": "given", "gender": "male", "name": "杰森"}, -{"usage": "given", "gender": "male", "name": "杰登"}, -{"usage": "given", "gender": "male", "name": "杰登"}, -{"usage": "given", "gender": "male", "name": "杰西"}, -{"usage": "given", "gender": "male", "name": "查尔斯"}, -{"usage": "given", "gender": "male", "name": "梅森"}, -{"usage": "given", "gender": "male", "name": "欧文"}, -{"usage": "given", "gender": "male", "name": "泰勒"}, -{"usage": "given", "gender": "male", "name": "泽维尔"}, -{"usage": "given", "gender": "male", "name": "洛根"}, -{"usage": "given", "gender": "male", "name": "海登"}, -{"usage": "given", "gender": "male", "name": "特利斯坦"}, -{"usage": "given", "gender": "male", "name": "狄伦"}, -{"usage": "given", "gender": "male", "name": "科尔"}, -{"usage": "given", "gender": "male", "name": "科尔顿"}, -{"usage": "given", "gender": "male", "name": "竹内"}, -{"usage": "given", "gender": "male", "name": "约书亚"}, -{"usage": "given", "gender": "male", "name": "约瑟"}, -{"usage": "given", "gender": "male", "name": "约瑟夫"}, -{"usage": "given", "gender": "male", "name": "约翰"}, -{"usage": "given", "gender": "male", "name": "约西亚"}, -{"usage": "given", "gender": "male", "name": "纳撒尼尔"}, -{"usage": "given", "gender": "male", "name": "罗伯特"}, -{"usage": "given", "gender": "male", "name": "耶利米"}, -{"usage": "given", "gender": "male", "name": "肖恩"}, -{"usage": "given", "gender": "male", "name": "胡安"}, -{"usage": "given", "gender": "male", "name": "艾丹"}, -{"usage": "given", "gender": "male", "name": "艾伦"}, -{"usage": "given", "gender": "male", "name": "艾德里安"}, -{"usage": "given", "gender": "male", "name": "艾登"}, -{"usage": "given", "gender": "male", "name": "艾登"}, -{"usage": "given", "gender": "male", "name": "艾萨克"}, -{"usage": "given", "gender": "male", "name": "蔡斯"}, -{"usage": "given", "gender": "male", "name": "詹姆斯"}, -{"usage": "given", "gender": "male", "name": "让东"}, -{"usage": "given", "gender": "male", "name": "诺亚"}, -{"usage": "given", "gender": "male", "name": "贾斯汀"}, -{"usage": "given", "gender": "male", "name": "赖安"}, -{"usage": "given", "gender": "male", "name": "路易斯"}, -{"usage": "given", "gender": "male", "name": "迈克尔"}, -{"usage": "given", "gender": "male", "name": "迭戈"}, -{"usage": "given", "gender": "male", "name": "雅各布"}, -{"usage": "given", "gender": "male", "name": "马修"}, -{"usage": "world", "name": "阿拉丁"}, -{"usage": "world", "name": "阿拉坤"}, -{"usage": "world", "name": "阿拉曼斯"}, -{"usage": "world", "name": "阿拉莫"}, -{"usage": "world", "name": "阿拉莫戈多"}, -{"usage": "world", "name": "阿拉莫萨"}, -{"usage": "world", "name": "阿拉莫塔"}, -{"usage": "world", "name": "阿兰李德"}, -{"usage": "world", "name": "阿拉巴哈"}, -{"usage": "world", "name": "阿尔巴"}, -{"usage": "world", "name": "阿尔巴尼"}, -{"usage": "world", "name": "阿尔比尼"}, -{"usage": "world", "name": "阿伯特"}, -{"usage": "world", "name": "阿伯顿"}, -{"usage": "world", "name": "阿尔宾"}, -{"usage": "world", "name": "阿伯尔"}, -{"usage": "world", "name": "阿博莱特"}, -{"usage": "world", "name": "阿伯奎科"}, -{"usage": "world", "name": "阿尔堡"}, -{"usage": "world", "name": "阿加德"}, -{"usage": "world", "name": "伯明翰"}, -{"usage": "world", "name": "蒙哥马利"}, -{"usage": "world", "name": "莫比尔县"}, -{"usage": "world", "name": "安尼斯顿"}, -{"usage": "world", "name": "加兹登"}, -{"usage": "world", "name": "凤凰城"}, -{"usage": "world", "name": "斯科茨代尔"}, -{"usage": "world", "name": "坦佩"}, -{"usage": "world", "name": "巴克艾"}, -{"usage": "world", "name": "钱德勒"}, -{"usage": "world", "name": "埃尔拉多"}, -{"usage": "world", "name": "琼斯伯勒"}, -{"usage": "world", "name": "潘恩崖"}, -{"usage": "world", "name": "小石城"}, -{"usage": "world", "name": "费耶特维尔"}, -{"usage": "world", "name": "史密斯堡"}, -{"usage": "world", "name": "英哩议院"}, -{"usage": "world", "name": "基洛纳"}, -{"usage": "world", "name": "乔治王子城"}, -{"usage": "world", "name": "莫德斯托"}, -{"usage": "world", "name": "洛杉矶"}, -{"usage": "world", "name": "蒙特利"}, -{"usage": "world", "name": "圣何塞"}, -{"usage": "world", "name": "旧金山"}, -{"usage": "world", "name": "奥克兰"}, -{"usage": "world", "name": "伯克利"}, -{"usage": "world", "name": "核桃溪"}, -{"usage": "world", "name": "阿尔图拉斯"}, -{"usage": "world", "name": "奇科"}, -{"usage": "world", "name": "雷丁"}, -{"usage": "world", "name": "弗雷斯诺"}, -{"usage": "world", "name": "诺沃克"}, -{"usage": "world", "name": "唐尼"}, -{"usage": "world", "name": "长堤"}, -{"usage": "world", "name": "圣迭戈"}, -{"usage": "world", "name": "伯班克"}, -{"usage": "world", "name": "格伦代尔"}, -{"usage": "world", "name": "南帕萨迪纳"}, -{"usage": "world", "name": "阿卡迪亚"}, -{"usage": "world", "name": "洛斯拉图斯"}, -{"usage": "world", "name": "帕洛阿尔托"}, -{"usage": "world", "name": "南旧金山"}, -{"usage": "world", "name": "尤里卡"}, -{"usage": "world", "name": "圣罗莎"}, -{"usage": "world", "name": "索诺玛"}, -{"usage": "world", "name": "阿纳海姆"}, -{"usage": "world", "name": "巴斯托"}, -{"usage": "world", "name": "棕榈泉"}, -{"usage": "world", "name": "贝克斯"}, -{"usage": "world", "name": "圣巴巴拉"}, -{"usage": "world", "name": "文图拉"}, -{"usage": "world", "name": "北好莱坞"}, -{"usage": "world", "name": "圣费尔南多"}, -{"usage": "world", "name": "萨利纳斯"}, -{"usage": "world", "name": "索拉纳海滩"}, -{"usage": "world", "name": "里弗塞德"}, -{"usage": "world", "name": "圣贝纳迪诺"}, -{"usage": "world", "name": "萨克拉门托"}, -{"usage": "world", "name": "普莱森"}, -{"usage": "world", "name": "欧文"}, -{"usage": "world", "name": "拉古纳"}, -{"usage": "world", "name": "尼古湖"}, -{"usage": "world", "name": "科罗拉多斯普林斯"}, -{"usage": "world", "name": "普韦布洛"}, -{"usage": "world", "name": "博尔德"}, -{"usage": "world", "name": "丹佛"}, -{"usage": "world", "name": "阿斯彭"}, -{"usage": "world", "name": "柯林斯堡"}, -{"usage": "world", "name": "大章克申"}, -{"usage": "world", "name": "布里奇波特"}, -{"usage": "world", "name": "纽黑文"}, -{"usage": "world", "name": "哈特福德"}, -{"usage": "world", "name": "基韦斯特"}, -{"usage": "world", "name": "基西米"}, -{"usage": "world", "name": "盖恩斯维尔"}, -{"usage": "world", "name": "奥兰多"}, -{"usage": "world", "name": "博卡拉顿"}, -{"usage": "world", "name": "塞巴斯蒂安"}, -{"usage": "world", "name": "西棕榈滩"}, -{"usage": "world", "name": "克利尔沃特"}, -{"usage": "world", "name": "北迈阿密"}, -{"usage": "world", "name": "圣彼得堡"}, -{"usage": "world", "name": "坦帕"}, -{"usage": "world", "name": "巴拿马城"}, -{"usage": "world", "name": "彭萨科拉"}, -{"usage": "world", "name": "塔拉哈西"}, -{"usage": "world", "name": "碧湖花园"}, -{"usage": "world", "name": "杰克逊维尔"}, -{"usage": "world", "name": "迈尔斯堡"}, -{"usage": "world", "name": "那不勒斯"}, -{"usage": "world", "name": "萨拉索塔"}, -{"usage": "world", "name": "劳德代尔堡"}, -{"usage": "world", "name": "阿梅里克斯"}, -{"usage": "world", "name": "班布里奇"}, -{"usage": "world", "name": "瓦尔多斯塔"}, -{"usage": "world", "name": "华纳罗宾斯"}, -{"usage": "world", "name": "亚特兰大"}, -{"usage": "world", "name": "阿尔法利塔"}, -{"usage": "world", "name": "奥古斯塔"}, -{"usage": "world", "name": "罗马"}, -{"usage": "world", "name": "亚特兰大郊区"}, -{"usage": "world", "name": "不伦瑞克"}, -{"usage": "world", "name": "梅肯"}, -{"usage": "world", "name": "萨凡纳"}, -{"usage": "world", "name": "韦克罗斯"}, -{"usage": "world", "name": "香槟分校"}, -{"usage": "world", "name": "皮奥里亚"}, -{"usage": "world", "name": "岩岛"}, -{"usage": "world", "name": "奥尔顿"}, -{"usage": "world", "name": "开罗"}, -{"usage": "world", "name": "东圣路易斯"}, -{"usage": "world", "name": "奥罗拉"}, -{"usage": "world", "name": "内珀维尔"}, -{"usage": "world", "name": "奥克布鲁克台"}, -{"usage": "world", "name": "芝加哥郊区"}, -{"usage": "world", "name": "乔利埃特"}, -{"usage": "world", "name": "拉萨尔"}, -{"usage": "world", "name": "罗克福德"}, -{"usage": "world", "name": "芝加哥"}, -{"usage": "world", "name": "埃文斯顿"}, -{"usage": "world", "name": "沃基"}, -{"usage": "world", "name": "韦恩堡"}, -{"usage": "world", "name": "加里"}, -{"usage": "world", "name": "哈蒙德"}, -{"usage": "world", "name": "南湾"}, -{"usage": "world", "name": "印第安纳波利斯"}, -{"usage": "world", "name": "科科莫"}, -{"usage": "world", "name": "埃文斯维尔"}, -{"usage": "world", "name": "特雷霍特"}, -{"usage": "world", "name": "锡达拉皮兹"}, -{"usage": "world", "name": "达文波特"}, -{"usage": "world", "name": "迪比克"}, -{"usage": "world", "name": "滑铁卢"}, -{"usage": "world", "name": "埃姆斯"}, -{"usage": "world", "name": "德梅因"}, -{"usage": "world", "name": "道奇堡"}, -{"usage": "world", "name": "克雷斯顿"}, -{"usage": "world", "name": "梅森城"}, -{"usage": "world", "name": "康瑟尔布拉夫斯"}, -{"usage": "world", "name": "苏城"}, -{"usage": "world", "name": "柯立芝"}, -{"usage": "world", "name": "道奇城"}, -{"usage": "world", "name": "哈钦森"}, -{"usage": "world", "name": "威奇托"}, -{"usage": "world", "name": "托皮卡"}, -{"usage": "world", "name": "曼哈顿"}, -{"usage": "world", "name": "科尔比"}, -{"usage": "world", "name": "古德兰"}, -{"usage": "world", "name": "劳伦斯"}, -{"usage": "world", "name": "萨利纳"}, -{"usage": "world", "name": "霍普金斯维尔"}, -{"usage": "world", "name": "欧文斯伯勒"}, -{"usage": "world", "name": "法兰克福"}, -{"usage": "world", "name": "路易斯维尔"}, -{"usage": "world", "name": "莫尔"}, -{"usage": "world", "name": "列克星敦"}, -{"usage": "world", "name": "杰利科"}, -{"usage": "world", "name": "惠特利县"}, -{"usage": "world", "name": "很多"}, -{"usage": "world", "name": "奥奈达"}, -{"usage": "world", "name": "萨克斯顿"}, -{"usage": "world", "name": "巴吞鲁日"}, -{"usage": "world", "name": "新道路"}, -{"usage": "world", "name": "什里夫波特"}, -{"usage": "world", "name": "查尔斯湖"}, -{"usage": "world", "name": "拉斐特"}, -{"usage": "world", "name": "霍玛"}, -{"usage": "world", "name": "新奥尔良"}, -{"usage": "world", "name": "坎伯兰"}, -{"usage": "world", "name": "冯检基"}, -{"usage": "world", "name": "黑格斯敦"}, -{"usage": "world", "name": "安纳波利斯"}, -{"usage": "world", "name": "巴尔的摩"}, -{"usage": "world", "name": "洛克维尔"}, -{"usage": "world", "name": "索尔兹伯里"}, -{"usage": "world", "name": "皮茨菲尔德"}, -{"usage": "world", "name": "海恩尼斯"}, -{"usage": "world", "name": "新贝德福德"}, -{"usage": "world", "name": "伍斯特"}, -{"usage": "world", "name": "波士顿"}, -{"usage": "world", "name": "诺伍德"}, -{"usage": "world", "name": "韦茅斯"}, -{"usage": "world", "name": "费奇伯格"}, -{"usage": "world", "name": "梅休因"}, -{"usage": "world", "name": "皮博迪"}, -{"usage": "world", "name": "特拉弗斯城"}, -{"usage": "world", "name": "拉丁顿"}, -{"usage": "world", "name": "马斯基根"}, -{"usage": "world", "name": "底特律"}, -{"usage": "world", "name": "兰辛"}, -{"usage": "world", "name": "芒特普莱森特"}, -{"usage": "world", "name": "巴特尔克里克"}, -{"usage": "world", "name": "卡拉马祖"}, -{"usage": "world", "name": "安阿伯"}, -{"usage": "world", "name": "梦露"}, -{"usage": "world", "name": "弗林特"}, -{"usage": "world", "name": "北底特律郊区"}, -{"usage": "world", "name": "马凯特"}, -{"usage": "world", "name": "苏圣玛丽"}, -{"usage": "world", "name": "德卢斯"}, -{"usage": "world", "name": "大急流城"}, -{"usage": "world", "name": "莫尔海德"}, -{"usage": "world", "name": "圣克劳德"}, -{"usage": "world", "name": "曼凯托"}, -{"usage": "world", "name": "明尼阿波利斯"}, -{"usage": "world", "name": "圣保罗"}, -{"usage": "world", "name": "雷德温"}, -{"usage": "world", "name": "枫树林"}, -{"usage": "world", "name": "布卢明顿"}, -{"usage": "world", "name": "格尔夫波特"}, -{"usage": "world", "name": "帕斯卡古拉"}, -{"usage": "world", "name": "梅里登"}, -{"usage": "world", "name": "哈蒂斯堡"}, -{"usage": "world", "name": "冬青属春天"}, -{"usage": "world", "name": "图珀洛"}, -{"usage": "world", "name": "圣查尔斯"}, -{"usage": "world", "name": "圣路易斯"}, -{"usage": "world", "name": "友联市"}, -{"usage": "world", "name": "乔普林"}, -{"usage": "world", "name": "内华达州"}, -{"usage": "world", "name": "汉尼拔"}, -{"usage": "world", "name": "杰斐逊城"}, -{"usage": "world", "name": "独立"}, -{"usage": "world", "name": "堪萨斯城"}, -{"usage": "world", "name": "圣若瑟"}, -{"usage": "world", "name": "大岛"}, -{"usage": "world", "name": "北普拉特"}, -{"usage": "world", "name": "斯科次布拉夫"}, -{"usage": "world", "name": "黑斯廷斯"}, -{"usage": "world", "name": "林肯"}, -{"usage": "world", "name": "奥马哈"}, -{"usage": "world", "name": "奥尼尔"}, -{"usage": "world", "name": "拉斯维加斯"}, -{"usage": "world", "name": "卡森市"}, -{"usage": "world", "name": "里诺"}, -{"usage": "world", "name": "伊利"}, -{"usage": "world", "name": "哈肯萨克"}, -{"usage": "world", "name": "霍博肯"}, -{"usage": "world", "name": "泽西城"}, -{"usage": "world", "name": "大西洋城"}, -{"usage": "world", "name": "卡姆登"}, -{"usage": "world", "name": "特伦顿"}, -{"usage": "world", "name": "龙科"}, -{"usage": "world", "name": "新不伦瑞克省"}, -{"usage": "world", "name": "瓦恩兰"}, -{"usage": "world", "name": "樱桃山"}, -{"usage": "world", "name": "伊丽莎白"}, -{"usage": "world", "name": "菲利普斯堡"}, -{"usage": "world", "name": "华盛顿"}, -{"usage": "world", "name": "纽瓦克"}, -{"usage": "world", "name": "帕特森"}, -{"usage": "world", "name": "纽约市"}, -{"usage": "world", "name": "奥斯威戈"}, -{"usage": "world", "name": "锡拉丘兹"}, -{"usage": "world", "name": "尤蒂卡"}, -{"usage": "world", "name": "沃特敦"}, -{"usage": "world", "name": "布伦特伍德"}, -{"usage": "world", "name": "斯特德"}, -{"usage": "world", "name": "奥尔巴尼"}, -{"usage": "world", "name": "格洛弗斯维尔"}, -{"usage": "world", "name": "斯克内克塔迪"}, -{"usage": "world", "name": "特洛伊"}, -{"usage": "world", "name": "宾厄姆顿"}, -{"usage": "world", "name": "埃尔迈拉"}, -{"usage": "world", "name": "恩迪科特"}, -{"usage": "world", "name": "伊萨卡"}, -{"usage": "world", "name": "长岛"}, -{"usage": "world", "name": "马诺维尔"}, -{"usage": "world", "name": "水牛城"}, -{"usage": "world", "name": "尼亚加拉大瀑布"}, -{"usage": "world", "name": "罗切斯特"}, -{"usage": "world", "name": "布朗克斯"}, -{"usage": "world", "name": "布鲁克林"}, -{"usage": "world", "name": "皇后区"}, -{"usage": "world", "name": "史泰登岛"}, -{"usage": "world", "name": "法拉盛"}, -{"usage": "world", "name": "波基普西"}, -{"usage": "world", "name": "皮克斯基尔"}, -{"usage": "world", "name": "怀特普莱恩斯"}, -{"usage": "world", "name": "杨克斯"}, -{"usage": "world", "name": "拉布拉多城"}, -{"usage": "world", "name": "圣约翰"}, -{"usage": "world", "name": "大西洋海滩"}, -{"usage": "world", "name": "哈特拉斯"}, -{"usage": "world", "name": "阿什伯勒"}, -{"usage": "world", "name": "托马斯维尔"}, -{"usage": "world", "name": "夏洛特"}, -{"usage": "world", "name": "康科德"}, -{"usage": "world", "name": "阿什维尔"}, -{"usage": "world", "name": "安提阿"}, -{"usage": "world", "name": "希科里"}, -{"usage": "world", "name": "格林斯博罗"}, -{"usage": "world", "name": "温斯顿"}, -{"usage": "world", "name": "塞勒姆"}, -{"usage": "world", "name": "达勒姆"}, -{"usage": "world", "name": "罗利"}, -{"usage": "world", "name": "瓦特维尔"}, -{"usage": "world", "name": "白马"}, -{"usage": "world", "name": "庞纳唐"}, -{"usage": "world", "name": "克利夫兰"}, -{"usage": "world", "name": "阿克伦"}, -{"usage": "world", "name": "坎顿"}, -{"usage": "world", "name": "沃伦"}, -{"usage": "world", "name": "扬斯敦"}, -{"usage": "world", "name": "鲍灵格林"}, -{"usage": "world", "name": "芬德利"}, -{"usage": "world", "name": "利马"}, -{"usage": "world", "name": "托莱多"}, -{"usage": "world", "name": "门托"}, -{"usage": "world", "name": "奥伯林"}, -{"usage": "world", "name": "韦斯特莱克"}, -{"usage": "world", "name": "辛辛那提"}, -{"usage": "world", "name": "米德尔敦"}, -{"usage": "world", "name": "剑桥"}, -{"usage": "world", "name": "代顿"}, -{"usage": "world", "name": "希尔斯伯勒"}, -{"usage": "world", "name": "斯普林菲尔德"}, -{"usage": "world", "name": "阿森斯"}, -{"usage": "world", "name": "哥伦布"}, -{"usage": "world", "name": "兰开斯特"}, -{"usage": "world", "name": "玛丽埃塔"}, -{"usage": "world", "name": "伊妮德"}, -{"usage": "world", "name": "俄克拉何马城"}, -{"usage": "world", "name": "阿尔瓦"}, -{"usage": "world", "name": "阿德莫尔"}, -{"usage": "world", "name": "劳顿"}, -{"usage": "world", "name": "麦卡莱斯特"}, -{"usage": "world", "name": "迈阿密"}, -{"usage": "world", "name": "马斯科吉"}, -{"usage": "world", "name": "塔尔萨"}, -{"usage": "world", "name": "多伦多"}, -{"usage": "world", "name": "圭尔夫"}, -{"usage": "world", "name": "基奇纳"}, -{"usage": "world", "name": "伦敦"}, -{"usage": "world", "name": "温莎"}, -{"usage": "world", "name": "巴里"}, -{"usage": "world", "name": "北部湾"}, -{"usage": "world", "name": "苏圣玛丽"}, -{"usage": "world", "name": "萨德伯里"}, -{"usage": "world", "name": "德赖登"}, -{"usage": "world", "name": "凯诺拉"}, -{"usage": "world", "name": "威廉堡"}, -{"usage": "world", "name": "桑德贝"}, -{"usage": "world", "name": "库克斯维尔"}, -{"usage": "world", "name": "汉密尔顿"}, -{"usage": "world", "name": "米西索加"}, -{"usage": "world", "name": "金士顿"}, -{"usage": "world", "name": "渥太华"}, -{"usage": "world", "name": "道夫"}, -{"usage": "world", "name": "比弗顿"}, -{"usage": "world", "name": "阿什兰"}, -{"usage": "world", "name": "本德"}, -{"usage": "world", "name": "科瓦利斯"}, -{"usage": "world", "name": "尤金"}, -{"usage": "world", "name": "彭德尔顿"}, -{"usage": "world", "name": "萨利姆"}, -{"usage": "world", "name": "波特兰"}, -{"usage": "world", "name": "费城"}, -{"usage": "world", "name": "匹兹堡"}, -{"usage": "world", "name": "斯克兰顿"}, -{"usage": "world", "name": "威廉波特"}, -{"usage": "world", "name": "费城郊区"}, -{"usage": "world", "name": "阿伦敦"}, -{"usage": "world", "name": "哈里斯堡"}, -{"usage": "world", "name": "葛底斯堡"}, -{"usage": "world", "name": "纽卡斯尔"}, -{"usage": "world", "name": "拉特罗布"}, -{"usage": "world", "name": "尤宁敦"}, -{"usage": "world", "name": "阿尔图纳"}, -{"usage": "world", "name": "伊利"}, -{"usage": "world", "name": "约翰斯敦"}, -{"usage": "world", "name": "希库蒂米"}, -{"usage": "world", "name": "魁北克"}, -{"usage": "world", "name": "里穆斯基"}, -{"usage": "world", "name": "蒙特利尔"}, -{"usage": "world", "name": "劳埃德明斯特"}, -{"usage": "world", "name": "里贾纳"}, -{"usage": "world", "name": "萨斯卡通"}, -{"usage": "world", "name": "柔克义"}, -{"usage": "world", "name": "查尔斯顿"}, -{"usage": "world", "name": "希尔顿黑德岛"}, -{"usage": "world", "name": "默特尔比奇"}, -{"usage": "world", "name": "佛罗伦萨"}, -{"usage": "world", "name": "安德森"}, -{"usage": "world", "name": "格林维尔"}, -{"usage": "world", "name": "斯巴达"}, -{"usage": "world", "name": "布里斯托尔"}, -{"usage": "world", "name": "查塔努加"}, -{"usage": "world", "name": "纳什维尔"}, -{"usage": "world", "name": "诺克斯维尔"}, -{"usage": "world", "name": "杰克逊"}, -{"usage": "world", "name": "孟菲斯"}, -{"usage": "world", "name": "市总工会"}, -{"usage": "world", "name": "哥伦比亚"}, -{"usage": "world", "name": "曼彻斯特"}, -{"usage": "world", "name": "库克维尔"}, -{"usage": "world", "name": "圣安东尼奥"}, -{"usage": "world", "name": "韦科"}, -{"usage": "world", "name": "鹿园"}, -{"usage": "world", "name": "科珀斯克里斯蒂"}, -{"usage": "world", "name": "维多利亚"}, -{"usage": "world", "name": "博蒙特"}, -{"usage": "world", "name": "加尔维斯顿"}, -{"usage": "world", "name": "奥斯汀"}, -{"usage": "world", "name": "贝莱尔"}, -{"usage": "world", "name": "帕萨迪纳"}, -{"usage": "world", "name": "阿马里洛"}, -{"usage": "world", "name": "拉伯克"}, -{"usage": "world", "name": "沃思堡"}, -{"usage": "world", "name": "德尔里奥"}, -{"usage": "world", "name": "尤瓦尔迪"}, -{"usage": "world", "name": "休斯敦"}, -{"usage": "world", "name": "巴黎"}, -{"usage": "world", "name": "谢尔曼"}, -{"usage": "world", "name": "特克萨卡纳"}, -{"usage": "world", "name": "泰勒"}, -{"usage": "world", "name": "阿比林"}, -{"usage": "world", "name": "埃尔帕索"}, -{"usage": "world", "name": "亨茨维尔"}, -{"usage": "world", "name": "勒夫"}, -{"usage": "world", "name": "丹顿"}, -{"usage": "world", "name": "威奇塔瀑布"}, -{"usage": "world", "name": "布朗斯维尔"}, -{"usage": "world", "name": "麦卡伦"}, -{"usage": "world", "name": "达拉斯"}, -{"usage": "world", "name": "加兰"}, -{"usage": "world", "name": "大草原城"}, -{"usage": "world", "name": "欧文"}, -{"usage": "world", "name": "普莱诺"}, -{"usage": "world", "name": "沃顿商学院"}, -{"usage": "world", "name": "圣乔治"}, -{"usage": "world", "name": "里奇菲尔德"}, -{"usage": "world", "name": "布兰丁"}, -{"usage": "world", "name": "摩押"}, -{"usage": "world", "name": "盐湖市"}, -{"usage": "world", "name": "普罗沃"}, -{"usage": "world", "name": "奥格登"}, -{"usage": "world", "name": "布莱克斯堡"}, -{"usage": "world", "name": "罗阿诺克"}, -{"usage": "world", "name": "士丹顿"}, -{"usage": "world", "name": "温彻斯特"}, -{"usage": "world", "name": "亚历山德里亚"}, -{"usage": "world", "name": "阿灵顿"}, -{"usage": "world", "name": "费尔法克斯"}, -{"usage": "world", "name": "亨登"}, -{"usage": "world", "name": "诺福克"}, -{"usage": "world", "name": "纽波特纽斯"}, -{"usage": "world", "name": "威廉斯堡"}, -{"usage": "world", "name": "夏洛茨维尔"}, -{"usage": "world", "name": "丹维尔"}, -{"usage": "world", "name": "里士满"}, -{"usage": "world", "name": "西雅图"}, -{"usage": "world", "name": "奥本"}, -{"usage": "world", "name": "肯特"}, -{"usage": "world", "name": "塔科马"}, -{"usage": "world", "name": "贝林翰"}, -{"usage": "world", "name": "奥林匹亚"}, -{"usage": "world", "name": "温哥华"}, -{"usage": "world", "name": "贝尔维尤"}, -{"usage": "world", "name": "埃德蒙兹"}, -{"usage": "world", "name": "埃弗里特"}, -{"usage": "world", "name": "斯波坎"}, -{"usage": "world", "name": "沃拉沃拉"}, -{"usage": "world", "name": "亚基马"}, -{"usage": "world", "name": "西本德"}, -{"usage": "world", "name": "基诺沙"}, -{"usage": "world", "name": "密尔沃基"}, -{"usage": "world", "name": "拉辛"}, -{"usage": "world", "name": "伯洛伊特"}, -{"usage": "world", "name": "拉克罗"}, -{"usage": "world", "name": "麦迪逊"}, -{"usage": "world", "name": "普拉特维尔"}, -{"usage": "world", "name": "欧克莱尔"}, -{"usage": "world", "name": "苏必利尔"}, -{"usage": "world", "name": "沃索"}, -{"usage": "world", "name": "绿湾"} + { + "usage": "nick", + "name": [ + "10-4", + "遗弃者", + "忍耐者", + "腹肌", + "王牌", + "酸", + "慢板", + "硬石", + "海军上将", + "永世", + "航空", + "AF", + "之后", + "玛瑙", + "代理人", + "暴力行为", + "胃灼热", + "渴望", + "啊呵", + "两手叉腰", + "信天翁", + "辩才", + "全明星", + "阿尔法", + "业余", + "仙酿", + "阿门", + "美国", + "紫水晶", + "弹药", + "疯狂", + "安培", + "锚", + "天使", + "灵魂", + "动物", + "安妮", + "蚂蚁", + "孔径", + "顶点", + "末日", + "远地点", + "苹果", + "苹果", + "苹果子", + "阿卡", + "拱廊", + "执政官", + "阿肯色州人", + "亚奇", + "亚奇", + "世界末日", + "阿斯特罗", + "阿特拉斯", + "原子", + "光辉", + "欧洲野牛", + "极光", + "澳洲人", + "澳大利亚", + "擅离职守", + "斧", + "啊", + "苍空", + "婴儿", + "培根", + "坏蛋", + "獾", + "秃头", + "弹道", + "斑比", + "香蕉", + "香蕉", + "强盗", + "潮流", + "爆炸", + "禁令", + "银行家", + "女妖", + "万岁", + "倒刺", + "野蛮人", + "理发师", + "吟游诗人", + "男爵", + "桶", + "害羞鬼", + "晒太阳", + "古怪鬼", + "灯塔", + "豆子", + "熊", + "野兽", + "花花公子", + "比波普爵士乐", + "混乱", + "蜜蜂", + "牛肉", + "哔哔", + "哔哔哔哔", + "米色", + "白鲸", + "狂暴", + "最好", + "贝塔", + "大", + "大炮", + "大人物", + "四棱大麦", + "多嘴多舌", + "大人物", + "比哈尔语", + "十亿", + "必应", + "宾果", + "自传", + "鸟", + "小鸟", + "主教", + "骗子", + "位图", + "黑色", + "21点", + "叶片", + "爆炸", + "爆破工", + "大火", + "攻其不备", + "珠宝", + "眨眼", + "作品", + "泡", + "闪电战", + "暴雪", + "块", + "傻子", + "金发", + "开花", + "反吹", + "蓝色", + "清教徒", + "模糊", + "脸红", + "蟒蛇", + "野猪", + "身体", + "尸袋", + "可怕的人", + "博洛尼亚", + "螺栓", + "善意的人", + "好伙计", + "走鸿运", + "债券", + "骨", + "疯狂的人", + "盆景", + "奖金", + "嘘", + "嘘嘘", + "赌徒", + "繁荣", + "砰砰", + "皮绳", + "靴子", + "毛线鞋", + "鲍里库", + "老板", + "加油车", + "男孩", + "大汉", + "大脑", + "头脑风暴", + "臭娃娃", + "勇敢的", + "喝采", + "巴西", + "巴西人", + "面包", + "打破", + "断路器", + "断脖子", + "砖", + "禁闭室", + "野马", + "青铜", + "喧嚣", + "压碎机", + "平庸可厌的人", + "布巴", + "泡沫", + "泡沫", + "布比人", + "牛仔", + "七叶树", + "虫子", + "棘手难题", + "错误", + "身材苗条", + "牛", + "子弹", + "牛眼灯", + "熊", + "土包子", + "兔子", + "面包", + "小豆子", + "破坏者", + "喧闹者", + "忙人", + "爱管闲事的人", + "大老粗", + "屠夫", + "黄油", + "娘娘腔", + "按钮", + "嗡嗡声", + "卷心菜", + "不和谐", + "仙人掌", + "凯撒", + "咖啡因", + "笼子里", + "结伙", + "法人后裔", + "灾难", + "石灰", + "海中女神", + "凸轮", + "迷彩色", + "可以做", + "加拿大", + "加拿大人", + "金丝雀", + "加丹戈", + "大炮", + "法裔加拿大人", + "帽", + "雀跃", + "卡皮沙巴", + "如帽般的", + "队长", + "焦糖", + "意大利裔巴西人", + "里约人", + "胡萝卜", + "携带", + "卡萨布兰卡", + "赌场", + "鲶鱼", + "洪都拉斯人", + "警告", + "雪松", + "蜈蚣", + "刻瑞斯", + "咬马嚼子", + "章", + "查宾", + "花花公子", + "战车", + "魅力", + "喋喋不休", + "唠叨的人", + "使彻底失败", + "厚脸皮", + "厚颜无耻", + "干杯", + "笨蛋", + "厨师", + "樱桃", + "国际象棋", + "气", + "首席", + "墨西哥城人", + "寒冷", + "中国", + "中国人", + "嘁嘁喳喳", + "谈天说地", + "巧克力", + "巧克力", + "窒息", + "火车 ", + "排", + "铬合金", + "慢性子", + "笑着说", + "密友", + "笨蛋", + "再见", + "苹果酒", + "辛科", + "电影", + "肉桂", + "密码", + "叮当声", + "哗众取宠", + "爪", + "粘土", + "双刃大砍刀", + "神职人员", + "点击", + "多云的", + "三叶草", + "教练", + "海边人", + "眼镜蛇", + "蜘蛛网", + "伦敦", + "蟑螂", + "椰子树", + "咖啡", + "齿轮", + "科希", + "线圈", + "上校", + "昏迷", + "组合", + "喜剧", + "彗星", + "公司", + "骗子", + "浓缩", + "海螺", + "安慰", + "内容", + "违禁品", + "饼干", + "鸡笼", + "铜斑蛇", + "复制", + "螺旋", + "活泼的", + "宇宙", + "棉花", + "优惠券", + "秘密", + "好啊", + "郊狼", + "蟹", + "杰出的人", + "崩溃", + "火山口", + "渴望", + "奶油", + "持续噪声", + "水晶室女", + "深红色", + "胖子", + "十字交叉", + "嘶哑声", + "鳄鱼", + "骗子", + "乌鸦", + "吃乌鸦的人", + "巡洋舰", + "面包屑", + "面包屑", + "旷课乐", + "易怒的人", + "神秘生物", + "四弦吉他", + "杜鹃", + "土包子", + "丘比特", + "治愈", + "卷毛", + "诅咒", + "漂亮鬼", + "青色", + "氰化物", + "网络", + "旋风", + "独眼巨人", + "轻拍", + "疯狂的人", + "匕首", + "达拉斯", + "该死的人", + "危险", + "黑暗", + "亲爱的人", + "飞镖", + "数据", + "神枪手", + "最亲爱的人", + "诱饵", + "迪", + "灵巧的人", + "三角洲", + "平民", + "恶魔", + "亡命之徒", + "上帝", + "魔鬼", + "露水", + "恶魔", + "钻石", + "菱形斑纹", + "筹码", + "骰子", + "柴油", + "第戎", + "左右为难", + "昏暗的", + "一角银币", + "酒窝", + "恐龙", + "悲惨的人", + "挽歌", + "迪斯科", + "复制品", + "头晕", + "灯神", + "DOA", + "医生", + "十二关", + "狗", + "经济低潮", + "娃娃脸", + "驴", + "吸食大麻", + "小玩意儿", + "厄运", + "世界末日", + "涂料", + "迟钝的", + "面貌极相似的人", + "Dos", + "两面派", + "面团", + "推土机", + "德拉科", + "龙", + "恐惧", + "无畏", + "漂移", + "流浪者", + "机器人", + "下降", + "德鲁伊", + "甜食", + "美妙的", + "蠢人", + "愚蠢的", + "小飞象", + "饺子", + "甘蔗渣", + "灰尘", + "荷兰", + "功率计", + "Dys", + "东", + "容易", + "木树", + "回声", + "月蚀", + "星质", + "鳗鱼", + "书呆子", + "自我", + "八个", + "老八", + "爱因斯坦", + "二者择一的", + "喷射", + "大恶魔", + "老人", + "电", + "元素", + "精英", + "翡翠", + "重唱", + "结束时间", + "安德", + "执行者", + "谜", + "嫉妒", + "伊普西龙", + "昼夜平分点", + "阋神星", + "时尚先生", + "埃塔", + "醚", + "词源学", + "尤里卡", + "欧洲败类", + "流亡", + "退出", + "挂式", + "埃克塞特人", + "出口", + "眼睛", + "赏心悦目的人", + "脸", + "信仰", + "猎鹰", + "下降", + "凡登戈舞", + "神奇的", + "特别喜爱的人", + "恐惧", + "不重要的人", + "击剑", + "雪貂", + "留学生", + "小提琴", + "胡说", + "忠诚", + "恶魔", + "欺瞒", + "最后", + "手指", + "火", + "煽动者", + "萤火虫", + "爆竹", + "防火墙", + "第一", + "鱼", + "拳头", + "大打出手", + "五个", + "修复", + "饮料", + "防弹", + "火烈鸟", + "闪光", + "平地", + "平线", + "跳蚤", + "电影", + "阔鳍", + "浮动", + "佛罗里达", + "废料", + "狼狈而退", + "长笛", + "飞", + "飞行员", + "捕蝇草", + "焦点", + "箔", + "平易近人", + "傻瓜", + "蠢蛋", + "自由自在", + "财富", + "老四", + "福克斯", + "喧噪", + "法国", + "狂", + "冻结", + "法国人", + "摩擦", + "星期五", + "青蛙", + "蛙似的人", + "从", + "前面", + "霜", + "油炸", + "信息面板", + "爱好者", + "火焰", + "愤怒", + "未来", + "模糊", + "诅咒", + "星系", + "赌徒", + "伽马", + "石像鬼", + "石榴石", + "气囊", + "垫片", + "加特林", + "短吻鳄", + "加乌乔人", + "齿轮", + "齿轮", + "壁虎", + "古怪的人", + "宝石", + "双子座", + "温柔的", + "地理", + "基尼", + "细菌", + "德国人", + "德国", + "鬼", + "千兆", + "咯咯地笑", + "生姜", + "小发明", + "短剑", + "眩光", + "故障", + "发光", + "暴食", + "咬牙切齿", + "山羊", + "小妖精", + "神", + "哥斯拉", + "黄金", + "金", + "傀儡", + "高尔夫球", + "歌利亚", + "龚", + "花生", + "好人", + "穿帮", + "怪诞的人", + "鹅", + "起鸡皮疙瘩", + "戈尔", + "蛇发怪", + "轻飘飘的", + "伟大的", + "重大的", + "灰色的", + "油脂", + "油腻的", + "希腊", + "贪婪", + "希腊人", + "绿色", + "不懂世故的人", + "小鬼", + "悲伤", + "冷酷的人", + "露齿而笑", + "发火", + "脾气暴躁", + "鹰头狮", + "瓜希罗人", + "番石榴", + "诡计", + "橡皮软糖", + "枪手", + "大师", + "肠道", + "地沟", + "吉普赛", + "陀螺", + "多毛的", + "翠鸟", + "说唱乐", + "锤子", + "手", + "汉尼拔", + "快乐", + "硬汉子", + "安全帽", + "兔子", + "野兔脑子", + "鸟身女妖", + "手斧", + "哈瓦那", + "安息所", + "穷人", + "大破坏", + "鹰", + "鹰眼", + "阴霾", + "轻率的", + "无情的", + "热", + "开除", + "重", + "重量级的", + "继承人", + "赫拉", + "悍妇", + "应该下地狱的人", + "猛鬼追魂", + "铁杉", + "术士", + "全盛时期", + "胡桃木", + "隐藏", + "正午", + "高塔", + "车辆", + "乡下人", + "提示", + "臀部", + "河马", + "跛的", + "打击", + "特大号三明治", + "流浪汉", + "大杂烩", + "废话", + "废话", + "全垒打", + "蜂蜜", + "钩", + "流氓", + "印第安纳州人", + "猫头鹰叫", + "乡间音乐", + "笛", + "吸毒成瘾者", + "啤酒花", + "霍斯", + "主机", + "热", + "热狗", + "热的东西", + "酒店", + "恶作剧", + "暑热", + "炙手可热的", + "胡迪尼", + "猎犬", + "徘徊", + "嚎叫", + "狂妄自大", + "绿巨人", + "骗子", + "极出色的人", + "疯狗", + "饥饿", + "饿鬼", + "九头蛇", + "炒作", + "吸毒成瘾的人", + "超驱动器", + "睡神", + "野山羊", + "冰", + "冰镐", + "难闻的", + "图标", + "偶像", + "冰屋", + "点火", + "图像", + "小鬼", + "进口", + "冲动", + "隐身", + "不可思议", + "印度", + "独立", + "靛蓝", + "印度人", + "印第", + "地狱", + "漆黑的", + "检查员", + "即时", + "介绍", + "一点儿", + "爱尔兰", + "铁", + "装甲舰", + "铁甲军", + "欧文", + "岛", + "意大利人", + "意大利", + "痒", + "痒", + "小个子", + "象牙", + "豺", + "有作为的城市佬", + "玉", + "贾法", + "破旧飞机", + "果酱", + "一月", + "锅盖头", + "粗鲁无礼的人", + "大块硬糖", + "大白鲨", + "爵士乐", + "绝地武士", + "果冻", + "果冻", + "杰斯特", + "杂物", + "珠宝", + "跳汰机", + "拼图", + "运动员", + "小丑", + "快乐的", + "乔利", + "旅程", + "木星", + "法官", + "神像", + "汁", + "多汁的", + "护符", + "庞然大物", + "跳", + "跳投", + "木星", + "正义", + "凯撒", + "卡巴", + "坏了的", + "扑通", + "凯夫拉", + "梯形", + "胡说", + "启动", + "孩子", + "杀手", + "令人扫兴的人", + "公斤", + "翠鸟", + "主要人物", + "天命", + "吻吻", + "猕猴桃", + "骑士", + "迷药", + "结", + "指节", + "KO", + "海怪", + "德国人", + "花边", + "羊排", + "拉姆达", + "灯", + "新水手", + "青金石", + "云雀", + "激光", + "熔岩", + "铅", + "水蛭", + "左撇子", + "柠檬", + "细木匠", + "利维坦", + "生命线", + "光", + "闪电", + "轻量级", + "光年", + "利马", + "石灰", + "英国佬", + "跛行", + "术语", + "链接", + "点燃", + "蜥蜴", + "锁", + "封锁", + "破伤风", + "疯草", + "腰", + "孤独的人", + "丝瓜", + "漏洞", + "失败者", + "情人", + "幸运的", + "肿块", + "吸引", + "郁郁葱葱的", + "欲望", + "琵琶", + "勒克斯", + "猞猁", + "歌词", + "麦克", + "机器", + "麦克", + "迈科姆", + "疯狗", + "鲁莽的人", + "马德拉斯人", + "大漩涡", + "品红色的", + "蛆", + "魔法", + "玛格南", + "喜鹊", + "少女", + "大陆人", + "主要", + "胡说", + "马里布", + "庞大的", + "疯子", + "玻璃球", + "火星", + "面具", + "大洞子", + "主人", + "玛雅", + "五月天", + "混乱", + "米德", + "金牌", + "美第奇", + "大型", + "成熟的", + "崩溃", + "精神", + "猫叫", + "佣兵", + "商人", + "汞", + "梅林", + "主流", + "金属", + "密歇根人", + "微型", + "迈达斯", + "蚊", + "牛奶", + "乳白色的", + "几百万", + "意志薄弱的人", + "最小值", + "迷你", + "奴才", + "小", + "薄荷", + "海市蜃楼", + "混合", + "助记符", + "麻吉", + "魔力", + "摩摩", + "君主", + "周一", + "绝对的", + "钱", + "蒙戈", + "绰号", + "和尚", + "猴子", + "怪物", + "哞哞叫", + "彷徨", + "月亮", + "笨人", + "耽于幻想的", + "驼鹿", + "睡眠", + "电动机", + "喋喋不休的人", + "鼠标", + "Mu", + "泥", + "泥泞的", + "松饼", + "穆里根", + "提线木偶", + "杂音", + "武藏", + "音乐", + "芥末", + "杂种狗", + "神秘", + "神话", + "裸体", + "保姆", + "奈良", + "刑警", + "令人讨厌的", + "导航器", + "海军", + "不", + "星云", + "死灵法师", + "针", + "复仇者", + "尼奥", + "海王星", + "尼禄", + "新手", + "纽芬兰人", + "纽特", + "下一个", + "镍", + "晚上", + "夜猫子", + "毫无价值的东西", + "零", + "九个", + "消瘦", + "忍者", + "硝基", + "黑色数字", + "游牧", + "诺德人", + "北", + "西北", + "新星", + "11月", + "夜之女神", + "Nu", + "九点", + "核弹", + "零", + "麻木了", + "数字", + "笨蛋", + "肉豆蔻", + "坚果", + "绿洲", + "双簧管", + "海洋", + "八字步", + "辛烷", + "几率", + "食人魔", + "农夫移民", + "欧米伽", + "预兆", + "奥米克戎", + "泛光灯", + "唯一", + "缟玛瑙", + "哦", + "软泥", + "蛋白石", + "选择", + "作品", + "先知", + "橙色", + "东德", + "占卜板", + "不法之徒", + "结尾部分", + "越过", + "超速", + "覆盖", + "牛", + "牛津大学", + "疼痛", + "佩斯利", + "朋友", + "圣骑士", + "穿越", + "灵丹妙药", + "羽饰", + "潘乔", + "恐慌", + "装甲", + "典范", + "视差", + "烤干", + "巴黎", + "帕里什", + "鹦鹉", + "意大利面", + "同情", + "爱国者", + "兵", + "和平女神", + "和平", + "桃子", + "孔雀", + "花生", + "偷看", + "矮小的", + "鹈鹕", + "一分钱", + "完美的", + "橄榄石", + "罪犯", + "潮土油", + "法老王", + "酷毙了", + "斐", + "惧怕", + "圆周率", + "泡菜", + "泡菜", + "皮克", + "飘泊流浪的人", + "似松的", + "小指", + "打", + "美女照片", + "水虎鱼", + "手枪", + "照片", + "披萨", + "潇洒", + "瘟疫", + "格子", + "铂", + "梅花", + "冥王星", + "坡", + "诗人", + "弹簧单高跷", + "波因德克斯特", + "毒药", + "吃玉米糊糊的人", + "英国佬", + "小马", + "马形妖怪", + "小孩的", + "流行", + "砰砰响", + "猪排", + "布宜诺斯艾利斯人", + "豪华", + "家常便饭", + "战俘", + "粉", + "权力", + "珍贵的", + "急板", + "椒盐卷饼", + "总统", + "刺", + "骄傲", + "主要部", + "打印", + "棱镜", + "奖", + "职业选手", + "进程", + "先知", + "道具", + "原型", + "普西", + "神经", + "神经病", + "布丁", + "泡芙", + "彪马", + "穿孔", + "紫色的", + "咕噜咕噜声", + "推杆式", + "PYT", + "毒蛇", + "庸医", + "四方形", + "鹌鹑", + "地震", + "质量", + "季度", + "类星体", + "魁北克", + "水银", + "金镑", + "安静的", + "五胞胎", + "怪癖", + "测试", + "现状", + "报价", + "报价", + "辐射", + "雷达", + "愤怒", + "非常亲密的朋友", + "衣衫褴褛的", + "喷淋设备", + "兰博", + "摇摇欲坠的", + "游骑兵", + "狂喜", + "流氓", + "老鼠", + "棘轮", + "说胡话", + "乌鸦", + "夷为平地", + "剃须刀", + "收割者", + "反叛者", + "红色的", + "乡下人", + "重做", + "用烟熏", + "参考文献", + "蒙特雷人", + "混音", + "复古的", + "牧师", + "启示", + "雷克斯", + "雷兹", + "犀牛", + "柔", + "罗德岛人", + "跳弹", + "谜题", + "骑手", + "钻井平台", + "装配工", + "开伞索", + "丽兹", + "蟑螂", + "障碍", + "巡回乐队管理员", + "路毙的", + "漫游", + "罗宾", + "机器人", + "岩石", + "火箭", + "岩石", + "罗杰", + "流氓", + "顽童", + "浪人", + "车", + "乐观", + "口红", + "探测器", + "伸长脖子看", + "红宝石", + "小淘气", + "俄罗斯", + "生锈", + "沙沙声", + "生锈", + "军刀", + "马刀", + "贤人", + "圣人", + "火蜥蜴", + "盐", + "武士", + "桑切斯", + "旱鸭子", + "南卡罗莱那人", + "三明治", + "圣白托略", + "蓝宝石", + "大脚野人", + "周六", + "土星", + "野蛮人", + "学者", + "萨克斯", + "无赖汉", + "疤痕", + "注意力分散", + "闪烁", + "接穗", + "烧焦", + "蝎子", + "利物浦人", + "童子军", + "刮", + "刮伤", + "草率的", + "尖锐刺耳", + "谣言", + "长柄大镰刀", + "老二", + "第二个", + "乌贼", + "伺服", + "七个", + "老七", + "阴影", + "影子", + "粗野的", + "摇", + "摇摇欲坠的", + "鲨鱼", + "锋利的", + "工作", + "酋长", + "恶作剧", + "治安官", + "夏洛克", + "机智的", + "发光", + "闪亮的", + "刀", + "颤抖", + "冲击", + "嘘", + "矮个子", + "表演者", + "表演时间", + "分解", + "虾", + "缩小", + "洗牌", + "西西里人", + "西西里", + "病", + "神经有问题的人", + "响尾蛇导弹", + "锯齿山", + "谢特", + "西格玛", + "丝绸", + "筒仓", + "银", + "单", + "单调的节奏", + "塞壬", + "六个", + "六号", + "老六", + "十六岁", + "匆匆离去", + "白鲑", + "草图", + "皮", + "跳过", + "队长", + "天空", + "草率的", + "闹剧", + "削减", + "捉鬼", + "雪橇", + "睡眠", + "困了", + "浮油", + "苗条的", + "麻俐的", + "银", + "懒惰", + "慢", + "聪明的", + "自作聪明的人", + "粉碎", + "吞云吐雾的人", + "烟雾", + "烟雾缭绕的", + "光滑的", + "涂抹", + "混乱", + "蛇", + "蛇咬伤", + "提前", + "偷偷摸摸", + "爱打喷嚏", + "喷嚏鬼", + "哼鼻子", + "雪", + "雪人", + "舒适的", + "套接字", + "柔弱的人", + "太阳", + "太阳能", + "单挑", + "声波", + "俄克拉荷马州人", + "烟尘", + "灵魂", + "南", + "空间", + "调皮鬼", + "火花", + "充满活力的", + "麻雀", + "产卵", + "怪人", + "幽灵", + "快速", + "使人入迷的小说", + "斯芬克斯", + "香料", + "辣的", + "蜘蛛", + "使整洁", + "整洁的", + "精神", + "碎片", + "分裂", + "斯波克", + "海绵", + "体育运动", + "现货", + "马铃薯", + "土豆", + "矮胖子", + "小队", + "清洁刷", + "鱿鱼", + "乱涂乱画", + "喷射", + "断奏", + "错开", + "跟踪狂", + "明星", + "盯着看", + "统计", + "统计数据", + "钢", + "刺痛", + "臭鬼", + "臭", + "针", + "石头", + "风暴", + "故事", + "流浪", + "拉伸", + "前锋", + "选通脉冲", + "漫步", + "闷热的", + "眩晕", + "出色的人", + "豆煮玉米", + "糖", + "甜言蜜语", + "苏丹", + "周日", + "阳光明媚的", + "超级", + "超级巨星", + "神枪手", + "飙升", + "斯文加利", + "印度教大师", + "沼泽", + "燕式跳水", + "天鹅之歌", + "爱打扮的", + "斯旺西", + "甜蜜的", + "甜姐儿", + "三心二意", + "迅速的", + "冒牌货", + "开关", + "突如其来的变化", + "神魂颠倒", + "同步", + "综合症", + "禁忌", + "太妃糖", + "棕黄色", + "探戈", + "坦克", + "塔巴蒂奥", + "焦油", + "塔斯马尼亚人", + "马铃薯", + "刺青", + "陶", + "技术", + "泰迪", + "搬弄是非的", + "电视", + "脾气", + "十个", + "十元纸币", + "南方佬", + "苏格兰高地人", + "特克斯", + "那个人", + "西塔", + "第三", + "渴", + "渴了", + "十三", + "刺", + "打", + "老三", + "雷声", + "吓坏了的", + "周四", + "激情风暴", + "雀鸟", + "珍闻", + "扎染", + "老虎", + "木材", + "小", + "泰坦", + "蟾蜍", + "羊肚菌", + "马屁精", + "烤面包片", + "番茄", + "明天", + "工具", + "亲密的人", + "黄玉", + "乱七八糟的", + "火炬", + "鱼雷", + "托托", + "塔", + "悲剧", + "火车", + "恍惚", + "宝", + "三弦琴", + "技巧", + "顽皮的", + "棘手的", + "三一", + "波尔图人", + "三倍", + "特利克斯", + "巨魔", + "巨魔", + "真理", + "茯苓", + "周二", + "曲调", + "涡轮增压", + "火鸡", + "乌龟", + "图斯克", + "图图", + "卑鄙的人", + "嫩枝", + "苗条的", + "双胞胎", + "抽搐", + "两个", + "小孩子", + "台风", + "暴君", + "超级", + "尤比克", + "Uh-Oh", + "尤克里里琴", + "末音节", + "超", + "棕色的", + "暗影", + "裁判", + "无数的", + "失败者", + "地下", + "撤销", + "不可饶恕", + "统一的", + "单位", + "第一", + "不可阻挡的", + "宇普西龙", + "自命不凡的人", + "天王星", + "冲动", + "犹他人", + "情人节", + "匆匆离开", + "鞋面", + "蒸汽", + "向量", + "蔬菜", + "维加斯", + "报复", + "威尼斯", + "毒液", + "超大杯", + "金星", + "眩晕", + "才能", + "否决", + "烦恼", + "胜利", + "取景器", + "维京人", + "醋", + "贵宾", + "毒蛇", + "伏特", + "志愿者", + "伏都教", + "沃克斯", + "秃鹰", + "瓦克", + "华夫饼", + "醒来", + "沃克", + "壁花", + "减弱", + "水性杨花的女人", + "战争", + "监狱长", + "军阀", + "征途", + "疣猪", + "黄鼠狼", + "楔子", + "周三", + "怪人", + "西德佬", + "西", + "西部人", + "西部佬", + "老生常谈的", + "反复无常", + "旋风", + "威士忌", + "耳语", + "白色", + "奇才", + "威兹班", + "哇", + "为什么", + "小部件", + "摆动", + "野生", + "莽撞的人", + "懦弱的", + "饶舌之人", + "翅膀", + "剔出", + "惨败", + "线", + "电线", + "自以为聪明者", + "向导", + "狼", + "狼人", + "想知道", + "书呆子", + "旺卡", + "靠不住的", + "汪", + "兰开夏人", + "老王", + "词", + "蠕虫", + "哇", + "幽灵", + "忿怒", + "造成", + "沉船", + "肇事者", + "坏蛋", + "韩国帝王", + "Xi", + "x射线", + "Yadda Yadda", + "雅虎", + "山药", + "美国佬", + "杨基佬", + "亚迪", + "雅特", + "黄色的", + "懦夫", + "金翼啄木鸟", + "雪人", + "迎泽", + "乡巴佬", + "密歇根上半岛人", + "年轻人", + "悠悠球", + "令人反感的", + "百胜百胜", + "精力", + "斑马", + "老Z", + "时代精神", + "禅", + "天顶", + "零", + "泽塔", + "急转", + "瑞格", + "锯齿形", + "无价值之物", + "邮政编码", + "活泼的", + "星座", + "区", + "巴拿马美国人", + "巴拿马美国佬", + "不省人事", + "变焦" + ] + }, + { + "usage": "backer", + "gender": "female", + "name": [ + "伊芙琳·弗罗斯特", + "哈瑞斯·瑟本", + "埃利·福里斯特·基顿", + "夏洛特·霍尔", + "拉奎尔·麦克马洪", + "格伦·卢恩塞特", + "特里安娜" + ] + }, + { + "usage": "backer", + "gender": "male", + "name": [ + "丹尼尔·丹尼希", + "丹尼尔·安菲尔德", + "亚历山大·克里奇科", + "亚历山大·威克斯", + "亚历山大·德米特里耶夫", + "伊恩·克利尔", + "休伯特·休斯", + "休伯特·罗登博", + "保罗·华莱士", + "克里斯·沃特金斯", + "克里斯多夫·福林", + "克雷格·弗格森", + "克雷格·马顿", + "凯文·威特", + "凯文·格拉索", + "列弗·米希金", + "列昂尼德·瓦斯莱夫", + "加百利·唐", + "加里同志", + "劳里·丹尼斯", + "南森·卡恩", + "博巴洛特", + "卡米尔·克里维森", + "古尔戈·哈克波夫", + "古尔法斯·马戈洛克", + "史蒂文·彼得森", + "吉姆·兰德龙", + "吉姆·韦弗", + "哈立德·拉希德", + "埃里克·汉格布勒", + "埃里克·鲁萨克", + "塞巴斯蒂安·雅弗雷", + "威尔·沃克", + "威廉·福里斯特", + "安东·斯特鲁伊克", + "安东尼·伯利", + "安德鲁·瓜斯泰拉", + "安德鲁·韦伯斯特", + "尼克·'轰炸机'·帕克", + "尼克·斯蒂芬", + "山姆·施泰因", + "布莱恩·戴维森", + "布莱恩·霍斯特曼", + "希尔克·范德沙夫博士", + "帕斯卡尔·菲利波维奇", + "延斯·贝克", + "彼特·斯皮尔伯格", + "恩里克·阿隆索", + "戴夫·斯蒂尔德文森", + "托德里克·罗霍普", + "托拜厄斯·弗兰克", + "托马斯·拉尔森", + "托马斯·西蒙", + "斯泰特纳", + "本·麦克卢尔", + "本杰明·里普洛格尔", + "杰夫·梅杰", + "欧文·邓恩", + "正男", + "汉克·莱克拉姆", + "汤姆·霍珀", + "温塔尔·戈特伯德", + "热雷米亚斯·卜拉布", + "特拉维斯·吉布森", + "瑞克·'桀骜不驯之人'", + "知傲", + "砺波·约根森", + "米克·巴特", + "米格尔·赫尔梅斯", + "米歇尔·贝杰龙", + "米洛克", + "索奇·加博尔·费伦茨", + "约书亚·扬", + "约瑟夫·扎卡维·巴特利特", + "约翰·哈梅尔", + "约翰·恩尼恩", + "纪尧姆·勒比格特", + "纳撒尼尔·福特", + "维克多·库罗皮尼科", + "罗布·基斯", + "罗布·韦策尔", + "罗恩·'噪音'·哈基姆", + "罗素·雷诺兹三世", + "肖恩·邓肯", + "荷马", + "菲利克斯·福克斯", + "菲利克斯·阿普林", + "菲力浦·特朗布莱", + "萨拉勒·科伊尔", + "西蒙·托雷森·赫尔特", + "詹姆斯·肯尼", + "贾斯汀·麦金农", + "达喀尔", + "迈克尔·'死于非命'·琼斯", + "迈克尔·希尔", + "迈克尔·金凯德", + "迈尔斯·普洛韦斯", + "迪克·瑟吉斯", + "道格·奥格登", + "阿切尔", + "阿杰伊·钱德拉", + "阿格斯·M.·洛厄尔", + "雷蒙德·贝莱斯", + "韦恩·A.·阿瑟顿", + "马丁·伍达德", + "马丁·斯文松", + "马修·圣约翰", + "马克·'坏男孩'·巴多伊", + "马特·威廉姆斯", + "马特·戴维斯", + "鲁道夫·施密特", + "黑川健二" + ] + }, + { + "usage": "backer", + "gender": "unisex", + "name": [ + "克莱·福克森塔尔", + "加楚", + "多利奥", + "尤瑞斯特·麦克普鲁丹特", + "希姆·费尔米", + "弗罗森·福克希", + "拉克兰", + "拉瑞安", + "斯帕兹·佩克洛特", + "斯帕洛·格里芬", + "斯诺·'喵星人'", + "罗尔", + "罗尼·马格努松", + "达斯克·高", + "通萨", + "阿克", + "阿尔法伊", + "阿童木", + "雷诺·帕克", + "马尼柯·德帕赛文" + ] + }, + { + "usage": "city", + "name": [ + "万斯伯勒", + "不伦瑞克", + "不来梅", + "东哈德姆", + "东哈特福德", + "东布里奇沃特", + "东布鲁克菲尔德", + "东普罗维登斯", + "东朗梅多", + "东格兰比", + "东格林威治", + "东汉普顿", + "东温莎", + "东港", + "东米利诺基特", + "东莱姆", + "东蒙彼利埃", + "东金斯顿", + "东马柴厄斯", + "中国", + "中心港", + "丹伯里", + "丹尼斯", + "丹尼斯维尔", + "丹尼斯镇", + "丹巴顿郡", + "丹弗斯", + "丹弗斯", + "丹比", + "丹维尔", + "丹麦", + "乔治敦", + "亚历山大", + "亚历山大里亚", + "亚当斯", + "亨尼克", + "亨廷顿", + "什鲁斯伯里", + "他泊山", + "代顿", + "伊丽莎白角", + "伊斯特姆", + "伊斯特布鲁克", + "伊斯特汉普顿", + "伊斯特福德", + "伊斯顿", + "伊普斯威奇", + "伊格尔莱克", + "伊诺斯堡", + "伊顿", + "伍兹塔克", + "伍利奇", + "伍德伯里", + "伍德兰", + "伍德布里奇", + "伍德福德", + "伍德维尔", + "伍斯特", + "伦敦德里", + "伦瑟姆", + "伦道夫", + "伯丁罕", + "伯克", + "伯克利", + "伯克郡", + "伯利恒", + "伯恩", + "伯灵顿", + "伯瑞特波罗", + "伯纳姆", + "伯纳德斯顿", + "佛罗里达", + "佩勒姆马勒衔", + "佩珀勒尔", + "佩里", + "克伦威尔", + "克兰斯顿", + "克利夫顿", + "克劳福德", + "克劳顿市", + "克拉伦登", + "克拉克斯堡", + "克拉克斯维尔", + "克拉夫伯里", + "克林顿", + "克莱蒙特", + "克里斯特尔", + "兰开斯特", + "兰德格罗夫", + "兰登", + "兰达夫", + "内蒂克", + "冬青山", + "切姆斯福德", + "切尔西", + "切斯特", + "切斯特维尔", + "切斯特菲尔德", + "切比克岛", + "切里菲尔德", + "列克星顿", + "利伯蒂", + "利兹", + "利奇菲尔德", + "利弗莫尔", + "利弗莫尔福尔斯", + "利明顿", + "利特尔顿", + "利默里克郡", + "剑桥", + "加兰", + "加德纳", + "加来", + "加菲尔德种植园", + "加迪纳", + "劳伦斯", + "劳登", + "勒德洛", + "勒普斯特尔", + "北亚当斯", + "北史密斯菲尔德", + "北地市", + "北安多福", + "北安普敦", + "北布兰福德", + "北布鲁克菲尔德", + "北希罗", + "北斯托宁顿", + "北普罗维登斯", + "北汉普顿", + "北贝里克", + "北迦南", + "北金斯敦", + "北阿特尔伯勒", + "北雅茅斯", + "北雷丁", + "匹兹堡", + "华盛顿", + "南伯灵顿", + "南哈德利", + "南安普敦", + "南布里斯托", + "南托马斯顿", + "南汉普顿", + "南波特兰", + "南海罗", + "南温莎", + "南贝威克", + "南金斯顿", + "博伊尔斯", + "博克斯伯勒", + "博克斯福德", + "博尔顿市", + "博斯考恩", + "卡伯特", + "卡勒巴西特谷", + "卡姆登", + "卡弗", + "卡拉滕克", + "卡文迪许", + "卡斯威尔", + "卡斯尔山", + "卡斯尔顿", + "卡斯廷", + "卡斯科", + "卡明顿", + "卡梅尔", + "卡特勒", + "卡罗尔", + "卡罗尔种植园", + "卡莱尔", + "卡里布", + "卡里种植园", + "卢嫩堡", + "卢贝克", + "卫斯特利", + "厄普顿", + "古尔兹伯勒", + "史密斯菲尔德", + "吉利厄德", + "吉尔", + "吉尔德霍尔", + "吉尔曼顿", + "吉尔瑟姆", + "吉尔福德", + "吉尔福德", + "哈伯兹", + "哈伯顿", + "哈佛", + "哈利法克斯", + "哈姆林", + "哈姆登", + "哈德利", + "哈德威克", + "哈德森", + "哈波斯维尔", + "哈洛韦尔", + "哈温顿", + "哈灵顿", + "哈特兰", + "哈特福德", + "哈特菲尔德", + "哈特镇", + "哈莫尼", + "哈蒙德", + "哈达姆", + "哈里奇", + "哈里斯维尔", + "哈里森", + "哥伦比亚", + "哥伦比亚福尔斯", + "因达斯特里", + "图克斯伯里", + "图顿波瑞", + "圣乔治", + "圣奥尔本斯", + "圣弗朗西斯", + "圣约翰斯博瑞", + "圣约翰种植园", + "圣阿加莎", + "坎伯兰郡", + "坎普顿", + "坎特伯雷", + "坎顿", + "坦普尔", + "坦普尔顿", + "埃丁顿", + "埃克塞特", + "埃勒尔", + "埃塞克斯", + "埃奇库姆", + "埃姆斯伯里", + "埃尔斯沃思", + "埃尔莫尔", + "埃平", + "埃弗雷特", + "埃德加敦", + "埃德蒙兹", + "埃普索姆", + "埃林顿", + "埃格勒蒙特", + "埃特纳", + "埃登", + "埃芬厄姆", + "培诺伯斯科特", + "基恩", + "基林顿", + "基灵利", + "基灵沃思", + "基特里", + "塔姆沃思", + "塔尔梅奇", + "塞勒姆", + "塞巴戈", + "塞布伊斯种植园", + "塞贝克", + "墨西哥", + "士麦纳", + "夏洛特", + "多佛-福克斯克罗夫特", + "多佛尔", + "多塞特", + "多尔切斯特", + "大巴灵顿", + "天鹅岛", + "奇切斯特", + "奇尔马克", + "奇科皮", + "奥克兰", + "奥克姆", + "奥克布拉夫斯", + "奥克斯博", + "奥克菲尔德", + "奥兰", + "奥兰治", + "奥古斯塔", + "奥威尔", + "奥尔堡", + "奥尔巴尼", + "奥尔德敦", + "奥尔斯黑德", + "奥尔福德", + "奥尔良", + "奥尔顿", + "奥提斯菲尔德", + "奥斯本", + "奥本", + "奥灵顿", + "奥甘奎特", + "奥福德", + "奥罗拉", + "奥蒂斯", + "奥西皮", + "奥连特", + "威丝曼兰德", + "威利斯顿", + "威利曼蒂克", + "威努斯基", + "威尔士", + "威尔斯利", + "威尔明顿", + "威尔莫特", + "威尔顿", + "威廉斯堡", + "威廉斯敦", + "威斯卡西特", + "威斯敏斯特", + "威斯特伍德", + "威斯特莫", + "威斯特莫兰德", + "威林顿", + "安德沃", + "安森", + "安特里姆", + "安索尼亚", + "宾厄姆", + "富兰克林", + "小康普顿", + "尤宁", + "尤尼蒂", + "尤斯蒂斯", + "尼尔森", + "尼维尔", + "尼达姆", + "巴克兰", + "巴克哈姆斯特德", + "巴克斯波特", + "巴克斯顿", + "巴克菲尔德", + "巴奈特市", + "巴尔港", + "巴尔的摩", + "巴思", + "巴恩斯特布", + "巴恩斯特德", + "巴拉莫", + "巴灵种植园", + "巴灵顿", + "巴特利特", + "巴纳德", + "巴里", + "巴顿", + "巴黎", + "布伦特伍德", + "布兰查德", + "布兰登", + "布兰福德", + "布兰福德", + "布卢姆菲尔德", + "布卢希尔", + "布拉克菲尔德", + "布拉克顿", + "布拉德利", + "布拉德福", + "布斯贝", + "布斯贝港", + "布朗宁顿", + "布朗维尔", + "布朗菲尔德", + "布莱克斯通", + "布莱恩", + "布莱顿", + "布莱顿种植园", + "布里奇沃特", + "布里奇波特", + "布里奇顿", + "布里姆菲尔德", + "布里德波特", + "布里斯托尔", + "布雷茵特里", + "布鲁克斯", + "布鲁克斯维尔", + "布鲁克林", + "布鲁克林", + "布鲁克莱恩", + "布鲁克顿", + "布鲁尔", + "布鲁斯特", + "希伯伦", + "希尔", + "希尔斯伯勒", + "希尔种植园", + "希思", + "帕克斯顿", + "帕克曼", + "帕尔迈拉", + "帕森菲尔德", + "帕滕", + "帕萨达姆凯格", + "帕麦尔", + "干地亚", + "库恩维尔", + "库珀", + "底特律", + "庞弗里特", + "康威", + "康沃尔", + "康科德", + "康纳", + "廷斯堡罗夫", + "廷茅斯", + "弗伦奇伯勒", + "弗伦奇维尔", + "弗伦德希普", + "弗农", + "弗农山", + "弗朗科尼亚", + "弗朗西斯城", + "弗莱岛", + "弗莱彻", + "弗里德姆", + "弗里敦", + "弗里曼", + "弗里波特", + "弗里蒙特", + "弗金斯", + "弗雷堡", + "弗雷明汉", + "彭布鲁克", + "彼得伯勒", + "彼得福特", + "彼得舍姆", + "德克斯特", + "德布洛斯", + "德比", + "德累斯顿", + "德里", + "德雷卡特", + "德鲁种植园", + "怀廷", + "怀特菲尔德", + "恩巴顿", + "恩菲尔德", + "惠尔洛克", + "惠廷厄姆", + "惠灵顿", + "惠特利", + "惠特尼", + "惠特曼", + "戈勒姆", + "戈夫斯敦", + "戈斯诺尔德", + "戈申", + "戴尔布鲁克", + "戴德姆", + "戴顿", + "托兰", + "托普斯菲尔德", + "托普瑟姆", + "托灵顿", + "拉伊", + "拉伊盖特", + "拉哥尼亚", + "拉塞尔", + "拉姆尼", + "拉姆福德", + "拉格朗日", + "拉特兰郡", + "拉莫因", + "拜伦", + "挪威", + "摩根", + "摩洛种植园", + "摩顿巿", + "文哈尔", + "文索基特", + "斯万普斯科特", + "斯卡伯勒", + "斯图尔兹敦", + "斯图本", + "斯坦福德", + "斯坦纳德", + "斯坦迪什", + "斯塔克", + "斯塔克斯", + "斯塔克斯伯勒", + "斯塔福德", + "斯德哥尔摩", + "斯托", + "斯托", + "斯托克布里奇", + "斯托克斯普林斯", + "斯托宁顿", + "斯托纳姆", + "斯托达德", + "斯托顿", + "斯旺威尔", + "斯旺泽", + "斯旺西", + "斯旺顿", + "斯普拉格", + "斯普林菲尔德", + "斯泰森", + "斯特布里奇", + "斯特拉森姆", + "斯特拉特福德", + "斯特拉福德", + "斯特拉顿", + "斯特朗", + "斯特林", + "斯特西维尔", + "斯考希根", + "新不列颠", + "新伊普斯威奇", + "新伦敦", + "新利默里克", + "新加拿大", + "新哈特福德", + "新塞勒姆", + "新布伦特里", + "新格洛斯特", + "新汉普顿", + "新沙伦", + "新波士顿", + "新波特兰", + "新瑞典", + "新瓦恩伊德", + "新米尔福德", + "新肖勒姆", + "新贝德福德", + "新费尔菲尔德", + "新达勒姆", + "新迦南", + "新阿什福德", + "新马尔堡", + "旧塞布鲁克", + "旧奥查德比奇", + "旧莱姆", + "昂德希尔", + "昆西", + "普兰蒂斯", + "普利茅斯", + "普拉斯托", + "普林斯顿", + "普林顿", + "普特南", + "普特尼", + "普瑞斯克岛", + "普罗文斯镇", + "普罗斯佩克特", + "普罗科特", + "普罗维登斯", + "普莱恩维尔", + "普莱恩菲尔德", + "普雷斯科特", + "普雷斯顿", + "曼彻斯特", + "曼斯菲尔德", + "朗吉利种植园", + "朗格莱", + "朗梅多", + "本宁顿", + "本尼迪克塔", + "本森", + "本顿", + "朴茨茅斯", + "李", + "杰伊", + "杰克曼", + "杰克逊", + "杰斐逊", + "林奇", + "林尼厄斯", + "林德区", + "林恩", + "林登", + "林肯", + "林肯种植园", + "林肯维尔", + "林菲尔德", + "柏林", + "柏林威尔", + "查塔姆", + "查尔斯敦", + "查尔斯顿", + "查尔蒙特", + "查尔顿", + "查普曼", + "查普林", + "柯兴", + "柯比", + "柴郡", + "格伦伍德种植园", + "格伦本", + "格兰德岛", + "格兰德菜克斯蒂姆", + "格兰比", + "格兰瑟姆", + "格兰维尔", + "格拉夫顿", + "格拉斯顿伯里", + "格拉斯顿伯里", + "格林", + "格林伍德", + "格林尼治", + "格林布什", + "格林斯博罗", + "格林维尔", + "格林菲尔德", + "格洛弗", + "格洛斯特", + "格瑞特伯德", + "格罗切斯特", + "格罗夫兰", + "格罗顿", + "格里斯沃尔德", + "格陵兰", + "格雷", + "格鲁吉亚", + "桑代克", + "桑威奇", + "桑当", + "桑格维尔", + "桑盖特", + "桑福德", + "桑迪斯", + "桑迪河种植园", + "桑顿", + "梅休因", + "梅卡尼克福尔斯", + "梅尔罗斯", + "梅德斯通", + "梅德菲尔德", + "梅德韦", + "梅普尔顿", + "梅森", + "梅纳德", + "梅里尔", + "梅里登", + "梅里马克", + "梅里麦克", + "梅雷迪思", + "森得兰郡", + "森波顿", + "森特勒尔福尔斯", + "森特维尔", + "楠塔基特", + "欣厄姆", + "欣斯代尔", + "欧文", + "比尔斯", + "比尔里卡", + "比肯福尔斯", + "汉密尔顿", + "汉普斯特德", + "汉普顿", + "汉普顿", + "汉普顿瀑布", + "汉森", + "汉考克", + "汉诺威", + "汤普森", + "汤森德", + "汤森德", + "汤玛斯敦", + "沃什博恩", + "沃伦", + "沃伦顿", + "沃兹伯勒", + "沃夫博乐", + "沃尔多", + "沃尔多波罗", + "沃尔波尔", + "沃尔瑟姆", + "沃尔科特", + "沃本", + "沃林福德", + "沃格拉斯", + "沃特伯勒", + "沃特伯里", + "沃特敦", + "沃特福德", + "沃特维尔瓦里", + "沃纳", + "沃辛顿", + "沃里克", + "沙伦", + "沙利文", + "沙夫兹伯里", + "沙普利", + "法兰克福", + "法尔茅斯", + "法明代尔", + "法明顿", + "波兰", + "波利特", + "波塔基特", + "波士顿", + "波尔特尼", + "波斯拉", + "波特", + "波特兰", + "波特治湖", + "洛厄尔", + "洛基希尔", + "洛弗尔", + "洛金汉", + "浦纳", + "海兰种植园", + "海勒姆", + "海德公园", + "海恩斯堡", + "海恩斯维尔", + "海格特", + "海狸湾", + "温", + "温彻斯特", + "温彻顿", + "温德姆", + "温德尔", + "温斯洛", + "温特沃斯", + "温特波特", + "温特港", + "温特维尔种植园", + "温索普", + "温色洛克", + "温莎", + "湖景保护区", + "滕布里奇", + "潘顿", + "爱丁堡", + "牙买加", + "牛津", + "牛顿", + "特伦顿", + "特朗布尔", + "特洛伊", + "特纳", + "特里蒙特", + "特雷斯科", + "特鲁罗", + "珀勒姆", + "珀金斯", + "班克罗夫特", + "班戈", + "琼斯伯勒", + "琼斯波特", + "瑞典", + "瑞德菲尔德", + "瑟斯伯格", + "瓦尔登", + "瓦特维尔", + "瓦瑟尔伯勒", + "皮博迪", + "皮查姆", + "皮耶蒙特", + "皮茨福德", + "皮茨菲尔德", + "皮茨顿", + "福克斯", + "福克斯区", + "福克斯堡", + "福尔河", + "福斯特", + "福里斯特城", + "福门城", + "科哈西特", + "科尔切斯特", + "科尔布鲁克", + "科尼什", + "科普林种植园", + "科林斯", + "科琳娜", + "科迪威尔种植园", + "科雷恩", + "秘鲁(美国)", + "穆斯河", + "米兰", + "米利斯", + "米利诺基特", + "米尔伯里", + "米尔布里奇", + "米尔福德", + "米尔维尔", + "米尔顿", + "米德尔伯里", + "米德尔敦", + "米德尔敦普林斯", + "米德尔菲尔德", + "米德尔赛克斯", + "米德尔顿", + "米德波罗", + "米德福特", + "索伦", + "索伦托", + "索尔兹伯里", + "索斯维克", + "索斯维克", + "索格斯", + "索科", + "约克", + "约翰斯顿", + "约翰逊", + "纳什维尔种植园", + "纳拉甘西特", + "纳罕特", + "纳舒厄", + "纽伯里", + "纽伯里波特", + "纽卡斯尔", + "纽卡斯尔", + "纽因顿", + "纽堡", + "纽敦", + "纽波特", + "纽瓦克", + "纽菲尔德", + "纽菲尔德", + "纽里", + "纽马克特", + "纽黑文", + "绍斯伯勒", + "绍斯伯里", + "绍斯布里奇", + "绍斯波特", + "绍辛顿", + "维也纳", + "维克托里", + "维尔福利特", + "维斯菲尔德", + "维罗纳岛", + "维齐", + "罗亚尔顿", + "罗伊", + "罗伊尔斯顿", + "罗克兰", + "罗克夫斯", + "罗克波特", + "罗切斯特", + "罗利", + "罗宾斯顿", + "罗林斯福德", + "罗科斯伯里", + "罗马", + "考文垂", + "耶利哥", + "耶斯顿", + "肖勒姆", + "肯特", + "肯特堡", + "肯纳邦克", + "肯纳邦克波特", + "肯辛顿", + "肯达斯科伊格", + "舍伯恩", + "舒兹伯利", + "舒格高地", + "艾仕本罕", + "艾伦斯敦", + "艾兰福尔斯", + "艾冯郡", + "艾勒斯堡", + "艾尔伯勒", + "艾拉", + "艾略特", + "艾默斯特", + "芒克顿", + "芒特佛南", + "芒特切斯", + "芒特华盛顿", + "苏格兰", + "苏纳皮", + "范布伦", + "荒山岛", + "莫勒尔", + "莫尔顿伯勒", + "莫敦", + "莫斯科", + "莫里斯", + "莫里斯敦", + "莱克威尔", + "莱切斯特", + "莱姆", + "莱姆斯通", + "莱弗里特", + "莱德亚德", + "莱恩斯伯勒", + "莱明斯特", + "莱明顿", + "莱曼", + "莱诺克斯", + "莱顿", + "菲利普", + "菲利普斯顿", + "菲普斯堡", + "菲茨威廉", + "萨巴特斯", + "萨德伯里", + "萨沃伊", + "萨纳姆", + "萨菲尔德", + "萨里", + "萨里", + "萨顿", + "萨默塞特", + "萨默斯", + "萨默斯沃思", + "萨默维尔", + "蒂尔顿", + "蒂弗顿", + "蒙哥马利", + "蒙塔古", + "蒙彼利埃", + "蒙根", + "蒙森", + "蒙特维尔", + "蒙特雷", + "蒙蒂塞洛", + "蒙默思", + "蔓越莓群岛", + "西加德纳", + "西南港", + "西博伊尔斯顿", + "西哈特福德", + "西姆斯伯里", + "西姆斯伯里", + "西安普顿", + "西巴特", + "西布里奇沃特", + "西布鲁克", + "西布鲁克菲尔德", + "西帕里斯", + "西德尼", + "西拉特兰", + "西摩", + "西斯托克布里奇", + "西斯普林菲尔德", + "西斯蒂伯里", + "西格林威治", + "西沃克利", + "西温莎", + "西港", + "西福克斯", + "西纽伯里", + "西费尔里", + "西黑文", + "西黑文", + "詹姆斯顿", + "诺丁汉", + "诺伍德", + "诺伯伯瑞", + "诺克斯", + "诺威奇", + "诺斯伍德", + "诺斯伯勒", + "诺斯布里奇", + "诺斯波特", + "诺斯黑文", + "诺格塔克", + "诺森伯兰", + "诺沃克", + "诺福克郡", + "诺里奇沃克", + "诺韦尔", + "诺顿", + "谢尔曼", + "谢尔本", + "谢尔登", + "谢尔顿", + "谢菲尔德", + "豪兰", + "贝丁顿", + "贝克斯菲尔德", + "贝利维尔", + "贝基特", + "贝尔彻敦", + "贝尔格莱德", + "贝尔法斯特", + "贝尔维迪尔", + "贝尔蒙特", + "贝弗莉", + "贝德福德", + "贝灵哈姆", + "贝瑟尔", + "贝瑟尼", + "贝里克", + "费奇伯格", + "费尔利", + "费尔法克斯", + "费尔港", + "费尔菲尔德", + "费尔菲尔德堡", + "费尔黑文", + "费耶特", + "费里斯堡", + "贾弗里", + "赛奇威克", + "赫尔", + "赫尔", + "赫蒙", + "赫西", + "路易斯顿", + "达克斯伯里", + "达勒姆", + "达德利郡", + "达拉斯种植园", + "达特默斯", + "达莫斯顿", + "达里恩", + "达马瑞斯哥塔", + "达默", + "迈诺特", + "迦南", + "迦太基", + "迪克斯菲尔德", + "迪克斯蒙特", + "迪尔艾尔", + "迪尔菲尔德", + "迪斯伯里", + "迪普里弗", + "迪林厄姆", + "迪灵", + "逸岭种植园", + "道尔顿", + "道格拉斯", + "邓斯特布尔", + "那不勒斯", + "都柏林", + "里兹伯勒", + "里士满", + "里奇福德", + "里奇菲尔德", + "里德种植园", + "里斯本", + "里普利", + "里维尔", + "金士顿", + "金斯伯里种植园", + "金曼", + "金菲尔德", + "锡尔斯蒙特", + "锡康克", + "锡楚埃特", + "长屿", + "门登", + "门罗", + "阿什兰", + "阿什比", + "阿什福德", + "阿什菲尔德", + "阿伦德尔", + "阿克斯布里奇", + "阿克沃思", + "阿克顿", + "阿博特", + "阿奎那", + "阿宾顿", + "阿尔弗雷德", + "阿尔斯德", + "阿尔比恩", + "阿尔纳", + "阿库斯内", + "阿拉加什", + "阿普尔顿", + "阿格瓦姆", + "阿灵顿", + "阿特尔伯勒", + "阿特金森", + "阿狄森", + "阿瑟尔", + "阿盖尔", + "阿米蒂", + "阿罗斯克", + "阿耶尔", + "陶顿", + "雅典", + "雅茅斯", + "雪利", + "雷丁", + "雷普敦", + "雷纳姆", + "雷蒙德", + "雷霍博特", + "霍克赛特", + "霍兰", + "霍利", + "霍利奥克", + "霍利斯", + "霍奇登", + "霍尔布鲁克", + "霍尔德内斯", + "霍尔登", + "霍尔顿", + "霍普", + "霍普戴尔", + "霍普金顿", + "霍里斯顿", + "韦伯拉汉", + "韦伯斯特", + "韦伯斯特种植园", + "韦克菲尔德", + "韦兰", + "韦兹菲尔德", + "韦勒姆", + "韦尔", + "韦尔勒", + "韦尔德", + "韦尔斯", + "韦布里奇", + "韦德", + "韦恩", + "韦斯利", + "韦斯特伯勒", + "韦斯特布鲁克", + "韦斯特福德", + "韦斯特菲尔德", + "韦斯顿", + "韦特", + "韦瑟斯菲尔德", + "韦纳尔黑文", + "韦肖尔", + "韦茅斯", + "韦那姆", + "马什皮", + "马什菲尔德", + "马克斯菲尔德", + "马加洛韦种植园", + "马尔伯勒", + "马尔堡", + "马布尔黑德", + "马德里", + "马恰斯波特", + "马斯希尔", + "马柴厄斯", + "马波丽", + "马泰森斯特", + "马洛", + "马特岛", + "马特沃姆凯格", + "马特波伊西特", + "马萨迪斯", + "马蒂尼克斯岛", + "马蒂本普", + "马达沃斯卡", + "马里亚维尔", + "马里恩", + "高岛", + "鲁伯特", + "鲍尔班克", + "鲍德温", + "鲍村", + "鲍登", + "麦洛", + "麦迪逊", + "麦阔霍克种植园", + "麻萨诸塞州曼彻斯特", + "黎凡特", + "黎巴嫩", + "黑弗里尔", + "默瑟", + "齐坦丹" + ] + }, + { + "usage": "family", + "gender": "unisex", + "name": [ + "亚历山大", + "亚当斯", + "亨德森", + "伍德", + "休斯", + "佩里", + "佩雷斯", + "克拉克", + "冈萨雷斯", + "冈萨雷斯", + "凯利", + "刘易斯", + "加西亚", + "华盛顿", + "卡特", + "史密斯", + "哈里斯", + "坎贝尔", + "埃文斯", + "墨菲", + "始音", + "威尔森", + "威廉姆斯", + "娜吉雅", + "安德森", + "尼尔森", + "巴恩斯", + "巴特勒", + "布朗", + "布莱恩特", + "布鲁克斯", + "希尔", + "帕克", + "帕特森", + "库克", + "库珀", + "弗洛雷斯", + "怀特", + "戴维斯", + "托雷斯", + "托马斯", + "拉塞尔", + "拉米雷斯", + "摩尔", + "摩根", + "斯图尔特", + "斯科特", + "普赖斯", + "本内特", + "李", + "杨", + "杰克逊", + "柯林斯", + "格林", + "格里芬", + "格雷", + "桑切斯", + "桑德斯", + "汤普森", + "沃克", + "沃德", + "沃森", + "泰勒", + "洛佩斯", + "浪", + "海耶斯", + "爱德华兹", + "特纳", + "理查森", + "琼斯", + "皮特森", + "福斯特", + "科尔曼", + "米切尔", + "米勒", + "约翰逊", + "罗伯茨", + "罗宾逊", + "罗德里格斯", + "罗斯", + "罗杰斯", + "考克斯", + "艾伦", + "范·王尔德", + "莫里斯", + "菲利普", + "西蒙斯", + "詹姆斯", + "詹金斯", + "贝克", + "贝利", + "贝尔", + "赖特", + "赫尔南德斯", + "迪亚兹", + "里德", + "里维拉", + "金", + "霍华德", + "霍尔", + "韦斯特", + "马丁", + "马丁内斯", + "鲍威尔" + ] + }, + { + "usage": "given", + "gender": "female", + "name": [ + "乔斯林", + "亚历克西斯", + "亚历山德拉", + "亚纪子", + "亚莉克莎", + "伊丽莎白", + "伊芙琳", + "伊莎贝尔", + "伊莎贝拉", + "佐伊", + "佐伊", + "佩奇", + "佩顿", + "依莎贝尔", + "光", + "克洛伊", + "克莱儿", + "内瓦艾", + "凯拉", + "凯特琳", + "凯特琳", + "凯莉", + "凯莉", + "凯蒂", + "利亚", + "加布里埃", + "努库", + "劳伦", + "卡洛琳", + "卡米拉", + "吉安娜", + "嘉柏丽尔", + "夏树", + "夏洛特", + "奥布里", + "奥德丽", + "奥特姆", + "奥莉维亚", + "娜塔莉", + "安吉莉娜", + "安娜", + "安德烈", + "布丽安娜", + "布鲁克", + "布鲁克林", + "希瑟", + "德斯蒂尼", + "摩根", + "朱莉娅", + "杰妮西丝", + "杰西", + "杰西卡", + "格雷西", + "梅勒妮", + "梅根", + "汉娜", + "海莉", + "特里妮蒂", + "玛丽", + "玛丽亚", + "玛丽亚", + "玛凯拉", + "玛德琳", + "玛雅", + "珍", + "瓦妮莎", + "瓦莱里娅", + "由纪", + "相泽", + "米娅", + "索菲", + "索菲亚", + "维多利亚", + "艾利森", + "艾弗里", + "艾拉", + "艾玛", + "艾米丽", + "莉莉", + "莉莲", + "莎拉", + "莱利", + "萨凡纳", + "萨拉", + "萨曼莎", + "葛瑞丝", + "蕾拉", + "西德妮", + "詹尼弗", + "贝利", + "费斯", + "贾丝敏", + "金姆", + "金柏莉", + "阿丽亚娜", + "阿什利", + "阿比盖尔", + "阿狄森", + "阿瓦", + "阿米莉娅", + "阿莉娅", + "阿莉莎", + "阿里安娜", + "雷切尔", + "马德琳", + "麦迪逊" + ] + }, + { + "usage": "given", + "gender": "male", + "name": [ + "丹尼尔", + "乔丹", + "乔纳森", + "亚历克斯", + "亚历山大", + "亚当", + "亨利", + "亨特", + "京介", + "以赛亚", + "伊利亚", + "伊恩", + "伊森", + "伊莱", + "克来勃", + "克里斯托弗", + "克里斯蒂安", + "兰顿", + "凯塔", + "凯尔", + "凯文", + "利亚姆", + "加布里埃尔", + "加文", + "南森", + "卡梅伦", + "卡森", + "卡洛斯", + "卡特", + "卡登", + "卡登", + "卢克", + "卢卡斯", + "埃文", + "埃本", + "埃里克", + "基拉", + "塞巴斯森", + "塞缪尔", + "多米尼克", + "大佑", + "大卫", + "奥斯丁", + "威廉", + "安东尼", + "安吉尔", + "安德鲁", + "尼古拉斯", + "布兰登", + "布罗德", + "布莱克", + "布莱恩", + "布赖恩", + "布雷登", + "布雷迪", + "库珀", + "康纳", + "怀亚特", + "扎卡里", + "托马斯", + "本杰明", + "朱利安", + "杰克", + "杰克逊", + "杰森", + "杰登", + "杰登", + "杰西", + "查尔斯", + "梅森", + "欧文", + "泰勒", + "泽维尔", + "洛根", + "海登", + "特利斯坦", + "狄伦", + "科尔", + "科尔顿", + "竹内", + "约书亚", + "约瑟", + "约瑟夫", + "约翰", + "约西亚", + "纳撒尼尔", + "罗伯特", + "耶利米", + "肖恩", + "胡安", + "艾丹", + "艾伦", + "艾德里安", + "艾登", + "艾登", + "艾萨克", + "蔡斯", + "詹姆斯", + "让东", + "诺亚", + "贾斯汀", + "赖安", + "路易斯", + "迈克尔", + "迭戈", + "雅各布", + "马修" + ] + }, + { + "usage": "world", + "name": [ + "阿拉丁", + "阿拉坤", + "阿拉曼斯", + "阿拉莫", + "阿拉莫戈多", + "阿拉莫萨", + "阿拉莫塔", + "阿兰李德", + "阿拉巴哈", + "阿尔巴", + "阿尔巴尼", + "阿尔比尼", + "阿伯特", + "阿伯顿", + "阿尔宾", + "阿伯尔", + "阿博莱特", + "阿伯奎科", + "阿尔堡", + "阿加德", + "伯明翰", + "蒙哥马利", + "莫比尔县", + "安尼斯顿", + "加兹登", + "凤凰城", + "斯科茨代尔", + "坦佩", + "巴克艾", + "钱德勒", + "埃尔拉多", + "琼斯伯勒", + "潘恩崖", + "小石城", + "费耶特维尔", + "史密斯堡", + "英哩议院", + "基洛纳", + "乔治王子城", + "莫德斯托", + "洛杉矶", + "蒙特利", + "圣何塞", + "旧金山", + "奥克兰", + "伯克利", + "核桃溪", + "阿尔图拉斯", + "奇科", + "雷丁", + "弗雷斯诺", + "诺沃克", + "唐尼", + "长堤", + "圣迭戈", + "伯班克", + "格伦代尔", + "南帕萨迪纳", + "阿卡迪亚", + "洛斯拉图斯", + "帕洛阿尔托", + "南旧金山", + "尤里卡", + "圣罗莎", + "索诺玛", + "阿纳海姆", + "巴斯托", + "棕榈泉", + "贝克斯", + "圣巴巴拉", + "文图拉", + "北好莱坞", + "圣费尔南多", + "萨利纳斯", + "索拉纳海滩", + "里弗塞德", + "圣贝纳迪诺", + "萨克拉门托", + "普莱森", + "欧文", + "拉古纳", + "尼古湖", + "科罗拉多斯普林斯", + "普韦布洛", + "博尔德", + "丹佛", + "阿斯彭", + "柯林斯堡", + "大章克申", + "布里奇波特", + "纽黑文", + "哈特福德", + "基韦斯特", + "基西米", + "盖恩斯维尔", + "奥兰多", + "博卡拉顿", + "塞巴斯蒂安", + "西棕榈滩", + "克利尔沃特", + "北迈阿密", + "圣彼得堡", + "坦帕", + "巴拿马城", + "彭萨科拉", + "塔拉哈西", + "碧湖花园", + "杰克逊维尔", + "迈尔斯堡", + "那不勒斯", + "萨拉索塔", + "劳德代尔堡", + "阿梅里克斯", + "班布里奇", + "瓦尔多斯塔", + "华纳罗宾斯", + "亚特兰大", + "阿尔法利塔", + "奥古斯塔", + "罗马", + "亚特兰大郊区", + "不伦瑞克", + "梅肯", + "萨凡纳", + "韦克罗斯", + "香槟分校", + "皮奥里亚", + "岩岛", + "奥尔顿", + "开罗", + "东圣路易斯", + "奥罗拉", + "内珀维尔", + "奥克布鲁克台", + "芝加哥郊区", + "乔利埃特", + "拉萨尔", + "罗克福德", + "芝加哥", + "埃文斯顿", + "沃基", + "韦恩堡", + "加里", + "哈蒙德", + "南湾", + "印第安纳波利斯", + "科科莫", + "埃文斯维尔", + "特雷霍特", + "锡达拉皮兹", + "达文波特", + "迪比克", + "滑铁卢", + "埃姆斯", + "德梅因", + "道奇堡", + "克雷斯顿", + "梅森城", + "康瑟尔布拉夫斯", + "苏城", + "柯立芝", + "道奇城", + "哈钦森", + "威奇托", + "托皮卡", + "曼哈顿", + "科尔比", + "古德兰", + "劳伦斯", + "萨利纳", + "霍普金斯维尔", + "欧文斯伯勒", + "法兰克福", + "路易斯维尔", + "莫尔", + "列克星敦", + "杰利科", + "惠特利县", + "很多", + "奥奈达", + "萨克斯顿", + "巴吞鲁日", + "新道路", + "什里夫波特", + "查尔斯湖", + "拉斐特", + "霍玛", + "新奥尔良", + "坎伯兰", + "冯检基", + "黑格斯敦", + "安纳波利斯", + "巴尔的摩", + "洛克维尔", + "索尔兹伯里", + "皮茨菲尔德", + "海恩尼斯", + "新贝德福德", + "伍斯特", + "波士顿", + "诺伍德", + "韦茅斯", + "费奇伯格", + "梅休因", + "皮博迪", + "特拉弗斯城", + "拉丁顿", + "马斯基根", + "底特律", + "兰辛", + "芒特普莱森特", + "巴特尔克里克", + "卡拉马祖", + "安阿伯", + "梦露", + "弗林特", + "北底特律郊区", + "马凯特", + "苏圣玛丽", + "德卢斯", + "大急流城", + "莫尔海德", + "圣克劳德", + "曼凯托", + "明尼阿波利斯", + "圣保罗", + "雷德温", + "枫树林", + "布卢明顿", + "格尔夫波特", + "帕斯卡古拉", + "梅里登", + "哈蒂斯堡", + "冬青属春天", + "图珀洛", + "圣查尔斯", + "圣路易斯", + "友联市", + "乔普林", + "内华达州", + "汉尼拔", + "杰斐逊城", + "独立", + "堪萨斯城", + "圣若瑟", + "大岛", + "北普拉特", + "斯科次布拉夫", + "黑斯廷斯", + "林肯", + "奥马哈", + "奥尼尔", + "拉斯维加斯", + "卡森市", + "里诺", + "伊利", + "哈肯萨克", + "霍博肯", + "泽西城", + "大西洋城", + "卡姆登", + "特伦顿", + "龙科", + "新不伦瑞克省", + "瓦恩兰", + "樱桃山", + "伊丽莎白", + "菲利普斯堡", + "华盛顿", + "纽瓦克", + "帕特森", + "纽约市", + "奥斯威戈", + "锡拉丘兹", + "尤蒂卡", + "沃特敦", + "布伦特伍德", + "斯特德", + "奥尔巴尼", + "格洛弗斯维尔", + "斯克内克塔迪", + "特洛伊", + "宾厄姆顿", + "埃尔迈拉", + "恩迪科特", + "伊萨卡", + "长岛", + "马诺维尔", + "水牛城", + "尼亚加拉大瀑布", + "罗切斯特", + "布朗克斯", + "布鲁克林", + "皇后区", + "史泰登岛", + "法拉盛", + "波基普西", + "皮克斯基尔", + "怀特普莱恩斯", + "杨克斯", + "拉布拉多城", + "圣约翰", + "大西洋海滩", + "哈特拉斯", + "阿什伯勒", + "托马斯维尔", + "夏洛特", + "康科德", + "阿什维尔", + "安提阿", + "希科里", + "格林斯博罗", + "温斯顿", + "塞勒姆", + "达勒姆", + "罗利", + "瓦特维尔", + "白马", + "庞纳唐", + "克利夫兰", + "阿克伦", + "坎顿", + "沃伦", + "扬斯敦", + "鲍灵格林", + "芬德利", + "利马", + "托莱多", + "门托", + "奥伯林", + "韦斯特莱克", + "辛辛那提", + "米德尔敦", + "剑桥", + "代顿", + "希尔斯伯勒", + "斯普林菲尔德", + "阿森斯", + "哥伦布", + "兰开斯特", + "玛丽埃塔", + "伊妮德", + "俄克拉何马城", + "阿尔瓦", + "阿德莫尔", + "劳顿", + "麦卡莱斯特", + "迈阿密", + "马斯科吉", + "塔尔萨", + "多伦多", + "圭尔夫", + "基奇纳", + "伦敦", + "温莎", + "巴里", + "北部湾", + "苏圣玛丽", + "萨德伯里", + "德赖登", + "凯诺拉", + "威廉堡", + "桑德贝", + "库克斯维尔", + "汉密尔顿", + "米西索加", + "金士顿", + "渥太华", + "道夫", + "比弗顿", + "阿什兰", + "本德", + "科瓦利斯", + "尤金", + "彭德尔顿", + "萨利姆", + "波特兰", + "费城", + "匹兹堡", + "斯克兰顿", + "威廉波特", + "费城郊区", + "阿伦敦", + "哈里斯堡", + "葛底斯堡", + "纽卡斯尔", + "拉特罗布", + "尤宁敦", + "阿尔图纳", + "伊利", + "约翰斯敦", + "希库蒂米", + "魁北克", + "里穆斯基", + "蒙特利尔", + "劳埃德明斯特", + "里贾纳", + "萨斯卡通", + "柔克义", + "查尔斯顿", + "希尔顿黑德岛", + "默特尔比奇", + "佛罗伦萨", + "安德森", + "格林维尔", + "斯巴达", + "布里斯托尔", + "查塔努加", + "纳什维尔", + "诺克斯维尔", + "杰克逊", + "孟菲斯", + "市总工会", + "哥伦比亚", + "曼彻斯特", + "库克维尔", + "圣安东尼奥", + "韦科", + "鹿园", + "科珀斯克里斯蒂", + "维多利亚", + "博蒙特", + "加尔维斯顿", + "奥斯汀", + "贝莱尔", + "帕萨迪纳", + "阿马里洛", + "拉伯克", + "沃思堡", + "德尔里奥", + "尤瓦尔迪", + "休斯敦", + "巴黎", + "谢尔曼", + "特克萨卡纳", + "泰勒", + "阿比林", + "埃尔帕索", + "亨茨维尔", + "勒夫", + "丹顿", + "威奇塔瀑布", + "布朗斯维尔", + "麦卡伦", + "达拉斯", + "加兰", + "大草原城", + "欧文", + "普莱诺", + "沃顿商学院", + "圣乔治", + "里奇菲尔德", + "布兰丁", + "摩押", + "盐湖市", + "普罗沃", + "奥格登", + "布莱克斯堡", + "罗阿诺克", + "士丹顿", + "温彻斯特", + "亚历山德里亚", + "阿灵顿", + "费尔法克斯", + "亨登", + "诺福克", + "纽波特纽斯", + "威廉斯堡", + "夏洛茨维尔", + "丹维尔", + "里士满", + "西雅图", + "奥本", + "肯特", + "塔科马", + "贝林翰", + "奥林匹亚", + "温哥华", + "贝尔维尤", + "埃德蒙兹", + "埃弗里特", + "斯波坎", + "沃拉沃拉", + "亚基马", + "西本德", + "基诺沙", + "密尔沃基", + "拉辛", + "伯洛伊特", + "拉克罗", + "麦迪逊", + "普拉特维尔", + "欧克莱尔", + "苏必利尔", + "沃索", + "绿湾" + ] + } ] diff --git a/data/names/zh_TW.json b/data/names/zh_TW.json index 606ebd5ab3fa2..ba34ea2dc6607 100644 --- a/data/names/zh_TW.json +++ b/data/names/zh_TW.json @@ -1,1472 +1,1495 @@ [ -{"usage": "city", "name": "Acushnet"}, -{"usage": "city", "name": "Adams"}, -{"usage": "city", "name": "Addison"}, -{"usage": "city", "name": "Alexander"}, -{"usage": "city", "name": "Brandon"}, -{"usage": "city", "name": "Brooklyn"}, -{"usage": "city", "name": "Brooks"}, -{"usage": "city", "name": "Charlotte"}, -{"usage": "city", "name": "Connor"}, -{"usage": "city", "name": "Cooper"}, -{"usage": "city", "name": "Foster"}, -{"usage": "city", "name": "Gray"}, -{"usage": "city", "name": "Hill"}, -{"usage": "city", "name": "Jackson"}, -{"usage": "city", "name": "Johnson"}, -{"usage": "city", "name": "Lee"}, -{"usage": "city", "name": "Madison"}, -{"usage": "city", "name": "Mason"}, -{"usage": "city", "name": "Morgan"}, -{"usage": "city", "name": "Morris"}, -{"usage": "city", "name": "Nelson"}, -{"usage": "city", "name": "Perry"}, -{"usage": "city", "name": "Phillips"}, -{"usage": "city", "name": "Russell"}, -{"usage": "city", "name": "Thompson"}, -{"usage": "city", "name": "Turner"}, -{"usage": "city", "name": "Washington"}, -{"usage": "city", "name": "不來梅"}, -{"usage": "city", "name": "中國"}, -{"usage": "city", "name": "丹伯里"}, -{"usage": "city", "name": "丹佛斯"}, -{"usage": "city", "name": "丹尼斯"}, -{"usage": "city", "name": "丹尼斯維爾"}, -{"usage": "city", "name": "丹尼斯鎮"}, -{"usage": "city", "name": "丹比"}, -{"usage": "city", "name": "丹福思"}, -{"usage": "city", "name": "丹維爾"}, -{"usage": "city", "name": "丹麥"}, -{"usage": "city", "name": "亞倫鎮"}, -{"usage": "city", "name": "亞培"}, -{"usage": "city", "name": "亞歷安德拉"}, -{"usage": "city", "name": "亞甚蘭"}, -{"usage": "city", "name": "亞皆"}, -{"usage": "city", "name": "亞賓頓"}, -{"usage": "city", "name": "什魯斯伯里"}, -{"usage": "city", "name": "代爾布魯克"}, -{"usage": "city", "name": "代頓"}, -{"usage": "city", "name": "伊斯坦"}, -{"usage": "city", "name": "伊斯特布魯克"}, -{"usage": "city", "name": "伊斯特漢普頓"}, -{"usage": "city", "name": "伊斯特福德"}, -{"usage": "city", "name": "伊斯頓"}, -{"usage": "city", "name": "伊普斯維奇"}, -{"usage": "city", "name": "伊甸"}, -{"usage": "city", "name": "伊頓"}, -{"usage": "city", "name": "伍德伯里"}, -{"usage": "city", "name": "伍德布里奇"}, -{"usage": "city", "name": "伍德斯托克"}, -{"usage": "city", "name": "伍德福德"}, -{"usage": "city", "name": "伍德維爾"}, -{"usage": "city", "name": "伍德蘭"}, -{"usage": "city", "name": "伍爾維奇"}, -{"usage": "city", "name": "伯克"}, -{"usage": "city", "name": "伯克利"}, -{"usage": "city", "name": "伯克希爾"}, -{"usage": "city", "name": "伯利恆"}, -{"usage": "city", "name": "伯威克"}, -{"usage": "city", "name": "伯特利"}, -{"usage": "city", "name": "伯瑞特波羅"}, -{"usage": "city", "name": "伯瑞維爾"}, -{"usage": "city", "name": "伯納姆"}, -{"usage": "city", "name": "伯靈頓"}, -{"usage": "city", "name": "佛羅里達"}, -{"usage": "city", "name": "佩勒姆"}, -{"usage": "city", "name": "佩勒漢"}, -{"usage": "city", "name": "佩波羅爾"}, -{"usage": "city", "name": "佩諾斯科特"}, -{"usage": "city", "name": "保羅特尼"}, -{"usage": "city", "name": "倍根瀑"}, -{"usage": "city", "name": "倫敦德里"}, -{"usage": "city", "name": "倫瑟姆"}, -{"usage": "city", "name": "傑伊"}, -{"usage": "city", "name": "傑佛瑞"}, -{"usage": "city", "name": "傑佛遜"}, -{"usage": "city", "name": "傑克曼"}, -{"usage": "city", "name": "傑里科"}, -{"usage": "city", "name": "克倫威爾"}, -{"usage": "city", "name": "克勞福德"}, -{"usage": "city", "name": "克拉克斯堡"}, -{"usage": "city", "name": "克拉克斯維爾"}, -{"usage": "city", "name": "克羅伊登"}, -{"usage": "city", "name": "克萊爾登"}, -{"usage": "city", "name": "克萊蒙特"}, -{"usage": "city", "name": "克蘭斯頓"}, -{"usage": "city", "name": "克里夫頓"}, -{"usage": "city", "name": "克靈頓"}, -{"usage": "city", "name": "冬港"}, -{"usage": "city", "name": "凡斯波羅"}, -{"usage": "city", "name": "切姆斯福德"}, -{"usage": "city", "name": "切斯特"}, -{"usage": "city", "name": "切斯特維爾"}, -{"usage": "city", "name": "切斯特菲爾德"}, -{"usage": "city", "name": "切爾西"}, -{"usage": "city", "name": "切里菲爾德"}, -{"usage": "city", "name": "利奇菲爾德"}, -{"usage": "city", "name": "利奧明斯特"}, -{"usage": "city", "name": "利弗莫爾"}, -{"usage": "city", "name": "利弗莫爾瀑布"}, -{"usage": "city", "name": "利德堡"}, -{"usage": "city", "name": "利明頓"}, -{"usage": "city", "name": "利特爾頓"}, -{"usage": "city", "name": "利茲"}, -{"usage": "city", "name": "利默里克"}, -{"usage": "city", "name": "劍橋"}, -{"usage": "city", "name": "加德納"}, -{"usage": "city", "name": "加菲爾德森林"}, -{"usage": "city", "name": "加萊"}, -{"usage": "city", "name": "加蘭"}, -{"usage": "city", "name": "努凡"}, -{"usage": "city", "name": "勒德洛"}, -{"usage": "city", "name": "勞倫斯"}, -{"usage": "city", "name": "勞登"}, -{"usage": "city", "name": "北亞當斯"}, -{"usage": "city", "name": "北亞茂斯"}, -{"usage": "city", "name": "北史密斯菲爾德"}, -{"usage": "city", "name": "北哈芬"}, -{"usage": "city", "name": "北安多弗"}, -{"usage": "city", "name": "北安普頓"}, -{"usage": "city", "name": "北布蘭福德"}, -{"usage": "city", "name": "北布里其"}, -{"usage": "city", "name": "北布魯克菲爾德"}, -{"usage": "city", "name": "北希洛"}, -{"usage": "city", "name": "北斯通寧頓"}, -{"usage": "city", "name": "北普羅維登斯"}, -{"usage": "city", "name": "北漢普頓"}, -{"usage": "city", "name": "北貝里克"}, -{"usage": "city", "name": "北迦南"}, -{"usage": "city", "name": "北金斯敦"}, -{"usage": "city", "name": "北阿特巴路"}, -{"usage": "city", "name": "北雷丁"}, -{"usage": "city", "name": "匹茲堡"}, -{"usage": "city", "name": "卓別林"}, -{"usage": "city", "name": "南伯靈頓"}, -{"usage": "city", "name": "南哈德利"}, -{"usage": "city", "name": "南安普敦"}, -{"usage": "city", "name": "南布里奇"}, -{"usage": "city", "name": "南布里斯托爾"}, -{"usage": "city", "name": "南希羅"}, -{"usage": "city", "name": "南托馬斯頓"}, -{"usage": "city", "name": "南波特蘭"}, -{"usage": "city", "name": "南溫莎"}, -{"usage": "city", "name": "南漢普頓"}, -{"usage": "city", "name": "南貝里克"}, -{"usage": "city", "name": "南金斯敦"}, -{"usage": "city", "name": "博克斯伯勒"}, -{"usage": "city", "name": "博克斯福德"}, -{"usage": "city", "name": "博斯科恩"}, -{"usage": "city", "name": "卡勒巴西特谷"}, -{"usage": "city", "name": "卡博特"}, -{"usage": "city", "name": "卡弗"}, -{"usage": "city", "name": "卡拉籐克"}, -{"usage": "city", "name": "卡文迪許"}, -{"usage": "city", "name": "卡斯威爾"}, -{"usage": "city", "name": "卡斯廷"}, -{"usage": "city", "name": "卡斯爾頓"}, -{"usage": "city", "name": "卡斯科"}, -{"usage": "city", "name": "卡梅爾"}, -{"usage": "city", "name": "卡洛爾"}, -{"usage": "city", "name": "卡洛爾森林"}, -{"usage": "city", "name": "卡特勒"}, -{"usage": "city", "name": "卡萊爾"}, -{"usage": "city", "name": "卡里布"}, -{"usage": "city", "name": "卡里森林"}, -{"usage": "city", "name": "厄普頓"}, -{"usage": "city", "name": "友誼市"}, -{"usage": "city", "name": "古爾茲伯勒"}, -{"usage": "city", "name": "史塔克"}, -{"usage": "city", "name": "史塔克伯羅"}, -{"usage": "city", "name": "史塔克斯"}, -{"usage": "city", "name": "史密斯菲爾德"}, -{"usage": "city", "name": "史黛西維爾"}, -{"usage": "city", "name": "吉利德"}, -{"usage": "city", "name": "吉爾"}, -{"usage": "city", "name": "吉爾曼頓"}, -{"usage": "city", "name": "吉爾森"}, -{"usage": "city", "name": "吉爾福特"}, -{"usage": "city", "name": "吉爾福特"}, -{"usage": "city", "name": "哈丹姆"}, -{"usage": "city", "name": "哈佛"}, -{"usage": "city", "name": "哈利法克斯"}, -{"usage": "city", "name": "哈姆林"}, -{"usage": "city", "name": "哈姆登"}, -{"usage": "city", "name": "哈威奇"}, -{"usage": "city", "name": "哈德利"}, -{"usage": "city", "name": "哈德威克"}, -{"usage": "city", "name": "哈德森"}, -{"usage": "city", "name": "哈普斯威爾"}, -{"usage": "city", "name": "哈洛韋爾"}, -{"usage": "city", "name": "哈溫頓"}, -{"usage": "city", "name": "哈特福"}, -{"usage": "city", "name": "哈特菲爾德"}, -{"usage": "city", "name": "哈特蘭"}, -{"usage": "city", "name": "哈福希爾"}, -{"usage": "city", "name": "哈蒙尼"}, -{"usage": "city", "name": "哈蒙德"}, -{"usage": "city", "name": "哈里斯維爾"}, -{"usage": "city", "name": "哈里森"}, -{"usage": "city", "name": "哈靈頓"}, -{"usage": "city", "name": "哥倫比亞"}, -{"usage": "city", "name": "哥倫比亞瀑布"}, -{"usage": "city", "name": "哥爾罕"}, -{"usage": "city", "name": "喬治亞"}, -{"usage": "city", "name": "喬治城"}, -{"usage": "city", "name": "嘉丁納"}, -{"usage": "city", "name": "圖克斯伯里"}, -{"usage": "city", "name": "坎伯蘭"}, -{"usage": "city", "name": "坎地亞"}, -{"usage": "city", "name": "坎明尼頓"}, -{"usage": "city", "name": "坎普頓"}, -{"usage": "city", "name": "坎特伯里"}, -{"usage": "city", "name": "坎登"}, -{"usage": "city", "name": "坎頓"}, -{"usage": "city", "name": "埃克塞特"}, -{"usage": "city", "name": "埃塞克斯"}, -{"usage": "city", "name": "埃平"}, -{"usage": "city", "name": "埃弗雷特"}, -{"usage": "city", "name": "埃德加敦"}, -{"usage": "city", "name": "埃德蒙茲"}, -{"usage": "city", "name": "埃林頓"}, -{"usage": "city", "name": "埃柏登"}, -{"usage": "city", "name": "埃格蒙特"}, -{"usage": "city", "name": "埃爾斯沃思"}, -{"usage": "city", "name": "埃爾莫爾"}, -{"usage": "city", "name": "埃特納"}, -{"usage": "city", "name": "埃皮森"}, -{"usage": "city", "name": "埃羅爾"}, -{"usage": "city", "name": "埃芬漢"}, -{"usage": "city", "name": "城堡山"}, -{"usage": "city", "name": "基恩"}, -{"usage": "city", "name": "基特里"}, -{"usage": "city", "name": "基靈"}, -{"usage": "city", "name": "基靈沃斯"}, -{"usage": "city", "name": "基靈頓"}, -{"usage": "city", "name": "塔博爾山"}, -{"usage": "city", "name": "塔姆沃思"}, -{"usage": "city", "name": "塞勒姆"}, -{"usage": "city", "name": "塞奇威克"}, -{"usage": "city", "name": "塞特福德"}, -{"usage": "city", "name": "墨西哥"}, -{"usage": "city", "name": "士嘉堡"}, -{"usage": "city", "name": "士麥那"}, -{"usage": "city", "name": "夏隆"}, -{"usage": "city", "name": "多佛-福克斯克羅夫特"}, -{"usage": "city", "name": "多佛爾"}, -{"usage": "city", "name": "多切斯特"}, -{"usage": "city", "name": "多塞特"}, -{"usage": "city", "name": "多爾蘭"}, -{"usage": "city", "name": "大塘"}, -{"usage": "city", "name": "天鵝島"}, -{"usage": "city", "name": "奇切斯特"}, -{"usage": "city", "name": "奇瑪克"}, -{"usage": "city", "name": "奇科皮"}, -{"usage": "city", "name": "奧克姆"}, -{"usage": "city", "name": "奧克布洛福"}, -{"usage": "city", "name": "奧克斯博"}, -{"usage": "city", "name": "奧克菲爾德"}, -{"usage": "city", "name": "奧克蘭"}, -{"usage": "city", "name": "奧古斯塔"}, -{"usage": "city", "name": "奧威爾"}, -{"usage": "city", "name": "奧斯本"}, -{"usage": "city", "name": "奧本"}, -{"usage": "city", "name": "奧爾巴尼"}, -{"usage": "city", "name": "奧爾福德"}, -{"usage": "city", "name": "奧爾維爾"}, -{"usage": "city", "name": "奧爾良"}, -{"usage": "city", "name": "奧爾頓"}, -{"usage": "city", "name": "奧甘奎特"}, -{"usage": "city", "name": "奧福德"}, -{"usage": "city", "name": "奧羅拉"}, -{"usage": "city", "name": "奧羅諾"}, -{"usage": "city", "name": "奧蒂斯"}, -{"usage": "city", "name": "奧蒂斯菲爾德"}, -{"usage": "city", "name": "奧蘭德"}, -{"usage": "city", "name": "奧蘭治"}, -{"usage": "city", "name": "奧西皮"}, -{"usage": "city", "name": "奧連特"}, -{"usage": "city", "name": "奧靈頓"}, -{"usage": "city", "name": "姍蒂河森林"}, -{"usage": "city", "name": "威其頓"}, -{"usage": "city", "name": "威利斯頓"}, -{"usage": "city", "name": "威利曼蒂克"}, -{"usage": "city", "name": "威努斯基"}, -{"usage": "city", "name": "威廉斯堡"}, -{"usage": "city", "name": "威廉斯鎮"}, -{"usage": "city", "name": "威恩"}, -{"usage": "city", "name": "威斯凱薩特"}, -{"usage": "city", "name": "威斯布魯克"}, -{"usage": "city", "name": "威斯敏斯特"}, -{"usage": "city", "name": "威斯特摩蘭"}, -{"usage": "city", "name": "威斯特福德"}, -{"usage": "city", "name": "威斯特莫爾"}, -{"usage": "city", "name": "威斯特里"}, -{"usage": "city", "name": "威爾"}, -{"usage": "city", "name": "威爾士"}, -{"usage": "city", "name": "威爾明頓"}, -{"usage": "city", "name": "威爾莫特"}, -{"usage": "city", "name": "威爾頓"}, -{"usage": "city", "name": "威靈頓"}, -{"usage": "city", "name": "安多弗"}, -{"usage": "city", "name": "安特里姆"}, -{"usage": "city", "name": "安生"}, -{"usage": "city", "name": "安索尼亞"}, -{"usage": "city", "name": "寇地維爾森林"}, -{"usage": "city", "name": "富蘭克林"}, -{"usage": "city", "name": "小坎頓"}, -{"usage": "city", "name": "尤你恩"}, -{"usage": "city", "name": "尤你蒂"}, -{"usage": "city", "name": "尤斯蒂斯"}, -{"usage": "city", "name": "尼德漢"}, -{"usage": "city", "name": "工業"}, -{"usage": "city", "name": "巴克斯波特"}, -{"usage": "city", "name": "巴克斯頓"}, -{"usage": "city", "name": "巴克漢士德"}, -{"usage": "city", "name": "巴克菲爾德"}, -{"usage": "city", "name": "巴克蘭"}, -{"usage": "city", "name": "巴勒莫"}, -{"usage": "city", "name": "巴尼特"}, -{"usage": "city", "name": "巴恩斯德"}, -{"usage": "city", "name": "巴恩斯特布爾"}, -{"usage": "city", "name": "巴斯"}, -{"usage": "city", "name": "巴林頓"}, -{"usage": "city", "name": "巴爾港"}, -{"usage": "city", "name": "巴爾的摩"}, -{"usage": "city", "name": "巴爾米拉"}, -{"usage": "city", "name": "巴特利特"}, -{"usage": "city", "name": "巴納德"}, -{"usage": "city", "name": "巴雷"}, -{"usage": "city", "name": "巴靈"}, -{"usage": "city", "name": "巴頓"}, -{"usage": "city", "name": "巴黎"}, -{"usage": "city", "name": "巴黎西部"}, -{"usage": "city", "name": "市政廳"}, -{"usage": "city", "name": "布倫特伍德"}, -{"usage": "city", "name": "布倫特里"}, -{"usage": "city", "name": "布拉德利"}, -{"usage": "city", "name": "布拉德福德"}, -{"usage": "city", "name": "布斯"}, -{"usage": "city", "name": "布斯灣"}, -{"usage": "city", "name": "布朗寧菲爾"}, -{"usage": "city", "name": "布朗寧頓"}, -{"usage": "city", "name": "布朗斯維克"}, -{"usage": "city", "name": "布朗菲爾德"}, -{"usage": "city", "name": "布林菲爾德"}, -{"usage": "city", "name": "布盧姆菲爾德"}, -{"usage": "city", "name": "布羅"}, -{"usage": "city", "name": "布羅克頓"}, -{"usage": "city", "name": "布萊恩"}, -{"usage": "city", "name": "布萊頓"}, -{"usage": "city", "name": "布萊頓森林"}, -{"usage": "city", "name": "布蘭查德"}, -{"usage": "city", "name": "布蘭福德"}, -{"usage": "city", "name": "布蘭福德"}, -{"usage": "city", "name": "布里奇沃特"}, -{"usage": "city", "name": "布里奇波特"}, -{"usage": "city", "name": "布里奇頓"}, -{"usage": "city", "name": "布里德波特"}, -{"usage": "city", "name": "布里斯托爾"}, -{"usage": "city", "name": "布魯克斯維爾"}, -{"usage": "city", "name": "布魯克林"}, -{"usage": "city", "name": "布魯克菲爾德"}, -{"usage": "city", "name": "布魯克賴"}, -{"usage": "city", "name": "布魯克頓"}, -{"usage": "city", "name": "布魯斯特"}, -{"usage": "city", "name": "布魯爾"}, -{"usage": "city", "name": "希伯倫"}, -{"usage": "city", "name": "希思"}, -{"usage": "city", "name": "希爾斯堡"}, -{"usage": "city", "name": "希爾森林"}, -{"usage": "city", "name": "希蘭"}, -{"usage": "city", "name": "帕克斯頓"}, -{"usage": "city", "name": "帕克曼"}, -{"usage": "city", "name": "帕斯當坎"}, -{"usage": "city", "name": "帕森斯菲爾德"}, -{"usage": "city", "name": "帕爾默"}, -{"usage": "city", "name": "帕金斯"}, -{"usage": "city", "name": "底特律"}, -{"usage": "city", "name": "庫欣"}, -{"usage": "city", "name": "康威"}, -{"usage": "city", "name": "康沃爾"}, -{"usage": "city", "name": "康科爾"}, -{"usage": "city", "name": "康維爾"}, -{"usage": "city", "name": "弗萊島"}, -{"usage": "city", "name": "弗萊徹"}, -{"usage": "city", "name": "弗蘭希斯鎮"}, -{"usage": "city", "name": "弗蘭肯"}, -{"usage": "city", "name": "弗賴堡"}, -{"usage": "city", "name": "弗農"}, -{"usage": "city", "name": "弗農山"}, -{"usage": "city", "name": "弗農山"}, -{"usage": "city", "name": "弗里敦"}, -{"usage": "city", "name": "弗里曲波羅"}, -{"usage": "city", "name": "弗里曲維爾"}, -{"usage": "city", "name": "弗里蒙特"}, -{"usage": "city", "name": "弗金斯"}, -{"usage": "city", "name": "弗雷明漢"}, -{"usage": "city", "name": "彭布羅克"}, -{"usage": "city", "name": "彼得伯勒"}, -{"usage": "city", "name": "彼得舍姆"}, -{"usage": "city", "name": "德克斯特"}, -{"usage": "city", "name": "德拉卡特"}, -{"usage": "city", "name": "德比"}, -{"usage": "city", "name": "德累斯頓"}, -{"usage": "city", "name": "德里"}, -{"usage": "city", "name": "德魯森林"}, -{"usage": "city", "name": "思科西根"}, -{"usage": "city", "name": "恩菲爾德"}, -{"usage": "city", "name": "惠廷"}, -{"usage": "city", "name": "惠廷漢"}, -{"usage": "city", "name": "惠爾布拉漢"}, -{"usage": "city", "name": "惠特利"}, -{"usage": "city", "name": "惠特尼維爾"}, -{"usage": "city", "name": "惠特曼"}, -{"usage": "city", "name": "惠靈頓"}, -{"usage": "city", "name": "愛丁堡"}, -{"usage": "city", "name": "愛丁頓"}, -{"usage": "city", "name": "愛略特"}, -{"usage": "city", "name": "愛華特島"}, -{"usage": "city", "name": "愛諾斯堡"}, -{"usage": "city", "name": "懷特菲爾德"}, -{"usage": "city", "name": "戈斯諾爾德"}, -{"usage": "city", "name": "戴頓"}, -{"usage": "city", "name": "托普斯費爾德"}, -{"usage": "city", "name": "托普瑟姆"}, -{"usage": "city", "name": "托靈頓"}, -{"usage": "city", "name": "托馬斯頓"}, -{"usage": "city", "name": "拉姆尼"}, -{"usage": "city", "name": "拉姆福德"}, -{"usage": "city", "name": "拉格朗日"}, -{"usage": "city", "name": "拉特蘭"}, -{"usage": "city", "name": "拉科尼亞"}, -{"usage": "city", "name": "拉蒙尼"}, -{"usage": "city", "name": "拉蒙特島"}, -{"usage": "city", "name": "拜倫"}, -{"usage": "city", "name": "挪威"}, -{"usage": "city", "name": "摩洛森林"}, -{"usage": "city", "name": "摩爾鎮"}, -{"usage": "city", "name": "文索基特"}, -{"usage": "city", "name": "斯圖本"}, -{"usage": "city", "name": "斯圖爾茨敦"}, -{"usage": "city", "name": "斯坦福"}, -{"usage": "city", "name": "斯坦納德"}, -{"usage": "city", "name": "斯坦迪什"}, -{"usage": "city", "name": "斯塔福德"}, -{"usage": "city", "name": "斯德哥爾摩"}, -{"usage": "city", "name": "斯托"}, -{"usage": "city", "name": "斯托"}, -{"usage": "city", "name": "斯托克布里奇"}, -{"usage": "city", "name": "斯托克頓泉"}, -{"usage": "city", "name": "斯托寧頓"}, -{"usage": "city", "name": "斯托納姆"}, -{"usage": "city", "name": "斯托達德"}, -{"usage": "city", "name": "斯托頓"}, -{"usage": "city", "name": "斯旺普思科特"}, -{"usage": "city", "name": "斯旺維爾"}, -{"usage": "city", "name": "斯旺西"}, -{"usage": "city", "name": "斯旺西"}, -{"usage": "city", "name": "斯旺頓"}, -{"usage": "city", "name": "斯普拉格"}, -{"usage": "city", "name": "斯普林菲爾德"}, -{"usage": "city", "name": "斯泰森"}, -{"usage": "city", "name": "斯特布里奇"}, -{"usage": "city", "name": "斯特拉漢"}, -{"usage": "city", "name": "斯特拉特福"}, -{"usage": "city", "name": "斯特拉福德"}, -{"usage": "city", "name": "斯特拉頓"}, -{"usage": "city", "name": "斯特朗"}, -{"usage": "city", "name": "斯特林"}, -{"usage": "city", "name": "斯賓塞"}, -{"usage": "city", "name": "斯頓"}, -{"usage": "city", "name": "新不列顛"}, -{"usage": "city", "name": "新伊普斯維奇"}, -{"usage": "city", "name": "新倫敦"}, -{"usage": "city", "name": "新利默里克"}, -{"usage": "city", "name": "新加拿大"}, -{"usage": "city", "name": "新卡斯爾"}, -{"usage": "city", "name": "新哈特福德"}, -{"usage": "city", "name": "新塞勒姆"}, -{"usage": "city", "name": "新夏隆"}, -{"usage": "city", "name": "新布倫特里"}, -{"usage": "city", "name": "新格洛斯特"}, -{"usage": "city", "name": "新法爾菲爾德"}, -{"usage": "city", "name": "新波士頓"}, -{"usage": "city", "name": "新波特蘭"}, -{"usage": "city", "name": "新港"}, -{"usage": "city", "name": "新漢普頓"}, -{"usage": "city", "name": "新瑞典"}, -{"usage": "city", "name": "新米爾福德"}, -{"usage": "city", "name": "新肖勒姆"}, -{"usage": "city", "name": "新葡萄園"}, -{"usage": "city", "name": "新貝德福德"}, -{"usage": "city", "name": "新迦南"}, -{"usage": "city", "name": "新達勒姆"}, -{"usage": "city", "name": "新鎮"}, -{"usage": "city", "name": "新阿什福德"}, -{"usage": "city", "name": "新馬爾堡"}, -{"usage": "city", "name": "昂德希爾"}, -{"usage": "city", "name": "昆西"}, -{"usage": "city", "name": "普倫蒂斯"}, -{"usage": "city", "name": "普利茅斯"}, -{"usage": "city", "name": "普林斯頓"}, -{"usage": "city", "name": "普林頓"}, -{"usage": "city", "name": "普特南"}, -{"usage": "city", "name": "普特尼"}, -{"usage": "city", "name": "普維斯鎮"}, -{"usage": "city", "name": "普羅克特"}, -{"usage": "city", "name": "普羅斯貝"}, -{"usage": "city", "name": "普羅維登斯"}, -{"usage": "city", "name": "普茲茅斯"}, -{"usage": "city", "name": "普萊恩維爾"}, -{"usage": "city", "name": "普萊斯敦"}, -{"usage": "city", "name": "普蘭菲爾德"}, -{"usage": "city", "name": "普雷斯克島"}, -{"usage": "city", "name": "普雷斯科特"}, -{"usage": "city", "name": "普雷斯頓"}, -{"usage": "city", "name": "曼徹斯特"}, -{"usage": "city", "name": "曼徹斯特沿海"}, -{"usage": "city", "name": "曼斯菲爾德"}, -{"usage": "city", "name": "會德豐"}, -{"usage": "city", "name": "朗梅"}, -{"usage": "city", "name": "本森"}, -{"usage": "city", "name": "杭廷頓"}, -{"usage": "city", "name": "東哈丹姆"}, -{"usage": "city", "name": "東哈特福"}, -{"usage": "city", "name": "東布里奇沃特"}, -{"usage": "city", "name": "東布魯克菲爾德"}, -{"usage": "city", "name": "東普羅維登斯"}, -{"usage": "city", "name": "東朗梅多"}, -{"usage": "city", "name": "東格林尼治"}, -{"usage": "city", "name": "東格蘭比"}, -{"usage": "city", "name": "東港"}, -{"usage": "city", "name": "東港"}, -{"usage": "city", "name": "東溫莎"}, -{"usage": "city", "name": "東漢普頓"}, -{"usage": "city", "name": "東米利諾基特"}, -{"usage": "city", "name": "東萊姆"}, -{"usage": "city", "name": "東蒙彼利埃"}, -{"usage": "city", "name": "東金士頓"}, -{"usage": "city", "name": "東馬柴厄斯"}, -{"usage": "city", "name": "林奈"}, -{"usage": "city", "name": "林恩"}, -{"usage": "city", "name": "林恩菲爾德"}, -{"usage": "city", "name": "林登"}, -{"usage": "city", "name": "林肯"}, -{"usage": "city", "name": "林肯森林"}, -{"usage": "city", "name": "林肯維爾"}, -{"usage": "city", "name": "柏德基"}, -{"usage": "city", "name": "柏林"}, -{"usage": "city", "name": "柏林罕"}, -{"usage": "city", "name": "查塔姆"}, -{"usage": "city", "name": "查普曼"}, -{"usage": "city", "name": "查爾斯鎮"}, -{"usage": "city", "name": "查爾斯頓"}, -{"usage": "city", "name": "查爾頓"}, -{"usage": "city", "name": "查理蒙特"}, -{"usage": "city", "name": "柯比"}, -{"usage": "city", "name": "柴郡"}, -{"usage": "city", "name": "格倫伍德森林"}, -{"usage": "city", "name": "格倫本"}, -{"usage": "city", "name": "格利巴陵頓"}, -{"usage": "city", "name": "格拉夫頓"}, -{"usage": "city", "name": "格拉斯坦伯裡"}, -{"usage": "city", "name": "格拉斯頓伯裡"}, -{"usage": "city", "name": "格林"}, -{"usage": "city", "name": "格林伍德"}, -{"usage": "city", "name": "格林威治"}, -{"usage": "city", "name": "格林布許"}, -{"usage": "city", "name": "格林斯伯勒"}, -{"usage": "city", "name": "格林維爾"}, -{"usage": "city", "name": "格林菲爾德"}, -{"usage": "city", "name": "格洛弗"}, -{"usage": "city", "name": "格洛斯特"}, -{"usage": "city", "name": "格羅切斯特"}, -{"usage": "city", "name": "格羅夫蘭"}, -{"usage": "city", "name": "格羅頓"}, -{"usage": "city", "name": "格蘭德艾爾"}, -{"usage": "city", "name": "格蘭德萊克"}, -{"usage": "city", "name": "格蘭比"}, -{"usage": "city", "name": "格蘭瑟姆"}, -{"usage": "city", "name": "格蘭維爾"}, -{"usage": "city", "name": "格里斯沃爾德"}, -{"usage": "city", "name": "格陵蘭"}, -{"usage": "city", "name": "桑地斯菲爾德"}, -{"usage": "city", "name": "桑威治"}, -{"usage": "city", "name": "桑德蘭"}, -{"usage": "city", "name": "桑戴克"}, -{"usage": "city", "name": "桑格維爾"}, -{"usage": "city", "name": "桑當"}, -{"usage": "city", "name": "桑福德"}, -{"usage": "city", "name": "桑納皮"}, -{"usage": "city", "name": "桑蓋特"}, -{"usage": "city", "name": "桑頓"}, -{"usage": "city", "name": "梅休因"}, -{"usage": "city", "name": "梅德斯通"}, -{"usage": "city", "name": "梅德福"}, -{"usage": "city", "name": "梅德菲爾德"}, -{"usage": "city", "name": "梅德韋"}, -{"usage": "city", "name": "梅普爾頓"}, -{"usage": "city", "name": "梅爾羅斯"}, -{"usage": "city", "name": "梅納德"}, -{"usage": "city", "name": "梅蒂"}, -{"usage": "city", "name": "梅里爾"}, -{"usage": "city", "name": "梅里登"}, -{"usage": "city", "name": "梅里馬克"}, -{"usage": "city", "name": "梅里麥克"}, -{"usage": "city", "name": "梅雷迪思"}, -{"usage": "city", "name": "梅頓"}, -{"usage": "city", "name": "梭倫"}, -{"usage": "city", "name": "森林城市"}, -{"usage": "city", "name": "森特港"}, -{"usage": "city", "name": "森特瀑"}, -{"usage": "city", "name": "森特維爾"}, -{"usage": "city", "name": "楚別克島"}, -{"usage": "city", "name": "楠塔基特"}, -{"usage": "city", "name": "樂威"}, -{"usage": "city", "name": "欣厄姆"}, -{"usage": "city", "name": "欣斯戴爾"}, -{"usage": "city", "name": "歌珊"}, -{"usage": "city", "name": "歐文"}, -{"usage": "city", "name": "歐斯典"}, -{"usage": "city", "name": "歐那"}, -{"usage": "city", "name": "比佛利"}, -{"usage": "city", "name": "比爾斯"}, -{"usage": "city", "name": "比爾里卡"}, -{"usage": "city", "name": "水城"}, -{"usage": "city", "name": "水晶"}, -{"usage": "city", "name": "沃什本"}, -{"usage": "city", "name": "沃倫"}, -{"usage": "city", "name": "沃倫特敦"}, -{"usage": "city", "name": "沃夫波洛"}, -{"usage": "city", "name": "沃德斯波羅"}, -{"usage": "city", "name": "沃拉葛雷斯"}, -{"usage": "city", "name": "沃本"}, -{"usage": "city", "name": "沃波爾"}, -{"usage": "city", "name": "沃爾多"}, -{"usage": "city", "name": "沃爾多波羅"}, -{"usage": "city", "name": "沃爾瑟姆"}, -{"usage": "city", "name": "沃爾登"}, -{"usage": "city", "name": "沃爾科特"}, -{"usage": "city", "name": "沃特伯里"}, -{"usage": "city", "name": "沃特波羅"}, -{"usage": "city", "name": "沃特福德"}, -{"usage": "city", "name": "沃特維爾"}, -{"usage": "city", "name": "沃特維爾谷"}, -{"usage": "city", "name": "沙利文"}, -{"usage": "city", "name": "沙夫茨伯里"}, -{"usage": "city", "name": "沙布雷"}, -{"usage": "city", "name": "沙漠山"}, -{"usage": "city", "name": "法明戴爾"}, -{"usage": "city", "name": "法明頓"}, -{"usage": "city", "name": "法爾茅斯"}, -{"usage": "city", "name": "法蘭克福"}, -{"usage": "city", "name": "波內爾"}, -{"usage": "city", "name": "波士頓"}, -{"usage": "city", "name": "波恩"}, -{"usage": "city", "name": "波斯拉"}, -{"usage": "city", "name": "波特"}, -{"usage": "city", "name": "波特蘭"}, -{"usage": "city", "name": "波福瑞特"}, -{"usage": "city", "name": "波蒂奇湖"}, -{"usage": "city", "name": "波蘭"}, -{"usage": "city", "name": "波頓"}, -{"usage": "city", "name": "泰爾馬奇"}, -{"usage": "city", "name": "洛厄爾"}, -{"usage": "city", "name": "洛基山"}, -{"usage": "city", "name": "洛弗爾"}, -{"usage": "city", "name": "洛貝克"}, -{"usage": "city", "name": "海因斯堡"}, -{"usage": "city", "name": "海德公園"}, -{"usage": "city", "name": "海恩斯維爾"}, -{"usage": "city", "name": "海狸灣"}, -{"usage": "city", "name": "深河"}, -{"usage": "city", "name": "湖景森林"}, -{"usage": "city", "name": "湯森德"}, -{"usage": "city", "name": "湯森漢德"}, -{"usage": "city", "name": "湯頓"}, -{"usage": "city", "name": "溫德姆"}, -{"usage": "city", "name": "溫德爾"}, -{"usage": "city", "name": "溫徹斯特"}, -{"usage": "city", "name": "溫斯洛"}, -{"usage": "city", "name": "溫斯洛普"}, -{"usage": "city", "name": "溫特沃斯"}, -{"usage": "city", "name": "溫特波特"}, -{"usage": "city", "name": "溫特維爾森林"}, -{"usage": "city", "name": "溫荷"}, -{"usage": "city", "name": "溫莎"}, -{"usage": "city", "name": "溫莎洛克斯"}, -{"usage": "city", "name": "滕布里奇"}, -{"usage": "city", "name": "漢密爾頓"}, -{"usage": "city", "name": "漢尼克"}, -{"usage": "city", "name": "漢普斯特德"}, -{"usage": "city", "name": "漢普登"}, -{"usage": "city", "name": "漢普頓"}, -{"usage": "city", "name": "漢普頓瀑布"}, -{"usage": "city", "name": "漢森"}, -{"usage": "city", "name": "漢考克"}, -{"usage": "city", "name": "漢諾威"}, -{"usage": "city", "name": "潘登"}, -{"usage": "city", "name": "潘頓"}, -{"usage": "city", "name": "瀑布島"}, -{"usage": "city", "name": "火星山"}, -{"usage": "city", "name": "灰石"}, -{"usage": "city", "name": "烏斯特"}, -{"usage": "city", "name": "牙買加"}, -{"usage": "city", "name": "牛津"}, -{"usage": "city", "name": "牛頓"}, -{"usage": "city", "name": "特倫思科特"}, -{"usage": "city", "name": "特倫頓"}, -{"usage": "city", "name": "特朗布爾"}, -{"usage": "city", "name": "特洛伊"}, -{"usage": "city", "name": "特里蒙特"}, -{"usage": "city", "name": "特魯羅"}, -{"usage": "city", "name": "特魯菲伯羅"}, -{"usage": "city", "name": "班克羅夫特"}, -{"usage": "city", "name": "班寧頓"}, -{"usage": "city", "name": "班戈"}, -{"usage": "city", "name": "班頓"}, -{"usage": "city", "name": "瑞丁"}, -{"usage": "city", "name": "瑞伊"}, -{"usage": "city", "name": "瑞伊蓋特"}, -{"usage": "city", "name": "瑞佛爾"}, -{"usage": "city", "name": "瑞典"}, -{"usage": "city", "name": "瑞德森林"}, -{"usage": "city", "name": "瑞恩奇"}, -{"usage": "city", "name": "瑞斯保羅"}, -{"usage": "city", "name": "瑪利亞韋爾"}, -{"usage": "city", "name": "瑪莎迪斯"}, -{"usage": "city", "name": "瓊斯伯勒"}, -{"usage": "city", "name": "瓊斯港"}, -{"usage": "city", "name": "瓦林福德"}, -{"usage": "city", "name": "瓦薩波羅"}, -{"usage": "city", "name": "畢德佛"}, -{"usage": "city", "name": "皮博迪"}, -{"usage": "city", "name": "皮查姆"}, -{"usage": "city", "name": "皮耶蒙特"}, -{"usage": "city", "name": "皮茨福德"}, -{"usage": "city", "name": "皮茨菲爾德"}, -{"usage": "city", "name": "皮茨頓"}, -{"usage": "city", "name": "盧嫩堡"}, -{"usage": "city", "name": "福克斯"}, -{"usage": "city", "name": "福克斯堡"}, -{"usage": "city", "name": "福爾里弗"}, -{"usage": "city", "name": "科哈塞特"}, -{"usage": "city", "name": "科尼什"}, -{"usage": "city", "name": "科林斯"}, -{"usage": "city", "name": "科林那"}, -{"usage": "city", "name": "科爾切斯特"}, -{"usage": "city", "name": "科爾布魯克"}, -{"usage": "city", "name": "科爾瑞"}, -{"usage": "city", "name": "科芬特里"}, -{"usage": "city", "name": "秘魯"}, -{"usage": "city", "name": "穆斯河"}, -{"usage": "city", "name": "窩辛頓"}, -{"usage": "city", "name": "範布倫"}, -{"usage": "city", "name": "米利斯"}, -{"usage": "city", "name": "米利諾基特"}, -{"usage": "city", "name": "米德爾伯里"}, -{"usage": "city", "name": "米德爾堡"}, -{"usage": "city", "name": "米德爾塞克斯"}, -{"usage": "city", "name": "米德爾敦"}, -{"usage": "city", "name": "米德爾敦泉"}, -{"usage": "city", "name": "米德爾菲爾德"}, -{"usage": "city", "name": "米德爾頓"}, -{"usage": "city", "name": "米洛"}, -{"usage": "city", "name": "米爾伯里"}, -{"usage": "city", "name": "米爾橋"}, -{"usage": "city", "name": "米爾福德"}, -{"usage": "city", "name": "米爾維爾"}, -{"usage": "city", "name": "米爾頓"}, -{"usage": "city", "name": "米蘭"}, -{"usage": "city", "name": "糖山"}, -{"usage": "city", "name": "約克"}, -{"usage": "city", "name": "約翰斯頓"}, -{"usage": "city", "name": "納什維爾森林"}, -{"usage": "city", "name": "納哈特"}, -{"usage": "city", "name": "納拉甘西特"}, -{"usage": "city", "name": "納提克"}, -{"usage": "city", "name": "納舒厄"}, -{"usage": "city", "name": "紐伯里"}, -{"usage": "city", "name": "紐伯里波特"}, -{"usage": "city", "name": "紐卡斯爾"}, -{"usage": "city", "name": "紐因頓"}, -{"usage": "city", "name": "紐堡"}, -{"usage": "city", "name": "紐波伯羅"}, -{"usage": "city", "name": "紐瓦克"}, -{"usage": "city", "name": "紐維"}, -{"usage": "city", "name": "紐菲爾德"}, -{"usage": "city", "name": "紐菲爾德斯"}, -{"usage": "city", "name": "紐馬基特"}, -{"usage": "city", "name": "紐黑文"}, -{"usage": "city", "name": "索倫托"}, -{"usage": "city", "name": "索斯威克"}, -{"usage": "city", "name": "索格斯"}, -{"usage": "city", "name": "索爾海姆"}, -{"usage": "city", "name": "索爾茲伯里"}, -{"usage": "city", "name": "索科"}, -{"usage": "city", "name": "索辛頓"}, -{"usage": "city", "name": "紹斯伯勒"}, -{"usage": "city", "name": "紹斯伯里"}, -{"usage": "city", "name": "紹斯波特"}, -{"usage": "city", "name": "維也納"}, -{"usage": "city", "name": "維克多里"}, -{"usage": "city", "name": "維德斯菲爾德"}, -{"usage": "city", "name": "維斯特伍德"}, -{"usage": "city", "name": "維斯特曼蘭特"}, -{"usage": "city", "name": "維斯特漢普敦"}, -{"usage": "city", "name": "維濟"}, -{"usage": "city", "name": "維羅納島"}, -{"usage": "city", "name": "維西爾"}, -{"usage": "city", "name": "維諾黑文"}, -{"usage": "city", "name": "羅亞爾斯頓"}, -{"usage": "city", "name": "羅亞爾頓"}, -{"usage": "city", "name": "羅克布拉福"}, -{"usage": "city", "name": "羅克斯伯里"}, -{"usage": "city", "name": "羅克波特"}, -{"usage": "city", "name": "羅克蘭"}, -{"usage": "city", "name": "羅切斯特"}, -{"usage": "city", "name": "羅利"}, -{"usage": "city", "name": "羅林斯福德"}, -{"usage": "city", "name": "羅維"}, -{"usage": "city", "name": "羅賓斯頓"}, -{"usage": "city", "name": "羅金厄姆"}, -{"usage": "city", "name": "羅馬"}, -{"usage": "city", "name": "老塞布魯克"}, -{"usage": "city", "name": "老果園海灘"}, -{"usage": "city", "name": "老萊姆"}, -{"usage": "city", "name": "聖伯敦"}, -{"usage": "city", "name": "聖喬治"}, -{"usage": "city", "name": "聖奧爾本斯"}, -{"usage": "city", "name": "聖弗朗西斯"}, -{"usage": "city", "name": "聖愛葛莎"}, -{"usage": "city", "name": "聖約翰伯里"}, -{"usage": "city", "name": "聖約翰森林"}, -{"usage": "city", "name": "肖茲伯里"}, -{"usage": "city", "name": "肯德斯凱"}, -{"usage": "city", "name": "肯特"}, -{"usage": "city", "name": "肯特堡"}, -{"usage": "city", "name": "肯納邦克"}, -{"usage": "city", "name": "肯納邦克港"}, -{"usage": "city", "name": "肯辛頓"}, -{"usage": "city", "name": "自由市"}, -{"usage": "city", "name": "自由港"}, -{"usage": "city", "name": "舊城區"}, -{"usage": "city", "name": "舊市鎮:"}, -{"usage": "city", "name": "艾克莫"}, -{"usage": "city", "name": "艾士菲"}, -{"usage": "city", "name": "艾姆斯伯里"}, -{"usage": "city", "name": "艾拉"}, -{"usage": "city", "name": "艾拉斯堡"}, -{"usage": "city", "name": "艾爾"}, -{"usage": "city", "name": "艾蘭斯伯羅"}, -{"usage": "city", "name": "芒克頓"}, -{"usage": "city", "name": "荂夫斯貝里"}, -{"usage": "city", "name": "荷蘭"}, -{"usage": "city", "name": "莫斯科"}, -{"usage": "city", "name": "莫里斯敦"}, -{"usage": "city", "name": "莫里爾"}, -{"usage": "city", "name": "莫頓堡"}, -{"usage": "city", "name": "華威"}, -{"usage": "city", "name": "華盛頓山"}, -{"usage": "city", "name": "華納"}, -{"usage": "city", "name": "菲利普斯頓"}, -{"usage": "city", "name": "菲奇堡"}, -{"usage": "city", "name": "菲普斯堡"}, -{"usage": "city", "name": "菲茨威廉"}, -{"usage": "city", "name": "萊克星頓"}, -{"usage": "city", "name": "萊克維爾"}, -{"usage": "city", "name": "萊切斯特"}, -{"usage": "city", "name": "萊姆"}, -{"usage": "city", "name": "萊弗里特"}, -{"usage": "city", "name": "萊德亞德"}, -{"usage": "city", "name": "萊明頓"}, -{"usage": "city", "name": "萊普斯特"}, -{"usage": "city", "name": "萊曼"}, -{"usage": "city", "name": "萊諾克斯"}, -{"usage": "city", "name": "萬寶路"}, -{"usage": "city", "name": "蒂弗頓"}, -{"usage": "city", "name": "蒂斯伯里"}, -{"usage": "city", "name": "蒂斯堡"}, -{"usage": "city", "name": "蒂林厄姆"}, -{"usage": "city", "name": "蒂爾頓"}, -{"usage": "city", "name": "蒂茂斯"}, -{"usage": "city", "name": "蒙哥馬利"}, -{"usage": "city", "name": "蒙塔古"}, -{"usage": "city", "name": "蒙彼利埃"}, -{"usage": "city", "name": "蒙森"}, -{"usage": "city", "name": "蒙特利"}, -{"usage": "city", "name": "蒙特維爾"}, -{"usage": "city", "name": "蒙蒂塞洛"}, -{"usage": "city", "name": "蒙黑根"}, -{"usage": "city", "name": "蒙默思"}, -{"usage": "city", "name": "蔓越莓群島"}, -{"usage": "city", "name": "蔡斯山"}, -{"usage": "city", "name": "薩姆納"}, -{"usage": "city", "name": "薩德伯里"}, -{"usage": "city", "name": "薩沃伊"}, -{"usage": "city", "name": "薩瑞"}, -{"usage": "city", "name": "薩菲爾德"}, -{"usage": "city", "name": "薩里"}, -{"usage": "city", "name": "薩頓"}, -{"usage": "city", "name": "薩默塞特"}, -{"usage": "city", "name": "薩默斯"}, -{"usage": "city", "name": "薩默沃斯"}, -{"usage": "city", "name": "薩默維爾"}, -{"usage": "city", "name": "藍山"}, -{"usage": "city", "name": "蘇格蘭"}, -{"usage": "city", "name": "蘭多夫"}, -{"usage": "city", "name": "蘭大福"}, -{"usage": "city", "name": "蘭德括福"}, -{"usage": "city", "name": "蘭斯伯瑞"}, -{"usage": "city", "name": "蘭登"}, -{"usage": "city", "name": "蘭開斯特"}, -{"usage": "city", "name": "西加德納"}, -{"usage": "city", "name": "西南港"}, -{"usage": "city", "name": "西哈特福德"}, -{"usage": "city", "name": "西巴斯"}, -{"usage": "city", "name": "西布里奇沃特"}, -{"usage": "city", "name": "西布魯克菲爾德"}, -{"usage": "city", "name": "西德尼"}, -{"usage": "city", "name": "西拉特蘭"}, -{"usage": "city", "name": "西摩爾"}, -{"usage": "city", "name": "西斯托克布里奇"}, -{"usage": "city", "name": "西斯普林菲爾德"}, -{"usage": "city", "name": "西格林威治"}, -{"usage": "city", "name": "西沃里克"}, -{"usage": "city", "name": "西波以斯敦"}, -{"usage": "city", "name": "西港"}, -{"usage": "city", "name": "西溫莎"}, -{"usage": "city", "name": "西福克斯"}, -{"usage": "city", "name": "西紐伯里"}, -{"usage": "city", "name": "西蒂斯伯里"}, -{"usage": "city", "name": "西費爾里"}, -{"usage": "city", "name": "西黑文"}, -{"usage": "city", "name": "詹姆斯敦"}, -{"usage": "city", "name": "諾丁漢"}, -{"usage": "city", "name": "諾伍德"}, -{"usage": "city", "name": "諾克斯"}, -{"usage": "city", "name": "諾斯伍德"}, -{"usage": "city", "name": "諾斯伯勒"}, -{"usage": "city", "name": "諾斯波特"}, -{"usage": "city", "name": "諾斯菲爾德"}, -{"usage": "city", "name": "諾格塔克"}, -{"usage": "city", "name": "諾森伯蘭"}, -{"usage": "city", "name": "諾沃克"}, -{"usage": "city", "name": "諾福克"}, -{"usage": "city", "name": "諾維奇"}, -{"usage": "city", "name": "諾里居沃克"}, -{"usage": "city", "name": "諾頓"}, -{"usage": "city", "name": "謝爾曼"}, -{"usage": "city", "name": "謝爾本"}, -{"usage": "city", "name": "謝爾本"}, -{"usage": "city", "name": "謝爾頓"}, -{"usage": "city", "name": "謝爾頓"}, -{"usage": "city", "name": "謝菲爾德"}, -{"usage": "city", "name": "貓頭鷹頭"}, -{"usage": "city", "name": "貝丁頓"}, -{"usage": "city", "name": "貝克斯菲爾德"}, -{"usage": "city", "name": "貝克特"}, -{"usage": "city", "name": "貝內迪克塔"}, -{"usage": "city", "name": "貝利村"}, -{"usage": "city", "name": "貝德福德"}, -{"usage": "city", "name": "貝爾徹鎮"}, -{"usage": "city", "name": "貝爾格萊德"}, -{"usage": "city", "name": "貝爾法斯特"}, -{"usage": "city", "name": "貝爾納茨頓"}, -{"usage": "city", "name": "貝爾維迪爾"}, -{"usage": "city", "name": "貝爾蒙特"}, -{"usage": "city", "name": "貝瑟尼"}, -{"usage": "city", "name": "費曼"}, -{"usage": "city", "name": "費爾法克斯"}, -{"usage": "city", "name": "費爾海文"}, -{"usage": "city", "name": "費爾菲爾德"}, -{"usage": "city", "name": "費爾菲爾德堡"}, -{"usage": "city", "name": "費爾里"}, -{"usage": "city", "name": "費爾黑文"}, -{"usage": "city", "name": "費瑞斯堡"}, -{"usage": "city", "name": "費登"}, -{"usage": "city", "name": "費耶斯頓"}, -{"usage": "city", "name": "費耶特"}, -{"usage": "city", "name": "賓漢"}, -{"usage": "city", "name": "賽巴德斯"}, -{"usage": "city", "name": "赫德之位"}, -{"usage": "city", "name": "赫西"}, -{"usage": "city", "name": "路易斯頓"}, -{"usage": "city", "name": "迦南"}, -{"usage": "city", "name": "迦太基"}, -{"usage": "city", "name": "迪克斯菲爾德"}, -{"usage": "city", "name": "迪克斯蒙"}, -{"usage": "city", "name": "迪爾林"}, -{"usage": "city", "name": "迪爾菲爾德"}, -{"usage": "city", "name": "逸嶺森林"}, -{"usage": "city", "name": "道格拉斯"}, -{"usage": "city", "name": "道爾頓"}, -{"usage": "city", "name": "達克斯伯里"}, -{"usage": "city", "name": "達勒姆"}, -{"usage": "city", "name": "達德利"}, -{"usage": "city", "name": "達德漢"}, -{"usage": "city", "name": "達拉斯森林"}, -{"usage": "city", "name": "達比路斯"}, -{"usage": "city", "name": "達特茅斯"}, -{"usage": "city", "name": "達里恩"}, -{"usage": "city", "name": "達馬瑞斯哥塔"}, -{"usage": "city", "name": "達默"}, -{"usage": "city", "name": "達默斯頓"}, -{"usage": "city", "name": "邁諾特"}, -{"usage": "city", "name": "那不勒斯"}, -{"usage": "city", "name": "都柏林"}, -{"usage": "city", "name": "鄧巴頓"}, -{"usage": "city", "name": "鄧斯特布爾"}, -{"usage": "city", "name": "鄧普"}, -{"usage": "city", "name": "鄧普頓"}, -{"usage": "city", "name": "里士滿"}, -{"usage": "city", "name": "里奇福德"}, -{"usage": "city", "name": "里奇菲爾德"}, -{"usage": "city", "name": "里斯本"}, -{"usage": "city", "name": "里普利"}, -{"usage": "city", "name": "里普敦"}, -{"usage": "city", "name": "金士頓"}, -{"usage": "city", "name": "金斯伯里森林"}, -{"usage": "city", "name": "金曼"}, -{"usage": "city", "name": "金菲爾德"}, -{"usage": "city", "name": "錫姆斯伯里"}, -{"usage": "city", "name": "錫巴勾"}, -{"usage": "city", "name": "錫布魯克"}, -{"usage": "city", "name": "錫康克"}, -{"usage": "city", "name": "錫楚埃特"}, -{"usage": "city", "name": "錫比克"}, -{"usage": "city", "name": "錫波伊斯森林"}, -{"usage": "city", "name": "錫爾斯堡"}, -{"usage": "city", "name": "錫爾斯港"}, -{"usage": "city", "name": "錫爾斯蒙特"}, -{"usage": "city", "name": "長島"}, -{"usage": "city", "name": "門羅"}, -{"usage": "city", "name": "開普敦伊麗莎白"}, -{"usage": "city", "name": "阿什比"}, -{"usage": "city", "name": "阿什波漢"}, -{"usage": "city", "name": "阿什福德"}, -{"usage": "city", "name": "阿倫德爾"}, -{"usage": "city", "name": "阿克斯布里奇"}, -{"usage": "city", "name": "阿克沃斯"}, -{"usage": "city", "name": "阿克頓"}, -{"usage": "city", "name": "阿基那"}, -{"usage": "city", "name": "阿拉加什"}, -{"usage": "city", "name": "阿普爾頓"}, -{"usage": "city", "name": "阿格瓦姆"}, -{"usage": "city", "name": "阿爾堡"}, -{"usage": "city", "name": "阿爾弗雷德"}, -{"usage": "city", "name": "阿爾比恩"}, -{"usage": "city", "name": "阿特爾伯勒"}, -{"usage": "city", "name": "阿特金森"}, -{"usage": "city", "name": "阿瑟爾"}, -{"usage": "city", "name": "阿羅錫克"}, -{"usage": "city", "name": "阿靈頓"}, -{"usage": "city", "name": "阿默帝"}, -{"usage": "city", "name": "阿默斯特"}, -{"usage": "city", "name": "雅典"}, -{"usage": "city", "name": "雅文"}, -{"usage": "city", "name": "雅茅斯"}, -{"usage": "city", "name": "雪莉"}, -{"usage": "city", "name": "雷德菲爾德"}, -{"usage": "city", "name": "雷格列"}, -{"usage": "city", "name": "雷格列森林"}, -{"usage": "city", "name": "雷登"}, -{"usage": "city", "name": "雷納姆"}, -{"usage": "city", "name": "雷蒙德"}, -{"usage": "city", "name": "雷霍伯斯"}, -{"usage": "city", "name": "霍克賽特"}, -{"usage": "city", "name": "霍利"}, -{"usage": "city", "name": "霍利奧克"}, -{"usage": "city", "name": "霍利山"}, -{"usage": "city", "name": "霍利斯"}, -{"usage": "city", "name": "霍利斯頓"}, -{"usage": "city", "name": "霍奇登"}, -{"usage": "city", "name": "霍巴德斯頓"}, -{"usage": "city", "name": "霍巴德頓"}, -{"usage": "city", "name": "霍普"}, -{"usage": "city", "name": "霍普戴勒"}, -{"usage": "city", "name": "霍普金頓"}, -{"usage": "city", "name": "霍爾"}, -{"usage": "city", "name": "霍爾布魯克"}, -{"usage": "city", "name": "霍爾德內斯"}, -{"usage": "city", "name": "霍爾頓"}, -{"usage": "city", "name": "霍蘭德"}, -{"usage": "city", "name": "霍頓"}, -{"usage": "city", "name": "韋伯斯特"}, -{"usage": "city", "name": "韋伯斯特森林"}, -{"usage": "city", "name": "韋克菲爾德"}, -{"usage": "city", "name": "韋勒姆"}, -{"usage": "city", "name": "韋布里奇"}, -{"usage": "city", "name": "韋德"}, -{"usage": "city", "name": "韋恩"}, -{"usage": "city", "name": "韋斯利"}, -{"usage": "city", "name": "韋斯特伯勒"}, -{"usage": "city", "name": "韋斯特菲爾德"}, -{"usage": "city", "name": "韋斯頓"}, -{"usage": "city", "name": "韋爾"}, -{"usage": "city", "name": "韋爾弗利特"}, -{"usage": "city", "name": "韋爾德"}, -{"usage": "city", "name": "韋爾斯"}, -{"usage": "city", "name": "韋爾斯利"}, -{"usage": "city", "name": "韋特"}, -{"usage": "city", "name": "韋瑟斯"}, -{"usage": "city", "name": "韋納姆"}, -{"usage": "city", "name": "韋茅斯"}, -{"usage": "city", "name": "韋茨菲爾德"}, -{"usage": "city", "name": "韋蘭"}, -{"usage": "city", "name": "颶風島"}, -{"usage": "city", "name": "馬丁尼克斯島"}, -{"usage": "city", "name": "馬什皮"}, -{"usage": "city", "name": "馬什菲爾德"}, -{"usage": "city", "name": "馬塔哇"}, -{"usage": "city", "name": "馬塔波意斯"}, -{"usage": "city", "name": "馬布爾黑德"}, -{"usage": "city", "name": "馬德伯里"}, -{"usage": "city", "name": "馬德里"}, -{"usage": "city", "name": "馬戈洛威森林"}, -{"usage": "city", "name": "馬柴厄斯"}, -{"usage": "city", "name": "馬柴厄斯港"}, -{"usage": "city", "name": "馬森明康地斯"}, -{"usage": "city", "name": "馬洛"}, -{"usage": "city", "name": "馬爾堡"}, -{"usage": "city", "name": "馬爾登"}, -{"usage": "city", "name": "馬達沃斯卡"}, -{"usage": "city", "name": "馬里昂"}, -{"usage": "city", "name": "高佛斯鎮"}, -{"usage": "city", "name": "高地森林"}, -{"usage": "city", "name": "高門"}, -{"usage": "city", "name": "魯珀特"}, -{"usage": "city", "name": "鮑德溫"}, -{"usage": "city", "name": "鮑爾班克"}, -{"usage": "city", "name": "鮑登"}, -{"usage": "city", "name": "鮑登漢"}, -{"usage": "city", "name": "鮑萊特"}, -{"usage": "city", "name": "鷹湖"}, -{"usage": "city", "name": "鹿島"}, -{"usage": "city", "name": "麥克尼瀑布"}, -{"usage": "city", "name": "麥克斯菲爾德"}, -{"usage": "city", "name": "麥克華霍克森林"}, -{"usage": "city", "name": "黎凡特"}, -{"usage": "city", "name": "黎巴嫩"}, -{"usage": "city", "name": "黑石"}, -{"usage": "city", "name": "黑門"}, -{"usage": "city", "name": "默瑟"}, -{"usage": "city", "name": "齊坦丹縣"}, -{"usage": "family", "gender": "unisex", "name": "Adams"}, -{"usage": "family", "gender": "unisex", "name": "Alexander"}, -{"usage": "family", "gender": "unisex", "name": "Allen"}, -{"usage": "family", "gender": "unisex", "name": "Anderson"}, -{"usage": "family", "gender": "unisex", "name": "Bailey"}, -{"usage": "family", "gender": "unisex", "name": "Baker"}, -{"usage": "family", "gender": "unisex", "name": "Barnes"}, -{"usage": "family", "gender": "unisex", "name": "Bell"}, -{"usage": "family", "gender": "unisex", "name": "Bennett"}, -{"usage": "family", "gender": "unisex", "name": "Brooks"}, -{"usage": "family", "gender": "unisex", "name": "Brown"}, -{"usage": "family", "gender": "unisex", "name": "Bryant"}, -{"usage": "family", "gender": "unisex", "name": "Butler"}, -{"usage": "family", "gender": "unisex", "name": "Campbell"}, -{"usage": "family", "gender": "unisex", "name": "Carter"}, -{"usage": "family", "gender": "unisex", "name": "Clark"}, -{"usage": "family", "gender": "unisex", "name": "Coleman"}, -{"usage": "family", "gender": "unisex", "name": "Collins"}, -{"usage": "family", "gender": "unisex", "name": "Cook"}, -{"usage": "family", "gender": "unisex", "name": "Cooper"}, -{"usage": "family", "gender": "unisex", "name": "Cox"}, -{"usage": "family", "gender": "unisex", "name": "Davis"}, -{"usage": "family", "gender": "unisex", "name": "Diaz"}, -{"usage": "family", "gender": "unisex", "name": "Edwards"}, -{"usage": "family", "gender": "unisex", "name": "Evans"}, -{"usage": "family", "gender": "unisex", "name": "Flores"}, -{"usage": "family", "gender": "unisex", "name": "Foster"}, -{"usage": "family", "gender": "unisex", "name": "Garcia"}, -{"usage": "family", "gender": "unisex", "name": "Gonzales"}, -{"usage": "family", "gender": "unisex", "name": "Gonzalez"}, -{"usage": "family", "gender": "unisex", "name": "Gray"}, -{"usage": "family", "gender": "unisex", "name": "Green"}, -{"usage": "family", "gender": "unisex", "name": "Griffin"}, -{"usage": "family", "gender": "unisex", "name": "Hall"}, -{"usage": "family", "gender": "unisex", "name": "Harris"}, -{"usage": "family", "gender": "unisex", "name": "Hayes"}, -{"usage": "family", "gender": "unisex", "name": "Henderson"}, -{"usage": "family", "gender": "unisex", "name": "Hernandez"}, -{"usage": "family", "gender": "unisex", "name": "Hill"}, -{"usage": "family", "gender": "unisex", "name": "Howard"}, -{"usage": "family", "gender": "unisex", "name": "Hughes"}, -{"usage": "family", "gender": "unisex", "name": "Jackson"}, -{"usage": "family", "gender": "unisex", "name": "James"}, -{"usage": "family", "gender": "unisex", "name": "Jenkins"}, -{"usage": "family", "gender": "unisex", "name": "Johnson"}, -{"usage": "family", "gender": "unisex", "name": "Jones"}, -{"usage": "family", "gender": "unisex", "name": "Kaiko"}, -{"usage": "family", "gender": "unisex", "name": "Kelly"}, -{"usage": "family", "gender": "unisex", "name": "King"}, -{"usage": "family", "gender": "unisex", "name": "Lee"}, -{"usage": "family", "gender": "unisex", "name": "Lewis"}, -{"usage": "family", "gender": "unisex", "name": "Long"}, -{"usage": "family", "gender": "unisex", "name": "Lopez"}, -{"usage": "family", "gender": "unisex", "name": "Martin"}, -{"usage": "family", "gender": "unisex", "name": "Martinez"}, -{"usage": "family", "gender": "unisex", "name": "Miller"}, -{"usage": "family", "gender": "unisex", "name": "Mitchell"}, -{"usage": "family", "gender": "unisex", "name": "Moore"}, -{"usage": "family", "gender": "unisex", "name": "Morgan"}, -{"usage": "family", "gender": "unisex", "name": "Morris"}, -{"usage": "family", "gender": "unisex", "name": "Murphy"}, -{"usage": "family", "gender": "unisex", "name": "Nakiya"}, -{"usage": "family", "gender": "unisex", "name": "Nelson"}, -{"usage": "family", "gender": "unisex", "name": "Parker"}, -{"usage": "family", "gender": "unisex", "name": "Patterson"}, -{"usage": "family", "gender": "unisex", "name": "Perez"}, -{"usage": "family", "gender": "unisex", "name": "Perry"}, -{"usage": "family", "gender": "unisex", "name": "Peterson"}, -{"usage": "family", "gender": "unisex", "name": "Phillips"}, -{"usage": "family", "gender": "unisex", "name": "Powell"}, -{"usage": "family", "gender": "unisex", "name": "Price"}, -{"usage": "family", "gender": "unisex", "name": "Ramirez"}, -{"usage": "family", "gender": "unisex", "name": "Reed"}, -{"usage": "family", "gender": "unisex", "name": "Richardson"}, -{"usage": "family", "gender": "unisex", "name": "Rivera"}, -{"usage": "family", "gender": "unisex", "name": "Roberts"}, -{"usage": "family", "gender": "unisex", "name": "Robinson"}, -{"usage": "family", "gender": "unisex", "name": "Rodriguez"}, -{"usage": "family", "gender": "unisex", "name": "Rogers"}, -{"usage": "family", "gender": "unisex", "name": "Ross"}, -{"usage": "family", "gender": "unisex", "name": "Russell"}, -{"usage": "family", "gender": "unisex", "name": "Sanchez"}, -{"usage": "family", "gender": "unisex", "name": "Sanders"}, -{"usage": "family", "gender": "unisex", "name": "Scott"}, -{"usage": "family", "gender": "unisex", "name": "Simmons"}, -{"usage": "family", "gender": "unisex", "name": "Smith"}, -{"usage": "family", "gender": "unisex", "name": "Stewart"}, -{"usage": "family", "gender": "unisex", "name": "Taylor"}, -{"usage": "family", "gender": "unisex", "name": "Thomas"}, -{"usage": "family", "gender": "unisex", "name": "Thompson"}, -{"usage": "family", "gender": "unisex", "name": "Torres"}, -{"usage": "family", "gender": "unisex", "name": "Turner"}, -{"usage": "family", "gender": "unisex", "name": "Van Wilde"}, -{"usage": "family", "gender": "unisex", "name": "Walker"}, -{"usage": "family", "gender": "unisex", "name": "Ward"}, -{"usage": "family", "gender": "unisex", "name": "Washington"}, -{"usage": "family", "gender": "unisex", "name": "Watson"}, -{"usage": "family", "gender": "unisex", "name": "West"}, -{"usage": "family", "gender": "unisex", "name": "White"}, -{"usage": "family", "gender": "unisex", "name": "Williams"}, -{"usage": "family", "gender": "unisex", "name": "Wilson"}, -{"usage": "family", "gender": "unisex", "name": "Wood"}, -{"usage": "family", "gender": "unisex", "name": "Wright"}, -{"usage": "family", "gender": "unisex", "name": "Young"}, -{"usage": "given", "gender": "female", "name": "Aaliyah"}, -{"usage": "given", "gender": "female", "name": "Abigail"}, -{"usage": "given", "gender": "female", "name": "Addison"}, -{"usage": "given", "gender": "female", "name": "Aizawa"}, -{"usage": "given", "gender": "female", "name": "Akiko"}, -{"usage": "given", "gender": "female", "name": "Alexa"}, -{"usage": "given", "gender": "female", "name": "Alexandra"}, -{"usage": "given", "gender": "female", "name": "Alexis"}, -{"usage": "given", "gender": "female", "name": "Allison"}, -{"usage": "given", "gender": "female", "name": "Alyssa"}, -{"usage": "given", "gender": "female", "name": "Amelia"}, -{"usage": "given", "gender": "female", "name": "Andrea"}, -{"usage": "given", "gender": "female", "name": "Angelina"}, -{"usage": "given", "gender": "female", "name": "Anna"}, -{"usage": "given", "gender": "female", "name": "Ariana"}, -{"usage": "given", "gender": "female", "name": "Arianna"}, -{"usage": "given", "gender": "female", "name": "Ashley"}, -{"usage": "given", "gender": "female", "name": "Aubrey"}, -{"usage": "given", "gender": "female", "name": "Audrey"}, -{"usage": "given", "gender": "female", "name": "Autumn"}, -{"usage": "given", "gender": "female", "name": "Ava"}, -{"usage": "given", "gender": "female", "name": "Avery"}, -{"usage": "given", "gender": "female", "name": "Bailey"}, -{"usage": "given", "gender": "female", "name": "Brianna"}, -{"usage": "given", "gender": "female", "name": "Brooke"}, -{"usage": "given", "gender": "female", "name": "Brooklyn"}, -{"usage": "given", "gender": "female", "name": "Camilla"}, -{"usage": "given", "gender": "female", "name": "Caroline"}, -{"usage": "given", "gender": "female", "name": "Charlotte"}, -{"usage": "given", "gender": "female", "name": "Chloe"}, -{"usage": "given", "gender": "female", "name": "Claire"}, -{"usage": "given", "gender": "female", "name": "Destiny"}, -{"usage": "given", "gender": "female", "name": "Elizabeth"}, -{"usage": "given", "gender": "female", "name": "Ella"}, -{"usage": "given", "gender": "female", "name": "Emily"}, -{"usage": "given", "gender": "female", "name": "Emma"}, -{"usage": "given", "gender": "female", "name": "Evelyn"}, -{"usage": "given", "gender": "female", "name": "Faith"}, -{"usage": "given", "gender": "female", "name": "Gabriella"}, -{"usage": "given", "gender": "female", "name": "Gabrielle"}, -{"usage": "given", "gender": "female", "name": "Genesis"}, -{"usage": "given", "gender": "female", "name": "Gianna"}, -{"usage": "given", "gender": "female", "name": "Grace"}, -{"usage": "given", "gender": "female", "name": "Gracie"}, -{"usage": "given", "gender": "female", "name": "Hailey"}, -{"usage": "given", "gender": "female", "name": "Hannah"}, -{"usage": "given", "gender": "female", "name": "Heather"}, -{"usage": "given", "gender": "female", "name": "Hikari"}, -{"usage": "given", "gender": "female", "name": "Isabel"}, -{"usage": "given", "gender": "female", "name": "Isabella"}, -{"usage": "given", "gender": "female", "name": "Isabelle"}, -{"usage": "given", "gender": "female", "name": "Jasmine"}, -{"usage": "given", "gender": "female", "name": "Jen"}, -{"usage": "given", "gender": "female", "name": "Jennifer"}, -{"usage": "given", "gender": "female", "name": "Jessica"}, -{"usage": "given", "gender": "female", "name": "Jessie"}, -{"usage": "given", "gender": "female", "name": "Jocelyn"}, -{"usage": "given", "gender": "female", "name": "Julia"}, -{"usage": "given", "gender": "female", "name": "Kaitlin"}, -{"usage": "given", "gender": "female", "name": "Katelyn"}, -{"usage": "given", "gender": "female", "name": "Katie"}, -{"usage": "given", "gender": "female", "name": "Kayla"}, -{"usage": "given", "gender": "female", "name": "Kaylee"}, -{"usage": "given", "gender": "female", "name": "Kim"}, -{"usage": "given", "gender": "female", "name": "Kimberly"}, -{"usage": "given", "gender": "female", "name": "Kylie"}, -{"usage": "given", "gender": "female", "name": "Lauren"}, -{"usage": "given", "gender": "female", "name": "Layla"}, -{"usage": "given", "gender": "female", "name": "Leah"}, -{"usage": "given", "gender": "female", "name": "Lillian"}, -{"usage": "given", "gender": "female", "name": "Lily"}, -{"usage": "given", "gender": "female", "name": "Madeline"}, -{"usage": "given", "gender": "female", "name": "Madelyn"}, -{"usage": "given", "gender": "female", "name": "Madison"}, -{"usage": "given", "gender": "female", "name": "Makayla"}, -{"usage": "given", "gender": "female", "name": "Maria"}, -{"usage": "given", "gender": "female", "name": "Mariah"}, -{"usage": "given", "gender": "female", "name": "Mary"}, -{"usage": "given", "gender": "female", "name": "Maya"}, -{"usage": "given", "gender": "female", "name": "Megan"}, -{"usage": "given", "gender": "female", "name": "Melanie"}, -{"usage": "given", "gender": "female", "name": "Mia"}, -{"usage": "given", "gender": "female", "name": "Morgan"}, -{"usage": "given", "gender": "female", "name": "Natalie"}, -{"usage": "given", "gender": "female", "name": "Natsuki"}, -{"usage": "given", "gender": "female", "name": "Nevaeh"}, -{"usage": "given", "gender": "female", "name": "Nuku"}, -{"usage": "given", "gender": "female", "name": "Olivia"}, -{"usage": "given", "gender": "female", "name": "Paige"}, -{"usage": "given", "gender": "female", "name": "Payton"}, -{"usage": "given", "gender": "female", "name": "Rachel"}, -{"usage": "given", "gender": "female", "name": "Riley"}, -{"usage": "given", "gender": "female", "name": "Samantha"}, -{"usage": "given", "gender": "female", "name": "Sara"}, -{"usage": "given", "gender": "female", "name": "Sarah"}, -{"usage": "given", "gender": "female", "name": "Savannah"}, -{"usage": "given", "gender": "female", "name": "Sofia"}, -{"usage": "given", "gender": "female", "name": "Sophie"}, -{"usage": "given", "gender": "female", "name": "Sydney"}, -{"usage": "given", "gender": "female", "name": "Trinity"}, -{"usage": "given", "gender": "female", "name": "Valeria"}, -{"usage": "given", "gender": "female", "name": "Vanessa"}, -{"usage": "given", "gender": "female", "name": "Victoria"}, -{"usage": "given", "gender": "female", "name": "Yuki"}, -{"usage": "given", "gender": "female", "name": "Zoe"}, -{"usage": "given", "gender": "female", "name": "Zoey"}, -{"usage": "given", "gender": "male", "name": "Aaron"}, -{"usage": "given", "gender": "male", "name": "Adam"}, -{"usage": "given", "gender": "male", "name": "Adrian"}, -{"usage": "given", "gender": "male", "name": "Aidan"}, -{"usage": "given", "gender": "male", "name": "Aiden"}, -{"usage": "given", "gender": "male", "name": "Alex"}, -{"usage": "given", "gender": "male", "name": "Alexander"}, -{"usage": "given", "gender": "male", "name": "Andrew"}, -{"usage": "given", "gender": "male", "name": "Angel"}, -{"usage": "given", "gender": "male", "name": "Anthony"}, -{"usage": "given", "gender": "male", "name": "Austin"}, -{"usage": "given", "gender": "male", "name": "Ayden"}, -{"usage": "given", "gender": "male", "name": "Benjamin"}, -{"usage": "given", "gender": "male", "name": "Blake"}, -{"usage": "given", "gender": "male", "name": "Brady"}, -{"usage": "given", "gender": "male", "name": "Brandon"}, -{"usage": "given", "gender": "male", "name": "Brayden"}, -{"usage": "given", "gender": "male", "name": "Brian"}, -{"usage": "given", "gender": "male", "name": "Brody"}, -{"usage": "given", "gender": "male", "name": "Bryan"}, -{"usage": "given", "gender": "male", "name": "Caden"}, -{"usage": "given", "gender": "male", "name": "Caleb"}, -{"usage": "given", "gender": "male", "name": "Cameron"}, -{"usage": "given", "gender": "male", "name": "Carlos"}, -{"usage": "given", "gender": "male", "name": "Carson"}, -{"usage": "given", "gender": "male", "name": "Carter"}, -{"usage": "given", "gender": "male", "name": "Charles"}, -{"usage": "given", "gender": "male", "name": "Chase"}, -{"usage": "given", "gender": "male", "name": "Christian"}, -{"usage": "given", "gender": "male", "name": "Christopher"}, -{"usage": "given", "gender": "male", "name": "Cole"}, -{"usage": "given", "gender": "male", "name": "Colton"}, -{"usage": "given", "gender": "male", "name": "Connor"}, -{"usage": "given", "gender": "male", "name": "Cooper"}, -{"usage": "given", "gender": "male", "name": "Daisuki"}, -{"usage": "given", "gender": "male", "name": "Daniel"}, -{"usage": "given", "gender": "male", "name": "David"}, -{"usage": "given", "gender": "male", "name": "Diego"}, -{"usage": "given", "gender": "male", "name": "Dominic"}, -{"usage": "given", "gender": "male", "name": "Dylan"}, -{"usage": "given", "gender": "male", "name": "Eben"}, -{"usage": "given", "gender": "male", "name": "Eli"}, -{"usage": "given", "gender": "male", "name": "Elijah"}, -{"usage": "given", "gender": "male", "name": "Eric"}, -{"usage": "given", "gender": "male", "name": "Ethan"}, -{"usage": "given", "gender": "male", "name": "Evan"}, -{"usage": "given", "gender": "male", "name": "Gabriel"}, -{"usage": "given", "gender": "male", "name": "Gavin"}, -{"usage": "given", "gender": "male", "name": "Gendo"}, -{"usage": "given", "gender": "male", "name": "Hayden"}, -{"usage": "given", "gender": "male", "name": "Henry"}, -{"usage": "given", "gender": "male", "name": "Hunter"}, -{"usage": "given", "gender": "male", "name": "Ian"}, -{"usage": "given", "gender": "male", "name": "Isaac"}, -{"usage": "given", "gender": "male", "name": "Isaiah"}, -{"usage": "given", "gender": "male", "name": "Jack"}, -{"usage": "given", "gender": "male", "name": "Jackson"}, -{"usage": "given", "gender": "male", "name": "Jacob"}, -{"usage": "given", "gender": "male", "name": "Jaden"}, -{"usage": "given", "gender": "male", "name": "James"}, -{"usage": "given", "gender": "male", "name": "Jason"}, -{"usage": "given", "gender": "male", "name": "Jayden"}, -{"usage": "given", "gender": "male", "name": "Jeremiah"}, -{"usage": "given", "gender": "male", "name": "Jesus"}, -{"usage": "given", "gender": "male", "name": "John"}, -{"usage": "given", "gender": "male", "name": "Jonathan"}, -{"usage": "given", "gender": "male", "name": "Jordan"}, -{"usage": "given", "gender": "male", "name": "Jose"}, -{"usage": "given", "gender": "male", "name": "Joseph"}, -{"usage": "given", "gender": "male", "name": "Joshua"}, -{"usage": "given", "gender": "male", "name": "Josiah"}, -{"usage": "given", "gender": "male", "name": "Juan"}, -{"usage": "given", "gender": "male", "name": "Julian"}, -{"usage": "given", "gender": "male", "name": "Justin"}, -{"usage": "given", "gender": "male", "name": "Kaden"}, -{"usage": "given", "gender": "male", "name": "Keita"}, -{"usage": "given", "gender": "male", "name": "Kevin"}, -{"usage": "given", "gender": "male", "name": "Kira"}, -{"usage": "given", "gender": "male", "name": "Kyosuki"}, -{"usage": "given", "gender": "male", "name": "Landon"}, -{"usage": "given", "gender": "male", "name": "Liam"}, -{"usage": "given", "gender": "male", "name": "Logan"}, -{"usage": "given", "gender": "male", "name": "Lucas"}, -{"usage": "given", "gender": "male", "name": "Luis"}, -{"usage": "given", "gender": "male", "name": "Luke"}, -{"usage": "given", "gender": "male", "name": "Mason"}, -{"usage": "given", "gender": "male", "name": "Matthew"}, -{"usage": "given", "gender": "male", "name": "Michael"}, -{"usage": "given", "gender": "male", "name": "Nathan"}, -{"usage": "given", "gender": "male", "name": "Nathaniel"}, -{"usage": "given", "gender": "male", "name": "Nicholas"}, -{"usage": "given", "gender": "male", "name": "Noah"}, -{"usage": "given", "gender": "male", "name": "Owen"}, -{"usage": "given", "gender": "male", "name": "Robert"}, -{"usage": "given", "gender": "male", "name": "Ryan"}, -{"usage": "given", "gender": "male", "name": "Sabastian"}, -{"usage": "given", "gender": "male", "name": "Samuel"}, -{"usage": "given", "gender": "male", "name": "Sean"}, -{"usage": "given", "gender": "male", "name": "Takeuchi"}, -{"usage": "given", "gender": "male", "name": "Thomas"}, -{"usage": "given", "gender": "male", "name": "Tristan"}, -{"usage": "given", "gender": "male", "name": "Tyler"}, -{"usage": "given", "gender": "male", "name": "William"}, -{"usage": "given", "gender": "male", "name": "Wyatt"}, -{"usage": "given", "gender": "male", "name": "Xavier"}, -{"usage": "given", "gender": "male", "name": "Zachary"}, -{"usage": "given", "gender": "male", "name": "凱爾"} + { + "usage": "city", + "name": [ + "Acushnet", + "Adams", + "Addison", + "Alexander", + "Brandon", + "Brooklyn", + "Brooks", + "Charlotte", + "Connor", + "Cooper", + "Foster", + "Gray", + "Hill", + "Jackson", + "Johnson", + "Lee", + "Madison", + "Mason", + "Morgan", + "Morris", + "Nelson", + "Perry", + "Phillips", + "Russell", + "Thompson", + "Turner", + "Washington", + "不來梅", + "中國", + "丹伯里", + "丹佛斯", + "丹尼斯", + "丹尼斯維爾", + "丹尼斯鎮", + "丹比", + "丹福思", + "丹維爾", + "丹麥", + "亞倫鎮", + "亞培", + "亞歷安德拉", + "亞甚蘭", + "亞皆", + "亞賓頓", + "什魯斯伯里", + "代爾布魯克", + "代頓", + "伊斯坦", + "伊斯特布魯克", + "伊斯特漢普頓", + "伊斯特福德", + "伊斯頓", + "伊普斯維奇", + "伊甸", + "伊頓", + "伍德伯里", + "伍德布里奇", + "伍德斯托克", + "伍德福德", + "伍德維爾", + "伍德蘭", + "伍爾維奇", + "伯克", + "伯克利", + "伯克希爾", + "伯利恆", + "伯威克", + "伯特利", + "伯瑞特波羅", + "伯瑞維爾", + "伯納姆", + "伯靈頓", + "佛羅里達", + "佩勒姆", + "佩勒漢", + "佩波羅爾", + "佩諾斯科特", + "保羅特尼", + "倍根瀑", + "倫敦德里", + "倫瑟姆", + "傑伊", + "傑佛瑞", + "傑佛遜", + "傑克曼", + "傑里科", + "克倫威爾", + "克勞福德", + "克拉克斯堡", + "克拉克斯維爾", + "克羅伊登", + "克萊爾登", + "克萊蒙特", + "克蘭斯頓", + "克里夫頓", + "克靈頓", + "冬港", + "凡斯波羅", + "切姆斯福德", + "切斯特", + "切斯特維爾", + "切斯特菲爾德", + "切爾西", + "切里菲爾德", + "利奇菲爾德", + "利奧明斯特", + "利弗莫爾", + "利弗莫爾瀑布", + "利德堡", + "利明頓", + "利特爾頓", + "利茲", + "利默里克", + "劍橋", + "加德納", + "加菲爾德森林", + "加萊", + "加蘭", + "努凡", + "勒德洛", + "勞倫斯", + "勞登", + "北亞當斯", + "北亞茂斯", + "北史密斯菲爾德", + "北哈芬", + "北安多弗", + "北安普頓", + "北布蘭福德", + "北布里其", + "北布魯克菲爾德", + "北希洛", + "北斯通寧頓", + "北普羅維登斯", + "北漢普頓", + "北貝里克", + "北迦南", + "北金斯敦", + "北阿特巴路", + "北雷丁", + "匹茲堡", + "卓別林", + "南伯靈頓", + "南哈德利", + "南安普敦", + "南布里奇", + "南布里斯托爾", + "南希羅", + "南托馬斯頓", + "南波特蘭", + "南溫莎", + "南漢普頓", + "南貝里克", + "南金斯敦", + "博克斯伯勒", + "博克斯福德", + "博斯科恩", + "卡勒巴西特谷", + "卡博特", + "卡弗", + "卡拉籐克", + "卡文迪許", + "卡斯威爾", + "卡斯廷", + "卡斯爾頓", + "卡斯科", + "卡梅爾", + "卡洛爾", + "卡洛爾森林", + "卡特勒", + "卡萊爾", + "卡里布", + "卡里森林", + "厄普頓", + "友誼市", + "古爾茲伯勒", + "史塔克", + "史塔克伯羅", + "史塔克斯", + "史密斯菲爾德", + "史黛西維爾", + "吉利德", + "吉爾", + "吉爾曼頓", + "吉爾森", + "吉爾福特", + "吉爾福特", + "哈丹姆", + "哈佛", + "哈利法克斯", + "哈姆林", + "哈姆登", + "哈威奇", + "哈德利", + "哈德威克", + "哈德森", + "哈普斯威爾", + "哈洛韋爾", + "哈溫頓", + "哈特福", + "哈特菲爾德", + "哈特蘭", + "哈福希爾", + "哈蒙尼", + "哈蒙德", + "哈里斯維爾", + "哈里森", + "哈靈頓", + "哥倫比亞", + "哥倫比亞瀑布", + "哥爾罕", + "喬治亞", + "喬治城", + "嘉丁納", + "圖克斯伯里", + "坎伯蘭", + "坎地亞", + "坎明尼頓", + "坎普頓", + "坎特伯里", + "坎登", + "坎頓", + "埃克塞特", + "埃塞克斯", + "埃平", + "埃弗雷特", + "埃德加敦", + "埃德蒙茲", + "埃林頓", + "埃柏登", + "埃格蒙特", + "埃爾斯沃思", + "埃爾莫爾", + "埃特納", + "埃皮森", + "埃羅爾", + "埃芬漢", + "城堡山", + "基恩", + "基特里", + "基靈", + "基靈沃斯", + "基靈頓", + "塔博爾山", + "塔姆沃思", + "塞勒姆", + "塞奇威克", + "塞特福德", + "墨西哥", + "士嘉堡", + "士麥那", + "夏隆", + "多佛-福克斯克羅夫特", + "多佛爾", + "多切斯特", + "多塞特", + "多爾蘭", + "大塘", + "天鵝島", + "奇切斯特", + "奇瑪克", + "奇科皮", + "奧克姆", + "奧克布洛福", + "奧克斯博", + "奧克菲爾德", + "奧克蘭", + "奧古斯塔", + "奧威爾", + "奧斯本", + "奧本", + "奧爾巴尼", + "奧爾福德", + "奧爾維爾", + "奧爾良", + "奧爾頓", + "奧甘奎特", + "奧福德", + "奧羅拉", + "奧羅諾", + "奧蒂斯", + "奧蒂斯菲爾德", + "奧蘭德", + "奧蘭治", + "奧西皮", + "奧連特", + "奧靈頓", + "姍蒂河森林", + "威其頓", + "威利斯頓", + "威利曼蒂克", + "威努斯基", + "威廉斯堡", + "威廉斯鎮", + "威恩", + "威斯凱薩特", + "威斯布魯克", + "威斯敏斯特", + "威斯特摩蘭", + "威斯特福德", + "威斯特莫爾", + "威斯特里", + "威爾", + "威爾士", + "威爾明頓", + "威爾莫特", + "威爾頓", + "威靈頓", + "安多弗", + "安特里姆", + "安生", + "安索尼亞", + "寇地維爾森林", + "富蘭克林", + "小坎頓", + "尤你恩", + "尤你蒂", + "尤斯蒂斯", + "尼德漢", + "工業", + "巴克斯波特", + "巴克斯頓", + "巴克漢士德", + "巴克菲爾德", + "巴克蘭", + "巴勒莫", + "巴尼特", + "巴恩斯德", + "巴恩斯特布爾", + "巴斯", + "巴林頓", + "巴爾港", + "巴爾的摩", + "巴爾米拉", + "巴特利特", + "巴納德", + "巴雷", + "巴靈", + "巴頓", + "巴黎", + "巴黎西部", + "市政廳", + "布倫特伍德", + "布倫特里", + "布拉德利", + "布拉德福德", + "布斯", + "布斯灣", + "布朗寧菲爾", + "布朗寧頓", + "布朗斯維克", + "布朗菲爾德", + "布林菲爾德", + "布盧姆菲爾德", + "布羅", + "布羅克頓", + "布萊恩", + "布萊頓", + "布萊頓森林", + "布蘭查德", + "布蘭福德", + "布蘭福德", + "布里奇沃特", + "布里奇波特", + "布里奇頓", + "布里德波特", + "布里斯托爾", + "布魯克斯維爾", + "布魯克林", + "布魯克菲爾德", + "布魯克賴", + "布魯克頓", + "布魯斯特", + "布魯爾", + "希伯倫", + "希思", + "希爾斯堡", + "希爾森林", + "希蘭", + "帕克斯頓", + "帕克曼", + "帕斯當坎", + "帕森斯菲爾德", + "帕爾默", + "帕金斯", + "底特律", + "庫欣", + "康威", + "康沃爾", + "康科爾", + "康維爾", + "弗萊島", + "弗萊徹", + "弗蘭希斯鎮", + "弗蘭肯", + "弗賴堡", + "弗農", + "弗農山", + "弗農山", + "弗里敦", + "弗里曲波羅", + "弗里曲維爾", + "弗里蒙特", + "弗金斯", + "弗雷明漢", + "彭布羅克", + "彼得伯勒", + "彼得舍姆", + "德克斯特", + "德拉卡特", + "德比", + "德累斯頓", + "德里", + "德魯森林", + "思科西根", + "恩菲爾德", + "惠廷", + "惠廷漢", + "惠爾布拉漢", + "惠特利", + "惠特尼維爾", + "惠特曼", + "惠靈頓", + "愛丁堡", + "愛丁頓", + "愛略特", + "愛華特島", + "愛諾斯堡", + "懷特菲爾德", + "戈斯諾爾德", + "戴頓", + "托普斯費爾德", + "托普瑟姆", + "托靈頓", + "托馬斯頓", + "拉姆尼", + "拉姆福德", + "拉格朗日", + "拉特蘭", + "拉科尼亞", + "拉蒙尼", + "拉蒙特島", + "拜倫", + "挪威", + "摩洛森林", + "摩爾鎮", + "文索基特", + "斯圖本", + "斯圖爾茨敦", + "斯坦福", + "斯坦納德", + "斯坦迪什", + "斯塔福德", + "斯德哥爾摩", + "斯托", + "斯托", + "斯托克布里奇", + "斯托克頓泉", + "斯托寧頓", + "斯托納姆", + "斯托達德", + "斯托頓", + "斯旺普思科特", + "斯旺維爾", + "斯旺西", + "斯旺西", + "斯旺頓", + "斯普拉格", + "斯普林菲爾德", + "斯泰森", + "斯特布里奇", + "斯特拉漢", + "斯特拉特福", + "斯特拉福德", + "斯特拉頓", + "斯特朗", + "斯特林", + "斯賓塞", + "斯頓", + "新不列顛", + "新伊普斯維奇", + "新倫敦", + "新利默里克", + "新加拿大", + "新卡斯爾", + "新哈特福德", + "新塞勒姆", + "新夏隆", + "新布倫特里", + "新格洛斯特", + "新法爾菲爾德", + "新波士頓", + "新波特蘭", + "新港", + "新漢普頓", + "新瑞典", + "新米爾福德", + "新肖勒姆", + "新葡萄園", + "新貝德福德", + "新迦南", + "新達勒姆", + "新鎮", + "新阿什福德", + "新馬爾堡", + "昂德希爾", + "昆西", + "普倫蒂斯", + "普利茅斯", + "普林斯頓", + "普林頓", + "普特南", + "普特尼", + "普維斯鎮", + "普羅克特", + "普羅斯貝", + "普羅維登斯", + "普茲茅斯", + "普萊恩維爾", + "普萊斯敦", + "普蘭菲爾德", + "普雷斯克島", + "普雷斯科特", + "普雷斯頓", + "曼徹斯特", + "曼徹斯特沿海", + "曼斯菲爾德", + "會德豐", + "朗梅", + "本森", + "杭廷頓", + "東哈丹姆", + "東哈特福", + "東布里奇沃特", + "東布魯克菲爾德", + "東普羅維登斯", + "東朗梅多", + "東格林尼治", + "東格蘭比", + "東港", + "東港", + "東溫莎", + "東漢普頓", + "東米利諾基特", + "東萊姆", + "東蒙彼利埃", + "東金士頓", + "東馬柴厄斯", + "林奈", + "林恩", + "林恩菲爾德", + "林登", + "林肯", + "林肯森林", + "林肯維爾", + "柏德基", + "柏林", + "柏林罕", + "查塔姆", + "查普曼", + "查爾斯鎮", + "查爾斯頓", + "查爾頓", + "查理蒙特", + "柯比", + "柴郡", + "格倫伍德森林", + "格倫本", + "格利巴陵頓", + "格拉夫頓", + "格拉斯坦伯裡", + "格拉斯頓伯裡", + "格林", + "格林伍德", + "格林威治", + "格林布許", + "格林斯伯勒", + "格林維爾", + "格林菲爾德", + "格洛弗", + "格洛斯特", + "格羅切斯特", + "格羅夫蘭", + "格羅頓", + "格蘭德艾爾", + "格蘭德萊克", + "格蘭比", + "格蘭瑟姆", + "格蘭維爾", + "格里斯沃爾德", + "格陵蘭", + "桑地斯菲爾德", + "桑威治", + "桑德蘭", + "桑戴克", + "桑格維爾", + "桑當", + "桑福德", + "桑納皮", + "桑蓋特", + "桑頓", + "梅休因", + "梅德斯通", + "梅德福", + "梅德菲爾德", + "梅德韋", + "梅普爾頓", + "梅爾羅斯", + "梅納德", + "梅蒂", + "梅里爾", + "梅里登", + "梅里馬克", + "梅里麥克", + "梅雷迪思", + "梅頓", + "梭倫", + "森林城市", + "森特港", + "森特瀑", + "森特維爾", + "楚別克島", + "楠塔基特", + "樂威", + "欣厄姆", + "欣斯戴爾", + "歌珊", + "歐文", + "歐斯典", + "歐那", + "比佛利", + "比爾斯", + "比爾里卡", + "水城", + "水晶", + "沃什本", + "沃倫", + "沃倫特敦", + "沃夫波洛", + "沃德斯波羅", + "沃拉葛雷斯", + "沃本", + "沃波爾", + "沃爾多", + "沃爾多波羅", + "沃爾瑟姆", + "沃爾登", + "沃爾科特", + "沃特伯里", + "沃特波羅", + "沃特福德", + "沃特維爾", + "沃特維爾谷", + "沙利文", + "沙夫茨伯里", + "沙布雷", + "沙漠山", + "法明戴爾", + "法明頓", + "法爾茅斯", + "法蘭克福", + "波內爾", + "波士頓", + "波恩", + "波斯拉", + "波特", + "波特蘭", + "波福瑞特", + "波蒂奇湖", + "波蘭", + "波頓", + "泰爾馬奇", + "洛厄爾", + "洛基山", + "洛弗爾", + "洛貝克", + "海因斯堡", + "海德公園", + "海恩斯維爾", + "海狸灣", + "深河", + "湖景森林", + "湯森德", + "湯森漢德", + "湯頓", + "溫德姆", + "溫德爾", + "溫徹斯特", + "溫斯洛", + "溫斯洛普", + "溫特沃斯", + "溫特波特", + "溫特維爾森林", + "溫荷", + "溫莎", + "溫莎洛克斯", + "滕布里奇", + "漢密爾頓", + "漢尼克", + "漢普斯特德", + "漢普登", + "漢普頓", + "漢普頓瀑布", + "漢森", + "漢考克", + "漢諾威", + "潘登", + "潘頓", + "瀑布島", + "火星山", + "灰石", + "烏斯特", + "牙買加", + "牛津", + "牛頓", + "特倫思科特", + "特倫頓", + "特朗布爾", + "特洛伊", + "特里蒙特", + "特魯羅", + "特魯菲伯羅", + "班克羅夫特", + "班寧頓", + "班戈", + "班頓", + "瑞丁", + "瑞伊", + "瑞伊蓋特", + "瑞佛爾", + "瑞典", + "瑞德森林", + "瑞恩奇", + "瑞斯保羅", + "瑪利亞韋爾", + "瑪莎迪斯", + "瓊斯伯勒", + "瓊斯港", + "瓦林福德", + "瓦薩波羅", + "畢德佛", + "皮博迪", + "皮查姆", + "皮耶蒙特", + "皮茨福德", + "皮茨菲爾德", + "皮茨頓", + "盧嫩堡", + "福克斯", + "福克斯堡", + "福爾里弗", + "科哈塞特", + "科尼什", + "科林斯", + "科林那", + "科爾切斯特", + "科爾布魯克", + "科爾瑞", + "科芬特里", + "秘魯", + "穆斯河", + "窩辛頓", + "範布倫", + "米利斯", + "米利諾基特", + "米德爾伯里", + "米德爾堡", + "米德爾塞克斯", + "米德爾敦", + "米德爾敦泉", + "米德爾菲爾德", + "米德爾頓", + "米洛", + "米爾伯里", + "米爾橋", + "米爾福德", + "米爾維爾", + "米爾頓", + "米蘭", + "糖山", + "約克", + "約翰斯頓", + "納什維爾森林", + "納哈特", + "納拉甘西特", + "納提克", + "納舒厄", + "紐伯里", + "紐伯里波特", + "紐卡斯爾", + "紐因頓", + "紐堡", + "紐波伯羅", + "紐瓦克", + "紐維", + "紐菲爾德", + "紐菲爾德斯", + "紐馬基特", + "紐黑文", + "索倫托", + "索斯威克", + "索格斯", + "索爾海姆", + "索爾茲伯里", + "索科", + "索辛頓", + "紹斯伯勒", + "紹斯伯里", + "紹斯波特", + "維也納", + "維克多里", + "維德斯菲爾德", + "維斯特伍德", + "維斯特曼蘭特", + "維斯特漢普敦", + "維濟", + "維羅納島", + "維西爾", + "維諾黑文", + "羅亞爾斯頓", + "羅亞爾頓", + "羅克布拉福", + "羅克斯伯里", + "羅克波特", + "羅克蘭", + "羅切斯特", + "羅利", + "羅林斯福德", + "羅維", + "羅賓斯頓", + "羅金厄姆", + "羅馬", + "老塞布魯克", + "老果園海灘", + "老萊姆", + "聖伯敦", + "聖喬治", + "聖奧爾本斯", + "聖弗朗西斯", + "聖愛葛莎", + "聖約翰伯里", + "聖約翰森林", + "肖茲伯里", + "肯德斯凱", + "肯特", + "肯特堡", + "肯納邦克", + "肯納邦克港", + "肯辛頓", + "自由市", + "自由港", + "舊城區", + "舊市鎮:", + "艾克莫", + "艾士菲", + "艾姆斯伯里", + "艾拉", + "艾拉斯堡", + "艾爾", + "艾蘭斯伯羅", + "芒克頓", + "荂夫斯貝里", + "荷蘭", + "莫斯科", + "莫里斯敦", + "莫里爾", + "莫頓堡", + "華威", + "華盛頓山", + "華納", + "菲利普斯頓", + "菲奇堡", + "菲普斯堡", + "菲茨威廉", + "萊克星頓", + "萊克維爾", + "萊切斯特", + "萊姆", + "萊弗里特", + "萊德亞德", + "萊明頓", + "萊普斯特", + "萊曼", + "萊諾克斯", + "萬寶路", + "蒂弗頓", + "蒂斯伯里", + "蒂斯堡", + "蒂林厄姆", + "蒂爾頓", + "蒂茂斯", + "蒙哥馬利", + "蒙塔古", + "蒙彼利埃", + "蒙森", + "蒙特利", + "蒙特維爾", + "蒙蒂塞洛", + "蒙黑根", + "蒙默思", + "蔓越莓群島", + "蔡斯山", + "薩姆納", + "薩德伯里", + "薩沃伊", + "薩瑞", + "薩菲爾德", + "薩里", + "薩頓", + "薩默塞特", + "薩默斯", + "薩默沃斯", + "薩默維爾", + "藍山", + "蘇格蘭", + "蘭多夫", + "蘭大福", + "蘭德括福", + "蘭斯伯瑞", + "蘭登", + "蘭開斯特", + "西加德納", + "西南港", + "西哈特福德", + "西巴斯", + "西布里奇沃特", + "西布魯克菲爾德", + "西德尼", + "西拉特蘭", + "西摩爾", + "西斯托克布里奇", + "西斯普林菲爾德", + "西格林威治", + "西沃里克", + "西波以斯敦", + "西港", + "西溫莎", + "西福克斯", + "西紐伯里", + "西蒂斯伯里", + "西費爾里", + "西黑文", + "詹姆斯敦", + "諾丁漢", + "諾伍德", + "諾克斯", + "諾斯伍德", + "諾斯伯勒", + "諾斯波特", + "諾斯菲爾德", + "諾格塔克", + "諾森伯蘭", + "諾沃克", + "諾福克", + "諾維奇", + "諾里居沃克", + "諾頓", + "謝爾曼", + "謝爾本", + "謝爾本", + "謝爾頓", + "謝爾頓", + "謝菲爾德", + "貓頭鷹頭", + "貝丁頓", + "貝克斯菲爾德", + "貝克特", + "貝內迪克塔", + "貝利村", + "貝德福德", + "貝爾徹鎮", + "貝爾格萊德", + "貝爾法斯特", + "貝爾納茨頓", + "貝爾維迪爾", + "貝爾蒙特", + "貝瑟尼", + "費曼", + "費爾法克斯", + "費爾海文", + "費爾菲爾德", + "費爾菲爾德堡", + "費爾里", + "費爾黑文", + "費瑞斯堡", + "費登", + "費耶斯頓", + "費耶特", + "賓漢", + "賽巴德斯", + "赫德之位", + "赫西", + "路易斯頓", + "迦南", + "迦太基", + "迪克斯菲爾德", + "迪克斯蒙", + "迪爾林", + "迪爾菲爾德", + "逸嶺森林", + "道格拉斯", + "道爾頓", + "達克斯伯里", + "達勒姆", + "達德利", + "達德漢", + "達拉斯森林", + "達比路斯", + "達特茅斯", + "達里恩", + "達馬瑞斯哥塔", + "達默", + "達默斯頓", + "邁諾特", + "那不勒斯", + "都柏林", + "鄧巴頓", + "鄧斯特布爾", + "鄧普", + "鄧普頓", + "里士滿", + "里奇福德", + "里奇菲爾德", + "里斯本", + "里普利", + "里普敦", + "金士頓", + "金斯伯里森林", + "金曼", + "金菲爾德", + "錫姆斯伯里", + "錫巴勾", + "錫布魯克", + "錫康克", + "錫楚埃特", + "錫比克", + "錫波伊斯森林", + "錫爾斯堡", + "錫爾斯港", + "錫爾斯蒙特", + "長島", + "門羅", + "開普敦伊麗莎白", + "阿什比", + "阿什波漢", + "阿什福德", + "阿倫德爾", + "阿克斯布里奇", + "阿克沃斯", + "阿克頓", + "阿基那", + "阿拉加什", + "阿普爾頓", + "阿格瓦姆", + "阿爾堡", + "阿爾弗雷德", + "阿爾比恩", + "阿特爾伯勒", + "阿特金森", + "阿瑟爾", + "阿羅錫克", + "阿靈頓", + "阿默帝", + "阿默斯特", + "雅典", + "雅文", + "雅茅斯", + "雪莉", + "雷德菲爾德", + "雷格列", + "雷格列森林", + "雷登", + "雷納姆", + "雷蒙德", + "雷霍伯斯", + "霍克賽特", + "霍利", + "霍利奧克", + "霍利山", + "霍利斯", + "霍利斯頓", + "霍奇登", + "霍巴德斯頓", + "霍巴德頓", + "霍普", + "霍普戴勒", + "霍普金頓", + "霍爾", + "霍爾布魯克", + "霍爾德內斯", + "霍爾頓", + "霍蘭德", + "霍頓", + "韋伯斯特", + "韋伯斯特森林", + "韋克菲爾德", + "韋勒姆", + "韋布里奇", + "韋德", + "韋恩", + "韋斯利", + "韋斯特伯勒", + "韋斯特菲爾德", + "韋斯頓", + "韋爾", + "韋爾弗利特", + "韋爾德", + "韋爾斯", + "韋爾斯利", + "韋特", + "韋瑟斯", + "韋納姆", + "韋茅斯", + "韋茨菲爾德", + "韋蘭", + "颶風島", + "馬丁尼克斯島", + "馬什皮", + "馬什菲爾德", + "馬塔哇", + "馬塔波意斯", + "馬布爾黑德", + "馬德伯里", + "馬德里", + "馬戈洛威森林", + "馬柴厄斯", + "馬柴厄斯港", + "馬森明康地斯", + "馬洛", + "馬爾堡", + "馬爾登", + "馬達沃斯卡", + "馬里昂", + "高佛斯鎮", + "高地森林", + "高門", + "魯珀特", + "鮑德溫", + "鮑爾班克", + "鮑登", + "鮑登漢", + "鮑萊特", + "鷹湖", + "鹿島", + "麥克尼瀑布", + "麥克斯菲爾德", + "麥克華霍克森林", + "黎凡特", + "黎巴嫩", + "黑石", + "黑門", + "默瑟", + "齊坦丹縣" + ] + }, + { + "usage": "family", + "gender": "unisex", + "name": [ + "Adams", + "Alexander", + "Allen", + "Anderson", + "Bailey", + "Baker", + "Barnes", + "Bell", + "Bennett", + "Brooks", + "Brown", + "Bryant", + "Butler", + "Campbell", + "Carter", + "Clark", + "Coleman", + "Collins", + "Cook", + "Cooper", + "Cox", + "Davis", + "Diaz", + "Edwards", + "Evans", + "Flores", + "Foster", + "Garcia", + "Gonzales", + "Gonzalez", + "Gray", + "Green", + "Griffin", + "Hall", + "Harris", + "Hayes", + "Henderson", + "Hernandez", + "Hill", + "Howard", + "Hughes", + "Jackson", + "James", + "Jenkins", + "Johnson", + "Jones", + "Kaiko", + "Kelly", + "King", + "Lee", + "Lewis", + "Long", + "Lopez", + "Martin", + "Martinez", + "Miller", + "Mitchell", + "Moore", + "Morgan", + "Morris", + "Murphy", + "Nakiya", + "Nelson", + "Parker", + "Patterson", + "Perez", + "Perry", + "Peterson", + "Phillips", + "Powell", + "Price", + "Ramirez", + "Reed", + "Richardson", + "Rivera", + "Roberts", + "Robinson", + "Rodriguez", + "Rogers", + "Ross", + "Russell", + "Sanchez", + "Sanders", + "Scott", + "Simmons", + "Smith", + "Stewart", + "Taylor", + "Thomas", + "Thompson", + "Torres", + "Turner", + "Van Wilde", + "Walker", + "Ward", + "Washington", + "Watson", + "West", + "White", + "Williams", + "Wilson", + "Wood", + "Wright", + "Young" + ] + }, + { + "usage": "given", + "gender": "female", + "name": [ + "Aaliyah", + "Abigail", + "Addison", + "Aizawa", + "Akiko", + "Alexa", + "Alexandra", + "Alexis", + "Allison", + "Alyssa", + "Amelia", + "Andrea", + "Angelina", + "Anna", + "Ariana", + "Arianna", + "Ashley", + "Aubrey", + "Audrey", + "Autumn", + "Ava", + "Avery", + "Bailey", + "Brianna", + "Brooke", + "Brooklyn", + "Camilla", + "Caroline", + "Charlotte", + "Chloe", + "Claire", + "Destiny", + "Elizabeth", + "Ella", + "Emily", + "Emma", + "Evelyn", + "Faith", + "Gabriella", + "Gabrielle", + "Genesis", + "Gianna", + "Grace", + "Gracie", + "Hailey", + "Hannah", + "Heather", + "Hikari", + "Isabel", + "Isabella", + "Isabelle", + "Jasmine", + "Jen", + "Jennifer", + "Jessica", + "Jessie", + "Jocelyn", + "Julia", + "Kaitlin", + "Katelyn", + "Katie", + "Kayla", + "Kaylee", + "Kim", + "Kimberly", + "Kylie", + "Lauren", + "Layla", + "Leah", + "Lillian", + "Lily", + "Madeline", + "Madelyn", + "Madison", + "Makayla", + "Maria", + "Mariah", + "Mary", + "Maya", + "Megan", + "Melanie", + "Mia", + "Morgan", + "Natalie", + "Natsuki", + "Nevaeh", + "Nuku", + "Olivia", + "Paige", + "Payton", + "Rachel", + "Riley", + "Samantha", + "Sara", + "Sarah", + "Savannah", + "Sofia", + "Sophie", + "Sydney", + "Trinity", + "Valeria", + "Vanessa", + "Victoria", + "Yuki", + "Zoe", + "Zoey" + ] + }, + { + "usage": "given", + "gender": "male", + "name": [ + "Aaron", + "Adam", + "Adrian", + "Aidan", + "Aiden", + "Alex", + "Alexander", + "Andrew", + "Angel", + "Anthony", + "Austin", + "Ayden", + "Benjamin", + "Blake", + "Brady", + "Brandon", + "Brayden", + "Brian", + "Brody", + "Bryan", + "Caden", + "Caleb", + "Cameron", + "Carlos", + "Carson", + "Carter", + "Charles", + "Chase", + "Christian", + "Christopher", + "Cole", + "Colton", + "Connor", + "Cooper", + "Daisuki", + "Daniel", + "David", + "Diego", + "Dominic", + "Dylan", + "Eben", + "Eli", + "Elijah", + "Eric", + "Ethan", + "Evan", + "Gabriel", + "Gavin", + "Gendo", + "Hayden", + "Henry", + "Hunter", + "Ian", + "Isaac", + "Isaiah", + "Jack", + "Jackson", + "Jacob", + "Jaden", + "James", + "Jason", + "Jayden", + "Jeremiah", + "Jesus", + "John", + "Jonathan", + "Jordan", + "Jose", + "Joseph", + "Joshua", + "Josiah", + "Juan", + "Julian", + "Justin", + "Kaden", + "Keita", + "Kevin", + "Kira", + "Kyosuki", + "Landon", + "Liam", + "Logan", + "Lucas", + "Luis", + "Luke", + "Mason", + "Matthew", + "Michael", + "Nathan", + "Nathaniel", + "Nicholas", + "Noah", + "Owen", + "Robert", + "Ryan", + "Sabastian", + "Samuel", + "Sean", + "Takeuchi", + "Thomas", + "Tristan", + "Tyler", + "William", + "Wyatt", + "Xavier", + "Zachary", + "凱爾" + ] + } ] diff --git a/data/xdg/cataclysm-dda.desktop b/data/xdg/cataclysm-dda.desktop index 843c2e3f87b5c..b73e4b4e9bc8b 100644 --- a/data/xdg/cataclysm-dda.desktop +++ b/data/xdg/cataclysm-dda.desktop @@ -1,10 +1,10 @@ [Desktop Entry] Name=Cataclysm: Dark Days Ahead -GenericName=Post-apocalyptic roguelike +GenericName=Post-apocalyptic survivial game Comment=A turn-based survival game set in a post-apocalyptic world. Icon=cataclysm-dda Type=Application Exec=cataclysm-tiles Categories=Game;RolePlaying; -Keywords=zombie;rogue;roguelike;tiles;dda;cdda; +Keywords=zombie;survival;game;tiles;dda;cdda; Terminal=false diff --git a/doc/DEVELOPER_TOOLING.md b/doc/DEVELOPER_TOOLING.md index bd4d001395204..d7d86864be1e3 100644 --- a/doc/DEVELOPER_TOOLING.md +++ b/doc/DEVELOPER_TOOLING.md @@ -1,3 +1,18 @@ +## Pre-commit hook + +If you have all the relevant tools installed, you can have git automatically +check the style of code and json by adding these commands to your git +pre-commit hook (typically at `.git/hooks/pre-commit`): + +```BASH +git diff --cached --name-only -z HEAD | grep -z 'data/.*\.json' | \ + xargs -r -0 -L 1 ./tools/format/json_formatter.[ce]* || exit 1 + +make astyle-check || exit 1 +``` + +More details below on how to make these work and other ways to invoke these tools. + ## Code style (astyle) Automatic formatting of source code is performed by [Artistic Style](http://astyle.sourceforge.net/). diff --git a/doc/GAME_BALANCE.md b/doc/GAME_BALANCE.md index 87dd52a04259e..750b7241dc107 100644 --- a/doc/GAME_BALANCE.md +++ b/doc/GAME_BALANCE.md @@ -62,7 +62,7 @@ Grip is a measure of how well you can control the weapon to quickly respond to s +0 - Any object that doesn't fall into one of the categories below. Examples include 2x4s, computer monitors, wires, stingers and clothing. Basically, anything that has a grippable component, but which is too thick, too thin, or too flimsy to grab comfortably in a way that can reliably control the object. -+1 - A weapon with a fairly solid grip, like a pipe, a rock, guitar neck, pool cue or a heavy stick. ++1 - A weapon with a fairly solid grip, like a pipe, a rock, guitar neck, or pool cue. +2 - A weapon with a dedicated grip shaped to the hand, like a sword, axe, knife, or police baton, or that is strapped to the body (or is a piece of the body). Fists would get a +2 bonus here, bringing them to "0" total, since none of the others would apply. @@ -171,23 +171,6 @@ Increases proportional to capacity and should have a comparable ratio to similar ### Volume Scaled based upon the capacity relative to the `stack_size` of the ammo. For example 223 has a `stack size` of 20 so for 10 and 30 round magazines the volume would be 1 and 2. Extended magazine should always have larger volume than the standard type and for very large drum magazines consider applying an extra penalty. By default most handgun magazines should be volume 1 and most rifle magazines volume 2. Ammo belts should not specify volume as this will be determined from their length. -### Reliability -Should be specified first considering the below and then scaled against any equivalent magazines. For example if an extended version of a magazine exists place it one rank below the standard capacity version. Damaged guns or magazines will further adversely affect reliability. - -10 - **Perfectly reliable**. Factory specification or milspec only. Never extended magazines. Very rare. - -9 - **Reliable**. Failures only in burst fire. Factory or milspec magazines only. Never extended magazines. Uncommon. - -8 - **Dependable**. Failures infrequently in any fire mode. Highest reliability possible for extended magazines and those crafted using gunsmithing tools. Most common. - -7 - **Serviceable**. Fail infrequently in semi-automatic, more frequently in burst. Includes many extended and aftermarket gunsmithing tools. Common. - -6 - **Acceptable**. Failures can be problematic. Highest reliability possible for magazines crafted **without** gunsmithing tools. Includes most ammo belts. - -5 - **Usable**. Failures can be problematic and more serious. Mostly poor quality hand-crafted magazines. - -<4 - **Poor**. Significant risk of catastrophic failure. Not applied by default to any item but can be acquired by damage or other factors. - ### Rarity Overall balance is that pistol magazines are twice as common as rifle magazines and that for guns that spawn with magazines these are always the standard capacity versions. Consider 9x19mm and .223 to be the defaults with everything else more rare. Some locations have more specific balance requirements: diff --git a/doc/JSON_FLAGS.md b/doc/JSON_FLAGS.md index f27a6d21bdb8c..0b1a550986d6d 100644 --- a/doc/JSON_FLAGS.md +++ b/doc/JSON_FLAGS.md @@ -310,7 +310,7 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite - ```ARROW_FLAMABLE``` Light your arrow and let fly. - ```BELL``` Ring the bell. - ```BOLTCUTTERS``` Use your town key to gain access anywhere. -- ```BREAK_STICK``` Breaks long stick into two. +- ```BREAK_STICK``` Breaks long branch 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. @@ -364,6 +364,7 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite - ```NONE``` Do nothing. - ```PACK_CBM``` Put CBM in special autoclave pouch so that they stay sterile once sterilized. - ```PHEROMONE``` Makes zombies ignore you. +- ```PICK_LOCK``` Pick a lock on a door. Speed and success chance are determined by skill, 'LOCKPICK' item quality and 'PERFECT_LOCKPICK' item flag - ```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. @@ -683,6 +684,7 @@ List of known flags, used in both `terrain.json` and `furniture.json`. - ```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". +- ```PERFECT_LOCKPICK``` ... Item is a perfect lockpick. Takes only 5 seconds to pick a lock and never fails, but using it grants only a small amount of lock picking xp. The item should have "LOCKPICK" quality of at least 1. - ```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. @@ -1233,6 +1235,7 @@ These branches are also the valid entries for the categories of `dreams` in `dre - ```FIRE_START``` Player starts the game with fire nearby. - ```HELI_CRASH``` Player starts the game with various limbs wounds. - ```INFECTED``` Player starts the game infected. +- ```FUNGAL_INFECTION``` Player starts the game with fungal infection. - ```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. @@ -1427,6 +1430,7 @@ Those flags are added by the game code to specific items (that specific welder, - ```SECURITY``` - ```SHARP``` Striking a monster with this part does cutting damage instead of bashing damage, and prevents stunning the monster. - ```SIMPLE_PART``` This part can be installed or removed from that otherwise prevent modification. +- ```SMASH_REMOVE``` When you remove this part, instead of getting the item back, you will get the bash results. - ```SOLAR_PANEL``` Recharges vehicle batteries when exposed to sunlight. Has a 1 in 4 chance of being broken on car generation. - ```SPACE_HEATER``` There is separate command to toggle this part. - ```STABLE``` Similar to `WHEEL`, but if the vehicle is only a 1x1 section, this single wheel counts as enough wheels. diff --git a/doc/JSON_INFO.md b/doc/JSON_INFO.md index 5ba7140a70e7b..cb20358d7b087 100644 --- a/doc/JSON_INFO.md +++ b/doc/JSON_INFO.md @@ -45,11 +45,12 @@ Use the `Home` key to return to the top. + [Recipes](#recipes) + [Constructions](#constructions) + [Scent Types](#scent_types) - + [Scores and Achievements](#scores-and-achievements) + + [Scores, Achievements, and Conducts](#scores-achievements-and-conducts) - [`event_transformation`](#event_transformation) - [`event_statistic`](#event_statistic) - [`score`](#score) - [`achievement`](#achievement) + - [`conduct`](#conduct) + [Skills](#skills) + [Traits/Mutations](#traits-mutations) + [Vehicle Groups](#vehicle-groups) @@ -190,6 +191,7 @@ Here's a quick summary of what each of the JSON files contain, broken down by fo | bionics.json | bionics, does NOT include bionic effects | body_parts.json | an expansion of anatomy.json - do not edit | clothing_mods.json | definition of clothing mods +| conducts.json | conducts | construction.json | definition of construction menu tasks | default_blacklist.json | a standard blacklist of joke monsters | doll_speech.json | talk doll speech messages @@ -512,7 +514,7 @@ This section describes each json file and their contents. Each json has their ow "stat_bonus": [ [ "INT", 2 ], [ "STR", 2 ] ], "fuel_options": [ "battery" ], "fuel_capacity": 500, - "encumbrance" : [ [ "TORSO", 10 ], [ "ARM_L", 10 ], [ "ARM_R", 10 ], [ "LEG_L", 10 ], [ "LEG_R", 10 ], [ "FOOT_L", 10 ], [ "FOOT_R", 10 ] ], + "encumbrance" : [ [ "torso", 10 ], [ "arm_l", 10 ], [ "arm_r", 10 ], [ "leg_l", 10 ], [ "leg_r", 10 ], [ "foot_l", 10 ], [ "foot_r", 10 ] ], "description" : "You have a battery draining attachment, and thus can make use of the energy contained in normal, everyday batteries. Use 'E' to consume batteries.", "canceled_mutations": ["HYPEROPIC"], "installation_requirement": "sewing_standard", @@ -523,7 +525,7 @@ This section describes each json file and their contents. Each json has their ow "type": "bionic", "name": "Air Filtration System", "description": "Surgically implanted in your trachea is an advanced filtration system. If toxins, or airborne diseases find their way into your windpipe, the filter will attempt to remove them.", - "occupied_bodyparts": [ [ "TORSO", 4 ], [ "MOUTH", 2 ] ], + "occupied_bodyparts": [ [ "torso", 4 ], [ "mouth", 2 ] ], "env_protec": [ [ "mouth", 7 ] ], "bash_protec": [ [ "leg_l", 3 ], [ "leg_r", 3 ] ], "cut_protec": [ [ "leg_l", 3 ], [ "leg_r", 3 ] ], @@ -713,6 +715,7 @@ There are six -resist parameters: acid, bash, chip, cut, elec, and fire. These a | `conditions` | Conditions limit when monsters spawn. Valid options: `SUMMER`, `WINTER`, `AUTUMN`, `SPRING`, `DAY`, `NIGHT`, `DUSK`, `DAWN`. Multiple Time-of-day conditions (`DAY`, `NIGHT`, `DUSK`, `DAWN`) will be combined together so that any of those conditions makes the spawn valid. Multiple Season conditions (`SUMMER`, `WINTER`, `AUTUMN`, `SPRING`) will be combined together so that any of those conditions makes the spawn valid. | `starts` | (_optional_) This entry becomes active after this time. (Measured in hours) | `ends` | (_optional_) This entry becomes inactive after this time. (Measured in hours) +| `spawn_data` | (_optional_) Any properties that the monster only has when spawned in this group. `ammo` defines how much of which ammo types the monster spawns with. ```C++ { @@ -964,7 +967,7 @@ player will start with this as a nearby vehicle. A list of flags. TODO: document those flags here. -- ```NO_BONUS_ITEMS``` Prevent bonus items (such as inhalers with the ASTHMA trait) from being given to this profession +- ```NO_BONUS_ITEMS``` Prevent bonus items (such as inhalers with the ASTHMA trait) from being given to this profession Mods can modify this via `add:flags` and `remove:flags`. @@ -1105,7 +1108,7 @@ request](https://github.com/CleverRaven/Cataclysm-DDA/pull/36657) and the } ``` -### Scores and Achievements +### Scores, Achievements, and Conducts Scores are defined in two or three steps based on *events*. To see what events exist and what data they contain, read [`event.h`](../src/event.h). @@ -1189,15 +1192,24 @@ Here are examples of each modification: "value_constraints" : { // A dictionary of constraints // Each key is the field to which the constraint applies // The value specifies the constraint. - // "equals" can be used to specify a constant string value the field must take. + // "equals" can be used to specify a constant cata_variant value the field must take. // "equals_statistic" specifies that the value must match the value of some statistic (see below) - "mount" : { "equals": "mon_horse" } + "mount" : { "equals": [ "mtype_id", "mon_horse" ] } } // Since we are filtering to only those events where 'mount' is 'mon_horse', we // might as well drop the 'mount' field, since it provides no useful information. "drop_fields" : [ "mount" ] ``` +The parameter to `"equals"` is normally a length-two array specifying a +`cata_variant_type` and a value. As a short cut, you can simply specify an +`int` or `bool` (e.g. `"equals": 7` or `"equals": true`) for fields which have +those types. + +Value constraints are type-checked, so you should see an error message at game +data verification time if the variant type you have specified doesn't match the +type of the field you're matching. + #### `event_statistic` As with `event_transformation`, an `event_statistic` requires an input event @@ -1242,6 +1254,18 @@ given field for that unique event: "field": "avatar_id" ``` +The value of the given field for the first event in the input stream: +```C++ +"stat_type": "first_value", +"field": "avatar_id" +``` + +The value of the given field for the last event in the input stream: +```C++ +"stat_type": "last_value", +"field": "avatar_id" +``` + Regardless of `stat_type`, each `event_statistic` can also have: ```C++ // Intended for use in describing scores and achievement requirements. @@ -1294,7 +1318,18 @@ an `event_statistic`. For example: The `"is"` field must be `">="`, `"<="` or `"anything"`. When it is not `"anything"` the `"target"` must be present, and must be an integer. -There are further optional fields: +Additional optional fields for each entry in `requirements` are: + +* `"visible"`, which can take the values `"always"`, + `"when_requirement_completed"`, `"when_achievement_completed"`, or `"never"` + to dictate when a requirement is visible. Non-visible requirements will be + hidden in the UI. +* `"description"` will override the default description of the requirement, for + cases where the default is not suitable. The default takes the form `x/y + foo` where `x` is the current statistic value, `y` is the target value, and + `foo` is the statistic description (if any). + +There are further optional fields for the `achievement`: ```C++ "hidden_by": [ "other_achievement_id" ] @@ -1306,6 +1341,9 @@ been completed. Use this to prevent spoilers or to reduce clutter in the list of achievements. +If you want an achievement to be hidden until completed, then mark it as +`hidden_by` its own id. + ```C++ "time_constraint": { "since": "game_start", "is": "<=", "target": "1 minute" } ``` @@ -1335,6 +1373,26 @@ add an `"anything"` constraint on it. For example: This is a simple "survive a day" but is triggered by waking up, so it will be completed when you wake up for the first time after 24 hours into the game. +#### `conduct` + +A conduct is a self-imposed constraint that players can choose to aspire to +maintain. In some ways a conduct is the opposite of an achievement: it +specifies a set of conditions which can be true at the start of a game, but +might cease to be true at some point. + +The implementation of conducts shares a lot with achievements, and their +specification in JSON uses all the same fields. Simply change the `"type"` +from `"achievement"` to `"conduct"`. + +The game enforces that any requirements you specify for a conduct must "become +false" in the sense that once they are false, they can never become true again. +So, for example, an upper bound on some monotonically increasing statistic is +acceptable, but you cannot use a constraint on a statistic which might go down +and up arbitrarily. + +With a good motivating example, this constraint might be weakened, but for now +it is present to help catch errors. + ### Skills ```C++ @@ -1380,29 +1438,29 @@ completed when you wake up for the first time after 24 hours into the game. "per_mod" : 1, //Possible values per_mod, str_mod, dex_mod, int_mod "str_mod" : 2 }, -"wet_protection":[{ "part": "HEAD", // Wet Protection on specific bodyparts +"wet_protection":[{ "part": "head", // Wet Protection on specific bodyparts "good": 1 } ] // "neutral/good/ignored" // Good increases pos and cancels neg, neut cancels neg, ignored cancels both "vitamin_rates": [ [ "vitC", -1200 ] ], // How much extra vitamins do you consume per minute. Negative values mean production "vitamins_absorb_multi": [ [ "flesh", [ [ "vitA", 0 ], [ "vitB", 0 ], [ "vitC", 0 ], [ "calcium", 0 ], [ "iron", 0 ] ], [ "all", [ [ "vitA", 2 ], [ "vitB", 2 ], [ "vitC", 2 ], [ "calcium", 2 ], [ "iron", 2 ] ] ] ], // multiplier of vitamin absorption based on material. "all" is every material. supports multiple materials. "craft_skill_bonus": [ [ "electronics", -2 ], [ "tailor", -2 ], [ "mechanics", -2 ] ], // Skill affected by the mutation and their bonuses. Bonuses can be negative, a bonus of 4 is worth 1 full skill level. -"restricts_gear" : [ "TORSO" ], //list of bodyparts that get restricted by this mutation +"restricts_gear" : [ "torso" ], //list of bodyparts that get restricted by this mutation "allow_soft_gear" : true, //If there is a list of 'restricts_gear' this sets if the location still allows items made out of soft materials (Only one of the types need to be soft for it to be considered soft). (default: false) "destroys_gear" : true, //If true, destroys the gear in the 'restricts_gear' location when mutated into. (default: false) "encumbrance_always" : [ // Adds this much encumbrance to selected body parts - [ "ARM_L", 20 ], - [ "ARM_R", 20 ] + [ "arm_l", 20 ], + [ "arm_r", 20 ] ], "encumbrance_covered" : [ // Adds this much encumbrance to selected body parts, but only if the part is covered by not-OVERSIZE worn equipment - [ "HAND_L", 50 ], - [ "HAND_R", 50 ] + [ "hand_l", 50 ], + [ "hand_r", 50 ] ], "armor" : [ // Protects selected body parts this much. Resistances use syntax like `PART RESISTANCE` below. [ - [ "ALL" ], // Shorthand that applies the selected resistance to the entire body + [ "head" ], { "bash" : 2 } // The resistance provided to the body part(s) selected above ], [ // NOTE: Resistances are applies in order and ZEROED between applications! - [ "ARM_L", "ARM_R" ], // Overrides the above settings for those body parts + [ "arm_l", "arm_r" ], // Overrides the above settings for those body parts { "bash" : 1 } // ...and gives them those resistances instead ] ], @@ -1429,8 +1487,8 @@ completed when you wake up for the first time after 24 hours into the game. "can_only_heal_with": [ "bandage" ], // List of med you are restricted to, this includes mutagen,serum,aspirin,bandages etc... (default: empty) "can_heal_with": [ "caramel_ointement" ], // List of med that will work for you but not for anyone. See `CANT_HEAL_EVERYONE` flag for items. (default: empty) "allowed_category": [ "ALPHA" ], // List of category you can mutate into. (default: empty) -"no_cbm_on_bp": [ "TORSO", "HEAD", "EYES", "MOUTH", "ARM_L" ], // List of body parts that can't receive cbms. (default: empty) -"lumination": [ [ "HEAD", 20 ], [ "ARM_L", 10 ] ], // List of glowing bodypart and the intensity of the glow as a float. (default: empty) +"no_cbm_on_bp": [ "torso", "head", "eyes", "mouth", "arm_l" ], // List of body parts that can't receive cbms. (default: empty) +"lumination": [ [ "head", 20 ], [ "arm_l", 10 ] ], // List of glowing bodypart and the intensity of the glow as a float. (default: empty) "metabolism_modifier": 0.333, // Extra metabolism rate multiplier. 1.0 doubles usage, -0.5 halves. "fatigue_modifier": 0.5, // Extra fatigue rate multiplier. 1.0 doubles usage, -0.5 halves. "fatigue_regen_modifier": 0.333, // Modifier for the rate at which fatigue and sleep deprivation drops when resting. @@ -1664,7 +1722,6 @@ See also VEHICLE_JSON.md "capacity" : 15, // Capacity of magazine (in equivalent units to ammo charges) "count" : 0, // Default amount of ammo contained by a magazine (set this for ammo belts) "default_ammo": "556", // If specified override the default ammo (optionally set this for ammo belts) -"reliability" : 8, // How reliable this this magazine on a range of 0 to 10? (see GAME_BALANCE.md) "reload_time" : 100, // How long it takes to load each unit of ammo into the magazine "linkage" : "ammolink" // If set one linkage (of given type) is dropped for each unit of ammo consumed (set for disintegrating ammo belts) ``` @@ -1883,23 +1940,26 @@ Any Item can be a container. To add the ability to contain things to an item, yo ```C++ "pocket_data": [ { - "pocket_type": "CONTAINER", // The typical container pocket. Pockets can also be MAGAZINE. - "min_item_volume": "0 ml", // The minimum volume of item that can be placed into this pocket. For reference, 1 ml is a small grain of uncooked rice, and 16 ml is a 6 sided die from a game like monopoly or yahtzee. - "max_contains_volume": mandatory, // the maximum volume this pocket can hold, totaled among all contained items - "max_contains_weight": mandatory, // The maximum weight this pocket can hold, totaled among all container items. For reference, a bowling ball is about 6 kg. - "ammo_restriction": { "ammotype": count }, // this overrides the three previous values to be an ammotype and count instead. you can contain any number of unique ammotypes each with different counts, and the container will only hold one type (as of now.) if this is left out, it will be empty. - "spoil_multiplier": 1.0, // how putting an item in this pocket affects spoilage. less than 1.0 and the item will be preserved longer. - "weight_multiplier": 1.0, // The items in this pocket magically weigh less inside than outside. Nothing in vanilla should have a weight_multiplies. - "magazine_well": "0 ml", // only works if rigid = false, this is the amount of space you can put items in the pocket before it starts expanding - "moves": 100, // Indicates the number of moves it takes to remove an item from this pocket, assuming best conditions. - "fire_protection": false, // If the pocket protects the contained items from exploding in a fire or not. This is for protecting ammo from exploding if the container is tossed into a fire. - "watertight": false, // can contain liquid - "gastight": false, // can contain gas - "open_container": false, // Default is false. If true, the contents of this pocket will spill if this item is placed into another item. - "flag_restriction": [ "FLAG1", "FLAG2" ], // items can only be placed into this pocket if they have a flag that matches one of these flags. - "rigid": false, // Default is false. If false, this pocket's contents contribute to this item's size. If true, they do not. Think glass jar vs plastic bag: a plastic bag containing nothing takes up almost no space, whereas a glass jar containing nothing takes up as much space as a completely full glass jar. The property magazine_well only works if rigid is false. - "holster": false, // if this value is set to true, only one stack of items can be placed inside this pocket, or one item if that item is not count_by_charges. - "sealed_data": { "spoil_multiplier": 0.0 } // have anything in sealed_data means the pocket cannot be resealed. Additionally, the sealed version of the pocket will override the unsealed version of the same datatype. + "pocket_type": "CONTAINER", // Typical container pocket. Pockets can also be MAGAZINE. + "max_contains_volume": mandatory, // Maximum volume this pocket can hold, totaled among all contained items. For example "2 L" or "2000 ml" would hold two liters of items. + "max_contains_weight": mandatory, // Maximum weight this pocket can hold, totaled among all container items. For example "6 kg" is about enough to contain a bowling ball. + "min_item_volume": "0 ml", // Minimum volume of item that can be placed into this pocket. Items smaller than this cannot be placed in the pocket. + "max_item_volume": "0 ml", // Maximum volume of item that can fit through the opening into this pocket. For example, a 2-liter bottle has a "17 ml" opening. + "max_item_length": "0 mm", // Maximum length of items that can fit in this pocket, by their longest_side. Default is the diagonal opening length assuming volume is a cube (cube_root(vol)*square_root(2)) + "spoil_multiplier": 1.0, // How putting an item in this pocket affects spoilage. Less than 1.0 and the item will be preserved longer; 0.0 will preserve indefinitely. + "weight_multiplier": 1.0, // The items in this pocket magically weigh less inside than outside. Nothing in vanilla should have a weight_multiplier. + "moves": 100, // Indicates the number of moves it takes to remove an item from this pocket, assuming best conditions. + "rigid": false, // Default false. If true, this pocket's size is fixed, and does not expand when filled. A glass jar would be rigid, while a plastic bag is not. + "magazine_well": "0 ml", // Amount of space you can put items in the pocket before it starts expanding. Only works if rigid = false. + "watertight": false, // Default false. If true, can contain liquid. + "airtight": false, // Default false. If true, can contain gas. + "holster": false, // Default false. If true, only one stack of items can be placed inside this pocket, or one item if that item is not count_by_charges. + "open_container": false, // Default false. If true, the contents of this pocket will spill if this item is placed into another item. + "fire_protection": false, // Default false. If true, the pocket protects the contained items from exploding if tossed into a fire. + "ammo_restriction": { "ammotype": count }, // Restrict pocket to a given ammo type and count. This overrides mandatory volume and weight to use the given ammo type instead. A pocket can contain any number of unique ammotypes each with different counts, and the container will only hold one type (as of now). If this is left out, it will be empty. + "flag_restriction": [ "FLAG1", "FLAG2" ], // Items can only be placed into this pocket if they have a flag that matches one of these flags. + + "sealed_data": { "spoil_multiplier": 0.0 } // Having anything in sealed_data means the pocket cannot be resealed. The sealed version of the pocket will override the unsealed version of the same datatype. } ] ``` @@ -2018,9 +2078,9 @@ Alternately, every item (book, tool, armor, even food) can be used as a gunmod i "name": "torch (lit)", // In-game name displayed "description": "A large stick, wrapped in gasoline soaked rags. This is burning, producing plenty of light", // In-game description "price": 0, // Used when bartering with NPCs. Can use string "cent" "USD" or "kUSD". -"material": "wood", // Material types. See materials.json for possible options -"techniques": "FLAMING", // Combat techniques used by this tool -"flags": "FIRE", // Indicates special effects +"material": [ "wood" ], // Material types. See materials.json for possible options +"techniques": [ "FLAMING" ], // Combat techniques used by this tool +"flags": [ "FIRE" ], // Indicates special effects "weight": 831, // Weight, measured in grams "volume": "1500 ml", // Volume, volume in ml and L can be used - "50 ml" or "2 L" "bashing": 12, // Bashing damage caused by using it as a melee weapon @@ -2294,7 +2354,7 @@ The contents of use_action fields can either be a string indicating a built-in f "type" : "consume_drug", // A drug the player can consume. "activation_message" : "You smoke your crack rocks. Mother would be proud.", // Message, ayup. "effects" : { "high": 15 }, // Effects and their duration. - "damage_over_time": [ + "damage_over_time": [ { "damage_type": "true", // Type of damage "duration": "1 m", // For how long this damage will be applied @@ -2315,8 +2375,7 @@ The contents of use_action fields can either be a string indicating a built-in f "hostile_msg": "It's hostile!", // (optional) message when programming the monster failed and it's hostile. "friendly_msg": "Good!", // (optional) message when the monster is programmed properly and it's friendly. "place_randomly": true, // if true: places the monster randomly around the player, if false: let the player decide where to put it (default: false) - "skill1": "throw", // Id of a skill, higher skill level means more likely to place a friendly monster. - "skill2": "unarmed", // Another id, just like the skill1. Both entries are optional. + "skills": [ "unarmed", "throw" ], // (optional) array of skill IDs. Higher skill level means more likely to place a friendly monster. "moves": 60 // how many move points the action takes. }, "use_action": { @@ -2337,10 +2396,6 @@ The contents of use_action fields can either be a string indicating a built-in f "transform_age" : 600, // The minimal age of the item. Items that are younger wont transform. In turns (60 turns = 1 minute) "not_ready_msg" : "The yeast has not been done The yeast isn't done culturing yet." // A message, shown when the item is not old enough }, -"use_action": { - "type": "picklock", // picking a lock on a door - "pick_quality": 3 // "quality" of the tool, higher values mean higher success chance, and using it takes less moves. -}, "use_action": { "type": "firestarter", // Start a fire, like with a lighter. "moves_cost": 15 // Number of moves it takes to start the fire. @@ -3321,6 +3376,10 @@ Setting of sprite sheets. Same as `tiles-new` field in `tile_config`. Sprite fil "type": "field_type", // this is a field type "id": "fd_gum_web", // id of the field "immune_mtypes": [ "mon_spider_gum" ], // list of monster immune to this field + "intensity_levels": [ + { "name": "shadow", // name of this level of intensity + "light_override": 3.7 } //light level on the tile occupied by this field will be set at 3.7 not matter the ambient light. + ], "bash": { "str_min": 1, // lower bracket of bashing damage required to bash "str_max": 3, // higher bracket diff --git a/doc/MAGIC.md b/doc/MAGIC.md index 5369e94bdf368..8302d13c743d8 100644 --- a/doc/MAGIC.md +++ b/doc/MAGIC.md @@ -13,10 +13,11 @@ In `data/mods/Magiclysm` there is a template spell, copied here for your perusal "description": "This is a template to show off all the available values", "valid_targets": [ "hostile", "ground", "self", "ally" ], // if a valid target is not included, you cannot cast the spell on that target. "effect": "shallow_pit", // effects are coded in C++. A list will be provided below of possible effects that have been coded. - "effect_str": "template" // special. see below + "effect_str": "template", // special. see below "extra_effects": [ { "id": "fireball", "hit_self": false, "max_level": 3 } ], // this allows you to cast multiple spells with only one spell "affected_body_parts": [ "HEAD", "TORSO", "MOUTH", "EYES", "ARM_L", "ARM_R", "HAND_R", "HAND_L", "LEG_L", "FOOT_L", "FOOT_R" ], // body parts affected by effects - "spell_class": "NONE" // + "flags": [ "SILENT", "LOUD", "SOMATIC", "VERBAL", "NO_HANDS", "NO_LEGS", "SPAWN_GROUP" ], // see "Spell Flags" below + "spell_class": "NONE", // "base_casting_time": 100, // this is the casting time (in moves) "base_energy_cost": 10, // the amount of energy (of the requisite type) to cast the spell "energy_source": "MANA", // the type of energy used to cast the spell. types are: MANA, BIONIC, HP, STAMINA, FATIGUE, NONE (none will not use mana) @@ -100,6 +101,7 @@ Below is a table of currently implemented effects, along with special rules for | `cone_attack` | fires a cone toward the target up to your range. The arc of the cone in degrees is aoe. Stops at walls. If "effect_str" is included, it will add that effect (defined elsewhere in json) to the targets if able, to the body parts defined in affected_body_parts. | `line_attack` | fires a line with width aoe toward the target, being blocked by walls on the way. If "effect_str" is included, it will add that effect (defined elsewhere in json) to the targets if able, to the body parts defined in affected_body_parts. | `spawn_item` | spawns an item that will disappear at the end of its duration. Default duration is 0. +| `summon` | summons a monster ID or group ID from `effect_str` that will disappear at the end of its duration. Default duration is 0. | `teleport_random` | teleports the player randomly range spaces with aoe variation | `recover_energy` | recovers an energy source equal to damage of the spell. The energy source recovered is defined in "effect_str" and may be one of "MANA", "STAMINA", "FATIGUE", "PAIN", "BIONIC" | `ter_transform` | transform the terrain and furniture in an area centered at the target. The chance of any one of the points in the area of effect changing is one_in( damage ). The effect_str is the id of a ter_furn_transform. @@ -113,8 +115,47 @@ Below is a table of currently implemented effects, along with special rules for | `charm_monster` | charms a monster that has less hp than damage() for approximately duration() | `mutate` | mutates the target(s). if effect_str is defined, mutates toward that category instead of picking at random. the "MUTATE_TRAIT" flag allows effect_str to be a specific trait instead of a category. damage() / 100 is the percent chance the mutation will be successful (a value of 10000 represents 100.00%) | `bash` | bashes the terrain at the target. uses damage() as the strength of the bash. -| `WONDER` | Unlike the above, this is not an "effect" but a "flag". This alters the behavior of the parent spell drastically: The spell itself doesn't cast, but its damage and range information is used in order to cast the extra_effects. N of the extra_effects will be chosen at random to be cast, where N is the current damage of the spell (stacks with RANDOM_DAMAGE flag) and the message of the spell cast by this spell will also be displayed. If this spell's message is not wanted to be displayed, make sure the message is an empty string. -| `RANDOM_TARGET` | A special spell flag (like wonder) that forces the spell to choose a random valid target within range instead of the caster choosing the target. This also affects extra_effects. + +### Spell Flags + +Flags allow you to provide additional customizations for spell effects, behavior, and limitations. +Spells may have any number of flags, for example: + +```json + { + "id": "bless", + "//": "Encumbrance on the mouth (verbal) or arms (somatic) affect casting success, but not legs.", + "flags": [ "VERBAL", "SOMATIC", "NO_LEGS" ] + } +``` + +| Flag | Description +| --- | --- +| `WONDER` | This alters the behavior of the parent spell drastically: The spell itself doesn't cast, but its damage and range information is used in order to cast the extra_effects. N of the extra_effects will be chosen at random to be cast, where N is the current damage of the spell (stacks with RANDOM_DAMAGE flag) and the message of the spell cast by this spell will also be displayed. If this spell's message is not wanted to be displayed, make sure the message is an empty string. +| `RANDOM_TARGET` | Forces the spell to choose a random valid target within range instead of the caster choosing the target. This also affects extra_effects. +| `RANDOM_DURATION` | picks random number between min+increment*level and max instead of normal behavior +| `RANDOM_DAMAGE` | picks random number between min+increment*level and max instead of normal behavior +| `RANDOM_AOE` | picks random number between min+increment*level and max instead of normal behavior +| `PERMANENT` | items or creatures spawned with this spell do not disappear and die as normal +| `IGNORE_WALLS` | spell's aoe goes through walls +| `SWAP_POS` | a projectile spell swaps the positions of the caster and target +| `HOSTILE_SUMMON` | summon spell always spawns a hostile monster +| `HOSTILE_50` | summoned monster spawns friendly 50% of the time +| `SILENT` | spell makes no noise at target +| `LOUD` | spell makes extra noise at target +| `VERBAL` | spell makes noise at caster location, mouth encumbrance affects fail % +| `SOMATIC` | arm encumbrance affects fail % and casting time (slightly) +| `NO_HANDS` | hands do not affect spell energy cost +| `NO_LEGS` | legs do not affect casting time +| `CONCENTRATE` | focus affects spell fail % +| `MUTATE_TRAIT` | overrides the mutate spell_effect to use a specific trait_id instead of a category +| `PAIN_NORESIST` | pain altering spells can't be resisted (like with the deadened trait) +| `WITH_CONTAINER` | items spawned with container +| `UNSAFE_TELEPORT` | teleport spell risks killing the caster or others +| `SPAWN_GROUP` | spawn or summon from an item or monster group, instead of individual item/monster ID + + +### Damage Types For Spells that have an attack type, these are the available damage types: diff --git a/doc/MAPGEN.md b/doc/MAPGEN.md index 083ee339c0e51..33c92d96bb4d4 100644 --- a/doc/MAPGEN.md +++ b/doc/MAPGEN.md @@ -565,12 +565,12 @@ the monster at coordinate (10, 10) and also sets the monster as the target of th Example: ```json "place_monster": [ - { "monster": "mon_secubot", "x": [ 7, 18 ], "y": [ 7, 18 ], "chance": 30, "repeat": [1, 3] } + { "monster": "mon_secubot", "x": [ 7, 18 ], "y": [ 7, 18 ], "chance": 30, "repeat": [1, 3], "spawn_data": { "ammo": [ { "ammo_id": "556", "qty": [ 20, 30 ] } ] } } ] ``` This places "mon_secubot" at random coordinate (7-18, 7-18). The monster is placed with 30% probablity. The placement is -repeated by random number of times `[1-3]`. +repeated by random number of times `[1-3]`. The monster will spawn with 20-30 5.56x45mm rounds. ## Spawn specific items with a "place_item" array diff --git a/doc/MODDING.md b/doc/MODDING.md index 5c4c92abcfba0..12f4312c6519f 100644 --- a/doc/MODDING.md +++ b/doc/MODDING.md @@ -214,6 +214,12 @@ In game, that appears like this: Many editors have features that let you track `{ [` and `] }` to see if they're balanced (ie, have a matching opposite); These editors will also respect escaped characters properly. [Notepad++](https://notepad-plus-plus.org/) is a popular, free editor on Windows that contains this feature. On Linux, there are a plethora of options, and you probably already have a preferred one 🙂 +### That which cannot be modded + +Almost everything in this game can be modded. Almost. This section is intended to chart those areas not supported for modding to save time and headaches. + +The Names folder and contents (EN etcetera) confirmed 5/23/20 + ## Addendum ### No Zombie Revival diff --git a/doc/MOVE_MODE.md b/doc/MOVE_MODE.md new file mode 100644 index 0000000000000..43c138237c756 --- /dev/null +++ b/doc/MOVE_MODE.md @@ -0,0 +1,121 @@ +# `movement_mode` + +## definition + +```JSON +{ + "type": "movement_mode", + "id": "fly", + "character": "f", + "panel_char": "F", + "name": "Fly", + "panel_color": "light_green", + "symbol_color": "light_green", + "exertion_level": "EXTRA_EXERCISE", + "change_good_none": "You throw yourself at the ground, and miss.", + "change_good_animal": "You steer your steed into a... fly?", + "change_good_mech": "You enable your mech's jetpack unit.", + "change_bad_none": "You throw yourself at the ground, and hit.", + "change_bad_animal": "Your steed doesn't know how to fly.", + "change_bad_mech": "Your mech cannot fly.", + "move_type": "running", + "stamina_multiplier": 12.0, + "sound_multiplier": 4.0, + "move_speed_multiplier": 2.5, + "mech_power_use": 5, + "swim_speed_mod": -80, + "stop_hauling": true +}, +``` + +### `type` +Mandatory. Must be `"movement_mode"`. + +### `id` +Mandatory. The id of the movement mode. + +### `character` +Mandatory. The character shown in the move mode menu to select this mode. + +### `panel_char` +Mandatory. The character shown on the panels when this mode is selected. + +### `name` +Mandatory. The name of the move mode displayed whenever it is displayed. + +### `panel_color` +Mandatory. The color shown on the panels when this mode is selected. + +### `symbol_color` +Mandatory. The color shown in curses when your character is in this move mode. + +### `extertion_level` +Mandatory. What extertion level this move mode will put you into. The options are, from least to most exercise: +``` +NO_EXERCISE +LIGHT_EXERCISE +MODERATE_EXERCISE +ACTIVE_EXERCISE +EXTRA_EXERCISE +``` + +### `change_good_x` +Mandatory. The message given when the character switches to this move mode. +There are three values for x: `none`, `animal`, and `mech`. +- `none` is the message given when the character is not mounted. +- `animal` is the message given when riding an animal. +- `mech` is the message given when in a mech. + +### `change_bad_x` +Optional. The message given when the character fails to switch to this move mode. +Right now, the only move mode that you can fail to switch are `running` type modes. +There are three values for x: `none`, `animal`, and `mech`. +- `none` is the message given when the character is not mounted. +- `animal` is the message given when riding an animal. +- `mech` is the message given when in a mech. + +Defaults to `You feel bugs crawl over your skin.` + +### `move_type` +Mandatory. The type of move mode - used to determine if the character is in stealth, walking normally, or fleeing. +Valid values are: +- `crouching` +- `walking` +- `running` + +### `stamina_multiplier` +Optional. Multiplier on the character's stamina use when in this mode. +All non-negative floating point values are valid. + +Defaults to `1.0` (no multiplier). + +### `sound_multiplier` +Optional. Multiplier on the sound made when moving in this mode. +All non-negative floating point values are valid. + +Defaults to `1.0` (no multiplier). + +### `move_speed_multiplier` +Optional. Multiplier on the move speed when moving in this mode. +All non-negative floating point values are valid. + +Defaults to `1.0` (no multiplier). + +### `mech_power_use` +Optional. Mech power used each step when in this mode. +All integer values are valid. + +Defaults to `2`. + +### `swim_speed_mod` +Optional. How many additional moves . +All integer values are valid. + +Defaults to `0`. + +### `stop_hauling` +Optional. Determines whether or not hauling is cancelled switching to this mode. +Valid values are `true` and `false`. + +Defaults to false. + diff --git a/doc/PLAYER_ACTIVITY.md b/doc/PLAYER_ACTIVITY.md index 3ad0ec330d103..e71ed5b302a63 100644 --- a/doc/PLAYER_ACTIVITY.md +++ b/doc/PLAYER_ACTIVITY.md @@ -18,7 +18,8 @@ new activity. functions needed for the new actor as well as the required serialization functions. Don't forget to add the deserialization function of your new activity actor to the `deserialize_functions` map towards the bottom of -`activity_actor.cpp`. +`activity_actor.cpp`. Define `canceled` function if activity modifies +some complex state that should be restored upon cancellation / interruption. 4. If this activity is resumable, `override` `activity_actor::can_resume_with_internal` @@ -54,6 +55,9 @@ without moving your feet. * neither: `moves_left` will not be decremented. Thus you must define a do_turn function; otherwise the activity will never end! +* interruptable (true): Can this be interrupted. If false, then popups related +to e.g. pain or seeing monsters will be suppressed. + * no_resume (false): Rather than resuming, you must always restart the activity from scratch. @@ -87,8 +91,8 @@ There are several ways an activity can be ended: Canceling an activity prevents the `activity_actor::finish` function from running, and the activity does therefore not yield a - result. A copy of the activity is written to `Character::backlog` - if it's suspendable. + result. Instead, `activity_actor::canceled` is called. If activity is + suspendable, a copy of it is written to `Character::backlog`. ## Notes diff --git a/doc/cataclysm-tiles.6 b/doc/cataclysm-tiles.6 index ab4e8bfa1409f..60161048bf6df 100644 --- a/doc/cataclysm-tiles.6 +++ b/doc/cataclysm-tiles.6 @@ -3,7 +3,7 @@ .Os .Sh NAME .Nm cataclysm-tiles -.Nd a roguelike set in a post-apocalyptic world +.Nd a turn-based survival game set in a post-apocalyptic world .Sh SYNOPSIS .Nm .Op Fl -seed Ar seedstring @@ -28,7 +28,7 @@ .Op Fl -optionfile Ar optionfile .Op Fl -keymapfile Ar keymapfile .Sh DESCRIPTION -Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world. +Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-apocalyptic world. While some have described it as a "zombie game", there is far more to Cataclysm than that. Struggle to survive in a harsh, persistent, procedurally generated world. .sp diff --git a/doc/cataclysm.6 b/doc/cataclysm.6 index 7b4dad7080261..e95e66389fb0a 100644 --- a/doc/cataclysm.6 +++ b/doc/cataclysm.6 @@ -3,7 +3,7 @@ .Os .Sh NAME .Nm cataclysm -.Nd a roguelike set in a post-apocalyptic world +.Nd a turn-based survival game set in a post-apocalyptic world .Sh SYNOPSIS .Nm .Op Fl -seed Ar seedstring @@ -28,7 +28,7 @@ .Op Fl -optionfile Ar optionfile .Op Fl -keymapfile Ar keymapfile .Sh DESCRIPTION -Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world. +Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-apocalyptic world. While some have described it as a "zombie game", there is far more to Cataclysm than that. Struggle to survive in a harsh, persistent, procedurally generated world. .Sh OPTIONS diff --git a/doxygen_doc/doxygen_conf.txt b/doxygen_doc/doxygen_conf.txt index e08a825be1217..924ee93f1babf 100644 --- a/doxygen_doc/doxygen_conf.txt +++ b/doxygen_doc/doxygen_conf.txt @@ -243,6 +243,7 @@ ALIASES += "EFFECT_RIFLE=\xrefitem Effects_Skill_Rifle \"\" \"\" Rifle" ALIASES += "EFFECT_SHOTGUN=\xrefitem Effects_Skill_Shotgun \"\" \"\" Shotgun" ALIASES += "EFFECT_SMG=\xrefitem Effects_Skill_Smg \"\" \"\" Smg" ALIASES += "EFFECT_LOCKPICK=\xrefitem Effects_Skill_Lockpick \"\" \"\" Lock Picking" +ALIASES += "EFFECT_CHEMISTRY=\xrefitem Effects_Skill_Chemistry \"\" \"\" Chemistry" ALIASES += "EFFECT_BARTER_NPC=\xrefitem Effects_Skill_Barter \"\" \"\" NPC Barter" ALIASES += "EFFECT_COMPUTER_NPC=\xrefitem Effects_Skill_Computer \"\" \"\" NPC Computer" @@ -273,6 +274,7 @@ ALIASES += "EFFECT_RIFLE_NPC=\xrefitem Effects_Skill_Rifle \"\" \"\" NPC Rifle" ALIASES += "EFFECT_SHOTGUN_NPC=\xrefitem Effects_Skill_Shotgun \"\" \"\" NPC Shotgun" ALIASES += "EFFECT_SMG_NPC=\xrefitem Effects_Skill_Smg \"\" \"\" NPC Smg" ALIASES += "EFFECT_LOCKPICK_NPC=\xrefitem Effects_Skill_Lockpick \"\" \"\" NPC Lock Picking" +ALIASES += "EFFECT_CHEMISTRY_NPC=\xrefitem Effects_Skill_Chemistry \"\" \"\" NPC Chemistry" # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding diff --git a/doxygen_doc/pages.h b/doxygen_doc/pages.h index a61cec74b49ca..5b4c562e8cd24 100644 --- a/doxygen_doc/pages.h +++ b/doxygen_doc/pages.h @@ -152,7 +152,11 @@ * @brief Cross referenced effects of the Smg skill. * @par */ - *! @page Effects_Skill_Lockpick +/*! @page Effects_Skill_Lockpick * @brief Cross referenced effects of the Lock picking skill. * @par */ +/*! @page Effects_Skill_Chemistry + * @brief Cross referenced effects of the Chemistry skill. + * @par + */ diff --git a/gfx/BrownLikeBears/tile_config.json b/gfx/BrownLikeBears/tile_config.json index e11150143258f..bf24fad7f1883 100644 --- a/gfx/BrownLikeBears/tile_config.json +++ b/gfx/BrownLikeBears/tile_config.json @@ -259,1898 +259,1903 @@ { "id": "overlay_worn_tshirt_text", "fg": 134, "rotates": false }, { "id": "overlay_worn_turban", "fg": 100, "rotates": false }, { "id": "overlay_worn_tux", "fg": 93, "rotates": false }, - { "id": "cursor", "fg": 143 }, + { "id": "overlay_worn_boots_rubber", "fg": 143, "rotates": false }, + { "id": "overlay_worn_cape_fp", "fg": 144, "rotates": false }, + { "id": "overlay_worn_chestguard_hard", "fg": 145, "rotates": false }, + { "id": "overlay_worn_foodperson_mask", "fg": 146, "rotates": false }, + { "id": "overlay_worn_foodperson_mask_on", "fg": 147, "rotates": false }, + { "id": "overlay_worn_gloves_rubber", "fg": 148, "rotates": false }, + { "id": "overlay_worn_legguard_hard", "fg": 149, "rotates": false }, + { "id": "overlay_worn_pants_cargo", "fg": 150, "rotates": false }, + { "id": "cursor", "fg": 151 }, { "id": "explosion", - "fg": 146, + "fg": 154, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 146 }, - { "id": "corner", "fg": 144 }, - { "id": "edge", "fg": 146 }, - { "id": "t_connection", "fg": 146 }, - { "id": "end_piece", "fg": 146 }, - { "id": "unconnected", "fg": 146 } + { "id": "center", "fg": 154 }, + { "id": "corner", "fg": 152 }, + { "id": "edge", "fg": 154 }, + { "id": "t_connection", "fg": 154 }, + { "id": "end_piece", "fg": 154 }, + { "id": "unconnected", "fg": 154 } ], "rotates": false }, - { "id": "footstep", "fg": 147, "rotates": false }, - { "id": "highlight_item", "fg": 148, "rotates": false }, - { "id": "lighting_boomered_dark", "fg": 150, "rotates": false }, - { "id": "lighting_boomered_light", "fg": 149, "rotates": false }, - { "id": "lighting_hidden", "fg": 154, "rotates": false }, - { "id": "lighting_lowlight_dark", "fg": 152, "rotates": false }, - { "id": "lighting_lowlight_light", "fg": 151, "rotates": false }, - { "id": "line_target", "fg": 145 }, - { "id": "line_trail", "bg": 145 }, - { "id": "unknown", "fg": 153, "rotates": false }, - { "id": "animation_bullet_flame", "fg": 158 }, - { "id": "animation_bullet_normal", "fg": 155 }, - { "id": "animation_bullet_shrapnel", "fg": 155 }, - { "id": "animation_hit", "bg": 156 }, - { "id": "animation_line", "bg": 157 }, - { "id": "record_weather", "fg": 968, "rotates": false, "multitile": false }, - { "id": "weatherby_5", "fg": 509, "rotates": false, "multitile": false }, - { "id": "weather_acid_drop", "bg": 160 }, - { "id": "weather_rain_drop", "bg": 159 }, - { "id": "weather_reader", "fg": 939, "rotates": false, "multitile": false }, - { "id": "weather_snowflake", "bg": 161 }, - { "id": "fd_acid", "bg": 194, "rotates": false }, - { "id": "fd_acid_vent", "fg": 187, "rotates": false }, - { "id": "fd_bees", "fg": 168, "rotates": false }, - { "id": "fd_bile", "bg": 191, "rotates": false }, - { "id": "fd_blood", "bg": 190, "rotates": false }, - { "id": "fd_blood_insect", "bg": 214, "rotates": false }, - { "id": "fd_blood_invertebrate", "bg": 215, "rotates": false }, - { "id": "fd_blood_veggy", "bg": 216, "rotates": false }, + { "id": "footstep", "fg": 155, "rotates": false }, + { "id": "highlight_item", "fg": 156, "rotates": false }, + { "id": "lighting_boomered_dark", "fg": 158, "rotates": false }, + { "id": "lighting_boomered_light", "fg": 157, "rotates": false }, + { "id": "lighting_hidden", "fg": 162, "rotates": false }, + { "id": "lighting_lowlight_dark", "fg": 160, "rotates": false }, + { "id": "lighting_lowlight_light", "fg": 159, "rotates": false }, + { "id": "line_target", "fg": 153 }, + { "id": "line_trail", "bg": 153 }, + { "id": "unknown", "fg": 161, "rotates": false }, + { "id": "animation_bullet_flame", "fg": 166 }, + { "id": "animation_bullet_normal", "fg": 163 }, + { "id": "animation_bullet_shrapnel", "fg": 163 }, + { "id": "animation_hit", "bg": 164 }, + { "id": "animation_line", "bg": 165 }, + { "id": "record_weather", "fg": 976, "rotates": false, "multitile": false }, + { "id": "weatherby_5", "fg": 517, "rotates": false, "multitile": false }, + { "id": "weather_acid_drop", "bg": 168 }, + { "id": "weather_rain_drop", "bg": 167 }, + { "id": "weather_reader", "fg": 947, "rotates": false, "multitile": false }, + { "id": "weather_snowflake", "bg": 169 }, + { "id": "fd_acid", "bg": 202, "rotates": false }, + { "id": "fd_acid_vent", "fg": 195, "rotates": false }, + { "id": "fd_bees", "fg": 176, "rotates": false }, + { "id": "fd_bile", "bg": 199, "rotates": false }, + { "id": "fd_blood", "bg": 198, "rotates": false }, + { "id": "fd_blood_insect", "bg": 222, "rotates": false }, + { "id": "fd_blood_invertebrate", "bg": 223, "rotates": false }, + { "id": "fd_blood_veggy", "bg": 224, "rotates": false }, { "id": "fd_cigsmoke", - "fg": 183, + "fg": 191, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 178 }, - { "id": "corner", "fg": 179 }, - { "id": "edge", "fg": 180 }, - { "id": "t_connection", "fg": 181 }, - { "id": "end_piece", "fg": 182 }, - { "id": "unconnected", "fg": 183 } + { "id": "center", "fg": 186 }, + { "id": "corner", "fg": 187 }, + { "id": "edge", "fg": 188 }, + { "id": "t_connection", "fg": 189 }, + { "id": "end_piece", "fg": 190 }, + { "id": "unconnected", "fg": 191 } ], "rotates": false }, { "id": "fd_cracksmoke", - "fg": 183, + "fg": 191, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 178 }, - { "id": "corner", "fg": 179 }, - { "id": "edge", "fg": 180 }, - { "id": "t_connection", "fg": 181 }, - { "id": "end_piece", "fg": 182 }, - { "id": "unconnected", "fg": 183 } + { "id": "center", "fg": 186 }, + { "id": "corner", "fg": 187 }, + { "id": "edge", "fg": 188 }, + { "id": "t_connection", "fg": 189 }, + { "id": "end_piece", "fg": 190 }, + { "id": "unconnected", "fg": 191 } ], "rotates": false }, - { "id": "fd_dazzling", "fg": 177, "rotates": false }, + { "id": "fd_dazzling", "fg": 185, "rotates": false }, { "id": "fd_electricity", - "fg": 192, + "fg": 200, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 208 }, - { "id": "corner", "fg": 204 }, - { "id": "edge", "fg": 205 }, - { "id": "t_connection", "fg": 206 }, - { "id": "end_piece", "fg": 207 }, - { "id": "unconnected", "fg": 192 } + { "id": "center", "fg": 216 }, + { "id": "corner", "fg": 212 }, + { "id": "edge", "fg": 213 }, + { "id": "t_connection", "fg": 214 }, + { "id": "end_piece", "fg": 215 }, + { "id": "unconnected", "fg": 200 } ], "rotates": false }, { "id": "fd_fatigue", - "fg": 167, + "fg": 175, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 162 }, - { "id": "corner", "fg": 163 }, - { "id": "edge", "fg": 164 }, - { "id": "t_connection", "fg": 165 }, - { "id": "end_piece", "fg": 166 }, - { "id": "unconnected", "fg": 167 } + { "id": "center", "fg": 170 }, + { "id": "corner", "fg": 171 }, + { "id": "edge", "fg": 172 }, + { "id": "t_connection", "fg": 173 }, + { "id": "end_piece", "fg": 174 }, + { "id": "unconnected", "fg": 175 } ], "rotates": false }, { "id": "fd_fire", - "fg": 197, + "fg": 205, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 220 }, - { "id": "corner", "fg": 221 }, - { "id": "edge", "fg": 222 }, - { "id": "t_connection", "fg": 223 }, - { "id": "end_piece", "fg": 224 }, - { "id": "unconnected", "fg": 197 } + { "id": "center", "fg": 228 }, + { "id": "corner", "fg": 229 }, + { "id": "edge", "fg": 230 }, + { "id": "t_connection", "fg": 231 }, + { "id": "end_piece", "fg": 232 }, + { "id": "unconnected", "fg": 205 } ], "rotates": false }, - { "id": "fd_fire_vent", "fg": 185, "rotates": false }, + { "id": "fd_fire_vent", "fg": 193, "rotates": false }, { "id": "fd_flame_burst", - "fg": 197, + "fg": 205, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 220 }, - { "id": "corner", "fg": 221 }, - { "id": "edge", "fg": 222 }, - { "id": "t_connection", "fg": 223 }, - { "id": "end_piece", "fg": 224 }, - { "id": "unconnected", "fg": 197 } + { "id": "center", "fg": 228 }, + { "id": "corner", "fg": 229 }, + { "id": "edge", "fg": 230 }, + { "id": "t_connection", "fg": 231 }, + { "id": "end_piece", "fg": 232 }, + { "id": "unconnected", "fg": 205 } ], "rotates": false }, { "id": "fd_fungal_haze", - "fg": 175, + "fg": 183, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 170 }, - { "id": "corner", "fg": 171 }, - { "id": "edge", "fg": 172 }, - { "id": "t_connection", "fg": 173 }, - { "id": "end_piece", "fg": 174 }, - { "id": "unconnected", "fg": 175 } + { "id": "center", "fg": 178 }, + { "id": "corner", "fg": 179 }, + { "id": "edge", "fg": 180 }, + { "id": "t_connection", "fg": 181 }, + { "id": "end_piece", "fg": 182 }, + { "id": "unconnected", "fg": 183 } ], "rotates": false }, - { "id": "fd_gas_vent", "fg": 184, "rotates": false }, - { "id": "fd_gibs_flesh", "fg": 217, "rotates": false }, - { "id": "fd_gibs_insect", "fg": 214, "rotates": false }, - { "id": "fd_gibs_invertebrate", "bg": 215, "rotates": false }, - { "id": "fd_gibs_veggy", "bg": 191, "rotates": false }, - { "id": "fd_hot_air1", "fg": 169, "rotates": false }, - { "id": "fd_hot_air2", "fg": 169, "rotates": false }, - { "id": "fd_hot_air3", "fg": 169, "rotates": false }, - { "id": "fd_hot_air4", "fg": 169, "rotates": false }, + { "id": "fd_gas_vent", "fg": 192, "rotates": false }, + { "id": "fd_gibs_flesh", "fg": 225, "rotates": false }, + { "id": "fd_gibs_insect", "fg": 222, "rotates": false }, + { "id": "fd_gibs_invertebrate", "bg": 223, "rotates": false }, + { "id": "fd_gibs_veggy", "bg": 199, "rotates": false }, + { "id": "fd_hot_air1", "fg": 177, "rotates": false }, + { "id": "fd_hot_air2", "fg": 177, "rotates": false }, + { "id": "fd_hot_air3", "fg": 177, "rotates": false }, + { "id": "fd_hot_air4", "fg": 177, "rotates": false }, { "id": "fd_incendiary", - "fg": 158, + "fg": 166, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 220 }, - { "id": "corner", "fg": 221 }, - { "id": "edge", "fg": 222 }, - { "id": "t_connection", "fg": 223 }, - { "id": "end_piece", "fg": 224 }, - { "id": "unconnected", "fg": 158 } + { "id": "center", "fg": 228 }, + { "id": "corner", "fg": 229 }, + { "id": "edge", "fg": 230 }, + { "id": "t_connection", "fg": 231 }, + { "id": "end_piece", "fg": 232 }, + { "id": "unconnected", "fg": 166 } ], "rotates": false }, - { "id": "fd_laser", "fg": 219 }, + { "id": "fd_laser", "fg": 227 }, { "id": "fd_methsmoke", - "fg": 183, + "fg": 191, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 178 }, - { "id": "corner", "fg": 179 }, - { "id": "edge", "fg": 180 }, - { "id": "t_connection", "fg": 181 }, - { "id": "end_piece", "fg": 182 }, - { "id": "unconnected", "fg": 183 } + { "id": "center", "fg": 186 }, + { "id": "corner", "fg": 187 }, + { "id": "edge", "fg": 188 }, + { "id": "t_connection", "fg": 189 }, + { "id": "end_piece", "fg": 190 }, + { "id": "unconnected", "fg": 191 } ], "rotates": false }, { "id": "fd_nuke_gas", - "fg": 189, + "fg": 197, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 209 }, - { "id": "corner", "fg": 210 }, - { "id": "edge", "fg": 211 }, - { "id": "t_connection", "fg": 212 }, - { "id": "end_piece", "fg": 213 }, - { "id": "unconnected", "fg": 189 } + { "id": "center", "fg": 217 }, + { "id": "corner", "fg": 218 }, + { "id": "edge", "fg": 219 }, + { "id": "t_connection", "fg": 220 }, + { "id": "end_piece", "fg": 221 }, + { "id": "unconnected", "fg": 197 } ], "rotates": false }, - { "id": "fd_plasma", "fg": 218 }, - { "id": "fd_push_items", "fg": 2112, "rotates": false }, + { "id": "fd_plasma", "fg": 226 }, + { "id": "fd_push_items", "fg": 2128, "rotates": false }, { "id": "fd_relax_gas", - "fg": 167, + "fg": 175, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 162 }, - { "id": "corner", "fg": 163 }, - { "id": "edge", "fg": 164 }, - { "id": "t_connection", "fg": 165 }, - { "id": "end_piece", "fg": 166 }, - { "id": "unconnected", "fg": 167 } + { "id": "center", "fg": 170 }, + { "id": "corner", "fg": 171 }, + { "id": "edge", "fg": 172 }, + { "id": "t_connection", "fg": 173 }, + { "id": "end_piece", "fg": 174 }, + { "id": "unconnected", "fg": 175 } ], "rotates": false }, - { "id": "fd_rubble", "bg": 198, "rotates": false }, - { "id": "fd_sap", "bg": 191, "rotates": false }, - { "id": "fd_shock_vent", "fg": 186, "rotates": false }, - { "id": "fd_slime", "bg": 195, "rotates": false }, - { "id": "fd_sludge", "bg": 196, "rotates": false }, + { "id": "fd_rubble", "bg": 206, "rotates": false }, + { "id": "fd_sap", "bg": 199, "rotates": false }, + { "id": "fd_shock_vent", "fg": 194, "rotates": false }, + { "id": "fd_slime", "bg": 203, "rotates": false }, + { "id": "fd_sludge", "bg": 204, "rotates": false }, { "id": "fd_smoke", - "fg": 203, + "fg": 211, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 188 }, - { "id": "corner", "fg": 199 }, - { "id": "edge", "fg": 200 }, - { "id": "t_connection", "fg": 201 }, - { "id": "end_piece", "fg": 202 }, - { "id": "unconnected", "fg": 203 } + { "id": "center", "fg": 196 }, + { "id": "corner", "fg": 207 }, + { "id": "edge", "fg": 208 }, + { "id": "t_connection", "fg": 209 }, + { "id": "end_piece", "fg": 210 }, + { "id": "unconnected", "fg": 211 } ], "rotates": false }, - { "id": "fd_spotlight", "fg": 176, "rotates": false }, + { "id": "fd_spotlight", "fg": 184, "rotates": false }, { "id": "fd_tear_gas", - "fg": 203, + "fg": 211, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 188 }, - { "id": "corner", "fg": 199 }, - { "id": "edge", "fg": 200 }, - { "id": "t_connection", "fg": 201 }, - { "id": "end_piece", "fg": 202 }, - { "id": "unconnected", "fg": 203 } + { "id": "center", "fg": 196 }, + { "id": "corner", "fg": 207 }, + { "id": "edge", "fg": 208 }, + { "id": "t_connection", "fg": 209 }, + { "id": "end_piece", "fg": 210 }, + { "id": "unconnected", "fg": 211 } ], "rotates": false }, { "id": "fd_toxic_gas", - "fg": 189, + "fg": 197, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 209 }, - { "id": "corner", "fg": 210 }, - { "id": "edge", "fg": 211 }, - { "id": "t_connection", "fg": 212 }, - { "id": "end_piece", "fg": 213 }, - { "id": "unconnected", "fg": 189 } + { "id": "center", "fg": 217 }, + { "id": "corner", "fg": 218 }, + { "id": "edge", "fg": 219 }, + { "id": "t_connection", "fg": 220 }, + { "id": "end_piece", "fg": 221 }, + { "id": "unconnected", "fg": 197 } ], "rotates": false }, - { "id": "fd_web", "bg": 193, "rotates": false }, + { "id": "fd_web", "bg": 201, "rotates": false }, { "id": "fd_weedsmoke", - "fg": 183, + "fg": 191, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 178 }, - { "id": "corner", "fg": 179 }, - { "id": "edge", "fg": 180 }, - { "id": "t_connection", "fg": 181 }, - { "id": "end_piece", "fg": 182 }, - { "id": "unconnected", "fg": 183 } + { "id": "center", "fg": 186 }, + { "id": "corner", "fg": 187 }, + { "id": "edge", "fg": 188 }, + { "id": "t_connection", "fg": 189 }, + { "id": "end_piece", "fg": 190 }, + { "id": "unconnected", "fg": 191 } ], "rotates": false }, - { "id": "f_anvil", "fg": 751, "rotates": false, "multitile": false }, - { "id": "f_arcade_machine", "fg": 253, "rotates": false }, - { "id": "f_armchair", "fg": 234, "rotates": false }, - { "id": "f_ash", "bg": 1976, "rotates": false }, - { "id": "f_aut_gas_console", "fg": 1813, "bg": 2058, "rotates": false }, - { "id": "f_aut_gas_console_o", "fg": 1814, "bg": 2058, "rotates": false }, - { "id": "f_ball_mach", "fg": 232, "rotates": false }, - { "id": "f_barricade_road", "fg": 247, "rotates": false }, + { "id": "f_anvil", "fg": 759, "rotates": false, "multitile": false }, + { "id": "f_arcade_machine", "fg": 261, "rotates": false }, + { "id": "f_armchair", "fg": 242, "rotates": false }, + { "id": "f_ash", "bg": 1982, "rotates": false }, + { "id": "f_aut_gas_console", "fg": 2106, "bg": 2063, "rotates": false }, + { "id": "f_aut_gas_console_o", "fg": 1821, "bg": 2063, "rotates": false }, + { "id": "f_ball_mach", "fg": 240, "rotates": false }, + { "id": "f_barricade_road", "fg": 255, "rotates": false }, { "id": "f_bathtub", - "fg": 301, + "fg": 309, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 333 }, - { "id": "corner", "fg": 334 }, - { "id": "edge", "fg": 324 }, - { "id": "t_connection", "fg": 335 }, - { "id": "end_piece", "fg": 325 }, - { "id": "unconnected", "fg": 301 } + { "id": "center", "fg": 341 }, + { "id": "corner", "fg": 342 }, + { "id": "edge", "fg": 332 }, + { "id": "t_connection", "fg": 343 }, + { "id": "end_piece", "fg": 333 }, + { "id": "unconnected", "fg": 309 } ], "rotates": false }, { "id": "f_bed", - "fg": 230, + "fg": 238, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 225 }, - { "id": "corner", "fg": 226 }, - { "id": "edge", "fg": 227 }, - { "id": "t_connection", "fg": 228 }, - { "id": "end_piece", "fg": 229 }, - { "id": "unconnected", "fg": 230 } + { "id": "center", "fg": 233 }, + { "id": "corner", "fg": 234 }, + { "id": "edge", "fg": 235 }, + { "id": "t_connection", "fg": 236 }, + { "id": "end_piece", "fg": 237 }, + { "id": "unconnected", "fg": 238 } ], "rotates": false }, - { "id": "f_bench", "fg": 270, "rotates": false }, - { "id": "f_bluebell", "fg": 345, "rotates": false }, - { "id": "f_bookcase", "fg": 284, "rotates": false }, - { "id": "f_boulder_large", "fg": 268, "bg": 2049, "rotates": false }, - { "id": "f_boulder_medium", "fg": 267, "bg": 2049, "rotates": false }, - { "id": "f_boulder_small", "fg": 266, "bg": 2049, "rotates": false }, - { "id": "f_bulletin", "fg": 238, "rotates": false }, - { "id": "f_canvas_door", "fg": 316, "rotates": false }, - { "id": "f_canvas_door_o", "fg": 317, "rotates": false }, - { "id": "f_canvas_floor", "bg": 1792, "rotates": false }, + { "id": "f_bench", "fg": 278, "rotates": false }, + { "id": "f_bluebell", "fg": 353, "rotates": false }, + { "id": "f_bookcase", "fg": 292, "rotates": false }, + { "id": "f_boulder_large", "fg": 276, "bg": 2054, "rotates": false }, + { "id": "f_boulder_medium", "fg": 275, "bg": 2054, "rotates": false }, + { "id": "f_boulder_small", "fg": 274, "bg": 2054, "rotates": false }, + { "id": "f_bulletin", "fg": 246, "rotates": false }, + { "id": "f_canvas_door", "fg": 324, "rotates": false }, + { "id": "f_canvas_door_o", "fg": 325, "rotates": false }, + { "id": "f_canvas_floor", "bg": 1800, "rotates": false }, { "id": "f_canvas_wall", - "fg": 245, - "bg": [ ], + "fg": 253, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 311 }, - { "id": "corner", "fg": 312 }, - { "id": "edge", "fg": 313 }, - { "id": "t_connection", "fg": 314 }, - { "id": "end_piece", "fg": 315 }, - { "id": "unconnected", "fg": 245 } + { "id": "center", "fg": 319 }, + { "id": "corner", "fg": 320 }, + { "id": "edge", "fg": 321 }, + { "id": "t_connection", "fg": 322 }, + { "id": "end_piece", "fg": 323 }, + { "id": "unconnected", "fg": 253 } ], "rotates": false }, - { "id": "f_cattails", "fg": 265, "rotates": false }, - { "id": "f_center_groundsheet", "bg": 321, "rotates": false }, - { "id": "f_chair", "fg": 231, "rotates": false }, + { "id": "f_cattails", "fg": 273, "rotates": false }, + { "id": "f_center_groundsheet", "bg": 329, "rotates": false }, + { "id": "f_chair", "fg": 239, "rotates": false }, { "id": "f_counter", - "fg": 2027, + "fg": 2032, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 323 }, - { "id": "corner", "fg": 326 }, - { "id": "edge", "fg": 327 }, - { "id": "t_connection", "fg": 328 }, - { "id": "end_piece", "fg": 298 }, - { "id": "unconnected", "fg": 2027 } + { "id": "center", "fg": 331 }, + { "id": "corner", "fg": 334 }, + { "id": "edge", "fg": 335 }, + { "id": "t_connection", "fg": 336 }, + { "id": "end_piece", "fg": 306 }, + { "id": "unconnected", "fg": 2032 } ], "rotates": false }, - { "id": "f_crate_c", "fg": 291, "rotates": false }, - { "id": "f_crate_o", "fg": 296, "rotates": false }, - { "id": "f_cupboard", "fg": 329, "rotates": false }, - { "id": "f_dahlia", "fg": 346, "rotates": false }, - { "id": "f_dandelion", "fg": 259, "rotates": false }, - { "id": "f_datura", "fg": 260, "rotates": false }, + { "id": "f_crate_c", "fg": 299, "rotates": false }, + { "id": "f_crate_o", "fg": 304, "rotates": false }, + { "id": "f_cupboard", "fg": 337, "rotates": false }, + { "id": "f_dahlia", "fg": 354, "rotates": false }, + { "id": "f_dandelion", "fg": 267, "rotates": false }, + { "id": "f_datura", "fg": 268, "rotates": false }, { "id": "f_desk", - "fg": 232, + "fg": 240, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 292 }, - { "id": "corner", "fg": 293 }, - { "id": "edge", "fg": 294 }, - { "id": "t_connection", "fg": 295 }, - { "id": "end_piece", "fg": 297 }, - { "id": "unconnected", "fg": 232 } + { "id": "center", "fg": 300 }, + { "id": "corner", "fg": 301 }, + { "id": "edge", "fg": 302 }, + { "id": "t_connection", "fg": 303 }, + { "id": "end_piece", "fg": 305 }, + { "id": "unconnected", "fg": 240 } ], "rotates": false }, - { "id": "f_displaycase", "fg": 257, "rotates": false }, - { "id": "f_displaycase_b", "fg": 258, "rotates": false }, - { "id": "f_dive_block", "fg": 290, "rotates": false }, - { "id": "f_dresser", "fg": 285, "rotates": false }, - { "id": "f_dryer", "fg": 300, "rotates": false }, + { "id": "f_displaycase", "fg": 265, "rotates": false }, + { "id": "f_displaycase_b", "fg": 266, "rotates": false }, + { "id": "f_dive_block", "fg": 298, "rotates": false }, + { "id": "f_dresser", "fg": 293, "rotates": false }, + { "id": "f_dryer", "fg": 308, "rotates": false }, { "id": "f_dumpster", - "fg": 289, + "fg": 297, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 275 }, - { "id": "corner", "fg": 276 }, - { "id": "edge", "fg": 277 }, - { "id": "t_connection", "fg": 278 }, - { "id": "end_piece", "fg": 279 }, - { "id": "unconnected", "fg": 289 } + { "id": "center", "fg": 283 }, + { "id": "corner", "fg": 284 }, + { "id": "edge", "fg": 285 }, + { "id": "t_connection", "fg": 286 }, + { "id": "end_piece", "fg": 287 }, + { "id": "unconnected", "fg": 297 } ], "rotates": false }, - { "id": "f_egg_sackbw", "fg": 250, "rotates": false }, - { "id": "f_egg_sacke", "fg": 252, "rotates": false }, - { "id": "f_egg_sackws", "fg": 251, "rotates": false }, - { "id": "f_ergometer", "fg": 255, "rotates": false }, - { "id": "f_exercise", "fg": 272, "rotates": false }, - { "id": "f_fema_groundsheet", "bg": 321, "rotates": false }, - { "id": "f_fireplace", "fg": 332, "rotates": false }, - { "id": "f_floor_canvas", "fg": 262, "rotates": false }, - { "id": "f_flower_fungal", "fg": 235, "rotates": false }, - { "id": "f_flower_marloss", "fg": 261, "rotates": false }, - { "id": "f_forge", "fg": 502, "rotates": false, "multitile": false }, - { "id": "f_fridge", "fg": 287, "rotates": false }, - { "id": "f_fungal_clump", "fg": 237, "rotates": false }, - { "id": "f_fungal_mass", "fg": 236, "rotates": false }, - { "id": "f_fvat_empty", "fg": 248, "rotates": false }, - { "id": "f_fvat_full", "fg": 249, "rotates": false }, - { "id": "f_glass_fridge", "fg": 288, "rotates": false }, - { "id": "f_groundsheet", "bg": 321, "rotates": false }, - { "id": "f_gunsafe_mj", "fg": 282, "rotates": false }, - { "id": "f_gunsafe_ml", "fg": 281, "rotates": false }, - { "id": "f_gun_safe_el", "fg": 281, "rotates": false }, - { "id": "f_hay", "fg": 302, "rotates": false }, - { "id": "f_indoor_plant", "fg": 271, "rotates": false }, - { "id": "f_indoor_plant_y", "fg": 244, "rotates": false }, - { "id": "f_kiln_empty", "fg": 505, "rotates": false, "multitile": false }, - { "id": "f_kiln_full", "fg": 776, "rotates": false, "multitile": false }, - { "id": "f_lane", "fg": 338, "rotates": true }, - { "id": "f_large_canvas_door", "fg": 316, "rotates": false }, - { "id": "f_large_canvas_door_o", "fg": 317, "rotates": false }, + { "id": "f_egg_sackbw", "fg": 258, "rotates": false }, + { "id": "f_egg_sacke", "fg": 260, "rotates": false }, + { "id": "f_egg_sackws", "fg": 259, "rotates": false }, + { "id": "f_ergometer", "fg": 263, "rotates": false }, + { "id": "f_exercise", "fg": 280, "rotates": false }, + { "id": "f_fema_groundsheet", "bg": 329, "rotates": false }, + { "id": "f_fireplace", "fg": 340, "rotates": false }, + { "id": "f_floor_canvas", "fg": 270, "rotates": false }, + { "id": "f_flower_fungal", "fg": 243, "rotates": false }, + { "id": "f_flower_marloss", "fg": 269, "rotates": false }, + { "id": "f_forge", "fg": 510, "rotates": false, "multitile": false }, + { "id": "f_fridge", "fg": 295, "rotates": false }, + { "id": "f_fungal_clump", "fg": 245, "rotates": false }, + { "id": "f_fungal_mass", "fg": 244, "rotates": false }, + { "id": "f_fvat_empty", "fg": 256, "rotates": false }, + { "id": "f_fvat_full", "fg": 257, "rotates": false }, + { "id": "f_glass_fridge", "fg": 296, "rotates": false }, + { "id": "f_groundsheet", "bg": 329, "rotates": false }, + { "id": "f_gunsafe_mj", "fg": 290, "rotates": false }, + { "id": "f_gunsafe_ml", "fg": 289, "rotates": false }, + { "id": "f_gun_safe_el", "fg": 289, "rotates": false }, + { "id": "f_hay", "fg": 310, "rotates": false }, + { "id": "f_indoor_plant", "fg": 279, "rotates": false }, + { "id": "f_indoor_plant_y", "fg": 252, "rotates": false }, + { "id": "f_kiln_empty", "fg": 513, "rotates": false, "multitile": false }, + { "id": "f_kiln_full", "fg": 784, "rotates": false, "multitile": false }, + { "id": "f_lane", "fg": 346, "rotates": true }, + { "id": "f_large_canvas_door", "fg": 324, "rotates": false }, + { "id": "f_large_canvas_door_o", "fg": 325, "rotates": false }, { "id": "f_large_canvas_wall", - "fg": 245, - "bg": [ ], + "fg": 253, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 311 }, - { "id": "corner", "fg": 312 }, - { "id": "edge", "fg": 313 }, - { "id": "t_connection", "fg": 314 }, - { "id": "end_piece", "fg": 315 }, - { "id": "unconnected", "fg": 245 } + { "id": "center", "fg": 319 }, + { "id": "corner", "fg": 320 }, + { "id": "edge", "fg": 321 }, + { "id": "t_connection", "fg": 322 }, + { "id": "end_piece", "fg": 323 }, + { "id": "unconnected", "fg": 253 } ], "rotates": false }, - { "id": "f_large_groundsheet", "bg": 321, "rotates": false }, - { "id": "f_locker", "fg": 286, "rotates": false }, - { "id": "f_makeshift_bed", "fg": 230, "rotates": false }, - { "id": "f_mutpoppy", "fg": 273, "rotates": false }, - { "id": "f_oven", "fg": 330, "rotates": false }, - { "id": "f_pinball_machine", "fg": 254, "rotates": false }, - { "id": "f_plant_harvest", "fg": 344, "rotates": false }, - { "id": "f_plant_mature", "fg": 343, "rotates": false }, - { "id": "f_plant_seedling", "fg": 342, "rotates": false }, - { "id": "f_plant_seed", "fg": 341, "rotates": false }, + { "id": "f_large_groundsheet", "bg": 329, "rotates": false }, + { "id": "f_locker", "fg": 294, "rotates": false }, + { "id": "f_makeshift_bed", "fg": 238, "rotates": false }, + { "id": "f_mutpoppy", "fg": 281, "rotates": false }, + { "id": "f_oven", "fg": 338, "rotates": false }, + { "id": "f_pinball_machine", "fg": 262, "rotates": false }, + { "id": "f_plant_harvest", "fg": 352, "rotates": false }, + { "id": "f_plant_mature", "fg": 351, "rotates": false }, + { "id": "f_plant_seedling", "fg": 350, "rotates": false }, + { "id": "f_plant_seed", "fg": 349, "rotates": false }, { "id": "f_pool_table", - "fg": 242, + "fg": 250, "multitile": true, - "additional_tiles": [ { "id": "corner", "fg": 241 }, { "id": "t_connection", "fg": 242 } ], + "additional_tiles": [ { "id": "corner", "fg": 249 }, { "id": "t_connection", "fg": 250 } ], "rotates": false }, - { "id": "f_rack", "fg": 280, "rotates": false }, - { "id": "f_rubble", "bg": 1940, "rotates": false }, - { "id": "f_rubble_rock", "bg": 198, "rotates": false }, - { "id": "f_safe_c", "fg": 281, "rotates": false }, - { "id": "f_safe_l", "fg": 282, "rotates": false }, - { "id": "f_safe_o", "fg": 283, "rotates": false }, - { "id": "f_sandbag_half", "fg": 263, "rotates": false }, - { "id": "f_sandbag_wall", "fg": 264, "rotates": false }, - { "id": "f_shower", "fg": 340, "rotates": false }, - { "id": "f_sign", "fg": 238, "rotates": false }, - { "id": "f_sink", "fg": 233, "rotates": false }, - { "id": "f_skin_door", "fg": 319, "rotates": false }, - { "id": "f_skin_door_o", "fg": 320, "rotates": false }, - { "id": "f_skin_groundsheet", "fg": 339, "rotates": false }, + { "id": "f_rack", "fg": 288, "rotates": false }, + { "id": "f_rubble", "bg": 1946, "rotates": false }, + { "id": "f_rubble_rock", "bg": 206, "rotates": false }, + { "id": "f_safe_c", "fg": 289, "rotates": false }, + { "id": "f_safe_l", "fg": 290, "rotates": false }, + { "id": "f_safe_o", "fg": 291, "rotates": false }, + { "id": "f_sandbag_half", "fg": 271, "rotates": false }, + { "id": "f_sandbag_wall", "fg": 272, "rotates": false }, + { "id": "f_shower", "fg": 348, "rotates": false }, + { "id": "f_sign", "fg": 246, "rotates": false }, + { "id": "f_sink", "fg": 241, "rotates": false }, + { "id": "f_skin_door", "fg": 327, "rotates": false }, + { "id": "f_skin_door_o", "fg": 328, "rotates": false }, + { "id": "f_skin_groundsheet", "fg": 347, "rotates": false }, { "id": "f_skin_wall", - "fg": 246, - "bg": [ ], + "fg": 254, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 303 }, - { "id": "corner", "fg": 304 }, - { "id": "edge", "fg": 305 }, - { "id": "t_connection", "fg": 306 }, - { "id": "end_piece", "fg": 318 }, - { "id": "unconnected", "fg": 246 } + { "id": "center", "fg": 311 }, + { "id": "corner", "fg": 312 }, + { "id": "edge", "fg": 313 }, + { "id": "t_connection", "fg": 314 }, + { "id": "end_piece", "fg": 326 }, + { "id": "unconnected", "fg": 254 } ], "rotates": false }, - { "id": "f_sofa", "fg": 240, "rotates": false }, - { "id": "f_standing_tank", "fg": 420, "rotates": false, "multitile": false }, - { "id": "f_statue", "fg": 243, "rotates": false }, - { "id": "f_still", "fg": 742, "rotates": false, "multitile": false }, - { "id": "f_straw_bed", "fg": 2103, "rotates": false }, + { "id": "f_sofa", "fg": 248, "rotates": false }, + { "id": "f_standing_tank", "fg": 428, "rotates": false, "multitile": false }, + { "id": "f_statue", "fg": 251, "rotates": false }, + { "id": "f_still", "fg": 750, "rotates": false, "multitile": false }, + { "id": "f_straw_bed", "fg": 2119, "rotates": false }, { "id": "f_table", - "fg": 322, + "fg": 330, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2003 }, - { "id": "corner", "fg": 307 }, - { "id": "edge", "fg": 308 }, - { "id": "t_connection", "fg": 309 }, - { "id": "end_piece", "fg": 310 }, - { "id": "unconnected", "fg": 322 } + { "id": "center", "fg": 2008 }, + { "id": "corner", "fg": 315 }, + { "id": "edge", "fg": 316 }, + { "id": "t_connection", "fg": 317 }, + { "id": "end_piece", "fg": 318 }, + { "id": "unconnected", "fg": 330 } ], "rotates": false }, - { "id": "f_tatami", "fg": 339, "rotates": false }, - { "id": "f_toilet", "fg": 274, "rotates": false }, - { "id": "f_trashcan", "fg": 269, "rotates": false }, - { "id": "f_treadmill", "fg": 256, "rotates": false }, - { "id": "f_vending_c", "fg": 336, "rotates": false }, - { "id": "f_vending_o", "fg": 337, "rotates": false }, - { "id": "f_vending_reinforced", "fg": 239, "rotates": false }, - { "id": "f_washer", "fg": 299, "rotates": false }, - { "id": "f_woodstove", "fg": 331, "rotates": false }, - { "id": "f_wood_keg", "fg": 949, "rotates": false }, - { "id": "f_wreckage", "bg": 1977, "rotates": false }, - { "id": "10mm", "fg": 954, "rotates": false, "multitile": false }, - { "id": "120mm_HEAT", "fg": 959, "rotates": false, "multitile": false }, - { "id": "12mm", "fg": 955, "rotates": false, "multitile": false }, - { "id": "1cyl_combustion", "fg": 873, "rotates": false, "multitile": false }, - { "id": "1cyl_combustion_small", "fg": 873, "rotates": false, "multitile": false }, - { "id": "223", "fg": 954, "rotates": false, "multitile": false }, - { "id": "223_casing", "fg": 958 }, - { "id": "22_casing", "fg": 958 }, - { "id": "22_cb", "fg": 954, "rotates": false, "multitile": false }, - { "id": "22_fmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "22_lr", "fg": 954, "rotates": false, "multitile": false }, - { "id": "22_ratshot", "fg": 954, "rotates": false, "multitile": false }, - { "id": "270", "fg": 954, "rotates": false, "multitile": false }, - { "id": "2lcanteen", "fg": 349, "rotates": false, "multitile": false }, - { "id": "2x4", "fg": 549, "rotates": true }, - { "id": "2_shot_special", "fg": 517, "rotates": false, "multitile": false }, - { "id": "3006fmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "3006", "fg": 954, "rotates": false, "multitile": false }, - { "id": "3006_casing", "fg": 958 }, - { "id": "3006_incendiary", "fg": 954, "rotates": false, "multitile": false }, - { "id": "300_casing", "fg": 958 }, - { "id": "300_winmag", "fg": 954, "rotates": false, "multitile": false }, - { "id": "308", "fg": 954, "rotates": false, "multitile": false }, - { "id": "308_casing", "fg": 958 }, - { "id": "30gal_drum", "fg": 948, "rotates": false }, - { "id": "32_acp", "fg": 954, "rotates": false, "multitile": false }, - { "id": "32_casing", "fg": 958 }, - { "id": "38_casing", "fg": 958 }, - { "id": "38_fmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "38_special", "fg": 954, "rotates": false, "multitile": false }, - { "id": "38_super", "fg": 954, "rotates": false, "multitile": false }, - { "id": "40fmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "40mm_acidbomb", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_beanbag", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_casing", "fg": 958 }, - { "id": "40mm_concussive", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_flare", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_flashbang", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_flechette", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_frag", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_incendiary", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_shot", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_smoke", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40mm_teargas", "fg": 959, "rotates": false, "multitile": false }, - { "id": "40sw", "fg": 954, "rotates": false, "multitile": false }, - { "id": "40_casing", "fg": 958 }, - { "id": "44fmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "44magnum", "fg": 954, "rotates": false, "multitile": false }, - { "id": "44_casing", "fg": 958 }, - { "id": "454_casing", "fg": 958 }, - { "id": "454_Casull", "fg": 954, "rotates": false, "multitile": false }, - { "id": "45_acp", "fg": 954, "rotates": false, "multitile": false }, - { "id": "45_casing", "fg": 958 }, - { "id": "45_jhp", "fg": 954, "rotates": false, "multitile": false }, - { "id": "45_super", "fg": 954, "rotates": false, "multitile": false }, - { "id": "46mm", "fg": 954, "rotates": false, "multitile": false }, - { "id": "46mm_casing", "fg": 958 }, - { "id": "500_casing", "fg": 958 }, - { "id": "500_Magnum", "fg": 954, "rotates": false, "multitile": false }, - { "id": "556", "fg": 954, "rotates": false, "multitile": false }, - { "id": "556_incendiary", "fg": 954, "rotates": false, "multitile": false }, - { "id": "55gal_drum", "fg": 947, "rotates": false }, - { "id": "57mm", "fg": 954, "rotates": false, "multitile": false }, - { "id": "57mm_casing", "fg": 958 }, - { "id": "5x50dart", "fg": 821, "rotates": false, "multitile": false }, - { "id": "5x50heavy", "fg": 821, "rotates": false, "multitile": false }, - { "id": "5x50hull", "fg": 821, "rotates": false, "multitile": false }, - { "id": "5x50_hull", "fg": 941 }, - { "id": "66mm_HEAT", "fg": 959, "rotates": false, "multitile": false }, - { "id": "700nx", "fg": 954, "rotates": false, "multitile": false }, - { "id": "700nx_casing", "fg": 958 }, - { "id": "762R_casing", "fg": 958 }, - { "id": "762_25", "fg": 954, "rotates": false, "multitile": false }, - { "id": "762_25", "fg": 954, "rotates": false, "multitile": false }, - { "id": "762_51", "fg": 954, "rotates": false, "multitile": false }, - { "id": "762_51_incendiary", "fg": 954, "rotates": false, "multitile": false }, - { "id": "762_54R", "fg": 954, "rotates": false, "multitile": false }, - { "id": "762_casing", "fg": 958 }, - { "id": "762_m43", "fg": 954, "rotates": false, "multitile": false }, - { "id": "762_m87", "fg": 954, "rotates": false, "multitile": false }, - { "id": "84x246mm_hedp", "fg": 959, "rotates": false, "multitile": false }, - { "id": "84x246mm_he", "fg": 959, "rotates": false, "multitile": false }, - { "id": "84x246mm_smoke", "fg": 959, "rotates": false, "multitile": false }, - { "id": "8mm_bootleg", "fg": 956, "rotates": false, "multitile": false }, - { "id": "8mm_bootleg_jsp", "fg": 956, "rotates": false, "multitile": false }, - { "id": "8mm_caseless", "fg": 956, "rotates": false, "multitile": false }, - { "id": "8mm_civilian", "fg": 956, "rotates": false, "multitile": false }, - { "id": "8mm_fmj", "fg": 956, "rotates": false, "multitile": false }, - { "id": "8mm_hvp", "fg": 956, "rotates": false, "multitile": false }, - { "id": "8mm_inc", "fg": 956, "rotates": false, "multitile": false }, - { "id": "8mm_jhp", "fg": 956, "rotates": false, "multitile": false }, - { "id": "9mmfmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "9mmP2", "fg": 954, "rotates": false, "multitile": false }, - { "id": "9mmP", "fg": 954, "rotates": false, "multitile": false }, - { "id": "9mm", "fg": 954, "rotates": false, "multitile": false }, - { "id": "9mm_casing", "fg": 958 }, - { "id": "acidbomb", "fg": 636, "rotates": false, "multitile": false }, - { "id": "acidbomb_act", "fg": 637, "rotates": false, "multitile": false }, - { "id": "acid", "fg": 931, "rotates": false, "multitile": false }, - { "id": "acr", "fg": 550, "rotates": false, "multitile": false }, - { "id": "adjustable_stock", "fg": 918, "rotates": false, "multitile": false }, - { "id": "adrenaline_injector", "fg": 748, "rotates": false, "multitile": false }, - { "id": "advanced_ecig", "fg": 372, "rotates": false, "multitile": false }, - { "id": "adv_UPS_off", "fg": 652, "rotates": false, "multitile": false }, - { "id": "adv_UPS_on", "fg": 653, "rotates": false, "multitile": false }, - { "id": "airhorn", "fg": 545, "rotates": false, "multitile": false }, - { "id": "airspeargun", "fg": 519, "rotates": false, "multitile": false }, - { "id": "ak47", "fg": 551, "rotates": false, "multitile": false }, - { "id": "alarmclock", "fg": 534, "rotates": false, "multitile": false }, - { "id": "alloy_plate", "fg": 461, "rotates": false, "multitile": false }, - { "id": "alloy_sheet", "fg": 461, "rotates": false, "multitile": false }, - { "id": "alternator_car", "fg": 1424, "rotates": false, "multitile": false }, - { "id": "alternator_motorbike", "fg": 1424, "rotates": false, "multitile": false }, - { "id": "alternator_truck", "fg": 1424, "rotates": false, "multitile": false }, - { "id": "american_180", "fg": 530, "rotates": false, "multitile": false }, - { "id": "ammonia", "fg": 931, "rotates": false, "multitile": false }, - { "id": "amplifier", "fg": 950, "rotates": false, "multitile": false }, - { "id": "ampoule", "fg": 452, "rotates": false, "multitile": false }, - { "id": "antenna", "fg": 372, "rotates": false, "multitile": false }, - { "id": "anvil", "fg": 751, "rotates": false, "multitile": false }, - { "id": "apple_cider", "fg": 1406, "rotates": false, "multitile": false }, - { "id": "ar15", "fg": 550, "rotates": false, "multitile": false }, - { "id": "arx160", "fg": 550, "rotates": false, "multitile": false }, - { "id": "ashot", "fg": 518, "rotates": false, "multitile": false }, - { "id": "atomic_coffeepot", "fg": 946, "rotates": false, "multitile": false }, - { "id": "atomic_coffee", "fg": 932, "rotates": false, "multitile": false }, - { "id": "atomic_light", "fg": 920, "rotates": false, "multitile": false }, - { "id": "autofire", "fg": 918, "rotates": false, "multitile": false }, - { "id": "aux_flamer", "fg": 918, "rotates": false, "multitile": false }, - { "id": "ax", "fg": 694, "rotates": false, "multitile": false }, - { "id": "bagh_nakha", "fg": 479, "rotates": false, "multitile": false }, - { "id": "bag_apple_vac", "fg": 1364, "rotates": false, "multitile": false }, - { "id": "bag_bundle_10", "fg": 499, "rotates": false, "multitile": false }, - { "id": "bag_canvas", "fg": 1354, "rotates": false, "multitile": false }, - { "id": "bag_canvas_small", "fg": 1354, "rotates": false, "multitile": false }, - { "id": "bag_fish_vac", "fg": 1401, "rotates": false, "multitile": false }, - { "id": "bag_hflesh_vac", "fg": 1362, "rotates": false, "multitile": false }, - { "id": "bag_meat_vac", "fg": 1362, "rotates": false, "multitile": false }, - { "id": "bag_plastic", "fg": 499, "rotates": false }, - { "id": "bag_veggy_vac", "fg": 1363, "rotates": false, "multitile": false }, - { "id": "barometer", "fg": 418, "rotates": false, "multitile": false }, - { "id": "barrel_big", "fg": 918, "rotates": false, "multitile": false }, - { "id": "barrel_ported", "fg": 918, "rotates": false, "multitile": false }, - { "id": "barrel_rifled", "fg": 918, "rotates": false, "multitile": false }, - { "id": "barrel_small", "fg": 918, "rotates": false, "multitile": false }, - { "id": "baseball", "fg": 921, "rotates": false, "multitile": false }, - { "id": "basket", "fg": 1469, "rotates": false }, - { "id": "baton-extended", "fg": 441, "rotates": false, "multitile": false }, - { "id": "baton", "fg": 441, "rotates": false, "multitile": false }, - { "id": "battery", "fg": 901, "rotates": false, "multitile": false }, - { "id": "battery_atomic", "fg": 541, "rotates": false, "multitile": false }, - { "id": "battery_car", "fg": 874, "rotates": false }, - { "id": "battery_compartment", "fg": 571, "rotates": false, "multitile": false }, - { "id": "battery_motorbike", "fg": 874, "rotates": false }, - { "id": "battery_truck", "fg": 874, "rotates": false }, - { "id": "battery_ups", "fg": 733, "rotates": false, "multitile": false }, - { "id": "battleaxe", "fg": 489, "rotates": false, "multitile": false }, - { "id": "battleaxe_fake", "fg": 489, "rotates": false, "multitile": false }, - { "id": [ "battleaxe_fake", "battleaxe_inferior", "battleaxe" ], "fg": 861, "rotates": false }, - { "id": "battletorch", "fg": 490, "rotates": false, "multitile": false }, - { "id": "battletorch_done", "fg": 480, "rotates": false, "multitile": false }, - { "id": "battletorch_lit", "fg": 491, "rotates": false, "multitile": false }, - { "id": "bat", "fg": 438, "rotates": false, "multitile": false }, - { "id": "bat_metal", "fg": 439, "rotates": false, "multitile": false }, - { "id": "bayonet", "fg": 918, "rotates": false, "multitile": false }, - { "id": "bbgun", "fg": 509, "rotates": false, "multitile": false }, - { "id": "bb", "fg": 902, "rotates": false, "multitile": false }, - { "id": "bearing", "fg": 902, "rotates": false, "multitile": false }, - { "id": "beartrap", "fg": 604, "rotates": false, "multitile": false }, - { "id": "beer", "fg": 932, "rotates": false, "multitile": false }, - { "id": "bee_sting", "fg": 442, "rotates": false, "multitile": false }, - { "id": "belgian_ale", "fg": 932, "rotates": false, "multitile": false }, - { "id": "bigun", "fg": 536, "rotates": false, "multitile": false }, - { "id": "binoculars", "fg": 385, "rotates": false, "multitile": false }, - { "id": "biollante_bud", "fg": 381, "rotates": false, "multitile": false }, - { "id": "bio_adrenaline", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_ads", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_alarm", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_ankles", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_armor_arms", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_armor_eyes", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_armor_head", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_armor_legs", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_armor_torso", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_batteries", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_blade", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_blade_weapon", "fg": 690, "rotates": false, "multitile": false }, - { "id": "bio_blaster", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_blood_anal", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_blood_filter", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_carbon", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_chain_lightning", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_claws", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_claws_weapon", "fg": 479, "rotates": false, "multitile": false }, - { "id": "bio_climate", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_cloak", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_cqb", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_deformity", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_dex_enhancer", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_digestion", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_dis_acid", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_dis_shock", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_drain", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_ears", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_emp", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_ethanol", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_evap", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_eye_enhancer", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_face_mask", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_faraday", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_fingerhack", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_flashbang", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_flashlight", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_furnace", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_geiger", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_gills", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_ground_sonar", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_heatsink", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_heat_absorb", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_hydraulics", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_infrared", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_int_enhancer", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_itchy", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_laser", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_leaky", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_leukocyte", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_lighter", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_lockpick", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_magnet", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_membrane", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_memory", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_metabolics", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_meteorologist", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_nanobots", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_night", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_night_vision", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_noise", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_nostril", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_null", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_ods", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_painkiller", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_pokedeye", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_power_armor_interface", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_power_armor_interface_mkII", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_power_storage", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_power_storage_mkII", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_power_weakness", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_probability_travel", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_purifier", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_radscrubber", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_railgun", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_razors", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_recycler", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_remote", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_resonator", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_scent_mask", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_scent_vision", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_shakes", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_shockwave", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_shock", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_sleepy", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_solar", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_spasm", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_speed", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_stiff", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_storage", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_str_enhancer", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_sunglasses", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_targeting", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_teleport", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_thumbs", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_time_freeze", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_tools", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_torsionratchet", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_trip", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_uncanny_dodge", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_ups", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_voice", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_watch", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bio_water_extractor", "fg": 1235, "rotates": false, "multitile": false }, - { "id": "bipod", "fg": 918, "rotates": false, "multitile": false }, - { "id": "bismuth", "fg": 904, "rotates": false, "multitile": false }, - { "id": "black_box", "fg": 589, "rotates": false, "multitile": false }, - { "id": "black_box_transcript", "fg": 899, "rotates": false, "multitile": false }, - { "id": "blade", "fg": 389, "rotates": false, "multitile": false }, - { "id": "blade_trap", "fg": 609, "rotates": false, "multitile": false }, - { "id": "bleach", "fg": 931, "rotates": false, "multitile": false }, - { "id": "blood", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "blowback", "fg": 918, "rotates": false, "multitile": false }, - { "id": "blowgun", "fg": 424, "rotates": false, "multitile": false }, - { "id": "bluebell_bud", "fg": 375, "rotates": false, "multitile": false }, - { "id": "bluebell_flower", "fg": 870, "rotates": false, "multitile": false }, - { "id": "blunderbuss", "fg": 526, "rotates": false, "multitile": false }, - { "id": "blun_flechette", "fg": 953, "rotates": false, "multitile": false }, - { "id": "blun_shot", "fg": 953, "rotates": false, "multitile": false }, - { "id": "blun_slug", "fg": 953, "rotates": false, "multitile": false }, - { "id": "board_trap", "fg": 605, "rotates": false, "multitile": false }, - { "id": "bokken", "fg": 826, "rotates": false, "multitile": false }, - { "id": "boltcutters", "fg": 708, "rotates": false, "multitile": false }, - { "id": "bone_glue", "fg": 837, "rotates": false, "multitile": false }, - { "id": "bone_plate", "fg": 460, "rotates": false, "multitile": false }, - { "id": "boobytrap", "fg": 661, "rotates": false, "multitile": false }, - { "id": "bootstrap", "fg": 919, "rotates": false, "multitile": false }, - { "id": "bottle_glass", "fg": 511, "rotates": false }, - { "id": "bottle_plastic", "fg": 1395, "rotates": false }, - { "id": "bottle_plastic_small", "fg": 1395, "rotates": false }, - { "id": "bot_laserturret", "fg": 360, "rotates": false, "multitile": false }, - { "id": "bot_manhack", "fg": 648, "rotates": false, "multitile": false }, - { "id": "bot_rifleturret", "fg": 564, "rotates": false, "multitile": false }, - { "id": "bot_turret", "fg": 649, "rotates": false, "multitile": false }, - { "id": "bowling_axe", "fg": 780, "rotates": false, "multitile": false }, - { "id": "bowling_ball", "fg": 387, "rotates": false, "multitile": false }, - { "id": "bowling_pin", "fg": 779, "rotates": false, "multitile": false }, - { "id": "bowl_clay", "fg": 832, "rotates": false, "multitile": false }, - { "id": "bowl_pewter", "fg": 421, "rotates": false, "multitile": false }, - { "id": "bowl_plastic", "fg": 357, "rotates": false, "multitile": false }, - { "id": "bow_sight", "fg": 918, "rotates": false, "multitile": false }, - { "id": "box_small", "fg": 500, "rotates": false }, - { "id": "brass_catcher", "fg": 918, "rotates": false, "multitile": false }, - { "id": "brazier", "fg": 700, "rotates": false, "multitile": false }, - { "id": "brew_dandelion_wine", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "brew_hb_beer", "fg": 932, "rotates": false, "multitile": false }, - { "id": "brew_mead", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "brew_moonshine", "fg": 932, "rotates": false, "multitile": false }, - { "id": "brew_pine_wine", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "brew_rum", "fg": 931, "rotates": false, "multitile": false }, - { "id": "brew_vinegar", "fg": 934, "rotates": false, "multitile": false }, - { "id": "brew_vodka", "fg": 931, "rotates": false, "multitile": false }, - { "id": "brew_whiskey", "fg": 932, "rotates": false, "multitile": false }, - { "id": "brick", "fg": 838, "rotates": false, "multitile": false }, - { "id": "brick_kiln", "fg": 505, "rotates": false, "multitile": false }, - { "id": "briefcase_smg", "fg": 918, "rotates": false, "multitile": false }, - { "id": "broadfire_off", "fg": 684, "rotates": false, "multitile": false }, - { "id": "broadfire_on", "fg": 685, "rotates": false, "multitile": false }, - { "id": "broadsword", "fg": 682, "rotates": false, "multitile": false }, - { "id": "broadsword_fake", "fg": 682, "rotates": false, "multitile": false }, - { "id": "broken_copbot", "fg": 734, "rotates": false }, - { "id": "broken_eyebot", "fg": 730, "rotates": false }, - { "id": "broken_manhack", "fg": 648, "rotates": false, "multitile": false }, - { "id": "broken_molebot", "fg": 735, "rotates": false }, - { "id": "broken_riotbot", "fg": 734, "rotates": false }, - { "id": "broken_skitterbot", "fg": 731, "rotates": false }, - { "id": "broken_tankbot", "fg": 739, "rotates": false }, - { "id": "broken_tripod", "fg": 736, "rotates": false }, - { "id": "broketent", "fg": 399, "rotates": false, "multitile": false }, - { "id": "broom", "fg": 431, "rotates": false, "multitile": false }, - { "id": "broth", "fg": 932, "rotates": false, "multitile": false }, - { "id": "broth_bone", "fg": 932, "rotates": false, "multitile": false }, - { "id": "browning_blr", "fg": 509, "rotates": false, "multitile": false }, - { "id": "bubblewrap", "fg": 603, "rotates": false, "multitile": false }, - { "id": "bullet_crossbow", "fg": 895, "rotates": false, "multitile": false }, - { "id": "bullwhip", "fg": 775, "rotates": false, "multitile": false }, - { "id": "bum_wine", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "burnt_out_bionic", "fg": 371, "rotates": false, "multitile": false }, - { "id": "bwirebat", "fg": 490, "rotates": false, "multitile": false }, - { "id": "b_paint", "fg": 390, "rotates": false, "multitile": false }, - { "id": "c4armed", "fg": 663, "rotates": false, "multitile": false }, - { "id": "c4", "fg": 662, "rotates": false, "multitile": false }, - { "id": "cable", "fg": 887, "rotates": false, "multitile": false }, - { "id": "calico", "fg": 516, "rotates": false, "multitile": false }, - { "id": "caltrops", "fg": 898, "rotates": false }, - { "id": "camera_control", "fg": 1442, "rotates": false, "multitile": false }, - { "id": "candlestick", "fg": 388, "rotates": false, "multitile": false }, - { "id": "candle", "fg": 698, "rotates": false, "multitile": false }, - { "id": "candle_lit", "fg": 699, "rotates": false, "multitile": false }, - { "id": "cane", "fg": 444, "rotates": false, "multitile": false }, - { "id": "canister_empty", "fg": 590, "rotates": false, "multitile": false }, - { "id": "canister_goo", "fg": 616, "rotates": false, "multitile": false }, - { "id": "canteen", "fg": 349, "rotates": false, "multitile": false }, - { "id": "can_drink", "fg": 1393, "rotates": false, "multitile": false }, - { "id": "can_drink_unsealed", "fg": 858, "rotates": false }, - { "id": "can_food", "fg": 1394, "rotates": false, "multitile": false }, - { "id": "carbine_flintlock", "fg": 509, "rotates": false, "multitile": false }, - { "id": "carding_paddles", "fg": 431, "rotates": false, "multitile": false }, - { "id": "cargo_rack", "fg": 1481, "rotates": false }, - { "id": "carver_off", "fg": 691, "rotates": false, "multitile": false }, - { "id": "carver_on", "fg": 691, "rotates": false, "multitile": false }, - { "id": "cash_card", "fg": 368, "rotates": false, "multitile": false }, - { "id": "cattail_rhizome", "fg": 856, "rotates": false, "multitile": false }, - { "id": "cattail_stalk", "fg": 855, "rotates": false, "multitile": false }, - { "id": "cell_phone", "fg": 472, "rotates": false, "multitile": false }, - { "id": "ceramic_armor", "fg": 506, "rotates": false, "multitile": false }, - { "id": "ceramic_bowl", "fg": 408, "rotates": false, "multitile": false }, - { "id": "ceramic_cup", "fg": 409, "rotates": false, "multitile": false }, - { "id": "ceramic_plate", "fg": 407, "rotates": false, "multitile": false }, - { "id": "cerberus_laser", "fg": 557, "rotates": false, "multitile": false }, - { "id": "cestus", "fg": 456, "rotates": false, "multitile": false }, - { "id": "chainsaw_off", "fg": 599, "rotates": false, "multitile": false }, - { "id": "chainsaw_on", "fg": 599, "rotates": false, "multitile": false }, - { "id": "chain", "fg": 430, "rotates": false, "multitile": false }, - { "id": "charcoal", "fg": 908, "rotates": false, "multitile": false }, - { "id": "charge_shot", "fg": 893, "rotates": false, "multitile": false }, - { "id": "char_forge", "fg": 502, "rotates": false, "multitile": false }, - { "id": "char_kiln", "fg": 505, "rotates": false, "multitile": false }, - { "id": "char_purifier", "fg": 503, "rotates": false, "multitile": false }, - { "id": "char_smoker", "fg": 496, "rotates": false, "multitile": false }, - { "id": "chemistry_set", "fg": 744, "rotates": false, "multitile": false }, - { "id": "chemlab", "fg": 915, "rotates": false }, - { "id": "chem_acetic_acid", "fg": 931, "rotates": false, "multitile": false }, - { "id": "chem_acetone", "fg": 931, "rotates": false, "multitile": false }, - { "id": "chem_aluminium_powder", "fg": 908, "rotates": false, "multitile": false }, - { "id": "chem_aluminium_sulphate", "fg": 348, "rotates": false, "multitile": false }, - { "id": "chem_ammonium_nitrate", "fg": 348, "rotates": false, "multitile": false }, - { "id": "chem_black_powder", "fg": 908, "rotates": false, "multitile": false }, - { "id": "chem_carbide", "fg": 908, "rotates": false, "multitile": false }, - { "id": "chem_hmtd", "fg": 348, "rotates": false, "multitile": false }, - { "id": "chem_hydrogen_peroxide", "fg": 931, "rotates": false, "multitile": false }, - { "id": "chem_hydrogen_peroxide_conc", "fg": 931, "rotates": false, "multitile": false }, - { "id": "chem_nitric_acid", "fg": 931, "rotates": false, "multitile": false }, - { "id": "chem_rdx", "fg": 348, "rotates": false, "multitile": false }, - { "id": "chem_rocket_fuel", "fg": 908, "rotates": false, "multitile": false }, - { "id": "chem_saltpetre", "fg": 348, "rotates": false, "multitile": false }, - { "id": "chem_sulphuric_acid", "fg": 931, "rotates": false, "multitile": false }, - { "id": "chem_thermite", "fg": 908, "rotates": false, "multitile": false }, - { "id": "chem_zinc_powder", "fg": 908, "rotates": false, "multitile": false }, - { "id": "chipper", "fg": 753, "rotates": false, "multitile": false }, - { "id": "chisel", "fg": 753, "rotates": false, "multitile": false }, - { "id": "chitin_piece", "fg": 380, "rotates": false, "multitile": false }, - { "id": "chitin_plate", "fg": 461, "rotates": false, "multitile": false }, - { "id": "choc_drink", "fg": 1395, "rotates": false }, - { "id": "circsaw_blade", "fg": 419, "rotates": false, "multitile": false }, - { "id": "circsaw_off", "fg": 543, "rotates": false, "multitile": false }, - { "id": "circsaw_on", "fg": 543, "rotates": false, "multitile": false }, - { "id": "circuit", "fg": 950, "rotates": false, "multitile": false }, - { "id": "clay_canister", "fg": 833, "rotates": false, "multitile": false }, - { "id": "clay_pot", "fg": 834, "rotates": false, "multitile": false }, - { "id": "clay_quern", "fg": 839, "rotates": false, "multitile": false }, - { "id": "clay_teapot", "fg": 840, "rotates": false, "multitile": false }, - { "id": "clay_watercont", "fg": 834, "rotates": false, "multitile": false }, - { "id": "clip2", "fg": 918, "rotates": false, "multitile": false }, - { "id": "clip", "fg": 918, "rotates": false, "multitile": false }, - { "id": "clockworks", "fg": 419, "rotates": false, "multitile": false }, - { "id": "clock", "fg": 418, "rotates": false, "multitile": false }, - { "id": "clown_suit", "fg": 995, "rotates": false, "multitile": false }, - { "id": "coal", "fg": 382, "rotates": false, "multitile": false }, - { "id": "coffeemaker", "fg": 945, "rotates": false, "multitile": false }, - { "id": "coffee", "fg": 932, "rotates": false, "multitile": false }, - { "id": "coffee_syrup", "fg": 932, "rotates": false, "multitile": false }, - { "id": "coilgun", "fg": 555, "rotates": false, "multitile": false }, - { "id": "colamdew", "fg": 1406, "rotates": false, "multitile": false }, - { "id": "cola", "fg": 932, "rotates": false, "multitile": false }, - { "id": "colt_army", "fg": 518, "rotates": false, "multitile": false }, - { "id": "colt_navy", "fg": 518, "rotates": false, "multitile": false }, - { "id": "combatnail", "fg": 889, "rotates": false, "multitile": false }, - { "id": "combatsaw_off", "fg": 600, "rotates": false, "multitile": false }, - { "id": "combatsaw_on", "fg": 600, "rotates": false, "multitile": false }, - { "id": "compbow", "fg": 894, "rotates": false, "multitile": false }, - { "id": "compositebow", "fg": 894, "rotates": false, "multitile": false }, - { "id": "concrete", "fg": 1401, "rotates": false, "multitile": false }, + { "id": "f_tatami", "fg": 347, "rotates": false }, + { "id": "f_toilet", "fg": 282, "rotates": false }, + { "id": "f_trashcan", "fg": 277, "rotates": false }, + { "id": "f_treadmill", "fg": 264, "rotates": false }, + { "id": "f_vending_c", "fg": 344, "rotates": false }, + { "id": "f_vending_o", "fg": 345, "rotates": false }, + { "id": "f_vending_reinforced", "fg": 247, "rotates": false }, + { "id": "f_washer", "fg": 307, "rotates": false }, + { "id": "f_woodstove", "fg": 339, "rotates": false }, + { "id": "f_wood_keg", "fg": 957, "rotates": false }, + { "id": "f_wreckage", "bg": 1983, "rotates": false }, + { "id": "10mm", "fg": 962, "rotates": false, "multitile": false }, + { "id": "120mm_HEAT", "fg": 967, "rotates": false, "multitile": false }, + { "id": "12mm", "fg": 963, "rotates": false, "multitile": false }, + { "id": "1cyl_combustion", "fg": 881, "rotates": false, "multitile": false }, + { "id": "1cyl_combustion_small", "fg": 881, "rotates": false, "multitile": false }, + { "id": "223", "fg": 962, "rotates": false, "multitile": false }, + { "id": "223_casing", "fg": 966 }, + { "id": "22_casing", "fg": 966 }, + { "id": "22_cb", "fg": 962, "rotates": false, "multitile": false }, + { "id": "22_fmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "22_lr", "fg": 962, "rotates": false, "multitile": false }, + { "id": "22_ratshot", "fg": 962, "rotates": false, "multitile": false }, + { "id": "270", "fg": 962, "rotates": false, "multitile": false }, + { "id": "2lcanteen", "fg": 357, "rotates": false, "multitile": false }, + { "id": "2x4", "fg": 557, "rotates": true }, + { "id": "2_shot_special", "fg": 525, "rotates": false, "multitile": false }, + { "id": "3006fmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "3006", "fg": 962, "rotates": false, "multitile": false }, + { "id": "3006_casing", "fg": 966 }, + { "id": "3006_incendiary", "fg": 962, "rotates": false, "multitile": false }, + { "id": "300_casing", "fg": 966 }, + { "id": "300_winmag", "fg": 962, "rotates": false, "multitile": false }, + { "id": "308", "fg": 962, "rotates": false, "multitile": false }, + { "id": "308_casing", "fg": 966 }, + { "id": "30gal_drum", "fg": 956, "rotates": false }, + { "id": "32_acp", "fg": 962, "rotates": false, "multitile": false }, + { "id": "32_casing", "fg": 966 }, + { "id": "38_casing", "fg": 966 }, + { "id": "38_fmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "38_special", "fg": 962, "rotates": false, "multitile": false }, + { "id": "38_super", "fg": 962, "rotates": false, "multitile": false }, + { "id": "40fmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "40mm_acidbomb", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_beanbag", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_casing", "fg": 966 }, + { "id": "40mm_concussive", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_flare", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_flashbang", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_flechette", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_frag", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_incendiary", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_shot", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_smoke", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40mm_teargas", "fg": 967, "rotates": false, "multitile": false }, + { "id": "40sw", "fg": 962, "rotates": false, "multitile": false }, + { "id": "40_casing", "fg": 966 }, + { "id": "44fmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "44magnum", "fg": 962, "rotates": false, "multitile": false }, + { "id": "44_casing", "fg": 966 }, + { "id": "454_casing", "fg": 966 }, + { "id": "454_Casull", "fg": 962, "rotates": false, "multitile": false }, + { "id": "45_acp", "fg": 962, "rotates": false, "multitile": false }, + { "id": "45_casing", "fg": 966 }, + { "id": "45_jhp", "fg": 962, "rotates": false, "multitile": false }, + { "id": "45_super", "fg": 962, "rotates": false, "multitile": false }, + { "id": "46mm", "fg": 962, "rotates": false, "multitile": false }, + { "id": "46mm_casing", "fg": 966 }, + { "id": "500_casing", "fg": 966 }, + { "id": "500_Magnum", "fg": 962, "rotates": false, "multitile": false }, + { "id": "556", "fg": 962, "rotates": false, "multitile": false }, + { "id": "556_incendiary", "fg": 962, "rotates": false, "multitile": false }, + { "id": "55gal_drum", "fg": 955, "rotates": false }, + { "id": "57mm", "fg": 962, "rotates": false, "multitile": false }, + { "id": "57mm_casing", "fg": 966 }, + { "id": "5x50dart", "fg": 829, "rotates": false, "multitile": false }, + { "id": "5x50heavy", "fg": 829, "rotates": false, "multitile": false }, + { "id": "5x50hull", "fg": 829, "rotates": false, "multitile": false }, + { "id": "5x50_hull", "fg": 949 }, + { "id": "66mm_HEAT", "fg": 967, "rotates": false, "multitile": false }, + { "id": "700nx", "fg": 962, "rotates": false, "multitile": false }, + { "id": "700nx_casing", "fg": 966 }, + { "id": "762R_casing", "fg": 966 }, + { "id": "762_25", "fg": 962, "rotates": false, "multitile": false }, + { "id": "762_25", "fg": 962, "rotates": false, "multitile": false }, + { "id": "762_51", "fg": 962, "rotates": false, "multitile": false }, + { "id": "762_51_incendiary", "fg": 962, "rotates": false, "multitile": false }, + { "id": "762_54R", "fg": 962, "rotates": false, "multitile": false }, + { "id": "762_casing", "fg": 966 }, + { "id": "762_m43", "fg": 962, "rotates": false, "multitile": false }, + { "id": "762_m87", "fg": 962, "rotates": false, "multitile": false }, + { "id": "84x246mm_hedp", "fg": 967, "rotates": false, "multitile": false }, + { "id": "84x246mm_he", "fg": 967, "rotates": false, "multitile": false }, + { "id": "84x246mm_smoke", "fg": 967, "rotates": false, "multitile": false }, + { "id": "8mm_bootleg", "fg": 964, "rotates": false, "multitile": false }, + { "id": "8mm_bootleg_jsp", "fg": 964, "rotates": false, "multitile": false }, + { "id": "8mm_caseless", "fg": 964, "rotates": false, "multitile": false }, + { "id": "8mm_civilian", "fg": 964, "rotates": false, "multitile": false }, + { "id": "8mm_fmj", "fg": 964, "rotates": false, "multitile": false }, + { "id": "8mm_hvp", "fg": 964, "rotates": false, "multitile": false }, + { "id": "8mm_inc", "fg": 964, "rotates": false, "multitile": false }, + { "id": "8mm_jhp", "fg": 964, "rotates": false, "multitile": false }, + { "id": "9mmfmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "9mmP2", "fg": 962, "rotates": false, "multitile": false }, + { "id": "9mmP", "fg": 962, "rotates": false, "multitile": false }, + { "id": "9mm", "fg": 962, "rotates": false, "multitile": false }, + { "id": "9mm_casing", "fg": 966 }, + { "id": "acidbomb", "fg": 644, "rotates": false, "multitile": false }, + { "id": "acidbomb_act", "fg": 645, "rotates": false, "multitile": false }, + { "id": "acid", "fg": 939, "rotates": false, "multitile": false }, + { "id": "acr", "fg": 558, "rotates": false, "multitile": false }, + { "id": "adjustable_stock", "fg": 926, "rotates": false, "multitile": false }, + { "id": "adrenaline_injector", "fg": 756, "rotates": false, "multitile": false }, + { "id": "advanced_ecig", "fg": 380, "rotates": false, "multitile": false }, + { "id": "adv_UPS_off", "fg": 660, "rotates": false, "multitile": false }, + { "id": "adv_UPS_on", "fg": 661, "rotates": false, "multitile": false }, + { "id": "airhorn", "fg": 553, "rotates": false, "multitile": false }, + { "id": "airspeargun", "fg": 527, "rotates": false, "multitile": false }, + { "id": "ak47", "fg": 559, "rotates": false, "multitile": false }, + { "id": "alarmclock", "fg": 542, "rotates": false, "multitile": false }, + { "id": "alloy_plate", "fg": 469, "rotates": false, "multitile": false }, + { "id": "alloy_sheet", "fg": 469, "rotates": false, "multitile": false }, + { "id": "alternator_car", "fg": 1432, "rotates": false, "multitile": false }, + { "id": "alternator_motorbike", "fg": 1432, "rotates": false, "multitile": false }, + { "id": "alternator_truck", "fg": 1432, "rotates": false, "multitile": false }, + { "id": "american_180", "fg": 538, "rotates": false, "multitile": false }, + { "id": "ammonia", "fg": 939, "rotates": false, "multitile": false }, + { "id": "amplifier", "fg": 958, "rotates": false, "multitile": false }, + { "id": "ampoule", "fg": 460, "rotates": false, "multitile": false }, + { "id": "antenna", "fg": 380, "rotates": false, "multitile": false }, + { "id": "anvil", "fg": 759, "rotates": false, "multitile": false }, + { "id": "apple_cider", "fg": 1414, "rotates": false, "multitile": false }, + { "id": "ar15", "fg": 558, "rotates": false, "multitile": false }, + { "id": "arx160", "fg": 558, "rotates": false, "multitile": false }, + { "id": "ashot", "fg": 526, "rotates": false, "multitile": false }, + { "id": "atomic_coffeepot", "fg": 954, "rotates": false, "multitile": false }, + { "id": "atomic_coffee", "fg": 940, "rotates": false, "multitile": false }, + { "id": "atomic_light", "fg": 928, "rotates": false, "multitile": false }, + { "id": "autofire", "fg": 926, "rotates": false, "multitile": false }, + { "id": "aux_flamer", "fg": 926, "rotates": false, "multitile": false }, + { "id": "ax", "fg": 702, "rotates": false, "multitile": false }, + { "id": "bagh_nakha", "fg": 487, "rotates": false, "multitile": false }, + { "id": "bag_apple_vac", "fg": 1372, "rotates": false, "multitile": false }, + { "id": "bag_bundle_10", "fg": 507, "rotates": false, "multitile": false }, + { "id": "bag_canvas", "fg": 1362, "rotates": false, "multitile": false }, + { "id": "bag_canvas_small", "fg": 1362, "rotates": false, "multitile": false }, + { "id": "bag_fish_vac", "fg": 1409, "rotates": false, "multitile": false }, + { "id": "bag_hflesh_vac", "fg": 1370, "rotates": false, "multitile": false }, + { "id": "bag_meat_vac", "fg": 1370, "rotates": false, "multitile": false }, + { "id": "bag_plastic", "fg": 507, "rotates": false }, + { "id": "bag_veggy_vac", "fg": 1371, "rotates": false, "multitile": false }, + { "id": "barometer", "fg": 426, "rotates": false, "multitile": false }, + { "id": "barrel_big", "fg": 926, "rotates": false, "multitile": false }, + { "id": "barrel_ported", "fg": 926, "rotates": false, "multitile": false }, + { "id": "barrel_rifled", "fg": 926, "rotates": false, "multitile": false }, + { "id": "barrel_small", "fg": 926, "rotates": false, "multitile": false }, + { "id": "baseball", "fg": 929, "rotates": false, "multitile": false }, + { "id": "basket", "fg": 1477, "rotates": false }, + { "id": "baton-extended", "fg": 449, "rotates": false, "multitile": false }, + { "id": "baton", "fg": 449, "rotates": false, "multitile": false }, + { "id": "battery", "fg": 909, "rotates": false, "multitile": false }, + { "id": "battery_atomic", "fg": 549, "rotates": false, "multitile": false }, + { "id": "battery_car", "fg": 882, "rotates": false }, + { "id": "battery_compartment", "fg": 579, "rotates": false, "multitile": false }, + { "id": "battery_motorbike", "fg": 882, "rotates": false }, + { "id": "battery_truck", "fg": 882, "rotates": false }, + { "id": "battery_ups", "fg": 741, "rotates": false, "multitile": false }, + { "id": "battleaxe", "fg": 497, "rotates": false, "multitile": false }, + { "id": "battleaxe_fake", "fg": 497, "rotates": false, "multitile": false }, + { "id": [ "battleaxe_fake", "battleaxe_inferior", "battleaxe" ], "fg": 869, "rotates": false }, + { "id": "battletorch", "fg": 498, "rotates": false, "multitile": false }, + { "id": "battletorch_done", "fg": 488, "rotates": false, "multitile": false }, + { "id": "battletorch_lit", "fg": 499, "rotates": false, "multitile": false }, + { "id": "bat", "fg": 446, "rotates": false, "multitile": false }, + { "id": "bat_metal", "fg": 447, "rotates": false, "multitile": false }, + { "id": "bayonet", "fg": 926, "rotates": false, "multitile": false }, + { "id": "bbgun", "fg": 517, "rotates": false, "multitile": false }, + { "id": "bb", "fg": 910, "rotates": false, "multitile": false }, + { "id": "bearing", "fg": 910, "rotates": false, "multitile": false }, + { "id": "beartrap", "fg": 612, "rotates": false, "multitile": false }, + { "id": "beer", "fg": 940, "rotates": false, "multitile": false }, + { "id": "bee_sting", "fg": 450, "rotates": false, "multitile": false }, + { "id": "belgian_ale", "fg": 940, "rotates": false, "multitile": false }, + { "id": "bigun", "fg": 544, "rotates": false, "multitile": false }, + { "id": "binoculars", "fg": 393, "rotates": false, "multitile": false }, + { "id": "biollante_bud", "fg": 389, "rotates": false, "multitile": false }, + { "id": "bio_adrenaline", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_ads", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_alarm", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_ankles", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_armor_arms", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_armor_eyes", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_armor_head", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_armor_legs", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_armor_torso", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_batteries", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_blade", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_blade_weapon", "fg": 698, "rotates": false, "multitile": false }, + { "id": "bio_blaster", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_blood_anal", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_blood_filter", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_carbon", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_chain_lightning", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_claws", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_claws_weapon", "fg": 487, "rotates": false, "multitile": false }, + { "id": "bio_climate", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_cloak", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_cqb", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_deformity", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_dex_enhancer", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_digestion", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_dis_acid", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_dis_shock", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_drain", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_ears", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_emp", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_ethanol", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_evap", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_eye_enhancer", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_face_mask", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_faraday", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_fingerhack", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_flashbang", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_flashlight", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_furnace", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_geiger", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_gills", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_ground_sonar", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_heatsink", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_heat_absorb", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_hydraulics", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_infrared", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_int_enhancer", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_itchy", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_laser", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_leaky", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_leukocyte", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_lighter", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_lockpick", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_magnet", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_membrane", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_memory", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_metabolics", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_meteorologist", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_nanobots", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_night", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_night_vision", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_noise", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_nostril", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_null", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_ods", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_painkiller", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_pokedeye", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_power_armor_interface", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_power_armor_interface_mkII", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_power_storage", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_power_storage_mkII", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_power_weakness", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_probability_travel", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_purifier", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_radscrubber", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_railgun", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_razors", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_recycler", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_remote", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_resonator", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_scent_mask", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_scent_vision", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_shakes", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_shockwave", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_shock", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_sleepy", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_solar", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_spasm", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_speed", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_stiff", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_storage", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_str_enhancer", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_sunglasses", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_targeting", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_teleport", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_thumbs", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_time_freeze", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_tools", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_torsionratchet", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_trip", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_uncanny_dodge", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_ups", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_voice", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_watch", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bio_water_extractor", "fg": 1243, "rotates": false, "multitile": false }, + { "id": "bipod", "fg": 926, "rotates": false, "multitile": false }, + { "id": "bismuth", "fg": 912, "rotates": false, "multitile": false }, + { "id": "black_box", "fg": 597, "rotates": false, "multitile": false }, + { "id": "black_box_transcript", "fg": 907, "rotates": false, "multitile": false }, + { "id": "blade", "fg": 397, "rotates": false, "multitile": false }, + { "id": "blade_trap", "fg": 617, "rotates": false, "multitile": false }, + { "id": "bleach", "fg": 939, "rotates": false, "multitile": false }, + { "id": "blood", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "blowback", "fg": 926, "rotates": false, "multitile": false }, + { "id": "blowgun", "fg": 432, "rotates": false, "multitile": false }, + { "id": "bluebell_bud", "fg": 383, "rotates": false, "multitile": false }, + { "id": "bluebell_flower", "fg": 878, "rotates": false, "multitile": false }, + { "id": "blunderbuss", "fg": 534, "rotates": false, "multitile": false }, + { "id": "blun_flechette", "fg": 961, "rotates": false, "multitile": false }, + { "id": "blun_shot", "fg": 961, "rotates": false, "multitile": false }, + { "id": "blun_slug", "fg": 961, "rotates": false, "multitile": false }, + { "id": "board_trap", "fg": 613, "rotates": false, "multitile": false }, + { "id": "bokken", "fg": 834, "rotates": false, "multitile": false }, + { "id": "boltcutters", "fg": 716, "rotates": false, "multitile": false }, + { "id": "bone_glue", "fg": 845, "rotates": false, "multitile": false }, + { "id": "bone_plate", "fg": 468, "rotates": false, "multitile": false }, + { "id": "boobytrap", "fg": 669, "rotates": false, "multitile": false }, + { "id": "bootstrap", "fg": 927, "rotates": false, "multitile": false }, + { "id": "bottle_glass", "fg": 519, "rotates": false }, + { "id": "bottle_plastic", "fg": 1403, "rotates": false }, + { "id": "bottle_plastic_small", "fg": 1403, "rotates": false }, + { "id": "bot_laserturret", "fg": 368, "rotates": false, "multitile": false }, + { "id": "bot_manhack", "fg": 656, "rotates": false, "multitile": false }, + { "id": "bot_rifleturret", "fg": 572, "rotates": false, "multitile": false }, + { "id": "bot_turret", "fg": 657, "rotates": false, "multitile": false }, + { "id": "bowling_axe", "fg": 788, "rotates": false, "multitile": false }, + { "id": "bowling_ball", "fg": 395, "rotates": false, "multitile": false }, + { "id": "bowling_pin", "fg": 787, "rotates": false, "multitile": false }, + { "id": "bowl_clay", "fg": 840, "rotates": false, "multitile": false }, + { "id": "bowl_pewter", "fg": 429, "rotates": false, "multitile": false }, + { "id": "bowl_plastic", "fg": 365, "rotates": false, "multitile": false }, + { "id": "bow_sight", "fg": 926, "rotates": false, "multitile": false }, + { "id": "box_small", "fg": 508, "rotates": false }, + { "id": "brass_catcher", "fg": 926, "rotates": false, "multitile": false }, + { "id": "brazier", "fg": 708, "rotates": false, "multitile": false }, + { "id": "brew_dandelion_wine", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "brew_hb_beer", "fg": 940, "rotates": false, "multitile": false }, + { "id": "brew_mead", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "brew_moonshine", "fg": 940, "rotates": false, "multitile": false }, + { "id": "brew_pine_wine", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "brew_rum", "fg": 939, "rotates": false, "multitile": false }, + { "id": "brew_vinegar", "fg": 942, "rotates": false, "multitile": false }, + { "id": "brew_vodka", "fg": 939, "rotates": false, "multitile": false }, + { "id": "brew_whiskey", "fg": 940, "rotates": false, "multitile": false }, + { "id": "brick", "fg": 846, "rotates": false, "multitile": false }, + { "id": "brick_kiln", "fg": 513, "rotates": false, "multitile": false }, + { "id": "briefcase_smg", "fg": 926, "rotates": false, "multitile": false }, + { "id": "broadfire_off", "fg": 692, "rotates": false, "multitile": false }, + { "id": "broadfire_on", "fg": 693, "rotates": false, "multitile": false }, + { "id": "broadsword", "fg": 690, "rotates": false, "multitile": false }, + { "id": "broadsword_fake", "fg": 690, "rotates": false, "multitile": false }, + { "id": "broken_copbot", "fg": 742, "rotates": false }, + { "id": "broken_eyebot", "fg": 738, "rotates": false }, + { "id": "broken_manhack", "fg": 656, "rotates": false, "multitile": false }, + { "id": "broken_molebot", "fg": 743, "rotates": false }, + { "id": "broken_riotbot", "fg": 742, "rotates": false }, + { "id": "broken_skitterbot", "fg": 739, "rotates": false }, + { "id": "broken_tankbot", "fg": 747, "rotates": false }, + { "id": "broken_tripod", "fg": 744, "rotates": false }, + { "id": "broketent", "fg": 407, "rotates": false, "multitile": false }, + { "id": "broom", "fg": 439, "rotates": false, "multitile": false }, + { "id": "broth", "fg": 940, "rotates": false, "multitile": false }, + { "id": "broth_bone", "fg": 940, "rotates": false, "multitile": false }, + { "id": "browning_blr", "fg": 517, "rotates": false, "multitile": false }, + { "id": "bubblewrap", "fg": 611, "rotates": false, "multitile": false }, + { "id": "bullet_crossbow", "fg": 903, "rotates": false, "multitile": false }, + { "id": "bullwhip", "fg": 783, "rotates": false, "multitile": false }, + { "id": "bum_wine", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "burnt_out_bionic", "fg": 379, "rotates": false, "multitile": false }, + { "id": "bwirebat", "fg": 498, "rotates": false, "multitile": false }, + { "id": "b_paint", "fg": 398, "rotates": false, "multitile": false }, + { "id": "c4armed", "fg": 671, "rotates": false, "multitile": false }, + { "id": "c4", "fg": 670, "rotates": false, "multitile": false }, + { "id": "cable", "fg": 895, "rotates": false, "multitile": false }, + { "id": "calico", "fg": 524, "rotates": false, "multitile": false }, + { "id": "caltrops", "fg": 906, "rotates": false }, + { "id": "camera_control", "fg": 1450, "rotates": false, "multitile": false }, + { "id": "candlestick", "fg": 396, "rotates": false, "multitile": false }, + { "id": "candle", "fg": 706, "rotates": false, "multitile": false }, + { "id": "candle_lit", "fg": 707, "rotates": false, "multitile": false }, + { "id": "cane", "fg": 452, "rotates": false, "multitile": false }, + { "id": "canister_empty", "fg": 598, "rotates": false, "multitile": false }, + { "id": "canister_goo", "fg": 624, "rotates": false, "multitile": false }, + { "id": "canteen", "fg": 357, "rotates": false, "multitile": false }, + { "id": "can_drink", "fg": 1401, "rotates": false, "multitile": false }, + { "id": "can_drink_unsealed", "fg": 866, "rotates": false }, + { "id": "can_food", "fg": 1402, "rotates": false, "multitile": false }, + { "id": "carbine_flintlock", "fg": 517, "rotates": false, "multitile": false }, + { "id": "carding_paddles", "fg": 439, "rotates": false, "multitile": false }, + { "id": "cargo_rack", "fg": 1489, "rotates": false }, + { "id": "carver_off", "fg": 699, "rotates": false, "multitile": false }, + { "id": "carver_on", "fg": 699, "rotates": false, "multitile": false }, + { "id": "cash_card", "fg": 376, "rotates": false, "multitile": false }, + { "id": "cattail_rhizome", "fg": 864, "rotates": false, "multitile": false }, + { "id": "cattail_stalk", "fg": 863, "rotates": false, "multitile": false }, + { "id": "cell_phone", "fg": 480, "rotates": false, "multitile": false }, + { "id": "ceramic_armor", "fg": 514, "rotates": false, "multitile": false }, + { "id": "ceramic_bowl", "fg": 416, "rotates": false, "multitile": false }, + { "id": "ceramic_cup", "fg": 417, "rotates": false, "multitile": false }, + { "id": "ceramic_plate", "fg": 415, "rotates": false, "multitile": false }, + { "id": "cerberus_laser", "fg": 565, "rotates": false, "multitile": false }, + { "id": "cestus", "fg": 464, "rotates": false, "multitile": false }, + { "id": "chainsaw_off", "fg": 607, "rotates": false, "multitile": false }, + { "id": "chainsaw_on", "fg": 607, "rotates": false, "multitile": false }, + { "id": "chain", "fg": 438, "rotates": false, "multitile": false }, + { "id": "charcoal", "fg": 916, "rotates": false, "multitile": false }, + { "id": "charge_shot", "fg": 901, "rotates": false, "multitile": false }, + { "id": "char_forge", "fg": 510, "rotates": false, "multitile": false }, + { "id": "char_kiln", "fg": 513, "rotates": false, "multitile": false }, + { "id": "char_purifier", "fg": 511, "rotates": false, "multitile": false }, + { "id": "char_smoker", "fg": 504, "rotates": false, "multitile": false }, + { "id": "chemistry_set", "fg": 752, "rotates": false, "multitile": false }, + { "id": "chemlab", "fg": 923, "rotates": false }, + { "id": "chem_acetic_acid", "fg": 939, "rotates": false, "multitile": false }, + { "id": "chem_acetone", "fg": 939, "rotates": false, "multitile": false }, + { "id": "chem_aluminium_powder", "fg": 916, "rotates": false, "multitile": false }, + { "id": "chem_aluminium_sulphate", "fg": 356, "rotates": false, "multitile": false }, + { "id": "chem_ammonium_nitrate", "fg": 356, "rotates": false, "multitile": false }, + { "id": "chem_black_powder", "fg": 916, "rotates": false, "multitile": false }, + { "id": "chem_carbide", "fg": 916, "rotates": false, "multitile": false }, + { "id": "chem_hmtd", "fg": 356, "rotates": false, "multitile": false }, + { "id": "chem_hydrogen_peroxide", "fg": 939, "rotates": false, "multitile": false }, + { "id": "chem_hydrogen_peroxide_conc", "fg": 939, "rotates": false, "multitile": false }, + { "id": "chem_nitric_acid", "fg": 939, "rotates": false, "multitile": false }, + { "id": "chem_rdx", "fg": 356, "rotates": false, "multitile": false }, + { "id": "chem_rocket_fuel", "fg": 916, "rotates": false, "multitile": false }, + { "id": "chem_saltpetre", "fg": 356, "rotates": false, "multitile": false }, + { "id": "chem_sulphuric_acid", "fg": 939, "rotates": false, "multitile": false }, + { "id": "chem_thermite", "fg": 916, "rotates": false, "multitile": false }, + { "id": "chem_zinc_powder", "fg": 916, "rotates": false, "multitile": false }, + { "id": "chipper", "fg": 761, "rotates": false, "multitile": false }, + { "id": "chisel", "fg": 761, "rotates": false, "multitile": false }, + { "id": "chitin_piece", "fg": 388, "rotates": false, "multitile": false }, + { "id": "chitin_plate", "fg": 469, "rotates": false, "multitile": false }, + { "id": "choc_drink", "fg": 1403, "rotates": false }, + { "id": "circsaw_blade", "fg": 427, "rotates": false, "multitile": false }, + { "id": "circsaw_off", "fg": 551, "rotates": false, "multitile": false }, + { "id": "circsaw_on", "fg": 551, "rotates": false, "multitile": false }, + { "id": "circuit", "fg": 958, "rotates": false, "multitile": false }, + { "id": "clay_canister", "fg": 841, "rotates": false, "multitile": false }, + { "id": "clay_pot", "fg": 842, "rotates": false, "multitile": false }, + { "id": "clay_quern", "fg": 847, "rotates": false, "multitile": false }, + { "id": "clay_teapot", "fg": 848, "rotates": false, "multitile": false }, + { "id": "clay_watercont", "fg": 842, "rotates": false, "multitile": false }, + { "id": "clip2", "fg": 926, "rotates": false, "multitile": false }, + { "id": "clip", "fg": 926, "rotates": false, "multitile": false }, + { "id": "clockworks", "fg": 427, "rotates": false, "multitile": false }, + { "id": "clock", "fg": 426, "rotates": false, "multitile": false }, + { "id": "clown_suit", "fg": 1003, "rotates": false, "multitile": false }, + { "id": "coal", "fg": 390, "rotates": false, "multitile": false }, + { "id": "coffeemaker", "fg": 953, "rotates": false, "multitile": false }, + { "id": "coffee", "fg": 940, "rotates": false, "multitile": false }, + { "id": "coffee_syrup", "fg": 940, "rotates": false, "multitile": false }, + { "id": "coilgun", "fg": 563, "rotates": false, "multitile": false }, + { "id": "colamdew", "fg": 1414, "rotates": false, "multitile": false }, + { "id": "cola", "fg": 940, "rotates": false, "multitile": false }, + { "id": "colt_army", "fg": 526, "rotates": false, "multitile": false }, + { "id": "colt_navy", "fg": 526, "rotates": false, "multitile": false }, + { "id": "combatnail", "fg": 897, "rotates": false, "multitile": false }, + { "id": "combatsaw_off", "fg": 608, "rotates": false, "multitile": false }, + { "id": "combatsaw_on", "fg": 608, "rotates": false, "multitile": false }, + { "id": "compbow", "fg": 902, "rotates": false, "multitile": false }, + { "id": "compositebow", "fg": 902, "rotates": false, "multitile": false }, + { "id": "concrete", "fg": 1409, "rotates": false, "multitile": false }, { "id": "controls", - "fg": 881, - "rotates": true, - "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] - }, - { "id": "control_laptop", "fg": 422, "rotates": false, "multitile": false }, - { "id": "conversion_battle", "fg": 918, "rotates": false, "multitile": false }, - { "id": "conversion_sniper", "fg": 918, "rotates": false, "multitile": false }, - { "id": "con_mix", "fg": 849, "rotates": false, "multitile": false }, - { "id": "cooking_oil", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "copper", "fg": 822, "rotates": false, "multitile": false }, - { "id": "cop_38", "fg": 517, "rotates": false, "multitile": false }, - { "id": "cordless_drill", "fg": 732, "rotates": false, "multitile": false }, - { "id": "corpse", "fg": 864, "rotates": false }, - { "id": "cot", "fg": 667, "rotates": false, "multitile": false }, - { "id": "cow_bell", "fg": 546, "rotates": false, "multitile": false }, - { "id": "crackpipe", "fg": 745, "rotates": false, "multitile": false }, - { "id": "crafted_suppressor", "fg": 918, "rotates": false, "multitile": false }, - { "id": "craftrig", "fg": 1478, "rotates": true }, - { "id": "cranberry_juice", "fg": 1395, "rotates": false }, - { "id": "creamsoda", "fg": 934, "rotates": false, "multitile": false }, - { "id": "creepy_doll", "fg": 738, "rotates": false, "multitile": false }, - { "id": "crossbow", "fg": 895, "rotates": false, "multitile": false }, - { "id": "crossbow_trap", "fg": 607, "rotates": false, "multitile": false }, - { "id": "crowbar", "fg": 594, "rotates": false, "multitile": false }, - { "id": "crucible", "fg": 750, "rotates": false, "multitile": false }, - { "id": "crude_brick", "fg": 841, "rotates": false, "multitile": false }, - { "id": "crude_picklock", "fg": 711, "rotates": false, "multitile": false }, - { "id": "cs_lajatang_off", "fg": 486, "rotates": false, "multitile": false }, - { "id": "cs_lajatang_on", "fg": 486, "rotates": false, "multitile": false }, - { "id": "cudgel", "fg": 725, "rotates": false, "multitile": false }, - { "id": "cup_plastic", "fg": 912, "rotates": false, "multitile": false }, - { "id": "curry_veggy", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "cu_pipe", "fg": 869, "rotates": false, "multitile": false }, - { "id": "cx4", "fg": 515, "rotates": false, "multitile": false }, - { "id": "c_fishspear", "fg": 678, "rotates": false, "multitile": false }, - { "id": "dahlia_bud", "fg": 469, "rotates": false, "multitile": false }, - { "id": "dahlia_flower", "fg": 910, "rotates": false, "multitile": false }, - { "id": "damaged_shelter_kit", "fg": 726, "rotates": false, "multitile": false }, - { "id": "dandelion_tea", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "dandelion_wine", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "dart", "fg": 890, "rotates": false, "multitile": false }, - { "id": "deagle_44", "fg": 518, "rotates": false, "multitile": false }, - { "id": "dehydrator", "fg": 497, "rotates": false, "multitile": false }, - { "id": "diamond", "fg": 540, "rotates": false, "multitile": false }, - { "id": "diamond_bayonet", "fg": 918, "rotates": false, "multitile": false }, - { "id": "diamond_broadsword", "fg": 847, "rotates": false, "multitile": false }, - { "id": "diamond_katana", "fg": 683, "rotates": false, "multitile": false }, - { "id": "diamond_knife", "fg": 688, "rotates": false, "multitile": false }, - { "id": "diamond_kukri", "fg": 683, "rotates": false, "multitile": false }, - { "id": "diamond_machete", "fg": 687, "rotates": false, "multitile": false }, - { "id": "diamond_nodachi", "fg": 683, "rotates": false, "multitile": false }, - { "id": "diamond_pistol_bayonet", "fg": 918, "rotates": false, "multitile": false }, - { "id": "diamond_rapier", "fg": 848, "rotates": false, "multitile": false }, - { "id": "diamond_sword_bayonet", "fg": 918, "rotates": false, "multitile": false }, - { "id": "diamond_wakizashi", "fg": 683, "rotates": false, "multitile": false }, - { "id": "diamond_zweihander", "fg": 847, "rotates": false, "multitile": false }, - { "id": "diesel", "fg": 934, "rotates": false, "multitile": false }, - { "id": "digging_stick", "fg": 424, "rotates": false, "multitile": false }, - { "id": "directional_antenna", "fg": 588, "rotates": false, "multitile": false }, - { "id": "distaff_spindle", "fg": 977, "rotates": false, "multitile": false }, - { "id": "diveknife", "fg": 690, "rotates": false, "multitile": false }, - { "id": "dogfood", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "dog_whistle", "fg": 664, "rotates": false, "multitile": false }, - { "id": "door_opaque", "fg": 1456, "rotates": false }, - { "id": "doublespeargun", "fg": 526, "rotates": false, "multitile": false }, - { "id": "down_feather", "fg": 891, "rotates": false, "multitile": false }, - { "id": "drink_beeknees", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "drink_hobo", "fg": 932, "rotates": false, "multitile": false }, - { "id": "drink_kalimotxo", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "drink_rumcola", "fg": 932, "rotates": false, "multitile": false }, - { "id": "drink_screwdriver", "fg": 933, "rotates": false, "multitile": false }, - { "id": "drink_sewerbrew", "fg": 932, "rotates": false, "multitile": false }, - { "id": "drink_wild_apple", "fg": 1406, "rotates": false, "multitile": false }, - { "id": "drink_wsour", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "drive_by_wire_controls", "fg": 1443, "rotates": false, "multitile": false }, - { "id": "DRUM", "fg": 359, "rotates": false, "multitile": false }, - { "id": "duct_tape", "fg": 900, "rotates": false, "multitile": false }, - { "id": "dump_pouch", "fg": 1230, "rotates": false, "multitile": false }, - { "id": "dynamite", "fg": 638, "rotates": false, "multitile": false }, - { "id": "dynamite_act", "fg": 639, "rotates": false, "multitile": false }, - { "id": "dynamite_radio", "fg": 800, "rotates": false, "multitile": false }, - { "id": "dynamite_radio_act", "fg": 801, "rotates": false, "multitile": false }, - { "id": "ear_spool", "fg": 943, "rotates": false, "multitile": false }, - { "id": "ecig", "fg": 373, "rotates": false, "multitile": false }, - { "id": "eink_tablet_pc", "fg": 718, "rotates": false, "multitile": false }, - { "id": "electrohack", "fg": 367, "rotates": false, "multitile": false }, - { "id": "elec_chainsaw_off", "fg": 599, "rotates": false, "multitile": false }, - { "id": "elec_chainsaw_on", "fg": 599, "rotates": false, "multitile": false }, - { "id": "elec_jackhammer", "fg": 601, "rotates": false, "multitile": false }, - { "id": "element", "fg": 400, "rotates": false, "multitile": false }, - { "id": "EMPbomb", "fg": 625, "rotates": false, "multitile": false }, - { "id": "EMPbomb_act", "fg": 626, "rotates": false, "multitile": false }, - { "id": "energy_drink", "fg": 1407, "rotates": false, "multitile": false }, - { "id": "energy_drink_atomic", "fg": 1406, "rotates": false, "multitile": false }, - { "id": "etched_skull", "fg": 659, "rotates": false, "multitile": false }, - { "id": "european_pilsner", "fg": 932, "rotates": false, "multitile": false }, - { "id": "explosive_hm_rocket", "fg": 823, "rotates": false, "multitile": false }, - { "id": "extinguisher", "fg": 570, "rotates": false, "multitile": false }, - { "id": "e_scrap", "fg": 951, "rotates": false, "multitile": false }, - { "id": "e_tool", "fg": 596, "rotates": false, "multitile": false }, - { "id": "fan", "fg": 406, "rotates": false, "multitile": false }, - { "id": "feather", "fg": 891, "rotates": false, "multitile": false }, - { "id": "felt_patch", "fg": 477, "rotates": false }, - { "id": "fencing_epee", "fg": 679, "rotates": false, "multitile": false }, - { "id": "fencing_foil", "fg": 679, "rotates": false, "multitile": false }, - { "id": "fencing_sabre", "fg": 679, "rotates": false, "multitile": false }, - { "id": "fertilizer", "fg": 1326, "rotates": false, "multitile": false }, - { "id": "fertilizer_bomb", "fg": 805, "rotates": false, "multitile": false }, - { "id": "fertilizer_bomb_act", "fg": 806, "rotates": false, "multitile": false }, - { "id": "fertilizer_liquid", "fg": 931, "rotates": false, "multitile": false }, - { "id": "fighter_sting", "fg": 481, "rotates": false, "multitile": false }, - { "id": "file", "fg": 899, "rotates": false, "multitile": false }, - { "id": "firecracker", "fg": 642, "rotates": false, "multitile": false }, - { "id": "firecracker_act", "fg": 643, "rotates": false, "multitile": false }, - { "id": "firecracker_pack", "fg": 640, "rotates": false, "multitile": false }, - { "id": "firecracker_pack_act", "fg": 641, "rotates": false, "multitile": false }, - { "id": "firekatana_off", "fg": 676, "rotates": false, "multitile": false }, - { "id": "firekatana_on", "fg": 677, "rotates": false, "multitile": false }, - { "id": "firemachete_off", "fg": 673, "rotates": false, "multitile": false }, - { "id": "firemachete_on", "fg": 674, "rotates": false, "multitile": false }, - { "id": "fire_ax", "fg": 487, "rotates": false, "multitile": false }, - { "id": "fire_drill", "fg": 565, "rotates": false, "multitile": false }, - { "id": "fire_drill_large", "fg": 565, "rotates": false, "multitile": false }, - { "id": "fishing_hook_basic", "fg": 532, "rotates": false, "multitile": false }, - { "id": "fishing_rod_basic", "fg": 531, "rotates": false, "multitile": false }, - { "id": "fishing_rod_professional", "fg": 808, "rotates": false, "multitile": false }, - { "id": "fishspear", "fg": 680, "rotates": false, "multitile": false }, - { "id": "fish_bowl", "fg": 475, "rotates": false, "multitile": false }, - { "id": "fish_trap", "fg": 584, "rotates": false, "multitile": false }, - { "id": "flamable_arrow", "fg": 633, "rotates": false, "multitile": false }, - { "id": "flamethrower", "fg": 558, "rotates": false, "multitile": false }, - { "id": "flamethrower_crude", "fg": 559, "rotates": false, "multitile": false }, - { "id": "flamethrower_simple", "fg": 558, "rotates": false, "multitile": false }, - { "id": "flaregun", "fg": 513, "rotates": false, "multitile": false }, - { "id": "flashbang", "fg": 623, "rotates": false, "multitile": false }, - { "id": "flashbang_act", "fg": 624, "rotates": false, "multitile": false }, - { "id": "flashlight", "fg": 574, "rotates": false, "multitile": false }, - { "id": "flashlight_on", "fg": 575, "rotates": false, "multitile": false }, - { "id": "flask_glass", "fg": 352, "rotates": false, "multitile": false }, - { "id": "flask_hip", "fg": 973, "rotates": false, "multitile": false }, - { "id": "flask_yeast", "fg": 352, "rotates": false, "multitile": false }, - { "id": "fletching", "fg": 892, "rotates": false, "multitile": false }, - { "id": "flintlock_ammo", "fg": 521, "rotates": false, "multitile": false }, - { "id": "floodlight", "fg": 1510, "rotates": false }, - { "id": "flyer", "fg": 899, "rotates": false, "multitile": false }, - { "id": "fn57", "fg": 518, "rotates": false, "multitile": false }, - { "id": "fn_fal", "fg": 551, "rotates": false, "multitile": false }, - { "id": "fn_p90", "fg": 536, "rotates": false, "multitile": false }, - { "id": "foldframe", "fg": 923, "rotates": false }, - { "id": "folding_basket", "fg": 842, "rotates": false }, - { "id": "folding_bicycle", "fg": 740, "rotates": false, "multitile": false }, - { "id": "foon", "fg": 414, "rotates": false, "multitile": false }, - { "id": "football", "fg": 922, "rotates": false, "multitile": false }, - { "id": "foot_crank", "fg": 453, "rotates": false, "multitile": false }, - { "id": "forgerig", "fg": 879, "rotates": false }, - { "id": "forge", "fg": 501, "rotates": false, "multitile": false }, - { "id": "fork", "fg": 414, "rotates": false, "multitile": false }, - { "id": "frame", "fg": 670, "rotates": false }, - { "id": "frame_wood", "fg": 925, "rotates": false }, - { "id": "frame_wood_light", "fg": 925, "rotates": false }, - { "id": "ftk93", "fg": 556, "rotates": false, "multitile": false }, - { "id": "funnel", "fg": 701, "rotates": false, "multitile": false }, - { "id": "fur_cat_tail", "fg": 523, "rotates": false }, - { "id": "gasbomb", "fg": 629, "rotates": false, "multitile": false }, - { "id": "gasbomb_act", "fg": 630, "rotates": false, "multitile": false }, - { "id": "gasdiscount_gold", "fg": 368, "rotates": false, "multitile": false }, - { "id": "gasdiscount_platinum", "fg": 820, "rotates": false, "multitile": false }, - { "id": "gasdiscount_silver", "fg": 820, "rotates": false, "multitile": false }, - { "id": "gasoline", "fg": 934, "rotates": false, "multitile": false }, - { "id": "gasoline_lantern", "fg": 927, "rotates": false, "multitile": false }, - { "id": "gasoline_lantern_on", "fg": 928, "rotates": false, "multitile": false }, - { "id": "geiger_off", "fg": 613, "rotates": false, "multitile": false }, - { "id": "geiger_on", "fg": 614, "rotates": false, "multitile": false }, - { "id": "generic_no_ammo", "fg": 953, "rotates": false, "multitile": false }, - { "id": "gin", "fg": 931, "rotates": false, "multitile": false }, - { "id": "glass", "fg": 412, "rotates": false, "multitile": false }, - { "id": "glass_bowl", "fg": 411, "rotates": false, "multitile": false }, - { "id": "glass_macuahuitl", "fg": 880, "rotates": false, "multitile": false }, - { "id": "glass_plate", "fg": 410, "rotates": false, "multitile": false }, - { "id": "glass_shard", "fg": 913, "rotates": false, "multitile": false }, - { "id": "glass_sheet", "fg": 376, "rotates": false, "multitile": false }, - { "id": "glass_shiv", "fg": 688, "rotates": false, "multitile": false }, - { "id": "glock_19", "fg": 518, "rotates": false, "multitile": false }, - { "id": "glowstick", "fg": 579, "rotates": false, "multitile": false }, - { "id": "glowstick_dead", "fg": 581, "rotates": false, "multitile": false }, - { "id": "glowstick_lit", "fg": 580, "rotates": false, "multitile": false }, - { "id": "gold", "fg": 1256, "rotates": false, "multitile": false }, - { "id": "gold_small", "fg": 905, "rotates": false, "multitile": false }, - { "id": "golf_club", "fg": 483, "rotates": false, "multitile": false }, - { "id": "granade", "fg": 621, "rotates": false, "multitile": false }, - { "id": "granade_act", "fg": 622, "rotates": false, "multitile": false }, - { "id": "grapnel", "fg": 774, "rotates": false, "multitile": false }, - { "id": "grenade", "fg": 619, "rotates": false, "multitile": false }, - { "id": "grenade_act", "fg": 620, "rotates": false, "multitile": false }, - { "id": "grenade_inc", "fg": 764, "rotates": false, "multitile": false }, - { "id": "grenade_inc_act", "fg": 765, "rotates": false, "multitile": false }, - { "id": "grip", "fg": 918, "rotates": false, "multitile": false }, - { "id": "GUITAR", "fg": 358, "rotates": false, "multitile": false }, - { "id": "gunpowder", "fg": 908, "rotates": false, "multitile": false }, - { "id": "gun_crossbow", "fg": 918, "rotates": false, "multitile": false }, - { "id": "g_carpet", "fg": 761, "rotates": false }, - { "id": "g_paint", "fg": 1397, "rotates": false, "multitile": false }, - { "id": "g_shovel", "fg": 596, "rotates": false, "multitile": false }, - { "id": "h&k416a5", "fg": 550, "rotates": false, "multitile": false }, - { "id": "hacksaw", "fg": 695, "rotates": false, "multitile": false }, - { "id": "halligan", "fg": 594, "rotates": false, "multitile": false }, - { "id": "hammer", "fg": 569, "rotates": false, "multitile": false }, - { "id": "hammer_sledge", "fg": 432, "rotates": false, "multitile": false }, - { "id": "handflare", "fg": 929, "rotates": false, "multitile": false }, - { "id": "handflare_dead", "fg": 938, "rotates": false, "multitile": false }, - { "id": "handflare_lit", "fg": 930, "rotates": false, "multitile": false }, - { "id": "hand_rims", "fg": 783, "rotates": false, "multitile": false }, - { "id": "hard_plate", "fg": 464, "rotates": false, "multitile": false }, - { "id": "hatchet", "fg": 694, "rotates": false, "multitile": false }, - { "id": "hb_beer", "fg": 932, "rotates": false, "multitile": false }, - { "id": "hdframe", "fg": 924, "rotates": false }, - { "id": "hd_steel_drum", "fg": 947, "rotates": false }, - { "id": "headlight_reinforced", "fg": 916, "rotates": false }, - { "id": "heatpack", "fg": 727, "rotates": false, "multitile": false }, - { "id": "heatpack_used", "fg": 728, "rotates": false, "multitile": false }, - { "id": "heavy_rail_rifle", "fg": 536, "rotates": false, "multitile": false }, - { "id": "heavy_snare_kit", "fg": 610, "rotates": false, "multitile": false }, - { "id": "helmet_chitin", "fg": 1145, "rotates": false, "multitile": false }, - { "id": "helmet_liner", "fg": 1142, "rotates": false, "multitile": false }, - { "id": "helmet_lobster", "fg": 1136, "rotates": false, "multitile": false }, - { "id": "helmet_lobster", "fg": 1003, "rotates": false, "multitile": false }, - { "id": "helmet_motor", "fg": 993, "rotates": false, "multitile": false }, - { "id": "helmet_netting", "fg": 1129, "rotates": false, "multitile": false }, - { "id": "helmet_nomad", "fg": 1142, "rotates": false, "multitile": false }, - { "id": "helmet_plate", "fg": 1146, "rotates": false, "multitile": false }, - { "id": "helmet_riot", "fg": 1143, "rotates": false, "multitile": false }, - { "id": "helmet_skid", "fg": 1139, "rotates": false, "multitile": false }, - { "id": "helsing", "fg": 536, "rotates": false, "multitile": false }, - { "id": "herbal_tea", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "hk_g36", "fg": 550, "rotates": false, "multitile": false }, - { "id": "hk_g3", "fg": 550, "rotates": false, "multitile": false }, - { "id": "hk_g80", "fg": 556, "rotates": false, "multitile": false }, - { "id": "hk_mp5", "fg": 516, "rotates": false, "multitile": false }, - { "id": "hk_mp7", "fg": 516, "rotates": false, "multitile": false }, - { "id": "hk_ucp", "fg": 518, "rotates": false, "multitile": false }, - { "id": "hk_ump45", "fg": 516, "rotates": false, "multitile": false }, - { "id": "hockey_stick", "fg": 478, "rotates": false, "multitile": false }, - { "id": "hoe", "fg": 595, "rotates": false, "multitile": false }, - { "id": "holo_sight", "fg": 918, "rotates": false, "multitile": false }, - { "id": "holster", "fg": 1156, "rotates": false, "multitile": false }, - { "id": "holy_symbol", "fg": 1163, "rotates": false, "multitile": false }, - { "id": "homewrecker", "fg": 434, "rotates": false, "multitile": false }, - { "id": "honey_glassed", "fg": 416, "rotates": false, "multitile": false }, - { "id": "honey_gold", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "honey_scraper", "fg": 690, "rotates": false, "multitile": false }, - { "id": "hood_fsurvivor", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "hood_h20survivor", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "hood_lsurvivor", "fg": 1188, "rotates": false, "multitile": false }, - { "id": "hood_survivor", "fg": 1190, "rotates": false, "multitile": false }, - { "id": "hood_xlsurvivor", "fg": 1190, "rotates": false, "multitile": false }, - { "id": "horn_bicycle", "fg": 875, "rotates": false }, - { "id": "horn_big", "fg": 875, "rotates": false }, - { "id": "horn_car", "fg": 875, "rotates": false }, - { "id": "hose", "fg": 598, "rotates": false, "multitile": false }, - { "id": "hotplate", "fg": 582, "rotates": false, "multitile": false }, - { "id": "house_coat", "fg": 1173, "rotates": false, "multitile": false }, - { "id": "hsurvivor_suit", "fg": 1201, "rotates": false, "multitile": false }, - { "id": "huge_crossbow", "fg": 895, "rotates": false, "multitile": false }, - { "id": "human_pickled", "fg": 1297, "rotates": false, "multitile": false }, - { "id": "hygrometer", "fg": 850, "rotates": false, "multitile": false }, - { "id": "i4_combustion", "fg": 873, "rotates": false, "multitile": false }, - { "id": "i6_diesel", "fg": 873, "rotates": false, "multitile": false }, - { "id": "id_military", "fg": 366, "rotates": false, "multitile": false }, - { "id": "id_science", "fg": 365, "rotates": false, "multitile": false }, - { "id": "imperial_stout", "fg": 932, "rotates": false, "multitile": false }, - { "id": "improve_sights", "fg": 918, "rotates": false, "multitile": false }, - { "id": "incendiary", "fg": 908, "rotates": false, "multitile": false }, - { "id": "incendiary_hm_rocket", "fg": 824, "rotates": false, "multitile": false }, - { "id": "india_pale_ale", "fg": 932, "rotates": false, "multitile": false }, - { "id": "irish_coffee", "fg": 932, "rotates": false, "multitile": false }, - { "id": "it_battery_mount", "fg": 571, "rotates": false, "multitile": false }, - { "id": "iv_mutagen", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_alpha", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_beast", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_bird", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_cattle", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_cephalopod", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_chimera", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_elfa", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_feline", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_fish", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_insect", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_lizard", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_lupine", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_medical", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_plant", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_raptor", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_rat", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_slime", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_spider", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_troglobite", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_mutagen_ursine", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "iv_purifier", "fg": 1407, "rotates": false, "multitile": false }, - { "id": "i_staff", "fg": 450, "rotates": false, "multitile": false }, - { "id": "jacket_chef", "fg": 1093, "rotates": false, "multitile": false }, - { "id": "jackhammer", "fg": 601, "rotates": false, "multitile": false }, - { "id": "jack", "fg": 504, "rotates": false, "multitile": false }, - { "id": "jacqueshammer", "fg": 602, "rotates": false, "multitile": false }, - { "id": "jar_3l_glass", "fg": 356, "rotates": false, "multitile": false }, - { "id": "jar_apple_canned", "fg": 1398, "rotates": false, "multitile": false }, - { "id": "jar_fish_canned", "fg": 1400, "rotates": false, "multitile": false }, - { "id": "jar_fish_pickled", "fg": 1400, "rotates": false, "multitile": false }, - { "id": "jar_glass", "fg": 355, "rotates": false, "multitile": false }, - { "id": "jar_human_canned", "fg": 1396, "rotates": false, "multitile": false }, - { "id": "jar_human_pickled", "fg": 1400, "rotates": false, "multitile": false }, - { "id": "jar_kompot", "fg": 355, "rotates": false, "multitile": false }, - { "id": "jar_meat_canned", "fg": 1396, "rotates": false, "multitile": false }, - { "id": "jar_meat_pickled", "fg": 1400, "rotates": false, "multitile": false }, - { "id": "jar_tomato_canned", "fg": 1396, "rotates": false, "multitile": false }, - { "id": "jar_veggy_canned", "fg": 1397, "rotates": false, "multitile": false }, - { "id": "jar_veggy_pickled", "fg": 1399, "rotates": false, "multitile": false }, - { "id": "javelin", "fg": 449, "rotates": false, "multitile": false }, - { "id": "javelin_iron", "fg": 680, "rotates": false, "multitile": false }, - { "id": "jerrycan", "fg": 350, "rotates": false, "multitile": false }, - { "id": "jerrycan_big", "fg": 354, "rotates": false, "multitile": false }, - { "id": "judo_belt_black", "fg": 1554, "rotates": false, "multitile": false }, - { "id": "judo_belt_blue", "fg": 1000, "rotates": false, "multitile": false }, - { "id": "judo_belt_brown", "fg": 1001, "rotates": false, "multitile": false }, - { "id": "judo_belt_green", "fg": 999, "rotates": false, "multitile": false }, - { "id": "judo_belt_orange", "fg": 998, "rotates": false, "multitile": false }, - { "id": "judo_belt_white", "fg": 996, "rotates": false, "multitile": false }, - { "id": "judo_belt_yellow", "fg": 997, "rotates": false, "multitile": false }, - { "id": "jug_clay", "fg": 835, "rotates": false, "multitile": false }, - { "id": "jug_plastic", "fg": 351, "rotates": false, "multitile": false }, - { "id": "juice", "fg": 933, "rotates": false, "multitile": false }, - { "id": "katana", "fg": 675, "rotates": false, "multitile": false }, - { "id": "katana_fake", "fg": 675, "rotates": false, "multitile": false }, - { "id": [ "katana", "katana_fake", "katana_inferior" ], "fg": 860, "rotates": false }, - { "id": "keg", "fg": 947, "rotates": false, "multitile": false }, - { "id": "kevlar_harness", "fg": 537, "rotates": false, "multitile": false }, - { "id": "kevlar_plate", "fg": 717, "rotates": false, "multitile": false }, - { "id": "kiln_done", "fg": 778, "rotates": false, "multitile": false }, - { "id": "kiln_full", "fg": 776, "rotates": false, "multitile": false }, - { "id": "kiln_lit", "fg": 777, "rotates": false, "multitile": false }, - { "id": "kitchen_unit", "fg": 865, "rotates": false, "multitile": false }, - { "id": "knife_butcher", "fg": 690, "rotates": false, "multitile": false }, - { "id": "knife_butter", "fg": 379, "rotates": false, "multitile": false }, - { "id": "knife_combat", "fg": 690, "rotates": false, "multitile": false }, - { "id": "knife_hunting", "fg": 690, "rotates": false, "multitile": false }, - { "id": "knife_rambo", "fg": 690, "rotates": false, "multitile": false }, - { "id": "knife_rm42", "fg": 690, "rotates": false, "multitile": false }, - { "id": "knife_steak", "fg": 690, "rotates": false, "multitile": false }, - { "id": "knife_swissarmy", "fg": 790, "rotates": false, "multitile": false }, - { "id": "knife_trench", "fg": 690, "rotates": false, "multitile": false }, - { "id": "knitting_needles", "fg": 424, "rotates": false, "multitile": false }, - { "id": "knuckle_brass", "fg": 398, "rotates": false, "multitile": false }, - { "id": "knuckle_katar", "fg": 479, "rotates": false, "multitile": false }, - { "id": "knuckle_nail", "fg": 479, "rotates": false, "multitile": false }, - { "id": "knuckle_steel", "fg": 476, "rotates": false, "multitile": false }, - { "id": "kompot", "fg": 931, "rotates": false, "multitile": false }, - { "id": "kris", "fg": 690, "rotates": false, "multitile": false }, - { "id": "kris_fake", "fg": 690, "rotates": false, "multitile": false }, - { "id": "kukri", "fg": 675, "rotates": false, "multitile": false }, - { "id": "lajatang", "fg": 470, "rotates": false, "multitile": false }, - { "id": "lamp_oil", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "landmine", "fg": 612, "rotates": false, "multitile": false }, - { "id": "laptop", "fg": 405, "rotates": false, "multitile": false }, - { "id": "largebroketent", "fg": 399, "rotates": false, "multitile": false }, - { "id": "large_repairkit", "fg": 939, "rotates": false, "multitile": false }, - { "id": "large_tent_kit", "fg": 245, "rotates": false, "multitile": false }, - { "id": "laser_cannon", "fg": 557, "rotates": false, "multitile": false }, - { "id": "laser_capacitor", "fg": 901, "rotates": false, "multitile": false }, - { "id": "laser_pack", "fg": 907, "rotates": false, "multitile": false }, - { "id": "laser_rifle", "fg": 556, "rotates": false, "multitile": false }, - { "id": "laser_sight", "fg": 918, "rotates": false, "multitile": false }, - { "id": "launcher_simple", "fg": 560, "rotates": false, "multitile": false }, - { "id": "lawnmower", "fg": 397, "rotates": false, "multitile": false }, - { "id": "lawn_dart", "fg": 897, "rotates": false, "multitile": false }, - { "id": "LAW", "fg": 563, "rotates": false, "multitile": false }, - { "id": "LAW_Packed", "fg": 563, "rotates": false, "multitile": false }, - { "id": "lead", "fg": 904, "rotates": false, "multitile": false }, - { "id": "lead_plate", "fg": 459, "rotates": false, "multitile": false }, - { "id": "leather_cat_tail", "fg": 523, "rotates": false }, - { "id": "leather_funnel", "fg": 818, "rotates": false, "multitile": false }, - { "id": "lemonlime", "fg": 934, "rotates": false, "multitile": false }, - { "id": "lens", "fg": 370, "rotates": false, "multitile": false }, - { "id": "lgpistol_primer", "fg": 909, "rotates": false, "multitile": false }, - { "id": "lgrifle_primer", "fg": 909, "rotates": false, "multitile": false }, - { "id": "lighter", "fg": 868, "rotates": true }, - { "id": "lightstrip", "fg": 578, "rotates": false, "multitile": false }, - { "id": "lightstrip_dead", "fg": 576, "rotates": false, "multitile": false }, - { "id": "lightstrip_inactive", "fg": 577, "rotates": false, "multitile": false }, - { "id": "light_emergency_blue", "fg": 872, "rotates": false }, - { "id": "light_emergency_red", "fg": 871, "rotates": false }, - { "id": "light_snare_kit", "fg": 610, "rotates": false, "multitile": false }, - { "id": "lobotomizer", "fg": 851, "rotates": false, "multitile": false }, - { "id": "log", "fg": 393, "rotates": false, "multitile": false }, - { "id": "longbow", "fg": 894, "rotates": false, "multitile": false }, - { "id": "long_island", "fg": 932, "rotates": false, "multitile": false }, - { "id": "lye_powder", "fg": 348, "rotates": false, "multitile": false }, - { "id": "l_bak_223", "fg": 518, "rotates": false, "multitile": false }, - { "id": "l_base_223", "fg": 515, "rotates": false, "multitile": false }, - { "id": "l_car_223", "fg": 515, "rotates": false, "multitile": false }, - { "id": "l_car_223_kit", "fg": 918, "rotates": false, "multitile": false }, - { "id": "l_def_12", "fg": 528, "rotates": false, "multitile": false }, - { "id": "l_dsr_223", "fg": 515, "rotates": false, "multitile": false }, - { "id": "l_dsr_223_kit", "fg": 918, "rotates": false, "multitile": false }, - { "id": "l_enforcer_45", "fg": 518, "rotates": false, "multitile": false }, - { "id": "l_HFPack", "fg": 939, "rotates": false, "multitile": false }, - { "id": "l_lmg_223", "fg": 515, "rotates": false, "multitile": false }, - { "id": "l_lmg_223_kit", "fg": 918, "rotates": false, "multitile": false }, - { "id": "l_long_45", "fg": 509, "rotates": false, "multitile": false }, - { "id": "l_lookout_9mm", "fg": 518, "rotates": false, "multitile": false }, - { "id": "l_mbr_223", "fg": 515, "rotates": false, "multitile": false }, - { "id": "l_mbr_223_kit", "fg": 918, "rotates": false, "multitile": false }, - { "id": "l_mp_45", "fg": 518, "rotates": false, "multitile": false }, - { "id": "l_mp_9mm", "fg": 518, "rotates": false, "multitile": false }, - { "id": "l_sp_45", "fg": 518, "rotates": false, "multitile": false }, - { "id": "l_sp_9mm", "fg": 518, "rotates": false, "multitile": false }, - { "id": "m1014", "fg": 528, "rotates": false, "multitile": false }, - { "id": "m107a1", "fg": 550, "rotates": false, "multitile": false }, - { "id": "m14a", "fg": 509, "rotates": false, "multitile": false }, - { "id": "m14ebr", "fg": 515, "rotates": false, "multitile": false }, - { "id": "m1911", "fg": 518, "rotates": false, "multitile": false }, - { "id": "m2010", "fg": 515, "rotates": false, "multitile": false }, - { "id": "m202_flash", "fg": 563, "rotates": false, "multitile": false }, - { "id": "m203", "fg": 918, "rotates": false, "multitile": false }, - { "id": "m235tpa", "fg": 959, "rotates": false, "multitile": false }, - { "id": "m249", "fg": 554, "rotates": false, "multitile": false }, - { "id": "m27iar", "fg": 550, "rotates": false, "multitile": false }, - { "id": "m2browning", "fg": 528, "rotates": false, "multitile": false }, - { "id": "m2browning_sawn", "fg": 528, "rotates": false, "multitile": false }, - { "id": "m320", "fg": 560, "rotates": false, "multitile": false }, - { "id": "m320_mod", "fg": 918, "rotates": false, "multitile": false }, - { "id": "m3_carlgustav", "fg": 563, "rotates": false, "multitile": false }, - { "id": "m4a1", "fg": 550, "rotates": false, "multitile": false }, - { "id": "m79", "fg": 561, "rotates": false, "multitile": false }, - { "id": "m9", "fg": 518, "rotates": false, "multitile": false }, - { "id": "mace", "fg": 445, "rotates": false, "multitile": false }, - { "id": "machete", "fg": 672, "rotates": false, "multitile": false }, - { "id": "mac_10", "fg": 516, "rotates": false, "multitile": false }, - { "id": "magnifying_glass", "fg": 819, "rotates": false, "multitile": false }, - { "id": "makeshift_crowbar", "fg": 594, "rotates": false, "multitile": false }, - { "id": "makeshift_funnel", "fg": 702, "rotates": false, "multitile": false }, - { "id": "makeshift_halberd", "fg": 689, "rotates": false, "multitile": false }, - { "id": "makeshift_knife", "fg": 690, "rotates": false, "multitile": false }, - { "id": "makeshift_machete", "fg": 686, "rotates": false, "multitile": false }, - { "id": "manhole_cover", "fg": 1815, "rotates": false, "multitile": false }, - { "id": "marble", "fg": 902, "rotates": false, "multitile": false }, - { "id": "mark19", "fg": 528, "rotates": false, "multitile": false }, - { "id": "marlin_9a", "fg": 509, "rotates": false, "multitile": false }, - { "id": "masterkey", "fg": 918, "rotates": false, "multitile": false }, - { "id": "matchbomb", "fg": 547, "rotates": false, "multitile": false }, - { "id": "matchbomb_act", "fg": 548, "rotates": false, "multitile": false }, - { "id": "matches", "fg": 867, "rotates": true }, - { "id": "match_trigger", "fg": 918, "rotates": false, "multitile": false }, - { "id": "material_cement", "fg": 908, "rotates": false, "multitile": false }, - { "id": "material_limestone", "fg": 904, "rotates": false, "multitile": false }, - { "id": "material_shrd_limestone", "fg": 793, "rotates": false, "multitile": false }, - { "id": "mead", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "meat_pickled", "fg": 1297, "rotates": false, "multitile": false }, - { "id": "medical_gauze", "fg": 737, "rotates": false, "multitile": false }, - { "id": "medical_tape", "fg": 900, "rotates": false, "multitile": false }, - { "id": "medium_storage_battery", "fg": 874, "rotates": false }, - { "id": "mess_kit", "fg": 791, "rotates": false, "multitile": false }, - { "id": "metal_smoother", "fg": 389, "rotates": false, "multitile": false }, - { "id": "metal_tank", "fg": 454, "rotates": false, "multitile": false }, - { "id": "metal_tank_little", "fg": 454, "rotates": false, "multitile": false }, - { "id": "metal_tank_small", "fg": 454, "rotates": false, "multitile": false }, - { "id": "mgl", "fg": 554, "rotates": false, "multitile": false }, - { "id": "microwave", "fg": 404, "rotates": false, "multitile": false }, - { "id": "militarymap", "fg": 593, "rotates": false, "multitile": false }, - { "id": "milk", "fg": 1408, "rotates": false, "multitile": false }, - { "id": "mil_mess_kit", "fg": 791, "rotates": false, "multitile": false }, - { "id": "mil_plate", "fg": 462, "rotates": false, "multitile": false }, - { "id": "minifridge", "fg": 866, "rotates": false }, - { "id": "mininuke", "fg": 644, "rotates": false, "multitile": false }, - { "id": "mininuke_act", "fg": 645, "rotates": false, "multitile": false }, - { "id": "mininuke_launcher", "fg": 563, "rotates": false, "multitile": false }, - { "id": "mininuke_mod", "fg": 644, "rotates": false, "multitile": false }, - { "id": "minireactor", "fg": 455, "rotates": false, "multitile": false }, - { "id": "minispeargun", "fg": 514, "rotates": false, "multitile": false }, - { "id": "mirror", "fg": 719, "rotates": false, "multitile": false }, - { "id": "misc_repairkit", "fg": 939, "rotates": false, "multitile": false }, - { "id": "mjolnir", "fg": 446, "rotates": false, "multitile": false }, - { "id": "mobile_memory_card", "fg": 794, "rotates": false, "multitile": false }, - { "id": "mobile_memory_card_encrypted", "fg": 794, "rotates": false, "multitile": false }, - { "id": "mobile_memory_card_science", "fg": 794, "rotates": false, "multitile": false }, - { "id": "mobile_memory_card_used", "fg": 794, "rotates": false, "multitile": false }, - { "id": "molasses", "fg": 932, "rotates": false, "multitile": false }, - { "id": "mold_plastic", "fg": 743, "rotates": false, "multitile": false }, - { "id": "molotov", "fg": 634, "rotates": false, "multitile": false }, - { "id": "molotov_lit", "fg": 635, "rotates": false, "multitile": false }, - { "id": "money_bundle", "fg": 498, "rotates": false }, - { "id": "moonshine", "fg": 932, "rotates": false, "multitile": false }, - { "id": "mop", "fg": 709, "rotates": false, "multitile": false }, - { "id": "morningstar", "fg": 446, "rotates": false, "multitile": false }, - { "id": "mortar_build", "fg": 1401, "rotates": false, "multitile": false }, - { "id": "mosin44", "fg": 509, "rotates": false, "multitile": false }, - { "id": "mosin91_30", "fg": 509, "rotates": false, "multitile": false }, - { "id": "mossberg_500", "fg": 528, "rotates": false, "multitile": false }, - { "id": "moss_brownie", "fg": 517, "rotates": false, "multitile": false }, - { "id": "motor", "fg": 451, "rotates": false, "multitile": false }, - { "id": "motor_large", "fg": 451, "rotates": false, "multitile": false }, - { "id": "motor_small", "fg": 451, "rotates": false, "multitile": false }, - { "id": "mp3", "fg": 655, "rotates": false, "multitile": false }, - { "id": "mp3_on", "fg": 656, "rotates": false, "multitile": false }, - { "id": "muffler", "fg": 436, "rotates": false, "multitile": false }, - { "id": "multitool", "fg": 790, "rotates": false, "multitile": false }, - { "id": "multi_cooker", "fg": 1565, "rotates": false, "multitile": false }, - { "id": "music_cd", "fg": 773, "rotates": false }, - { "id": "mutagen", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_alpha", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_beast", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_bird", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_cattle", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_cephalopod", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_chimera", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_elfa", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_feline", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_fish", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_insect", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_lizard", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_lupine", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_medical", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_plant", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_raptor", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_rat", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_slime", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_spider", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_troglobite", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "mutagen_ursine", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "muzzle_brake", "fg": 918, "rotates": false, "multitile": false }, - { "id": "m_fishspear", "fg": 678, "rotates": false, "multitile": false }, - { "id": "nailbat", "fg": 434, "rotates": false, "multitile": false }, - { "id": "nailboard", "fg": 433, "rotates": false, "multitile": false }, - { "id": "nailgun", "fg": 507, "rotates": false, "multitile": false }, - { "id": "nailrifle", "fg": 508, "rotates": false, "multitile": false }, - { "id": "nail", "fg": 889, "rotates": false, "multitile": false }, - { "id": "napalm", "fg": 937, "rotates": false, "multitile": false }, - { "id": "needlegun", "fg": 516, "rotates": false, "multitile": false }, - { "id": "needlepistol", "fg": 518, "rotates": false, "multitile": false }, - { "id": "needle_bone", "fg": 721, "rotates": false, "multitile": false }, - { "id": "needle_wood", "fg": 544, "rotates": false, "multitile": false }, - { "id": "nicotine_liquid", "fg": 715, "rotates": false, "multitile": false }, - { "id": "nic_gum", "fg": 1256, "rotates": false, "multitile": false }, - { "id": "nodachi", "fg": 675, "rotates": false, "multitile": false }, - { "id": "nodachi_fake", "fg": 675, "rotates": false, "multitile": false }, - { "id": "noise_emitter", "fg": 591, "rotates": false, "multitile": false }, - { "id": "noise_emitter_on", "fg": 592, "rotates": false, "multitile": false }, - { "id": "nomex", "fg": 477, "rotates": false }, - { "id": "nx17", "fg": 556, "rotates": false, "multitile": false }, - { "id": "oil_lamp", "fg": 927, "rotates": false, "multitile": false }, - { "id": "oil_lamp_on", "fg": 928, "rotates": false, "multitile": false }, - { "id": "oj", "fg": 933, "rotates": false, "multitile": false }, - { "id": "omnicamera", "fg": 1444, "rotates": false }, - { "id": "orangesoda", "fg": 933, "rotates": false, "multitile": false }, - { "id": "oxy_powder", "fg": 908, "rotates": false, "multitile": false }, - { "id": "oxy_torch", "fg": 666, "rotates": false, "multitile": false }, - { "id": "paint_brush", "fg": 445, "rotates": false, "multitile": false }, - { "id": "pale_ale", "fg": 932, "rotates": false, "multitile": false }, - { "id": "panties", "fg": 1223, "rotates": false, "multitile": false }, - { "id": "pan", "fg": 378, "rotates": false, "multitile": false }, - { "id": "paper", "fg": 899, "rotates": false, "multitile": false }, - { "id": "pastaextruder", "fg": 533, "rotates": false, "multitile": false }, - { "id": "pda", "fg": 718, "rotates": false, "multitile": false }, - { "id": "pda_flashlight", "fg": 719, "rotates": false, "multitile": false }, - { "id": "pearl_collar", "fg": 983, "rotates": false, "multitile": false }, - { "id": "pebble", "fg": 902, "rotates": false, "multitile": false }, - { "id": "peephole", "fg": 807, "rotates": false, "multitile": false }, - { "id": "pepper", "fg": 908, "rotates": false, "multitile": false }, - { "id": "permanent_marker", "fg": 714, "rotates": false, "multitile": false }, - { "id": "petrified_eye", "fg": 383, "rotates": false, "multitile": false }, - { "id": "pheromone", "fg": 646, "rotates": false, "multitile": false }, - { "id": "pickaxe", "fg": 712, "rotates": false, "multitile": false }, - { "id": "pickelhaube", "fg": 1136, "rotates": false, "multitile": false }, - { "id": "picklocks", "fg": 710, "rotates": false, "multitile": false }, - { "id": "pike", "fg": 680, "rotates": false, "multitile": false }, - { "id": "pillow", "fg": 792, "rotates": false, "multitile": false }, - { "id": "pilot_light", "fg": 402, "rotates": false, "multitile": false }, - { "id": "pinecone", "fg": 785, "rotates": false }, - { "id": "pine_tea", "fg": 1406, "rotates": false, "multitile": false }, - { "id": "pine_wine", "fg": 1304, "rotates": false, "multitile": false }, - { "id": "pipebomb", "fg": 617, "rotates": false, "multitile": false }, - { "id": "pipebomb_act", "fg": 618, "rotates": false, "multitile": false }, - { "id": "pipebomb_radio", "fg": 798, "rotates": false, "multitile": false }, - { "id": "pipebomb_radio_act", "fg": 799, "rotates": false, "multitile": false }, - { "id": "pipe", "fg": 468, "rotates": false }, - { "id": "pipe_double_shotgun", "fg": 526, "rotates": false, "multitile": false }, - { "id": "pipe_glass", "fg": 746, "rotates": false, "multitile": false }, - { "id": "pipe_launcher40mm", "fg": 918, "rotates": false, "multitile": false }, - { "id": "pipe_shotgunsawn", "fg": 1800, "rotates": false, "multitile": false }, - { "id": "pipe_shotgun", "fg": 1799, "rotates": false, "multitile": false }, - { "id": "pipe_tobacco", "fg": 747, "rotates": false, "multitile": false }, - { "id": "pistol_bayonet", "fg": 918, "rotates": false, "multitile": false }, - { "id": "pistol_flintlock", "fg": 517, "rotates": false, "multitile": false }, - { "id": "pistol_grip", "fg": 918, "rotates": false, "multitile": false }, - { "id": "pistol_scope", "fg": 918, "rotates": false, "multitile": false }, - { "id": "pistol_stock", "fg": 918, "rotates": false, "multitile": false }, - { "id": "pitchfork", "fg": 843, "rotates": false, "multitile": false }, - { "id": "plant_fibre", "fg": 886, "rotates": false, "multitile": false }, - { "id": "plasma", "fg": 893, "rotates": false, "multitile": false }, - { "id": "plasma_engine", "fg": 451, "rotates": false, "multitile": false }, - { "id": "plasma_rifle", "fg": 556, "rotates": false, "multitile": false }, - { "id": "plastic_chunk", "fg": 716, "rotates": false, "multitile": false }, - { "id": "plut_cell", "fg": 888, "rotates": false, "multitile": false }, - { "id": "pocketwatch", "fg": 473, "rotates": false, "multitile": false }, - { "id": "pockknife", "fg": 720, "rotates": false, "multitile": false }, - { "id": "pointy_stick", "fg": 424, "rotates": false, "multitile": false }, - { "id": "pool_ball", "fg": 387, "rotates": false, "multitile": false }, - { "id": "pool_cue", "fg": 424, "rotates": false, "multitile": false }, - { "id": "poppysyrup", "fg": 1407, "rotates": false, "multitile": false }, - { "id": "poppy_bud", "fg": 469, "rotates": false, "multitile": false }, - { "id": "poppy_flower", "fg": 467, "rotates": false, "multitile": false }, - { "id": "porkpie", "fg": 1148, "rotates": false, "multitile": false }, - { "id": "portable_game", "fg": 657, "rotates": false, "multitile": false }, - { "id": "portal", "fg": 647, "rotates": false, "multitile": false }, - { "id": "pot", "fg": 420, "rotates": false, "multitile": false }, - { "id": "power_supply", "fg": 951, "rotates": false, "multitile": false }, - { "id": "ppshdrum", "fg": 862, "rotates": false }, - { "id": [ "ppshmag", "tokarevmag" ], "fg": 863, "rotates": false }, - { "id": "ppsh", "fg": 530, "rotates": false, "multitile": false }, - { "id": "PR24-extended", "fg": 435, "rotates": false, "multitile": false }, - { "id": "PR24-retracted", "fg": 435, "rotates": false, "multitile": false }, - { "id": "press", "fg": 704, "rotates": false, "multitile": false }, - { "id": "primitive_axe", "fg": 723, "rotates": false, "multitile": false }, - { "id": "primitive_hammer", "fg": 722, "rotates": false, "multitile": false }, - { "id": "primitive_knife", "fg": 690, "rotates": false, "multitile": false }, - { "id": "primitive_shovel", "fg": 724, "rotates": false, "multitile": false }, - { "id": "processor", "fg": 950, "rotates": false, "multitile": false }, - { "id": "protein_shake", "fg": 1382, "rotates": false, "multitile": false }, - { "id": "puck", "fg": 943, "rotates": false, "multitile": false }, - { "id": "puller", "fg": 703, "rotates": false, "multitile": false }, - { "id": "punch_dagger", "fg": 482, "rotates": false, "multitile": false }, - { "id": "purifier", "fg": 937, "rotates": false, "multitile": false }, - { "id": "purple_drink", "fg": 1395, "rotates": false }, - { "id": "p_carpet", "fg": 763, "rotates": false }, - { "id": "p_paint", "fg": 392, "rotates": false, "multitile": false }, - { "id": "q_staff", "fg": 429, "rotates": false, "multitile": false }, - { "id": "radiocontrol", "fg": 804, "rotates": false, "multitile": false }, - { "id": "radio", "fg": 586, "rotates": false, "multitile": false }, - { "id": "radio_car", "fg": 802, "rotates": false, "multitile": false }, - { "id": "radio_car_box", "fg": 573, "rotates": false, "multitile": false }, - { "id": "radio_car_on", "fg": 803, "rotates": false, "multitile": false }, - { "id": "radio_on", "fg": 587, "rotates": false, "multitile": false }, - { "id": "rad_monitor", "fg": 984, "rotates": false, "multitile": false }, - { "id": "raging_bull", "fg": 518, "rotates": false, "multitile": false }, - { "id": "ragpouch", "fg": 1159, "rotates": false, "multitile": false }, - { "id": "rag", "fg": 477, "rotates": false }, - { "id": "rag_bloody", "fg": 417, "rotates": false, "multitile": false }, - { "id": "rail_laser_sight", "fg": 918, "rotates": false, "multitile": false }, - { "id": "RAM", "fg": 950, "rotates": false, "multitile": false }, - { "id": "rapier", "fg": 679, "rotates": false, "multitile": false }, - { "id": "rapier_fake", "fg": 679, "rotates": false, "multitile": false }, - { "id": "raw_fur", "fg": 810, "rotates": false, "multitile": false }, - { "id": "raw_leather", "fg": 811, "rotates": false, "multitile": false }, - { "id": "razor_blade", "fg": 539, "rotates": false, "multitile": false }, - { "id": "rebar", "fg": 466, "rotates": false, "multitile": false }, - { "id": "rebar_rail", "fg": 906, "rotates": false, "multitile": false }, - { "id": "rebar_rifle", "fg": 526, "rotates": false, "multitile": false }, - { "id": "rebreather", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "rebreather_filter", "fg": 893, "rotates": false, "multitile": false }, - { "id": "rebreather_on", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "rebreather_xl", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "rebreather_xl_on", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "receiver", "fg": 950, "rotates": false, "multitile": false }, - { "id": "rechargeable_battery", "fg": 907, "rotates": false, "multitile": false }, - { "id": "recharge_station", "fg": 917, "rotates": false }, - { "id": "recoil_stock", "fg": 918, "rotates": false, "multitile": false }, - { "id": "recurbow", "fg": 894, "rotates": false, "multitile": false }, - { "id": "red_dot_sight", "fg": 918, "rotates": false, "multitile": false }, - { "id": "reflexbow", "fg": 894, "rotates": false, "multitile": false }, - { "id": "reflexrecurvebow", "fg": 894, "rotates": false, "multitile": false }, - { "id": "ref_lighter", "fg": 756, "rotates": false, "multitile": false }, - { "id": "ref_lighter_on", "fg": 782, "rotates": false, "multitile": false }, - { "id": "reinforced_glass_pane", "fg": 377, "rotates": false, "multitile": false }, - { "id": "reinforced_glass_sheet", "fg": 377, "rotates": false, "multitile": false }, - { "id": "reinforced_solar_panel", "fg": 877, "rotates": false, "multitile": false }, - { "id": "reinforced_solar_panel_v2", "fg": 877, "rotates": false }, - { "id": "reloaded_10mm", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_223", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_270", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_3006", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_3006_incendiary", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_300_winmag", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_308", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_32_acp", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_38_fmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_38_special", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_38_super", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_40fmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_40mm_flechette", "fg": 959, "rotates": false, "multitile": false }, - { "id": "reloaded_40mm_shot", "fg": 959, "rotates": false, "multitile": false }, - { "id": "reloaded_40sw", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_44fmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_44magnum", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_454_Casull", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_45_acp", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_45_jhp", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_45_super", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_46mm", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_500_Magnum", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_50bmg", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_50ss", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_50_incendiary", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_556", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_556_incendiary", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_57mm", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_5x50dart", "fg": 821, "rotates": false, "multitile": false }, - { "id": "reloaded_700nx", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_762_51", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_762_51_incendiary", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_762_54R", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_762_m43", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_762_m87", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_9mmfmj", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_9mmP2", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_9mmP", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_9mmP", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_9mm", "fg": 954, "rotates": false, "multitile": false }, - { "id": "reloaded_laser_pack", "fg": 907, "rotates": false, "multitile": false }, - { "id": "reloaded_shot_00", "fg": 953, "rotates": false, "multitile": false }, - { "id": "reloaded_shot_beanbag", "fg": 953, "rotates": false, "multitile": false }, - { "id": "reloaded_shot_bird", "fg": 953, "rotates": false, "multitile": false }, - { "id": "reloaded_shot_flechette", "fg": 953, "rotates": false, "multitile": false }, - { "id": "reloaded_shot_he", "fg": 953, "rotates": false, "multitile": false }, - { "id": "reloaded_shot_slug", "fg": 953, "rotates": false, "multitile": false }, - { "id": "reloaded_signal_flare", "fg": 953, "rotates": false, "multitile": false }, - { "id": "remington_700", "fg": 509, "rotates": false, "multitile": false }, - { "id": "remington_870", "fg": 528, "rotates": false, "multitile": false }, - { "id": "remotevehcontrol", "fg": 804, "rotates": false, "multitile": false }, - { "id": "rep_crossbow", "fg": 895, "rotates": false, "multitile": false }, - { "id": "restaurantmap", "fg": 593, "rotates": false, "multitile": false }, - { "id": "retool_223", "fg": 918, "rotates": false, "multitile": false }, - { "id": "retool_22", "fg": 918, "rotates": false, "multitile": false }, - { "id": "retool_308", "fg": 918, "rotates": false, "multitile": false }, - { "id": "retool_45", "fg": 918, "rotates": false, "multitile": false }, - { "id": "retool_46", "fg": 918, "rotates": false, "multitile": false }, - { "id": "retool_57", "fg": 918, "rotates": false, "multitile": false }, - { "id": "retool_9mm", "fg": 918, "rotates": false, "multitile": false }, - { "id": "revolver_shotgun", "fg": 1798, "rotates": false, "multitile": false }, - { "id": "rifle_22", "fg": 509, "rotates": false, "multitile": false }, - { "id": "rifle_308", "fg": 509, "rotates": false, "multitile": false }, - { "id": "rifle_9mm", "fg": 515, "rotates": false, "multitile": false }, - { "id": "rifle_flintlock", "fg": 509, "rotates": false, "multitile": false }, - { "id": "rifle_scope", "fg": 918, "rotates": false, "multitile": false }, - { "id": "rm103a_pistol", "fg": 518, "rotates": false, "multitile": false }, - { "id": "rm11b_sniper_rifle", "fg": 515, "rotates": false, "multitile": false }, - { "id": "rm120c", "fg": 528, "rotates": false, "multitile": false }, - { "id": "rm121aux", "fg": 918, "rotates": false, "multitile": false }, - { "id": "rm2000_smg", "fg": 516, "rotates": false, "multitile": false }, - { "id": "rm20", "fg": 554, "rotates": false, "multitile": false }, - { "id": "rm228", "fg": 560, "rotates": false, "multitile": false }, - { "id": "rm298", "fg": 554, "rotates": false, "multitile": false }, - { "id": "rm451_flamethrower", "fg": 558, "rotates": false, "multitile": false }, - { "id": "rm51_assault_rifle", "fg": 550, "rotates": false, "multitile": false }, - { "id": "rm614_lmg", "fg": 554, "rotates": false, "multitile": false }, - { "id": "rm802", "fg": 536, "rotates": false, "multitile": false }, - { "id": "rm88_battle_rifle", "fg": 515, "rotates": false, "multitile": false }, - { "id": "rm99_pistol", "fg": 518, "rotates": false, "multitile": false }, - { "id": "roadmap", "fg": 593, "rotates": false, "multitile": false }, - { "id": "robot_controls", "fg": 1445, "rotates": false, "multitile": false }, - { "id": "rock", "fg": 457, "rotates": false }, - { "id": "rock_pot", "fg": 420, "rotates": false, "multitile": false }, - { "id": "rock_quern", "fg": 566, "rotates": false, "multitile": false }, - { "id": "rock_sock", "fg": 484, "rotates": false, "multitile": false }, - { "id": "rolling_paper", "fg": 488, "rotates": false, "multitile": false }, - { "id": "rollmat", "fg": 668, "rotates": false, "multitile": false }, - { "id": "rootbeer", "fg": 932, "rotates": false, "multitile": false }, - { "id": "rope_30", "fg": 523, "rotates": false }, - { "id": "rope_6", "fg": 523, "rotates": true }, - { "id": "RPG-7_ammo", "fg": 960, "rotates": false, "multitile": false }, - { "id": "RPG", "fg": 562, "rotates": false, "multitile": false }, - { "id": "rubber_slug", "fg": 616, "rotates": false, "multitile": false }, - { "id": "ruger_1022", "fg": 509, "rotates": false, "multitile": false }, - { "id": "ruger_mini", "fg": 509, "rotates": false, "multitile": false }, - { "id": "ruger_redhawk", "fg": 518, "rotates": false, "multitile": false }, - { "id": "rum", "fg": 932, "rotates": false, "multitile": false }, - { "id": "rx12_injector", "fg": 520, "rotates": false, "multitile": false }, - { "id": "r_carpet", "fg": 760, "rotates": false }, - { "id": "r_paint", "fg": 1396, "rotates": false, "multitile": false }, - { "id": "saddle", "fg": 1482, "bg": 1, "rotates": false, "multitile": false }, - { "id": "safe_box", "fg": 1565, "rotates": false, "multitile": false }, - { "id": "saiga_12", "fg": 529, "rotates": false, "multitile": false }, - { "id": "saiga_sawn", "fg": 525, "rotates": false, "multitile": false }, - { "id": "saline", "fg": 931, "rotates": false, "multitile": false }, - { "id": "salt_water", "fg": 931, "rotates": false, "multitile": false }, - { "id": "sarcophagus_access_code", "fg": 899, "rotates": false, "multitile": false }, - { "id": "savage_111f", "fg": 509, "rotates": false, "multitile": false }, - { "id": "saw", "fg": 693, "rotates": false, "multitile": false }, - { "id": "scalpel", "fg": 671, "rotates": false, "multitile": false }, - { "id": "scar_h", "fg": 550, "rotates": false, "multitile": false }, - { "id": "scar_l", "fg": 550, "rotates": false, "multitile": false }, - { "id": "scissors", "fg": 568, "rotates": false, "multitile": false }, - { "id": "scrambler", "fg": 627, "rotates": false, "multitile": false }, - { "id": "scrambler_act", "fg": 628, "rotates": false, "multitile": false }, - { "id": "scrap", "fg": 904, "rotates": false, "multitile": false }, - { "id": "screwdriver", "fg": 705, "rotates": false, "multitile": false }, - { "id": "scythe", "fg": 492, "rotates": false, "multitile": false }, - { "id": "scythe_war", "fg": 493, "rotates": false, "multitile": false }, + "fg": 889, + "rotates": true, + "multitile": true, + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] + }, + { "id": "control_laptop", "fg": 430, "rotates": false, "multitile": false }, + { "id": "conversion_battle", "fg": 926, "rotates": false, "multitile": false }, + { "id": "conversion_sniper", "fg": 926, "rotates": false, "multitile": false }, + { "id": "con_mix", "fg": 857, "rotates": false, "multitile": false }, + { "id": "cooking_oil", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "copper", "fg": 830, "rotates": false, "multitile": false }, + { "id": "cop_38", "fg": 525, "rotates": false, "multitile": false }, + { "id": "cordless_drill", "fg": 740, "rotates": false, "multitile": false }, + { "id": "corpse", "fg": 872, "rotates": false }, + { "id": "cot", "fg": 675, "rotates": false, "multitile": false }, + { "id": "cow_bell", "fg": 554, "rotates": false, "multitile": false }, + { "id": "crackpipe", "fg": 753, "rotates": false, "multitile": false }, + { "id": "crafted_suppressor", "fg": 926, "rotates": false, "multitile": false }, + { "id": "craftrig", "fg": 1486, "rotates": true }, + { "id": "cranberry_juice", "fg": 1403, "rotates": false }, + { "id": "creamsoda", "fg": 942, "rotates": false, "multitile": false }, + { "id": "creepy_doll", "fg": 746, "rotates": false, "multitile": false }, + { "id": "crossbow", "fg": 903, "rotates": false, "multitile": false }, + { "id": "crossbow_trap", "fg": 615, "rotates": false, "multitile": false }, + { "id": "crowbar", "fg": 602, "rotates": false, "multitile": false }, + { "id": "crucible", "fg": 758, "rotates": false, "multitile": false }, + { "id": "crude_brick", "fg": 849, "rotates": false, "multitile": false }, + { "id": "crude_picklock", "fg": 719, "rotates": false, "multitile": false }, + { "id": "cs_lajatang_off", "fg": 494, "rotates": false, "multitile": false }, + { "id": "cs_lajatang_on", "fg": 494, "rotates": false, "multitile": false }, + { "id": "cudgel", "fg": 733, "rotates": false, "multitile": false }, + { "id": "cup_plastic", "fg": 920, "rotates": false, "multitile": false }, + { "id": "curry_veggy", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "cu_pipe", "fg": 877, "rotates": false, "multitile": false }, + { "id": "cx4", "fg": 523, "rotates": false, "multitile": false }, + { "id": "c_fishspear", "fg": 686, "rotates": false, "multitile": false }, + { "id": "dahlia_bud", "fg": 477, "rotates": false, "multitile": false }, + { "id": "dahlia_flower", "fg": 918, "rotates": false, "multitile": false }, + { "id": "damaged_shelter_kit", "fg": 734, "rotates": false, "multitile": false }, + { "id": "dandelion_tea", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "dandelion_wine", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "dart", "fg": 898, "rotates": false, "multitile": false }, + { "id": "deagle_44", "fg": 526, "rotates": false, "multitile": false }, + { "id": "dehydrator", "fg": 505, "rotates": false, "multitile": false }, + { "id": "diamond", "fg": 548, "rotates": false, "multitile": false }, + { "id": "diamond_bayonet", "fg": 926, "rotates": false, "multitile": false }, + { "id": "diamond_broadsword", "fg": 855, "rotates": false, "multitile": false }, + { "id": "diamond_katana", "fg": 691, "rotates": false, "multitile": false }, + { "id": "diamond_knife", "fg": 696, "rotates": false, "multitile": false }, + { "id": "diamond_kukri", "fg": 691, "rotates": false, "multitile": false }, + { "id": "diamond_machete", "fg": 695, "rotates": false, "multitile": false }, + { "id": "diamond_nodachi", "fg": 691, "rotates": false, "multitile": false }, + { "id": "diamond_pistol_bayonet", "fg": 926, "rotates": false, "multitile": false }, + { "id": "diamond_rapier", "fg": 856, "rotates": false, "multitile": false }, + { "id": "diamond_sword_bayonet", "fg": 926, "rotates": false, "multitile": false }, + { "id": "diamond_wakizashi", "fg": 691, "rotates": false, "multitile": false }, + { "id": "diamond_zweihander", "fg": 855, "rotates": false, "multitile": false }, + { "id": "diesel", "fg": 942, "rotates": false, "multitile": false }, + { "id": "digging_stick", "fg": 432, "rotates": false, "multitile": false }, + { "id": "directional_antenna", "fg": 596, "rotates": false, "multitile": false }, + { "id": "distaff_spindle", "fg": 985, "rotates": false, "multitile": false }, + { "id": "diveknife", "fg": 698, "rotates": false, "multitile": false }, + { "id": "dogfood", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "dog_whistle", "fg": 672, "rotates": false, "multitile": false }, + { "id": "door_opaque", "fg": 1464, "rotates": false }, + { "id": "doublespeargun", "fg": 534, "rotates": false, "multitile": false }, + { "id": "down_feather", "fg": 899, "rotates": false, "multitile": false }, + { "id": "drink_beeknees", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "drink_hobo", "fg": 940, "rotates": false, "multitile": false }, + { "id": "drink_kalimotxo", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "drink_rumcola", "fg": 940, "rotates": false, "multitile": false }, + { "id": "drink_screwdriver", "fg": 941, "rotates": false, "multitile": false }, + { "id": "drink_sewerbrew", "fg": 940, "rotates": false, "multitile": false }, + { "id": "drink_wild_apple", "fg": 1414, "rotates": false, "multitile": false }, + { "id": "drink_wsour", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "drive_by_wire_controls", "fg": 1451, "rotates": false, "multitile": false }, + { "id": "DRUM", "fg": 367, "rotates": false, "multitile": false }, + { "id": "duct_tape", "fg": 908, "rotates": false, "multitile": false }, + { "id": "dump_pouch", "fg": 1238, "rotates": false, "multitile": false }, + { "id": "dynamite", "fg": 646, "rotates": false, "multitile": false }, + { "id": "dynamite_act", "fg": 647, "rotates": false, "multitile": false }, + { "id": "dynamite_radio", "fg": 808, "rotates": false, "multitile": false }, + { "id": "dynamite_radio_act", "fg": 809, "rotates": false, "multitile": false }, + { "id": "ear_spool", "fg": 951, "rotates": false, "multitile": false }, + { "id": "ecig", "fg": 381, "rotates": false, "multitile": false }, + { "id": "eink_tablet_pc", "fg": 726, "rotates": false, "multitile": false }, + { "id": "electrohack", "fg": 375, "rotates": false, "multitile": false }, + { "id": "elec_chainsaw_off", "fg": 607, "rotates": false, "multitile": false }, + { "id": "elec_chainsaw_on", "fg": 607, "rotates": false, "multitile": false }, + { "id": "elec_jackhammer", "fg": 609, "rotates": false, "multitile": false }, + { "id": "element", "fg": 408, "rotates": false, "multitile": false }, + { "id": "EMPbomb", "fg": 633, "rotates": false, "multitile": false }, + { "id": "EMPbomb_act", "fg": 634, "rotates": false, "multitile": false }, + { "id": "energy_drink", "fg": 1415, "rotates": false, "multitile": false }, + { "id": "energy_drink_atomic", "fg": 1414, "rotates": false, "multitile": false }, + { "id": "etched_skull", "fg": 667, "rotates": false, "multitile": false }, + { "id": "european_pilsner", "fg": 940, "rotates": false, "multitile": false }, + { "id": "explosive_hm_rocket", "fg": 831, "rotates": false, "multitile": false }, + { "id": "extinguisher", "fg": 578, "rotates": false, "multitile": false }, + { "id": "e_scrap", "fg": 959, "rotates": false, "multitile": false }, + { "id": "e_tool", "fg": 604, "rotates": false, "multitile": false }, + { "id": "fan", "fg": 414, "rotates": false, "multitile": false }, + { "id": "feather", "fg": 899, "rotates": false, "multitile": false }, + { "id": "felt_patch", "fg": 485, "rotates": false }, + { "id": "fencing_epee", "fg": 687, "rotates": false, "multitile": false }, + { "id": "fencing_foil", "fg": 687, "rotates": false, "multitile": false }, + { "id": "fencing_sabre", "fg": 687, "rotates": false, "multitile": false }, + { "id": "fertilizer", "fg": 1334, "rotates": false, "multitile": false }, + { "id": "fertilizer_bomb", "fg": 813, "rotates": false, "multitile": false }, + { "id": "fertilizer_bomb_act", "fg": 814, "rotates": false, "multitile": false }, + { "id": "fertilizer_liquid", "fg": 939, "rotates": false, "multitile": false }, + { "id": "fighter_sting", "fg": 489, "rotates": false, "multitile": false }, + { "id": "file", "fg": 907, "rotates": false, "multitile": false }, + { "id": "firecracker", "fg": 650, "rotates": false, "multitile": false }, + { "id": "firecracker_act", "fg": 651, "rotates": false, "multitile": false }, + { "id": "firecracker_pack", "fg": 648, "rotates": false, "multitile": false }, + { "id": "firecracker_pack_act", "fg": 649, "rotates": false, "multitile": false }, + { "id": "firekatana_off", "fg": 684, "rotates": false, "multitile": false }, + { "id": "firekatana_on", "fg": 685, "rotates": false, "multitile": false }, + { "id": "firemachete_off", "fg": 681, "rotates": false, "multitile": false }, + { "id": "firemachete_on", "fg": 682, "rotates": false, "multitile": false }, + { "id": "fire_ax", "fg": 495, "rotates": false, "multitile": false }, + { "id": "fire_drill", "fg": 573, "rotates": false, "multitile": false }, + { "id": "fire_drill_large", "fg": 573, "rotates": false, "multitile": false }, + { "id": "fishing_hook_basic", "fg": 540, "rotates": false, "multitile": false }, + { "id": "fishing_rod_basic", "fg": 539, "rotates": false, "multitile": false }, + { "id": "fishing_rod_professional", "fg": 816, "rotates": false, "multitile": false }, + { "id": "fishspear", "fg": 688, "rotates": false, "multitile": false }, + { "id": "fish_bowl", "fg": 483, "rotates": false, "multitile": false }, + { "id": "fish_trap", "fg": 592, "rotates": false, "multitile": false }, + { "id": "flamable_arrow", "fg": 641, "rotates": false, "multitile": false }, + { "id": "flamethrower", "fg": 566, "rotates": false, "multitile": false }, + { "id": "flamethrower_crude", "fg": 567, "rotates": false, "multitile": false }, + { "id": "flamethrower_simple", "fg": 566, "rotates": false, "multitile": false }, + { "id": "flaregun", "fg": 521, "rotates": false, "multitile": false }, + { "id": "flashbang", "fg": 631, "rotates": false, "multitile": false }, + { "id": "flashbang_act", "fg": 632, "rotates": false, "multitile": false }, + { "id": "flashlight", "fg": 582, "rotates": false, "multitile": false }, + { "id": "flashlight_on", "fg": 583, "rotates": false, "multitile": false }, + { "id": "flask_glass", "fg": 360, "rotates": false, "multitile": false }, + { "id": "flask_hip", "fg": 981, "rotates": false, "multitile": false }, + { "id": "flask_yeast", "fg": 360, "rotates": false, "multitile": false }, + { "id": "fletching", "fg": 900, "rotates": false, "multitile": false }, + { "id": "flintlock_ammo", "fg": 529, "rotates": false, "multitile": false }, + { "id": "floodlight", "fg": 1518, "rotates": false }, + { "id": "flyer", "fg": 907, "rotates": false, "multitile": false }, + { "id": "fn57", "fg": 526, "rotates": false, "multitile": false }, + { "id": "fn_fal", "fg": 559, "rotates": false, "multitile": false }, + { "id": "fn_p90", "fg": 544, "rotates": false, "multitile": false }, + { "id": "foldframe", "fg": 931, "rotates": false }, + { "id": "folding_basket", "fg": 850, "rotates": false }, + { "id": "folding_bicycle", "fg": 748, "rotates": false, "multitile": false }, + { "id": "foon", "fg": 422, "rotates": false, "multitile": false }, + { "id": "football", "fg": 930, "rotates": false, "multitile": false }, + { "id": "foot_crank", "fg": 461, "rotates": false, "multitile": false }, + { "id": "forgerig", "fg": 887, "rotates": false }, + { "id": "forge", "fg": 509, "rotates": false, "multitile": false }, + { "id": "fork", "fg": 422, "rotates": false, "multitile": false }, + { "id": "frame", "fg": 678, "rotates": false }, + { "id": "frame_wood", "fg": 933, "rotates": false }, + { "id": "frame_wood_light", "fg": 933, "rotates": false }, + { "id": "ftk93", "fg": 564, "rotates": false, "multitile": false }, + { "id": "funnel", "fg": 709, "rotates": false, "multitile": false }, + { "id": "fur_cat_tail", "fg": 531, "rotates": false }, + { "id": "gasbomb", "fg": 637, "rotates": false, "multitile": false }, + { "id": "gasbomb_act", "fg": 638, "rotates": false, "multitile": false }, + { "id": "gasdiscount_gold", "fg": 376, "rotates": false, "multitile": false }, + { "id": "gasdiscount_platinum", "fg": 828, "rotates": false, "multitile": false }, + { "id": "gasdiscount_silver", "fg": 828, "rotates": false, "multitile": false }, + { "id": "gasoline", "fg": 942, "rotates": false, "multitile": false }, + { "id": "gasoline_lantern", "fg": 935, "rotates": false, "multitile": false }, + { "id": "gasoline_lantern_on", "fg": 936, "rotates": false, "multitile": false }, + { "id": "geiger_off", "fg": 621, "rotates": false, "multitile": false }, + { "id": "geiger_on", "fg": 622, "rotates": false, "multitile": false }, + { "id": "generic_no_ammo", "fg": 961, "rotates": false, "multitile": false }, + { "id": "gin", "fg": 939, "rotates": false, "multitile": false }, + { "id": "glass", "fg": 420, "rotates": false, "multitile": false }, + { "id": "glass_bowl", "fg": 419, "rotates": false, "multitile": false }, + { "id": "glass_macuahuitl", "fg": 888, "rotates": false, "multitile": false }, + { "id": "glass_plate", "fg": 418, "rotates": false, "multitile": false }, + { "id": "glass_shard", "fg": 921, "rotates": false, "multitile": false }, + { "id": "glass_sheet", "fg": 384, "rotates": false, "multitile": false }, + { "id": "glass_shiv", "fg": 696, "rotates": false, "multitile": false }, + { "id": "glock_19", "fg": 526, "rotates": false, "multitile": false }, + { "id": "glowstick", "fg": 587, "rotates": false, "multitile": false }, + { "id": "glowstick_dead", "fg": 589, "rotates": false, "multitile": false }, + { "id": "glowstick_lit", "fg": 588, "rotates": false, "multitile": false }, + { "id": "gold", "fg": 1264, "rotates": false, "multitile": false }, + { "id": "gold_small", "fg": 913, "rotates": false, "multitile": false }, + { "id": "golf_club", "fg": 491, "rotates": false, "multitile": false }, + { "id": "granade", "fg": 629, "rotates": false, "multitile": false }, + { "id": "granade_act", "fg": 630, "rotates": false, "multitile": false }, + { "id": "grapnel", "fg": 782, "rotates": false, "multitile": false }, + { "id": "grenade", "fg": 627, "rotates": false, "multitile": false }, + { "id": "grenade_act", "fg": 628, "rotates": false, "multitile": false }, + { "id": "grenade_inc", "fg": 772, "rotates": false, "multitile": false }, + { "id": "grenade_inc_act", "fg": 773, "rotates": false, "multitile": false }, + { "id": "grip", "fg": 926, "rotates": false, "multitile": false }, + { "id": "GUITAR", "fg": 366, "rotates": false, "multitile": false }, + { "id": "gunpowder", "fg": 916, "rotates": false, "multitile": false }, + { "id": "gun_crossbow", "fg": 926, "rotates": false, "multitile": false }, + { "id": "g_carpet", "fg": 769, "rotates": false }, + { "id": "g_paint", "fg": 1405, "rotates": false, "multitile": false }, + { "id": "g_shovel", "fg": 604, "rotates": false, "multitile": false }, + { "id": "h&k416a5", "fg": 558, "rotates": false, "multitile": false }, + { "id": "hacksaw", "fg": 703, "rotates": false, "multitile": false }, + { "id": "halligan", "fg": 602, "rotates": false, "multitile": false }, + { "id": "hammer", "fg": 577, "rotates": false, "multitile": false }, + { "id": "hammer_sledge", "fg": 440, "rotates": false, "multitile": false }, + { "id": "handflare", "fg": 937, "rotates": false, "multitile": false }, + { "id": "handflare_dead", "fg": 946, "rotates": false, "multitile": false }, + { "id": "handflare_lit", "fg": 938, "rotates": false, "multitile": false }, + { "id": "hand_rims", "fg": 791, "rotates": false, "multitile": false }, + { "id": "hard_plate", "fg": 472, "rotates": false, "multitile": false }, + { "id": "hatchet", "fg": 702, "rotates": false, "multitile": false }, + { "id": "hb_beer", "fg": 940, "rotates": false, "multitile": false }, + { "id": "hdframe", "fg": 932, "rotates": false }, + { "id": "hd_steel_drum", "fg": 955, "rotates": false }, + { "id": "headlight_reinforced", "fg": 924, "rotates": false }, + { "id": "heatpack", "fg": 735, "rotates": false, "multitile": false }, + { "id": "heatpack_used", "fg": 736, "rotates": false, "multitile": false }, + { "id": "heavy_rail_rifle", "fg": 544, "rotates": false, "multitile": false }, + { "id": "heavy_snare_kit", "fg": 618, "rotates": false, "multitile": false }, + { "id": "helmet_chitin", "fg": 1153, "rotates": false, "multitile": false }, + { "id": "helmet_liner", "fg": 1150, "rotates": false, "multitile": false }, + { "id": "helmet_lobster", "fg": 1144, "rotates": false, "multitile": false }, + { "id": "helmet_lobster", "fg": 1011, "rotates": false, "multitile": false }, + { "id": "helmet_motor", "fg": 1001, "rotates": false, "multitile": false }, + { "id": "helmet_netting", "fg": 1137, "rotates": false, "multitile": false }, + { "id": "helmet_nomad", "fg": 1150, "rotates": false, "multitile": false }, + { "id": "helmet_plate", "fg": 1154, "rotates": false, "multitile": false }, + { "id": "helmet_riot", "fg": 1151, "rotates": false, "multitile": false }, + { "id": "helmet_skid", "fg": 1147, "rotates": false, "multitile": false }, + { "id": "helsing", "fg": 544, "rotates": false, "multitile": false }, + { "id": "herbal_tea", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "hk_g36", "fg": 558, "rotates": false, "multitile": false }, + { "id": "hk_g3", "fg": 558, "rotates": false, "multitile": false }, + { "id": "hk_g80", "fg": 564, "rotates": false, "multitile": false }, + { "id": "hk_mp5", "fg": 524, "rotates": false, "multitile": false }, + { "id": "hk_mp7", "fg": 524, "rotates": false, "multitile": false }, + { "id": "hk_ucp", "fg": 526, "rotates": false, "multitile": false }, + { "id": "hk_ump45", "fg": 524, "rotates": false, "multitile": false }, + { "id": "hockey_stick", "fg": 486, "rotates": false, "multitile": false }, + { "id": "hoe", "fg": 603, "rotates": false, "multitile": false }, + { "id": "holo_sight", "fg": 926, "rotates": false, "multitile": false }, + { "id": "holster", "fg": 1164, "rotates": false, "multitile": false }, + { "id": "holy_symbol", "fg": 1171, "rotates": false, "multitile": false }, + { "id": "homewrecker", "fg": 442, "rotates": false, "multitile": false }, + { "id": "honey_glassed", "fg": 424, "rotates": false, "multitile": false }, + { "id": "honey_gold", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "honey_scraper", "fg": 698, "rotates": false, "multitile": false }, + { "id": "hood_fsurvivor", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "hood_h20survivor", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "hood_lsurvivor", "fg": 1196, "rotates": false, "multitile": false }, + { "id": "hood_survivor", "fg": 1198, "rotates": false, "multitile": false }, + { "id": "hood_xlsurvivor", "fg": 1198, "rotates": false, "multitile": false }, + { "id": "horn_bicycle", "fg": 883, "rotates": false }, + { "id": "horn_big", "fg": 883, "rotates": false }, + { "id": "horn_car", "fg": 883, "rotates": false }, + { "id": "hose", "fg": 606, "rotates": false, "multitile": false }, + { "id": "hotplate", "fg": 590, "rotates": false, "multitile": false }, + { "id": "house_coat", "fg": 1181, "rotates": false, "multitile": false }, + { "id": "hsurvivor_suit", "fg": 1209, "rotates": false, "multitile": false }, + { "id": "huge_crossbow", "fg": 903, "rotates": false, "multitile": false }, + { "id": "human_pickled", "fg": 1305, "rotates": false, "multitile": false }, + { "id": "hygrometer", "fg": 858, "rotates": false, "multitile": false }, + { "id": "i4_combustion", "fg": 881, "rotates": false, "multitile": false }, + { "id": "i6_diesel", "fg": 881, "rotates": false, "multitile": false }, + { "id": "id_military", "fg": 374, "rotates": false, "multitile": false }, + { "id": "id_science", "fg": 373, "rotates": false, "multitile": false }, + { "id": "imperial_stout", "fg": 940, "rotates": false, "multitile": false }, + { "id": "improve_sights", "fg": 926, "rotates": false, "multitile": false }, + { "id": "incendiary", "fg": 916, "rotates": false, "multitile": false }, + { "id": "incendiary_hm_rocket", "fg": 832, "rotates": false, "multitile": false }, + { "id": "india_pale_ale", "fg": 940, "rotates": false, "multitile": false }, + { "id": "irish_coffee", "fg": 940, "rotates": false, "multitile": false }, + { "id": "it_battery_mount", "fg": 579, "rotates": false, "multitile": false }, + { "id": "iv_mutagen", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_alpha", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_beast", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_bird", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_cattle", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_cephalopod", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_chimera", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_elfa", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_feline", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_fish", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_insect", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_lizard", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_lupine", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_medical", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_plant", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_raptor", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_rat", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_slime", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_spider", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_troglobite", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_mutagen_ursine", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "iv_purifier", "fg": 1415, "rotates": false, "multitile": false }, + { "id": "i_staff", "fg": 458, "rotates": false, "multitile": false }, + { "id": "jacket_chef", "fg": 1101, "rotates": false, "multitile": false }, + { "id": "jackhammer", "fg": 609, "rotates": false, "multitile": false }, + { "id": "jack", "fg": 512, "rotates": false, "multitile": false }, + { "id": "jacqueshammer", "fg": 610, "rotates": false, "multitile": false }, + { "id": "jar_3l_glass", "fg": 364, "rotates": false, "multitile": false }, + { "id": "jar_apple_canned", "fg": 1406, "rotates": false, "multitile": false }, + { "id": "jar_fish_canned", "fg": 1408, "rotates": false, "multitile": false }, + { "id": "jar_fish_pickled", "fg": 1408, "rotates": false, "multitile": false }, + { "id": "jar_glass", "fg": 363, "rotates": false, "multitile": false }, + { "id": "jar_human_canned", "fg": 1404, "rotates": false, "multitile": false }, + { "id": "jar_human_pickled", "fg": 1408, "rotates": false, "multitile": false }, + { "id": "jar_kompot", "fg": 363, "rotates": false, "multitile": false }, + { "id": "jar_meat_canned", "fg": 1404, "rotates": false, "multitile": false }, + { "id": "jar_meat_pickled", "fg": 1408, "rotates": false, "multitile": false }, + { "id": "jar_tomato_canned", "fg": 1404, "rotates": false, "multitile": false }, + { "id": "jar_veggy_canned", "fg": 1405, "rotates": false, "multitile": false }, + { "id": "jar_veggy_pickled", "fg": 1407, "rotates": false, "multitile": false }, + { "id": "javelin", "fg": 457, "rotates": false, "multitile": false }, + { "id": "javelin_iron", "fg": 688, "rotates": false, "multitile": false }, + { "id": "jerrycan", "fg": 358, "rotates": false, "multitile": false }, + { "id": "jerrycan_big", "fg": 362, "rotates": false, "multitile": false }, + { "id": "judo_belt_black", "fg": 1562, "rotates": false, "multitile": false }, + { "id": "judo_belt_blue", "fg": 1008, "rotates": false, "multitile": false }, + { "id": "judo_belt_brown", "fg": 1009, "rotates": false, "multitile": false }, + { "id": "judo_belt_green", "fg": 1007, "rotates": false, "multitile": false }, + { "id": "judo_belt_orange", "fg": 1006, "rotates": false, "multitile": false }, + { "id": "judo_belt_white", "fg": 1004, "rotates": false, "multitile": false }, + { "id": "judo_belt_yellow", "fg": 1005, "rotates": false, "multitile": false }, + { "id": "jug_clay", "fg": 843, "rotates": false, "multitile": false }, + { "id": "jug_plastic", "fg": 359, "rotates": false, "multitile": false }, + { "id": "juice", "fg": 941, "rotates": false, "multitile": false }, + { "id": "katana", "fg": 683, "rotates": false, "multitile": false }, + { "id": "katana_fake", "fg": 683, "rotates": false, "multitile": false }, + { "id": [ "katana", "katana_fake", "katana_inferior" ], "fg": 868, "rotates": false }, + { "id": "keg", "fg": 955, "rotates": false, "multitile": false }, + { "id": "kevlar_harness", "fg": 545, "rotates": false, "multitile": false }, + { "id": "kevlar_plate", "fg": 725, "rotates": false, "multitile": false }, + { "id": "kiln_done", "fg": 786, "rotates": false, "multitile": false }, + { "id": "kiln_full", "fg": 784, "rotates": false, "multitile": false }, + { "id": "kiln_lit", "fg": 785, "rotates": false, "multitile": false }, + { "id": "kitchen_unit", "fg": 873, "rotates": false, "multitile": false }, + { "id": "knife_butcher", "fg": 698, "rotates": false, "multitile": false }, + { "id": "knife_butter", "fg": 387, "rotates": false, "multitile": false }, + { "id": "knife_combat", "fg": 698, "rotates": false, "multitile": false }, + { "id": "knife_hunting", "fg": 698, "rotates": false, "multitile": false }, + { "id": "knife_rambo", "fg": 698, "rotates": false, "multitile": false }, + { "id": "knife_rm42", "fg": 698, "rotates": false, "multitile": false }, + { "id": "knife_steak", "fg": 698, "rotates": false, "multitile": false }, + { "id": "knife_swissarmy", "fg": 798, "rotates": false, "multitile": false }, + { "id": "knife_trench", "fg": 698, "rotates": false, "multitile": false }, + { "id": "knitting_needles", "fg": 432, "rotates": false, "multitile": false }, + { "id": "knuckle_brass", "fg": 406, "rotates": false, "multitile": false }, + { "id": "knuckle_katar", "fg": 487, "rotates": false, "multitile": false }, + { "id": "knuckle_nail", "fg": 487, "rotates": false, "multitile": false }, + { "id": "knuckle_steel", "fg": 484, "rotates": false, "multitile": false }, + { "id": "kompot", "fg": 939, "rotates": false, "multitile": false }, + { "id": "kris", "fg": 698, "rotates": false, "multitile": false }, + { "id": "kris_fake", "fg": 698, "rotates": false, "multitile": false }, + { "id": "kukri", "fg": 683, "rotates": false, "multitile": false }, + { "id": "lajatang", "fg": 478, "rotates": false, "multitile": false }, + { "id": "lamp_oil", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "landmine", "fg": 620, "rotates": false, "multitile": false }, + { "id": "laptop", "fg": 413, "rotates": false, "multitile": false }, + { "id": "largebroketent", "fg": 407, "rotates": false, "multitile": false }, + { "id": "large_repairkit", "fg": 947, "rotates": false, "multitile": false }, + { "id": "large_tent_kit", "fg": 253, "rotates": false, "multitile": false }, + { "id": "laser_cannon", "fg": 565, "rotates": false, "multitile": false }, + { "id": "laser_capacitor", "fg": 909, "rotates": false, "multitile": false }, + { "id": "laser_pack", "fg": 915, "rotates": false, "multitile": false }, + { "id": "laser_rifle", "fg": 564, "rotates": false, "multitile": false }, + { "id": "laser_sight", "fg": 926, "rotates": false, "multitile": false }, + { "id": "launcher_simple", "fg": 568, "rotates": false, "multitile": false }, + { "id": "lawnmower", "fg": 405, "rotates": false, "multitile": false }, + { "id": "lawn_dart", "fg": 905, "rotates": false, "multitile": false }, + { "id": "LAW", "fg": 571, "rotates": false, "multitile": false }, + { "id": "LAW_Packed", "fg": 571, "rotates": false, "multitile": false }, + { "id": "lead", "fg": 912, "rotates": false, "multitile": false }, + { "id": "lead_plate", "fg": 467, "rotates": false, "multitile": false }, + { "id": "leather_cat_tail", "fg": 531, "rotates": false }, + { "id": "leather_funnel", "fg": 826, "rotates": false, "multitile": false }, + { "id": "lemonlime", "fg": 942, "rotates": false, "multitile": false }, + { "id": "lens", "fg": 378, "rotates": false, "multitile": false }, + { "id": "lgpistol_primer", "fg": 917, "rotates": false, "multitile": false }, + { "id": "lgrifle_primer", "fg": 917, "rotates": false, "multitile": false }, + { "id": "lighter", "fg": 876, "rotates": true }, + { "id": "lightstrip", "fg": 586, "rotates": false, "multitile": false }, + { "id": "lightstrip_dead", "fg": 584, "rotates": false, "multitile": false }, + { "id": "lightstrip_inactive", "fg": 585, "rotates": false, "multitile": false }, + { "id": "light_emergency_blue", "fg": 880, "rotates": false }, + { "id": "light_emergency_red", "fg": 879, "rotates": false }, + { "id": "light_snare_kit", "fg": 618, "rotates": false, "multitile": false }, + { "id": "lobotomizer", "fg": 859, "rotates": false, "multitile": false }, + { "id": "log", "fg": 401, "rotates": false, "multitile": false }, + { "id": "longbow", "fg": 902, "rotates": false, "multitile": false }, + { "id": "long_island", "fg": 940, "rotates": false, "multitile": false }, + { "id": "lye_powder", "fg": 356, "rotates": false, "multitile": false }, + { "id": "l_bak_223", "fg": 526, "rotates": false, "multitile": false }, + { "id": "l_base_223", "fg": 523, "rotates": false, "multitile": false }, + { "id": "l_car_223", "fg": 523, "rotates": false, "multitile": false }, + { "id": "l_car_223_kit", "fg": 926, "rotates": false, "multitile": false }, + { "id": "l_def_12", "fg": 536, "rotates": false, "multitile": false }, + { "id": "l_dsr_223", "fg": 523, "rotates": false, "multitile": false }, + { "id": "l_dsr_223_kit", "fg": 926, "rotates": false, "multitile": false }, + { "id": "l_enforcer_45", "fg": 526, "rotates": false, "multitile": false }, + { "id": "l_HFPack", "fg": 947, "rotates": false, "multitile": false }, + { "id": "l_lmg_223", "fg": 523, "rotates": false, "multitile": false }, + { "id": "l_lmg_223_kit", "fg": 926, "rotates": false, "multitile": false }, + { "id": "l_long_45", "fg": 517, "rotates": false, "multitile": false }, + { "id": "l_lookout_9mm", "fg": 526, "rotates": false, "multitile": false }, + { "id": "l_mbr_223", "fg": 523, "rotates": false, "multitile": false }, + { "id": "l_mbr_223_kit", "fg": 926, "rotates": false, "multitile": false }, + { "id": "l_mp_45", "fg": 526, "rotates": false, "multitile": false }, + { "id": "l_mp_9mm", "fg": 526, "rotates": false, "multitile": false }, + { "id": "l_sp_45", "fg": 526, "rotates": false, "multitile": false }, + { "id": "l_sp_9mm", "fg": 526, "rotates": false, "multitile": false }, + { "id": "m1014", "fg": 536, "rotates": false, "multitile": false }, + { "id": "m107a1", "fg": 558, "rotates": false, "multitile": false }, + { "id": "m14a", "fg": 517, "rotates": false, "multitile": false }, + { "id": "m14ebr", "fg": 523, "rotates": false, "multitile": false }, + { "id": "m1911", "fg": 526, "rotates": false, "multitile": false }, + { "id": "m2010", "fg": 523, "rotates": false, "multitile": false }, + { "id": "m202_flash", "fg": 571, "rotates": false, "multitile": false }, + { "id": "m203", "fg": 926, "rotates": false, "multitile": false }, + { "id": "m235tpa", "fg": 967, "rotates": false, "multitile": false }, + { "id": "m249", "fg": 562, "rotates": false, "multitile": false }, + { "id": "m27iar", "fg": 558, "rotates": false, "multitile": false }, + { "id": "m2browning", "fg": 536, "rotates": false, "multitile": false }, + { "id": "m2browning_sawn", "fg": 536, "rotates": false, "multitile": false }, + { "id": "m320", "fg": 568, "rotates": false, "multitile": false }, + { "id": "m320_mod", "fg": 926, "rotates": false, "multitile": false }, + { "id": "m3_carlgustav", "fg": 571, "rotates": false, "multitile": false }, + { "id": "m4a1", "fg": 558, "rotates": false, "multitile": false }, + { "id": "m79", "fg": 569, "rotates": false, "multitile": false }, + { "id": "m9", "fg": 526, "rotates": false, "multitile": false }, + { "id": "mace", "fg": 453, "rotates": false, "multitile": false }, + { "id": "machete", "fg": 680, "rotates": false, "multitile": false }, + { "id": "mac_10", "fg": 524, "rotates": false, "multitile": false }, + { "id": "magnifying_glass", "fg": 827, "rotates": false, "multitile": false }, + { "id": "makeshift_crowbar", "fg": 602, "rotates": false, "multitile": false }, + { "id": "makeshift_funnel", "fg": 710, "rotates": false, "multitile": false }, + { "id": "makeshift_halberd", "fg": 697, "rotates": false, "multitile": false }, + { "id": "makeshift_knife", "fg": 698, "rotates": false, "multitile": false }, + { "id": "makeshift_machete", "fg": 694, "rotates": false, "multitile": false }, + { "id": "manhole_cover", "fg": 1822, "rotates": false, "multitile": false }, + { "id": "marble", "fg": 910, "rotates": false, "multitile": false }, + { "id": "mark19", "fg": 536, "rotates": false, "multitile": false }, + { "id": "marlin_9a", "fg": 517, "rotates": false, "multitile": false }, + { "id": "masterkey", "fg": 926, "rotates": false, "multitile": false }, + { "id": "matchbomb", "fg": 555, "rotates": false, "multitile": false }, + { "id": "matchbomb_act", "fg": 556, "rotates": false, "multitile": false }, + { "id": "matches", "fg": 875, "rotates": true }, + { "id": "match_trigger", "fg": 926, "rotates": false, "multitile": false }, + { "id": "material_cement", "fg": 916, "rotates": false, "multitile": false }, + { "id": "material_limestone", "fg": 912, "rotates": false, "multitile": false }, + { "id": "material_shrd_limestone", "fg": 801, "rotates": false, "multitile": false }, + { "id": "mead", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "meat_pickled", "fg": 1305, "rotates": false, "multitile": false }, + { "id": "medical_gauze", "fg": 745, "rotates": false, "multitile": false }, + { "id": "medical_tape", "fg": 908, "rotates": false, "multitile": false }, + { "id": "medium_storage_battery", "fg": 882, "rotates": false }, + { "id": "mess_kit", "fg": 799, "rotates": false, "multitile": false }, + { "id": "metal_smoother", "fg": 397, "rotates": false, "multitile": false }, + { "id": "metal_tank", "fg": 462, "rotates": false, "multitile": false }, + { "id": "metal_tank_little", "fg": 462, "rotates": false, "multitile": false }, + { "id": "metal_tank_small", "fg": 462, "rotates": false, "multitile": false }, + { "id": "mgl", "fg": 562, "rotates": false, "multitile": false }, + { "id": "microwave", "fg": 412, "rotates": false, "multitile": false }, + { "id": "militarymap", "fg": 601, "rotates": false, "multitile": false }, + { "id": "milk", "fg": 1416, "rotates": false, "multitile": false }, + { "id": "mil_mess_kit", "fg": 799, "rotates": false, "multitile": false }, + { "id": "mil_plate", "fg": 470, "rotates": false, "multitile": false }, + { "id": "minifridge", "fg": 874, "rotates": false }, + { "id": "mininuke", "fg": 652, "rotates": false, "multitile": false }, + { "id": "mininuke_act", "fg": 653, "rotates": false, "multitile": false }, + { "id": "mininuke_launcher", "fg": 571, "rotates": false, "multitile": false }, + { "id": "mininuke_mod", "fg": 652, "rotates": false, "multitile": false }, + { "id": "minireactor", "fg": 463, "rotates": false, "multitile": false }, + { "id": "minispeargun", "fg": 522, "rotates": false, "multitile": false }, + { "id": "mirror", "fg": 727, "rotates": false, "multitile": false }, + { "id": "misc_repairkit", "fg": 947, "rotates": false, "multitile": false }, + { "id": "mjolnir", "fg": 454, "rotates": false, "multitile": false }, + { "id": "mobile_memory_card", "fg": 802, "rotates": false, "multitile": false }, + { "id": "mobile_memory_card_encrypted", "fg": 802, "rotates": false, "multitile": false }, + { "id": "mobile_memory_card_science", "fg": 802, "rotates": false, "multitile": false }, + { "id": "mobile_memory_card_used", "fg": 802, "rotates": false, "multitile": false }, + { "id": "molasses", "fg": 940, "rotates": false, "multitile": false }, + { "id": "mold_plastic", "fg": 751, "rotates": false, "multitile": false }, + { "id": "molotov", "fg": 642, "rotates": false, "multitile": false }, + { "id": "molotov_lit", "fg": 643, "rotates": false, "multitile": false }, + { "id": "money_bundle", "fg": 506, "rotates": false }, + { "id": "moonshine", "fg": 940, "rotates": false, "multitile": false }, + { "id": "mop", "fg": 717, "rotates": false, "multitile": false }, + { "id": "morningstar", "fg": 454, "rotates": false, "multitile": false }, + { "id": "mortar_build", "fg": 1409, "rotates": false, "multitile": false }, + { "id": "mosin44", "fg": 517, "rotates": false, "multitile": false }, + { "id": "mosin91_30", "fg": 517, "rotates": false, "multitile": false }, + { "id": "mossberg_500", "fg": 536, "rotates": false, "multitile": false }, + { "id": "moss_brownie", "fg": 525, "rotates": false, "multitile": false }, + { "id": "motor", "fg": 459, "rotates": false, "multitile": false }, + { "id": "motor_large", "fg": 459, "rotates": false, "multitile": false }, + { "id": "motor_small", "fg": 459, "rotates": false, "multitile": false }, + { "id": "mp3", "fg": 663, "rotates": false, "multitile": false }, + { "id": "mp3_on", "fg": 664, "rotates": false, "multitile": false }, + { "id": "muffler", "fg": 444, "rotates": false, "multitile": false }, + { "id": "multitool", "fg": 798, "rotates": false, "multitile": false }, + { "id": "multi_cooker", "fg": 1573, "rotates": false, "multitile": false }, + { "id": "music_cd", "fg": 781, "rotates": false }, + { "id": "mutagen", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_alpha", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_beast", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_bird", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_cattle", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_cephalopod", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_chimera", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_elfa", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_feline", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_fish", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_insect", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_lizard", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_lupine", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_medical", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_plant", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_raptor", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_rat", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_slime", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_spider", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_troglobite", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "mutagen_ursine", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "muzzle_brake", "fg": 926, "rotates": false, "multitile": false }, + { "id": "m_fishspear", "fg": 686, "rotates": false, "multitile": false }, + { "id": "nailbat", "fg": 442, "rotates": false, "multitile": false }, + { "id": "nailboard", "fg": 441, "rotates": false, "multitile": false }, + { "id": "nailgun", "fg": 515, "rotates": false, "multitile": false }, + { "id": "nailrifle", "fg": 516, "rotates": false, "multitile": false }, + { "id": "nail", "fg": 897, "rotates": false, "multitile": false }, + { "id": "napalm", "fg": 945, "rotates": false, "multitile": false }, + { "id": "needlegun", "fg": 524, "rotates": false, "multitile": false }, + { "id": "needlepistol", "fg": 526, "rotates": false, "multitile": false }, + { "id": "needle_bone", "fg": 729, "rotates": false, "multitile": false }, + { "id": "needle_wood", "fg": 552, "rotates": false, "multitile": false }, + { "id": "nicotine_liquid", "fg": 723, "rotates": false, "multitile": false }, + { "id": "nic_gum", "fg": 1264, "rotates": false, "multitile": false }, + { "id": "nodachi", "fg": 683, "rotates": false, "multitile": false }, + { "id": "nodachi_fake", "fg": 683, "rotates": false, "multitile": false }, + { "id": "noise_emitter", "fg": 599, "rotates": false, "multitile": false }, + { "id": "noise_emitter_on", "fg": 600, "rotates": false, "multitile": false }, + { "id": "nomex", "fg": 485, "rotates": false }, + { "id": "nx17", "fg": 564, "rotates": false, "multitile": false }, + { "id": "oil_lamp", "fg": 935, "rotates": false, "multitile": false }, + { "id": "oil_lamp_on", "fg": 936, "rotates": false, "multitile": false }, + { "id": "oj", "fg": 941, "rotates": false, "multitile": false }, + { "id": "omnicamera", "fg": 1452, "rotates": false }, + { "id": "orangesoda", "fg": 941, "rotates": false, "multitile": false }, + { "id": "oxy_powder", "fg": 916, "rotates": false, "multitile": false }, + { "id": "oxy_torch", "fg": 674, "rotates": false, "multitile": false }, + { "id": "paint_brush", "fg": 453, "rotates": false, "multitile": false }, + { "id": "pale_ale", "fg": 940, "rotates": false, "multitile": false }, + { "id": "panties", "fg": 1231, "rotates": false, "multitile": false }, + { "id": "pan", "fg": 386, "rotates": false, "multitile": false }, + { "id": "paper", "fg": 907, "rotates": false, "multitile": false }, + { "id": "pastaextruder", "fg": 541, "rotates": false, "multitile": false }, + { "id": "pda", "fg": 726, "rotates": false, "multitile": false }, + { "id": "pda_flashlight", "fg": 727, "rotates": false, "multitile": false }, + { "id": "pearl_collar", "fg": 991, "rotates": false, "multitile": false }, + { "id": "pebble", "fg": 910, "rotates": false, "multitile": false }, + { "id": "peephole", "fg": 815, "rotates": false, "multitile": false }, + { "id": "pepper", "fg": 916, "rotates": false, "multitile": false }, + { "id": "permanent_marker", "fg": 722, "rotates": false, "multitile": false }, + { "id": "petrified_eye", "fg": 391, "rotates": false, "multitile": false }, + { "id": "pheromone", "fg": 654, "rotates": false, "multitile": false }, + { "id": "pickaxe", "fg": 720, "rotates": false, "multitile": false }, + { "id": "pickelhaube", "fg": 1144, "rotates": false, "multitile": false }, + { "id": "picklocks", "fg": 718, "rotates": false, "multitile": false }, + { "id": "pike", "fg": 688, "rotates": false, "multitile": false }, + { "id": "pillow", "fg": 800, "rotates": false, "multitile": false }, + { "id": "pilot_light", "fg": 410, "rotates": false, "multitile": false }, + { "id": "pinecone", "fg": 793, "rotates": false }, + { "id": "pine_tea", "fg": 1414, "rotates": false, "multitile": false }, + { "id": "pine_wine", "fg": 1312, "rotates": false, "multitile": false }, + { "id": "pipebomb", "fg": 625, "rotates": false, "multitile": false }, + { "id": "pipebomb_act", "fg": 626, "rotates": false, "multitile": false }, + { "id": "pipebomb_radio", "fg": 806, "rotates": false, "multitile": false }, + { "id": "pipebomb_radio_act", "fg": 807, "rotates": false, "multitile": false }, + { "id": "pipe", "fg": 476, "rotates": false }, + { "id": "pipe_double_shotgun", "fg": 534, "rotates": false, "multitile": false }, + { "id": "pipe_glass", "fg": 754, "rotates": false, "multitile": false }, + { "id": "pipe_launcher40mm", "fg": 926, "rotates": false, "multitile": false }, + { "id": "pipe_shotgunsawn", "fg": 1808, "rotates": false, "multitile": false }, + { "id": "pipe_shotgun", "fg": 1807, "rotates": false, "multitile": false }, + { "id": "pipe_tobacco", "fg": 755, "rotates": false, "multitile": false }, + { "id": "pistol_bayonet", "fg": 926, "rotates": false, "multitile": false }, + { "id": "pistol_flintlock", "fg": 525, "rotates": false, "multitile": false }, + { "id": "pistol_grip", "fg": 926, "rotates": false, "multitile": false }, + { "id": "pistol_scope", "fg": 926, "rotates": false, "multitile": false }, + { "id": "pistol_stock", "fg": 926, "rotates": false, "multitile": false }, + { "id": "pitchfork", "fg": 851, "rotates": false, "multitile": false }, + { "id": "plant_fibre", "fg": 894, "rotates": false, "multitile": false }, + { "id": "plasma", "fg": 901, "rotates": false, "multitile": false }, + { "id": "plasma_engine", "fg": 459, "rotates": false, "multitile": false }, + { "id": "plasma_rifle", "fg": 564, "rotates": false, "multitile": false }, + { "id": "plastic_chunk", "fg": 724, "rotates": false, "multitile": false }, + { "id": "plut_cell", "fg": 896, "rotates": false, "multitile": false }, + { "id": "pocketwatch", "fg": 481, "rotates": false, "multitile": false }, + { "id": "pockknife", "fg": 728, "rotates": false, "multitile": false }, + { "id": "pointy_stick", "fg": 432, "rotates": false, "multitile": false }, + { "id": "pool_ball", "fg": 395, "rotates": false, "multitile": false }, + { "id": "pool_cue", "fg": 432, "rotates": false, "multitile": false }, + { "id": "poppysyrup", "fg": 1415, "rotates": false, "multitile": false }, + { "id": "poppy_bud", "fg": 477, "rotates": false, "multitile": false }, + { "id": "poppy_flower", "fg": 475, "rotates": false, "multitile": false }, + { "id": "porkpie", "fg": 1156, "rotates": false, "multitile": false }, + { "id": "portable_game", "fg": 665, "rotates": false, "multitile": false }, + { "id": "portal", "fg": 655, "rotates": false, "multitile": false }, + { "id": "pot", "fg": 428, "rotates": false, "multitile": false }, + { "id": "power_supply", "fg": 959, "rotates": false, "multitile": false }, + { "id": "ppshdrum", "fg": 870, "rotates": false }, + { "id": [ "ppshmag", "tokarevmag" ], "fg": 871, "rotates": false }, + { "id": "ppsh", "fg": 538, "rotates": false, "multitile": false }, + { "id": "PR24-extended", "fg": 443, "rotates": false, "multitile": false }, + { "id": "PR24-retracted", "fg": 443, "rotates": false, "multitile": false }, + { "id": "press", "fg": 712, "rotates": false, "multitile": false }, + { "id": "primitive_axe", "fg": 731, "rotates": false, "multitile": false }, + { "id": "primitive_hammer", "fg": 730, "rotates": false, "multitile": false }, + { "id": "primitive_knife", "fg": 698, "rotates": false, "multitile": false }, + { "id": "primitive_shovel", "fg": 732, "rotates": false, "multitile": false }, + { "id": "processor", "fg": 958, "rotates": false, "multitile": false }, + { "id": "protein_shake", "fg": 1390, "rotates": false, "multitile": false }, + { "id": "puck", "fg": 951, "rotates": false, "multitile": false }, + { "id": "puller", "fg": 711, "rotates": false, "multitile": false }, + { "id": "punch_dagger", "fg": 490, "rotates": false, "multitile": false }, + { "id": "purifier", "fg": 945, "rotates": false, "multitile": false }, + { "id": "purple_drink", "fg": 1403, "rotates": false }, + { "id": "p_carpet", "fg": 771, "rotates": false }, + { "id": "p_paint", "fg": 400, "rotates": false, "multitile": false }, + { "id": "q_staff", "fg": 437, "rotates": false, "multitile": false }, + { "id": "radiocontrol", "fg": 812, "rotates": false, "multitile": false }, + { "id": "radio", "fg": 594, "rotates": false, "multitile": false }, + { "id": "radio_car", "fg": 810, "rotates": false, "multitile": false }, + { "id": "radio_car_box", "fg": 581, "rotates": false, "multitile": false }, + { "id": "radio_car_on", "fg": 811, "rotates": false, "multitile": false }, + { "id": "radio_on", "fg": 595, "rotates": false, "multitile": false }, + { "id": "rad_monitor", "fg": 992, "rotates": false, "multitile": false }, + { "id": "raging_bull", "fg": 526, "rotates": false, "multitile": false }, + { "id": "ragpouch", "fg": 1167, "rotates": false, "multitile": false }, + { "id": "rag", "fg": 485, "rotates": false }, + { "id": "rag_bloody", "fg": 425, "rotates": false, "multitile": false }, + { "id": "rail_laser_sight", "fg": 926, "rotates": false, "multitile": false }, + { "id": "RAM", "fg": 958, "rotates": false, "multitile": false }, + { "id": "rapier", "fg": 687, "rotates": false, "multitile": false }, + { "id": "rapier_fake", "fg": 687, "rotates": false, "multitile": false }, + { "id": "raw_fur", "fg": 818, "rotates": false, "multitile": false }, + { "id": "raw_leather", "fg": 819, "rotates": false, "multitile": false }, + { "id": "razor_blade", "fg": 547, "rotates": false, "multitile": false }, + { "id": "rebar", "fg": 474, "rotates": false, "multitile": false }, + { "id": "rebar_rail", "fg": 914, "rotates": false, "multitile": false }, + { "id": "rebar_rifle", "fg": 534, "rotates": false, "multitile": false }, + { "id": "rebreather", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "rebreather_filter", "fg": 901, "rotates": false, "multitile": false }, + { "id": "rebreather_on", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "rebreather_xl", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "rebreather_xl_on", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "receiver", "fg": 958, "rotates": false, "multitile": false }, + { "id": "rechargeable_battery", "fg": 915, "rotates": false, "multitile": false }, + { "id": "recharge_station", "fg": 925, "rotates": false }, + { "id": "recoil_stock", "fg": 926, "rotates": false, "multitile": false }, + { "id": "recurbow", "fg": 902, "rotates": false, "multitile": false }, + { "id": "red_dot_sight", "fg": 926, "rotates": false, "multitile": false }, + { "id": "reflexbow", "fg": 902, "rotates": false, "multitile": false }, + { "id": "reflexrecurvebow", "fg": 902, "rotates": false, "multitile": false }, + { "id": "ref_lighter", "fg": 764, "rotates": false, "multitile": false }, + { "id": "ref_lighter_on", "fg": 790, "rotates": false, "multitile": false }, + { "id": "reinforced_glass_pane", "fg": 385, "rotates": false, "multitile": false }, + { "id": "reinforced_glass_sheet", "fg": 385, "rotates": false, "multitile": false }, + { "id": "reinforced_solar_panel", "fg": 885, "rotates": false, "multitile": false }, + { "id": "reinforced_solar_panel_v2", "fg": 885, "rotates": false }, + { "id": "reloaded_10mm", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_223", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_270", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_3006", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_3006_incendiary", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_300_winmag", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_308", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_32_acp", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_38_fmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_38_special", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_38_super", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_40fmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_40mm_flechette", "fg": 967, "rotates": false, "multitile": false }, + { "id": "reloaded_40mm_shot", "fg": 967, "rotates": false, "multitile": false }, + { "id": "reloaded_40sw", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_44fmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_44magnum", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_454_Casull", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_45_acp", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_45_jhp", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_45_super", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_46mm", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_500_Magnum", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_50bmg", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_50ss", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_50_incendiary", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_556", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_556_incendiary", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_57mm", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_5x50dart", "fg": 829, "rotates": false, "multitile": false }, + { "id": "reloaded_700nx", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_762_51", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_762_51_incendiary", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_762_54R", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_762_m43", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_762_m87", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_9mmfmj", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_9mmP2", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_9mmP", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_9mmP", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_9mm", "fg": 962, "rotates": false, "multitile": false }, + { "id": "reloaded_laser_pack", "fg": 915, "rotates": false, "multitile": false }, + { "id": "reloaded_shot_00", "fg": 961, "rotates": false, "multitile": false }, + { "id": "reloaded_shot_beanbag", "fg": 961, "rotates": false, "multitile": false }, + { "id": "reloaded_shot_bird", "fg": 961, "rotates": false, "multitile": false }, + { "id": "reloaded_shot_flechette", "fg": 961, "rotates": false, "multitile": false }, + { "id": "reloaded_shot_he", "fg": 961, "rotates": false, "multitile": false }, + { "id": "reloaded_shot_slug", "fg": 961, "rotates": false, "multitile": false }, + { "id": "reloaded_signal_flare", "fg": 961, "rotates": false, "multitile": false }, + { "id": "remington_700", "fg": 517, "rotates": false, "multitile": false }, + { "id": "remington_870", "fg": 536, "rotates": false, "multitile": false }, + { "id": "remotevehcontrol", "fg": 812, "rotates": false, "multitile": false }, + { "id": "rep_crossbow", "fg": 903, "rotates": false, "multitile": false }, + { "id": "restaurantmap", "fg": 601, "rotates": false, "multitile": false }, + { "id": "retool_223", "fg": 926, "rotates": false, "multitile": false }, + { "id": "retool_22", "fg": 926, "rotates": false, "multitile": false }, + { "id": "retool_308", "fg": 926, "rotates": false, "multitile": false }, + { "id": "retool_45", "fg": 926, "rotates": false, "multitile": false }, + { "id": "retool_46", "fg": 926, "rotates": false, "multitile": false }, + { "id": "retool_57", "fg": 926, "rotates": false, "multitile": false }, + { "id": "retool_9mm", "fg": 926, "rotates": false, "multitile": false }, + { "id": "revolver_shotgun", "fg": 1806, "rotates": false, "multitile": false }, + { "id": "rifle_22", "fg": 517, "rotates": false, "multitile": false }, + { "id": "rifle_308", "fg": 517, "rotates": false, "multitile": false }, + { "id": "rifle_9mm", "fg": 523, "rotates": false, "multitile": false }, + { "id": "rifle_flintlock", "fg": 517, "rotates": false, "multitile": false }, + { "id": "rifle_scope", "fg": 926, "rotates": false, "multitile": false }, + { "id": "rm103a_pistol", "fg": 526, "rotates": false, "multitile": false }, + { "id": "rm11b_sniper_rifle", "fg": 523, "rotates": false, "multitile": false }, + { "id": "rm120c", "fg": 536, "rotates": false, "multitile": false }, + { "id": "rm121aux", "fg": 926, "rotates": false, "multitile": false }, + { "id": "rm2000_smg", "fg": 524, "rotates": false, "multitile": false }, + { "id": "rm20", "fg": 562, "rotates": false, "multitile": false }, + { "id": "rm228", "fg": 568, "rotates": false, "multitile": false }, + { "id": "rm298", "fg": 562, "rotates": false, "multitile": false }, + { "id": "rm451_flamethrower", "fg": 566, "rotates": false, "multitile": false }, + { "id": "rm51_assault_rifle", "fg": 558, "rotates": false, "multitile": false }, + { "id": "rm614_lmg", "fg": 562, "rotates": false, "multitile": false }, + { "id": "rm802", "fg": 544, "rotates": false, "multitile": false }, + { "id": "rm88_battle_rifle", "fg": 523, "rotates": false, "multitile": false }, + { "id": "rm99_pistol", "fg": 526, "rotates": false, "multitile": false }, + { "id": "roadmap", "fg": 601, "rotates": false, "multitile": false }, + { "id": "robot_controls", "fg": 1453, "rotates": false, "multitile": false }, + { "id": "rock", "fg": 465, "rotates": false }, + { "id": "rock_pot", "fg": 428, "rotates": false, "multitile": false }, + { "id": "rock_quern", "fg": 574, "rotates": false, "multitile": false }, + { "id": "rock_sock", "fg": 492, "rotates": false, "multitile": false }, + { "id": "rolling_paper", "fg": 496, "rotates": false, "multitile": false }, + { "id": "rollmat", "fg": 676, "rotates": false, "multitile": false }, + { "id": "rootbeer", "fg": 940, "rotates": false, "multitile": false }, + { "id": "rope_30", "fg": 531, "rotates": false }, + { "id": "rope_6", "fg": 531, "rotates": true }, + { "id": "RPG-7_ammo", "fg": 968, "rotates": false, "multitile": false }, + { "id": "RPG", "fg": 570, "rotates": false, "multitile": false }, + { "id": "rubber_slug", "fg": 624, "rotates": false, "multitile": false }, + { "id": "ruger_1022", "fg": 517, "rotates": false, "multitile": false }, + { "id": "ruger_mini", "fg": 517, "rotates": false, "multitile": false }, + { "id": "ruger_redhawk", "fg": 526, "rotates": false, "multitile": false }, + { "id": "rum", "fg": 940, "rotates": false, "multitile": false }, + { "id": "rx12_injector", "fg": 528, "rotates": false, "multitile": false }, + { "id": "r_carpet", "fg": 768, "rotates": false }, + { "id": "r_paint", "fg": 1404, "rotates": false, "multitile": false }, + { "id": "saddle", "fg": 1490, "bg": 1, "rotates": false, "multitile": false }, + { "id": "safe_box", "fg": 1573, "rotates": false, "multitile": false }, + { "id": "saiga_12", "fg": 537, "rotates": false, "multitile": false }, + { "id": "saiga_sawn", "fg": 533, "rotates": false, "multitile": false }, + { "id": "saline", "fg": 939, "rotates": false, "multitile": false }, + { "id": "salt_water", "fg": 939, "rotates": false, "multitile": false }, + { "id": "sarcophagus_access_code", "fg": 907, "rotates": false, "multitile": false }, + { "id": "savage_111f", "fg": 517, "rotates": false, "multitile": false }, + { "id": "saw", "fg": 701, "rotates": false, "multitile": false }, + { "id": "scalpel", "fg": 679, "rotates": false, "multitile": false }, + { "id": "scar_h", "fg": 558, "rotates": false, "multitile": false }, + { "id": "scar_l", "fg": 558, "rotates": false, "multitile": false }, + { "id": "scissors", "fg": 576, "rotates": false, "multitile": false }, + { "id": "scrambler", "fg": 635, "rotates": false, "multitile": false }, + { "id": "scrambler_act", "fg": 636, "rotates": false, "multitile": false }, + { "id": "scrap", "fg": 912, "rotates": false, "multitile": false }, + { "id": "screwdriver", "fg": 713, "rotates": false, "multitile": false }, + { "id": "scythe", "fg": 500, "rotates": false, "multitile": false }, + { "id": "scythe_war", "fg": 501, "rotates": false, "multitile": false }, { "id": "seatbelt", - "fg": 883, - "rotates": true, - "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 882 } ] - }, - { "id": "seat", "fg": 1482, "bg": 1, "rotates": false, "multitile": false }, - { "id": "seed_garlic", "fg": 857, "rotates": false }, - { "id": "selfbow", "fg": 894, "rotates": false, "multitile": false }, - { "id": "sewage", "fg": 932, "rotates": false, "multitile": false }, - { "id": "sewing_kit", "fg": 567, "rotates": false, "multitile": false }, - { "id": "shaft_metal", "fg": 903, "rotates": false, "multitile": false }, - { "id": "shaft_plastic", "fg": 903, "rotates": false, "multitile": false }, - { "id": "shaft_wood", "fg": 903, "rotates": false, "multitile": false }, - { "id": "shaft_wood_heavy", "fg": 903, "rotates": false, "multitile": false }, - { "id": "sharp_rock", "fg": 793, "rotates": false, "multitile": false }, - { "id": "sharp_toothbrush", "fg": 485, "rotates": false, "multitile": false }, - { "id": "sheet", "fg": 991, "rotates": false }, - { "id": "sheet_metal", "fg": 459, "rotates": false, "multitile": false }, - { "id": "sheet_metal_lit", "fg": 844, "rotates": false, "multitile": false }, - { "id": "shelter_kit", "fg": 246, "rotates": false, "multitile": false }, - { "id": "shishkebab_off", "fg": 673, "rotates": false, "multitile": false }, - { "id": "shishkebab_on", "fg": 674, "rotates": false, "multitile": false }, - { "id": "shocktonfa_off", "fg": 435, "rotates": false, "multitile": false }, - { "id": "shocktonfa_on", "fg": 447, "rotates": false, "multitile": false }, - { "id": "shock_staff", "fg": 495, "rotates": false, "multitile": false }, - { "id": "shortbow", "fg": 894, "rotates": false, "multitile": false }, - { "id": "shotgun_d", "fg": 526, "rotates": false, "multitile": false }, - { "id": "shotgun_primer", "fg": 909, "rotates": false, "multitile": false }, - { "id": "shotgun_sawn", "fg": 524, "rotates": false, "multitile": false }, - { "id": "shotgun_s", "fg": 526, "rotates": false, "multitile": false }, - { "id": "shotgun_trap", "fg": 608, "rotates": false, "multitile": false }, - { "id": "shot_00", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_beanbag", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_bird", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_flechette", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_he", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_hull", "fg": 941 }, - { "id": "shot_scrapbag", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_scrapslug", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_scrap", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_slug", "fg": 953, "rotates": false, "multitile": false }, - { "id": "shot_suppressor", "fg": 918, "rotates": false, "multitile": false }, - { "id": "shoulder_strap", "fg": 918, "rotates": false, "multitile": false }, - { "id": "shovel", "fg": 596, "rotates": false, "multitile": false }, - { "id": "sickle", "fg": 494, "rotates": false, "multitile": false }, - { "id": "sig_40", "fg": 518, "rotates": false, "multitile": false }, - { "id": "sig_mosquito", "fg": 518, "rotates": false, "multitile": false }, - { "id": "sig_p230", "fg": 518, "rotates": false, "multitile": false }, - { "id": "silver", "fg": 944, "rotates": false, "multitile": false }, - { "id": "silver_small", "fg": 904, "rotates": false, "multitile": false }, - { "id": "sinew", "fg": 884, "rotates": false, "multitile": false }, - { "id": "single_malt_whiskey", "fg": 932, "rotates": false, "multitile": false }, - { "id": "skewer", "fg": 424, "rotates": false, "multitile": false }, - { "id": "sks", "fg": 509, "rotates": false, "multitile": false }, - { "id": "slingshot", "fg": 512, "rotates": false, "multitile": false }, - { "id": "sling", "fg": 510, "rotates": false, "multitile": false }, - { "id": "small_lcd_screen", "fg": 369, "rotates": false, "multitile": false }, - { "id": "small_repairkit", "fg": 939, "rotates": false, "multitile": false }, - { "id": "small_storage_battery", "fg": 874, "rotates": false }, - { "id": "smart_lamp", "fg": 927, "rotates": false, "multitile": false }, - { "id": "smart_lamp_on", "fg": 928, "rotates": false, "multitile": false }, - { "id": "smokebomb", "fg": 631, "rotates": false, "multitile": false }, - { "id": "smokebomb_act", "fg": 632, "rotates": false, "multitile": false }, - { "id": "smpistol_primer", "fg": 909, "rotates": false, "multitile": false }, - { "id": "smrifle_primer", "fg": 909, "rotates": false, "multitile": false }, - { "id": "sm_extinguisher", "fg": 570, "rotates": false, "multitile": false }, - { "id": "snare_trigger", "fg": 707, "rotates": false, "multitile": false }, - { "id": "soap", "fg": 911, "rotates": false, "multitile": false }, - { "id": "solar_cell", "fg": 458, "rotates": false, "multitile": false }, - { "id": "solar_panel", "fg": 876, "rotates": false, "multitile": false }, - { "id": "solar_panel_v2", "fg": 876, "rotates": false }, - { "id": "solar_panel_v3", "fg": 876, "rotates": false }, - { "id": "soldering_iron", "fg": 583, "rotates": false, "multitile": false }, - { "id": "solder_wire", "fg": 885, "rotates": false, "multitile": false }, - { "id": "soup_human", "fg": 932, "rotates": false, "multitile": false }, - { "id": "soup_meat", "fg": 932, "rotates": false, "multitile": false }, - { "id": "soup_veggy", "fg": 1410, "rotates": false, "multitile": false }, - { "id": "soup_woods", "fg": 932, "rotates": false, "multitile": false }, - { "id": "spare_mag", "fg": 918, "rotates": false, "multitile": false }, - { "id": "speargun", "fg": 509, "rotates": false, "multitile": false }, - { "id": "spear_knife", "fg": 680, "rotates": false, "multitile": false }, - { "id": "spear_rebar", "fg": 466, "rotates": false, "multitile": false }, - { "id": "spear_steel", "fg": 466, "rotates": false, "multitile": false }, - { "id": "spear_survivor", "fg": 845, "rotates": false, "multitile": false }, - { "id": "spear_wood", "fg": 440, "rotates": false, "multitile": false }, - { "id": "spezi", "fg": 932, "rotates": false, "multitile": false }, - { "id": "spiked_plate", "fg": 463, "rotates": false, "multitile": false }, - { "id": "spiked_rocket", "fg": 823, "rotates": false, "multitile": false }, - { "id": "spike", "fg": 448, "rotates": false, "multitile": false }, - { "id": "spiral_stone", "fg": 384, "rotates": false, "multitile": false }, - { "id": "splinter", "fg": 660, "rotates": false, "multitile": false }, - { "id": "spoon", "fg": 415, "rotates": false, "multitile": false }, - { "id": "spork", "fg": 414, "rotates": false, "multitile": false }, - { "id": "sports_drink", "fg": 1395, "rotates": false }, - { "id": "spray_can", "fg": 713, "rotates": false, "multitile": false }, - { "id": "spring", "fg": 553, "rotates": false }, - { "id": "stabilizer", "fg": 918, "rotates": false, "multitile": false }, - { "id": "steel_chunk", "fg": 692, "rotates": false }, - { "id": "steel_lump", "fg": 681, "rotates": false }, - { "id": "steel_plate", "fg": 460, "rotates": false, "multitile": false }, - { "id": "steel_rail", "fg": 906, "rotates": false, "multitile": false }, - { "id": "stereo", "fg": 733, "rotates": false, "multitile": false }, - { "id": "stethoscope", "fg": 597, "rotates": false, "multitile": false }, - { "id": "steyr_aug", "fg": 552, "rotates": false, "multitile": false }, - { "id": "stick", "fg": 538, "rotates": false }, - { "id": "still", "fg": 742, "rotates": false, "multitile": false }, - { "id": "storage_battery", "fg": 874, "rotates": false, "multitile": false }, - { "id": "stout", "fg": 932, "rotates": false, "multitile": false }, - { "id": "straw_doll", "fg": 827, "rotates": false, "multitile": false }, - { "id": "straw_pile", "fg": 846, "rotates": false, "multitile": false }, - { "id": "string_36", "fg": 523, "rotates": false }, - { "id": "string_6", "fg": 523, "rotates": false }, - { "id": "subsuit_xl", "fg": 994, "rotates": false, "multitile": false }, - { "id": "superglue", "fg": 364, "rotates": false, "multitile": false }, - { "id": "suppressor", "fg": 918, "rotates": false, "multitile": false }, - { "id": "survival_marker", "fg": 448, "rotates": false, "multitile": false }, - { "id": "survivormap", "fg": 593, "rotates": false, "multitile": false }, - { "id": "survivor_machete", "fg": 672, "rotates": false, "multitile": false }, - { "id": "survivor_mess_kit", "fg": 834, "rotates": false, "multitile": false }, - { "id": "survivor_special_700", "fg": 509, "rotates": false, "multitile": false }, - { "id": "surv_carbine_223", "fg": 509, "rotates": false, "multitile": false }, - { "id": "surv_hand_cannon", "fg": 518, "rotates": false, "multitile": false }, - { "id": "surv_rocket_launcher", "fg": 836, "rotates": false, "multitile": false }, - { "id": "surv_six_shooter", "fg": 518, "rotates": false, "multitile": false }, - { "id": "sw629", "fg": 518, "rotates": false, "multitile": false }, - { "id": "swage", "fg": 754, "rotates": false, "multitile": false }, - { "id": "sweet_water", "fg": 931, "rotates": false, "multitile": false }, - { "id": "switchblade", "fg": 690, "rotates": false, "multitile": false }, - { "id": "sword_bayonet", "fg": 918, "rotates": false, "multitile": false }, - { "id": "sword_crude", "fg": 427, "rotates": false, "multitile": false }, - { "id": "sword_forged", "fg": 428, "rotates": false, "multitile": false }, + "fg": 891, + "rotates": true, + "multitile": true, + "additional_tiles": [ { "id": "broken", "fg": 890 } ] + }, + { "id": "seat", "fg": 1490, "bg": 1, "rotates": false, "multitile": false }, + { "id": "seed_garlic", "fg": 865, "rotates": false }, + { "id": "selfbow", "fg": 902, "rotates": false, "multitile": false }, + { "id": "sewage", "fg": 940, "rotates": false, "multitile": false }, + { "id": "sewing_kit", "fg": 575, "rotates": false, "multitile": false }, + { "id": "shaft_metal", "fg": 911, "rotates": false, "multitile": false }, + { "id": "shaft_plastic", "fg": 911, "rotates": false, "multitile": false }, + { "id": "shaft_wood", "fg": 911, "rotates": false, "multitile": false }, + { "id": "shaft_wood_heavy", "fg": 911, "rotates": false, "multitile": false }, + { "id": "sharp_rock", "fg": 801, "rotates": false, "multitile": false }, + { "id": "sharp_toothbrush", "fg": 493, "rotates": false, "multitile": false }, + { "id": "sheet", "fg": 999, "rotates": false }, + { "id": "sheet_metal", "fg": 467, "rotates": false, "multitile": false }, + { "id": "sheet_metal_lit", "fg": 852, "rotates": false, "multitile": false }, + { "id": "shelter_kit", "fg": 254, "rotates": false, "multitile": false }, + { "id": "shishkebab_off", "fg": 681, "rotates": false, "multitile": false }, + { "id": "shishkebab_on", "fg": 682, "rotates": false, "multitile": false }, + { "id": "shocktonfa_off", "fg": 443, "rotates": false, "multitile": false }, + { "id": "shocktonfa_on", "fg": 455, "rotates": false, "multitile": false }, + { "id": "shock_staff", "fg": 503, "rotates": false, "multitile": false }, + { "id": "shortbow", "fg": 902, "rotates": false, "multitile": false }, + { "id": "shotgun_d", "fg": 534, "rotates": false, "multitile": false }, + { "id": "shotgun_primer", "fg": 917, "rotates": false, "multitile": false }, + { "id": "shotgun_sawn", "fg": 532, "rotates": false, "multitile": false }, + { "id": "shotgun_s", "fg": 534, "rotates": false, "multitile": false }, + { "id": "shotgun_trap", "fg": 616, "rotates": false, "multitile": false }, + { "id": "shot_00", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_beanbag", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_bird", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_flechette", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_he", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_hull", "fg": 949 }, + { "id": "shot_scrapbag", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_scrapslug", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_scrap", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_slug", "fg": 961, "rotates": false, "multitile": false }, + { "id": "shot_suppressor", "fg": 926, "rotates": false, "multitile": false }, + { "id": "shoulder_strap", "fg": 926, "rotates": false, "multitile": false }, + { "id": "shovel", "fg": 604, "rotates": false, "multitile": false }, + { "id": "sickle", "fg": 502, "rotates": false, "multitile": false }, + { "id": "sig_40", "fg": 526, "rotates": false, "multitile": false }, + { "id": "sig_mosquito", "fg": 526, "rotates": false, "multitile": false }, + { "id": "sig_p230", "fg": 526, "rotates": false, "multitile": false }, + { "id": "silver", "fg": 952, "rotates": false, "multitile": false }, + { "id": "silver_small", "fg": 912, "rotates": false, "multitile": false }, + { "id": "sinew", "fg": 892, "rotates": false, "multitile": false }, + { "id": "single_malt_whiskey", "fg": 940, "rotates": false, "multitile": false }, + { "id": "skewer", "fg": 432, "rotates": false, "multitile": false }, + { "id": "sks", "fg": 517, "rotates": false, "multitile": false }, + { "id": "slingshot", "fg": 520, "rotates": false, "multitile": false }, + { "id": "sling", "fg": 518, "rotates": false, "multitile": false }, + { "id": "small_lcd_screen", "fg": 377, "rotates": false, "multitile": false }, + { "id": "small_repairkit", "fg": 947, "rotates": false, "multitile": false }, + { "id": "small_storage_battery", "fg": 882, "rotates": false }, + { "id": "smart_lamp", "fg": 935, "rotates": false, "multitile": false }, + { "id": "smart_lamp_on", "fg": 936, "rotates": false, "multitile": false }, + { "id": "smokebomb", "fg": 639, "rotates": false, "multitile": false }, + { "id": "smokebomb_act", "fg": 640, "rotates": false, "multitile": false }, + { "id": "smpistol_primer", "fg": 917, "rotates": false, "multitile": false }, + { "id": "smrifle_primer", "fg": 917, "rotates": false, "multitile": false }, + { "id": "sm_extinguisher", "fg": 578, "rotates": false, "multitile": false }, + { "id": "snare_trigger", "fg": 715, "rotates": false, "multitile": false }, + { "id": "soap", "fg": 919, "rotates": false, "multitile": false }, + { "id": "solar_cell", "fg": 466, "rotates": false, "multitile": false }, + { "id": "solar_panel", "fg": 884, "rotates": false, "multitile": false }, + { "id": "solar_panel_v2", "fg": 884, "rotates": false }, + { "id": "solar_panel_v3", "fg": 884, "rotates": false }, + { "id": "soldering_iron", "fg": 591, "rotates": false, "multitile": false }, + { "id": "solder_wire", "fg": 893, "rotates": false, "multitile": false }, + { "id": "soup_human", "fg": 940, "rotates": false, "multitile": false }, + { "id": "soup_meat", "fg": 940, "rotates": false, "multitile": false }, + { "id": "soup_veggy", "fg": 1418, "rotates": false, "multitile": false }, + { "id": "soup_woods", "fg": 940, "rotates": false, "multitile": false }, + { "id": "spare_mag", "fg": 926, "rotates": false, "multitile": false }, + { "id": "speargun", "fg": 517, "rotates": false, "multitile": false }, + { "id": "spear_knife", "fg": 688, "rotates": false, "multitile": false }, + { "id": "spear_rebar", "fg": 474, "rotates": false, "multitile": false }, + { "id": "spear_steel", "fg": 474, "rotates": false, "multitile": false }, + { "id": "spear_survivor", "fg": 853, "rotates": false, "multitile": false }, + { "id": "spear_wood", "fg": 448, "rotates": false, "multitile": false }, + { "id": "spezi", "fg": 940, "rotates": false, "multitile": false }, + { "id": "spiked_plate", "fg": 471, "rotates": false, "multitile": false }, + { "id": "spiked_rocket", "fg": 831, "rotates": false, "multitile": false }, + { "id": "spike", "fg": 456, "rotates": false, "multitile": false }, + { "id": "spiral_stone", "fg": 392, "rotates": false, "multitile": false }, + { "id": "splinter", "fg": 668, "rotates": false, "multitile": false }, + { "id": "spoon", "fg": 423, "rotates": false, "multitile": false }, + { "id": "spork", "fg": 422, "rotates": false, "multitile": false }, + { "id": "sports_drink", "fg": 1403, "rotates": false }, + { "id": "spray_can", "fg": 721, "rotates": false, "multitile": false }, + { "id": "spring", "fg": 561, "rotates": false }, + { "id": "stabilizer", "fg": 926, "rotates": false, "multitile": false }, + { "id": "steel_chunk", "fg": 700, "rotates": false }, + { "id": "steel_lump", "fg": 689, "rotates": false }, + { "id": "steel_plate", "fg": 468, "rotates": false, "multitile": false }, + { "id": "steel_rail", "fg": 914, "rotates": false, "multitile": false }, + { "id": "stereo", "fg": 741, "rotates": false, "multitile": false }, + { "id": "stethoscope", "fg": 605, "rotates": false, "multitile": false }, + { "id": "steyr_aug", "fg": 560, "rotates": false, "multitile": false }, + { "id": "stick", "fg": 546, "rotates": false }, + { "id": "still", "fg": 750, "rotates": false, "multitile": false }, + { "id": "storage_battery", "fg": 882, "rotates": false, "multitile": false }, + { "id": "stout", "fg": 940, "rotates": false, "multitile": false }, + { "id": "straw_doll", "fg": 835, "rotates": false, "multitile": false }, + { "id": "straw_pile", "fg": 854, "rotates": false, "multitile": false }, + { "id": "string_36", "fg": 531, "rotates": false }, + { "id": "string_6", "fg": 531, "rotates": false }, + { "id": "subsuit_xl", "fg": 1002, "rotates": false, "multitile": false }, + { "id": "superglue", "fg": 372, "rotates": false, "multitile": false }, + { "id": "suppressor", "fg": 926, "rotates": false, "multitile": false }, + { "id": "survival_marker", "fg": 456, "rotates": false, "multitile": false }, + { "id": "survivormap", "fg": 601, "rotates": false, "multitile": false }, + { "id": "survivor_machete", "fg": 680, "rotates": false, "multitile": false }, + { "id": "survivor_mess_kit", "fg": 842, "rotates": false, "multitile": false }, + { "id": "survivor_special_700", "fg": 517, "rotates": false, "multitile": false }, + { "id": "surv_carbine_223", "fg": 517, "rotates": false, "multitile": false }, + { "id": "surv_hand_cannon", "fg": 526, "rotates": false, "multitile": false }, + { "id": "surv_rocket_launcher", "fg": 844, "rotates": false, "multitile": false }, + { "id": "surv_six_shooter", "fg": 526, "rotates": false, "multitile": false }, + { "id": "sw629", "fg": 526, "rotates": false, "multitile": false }, + { "id": "swage", "fg": 762, "rotates": false, "multitile": false }, + { "id": "sweet_water", "fg": 939, "rotates": false, "multitile": false }, + { "id": "switchblade", "fg": 698, "rotates": false, "multitile": false }, + { "id": "sword_bayonet", "fg": 926, "rotates": false, "multitile": false }, + { "id": "sword_crude", "fg": 435, "rotates": false, "multitile": false }, + { "id": "sword_forged", "fg": 436, "rotates": false, "multitile": false }, { "id": [ "sword_forged", @@ -2161,4833 +2166,4881 @@ "arming_sword_fake", "arming_sword_inferior" ], - "fg": 859, + "fg": 867, "rotates": false }, - { "id": "sword_nail", "fg": 426, "rotates": false, "multitile": false }, - { "id": "sword_wood", "fg": 425, "rotates": false, "multitile": false }, - { "id": "sw_22", "fg": 518, "rotates": false, "multitile": false }, - { "id": "sw_500", "fg": 518, "rotates": false, "multitile": false }, - { "id": "sw_610", "fg": 518, "rotates": false, "multitile": false }, - { "id": "sw_619", "fg": 518, "rotates": false, "multitile": false }, - { "id": "syringe", "fg": 423, "rotates": false, "multitile": false }, - { "id": "syrup", "fg": 932, "rotates": false, "multitile": false }, - { "id": "talking_doll", "fg": 738, "rotates": false, "multitile": false }, - { "id": "tanbark", "fg": 814, "rotates": false, "multitile": false }, - { "id": "tanned_hide", "fg": 363, "rotates": false, "multitile": false }, - { "id": "tanned_pelt", "fg": 362, "rotates": false, "multitile": false }, - { "id": "tanning_hide", "fg": 817, "rotates": false, "multitile": false }, - { "id": "tanning_pelt", "fg": 816, "rotates": false, "multitile": false }, - { "id": "tanto", "fg": 675, "rotates": false, "multitile": false }, - { "id": "taurus_38", "fg": 518, "rotates": false, "multitile": false }, - { "id": "tazer", "fg": 654, "rotates": false, "multitile": false }, - { "id": "TDI", "fg": 535, "rotates": false, "multitile": false }, - { "id": "teapot", "fg": 945, "rotates": false, "multitile": false }, - { "id": "tea", "fg": 932, "rotates": false, "multitile": false }, - { "id": "tec9", "fg": 516, "rotates": false, "multitile": false }, - { "id": "teddy", "fg": 828, "rotates": false, "multitile": false }, - { "id": "telepad", "fg": 940, "rotates": false, "multitile": false }, - { "id": "teleporter", "fg": 615, "rotates": false, "multitile": false }, - { "id": "teleumbrella", "fg": 474, "rotates": false, "multitile": false }, - { "id": "television", "fg": 401, "rotates": false, "multitile": false }, - { "id": "tent_kit", "fg": 245, "rotates": false, "multitile": false }, - { "id": "tequila", "fg": 932, "rotates": false, "multitile": false }, - { "id": "thermometer", "fg": 852, "rotates": false, "multitile": false }, - { "id": "thread", "fg": 885, "rotates": false, "multitile": false }, - { "id": "throw_extinguisher", "fg": 572, "rotates": false, "multitile": false }, - { "id": "tihar", "fg": 536, "rotates": false, "multitile": false }, - { "id": "tin", "fg": 904, "rotates": false, "multitile": false }, - { "id": "tin_plate", "fg": 413, "rotates": false, "multitile": false }, - { "id": "toaster", "fg": 403, "rotates": false, "multitile": false }, - { "id": "tokarev", "fg": 518, "rotates": false, "multitile": false }, - { "id": "tonfa", "fg": 435, "rotates": false, "multitile": false }, - { "id": "tonfa_wood", "fg": 437, "rotates": false, "multitile": false }, - { "id": "tongs", "fg": 752, "rotates": false, "multitile": false }, - { "id": "toolbox", "fg": 758, "rotates": false, "multitile": false }, - { "id": "tool_anfo_charge", "fg": 853, "rotates": false, "multitile": false }, - { "id": "tool_anfo_charge_act", "fg": 854, "rotates": false, "multitile": false }, - { "id": "tool_black_powder_charge", "fg": 805, "rotates": false, "multitile": false }, - { "id": "tool_black_powder_charge_act", "fg": 806, "rotates": false, "multitile": false }, - { "id": "tool_rdx_charge", "fg": 853, "rotates": false, "multitile": false }, - { "id": "tool_rdx_charge_act", "fg": 854, "rotates": false, "multitile": false }, - { "id": "tool_rdx_sand_bomb", "fg": 617, "rotates": false, "multitile": false }, - { "id": "tool_rdx_sand_bomb_act", "fg": 618, "rotates": false, "multitile": false }, - { "id": "torch", "fg": 696, "rotates": false, "multitile": false }, - { "id": "torch_done", "fg": 395, "rotates": false, "multitile": false }, - { "id": "torch_lit", "fg": 697, "rotates": false, "multitile": false }, - { "id": "touristmap", "fg": 593, "rotates": false, "multitile": false }, - { "id": "towel", "fg": 1006, "rotates": true }, - { "id": "transponder", "fg": 950, "rotates": false, "multitile": false }, - { "id": "trex_gun", "fg": 527, "rotates": false, "multitile": false }, - { "id": "trimmer_off", "fg": 542, "rotates": false, "multitile": false }, - { "id": "trimmer_on", "fg": 542, "rotates": false, "multitile": false }, - { "id": "triple_sec", "fg": 933, "rotates": false, "multitile": false }, - { "id": "tripwire", "fg": 606, "rotates": false, "multitile": false }, - { "id": "tuned_mechanism", "fg": 918, "rotates": false, "multitile": false }, - { "id": "two_way_radio", "fg": 585, "rotates": false, "multitile": false }, - { "id": "ugl_buttstock", "fg": 918, "rotates": false, "multitile": false }, - { "id": "umbrella", "fg": 474, "rotates": false, "multitile": false }, - { "id": "unbio_blaster_gun", "fg": 557, "rotates": false, "multitile": false }, - { "id": "UPS_off", "fg": 650, "rotates": false, "multitile": false }, - { "id": "UPS_on", "fg": 651, "rotates": false, "multitile": false }, - { "id": "usb_drive", "fg": 386, "rotates": false, "multitile": false }, - { "id": "usp_45", "fg": 518, "rotates": false, "multitile": false }, - { "id": "usp_9mm", "fg": 518, "rotates": false, "multitile": false }, - { "id": "uzi", "fg": 516, "rotates": false, "multitile": false }, - { "id": "u_shotgun", "fg": 918, "rotates": false, "multitile": false }, - { "id": "v12_combustion", "fg": 873, "rotates": false, "multitile": false }, - { "id": "v29", "fg": 555, "rotates": false, "multitile": false }, - { "id": "v29_cheap", "fg": 555, "rotates": false, "multitile": false }, - { "id": "v2_combustion", "fg": 873, "rotates": false, "multitile": false }, - { "id": "v6_combustion", "fg": 873, "rotates": false, "multitile": false }, - { "id": "v6_diesel", "fg": 873, "rotates": false, "multitile": false }, - { "id": "V8", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "v8_combustion", "fg": 873, "rotates": false, "multitile": false }, - { "id": "v8_diesel", "fg": 873, "rotates": false, "multitile": false }, - { "id": "vacutainer", "fg": 665, "rotates": false, "multitile": false }, - { "id": "vac_sealer", "fg": 733, "rotates": false, "multitile": false }, - { "id": "veggy_pickled", "fg": 1286, "rotates": false, "multitile": false }, - { "id": "vehicle_controls", "fg": 881, "rotates": false, "multitile": false }, - { "id": "veh_tracker", "fg": 926, "rotates": false }, - { "id": "vinegar", "fg": 934, "rotates": false, "multitile": false }, - { "id": "vine_30", "fg": 598, "rotates": false, "multitile": false }, - { "id": "vodka", "fg": 931, "rotates": false, "multitile": false }, - { "id": "vortex_stone", "fg": 658, "rotates": false, "multitile": false }, - { "id": "v_table", "fg": 914, "rotates": false }, - { "id": "waffleiron", "fg": 378, "rotates": false, "multitile": false }, - { "id": "wakizashi", "fg": 675, "rotates": false, "multitile": false }, - { "id": "wakizashi_fake", "fg": 675, "rotates": false, "multitile": false }, - { "id": "walther_ppk", "fg": 518, "rotates": false, "multitile": false }, - { "id": "warhammer", "fg": 471, "rotates": false, "multitile": false }, - { "id": "wasp_sting", "fg": 443, "rotates": false, "multitile": false }, - { "id": "watercannon", "fg": 536, "rotates": false, "multitile": false }, - { "id": "waterproof_gunmod", "fg": 918, "rotates": false, "multitile": false }, - { "id": "waterskin2", "fg": 353, "rotates": false, "multitile": false }, - { "id": "waterskin3", "fg": 353, "rotates": false, "multitile": false }, - { "id": "waterskin", "fg": 353, "rotates": false, "multitile": false }, - { "id": "water", "fg": 931, "rotates": false, "multitile": false }, - { "id": "water_acid", "fg": 931, "rotates": false, "multitile": false }, - { "id": "water_acid_weak", "fg": 931, "rotates": false, "multitile": false }, - { "id": "water_clean", "fg": 931, "rotates": false, "multitile": false }, - { "id": "water_faucet", "fg": 784, "rotates": false }, - { "id": "water_mineral", "fg": 931, "rotates": false, "multitile": false }, - { "id": "water_purifier", "fg": 584, "rotates": false, "multitile": false }, - { "id": "wax", "fg": 1336, "rotates": false, "multitile": false }, - { "id": "wearable_light", "fg": 574, "rotates": false, "multitile": false }, - { "id": "wearable_light_on", "fg": 575, "rotates": false, "multitile": false }, - { "id": "wearable_rx12", "fg": 520, "rotates": false, "multitile": false }, - { "id": "weeks_old_newspaper", "fg": 899, "rotates": false, "multitile": false }, - { "id": "welder", "fg": 666, "rotates": false, "multitile": false }, - { "id": "welder_crude", "fg": 741, "rotates": false, "multitile": false }, - { "id": "weldrig", "fg": 878, "rotates": false, "multitile": false }, - { "id": "well_pump", "fg": 781, "rotates": false, "multitile": false }, - { "id": "wheel", "fg": 1465, "rotates": false, "multitile": false }, - { "id": "wheel_armor", "fg": 1514, "rotates": false, "multitile": false }, - { "id": "wheel_bicycle", "fg": 1467, "rotates": false, "multitile": false }, - { "id": "wheel_caster", "fg": 1467, "rotates": false, "multitile": false }, - { "id": "wheel_metal", "fg": 1465, "rotates": false, "multitile": false }, - { "id": "wheel_motorbike", "fg": 1464, "rotates": false, "multitile": false }, - { "id": "wheel_small", "fg": 1467, "rotates": false, "multitile": false }, - { "id": "wheel_wheelchair", "fg": 783, "rotates": false, "multitile": false }, - { "id": "wheel_wide", "fg": 1466, "rotates": false, "multitile": false }, - { "id": "wheel_wood", "fg": 1430, "rotates": false, "multitile": false }, - { "id": "wheel_wood_b", "fg": 1431, "rotates": false, "multitile": false }, - { "id": "whiskey", "fg": 932, "rotates": false, "multitile": false }, - { "id": "win70", "fg": 509, "rotates": false, "multitile": false }, - { "id": "wine_cabernet", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "wine_chardonnay", "fg": 934, "rotates": false, "multitile": false }, - { "id": "wine_noir", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "wine_riesling", "fg": 934, "rotates": false, "multitile": false }, - { "id": "wire", "fg": 430, "rotates": false, "multitile": false }, - { "id": "wire_barbed", "fg": 430, "rotates": false, "multitile": false }, - { "id": "withered", "fg": 361, "rotates": false, "multitile": false }, - { "id": "wooden_barrel", "fg": 949, "rotates": false }, - { "id": "wood_plate", "fg": 465, "rotates": false, "multitile": false }, - { "id": "wood_smoother", "fg": 437, "rotates": false, "multitile": false }, - { "id": "wrapper", "fg": 488, "rotates": true }, - { "id": "wrench", "fg": 706, "rotates": false, "multitile": false }, - { "id": "wristrocket", "fg": 597, "rotates": false, "multitile": false }, - { "id": "w_paint", "fg": 391, "rotates": false, "multitile": false }, - { "id": "xacto", "fg": 669, "rotates": false, "multitile": false }, - { "id": "xlframe", "fg": 923, "rotates": false }, - { "id": "yarn", "fg": 885, "rotates": false, "multitile": false }, - { "id": "y_carpet", "fg": 762, "rotates": false }, - { "id": "y_paint", "fg": 416, "rotates": false, "multitile": false }, - { "id": "zweifire_off", "fg": 684, "rotates": false, "multitile": false }, - { "id": "zweifire_on", "fg": 685, "rotates": false, "multitile": false }, - { "id": "zweihander", "fg": 682, "rotates": false, "multitile": false }, - { "id": "zweihander_fake", "fg": 682, "rotates": false, "multitile": false }, - { "id": "20x66_beanbag", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_bootleg_flechette", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_bootleg_shot", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_bootleg_slug", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_exp", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_flare", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_flechette", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_frag", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_inc", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_shot", "fg": 956, "rotates": false, "multitile": false }, - { "id": "20x66_slug", "fg": 956, "rotates": false, "multitile": false }, - { "id": "36navy", "fg": 521, "rotates": false, "multitile": false }, - { "id": "44army", "fg": 521, "rotates": false, "multitile": false }, - { "id": "50bmg", "fg": 954, "rotates": false, "multitile": false }, - { "id": "50ss", "fg": 954, "rotates": false, "multitile": false }, - { "id": "50_casing", "fg": 958, "rotates": false, "multitile": false }, - { "id": "50_incendiary", "fg": 954, "rotates": false, "multitile": false }, - { "id": "arrowhead", "fg": 957, "rotates": false, "multitile": false }, - { "id": "arrowhead_plastic", "fg": 957, "rotates": false, "multitile": false }, - { "id": "arrow_cf", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_exploding", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_field_point", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_field_point_fletched", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_fire_hardened", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_fire_hardened_fletched", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_flamming", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_heavy_field_point", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_heavy_field_point_fletched", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_heavy_fire_hardened", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_heavy_fire_hardened_fletched", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_metal", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_metal_sharpened", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_metal_sharpened_fletched", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_plastic", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_small_game", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_small_game_fletched", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_wood", "fg": 903, "rotates": false, "multitile": false }, - { "id": "arrow_wood_heavy", "fg": 903, "rotates": false, "multitile": false }, - { "id": "bolt_explosive", "fg": 903, "rotates": false, "multitile": false }, - { "id": "bolt_metal", "fg": 903, "rotates": false, "multitile": false }, - { "id": "bolt_steel", "fg": 903, "rotates": false, "multitile": false }, - { "id": "bolt_wood", "fg": 903, "rotates": false, "multitile": false }, - { "id": "signal_flare", "fg": 953, "rotates": false, "multitile": false }, - { "id": "101_carpentry", "fg": 964, "rotates": false, "multitile": false }, - { "id": "advanced_electronics", "fg": 962, "rotates": false, "multitile": false }, - { "id": "advanced_electrronics", "fg": 968, "rotates": false, "multitile": false }, - { "id": "adv_chemistry", "fg": 964, "rotates": false, "multitile": false }, - { "id": "atomic_survival", "fg": 961, "rotates": false, "multitile": false }, - { "id": "book_archery", "fg": 963, "rotates": false, "multitile": false }, - { "id": "book_icef", "fg": 968, "rotates": false, "multitile": false }, - { "id": "brewing_cookbook", "fg": 967, "rotates": false, "multitile": false }, - { "id": "carpentry_book", "fg": 964, "rotates": false, "multitile": false }, - { "id": "child_book", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "computer_science", "fg": 968, "rotates": false, "multitile": false }, - { "id": "cookbook", "fg": 963, "rotates": false, "multitile": false }, - { "id": "cookbook_human", "fg": 963, "rotates": false, "multitile": false }, - { "id": "cookbook_italian", "fg": 963, "rotates": false, "multitile": false }, - { "id": "cookbook_sushi", "fg": 971, "rotates": false }, - { "id": "decoy_anarch", "fg": 966, "rotates": false }, - { "id": "decoy_elfa", "fg": 966, "rotates": false }, - { "id": "emergency_book", "fg": 962, "rotates": false, "multitile": false }, - { "id": "essay_book", "fg": 964, "rotates": false, "multitile": false }, - { "id": "fairy_tales", "fg": 969, "rotates": false, "multitile": false }, - { "id": "family_cookbook", "fg": 961, "rotates": false, "multitile": false }, - { "id": "fun_survival", "fg": 963, "rotates": false, "multitile": false }, - { "id": "fun_traps", "fg": 963, "rotates": false, "multitile": false }, - { "id": "glassblowing_book", "fg": 970, "rotates": false, "multitile": false }, - { "id": "guidebook", "fg": 966, "rotates": false, "multitile": false }, - { "id": "holybook_bible1", "fg": 971, "rotates": false }, - { "id": "holybook_bible2", "fg": 966, "rotates": false }, - { "id": "holybook_bible3", "fg": 966, "rotates": false }, - { "id": "holybook_granth", "fg": 971, "rotates": false }, - { "id": "holybook_hadith", "fg": 966, "rotates": false }, - { "id": "holybook_kallisti", "fg": 969, "rotates": false }, - { "id": "holybook_kojiki", "fg": 966, "rotates": false }, - { "id": "holybook_mormon", "fg": 968, "rotates": false }, - { "id": "holybook_pastafarian", "fg": 969, "rotates": false }, - { "id": "holybook_quran", "fg": 966, "rotates": false }, - { "id": "holybook_scientology", "fg": 971, "rotates": false }, - { "id": "holybook_slack", "fg": 969, "rotates": false }, - { "id": "holybook_sutras", "fg": 964, "rotates": false }, - { "id": "holybook_talmud", "fg": 969, "rotates": false }, - { "id": "holybook_tanakh", "fg": 966, "rotates": false }, - { "id": "holybook_tripitaka", "fg": 969, "rotates": false }, - { "id": "holybook_upanishads", "fg": 962, "rotates": false }, - { "id": "holybook_vedas", "fg": 964, "rotates": false }, - { "id": "howto_computers", "fg": 963, "rotates": false, "multitile": false }, - { "id": "howto_computer", "fg": 961, "rotates": false, "multitile": false }, - { "id": "howto_traps", "fg": 963, "rotates": false, "multitile": false }, - { "id": "mag_archery", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_barter", "fg": 962, "rotates": false, "multitile": false }, - { "id": "mag_bashing", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_beauty", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_carpentry", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_cars", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_comic", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_computer", "fg": 963, "rotates": false, "multitile": false }, - { "id": "mag_cooking", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_cutting", "fg": 965, "rotates": false, "multitile": false }, - { "id": "mag_dodge", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_dude", "fg": 968, "rotates": false, "multitile": false }, - { "id": "mag_electronics", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_fabrication", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_fieldrepair", "fg": 961, "rotates": false, "multitile": false }, - { "id": "mag_firstaid", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_gaming", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_glam", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_guns", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_launcher", "fg": 964, "rotates": false, "multitile": false }, - { "id": "mag_mechanics", "fg": 964, "rotates": false, "multitile": false }, - { "id": "mag_melee", "fg": 965, "rotates": false, "multitile": false }, - { "id": "mag_news", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_pistol", "fg": 966, "rotates": false, "multitile": false }, - { "id": "mag_porn", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_rifle", "fg": 963, "rotates": false, "multitile": false }, - { "id": "mag_shotgun", "fg": 963, "rotates": false, "multitile": false }, - { "id": "mag_smg", "fg": 966, "rotates": false, "multitile": false }, - { "id": "mag_stabbing", "fg": 965, "rotates": false, "multitile": false }, - { "id": "mag_survival", "fg": 963, "rotates": false, "multitile": false }, - { "id": "mag_swimming", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_tailor", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_throwing", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_traps", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_tv", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "mag_unarmed", "fg": 964, "rotates": false, "multitile": false }, - { "id": "manual_aikido", "fg": 969, "rotates": false }, - { "id": "manual_archery", "fg": 961, "rotates": false, "multitile": false }, - { "id": "manual_bashing", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_boxing", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_brawl", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_business", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_capoeira", "fg": 969, "rotates": false }, - { "id": "manual_carpentry", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_centipede", "fg": 969, "rotates": false }, - { "id": "manual_computers", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_crane", "fg": 969, "rotates": false }, - { "id": "manual_cutting", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_dodge", "fg": 962, "rotates": false, "multitile": false }, - { "id": "manual_dragon", "fg": 969, "rotates": false }, - { "id": "manual_driving", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_electronics", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_eskrima", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_fabrication", "fg": 964, "rotates": false, "multitile": false }, - { "id": "manual_fencing", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_first_aid", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_guns", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_gun", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_judo", "fg": 969, "rotates": false }, - { "id": "manual_karate", "fg": 969, "rotates": false }, - { "id": "manual_knives", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_krav_maga", "fg": 969, "rotates": false }, - { "id": "manual_launcher", "fg": 961, "rotates": false, "multitile": false }, - { "id": "manual_leopard", "fg": 969, "rotates": false }, - { "id": "manual_lizard", "fg": 969, "rotates": false }, - { "id": "manual_mechanics", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_melee", "fg": 965, "rotates": false, "multitile": false }, - { "id": "manual_muay_thai", "fg": 969, "rotates": false }, - { "id": "manual_ninjutsu", "fg": 969, "rotates": false }, - { "id": "manual_niten", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_pistol", "fg": 962, "rotates": false, "multitile": false }, - { "id": "manual_rifle", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_scorpion", "fg": 969, "rotates": false }, - { "id": "manual_shotgun", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_silat", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_smg", "fg": 967, "rotates": false, "multitile": false }, - { "id": "manual_snake", "fg": 969, "rotates": false }, - { "id": "manual_speech", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_stabbing", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_survival", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_swimming", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_taekwondo", "fg": 969, "rotates": false }, - { "id": "manual_tailor", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_tai_chi", "fg": 969, "rotates": false }, - { "id": "manual_throw", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_tiger", "fg": 969, "rotates": false }, - { "id": "manual_toad", "fg": 969, "rotates": false }, - { "id": "manual_traps", "fg": 963, "rotates": false, "multitile": false }, - { "id": "manual_venom_snake", "fg": 969, "rotates": false }, - { "id": "manual_zui_quan", "fg": 969, "rotates": false }, - { "id": "many_years_old_newspaper", "fg": 899, "rotates": false, "multitile": false }, - { "id": "modern_tanner", "fg": 961, "rotates": false, "multitile": false }, - { "id": "months_old_newspaper", "fg": 899, "rotates": false, "multitile": false }, - { "id": "newest_newspaper", "fg": 899, "rotates": false, "multitile": false }, - { "id": "news_regional", "fg": 965, "rotates": false, "multitile": false }, - { "id": "note", "fg": 899, "rotates": false, "multitile": false }, - { "id": "novel_adventure", "fg": 961, "rotates": false, "multitile": false }, - { "id": "novel_buddy", "fg": 964, "rotates": false, "multitile": false }, - { "id": "novel_coa", "fg": 963, "rotates": false, "multitile": false }, - { "id": "novel_crime", "fg": 962, "rotates": false, "multitile": false }, - { "id": "novel_drama", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_erotic", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "novel_experimental", "fg": 962, "rotates": false, "multitile": false }, - { "id": "novel_fantasy", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_horror", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_mystery", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_pulp", "fg": 966, "rotates": false, "multitile": false }, - { "id": "novel_road", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "novel_romance", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_samurai", "fg": 963, "rotates": false, "multitile": false }, - { "id": "novel_satire", "fg": 966, "rotates": false, "multitile": false }, - { "id": "novel_scifi", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_sports", "fg": 969, "rotates": false, "multitile": false }, - { "id": "novel_spy", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_swash", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_thriller", "fg": 969, "rotates": false, "multitile": false }, - { "id": "novel_tragedy", "fg": 967, "rotates": false, "multitile": false }, - { "id": "novel_war", "fg": 961, "rotates": false, "multitile": false }, - { "id": "novel_western", "fg": 961, "rotates": false, "multitile": false }, - { "id": "one_year_old_newspaper", "fg": 899, "rotates": false, "multitile": false }, - { "id": "philosophy_book", "fg": 962, "rotates": false, "multitile": false }, - { "id": "phonebook", "fg": 964, "rotates": false }, - { "id": "photo_album", "fg": 961, "rotates": false, "multitile": false }, - { "id": "plays_book", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "pocket_firearms", "fg": 961, "rotates": false, "multitile": false }, - { "id": "pocket_firstaid", "fg": 961, "rotates": false, "multitile": false }, - { "id": "pocket_survival", "fg": 963, "rotates": false, "multitile": false }, - { "id": "poetry_book", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "priest_diary", "fg": 968, "rotates": false, "multitile": false }, - { "id": "radio_book", "fg": 964, "rotates": false, "multitile": false }, - { "id": "recipe_alpha", "fg": 971, "rotates": false, "multitile": false }, - { "id": "recipe_animal", "fg": 971, "rotates": false }, - { "id": "recipe_arrows", "fg": 961, "rotates": false, "multitile": false }, - { "id": "recipe_atomic_battery", "fg": 899, "rotates": false, "multitile": false }, - { "id": "recipe_augs", "fg": 966, "rotates": false }, - { "id": "recipe_bows", "fg": 961, "rotates": false, "multitile": false }, - { "id": "recipe_bullets", "fg": 961, "rotates": false, "multitile": false }, - { "id": "recipe_caseless", "fg": 966, "rotates": false, "multitile": false }, - { "id": "recipe_chimera", "fg": 971, "rotates": false, "multitile": false }, - { "id": "recipe_creepy", "fg": 971, "rotates": false }, - { "id": "recipe_elfa", "fg": 966, "rotates": false }, - { "id": "recipe_labchem", "fg": 971, "rotates": false }, - { "id": "recipe_lab_cvd", "fg": 970, "rotates": false, "multitile": false }, - { "id": "recipe_lab_elec", "fg": 964, "rotates": false }, - { "id": "recipe_maiar", "fg": 971, "rotates": false }, - { "id": "recipe_medicalmut", "fg": 962, "rotates": false, "multitile": false }, - { "id": "recipe_melee", "fg": 970, "rotates": false, "multitile": false }, - { "id": "recipe_mil_augs", "fg": 966, "rotates": false }, - { "id": "recipe_mininuke_launch", "fg": 964, "rotates": false, "multitile": false }, - { "id": "recipe_raptor", "fg": 971, "rotates": false }, - { "id": "recipe_serum", "fg": 971, "rotates": false }, - { "id": "record_accounting", "fg": 968, "rotates": false, "multitile": false }, - { "id": "record_patient", "fg": 968, "rotates": false, "multitile": false }, - { "id": "SICP", "fg": 968, "rotates": false, "multitile": false }, - { "id": "story_book", "fg": 962, "rotates": false, "multitile": false }, - { "id": "survival_book", "fg": 963, "rotates": false, "multitile": false }, - { "id": "survnote", "fg": 899, "rotates": false, "multitile": false }, - { "id": "tailor_portfolio", "fg": 961, "rotates": false, "multitile": false }, - { "id": "tall_tales", "fg": 963, "rotates": false, "multitile": false }, - { "id": "textbook_anarch", "fg": 966, "rotates": false }, - { "id": "textbook_armeast", "fg": 967, "rotates": false, "multitile": false }, - { "id": "textbook_armwest", "fg": 968, "rotates": false, "multitile": false }, - { "id": "textbook_business", "fg": 968, "rotates": false, "multitile": false }, - { "id": "textbook_carpentry", "fg": 968, "rotates": false, "multitile": false }, - { "id": "textbook_chemistry", "fg": 968, "rotates": false, "multitile": false }, - { "id": "textbook_computers", "fg": 968, "rotates": false, "multitile": false }, - { "id": "textbook_computer", "fg": 962, "rotates": false, "multitile": false }, - { "id": "textbook_electronics", "fg": 962, "rotates": false, "multitile": false }, - { "id": "textbook_fabrication", "fg": 963, "rotates": false, "multitile": false }, - { "id": "textbook_fireman", "fg": 964, "rotates": false, "multitile": false }, - { "id": "textbook_firstaid", "fg": 962, "rotates": false, "multitile": false }, - { "id": "textbook_gaswarfare", "fg": 964, "rotates": false, "multitile": false }, - { "id": "textbook_mechanics", "fg": 968, "rotates": false, "multitile": false }, - { "id": "textbook_robots", "fg": 968, "rotates": false, "multitile": false }, - { "id": "textbook_speech", "fg": 964, "rotates": false, "multitile": false }, - { "id": "textbook_survival", "fg": 963, "rotates": false, "multitile": false }, - { "id": "textbook_tailor", "fg": 963, "rotates": false, "multitile": false }, - { "id": "textbook_traps", "fg": 963, "rotates": false, "multitile": false }, - { "id": "textbook_weapeast", "fg": 970, "rotates": false, "multitile": false }, - { "id": "textbook_weapwest", "fg": 964, "rotates": false, "multitile": false }, - { "id": "trappers_companion", "fg": 961, "rotates": false, "multitile": false }, - { "id": "visions_solitude", "fg": 968, "rotates": false, "multitile": false }, - { "id": "welding_book", "fg": 962, "rotates": false, "multitile": false }, - { "id": "years_old_newspaper", "fg": 899, "rotates": false, "multitile": false }, - { "id": "ZSG", "fg": 967, "rotates": false, "multitile": false }, - { "id": "10gal_hat", "fg": 1229, "rotates": false, "multitile": false }, - { "id": "2byarm_guard", "fg": 1186, "rotates": false, "multitile": false }, - { "id": "2byshin_guard", "fg": 1186, "rotates": false, "multitile": false }, - { "id": "aep_suit", "fg": 1218, "rotates": false, "multitile": false }, - { "id": "american_flag", "fg": 1167, "rotates": false, "multitile": false }, - { "id": "anbc_suit", "fg": 1218, "rotates": false, "multitile": false }, - { "id": "apron_leather", "fg": 1208, "rotates": false, "multitile": false }, - { "id": "armguard_chitin", "fg": 1097, "rotates": false, "multitile": false }, - { "id": "armguard_hard", "fg": 1095, "rotates": false, "multitile": false }, - { "id": "armguard_metal", "fg": 1094, "rotates": false, "multitile": false }, - { "id": "armguard_paper", "fg": 1095, "rotates": false, "multitile": false }, - { "id": "armguard_soft", "fg": 1094, "rotates": false, "multitile": false }, - { "id": "armor_blarmor", "fg": 1217, "rotates": false, "multitile": false }, - { "id": "armor_bone", "fg": 1216, "rotates": false, "multitile": false }, - { "id": "armor_chitin", "fg": 1050, "rotates": false, "multitile": false }, - { "id": "armor_farmor", "fg": 1038, "rotates": false, "multitile": false }, - { "id": "armor_larmor", "fg": 1217, "rotates": false, "multitile": false }, - { "id": "armor_lightplate", "fg": 1204, "rotates": false, "multitile": false }, - { "id": "armor_nomad", "fg": 1084, "rotates": false, "multitile": false }, - { "id": "armor_plarmor", "fg": 1195, "rotates": false, "multitile": false }, - { "id": "armor_plate", "fg": 1054, "rotates": false, "multitile": false }, - { "id": "armor_samurai", "fg": 1206, "rotates": false, "multitile": false }, - { "id": "armor_scrapsuit", "fg": 1195, "rotates": false, "multitile": false }, - { "id": "army_top", "fg": 1060, "rotates": false, "multitile": false }, - { "id": "arm_splint", "fg": 1186, "rotates": false, "multitile": false }, - { "id": "arm_warmers", "fg": 1222, "rotates": false, "multitile": false }, - { "id": "backpack", "fg": 1149, "rotates": false, "multitile": false }, - { "id": "backpack_leather", "fg": 1150, "rotates": false, "multitile": false }, - { "id": "back_holster", "fg": 1156, "rotates": false, "multitile": false }, - { "id": "badge_cybercop", "fg": 1166, "rotates": false, "multitile": false }, - { "id": "badge_deputy", "fg": 1166, "rotates": false, "multitile": false }, - { "id": "badge_detective", "fg": 1166, "rotates": false, "multitile": false }, - { "id": "badge_marshal", "fg": 1166, "rotates": false, "multitile": false }, - { "id": "badge_swat", "fg": 1166, "rotates": false, "multitile": false }, - { "id": "balclava", "fg": 1134, "rotates": false, "multitile": false }, - { "id": "bandana", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "barrette", "fg": 979, "rotates": false, "multitile": false }, - { "id": "bastsandals", "fg": 1018, "rotates": false, "multitile": false }, - { "id": "beekeeping_gloves", "fg": 1227, "rotates": false, "multitile": false }, - { "id": "beekeeping_hood", "fg": 1193, "rotates": false, "multitile": false }, - { "id": "beekeeping_suit", "fg": 1093, "rotates": false, "multitile": false }, - { "id": "beret", "fg": 1137, "rotates": false, "multitile": false }, - { "id": "beret_wool", "fg": 1137, "rotates": false, "multitile": false }, - { "id": "bikini_top", "fg": 1062, "rotates": false, "multitile": false }, - { "id": "bikini_top_fur", "fg": 1064, "rotates": false, "multitile": false }, - { "id": "bikini_top_leather", "fg": 1063, "rotates": false, "multitile": false }, - { "id": "bindle", "fg": 989, "rotates": false, "multitile": false }, - { "id": "blanket", "fg": 1168, "rotates": false, "multitile": false }, - { "id": "blazer", "fg": 1076, "rotates": false, "multitile": false }, - { "id": "bondage_mask", "fg": 1042, "rotates": false, "multitile": false }, - { "id": "bondage_suit", "fg": 1041, "rotates": false, "multitile": false }, - { "id": "bookplate", "fg": 1196, "rotates": false, "multitile": false }, - { "id": "boots", "fg": 1012, "rotates": false, "multitile": false }, - { "id": "boots_bone", "fg": 1215, "rotates": false, "multitile": false }, - { "id": "boots_bunker", "fg": 1214, "rotates": false, "multitile": false }, - { "id": "boots_chitin", "fg": 1022, "rotates": false, "multitile": false }, - { "id": "boots_combat", "fg": 1015, "rotates": false, "multitile": false }, - { "id": "boots_fsurvivor", "fg": 1199, "rotates": false, "multitile": false }, - { "id": "boots_fur", "fg": 1013, "rotates": false, "multitile": false }, - { "id": "boots_h20survivor", "fg": 1009, "rotates": false, "multitile": false }, - { "id": "boots_hiking", "fg": 1016, "rotates": false, "multitile": false }, - { "id": "boots_hsurvivor", "fg": 1199, "rotates": false, "multitile": false }, - { "id": "boots_larmor", "fg": 1012, "rotates": false, "multitile": false }, - { "id": "boots_lsurvivor", "fg": 1015, "rotates": false, "multitile": false }, - { "id": "boots_plate", "fg": 1199, "rotates": false, "multitile": false }, - { "id": "boots_rubber", "fg": 1214, "rotates": false, "multitile": false }, - { "id": "boots_steel", "fg": 1014, "rotates": false, "multitile": false }, - { "id": "boots_survivor", "fg": 1014, "rotates": false, "multitile": false }, - { "id": "boots_western", "fg": 1245, "rotates": false, "multitile": false }, - { "id": "boots_winter", "fg": 1017, "rotates": false, "multitile": false }, - { "id": "boots_wsurvivor", "fg": 1017, "rotates": false, "multitile": false }, - { "id": "boots_xlsurvivor", "fg": 1014, "rotates": false, "multitile": false }, - { "id": "bowhat", "fg": 1148, "rotates": false, "multitile": false }, - { "id": "boxer_shorts", "fg": 1023, "rotates": false, "multitile": false }, - { "id": "boxing_gloves", "fg": 1101, "rotates": false, "multitile": false }, - { "id": "boy_shorts", "fg": 1023, "rotates": false, "multitile": false }, - { "id": "bra", "fg": 1062, "rotates": false, "multitile": false }, - { "id": "briefcase", "fg": 939, "rotates": false, "multitile": false }, - { "id": "briefs", "fg": 1223, "rotates": false, "multitile": false }, - { "id": "brooch", "fg": 374, "rotates": false, "multitile": false }, - { "id": "bunker_coat", "fg": 1079, "rotates": false, "multitile": false }, - { "id": "bunker_pants", "fg": 1187, "rotates": false, "multitile": false }, - { "id": "b_shorts", "fg": 1243, "rotates": false, "multitile": false }, - { "id": "camera", "fg": 795, "rotates": false, "multitile": false }, - { "id": "camera_pro", "fg": 796, "rotates": false, "multitile": false }, - { "id": "camisole", "fg": 1061, "rotates": false, "multitile": false }, - { "id": "ceramic_shard", "fg": 793, "rotates": false, "multitile": false }, - { "id": "chainmail_arms", "fg": 1094, "rotates": false, "multitile": false }, - { "id": "chainmail_hood", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "chainmail_legs", "fg": 1094, "rotates": false, "multitile": false }, - { "id": "chainmail_suit", "fg": 1054, "rotates": false, "multitile": false }, - { "id": "chainmail_vest", "fg": 1089, "rotates": false, "multitile": false }, - { "id": "chaps_leather", "fg": 1029, "rotates": false, "multitile": false }, - { "id": "chestrig", "fg": 1092, "rotates": false, "multitile": false }, - { "id": "cleansuit", "fg": 1053, "rotates": false, "multitile": false }, - { "id": "cleats", "fg": 1009, "rotates": false, "multitile": false }, - { "id": "cloak", "fg": 1175, "rotates": false, "multitile": false }, - { "id": "cloak_fur", "fg": 1176, "rotates": false, "multitile": false }, - { "id": "cloak_leather", "fg": 1177, "rotates": false, "multitile": false }, - { "id": "clogs", "fg": 1018, "rotates": false, "multitile": false }, - { "id": "clownshoes", "fg": 1040, "rotates": false, "multitile": false }, - { "id": "coat_fur", "fg": 1087, "rotates": false, "multitile": false }, - { "id": "coat_fur_sf", "fg": 1087, "rotates": false, "multitile": false }, - { "id": "coat_lab", "fg": 1093, "rotates": false, "multitile": false }, - { "id": "coat_rain", "fg": 1079, "rotates": false, "multitile": false }, - { "id": "coat_winter", "fg": 1086, "rotates": false, "multitile": false }, - { "id": "collarpin", "fg": 394, "rotates": false, "multitile": false }, - { "id": "copper_bracelet", "fg": 985, "rotates": false, "multitile": false }, - { "id": "copper_ear", "fg": 982, "rotates": false, "multitile": false }, - { "id": "corset", "fg": 1043, "rotates": false, "multitile": false }, - { "id": "cowboy_hat", "fg": 1228, "rotates": false, "multitile": false }, - { "id": "cowl_wool", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "cured_hide", "fg": 813, "rotates": false, "multitile": false }, - { "id": "cured_pelt", "fg": 812, "rotates": false, "multitile": false }, - { "id": "dance_shoes", "fg": 1020, "rotates": false, "multitile": false }, - { "id": "depowered_armor", "fg": 1179, "rotates": false, "multitile": false }, - { "id": "depowered_helmet", "fg": 1180, "rotates": false, "multitile": false }, - { "id": "diamond_dental_grill", "fg": 396, "rotates": false, "multitile": false }, - { "id": "diamond_ring", "fg": 1161, "rotates": false, "multitile": false }, - { "id": "dinosuit", "fg": 1249, "rotates": false, "multitile": false }, - { "id": "dive_bag", "fg": 1155, "rotates": false, "multitile": false }, - { "id": "diving_watch", "fg": 1191, "rotates": false, "multitile": false }, - { "id": "down_blanket", "fg": 1168, "rotates": false, "multitile": false }, - { "id": "down_pillow", "fg": 792, "rotates": false, "multitile": false }, - { "id": "dragonskin", "fg": 1238, "rotates": false, "multitile": false }, - { "id": "dress", "fg": 1048, "rotates": false, "multitile": false }, - { "id": "dress_shirt", "fg": 1058, "rotates": false, "multitile": false }, - { "id": "dress_shoes", "fg": 1020, "rotates": false, "multitile": false }, - { "id": "dress_wedding", "fg": 1049, "rotates": false, "multitile": false }, - { "id": "duffelbag", "fg": 1152, "rotates": false, "multitile": false }, - { "id": "duster", "fg": 1082, "rotates": false, "multitile": false }, - { "id": "duster_fur", "fg": 1085, "rotates": false, "multitile": false }, - { "id": "duster_leather", "fg": 1084, "rotates": false, "multitile": false }, - { "id": "duster_survivor", "fg": 1084, "rotates": false, "multitile": false }, - { "id": "ear_plugs", "fg": 1239, "rotates": false, "multitile": false }, - { "id": "elbow_pads", "fg": 1096, "rotates": false, "multitile": false }, - { "id": "emer_blanket", "fg": 1170, "rotates": false, "multitile": false }, - { "id": "emer_blanket_on", "fg": 1170, "rotates": false, "multitile": false }, - { "id": "entry_suit", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "exploding_arrow_warhead", "fg": 957, "rotates": false, "multitile": false }, - { "id": "e_handcuffs", "fg": 797, "rotates": false, "multitile": false }, - { "id": "fancy_sunglasses", "fg": 1212, "rotates": false, "multitile": false }, - { "id": "fanny", "fg": 1155, "rotates": false, "multitile": false }, - { "id": "fc_hairpin", "fg": 978, "rotates": false, "multitile": false }, - { "id": "fedora", "fg": 1228, "rotates": false, "multitile": false }, - { "id": "fencing_jacket", "fg": 1093, "rotates": false, "multitile": false }, - { "id": "fencing_mask", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "fencing_pants", "fg": 988, "rotates": false, "multitile": false }, - { "id": "firehelmet", "fg": 1135, "rotates": false, "multitile": false }, - { "id": "fireman_belt", "fg": 1236, "rotates": false, "multitile": false }, - { "id": "fire_gauntlets", "fg": 1110, "rotates": false, "multitile": false }, - { "id": "fishing_waders", "fg": 1080, "rotates": false, "multitile": false }, - { "id": "flag_shirt", "fg": 1056, "rotates": false, "multitile": false }, - { "id": "flip_flops", "fg": 1019, "rotates": false, "multitile": false }, - { "id": "flotation_vest", "fg": 1083, "rotates": false, "multitile": false }, - { "id": "folding_poncho", "fg": 972, "rotates": false, "multitile": false }, - { "id": "folding_poncho_on", "fg": 1079, "rotates": false, "multitile": false }, - { "id": "football_armor", "fg": 1010, "rotates": false, "multitile": false }, - { "id": "footrags", "fg": 1019, "rotates": false, "multitile": false }, - { "id": "footrags_fur", "fg": 1018, "rotates": false, "multitile": false }, - { "id": "footrags_leather", "fg": 1018, "rotates": false, "multitile": false }, - { "id": "fsurvivor_suit", "fg": 1201, "rotates": false, "multitile": false }, - { "id": "fur", "fg": 814, "rotates": false, "multitile": false }, - { "id": "fur_blanket", "fg": 1169, "rotates": false, "multitile": false }, - { "id": "fur_cat_ears", "fg": 1064, "rotates": false, "multitile": false }, - { "id": "fur_collar", "fg": 1234, "rotates": false, "multitile": false }, - { "id": "fur_rollmat", "fg": 1172, "rotates": false, "multitile": false }, - { "id": "gauntlets_bone", "fg": 1227, "rotates": false, "multitile": false }, - { "id": "gauntlets_chitin", "fg": 1100, "rotates": false, "multitile": false }, - { "id": "gauntlets_larmor", "fg": 1105, "rotates": false, "multitile": false }, - { "id": "geta", "fg": 1008, "rotates": false, "multitile": false }, - { "id": "glasses_bal", "fg": 1125, "rotates": false, "multitile": false }, - { "id": "glasses_bifocal", "fg": 1119, "rotates": false, "multitile": false }, - { "id": "glasses_eye", "fg": 1117, "rotates": false, "multitile": false }, - { "id": "glasses_monocle", "fg": 1126, "rotates": false, "multitile": false }, - { "id": "glasses_reading", "fg": 1118, "rotates": false, "multitile": false }, - { "id": "glasses_safety", "fg": 1120, "rotates": false, "multitile": false }, - { "id": "gloves_bag", "fg": 1100, "rotates": false, "multitile": false }, - { "id": "gloves_fingerless", "fg": 1107, "rotates": false, "multitile": false }, - { "id": "gloves_fingerless_mod", "fg": 1107, "rotates": false, "multitile": false }, - { "id": "gloves_fsurvivor", "fg": 1046, "rotates": false, "multitile": false }, - { "id": "gloves_fur", "fg": 1102, "rotates": false, "multitile": false }, - { "id": "gloves_h20survivor", "fg": 1046, "rotates": false, "multitile": false }, - { "id": "gloves_hsurvivor", "fg": 1046, "rotates": false, "multitile": false }, - { "id": "gloves_leather", "fg": 1105, "rotates": false, "multitile": false }, - { "id": "gloves_light", "fg": 1100, "rotates": false, "multitile": false }, - { "id": "gloves_liner", "fg": 1099, "rotates": false, "multitile": false }, - { "id": "gloves_lsurvivor", "fg": 1098, "rotates": false, "multitile": false }, - { "id": "gloves_medical", "fg": 1109, "rotates": false, "multitile": false }, - { "id": "gloves_plate", "fg": 1046, "rotates": false, "multitile": false }, - { "id": "gloves_rubber", "fg": 1108, "rotates": false, "multitile": false }, - { "id": "gloves_survivor", "fg": 1110, "rotates": false, "multitile": false }, - { "id": "gloves_tactical", "fg": 1106, "rotates": false, "multitile": false }, - { "id": "gloves_winter", "fg": 1104, "rotates": false, "multitile": false }, - { "id": "gloves_wool", "fg": 1103, "rotates": false, "multitile": false }, - { "id": "gloves_wraps", "fg": 1099, "rotates": false, "multitile": false }, - { "id": "gloves_wraps_fur", "fg": 1107, "rotates": false, "multitile": false }, - { "id": "gloves_wraps_leather", "fg": 1107, "rotates": false, "multitile": false }, - { "id": "gloves_wsurvivor", "fg": 1104, "rotates": false, "multitile": false }, - { "id": "gloves_xlsurvivor", "fg": 1110, "rotates": false, "multitile": false }, - { "id": "glove_jackson", "fg": 787, "rotates": false, "multitile": false }, - { "id": "gobag", "fg": 1151, "rotates": false, "multitile": false }, - { "id": "goggles_ir", "fg": 1002, "rotates": false, "multitile": false }, - { "id": "goggles_ir_on", "fg": 1002, "rotates": false, "multitile": false }, - { "id": "goggles_nv", "fg": 1124, "rotates": false, "multitile": false }, - { "id": "goggles_nv_on", "fg": 1124, "rotates": false, "multitile": false }, - { "id": "goggles_ski", "fg": 1122, "rotates": false, "multitile": false }, - { "id": "goggles_swim", "fg": 1121, "rotates": false, "multitile": false }, - { "id": "goggles_welding", "fg": 1123, "rotates": false, "multitile": false }, - { "id": "gold_bracelet", "fg": 974, "rotates": false, "multitile": false }, - { "id": "gold_dental_grill", "fg": 396, "rotates": false, "multitile": false }, - { "id": "gold_ear", "fg": 980, "rotates": false, "multitile": false }, - { "id": "gold_watch", "fg": 986, "rotates": false, "multitile": false }, - { "id": "greatcoat", "fg": 1005, "rotates": false }, - { "id": "h20survivor_suit", "fg": 1201, "rotates": false, "multitile": false }, - { "id": "hairpin", "fg": 977, "rotates": false, "multitile": false }, - { "id": "hakama_gi", "fg": 1027, "rotates": false, "multitile": false }, - { "id": "halter_top", "fg": 1047, "rotates": false, "multitile": false }, - { "id": "hand_crossbow", "fg": 895, "rotates": false, "multitile": false }, - { "id": "hat_ball", "fg": 1128, "rotates": false, "multitile": false }, - { "id": "hat_boonie", "fg": 1129, "rotates": false, "multitile": false }, - { "id": "hat_chef", "fg": 1192, "rotates": false, "multitile": false }, - { "id": "hat_cotton", "fg": 1130, "rotates": false, "multitile": false }, - { "id": "hat_fur", "fg": 1133, "rotates": false, "multitile": false }, - { "id": "hat_hard", "fg": 1135, "rotates": false, "multitile": false }, - { "id": "hat_hunting", "fg": 1132, "rotates": false, "multitile": false }, - { "id": "hat_knit", "fg": 1131, "rotates": false, "multitile": false }, - { "id": "hat_newsboy", "fg": 1130, "rotates": false, "multitile": false }, - { "id": "hat_noise_cancelling", "fg": 1240, "rotates": false, "multitile": false }, - { "id": "hazmat_suit", "fg": 1053, "rotates": false, "multitile": false }, - { "id": "headgear", "fg": 1011, "rotates": false, "multitile": false }, - { "id": "heels", "fg": 1021, "rotates": false, "multitile": false }, - { "id": "helmet_army", "fg": 1141, "rotates": false, "multitile": false }, - { "id": "helmet_ball", "fg": 1140, "rotates": false, "multitile": false }, - { "id": "helmet_barbute", "fg": 1205, "rotates": false, "multitile": false }, - { "id": "helmet_bike", "fg": 1138, "rotates": false, "multitile": false }, - { "id": "helmet_bone", "fg": 1219, "rotates": false, "multitile": false }, - { "id": "helmet_football", "fg": 1011, "rotates": false, "multitile": false }, - { "id": "helmet_hsurvivor", "fg": 1203, "rotates": false, "multitile": false }, - { "id": "helmet_kabuto", "fg": 1207, "rotates": false, "multitile": false }, - { "id": "helmet_larmor", "fg": 1233, "rotates": false, "multitile": false }, - { "id": "helmet_survivor", "fg": 1232, "rotates": false, "multitile": false }, - { "id": "helmet_xlsurvivor", "fg": 1232, "rotates": false, "multitile": false }, - { "id": "hoodie", "fg": 1070, "rotates": false, "multitile": false }, - { "id": "hood_rain", "fg": 1226, "rotates": false, "multitile": false }, - { "id": "hood_wsurvivor", "fg": 987, "rotates": false, "multitile": false }, - { "id": "hot_pants", "fg": 1065, "rotates": false, "multitile": false }, - { "id": "hot_pants_fur", "fg": 1067, "rotates": false, "multitile": false }, - { "id": "hot_pants_leather", "fg": 1066, "rotates": false, "multitile": false }, - { "id": "jacket_army", "fg": 1032, "rotates": false, "multitile": false }, - { "id": "jacket_evac", "fg": 1074, "rotates": false, "multitile": false }, - { "id": "jacket_flannel", "fg": 1075, "rotates": false, "multitile": false }, - { "id": "jacket_jean", "fg": 1074, "rotates": false, "multitile": false }, - { "id": [ "jacket_leather", "jacket_windbreaker" ], "fg": 1077, "rotates": false, "multitile": false }, - { "id": "jacket_leather_red", "fg": 1086, "rotates": false, "multitile": false }, - { "id": "jacket_light", "fg": 1073, "rotates": false, "multitile": false }, - { "id": "jeans", "fg": 1026, "rotates": false, "multitile": false }, - { "id": "jeans_red", "fg": 1033, "rotates": false, "multitile": false }, - { "id": "jedi_cloak", "fg": 1178, "rotates": false, "multitile": false }, - { "id": "jersey", "fg": 1071, "rotates": false, "multitile": false }, - { "id": "judo_gi", "fg": 1039, "rotates": false, "multitile": false }, - { "id": "jumper_cable", "fg": 809, "rotates": false, "multitile": false }, - { "id": "jumper_cable_heavy", "fg": 809, "rotates": false, "multitile": false }, - { "id": "jumpsuit", "fg": 1037, "rotates": false, "multitile": false }, - { "id": "jumpsuit_xl", "fg": 1037, "rotates": false, "multitile": false }, - { "id": "karate_gi", "fg": 1039, "rotates": false, "multitile": false }, - { "id": "keffiyeh", "fg": 1111, "rotates": false, "multitile": false }, - { "id": "keikogi", "fg": 1093, "rotates": false, "multitile": false }, - { "id": "kevlar", "fg": 1078, "rotates": false, "multitile": false }, - { "id": "kilt", "fg": 1036, "rotates": false, "multitile": false }, - { "id": "knee_high_boots", "fg": 1245, "rotates": false, "multitile": false }, - { "id": "knee_pads", "fg": 1189, "rotates": false, "multitile": false }, - { "id": "knit_scarf", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "knit_scarf_loose", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "kufi", "fg": 1004, "rotates": false, "multitile": false }, - { "id": "leathersandals", "fg": 1018, "rotates": false, "multitile": false }, - { "id": "leather", "fg": 815, "rotates": false, "multitile": false }, - { "id": "leather_belt", "fg": 1236, "rotates": false, "multitile": false }, - { "id": "leather_cat_ears", "fg": 1063, "rotates": false, "multitile": false }, - { "id": "leather_collar", "fg": 1234, "rotates": false, "multitile": false }, - { "id": "leather_pouch", "fg": 1160, "rotates": false, "multitile": false }, - { "id": "leggings", "fg": 1244, "rotates": false, "multitile": false }, - { "id": "legguard_hard", "fg": 1095, "rotates": false, "multitile": false }, - { "id": "legguard_metal", "fg": 1094, "rotates": false, "multitile": false }, - { "id": "legguard_paper", "fg": 1095, "rotates": false, "multitile": false }, - { "id": "legrig", "fg": 1211, "rotates": false, "multitile": false }, - { "id": "leg_splint", "fg": 1186, "rotates": false, "multitile": false }, - { "id": "leg_warmers", "fg": 1222, "rotates": false, "multitile": false }, - { "id": "leg_warmers_xlf", "fg": 1222, "rotates": false, "multitile": false }, - { "id": "leg_warmers_xl", "fg": 1222, "rotates": false, "multitile": false }, - { "id": "linuxtshirt", "fg": 1164, "rotates": false, "multitile": false }, - { "id": "locket", "fg": 1162, "rotates": false, "multitile": false }, - { "id": "loincloth", "fg": 1223, "rotates": false, "multitile": false }, - { "id": "loincloth_fur", "fg": 1224, "rotates": false, "multitile": false }, - { "id": "loincloth_leather", "fg": 1225, "rotates": false, "multitile": false }, - { "id": "longshirt", "fg": 1059, "rotates": false, "multitile": false }, - { "id": "long_knit_scarf", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "long_knit_scarf_loose", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "long_patchwork_scarf", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "long_patchwork_scarf_loose", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "long_underpants", "fg": 1035, "rotates": false, "multitile": false }, - { "id": "long_undertop", "fg": 1220, "rotates": false, "multitile": false }, - { "id": "lowtops", "fg": 1019, "rotates": false, "multitile": false }, - { "id": "lsurvivor_suit", "fg": 1197, "rotates": false, "multitile": false }, - { "id": "maid_dress", "fg": 1248, "rotates": false, "multitile": false }, - { "id": "maid_hat", "fg": 1138, "rotates": false, "multitile": false }, - { "id": "makeshift_sling", "fg": 990, "rotates": false, "multitile": false }, - { "id": "mask_bal", "fg": 1209, "rotates": false, "multitile": false }, - { "id": "mask_bunker", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_bunker_on", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_dust", "fg": 1112, "rotates": false, "multitile": false }, - { "id": "mask_filter", "fg": 1115, "rotates": false, "multitile": false }, - { "id": "mask_fsurvivorxl", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_fsurvivor", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_gas", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_gas_xl", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_guy_fawkes", "fg": 1210, "rotates": false, "multitile": false }, - { "id": "mask_h20survivorxl", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_h20survivorxl_on", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_h20survivor", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_h20survivor_on", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_hockey", "fg": 1210, "rotates": false, "multitile": false }, - { "id": "mask_rioter", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "mask_ski", "fg": 1134, "rotates": false, "multitile": false }, - { "id": "mask_ski_loose", "fg": 1134, "rotates": false, "multitile": false }, - { "id": "mask_survivorxl", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_survivor", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_wsurvivorxl", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mask_wsurvivor", "fg": 1116, "rotates": false, "multitile": false }, - { "id": "mbag", "fg": 1154, "rotates": false, "multitile": false }, - { "id": "miner_hat", "fg": 975, "rotates": false, "multitile": false }, - { "id": "miner_hat_on", "fg": 976, "rotates": false, "multitile": false }, - { "id": "mittens", "fg": 1101, "rotates": false, "multitile": false }, - { "id": "mocassins", "fg": 1018, "rotates": false, "multitile": false }, - { "id": "modularvestceramic", "fg": 1237, "rotates": false, "multitile": false }, - { "id": "modularvesthard", "fg": 1237, "rotates": false, "multitile": false }, - { "id": "modularvestkevlar", "fg": 1237, "rotates": false, "multitile": false }, - { "id": "modularveststeel", "fg": 1237, "rotates": false, "multitile": false }, - { "id": "modularvestsuper", "fg": 1237, "rotates": false, "multitile": false }, - { "id": "modularvest", "fg": 1237, "rotates": false, "multitile": false }, - { "id": "molle_pack", "fg": 1151, "rotates": false, "multitile": false }, - { "id": "motorbike_armor", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "motorbike_boots", "fg": 1199, "rotates": false, "multitile": false }, - { "id": "motorbike_pants", "fg": 1027, "rotates": false, "multitile": false }, - { "id": "mouthpiece", "fg": 1246, "rotates": false, "multitile": false }, - { "id": "nanoskirt", "fg": 992, "rotates": false, "multitile": false }, - { "id": "necklace", "fg": 1162, "rotates": false, "multitile": false }, - { "id": "nomex_gloves", "fg": 1046, "rotates": false, "multitile": false }, - { "id": "nomex_hood", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "nomex_socks", "fg": 1009, "rotates": false, "multitile": false }, - { "id": "nomex_suit", "fg": 1044, "rotates": false, "multitile": false }, - { "id": "obi_gi", "fg": 522, "rotates": false, "multitile": false }, - { "id": "optical_cloak", "fg": 1178, "rotates": false, "multitile": false }, - { "id": "pants", "fg": 1027, "rotates": false, "multitile": false }, - { "id": "pants_army", "fg": 1031, "rotates": false, "multitile": false }, - { "id": "pants_cargo", "fg": 1030, "rotates": false, "multitile": false }, - { "id": "pants_checkered", "fg": 1194, "rotates": false, "multitile": false }, - { "id": "pants_fur", "fg": 1034, "rotates": false, "multitile": false }, - { "id": "pants_leather", "fg": 1028, "rotates": false, "multitile": false }, - { "id": "pants_ski", "fg": 1033, "rotates": false, "multitile": false }, - { "id": "pants_survivor", "fg": 1030, "rotates": false, "multitile": false }, - { "id": "patchwork_scarf", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "patchwork_scarf_loose", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "peacoat", "fg": 1088, "rotates": false, "multitile": false }, - { "id": "plastic_shopping_bag", "fg": 786, "rotates": false, "multitile": false }, - { "id": "polo_shirt", "fg": 1057, "rotates": false, "multitile": false }, - { "id": "poncho", "fg": 1081, "rotates": false, "multitile": false }, - { "id": "postman_hat", "fg": 1131, "rotates": false, "multitile": false }, - { "id": "postman_shirt", "fg": 1241, "rotates": false, "multitile": false }, - { "id": "postman_shorts", "fg": 1242, "rotates": false, "multitile": false }, - { "id": "pot_helmet", "fg": 1139, "rotates": false, "multitile": false }, - { "id": "power_armor_basic", "fg": 1179, "rotates": false, "multitile": false }, - { "id": "power_armor_frame", "fg": 1185, "rotates": false, "multitile": false }, - { "id": "power_armor_heavy", "fg": 1183, "rotates": false, "multitile": false }, - { "id": "power_armor_helmet_basic", "fg": 1180, "rotates": false, "multitile": false }, - { "id": "power_armor_helmet_heavy", "fg": 1184, "rotates": false, "multitile": false }, - { "id": "power_armor_helmet_light", "fg": 1182, "rotates": false, "multitile": false }, - { "id": "power_armor_light", "fg": 1181, "rotates": false, "multitile": false }, - { "id": [ "purse", "slingpack" ], "fg": 1153, "rotates": false, "multitile": false }, - { "id": "quiver", "fg": 1157, "rotates": false, "multitile": false }, - { "id": "quiver_large", "fg": 1158, "rotates": false, "multitile": false }, - { "id": "rad_badge", "fg": 1165, "rotates": false, "multitile": false }, - { "id": "ring", "fg": 1161, "rotates": false, "multitile": false }, - { "id": "rm13_armor", "fg": 1204, "rotates": false, "multitile": false }, - { "id": "rm13_armor_on", "fg": 1204, "rotates": false, "multitile": false }, - { "id": "rollerskates", "fg": 1045, "rotates": false, "multitile": false }, - { "id": "roller_blades", "fg": 1045, "rotates": false, "multitile": false }, - { "id": "rucksack", "fg": 1151, "rotates": false, "multitile": false }, - { "id": "runner_bag", "fg": 1149, "rotates": false, "multitile": false }, - { "id": "scabbard", "fg": 1158, "rotates": false, "multitile": false }, - { "id": "scarf", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "scarf_fur", "fg": 1114, "rotates": false, "multitile": false }, - { "id": "scarf_fur_long", "fg": 1114, "rotates": false, "multitile": false }, - { "id": "scarf_fur_long_loose", "fg": 1114, "rotates": false, "multitile": false }, - { "id": "scarf_fur_loose", "fg": 1114, "rotates": false, "multitile": false }, - { "id": "scarf_long", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "scarf_long_loose", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "scarf_loose", "fg": 1113, "rotates": false, "multitile": false }, - { "id": "sf_watch", "fg": 986, "rotates": false, "multitile": false }, - { "id": "shark_suit", "fg": 1213, "rotates": false, "multitile": false }, - { "id": "sheath", "fg": 1157, "rotates": false, "multitile": false }, - { "id": "sheriffshirt", "fg": 1059, "rotates": false, "multitile": false }, - { "id": "shoes_bowling", "fg": 729, "rotates": false, "multitile": false }, - { "id": "sholster", "fg": 919, "rotates": false, "multitile": false }, - { "id": "shorts", "fg": 1024, "rotates": false, "multitile": false }, - { "id": "shorts_cargo", "fg": 1025, "rotates": false, "multitile": false }, - { "id": "shorts_denim", "fg": 1243, "rotates": false, "multitile": false }, - { "id": "silver_bracelet", "fg": 984, "rotates": false, "multitile": false }, - { "id": "silver_ear", "fg": 981, "rotates": false, "multitile": false }, - { "id": "skinny_tie", "fg": 373, "rotates": false, "multitile": false }, - { "id": "skirt", "fg": 1036, "rotates": false, "multitile": false }, - { "id": "skirt_leather", "fg": 1247, "rotates": false, "multitile": false }, - { "id": "sleeping_bag", "fg": 1171, "rotates": false, "multitile": false }, - { "id": "sleeping_bag_fur", "fg": 1169, "rotates": false, "multitile": false }, - { "id": "sleeveless_duster", "fg": 1089, "rotates": false, "multitile": false }, - { "id": "sleeveless_duster_fur", "fg": 1090, "rotates": false, "multitile": false }, - { "id": "sleeveless_duster_leather", "fg": 1090, "rotates": false, "multitile": false }, - { "id": "sleeveless_duster_survivor", "fg": 1090, "rotates": false, "multitile": false }, - { "id": "sleeveless_trenchcoat", "fg": 1089, "rotates": false, "multitile": false }, - { "id": "sleeveless_trenchcoat_fur", "fg": 1090, "rotates": false, "multitile": false }, - { "id": "sleeveless_trenchcoat_leather", "fg": 1090, "rotates": false, "multitile": false }, - { "id": "sleeveless_trenchcoat_survivor", "fg": 1090, "rotates": false, "multitile": false }, - { "id": "sleeveless_tunic", "fg": 1048, "rotates": false, "multitile": false }, - { "id": "small_relic", "fg": 1163, "rotates": false, "multitile": false }, - { "id": "sneakers", "fg": 1020, "rotates": false, "multitile": false }, - { "id": "snuggie", "fg": 1174, "rotates": false, "multitile": false }, - { "id": "socks", "fg": 1007, "rotates": false, "multitile": false }, - { "id": "socks_bag", "fg": 1019, "rotates": false, "multitile": false }, - { "id": "socks_bowling", "fg": 1007, "rotates": false, "multitile": false }, - { "id": "socks_wool", "fg": 1008, "rotates": false, "multitile": false }, - { "id": "sports_bra", "fg": 1062, "rotates": false, "multitile": false }, - { "id": "stockings", "fg": 1244, "rotates": false, "multitile": false }, - { "id": "stockings_tent_arms", "fg": 1244, "rotates": false, "multitile": false }, - { "id": "stockings_tent_legs", "fg": 1244, "rotates": false, "multitile": false }, - { "id": "straw_basket", "fg": 829, "rotates": false, "multitile": false }, - { "id": "straw_fedora", "fg": 830, "rotates": false, "multitile": false }, - { "id": "straw_hat", "fg": 830, "rotates": false, "multitile": false }, - { "id": "straw_sandals", "fg": 1018, "rotates": false, "multitile": false }, - { "id": "striped_pants", "fg": 988, "rotates": false, "multitile": false }, - { "id": "striped_shirt", "fg": 1058, "rotates": false, "multitile": false }, - { "id": "suitcase_l", "fg": 573, "rotates": false, "multitile": false }, - { "id": "suitcase_m", "fg": 611, "rotates": false, "multitile": false }, - { "id": "suit", "fg": 1051, "rotates": false, "multitile": false }, - { "id": "sundress", "fg": 1048, "rotates": false, "multitile": false }, - { "id": "sunglasses", "fg": 1127, "rotates": false, "multitile": false }, - { "id": "survivor_belt", "fg": 1091, "rotates": false, "multitile": false }, - { "id": "survivor_belt_notools", "fg": 1091, "rotates": false, "multitile": false }, - { "id": "survivor_duffel_bag", "fg": 1154, "rotates": false, "multitile": false }, - { "id": "survivor_pack", "fg": 1150, "rotates": false, "multitile": false }, - { "id": "survivor_rucksack", "fg": 1154, "rotates": false, "multitile": false }, - { "id": "survivor_runner_pack", "fg": 1150, "rotates": false, "multitile": false }, - { "id": "survivor_suit", "fg": 1198, "rotates": false, "multitile": false }, - { "id": "survivor_vest", "fg": 1092, "rotates": false, "multitile": false }, - { "id": "swat_armor", "fg": 1202, "rotates": false, "multitile": false }, - { "id": "sweater", "fg": 1069, "rotates": false, "multitile": false }, - { "id": "sweatshirt", "fg": 1068, "rotates": false, "multitile": false }, - { "id": "swim_fins", "fg": 1200, "rotates": false, "multitile": false }, - { "id": "tabi_dress", "fg": 1009, "rotates": false, "multitile": false }, - { "id": "tabi_gi", "fg": 1007, "rotates": false, "multitile": false }, - { "id": "tac_fullhelmet", "fg": 1143, "rotates": false, "multitile": false }, - { "id": "tac_helmet", "fg": 1203, "rotates": false, "multitile": false }, - { "id": "tank_top", "fg": 1061, "rotates": false, "multitile": false }, - { "id": "technician_pants_blue", "fg": 789, "rotates": false, "multitile": false }, - { "id": "technician_pants_gray", "fg": 1027, "rotates": false, "multitile": false }, - { "id": "technician_pants_ltblue", "fg": 1026, "rotates": false, "multitile": false }, - { "id": "technician_shirt_blue", "fg": 788, "rotates": false, "multitile": false }, - { "id": "technician_shirt_gray", "fg": 1055, "rotates": false, "multitile": false }, - { "id": "technician_shirt_ltblue", "fg": 1057, "rotates": false, "multitile": false }, - { "id": "thermal_gloves", "fg": 1046, "rotates": false, "multitile": false }, - { "id": "thermal_gloves_on", "fg": 1046, "rotates": false, "multitile": false }, - { "id": "thermal_mask", "fg": 1134, "rotates": false, "multitile": false }, - { "id": "thermal_mask_on", "fg": 1134, "rotates": false, "multitile": false }, - { "id": "thermal_outfit", "fg": 1044, "rotates": false, "multitile": false }, - { "id": "thermal_outfit_on", "fg": 1044, "rotates": false, "multitile": false }, - { "id": "thermal_socks", "fg": 1009, "rotates": false, "multitile": false }, - { "id": "thermal_socks_on", "fg": 1009, "rotates": false, "multitile": false }, - { "id": "thermal_suit", "fg": 1044, "rotates": false, "multitile": false }, - { "id": "thermal_suit_on", "fg": 1044, "rotates": false, "multitile": false }, - { "id": "throwing_axe", "fg": 896, "rotates": false, "multitile": false }, - { "id": "throwing_knife", "fg": 448, "rotates": false, "multitile": false }, - { "id": "tieclip", "fg": 394, "rotates": false, "multitile": false }, - { "id": "tights", "fg": 1027, "rotates": false, "multitile": false }, - { "id": "tool_belt", "fg": 1091, "rotates": false, "multitile": false }, - { "id": "tophat", "fg": 1147, "rotates": false, "multitile": false }, - { "id": "touring_suit", "fg": 1217, "rotates": false, "multitile": false }, - { "id": "towel_wet", "fg": 1168, "rotates": false, "multitile": false }, - { "id": "trenchcoat", "fg": 1082, "rotates": false, "multitile": false }, - { "id": "trenchcoat_fur", "fg": 1085, "rotates": false, "multitile": false }, - { "id": "trenchcoat_leather", "fg": 1084, "rotates": false, "multitile": false }, - { "id": "trenchcoat_survivor", "fg": 1084, "rotates": false, "multitile": false }, - { "id": "tricorne", "fg": 1130, "rotates": false, "multitile": false }, - { "id": "trunks", "fg": 1023, "rotates": false, "multitile": false }, - { "id": "tshirt", "fg": 1055, "rotates": false, "multitile": false }, - { "id": "tshirt_text", "fg": 1055, "rotates": false, "multitile": false }, - { "id": "tunic_rag", "fg": 1047, "rotates": false, "multitile": false }, - { "id": "turban", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "tux", "fg": 1052, "rotates": false, "multitile": false }, - { "id": "undershirt", "fg": 1055, "rotates": false, "multitile": false }, - { "id": "under_armor", "fg": 1072, "rotates": false, "multitile": false }, - { "id": "under_armor_shorts", "fg": 1024, "rotates": false, "multitile": false }, - { "id": "union_suit", "fg": 1221, "rotates": false, "multitile": false }, - { "id": "vest", "fg": 1089, "rotates": false, "multitile": false }, - { "id": "vest_leather", "fg": 1090, "rotates": false, "multitile": false }, - { "id": "waistcoat", "fg": 1089, "rotates": false, "multitile": false }, - { "id": "wetsuit", "fg": 1044, "rotates": false, "multitile": false }, - { "id": "wetsuit_booties", "fg": 1009, "rotates": false, "multitile": false }, - { "id": "wetsuit_gloves", "fg": 1046, "rotates": false, "multitile": false }, - { "id": "wetsuit_hood", "fg": 1144, "rotates": false, "multitile": false }, - { "id": "wetsuit_spring", "fg": 1047, "rotates": false, "multitile": false }, - { "id": "winter_gloves_army", "fg": 1099, "rotates": false, "multitile": false }, - { "id": "winter_jacket_army", "fg": 1093, "rotates": false, "multitile": false }, - { "id": "winter_pants_army", "fg": 988, "rotates": false, "multitile": false }, - { "id": "wolfsuit", "fg": 1038, "rotates": false, "multitile": false }, - { "id": "wool_hoodie", "fg": 1070, "rotates": false, "multitile": false }, - { "id": "wool_suit", "fg": 1221, "rotates": false, "multitile": false }, - { "id": "wrapped_rad_badge", "fg": 1165, "rotates": false, "multitile": false }, - { "id": "wristwatch", "fg": 1191, "rotates": false, "multitile": false }, - { "id": "wsurvivor_suit", "fg": 1231, "rotates": false, "multitile": false }, - { "id": "xlsurvivor_suit", "fg": 1198, "rotates": false, "multitile": false }, - { "id": "zubon_gi", "fg": 988, "rotates": false, "multitile": false }, - { "id": "1st_aid", "fg": 1274, "rotates": false }, - { "id": "adderall", "fg": 1260, "rotates": false, "multitile": false }, - { "id": "antibiotics", "fg": 1266, "rotates": false, "multitile": false }, - { "id": "antifungal", "fg": 1269, "rotates": false }, - { "id": "antiparasitic", "fg": 1269, "rotates": false }, - { "id": "aspirin", "fg": 1269, "rotates": false }, - { "id": "bandages", "fg": 1275, "rotates": false }, - { "id": "caffeine", "fg": 1270, "rotates": false }, - { "id": "cigar", "fg": 1265, "rotates": false, "multitile": false }, - { "id": "cigar_butt", "fg": 772, "rotates": false, "multitile": false }, - { "id": "cigar_lit", "fg": 771, "rotates": false, "multitile": false }, - { "id": "cig", "fg": 1263, "rotates": false, "multitile": false }, - { "id": "cig_butt", "fg": 767, "rotates": false, "multitile": false }, - { "id": "cig_lit", "fg": 766, "rotates": false, "multitile": false }, - { "id": "codeine", "fg": 1258, "rotates": false, "multitile": false }, - { "id": "coke", "fg": 348, "rotates": false, "multitile": false }, - { "id": "contacts", "fg": 942, "rotates": false }, - { "id": "crack", "fg": 1267, "rotates": false, "multitile": false }, - { "id": "dayquil", "fg": 1271, "rotates": false }, - { "id": "eyedrops", "fg": 1252, "rotates": false }, - { "id": "flu_shot", "fg": 1251, "rotates": false, "multitile": false }, - { "id": "handrolled_cig", "fg": 768, "rotates": false, "multitile": false }, - { "id": "heroin", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "inhaler", "fg": 1257, "rotates": false, "multitile": false }, - { "id": "inhaler_sewergas", "fg": 1257, "rotates": false, "multitile": false }, - { "id": "inhaler_stimgas", "fg": 1257, "rotates": false, "multitile": false }, - { "id": "iodine", "fg": 1269, "rotates": false, "multitile": false }, - { "id": "joint", "fg": 768, "rotates": false, "multitile": false }, - { "id": "joint_lit", "fg": 769, "rotates": false, "multitile": false }, - { "id": "joint_roach", "fg": 770, "rotates": false, "multitile": false }, - { "id": "lsd", "fg": 1268, "rotates": false, "multitile": false }, - { "id": "meth", "fg": 348, "rotates": false, "multitile": false }, - { "id": "morphine", "fg": 348, "rotates": false, "multitile": false }, - { "id": "oxycodone", "fg": 1254, "rotates": false, "multitile": false }, - { "id": "oxygen", "fg": 1253, "rotates": false }, - { "id": "oxygen_tank", "fg": 1253, "rotates": false }, - { "id": "poppy_pain", "fg": 348, "rotates": false, "multitile": false }, - { "id": "poppy_sleep", "fg": 348, "rotates": false, "multitile": false }, - { "id": "pur_tablets", "fg": 1269, "rotates": false }, - { "id": "quikclot", "fg": 1267, "rotates": false, "multitile": false }, - { "id": "thorazine", "fg": 1261, "rotates": false, "multitile": false }, - { "id": "tobacco", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "tramadol", "fg": 1269, "rotates": false, "multitile": false }, - { "id": "vaccine_shot", "fg": 1251, "rotates": false, "multitile": false }, - { "id": "vitamins", "fg": 1273, "rotates": false }, - { "id": "weed", "fg": 1264, "rotates": false, "multitile": false }, - { "id": "xanax", "fg": 1259, "rotates": false, "multitile": false }, - { "id": "acorns", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "acorns", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "acorns_cooked", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "ant_egg", "fg": 1341, "rotates": false, "multitile": false }, - { "id": "apple", "fg": 1287, "rotates": false, "multitile": false }, - { "id": "apple_canned", "fg": 1297, "rotates": false, "multitile": false }, - { "id": "apple_vac", "fg": 1297, "rotates": false, "multitile": false }, - { "id": "apricot", "fg": 1389, "rotates": false, "multitile": false }, - { "id": "arm", "fg": 1339, "rotates": false, "multitile": false }, - { "id": "bacon", "fg": 1338, "rotates": false, "multitile": false }, - { "id": "banana", "fg": 1288, "rotates": false, "multitile": false }, - { "id": "barley", "fg": 1310, "rotates": false, "multitile": false }, - { "id": "basketball", "fg": 1378, "rotates": false, "multitile": false }, - { "id": "beansnrice", "fg": 348, "rotates": false, "multitile": false }, - { "id": "beans_cooked", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "beet_syrup", "fg": 932, "rotates": false, "multitile": false }, - { "id": "bfipowder", "fg": 348, "rotates": false, "multitile": false }, - { "id": "biscuit", "fg": 1367, "rotates": false, "multitile": false }, - { "id": "blackberries", "fg": 1306, "rotates": false, "multitile": false }, - { "id": "blt", "fg": 1344, "rotates": false, "multitile": false }, - { "id": "blueberries", "fg": 1306, "rotates": false, "multitile": false }, - { "id": "blueberries_cooked", "fg": 1390, "rotates": false, "multitile": false }, - { "id": "bobburger", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "boiled_egg", "fg": 1341, "rotates": false, "multitile": false }, - { "id": "bologna", "fg": 1329, "rotates": false, "multitile": false }, - { "id": "bone", "fg": 952, "rotates": false, "multitile": false }, - { "id": "bone_human", "fg": 952, "rotates": false, "multitile": false }, - { "id": "bone_tainted", "fg": 825, "rotates": false, "multitile": false }, - { "id": "brandy", "fg": 937, "rotates": false, "multitile": false }, - { "id": "bread", "fg": 1350, "rotates": false, "multitile": false }, - { "id": "brew_bum_wine", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "brew_fruit_wine", "fg": 937, "rotates": false, "multitile": false }, - { "id": "brioche", "fg": 1350, "rotates": false, "multitile": false }, - { "id": "broccoli", "fg": 1313, "rotates": false, "multitile": false }, - { "id": "brownie_weed", "fg": 1355, "rotates": false, "multitile": false }, - { "id": "buckwheat", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "buckwheat_cooked", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "caff_gum", "fg": 1340, "rotates": false, "multitile": false }, - { "id": "cake2", "fg": 1355, "rotates": false, "multitile": false }, - { "id": "cake3", "fg": 1357, "rotates": false, "multitile": false }, - { "id": "candy2", "fg": 1302, "rotates": false, "multitile": false }, - { "id": "candy3", "fg": 1302, "rotates": false, "multitile": false }, - { "id": "candycigarette", "fg": 1391, "rotates": false, "multitile": false }, - { "id": "candy", "fg": 1302, "rotates": false, "multitile": false }, - { "id": "can_beans", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "can_catfood", "fg": 1280, "rotates": false, "multitile": false }, - { "id": "can_cheese", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "can_chicken", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "can_chowder", "fg": 348, "rotates": false, "multitile": false }, - { "id": "can_clams", "fg": 348, "rotates": false, "multitile": false }, - { "id": "can_coconut", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "can_corn", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "can_herring", "fg": 908, "rotates": false, "multitile": false }, - { "id": "can_pineapple", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "can_salmon", "fg": 1280, "rotates": false, "multitile": false }, - { "id": "can_sardine", "fg": 908, "rotates": false, "multitile": false }, - { "id": "can_spam", "fg": 1280, "rotates": false, "multitile": false }, - { "id": "can_tomato", "fg": 1296, "rotates": false, "multitile": false }, - { "id": "can_tuna", "fg": 1280, "rotates": false, "multitile": false }, - { "id": "carrot", "fg": 1316, "rotates": false, "multitile": false }, - { "id": "catfood", "fg": 1280, "rotates": false, "multitile": false }, - { "id": "celery", "fg": 749, "rotates": false, "multitile": false }, - { "id": "cereal2", "fg": 1292, "rotates": false, "multitile": false }, - { "id": "cereal3", "fg": 1292, "rotates": false, "multitile": false }, - { "id": "cereal", "fg": 1292, "rotates": false, "multitile": false }, - { "id": "chaw", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "cheeseburgerhuman", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "cheeseburger", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "cheese", "fg": 1392, "rotates": false, "multitile": false }, - { "id": "cheese_fries", "fg": 1380, "rotates": false, "multitile": false }, - { "id": "chem_anfo", "fg": 1280, "rotates": false, "multitile": false }, - { "id": "chem_chromium_oxide", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "chem_hexamine", "fg": 1334, "rotates": false, "multitile": false }, - { "id": "chem_sulphur", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "cherries", "fg": 1373, "rotates": false, "multitile": false }, - { "id": "chilidogs", "fg": 1330, "rotates": false, "multitile": false }, - { "id": "chilidogs_human", "fg": 1330, "rotates": false, "multitile": false }, - { "id": "chili", "fg": 1365, "rotates": false, "multitile": false }, - { "id": "chili_human", "fg": 1365, "rotates": false, "multitile": false }, - { "id": "chilly-p", "fg": 1296, "rotates": false, "multitile": false }, - { "id": "chips2", "fg": 1291, "rotates": false, "multitile": false }, - { "id": "chips3", "fg": 1291, "rotates": false, "multitile": false }, - { "id": "chips", "fg": 1291, "rotates": false, "multitile": false }, - { "id": "chocolate", "fg": 1299, "rotates": false, "multitile": false }, - { "id": "choco_coffee_beans", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "choco_coffee_beans", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "chocpretzels", "fg": 1298, "rotates": false, "multitile": false }, - { "id": "choc_pancakes", "fg": 1358, "rotates": false, "multitile": false }, - { "id": "choc_waffles", "fg": 1360, "rotates": false, "multitile": false }, - { "id": "clay_lump", "fg": 1299, "rotates": false, "multitile": false }, - { "id": "coconut", "fg": 1378, "rotates": false, "multitile": false }, - { "id": "coffee_bean", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "coffee_raw", "fg": 1356, "rotates": false, "multitile": false }, - { "id": "cola_meth", "fg": 932, "rotates": false, "multitile": false }, - { "id": "con_milk", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "cooked_burrito", "fg": 1347, "rotates": false, "multitile": false }, - { "id": "cooked_dinner", "fg": 1300, "rotates": false, "multitile": false }, - { "id": "cookies", "fg": 1367, "rotates": false, "multitile": false }, - { "id": "cornbread", "fg": 1324, "rotates": false, "multitile": false }, - { "id": "corndogs_cooked", "fg": 1331, "rotates": false, "multitile": false }, - { "id": "corndogs_frozen", "fg": 1331, "rotates": false, "multitile": false }, - { "id": "cornmeal", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "corn", "fg": 1317, "rotates": false, "multitile": false }, - { "id": "cotton_ball", "fg": 759, "rotates": false, "multitile": false }, - { "id": "cotton_boll", "fg": 1384, "rotates": false, "multitile": false }, - { "id": "crackers", "fg": 1361, "rotates": false, "multitile": false }, - { "id": "cracklins", "fg": 1320, "rotates": false, "multitile": false }, - { "id": "cranberries", "fg": 1309, "bg": 1935, "rotates": false }, - { "id": "crispycran", "fg": 937, "rotates": false, "multitile": false }, - { "id": "cucumber", "fg": 1314, "rotates": false, "multitile": false }, - { "id": "currywurst", "fg": 1330, "rotates": false, "multitile": false }, - { "id": "curry_meat", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "curry_powder", "fg": 1296, "rotates": false, "multitile": false }, - { "id": "dahlia_baked", "fg": 755, "rotates": false, "multitile": false }, - { "id": "dahlia_root", "fg": 755, "rotates": false, "multitile": false }, - { "id": "dandelion_cooked", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "dandelion_fried", "fg": 1402, "rotates": false, "multitile": false }, - { "id": "datura_seed", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "datura_seed", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "deluxe_beansnrice", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "deluxe_beans", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "deluxe_eggs", "fg": 1292, "rotates": false, "multitile": false }, - { "id": "deluxe_rice", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "deluxe_veggy_beansnrice", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "deluxe_veggy_beans", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "deluxe_veggy_rice", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "diazepam", "fg": 1269, "rotates": false, "multitile": false }, - { "id": "disinfectant", "fg": 931, "rotates": false, "multitile": false }, - { "id": "dogbane", "fg": 1278, "rotates": false, "multitile": false }, - { "id": "dried_salad", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "drink_boozeberry", "fg": 1386, "rotates": false, "multitile": false }, - { "id": "drink_strawberry_surprise", "fg": 937, "rotates": false, "multitile": false }, - { "id": "dry_beans", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "dry_fish", "fg": 908, "rotates": false, "multitile": false }, - { "id": "dry_fruit", "fg": 1279, "rotates": false, "multitile": false }, - { "id": "dry_hflesh", "fg": 1296, "rotates": false, "multitile": false }, - { "id": "dry_meat", "fg": 1296, "rotates": false, "multitile": false }, - { "id": "dry_meat_tainted", "fg": 1279, "rotates": false, "multitile": false }, - { "id": "dry_mushroom", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "dry_rice", "fg": 348, "rotates": false, "multitile": false }, - { "id": "dry_veggy", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "dry_veggy_tainted", "fg": 1279, "rotates": false, "multitile": false }, - { "id": "egg_bird", "fg": 1348, "rotates": false, "multitile": false }, - { "id": "egg_reptile", "fg": 1341, "rotates": false, "multitile": false }, - { "id": "fat", "fg": 1338, "rotates": false, "multitile": false }, - { "id": "fat_tainted", "fg": 1292, "rotates": false, "multitile": false }, - { "id": "fchicken", "fg": 1328, "rotates": false, "multitile": false }, - { "id": "fertilizer_commercial", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "fetus", "fg": 1338, "rotates": false, "multitile": false }, - { "id": "fish", "fg": 1305, "rotates": false, "multitile": false }, - { "id": "fish_bait_bread", "fg": 1350, "rotates": false, "multitile": false }, - { "id": "fish_bait_fish", "fg": 1305, "rotates": false, "multitile": false }, - { "id": "fish_bait_meat", "fg": 1305, "rotates": false, "multitile": false }, - { "id": "fish_bait_veggy", "fg": 1322, "rotates": false, "multitile": false }, - { "id": "fish_canned", "fg": 1323, "rotates": false, "multitile": false }, - { "id": "fish_cooked", "fg": 1319, "rotates": false, "multitile": false }, - { "id": "fish_fried", "fg": 1324, "rotates": false, "multitile": false }, - { "id": "fish_pickled", "fg": 1319, "rotates": false, "multitile": false }, - { "id": "fish_sandwich", "fg": 1327, "rotates": false, "multitile": false }, - { "id": "fish_smoked", "fg": 1322, "rotates": false, "multitile": false }, - { "id": "fish_vac", "fg": 1319, "rotates": false, "multitile": false }, - { "id": "flour", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "fried_spam", "fg": 1305, "rotates": false, "multitile": false }, - { "id": "fries", "fg": 1380, "rotates": false, "multitile": false }, - { "id": "frozen_burrito", "fg": 1347, "rotates": false, "multitile": false }, - { "id": "frozen_dinner", "fg": 1318, "rotates": false, "multitile": false }, - { "id": "fruit_cooked", "fg": 1325, "rotates": false, "multitile": false }, - { "id": "fruit_leather", "fg": 1305, "rotates": false, "multitile": false }, - { "id": "fruit_pancakes", "fg": 1358, "rotates": false, "multitile": false }, - { "id": "fruit_waffles", "fg": 1359, "rotates": false, "multitile": false }, - { "id": "fruit_wine", "fg": 937, "rotates": false, "multitile": false }, - { "id": "fungal_seeds", "fg": 1370, "rotates": false, "multitile": false }, - { "id": "fungicide", "fg": 1250, "rotates": false, "multitile": false }, - { "id": "grahmcrackers", "fg": 1361, "rotates": false, "multitile": false }, - { "id": "granola", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "grapefruit", "fg": 1372, "rotates": false, "multitile": false }, - { "id": "grapes", "fg": 1412, "rotates": false, "multitile": false }, - { "id": "gummy_vitamins", "fg": 1302, "rotates": false, "multitile": false }, - { "id": "gum", "fg": 1255, "rotates": false, "multitile": false }, - { "id": "hamburger", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "hardtack", "fg": 1361, "rotates": false, "multitile": false }, - { "id": "hfleshbologna", "fg": 1329, "rotates": false, "multitile": false }, - { "id": "hflesh_vac", "fg": 1296, "rotates": false, "multitile": false }, - { "id": "hobo_helper", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "honeycomb", "fg": 1335, "rotates": false, "multitile": false }, - { "id": "honey_ant", "fg": 1372, "rotates": false, "multitile": false }, - { "id": "honey_bottled", "fg": 936, "rotates": false, "multitile": false }, - { "id": "hops", "fg": 749, "rotates": false, "multitile": false }, - { "id": "horseradish", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "hotdogs_cooked", "fg": 1330, "rotates": false, "multitile": false }, - { "id": "hotdogs_frozen", "fg": 1330, "rotates": false, "multitile": false }, - { "id": "human_canned", "fg": 1277, "rotates": false, "multitile": false }, - { "id": "human_cooked", "fg": 1283, "rotates": false, "multitile": false }, - { "id": "human_flesh", "fg": 1277, "rotates": false, "multitile": false }, - { "id": "human_smoked", "fg": 1300, "rotates": false, "multitile": false }, - { "id": "h_currywurst", "fg": 1330, "rotates": false, "multitile": false }, - { "id": "insta_salad", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "irradiated_apple", "fg": 1287, "rotates": false, "multitile": false }, - { "id": "irradiated_apricot", "fg": 1389, "rotates": false, "multitile": false }, - { "id": "irradiated_banana", "fg": 1288, "rotates": false, "multitile": false }, - { "id": "irradiated_blackberries", "fg": 1306, "rotates": false, "multitile": false }, - { "id": "irradiated_blueberries", "fg": 1306, "rotates": false, "multitile": false }, - { "id": "irradiated_broccoli", "fg": 1313, "rotates": false, "multitile": false }, - { "id": "irradiated_carrot", "fg": 1316, "rotates": false, "multitile": false }, - { "id": "irradiated_celery", "fg": 749, "rotates": false, "multitile": false }, - { "id": "irradiated_cherries", "fg": 1373, "rotates": false, "multitile": false }, - { "id": "irradiated_corn", "fg": 1317, "rotates": false, "multitile": false }, - { "id": "irradiated_cranberries", "fg": 1309, "bg": 1935, "rotates": false }, - { "id": "irradiated_cucumber", "fg": 1314, "rotates": false, "multitile": false }, - { "id": "irradiated_grapefruit", "fg": 1372, "rotates": false, "multitile": false }, - { "id": "irradiated_grapes", "fg": 1412, "rotates": false, "multitile": false }, - { "id": "irradiated_kiwi", "fg": 1348, "rotates": false, "multitile": false }, - { "id": "irradiated_lemon", "fg": 1290, "rotates": false, "multitile": false }, - { "id": "irradiated_lettuce", "fg": 1346, "rotates": false, "multitile": false }, - { "id": "irradiated_mango", "fg": 1385, "rotates": false, "multitile": false }, - { "id": "irradiated_melon", "fg": 1384, "rotates": false, "multitile": false }, - { "id": "irradiated_onion", "fg": 1315, "rotates": false, "multitile": false }, - { "id": "irradiated_orange", "fg": 1289, "rotates": false, "multitile": false }, - { "id": "irradiated_papaya", "fg": 1388, "rotates": false, "multitile": false }, - { "id": "irradiated_peach", "fg": 1379, "rotates": false, "multitile": false }, - { "id": "irradiated_pear", "fg": 1371, "rotates": false, "multitile": false }, - { "id": "irradiated_pineapple", "fg": 1377, "rotates": false, "multitile": false }, - { "id": "irradiated_plums", "fg": 1376, "rotates": false, "multitile": false }, - { "id": "irradiated_pomegranate", "fg": 1387, "rotates": false, "multitile": false }, - { "id": "irradiated_raspberries", "fg": 1373, "rotates": false, "multitile": false }, - { "id": "irradiated_rhubarb", "fg": 1411, "rotates": false, "multitile": false }, - { "id": "irradiated_strawberries", "fg": 1308, "rotates": false, "multitile": false }, - { "id": "irradiated_tomato", "fg": 1312, "rotates": false, "multitile": false }, - { "id": "irradiated_watermelon", "fg": 1383, "rotates": false, "multitile": false }, - { "id": "irradiated_zucchini", "fg": 1314, "rotates": false, "multitile": false }, - { "id": "jam_blueberries", "fg": 1390, "rotates": false, "multitile": false }, - { "id": "jam_fruit", "fg": 1325, "rotates": false, "multitile": false }, - { "id": "jam_strawberries", "fg": 1325, "rotates": false, "multitile": false }, - { "id": "jerky", "fg": 1300, "rotates": false, "multitile": false }, - { "id": "jerky_human", "fg": 1300, "rotates": false, "multitile": false }, - { "id": "jihelucake", "fg": 1357, "rotates": false, "multitile": false }, - { "id": "johnnycake", "fg": 1324, "rotates": false, "multitile": false }, - { "id": "juice_pulp", "fg": 1280, "rotates": false, "multitile": false }, - { "id": "kernels", "fg": 1294, "rotates": false, "multitile": false }, - { "id": "ketchup", "fg": 1325, "rotates": false, "multitile": false }, - { "id": "kiwi", "fg": 1348, "rotates": false, "multitile": false }, - { "id": "lard", "fg": 1340, "rotates": false, "multitile": false }, - { "id": "lasagne", "fg": 1368, "rotates": false, "multitile": false }, - { "id": "lasagne_cooked", "fg": 972, "rotates": false, "multitile": false }, - { "id": "lasagne_raw", "fg": 972, "rotates": false, "multitile": false }, - { "id": "leg", "fg": 1339, "rotates": false, "multitile": false }, - { "id": "lemonade", "fg": 1395, "rotates": false }, - { "id": "lemon", "fg": 1290, "rotates": false, "multitile": false }, - { "id": "lettuce", "fg": 1346, "rotates": false, "multitile": false }, - { "id": "luigilasagne", "fg": 1368, "rotates": false, "multitile": false }, - { "id": "lunchmeat", "fg": 1305, "rotates": false, "multitile": false }, - { "id": "lutefisk", "fg": 1323, "rotates": false, "multitile": false }, - { "id": "macaroni_cooked", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "macaroni_helper", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "macaroni_raw", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "maltballs", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "maltballs", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "mango", "fg": 1385, "rotates": false, "multitile": false }, - { "id": "mannwurstgravy", "fg": 1332, "rotates": false, "multitile": false }, - { "id": "mannwurst", "fg": 1330, "rotates": false, "multitile": false }, - { "id": "manwich", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "marloss_berry", "fg": 1342, "rotates": false, "multitile": false }, - { "id": "marloss_gel", "fg": 936, "rotates": false, "multitile": false }, - { "id": "marloss_seed", "fg": 1403, "rotates": false, "multitile": false }, - { "id": "marshmallow", "fg": 1334, "rotates": false, "multitile": false }, - { "id": "material_aluminium_ingot", "fg": 831, "rotates": false, "multitile": false }, - { "id": "material_quicklime", "fg": 348, "rotates": false, "multitile": false }, - { "id": "material_sand", "fg": 908, "rotates": false, "multitile": false }, - { "id": "mayonnaise", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "meal_bone", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "meal_chitin_piece", "fg": 347, "rotates": false, "multitile": false }, - { "id": "meat", "fg": 1277, "rotates": false, "multitile": false }, - { "id": "meat_aspic", "fg": 1305, "rotates": false, "multitile": false }, - { "id": "meat_canned", "fg": 1277, "rotates": false, "multitile": false }, - { "id": "meat_cooked", "fg": 1283, "rotates": false, "multitile": false }, - { "id": "meat_smoked", "fg": 1300, "rotates": false, "multitile": false }, - { "id": "meat_tainted", "fg": 1281, "rotates": false, "multitile": false }, - { "id": "meat_vac", "fg": 1296, "rotates": false, "multitile": false }, - { "id": "melon", "fg": 1384, "rotates": false, "multitile": false }, - { "id": "milk_coffee", "fg": 932, "rotates": false, "multitile": false }, - { "id": "milk_powder", "fg": 348, "rotates": false, "multitile": false }, - { "id": "milk_tea", "fg": 932, "rotates": false, "multitile": false }, - { "id": "mintpatties", "fg": 1378, "rotates": false, "multitile": false }, - { "id": "morel_cooked", "fg": 1303, "rotates": false, "multitile": false }, - { "id": "morel_fried", "fg": 1303, "rotates": false, "multitile": false }, - { "id": "mre_beef", "fg": 1300, "rotates": false, "multitile": false }, - { "id": "mre_beef_box", "fg": 1354, "rotates": false, "multitile": false }, - { "id": "mre_chicken", "fg": 1318, "rotates": false, "multitile": false }, - { "id": "mre_chicken_box", "fg": 1354, "rotates": false, "multitile": false }, - { "id": "mre_hotdogs", "fg": 1320, "rotates": false, "multitile": false }, - { "id": "mre_hotdog_box", "fg": 1354, "rotates": false, "multitile": false }, - { "id": "mre_ravioli", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "mre_ravioli_box", "fg": 1354, "rotates": false, "multitile": false }, - { "id": "mre_veggy", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "mre_veggy_box", "fg": 1354, "rotates": false, "multitile": false }, - { "id": "mushroom", "fg": 1303, "rotates": false, "multitile": false }, - { "id": "mushroom_magic", "fg": 1303, "rotates": false, "multitile": false }, - { "id": "mushroom_morel", "fg": 1303, "rotates": false, "multitile": false }, - { "id": "mushroom_poison", "fg": 1303, "rotates": false, "multitile": false }, - { "id": "mustard", "fg": 936, "rotates": false, "multitile": false }, - { "id": "mycus_fruit", "fg": 1405, "rotates": false, "multitile": false }, - { "id": "nachosc", "fg": 1333, "rotates": false, "multitile": false }, - { "id": "nachoshc", "fg": 1333, "rotates": false, "multitile": false }, - { "id": "nachoshf", "fg": 1333, "rotates": false, "multitile": false }, - { "id": "nachosmc", "fg": 1333, "rotates": false, "multitile": false }, - { "id": "nachosm", "fg": 1333, "rotates": false, "multitile": false }, - { "id": "nachos", "fg": 1333, "rotates": false, "multitile": false }, - { "id": "neccowafers", "fg": 1302, "rotates": false, "multitile": false }, - { "id": "noodles_fast", "fg": 1324, "rotates": false, "multitile": false }, - { "id": "nyquil", "fg": 1272, "rotates": false }, - { "id": "oatmeal", "fg": 1267, "rotates": false, "multitile": false }, - { "id": "oatmeal_cooked", "fg": 1293, "rotates": false, "multitile": false }, - { "id": "oatmeal_deluxe", "fg": 1293, "rotates": false, "multitile": false }, - { "id": "onigiri", "fg": 1334, "rotates": false, "multitile": false }, - { "id": "onion", "fg": 1315, "rotates": false, "multitile": false }, - { "id": "onion_rings", "fg": 1381, "rotates": false, "multitile": false }, - { "id": "orange", "fg": 1289, "rotates": false, "multitile": false }, - { "id": "pancakes", "fg": 1358, "rotates": false, "multitile": false }, - { "id": "papaya", "fg": 1388, "rotates": false, "multitile": false }, - { "id": "peach", "fg": 1379, "rotates": false, "multitile": false }, - { "id": "peanutbutter", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "pear", "fg": 1371, "rotates": false, "multitile": false }, - { "id": "pelmeni", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "pemmican", "fg": 1322, "rotates": false, "multitile": false }, - { "id": "pickle", "fg": 1314, "rotates": false, "multitile": false }, - { "id": "pie", "fg": 1351, "rotates": false, "multitile": false }, - { "id": "pie_human", "fg": 1351, "rotates": false, "multitile": false }, - { "id": "pie_meat", "fg": 1351, "rotates": false, "multitile": false }, - { "id": "pills_sleep", "fg": 1254, "rotates": false, "multitile": false }, - { "id": "pineapple", "fg": 1377, "rotates": false, "multitile": false }, - { "id": "pine_bough", "fg": 1264, "rotates": false, "multitile": false }, - { "id": "pine_nuts", "fg": 1267, "rotates": false, "multitile": false }, - { "id": "pizza_human", "fg": 1353, "rotates": false, "multitile": false }, - { "id": "pizza_meat", "fg": 1353, "rotates": false, "multitile": false }, - { "id": "pizza_veggy", "fg": 1352, "rotates": false, "multitile": false }, - { "id": "plant_sac", "fg": 1276, "rotates": false, "multitile": false }, - { "id": "plums", "fg": 1376, "rotates": false, "multitile": false }, - { "id": "pomegranate", "fg": 1387, "rotates": false, "multitile": false }, - { "id": "popcorn2", "fg": 1295, "rotates": false, "multitile": false }, - { "id": "popcorn3", "fg": 1295, "rotates": false, "multitile": false }, - { "id": "popcorn", "fg": 1295, "rotates": false, "multitile": false }, - { "id": "porkstick", "fg": 1320, "rotates": false, "multitile": false }, - { "id": "pork_beans", "fg": 1375, "rotates": false, "multitile": false }, - { "id": "potato_baked", "fg": 1349, "rotates": false, "multitile": false }, - { "id": "potato_irradiated", "fg": 1348, "rotates": false, "multitile": false }, - { "id": "potato_raw", "fg": 1348, "rotates": false, "multitile": false }, - { "id": "powder_candy", "fg": 1345, "rotates": false, "multitile": false }, - { "id": "powder_eggs", "fg": 1374, "rotates": false, "multitile": false }, - { "id": "pretzels", "fg": 1298, "rotates": false, "multitile": false }, - { "id": "protein_drink", "fg": 1301, "rotates": false, "multitile": false }, - { "id": "protein_powder", "fg": 1267, "rotates": false, "multitile": false }, - { "id": "prozac", "fg": 1262, "rotates": false, "multitile": false }, - { "id": "pudding", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "raspberries", "fg": 1373, "rotates": false, "multitile": false }, - { "id": "ravioli", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "raw_beans", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "raw_dandelion", "fg": 1402, "rotates": false, "multitile": false }, - { "id": "rehydrated_fish", "fg": 348, "rotates": false, "multitile": false }, - { "id": "rehydrated_fruit", "fg": 1280, "rotates": false, "multitile": false }, - { "id": "rehydrated_hflesh", "fg": 1297, "rotates": false, "multitile": false }, - { "id": "rehydrated_meat", "fg": 1297, "rotates": false, "multitile": false }, - { "id": "rehydrated_veggy", "fg": 1286, "rotates": false, "multitile": false }, - { "id": "rehydrated_veggy", "fg": 1286, "rotates": false, "multitile": false }, - { "id": "rhubarb", "fg": 1411, "rotates": false, "multitile": false }, - { "id": "rice_cooked", "fg": 348, "rotates": false, "multitile": false }, - { "id": "roasted_coffee_bean", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "royal_beef", "fg": 1283, "rotates": false, "multitile": false }, - { "id": "royal_jelly", "fg": 1337, "rotates": false, "multitile": false }, - { "id": "salted_fish", "fg": 1323, "rotates": false, "multitile": false }, - { "id": "salt", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "sandwich_cheese", "fg": 1327, "rotates": false, "multitile": false }, - { "id": "sandwich_cheese_grilled", "fg": 1327, "rotates": false, "multitile": false }, - { "id": "sandwich_human", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "sandwich_jam", "fg": 1344, "rotates": false, "multitile": false }, - { "id": "sandwich_pbh", "fg": 1327, "rotates": false, "multitile": false }, - { "id": "sandwich_pbj", "fg": 1344, "rotates": false, "multitile": false }, - { "id": "sandwich_pb", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "sandwich_sauce", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "sashimi", "fg": 1305, "rotates": false, "multitile": false }, - { "id": "sauce_pesto", "fg": 1326, "rotates": false, "multitile": false }, - { "id": "sauce_red", "fg": 1325, "rotates": false, "multitile": false }, - { "id": "sausagegravy", "fg": 1332, "rotates": false, "multitile": false }, - { "id": "sausage", "fg": 1330, "rotates": false, "multitile": false }, - { "id": "scrambled_eggs", "fg": 1292, "rotates": false, "multitile": false }, - { "id": "seasoning_italian", "fg": 1326, "rotates": false, "multitile": false }, - { "id": "seasoning_salt", "fg": 1267, "rotates": false, "multitile": false }, - { "id": "seed_barley", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "seed_blueberries", "fg": 1307, "rotates": false, "multitile": false }, - { "id": "seed_broccoli", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "seed_carrot", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "seed_corn", "fg": 1294, "rotates": false, "multitile": false }, - { "id": "seed_cotton_boll", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "seed_dogbane", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "seed_hops", "fg": 755, "rotates": false, "multitile": false }, - { "id": "seed_lettuce", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "seed_onion", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "seed_strawberries", "fg": 1309, "rotates": false, "multitile": false }, - { "id": "seed_sugar_beet", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "seed_tomato", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "seed_weed", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "seed_wheat", "fg": 1311, "rotates": false, "multitile": false }, - { "id": "slime_scrap", "fg": 935, "rotates": false, "multitile": false }, - { "id": "sloppyjoe", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "smores", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "smoxygen_tank", "fg": 1253, "rotates": false }, - { "id": "soup_chicken", "fg": 1301, "rotates": false, "multitile": false }, - { "id": "soup_dumplings", "fg": 1301, "rotates": false, "multitile": false }, - { "id": "soup_fish", "fg": 1301, "rotates": false, "multitile": false }, - { "id": "soup_mushroom", "fg": 1301, "rotates": false, "multitile": false }, - { "id": "soup_tomato", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "soysauce", "fg": 932, "rotates": false, "multitile": false }, - { "id": "spaghetti_bolognese", "fg": 1365, "rotates": false, "multitile": false }, - { "id": "spaghetti_cooked", "fg": 1321, "rotates": false, "multitile": false }, - { "id": "spaghetti_human", "fg": 1365, "rotates": false, "multitile": false }, - { "id": "spaghetti_pesto", "fg": 1366, "rotates": false, "multitile": false }, - { "id": "spaghetti_raw", "fg": 1320, "rotates": false, "multitile": false }, - { "id": "spider_egg", "fg": 759, "rotates": false, "multitile": false }, - { "id": "strawberries", "fg": 1308, "rotates": false, "multitile": false }, - { "id": "strawberries_cooked", "fg": 1325, "rotates": false, "multitile": false }, - { "id": "sugar", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "sugar_beet", "fg": 757, "rotates": false, "multitile": false }, - { "id": "sugar_fried", "fg": 1356, "rotates": false, "multitile": false }, - { "id": "sushi_fishroll", "fg": 1404, "rotates": false, "multitile": false }, - { "id": "sushi_meatroll", "fg": 1404, "rotates": false, "multitile": false }, - { "id": "sushi_rice", "fg": 348, "rotates": false, "multitile": false }, - { "id": "sushi_veggyroll", "fg": 1404, "rotates": false, "multitile": false }, - { "id": "taco", "fg": 1369, "rotates": false, "multitile": false }, - { "id": "taint_tornado", "fg": 1409, "rotates": false, "multitile": false }, - { "id": "tallow", "fg": 1340, "rotates": false, "multitile": false }, - { "id": "tallow_tainted", "fg": 831, "rotates": false, "multitile": false }, - { "id": "tea_bark", "fg": 932, "rotates": false, "multitile": false }, - { "id": "tea_raw", "fg": 1326, "rotates": false, "multitile": false }, - { "id": "tiotaco", "fg": 1369, "rotates": false, "multitile": false }, - { "id": "toastem2", "fg": 1350, "rotates": false, "multitile": false }, - { "id": "toastem3", "fg": 1350, "rotates": false, "multitile": false }, - { "id": "toastem", "fg": 1350, "rotates": false, "multitile": false }, - { "id": "toasterpastryfrozen", "fg": 1350, "rotates": false, "multitile": false }, - { "id": "toasterpastry", "fg": 1322, "rotates": false, "multitile": false }, - { "id": "tomato", "fg": 1312, "rotates": false, "multitile": false }, - { "id": "tool_rocket_candy", "fg": 1383, "rotates": false, "multitile": false }, - { "id": "tool_rocket_candy_act", "fg": 1383, "rotates": false, "multitile": false }, - { "id": "unfinished_charcoal", "fg": 1322, "rotates": false, "multitile": false }, - { "id": "veggy", "fg": 1278, "rotates": false, "multitile": false }, - { "id": "veggy_canned", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "veggy_cooked", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "veggy_cooked", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "veggy_salad", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "veggy_tainted", "fg": 1282, "rotates": false, "multitile": false }, - { "id": "veggy_vac", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "veggy_wild", "fg": 1278, "rotates": false, "multitile": false }, - { "id": "veggy_wild_cooked", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "veggy_wild_cooked", "fg": 1285, "rotates": false, "multitile": false }, - { "id": "vibrator", "fg": 1332, "rotates": false, "multitile": false }, - { "id": "waffles", "fg": 1359, "rotates": false, "multitile": false }, - { "id": "wastebread", "fg": 1350, "rotates": false, "multitile": false }, - { "id": "watermelon", "fg": 1383, "rotates": false, "multitile": false }, - { "id": "wheat", "fg": 1310, "rotates": false, "multitile": false }, - { "id": "wild_herbs", "fg": 1284, "rotates": false, "multitile": false }, - { "id": "yeast", "fg": 348, "rotates": false, "multitile": false }, - { "id": "yoghurt", "fg": 1343, "rotates": false, "multitile": false }, - { "id": "zucchini", "fg": 1314, "rotates": false, "multitile": false }, + { "id": "sword_nail", "fg": 434, "rotates": false, "multitile": false }, + { "id": "sword_wood", "fg": 433, "rotates": false, "multitile": false }, + { "id": "sw_22", "fg": 526, "rotates": false, "multitile": false }, + { "id": "sw_500", "fg": 526, "rotates": false, "multitile": false }, + { "id": "sw_610", "fg": 526, "rotates": false, "multitile": false }, + { "id": "sw_619", "fg": 526, "rotates": false, "multitile": false }, + { "id": "syringe", "fg": 431, "rotates": false, "multitile": false }, + { "id": "syrup", "fg": 940, "rotates": false, "multitile": false }, + { "id": "talking_doll", "fg": 746, "rotates": false, "multitile": false }, + { "id": "tanbark", "fg": 822, "rotates": false, "multitile": false }, + { "id": "tanned_hide", "fg": 371, "rotates": false, "multitile": false }, + { "id": "tanned_pelt", "fg": 370, "rotates": false, "multitile": false }, + { "id": "tanning_hide", "fg": 825, "rotates": false, "multitile": false }, + { "id": "tanning_pelt", "fg": 824, "rotates": false, "multitile": false }, + { "id": "tanto", "fg": 683, "rotates": false, "multitile": false }, + { "id": "taurus_38", "fg": 526, "rotates": false, "multitile": false }, + { "id": "tazer", "fg": 662, "rotates": false, "multitile": false }, + { "id": "TDI", "fg": 543, "rotates": false, "multitile": false }, + { "id": "teapot", "fg": 953, "rotates": false, "multitile": false }, + { "id": "tea", "fg": 940, "rotates": false, "multitile": false }, + { "id": "tec9", "fg": 524, "rotates": false, "multitile": false }, + { "id": "teddy", "fg": 836, "rotates": false, "multitile": false }, + { "id": "telepad", "fg": 948, "rotates": false, "multitile": false }, + { "id": "teleporter", "fg": 623, "rotates": false, "multitile": false }, + { "id": "teleumbrella", "fg": 482, "rotates": false, "multitile": false }, + { "id": "television", "fg": 409, "rotates": false, "multitile": false }, + { "id": "tent_kit", "fg": 253, "rotates": false, "multitile": false }, + { "id": "tequila", "fg": 940, "rotates": false, "multitile": false }, + { "id": "thermometer", "fg": 860, "rotates": false, "multitile": false }, + { "id": "thread", "fg": 893, "rotates": false, "multitile": false }, + { "id": "throw_extinguisher", "fg": 580, "rotates": false, "multitile": false }, + { "id": "tihar", "fg": 544, "rotates": false, "multitile": false }, + { "id": "tin", "fg": 912, "rotates": false, "multitile": false }, + { "id": "tin_plate", "fg": 421, "rotates": false, "multitile": false }, + { "id": "toaster", "fg": 411, "rotates": false, "multitile": false }, + { "id": "tokarev", "fg": 526, "rotates": false, "multitile": false }, + { "id": "tonfa", "fg": 443, "rotates": false, "multitile": false }, + { "id": "tonfa_wood", "fg": 445, "rotates": false, "multitile": false }, + { "id": "tongs", "fg": 760, "rotates": false, "multitile": false }, + { "id": "toolbox", "fg": 766, "rotates": false, "multitile": false }, + { "id": "tool_anfo_charge", "fg": 861, "rotates": false, "multitile": false }, + { "id": "tool_anfo_charge_act", "fg": 862, "rotates": false, "multitile": false }, + { "id": "tool_black_powder_charge", "fg": 813, "rotates": false, "multitile": false }, + { "id": "tool_black_powder_charge_act", "fg": 814, "rotates": false, "multitile": false }, + { "id": "tool_rdx_charge", "fg": 861, "rotates": false, "multitile": false }, + { "id": "tool_rdx_charge_act", "fg": 862, "rotates": false, "multitile": false }, + { "id": "tool_rdx_sand_bomb", "fg": 625, "rotates": false, "multitile": false }, + { "id": "tool_rdx_sand_bomb_act", "fg": 626, "rotates": false, "multitile": false }, + { "id": "torch", "fg": 704, "rotates": false, "multitile": false }, + { "id": "torch_done", "fg": 403, "rotates": false, "multitile": false }, + { "id": "torch_lit", "fg": 705, "rotates": false, "multitile": false }, + { "id": "touristmap", "fg": 601, "rotates": false, "multitile": false }, + { "id": "towel", "fg": 1014, "rotates": true }, + { "id": "transponder", "fg": 958, "rotates": false, "multitile": false }, + { "id": "trex_gun", "fg": 535, "rotates": false, "multitile": false }, + { "id": "trimmer_off", "fg": 550, "rotates": false, "multitile": false }, + { "id": "trimmer_on", "fg": 550, "rotates": false, "multitile": false }, + { "id": "triple_sec", "fg": 941, "rotates": false, "multitile": false }, + { "id": "tripwire", "fg": 614, "rotates": false, "multitile": false }, + { "id": "tuned_mechanism", "fg": 926, "rotates": false, "multitile": false }, + { "id": "two_way_radio", "fg": 593, "rotates": false, "multitile": false }, + { "id": "ugl_buttstock", "fg": 926, "rotates": false, "multitile": false }, + { "id": "umbrella", "fg": 482, "rotates": false, "multitile": false }, + { "id": "unbio_blaster_gun", "fg": 565, "rotates": false, "multitile": false }, + { "id": "UPS_off", "fg": 658, "rotates": false, "multitile": false }, + { "id": "UPS_on", "fg": 659, "rotates": false, "multitile": false }, + { "id": "usb_drive", "fg": 394, "rotates": false, "multitile": false }, + { "id": "usp_45", "fg": 526, "rotates": false, "multitile": false }, + { "id": "usp_9mm", "fg": 526, "rotates": false, "multitile": false }, + { "id": "uzi", "fg": 524, "rotates": false, "multitile": false }, + { "id": "u_shotgun", "fg": 926, "rotates": false, "multitile": false }, + { "id": "v12_combustion", "fg": 881, "rotates": false, "multitile": false }, + { "id": "v29", "fg": 563, "rotates": false, "multitile": false }, + { "id": "v29_cheap", "fg": 563, "rotates": false, "multitile": false }, + { "id": "v2_combustion", "fg": 881, "rotates": false, "multitile": false }, + { "id": "v6_combustion", "fg": 881, "rotates": false, "multitile": false }, + { "id": "v6_diesel", "fg": 881, "rotates": false, "multitile": false }, + { "id": "V8", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "v8_combustion", "fg": 881, "rotates": false, "multitile": false }, + { "id": "v8_diesel", "fg": 881, "rotates": false, "multitile": false }, + { "id": "vacutainer", "fg": 673, "rotates": false, "multitile": false }, + { "id": "vac_sealer", "fg": 741, "rotates": false, "multitile": false }, + { "id": "veggy_pickled", "fg": 1294, "rotates": false, "multitile": false }, + { "id": "vehicle_controls", "fg": 889, "rotates": false, "multitile": false }, + { "id": "veh_tracker", "fg": 934, "rotates": false }, + { "id": "vinegar", "fg": 942, "rotates": false, "multitile": false }, + { "id": "vine_30", "fg": 606, "rotates": false, "multitile": false }, + { "id": "vodka", "fg": 939, "rotates": false, "multitile": false }, + { "id": "vortex_stone", "fg": 666, "rotates": false, "multitile": false }, + { "id": "v_table", "fg": 922, "rotates": false }, + { "id": "waffleiron", "fg": 386, "rotates": false, "multitile": false }, + { "id": "wakizashi", "fg": 683, "rotates": false, "multitile": false }, + { "id": "wakizashi_fake", "fg": 683, "rotates": false, "multitile": false }, + { "id": "walther_ppk", "fg": 526, "rotates": false, "multitile": false }, + { "id": "warhammer", "fg": 479, "rotates": false, "multitile": false }, + { "id": "wasp_sting", "fg": 451, "rotates": false, "multitile": false }, + { "id": "watercannon", "fg": 544, "rotates": false, "multitile": false }, + { "id": "waterproof_gunmod", "fg": 926, "rotates": false, "multitile": false }, + { "id": "waterskin2", "fg": 361, "rotates": false, "multitile": false }, + { "id": "waterskin3", "fg": 361, "rotates": false, "multitile": false }, + { "id": "waterskin", "fg": 361, "rotates": false, "multitile": false }, + { "id": "water", "fg": 939, "rotates": false, "multitile": false }, + { "id": "water_acid", "fg": 939, "rotates": false, "multitile": false }, + { "id": "water_acid_weak", "fg": 939, "rotates": false, "multitile": false }, + { "id": "water_clean", "fg": 939, "rotates": false, "multitile": false }, + { "id": "water_faucet", "fg": 792, "rotates": false }, + { "id": "water_mineral", "fg": 939, "rotates": false, "multitile": false }, + { "id": "water_purifier", "fg": 592, "rotates": false, "multitile": false }, + { "id": "wax", "fg": 1344, "rotates": false, "multitile": false }, + { "id": "wearable_light", "fg": 582, "rotates": false, "multitile": false }, + { "id": "wearable_light_on", "fg": 583, "rotates": false, "multitile": false }, + { "id": "wearable_rx12", "fg": 528, "rotates": false, "multitile": false }, + { "id": "weeks_old_newspaper", "fg": 907, "rotates": false, "multitile": false }, + { "id": "welder", "fg": 674, "rotates": false, "multitile": false }, + { "id": "welder_crude", "fg": 749, "rotates": false, "multitile": false }, + { "id": "weldrig", "fg": 886, "rotates": false, "multitile": false }, + { "id": "well_pump", "fg": 789, "rotates": false, "multitile": false }, + { "id": "wheel", "fg": 1473, "rotates": false, "multitile": false }, + { "id": "wheel_armor", "fg": 1522, "rotates": false, "multitile": false }, + { "id": "wheel_bicycle", "fg": 1475, "rotates": false, "multitile": false }, + { "id": "wheel_caster", "fg": 1475, "rotates": false, "multitile": false }, + { "id": "wheel_metal", "fg": 1473, "rotates": false, "multitile": false }, + { "id": "wheel_motorbike", "fg": 1472, "rotates": false, "multitile": false }, + { "id": "wheel_small", "fg": 1475, "rotates": false, "multitile": false }, + { "id": "wheel_wheelchair", "fg": 791, "rotates": false, "multitile": false }, + { "id": "wheel_wide", "fg": 1474, "rotates": false, "multitile": false }, + { "id": "wheel_wood", "fg": 1438, "rotates": false, "multitile": false }, + { "id": "wheel_wood_b", "fg": 1439, "rotates": false, "multitile": false }, + { "id": "whiskey", "fg": 940, "rotates": false, "multitile": false }, + { "id": "win70", "fg": 517, "rotates": false, "multitile": false }, + { "id": "wine_cabernet", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "wine_chardonnay", "fg": 942, "rotates": false, "multitile": false }, + { "id": "wine_noir", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "wine_riesling", "fg": 942, "rotates": false, "multitile": false }, + { "id": "wire", "fg": 438, "rotates": false, "multitile": false }, + { "id": "wire_barbed", "fg": 438, "rotates": false, "multitile": false }, + { "id": "withered", "fg": 369, "rotates": false, "multitile": false }, + { "id": "wooden_barrel", "fg": 957, "rotates": false }, + { "id": "wood_plate", "fg": 473, "rotates": false, "multitile": false }, + { "id": "wood_smoother", "fg": 445, "rotates": false, "multitile": false }, + { "id": "wrapper", "fg": 496, "rotates": true }, + { "id": "wrench", "fg": 714, "rotates": false, "multitile": false }, + { "id": "wristrocket", "fg": 605, "rotates": false, "multitile": false }, + { "id": "w_paint", "fg": 399, "rotates": false, "multitile": false }, + { "id": "xacto", "fg": 677, "rotates": false, "multitile": false }, + { "id": "xlframe", "fg": 931, "rotates": false }, + { "id": "yarn", "fg": 893, "rotates": false, "multitile": false }, + { "id": "y_carpet", "fg": 770, "rotates": false }, + { "id": "y_paint", "fg": 424, "rotates": false, "multitile": false }, + { "id": "zweifire_off", "fg": 692, "rotates": false, "multitile": false }, + { "id": "zweifire_on", "fg": 693, "rotates": false, "multitile": false }, + { "id": "zweihander", "fg": 690, "rotates": false, "multitile": false }, + { "id": "zweihander_fake", "fg": 690, "rotates": false, "multitile": false }, + { "id": "20x66_beanbag", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_bootleg_flechette", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_bootleg_shot", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_bootleg_slug", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_exp", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_flare", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_flechette", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_frag", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_inc", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_shot", "fg": 964, "rotates": false, "multitile": false }, + { "id": "20x66_slug", "fg": 964, "rotates": false, "multitile": false }, + { "id": "36navy", "fg": 529, "rotates": false, "multitile": false }, + { "id": "44army", "fg": 529, "rotates": false, "multitile": false }, + { "id": "50bmg", "fg": 962, "rotates": false, "multitile": false }, + { "id": "50ss", "fg": 962, "rotates": false, "multitile": false }, + { "id": "50_casing", "fg": 966, "rotates": false, "multitile": false }, + { "id": "50_incendiary", "fg": 962, "rotates": false, "multitile": false }, + { "id": "arrowhead", "fg": 965, "rotates": false, "multitile": false }, + { "id": "arrowhead_plastic", "fg": 965, "rotates": false, "multitile": false }, + { "id": "arrow_cf", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_exploding", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_field_point", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_field_point_fletched", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_fire_hardened", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_fire_hardened_fletched", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_flamming", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_heavy_field_point", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_heavy_field_point_fletched", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_heavy_fire_hardened", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_heavy_fire_hardened_fletched", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_metal", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_metal_sharpened", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_metal_sharpened_fletched", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_plastic", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_small_game", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_small_game_fletched", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_wood", "fg": 911, "rotates": false, "multitile": false }, + { "id": "arrow_wood_heavy", "fg": 911, "rotates": false, "multitile": false }, + { "id": "bolt_explosive", "fg": 911, "rotates": false, "multitile": false }, + { "id": "bolt_metal", "fg": 911, "rotates": false, "multitile": false }, + { "id": "bolt_steel", "fg": 911, "rotates": false, "multitile": false }, + { "id": "bolt_wood", "fg": 911, "rotates": false, "multitile": false }, + { "id": "signal_flare", "fg": 961, "rotates": false, "multitile": false }, + { "id": "101_carpentry", "fg": 972, "rotates": false, "multitile": false }, + { "id": "advanced_electronics", "fg": 970, "rotates": false, "multitile": false }, + { "id": "advanced_electrronics", "fg": 976, "rotates": false, "multitile": false }, + { "id": "adv_chemistry", "fg": 972, "rotates": false, "multitile": false }, + { "id": "atomic_survival", "fg": 969, "rotates": false, "multitile": false }, + { "id": "book_archery", "fg": 971, "rotates": false, "multitile": false }, + { "id": "book_icef", "fg": 976, "rotates": false, "multitile": false }, + { "id": "brewing_cookbook", "fg": 975, "rotates": false, "multitile": false }, + { "id": "carpentry_book", "fg": 972, "rotates": false, "multitile": false }, + { "id": "child_book", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "computer_science", "fg": 976, "rotates": false, "multitile": false }, + { "id": "cookbook", "fg": 971, "rotates": false, "multitile": false }, + { "id": "cookbook_human", "fg": 971, "rotates": false, "multitile": false }, + { "id": "cookbook_italian", "fg": 971, "rotates": false, "multitile": false }, + { "id": "cookbook_sushi", "fg": 979, "rotates": false }, + { "id": "decoy_anarch", "fg": 974, "rotates": false }, + { "id": "decoy_elfa", "fg": 974, "rotates": false }, + { "id": "emergency_book", "fg": 970, "rotates": false, "multitile": false }, + { "id": "essay_book", "fg": 972, "rotates": false, "multitile": false }, + { "id": "fairy_tales", "fg": 977, "rotates": false, "multitile": false }, + { "id": "family_cookbook", "fg": 969, "rotates": false, "multitile": false }, + { "id": "fun_survival", "fg": 971, "rotates": false, "multitile": false }, + { "id": "fun_traps", "fg": 971, "rotates": false, "multitile": false }, + { "id": "glassblowing_book", "fg": 978, "rotates": false, "multitile": false }, + { "id": "guidebook", "fg": 974, "rotates": false, "multitile": false }, + { "id": "holybook_bible1", "fg": 979, "rotates": false }, + { "id": "holybook_bible2", "fg": 974, "rotates": false }, + { "id": "holybook_bible3", "fg": 974, "rotates": false }, + { "id": "holybook_granth", "fg": 979, "rotates": false }, + { "id": "holybook_hadith", "fg": 974, "rotates": false }, + { "id": "holybook_kallisti", "fg": 977, "rotates": false }, + { "id": "holybook_kojiki", "fg": 974, "rotates": false }, + { "id": "holybook_mormon", "fg": 976, "rotates": false }, + { "id": "holybook_pastafarian", "fg": 977, "rotates": false }, + { "id": "holybook_quran", "fg": 974, "rotates": false }, + { "id": "holybook_scientology", "fg": 979, "rotates": false }, + { "id": "holybook_slack", "fg": 977, "rotates": false }, + { "id": "holybook_sutras", "fg": 972, "rotates": false }, + { "id": "holybook_talmud", "fg": 977, "rotates": false }, + { "id": "holybook_tanakh", "fg": 974, "rotates": false }, + { "id": "holybook_tripitaka", "fg": 977, "rotates": false }, + { "id": "holybook_upanishads", "fg": 970, "rotates": false }, + { "id": "holybook_vedas", "fg": 972, "rotates": false }, + { "id": "howto_computers", "fg": 971, "rotates": false, "multitile": false }, + { "id": "howto_computer", "fg": 969, "rotates": false, "multitile": false }, + { "id": "howto_traps", "fg": 971, "rotates": false, "multitile": false }, + { "id": "mag_archery", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_barter", "fg": 970, "rotates": false, "multitile": false }, + { "id": "mag_bashing", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_beauty", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_carpentry", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_cars", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_comic", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_computer", "fg": 971, "rotates": false, "multitile": false }, + { "id": "mag_cooking", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_cutting", "fg": 973, "rotates": false, "multitile": false }, + { "id": "mag_dodge", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_dude", "fg": 976, "rotates": false, "multitile": false }, + { "id": "mag_electronics", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_fabrication", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_fieldrepair", "fg": 969, "rotates": false, "multitile": false }, + { "id": "mag_firstaid", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_gaming", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_glam", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_guns", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_launcher", "fg": 972, "rotates": false, "multitile": false }, + { "id": "mag_mechanics", "fg": 972, "rotates": false, "multitile": false }, + { "id": "mag_melee", "fg": 973, "rotates": false, "multitile": false }, + { "id": "mag_news", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_pistol", "fg": 974, "rotates": false, "multitile": false }, + { "id": "mag_porn", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_rifle", "fg": 971, "rotates": false, "multitile": false }, + { "id": "mag_shotgun", "fg": 971, "rotates": false, "multitile": false }, + { "id": "mag_smg", "fg": 974, "rotates": false, "multitile": false }, + { "id": "mag_stabbing", "fg": 973, "rotates": false, "multitile": false }, + { "id": "mag_survival", "fg": 971, "rotates": false, "multitile": false }, + { "id": "mag_swimming", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_tailor", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_throwing", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_traps", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_tv", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "mag_unarmed", "fg": 972, "rotates": false, "multitile": false }, + { "id": "manual_aikido", "fg": 977, "rotates": false }, + { "id": "manual_archery", "fg": 969, "rotates": false, "multitile": false }, + { "id": "manual_bashing", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_boxing", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_brawl", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_business", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_capoeira", "fg": 977, "rotates": false }, + { "id": "manual_carpentry", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_centipede", "fg": 977, "rotates": false }, + { "id": "manual_computers", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_crane", "fg": 977, "rotates": false }, + { "id": "manual_cutting", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_dodge", "fg": 970, "rotates": false, "multitile": false }, + { "id": "manual_dragon", "fg": 977, "rotates": false }, + { "id": "manual_driving", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_electronics", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_eskrima", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_fabrication", "fg": 972, "rotates": false, "multitile": false }, + { "id": "manual_fencing", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_first_aid", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_guns", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_gun", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_judo", "fg": 977, "rotates": false }, + { "id": "manual_karate", "fg": 977, "rotates": false }, + { "id": "manual_knives", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_krav_maga", "fg": 977, "rotates": false }, + { "id": "manual_launcher", "fg": 969, "rotates": false, "multitile": false }, + { "id": "manual_leopard", "fg": 977, "rotates": false }, + { "id": "manual_lizard", "fg": 977, "rotates": false }, + { "id": "manual_mechanics", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_melee", "fg": 973, "rotates": false, "multitile": false }, + { "id": "manual_muay_thai", "fg": 977, "rotates": false }, + { "id": "manual_ninjutsu", "fg": 977, "rotates": false }, + { "id": "manual_niten", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_pistol", "fg": 970, "rotates": false, "multitile": false }, + { "id": "manual_rifle", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_scorpion", "fg": 977, "rotates": false }, + { "id": "manual_shotgun", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_silat", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_smg", "fg": 975, "rotates": false, "multitile": false }, + { "id": "manual_snake", "fg": 977, "rotates": false }, + { "id": "manual_speech", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_stabbing", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_survival", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_swimming", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_taekwondo", "fg": 977, "rotates": false }, + { "id": "manual_tailor", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_tai_chi", "fg": 977, "rotates": false }, + { "id": "manual_throw", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_tiger", "fg": 977, "rotates": false }, + { "id": "manual_toad", "fg": 977, "rotates": false }, + { "id": "manual_traps", "fg": 971, "rotates": false, "multitile": false }, + { "id": "manual_venom_snake", "fg": 977, "rotates": false }, + { "id": "manual_zui_quan", "fg": 977, "rotates": false }, + { "id": "many_years_old_newspaper", "fg": 907, "rotates": false, "multitile": false }, + { "id": "modern_tanner", "fg": 969, "rotates": false, "multitile": false }, + { "id": "months_old_newspaper", "fg": 907, "rotates": false, "multitile": false }, + { "id": "newest_newspaper", "fg": 907, "rotates": false, "multitile": false }, + { "id": "news_regional", "fg": 973, "rotates": false, "multitile": false }, + { "id": "note", "fg": 907, "rotates": false, "multitile": false }, + { "id": "novel_adventure", "fg": 969, "rotates": false, "multitile": false }, + { "id": "novel_buddy", "fg": 972, "rotates": false, "multitile": false }, + { "id": "novel_coa", "fg": 971, "rotates": false, "multitile": false }, + { "id": "novel_crime", "fg": 970, "rotates": false, "multitile": false }, + { "id": "novel_drama", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_erotic", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "novel_experimental", "fg": 970, "rotates": false, "multitile": false }, + { "id": "novel_fantasy", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_horror", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_mystery", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_pulp", "fg": 974, "rotates": false, "multitile": false }, + { "id": "novel_road", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "novel_romance", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_samurai", "fg": 971, "rotates": false, "multitile": false }, + { "id": "novel_satire", "fg": 974, "rotates": false, "multitile": false }, + { "id": "novel_scifi", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_sports", "fg": 977, "rotates": false, "multitile": false }, + { "id": "novel_spy", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_swash", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_thriller", "fg": 977, "rotates": false, "multitile": false }, + { "id": "novel_tragedy", "fg": 975, "rotates": false, "multitile": false }, + { "id": "novel_war", "fg": 969, "rotates": false, "multitile": false }, + { "id": "novel_western", "fg": 969, "rotates": false, "multitile": false }, + { "id": "one_year_old_newspaper", "fg": 907, "rotates": false, "multitile": false }, + { "id": "philosophy_book", "fg": 970, "rotates": false, "multitile": false }, + { "id": "phonebook", "fg": 972, "rotates": false }, + { "id": "photo_album", "fg": 969, "rotates": false, "multitile": false }, + { "id": "plays_book", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "pocket_firearms", "fg": 969, "rotates": false, "multitile": false }, + { "id": "pocket_firstaid", "fg": 969, "rotates": false, "multitile": false }, + { "id": "pocket_survival", "fg": 971, "rotates": false, "multitile": false }, + { "id": "poetry_book", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "priest_diary", "fg": 976, "rotates": false, "multitile": false }, + { "id": "radio_book", "fg": 972, "rotates": false, "multitile": false }, + { "id": "recipe_alpha", "fg": 979, "rotates": false, "multitile": false }, + { "id": "recipe_animal", "fg": 979, "rotates": false }, + { "id": "recipe_arrows", "fg": 969, "rotates": false, "multitile": false }, + { "id": "recipe_atomic_battery", "fg": 907, "rotates": false, "multitile": false }, + { "id": "recipe_augs", "fg": 974, "rotates": false }, + { "id": "recipe_bows", "fg": 969, "rotates": false, "multitile": false }, + { "id": "recipe_bullets", "fg": 969, "rotates": false, "multitile": false }, + { "id": "recipe_caseless", "fg": 974, "rotates": false, "multitile": false }, + { "id": "recipe_chimera", "fg": 979, "rotates": false, "multitile": false }, + { "id": "recipe_creepy", "fg": 979, "rotates": false }, + { "id": "recipe_elfa", "fg": 974, "rotates": false }, + { "id": "recipe_labchem", "fg": 979, "rotates": false }, + { "id": "recipe_lab_cvd", "fg": 978, "rotates": false, "multitile": false }, + { "id": "recipe_lab_elec", "fg": 972, "rotates": false }, + { "id": "recipe_maiar", "fg": 979, "rotates": false }, + { "id": "recipe_medicalmut", "fg": 970, "rotates": false, "multitile": false }, + { "id": "recipe_melee", "fg": 978, "rotates": false, "multitile": false }, + { "id": "recipe_mil_augs", "fg": 974, "rotates": false }, + { "id": "recipe_mininuke_launch", "fg": 972, "rotates": false, "multitile": false }, + { "id": "recipe_raptor", "fg": 979, "rotates": false }, + { "id": "recipe_serum", "fg": 979, "rotates": false }, + { "id": "record_accounting", "fg": 976, "rotates": false, "multitile": false }, + { "id": "record_patient", "fg": 976, "rotates": false, "multitile": false }, + { "id": "SICP", "fg": 976, "rotates": false, "multitile": false }, + { "id": "story_book", "fg": 970, "rotates": false, "multitile": false }, + { "id": "survival_book", "fg": 971, "rotates": false, "multitile": false }, + { "id": "survnote", "fg": 907, "rotates": false, "multitile": false }, + { "id": "tailor_portfolio", "fg": 969, "rotates": false, "multitile": false }, + { "id": "tall_tales", "fg": 971, "rotates": false, "multitile": false }, + { "id": "textbook_anarch", "fg": 974, "rotates": false }, + { "id": "textbook_armeast", "fg": 975, "rotates": false, "multitile": false }, + { "id": "textbook_armwest", "fg": 976, "rotates": false, "multitile": false }, + { "id": "textbook_business", "fg": 976, "rotates": false, "multitile": false }, + { "id": "textbook_carpentry", "fg": 976, "rotates": false, "multitile": false }, + { "id": "textbook_chemistry", "fg": 976, "rotates": false, "multitile": false }, + { "id": "textbook_computers", "fg": 976, "rotates": false, "multitile": false }, + { "id": "textbook_computer", "fg": 970, "rotates": false, "multitile": false }, + { "id": "textbook_electronics", "fg": 970, "rotates": false, "multitile": false }, + { "id": "textbook_fabrication", "fg": 971, "rotates": false, "multitile": false }, + { "id": "textbook_fireman", "fg": 972, "rotates": false, "multitile": false }, + { "id": "textbook_firstaid", "fg": 970, "rotates": false, "multitile": false }, + { "id": "textbook_gaswarfare", "fg": 972, "rotates": false, "multitile": false }, + { "id": "textbook_mechanics", "fg": 976, "rotates": false, "multitile": false }, + { "id": "textbook_robots", "fg": 976, "rotates": false, "multitile": false }, + { "id": "textbook_speech", "fg": 972, "rotates": false, "multitile": false }, + { "id": "textbook_survival", "fg": 971, "rotates": false, "multitile": false }, + { "id": "textbook_tailor", "fg": 971, "rotates": false, "multitile": false }, + { "id": "textbook_traps", "fg": 971, "rotates": false, "multitile": false }, + { "id": "textbook_weapeast", "fg": 978, "rotates": false, "multitile": false }, + { "id": "textbook_weapwest", "fg": 972, "rotates": false, "multitile": false }, + { "id": "trappers_companion", "fg": 969, "rotates": false, "multitile": false }, + { "id": "visions_solitude", "fg": 976, "rotates": false, "multitile": false }, + { "id": "welding_book", "fg": 970, "rotates": false, "multitile": false }, + { "id": "years_old_newspaper", "fg": 907, "rotates": false, "multitile": false }, + { "id": "ZSG", "fg": 975, "rotates": false, "multitile": false }, + { "id": "10gal_hat", "fg": 1237, "rotates": false, "multitile": false }, + { "id": "2byarm_guard", "fg": 1194, "rotates": false, "multitile": false }, + { "id": "2byshin_guard", "fg": 1194, "rotates": false, "multitile": false }, + { "id": "aep_suit", "fg": 1226, "rotates": false, "multitile": false }, + { "id": "american_flag", "fg": 1175, "rotates": false, "multitile": false }, + { "id": "anbc_suit", "fg": 1226, "rotates": false, "multitile": false }, + { "id": "apron_leather", "fg": 1216, "rotates": false, "multitile": false }, + { "id": "armguard_chitin", "fg": 1105, "rotates": false, "multitile": false }, + { "id": "armguard_hard", "fg": 1103, "rotates": false, "multitile": false }, + { "id": "armguard_metal", "fg": 1102, "rotates": false, "multitile": false }, + { "id": "armguard_paper", "fg": 1103, "rotates": false, "multitile": false }, + { "id": "armguard_soft", "fg": 1102, "rotates": false, "multitile": false }, + { "id": "armor_blarmor", "fg": 1225, "rotates": false, "multitile": false }, + { "id": "armor_bone", "fg": 1224, "rotates": false, "multitile": false }, + { "id": "armor_chitin", "fg": 1058, "rotates": false, "multitile": false }, + { "id": "armor_farmor", "fg": 1046, "rotates": false, "multitile": false }, + { "id": "armor_larmor", "fg": 1225, "rotates": false, "multitile": false }, + { "id": "armor_lightplate", "fg": 1212, "rotates": false, "multitile": false }, + { "id": "armor_nomad", "fg": 1092, "rotates": false, "multitile": false }, + { "id": "armor_plarmor", "fg": 1203, "rotates": false, "multitile": false }, + { "id": "armor_plate", "fg": 1062, "rotates": false, "multitile": false }, + { "id": "armor_samurai", "fg": 1214, "rotates": false, "multitile": false }, + { "id": "armor_scrapsuit", "fg": 1203, "rotates": false, "multitile": false }, + { "id": "army_top", "fg": 1068, "rotates": false, "multitile": false }, + { "id": "arm_splint", "fg": 1194, "rotates": false, "multitile": false }, + { "id": "arm_warmers", "fg": 1230, "rotates": false, "multitile": false }, + { "id": "backpack", "fg": 1157, "rotates": false, "multitile": false }, + { "id": "backpack_leather", "fg": 1158, "rotates": false, "multitile": false }, + { "id": "back_holster", "fg": 1164, "rotates": false, "multitile": false }, + { "id": "badge_cybercop", "fg": 1174, "rotates": false, "multitile": false }, + { "id": "badge_deputy", "fg": 1174, "rotates": false, "multitile": false }, + { "id": "badge_detective", "fg": 1174, "rotates": false, "multitile": false }, + { "id": "badge_marshal", "fg": 1174, "rotates": false, "multitile": false }, + { "id": "badge_swat", "fg": 1174, "rotates": false, "multitile": false }, + { "id": "balclava", "fg": 1142, "rotates": false, "multitile": false }, + { "id": "bandana", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "barrette", "fg": 987, "rotates": false, "multitile": false }, + { "id": "bastsandals", "fg": 1026, "rotates": false, "multitile": false }, + { "id": "beekeeping_gloves", "fg": 1235, "rotates": false, "multitile": false }, + { "id": "beekeeping_hood", "fg": 1201, "rotates": false, "multitile": false }, + { "id": "beekeeping_suit", "fg": 1101, "rotates": false, "multitile": false }, + { "id": "beret", "fg": 1145, "rotates": false, "multitile": false }, + { "id": "beret_wool", "fg": 1145, "rotates": false, "multitile": false }, + { "id": "bikini_top", "fg": 1070, "rotates": false, "multitile": false }, + { "id": "bikini_top_fur", "fg": 1072, "rotates": false, "multitile": false }, + { "id": "bikini_top_leather", "fg": 1071, "rotates": false, "multitile": false }, + { "id": "bindle", "fg": 997, "rotates": false, "multitile": false }, + { "id": "blanket", "fg": 1176, "rotates": false, "multitile": false }, + { "id": "blazer", "fg": 1084, "rotates": false, "multitile": false }, + { "id": "bondage_mask", "fg": 1050, "rotates": false, "multitile": false }, + { "id": "bondage_suit", "fg": 1049, "rotates": false, "multitile": false }, + { "id": "bookplate", "fg": 1204, "rotates": false, "multitile": false }, + { "id": "boots", "fg": 1020, "rotates": false, "multitile": false }, + { "id": "boots_bone", "fg": 1223, "rotates": false, "multitile": false }, + { "id": "boots_bunker", "fg": 1222, "rotates": false, "multitile": false }, + { "id": "boots_chitin", "fg": 1030, "rotates": false, "multitile": false }, + { "id": "boots_combat", "fg": 1023, "rotates": false, "multitile": false }, + { "id": "boots_fsurvivor", "fg": 1207, "rotates": false, "multitile": false }, + { "id": "boots_fur", "fg": 1021, "rotates": false, "multitile": false }, + { "id": "boots_h20survivor", "fg": 1017, "rotates": false, "multitile": false }, + { "id": "boots_hiking", "fg": 1024, "rotates": false, "multitile": false }, + { "id": "boots_hsurvivor", "fg": 1207, "rotates": false, "multitile": false }, + { "id": "boots_larmor", "fg": 1020, "rotates": false, "multitile": false }, + { "id": "boots_lsurvivor", "fg": 1023, "rotates": false, "multitile": false }, + { "id": "boots_plate", "fg": 1207, "rotates": false, "multitile": false }, + { "id": "boots_rubber", "fg": 1222, "rotates": false, "multitile": false }, + { "id": "boots_steel", "fg": 1022, "rotates": false, "multitile": false }, + { "id": "boots_survivor", "fg": 1022, "rotates": false, "multitile": false }, + { "id": "boots_western", "fg": 1253, "rotates": false, "multitile": false }, + { "id": "boots_winter", "fg": 1025, "rotates": false, "multitile": false }, + { "id": "boots_wsurvivor", "fg": 1025, "rotates": false, "multitile": false }, + { "id": "boots_xlsurvivor", "fg": 1022, "rotates": false, "multitile": false }, + { "id": "bowhat", "fg": 1156, "rotates": false, "multitile": false }, + { "id": "boxer_shorts", "fg": 1031, "rotates": false, "multitile": false }, + { "id": "boxing_gloves", "fg": 1109, "rotates": false, "multitile": false }, + { "id": "boy_shorts", "fg": 1031, "rotates": false, "multitile": false }, + { "id": "bra", "fg": 1070, "rotates": false, "multitile": false }, + { "id": "briefcase", "fg": 947, "rotates": false, "multitile": false }, + { "id": "briefs", "fg": 1231, "rotates": false, "multitile": false }, + { "id": "brooch", "fg": 382, "rotates": false, "multitile": false }, + { "id": "bunker_coat", "fg": 1087, "rotates": false, "multitile": false }, + { "id": "bunker_pants", "fg": 1195, "rotates": false, "multitile": false }, + { "id": "b_shorts", "fg": 1251, "rotates": false, "multitile": false }, + { "id": "camera", "fg": 803, "rotates": false, "multitile": false }, + { "id": "camera_pro", "fg": 804, "rotates": false, "multitile": false }, + { "id": "camisole", "fg": 1069, "rotates": false, "multitile": false }, + { "id": "ceramic_shard", "fg": 801, "rotates": false, "multitile": false }, + { "id": "chainmail_arms", "fg": 1102, "rotates": false, "multitile": false }, + { "id": "chainmail_hood", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "chainmail_legs", "fg": 1102, "rotates": false, "multitile": false }, + { "id": "chainmail_suit", "fg": 1062, "rotates": false, "multitile": false }, + { "id": "chainmail_vest", "fg": 1097, "rotates": false, "multitile": false }, + { "id": "chaps_leather", "fg": 1037, "rotates": false, "multitile": false }, + { "id": "chestrig", "fg": 1100, "rotates": false, "multitile": false }, + { "id": "cleansuit", "fg": 1061, "rotates": false, "multitile": false }, + { "id": "cleats", "fg": 1017, "rotates": false, "multitile": false }, + { "id": "cloak", "fg": 1183, "rotates": false, "multitile": false }, + { "id": "cloak_fur", "fg": 1184, "rotates": false, "multitile": false }, + { "id": "cloak_leather", "fg": 1185, "rotates": false, "multitile": false }, + { "id": "clogs", "fg": 1026, "rotates": false, "multitile": false }, + { "id": "clownshoes", "fg": 1048, "rotates": false, "multitile": false }, + { "id": "coat_fur", "fg": 1095, "rotates": false, "multitile": false }, + { "id": "coat_fur_sf", "fg": 1095, "rotates": false, "multitile": false }, + { "id": "coat_lab", "fg": 1101, "rotates": false, "multitile": false }, + { "id": "coat_rain", "fg": 1087, "rotates": false, "multitile": false }, + { "id": "coat_winter", "fg": 1094, "rotates": false, "multitile": false }, + { "id": "collarpin", "fg": 402, "rotates": false, "multitile": false }, + { "id": "copper_bracelet", "fg": 993, "rotates": false, "multitile": false }, + { "id": "copper_ear", "fg": 990, "rotates": false, "multitile": false }, + { "id": "corset", "fg": 1051, "rotates": false, "multitile": false }, + { "id": "cowboy_hat", "fg": 1236, "rotates": false, "multitile": false }, + { "id": "cowl_wool", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "cured_hide", "fg": 821, "rotates": false, "multitile": false }, + { "id": "cured_pelt", "fg": 820, "rotates": false, "multitile": false }, + { "id": "dance_shoes", "fg": 1028, "rotates": false, "multitile": false }, + { "id": "depowered_armor", "fg": 1187, "rotates": false, "multitile": false }, + { "id": "depowered_helmet", "fg": 1188, "rotates": false, "multitile": false }, + { "id": "diamond_dental_grill", "fg": 404, "rotates": false, "multitile": false }, + { "id": "diamond_ring", "fg": 1169, "rotates": false, "multitile": false }, + { "id": "dinosuit", "fg": 1257, "rotates": false, "multitile": false }, + { "id": "dive_bag", "fg": 1163, "rotates": false, "multitile": false }, + { "id": "diving_watch", "fg": 1199, "rotates": false, "multitile": false }, + { "id": "down_blanket", "fg": 1176, "rotates": false, "multitile": false }, + { "id": "down_pillow", "fg": 800, "rotates": false, "multitile": false }, + { "id": "dragonskin", "fg": 1246, "rotates": false, "multitile": false }, + { "id": "dress", "fg": 1056, "rotates": false, "multitile": false }, + { "id": "dress_shirt", "fg": 1066, "rotates": false, "multitile": false }, + { "id": "dress_shoes", "fg": 1028, "rotates": false, "multitile": false }, + { "id": "dress_wedding", "fg": 1057, "rotates": false, "multitile": false }, + { "id": "duffelbag", "fg": 1160, "rotates": false, "multitile": false }, + { "id": "duster", "fg": 1090, "rotates": false, "multitile": false }, + { "id": "duster_fur", "fg": 1093, "rotates": false, "multitile": false }, + { "id": "duster_leather", "fg": 1092, "rotates": false, "multitile": false }, + { "id": "duster_survivor", "fg": 1092, "rotates": false, "multitile": false }, + { "id": "ear_plugs", "fg": 1247, "rotates": false, "multitile": false }, + { "id": "elbow_pads", "fg": 1104, "rotates": false, "multitile": false }, + { "id": "emer_blanket", "fg": 1178, "rotates": false, "multitile": false }, + { "id": "emer_blanket_on", "fg": 1178, "rotates": false, "multitile": false }, + { "id": "entry_suit", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "exploding_arrow_warhead", "fg": 965, "rotates": false, "multitile": false }, + { "id": "e_handcuffs", "fg": 805, "rotates": false, "multitile": false }, + { "id": "fancy_sunglasses", "fg": 1220, "rotates": false, "multitile": false }, + { "id": "fanny", "fg": 1163, "rotates": false, "multitile": false }, + { "id": "fc_hairpin", "fg": 986, "rotates": false, "multitile": false }, + { "id": "fedora", "fg": 1236, "rotates": false, "multitile": false }, + { "id": "fencing_jacket", "fg": 1101, "rotates": false, "multitile": false }, + { "id": "fencing_mask", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "fencing_pants", "fg": 996, "rotates": false, "multitile": false }, + { "id": "firehelmet", "fg": 1143, "rotates": false, "multitile": false }, + { "id": "fireman_belt", "fg": 1244, "rotates": false, "multitile": false }, + { "id": "fire_gauntlets", "fg": 1118, "rotates": false, "multitile": false }, + { "id": "fishing_waders", "fg": 1088, "rotates": false, "multitile": false }, + { "id": "flag_shirt", "fg": 1064, "rotates": false, "multitile": false }, + { "id": "flip_flops", "fg": 1027, "rotates": false, "multitile": false }, + { "id": "flotation_vest", "fg": 1091, "rotates": false, "multitile": false }, + { "id": "folding_poncho", "fg": 980, "rotates": false, "multitile": false }, + { "id": "folding_poncho_on", "fg": 1087, "rotates": false, "multitile": false }, + { "id": "football_armor", "fg": 1018, "rotates": false, "multitile": false }, + { "id": "footrags", "fg": 1027, "rotates": false, "multitile": false }, + { "id": "footrags_fur", "fg": 1026, "rotates": false, "multitile": false }, + { "id": "footrags_leather", "fg": 1026, "rotates": false, "multitile": false }, + { "id": "fsurvivor_suit", "fg": 1209, "rotates": false, "multitile": false }, + { "id": "fur", "fg": 822, "rotates": false, "multitile": false }, + { "id": "fur_blanket", "fg": 1177, "rotates": false, "multitile": false }, + { "id": "fur_cat_ears", "fg": 1072, "rotates": false, "multitile": false }, + { "id": "fur_collar", "fg": 1242, "rotates": false, "multitile": false }, + { "id": "fur_rollmat", "fg": 1180, "rotates": false, "multitile": false }, + { "id": "gauntlets_bone", "fg": 1235, "rotates": false, "multitile": false }, + { "id": "gauntlets_chitin", "fg": 1108, "rotates": false, "multitile": false }, + { "id": "gauntlets_larmor", "fg": 1113, "rotates": false, "multitile": false }, + { "id": "geta", "fg": 1016, "rotates": false, "multitile": false }, + { "id": "glasses_bal", "fg": 1133, "rotates": false, "multitile": false }, + { "id": "glasses_bifocal", "fg": 1127, "rotates": false, "multitile": false }, + { "id": "glasses_eye", "fg": 1125, "rotates": false, "multitile": false }, + { "id": "glasses_monocle", "fg": 1134, "rotates": false, "multitile": false }, + { "id": "glasses_reading", "fg": 1126, "rotates": false, "multitile": false }, + { "id": "glasses_safety", "fg": 1128, "rotates": false, "multitile": false }, + { "id": "gloves_bag", "fg": 1108, "rotates": false, "multitile": false }, + { "id": "gloves_fingerless", "fg": 1115, "rotates": false, "multitile": false }, + { "id": "gloves_fingerless_mod", "fg": 1115, "rotates": false, "multitile": false }, + { "id": "gloves_fsurvivor", "fg": 1054, "rotates": false, "multitile": false }, + { "id": "gloves_fur", "fg": 1110, "rotates": false, "multitile": false }, + { "id": "gloves_h20survivor", "fg": 1054, "rotates": false, "multitile": false }, + { "id": "gloves_hsurvivor", "fg": 1054, "rotates": false, "multitile": false }, + { "id": "gloves_leather", "fg": 1113, "rotates": false, "multitile": false }, + { "id": "gloves_light", "fg": 1108, "rotates": false, "multitile": false }, + { "id": "gloves_liner", "fg": 1107, "rotates": false, "multitile": false }, + { "id": "gloves_lsurvivor", "fg": 1106, "rotates": false, "multitile": false }, + { "id": "gloves_medical", "fg": 1117, "rotates": false, "multitile": false }, + { "id": "gloves_plate", "fg": 1054, "rotates": false, "multitile": false }, + { "id": "gloves_rubber", "fg": 1116, "rotates": false, "multitile": false }, + { "id": "gloves_survivor", "fg": 1118, "rotates": false, "multitile": false }, + { "id": "gloves_tactical", "fg": 1114, "rotates": false, "multitile": false }, + { "id": "gloves_winter", "fg": 1112, "rotates": false, "multitile": false }, + { "id": "gloves_wool", "fg": 1111, "rotates": false, "multitile": false }, + { "id": "gloves_wraps", "fg": 1107, "rotates": false, "multitile": false }, + { "id": "gloves_wraps_fur", "fg": 1115, "rotates": false, "multitile": false }, + { "id": "gloves_wraps_leather", "fg": 1115, "rotates": false, "multitile": false }, + { "id": "gloves_wsurvivor", "fg": 1112, "rotates": false, "multitile": false }, + { "id": "gloves_xlsurvivor", "fg": 1118, "rotates": false, "multitile": false }, + { "id": "glove_jackson", "fg": 795, "rotates": false, "multitile": false }, + { "id": "gobag", "fg": 1159, "rotates": false, "multitile": false }, + { "id": "goggles_ir", "fg": 1010, "rotates": false, "multitile": false }, + { "id": "goggles_ir_on", "fg": 1010, "rotates": false, "multitile": false }, + { "id": "goggles_nv", "fg": 1132, "rotates": false, "multitile": false }, + { "id": "goggles_nv_on", "fg": 1132, "rotates": false, "multitile": false }, + { "id": "goggles_ski", "fg": 1130, "rotates": false, "multitile": false }, + { "id": "goggles_swim", "fg": 1129, "rotates": false, "multitile": false }, + { "id": "goggles_welding", "fg": 1131, "rotates": false, "multitile": false }, + { "id": "gold_bracelet", "fg": 982, "rotates": false, "multitile": false }, + { "id": "gold_dental_grill", "fg": 404, "rotates": false, "multitile": false }, + { "id": "gold_ear", "fg": 988, "rotates": false, "multitile": false }, + { "id": "gold_watch", "fg": 994, "rotates": false, "multitile": false }, + { "id": "greatcoat", "fg": 1013, "rotates": false }, + { "id": "h20survivor_suit", "fg": 1209, "rotates": false, "multitile": false }, + { "id": "hairpin", "fg": 985, "rotates": false, "multitile": false }, + { "id": "hakama_gi", "fg": 1035, "rotates": false, "multitile": false }, + { "id": "halter_top", "fg": 1055, "rotates": false, "multitile": false }, + { "id": "hand_crossbow", "fg": 903, "rotates": false, "multitile": false }, + { "id": "hat_ball", "fg": 1136, "rotates": false, "multitile": false }, + { "id": "hat_boonie", "fg": 1137, "rotates": false, "multitile": false }, + { "id": "hat_chef", "fg": 1200, "rotates": false, "multitile": false }, + { "id": "hat_cotton", "fg": 1138, "rotates": false, "multitile": false }, + { "id": "hat_fur", "fg": 1141, "rotates": false, "multitile": false }, + { "id": "hat_hard", "fg": 1143, "rotates": false, "multitile": false }, + { "id": "hat_hunting", "fg": 1140, "rotates": false, "multitile": false }, + { "id": "hat_knit", "fg": 1139, "rotates": false, "multitile": false }, + { "id": "hat_newsboy", "fg": 1138, "rotates": false, "multitile": false }, + { "id": "hat_noise_cancelling", "fg": 1248, "rotates": false, "multitile": false }, + { "id": "hazmat_suit", "fg": 1061, "rotates": false, "multitile": false }, + { "id": "headgear", "fg": 1019, "rotates": false, "multitile": false }, + { "id": "heels", "fg": 1029, "rotates": false, "multitile": false }, + { "id": "helmet_army", "fg": 1149, "rotates": false, "multitile": false }, + { "id": "helmet_ball", "fg": 1148, "rotates": false, "multitile": false }, + { "id": "helmet_barbute", "fg": 1213, "rotates": false, "multitile": false }, + { "id": "helmet_bike", "fg": 1146, "rotates": false, "multitile": false }, + { "id": "helmet_bone", "fg": 1227, "rotates": false, "multitile": false }, + { "id": "helmet_football", "fg": 1019, "rotates": false, "multitile": false }, + { "id": "helmet_hsurvivor", "fg": 1211, "rotates": false, "multitile": false }, + { "id": "helmet_kabuto", "fg": 1215, "rotates": false, "multitile": false }, + { "id": "helmet_larmor", "fg": 1241, "rotates": false, "multitile": false }, + { "id": "helmet_survivor", "fg": 1240, "rotates": false, "multitile": false }, + { "id": "helmet_xlsurvivor", "fg": 1240, "rotates": false, "multitile": false }, + { "id": "hoodie", "fg": 1078, "rotates": false, "multitile": false }, + { "id": "hood_rain", "fg": 1234, "rotates": false, "multitile": false }, + { "id": "hood_wsurvivor", "fg": 995, "rotates": false, "multitile": false }, + { "id": "hot_pants", "fg": 1073, "rotates": false, "multitile": false }, + { "id": "hot_pants_fur", "fg": 1075, "rotates": false, "multitile": false }, + { "id": "hot_pants_leather", "fg": 1074, "rotates": false, "multitile": false }, + { "id": "jacket_army", "fg": 1040, "rotates": false, "multitile": false }, + { "id": "jacket_evac", "fg": 1082, "rotates": false, "multitile": false }, + { "id": "jacket_flannel", "fg": 1083, "rotates": false, "multitile": false }, + { "id": "jacket_jean", "fg": 1082, "rotates": false, "multitile": false }, + { "id": [ "jacket_leather", "jacket_windbreaker" ], "fg": 1085, "rotates": false, "multitile": false }, + { "id": "jacket_leather_red", "fg": 1094, "rotates": false, "multitile": false }, + { "id": "jacket_light", "fg": 1081, "rotates": false, "multitile": false }, + { "id": "jeans", "fg": 1034, "rotates": false, "multitile": false }, + { "id": "jeans_red", "fg": 1041, "rotates": false, "multitile": false }, + { "id": "jedi_cloak", "fg": 1186, "rotates": false, "multitile": false }, + { "id": "jersey", "fg": 1079, "rotates": false, "multitile": false }, + { "id": "judo_gi", "fg": 1047, "rotates": false, "multitile": false }, + { "id": "jumper_cable", "fg": 817, "rotates": false, "multitile": false }, + { "id": "jumper_cable_heavy", "fg": 817, "rotates": false, "multitile": false }, + { "id": "jumpsuit", "fg": 1045, "rotates": false, "multitile": false }, + { "id": "jumpsuit_xl", "fg": 1045, "rotates": false, "multitile": false }, + { "id": "karate_gi", "fg": 1047, "rotates": false, "multitile": false }, + { "id": "keffiyeh", "fg": 1119, "rotates": false, "multitile": false }, + { "id": "keikogi", "fg": 1101, "rotates": false, "multitile": false }, + { "id": "kevlar", "fg": 1086, "rotates": false, "multitile": false }, + { "id": "kilt", "fg": 1044, "rotates": false, "multitile": false }, + { "id": "knee_high_boots", "fg": 1253, "rotates": false, "multitile": false }, + { "id": "knee_pads", "fg": 1197, "rotates": false, "multitile": false }, + { "id": "knit_scarf", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "knit_scarf_loose", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "kufi", "fg": 1012, "rotates": false, "multitile": false }, + { "id": "leathersandals", "fg": 1026, "rotates": false, "multitile": false }, + { "id": "leather", "fg": 823, "rotates": false, "multitile": false }, + { "id": "leather_belt", "fg": 1244, "rotates": false, "multitile": false }, + { "id": "leather_cat_ears", "fg": 1071, "rotates": false, "multitile": false }, + { "id": "leather_collar", "fg": 1242, "rotates": false, "multitile": false }, + { "id": "leather_pouch", "fg": 1168, "rotates": false, "multitile": false }, + { "id": "leggings", "fg": 1252, "rotates": false, "multitile": false }, + { "id": "legguard_hard", "fg": 1103, "rotates": false, "multitile": false }, + { "id": "legguard_metal", "fg": 1102, "rotates": false, "multitile": false }, + { "id": "legguard_paper", "fg": 1103, "rotates": false, "multitile": false }, + { "id": "legrig", "fg": 1219, "rotates": false, "multitile": false }, + { "id": "leg_splint", "fg": 1194, "rotates": false, "multitile": false }, + { "id": "leg_warmers", "fg": 1230, "rotates": false, "multitile": false }, + { "id": "leg_warmers_xlf", "fg": 1230, "rotates": false, "multitile": false }, + { "id": "leg_warmers_xl", "fg": 1230, "rotates": false, "multitile": false }, + { "id": "linuxtshirt", "fg": 1172, "rotates": false, "multitile": false }, + { "id": "locket", "fg": 1170, "rotates": false, "multitile": false }, + { "id": "loincloth", "fg": 1231, "rotates": false, "multitile": false }, + { "id": "loincloth_fur", "fg": 1232, "rotates": false, "multitile": false }, + { "id": "loincloth_leather", "fg": 1233, "rotates": false, "multitile": false }, + { "id": "longshirt", "fg": 1067, "rotates": false, "multitile": false }, + { "id": "long_knit_scarf", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "long_knit_scarf_loose", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "long_patchwork_scarf", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "long_patchwork_scarf_loose", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "long_underpants", "fg": 1043, "rotates": false, "multitile": false }, + { "id": "long_undertop", "fg": 1228, "rotates": false, "multitile": false }, + { "id": "lowtops", "fg": 1027, "rotates": false, "multitile": false }, + { "id": "lsurvivor_suit", "fg": 1205, "rotates": false, "multitile": false }, + { "id": "maid_dress", "fg": 1256, "rotates": false, "multitile": false }, + { "id": "maid_hat", "fg": 1146, "rotates": false, "multitile": false }, + { "id": "makeshift_sling", "fg": 998, "rotates": false, "multitile": false }, + { "id": "mask_bal", "fg": 1217, "rotates": false, "multitile": false }, + { "id": "mask_bunker", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_bunker_on", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_dust", "fg": 1120, "rotates": false, "multitile": false }, + { "id": "mask_filter", "fg": 1123, "rotates": false, "multitile": false }, + { "id": "mask_fsurvivorxl", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_fsurvivor", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_gas", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_gas_xl", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_guy_fawkes", "fg": 1218, "rotates": false, "multitile": false }, + { "id": "mask_h20survivorxl", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_h20survivorxl_on", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_h20survivor", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_h20survivor_on", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_hockey", "fg": 1218, "rotates": false, "multitile": false }, + { "id": "mask_rioter", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "mask_ski", "fg": 1142, "rotates": false, "multitile": false }, + { "id": "mask_ski_loose", "fg": 1142, "rotates": false, "multitile": false }, + { "id": "mask_survivorxl", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_survivor", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_wsurvivorxl", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mask_wsurvivor", "fg": 1124, "rotates": false, "multitile": false }, + { "id": "mbag", "fg": 1162, "rotates": false, "multitile": false }, + { "id": "miner_hat", "fg": 983, "rotates": false, "multitile": false }, + { "id": "miner_hat_on", "fg": 984, "rotates": false, "multitile": false }, + { "id": "mittens", "fg": 1109, "rotates": false, "multitile": false }, + { "id": "mocassins", "fg": 1026, "rotates": false, "multitile": false }, + { "id": "modularvestceramic", "fg": 1245, "rotates": false, "multitile": false }, + { "id": "modularvesthard", "fg": 1245, "rotates": false, "multitile": false }, + { "id": "modularvestkevlar", "fg": 1245, "rotates": false, "multitile": false }, + { "id": "modularveststeel", "fg": 1245, "rotates": false, "multitile": false }, + { "id": "modularvestsuper", "fg": 1245, "rotates": false, "multitile": false }, + { "id": "modularvest", "fg": 1245, "rotates": false, "multitile": false }, + { "id": "molle_pack", "fg": 1159, "rotates": false, "multitile": false }, + { "id": "motorbike_armor", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "motorbike_boots", "fg": 1207, "rotates": false, "multitile": false }, + { "id": "motorbike_pants", "fg": 1035, "rotates": false, "multitile": false }, + { "id": "mouthpiece", "fg": 1254, "rotates": false, "multitile": false }, + { "id": "nanoskirt", "fg": 1000, "rotates": false, "multitile": false }, + { "id": "necklace", "fg": 1170, "rotates": false, "multitile": false }, + { "id": "nomex_gloves", "fg": 1054, "rotates": false, "multitile": false }, + { "id": "nomex_hood", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "nomex_socks", "fg": 1017, "rotates": false, "multitile": false }, + { "id": "nomex_suit", "fg": 1052, "rotates": false, "multitile": false }, + { "id": "obi_gi", "fg": 530, "rotates": false, "multitile": false }, + { "id": "optical_cloak", "fg": 1186, "rotates": false, "multitile": false }, + { "id": "pants", "fg": 1035, "rotates": false, "multitile": false }, + { "id": "pants_army", "fg": 1039, "rotates": false, "multitile": false }, + { "id": "pants_cargo", "fg": 1038, "rotates": false, "multitile": false }, + { "id": "pants_checkered", "fg": 1202, "rotates": false, "multitile": false }, + { "id": "pants_fur", "fg": 1042, "rotates": false, "multitile": false }, + { "id": "pants_leather", "fg": 1036, "rotates": false, "multitile": false }, + { "id": "pants_ski", "fg": 1041, "rotates": false, "multitile": false }, + { "id": "pants_survivor", "fg": 1038, "rotates": false, "multitile": false }, + { "id": "patchwork_scarf", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "patchwork_scarf_loose", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "peacoat", "fg": 1096, "rotates": false, "multitile": false }, + { "id": "plastic_shopping_bag", "fg": 794, "rotates": false, "multitile": false }, + { "id": "polo_shirt", "fg": 1065, "rotates": false, "multitile": false }, + { "id": "poncho", "fg": 1089, "rotates": false, "multitile": false }, + { "id": "postman_hat", "fg": 1139, "rotates": false, "multitile": false }, + { "id": "postman_shirt", "fg": 1249, "rotates": false, "multitile": false }, + { "id": "postman_shorts", "fg": 1250, "rotates": false, "multitile": false }, + { "id": "pot_helmet", "fg": 1147, "rotates": false, "multitile": false }, + { "id": "power_armor_basic", "fg": 1187, "rotates": false, "multitile": false }, + { "id": "power_armor_frame", "fg": 1193, "rotates": false, "multitile": false }, + { "id": "power_armor_heavy", "fg": 1191, "rotates": false, "multitile": false }, + { "id": "power_armor_helmet_basic", "fg": 1188, "rotates": false, "multitile": false }, + { "id": "power_armor_helmet_heavy", "fg": 1192, "rotates": false, "multitile": false }, + { "id": "power_armor_helmet_light", "fg": 1190, "rotates": false, "multitile": false }, + { "id": "power_armor_light", "fg": 1189, "rotates": false, "multitile": false }, + { "id": [ "purse", "slingpack" ], "fg": 1161, "rotates": false, "multitile": false }, + { "id": "quiver", "fg": 1165, "rotates": false, "multitile": false }, + { "id": "quiver_large", "fg": 1166, "rotates": false, "multitile": false }, + { "id": "rad_badge", "fg": 1173, "rotates": false, "multitile": false }, + { "id": "ring", "fg": 1169, "rotates": false, "multitile": false }, + { "id": "rm13_armor", "fg": 1212, "rotates": false, "multitile": false }, + { "id": "rm13_armor_on", "fg": 1212, "rotates": false, "multitile": false }, + { "id": "rollerskates", "fg": 1053, "rotates": false, "multitile": false }, + { "id": "roller_blades", "fg": 1053, "rotates": false, "multitile": false }, + { "id": "rucksack", "fg": 1159, "rotates": false, "multitile": false }, + { "id": "runner_bag", "fg": 1157, "rotates": false, "multitile": false }, + { "id": "scabbard", "fg": 1166, "rotates": false, "multitile": false }, + { "id": "scarf", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "scarf_fur", "fg": 1122, "rotates": false, "multitile": false }, + { "id": "scarf_fur_long", "fg": 1122, "rotates": false, "multitile": false }, + { "id": "scarf_fur_long_loose", "fg": 1122, "rotates": false, "multitile": false }, + { "id": "scarf_fur_loose", "fg": 1122, "rotates": false, "multitile": false }, + { "id": "scarf_long", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "scarf_long_loose", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "scarf_loose", "fg": 1121, "rotates": false, "multitile": false }, + { "id": "sf_watch", "fg": 994, "rotates": false, "multitile": false }, + { "id": "shark_suit", "fg": 1221, "rotates": false, "multitile": false }, + { "id": "sheath", "fg": 1165, "rotates": false, "multitile": false }, + { "id": "sheriffshirt", "fg": 1067, "rotates": false, "multitile": false }, + { "id": "shoes_bowling", "fg": 737, "rotates": false, "multitile": false }, + { "id": "sholster", "fg": 927, "rotates": false, "multitile": false }, + { "id": "shorts", "fg": 1032, "rotates": false, "multitile": false }, + { "id": "shorts_cargo", "fg": 1033, "rotates": false, "multitile": false }, + { "id": "shorts_denim", "fg": 1251, "rotates": false, "multitile": false }, + { "id": "silver_bracelet", "fg": 992, "rotates": false, "multitile": false }, + { "id": "silver_ear", "fg": 989, "rotates": false, "multitile": false }, + { "id": "skinny_tie", "fg": 381, "rotates": false, "multitile": false }, + { "id": "skirt", "fg": 1044, "rotates": false, "multitile": false }, + { "id": "skirt_leather", "fg": 1255, "rotates": false, "multitile": false }, + { "id": "sleeping_bag", "fg": 1179, "rotates": false, "multitile": false }, + { "id": "sleeping_bag_fur", "fg": 1177, "rotates": false, "multitile": false }, + { "id": "sleeveless_duster", "fg": 1097, "rotates": false, "multitile": false }, + { "id": "sleeveless_duster_fur", "fg": 1098, "rotates": false, "multitile": false }, + { "id": "sleeveless_duster_leather", "fg": 1098, "rotates": false, "multitile": false }, + { "id": "sleeveless_duster_survivor", "fg": 1098, "rotates": false, "multitile": false }, + { "id": "sleeveless_trenchcoat", "fg": 1097, "rotates": false, "multitile": false }, + { "id": "sleeveless_trenchcoat_fur", "fg": 1098, "rotates": false, "multitile": false }, + { "id": "sleeveless_trenchcoat_leather", "fg": 1098, "rotates": false, "multitile": false }, + { "id": "sleeveless_trenchcoat_survivor", "fg": 1098, "rotates": false, "multitile": false }, + { "id": "sleeveless_tunic", "fg": 1056, "rotates": false, "multitile": false }, + { "id": "small_relic", "fg": 1171, "rotates": false, "multitile": false }, + { "id": "sneakers", "fg": 1028, "rotates": false, "multitile": false }, + { "id": "snuggie", "fg": 1182, "rotates": false, "multitile": false }, + { "id": "socks", "fg": 1015, "rotates": false, "multitile": false }, + { "id": "socks_bag", "fg": 1027, "rotates": false, "multitile": false }, + { "id": "socks_bowling", "fg": 1015, "rotates": false, "multitile": false }, + { "id": "socks_wool", "fg": 1016, "rotates": false, "multitile": false }, + { "id": "sports_bra", "fg": 1070, "rotates": false, "multitile": false }, + { "id": "stockings", "fg": 1252, "rotates": false, "multitile": false }, + { "id": "stockings_tent_arms", "fg": 1252, "rotates": false, "multitile": false }, + { "id": "stockings_tent_legs", "fg": 1252, "rotates": false, "multitile": false }, + { "id": "straw_basket", "fg": 837, "rotates": false, "multitile": false }, + { "id": "straw_fedora", "fg": 838, "rotates": false, "multitile": false }, + { "id": "straw_hat", "fg": 838, "rotates": false, "multitile": false }, + { "id": "straw_sandals", "fg": 1026, "rotates": false, "multitile": false }, + { "id": "striped_pants", "fg": 996, "rotates": false, "multitile": false }, + { "id": "striped_shirt", "fg": 1066, "rotates": false, "multitile": false }, + { "id": "suitcase_l", "fg": 581, "rotates": false, "multitile": false }, + { "id": "suitcase_m", "fg": 619, "rotates": false, "multitile": false }, + { "id": "suit", "fg": 1059, "rotates": false, "multitile": false }, + { "id": "sundress", "fg": 1056, "rotates": false, "multitile": false }, + { "id": "sunglasses", "fg": 1135, "rotates": false, "multitile": false }, + { "id": "survivor_belt", "fg": 1099, "rotates": false, "multitile": false }, + { "id": "survivor_belt_notools", "fg": 1099, "rotates": false, "multitile": false }, + { "id": "survivor_duffel_bag", "fg": 1162, "rotates": false, "multitile": false }, + { "id": "survivor_pack", "fg": 1158, "rotates": false, "multitile": false }, + { "id": "survivor_rucksack", "fg": 1162, "rotates": false, "multitile": false }, + { "id": "survivor_runner_pack", "fg": 1158, "rotates": false, "multitile": false }, + { "id": "survivor_suit", "fg": 1206, "rotates": false, "multitile": false }, + { "id": "survivor_vest", "fg": 1100, "rotates": false, "multitile": false }, + { "id": "swat_armor", "fg": 1210, "rotates": false, "multitile": false }, + { "id": "sweater", "fg": 1077, "rotates": false, "multitile": false }, + { "id": "sweatshirt", "fg": 1076, "rotates": false, "multitile": false }, + { "id": "swim_fins", "fg": 1208, "rotates": false, "multitile": false }, + { "id": "tabi_dress", "fg": 1017, "rotates": false, "multitile": false }, + { "id": "tabi_gi", "fg": 1015, "rotates": false, "multitile": false }, + { "id": "tac_fullhelmet", "fg": 1151, "rotates": false, "multitile": false }, + { "id": "tac_helmet", "fg": 1211, "rotates": false, "multitile": false }, + { "id": "tank_top", "fg": 1069, "rotates": false, "multitile": false }, + { "id": "technician_pants_blue", "fg": 797, "rotates": false, "multitile": false }, + { "id": "technician_pants_gray", "fg": 1035, "rotates": false, "multitile": false }, + { "id": "technician_pants_ltblue", "fg": 1034, "rotates": false, "multitile": false }, + { "id": "technician_shirt_blue", "fg": 796, "rotates": false, "multitile": false }, + { "id": "technician_shirt_gray", "fg": 1063, "rotates": false, "multitile": false }, + { "id": "technician_shirt_ltblue", "fg": 1065, "rotates": false, "multitile": false }, + { "id": "thermal_gloves", "fg": 1054, "rotates": false, "multitile": false }, + { "id": "thermal_gloves_on", "fg": 1054, "rotates": false, "multitile": false }, + { "id": "thermal_mask", "fg": 1142, "rotates": false, "multitile": false }, + { "id": "thermal_mask_on", "fg": 1142, "rotates": false, "multitile": false }, + { "id": "thermal_outfit", "fg": 1052, "rotates": false, "multitile": false }, + { "id": "thermal_outfit_on", "fg": 1052, "rotates": false, "multitile": false }, + { "id": "thermal_socks", "fg": 1017, "rotates": false, "multitile": false }, + { "id": "thermal_socks_on", "fg": 1017, "rotates": false, "multitile": false }, + { "id": "thermal_suit", "fg": 1052, "rotates": false, "multitile": false }, + { "id": "thermal_suit_on", "fg": 1052, "rotates": false, "multitile": false }, + { "id": "throwing_axe", "fg": 904, "rotates": false, "multitile": false }, + { "id": "throwing_knife", "fg": 456, "rotates": false, "multitile": false }, + { "id": "tieclip", "fg": 402, "rotates": false, "multitile": false }, + { "id": "tights", "fg": 1035, "rotates": false, "multitile": false }, + { "id": "tool_belt", "fg": 1099, "rotates": false, "multitile": false }, + { "id": "tophat", "fg": 1155, "rotates": false, "multitile": false }, + { "id": "touring_suit", "fg": 1225, "rotates": false, "multitile": false }, + { "id": "towel_wet", "fg": 1176, "rotates": false, "multitile": false }, + { "id": "trenchcoat", "fg": 1090, "rotates": false, "multitile": false }, + { "id": "trenchcoat_fur", "fg": 1093, "rotates": false, "multitile": false }, + { "id": "trenchcoat_leather", "fg": 1092, "rotates": false, "multitile": false }, + { "id": "trenchcoat_survivor", "fg": 1092, "rotates": false, "multitile": false }, + { "id": "tricorne", "fg": 1138, "rotates": false, "multitile": false }, + { "id": "trunks", "fg": 1031, "rotates": false, "multitile": false }, + { "id": "tshirt", "fg": 1063, "rotates": false, "multitile": false }, + { "id": "tshirt_text", "fg": 1063, "rotates": false, "multitile": false }, + { "id": "tunic_rag", "fg": 1055, "rotates": false, "multitile": false }, + { "id": "turban", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "tux", "fg": 1060, "rotates": false, "multitile": false }, + { "id": "undershirt", "fg": 1063, "rotates": false, "multitile": false }, + { "id": "under_armor", "fg": 1080, "rotates": false, "multitile": false }, + { "id": "under_armor_shorts", "fg": 1032, "rotates": false, "multitile": false }, + { "id": "union_suit", "fg": 1229, "rotates": false, "multitile": false }, + { "id": "vest", "fg": 1097, "rotates": false, "multitile": false }, + { "id": "vest_leather", "fg": 1098, "rotates": false, "multitile": false }, + { "id": "waistcoat", "fg": 1097, "rotates": false, "multitile": false }, + { "id": "wetsuit", "fg": 1052, "rotates": false, "multitile": false }, + { "id": "wetsuit_booties", "fg": 1017, "rotates": false, "multitile": false }, + { "id": "wetsuit_gloves", "fg": 1054, "rotates": false, "multitile": false }, + { "id": "wetsuit_hood", "fg": 1152, "rotates": false, "multitile": false }, + { "id": "wetsuit_spring", "fg": 1055, "rotates": false, "multitile": false }, + { "id": "winter_gloves_army", "fg": 1107, "rotates": false, "multitile": false }, + { "id": "winter_jacket_army", "fg": 1101, "rotates": false, "multitile": false }, + { "id": "winter_pants_army", "fg": 996, "rotates": false, "multitile": false }, + { "id": "wolfsuit", "fg": 1046, "rotates": false, "multitile": false }, + { "id": "wool_hoodie", "fg": 1078, "rotates": false, "multitile": false }, + { "id": "wool_suit", "fg": 1229, "rotates": false, "multitile": false }, + { "id": "wrapped_rad_badge", "fg": 1173, "rotates": false, "multitile": false }, + { "id": "wristwatch", "fg": 1199, "rotates": false, "multitile": false }, + { "id": "wsurvivor_suit", "fg": 1239, "rotates": false, "multitile": false }, + { "id": "xlsurvivor_suit", "fg": 1206, "rotates": false, "multitile": false }, + { "id": "zubon_gi", "fg": 996, "rotates": false, "multitile": false }, + { "id": "1st_aid", "fg": 1282, "rotates": false }, + { "id": "adderall", "fg": 1268, "rotates": false, "multitile": false }, + { "id": "antibiotics", "fg": 1274, "rotates": false, "multitile": false }, + { "id": "antifungal", "fg": 1277, "rotates": false }, + { "id": "antiparasitic", "fg": 1277, "rotates": false }, + { "id": "aspirin", "fg": 1277, "rotates": false }, + { "id": "bandages", "fg": 1283, "rotates": false }, + { "id": "caffeine", "fg": 1278, "rotates": false }, + { "id": "cigar", "fg": 1273, "rotates": false, "multitile": false }, + { "id": "cigar_butt", "fg": 780, "rotates": false, "multitile": false }, + { "id": "cigar_lit", "fg": 779, "rotates": false, "multitile": false }, + { "id": "cig", "fg": 1271, "rotates": false, "multitile": false }, + { "id": "cig_butt", "fg": 775, "rotates": false, "multitile": false }, + { "id": "cig_lit", "fg": 774, "rotates": false, "multitile": false }, + { "id": "codeine", "fg": 1266, "rotates": false, "multitile": false }, + { "id": "coke", "fg": 356, "rotates": false, "multitile": false }, + { "id": "contacts", "fg": 950, "rotates": false }, + { "id": "crack", "fg": 1275, "rotates": false, "multitile": false }, + { "id": "dayquil", "fg": 1279, "rotates": false }, + { "id": "eyedrops", "fg": 1260, "rotates": false }, + { "id": "flu_shot", "fg": 1259, "rotates": false, "multitile": false }, + { "id": "handrolled_cig", "fg": 776, "rotates": false, "multitile": false }, + { "id": "heroin", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "inhaler", "fg": 1265, "rotates": false, "multitile": false }, + { "id": "inhaler_sewergas", "fg": 1265, "rotates": false, "multitile": false }, + { "id": "inhaler_stimgas", "fg": 1265, "rotates": false, "multitile": false }, + { "id": "iodine", "fg": 1277, "rotates": false, "multitile": false }, + { "id": "joint", "fg": 776, "rotates": false, "multitile": false }, + { "id": "joint_lit", "fg": 777, "rotates": false, "multitile": false }, + { "id": "joint_roach", "fg": 778, "rotates": false, "multitile": false }, + { "id": "lsd", "fg": 1276, "rotates": false, "multitile": false }, + { "id": "meth", "fg": 356, "rotates": false, "multitile": false }, + { "id": "morphine", "fg": 356, "rotates": false, "multitile": false }, + { "id": "oxycodone", "fg": 1262, "rotates": false, "multitile": false }, + { "id": "oxygen", "fg": 1261, "rotates": false }, + { "id": "oxygen_tank", "fg": 1261, "rotates": false }, + { "id": "poppy_pain", "fg": 356, "rotates": false, "multitile": false }, + { "id": "poppy_sleep", "fg": 356, "rotates": false, "multitile": false }, + { "id": "pur_tablets", "fg": 1277, "rotates": false }, + { "id": "quikclot", "fg": 1275, "rotates": false, "multitile": false }, + { "id": "thorazine", "fg": 1269, "rotates": false, "multitile": false }, + { "id": "tobacco", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "tramadol", "fg": 1277, "rotates": false, "multitile": false }, + { "id": "vaccine_shot", "fg": 1259, "rotates": false, "multitile": false }, + { "id": "vitamins", "fg": 1281, "rotates": false }, + { "id": "weed", "fg": 1272, "rotates": false, "multitile": false }, + { "id": "xanax", "fg": 1267, "rotates": false, "multitile": false }, + { "id": "acorns", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "acorns", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "acorns_cooked", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "ant_egg", "fg": 1349, "rotates": false, "multitile": false }, + { "id": "apple", "fg": 1295, "rotates": false, "multitile": false }, + { "id": "apple_canned", "fg": 1305, "rotates": false, "multitile": false }, + { "id": "apple_vac", "fg": 1305, "rotates": false, "multitile": false }, + { "id": "apricot", "fg": 1397, "rotates": false, "multitile": false }, + { "id": "arm", "fg": 1347, "rotates": false, "multitile": false }, + { "id": "bacon", "fg": 1346, "rotates": false, "multitile": false }, + { "id": "banana", "fg": 1296, "rotates": false, "multitile": false }, + { "id": "barley", "fg": 1318, "rotates": false, "multitile": false }, + { "id": "basketball", "fg": 1386, "rotates": false, "multitile": false }, + { "id": "beansnrice", "fg": 356, "rotates": false, "multitile": false }, + { "id": "beans_cooked", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "beet_syrup", "fg": 940, "rotates": false, "multitile": false }, + { "id": "bfipowder", "fg": 356, "rotates": false, "multitile": false }, + { "id": "biscuit", "fg": 1375, "rotates": false, "multitile": false }, + { "id": "blackberries", "fg": 1314, "rotates": false, "multitile": false }, + { "id": "blt", "fg": 1352, "rotates": false, "multitile": false }, + { "id": "blueberries", "fg": 1314, "rotates": false, "multitile": false }, + { "id": "blueberries_cooked", "fg": 1398, "rotates": false, "multitile": false }, + { "id": "bobburger", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "boiled_egg", "fg": 1349, "rotates": false, "multitile": false }, + { "id": "bologna", "fg": 1337, "rotates": false, "multitile": false }, + { "id": "bone", "fg": 960, "rotates": false, "multitile": false }, + { "id": "bone_human", "fg": 960, "rotates": false, "multitile": false }, + { "id": "bone_tainted", "fg": 833, "rotates": false, "multitile": false }, + { "id": "brandy", "fg": 945, "rotates": false, "multitile": false }, + { "id": "bread", "fg": 1358, "rotates": false, "multitile": false }, + { "id": "brew_bum_wine", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "brew_fruit_wine", "fg": 945, "rotates": false, "multitile": false }, + { "id": "brioche", "fg": 1358, "rotates": false, "multitile": false }, + { "id": "broccoli", "fg": 1321, "rotates": false, "multitile": false }, + { "id": "brownie_weed", "fg": 1363, "rotates": false, "multitile": false }, + { "id": "buckwheat", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "buckwheat_cooked", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "caff_gum", "fg": 1348, "rotates": false, "multitile": false }, + { "id": "cake2", "fg": 1363, "rotates": false, "multitile": false }, + { "id": "cake3", "fg": 1365, "rotates": false, "multitile": false }, + { "id": "candy2", "fg": 1310, "rotates": false, "multitile": false }, + { "id": "candy3", "fg": 1310, "rotates": false, "multitile": false }, + { "id": "candycigarette", "fg": 1399, "rotates": false, "multitile": false }, + { "id": "candy", "fg": 1310, "rotates": false, "multitile": false }, + { "id": "can_beans", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "can_catfood", "fg": 1288, "rotates": false, "multitile": false }, + { "id": "can_cheese", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "can_chicken", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "can_chowder", "fg": 356, "rotates": false, "multitile": false }, + { "id": "can_clams", "fg": 356, "rotates": false, "multitile": false }, + { "id": "can_coconut", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "can_corn", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "can_herring", "fg": 916, "rotates": false, "multitile": false }, + { "id": "can_pineapple", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "can_salmon", "fg": 1288, "rotates": false, "multitile": false }, + { "id": "can_sardine", "fg": 916, "rotates": false, "multitile": false }, + { "id": "can_spam", "fg": 1288, "rotates": false, "multitile": false }, + { "id": "can_tomato", "fg": 1304, "rotates": false, "multitile": false }, + { "id": "can_tuna", "fg": 1288, "rotates": false, "multitile": false }, + { "id": "carrot", "fg": 1324, "rotates": false, "multitile": false }, + { "id": "catfood", "fg": 1288, "rotates": false, "multitile": false }, + { "id": "celery", "fg": 757, "rotates": false, "multitile": false }, + { "id": "cereal2", "fg": 1300, "rotates": false, "multitile": false }, + { "id": "cereal3", "fg": 1300, "rotates": false, "multitile": false }, + { "id": "cereal", "fg": 1300, "rotates": false, "multitile": false }, + { "id": "chaw", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "cheeseburgerhuman", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "cheeseburger", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "cheese", "fg": 1400, "rotates": false, "multitile": false }, + { "id": "cheese_fries", "fg": 1388, "rotates": false, "multitile": false }, + { "id": "chem_anfo", "fg": 1288, "rotates": false, "multitile": false }, + { "id": "chem_chromium_oxide", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "chem_hexamine", "fg": 1342, "rotates": false, "multitile": false }, + { "id": "chem_sulphur", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "cherries", "fg": 1381, "rotates": false, "multitile": false }, + { "id": "chilidogs", "fg": 1338, "rotates": false, "multitile": false }, + { "id": "chilidogs_human", "fg": 1338, "rotates": false, "multitile": false }, + { "id": "chili", "fg": 1373, "rotates": false, "multitile": false }, + { "id": "chili_human", "fg": 1373, "rotates": false, "multitile": false }, + { "id": "chilly-p", "fg": 1304, "rotates": false, "multitile": false }, + { "id": "chips2", "fg": 1299, "rotates": false, "multitile": false }, + { "id": "chips3", "fg": 1299, "rotates": false, "multitile": false }, + { "id": "chips", "fg": 1299, "rotates": false, "multitile": false }, + { "id": "chocolate", "fg": 1307, "rotates": false, "multitile": false }, + { "id": "choco_coffee_beans", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "choco_coffee_beans", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "chocpretzels", "fg": 1306, "rotates": false, "multitile": false }, + { "id": "choc_pancakes", "fg": 1366, "rotates": false, "multitile": false }, + { "id": "choc_waffles", "fg": 1368, "rotates": false, "multitile": false }, + { "id": "clay_lump", "fg": 1307, "rotates": false, "multitile": false }, + { "id": "coconut", "fg": 1386, "rotates": false, "multitile": false }, + { "id": "coffee_bean", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "coffee_raw", "fg": 1364, "rotates": false, "multitile": false }, + { "id": "cola_meth", "fg": 940, "rotates": false, "multitile": false }, + { "id": "con_milk", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "cooked_burrito", "fg": 1355, "rotates": false, "multitile": false }, + { "id": "cooked_dinner", "fg": 1308, "rotates": false, "multitile": false }, + { "id": "cookies", "fg": 1375, "rotates": false, "multitile": false }, + { "id": "cornbread", "fg": 1332, "rotates": false, "multitile": false }, + { "id": "corndogs_cooked", "fg": 1339, "rotates": false, "multitile": false }, + { "id": "corndogs_frozen", "fg": 1339, "rotates": false, "multitile": false }, + { "id": "cornmeal", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "corn", "fg": 1325, "rotates": false, "multitile": false }, + { "id": "cotton_ball", "fg": 767, "rotates": false, "multitile": false }, + { "id": "cotton_boll", "fg": 1392, "rotates": false, "multitile": false }, + { "id": "crackers", "fg": 1369, "rotates": false, "multitile": false }, + { "id": "cracklins", "fg": 1328, "rotates": false, "multitile": false }, + { "id": "cranberries", "fg": 1317, "bg": 1941, "rotates": false }, + { "id": "crispycran", "fg": 945, "rotates": false, "multitile": false }, + { "id": "cucumber", "fg": 1322, "rotates": false, "multitile": false }, + { "id": "currywurst", "fg": 1338, "rotates": false, "multitile": false }, + { "id": "curry_meat", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "curry_powder", "fg": 1304, "rotates": false, "multitile": false }, + { "id": "dahlia_baked", "fg": 763, "rotates": false, "multitile": false }, + { "id": "dahlia_root", "fg": 763, "rotates": false, "multitile": false }, + { "id": "dandelion_cooked", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "dandelion_fried", "fg": 1410, "rotates": false, "multitile": false }, + { "id": "datura_seed", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "datura_seed", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "deluxe_beansnrice", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "deluxe_beans", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "deluxe_eggs", "fg": 1300, "rotates": false, "multitile": false }, + { "id": "deluxe_rice", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "deluxe_veggy_beansnrice", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "deluxe_veggy_beans", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "deluxe_veggy_rice", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "diazepam", "fg": 1277, "rotates": false, "multitile": false }, + { "id": "disinfectant", "fg": 939, "rotates": false, "multitile": false }, + { "id": "dogbane", "fg": 1286, "rotates": false, "multitile": false }, + { "id": "dried_salad", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "drink_boozeberry", "fg": 1394, "rotates": false, "multitile": false }, + { "id": "drink_strawberry_surprise", "fg": 945, "rotates": false, "multitile": false }, + { "id": "dry_beans", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "dry_fish", "fg": 916, "rotates": false, "multitile": false }, + { "id": "dry_fruit", "fg": 1287, "rotates": false, "multitile": false }, + { "id": "dry_hflesh", "fg": 1304, "rotates": false, "multitile": false }, + { "id": "dry_meat", "fg": 1304, "rotates": false, "multitile": false }, + { "id": "dry_meat_tainted", "fg": 1287, "rotates": false, "multitile": false }, + { "id": "dry_mushroom", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "dry_rice", "fg": 356, "rotates": false, "multitile": false }, + { "id": "dry_veggy", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "dry_veggy_tainted", "fg": 1287, "rotates": false, "multitile": false }, + { "id": "egg_bird", "fg": 1356, "rotates": false, "multitile": false }, + { "id": "egg_reptile", "fg": 1349, "rotates": false, "multitile": false }, + { "id": "fat", "fg": 1346, "rotates": false, "multitile": false }, + { "id": "fat_tainted", "fg": 1300, "rotates": false, "multitile": false }, + { "id": "fchicken", "fg": 1336, "rotates": false, "multitile": false }, + { "id": "fertilizer_commercial", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "fetus", "fg": 1346, "rotates": false, "multitile": false }, + { "id": "fish", "fg": 1313, "rotates": false, "multitile": false }, + { "id": "fish_bait_bread", "fg": 1358, "rotates": false, "multitile": false }, + { "id": "fish_bait_fish", "fg": 1313, "rotates": false, "multitile": false }, + { "id": "fish_bait_meat", "fg": 1313, "rotates": false, "multitile": false }, + { "id": "fish_bait_veggy", "fg": 1330, "rotates": false, "multitile": false }, + { "id": "fish_canned", "fg": 1331, "rotates": false, "multitile": false }, + { "id": "fish_cooked", "fg": 1327, "rotates": false, "multitile": false }, + { "id": "fish_fried", "fg": 1332, "rotates": false, "multitile": false }, + { "id": "fish_pickled", "fg": 1327, "rotates": false, "multitile": false }, + { "id": "fish_sandwich", "fg": 1335, "rotates": false, "multitile": false }, + { "id": "fish_smoked", "fg": 1330, "rotates": false, "multitile": false }, + { "id": "fish_vac", "fg": 1327, "rotates": false, "multitile": false }, + { "id": "flour", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "fried_spam", "fg": 1313, "rotates": false, "multitile": false }, + { "id": "fries", "fg": 1388, "rotates": false, "multitile": false }, + { "id": "frozen_burrito", "fg": 1355, "rotates": false, "multitile": false }, + { "id": "frozen_dinner", "fg": 1326, "rotates": false, "multitile": false }, + { "id": "fruit_cooked", "fg": 1333, "rotates": false, "multitile": false }, + { "id": "fruit_leather", "fg": 1313, "rotates": false, "multitile": false }, + { "id": "fruit_pancakes", "fg": 1366, "rotates": false, "multitile": false }, + { "id": "fruit_waffles", "fg": 1367, "rotates": false, "multitile": false }, + { "id": "fruit_wine", "fg": 945, "rotates": false, "multitile": false }, + { "id": "fungal_seeds", "fg": 1378, "rotates": false, "multitile": false }, + { "id": "fungicide", "fg": 1258, "rotates": false, "multitile": false }, + { "id": "grahmcrackers", "fg": 1369, "rotates": false, "multitile": false }, + { "id": "granola", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "grapefruit", "fg": 1380, "rotates": false, "multitile": false }, + { "id": "grapes", "fg": 1420, "rotates": false, "multitile": false }, + { "id": "gummy_vitamins", "fg": 1310, "rotates": false, "multitile": false }, + { "id": "gum", "fg": 1263, "rotates": false, "multitile": false }, + { "id": "hamburger", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "hardtack", "fg": 1369, "rotates": false, "multitile": false }, + { "id": "hfleshbologna", "fg": 1337, "rotates": false, "multitile": false }, + { "id": "hflesh_vac", "fg": 1304, "rotates": false, "multitile": false }, + { "id": "hobo_helper", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "honeycomb", "fg": 1343, "rotates": false, "multitile": false }, + { "id": "honey_ant", "fg": 1380, "rotates": false, "multitile": false }, + { "id": "honey_bottled", "fg": 944, "rotates": false, "multitile": false }, + { "id": "hops", "fg": 757, "rotates": false, "multitile": false }, + { "id": "horseradish", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "hotdogs_cooked", "fg": 1338, "rotates": false, "multitile": false }, + { "id": "hotdogs_frozen", "fg": 1338, "rotates": false, "multitile": false }, + { "id": "human_canned", "fg": 1285, "rotates": false, "multitile": false }, + { "id": "human_cooked", "fg": 1291, "rotates": false, "multitile": false }, + { "id": "human_flesh", "fg": 1285, "rotates": false, "multitile": false }, + { "id": "human_smoked", "fg": 1308, "rotates": false, "multitile": false }, + { "id": "h_currywurst", "fg": 1338, "rotates": false, "multitile": false }, + { "id": "insta_salad", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "irradiated_apple", "fg": 1295, "rotates": false, "multitile": false }, + { "id": "irradiated_apricot", "fg": 1397, "rotates": false, "multitile": false }, + { "id": "irradiated_banana", "fg": 1296, "rotates": false, "multitile": false }, + { "id": "irradiated_blackberries", "fg": 1314, "rotates": false, "multitile": false }, + { "id": "irradiated_blueberries", "fg": 1314, "rotates": false, "multitile": false }, + { "id": "irradiated_broccoli", "fg": 1321, "rotates": false, "multitile": false }, + { "id": "irradiated_carrot", "fg": 1324, "rotates": false, "multitile": false }, + { "id": "irradiated_celery", "fg": 757, "rotates": false, "multitile": false }, + { "id": "irradiated_cherries", "fg": 1381, "rotates": false, "multitile": false }, + { "id": "irradiated_corn", "fg": 1325, "rotates": false, "multitile": false }, + { "id": "irradiated_cranberries", "fg": 1317, "bg": 1941, "rotates": false }, + { "id": "irradiated_cucumber", "fg": 1322, "rotates": false, "multitile": false }, + { "id": "irradiated_grapefruit", "fg": 1380, "rotates": false, "multitile": false }, + { "id": "irradiated_grapes", "fg": 1420, "rotates": false, "multitile": false }, + { "id": "irradiated_kiwi", "fg": 1356, "rotates": false, "multitile": false }, + { "id": "irradiated_lemon", "fg": 1298, "rotates": false, "multitile": false }, + { "id": "irradiated_lettuce", "fg": 1354, "rotates": false, "multitile": false }, + { "id": "irradiated_mango", "fg": 1393, "rotates": false, "multitile": false }, + { "id": "irradiated_melon", "fg": 1392, "rotates": false, "multitile": false }, + { "id": "irradiated_onion", "fg": 1323, "rotates": false, "multitile": false }, + { "id": "irradiated_orange", "fg": 1297, "rotates": false, "multitile": false }, + { "id": "irradiated_papaya", "fg": 1396, "rotates": false, "multitile": false }, + { "id": "irradiated_peach", "fg": 1387, "rotates": false, "multitile": false }, + { "id": "irradiated_pear", "fg": 1379, "rotates": false, "multitile": false }, + { "id": "irradiated_pineapple", "fg": 1385, "rotates": false, "multitile": false }, + { "id": "irradiated_plums", "fg": 1384, "rotates": false, "multitile": false }, + { "id": "irradiated_pomegranate", "fg": 1395, "rotates": false, "multitile": false }, + { "id": "irradiated_raspberries", "fg": 1381, "rotates": false, "multitile": false }, + { "id": "irradiated_rhubarb", "fg": 1419, "rotates": false, "multitile": false }, + { "id": "irradiated_strawberries", "fg": 1316, "rotates": false, "multitile": false }, + { "id": "irradiated_tomato", "fg": 1320, "rotates": false, "multitile": false }, + { "id": "irradiated_watermelon", "fg": 1391, "rotates": false, "multitile": false }, + { "id": "irradiated_zucchini", "fg": 1322, "rotates": false, "multitile": false }, + { "id": "jam_blueberries", "fg": 1398, "rotates": false, "multitile": false }, + { "id": "jam_fruit", "fg": 1333, "rotates": false, "multitile": false }, + { "id": "jam_strawberries", "fg": 1333, "rotates": false, "multitile": false }, + { "id": "jerky", "fg": 1308, "rotates": false, "multitile": false }, + { "id": "jerky_human", "fg": 1308, "rotates": false, "multitile": false }, + { "id": "jihelucake", "fg": 1365, "rotates": false, "multitile": false }, + { "id": "johnnycake", "fg": 1332, "rotates": false, "multitile": false }, + { "id": "juice_pulp", "fg": 1288, "rotates": false, "multitile": false }, + { "id": "kernels", "fg": 1302, "rotates": false, "multitile": false }, + { "id": "ketchup", "fg": 1333, "rotates": false, "multitile": false }, + { "id": "kiwi", "fg": 1356, "rotates": false, "multitile": false }, + { "id": "lard", "fg": 1348, "rotates": false, "multitile": false }, + { "id": "lasagne", "fg": 1376, "rotates": false, "multitile": false }, + { "id": "lasagne_cooked", "fg": 980, "rotates": false, "multitile": false }, + { "id": "lasagne_raw", "fg": 980, "rotates": false, "multitile": false }, + { "id": "leg", "fg": 1347, "rotates": false, "multitile": false }, + { "id": "lemonade", "fg": 1403, "rotates": false }, + { "id": "lemon", "fg": 1298, "rotates": false, "multitile": false }, + { "id": "lettuce", "fg": 1354, "rotates": false, "multitile": false }, + { "id": "luigilasagne", "fg": 1376, "rotates": false, "multitile": false }, + { "id": "lunchmeat", "fg": 1313, "rotates": false, "multitile": false }, + { "id": "lutefisk", "fg": 1331, "rotates": false, "multitile": false }, + { "id": "macaroni_cooked", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "macaroni_helper", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "macaroni_raw", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "maltballs", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "maltballs", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "mango", "fg": 1393, "rotates": false, "multitile": false }, + { "id": "mannwurstgravy", "fg": 1340, "rotates": false, "multitile": false }, + { "id": "mannwurst", "fg": 1338, "rotates": false, "multitile": false }, + { "id": "manwich", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "marloss_berry", "fg": 1350, "rotates": false, "multitile": false }, + { "id": "marloss_gel", "fg": 944, "rotates": false, "multitile": false }, + { "id": "marloss_seed", "fg": 1411, "rotates": false, "multitile": false }, + { "id": "marshmallow", "fg": 1342, "rotates": false, "multitile": false }, + { "id": "material_aluminium_ingot", "fg": 839, "rotates": false, "multitile": false }, + { "id": "material_quicklime", "fg": 356, "rotates": false, "multitile": false }, + { "id": "material_sand", "fg": 916, "rotates": false, "multitile": false }, + { "id": "mayonnaise", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "meal_bone", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "meal_chitin_piece", "fg": 355, "rotates": false, "multitile": false }, + { "id": "meat", "fg": 1285, "rotates": false, "multitile": false }, + { "id": "meat_aspic", "fg": 1313, "rotates": false, "multitile": false }, + { "id": "meat_canned", "fg": 1285, "rotates": false, "multitile": false }, + { "id": "meat_cooked", "fg": 1291, "rotates": false, "multitile": false }, + { "id": "meat_smoked", "fg": 1308, "rotates": false, "multitile": false }, + { "id": "meat_tainted", "fg": 1289, "rotates": false, "multitile": false }, + { "id": "meat_vac", "fg": 1304, "rotates": false, "multitile": false }, + { "id": "melon", "fg": 1392, "rotates": false, "multitile": false }, + { "id": "milk_coffee", "fg": 940, "rotates": false, "multitile": false }, + { "id": "milk_powder", "fg": 356, "rotates": false, "multitile": false }, + { "id": "milk_tea", "fg": 940, "rotates": false, "multitile": false }, + { "id": "mintpatties", "fg": 1386, "rotates": false, "multitile": false }, + { "id": "morel_cooked", "fg": 1311, "rotates": false, "multitile": false }, + { "id": "morel_fried", "fg": 1311, "rotates": false, "multitile": false }, + { "id": "mre_beef", "fg": 1308, "rotates": false, "multitile": false }, + { "id": "mre_beef_box", "fg": 1362, "rotates": false, "multitile": false }, + { "id": "mre_chicken", "fg": 1326, "rotates": false, "multitile": false }, + { "id": "mre_chicken_box", "fg": 1362, "rotates": false, "multitile": false }, + { "id": "mre_hotdogs", "fg": 1328, "rotates": false, "multitile": false }, + { "id": "mre_hotdog_box", "fg": 1362, "rotates": false, "multitile": false }, + { "id": "mre_ravioli", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "mre_ravioli_box", "fg": 1362, "rotates": false, "multitile": false }, + { "id": "mre_veggy", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "mre_veggy_box", "fg": 1362, "rotates": false, "multitile": false }, + { "id": "mushroom", "fg": 1311, "rotates": false, "multitile": false }, + { "id": "mushroom_magic", "fg": 1311, "rotates": false, "multitile": false }, + { "id": "mushroom_morel", "fg": 1311, "rotates": false, "multitile": false }, + { "id": "mushroom_poison", "fg": 1311, "rotates": false, "multitile": false }, + { "id": "mustard", "fg": 944, "rotates": false, "multitile": false }, + { "id": "mycus_fruit", "fg": 1413, "rotates": false, "multitile": false }, + { "id": "nachosc", "fg": 1341, "rotates": false, "multitile": false }, + { "id": "nachoshc", "fg": 1341, "rotates": false, "multitile": false }, + { "id": "nachoshf", "fg": 1341, "rotates": false, "multitile": false }, + { "id": "nachosmc", "fg": 1341, "rotates": false, "multitile": false }, + { "id": "nachosm", "fg": 1341, "rotates": false, "multitile": false }, + { "id": "nachos", "fg": 1341, "rotates": false, "multitile": false }, + { "id": "neccowafers", "fg": 1310, "rotates": false, "multitile": false }, + { "id": "noodles_fast", "fg": 1332, "rotates": false, "multitile": false }, + { "id": "nyquil", "fg": 1280, "rotates": false }, + { "id": "oatmeal", "fg": 1275, "rotates": false, "multitile": false }, + { "id": "oatmeal_cooked", "fg": 1301, "rotates": false, "multitile": false }, + { "id": "oatmeal_deluxe", "fg": 1301, "rotates": false, "multitile": false }, + { "id": "onigiri", "fg": 1342, "rotates": false, "multitile": false }, + { "id": "onion", "fg": 1323, "rotates": false, "multitile": false }, + { "id": "onion_rings", "fg": 1389, "rotates": false, "multitile": false }, + { "id": "orange", "fg": 1297, "rotates": false, "multitile": false }, + { "id": "pancakes", "fg": 1366, "rotates": false, "multitile": false }, + { "id": "papaya", "fg": 1396, "rotates": false, "multitile": false }, + { "id": "peach", "fg": 1387, "rotates": false, "multitile": false }, + { "id": "peanutbutter", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "pear", "fg": 1379, "rotates": false, "multitile": false }, + { "id": "pelmeni", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "pemmican", "fg": 1330, "rotates": false, "multitile": false }, + { "id": "pickle", "fg": 1322, "rotates": false, "multitile": false }, + { "id": "pie", "fg": 1359, "rotates": false, "multitile": false }, + { "id": "pie_human", "fg": 1359, "rotates": false, "multitile": false }, + { "id": "pie_meat", "fg": 1359, "rotates": false, "multitile": false }, + { "id": "pills_sleep", "fg": 1262, "rotates": false, "multitile": false }, + { "id": "pineapple", "fg": 1385, "rotates": false, "multitile": false }, + { "id": "pine_bough", "fg": 1272, "rotates": false, "multitile": false }, + { "id": "pine_nuts", "fg": 1275, "rotates": false, "multitile": false }, + { "id": "pizza_human", "fg": 1361, "rotates": false, "multitile": false }, + { "id": "pizza_meat", "fg": 1361, "rotates": false, "multitile": false }, + { "id": "pizza_veggy", "fg": 1360, "rotates": false, "multitile": false }, + { "id": "plant_sac", "fg": 1284, "rotates": false, "multitile": false }, + { "id": "plums", "fg": 1384, "rotates": false, "multitile": false }, + { "id": "pomegranate", "fg": 1395, "rotates": false, "multitile": false }, + { "id": "popcorn2", "fg": 1303, "rotates": false, "multitile": false }, + { "id": "popcorn3", "fg": 1303, "rotates": false, "multitile": false }, + { "id": "popcorn", "fg": 1303, "rotates": false, "multitile": false }, + { "id": "porkstick", "fg": 1328, "rotates": false, "multitile": false }, + { "id": "pork_beans", "fg": 1383, "rotates": false, "multitile": false }, + { "id": "potato_baked", "fg": 1357, "rotates": false, "multitile": false }, + { "id": "potato_irradiated", "fg": 1356, "rotates": false, "multitile": false }, + { "id": "potato_raw", "fg": 1356, "rotates": false, "multitile": false }, + { "id": "powder_candy", "fg": 1353, "rotates": false, "multitile": false }, + { "id": "powder_eggs", "fg": 1382, "rotates": false, "multitile": false }, + { "id": "pretzels", "fg": 1306, "rotates": false, "multitile": false }, + { "id": "protein_drink", "fg": 1309, "rotates": false, "multitile": false }, + { "id": "protein_powder", "fg": 1275, "rotates": false, "multitile": false }, + { "id": "prozac", "fg": 1270, "rotates": false, "multitile": false }, + { "id": "pudding", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "raspberries", "fg": 1381, "rotates": false, "multitile": false }, + { "id": "ravioli", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "raw_beans", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "raw_dandelion", "fg": 1410, "rotates": false, "multitile": false }, + { "id": "rehydrated_fish", "fg": 356, "rotates": false, "multitile": false }, + { "id": "rehydrated_fruit", "fg": 1288, "rotates": false, "multitile": false }, + { "id": "rehydrated_hflesh", "fg": 1305, "rotates": false, "multitile": false }, + { "id": "rehydrated_meat", "fg": 1305, "rotates": false, "multitile": false }, + { "id": "rehydrated_veggy", "fg": 1294, "rotates": false, "multitile": false }, + { "id": "rehydrated_veggy", "fg": 1294, "rotates": false, "multitile": false }, + { "id": "rhubarb", "fg": 1419, "rotates": false, "multitile": false }, + { "id": "rice_cooked", "fg": 356, "rotates": false, "multitile": false }, + { "id": "roasted_coffee_bean", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "royal_beef", "fg": 1291, "rotates": false, "multitile": false }, + { "id": "royal_jelly", "fg": 1345, "rotates": false, "multitile": false }, + { "id": "salted_fish", "fg": 1331, "rotates": false, "multitile": false }, + { "id": "salt", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "sandwich_cheese", "fg": 1335, "rotates": false, "multitile": false }, + { "id": "sandwich_cheese_grilled", "fg": 1335, "rotates": false, "multitile": false }, + { "id": "sandwich_human", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "sandwich_jam", "fg": 1352, "rotates": false, "multitile": false }, + { "id": "sandwich_pbh", "fg": 1335, "rotates": false, "multitile": false }, + { "id": "sandwich_pbj", "fg": 1352, "rotates": false, "multitile": false }, + { "id": "sandwich_pb", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "sandwich_sauce", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "sashimi", "fg": 1313, "rotates": false, "multitile": false }, + { "id": "sauce_pesto", "fg": 1334, "rotates": false, "multitile": false }, + { "id": "sauce_red", "fg": 1333, "rotates": false, "multitile": false }, + { "id": "sausagegravy", "fg": 1340, "rotates": false, "multitile": false }, + { "id": "sausage", "fg": 1338, "rotates": false, "multitile": false }, + { "id": "scrambled_eggs", "fg": 1300, "rotates": false, "multitile": false }, + { "id": "seasoning_italian", "fg": 1334, "rotates": false, "multitile": false }, + { "id": "seasoning_salt", "fg": 1275, "rotates": false, "multitile": false }, + { "id": "seed_barley", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "seed_blueberries", "fg": 1315, "rotates": false, "multitile": false }, + { "id": "seed_broccoli", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "seed_carrot", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "seed_corn", "fg": 1302, "rotates": false, "multitile": false }, + { "id": "seed_cotton_boll", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "seed_dogbane", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "seed_hops", "fg": 763, "rotates": false, "multitile": false }, + { "id": "seed_lettuce", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "seed_onion", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "seed_strawberries", "fg": 1317, "rotates": false, "multitile": false }, + { "id": "seed_sugar_beet", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "seed_tomato", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "seed_weed", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "seed_wheat", "fg": 1319, "rotates": false, "multitile": false }, + { "id": "slime_scrap", "fg": 943, "rotates": false, "multitile": false }, + { "id": "sloppyjoe", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "smores", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "smoxygen_tank", "fg": 1261, "rotates": false }, + { "id": "soup_chicken", "fg": 1309, "rotates": false, "multitile": false }, + { "id": "soup_dumplings", "fg": 1309, "rotates": false, "multitile": false }, + { "id": "soup_fish", "fg": 1309, "rotates": false, "multitile": false }, + { "id": "soup_mushroom", "fg": 1309, "rotates": false, "multitile": false }, + { "id": "soup_tomato", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "soysauce", "fg": 940, "rotates": false, "multitile": false }, + { "id": "spaghetti_bolognese", "fg": 1373, "rotates": false, "multitile": false }, + { "id": "spaghetti_cooked", "fg": 1329, "rotates": false, "multitile": false }, + { "id": "spaghetti_human", "fg": 1373, "rotates": false, "multitile": false }, + { "id": "spaghetti_pesto", "fg": 1374, "rotates": false, "multitile": false }, + { "id": "spaghetti_raw", "fg": 1328, "rotates": false, "multitile": false }, + { "id": "spider_egg", "fg": 767, "rotates": false, "multitile": false }, + { "id": "strawberries", "fg": 1316, "rotates": false, "multitile": false }, + { "id": "strawberries_cooked", "fg": 1333, "rotates": false, "multitile": false }, + { "id": "sugar", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "sugar_beet", "fg": 765, "rotates": false, "multitile": false }, + { "id": "sugar_fried", "fg": 1364, "rotates": false, "multitile": false }, + { "id": "sushi_fishroll", "fg": 1412, "rotates": false, "multitile": false }, + { "id": "sushi_meatroll", "fg": 1412, "rotates": false, "multitile": false }, + { "id": "sushi_rice", "fg": 356, "rotates": false, "multitile": false }, + { "id": "sushi_veggyroll", "fg": 1412, "rotates": false, "multitile": false }, + { "id": "taco", "fg": 1377, "rotates": false, "multitile": false }, + { "id": "taint_tornado", "fg": 1417, "rotates": false, "multitile": false }, + { "id": "tallow", "fg": 1348, "rotates": false, "multitile": false }, + { "id": "tallow_tainted", "fg": 839, "rotates": false, "multitile": false }, + { "id": "tea_bark", "fg": 940, "rotates": false, "multitile": false }, + { "id": "tea_raw", "fg": 1334, "rotates": false, "multitile": false }, + { "id": "tiotaco", "fg": 1377, "rotates": false, "multitile": false }, + { "id": "toastem2", "fg": 1358, "rotates": false, "multitile": false }, + { "id": "toastem3", "fg": 1358, "rotates": false, "multitile": false }, + { "id": "toastem", "fg": 1358, "rotates": false, "multitile": false }, + { "id": "toasterpastryfrozen", "fg": 1358, "rotates": false, "multitile": false }, + { "id": "toasterpastry", "fg": 1330, "rotates": false, "multitile": false }, + { "id": "tomato", "fg": 1320, "rotates": false, "multitile": false }, + { "id": "tool_rocket_candy", "fg": 1391, "rotates": false, "multitile": false }, + { "id": "tool_rocket_candy_act", "fg": 1391, "rotates": false, "multitile": false }, + { "id": "unfinished_charcoal", "fg": 1330, "rotates": false, "multitile": false }, + { "id": "veggy", "fg": 1286, "rotates": false, "multitile": false }, + { "id": "veggy_canned", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "veggy_cooked", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "veggy_cooked", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "veggy_salad", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "veggy_tainted", "fg": 1290, "rotates": false, "multitile": false }, + { "id": "veggy_vac", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "veggy_wild", "fg": 1286, "rotates": false, "multitile": false }, + { "id": "veggy_wild_cooked", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "veggy_wild_cooked", "fg": 1293, "rotates": false, "multitile": false }, + { "id": "vibrator", "fg": 1340, "rotates": false, "multitile": false }, + { "id": "waffles", "fg": 1367, "rotates": false, "multitile": false }, + { "id": "wastebread", "fg": 1358, "rotates": false, "multitile": false }, + { "id": "watermelon", "fg": 1391, "rotates": false, "multitile": false }, + { "id": "wheat", "fg": 1318, "rotates": false, "multitile": false }, + { "id": "wild_herbs", "fg": 1292, "rotates": false, "multitile": false }, + { "id": "yeast", "fg": 356, "rotates": false, "multitile": false }, + { "id": "yoghurt", "fg": 1351, "rotates": false, "multitile": false }, + { "id": "zucchini", "fg": 1322, "rotates": false, "multitile": false }, { "id": "vp_aisle_horizontal", - "fg": 1472, + "fg": 1480, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_aisle_horizontal", - "fg": 1472, + "fg": 1480, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_aisle_lights", - "fg": 1448, + "fg": 1456, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_aisle_vertical", - "fg": 1490, + "fg": 1498, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_aisle_vertical", - "fg": 1490, + "fg": 1498, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_alternator_car", - "fg": 1424, + "fg": 1432, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_alternator_motorbike", - "fg": 1424, + "fg": 1432, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_alternator_truck", - "fg": 1424, + "fg": 1432, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_basketlg", - "fg": 1469, + "fg": 1477, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_basketlg_folding", - "fg": 1469, + "fg": 1477, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_basketsm", - "fg": 1469, + "fg": 1477, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_battery_car", - "fg": 1499, + "fg": 1507, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_battery_motorbike", - "fg": 1499, + "fg": 1507, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_battery_truck", - "fg": 1499, + "fg": 1507, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_bed", - "fg": 1454, + "fg": 1462, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_blade_horizontal", - "fg": 1459, + "fg": 1467, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_blade_vertical", - "fg": 2128, + "fg": 2138, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_board_horizontal", - "fg": 1484, + "fg": 1492, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_board_ne", - "fg": 1485, + "fg": 1493, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_board_nw", - "fg": 1487, + "fg": 1495, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_board_se", - "fg": 1486, + "fg": 1494, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_board_sw", - "fg": 1488, + "fg": 1496, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_board_vertical", - "fg": 1483, + "fg": 1491, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_box", - "fg": 1469, + "fg": 1477, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_cam_control", - "fg": 1442, + "fg": 1450, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_cargo_space", - "fg": 1481, + "fg": 1489, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_chemlab", - "fg": 915, + "fg": 923, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, { "id": "vp_controls", - "fg": 881, + "fg": 889, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_craft_rig", - "fg": 1478, + "fg": 1486, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, - { "id": "vp_diesel_engine_i6", "fg": 873, "rotates": true }, - { "id": "vp_diesel_engine_v6", "fg": 873, "rotates": true }, - { "id": "vp_diesel_engine_v8", "fg": 873, "rotates": true }, + { "id": "vp_diesel_engine_i6", "fg": 881, "rotates": true }, + { "id": "vp_diesel_engine_v6", "fg": 881, "rotates": true }, + { "id": "vp_diesel_engine_v8", "fg": 881, "rotates": true }, { "id": "vp_diesel_tank", - "fg": 1435, + "fg": 1443, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_diesel_tank_little", - "fg": 1435, + "fg": 1443, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_diesel_tank_small", - "fg": 1435, + "fg": 1443, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_door", - "fg": 1456, + "fg": 1464, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1457 }, { "id": "broken", "fg": 1470 } ] + "additional_tiles": [ { "id": "open", "fg": 1465 }, { "id": "broken", "fg": 1478 } ] }, { "id": "vp_door_internal", - "fg": 1456, + "fg": 1464, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1457 }, { "id": "broken", "fg": 1470 } ] + "additional_tiles": [ { "id": "open", "fg": 1465 }, { "id": "broken", "fg": 1478 } ] }, { "id": "vp_door_motor", - "fg": 1446, + "fg": 1454, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_door_opaque", - "fg": 1456, + "fg": 1464, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1457 }, { "id": "broken", "fg": 1470 } ] + "additional_tiles": [ { "id": "open", "fg": 1465 }, { "id": "broken", "fg": 1478 } ] }, { "id": "vp_door_shutter", - "fg": 1471, + "fg": 1479, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1474 }, { "id": "broken", "fg": 1480 } ] + "additional_tiles": [ { "id": "open", "fg": 1482 }, { "id": "broken", "fg": 1488 } ] }, { "id": "vp_door_sliding", - "fg": 1471, + "fg": 1479, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1474 }, { "id": "broken", "fg": 1480 } ] + "additional_tiles": [ { "id": "open", "fg": 1482 }, { "id": "broken", "fg": 1488 } ] }, { "id": "vp_door_trunk", - "fg": 1471, + "fg": 1479, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1474 }, { "id": "broken", "fg": 1480 } ] + "additional_tiles": [ { "id": "open", "fg": 1482 }, { "id": "broken", "fg": 1488 } ] }, { "id": "vp_door_wood", - "fg": 1437, + "fg": 1445, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1438 }, { "id": "broken", "fg": 1439 } ] + "additional_tiles": [ { "id": "open", "fg": 1446 }, { "id": "broken", "fg": 1447 } ] }, { "id": "vp_drive_by_wire_controls", - "fg": 1443, + "fg": 1451, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, - { "id": "vp_engine_1cyl", "fg": 873, "rotates": true }, - { "id": "vp_engine_1cyl_small", "fg": 873, "rotates": true }, - { "id": "vp_engine_electric", "fg": 873, "rotates": true }, - { "id": "vp_engine_electric_large", "fg": 873, "rotates": true }, - { "id": "vp_engine_electric_small", "fg": 873, "rotates": true }, + { "id": "vp_engine_1cyl", "fg": 881, "rotates": true }, + { "id": "vp_engine_1cyl_small", "fg": 881, "rotates": true }, + { "id": "vp_engine_electric", "fg": 881, "rotates": true }, + { "id": "vp_engine_electric_large", "fg": 881, "rotates": true }, + { "id": "vp_engine_electric_small", "fg": 881, "rotates": true }, { "id": "vp_engine_foot_crank", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_engine_gas_1cyl", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_engine_gas_i4", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_engine_gas_v2", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_engine_gas_v6", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_engine_gas_v8", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, - { "id": "vp_engine_inline4", "fg": 873, "rotates": true }, + { "id": "vp_engine_inline4", "fg": 881, "rotates": true }, { "id": "vp_engine_motor", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_engine_motor_large", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_engine_plasma", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, - { "id": "vp_engine_v12", "fg": 873, "rotates": true }, - { "id": "vp_engine_v6", "fg": 873, "rotates": true }, - { "id": "vp_engine_v8", "fg": 873, "rotates": true }, - { "id": "vp_engine_vtwin", "fg": 873, "rotates": true }, + { "id": "vp_engine_v12", "fg": 881, "rotates": true }, + { "id": "vp_engine_v6", "fg": 881, "rotates": true }, + { "id": "vp_engine_v8", "fg": 881, "rotates": true }, + { "id": "vp_engine_vtwin", "fg": 881, "rotates": true }, { "id": "vp_external_diesel_tank", - "fg": 1436, + "fg": 1444, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_external_gas_tank", - "fg": 1529, + "fg": 1537, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_flamethrower", - "fg": 1508, + "fg": 1516, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_floodlight", - "fg": 1510, + "fg": 1518, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_folding_frame", - "fg": 1515, + "fg": 1523, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_folding_seat", - "fg": 1482, + "fg": 1490, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_foot_pedals", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_frame_cover", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_cross", - "fg": 1489, + "fg": 1497, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, - { "id": "vp_frame_handle", "fg": 1468, "rotates": true }, + { "id": "vp_frame_handle", "fg": 1476, "rotates": true }, { "id": "vp_frame_horizontal", - "fg": 1496, + "fg": 1504, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_horizontal_2", - "fg": 1496, + "fg": 1504, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_ne", - "fg": 1495, + "fg": 1503, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_nw", - "fg": 1495, + "fg": 1503, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_se", - "fg": 1495, + "fg": 1503, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_sw", - "fg": 1495, + "fg": 1503, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_vertical", - "fg": 1495, + "fg": 1503, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_vertical_2", - "fg": 1495, + "fg": 1503, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_frame_wood_cover", - "fg": 1417, + "fg": 1425, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_cross", - "fg": 1416, + "fg": 1424, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_handle", - "fg": 1417, + "fg": 1425, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_horizontal", - "fg": 1415, + "fg": 1423, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_horizontal_2", - "fg": 1415, + "fg": 1423, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_cover", - "fg": 1417, + "fg": 1425, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_cross", - "fg": 1416, + "fg": 1424, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_handle", - "fg": 1417, + "fg": 1425, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_horizontal", - "fg": 1415, + "fg": 1423, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_horizontal_2", - "fg": 1415, + "fg": 1423, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_ne", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_nw", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_se", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_sw", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_vertical", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_light_vertical_2", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_ne", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_nw", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_se", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_sw", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_vertical", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_frame_wood_vertical_2", - "fg": 1414, + "fg": 1422, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_fuel_tank_batt", - "fg": 1499, + "fg": 1507, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_fuel_tank_gas", - "fg": 1498, + "fg": 1506, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_fuel_tank_hydrogen", - "fg": 1501, + "fg": 1509, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_fuel_tank_plut", - "fg": 1500, + "fg": 1508, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_fuel_tank_water", - "fg": 1502, + "fg": 1510, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_fusion_gun", - "fg": 1511, + "fg": 1519, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1450 } ] + "additional_tiles": [ { "id": "broken", "fg": 1458 } ] }, { "id": "vp_gas_tank", - "fg": 1498, + "fg": 1506, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_gas_tank_little", - "fg": 1498, + "fg": 1506, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_gas_tank_small", - "fg": 1498, + "fg": 1506, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_halfboard_cover", - "fg": 1468, + "fg": 1476, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_cross", - "fg": 1503, + "fg": 1511, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_horizontal", - "fg": 1484, + "fg": 1492, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_horizontal_2", - "fg": 1484, + "fg": 1492, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_ne", - "fg": 1485, + "fg": 1493, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_nw", - "fg": 1487, + "fg": 1495, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_se", - "fg": 1486, + "fg": 1494, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_sw", - "fg": 1488, + "fg": 1496, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_vertical", - "fg": 1483, + "fg": 1491, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_halfboard_vertical_2", - "fg": 1483, + "fg": 1491, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_hand_rims", - "fg": 783, + "fg": 791, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, - { "id": "vp_hard_plate", "fg": 1494, "rotates": true }, + { "id": "vp_hard_plate", "fg": 1502, "rotates": true }, { "id": "vp_hatch", - "fg": 1471, + "fg": 1479, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1474 }, { "id": "broken", "fg": 1480 } ] + "additional_tiles": [ { "id": "open", "fg": 1482 }, { "id": "broken", "fg": 1488 } ] }, { "id": "vp_hdboard_horizontal", - "fg": 1522, + "fg": 1530, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdboard_ne", - "fg": 1523, + "fg": 1531, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdboard_nw", - "fg": 1525, + "fg": 1533, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdboard_se", - "fg": 1524, + "fg": 1532, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdboard_sw", - "fg": 1526, + "fg": 1534, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdboard_vertical", - "fg": 1521, + "fg": 1529, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_cover", - "fg": 1520, + "fg": 1528, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_cross", - "fg": 1518, + "fg": 1526, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_horizontal", - "fg": 1517, + "fg": 1525, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_horizontal_2", - "fg": 1517, + "fg": 1525, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_ne", - "fg": 1516, + "fg": 1524, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_nw", - "fg": 1516, + "fg": 1524, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_se", - "fg": 1516, + "fg": 1524, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_sw", - "fg": 1516, + "fg": 1524, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_vertical", - "fg": 1516, + "fg": 1524, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdframe_vertical_2", - "fg": 1516, + "fg": 1524, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_hdhatch", - "fg": 1426, + "fg": 1434, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "open", "fg": 1427 }, { "id": "broken", "fg": 1428 } ] + "additional_tiles": [ { "id": "open", "fg": 1435 }, { "id": "broken", "fg": 1436 } ] }, { "id": "vp_hdroof", - "fg": 1425, + "fg": 1433, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_headlight", - "fg": 1510, + "fg": 1518, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_headlight_reinforced", - "fg": 916, + "fg": 924, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_head_light", - "fg": 1510, + "fg": 1518, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_horn_bicycle", - "fg": 1513, + "fg": 1521, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_horn_big", - "fg": 1512, + "fg": 1520, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_horn_car", - "fg": 1512, + "fg": 1520, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_hydrogen_tank", - "fg": 1501, + "fg": 1509, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_jumper_cable", - "fg": 1433, + "fg": 1441, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_jumper_cable_heavy", - "fg": 1433, + "fg": 1441, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_kitchen_unit", - "fg": 865, + "fg": 873, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, { "id": "vp_laser_gun", - "fg": 1511, + "fg": 1519, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1450 } ] + "additional_tiles": [ { "id": "broken", "fg": 1458 } ] }, { "id": "vp_light_blue", - "fg": 872, + "fg": 880, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_light_red", - "fg": 871, + "fg": 879, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_lit_aisle_horizontal", - "fg": 1447, + "fg": 1455, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_lit_aisle_horizontal", - "fg": 1447, + "fg": 1455, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_lit_aisle_vertical", - "fg": 1448, + "fg": 1456, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_lit_aisle_vertical", - "fg": 1448, + "fg": 1456, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_m249", - "fg": 1507, + "fg": 1515, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1451 } ] + "additional_tiles": [ { "id": "broken", "fg": 1459 } ] }, { "id": "vp_medium_storage_battery", - "fg": 1499, + "fg": 1507, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_metal_wheel", - "fg": 1465, + "fg": 1473, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_minifridge", - "fg": 866, + "fg": 874, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, { "id": "vp_minireactor", - "fg": 1500, + "fg": 1508, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_mounted_browning", - "fg": 1533, + "fg": 1541, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_mounted_mk19", - "fg": 1533, + "fg": 1541, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1519 } ] + "additional_tiles": [ { "id": "broken", "fg": 1527 } ] }, { "id": "vp_mounted_rm298", - "fg": 1449, + "fg": 1457, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_mounted_rm614", - "fg": 1449, + "fg": 1457, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_muffler", - "fg": 1506, + "fg": 1514, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_muffler", - "fg": 883, + "fg": 891, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_omnicam", - "fg": 1444, + "fg": 1452, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_plasmagun", - "fg": 1509, + "fg": 1517, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1451 } ] + "additional_tiles": [ { "id": "broken", "fg": 1459 } ] }, { "id": "vp_plasma_gun", - "fg": 1509, + "fg": 1517, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1451 } ] + "additional_tiles": [ { "id": "broken", "fg": 1459 } ] }, - { "id": "vp_plating_bone", "fg": 1440, "rotates": true }, - { "id": "vp_plating_chitin", "fg": 1491, "rotates": true }, - { "id": "vp_plating_hard", "fg": 1494, "rotates": true }, - { "id": "vp_plating_military", "fg": 1528, "rotates": true }, - { "id": "vp_plating_spiked", "fg": 1493, "rotates": true }, - { "id": "vp_plating_steel", "fg": 1491, "rotates": true }, - { "id": "vp_plating_superalloy", "fg": 1492, "rotates": true }, - { "id": "vp_plating_wood", "fg": 1527, "rotates": true }, + { "id": "vp_plating_bone", "fg": 1448, "rotates": true }, + { "id": "vp_plating_chitin", "fg": 1499, "rotates": true }, + { "id": "vp_plating_hard", "fg": 1502, "rotates": true }, + { "id": "vp_plating_military", "fg": 1536, "rotates": true }, + { "id": "vp_plating_spiked", "fg": 1501, "rotates": true }, + { "id": "vp_plating_steel", "fg": 1499, "rotates": true }, + { "id": "vp_plating_superalloy", "fg": 1500, "rotates": true }, + { "id": "vp_plating_wood", "fg": 1535, "rotates": true }, { "id": "vp_recharge_station", - "fg": 917, + "fg": 925, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, { "id": "vp_reclining_seat", - "fg": 1482, + "fg": 1490, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_reinforced_solar_panel", - "fg": 877, + "fg": 885, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1477 } ] + "additional_tiles": [ { "id": "broken", "fg": 1485 } ] }, { "id": "vp_reinforced_solar_panel_v2", - "fg": 877, + "fg": 885, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1477 } ] + "additional_tiles": [ { "id": "broken", "fg": 1485 } ] }, { "id": "vp_reinforced_windshield", - "fg": 1463, + "fg": 1471, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1462 } ] + "additional_tiles": [ { "id": "broken", "fg": 1470 } ] }, { "id": "vp_robot_controls", - "fg": 1445, + "fg": 1453, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_roller_drum", - "fg": 1432, + "fg": 1440, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_roof", - "fg": 1455, + "fg": 1463, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_roof_cloth", - "fg": 1455, + "fg": 1463, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_roof_wood", - "fg": 1455, + "fg": 1463, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_saddle", - "fg": 1482, + "fg": 1490, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_seatbelt", - "fg": 883, + "fg": 891, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 882 } ] + "additional_tiles": [ { "id": "broken", "fg": 890 } ] }, { "id": "vp_seatbelt_heavyduty", - "fg": 1530, + "fg": 1538, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 882 } ] + "additional_tiles": [ { "id": "broken", "fg": 890 } ] }, { "id": "vp_seat", - "fg": 1482, + "fg": 1490, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_seat_wood", - "fg": 1441, + "fg": 1449, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_small_storage_battery", - "fg": 1499, + "fg": 1507, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_solar_panel", - "fg": 876, + "fg": 884, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1476 } ] + "additional_tiles": [ { "id": "broken", "fg": 1484 } ] }, { "id": "vp_solar_panel_v2", - "fg": 876, + "fg": 884, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1476 } ] + "additional_tiles": [ { "id": "broken", "fg": 1484 } ] }, { "id": "vp_solar_panel_v3", - "fg": 876, + "fg": 884, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1476 } ] + "additional_tiles": [ { "id": "broken", "fg": 1484 } ] }, - { "id": "vp_spiked_plate", "fg": 1493, "rotates": true }, + { "id": "vp_spiked_plate", "fg": 1501, "rotates": true }, { "id": "vp_spike", - "fg": 1461, + "fg": 1469, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_spike_horizontal", - "fg": 1460, + "fg": 1468, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_spike_vertical", - "fg": 1461, + "fg": 1469, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_spike_wood", - "fg": 1973, + "fg": 1979, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, - { "id": "vp_steel_plate", "fg": 1491, "rotates": true }, + { "id": "vp_steel_plate", "fg": 1499, "rotates": true }, { "id": "vp_stereo", - "fg": 1429, + "fg": 1437, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, { "id": "vp_storage_battery", - "fg": 1499, + "fg": 1507, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_storage_battery_mount", - "fg": 1452, + "fg": 1460, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_storage_battery_removable", - "fg": 1499, + "fg": 1507, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_stowboard_horizontal", - "fg": 1534, + "fg": 1542, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_stowboard_vertical", - "fg": 1535, + "fg": 1543, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, - { "id": "vp_superalloy_plate", "fg": 1492, "rotates": true }, + { "id": "vp_superalloy_plate", "fg": 1500, "rotates": true }, { "id": "vp_tracker", - "fg": 926, + "fg": 934, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_travois", - "fg": 1434, + "fg": 1442, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_trunk", - "fg": 1473, + "fg": 1481, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_trunk_floor", - "fg": 1481, + "fg": 1489, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_vehicle_alarm", - "fg": 926, + "fg": 934, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_veh_forge", - "fg": 879, + "fg": 887, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, { "id": "vp_veh_table", - "fg": 914, + "fg": 922, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_v_curtain", - "fg": 1531, + "fg": 1539, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_watercannon", - "fg": 1509, + "fg": 1517, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1453 } ] + "additional_tiles": [ { "id": "broken", "fg": 1461 } ] }, { "id": "vp_water_faucet", - "fg": 1532, + "fg": 1540, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, { "id": "vp_water_tank", - "fg": 1502, + "fg": 1510, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1497 } ] + "additional_tiles": [ { "id": "broken", "fg": 1505 } ] }, { "id": "vp_welding_rig", - "fg": 878, + "fg": 886, "rotates": false, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1479 } ] + "additional_tiles": [ { "id": "broken", "fg": 1487 } ] }, { "id": "vp_wheel", - "fg": 1465, + "fg": 1473, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_armor", - "fg": 1514, + "fg": 1522, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_bicycle", - "fg": 1467, + "fg": 1475, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_caster", - "fg": 1467, + "fg": 1475, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_motorbike", - "fg": 1464, + "fg": 1472, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_small", - "fg": 1467, + "fg": 1475, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_underbody", - "fg": 1465, + "fg": 1473, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_unicycle", - "fg": 1464, + "fg": 1472, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_wheelchair", - "fg": 1464, + "fg": 1472, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_wide", - "fg": 1466, + "fg": 1474, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1475 } ] + "additional_tiles": [ { "id": "broken", "fg": 1483 } ] }, { "id": "vp_wheel_wood", - "fg": 1430, + "fg": 1438, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_wheel_wood_b", - "fg": 1431, + "fg": 1439, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_windshield", - "fg": 1458, + "fg": 1466, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1462 } ] + "additional_tiles": [ { "id": "broken", "fg": 1470 } ] }, { "id": "vp_wing_mirror", - "fg": 1413, + "fg": 1421, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_woodboard_horizontal", - "fg": 1419, + "fg": 1427, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodboard_ne", - "fg": 1420, + "fg": 1428, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodboard_nw", - "fg": 1422, + "fg": 1430, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodboard_se", - "fg": 1421, + "fg": 1429, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodboard_sw", - "fg": 1423, + "fg": 1431, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodboard_vertical", - "fg": 1418, + "fg": 1426, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodhalfboard_horizontal", - "fg": 1419, + "fg": 1427, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodhalfboard_horizontal_2", - "fg": 1419, + "fg": 1427, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodhalfboard_ne", - "fg": 1420, + "fg": 1428, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodhalfboard_nw", - "fg": 1422, + "fg": 1430, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodhalfboard_se", - "fg": 1421, + "fg": 1429, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodhalfboard_sw", - "fg": 1423, + "fg": 1431, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodhalfboard_vertical", - "fg": 1418, + "fg": 1426, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_woodhalfboard_vertical_2", - "fg": 1418, + "fg": 1426, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1504 } ] + "additional_tiles": [ { "id": "broken", "fg": 1512 } ] }, { "id": "vp_xlframe_cross", - "fg": 1489, + "fg": 1497, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlframe_horizontal", - "fg": 1515, + "fg": 1523, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlframe_horizontal_2", - "fg": 1515, + "fg": 1523, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlframe_ne", - "fg": 2005, + "fg": 2010, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlframe_nw", - "fg": 2005, + "fg": 2010, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlframe_se", - "fg": 2005, + "fg": 2010, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlframe_sw", - "fg": 2005, + "fg": 2010, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlframe_vertical", - "fg": 2005, + "fg": 2010, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlframe_vertical_2", - "fg": 2005, + "fg": 2010, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1505 } ] + "additional_tiles": [ { "id": "broken", "fg": 1513 } ] }, { "id": "vp_xlhalfboard_horizontal", - "fg": 1484, + "fg": 1492, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_xlhalfboard_horizontal_2", - "fg": 1484, + "fg": 1492, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_xlhalfboard_ne", - "fg": 1485, + "fg": 1493, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_xlhalfboard_nw", - "fg": 1487, + "fg": 1495, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_xlhalfboard_se", - "fg": 1486, + "fg": 1494, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_xlhalfboard_sw", - "fg": 1488, + "fg": 1496, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_xlhalfboard_vertical", - "fg": 1483, + "fg": 1491, "rotates": true, "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] }, { "id": "vp_xlhalfboard_vertical_2", - "fg": 1483, - "rotates": true, - "multitile": true, - "additional_tiles": [ { "id": "broken", "fg": 1979 } ] - }, - { "id": "mon_amigara_horror", "fg": 1549, "rotates": false }, - { "id": "mon_ant", "fg": 1626, "rotates": false }, - { "id": "mon_ant_fungus", "fg": 1629, "rotates": false }, - { "id": "mon_ant_larva", "fg": 1625, "rotates": false }, - { "id": "mon_ant_queen", "fg": 1628, "rotates": false }, - { "id": "mon_ant_soldier", "fg": 1627, "rotates": false }, - { "id": "mon_bat", "fg": 1614, "rotates": false }, - { "id": "mon_bear", "fg": 1620, "rotates": false }, - { "id": "mon_beaver", "fg": 1694, "rotates": false }, - { "id": "mon_beekeeper", "fg": 1655, "rotates": false }, - { "id": "mon_bee", "fg": 1631, "rotates": false }, - { "id": "mon_biollante", "fg": 1666, "rotates": false }, - { "id": "mon_black_rat", "fg": 1695, "rotates": false }, - { "id": "mon_blank", "fg": 1711, "rotates": false }, - { "id": "mon_blob", "fg": 1688, "rotates": false }, - { "id": "mon_blob_brain", "fg": 1560, "rotates": false }, - { "id": "mon_blob_large", "fg": 1708, "rotates": false }, - { "id": "mon_blob_small", "fg": 1689, "rotates": false }, - { "id": "mon_blood_sacrifice", "fg": 1538, "rotates": false }, - { "id": "mon_bobcat", "fg": 1696, "rotates": false }, - { "id": "mon_boomer", "fg": 1647, "rotates": false }, - { "id": "mon_boomer_fungus", "fg": 1648, "rotates": false }, - { "id": "mon_boomer_huge", "fg": 1604, "rotates": false }, - { "id": "mon_breather", "fg": 1713, "rotates": false }, - { "id": "mon_breather_hub", "fg": 1712, "rotates": false }, - { "id": "mon_broken_cyborg", "fg": 1699, "rotates": false }, - { "id": "mon_cat", "fg": 1624, "rotates": false }, - { "id": "mon_centipede", "fg": 1737, "rotates": false }, - { "id": "mon_centipede_giant", "fg": 1678, "rotates": false }, - { "id": "mon_charred_nightmare", "fg": 1564, "rotates": false }, - { "id": "mon_chickenbot", "fg": 1595, "rotates": false }, - { "id": "mon_chicken", "fg": 1693, "rotates": false }, - { "id": "mon_chipmunk", "fg": 1694, "rotates": false }, - { "id": "mon_chud", "fg": 1684, "rotates": false }, - { "id": "mon_copbot", "fg": 1592, "rotates": false }, - { "id": "mon_cougar", "fg": 1621, "rotates": false }, - { "id": "mon_cow", "fg": 1540, "rotates": false }, - { "id": "mon_coyote", "fg": 1619, "rotates": false }, - { "id": "mon_coyote_wolf", "fg": 1619, "rotates": false }, - { "id": "mon_crawler", "fg": 1686, "rotates": false }, - { "id": "mon_creeper_hub", "fg": 1664, "rotates": false }, + "fg": 1491, + "rotates": true, + "multitile": true, + "additional_tiles": [ { "id": "broken", "fg": 1984 } ] + }, + { "id": "mon_amigara_horror", "fg": 1557, "rotates": false }, + { "id": "mon_ant", "fg": 1634, "rotates": false }, + { "id": "mon_ant_fungus", "fg": 1637, "rotates": false }, + { "id": "mon_ant_larva", "fg": 1633, "rotates": false }, + { "id": "mon_ant_queen", "fg": 1636, "rotates": false }, + { "id": "mon_ant_soldier", "fg": 1635, "rotates": false }, + { "id": "mon_bat", "fg": 1622, "rotates": false }, + { "id": "mon_bear", "fg": 1628, "rotates": false }, + { "id": "mon_beaver", "fg": 1702, "rotates": false }, + { "id": "mon_beekeeper", "fg": 1663, "rotates": false }, + { "id": "mon_bee", "fg": 1639, "rotates": false }, + { "id": "mon_biollante", "fg": 1674, "rotates": false }, + { "id": "mon_black_rat", "fg": 1703, "rotates": false }, + { "id": "mon_blank", "fg": 1719, "rotates": false }, + { "id": "mon_blob", "fg": 1696, "rotates": false }, + { "id": "mon_blob_brain", "fg": 1568, "rotates": false }, + { "id": "mon_blob_large", "fg": 1716, "rotates": false }, + { "id": "mon_blob_small", "fg": 1697, "rotates": false }, + { "id": "mon_blood_sacrifice", "fg": 1546, "rotates": false }, + { "id": "mon_bobcat", "fg": 1704, "rotates": false }, + { "id": "mon_boomer", "fg": 1655, "rotates": false }, + { "id": "mon_boomer_fungus", "fg": 1656, "rotates": false }, + { "id": "mon_boomer_huge", "fg": 1612, "rotates": false }, + { "id": "mon_breather", "fg": 1721, "rotates": false }, + { "id": "mon_breather_hub", "fg": 1720, "rotates": false }, + { "id": "mon_broken_cyborg", "fg": 1707, "rotates": false }, + { "id": "mon_cat", "fg": 1632, "rotates": false }, + { "id": "mon_centipede", "fg": 1745, "rotates": false }, + { "id": "mon_centipede_giant", "fg": 1686, "rotates": false }, + { "id": "mon_charred_nightmare", "fg": 1572, "rotates": false }, + { "id": "mon_chickenbot", "fg": 1603, "rotates": false }, + { "id": "mon_chicken", "fg": 1701, "rotates": false }, + { "id": "mon_chipmunk", "fg": 1702, "rotates": false }, + { "id": "mon_chud", "fg": 1692, "rotates": false }, + { "id": "mon_copbot", "fg": 1600, "rotates": false }, + { "id": "mon_cougar", "fg": 1629, "rotates": false }, + { "id": "mon_cow", "fg": 1548, "rotates": false }, + { "id": "mon_coyote", "fg": 1627, "rotates": false }, + { "id": "mon_coyote_wolf", "fg": 1627, "rotates": false }, + { "id": "mon_crawler", "fg": 1694, "rotates": false }, + { "id": "mon_creeper_hub", "fg": 1672, "rotates": false }, { "id": "mon_creeper_vine", - "fg": 1665, + "fg": 1673, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1719 }, - { "id": "corner", "fg": 1715 }, - { "id": "edge", "fg": 1716 }, - { "id": "t_connection", "fg": 1717 }, - { "id": "end_piece", "fg": 1718 }, - { "id": "unconnected", "fg": 1665 } + { "id": "center", "fg": 1727 }, + { "id": "corner", "fg": 1723 }, + { "id": "edge", "fg": 1724 }, + { "id": "t_connection", "fg": 1725 }, + { "id": "end_piece", "fg": 1726 }, + { "id": "unconnected", "fg": 1673 } ], "rotates": false }, - { "id": "mon_crow", "fg": 1622, "rotates": false }, - { "id": "mon_darkman", "fg": 1709, "rotates": false }, - { "id": "mon_dark_wyrm", "fg": 1720, "rotates": false }, - { "id": "mon_deer", "fg": 1616, "rotates": false }, - { "id": "mon_deer_mouse", "fg": 1567, "rotates": false }, - { "id": "mon_dementia", "fg": 1536, "rotates": false }, - { "id": "mon_dermatik", "fg": 1674, "rotates": false }, - { "id": "mon_dermatik_larva", "fg": 1675, "rotates": false }, - { "id": "mon_dog", "fg": 1623, "rotates": false }, - { "id": "mon_dog_skeleton", "fg": 1728, "rotates": false }, - { "id": "mon_dog_thing", "fg": 1623, "rotates": false }, - { "id": "mon_dog_zombie_cop", "fg": 1732, "rotates": false }, - { "id": "mon_dog_zombie_rot", "fg": 1731, "rotates": false }, - { "id": "mon_dragonfly", "fg": 1738, "rotates": false }, - { "id": "mon_dragonfly_giant", "fg": 1679, "rotates": false }, - { "id": "mon_duck", "fg": 1539, "rotates": false }, - { "id": "mon_exploder", "fg": 1657, "rotates": false }, - { "id": "mon_eyebot", "fg": 1581, "rotates": false }, - { "id": "mon_fish_bass", "fg": 1558, "rotates": false }, - { "id": "mon_fish_blinky", "fg": 1554, "rotates": false }, - { "id": "mon_fish_bluegill", "fg": 1558, "rotates": false }, - { "id": "mon_fish_bowfin", "fg": 1555, "rotates": false }, - { "id": "mon_fish_bullhead", "fg": 1556, "rotates": false }, - { "id": "mon_fish_carp", "fg": 1557, "rotates": false }, - { "id": "mon_fish_eel", "fg": 1553, "rotates": false }, - { "id": "mon_fish_lbass", "fg": 1556, "rotates": false }, - { "id": "mon_fish_pbass", "fg": 1577, "rotates": false }, - { "id": "mon_fish_perch", "fg": 1555, "rotates": false }, - { "id": "mon_fish_pickerel", "fg": 1577, "rotates": false }, - { "id": "mon_fish_pike", "fg": 1558, "rotates": false }, - { "id": "mon_fish_salmon", "fg": 1555, "rotates": false }, - { "id": "mon_fish_sbass", "fg": 1556, "rotates": false }, - { "id": "mon_fish_sunfish", "fg": 1555, "rotates": false }, - { "id": "mon_fish_trout", "fg": 1555, "rotates": false }, - { "id": "mon_fish_whitefish", "fg": 1577, "rotates": false }, - { "id": "mon_flaming_eye", "fg": 1703, "rotates": false }, - { "id": "mon_flesh_angel", "fg": 1597, "rotates": false }, - { "id": "mon_flying_polyp", "fg": 1705, "rotates": false }, - { "id": "mon_fly", "fg": 1630, "rotates": false }, - { "id": "mon_fox", "fg": 1569, "rotates": false }, - { "id": "mon_fox_gray", "fg": 1568, "rotates": false }, - { "id": "mon_fox_red", "fg": 1569, "rotates": false }, - { "id": "mon_frog", "fg": 1738, "rotates": false }, - { "id": "mon_frog_giant", "fg": 1677, "rotates": false }, - { "id": "mon_fungaloid", "fg": 1669, "rotates": false }, - { "id": "mon_fungaloid_dormant", "fg": 1669, "rotates": false }, - { "id": "mon_fungaloid_queen", "fg": 1672, "rotates": false }, - { "id": "mon_fungaloid_seeder", "fg": 1584, "rotates": false }, - { "id": "mon_fungaloid_tower", "fg": 1585, "rotates": false }, - { "id": "mon_fungaloid_young", "fg": 1670, "rotates": false }, - { "id": "mon_fungal_blossom", "fg": 1588, "rotates": false }, - { "id": "mon_fungal_fighter", "fg": 1724, "rotates": false }, - { "id": "mon_fungal_hedgerow", "fg": 1586, "rotates": false }, - { "id": "mon_fungal_tendril", "fg": 1587, "rotates": false }, - { "id": "mon_fungal_wall", "fg": 1673, "rotates": false }, - { "id": "mon_gelatin", "fg": 1708, "rotates": false }, - { "id": "mon_generator", "fg": 1658, "rotates": false }, - { "id": "mon_giant_crayfish", "fg": 1544, "rotates": false }, - { "id": "mon_gozu", "fg": 1704, "rotates": false }, - { "id": "mon_graboid", "fg": 1633, "rotates": false }, - { "id": "mon_gracke", "fg": 1710, "rotates": false }, - { "id": "mon_groundhog", "fg": 1691, "rotates": false }, - { "id": "mon_halfworm", "fg": 1635, "rotates": false }, - { "id": "mon_hallu_ant", "fg": 1626, "rotates": false }, - { "id": "mon_hallu_bee", "fg": 1631, "rotates": false }, - { "id": "mon_hallu_mom", "fg": 1659, "rotates": false }, - { "id": "mon_hallu_multicooker", "fg": 1565, "rotates": false }, - { "id": "mon_hallu_zom", "fg": 1636, "rotates": false }, - { "id": "mon_hare", "fg": 1700, "rotates": false }, - { "id": "mon_hazmatbot", "fg": 1591, "rotates": false }, - { "id": "mon_headless_dog_thing", "fg": 1721, "rotates": false }, - { "id": "mon_homunculus", "fg": 1537, "rotates": false }, - { "id": "mon_horse", "fg": 1541, "rotates": false }, - { "id": "mon_human_snail", "fg": 1550, "rotates": false }, - { "id": "mon_hunting_horror", "fg": 1714, "rotates": false }, - { "id": "mon_irradiated_wanderer_1", "fg": 1563, "rotates": false }, - { "id": "mon_irradiated_wanderer_2", "fg": 1563, "rotates": false }, - { "id": "mon_irradiated_wanderer_3", "fg": 1563, "rotates": false }, - { "id": "mon_irradiated_wanderer_4", "fg": 1563, "rotates": false }, - { "id": "mon_jabberwock", "fg": 1660, "rotates": false }, - { "id": "mon_kreck", "fg": 1559, "rotates": false }, - { "id": "mon_laserturret", "fg": 1548, "rotates": false }, - { "id": "mon_lemming", "fg": 1692, "rotates": false }, - { "id": "mon_manhack", "fg": 1582, "rotates": false }, - { "id": "mon_mink", "fg": 1682, "rotates": false }, - { "id": "mon_mi_go", "fg": 1552, "rotates": false }, - { "id": "mon_molebot", "fg": 1593, "rotates": false }, - { "id": "mon_moose", "fg": 1617, "rotates": false }, - { "id": "mon_mosquito", "fg": 1737, "rotates": false }, - { "id": "mon_mosquito_giant", "fg": 1680, "rotates": false }, - { "id": "mon_muskrat", "fg": 1694, "rotates": false }, - { "id": "mon_mutant_carp", "fg": 1578, "rotates": false }, - { "id": "mon_mutant_salmon", "fg": 1578, "rotates": false }, - { "id": "mon_one_eye", "fg": 1685, "rotates": false }, - { "id": "mon_opossum", "fg": 1695, "rotates": false }, - { "id": "mon_otter", "fg": 1701, "rotates": false }, - { "id": "mon_pig", "fg": 1542, "rotates": false }, - { "id": "mon_player_blob", "fg": 1562, "rotates": false }, - { "id": "mon_rabbit", "fg": 1615, "rotates": false }, - { "id": "mon_raccoon", "fg": 1695, "rotates": false }, - { "id": "mon_rattlesnake", "fg": 1723, "rotates": false }, - { "id": "mon_rat_king", "fg": 1681, "rotates": false }, - { "id": "mon_riotbot", "fg": 1592, "rotates": false }, - { "id": "mon_secubot", "fg": 1590, "rotates": false }, - { "id": "mon_sewer_fish", "fg": 1687, "rotates": false }, - { "id": "mon_sewer_rat", "fg": 1682, "rotates": false }, - { "id": "mon_sewer_snake", "fg": 1683, "rotates": false }, - { "id": "mon_shadow", "fg": 1709, "rotates": false }, - { "id": "mon_shadow_snake", "fg": 1706, "rotates": false }, - { "id": "mon_sheep", "fg": 1543, "rotates": false }, - { "id": "mon_shia", "fg": 1545, "rotates": false }, - { "id": "mon_shoggoth", "fg": 1546, "rotates": false }, - { "id": "mon_shrew", "fg": 1567, "rotates": false }, - { "id": "mon_skeleton", "fg": 1649, "rotates": false }, - { "id": "mon_skitterbot", "fg": 1583, "rotates": false }, - { "id": "mon_sludge_crawler", "fg": 1736, "rotates": false }, - { "id": "mon_slug", "fg": 1737, "rotates": false }, - { "id": "mon_slug_giant", "fg": 1676, "rotates": false }, - { "id": "mon_spider_jumping", "fg": 1598, "rotates": false }, - { "id": "mon_spider_jumping_giant", "fg": 1570, "rotates": false }, - { "id": "mon_spider_trapdoor", "fg": 1600, "rotates": false }, - { "id": "mon_spider_trapdoor_giant", "fg": 1576, "rotates": false }, - { "id": "mon_spider_web", "fg": 1579, "rotates": false }, - { "id": "mon_spider_web_s", "fg": 1601, "rotates": false }, - { "id": "mon_spider_widow", "fg": 1599, "rotates": false }, - { "id": "mon_spider_widow_giant", "fg": 1574, "rotates": false }, - { "id": "mon_spider_widow_giant_s", "fg": 1599, "rotates": false }, - { "id": "mon_spider_wolf", "fg": 1602, "rotates": false }, - { "id": "mon_spider_wolf_giant", "fg": 1580, "rotates": false }, - { "id": "mon_spore", "fg": 1671, "rotates": false }, - { "id": "mon_squirrel", "fg": 1690, "rotates": false }, - { "id": "mon_squirrel_red", "fg": 1691, "rotates": false }, - { "id": "mon_tankbot", "fg": 1596, "rotates": false }, - { "id": "mon_thing", "fg": 1722, "rotates": false }, - { "id": "mon_triffid", "fg": 1661, "rotates": false }, - { "id": "mon_triffid_heart", "fg": 1668, "rotates": false }, - { "id": "mon_triffid_queen", "fg": 1663, "rotates": false }, - { "id": "mon_triffid_young", "fg": 1662, "rotates": false }, - { "id": "mon_tripod", "fg": 1594, "rotates": false }, - { "id": "mon_turkey", "fg": 1735, "rotates": false }, - { "id": "mon_turret", "fg": 1657, "rotates": false }, - { "id": "mon_turret_bmg", "fg": 1561, "rotates": false }, - { "id": "mon_turret_rifle", "fg": 1561, "rotates": false }, - { "id": "mon_turret_searchlight", "fg": 1589, "rotates": false }, - { "id": "mon_twisted_body", "fg": 1551, "rotates": false }, - { "id": "mon_vinebeast", "fg": 1667, "rotates": false }, - { "id": "mon_vortex", "fg": 1547, "rotates": false }, - { "id": "mon_wasp", "fg": 1632, "rotates": false }, - { "id": "mon_weasel", "fg": 1682, "rotates": false }, - { "id": "mon_wolf", "fg": 1618, "rotates": false }, - { "id": "mon_worm", "fg": 1634, "rotates": false }, - { "id": "mon_yugg", "fg": 1707, "rotates": false }, - { "id": "mon_zhark", "fg": 1578, "rotates": false }, - { "id": "mon_zolf", "fg": 1740, "rotates": false }, - { "id": "mon_zombear", "fg": 1566, "rotates": false }, - { "id": "mon_zombie", "fg": 1636, "rotates": false }, - { "id": "mon_zombie_acidic", "fg": 1606, "rotates": false }, - { "id": "mon_zombie_armored", "fg": 1607, "rotates": false }, - { "id": "mon_zombie_bio_op", "fg": 1698, "rotates": false }, - { "id": "mon_zombie_brute", "fg": 1644, "rotates": false }, - { "id": "mon_zombie_brute_shocker", "fg": 1572, "rotates": false }, - { "id": "mon_zombie_child", "fg": 1656, "rotates": false }, - { "id": "mon_zombie_cop", "fg": 1637, "rotates": false }, - { "id": "mon_zombie_corrosive", "fg": 1605, "rotates": false }, - { "id": "mon_zombie_crawler", "fg": 1727, "rotates": false }, - { "id": "mon_zombie_dancer", "fg": 1575, "rotates": false }, - { "id": "mon_zombie_dog", "fg": 1643, "rotates": false }, - { "id": "mon_zombie_electric", "fg": 1640, "rotates": false }, - { "id": "mon_zombie_fast", "fg": 1643, "rotates": false }, - { "id": "mon_zombie_fat", "fg": 1725, "rotates": false }, - { "id": "mon_zombie_fireman", "fg": 1733, "rotates": false }, - { "id": "mon_zombie_fungus", "fg": 1646, "rotates": false }, - { "id": "mon_zombie_gasbag", "fg": 1697, "rotates": false }, - { "id": "mon_zombie_grabber", "fg": 1653, "rotates": false }, - { "id": "mon_zombie_grappler", "fg": 1603, "rotates": false }, - { "id": "mon_zombie_grenadier", "fg": 1608, "rotates": false }, - { "id": "mon_zombie_grenadier_elite", "fg": 1609, "rotates": false }, - { "id": "mon_zombie_hazmat", "fg": 1729, "rotates": false }, - { "id": "mon_zombie_hollow", "fg": 1610, "rotates": false }, - { "id": "mon_zombie_hulk", "fg": 1645, "rotates": false }, - { "id": "mon_zombie_hunter", "fg": 1702, "rotates": false }, - { "id": "mon_zombie_jackson", "fg": 1545, "rotates": false }, - { "id": "mon_zombie_master", "fg": 1654, "rotates": false }, - { "id": "mon_zombie_necro", "fg": 1650, "rotates": false }, - { "id": "mon_zombie_pig", "fg": 1573, "rotates": false }, - { "id": "mon_zombie_predator", "fg": 1611, "rotates": false }, - { "id": "mon_zombie_rot", "fg": 1730, "rotates": false }, - { "id": "mon_zombie_runner", "fg": 1612, "rotates": false }, - { "id": "mon_zombie_scientist", "fg": 1651, "rotates": false }, - { "id": "mon_zombie_shady", "fg": 1613, "rotates": false }, - { "id": "mon_zombie_shrieker", "fg": 1638, "rotates": false }, - { "id": "mon_zombie_smoker", "fg": 1641, "rotates": false }, - { "id": "mon_zombie_soldier", "fg": 1652, "rotates": false }, - { "id": "mon_zombie_spitter", "fg": 1639, "rotates": false }, - { "id": "mon_zombie_survivor", "fg": 1734, "rotates": false }, - { "id": "mon_zombie_swimmer", "fg": 1642, "rotates": false }, - { "id": "mon_zombie_technician", "fg": 1571, "rotates": false }, - { "id": "mon_zombie_tough", "fg": 1726, "rotates": false }, - { "id": "mon_zoose", "fg": 1739, "rotates": false }, - { "id": "mon_zougar", "fg": 1741, "rotates": false }, - { "id": "mon_zombie_biter", "fg": 1742, "rotates": false }, - { "id": "mon_zombie_brainless", "fg": 1743, "rotates": false }, - { "id": "mon_zombie_brute_ninja", "fg": 1744, "rotates": false }, - { "id": "mon_zombie_ears", "fg": 1745, "rotates": false }, - { "id": "mon_zombie_mancroc", "fg": 1746, "rotates": false }, - { "id": "mon_zombie_screecher", "fg": 1747, "rotates": false }, - { "id": "sandwich_t", "fg": 1750, "rotates": false, "multitile": false }, - { "id": "t_ash", "bg": 1976, "rotates": false }, - { "id": "t_atm", "fg": 2059, "rotates": false }, - { "id": "t_backboard", "fg": 1981, "rotates": false }, - { "id": "t_barndoor", "fg": 2082, "rotates": false }, + { "id": "mon_crow", "fg": 1630, "rotates": false }, + { "id": "mon_darkman", "fg": 1717, "rotates": false }, + { "id": "mon_dark_wyrm", "fg": 1728, "rotates": false }, + { "id": "mon_deer", "fg": 1624, "rotates": false }, + { "id": "mon_deer_mouse", "fg": 1575, "rotates": false }, + { "id": "mon_dementia", "fg": 1544, "rotates": false }, + { "id": "mon_dermatik", "fg": 1682, "rotates": false }, + { "id": "mon_dermatik_larva", "fg": 1683, "rotates": false }, + { "id": "mon_dog", "fg": 1631, "rotates": false }, + { "id": "mon_dog_skeleton", "fg": 1736, "rotates": false }, + { "id": "mon_dog_thing", "fg": 1631, "rotates": false }, + { "id": "mon_dog_zombie_cop", "fg": 1740, "rotates": false }, + { "id": "mon_dog_zombie_rot", "fg": 1739, "rotates": false }, + { "id": "mon_dragonfly", "fg": 1746, "rotates": false }, + { "id": "mon_dragonfly_giant", "fg": 1687, "rotates": false }, + { "id": "mon_duck", "fg": 1547, "rotates": false }, + { "id": "mon_exploder", "fg": 1665, "rotates": false }, + { "id": "mon_eyebot", "fg": 1589, "rotates": false }, + { "id": "mon_fish_bass", "fg": 1566, "rotates": false }, + { "id": "mon_fish_blinky", "fg": 1562, "rotates": false }, + { "id": "mon_fish_bluegill", "fg": 1566, "rotates": false }, + { "id": "mon_fish_bowfin", "fg": 1563, "rotates": false }, + { "id": "mon_fish_bullhead", "fg": 1564, "rotates": false }, + { "id": "mon_fish_carp", "fg": 1565, "rotates": false }, + { "id": "mon_fish_eel", "fg": 1561, "rotates": false }, + { "id": "mon_fish_lbass", "fg": 1564, "rotates": false }, + { "id": "mon_fish_pbass", "fg": 1585, "rotates": false }, + { "id": "mon_fish_perch", "fg": 1563, "rotates": false }, + { "id": "mon_fish_pickerel", "fg": 1585, "rotates": false }, + { "id": "mon_fish_pike", "fg": 1566, "rotates": false }, + { "id": "mon_fish_salmon", "fg": 1563, "rotates": false }, + { "id": "mon_fish_sbass", "fg": 1564, "rotates": false }, + { "id": "mon_fish_sunfish", "fg": 1563, "rotates": false }, + { "id": "mon_fish_trout", "fg": 1563, "rotates": false }, + { "id": "mon_fish_whitefish", "fg": 1585, "rotates": false }, + { "id": "mon_flaming_eye", "fg": 1711, "rotates": false }, + { "id": "mon_flesh_angel", "fg": 1605, "rotates": false }, + { "id": "mon_flying_polyp", "fg": 1713, "rotates": false }, + { "id": "mon_fly", "fg": 1638, "rotates": false }, + { "id": "mon_fox", "fg": 1577, "rotates": false }, + { "id": "mon_fox_gray", "fg": 1576, "rotates": false }, + { "id": "mon_fox_red", "fg": 1577, "rotates": false }, + { "id": "mon_frog", "fg": 1746, "rotates": false }, + { "id": "mon_frog_giant", "fg": 1685, "rotates": false }, + { "id": "mon_fungaloid", "fg": 1677, "rotates": false }, + { "id": "mon_fungaloid_dormant", "fg": 1677, "rotates": false }, + { "id": "mon_fungaloid_queen", "fg": 1680, "rotates": false }, + { "id": "mon_fungaloid_seeder", "fg": 1592, "rotates": false }, + { "id": "mon_fungaloid_tower", "fg": 1593, "rotates": false }, + { "id": "mon_fungaloid_young", "fg": 1678, "rotates": false }, + { "id": "mon_fungal_blossom", "fg": 1596, "rotates": false }, + { "id": "mon_fungal_fighter", "fg": 1732, "rotates": false }, + { "id": "mon_fungal_hedgerow", "fg": 1594, "rotates": false }, + { "id": "mon_fungal_tendril", "fg": 1595, "rotates": false }, + { "id": "mon_fungal_wall", "fg": 1681, "rotates": false }, + { "id": "mon_gelatin", "fg": 1716, "rotates": false }, + { "id": "mon_generator", "fg": 1666, "rotates": false }, + { "id": "mon_giant_crayfish", "fg": 1552, "rotates": false }, + { "id": "mon_gozu", "fg": 1712, "rotates": false }, + { "id": "mon_graboid", "fg": 1641, "rotates": false }, + { "id": "mon_gracke", "fg": 1718, "rotates": false }, + { "id": "mon_groundhog", "fg": 1699, "rotates": false }, + { "id": "mon_halfworm", "fg": 1643, "rotates": false }, + { "id": "mon_hallu_ant", "fg": 1634, "rotates": false }, + { "id": "mon_hallu_bee", "fg": 1639, "rotates": false }, + { "id": "mon_hallu_mom", "fg": 1667, "rotates": false }, + { "id": "mon_hallu_multicooker", "fg": 1573, "rotates": false }, + { "id": "mon_hallu_zom", "fg": 1644, "rotates": false }, + { "id": "mon_hare", "fg": 1708, "rotates": false }, + { "id": "mon_hazmatbot", "fg": 1599, "rotates": false }, + { "id": "mon_headless_dog_thing", "fg": 1729, "rotates": false }, + { "id": "mon_homunculus", "fg": 1545, "rotates": false }, + { "id": "mon_horse", "fg": 1549, "rotates": false }, + { "id": "mon_human_snail", "fg": 1558, "rotates": false }, + { "id": "mon_hunting_horror", "fg": 1722, "rotates": false }, + { "id": "mon_irradiated_wanderer_1", "fg": 1571, "rotates": false }, + { "id": "mon_irradiated_wanderer_2", "fg": 1571, "rotates": false }, + { "id": "mon_irradiated_wanderer_3", "fg": 1571, "rotates": false }, + { "id": "mon_irradiated_wanderer_4", "fg": 1571, "rotates": false }, + { "id": "mon_jabberwock", "fg": 1668, "rotates": false }, + { "id": "mon_kreck", "fg": 1567, "rotates": false }, + { "id": "mon_laserturret", "fg": 1556, "rotates": false }, + { "id": "mon_lemming", "fg": 1700, "rotates": false }, + { "id": "mon_manhack", "fg": 1590, "rotates": false }, + { "id": "mon_mink", "fg": 1690, "rotates": false }, + { "id": "mon_mi_go", "fg": 1560, "rotates": false }, + { "id": "mon_molebot", "fg": 1601, "rotates": false }, + { "id": "mon_moose", "fg": 1625, "rotates": false }, + { "id": "mon_mosquito", "fg": 1745, "rotates": false }, + { "id": "mon_mosquito_giant", "fg": 1688, "rotates": false }, + { "id": "mon_muskrat", "fg": 1702, "rotates": false }, + { "id": "mon_mutant_carp", "fg": 1586, "rotates": false }, + { "id": "mon_mutant_salmon", "fg": 1586, "rotates": false }, + { "id": "mon_one_eye", "fg": 1693, "rotates": false }, + { "id": "mon_opossum", "fg": 1703, "rotates": false }, + { "id": "mon_otter", "fg": 1709, "rotates": false }, + { "id": "mon_pig", "fg": 1550, "rotates": false }, + { "id": "mon_player_blob", "fg": 1570, "rotates": false }, + { "id": "mon_rabbit", "fg": 1623, "rotates": false }, + { "id": "mon_raccoon", "fg": 1703, "rotates": false }, + { "id": "mon_rattlesnake", "fg": 1731, "rotates": false }, + { "id": "mon_rat_king", "fg": 1689, "rotates": false }, + { "id": "mon_riotbot", "fg": 1600, "rotates": false }, + { "id": "mon_secubot", "fg": 1598, "rotates": false }, + { "id": "mon_sewer_fish", "fg": 1695, "rotates": false }, + { "id": "mon_sewer_rat", "fg": 1690, "rotates": false }, + { "id": "mon_sewer_snake", "fg": 1691, "rotates": false }, + { "id": "mon_shadow", "fg": 1717, "rotates": false }, + { "id": "mon_shadow_snake", "fg": 1714, "rotates": false }, + { "id": "mon_sheep", "fg": 1551, "rotates": false }, + { "id": "mon_shia", "fg": 1553, "rotates": false }, + { "id": "mon_shoggoth", "fg": 1554, "rotates": false }, + { "id": "mon_shrew", "fg": 1575, "rotates": false }, + { "id": "mon_skeleton", "fg": 1657, "rotates": false }, + { "id": "mon_skitterbot", "fg": 1591, "rotates": false }, + { "id": "mon_sludge_crawler", "fg": 1744, "rotates": false }, + { "id": "mon_slug", "fg": 1745, "rotates": false }, + { "id": "mon_slug_giant", "fg": 1684, "rotates": false }, + { "id": "mon_spider_jumping", "fg": 1606, "rotates": false }, + { "id": "mon_spider_jumping_giant", "fg": 1578, "rotates": false }, + { "id": "mon_spider_trapdoor", "fg": 1608, "rotates": false }, + { "id": "mon_spider_trapdoor_giant", "fg": 1584, "rotates": false }, + { "id": "mon_spider_web", "fg": 1587, "rotates": false }, + { "id": "mon_spider_web_s", "fg": 1609, "rotates": false }, + { "id": "mon_spider_widow", "fg": 1607, "rotates": false }, + { "id": "mon_spider_widow_giant", "fg": 1582, "rotates": false }, + { "id": "mon_spider_widow_giant_s", "fg": 1607, "rotates": false }, + { "id": "mon_spider_wolf", "fg": 1610, "rotates": false }, + { "id": "mon_spider_wolf_giant", "fg": 1588, "rotates": false }, + { "id": "mon_spore", "fg": 1679, "rotates": false }, + { "id": "mon_squirrel", "fg": 1698, "rotates": false }, + { "id": "mon_squirrel_red", "fg": 1699, "rotates": false }, + { "id": "mon_tankbot", "fg": 1604, "rotates": false }, + { "id": "mon_thing", "fg": 1730, "rotates": false }, + { "id": "mon_triffid", "fg": 1669, "rotates": false }, + { "id": "mon_triffid_heart", "fg": 1676, "rotates": false }, + { "id": "mon_triffid_queen", "fg": 1671, "rotates": false }, + { "id": "mon_triffid_young", "fg": 1670, "rotates": false }, + { "id": "mon_tripod", "fg": 1602, "rotates": false }, + { "id": "mon_turkey", "fg": 1743, "rotates": false }, + { "id": "mon_turret", "fg": 1665, "rotates": false }, + { "id": "mon_turret_bmg", "fg": 1569, "rotates": false }, + { "id": "mon_turret_rifle", "fg": 1569, "rotates": false }, + { "id": "mon_turret_searchlight", "fg": 1597, "rotates": false }, + { "id": "mon_twisted_body", "fg": 1559, "rotates": false }, + { "id": "mon_vinebeast", "fg": 1675, "rotates": false }, + { "id": "mon_vortex", "fg": 1555, "rotates": false }, + { "id": "mon_wasp", "fg": 1640, "rotates": false }, + { "id": "mon_weasel", "fg": 1690, "rotates": false }, + { "id": "mon_wolf", "fg": 1626, "rotates": false }, + { "id": "mon_worm", "fg": 1642, "rotates": false }, + { "id": "mon_yugg", "fg": 1715, "rotates": false }, + { "id": "mon_zhark", "fg": 1586, "rotates": false }, + { "id": "mon_zolf", "fg": 1748, "rotates": false }, + { "id": "mon_zombear", "fg": 1574, "rotates": false }, + { "id": "mon_zombie", "fg": 1644, "rotates": false }, + { "id": "mon_zombie_acidic", "fg": 1614, "rotates": false }, + { "id": "mon_zombie_armored", "fg": 1615, "rotates": false }, + { "id": "mon_zombie_bio_op", "fg": 1706, "rotates": false }, + { "id": "mon_zombie_brute", "fg": 1652, "rotates": false }, + { "id": "mon_zombie_brute_shocker", "fg": 1580, "rotates": false }, + { "id": "mon_zombie_child", "fg": 1664, "rotates": false }, + { "id": "mon_zombie_cop", "fg": 1645, "rotates": false }, + { "id": "mon_zombie_corrosive", "fg": 1613, "rotates": false }, + { "id": "mon_zombie_crawler", "fg": 1735, "rotates": false }, + { "id": "mon_zombie_dancer", "fg": 1583, "rotates": false }, + { "id": "mon_zombie_dog", "fg": 1651, "rotates": false }, + { "id": "mon_zombie_electric", "fg": 1648, "rotates": false }, + { "id": "mon_zombie_fast", "fg": 1651, "rotates": false }, + { "id": "mon_zombie_fat", "fg": 1733, "rotates": false }, + { "id": "mon_zombie_fireman", "fg": 1741, "rotates": false }, + { "id": "mon_zombie_fungus", "fg": 1654, "rotates": false }, + { "id": "mon_zombie_gasbag", "fg": 1705, "rotates": false }, + { "id": "mon_zombie_grabber", "fg": 1661, "rotates": false }, + { "id": "mon_zombie_grappler", "fg": 1611, "rotates": false }, + { "id": "mon_zombie_grenadier", "fg": 1616, "rotates": false }, + { "id": "mon_zombie_grenadier_elite", "fg": 1617, "rotates": false }, + { "id": "mon_zombie_hazmat", "fg": 1737, "rotates": false }, + { "id": "mon_zombie_hollow", "fg": 1618, "rotates": false }, + { "id": "mon_zombie_hulk", "fg": 1653, "rotates": false }, + { "id": "mon_zombie_hunter", "fg": 1710, "rotates": false }, + { "id": "mon_zombie_jackson", "fg": 1553, "rotates": false }, + { "id": "mon_zombie_master", "fg": 1662, "rotates": false }, + { "id": "mon_zombie_necro", "fg": 1658, "rotates": false }, + { "id": "mon_zombie_pig", "fg": 1581, "rotates": false }, + { "id": "mon_zombie_predator", "fg": 1619, "rotates": false }, + { "id": "mon_zombie_rot", "fg": 1738, "rotates": false }, + { "id": "mon_zombie_runner", "fg": 1620, "rotates": false }, + { "id": "mon_zombie_scientist", "fg": 1659, "rotates": false }, + { "id": "mon_zombie_shady", "fg": 1621, "rotates": false }, + { "id": "mon_zombie_shrieker", "fg": 1646, "rotates": false }, + { "id": "mon_zombie_smoker", "fg": 1649, "rotates": false }, + { "id": "mon_zombie_soldier", "fg": 1660, "rotates": false }, + { "id": "mon_zombie_spitter", "fg": 1647, "rotates": false }, + { "id": "mon_zombie_survivor", "fg": 1742, "rotates": false }, + { "id": "mon_zombie_swimmer", "fg": 1650, "rotates": false }, + { "id": "mon_zombie_technician", "fg": 1579, "rotates": false }, + { "id": "mon_zombie_tough", "fg": 1734, "rotates": false }, + { "id": "mon_zoose", "fg": 1747, "rotates": false }, + { "id": "mon_zougar", "fg": 1749, "rotates": false }, + { "id": "mon_zombie_biter", "fg": 1750, "rotates": false }, + { "id": "mon_zombie_brainless", "fg": 1751, "rotates": false }, + { "id": "mon_zombie_brute_ninja", "fg": 1752, "rotates": false }, + { "id": "mon_zombie_ears", "fg": 1753, "rotates": false }, + { "id": "mon_zombie_mancroc", "fg": 1754, "rotates": false }, + { "id": "mon_zombie_screecher", "fg": 1755, "rotates": false }, + { "id": "sandwich_t", "fg": 1758, "rotates": false, "multitile": false }, + { "id": "t_ash", "bg": 1982, "rotates": false }, + { "id": "t_atm", "fg": 2064, "rotates": false }, + { "id": "t_backboard", "fg": 1986, "rotates": false }, + { "id": "t_barndoor", "fg": 2087, "rotates": false }, { "id": "t_brick_wall", - "fg": 1877, + "fg": 1883, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1875 }, - { "id": "corner", "fg": 1876 }, - { "id": "edge", "fg": 1877 }, - { "id": "t_connection", "fg": 1878 }, - { "id": "end_piece", "fg": 1877 }, - { "id": "unconnected", "fg": 1877 } + { "id": "center", "fg": 1881 }, + { "id": "corner", "fg": 1882 }, + { "id": "edge", "fg": 1883 }, + { "id": "t_connection", "fg": 1884 }, + { "id": "end_piece", "fg": 1883 }, + { "id": "unconnected", "fg": 1883 } ], "rotates": false }, - { "id": "t_brick_wall_halfway", "fg": 1879, "rotates": false }, + { "id": "t_brick_wall_halfway", "fg": 1885, "rotates": false }, { "id": "t_brick_wall_line", - "fg": 1877, + "fg": 1883, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1875 }, - { "id": "corner", "fg": 1876 }, - { "id": "edge", "fg": 1877 }, - { "id": "t_connection", "fg": 1878 }, - { "id": "end_piece", "fg": 1877 }, - { "id": "unconnected", "fg": 1877 } + { "id": "center", "fg": 1881 }, + { "id": "corner", "fg": 1882 }, + { "id": "edge", "fg": 1883 }, + { "id": "t_connection", "fg": 1884 }, + { "id": "end_piece", "fg": 1883 }, + { "id": "unconnected", "fg": 1883 } ], "rotates": false }, - { "id": "t_bridge", "bg": 1941, "rotates": false }, - { "id": "t_card_military", "fg": 1983, "rotates": false }, - { "id": "t_card_reader_broken", "fg": 2083, "rotates": false }, - { "id": "t_card_science", "fg": 1983, "rotates": false }, - { "id": "t_carpet_green", "bg": 1948, "rotates": false }, - { "id": "t_carpet_purple", "bg": 1775, "rotates": false }, - { "id": "t_carpet_red", "bg": 1947, "rotates": false }, - { "id": "t_carpet_yellow", "bg": 1774, "rotates": false }, - { "id": "t_centrifuge", "fg": 1934, "rotates": false }, + { "id": "t_bridge", "bg": 1947, "rotates": false }, + { "id": "t_card_military", "fg": 1988, "rotates": false }, + { "id": "t_card_reader_broken", "fg": 2088, "rotates": false }, + { "id": "t_card_science", "fg": 1988, "rotates": false }, + { "id": "t_carpet_green", "bg": 1954, "rotates": false }, + { "id": "t_carpet_purple", "bg": 1783, "rotates": false }, + { "id": "t_carpet_red", "bg": 1953, "rotates": false }, + { "id": "t_carpet_yellow", "bg": 1782, "rotates": false }, + { "id": "t_centrifuge", "fg": 1940, "rotates": false }, { "id": "t_chainfence_h", - "fg": 2089, + "fg": 2094, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2011 }, - { "id": "corner", "fg": 1971 }, - { "id": "edge", "fg": 2089 }, - { "id": "t_connection", "fg": 1982 }, - { "id": "end_piece", "fg": 2017 }, - { "id": "unconnected", "fg": 2089 } + { "id": "center", "fg": 2016 }, + { "id": "corner", "fg": 1977 }, + { "id": "edge", "fg": 2094 }, + { "id": "t_connection", "fg": 1987 }, + { "id": "end_piece", "fg": 2022 }, + { "id": "unconnected", "fg": 2094 } ], "rotates": false }, - { "id": "t_chainfence_posts", "fg": 1980, "bg": 1924, "rotates": false }, + { "id": "t_chainfence_posts", "fg": 1985, "bg": 1930, "rotates": false }, { "id": "t_chainfence_v", - "fg": 2089, + "fg": 2094, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2011 }, - { "id": "corner", "fg": 1971 }, - { "id": "edge", "fg": 2089 }, - { "id": "t_connection", "fg": 1982 }, - { "id": "end_piece", "fg": 2017 }, - { "id": "unconnected", "fg": 2089 } + { "id": "center", "fg": 2016 }, + { "id": "corner", "fg": 1977 }, + { "id": "edge", "fg": 2094 }, + { "id": "t_connection", "fg": 1987 }, + { "id": "end_piece", "fg": 2022 }, + { "id": "unconnected", "fg": 2094 } ], "rotates": false }, - { "id": "t_chaingate_c", "fg": 2090, "bg": 1924, "rotates": false }, - { "id": "t_chaingate_l", "fg": 2090, "bg": 1924, "rotates": false }, - { "id": "t_chaingate_o", "fg": 1760, "bg": 1924, "rotates": false }, - { "id": "t_claymound", "bg": 1824, "rotates": false }, - { "id": "t_column", "fg": 2002, "rotates": false }, + { "id": "t_chaingate_c", "fg": 2095, "bg": 1930, "rotates": false }, + { "id": "t_chaingate_l", "fg": 2095, "bg": 1930, "rotates": false }, + { "id": "t_chaingate_o", "fg": 1768, "bg": 1930, "rotates": false }, + { "id": "t_claymound", "bg": 1830, "rotates": false }, + { "id": "t_column", "fg": 2007, "rotates": false }, { "id": "t_concrete_h", - "fg": 1970, - "bg": 1924, + "fg": 1976, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1970 }, - { "id": "corner", "fg": 1968 }, - { "id": "edge", "fg": 1970 }, - { "id": "t_connection", "fg": 1969 }, - { "id": "end_piece", "fg": 1970 }, - { "id": "unconnected", "fg": 1970 } + { "id": "center", "fg": 1976 }, + { "id": "corner", "fg": 1974 }, + { "id": "edge", "fg": 1976 }, + { "id": "t_connection", "fg": 1975 }, + { "id": "end_piece", "fg": 1976 }, + { "id": "unconnected", "fg": 1976 } ], "rotates": false }, - { "id": [ "t_concrete", "t_concrete_floor" ], "bg": 1752, "rotates": false }, + { "id": [ "t_concrete", "t_concrete_floor" ], "bg": 1760, "rotates": false }, { "id": "t_concrete_v", - "fg": 1970, - "bg": 1924, + "fg": 1976, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1970 }, - { "id": "corner", "fg": 1968 }, - { "id": "edge", "fg": 1970 }, - { "id": "t_connection", "fg": 1969 }, - { "id": "end_piece", "fg": 1970 }, - { "id": "unconnected", "fg": 1970 } + { "id": "center", "fg": 1976 }, + { "id": "corner", "fg": 1974 }, + { "id": "edge", "fg": 1976 }, + { "id": "t_connection", "fg": 1975 }, + { "id": "end_piece", "fg": 1976 }, + { "id": "unconnected", "fg": 1976 } ], "rotates": false }, { "id": [ "t_concrete_wall", "t_rock_smooth" ], - "fg": 1970, - "bg": 1924, + "fg": 1976, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1970 }, - { "id": "corner", "fg": 1968 }, - { "id": "edge", "fg": 1970 }, - { "id": "t_connection", "fg": 1969 }, - { "id": "end_piece", "fg": 1970 }, - { "id": "unconnected", "fg": 1970 } + { "id": "center", "fg": 1976 }, + { "id": "corner", "fg": 1974 }, + { "id": "edge", "fg": 1976 }, + { "id": "t_connection", "fg": 1975 }, + { "id": "end_piece", "fg": 1976 }, + { "id": "unconnected", "fg": 1976 } ], "rotates": false }, - { "id": "t_console", "fg": 1813, "bg": 2058, "rotates": false }, - { "id": "t_console_broken", "fg": 1814, "bg": 2058, "rotates": false }, - { "id": "t_conveyor", "fg": 1884, "bg": 2058, "rotates": false }, - { "id": "t_covered_well", "fg": 1823, "rotates": false }, - { "id": "t_current_trans", "fg": 1837, "rotates": false, "multitile": false }, - { "id": "t_curtains", "fg": 2075, "rotates": false }, + { "id": "t_console_broken", "fg": 1821, "bg": 2063, "rotates": false }, + { "id": "t_conveyor", "fg": 1890, "bg": 2063, "rotates": false }, + { "id": "t_covered_well", "fg": 1829, "rotates": false }, + { "id": "t_current_trans", "fg": 1843, "rotates": false, "multitile": false }, + { "id": "t_curtains", "fg": 2080, "rotates": false }, { "id": "t_cvdbody", - "fg": 1784, + "fg": 1792, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1857 }, - { "id": "corner", "fg": 1858 }, - { "id": "edge", "fg": 1859 }, - { "id": "t_connection", "fg": 1860 }, - { "id": "end_piece", "fg": 1861 }, - { "id": "unconnected", "fg": 1784 } + { "id": "center", "fg": 1863 }, + { "id": "corner", "fg": 1864 }, + { "id": "edge", "fg": 1865 }, + { "id": "t_connection", "fg": 1866 }, + { "id": "end_piece", "fg": 1867 }, + { "id": "unconnected", "fg": 1792 } ], "rotates": false }, - { "id": "t_cvdmachine", "fg": 1785, "rotates": false }, - { "id": "t_diesel_pump", "fg": 1862, "rotates": false }, - { "id": "t_diesel_pump_smashed", "fg": 1863, "rotates": false }, - { "id": "t_dirtfloor", "bg": 1924, "rotates": false }, - { "id": "t_dirtmound", "bg": 1824, "rotates": false }, - { "id": "t_dirt", "bg": 1924, "rotates": false }, - { "id": "t_dock", "fg": 2003, "rotates": false }, - { "id": "t_door_bar_c", "fg": 2007, "rotates": false }, - { "id": "t_door_bar_locked", "fg": 2009, "rotates": false }, - { "id": "t_door_bar_o", "fg": 2008, "rotates": false }, - { "id": "t_door_boarded", "fg": 2067, "rotates": false }, - { "id": "t_door_boarded_damaged", "fg": 2066, "rotates": false }, - { "id": "t_door_boarded_damaged_peep", "fg": 2066, "rotates": false }, - { "id": "t_door_boarded_peep", "fg": 2067, "rotates": false }, - { "id": "t_door_b", "fg": 2063, "bg": 2058, "rotates": false }, - { "id": "t_door_b_peep", "fg": 2063, "bg": 2058, "rotates": false }, - { "id": "t_door_curtain_c", "fg": 1893, "bg": 2058, "rotates": false }, - { "id": "t_door_curtain_o", "fg": 1894, "bg": 2062, "rotates": false }, - { "id": "t_door_c", "fg": 2061, "bg": 2058, "rotates": false }, - { "id": "t_door_c_peep", "fg": 1849, "bg": 2058, "rotates": false }, - { "id": "t_door_frame", "fg": 2062, "rotates": false }, - { "id": "t_door_glass_c", "fg": 1754, "bg": 2058, "rotates": true }, - { "id": "t_door_glass_o", "fg": 1755, "bg": 2058, "rotates": true }, - { "id": "t_door_locked", "fg": 2064, "bg": 2058, "rotates": false }, - { "id": "t_door_locked_alarm", "fg": 2064, "bg": 2058, "rotates": false }, - { "id": "t_door_locked_interior", "fg": 2064, "bg": 2058, "rotates": false }, - { "id": "t_door_locked_peep", "fg": 1850, "bg": 2058, "rotates": false }, - { "id": "t_door_makeshift_c", "fg": 1892, "bg": 2058, "rotates": false }, - { "id": "t_door_makeshift_o", "fg": 2062, "bg": 2058, "rotates": false }, - { "id": "t_door_metal_c", "fg": 2068, "rotates": false }, - { "id": "t_door_metal_c_peep", "fg": 1896, "rotates": false }, - { "id": "t_door_metal_locked", "fg": 2010, "rotates": false }, - { "id": "t_door_metal_o", "fg": 2069, "rotates": false }, - { "id": "t_door_metal_o_peep", "fg": 2069, "rotates": false }, - { "id": "t_door_metal_pickable", "fg": 2010, "rotates": false }, - { "id": "t_door_o", "fg": 2062, "bg": 2058, "rotates": false }, - { "id": "t_door_o_peep", "fg": 2062, "bg": 2058, "rotates": false }, - { "id": "t_elevator", "fg": 1999, "rotates": false }, - { "id": "t_elevator_control", "fg": 2000, "rotates": false }, - { "id": "t_elevator_control_off", "fg": 2001, "rotates": false }, - { "id": "t_fault", "fg": 1788, "rotates": false }, - { "id": "t_fencegate_c", "fg": 1756, "bg": 1924, "rotates": false }, - { "id": "t_fencegate_o", "fg": 1757, "bg": 1924, "rotates": false }, + { "id": "t_cvdmachine", "fg": 1793, "rotates": false }, + { "id": "t_diesel_pump", "fg": 1868, "rotates": false }, + { "id": "t_diesel_pump_smashed", "fg": 1869, "rotates": false }, + { "id": "t_dirtfloor", "bg": 1930, "rotates": false }, + { "id": "t_dirtmound", "bg": 1830, "rotates": false }, + { "id": "t_dirt", "bg": 1930, "rotates": false }, + { "id": "t_dock", "fg": 2008, "rotates": false }, + { "id": "t_door_bar_c", "fg": 2012, "rotates": false }, + { "id": "t_door_bar_locked", "fg": 2014, "rotates": false }, + { "id": "t_door_bar_o", "fg": 2013, "rotates": false }, + { "id": "t_door_boarded", "fg": 2072, "rotates": false }, + { "id": "t_door_boarded_damaged", "fg": 2071, "rotates": false }, + { "id": "t_door_boarded_damaged_peep", "fg": 2071, "rotates": false }, + { "id": "t_door_boarded_peep", "fg": 2072, "rotates": false }, + { "id": "t_door_b", "fg": 2068, "bg": 2063, "rotates": false }, + { "id": "t_door_b_peep", "fg": 2068, "bg": 2063, "rotates": false }, + { "id": "t_door_curtain_c", "fg": 1899, "bg": 2063, "rotates": false }, + { "id": "t_door_curtain_o", "fg": 1900, "bg": 2067, "rotates": false }, + { "id": "t_door_c", "fg": 2066, "bg": 2063, "rotates": false }, + { "id": "t_door_c_peep", "fg": 1855, "bg": 2063, "rotates": false }, + { "id": "t_door_frame", "fg": 2067, "rotates": false }, + { "id": "t_door_glass_c", "fg": 1762, "bg": 2063, "rotates": true }, + { "id": "t_door_glass_o", "fg": 1763, "bg": 2063, "rotates": true }, + { "id": "t_door_locked", "fg": 2069, "bg": 2063, "rotates": false }, + { "id": "t_door_locked_alarm", "fg": 2069, "bg": 2063, "rotates": false }, + { "id": "t_door_locked_interior", "fg": 2069, "bg": 2063, "rotates": false }, + { "id": "t_door_locked_peep", "fg": 1856, "bg": 2063, "rotates": false }, + { "id": "t_door_makeshift_c", "fg": 1898, "bg": 2063, "rotates": false }, + { "id": "t_door_makeshift_o", "fg": 2067, "bg": 2063, "rotates": false }, + { "id": "t_door_metal_c", "fg": 2073, "rotates": false }, + { "id": "t_door_metal_c_peep", "fg": 1902, "rotates": false }, + { "id": "t_door_metal_locked", "fg": 2015, "rotates": false }, + { "id": "t_door_metal_o", "fg": 2074, "rotates": false }, + { "id": "t_door_metal_o_peep", "fg": 2074, "rotates": false }, + { "id": "t_door_metal_pickable", "fg": 2015, "rotates": false }, + { "id": "t_door_o", "fg": 2067, "bg": 2063, "rotates": false }, + { "id": "t_door_o_peep", "fg": 2067, "bg": 2063, "rotates": false }, + { "id": "t_elevator", "fg": 2004, "rotates": false }, + { "id": "t_elevator_control", "fg": 2005, "rotates": false }, + { "id": "t_elevator_control_off", "fg": 2006, "rotates": false }, + { "id": "t_fault", "fg": 1796, "rotates": false }, + { "id": "t_fencegate_c", "fg": 1764, "bg": 1930, "rotates": false }, + { "id": "t_fencegate_o", "fg": 1765, "bg": 1930, "rotates": false }, { "id": "t_fence_barbed", - "fg": 1972, + "fg": 1978, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2011 }, - { "id": "corner", "fg": 2012 }, - { "id": "edge", "fg": 1972 }, - { "id": "t_connection", "fg": 2013 }, - { "id": "end_piece", "fg": 2016 }, - { "id": "unconnected", "fg": 1972 } + { "id": "center", "fg": 2016 }, + { "id": "corner", "fg": 2017 }, + { "id": "edge", "fg": 1978 }, + { "id": "t_connection", "fg": 2018 }, + { "id": "end_piece", "fg": 2021 }, + { "id": "unconnected", "fg": 1978 } ], "rotates": false }, - { "id": "t_fence_h", "fg": 2088, "bg": 1924, "rotates": false }, - { "id": "t_fence_post", "fg": 1973, "rotates": false }, + { "id": "t_fence_h", "fg": 2093, "bg": 1930, "rotates": false }, + { "id": "t_fence_post", "fg": 1979, "rotates": false }, { "id": "t_fence_rope", - "fg": 2046, + "fg": 2051, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2044 }, - { "id": "corner", "fg": 2045 }, - { "id": "edge", "fg": 2046 }, - { "id": "t_connection", "fg": 2047 }, - { "id": "end_piece", "fg": 2048 }, - { "id": "unconnected", "fg": 2046 } + { "id": "center", "fg": 2049 }, + { "id": "corner", "fg": 2050 }, + { "id": "edge", "fg": 2051 }, + { "id": "t_connection", "fg": 2052 }, + { "id": "end_piece", "fg": 2053 }, + { "id": "unconnected", "fg": 2051 } ], "rotates": false }, - { "id": "t_fence_v", "fg": 338, "bg": 1924, "rotates": false }, + { "id": "t_fence_v", "fg": 346, "bg": 1930, "rotates": false }, { "id": "t_fence_wire", - "fg": 2089, + "fg": 2094, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2011 }, - { "id": "corner", "fg": 1971 }, - { "id": "edge", "fg": 2089 }, - { "id": "t_connection", "fg": 1982 }, - { "id": "end_piece", "fg": 2017 }, - { "id": "unconnected", "fg": 2089 } + { "id": "center", "fg": 2016 }, + { "id": "corner", "fg": 1977 }, + { "id": "edge", "fg": 2094 }, + { "id": "t_connection", "fg": 1987 }, + { "id": "end_piece", "fg": 2022 }, + { "id": "unconnected", "fg": 2094 } ], "rotates": false }, - { "id": "t_flat_roof", "bg": 1752, "rotates": false }, - { "id": "t_floor", "bg": 2058, "rotates": false }, - { "id": "t_floor_blue", "bg": 1949, "rotates": false }, - { "id": "t_floor_green", "bg": 1948, "rotates": false }, - { "id": "t_floor_red", "bg": 1947, "rotates": false }, - { "id": "t_floor_waxed", "bg": 1773, "rotates": false }, - { "id": "t_floor_wax", "bg": 1786, "rotates": false }, - { "id": "t_fungus", "bg": 1749, "rotates": false }, - { "id": "t_fungus_floor_in", "bg": 1984, "rotates": false }, - { "id": "t_fungus_floor_out", "bg": 1986, "rotates": false }, - { "id": "t_fungus_floor_sup", "fg": 1985, "rotates": false }, - { "id": "t_fungus_mound", "fg": 1990, "rotates": false }, - { "id": "t_fungus_wall", "fg": 1987, "rotates": false }, - { "id": "t_fungus_wall_h", "fg": 1989, "rotates": false }, - { "id": "t_fungus_wall_v", "fg": 1988, "rotates": false }, - { "id": "t_gas_pump", "fg": 1942, "bg": 2004, "rotates": false }, - { "id": "t_gas_pump_a", "fg": 1865, "rotates": false }, - { "id": "t_gas_pump_smashed", "fg": 1943, "bg": 2004, "rotates": false }, - { "id": "t_gas_tank", "fg": 1864, "rotates": false }, - { "id": "t_gates_control_concrete", "fg": 1818, "rotates": false }, - { "id": "t_gates_mech_control", "fg": 1818, "rotates": false }, + { "id": "t_flat_roof", "bg": 1760, "rotates": false }, + { "id": "t_floor", "bg": 2063, "rotates": false }, + { "id": "t_floor_blue", "bg": 1955, "rotates": false }, + { "id": "t_floor_green", "bg": 1954, "rotates": false }, + { "id": "t_floor_red", "bg": 1953, "rotates": false }, + { "id": "t_floor_waxed", "bg": 1781, "rotates": false }, + { "id": "t_floor_wax", "bg": 1794, "rotates": false }, + { "id": "t_fungus", "bg": 1757, "rotates": false }, + { "id": "t_fungus_floor_in", "bg": 1989, "rotates": false }, + { "id": "t_fungus_floor_out", "bg": 1991, "rotates": false }, + { "id": "t_fungus_floor_sup", "fg": 1990, "rotates": false }, + { "id": "t_fungus_mound", "fg": 1995, "rotates": false }, + { "id": "t_fungus_wall", "fg": 1992, "rotates": false }, + { "id": "t_fungus_wall_h", "fg": 1994, "rotates": false }, + { "id": "t_fungus_wall_v", "fg": 1993, "rotates": false }, + { "id": "t_gas_pump", "fg": 1948, "bg": 2009, "rotates": false }, + { "id": "t_gas_pump_a", "fg": 1871, "rotates": false }, + { "id": "t_gas_pump_smashed", "fg": 1949, "bg": 2009, "rotates": false }, + { "id": "t_gas_tank", "fg": 1870, "rotates": false }, + { "id": "t_gates_control_concrete", "fg": 1825, "rotates": false }, + { "id": "t_gates_mech_control", "fg": 1825, "rotates": false }, { "id": "t_generator_broken", - "fg": 1998, + "fg": 2003, "multitile": true, - "additional_tiles": [ { "id": "corner", "fg": 1998, "bg": [ ] }, { "id": "t_connection", "fg": 2057, "bg": [ ] } ], + "additional_tiles": [ { "id": "corner", "fg": 2003 }, { "id": "t_connection", "fg": 2062 } ], "rotates": false }, - { "id": "t_grass", "fg": 2049, "rotates": false }, - { "id": "t_grass_white", "fg": 1891, "bg": 1516, "rotates": false }, - { "id": "t_grate", "fg": 2093, "rotates": false }, - { "id": "t_guardrail_bg_dp", "fg": 1959, "rotates": true }, - { "id": "t_hole", "bg": [ ], "rotates": false }, - { "id": "t_improvised_shelter", "fg": 1839, "rotates": false, "multitile": false }, - { "id": "t_ind_drill", "fg": 1919, "rotates": false, "multitile": false }, - { "id": "t_ind_furnace", "fg": 1918, "rotates": false, "multitile": false }, - { "id": "t_ind_press", "fg": 1920, "rotates": false }, - { "id": "t_ladder_down", "fg": 1758, "rotates": false }, - { "id": "t_ladder_up", "fg": 2084, "rotates": false }, - { "id": "t_lava", "fg": 1978, "rotates": false }, - { "id": "t_lgtn_arrest", "fg": 1882, "rotates": false, "multitile": false }, - { "id": "t_linoleum_gray", "bg": 1809, "rotates": false }, - { "id": "t_linoleum_white", "bg": 1792, "rotates": false }, - { "id": "t_little_column", "fg": 2002, "rotates": false }, - { "id": "t_machinery_electronic", "fg": 1921, "rotates": false }, - { "id": "t_machinery_heavy", "fg": 1925, "rotates": false }, - { "id": "t_machinery_light", "fg": 1922, "rotates": false }, - { "id": "t_machinery_old", "fg": 1926, "rotates": false }, - { "id": "t_manhole", "fg": 1816, "rotates": false }, - { "id": "t_manhole_cover", "fg": 1815, "bg": 2004, "rotates": false }, - { "id": "t_marloss", "fg": 1748, "rotates": false }, - { "id": "t_marloss_tree", "fg": 1856, "rotates": false }, - { "id": "t_mdoor_frame", "fg": 2069, "rotates": false }, - { "id": "t_metal", "bg": 1931, "rotates": false }, - { "id": "t_metal_floor", "bg": 2060, "rotates": false }, + { "id": "t_grass", "fg": 2054, "rotates": false }, + { "id": "t_grass_white", "fg": 1897, "bg": 1524, "rotates": false }, + { "id": "t_grate", "fg": 2098, "rotates": false }, + { "id": "t_guardrail_bg_dp", "fg": 1965, "rotates": true }, + { "id": "t_improvised_shelter", "fg": 1845, "rotates": false, "multitile": false }, + { "id": "t_ind_drill", "fg": 1925, "rotates": false, "multitile": false }, + { "id": "t_ind_furnace", "fg": 1924, "rotates": false, "multitile": false }, + { "id": "t_ind_press", "fg": 1926, "rotates": false }, + { "id": "t_ladder_down", "fg": 1766, "rotates": false }, + { "id": "t_ladder_up", "fg": 2089, "rotates": false }, + { "id": "t_lgtn_arrest", "fg": 1888, "rotates": false, "multitile": false }, + { "id": "t_linoleum_gray", "bg": 1817, "rotates": false }, + { "id": "t_linoleum_white", "bg": 1800, "rotates": false }, + { "id": "t_little_column", "fg": 2007, "rotates": false }, + { "id": "t_machinery_electronic", "fg": 1927, "rotates": false }, + { "id": "t_machinery_heavy", "fg": 1931, "rotates": false }, + { "id": "t_machinery_light", "fg": 1928, "rotates": false }, + { "id": "t_machinery_old", "fg": 1932, "rotates": false }, + { "id": "t_manhole", "fg": 1823, "rotates": false }, + { "id": "t_manhole_cover", "fg": 1822, "bg": 2009, "rotates": false }, + { "id": "t_marloss", "fg": 1756, "rotates": false }, + { "id": "t_marloss_tree", "fg": 1862, "rotates": false }, + { "id": "t_mdoor_frame", "fg": 2074, "rotates": false }, + { "id": "t_metal", "bg": 1937, "rotates": false }, + { "id": "t_metal_floor", "bg": 2065, "rotates": false }, { "id": "t_missile", - "fg": 1776, + "fg": 1784, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1776 }, - { "id": "corner", "fg": 1777 }, - { "id": "edge", "fg": 1776 }, - { "id": "t_connection", "fg": 1778 }, - { "id": "end_piece", "fg": 1776 }, - { "id": "unconnected", "fg": 1776 } + { "id": "center", "fg": 1784 }, + { "id": "corner", "fg": 1785 }, + { "id": "edge", "fg": 1784 }, + { "id": "t_connection", "fg": 1786 }, + { "id": "end_piece", "fg": 1784 }, + { "id": "unconnected", "fg": 1784 } ], "rotates": false }, - { "id": "t_missile_exploded", "fg": 1979, "rotates": false }, + { "id": "t_missile_exploded", "fg": 1984, "rotates": false }, { "id": "t_monkey_bars", - "fg": 1950, - "bg": [ ], + "fg": 1956, "multitile": true, - "additional_tiles": [ { "id": "center", "fg": 1950 }, { "id": "corner", "fg": 1951 }, { "id": "t_connection", "fg": 1952 } ], + "additional_tiles": [ { "id": "center", "fg": 1956 }, { "id": "corner", "fg": 1957 }, { "id": "t_connection", "fg": 1958 } ], "rotates": false }, - { "id": "t_m_frame", "fg": 1895, "rotates": false }, - { "id": "t_oil_circ_brkr_l", "fg": 1834, "rotates": false, "multitile": false }, - { "id": "t_oil_circ_brkr_s", "fg": 1835, "rotates": false, "multitile": false }, - { "id": "t_open_air", "bg": 1821, "rotates": false }, - { "id": "t_ov_reb_cage", "bg": 1931, "rotates": false }, - { "id": "t_ov_smreb_cage", "bg": 1931, "rotates": false }, - { "id": "t_palisade", "fg": 2081, "bg": 1924, "rotates": false }, - { "id": "t_palisade_gate", "fg": 1756, "bg": 1924, "rotates": false }, - { "id": "t_palisade_gate_o", "fg": 1757, "bg": 1924, "rotates": false }, - { "id": "t_palisade_pulley", "fg": 2082, "rotates": false }, - { "id": "t_paper", "fg": 2092, "rotates": false }, - { "id": "t_pavement", "bg": 2004, "rotates": false }, - { "id": "t_pavement_bg_dp", "bg": 2004, "rotates": false }, - { "id": "t_pavement_y", "fg": 1928, "bg": 2004, "rotates": false }, - { "id": "t_pavement_y_bg_dp", "fg": 1928, "bg": 2004, "rotates": false }, - { "id": "t_pedestal_temple", "fg": 2097, "rotates": false }, - { "id": "t_pedestal_wyrm", "fg": 2096, "rotates": false }, + { "id": "t_m_frame", "fg": 1901, "rotates": false }, + { "id": "t_oil_circ_brkr_l", "fg": 1840, "rotates": false, "multitile": false }, + { "id": "t_oil_circ_brkr_s", "fg": 1841, "rotates": false, "multitile": false }, + { "id": "t_open_air", "bg": 1827, "rotates": false }, + { "id": "t_ov_reb_cage", "bg": 1937, "rotates": false }, + { "id": "t_ov_smreb_cage", "bg": 1937, "rotates": false }, + { "id": "t_palisade", "fg": 2086, "bg": 1930, "rotates": false }, + { "id": "t_palisade_gate", "fg": 1764, "bg": 1930, "rotates": false }, + { "id": "t_palisade_gate_o", "fg": 1765, "bg": 1930, "rotates": false }, + { "id": "t_palisade_pulley", "fg": 2087, "rotates": false }, + { "id": "t_paper", "fg": 2097, "rotates": false }, + { "id": "t_pavement", "bg": 2009, "rotates": false }, + { "id": "t_pavement_bg_dp", "bg": 2009, "rotates": false }, + { "id": "t_pavement_y", "fg": 1934, "bg": 2009, "rotates": false }, + { "id": "t_pavement_y_bg_dp", "fg": 1934, "bg": 2009, "rotates": false }, + { "id": "t_pedestal_temple", "fg": 2102, "rotates": false }, + { "id": "t_pedestal_wyrm", "fg": 2101, "rotates": false }, { "id": "t_pit", - "fg": 1880, + "fg": 1886, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2022 }, - { "id": "corner", "fg": 2023 }, - { "id": "edge", "fg": 2024 }, - { "id": "t_connection", "fg": 2025 }, - { "id": "end_piece", "fg": 2026 }, - { "id": "unconnected", "fg": 1880 } + { "id": "center", "fg": 2027 }, + { "id": "corner", "fg": 2028 }, + { "id": "edge", "fg": 2029 }, + { "id": "t_connection", "fg": 2030 }, + { "id": "end_piece", "fg": 2031 }, + { "id": "unconnected", "fg": 1886 } ], "rotates": false }, { "id": "t_pit_corpsed", - "fg": 2033, + "fg": 2038, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2028 }, - { "id": "corner", "fg": 2029 }, - { "id": "edge", "fg": 2030 }, - { "id": "t_connection", "fg": 2031 }, - { "id": "end_piece", "fg": 2032 }, - { "id": "unconnected", "fg": 2033 } + { "id": "center", "fg": 2033 }, + { "id": "corner", "fg": 2034 }, + { "id": "edge", "fg": 2035 }, + { "id": "t_connection", "fg": 2036 }, + { "id": "end_piece", "fg": 2037 }, + { "id": "unconnected", "fg": 2038 } ], "rotates": false }, - { "id": "t_pit_covered", "bg": 1927, "rotates": false }, + { "id": "t_pit_covered", "bg": 1933, "rotates": false }, { "id": "t_pit_glass", - "fg": 1848, + "fg": 1854, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1843 }, - { "id": "corner", "fg": 1844 }, - { "id": "edge", "fg": 1845 }, - { "id": "t_connection", "fg": 1846 }, - { "id": "end_piece", "fg": 1847 }, - { "id": "unconnected", "fg": 1848 } + { "id": "center", "fg": 1849 }, + { "id": "corner", "fg": 1850 }, + { "id": "edge", "fg": 1851 }, + { "id": "t_connection", "fg": 1852 }, + { "id": "end_piece", "fg": 1853 }, + { "id": "unconnected", "fg": 1854 } ], "rotates": false }, - { "id": "t_pit_glass_covered", "bg": 1927, "rotates": false }, + { "id": "t_pit_glass_covered", "bg": 1933, "rotates": false }, { "id": "t_pit_shallow", - "fg": 1842, + "fg": 1848, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2039 }, - { "id": "corner", "fg": 2040 }, - { "id": "edge", "fg": 2041 }, - { "id": "t_connection", "fg": 2042 }, - { "id": "end_piece", "fg": 2043 }, - { "id": "unconnected", "fg": 1842 } + { "id": "center", "fg": 2044 }, + { "id": "corner", "fg": 2045 }, + { "id": "edge", "fg": 2046 }, + { "id": "t_connection", "fg": 2047 }, + { "id": "end_piece", "fg": 2048 }, + { "id": "unconnected", "fg": 1848 } ], "rotates": false }, { "id": "t_pit_spiked", - "fg": 1923, + "fg": 1929, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2034 }, - { "id": "corner", "fg": 2035 }, - { "id": "edge", "fg": 2036 }, - { "id": "t_connection", "fg": 2037 }, - { "id": "end_piece", "fg": 2038 }, - { "id": "unconnected", "fg": 1923 } + { "id": "center", "fg": 2039 }, + { "id": "corner", "fg": 2040 }, + { "id": "edge", "fg": 2041 }, + { "id": "t_connection", "fg": 2042 }, + { "id": "end_piece", "fg": 2043 }, + { "id": "unconnected", "fg": 1929 } ], "rotates": false }, - { "id": "t_pit_spiked_covered", "bg": 1927, "rotates": false }, - { "id": "t_plut_generator", "fg": 1838, "rotates": false, "multitile": false }, - { "id": "t_pontoon_dp", "fg": 2027, "rotates": true }, - { "id": "t_portcullis", "fg": 1789, "rotates": false }, - { "id": "t_potential_trans", "fg": 1835, "rotates": false, "multitile": false }, - { "id": "t_radio_controls", "fg": 1819, "rotates": false }, - { "id": "t_radio_tower", "fg": 1817, "bg": 2004, "rotates": false }, - { "id": "t_railing_h", "fg": 1960, "rotates": false }, - { "id": "t_railing_v", "fg": 1959, "rotates": false }, - { "id": "t_rdoor_boarded", "fg": 1841, "rotates": false }, - { "id": "t_rdoor_boarded_damaged", "fg": 1840, "rotates": false }, - { "id": "t_rdoor_b", "fg": 1769, "rotates": false }, - { "id": "t_rdoor_c", "fg": 1767, "rotates": false }, - { "id": "t_rdoor_o", "fg": 1768, "rotates": false }, + { "id": "t_pit_spiked_covered", "bg": 1933, "rotates": false }, + { "id": "t_plut_generator", "fg": 1844, "rotates": false, "multitile": false }, + { "id": "t_pontoon_dp", "fg": 2032, "rotates": true }, + { "id": "t_portcullis", "fg": 1797, "rotates": false }, + { "id": "t_potential_trans", "fg": 1841, "rotates": false, "multitile": false }, + { "id": "t_radio_controls", "fg": 2110, "rotates": false }, + { "id": "t_radio_tower", "fg": 1824, "bg": 2009, "rotates": false }, + { "id": "t_railing_h", "fg": 1966, "rotates": false }, + { "id": "t_railing_v", "fg": 1965, "rotates": false }, + { "id": "t_rdoor_boarded", "fg": 1847, "rotates": false }, + { "id": "t_rdoor_boarded_damaged", "fg": 1846, "rotates": false }, + { "id": "t_rdoor_b", "fg": 1777, "rotates": false }, + { "id": "t_rdoor_c", "fg": 1775, "rotates": false }, + { "id": "t_rdoor_o", "fg": 1776, "rotates": false }, { "id": "t_reb_cage", - "fg": 2087, + "fg": 2092, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2014 }, - { "id": "corner", "fg": 2006 }, - { "id": "edge", "fg": 2005 }, - { "id": "t_connection", "fg": 2015 }, - { "id": "end_piece", "fg": 2005 }, - { "id": "unconnected", "fg": 2087 } + { "id": "center", "fg": 2019 }, + { "id": "corner", "fg": 2011 }, + { "id": "edge", "fg": 2010 }, + { "id": "t_connection", "fg": 2020 }, + { "id": "end_piece", "fg": 2010 }, + { "id": "unconnected", "fg": 2092 } ], "rotates": false }, - { "id": "t_recycler", "fg": 1812, "rotates": false }, + { "id": "t_recycler", "fg": 1820, "rotates": false }, { "id": "t_reinforced_glass_h", - "fg": 1967, - "bg": 2058, + "fg": 1973, + "bg": 2063, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1967 }, - { "id": "corner", "fg": 1965 }, - { "id": "edge", "fg": 1967 }, - { "id": "t_connection", "fg": 1966 }, - { "id": "end_piece", "fg": 1967 }, - { "id": "unconnected", "fg": 1967 } + { "id": "center", "fg": 1973 }, + { "id": "corner", "fg": 1971 }, + { "id": "edge", "fg": 1973 }, + { "id": "t_connection", "fg": 1972 }, + { "id": "end_piece", "fg": 1973 }, + { "id": "unconnected", "fg": 1973 } ], "rotates": false }, { "id": "t_reinforced_glass_shutter", - "fg": 1911, - "bg": 1924, + "fg": 1917, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1910 }, - { "id": "corner", "fg": 1909 }, - { "id": "edge", "fg": 1911 }, - { "id": "t_connection", "fg": 1910 }, - { "id": "end_piece", "fg": 1911 }, - { "id": "unconnected", "fg": 1911 } + { "id": "center", "fg": 1916 }, + { "id": "corner", "fg": 1915 }, + { "id": "edge", "fg": 1917 }, + { "id": "t_connection", "fg": 1916 }, + { "id": "end_piece", "fg": 1917 }, + { "id": "unconnected", "fg": 1917 } ], "rotates": false }, { "id": [ "t_reinforced_glass", "t_reinforced_glass_shutter_open" ], - "fg": 1967, - "bg": 2058, + "fg": 1973, + "bg": 2063, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1967 }, - { "id": "corner", "fg": 1965 }, - { "id": "edge", "fg": 1967 }, - { "id": "t_connection", "fg": 1966 }, - { "id": "end_piece", "fg": 1967 }, - { "id": "unconnected", "fg": 1967 } + { "id": "center", "fg": 1973 }, + { "id": "corner", "fg": 1971 }, + { "id": "edge", "fg": 1973 }, + { "id": "t_connection", "fg": 1972 }, + { "id": "end_piece", "fg": 1973 }, + { "id": "unconnected", "fg": 1973 } ], "rotates": false }, { "id": "t_reinforced_glass_v", - "fg": 1967, - "bg": 2058, + "fg": 1973, + "bg": 2063, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1967 }, - { "id": "corner", "fg": 1965 }, - { "id": "edge", "fg": 1967 }, - { "id": "t_connection", "fg": 1966 }, - { "id": "end_piece", "fg": 1967 }, - { "id": "unconnected", "fg": 1967 } + { "id": "center", "fg": 1973 }, + { "id": "corner", "fg": 1971 }, + { "id": "edge", "fg": 1973 }, + { "id": "t_connection", "fg": 1972 }, + { "id": "end_piece", "fg": 1973 }, + { "id": "unconnected", "fg": 1973 } ], "rotates": false }, - { "id": "t_rock", "fg": 1810, "rotates": false }, - { "id": "t_rock_blue", "fg": 1946, "rotates": false }, - { "id": "t_rock_floor", "bg": 1930, "rotates": false }, - { "id": "t_rock_green", "fg": 1945, "rotates": false }, - { "id": "t_rock_red", "fg": 1944, "rotates": false }, + { "id": "t_rock", "fg": 1818, "rotates": false }, + { "id": "t_rock_blue", "fg": 1952, "rotates": false }, + { "id": "t_rock_floor", "bg": 1936, "rotates": false }, + { "id": "t_rock_green", "fg": 1951, "rotates": false }, + { "id": "t_rock_red", "fg": 1950, "rotates": false }, { "id": "t_rock_wall", - "fg": 1929, + "fg": 1935, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2054 }, - { "id": "corner", "fg": 2055 }, - { "id": "edge", "fg": 1929 }, - { "id": "t_connection", "fg": 2056 }, - { "id": "end_piece", "fg": 1929 }, - { "id": "unconnected", "fg": 1929 } + { "id": "center", "fg": 2059 }, + { "id": "corner", "fg": 2060 }, + { "id": "edge", "fg": 1935 }, + { "id": "t_connection", "fg": 2061 }, + { "id": "end_piece", "fg": 1935 }, + { "id": "unconnected", "fg": 1935 } ], "rotates": false }, - { "id": "t_rock_wall_half", "fg": 1811, "rotates": false }, + { "id": "t_rock_wall_half", "fg": 1819, "rotates": false }, { "id": "t_root_wall", - "fg": 2046, + "fg": 2051, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2050 }, - { "id": "corner", "fg": 2051 }, - { "id": "edge", "fg": 2046 }, - { "id": "t_connection", "fg": 2052 }, - { "id": "end_piece", "fg": 2053 }, - { "id": "unconnected", "fg": 2046 } + { "id": "center", "fg": 2055 }, + { "id": "corner", "fg": 2056 }, + { "id": "edge", "fg": 2051 }, + { "id": "t_connection", "fg": 2057 }, + { "id": "end_piece", "fg": 2058 }, + { "id": "unconnected", "fg": 2051 } ], "rotates": false }, - { "id": "t_rope_up", "fg": 1790, "rotates": false }, - { "id": "t_rubble", "bg": 1940, "rotates": false }, - { "id": "t_sai_box", "fg": 329, "rotates": false }, - { "id": "t_sai_box_damaged", "fg": 330, "rotates": false }, + { "id": "t_rope_up", "fg": 1798, "rotates": false }, + { "id": "t_rubble", "bg": 1946, "rotates": false }, + { "id": "t_sai_box", "fg": 337, "rotates": false }, + { "id": "t_sai_box_damaged", "fg": 338, "rotates": false }, { "id": "t_sandbox", - "fg": 1833, + "fg": 1839, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1829 }, - { "id": "corner", "fg": 1932 }, - { "id": "edge", "fg": 1830 }, - { "id": "t_connection", "fg": 1831 }, - { "id": "end_piece", "fg": 1832 }, - { "id": "unconnected", "fg": 1833 } + { "id": "center", "fg": 1835 }, + { "id": "corner", "fg": 1938 }, + { "id": "edge", "fg": 1836 }, + { "id": "t_connection", "fg": 1837 }, + { "id": "end_piece", "fg": 1838 }, + { "id": "unconnected", "fg": 1839 } ], "rotates": false }, - { "id": "t_sandmound", "bg": 1824, "rotates": false }, - { "id": "t_sand", "bg": 1935, "rotates": false }, + { "id": "t_sandmound", "bg": 1830, "rotates": false }, + { "id": "t_sand", "bg": 1941, "rotates": false }, { "id": "t_sconc_wall", - "fg": 1929, + "fg": 1935, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2054 }, - { "id": "corner", "fg": 2055 }, - { "id": "edge", "fg": 1929 }, - { "id": "t_connection", "fg": 2056 }, - { "id": "end_piece", "fg": 1929 }, - { "id": "unconnected", "fg": 1929 } + { "id": "center", "fg": 2059 }, + { "id": "corner", "fg": 2060 }, + { "id": "edge", "fg": 1935 }, + { "id": "t_connection", "fg": 2061 }, + { "id": "end_piece", "fg": 1935 }, + { "id": "unconnected", "fg": 1935 } ], "rotates": false }, - { "id": "t_sconc_wall_halfway", "fg": 1811, "rotates": false }, - { "id": "t_scrap_floor", "bg": 2060, "rotates": false }, + { "id": "t_sconc_wall_halfway", "fg": 1819, "rotates": false }, + { "id": "t_scrap_floor", "bg": 2065, "rotates": false }, { "id": "t_scrap_wall", - "fg": 1964, - "bg": 1924, + "fg": 1970, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1964 }, - { "id": "corner", "fg": 1962 }, - { "id": "edge", "fg": 1964 }, - { "id": "t_connection", "fg": 1963 }, - { "id": "end_piece", "fg": 1964 }, - { "id": "unconnected", "fg": 1964 } + { "id": "center", "fg": 1970 }, + { "id": "corner", "fg": 1968 }, + { "id": "edge", "fg": 1970 }, + { "id": "t_connection", "fg": 1969 }, + { "id": "end_piece", "fg": 1970 }, + { "id": "unconnected", "fg": 1970 } ], "rotates": false }, - { "id": "t_searth_test", "bg": 1791, "rotates": false }, - { "id": "t_sewage", "bg": 2094, "rotates": false }, + { "id": "t_searth_test", "bg": 1799, "rotates": false }, + { "id": "t_sewage", "bg": 2099, "rotates": false }, { "id": [ "t_sewage_pipe", "t_ind_pipe" ], - "fg": 1939, + "fg": 1945, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1993 }, - { "id": "corner", "fg": 1994 }, - { "id": "edge", "fg": 1995 }, - { "id": "t_connection", "fg": 1996 }, - { "id": "end_piece", "fg": 1997 }, - { "id": "unconnected", "fg": 1939 } + { "id": "center", "fg": 1998 }, + { "id": "corner", "fg": 1999 }, + { "id": "edge", "fg": 2000 }, + { "id": "t_connection", "fg": 2001 }, + { "id": "end_piece", "fg": 2002 }, + { "id": "unconnected", "fg": 1945 } ], "rotates": false }, - { "id": "t_sewage_pump", "fg": 1938, "rotates": false }, - { "id": "t_shrub", "fg": 2086, "bg": 1924, "rotates": false }, - { "id": "t_shrub_blueberry", "fg": 2065, "bg": 1935, "rotates": false }, - { "id": "t_shrub_blueberry_harvested", "fg": 1883, "bg": 1935, "rotates": false }, - { "id": "t_shrub_blueberry_harvested", "fg": 1851, "bg": 1935, "rotates": false }, - { "id": "t_shrub_fungal", "fg": 1991, "rotates": false }, - { "id": "t_shrub_strawberry", "fg": 2076, "bg": 1935, "rotates": false }, - { "id": "t_shrub_strawberry_harvested", "fg": 1883, "bg": 1935, "rotates": false }, - { "id": "t_shrub_strawberry_harvested", "fg": 1852, "bg": 1935, "rotates": false }, - { "id": "t_sidewalk", "bg": 1961, "rotates": false }, - { "id": "t_sidewalk_bg_dp", "bg": 1961, "rotates": false }, - { "id": "t_skylight", "bg": 1792, "rotates": false }, + { "id": "t_sewage_pump", "fg": 1944, "rotates": false }, + { "id": "t_shrub", "fg": 2091, "bg": 1930, "rotates": false }, + { "id": "t_shrub_blueberry", "fg": 2070, "bg": 1941, "rotates": false }, + { "id": "t_shrub_blueberry_harvested", "fg": 1889, "bg": 1941, "rotates": false }, + { "id": "t_shrub_blueberry_harvested", "fg": 1857, "bg": 1941, "rotates": false }, + { "id": "t_shrub_fungal", "fg": 1996, "rotates": false }, + { "id": "t_shrub_strawberry", "fg": 2081, "bg": 1941, "rotates": false }, + { "id": "t_shrub_strawberry_harvested", "fg": 1889, "bg": 1941, "rotates": false }, + { "id": "t_shrub_strawberry_harvested", "fg": 1858, "bg": 1941, "rotates": false }, + { "id": "t_sidewalk", "bg": 1967, "rotates": false }, + { "id": "t_sidewalk_bg_dp", "bg": 1967, "rotates": false }, + { "id": "t_skylight", "bg": 1800, "rotates": false }, { "id": "t_slide", - "fg": 1954, - "bg": [ ], + "fg": 1960, "multitile": true, - "additional_tiles": [ { "id": "edge", "fg": 1954 }, { "id": "end_piece", "fg": 1953 } ], + "additional_tiles": [ { "id": "edge", "fg": 1960 }, { "id": "end_piece", "fg": 1959 } ], "rotates": false }, - { "id": "t_slime", "fg": 2094, "rotates": false }, - { "id": "t_slope_down", "fg": 2099, "rotates": false }, - { "id": "t_slope_up", "fg": 2095, "rotates": false }, - { "id": "t_slot_machine", "fg": 1793, "rotates": false }, - { "id": "t_stairs_down", "fg": 1763, "rotates": false }, - { "id": "t_stairs_up", "fg": 1762, "rotates": false }, - { "id": "t_station_disc", "fg": 1836, "rotates": false, "multitile": false }, + { "id": "t_slime", "fg": 2099, "rotates": false }, + { "id": "t_slope_down", "fg": 2104, "rotates": false }, + { "id": "t_slope_up", "fg": 2100, "rotates": false }, + { "id": "t_slot_machine", "fg": 1801, "rotates": false }, + { "id": "t_stairs_down", "fg": 1771, "rotates": false }, + { "id": "t_stairs_up", "fg": 1770, "rotates": false }, + { "id": "t_station_disc", "fg": 1842, "rotates": false, "multitile": false }, { "id": [ "t_stone_wall_line", "t_rock_wall" ], - "fg": 1964, - "bg": 1924, + "fg": 1970, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1908 }, - { "id": "corner", "fg": 1904 }, - { "id": "edge", "fg": 1906 }, - { "id": "t_connection", "fg": 1905 }, - { "id": "end_piece", "fg": 1907 }, - { "id": "unconnected", "fg": 1903 } + { "id": "center", "fg": 1914 }, + { "id": "corner", "fg": 1910 }, + { "id": "edge", "fg": 1912 }, + { "id": "t_connection", "fg": 1911 }, + { "id": "end_piece", "fg": 1913 }, + { "id": "unconnected", "fg": 1909 } ], "rotates": false }, - { "id": "t_strconc_floor", "bg": 1752, "rotates": false }, - { "id": "t_strconc_floor_halfway", "fg": 1809, "rotates": false }, + { "id": "t_strconc_floor", "bg": 1760, "rotates": false }, + { "id": "t_strconc_floor_halfway", "fg": 1817, "rotates": false }, { "id": "t_strconc_wall", - "fg": 1929, + "fg": 1935, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2054 }, - { "id": "corner", "fg": 2055 }, - { "id": "edge", "fg": 1929 }, - { "id": "t_connection", "fg": 2056 }, - { "id": "end_piece", "fg": 1929 }, - { "id": "unconnected", "fg": 1929 } + { "id": "center", "fg": 2059 }, + { "id": "corner", "fg": 2060 }, + { "id": "edge", "fg": 1935 }, + { "id": "t_connection", "fg": 2061 }, + { "id": "end_piece", "fg": 1935 }, + { "id": "unconnected", "fg": 1935 } ], "rotates": false }, - { "id": "t_strconc_wall_halfway", "fg": 1811, "rotates": false }, - { "id": "t_support_l", "fg": 2002, "rotates": false }, - { "id": "t_support_s", "fg": 1980, "bg": 1924, "rotates": false }, - { "id": "t_swater_dp", "fg": 1958, "rotates": false }, - { "id": "t_swater_sh", "fg": 1957, "rotates": false }, - { "id": "t_switchgear_l", "fg": 1881, "rotates": false }, - { "id": "t_switchgear_s", "fg": 1881, "rotates": false }, - { "id": "t_switch_even", "fg": 1766, "rotates": false }, - { "id": "t_switch_gb", "fg": 1764, "rotates": false }, - { "id": "t_switch_rb", "fg": 1765, "rotates": false }, - { "id": "t_switch_rg", "fg": 2098, "rotates": false }, - { "id": "t_thconc_floor", "bg": 1752, "rotates": false }, - { "id": "t_tree", "fg": 1759, "bg": 1924, "rotates": false }, - { "id": "t_tree_apple", "fg": 1825, "bg": 1924, "rotates": false }, - { "id": "t_tree_apple_harvested", "fg": 1853, "bg": 1924, "rotates": false }, - { "id": "t_tree_apple_season_spring", "fg": 1855, "bg": 1924, "rotates": false }, - { "id": "t_tree_apple_season_summer", "fg": 1853, "bg": 1924, "rotates": false }, - { "id": "t_tree_apple_season_winter", "fg": 1870, "bg": 1924, "rotates": false }, - { "id": "t_tree_apricot", "fg": 1826, "bg": 1924, "rotates": false }, - { "id": "t_tree_apricot_harvested", "fg": 1854, "bg": 1924, "rotates": false }, - { "id": "t_tree_apricot_season_autumn", "fg": 1869, "bg": 1924, "rotates": false }, - { "id": "t_tree_apricot_season_spring", "fg": 1855, "bg": 1924, "rotates": false }, - { "id": "t_tree_apricot_season_winter", "fg": 1870, "bg": 1924, "rotates": false }, - { "id": "t_tree_birch", "fg": 1913, "rotates": false, "multitile": false }, - { "id": "t_tree_birch_harvested", "fg": 1913, "rotates": false, "multitile": false }, - { "id": "t_tree_blackjack", "fg": 1866, "bg": 1924, "rotates": false }, - { "id": "t_tree_blackjack_season_autumn", "fg": 1867, "bg": 1924, "rotates": false }, - { "id": "t_tree_blackjack_season_spring", "fg": 1874, "bg": 1924, "rotates": false }, - { "id": "t_tree_blackjack_season_winter", "fg": 1868, "bg": 1924, "rotates": false }, - { "id": "t_tree_cherry", "fg": 1770, "bg": 1924, "rotates": false }, - { "id": "t_tree_cherry_harvested", "fg": 1855, "bg": 1924, "rotates": false }, - { "id": "t_tree_cherry_season_autumn", "fg": 1869, "bg": 1924, "rotates": false }, - { "id": "t_tree_cherry_season_spring", "fg": 1855, "bg": 1924, "rotates": false }, - { "id": "t_tree_cherry_season_winter", "fg": 1870, "bg": 1924, "rotates": false }, - { "id": "t_tree_deadpine", "fg": 1828, "bg": 1924, "rotates": false }, - { "id": "t_tree_dead", "fg": 1912, "rotates": false, "multitile": false }, - { "id": "t_tree_fungal", "fg": 1751, "rotates": false }, - { "id": "t_tree_fungal_young", "fg": 1992, "rotates": false }, - { "id": "t_tree_hickory", "fg": 1915, "rotates": false, "multitile": false }, - { "id": "t_tree_hickory_dead", "fg": 1917, "rotates": false, "multitile": false }, - { "id": "t_tree_hickory_harvested", "fg": 1915, "rotates": false, "multitile": false }, - { "id": "t_tree_maple", "fg": 1916, "rotates": false, "multitile": false }, - { "id": "t_tree_maple_tapped", "fg": 1916, "rotates": false, "multitile": false }, - { "id": "t_tree_peach", "fg": 1826, "bg": 1924, "rotates": false }, - { "id": "t_tree_peach_harvested", "fg": 1854, "bg": 1924, "rotates": false }, - { "id": "t_tree_peach_season_autumn", "fg": 1869, "bg": 1924, "rotates": false }, - { "id": "t_tree_peach_season_spring", "fg": 1855, "bg": 1924, "rotates": false }, - { "id": "t_tree_peach_season_winter", "fg": 1870, "bg": 1924, "rotates": false }, - { "id": "t_tree_pear", "fg": 1825, "bg": 1924, "rotates": false }, - { "id": "t_tree_pear_harvested", "fg": 1853, "bg": 1924, "rotates": false }, - { "id": "t_tree_pear_season_spring", "fg": 1855, "bg": 1924, "rotates": false }, - { "id": "t_tree_pear_season_summer", "fg": 1853, "bg": 1924, "rotates": false }, - { "id": "t_tree_pear_season_winter", "fg": 1870, "bg": 1924, "rotates": false }, - { "id": "t_tree_pine", "fg": 1827, "bg": 1924, "rotates": false }, - { "id": "t_tree_plum", "fg": 1770, "bg": 1924, "rotates": false }, - { "id": "t_tree_plum_harvested", "fg": 1855, "bg": 1924, "rotates": false }, - { "id": "t_tree_plum_season_autumn", "fg": 1869, "bg": 1924, "rotates": false }, - { "id": "t_tree_plum_season_spring", "fg": 1855, "bg": 1924, "rotates": false }, - { "id": "t_tree_plum_season_winter", "fg": 1870, "bg": 1924, "rotates": false }, - { "id": "t_tree_season_autumn", "fg": 1869, "bg": 1924, "rotates": false }, - { "id": "t_tree_season_spring", "fg": 1853, "bg": 1924, "rotates": false }, - { "id": "t_tree_season_winter", "fg": 1870, "bg": 1924, "rotates": false }, - { "id": "t_tree_willow", "fg": 1914, "rotates": false, "multitile": false }, - { "id": "t_tree_willow_harvested", "fg": 1914, "rotates": false, "multitile": false }, - { "id": "t_tree_young", "fg": 2100, "bg": 1924, "rotates": false }, - { "id": "t_tree_young_season_autumn", "fg": 1872, "bg": 1924, "rotates": false }, - { "id": "t_tree_young_season_spring", "fg": 1871, "bg": 1924, "rotates": false }, - { "id": "t_tree_young_season_winter", "fg": 1873, "bg": 1924, "rotates": false }, - { "id": "t_trunk", "fg": 1936, "rotates": false }, - { "id": "t_underbrush", "fg": 1937, "bg": 1924, "rotates": false }, - { "id": "t_underbrush_harvested_autumn", "fg": 1883, "bg": 1924, "rotates": false }, - { "id": "t_underbrush_harvested_spring", "fg": 1883, "bg": 1924, "rotates": false }, - { "id": "t_underbrush_harvested_summer", "fg": 1883, "bg": 1924, "rotates": false }, - { "id": "t_underbrush_harvested_winter", "fg": 1883, "bg": 1924, "rotates": false }, - { "id": "t_utility_light", "bg": 1822, "rotates": false }, - { "id": "t_vat", "fg": 1933, "rotates": false }, + { "id": "t_strconc_wall_halfway", "fg": 1819, "rotates": false }, + { "id": "t_support_l", "fg": 2007, "rotates": false }, + { "id": "t_support_s", "fg": 1985, "bg": 1930, "rotates": false }, + { "id": "t_swater_dp", "fg": 1964, "rotates": false }, + { "id": "t_swater_sh", "fg": 1963, "rotates": false }, + { "id": "t_switchgear_l", "fg": 1887, "rotates": false }, + { "id": "t_switchgear_s", "fg": 1887, "rotates": false }, + { "id": "t_switch_even", "fg": 1774, "rotates": false }, + { "id": "t_switch_gb", "fg": 1772, "rotates": false }, + { "id": "t_switch_rb", "fg": 1773, "rotates": false }, + { "id": "t_switch_rg", "fg": 2103, "rotates": false }, + { "id": "t_thconc_floor", "bg": 1760, "rotates": false }, + { "id": "t_tree", "fg": 1767, "bg": 1930, "rotates": false }, + { "id": "t_tree_apple", "fg": 1831, "bg": 1930, "rotates": false }, + { "id": "t_tree_apple_harvested", "fg": 1859, "bg": 1930, "rotates": false }, + { "id": "t_tree_apple_season_spring", "fg": 1861, "bg": 1930, "rotates": false }, + { "id": "t_tree_apple_season_summer", "fg": 1859, "bg": 1930, "rotates": false }, + { "id": "t_tree_apple_season_winter", "fg": 1876, "bg": 1930, "rotates": false }, + { "id": "t_tree_apricot", "fg": 1832, "bg": 1930, "rotates": false }, + { "id": "t_tree_apricot_harvested", "fg": 1860, "bg": 1930, "rotates": false }, + { "id": "t_tree_apricot_season_autumn", "fg": 1875, "bg": 1930, "rotates": false }, + { "id": "t_tree_apricot_season_spring", "fg": 1861, "bg": 1930, "rotates": false }, + { "id": "t_tree_apricot_season_winter", "fg": 1876, "bg": 1930, "rotates": false }, + { "id": "t_tree_birch", "fg": 1919, "rotates": false, "multitile": false }, + { "id": "t_tree_birch_harvested", "fg": 1919, "rotates": false, "multitile": false }, + { "id": "t_tree_blackjack", "fg": 1872, "bg": 1930, "rotates": false }, + { "id": "t_tree_blackjack_season_autumn", "fg": 1873, "bg": 1930, "rotates": false }, + { "id": "t_tree_blackjack_season_spring", "fg": 1880, "bg": 1930, "rotates": false }, + { "id": "t_tree_blackjack_season_winter", "fg": 1874, "bg": 1930, "rotates": false }, + { "id": "t_tree_cherry", "fg": 1778, "bg": 1930, "rotates": false }, + { "id": "t_tree_cherry_harvested", "fg": 1861, "bg": 1930, "rotates": false }, + { "id": "t_tree_cherry_season_autumn", "fg": 1875, "bg": 1930, "rotates": false }, + { "id": "t_tree_cherry_season_spring", "fg": 1861, "bg": 1930, "rotates": false }, + { "id": "t_tree_cherry_season_winter", "fg": 1876, "bg": 1930, "rotates": false }, + { "id": "t_tree_deadpine", "fg": 1834, "bg": 1930, "rotates": false }, + { "id": "t_tree_dead", "fg": 1918, "rotates": false, "multitile": false }, + { "id": "t_tree_fungal", "fg": 1759, "rotates": false }, + { "id": "t_tree_fungal_young", "fg": 1997, "rotates": false }, + { "id": "t_tree_hickory", "fg": 1921, "rotates": false, "multitile": false }, + { "id": "t_tree_hickory_dead", "fg": 1923, "rotates": false, "multitile": false }, + { "id": "t_tree_hickory_harvested", "fg": 1921, "rotates": false, "multitile": false }, + { "id": "t_tree_maple", "fg": 1922, "rotates": false, "multitile": false }, + { "id": "t_tree_maple_tapped", "fg": 1922, "rotates": false, "multitile": false }, + { "id": "t_tree_peach", "fg": 1832, "bg": 1930, "rotates": false }, + { "id": "t_tree_peach_harvested", "fg": 1860, "bg": 1930, "rotates": false }, + { "id": "t_tree_peach_season_autumn", "fg": 1875, "bg": 1930, "rotates": false }, + { "id": "t_tree_peach_season_spring", "fg": 1861, "bg": 1930, "rotates": false }, + { "id": "t_tree_peach_season_winter", "fg": 1876, "bg": 1930, "rotates": false }, + { "id": "t_tree_pear", "fg": 1831, "bg": 1930, "rotates": false }, + { "id": "t_tree_pear_harvested", "fg": 1859, "bg": 1930, "rotates": false }, + { "id": "t_tree_pear_season_spring", "fg": 1861, "bg": 1930, "rotates": false }, + { "id": "t_tree_pear_season_summer", "fg": 1859, "bg": 1930, "rotates": false }, + { "id": "t_tree_pear_season_winter", "fg": 1876, "bg": 1930, "rotates": false }, + { "id": "t_tree_pine", "fg": 1833, "bg": 1930, "rotates": false }, + { "id": "t_tree_plum", "fg": 1778, "bg": 1930, "rotates": false }, + { "id": "t_tree_plum_harvested", "fg": 1861, "bg": 1930, "rotates": false }, + { "id": "t_tree_plum_season_autumn", "fg": 1875, "bg": 1930, "rotates": false }, + { "id": "t_tree_plum_season_spring", "fg": 1861, "bg": 1930, "rotates": false }, + { "id": "t_tree_plum_season_winter", "fg": 1876, "bg": 1930, "rotates": false }, + { "id": "t_tree_season_autumn", "fg": 1875, "bg": 1930, "rotates": false }, + { "id": "t_tree_season_spring", "fg": 1859, "bg": 1930, "rotates": false }, + { "id": "t_tree_season_winter", "fg": 1876, "bg": 1930, "rotates": false }, + { "id": "t_tree_willow", "fg": 1920, "rotates": false, "multitile": false }, + { "id": "t_tree_willow_harvested", "fg": 1920, "rotates": false, "multitile": false }, + { "id": "t_tree_young", "fg": 2105, "bg": 1930, "rotates": false }, + { "id": "t_tree_young_season_autumn", "fg": 1878, "bg": 1930, "rotates": false }, + { "id": "t_tree_young_season_spring", "fg": 1877, "bg": 1930, "rotates": false }, + { "id": "t_tree_young_season_winter", "fg": 1879, "bg": 1930, "rotates": false }, + { "id": "t_trunk", "fg": 1942, "rotates": false }, + { "id": "t_underbrush", "fg": 1943, "bg": 1930, "rotates": false }, + { "id": "t_underbrush_harvested_autumn", "fg": 1889, "bg": 1930, "rotates": false }, + { "id": "t_underbrush_harvested_spring", "fg": 1889, "bg": 1930, "rotates": false }, + { "id": "t_underbrush_harvested_summer", "fg": 1889, "bg": 1930, "rotates": false }, + { "id": "t_underbrush_harvested_winter", "fg": 1889, "bg": 1930, "rotates": false }, + { "id": "t_utility_light", "bg": 1828, "rotates": false }, + { "id": "t_vat", "fg": 1939, "rotates": false }, { "id": "t_wall", - "fg": 2085, - "bg": 1935, + "fg": 2090, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2085 }, - { "id": "corner", "fg": 1955 }, - { "id": "edge", "fg": 2085 }, - { "id": "t_connection", "fg": 1956 }, - { "id": "end_piece", "fg": 2085 }, - { "id": "unconnected", "fg": 2085 } + { "id": "center", "fg": 2090 }, + { "id": "corner", "fg": 1961 }, + { "id": "edge", "fg": 2090 }, + { "id": "t_connection", "fg": 1962 }, + { "id": "end_piece", "fg": 2090 }, + { "id": "unconnected", "fg": 2090 } ], "rotates": false }, { "id": "t_wall_b", - "fg": 1797, - "bg": 1935, + "fg": 1805, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1797 }, - { "id": "corner", "fg": 1798 }, - { "id": "edge", "fg": 1797 }, - { "id": "t_connection", "fg": 1799 }, - { "id": "end_piece", "fg": 1797 }, - { "id": "unconnected", "fg": 1797 } + { "id": "center", "fg": 1805 }, + { "id": "corner", "fg": 1806 }, + { "id": "edge", "fg": 1805 }, + { "id": "t_connection", "fg": 1807 }, + { "id": "end_piece", "fg": 1805 }, + { "id": "unconnected", "fg": 1805 } ], "rotates": false }, { "id": "t_wall_glass", - "fg": 1974, - "bg": [ ], + "fg": 1980, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1974 }, - { "id": "corner", "fg": 1975 }, - { "id": "edge", "fg": 1974 }, - { "id": "t_connection", "fg": 1753 }, - { "id": "end_piece", "fg": 1974 }, - { "id": "unconnected", "fg": 1974 } + { "id": "center", "fg": 1980 }, + { "id": "corner", "fg": 1981 }, + { "id": "edge", "fg": 1980 }, + { "id": "t_connection", "fg": 1761 }, + { "id": "end_piece", "fg": 1980 }, + { "id": "unconnected", "fg": 1980 } ], "rotates": false }, { "id": "t_wall_glass_alarm", - "fg": 1967, - "bg": 2058, + "fg": 1973, + "bg": 2063, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1967 }, - { "id": "corner", "fg": 1965 }, - { "id": "edge", "fg": 1967 }, - { "id": "t_connection", "fg": 1966 }, - { "id": "end_piece", "fg": 1967 }, - { "id": "unconnected", "fg": 1967 } + { "id": "center", "fg": 1973 }, + { "id": "corner", "fg": 1971 }, + { "id": "edge", "fg": 1973 }, + { "id": "t_connection", "fg": 1972 }, + { "id": "end_piece", "fg": 1973 }, + { "id": "unconnected", "fg": 1973 } ], "rotates": false }, { "id": "t_wall_glass_h", - "fg": 1974, - "bg": [ ], + "fg": 1980, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1974 }, - { "id": "corner", "fg": 1975 }, - { "id": "edge", "fg": 1974 }, - { "id": "t_connection", "fg": 1753 }, - { "id": "end_piece", "fg": 1974 }, - { "id": "unconnected", "fg": 1974 } + { "id": "center", "fg": 1980 }, + { "id": "corner", "fg": 1981 }, + { "id": "edge", "fg": 1980 }, + { "id": "t_connection", "fg": 1761 }, + { "id": "end_piece", "fg": 1980 }, + { "id": "unconnected", "fg": 1980 } ], "rotates": false }, { "id": "t_wall_glass_h_alarm", - "fg": 1967, - "bg": 2058, + "fg": 1973, + "bg": 2063, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1967 }, - { "id": "corner", "fg": 1965 }, - { "id": "edge", "fg": 1967 }, - { "id": "t_connection", "fg": 1966 }, - { "id": "end_piece", "fg": 1967 }, - { "id": "unconnected", "fg": 1967 } + { "id": "center", "fg": 1973 }, + { "id": "corner", "fg": 1971 }, + { "id": "edge", "fg": 1973 }, + { "id": "t_connection", "fg": 1972 }, + { "id": "end_piece", "fg": 1973 }, + { "id": "unconnected", "fg": 1973 } ], "rotates": false }, { "id": "t_wall_glass_v", - "fg": 1974, - "bg": [ ], + "fg": 1980, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1974 }, - { "id": "corner", "fg": 1975 }, - { "id": "edge", "fg": 1974 }, - { "id": "t_connection", "fg": 1753 }, - { "id": "end_piece", "fg": 1974 }, - { "id": "unconnected", "fg": 1974 } + { "id": "center", "fg": 1980 }, + { "id": "corner", "fg": 1981 }, + { "id": "edge", "fg": 1980 }, + { "id": "t_connection", "fg": 1761 }, + { "id": "end_piece", "fg": 1980 }, + { "id": "unconnected", "fg": 1980 } ], "rotates": false }, { "id": "t_wall_glass_v_alarm", - "fg": 1967, - "bg": 2058, + "fg": 1973, + "bg": 2063, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1967 }, - { "id": "corner", "fg": 1965 }, - { "id": "edge", "fg": 1967 }, - { "id": "t_connection", "fg": 1966 }, - { "id": "end_piece", "fg": 1967 }, - { "id": "unconnected", "fg": 1967 } + { "id": "center", "fg": 1973 }, + { "id": "corner", "fg": 1971 }, + { "id": "edge", "fg": 1973 }, + { "id": "t_connection", "fg": 1972 }, + { "id": "end_piece", "fg": 1973 }, + { "id": "unconnected", "fg": 1973 } ], "rotates": false }, { "id": "t_wall_g", - "fg": 1800, - "bg": 1935, + "fg": 1808, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1800 }, - { "id": "corner", "fg": 1801 }, - { "id": "edge", "fg": 1800 }, - { "id": "t_connection", "fg": 1802 }, - { "id": "end_piece", "fg": 1800 }, - { "id": "unconnected", "fg": 1800 } + { "id": "center", "fg": 1808 }, + { "id": "corner", "fg": 1809 }, + { "id": "edge", "fg": 1808 }, + { "id": "t_connection", "fg": 1810 }, + { "id": "end_piece", "fg": 1808 }, + { "id": "unconnected", "fg": 1808 } ], "rotates": false }, - { "id": "t_wall_half", "fg": 2077, "rotates": false }, + { "id": "t_wall_half", "fg": 2082, "rotates": false }, { "id": "t_wall_h", - "fg": 2085, - "bg": 1935, + "fg": 2090, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2085 }, - { "id": "corner", "fg": 1955 }, - { "id": "edge", "fg": 2085 }, - { "id": "t_connection", "fg": 1956 }, - { "id": "end_piece", "fg": 2085 }, - { "id": "unconnected", "fg": 2085 } + { "id": "center", "fg": 2090 }, + { "id": "corner", "fg": 1961 }, + { "id": "edge", "fg": 2090 }, + { "id": "t_connection", "fg": 1962 }, + { "id": "end_piece", "fg": 2090 }, + { "id": "unconnected", "fg": 2090 } ], "rotates": false }, { "id": "t_wall_h_b", - "fg": 1797, - "bg": 1935, + "fg": 1805, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1797 }, - { "id": "corner", "fg": 1798 }, - { "id": "edge", "fg": 1797 }, - { "id": "t_connection", "fg": 1799 }, - { "id": "end_piece", "fg": 1797 }, - { "id": "unconnected", "fg": 1797 } + { "id": "center", "fg": 1805 }, + { "id": "corner", "fg": 1806 }, + { "id": "edge", "fg": 1805 }, + { "id": "t_connection", "fg": 1807 }, + { "id": "end_piece", "fg": 1805 }, + { "id": "unconnected", "fg": 1805 } ], "rotates": false }, { "id": "t_wall_h_g", - "fg": 1800, - "bg": 1935, + "fg": 1808, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1800 }, - { "id": "corner", "fg": 1801 }, - { "id": "edge", "fg": 1800 }, - { "id": "t_connection", "fg": 1802 }, - { "id": "end_piece", "fg": 1800 }, - { "id": "unconnected", "fg": 1800 } + { "id": "center", "fg": 1808 }, + { "id": "corner", "fg": 1809 }, + { "id": "edge", "fg": 1808 }, + { "id": "t_connection", "fg": 1810 }, + { "id": "end_piece", "fg": 1808 }, + { "id": "unconnected", "fg": 1808 } ], "rotates": false }, { "id": "t_wall_h_p", - "fg": 1806, - "bg": 1935, + "fg": 1814, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1806 }, - { "id": "corner", "fg": 1807 }, - { "id": "edge", "fg": 1806 }, - { "id": "t_connection", "fg": 1808 }, - { "id": "end_piece", "fg": 1806 }, - { "id": "unconnected", "fg": 1806 } + { "id": "center", "fg": 1814 }, + { "id": "corner", "fg": 1815 }, + { "id": "edge", "fg": 1814 }, + { "id": "t_connection", "fg": 1816 }, + { "id": "end_piece", "fg": 1814 }, + { "id": "unconnected", "fg": 1814 } ], "rotates": false }, { "id": "t_wall_h_r", - "fg": 1794, - "bg": 1935, + "fg": 1802, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1794 }, - { "id": "corner", "fg": 1795 }, - { "id": "edge", "fg": 1794 }, - { "id": "t_connection", "fg": 1796 }, - { "id": "end_piece", "fg": 1794 }, - { "id": "unconnected", "fg": 1794 } + { "id": "center", "fg": 1802 }, + { "id": "corner", "fg": 1803 }, + { "id": "edge", "fg": 1802 }, + { "id": "t_connection", "fg": 1804 }, + { "id": "end_piece", "fg": 1802 }, + { "id": "unconnected", "fg": 1802 } ], "rotates": false }, { "id": "t_wall_h_w", - "fg": 2085, - "bg": 1935, + "fg": 2090, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2085 }, - { "id": "corner", "fg": 1955 }, - { "id": "edge", "fg": 2085 }, - { "id": "t_connection", "fg": 1956 }, - { "id": "end_piece", "fg": 2085 }, - { "id": "unconnected", "fg": 2085 } + { "id": "center", "fg": 2090 }, + { "id": "corner", "fg": 1961 }, + { "id": "edge", "fg": 2090 }, + { "id": "t_connection", "fg": 1962 }, + { "id": "end_piece", "fg": 2090 }, + { "id": "unconnected", "fg": 2090 } ], "rotates": false }, { "id": "t_wall_h_y", - "fg": 1803, - "bg": 1935, + "fg": 1811, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1803 }, - { "id": "corner", "fg": 1804 }, - { "id": "edge", "fg": 1803 }, - { "id": "t_connection", "fg": 1805 }, - { "id": "end_piece", "fg": 1803 }, - { "id": "unconnected", "fg": 1803 } + { "id": "center", "fg": 1811 }, + { "id": "corner", "fg": 1812 }, + { "id": "edge", "fg": 1811 }, + { "id": "t_connection", "fg": 1813 }, + { "id": "end_piece", "fg": 1811 }, + { "id": "unconnected", "fg": 1811 } ], "rotates": false }, { "id": "t_wall_log", - "fg": 2078, + "fg": 2083, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1885 }, - { "id": "corner", "fg": 1886 }, - { "id": "edge", "fg": 1887 }, - { "id": "t_connection", "fg": 1888 }, - { "id": "end_piece", "fg": 1889 }, - { "id": "unconnected", "fg": 2078 } + { "id": "center", "fg": 1891 }, + { "id": "corner", "fg": 1892 }, + { "id": "edge", "fg": 1893 }, + { "id": "t_connection", "fg": 1894 }, + { "id": "end_piece", "fg": 1895 }, + { "id": "unconnected", "fg": 2083 } ], "rotates": false }, - { "id": "t_wall_log_broken", "fg": 2080, "bg": 1924, "rotates": false }, - { "id": "t_wall_log_chipped", "fg": 2079, "bg": 1924, "rotates": false }, - { "id": "t_wall_log_half", "fg": 2077, "bg": 1924, "rotates": false }, + { "id": "t_wall_log_broken", "fg": 2085, "bg": 1930, "rotates": false }, + { "id": "t_wall_log_chipped", "fg": 2084, "bg": 1930, "rotates": false }, + { "id": "t_wall_log_half", "fg": 2082, "bg": 1930, "rotates": false }, { "id": "t_wall_metal", - "fg": 1964, - "bg": 1924, + "fg": 1970, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1902 }, - { "id": "corner", "fg": 1898 }, - { "id": "edge", "fg": 1900 }, - { "id": "t_connection", "fg": 1899 }, - { "id": "end_piece", "fg": 1901 }, - { "id": "unconnected", "fg": 1897 } + { "id": "center", "fg": 1908 }, + { "id": "corner", "fg": 1904 }, + { "id": "edge", "fg": 1906 }, + { "id": "t_connection", "fg": 1905 }, + { "id": "end_piece", "fg": 1907 }, + { "id": "unconnected", "fg": 1903 } ], "rotates": false }, { "id": "t_wall_metal_h", - "fg": 1964, - "bg": 1924, + "fg": 1970, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1964 }, - { "id": "corner", "fg": 1962 }, - { "id": "edge", "fg": 1964 }, - { "id": "t_connection", "fg": 1963 }, - { "id": "end_piece", "fg": 1964 }, - { "id": "unconnected", "fg": 1964 } + { "id": "center", "fg": 1970 }, + { "id": "corner", "fg": 1968 }, + { "id": "edge", "fg": 1970 }, + { "id": "t_connection", "fg": 1969 }, + { "id": "end_piece", "fg": 1970 }, + { "id": "unconnected", "fg": 1970 } ], "rotates": false }, { "id": "t_wall_metal_v", - "fg": 1964, - "bg": 1924, + "fg": 1970, + "bg": 1930, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1964 }, - { "id": "corner", "fg": 1962 }, - { "id": "edge", "fg": 1964 }, - { "id": "t_connection", "fg": 1963 }, - { "id": "end_piece", "fg": 1964 }, - { "id": "unconnected", "fg": 1964 } + { "id": "center", "fg": 1970 }, + { "id": "corner", "fg": 1968 }, + { "id": "edge", "fg": 1970 }, + { "id": "t_connection", "fg": 1969 }, + { "id": "end_piece", "fg": 1970 }, + { "id": "unconnected", "fg": 1970 } ], "rotates": false }, { "id": "t_wall_p", - "fg": 1806, - "bg": 1935, + "fg": 1814, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1806 }, - { "id": "corner", "fg": 1807 }, - { "id": "edge", "fg": 1806 }, - { "id": "t_connection", "fg": 1808 }, - { "id": "end_piece", "fg": 1806 }, - { "id": "unconnected", "fg": 1806 } + { "id": "center", "fg": 1814 }, + { "id": "corner", "fg": 1815 }, + { "id": "edge", "fg": 1814 }, + { "id": "t_connection", "fg": 1816 }, + { "id": "end_piece", "fg": 1814 }, + { "id": "unconnected", "fg": 1814 } ], "rotates": false }, { "id": "t_wall_r", - "fg": 1794, - "bg": 1935, + "fg": 1802, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1794 }, - { "id": "corner", "fg": 1795 }, - { "id": "edge", "fg": 1794 }, - { "id": "t_connection", "fg": 1796 }, - { "id": "end_piece", "fg": 1794 }, - { "id": "unconnected", "fg": 1794 } + { "id": "center", "fg": 1802 }, + { "id": "corner", "fg": 1803 }, + { "id": "edge", "fg": 1802 }, + { "id": "t_connection", "fg": 1804 }, + { "id": "end_piece", "fg": 1802 }, + { "id": "unconnected", "fg": 1802 } ], "rotates": false }, { "id": "t_wall_v", - "fg": 2085, - "bg": 1935, + "fg": 2090, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2085 }, - { "id": "corner", "fg": 1955 }, - { "id": "edge", "fg": 2085 }, - { "id": "t_connection", "fg": 1956 }, - { "id": "end_piece", "fg": 2085 }, - { "id": "unconnected", "fg": 2085 } + { "id": "center", "fg": 2090 }, + { "id": "corner", "fg": 1961 }, + { "id": "edge", "fg": 2090 }, + { "id": "t_connection", "fg": 1962 }, + { "id": "end_piece", "fg": 2090 }, + { "id": "unconnected", "fg": 2090 } ], "rotates": false }, { "id": "t_wall_v_b", - "fg": 1797, - "bg": 1935, + "fg": 1805, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1797 }, - { "id": "corner", "fg": 1798 }, - { "id": "edge", "fg": 1797 }, - { "id": "t_connection", "fg": 1799 }, - { "id": "end_piece", "fg": 1797 }, - { "id": "unconnected", "fg": 1797 } + { "id": "center", "fg": 1805 }, + { "id": "corner", "fg": 1806 }, + { "id": "edge", "fg": 1805 }, + { "id": "t_connection", "fg": 1807 }, + { "id": "end_piece", "fg": 1805 }, + { "id": "unconnected", "fg": 1805 } ], "rotates": false }, { "id": "t_wall_v_g", - "fg": 1800, - "bg": 1935, + "fg": 1808, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1800 }, - { "id": "corner", "fg": 1801 }, - { "id": "edge", "fg": 1800 }, - { "id": "t_connection", "fg": 1802 }, - { "id": "end_piece", "fg": 1800 }, - { "id": "unconnected", "fg": 1800 } + { "id": "center", "fg": 1808 }, + { "id": "corner", "fg": 1809 }, + { "id": "edge", "fg": 1808 }, + { "id": "t_connection", "fg": 1810 }, + { "id": "end_piece", "fg": 1808 }, + { "id": "unconnected", "fg": 1808 } ], "rotates": false }, { "id": "t_wall_v_p", - "fg": 1806, - "bg": 1935, + "fg": 1814, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1806 }, - { "id": "corner", "fg": 1807 }, - { "id": "edge", "fg": 1806 }, - { "id": "t_connection", "fg": 1808 }, - { "id": "end_piece", "fg": 1806 }, - { "id": "unconnected", "fg": 1806 } + { "id": "center", "fg": 1814 }, + { "id": "corner", "fg": 1815 }, + { "id": "edge", "fg": 1814 }, + { "id": "t_connection", "fg": 1816 }, + { "id": "end_piece", "fg": 1814 }, + { "id": "unconnected", "fg": 1814 } ], "rotates": false }, { "id": "t_wall_v_r", - "fg": 1794, - "bg": 1935, + "fg": 1802, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1794 }, - { "id": "corner", "fg": 1795 }, - { "id": "edge", "fg": 1794 }, - { "id": "t_connection", "fg": 1796 }, - { "id": "end_piece", "fg": 1794 }, - { "id": "unconnected", "fg": 1794 } + { "id": "center", "fg": 1802 }, + { "id": "corner", "fg": 1803 }, + { "id": "edge", "fg": 1802 }, + { "id": "t_connection", "fg": 1804 }, + { "id": "end_piece", "fg": 1802 }, + { "id": "unconnected", "fg": 1802 } ], "rotates": false }, { "id": "t_wall_v_w", - "fg": 2085, - "bg": 1935, + "fg": 2090, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2085 }, - { "id": "corner", "fg": 1955 }, - { "id": "edge", "fg": 2085 }, - { "id": "t_connection", "fg": 1956 }, - { "id": "end_piece", "fg": 2085 }, - { "id": "unconnected", "fg": 2085 } + { "id": "center", "fg": 2090 }, + { "id": "corner", "fg": 1961 }, + { "id": "edge", "fg": 2090 }, + { "id": "t_connection", "fg": 1962 }, + { "id": "end_piece", "fg": 2090 }, + { "id": "unconnected", "fg": 2090 } ], "rotates": false }, { "id": "t_wall_v_y", - "fg": 1803, - "bg": 1935, + "fg": 1811, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1803 }, - { "id": "corner", "fg": 1804 }, - { "id": "edge", "fg": 1803 }, - { "id": "t_connection", "fg": 1805 }, - { "id": "end_piece", "fg": 1803 }, - { "id": "unconnected", "fg": 1803 } + { "id": "center", "fg": 1811 }, + { "id": "corner", "fg": 1812 }, + { "id": "edge", "fg": 1811 }, + { "id": "t_connection", "fg": 1813 }, + { "id": "end_piece", "fg": 1811 }, + { "id": "unconnected", "fg": 1811 } ], "rotates": false }, - { "id": "t_wall_wood_broken", "fg": 2080, "rotates": false }, - { "id": "t_wall_wood_chipped", "fg": 2079, "rotates": false }, + { "id": "t_wall_wood_broken", "fg": 2085, "rotates": false }, + { "id": "t_wall_wood_chipped", "fg": 2084, "rotates": false }, { "id": [ "t_wall_wood", "t_wall_wood_line" ], - "fg": 1889, + "fg": 1895, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2018 }, - { "id": "corner", "fg": 2019 }, - { "id": "edge", "fg": 2020 }, - { "id": "t_connection", "fg": 2021 }, - { "id": "end_piece", "fg": 2020 }, - { "id": "unconnected", "fg": 1890 } + { "id": "center", "fg": 2023 }, + { "id": "corner", "fg": 2024 }, + { "id": "edge", "fg": 2025 }, + { "id": "t_connection", "fg": 2026 }, + { "id": "end_piece", "fg": 2025 }, + { "id": "unconnected", "fg": 1896 } ], "rotates": false }, { "id": "t_wall_w", - "fg": 2085, - "bg": 1935, + "fg": 2090, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2085 }, - { "id": "corner", "fg": 1955 }, - { "id": "edge", "fg": 2085 }, - { "id": "t_connection", "fg": 1956 }, - { "id": "end_piece", "fg": 2085 }, - { "id": "unconnected", "fg": 2085 } + { "id": "center", "fg": 2090 }, + { "id": "corner", "fg": 1961 }, + { "id": "edge", "fg": 2090 }, + { "id": "t_connection", "fg": 1962 }, + { "id": "end_piece", "fg": 2090 }, + { "id": "unconnected", "fg": 2090 } ], "rotates": false }, { "id": "t_wall_y", - "fg": 1803, - "bg": 1935, + "fg": 1811, + "bg": 1941, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1803 }, - { "id": "corner", "fg": 1804 }, - { "id": "edge", "fg": 1803 }, - { "id": "t_connection", "fg": 1805 }, - { "id": "end_piece", "fg": 1803 }, - { "id": "unconnected", "fg": 1803 } + { "id": "center", "fg": 1811 }, + { "id": "corner", "fg": 1812 }, + { "id": "edge", "fg": 1811 }, + { "id": "t_connection", "fg": 1813 }, + { "id": "end_piece", "fg": 1811 }, + { "id": "unconnected", "fg": 1811 } ], "rotates": false }, - { "id": "t_water_dp", "fg": 1958, "rotates": false }, - { "id": "t_water_pool", "fg": 1957, "rotates": false }, - { "id": "t_water_pump", "fg": 1820, "rotates": false }, - { "id": "t_water_sh", "fg": 1957, "rotates": false }, - { "id": "t_wax", "fg": 1787, "rotates": false }, - { "id": "t_window_alarm", "fg": 2070, "rotates": true }, - { "id": "t_window_alarm_taped", "fg": 2071, "rotates": false }, + { "id": "t_water_dp", "fg": 1964, "rotates": false }, + { "id": "t_water_pool", "fg": 1963, "rotates": false }, + { "id": "t_water_pump", "fg": 1826, "rotates": false }, + { "id": "t_water_sh", "fg": 1963, "rotates": false }, + { "id": "t_wax", "fg": 1795, "rotates": false }, + { "id": "t_window_alarm", "fg": 2075, "rotates": true }, + { "id": "t_window_alarm_taped", "fg": 2076, "rotates": false }, { "id": "t_window_bars_alarm", - "fg": 2005, + "fg": 2010, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2014 }, - { "id": "corner", "fg": 2006 }, - { "id": "edge", "fg": 2005 }, - { "id": "t_connection", "fg": 2015 }, - { "id": "end_piece", "fg": 2005 }, - { "id": "unconnected", "fg": 2005 } + { "id": "center", "fg": 2019 }, + { "id": "corner", "fg": 2011 }, + { "id": "edge", "fg": 2010 }, + { "id": "t_connection", "fg": 2020 }, + { "id": "end_piece", "fg": 2010 }, + { "id": "unconnected", "fg": 2010 } ], "rotates": false }, { "id": [ "t_window_bars_alarm", "t_window_bars", "t_bars" ], - "fg": 2087, + "fg": 2092, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2014 }, - { "id": "corner", "fg": 2006 }, - { "id": "edge", "fg": 2005 }, - { "id": "t_connection", "fg": 2015 }, - { "id": "end_piece", "fg": 2005 }, - { "id": "unconnected", "fg": 2087 } + { "id": "center", "fg": 2019 }, + { "id": "corner", "fg": 2011 }, + { "id": "edge", "fg": 2010 }, + { "id": "t_connection", "fg": 2020 }, + { "id": "end_piece", "fg": 2010 }, + { "id": "unconnected", "fg": 2092 } + ], + "rotates": false + }, + { "id": "t_window_boarded", "fg": 2079, "bg": 2063, "rotates": false }, + { "id": "t_window_boarded_noglass", "fg": 1787, "rotates": false }, + { "id": "t_window_domestic", "fg": 2075, "rotates": false }, + { "id": "t_window_domestic_taped", "fg": 2076, "rotates": false }, + { "id": "t_window_empty", "fg": 2096, "bg": 2063, "rotates": false }, + { "id": "t_window_enhanced", "fg": 1790, "rotates": false }, + { "id": "t_window_enhanced_noglass", "fg": 1791, "rotates": false }, + { "id": "t_window_frame", "fg": 2078, "bg": 2063, "rotates": false }, + { "id": [ "t_window_open", "t_window_no_curtains_open" ], "fg": 2077, "rotates": false }, + { "id": "t_window_reinforced", "fg": 1788, "rotates": false }, + { "id": "t_window_reinforced_noglass", "fg": 1789, "rotates": false }, + { "id": "t_window_stained_blue", "fg": 1779, "bg": 2063, "rotates": true }, + { "id": "t_window_stained_green", "fg": 1769, "bg": 2063, "rotates": true }, + { "id": "t_window_stained_red", "fg": 1780, "bg": 2063, "rotates": true }, + { "id": [ "t_window_taped", "t_window_no_curtains_taped" ], "fg": 2076, "rotates": false }, + { "id": [ "t_window", "t_window_no_curtains" ], "fg": 2075, "rotates": false }, + { "id": "t_wreckage", "bg": 1983, "rotates": false }, + { + "id": "t_console", + "animated": true, + "fg": [ + { "weight": 15, "sprite": 2106 }, + { "weight": 15, "sprite": 2107 }, + { "weight": 15, "sprite": 2108 }, + { "weight": 15, "sprite": 2109 } + ], + "rotates": false + }, + { + "id": "t_radio_controls", + "animated": true, + "fg": [ + { "weight": 15, "sprite": 2110 }, + { "weight": 15, "sprite": 2111 }, + { "weight": 15, "sprite": 2112 }, + { "weight": 15, "sprite": 2113 } + ], + "rotates": false + }, + { + "id": "tr_lava", + "animated": true, + "fg": [ + { "weight": 15, "sprite": 2114 }, + { "weight": 15, "sprite": 2115 }, + { "weight": 15, "sprite": 2116 }, + { "weight": 15, "sprite": 2117 } + ], + "rotates": false + }, + { + "id": "t_lava", + "animated": true, + "fg": [ + { "weight": 15, "sprite": 2114 }, + { "weight": 15, "sprite": 2115 }, + { "weight": 15, "sprite": 2116 }, + { "weight": 15, "sprite": 2117 } ], "rotates": false }, - { "id": "t_window_boarded", "fg": 2074, "bg": 2058, "rotates": false }, - { "id": "t_window_boarded_noglass", "fg": 1779, "rotates": false }, - { "id": "t_window_domestic", "fg": 2070, "rotates": false }, - { "id": "t_window_domestic_taped", "fg": 2071, "rotates": false }, - { "id": "t_window_empty", "fg": 2091, "bg": 2058, "rotates": false }, - { "id": "t_window_enhanced", "fg": 1782, "rotates": false }, - { "id": "t_window_enhanced_noglass", "fg": 1783, "rotates": false }, - { "id": "t_window_frame", "fg": 2073, "bg": 2058, "rotates": false }, - { "id": [ "t_window_open", "t_window_no_curtains_open" ], "fg": 2072, "rotates": false }, - { "id": "t_window_reinforced", "fg": 1780, "rotates": false }, - { "id": "t_window_reinforced_noglass", "fg": 1781, "rotates": false }, - { "id": "t_window_stained_blue", "fg": 1771, "bg": 2058, "rotates": true }, - { "id": "t_window_stained_green", "fg": 1761, "bg": 2058, "rotates": true }, - { "id": "t_window_stained_red", "fg": 1772, "bg": 2058, "rotates": true }, - { "id": [ "t_window_taped", "t_window_no_curtains_taped" ], "fg": 2071, "rotates": false }, - { "id": [ "t_window", "t_window_no_curtains" ], "fg": 2070, "rotates": false }, - { "id": "t_wreckage", "bg": 1977, "rotates": false }, - { "id": "121_tr_rollmat_0", "fg": 2101, "rotates": false }, - { "id": "tr_beartrap", "fg": 2113, "rotates": false }, - { "id": "tr_beartrap_buried", "fg": 1824, "rotates": false }, - { "id": "tr_blade", "fg": 2128, "rotates": true }, - { "id": "tr_boobytrap", "fg": 2109, "rotates": false }, - { "id": "tr_brazier", "fg": 2107, "rotates": false }, - { "id": "tr_bubblewrap", "fg": 2127, "rotates": false }, - { "id": "tr_caltrops", "fg": 898, "rotates": false }, - { "id": "tr_cot", "fg": 2104, "rotates": false }, - { "id": "tr_crossbow", "fg": 2115, "rotates": false }, - { "id": "tr_dissector", "fg": 2118, "rotates": false }, - { "id": "tr_drain", "fg": 2112, "rotates": false }, - { "id": "tr_engine", "fg": 2108, "rotates": false }, - { "id": "tr_funnel", "fg": 2105, "rotates": false }, - { "id": "tr_fur_rollmat", "fg": 2103, "rotates": false }, + { "id": "121_tr_rollmat_0", "fg": 2118, "rotates": false }, + { "id": "tr_beartrap", "fg": 2129, "rotates": false }, + { "id": "tr_beartrap_buried", "fg": 1830, "rotates": false }, + { "id": "tr_blade", "fg": 2138, "rotates": true }, + { "id": "tr_boobytrap", "fg": 2125, "rotates": false }, + { "id": "tr_brazier", "fg": 2123, "rotates": false }, + { "id": "tr_bubblewrap", "fg": 2137, "rotates": false }, + { "id": "tr_caltrops", "fg": 906, "rotates": false }, + { "id": "tr_cot", "fg": 2120, "rotates": false }, + { "id": "tr_crossbow", "fg": 2131, "rotates": false }, + { "id": "tr_dissector", "fg": 2133, "rotates": false }, + { "id": "tr_drain", "fg": 2128, "rotates": false }, + { "id": "tr_engine", "fg": 2124, "rotates": false }, + { "id": "tr_funnel", "fg": 2121, "rotates": false }, + { "id": "tr_fur_rollmat", "fg": 2119, "rotates": false }, { "id": "tr_glass_pit", - "fg": 1848, + "fg": 1854, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 1843 }, - { "id": "corner", "fg": 1844 }, - { "id": "edge", "fg": 1845 }, - { "id": "t_connection", "fg": 1846 }, - { "id": "end_piece", "fg": 1847 }, - { "id": "unconnected", "fg": 1848 } + { "id": "center", "fg": 1849 }, + { "id": "corner", "fg": 1850 }, + { "id": "edge", "fg": 1851 }, + { "id": "t_connection", "fg": 1852 }, + { "id": "end_piece", "fg": 1853 }, + { "id": "unconnected", "fg": 1854 } ], "rotates": false }, - { "id": "tr_glow", "fg": 2112, "rotates": false }, + { "id": "tr_glow", "fg": 2128, "rotates": false }, { "id": "tr_goo", - "fg": 2134, + "fg": 2144, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2129 }, - { "id": "corner", "fg": 2130 }, - { "id": "edge", "fg": 2131 }, - { "id": "t_connection", "fg": 2132 }, - { "id": "end_piece", "fg": 2133 }, - { "id": "unconnected", "fg": 2134 } + { "id": "center", "fg": 2139 }, + { "id": "corner", "fg": 2140 }, + { "id": "edge", "fg": 2141 }, + { "id": "t_connection", "fg": 2142 }, + { "id": "end_piece", "fg": 2143 }, + { "id": "unconnected", "fg": 2144 } ], "rotates": false }, - { "id": "tr_heavy_snare", "fg": 2120, "rotates": false }, - { "id": "tr_hum", "fg": 2112, "rotates": false }, - { "id": "tr_landmine", "fg": 2117, "rotates": false }, - { "id": "tr_landmine_buried", "fg": 1824, "rotates": false }, - { "id": "tr_lava", "bg": 1978, "rotates": false }, - { "id": "tr_leather_funnel", "fg": 2125, "rotates": false, "multitile": false }, - { "id": "tr_ledge", "bg": [ ], "rotates": false }, - { "id": "tr_light_snare", "fg": 2120, "rotates": false }, - { "id": "tr_makeshift_funnel", "fg": 2106, "rotates": false }, - { "id": "tr_nailboard", "fg": 2114, "rotates": false }, + { "id": "tr_heavy_snare", "fg": 2135, "rotates": false }, + { "id": "tr_hum", "fg": 2128, "rotates": false }, + { "id": "tr_landmine_buried", "fg": 1830, "rotates": false }, + { "id": "tr_leather_funnel", "fg": 2136, "rotates": false, "multitile": false }, + { "id": "tr_light_snare", "fg": 2135, "rotates": false }, + { "id": "tr_makeshift_funnel", "fg": 2122, "rotates": false }, + { "id": "tr_nailboard", "fg": 2130, "rotates": false }, { "id": "tr_pit", - "fg": 1880, + "fg": 1886, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2022 }, - { "id": "corner", "fg": 2023 }, - { "id": "edge", "fg": 2024 }, - { "id": "t_connection", "fg": 2025 }, - { "id": "end_piece", "fg": 2026 }, - { "id": "unconnected", "fg": 1880 } + { "id": "center", "fg": 2027 }, + { "id": "corner", "fg": 2028 }, + { "id": "edge", "fg": 2029 }, + { "id": "t_connection", "fg": 2030 }, + { "id": "end_piece", "fg": 2031 }, + { "id": "unconnected", "fg": 1886 } ], "rotates": false }, + { "id": "tr_rollmat", "fg": 2118, "rotates": false }, + { "id": "tr_shadow", "fg": 2128, "rotates": false }, + { "id": "tr_shotgun_1", "fg": 2132, "rotates": false }, + { "id": "tr_shotgun_2", "fg": 2132, "rotates": false }, + { "id": "tr_sinkhole", "bg": 1886, "rotates": false }, + { "id": "tr_snake", "fg": 2128, "rotates": false }, + { "id": "tr_snare", "fg": 2135, "rotates": false }, { - "id": "tr_portal", - "fg": 2102, + "id": "tr_spike_pit", + "fg": 1929, "multitile": true, "additional_tiles": [ - { "id": "center", "fg": 2121 }, - { "id": "corner", "fg": 2135 }, - { "id": "edge", "fg": 2122 }, - { "id": "t_connection", "fg": 2123 }, - { "id": "end_piece", "fg": 2124 }, - { "id": "unconnected", "fg": 2102 } + { "id": "center", "fg": 2039 }, + { "id": "corner", "fg": 2040 }, + { "id": "edge", "fg": 2041 }, + { "id": "t_connection", "fg": 2042 }, + { "id": "end_piece", "fg": 2043 }, + { "id": "unconnected", "fg": 1929 } ], "rotates": false }, - { "id": "tr_rollmat", "fg": 2101, "rotates": false }, - { "id": "tr_shadow", "fg": 2112, "rotates": false }, - { "id": "tr_shotgun_1", "fg": 2116, "rotates": false }, - { "id": "tr_shotgun_2", "fg": 2116, "rotates": false }, - { "id": "tr_sinkhole", "bg": 1880, "rotates": false }, - { "id": "tr_snake", "fg": 2112, "rotates": false }, - { "id": "tr_snare", "fg": 2120, "rotates": false }, + { "id": "tr_temple_flood", "fg": 2126, "rotates": false }, + { "id": "tr_temple_toggle", "fg": 2127, "rotates": false }, + { "id": "tr_tripwire", "fg": 2134, "rotates": false }, { - "id": "tr_spike_pit", - "fg": 1923, - "multitile": true, - "additional_tiles": [ - { "id": "center", "fg": 2034 }, - { "id": "corner", "fg": 2035 }, - { "id": "edge", "fg": 2036 }, - { "id": "t_connection", "fg": 2037 }, - { "id": "end_piece", "fg": 2038 }, - { "id": "unconnected", "fg": 1923 } + "id": "tr_landmine", + "animated": true, + "fg": [ { "weight": 30, "sprite": 2145 }, { "weight": 30, "sprite": 2146 } ], + "rotates": false + }, + { + "id": "tr_portal", + "animated": true, + "fg": [ + { "weight": 10, "sprite": 2147 }, + { "weight": 10, "sprite": 2148 }, + { "weight": 10, "sprite": 2149 }, + { "weight": 10, "sprite": 2150 }, + { "weight": 10, "sprite": 2151 }, + { "weight": 10, "sprite": 2152 } ], "rotates": false }, - { "id": "tr_telepad", "fg": 2126, "rotates": false }, - { "id": "tr_temple_flood", "fg": 2110, "rotates": false }, - { "id": "tr_temple_toggle", "fg": 2111, "rotates": false }, - { "id": "tr_tripwire", "fg": 2119, "rotates": false } + { + "id": "tr_telepad", + "animated": true, + "fg": [ + { "weight": 30, "sprite": 2153 }, + { "weight": 30, "sprite": 2154 }, + { "weight": 30, "sprite": 2155 }, + { "weight": 30, "sprite": 2156 } + ], + "rotates": false + } ], - "//": "range 1 to 2144" + "//": "range 1 to 2160" }, { "file": "fallback.png", diff --git a/gfx/BrownLikeBears/tiles.png b/gfx/BrownLikeBears/tiles.png index 9d65c3189caf4..7af432a155c1b 100644 Binary files a/gfx/BrownLikeBears/tiles.png and b/gfx/BrownLikeBears/tiles.png differ diff --git a/gfx/RetroDays+Tileset/hats_female.png b/gfx/RetroDays+Tileset/hats_female.png index 29abec0a8c332..aa08b1bffd9f7 100644 Binary files a/gfx/RetroDays+Tileset/hats_female.png and b/gfx/RetroDays+Tileset/hats_female.png differ diff --git a/gfx/RetroDays+Tileset/hats_male.png b/gfx/RetroDays+Tileset/hats_male.png index b7fd3ba932abc..d36a62dd71dbe 100644 Binary files a/gfx/RetroDays+Tileset/hats_male.png and b/gfx/RetroDays+Tileset/hats_male.png differ diff --git a/json_blacklist b/json_blacklist index 9947b1beeb01e..e69de29bb2d1d 100644 --- a/json_blacklist +++ b/json_blacklist @@ -1,5 +0,0 @@ -data/names/ja.json -data/names/ko.json -data/names/ru.json -data/names/zh_CN.json -data/names/zh_TW.json diff --git a/lang/extract_json_strings.py b/lang/extract_json_strings.py index d621a1554bbc0..4dc07305e4a43 100755 --- a/lang/extract_json_strings.py +++ b/lang/extract_json_strings.py @@ -115,7 +115,6 @@ def warning_supressed(filename): # "sound" member # "messages" member containing an array of translatable strings automatically_convertible = { - "achievement", "activity_type", "AMMO", "ammunition_type", @@ -205,10 +204,14 @@ def gender_options(subject): ## SPECIALIZED EXTRACTION FUNCTIONS ## -def extract_harvest(item): - outfile = get_outfile("harvest") - if "message" in item: - writestr(outfile, item["message"]) +def extract_achievement(a): + outfile = get_outfile(a["type"]) + for f in ("name", "description"): + if f in a: + writestr(outfile, a[f]) + for req in a.get("requirements", ()): + if "description" in req: + writestr(outfile, req["description"]) def extract_bodypart(item): outfile = get_outfile("bodypart") @@ -236,6 +239,11 @@ def extract_construction(item): if "pre_note" in item: writestr(outfile, item["pre_note"]) +def extract_harvest(item): + outfile = get_outfile("harvest") + if "message" in item: + writestr(outfile, item["message"]) + def extract_material(item): outfile = get_outfile("material") writestr(outfile, item["name"]) @@ -281,6 +289,39 @@ def extract_martial_art(item): c="Description of buff '{}' for martial art '{}'".format(buff["name"], name) writestr(outfile, buff["description"], comment=c) +def extract_move_mode(item): + outfile = get_outfile("move_modes") + # Move mode name + name = item["name"] + writestr(outfile, name, comment="Move mode name") + # The character in the move menu + character = item["character"] + writestr(outfile, character, comment="Move mode character in move mode menu") + # The character in the panels + pchar = item["panel_char"] + writestr(outfile, pchar, comment="movement-type") + # Successful change message + change_good_none = item["change_good_none"] + writestr(outfile, change_good_none, comment="Successfully switch to this move mode, no steed") + # Successful change message (animal steed) + change_good_animal = item["change_good_animal"] + writestr(outfile, change_good_animal, comment="Successfully switch to this move mode, animal steed") + # Successful change message (mech steed) + change_good_mech = item["change_good_mech"] + writestr(outfile, change_good_mech, comment="Successfully switch to this move mode, mech steed") + if "change_bad_none" in item: + # Failed change message + change_bad_none = item["change_bad_none"] + writestr(outfile, change_bad_none, comment="Failure to switch to this move mode, no steed") + if "change_bad_animal" in item: + # Failed change message (animal steed) + change_bad_animal = item["change_bad_animal"] + writestr(outfile, change_bad_animal, comment="Failure to switch to this move mode, animal steed") + if "change_bad_mech" in item: + # Failed change message (mech steed) + change_bad_mech = item["change_bad_mech"] + writestr(outfile, change_bad_mech, comment="Failure to switch to this move mode, mech steed") + def extract_effect_type(item): # writestr will not write string if it is None. outfile = get_outfile("effects") @@ -786,19 +827,22 @@ def extract_snippets(item): # these objects need to have their strings specially extracted extract_specials = { - "harvest" : extract_harvest, + "achievement": extract_achievement, "body_part": extract_bodypart, "clothing_mod": extract_clothing_mod, + "conduct": extract_achievement, "construction": extract_construction, "effect_type": extract_effect_type, "fault": extract_fault, "GUN": extract_gun, "GUNMOD": extract_gunmod, + "harvest": extract_harvest, "mapgen": extract_mapgen, "martial_art": extract_martial_art, "material": extract_material, "mission_definition": extract_missiondef, "monster_attack": extract_monster_attack, + "movement_mode": extract_move_mode, "mutation": extract_mutation, "mutation_category": extract_mutation_category, "profession": extract_professions, diff --git a/lang/po/cataclysm-dda.pot b/lang/po/cataclysm-dda.pot index 056a078366f8c..8f4f480ea4566 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.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-09 16:56+0800\n" +"POT-Creation-Date: 2020-06-06 11:53+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,6 +53,53 @@ msgid "" "battery cells, but can never be unloaded." msgstr "" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'butane'} +#: lang/json/AMMO_from_json.py +msgid "A common flammable liquid used in lighters." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "" + +#: lang/json/AMMO_from_json.py +#: lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "aluminum foil" msgid_plural "aluminum foils" @@ -73,11 +120,8 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} #: lang/json/AMMO_from_json.py -#: lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgid "A unit of currency equivalent to 0.01 US dollars." msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py @@ -225,7 +269,7 @@ msgstr[1] "" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." +msgid "A handful of pebbles, useful as ammunition for slingshots." msgstr "" #: lang/json/AMMO_from_json.py @@ -236,8 +280,7 @@ msgstr[1] "" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or slingshots." +msgid "A handful of round projectiles made of clay, useful for slingshots." msgstr "" #: lang/json/AMMO_from_json.py @@ -248,8 +291,7 @@ msgstr[1] "" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." +msgid "A handful of glass marbles, useful as ammunition for slingshots." msgstr "" #: lang/json/AMMO_from_json.py @@ -260,7 +302,7 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." +msgid "A box of ball bearings, useful as ammunition for slingshots." msgstr "" #: lang/json/AMMO_from_json.py @@ -271,7 +313,9 @@ msgstr[1] "" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." msgstr "" #: lang/json/AMMO_from_json.py @@ -534,6 +578,12 @@ msgid_plural "placeholder ammunitions" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" msgid_plural "charcoal" @@ -574,6 +624,19 @@ msgid "" "and heating." msgstr "" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -670,12 +733,6 @@ msgstr[1] "" msgid "A bait used in traps to lure fish." msgstr "" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "" -msgstr[1] "" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -2988,7 +3045,7 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "" ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, " -"the .45 ACP round has been common for almost 150 years." +"the .45 ACP round has been common for over a century." msgstr "" #: lang/json/AMMO_from_json.py @@ -3914,7 +3971,7 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round " -"for military, law enforcement, and civilian use even after almost 150 years." +"for military, law enforcement, and civilian use for over a century." msgstr "" #: lang/json/AMMO_from_json.py @@ -5659,8 +5716,8 @@ msgstr[1] "" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." msgstr "" #: lang/json/AMMO_from_json.py @@ -5984,6 +6041,20 @@ msgid "" "without the worry of having a stray shot seriously damaging the environment." msgstr "" +#: lang/json/AMMO_from_json.py +msgid "alien metal scrap" +msgid_plural "alien metal scraps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'alien metal scrap'} +#: lang/json/AMMO_from_json.py +msgid "" +"Scraps of some sort of alien metal of varying sizes, light but tough. It's " +"quite pretty to look at, silvery with faint blue and green undertones. " +"Makes a decent weapon in a pinch and is useful for crafting recipes." +msgstr "" + #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -6665,6 +6736,52 @@ msgid_plural "TEST small metal sheets" msgstr[0] "" msgstr[1] "" +#: lang/json/AMMO_from_json.py +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test wooden broadhead arrow'} +#: lang/json/AMMO_from_json.py +msgid "Test arrow" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Test 9mm ammo'} +#: lang/json/AMMO_from_json.py +msgid "Generic 9mm ammo based on JHP." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Test .45 ammo'} +#: lang/json/AMMO_from_json.py +msgid "Test ammo based on the .45 JHP." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "test gas" +msgid_plural "test gas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'test gas'} +#: lang/json/AMMO_from_json.py +msgid "" +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" +msgstr "" + #: lang/json/AMMO_from_json.py msgid "TEST platinum bit" msgid_plural "TEST platinum bits" @@ -7515,6 +7632,19 @@ msgstr[1] "" msgid "A pair of light leather arm guards, made for archery." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -7999,6 +8129,33 @@ msgstr[1] "" msgid "Modern reinforced tactical combat boots. Very durable." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -10120,8 +10277,8 @@ msgstr[1] "" #. ~ Description for {'str': 'pair of tactical gloves', 'str_pl': 'pairs of tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." msgstr "" #: lang/json/ARMOR_from_json.py @@ -10166,7 +10323,8 @@ msgstr[1] "" #. ~ Description for {'str': 'pair of cut resistant gloves', 'str_pl': 'pairs of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." msgstr "" #: lang/json/ARMOR_from_json.py @@ -10334,6 +10492,20 @@ msgstr[1] "" msgid "A thin pair of black leather golfing gloves." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -15451,6 +15623,21 @@ msgid "" "storage." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -15581,6 +15768,35 @@ msgid "" "built to be durable, comfortable, and easy to wear." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "basketball shorts" msgid_plural "basketball shorts" @@ -15992,6 +16208,19 @@ msgstr[1] "" msgid "A warm covering that protects the head and face from the cold." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -16363,6 +16592,7 @@ msgstr[1] "" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "" @@ -16888,7 +17118,7 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." +"has straps to be worn on the back and a slot for an umbrella." msgstr "" #: lang/json/ARMOR_from_json.py @@ -17197,6 +17427,17 @@ msgstr[1] "" msgid "A light vest covered in pockets and straps for storage." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -18245,6 +18486,18 @@ msgid "" "from cuts." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from cuts." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -20702,6 +20955,28 @@ msgid_plural "TEST briefcases" msgstr[0] "" msgstr[1] "" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "" + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -22449,6 +22724,19 @@ msgid "" "suppressing fear." msgstr "" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "" + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -22554,25 +22842,47 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "paperback novel" -msgid_plural "paperbacks" +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#. ~ Description for Generic Nonfiction Book #: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." +msgid "template for a manuscript purporting to be factual" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Generic Nonfiction Book" -msgid_plural "Generic Nonfiction Books" +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" msgstr[0] "" msgstr[1] "" -#. ~ Description for Generic Nonfiction Book +#. ~ Description for Generic Fiction Book #: lang/json/BOOK_from_json.py -msgid "template for a manuscript purporting to be factual" +msgid "template for a work of fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Generic Hard Bound Fiction Book +#: lang/json/BOOK_from_json.py +msgid "Template for hard bound book of fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#: lang/json/BOOK_from_json.py +msgid "An ordinary paperback book. Or is it? It is." msgstr "" #: lang/json/BOOK_from_json.py @@ -22639,6 +22949,60 @@ msgstr[1] "" msgid "An ordinary book. Or is it? It is." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Philosophy +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about philosophy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Softcover Philosophy. +#: lang/json/BOOK_from_json.py +msgid "This is a template for paperbacks about philosophy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. +#: lang/json/BOOK_from_json.py +msgid "This is a template." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "" +msgstr[1] "" + #: lang/json/BOOK_from_json.py msgid "template for mass produced books on esoteric subjects" msgid_plural "template for mass produced books on esoteric subjectss" @@ -22889,389 +23253,433 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "SICP" -msgid_plural "copies of SICP" +msgid "Advanced Physical Chemistry" +msgid_plural "copies of Advanced Physical Chemistry" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies of Advanced Physical Chemistry'} #: lang/json/BOOK_from_json.py msgid "" -"A classic text, \"The Structure and Interpretation of Computer Programs.\" " -"Written with examples in LISP, but applicable to any language." +"A university-level textbook on advanced principles of physical chemistry and " +"all its branches: thermochemistry, electrochemistry, solid-state chemistry, " +"photochemistry, quantum chemistry et cetera." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Computer Science 301" -msgid_plural "copies of Computer Science 301" +msgid "The Modern Tanner" +msgid_plural "copies of The Modern Tanner" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of Computer Science 301'} +#. ~ Description for {'str': 'The Modern Tanner', 'str_pl': 'copies of The Modern Tanner'} #: lang/json/BOOK_from_json.py -msgid "A college textbook on computer science." +msgid "" +"An in-depth and easy to read guide that details a very modern take on the " +"ancient art of leather tanning." msgstr "" #: lang/json/BOOK_from_json.py -msgid "How to Browse the Web" -msgid_plural "copies of How to Browse the Web" +msgid "PE050 \"Alpha\": Preliminary Report" +msgid_plural "copies of PE050 \"Alpha\": Preliminary Report" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How to Browse the Web'} +#. ~ Description for {'str': 'PE050 "Alpha": Preliminary Report', 'str_pl': 'copies of PE050 "Alpha": Preliminary Report'} #: lang/json/BOOK_from_json.py -msgid "Very beginner-level information about computers." +msgid "" +"This sheaf of papers--dated two weeks before all this started--describes " +"some new chemical formula, and its effects on human subjects. It's stamped " +"\"APPROVED\"…" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Computer World" -msgid_plural "issues of Computer World" +msgid "lab journal-Dionne" +msgid_plural "lab journals-Dionne" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer World'} +#. ~ Description for {'str': 'lab journal-Dionne', 'str_pl': 'lab journals-Dionne'} #: lang/json/BOOK_from_json.py msgid "" -"An informative magazine all about computers, both hardware and software." +"This team logbook details several varieties of mutagenic experiments, " +"focusing on those derived from various Earth fauna. The team seems quite " +"enthusiastic--if not eager--about their results." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Computer Science 101" -msgid_plural "copies of Computer Science 101" +msgid "PE065 \"Chimera\": Best Practices" +msgid_plural "copies of PE065 \"Chimera\": Best Practices" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of Computer Science 101'} +#. ~ Description for {'str': 'PE065 "Chimera": Best Practices', 'str_pl': 'copies of PE065 "Chimera": Best Practices'} #: lang/json/BOOK_from_json.py -msgid "An entry-level textbook about computers." +msgid "" +"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…" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Principles of Advanced Programming" -msgid_plural "copies of Principles of Advanced Programming" +msgid "lab journal-Smythe" +msgid_plural "lab journals-Smythe" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': 'copies of Principles of Advanced Programming'} +#. ~ Description for {'str': 'lab journal-Smythe', 'str_pl': 'lab journals-Smythe'} #: lang/json/BOOK_from_json.py msgid "" -"A heavy textbook dedicated to advanced-level software design, written for " -"several different programming languages." +"This team logbook details several varieties of mutagenic experiments, " +"focusing on those derived from flesh contaminated with XE037. The results " +"look promising but the procurement methods seem awfully vague…" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Advanced Physical Chemistry" -msgid_plural "copies of Advanced Physical Chemistry" +msgid "standpipe maintenance log" +msgid_plural "standpipe maintenance logs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies of Advanced Physical Chemistry'} +#. ~ Description for {'str': 'standpipe maintenance log'} #: lang/json/BOOK_from_json.py msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." +"This binder details the scheduled maintenance for several plumbing systems " +"throughout the facility. However, some of the log sheets seem to be filled " +"with… a chemical formula?" msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Homebrewer's Bible" -msgid_plural "copies of The Homebrewer's Bible" +msgid "chemical reference-CLASSIFIED" +msgid_plural "chemical references-CLASSIFIED" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of The Homebrewer's Bible"} +#. ~ Description for {'str': 'chemical reference-CLASSIFIED', 'str_pl': 'chemical references-CLASSIFIED'} #: lang/json/BOOK_from_json.py msgid "" -"A book full of easy-to-follow recipes and useful advice on homebrewing, " -"malting, and fermenting. It even smells faintly of booze." +"This somewhat technical binder has several intimidating security warnings on " +"the cover, yet guarantees unauthorized readers \"permanent employment, for " +"life\". It contains useful information on \"basic\" chemical projects like " +"methamphetamine and heroin, along with briefing on things called \"XE037\" " +"and \"PE012\"." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Cooking on a Budget" -msgid_plural "copies of Cooking on a Budget" +msgid "lab journal-x-|xp" +msgid_plural "lab journals-x-|xp" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of Cooking on a Budget'} +#. ~ Description for {'str': 'lab journal-x-|xp', 'str_pl': 'lab journals-x-|xp'} #: lang/json/BOOK_from_json.py msgid "" -"A nice cook book that goes beyond recipes and into the chemistry of food." +"This damaged team logbook lacks (deliberately?) any identifying information, " +"but still contains useful information on several types of mutagen and their " +"development." msgstr "" #: lang/json/BOOK_from_json.py -msgid "To Serve Man" -msgid_plural "copies of To Serve Man" +msgid "PE023 \"Medical\": Application and Findings" +msgid_plural "copies of PE023 \"Medical\": Application and Findings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve Man'} +#. ~ Description for {'str': 'PE023 "Medical": Application and Findings', 'str_pl': 'copies of PE023 "Medical": Application and Findings'} #: lang/json/BOOK_from_json.py -msgid "It's… it's a cookbook!" +msgid "" +"This binder of highly technical papers describes some new chemical formula, " +"and its effects on human subjects. It's stamped \"APPROVED\"…" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Cucina Italiana" -msgid_plural "copies of Cucina Italiana" +msgid "PE070 \"Raptor\": Proposal" +msgid_plural "copies of PE070 \"Raptor\": Proposal" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina Italiana'} +#. ~ Description for {'str': 'PE070 "Raptor": Proposal', 'str_pl': 'copies of PE070 "Raptor": Proposal'} #: lang/json/BOOK_from_json.py msgid "" -"This cookbook is written in Italian, but handily illustrated with step by " -"step photo instructions." +"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." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Sushi Made Easy" -msgid_plural "copies of Sushi Made Easy" +msgid "Best Practices for Compound Delivery" +msgid_plural "copies of Best Practices for Compound Delivery" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi Made Easy'} +#. ~ Description for {'str': 'Best Practices for Compound Delivery', 'str_pl': 'copies of Best Practices for Compound Delivery'} #: lang/json/BOOK_from_json.py msgid "" -"A simple text for the aspiring sushi lover, this easy to read guide is " -"filled with lots of helpful illustrations for everything from basic rice " -"preparation to setting a proper Japanese table." +"This internal manual details several varieties of mutagenic experiments, as " +"well as describing the protocols used to concentrate mutagens for quicker " +"results. The authors recommend that researchers ensure that their subjects " +"are well-fed and in good health, as the concentrated serums draw heavily on " +"subjects' bodies." msgstr "" #: lang/json/BOOK_from_json.py -msgid "family cookbook" -msgid_plural "family cookbooks" +msgid "CRC-Merck Handbook, 4th edition" +msgid_plural "copies of CRC-Merck Handbook, 4th edition" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'family cookbook'} +#. ~ Description for {'str': 'CRC-Merck Handbook, 4th edition', 'str_pl': 'copies of CRC-Merck Handbook, 4th edition'} #: lang/json/BOOK_from_json.py msgid "" -"A big binder full of somebody's family recipes. The well-turned pages and " -"creased corners speak volumes of the culinary knowledge contained within. " -"You could probably learn a lot about cooking from studying this domestic " -"artifact." +"This huge hardbound book is a collection of reference data and formulae " +"pertinent to many technical disciplines. If poring over tables of chemical " +"and physical data is your thing, this is the book for you." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Bon Appetit" -msgid_plural "issues of Bon Appetit" +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#. ~ Description for {'str': 'chemistry textbook'} #: lang/json/BOOK_from_json.py -msgid "" -"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +msgid "A college textbook on chemistry." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Glamopolitan" -msgid_plural "issues of Glamopolitan" +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of Glamopolitan'} +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} #: lang/json/BOOK_from_json.py msgid "" -"This is a full-size glossy women's magazine. There are a few unoriginal " -"recipes and some simple cooking tips somewhere in between the fashion photos " -"and the sex advice columns." +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Modern Tanner" -msgid_plural "copies of The Modern Tanner" +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Modern Tanner', 'str_pl': 'copies of The Modern Tanner'} +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': 'copies of Art and Science of Chemical Warfare'} #: lang/json/BOOK_from_json.py msgid "" -"An in-depth and easy to read guide that details a very modern take on the " -"ancient art of leather tanning." +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at " +"times, though the information is top-notch." msgstr "" #: lang/json/BOOK_from_json.py -msgid "PE050 \"Alpha\": Preliminary Report" -msgid_plural "copies of PE050 \"Alpha\": Preliminary Report" +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'PE050 "Alpha": Preliminary Report', 'str_pl': 'copies of PE050 "Alpha": Preliminary Report'} +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science Experiments that Really Work'} #: lang/json/BOOK_from_json.py msgid "" -"This sheaf of papers--dated two weeks before all this started--describes " -"some new chemical formula, and its effects on human subjects. It's stamped " -"\"APPROVED\"…" +"A book with comprehensive and accurate step-by-step illustrated instructions " +"for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." msgstr "" #: lang/json/BOOK_from_json.py -msgid "lab journal-Dionne" -msgid_plural "lab journals-Dionne" +msgid "SICP" +msgid_plural "copies of SICP" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lab journal-Dionne', 'str_pl': 'lab journals-Dionne'} +#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} #: lang/json/BOOK_from_json.py msgid "" -"This team logbook details several varieties of mutagenic experiments, " -"focusing on those derived from various Earth fauna. The team seems quite " -"enthusiastic--if not eager--about their results." +"A classic text, \"The Structure and Interpretation of Computer Programs.\" " +"Written with examples in LISP, but applicable to any language." msgstr "" #: lang/json/BOOK_from_json.py -msgid "PE065 \"Chimera\": Best Practices" -msgid_plural "copies of PE065 \"Chimera\": Best Practices" +msgid "Computer Science 301" +msgid_plural "copies of Computer Science 301" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'PE065 "Chimera": Best Practices', 'str_pl': 'copies of PE065 "Chimera": Best Practices'} +#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of Computer Science 301'} #: lang/json/BOOK_from_json.py -msgid "" -"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…" +msgid "A college textbook on computer science." msgstr "" #: lang/json/BOOK_from_json.py -msgid "lab journal-Smythe" -msgid_plural "lab journals-Smythe" +msgid "How to Browse the Web" +msgid_plural "copies of How to Browse the Web" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lab journal-Smythe', 'str_pl': 'lab journals-Smythe'} +#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How to Browse the Web'} +#: lang/json/BOOK_from_json.py +msgid "Very beginner-level information about computers." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Computer World" +msgid_plural "issues of Computer World" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer World'} #: lang/json/BOOK_from_json.py msgid "" -"This team logbook details several varieties of mutagenic experiments, " -"focusing on those derived from flesh contaminated with XE037. The results " -"look promising but the procurement methods seem awfully vague…" +"An informative magazine all about computers, both hardware and software." msgstr "" #: lang/json/BOOK_from_json.py -msgid "standpipe maintenance log" -msgid_plural "standpipe maintenance logs" +msgid "Computer Science 101" +msgid_plural "copies of Computer Science 101" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'standpipe maintenance log'} +#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of Computer Science 101'} +#: lang/json/BOOK_from_json.py +msgid "An entry-level textbook about computers." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Advanced Programming" +msgid_plural "copies of Principles of Advanced Programming" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': 'copies of Principles of Advanced Programming'} #: lang/json/BOOK_from_json.py msgid "" -"This binder details the scheduled maintenance for several plumbing systems " -"throughout the facility. However, some of the log sheets seem to be filled " -"with… a chemical formula?" +"A heavy textbook dedicated to advanced-level software design, written for " +"several different programming languages." msgstr "" #: lang/json/BOOK_from_json.py -msgid "chemical reference-CLASSIFIED" -msgid_plural "chemical references-CLASSIFIED" +msgid "The Homebrewer's Bible" +msgid_plural "copies of The Homebrewer's Bible" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'chemical reference-CLASSIFIED', 'str_pl': 'chemical references-CLASSIFIED'} +#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of The Homebrewer's Bible"} #: lang/json/BOOK_from_json.py msgid "" -"This somewhat technical binder has several intimidating security warnings on " -"the cover, yet guarantees unauthorized readers \"permanent employment, for " -"life\". It contains useful information on \"basic\" chemical projects like " -"methamphetamine and heroin, along with briefing on things called \"XE037\" " -"and \"PE012\"." +"A book full of easy-to-follow recipes and useful advice on homebrewing, " +"malting, and fermenting. It even smells faintly of booze." msgstr "" #: lang/json/BOOK_from_json.py -msgid "lab journal-x-|xp" -msgid_plural "lab journals-x-|xp" +msgid "Cooking on a Budget" +msgid_plural "copies of Cooking on a Budget" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lab journal-x-|xp', 'str_pl': 'lab journals-x-|xp'} +#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of Cooking on a Budget'} #: lang/json/BOOK_from_json.py msgid "" -"This damaged team logbook lacks (deliberately?) any identifying information, " -"but still contains useful information on several types of mutagen and their " -"development." +"A nice cook book that goes beyond recipes and into the chemistry of food." msgstr "" #: lang/json/BOOK_from_json.py -msgid "PE023 \"Medical\": Application and Findings" -msgid_plural "copies of PE023 \"Medical\": Application and Findings" +msgid "To Serve Man" +msgid_plural "copies of To Serve Man" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'PE023 "Medical": Application and Findings', 'str_pl': 'copies of PE023 "Medical": Application and Findings'} +#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve Man'} +#: lang/json/BOOK_from_json.py +msgid "It's… it's a cookbook!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cucina Italiana" +msgid_plural "copies of Cucina Italiana" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina Italiana'} #: lang/json/BOOK_from_json.py msgid "" -"This binder of highly technical papers describes some new chemical formula, " -"and its effects on human subjects. It's stamped \"APPROVED\"…" +"This cookbook is written in Italian, but handily illustrated with step by " +"step photo instructions." msgstr "" #: lang/json/BOOK_from_json.py -msgid "PE070 \"Raptor\": Proposal" -msgid_plural "copies of PE070 \"Raptor\": Proposal" +msgid "Sushi Made Easy" +msgid_plural "copies of Sushi Made Easy" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'PE070 "Raptor": Proposal', 'str_pl': 'copies of PE070 "Raptor": Proposal'} +#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi Made Easy'} #: lang/json/BOOK_from_json.py msgid "" -"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." +"A simple text for the aspiring sushi lover, this easy to read guide is " +"filled with lots of helpful illustrations for everything from basic rice " +"preparation to setting a proper Japanese table." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Best Practices for Compound Delivery" -msgid_plural "copies of Best Practices for Compound Delivery" +msgid "family cookbook" +msgid_plural "family cookbooks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Best Practices for Compound Delivery', 'str_pl': 'copies of Best Practices for Compound Delivery'} +#. ~ Description for {'str': 'family cookbook'} #: lang/json/BOOK_from_json.py msgid "" -"This internal manual details several varieties of mutagenic experiments, as " -"well as describing the protocols used to concentrate mutagens for quicker " -"results. The authors recommend that researchers ensure that their subjects " -"are well-fed and in good health, as the concentrated serums draw heavily on " -"subjects' bodies." +"A big binder full of somebody's family recipes. The well-turned pages and " +"creased corners speak volumes of the culinary knowledge contained within. " +"You could probably learn a lot about cooking from studying this domestic " +"artifact." msgstr "" #: lang/json/BOOK_from_json.py -msgid "CRC-Merck Handbook, 4th edition" -msgid_plural "copies of CRC-Merck Handbook, 4th edition" +msgid "Bon Appetit" +msgid_plural "issues of Bon Appetit" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'CRC-Merck Handbook, 4th edition', 'str_pl': 'copies of CRC-Merck Handbook, 4th edition'} +#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} #: lang/json/BOOK_from_json.py msgid "" -"This huge hardbound book is a collection of reference data and formulae " -"pertinent to many technical disciplines. If poring over tables of chemical " -"and physical data is your thing, this is the book for you." +"Exciting recipes and restaurant reviews. Full of handy tips about cooking." msgstr "" -#. ~ That would translate out to The Scottish Book of Cookery, or The Scottish Cookbook. #: lang/json/BOOK_from_json.py -msgid "Ye Scots Beuk o Cuikery" -msgid_plural "copies of Ye Scots Beuk o Cuikery" +msgid "Glamopolitan" +msgid_plural "issues of Glamopolitan" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'//~': 'That would translate out to The Scottish Book of Cookery, or The Scottish Cookbook.', 'str': 'Ye Scots Beuk o Cuikery', 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} +#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of Glamopolitan'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." +"This is a full-size glossy women's magazine. There are a few unoriginal " +"recipes and some simple cooking tips somewhere in between the fashion photos " +"and the sex advice columns." msgstr "" +#. ~ That would translate out to The Scottish Book of Cookery, or The Scottish Cookbook. #: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" +msgid "Ye Scots Beuk o Cuikery" +msgid_plural "copies of Ye Scots Beuk o Cuikery" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'chemistry textbook'} +#. ~ Description for {'//~': 'That would translate out to The Scottish Book of Cookery, or The Scottish Cookbook.', 'str': 'Ye Scots Beuk o Cuikery', 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." +msgid "" +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of " +"people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." msgstr "" #: lang/json/BOOK_from_json.py @@ -23450,12 +23858,12 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " @@ -24214,21 +24622,6 @@ msgid "" "save lives." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at " -"times, though the information is top-notch." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" @@ -24345,20 +24738,6 @@ msgid "" "machining operation, the answer lies somewhere in these pages." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -25651,20 +26030,6 @@ msgid "" "Douglas Adams." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -25912,275 +26277,6 @@ msgid "" "in with a group of gun runners." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism" -"\". It looks to have been used as a coaster in a past life." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an " -"ominous looking metal tube. Provocative." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security " -"tag on the back cover. It appears to still be active." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The " -"cover contains an image of a pelican." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay Science" -"\" by Friederich Nietzsche." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the " -"title, it does not actually appear to be defending terrorism." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this " -"book." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks " -"like this book has a surprisingly long track record of owners." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book " -"might have been printed decades before the Cataclysm since the cover is " -"quite weathered." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems " -"that the author's real name is Fereidoun M. Esfandiary." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "phone book" msgid_plural "phone books" @@ -26769,6 +26865,514 @@ msgid "" "not provide any biography for Dr. Craven, let alone academic credentials." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of philosophy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism" +"\". It looks to have been used as a coaster in a past life." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an " +"ominous looking metal tube. Provocative." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a small reader on Hegel's Dialectics." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security " +"tag on the back cover. It appears to still be active." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The " +"cover contains an image of a pelican." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay Science" +"\" by Friederich Nietzsche." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the " +"title, it does not actually appear to be defending terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this " +"book." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks " +"like this book has a surprisingly long track record of owners." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book " +"might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems " +"that the author's real name is Fereidoun M. Esfandiary." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works, " +"and critical analyses on the subject of beauty." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe " +"and advance semantic investigations." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A " +"key work in the existentialist tradition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating, " +"it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up " +"your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Anything Can Be Beautiful" msgid_plural "Anything Can Be Beautifuls" @@ -27803,6 +28407,20 @@ msgid "" "professional clothing designer." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -28383,150 +29001,6 @@ msgid "" "ancient movie?" msgstr "" -#: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for chess set -#: lang/json/BOOK_from_json.py -msgid "" -"A wooden box containing all the equipment needed to play a game of chess." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for checkers set -#: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." -msgstr "" - -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of Sorcery cards'} -#: lang/json/BOOK_from_json.py -msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where one draws an image, and the others attempt to guess what it is." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players traverse around the board buying property and swindling " -"their friends." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and Bandits'} -#: lang/json/BOOK_from_json.py -msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive " -"the apocalypse while surviving the apocalypse." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} -#: lang/json/BOOK_from_json.py -msgid "A strategy game featuring a set of tiny figurines of fantasy creatures." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of Battlehammer 20k'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of Settlers of the Ranch'} -#: lang/json/BOOK_from_json.py -msgid "A strategy game where players build settlements and trade for supplies." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder Mystery'} -#: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Black Dragons: Swamp Ruins" msgid_plural "copies of Black Dragons: Swamp Ruins" @@ -28637,783 +29111,2420 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "SugarKin flyer" -msgid_plural "SugarKin flyers" +msgid "Spell Scroll" +msgid_plural "Spell Scrolls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'SugarKin flyer'} +#: lang/json/BOOK_from_json.py +msgid "Scroll of Crystallize Mana" +msgid_plural "Scrolls of Crystallize Mana" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Crystallize Mana', 'str_pl': 'Scrolls of Crystallize Mana'} #: lang/json/BOOK_from_json.py msgid "" -"A flyer for some kind of candy. It shows a picture of a gleaming human made " -"of smooth candy looking at you in terror. \"SugarKin the first life-size " -"human candy! Are you a real monster? Will you be able to devour it?\"\n" -" On the back of the flyer you can see some hastily scribbled words:\n" -" \"Hello, my child, welcome to this world. A world where you'll be able to " -"thrive if you follow a few rules:\n" -"1) Never ever get into contact with water, it would melt you!\n" -"2) Avoid humans with clear eyes they are very dangerous! (You can ignore " -"the ones with black eyes they are harmless to you.)\n" -"3) Learn how to make caramel ointment, it's the only way to fix your body if " -"you get hurt.\n" -" There are many more things I'd like to tell you but I must leave before " -"it's too late. I've made you a friend to keep you company, be kind to it.\n" -" I love you,\n" -" - F. \"." +"A proper wizard is always prepared, crystallize your mana for the future!" msgstr "" -#: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py -msgid "water" -msgid_plural "water" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Dark Sight" +msgid_plural "Scrolls of Dark Sight" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Dark Sight', 'str_pl': 'Scrolls of Dark Sight'} +#: lang/json/BOOK_from_json.py msgid "" -"Water, the stuff of life, the best thirst-quencher available. It would be " -"safer to drink once purified." +"The darkness holds no secrets for the arcane. Adjust your sight to see in " +"perfect darkness!" msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "bird litter" -msgid_plural "bird litter" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Invisibility" +msgid_plural "Scrolls of Invisibility" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'bird litter'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Bird dropping, feathers, and soiled bits of rubbish." +#. ~ Description for {'str': 'Scroll of Invisibility', 'str_pl': 'Scrolls of Invisibility'} +#: lang/json/BOOK_from_json.py +msgid "" +"The light can not interact with you unless you want it to. Become invisible!" msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "cow pie" -msgid_plural "cow pies" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Obfuscated Body" +msgid_plural "Scrolls of Obfuscated Body" msgstr[0] "" msgstr[1] "" -#. ~ Description for cow pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A fresh cow pie, could probably be used to make some great fertilizer." +#. ~ Description for {'str': 'Scroll of Obfuscated Body', 'str_pl': 'Scrolls of Obfuscated Body'} +#: lang/json/BOOK_from_json.py +msgid "" +"A magical aura distorts light around your body, making it easier to dodge " +"enemy attacks." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "dog dung" -msgid_plural "dog dungs" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Holographic Transposition" +msgid_plural "Scrolls of Holographic Transposition" msgstr[0] "" msgstr[1] "" -#. ~ Description for dog dung -#: lang/json/COMESTIBLE_from_json.py -msgid "Droppings from a canine." +#. ~ Description for {'str': 'Scroll of Holographic Transposition', 'str_pl': 'Scrolls of Holographic Transposition'} +#. ~ Description for {'str': 'Holographic Transposition'} +#. ~ Description for Holographic Transposition +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +#: lang/json/SPELL_from_json.py +msgid "" +"Allows you to swap places with a previously existing holographic image of " +"yourself. If the universe itself can't tell you apart, who could?" msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "manure" -msgid_plural "manures" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Smite" +msgid_plural "Scrolls of Smite" msgstr[0] "" msgstr[1] "" -#. ~ Description for manure -#: lang/json/COMESTIBLE_from_json.py -msgid "Common manure, could probably be used to make some great fertilizer." +#. ~ Description for {'str': 'Scroll of Smite', 'str_pl': 'Scrolls of Smite'} +#. ~ Description for Smite +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Evil has become pervasive throughout the world. Let your power be the light " +"that shines in the darkness!" msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "roach dirt" -msgid_plural "roach dirts" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Life Conversion" +msgid_plural "Scrolls of Life Conversion" msgstr[0] "" msgstr[1] "" -#. ~ Description for roach dirt -#: lang/json/COMESTIBLE_from_json.py -msgid "Large black pellets of rotting material." +#. ~ Description for {'str': 'Scroll of Life Conversion', 'str_pl': 'Scrolls of Life Conversion'} +#. ~ Description for Life Conversion +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"You channel your life force itself into your spiritual energy. You spend hp " +"to regain mana." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "bleach" -msgid_plural "bleach" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Mind Over Pain" +msgid_plural "Scrolls of Mind Over Pain" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'bleach'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Mind Over Pain', 'str_pl': 'Scrolls of Mind Over Pain'} +#. ~ Description for Mind over Pain +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"This is sodium hypochlorite, a common household cleaning agent. It is " -"highly unsafe to drink." +"With an intense ritual that resembles crossfit, you manage to put some of " +"your pain at bay." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "ammonia" -msgid_plural "ammonia" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Summon Zombie" +msgid_plural "Scrolls of Summon Zombie" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'ammonia'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Summon Zombie', 'str_pl': 'Scrolls of Summon Zombie'} +#. ~ Description for Summon Zombie +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"This is ammonium hydroxide, a common household cleaning agent. It is highly " -"unsafe to drink." +"An ethereal-looking zombie rises from the depths of the earth to fight for " +"you. You may be able to summon more with a higher level in this spell." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "liquid fertilizer" -msgid_plural "liquid fertilizer" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Summon Skeleton" +msgid_plural "Scrolls of Summon Skeleton" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'liquid fertilizer'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A nutrient rich elixir for plants." +#. ~ Description for {'str': 'Scroll of Summon Skeleton', 'str_pl': 'Scrolls of Summon Skeleton'} +#. ~ Description for Summon Skeleton +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"A ghostly skeleton rises from the depths of the earth to fight for you. You " +"may be able to summon more with a higher level in this spell." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "commercial fertilizer" -msgid_plural "commercial fertilizer" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Summon Floating Disk" +msgid_plural "Scrolls of Summon Floating Disk" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'commercial fertilizer'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Nutrient rich granules for plants." +#. ~ Description for {'str': 'Scroll of Summon Floating Disk', 'str_pl': 'Scrolls of Summon Floating Disk'} +#. ~ Description for Summon floating disk +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Summons a floating disk that is sworn to carry your burdens." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "fungicide" -msgid_plural "fungicide" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Summon Decayed Pouncer" +msgid_plural "Scrolls of Summon Decayed Pouncer" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'fungicide'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Summon Decayed Pouncer', 'str_pl': 'Scrolls of Summon Decayed Pouncer'} +#. ~ Description for Summon Decayed Pouncer +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"Agricultural grade chemical anti-fungal powder designed to destroy " -"infections in plants." +"A decrepit looking large cat rises from the depths of the earth to fight for " +"you. You may be able to summon more with a higher level in this spell." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "insecticide" -msgid_plural "insecticide" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Cure Light Wounds" +msgid_plural "Scrolls of Cure Light Wounds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'insecticide'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Agricultural-grade chemical insecticide powder designed to eradicate insect " -"pests." +#. ~ Description for {'str': 'Scroll of Cure Light Wounds', 'str_pl': 'Scrolls of Cure Light Wounds'} +#. ~ Description for Cure Light Wounds +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Heals a little bit of damage on the target." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "salt water" -msgid_plural "salt water" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Pain Split" +msgid_plural "Scrolls of Pain Split" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'salt water'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Water with salt added. Not good for drinking." +#. ~ Description for {'str': 'Scroll of Pain Split', 'str_pl': 'Scrolls of Pain Split'} +#. ~ Description for Pain Split +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Evens out damage among your limbs." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "soapy water" -msgid_plural "soapy water" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Vicious Tentacle" +msgid_plural "Scrolls of Vicious Tentacle" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'soapy water'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Water with soap added. Not good for drinking." +#. ~ Description for {'str': 'Scroll of Vicious Tentacle', 'str_pl': 'Scrolls of Vicious Tentacle'} +#. ~ Description for Vicious Tentacle +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing " +"acid from your body, it has a long reach attack and vicious damage." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "acid water" -msgid_plural "acid water" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Grotesque Enhancement" +msgid_plural "Scrolls of Grotesque Enhancement" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'acid water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Grotesque Enhancement', 'str_pl': 'Scrolls of Grotesque Enhancement'} +#. ~ Description for Grotesque Enhancement +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"Water collected during an acid rainstorm. Don't drink it. Boiling it " -"concentrates the acid." +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "weak acid water" -msgid_plural "weak acid water" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Acidic Spray" +msgid_plural "Scrolls of Acidic Spray" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'weak acid water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Acidic Spray', 'str_pl': 'Scrolls of Acidic Spray'} +#. ~ Description for {'str': 'Acidic Spray'} +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"A mixture of rain and acid rain. Don't drink it. Boiling it concentrates " -"the acid." +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "concentrated acid" -msgid_plural "concentrated acid" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Flesh Pouch" +msgid_plural "Scrolls of Flesh Pouch" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'concentrated acid'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Concentrated acid. Don't drink it." +#. ~ Description for {'str': 'Scroll of Flesh Pouch', 'str_pl': 'Scrolls of Flesh Pouch'} +#. ~ Description for Flesh Pouch +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "sewage sample" -msgid_plural "sewage samples" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Conjure Bonespear" +msgid_plural "Scrolls of Conjure Bonespear" msgstr[0] "" msgstr[1] "" -#. ~ Description for sewage sample -#: lang/json/COMESTIBLE_from_json.py -msgid "A sample of sewage from a treatment plant. Gross." +#. ~ Description for {'str': 'Scroll of Conjure Bonespear', 'str_pl': 'Scrolls of Conjure Bonespear'} +#. ~ Description for Conjure Bonespear +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along " +"its length." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "water purification tablet" -msgid_plural "water purification tablets" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Megablast" +msgid_plural "Scrolls of Megablast" msgstr[0] "" msgstr[1] "" -#. ~ Description for water purification tablet -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Megablast', 'str_pl': 'Scrolls of Megablast'} +#. ~ Description for Megablast +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"Intended for the clarification and disinfection of unsafe drinking water, " -"these halazone-based purification tablets remove dangerous contaminants " -"using powerful chemicals. The label says to use one tablet per unit of " -"water." +"You always wanted to fire energy beams like in the animes you watched as a " +"kid. Now you can!" msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "sewage water" -msgid_plural "sewage water" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Magical Light" +msgid_plural "Scrolls of Magical Light" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'sewage water'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Turbid liquid from the sewers with awful stench." +#. ~ Description for {'str': 'Scroll of Magical Light', 'str_pl': 'Scrolls of Magical Light'} +#. ~ Description for Magical Light +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Creates a magical light." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "lye" -msgid_plural "lye" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Blinding Flash" +msgid_plural "Scrolls of Blinding Flash" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'lye'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Blinding Flash', 'str_pl': 'Scrolls of Blinding Flash'} +#. ~ Description for {'str': 'Blinding Flash'} +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"This is a liquid form of sodium hydroxide. It is highly corrosive, handle " -"with care." +"Blind enemies for a short time with a sudden, dazzling light. Higher levels " +"deal slightly higher damage." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "ether" -msgid_plural "ether" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Ethereal Grasp" +msgid_plural "Scrolls of Ethereal Grasp" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'ether'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Ethereal Grasp', 'str_pl': 'Scrolls of Ethereal Grasp'} +#. ~ Description for Ethereal Grasp +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"Diethyl ether largely supplanted the use of chloroform as a general " -"anesthetic due to ether's more favorable therapeutic index, that is, a " -"greater difference between an effective dose and a potentially toxic dose." +"A mass of spectral hands emerge from the ground, slowing everything in " +"range. Higher levels allow a bigger AoE, and longer effect." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "dimethyl sulfoxide" -msgid_plural "dimethyl sulfoxide" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Aura of Protection" +msgid_plural "Scrolls of Aura of Protection" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'dimethyl sulfoxide'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Aura of Protection', 'str_pl': 'Scrolls of Aura of Protection'} +#. ~ Description for {'str': 'Aura of Protection'} +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"Dimethyl sulfoxide, or DMSO, is a common and important aprotic solvent, " -"capable of dissolving a huge range of things. It has the weird property " -"that it absorbs very quickly through the skin, causing a garlic flavor in " -"the mouth even if it touched your arm." +"Encases your whole body in a magical aura that protects you from the " +"environment." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "chloroform" -msgid_plural "chloroform" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Vegetative Grasp" +msgid_plural "Scrolls of Vegetative Grasp" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'chloroform'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Vegetative Grasp', 'str_pl': 'Scrolls of Vegetative Grasp'} +#. ~ Description for Vegetative Grasp +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"Famous for its abilities as an illicit sedative, this substance is also a " -"very good solvent. In particular, it's used a lot in nuclear magnetic " -"resonance spectroscopy." +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "phenol" -msgid_plural "phenol" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Root Strike" +msgid_plural "Scrolls of Root Strike" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'phenol'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Root Strike', 'str_pl': 'Scrolls of Root Strike'} +#. ~ Description for Root Strike +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"This useful stuff is a potent solvent and has a wide range of reactive " -"applications. It can be used to make a huge number of plastics and " -"polymers, it can be an antiseptic, it can strip paint and break down epoxy, " -"and it can burn your skin away like tissue paper under a heat gun. Wear " -"gloves." +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "glycerol" -msgid_plural "glycerol" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Wooden Shaft" +msgid_plural "Scrolls of Wooden Shaft" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'glycerol'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Wooden Shaft', 'str_pl': 'Scrolls of Wooden Shaft'} +#. ~ Description for Wooden Shaft +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"This innocent, sweet, colorless liquid can be used for all kinds of things, " -"from sweetening food to manufacturing medicine to making potent explosives." +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "peptone broth powder" -msgid_plural "peptone broth powder" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Nature's Bow" +msgid_plural "Scrolls of Nature's Bow" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'peptone broth powder'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': "Scroll of Nature's Bow", 'str_pl': "Scrolls of Nature's Bow"} +#. ~ Description for Nature's Bow +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"This is a pre-mixed salty solution of protein and sugar. It's meant for " -"bacteria to eat, but if you were desperate you could eat it too; it's not " -"much different from cup noodle stock." +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "agar" -msgid_plural "agar" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Nature's Trance" +msgid_plural "Scrolls of Nature's Trance" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'agar'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': "Scroll of Nature's Trance", 'str_pl': "Scrolls of Nature's Trance"} +#. ~ Description for Nature's Trance +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"These clear flakes of processed seaweed can be dissolved in boiling water to " -"create a very sturdy, temperature resistant gel. Not only is it good for " -"making gels to separate molecules by size, but it's a great cheat ingredient " -"to make sure your jellies set properly." +"Your connection to living things allows you to go into a magical trance. " +"This allows you to recover fatige quickly in exchange for mana." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "acrylamide" -msgid_plural "acrylamide" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Bag of Cats" +msgid_plural "Scrolls of Bag of Cats" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'acrylamide'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"This highly carcinogenic white powder can be readily polymerized into a " -"whole bunch of useful water-soluble gels." +#. ~ Description for {'str': 'Scroll of Bag of Cats', 'str_pl': 'Scrolls of Bag of Cats'} +#. ~ Description for {'str': 'Bag of Cats'} +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Are you the crazy cat lady?" msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "acetylene" -msgid_plural "acetylene" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Stonefist" +msgid_plural "Scrolls of Stonefist" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'acetylene'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Stonefist', 'str_pl': 'Scrolls of Stonefist'} +#. ~ Description for Stonefist +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"A flammable gas that explodes under pressure. Combined with oxygen, " -"acetylene makes a great welding gas." +"Encases your arms and hands in a sheath of magical stone, you can punch and " +"defend yourself with it in melee combat." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "tainted tornado" -msgid_plural "tainted tornados" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Seismic Stomp" +msgid_plural "Scrolls of Seismic Stomp" msgstr[0] "" msgstr[1] "" -#. ~ Description for tainted tornado -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Seismic Stomp', 'str_pl': 'Scrolls of Seismic Stomp'} +#. ~ Description for Seismic Stomp +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"A frothing slurry of alcohol-soaked zombie flesh and rotten blood, it smells " -"almost as bad as it looks. Has weak mutagenic properties." +"Focusing mana into your leg, you stomp your foot and send out a shockwave, " +"knocking enemies around you onto the ground." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "sewer brew" -msgid_plural "sewer brews" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Stone's Endurance" +msgid_plural "Scrolls of Stone's Endurance" msgstr[0] "" msgstr[1] "" -#. ~ Description for sewer brew -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': "Scroll of Stone's Endurance", 'str_pl': "Scrolls of Stone's Endurance"} +#. ~ Description for Stone's Endurance +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"A thirsty mutant's drink of choice. It tastes horrible but it's probably a " -"lot safer to drink than before." +"You focus on the stones beneath you and draw from their agelessness. Your " +"mana is converted to stamina." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "hide bag" -msgid_plural "hide bags" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Shardspray" +msgid_plural "Scrolls of Shardspray" msgstr[0] "" msgstr[1] "" -#. ~ Description for hide bag -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Shardspray', 'str_pl': 'Scrolls of Shardspray'} +#. ~ Description for Shardspray +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"The raw skin of an animal, quickly turned into a makeshift bag for storage. " -"It will still rot, and needs to be cured and tanned." +"This spell projects a wide spray of sharp metal shards, cutting into your " +"foes and friends alike." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "tainted hide bag" -msgid_plural "tainted hide bags" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Piercing Bolt" +msgid_plural "Scrolls of Piercing Bolt" msgstr[0] "" msgstr[1] "" -#. ~ Description for tainted hide bag -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Piercing Bolt', 'str_pl': 'Scrolls of Piercing Bolt'} +#. ~ Description for Piercing Bolt +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"The raw skin of a monster, quickly turned into a makeshift bag for storage. " -"It will still rot, and needs to be cured and tanned." +"This spell projects a piercing rod of conjured iron at those that dare " +"oppose you." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "Spice" -msgid_plural "Spices" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Shardstorm" +msgid_plural "Scrolls of Shardstorm" msgstr[0] "" msgstr[1] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "marloss wine" -msgid_plural "marloss wine" +#. ~ Description for {'str': 'Scroll of Shardstorm', 'str_pl': 'Scrolls of Shardstorm'} +#. ~ Description for Shardstorm +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Creates an omnidirectional spray of razor sharp metal shards all around you." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Rockbolt" +msgid_plural "Scrolls of Rockbolt" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'marloss wine'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Goopy white wine, made from the fruit of the marloss." +#. ~ Description for {'str': 'Scroll of Rockbolt', 'str_pl': 'Scrolls of Rockbolt'} +#. ~ Description for Rockbolt +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Fires a conjured stone projectile at high velocity." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "Riesling" -msgid_plural "Riesling" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Point Flare" +msgid_plural "Scrolls of Point Flare" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Riesling'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Sparkling white wine, made from the world's noblest grape." +#. ~ Description for {'str': 'Scroll of Point Flare', 'str_pl': 'Scrolls of Point Flare'} +#. ~ Description for Point Flare +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Causes an intense heat at the location, damaging the target." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "Chardonnay" -msgid_plural "Chardonnay" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Finger Firelighter" +msgid_plural "Scrolls of Finger Firelighter" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Chardonnay'} -#: lang/json/COMESTIBLE_from_json.py -msgid "America's most popular wine, and for good reason." +#. ~ Description for {'str': 'Scroll of Finger Firelighter', 'str_pl': 'Scrolls of Finger Firelighter'} +#. ~ Description for Finger Firelighter +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Summons a small flame that does not burn you, but you can use it to light " +"things on fire. It seems to need you to have some intent to light things on " +"fire, because you are able to put it in your pocket with no issue." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "Cabernet Sauvignon" -msgid_plural "Cabernet Sauvignon" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Ice Spike" +msgid_plural "Scrolls of Ice Spike" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Cabernet Sauvignon'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Ice Spike', 'str_pl': 'Scrolls of Ice Spike'} +#. ~ Description for Ice Spike +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"The heavily disputed king of red wines. Pairs well with red meats and pasta." +"Causes jagged icicles to form in the air above the target, falling and " +"damaging it." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "pinot noir" -msgid_plural "pinot noir" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Fireball" +msgid_plural "Scrolls of Fireball" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'pinot noir'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Fireball', 'str_pl': 'Scrolls of Fireball'} +#. ~ Description for Fireball +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"Prized by collectors and adored by critics, it is one of the rarer and more " -"elegant wines." +"You hurl a pea-sized glowing orb that when reaches its target or an obstacle " +"produces a pressure-less blast of searing heat." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "marsala" -msgid_plural "marsala" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Cone of Cold" +msgid_plural "Scrolls of Cone of Cold" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'marsala'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A wine popularly used in dishes served in Italian restaurants." +#. ~ Description for {'str': 'Scroll of Cone of Cold', 'str_pl': 'Scrolls of Cone of Cold'} +#. ~ Description for Cone of Cold +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "You blast a cone of frigid air toward the target." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "vermouth" -msgid_plural "vermouth" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Burning Hands" +msgid_plural "Scrolls of Burning Hands" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'vermouth'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Burning Hands', 'str_pl': 'Scrolls of Burning Hands'} +#. ~ Description for {'str': 'Burning Hands'} +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"A soft wine with a pleasant herbal flavor and aroma. It is a common " -"cocktail ingredient, and can be used as a substitute for white wine." +"You're pretty sure you saw this in a game somewhere. You fire a short-range " +"cone of fire." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "barley wine" -msgid_plural "barley wine" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Frost Spray" +msgid_plural "Scrolls of Frost Spray" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'barley wine'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A strong ale." +#. ~ Description for {'str': 'Scroll of Frost Spray', 'str_pl': 'Scrolls of Frost Spray'} +#. ~ Description for Frost Spray +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"You're pretty sure you saw this in a game somewhere. You fire a short-range " +"cone of ice and cold." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "whiskey" -msgid_plural "whiskey" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Chilling Touch" +msgid_plural "Scrolls of Chilling Touch" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'whiskey'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A distilled grain alcohol, made from, by, and for real Southern colonels!" +#. ~ Description for {'str': 'Scroll of Chilling Touch', 'str_pl': 'Scrolls of Chilling Touch'} +#. ~ Description for Chilling Touch +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Freezes the touched target with intense cold." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "vodka" -msgid_plural "vodka" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Glide on Ice" +msgid_plural "Scrolls of Glide on Ice" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'vodka'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Glide on Ice', 'str_pl': 'Scrolls of Glide on Ice'} +#. ~ Description for Glide on Ice +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"A beverage of alcohol, water, and not much else. In America, men make " -"vodka, but in Soviet Russia, vodka makes the man." +"Encases your feet in a magical coating of ice, allowing you to glide along " +"smooth surfaces faster." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gin" -msgid_plural "gin" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Hoary Blast" +msgid_plural "Scrolls of Hoary Blast" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'gin'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Hoary Blast', 'str_pl': 'Scrolls of Hoary Blast'} +#. ~ Description for Hoary Blast +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"An alcoholic beverage flavored with juniper berries. It smells faintly of " -"berries, but mostly booze." +"You project a glowing white crystal of ice and it explodes on impact into a " +"blossom of shattering cold." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "rum" -msgid_plural "rum" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Ice Shield" +msgid_plural "Scrolls of Ice Shield" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'rum'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Ice Shield', 'str_pl': 'Scrolls of Ice Shield'} +#. ~ Description for Ice Shield +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"A distilled alcoholic beverage made from fermenting molasses. Drinking it " -"might make you feel like a pirate. Or not." +"Creates a magical shield of ice on your arm, you can defend yourself with it " +"in melee combat and use it to bash." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "tequila" -msgid_plural "tequila" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Frost Armor" +msgid_plural "Scrolls of Frost Armor" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'tequila'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A distilled alcoholic beverage made from a succulent plant with spiky " -"leaves. Don't eat the worm! Wait, there's no worm in this bottle." +#. ~ Description for {'str': 'Scroll of Frost Armor', 'str_pl': 'Scrolls of Frost Armor'} +#. ~ Description for Frost Armor +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Covers you in a thin layer of magical ice to protect you from harm." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "triple sec" -msgid_plural "triple sec" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Magic Missile" +msgid_plural "Scrolls of Magic Missile" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'triple sec'} -#: lang/json/COMESTIBLE_from_json.py -msgid "An orange flavored liquor used in many mixed drinks." +#. ~ Description for {'str': 'Scroll of Magic Missile', 'str_pl': 'Scrolls of Magic Missile'} +#. ~ Description for Magic Missile +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "I cast Magic Missile at the darkness!" msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "cheap wine" -msgid_plural "cheap wine" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Phase Door" +msgid_plural "Scrolls of Phase Door" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'cheap wine'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Really cheap fortified wine." +#. ~ Description for {'str': 'Scroll of Phase Door', 'str_pl': 'Scrolls of Phase Door'} +#. ~ Description for Phase Door +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Teleports you in a random direction a short distance." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "strong mixed alcohol" -msgid_plural "strong mixed alcohol" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Gravity Well" +msgid_plural "Scrolls of Gravity Well" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'strong mixed alcohol'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Strong alcoholic drinks, mixed with no regard for taste." +#. ~ Description for {'str': 'Scroll of Gravity Well', 'str_pl': 'Scrolls of Gravity Well'} +#. ~ Description for Gravity Well +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Summons a well of gravity with the epicenter at the location. Deals bashing " +"damage to all creatures in the affected area." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "weak mixed alcohol" -msgid_plural "weak mixed alcohol" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Mana Blast" +msgid_plural "Scrolls of Mana Blast" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'weak mixed alcohol'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Weak alcoholic drinks, mixed with no regard for taste." +#. ~ Description for {'str': 'Scroll of Mana Blast', 'str_pl': 'Scrolls of Mana Blast'} +#. ~ Description for Mana Blast +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "A blast of concentrated magical power that obliterates a large area." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "fruit wine" -msgid_plural "fruit wine" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Mana Bolt" +msgid_plural "Scrolls of Mana Bolt" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'fruit wine'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Cheap booze made from fermented fruit juice. Tastes just like it sounds." +#. ~ Description for {'str': 'Scroll of Mana Bolt', 'str_pl': 'Scrolls of Mana Bolt'} +#. ~ Description for Mana Bolt +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "A bolt of magical power that only damages your foes." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "brandy" -msgid_plural "brandy" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Haste" +msgid_plural "Scrolls of Haste" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'brandy'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Haste', 'str_pl': 'Scrolls of Haste'} +#. ~ Description for Haste +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"Wine that has been distilled to a higher proof. Great as an after-dinner " -"drink, but packs a punch." +"This spell gives you an enormous boost of speed lasting a short period of " +"time." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "Irish coffee" -msgid_plural "Irish coffee" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Mana Beam" +msgid_plural "Scrolls of Mana Beam" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Irish coffee'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sweetened coffee and whiskey topped with milk. Start your day the closeted " -"alcoholic way!" +#. ~ Description for {'str': 'Scroll of Mana Beam', 'str_pl': 'Scrolls of Mana Beam'} +#. ~ Description for Mana Beam +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "A beam of focused magical power that damages any foes in its path." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "Long Island iced tea" -msgid_plural "Long Island iced tea" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Escape" +msgid_plural "Scrolls of Escape" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Long Island iced tea'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Scroll of Escape', 'str_pl': 'Scrolls of Escape'} +#. ~ Description for Escape +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py msgid "" -"A blend of incredibly strong-flavored liquors that somehow tastes like none " -"of them. It contains no tea, but the inclusion of cola gives it a tea-like " -"color." +"Teleports you in a random direction a medium distance, to help escape your " +"foes in dangerous situations." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "screwdriver cocktail" -msgid_plural "screwdriver cocktails" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Cat's Grace" +msgid_plural "Scrolls of Cat's Grace" msgstr[0] "" msgstr[1] "" -#. ~ Description for screwdriver cocktail -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's " -"drink of choice." +#. ~ Description for {'str': "Scroll of Cat's Grace", 'str_pl': "Scrolls of Cat's Grace"} +#. ~ Description for Cat's Grace +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "You become more graceful, agile, and coordinated." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "wild apple" -msgid_plural "wild apple" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Eagle's Sight" +msgid_plural "Scrolls of Eagle's Sight" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'wild apple'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Like apple cider, only with vodka." +#. ~ Description for {'str': "Scroll of Eagle's Sight", 'str_pl': "Scrolls of Eagle's Sight"} +#. ~ Description for Eagle's Sight +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "You gain the perception of an eagle." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "rum & cola" -msgid_plural "rum & cola" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Ogre's Strength" +msgid_plural "Scrolls of Ogre's Strength" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'rum & cola'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Suitable for tropical retreats and Canadian artists alike." +#. ~ Description for {'str': "Scroll of Ogre's Strength", 'str_pl': "Scrolls of Ogre's Strength"} +#. ~ Description for Ogre's Strength +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "You gain the strength of an ogre." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "beer" -msgid_plural "beer" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Fox's Cunning" +msgid_plural "Scrolls of Fox's Cunning" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'beer'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A grain alcohol flavored with hops. It's best served cold, in a glass, and " -"with a lime - but you're not that lucky." +#. ~ Description for {'str': "Scroll of Fox's Cunning", 'str_pl': "Scrolls of Fox's Cunning"} +#. ~ Description for Fox's Cunning +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "You become wily like a fox." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "spiced mead" -msgid_plural "spiced mead" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Jolt" +msgid_plural "Scrolls of Jolt" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'spiced mead'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Well-aged honey wine, spiced with a hint of hops. Goes down bittersweet." +#. ~ Description for {'str': 'Scroll of Jolt', 'str_pl': 'Scrolls of Jolt'} +#. ~ Description for Jolt +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "A short-ranged fan of electricity shoots from your fingers." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "dandelion wine" -msgid_plural "dandelion wine" +#: lang/json/BOOK_from_json.py +msgid "Scroll of Lightning Bolt" +msgid_plural "Scrolls of Lightning Bolt" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Lightning Bolt', 'str_pl': 'Scrolls of Lightning Bolt'} +#. ~ Description for Lightning Bolt +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"The goto spell for many Stormshapers, this iconic spell does just what you " +"expect: you shoot lightning from your fingertips. However, this lightning " +"is more directed than most lightning, and travels in a line through most non-" +"solid targets." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Windstrike" +msgid_plural "Scrolls of Windstrike" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Windstrike', 'str_pl': 'Scrolls of Windstrike'} +#. ~ Description for Windstrike +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"A powerful blast of wind slams into anything in front of your outstretched " +"hand." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Windrunning" +msgid_plural "Scrolls of Windrunning" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Windrunning', 'str_pl': 'Scrolls of Windrunning'} +#. ~ Description for Windrunning +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"A magical wind pushes you forward as you move, easing your movements and " +"increasing speed." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Call Stormhammer" +msgid_plural "Scrolls of Call Stormhammer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Call Stormhammer', 'str_pl': 'Scrolls of Call Stormhammer'} +#. ~ Description for Call Stormhammer +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Creates a crackling magical warhammer full of lightning to smite your foes " +"with, and of course, smash things to bits!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Bless" +msgid_plural "Scrolls of Bless" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Bless', 'str_pl': 'Scrolls of Bless'} +#. ~ Description for {'str': 'Bless'} +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "A spell of blessing that gives you energy and boosts your abilities." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Holy Blade" +msgid_plural "Scrolls of Holy Blade" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Holy Blade', 'str_pl': 'Scrolls of Holy Blade'} +#. ~ Description for Holy Blade +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "This blade of light will cut through any evil it makes contact with!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Spiritual Armor" +msgid_plural "Scrolls of Spiritual Armor" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Spiritual Armor', 'str_pl': 'Scrolls of Spiritual Armor'} +#. ~ Description for Spiritual Armor +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Evil will not make it through your defenses if your faith is strong enough!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Lamp" +msgid_plural "Scrolls of Lamp" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Lamp', 'str_pl': 'Scrolls of Lamp'} +#. ~ Description for Lamp +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "Creates a magical lamp." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Manatricity" +msgid_plural "Scrolls of Manatricity" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Manatricity', 'str_pl': 'Scrolls of Manatricity'} +#. ~ Description for Manatricity +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"You have found a way to convert your spiritual energy into power you can use " +"for your bionics." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Taze" +msgid_plural "Scrolls of Taze" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Taze', 'str_pl': 'Scrolls of Taze'} +#. ~ Description for Taze +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"This spell creates a very short range bolt of electricity to shock your foes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Lesser Quantum Tunnel" +msgid_plural "Scrolls of Lesser Quantum Tunnel" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Lesser Quantum Tunnel', 'str_pl': 'Scrolls of Lesser Quantum Tunnel'} +#. ~ Description for Lesser Quantum Tunnel +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"This spell manipulates some quantum something or other to tunnel you through " +"a short distance of space, and even matter, unfortunately there's that whole " +"uncertainty thing as to where you come out. It leaves you a little dazed on " +"the other side as you reorient yourself." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Synaptic Stimulation" +msgid_plural "Scrolls of Synaptic Stimulation" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Synaptic Stimulation', 'str_pl': 'Scrolls of Synaptic Stimulation'} +#. ~ Description for Synaptic Stimulation +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"This spell stimulates the synapses in your brain beyond normal processing " +"speeds, giving you a large boost in mental processing capability, including " +"enhancing your reflexes, speed, and raw intellectual power. Use responsibly!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Laze" +msgid_plural "Scrolls of Laze" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Laze', 'str_pl': 'Scrolls of Laze'} +#. ~ Description for Laze +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"You concentrate and release a focused beam of photons at a target, also " +"known as a laser." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Animated Blade" +msgid_plural "Scrolls of Animated Blade" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Animated Blade', 'str_pl': 'Scrolls of Animated Blade'} +#. ~ Description for {'str': 'Animated Blade'} +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"This spell conjures flying animated blades that will cut your enemies down " +"to size. Into small pieces that is." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Mirror Image" +msgid_plural "Scrolls of Mirror Image" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Mirror Image', 'str_pl': 'Scrolls of Mirror Image'} +#. ~ Description for Mirror Image +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"This spell manipulates light into barely tangible duplicates of a living " +"being, a magical hologram in short." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Lightning Blast" +msgid_plural "Scrolls of Lightning Blast" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Lightning Blast', 'str_pl': 'Scrolls of Lightning Blast'} +#. ~ Description for Lightning Blast +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"You fire a small concentrated ball of lightning at the target. The " +"electricity diffuses quickly, so it doesn't do much damage, but you're able " +"to fire off several quick ones in a row." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Necrotic Gaze" +msgid_plural "Scrolls of Necrotic Gaze" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Necrotic Gaze', 'str_pl': 'Scrolls of Necrotic Gaze'} +#. ~ Description for Necrotic Gaze +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"You use the power of your own blood to imbue necrotic energy into your gaze, " +"damaging the target you look at." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Purification Seed" +msgid_plural "Scrolls of Purification Seed" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Purification Seed', 'str_pl': 'Scrolls of Purification Seed'} +#: lang/json/BOOK_from_json.py +msgid "" +"You summon a gift of the earth which will purify water. Greater levels " +"yield greater numbers of seeds." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of X-ray Vision" +msgid_plural "Scrolls of X-ray Vision" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of X-ray Vision', 'str_pl': 'Scrolls of X-ray Vision'} +#. ~ Description for X-ray Vision +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"You fire a cone of X-rays that magically allow you to see that area for a " +"short time." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': 'Scrolls of Optical Sneeze Beam'} +#: lang/json/BOOK_from_json.py +msgid "" +"You overcharge your internal batteries to send a semi-directed beam from " +"your face." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Clairvoyance" +msgid_plural "Scrolls of Clairvoyance" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Clairvoyance', 'str_pl': 'Scrolls of Clairvoyance'} +#. ~ Description for Clairvoyance +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "You close your eyes and the earth surrenders its secrets to you." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Lava Bomb" +msgid_plural "Scrolls of Lava Bomb" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Lava Bomb', 'str_pl': 'Scrolls of Lava Bomb'} +#. ~ Description for Lava Bomb +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"You tear up the ground beneath you to fire a lava bomb: a globe of lava " +"surrounded by hot, solid rock. It shatters upon impact, spraying shards of " +"rock and lava everywhere." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Acid Resistance" +msgid_plural "Scrolls of Acid Resistance" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Acid Resistance', 'str_pl': 'Scrolls of Acid Resistance'} +#: lang/json/BOOK_from_json.py +msgid "This spell creates an invisible aura to protect you from acid." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Lightning Storm" +msgid_plural "Scrolls of Lightning Storm" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Lightning Storm', 'str_pl': 'Scrolls of Lightning Storm'} +#: lang/json/BOOK_from_json.py +msgid "" +"This scroll details how a spell called 'Lightning Blast' which is commonly " +"used among Stormshapers can be altered to become much more powerful, at a " +"much higher mana cost." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Sacrificial Regrowth" +msgid_plural "Scrolls of Sacrificial Regrowth" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Sacrificial Regrowth', 'str_pl': 'Scrolls of Sacrificial Regrowth'} +#. ~ Description for Sacrificial Regrowth +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Through giving of one's own life force, you restore withered and barren " +"plant life nearby. What remains will need time to regrow its full strength." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Sacrificial Healing" +msgid_plural "Scrolls of Sacrificial Healing" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Sacrificial Healing', 'str_pl': 'Scrolls of Sacrificial Healing'} +#. ~ Description for Sacrificial Healing +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Channels some of the user's own life force into healing energy, for the sake " +"of ones allies." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Stoneskin" +msgid_plural "Scrolls of Stoneskin" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Stoneskin', 'str_pl': 'Scrolls of Stoneskin'} +#. ~ Description for Stoneskin +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Envelops your entire body in armor formed from living rock, encumbering yet " +"protective." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Pillar of Stone" +msgid_plural "Scrolls of Pillar of Stone" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Pillar of Stone', 'str_pl': 'Scrolls of Pillar of Stone'} +#. ~ Description for Pillar of Stone +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Drawing upon the surrounding earth, you form a pillar of solid rock. " +"Experience will make the task easier, and less disruptive to the surrounding " +"area." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Paralytic Dart" +msgid_plural "Scrolls of Paralytic Dart" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Paralytic Dart', 'str_pl': 'Scrolls of Paralytic Dart'} +#. ~ Description for Paralytic Dart +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Spits a warped needle of sinew and bone, carrying with it a sting that slows " +"your victim." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Visceral Projection" +msgid_plural "Scrolls of Visceral Projection" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Visceral Projection', 'str_pl': 'Scrolls of Visceral Projection'} +#. ~ Description for Visceral Projection +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Projects a spray of acrid blood and gore all around you, growing to ensnare " +"your prey in in a field of twitching poisonous tendrils." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Coagulant Weave" +msgid_plural "Scrolls of Coagulant Weave" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Coagulant Weave', 'str_pl': 'Scrolls of Coagulant Weave'} +#. ~ Description for Coagulant Weave +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Turns your biological mastery inwards, medically enhancing your flesh. " +"Rather than strength of healing, it staves off blood loss and purges wounds " +"before they can turn septic, at the cost of increased hunger and thirst." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Ionization" +msgid_plural "Scrolls of Ionization" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Ionization', 'str_pl': 'Scrolls of Ionization'} +#. ~ Description for Ionization +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"By manipulating the charge in the air, you can conjure a sharp snap of " +"lightning over a wide area. While its destructive potential is a far cry " +"from natural lightning, the light and thunderclap produced will leave your " +"foes reeling." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Ignus Fatuus" +msgid_plural "Scrolls of Ignus Fatuus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Ignus Fatuus', 'str_pl': 'Scrolls of Ignus Fatuus'} +#. ~ Description for Ignus Fatuus +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Summons ghostly foxfire worked from living marsh vapor, to lead your enemies " +"astray. With more experience, this spell can conjure multiple ghost lights." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Scroll of Wall of Fog" +msgid_plural "Scrolls of Wall of Fog" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Scroll of Wall of Fog', 'str_pl': 'Scrolls of Wall of Fog'} +#. ~ Description for Wall of Fog +#: lang/json/BOOK_from_json.py lang/json/SPELL_from_json.py +msgid "" +"Draws forth a broad wall of thick fog. While the sudden force of air " +"pressure will floor any enemies caught in it, the conjuration is otherwise " +"harmless." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Technomancer's Guide to Debugging C:DDA" +msgid_plural "copies of A Technomancer's Guide to Debugging C:DDA" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "A Technomancer's Guide to Debugging C:DDA", 'str_pl': "copies of A Technomancer's Guide to Debugging C:DDA"} +#: lang/json/BOOK_from_json.py +msgid "static std::string description( spell sp ) const;" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Beginner's Guide to Magic" +msgid_plural "copies of A Beginner's Guide to Magic" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "A Beginner's Guide to Magic", 'str_pl': "copies of A Beginner's Guide to Magic"} +#: lang/json/BOOK_from_json.py +msgid "" +"You would describe this as more like a pamphlet than a spellbook, but it " +"seems to have at least one interesting spell you can use." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Wizarding Guide to Backpacking" +msgid_plural "copies of Wizarding Guide to Backpacking" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Wizarding Guide to Backpacking', 'str_pl': 'copies of Wizarding Guide to Backpacking'} +#: lang/json/BOOK_from_json.py +msgid "" +"This appears to be the spell version of a guide for what things to take with " +"you when backpacking. It's a little bulky, but will certainly prove useful." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Pyromancy for Heretics" +msgid_plural "copies of Pyromancy for Heretics" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Pyromancy for Heretics', 'str_pl': 'copies of Pyromancy for Heretics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This charred husk of a book still contains many ways to light things aflame." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Treatise on Magical Elements" +msgid_plural "copies of A Treatise on Magical Elements" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'A Treatise on Magical Elements', 'str_pl': 'copies of A Treatise on Magical Elements'} +#: lang/json/BOOK_from_json.py +msgid "" +"This details complex diagrams, rituals, and choreography that describes " +"various spells." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Introduction to the Divine" +msgid_plural "copies of Introduction to the Divine" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Introduction to the Divine', 'str_pl': 'copies of Introduction to the Divine'} +#: lang/json/BOOK_from_json.py +msgid "" +"This appears to mostly be a religious text, but it does have some notes on " +"healing." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Paladin's Guide to Modern Spellcasting" +msgid_plural "copies of The Paladin's Guide to Modern Spellcasting" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "The Paladin's Guide to Modern Spellcasting", 'str_pl': "copies of The Paladin's Guide to Modern Spellcasting"} +#: lang/json/BOOK_from_json.py +msgid "" +"Despite the title, this seems to be written in Middle English. A little " +"obtuse, but you can make out most of the words well enough." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Winter's Eternal Grasp" +msgid_plural "copies of Winter's Eternal Grasp" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "Winter's Eternal Grasp", 'str_pl': "copies of Winter's Eternal Grasp"} +#: lang/json/BOOK_from_json.py +msgid "" +"This slim book almost seems to be made from ice, it's cold to the touch." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Tome of The Oncoming Storm" +msgid_plural "copies of The Tome of The Oncoming Storm" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Tome of The Oncoming Storm', 'str_pl': 'copies of The Tome of The Oncoming Storm'} +#: lang/json/BOOK_from_json.py +msgid "" +"A large book embossed with crossed lightning bolts and storm clouds, it " +"tingles to the touch." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nondescript Spellbook" +msgid_plural "copies of Nondescript Spellbook" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Nondescript Spellbook', 'str_pl': 'copies of Nondescript Spellbook'} +#: lang/json/BOOK_from_json.py +msgid "A small book, containing spells created by a novice magician." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Of Light and Falsehoods" +msgid_plural "copies of Of Light and Falsehoods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Of Light and Falsehoods', 'str_pl': 'copies of Of Light and Falsehoods'} +#: lang/json/BOOK_from_json.py +msgid "A small white book, it subtly amplifies the ambient light around it." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Tome of Flesh" +msgid_plural "copies of The Tome of Flesh" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Tome of Flesh', 'str_pl': 'copies of The Tome of Flesh'} +#: lang/json/BOOK_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Book of Trees" +msgid_plural "copies of The Book of Trees" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Book of Trees', 'str_pl': 'copies of The Book of Trees'} +#: lang/json/BOOK_from_json.py +msgid "A bark covered book." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Utility of Mana as an Energy Source" +msgid_plural "copies of The Utility of Mana as an Energy Source" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Utility of Mana as an Energy Source', 'str_pl': 'copies of The Utility of Mana as an Energy Source'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book details spells that use your mana to recover various physiological " +"effects." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Tome of The Battle Mage" +msgid_plural "copies of The Tome of The Battle Mage" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Tome of The Battle Mage', 'str_pl': 'copies of The Tome of The Battle Mage'} +#: lang/json/BOOK_from_json.py +msgid "" +"Your standard wizardy looking spellbook, filled with Magus combat spells. " +"You sure lucked out!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Tome of the Hollow Earth" +msgid_plural "copies of The Tome of the Hollow Earth" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Tome of the Hollow Earth', 'str_pl': 'copies of The Tome of the Hollow Earth'} +#: lang/json/BOOK_from_json.py +msgid "" +"This large dusty spellbook seems perpetually, well, dusty. It contains the " +"power of the earth." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Tome of Magical Movement" +msgid_plural "copies of The Tome of Magical Movement" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Tome of Magical Movement', 'str_pl': 'copies of The Tome of Magical Movement'} +#: lang/json/BOOK_from_json.py +#, no-python-format +msgid "" +"This small lightweight book seems to almost not entirely exist, let's say it " +"97% does. It contains Magus spells focused on movement." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Smudged Scroll" +msgid_plural "Smudged Scrolls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Smudged Scroll'} +#: lang/json/BOOK_from_json.py +msgid "" +"This looks like someone was designing a new spell, but spilled a mug of " +"coffee on it and crumpled it up in anger. You can tell that it will " +"definitely cast something, but you can't be sure that it will work very well." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Necromantic Minions for Dummies" +msgid_plural "copies of Necromantic Minions for Dummies" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Necromantic Minions for Dummies', 'str_pl': 'copies of Necromantic Minions for Dummies'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book details various ways of summoning an undead minion to fight for " +"you. They all appear to disappear after a short time, crumbling to dust." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Fundamentals of Technomancy" +msgid_plural "copies of Fundamentals of Technomancy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Fundamentals of Technomancy', 'str_pl': 'copies of Fundamentals of Technomancy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This thick manual instructs the spellcaster on manipulating and empowering " +"various forms of matter and energy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Complete Idiot's Guide to Technomancy" +msgid_plural "copies of Complete Idiot's Guide to Technomancy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "Complete Idiot's Guide to Technomancy", 'str_pl': "copies of Complete Idiot's Guide to Technomancy"} +#: lang/json/BOOK_from_json.py +msgid "" +"This colorful guide, full of diagrams and cartoons, teaches a couple of very " +"basic Technomancy spells for the not-so-bright pupils." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Technomancy and the Electromagnetic Spectrum" +msgid_plural "copies of Technomancy and the Electromagnetic Spectrum" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Technomancy and the Electromagnetic Spectrum', 'str_pl': 'copies of Technomancy and the Electromagnetic Spectrum'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lab reference material book is thick and overflowing with information " +"on combining magic with EM radiation." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Geospatial Systems: The Lie Of Linearity" +msgid_plural "copies of Geospatial Systems: The Lie Of Linearity" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Geospatial Systems: The Lie Of Linearity', 'str_pl': 'copies of Geospatial Systems: The Lie Of Linearity'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book outlines in great detail how time and space are wibbly-wobbly and " +"non-Euclidean. It also appears to have a dozen different coordinate systems " +"that it uses nearly interchangeably, which makes it hard to follow. There's " +"lots of jargon, but with intense study you can probably learn a thing or two " +"about portals." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Transcendence of the Human Condition" +msgid_plural "copies of Transcendence of the Human Condition" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Transcendence of the Human Condition', 'str_pl': 'copies of Transcendence of the Human Condition'} +#: lang/json/BOOK_from_json.py +msgid "" +"The Human is the only creature that seeks to improve himself. This study " +"examines different spells that can heighten various senses temporarily, in " +"hopes to discover a more permanent solution." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "SugarKin flyer" +msgid_plural "SugarKin flyers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'SugarKin flyer'} +#: lang/json/BOOK_from_json.py +msgid "" +"A flyer for some kind of candy. It shows a picture of a gleaming human made " +"of smooth candy looking at you in terror. \"SugarKin the first life-size " +"human candy! Are you a real monster? Will you be able to devour it?\"\n" +" On the back of the flyer you can see some hastily scribbled words:\n" +" \"Hello, my child, welcome to this world. A world where you'll be able to " +"thrive if you follow a few rules:\n" +"1) Never ever get into contact with water, it would melt you!\n" +"2) Avoid humans with clear eyes they are very dangerous! (You can ignore " +"the ones with black eyes they are harmless to you.)\n" +"3) Learn how to make caramel ointment, it's the only way to fix your body if " +"you get hurt.\n" +" There are many more things I'd like to tell you but I must leave before " +"it's too late. I've made you a friend to keep you company, be kind to it.\n" +" I love you,\n" +" - F. \"." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', 'str_pl': 'copies of In the Beginning… Was the Command Line'} +#: lang/json/BOOK_from_json.py +msgid "" +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': 'copies of Principles of Compiler Design'} +#: lang/json/BOOK_from_json.py +msgid "" +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py +msgid "water" +msgid_plural "water" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'water'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Water, the stuff of life, the best thirst-quencher available. It would be " +"safer to drink once purified." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "bird litter" +msgid_plural "bird litter" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'bird litter'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Bird dropping, feathers, and soiled bits of rubbish." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cow pie" +msgid_plural "cow pies" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for cow pie +#: lang/json/COMESTIBLE_from_json.py +msgid "A fresh cow pie, could probably be used to make some great fertilizer." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "dog dung" +msgid_plural "dog dungs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for dog dung +#: lang/json/COMESTIBLE_from_json.py +msgid "Droppings from a canine." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "manure" +msgid_plural "manures" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for manure +#: lang/json/COMESTIBLE_from_json.py +msgid "Common manure, could probably be used to make some great fertilizer." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "roach dirt" +msgid_plural "roach dirts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for roach dirt +#: lang/json/COMESTIBLE_from_json.py +msgid "Large black pellets of rotting material." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "bleach" +msgid_plural "bleach" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'bleach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is sodium hypochlorite, a common household cleaning agent. It is " +"highly unsafe to drink." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "ammonia" +msgid_plural "ammonia" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'ammonia'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is ammonium hydroxide, a common household cleaning agent. It is highly " +"unsafe to drink." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "liquid fertilizer" +msgid_plural "liquid fertilizer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'liquid fertilizer'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A nutrient rich elixir for plants." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "commercial fertilizer" +msgid_plural "commercial fertilizer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'commercial fertilizer'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Nutrient rich granules for plants." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "fungicide" +msgid_plural "fungicide" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'fungicide'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Agricultural grade chemical anti-fungal powder designed to destroy " +"infections in plants." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "insecticide" +msgid_plural "insecticide" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'insecticide'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Agricultural-grade chemical insecticide powder designed to eradicate insect " +"pests." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "salt water" +msgid_plural "salt water" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'salt water'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Water with salt added. Not good for drinking." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "soapy water" +msgid_plural "soapy water" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'soapy water'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Water with soap added. Not good for drinking." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "acid water" +msgid_plural "acid water" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'acid water'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Water collected during an acid rainstorm. Don't drink it. Boiling it " +"concentrates the acid." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "weak acid water" +msgid_plural "weak acid water" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'weak acid water'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A mixture of rain and acid rain. Don't drink it. Boiling it concentrates " +"the acid." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "concentrated acid" +msgid_plural "concentrated acid" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'concentrated acid'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Concentrated acid. Don't drink it." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sewage sample" +msgid_plural "sewage samples" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sewage sample +#: lang/json/COMESTIBLE_from_json.py +msgid "A sample of sewage from a treatment plant. Gross." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "water purification tablet" +msgid_plural "water purification tablets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for water purification tablet +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Intended for the clarification and disinfection of unsafe drinking water, " +"these halazone-based purification tablets remove dangerous contaminants " +"using powerful chemicals. The label says to use one tablet per unit of " +"water." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sewage water" +msgid_plural "sewage water" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'sewage water'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Turbid liquid from the sewers with awful stench." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "lye" +msgid_plural "lye" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'lye'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is a liquid form of sodium hydroxide. It is highly corrosive, handle " +"with care." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "ether" +msgid_plural "ether" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'ether'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Diethyl ether largely supplanted the use of chloroform as a general " +"anesthetic due to ether's more favorable therapeutic index, that is, a " +"greater difference between an effective dose and a potentially toxic dose." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "dimethyl sulfoxide" +msgid_plural "dimethyl sulfoxide" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'dimethyl sulfoxide'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Dimethyl sulfoxide, or DMSO, is a common and important aprotic solvent, " +"capable of dissolving a huge range of things. It has the weird property " +"that it absorbs very quickly through the skin, causing a garlic flavor in " +"the mouth even if it touched your arm." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chloroform" +msgid_plural "chloroform" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'chloroform'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Famous for its abilities as an illicit sedative, this substance is also a " +"very good solvent. In particular, it's used a lot in nuclear magnetic " +"resonance spectroscopy." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "phenol" +msgid_plural "phenol" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'phenol'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This useful stuff is a potent solvent and has a wide range of reactive " +"applications. It can be used to make a huge number of plastics and " +"polymers, it can be an antiseptic, it can strip paint and break down epoxy, " +"and it can burn your skin away like tissue paper under a heat gun. Wear " +"gloves." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "glycerol" +msgid_plural "glycerol" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'glycerol'} +#: lang/json/COMESTIBLE_from_json.py +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 "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "peptone broth powder" +msgid_plural "peptone broth powder" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'peptone broth powder'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is a pre-mixed salty solution of protein and sugar. It's meant for " +"bacteria to eat, but if you were desperate you could eat it too; it's not " +"much different from cup noodle stock." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "agar" +msgid_plural "agar" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'agar'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"These clear flakes of processed seaweed can be dissolved in boiling water to " +"create a very sturdy, temperature resistant gel. Not only is it good for " +"making gels to separate molecules by size, but it's a great cheat ingredient " +"to make sure your jellies set properly." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "acrylamide" +msgid_plural "acrylamide" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'acrylamide'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This highly carcinogenic white powder can be readily polymerized into a " +"whole bunch of useful water-soluble gels." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "acetylene" +msgid_plural "acetylene" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'acetylene'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A flammable gas that explodes under pressure. Combined with oxygen, " +"acetylene makes a great welding gas." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "tainted tornado" +msgid_plural "tainted tornados" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for tainted tornado +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A frothing slurry of alcohol-soaked zombie flesh and rotten blood, it smells " +"almost as bad as it looks. Has weak mutagenic properties." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sewer brew" +msgid_plural "sewer brews" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sewer brew +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A thirsty mutant's drink of choice. It tastes horrible but it's probably a " +"lot safer to drink than before." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "hide bag" +msgid_plural "hide bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for hide bag +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The raw skin of an animal, quickly turned into a makeshift bag for storage. " +"It will still rot, and needs to be cured and tanned." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "tainted hide bag" +msgid_plural "tainted hide bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for tainted hide bag +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The raw skin of a monster, quickly turned into a makeshift bag for storage. " +"It will still rot, and needs to be cured and tanned." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Spice" +msgid_plural "Spices" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "marloss wine" +msgid_plural "marloss wine" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'marloss wine'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Goopy white wine, made from the fruit of the marloss." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Riesling" +msgid_plural "Riesling" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Riesling'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Sparkling white wine, made from the world's noblest grape." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Chardonnay" +msgid_plural "Chardonnay" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Chardonnay'} +#: lang/json/COMESTIBLE_from_json.py +msgid "America's most popular wine, and for good reason." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Cabernet Sauvignon" +msgid_plural "Cabernet Sauvignon" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Cabernet Sauvignon'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The heavily disputed king of red wines. Pairs well with red meats and pasta." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "pinot noir" +msgid_plural "pinot noir" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'pinot noir'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Prized by collectors and adored by critics, it is one of the rarer and more " +"elegant wines." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "marsala" +msgid_plural "marsala" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'marsala'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A wine popularly used in dishes served in Italian restaurants." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "vermouth" +msgid_plural "vermouth" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'vermouth'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A soft wine with a pleasant herbal flavor and aroma. It is a common " +"cocktail ingredient, and can be used as a substitute for white wine." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "barley wine" +msgid_plural "barley wine" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'barley wine'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A strong ale." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "whiskey" +msgid_plural "whiskey" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'whiskey'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A distilled grain alcohol, made from, by, and for real Southern colonels!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "vodka" +msgid_plural "vodka" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'vodka'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A beverage of alcohol, water, and not much else. In America, men make " +"vodka, but in Soviet Russia, vodka makes the man." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "gin" +msgid_plural "gin" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'gin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"An alcoholic beverage flavored with juniper berries. It smells faintly of " +"berries, but mostly booze." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "rum" +msgid_plural "rum" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'rum'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A distilled alcoholic beverage made from fermenting molasses. Drinking it " +"might make you feel like a pirate. Or not." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "tequila" +msgid_plural "tequila" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'tequila'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A distilled alcoholic beverage made from a succulent plant with spiky " +"leaves. Don't eat the worm! Wait, there's no worm in this bottle." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "triple sec" +msgid_plural "triple sec" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'triple sec'} +#: lang/json/COMESTIBLE_from_json.py +msgid "An orange flavored liquor used in many mixed drinks." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cheap wine" +msgid_plural "cheap wine" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'cheap wine'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Really cheap fortified wine." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "strong mixed alcohol" +msgid_plural "strong mixed alcohol" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'strong mixed alcohol'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Strong alcoholic drinks, mixed with no regard for taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "weak mixed alcohol" +msgid_plural "weak mixed alcohol" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'weak mixed alcohol'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Weak alcoholic drinks, mixed with no regard for taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "fruit wine" +msgid_plural "fruit wine" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'fruit wine'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Cheap booze made from fermented fruit juice. Tastes just like it sounds." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "brandy" +msgid_plural "brandy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'brandy'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Wine that has been distilled to a higher proof. Great as an after-dinner " +"drink, but packs a punch." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Irish coffee" +msgid_plural "Irish coffee" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Irish coffee'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweetened coffee and whiskey topped with milk. Start your day the closeted " +"alcoholic way!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Long Island iced tea" +msgid_plural "Long Island iced tea" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Long Island iced tea'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A blend of incredibly strong-flavored liquors that somehow tastes like none " +"of them. It contains no tea, but the inclusion of cola gives it a tea-like " +"color." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "screwdriver cocktail" +msgid_plural "screwdriver cocktails" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for screwdriver cocktail +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's " +"drink of choice." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "wild apple" +msgid_plural "wild apple" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'wild apple'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Like apple cider, only with vodka." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "rum & cola" +msgid_plural "rum & cola" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'rum & cola'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Suitable for tropical retreats and Canadian artists alike." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "beer" +msgid_plural "beer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'beer'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A grain alcohol flavored with hops. It's best served cold, in a glass, and " +"with a lime - but you're not that lucky." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "spiced mead" +msgid_plural "spiced mead" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'spiced mead'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Well-aged honey wine, spiced with a hint of hops. Goes down bittersweet." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "dandelion wine" +msgid_plural "dandelion wine" msgstr[0] "" msgstr[1] "" @@ -29759,6 +31870,17 @@ msgid "" "Prohibition era." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -31724,7 +33846,7 @@ msgstr[1] "" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -32133,6 +34255,73 @@ msgstr[1] "" msgid "Fancy mineral water, so fancy it makes you feel fancy just holding it." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves " +"of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -32295,6 +34484,19 @@ msgid_plural "chicken eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" @@ -32742,6 +34944,19 @@ msgid "" "life. Bland, mushy and losing color." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -35491,6 +37706,11 @@ msgid_plural "caffeine pills" msgstr[0] "" msgstr[1] "" +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "" + #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -35984,7 +38204,8 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -36571,7 +38792,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." +"urges." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -38399,6 +40620,17 @@ msgid "" "and is guaranteed 100% edible!" msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -38657,13 +40889,14 @@ msgstr[1] "" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the " -"product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you " -"hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable " +"to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -39605,6 +41838,17 @@ msgid "" "fiddle. Delicious when cooked, but consuming raw can cause food poisoning." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" @@ -40758,6 +43002,17 @@ msgstr[1] "" msgid "Some mustard seeds. Could be ground into mustard powder." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -41093,6 +43348,19 @@ msgstr[1] "" msgid "A fragnant yellow powder. Not edible in this form." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" @@ -41668,6 +43936,19 @@ msgstr[1] "" msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'cooked bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds " +"are removed." +msgstr "" + #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py msgid "Raw wheat, not very tasty." @@ -42250,6 +44531,19 @@ msgid "" "Civilization." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "alien hydrogel" +msgid_plural "alien hydrogels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'alien hydrogel'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A lump of alien hydrogel with small writhing specks in it. Useful in " +"crafting. You could 'drink' it, but there's no way it would be pleasant." +msgstr "" + #. ~ Description for {'str_sp': 'cooked brains'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -42520,6 +44814,12 @@ msgid_plural "pachycephalosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -42532,6 +44832,12 @@ msgid_plural "tyrannosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "triceratops egg" msgid_plural "triceratops eggs" @@ -42550,6 +44856,12 @@ msgid_plural "ankylosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -43064,6 +45376,107 @@ msgid_plural "TEST pine nuts" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "test bitter almonds" +msgid_plural "test bitter almonds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'test bitter almonds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when " +"eaten raw." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "test apple" +msgid_plural "test apples" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test apple'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Test apple. May contain worms, but tastes delicious!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "test liquid" +msgid_plural "test liquid" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'test liquid'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"No clue what it's made of, but it's definitely liquid. Only for testing, do " +"not drink!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for tennis ball wine must +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'test tennis ball wine'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "test chewing gum" +msgid_plural "test chewing gum" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'test chewing gum'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test mutated thumb'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." +msgstr "" + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -43132,6 +45545,19 @@ msgstr[1] "" msgid "A small single-cylinder 2-stroke combustion engine." msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." +msgstr "" + #: lang/json/ENGINE_from_json.py msgid "Inline-4 engine" msgid_plural "Inline-4 engines" @@ -43462,6 +45888,19 @@ msgid "" "reduction with a source of carbon." msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "hickory root" msgid_plural "hickory roots" @@ -43720,16484 +46159,15183 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "IV bag" -msgid_plural "IV bags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'IV bag'} -#: lang/json/GENERIC_from_json.py -msgid "A small, sealed plastic bag for liquids used in intravenous therapy." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "glass bottle" -msgid_plural "glass bottles" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'glass bottle'} -#: lang/json/GENERIC_from_json.py -msgid "A resealable glass bottle, holds 750 ml of liquid." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "plastic bottle" -msgid_plural "plastic bottles" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'plastic bottle'} -#: lang/json/GENERIC_from_json.py -msgid "A resealable plastic bottle, holds 500 ml of liquid." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "condiment bottle" -msgid_plural "condiment bottles" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'condiment bottle'} -#: lang/json/GENERIC_from_json.py -msgid "" -"An inverted plastic bottle for condiments. Still sealed from factory, " -"preserves content from rot until opened." -msgstr "" - -#. ~ Description for {'str': 'condiment bottle'} -#: lang/json/GENERIC_from_json.py -msgid "An inverted plastic bottle for condiments." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "small plastic bottle" -msgid_plural "small plastic bottles" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/GENERIC_from_json.py -msgid "A resealable plastic bottle, holds 250 ml of liquid." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "large plastic bottle" -msgid_plural "large plastic bottles" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/GENERIC_from_json.py -msgid "" -"It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " -"boiled water." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "clay bowl" -msgid_plural "clay bowls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'clay bowl'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A clay bowl with a waterproofed hide lid. Can be used as a container or as " -"a tool. Holds 250 ml of liquid." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "pack" -msgid_plural "packs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'pack'} -#: lang/json/GENERIC_from_json.py -msgid "" -"SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " -"Emphysema And May Complicate Pregnancy." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "small cardboard box" -msgid_plural "small cardboard boxes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard boxes'} -#: lang/json/GENERIC_from_json.py -msgid "A small cardboard box. No bigger than a foot in dimension." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "cardboard box" -msgid_plural "cardboard boxes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A sturdy cardboard box, about the size of a banana box. Great for packing." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "large cardboard box" -msgid_plural "large cardboard boxes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard boxes'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A very large cardboard box, the sort children would have loved to hide in, " -"when there were still children." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "bucket" -msgid_plural "buckets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'bucket'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " -"legs, French fries, animal feed, farm use, tailgating, crafts, planting " -"flowers, holding gift baskets, containing a fruit basket and herbs, loose " -"item storage or as an ice bucket." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "hydration pack" -msgid_plural "hydration packs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'hydration pack'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A slim and lightweight insulated plastic bladder worn on the back. It has a " -"large pocket and a capped mouth for filling with liquid with a hose that " -"allows the wearer to drink hands-free." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "aluminum can" -msgid_plural "aluminum cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'aluminum can'} -#: lang/json/GENERIC_from_json.py -msgid "An aluminum can, like what soda comes in." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "opened aluminum can" -msgid_plural "opened aluminum cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/GENERIC_from_json.py -msgid "" -"An aluminum can, like what soda comes in. This one is opened and can't be " -"easily sealed." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "paper carton" -msgid_plural "paper cartons" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'paper carton'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A half gallon carton constructed of a paper, aluminum and plastic laminate. " -"It has a threaded cap for easy resealing." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "opened paper carton" -msgid_plural "opened paper cartons" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'opened paper carton'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A half gallon carton constructed of a paper, aluminum and plastic laminate. " -"This one is open and its contents will spoil." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "vacuum-packed bag" -msgid_plural "vacuum-packed bags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/GENERIC_from_json.py -msgid "This is a bag of vacuum-packed food." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "small tin can" -msgid_plural "small tin cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small tin can'} -#: lang/json/GENERIC_from_json.py -msgid "A small tin can, like what tuna comes in." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "small opened tin can" -msgid_plural "small opened tin cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small opened tin can'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small tin can, like what tuna comes in. This one is opened and can't be " -"easily sealed." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "medium tin can" -msgid_plural "medium tin cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'medium tin can'} -#: lang/json/GENERIC_from_json.py -msgid "A medium tin can, like what soup comes in." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "medium opened tin can" -msgid_plural "medium opened tin cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A medium tin can, like what soup comes in. This one is opened and can't be " -"easily sealed." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "plastic canteen" -msgid_plural "plastic canteens" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'plastic canteen'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A military-style water canteen with a 1.5 liter capacity. Commonly worn at " -"the hip." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "thermos" -msgid_plural "thermoses" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A Thermos brand vacuum flask. Built for temperature retention, helps keep " -"things hot or cold. Contains 1L of liquid." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "clay canister" -msgid_plural "clay canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'clay canister'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A fragile clay vessel. It can be used to make crude impact grenades or to " -"store liquid." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "clay hydria" -msgid_plural "clay hydrias" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'clay hydria'} -#: lang/json/GENERIC_from_json.py -msgid "A 15-liter clay pot with three handles for carrying and for pouring." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "large clay pot" -msgid_plural "large clay pots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large clay pot'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A bulky and heavy clay pot with a waterproofed hide lid, meant to store " -"water, but can carry other liquids in a pinch." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "plastic cup" -msgid_plural "plastic cups" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'plastic cup'} -#: lang/json/GENERIC_from_json.py -msgid "A small, vacuum formed cup." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "opened plastic cup" -msgid_plural "opened plastic cups" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/GENERIC_from_json.py -msgid "A small, vacuum formed cup, essentially trash." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "glass flask" -msgid_plural "glass flasks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'glass flask'} -#: lang/json/GENERIC_from_json.py -msgid "A 250 ml laboratory conical flask, with a rubber bung." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "test tube" -msgid_plural "test tubes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'test tube'} -#: lang/json/GENERIC_from_json.py -msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "beaker" -msgid_plural "beakers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'beaker'} -#: lang/json/GENERIC_from_json.py -msgid "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "graduated cylinder" -msgid_plural "graduated cylinders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A tall, narrow glass cylinder with precise markings for measuring fluid " -"quantities. An important science tool, it is also useful for anal retentive " -"chefs." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "microcentrifuge tube" -msgid_plural "microcentrifuge tubes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/GENERIC_from_json.py -msgid "" -"These plastic tubes, with little built in snap-caps, are a great way to " -"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 "" - -#: lang/json/GENERIC_from_json.py -msgid "hip flask" -msgid_plural "hip flasks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'hip flask'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly " -"transport alcohol." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "3L glass jar" -msgid_plural "3L glass jars" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '3L glass jar'} -#: lang/json/GENERIC_from_json.py -msgid "A three-liter glass jar with a metal screw top lid, used for canning." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "sealed 3L glass jar" -msgid_plural "sealed 3L glass jars" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A three-liter glass jar with a metal screw top lid, used for canning. " -"Sealed tightly to preserve contents from rot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "glass jar" -msgid_plural "glass jars" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'glass jar'} -#: lang/json/GENERIC_from_json.py -msgid "A half-liter glass jar with a metal screw top lid, used for canning." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "sealed glass jar" -msgid_plural "sealed glass jars" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A half-liter glass jar with a metal screw top lid, used for canning. Sealed " -"tightly and will preserve the contents from rot (assuming it was sterile " -"before sealing)." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "plastic jerrycan" -msgid_plural "plastic jerrycans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " -"in a pinch." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "steel jerrycan" -msgid_plural "steel jerrycans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A steel jerrycan, meant to carry fuel, but can carry other liquids in a " -"pinch." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "clay jug" -msgid_plural "clay jugs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'clay jug'} -#: lang/json/GENERIC_from_json.py -msgid "A clay container with a lid, used to hold and pour liquids." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "gallon jug" -msgid_plural "gallon jugs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gallon jug'} -#. ~ Description for TEST gallon jug -#: lang/json/GENERIC_from_json.py -msgid "A standard plastic jug used for milk and household cleaning chemicals." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "aluminum keg" -msgid_plural "aluminum kegs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'aluminum keg'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A reusable lightweight aluminum keg, used for shipping beer. It has a " -"capacity of 50 liters." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "steel keg" -msgid_plural "steel kegs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'steel keg'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A reusable heavy steel keg, used for shipping beer. It has a capacity of 50 " -"liters." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "large sealed stomach" -msgid_plural "large sealed stomachs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/GENERIC_from_json.py -msgid "" -"The stomach of a large creature, cleaned and sealed with strings. It can " -"hold 3 liters of water." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "metal tank (60L)" -msgid_plural "metal tanks (60L)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks (60L)'} -#: lang/json/GENERIC_from_json.py -msgid "A large metal tank for holding liquids. Useful for crafting." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "metal tank (2L)" -msgid_plural "metal tanks (2L)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/GENERIC_from_json.py -msgid "A small metal tank for gas or liquids. Useful for crafting." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "wooden canteen" -msgid_plural "wooden canteens" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'wooden canteen'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A water canteen made from wood, secured by metal bands and sealed with wax " -"or pitch. Holds 1.5 liters and has a simple carry strap." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "sealed stomach" -msgid_plural "sealed stomachs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'sealed stomach'} -#: lang/json/GENERIC_from_json.py -msgid "" -"The stomach of a creature, cleaned and sealed with a string. It can hold " -"1.5 liters of water." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "small waterskin" -msgid_plural "small waterskins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small waterskin'} -#. ~ Description for TEST small waterskin -#: lang/json/GENERIC_from_json.py -msgid "" -"A small watertight leather bag with a carrying strap, can hold 1.5 liters of " -"water." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "waterskin" -msgid_plural "waterskins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'waterskin'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A watertight leather bag with a carrying strap, can hold 3 liters of water." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "large waterskin" -msgid_plural "large waterskins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large waterskin'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A large watertight leather bag with a carrying strap, can hold 5 liters of " -"water." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "wooden barrel" -msgid_plural "wooden barrels" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'wooden barrel'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Traditionally made of white oak; these vessels are known for delivering " -"delicious whiskey to the future. It has a capacity of 100 liters." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "paper wrapper" -msgid_plural "paper wrappers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'paper wrapper'} -#: lang/json/GENERIC_from_json.py -msgid "Just a piece of butcher's paper. Good for starting fires." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "styrofoam cup" -msgid_plural "styrofoam cups" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/GENERIC_from_json.py -msgid "A cheap, disposable cup with a plastic lid and straw." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "plastic tub" -msgid_plural "plastic tubs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'plastic tub'} -#: lang/json/GENERIC_from_json.py -msgid "A big, square plastic bucket usually used for carrying ice cream." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "condom" -msgid_plural "condoms" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '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 "balloon" -msgid_plural "balloons" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'balloon'} -#: lang/json/GENERIC_from_json.py -msgid "A child's balloon. This could be used as a makeshift water container." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "large tin can" -msgid_plural "large tin cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large tin can'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A large tin can, like what beans come in. Holds a substantial amount of " -"food." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "large opened tin can" -msgid_plural "large opened tin cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large opened tin can'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A large tin can, like what beans come in. This one is opened and can't be " -"easily sealed." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "survival kit box" -msgid_plural "survival kit boxes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit boxes'} -#: lang/json/GENERIC_from_json.py -msgid "" -"An aluminum box that used to contain a small survival kit. Can hold 1 liter " -"of liquid." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "small cardboard box of tea bags" -msgid_plural "small cardboard boxes of tea bags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': 'small cardboard boxes of tea bags'} -#: lang/json/GENERIC_from_json.py -msgid "A very small cardboard box with tea brand written on it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "microwave generator" -msgid_plural "microwave generators" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'microwave generator'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This electrical component is designed to produce microwaves, for use in your " -"microwave." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "explosively pumped flux compression generator" -msgid_plural "explosively pumped flux compression generators" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'explosively pumped flux compression generator'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This large device consists mainly of a tube of copper wire surrounding a " -"large copper tube filled with high explosives. When detonated properly, the " -"explosives allow the device to produce large amounts of electrical energy in " -"a very short time." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "fake item" -msgid_plural "fake items" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'fake item'} -#: lang/json/GENERIC_from_json.py -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] "" - -#. ~ Description for {'str_sp': '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" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'smoldering embers'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A handful of smoldering embers emitting smoke. They are fading away even " -"when you look at them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "Magic 8-Ball" -msgid_plural "Magic 8-Balls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Magic 8-Ball'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A fortune-telling device from the 1950s. The kind of moral support you " -"didn't know you needed." -msgstr "" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/GENERIC_from_json.py -msgid "A deck of 52 playing cards." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "coin" -msgid_plural "coins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'coin'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A now-ancient form of currency. Stripped of its original purpose, it now " -"serves, faithfully, flippant Flippists for free." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "family photo" -msgid_plural "family photos" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'family photo'} -#: lang/json/GENERIC_from_json.py -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 "" - -#: lang/json/GENERIC_from_json.py -msgid "animal" -msgid_plural "none" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "nearby fire" -msgid_plural "none" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "muscle" -msgid_plural "none" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "wind" -msgid_plural "none" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "sun light" -msgid_plural "none" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "metabolism" -msgid_plural "metabolisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "a smoking device and a source of flame" -msgid_plural "none" -msgstr[0] "" -msgstr[1] "" - -#. ~ Adjective in "You block of the damage with your . -#: lang/json/GENERIC_from_json.py lang/json/trap_from_json.py -#: src/advanced_inv.cpp src/magic.cpp src/map_extras.cpp -#: src/map_extras.cpp src/melee.cpp src/recipe.cpp -msgid "none" -msgid_plural "none" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "file" -msgid_plural "files" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'file'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Several documents with all kinds of information, customer data and charts " -"kept together, pretty useless now though." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "INCIDENT REPORT: IMMERSION-27A" -msgid_plural "INCIDENT REPORT: IMMERSION-27As" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'INCIDENT REPORT: IMMERSION-27A'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A white piece of paper, with the logo of XEDRA printed on its upper left " -"corner. It seems to be an internal report of some kind." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "MATERIAL: T-SUBSTRATE" -msgid_plural "MATERIAL: T-SUBSTRATEs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "HAADF MICROGRAPH: T-SUBSTRATE" -msgid_plural "HAADF MICROGRAPH: T-SUBSTRATEs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "foodplace loyalty card" -msgid_plural "foodplace loyalty cards" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'foodplace loyalty card'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A bright pink loyalty card, all the points are stamped. This would " -"definitely prove your fidelity to Foodplace, if it still meant anything…" -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "withered plant" -msgid_plural "withered plants" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'withered plant'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dead plant. Good for starting fires or making a pile of leaves to sleep " -"on." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "fur pelt" -msgid_plural "fur pelts" +msgid_plural "IV bags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fur pelt'} +#. ~ Description for {'str': 'IV bag'} #: lang/json/GENERIC_from_json.py -msgid "A small bolt of fur from an animal. Can be made into warm clothing." +msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "faux fur pelt" -msgid_plural "faux fur pelts" +msgid "glass bottle" +msgid_plural "glass bottles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'faux fur pelt'} +#. ~ Description for {'str': 'glass bottle'} #: lang/json/GENERIC_from_json.py -msgid "A small bolt of garishly colored faux fur. Can be made into clothing." +msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "leather patch" -msgid_plural "leather patches" +msgid "plastic bottle" +msgid_plural "plastic bottles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'leather patch', 'str_pl': 'leather patches'} +#. ~ Description for {'str': 'plastic bottle'} #: lang/json/GENERIC_from_json.py -msgid "A smallish patch of leather, could be used to make tough clothing." +msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "felt patch" -msgid_plural "felt patches" +msgid "condiment bottle" +msgid_plural "condiment bottles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'felt patch', 'str_pl': 'felt patches'} +#. ~ Description for {'str': 'condiment bottle'} #: lang/json/GENERIC_from_json.py -msgid "A smallish patch of felt, could be disassembled for wool fiber." +msgid "" +"An inverted plastic bottle for condiments. Still sealed from factory, " +"preserves content from rot until opened." +msgstr "" + +#. ~ Description for {'str': 'condiment bottle'} +#: lang/json/GENERIC_from_json.py +msgid "An inverted plastic bottle for condiments." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Nomex patch" -msgid_plural "Nomex patches" +msgid "small plastic bottle" +msgid_plural "small plastic bottles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Nomex patch', 'str_pl': 'Nomex patches'} +#. ~ Description for {'str': 'small plastic bottle'} #: lang/json/GENERIC_from_json.py -msgid "A small bolt of Nomex fire-resistant fabric." +msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "superglue" -msgid_plural "superglue" +msgid "large plastic bottle" +msgid_plural "large plastic bottles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'superglue'} +#. ~ Description for {'str': 'large plastic bottle'} #: lang/json/GENERIC_from_json.py -msgid "A tube of strong glue. Used in many crafting recipes." +msgid "" +"It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " +"boiled water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bone glue" -msgid_plural "bone glues" +msgid "clay bowl" +msgid_plural "clay bowls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bone glue'} +#. ~ Description for {'str': 'clay bowl'} #: lang/json/GENERIC_from_json.py msgid "" -"Glue made from boiling animal bones. The adhesive isn't strong enough for " -"heavy-duty usages, but it can be used as a varnish or holding together small " -"items." +"A clay bowl with a waterproofed hide lid. Can be used as a container or as " +"a tool. Holds 250 ml of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fertilizer" -msgid_plural "fertilizers" +msgid "pack" +msgid_plural "packs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fertilizer'} +#. ~ Description for {'str': 'pack'} #: lang/json/GENERIC_from_json.py -msgid "A token, representing fertilization of a plant." +msgid "" +"SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " +"Emphysema And May Complicate Pregnancy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel chain" -msgid_plural "steel chains" +msgid "small cardboard box" +msgid_plural "small cardboard boxes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel chain'} +#. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard boxes'} #: lang/json/GENERIC_from_json.py -msgid "" -"A heavy steel chain. Useful as a weapon, or for crafting. It has a chance " -"to wrap around your target, allowing for a bonus unarmed attack." +msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chunk of chitin" -msgid_plural "chunks of chitin" +msgid "cardboard box" +msgid_plural "cardboard boxes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'chunk of chitin', 'str_pl': 'chunks of chitin'} +#. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} #: lang/json/GENERIC_from_json.py -msgid "A piece of an insect's exoskeleton. It is light and very durable." +msgid "" +"A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "set of 100 ceramic disk" -msgid_plural "ceramic disks" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "large cardboard box" +msgid_plural "large cardboard boxes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of 100 ceramic disk', 'str_pl': 'ceramic disks'} +#. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard boxes'} #: lang/json/GENERIC_from_json.py msgid "" -"A set of small slightly elongated disks, made of high-grade ceramic. They " -"remind you of scales." +"A very large cardboard box, the sort children would have loved to hide in, " +"when there were still children." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chunk of biosilicified chitin" -msgid_plural "chunks of biosilicified chitin" +msgid "bucket" +msgid_plural "buckets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'chunk of biosilicified chitin', 'str_pl': 'chunks of biosilicified chitin'} +#. ~ Description for {'str': 'bucket'} #: lang/json/GENERIC_from_json.py msgid "" -"A lump of exoskeleton that has undergone biosilicification. It is acid-" -"resistant and remarkably sturdy." +"A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " +"legs, French fries, animal feed, farm use, tailgating, crafts, planting " +"flowers, holding gift baskets, containing a fruit basket and herbs, loose " +"item storage or as an ice bucket." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bundle of rags" -msgid_plural "bundles of rags" +msgid "hydration pack" +msgid_plural "hydration packs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bundle of rags', 'str_pl': 'bundles of rags'} +#. ~ Description for {'str': 'hydration pack'} #: lang/json/GENERIC_from_json.py msgid "" -"Cotton rags, bundled tightly together for storage. Disassemble to unpack." +"A slim and lightweight insulated plastic bladder worn on the back. It has a " +"large pocket and a capped mouth for filling with liquid with a hose that " +"allows the wearer to drink hands-free." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bundle of leather" -msgid_plural "bundles of leather" +msgid "aluminum can" +msgid_plural "aluminum cans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bundle of leather', 'str_pl': 'bundles of leather'} +#. ~ Description for {'str': 'aluminum can'} #: lang/json/GENERIC_from_json.py -msgid "" -"Leather patches, bundled tightly together for storage. Disassemble to " -"unpack." +msgid "An aluminum can, like what soda comes in." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bundle of felt" -msgid_plural "bundles of felt" +msgid "opened aluminum can" +msgid_plural "opened aluminum cans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bundle of felt', 'str_pl': 'bundles of felt'} +#. ~ Description for {'str': 'opened aluminum can'} #: lang/json/GENERIC_from_json.py msgid "" -"Felt patches, bundled tightly together for storage. Disassemble to unpack." +"An aluminum can, like what soda comes in. This one is opened and can't be " +"easily sealed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "t-substrate sample" -msgid_plural "t-substrate samples" +msgid "paper carton" +msgid_plural "paper cartons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 't-substrate sample'} +#. ~ Description for {'str': 'paper carton'} #: lang/json/GENERIC_from_json.py msgid "" -"An acrylic cube cast around a small black crystal. It's tepid to the touch." +"A half gallon carton constructed of a paper, aluminum and plastic laminate. " +"It has a threaded cap for easy resealing." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "biollante bud" -msgid_plural "biollante buds" +msgid "opened paper carton" +msgid_plural "opened paper cartons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'biollante bud'} +#. ~ Description for {'str': 'opened paper carton'} #: lang/json/GENERIC_from_json.py msgid "" -"An unopened biollante flower, brilliant purple in color. It may still have " -"its sap-producing organ intact." +"A half gallon carton constructed of a paper, aluminum and plastic laminate. " +"This one is open and its contents will spoil." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "empty canister" -msgid_plural "empty canisters" +msgid "vacuum-packed bag" +msgid_plural "vacuum-packed bags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'empty canister'} +#. ~ Description for {'str': 'vacuum-packed bag'} #: lang/json/GENERIC_from_json.py -msgid "" -"An empty canister, which may have once held tear gas or other substances." +msgid "This is a bag of vacuum-packed food." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "petrified eye" -msgid_plural "petrified eyes" +msgid "small tin can" +msgid_plural "small tin cans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'petrified eye'} +#. ~ Description for {'str': 'small tin can'} #: lang/json/GENERIC_from_json.py -msgid "" -"A fist-sized eyeball with a cross-shaped pupil. It seems to be made of " -"stone, but doesn't look like it was carved." +msgid "A small tin can, like what tuna comes in." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "spiral stone" -msgid_plural "spiral stones" +msgid "small opened tin can" +msgid_plural "small opened tin cans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'spiral stone'} +#. ~ Description for {'str': 'small opened tin can'} #: lang/json/GENERIC_from_json.py msgid "" -"A rock the size of your fist. It is covered with intricate spirals; it is " -"impossible to tell whether they are carved, naturally formed, or some kind " -"of fossil." +"A small tin can, like what tuna comes in. This one is opened and can't be " +"easily sealed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "USB drive" -msgid_plural "USB drives" +msgid "medium tin can" +msgid_plural "medium tin cans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'USB drive'} +#. ~ Description for {'str': 'medium tin can'} #: lang/json/GENERIC_from_json.py -msgid "A USB thumb drive. Useful for holding software." +msgid "A medium tin can, like what soup comes in." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "data card" -msgid_plural "data cards" +msgid "medium opened tin can" +msgid_plural "medium opened tin cans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'data card'} +#. ~ Description for {'str': 'medium opened tin can'} #: lang/json/GENERIC_from_json.py msgid "" -"Some type of advanced data storage device. Useful for storing very large " -"amounts of information." +"A medium tin can, like what soup comes in. This one is opened and can't be " +"easily sealed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "candlestick" -msgid_plural "candlesticks" +msgid "plastic canteen" +msgid_plural "plastic canteens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'candlestick'} +#. ~ Description for {'str': 'plastic canteen'} #: lang/json/GENERIC_from_json.py -msgid "A gold candlestick." +msgid "" +"A military-style water canteen with a 1.5 liter capacity. Commonly worn at " +"the hip." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "blade" -msgid_plural "blades" +#: lang/json/GENERIC_from_json.py +msgid "thermos" +msgid_plural "thermoses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'blade'} +#. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} #: lang/json/GENERIC_from_json.py msgid "" -"A large, relatively sharp blade. Could be used to make bladed weaponry, or " -"attached to a car." +"A Thermos brand vacuum flask. Built for temperature retention, helps keep " +"things hot or cold. Contains 1L of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "scythe blade" -msgid_plural "scythe blades" +msgid "clay canister" +msgid_plural "clay canisters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'scythe blade'} +#. ~ Description for {'str': 'clay canister'} #: lang/json/GENERIC_from_json.py msgid "" -"A large, curved blade. Could be used to assemble a scythe, or make an " -"improvised polearm." +"A fragile clay vessel. It can be used to make crude impact grenades or to " +"store liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "circular sawblade" -msgid_plural "circular sawblades" +msgid "clay hydria" +msgid_plural "clay hydrias" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'circular sawblade'} +#. ~ Description for {'str': 'clay hydria'} #: lang/json/GENERIC_from_json.py -msgid "" -"An 8\" circular sawblade. You could make a saw with it, or throw it. " -"Wielding it without sturdy gloves is a bad idea." +msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tree spile" -msgid_plural "tree spiles" +msgid "large clay pot" +msgid_plural "large clay pots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tree spile'} +#. ~ Description for {'str': 'large clay pot'} #: lang/json/GENERIC_from_json.py msgid "" -"A hollow metal cylinder which is inserted in a tree crust in order to slowly " -"harvest its sap. Can be used on a maple tree in between late winter and " -"early spring to harvest maple sap." +"A bulky and heavy clay pot with a waterproofed hide lid, meant to store " +"water, but can carry other liquids in a pinch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wire" -msgid_plural "wires" +msgid "plastic cup" +msgid_plural "plastic cups" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wire'} +#. ~ Description for {'str': 'plastic cup'} #: lang/json/GENERIC_from_json.py -msgid "" -"A length of thin, relatively stiff, steel wire. Like the sort you find in " -"wire fences." +msgid "A small, vacuum formed cup." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "barbed wire" -msgid_plural "barbed wires" +msgid "opened plastic cup" +msgid_plural "opened plastic cups" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'barbed wire'} +#. ~ Description for {'str': 'opened plastic cup'} #: lang/json/GENERIC_from_json.py -msgid "A length of stiff wire, covered in sharp barbs." +msgid "A small, vacuum formed cup, essentially trash." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel mesh" -msgid_plural "steel meshes" +msgid "glass flask" +msgid_plural "glass flasks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel mesh', 'str_pl': 'steel meshes'} +#. ~ Description for {'str': 'glass flask'} #: lang/json/GENERIC_from_json.py -msgid "" -"A mat of woven fine steel wire, useful for dryer lint traps and reusable " -"coffee filter baskets. You could put these on a window to keep mosquitoes " -"and other bugs out, but chainlink fencing will do these days." +msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "rebar" -msgid_plural "rebars" +msgid "test tube" +msgid_plural "test tubes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'rebar'} +#. ~ Description for {'str': 'test tube'} #: lang/json/GENERIC_from_json.py -msgid "" -"A length of rebar, makes a nice melee weapon, and could be handy in " -"constructing tougher walls and such." +msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/terrain_from_json.py -#: lang/json/terrain_from_json.py -msgid "small railroad track" -msgid_plural "small railroad tracks" +#: lang/json/GENERIC_from_json.py +msgid "beaker" +msgid_plural "beakers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'small railroad track'} +#. ~ Description for {'str': 'beaker'} #: lang/json/GENERIC_from_json.py -msgid "A length of track, made from some planks and rails." +msgid "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/terrain_from_json.py -#: lang/json/terrain_from_json.py -msgid "concrete" -msgid_plural "concrete" +#: lang/json/GENERIC_from_json.py +msgid "graduated cylinder" +msgid_plural "graduated cylinders" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'concrete'} +#. ~ Description for {'str': 'graduated cylinder'} #: lang/json/GENERIC_from_json.py -msgid "Some concrete, ready to be used in a construction project." +msgid "" +"A tall, narrow glass cylinder with precise markings for measuring fluid " +"quantities. An important science tool, it is also useful for anal retentive " +"chefs." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bone skewer" -msgid_plural "bone skewers" +msgid "microcentrifuge tube" +msgid_plural "microcentrifuge tubes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bone skewer'} +#. ~ Description for {'str': 'microcentrifuge tube'} #: lang/json/GENERIC_from_json.py msgid "" -"A thin skewer carved from bone. Sadly, it won't make squirrel on a stick " -"taste better." +"These plastic tubes, with little built in snap-caps, are a great way to " +"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 "" #: lang/json/GENERIC_from_json.py -msgid "burnt out torch" -msgid_plural "burnt out torches" +msgid "hip flask" +msgid_plural "hip flasks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'burnt out torch', 'str_pl': 'burnt out torches'} +#. ~ Description for {'str': 'hip flask'} #: lang/json/GENERIC_from_json.py msgid "" -"A torch that has consumed all its fuel; it can be recrafted into another " -"torch." +"A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly " +"transport alcohol." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "dead flare" -msgid_plural "dead flares" +msgid "3L glass jar" +msgid_plural "3L glass jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'dead flare'} +#. ~ Description for {'str': '3L glass jar'} #: lang/json/GENERIC_from_json.py -msgid "This is a spent magnesium flare. It is essentially trash." +msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "spring" -msgid_plural "springs" +msgid "sealed 3L glass jar" +msgid_plural "sealed 3L glass jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'spring'} +#. ~ Description for {'str': 'sealed 3L glass jar'} #: lang/json/GENERIC_from_json.py msgid "" -"A large, heavy-duty spring. Expands with significant force when compressed." +"A three-liter glass jar with a metal screw top lid, used for canning. " +"Sealed tightly to preserve contents from rot." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lawnmower" -msgid_plural "lawnmowers" +msgid "glass jar" +msgid_plural "glass jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lawnmower'} +#. ~ Description for {'str': 'glass jar'} #: lang/json/GENERIC_from_json.py -msgid "" -"A motorized pushmower that seems to be broken. You could take it apart if " -"you had a wrench." +msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "damaged tent" -msgid_plural "damaged tents" +msgid "sealed glass jar" +msgid_plural "sealed glass jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'damaged tent'} +#. ~ Description for {'str': 'sealed glass jar'} #: lang/json/GENERIC_from_json.py msgid "" -"A small tent, just big enough to fit a person comfortably. This tent is " -"broken and cannot be deployed." +"A half-liter glass jar with a metal screw top lid, used for canning. Sealed " +"tightly and will preserve the contents from rot (assuming it was sterile " +"before sealing)." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "large damaged tent" -msgid_plural "large damaged tents" +msgid "plastic jerrycan" +msgid_plural "plastic jerrycans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'large damaged tent'} +#. ~ Description for {'str': 'plastic jerrycan'} #: lang/json/GENERIC_from_json.py msgid "" -"A family sized tent, very bulky but with plenty of space. This tent is " -"broken and can not be deployed." +"A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " +"in a pinch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "heating element" -msgid_plural "heating elements" +msgid "steel jerrycan" +msgid_plural "steel jerrycans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'heating element'} +#. ~ Description for {'str': 'steel jerrycan'} #: lang/json/GENERIC_from_json.py -msgid "A heating element, like the ones used in hotplates or kettles." +msgid "" +"A steel jerrycan, meant to carry fuel, but can carry other liquids in a " +"pinch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bimetal thermostat" -msgid_plural "bimetal thermostats" +msgid "clay jug" +msgid_plural "clay jugs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bimetal thermostat'} +#. ~ Description for {'str': 'clay jug'} #: lang/json/GENERIC_from_json.py -msgid "A simple thermostat controlled by thermal expansion of a bimetal strip." +msgid "A clay container with a lid, used to hold and pour liquids." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "television" -msgid_plural "televisions" +msgid "gallon jug" +msgid_plural "gallon jugs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'television'} +#. ~ Description for {'str': 'gallon jug'} +#. ~ Description for TEST gallon jug #: lang/json/GENERIC_from_json.py -msgid "A large LCD television, full of delicious electronics." +msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pilot light" -msgid_plural "pilot lights" +msgid "aluminum keg" +msgid_plural "aluminum kegs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pilot light'} +#. ~ Description for {'str': 'aluminum keg'} #: lang/json/GENERIC_from_json.py msgid "" -"A pilot light from a gas-burning device, this particular one is a simple " -"piezoelectric igniter." +"A reusable lightweight aluminum keg, used for shipping beer. It has a " +"capacity of 50 liters." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "delayed fuze" -msgid_plural "delayed fuzes" +msgid "steel keg" +msgid_plural "steel kegs" msgstr[0] "" msgstr[1] "" -#. ~ Description for delayed fuze +#. ~ Description for {'str': 'steel keg'} #: lang/json/GENERIC_from_json.py msgid "" -"A complex mechanical fuze. It seems it can be used to detonate stable " -"explosives after a short time by triggering it." +"A reusable heavy steel keg, used for shipping beer. It has a capacity of 50 " +"liters." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "impact fuze" -msgid_plural "impact fuzes" +msgid "large sealed stomach" +msgid_plural "large sealed stomachs" msgstr[0] "" msgstr[1] "" -#. ~ Description for impact fuze +#. ~ Description for {'str': 'large sealed stomach'} #: lang/json/GENERIC_from_json.py msgid "" -"A complex mechanical fuze. It seems it can be used to detonate stable " -"explosives upon a solid impact." +"The stomach of a large creature, cleaned and sealed with strings. It can " +"hold 3 liters of water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "toaster" -msgid_plural "toasters" +msgid "metal tank (60L)" +msgid_plural "metal tanks (60L)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'toaster'} +#. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks (60L)'} #: lang/json/GENERIC_from_json.py -msgid "A small two slice toaster, not much use as anything but spare parts" +msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "microwave" -msgid_plural "microwaves" +msgid "metal tank (2L)" +msgid_plural "metal tanks (2L)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'microwave'} +#. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} #: lang/json/GENERIC_from_json.py -msgid "" -"A home microwave, has probably seen its share of baked beans. Good for " -"scrap parts." +msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -msgid "laptop computer" -msgid_plural "laptop computers" +#: lang/json/GENERIC_from_json.py +msgid "wooden canteen" +msgid_plural "wooden canteens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'laptop computer'} +#. ~ Description for {'str': 'wooden canteen'} #: lang/json/GENERIC_from_json.py -msgid "A broken laptop, basically a paperweight now." +msgid "" +"A water canteen made from wood, secured by metal bands and sealed with wax " +"or pitch. Holds 1.5 liters and has a simple carry strap." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken eyebot" -msgid_plural "broken eyebots" +msgid "sealed stomach" +msgid_plural "sealed stomachs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken eyebot'} +#. ~ Description for {'str': 'sealed stomach'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken eyebot. Much less threatening now that it won't be calling for " -"backup. Could be gutted for parts." +"The stomach of a creature, cleaned and sealed with a string. It can hold " +"1.5 liters of water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken skitterbot" -msgid_plural "broken skitterbots" +msgid "small waterskin" +msgid_plural "small waterskins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken skitterbot'} +#. ~ Description for {'str': 'small waterskin'} +#. ~ Description for TEST small waterskin #: lang/json/GENERIC_from_json.py msgid "" -"A broken skitterbot. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." +"A small watertight leather bag with a carrying strap, can hold 1.5 liters of " +"water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken lab defense bot" -msgid_plural "broken lab defense bots" +msgid "waterskin" +msgid_plural "waterskins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken lab defense bot'} +#. ~ Description for {'str': 'waterskin'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken lab defense bot, with its casing broken and fluid drained. Could " -"be gutted for parts." +"A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken police bot" -msgid_plural "broken police bots" +msgid "large waterskin" +msgid_plural "large waterskins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken police bot'} +#. ~ Description for {'str': 'large waterskin'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken police bot. Much less threatening now that it's quiet and still. " -"Could be gutted for parts." +"A large watertight leather bag with a carrying strap, can hold 5 liters of " +"water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken nurse bot" -msgid_plural "broken nurse bots" +msgid "wooden barrel" +msgid_plural "wooden barrels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken nurse bot'} +#. ~ Description for {'str': 'wooden barrel'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken nurse bot. Its smooth face staring vacantly into empty space. " -"Could be gutted for parts." +"Traditionally made of white oak; these vessels are known for delivering " +"delicious whiskey to the future. It has a capacity of 100 liters." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken grocery bot" -msgid_plural "broken grocery bots" +msgid "paper wrapper" +msgid_plural "paper wrappers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken grocery bot'} +#. ~ Description for {'str': 'paper wrapper'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken grocery bot. Its smiling face staring vacantly into empty space. " -"Could be gutted for parts." +msgid "Just a piece of butcher's paper. Good for starting fires." msgstr "" -#. ~ Description for {'str': 'broken grocery bot'} +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'wrapper'} #: lang/json/GENERIC_from_json.py msgid "" -"The body of a busted grocery bot. Its tarnished face is still smiling. " -"Could be gutted for parts." +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken riot control bot" -msgid_plural "broken riot control bots" +msgid "styrofoam cup" +msgid_plural "styrofoam cups" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken riot control bot'} +#. ~ Description for {'str': 'styrofoam cup'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control bot. Much less threatening now that it's out of gas. " -"Could be gutted for parts." +msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken prototype robot" -msgid_plural "broken prototype robots" +msgid "plastic tub" +msgid_plural "plastic tubs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken prototype robot'} +#. ~ Description for {'str': 'plastic tub'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken prototype robot, well more broken than before. Could be gutted for " -"parts." +msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken miner bot" -msgid_plural "broken miner bots" +msgid "condom" +msgid_plural "condoms" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken miner bot'} +#. ~ Description for {'str': 'condom'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken miner bot. Much less threatening now that it's no longer capable " -"of drilling anything. Could be gutted for parts." +"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 "broken recon mech" -msgid_plural "broken recon mechs" +msgid "balloon" +msgid_plural "balloons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken recon mech'} -#. ~ Description for {'str': 'broken mech lifter'} -#. ~ Description for {'str': 'broken combat mech'} +#. ~ Description for {'str': 'balloon'} #: lang/json/GENERIC_from_json.py -msgid "This is a broken mech exoskeleton suit, it looks beyond repair." +msgid "A child's balloon. This could be used as a makeshift water container." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken mech lifter" -msgid_plural "broken mech lifters" +msgid "large tin can" +msgid_plural "large tin cans" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'large tin can'} #: lang/json/GENERIC_from_json.py -msgid "broken combat mech" -msgid_plural "broken combat mechs" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A large tin can, like what beans come in. Holds a substantial amount of " +"food." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken riot dispatch" -msgid_plural "broken riot dispatches" +msgid "large opened tin can" +msgid_plural "large opened tin cans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken riot dispatch', 'str_pl': 'broken riot dispatches'} +#. ~ Description for {'str': 'large opened tin can'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken riot dispatch, with its mesh midsection filled with fried manhacks " -"and its motor limp and still. Could be gutted for parts." +"A large tin can, like what beans come in. This one is opened and can't be " +"easily sealed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken military dispatch" -msgid_plural "broken military dispatches" +msgid "survival kit box" +msgid_plural "survival kit boxes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken military dispatch', 'str_pl': 'broken military dispatches'} +#. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit boxes'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken military dispatch. Though the scratched, disarmed manhacks visible " -"in its belly are disarmed, their destructive potential still inspires a " -"spark of fear, even now. Could be gutted for parts." +"An aluminum box that used to contain a small survival kit. Can hold 1 liter " +"of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken manhack" -msgid_plural "broken manhacks" +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken manhack'} +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': 'small cardboard boxes of tea bags'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken manhack. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." +msgid "A very small cardboard box with tea brand written on it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken grenade hack" -msgid_plural "broken grenade hacks" +msgid "microwave generator" +msgid_plural "microwave generators" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken grenade hack'} +#. ~ Description for {'str': 'microwave generator'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken grenade hack. Much less threatening now that it lies quiet on " -"solid ground. Could be gutted for parts." +"This electrical component is designed to produce microwaves, for use in your " +"microwave." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken mininuke hack" -msgid_plural "broken mininuke hacks" +msgid "explosively pumped flux compression generator" +msgid_plural "explosively pumped flux compression generators" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken mininuke hack'} +#. ~ Description for {'str': 'explosively pumped flux compression generator'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken magenta hack. Just looking at the wreck makes you shiver. Could " -"be gutted for parts." +"This large device consists mainly of a tube of copper wire surrounding a " +"large copper tube filled with high explosives. When detonated properly, the " +"explosives allow the device to produce large amounts of electrical energy in " +"a very short time." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken tear gas hack" -msgid_plural "broken tear gas hacks" +msgid "fake item" +msgid_plural "fake items" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken tear gas hack'} +#. ~ Description for {'str': 'fake item'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken tear gas hack. Much less threatening now that it lies quiet on " -"solid ground. Could be gutted for parts." +msgid "Dummy item. If you see this, then something went wrong." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken EMP hack" -msgid_plural "broken EMP hacks" +msgid "semi ground grains" +msgid_plural "semi ground grains" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken EMP hack'} +#. ~ Description for {'str_sp': 'semi ground grains'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken EMP hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." +msgid "A paste of half-finished milled grains, not yet flour." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken flashbang hack" -msgid_plural "broken flashbang hacks" +msgid "smoldering embers" +msgid_plural "smoldering embers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken flashbang hack'} +#. ~ Description for {'str_sp': 'smoldering embers'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken flashbang hack. Much less threatening now that it lies quiet on " -"solid ground. Could be gutted for parts." +"A handful of smoldering embers emitting smoke. They are fading away even " +"when you look at them." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken C-4 hack" -msgid_plural "broken C-4 hacks" +msgid "Magic 8-Ball" +msgid_plural "Magic 8-Balls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken C-4 hack'} +#. ~ Description for {'str': 'Magic 8-Ball'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken C-4 hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." +"A fortune-telling device from the 1950s. The kind of moral support you " +"didn't know you needed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "processor board" -msgid_plural "processor boards" +msgid "deck of cards" +msgid_plural "decks of cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'processor board'} +#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py -msgid "A central processor unit, useful in advanced electronics crafting." +msgid "A deck of 52 playing cards." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "RAM" -msgid_plural "RAMs" +msgid "coin" +msgid_plural "coins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'RAM'} +#. ~ Description for {'str': 'coin'} #: lang/json/GENERIC_from_json.py -msgid "A stick of memory. Useful in advanced electronics crafting." +msgid "" +"A now-ancient form of currency. Stripped of its original purpose, it now " +"serves, faithfully, flippant Flippists for free." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "power converter" -msgid_plural "power converters" +msgid "family photo" +msgid_plural "family photos" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'power converter'} +#. ~ Description for {'str': 'family photo'} #: lang/json/GENERIC_from_json.py -msgid "A power supply unit. Useful in lots of electronics recipes." +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 "" #: lang/json/GENERIC_from_json.py -msgid "amplifier circuit" -msgid_plural "amplifier circuits" +msgid "chess set" +msgid_plural "chess sets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'amplifier circuit'} +#. ~ Description for {'str': 'chess set'} #: lang/json/GENERIC_from_json.py msgid "" -"A circuit designed to amplify the strength of a signal. Useful in lots of " -"electronics recipes." +"A wooden box containing all the equipment needed to play a game of chess." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "transponder circuit" -msgid_plural "transponder circuits" +msgid "checkers set" +msgid_plural "checkers sets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'transponder circuit'} +#. ~ Description for {'str': 'checkers set'} #: lang/json/GENERIC_from_json.py -msgid "" -"A circuit designed to repeat a signal. Useful for crafting communications " -"equipment." +msgid "A wooden box containing a set of round tokens used to play checkers." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "signal receiver" -msgid_plural "signal receivers" +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'signal receiver'} +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of Sorcery cards'} #: lang/json/GENERIC_from_json.py msgid "" -"A module designed to receive many forms of signals. Useful for crafting " -"communications equipment." +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "large LCD screen" -msgid_plural "large LCD screens" +msgid "Picturesque" +msgid_plural "sets of Picturesque" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'large LCD screen'} +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} #: lang/json/GENERIC_from_json.py msgid "" -"A large backlit screen, used for displaying images. Useful in some " -"electronics recipes." +"A game where one draws an image, and the others attempt to guess what it is." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "small LCD screen" -msgid_plural "small LCD screens" +msgid "Capitalism" +msgid_plural "sets of Capitalism" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'small LCD screen'} +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} #: lang/json/GENERIC_from_json.py msgid "" -"A small backlit screen, used for displaying images. Useful in some " -"electronics recipes." +"A game where players traverse around the board buying property and swindling " +"their friends." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "high-quality lens" -msgid_plural "high-quality lenses" +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'high-quality lens', 'str_pl': 'high-quality lenses'} +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and Bandits'} #: lang/json/GENERIC_from_json.py msgid "" -"A high-quality lens, useful for focusing or diffusing light. Might be " -"useful for starting a fire." +"A roleplaying game set in the post-apocalypse, so you can pretend to survive " +"the apocalypse while surviving the apocalypse." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "small high-quality lens" -msgid_plural "small high-quality lenses" +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'small high-quality lens', 'str_pl': 'small high-quality lenses'} +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} #: lang/json/GENERIC_from_json.py -msgid "" -"A small high-quality lens, useful for focusing or diffusing light. Might be " -"useful for crafting." +msgid "A strategy game featuring a set of tiny figurines of fantasy creatures." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pair of tinted glass" -msgid_plural "pairs of tinted glass" +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pair of tinted glass', 'str_pl': 'pairs of tinted glass'} +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of Battlehammer 20k'} #: lang/json/GENERIC_from_json.py msgid "" -"A pair of small darkened glass, like the one that sunglasses are made of." +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "burnt out bionic" -msgid_plural "burnt out bionics" +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'burnt out bionic'} +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of Settlers of the Ranch'} #: lang/json/GENERIC_from_json.py -msgid "" -"Once a valuable bionic implant, it has not held up well under repeated use. " -"This object has been destroyed by excessive electric current and is now " -"useless." +msgid "A strategy game where players build settlements and trade for supplies." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "nanofabricator template" -msgid_plural "nanofabricator templates" +msgid "Warships" +msgid_plural "sets of Warships" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nanofabricator template'} +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} #: lang/json/GENERIC_from_json.py msgid "" -"A state-of-the-art optical storage system. This small slate of transparent " -"glass holds, inscribed as a miniature pattern, the instructions required to " -"create an item through a nanofabricator." +"A game where players try to guess where the opponent placed their ships on " +"the board." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "nanofabricator template (silicon photonics)" -msgid_plural "nanofabricator templates (silicon photonics)" +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nanofabricator template (silicon photonics)', 'str_pl': 'nanofabricator templates (silicon photonics)'} +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder Mystery'} #: lang/json/GENERIC_from_json.py -msgid "" -"A state-of-the-art optical storage system, containing the instruction set " -"required for the fabrication of complex silicon photonic circuitry. The " -"data within was once clearly worth millions, but now, you are not sure if " -"it's anything more than a fancy, high-tech paperweight." +msgid "A game where players try to figure out who murdered the butler." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "antenna" -msgid_plural "antennas" +msgid "animal" +msgid_plural "none" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'antenna'} #: lang/json/GENERIC_from_json.py -msgid "A simple thin aluminum shaft. Useful in lots of electronics recipes." -msgstr "" +msgid "nearby fire" +msgid_plural "none" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "micro motor" -msgid_plural "micro motors" +msgid "muscle" +msgid_plural "none" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'micro motor'} #: lang/json/GENERIC_from_json.py -msgid "" -"A very small electric motor like those used in RC cars. Useful in lots of " -"electronics recipes." -msgstr "" +msgid "wind" +msgid_plural "none" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "circuit board" -msgid_plural "circuit boards" +msgid "sun light" +msgid_plural "none" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'circuit board'} #: lang/json/GENERIC_from_json.py -msgid "" -"A printed card that supports and electrically connects electronic components " -"on a non-conductive substrate." -msgstr "" +msgid "metabolism" +msgid_plural "metabolisms" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "electronic scrap" -msgid_plural "electronic scraps" +msgid "a smoking device and a source of flame" +msgid_plural "none" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'electronic scrap'} +#. ~ Adjective in "You block of the damage with your . +#: lang/json/GENERIC_from_json.py lang/json/trap_from_json.py +#: src/advanced_inv.cpp src/magic.cpp src/map_extras.cpp +#: src/map_extras.cpp src/melee.cpp src/recipe.cpp +msgid "none" +msgid_plural "none" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/GENERIC_from_json.py +msgid "file" +msgid_plural "files" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'file'} #: lang/json/GENERIC_from_json.py msgid "" -"A random collection of resistors, capacitors, and diodes which have been " -"stripped from printed circuits." +"Several documents with all kinds of information, customer data and charts " +"kept together, pretty useless now though." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "radio repeater mod" -msgid_plural "radio repeater mods" +msgid "INCIDENT REPORT: IMMERSION-27A" +msgid_plural "INCIDENT REPORT: IMMERSION-27As" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'radio repeater mod'} +#. ~ Description for {'str': 'INCIDENT REPORT: IMMERSION-27A'} #: lang/json/GENERIC_from_json.py msgid "" -"A system designed to convert a radio station into an autonomous repeater." +"A white piece of paper, with the logo of XEDRA printed on its upper left " +"corner. It seems to be an internal report of some kind." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "desk fan" -msgid_plural "desk fans" +msgid "MATERIAL: T-SUBSTRATE" +msgid_plural "MATERIAL: T-SUBSTRATEs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'desk fan'} #: lang/json/GENERIC_from_json.py -msgid "A small fan, used to propel air around a room." -msgstr "" +msgid "HAADF MICROGRAPH: T-SUBSTRATE" +msgid_plural "HAADF MICROGRAPH: T-SUBSTRATEs" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "ceramic armor plate" -msgid_plural "ceramic armor plates" +msgid "foodplace loyalty card" +msgid_plural "foodplace loyalty cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ceramic armor plate'} +#. ~ Description for {'str': 'foodplace loyalty card'} #: lang/json/GENERIC_from_json.py msgid "" -"A ceramic armor plate, specifically engineered for use in a bullet resistant " -"vest." +"A bright pink loyalty card, all the points are stamped. This would " +"definitely prove your fidelity to Foodplace, if it still meant anything…" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fishbowl" -msgid_plural "fishbowls" +msgid "withered plant" +msgid_plural "withered plants" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fishbowl'} +#. ~ Description for {'str': 'withered plant'} #: lang/json/GENERIC_from_json.py msgid "" -"A filled fishbowl, the tag says 'to Ed' and the fish's name, 'Hoss'. The " -"fish appears to have tiny antlers." +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "blood soaked rag" -msgid_plural "blood soaked rags" +msgid "fur pelt" +msgid_plural "fur pelts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'blood soaked rag'} +#. ~ Description for {'str': 'fur pelt'} #: lang/json/GENERIC_from_json.py -msgid "" -"A large rag, drenched in blood. It could be cleaned with boiling water." +msgid "A small bolt of fur from an animal. Can be made into warm clothing." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pipe cleaner" -msgid_plural "pipe cleaners" +msgid "faux fur pelt" +msgid_plural "faux fur pelts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pipe cleaner'} +#. ~ Description for {'str': 'faux fur pelt'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a tool designed to clean interior surface of pipes, bottles, and " -"similar objects. This one is thin enough to be used for cleaning firearm " -"barrels from dirt and fouling." +msgid "A small bolt of garishly colored faux fur. Can be made into clothing." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "clock" -msgid_plural "clocks" +#: lang/json/GENERIC_from_json.py +msgid "leather patch" +msgid_plural "leather patches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'clock'} +#. ~ Description for {'str': 'leather patch', 'str_pl': 'leather patches'} #: lang/json/GENERIC_from_json.py -msgid "A small mechanical clock, it's stopped at 10:10." +msgid "A smallish patch of leather, could be used to make tough clothing." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "clockworks" -msgid_plural "clockworks" +msgid "felt patch" +msgid_plural "felt patches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'clockworks'} +#. ~ Description for {'str': 'felt patch', 'str_pl': 'felt patches'} #: lang/json/GENERIC_from_json.py -msgid "A small assortment of gears and other clockwork gubbins." +msgid "A smallish patch of felt, could be disassembled for wool fiber." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "SD-Memory card" -msgid_plural "SD-Memory cards" +msgid "Nomex patch" +msgid_plural "Nomex patches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'SD-Memory card'} +#. ~ Description for {'str': 'Nomex patch', 'str_pl': 'Nomex patches'} #: lang/json/GENERIC_from_json.py -msgid "A memory card, used. Might be worth a look." +msgid "A small bolt of Nomex fire-resistant fabric." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "SD-Memory card (clean)" -msgid_plural "SD-Memory cards (clean)" +msgid "superglue" +msgid_plural "superglue" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'SD-Memory card (clean)', 'str_pl': 'SD-Memory cards (clean)'} +#. ~ Description for {'str_sp': 'superglue'} +#: lang/json/GENERIC_from_json.py +msgid "A tube of strong glue. Used in many crafting recipes." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "bone glue" +msgid_plural "bone glues" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'bone glue'} #: lang/json/GENERIC_from_json.py msgid "" -"This memory card is either unused or has been wiped clean. You could use it " -"to store your data, though!" +"Glue made from boiling animal bones. The adhesive isn't strong enough for " +"heavy-duty usages, but it can be used as a varnish or holding together small " +"items." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "SD-Memory card (encrypted)" -msgid_plural "SD-Memory cards (encrypted)" +msgid "fertilizer" +msgid_plural "fertilizers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'fertilizer'} +#: lang/json/GENERIC_from_json.py +msgid "A token, representing fertilization of a plant." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "steel chain" +msgid_plural "steel chains" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'SD-Memory card (encrypted)', 'str_pl': 'SD-Memory cards (encrypted)'} +#. ~ Description for {'str': 'steel chain'} #: lang/json/GENERIC_from_json.py msgid "" -"This memory card appears to have the firmware encryption set. Hopefully it " -"contains something worth encrypting." +"A heavy steel chain. Useful as a weapon, or for crafting. It has a chance " +"to wrap around your target, allowing for a bonus unarmed attack." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Science SD-Memory card" -msgid_plural "Science SD-Memory cards" +msgid "chunk of chitin" +msgid_plural "chunks of chitin" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Science SD-Memory card'} +#. ~ Description for {'str': 'chunk of chitin', 'str_pl': 'chunks of chitin'} #: lang/json/GENERIC_from_json.py -msgid "" -"This memory card appears to be related to 'XEDRA', and is certainly " -"encrypted. Looks *Interesting*, though…" +msgid "A piece of an insect's exoskeleton. It is light and very durable." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hand mirror" -msgid_plural "hand mirrors" +msgid "set of 100 ceramic disk" +msgid_plural "ceramic disks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hand mirror'} +#. ~ Description for {'str': 'set of 100 ceramic disk', 'str_pl': 'ceramic disks'} #: lang/json/GENERIC_from_json.py -msgid "A small hand mirror." +msgid "" +"A set of small slightly elongated disks, made of high-grade ceramic. They " +"remind you of scales." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/terrain_from_json.py -msgid "manhole cover" -msgid_plural "manhole covers" +#: lang/json/GENERIC_from_json.py +msgid "chunk of biosilicified chitin" +msgid_plural "chunks of biosilicified chitin" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'manhole cover'} +#. ~ Description for {'str': 'chunk of biosilicified chitin', 'str_pl': 'chunks of biosilicified chitin'} #: lang/json/GENERIC_from_json.py msgid "" -"A heavy iron disc that typically covers a ladder into the sewers. Lifting " -"it from the manhole is impossible without a crowbar." +"A lump of exoskeleton that has undergone biosilicification. It is acid-" +"resistant and remarkably sturdy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pine bough" -msgid_plural "pine boughs" +msgid "bundle of rags" +msgid_plural "bundles of rags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pine bough'} +#. ~ Description for {'str': 'bundle of rags', 'str_pl': 'bundles of rags'} #: lang/json/GENERIC_from_json.py msgid "" -"A branch from a pine tree, oozing sticky sap and bristling with prickly " -"needles." +"Cotton rags, bundled tightly together for storage. Disassemble to unpack." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pinecone" -msgid_plural "pinecones" +msgid "bundle of leather" +msgid_plural "bundles of leather" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pinecone'} +#. ~ Description for {'str': 'bundle of leather', 'str_pl': 'bundles of leather'} #: lang/json/GENERIC_from_json.py msgid "" -"A spiny pod from a pine tree. Dry seeds rattle around inside when you shake " -"it." +"Leather patches, bundled tightly together for storage. Disassemble to " +"unpack." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "poppy bud" -msgid_plural "poppy buds" +msgid "bundle of felt" +msgid_plural "bundles of felt" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'poppy bud'} +#. ~ Description for {'str': 'bundle of felt', 'str_pl': 'bundles of felt'} #: lang/json/GENERIC_from_json.py msgid "" -"A poppy bud. Contains some substances commonly produced by a mutated poppy " -"flower." +"Felt patches, bundled tightly together for storage. Disassemble to unpack." msgstr "" -#. ~ Description for {'str': 'sunflower'} +#: lang/json/GENERIC_from_json.py +msgid "t-substrate sample" +msgid_plural "t-substrate samples" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 't-substrate sample'} #: lang/json/GENERIC_from_json.py msgid "" -"The top of a sunflower, with yellow pedals and some seeds that have yet to " -"be eaten by animals." +"An acrylic cube cast around a small black crystal. It's tepid to the touch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chamomile flowers" -msgid_plural "chamomile flowers" +msgid "biollante bud" +msgid_plural "biollante buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'chamomile flowers'} +#. ~ Description for {'str': 'biollante bud'} #: lang/json/GENERIC_from_json.py msgid "" -"White chamomile flowers, used as a herbal remedy since the ancient times." +"An unopened biollante flower, brilliant purple in color. It may still have " +"its sap-producing organ intact." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lotus flower" -msgid_plural "lotus flowers" +msgid "empty canister" +msgid_plural "empty canisters" msgstr[0] "" msgstr[1] "" -#. ~ Description for lotus -#. ~ Description for {'str': 'lotus flower'} -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +#. ~ Description for {'str': 'empty canister'} +#: lang/json/GENERIC_from_json.py msgid "" -"A lovely flower that grows on the surface of bodies of freshwater. " -"Traditionally connected with many Eastern cultures." +"An empty canister, which may have once held tear gas or other substances." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "spurge flowers" -msgid_plural "spurge flowers" +msgid "petrified eye" +msgid_plural "petrified eyes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'spurge flowers'} +#. ~ Description for {'str': 'petrified eye'} #: lang/json/GENERIC_from_json.py msgid "" -"A handful of yellow-green flowers. Can be brewed into a tea that prevents " -"asthma attacks." +"A fist-sized eyeball with a cross-shaped pupil. It seems to be made of " +"stone, but doesn't look like it was carved." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lump of clay" -msgid_plural "lumps of clay" +msgid "spiral stone" +msgid_plural "spiral stones" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lump of clay', 'str_pl': 'lumps of clay'} +#. ~ Description for {'str': 'spiral stone'} #: lang/json/GENERIC_from_json.py -msgid "A fresh piece of clay. Useful for some crafting recipes." +msgid "" +"A rock the size of your fist. It is covered with intricate spirals; it is " +"impossible to tell whether they are carved, naturally formed, or some kind " +"of fossil." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "brick" -msgid_plural "bricks" +msgid "USB drive" +msgid_plural "USB drives" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'brick'} +#. ~ Description for {'str': 'USB drive'} #: lang/json/GENERIC_from_json.py -msgid "A fire hardened building block used in masonry construction." +msgid "A USB thumb drive. Useful for holding software." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mortar" -msgid_plural "mortar" +msgid "data card" +msgid_plural "data cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'mortar'} +#. ~ Description for {'str': 'data card'} #: lang/json/GENERIC_from_json.py -msgid "Some mortar, ready to be used in building projects." +msgid "" +"Some type of advanced data storage device. Useful for storing very large " +"amounts of information." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "soft adobe brick" -msgid_plural "soft adobe bricks" +msgid "candlestick" +msgid_plural "candlesticks" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'soft adobe brick'}. +#. ~ Description for {'str': 'candlestick'} #: lang/json/GENERIC_from_json.py -msgid "You test the brick, and it seems solid enough to use." +msgid "A gold candlestick." msgstr "" -#. ~ Use action not_ready_msg for {'str': 'soft adobe brick'}. -#: lang/json/GENERIC_from_json.py -msgid "The brick is still too damp to bear weight." -msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/vehicle_part_from_json.py +msgid "blade" +msgid_plural "blades" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'soft adobe brick'} +#. ~ Description for {'str': 'blade'} #: lang/json/GENERIC_from_json.py msgid "" -"A compacted mass of soil and natural fibers, still too wet to build with. " -"Load it onto a pallet and leave it to dry." +"A large, relatively sharp blade. Could be used to make bladed weaponry, or " +"attached to a car." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "adobe brick" -msgid_plural "adobe bricks" +msgid "scythe blade" +msgid_plural "scythe blades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'adobe brick'} +#. ~ Description for {'str': 'scythe blade'} #: lang/json/GENERIC_from_json.py msgid "" -"A compacted mass of soil and natural fibers, baked dry enough to harden into " -"a brick." +"A large, curved blade. Could be used to assemble a scythe, or make an " +"improvised polearm." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "adobe mortar" -msgid_plural "adobe mortar" +msgid "circular sawblade" +msgid_plural "circular sawblades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'adobe mortar'} +#. ~ Description for {'str': 'circular sawblade'} #: lang/json/GENERIC_from_json.py msgid "" -"A thick, pasty mud, low in sand content to reduce crumbling once dry. Used " -"to glue larger, heavier pieces of mud and clay together." +"An 8\" circular sawblade. You could make a saw with it, or throw it. " +"Wielding it without sturdy gloves is a bad idea." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tanbark" -msgid_plural "tanbark" +msgid "tree spile" +msgid_plural "tree spiles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'tanbark'} +#. ~ Description for {'str': 'tree spile'} #: lang/json/GENERIC_from_json.py -msgid "A sheet of tannin-rich bark from a tree, useful for tanning leather" +msgid "" +"A hollow metal cylinder which is inserted in a tree crust in order to slowly " +"harvest its sap. Can be used on a maple tree in between late winter and " +"early spring to harvest maple sap." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "birchbark" -msgid_plural "birchbarks" +msgid "wire" +msgid_plural "wires" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'birchbark'} +#. ~ Description for {'str': 'wire'} #: lang/json/GENERIC_from_json.py -msgid "A sheet of tough, water-resistant bark taken from a birch tree." +msgid "" +"A length of thin, relatively stiff, steel wire. Like the sort you find in " +"wire fences." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "willowbark" -msgid_plural "willowbark" +msgid "barbed wire" +msgid_plural "barbed wires" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'willowbark'} +#. ~ Description for {'str': 'barbed wire'} #: lang/json/GENERIC_from_json.py -msgid "" -"A sheet of bark taken from a willow tree. Used in the production of aspirin." +msgid "A length of stiff wire, covered in sharp barbs." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "diamond" -msgid_plural "diamonds" +msgid "steel mesh" +msgid_plural "steel meshes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'diamond'} +#. ~ Description for {'str': 'steel mesh', 'str_pl': 'steel meshes'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling diamond." +msgid "" +"A mat of woven fine steel wire, useful for dryer lint traps and reusable " +"coffee filter baskets. You could put these on a window to keep mosquitoes " +"and other bugs out, but chainlink fencing will do these days." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garnet" -msgid_plural "garnets" +msgid "rebar" +msgid_plural "rebars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'garnet'} +#. ~ Description for {'str': 'rebar'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling garnet." +msgid "" +"A length of rebar, makes a nice melee weapon, and could be handy in " +"constructing tougher walls and such." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "amethyst" -msgid_plural "amethysts" +#: lang/json/GENERIC_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py +msgid "small railroad track" +msgid_plural "small railroad tracks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'amethyst'} +#. ~ Description for {'str': 'small railroad track'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling amethyst." +msgid "A length of track, made from some planks and rails." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "aquamarine" -msgid_plural "aquamarines" +#: lang/json/GENERIC_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py +msgid "concrete" +msgid_plural "concrete" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'aquamarine'} +#. ~ Description for {'str_sp': 'concrete'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling aquamarine." +msgid "Some concrete, ready to be used in a construction project." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "emerald" -msgid_plural "emeralds" +msgid "bone skewer" +msgid_plural "bone skewers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'emerald'} +#. ~ Description for {'str': 'bone skewer'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling emerald." +msgid "" +"A thin skewer carved from bone. Sadly, it won't make squirrel on a stick " +"taste better." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "alexandrite" -msgid_plural "alexandrites" +msgid "burnt out torch" +msgid_plural "burnt out torches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'alexandrite'} +#. ~ Description for {'str': 'burnt out torch', 'str_pl': 'burnt out torches'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling alexandrite." +msgid "" +"A torch that has consumed all its fuel; it can be recrafted into another " +"torch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pearl" -msgid_plural "pearls" +msgid "dead flare" +msgid_plural "dead flares" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pearl'} +#. ~ Description for {'str': 'dead flare'} #: lang/json/GENERIC_from_json.py -msgid "A lustrous pearl." +msgid "This is a spent magnesium flare. It is essentially trash." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ruby" -msgid_plural "rubies" +msgid "spring" +msgid_plural "springs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ruby', 'str_pl': 'rubies'} +#. ~ Description for {'str': 'spring'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling ruby." +msgid "" +"A large, heavy-duty spring. Expands with significant force when compressed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "peridot" -msgid_plural "peridots" +msgid "lawnmower" +msgid_plural "lawnmowers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'peridot'} +#. ~ Description for {'str': 'lawnmower'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling peridot." +msgid "" +"A motorized pushmower that seems to be broken. You could take it apart if " +"you had a wrench." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sapphire" -msgid_plural "sapphires" +msgid "damaged tent" +msgid_plural "damaged tents" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sapphire'} +#. ~ Description for {'str': 'damaged tent'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling sapphire." +msgid "" +"A small tent, just big enough to fit a person comfortably. This tent is " +"broken and cannot be deployed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "opal" -msgid_plural "opals" +msgid "large damaged tent" +msgid_plural "large damaged tents" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'opal'} +#. ~ Description for {'str': 'large damaged tent'} #: lang/json/GENERIC_from_json.py -msgid "A lustrous opal." +msgid "" +"A family sized tent, very bulky but with plenty of space. This tent is " +"broken and can not be deployed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tourmaline" -msgid_plural "tourmalines" +msgid "heating element" +msgid_plural "heating elements" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tourmaline'} +#. ~ Description for {'str': 'heating element'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling tourmaline." +msgid "A heating element, like the ones used in hotplates or kettles." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "citrine" -msgid_plural "citrines" +msgid "bimetal thermostat" +msgid_plural "bimetal thermostats" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'citrine'} +#. ~ Description for {'str': 'bimetal thermostat'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling citrine." +msgid "A simple thermostat controlled by thermal expansion of a bimetal strip." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "topaz" -msgid_plural "topazs" +msgid "television" +msgid_plural "televisions" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'topaz'} +#. ~ Description for {'str': 'television'} #: lang/json/GENERIC_from_json.py -msgid "A sparkling blue topaz." +msgid "A large LCD television, full of delicious electronics." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cured hide" -msgid_plural "cured hides" +msgid "pilot light" +msgid_plural "pilot lights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cured hide'} +#. ~ Description for {'str': 'pilot light'} #: lang/json/GENERIC_from_json.py msgid "" -"A rolled up animal hide which has been scraped of extraneous hair and flesh " -"and treated to prevent decay. It still requires tanning to become usable " -"leather." +"A pilot light from a gas-burning device, this particular one is a simple " +"piezoelectric igniter." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tanned hide" -msgid_plural "tanned hides" +msgid "delayed fuze" +msgid_plural "delayed fuzes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tanned hide'} +#. ~ Description for delayed fuze #: lang/json/GENERIC_from_json.py msgid "" -"A folded sheet of leather made from carefully tanned animal hide. Can be " -"cut up or used as is." +"A complex mechanical fuze. It seems it can be used to detonate stable " +"explosives after a short time by triggering it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cured pelt" -msgid_plural "cured pelts" +msgid "impact fuze" +msgid_plural "impact fuzes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cured pelt'} +#. ~ Description for impact fuze #: lang/json/GENERIC_from_json.py msgid "" -"A rolled up animal hide which has been scraped of extraneous hair and flesh " -"and treated to prevent decay. It still requires tanning to become usable " -"fur." +"A complex mechanical fuze. It seems it can be used to detonate stable " +"explosives upon a solid impact." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tanned pelt" -msgid_plural "tanned pelts" +msgid "toaster" +msgid_plural "toasters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tanned pelt'} +#. ~ Description for {'str': 'toaster'} #: lang/json/GENERIC_from_json.py -msgid "" -"A folded sheet of leather made from carefully tanned animal hide, with the " -"fur still intact. Can be cut up or used as is." +msgid "A small two slice toaster, not much use as anything but spare parts" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pile of straw" -msgid_plural "piles of straw" +msgid "microwave" +msgid_plural "microwaves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pile of straw', 'str_pl': 'piles of straw'} +#. ~ Description for {'str': 'microwave'} #: lang/json/GENERIC_from_json.py msgid "" -"A pile of dry grass. Can be used to craft a straw bed if there is nothing " -"else to sleep on." +"A home microwave, has probably seen its share of baked beans. Good for " +"scrap parts." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "straw doll" -msgid_plural "straw dolls" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +msgid "laptop computer" +msgid_plural "laptop computers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'straw doll'} +#. ~ Description for {'str': 'laptop computer'} #: lang/json/GENERIC_from_json.py -msgid "Old straw doll. Represents a woman in a dress." +msgid "A broken laptop, basically a paperweight now." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pillow" -msgid_plural "pillows" +msgid "broken eyebot" +msgid_plural "broken eyebots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pillow'} +#. ~ Description for {'str': 'broken eyebot'} #: lang/json/GENERIC_from_json.py -msgid "A pillow to rest your head on when sleeping." +msgid "" +"A broken eyebot. Much less threatening now that it won't be calling for " +"backup. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "body pillow" -msgid_plural "body pillows" +msgid "broken skitterbot" +msgid_plural "broken skitterbots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'body pillow'} +#. ~ Description for {'str': 'broken skitterbot'} #: lang/json/GENERIC_from_json.py msgid "" -"A big, body-sized pillow with a print of an anime character on the front and " -"their scantily clad version on the back." +"A broken skitterbot. Much less threatening now that it lies limp on solid " +"ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "down-filled pillow" -msgid_plural "down-filled pillows" +msgid "broken lab defense bot" +msgid_plural "broken lab defense bots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'down-filled pillow'} +#. ~ Description for {'str': 'broken lab defense bot'} #: lang/json/GENERIC_from_json.py -msgid "A fluffy pillow to rest your head on when sleeping." +msgid "" +"A broken lab defense bot, with its casing broken and fluid drained. Could " +"be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "teddy bear" -msgid_plural "teddy bears" +msgid "broken police bot" +msgid_plural "broken police bots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'teddy bear'} -#: lang/json/GENERIC_from_json.py -msgid "" -"An old and half rotten teddy bear. Looks like this one commemorates the " -"grave of the child who once owned it." -msgstr "" - -#. ~ Description for {'str': 'teddy bear'} +#. ~ Description for {'str': 'broken police bot'} #: lang/json/GENERIC_from_json.py msgid "" -"A mass-produced plush teddy bear. It is wearing a little red tshirt but no " -"pants." +"A broken police bot. Much less threatening now that it's quiet and still. " +"Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "money bundle" -msgid_plural "money bundles" +msgid "broken nurse bot" +msgid_plural "broken nurse bots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'money bundle'} +#. ~ Description for {'str': 'broken nurse bot'} #: lang/json/GENERIC_from_json.py -msgid "A bundle holding many 20 dollar bills, pretty useless now though." +msgid "" +"A broken nurse bot. Its smooth face staring vacantly into empty space. " +"Could be gutted for parts." msgstr "" -#. ~ Use action menu_text for {'str': 'cigar'}. -#. ~ Use action menu_text for {'str': 'cigarette'}. -#. ~ Use action menu_text for {'str': 'joint'}. -#. ~ Use action menu_text for {'str': "spooky jack o'lantern", 'str_pl': "jack o'lanterns"}. -#. ~ Use action menu_text for {'str': 'hobo stove (lit)', 'str_pl': 'hobo stoves (lit)'}. -#. ~ Use action menu_text for {'str': 'Louisville Slaughterer'}. -#. ~ Use action menu_text for {'str': 'refillable lighter'}. -#. ~ Use action menu_text for {'str': 'ember carrier (lit)', 'str_pl': 'ember carriers (lit)'}. -#. ~ Use action menu_text for {'str': 'candle'}. -#. ~ Use action menu_text for {'str': 'torch', 'str_pl': 'torches'}. -#. ~ Use action menu_text for {'str': 'Louisville Slaughterer'}. -#. ~ Use action menu_text for {'str': 'everburning torch', 'str_pl': 'everburning torches'}. #: lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "Extinguish" -msgstr "" +msgid "broken grocery bot" +msgid_plural "broken grocery bots" +msgstr[0] "" +msgstr[1] "" -#. ~ Use action msg for {'str': 'cigar'}. +#. ~ Description for {'str': 'broken grocery bot'} #: lang/json/GENERIC_from_json.py -msgid "You extinguish the cigar." +msgid "" +"A broken grocery bot. Its smiling face staring vacantly into empty space. " +"Could be gutted for parts." msgstr "" -#. ~ Description for {'str': 'cigar'} +#. ~ Description for {'str': 'broken grocery bot'} #: lang/json/GENERIC_from_json.py -msgid "The smoke billowing from this cigar has a sweet, musty odor." +msgid "" +"The body of a busted grocery bot. Its tarnished face is still smiling. " +"Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cigar butt" -msgid_plural "cigar butts" +msgid "broken riot control bot" +msgid_plural "broken riot control bots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cigar butt'} +#. ~ Description for {'str': 'broken riot control bot'} #: lang/json/GENERIC_from_json.py -msgid "A true gentleman always finishes his cigars." +msgid "" +"A broken riot control bot. Much less threatening now that it's out of gas. " +"Could be gutted for parts." msgstr "" -#. ~ Use action msg for {'str': 'cigarette'}. #: lang/json/GENERIC_from_json.py -msgid "You extinguish the cigarette." -msgstr "" +msgid "broken prototype robot" +msgid_plural "broken prototype robots" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'cigarette'} +#. ~ Description for {'str': 'broken prototype robot'} #: lang/json/GENERIC_from_json.py msgid "" -"Smoke swirls from the lit end of this cigarette, filling the air with the " -"thrilling smell of burning chemicals." +"A broken prototype robot, well more broken than before. Could be gutted for " +"parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cigarette butt" -msgid_plural "cigarette butts" +msgid "broken miner bot" +msgid_plural "broken miner bots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cigarette butt'} +#. ~ Description for {'str': 'broken miner bot'} #: lang/json/GENERIC_from_json.py msgid "" -"What was once a wonderfully addictive tube of dried tobacco leaf is now just " -"a smelly piece of trash. What a tragedy!\n" -"The leftover tobacco in a few of these could probably be used to roll " -"another cigarette. If you're willing to go that far…" +"A broken miner bot. Much less threatening now that it's no longer capable " +"of drilling anything. Could be gutted for parts." msgstr "" -#. ~ Use action msg for {'str': 'joint'}. #: lang/json/GENERIC_from_json.py -msgid "You extinguish the joint." -msgstr "" +msgid "broken recon mech" +msgid_plural "broken recon mechs" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'joint'} +#. ~ Description for {'str': 'broken recon mech'} +#. ~ Description for {'str': 'broken mech lifter'} +#. ~ Description for {'str': 'broken combat mech'} #: lang/json/GENERIC_from_json.py -msgid "" -"The smell of skunk permeates the air as a thin trail of smoke floats off of " -"this joint." +msgid "This is a broken mech exoskeleton suit, it looks beyond repair." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "joint roach" -msgid_plural "joint roaches" +msgid "broken mech lifter" +msgid_plural "broken mech lifters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'joint roach', 'str_pl': 'joint roaches'} #: lang/json/GENERIC_from_json.py -msgid "" -"The smoked-down butt of a joint, a reminder of some good times. Pretty much " -"trash now. Bummer, man.\n" -"A few of these could probably be used to roll another joint." -msgstr "" +msgid "broken combat mech" +msgid_plural "broken combat mechs" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "cannabis plant" -msgid_plural "cannabis plants" +msgid "broken riot dispatch" +msgid_plural "broken riot dispatches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cannabis plant'} +#. ~ Description for {'str': 'broken riot dispatch', 'str_pl': 'broken riot dispatches'} #: lang/json/GENERIC_from_json.py msgid "" -"A psychoactive plant indigenous to Central Asia and the Indian subcontinent " -"traditionally cultivated for its fiber, oil, for medicinal purposes, and for " -"use as a recreational drug. It requires further processing to be useful." +"A broken riot dispatch, with its mesh midsection filled with fried manhacks " +"and its motor limp and still. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "raw tobacco" -msgid_plural "raw tobacco" +msgid "broken military dispatch" +msgid_plural "broken military dispatches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'raw tobacco'} +#. ~ Description for {'str': 'broken military dispatch', 'str_pl': 'broken military dispatches'} #: lang/json/GENERIC_from_json.py msgid "" -"Various parts of tobacco plant, full of nicotine. They need to be dried to " -"become smokable." +"A broken military dispatch. Though the scratched, disarmed manhacks visible " +"in its belly are disarmed, their destructive potential still inspires a " +"spark of fear, even now. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "science ID card" -msgid_plural "science ID cards" +msgid "broken manhack" +msgid_plural "broken manhacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'science ID card'} +#. ~ Description for {'str': 'broken manhack'} #: lang/json/GENERIC_from_json.py msgid "" -"This ID card once belonged to a scientist. The reverse side describes " -"protocol for using it; this could grant access at one control panel, if you " -"can find one." +"A broken manhack. Much less threatening now that it lies limp on solid " +"ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "military ID card" -msgid_plural "military ID cards" +msgid "broken grenade hack" +msgid_plural "broken grenade hacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'military ID card'} +#. ~ Description for {'str': 'broken grenade hack'} #: lang/json/GENERIC_from_json.py msgid "" -"This ID card once belonged to a military officer. The reverse side " -"describes protocol for using it; this could grant access at one control " -"panel, if you can find one." +"A broken grenade hack. Much less threatening now that it lies quiet on " +"solid ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "industrial ID card" -msgid_plural "industrial ID cards" +msgid "broken mininuke hack" +msgid_plural "broken mininuke hacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'industrial ID card'} +#. ~ Description for {'str': 'broken mininuke hack'} #: lang/json/GENERIC_from_json.py msgid "" -"This ID card once belonged to a high level technician. The reverse side " -"describes protocol for using it; this could grant access at one control " -"panel, if you can find one." +"A broken magenta hack. Just looking at the wreck makes you shiver. Could " +"be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "neoprene patch" -msgid_plural "neoprene patches" +msgid "broken tear gas hack" +msgid_plural "broken tear gas hacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'neoprene patch', 'str_pl': 'neoprene patches'} +#. ~ Description for {'str': 'broken tear gas hack'} #: lang/json/GENERIC_from_json.py msgid "" -"A moderately sized sheet of neoprene. Can be used to craft light and " -"stretchable clothing." +"A broken tear gas hack. Much less threatening now that it lies quiet on " +"solid ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" +msgid "broken EMP hack" +msgid_plural "broken EMP hacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#. ~ Description for {'str': 'broken EMP hack'} #: lang/json/GENERIC_from_json.py msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." +"A broken EMP hack. Much less threatening now that it lies quiet on solid " +"ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "light bulb" -msgid_plural "light bulbs" +msgid "broken flashbang hack" +msgid_plural "broken flashbang hacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'light bulb'} +#. ~ Description for {'str': 'broken flashbang hack'} #: lang/json/GENERIC_from_json.py -msgid "A rather outdated light bulb used in all sorts of light equipment." +msgid "" +"A broken flashbang hack. Much less threatening now that it lies quiet on " +"solid ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "clay flower pot" -msgid_plural "clay flower pots" +msgid "broken C-4 hack" +msgid_plural "broken C-4 hacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'clay flower pot'} +#. ~ Description for {'str': 'broken C-4 hack'} #: lang/json/GENERIC_from_json.py -msgid "A nice looking clay pot used for planting." +msgid "" +"A broken C-4 hack. Much less threatening now that it lies quiet on solid " +"ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic flower pot" -msgid_plural "plastic flower pots" +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic flower pot'} +#. ~ Description for {'str': 'broken loudspeaker'} #: lang/json/GENERIC_from_json.py -msgid "A cheap plastic pot used for planting." +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fluid preserved brain" -msgid_plural "fluid preserved brains" +msgid "processor board" +msgid_plural "processor boards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fluid preserved brain'} +#. ~ Description for {'str': 'processor board'} #: lang/json/GENERIC_from_json.py -msgid "" -"This 3L jar contains a human brain preserved in a formaldehyde solution." +msgid "A central processor unit, useful in advanced electronics crafting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "evaporator coil" -msgid_plural "evaporator coils" +msgid "RAM" +msgid_plural "RAMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'evaporator coil'} +#. ~ Description for {'str': 'RAM'} #: lang/json/GENERIC_from_json.py -msgid "A set of long, snakelike tubes for evaporating refrigerant." +msgid "A stick of memory. Useful in advanced electronics crafting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "condensor coil" -msgid_plural "condensor coils" +msgid "power converter" +msgid_plural "power converters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'condensor coil'} +#. ~ Description for {'str': 'power converter'} #: lang/json/GENERIC_from_json.py -msgid "A compressor and a fan work together to cool down the refrigerant." +msgid "A power supply unit. Useful in lots of electronics recipes." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "refrigerant tank" -msgid_plural "refrigerant tanks" +msgid "amplifier circuit" +msgid_plural "amplifier circuits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'refrigerant tank'} +#. ~ Description for {'str': 'amplifier circuit'} #: lang/json/GENERIC_from_json.py msgid "" -"A small tank containing some sort of refrigerant often used in devices such " -"as freezers. Hermetically sealed to prevent evaporation - cannot be opened " -"without prior connection to compatible valve." +"A circuit designed to amplify the strength of a signal. Useful in lots of " +"electronics recipes." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hard steel plate" -msgid_plural "hard steel plates" +msgid "transponder circuit" +msgid_plural "transponder circuits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hard steel plate'} +#. ~ Description for {'str': 'transponder circuit'} #: lang/json/GENERIC_from_json.py msgid "" -"An armor plating made of a very thick steel, specifically engineered for use " -"in a bullet resistant vest." +"A circuit designed to repeat a signal. Useful for crafting communications " +"equipment." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel plate" -msgid_plural "steel plates" +msgid "signal receiver" +msgid_plural "signal receivers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel plate'} +#. ~ Description for {'str': 'signal receiver'} #: lang/json/GENERIC_from_json.py msgid "" -"A steel armor plate, specifically engineered for use in a bullet resistant " -"vest." +"A module designed to receive many forms of signals. Useful for crafting " +"communications equipment." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "small lock and key" -msgid_plural "small locks and keys" +msgid "large LCD screen" +msgid_plural "large LCD screens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'small lock and key', 'str_pl': 'small locks and keys'} +#. ~ Description for {'str': 'large LCD screen'} #: lang/json/GENERIC_from_json.py -msgid "A small lock, with a set of keys still inserted." +msgid "" +"A large backlit screen, used for displaying images. Useful in some " +"electronics recipes." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "in progress craft" -msgid_plural "in progress crafts" +msgid "small LCD screen" +msgid_plural "small LCD screens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'in progress craft'} +#. ~ Description for {'str': 'small LCD screen'} #: lang/json/GENERIC_from_json.py -msgid "This is an in progress craft." +msgid "" +"A small backlit screen, used for displaying images. Useful in some " +"electronics recipes." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "spare tire carrier" -msgid_plural "spare tire carriers" +msgid "high-quality lens" +msgid_plural "high-quality lenses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'spare tire carrier'} +#. ~ Description for {'str': 'high-quality lens', 'str_pl': 'high-quality lenses'} #: lang/json/GENERIC_from_json.py msgid "" -"A bumper mounted rig for attaching and storing a spare tire on the back of a " -"vehicle. Combine it with a wheel to get a mountable piece." +"A high-quality lens, useful for focusing or diffusing light. Might be " +"useful for starting a fire." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "welding component kit" -msgid_plural "welding component kits" +msgid "small high-quality lens" +msgid_plural "small high-quality lenses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'welding component kit'} +#. ~ Description for {'str': 'small high-quality lens', 'str_pl': 'small high-quality lenses'} #: lang/json/GENERIC_from_json.py msgid "" -"A set of components useful for constructing a full-featured welding station, " -"complete with soldering capability." +"A small high-quality lens, useful for focusing or diffusing light. Might be " +"useful for crafting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "amplifier head" -msgid_plural "amplifier heads" +msgid "pair of tinted glass" +msgid_plural "pairs of tinted glass" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'amplifier head'} +#. ~ Description for {'str': 'pair of tinted glass', 'str_pl': 'pairs of tinted glass'} #: lang/json/GENERIC_from_json.py msgid "" -"An amplifier head. Typically paired with a speaker cabinet for amplifying " -"musical instruments. Basically only good for spare parts now." +"A pair of small darkened glass, like the one that sunglasses are made of." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken turret" -msgid_plural "broken turrets" +msgid "burnt out bionic" +msgid_plural "burnt out bionics" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken turret'} +#. ~ Description for {'str': 'burnt out bionic'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken turret. Much less threatening now that it's laid limp on solid " -"ground. Could be gutted for parts." +"Once a valuable bionic implant, it has not held up well under repeated use. " +"This object has been destroyed by excessive electric current and is now " +"useless." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken riot control turret" -msgid_plural "broken riot control turrets" +msgid "nanofabricator template" +msgid_plural "nanofabricator templates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken riot control turret'} +#. ~ Description for {'str': 'nanofabricator template'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken riot control turret. Much less threatening now that it's laid limp " -"on solid ground. Could be gutted for parts." +"A state-of-the-art optical storage system. This small slate of transparent " +"glass holds, inscribed as a miniature pattern, the instructions required to " +"create an item through a nanofabricator." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken M249 autonomous CROWS II" -msgid_plural "broken M249 autonomous CROWS II turrets" +msgid "nanofabricator template (silicon photonics)" +msgid_plural "nanofabricator templates (silicon photonics)" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'nanofabricator template (silicon photonics)', 'str_pl': 'nanofabricator templates (silicon photonics)'} #: lang/json/GENERIC_from_json.py -msgid "broken M240 autonomous CROWS II" -msgid_plural "broken M240 autonomous CROWS II turrets" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A state-of-the-art optical storage system, containing the instruction set " +"required for the fabrication of complex silicon photonic circuitry. The " +"data within was once clearly worth millions, but now, you are not sure if " +"it's anything more than a fancy, high-tech paperweight." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken M2 autonomous CROWS II" -msgid_plural "broken M2 autonomous CROWS II turrets" +msgid "antenna" +msgid_plural "antennas" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'antenna'} #: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "" -msgstr[1] "" +msgid "A simple thin aluminum shaft. Useful in lots of electronics recipes." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken secubot" -msgid_plural "broken secubots" +msgid "micro motor" +msgid_plural "micro motors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken secubot'} +#. ~ Description for {'str': 'micro motor'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken secubot, with its casing broken and fluid drained. Could be gutted " -"for parts." +"A very small electric motor like those used in RC cars. Useful in lots of " +"electronics recipes." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken M202A1 TALON" -msgid_plural "broken M202A1 TALONs" +msgid "circuit board" +msgid_plural "circuit boards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken M202A1 TALON'} -#. ~ Description for {'str': 'broken launcher TALON UGV'} -#. ~ Description for {'str': 'broken rifle TALON UGV'} +#. ~ Description for {'str': 'circuit board'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken TALON UGV, with its casing broken and fluid drained. Could be " -"gutted for parts." +"A printed card that supports and electrically connects electronic components " +"on a non-conductive substrate." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fire brick" -msgid_plural "fire bricks" +msgid "electronic scrap" +msgid_plural "electronic scraps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fire brick'} +#. ~ Description for {'str': 'electronic scrap'} #: lang/json/GENERIC_from_json.py -msgid "A reinforced brick designed to withstand intense heat." +msgid "" +"A random collection of resistors, capacitors, and diodes which have been " +"stripped from printed circuits." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "survival kit" -msgid_plural "survival kits" +msgid "radio repeater mod" +msgid_plural "radio repeater mods" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'survival kit'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small box filled with tools and items to help you survive in case of an " -"emergency. Disassemble to get its content." -msgstr "" - -#. ~ Description for {'str': 'survival kit'} +#. ~ Description for {'str': 'radio repeater mod'} #: lang/json/GENERIC_from_json.py msgid "" -"The ultimate survival kit purchased either by the wealthy or the dedicated " -"urban survivalist. It contains tools and items to help you survive in case " -"of an emergency. Disassemble to get its contents." +"A system designed to convert a radio station into an autonomous repeater." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic dice" -msgid_plural "plastic dice" +msgid "desk fan" +msgid_plural "desk fans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'plastic dice'} +#. ~ Description for {'str': 'desk fan'} #: lang/json/GENERIC_from_json.py -msgid "A six-sided plastic dice." +msgid "A small fan, used to propel air around a room." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "salt lick" -msgid_plural "salt licks" +msgid "ceramic armor plate" +msgid_plural "ceramic armor plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'salt lick'} +#. ~ Description for {'str': 'ceramic armor plate'} #: lang/json/GENERIC_from_json.py msgid "" -"A heavy cube-shaped block of salt for livestock. Don't lick it, it's gross." +"A ceramic armor plate, specifically engineered for use in a bullet resistant " +"vest." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "flyer" -msgid_plural "flyers" +msgid "fishbowl" +msgid_plural "fishbowls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'flyer'} +#. ~ Description for {'str': 'fishbowl'} #: lang/json/GENERIC_from_json.py -msgid "A scrap of paper." +msgid "" +"A filled fishbowl, the tag says 'to Ed' and the fish's name, 'Hoss'. The " +"fish appears to have tiny antlers." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "survivor's note" -msgid_plural "survivor's notes" +msgid "blood soaked rag" +msgid_plural "blood soaked rags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "survivor's note"} -#. ~ Description for {'str': 'note'} -#. ~ Description for {'str': "survivor's note"} +#. ~ Description for {'str': 'blood soaked rag'} #: lang/json/GENERIC_from_json.py msgid "" -"A scrap of paper. Something's written on it, scrawled in bad handwriting." +"A large rag, drenched in blood. It could be cleaned with boiling water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "character sheet" -msgid_plural "character sheets" +msgid "pipe cleaner" +msgid_plural "pipe cleaners" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'character sheet'} +#. ~ Description for {'str': 'pipe cleaner'} #: lang/json/GENERIC_from_json.py -msgid "A Dungeons & Dragons character sheet." +msgid "" +"This is a tool designed to clean interior surface of pipes, bottles, and " +"similar objects. This one is thin enough to be used for cleaning firearm " +"barrels from dirt and fouling." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "score card" -msgid_plural "score cards" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "clock" +msgid_plural "clocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'score card'} +#. ~ Description for {'str': 'clock'} #: lang/json/GENERIC_from_json.py -msgid "A colorfully printed score card." +msgid "A small mechanical clock, it's stopped at 10:10." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "newspaper page" -msgid_plural "newspaper pages" +msgid "clockworks" +msgid_plural "clockworks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'newspaper page'} +#. ~ Description for {'str_sp': 'clockworks'} #: lang/json/GENERIC_from_json.py -msgid "" -"A single sheet of newspaper broadsheet. It is possibly one of the last " -"issues printed before New England was overwhelmed. Most of the information " -"on there is terribly trivial, or out of date, but one thing catches your eye " -"briefly." +msgid "A small assortment of gears and other clockwork gubbins." msgstr "" -#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py -msgid "" -"A single sheet of newspaper broadsheet. It seems to date from several years " -"ago, and you've NO idea how it lasted this long. Most of the information on " -"there is terribly trivial, or out of date, but one thing catches your eye " -"briefly." -msgstr "" +msgid "SD-Memory card" +msgid_plural "SD-Memory cards" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'newspaper page'} +#. ~ Description for {'str': 'SD-Memory card'} #: lang/json/GENERIC_from_json.py -msgid "" -"A single sheet of newspaper broadsheet. It seems to date from a few years " -"ago--amazing it has lasted this long. Most of the information on there is " -"terribly trivial, or out of date, but one thing catches your eye briefly." +msgid "A memory card, used. Might be worth a look." msgstr "" -#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py -msgid "" -"A single sheet of newspaper broadsheet. It was printed more than a year " -"ago. Most of the information on there is terribly trivial, or out of date, " -"but one thing catches your eye briefly." -msgstr "" +msgid "SD-Memory card (clean)" +msgid_plural "SD-Memory cards (clean)" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'newspaper page'} +#. ~ Description for {'str': 'SD-Memory card (clean)', 'str_pl': 'SD-Memory cards (clean)'} #: lang/json/GENERIC_from_json.py msgid "" -"A single sheet of newspaper broadsheet. It was printed in the months " -"leading up to the Cataclysm. Most of the information on there is terribly " -"trivial, or out of date, but one thing catches your eye briefly." +"This memory card is either unused or has been wiped clean. You could use it " +"to store your data, though!" msgstr "" -#. ~ Description for {'str': 'newspaper page'} +#: lang/json/GENERIC_from_json.py +msgid "SD-Memory card (encrypted)" +msgid_plural "SD-Memory cards (encrypted)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'SD-Memory card (encrypted)', 'str_pl': 'SD-Memory cards (encrypted)'} #: lang/json/GENERIC_from_json.py msgid "" -"A single sheet of newspaper broadsheet. It was printed in the weeks leading " -"up to the Cataclysm. Most of the information on there is terribly trivial, " -"or out of date, but one thing catches your eye briefly." +"This memory card appears to have the firmware encryption set. Hopefully it " +"contains something worth encrypting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vault leaflet" -msgid_plural "vault leaflets" +msgid "Science SD-Memory card" +msgid_plural "Science SD-Memory cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vault leaflet'} +#. ~ Description for {'str': 'Science SD-Memory card'} #: lang/json/GENERIC_from_json.py msgid "" -"A folded glossy handout that appears to be an introduction to living in a " -"massive underground complex." +"This memory card appears to be related to 'XEDRA', and is certainly " +"encrypted. Looks *Interesting*, though…" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "note" -msgid_plural "notes" +msgid "hand mirror" +msgid_plural "hand mirrors" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'hand mirror'} #: lang/json/GENERIC_from_json.py -msgid "FEMA evacuation pamphlet" -msgid_plural "FEMA evacuation pamphlets" +msgid "A small hand mirror." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/terrain_from_json.py +msgid "manhole cover" +msgid_plural "manhole covers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'FEMA evacuation pamphlet'} +#. ~ Description for {'str': 'manhole cover'} #: lang/json/GENERIC_from_json.py msgid "" -"Welcome to your Emergency Survival Shelter. We hope your stay here will be " -"short and comfortable. Provided are an emergency blanket, high visibility " -"jacket, gas mask, and food and water rations for one day, as well as an " -"emergency lighter and flashlight. There are further supplies in the " -"communal cabinets should the facility be over its intended capacity. These " -"resources are checked and updated by FEMA on a regular basis, but if you " -"find some items missing, please contact a FEMA supervisor at your earliest " -"convenience.\n" -"\n" -"Please wait in the shelter until an official evacuation transport arrives to " -"take you to your homes or, in the event of a major disaster, to the nearest " -"evacuation gathering point.\n" -"\n" -"In the event that you have been evacuated under violent circumstances, FEMA " -"recommends taking cover in the shelter's basement until help arrives. " -"Remember: if you leave the shelter, we cannot find you to take you to safety." +"A heavy iron disc that typically covers a ladder into the sewers. Lifting " +"it from the manhole is impossible without a crowbar." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "leaf spring" -msgid_plural "leaf springs" +msgid "pine bough" +msgid_plural "pine boughs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'leaf spring'} +#. ~ Description for {'str': 'pine bough'} #: lang/json/GENERIC_from_json.py msgid "" -"A large, heavy-duty leaf spring. Probably from some car or truck, and looks " -"an awful lot like a bow. You can barely bend it…" +"A branch from a pine tree, oozing sticky sap and bristling with prickly " +"needles." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hydrangea" -msgid_plural "hydrangeas" +msgid "pinecone" +msgid_plural "pinecones" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hydrangea'} +#. ~ Description for {'str': 'pinecone'} #: lang/json/GENERIC_from_json.py -msgid "A hydrangea stalk with some petals." +msgid "" +"A spiny pod from a pine tree. Dry seeds rattle around inside when you shake " +"it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hydrangea bud" -msgid_plural "hydrangea buds" +msgid "poppy bud" +msgid_plural "poppy buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hydrangea bud'} +#. ~ Description for {'str': 'poppy bud'} #: lang/json/GENERIC_from_json.py msgid "" -"A hydrangea bud. Contains some substances commonly produced by a hydrangea " +"A poppy bud. Contains some substances commonly produced by a mutated poppy " "flower." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "tulip" -msgid_plural "tulips" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'tulip'} +#. ~ Description for {'str': 'sunflower'} #: lang/json/GENERIC_from_json.py -msgid "A tulip stalk with some petals." +msgid "" +"The top of a sunflower, with yellow pedals and some seeds that have yet to " +"be eaten by animals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tulip bud" -msgid_plural "tulip buds" +msgid "chamomile flowers" +msgid_plural "chamomile flowers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tulip bud'} +#. ~ Description for {'str_sp': 'chamomile flowers'} #: lang/json/GENERIC_from_json.py msgid "" -"A tulip bud. Contains some substances commonly produced by a tulip flower." +"White chamomile flowers, used as a herbal remedy since the ancient times." msgstr "" -#. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py -msgid "A spurge stalk with some petals." +msgid "lotus flower" +msgid_plural "lotus flowers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for lotus +#. ~ Description for {'str': 'lotus flower'} +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "spurge bud" -msgid_plural "spurge buds" +msgid "spurge flowers" +msgid_plural "spurge flowers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'spurge bud'} +#. ~ Description for {'str_sp': 'spurge flowers'} #: lang/json/GENERIC_from_json.py msgid "" -"A spurge bud. Contains some substances commonly produced by a spurge flower." +"A handful of yellow-green flowers. Can be brewed into a tea that prevents " +"asthma attacks." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "black eyed susan" -msgid_plural "black eyed susans" +#: lang/json/GENERIC_from_json.py +msgid "lump of clay" +msgid_plural "lumps of clay" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'black eyed susan'} +#. ~ Description for {'str': 'lump of clay', 'str_pl': 'lumps of clay'} #: lang/json/GENERIC_from_json.py -msgid "A black eyed susan stalk with some petals." +msgid "A fresh piece of clay. Useful for some crafting recipes." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "black eyed susan bud" -msgid_plural "black eyed susan buds" +msgid "brick" +msgid_plural "bricks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'black eyed susan bud'} +#. ~ Description for {'str': 'brick'} #: lang/json/GENERIC_from_json.py -msgid "" -"A black eyed susan bud. Contains some substances commonly produced by a " -"black eyed susan flower." +msgid "A fire hardened building block used in masonry construction." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "lily" -msgid_plural "lilies" +#: lang/json/GENERIC_from_json.py +msgid "mortar" +msgid_plural "mortar" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lily', 'str_pl': 'lilies'} +#. ~ Description for {'str_sp': 'mortar'} #: lang/json/GENERIC_from_json.py -msgid "A lily stalk with some petals." +msgid "Some mortar, ready to be used in building projects." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lily bud" -msgid_plural "lily buds" +msgid "soft adobe brick" +msgid_plural "soft adobe bricks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lily bud'} +#. ~ Use action msg for {'str': 'soft adobe brick'}. +#: lang/json/GENERIC_from_json.py +msgid "You test the brick, and it seems solid enough to use." +msgstr "" + +#. ~ Use action not_ready_msg for {'str': 'soft adobe brick'}. +#: lang/json/GENERIC_from_json.py +msgid "The brick is still too damp to bear weight." +msgstr "" + +#. ~ Description for {'str': 'soft adobe brick'} #: lang/json/GENERIC_from_json.py msgid "" -"A lily bud. Contains some substances commonly produced by a lily flower." +"A compacted mass of soil and natural fibers, still too wet to build with. " +"Load it onto a pallet and leave it to dry." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "lotus" -msgid_plural "lotuses" +#: lang/json/GENERIC_from_json.py +msgid "adobe brick" +msgid_plural "adobe bricks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lotus', 'str_pl': 'lotuses'} +#. ~ Description for {'str': 'adobe brick'} #: lang/json/GENERIC_from_json.py -msgid "A lotus stalk with some petals." +msgid "" +"A compacted mass of soil and natural fibers, baked dry enough to harden into " +"a brick." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lotus bud" -msgid_plural "lotus buds" +msgid "adobe mortar" +msgid_plural "adobe mortar" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lotus bud'} +#. ~ Description for {'str_sp': 'adobe mortar'} #: lang/json/GENERIC_from_json.py msgid "" -"A lotus bud. Contains some substances commonly produced by a lotus flower." +"A thick, pasty mud, low in sand content to reduce crumbling once dry. Used " +"to glue larger, heavier pieces of mud and clay together." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lilac" -msgid_plural "lilacs" +msgid "tanbark" +msgid_plural "tanbark" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lilac'} +#. ~ Description for {'str_sp': 'tanbark'} #: lang/json/GENERIC_from_json.py -msgid "A lilac stalk with some petals." +msgid "A sheet of tannin-rich bark from a tree, useful for tanning leather" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lilac bud" -msgid_plural "lilac buds" +msgid "birchbark" +msgid_plural "birchbarks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lilac bud'} +#. ~ Description for {'str': 'birchbark'} #: lang/json/GENERIC_from_json.py -msgid "" -"A lilac bud. Contains some substances commonly produced by a lilac flower." +msgid "A sheet of tough, water-resistant bark taken from a birch tree." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "rose bud" -msgid_plural "rose buds" +msgid "willowbark" +msgid_plural "willowbark" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'rose bud'} +#. ~ Description for {'str_sp': 'willowbark'} #: lang/json/GENERIC_from_json.py msgid "" -"A rose bud. Contains some substances commonly produced by a rose flower." +"A sheet of bark taken from a willow tree. Used in the production of aspirin." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "dahlia bud" -msgid_plural "dahlia buds" +msgid "diamond" +msgid_plural "diamonds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'dahlia bud'} +#. ~ Description for {'str': 'diamond'} #: lang/json/GENERIC_from_json.py -msgid "A dahlia bud. Contains some substances commonly produced by a dahlia." +msgid "A sparkling diamond." msgstr "" -#. ~ Description for {'str': 'rose'} #: lang/json/GENERIC_from_json.py -msgid "A rose stalk with some petals." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "bluebell" -msgid_plural "bluebells" +msgid "garnet" +msgid_plural "garnets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bluebell'} +#. ~ Description for {'str': 'garnet'} #: lang/json/GENERIC_from_json.py -msgid "A bluebell stalk with some petals." +msgid "A sparkling garnet." msgstr "" -#. ~ Description for {'str': 'dahlia'} #: lang/json/GENERIC_from_json.py -msgid "A dahlia stalk with some petals." +msgid "amethyst" +msgid_plural "amethysts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'amethyst'} +#: lang/json/GENERIC_from_json.py +msgid "A sparkling amethyst." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "poppy flower" -msgid_plural "poppy flowers" +msgid "aquamarine" +msgid_plural "aquamarines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'poppy flower'} +#. ~ Description for {'str': 'aquamarine'} #: lang/json/GENERIC_from_json.py -msgid "A poppy stalk with some petals." +msgid "A sparkling aquamarine." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bluebell bud" -msgid_plural "bluebell buds" +msgid "emerald" +msgid_plural "emeralds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bluebell bud'} +#. ~ Description for {'str': 'emerald'} #: lang/json/GENERIC_from_json.py -msgid "" -"A bluebell bud. Contains some substances commonly produced by a bluebell " -"flower." +msgid "A sparkling emerald." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken chickenbot" -msgid_plural "broken chickenbots" +msgid "alexandrite" +msgid_plural "alexandrites" msgstr[0] "" msgstr[1] "" -#. ~ Use action friendly_msg for {'str': 'broken chickenbot'}. -#. ~ Use action friendly_msg for {'str': 'inactive chicken walker'}. -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -msgid "The chicken bot rolls out and begins acquiring targets." +#. ~ Description for {'str': 'alexandrite'} +#: lang/json/GENERIC_from_json.py +msgid "A sparkling alexandrite." msgstr "" -#. ~ Use action hostile_msg for {'str': 'broken chickenbot'}. -#. ~ Use action hostile_msg for {'str': 'inactive chicken walker'}. -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -msgid "" -"The chicken bot swivels its turret and aims directly at you. Don your brown " -"pants!" -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "pearl" +msgid_plural "pearls" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'broken chickenbot'} +#. ~ Description for {'str': 'pearl'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken chicken walker. Still looks intimidating despite being permanently " -"inoperative, possibly due to the sheer size and mass. Could be gutted for " -"parts." +msgid "A lustrous pearl." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken tribot" -msgid_plural "broken tribots" +msgid "ruby" +msgid_plural "rubies" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken tribot'} +#. ~ Description for {'str': 'ruby', 'str_pl': 'rubies'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken tribot. Now that its legs lie broken and immobile, the world seems " -"a little less threatening. Could be gutted for parts." +msgid "A sparkling ruby." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken tank drone" -msgid_plural "broken tank drones" +msgid "peridot" +msgid_plural "peridots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken tank drone'} +#. ~ Description for {'str': 'peridot'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Still looks intimidating despite being permanently " -"inoperative, possibly due to the sheer size and mass. Could be gutted for " -"parts." +msgid "A sparkling peridot." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tripod chassis" -msgid_plural "tripod chassis" +msgid "sapphire" +msgid_plural "sapphires" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'tripod chassis'} +#. ~ Description for {'str': 'sapphire'} #: lang/json/GENERIC_from_json.py -msgid "" -"What's left when you remove all moving parts and electronics. It's the " -"skeleton and armor of the tripod." +msgid "A sparkling sapphire." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chicken walker chassis" -msgid_plural "chicken walker chassis" +msgid "opal" +msgid_plural "opals" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'chicken walker chassis'} +#. ~ Description for {'str': 'opal'} #: lang/json/GENERIC_from_json.py -msgid "" -"What's left when you remove all moving parts and electronics. It's the " -"skeleton and armor of the chicken walker." +msgid "A lustrous opal." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Beagle chassis" -msgid_plural "Beagle chassis" +msgid "tourmaline" +msgid_plural "tourmalines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Beagle chassis'} +#. ~ Description for {'str': 'tourmaline'} #: lang/json/GENERIC_from_json.py -msgid "" -"What's left when you remove all moving parts and electronics. It's the " -"skeleton and armor of the Beagle tank." +msgid "A sparkling tourmaline." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "set of spidery legs" -msgid_plural "sets of spidery legs" +msgid "citrine" +msgid_plural "citrines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of spidery legs', 'str_pl': 'sets of spidery legs'} +#. ~ Description for {'str': 'citrine'} #: lang/json/GENERIC_from_json.py -msgid "A set of big pointy legs, like the ones found under a tripod." +msgid "A sparkling citrine." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "stone pot" -msgid_plural "stone pots" +msgid "topaz" +msgid_plural "topazs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stone pot'} +#. ~ Description for {'str': 'topaz'} #: lang/json/GENERIC_from_json.py -msgid "A large stone, roughly hollowed out into a pot." +msgid "A sparkling blue topaz." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "burnt out Louisville Slaughterer" -msgid_plural "burnt out Louisville Slaughterers" +msgid "cured hide" +msgid_plural "cured hides" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'burnt out Louisville Slaughterer'} +#. ~ Description for {'str': 'cured hide'} #: lang/json/GENERIC_from_json.py msgid "" -"A sturdy wood bat, wrapped in flame-resistant Nomex fabric. Makes a good " -"melee weapon but better be disassembled to recycle the baseball bat and some " -"Nomex patches." +"A rolled up animal hide which has been scraped of extraneous hair and flesh " +"and treated to prevent decay. It still requires tanning to become usable " +"leather." msgstr "" #: lang/json/GENERIC_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "quantum solar panel" -msgid_plural "quantum solar panels" +msgid "tanned hide" +msgid_plural "tanned hides" msgstr[0] "" msgstr[1] "" -#. ~ Description for quantum solar panel +#. ~ Description for {'str': 'tanned hide'} #: lang/json/GENERIC_from_json.py msgid "" -"This solar panel is obviously cutting-edge technology and given where you " -"found it, should probably provide a LOT of power. It's covered in strange-" -"looking material, but the covering looks rather fragile; it doesn't look " -"like it could support a reinforcing sheet, either." +"A folded sheet of leather made from carefully tanned animal hide. Can be " +"cut up or used as is." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "module template" -msgid_plural "module templates" +msgid "cured pelt" +msgid_plural "cured pelts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'module template'} +#. ~ Description for {'str': 'cured pelt'} #: lang/json/GENERIC_from_json.py -msgid "This is a template for robot module. If found in a game it is a bug." +msgid "" +"A rolled up animal hide which has been scraped of extraneous hair and flesh " +"and treated to prevent decay. It still requires tanning to become usable " +"fur." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "targeting module" -msgid_plural "targeting modules" +msgid "tanned pelt" +msgid_plural "tanned pelts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'targeting module'} +#. ~ Description for {'str': 'tanned pelt'} #: lang/json/GENERIC_from_json.py msgid "" -"This module integrates visual and proprioceptive information from peripheric " -"sensors and outputs information necessary for accurate aiming." +"A folded sheet of leather made from carefully tanned animal hide, with the " +"fur still intact. Can be cut up or used as is." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "identification module" -msgid_plural "identification modules" +msgid "pile of straw" +msgid_plural "piles of straw" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'identification module'} +#. ~ Description for {'str': 'pile of straw', 'str_pl': 'piles of straw'} #: lang/json/GENERIC_from_json.py msgid "" -"This module continuously runs image recognition algorithms to identify " -"friends from foe." +"A pile of dry grass. Can be used to craft a straw bed if there is nothing " +"else to sleep on." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pathfinding module" -msgid_plural "pathfinding modules" +msgid "straw doll" +msgid_plural "straw dolls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pathfinding module'} +#. ~ Description for {'str': 'straw doll'} #: lang/json/GENERIC_from_json.py -msgid "" -"This module uses a combination of vector integration and egocentric mapping " -"to find the best path available." +msgid "Old straw doll. Represents a woman in a dress." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "memory banks module" -msgid_plural "memory banks modules" +msgid "pillow" +msgid_plural "pillows" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'memory banks module'} +#. ~ Description for {'str': 'pillow'} #: lang/json/GENERIC_from_json.py -msgid "Allows for storage and recovery of information." +msgid "A pillow to rest your head on when sleeping." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sensor array" -msgid_plural "sensor arrays" +msgid "body pillow" +msgid_plural "body pillows" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sensor array'} +#. ~ Description for {'str': 'body pillow'} #: lang/json/GENERIC_from_json.py msgid "" -"A wide range of sensors meant to give the ability to perceive the " -"surrounding world." +"A big, body-sized pillow with a print of an anime character on the front and " +"their scantily clad version on the back." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "self monitoring sensors" -msgid_plural "self monitoring sensors" +msgid "down-filled pillow" +msgid_plural "down-filled pillows" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'self monitoring sensors'} +#. ~ Description for {'str': 'down-filled pillow'} #: lang/json/GENERIC_from_json.py -msgid "" -"An array of sensors and diagnostic modules allowing the robot to perceive " -"itself." +msgid "A fluffy pillow to rest your head on when sleeping." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "AI core" -msgid_plural "AI cores" +msgid "teddy bear" +msgid_plural "teddy bears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'AI core'} +#. ~ Description for {'str': 'teddy bear'} #: lang/json/GENERIC_from_json.py msgid "" -"This module is responsible for decision-making, it basically runs the AI of " -"the robot." +"An old and half rotten teddy bear. Looks like this one commemorates the " +"grave of the child who once owned it." +msgstr "" + +#. ~ Description for {'str': 'teddy bear'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A mass-produced plush teddy bear. It is wearing a little red tshirt but no " +"pants." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "basic AI core" -msgid_plural "basic AI cores" +msgid "money bundle" +msgid_plural "money bundles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'basic AI core'} +#. ~ Description for {'str': 'money bundle'} #: lang/json/GENERIC_from_json.py -msgid "A very basic AI core with minimal cognitive abilities." +msgid "A bundle holding many 20 dollar bills, pretty useless now though." msgstr "" +#. ~ Use action menu_text for {'str': 'cigar'}. +#. ~ Use action menu_text for {'str': 'cigarette'}. +#. ~ Use action menu_text for {'str': 'joint'}. +#. ~ Use action menu_text for {'str': "spooky jack o'lantern", 'str_pl': "jack o'lanterns"}. +#. ~ Use action menu_text for {'str': 'hobo stove (lit)', 'str_pl': 'hobo stoves (lit)'}. +#. ~ Use action menu_text for {'str': 'Louisville Slaughterer'}. +#. ~ Use action menu_text for {'str': 'refillable lighter'}. +#. ~ Use action menu_text for {'str': 'ember carrier (lit)', 'str_pl': 'ember carriers (lit)'}. +#. ~ Use action menu_text for {'str': 'candle'}. +#. ~ Use action menu_text for {'str': 'torch', 'str_pl': 'torches'}. +#. ~ Use action menu_text for {'str': 'Louisville Slaughterer'}. +#. ~ Use action menu_text for {'str': 'everburning torch', 'str_pl': 'everburning torches'}. #: lang/json/GENERIC_from_json.py -msgid "advanced AI core" -msgid_plural "advanced AI cores" -msgstr[0] "" -msgstr[1] "" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "Extinguish" +msgstr "" -#. ~ Description for {'str': 'advanced AI core'} +#. ~ Use action msg for {'str': 'cigar'}. #: lang/json/GENERIC_from_json.py -msgid "An advanced AI core with impressive cognitive abilities." +msgid "You extinguish the cigar." msgstr "" +#. ~ Description for {'str': 'cigar'} #: lang/json/GENERIC_from_json.py -msgid "gun operating system" -msgid_plural "gun operating systems" +msgid "The smoke billowing from this cigar has a sweet, musty odor." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "cigar butt" +msgid_plural "cigar butts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gun operating system'} +#. ~ Description for {'str': 'cigar butt'} #: lang/json/GENERIC_from_json.py -msgid "This system can operate most conventional weapons." +msgid "A true gentleman always finishes his cigars." msgstr "" +#. ~ Use action msg for {'str': 'cigarette'}. #: lang/json/GENERIC_from_json.py -msgid "set of tiny spidery legs" -msgid_plural "sets of tiny spidery legs" -msgstr[0] "" -msgstr[1] "" +msgid "You extinguish the cigarette." +msgstr "" -#. ~ Description for {'str': 'set of tiny spidery legs', 'str_pl': 'sets of tiny spidery legs'} +#. ~ Description for {'str': 'cigarette'} #: lang/json/GENERIC_from_json.py -msgid "A set of tiny pointy legs, like the ones found under a skitterbot." +msgid "" +"Smoke swirls from the lit end of this cigarette, filling the air with the " +"thrilling smell of burning chemicals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "set of reverse-jointed legs" -msgid_plural "sets of reverse-jointed legs" +msgid "cigarette butt" +msgid_plural "cigarette butts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of reverse-jointed legs', 'str_pl': 'sets of reverse-jointed legs'} +#. ~ Description for {'str': 'cigarette butt'} #: lang/json/GENERIC_from_json.py msgid "" -"A set of reverse-jointed legs, like the ones found under a chicken walker." +"What was once a wonderfully addictive tube of dried tobacco leaf is now just " +"a smelly piece of trash. What a tragedy!\n" +"The leftover tobacco in a few of these could probably be used to roll " +"another cigarette. If you're willing to go that far…" msgstr "" +#. ~ Use action msg for {'str': 'joint'}. #: lang/json/GENERIC_from_json.py -msgid "set of omni wheels" -msgid_plural "sets of omni wheels" -msgstr[0] "" -msgstr[1] "" +msgid "You extinguish the joint." +msgstr "" -#. ~ Description for {'str': 'set of omni wheels', 'str_pl': 'sets of omni wheels'} +#. ~ Description for {'str': 'joint'} #: lang/json/GENERIC_from_json.py -msgid "A set of omni wheels, like the ones found under a police bot." +msgid "" +"The smell of skunk permeates the air as a thin trail of smoke floats off of " +"this joint." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "set of rotors" -msgid_plural "sets of rotors" +msgid "joint roach" +msgid_plural "joint roaches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of rotors', 'str_pl': 'sets of rotors'} +#. ~ Description for {'str': 'joint roach', 'str_pl': 'joint roaches'} #: lang/json/GENERIC_from_json.py -msgid "A set of rotors able to lift a small drone." +msgid "" +"The smoked-down butt of a joint, a reminder of some good times. Pretty much " +"trash now. Bummer, man.\n" +"A few of these could probably be used to roll another joint." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "set of android legs" -msgid_plural "sets of android legs" +msgid "cannabis plant" +msgid_plural "cannabis plants" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of android legs', 'str_pl': 'sets of android legs'} +#. ~ Description for {'str': 'cannabis plant'} #: lang/json/GENERIC_from_json.py -msgid "A set of human-like legs." +msgid "" +"A psychoactive plant indigenous to Central Asia and the Indian subcontinent " +"traditionally cultivated for its fiber, oil, for medicinal purposes, and for " +"use as a recreational drug. It requires further processing to be useful." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "set of android arms" -msgid_plural "sets of android arms" +msgid "raw tobacco" +msgid_plural "raw tobacco" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of android arms', 'str_pl': 'sets of android arms'} +#. ~ Description for {'str_sp': 'raw tobacco'} #: lang/json/GENERIC_from_json.py -msgid "A set of human-like arms." +msgid "" +"Various parts of tobacco plant, full of nicotine. They need to be dried to " +"become smokable." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "set of small tank tread" -msgid_plural "sets of small tank tread" +msgid "science ID card" +msgid_plural "science ID cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of small tank tread', 'str_pl': 'sets of small tank tread'} +#. ~ Description for {'str': 'science ID card'} #: lang/json/GENERIC_from_json.py msgid "" -"A set of small tank tread, like the one used by the \"Beagle\" mini-tank." +"This ID card once belonged to a scientist. The reverse side describes " +"protocol for using it; this could grant access at one control panel, if you " +"can find one." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "turret interior chassis" -msgid_plural "turret interior chassis" +msgid "military ID card" +msgid_plural "military ID cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'turret interior chassis'} +#. ~ Description for {'str': 'military ID card'} #: lang/json/GENERIC_from_json.py msgid "" -"What's left when you remove all moving parts and electronics. It's the " -"skeleton of a turret." +"This ID card once belonged to a military officer. The reverse side " +"describes protocol for using it; this could grant access at one control " +"panel, if you can find one." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "police bot chassis" -msgid_plural "police bot chassis" +msgid "industrial ID card" +msgid_plural "industrial ID cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'police bot chassis'} +#. ~ Description for {'str': 'industrial ID card'} #: lang/json/GENERIC_from_json.py msgid "" -"What's left when you remove all moving parts and electronics. It's the " -"skeleton and armor of the police bot." +"This ID card once belonged to a high level technician. The reverse side " +"describes protocol for using it; this could grant access at one control " +"panel, if you can find one." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "android skeleton" -msgid_plural "android skeletons" +msgid "neoprene patch" +msgid_plural "neoprene patches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'android skeleton'} +#. ~ Description for {'str': 'neoprene patch', 'str_pl': 'neoprene patches'} #: lang/json/GENERIC_from_json.py -msgid "What's left when you strip an android body from its components." +msgid "" +"A moderately sized sheet of neoprene. Can be used to craft light and " +"stretchable clothing." msgstr "" -#: lang/json/GENERIC_from_json.py src/cata_tiles.cpp -#: src/options.cpp -msgid "software" -msgid_plural "software" -msgstr[0] "" -msgstr[1] "" - #: lang/json/GENERIC_from_json.py -msgid "misc software" -msgid_plural "misc software" +msgid "light bulb" +msgid_plural "light bulbs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'misc software'} +#. ~ Description for {'str': 'light bulb'} #: lang/json/GENERIC_from_json.py -msgid "A miscellaneous piece of hobby software. Probably useless." +msgid "A rather outdated light bulb used in all sorts of light equipment." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hackPRO" -msgid_plural "hackPRO" +msgid "clay flower pot" +msgid_plural "clay flower pots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'hackPRO'} +#. ~ Description for {'str': 'clay flower pot'} #: lang/json/GENERIC_from_json.py -msgid "A piece of hacking software." +msgid "A nice looking clay pot used for planting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MediSoft" -msgid_plural "MediSoft" +msgid "plastic flower pot" +msgid_plural "plastic flower pots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'MediSoft'} +#. ~ Description for {'str': 'plastic flower pot'} #: lang/json/GENERIC_from_json.py -msgid "A piece of medical software." +msgid "A cheap plastic pot used for planting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MatheMAX" -msgid_plural "MatheMAX" +msgid "fluid preserved brain" +msgid_plural "fluid preserved brains" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'MatheMAX'} +#. ~ Description for {'str': 'fluid preserved brain'} #: lang/json/GENERIC_from_json.py -msgid "A piece of mathematical software." +msgid "" +"This 3L jar contains a human brain preserved in a formaldehyde solution." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "infection data" -msgid_plural "infection data" +msgid "evaporator coil" +msgid_plural "evaporator coils" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'infection data'} +#. ~ Description for {'str': 'evaporator coil'} #: lang/json/GENERIC_from_json.py -msgid "Medical data on zombie blood." +msgid "A set of long, snakelike tubes for evaporating refrigerant." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lab data" -msgid_plural "lab data" +msgid "condensor coil" +msgid_plural "condensor coils" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'lab data'} +#. ~ Description for {'str': 'condensor coil'} #: lang/json/GENERIC_from_json.py -msgid "Research archives from a government laboratory." +msgid "A compressor and a fan work together to cool down the refrigerant." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "train data" -msgid_plural "train data" +msgid "refrigerant tank" +msgid_plural "refrigerant tanks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'train data'} +#. ~ Description for {'str': 'refrigerant tank'} #: lang/json/GENERIC_from_json.py -msgid "Logistical data on subterranean train routes and schedules." +msgid "" +"A small tank containing some sort of refrigerant often used in devices such " +"as freezers. Hermetically sealed to prevent evaporation - cannot be opened " +"without prior connection to compatible valve." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "neural data" -msgid_plural "neural data" +msgid "hard steel plate" +msgid_plural "hard steel plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'neural data'} +#. ~ Description for {'str': 'hard steel plate'} #: lang/json/GENERIC_from_json.py msgid "" -"Data stolen from a dead scientist memory banks. Is the owner of these " -"thoughts still hidden here, amidst the unreadable data; or are these just a " -"collection of the precious moments of someone's life?\n" -"\n" -"Whatever the case, the idea of perpetually keeping a part of you within a " -"metallic pill makes you feel uncomfortable." +"An armor plating made of a very thick steel, specifically engineered for use " +"in a bullet resistant vest." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "integrated circuit datasheet archives" -msgid_plural "misc software" +msgid "steel plate" +msgid_plural "steel plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'integrated circuit datasheet archives', 'str_pl': 'misc software'} +#. ~ Description for {'str': 'steel plate'} #: lang/json/GENERIC_from_json.py msgid "" -"Huge archives of numerous IC circuit datasheets from several major " -"manufacturers. Probably valuable to the right person, as it would be hard " -"to salvage and reuse these components without them." +"A steel armor plate, specifically engineered for use in a bullet resistant " +"vest." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" +msgid "small lock and key" +msgid_plural "small locks and keys" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'small lock and key', 'str_pl': 'small locks and keys'} #: lang/json/GENERIC_from_json.py -msgid "abstract map" -msgid_plural "abstract maps" -msgstr[0] "" -msgstr[1] "" +msgid "A small lock, with a set of keys still inserted." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "military operations map" -msgid_plural "military operations maps" +msgid "in progress craft" +msgid_plural "in progress crafts" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for {'str': 'military operations map'}. +#. ~ Description for {'str': 'in progress craft'} #: lang/json/GENERIC_from_json.py -msgid "You add roads and facilities to your map." +msgid "This is an in progress craft." msgstr "" -#. ~ Description for {'str': 'military operations map'} +#: lang/json/GENERIC_from_json.py +msgid "spare tire carrier" +msgid_plural "spare tire carriers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'spare tire carrier'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a printed topographical map of the local area. Originally of " -"military origin, it details the locations of evacuation centers and military " -"facilities. Using it will add points of interest to your map." +"A bumper mounted rig for attaching and storing a spare tire on the back of a " +"vehicle. Combine it with a wheel to get a mountable piece." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "survivor's map" -msgid_plural "survivor's maps" +msgid "welding component kit" +msgid_plural "welding component kits" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for {'str': "survivor's map"}. -#: lang/json/GENERIC_from_json.py -msgid "You add roads and possible supply points to your map." -msgstr "" - -#. ~ Description for {'str': "survivor's map"} +#. ~ Description for {'str': 'welding component kit'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a hand-drawn map of the local area. Whoever created it has marked " -"down the locations of nearby supply sources including gun stores and gas " -"stations. Using it will add points of interest to your map." +"A set of components useful for constructing a full-featured welding station, " +"complete with soldering capability." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "road map" -msgid_plural "road maps" +msgid "amplifier head" +msgid_plural "amplifier heads" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for {'str': 'road map'}. -#: lang/json/GENERIC_from_json.py -msgid "You add roads and points of interest to your map." -msgstr "" - -#. ~ Description for {'str': 'road map'} +#. ~ Description for {'str': 'amplifier head'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a road map for the local area. Listing information on civic sites " -"like hospitals and police stations, it can be used to add points of interest " -"to your map." +"An amplifier head. Typically paired with a speaker cabinet for amplifying " +"musical instruments. Basically only good for spare parts now." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "subway maintenance map" -msgid_plural "subway maintenance maps" +msgid "broken turret" +msgid_plural "broken turrets" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for subway maintenance map. -#: lang/json/GENERIC_from_json.py -msgid "You add subway lines and underground stations to your map." -msgstr "" - -#. ~ Description for subway maintenance map +#. ~ Description for {'str': 'broken turret'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a map of subway tunnels formerly used by public maintenance " -"workers. Using it will add subway lines and underground stations to your " -"map." +"A broken turret. Much less threatening now that it's laid limp on solid " +"ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "trail guide" -msgid_plural "trail guides" +msgid "broken riot control turret" +msgid_plural "broken riot control turrets" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for {'str': 'trail guide'}. -#: lang/json/GENERIC_from_json.py -msgid "You add trails and trailheads to your map." -msgstr "" - -#. ~ Description for {'str': 'trail guide'} +#. ~ Description for {'str': 'broken riot control turret'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a printed guide to the best local trails. It has general details " -"about the trails, trailhead amenities, suggestions for the best thru-hikes, " -"and advice on interacting with local wildlife in a responsible and " -"respectful manner." +"A broken riot control turret. Much less threatening now that it's laid limp " +"on solid ground. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tourist guide" -msgid_plural "tourist guides" +msgid "broken M249 autonomous CROWS II" +msgid_plural "broken M249 autonomous CROWS II turrets" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for {'str': 'tourist guide'}. -#: lang/json/GENERIC_from_json.py -msgid "You add roads and tourist attractions to your map." -msgstr "" - -#. ~ Description for {'str': 'tourist guide'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is glossy printed pamphlet for tourists that details local hotels and " -"attractions." -msgstr "" +msgid "broken M240 autonomous CROWS II" +msgid_plural "broken M240 autonomous CROWS II turrets" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "restaurant guide" -msgid_plural "restaurant guides" +msgid "broken M2 autonomous CROWS II" +msgid_plural "broken M2 autonomous CROWS II turrets" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for {'str': 'restaurant guide'}. #: lang/json/GENERIC_from_json.py -msgid "You add roads and restaurants to your map." -msgstr "" +msgid "broken secubot" +msgid_plural "broken secubots" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'restaurant guide'} +#. ~ Description for {'str': 'broken secubot'} #: lang/json/GENERIC_from_json.py msgid "" -"This is glossy printed pamphlet that details dining establishments in the " -"local area. Printed by the Chamber of Commerce, it lists the addresses of " -"all the best diners and bars. Using it will add points of interest to your " -"map." +"A broken secubot, with its casing broken and fluid drained. Could be gutted " +"for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Spirit of Aikido" -msgid_plural "The Spirit of Aikido" +msgid "broken M202A1 TALON" +msgid_plural "broken M202A1 TALONs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Spirit of Aikido'} +#. ~ Description for {'str': 'broken M202A1 TALON'} +#. ~ Description for {'str': 'broken launcher TALON UGV'} +#. ~ Description for {'str': 'broken rifle TALON UGV'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Aikido." +msgid "" +"A broken TALON UGV, with its casing broken and fluid drained. Could be " +"gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Practical Pugilism" -msgid_plural "Practical Pugilism" +msgid "fire brick" +msgid_plural "fire bricks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Practical Pugilism'} +#. ~ Description for {'str': 'fire brick'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to boxing. Let's get ready to rough-up some ruffians!" +msgid "A reinforced brick designed to withstand intense heat." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Capoeira 100" -msgid_plural "Capoeira 100" +msgid "survival kit" +msgid_plural "survival kits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Capoeira 100'} +#. ~ Description for {'str': 'survival kit'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Capoeira." +msgid "" +"A small box filled with tools and items to help you survive in case of an " +"emergency. Disassemble to get its content." msgstr "" +#. ~ Description for {'str': 'survival kit'} #: lang/json/GENERIC_from_json.py -msgid "The Centipede Lu Feng" -msgid_plural "The Centipede Lu Feng" +msgid "" +"The ultimate survival kit purchased either by the wealthy or the dedicated " +"urban survivalist. It contains tools and items to help you survive in case " +"of an emergency. Disassemble to get its contents." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "plastic dice" +msgid_plural "plastic dice" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Centipede Lu Feng'} +#. ~ Description for {'str_sp': 'plastic dice'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Centipede Kung Fu." +msgid "A six-sided plastic dice." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Red Crane" -msgid_plural "The Red Crane" +msgid "salt lick" +msgid_plural "salt licks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Red Crane'} +#. ~ Description for {'str': 'salt lick'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Crane Kung Fu." +msgid "" +"A heavy cube-shaped block of salt for livestock. Don't lick it, it's gross." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Jade Dragon" -msgid_plural "The Jade Dragon" +msgid "flyer" +msgid_plural "flyers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Jade Dragon'} +#. ~ Description for {'str': 'flyer'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Dragon Kung Fu." +msgid "A scrap of paper." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Practical Eskrima" -msgid_plural "Practical Eskrima" +msgid "survivor's note" +msgid_plural "survivor's notes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Practical Eskrima'} +#. ~ Description for {'str': "survivor's note"} +#. ~ Description for {'str': 'note'} +#. ~ Description for {'str': "survivor's note"} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Eskrima." +msgid "" +"A scrap of paper. Something's written on it, scrawled in bad handwriting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Modern Swordsman" -msgid_plural "The Modern Swordsman" +msgid "character sheet" +msgid_plural "character sheets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Modern Swordsman'} +#. ~ Description for {'str': 'character sheet'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Fencing." +msgid "A Dungeons & Dragons character sheet." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Kodokan Judo" -msgid_plural "Kodokan Judo" +msgid "score card" +msgid_plural "score cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Kodokan Judo'} +#. ~ Description for {'str': 'score card'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Judo." +msgid "A colorfully printed score card." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Shotokan Karate Handbook" -msgid_plural "The Shotokan Karate Handbook" +msgid "newspaper page" +msgid_plural "newspaper pages" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Shotokan Karate Handbook'} +#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Shotokan Karate." +msgid "" +"A single sheet of newspaper broadsheet. It is possibly one of the last " +"issues printed before New England was overwhelmed. Most of the information " +"on there is terribly trivial, or out of date, but one thing catches your eye " +"briefly." msgstr "" +#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py -msgid "Complete Krav Maga" -msgid_plural "Complete Krav Maga" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A single sheet of newspaper broadsheet. It seems to date from several years " +"ago, and you've NO idea how it lasted this long. Most of the information on " +"there is terribly trivial, or out of date, but one thing catches your eye " +"briefly." +msgstr "" -#. ~ Description for {'str_sp': 'Complete Krav Maga'} +#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Krav Maga." +msgid "" +"A single sheet of newspaper broadsheet. It seems to date from a few years " +"ago--amazing it has lasted this long. Most of the information on there is " +"terribly trivial, or out of date, but one thing catches your eye briefly." msgstr "" +#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py -msgid "The Deaf Leopard" -msgid_plural "The Deaf Leopard" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A single sheet of newspaper broadsheet. It was printed more than a year " +"ago. Most of the information on there is terribly trivial, or out of date, " +"but one thing catches your eye briefly." +msgstr "" -#. ~ Description for {'str_sp': 'The Deaf Leopard'} +#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Leopard Kung Fu." +msgid "" +"A single sheet of newspaper broadsheet. It was printed in the months " +"leading up to the Cataclysm. Most of the information on there is terribly " +"trivial, or out of date, but one thing catches your eye briefly." msgstr "" +#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py -msgid "The Lizard Kuo Chui" -msgid_plural "The Lizard Kuo Chui" +msgid "" +"A single sheet of newspaper broadsheet. It was printed in the weeks leading " +"up to the Cataclysm. Most of the information on there is terribly trivial, " +"or out of date, but one thing catches your eye briefly." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "vault leaflet" +msgid_plural "vault leaflets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Lizard Kuo Chui'} +#. ~ Description for {'str': 'vault leaflet'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Lizard Kung Fu." +msgid "" +"A folded glossy handout that appears to be an introduction to living in a " +"massive underground complex." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Ultimate Muay Thai" -msgid_plural "Ultimate Muay Thai" +msgid "note" +msgid_plural "notes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Ultimate Muay Thai'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Muay Thai." +msgid "FEMA evacuation pamphlet" +msgid_plural "FEMA evacuation pamphlets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'FEMA evacuation pamphlet'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Welcome to your Emergency Survival Shelter. We hope your stay here will be " +"short and comfortable. Provided are an emergency blanket, high visibility " +"jacket, gas mask, and food and water rations for one day, as well as an " +"emergency lighter and flashlight. There are further supplies in the " +"communal cabinets should the facility be over its intended capacity. These " +"resources are checked and updated by FEMA on a regular basis, but if you " +"find some items missing, please contact a FEMA supervisor at your earliest " +"convenience.\n" +"\n" +"Please wait in the shelter until an official evacuation transport arrives to " +"take you to your homes or, in the event of a major disaster, to the nearest " +"evacuation gathering point.\n" +"\n" +"In the event that you have been evacuated under violent circumstances, FEMA " +"recommends taking cover in the shelter's basement until help arrives. " +"Remember: if you leave the shelter, we cannot find you to take you to safety." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Essence of Ninjutsu" -msgid_plural "Essence of Ninjutsu" +msgid "leaf spring" +msgid_plural "leaf springs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Essence of Ninjutsu'} +#. ~ Description for {'str': 'leaf spring'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Ninjutsu." +msgid "" +"A large, heavy-duty leaf spring. Probably from some car or truck, and looks " +"an awful lot like a bow. You can barely bend it…" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Book of Five Rings" -msgid_plural "The Book of Five Rings" +msgid "hydrangea" +msgid_plural "hydrangeas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Book of Five Rings'} +#. ~ Description for {'str': 'hydrangea'} #: lang/json/GENERIC_from_json.py -msgid "" -"A primer on Miyamoto Musashi's style of combat and philosophy, Niten Ichi-" -"Ryu." +msgid "A hydrangea stalk with some petals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Modern Pankratiast" -msgid_plural "The Modern Pankratiast" +msgid "hydrangea bud" +msgid_plural "hydrangea buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Modern Pankratiast'} +#. ~ Description for {'str': 'hydrangea bud'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Pankration." +msgid "" +"A hydrangea bud. Contains some substances commonly produced by a hydrangea " +"flower." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "The Scorpion Sun Chien" -msgid_plural "The Scorpion Sun Chien" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "tulip" +msgid_plural "tulips" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Scorpion Sun Chien'} +#. ~ Description for {'str': 'tulip'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Scorpion Kung Fu." +msgid "A tulip stalk with some petals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Indonesian Warrior" -msgid_plural "The Indonesian Warrior" +msgid "tulip bud" +msgid_plural "tulip buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Indonesian Warrior'} +#. ~ Description for {'str': 'tulip bud'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Pentjak Silat." +msgid "" +"A tulip bud. Contains some substances commonly produced by a tulip flower." msgstr "" +#. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py -msgid "The Black Snake" -msgid_plural "The Black Snake" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'The Black Snake'} -#: lang/json/GENERIC_from_json.py -msgid "A complete guide to Snake Kung Fu." +msgid "A spurge stalk with some petals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Official Taekwondo Training Manual" -msgid_plural "Official Taekwondo Training Manual" +msgid "spurge bud" +msgid_plural "spurge buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Official Taekwondo Training Manual'} +#. ~ Description for {'str': 'spurge bud'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Taekwondo." +msgid "" +"A spurge bud. Contains some substances commonly produced by a spurge flower." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Becoming One with the Tao" -msgid_plural "Becoming One with the Tao" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "black eyed susan" +msgid_plural "black eyed susans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Becoming One with the Tao'} +#. ~ Description for {'str': 'black eyed susan'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to T'ai Chi Ch'uan." +msgid "A black eyed susan stalk with some petals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The White Tiger" -msgid_plural "The White Tiger" +msgid "black eyed susan bud" +msgid_plural "black eyed susan buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The White Tiger'} +#. ~ Description for {'str': 'black eyed susan bud'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Tiger Kung Fu." +msgid "" +"A black eyed susan bud. Contains some substances commonly produced by a " +"black eyed susan flower." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "The Toad Lo Mang" -msgid_plural "The Toad Lo Mang" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "lily" +msgid_plural "lilies" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Toad Lo Mang'} +#. ~ Description for {'str': 'lily', 'str_pl': 'lilies'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Toad Kung Fu." +msgid "A lily stalk with some petals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Viper Wei Pai" -msgid_plural "The Viper Wei Pai" +msgid "lily bud" +msgid_plural "lily buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Viper Wei Pai'} +#. ~ Description for {'str': 'lily bud'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Viper Kung Fu." +msgid "" +"A lily bud. Contains some substances commonly produced by a lily flower." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Zui Quan and You" -msgid_plural "Zui Quan and You" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "lotus" +msgid_plural "lotuses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Zui Quan and You'} +#. ~ Description for {'str': 'lotus', 'str_pl': 'lotuses'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Zui Quan." +msgid "A lotus stalk with some petals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Way of the Spear" -msgid_plural "The Way of the Spear" +msgid "lotus bud" +msgid_plural "lotus buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Way of the Spear'} +#. ~ Description for {'str': 'lotus bud'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Sōjutsu." +msgid "" +"A lotus bud. Contains some substances commonly produced by a lotus flower." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Beautiful Springtime" -msgid_plural "Beautiful Springtime" +msgid "lilac" +msgid_plural "lilacs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Beautiful Springtime'} +#. ~ Description for {'str': 'lilac'} #: lang/json/GENERIC_from_json.py -msgid "A complete guide to Wing Chun Kung-fu." +msgid "A lilac stalk with some petals." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/martial_art_from_json.py -#: lang/json/martial_art_from_json.py -msgid "Fior Di Battaglia" -msgid_plural "Fior Di Battaglia" +#: lang/json/GENERIC_from_json.py +msgid "lilac bud" +msgid_plural "lilac buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Fior Di Battaglia'} +#. ~ Description for {'str': 'lilac bud'} #: lang/json/GENERIC_from_json.py msgid "" -"A completely translated medieval guide teaching various techniques with " -"polearms, there is a chapter about the many variations of common polearms… " -"there are even pictures!" +"A lilac bud. Contains some substances commonly produced by a lilac flower." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Historic European Swordfighting" -msgid_plural "Historic European Swordfighting" +msgid "rose bud" +msgid_plural "rose buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'Historic European Swordfighting'} +#. ~ Description for {'str': 'rose bud'} #: lang/json/GENERIC_from_json.py msgid "" -"A complete guide to medieval swordsmanship. Compares the German and Italian " -"traditions for longsword and side sword, in and out of armor, with and " -"without shield." +"A rose bud. Contains some substances commonly produced by a rose flower." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "juvenile sourdough starter" -msgid_plural "juvenile sourdough starters" +msgid "dahlia bud" +msgid_plural "dahlia buds" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'juvenile sourdough starter'}. -#: lang/json/GENERIC_from_json.py -msgid "" -"After feeding it and caring for it for weeks, your sourdough starter is " -"finally ready for the big leagues." -msgstr "" - -#. ~ Use action not_ready_msg for {'str': 'juvenile sourdough starter'}. +#. ~ Description for {'str': 'dahlia bud'} #: lang/json/GENERIC_from_json.py -msgid "" -"You've been caring for your starter for a while, but it's going to need " -"longer before you can do anything tasty with it." +msgid "A dahlia bud. Contains some substances commonly produced by a dahlia." msgstr "" -#. ~ Description for {'str': 'juvenile sourdough starter'} +#. ~ Description for {'str': 'rose'} #: lang/json/GENERIC_from_json.py -msgid "" -"This jar contains a floury paste that is slowly going bad. Someday it will " -"be sourdough." +msgid "A rose stalk with some petals." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "freshly fed sourdough starter" -msgid_plural "freshly fed sourdough starters" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "bluebell" +msgid_plural "bluebells" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'freshly fed sourdough starter'}. -#: lang/json/GENERIC_from_json.py -msgid "The starter is now stinky and bubbly, and looks ready for cooking." -msgstr "" - -#. ~ Use action not_ready_msg for {'str': 'freshly fed sourdough starter'}. +#. ~ Description for {'str': 'bluebell'} #: lang/json/GENERIC_from_json.py -msgid "The starter isn't quite ready to go." +msgid "A bluebell stalk with some petals." msgstr "" -#. ~ Description for {'str': 'freshly fed sourdough starter'} +#. ~ Description for {'str': 'dahlia'} #: lang/json/GENERIC_from_json.py -msgid "" -"This jar contains a floury paste with sourdough starter mixed in. It needs " -"a few hours to recover its strength before it can be used again." +msgid "A dahlia stalk with some petals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sourdough starter" -msgid_plural "sourdough starters" +msgid "poppy flower" +msgid_plural "poppy flowers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sourdough starter'} +#. ~ Description for {'str': 'poppy flower'} #: lang/json/GENERIC_from_json.py -msgid "" -"This jar contains a precious mix of flour, water, molds and bacteria from " -"the air. When you add flour and water to it, after a few hours it froths " -"and rises." +msgid "A poppy stalk with some petals." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "human bone" -msgid_plural "human bones" +msgid "bluebell bud" +msgid_plural "bluebell buds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'human bone'} +#. ~ Description for {'str': 'bluebell bud'} #: lang/json/GENERIC_from_json.py msgid "" -"A bone from a human being. Could be used to make some stuff, if you're " -"feeling sufficiently ghoulish." +"A bluebell bud. Contains some substances commonly produced by a bluebell " +"flower." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "demihuman bone" -msgid_plural "demihuman bones" +msgid "broken chickenbot" +msgid_plural "broken chickenbots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'demihuman bone'} +#. ~ Use action friendly_msg for {'str': 'broken chickenbot'}. +#. ~ Use action friendly_msg for {'str': 'inactive chicken walker'}. +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +msgid "The chicken bot rolls out and begins acquiring targets." +msgstr "" + +#. ~ Use action hostile_msg for {'str': 'broken chickenbot'}. +#. ~ Use action hostile_msg for {'str': 'inactive chicken walker'}. +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +msgid "" +"The chicken bot swivels its turret and aims directly at you. Don your brown " +"pants!" +msgstr "" + +#. ~ Description for {'str': 'broken chickenbot'} #: lang/json/GENERIC_from_json.py msgid "" -"A bone from a demihuman being. Could be used to make some stuff, if you're " -"feeling sufficiently ghoulish." +"A broken chicken walker. Still looks intimidating despite being permanently " +"inoperative, possibly due to the sheer size and mass. Could be gutted for " +"parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "first aid kit" -msgid_plural "first aid kits" +msgid "broken tribot" +msgid_plural "broken tribots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'first aid kit'} +#. ~ Description for {'str': 'broken tribot'} #: lang/json/GENERIC_from_json.py msgid "" -"A full medical kit, with bandages, local anesthetics, and rapid healing " -"agents. Used for healing large amounts of damage. Disassemble to get its " -"content." +"A broken tribot. Now that its legs lie broken and immobile, the world seems " +"a little less threatening. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE" -msgid_plural "MREs" +msgid "broken tank drone" +msgid_plural "broken tank drones" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE'} +#. ~ Description for {'str': 'broken tank drone'} #: lang/json/GENERIC_from_json.py -msgid "A generic MRE box, you shouldn't see this." +msgid "" +"A broken tank drone. Still looks intimidating despite being permanently " +"inoperative, possibly due to the sheer size and mass. Could be gutted for " +"parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE small box" -msgid_plural "MRE small boxes" +msgid "tripod chassis" +msgid_plural "tripod chassis" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE small box', 'str_pl': 'MRE small boxes'} +#. ~ Description for {'str_sp': 'tripod chassis'} #: lang/json/GENERIC_from_json.py -msgid "A generic small MRE box, you shouldn't see this" +msgid "" +"What's left when you remove all moving parts and electronics. It's the " +"skeleton and armor of the tripod." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Accessory Pack" -msgid_plural "MREs - Accessory Packs" +msgid "chicken walker chassis" +msgid_plural "chicken walker chassis" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Accessory Pack', 'str_pl': 'MREs - Accessory Packs'} +#. ~ Description for {'str_sp': 'chicken walker chassis'} #: lang/json/GENERIC_from_json.py msgid "" -"An MRE accessory pack containing a variety of utensils and drinks. Activate " -"or disassemble it to get to its contents." +"What's left when you remove all moving parts and electronics. It's the " +"skeleton and armor of the chicken walker." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Dessert Pack" -msgid_plural "MREs - Dessert Packs" +msgid "Beagle chassis" +msgid_plural "Beagle chassis" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Dessert Pack', 'str_pl': 'MREs - Dessert Packs'} +#. ~ Description for {'str_sp': 'Beagle chassis'} #: lang/json/GENERIC_from_json.py msgid "" -"A sealed plastic bag containing an array of desserts. Activate or " -"disassemble it to get to its contents." +"What's left when you remove all moving parts and electronics. It's the " +"skeleton and armor of the Beagle tank." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Chili & Beans" -msgid_plural "MREs - Chili & Beans" +msgid "set of spidery legs" +msgid_plural "sets of spidery legs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Chili & Beans', 'str_pl': 'MREs - Chili & Beans'} +#. ~ Description for {'str': 'set of spidery legs', 'str_pl': 'sets of spidery legs'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a " -"vegetarian soldier needs. The contents will begin to rot once they're " -"removed from this sealed bag. Activate or disassemble it to get to its " -"contents." +msgid "A set of big pointy legs, like the ones found under a tripod." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - BBQ Beef" -msgid_plural "MREs - BBQ Beef" +msgid "stone pot" +msgid_plural "stone pots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - BBQ Beef', 'str_pl': 'MREs - BBQ Beef'} +#. ~ Description for {'str': 'stone pot'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a BBQ beef entree and everything a hungry soldier " -"needs. The contents will begin to rot once they're removed from this sealed " -"bag. Activate or disassemble it to get to its contents." +msgid "A large stone, roughly hollowed out into a pot." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Chicken & Noodles" -msgid_plural "MREs - Chicken & Noodles" +msgid "burnt out Louisville Slaughterer" +msgid_plural "burnt out Louisville Slaughterers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Chicken & Noodles', 'str_pl': 'MREs - Chicken & Noodles'} +#. ~ Description for {'str': 'burnt out Louisville Slaughterer'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chicken & noodles entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +"A sturdy wood bat, wrapped in flame-resistant Nomex fabric. Makes a good " +"melee weapon but better be disassembled to recycle the baseball bat and some " +"Nomex patches." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Spaghetti" -msgid_plural "MREs - Spaghetti" +#: lang/json/vehicle_part_from_json.py +msgid "quantum solar panel" +msgid_plural "quantum solar panels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Spaghetti', 'str_pl': 'MREs - Spaghetti'} +#. ~ Description for quantum solar panel #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a spaghetti entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"This solar panel is obviously cutting-edge technology and given where you " +"found it, should probably provide a LOT of power. It's covered in strange-" +"looking material, but the covering looks rather fragile; it doesn't look " +"like it could support a reinforcing sheet, either." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Chicken Chunks" -msgid_plural "MREs - Chicken Chunks" +msgid "broken laser turret" +msgid_plural "broken laser turrets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Chicken Chunks', 'str_pl': 'MREs - Chicken Chunks'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a chicken chunk entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "MRE - Beef Taco" -msgid_plural "MREs - Beef Taco" +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Beef Taco', 'str_pl': 'MREs - Beef Taco'} +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a beef taco entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Beef Brisket" -msgid_plural "MREs - Beef Brisket" +msgid "module template" +msgid_plural "module templates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Beef Brisket', 'str_pl': 'MREs - Beef Brisket'} +#. ~ Description for {'str': 'module template'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a beef brisket entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +msgid "This is a template for robot module. If found in a game it is a bug." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Meatballs & Marinara" -msgid_plural "MREs - Meatballs & Marinara" +msgid "targeting module" +msgid_plural "targeting modules" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Meatballs & Marinara', 'str_pl': 'MREs - Meatballs & Marinara'} +#. ~ Description for {'str': 'targeting module'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a meatball entree and everything a hungry soldier " -"needs. The contents will begin to rot once they're removed from this sealed " -"bag. Activate or disassemble it to get to its contents." +"This module integrates visual and proprioceptive information from peripheric " +"sensors and outputs information necessary for accurate aiming." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Beef Stew" -msgid_plural "MREs - Beef Stew" +msgid "identification module" +msgid_plural "identification modules" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Beef Stew', 'str_pl': 'MREs - Beef Stew'} +#. ~ Description for {'str': 'identification module'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a beef stew entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"This module continuously runs image recognition algorithms to identify " +"friends from foe." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Chili & Macaroni" -msgid_plural "MREs - Chili & Macaroni" +msgid "pathfinding module" +msgid_plural "pathfinding modules" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Chili & Macaroni', 'str_pl': 'MREs - Chili & Macaroni'} +#. ~ Description for {'str': 'pathfinding module'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & macaroni entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"This module uses a combination of vector integration and egocentric mapping " +"to find the best path available." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Vegetarian Taco" -msgid_plural "MREs - Vegetarian Taco" +msgid "memory banks module" +msgid_plural "memory banks modules" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Vegetarian Taco', 'str_pl': 'MREs - Vegetarian Taco'} +#. ~ Description for {'str': 'memory banks module'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a vegetarian taco entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +msgid "Allows for storage and recovery of information." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Macaroni Marinara" -msgid_plural "MREs - Macaroni Marinara" +msgid "sensor array" +msgid_plural "sensor arrays" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Macaroni Marinara', 'str_pl': 'MREs - Macaroni Marinara'} +#. ~ Description for {'str': 'sensor array'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a macaroni marinara entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +"A wide range of sensors meant to give the ability to perceive the " +"surrounding world." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Spinach Fettuccine" -msgid_plural "MREs - Spinach Fettuccine" +msgid "self monitoring sensors" +msgid_plural "self monitoring sensors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - Spinach Fettuccine'} +#. ~ Description for {'str_sp': 'self monitoring sensors'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything " -"a vegetarian soldier needs. The contents will begin to rot once they're " -"removed from this sealed bag. Activate or disassemble it to get to its " -"contents." +"An array of sensors and diagnostic modules allowing the robot to perceive " +"itself." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Ratatouille" -msgid_plural "MREs - Ratatouille" +msgid "AI core" +msgid_plural "AI cores" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - Ratatouille'} +#. ~ Description for {'str': 'AI core'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"This module is responsible for decision-making, it basically runs the AI of " +"the robot." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Cheese Tortellini" -msgid_plural "MREs - Cheese Tortellini" +msgid "basic AI core" +msgid_plural "basic AI cores" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Cheese Tortellini', 'str_pl': 'MREs - Cheese Tortellini'} +#. ~ Description for {'str': 'basic AI core'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a cheese tortellini entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +msgid "A very basic AI core with minimal cognitive abilities." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Mushroom Fettuccine" -msgid_plural "MREs - Mushroom Fettuccine" +msgid "advanced AI core" +msgid_plural "advanced AI cores" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Mushroom Fettuccine', 'str_pl': 'MREs - Mushroom Fettuccine'} +#. ~ Description for {'str': 'advanced AI core'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a mushroom fettuccine entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +msgid "An advanced AI core with impressive cognitive abilities." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Mexican Chicken Stew" -msgid_plural "MREs - Mexican Chicken Stew" +msgid "gun operating system" +msgid_plural "gun operating systems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Mexican Chicken Stew', 'str_pl': 'MREs - Mexican Chicken Stew'} +#. ~ Description for {'str': 'gun operating system'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a Mexican chicken stew entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +msgid "This system can operate most conventional weapons." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Chicken Burrito Bowl" -msgid_plural "MREs - Chicken Burrito Bowl" +msgid "set of tiny spidery legs" +msgid_plural "sets of tiny spidery legs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Chicken Burrito Bowl', 'str_pl': 'MREs - Chicken Burrito Bowl'} +#. ~ Description for {'str': 'set of tiny spidery legs', 'str_pl': 'sets of tiny spidery legs'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a chicken burrito bowl entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +msgid "A set of tiny pointy legs, like the ones found under a skitterbot." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Maple Sausage" -msgid_plural "MREs - Maple Sausage" +msgid "set of reverse-jointed legs" +msgid_plural "sets of reverse-jointed legs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Maple Sausage', 'str_pl': 'MREs - Maple Sausage'} +#. ~ Description for {'str': 'set of reverse-jointed legs', 'str_pl': 'sets of reverse-jointed legs'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a maple sausage entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"A set of reverse-jointed legs, like the ones found under a chicken walker." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Ravioli" -msgid_plural "MREs - Ravioli" +msgid "set of omni wheels" +msgid_plural "sets of omni wheels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Ravioli', 'str_pl': 'MREs - Ravioli'} +#. ~ Description for {'str': 'set of omni wheels', 'str_pl': 'sets of omni wheels'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a ravioli entree and everything a hungry soldier " -"needs. The contents will begin to rot once they're removed from this sealed " -"bag. Activate or disassemble it to get to its contents." +msgid "A set of omni wheels, like the ones found under a police bot." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Pepper Jack Beef" -msgid_plural "MREs - Pepper Jack Beef" +msgid "set of rotors" +msgid_plural "sets of rotors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Pepper Jack Beef', 'str_pl': 'MREs - Pepper Jack Beef'} +#. ~ Description for {'str': 'set of rotors', 'str_pl': 'sets of rotors'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a pepper jack beef entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +msgid "A set of rotors able to lift a small drone." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Hash Browns & Bacon" -msgid_plural "MREs - Hash Browns & Bacon" +msgid "set of android legs" +msgid_plural "sets of android legs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Hash Browns & Bacon', 'str_pl': 'MREs - Hash Browns & Bacon'} +#. ~ Description for {'str': 'set of android legs', 'str_pl': 'sets of android legs'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a hash browns & bacon entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +msgid "A set of human-like legs." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Lemon Pepper Tuna" -msgid_plural "MREs - Lemon Pepper Tuna" +msgid "set of android arms" +msgid_plural "sets of android arms" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Lemon Pepper Tuna', 'str_pl': 'MREs - Lemon Pepper Tuna'} +#. ~ Description for {'str': 'set of android arms', 'str_pl': 'sets of android arms'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 'Meal Ready to Eat' with a lemon pepper tuna entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +msgid "A set of human-like arms." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Asian Beef & Vegetables" -msgid_plural "MREs - Asian Beef & Vegetables" +msgid "set of small tank tread" +msgid_plural "sets of small tank tread" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Asian Beef & Vegetables', 'str_pl': 'MREs - Asian Beef & Vegetables'} +#. ~ Description for {'str': 'set of small tank tread', 'str_pl': 'sets of small tank tread'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with an asian beef & vegetables entree and everything " -"a hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +"A set of small tank tread, like the one used by the \"Beagle\" mini-tank." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Chicken Pesto & Pasta" -msgid_plural "MREs - Chicken Pesto & Pasta" +msgid "turret interior chassis" +msgid_plural "turret interior chassis" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Chicken Pesto & Pasta', 'str_pl': 'MREs - Chicken Pesto & Pasta'} +#. ~ Description for {'str_sp': 'turret interior chassis'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chicken pesto entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"What's left when you remove all moving parts and electronics. It's the " +"skeleton of a turret." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Southwest Beef & Beans" -msgid_plural "MREs - Southwest Beef & Beans" +msgid "police bot chassis" +msgid_plural "police bot chassis" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Southwest Beef & Beans', 'str_pl': 'MREs - Southwest Beef & Beans'} +#. ~ Description for {'str_sp': 'police bot chassis'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a southwest beef & beans entree and everything a " -"hungry soldier needs. The contents will begin to rot once they're removed " -"from this sealed bag. Activate or disassemble it to get to its contents." +"What's left when you remove all moving parts and electronics. It's the " +"skeleton and armor of the police bot." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "MRE - Frankfurters & Beans" -msgid_plural "MREs - Frankfurters & Beans" +msgid "android skeleton" +msgid_plural "android skeletons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MRE - Frankfurters & Beans', 'str_pl': 'MREs - Frankfurters & Beans'} +#. ~ Description for {'str': 'android skeleton'} #: lang/json/GENERIC_from_json.py -msgid "" -"A vintage MRE, still perfectly preserved and edible. The contents will " -"begin to rot once they're removed from this sealed bag. Activate or " -"disassemble it to get to its contents." +msgid "What's left when you strip an android body from its components." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "corpse" -msgid_plural "corpses" +#: lang/json/GENERIC_from_json.py src/cata_tiles.cpp +#: src/options.cpp +msgid "software" +msgid_plural "software" msgstr[0] "" msgstr[1] "" -#. ~ Conditional name for {'str': 'corpse'} when FLAG matches FIELD_DRESS -#. ~ Conditional name for {'str': 'corpse'} when FLAG matches FIELD_DRESS_FAILED #: lang/json/GENERIC_from_json.py -msgid "carcass" -msgid_plural "carcasses" +msgid "misc software" +msgid_plural "misc software" msgstr[0] "" msgstr[1] "" -#. ~ Conditional name for {'str': 'corpse'} when FLAG matches SKINNED +#. ~ Description for {'str_sp': 'misc software'} #: lang/json/GENERIC_from_json.py -#, python-format -msgid "skinned %s" -msgid_plural "skinned %s" +msgid "A miscellaneous piece of hobby software. Probably useless." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "hackPRO" +msgid_plural "hackPRO" msgstr[0] "" msgstr[1] "" -#. ~ Conditional name for {'str': 'corpse'} when FLAG matches QUARTERED +#. ~ Description for {'str_sp': 'hackPRO'} #: lang/json/GENERIC_from_json.py -msgid "carcass quarter" -msgid_plural "carcass quarters" +msgid "A piece of hacking software." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "MediSoft" +msgid_plural "MediSoft" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'corpse'} +#. ~ Description for {'str_sp': 'MediSoft'} #: lang/json/GENERIC_from_json.py -msgid "A dead body." +msgid "A piece of medical software." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "desiccated corpse" -msgid_plural "desiccated corpses" +msgid "MatheMAX" +msgid_plural "MatheMAX" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'desiccated corpse'} +#. ~ Description for {'str_sp': 'MatheMAX'} #: lang/json/GENERIC_from_json.py -msgid "" -"A dead body, badly mangled and desiccated. It seems whatever killed him did " -"so with a gigantic claw." +msgid "A piece of mathematical software." msgstr "" -#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "A dead human body." -msgstr "" +msgid "infection data" +msgid_plural "infection data" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'corpse'} +#. ~ Description for {'str_sp': 'infection data'} #: lang/json/GENERIC_from_json.py -msgid "A dead body of a middle-aged man." +msgid "Medical data on zombie blood." msgstr "" -#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "A dead body of a young woman." -msgstr "" +msgid "lab data" +msgid_plural "lab data" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'corpse'} +#. ~ Description for {'str_sp': 'lab data'} #: lang/json/GENERIC_from_json.py -msgid "A dead body of a little boy." +msgid "Research archives from a government laboratory." msgstr "" -#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "A dead body of a little girl." -msgstr "" +msgid "train data" +msgid_plural "train data" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'corpse'} +#. ~ Description for {'str_sp': 'train data'} #: lang/json/GENERIC_from_json.py -msgid "" -"The dead body of a small child. Their corpse bears a calm facial " -"expression, as if they died instantly." +msgid "Logistical data on subterranean train routes and schedules." msgstr "" -#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "" -"The dead body of a child, riddled by bullets to the extent that you can no " -"longer tell their gender." -msgstr "" +msgid "neural data" +msgid_plural "neural data" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'corpse'} +#. ~ Description for {'str_sp': 'neural data'} #: lang/json/GENERIC_from_json.py msgid "" -"A dead body of an old woman. Both of her earlobes are torn, several fingers " -"on her hands have been chopped off, and several teeth have been knocked out." +"Data stolen from a dead scientist memory banks. Is the owner of these " +"thoughts still hidden here, amidst the unreadable data; or are these just a " +"collection of the precious moments of someone's life?\n" +"\n" +"Whatever the case, the idea of perpetually keeping a part of you within a " +"metallic pill makes you feel uncomfortable." msgstr "" -#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "A dead body, coated in congealed blood." -msgstr "" +msgid "integrated circuit datasheet archives" +msgid_plural "misc software" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'corpse'} +#. ~ Description for {'str': 'integrated circuit datasheet archives', 'str_pl': 'misc software'} #: lang/json/GENERIC_from_json.py msgid "" -"A dead body with a frightful grimace. He appears to have been horribly " -"mangled prior to his death." +"Huge archives of numerous IC circuit datasheets from several major " +"manufacturers. Probably valuable to the right person, as it would be hard " +"to salvage and reuse these components without them." msgstr "" -#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "An awful, almost unidentifiable mass of charred flesh." -msgstr "" +msgid "martial art manual" +msgid_plural "martial art manuals" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "A dead body with a gaping stab wound in its back." -msgstr "" +msgid "abstract map" +msgid_plural "abstract maps" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "" -"The dead body of a person. Their forehead bears a large bullet entrance " -"wound. An even larger exit wound is present on the back of their head." -msgstr "" +msgid "military operations map" +msgid_plural "military operations maps" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'corpse'} +#. ~ Use action message for {'str': 'military operations map'}. #: lang/json/GENERIC_from_json.py -msgid "" -"The upper half of a dead body, as if torn apart with enormous force. Some " -"organs are hanging out." +msgid "You add roads and facilities to your map." msgstr "" -#. ~ Description for {'str': 'corpse'} +#. ~ Description for {'str': 'military operations map'} #: lang/json/GENERIC_from_json.py msgid "" -"A half-decapitated dead body. It is unclear what could have caused such a " -"wound." +"This is a printed topographical map of the local area. Originally of " +"military origin, it details the locations of evacuation centers and military " +"facilities. Using it will add points of interest to your map." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ammo belt linkage" -msgid_plural "ammo belt linkages" +msgid "survivor's map" +msgid_plural "survivor's maps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ammo belt linkage'} +#. ~ Use action message for {'str': "survivor's map"}. #: lang/json/GENERIC_from_json.py -msgid "A small metal linkage from a disintegrating ammo belt." +msgid "You add roads and possible supply points to your map." msgstr "" +#. ~ Description for {'str': "survivor's map"} #: lang/json/GENERIC_from_json.py -msgid ".223 ammo belt linkage" -msgid_plural ".223 ammo belt linkages" -msgstr[0] "" -msgstr[1] "" +msgid "" +"This is a hand-drawn map of the local area. Whoever created it has marked " +"down the locations of nearby supply sources including gun stores and gas " +"stations. Using it will add points of interest to your map." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".308 ammo belt linkage" -msgid_plural ".308 ammo belt linkages" +msgid "road map" +msgid_plural "road maps" msgstr[0] "" msgstr[1] "" +#. ~ Use action message for {'str': 'road map'}. #: lang/json/GENERIC_from_json.py -msgid "40mm grenade belt linkage" -msgid_plural "40mm grenade belt linkages" -msgstr[0] "" -msgstr[1] "" +msgid "You add roads and points of interest to your map." +msgstr "" +#. ~ Description for {'str': 'road map'} #: lang/json/GENERIC_from_json.py -msgid ".50 ammo belt linkage" -msgid_plural ".50 ammo belt linkages" -msgstr[0] "" -msgstr[1] "" +msgid "" +"This is a road map for the local area. Listing information on civic sites " +"like hospitals and police stations, it can be used to add points of interest " +"to your map." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "generic grooming" -msgid_plural "generic groomings" +msgid "subway maintenance map" +msgid_plural "subway maintenance maps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'generic grooming'} -#. ~ Description for {'str': 'generic silverware'} -#. ~ Description for {'str': 'generic utensil'} -#. ~ Description for {'str': 'generic silverware'} -#. ~ Description for {'str': 'generic dish', 'str_pl': 'generic dishes'} -#. ~ Description for {'str': 'generic cook pot'} -#. ~ Description for {'str': 'generic kitchen knife', 'str_pl': 'generic kitchen knives'} +#. ~ Use action message for subway maintenance map. #: lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -msgid "generic item template" +msgid "You add subway lines and underground stations to your map." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "soap dish" -msgid_plural "soap dishes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'soap dish', 'str_pl': 'soap dishes'} +#. ~ Description for subway maintenance map #: lang/json/GENERIC_from_json.py msgid "" -"A shallow dish for holding a bar of soap. It has ridges to help drain water " -"away from the dish. Not the most exciting of items." +"This is a map of subway tunnels formerly used by public maintenance " +"workers. Using it will add subway lines and underground stations to your " +"map." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "shaving razor" -msgid_plural "shaving razors" +msgid "trail guide" +msgid_plural "trail guides" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'shaving razor'} +#. ~ Use action message for {'str': 'trail guide'}. +#: lang/json/GENERIC_from_json.py +msgid "You add trails and trailheads to your map." +msgstr "" + +#. ~ Description for {'str': 'trail guide'} #: lang/json/GENERIC_from_json.py msgid "" -"A razor blade on a comfortable handle. Much easier to shave with than a " -"loose razor." +"This is a printed guide to the best local trails. It has general details " +"about the trails, trailhead amenities, suggestions for the best thru-hikes, " +"and advice on interacting with local wildlife in a responsible and " +"respectful manner." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "toothbrush" -msgid_plural "toothbrushes" +msgid "tourist guide" +msgid_plural "tourist guides" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'toothbrush', 'str_pl': 'toothbrushes'} -#: lang/json/GENERIC_from_json.py -msgid "A plastic brush with soft bristles for cleaning your teeth." -msgstr "" - +#. ~ Use action message for {'str': 'tourist guide'}. #: lang/json/GENERIC_from_json.py -msgid "" -"A plastic brush with soft bristles for cleaning your teeth. It has a cheap, " -"blocky handle and is likely meant to be disposable." +msgid "You add roads and tourist attractions to your map." msgstr "" +#. ~ Description for {'str': 'tourist guide'} #: lang/json/GENERIC_from_json.py msgid "" -"A combination toothbrush and gum massager. It has an ergonomic silicone " -"grip. Luxurious!" +"This is glossy printed pamphlet for tourists that details local hotels and " +"attractions." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "" -"A plastic brush with soft bristles for cleaning your teeth. The blue and " -"white pattern on the handle implies cleanliness." -msgstr "" +msgid "restaurant guide" +msgid_plural "restaurant guides" +msgstr[0] "" +msgstr[1] "" +#. ~ Use action message for {'str': 'restaurant guide'}. #: lang/json/GENERIC_from_json.py -msgid "" -"A short toothbrush designed for children. It has a wide-eyed cartoon pony " -"on the handle." +msgid "You add roads and restaurants to your map." msgstr "" +#. ~ Description for {'str': 'restaurant guide'} #: lang/json/GENERIC_from_json.py msgid "" -"A short toothbrush designed for children. It has a grinning red racecar on " -"the handle." +"This is glossy printed pamphlet that details dining establishments in the " +"local area. Printed by the Chamber of Commerce, it lists the addresses of " +"all the best diners and bars. Using it will add points of interest to your " +"map." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hairbrush" -msgid_plural "hairbrushes" +msgid "The Spirit of Aikido" +msgid_plural "The Spirit of Aikido" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hairbrush', 'str_pl': 'hairbrushes'} +#. ~ Description for {'str_sp': 'The Spirit of Aikido'} #: lang/json/GENERIC_from_json.py -msgid "An instrument of hair torture." +msgid "A complete guide to Aikido." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "" -"An instrument of hair torture. There are round safety tips on the bristles." -msgstr "" +msgid "Practical Pugilism" +msgid_plural "Practical Pugilism" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str_sp': 'Practical Pugilism'} #: lang/json/GENERIC_from_json.py -msgid "An old-fashioned hair-straightening device with a faux-wood handle." +msgid "A complete guide to boxing. Let's get ready to rough-up some ruffians!" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "A soft, cushioned hairbrush. The shiny chrome design appears modern." -msgstr "" +msgid "Capoeira 100" +msgid_plural "Capoeira 100" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str_sp': 'Capoeira 100'} #: lang/json/GENERIC_from_json.py -msgid "" -"A tacky kid's hairbrush. The cartoon whale on the handle seems friendly " -"enough." +msgid "A complete guide to Capoeira." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hair curler" -msgid_plural "hair curlers" +msgid "The Centipede Lu Feng" +msgid_plural "The Centipede Lu Feng" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hair curler'} +#. ~ Description for {'str_sp': 'The Centipede Lu Feng'} #: lang/json/GENERIC_from_json.py -msgid "" -"A soft plastic cylinder you can wrap a lock of your hair around to curl it." +msgid "A complete guide to Centipede Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "dental floss" -msgid_plural "rolls of dental floss" +msgid "The Red Crane" +msgid_plural "The Red Crane" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'dental floss', 'str_pl': 'rolls of dental floss'} +#. ~ Description for {'str_sp': 'The Red Crane'} #: lang/json/GENERIC_from_json.py -msgid "" -"Twenty-five yards of finely waxed thread wound up inside a plastic " -"container. Perfect for picking bits of smoked meat out of your teeth. " -"Disassemble to use the thread for something else." +msgid "A complete guide to Crane Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "comb" -msgid_plural "combs" +msgid "The Jade Dragon" +msgid_plural "The Jade Dragon" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'comb'} +#. ~ Description for {'str_sp': 'The Jade Dragon'} #: lang/json/GENERIC_from_json.py -msgid "A grooming tool with teeth for straightening your hair." +msgid "A complete guide to Dragon Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "" -"Somehow, a few teeth have already broken off the end of this otherwise " -"pristine comb." -msgstr "" +msgid "Practical Eskrima" +msgid_plural "Practical Eskrima" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str_sp': 'Practical Eskrima'} #: lang/json/GENERIC_from_json.py -msgid "" -"A grooming tool with teeth for straightening your hair. This one is narrow, " -"black and austere." +msgid "A complete guide to Eskrima." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "" -"A comb made of soft plastic. Its tortoiseshell pattern makes it seem " -"antique." -msgstr "" +msgid "The Modern Swordsman" +msgid_plural "The Modern Swordsman" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str_sp': 'The Modern Swordsman'} #: lang/json/GENERIC_from_json.py -msgid "A comb which folds on a hinge, in case you want to look like a greaser." +msgid "A complete guide to Fencing." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "toilet plunger" -msgid_plural "toilet plungers" +msgid "Kodokan Judo" +msgid_plural "Kodokan Judo" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'toilet plunger'} +#. ~ Description for {'str_sp': 'Kodokan Judo'} #: lang/json/GENERIC_from_json.py -msgid "" -"A rubber-tipped tool for unclogging pipes, or a club for an immature " -"survivor." +msgid "A complete guide to Judo." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "professional plunger" -msgid_plural "professional plungers" +msgid "The Shotokan Karate Handbook" +msgid_plural "The Shotokan Karate Handbook" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'professional plunger'} +#. ~ Description for {'str_sp': 'The Shotokan Karate Handbook'} #: lang/json/GENERIC_from_json.py -msgid "" -"This hollow plastic toilet plunger's bell compresses like an accordion. It " -"is efficient at its intended purpose, and complete rubbish as a weapon." +msgid "A complete guide to Shotokan Karate." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "toilet paper" -msgid_plural "rolls of toilet paper" +msgid "Complete Krav Maga" +msgid_plural "Complete Krav Maga" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'toilet paper', 'str_pl': 'rolls of toilet paper'} +#. ~ Description for {'str_sp': 'Complete Krav Maga'} #: lang/json/GENERIC_from_json.py -msgid "A luxurious remnant of civilization." +msgid "A complete guide to Krav Maga." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "" -"Imagine the thinnest, most disposable paper you could possibly make. Now " -"imagine something thinner than that." -msgstr "" +msgid "The Deaf Leopard" +msgid_plural "The Deaf Leopard" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str_sp': 'The Deaf Leopard'} #: lang/json/GENERIC_from_json.py -msgid "" -"This roll of toilet paper is two-ply and quilted, for vandalizing houses " -"more comfortably than ever." +msgid "A complete guide to Leopard Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "This brand of toilet paper is designed to dissolve completely in water!" -msgstr "" +msgid "The Lizard Kuo Chui" +msgid_plural "The Lizard Kuo Chui" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str_sp': 'The Lizard Kuo Chui'} #: lang/json/GENERIC_from_json.py -msgid "" -"Images of your least favorite politician are printed on each individual " -"sheet." +msgid "A complete guide to Lizard Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "" -"A luxurious remnant of civilization. The splinters of unprocessed wood " -"visible in this one make it seem less luxurious, though." +msgid "Ultimate Muay Thai" +msgid_plural "Ultimate Muay Thai" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Ultimate Muay Thai'} +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Muay Thai." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hair dryer" -msgid_plural "hair dryers" +msgid "Essence of Ninjutsu" +msgid_plural "Essence of Ninjutsu" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hair dryer'} +#. ~ Description for {'str_sp': 'Essence of Ninjutsu'} #: lang/json/GENERIC_from_json.py -msgid "" -"This tool dries your hair by pushing air through a coil of hot wires. " -"Without a functioning power grid, it is a motorized paper weight." +msgid "A complete guide to Ninjutsu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "curling iron" -msgid_plural "curling irons" +msgid "The Book of Five Rings" +msgid_plural "The Book of Five Rings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'curling iron'} +#. ~ Description for {'str_sp': 'The Book of Five Rings'} #: lang/json/GENERIC_from_json.py msgid "" -"A wand made of heat-resistant ceramics. When plugged into an outlet, it is " -"hot enough to shape your hair into curls. Too bad the power's out." +"A primer on Miyamoto Musashi's style of combat and philosophy, Niten Ichi-" +"Ryu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "toilet brush" -msgid_plural "toilet brushes" +msgid "The Modern Pankratiast" +msgid_plural "The Modern Pankratiast" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'toilet brush', 'str_pl': 'toilet brushes'} +#. ~ Description for {'str_sp': 'The Modern Pankratiast'} #: lang/json/GENERIC_from_json.py -msgid "" -"Zombies cannot be intimidated or humiliated, so this stiff brush is only " -"useful for scouring toilet bowls." +msgid "A complete guide to Pankration." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Casing from ammunition cartridge" -msgid_plural "Casing from ammunition cartridges" +msgid "The Scorpion Sun Chien" +msgid_plural "The Scorpion Sun Chien" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'The Scorpion Sun Chien'} +#: lang/json/GENERIC_from_json.py +msgid "A complete guide to Scorpion Kung Fu." +msgstr "" + #: lang/json/GENERIC_from_json.py -msgid ".223 casing" -msgid_plural ".223 casings" +msgid "The Indonesian Warrior" +msgid_plural "The Indonesian Warrior" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.223 casing'} +#. ~ Description for {'str_sp': 'The Indonesian Warrior'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .223 round." +msgid "A complete guide to Pentjak Silat." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".22 LR casing" -msgid_plural ".22 LR casings" +msgid "The Black Snake" +msgid_plural "The Black Snake" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.22 LR casing'} +#. ~ Description for {'str_sp': 'The Black Snake'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .22 LR round. These can't be hand-reloaded." +msgid "A complete guide to Snake Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "unused .22 casing" -msgid_plural "unused .22 casings" +msgid "Official Taekwondo Training Manual" +msgid_plural "Official Taekwondo Training Manual" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'unused .22 casing'} +#. ~ Description for {'str_sp': 'Official Taekwondo Training Manual'} #: lang/json/GENERIC_from_json.py -msgid "An unfired, like-new .22 round casing, with the primer still intact." +msgid "A complete guide to Taekwondo." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".30-06 casing" -msgid_plural ".30-06 casings" +msgid "Becoming One with the Tao" +msgid_plural "Becoming One with the Tao" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.30-06 casing'} +#. ~ Description for {'str_sp': 'Becoming One with the Tao'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .30-06 round." +msgid "A complete guide to T'ai Chi Ch'uan." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".270 Winchester casing" -msgid_plural ".270 Winchester casings" +msgid "The White Tiger" +msgid_plural "The White Tiger" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.270 Winchester casing'} +#. ~ Description for {'str_sp': 'The White Tiger'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .270 Winchester round." +msgid "A complete guide to Tiger Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".300 Win Mag casing" -msgid_plural ".300 Win Mag casings" +msgid "The Toad Lo Mang" +msgid_plural "The Toad Lo Mang" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.300 Win Mag casing'} +#. ~ Description for {'str_sp': 'The Toad Lo Mang'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .300 Winchester Magnum round." +msgid "A complete guide to Toad Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".308 casing" -msgid_plural ".308 casings" +msgid "The Viper Wei Pai" +msgid_plural "The Viper Wei Pai" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.308 casing'} +#. ~ Description for {'str_sp': 'The Viper Wei Pai'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .308 round." +msgid "A complete guide to Viper Kung Fu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "7.62x51mm casing" -msgid_plural "7.62x51mm casings" +msgid "Zui Quan and You" +msgid_plural "Zui Quan and You" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '7.62x51mm casing'} +#. ~ Description for {'str_sp': 'Zui Quan and You'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 7.62x51mm M80 round." +msgid "A complete guide to Zui Quan." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".32 ACP casing" -msgid_plural ".32 ACP casings" +msgid "The Way of the Spear" +msgid_plural "The Way of the Spear" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.32 ACP casing'} +#. ~ Description for {'str_sp': 'The Way of the Spear'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .32 ACP round." +msgid "A complete guide to Sōjutsu." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".38 Special casing" -msgid_plural ".38 Special casings" +msgid "Beautiful Springtime" +msgid_plural "Beautiful Springtime" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.38 Special casing'} +#. ~ Description for {'str_sp': 'Beautiful Springtime'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .38 Special round." +msgid "A complete guide to Wing Chun Kung-fu." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid ".38 Super casing" -msgid_plural ".38 Super casings" +#: lang/json/GENERIC_from_json.py lang/json/martial_art_from_json.py +#: lang/json/martial_art_from_json.py +msgid "Fior Di Battaglia" +msgid_plural "Fior Di Battaglia" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.38 Super casing'} +#. ~ Description for {'str_sp': 'Fior Di Battaglia'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .38 Super round." +msgid "" +"A completely translated medieval guide teaching various techniques with " +"polearms, there is a chapter about the many variations of common polearms… " +"there are even pictures!" msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".40 S&W casing" -msgid_plural ".40 S&W casings" +msgid "Historic European Swordfighting" +msgid_plural "Historic European Swordfighting" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.40 S&W casing'} +#. ~ Description for {'str_sp': 'Historic European Swordfighting'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .40 S&W round." +msgid "" +"A complete guide to medieval swordsmanship. Compares the German and Italian " +"traditions for longsword and side sword, in and out of armor, with and " +"without shield." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "10mm Auto casing" -msgid_plural "10mm Auto casings" +msgid "juvenile sourdough starter" +msgid_plural "juvenile sourdough starters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '10mm Auto casing'} +#. ~ Use action msg for {'str': 'juvenile sourdough starter'}. #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 10mm Auto round." +msgid "" +"After feeding it and caring for it for weeks, your sourdough starter is " +"finally ready for the big leagues." msgstr "" +#. ~ Use action not_ready_msg for {'str': 'juvenile sourdough starter'}. #: lang/json/GENERIC_from_json.py -msgid "40x46mm M212 casing" -msgid_plural "40x46mm M212 casings" -msgstr[0] "" -msgstr[1] "" +msgid "" +"You've been caring for your starter for a while, but it's going to need " +"longer before you can do anything tasty with it." +msgstr "" -#. ~ Description for {'str': '40x46mm M212 casing'} -#. ~ Description for {'str': '40x46mm M118 casing'} -#. ~ Description for {'str': '40x46mm M199 casing'} -#. ~ Description for {'str': '40x46mm M195 casing'} -#. ~ Description for {'str': '40x53mm M169 casing'} +#. ~ Description for {'str': 'juvenile sourdough starter'} #: lang/json/GENERIC_from_json.py -msgid "A large canister from a spent 40mm cartridge." +msgid "" +"This jar contains a floury paste that is slowly going bad. Someday it will " +"be sourdough." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "40x46mm M118 casing" -msgid_plural "40x46mm M118 casings" +msgid "freshly fed sourdough starter" +msgid_plural "freshly fed sourdough starters" msgstr[0] "" msgstr[1] "" +#. ~ Use action msg for {'str': 'freshly fed sourdough starter'}. #: lang/json/GENERIC_from_json.py -msgid "40x46mm M199 casing" -msgid_plural "40x46mm M199 casings" -msgstr[0] "" -msgstr[1] "" +msgid "The starter is now stinky and bubbly, and looks ready for cooking." +msgstr "" +#. ~ Use action not_ready_msg for {'str': 'freshly fed sourdough starter'}. #: lang/json/GENERIC_from_json.py -msgid "40x46mm M195 casing" -msgid_plural "40x46mm M195 casings" -msgstr[0] "" -msgstr[1] "" +msgid "The starter isn't quite ready to go." +msgstr "" +#. ~ Description for {'str': 'freshly fed sourdough starter'} #: lang/json/GENERIC_from_json.py -msgid "40x53mm M169 casing" -msgid_plural "40x53mm M169 casings" -msgstr[0] "" -msgstr[1] "" +msgid "" +"This jar contains a floury paste with sourdough starter mixed in. It needs " +"a few hours to recover its strength before it can be used again." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".44 Magnum casing" -msgid_plural ".44 Magnum casings" +msgid "sourdough starter" +msgid_plural "sourdough starters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.44 Magnum casing'} +#. ~ Description for {'str': 'sourdough starter'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .44 Magnum round." +msgid "" +"This jar contains a precious mix of flour, water, molds and bacteria from " +"the air. When you add flour and water to it, after a few hours it froths " +"and rises." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".454 Casull casing" -msgid_plural ".454 Casull casings" +msgid "human bone" +msgid_plural "human bones" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.454 Casull casing'} +#. ~ Description for {'str': 'human bone'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .454 Casull round." +msgid "" +"A bone from a human being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".45 ACP casing" -msgid_plural ".45 ACP casings" +msgid "demihuman bone" +msgid_plural "demihuman bones" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.45 ACP casing'} +#. ~ Description for {'str': 'demihuman bone'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .45 ACP round." +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".45 Colt casing" -msgid_plural ".45 Colt casings" +msgid "first aid kit" +msgid_plural "first aid kits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.45 Colt casing'} +#. ~ Description for {'str': 'first aid kit'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .45 Colt round." +msgid "" +"A full medical kit, with bandages, local anesthetics, and rapid healing " +"agents. Used for healing large amounts of damage. Disassemble to get its " +"content." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".45-70 casing" -msgid_plural ".45-70 casings" +msgid "MRE" +msgid_plural "MREs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.45-70 casing'} +#. ~ Description for {'str': 'MRE'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .45-70 Government round." +msgid "A generic MRE box, you shouldn't see this." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "4.6x30mm casing" -msgid_plural "4.6x30mm casings" +msgid "MRE small box" +msgid_plural "MRE small boxes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '4.6x30mm casing'} +#. ~ Description for {'str': 'MRE small box', 'str_pl': 'MRE small boxes'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 4.6x30mm round." +msgid "A generic small MRE box, you shouldn't see this" msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".460 Rowland casing" -msgid_plural ".460 Rowland casings" +msgid "MRE - Accessory Pack" +msgid_plural "MREs - Accessory Packs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.460 Rowland casing'} +#. ~ Description for {'str': 'MRE - Accessory Pack', 'str_pl': 'MREs - Accessory Packs'} #: lang/json/GENERIC_from_json.py msgid "" -"An empty casing from a .460 Rowland round. It looks deceptively like " -"a .45ACP casing." +"An MRE accessory pack containing a variety of utensils and drinks. Activate " +"or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "5x50mm hull" -msgid_plural "5x50mm hulls" +msgid "MRE - Dessert Pack" +msgid_plural "MREs - Dessert Packs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '5x50mm hull'} +#. ~ Description for {'str': 'MRE - Dessert Pack', 'str_pl': 'MREs - Dessert Packs'} #: lang/json/GENERIC_from_json.py -msgid "An empty plastic hull from a 5x50mm flechette round." +msgid "" +"A sealed plastic bag containing an array of desserts. Activate or " +"disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".500 S&W Magnum casing" -msgid_plural ".500 S&W Magnum casings" +msgid "MRE - Chili & Beans" +msgid_plural "MREs - Chili & Beans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.500 S&W Magnum casing'} +#. ~ Description for {'str': 'MRE - Chili & Beans', 'str_pl': 'MREs - Chili & Beans'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .500 S&W Magnum round." +msgid "" +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".50 BMG casing" -msgid_plural ".50 BMG casings" +msgid "MRE - BBQ Beef" +msgid_plural "MREs - BBQ Beef" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.50 BMG casing'} +#. ~ Description for {'str': 'MRE - BBQ Beef', 'str_pl': 'MREs - BBQ Beef'} #: lang/json/GENERIC_from_json.py msgid "" -"An empty casing from a .50 BMG round. These are rare, so you might want to " -"hold onto these." +"A 'Meal Ready to Eat' with a BBQ beef entree and everything a hungry soldier " +"needs. The contents will begin to rot once they're removed from this sealed " +"bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "5.45x39mm casing" -msgid_plural "5.45x39mm casings" +msgid "MRE - Chicken & Noodles" +msgid_plural "MREs - Chicken & Noodles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '5.45x39mm casing'} +#. ~ Description for {'str': 'MRE - Chicken & Noodles', 'str_pl': 'MREs - Chicken & Noodles'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 5.45x39mm round." +msgid "" +"A 'Meal Ready to Eat' with a chicken & noodles entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "5.7x28mm casing" -msgid_plural "5.7x28mm casings" +msgid "MRE - Spaghetti" +msgid_plural "MREs - Spaghetti" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '5.7x28mm casing'} +#. ~ Description for {'str': 'MRE - Spaghetti', 'str_pl': 'MREs - Spaghetti'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 5.7x28mm round." +msgid "" +"A 'Meal Ready to Eat' with a spaghetti entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".700 NX casing" -msgid_plural ".700 NX casings" +msgid "MRE - Chicken Chunks" +msgid_plural "MREs - Chicken Chunks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.700 NX casing'} +#. ~ Description for {'str': 'MRE - Chicken Chunks', 'str_pl': 'MREs - Chicken Chunks'} #: lang/json/GENERIC_from_json.py msgid "" -"An empty casing from a .700 NX round. These are rare, so you might want to " -"hold onto these." +"A 'Meal Ready to Eat' with a chicken chunk entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "7.62x54mmR casing" -msgid_plural "7.62x54mmR casings" +msgid "MRE - Beef Taco" +msgid_plural "MREs - Beef Taco" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '7.62x54mmR casing'} +#. ~ Description for {'str': 'MRE - Beef Taco', 'str_pl': 'MREs - Beef Taco'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 7.62x54mmR round." +msgid "" +"A 'Meal Ready to Eat' with a beef taco entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "7.62x39mm casing" -msgid_plural "7.62x39mm casings" +msgid "MRE - Beef Brisket" +msgid_plural "MREs - Beef Brisket" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '7.62x39mm casing'} +#. ~ Description for {'str': 'MRE - Beef Brisket', 'str_pl': 'MREs - Beef Brisket'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 7.62x39mm round." +msgid "" +"A 'Meal Ready to Eat' with a beef brisket entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "7.62x25mm casing" -msgid_plural "7.62x25mm casings" +msgid "MRE - Meatballs & Marinara" +msgid_plural "MREs - Meatballs & Marinara" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '7.62x25mm casing'} +#. ~ Description for {'str': 'MRE - Meatballs & Marinara', 'str_pl': 'MREs - Meatballs & Marinara'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 7.62x25mm round." +msgid "" +"A 'Meal Ready to Eat' with a meatball entree and everything a hungry soldier " +"needs. The contents will begin to rot once they're removed from this sealed " +"bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "9x19mm casing" -msgid_plural "9x19mm casings" +msgid "MRE - Beef Stew" +msgid_plural "MREs - Beef Stew" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '9x19mm casing'} +#. ~ Description for {'str': 'MRE - Beef Stew', 'str_pl': 'MREs - Beef Stew'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 9x19mm round." +msgid "" +"A 'Meal Ready to Eat' with a beef stew entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".357 SIG casing" -msgid_plural ".357 SIG casings" +msgid "MRE - Chili & Macaroni" +msgid_plural "MREs - Chili & Macaroni" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.357 SIG casing'} +#. ~ Description for {'str': 'MRE - Chili & Macaroni', 'str_pl': 'MREs - Chili & Macaroni'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .357 SIG round." +msgid "" +"A 'Meal Ready to Eat' with a chili & macaroni entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".357 magnum casing" -msgid_plural ".357 magnum casings" +msgid "MRE - Vegetarian Taco" +msgid_plural "MREs - Vegetarian Taco" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.357 magnum casing'} +#. ~ Description for {'str': 'MRE - Vegetarian Taco', 'str_pl': 'MREs - Vegetarian Taco'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .357 magnum round." +msgid "" +"A 'Meal Ready to Eat' with a vegetarian taco entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "9x18mm casing" -msgid_plural "9x18mm casings" +msgid "MRE - Macaroni Marinara" +msgid_plural "MREs - Macaroni Marinara" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '9x18mm casing'} +#. ~ Description for {'str': 'MRE - Macaroni Marinara', 'str_pl': 'MREs - Macaroni Marinara'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 9x18mm round." +msgid "" +"A 'Meal Ready to Eat' with a macaroni marinara entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".380 ACP casing" -msgid_plural ".380 ACP casings" +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.380 ACP casing'} +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - Spinach Fettuccine'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .380 ACP round." +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything " +"a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "152mm ATGM tube" -msgid_plural "152mm ATGM tubes" +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '152mm ATGM tube'} +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - Ratatouille'} #: lang/json/GENERIC_from_json.py msgid "" -"An empty steel tube which once contained a 152mm ATGM. Now it's essentially " -"just a huge pipe." +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "shotgun hull" -msgid_plural "shotgun hulls" +msgid "MRE - Cheese Tortellini" +msgid_plural "MREs - Cheese Tortellini" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'shotgun hull'} +#. ~ Description for {'str': 'MRE - Cheese Tortellini', 'str_pl': 'MREs - Cheese Tortellini'} #: lang/json/GENERIC_from_json.py -msgid "An empty hull from a shotgun shell." +msgid "" +"A 'Meal Ready to Eat' with a cheese tortellini entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".410 hull" -msgid_plural ".410 hulls" +msgid "MRE - Mushroom Fettuccine" +msgid_plural "MREs - Mushroom Fettuccine" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.410 hull'} +#. ~ Description for {'str': 'MRE - Mushroom Fettuccine', 'str_pl': 'MREs - Mushroom Fettuccine'} #: lang/json/GENERIC_from_json.py -msgid "An empty hull from a .410 shotgun shell." +msgid "" +"A 'Meal Ready to Eat' with a mushroom fettuccine entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid ".300BLK casing" -msgid_plural ".300BLK casings" +msgid "MRE - Mexican Chicken Stew" +msgid_plural "MREs - Mexican Chicken Stew" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '.300BLK casing'} +#. ~ Description for {'str': 'MRE - Mexican Chicken Stew', 'str_pl': 'MREs - Mexican Chicken Stew'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .300 AAC Blackout round." +msgid "" +"A 'Meal Ready to Eat' with a Mexican chicken stew entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Merch" -msgid_plural "Merchs" +msgid "MRE - Chicken Burrito Bowl" +msgid_plural "MREs - Chicken Burrito Bowl" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Merch'} +#. ~ Description for {'str': 'MRE - Chicken Burrito Bowl', 'str_pl': 'MREs - Chicken Burrito Bowl'} #: lang/json/GENERIC_from_json.py msgid "" -"The Free Merchant Certified Note, also known by names such as a 'c-note' or " -"'merch', is a currency based on old American bills. Fifty dollar bills and " -"larger are printed with a promissory note signed by the treasurer of the " -"Free Merchants, along with a complex design. The note explains that this " -"can be exchanged for food, water, and other services through the Free " -"Merchants in the Refugee Center." +"A 'Meal Ready to Eat' with a chicken burrito bowl entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Hub 01 Gold Coin" -msgid_plural "Hub 01 Gold Coins" +msgid "MRE - Maple Sausage" +msgid_plural "MREs - Maple Sausage" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Hub 01 Gold Coin'} +#. ~ Description for {'str': 'MRE - Maple Sausage', 'str_pl': 'MREs - Maple Sausage'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a small but surprisingly heavy gold coin. One side is etched with " -"circuitry and the other side reads 'Hub 01 exchange currency'." +"A 'Meal Ready to Eat' with a maple sausage entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "FlatCoin" -msgid_plural "FlatCoins" +msgid "MRE - Ravioli" +msgid_plural "MREs - Ravioli" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'FlatCoin'} +#. ~ Description for {'str': 'MRE - Ravioli', 'str_pl': 'MREs - Ravioli'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a coin that has been flattened in a novelty coin flattening " -"machine. The machine has been somewhat crudely altered so that the design - " -"which appears to once have been Mickey Mouse - is overlaid with a " -"handwritten emblem of a book. There is some text that faintly reads 'Campus " -"Exchange Token'." +"A 'Meal Ready to Eat' with a ravioli entree and everything a hungry soldier " +"needs. The contents will begin to rot once they're removed from this sealed " +"bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chit" -msgid_plural "chits" +msgid "MRE - Pepper Jack Beef" +msgid_plural "MREs - Pepper Jack Beef" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'chit'} +#. ~ Description for {'str': 'MRE - Pepper Jack Beef', 'str_pl': 'MREs - Pepper Jack Beef'} #: lang/json/GENERIC_from_json.py -msgid "This is a slip of paper signed by the issuer." +msgid "" +"A 'Meal Ready to Eat' with a pepper jack beef entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "icon" -msgid_plural "icons" +msgid "MRE - Hash Browns & Bacon" +msgid_plural "MREs - Hash Browns & Bacon" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'icon'} +#. ~ Description for {'str': 'MRE - Hash Browns & Bacon', 'str_pl': 'MREs - Hash Browns & Bacon'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a small picture, about the same size as an ID card, symbolizing a " -"religious figure. On the back, there is a text that faintly reads 'New " -"England Church Community'." +"A 'Meal Ready to Eat' with a hash browns & bacon entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "generic silverware" -msgid_plural "generic silverwares" +msgid "MRE - Lemon Pepper Tuna" +msgid_plural "MREs - Lemon Pepper Tuna" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'MRE - Lemon Pepper Tuna', 'str_pl': 'MREs - Lemon Pepper Tuna'} #: lang/json/GENERIC_from_json.py -msgid "generic utensil" -msgid_plural "generic utensils" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A 'Meal Ready to Eat' with a lemon pepper tuna entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "generic dish" -msgid_plural "generic dishes" +msgid "MRE - Asian Beef & Vegetables" +msgid_plural "MREs - Asian Beef & Vegetables" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'MRE - Asian Beef & Vegetables', 'str_pl': 'MREs - Asian Beef & Vegetables'} #: lang/json/GENERIC_from_json.py -msgid "generic cook pot" -msgid_plural "generic cook pots" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A 'Meal Ready to Eat' with an asian beef & vegetables entree and everything " +"a hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ceramic plate" -msgid_plural "ceramic plates" +msgid "MRE - Chicken Pesto & Pasta" +msgid_plural "MREs - Chicken Pesto & Pasta" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ceramic plate'} +#. ~ Description for {'str': 'MRE - Chicken Pesto & Pasta', 'str_pl': 'MREs - Chicken Pesto & Pasta'} #: lang/json/GENERIC_from_json.py -msgid "A ceramic dinner plate, unremarkable in every way." +msgid "" +"A 'Meal Ready to Eat' with a chicken pesto entree and everything a hungry " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ceramic bowl" -msgid_plural "ceramic bowls" +msgid "MRE - Southwest Beef & Beans" +msgid_plural "MREs - Southwest Beef & Beans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ceramic bowl'} +#. ~ Description for {'str': 'MRE - Southwest Beef & Beans', 'str_pl': 'MREs - Southwest Beef & Beans'} #: lang/json/GENERIC_from_json.py -msgid "A perfectly ordinary ceramic soup bowl." +msgid "" +"A 'Meal Ready to Eat' with a southwest beef & beans entree and everything a " +"hungry soldier needs. The contents will begin to rot once they're removed " +"from this sealed bag. Activate or disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ceramic cup" -msgid_plural "ceramic cups" +msgid "MRE - Frankfurters & Beans" +msgid_plural "MREs - Frankfurters & Beans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ceramic cup'} +#. ~ Description for {'str': 'MRE - Frankfurters & Beans', 'str_pl': 'MREs - Frankfurters & Beans'} #: lang/json/GENERIC_from_json.py -msgid "A light ceramic teacup. Quite classy." +msgid "" +"A vintage MRE, still perfectly preserved and edible. The contents will " +"begin to rot once they're removed from this sealed bag. Activate or " +"disassemble it to get to its contents." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "coffee mug" -msgid_plural "coffee mugs" +msgid "corpse" +msgid_plural "corpses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'coffee mug'} +#. ~ Conditional name for {'str': 'corpse'} when FLAG matches FIELD_DRESS +#. ~ Conditional name for {'str': 'corpse'} when FLAG matches FIELD_DRESS_FAILED #: lang/json/GENERIC_from_json.py -msgid "A ceramic coffee cup with a logo on the side." -msgstr "" +msgid "carcass" +msgid_plural "carcasses" +msgstr[0] "" +msgstr[1] "" +#. ~ Conditional name for {'str': 'corpse'} when FLAG matches SKINNED #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'World's Greatest Dad'." -msgstr "" +#, python-format +msgid "skinned %s" +msgid_plural "skinned %s" +msgstr[0] "" +msgstr[1] "" +#. ~ Conditional name for {'str': 'corpse'} when FLAG matches QUARTERED #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'World's Greatest Mom'." -msgstr "" +msgid "carcass quarter" +msgid_plural "carcass quarters" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "" -"The side of the mug has a picture of a happy looking family printed on'." +msgid "A dead body." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "desiccated corpse" +msgid_plural "desiccated corpses" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'desiccated corpse'} #: 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!'." +"A dead body, badly mangled and desiccated. It seems whatever killed him did " +"so with a gigantic claw." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'I'd rather be playing open source games'." +msgid "A dead human body." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'If you think I'm bad, look in a mirror'." +msgid "A dead body of a middle-aged man." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug has a diagram of a caffeine molecule." +msgid "A dead body of a young woman." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug has a cute picture of a sleeping cat." +msgid "A dead body of a little boy." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The mug is printed in leopard spots." +msgid "A dead body of a little girl." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The mug is blue and looks like a TARDIS." +msgid "" +"The dead body of a small child. Their corpse bears a calm facial " +"expression, as if they died instantly." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'STAR WARS' over a picture of a lightsaber." +msgid "" +"The dead body of a child, riddled by bullets to the extent that you can no " +"longer tell their gender." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'House Stark' and depicts a fictional crest." +msgid "" +"A dead body of an old woman. Both of her earlobes are torn, several fingers " +"on her hands have been chopped off, and several teeth have been knocked out." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'My fandom could beat up your fandom'. " +msgid "A dead body, coated in congealed blood." msgstr "" +#. ~ Description for {'str': 'corpse'} #: 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." +"A dead body with a frightful grimace. He appears to have been horribly " +"mangled prior to his death." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'I wish this was wine!'" +msgid "An awful, almost unidentifiable mass of charred flesh." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "The side of the mug reads 'CasUaL aLcoHoLiSm'" +msgid "A dead body with a gaping stab wound in its back." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "tin plate" -msgid_plural "tin plates" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'tin plate'} -#: lang/json/GENERIC_from_json.py -msgid "A tin dinner plate, lightweight and clanky." +msgid "" +"The dead body of a person. Their forehead bears a large bullet entrance " +"wound. An even larger exit wound is present on the back of their head." msgstr "" +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py -msgid "tin cup" -msgid_plural "tin cups" -msgstr[0] "" -msgstr[1] "" +msgid "" +"The upper half of a dead body, as if torn apart with enormous force. Some " +"organs are hanging out." +msgstr "" -#. ~ Description for {'str': 'tin cup'} +#. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py msgid "" -"An enameled tin cup. Great for camping or for prison use; makes a wonderful " -"sound when clanged along bars." +"A half-decapitated dead body. It is unclear what could have caused such a " +"wound." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pewter bowl" -msgid_plural "pewter bowls" +msgid "ammo belt linkage" +msgid_plural "ammo belt linkages" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pewter bowl'} +#. ~ Description for {'str': 'ammo belt linkage'} #: lang/json/GENERIC_from_json.py -msgid "A small pewter serving bowl without a lid. Holds 250 ml of liquid." +msgid "A small metal linkage from a disintegrating ammo belt." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "glass plate" -msgid_plural "glass plates" +msgid ".223 ammo belt linkage" +msgid_plural ".223 ammo belt linkages" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '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" +msgid ".308 ammo belt linkage" +msgid_plural ".308 ammo belt linkages" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'drinking glass', 'str_pl': 'drinking glasses'} -#: 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" +msgid "40mm grenade belt linkage" +msgid_plural "40mm grenade belt linkages" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wine glass', 'str_pl': 'wine glasses'} -#: 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" +msgid ".50 ammo belt linkage" +msgid_plural ".50 ammo belt linkages" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '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" +msgid "generic grooming" +msgid_plural "generic groomings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic plate'} +#. ~ Description for {'str': 'generic grooming'} +#. ~ Description for {'str': 'generic silverware'} +#. ~ Description for {'str': 'generic utensil'} +#. ~ Description for {'str': 'generic silverware'} +#. ~ Description for {'str': 'generic dish', 'str_pl': 'generic dishes'} +#. ~ Description for {'str': 'generic cook pot'} +#. ~ Description for {'str': 'generic kitchen knife', 'str_pl': 'generic kitchen knives'} #: lang/json/GENERIC_from_json.py -msgid "A durable plastic plate, the sort you might use as patio dishware." +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +msgid "generic item template" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic tumbler" -msgid_plural "plastic tumblers" +msgid "soap dish" +msgid_plural "soap dishes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic tumbler'} +#. ~ Description for {'str': 'soap dish', 'str_pl': 'soap dishes'} #: lang/json/GENERIC_from_json.py msgid "" -"A durable plastic drinking vessel. This one is made of clear acrylic and " -"looks almost like glass." +"A shallow dish for holding a bar of soap. It has ridges to help drain water " +"away from the dish. Not the most exciting of items." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" +msgid "shaving razor" +msgid_plural "shaving razors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic bowl'} +#. ~ Description for {'str': 'shaving razor'} #: lang/json/GENERIC_from_json.py -msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgid "" +"A razor blade on a comfortable handle. Much easier to shave with than a " +"loose razor." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "kiddie bowl" -msgid_plural "kiddie bowls" +msgid "toothbrush" +msgid_plural "toothbrushes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'kiddie bowl'} -#: lang/json/GENERIC_from_json.py -msgid "A plastic bowl designed for use by children." -msgstr "" - +#. ~ Description for {'str': 'toothbrush', 'str_pl': 'toothbrushes'} #: lang/json/GENERIC_from_json.py -msgid "This bowl is decorated with cartoon bears." +msgid "A plastic brush with soft bristles for cleaning your teeth." 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'." +"A plastic brush with soft bristles for cleaning your teeth. It has a cheap, " +"blocky handle and is likely meant to be disposable." msgstr "" #: lang/json/GENERIC_from_json.py msgid "" -"This bowl is covered in cartoon dogs and a logo that reads 'Paw Patrol'." +"A combination toothbrush and gum massager. It has an ergonomic silicone " +"grip. Luxurious!" msgstr "" #: lang/json/GENERIC_from_json.py msgid "" -"There are orange and blue fish chasing each other around the rim of this " -"bowl." +"A plastic brush with soft bristles for cleaning your teeth. The blue and " +"white pattern on the handle implies cleanliness." 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." +"A short toothbrush designed for children. It has a wide-eyed cartoon pony " +"on the handle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "There are cute farm animals decorating this bowl." +msgid "" +"A short toothbrush designed for children. It has a grinning red racecar on " +"the handle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sippy cup" -msgid_plural "sippy cups" +msgid "hairbrush" +msgid_plural "hairbrushes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sippy cup'} -#: lang/json/GENERIC_from_json.py -msgid "A plastic cup with a spill-proof lid, designed for use by children." -msgstr "" - +#. ~ Description for {'str': 'hairbrush', 'str_pl': 'hairbrushes'} #: lang/json/GENERIC_from_json.py -msgid "This cup is decorated with cartoon bears." +msgid "An instrument of hair torture." msgstr "" #: lang/json/GENERIC_from_json.py msgid "" -"This cup has a cartoony picture of the Avengers wrapped around the side." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "This sippy cup is made of plastic in bright clashing colors." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "This is a simple blue sippy cup with tooth marks around the spout." +"An instrument of hair torture. There are round safety tips on the bristles." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "This cup is decorated to look like a pokeball." +msgid "An old-fashioned hair-straightening device with a faux-wood handle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "There are cute anthropomorphic fruits decorating this cup." +msgid "A soft, cushioned hairbrush. The shiny chrome design appears modern." msgstr "" #: lang/json/GENERIC_from_json.py msgid "" -"This sippy cup is decorated with crayon-like text that reads 'I love you'." +"A tacky kid's hairbrush. The cartoon whale on the handle seems friendly " +"enough." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fork" -msgid_plural "forks" +msgid "hair curler" +msgid_plural "hair curlers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fork'} +#. ~ Description for {'str': 'hair curler'} #: lang/json/GENERIC_from_json.py msgid "" -"A fork, if you stab something with it, you eat it right away. Wait… " -"nevermind." +"A soft plastic cylinder you can wrap a lock of your hair around to curl it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic fork" -msgid_plural "plastic forks" +msgid "dental floss" +msgid_plural "rolls of dental floss" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic fork'} +#. ~ Description for {'str': 'dental floss', 'str_pl': 'rolls of dental floss'} #: 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 {'str': '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 {'str': 'plastic spoon'} -#: lang/json/GENERIC_from_json.py -msgid "A plastic disposable spoon. Easier to bend than the metal variety." +"Twenty-five yards of finely waxed thread wound up inside a plastic " +"container. Perfect for picking bits of smoked meat out of your teeth. " +"Disassemble to use the thread for something else." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "kiddie spoon" -msgid_plural "kiddie spoons" +msgid "comb" +msgid_plural "combs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '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 "" - +#. ~ Description for {'str': 'comb'} #: lang/json/GENERIC_from_json.py -msgid "This spoon is styled to look like a bulldozer." +msgid "A grooming tool with teeth for straightening your hair." msgstr "" #: lang/json/GENERIC_from_json.py msgid "" -"This spoon is covered in cartoon dogs and a logo that reads 'Paw Patrol'." +"Somehow, a few teeth have already broken off the end of this otherwise " +"pristine comb." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "There is a cute cartoon bear on the handle of this spoon." +msgid "" +"A grooming tool with teeth for straightening your hair. This one is narrow, " +"black and austere." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "There are cartoon cats all over this spoon." +msgid "" +"A comb made of soft plastic. Its tortoiseshell pattern makes it seem " +"antique." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "This spoon has a silhouette of a giraffe going down the handle." +msgid "A comb which folds on a hinge, in case you want to look like a greaser." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "butter knife" -msgid_plural "butter knives" +msgid "toilet plunger" +msgid_plural "toilet plungers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'butter knife', 'str_pl': 'butter knives'} +#. ~ Description for {'str': 'toilet plunger'} #: lang/json/GENERIC_from_json.py msgid "" -"A dull knife, absolutely worthless in combat. Excellent for spreading soft " -"things on bread." +"A rubber-tipped tool for unclogging pipes, or a club for an immature " +"survivor." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic knife" -msgid_plural "plastic knives" +msgid "professional plunger" +msgid_plural "professional plungers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic knife', 'str_pl': 'plastic knives'} +#. ~ Description for {'str': 'professional plunger'} #: 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." +"This hollow plastic toilet plunger's bell compresses like an accordion. It " +"is efficient at its intended purpose, and complete rubbish as a weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic straw" -msgid_plural "plastic straws" +msgid "toilet paper" +msgid_plural "rolls of toilet paper" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic straw'} +#. ~ Description for {'str': 'toilet paper', 'str_pl': 'rolls of toilet paper'} #: lang/json/GENERIC_from_json.py -msgid "A plastic straw, for drinking things and making litter" +msgid "A luxurious remnant of civilization." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "corkscrew" -msgid_plural "corkscrews" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'corkscrew'} -#: lang/json/GENERIC_from_json.py -msgid "Many a pleasant date has been ruined by forgetting this important tool." +msgid "" +"Imagine the thinnest, most disposable paper you could possibly make. Now " +"imagine something thinner than that." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "vegetable peeler" -msgid_plural "vegetable peelers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '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." +"This roll of toilet paper is two-ply and quilted, for vandalizing houses " +"more comfortably than ever." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bottle opener" -msgid_plural "bottle openers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'bottle opener'} -#: lang/json/GENERIC_from_json.py -msgid "A simple lever for popping open bottles." +msgid "This brand of toilet paper is designed to dissolve completely in water!" msgstr "" #: lang/json/GENERIC_from_json.py msgid "" -"This bottle opener is shaped like a zombie head, the mouth pops open the " -"bottle." +"Images of your least favorite politician are printed on each individual " +"sheet." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "This bottle opener is shaped like a lightsaber." +msgid "" +"A luxurious remnant of civilization. The splinters of unprocessed wood " +"visible in this one make it seem less luxurious, though." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "This bottle opener is shaped like a revolver." -msgstr "" +msgid "hair dryer" +msgid_plural "hair dryers" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str': 'hair dryer'} #: lang/json/GENERIC_from_json.py msgid "" -"This bottle opener is engraved with the words 'I'll die before I give you my " -"beer'." +"This tool dries your hair by pushing air through a coil of hot wires. " +"Without a functioning power grid, it is a motorized paper weight." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "curling iron" +msgid_plural "curling irons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'curling iron'} #: lang/json/GENERIC_from_json.py msgid "" -"This bottle opener is emblazoned with a logo for an HVAC contracting company." +"A wand made of heat-resistant ceramics. When plugged into an outlet, it is " +"hot enough to shape your hair into curls. Too bad the power's out." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "This bottle opener reads 'Corporate Team Building Exercise 1999'." -msgstr "" +msgid "toilet brush" +msgid_plural "toilet brushes" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str': 'toilet brush', 'str_pl': 'toilet brushes'} #: lang/json/GENERIC_from_json.py -msgid "This bottle opener reads 'I'd rather be drinking whiskey'." +msgid "" +"Zombies cannot be intimidated or humiliated, so this stiff brush is only " +"useful for scouring toilet bowls." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "This bottle opener is shaped like a phaser." -msgstr "" +msgid "Casing from ammunition cartridge" +msgid_plural "Casing from ammunition cartridges" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "This novelty bottle opener is designed to look like a hobo clown." +msgid ".223 casing" +msgid_plural ".223 casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': '.223 casing'} +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .223 round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "spork" -msgid_plural "sporks" +msgid ".22 LR casing" +msgid_plural ".22 LR casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'spork'} +#. ~ Description for {'str': '.22 LR casing'} #: 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." +msgid "An empty casing from a .22 LR round. These can't be hand-reloaded." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "foon" -msgid_plural "foons" +msgid "unused .22 casing" +msgid_plural "unused .22 casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'foon'} +#. ~ Description for {'str': 'unused .22 casing'} #: lang/json/GENERIC_from_json.py -msgid "Clearly the superior instrument. Sporks are just imitators." +msgid "An unfired, like-new .22 round casing, with the primer still intact." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chopsticks" -msgid_plural "pairs of chopsticks" +msgid ".30-06 casing" +msgid_plural ".30-06 casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'chopsticks', 'str_pl': 'pairs of chopsticks'} +#. ~ Description for {'str': '.30-06 casing'} #: 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." +msgid "An empty casing from a .30-06 round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ladle" -msgid_plural "ladles" +msgid ".270 Winchester casing" +msgid_plural ".270 Winchester casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ladle'} +#. ~ Description for {'str': '.270 Winchester casing'} #: lang/json/GENERIC_from_json.py -msgid "When you need to scoop some soup, this is the utensil for you." +msgid "An empty casing from a .270 Winchester round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "whisk" -msgid_plural "whisks" +msgid ".300 Win Mag casing" +msgid_plural ".300 Win Mag casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'whisk'} +#. ~ Description for {'str': '.300 Win Mag casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"Also known as a 'wire whip', this is a less effective weapon than it sounds." +msgid "An empty casing from a .300 Winchester Magnum round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "potato masher" -msgid_plural "potato mashers" +msgid ".308 casing" +msgid_plural ".308 casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'potato masher'} +#. ~ Description for {'str': '.308 casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"This tool can mash potatoes and soft root vegetables; it cannot do the twist." +msgid "An empty casing from a .308 round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garlic press" -msgid_plural "garlic presses" +msgid "7.62x51mm casing" +msgid_plural "7.62x51mm casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'garlic press', 'str_pl': 'garlic presses'} +#. ~ Description for {'str': '7.62x51mm casing'} #: lang/json/GENERIC_from_json.py -msgid "This tool can squash a clove or two of garlic into a fine paste." +msgid "An empty casing from a 7.62x51mm M80 round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "can opener" -msgid_plural "can openers" +msgid ".32 ACP casing" +msgid_plural ".32 ACP casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'can opener'} +#. ~ Description for {'str': '.32 ACP casing'} #: lang/json/GENERIC_from_json.py -msgid "It's not hard to open cans without this, but it's way messier." +msgid "An empty casing from a .32 ACP round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "carving fork" -msgid_plural "carving forks" +msgid ".38 Special casing" +msgid_plural ".38 Special casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'carving fork'} +#. ~ Description for {'str': '.38 Special casing'} #: 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." +msgid "An empty casing from a .38 Special round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "spatula" -msgid_plural "spatulas" +msgid ".38 Super casing" +msgid_plural ".38 Super casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'spatula'} +#. ~ Description for {'str': '.38 Super casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A rubber scraper for making sure you get every last scrap of cookie dough." +msgid "An empty casing from a .38 Super round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "rolling pin" -msgid_plural "rolling pins" +msgid ".40 S&W casing" +msgid_plural ".40 S&W casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'rolling pin'} +#. ~ Description for {'str': '.40 S&W casing'} #: 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." +msgid "An empty casing from a .40 S&W round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pot" -msgid_plural "pots" +msgid "10mm Auto casing" +msgid_plural "10mm Auto casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pot'} +#. ~ Description for {'str': '10mm Auto casing'} #: lang/json/GENERIC_from_json.py -msgid "Useful for boiling water when cooking spaghetti and more." +msgid "An empty casing from a 10mm Auto round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cast-iron pot" -msgid_plural "cast-iron pots" +msgid "40x46mm M212 casing" +msgid_plural "40x46mm M212 casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cast-iron pot'} +#. ~ Description for {'str': '40x46mm M212 casing'} +#. ~ Description for {'str': '40x46mm M118 casing'} +#. ~ Description for {'str': '40x46mm M199 casing'} +#. ~ Description for {'str': '40x46mm M195 casing'} +#. ~ Description for {'str': '40x53mm M169 casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"This hefty black pot is made from cast iron and coated in a sturdy enamel." +msgid "A large canister from a spent 40mm cartridge." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "copper pot" -msgid_plural "copper pots" +msgid "40x46mm M118 casing" +msgid_plural "40x46mm M118 casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '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 "" +msgid "40x46mm M199 casing" +msgid_plural "40x46mm M199 casings" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "casserole" -msgid_plural "casseroles" +msgid "40x46mm M195 casing" +msgid_plural "40x46mm M195 casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'casserole'} #: lang/json/GENERIC_from_json.py -msgid "" -"A ceramic pot made for both cooking and serving, particularly one-pot " -"dinners." -msgstr "" +msgid "40x53mm M169 casing" +msgid_plural "40x53mm M169 casings" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "stock pot" -msgid_plural "stock pots" +msgid ".44 Magnum casing" +msgid_plural ".44 Magnum casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stock pot'} +#. ~ Description for {'str': '.44 Magnum casing'} #: 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." +msgid "An empty casing from a .44 Magnum round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "canning pot" -msgid_plural "canning pots" +msgid ".454 Casull casing" +msgid_plural ".454 Casull casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'canning pot'} +#. ~ Description for {'str': '.454 Casull casing'} #: 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." +msgid "An empty casing from a .454 Casull round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cast-iron frying pan" -msgid_plural "cast-iron frying pans" +msgid ".45 ACP casing" +msgid_plural ".45 ACP casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cast-iron frying pan'} +#. ~ Description for {'str': '.45 ACP casing'} #: lang/json/GENERIC_from_json.py -msgid "A cast-iron pan. Makes a decent melee weapon, and is used for cooking." +msgid "An empty casing from a .45 ACP round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel frying pan" -msgid_plural "steel frying pans" +msgid ".45 Colt casing" +msgid_plural ".45 Colt casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel frying pan'} +#. ~ Description for {'str': '.45 Colt casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A steel frying pan. Makes a decent melee weapon, and is used for cooking." +msgid "An empty casing from a .45 Colt round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "copper frying pan" -msgid_plural "copper frying pans" +msgid ".45-70 casing" +msgid_plural ".45-70 casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'copper frying pan'} +#. ~ Description for {'str': '.45-70 casing'} #: 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." +msgid "An empty casing from a .45-70 Government round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift pot" -msgid_plural "makeshift pots" +msgid "4.6x30mm casing" +msgid_plural "4.6x30mm casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift pot'} +#. ~ Description for {'str': '4.6x30mm casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A sheet of metal crudely hammered into a cooking pot. Good enough to cook " -"food and boil water, but not as useful as proper cookware." +msgid "An empty casing from a 4.6x30mm round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift copper pot" -msgid_plural "makeshift copper pots" +msgid ".460 Rowland casing" +msgid_plural ".460 Rowland casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift copper pot'} +#. ~ Description for {'str': '.460 Rowland casing'} #: lang/json/GENERIC_from_json.py msgid "" -"A cooking pot crudely hammered out of copper. Good enough to cook food and " -"boil water, but not as useful as proper cookware." +"An empty casing from a .460 Rowland round. It looks deceptively like " +"a .45ACP casing." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "kettle" -msgid_plural "kettles" +msgid "5x50mm hull" +msgid_plural "5x50mm hulls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'kettle'} +#. ~ Description for {'str': '5x50mm hull'} #: lang/json/GENERIC_from_json.py -msgid "A stovetop kettle for boiling water." +msgid "An empty plastic hull from a 5x50mm flechette round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mesh colander" -msgid_plural "mesh colanders" +msgid ".500 S&W Magnum casing" +msgid_plural ".500 S&W Magnum casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mesh colander'} +#. ~ Description for {'str': '.500 S&W Magnum casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A stainless steel mesh colander, for washing rice, vegetables or straining " -"liquid off from noodles or other foods." +msgid "An empty casing from a .500 S&W Magnum round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "splatter guard" -msgid_plural "splatter guards" +msgid ".50 BMG casing" +msgid_plural ".50 BMG casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'splatter guard'} +#. ~ Description for {'str': '.50 BMG casing'} #: lang/json/GENERIC_from_json.py msgid "" -"A stainless steel mesh screen for preventing flying oil from getting all " -"over your nice counters (or you) when frying." +"An empty casing from a .50 BMG round. These are rare, so you might want to " +"hold onto these." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cutting board" -msgid_plural "cutting boards" +msgid "5.45x39mm casing" +msgid_plural "5.45x39mm casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cutting board'} +#. ~ Description for {'str': '5.45x39mm casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A large flat piece of wood for chopping vegetables on without ruining your " -"knife or your countertop." +msgid "An empty casing from a 5.45x39mm round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "meal tray" -msgid_plural "meal trays" +msgid "5.7x28mm casing" +msgid_plural "5.7x28mm casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'meal tray'} +#. ~ Description for {'str': '5.7x28mm casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A stainless steel tray used for serving food in cafeterias, mess halls, or " -"similar places." +msgid "An empty casing from a 5.7x28mm round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "XLR cable" -msgid_plural "XLR cables" +msgid ".700 NX casing" +msgid_plural ".700 NX casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'XLR cable'} +#. ~ Description for {'str': '.700 NX casing'} #: lang/json/GENERIC_from_json.py msgid "" -"A balanced cable used for sending audio signal. The connectors have three " -"prongs." +"An empty casing from a .700 NX round. These are rare, so you might want to " +"hold onto these." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "speaker cable" -msgid_plural "speaker cables" +msgid "7.62x54mmR casing" +msgid_plural "7.62x54mmR casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'speaker cable'} +#. ~ Description for {'str': '7.62x54mmR casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"This audio cable connects one speaker to a powered head, or one speaker to " -"another." +msgid "An empty casing from a 7.62x54mmR round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "instrument cable" -msgid_plural "instrument cables" +msgid "7.62x39mm casing" +msgid_plural "7.62x39mm casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'instrument cable'} +#. ~ Description for {'str': '7.62x39mm casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"Known as an instrument cable because it is usually used to connect a guitar " -"to a powered amp, it is an unbalanced cable with 1/4\" male connectors on " -"each side." +msgid "An empty casing from a 7.62x39mm round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "headphones" -msgid_plural "headphones" +msgid "7.62x25mm casing" +msgid_plural "7.62x25mm casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'headphones'} +#. ~ Description for {'str': '7.62x25mm casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"Typical headphones that cover your ears. A well-known brand that is very " -"high quality, with a detachable 1/8\" cable. Comes with a 1/8\" to 1/4\" " -"adaptor." +msgid "An empty casing from a 7.62x25mm round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "XLR microphone" -msgid_plural "XLR microphones" +msgid "9x19mm casing" +msgid_plural "9x19mm casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'XLR microphone'} +#. ~ Description for {'str': '9x19mm casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A typical microphone used to record or amplify voice. Comes with a clip. " -"Has a 3-pin XLR connector on the bottom in order to connect to am amp." +msgid "An empty casing from a 9x19mm round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "microphone stand" -msgid_plural "microphone stands" +msgid ".357 SIG casing" +msgid_plural ".357 SIG casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'microphone stand'} +#. ~ Description for {'str': '.357 SIG casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A lightweight telescoping boom stand made of aluminum and painted black. " -"About 6' tall when full extended, or 3' when closed fully. Has threads for " -"a mic clip on one end." +msgid "An empty casing from a .357 SIG round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "guitar stand" -msgid_plural "guitar stands" +msgid ".357 magnum casing" +msgid_plural ".357 magnum casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'guitar stand'} +#. ~ Description for {'str': '.357 magnum casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A small, oddly shaped piece of aluminum hardware with three legs. When " -"placed on the ground, this can support one guitar in an upright position." +msgid "An empty casing from a .357 magnum round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mixer" -msgid_plural "mixers" +msgid "9x18mm casing" +msgid_plural "9x18mm casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mixer'} +#. ~ Description for {'str': '9x18mm casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"A device with faders, switches, and knobs that mixes input signal and sends " -"it to two output XLR cables. (left and right)" +msgid "An empty casing from a 9x18mm round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "spare parts" -msgid_plural "spare parts" +msgid ".380 ACP casing" +msgid_plural ".380 ACP casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'spare parts'} +#. ~ Description for {'str': '.380 ACP casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"Items with are not themselves useful but are instead requirements for " -"crafting or repairs" +msgid "An empty casing from a .380 ACP round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "drive belt" -msgid_plural "drive belts" +msgid "152mm ATGM tube" +msgid_plural "152mm ATGM tubes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'drive belt'} +#. ~ Description for {'str': '152mm ATGM tube'} #: lang/json/GENERIC_from_json.py msgid "" -"A synthetic rubber V-belt with steel reinforcement fibers commonly fitted to " -"engines or other industrial equipment." +"An empty steel tube which once contained a 152mm ATGM. Now it's essentially " +"just a huge pipe." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift drive belt" -msgid_plural "makeshift drive belts" +msgid "shotgun hull" +msgid_plural "shotgun hulls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift drive belt'} +#. ~ Description for {'str': 'shotgun hull'} #: lang/json/GENERIC_from_json.py -msgid "" -"An improvised belt useful for repairing engines or other industrial " -"equipment when no better alternative is available." +msgid "An empty hull from a shotgun shell." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "air filter" -msgid_plural "air filters" +msgid ".410 hull" +msgid_plural ".410 hulls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'air filter'} +#. ~ Description for {'str': '.410 hull'} #: lang/json/GENERIC_from_json.py -msgid "" -"A plastic box containing creped paper used to filter the air supply for " -"combustion engines or other industrial equipment." +msgid "An empty hull from a .410 shotgun shell." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift air filter" -msgid_plural "makeshift air filters" +msgid ".300BLK casing" +msgid_plural ".300BLK casings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift air filter'} +#. ~ Description for {'str': '.300BLK casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"An improvised air filter useful for repairing engines or other industrial " -"equipment when no better alternative is available." +msgid "An empty casing from a .300 AAC Blackout round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "automotive filter" -msgid_plural "automotive filters" +msgid "Merch" +msgid_plural "Merchs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'automotive filter'} +#. ~ Description for {'str': 'Merch'} #: lang/json/GENERIC_from_json.py -msgid "A steel can containing filter paper designed for automotive use." +msgid "" +"The Free Merchant Certified Note, also known by names such as a 'c-note' or " +"'merch', is a currency based on old American bills. Fifty dollar bills and " +"larger are printed with a promissory note signed by the treasurer of the " +"Free Merchants, along with a complex design. The note explains that this " +"can be exchanged for food, water, and other services through the Free " +"Merchants in the Refugee Center." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift automotive filter" -msgid_plural "makeshift automotive filters" +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift automotive filter'} +#. ~ Description for {'str': 'Hub 01 Gold Coin'} #: lang/json/GENERIC_from_json.py msgid "" -"An improvised automotive filter useful for repairing engines or other " -"industrial equipment when no better alternative is available." +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "glow plug" -msgid_plural "glow plugs" +msgid "FlatCoin" +msgid_plural "FlatCoins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'glow plug'} +#. ~ Description for {'str': 'FlatCoin'} #: lang/json/GENERIC_from_json.py msgid "" -"A cylindrical heating device designed to be screwed in to a diesel engine to " -"aid starting in cold weather." +"This is a coin that has been flattened in a novelty coin flattening " +"machine. The machine has been somewhat crudely altered so that the design - " +"which appears to once have been Mickey Mouse - is overlaid with a " +"handwritten emblem of a book. There is some text that faintly reads 'Campus " +"Exchange Token'." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "high-pressure pump" -msgid_plural "high-pressure pumps" +msgid "chit" +msgid_plural "chits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'high-pressure pump'} +#. ~ Description for {'str': 'chit'} #: lang/json/GENERIC_from_json.py -msgid "" -"A complex mechanical pump capable of achieving high pressures. Far beyond " -"anything you could reasonably improvise." +msgid "This is a slip of paper signed by the issuer." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mechanical pump" -msgid_plural "mechanical pumps" +msgid "icon" +msgid_plural "icons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mechanical pump'} +#. ~ Description for {'str': 'icon'} #: lang/json/GENERIC_from_json.py msgid "" -"A simple cast iron mechanical impeller pump. It's not good for much of " -"anything on its own." +"This is a small picture, about the same size as an ID card, symbolizing a " +"religious figure. On the back, there is a text that faintly reads 'New " +"England Church Community'." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "short cordage piece" -msgid_plural "short cordage pieces" +msgid "generic silverware" +msgid_plural "generic silverwares" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'short cordage piece'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 6-inch (or about 15 cm) long piece of natural cordage. Useful for some " -"purposes, but not as strong or flexible as proper string." -msgstr "" +msgid "generic utensil" +msgid_plural "generic utensils" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "long cordage piece" -msgid_plural "long cordage pieces" +msgid "generic dish" +msgid_plural "generic dishes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'long cordage piece'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 3-foot (or about 90 cm) long piece of natural cordage. Useful for some " -"purposes, but not as strong or flexible as proper string." -msgstr "" +msgid "generic cook pot" +msgid_plural "generic cook pots" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "short string" -msgid_plural "short strings" +msgid "ceramic plate" +msgid_plural "ceramic plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'short string'} +#. ~ Description for {'str': 'ceramic plate'} #: lang/json/GENERIC_from_json.py -msgid "A 6-inch (or about 15 cm) long piece of cotton string." +msgid "A ceramic dinner plate, unremarkable in every way." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long string" -msgid_plural "long strings" +msgid "ceramic bowl" +msgid_plural "ceramic bowls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'long string'} +#. ~ Description for {'str': 'ceramic bowl'} #: lang/json/GENERIC_from_json.py -msgid "A 3-foot (or about 90 cm) long piece of cotton string." +msgid "A perfectly ordinary ceramic soup bowl." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "short rope" -msgid_plural "short ropes" +msgid "ceramic cup" +msgid_plural "ceramic cups" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'short rope'} +#. ~ Description for {'str': 'ceramic cup'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 6-foot (or about 180 cm) long piece of rope. Too small to be of much use." +msgid "A light ceramic teacup. Quite classy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long rope" -msgid_plural "long ropes" +msgid "coffee mug" +msgid_plural "coffee mugs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'long rope'} +#. ~ Description for {'str': 'coffee mug'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 30-foot (or about 9 m) long rope. Useful for keeping yourself safe from " -"falls." +msgid "A ceramic coffee cup with a logo on the side." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "short vine" -msgid_plural "short vines" -msgstr[0] "" -msgstr[1] "" +msgid "The side of the mug reads 'World's Greatest Dad'." +msgstr "" -#. ~ Description for {'str': 'short vine'} #: lang/json/GENERIC_from_json.py -msgid "" -"A sturdy 6-foot (or about 180 cm) long vine. Too small to be of much use." +msgid "The side of the mug reads 'World's Greatest Mom'." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long vine" -msgid_plural "long vines" -msgstr[0] "" -msgstr[1] "" +msgid "" +"The side of the mug has a picture of a happy looking family printed on'." +msgstr "" -#. ~ Description for {'str': 'long vine'} #: lang/json/GENERIC_from_json.py msgid "" -"A sturdy 30-foot (or about 9 m) long vine. Could easily be used as a rope. " -"Strong enough to suspend a large corpse for butchering." +"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 "short cordage rope" -msgid_plural "short cordage ropes" -msgstr[0] "" -msgstr[1] "" +msgid "The side of the mug reads 'I'd rather be playing open source games'." +msgstr "" -#. ~ Description for {'str': 'short cordage rope'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 6-foot (or about 180 cm) long piece of rough rope, woven from natural " -"cordage. Useful for some purposes, but not as strong or flexible as proper " -"rope." +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 "long cordage rope" -msgid_plural "long cordage ropes" -msgstr[0] "" -msgstr[1] "" +msgid "The side of the mug has a diagram of a caffeine molecule." +msgstr "" -#. ~ Description for {'str': 'long cordage rope'} #: lang/json/GENERIC_from_json.py -msgid "" -"A 30-foot (or about 9 m) long rough rope, woven from natural cordage. Not " -"strong enough to hold up to falls, but still useful for some things, such as " -"suspending large corpses for butchering." +msgid "The side of the mug has a cute picture of a sleeping cat." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "badminton shuttlecock" -msgid_plural "shuttlecocks" -msgstr[0] "" -msgstr[1] "" +msgid "The mug is printed in leopard spots." +msgstr "" -#. ~ Description for {'str': 'badminton shuttlecock', 'str_pl': 'shuttlecocks'} #: lang/json/GENERIC_from_json.py -msgid "A high-drag projectile used in the sport of badminton." +msgid "The mug is blue and looks like a TARDIS." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "golf tee" -msgid_plural "golf tees" -msgstr[0] "" -msgstr[1] "" +msgid "The side of the mug reads 'STAR WARS' over a picture of a lightsaber." +msgstr "" -#. ~ Description for {'str': 'golf tee'} #: lang/json/GENERIC_from_json.py -msgid "" -"A pin shaped piece of wood meant for holding a golf ball slightly off the " -"ground." +msgid "The side of the mug reads 'House Stark' and depicts a fictional crest." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "golf ball" -msgid_plural "golf balls" -msgstr[0] "" -msgstr[1] "" +msgid "The side of the mug reads 'My fandom could beat up your fandom'. " +msgstr "" -#. ~ Description for {'str': 'golf ball'} #: lang/json/GENERIC_from_json.py -msgid "A small ball with round indentations on it." +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 "pool ball" -msgid_plural "pool balls" -msgstr[0] "" -msgstr[1] "" +msgid "The side of the mug reads 'I wish this was wine!'" +msgstr "" -#. ~ Description for {'str': 'pool ball'} #: lang/json/GENERIC_from_json.py -msgid "A colorful, hard ball. Essentially a rock." +msgid "The side of the mug reads 'CasUaL aLcoHoLiSm'" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bowling ball" -msgid_plural "bowling balls" +msgid "tin plate" +msgid_plural "tin plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bowling ball'} +#. ~ Description for {'str': 'tin plate'} #: lang/json/GENERIC_from_json.py -msgid "" -"A large, heavy ball. Before the apocalypse, its main purpose was to be " -"rolled along waxed floors." +msgid "A tin dinner plate, lightweight and clanky." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "baseball" -msgid_plural "baseballs" +msgid "tin cup" +msgid_plural "tin cups" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'baseball'} +#. ~ Description for {'str': 'tin cup'} #: lang/json/GENERIC_from_json.py msgid "" -"A baseball, good for throwing at enemies. Getting hit with one of these " -"hurts a lot more than you might think." +"An enameled 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 "football" -msgid_plural "footballs" +msgid "pewter bowl" +msgid_plural "pewter bowls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'football'} +#. ~ Description for {'str': 'pewter bowl'} #: lang/json/GENERIC_from_json.py -msgid "" -"An oval made of leather and string, it's easily thrown but does little " -"damage. You could take it apart into leather if you wanted." +msgid "A small pewter serving bowl without a lid. Holds 250 ml of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "basketball" -msgid_plural "basketballs" +msgid "glass plate" +msgid_plural "glass plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'basketball'} +#. ~ Description for {'str': 'glass plate'} #: lang/json/GENERIC_from_json.py -msgid "A high-quality indoor basketball. You may throw it at zombies." +msgid "A glass dinner plate, for people who don't have clumsy children." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "volleyball" -msgid_plural "volleyballs" +msgid "drinking glass" +msgid_plural "drinking glasses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'volleyball'} +#. ~ Description for {'str': 'drinking glass', 'str_pl': 'drinking glasses'} #: lang/json/GENERIC_from_json.py -msgid "A standard regulation volleyball." +msgid "A tall drinking glass." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "beach volleyball" -msgid_plural "volleyballs" +msgid "wine glass" +msgid_plural "wine glasses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'beach volleyball', 'str_pl': 'volleyballs'} +#. ~ Description for {'str': 'wine glass', 'str_pl': 'wine glasses'} #: lang/json/GENERIC_from_json.py msgid "" -"A brightly colored beach volleyball. It is slightly larger than a regular " -"white one." +"A stemmed drinking glass that makes you feel very fancy when you drink from " +"it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hockey puck" -msgid_plural "hockey pucks" +msgid "glass bowl" +msgid_plural "glass bowls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hockey puck'} +#. ~ Description for {'str': 'glass bowl'} #: lang/json/GENERIC_from_json.py -msgid "" -"A heavy circular block of solid rubber, normally used for playing hockey. " -"You can throw it to cause some serious harm." +msgid "A glass bowl for soup or dessert." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift bayonet" -msgid_plural "makeshift bayonets" +msgid "plastic plate" +msgid_plural "plastic plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift bayonet'} +#. ~ Description for {'str': 'plastic plate'} #: lang/json/GENERIC_from_json.py -msgid "" -"A makeshift version of a bayonet that consists of a mere spike with some " -"string." +msgid "A durable plastic plate, the sort you might use as patio dishware." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "war flail" -msgid_plural "war flails" +msgid "plastic tumbler" +msgid_plural "plastic tumblers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'war flail'} +#. ~ Description for {'str': 'plastic tumbler'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a stout pole with a large steel flanged mace head on a short chain " -"attached to it, based on the peasant flail agricultural tool except now with " -"a metal head and made to thresh people in metal armor rather than grain." +"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 "peasant flail" -msgid_plural "peasant flails" +msgid "plastic bowl" +msgid_plural "plastic bowls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'peasant flail'} +#. ~ Description for {'str': 'plastic bowl'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a stout pole with a wooden club on a leather cord attached to it, " -"this is a tool used to thresh wheat and occasionally people when the " -"peasants got angry at their feudal lords." +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "baseball bat" -msgid_plural "baseball bats" +msgid "kiddie bowl" +msgid_plural "kiddie bowls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'baseball bat'} +#. ~ Description for {'str': 'kiddie bowl'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy wood bat. Makes a great melee weapon." +msgid "A plastic bowl designed for use by children." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "aluminum bat" -msgid_plural "aluminum bats" -msgstr[0] "" -msgstr[1] "" +msgid "This bowl is decorated with cartoon bears." +msgstr "" -#. ~ Description for {'str': 'aluminum bat'} #: lang/json/GENERIC_from_json.py msgid "" -"An aluminum baseball bat, lighter than a wooden bat and a little easier to " -"swing as a result." +"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 "foam rubber bat" -msgid_plural "foam rubber bats" -msgstr[0] "" -msgstr[1] "" +msgid "" +"This bowl is covered in cartoon dogs and a logo that reads 'Paw Patrol'." +msgstr "" -#. ~ Description for {'str': 'foam rubber bat'} #: lang/json/GENERIC_from_json.py msgid "" -"A baseball bat made out of foam rubber with a plastic handle. Light, well-" -"balanced, and easy to wield, but almost completely ineffective." +"There are orange and blue fish chasing each other around the rim of this " +"bowl." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "expandable baton" -msgid_plural "expandable batons" +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 "sippy cup" +msgid_plural "sippy cups" msgstr[0] "" msgstr[1] "" -#. ~ Use action menu_text for {'str': 'expandable baton'}. +#. ~ Description for {'str': 'sippy cup'} #: lang/json/GENERIC_from_json.py -msgid "Expand" +msgid "A plastic cup with a spill-proof lid, designed for use by children." msgstr "" -#. ~ Use action msg for {'str': 'expandable baton'}. #: lang/json/GENERIC_from_json.py -msgid "You snap open your baton." +msgid "This cup is decorated with cartoon bears." msgstr "" -#. ~ Description for {'str': 'expandable baton'} #: lang/json/GENERIC_from_json.py msgid "" -"A telescoping baton that collapses for easy storage. Makes an excellent " -"melee weapon. Activate to expand." +"This cup has a cartoony picture of the Avengers wrapped around the side." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "expandable baton (extended)" -msgid_plural "expandable batons (extended)" -msgstr[0] "" -msgstr[1] "" +msgid "This sippy cup is made of plastic in bright clashing colors." +msgstr "" -#. ~ Use action menu_text for {'str': 'expandable baton (extended)', 'str_pl': 'expandable batons (extended)'}. #: lang/json/GENERIC_from_json.py -msgid "Collapse" +msgid "This is a simple blue sippy cup with tooth marks around the spout." msgstr "" -#. ~ Use action msg for {'str': 'expandable baton (extended)', 'str_pl': 'expandable batons (extended)'}. #: lang/json/GENERIC_from_json.py -msgid "You collapse your baton." +msgid "This cup is decorated to look like a pokeball." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "There are cute anthropomorphic fruits decorating this cup." msgstr "" -#. ~ Description for {'str': 'expandable baton (extended)', 'str_pl': 'expandable batons (extended)'} #: lang/json/GENERIC_from_json.py msgid "" -"A telescoping baton that collapses for easy storage. Makes an excellent " -"melee weapon. Activate to collapse." +"This sippy cup is decorated with crayon-like text that reads 'I love you'." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "battle axe" -msgid_plural "battle axes" +#: lang/json/GENERIC_from_json.py +msgid "fork" +msgid_plural "forks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'battle axe'} +#. ~ Description for {'str': 'fork'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply made replica of a massive axe designed for warfare." +"A fork, if you stab something with it, you eat it right away. Wait… " +"nevermind." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "blackjack" -msgid_plural "blackjacks" +msgid "plastic fork" +msgid_plural "plastic forks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'blackjack'} +#. ~ Description for {'str': 'plastic fork'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a short, easily concealed bludgeoning weapon consisting of a weight " -"embedded at the end of a short leather shaft. Formerly used by law " -"enforcement, this weapon is meant to stun or knock out the subject, although " -"head strikes have a high risk of causing a permanent, disabling brain injury " -"or being fatal." +"A plastic disposable fork. Great for picnic lunches in the post apocalyptic " +"wasteland." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bokken" -msgid_plural "bokkens" +msgid "spoon" +msgid_plural "spoons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bokken'} +#. ~ Description for {'str': 'spoon'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a solid wood 'training' katana, exactingly crafted to mimic the " -"weight and balance of the real thing. Despite its lack of a sharp metal " -"edge, it's still quite capable of inflicting deadly wounds." +msgid "Do not try to bend the spoon. That is impossible." msgstr "" -#. ~ Description for {'str': 'bokken'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a solid wood 'training' katana, but feels far too light to make an " -"effective weapon." -msgstr "" +msgid "plastic spoon" +msgid_plural "plastic spoons" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'bokken'} +#. ~ Description for {'str': 'plastic spoon'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a solid wood 'training' katana, but it looks to be mass-produced, " -"and not quite as effective as the real deal." +msgid "A plastic disposable spoon. Easier to bend than the metal variety." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The 7-10 Split" -msgid_plural "7-10 Splits" +msgid "kiddie spoon" +msgid_plural "kiddie spoons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The 7-10 Split', 'str_pl': '7-10 Splits'} +#. ~ Description for {'str': 'kiddie spoon'} #: lang/json/GENERIC_from_json.py -msgid "" -"An improvised weapon, made from two spikes attached to a bowling pin in the " -"shape of a 'T'." +msgid "A plastic spoon designed for use by children." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bowling pin" -msgid_plural "bowling pins" -msgstr[0] "" -msgstr[1] "" +msgid "This spoon is striped in bright primary colors." +msgstr "" -#. ~ Description for {'str': 'bowling pin'} #: lang/json/GENERIC_from_json.py -msgid "A blunt bowling pin. Makes a decent melee weapon, if somewhat short." +msgid "This spoon is styled to look like a bulldozer." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "barbed wire bat" -msgid_plural "barbed wire bats" -msgstr[0] "" -msgstr[1] "" +msgid "" +"This spoon is covered in cartoon dogs and a logo that reads 'Paw Patrol'." +msgstr "" -#. ~ Description for {'str': 'barbed wire bat'} #: lang/json/GENERIC_from_json.py -msgid "A baseball bat wrapped with barbed wire. A brutal melee weapon." +msgid "There is a cute cartoon bear on the handle of this spoon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "walking cane" -msgid_plural "walking canes" -msgstr[0] "" -msgstr[1] "" +msgid "There are cartoon cats all over this spoon." +msgstr "" -#. ~ Description for {'str': 'walking cane'} #: lang/json/GENERIC_from_json.py -msgid "" -"Handicapped or not, you always walk in style. Consisting of a metal " -"headpiece and a wooden body, this makes a great bashing weapon in a pinch." +msgid "This spoon has a silhouette of a giraffe going down the handle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cudgel" -msgid_plural "cudgels" +msgid "butter knife" +msgid_plural "butter knives" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cudgel'} +#. ~ Description for {'str': 'butter knife', 'str_pl': 'butter knives'} #: lang/json/GENERIC_from_json.py msgid "" -"A slender long rod of wood, while traditionally intended as a training tool " -"for many dueling moves, it still makes a good melee weapon in a pinch." +"A dull knife, absolutely worthless in combat. Excellent for spreading soft " +"things on bread." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift macuahuitl" -msgid_plural "makeshift macuahuitls" +msgid "plastic knife" +msgid_plural "plastic knives" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift macuahuitl'} +#. ~ Description for {'str': 'plastic knife', 'str_pl': 'plastic knives'} #: lang/json/GENERIC_from_json.py msgid "" -"A flat wooden club with sharpened pieces of stone sticking to both of its " -"sides." +"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 "glass shiv" -msgid_plural "glass shivs" +msgid "plastic straw" +msgid_plural "plastic straws" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'glass shiv'} +#. ~ Description for {'str': 'plastic straw'} #: lang/json/GENERIC_from_json.py -msgid "A glass shard with wrapping at one end so it can be safely wielded." +msgid "A plastic straw, for drinking things and making litter" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "golf club" -msgid_plural "golf clubs" +msgid "corkscrew" +msgid_plural "corkscrews" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'golf club'} +#. ~ Description for {'str': 'corkscrew'} #: lang/json/GENERIC_from_json.py -msgid "" -"A long handle with a big metal head, flat on one side, for driving golf " -"balls. Fore!" +msgid "Many a pleasant date has been ruined by forgetting this important tool." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sledge hammer" -msgid_plural "sledge hammers" +msgid "vegetable peeler" +msgid_plural "vegetable peelers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sledge hammer'} +#. ~ Description for {'str': 'vegetable peeler'} #: lang/json/GENERIC_from_json.py msgid "" -"A large, heavy hammer. Makes an acceptable melee weapon for the very " -"strong, but is nearly useless in the hands of the weak." +"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 "short sledge hammer" -msgid_plural "short sledge hammers" +msgid "bottle opener" +msgid_plural "bottle openers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'short sledge hammer'} +#. ~ Description for {'str': 'bottle opener'} +#: lang/json/GENERIC_from_json.py +msgid "A simple lever for popping open bottles." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "" -"A shorter sledge hammer, still as weighty, however, due to the same steel " -"head. Worse as a melee weapon but is a more portable tool." +"This bottle opener is shaped like a zombie head, the mouth pops open the " +"bottle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "engineer's hammer" -msgid_plural "engineer's hammers" -msgstr[0] "" -msgstr[1] "" +msgid "This bottle opener is shaped like a lightsaber." +msgstr "" -#. ~ Description for {'str': "engineer's hammer"} #: lang/json/GENERIC_from_json.py -msgid "" -"A stout and hefty hammer, more akin to a sledge than a typical ball-peen. " -"Useful for portable demolition work, but is very unwieldy as a weapon." +msgid "This bottle opener is shaped like a revolver." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "heavy sledge hammer" -msgid_plural "heavy sledge hammers" -msgstr[0] "" -msgstr[1] "" +msgid "" +"This bottle opener is engraved with the words 'I'll die before I give you my " +"beer'." +msgstr "" -#. ~ Description for {'str': 'heavy sledge hammer'} #: lang/json/GENERIC_from_json.py msgid "" -"A large sledge hammer with a massive, heavy head. This unwieldy tool is " -"meant to break concrete, rock, brick, anything really." +"This bottle opener is emblazoned with a logo for an HVAC contracting company." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hockey stick" -msgid_plural "hockey sticks" -msgstr[0] "" -msgstr[1] "" +msgid "This bottle opener reads 'Corporate Team Building Exercise 1999'." +msgstr "" -#. ~ Description for {'str': 'hockey stick'} #: lang/json/GENERIC_from_json.py -msgid "" -"A curved wooden stick with a wide and flat end. Commonly used by hockey " -"players." +msgid "This bottle opener reads 'I'd rather be drinking whiskey'." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "homewrecker" -msgid_plural "homewreckers" -msgstr[0] "" -msgstr[1] "" +msgid "This bottle opener is shaped like a phaser." +msgstr "" -#. ~ Description for {'str': 'homewrecker'} #: lang/json/GENERIC_from_json.py -msgid "" -"A long piece of wood with several chunks of steel firmly tied to it. The " -"resulting weapon is unwieldy and slow but very heavy hitting." +msgid "This novelty bottle opener is designed to look like a hobo clown." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ironshod quarterstaff" -msgid_plural "ironshod quarterstaves" +msgid "spork" +msgid_plural "sporks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ironshod quarterstaff', 'str_pl': 'ironshod quarterstaves'} +#. ~ Description for {'str': 'spork'} #: lang/json/GENERIC_from_json.py msgid "" -"A smooth and sturdy staff with a leather-wrapped grip, which has been " -"reinforced with metal bands and caps. Durable and well-balanced, it is " -"surprisingly easy to handle." +"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 "lucerne hammer" -msgid_plural "lucerne hammers" +msgid "foon" +msgid_plural "foons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lucerne hammer'} +#. ~ Description for {'str': 'foon'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a versatile polearm with a spiked hammer head, a spike, and a hook " -"attached to a long stick." +msgid "Clearly the superior instrument. Sporks are just imitators." msgstr "" -#. ~ Description for {'str': 'lucerne hammer'} +#: lang/json/GENERIC_from_json.py +msgid "chopsticks" +msgid_plural "pairs of chopsticks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'chopsticks', 'str_pl': 'pairs of chopsticks'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a cheap piece of crap imitation of a versatile polearm with a spiked " -"hammer head, probably used for LARPing" +"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 "mace" -msgid_plural "maces" +msgid "ladle" +msgid_plural "ladles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mace'} +#. ~ Description for {'str': 'ladle'} #: lang/json/GENERIC_from_json.py -msgid "" -"A medieval weapon consisting of a wood handle with a heavy iron end. It is " -"heavy and slow, but its crushing damage is devastating." +msgid "When you need to scoop some soup, this is the utensil for you." msgstr "" -#. ~ Description for {'str': 'mace'} #: lang/json/GENERIC_from_json.py -msgid "" -"A light, cheaply made replica of a medieval weapon that would normally " -"consist of a wood handle with a heavy iron end." -msgstr "" +msgid "whisk" +msgid_plural "whisks" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'mace'} +#. ~ Description for {'str': 'whisk'} #: lang/json/GENERIC_from_json.py msgid "" -"A medieval weapon consisting of a wood handle with a heavy iron end. That " -"iron end feels a bit loose." +"Also known as a 'wire whip', this is a less effective weapon than it sounds." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift sap" -msgid_plural "makeshift saps" +msgid "potato masher" +msgid_plural "potato mashers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift sap'} +#. ~ Description for {'str': 'potato masher'} #: lang/json/GENERIC_from_json.py msgid "" -"This is an improvised sap, also known as a cosh, slapjack and slapper. A " -"short and flat bludgeoning weapon consisting of a weight embedded between " -"two patches of leather." +"This tool can mash potatoes and soft root vegetables; it cannot do the twist." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Mjölnir" -msgid_plural "Mjölnirs" +msgid "garlic press" +msgid_plural "garlic presses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Mjölnir'} +#. ~ Description for {'str': 'garlic press', 'str_pl': 'garlic presses'} #: lang/json/GENERIC_from_json.py -msgid "" -"A large hammer, forged from the heart of a dying star. It bears the " -"inscription:\n" -"\n" -"Whosoever holds this hammer,\n" -"If he be worthy,\n" -"Shall possess the power to…\n" -"CRUSH!'" +msgid "This tool can squash a clove or two of garlic into a fine paste." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "morningstar" -msgid_plural "morningstars" +msgid "can opener" +msgid_plural "can openers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'morningstar'} +#. ~ Description for {'str': 'can opener'} #: lang/json/GENERIC_from_json.py -msgid "" -"A medieval weapon consisting of a wood handle with a heavy, spiked iron ball " -"on the end. It deals devastating crushing damage, with a small amount of " -"piercing to boot." +msgid "It's not hard to open cans without this, but it's way messier." msgstr "" -#. ~ Description for {'str': 'morningstar'} #: lang/json/GENERIC_from_json.py -msgid "" -"A light, cheaply made replica of a medieval weapon that would normally " -"consist of a wood handle with a heavy, spiked iron ball on the end." -msgstr "" +msgid "carving fork" +msgid_plural "carving forks" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'morningstar'} +#. ~ Description for {'str': 'carving fork'} #: lang/json/GENERIC_from_json.py msgid "" -"A medieval weapon consisting of a wood handle with a heavy, spiked iron ball " -"on the end. That end feels lighter than it should." +"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 "nail bat" -msgid_plural "nail bats" +msgid "spatula" +msgid_plural "spatulas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nail bat'} +#. ~ Description for {'str': 'spatula'} #: lang/json/GENERIC_from_json.py msgid "" -"A baseball bat with several nails driven through it, an excellent melee " -"weapon." +"A rubber scraper for making sure you get every last scrap of cookie dough." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "nailboard" -msgid_plural "nailboards" +msgid "rolling pin" +msgid_plural "rolling pins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nailboard'} +#. ~ Description for {'str': 'rolling pin'} #: lang/json/GENERIC_from_json.py msgid "" -"A long piece of wood with several nails through one end; essentially a " -"simple mace. Makes an acceptable melee weapon." +"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 "pool cue" -msgid_plural "pool cues" +msgid "pot" +msgid_plural "pots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pool cue'} +#. ~ Description for {'str': 'pot'} #: lang/json/GENERIC_from_json.py -msgid "" -"A hard-wood stick designed for hitting colorful balls around a felt table. " -"Truly, the coolest of sports." +msgid "Useful for boiling water when cooking spaghetti and more." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "PR-24 baton (extended)" -msgid_plural "PR-24 batons (extended)" +msgid "cast-iron pot" +msgid_plural "cast-iron pots" msgstr[0] "" msgstr[1] "" -#. ~ Use action menu_text for {'str': 'PR-24 baton (extended)', 'str_pl': 'PR-24 batons (extended)'}. +#. ~ Description for {'str': 'cast-iron pot'} #: lang/json/GENERIC_from_json.py -msgid "Retract" +msgid "" +"This hefty black pot is made from cast iron and coated in a sturdy enamel." msgstr "" -#. ~ Use action msg for {'str': 'PR-24 baton (extended)', 'str_pl': 'PR-24 batons (extended)'}. #: lang/json/GENERIC_from_json.py -msgid "You collapse your PR-24 baton." -msgstr "" +msgid "copper pot" +msgid_plural "copper pots" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'PR-24 baton (extended)', 'str_pl': 'PR-24 batons (extended)'} +#. ~ Description for {'str': 'copper pot'} #: lang/json/GENERIC_from_json.py msgid "" -"The Monadnock PR-24 baton is a collapsible, lightweight, side-handle baton " -"used by law enforcement all over the world. The PR designation is rumored " -"to mean Public Relations. Activate to retract." +"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 "PR-24 baton (retracted)" -msgid_plural "PR-24 batons (retracted)" +msgid "casserole" +msgid_plural "casseroles" msgstr[0] "" msgstr[1] "" -#. ~ Use action menu_text for {'str': 'PR-24 baton (retracted)', 'str_pl': 'PR-24 batons (retracted)'}. +#. ~ Description for {'str': 'casserole'} #: lang/json/GENERIC_from_json.py -msgid "Extend" +msgid "" +"A ceramic pot made for both cooking and serving, particularly one-pot " +"dinners." msgstr "" -#. ~ Use action msg for {'str': 'PR-24 baton (retracted)', 'str_pl': 'PR-24 batons (retracted)'}. #: lang/json/GENERIC_from_json.py -msgid "You snap open your PR-24 baton." -msgstr "" +msgid "stock pot" +msgid_plural "stock pots" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'PR-24 baton (retracted)', 'str_pl': 'PR-24 batons (retracted)'} +#. ~ Description for {'str': 'stock pot'} #: lang/json/GENERIC_from_json.py msgid "" -"The Monadnock PR-24 baton is a collapsible, lightweight, side-handle baton " -"used by law enforcement all over the world. The PR designation is rumored " -"to mean Public Relations. Activate to extend." +"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 "quarterstaff" -msgid_plural "quarterstaves" +msgid "canning pot" +msgid_plural "canning pots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'quarterstaff', 'str_pl': 'quarterstaves'} +#. ~ Description for {'str': 'canning pot'} #: lang/json/GENERIC_from_json.py msgid "" -"A smooth and sturdy staff with a leather-wrapped grip. Light and well-" -"balanced, it is surprisingly easy to handle." +"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 "rock in a sock" -msgid_plural "rocks in socks" +msgid "cast-iron frying pan" +msgid_plural "cast-iron frying pans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'rock in a sock', 'str_pl': 'rocks in socks'} +#. ~ Description for {'str': 'cast-iron frying pan'} #: lang/json/GENERIC_from_json.py -msgid "A pair of nested socks filled with a stone. A true weapon of despair." +msgid "A cast-iron pan. Makes a decent melee weapon, and is used for cooking." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic shank" -msgid_plural "plastic shanks" +msgid "steel frying pan" +msgid_plural "steel frying pans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic shank'} +#. ~ Description for {'str': 'steel frying pan'} #: lang/json/GENERIC_from_json.py msgid "" -"An oblong plastic trinket with the far end ground down into a stabbing point." +"A steel frying pan. Makes a decent melee weapon, and is used for cooking." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "shillelagh" -msgid_plural "shillelaghs" +msgid "copper frying pan" +msgid_plural "copper frying pans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'shillelagh'} +#. ~ Description for {'str': 'copper frying pan'} #: lang/json/GENERIC_from_json.py msgid "" -"A stout knotty stick with a large knob at the top that has been left to cure " -"in a chimney. A traditional Irish weapon, the shillelagh was originally " -"used for settling disputes in a gentlemanly manner." +"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 "loaded stick" -msgid_plural "loaded sticks" +msgid "makeshift pot" +msgid_plural "makeshift pots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'loaded stick'} +#. ~ Description for {'str': 'makeshift pot'} #: lang/json/GENERIC_from_json.py msgid "" -"A stout knotty stick with a large knob at the top that has been left to cure " -"in a chimney. A traditional Irish weapon, the shillelagh was originally " -"used for settling disputes in a gentlemanly manner. The knob has been " -"hollowed and filled with molten heavy metal to pack more of a punch." +"A sheet of metal crudely hammered into a cooking pot. Good enough to cook " +"food and boil water, but not as useful as proper cookware." msgstr "" -#. ~ Description for {'str': 'shillelagh'} +#: lang/json/GENERIC_from_json.py +msgid "makeshift copper pot" +msgid_plural "makeshift copper pots" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'makeshift copper pot'} #: lang/json/GENERIC_from_json.py msgid "" -"A fake shillelagh massproduced as a souvenir for tourists. This knotty " -"stick has not been cured in a chimney like a traditional shillelagh but has " -"had fake black soot painted on." +"A cooking pot crudely hammered out of copper. Good enough to cook food and " +"boil water, but not as useful as proper cookware." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tonfa" -msgid_plural "tonfas" +msgid "kettle" +msgid_plural "kettles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tonfa'} +#. ~ Description for {'str': 'kettle'} #: lang/json/GENERIC_from_json.py -msgid "" -"A hard plastic truncheon commonly employed by police. Originally an " -"Okinawan weapon, it consists of a stick with a perpendicular handle attached " -"a third of the way down its length." +msgid "A stovetop kettle for boiling water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wooden tonfa" -msgid_plural "wooden tonfas" +msgid "mesh colander" +msgid_plural "mesh colanders" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wooden tonfa'} +#. ~ Description for {'str': 'mesh colander'} #: lang/json/GENERIC_from_json.py msgid "" -"A stout wooden truncheon of the sort commonly employed by police. " -"Originally an Okinawan weapon, it consists of a stick with a perpendicular " -"handle attached a third of the way down its length." +"A stainless steel mesh colander, for washing rice, vegetables or straining " +"liquid off from noodles or other foods." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "war hammer" -msgid_plural "war hammers" +msgid "splatter guard" +msgid_plural "splatter guards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'war hammer'} +#. ~ Description for {'str': 'splatter guard'} #: lang/json/GENERIC_from_json.py msgid "" -"A medieval hammer made for battle. Its odd shape and balance make it an " -"excellent weapon, but an ineffective tool." +"A stainless steel mesh screen for preventing flying oil from getting all " +"over your nice counters (or you) when frying." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bionic claws" -msgid_plural "bionic claws" +msgid "cutting board" +msgid_plural "cutting boards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'bionic claws'} +#. ~ Description for {'str': 'cutting board'} #: lang/json/GENERIC_from_json.py -msgid "Short and sharp claws made from a high-tech metal." +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 "monomolecular blade" -msgid_plural "monomolecular blades" +msgid "meal tray" +msgid_plural "meal trays" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'monomolecular blade'} +#. ~ Description for {'str': 'meal tray'} #: lang/json/GENERIC_from_json.py msgid "" -"A foot-long blade made from high-tech alloy and edged with bonded " -"nanocrystals." +"A stainless steel tray used for serving food in cafeterias, mess halls, or " +"similar places." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bullwhip" -msgid_plural "bullwhips" +msgid "XLR cable" +msgid_plural "XLR cables" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bullwhip'} +#. ~ Description for {'str': 'XLR cable'} #: lang/json/GENERIC_from_json.py msgid "" -"A long strip of braided leather with a handle on one end. Originally " -"developed to settle disagreements with cattle, it's better used now for " -"flaying the rotten flesh off of walking corpses. Great for when a problem " -"comes along." +"A balanced cable used for sending audio signal. The connectors have three " +"prongs." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pitchfork" -msgid_plural "pitchforks" +msgid "speaker cable" +msgid_plural "speaker cables" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pitchfork'} +#. ~ Description for {'str': 'speaker cable'} #: lang/json/GENERIC_from_json.py msgid "" -"An agricultural tool with long wooden shaft and four spikes. Is used to " -"lift hay." +"This audio cable connects one speaker to a powered head, or one speaker to " +"another." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pointy stick" -msgid_plural "pointy sticks" +msgid "instrument cable" +msgid_plural "instrument cables" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'instrument cable'} #: lang/json/GENERIC_from_json.py -msgid "A simple wood pole with one end sharpened." +msgid "" +"Known as an instrument cable because it is usually used to connect a guitar " +"to a powered amp, it is an unbalanced cable with 1/4\" male connectors on " +"each side." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wooden spear" -msgid_plural "wooden spears" +msgid "headphones" +msgid_plural "headphones" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wooden spear'} +#. ~ Description for {'str_sp': 'headphones'} #: lang/json/GENERIC_from_json.py -msgid "A stout pole with an improvised grip and a fire-hardened point." +msgid "" +"Typical headphones that cover your ears. A well-known brand that is very " +"high quality, with a detachable 1/8\" cable. Comes with a 1/8\" to 1/4\" " +"adaptor." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "forked spear" -msgid_plural "forked spears" +msgid "XLR microphone" +msgid_plural "XLR microphones" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'forked spear'} +#. ~ Description for {'str': 'XLR microphone'} #: lang/json/GENERIC_from_json.py msgid "" -"A wooden pole with three spikes tied to it and decent grip. It's " -"specialized for catching weapons, and not intended for extended use in " -"combat." +"A typical microphone used to record or amplify voice. Comes with a clip. " +"Has a 3-pin XLR connector on the bottom in order to connect to am amp." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "copper spear" -msgid_plural "copper spears" +msgid "microphone stand" +msgid_plural "microphone stands" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'copper spear'} +#. ~ Description for {'str': 'microphone stand'} #: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a spearhead worked from copper." +msgid "" +"A lightweight telescoping boom stand made of aluminum and painted black. " +"About 6' tall when full extended, or 3' when closed fully. Has threads for " +"a mic clip on one end." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel spear" -msgid_plural "steel spears" +msgid "guitar stand" +msgid_plural "guitar stands" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel spear'} +#. ~ Description for {'str': 'guitar stand'} #: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a hand-forged steel spearhead." +msgid "" +"A small, oddly shaped piece of aluminum hardware with three legs. When " +"placed on the ground, this can support one guitar in an upright position." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pipe spear" -msgid_plural "pipe spears" +msgid "plectrum" +msgid_plural "plectra" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pipe spear'} +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} #: lang/json/GENERIC_from_json.py -msgid "A stout metal pole with a sharp point." +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sharpened rebar" -msgid_plural "sharpened rebars" +msgid "mixer" +msgid_plural "mixers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sharpened rebar'} +#. ~ Description for {'str': 'mixer'} #: lang/json/GENERIC_from_json.py -msgid "A somewhat sharpened piece of rebar." +msgid "" +"A device with faders, switches, and knobs that mixes input signal and sends " +"it to two output XLR cables. (left and right)" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "qiang" -msgid_plural "qiangs" +msgid "spare parts" +msgid_plural "spare parts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'qiang'} +#. ~ Description for {'str_sp': 'spare parts'} #: lang/json/GENERIC_from_json.py msgid "" -"An ancient Chinese spear, typically with a tassel just below the spearhead. " -"One of the four major weapons in folklore, alongside the dao sabre, jian " -"sword, and gun staff." +"Items with are not themselves useful but are instead requirements for " +"crafting or repairs" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "halberd" -msgid_plural "halberds" +msgid "drive belt" +msgid_plural "drive belts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'halberd'} +#. ~ Description for {'str': 'drive belt'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a versatile polearm with an axe blade, a spike, and other fun things " -"attached to a long stick." +"A synthetic rubber V-belt with steel reinforcement fibers commonly fitted to " +"engines or other industrial equipment." msgstr "" -#. ~ Description for {'str': 'halberd'} +#: lang/json/GENERIC_from_json.py +msgid "makeshift drive belt" +msgid_plural "makeshift drive belts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'makeshift drive belt'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply made replica of a polearm with an axe blade, a " -"spike, and other fun things attached to a long stick." +"An improvised belt useful for repairing engines or other industrial " +"equipment when no better alternative is available." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "glaive" -msgid_plural "glaives" +msgid "air filter" +msgid_plural "air filters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'glaive'} +#. ~ Description for {'str': 'air filter'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy polearm with a sizable, single-edged blade on the end." +msgid "" +"A plastic box containing creped paper used to filter the air supply for " +"combustion engines or other industrial equipment." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "naginata" -msgid_plural "naginata" +msgid "makeshift air filter" +msgid_plural "makeshift air filters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'naginata'} +#. ~ Description for {'str': 'makeshift air filter'} #: 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. Occasionally used by samurai in early periods, " -"or by their wives in defense of the household." +"An improvised air filter useful for repairing engines or other industrial " +"equipment when no better alternative is available." msgstr "" -#. ~ Description for {'str_sp': '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 "" +msgid "automotive filter" +msgid_plural "automotive filters" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str_sp': 'naginata'} +#. ~ Description for {'str': 'automotive filter'} #: 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." +msgid "A steel can containing filter paper designed for automotive use." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "survivor naginata" -msgid_plural "survivor naginata" +msgid "makeshift automotive filter" +msgid_plural "makeshift automotive filters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'survivor naginata'} +#. ~ Description for {'str': 'makeshift automotive filter'} #: lang/json/GENERIC_from_json.py msgid "" -"This sturdy steel shaft with a sword blade at the end is good for both " -"slashing and stabbing." +"An improvised automotive filter useful for repairing engines or other " +"industrial equipment when no better alternative is available." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" +msgid "glow plug" +msgid_plural "glow plugs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wooden javelin'} +#. ~ Description for {'str': 'glow plug'} #: lang/json/GENERIC_from_json.py msgid "" -"A fire-hardened wooden spear honed to a sharper point. The grip area has " -"been carved and covered for better grip." +"A cylindrical heating device designed to be screwed in to a diesel engine to " +"aid starting in cold weather." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" +msgid "high-pressure pump" +msgid_plural "high-pressure pumps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'iron javelin'} +#. ~ Description for {'str': 'high-pressure pump'} #: lang/json/GENERIC_from_json.py msgid "" -"An iron-tipped wooden throwing spear. The grip area has been carved and " -"covered for better grip." +"A complex mechanical pump capable of achieving high pressures. Far beyond " +"anything you could reasonably improvise." msgstr "" #: lang/json/GENERIC_from_json.py -msgctxt "weapon" -msgid "wooden pike" -msgid_plural "wooden pikes" +msgid "mechanical pump" +msgid_plural "mechanical pumps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'ctxt': 'weapon', 'str': 'wooden pike'} +#. ~ Description for {'str': 'mechanical pump'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a medieval weapon consisting of a wood shaft with a fire hardened " -"point." +"A simple cast iron mechanical impeller pump. It's not good for much of " +"anything on its own." msgstr "" #: lang/json/GENERIC_from_json.py -msgctxt "weapon" -msgid "copper pike" -msgid_plural "copper pikes" +msgid "short cordage piece" +msgid_plural "short cordage pieces" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'ctxt': 'weapon', 'str': 'copper pike'} +#. ~ Description for {'str': 'short cordage piece'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a medieval weapon consisting of a wood shaft tipped with a copper " -"spearhead." +"A 6-inch (or about 15 cm) long piece of natural cordage. Useful for some " +"purposes, but not as strong or flexible as proper string." msgstr "" #: lang/json/GENERIC_from_json.py -msgctxt "weapon" -msgid "pike" -msgid_plural "pikes" +msgid "long cordage piece" +msgid_plural "long cordage pieces" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'ctxt': 'weapon', 'str': 'pike'} +#. ~ Description for {'str': 'long cordage piece'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a medieval weapon consisting of a wood shaft tipped with an iron " -"spearhead." +"A 3-foot (or about 90 cm) long piece of natural cordage. Useful for some " +"purposes, but not as strong or flexible as proper string." msgstr "" -#. ~ Description for {'ctxt': 'weapon', 'str': 'pike'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a dull, cheaply made replica of a medieval weapon consisting of a " -"wood shaft tipped with an iron spearhead." -msgstr "" +msgid "short string" +msgid_plural "short strings" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'ctxt': 'weapon', 'str': 'pike'} +#. ~ Description for {'str': 'short string'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a medieval weapon consisting of a wood shaft tipped with an iron " -"spearhead. The head seems to be pretty dull, and the whole thing feels " -"poorly made." +msgid "A 6-inch (or about 15 cm) long piece of cotton string." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "war scythe" -msgid_plural "war scythes" +msgid "long string" +msgid_plural "long strings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'war scythe'} +#. ~ Description for {'str': 'long string'} #: lang/json/GENERIC_from_json.py -msgid "" -"A pole weapon with a curving single-edged blade. Its blade bears some " -"superficial resemblance to that of an agricultural scythe from which it " -"likely evolved." +msgid "A 3-foot (or about 90 cm) long piece of cotton string." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "dory" -msgid_plural "dories" +msgid "short rope" +msgid_plural "short ropes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'dory', 'str_pl': 'dories'} +#. ~ Description for {'str': 'short rope'} #: lang/json/GENERIC_from_json.py -msgid "A well-made spear with a bronze head, Greek in origin." +msgid "" +"A 6-foot (or about 180 cm) long piece of rope. Too small to be of much use." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ji" -msgid_plural "ji" +msgid "long rope" +msgid_plural "long ropes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'ji'} +#. ~ Description for {'str': 'long rope'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a bronze polearm that originated in the Shang dynasty of China, if " -"not earlier. It combines a spear head with the perpendicular blade of the " -"earlier ge or dagger-axe." +"A 30-foot (or about 9 m) long rope. Useful for keeping yourself safe from " +"falls." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" +msgid "short vine" +msgid_plural "short vines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stone spear'} +#. ~ Description for {'str': 'short vine'} #: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." +msgid "" +"A sturdy 6-foot (or about 180 cm) long vine. Too small to be of much use." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "2-by-sword" -msgid_plural "2-by-swords" +msgid "long vine" +msgid_plural "long vines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '2-by-sword'} +#. ~ Description for {'str': 'long vine'} #: lang/json/GENERIC_from_json.py msgid "" -"A two by four with a cross guard and whittled down point; not much for " -"slashing, but much better than your bare hands." +"A sturdy 30-foot (or about 9 m) long vine. Could easily be used as a rope. " +"Strong enough to suspend a large corpse for butchering." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "nord" -msgid_plural "nords" +msgid "short cordage rope" +msgid_plural "short cordage ropes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nord'} +#. ~ Description for {'str': 'short cordage rope'} #: lang/json/GENERIC_from_json.py msgid "" -"The nail sword, or nord for short. This wooden sword has a dozen nails " -"sticking at jagged angles from edge of the blade, making it much better at " -"chopping than slashing." +"A 6-foot (or about 180 cm) long piece of rough rope, woven from natural " +"cordage. Useful for some purposes, but not as strong or flexible as proper " +"rope." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "crude sword" -msgid_plural "crude swords" +msgid "long cordage rope" +msgid_plural "long cordage ropes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'crude sword'} +#. ~ Description for {'str': 'long cordage rope'} #: lang/json/GENERIC_from_json.py msgid "" -"Several bits of thin scrap metal crudely beat into the semblance of an edge " -"over a wooden sword. The added weight is unbalanced, but the jagged edge " -"offers a good bit of slashing power." +"A 30-foot (or about 9 m) long rough rope, woven from natural cordage. Not " +"strong enough to hold up to falls, but still useful for some things, such as " +"suspending large corpses for butchering." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "jian" -msgid_plural "jian" +#: lang/json/GENERIC_from_json.py +msgid "badminton shuttlecock" +msgid_plural "shuttlecocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'jian'} +#. ~ Description for {'str': 'badminton shuttlecock', 'str_pl': 'shuttlecocks'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a dull, cheaply made replica of an ancient Chinese doubled-edged " -"straight sword, with an ornate guard." +msgid "A high-drag projectile used in the sport of badminton." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "scimitar" -msgid_plural "scimitars" +#: lang/json/GENERIC_from_json.py +msgid "golf tee" +msgid_plural "golf tees" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'scimitar'} +#. ~ Description for {'str': 'golf tee'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply made replica of a curved sword, associated with " -"various Middle Eastern and Central Asian countries." +"A pin shaped piece of wood meant for holding a golf ball slightly off the " +"ground." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "estoc" -msgid_plural "estocs" +msgid "golf ball" +msgid_plural "golf balls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'estoc'} +#. ~ Description for {'str': 'golf ball'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a thin thrusting sword, a sort of predecessor to the rapier. It " -"requires a larger baldric or scabbard, compared to smaller swords." +msgid "A small ball with round indentations on it." msgstr "" -#. ~ Description for {'str': 'estoc'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a thin thrusting sword, a sort of predecessor to the rapier. It " -"requires a larger baldric or scabbard, compared to smaller swords. It seems " -"a bit too bendy." -msgstr "" +msgid "pool ball" +msgid_plural "pool balls" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'estoc'} +#. ~ Description for {'str': 'pool ball'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a dull, cheaply-made replica of a thin thrusting sword predating the " -"rapier. It requires a larger baldric or scabbard, compared to smaller " -"swords." +msgid "A colorful, hard ball. Essentially a rock." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "longsword" -msgid_plural "longswords" +#: lang/json/GENERIC_from_json.py +msgid "bowling ball" +msgid_plural "bowling balls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'longsword'} +#. ~ Description for {'str': 'bowling ball'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply-made replica of the classic medieval longsword. It " -"requires a larger baldric or scabbard, compared to smaller swords." +"A large, heavy ball. Before the apocalypse, its main purpose was to be " +"rolled along waxed floors." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "arming sword" -msgid_plural "arming swords" +#: lang/json/GENERIC_from_json.py +msgid "baseball" +msgid_plural "baseballs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'arming sword'} +#. ~ Description for {'str': 'baseball'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply made replica of a classic medieval sword, just the " -"right size to use one-handed." +"A baseball, good for throwing at enemies. Getting hit with one of these " +"hurts a lot more than you might think." msgstr "" #: lang/json/GENERIC_from_json.py -#: lang/json/TOOL_from_json.py -msgid "tanto" -msgid_plural "tantos" +msgid "football" +msgid_plural "footballs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tanto'} +#. ~ Description for {'str': 'football'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply made replica of a long Japanese knife, typically " -"used as a samurai's backup weapon." +"An oval made of leather and string, it's easily thrown but does little " +"damage. You could take it apart into leather if you wanted." msgstr "" -#. ~ Description for {'str': 'tanto'} #: lang/json/GENERIC_from_json.py -msgid "" -"Long Japanese knives like this more-modern remake were the samurai's backup " -"weapon, before the advent of the larger wakizashi. This one doesn't feel " -"well-balanced" +msgid "basketball" +msgid_plural "basketballs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'basketball'} +#: lang/json/GENERIC_from_json.py +msgid "A high-quality indoor basketball. You may throw it at zombies." msgstr "" #: lang/json/GENERIC_from_json.py -#: lang/json/TOOL_from_json.py -msgid "nodachi" -msgid_plural "nodachi" +msgid "volleyball" +msgid_plural "volleyballs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'nodachi'} +#. ~ Description for {'str': 'volleyball'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a dull, cheaply made replica of a huge, curved, two-handed sword " -"from Japan. It is surprisingly light for its size." +msgid "A standard regulation volleyball." msgstr "" -#. ~ Description for {'str_sp': 'nodachi'} +#: lang/json/GENERIC_from_json.py +msgid "beach volleyball" +msgid_plural "volleyballs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'beach volleyball', 'str_pl': 'volleyballs'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a huge, curved, two-handed sword from Japan. It is surprisingly " -"light for its size, but also much bendier than a sword should be." +"A brightly colored beach volleyball. It is slightly larger than a regular " +"white one." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fencing foil" -msgid_plural "fencing foils" +msgid "hockey puck" +msgid_plural "hockey pucks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fencing foil'} +#. ~ Description for {'str': 'hockey puck'} #: lang/json/GENERIC_from_json.py msgid "" -"A weapon used for fencing, the most noble of all sports. Unfortunately, a " -"fencing foil is rather useless as a weapon, due to its flexible shaft and " -"dull tip." +"A heavy circular block of solid rubber, normally used for playing hockey. " +"You can throw it to cause some serious harm." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fencing épée" -msgid_plural "fencing épées" +msgid "makeshift bayonet" +msgid_plural "makeshift bayonets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fencing épée'} +#. ~ Description for {'str': 'makeshift bayonet'} #: lang/json/GENERIC_from_json.py msgid "" -"A weapon used for fencing, the most noble of all sports. The épée is the " -"heaviest and stiffest of the fencing weapons, and therefore perhaps the most " -"useful." +"A makeshift version of a bayonet that consists of a mere spike with some " +"string." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fencing saber" -msgid_plural "fencing sabers" +msgid "war flail" +msgid_plural "war flails" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fencing saber'} +#. ~ Description for {'str': 'war flail'} #: lang/json/GENERIC_from_json.py msgid "" -"A weapon used for fencing, the most noble of all sports. The fencing saber " -"is marginally shorter than the foil and épée, but no less effective." +"This is a stout pole with a large steel flanged mace head on a short chain " +"attached to it, based on the peasant flail agricultural tool except now with " +"a metal head and made to thresh people in metal armor rather than grain." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sharpened foil" -msgid_plural "sharpened foils" +msgid "peasant flail" +msgid_plural "peasant flails" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sharpened foil'} +#. ~ Description for {'str': 'peasant flail'} #: lang/json/GENERIC_from_json.py msgid "" -"This once mostly harmless fencing foil has had its electrical plunger " -"assembly removed and has been crudely sharpened to a point. Though it still " -"lacks a cutting edge, it is now somewhat more lethal, yet still familiar to " -"the practiced fencer." +"This is a stout pole with a wooden club on a leather cord attached to it, " +"this is a tool used to thresh wheat and occasionally people when the " +"peasants got angry at their feudal lords." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sharpened épée" -msgid_plural "sharpened épées" +msgid "baseball bat" +msgid_plural "baseball bats" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sharpened épée'} +#. ~ Description for {'str': 'baseball bat'} #: lang/json/GENERIC_from_json.py -msgid "" -"This once mostly harmless fencing épée has had its electrical plunger " -"assembly removed and has been crudely sharpened to a point. Though it still " -"lacks a cutting edge, it is now considerably more lethal, yet still familiar " -"to the practiced fencer." +msgid "A sturdy wood bat. Makes a great melee weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sharpened saber" -msgid_plural "sharpened sabers" +msgid "aluminum bat" +msgid_plural "aluminum bats" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sharpened saber'} +#. ~ Description for {'str': 'aluminum bat'} #: lang/json/GENERIC_from_json.py msgid "" -"This once mostly harmless fencing saber has had its rounded tip snapped off " -"and has been crudely sharpened to a point. Though it still lacks a cutting " -"edge, it is now considerably more lethal, yet still familiar to the " -"practiced fencer." +"An aluminum baseball bat, lighter than a wooden bat and a little easier to " +"swing as a result." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hollow cane" -msgid_plural "hollow canes" +msgid "foam rubber bat" +msgid_plural "foam rubber bats" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hollow cane'} +#. ~ Description for {'str': 'foam rubber bat'} #: lang/json/GENERIC_from_json.py msgid "" -"A cane designed to conceal blade. This was a popular fashion accessory for " -"the wealthy during the 18th and 19th centuries." +"A baseball bat made out of foam rubber with a plastic handle. Light, well-" +"balanced, and easy to wield, but almost completely ineffective." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sword cane" -msgid_plural "sword canes" +msgid "expandable baton" +msgid_plural "expandable batons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sword cane'} +#. ~ Use action menu_text for {'str': 'expandable baton'}. #: lang/json/GENERIC_from_json.py -msgid "A sword with a thin blade designed to be hidden inside a hollow cane." +msgid "Expand" msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "cutlass" -msgid_plural "cutlasses" -msgstr[0] "" -msgstr[1] "" +#. ~ Use action msg for {'str': 'expandable baton'}. +#: lang/json/GENERIC_from_json.py +msgid "You snap open your baton." +msgstr "" -#. ~ Description for {'str': 'cutlass', 'str_pl': 'cutlasses'} +#. ~ Description for {'str': 'expandable baton'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply made replica of a broad saber known for its use by " -"sailors and pirates." +"A telescoping baton that collapses for easy storage. Makes an excellent " +"melee weapon. Activate to expand." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "katana" -msgid_plural "katanas" +#: lang/json/GENERIC_from_json.py +msgid "expandable baton (extended)" +msgid_plural "expandable batons (extended)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'katana'} +#. ~ Use action menu_text for {'str': 'expandable baton (extended)', 'str_pl': 'expandable batons (extended)'}. #: lang/json/GENERIC_from_json.py -msgid "This is a dull, cheaply made replica of a rare sword from Japan." +msgid "Collapse" msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "zweihänder" -msgid_plural "zweihänders" -msgstr[0] "" -msgstr[1] "" +#. ~ Use action msg for {'str': 'expandable baton (extended)', 'str_pl': 'expandable batons (extended)'}. +#: lang/json/GENERIC_from_json.py +msgid "You collapse your baton." +msgstr "" -#. ~ Description for {'str': 'zweihänder'} +#. ~ Description for {'str': 'expandable baton (extended)', 'str_pl': 'expandable batons (extended)'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply made replica of a huge two-handed sword from " -"Germany. It still packs a wallop." +"A telescoping baton that collapses for easy storage. Makes an excellent " +"melee weapon. Activate to collapse." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py -msgid "broadsword" -msgid_plural "broadswords" +msgid "battle axe" +msgid_plural "battle axes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broadsword'} +#. ~ Description for {'str': 'battle axe'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheaply made replica of an early modern sword seeing use in " -"the 16th, 17th, and 18th centuries. Called 'broad' to contrast with the " -"slimmer rapiers." +"This is a dull, cheaply made replica of a massive axe designed for warfare." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -msgid "cavalry saber" -msgid_plural "cavalry sabers" +#: lang/json/GENERIC_from_json.py +msgid "blackjack" +msgid_plural "blackjacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cavalry saber'} +#. ~ Description for {'str': 'blackjack'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheap replica of a curved sword associated with cavalry, " -"from the Early Modern period onwards." +"This is a short, easily concealed bludgeoning weapon consisting of a weight " +"embedded at the end of a short leather shaft. Formerly used by law " +"enforcement, this weapon is meant to stun or knock out the subject, although " +"head strikes have a high risk of causing a permanent, disabling brain injury " +"or being fatal." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -msgid "rapier" -msgid_plural "rapiers" +#: lang/json/GENERIC_from_json.py +msgid "bokken" +msgid_plural "bokkens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'rapier'} +#. ~ Description for {'str': 'bokken'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a blunted, cheap replica of a thin sword with an ornate hand guard. " -"It looks like the preferred weapon of gentlemen and swashbucklers. Light " -"and quick, it makes any battle a stylish battle." +"This is a solid wood 'training' katana, exactingly crafted to mimic the " +"weight and balance of the real thing. Despite its lack of a sharp metal " +"edge, it's still quite capable of inflicting deadly wounds." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -#: lang/json/TOOL_from_json.py -msgid "wakizashi" -msgid_plural "wakizashi" -msgstr[0] "" -msgstr[1] "" +#. ~ Description for {'str': 'bokken'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a solid wood 'training' katana, but feels far too light to make an " +"effective weapon." +msgstr "" -#. ~ Description for {'str_sp': 'wakizashi'} +#. ~ Description for {'str': 'bokken'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheap replica of the more common wakizashi. Smaller and " -"lighter than a katana, but still effective in combat." +"This is a solid wood 'training' katana, but it looks to be mass-produced, " +"and not quite as effective as the real deal." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py -msgid "kris" -msgid_plural "krises" +#: lang/json/GENERIC_from_json.py +msgid "The 7-10 Split" +msgid_plural "7-10 Splits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'kris', 'str_pl': 'krises'} +#. ~ Description for {'str': 'The 7-10 Split', 'str_pl': '7-10 Splits'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a dull, cheap replica of a wavy bladed dagger that comes from " -"Southeast Asia." +"An improvised weapon, made from two spikes attached to a bowling pin in the " +"shape of a 'T'." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lajatang" -msgid_plural "lajatangs" +msgid "bowling pin" +msgid_plural "bowling pins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lajatang'} +#. ~ Description for {'str': 'bowling pin'} #: lang/json/GENERIC_from_json.py -msgid "" -"An exotic weapon comprised of a long pole of wood with curved blades on each " -"end. It can be deadly in skilled hands." +msgid "A blunt bowling pin. Makes a decent melee weapon, if somewhat short." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tiger claws" -msgid_plural "tiger claws" +msgid "barbed wire bat" +msgid_plural "barbed wire bats" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'tiger claws'} +#. ~ Description for {'str': 'barbed wire bat'} #: lang/json/GENERIC_from_json.py -msgid "" -"Also called bagh nakha or iron paw, this is a small claw-like bladed weapon " -"from India designed to be concealed under and against the palm." +msgid "A baseball bat wrapped with barbed wire. A brutal melee weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cestus" -msgid_plural "cestuses" +msgid "walking cane" +msgid_plural "walking canes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cestus', 'str_pl': 'cestuses'} +#. ~ Description for {'str': 'walking cane'} #: lang/json/GENERIC_from_json.py msgid "" -"A leather hand and arm wrap incorporating metal plates over the knuckles to " -"improve punching power and defence." +"Handicapped or not, you always walk in style. Consisting of a metal " +"headpiece and a wooden body, this makes a great bashing weapon in a pinch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pair of brass knuckles" -msgid_plural "pairs of brass knuckles" +msgid "cudgel" +msgid_plural "cudgels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pair of brass knuckles', 'str_pl': 'pairs of brass knuckles'} +#. ~ Description for {'str': 'cudgel'} #: lang/json/GENERIC_from_json.py msgid "" -"A metal weapon made of brass, designed to be gripped in the palm and cause " -"punches to do extra damage. A good, quick weapon - but you have to get " -"within punching range to use it." +"A slender long rod of wood, while traditionally intended as a training tool " +"for many dueling moves, it still makes a good melee weapon in a pinch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "razorbar katar" -msgid_plural "razorbar katars" +msgid "makeshift macuahuitl" +msgid_plural "makeshift macuahuitls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'razorbar katar'} +#. ~ Description for {'str': 'makeshift macuahuitl'} #: lang/json/GENERIC_from_json.py msgid "" -"Five pieces of rebar sharpened to cruel points and strapped to a brace " -"fastened at wrist and forearm on both arms. The next bub better watch out." +"A flat wooden club with sharpened pieces of stone sticking to both of its " +"sides." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pair of nail knuckles" -msgid_plural "pairs of nail knuckles" +msgid "glass shiv" +msgid_plural "glass shivs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pair of nail knuckles', 'str_pl': 'pairs of nail knuckles'} +#. ~ Description for {'str': 'glass shiv'} #: lang/json/GENERIC_from_json.py -msgid "" -"A pair of knuckles consisting of two small squares of wood with several " -"nails coming through them. Useful in nasty street fights." +msgid "A glass shard with wrapping at one end so it can be safely wielded." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pair of steel knuckles" -msgid_plural "pairs of steel knuckles" +msgid "golf club" +msgid_plural "golf clubs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pair of steel knuckles', 'str_pl': 'pairs of steel knuckles'} +#. ~ Description for {'str': 'golf club'} #: lang/json/GENERIC_from_json.py msgid "" -"A mass of scrap metal crudely beat into shape, with folded rags underneath " -"to protect the wearers knuckles. A good, quick weapon - but you have to get " -"within punching range to use it." +"A long handle with a big metal head, flat on one side, for driving golf " +"balls. Fore!" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "punch dagger" -msgid_plural "punch daggers" +msgid "sledge hammer" +msgid_plural "sledge hammers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'punch dagger'} +#. ~ Description for {'str': 'sledge hammer'} #: lang/json/GENERIC_from_json.py msgid "" -"A short and sharp double-edged dagger made to be gripped in the palm, with " -"the blade protruding between the fingers." +"A large, heavy hammer. Makes an acceptable melee weapon for the very " +"strong, but is nearly useless in the hands of the weak." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "explosive arrowhead" -msgid_plural "explosive arrowheads" +msgid "short sledge hammer" +msgid_plural "short sledge hammers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'explosive arrowhead'} +#. ~ Description for {'str': 'short sledge hammer'} #: lang/json/GENERIC_from_json.py msgid "" -"This simple IED is designed to be attached to an arrow and detonate on " -"impact." +"A shorter sledge hammer, still as weighty, however, due to the same steel " +"head. Worse as a melee weapon but is a more portable tool." msgstr "" -#: lang/json/GENERIC_from_json.py src/artifact.cpp -msgid "disc" -msgid_plural "discs" +#: lang/json/GENERIC_from_json.py +msgid "engineer's hammer" +msgid_plural "engineer's hammers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'disc'} +#. ~ Description for {'str': "engineer's hammer"} #: lang/json/GENERIC_from_json.py msgid "" -"A plastic disc made for playing disc golf, it is smaller and denser then a " -"normal frisbee." +"A stout and hefty hammer, more akin to a sledge than a typical ball-peen. " +"Useful for portable demolition work, but is very unwieldy as a weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "frisbee" -msgid_plural "frisbees" +msgid "heavy sledge hammer" +msgid_plural "heavy sledge hammers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'frisbee'} +#. ~ Description for {'str': 'heavy sledge hammer'} #: lang/json/GENERIC_from_json.py -msgid "A plastic frisbee made for outdoor games." +msgid "" +"A large sledge hammer with a massive, heavy head. This unwieldy tool is " +"meant to break concrete, rock, brick, anything really." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lawn dart" -msgid_plural "lawn darts" +msgid "hockey stick" +msgid_plural "hockey sticks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lawn dart'} +#. ~ Description for {'str': 'hockey stick'} #: lang/json/GENERIC_from_json.py -msgid "A large plastic dart made for outdoor games." +msgid "" +"A curved wooden stick with a wide and flat end. Commonly used by hockey " +"players." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "throwing axe" -msgid_plural "throwing axes" +msgid "homewrecker" +msgid_plural "homewreckers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'throwing axe'} +#. ~ Description for {'str': 'homewrecker'} #: lang/json/GENERIC_from_json.py msgid "" -"A lightweight hatchet made for throwing. Its ineffective cutting edge and " -"light weight makes it unsuitable for use as a tool." +"A long piece of wood with several chunks of steel firmly tied to it. The " +"resulting weapon is unwieldy and slow but very heavy hitting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "throwing knife" -msgid_plural "throwing knives" +msgid "ironshod quarterstaff" +msgid_plural "ironshod quarterstaves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'throwing knife', 'str_pl': 'throwing knives'} +#. ~ Description for {'str': 'ironshod quarterstaff', 'str_pl': 'ironshod quarterstaves'} #: lang/json/GENERIC_from_json.py msgid "" -"A thin and flat knife made for throwing. Its ineffective cutting edge and " -"odd shape makes it unsuitable for use as a tool." +"A smooth and sturdy staff with a leather-wrapped grip, which has been " +"reinforced with metal bands and caps. Durable and well-balanced, it is " +"surprisingly easy to handle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "alien resin chunk" -msgid_plural "alien resin chunks" +msgid "lucerne hammer" +msgid_plural "lucerne hammers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'alien resin chunk'} +#. ~ Description for {'str': 'lucerne hammer'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a shattered fragment of alien resin. It looks a bit like a large " -"piece of sea glass, frosted and gritty with the edges rounded off. It is " -"somewhat warm to the touch." +"This is a versatile polearm with a spiked hammer head, a spike, and a hook " +"attached to a long stick." msgstr "" +#. ~ Description for {'str': 'lucerne hammer'} #: lang/json/GENERIC_from_json.py -msgid "sheet of glass" -msgid_plural "sheets of glass" +msgid "" +"This is a cheap piece of crap imitation of a versatile polearm with a spiked " +"hammer head, probably used for LARPing" +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "mace" +msgid_plural "maces" msgstr[0] "" msgstr[1] "" -#. ~ Use action done_message for {'str': 'sheet of glass', 'str_pl': 'sheets of glass'}. +#. ~ Description for {'str': 'mace'} #: lang/json/GENERIC_from_json.py msgid "" -"You break the pane and place the shards on the ground, ready to be cracked " -"by something passing by." +"A medieval weapon consisting of a wood handle with a heavy iron end. It is " +"heavy and slow, but its crushing damage is devastating." msgstr "" -#. ~ Description for {'str': 'sheet of glass', 'str_pl': 'sheets of glass'} +#. ~ Description for {'str': 'mace'} #: lang/json/GENERIC_from_json.py msgid "" -"A large sheet of glass. Easily shattered. Useful for repairing windows." +"A light, cheaply made replica of a medieval weapon that would normally " +"consist of a wood handle with a heavy iron end." msgstr "" +#. ~ Description for {'str': 'mace'} #: lang/json/GENERIC_from_json.py -msgid "sheet of reinforced glass" -msgid_plural "sheets of reinforced glass" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'sheet of reinforced glass', 'str_pl': 'sheets of reinforced glass'} -#: lang/json/GENERIC_from_json.py -msgid "A large sheet of glass strengthened with steel wiring." +msgid "" +"A medieval weapon consisting of a wood handle with a heavy iron end. That " +"iron end feels a bit loose." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pane of reinforced glass" -msgid_plural "panes of reinforced glass" +msgid "makeshift sap" +msgid_plural "makeshift saps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pane of reinforced glass', 'str_pl': 'panes of reinforced glass'} +#. ~ Description for {'str': 'makeshift sap'} #: lang/json/GENERIC_from_json.py -msgid "A small pane of glass strengthened with steel wiring." +msgid "" +"This is an improvised sap, also known as a cosh, slapjack and slapper. A " +"short and flat bludgeoning weapon consisting of a weight embedded between " +"two patches of leather." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sheet of tempered glass" -msgid_plural "sheets of tempered glass" +msgid "Mjölnir" +msgid_plural "Mjölnirs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sheet of tempered glass', 'str_pl': 'sheets of tempered glass'} +#. ~ Description for {'str': 'Mjölnir'} #: lang/json/GENERIC_from_json.py msgid "" -"A large, durable sheet of tempered glass, approximately six millimeters " -"thick. A common type of safety glass with the curious property of breaking " -"into small, non-lethal pieces upon shattering." +"A large hammer, forged from the heart of a dying star. It bears the " +"inscription:\n" +"\n" +"Whosoever holds this hammer,\n" +"If he be worthy,\n" +"Shall possess the power to…\n" +"CRUSH!'" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "peephole" -msgid_plural "peepholes" +msgid "morningstar" +msgid_plural "morningstars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'peephole'} +#. ~ Description for {'str': 'morningstar'} #: lang/json/GENERIC_from_json.py msgid "" -"A metal cylinder with a small lens inside intended to be installed on a door." +"A medieval weapon consisting of a wood handle with a heavy, spiked iron ball " +"on the end. It deals devastating crushing damage, with a small amount of " +"piercing to boot." msgstr "" +#. ~ Description for {'str': 'morningstar'} #: lang/json/GENERIC_from_json.py -msgid "mesh screen" -msgid_plural "mesh screens" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A light, cheaply made replica of a medieval weapon that would normally " +"consist of a wood handle with a heavy, spiked iron ball on the end." +msgstr "" -#. ~ Description for {'str': 'mesh screen'} +#. ~ Description for {'str': 'morningstar'} #: lang/json/GENERIC_from_json.py -msgid "A roll of fine mesh screen for bug barriers on porches." +msgid "" +"A medieval weapon consisting of a wood handle with a heavy, spiked iron ball " +"on the end. That end feels lighter than it should." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pipe" -msgid_plural "pipes" +msgid "nail bat" +msgid_plural "nail bats" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pipe'} -#. ~ Description for TEST pipe +#. ~ Description for {'str': 'nail bat'} #: lang/json/GENERIC_from_json.py msgid "" -"A steel pipe, makes a good melee weapon. Useful in a few crafting recipes." +"A baseball bat with several nails driven through it, an excellent melee " +"weapon." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "spike" -msgid_plural "spikes" +#: lang/json/GENERIC_from_json.py +msgid "nailboard" +msgid_plural "nailboards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'spike'} +#. ~ Description for {'str': 'nailboard'} #: lang/json/GENERIC_from_json.py msgid "" -"A large and slightly misshapen spike, could do some damage mounted on a " -"vehicle." +"A long piece of wood with several nails through one end; essentially a " +"simple mace. Makes an acceptable melee weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "copper tubing" -msgid_plural "copper tubings" +msgid "pool cue" +msgid_plural "pool cues" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'copper tubing'} +#. ~ Description for {'str': 'pool cue'} #: lang/json/GENERIC_from_json.py msgid "" -"A copper tube, too thin to be much use as a melee weapon, but will do if " -"nothing else is available. Useful in a few crafting recipes." +"A hard-wood stick designed for hitting colorful balls around a felt table. " +"Truly, the coolest of sports." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "aluminum ingot" -msgid_plural "aluminum ingots" +msgid "PR-24 baton (extended)" +msgid_plural "PR-24 batons (extended)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'aluminum ingot'} +#. ~ Use action menu_text for {'str': 'PR-24 baton (extended)', 'str_pl': 'PR-24 batons (extended)'}. #: lang/json/GENERIC_from_json.py -msgid "" -"A small aluminum ingot, standardized for further processing. Light but " -"durable, this could be cast into various shapes for construction or ground " -"down to a powder, for more… high-profile applications." +msgid "Retract" msgstr "" +#. ~ Use action msg for {'str': 'PR-24 baton (extended)', 'str_pl': 'PR-24 batons (extended)'}. #: lang/json/GENERIC_from_json.py -msgid "scrap copper" -msgid_plural "scrap copper" -msgstr[0] "" -msgstr[1] "" +msgid "You collapse your PR-24 baton." +msgstr "" -#. ~ Description for {'str_sp': 'scrap copper'} +#. ~ Description for {'str': 'PR-24 baton (extended)', 'str_pl': 'PR-24 batons (extended)'} #: lang/json/GENERIC_from_json.py -msgid "A small chunk of copper, usable for crafting or repairs." +msgid "" +"The Monadnock PR-24 baton is a collapsible, lightweight, side-handle baton " +"used by law enforcement all over the world. The PR designation is rumored " +"to mean Public Relations. Activate to retract." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bee sting" -msgid_plural "bee stings" +msgid "PR-24 baton (retracted)" +msgid_plural "PR-24 batons (retracted)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bee sting'} +#. ~ Use action menu_text for {'str': 'PR-24 baton (retracted)', 'str_pl': 'PR-24 batons (retracted)'}. #: lang/json/GENERIC_from_json.py -msgid "A six-inch stinger from a giant bee. Makes a mediocre melee weapon." +msgid "Extend" msgstr "" +#. ~ Use action msg for {'str': 'PR-24 baton (retracted)', 'str_pl': 'PR-24 batons (retracted)'}. #: lang/json/GENERIC_from_json.py -msgid "broom" -msgid_plural "brooms" -msgstr[0] "" -msgstr[1] "" +msgid "You snap open your PR-24 baton." +msgstr "" -#. ~ Description for {'str': 'broom'} +#. ~ Description for {'str': 'PR-24 baton (retracted)', 'str_pl': 'PR-24 batons (retracted)'} #: lang/json/GENERIC_from_json.py msgid "" -"A long-handled broom. Makes a terrible weapon unless you're chasing cats." +"The Monadnock PR-24 baton is a collapsible, lightweight, side-handle baton " +"used by law enforcement all over the world. The PR designation is rumored " +"to mean Public Relations. Activate to extend." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ceramic shard" -msgid_plural "ceramic shards" +msgid "quarterstaff" +msgid_plural "quarterstaves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ceramic shard'} +#. ~ Description for {'str': 'quarterstaff', 'str_pl': 'quarterstaves'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken ceramic shard. It is heavy and has a somewhat sharp edge, but it's " -"too irregular to cut properly." +"A smooth and sturdy staff with a leather-wrapped grip. Light and well-" +"balanced, it is surprisingly easy to handle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fungal fighter sting" -msgid_plural "fungal fighter stings" +msgid "rock in a sock" +msgid_plural "rocks in socks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fungal fighter sting'} +#. ~ Description for {'str': 'rock in a sock', 'str_pl': 'rocks in socks'} #: lang/json/GENERIC_from_json.py -msgid "A short dart from a fungal fighter. Makes a poor melee weapon." +msgid "A pair of nested socks filled with a stone. A true weapon of despair." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "mattress" -msgid_plural "mattresses" +#: lang/json/GENERIC_from_json.py +msgid "plastic shank" +msgid_plural "plastic shanks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mattress', 'str_pl': 'mattresses'} +#. ~ Description for {'str': 'plastic shank'} #: lang/json/GENERIC_from_json.py -msgid "This is a single, or twin, sized mattress." +msgid "" +"An oblong plastic trinket with the far end ground down into a stabbing point." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "down mattress" -msgid_plural "down mattresses" +#: lang/json/GENERIC_from_json.py +msgid "shillelagh" +msgid_plural "shillelaghs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'down mattress', 'str_pl': 'down mattresses'} +#. ~ Description for {'str': 'shillelagh'} #: lang/json/GENERIC_from_json.py -msgid "This is a single, or twin, sized down filled mattress." +msgid "" +"A stout knotty stick with a large knob at the top that has been left to cure " +"in a chimney. A traditional Irish weapon, the shillelagh was originally " +"used for settling disputes in a gentlemanly manner." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sharp rock" -msgid_plural "sharp rocks" +msgid "loaded stick" +msgid_plural "loaded sticks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sharp rock'} +#. ~ Description for {'str': 'loaded stick'} #: lang/json/GENERIC_from_json.py msgid "" -"A rock with sharp edges, that can be used as a butchering tool, if nothing " -"else is available. Makes a passable melee weapon." +"A stout knotty stick with a large knob at the top that has been left to cure " +"in a chimney. A traditional Irish weapon, the shillelagh was originally " +"used for settling disputes in a gentlemanly manner. The knob has been " +"hollowed and filled with molten heavy metal to pack more of a punch." msgstr "" +#. ~ Description for {'str': 'shillelagh'} #: lang/json/GENERIC_from_json.py -msgid "ESAPI ballistic plate" -msgid_plural "ESAPI ballistic plates" +msgid "" +"A fake shillelagh massproduced as a souvenir for tourists. This knotty " +"stick has not been cured in a chimney like a traditional shillelagh but has " +"had fake black soot painted on." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "tonfa" +msgid_plural "tonfas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ESAPI ballistic plate'} +#. ~ Description for {'str': 'tonfa'} #: lang/json/GENERIC_from_json.py msgid "" -"A polygonal ceramic ballistic plate with a slightly concave profile. Its " -"inner surface is coated with Ultra High Molecular Weight Polyethylene, and " -"is labelled \"TOP\", while its outer surface is labelled \"STRIKE FACE\". " -"This is intended to be worn in a ballistic vest and can withstand several " -"high energy rifle rounds before breaking." +"A hard plastic truncheon commonly employed by police. Originally an " +"Okinawan weapon, it consists of a stick with a perpendicular handle attached " +"a third of the way down its length." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ESBI ballistic plate" -msgid_plural "ESBI ballistic plates" +msgid "wooden tonfa" +msgid_plural "wooden tonfas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ESBI ballistic plate'} +#. ~ Description for {'str': 'wooden tonfa'} #: lang/json/GENERIC_from_json.py msgid "" -"A polygonal ceramic ballistic plate with a slightly concave profile. " -"\"STRIKE FACE\" is printed on its outer surface. This is designed to be " -"worn in the sides of a plate carrier and can withstand several high energy " -"rifle rounds before breaking." +"A stout wooden truncheon of the sort commonly employed by police. " +"Originally an Okinawan weapon, it consists of a stick with a perpendicular " +"handle attached a third of the way down its length." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "grenade launcher buttstock" -msgid_plural "grenade launcher buttstocks" +msgid "war hammer" +msgid_plural "war hammers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'grenade launcher buttstock'} +#. ~ Description for {'str': 'war hammer'} #: lang/json/GENERIC_from_json.py msgid "" -"A collapsible buttstock designed for the M320 grenade launcher. When " -"combined with this stock, the M320 can be used as a standalone weapon" +"A medieval hammer made for battle. Its odd shape and balance make it an " +"excellent weapon, but an ineffective tool." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wasp sting" -msgid_plural "wasp stings" +msgid "bionic claws" +msgid_plural "bionic claws" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wasp sting'} +#. ~ Description for {'str_sp': 'bionic claws'} #: lang/json/GENERIC_from_json.py -msgid "A six-inch stinger from a giant wasp. Makes a poor melee weapon." +msgid "Short and sharp claws made from a high-tech metal." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic sheet" -msgid_plural "plastic sheets" +msgid "monomolecular blade" +msgid_plural "monomolecular blades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic sheet'} +#. ~ Description for {'str': 'monomolecular blade'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a large sheet of heavy flexible plastic, the sort that might have " -"been used for commercial wrapping or for weather-sealing a home." +"A foot-long blade made from high-tech alloy and edged with bonded " +"nanocrystals." msgstr "" -#. ~ Description for plastic sheet +#: lang/json/GENERIC_from_json.py +msgid "bullwhip" +msgid_plural "bullwhips" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'bullwhip'} #: lang/json/GENERIC_from_json.py msgid "" -"A large, rigid sheet of translucent plastic, useful for all manner of " -"things; from construction to art, or even junior snowboarding." +"A long strip of braided leather with a handle on one end. Originally " +"developed to settle disagreements with cattle, it's better used now for " +"flaying the rotten flesh off of walking corpses. Great for when a problem " +"comes along." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "log" -msgid_plural "logs" +msgid "pitchfork" +msgid_plural "pitchforks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'log'} +#. ~ Description for {'str': 'pitchfork'} #: lang/json/GENERIC_from_json.py msgid "" -"A large chunk of log, cut from a tree. (a)ctivate a wood axe or wood saw to " -"cut it into planks." +"An agricultural tool with long wooden shaft and four spikes. Is used to " +"lift hay." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "splintered wood" -msgid_plural "splintered wood" +msgid "pointy stick" +msgid_plural "pointy sticks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'splintered wood'} +#. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py -msgid "A splintered piece of wood, could be used as a skewer or for kindling." +msgid "A simple wood pole with one end sharpened." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" +msgid "wooden spear" +msgid_plural "wooden spears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'wooden spear'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." +msgid "A stout pole with an improvised grip and a fire-hardened point." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" +msgid "forked spear" +msgid_plural "forked spears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'forked spear'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." +"A wooden pole with three spikes tied to it and decent grip. It's " +"specialized for catching weapons, and not intended for extended use in " +"combat." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long pole" -msgid_plural "long poles" +msgid "copper spear" +msgid_plural "copper spears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'long pole'} +#. ~ Description for {'str': 'copper spear'} #: lang/json/GENERIC_from_json.py -msgid "" -"A stout, ten-foot pole. Could be used similarly to a spear. The Cataclysm " -"gives fresh meaning to walking softly and carrying a big stick." +msgid "A stout wooden pole with a spearhead worked from copper." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plank" -msgid_plural "planks" +msgid "steel spear" +msgid_plural "steel spears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank +#. ~ Description for {'str': 'steel spear'} #: lang/json/GENERIC_from_json.py -msgid "" -"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional " -"lumber. Makes a decent melee weapon, and can be used for all kinds " -"construction." +msgid "A stout wooden pole with a hand-forged steel spearhead." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "heavy wooden beam" -msgid_plural "heavy wooden beams" +msgid "pipe spear" +msgid_plural "pipe spears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'heavy wooden beam'} +#. ~ Description for {'str': 'pipe spear'} #: lang/json/GENERIC_from_json.py -msgid "" -"An enormous beam of solid wood, very heavy and hard to lug around, but also " -"very sturdy for construction. You could saw or chop it into smaller pieces, " -"like planks or panels." +msgid "A stout metal pole with a sharp point." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wooden panel" -msgid_plural "wooden panels" +msgid "sharpened rebar" +msgid_plural "sharpened rebars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wooden panel'} +#. ~ Description for {'str': 'sharpened rebar'} #: lang/json/GENERIC_from_json.py -msgid "" -"A wide, thin wooden board - plywood, OSB, MDF, tongue-in-groove boards, or " -"similar, already cut to shape. These large flat boards are good for all " -"kinds of construction, but for really big projects you'd need a proper sheet " -"of uncut plywood or the like." +msgid "A somewhat sharpened piece of rebar." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "large wooden sheet" -msgid_plural "large wooden sheets" +msgid "qiang" +msgid_plural "qiangs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'large wooden sheet'} +#. ~ Description for {'str': 'qiang'} #: lang/json/GENERIC_from_json.py msgid "" -"A standard 4x8 sheet of flat wood - usually plywood, OSB, or MDF. Heavy and " -"bulky, this is extremely useful for all manner of construction, but you " -"might have to cut it to size before doing smaller projects." +"An ancient Chinese spear, typically with a tassel just below the spearhead. " +"One of the four major weapons in folklore, alongside the dao sabre, jian " +"sword, and gun staff." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" +msgid "halberd" +msgid_plural "halberds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel bottle'} +#. ~ Description for {'str': 'halberd'} #: lang/json/GENERIC_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." +msgid "" +"This is a versatile polearm with an axe blade, a spike, and other fun things " +"attached to a long stick." msgstr "" +#. ~ Description for {'str': 'halberd'} #: lang/json/GENERIC_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" +msgid "" +"This is a dull, cheaply made replica of a polearm with an axe blade, a " +"spike, and other fun things attached to a long stick." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "glaive" +msgid_plural "glaives" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'foldable plastic bottle'} +#. ~ Description for {'str': 'glaive'} #: lang/json/GENERIC_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgid "A sturdy polearm with a sizable, single-edged blade on the end." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "atomic coffee maker" -msgid_plural "atomic coffee makers" +msgid "naginata" +msgid_plural "naginata" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'atomic coffee maker'} +#. ~ Description for {'str_sp': 'naginata'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a Curie-G coffeemaker, by CuppaTech. It famously uses a radioactive " -"generator to heat water for coffee. Normally the water is heated using " -"energy stored in a capacitor, and makes ordinary coffee. However, as a " -"special feature, water from the RTG containment area can be used, giving the " -"coffee a very special kick. The Curie-G is illegal in most countries." +"A sturdy polearm with a curved blade, made in the same manner as the katana " +"and other Japanese blades. Occasionally used by samurai in early periods, " +"or by their wives in defense of the household." msgstr "" +#. ~ Description for {'str_sp': 'naginata'} #: lang/json/GENERIC_from_json.py -msgid "can sealer" -msgid_plural "can sealers" -msgstr[0] "" -msgstr[1] "" +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 {'str': 'can sealer'} +#. ~ Description for {'str_sp': 'naginata'} #: lang/json/GENERIC_from_json.py msgid "" -"A hand crank powered cast steel machine designed to automatically seal tin " -"cans." +"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 "clay pot" -msgid_plural "clay pots" +msgid "survivor naginata" +msgid_plural "survivor naginata" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'clay pot'} +#. ~ Description for {'str_sp': 'survivor naginata'} #: lang/json/GENERIC_from_json.py -msgid "A crude clay pot with lid used for cooking." +msgid "" +"This sturdy steel shaft with a sword blade at the end is good for both " +"slashing and stabbing." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "clay quern" -msgid_plural "clay querns" +msgid "wooden javelin" +msgid_plural "wooden javelins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'clay quern'} +#. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py -msgid "This is a simple hand-powered clay quern for grinding grain." +msgid "" +"A fire-hardened wooden spear honed to a sharper point. The grip area has " +"been carved and covered for better grip." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "clay teapot" -msgid_plural "clay teapots" +msgid "iron javelin" +msgid_plural "iron javelins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'clay teapot'} +#. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py -msgid "A clay teapot. Now all you need is tea and water." +msgid "" +"An iron-tipped wooden throwing spear. The grip area has been carved and " +"covered for better grip." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fermenting eggs jar" -msgid_plural "fermenting eggs jars" +msgctxt "weapon" +msgid "wooden pike" +msgid_plural "wooden pikes" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'fermenting eggs jar'}. +#. ~ Description for {'ctxt': 'weapon', 'str': 'wooden pike'} #: lang/json/GENERIC_from_json.py msgid "" -"You examine the batch and see that the pickling solution has done its job, " -"so you seal the jar up for storage." +"This is a medieval weapon consisting of a wood shaft with a fire hardened " +"point." msgstr "" -#. ~ Use action not_ready_msg for {'str': 'fermenting eggs jar'}. #: lang/json/GENERIC_from_json.py -msgid "The eggs are not done yet." -msgstr "" +msgctxt "weapon" +msgid "copper pike" +msgid_plural "copper pikes" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'fermenting eggs jar'} +#. ~ Description for {'ctxt': 'weapon', 'str': 'copper pike'} #: lang/json/GENERIC_from_json.py msgid "" -"This jar contains a batch of eggs in a pickling solution. You can seal up " -"the jar once the process is completed." +"This is a medieval weapon consisting of a wood shaft tipped with a copper " +"spearhead." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sealed yeast culture" -msgid_plural "sealed yeast culture" +msgctxt "weapon" +msgid "pike" +msgid_plural "pikes" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str_sp': 'sealed yeast culture'}. +#. ~ Description for {'ctxt': 'weapon', 'str': 'pike'} #: lang/json/GENERIC_from_json.py -msgid "You open the flask and harvest the culture." +msgid "" +"This is a medieval weapon consisting of a wood shaft tipped with an iron " +"spearhead." msgstr "" -#. ~ Use action not_ready_msg for {'str_sp': 'sealed yeast culture'}. +#. ~ Description for {'ctxt': 'weapon', 'str': 'pike'} #: lang/json/GENERIC_from_json.py -msgid "The yeast isn't done culturing yet." +msgid "" +"This is a dull, cheaply made replica of a medieval weapon consisting of a " +"wood shaft tipped with an iron spearhead." msgstr "" -#. ~ Description for {'str_sp': 'sealed yeast culture'} +#. ~ Description for {'ctxt': 'weapon', 'str': 'pike'} #: lang/json/GENERIC_from_json.py msgid "" -"A sealed flask holding sanitized yeast wort. You may harvest the yeast " -"inside when it's done culturing." +"This is a medieval weapon consisting of a wood shaft tipped with an iron " +"spearhead. The head seems to be pretty dull, and the whole thing feels " +"poorly made." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sealed jar of eggs" -msgid_plural "sealed jars of eggs" +msgid "war scythe" +msgid_plural "war scythes" msgstr[0] "" msgstr[1] "" -#. ~ Use action menu_text for {'str': 'sealed jar of eggs', 'str_pl': 'sealed jars of eggs'}. -#. ~ Use action menu_text for {'str': 'sealed jar of pickles', 'str_pl': 'sealed jars of pickles'}. -#. ~ Use action menu_text for {'str': 'sealed jar of sauerkraut', 'str_pl': 'sealed jars of sauerkraut'}. +#. ~ Description for {'str': 'war scythe'} #: lang/json/GENERIC_from_json.py -msgid "Open jar" +msgid "" +"A pole weapon with a curving single-edged blade. Its blade bears some " +"superficial resemblance to that of an agricultural scythe from which it " +"likely evolved." msgstr "" -#. ~ Use action msg for {'str': 'sealed jar of eggs', 'str_pl': 'sealed jars of eggs'}. -#. ~ Use action msg for {'str': 'sealed jar of pickles', 'str_pl': 'sealed jars of pickles'}. -#. ~ Use action msg for {'str': 'sealed jar of sauerkraut', 'str_pl': 'sealed jars of sauerkraut'}. #: lang/json/GENERIC_from_json.py -msgid "You open the jar, exposing it to the atmosphere." -msgstr "" +msgid "dory" +msgid_plural "dories" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'sealed jar of eggs', 'str_pl': 'sealed jars of eggs'} +#. ~ Description for {'str': 'dory', 'str_pl': 'dories'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a sealed glass jar containing pickled eggs. Use to open and eat to " -"enjoy." +msgid "A well-made spear with a bronze head, Greek in origin." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sealed jar of pickles" -msgid_plural "sealed jars of pickles" +msgid "ji" +msgid_plural "ji" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sealed jar of pickles', 'str_pl': 'sealed jars of pickles'} +#. ~ Description for {'str_sp': 'ji'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a sealed glass jar containing pickles. Use to open and eat to enjoy." +"This is a bronze polearm that originated in the Shang dynasty of China, if " +"not earlier. It combines a spear head with the perpendicular blade of the " +"earlier ge or dagger-axe." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sealed jar of sauerkraut" -msgid_plural "sealed jars of sauerkraut" +msgid "stone spear" +msgid_plural "stone spears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sealed jar of sauerkraut', 'str_pl': 'sealed jars of sauerkraut'} +#. ~ Description for {'str': 'stone spear'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a sealed glass jar containing sauerkraut. Use to open and eat to " -"enjoy." +msgid "A stout wooden pole with a sharp stone spearhead." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" +msgid "2-by-sword" +msgid_plural "2-by-swords" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mess tin'} +#. ~ Description for {'str': '2-by-sword'} #: lang/json/GENERIC_from_json.py msgid "" -"A compact military-style pan and tray, designed for heating food over a fire " -"or portable stove. It is shallower than a proper pot or pan, and lacks the " -"integrated heating elements modern mess kits have." +"A two by four with a cross guard and whittled down point; not much for " +"slashing, but much better than your bare hands." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "milk cream jar" -msgid_plural "milk cream jars" +msgid "nord" +msgid_plural "nords" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'milk cream jar'} +#. ~ Description for {'str': 'nord'} #: lang/json/GENERIC_from_json.py msgid "" -"This jar contains raw milk separated into cream. It is sealed until you are " -"ready to use it." +"The nail sword, or nord for short. This wooden sword has a dozen nails " +"sticking at jagged angles from edge of the blade, making it much better at " +"chopping than slashing." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "rising cream jar" -msgid_plural "rising cream jars" +msgid "crude sword" +msgid_plural "crude swords" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'rising cream jar'}. +#. ~ Description for {'str': 'crude sword'} #: lang/json/GENERIC_from_json.py msgid "" -"You examine the batch and see that the cream has risen to the top, so you " -"seal the jar up for storage." +"Several bits of thin scrap metal crudely beat into the semblance of an edge " +"over a wooden sword. The added weight is unbalanced, but the jagged edge " +"offers a good bit of slashing power." msgstr "" -#. ~ Use action not_ready_msg for {'str': 'rising cream jar'}. -#: lang/json/GENERIC_from_json.py -msgid "The cream has not risen yet." -msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "jian" +msgid_plural "jian" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'rising cream jar'} +#. ~ Description for {'str_sp': 'jian'} #: lang/json/GENERIC_from_json.py msgid "" -"This jar contains raw milk separating into cream. You can seal up the jar " -"once the process is completed." +"This is a dull, cheaply made replica of an ancient Chinese doubled-edged " +"straight sword, with an ornate guard." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "pasta extruder" -msgid_plural "pasta extruders" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "scimitar" +msgid_plural "scimitars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pasta extruder'} +#. ~ Description for {'str': 'scimitar'} #: lang/json/GENERIC_from_json.py msgid "" -"A pasta extruder run by a hand-crank. Useful in making pasta. It comes " -"with various heads to make various kinds of pasta." +"This is a dull, cheaply made replica of a curved sword, associated with " +"various Middle Eastern and Central Asian countries." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fermenting pickle jar" -msgid_plural "fermenting pickle jars" +msgid "estoc" +msgid_plural "estocs" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'fermenting pickle jar'}. -#. ~ Use action msg for {'str': 'fermenting sauerkraut jar'}. +#. ~ Description for {'str': 'estoc'} #: lang/json/GENERIC_from_json.py msgid "" -"You test the batch, and it tastes good, so you seal the jar up for storage." +"This is a thin thrusting sword, a sort of predecessor to the rapier. It " +"requires a larger baldric or scabbard, compared to smaller swords." msgstr "" -#. ~ Use action not_ready_msg for {'str': 'fermenting pickle jar'}. +#. ~ Description for {'str': 'estoc'} #: lang/json/GENERIC_from_json.py -msgid "The pickles are not done fermenting yet." +msgid "" +"This is a thin thrusting sword, a sort of predecessor to the rapier. It " +"requires a larger baldric or scabbard, compared to smaller swords. It seems " +"a bit too bendy." msgstr "" -#. ~ Description for {'str': 'fermenting pickle jar'} +#. ~ Description for {'str': 'estoc'} #: lang/json/GENERIC_from_json.py msgid "" -"This jar contains a batch of pickles set to ferment. You can seal up the " -"jar once the process is completed." +"This is a dull, cheaply-made replica of a thin thrusting sword predating the " +"rapier. It requires a larger baldric or scabbard, compared to smaller " +"swords." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "pressure cooker" -msgid_plural "pressure cookers" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "longsword" +msgid_plural "longswords" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pressure cooker'} +#. ~ Description for {'str': 'longsword'} #: lang/json/GENERIC_from_json.py msgid "" -"Useful for boiling water when cooking spaghetti and more. This sealed pot " -"is designed to cook food at higher pressures and temperatures. Can also be " -"used for pressure sensitive chemical reactions." +"This is a dull, cheaply-made replica of the classic medieval longsword. It " +"requires a larger baldric or scabbard, compared to smaller swords." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "fermenting sauerkraut jar" -msgid_plural "fermenting sauerkraut jars" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "arming sword" +msgid_plural "arming swords" msgstr[0] "" msgstr[1] "" -#. ~ Use action not_ready_msg for {'str': 'fermenting sauerkraut jar'}. -#: lang/json/GENERIC_from_json.py -msgid "The sauerkraut isn't done fermenting yet." -msgstr "" - -#. ~ Description for {'str': 'fermenting sauerkraut jar'} +#. ~ Description for {'str': 'arming sword'} #: lang/json/GENERIC_from_json.py msgid "" -"This jar contains a batch of sauerkraut set to ferment. You can seal up the " -"jar once the process is completed." +"This is a dull, cheaply made replica of a classic medieval sword, just the " +"right size to use one-handed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wicker sieve" -msgid_plural "wicker sieves" +#: lang/json/TOOL_from_json.py +msgid "tanto" +msgid_plural "tantos" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wicker sieve'} +#. ~ Description for {'str': 'tanto'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a primitive sieve constructed from woven strips of plant material. " -"Early sieves like this were used to sift grain, though the openings on this " -"one are too small for that." +"This is a dull, cheaply made replica of a long Japanese knife, typically " +"used as a samurai's backup weapon." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "sieve" -msgid_plural "sieves" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'sieve'} +#. ~ Description for {'str': 'tanto'} #: lang/json/GENERIC_from_json.py msgid "" -"This is no mere strainer for noodles; it's a sieve used to separate " -"particles of certain sizes. You could use this to do a really good job " -"sifting flour, remove dust and soil from grain, or perhaps conduct " -"gradiation tests for any civil engineers you might know. This one has been " -"constructed from steel mesh." +"Long Japanese knives like this more-modern remake were the samurai's backup " +"weapon, before the advent of the larger wakizashi. This one doesn't feel " +"well-balanced" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "teapot" -msgid_plural "teapots" +#: lang/json/TOOL_from_json.py +msgid "nodachi" +msgid_plural "nodachi" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'teapot'} +#. ~ Description for {'str_sp': 'nodachi'} #: lang/json/GENERIC_from_json.py -msgid "A small metal teapot. Teatime wouldn't be complete without one." +msgid "" +"This is a dull, cheaply made replica of a huge, curved, two-handed sword " +"from Japan. It is surprisingly light for its size." msgstr "" +#. ~ Description for {'str_sp': 'nodachi'} #: lang/json/GENERIC_from_json.py -msgid "waffle iron" -msgid_plural "waffle irons" +msgid "" +"This is a huge, curved, two-handed sword from Japan. It is surprisingly " +"light for its size, but also much bendier than a sword should be." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "fencing foil" +msgid_plural "fencing foils" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'waffle iron'} +#. ~ Description for {'str': 'fencing foil'} #: lang/json/GENERIC_from_json.py -msgid "A waffle iron. For making waffles." +msgid "" +"A weapon used for fencing, the most noble of all sports. Unfortunately, a " +"fencing foil is rather useless as a weapon, due to its flexible shaft and " +"dull tip." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fungicidal gas grenade" -msgid_plural "fungicidal gas grenades" +msgid "fencing épée" +msgid_plural "fencing épées" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fungicidal gas grenade'} +#. ~ Description for {'str': 'fencing épée'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a canister grenade filled with fungicidal solution. Use this item " -"to pull the pin and light the fuse, turning it into an active fungicidal " -"grenade. In five turns it will begin to expel a volatile spray that is " -"highly toxic to fungal life forms." +"A weapon used for fencing, the most noble of all sports. The épée is the " +"heaviest and stiffest of the fencing weapons, and therefore perhaps the most " +"useful." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "armed fungicidal gas canister" -msgid_plural "armed fungicidal gas canisters" +msgid "fencing saber" +msgid_plural "fencing sabers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'armed fungicidal gas canister'} +#. ~ Description for {'str': 'fencing saber'} #: lang/json/GENERIC_from_json.py msgid "" -"This fungicidal bomb has had its pin removed and is expelling highly toxic " -"gas." +"A weapon used for fencing, the most noble of all sports. The fencing saber " +"is marginally shorter than the foil and épée, but no less effective." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift fungicidal gas grenade" -msgid_plural "makeshift fungicidal gas grenades" +msgid "sharpened foil" +msgid_plural "sharpened foils" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift fungicidal gas grenade'} +#. ~ Description for {'str': 'sharpened foil'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a makeshift canister grenade filled with fungicidal solution. Use " -"this item to pull the pin and light the fuse, turning it into an active " -"fungicidal grenade. In five turns it will begin to expel a volatile spray " -"that is highly toxic to fungal life forms." +"This once mostly harmless fencing foil has had its electrical plunger " +"assembly removed and has been crudely sharpened to a point. Though it still " +"lacks a cutting edge, it is now somewhat more lethal, yet still familiar to " +"the practiced fencer." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "armed makeshift fungicidal gas canister" -msgid_plural "armed makeshift fungicidal gas canisters" +msgid "sharpened épée" +msgid_plural "sharpened épées" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'armed makeshift fungicidal gas canister'} +#. ~ Description for {'str': 'sharpened épée'} #: lang/json/GENERIC_from_json.py msgid "" -"This makeshift fungicidal bomb has had its pin removed and is expelling " -"highly toxic haze." +"This once mostly harmless fencing épée has had its electrical plunger " +"assembly removed and has been crudely sharpened to a point. Though it still " +"lacks a cutting edge, it is now considerably more lethal, yet still familiar " +"to the practiced fencer." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "canister grenade" -msgid_plural "canister grenades" +msgid "sharpened saber" +msgid_plural "sharpened sabers" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for {'str': 'canister grenade'}. +#. ~ Description for {'str': 'sharpened saber'} #: lang/json/GENERIC_from_json.py -#, no-python-format -msgid "You pull the pin on the %s." +msgid "" +"This once mostly harmless fencing saber has had its rounded tip snapped off " +"and has been crudely sharpened to a point. Though it still lacks a cutting " +"edge, it is now considerably more lethal, yet still familiar to the " +"practiced fencer." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tear gas grenade" -msgid_plural "tear gas grenades" +msgid "hollow cane" +msgid_plural "hollow canes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tear gas grenade'} +#. ~ Description for {'str': 'hollow cane'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a canister grenade filled with noxious irritant. Use this item to " -"pull the pin and light the fuse, turning it into an active tear gas " -"grenade. In five turns it will begin to expel a highly toxic gas for some " -"time. This gas damages and slows those who enter it, as well as obscuring " -"vision and scent." +"A cane designed to conceal blade. This was a popular fashion accessory for " +"the wealthy during the 18th and 19th centuries." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "armed tear gas canister" -msgid_plural "armed tear gas canisters" +msgid "sword cane" +msgid_plural "sword canes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'armed tear gas canister'} +#. ~ Description for {'str': 'sword cane'} #: lang/json/GENERIC_from_json.py -msgid "" -"This smoke bomb has had its pin removed and is expelling highly toxic gas." +msgid "A sword with a thin blade designed to be hidden inside a hollow cane." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "insecticidal gas grenade" -msgid_plural "insecticidal gas grenades" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "cutlass" +msgid_plural "cutlasses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'insecticidal gas grenade'} +#. ~ Description for {'str': 'cutlass', 'str_pl': 'cutlasses'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a canister grenade filled with insecticidal solution. Use this item " -"to pull the pin and light the fuse, turning it into an active insecticidal " -"grenade. In five turns it will begin to expel a volatile spray that is " -"highly toxic to insect life forms." +"This is a dull, cheaply made replica of a broad saber known for its use by " +"sailors and pirates." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "armed insecticidal gas canister" -msgid_plural "armed insecticidal gas canisters" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "katana" +msgid_plural "katanas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'armed insecticidal gas canister'} +#. ~ Description for {'str': 'katana'} #: lang/json/GENERIC_from_json.py -msgid "" -"This insecticidal bomb has had its pin removed and is expelling highly toxic " -"haze." +msgid "This is a dull, cheaply made replica of a rare sword from Japan." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "makeshift insecticidal gas grenade" -msgid_plural "makeshift insecticidal gas grenades" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "zweihänder" +msgid_plural "zweihänders" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift insecticidal gas grenade'} +#. ~ Description for {'str': 'zweihänder'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a makeshift canister grenade filled with insecticidal solution. Use " -"this item to pull the pin and light the fuse, turning it into an active " -"insecticidal grenade. In five turns it will begin to expel a volatile spray " -"that is highly toxic to insect life forms." +"This is a dull, cheaply made replica of a huge two-handed sword from " +"Germany. It still packs a wallop." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "armed makeshift insecticidal gas canister" -msgid_plural "armed makeshift insecticidal gas canisters" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "broadsword" +msgid_plural "broadswords" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'armed makeshift insecticidal gas canister'} +#. ~ Description for {'str': 'broadsword'} #: lang/json/GENERIC_from_json.py msgid "" -"This makeshift insecticidal bomb has had its pin removed and is expelling " -"highly toxic haze." +"This is a dull, cheaply made replica of an early modern sword seeing use in " +"the 16th, 17th, and 18th centuries. Called 'broad' to contrast with the " +"slimmer rapiers." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "smoke bomb" -msgid_plural "smoke bombs" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +msgid "cavalry saber" +msgid_plural "cavalry sabers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'smoke bomb'} +#. ~ Description for {'str': 'cavalry saber'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a canister grenade filled with a variety of pyrotechnic chemicals. " -"Use this item to pull the pin and light the fuse, turning it into an active " -"smoke bomb. Five turns after you do that, it will begin to expel a thick " -"black smoke. This smoke will slow those who enter it, as well as obscuring " -"vision and scent." +"This is a dull, cheap replica of a curved sword associated with cavalry, " +"from the Early Modern period onwards." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "armed smoke bomb" -msgid_plural "armed smoke bombs" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +msgid "rapier" +msgid_plural "rapiers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'armed smoke bomb'} +#. ~ Description for {'str': 'rapier'} #: lang/json/GENERIC_from_json.py -msgid "This smoke bomb has had its pin removed and is expelling thick smoke." +msgid "" +"This is a blunted, cheap replica of a thin sword with an ornate hand guard. " +"It looks like the preferred weapon of gentlemen and swashbucklers. Light " +"and quick, it makes any battle a stylish battle." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "pike pole" -msgid_plural "pike poles" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/TOOL_from_json.py +msgid "wakizashi" +msgid_plural "wakizashi" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pike pole'} +#. ~ Description for {'str_sp': 'wakizashi'} #: lang/json/GENERIC_from_json.py msgid "" -"A durable tool consisting of a sturdy fiberglass shaft tipped with a small " -"steel hook." +"This is a dull, cheap replica of the more common wakizashi. Smaller and " +"lighter than a katana, but still effective in combat." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "fishing hook" -msgid_plural "fishing hooks" +#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +msgid "kris" +msgid_plural "krises" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fishing hook'} +#. ~ Description for {'str': 'kris', 'str_pl': 'krises'} #: lang/json/GENERIC_from_json.py -msgid "A simple fishing hook." +msgid "" +"This is a dull, cheap replica of a wavy bladed dagger that comes from " +"Southeast Asia." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "improvised fishing hook" -msgid_plural "improvised fishing hooks" +msgid "lajatang" +msgid_plural "lajatangs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'improvised fishing hook'} +#. ~ Description for {'str': 'lajatang'} #: lang/json/GENERIC_from_json.py -msgid "An improvised fishing hook carved from wood or bone." +msgid "" +"An exotic weapon comprised of a long pole of wood with curved blades on each " +"end. It can be deadly in skilled hands." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "digging stick" -msgid_plural "digging sticks" +msgid "tiger claws" +msgid_plural "tiger claws" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'digging stick'} +#. ~ Description for {'str_sp': 'tiger claws'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a large stick, with the end carved into a broad blade for digging. " -"It could be used to dig shallow pits, but not deep ones." +"Also called bagh nakha or iron paw, this is a small claw-like bladed weapon " +"from India designed to be concealed under and against the palm." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "atomic lamp" -msgid_plural "atomic lamps" +#: lang/json/GENERIC_from_json.py +msgid "cestus" +msgid_plural "cestuses" msgstr[0] "" msgstr[1] "" -#. ~ Use action menu_text for {'str': 'atomic lamp'}. -#. ~ Use action menu_text for {'str': 'atomic reading light'}. -#. ~ Use action menu_text for magical reading light. -#. ~ Use action menu_text for {'str': 'atomic headlamp'}. +#. ~ Description for {'str': 'cestus', 'str_pl': 'cestuses'} #: lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_ARMOR_from_json.py -msgid "Close cover" +msgid "" +"A leather hand and arm wrap incorporating metal plates over the knuckles to " +"improve punching power and defence." msgstr "" -#. ~ Use action msg for {'str': 'atomic lamp'}. #: lang/json/GENERIC_from_json.py -msgid "You close the lamp's cover." -msgstr "" +msgid "pair of brass knuckles" +msgid_plural "pairs of brass knuckles" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'atomic lamp'} +#. ~ Description for {'str': 'pair of brass knuckles', 'str_pl': 'pairs of brass knuckles'} #: lang/json/GENERIC_from_json.py msgid "" -"Powered by the magic of nuclear decay and low-energy LEDs, this very " -"expensive lamp will emit a small amount of light for at least a decade. " -"Before the Cataclysm, it was mostly an expensive way to show off your " -"preparedness. Now, it's actually pretty cool. Use it to close the cover " -"and hide the light." +"A metal weapon made of brass, designed to be gripped in the palm and cause " +"punches to do extra damage. A good, quick weapon - but you have to get " +"within punching range to use it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "atomic lamp (covered)" -msgid_plural "atomic lamps (covered)" +msgid "razorbar katar" +msgid_plural "razorbar katars" msgstr[0] "" msgstr[1] "" -#. ~ Use action menu_text for {'str': 'atomic lamp (covered)', 'str_pl': 'atomic lamps (covered)'}. -#. ~ Use action menu_text for {'str': 'atomic reading light (covered)', 'str_pl': 'atomic reading lights (covered)'}. -#. ~ Use action menu_text for {'str': 'magical reading light (covered)', 'str_pl': 'magical reading lights (covered)'}. -#. ~ Use action menu_text for {'str': 'atomic headlamp (covered)', 'str_pl': 'atomic headlamps (covered)'}. +#. ~ Description for {'str': 'razorbar katar'} #: lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_ARMOR_from_json.py -msgid "Open cover" +msgid "" +"Five pieces of rebar sharpened to cruel points and strapped to a brace " +"fastened at wrist and forearm on both arms. The next bub better watch out." msgstr "" -#. ~ Use action msg for {'str': 'atomic lamp (covered)', 'str_pl': 'atomic lamps (covered)'}. #: lang/json/GENERIC_from_json.py -msgid "You open the lamp's cover." -msgstr "" +msgid "pair of nail knuckles" +msgid_plural "pairs of nail knuckles" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'atomic lamp (covered)', 'str_pl': 'atomic lamps (covered)'} +#. ~ Description for {'str': 'pair of nail knuckles', 'str_pl': 'pairs of nail knuckles'} #: lang/json/GENERIC_from_json.py msgid "" -"Powered by the magic of nuclear decay and low-energy LEDs, this very " -"expensive lamp will emit a small amount of light for at least a decade. " -"Before the Cataclysm, it was mostly an expensive way to show off your " -"preparedness. Now, it's actually pretty cool. The cover is closed. Use it " -"to open the cover and show the light." +"A pair of knuckles consisting of two small squares of wood with several " +"nails coming through them. Useful in nasty street fights." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "atomic reading light" -msgid_plural "atomic reading lights" +msgid "pair of steel knuckles" +msgid_plural "pairs of steel knuckles" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'atomic reading light'}. -#. ~ Use action msg for magical reading light. -#: lang/json/GENERIC_from_json.py -msgid "You close the nightlight's cover." -msgstr "" - -#. ~ Description for {'str': 'atomic reading light'} +#. ~ Description for {'str': 'pair of steel knuckles', 'str_pl': 'pairs of steel knuckles'} #: lang/json/GENERIC_from_json.py msgid "" -"Powered by the magic of nuclear decay and low-energy LEDs, this extremely " -"expensive little light will provide just enough light to read by for at " -"least a decade. It is also available with a cute cartoon bear cover to turn " -"it into a nightlight for a very wealthy child with a fear of the dark. Use " -"it to close the cover and hide the light." +"A mass of scrap metal crudely beat into shape, with folded rags underneath " +"to protect the wearers knuckles. A good, quick weapon - but you have to get " +"within punching range to use it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "atomic reading light (covered)" -msgid_plural "atomic reading lights (covered)" +msgid "punch dagger" +msgid_plural "punch daggers" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'atomic reading light (covered)', 'str_pl': 'atomic reading lights (covered)'}. -#. ~ Use action msg for {'str': 'magical reading light (covered)', 'str_pl': 'magical reading lights (covered)'}. -#: lang/json/GENERIC_from_json.py -msgid "You open the nightlight's cover." -msgstr "" - -#. ~ Description for {'str': 'atomic reading light (covered)', 'str_pl': 'atomic reading lights (covered)'} +#. ~ Description for {'str': 'punch dagger'} #: lang/json/GENERIC_from_json.py msgid "" -"Powered by the magic of nuclear decay and low-energy LEDs, this extremely " -"expensive little light will provide just enough light to read by for at " -"least a decade. It is also available with a cute cartoon bear cover to turn " -"it into a nightlight for a very wealthy child with a fear of the dark. The " -"cover is closed. Use it to open the cover and show the light." +"A short and sharp double-edged dagger made to be gripped in the palm, with " +"the blade protruding between the fingers." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" +msgid "explosive arrowhead" +msgid_plural "explosive arrowheads" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'blood draw kit'} +#. ~ Description for {'str': 'explosive arrowhead'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." +"This simple IED is designed to be attached to an arrow and detonate on " +"impact." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "charcoal kiln" -msgid_plural "charcoal kilns" +#: lang/json/GENERIC_from_json.py src/artifact.cpp +msgid "disc" +msgid_plural "discs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'charcoal kiln'} +#. ~ Description for {'str': 'disc'} #: lang/json/GENERIC_from_json.py msgid "" -"A stout metal box used for producing charcoal via pyrolysis; the incomplete " -"burning of organic materials in the absence of oxygen." +"A plastic disc made for playing disc golf, it is smaller and denser then a " +"normal frisbee." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lit charcoal kiln" -msgid_plural "lit charcoal kilns" +msgid "frisbee" +msgid_plural "frisbees" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'lit charcoal kiln'}. +#. ~ Description for {'str': 'frisbee'} #: lang/json/GENERIC_from_json.py -msgid "" -"The kilns embers have died out, you can now disassemble it to harvest the " -"charcoal." +msgid "A plastic frisbee made for outdoor games." msgstr "" -#. ~ Use action not_ready_msg for {'str': 'lit charcoal kiln'}. #: lang/json/GENERIC_from_json.py -msgid "The kiln is still burning." -msgstr "" +msgid "lawn dart" +msgid_plural "lawn darts" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'lit charcoal kiln'} +#. ~ Description for {'str': 'lawn dart'} #: lang/json/GENERIC_from_json.py -msgid "A kiln full of wood that has been lit; better drop it!" +msgid "A large plastic dart made for outdoor games." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "grappling hook" -msgid_plural "grappling hooks" +msgid "throwing axe" +msgid_plural "throwing axes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'grappling hook'} +#. ~ Description for {'str': 'throwing axe'} #: lang/json/GENERIC_from_json.py msgid "" -"A folding grappling hook attached to a stout 30-foot long piece of " -"lightweight cord. Useful for keeping yourself safe from falls. Can be used " -"in place of a long rope for butchering, in a pinch." +"A lightweight hatchet made for throwing. Its ineffective cutting edge and " +"light weight makes it unsuitable for use as a tool." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "makeshift glaive" -msgid_plural "makeshift glaives" +msgid "throwing knife" +msgid_plural "throwing knives" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'makeshift glaive'} +#. ~ Description for {'str': 'throwing knife', 'str_pl': 'throwing knives'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a large blade attached to a long stick. It could do a considerable " -"amount of damage." +"A thin and flat knife made for throwing. Its ineffective cutting edge and " +"odd shape makes it unsuitable for use as a tool." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mind splicer kit" -msgid_plural "mind splicer kits" +msgid "alien resin chunk" +msgid_plural "alien resin chunks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mind splicer kit'} +#. ~ Description for {'str': 'alien resin chunk'} #: lang/json/GENERIC_from_json.py msgid "" -"Surgical forceps, cables and a modified smartphone inside a small plastic " -"pouch. Assembled to steal the mind of some poor man, these are tools of the " -"creepy high-tech sandman." +"This is a shattered fragment of alien resin. It looks a bit like a large " +"piece of sea glass, frosted and gritty with the edges rounded off. It is " +"somewhat warm to the touch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "telescoping umbrella" -msgid_plural "telescoping umbrellas" +msgid "sheet of glass" +msgid_plural "sheets of glass" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'telescoping umbrella'} +#. ~ Use action done_message for {'str': 'sheet of glass', 'str_pl': 'sheets of glass'}. #: lang/json/GENERIC_from_json.py msgid "" -"A telescoping umbrella which collapses down for easy storage, useful for " -"keeping dry when wielded." +"You break the pane and place the shards on the ground, ready to be cracked " +"by something passing by." msgstr "" +#. ~ Description for {'str': 'sheet of glass', 'str_pl': 'sheets of glass'} #: lang/json/GENERIC_from_json.py -msgid "umbrella" -msgid_plural "umbrellas" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'umbrella'} -#: lang/json/GENERIC_from_json.py -msgid "An umbrella with a pointy end, useful for keeping dry when wielded." +msgid "" +"A large sheet of glass. Easily shattered. Useful for repairing windows." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "radio car box" -msgid_plural "radio car boxes" +msgid "sheet of reinforced glass" +msgid_plural "sheets of reinforced glass" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'radio car box', 'str_pl': 'radio car boxes'} +#. ~ Description for {'str': 'sheet of reinforced glass', 'str_pl': 'sheets of reinforced glass'} #: lang/json/GENERIC_from_json.py -msgid "" -"An RC car, with radio-control and batteries included! Disassemble to unpack " -"and enjoy." +msgid "A large sheet of glass strengthened with steel wiring." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "light detector" -msgid_plural "light detectors" +msgid "pane of reinforced glass" +msgid_plural "panes of reinforced glass" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'light detector'} +#. ~ Description for {'str': 'pane of reinforced glass', 'str_pl': 'panes of reinforced glass'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a photodiode on a chip, designed to convert incoming light to " -"electrical energy for quantification." +msgid "A small pane of glass strengthened with steel wiring." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "glass prism" -msgid_plural "glass prisms" +msgid "sheet of tempered glass" +msgid_plural "sheets of tempered glass" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'glass prism'} +#. ~ Description for {'str': 'sheet of tempered glass', 'str_pl': 'sheets of tempered glass'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a high quality crystal glass prism for separating and redirecting " -"light." +"A large, durable sheet of tempered glass, approximately six millimeters " +"thick. A common type of safety glass with the curious property of breaking " +"into small, non-lethal pieces upon shattering." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "small glass tube" -msgid_plural "small glass tubes" +msgid "peephole" +msgid_plural "peepholes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'small glass tube'} +#. ~ Description for {'str': 'peephole'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a small glass tube. What more could you possibly want to know about " -"it?" +"A metal cylinder with a small lens inside intended to be installed on a door." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "plastic stopcock" -msgid_plural "plastic stopcocks" +msgid "mesh screen" +msgid_plural "mesh screens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic stopcock'} +#. ~ Description for {'str': 'mesh screen'} #: lang/json/GENERIC_from_json.py -msgid "" -"Stop giggling. This is a tiny plastic valve, get your mind out of the " -"gutter." +msgid "A roll of fine mesh screen for bug barriers on porches." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "test tube rack" -msgid_plural "test tube racks" +msgid "pipe" +msgid_plural "pipes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'test tube rack'} +#. ~ Description for {'str': 'pipe'} +#. ~ Description for TEST pipe #: lang/json/GENERIC_from_json.py msgid "" -"A plastic box with holes in it. Not that exciting, unless you're desperate " -"for a place to store a test tube. Then it's great." +"A steel pipe, makes a good melee weapon. Useful in a few crafting recipes." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "microcentrifuge tube tray" -msgid_plural "microcentrifuge tube trays" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "spike" +msgid_plural "spikes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'microcentrifuge tube tray'} +#. ~ Description for {'str': 'spike'} #: lang/json/GENERIC_from_json.py msgid "" -"A plastic tray riddled with small holes, for storing microcentrifuge tubes." +"A large and slightly misshapen spike, could do some damage mounted on a " +"vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ring stand" -msgid_plural "ring stands" +msgid "copper tubing" +msgid_plural "copper tubings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ring stand'} +#. ~ Description for {'str': 'copper tubing'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a heavy metal plate and a sturdy rod, for clamping lab stuff to." +"A copper tube, too thin to be much use as a melee weapon, but will do if " +"nothing else is available. Useful in a few crafting recipes." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "set of ring stand clamps" -msgid_plural "sets of ring stand clamps" +msgid "aluminum ingot" +msgid_plural "aluminum ingots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of ring stand clamps', 'str_pl': 'sets of ring stand clamps'} +#. ~ Description for {'str': 'aluminum ingot'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a small box with a jumbled assortment of clamps for mounting on ring " -"stands. There seems to be some sort of rule that all of them are missing at " -"least one wing nut for tightening them; it looks like judicious use of twist " -"ties, duct tape, and other random stuff has been used to compensate." +"A small aluminum ingot, standardized for further processing. Light but " +"durable, this could be cast into various shapes for construction or ground " +"down to a powder, for more… high-profile applications." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "stapler" -msgid_plural "staplers" +msgid "scrap copper" +msgid_plural "scrap copper" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stapler'} +#. ~ Description for {'str_sp': 'scrap copper'} #: lang/json/GENERIC_from_json.py -msgid "A stapler for fastening sheets of paper together." +msgid "A small chunk of copper, usable for crafting or repairs." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pen" -msgid_plural "pens" +msgid "bee sting" +msgid_plural "bee stings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pen'} +#. ~ Description for {'str': 'bee sting'} #: lang/json/GENERIC_from_json.py -msgid "A plastic ball point pen." +msgid "A six-inch stinger from a giant bee. Makes a mediocre melee weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bone sewing awl" -msgid_plural "bone sewing awls" +msgid "broom" +msgid_plural "brooms" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bone sewing awl'} +#. ~ Description for {'str': 'broom'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a crude sharpened bone awl; those were used for leatherworking " -"before metal was discovered. It can also serve as an improvised stabbing " -"weapon, but will break quickly." +"A long-handled broom. Makes a terrible weapon unless you're chasing cats." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel sewing awl" -msgid_plural "steel sewing awls" +msgid "ceramic shard" +msgid_plural "ceramic shards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel sewing awl'} +#. ~ Description for {'str': 'ceramic shard'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a steel awl with a wooden grip, usually used for leatherworking. It " -"can also serve as an improvised stabbing weapon, but will break quickly." +"A broken ceramic shard. It is heavy and has a somewhat sharp edge, but it's " +"too irregular to cut properly." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "knitting needles" -msgid_plural "pairs of knitting needles" +msgid "fungal fighter sting" +msgid_plural "fungal fighter stings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'knitting needles', 'str_pl': 'pairs of knitting needles'} +#. ~ Description for {'str': 'fungal fighter sting'} #: lang/json/GENERIC_from_json.py -msgid "" -"A pair of stout wooden needles with round ends used to turn thread and yarn " -"into cloth." +msgid "A short dart from a fungal fighter. Makes a poor melee weapon." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "frame loom" -msgid_plural "frame looms" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "mattress" +msgid_plural "mattresses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'frame loom'} +#. ~ Description for {'str': 'mattress', 'str_pl': 'mattresses'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a rather bulky and primitive wooden frame which can be used to weave " -"cloth sheets. It is very slow, though." +msgid "This is a single, or twin, sized mattress." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "wooden shed stick" -msgid_plural "wooden shed sticks" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "down mattress" +msgid_plural "down mattresses" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wooden shed stick'} +#. ~ Description for {'str': 'down mattress', 'str_pl': 'down mattresses'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a short thin flat wooden stick, used as a tool while weaving cloth " -"with a frame loom." +msgid "This is a single, or twin, sized down filled mattress." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tailoring pattern set" -msgid_plural "tailoring pattern sets" +msgid "sharp rock" +msgid_plural "sharp rocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tailoring pattern set'} +#. ~ Description for {'str': 'sharp rock'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a large set of tailoring patterns made from paper. They're useful " -"for making any kind of cloth or leather items from scratch, but are " -"necessary for more advanced projects." +"A rock with sharp edges, that can be used as a butchering tool, if nothing " +"else is available. Makes a passable melee weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "razor blade" -msgid_plural "razor blades" +msgid "ESAPI ballistic plate" +msgid_plural "ESAPI ballistic plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'razor blade'} +#. ~ Description for {'str': 'ESAPI ballistic plate'} #: lang/json/GENERIC_from_json.py -msgid "A double-edged razor blade." +msgid "" +"A polygonal ceramic ballistic plate with a slightly concave profile. Its " +"inner surface is coated with Ultra High Molecular Weight Polyethylene, and " +"is labelled \"TOP\", while its outer surface is labelled \"STRIKE FACE\". " +"This is intended to be worn in a ballistic vest and can withstand several " +"high energy rifle rounds before breaking." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hatchet" -msgid_plural "hatchets" +msgid "ESBI ballistic plate" +msgid_plural "ESBI ballistic plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hatchet'} +#. ~ Description for {'str': 'ESBI ballistic plate'} #: lang/json/GENERIC_from_json.py msgid "" -"A one-handed hatchet. Makes a great melee weapon, and is useful both for " -"chopping things and for use as a hammer." +"A polygonal ceramic ballistic plate with a slightly concave profile. " +"\"STRIKE FACE\" is printed on its outer surface. This is designed to be " +"worn in the sides of a plate carrier and can withstand several high energy " +"rifle rounds before breaking." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "carding paddles" -msgid_plural "pairs of carding paddles" +msgid "grenade launcher buttstock" +msgid_plural "grenade launcher buttstocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'carding paddles', 'str_pl': 'pairs of carding paddles'} +#. ~ Description for {'str': 'grenade launcher buttstock'} #: lang/json/GENERIC_from_json.py msgid "" -"A pair of toothy wooden paddles used to clean fibers for use in textile " -"production." +"A collapsible buttstock designed for the M320 grenade launcher. When " +"combined with this stock, the M320 can be used as a standalone weapon" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "distaff and spindle" -msgid_plural "distaves and spindles" +msgid "wasp sting" +msgid_plural "wasp stings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'distaff and spindle', 'str_pl': 'distaves and spindles'} +#. ~ Description for {'str': 'wasp sting'} #: lang/json/GENERIC_from_json.py -msgid "" -"A pair of specialized wooden rods used to spin fibers into thread and yarn." +msgid "A six-inch stinger from a giant wasp. Makes a poor melee weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vehicle alternator" -msgid_plural "vehicle alternators" +msgid "plastic sheet" +msgid_plural "plastic sheets" msgstr[0] "" msgstr[1] "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "car alternator" -msgid_plural "car alternators" -msgstr[0] "" -msgstr[1] "" +#. ~ Description for {'str': 'plastic sheet'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a large sheet of heavy flexible plastic, the sort that might have " +"been used for commercial wrapping or for weather-sealing a home." +msgstr "" -#. ~ Description for {'str': 'car alternator'} +#. ~ Description for plastic sheet #: lang/json/GENERIC_from_json.py -msgid "A standard alternator used to power vehicle electrical systems." +msgid "" +"A large, rigid sheet of translucent plastic, useful for all manner of " +"things; from construction to art, or even junior snowboarding." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "motorbike alternator" -msgid_plural "motorbike alternators" +#: lang/json/GENERIC_from_json.py +msgid "log" +msgid_plural "logs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'motorbike alternator'} +#. ~ Description for {'str': 'log'} #: lang/json/GENERIC_from_json.py msgid "" -"A compact lightweight alternator used to power small vehicle electrical " -"systems." +"A large chunk of log, cut from a tree. (a)ctivate a wood axe or wood saw to " +"cut it into planks." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "bicycle alternator" -msgid_plural "bicycle alternators" +#: lang/json/GENERIC_from_json.py +msgid "splintered wood" +msgid_plural "splintered wood" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bicycle alternator'} +#. ~ Description for {'str_sp': 'splintered wood'} #: lang/json/GENERIC_from_json.py -msgid "A very lightweight alternator used to power a bicycle's headlights." +msgid "A splintered piece of wood, could be used as a skewer or for kindling." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "truck alternator" -msgid_plural "truck alternators" +#: lang/json/GENERIC_from_json.py +msgid "stout branch" +msgid_plural "stout branches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'truck alternator'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A larger and more powerful alternator used to power vehicle electrical " -"systems." +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "7.5kW generator" -msgid_plural "7.5kW generators" +#: lang/json/GENERIC_from_json.py +msgid "long stout branch" +msgid_plural "long stout branches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': '7.5kW generator'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A bulky but efficient electrical generator designed to be attached to an " -"engine." +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "rebar grate" -msgid_plural "rebar grates" +msgid "long pole" +msgid_plural "long poles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'rebar grate'} +#. ~ Description for {'str': 'long pole'} #: lang/json/GENERIC_from_json.py msgid "" -"Interlocked sections of rebar that allows for light and effective " -"reinforcement of vehicle sections." +"A stout, ten-foot pole. Could be used similarly to a spear. The Cataclysm " +"gives fresh meaning to walking softly and carrying a big stick." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock absorber" -msgid_plural "shock absorbers" +#: lang/json/GENERIC_from_json.py +msgid "plank" +msgid_plural "planks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'shock absorber'} +#. ~ Description for {'str': 'plank'} #: lang/json/GENERIC_from_json.py msgid "" -"This makeshift combination of springs and scrap, when attached to a vehicle " -"section, protects that section from impacts. The springs can absorb a " -"surprising amount of damage." +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional " +"lumber. Makes a decent melee weapon, and can be used for all kinds " +"construction." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "storage battery case" -msgid_plural "storage battery cases" +msgid "heavy wooden beam" +msgid_plural "heavy wooden beams" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'storage battery case'} +#. ~ Description for {'str': 'heavy wooden beam'} #: lang/json/GENERIC_from_json.py msgid "" -"An empty case that can hold a storage battery. Complete with charging " -"controller chip and connecting wires." +"An enormous beam of solid wood, very heavy and hard to lug around, but also " +"very sturdy for construction. You could saw or chop it into smaller pieces, " +"like planks or panels." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wood boat hull" -msgid_plural "wood boat hulls" +msgid "wooden panel" +msgid_plural "wooden panels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wood boat hull'} +#. ~ Description for {'str': 'wooden panel'} #: lang/json/GENERIC_from_json.py msgid "" -"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " -"until it floats. Then attach oars or a motor to get the boat to move." +"A wide, thin wooden board - plywood, OSB, MDF, tongue-in-groove boards, or " +"similar, already cut to shape. These large flat boards are good for all " +"kinds of construction, but for really big projects you'd need a proper sheet " +"of uncut plywood or the like." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "plastic boat hull" -msgid_plural "plastic boat hulls" +#: lang/json/GENERIC_from_json.py +msgid "large wooden sheet" +msgid_plural "large wooden sheets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plastic boat hull'} +#. ~ Description for {'str': 'large wooden sheet'} #: lang/json/GENERIC_from_json.py msgid "" -"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " -"vehicle until it floats. Then attach oars or a motor to get the boat to " -"move." +"A standard 4x8 sheet of flat wood - usually plywood, OSB, or MDF. Heavy and " +"bulky, this is extremely useful for all manner of construction, but you " +"might have to cut it to size before doing smaller projects." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "carbon fiber boat hull" -msgid_plural "carbon fiber boat hulls" +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'carbon fiber boat hull'} +#. ~ Description for {'str': 'steel bottle'} #: lang/json/GENERIC_from_json.py -msgid "" -"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " -"vehicle until it floats. Then attach oars or a motor to get the boat to " -"move." +msgid "A stainless steel water bottle, holds 750ml of liquid." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "oars" -msgid_plural "oars" +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'oars'} +#. ~ Description for {'str': 'foldable plastic bottle'} #: lang/json/GENERIC_from_json.py -msgid "Oars for a boat." +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "sail" -msgid_plural "sails" +#: lang/json/GENERIC_from_json.py +msgid "atomic coffee maker" +msgid_plural "atomic coffee makers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sail'} +#. ~ Description for {'str': 'atomic coffee maker'} #: lang/json/GENERIC_from_json.py -msgid "Sails for a boat." +msgid "" +"This is a Curie-G coffeemaker, by CuppaTech. It famously uses a radioactive " +"generator to heat water for coffee. Normally the water is heated using " +"energy stored in a capacitor, and makes ordinary coffee. However, as a " +"special feature, water from the RTG containment area can be used, giving the " +"coffee a very special kick. The Curie-G is illegal in most countries." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable section" -msgid_plural "inflatable section" +#: lang/json/GENERIC_from_json.py +msgid "can sealer" +msgid_plural "can sealers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'inflatable section'} +#. ~ Description for {'str': 'can sealer'} #: lang/json/GENERIC_from_json.py -msgid "An inflatable boat section." +msgid "" +"A hand crank powered cast steel machine designed to automatically seal tin " +"cans." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "inflatable airbag" -msgid_plural "inflatable airbag" +#: lang/json/GENERIC_from_json.py +msgid "clay pot" +msgid_plural "clay pots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'inflatable airbag'} +#. ~ Description for {'str': 'clay pot'} #: lang/json/GENERIC_from_json.py -msgid "An inflatable airbag." +msgid "A crude clay pot with lid used for cooking." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wire basket" -msgid_plural "wire baskets" +msgid "clay quern" +msgid_plural "clay querns" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wire basket'} +#. ~ Description for {'str': 'clay quern'} #: lang/json/GENERIC_from_json.py -msgid "A large wire basket from a shopping cart." +msgid "This is a simple hand-powered clay quern for grinding grain." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "bike rack" -msgid_plural "bike racks" +#: lang/json/GENERIC_from_json.py +msgid "clay teapot" +msgid_plural "clay teapots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bike rack'} +#. ~ Description for {'str': 'clay teapot'} #: lang/json/GENERIC_from_json.py -msgid "" -"A collection of pipes, cams, and straps, mounted on the edge of a vehicle " -"and used to support another vehicle for transport. It must be mounted on a " -"vehicle to be used." +msgid "A clay teapot. Now all you need is tea and water." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cargo lock set" -msgid_plural "cargo lock sets" +msgid "fermenting eggs jar" +msgid_plural "fermenting eggs jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cargo lock set'} +#. ~ Use action msg for {'str': 'fermenting eggs jar'}. #: lang/json/GENERIC_from_json.py -msgid "A set of locks designed to be installed on a vehicle." +msgid "" +"You examine the batch and see that the pickling solution has done its job, " +"so you seal the jar up for storage." msgstr "" +#. ~ Use action not_ready_msg for {'str': 'fermenting eggs jar'}. #: lang/json/GENERIC_from_json.py -msgid "folding wire basket" -msgid_plural "folding wire baskets" -msgstr[0] "" -msgstr[1] "" +msgid "The eggs are not done yet." +msgstr "" -#. ~ Description for {'str': 'folding wire basket'} +#. ~ Description for {'str': 'fermenting eggs jar'} #: lang/json/GENERIC_from_json.py -msgid "A large wire basket from a shopping cart, modified to be foldable." +msgid "" +"This jar contains a batch of eggs in a pickling solution. You can seal up " +"the jar once the process is completed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bike basket" -msgid_plural "bike baskets" +msgid "sealed yeast culture" +msgid_plural "sealed yeast culture" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bike basket'} +#. ~ Use action msg for {'str_sp': 'sealed yeast culture'}. #: lang/json/GENERIC_from_json.py -msgid "A simple bike basket. It is small and foldable." +msgid "You open the flask and harvest the culture." msgstr "" +#. ~ Use action not_ready_msg for {'str_sp': 'sealed yeast culture'}. #: lang/json/GENERIC_from_json.py -msgid "cargo carrier" -msgid_plural "cargo carriers" -msgstr[0] "" -msgstr[1] "" +msgid "The yeast isn't done culturing yet." +msgstr "" -#. ~ Description for {'str': 'cargo carrier'} +#. ~ Description for {'str_sp': 'sealed yeast culture'} #: lang/json/GENERIC_from_json.py msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo." +"A sealed flask holding sanitized yeast wort. You may harvest the yeast " +"inside when it's done culturing." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "floor trunk" -msgid_plural "floor trunks" +#: lang/json/GENERIC_from_json.py +msgid "sealed jar of eggs" +msgid_plural "sealed jars of eggs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'floor trunk'} +#. ~ Use action menu_text for {'str': 'sealed jar of eggs', 'str_pl': 'sealed jars of eggs'}. +#. ~ Use action menu_text for {'str': 'sealed jar of pickles', 'str_pl': 'sealed jars of pickles'}. +#. ~ Use action menu_text for {'str': 'sealed jar of sauerkraut', 'str_pl': 'sealed jars of sauerkraut'}. #: lang/json/GENERIC_from_json.py -msgid "" -"A section of flooring with a cargo-space beneath, and a hinged door for " -"access." +msgid "Open jar" msgstr "" +#. ~ Use action msg for {'str': 'sealed jar of eggs', 'str_pl': 'sealed jars of eggs'}. +#. ~ Use action msg for {'str': 'sealed jar of pickles', 'str_pl': 'sealed jars of pickles'}. +#. ~ Use action msg for {'str': 'sealed jar of sauerkraut', 'str_pl': 'sealed jars of sauerkraut'}. #: lang/json/GENERIC_from_json.py -msgid "livestock carrier" -msgid_plural "livestock carriers" -msgstr[0] "" -msgstr[1] "" +msgid "You open the jar, exposing it to the atmosphere." +msgstr "" -#. ~ Description for {'str': 'livestock carrier'} +#. ~ Description for {'str': 'sealed jar of eggs', 'str_pl': 'sealed jars of eggs'} #: lang/json/GENERIC_from_json.py msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large animal in place. It is " -"meant to hold large animals for transport. Use it on a suitable animal to " -"capture, use it on an empty tile to release." +"This is a sealed glass jar containing pickled eggs. Use to open and eat to " +"enjoy." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "mounted spare tire" -msgid_plural "mounted spare tires" +#: lang/json/GENERIC_from_json.py +msgid "sealed jar of pickles" +msgid_plural "sealed jars of pickles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mounted spare tire'} +#. ~ Description for {'str': 'sealed jar of pickles', 'str_pl': 'sealed jars of pickles'} #: lang/json/GENERIC_from_json.py msgid "" -"A spare tire mounted on a carrier rig, ready to be attached to the rear " -"bumper of a vehicle." +"This is a sealed glass jar containing pickles. Use to open and eat to enjoy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "animal locker" -msgid_plural "animal lockers" +msgid "sealed jar of sauerkraut" +msgid_plural "sealed jars of sauerkraut" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'animal locker'} +#. ~ Description for {'str': 'sealed jar of sauerkraut', 'str_pl': 'sealed jars of sauerkraut'} #: lang/json/GENERIC_from_json.py msgid "" -"A locker used to contain animals safely during transportation if installed " -"properly. There is room for animal food and other animal care goods. It is " -"meant to hold medium or smaller animals for transport. Use it on a suitable " -"animal to capture, use it on an empty tile to release." +"This is a sealed glass jar containing sauerkraut. Use to open and eat to " +"enjoy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "camera display" -msgid_plural "camera displays" +msgid "mess tin" +msgid_plural "mess tins" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'camera display'} +#. ~ Description for {'str': 'mess tin'} #: lang/json/GENERIC_from_json.py -msgid "A set of small monitors. Required to view cameras' output." +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire " +"or portable stove. It is shallower than a proper pot or pan, and lacks the " +"integrated heating elements modern mess kits have." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "security camera" -msgid_plural "security cameras" +#: lang/json/GENERIC_from_json.py +msgid "milk cream jar" +msgid_plural "milk cream jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'security camera'} +#. ~ Description for {'str': 'milk cream jar'} #: lang/json/GENERIC_from_json.py msgid "" -"A security camera you could connect to a display. Image quality is quite " -"low, but the field of vision is great." +"This jar contains raw milk separated into cream. It is sealed until you are " +"ready to use it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vehicle controls" -msgid_plural "sets of vehicle controls" +msgid "rising cream jar" +msgid_plural "rising cream jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle controls', 'str_pl': 'sets of vehicle controls'} +#. ~ Use action msg for {'str': 'rising cream jar'}. #: lang/json/GENERIC_from_json.py -msgid "A set of various vehicle controls. Useful for crafting." +msgid "" +"You examine the batch and see that the cream has risen to the top, so you " +"seal the jar up for storage." msgstr "" +#. ~ Use action not_ready_msg for {'str': 'rising cream jar'}. #: lang/json/GENERIC_from_json.py -msgid "vehicle tracking device" -msgid_plural "vehicle tracking devices" -msgstr[0] "" -msgstr[1] "" +msgid "The cream has not risen yet." +msgstr "" -#. ~ Description for {'str': 'vehicle tracking device'} +#. ~ Description for {'str': 'rising cream jar'} #: lang/json/GENERIC_from_json.py msgid "" -"A vehicle tracking device. When installed on a vehicle it allows you track " -"the vehicle." +"This jar contains raw milk separating into cream. You can seal up the jar " +"once the process is completed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "rein and tackle" -msgid_plural "reins and tackles" +msgid "pasta extruder" +msgid_plural "pasta extruders" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'rein and tackle', 'str_pl': 'reins and tackles'} +#. ~ Description for {'str': 'pasta extruder'} #: lang/json/GENERIC_from_json.py -msgid "A set of leather bindings to control a mountable creature." +msgid "" +"A pasta extruder run by a hand-crank. Useful in making pasta. It comes " +"with various heads to make various kinds of pasta." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "dashboard" -msgid_plural "dashboards" +#: lang/json/GENERIC_from_json.py +msgid "fermenting pickle jar" +msgid_plural "fermenting pickle jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'dashboard'} -#. ~ Description for {'str': 'electronics control unit'} +#. ~ Use action msg for {'str': 'fermenting pickle jar'}. +#. ~ Use action msg for {'str': 'fermenting sauerkraut jar'}. #: lang/json/GENERIC_from_json.py msgid "" -"A vehicle instrument panel with various gauges and switches. Useful for " -"crafting." +"You test the batch, and it tastes good, so you seal the jar up for storage." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "electronics control unit" -msgid_plural "electronics control units" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "drive by wire controls" -msgid_plural "sets of drive by wire controls" -msgstr[0] "" -msgstr[1] "" +#. ~ Use action not_ready_msg for {'str': 'fermenting pickle jar'}. +#: lang/json/GENERIC_from_json.py +msgid "The pickles are not done fermenting yet." +msgstr "" -#. ~ Description for {'str': 'drive by wire controls', 'str_pl': 'sets of drive by wire controls'} +#. ~ Description for {'str': 'fermenting pickle jar'} #: lang/json/GENERIC_from_json.py msgid "" -"Fully electronic vehicle control system. You could control it remotely if " -"you had proper tools." +"This jar contains a batch of pickles set to ferment. You can seal up the " +"jar once the process is completed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "robot driving unit" -msgid_plural "robot driving units" +msgid "pressure cooker" +msgid_plural "pressure cookers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'robot driving unit'} +#. ~ Description for {'str': 'pressure cooker'} #: lang/json/GENERIC_from_json.py msgid "" -"A set of servos, microcontrollers and other devices, together capable of " -"driving an unmanned vehicle. Its AI is not functional, but it should still " -"have some sort of maintenance mode." +"Useful for boiling water when cooking spaghetti and more. This sealed pot " +"is designed to cook food at higher pressures and temperatures. Can also be " +"used for pressure sensitive chemical reactions." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "turret control unit" -msgid_plural "turret control units" +#: lang/json/GENERIC_from_json.py +msgid "fermenting sauerkraut jar" +msgid_plural "fermenting sauerkraut jars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'turret control unit'} +#. ~ Use action not_ready_msg for {'str': 'fermenting sauerkraut jar'}. +#: lang/json/GENERIC_from_json.py +msgid "The sauerkraut isn't done fermenting yet." +msgstr "" + +#. ~ Description for {'str': 'fermenting sauerkraut jar'} #: lang/json/GENERIC_from_json.py msgid "" -"A set of motor, camera, and various electronic modules banded together to " -"allow for tracking targets, friend-or-foe identification, and firing the " -"connected turret in full automatic mode." +"This jar contains a batch of sauerkraut set to ferment. You can seal up the " +"jar once the process is completed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "massive engine block" -msgid_plural "massive engine blocks" +msgid "wicker sieve" +msgid_plural "wicker sieves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'massive engine block'} +#. ~ Description for {'str': 'wicker sieve'} #: lang/json/GENERIC_from_json.py msgid "" -"The beginnings of a massive gas or diesel engine. It's not good for much of " -"anything on its own." +"This is a primitive sieve constructed from woven strips of plant material. " +"Early sieves like this were used to sift grain, though the openings on this " +"one are too small for that." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "large engine block" -msgid_plural "large engine blocks" +msgid "sieve" +msgid_plural "sieves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'large engine block'} +#. ~ Description for {'str': 'sieve'} #: lang/json/GENERIC_from_json.py msgid "" -"The beginnings of a large gas or diesel engine. It's not good for much of " -"anything on its own." +"This is no mere strainer for noodles; it's a sieve used to separate " +"particles of certain sizes. You could use this to do a really good job " +"sifting flour, remove dust and soil from grain, or perhaps conduct " +"gradiation tests for any civil engineers you might know. This one has been " +"constructed from steel mesh." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "medium engine block" -msgid_plural "medium engine blocks" +msgid "teapot" +msgid_plural "teapots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'medium engine block'} +#. ~ Description for {'str': 'teapot'} #: lang/json/GENERIC_from_json.py -msgid "" -"The beginnings of a medium gas or diesel engine. It's not good for much of " -"anything on its own." +msgid "A small metal teapot. Teatime wouldn't be complete without one." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "small engine block" -msgid_plural "small engine blocks" +msgid "waffle iron" +msgid_plural "waffle irons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'small engine block'} +#. ~ Description for {'str': 'waffle iron'} #: lang/json/GENERIC_from_json.py -msgid "" -"The beginnings of a small gas or diesel engine. It's not good for much of " -"anything on its own." +msgid "A waffle iron. For making waffles." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tiny engine block" -msgid_plural "tiny engine blocks" +msgid "fungicidal gas grenade" +msgid_plural "fungicidal gas grenades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tiny engine block'} +#. ~ Description for {'str': 'fungicidal gas grenade'} #: lang/json/GENERIC_from_json.py msgid "" -"The beginnings of a tiny gas or diesel engine. It's not good for much of " -"anything on its own." +"This is a canister grenade filled with fungicidal solution. Use this item " +"to pull the pin and light the fuse, turning it into an active fungicidal " +"grenade. In five turns it will begin to expel a volatile spray that is " +"highly toxic to fungal life forms." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel boom" -msgid_plural "steel booms" +msgid "armed fungicidal gas canister" +msgid_plural "armed fungicidal gas canisters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel boom'} +#. ~ Description for {'str': 'armed fungicidal gas canister'} #: lang/json/GENERIC_from_json.py msgid "" -"A large rigid steel boom. If attached to a frame it could be used to lift " -"up to 20 metric tonnes." +"This fungicidal bomb has had its pin removed and is expelling highly toxic " +"gas." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "telescopic cantilever" -msgid_plural "telescopic cantilevers" +msgid "makeshift fungicidal gas grenade" +msgid_plural "makeshift fungicidal gas grenades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'telescopic cantilever'} +#. ~ Description for {'str': 'makeshift fungicidal gas grenade'} #: lang/json/GENERIC_from_json.py msgid "" -"A small steel telescoping cantilever. If attached to a frame it could be " -"used to lift up to 3.5 metric tonnes." +"This is a makeshift canister grenade filled with fungicidal solution. Use " +"this item to pull the pin and light the fuse, turning it into an active " +"fungicidal grenade. In five turns it will begin to expel a volatile spray " +"that is highly toxic to fungal life forms." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "pallet lifter" -msgid_plural "pallet lifters" +#: lang/json/GENERIC_from_json.py +msgid "armed makeshift fungicidal gas canister" +msgid_plural "armed makeshift fungicidal gas canisters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pallet lifter'} +#. ~ Description for {'str': 'armed makeshift fungicidal gas canister'} #: lang/json/GENERIC_from_json.py msgid "" -"A makeshift pallet lifter. If attached to a frame it could be used to lift " -"up to 0.5 metric tonnes." +"This makeshift fungicidal bomb has had its pin removed and is expelling " +"highly toxic haze." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "rockwheel" -msgid_plural "rockwheels" +#: lang/json/GENERIC_from_json.py +msgid "canister grenade" +msgid_plural "canister grenades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'rockwheel'} +#. ~ Use action message for {'str': 'canister grenade'}. #: lang/json/GENERIC_from_json.py -msgid "A large and heavy jagged metal disc to dig trenches." +#, no-python-format +msgid "You pull the pin on the %s." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "airjack" -msgid_plural "airjacks" +msgid "tear gas grenade" +msgid_plural "tear gas grenades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'airjack'} -#. ~ Description for {'str': 'air jack system'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +#. ~ Description for {'str': 'tear gas grenade'} +#: lang/json/GENERIC_from_json.py msgid "" -"An extendable metal pylon used to replace a portable jack. If mounted to a " -"vehicle, it could be used to lift it up." +"This is a canister grenade filled with noxious irritant. Use this item to " +"pull the pin and light the fuse, turning it into an active tear gas " +"grenade. In five turns it will begin to expel a highly toxic gas for some " +"time. This gas damages and slows those who enter it, as well as obscuring " +"vision and scent." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "motorcycle kickstand" -msgid_plural "motorcycle kickstands" +#: lang/json/GENERIC_from_json.py +msgid "armed tear gas canister" +msgid_plural "armed tear gas canisters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'motorcycle kickstand'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +#. ~ Description for {'str': 'armed tear gas canister'} +#: lang/json/GENERIC_from_json.py msgid "" -"A kickstand to keep the bike from falling over. You could use this to lean " -"it forward or backward to change a tire." +"This smoke bomb has had its pin removed and is expelling highly toxic gas." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vehicle scoop" -msgid_plural "vehicle scoops" +msgid "insecticidal gas grenade" +msgid_plural "insecticidal gas grenades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle scoop'} +#. ~ Description for {'str': 'insecticidal gas grenade'} #: lang/json/GENERIC_from_json.py msgid "" -"An assembly of motors and sheet metal that allows a vehicle to clean the " -"road surface by removing debris and contaminants." +"This is a canister grenade filled with insecticidal solution. Use this item " +"to pull the pin and light the fuse, turning it into an active insecticidal " +"grenade. In five turns it will begin to expel a volatile spray that is " +"highly toxic to insect life forms." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "seed drill" -msgid_plural "seed drills" +#: lang/json/GENERIC_from_json.py +msgid "armed insecticidal gas canister" +msgid_plural "armed insecticidal gas canisters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'seed drill'} +#. ~ Description for {'str': 'armed insecticidal gas canister'} #: lang/json/GENERIC_from_json.py msgid "" -"An assembly of tubes, spikes, and wheels, that when dragged along the " -"ground, allows a vehicle to plant seeds automatically in suitably tilled " -"land." +"This insecticidal bomb has had its pin removed and is expelling highly toxic " +"haze." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "reaper" -msgid_plural "reapers" +#: lang/json/GENERIC_from_json.py +msgid "makeshift insecticidal gas grenade" +msgid_plural "makeshift insecticidal gas grenades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'reaper'} +#. ~ Description for {'str': 'makeshift insecticidal gas grenade'} #: lang/json/GENERIC_from_json.py msgid "" -"An assembly of a blade, wheels, and a small lever for engaging/disengaging " -"used to cut down crops prior to picking them up." +"This is a makeshift canister grenade filled with insecticidal solution. Use " +"this item to pull the pin and light the fuse, turning it into an active " +"insecticidal grenade. In five turns it will begin to expel a volatile spray " +"that is highly toxic to insect life forms." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "advanced reaper" -msgid_plural "advanced reapers" +#: lang/json/GENERIC_from_json.py +msgid "armed makeshift insecticidal gas canister" +msgid_plural "armed makeshift insecticidal gas canisters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'advanced reaper'} +#. ~ Description for {'str': 'armed makeshift insecticidal gas canister'} #: lang/json/GENERIC_from_json.py msgid "" -"An advanced electronic device used to cut down, collect and store crops." +"This makeshift insecticidal bomb has had its pin removed and is expelling " +"highly toxic haze." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "advanced seed drill" -msgid_plural "advanced seed drills" +#: lang/json/GENERIC_from_json.py +msgid "smoke bomb" +msgid_plural "smoke bombs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'advanced seed drill'} +#. ~ Description for {'str': 'smoke bomb'} #: lang/json/GENERIC_from_json.py msgid "" -"An assembly of tubes, spikes, and wheels, that when dragged along the " -"ground, allows a vehicle to plant seeds automatically in suitably tilled " -"land. This one is equipped with an electronic control system and will avoid " -"damaging itself when used on untilled land." +"This is a canister grenade filled with a variety of pyrotechnic chemicals. " +"Use this item to pull the pin and light the fuse, turning it into an active " +"smoke bomb. Five turns after you do that, it will begin to expel a thick " +"black smoke. This smoke will slow those who enter it, as well as obscuring " +"vision and scent." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "plow" -msgid_plural "plows" +#: lang/json/GENERIC_from_json.py +msgid "armed smoke bomb" +msgid_plural "armed smoke bombs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'plow'} +#. ~ Description for {'str': 'armed smoke bomb'} #: lang/json/GENERIC_from_json.py -msgid "A heavy assembly of wheels and steel blades that turn up the ground." +msgid "This smoke bomb has had its pin removed and is expelling thick smoke." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "foldable-light frame" -msgid_plural "foldable-light frames" +msgid "pike pole" +msgid_plural "pike poles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'foldable-light frame'} +#. ~ Description for {'str': 'pike pole'} #: lang/json/GENERIC_from_json.py -msgid "A small foldable lightweight frame made from pipework." +msgid "" +"A durable tool consisting of a sturdy fiberglass shaft tipped with a small " +"steel hook." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "extra-light frame" -msgid_plural "extra-light frames" +msgid "fishing hook" +msgid_plural "fishing hooks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'extra-light frame'} +#. ~ Description for {'str': 'fishing hook'} #: lang/json/GENERIC_from_json.py -msgid "A small lightweight frame made from pipework. Useful for crafting." +msgid "A simple fishing hook." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "steel frame" -msgid_plural "steel frames" +msgid "improvised fishing hook" +msgid_plural "improvised fishing hooks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel frame'} +#. ~ Description for {'str': 'improvised fishing hook'} #: lang/json/GENERIC_from_json.py -msgid "A large frame made of steel. Useful for crafting." +msgid "An improvised fishing hook carved from wood or bone." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "heavy duty frame" -msgid_plural "heavy duty frames" +#: lang/json/GENERIC_from_json.py +msgid "digging stick" +msgid_plural "digging sticks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'heavy duty frame'} +#. ~ Description for {'str': 'digging stick'} #: lang/json/GENERIC_from_json.py -msgid "A large, reinforced steel frame, used in military vehicle construction." +msgid "" +"This is a large stick, with the end carved into a broad blade for digging. " +"It could be used to dig shallow pits, but not deep ones." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "wooden frame" -msgid_plural "wooden frames" +msgid "atomic lamp" +msgid_plural "atomic lamps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wooden frame'} +#. ~ Use action menu_text for {'str': 'atomic lamp'}. +#. ~ Use action menu_text for {'str': 'atomic reading light'}. +#. ~ Use action menu_text for magical reading light. +#. ~ Use action menu_text for {'str': 'atomic headlamp'}. #: lang/json/GENERIC_from_json.py -msgid "A large frame made of wood. Useful for crafting." +#: lang/json/GENERIC_from_json.py lang/json/TOOL_ARMOR_from_json.py +msgid "Close cover" +msgstr "" + +#. ~ Use action msg for {'str': 'atomic lamp'}. +#: lang/json/GENERIC_from_json.py +msgid "You close the lamp's cover." +msgstr "" + +#. ~ Description for {'str': 'atomic lamp'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Powered by the magic of nuclear decay and low-energy LEDs, this very " +"expensive lamp will emit a small amount of light for at least a decade. " +"Before the Cataclysm, it was mostly an expensive way to show off your " +"preparedness. Now, it's actually pretty cool. Use it to close the cover " +"and hide the light." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "foldable wooden frame" -msgid_plural "foldable wooden frames" +#: lang/json/GENERIC_from_json.py +msgid "atomic lamp (covered)" +msgid_plural "atomic lamps (covered)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'foldable wooden frame'} +#. ~ Use action menu_text for {'str': 'atomic lamp (covered)', 'str_pl': 'atomic lamps (covered)'}. +#. ~ Use action menu_text for {'str': 'atomic reading light (covered)', 'str_pl': 'atomic reading lights (covered)'}. +#. ~ Use action menu_text for {'str': 'magical reading light (covered)', 'str_pl': 'magical reading lights (covered)'}. +#. ~ Use action menu_text for {'str': 'atomic headlamp (covered)', 'str_pl': 'atomic headlamps (covered)'}. #: lang/json/GENERIC_from_json.py -msgid "A small foldable frame made from scrap wood." +#: lang/json/GENERIC_from_json.py lang/json/TOOL_ARMOR_from_json.py +msgid "Open cover" msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "light wooden frame" -msgid_plural "light wooden frames" -msgstr[0] "" -msgstr[1] "" +#. ~ Use action msg for {'str': 'atomic lamp (covered)', 'str_pl': 'atomic lamps (covered)'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the lamp's cover." +msgstr "" -#. ~ Description for {'str': 'light wooden frame'} +#. ~ Description for {'str': 'atomic lamp (covered)', 'str_pl': 'atomic lamps (covered)'} #: lang/json/GENERIC_from_json.py msgid "" -"A small frame made of few pieces of wood, held together by rope. Useful for " -"crafting." +"Powered by the magic of nuclear decay and low-energy LEDs, this very " +"expensive lamp will emit a small amount of light for at least a decade. " +"Before the Cataclysm, it was mostly an expensive way to show off your " +"preparedness. Now, it's actually pretty cool. The cover is closed. Use it " +"to open the cover and show the light." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "car headlight" -msgid_plural "car headlights" +msgid "atomic reading light" +msgid_plural "atomic reading lights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'car headlight'} +#. ~ Use action msg for {'str': 'atomic reading light'}. +#. ~ Use action msg for magical reading light. #: lang/json/GENERIC_from_json.py -msgid "A vehicle headlight to light up the way." +msgid "You close the nightlight's cover." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "motorcycle headlight" -msgid_plural "motorcycle headlights" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'motorcycle headlight'} +#. ~ Description for {'str': 'atomic reading light'} #: lang/json/GENERIC_from_json.py -msgid "A motorcycle headlight to light up the way." +msgid "" +"Powered by the magic of nuclear decay and low-energy LEDs, this extremely " +"expensive little light will provide just enough light to read by for at " +"least a decade. It is also available with a cute cartoon bear cover to turn " +"it into a nightlight for a very wealthy child with a fear of the dark. Use " +"it to close the cover and hide the light." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wide-angle car headlight" -msgid_plural "wide-angle car headlights" +msgid "atomic reading light (covered)" +msgid_plural "atomic reading lights (covered)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wide-angle car headlight'} +#. ~ Use action msg for {'str': 'atomic reading light (covered)', 'str_pl': 'atomic reading lights (covered)'}. +#. ~ Use action msg for {'str': 'magical reading light (covered)', 'str_pl': 'magical reading lights (covered)'}. #: lang/json/GENERIC_from_json.py -msgid "A wide-angle vehicle headlight to light up the way." +msgid "You open the nightlight's cover." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "reinforced headlight" -msgid_plural "reinforced headlights" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'reinforced headlight'} +#. ~ Description for {'str': 'atomic reading light (covered)', 'str_pl': 'atomic reading lights (covered)'} #: lang/json/GENERIC_from_json.py msgid "" -"A vehicle headlight with a cage built around it to protect it from damage " -"without reducing its effectiveness." +"Powered by the magic of nuclear decay and low-energy LEDs, this extremely " +"expensive little light will provide just enough light to read by for at " +"least a decade. It is also available with a cute cartoon bear cover to turn " +"it into a nightlight for a very wealthy child with a fear of the dark. The " +"cover is closed. Use it to open the cover and show the light." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "reinforced wide-angle headlight" -msgid_plural "reinforced wide-angle headlights" +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'reinforced wide-angle headlight'} +#. ~ Description for {'str': 'blood draw kit'} #: lang/json/GENERIC_from_json.py msgid "" -"A wide-angle vehicle headlight with a cage built around it to protect it " -"from damage without reducing its effectiveness." +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "emergency vehicle light (red)" -msgid_plural "emergency vehicle lights (red)" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "charcoal kiln" +msgid_plural "charcoal kilns" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'emergency vehicle light (red)', 'str_pl': 'emergency vehicle lights (red)'} +#. ~ Description for {'str': 'charcoal kiln'} #: lang/json/GENERIC_from_json.py msgid "" -"One of the red-colored lights from the top of an emergency services " -"vehicle. When turned on, the lights rotate to shine in all directions." +"A stout metal box used for producing charcoal via pyrolysis; the incomplete " +"burning of organic materials in the absence of oxygen." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "emergency vehicle light (blue)" -msgid_plural "emergency vehicle lights (blue)" +msgid "lit charcoal kiln" +msgid_plural "lit charcoal kilns" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'emergency vehicle light (blue)', 'str_pl': 'emergency vehicle lights (blue)'} +#. ~ Use action msg for {'str': 'lit charcoal kiln'}. #: lang/json/GENERIC_from_json.py msgid "" -"One of the blue-colored lights from the top of an emergency services " -"vehicle. When turned on, the lights rotate to shine in all directions." +"The kilns embers have died out, you can now disassemble it to harvest the " +"charcoal." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "floodlight" -msgid_plural "floodlights" -msgstr[0] "" -msgstr[1] "" +#. ~ Use action not_ready_msg for {'str': 'lit charcoal kiln'}. +#: lang/json/GENERIC_from_json.py +msgid "The kiln is still burning." +msgstr "" -#. ~ Description for {'str': 'floodlight'} +#. ~ Description for {'str': 'lit charcoal kiln'} #: lang/json/GENERIC_from_json.py -msgid "A large and heavy light designed to illuminate wide areas." +msgid "A kiln full of wood that has been lit; better drop it!" msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "directed floodlight" -msgid_plural "directed floodlights" +#: lang/json/GENERIC_from_json.py +msgid "grappling hook" +msgid_plural "grappling hooks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'directed floodlight'} +#. ~ Description for {'str': 'grappling hook'} #: lang/json/GENERIC_from_json.py msgid "" -"A large and heavy light designed to illuminate a wide area in a half-" -"circular cone." +"A folding grappling hook attached to a stout 30-foot long piece of " +"lightweight cord. Useful for keeping yourself safe from falls. Can be used " +"in place of a long rope for butchering, in a pinch." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "set of hand rims" -msgid_plural "sets of hand rims" +msgid "makeshift glaive" +msgid_plural "makeshift glaives" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'set of hand rims', 'str_pl': 'sets of hand rims'} +#. ~ Description for {'str': 'makeshift glaive'} #: lang/json/GENERIC_from_json.py -msgid "Hand rims for use on a wheelchair." +msgid "" +"This is a large blade attached to a long stick. It could do a considerable " +"amount of damage." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "foot crank" -msgid_plural "foot cranks" +msgid "mind splicer kit" +msgid_plural "mind splicer kits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'foot crank'} +#. ~ Description for {'str': 'mind splicer kit'} #: lang/json/GENERIC_from_json.py -msgid "The pedal and gear assembly from a bicycle." +msgid "" +"Surgical forceps, cables and a modified smartphone inside a small plastic " +"pouch. Assembled to steal the mind of some poor man, these are tools of the " +"creepy high-tech sandman." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "wind turbine" -msgid_plural "wind turbines" +#: lang/json/GENERIC_from_json.py +msgid "telescoping umbrella" +msgid_plural "telescoping umbrellas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wind turbine'} +#. ~ Description for {'str': 'telescoping umbrella'} #: lang/json/GENERIC_from_json.py -msgid "A small turbine that can convert wind into electric power." +msgid "" +"A telescoping umbrella which collapses down for easy storage, useful for " +"keeping dry when wielded." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "large wind turbine" -msgid_plural "large wind turbines" +#: lang/json/GENERIC_from_json.py +msgid "umbrella" +msgid_plural "umbrellas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'large wind turbine'} +#. ~ Description for {'str': 'umbrella'} #: lang/json/GENERIC_from_json.py -msgid "A large turbine that can convert wind into electric power." +msgid "An umbrella with a pointy end, useful for keeping dry when wielded." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "water wheel" -msgid_plural "water wheels" +#: lang/json/GENERIC_from_json.py +msgid "radio car box" +msgid_plural "radio car boxes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'water wheel'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +#. ~ Description for {'str': 'radio car box', 'str_pl': 'radio car boxes'} +#: lang/json/GENERIC_from_json.py msgid "" -"A water wheel. Will slowly recharge the vehicle's electrical power when " -"built over shallow moving water." +"An RC car, with radio-control and batteries included! Disassemble to unpack " +"and enjoy." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "large water wheel" -msgid_plural "large water wheels" +#: lang/json/GENERIC_from_json.py +msgid "light detector" +msgid_plural "light detectors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'large water wheel'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +#. ~ Description for {'str': 'light detector'} +#: lang/json/GENERIC_from_json.py msgid "" -"A large water wheel with wooden supports. Will recharge the vehicle's " -"electrical power when built over shallow moving water." +"This is a photodiode on a chip, designed to convert incoming light to " +"electrical energy for quantification." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "electric motor" -msgid_plural "electric motors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'electric motor'} #: lang/json/GENERIC_from_json.py -msgid "A powerful electric motor. Useful for crafting." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "enhanced electric motor" -msgid_plural "enhanced electric motors" +msgid "glass prism" +msgid_plural "glass prisms" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'enhanced electric motor'} +#. ~ Description for {'str': 'glass prism'} #: lang/json/GENERIC_from_json.py msgid "" -"A very powerful and yet lightweight electric motor. Useful for crafting." +"This is a high quality crystal glass prism for separating and redirecting " +"light." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "super electric motor" -msgid_plural "super electric motors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'super electric motor'} #: lang/json/GENERIC_from_json.py -msgid "The most powerfull electric motor on the market. Useful for crafting." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "large electric motor" -msgid_plural "large electric motors" +msgid "small glass tube" +msgid_plural "small glass tubes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'large electric motor'} +#. ~ Description for {'str': 'small glass tube'} #: lang/json/GENERIC_from_json.py -msgid "A large and very powerful electric motor. Useful for crafting." +msgid "" +"This is a small glass tube. What more could you possibly want to know about " +"it?" msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "small electric motor" -msgid_plural "small electric motors" +#: lang/json/GENERIC_from_json.py +msgid "plastic stopcock" +msgid_plural "plastic stopcocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'small electric motor'} +#. ~ Description for {'str': 'plastic stopcock'} #: lang/json/GENERIC_from_json.py -msgid "A small electric motor. Useful for crafting." +msgid "" +"Stop giggling. This is a tiny plastic valve, get your mind out of the " +"gutter." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "tiny electric motor" -msgid_plural "tiny electric motors" +#: lang/json/GENERIC_from_json.py +msgid "test tube rack" +msgid_plural "test tube racks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'tiny electric motor'} +#. ~ Description for {'str': 'test tube rack'} #: lang/json/GENERIC_from_json.py -msgid "A tiny electric motor. Useful for crafting." +msgid "" +"A plastic box with holes in it. Not that exciting, unless you're desperate " +"for a place to store a test tube. Then it's great." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "muffler" -msgid_plural "mufflers" +#: lang/json/GENERIC_from_json.py +msgid "microcentrifuge tube tray" +msgid_plural "microcentrifuge tube trays" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'muffler'} +#. ~ Description for {'str': 'microcentrifuge tube tray'} #: lang/json/GENERIC_from_json.py msgid "" -"A muffler from a car. Very unwieldy as a weapon. Useful in a few crafting " -"recipes." +"A plastic tray riddled with small holes, for storing microcentrifuge tubes." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "back-up beeper" -msgid_plural "back-up beepers" +#: lang/json/GENERIC_from_json.py +msgid "ring stand" +msgid_plural "ring stands" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'back-up beeper'} +#. ~ Description for {'str': 'ring stand'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a safety device intended to warn passersby of a vehicle moving in " -"reverse, but the usage of it now seems terribly unwise." +"This is a heavy metal plate and a sturdy rod, for clamping lab stuff to." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "stereo system" -msgid_plural "stereo systems" +#: lang/json/GENERIC_from_json.py +msgid "set of ring stand clamps" +msgid_plural "sets of ring stand clamps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stereo system'} +#. ~ Description for {'str': 'set of ring stand clamps', 'str_pl': 'sets of ring stand clamps'} #: lang/json/GENERIC_from_json.py msgid "" -"A stereo system with speakers. It is capable of being hooked up to a " -"vehicle." +"This is a small box with a jumbled assortment of clamps for mounting on ring " +"stands. There seems to be some sort of rule that all of them are missing at " +"least one wing nut for tightening them; it looks like judicious use of twist " +"ties, duct tape, and other random stuff has been used to compensate." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chime loudspeakers" -msgid_plural "chime loudspeakers" +msgid "stapler" +msgid_plural "staplers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'chime loudspeakers'} +#. ~ Description for {'str': 'stapler'} #: lang/json/GENERIC_from_json.py -msgid "" -"A stereo system with loudspeakers and a built-in set of simple melodies that " -"it will play. Commonly used by ice cream trucks to draw the attention of " -"children in the days when children wanted ice cream more than brains." +msgid "A stapler for fastening sheets of paper together." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sheet metal" -msgid_plural "sheet metal" +msgid "pen" +msgid_plural "pens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'sheet metal'} -#. ~ Description for TEST sheet metal +#. ~ Description for {'str': 'pen'} #: lang/json/GENERIC_from_json.py -msgid "A thin sheet of metal." +msgid "A plastic ball point pen." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wired sheet metal" -msgid_plural "wired sheet metal" +msgid "bone sewing awl" +msgid_plural "bone sewing awls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'wired sheet metal'} +#. ~ Description for {'str': 'bone sewing awl'} #: lang/json/GENERIC_from_json.py -msgid "Sheet metal that has had light housing wired into it." +msgid "" +"This is a crude sharpened bone awl; those were used for leatherworking " +"before metal was discovered. It can also serve as an improvised stabbing " +"weapon, but will break quickly." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wooden armor kit" -msgid_plural "wooden armor kits" +msgid "steel sewing awl" +msgid_plural "steel sewing awls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wooden armor kit'} +#. ~ Description for {'str': 'steel sewing awl'} #: lang/json/GENERIC_from_json.py -msgid "A bundle of two by fours prepared to be used as vehicle armor." +msgid "" +"This is a steel awl with a wooden grip, usually used for leatherworking. It " +"can also serve as an improvised stabbing weapon, but will break quickly." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "steel plating" -msgid_plural "steel plating" +#: lang/json/GENERIC_from_json.py +msgid "knitting needles" +msgid_plural "pairs of knitting needles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'steel plating'} +#. ~ Description for {'str': 'knitting needles', 'str_pl': 'pairs of knitting needles'} #: lang/json/GENERIC_from_json.py -msgid "A piece of armor plating made of steel." +msgid "" +"A pair of stout wooden needles with round ends used to turn thread and yarn " +"into cloth." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "superalloy plating" -msgid_plural "superalloy plating" +#: lang/json/GENERIC_from_json.py +msgid "frame loom" +msgid_plural "frame looms" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'superalloy plating'} +#. ~ Description for {'str': 'frame loom'} #: lang/json/GENERIC_from_json.py -msgid "A piece of armor plating made of sturdy superalloy." +msgid "" +"This is a rather bulky and primitive wooden frame which can be used to weave " +"cloth sheets. It is very slow, though." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "superalloy sheet" -msgid_plural "superalloy sheets" +msgid "wooden shed stick" +msgid_plural "wooden shed sticks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'superalloy sheet'} +#. ~ Description for {'str': 'wooden shed stick'} #: lang/json/GENERIC_from_json.py msgid "" -"A sheet of sturdy superalloy, incredibly hard, yet incredibly malleable." +"This is a short thin flat wooden stick, used as a tool while weaving cloth " +"with a frame loom." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "spiked plating" -msgid_plural "spiked plating" +#: lang/json/GENERIC_from_json.py +msgid "tailoring pattern set" +msgid_plural "tailoring pattern sets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'spiked plating'} +#. ~ Description for {'str': 'tailoring pattern set'} #: lang/json/GENERIC_from_json.py msgid "" -"A piece of armor plating made of steel. It is covered with menacing spikes." +"This is a large set of tailoring patterns made from paper. They're useful " +"for making any kind of cloth or leather items from scratch, but are " +"necessary for more advanced projects." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hard plating" -msgid_plural "hard platings" +#: lang/json/GENERIC_from_json.py +msgid "razor blade" +msgid_plural "razor blades" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hard plating'} +#. ~ Description for {'str': 'razor blade'} #: lang/json/GENERIC_from_json.py -msgid "A piece of very thick armor plating made of steel." +msgid "A double-edged razor blade." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "military composite plating" -msgid_plural "military composite platings" +msgid "hatchet" +msgid_plural "hatchets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'military composite plating'} +#. ~ Description for {'str': 'hatchet'} #: lang/json/GENERIC_from_json.py msgid "" -"A thick sheet of military grade armor, best bullet stopper you can stick on " -"a vehicle." +"A one-handed hatchet. Makes a great melee weapon, and is useful both for " +"chopping things and for use as a hammer." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chitin armor kit" -msgid_plural "chitin armor kits" +msgid "carding paddles" +msgid_plural "pairs of carding paddles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'chitin armor kit'} +#. ~ Description for {'str': 'carding paddles', 'str_pl': 'pairs of carding paddles'} #: lang/json/GENERIC_from_json.py -msgid "Light chitin plating made for a vehicle." +msgid "" +"A pair of toothy wooden paddles used to clean fibers for use in textile " +"production." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "biosilicified chitin armor kit" -msgid_plural "biosilicified chitin armor kits" +msgid "distaff and spindle" +msgid_plural "distaves and spindles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'biosilicified chitin armor kit'} +#. ~ Description for {'str': 'distaff and spindle', 'str_pl': 'distaves and spindles'} #: lang/json/GENERIC_from_json.py -msgid "Durable silica-coated chitin plating made for a vehicle." +msgid "" +"A pair of specialized wooden rods used to spin fibers into thread and yarn." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bone armor kit" -msgid_plural "bone armor kits" +msgid "vehicle alternator" +msgid_plural "vehicle alternators" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bone armor kit'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "car alternator" +msgid_plural "car alternators" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'car alternator'} #: lang/json/GENERIC_from_json.py -msgid "Bone plating made for a vehicle." +msgid "A standard alternator used to power vehicle electrical systems." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "shredder" -msgid_plural "shredders" +msgid "motorbike alternator" +msgid_plural "motorbike alternators" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'shredder'} +#. ~ Description for {'str': 'motorbike alternator'} #: lang/json/GENERIC_from_json.py msgid "" -"This menacing looking attachment is meant to be powered by a vehicle's " -"engine. Upon doing so, the circular blades of this device will rotate " -"rapidly; anything in front of it is likely to be ripped to shreds. It is " -"sturdy enough to withstand multiple impacts, and is designed to detach if it " -"would take a hit that would break it." +"A compact lightweight alternator used to power small vehicle electrical " +"systems." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "vehicle crafting rig" -msgid_plural "vehicle crafting rigs" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "bicycle alternator" +msgid_plural "bicycle alternators" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'bicycle alternator'} +#: lang/json/GENERIC_from_json.py +msgid "A very lightweight alternator used to power a bicycle's headlights." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "onboard chemistry lab" -msgid_plural "onboard chemistry labs" +msgid "truck alternator" +msgid_plural "truck alternators" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'onboard chemistry lab'} +#. ~ Description for {'str': 'truck alternator'} #: lang/json/GENERIC_from_json.py msgid "" -"Assembled from a chemistry set attached to a complex wiring harness, it is " -"well suited to most any chemistry project you could imagine. Unable to " -"utilize standard batteries, it requires an external supply of electricity to " -"operate." +"A larger and more powerful alternator used to power vehicle electrical " +"systems." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "FOODCO kitchen buddy" -msgid_plural "FOODCO kitchen buddies" +msgid "7.5kW generator" +msgid_plural "7.5kW generators" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'FOODCO kitchen buddy', 'str_pl': 'FOODCO kitchen buddies'} +#. ~ Description for {'str': '7.5kW generator'} #: lang/json/GENERIC_from_json.py msgid "" -"Assembled from a set of instructions you found in an old book of DIY " -"projects, the *FOODCO kitchen buddy* claims to be *the perfect solution to " -"all your home-cooking needs!*. While it is surprisingly handy for vacuum-" -"sealing as well as dehydrating food, the cheery sales pitch neglected to " -"mention A - how awkward the damn thing is, B - That you still need a normal " -"kitchen and C - how it doesn't take batteries. You're going to have to weld " -"it to a vehicle, or something else with a supply of electricity, if you want " -"to use it. In addition to the food preservation features, it also has a " -"food processor, a water-purification system, a drawer for holding extra " -"tools, and for some insane reason, a press and die set for hand-loading " -"ammunition." +"A bulky but efficient electrical generator designed to be attached to an " +"engine." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vehicle forge rig" -msgid_plural "vehicle forge rigs" +msgid "rebar grate" +msgid_plural "rebar grates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle forge rig'} +#. ~ Description for {'str': 'rebar grate'} #: lang/json/GENERIC_from_json.py msgid "" -"A forge rig made to run off a vehicle's storage battery with integrated tool " -"storage for metalworking equipment." +"Interlocked sections of rebar that allows for light and effective " +"reinforcement of vehicle sections." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "vehicle kiln" -msgid_plural "vehicle kilns" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "shock absorber" +msgid_plural "shock absorbers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle kiln'} +#. ~ Description for {'str': 'shock absorber'} #: lang/json/GENERIC_from_json.py -msgid "An electric kiln made to run off a vehicle's storage battery." +msgid "" +"This makeshift combination of springs and scrap, when attached to a vehicle " +"section, protects that section from impacts. The springs can absorb a " +"surprising amount of damage." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "RV kitchen unit" -msgid_plural "RV kitchen units" +msgid "storage battery case" +msgid_plural "storage battery cases" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'RV kitchen unit'} +#. ~ Description for {'str': 'storage battery case'} #: lang/json/GENERIC_from_json.py msgid "" -"A vehicle mountable electric range and sink unit with integrated tool " -"storage for cooking utensils." +"An empty case that can hold a storage battery. Complete with charging " +"controller chip and connecting wires." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vehicle welding rig" -msgid_plural "vehicle welding rigs" +msgid "wood boat hull" +msgid_plural "wood boat hulls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle welding rig'} +#. ~ Description for {'str': 'wood boat hull'} #: lang/json/GENERIC_from_json.py msgid "" -"A welding rig made to run off a vehicle's storage battery. It has a " -"soldering iron attachment for delicate work, and a compartment to store your " -"extra tools in." +"A wooden board that keeps the boat afloat. Add boat hulls to a vehicle " +"until it floats. Then attach oars or a motor to get the boat to move." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "heavy-duty military rotors" -msgid_plural "sets of heavy-duty military rotors" +msgid "plastic boat hull" +msgid_plural "plastic boat hulls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'heavy-duty military rotors', 'str_pl': 'sets of heavy-duty military rotors'} +#. ~ Description for {'str': 'plastic boat hull'} #: lang/json/GENERIC_from_json.py -msgid "A set of four rotor blades from a military attack helicopter." +msgid "" +"A rigid plastic sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "small civilian helicopter rotors" -msgid_plural "sets of small civilian helicopter rotors" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "carbon fiber boat hull" +msgid_plural "carbon fiber boat hulls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'small civilian helicopter rotors', 'str_pl': 'sets of small civilian helicopter rotors'} +#. ~ Description for {'str': 'carbon fiber boat hull'} #: lang/json/GENERIC_from_json.py -msgid "A set of four rotor blades from a civilian light helicopter." +msgid "" +"A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a " +"vehicle until it floats. Then attach oars or a motor to get the boat to " +"move." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "seat" -msgid_plural "seats" +#: lang/json/GENERIC_from_json.py +msgid "oars" +msgid_plural "oars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'seat'} +#. ~ Description for {'str_sp': 'oars'} #: lang/json/GENERIC_from_json.py -msgid "A soft car seat made from synthetic fabric." +msgid "Oars for a boat." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "leather seat" -msgid_plural "leather seats" +msgid "sail" +msgid_plural "sails" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'leather seat'} +#. ~ Description for {'str': 'sail'} #: lang/json/GENERIC_from_json.py -msgid "A soft car seat covered with leather." +msgid "Sails for a boat." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "saddle" -msgid_plural "saddles" +msgid "inflatable section" +msgid_plural "inflatable section" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'saddle'} +#. ~ Description for {'str_sp': 'inflatable section'} #: lang/json/GENERIC_from_json.py -msgid "A leather-covered seat designed to be straddled." +msgid "An inflatable boat section." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar panel" -msgid_plural "solar panels" +msgid "inflatable airbag" +msgid_plural "inflatable airbag" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'solar panel'} +#. ~ Description for {'str_sp': 'inflatable airbag'} #: lang/json/GENERIC_from_json.py -msgid "" -"Electronic device that can convert solar radiation into electric power. " -"Useful for a vehicle." +msgid "An inflatable airbag." msgstr "" #: lang/json/GENERIC_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "reinforced solar panel" -msgid_plural "reinforced solar panels" +msgid "wire basket" +msgid_plural "wire baskets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'reinforced solar panel'} +#. ~ Description for {'str': 'wire basket'} #: lang/json/GENERIC_from_json.py -msgid "" -"A solar panel that has been covered with a pane of reinforced glass to " -"protect the delicate solar cells from zombies or errant baseballs. The " -"glass causes this panel to produce slightly less power than a normal panel. " -"Useful for a vehicle." +msgid "A large wire basket from a shopping cart." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar panel" -msgid_plural "upgraded solar panels" +msgid "bike rack" +msgid_plural "bike racks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'upgraded solar panel'} +#. ~ Description for {'str': 'bike rack'} #: lang/json/GENERIC_from_json.py msgid "" -"Electronic device that can convert solar radiation into electric power. " -"This panel has been upgraded to convert more sunlight into power. Useful " -"for a vehicle." +"A collection of pipes, cams, and straps, mounted on the edge of a vehicle " +"and used to support another vehicle for transport. It must be mounted on a " +"vehicle to be used." msgstr "" #: lang/json/GENERIC_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar panel" -msgid_plural "upgraded reinforced solar panels" +msgid "cargo lock set" +msgid_plural "cargo lock sets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'upgraded reinforced solar panel'} +#. ~ Description for {'str': 'cargo lock set'} #: lang/json/GENERIC_from_json.py -msgid "" -"An upgraded solar panel that has been covered with a pane of reinforced " -"glass to protect the delicate solar cells from zombies or errant baseballs. " -"The glass causes this panel to produce slightly less power than a normal " -"upgraded panel. Useful for a vehicle." +msgid "A set of locks designed to be installed on a vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "solar cell" -msgid_plural "solar cells" +msgid "folding wire basket" +msgid_plural "folding wire baskets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'solar cell'} +#. ~ Description for {'str': 'folding wire basket'} #: lang/json/GENERIC_from_json.py -msgid "" -"A small electronic device that can convert solar radiation into electric " -"power. Useful for crafting." +msgid "A large wire basket from a shopping cart, modified to be foldable." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fancy table" -msgid_plural "fancy tables" +msgid "bike basket" +msgid_plural "bike baskets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'fancy table'} +#. ~ Description for {'str': 'bike basket'} #: lang/json/GENERIC_from_json.py -msgid "" -"A very fancy table from a very fancy RV. If times were better it might be " -"useful for something more than firewood." +msgid "A simple bike basket. It is small and foldable." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wooden table" -msgid_plural "wooden tables" +msgid "cargo carrier" +msgid_plural "cargo carriers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'wooden table'} +#. ~ Description for {'str': 'cargo carrier'} #: lang/json/GENERIC_from_json.py -msgid "A crude wooden table." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "workbench" -msgid_plural "workbenches" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for workbench -#. ~ Description for {'str': 'workbench', 'str_pl': 'workbenches'} -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "" -"A sturdy workbench built out of metal. It is perfect for crafting large and " -"heavy things." +"A heavy frame outfitted with tie-downs and attachment points for carrying " +"cargo." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "turret mount" -msgid_plural "turret mounts" +msgid "floor trunk" +msgid_plural "floor trunks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'turret mount'} +#. ~ Description for {'str': 'floor trunk'} #: lang/json/GENERIC_from_json.py -msgid "A universal mount for weapons intended to be installed as turrets." +msgid "" +"A section of flooring with a cargo-space beneath, and a hinged door for " +"access." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vehicle cooler" -msgid_plural "vehicle coolers" +msgid "livestock carrier" +msgid_plural "livestock carriers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle cooler'} +#. ~ Description for {'str': 'livestock carrier'} #: lang/json/GENERIC_from_json.py -msgid "A vehicle-mounted area cooler." +msgid "" +"A heavy frame outfitted with tie-downs and attachment points for carrying " +"cargo, with additional railings to keep a large animal in place. It is " +"meant to hold large animals for transport. Use it on a suitable animal to " +"capture, use it on an empty tile to release." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "vehicle heater" -msgid_plural "vehicle heaters" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "mounted spare tire" +msgid_plural "mounted spare tires" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle heater'} +#. ~ Description for {'str': 'mounted spare tire'} #: lang/json/GENERIC_from_json.py -msgid "A vehicle-mounted area heater." +msgid "" +"A spare tire mounted on a carrier rig, ready to be attached to the rear " +"bumper of a vehicle." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "towel hanger" -msgid_plural "towel hangers" +#: lang/json/GENERIC_from_json.py +msgid "animal locker" +msgid_plural "animal lockers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'towel hanger'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "A towel hanger with towels." +#. ~ Description for {'str': 'animal locker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A locker used to contain animals safely during transportation if installed " +"properly. There is room for animal food and other animal care goods. It is " +"meant to hold medium or smaller animals for transport. Use it on a suitable " +"animal to capture, use it on an empty tile to release." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "recharging station" -msgid_plural "recharging stations" +#: lang/json/GENERIC_from_json.py +msgid "camera display" +msgid_plural "camera displays" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'recharging station'} +#. ~ Description for {'str': 'camera display'} #: lang/json/GENERIC_from_json.py -msgid "" -"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." +msgid "A set of small monitors. Required to view cameras' output." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "battery charger" -msgid_plural "battery chargers" +msgid "security camera" +msgid_plural "security cameras" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'battery charger'} +#. ~ Description for {'str': 'security camera'} #: lang/json/GENERIC_from_json.py msgid "" -"A small device for recharging batteries, given a source of electricty. It " -"could easily be wired into a vehicle with power. It will slowly charge all " -"rechargeable batteries (battery cells, lead-acid batteries, etc) placed " -"directly within its storage space. It can only be installed onto existing " -"storage compartments." +"A security camera you could connect to a display. Image quality is quite " +"low, but the field of vision is great." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "washing machine" -msgid_plural "washing machines" +#: lang/json/GENERIC_from_json.py +msgid "vehicle controls" +msgid_plural "sets of vehicle controls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'washing machine'} +#. ~ Description for {'str': 'vehicle controls', 'str_pl': 'sets of vehicle controls'} #: lang/json/GENERIC_from_json.py -msgid "A very small washing machine designed for use in vehicles." +msgid "A set of various vehicle controls. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "programmable autopilot" -msgid_plural "programmable autopilots" +#: lang/json/GENERIC_from_json.py +msgid "vehicle tracking device" +msgid_plural "vehicle tracking devices" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'programmable autopilot'} +#. ~ Description for {'str': 'vehicle tracking device'} #: lang/json/GENERIC_from_json.py msgid "" -"A computer system hooked up to the steering and engine of a vehicle to allow " -"it to follow simple paths." +"A vehicle tracking device. When installed on a vehicle it allows you track " +"the vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mountable autoclave" -msgid_plural "mountable autoclaves" +msgid "rein and tackle" +msgid_plural "reins and tackles" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'mountable autoclave'} +#. ~ Description for {'str': 'rein and tackle', 'str_pl': 'reins and tackles'} #: lang/json/GENERIC_from_json.py -msgid "This autoclave has been rigged to run off a vehicle power grid." +msgid "A set of leather bindings to control a mountable creature." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "minifridge" -msgid_plural "minifridges" +msgid "dashboard" +msgid_plural "dashboards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'minifridge'} +#. ~ Description for {'str': 'dashboard'} +#. ~ Description for {'str': 'electronics control unit'} #: lang/json/GENERIC_from_json.py msgid "" -"A very small fridge for keeping food cool. Provides some insulation from " -"outside weather." +"A vehicle instrument panel with various gauges and switches. Useful for " +"crafting." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "minifreezer" -msgid_plural "minifreezers" +msgid "electronics control unit" +msgid_plural "electronics control units" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'minifreezer'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Compact version of a chest freezer, designed as a mobile solution for " -"freezing food. Provides insulation from the elements." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "dishwasher" -msgid_plural "dishwashers" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "drive by wire controls" +msgid_plural "sets of drive by wire controls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'dishwasher'} +#. ~ Description for {'str': 'drive by wire controls', 'str_pl': 'sets of drive by wire controls'} #: lang/json/GENERIC_from_json.py -msgid "A very small dishwasher designed for use in vehicles." +msgid "" +"Fully electronic vehicle control system. You could control it remotely if " +"you had proper tools." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "refrigerated tank" -msgid_plural "refrigerated tanks" +msgid "robot driving unit" +msgid_plural "robot driving units" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'refrigerated tank'} +#. ~ Description for {'str': 'robot driving unit'} #: lang/json/GENERIC_from_json.py msgid "" -"A 60L refrigerated tank for keeping liquids cool. Provides some insulation " -"from outside weather." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "water faucet" -msgid_plural "water faucets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'water faucet'} -#: lang/json/GENERIC_from_json.py -msgid "A metal faucet that can be attached to a water tank for easy access." +"A set of servos, microcontrollers and other devices, together capable of " +"driving an unmanned vehicle. Its AI is not functional, but it should still " +"have some sort of maintenance mode." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "light wheel mount" -msgid_plural "light wheel mounts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'light wheel mount'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "A piece of metal with holes suitable for a bike or motorbike wheel." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "medium wheel hub assembly" -msgid_plural "medium wheel hub assemblies" +msgid "turret control unit" +msgid_plural "turret control units" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'medium wheel hub assembly', 'str_pl': 'medium wheel hub assemblies'} +#. ~ Description for {'str': 'turret control unit'} #: lang/json/GENERIC_from_json.py msgid "" -"A metal assembly that allows bolting a wheel on a car. Fit for a car wheel." +"A set of motor, camera, and various electronic modules banded together to " +"allow for tracking targets, friend-or-foe identification, and firing the " +"connected turret in full automatic mode." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "heavy wheel hub assembly" -msgid_plural "heavy wheel hub assemblies" +#: lang/json/GENERIC_from_json.py +msgid "massive engine block" +msgid_plural "massive engine blocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'heavy wheel hub assembly', 'str_pl': 'heavy wheel hub assemblies'} +#. ~ Description for {'str': 'massive engine block'} #: lang/json/GENERIC_from_json.py msgid "" -"A heavy metal assembly that allows bolting a wheel on a car. Fit for a " -"large car wheel." +"The beginnings of a massive gas or diesel engine. It's not good for much of " +"anything on its own." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Dana's family sourdough starter" -msgid_plural "Dana's family sourdough starter" +msgid "large engine block" +msgid_plural "large engine blocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': "Dana's family sourdough starter"} +#. ~ Description for {'str': 'large engine block'} #: lang/json/GENERIC_from_json.py msgid "" -"This crusty old jar has a glow-in-the-dark millennium falcon decal on the " -"side, and a label that reads, \"Landough Calrisean. Dana's. Do not touch " -"on pain of death\". It's been abandoned for some time and doesn't look like " -"it could be readily salvaged as a sourdough culture, but maybe an " -"experienced sourdough baker could manage it." +"The beginnings of a large gas or diesel engine. It's not good for much of " +"anything on its own." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "10 plastic bags" -msgid_plural "10 plastic bags" +msgid "medium engine block" +msgid_plural "medium engine blocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': '10 plastic bags'} +#. ~ Description for {'str': 'medium engine block'} #: lang/json/GENERIC_from_json.py msgid "" -"10 plastic bags, folded smooth and wrapped tightly together with a string." +"The beginnings of a medium gas or diesel engine. It's not good for much of " +"anything on its own." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "coal pallet" -msgid_plural "coal pallets" +msgid "small engine block" +msgid_plural "small engine blocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for coal pallet +#. ~ Description for {'str': 'small engine block'} #: lang/json/GENERIC_from_json.py -msgid "A large block of semi-processed coal." +msgid "" +"The beginnings of a small gas or diesel engine. It's not good for much of " +"anything on its own." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "charged capacitor" -msgid_plural "charged capacitors" +msgid "tiny engine block" +msgid_plural "tiny engine blocks" msgstr[0] "" msgstr[1] "" -#. ~ Description for charged capacitor +#. ~ Description for {'str': 'tiny engine block'} #: lang/json/GENERIC_from_json.py msgid "" -"A single capacitor charged with current to be used by a laser weapon or " -"similar armament." +"The beginnings of a tiny gas or diesel engine. It's not good for much of " +"anything on its own." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lead battery plate" -msgid_plural "lead battery plates" +msgid "steel boom" +msgid_plural "steel booms" msgstr[0] "" msgstr[1] "" -#. ~ Description for lead battery plate +#. ~ Description for {'str': 'steel boom'} #: lang/json/GENERIC_from_json.py -msgid "An electrode plate from a lead-acid battery." +msgid "" +"A large rigid steel boom. If attached to a frame it could be used to lift " +"up to 20 metric tonnes." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "forged sword" -msgid_plural "forged swords" +msgid "telescopic cantilever" +msgid_plural "telescopic cantilevers" msgstr[0] "" msgstr[1] "" -#. ~ Description for forged sword +#. ~ Description for {'str': 'telescopic cantilever'} #: lang/json/GENERIC_from_json.py msgid "" -"A common short sword, forged from several pieces of steel. The pointy end " -"is the dangerous one." +"A small steel telescoping cantilever. If attached to a frame it could be " +"used to lift up to 3.5 metric tonnes." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "skewer" -msgid_plural "skewers" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "pallet lifter" +msgid_plural "pallet lifters" msgstr[0] "" msgstr[1] "" -#. ~ Description for skewer +#. ~ Description for {'str': 'pallet lifter'} #: lang/json/GENERIC_from_json.py -msgid "A thin wooden skewer. Squirrel on a stick, anyone?" +msgid "" +"A makeshift pallet lifter. If attached to a frame it could be used to lift " +"up to 0.5 metric tonnes." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "vehicle curtain" -msgid_plural "vehicle curtains" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "rockwheel" +msgid_plural "rockwheels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle curtain'} +#. ~ Description for {'str': 'rockwheel'} #: lang/json/GENERIC_from_json.py -msgid "" -"A rod, a few metal rings, and a large piece of cloth with some strings " -"attached for securely fastening the edges." +msgid "A large and heavy jagged metal disc to dig trenches." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "living brain in a jar" -msgid_plural "jars full of living brains" +msgid "airjack" +msgid_plural "airjacks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'living brain in a jar', 'str_pl': 'jars full of living brains'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'airjack'} +#. ~ Description for {'str': 'air jack system'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"This jar contains a human brain kept alive by mi-go technology. It has " -"metal veined tendrils that appear to allow it to connect to various devices." +"An extendable metal pylon used to replace a portable jack. If mounted to a " +"vehicle, it could be used to lift it up." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "humming heart" -msgid_plural "humming hearts" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "motorcycle kickstand" +msgid_plural "motorcycle kickstands" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'humming heart'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'motorcycle kickstand'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"This heartlike organ has multiple valves and upon its proper removal from " -"the bioweapons corpse each valve sealed itself. It hums gently in your " -"hands, as if waiting for an appropriate receptacle." +"A kickstand to keep the bike from falling over. You could use this to lean " +"it forward or backward to change a tire." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sensory cluster" -msgid_plural "sensory clusters" +msgid "vehicle scoop" +msgid_plural "vehicle scoops" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sensory cluster'} +#. ~ Description for {'str': 'vehicle scoop'} #: lang/json/GENERIC_from_json.py msgid "" -"This lump of flesh has various lobes protruding from it that at intervals " -"will emit toned sounds. Perhaps it works via echolocation. Like all mi-go " -"bioparts the openings on this piece closed up after it was cut free and it " -"seems to have gone into a form of hibernation with the pulses occurring " -"slower and slower as it conserves energy." +"An assembly of motors and sheet metal that allows a vehicle to clean the " +"road surface by removing debris and contaminants." msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "bioweapon chassis" -msgid_plural "bioweapon chassis" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "seed drill" +msgid_plural "seed drills" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'bioweapon chassis'} +#. ~ Description for {'str': 'seed drill'} #: lang/json/GENERIC_from_json.py msgid "" -"This cross between a sea anemone and what you imagine a dragon's mouth would " -"look like is the core body of the bioweapon. You cannot imagine what you " -"could make out of this but maybe someone somewhere does." +"An assembly of tubes, spikes, and wheels, that when dragged along the " +"ground, allows a vehicle to plant seeds automatically in suitably tilled " +"land." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "broken mi-go turret" -msgid_plural "broken mi-go turrets" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reaper" +msgid_plural "reapers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken mi-go turret'} +#. ~ Description for {'str': 'reaper'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken mi-go turret. It's leaking fluids and smells you can't identify. " -"Could be butchered for parts." +"An assembly of a blade, wheels, and a small lever for engaging/disengaging " +"used to cut down crops prior to picking them up." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "broken sentinel-lx" -msgid_plural "broken sentinels-lx" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "advanced reaper" +msgid_plural "advanced reapers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken sentinel-lx', 'str_pl': 'broken sentinels-lx'} +#. ~ Description for {'str': 'advanced reaper'} #: lang/json/GENERIC_from_json.py msgid "" -"The irreparably broken remains of a Sentinel-lx. Could be gutted for " -"valuable parts." +"An advanced electronic device used to cut down, collect and store crops." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "broken bloodhound drone" -msgid_plural "broken bloodhound drones" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "advanced seed drill" +msgid_plural "advanced seed drills" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken bloodhound drone'} +#. ~ Description for {'str': 'advanced seed drill'} #: lang/json/GENERIC_from_json.py msgid "" -"This bloodhound won't be chasing anyone anymore. Could be gutted for parts." +"An assembly of tubes, spikes, and wheels, that when dragged along the " +"ground, allows a vehicle to plant seeds automatically in suitably tilled " +"land. This one is equipped with an electronic control system and will avoid " +"damaging itself when used on untilled land." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Crypto coin" -msgid_plural "Crypto coins" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "plow" +msgid_plural "plows" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Crypto coin'} +#. ~ Description for {'str': 'plow'} #: lang/json/GENERIC_from_json.py -msgid "" -"PrepNet had been heavily involved in avoiding taxes by using untraceable " -"internet currencies. These however are physical coins with random numbers " -"sequences embossed on them and RFID chips inside." +msgid "A heavy assembly of wheels and steel blades that turn up the ground." msgstr "" #: lang/json/GENERIC_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" +msgid "foldable-light frame" +msgid_plural "foldable-light frames" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#. ~ Description for {'str': 'foldable-light frame'} #: lang/json/GENERIC_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." +msgid "A small foldable lightweight frame made from pipework." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "vehicle refrigerator" -msgid_plural "vehicle refrigerators" +#: lang/json/GENERIC_from_json.py +msgid "extra-light frame" +msgid_plural "extra-light frames" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle refrigerator'} +#. ~ Description for {'str': 'extra-light frame'} #: lang/json/GENERIC_from_json.py -msgid "" -"A household refrigerator with impressive capacity. Its power connection has " -"been refurbished, and it can be mounted onto a vehicle to draw from its " -"power." +msgid "A small lightweight frame made from pipework. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py -msgid "vehicle freezer" -msgid_plural "vehicle freezers" +#: lang/json/GENERIC_from_json.py +msgid "steel frame" +msgid_plural "steel frames" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle freezer'} +#. ~ Description for {'str': 'steel frame'} #: lang/json/GENERIC_from_json.py -msgid "" -"This refurbished refrigerator has been stripped of much of its internal " -"components and converted to run at a much lower temperature, causing it to " -"serve as a freezer for more power. Like its predecessor, it runs on vehicle " -"power." +msgid "A large frame made of steel. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "scrap titanium" -msgid_plural "scrap titanium" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "heavy duty frame" +msgid_plural "heavy duty frames" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'scrap titanium'} +#. ~ Description for {'str': 'heavy duty frame'} #: lang/json/GENERIC_from_json.py -msgid "A piece of light titanium, usable for crafting or repairs." +msgid "A large, reinforced steel frame, used in military vehicle construction." msgstr "" -#: lang/json/GENERIC_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "MetalMaster forge buddy" -msgid_plural "MetalMaster forge buddies" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "wooden frame" +msgid_plural "wooden frames" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'MetalMaster forge buddy', 'str_pl': 'MetalMaster forge buddies'} +#. ~ Description for {'str': 'wooden frame'} #: lang/json/GENERIC_from_json.py -msgid "" -"From the makers of the best-selling* FOODCO kitchen buddy comes the " -"MetalMaster forge buddy, for all your metalworking, firing, and welding " -"needs! It's just as clunky and awkward as the thing it's spinning off, and " -"still requires a vehicle battery to function." +msgid "A large frame made of wood. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "KitchenMaster cooking buddy" -msgid_plural "KitchenMaster cooking buddies" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "foldable wooden frame" +msgid_plural "foldable wooden frames" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'KitchenMaster cooking buddy', 'str_pl': 'KitchenMaster cooking buddies'} +#. ~ Description for {'str': 'foldable wooden frame'} #: lang/json/GENERIC_from_json.py -msgid "" -"Because it *clearly* needed one, this large all-in-one station provides the " -"functions of FOODCO's kitchen buddy, now with complementary fume hoods and " -"chemistry materials. Why a chef would need a chemical rig is anyone's " -"guess, but you can mount it on a vehicle to make use of it." +msgid "A small foldable frame made from scrap wood." msgstr "" -#: lang/json/GENERIC_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "cooking rig" -msgid_plural "cooking rigs" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "light wooden frame" +msgid_plural "light wooden frames" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cooking rig'} +#. ~ Description for {'str': 'light wooden frame'} #: lang/json/GENERIC_from_json.py msgid "" -"Skillet, pot, hotplate, and chemistry set; everything you need to cook food " -"and chemicals. Includes proper fume vents and a separator, so you don't " -"contaminate your food with toxic chemicals." +"A small frame made of few pieces of wood, held together by rope. Useful for " +"crafting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "nuclear waste" -msgid_plural "nuclear waste" +msgid "car headlight" +msgid_plural "car headlights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'nuclear waste'} +#. ~ Description for {'str': 'car headlight'} #: lang/json/GENERIC_from_json.py -msgid "A small pellet of silvery metal, still warm to the touch." +msgid "A vehicle headlight to light up the way." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "nuclear fuel pellet" -msgid_plural "nuclear fuel pellets" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "motorcycle headlight" +msgid_plural "motorcycle headlights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nuclear fuel pellet'} +#. ~ Description for {'str': 'motorcycle headlight'} #: lang/json/GENERIC_from_json.py -msgid "A small pellet of fissile material. Handle carefully." +msgid "A motorcycle headlight to light up the way." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" +msgid "wide-angle car headlight" +msgid_plural "wide-angle car headlights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hazardous waste drum'} +#. ~ Description for {'str': 'wide-angle car headlight'} #: lang/json/GENERIC_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." +msgid "A wide-angle vehicle headlight to light up the way." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "folded atomic butter churn" -msgid_plural "folded atomic butter churns" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced headlight" +msgid_plural "reinforced headlights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'folded atomic butter churn'} +#. ~ Description for {'str': 'reinforced headlight'} #: lang/json/GENERIC_from_json.py msgid "" -"The Rivtech Churninator 4000, the only churn to be banned by 13 religious " -"sects. The legs are currently folded up for travel. Unlike a standard " -"churn that requires cream separated from raw milk this churn requires only " -"raw milk, salt and a healthy respect for glowing objects." +"A vehicle headlight with a cage built around it to protect it from damage " +"without reducing its effectiveness." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "titanium implant" -msgid_plural "titanium implants" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced wide-angle headlight" +msgid_plural "reinforced wide-angle headlights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'titanium implant'} +#. ~ Description for {'str': 'reinforced wide-angle headlight'} #: lang/json/GENERIC_from_json.py msgid "" -"An internal implant to correct a musculoskeletal problem such as a bad hip " -"or back. It is made of titanium due to its biocompatibility." +"A wide-angle vehicle headlight with a cage built around it to protect it " +"from damage without reducing its effectiveness." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "titanium tooth" -msgid_plural "titanium tooths" +msgid "emergency vehicle light (red)" +msgid_plural "emergency vehicle lights (red)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'titanium tooth'} +#. ~ Description for {'str': 'emergency vehicle light (red)', 'str_pl': 'emergency vehicle lights (red)'} #: lang/json/GENERIC_from_json.py msgid "" -"A dental implant made of pure titanium, used to replace teeth due to its bio-" -"compatibility and durability." +"One of the red-colored lights from the top of an emergency services " +"vehicle. When turned on, the lights rotate to shine in all directions." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hydraulic gauntlet" -msgid_plural "hydraulic gauntlets" +msgid "emergency vehicle light (blue)" +msgid_plural "emergency vehicle lights (blue)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hydraulic gauntlet'} +#. ~ Description for {'str': 'emergency vehicle light (blue)', 'str_pl': 'emergency vehicle lights (blue)'} #: lang/json/GENERIC_from_json.py msgid "" -"A huge, heavy metal gauntlet lined with tubing and gauges. Slow and " -"unwieldy, it uses internal pressure to deliver devastating blows, but takes " -"tremendous strength to use effectively. Thanks to an internal microreactor, " -"it doesn't require power of its own." +"One of the blue-colored lights from the top of an emergency services " +"vehicle. When turned on, the lights rotate to shine in all directions." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "barbed-wire rolling pin" -msgid_plural "barbed-wire rolling pins" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "floodlight" +msgid_plural "floodlights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'barbed-wire rolling pin'} +#. ~ Description for {'str': 'floodlight'} #: lang/json/GENERIC_from_json.py -msgid "" -"Typically used to flatten dough, this rolling pin has been repurposed as a " -"weapon, with barbed wire adding some extra power and weight to its swing. " -"It has some real heft to it; perfect for the bakers of the apocalypse." +msgid "A large and heavy light designed to illuminate wide areas." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "titanium bat" -msgid_plural "titanium bats" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "directed floodlight" +msgid_plural "directed floodlights" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'titanium bat'} +#. ~ Description for {'str': 'directed floodlight'} #: lang/json/GENERIC_from_json.py msgid "" -"A luxury baseball bat made out of titanium that was banned from competitive " -"sport due to the increased performance that put defenders at risk." +"A large and heavy light designed to illuminate a wide area in a half-" +"circular cone." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ur-scrap" -msgid_plural "ur-scraps" +msgid "set of hand rims" +msgid_plural "sets of hand rims" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ur-scrap'} +#. ~ Description for {'str': 'set of hand rims', 'str_pl': 'sets of hand rims'} #: lang/json/GENERIC_from_json.py -msgid "A small techno doodad." +msgid "Hand rims for use on a wheelchair." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "monomeric slurry" -msgid_plural "monomeric slurry" +msgid "foot crank" +msgid_plural "foot cranks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'monomeric slurry'} +#. ~ Description for {'str': 'foot crank'} #: lang/json/GENERIC_from_json.py -msgid "" -"A collection of the building blocks of polymers. With this and a whole lot " -"of know how you can create proteins and other building blocks of life." +msgid "The pedal and gear assembly from a bicycle." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "micellular growth medium" -msgid_plural "micellular growth mediums" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "wind turbine" +msgid_plural "wind turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'micellular growth medium'} +#. ~ Description for {'str': 'wind turbine'} #: lang/json/GENERIC_from_json.py -msgid "" -"For the mixing of biomaterials that might otherwise be antithetical to one " -"another." +msgid "A small turbine that can convert wind into electric power." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "artificial muscle fibers" -msgid_plural "artificial muscle fibers" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "large wind turbine" +msgid_plural "large wind turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'artificial muscle fibers'} +#. ~ Description for {'str': 'large wind turbine'} #: lang/json/GENERIC_from_json.py -msgid "" -"Lab grown or bioprinted muscle fibers, much denser and with higher " -"performance ratios than baseline human muscles." +msgid "A large turbine that can convert wind into electric power." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "self healing polymers" -msgid_plural "self healing polymers" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "water wheel" +msgid_plural "water wheels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'self healing polymers'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'water wheel'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"Materials capable of taking environmental chemicals and utilizing them for " -"self repair, be careful you don't make grey goo." +"A water wheel. Will slowly recharge the vehicle's electrical power when " +"built over shallow moving water." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "autologous totipotent tissue culture" -msgid_plural "autologous totipotent tissue cultures" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "large water wheel" +msgid_plural "large water wheels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'autologous totipotent tissue culture'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'large water wheel'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"Uncontaminated pure cellular matter than with the right instructions can " -"become just about anything." +"A large water wheel with wooden supports. Will recharge the vehicle's " +"electrical power when built over shallow moving water." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "scrap photonics" -msgid_plural "scrap photonics" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/vehicle_part_from_json.py +msgid "electric motor" +msgid_plural "electric motors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'scrap photonics'} +#. ~ Description for {'str': 'electric motor'} #: lang/json/GENERIC_from_json.py -msgid "Small circuits blue and gold, transmitting signals through light." +msgid "A powerful electric motor. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "photonic circuitry" -msgid_plural "photonic circuitries" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "enhanced electric motor" +msgid_plural "enhanced electric motors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'photonic circuitry', 'str_pl': 'photonic circuitries'} +#. ~ Description for {'str': 'enhanced electric motor'} #: lang/json/GENERIC_from_json.py -msgid "A resplendent golden grid inlaid on dark blue substrate." +msgid "" +"A very powerful and yet lightweight electric motor. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "photonic computation core" -msgid_plural "photonic computation cores" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "super electric motor" +msgid_plural "super electric motors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'photonic computation core'} +#. ~ Description for {'str': 'super electric motor'} #: lang/json/GENERIC_from_json.py -msgid "A monolithic circuit shaped as a glowing cube of crystal." +msgid "The most powerfull electric motor on the market. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "hypergeometric photonics" -msgid_plural "hypergeometric photonics" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "large electric motor" +msgid_plural "large electric motors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'hypergeometric photonics'} +#. ~ Description for {'str': 'large electric motor'} #: lang/json/GENERIC_from_json.py -msgid "" -"In your hands lies a self-contained digital universe. Its programs glowing " -"like stars fixed on computational shells infinitely layered." +msgid "A large and very powerful electric motor. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "acausal logic permutator" -msgid_plural "acausal logic permutators" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "small electric motor" +msgid_plural "small electric motors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'acausal logic permutator'} +#. ~ Description for {'str': 'small electric motor'} #: lang/json/GENERIC_from_json.py -msgid "It has given you an answer, but you are yet to ask anything." +msgid "A small electric motor. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "nanowire battery" -msgid_plural "nanowire batteries" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "tiny electric motor" +msgid_plural "tiny electric motors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nanowire battery', 'str_pl': 'nanowire batteries'} +#. ~ Description for {'str': 'tiny electric motor'} #: lang/json/GENERIC_from_json.py -msgid "A small battery component with a very high energy density." +msgid "A tiny electric motor. Useful for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "ultracapacitor" -msgid_plural "ultracapacitors" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "muffler" +msgid_plural "mufflers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ultracapacitor'} +#. ~ Description for {'str': 'muffler'} #: lang/json/GENERIC_from_json.py msgid "" -"A capacitor made from exotic compounds, capable of storing a high amount of " -"electric charge." +"A muffler from a car. Very unwieldy as a weapon. Useful in a few crafting " +"recipes." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "ultracapacitor array" -msgid_plural "ultracapacitor arrays" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "back-up beeper" +msgid_plural "back-up beepers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ultracapacitor array'} +#. ~ Description for {'str': 'back-up beeper'} #: lang/json/GENERIC_from_json.py -msgid "Ultracapacitors assembled into a finely tunned energy storage array." +msgid "" +"This is a safety device intended to warn passersby of a vehicle moving in " +"reverse, but the usage of it now seems terribly unwise." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "superconductive coil" -msgid_plural "superconductive coils" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "stereo system" +msgid_plural "stereo systems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'superconductive coil'} +#. ~ Description for {'str': 'stereo system'} #: lang/json/GENERIC_from_json.py msgid "" -"Superconductive wire warped upon itself manipulates the electromagnetic " -"spectrum to store vast amounts of power." +"A stereo system with speakers. It is capable of being hooked up to a " +"vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "zero-point energy extractor" -msgid_plural "zero-point energy extractors" +msgid "chime loudspeakers" +msgid_plural "chime loudspeakers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'zero-point energy extractor'} +#. ~ Description for {'str_sp': 'chime loudspeakers'} #: lang/json/GENERIC_from_json.py msgid "" -"A complex grid pins space-time to the surface of the multiversal hyper-" -"torus, allowing the energies within to leak into our sliver of existence." +"A stereo system with loudspeakers and a built-in set of simple melodies that " +"it will play. Commonly used by ice cream trucks to draw the attention of " +"children in the days when children wanted ice cream more than brains." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "high quality electromagnet" -msgid_plural "high quality electromagnets" +msgid "sheet metal" +msgid_plural "sheet metal" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'high quality electromagnet'} +#. ~ Description for {'str_sp': 'sheet metal'} +#. ~ Description for TEST sheet metal #: lang/json/GENERIC_from_json.py -msgid "A sturdy, industrially crafted electromagnet." +msgid "A thin sheet of metal." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cryo electromagnet" -msgid_plural "cryo electromagnets" +msgid "wired sheet metal" +msgid_plural "wired sheet metal" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cryo electromagnet'} +#. ~ Description for {'str_sp': 'wired sheet metal'} #: lang/json/GENERIC_from_json.py -msgid "" -"A powerful super conductive electromagnet, that must be kept at very low " -"temperatures to operate." +msgid "Sheet metal that has had light housing wired into it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "super conductive electromagnet" -msgid_plural "super conductive electromagnets" +msgid "wooden armor kit" +msgid_plural "wooden armor kits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'super conductive electromagnet'} +#. ~ Description for {'str': 'wooden armor kit'} #: lang/json/GENERIC_from_json.py -msgid "A powerful electromagnet made from a room temperature superconductor ." +msgid "A bundle of two by fours prepared to be used as vehicle armor." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "composite alloy" -msgid_plural "composite alloys" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "steel plating" +msgid_plural "steel plating" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'composite alloy'} +#. ~ Description for {'str_sp': 'steel plating'} #: lang/json/GENERIC_from_json.py -msgid "Miscellaneous scrap pieces made from a composite alloy." +msgid "A piece of armor plating made of steel." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "vacuum cast carbide" -msgid_plural "vacuum cast carbides" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "superalloy plating" +msgid_plural "superalloy plating" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vacuum cast carbide'} +#. ~ Description for {'str_sp': 'superalloy plating'} #: lang/json/GENERIC_from_json.py -msgid "Malleable carbide cast by forges on high earth orbit." +msgid "A piece of armor plating made of sturdy superalloy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "nanoprinted alloy" -msgid_plural "nanoprinted alloys" +msgid "superalloy sheet" +msgid_plural "superalloy sheets" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nanoprinted alloy'} +#. ~ Description for {'str': 'superalloy sheet'} #: lang/json/GENERIC_from_json.py msgid "" -"A meta material fabricated by precisely layering different elements at an " -"atomic scale." +"A sheet of sturdy superalloy, incredibly hard, yet incredibly malleable." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "crystal forged neutrite" -msgid_plural "crystal forged neutrites" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "spiked plating" +msgid_plural "spiked plating" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'crystal forged neutrite'} +#. ~ Description for {'str_sp': 'spiked plating'} #: lang/json/GENERIC_from_json.py msgid "" -"Great forges within the Earth's core wrought hydrogen into flaming metal and " -"poured it within lattices of super conductive lanthanum. Locked in magnetic " -"equilibrium, it was left to cool into a dark unbreakable metal" +"A piece of armor plating made of steel. It is covered with menacing spikes." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "phase uneven matter" -msgid_plural "phase uneven matters" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hard plating" +msgid_plural "hard platings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'phase uneven matter'} +#. ~ Description for {'str': 'hard plating'} #: lang/json/GENERIC_from_json.py -msgid "Matter condensed from the liminal spaces between dimmensions." +msgid "A piece of very thick armor plating made of steel." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "peripheral electrode" -msgid_plural "peripheral electrodes" +msgid "military composite plating" +msgid_plural "military composite platings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'peripheral electrode'} +#. ~ Description for {'str': 'military composite plating'} #: lang/json/GENERIC_from_json.py msgid "" -"A thin strand of wire and a clamp, meant to be spliced into the smaller " -"nerves of the human body." +"A thick sheet of military grade armor, best bullet stopper you can stick on " +"a vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "neural electrode" -msgid_plural "neural electrodes" +msgid "chitin armor kit" +msgid_plural "chitin armor kits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'neural electrode'} +#. ~ Description for {'str': 'chitin armor kit'} #: lang/json/GENERIC_from_json.py -msgid "" -"A small array of metallic needles allows complex communication between " -"machine and human mind." +msgid "Light chitin plating made for a vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "brain implant prod" -msgid_plural "brain implant prods" +msgid "biosilicified chitin armor kit" +msgid_plural "biosilicified chitin armor kits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'brain implant prod'} +#. ~ Description for {'str': 'biosilicified chitin armor kit'} #: lang/json/GENERIC_from_json.py -msgid "" -"A complexly etched rod of metal interfaces with the corpus callosum of the " -"patient, granting increased control of bionic functions." +msgid "Durable silica-coated chitin plating made for a vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "artificial neural tissue" -msgid_plural "artificial neural tissues" +msgid "bone armor kit" +msgid_plural "bone armor kits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'artificial neural tissue'} +#. ~ Description for {'str': 'bone armor kit'} #: lang/json/GENERIC_from_json.py -msgid "" -"Photonic axons process thought at speeds far surpassing primitive, chemical-" -"driven communication." +msgid "Bone plating made for a vehicle." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "neurosynaptic interface matrix" -msgid_plural "neurosynaptic interface matrices" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "shredder" +msgid_plural "shredders" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'neurosynaptic interface matrix', 'str_pl': 'neurosynaptic interface matrices'} +#. ~ Description for {'str': 'shredder'} #: lang/json/GENERIC_from_json.py msgid "" -"A membrane of artificial neurons envelops the cerebral cortex, melding " -"machine and human intellect into a gestalt much greater than its individual " -"parts." +"This menacing looking attachment is meant to be powered by a vehicle's " +"engine. Upon doing so, the circular blades of this device will rotate " +"rapidly; anything in front of it is likely to be ripped to shreds. It is " +"sturdy enough to withstand multiple impacts, and is designed to detach if it " +"would take a hit that would break it." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" +#: lang/json/GENERIC_from_json.py +msgid "vehicle crafting rig" +msgid_plural "vehicle crafting rigs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to " -"create a very large amount of space for transporting goods." -msgstr "" - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "ultralight frame" -msgid_plural "ultralight frames" +msgid "onboard chemistry lab" +msgid_plural "onboard chemistry labs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'ultralight frame'} +#. ~ Description for {'str': 'onboard chemistry lab'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, lightweight frame made from titanium. Useful for crafting." +msgid "" +"Assembled from a chemistry set attached to a complex wiring harness, it is " +"well suited to most any chemistry project you could imagine. Unable to " +"utilize standard batteries, it requires an external supply of electricity to " +"operate." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "control station" -msgid_plural "control stations" +msgid "FOODCO kitchen buddy" +msgid_plural "FOODCO kitchen buddies" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'control station'} +#. ~ Description for {'str': 'FOODCO kitchen buddy', 'str_pl': 'FOODCO kitchen buddies'} #: lang/json/GENERIC_from_json.py msgid "" -"A large and complex piloting station from a military vehicle, including a " -"camera station, steering tools, and electronics controls." +"Assembled from a set of instructions you found in an old book of DIY " +"projects, the *FOODCO kitchen buddy* claims to be *the perfect solution to " +"all your home-cooking needs!*. While it is surprisingly handy for vacuum-" +"sealing as well as dehydrating food, the cheery sales pitch neglected to " +"mention A - how awkward the damn thing is, B - That you still need a normal " +"kitchen and C - how it doesn't take batteries. You're going to have to weld " +"it to a vehicle, or something else with a supply of electricity, if you want " +"to use it. In addition to the food preservation features, it also has a " +"food processor, a water-purification system, a drawer for holding extra " +"tools, and for some insane reason, a press and die set for hand-loading " +"ammunition." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" +msgid "vehicle forge rig" +msgid_plural "vehicle forge rigs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle shelving'} +#. ~ Description for {'str': 'vehicle forge rig'} #: lang/json/GENERIC_from_json.py msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." +"A forge rig made to run off a vehicle's storage battery with integrated tool " +"storage for metalworking equipment." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" +#: lang/json/GENERIC_from_json.py +msgid "vehicle kiln" +msgid_plural "vehicle kilns" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'solar array'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A vertical array of three solar panels set on a chassis rising above one " -"another on a metal pole with rudimentary tracking and motors. Due to the " -"flimsy nature of the hydraulics and high surface area profile to maximize " -"sunlight, they can't really be installed onto an existing vehicle. Requires " -"a jumper cable or similar to pull power from." +#. ~ Description for {'str': 'vehicle kiln'} +#: lang/json/GENERIC_from_json.py +msgid "An electric kiln made to run off a vehicle's storage battery." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "reinforced solar array" -msgid_plural "reinforced solar arrays" +#: lang/json/GENERIC_from_json.py +msgid "RV kitchen unit" +msgid_plural "RV kitchen units" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'reinforced solar array'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +#. ~ Description for {'str': 'RV kitchen unit'} +#: lang/json/GENERIC_from_json.py msgid "" -"A vertical array of three reinforced solar panels set on a chassis rising " -"above one another on a metal pole with rudimentary tracking and motors. Due " -"to the flimsy nature of the hydraulics and high surface area profile to " -"maximize sunlight, they can't really be installed onto an existing vehicle. " -"Requires a jumper cable or similar to pull power from." +"A vehicle mountable electric range and sink unit with integrated tool " +"storage for cooking utensils." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" +#: lang/json/GENERIC_from_json.py +msgid "vehicle welding rig" +msgid_plural "vehicle welding rigs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'upgraded solar array'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +#. ~ Description for {'str': 'vehicle welding rig'} +#: lang/json/GENERIC_from_json.py msgid "" -"A vertical array of three upgraded solar panels set on a chassis rising " -"above one another on a metal pole with rudimentary tracking and motors. Due " -"to the flimsy nature of the hydraulics and high surface area profile to " -"maximize sunlight, they can't really be installed onto an existing vehicle. " -"Requires a jumper cable or similar to pull power from." +"A welding rig made to run off a vehicle's storage battery. It has a " +"soldering iron attachment for delicate work, and a compartment to store your " +"extra tools in." msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" +msgid "heavy-duty military rotors" +msgid_plural "sets of heavy-duty military rotors" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "" -"A vertical array of three upgraded reinforced solar panels set on a chassis " -"rising above one another on a metal pole with rudimentary tracking and " -"motors. Due to the flimsy nature of the hydraulics and high surface area " -"profile to maximize sunlight, they can't really be installed onto an " -"existing vehicle. Requires a jumper cable or similar to pull power from." +#. ~ Description for {'str': 'heavy-duty military rotors', 'str_pl': 'sets of heavy-duty military rotors'} +#: lang/json/GENERIC_from_json.py +msgid "A set of four rotor blades from a military attack helicopter." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "withered plant bundle" -msgid_plural "withered plant bundles" +msgid "small civilian helicopter rotors" +msgid_plural "sets of small civilian helicopter rotors" msgstr[0] "" msgstr[1] "" -#. ~ Description for withered plant bundle +#. ~ Description for {'str': 'small civilian helicopter rotors', 'str_pl': 'sets of small civilian helicopter rotors'} #: lang/json/GENERIC_from_json.py -msgid "A bundle of plant matter" +msgid "A set of four rotor blades from a civilian light helicopter." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "CRIT hatchet" -msgid_plural "CRIT hatchets" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "seat" +msgid_plural "seats" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for CRIT hatchet. -#: lang/json/GENERIC_from_json.py -msgid "You extend your hatchet" -msgstr "" - -#. ~ Description for CRIT hatchet +#. ~ Description for {'str': 'seat'} #: lang/json/GENERIC_from_json.py -msgid "" -"An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer when " -"extended." +msgid "A soft car seat made from synthetic fabric." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "CRIT axe" -msgid_plural "CRIT axes" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "leather seat" +msgid_plural "leather seats" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for CRIT axe. -#: lang/json/GENERIC_from_json.py -msgid "You collapse your axe" -msgstr "" - -#. ~ Description for CRIT axe +#. ~ Description for {'str': 'leather seat'} #: lang/json/GENERIC_from_json.py -msgid "" -"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " -"melee weapon, and is useful both for chopping things and for use as a hammer " -"when extended." +msgid "A soft car seat covered with leather." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "CRIT Blade-work manual" -msgid_plural "CRIT Blade-work manuals" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "saddle" +msgid_plural "saddles" msgstr[0] "" msgstr[1] "" -#. ~ Description for CRIT Blade-work manual +#. ~ Description for {'str': 'saddle'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on CRIT Blade-work." +msgid "A leather-covered seat designed to be straddled." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Enforcement manual" -msgid_plural "C.R.I.T Enforcement manuals" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar panel" +msgid_plural "solar panels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'C.R.I.T Enforcement manual'} +#. ~ Description for {'str': 'solar panel'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Enforcer melee." +msgid "" +"Electronic device that can convert solar radiation into electric power. " +"Useful for a vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "CRIT CQB manual" -msgid_plural "CRIT CQB manuals" +#: lang/json/vehicle_part_from_json.py +msgid "reinforced solar panel" +msgid_plural "reinforced solar panels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'CRIT CQB manual'} +#. ~ Description for {'str': 'reinforced solar panel'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on CRIT general CQB." +msgid "" +"A solar panel that has been covered with a pane of reinforced glass to " +"protect the delicate solar cells from zombies or errant baseballs. The " +"glass causes this panel to produce slightly less power than a normal panel. " +"Useful for a vehicle." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "broken emissary" -msgid_plural "broken emissaries" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar panel" +msgid_plural "upgraded solar panels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken emissary', 'str_pl': 'broken emissaries'} +#. ~ Description for {'str': 'upgraded solar panel'} #: lang/json/GENERIC_from_json.py msgid "" -"The massive body of a collapsed emissary. Still a bit intimidating, perhaps " -"knowing the damage it can cause. Could be gutted for parts." +"Electronic device that can convert solar radiation into electric power. " +"This panel has been upgraded to convert more sunlight into power. Useful " +"for a vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken emissary of war" -msgid_plural "broken emissaries of war" +#: lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar panel" +msgid_plural "upgraded reinforced solar panels" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken emissary of war', 'str_pl': 'broken emissaries of war'} +#. ~ Description for {'str': 'upgraded reinforced solar panel'} #: lang/json/GENERIC_from_json.py msgid "" -"The massive body of a collapsed emissary of war. Still a bit intimidating, " -"perhaps knowing the damage it can cause. Could be gutted for parts." +"An upgraded solar panel that has been covered with a pane of reinforced " +"glass to protect the delicate solar cells from zombies or errant baseballs. " +"The glass causes this panel to produce slightly less power than a normal " +"upgraded panel. Useful for a vehicle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken emissary of flame" -msgid_plural "broken emissaries of flame" +msgid "solar cell" +msgid_plural "solar cells" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken emissary of flame', 'str_pl': 'broken emissaries of flame'} +#. ~ Description for {'str': 'solar cell'} #: lang/json/GENERIC_from_json.py msgid "" -"The massive body of a collapsed emissary of flame. Still a bit " -"intimidating, perhaps knowing the damage it can cause. Could be gutted for " -"parts." +"A small electronic device that can convert solar radiation into electric " +"power. Useful for crafting." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken surveillance drone" -msgid_plural "broken surveillance drones" +msgid "fancy table" +msgid_plural "fancy tables" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken surveillance drone'} +#. ~ Description for {'str': 'fancy table'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken drone. Much less threatening now that it isn't shining its light " -"everywhere. Could be gutted for parts." +"A very fancy table from a very fancy RV. If times were better it might be " +"useful for something more than firewood." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken seeker drone" -msgid_plural "broken seeker drones" +msgid "wooden table" +msgid_plural "wooden tables" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'broken seeker drone'} +#. ~ Description for {'str': 'wooden table'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken drone. Much less threatening now that it isn't prodding you with " -"its tools. Could be gutted for parts." +msgid "A crude wooden table." msgstr "" -#. ~ Description for {'str': 'toilet brush', 'str_pl': 'toilet brushes'} -#: lang/json/GENERIC_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +#: lang/json/vehicle_part_from_json.py +msgid "workbench" +msgid_plural "workbenches" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for workbench +#. ~ Description for {'str': 'workbench', 'str_pl': 'workbenches'} +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "" -"The aliens that have invaded Earth cannot be intimidated or humiliated - at " -"least not meaningfully - so this stiff brush is only useful for scouring " -"toilet bowls." +"A sturdy workbench built out of metal. It is perfect for crafting large and " +"heavy things." msgstr "" -#. ~ Description for basketball -#: lang/json/GENERIC_from_json.py -msgid "A high-quality indoor basketball. You could throw it at your enemies." -msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "turret mount" +msgid_plural "turret mounts" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'newspaper page'} +#. ~ Description for {'str': 'turret mount'} #: lang/json/GENERIC_from_json.py -msgid "" -"A single sheet of newspaper broadsheet. Most of the information on there is " -"terribly trivial, or out of date, but one thing catches your eye briefly - " -"some things from before the Cataclysm, and some even after." +msgid "A universal mount for weapons intended to be installed as turrets." msgstr "" -#. ~ Description for {'str': 'reinforced solar panel'} #: lang/json/GENERIC_from_json.py -msgid "" -"A solar panel that has been covered with a pane of reinforced glass to " -"protect the delicate solar cells from aliens or errant baseballs. The glass " -"causes this panel to produce slightly less power than a normal panel. " -"Useful for a vehicle." -msgstr "" +msgid "vehicle cooler" +msgid_plural "vehicle coolers" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'upgraded reinforced solar panel'} +#. ~ Description for {'str': 'vehicle cooler'} #: lang/json/GENERIC_from_json.py -msgid "" -"An upgraded solar panel that has been covered with a pane of reinforced " -"glass to protect the delicate solar cells from aliens or errant baseballs. " -"The glass causes this panel to produce slightly less power than a normal " -"upgraded panel. Useful for a vehicle." +msgid "A vehicle-mounted area cooler." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tiny pistol casing" -msgid_plural "tiny pistol casings" +msgid "vehicle heater" +msgid_plural "vehicle heaters" msgstr[0] "" msgstr[1] "" -#. ~ Description for tiny pistol casing +#. ~ Description for {'str': 'vehicle heater'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a tiny pistol round." +msgid "A vehicle-mounted area heater." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "pistol casing" -msgid_plural "pistol casings" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "towel hanger" +msgid_plural "towel hangers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pistol casing'} -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a standard pistol round." +#. ~ Description for {'str': 'towel hanger'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "A towel hanger with towels." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "magnum pistol casing" -msgid_plural "magnum pistol casings" +#: 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 {'str': 'magnum pistol casing'} +#. ~ Description for {'str': 'recharging station'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a magnum pistol round." +msgid "" +"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 -msgid "rifle casing" -msgid_plural "rifle casings" +#: 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 {'str': 'rifle casing'} +#. ~ Description for {'str': 'battery charger'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a rifle round." +msgid "" +"A small device for recharging batteries, given a source of electricty. It " +"could easily be wired into a vehicle with power. It will slowly charge all " +"rechargeable batteries (battery cells, lead-acid batteries, etc) placed " +"directly within its storage space. It can only be installed onto existing " +"storage compartments." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "huge rifle casing" -msgid_plural "huge rifle casings" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +#: lang/json/vehicle_part_from_json.py +msgid "washing machine" +msgid_plural "washing machines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'huge rifle casing'} +#. ~ Description for {'str': 'washing machine'} #: lang/json/GENERIC_from_json.py -msgid "An empty casing from a huge rifle round." +msgid "A very small washing machine designed for use in vehicles." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "shotshell hull" -msgid_plural "shotshell hulls" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "programmable autopilot" +msgid_plural "programmable autopilots" msgstr[0] "" msgstr[1] "" -#. ~ Description for shotshell hull +#. ~ Description for {'str': 'programmable autopilot'} #: lang/json/GENERIC_from_json.py msgid "" -"A shotshell's casing, a plastic tube with a brass casehead, commonly " -"referred to as a hull." +"A computer system hooked up to the steering and engine of a vehicle to allow " +"it to follow simple paths." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "grenade casing" -msgid_plural "grenade casings" +msgid "mountable autoclave" +msgid_plural "mountable autoclaves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'grenade casing'} +#. ~ Description for {'str': 'mountable autoclave'} #: lang/json/GENERIC_from_json.py -msgid "A large casing from a grenade round." +msgid "This autoclave has been rigged to run off a vehicle power grid." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "rifle belt linkage" -msgid_plural "rifle belt linkages" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "minifridge" +msgid_plural "minifridges" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'minifridge'} #: lang/json/GENERIC_from_json.py -msgid "grenade belt linkage" -msgid_plural "grenade belt linkages" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A very small fridge for keeping food cool. Provides some insulation from " +"outside weather." +msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "heavy machinegun belt linkage" -msgid_plural "heavy machinegun belt linkages" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "minifreezer" +msgid_plural "minifreezers" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'minifreezer'} #: lang/json/GENERIC_from_json.py -msgid "broken CROWS II" -msgid_plural "broken CROWS IIs" +msgid "" +"Compact version of a chest freezer, designed as a mobile solution for " +"freezing food. Provides insulation from the elements." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +#: lang/json/vehicle_part_from_json.py +msgid "dishwasher" +msgid_plural "dishwashers" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'dishwasher'} #: lang/json/GENERIC_from_json.py -msgid "broken CROWS II Heavy" -msgid_plural "broken CROWS II Heavys" -msgstr[0] "" -msgstr[1] "" +msgid "A very small dishwasher designed for use in vehicles." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken launcher TALON UGV" -msgid_plural "broken launcher TALON UGVs" +msgid "refrigerated tank" +msgid_plural "refrigerated tanks" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'refrigerated tank'} #: lang/json/GENERIC_from_json.py -msgid "broken rifle TALON UGV" -msgid_plural "broken rifle TALON UGVs" +msgid "" +"A 60L refrigerated tank for keeping liquids cool. Provides some insulation " +"from outside weather." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "water faucet" +msgid_plural "water faucets" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'water faucet'} #: lang/json/GENERIC_from_json.py -msgid "The Life and Work of Tiger Sauer" -msgid_plural "The Life and Work of Tiger Sauer" +msgid "A metal faucet that can be attached to a water tank for easy access." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "light wheel mount" +msgid_plural "light wheel mounts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'The Life and Work of Tiger Sauer'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A biography of a combat cyborg agent detailing his philosophy and martial " -"art." +#. ~ Description for {'str': 'light wheel mount'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "A piece of metal with holes suitable for a bike or motorbike wheel." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "stone shell" -msgid_plural "stone shells" +msgid "medium wheel hub assembly" +msgid_plural "medium wheel hub assemblies" msgstr[0] "" msgstr[1] "" -#. ~ Description for stone shell +#. ~ Description for {'str': 'medium wheel hub assembly', 'str_pl': 'medium wheel hub assemblies'} #: lang/json/GENERIC_from_json.py msgid "" -"The broken fragment of an owlbear egg. With luck it might still contain " -"some of its former power, though if nothing else it's still a bit sharp." +"A metal assembly that allows bolting a wheel on a car. Fit for a car wheel." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "glow dust" -msgid_plural "glow dusts" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "heavy wheel hub assembly" +msgid_plural "heavy wheel hub assemblies" msgstr[0] "" msgstr[1] "" -#. ~ Description for glow dust +#. ~ Description for {'str': 'heavy wheel hub assembly', 'str_pl': 'heavy wheel hub assemblies'} #: lang/json/GENERIC_from_json.py msgid "" -"The powdered remains of a will-o-wisps's phsyical form. It seems to still " -"possess an otherworldly glow." +"A heavy metal assembly that allows bolting a wheel on a car. Fit for a " +"large car wheel." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "magical reading light" -msgid_plural "magical reading lights" +msgid "Dana's family sourdough starter" +msgid_plural "Dana's family sourdough starter" msgstr[0] "" msgstr[1] "" -#. ~ Description for magical reading light +#. ~ Description for {'str_sp': "Dana's family sourdough starter"} #: lang/json/GENERIC_from_json.py msgid "" -"Powered by the magic of glow powder and lesser mana potions, this extremely " -"expensive little light will provide just enough light to read by for at " -"least a decade. Use it to close the cover and hide the light." +"This crusty old jar has a glow-in-the-dark millennium falcon decal on the " +"side, and a label that reads, \"Landough Calrisean. Dana's. Do not touch " +"on pain of death\". It's been abandoned for some time and doesn't look like " +"it could be readily salvaged as a sourdough culture, but maybe an " +"experienced sourdough baker could manage it." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "magical reading light (covered)" -msgid_plural "magical reading lights (covered)" +msgid "10 plastic bags" +msgid_plural "10 plastic bags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'magical reading light (covered)', 'str_pl': 'magical reading lights (covered)'} +#. ~ Description for {'str_sp': '10 plastic bags'} #: lang/json/GENERIC_from_json.py msgid "" -"Powered by the magic of glow powder and lesser mana potions, this extremely " -"expensive little light will provide just enough light to read by for at " -"least a decade. The cover is closed. Use it to open the cover and show the " -"light." +"10 plastic bags, folded smooth and wrapped tightly together with a string." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bulette plate" -msgid_plural "bulette plates" +msgid "coal pallet" +msgid_plural "coal pallets" msgstr[0] "" msgstr[1] "" -#. ~ Description for bulette plate +#. ~ Description for coal pallet #: lang/json/GENERIC_from_json.py -msgid "" -"The great plates from behind a bulette's head have always been prized for " -"use in shield and armor making." +msgid "A large block of semi-processed coal." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bulette pearl" -msgid_plural "bulette pearls" +msgid "charged capacitor" +msgid_plural "charged capacitors" msgstr[0] "" msgstr[1] "" -#. ~ Description for bulette pearl +#. ~ Description for charged capacitor #: lang/json/GENERIC_from_json.py msgid "" -"As a bulette burrows through the earth its gills collect minute amounts of " -"precious metals and gems which slowly aggregate into lustrous gemstones " -"prized for their beauty and power." +"A single capacitor charged with current to be used by a laser weapon or " +"similar armament." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "stirge proboscis" -msgid_plural "stirge proboscises" +msgid "lead battery plate" +msgid_plural "lead battery plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stirge proboscis', 'str_pl': 'stirge proboscises'} +#. ~ Description for lead battery plate #: lang/json/GENERIC_from_json.py -msgid "" -"A long sucking apparatus harvested from stirge corpse. Makes a poor melee " -"weapon." +msgid "An electrode plate from a lead-acid battery." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "chunk of demon chitin" -msgid_plural "chunks of demon chitin" +msgid "forged sword" +msgid_plural "forged swords" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'chunk of demon chitin', 'str_pl': 'chunks of demon chitin'} +#. ~ Description for forged sword #: lang/json/GENERIC_from_json.py msgid "" -"A piece of demon spider exoskeleton. It is light and very durable, and " -"probably has some magical properties." +"A common short sword, forged from several pieces of steel. The pointy end " +"is the dangerous one." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "demon chitin plate" -msgid_plural "demon chitin plates" +msgid "skewer" +msgid_plural "skewers" msgstr[0] "" msgstr[1] "" -#. ~ Description for demon chitin plate +#. ~ Description for skewer #: lang/json/GENERIC_from_json.py -msgid "" -"A large piece of demon spider exoskeleton, painstakingly cut from the corpse " -"of an adult demon spider. A plate of this size can be used to create armor " -"plating." +msgid "A thin wooden skewer. Squirrel on a stick, anyone?" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "demon spider fang" -msgid_plural "demon spider fangs" +msgid "vehicle curtain" +msgid_plural "vehicle curtains" msgstr[0] "" msgstr[1] "" -#. ~ Description for demon spider fang +#. ~ Description for {'str': 'vehicle curtain'} #: lang/json/GENERIC_from_json.py msgid "" -"A fang from a demon spider. It seems to still drip with poison; you might " -"be able to use this in some alchemical recipe?" +"A rod, a few metal rings, and a large piece of cloth with some strings " +"attached for securely fastening the edges." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mana dust" -msgid_plural "mana dusts" +msgid "living brain in a jar" +msgid_plural "jars full of living brains" msgstr[0] "" msgstr[1] "" -#. ~ Description for mana dust +#. ~ Description for {'str': 'living brain in a jar', 'str_pl': 'jars full of living brains'} #: lang/json/GENERIC_from_json.py msgid "" -"Crystallized mana in powdered form. It faintly pulses with arcane energy." +"This jar contains a human brain kept alive by mi-go technology. It has " +"metal veined tendrils that appear to allow it to connect to various devices." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "black dragon scale" -msgid_plural "black dragon scales" +msgid "humming heart" +msgid_plural "humming hearts" msgstr[0] "" msgstr[1] "" -#. ~ Description for black dragon scale +#. ~ Description for {'str': 'humming heart'} #: lang/json/GENERIC_from_json.py msgid "" -"A scale from a black dragon. It still has its magical properties and acid " -"resistance." +"This heartlike organ has multiple valves and upon its proper removal from " +"the bioweapons corpse each valve sealed itself. It hums gently in your " +"hands, as if waiting for an appropriate receptacle." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "black dragon hide" -msgid_plural "black dragon hides" +msgid "sensory cluster" +msgid_plural "sensory clusters" msgstr[0] "" msgstr[1] "" -#. ~ Description for black dragon hide +#. ~ Description for {'str': 'sensory cluster'} #: lang/json/GENERIC_from_json.py msgid "" -"Prepared hide from a black dragon. Hard, acid-resistant, and with more " -"scales could make a suit of armor as hard as steel and half as heavy." +"This lump of flesh has various lobes protruding from it that at intervals " +"will emit toned sounds. Perhaps it works via echolocation. Like all mi-go " +"bioparts the openings on this piece closed up after it was cut free and it " +"seems to have gone into a form of hibernation with the pulses occurring " +"slower and slower as it conserves energy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vacation brochure" -msgid_plural "vacation brochures" +msgid "bioweapon chassis" +msgid_plural "bioweapon chassis" msgstr[0] "" msgstr[1] "" -#. ~ Use action message for vacation brochure. -#. ~ Use action message for lair map. -#: lang/json/GENERIC_from_json.py -msgid "You add the locations to your map." -msgstr "" - -#. ~ Description for vacation brochure +#. ~ Description for {'str_sp': 'bioweapon chassis'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a glossy brochure encouraging students to book vactaions at a lake " -"retreat or remote cabin. The brochure includes lush photographs of a tower " -"on an island and a remote looking cabin in the woods. It includes a map of " -"the areas." +"This cross between a sea anemone and what you imagine a dragon's mouth would " +"look like is the core body of the bioweapon. You cannot imagine what you " +"could make out of this but maybe someone somewhere does." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "lair map" -msgid_plural "lair maps" +msgid "broken mi-go turret" +msgid_plural "broken mi-go turrets" msgstr[0] "" msgstr[1] "" -#. ~ Description for lair map +#. ~ Description for {'str': 'broken mi-go turret'} #: lang/json/GENERIC_from_json.py msgid "" -"This is an well worn map. It has pictures of fantastical beasts " -"embellishing the carefully drawn map markers." +"A broken mi-go turret. It's leaking fluids and smells you can't identify. " +"Could be butchered for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "old photo" -msgid_plural "old photos" +msgid "broken sentinel-lx" +msgid_plural "broken sentinels-lx" msgstr[0] "" msgstr[1] "" -#. ~ Description for old photo +#. ~ Description for {'str': 'broken sentinel-lx', 'str_pl': 'broken sentinels-lx'} #: lang/json/GENERIC_from_json.py msgid "" -"A photo of a jovial, old wizard, he seems to be dancing with a coat rack in " -"this basement. There is a stack of suitcases in the background." +"The irreparably broken remains of a Sentinel-lx. Could be gutted for " +"valuable parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken clay golem" -msgid_plural "broken clay golems" +msgid "broken bloodhound drone" +msgid_plural "broken bloodhound drones" msgstr[0] "" msgstr[1] "" -#. ~ Description for broken clay golem +#. ~ Description for {'str': 'broken bloodhound drone'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken clay golem, looking like a piece of post-modern art. Could be " -"smashed for clay." +"This bloodhound won't be chasing anyone anymore. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken plastic golem" -msgid_plural "broken plastic golems" +msgid "Crypto coin" +msgid_plural "Crypto coins" msgstr[0] "" msgstr[1] "" -#. ~ Description for broken plastic golem +#. ~ Description for {'str': 'Crypto coin'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken plastic golem, like a giant action figure chewed up by an equally " -"giant puppy. You could smash it up into recycled plastic bits." +"PrepNet had been heavily involved in avoiding taxes by using untraceable " +"internet currencies. These however are physical coins with random numbers " +"sequences embossed on them and RFID chips inside." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken stone golem" -msgid_plural "broken stone golems" +msgctxt "container" +msgid "basin" +msgid_plural "basins" msgstr[0] "" msgstr[1] "" -#. ~ Description for broken stone golem +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken stone golem, not that much different from big boulder. Could be " -"smashed for stone." +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "broken iron golem" -msgid_plural "broken iron golems" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "vehicle refrigerator" +msgid_plural "vehicle refrigerators" msgstr[0] "" msgstr[1] "" -#. ~ Description for broken iron golem +#. ~ Description for {'str': 'vehicle refrigerator'} #: lang/json/GENERIC_from_json.py msgid "" -"A broken iron golem, with all iron you would possibly ever need. Could be " -"smashed for iron." +"A household refrigerator with impressive capacity. Its power connection has " +"been refurbished, and it can be mounted onto a vehicle to draw from its " +"power." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "lesser staff of the magi" -msgid_plural "lesser staves of the magi" +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py +msgid "vehicle freezer" +msgid_plural "vehicle freezers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lesser staff of the magi', 'str_pl': 'lesser staves of the magi'} +#. ~ Description for {'str': 'vehicle freezer'} #: lang/json/GENERIC_from_json.py msgid "" -"A beautifully carved staff, made of enchanted wood and mithril. It faintly " -"glows with magic when you cast spells, but it is not a sturdy melee weapon." +"This refurbished refrigerator has been stripped of much of its internal " +"components and converted to run at a much lower temperature, causing it to " +"serve as a freezer for more power. Like its predecessor, it runs on vehicle " +"power." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fireball hammer" -msgid_plural "fireball hammers" +msgid "scrap titanium" +msgid_plural "scrap titanium" msgstr[0] "" msgstr[1] "" -#. ~ Description for fireball hammer +#. ~ Description for {'str_sp': 'scrap titanium'} #: lang/json/GENERIC_from_json.py -msgid "Use with caution! Flammable! Explosive!" +msgid "A piece of light titanium, usable for crafting or repairs." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Iron Whip" -msgid_plural "Iron Whips" +#: lang/json/vehicle_part_from_json.py +msgid "MetalMaster forge buddy" +msgid_plural "MetalMaster forge buddies" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'The Iron Whip', 'str_pl': 'Iron Whips'}. -#: lang/json/GENERIC_from_json.py -msgid "" -"You loop the whip in your hand and it coils back into a belt form in an " -"instant." -msgstr "" - -#. ~ Description for {'str': 'The Iron Whip', 'str_pl': 'Iron Whips'} +#. ~ Description for {'str': 'MetalMaster forge buddy', 'str_pl': 'MetalMaster forge buddies'} #: lang/json/GENERIC_from_json.py msgid "" -"A long braided flexible steel bullwhip that narrows into a sharp blade at " -"the end. Easily capable of slicing and dicing anything that comes at you. " -"It transforms back into a belt." +"From the makers of the best-selling* FOODCO kitchen buddy comes the " +"MetalMaster forge buddy, for all your metalworking, firing, and welding " +"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 -msgid "cudgel +1" -msgid_plural "cudgel +1s" +#: lang/json/vehicle_part_from_json.py +msgid "KitchenMaster cooking buddy" +msgid_plural "KitchenMaster cooking buddies" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'KitchenMaster cooking buddy', 'str_pl': 'KitchenMaster cooking buddies'} #: lang/json/GENERIC_from_json.py -msgid "cudgel +2" -msgid_plural "cudgel +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Because it *clearly* needed one, this large all-in-one station provides the " +"functions of FOODCO's kitchen buddy, now with complementary fume hoods and " +"chemistry materials. Why a chef would need a chemical rig is anyone's " +"guess, but you can mount it on a vehicle to make use of it." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "quarterstaff +1" -msgid_plural "quarterstaff +1s" +#: lang/json/vehicle_part_from_json.py +msgid "cooking rig" +msgid_plural "cooking rigs" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'cooking rig'} #: lang/json/GENERIC_from_json.py -msgid "quarterstaff +2" -msgid_plural "quarterstaff +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Skillet, pot, hotplate, and chemistry set; everything you need to cook food " +"and chemicals. Includes proper fume vents and a separator, so you don't " +"contaminate your food with toxic chemicals." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "ironshod quarterstaff +1" -msgid_plural "ironshod quarterstaff +1s" +msgid "nuclear waste" +msgid_plural "nuclear waste" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'nuclear waste'} #: lang/json/GENERIC_from_json.py -msgid "ironshod quarterstaff +2" -msgid_plural "ironshod quarterstaff +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A small pellet of silvery metal, still warm to the touch." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "longsword +1" -msgid_plural "longsword +1s" +msgid "nuclear fuel pellet" +msgid_plural "nuclear fuel pellets" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'nuclear fuel pellet'} #: lang/json/GENERIC_from_json.py -msgid "longsword +2" -msgid_plural "longsword +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A small pellet of fissile material. Handle carefully." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "sledge hammer +1" -msgid_plural "sledge hammer +1s" +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'hazardous waste drum'} #: lang/json/GENERIC_from_json.py -msgid "sledge hammer +2" -msgid_plural "sledge hammer +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "warhammer +1" -msgid_plural "warhammer +1s" +msgid "folded atomic butter churn" +msgid_plural "folded atomic butter churns" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'folded atomic butter churn'} #: lang/json/GENERIC_from_json.py -msgid "warhammer +2" -msgid_plural "warhammer +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"The Rivtech Churninator 4000, the only churn to be banned by 13 religious " +"sects. The legs are currently folded up for travel. Unlike a standard " +"churn that requires cream separated from raw milk this churn requires only " +"raw milk, salt and a healthy respect for glowing objects." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "bat +1" -msgid_plural "bat +1s" +msgid "titanium implant" +msgid_plural "titanium implants" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'titanium implant'} #: lang/json/GENERIC_from_json.py -msgid "bat +2" -msgid_plural "bat +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"An internal implant to correct a musculoskeletal problem such as a bad hip " +"or back. It is made of titanium due to its biocompatibility." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "aluminum bat +1" -msgid_plural "aluminum bat +1s" +msgid "titanium tooth" +msgid_plural "titanium tooths" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'titanium tooth'} #: lang/json/GENERIC_from_json.py -msgid "aluminum bat +2" -msgid_plural "aluminum bat +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A dental implant made of pure titanium, used to replace teeth due to its bio-" +"compatibility and durability." +msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "steel spear +1" -msgid_plural "steel spear +1s" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'hauling space'} #: lang/json/GENERIC_from_json.py -msgid "steel spear +2" -msgid_plural "steel spear +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to " +"create a very large amount of space for transporting goods." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "qiang +1" -msgid_plural "qiang +1s" +msgid "hydraulic gauntlet" +msgid_plural "hydraulic gauntlets" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'hydraulic gauntlet'} #: lang/json/GENERIC_from_json.py -msgid "qiang +2" -msgid_plural "qiang +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A huge, heavy metal gauntlet lined with tubing and gauges. Slow and " +"unwieldy, it uses internal pressure to deliver devastating blows, but takes " +"tremendous strength to use effectively. Thanks to an internal microreactor, " +"it doesn't require power of its own." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "halberd +1" -msgid_plural "halberd +1s" +msgid "barbed-wire rolling pin" +msgid_plural "barbed-wire rolling pins" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'barbed-wire rolling pin'} #: lang/json/GENERIC_from_json.py -msgid "halberd +2" -msgid_plural "halberd +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Typically used to flatten dough, this rolling pin has been repurposed as a " +"weapon, with barbed wire adding some extra power and weight to its swing. " +"It has some real heft to it; perfect for the bakers of the apocalypse." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "glaive +1" -msgid_plural "glaive +1s" +msgid "titanium bat" +msgid_plural "titanium bats" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'titanium bat'} #: lang/json/GENERIC_from_json.py -msgid "glaive +2" -msgid_plural "glaive +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A luxury baseball bat made out of titanium that was banned from competitive " +"sport due to the increased performance that put defenders at risk." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "naginata +1" -msgid_plural "naginata +1s" +msgid "ur-scrap" +msgid_plural "ur-scraps" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'ur-scrap'} #: lang/json/GENERIC_from_json.py -msgid "naginata +2" -msgid_plural "naginata +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A small techno doodad." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mace +1" -msgid_plural "mace +1s" +msgid "monomeric slurry" +msgid_plural "monomeric slurry" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'monomeric slurry'} #: lang/json/GENERIC_from_json.py -msgid "mace +2" -msgid_plural "mace +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A collection of the building blocks of polymers. With this and a whole lot " +"of know how you can create proteins and other building blocks of life." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "morningstar +1" -msgid_plural "morningstar +1s" +msgid "micellular growth medium" +msgid_plural "micellular growth mediums" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'micellular growth medium'} #: lang/json/GENERIC_from_json.py -msgid "morningstar +2" -msgid_plural "morningstar +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"For the mixing of biomaterials that might otherwise be antithetical to one " +"another." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "jian +1" -msgid_plural "jian +1s" +msgid "artificial muscle fibers" +msgid_plural "artificial muscle fibers" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'artificial muscle fibers'} #: lang/json/GENERIC_from_json.py -msgid "jian +2" -msgid_plural "jian +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Lab grown or bioprinted muscle fibers, much denser and with higher " +"performance ratios than baseline human muscles." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "scimitar +1" -msgid_plural "scimitar +1s" +msgid "self healing polymers" +msgid_plural "self healing polymers" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'self healing polymers'} #: lang/json/GENERIC_from_json.py -msgid "scimitar +2" -msgid_plural "scimitar +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Materials capable of taking environmental chemicals and utilizing them for " +"self repair, be careful you don't make grey goo." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "estoc +1" -msgid_plural "estoc +1s" +msgid "autologous totipotent tissue culture" +msgid_plural "autologous totipotent tissue cultures" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'autologous totipotent tissue culture'} #: lang/json/GENERIC_from_json.py -msgid "estoc +2" -msgid_plural "estoc +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Uncontaminated pure cellular matter than with the right instructions can " +"become just about anything." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "arming sword +1" -msgid_plural "arming sword +1s" +msgid "scrap photonics" +msgid_plural "scrap photonics" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'scrap photonics'} #: lang/json/GENERIC_from_json.py -msgid "arming sword +2" -msgid_plural "arming sword +2s" -msgstr[0] "" -msgstr[1] "" +msgid "Small circuits blue and gold, transmitting signals through light." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broadsword +1" -msgid_plural "broadsword +1s" +msgid "photonic circuitry" +msgid_plural "photonic circuitries" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'photonic circuitry', 'str_pl': 'photonic circuitries'} #: lang/json/GENERIC_from_json.py -msgid "broadsword +2" -msgid_plural "broadsword +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A resplendent golden grid inlaid on dark blue substrate." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "battle axe +1" -msgid_plural "battle axe +1s" +msgid "photonic computation core" +msgid_plural "photonic computation cores" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'photonic computation core'} #: lang/json/GENERIC_from_json.py -msgid "battle axe +2" -msgid_plural "battle axe +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A monolithic circuit shaped as a glowing cube of crystal." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cavalry sabre +1" -msgid_plural "cavalry sabre +1s" +msgid "hypergeometric photonics" +msgid_plural "hypergeometric photonics" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'hypergeometric photonics'} #: lang/json/GENERIC_from_json.py -msgid "cavalry sabre +2" -msgid_plural "cavalry sabre +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"In your hands lies a self-contained digital universe. Its programs glowing " +"like stars fixed on computational shells infinitely layered." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "crowbar +1" -msgid_plural "crowbar +1s" +msgid "acausal logic permutator" +msgid_plural "acausal logic permutators" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'acausal logic permutator'} #: lang/json/GENERIC_from_json.py -msgid "crowbar +2" -msgid_plural "crowbar +2s" -msgstr[0] "" -msgstr[1] "" +msgid "It has given you an answer, but you are yet to ask anything." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "cutlass +1" -msgid_plural "cutlass +1s" +msgid "nanowire battery" +msgid_plural "nanowire batteries" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'nanowire battery', 'str_pl': 'nanowire batteries'} #: lang/json/GENERIC_from_json.py -msgid "cutlass +2" -msgid_plural "cutlass +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A small battery component with a very high energy density." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "fire axe +1" -msgid_plural "fire axe +1s" +msgid "ultracapacitor" +msgid_plural "ultracapacitors" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'ultracapacitor'} #: lang/json/GENERIC_from_json.py -msgid "fire axe +2" -msgid_plural "fire axe +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A capacitor made from exotic compounds, capable of storing a high amount of " +"electric charge." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "katana +1" -msgid_plural "katana +1s" +msgid "ultracapacitor array" +msgid_plural "ultracapacitor arrays" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'ultracapacitor array'} #: lang/json/GENERIC_from_json.py -msgid "katana +2" -msgid_plural "katana +2s" -msgstr[0] "" -msgstr[1] "" +msgid "Ultracapacitors assembled into a finely tunned energy storage array." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "combat knife +1" -msgid_plural "combat knife +1s" +msgid "superconductive coil" +msgid_plural "superconductive coils" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'superconductive coil'} #: lang/json/GENERIC_from_json.py -msgid "combat knife +2" -msgid_plural "combat knife +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Superconductive wire warped upon itself manipulates the electromagnetic " +"spectrum to store vast amounts of power." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "hunting knife +1" -msgid_plural "hunting knife +1s" +msgid "zero-point energy extractor" +msgid_plural "zero-point energy extractors" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'zero-point energy extractor'} #: lang/json/GENERIC_from_json.py -msgid "hunting knife +2" -msgid_plural "hunting knife +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A complex grid pins space-time to the surface of the multiversal hyper-" +"torus, allowing the energies within to leak into our sliver of existence." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "survival knife +1" -msgid_plural "survival knife +1s" +msgid "high quality electromagnet" +msgid_plural "high quality electromagnets" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'high quality electromagnet'} #: lang/json/GENERIC_from_json.py -msgid "survival knife +2" -msgid_plural "survival knife +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A sturdy, industrially crafted electromagnet." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "trench knife +1" -msgid_plural "trench knife +1s" +msgid "cryo electromagnet" +msgid_plural "cryo electromagnets" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'cryo electromagnet'} #: lang/json/GENERIC_from_json.py -msgid "trench knife +2" -msgid_plural "trench knife +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A powerful super conductive electromagnet, that must be kept at very low " +"temperatures to operate." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "kris +1" -msgid_plural "kris +1s" +msgid "super conductive electromagnet" +msgid_plural "super conductive electromagnets" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'super conductive electromagnet'} #: lang/json/GENERIC_from_json.py -msgid "kris +2" -msgid_plural "kris +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A powerful electromagnet made from a room temperature superconductor ." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "kukri +1" -msgid_plural "kukri +1s" +msgid "composite alloy" +msgid_plural "composite alloys" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'composite alloy'} #: lang/json/GENERIC_from_json.py -msgid "kukri +2" -msgid_plural "kukri +2s" -msgstr[0] "" -msgstr[1] "" +msgid "Miscellaneous scrap pieces made from a composite alloy." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "nodachi +1" -msgid_plural "nodachi +1s" +msgid "vacuum cast carbide" +msgid_plural "vacuum cast carbides" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'vacuum cast carbide'} #: lang/json/GENERIC_from_json.py -msgid "nodachi +2" -msgid_plural "nodachi +2s" -msgstr[0] "" -msgstr[1] "" +msgid "Malleable carbide cast by forges on high earth orbit." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pickaxe +1" -msgid_plural "pickaxe +1s" +msgid "nanoprinted alloy" +msgid_plural "nanoprinted alloys" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'nanoprinted alloy'} #: lang/json/GENERIC_from_json.py -msgid "pickaxe +2" -msgid_plural "pickaxe +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A meta material fabricated by precisely layering different elements at an " +"atomic scale." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pike +1" -msgid_plural "pike +1s" +msgid "crystal forged neutrite" +msgid_plural "crystal forged neutrites" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'crystal forged neutrite'} #: lang/json/GENERIC_from_json.py -msgid "pike +2" -msgid_plural "pike +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Great forges within the Earth's core wrought hydrogen into flaming metal and " +"poured it within lattices of super conductive lanthanum. Locked in magnetic " +"equilibrium, it was left to cool into a dark unbreakable metal" +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "rapier +1" -msgid_plural "rapier +1s" +msgid "phase uneven matter" +msgid_plural "phase uneven matters" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'phase uneven matter'} #: lang/json/GENERIC_from_json.py -msgid "rapier +2" -msgid_plural "rapier +2s" -msgstr[0] "" -msgstr[1] "" +msgid "Matter condensed from the liminal spaces between dimmensions." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "tanto +1" -msgid_plural "tanto +1s" +msgid "peripheral electrode" +msgid_plural "peripheral electrodes" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'peripheral electrode'} #: lang/json/GENERIC_from_json.py -msgid "tanto +2" -msgid_plural "tanto +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A thin strand of wire and a clamp, meant to be spliced into the smaller " +"nerves of the human body." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "wakizashi +1" -msgid_plural "wakizashi +1s" +msgid "neural electrode" +msgid_plural "neural electrodes" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'neural electrode'} #: lang/json/GENERIC_from_json.py -msgid "wakizashi +2" -msgid_plural "wakizashi +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A small array of metallic needles allows complex communication between " +"machine and human mind." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "zweihänder +1" -msgid_plural "zweihänder +1s" +msgid "brain implant prod" +msgid_plural "brain implant prods" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'brain implant prod'} #: lang/json/GENERIC_from_json.py -msgid "zweihänder +2" -msgid_plural "zweihänder +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A complexly etched rod of metal interfaces with the corpus callosum of the " +"patient, granting increased control of bionic functions." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "khopesh +1" -msgid_plural "khopesh +1s" +msgid "artificial neural tissue" +msgid_plural "artificial neural tissues" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'artificial neural tissue'} #: lang/json/GENERIC_from_json.py -msgid "khopesh +2" -msgid_plural "khopesh +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"Photonic axons process thought at speeds far surpassing primitive, chemical-" +"driven communication." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "xiphos +1" -msgid_plural "xiphos +1s" +msgid "neurosynaptic interface matrix" +msgid_plural "neurosynaptic interface matrices" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'neurosynaptic interface matrix', 'str_pl': 'neurosynaptic interface matrices'} #: lang/json/GENERIC_from_json.py -msgid "xiphos +2" -msgid_plural "xiphos +2s" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A membrane of artificial neurons envelops the cerebral cortex, melding " +"machine and human intellect into a gestalt much greater than its individual " +"parts." +msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "dao +1" -msgid_plural "dao +1s" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "ultralight frame" +msgid_plural "ultralight frames" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'ultralight frame'} #: lang/json/GENERIC_from_json.py -msgid "dao +2" -msgid_plural "dao +2s" -msgstr[0] "" -msgstr[1] "" +msgid "A sturdy, lightweight frame made from titanium. Useful for crafting." +msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Biomancer spear" -msgid_plural "Biomancer spears" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "control station" +msgid_plural "control stations" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Biomancer spear'} +#. ~ Description for {'str': 'control station'} #: lang/json/GENERIC_from_json.py msgid "" -"A grotesque bone spearhead on a stout wooden pole. There is a Biomancer " -"rune embedded at the base of the head." +"A large and complex piloting station from a military vehicle, including a " +"camera station, steering tools, and electronics controls." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Technomancer toolbar" -msgid_plural "Technomancer toolbars" +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Technomancer toolbar'} +#. ~ Description for {'str': 'vehicle shelving'} #: lang/json/GENERIC_from_json.py msgid "" -"This staff incorporates a sturdy cresent wrench on top of a prybar and a " -"hammer on the other in a convienent package. There is a Technomancer rune " -"embedded in the hammerhead." +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Magus staff" -msgid_plural "Magus staves" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Magus staff', 'str_pl': 'Magus staves'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"A quarterstaff with runes carved into it and two glass jars, heat-tempered " -"and infused with mana for durability, to act as mana receptacles. There are " -"two Magi runes embedded at the tips." +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires " +"a jumper cable or similar to pull power from." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Kelvinist flamberge" -msgid_plural "Kelvinist flamberges" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Kelvinist flamberge'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"A sword with an undulating blade, reminiscent of a flame. There is a " -"Kelvinist rune embedded in the pommel." +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due " +"to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle. " +"Requires a jumper cable or similar to pull power from." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Stormshaper axe" -msgid_plural "Stormshaper axes" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Stormshaper axe'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"A forged copper axe with silver trimmings and a wooden handle. There is a " -"Stormshaper rune embedded in the eye." +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due " +"to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle. " +"Requires a jumper cable or similar to pull power from." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Animist athame" -msgid_plural "Animist athames" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Animist athame'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"A steel ritual knife used by Animists to draw blood for summoning. Their " -"school rune is embedded in the crossguard." +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "springstaff(baton)" -msgid_plural "springstaves(baton)" +msgid "withered plant bundle" +msgid_plural "withered plant bundles" msgstr[0] "" msgstr[1] "" -#. ~ Use action menu_text for {'str': 'springstaff(baton)', 'str_pl': 'springstaves(baton)'}. +#. ~ Description for withered plant bundle #: lang/json/GENERIC_from_json.py -msgid "Extend to staff" +msgid "A bundle of plant matter" msgstr "" -#. ~ Use action msg for {'str': 'springstaff(baton)', 'str_pl': 'springstaves(baton)'}. #: lang/json/GENERIC_from_json.py -msgid "You snap open your springstaff into staff mode." +msgid "CRIT hatchet" +msgid_plural "CRIT hatchets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for CRIT hatchet. +#: lang/json/GENERIC_from_json.py +msgid "You extend your hatchet" msgstr "" -#. ~ Description for {'str': 'springstaff(baton)', 'str_pl': 'springstaves(baton)'} +#. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" -"This versatile weapon uses Technomancy-enhanced springs to keep the staff " -"tips retracted while in baton configuration. Activate to extend." +"An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "springstaff(staff)" -msgid_plural "springstaves(staff)" +msgid "CRIT axe" +msgid_plural "CRIT axes" msgstr[0] "" msgstr[1] "" -#. ~ Use action menu_text for {'str': 'springstaff(staff)', 'str_pl': 'springstaves(staff)'}. -#: lang/json/GENERIC_from_json.py -msgid "Retract to baton" -msgstr "" - -#. ~ Use action msg for {'str': 'springstaff(staff)', 'str_pl': 'springstaves(staff)'}. +#. ~ Use action msg for CRIT axe. #: lang/json/GENERIC_from_json.py -msgid "You collapse your springstaff into baton mode." +msgid "You collapse your axe" msgstr "" -#. ~ Description for {'str': 'springstaff(staff)', 'str_pl': 'springstaves(staff)'} +#. ~ Description for CRIT axe #: lang/json/GENERIC_from_json.py msgid "" -"This versatile weapon uses Technomancy-enhanced springs to keep the staff " -"tips from retracting while in staff configuration. Activate to extend." +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer " +"when extended." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "endless flask" -msgid_plural "endless flasks" +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/GENERIC_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#. ~ Description for CRIT Blade-work manual #: lang/json/GENERIC_from_json.py -msgid "The flask isn't done refilling yet." +msgid "An advanced military manual on CRIT Blade-work." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "magic token" -msgid_plural "magic tokens" +msgid "C.R.I.T Enforcement manual" +msgid_plural "C.R.I.T Enforcement manuals" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'C.R.I.T Enforcement manual'} #: lang/json/GENERIC_from_json.py -msgid "longsword token" -msgid_plural "longsword tokens" -msgstr[0] "" -msgstr[1] "" +msgid "An advanced military manual on C.R.I.T Enforcer melee." +msgstr "" -#. ~ Use action msg for longsword token. #: lang/json/GENERIC_from_json.py -msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine longsword!" -msgstr "" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for longsword token +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a longsword." +msgid "An advanced military manual on CRIT general CQB." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "arming sword token" -msgid_plural "arming sword tokens" +msgid "alien electronic scrap" +msgid_plural "alien electronic scraps" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'arming sword token'}. +#. ~ Description for {'str': 'alien electronic scrap'} #: lang/json/GENERIC_from_json.py msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine arming sword!" +"A collection of dazzling alien electronics, far beyond anything of " +"terrestrial manufacture. Useful in crafting." msgstr "" -#. ~ Description for {'str': 'arming sword token'} +#: lang/json/GENERIC_from_json.py +msgid "alien biotech" +msgid_plural "alien biotechs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'alien biotech'} #: lang/json/GENERIC_from_json.py msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case an arming sword." +"A fistfull of gently squirming parts that secrete viscous gel. Useful in " +"crafting, but not fun to hold." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broadsword token" -msgid_plural "broadsword tokens" +msgid "alien power cell" +msgid_plural "alien power cells" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for broadsword token. +#. ~ Description for {'str': 'alien power cell'} #: lang/json/GENERIC_from_json.py msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine broadsword!" +"A fist-sized, cylindrical canister that makes you feel a bit tingly when you " +"hold it. Its center houses a faintly glowing red core of some sort. Though " +"fundementally incompatable with earthly technologies, it still might be " +"useful in crafting." msgstr "" -#. ~ Description for broadsword token +#: lang/json/GENERIC_from_json.py +msgid "broken emissary" +msgid_plural "broken emissaries" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'broken emissary', 'str_pl': 'broken emissaries'} #: lang/json/GENERIC_from_json.py msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a broadsword." +"The massive body of a collapsed emissary. Still a bit intimidating, perhaps " +"knowing the damage it can cause. Could be gutted for parts, but you'll " +"probably need specialized alien tools." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "battleaxe token" -msgid_plural "battleaxe tokens" +msgid "broken emissary of war" +msgid_plural "broken emissaries of war" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'battleaxe token'}. +#. ~ Description for {'str': 'broken emissary of war', 'str_pl': 'broken emissaries of war'} #: lang/json/GENERIC_from_json.py msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine battle axe!" +"The massive body of a collapsed emissary of war. Still a bit intimidating, " +"perhaps knowing the damage it can cause. Could be gutted for parts, but " +"you'll probably need specialized alien tools." msgstr "" -#. ~ Description for {'str': 'battleaxe token'} +#: lang/json/GENERIC_from_json.py +msgid "broken emissary of flame" +msgid_plural "broken emissaries of flame" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'broken emissary of flame', 'str_pl': 'broken emissaries of flame'} #: lang/json/GENERIC_from_json.py msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a battle axe." +"The massive body of a collapsed emissary of flame. Still a bit " +"intimidating, perhaps knowing the damage it can cause. Could be gutted for " +"parts, but you'll probably need specialized alien tools." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "pike token" -msgid_plural "pike tokens" +msgid "broken surveillance drone" +msgid_plural "broken surveillance drones" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for pike token. -#: lang/json/GENERIC_from_json.py -msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine pike!" -msgstr "" - -#. ~ Description for pike token +#. ~ Description for {'str': 'broken surveillance drone'} #: lang/json/GENERIC_from_json.py msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a pike." +"A broken drone. Much less threatening now that it isn't shining its light " +"everywhere. Could be gutted for parts. Specialized alien tools would be " +"best for disassembly, but you could make do with more human instruments " +"instead." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "mace token" -msgid_plural "mace tokens" +msgid "broken seeker drone" +msgid_plural "broken seeker drones" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for mace token. +#. ~ Description for {'str': 'broken seeker drone'} #: lang/json/GENERIC_from_json.py msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine mace!" +"A broken drone. Much less threatening now that it isn't prodding you. " +"Specialized alien tools would be best for disassembly, but you could make do " +"with more human instruments instead." msgstr "" -#. ~ Description for mace token +#. ~ Description for {'str': 'toilet brush', 'str_pl': 'toilet brushes'} #: lang/json/GENERIC_from_json.py msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a mace." +"The aliens that have invaded Earth cannot be intimidated or humiliated - at " +"least not meaningfully - so this stiff brush is only useful for scouring " +"toilet bowls." msgstr "" +#. ~ Description for basketball #: lang/json/GENERIC_from_json.py -msgid "quarterstaff token" -msgid_plural "quarterstaff tokens" -msgstr[0] "" -msgstr[1] "" +msgid "A high-quality indoor basketball. You could throw it at your enemies." +msgstr "" -#. ~ Use action msg for quarterstaff token. +#. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a pristine quarterstaff!" +"A single sheet of newspaper broadsheet. Most of the information on there is " +"terribly trivial, or out of date, but one thing catches your eye briefly - " +"some things from before the Cataclysm, and some even after." msgstr "" -#. ~ Description for quarterstaff token +#. ~ Description for {'str': 'reinforced solar panel'} #: lang/json/GENERIC_from_json.py msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a quarterstaff." +"A solar panel that has been covered with a pane of reinforced glass to " +"protect the delicate solar cells from aliens or errant baseballs. The glass " +"causes this panel to produce slightly less power than a normal panel. " +"Useful for a vehicle." msgstr "" +#. ~ Description for {'str': 'upgraded reinforced solar panel'} #: lang/json/GENERIC_from_json.py -msgid "hammer token" -msgid_plural "hammer tokens" +msgid "" +"An upgraded solar panel that has been covered with a pane of reinforced " +"glass to protect the delicate solar cells from aliens or errant baseballs. " +"The glass causes this panel to produce slightly less power than a normal " +"upgraded panel. Useful for a vehicle." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "tiny pistol casing" +msgid_plural "tiny pistol casings" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for hammer token. +#. ~ Description for tiny pistol casing #: lang/json/GENERIC_from_json.py -msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine hammer!" +msgid "An empty casing from a tiny pistol round." msgstr "" -#. ~ Description for hammer token #: lang/json/GENERIC_from_json.py -msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a hammer." +msgid "pistol casing" +msgid_plural "pistol casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pistol casing'} +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a standard pistol round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "screwdriver set token" -msgid_plural "screwdriver set tokens" +msgid "magnum pistol casing" +msgid_plural "magnum pistol casings" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for screwdriver set token. +#. ~ Description for {'str': 'magnum pistol casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine screwdriver set!" +msgid "An empty casing from a magnum pistol round." msgstr "" -#. ~ Description for screwdriver set token #: lang/json/GENERIC_from_json.py -msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a screwdriver." +msgid "rifle casing" +msgid_plural "rifle casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'rifle casing'} +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a rifle round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "toolbox token" -msgid_plural "toolbox tokens" +msgid "huge rifle casing" +msgid_plural "huge rifle casings" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for toolbox token. +#. ~ Description for {'str': 'huge rifle casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine toolbox!" +msgid "An empty casing from a huge rifle round." msgstr "" -#. ~ Description for toolbox token +#: lang/json/GENERIC_from_json.py +msgid "shotshell hull" +msgid_plural "shotshell hulls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for shotshell hull #: lang/json/GENERIC_from_json.py msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a toolbox." +"A shotshell's casing, a plastic tube with a brass casehead, commonly " +"referred to as a hull." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "crowbar token" -msgid_plural "crowbar tokens" +msgid "grenade casing" +msgid_plural "grenade casings" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for crowbar token. +#. ~ Description for {'str': 'grenade casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"You say the command word engraved on the token, and it rapidly grows and " -"morphs into a shiny pristine crowbar!" +msgid "A large casing from a grenade round." msgstr "" -#. ~ Description for crowbar token #: lang/json/GENERIC_from_json.py -msgid "" -"A large silver coin that, when activated by uttering the word on the back, " -"turns into the item pictured on the front, in this case a crowbar." -msgstr "" +msgid "rifle belt linkage" +msgid_plural "rifle belt linkages" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "cestus +1" -msgid_plural "cestus +1s" +msgid "grenade belt linkage" +msgid_plural "grenade belt linkages" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "cestus +2" -msgid_plural "cestus +2s" +msgid "heavy machinegun belt linkage" +msgid_plural "heavy machinegun belt linkages" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "flaming fist" -msgid_plural "flaming fists" +msgid "broken CROWS II" +msgid_plural "broken CROWS IIs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'flaming fist'} #: lang/json/GENERIC_from_json.py -msgid "" -"A heavy metal guard that covers the fist and increases striking power, with " -"stout padding underneath to protect the wearers hand. It has been enchanted " -"to emit dark magical flames that only harm enemies." -msgstr "" +msgid "broken CROWS II Heavy" +msgid_plural "broken CROWS II Heavys" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "flaming fist +1" -msgid_plural "flaming fist +1s" +msgid "broken launcher TALON UGV" +msgid_plural "broken launcher TALON UGVs" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "flaming fist +2" -msgid_plural "flaming fist +2s" +msgid "broken rifle TALON UGV" +msgid_plural "broken rifle TALON UGVs" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "gauntlet of pounding" -msgid_plural "gauntlets of pounding" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gauntlet of pounding', 'str_pl': 'gauntlets of pounding'} +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "" -"A large gleaming metal gauntlet covered in magical symbols that allows you " -"to land astoundingly powerful blows." +msgid "This book contains the teaching of the Desert Wind discipline." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Earthshaper cestus" -msgid_plural "Earthshaper cesti" +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Earthshaper cestus', 'str_pl': 'Earthshaper cesti'} +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "" -"A stone battle glove with carved runes encasing the hand, protecting it " -"while increasing striking power. There is an Earthshaper rune embedded in " -"the palm." +msgid "This book contains the teaching of the Diamond Mind discipline." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Stormhammer" -msgid_plural "The Stormhammers" +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Stormhammer'} +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py msgid "" -"A crackling magical warhammer full of lightning to smite your foes with, and " -"of course, smash things to bits!" +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Stormfist" -msgid_plural "Stormfists" +#: lang/json/GENERIC_from_json.py +msgid "The Life and Work of Tiger Sauer" +msgid_plural "The Life and Work of Tiger Sauer" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Stormfist'} -#. ~ Description for Stormfist -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str_sp': 'The Life and Work of Tiger Sauer'} +#: lang/json/GENERIC_from_json.py msgid "" -"Encases your arm and hand in a sheath of crackling magical lightning, you " -"can punch and defend yourself with it in melee combat." +"A biography of a combat cyborg agent detailing his philosophy and martial " +"art." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "vicious tentacle whip" -msgid_plural "vicious tentacle whips" +msgid "stone shell" +msgid_plural "stone shells" msgstr[0] "" msgstr[1] "" -#. ~ Description for vicious tentacle whip +#. ~ Description for stone shell #: lang/json/GENERIC_from_json.py msgid "" -"A long, writhing, tentacle covered in sharp bonelike blades and spikey " -"protrusions." +"The broken fragment of an owlbear egg. With luck it might still contain " +"some of its former power, though if nothing else it's still a bit sharp." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Wicked Bonespear" -msgid_plural "Wicked Bonespears" +msgid "glow dust" +msgid_plural "glow dusts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Wicked Bonespear'} +#. ~ Description for glow dust #: lang/json/GENERIC_from_json.py -msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgid "" +"The powdered remains of a will-o-wisps's phsyical form. It seems to still " +"possess an otherworldly glow." msgstr "" -#. ~ Description for {'str': 'Mjölnir'} +#: lang/json/GENERIC_from_json.py +msgid "magical reading light" +msgid_plural "magical reading lights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for magical reading light #: lang/json/GENERIC_from_json.py msgid "" -"Mjölnir, the legendary hammer of Thor. It is rumored to be able to level " -"mountains with a single blow. You feel the power of Asgard coursing through " -"the hammer." +"Powered by the magic of glow powder and lesser mana potions, this extremely " +"expensive little light will provide just enough light to read by for at " +"least a decade. Use it to close the cover and hide the light." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Gungnir" -msgid_plural "Gungnirs" +msgid "magical reading light (covered)" +msgid_plural "magical reading lights (covered)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Gungnir'} +#. ~ Description for {'str': 'magical reading light (covered)', 'str_pl': 'magical reading lights (covered)'} #: lang/json/GENERIC_from_json.py msgid "" -"Gungnir, the spear of Odin. It is rumored to be the perfect spear, " -"perfectly hitting any target regardless of the wielder's strength or skill. " -"If feels like Odin's protecting you." +"Powered by the magic of glow powder and lesser mana potions, this extremely " +"expensive little light will provide just enough light to read by for at " +"least a decade. The cover is closed. Use it to open the cover and show the " +"light." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Gram" -msgid_plural "Grams" +msgid "bulette plate" +msgid_plural "bulette plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Gram'} +#. ~ Description for bulette plate #: lang/json/GENERIC_from_json.py msgid "" -"Gram, the sword of Sigurd. It is rumored to be the sword that slayed the " -"legendary dragon, Fafnir. Once said to have cleaved Regin's anvil in half, " -"the edge is impeccable." +"The great plates from behind a bulette's head have always been prized for " +"use in shield and armor making." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Laevateinn" -msgid_plural "Laevateinns" +msgid "bulette pearl" +msgid_plural "bulette pearls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Laevateinn'} +#. ~ Description for bulette pearl #: lang/json/GENERIC_from_json.py msgid "" -"Laevateinn, the staff of Loki. Said to have been plucked from the gates of " -"Hel by Loki. Imbued with a mysterious magic, the magic of the trickster god " -"himself." +"As a bulette burrows through the earth its gills collect minute amounts of " +"precious metals and gems which slowly aggregate into lustrous gemstones " +"prized for their beauty and power." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "orichalcum ingot" -msgid_plural "orichalcum ingots" +msgid "stirge proboscis" +msgid_plural "stirge proboscises" msgstr[0] "" msgstr[1] "" -#. ~ Description for orichalcum ingot +#. ~ Description for {'str': 'stirge proboscis', 'str_pl': 'stirge proboscises'} #: lang/json/GENERIC_from_json.py msgid "" -"An ingot of orichalcum. About 3 cm by 7 cm by 12 cm in size, ready to be " -"used for various blacksmithing tasks." +"A long sucking apparatus harvested from stirge corpse. Makes a poor melee " +"weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Spell Scroll" -msgid_plural "Spell Scrolls" +msgid "chunk of demon chitin" +msgid_plural "chunks of demon chitin" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'chunk of demon chitin', 'str_pl': 'chunks of demon chitin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A piece of demon spider exoskeleton. It is light and very durable, and " +"probably has some magical properties." +msgstr "" + #: lang/json/GENERIC_from_json.py -msgid "Scroll of Crystallize Mana" -msgid_plural "Scrolls of Crystallize Mana" +msgid "demon chitin plate" +msgid_plural "demon chitin plates" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Crystallize Mana', 'str_pl': 'Scrolls of Crystallize Mana'} +#. ~ Description for demon chitin plate #: lang/json/GENERIC_from_json.py msgid "" -"A proper wizard is always prepared, crystallize your mana for the future!" +"A large piece of demon spider exoskeleton, painstakingly cut from the corpse " +"of an adult demon spider. A plate of this size can be used to create armor " +"plating." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Dark Sight" -msgid_plural "Scrolls of Dark Sight" +msgid "demon spider fang" +msgid_plural "demon spider fangs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Dark Sight', 'str_pl': 'Scrolls of Dark Sight'} +#. ~ Description for demon spider fang #: lang/json/GENERIC_from_json.py msgid "" -"The darkness holds no secrets for the arcane. Adjust your sight to see in " -"perfect darkness!" +"A fang from a demon spider. It seems to still drip with poison; you might " +"be able to use this in some alchemical recipe?" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Invisibility" -msgid_plural "Scrolls of Invisibility" +msgid "mana dust" +msgid_plural "mana dusts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Invisibility', 'str_pl': 'Scrolls of Invisibility'} +#. ~ Description for mana dust #: lang/json/GENERIC_from_json.py msgid "" -"The light can not interact with you unless you want it to. Become invisible!" +"Crystallized mana in powdered form. It faintly pulses with arcane energy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Obfuscated Body" -msgid_plural "Scrolls of Obfuscated Body" +msgid "black dragon scale" +msgid_plural "black dragon scales" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Obfuscated Body', 'str_pl': 'Scrolls of Obfuscated Body'} +#. ~ Description for black dragon scale #: lang/json/GENERIC_from_json.py msgid "" -"A magical aura distorts light around your body, making it easier to dodge " -"enemy attacks." +"A scale from a black dragon. It still has its magical properties and acid " +"resistance." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Holographic Transposition" -msgid_plural "Scrolls of Holographic Transposition" +msgid "black dragon hide" +msgid_plural "black dragon hides" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Holographic Transposition', 'str_pl': 'Scrolls of Holographic Transposition'} -#. ~ Description for {'str': 'Holographic Transposition'} -#. ~ Description for Holographic Transposition -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -#: lang/json/SPELL_from_json.py +#. ~ Description for black dragon hide +#: lang/json/GENERIC_from_json.py msgid "" -"Allows you to swap places with a previously existing holographic image of " -"yourself. If the universe itself can't tell you apart, who could?" +"Prepared hide from a black dragon. Hard, acid-resistant, and with more " +"scales could make a suit of armor as hard as steel and half as heavy." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Smite" -msgid_plural "Scrolls of Smite" +msgid "vacation brochure" +msgid_plural "vacation brochures" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Smite', 'str_pl': 'Scrolls of Smite'} -#. ~ Description for Smite -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Use action message for vacation brochure. +#. ~ Use action message for lair map. +#: lang/json/GENERIC_from_json.py +msgid "You add the locations to your map." +msgstr "" + +#. ~ Description for vacation brochure +#: lang/json/GENERIC_from_json.py msgid "" -"Evil has become pervasive throughout the world. Let your power be the light " -"that shines in the darkness!" +"This is a glossy brochure encouraging students to book vactaions at a lake " +"retreat or remote cabin. The brochure includes lush photographs of a tower " +"on an island and a remote looking cabin in the woods. It includes a map of " +"the areas." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Life Conversion" -msgid_plural "Scrolls of Life Conversion" +msgid "lair map" +msgid_plural "lair maps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Life Conversion', 'str_pl': 'Scrolls of Life Conversion'} -#. ~ Description for Life Conversion -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for lair map +#: lang/json/GENERIC_from_json.py msgid "" -"You channel your life force itself into your spiritual energy. You spend hp " -"to regain mana." +"This is an well worn map. It has pictures of fantastical beasts " +"embellishing the carefully drawn map markers." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Mind Over Pain" -msgid_plural "Scrolls of Mind Over Pain" +msgid "old photo" +msgid_plural "old photos" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Mind Over Pain', 'str_pl': 'Scrolls of Mind Over Pain'} -#. ~ Description for Mind over Pain -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for old photo +#: lang/json/GENERIC_from_json.py msgid "" -"With an intense ritual that resembles crossfit, you manage to put some of " -"your pain at bay." +"A photo of a jovial, old wizard, he seems to be dancing with a coat rack in " +"this basement. There is a stack of suitcases in the background." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Summon Zombie" -msgid_plural "Scrolls of Summon Zombie" +msgid "broken clay golem" +msgid_plural "broken clay golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Summon Zombie', 'str_pl': 'Scrolls of Summon Zombie'} -#. ~ Description for Summon Zombie -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for broken clay golem +#: lang/json/GENERIC_from_json.py msgid "" -"An ethereal-looking zombie rises from the depths of the earth to fight for " -"you. You may be able to summon more with a higher level in this spell." +"A broken clay golem, looking like a piece of post-modern art. Could be " +"smashed for clay." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Summon Skeleton" -msgid_plural "Scrolls of Summon Skeleton" +msgid "broken plastic golem" +msgid_plural "broken plastic golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Summon Skeleton', 'str_pl': 'Scrolls of Summon Skeleton'} -#. ~ Description for Summon Skeleton -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for broken plastic golem +#: lang/json/GENERIC_from_json.py msgid "" -"A ghostly skeleton rises from the depths of the earth to fight for you. You " -"may be able to summon more with a higher level in this spell." +"A broken plastic golem, like a giant action figure chewed up by an equally " +"giant puppy. You could smash it up into recycled plastic bits." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Summon Floating Disk" -msgid_plural "Scrolls of Summon Floating Disk" +msgid "broken stone golem" +msgid_plural "broken stone golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Summon Floating Disk', 'str_pl': 'Scrolls of Summon Floating Disk'} -#. ~ Description for Summon floating disk -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Summons a floating disk that is sworn to carry your burdens." +#. ~ Description for broken stone golem +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken stone golem, not that much different from big boulder. Could be " +"smashed for stone." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Summon Decayed Pouncer" -msgid_plural "Scrolls of Summon Decayed Pouncer" +msgid "broken iron golem" +msgid_plural "broken iron golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Summon Decayed Pouncer', 'str_pl': 'Scrolls of Summon Decayed Pouncer'} -#. ~ Description for Summon Decayed Pouncer -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for broken iron golem +#: lang/json/GENERIC_from_json.py msgid "" -"A decrepit looking large cat rises from the depths of the earth to fight for " -"you. You may be able to summon more with a higher level in this spell." +"A broken iron golem, with all iron you would possibly ever need. Could be " +"smashed for iron." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Cure Light Wounds" -msgid_plural "Scrolls of Cure Light Wounds" +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Cure Light Wounds', 'str_pl': 'Scrolls of Cure Light Wounds'} -#. ~ Description for Cure Light Wounds -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Heals a little bit of damage on the target." +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff " +"you put into it. It takes a few words and hand-waving to take an item out." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Pain Split" -msgid_plural "Scrolls of Pain Split" +msgid "dimensional bag" +msgid_plural "dimensional bags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Pain Split', 'str_pl': 'Scrolls of Pain Split'} -#. ~ Description for Pain Split -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Evens out damage among your limbs." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Vicious Tentacle" -msgid_plural "Scrolls of Vicious Tentacle" +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Vicious Tentacle', 'str_pl': 'Scrolls of Vicious Tentacle'} -#. ~ Description for Vicious Tentacle -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py msgid "" -"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing " -"acid from your body, it has a long reach attack and vicious damage." +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Grotesque Enhancement" -msgid_plural "Scrolls of Grotesque Enhancement" +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Grotesque Enhancement', 'str_pl': 'Scrolls of Grotesque Enhancement'} -#. ~ Description for Grotesque Enhancement -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py msgid "" -"A spell that warps your body in alien ways to increase your physical " -"abilities and strength." +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Acidic Spray" -msgid_plural "Scrolls of Acidic Spray" +msgid "lesser staff of the magi" +msgid_plural "lesser staves of the magi" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Acidic Spray', 'str_pl': 'Scrolls of Acidic Spray'} -#. ~ Description for {'str': 'Acidic Spray'} -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'lesser staff of the magi', 'str_pl': 'lesser staves of the magi'} +#: lang/json/GENERIC_from_json.py msgid "" -"When cast, the mage opens his mouth and sprays acid in a wide cone to " -"dissolve his foes into goo. Just imagine what he'll do with the goo." +"A beautifully carved staff, made of enchanted wood and mithril. It faintly " +"glows with magic when you cast spells, but it is not a sturdy melee weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Flesh Pouch" -msgid_plural "Scrolls of Flesh Pouch" +msgid "fireball hammer" +msgid_plural "fireball hammers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Flesh Pouch', 'str_pl': 'Scrolls of Flesh Pouch'} -#. ~ Description for Flesh Pouch -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"This spell grows a large pouch out of your skin on your back, allowing you " -"to store your gear in it." +#. ~ Description for fireball hammer +#: lang/json/GENERIC_from_json.py +msgid "Use with caution! Flammable! Explosive!" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Conjure Bonespear" -msgid_plural "Scrolls of Conjure Bonespear" +msgid "The Iron Whip" +msgid_plural "Iron Whips" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Conjure Bonespear', 'str_pl': 'Scrolls of Conjure Bonespear'} -#. ~ Description for Conjure Bonespear -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Use action msg for {'str': 'The Iron Whip', 'str_pl': 'Iron Whips'}. +#: lang/json/GENERIC_from_json.py msgid "" -"This spell creates a long shaft of bone with a wicked point and blades along " -"its length." +"You loop the whip in your hand and it coils back into a belt form in an " +"instant." msgstr "" +#. ~ Description for {'str': 'The Iron Whip', 'str_pl': 'Iron Whips'} #: lang/json/GENERIC_from_json.py -msgid "Scroll of Megablast" -msgid_plural "Scrolls of Megablast" +msgid "" +"A long braided flexible steel bullwhip that narrows into a sharp blade at " +"the end. Easily capable of slicing and dicing anything that comes at you. " +"It transforms back into a belt." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "cudgel +1" +msgid_plural "cudgel +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Megablast', 'str_pl': 'Scrolls of Megablast'} -#. ~ Description for Megablast -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You always wanted to fire energy beams like in the animes you watched as a " -"kid. Now you can!" -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "cudgel +2" +msgid_plural "cudgel +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Magical Light" -msgid_plural "Scrolls of Magical Light" +msgid "quarterstaff +1" +msgid_plural "quarterstaff +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Magical Light', 'str_pl': 'Scrolls of Magical Light'} -#. ~ Description for Magical Light -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Creates a magical light." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "quarterstaff +2" +msgid_plural "quarterstaff +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Blinding Flash" -msgid_plural "Scrolls of Blinding Flash" +msgid "ironshod quarterstaff +1" +msgid_plural "ironshod quarterstaff +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Blinding Flash', 'str_pl': 'Scrolls of Blinding Flash'} -#. ~ Description for {'str': 'Blinding Flash'} -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Blind enemies for a short time with a sudden, dazzling light. Higher levels " -"deal slightly higher damage." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "ironshod quarterstaff +2" +msgid_plural "ironshod quarterstaff +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Ethereal Grasp" -msgid_plural "Scrolls of Ethereal Grasp" +msgid "longsword +1" +msgid_plural "longsword +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Ethereal Grasp', 'str_pl': 'Scrolls of Ethereal Grasp'} -#. ~ Description for Ethereal Grasp -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"A mass of spectral hands emerge from the ground, slowing everything in " -"range. Higher levels allow a bigger AoE, and longer effect." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "longsword +2" +msgid_plural "longsword +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Aura of Protection" -msgid_plural "Scrolls of Aura of Protection" +msgid "sledge hammer +1" +msgid_plural "sledge hammer +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Aura of Protection', 'str_pl': 'Scrolls of Aura of Protection'} -#. ~ Description for {'str': 'Aura of Protection'} -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Encases your whole body in a magical aura that protects you from the " -"environment." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "sledge hammer +2" +msgid_plural "sledge hammer +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Vegetative Grasp" -msgid_plural "Scrolls of Vegetative Grasp" +msgid "warhammer +1" +msgid_plural "warhammer +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Vegetative Grasp', 'str_pl': 'Scrolls of Vegetative Grasp'} -#. ~ Description for Vegetative Grasp -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"This spell causes roots and vines to burst forth from the ground and grab " -"your foes, slowing them and doing a small amount of damage as they dig in." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "warhammer +2" +msgid_plural "warhammer +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Root Strike" -msgid_plural "Scrolls of Root Strike" +msgid "bat +1" +msgid_plural "bat +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Root Strike', 'str_pl': 'Scrolls of Root Strike'} -#. ~ Description for Root Strike -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"This spell causes roots to spear out the ground and stab into your foes in " -"an arc, impaling them." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "bat +2" +msgid_plural "bat +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Wooden Shaft" -msgid_plural "Scrolls of Wooden Shaft" +msgid "aluminum bat +1" +msgid_plural "aluminum bat +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Wooden Shaft', 'str_pl': 'Scrolls of Wooden Shaft'} -#. ~ Description for Wooden Shaft -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"This spell creates a projectile of hardwood that shoots forth from the " -"caster's hand at high speed to stab into an enemy." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "aluminum bat +2" +msgid_plural "aluminum bat +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Nature's Bow" -msgid_plural "Scrolls of Nature's Bow" +msgid "steel spear +1" +msgid_plural "steel spear +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "Scroll of Nature's Bow", 'str_pl': "Scrolls of Nature's Bow"} -#. ~ Description for Nature's Bow -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"This spell conjures a magical wooden recurve bow that fires endless arrows " -"for as long as it lasts." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "steel spear +2" +msgid_plural "steel spear +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Nature's Trance" -msgid_plural "Scrolls of Nature's Trance" +msgid "qiang +1" +msgid_plural "qiang +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "Scroll of Nature's Trance", 'str_pl': "Scrolls of Nature's Trance"} -#. ~ Description for Nature's Trance -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Your connection to living things allows you to go into a magical trance. " -"This allows you to recover fatige quickly in exchange for mana." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "qiang +2" +msgid_plural "qiang +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Bag of Cats" -msgid_plural "Scrolls of Bag of Cats" +msgid "halberd +1" +msgid_plural "halberd +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Bag of Cats', 'str_pl': 'Scrolls of Bag of Cats'} -#. ~ Description for {'str': 'Bag of Cats'} -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Are you the crazy cat lady?" -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "halberd +2" +msgid_plural "halberd +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Stonefist" -msgid_plural "Scrolls of Stonefist" +msgid "glaive +1" +msgid_plural "glaive +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Stonefist', 'str_pl': 'Scrolls of Stonefist'} -#. ~ Description for Stonefist -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Encases your arms and hands in a sheath of magical stone, you can punch and " -"defend yourself with it in melee combat." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "glaive +2" +msgid_plural "glaive +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Seismic Stomp" -msgid_plural "Scrolls of Seismic Stomp" +msgid "naginata +1" +msgid_plural "naginata +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Seismic Stomp', 'str_pl': 'Scrolls of Seismic Stomp'} -#. ~ Description for Seismic Stomp -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Focusing mana into your leg, you stomp your foot and send out a shockwave, " -"knocking enemies around you onto the ground." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "naginata +2" +msgid_plural "naginata +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Stone's Endurance" -msgid_plural "Scrolls of Stone's Endurance" +msgid "mace +1" +msgid_plural "mace +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "Scroll of Stone's Endurance", 'str_pl': "Scrolls of Stone's Endurance"} -#. ~ Description for Stone's Endurance -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You focus on the stones beneath you and draw from their agelessness. Your " -"mana is converted to stamina." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "mace +2" +msgid_plural "mace +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Shardspray" -msgid_plural "Scrolls of Shardspray" +msgid "morningstar +1" +msgid_plural "morningstar +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Shardspray', 'str_pl': 'Scrolls of Shardspray'} -#. ~ Description for Shardspray -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"This spell projects a wide spray of sharp metal shards, cutting into your " -"foes and friends alike." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "morningstar +2" +msgid_plural "morningstar +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Piercing Bolt" -msgid_plural "Scrolls of Piercing Bolt" +msgid "jian +1" +msgid_plural "jian +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Piercing Bolt', 'str_pl': 'Scrolls of Piercing Bolt'} -#. ~ Description for Piercing Bolt -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"This spell projects a piercing rod of conjured iron at those that dare " -"oppose you." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "jian +2" +msgid_plural "jian +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Shardstorm" -msgid_plural "Scrolls of Shardstorm" +msgid "scimitar +1" +msgid_plural "scimitar +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Shardstorm', 'str_pl': 'Scrolls of Shardstorm'} -#. ~ Description for Shardstorm -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Creates an omnidirectional spray of razor sharp metal shards all around you." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "scimitar +2" +msgid_plural "scimitar +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Rockbolt" -msgid_plural "Scrolls of Rockbolt" +msgid "estoc +1" +msgid_plural "estoc +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Rockbolt', 'str_pl': 'Scrolls of Rockbolt'} -#. ~ Description for Rockbolt -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Fires a conjured stone projectile at high velocity." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "estoc +2" +msgid_plural "estoc +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Point Flare" -msgid_plural "Scrolls of Point Flare" +msgid "arming sword +1" +msgid_plural "arming sword +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Point Flare', 'str_pl': 'Scrolls of Point Flare'} -#. ~ Description for Point Flare -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Causes an intense heat at the location, damaging the target." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "arming sword +2" +msgid_plural "arming sword +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Finger Firelighter" -msgid_plural "Scrolls of Finger Firelighter" +msgid "broadsword +1" +msgid_plural "broadsword +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Finger Firelighter', 'str_pl': 'Scrolls of Finger Firelighter'} -#. ~ Description for Finger Firelighter -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Summons a small flame that does not burn you, but you can use it to light " -"things on fire. It seems to need you to have some intent to light things on " -"fire, because you are able to put it in your pocket with no issue." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "broadsword +2" +msgid_plural "broadsword +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Ice Spike" -msgid_plural "Scrolls of Ice Spike" +msgid "battle axe +1" +msgid_plural "battle axe +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Ice Spike', 'str_pl': 'Scrolls of Ice Spike'} -#. ~ Description for Ice Spike -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Causes jagged icicles to form in the air above the target, falling and " -"damaging it." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "battle axe +2" +msgid_plural "battle axe +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Fireball" -msgid_plural "Scrolls of Fireball" +msgid "cavalry sabre +1" +msgid_plural "cavalry sabre +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Fireball', 'str_pl': 'Scrolls of Fireball'} -#. ~ Description for Fireball -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You hurl a pea-sized glowing orb that when reaches its target or an obstacle " -"produces a pressure-less blast of searing heat." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "cavalry sabre +2" +msgid_plural "cavalry sabre +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Cone of Cold" -msgid_plural "Scrolls of Cone of Cold" +msgid "crowbar +1" +msgid_plural "crowbar +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Cone of Cold', 'str_pl': 'Scrolls of Cone of Cold'} -#. ~ Description for Cone of Cold -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "You blast a cone of frigid air toward the target." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "crowbar +2" +msgid_plural "crowbar +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Burning Hands" -msgid_plural "Scrolls of Burning Hands" +msgid "cutlass +1" +msgid_plural "cutlass +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Burning Hands', 'str_pl': 'Scrolls of Burning Hands'} -#. ~ Description for {'str': 'Burning Hands'} -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You're pretty sure you saw this in a game somewhere. You fire a short-range " -"cone of fire." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "cutlass +2" +msgid_plural "cutlass +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Frost Spray" -msgid_plural "Scrolls of Frost Spray" +msgid "fire axe +1" +msgid_plural "fire axe +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Frost Spray', 'str_pl': 'Scrolls of Frost Spray'} -#. ~ Description for Frost Spray -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You're pretty sure you saw this in a game somewhere. You fire a short-range " -"cone of ice and cold." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "fire axe +2" +msgid_plural "fire axe +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Chilling Touch" -msgid_plural "Scrolls of Chilling Touch" +msgid "katana +1" +msgid_plural "katana +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Chilling Touch', 'str_pl': 'Scrolls of Chilling Touch'} -#. ~ Description for Chilling Touch -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Freezes the touched target with intense cold." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "katana +2" +msgid_plural "katana +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Glide on Ice" -msgid_plural "Scrolls of Glide on Ice" +msgid "combat knife +1" +msgid_plural "combat knife +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Glide on Ice', 'str_pl': 'Scrolls of Glide on Ice'} -#. ~ Description for Glide on Ice -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Encases your feet in a magical coating of ice, allowing you to glide along " -"smooth surfaces faster." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "combat knife +2" +msgid_plural "combat knife +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Hoary Blast" -msgid_plural "Scrolls of Hoary Blast" +msgid "hunting knife +1" +msgid_plural "hunting knife +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Hoary Blast', 'str_pl': 'Scrolls of Hoary Blast'} -#. ~ Description for Hoary Blast -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You project a glowing white crystal of ice and it explodes on impact into a " -"blossom of shattering cold." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "hunting knife +2" +msgid_plural "hunting knife +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Ice Shield" -msgid_plural "Scrolls of Ice Shield" +msgid "survival knife +1" +msgid_plural "survival knife +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Ice Shield', 'str_pl': 'Scrolls of Ice Shield'} -#. ~ Description for Ice Shield -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Creates a magical shield of ice on your arm, you can defend yourself with it " -"in melee combat and use it to bash." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "survival knife +2" +msgid_plural "survival knife +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Frost Armor" -msgid_plural "Scrolls of Frost Armor" +msgid "trench knife +1" +msgid_plural "trench knife +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Frost Armor', 'str_pl': 'Scrolls of Frost Armor'} -#. ~ Description for Frost Armor -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Covers you in a thin layer of magical ice to protect you from harm." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "trench knife +2" +msgid_plural "trench knife +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Magic Missile" -msgid_plural "Scrolls of Magic Missile" +msgid "kris +1" +msgid_plural "kris +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Magic Missile', 'str_pl': 'Scrolls of Magic Missile'} -#. ~ Description for Magic Missile -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "I cast Magic Missile at the darkness!" -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "kris +2" +msgid_plural "kris +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Phase Door" -msgid_plural "Scrolls of Phase Door" +msgid "kukri +1" +msgid_plural "kukri +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Phase Door', 'str_pl': 'Scrolls of Phase Door'} -#. ~ Description for Phase Door -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Teleports you in a random direction a short distance." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "kukri +2" +msgid_plural "kukri +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Gravity Well" -msgid_plural "Scrolls of Gravity Well" +msgid "nodachi +1" +msgid_plural "nodachi +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Gravity Well', 'str_pl': 'Scrolls of Gravity Well'} -#. ~ Description for Gravity Well -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Summons a well of gravity with the epicenter at the location. Deals bashing " -"damage to all creatures in the affected area." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Mana Blast" -msgid_plural "Scrolls of Mana Blast" +msgid "nodachi +2" +msgid_plural "nodachi +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Mana Blast', 'str_pl': 'Scrolls of Mana Blast'} -#. ~ Description for Mana Blast -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "A blast of concentrated magical power that obliterates a large area." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Mana Bolt" -msgid_plural "Scrolls of Mana Bolt" +msgid "pickaxe +1" +msgid_plural "pickaxe +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Mana Bolt', 'str_pl': 'Scrolls of Mana Bolt'} -#. ~ Description for Mana Bolt -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "A bolt of magical power that only damages your foes." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Haste" -msgid_plural "Scrolls of Haste" +msgid "pickaxe +2" +msgid_plural "pickaxe +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Haste', 'str_pl': 'Scrolls of Haste'} -#. ~ Description for Haste -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"This spell gives you an enormous boost of speed lasting a short period of " -"time." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Mana Beam" -msgid_plural "Scrolls of Mana Beam" +msgid "pike +1" +msgid_plural "pike +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Mana Beam', 'str_pl': 'Scrolls of Mana Beam'} -#. ~ Description for Mana Beam -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "A beam of focused magical power that damages any foes in its path." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Escape" -msgid_plural "Scrolls of Escape" +msgid "pike +2" +msgid_plural "pike +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Escape', 'str_pl': 'Scrolls of Escape'} -#. ~ Description for Escape -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Teleports you in a random direction a medium distance, to help escape your " -"foes in dangerous situations." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Cat's Grace" -msgid_plural "Scrolls of Cat's Grace" +msgid "rapier +1" +msgid_plural "rapier +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "Scroll of Cat's Grace", 'str_pl': "Scrolls of Cat's Grace"} -#. ~ Description for Cat's Grace -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "You become more graceful, agile, and coordinated." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Eagle's Sight" -msgid_plural "Scrolls of Eagle's Sight" +msgid "rapier +2" +msgid_plural "rapier +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "Scroll of Eagle's Sight", 'str_pl': "Scrolls of Eagle's Sight"} -#. ~ Description for Eagle's Sight -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "You gain the perception of an eagle." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Ogre's Strength" -msgid_plural "Scrolls of Ogre's Strength" +msgid "tanto +1" +msgid_plural "tanto +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "Scroll of Ogre's Strength", 'str_pl': "Scrolls of Ogre's Strength"} -#. ~ Description for Ogre's Strength -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "You gain the strength of an ogre." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Fox's Cunning" -msgid_plural "Scrolls of Fox's Cunning" +msgid "tanto +2" +msgid_plural "tanto +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "Scroll of Fox's Cunning", 'str_pl': "Scrolls of Fox's Cunning"} -#. ~ Description for Fox's Cunning -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "You become wily like a fox." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Jolt" -msgid_plural "Scrolls of Jolt" +msgid "wakizashi +1" +msgid_plural "wakizashi +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Jolt', 'str_pl': 'Scrolls of Jolt'} -#. ~ Description for Jolt -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "A short-ranged fan of electricity shoots from your fingers." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Lightning Bolt" -msgid_plural "Scrolls of Lightning Bolt" +msgid "wakizashi +2" +msgid_plural "wakizashi +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Lightning Bolt', 'str_pl': 'Scrolls of Lightning Bolt'} -#. ~ Description for Lightning Bolt -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"The goto spell for many Stormshapers, this iconic spell does just what you " -"expect: you shoot lightning from your fingertips. However, this lightning " -"is more directed than most lightning, and travels in a line through most non-" -"solid targets." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Windstrike" -msgid_plural "Scrolls of Windstrike" +msgid "zweihänder +1" +msgid_plural "zweihänder +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Windstrike', 'str_pl': 'Scrolls of Windstrike'} -#. ~ Description for Windstrike -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"A powerful blast of wind slams into anything in front of your outstretched " -"hand." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Windrunning" -msgid_plural "Scrolls of Windrunning" +msgid "zweihänder +2" +msgid_plural "zweihänder +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Windrunning', 'str_pl': 'Scrolls of Windrunning'} -#. ~ Description for Windrunning -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"A magical wind pushes you forward as you move, easing your movements and " -"increasing speed." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Call Stormhammer" -msgid_plural "Scrolls of Call Stormhammer" +msgid "khopesh +1" +msgid_plural "khopesh +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Call Stormhammer', 'str_pl': 'Scrolls of Call Stormhammer'} -#. ~ Description for Call Stormhammer -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Creates a crackling magical warhammer full of lightning to smite your foes " -"with, and of course, smash things to bits!" -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Bless" -msgid_plural "Scrolls of Bless" +msgid "khopesh +2" +msgid_plural "khopesh +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Bless', 'str_pl': 'Scrolls of Bless'} -#. ~ Description for {'str': 'Bless'} -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "A spell of blessing that gives you energy and boosts your abilities." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Holy Blade" -msgid_plural "Scrolls of Holy Blade" +msgid "xiphos +1" +msgid_plural "xiphos +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Holy Blade', 'str_pl': 'Scrolls of Holy Blade'} -#. ~ Description for Holy Blade -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "This blade of light will cut through any evil it makes contact with!" -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Spiritual Armor" -msgid_plural "Scrolls of Spiritual Armor" +msgid "xiphos +2" +msgid_plural "xiphos +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Spiritual Armor', 'str_pl': 'Scrolls of Spiritual Armor'} -#. ~ Description for Spiritual Armor -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"Evil will not make it through your defenses if your faith is strong enough!" -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Lamp" -msgid_plural "Scrolls of Lamp" +msgid "dao +1" +msgid_plural "dao +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Lamp', 'str_pl': 'Scrolls of Lamp'} -#. ~ Description for Lamp -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "Creates a magical lamp." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Manatricity" -msgid_plural "Scrolls of Manatricity" +msgid "dao +2" +msgid_plural "dao +2s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Manatricity', 'str_pl': 'Scrolls of Manatricity'} -#. ~ Description for Manatricity -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You have found a way to convert your spiritual energy into power you can use " -"for your bionics." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Taze" -msgid_plural "Scrolls of Taze" +msgid "Biomancer spear" +msgid_plural "Biomancer spears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Taze', 'str_pl': 'Scrolls of Taze'} -#. ~ Description for Taze -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'Biomancer spear'} +#: lang/json/GENERIC_from_json.py msgid "" -"This spell creates a very short range bolt of electricity to shock your foes." +"A grotesque bone spearhead on a stout wooden pole. There is a Biomancer " +"rune embedded at the base of the head." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Lesser Quantum Tunnel" -msgid_plural "Scrolls of Lesser Quantum Tunnel" +msgid "Technomancer toolbar" +msgid_plural "Technomancer toolbars" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Lesser Quantum Tunnel', 'str_pl': 'Scrolls of Lesser Quantum Tunnel'} -#. ~ Description for Lesser Quantum Tunnel -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'Technomancer toolbar'} +#: lang/json/GENERIC_from_json.py msgid "" -"This spell manipulates some quantum something or other to tunnel you through " -"a short distance of space, and even matter, unfortunately there's that whole " -"uncertainty thing as to where you come out. It leaves you a little dazed on " -"the other side as you reorient yourself." +"This staff incorporates a sturdy cresent wrench on top of a prybar and a " +"hammer on the other in a convienent package. There is a Technomancer rune " +"embedded in the hammerhead." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Synaptic Stimulation" -msgid_plural "Scrolls of Synaptic Stimulation" +msgid "Magus staff" +msgid_plural "Magus staves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Synaptic Stimulation', 'str_pl': 'Scrolls of Synaptic Stimulation'} -#. ~ Description for Synaptic Stimulation -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'Magus staff', 'str_pl': 'Magus staves'} +#: lang/json/GENERIC_from_json.py msgid "" -"This spell stimulates the synapses in your brain beyond normal processing " -"speeds, giving you a large boost in mental processing capability, including " -"enhancing your reflexes, speed, and raw intellectual power. Use responsibly!" +"A quarterstaff with runes carved into it and two glass jars, heat-tempered " +"and infused with mana for durability, to act as mana receptacles. There are " +"two Magi runes embedded at the tips." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Laze" -msgid_plural "Scrolls of Laze" +msgid "Kelvinist flamberge" +msgid_plural "Kelvinist flamberges" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Laze', 'str_pl': 'Scrolls of Laze'} -#. ~ Description for Laze -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'Kelvinist flamberge'} +#: lang/json/GENERIC_from_json.py msgid "" -"You concentrate and release a focused beam of photons at a target, also " -"known as a laser." +"A sword with an undulating blade, reminiscent of a flame. There is a " +"Kelvinist rune embedded in the pommel." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Animated Blade" -msgid_plural "Scrolls of Animated Blade" +msgid "Stormshaper axe" +msgid_plural "Stormshaper axes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Animated Blade', 'str_pl': 'Scrolls of Animated Blade'} -#. ~ Description for {'str': 'Animated Blade'} -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'Stormshaper axe'} +#: lang/json/GENERIC_from_json.py msgid "" -"This spell conjures flying animated blades that will cut your enemies down " -"to size. Into small pieces that is." +"A forged copper axe with silver trimmings and a wooden handle. There is a " +"Stormshaper rune embedded in the eye." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Mirror Image" -msgid_plural "Scrolls of Mirror Image" +msgid "Animist athame" +msgid_plural "Animist athames" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Mirror Image', 'str_pl': 'Scrolls of Mirror Image'} -#. ~ Description for Mirror Image -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'Animist athame'} +#: lang/json/GENERIC_from_json.py msgid "" -"This spell manipulates light into barely tangible duplicates of a living " -"being, a magical hologram in short." +"A steel ritual knife used by Animists to draw blood for summoning. Their " +"school rune is embedded in the crossguard." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Lightning Blast" -msgid_plural "Scrolls of Lightning Blast" +msgid "springstaff(baton)" +msgid_plural "springstaves(baton)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Lightning Blast', 'str_pl': 'Scrolls of Lightning Blast'} -#. ~ Description for Lightning Blast -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You fire a small concentrated ball of lightning at the target. The " -"electricity diffuses quickly, so it doesn't do much damage, but you're able " -"to fire off several quick ones in a row." +#. ~ Use action menu_text for {'str': 'springstaff(baton)', 'str_pl': 'springstaves(baton)'}. +#: lang/json/GENERIC_from_json.py +msgid "Extend to staff" msgstr "" +#. ~ Use action msg for {'str': 'springstaff(baton)', 'str_pl': 'springstaves(baton)'}. #: lang/json/GENERIC_from_json.py -msgid "Scroll of Necrotic Gaze" -msgid_plural "Scrolls of Necrotic Gaze" -msgstr[0] "" -msgstr[1] "" +msgid "You snap open your springstaff into staff mode." +msgstr "" -#. ~ Description for {'str': 'Scroll of Necrotic Gaze', 'str_pl': 'Scrolls of Necrotic Gaze'} -#. ~ Description for Necrotic Gaze -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'springstaff(baton)', 'str_pl': 'springstaves(baton)'} +#: lang/json/GENERIC_from_json.py msgid "" -"You use the power of your own blood to imbue necrotic energy into your gaze, " -"damaging the target you look at." +"This versatile weapon uses Technomancy-enhanced springs to keep the staff " +"tips retracted while in baton configuration. Activate to extend." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Purification Seed" -msgid_plural "Scrolls of Purification Seed" +msgid "springstaff(staff)" +msgid_plural "springstaves(staff)" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Purification Seed', 'str_pl': 'Scrolls of Purification Seed'} +#. ~ Use action menu_text for {'str': 'springstaff(staff)', 'str_pl': 'springstaves(staff)'}. #: lang/json/GENERIC_from_json.py -msgid "" -"You summon a gift of the earth which will purify water. Greater levels " -"yield greater numbers of seeds." +msgid "Retract to baton" msgstr "" +#. ~ Use action msg for {'str': 'springstaff(staff)', 'str_pl': 'springstaves(staff)'}. #: lang/json/GENERIC_from_json.py -msgid "Scroll of X-ray Vision" -msgid_plural "Scrolls of X-ray Vision" -msgstr[0] "" -msgstr[1] "" +msgid "You collapse your springstaff into baton mode." +msgstr "" -#. ~ Description for {'str': 'Scroll of X-ray Vision', 'str_pl': 'Scrolls of X-ray Vision'} -#. ~ Description for X-ray Vision -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Description for {'str': 'springstaff(staff)', 'str_pl': 'springstaves(staff)'} +#: lang/json/GENERIC_from_json.py msgid "" -"You fire a cone of X-rays that magically allow you to see that area for a " -"short time." +"This versatile weapon uses Technomancy-enhanced springs to keep the staff " +"tips from retracting while in staff configuration. Activate to extend." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Optical Sneeze Beam" -msgid_plural "Scrolls of Optical Sneeze Beam" +msgid "endless flask" +msgid_plural "endless flasks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': 'Scrolls of Optical Sneeze Beam'} +#. ~ Use action msg for {'str': 'endless flask'}. #: lang/json/GENERIC_from_json.py -msgid "" -"You overcharge your internal batteries to send a semi-directed beam from " -"your face." +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" msgstr "" +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. #: lang/json/GENERIC_from_json.py -msgid "Scroll of Clairvoyance" -msgid_plural "Scrolls of Clairvoyance" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Scroll of Clairvoyance', 'str_pl': 'Scrolls of Clairvoyance'} -#. ~ Description for Clairvoyance -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "You close your eyes and the earth surrenders its secrets to you." +msgid "The flask isn't done refilling yet." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Lava Bomb" -msgid_plural "Scrolls of Lava Bomb" +msgid "magic token" +msgid_plural "magic tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Lava Bomb', 'str_pl': 'Scrolls of Lava Bomb'} -#. ~ Description for Lava Bomb -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py -msgid "" -"You tear up the ground beneath you to fire a lava bomb: a globe of lava " -"surrounded by hot, solid rock. It shatters upon impact, spraying shards of " -"rock and lava everywhere." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "Scroll of Acid Resistance" -msgid_plural "Scrolls of Acid Resistance" +msgid "longsword token" +msgid_plural "longsword tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Acid Resistance', 'str_pl': 'Scrolls of Acid Resistance'} +#. ~ Use action msg for longsword token. #: lang/json/GENERIC_from_json.py -msgid "This spell creates an invisible aura to protect you from acid." +msgid "" +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine longsword!" msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Scroll of Lightning Storm" -msgid_plural "Scrolls of Lightning Storm" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Scroll of Lightning Storm', 'str_pl': 'Scrolls of Lightning Storm'} +#. ~ Description for longsword token #: lang/json/GENERIC_from_json.py msgid "" -"This scroll details how a spell called 'Lightning Blast' which is commonly " -"used among Stormshapers can be altered to become much more powerful, at a " -"much higher mana cost." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a longsword." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Sacrificial Regrowth" -msgid_plural "Scrolls of Sacrificial Regrowth" +msgid "arming sword token" +msgid_plural "arming sword tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Sacrificial Regrowth', 'str_pl': 'Scrolls of Sacrificial Regrowth'} -#. ~ Description for Sacrificial Regrowth -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Use action msg for {'str': 'arming sword token'}. +#: lang/json/GENERIC_from_json.py msgid "" -"Through giving of one's own life force, you restore withered and barren " -"plant life nearby. What remains will need time to regrow its full strength." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine arming sword!" msgstr "" +#. ~ Description for {'str': 'arming sword token'} #: lang/json/GENERIC_from_json.py -msgid "Scroll of Sacrificial Healing" -msgid_plural "Scrolls of Sacrificial Healing" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Scroll of Sacrificial Healing', 'str_pl': 'Scrolls of Sacrificial Healing'} -#. ~ Description for Sacrificial Healing -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "" -"Channels some of the user's own life force into healing energy, for the sake " -"of ones allies." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case an arming sword." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Stoneskin" -msgid_plural "Scrolls of Stoneskin" +msgid "broadsword token" +msgid_plural "broadsword tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Stoneskin', 'str_pl': 'Scrolls of Stoneskin'} -#. ~ Description for Stoneskin -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Use action msg for broadsword token. +#: lang/json/GENERIC_from_json.py msgid "" -"Envelops your entire body in armor formed from living rock, encumbering yet " -"protective." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine broadsword!" msgstr "" +#. ~ Description for broadsword token #: lang/json/GENERIC_from_json.py -msgid "Scroll of Pillar of Stone" -msgid_plural "Scrolls of Pillar of Stone" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Scroll of Pillar of Stone', 'str_pl': 'Scrolls of Pillar of Stone'} -#. ~ Description for Pillar of Stone -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "" -"Drawing upon the surrounding earth, you form a pillar of solid rock. " -"Experience will make the task easier, and less disruptive to the surrounding " -"area." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a broadsword." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Paralytic Dart" -msgid_plural "Scrolls of Paralytic Dart" +msgid "battleaxe token" +msgid_plural "battleaxe tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Paralytic Dart', 'str_pl': 'Scrolls of Paralytic Dart'} -#. ~ Description for Paralytic Dart -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Use action msg for {'str': 'battleaxe token'}. +#: lang/json/GENERIC_from_json.py msgid "" -"Spits a warped needle of sinew and bone, carrying with it a sting that slows " -"your victim." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine battle axe!" msgstr "" +#. ~ Description for {'str': 'battleaxe token'} #: lang/json/GENERIC_from_json.py -msgid "Scroll of Visceral Projection" -msgid_plural "Scrolls of Visceral Projection" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Scroll of Visceral Projection', 'str_pl': 'Scrolls of Visceral Projection'} -#. ~ Description for Visceral Projection -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "" -"Projects a spray of acrid blood and gore all around you, growing to ensnare " -"your prey in in a field of twitching poisonous tendrils." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a battle axe." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Coagulant Weave" -msgid_plural "Scrolls of Coagulant Weave" +msgid "pike token" +msgid_plural "pike tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Coagulant Weave', 'str_pl': 'Scrolls of Coagulant Weave'} -#. ~ Description for Coagulant Weave -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Use action msg for pike token. +#: lang/json/GENERIC_from_json.py msgid "" -"Turns your biological mastery inwards, medically enhancing your flesh. " -"Rather than strength of healing, it staves off blood loss and purges wounds " -"before they can turn septic, at the cost of increased hunger and thirst." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine pike!" msgstr "" +#. ~ Description for pike token #: lang/json/GENERIC_from_json.py -msgid "Scroll of Ionization" -msgid_plural "Scrolls of Ionization" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Scroll of Ionization', 'str_pl': 'Scrolls of Ionization'} -#. ~ Description for Ionization -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "" -"By manipulating the charge in the air, you can conjure a sharp snap of " -"lightning over a wide area. While its destructive potential is a far cry " -"from natural lightning, the light and thunderclap produced will leave your " -"foes reeling." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a pike." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Ignus Fatuus" -msgid_plural "Scrolls of Ignus Fatuus" +msgid "mace token" +msgid_plural "mace tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Ignus Fatuus', 'str_pl': 'Scrolls of Ignus Fatuus'} -#. ~ Description for Ignus Fatuus -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +#. ~ Use action msg for mace token. +#: lang/json/GENERIC_from_json.py msgid "" -"Summons ghostly foxfire worked from living marsh vapor, to lead your enemies " -"astray. With more experience, this spell can conjure multiple ghost lights." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine mace!" msgstr "" +#. ~ Description for mace token #: lang/json/GENERIC_from_json.py -msgid "Scroll of Wall of Fog" -msgid_plural "Scrolls of Wall of Fog" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Scroll of Wall of Fog', 'str_pl': 'Scrolls of Wall of Fog'} -#. ~ Description for Wall of Fog -#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "" -"Draws forth a broad wall of thick fog. While the sudden force of air " -"pressure will floor any enemies caught in it, the conjuration is otherwise " -"harmless." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a mace." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "A Technomancer's Guide to Debugging C:DDA" -msgid_plural "copies of A Technomancer's Guide to Debugging C:DDA" +msgid "quarterstaff token" +msgid_plural "quarterstaff tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "A Technomancer's Guide to Debugging C:DDA", 'str_pl': "copies of A Technomancer's Guide to Debugging C:DDA"} +#. ~ Use action msg for quarterstaff token. #: lang/json/GENERIC_from_json.py -msgid "static std::string description( spell sp ) const;" +msgid "" +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a pristine quarterstaff!" msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "A Beginner's Guide to Magic" -msgid_plural "copies of A Beginner's Guide to Magic" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': "A Beginner's Guide to Magic", 'str_pl': "copies of A Beginner's Guide to Magic"} +#. ~ Description for quarterstaff token #: lang/json/GENERIC_from_json.py msgid "" -"You would describe this as more like a pamphlet than a spellbook, but it " -"seems to have at least one interesting spell you can use." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a quarterstaff." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Wizarding Guide to Backpacking" -msgid_plural "copies of Wizarding Guide to Backpacking" +msgid "hammer token" +msgid_plural "hammer tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Wizarding Guide to Backpacking', 'str_pl': 'copies of Wizarding Guide to Backpacking'} +#. ~ Use action msg for hammer token. #: lang/json/GENERIC_from_json.py msgid "" -"This appears to be the spell version of a guide for what things to take with " -"you when backpacking. It's a little bulky, but will certainly prove useful." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine hammer!" msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Pyromancy for Heretics" -msgid_plural "copies of Pyromancy for Heretics" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Pyromancy for Heretics', 'str_pl': 'copies of Pyromancy for Heretics'} +#. ~ Description for hammer token #: lang/json/GENERIC_from_json.py msgid "" -"This charred husk of a book still contains many ways to light things aflame." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a hammer." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "A Treatise on Magical Elements" -msgid_plural "copies of A Treatise on Magical Elements" +msgid "screwdriver set token" +msgid_plural "screwdriver set tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'A Treatise on Magical Elements', 'str_pl': 'copies of A Treatise on Magical Elements'} +#. ~ Use action msg for screwdriver set token. #: lang/json/GENERIC_from_json.py msgid "" -"This details complex diagrams, rituals, and choreography that describes " -"various spells." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine screwdriver set!" msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Introduction to the Divine" -msgid_plural "copies of Introduction to the Divine" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Introduction to the Divine', 'str_pl': 'copies of Introduction to the Divine'} +#. ~ Description for screwdriver set token #: lang/json/GENERIC_from_json.py msgid "" -"This appears to mostly be a religious text, but it does have some notes on " -"healing." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a screwdriver." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Paladin's Guide to Modern Spellcasting" -msgid_plural "copies of The Paladin's Guide to Modern Spellcasting" +msgid "toolbox token" +msgid_plural "toolbox tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "The Paladin's Guide to Modern Spellcasting", 'str_pl': "copies of The Paladin's Guide to Modern Spellcasting"} +#. ~ Use action msg for toolbox token. #: lang/json/GENERIC_from_json.py msgid "" -"Despite the title, this seems to be written in Middle English. A little " -"obtuse, but you can make out most of the words well enough." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine toolbox!" msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Winter's Eternal Grasp" -msgid_plural "copies of Winter's Eternal Grasp" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': "Winter's Eternal Grasp", 'str_pl': "copies of Winter's Eternal Grasp"} +#. ~ Description for toolbox token #: lang/json/GENERIC_from_json.py msgid "" -"This slim book almost seems to be made from ice, it's cold to the touch." +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a toolbox." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Tome of The Oncoming Storm" -msgid_plural "copies of The Tome of The Oncoming Storm" +msgid "crowbar token" +msgid_plural "crowbar tokens" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Tome of The Oncoming Storm', 'str_pl': 'copies of The Tome of The Oncoming Storm'} +#. ~ Use action msg for crowbar token. #: lang/json/GENERIC_from_json.py msgid "" -"A large book embossed with crossed lightning bolts and storm clouds, it " -"tingles to the touch." +"You say the command word engraved on the token, and it rapidly grows and " +"morphs into a shiny pristine crowbar!" msgstr "" +#. ~ Description for crowbar token #: lang/json/GENERIC_from_json.py -msgid "Nondescript Spellbook" -msgid_plural "copies of Nondescript Spellbook" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Nondescript Spellbook', 'str_pl': 'copies of Nondescript Spellbook'} -#: lang/json/GENERIC_from_json.py -msgid "A small book, containing spells created by a novice magician." +msgid "" +"A large silver coin that, when activated by uttering the word on the back, " +"turns into the item pictured on the front, in this case a crowbar." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Of Light and Falsehoods" -msgid_plural "copies of Of Light and Falsehoods" +msgid "cestus +1" +msgid_plural "cestus +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Of Light and Falsehoods', 'str_pl': 'copies of Of Light and Falsehoods'} #: lang/json/GENERIC_from_json.py -msgid "A small white book, it subtly amplifies the ambient light around it." -msgstr "" +msgid "cestus +2" +msgid_plural "cestus +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "The Tome of Flesh" -msgid_plural "copies of The Tome of Flesh" +msgid "flaming fist" +msgid_plural "flaming fists" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Tome of Flesh', 'str_pl': 'copies of The Tome of Flesh'} +#. ~ Description for {'str': 'flaming fist'} #: lang/json/GENERIC_from_json.py -msgid "A small tome, seemingly covered in tanned human skin." +msgid "" +"A heavy metal guard that covers the fist and increases striking power, with " +"stout padding underneath to protect the wearers hand. It has been enchanted " +"to emit dark magical flames that only harm enemies." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Book of Trees" -msgid_plural "copies of The Book of Trees" +msgid "flaming fist +1" +msgid_plural "flaming fist +1s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Book of Trees', 'str_pl': 'copies of The Book of Trees'} #: lang/json/GENERIC_from_json.py -msgid "A bark covered book." -msgstr "" +msgid "flaming fist +2" +msgid_plural "flaming fist +2s" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "The Utility of Mana as an Energy Source" -msgid_plural "copies of The Utility of Mana as an Energy Source" +msgid "gauntlet of pounding" +msgid_plural "gauntlets of pounding" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Utility of Mana as an Energy Source', 'str_pl': 'copies of The Utility of Mana as an Energy Source'} +#. ~ Description for {'str': 'gauntlet of pounding', 'str_pl': 'gauntlets of pounding'} #: lang/json/GENERIC_from_json.py msgid "" -"This book details spells that use your mana to recover various physiological " -"effects." +"A large gleaming metal gauntlet covered in magical symbols that allows you " +"to land astoundingly powerful blows." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Tome of The Battle Mage" -msgid_plural "copies of The Tome of The Battle Mage" +msgid "Earthshaper cestus" +msgid_plural "Earthshaper cesti" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Tome of The Battle Mage', 'str_pl': 'copies of The Tome of The Battle Mage'} +#. ~ Description for {'str': 'Earthshaper cestus', 'str_pl': 'Earthshaper cesti'} #: lang/json/GENERIC_from_json.py msgid "" -"Your standard wizardy looking spellbook, filled with Magus combat spells. " -"You sure lucked out!" +"A stone battle glove with carved runes encasing the hand, protecting it " +"while increasing striking power. There is an Earthshaper rune embedded in " +"the palm." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "The Tome of the Hollow Earth" -msgid_plural "copies of The Tome of the Hollow Earth" +msgid "The Stormhammer" +msgid_plural "The Stormhammers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Tome of the Hollow Earth', 'str_pl': 'copies of The Tome of the Hollow Earth'} +#. ~ Description for {'str': 'The Stormhammer'} #: lang/json/GENERIC_from_json.py msgid "" -"This large dusty spellbook seems perpetually, well, dusty. It contains the " -"power of the earth." +"A crackling magical warhammer full of lightning to smite your foes with, and " +"of course, smash things to bits!" msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "The Tome of Magical Movement" -msgid_plural "copies of The Tome of Magical Movement" +#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py +msgid "Stormfist" +msgid_plural "Stormfists" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'The Tome of Magical Movement', 'str_pl': 'copies of The Tome of Magical Movement'} -#: lang/json/GENERIC_from_json.py -#, no-python-format +#. ~ Description for {'str': 'Stormfist'} +#. ~ Description for Stormfist +#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "" -"This small lightweight book seems to almost not entirely exist, let's say it " -"97% does. It contains Magus spells focused on movement." +"Encases your arm and hand in a sheath of crackling magical lightning, you " +"can punch and defend yourself with it in melee combat." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Smudged Scroll" -msgid_plural "Smudged Scrolls" +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Smudged Scroll'} +#. ~ Description for vicious tentacle whip #: lang/json/GENERIC_from_json.py msgid "" -"This looks like someone was designing a new spell, but spilled a mug of " -"coffee on it and crumpled it up in anger. You can tell that it will " -"definitely cast something, but you can't be sure that it will work very well." +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Necromantic Minions for Dummies" -msgid_plural "copies of Necromantic Minions for Dummies" +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Necromantic Minions for Dummies', 'str_pl': 'copies of Necromantic Minions for Dummies'} +#. ~ Description for {'str': 'Wicked Bonespear'} #: lang/json/GENERIC_from_json.py -msgid "" -"This book details various ways of summoning an undead minion to fight for " -"you. They all appear to disappear after a short time, crumbling to dust." +msgid "This is a wicked spear/halberd hybrid entirely created of bone." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "Fundamentals of Technomancy" -msgid_plural "copies of Fundamentals of Technomancy" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Fundamentals of Technomancy', 'str_pl': 'copies of Fundamentals of Technomancy'} +#. ~ Description for {'str': 'Mjölnir'} #: lang/json/GENERIC_from_json.py msgid "" -"This thick manual instructs the spellcaster on manipulating and empowering " -"various forms of matter and energy." +"Mjölnir, the legendary hammer of Thor. It is rumored to be able to level " +"mountains with a single blow. You feel the power of Asgard coursing through " +"the hammer." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Complete Idiot's Guide to Technomancy" -msgid_plural "copies of Complete Idiot's Guide to Technomancy" +msgid "Gungnir" +msgid_plural "Gungnirs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': "Complete Idiot's Guide to Technomancy", 'str_pl': "copies of Complete Idiot's Guide to Technomancy"} +#. ~ Description for {'str': 'Gungnir'} #: lang/json/GENERIC_from_json.py msgid "" -"This colorful guide, full of diagrams and cartoons, teaches a couple of very " -"basic Technomancy spells for the not-so-bright pupils." +"Gungnir, the spear of Odin. It is rumored to be the perfect spear, " +"perfectly hitting any target regardless of the wielder's strength or skill. " +"If feels like Odin's protecting you." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Technomancy and the Electromagnetic Spectrum" -msgid_plural "copies of Technomancy and the Electromagnetic Spectrum" +msgid "Gram" +msgid_plural "Grams" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Technomancy and the Electromagnetic Spectrum', 'str_pl': 'copies of Technomancy and the Electromagnetic Spectrum'} +#. ~ Description for {'str': 'Gram'} #: lang/json/GENERIC_from_json.py msgid "" -"This lab reference material book is thick and overflowing with information " -"on combining magic with EM radiation." +"Gram, the sword of Sigurd. It is rumored to be the sword that slayed the " +"legendary dragon, Fafnir. Once said to have cleaved Regin's anvil in half, " +"the edge is impeccable." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Geospatial Systems: The Lie Of Linearity" -msgid_plural "copies of Geospatial Systems: The Lie Of Linearity" +msgid "Laevateinn" +msgid_plural "Laevateinns" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Geospatial Systems: The Lie Of Linearity', 'str_pl': 'copies of Geospatial Systems: The Lie Of Linearity'} +#. ~ Description for {'str': 'Laevateinn'} #: lang/json/GENERIC_from_json.py msgid "" -"This book outlines in great detail how time and space are wibbly-wobbly and " -"non-Euclidean. It also appears to have a dozen different coordinate systems " -"that it uses nearly interchangeably, which makes it hard to follow. There's " -"lots of jargon, but with intense study you can probably learn a thing or two " -"about portals." +"Laevateinn, the staff of Loki. Said to have been plucked from the gates of " +"Hel by Loki. Imbued with a mysterious magic, the magic of the trickster god " +"himself." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Transcendence of the Human Condition" -msgid_plural "copies of Transcendence of the Human Condition" +msgid "orichalcum ingot" +msgid_plural "orichalcum ingots" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Transcendence of the Human Condition', 'str_pl': 'copies of Transcendence of the Human Condition'} +#. ~ Description for orichalcum ingot #: lang/json/GENERIC_from_json.py msgid "" -"The Human is the only creature that seeks to improve himself. This study " -"examines different spells that can heighten various senses temporarily, in " -"hopes to discover a more permanent solution." +"An ingot of orichalcum. About 3 cm by 7 cm by 12 cm in size, ready to be " +"used for various blacksmithing tasks." msgstr "" #: lang/json/GENERIC_from_json.py @@ -60214,6 +61352,19 @@ msgid "" "have other properties that require discovery." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" @@ -60300,6 +61451,14 @@ msgid_plural "TEST planks" msgstr[0] "" msgstr[1] "" +#. ~ Description for TEST plank +#: lang/json/GENERIC_from_json.py +msgid "" +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional " +"lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "TEST pipe" msgid_plural "TEST pipes" @@ -60324,6 +61483,23 @@ msgid_plural "TEST small waterskins" msgstr[0] "" msgstr[1] "" +#: lang/json/GENERIC_from_json.py +msgid "test balloon" +msgid_plural "test balloons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test balloon'} +#: lang/json/GENERIC_from_json.py +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "test pointy stick" +msgid_plural "test pointy sticks" +msgstr[0] "" +msgstr[1] "" + #: lang/json/GENERIC_from_json.py msgid "TEST clumsy sword" msgid_plural "TEST clumsy swords" @@ -60357,6 +61533,52 @@ msgstr[1] "" msgid "A well-balanced sword for test purposes" msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "test box" +msgid_plural "test boxs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test box'} +#: lang/json/GENERIC_from_json.py +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for test 14 cm rod +#: lang/json/GENERIC_from_json.py +msgid "A thin rod exactly 14 cm in length" +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for test 15 cm rod +#: lang/json/GENERIC_from_json.py +msgid "A thin rod exactly 15 cm in length" +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test nuclear carafe'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." +msgstr "" + #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" msgstr "" @@ -62254,7 +63476,7 @@ msgstr[1] "" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." msgstr "" #: lang/json/MAGAZINE_from_json.py @@ -62785,19 +64007,6 @@ msgstr[1] "" msgid "A 50 round box magazine for use with Rivtech 8x40mm caseless firearms." msgstr "" -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "" - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" @@ -63663,6 +64872,28 @@ msgid "" "tips." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "test disposable battery" +msgid_plural "test disposable batteries" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test disposable batteries'} +#: lang/json/MAGAZINE_from_json.py +msgid "This is a test disposable battery." +msgstr "" + +#: lang/json/MAGAZINE_from_json.py +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test rechargeable batteries'} +#: lang/json/MAGAZINE_from_json.py +msgid "This is a test battery that may be recharged." +msgstr "" + #: lang/json/MOD_INFO_from_json.py src/color.cpp #: src/color.cpp msgid "default" @@ -63786,6 +65017,15 @@ msgstr "" msgid "Fuji Structures mod support for Graphical Overmap." msgstr "" +#: lang/json/MOD_INFO_from_json.py +msgid "Graphical Overmap Magiclysm" +msgstr "" + +#. ~ Description for Graphical Overmap Magiclysm +#: lang/json/MOD_INFO_from_json.py +msgid "Magiclysm support for Graphical Overmap." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap More Locations" msgstr "" @@ -63824,15 +65064,6 @@ msgstr "" msgid "Cataclysm but with magic spells!" msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "More Locations" msgstr "" @@ -67560,7 +68791,7 @@ msgid "" "the back of your mind" msgstr "" -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" msgstr[0] "" @@ -67858,6 +69089,20 @@ msgid "" "was limited due to a legal dispute." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from " +"solar cells embedded in its hull." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" @@ -68317,20 +69562,6 @@ msgid "" "continually seeking targets." msgstr "" -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from " -"solar cells embedded in its hull." -msgstr "" - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" @@ -68397,6 +69628,17 @@ msgid "" "so mobile anymore." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "eyebot" msgid_plural "eyebots" @@ -69443,6 +70685,22 @@ msgid "" "darker and more dangerous." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears " +"and guts teem with unmatched fecundity, as its gaze inspires fear of nothing " +"less than cosmic, inhuman ecstasy." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" @@ -70467,8 +71725,68 @@ msgstr[1] "" #. ~ Description for {'str': 'stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray cop" +msgid_plural "stray cops" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for stray cop +#: lang/json/MONSTER_from_json.py +msgid "" +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray soldier" +msgid_plural "stray soldiers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray soldier'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former soldier, no doubt deployed to assist with evacuations and drive off " +"the Order, dressed from head to toe in partially crystalized combat armor. " +"Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray firefighter" +msgid_plural "stray firefighters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray firefighter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "hungry stray" +msgid_plural "hungry strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'hungry stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An obese former human, body studded with irregular crystal growths deforming " +"its body. It howls in mockery of hunger as it wanders, seeking new meals to " +"add to its bulk." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70497,11 +71815,53 @@ msgstr[1] "" msgid "" "Little more than a moving mound of crystal and meat that occasionally spits " "up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures " -"skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling stray" +msgid_plural "crackling strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'crackling stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A hunched human form, back bristling with a hedge of buzzing blue crystals. " +"Its veins visibly glow with some sort of unearthly substance." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "arcing stray" +msgid_plural "arcing strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'arcing stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than " +"capable of simply ramming its prey to deliver dangerous electric shocks." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray sprinter" +msgid_plural "stray sprinters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray sprinter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70513,23 +71873,25 @@ msgstr[1] "" #. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with " -"tusks of polished stone and fingers tipped with crystal-fused claws." +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" +msgid "stray guardian" +msgid_plural "stray guardians" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray predator'} +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of " -"time before the very shell that protects it weighs it down to the ground." +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated " +"crystal limbs sharpened to dangerous points. It strides about the streets, " +"spearing intruders to its domain like some sort of horrid spider from beyond " +"the stars." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70541,38 +71903,37 @@ msgstr[1] "" #. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray titan" -msgid_plural "stray titans" +msgid "stray golem" +msgid_plural "stray golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray titan'} +#. ~ Description for {'str': 'stray golem'} #: lang/json/MONSTER_from_json.py msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its " -"own weight." +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" +msgid "stray titan" +msgid_plural "stray titans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray husk'} +#. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to " -"alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70584,24 +71945,9 @@ msgstr[1] "" #. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'stray tinder'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70613,8 +71959,9 @@ msgstr[1] "" #. ~ Description for {'str': 'stray creep'} #: lang/json/MONSTER_from_json.py msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70626,11 +71973,70 @@ msgstr[1] "" #. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet " -"at some point, but now it leaps and skitters around like something out of a " -"nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion " -"across its body." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray stalker" +msgid_plural "stray stalkers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray stalker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to " +"its 'family'." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "flailing wretch" +msgid_plural "flailing wretchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'flailing wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling wretch" +msgid_plural "crackling wretchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'crackling wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray wretchmother'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70642,6 +72048,20 @@ msgstr[1] "" #. ~ Description for {'str': 'germinating crystal mass', 'str_pl': 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little " +"bit of organic matter it can find and drawing it to its base." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting crystal masses'} +#: lang/json/MONSTER_from_json.py +msgid "" "A human-sized mound of shimmering blue-purple crystals growing on the base " "of what looks like a mound of foul smelling garbage and organic leftovers. " "Long, thin tendrils appear to grow out of the mound, and are subtly rooting " @@ -70705,7 +72125,7 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "" "A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." +"residual electric energy." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70727,12 +72147,12 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" +msgid "crystal seed" +msgid_plural "crystal seeds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'crystal mite'} +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" "A tiny, multilegged creature that appears to be made of a chunk of crystal. " @@ -70741,17 +72161,17 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'engorged crystal mite'} +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into " -"a proper crystal mass." +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." msgstr "" #. ~ Description for {'str': 'C-4 hack'} @@ -70798,8 +72218,8 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70828,6 +72248,19 @@ msgid "" "reptilian ostrich with a round hard-looking domed head." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Camptosaurus" +msgid_plural "Camptosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" msgid_plural "Spinosaurus" @@ -70849,7 +72282,20 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." +msgid "" +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Albertosaurus" +msgid_plural "Albertosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Albertosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" msgstr "" #: lang/json/MONSTER_from_json.py @@ -70873,7 +72319,8 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70889,6 +72336,20 @@ msgid "" "massive spiked club of bone." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Ceratosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Allosaurus" msgid_plural "Allosaurus" @@ -70911,8 +72372,8 @@ msgstr[1] "" #. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." +"A bipedal dinosaur about the size of a chicken. It darts around quickly and " +"has long arms for grabbing what it desires. It's holding something." msgstr "" #: lang/json/MONSTER_from_json.py @@ -70941,6 +72402,19 @@ msgid "" "foot is a large sickle-like claw." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Utahraptor" msgid_plural "Utahraptors" @@ -70988,7 +72462,8 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its head." msgstr "" #: lang/json/MONSTER_from_json.py @@ -71093,6 +72568,20 @@ msgstr[1] "" msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Z-Deinonychus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "improvised SMG turret" msgid_plural "improvised SMG turrets" @@ -71261,6 +72750,43 @@ msgid "" "like jaws." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "goblin warrior" +msgid_plural "goblin warriors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'goblin warrior'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "goblin slinger" +msgid_plural "goblin slingers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'goblin slinger'} +#: lang/json/MONSTER_from_json.py +msgid "An ugly creature that slings rocks almost as well as it slings insults." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "goblin chieftain" +msgid_plural "goblin chieftains" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'goblin chieftain'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that was promoted to chieftain because it figured out which " +"end of the weapon is pointy." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "clay golem" msgid_plural "clay golems" @@ -71795,6 +73321,18 @@ msgid "" "traditional forces." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper mummies'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Vaguely humanoid in shape, layered in something resembling toilet paper." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "giant scorpion" msgid_plural "giant scorpions" @@ -72161,6 +73699,19 @@ msgid "" "chitin fitted to a thin mesh. You could put this on a friendly horse." msgstr "" +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "a mammal" msgstr "" @@ -72899,6 +74450,15 @@ msgstr "" msgid "Holographic Transposition" msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "psi stun" msgstr "" @@ -73987,6 +75547,56 @@ msgid "" "have this spell you probably debugged it in." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" msgid_plural "reactor core expansion devices" @@ -74564,6 +76174,52 @@ msgid "" "open the cover and show the light." msgstr "" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" msgid_plural "RM13 combat armors" @@ -75825,6 +77481,35 @@ msgid_plural "Foodperson masks (on)" msgstr[0] "" msgstr[1] "" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" @@ -77275,16 +78960,14 @@ msgstr "" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." +msgid "You flip the switch in the jack o'lantern." msgstr "" #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." +"face. It has a tiny LED light in it. It doesn't provide very much light." msgstr "" #: lang/json/TOOL_from_json.py @@ -77295,14 +78978,14 @@ msgstr[1] "" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." +msgid "The LED winks out inside the lantern." msgstr "" #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack o'lanterns"} #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is " +"very much light, but it can run for quite a long time. This lantern is " "lit. The face shifts." msgstr "" @@ -77892,6 +79575,35 @@ msgid "" "been lit, so why are you still holding it?" msgstr "" +#: lang/json/TOOL_from_json.py +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'control laptop'} +#: lang/json/TOOL_from_json.py +msgid "" +"A modified laptop, now capable of transmitting in the ultra-high frequencies " +"utilized by robots. Activate it to command robots from afar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "inactive laser turret" +msgid_plural "inactive laser turrets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'inactive laser turret'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive laser turret. Using this item involves turning it on " +"and placing it on the ground, where it will attach itself. If reprogrammed " +"and rewired successfully the turret will identify you as a friendly, and " +"attack all enemies with its revolving laser cannons. It requires sunlight " +"in order to fire." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "folded poncho" msgid_plural "folded ponchos" @@ -78048,22 +79760,6 @@ msgid "" "matrix is reprogrammed successfully." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "inactive laser turret" -msgid_plural "inactive laser turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'inactive laser turret'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive laser turret. Using this item involves turning it on " -"and placing it on the ground, where it will attach itself. If reprogrammed " -"and rewired successfully the turret will identify you as a friendly, and " -"attack all enemies with its revolving laser cannons. It requires sunlight " -"in order to fire." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" @@ -78612,6 +80308,26 @@ msgid "" "however, it will be nonaggressive, and serves only as a distraction." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "" + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing " +"it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "clothes hanger" msgid_plural "clothes hangers" @@ -79123,7 +80839,7 @@ msgstr[1] "" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end " +"A femur or other bone, about 20 cm long, which has been broken at one end " "and sharpened into a cutting tool. Its jagged edge is wicked but fragile." msgstr "" @@ -79710,6 +81426,32 @@ msgid "" "but bad for the environment; at least you're recycling it." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "butchering kit" msgid_plural "butchering kits" @@ -80109,12 +81851,9 @@ msgid_plural "fire barrels (200L)" msgstr[0] "" msgstr[1] "" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels (100L)'} #: lang/json/TOOL_from_json.py -#: lang/json/furniture_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -80369,19 +82108,6 @@ msgstr[1] "" msgid "You stop lighting up the screen." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies " -"utilized by robots. Activate it to command robots from afar." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" @@ -80578,11 +82304,13 @@ msgstr[1] "" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "" #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "" @@ -83278,19 +85006,6 @@ msgstr[1] "" msgid "This is a car horn meant to be attached to a car's electrical system." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made " -"of Kevlar." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" @@ -83600,6 +85315,19 @@ msgid "" "around it." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" @@ -86811,6 +88539,32 @@ msgid "" "is perfectly servicable." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "alien cloth scrap" +msgid_plural "alien cloth scraps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'alien cloth scrap'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is a sizable portion of fibrous synthetic cloth, flexible and " +"resistant, but unpleasant to the touch. Useful in crafting." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "alien polymer scrap" +msgid_plural "alien polymer scraps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'alien polymer scrap'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is a collection of strange, ivory colored plastics that are unnervingly " +"warm to the touch. It could be used to fabricate, repair, or reinforce." +msgstr "" + #. ~ Description for {'str': 'smartphone'} #: lang/json/TOOL_from_json.py msgid "" @@ -87747,6 +89501,28 @@ msgid_plural "TEST scissor jacks" msgstr[0] "" msgstr[1] "" +#: lang/json/TOOL_from_json.py +msgid "test smartphone" +msgid_plural "test smartphones" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test smartphone'} +#: lang/json/TOOL_from_json.py +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "test matchbook" +msgid_plural "test matchbooks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test matchbook'} +#: lang/json/TOOL_from_json.py +msgid "Test matches - when you must burn things, for science!" +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" msgid_plural "yokes and harnesses" @@ -87937,6 +89713,19 @@ msgid "" "very menacing." msgstr "" +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "" + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" @@ -88038,7 +89827,6 @@ msgstr "" msgid "The first day of the rest of their unlives" msgstr "" -#. ~ Description for The first day of the rest of their unlives #: lang/json/achievement_from_json.py msgid "Survive for a day and find a safe place to sleep" msgstr "" @@ -88047,7 +89835,6 @@ msgstr "" msgid "Thank God it's Friday" msgstr "" -#. ~ Description for Thank God it's Friday #: lang/json/achievement_from_json.py msgid "Survive for a week" msgstr "" @@ -88056,7 +89843,6 @@ msgstr "" msgid "28 days later" msgstr "" -#. ~ Description for 28 days later #: lang/json/achievement_from_json.py msgid "Survive for a month" msgstr "" @@ -88065,7 +89851,6 @@ msgstr "" msgid "A time to every purpose under heaven" msgstr "" -#. ~ Description for A time to every purpose under heaven #: lang/json/achievement_from_json.py msgid "Survive for a season" msgstr "" @@ -88074,7 +89859,6 @@ msgstr "" msgid "Brighter days ahead?" msgstr "" -#. ~ Description for Brighter days ahead? #: lang/json/achievement_from_json.py msgid "Survive for a year" msgstr "" @@ -88083,7 +89867,6 @@ msgstr "" msgid "Pheidippides was a hack" msgstr "" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." msgstr "" @@ -88092,7 +89875,6 @@ msgstr "" msgid "Please don't fall down at my door" msgstr "" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." msgstr "" @@ -88113,6 +89895,98 @@ msgstr "" msgid "Ain't no valley low enough" msgstr "" +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Would-be Wizard" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Wizard's Apprentice" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Journeyman Wizard" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "" +"You have learned enough spells that in more reasonable times you would have " +"graduated from your apprenticeship." +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Archmage" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "" +"You have learned a large number of spells, and would be qualified for the " +"Archmage title." +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Master Archmage" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "" +"You have learned so many spells, that you would have been a major source of " +"knowledge for many wizards. Also known as a Sage, Master Archmages enjoy a " +"wide variety of perks due to their lifelong commitment to learning and " +"helping others learn." +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Senile Wizard" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Cast a Spell" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "" +"The first great milestone to becoming a full-fledged wizard is to cast a " +"spell. Some mages simply study the spell in the spellbook until they think " +"they understand it as well as they can, but you can't beat practice over " +"theory." +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Spell Level 5" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Spell Level 10" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Spell Level 15" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Spell Level 20" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Spell Level 25" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Spell Level 30" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "reloading" msgstr "" @@ -88243,10 +90117,6 @@ msgstr "" msgid "de-stressing" msgstr "" -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr "" - #: lang/json/activity_type_from_json.py msgid "dropping" msgstr "" @@ -88680,10 +90550,6 @@ msgstr "" msgid "cents" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "" - #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" msgstr "" @@ -88852,6 +90718,10 @@ msgstr "" msgid "mana energy" msgstr "" +#: lang/json/ammunition_type_from_json.py +msgid "heady vapours" +msgstr "" + #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" msgstr "" @@ -88922,10 +90792,10 @@ msgid "" msgstr "" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" +msgid "Alloy Plating - head" msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -88945,10 +90815,10 @@ msgid "" msgstr "" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" +msgid "Alloy Plating - torso" msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -90291,6 +92161,15 @@ msgid "" "inducing a state of euphoria that notably elevates mood." msgstr "" +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top " +"of your spine. They are all dead now but there is unfortunately a dead man " +"switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" @@ -90627,6 +92506,22 @@ msgstr "" msgid "Destroy wool lining" msgstr "" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -91434,6 +93329,10 @@ msgstr "" msgid "Build Cardboard Fort" msgstr "" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "" @@ -92471,6 +94370,71 @@ msgstr "" msgid "You have transitioned from a dying race to a glorious future." msgstr "" +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded " +"by snow and bitter pelting winds, you feel confident and toasty-warm beneath " +"your shaggy coat." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is " +"restored." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill " +"for anyone or anything to bother trying to attack. And if they do… it'll be " +"the last mistake of their life. Waking up gives you a brief jolt of fear " +"and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one " +"through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "" + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "" @@ -93633,6 +95597,50 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "" +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "" + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "" @@ -94979,6 +96987,27 @@ msgstr "" msgid "You're disgusted by the goop." msgstr "" +#: lang/json/effects_from_json.py +#: src/character.cpp +msgid "Full" +msgstr "" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "" + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "" + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" msgstr "" @@ -95000,11 +97029,6 @@ msgid "" "This is a bug if you have it." msgstr "" -#: lang/json/effects_from_json.py src/character.cpp -#: src/character.cpp -msgid "Full" -msgstr "" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -96562,7 +98586,9 @@ msgstr "" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." msgstr "" #: lang/json/furniture_from_json.py @@ -96582,15 +98608,17 @@ msgstr "" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." msgstr "" #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them " -"clean and to save people an unpleasant chore. Now, with the power gone and " -"it sitting for a while, it's starting to smell a bit off." +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." msgstr "" #: lang/json/furniture_from_json.py @@ -96599,7 +98627,9 @@ msgstr "" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -96609,9 +98639,8 @@ msgstr "" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." msgstr "" #: lang/json/furniture_from_json.py @@ -96621,7 +98650,10 @@ msgstr "" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without " +"letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." msgstr "" #: lang/json/furniture_from_json.py @@ -96632,12 +98664,14 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." +"the air through a building's ventilation system to keep it warm." msgstr "" #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." msgstr "" #: lang/json/furniture_from_json.py @@ -96647,9 +98681,8 @@ msgstr "" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." msgstr "" #: lang/json/furniture_from_json.py @@ -96659,8 +98692,9 @@ msgstr "" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -96670,8 +98704,9 @@ msgstr "" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." +"An anvil with a large metal hammer suspended above it in a metal framework. " +"If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -96681,8 +98716,10 @@ msgstr "" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -96691,7 +98728,10 @@ msgstr "" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." msgstr "" #: lang/json/furniture_from_json.py @@ -96701,8 +98741,10 @@ msgstr "" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes " +"have all been lost." msgstr "" #: lang/json/furniture_from_json.py @@ -96711,7 +98753,10 @@ msgstr "" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." msgstr "" #: lang/json/furniture_from_json.py @@ -96726,7 +98771,10 @@ msgstr "" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." msgstr "" #: lang/json/furniture_from_json.py @@ -96748,7 +98796,9 @@ msgstr "" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -96761,7 +98811,7 @@ msgstr "" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." +msgid "A wall of stacked earthbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -96770,7 +98820,7 @@ msgstr "" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." +msgid "A simple wooden post to mark the separation between street lanes." msgstr "" #: lang/json/furniture_from_json.py @@ -96779,7 +98829,9 @@ msgstr "" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -96788,7 +98840,7 @@ msgstr "" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." +msgid "A wall of stacked sandbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -96797,7 +98849,9 @@ msgstr "" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all " +"of the dirt and blood on your clothes, and the weariness in your eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -96811,8 +98865,9 @@ msgstr "" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." msgstr "" #: lang/json/furniture_from_json.py @@ -96822,8 +98877,8 @@ msgstr "" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." msgstr "" #: lang/json/furniture_from_json.py @@ -96832,9 +98887,7 @@ msgstr "" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -96848,11 +98901,12 @@ msgstr "" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." msgstr "" #: lang/json/furniture_from_json.py -#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py msgid "thump." msgstr "" @@ -96864,8 +98918,9 @@ msgstr "" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." msgstr "" #: lang/json/furniture_from_json.py @@ -96874,7 +98929,9 @@ msgstr "" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." msgstr "" #: lang/json/furniture_from_json.py @@ -96883,7 +98940,9 @@ msgstr "" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to " +"hang up clothes to dry in the sunlight." msgstr "" #: lang/json/furniture_from_json.py @@ -96892,7 +98951,9 @@ msgstr "" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." msgstr "" #: lang/json/furniture_from_json.py @@ -96908,13 +98969,29 @@ msgstr "" msgid "A decorative wreath for the winter holidays." msgstr "" +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "" + +#: lang/json/furniture_from_json.py +#: lang/json/terrain_from_json.py +msgid "crunch." +msgstr "" + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." +msgid "A decorative pine tree littered with ornaments for the winter holidays." msgstr "" #: lang/json/furniture_from_json.py @@ -96923,7 +99000,9 @@ msgstr "" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried " +"up and died a while ago." msgstr "" #: lang/json/furniture_from_json.py @@ -96932,7 +99011,9 @@ msgstr "" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." msgstr "" #: lang/json/furniture_from_json.py @@ -96942,14 +99023,8 @@ msgstr "" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to " -"harvest the plant appropriately." -msgstr "" - -#: lang/json/furniture_from_json.py -#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py -#: lang/json/terrain_from_json.py -msgid "crunch." +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." msgstr "" #: lang/json/furniture_from_json.py @@ -96964,7 +99039,7 @@ msgstr "" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." +msgid "This plant has matured, and will be ready to harvest before long." msgstr "" #: lang/json/furniture_from_json.py @@ -96974,7 +99049,8 @@ msgstr "" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into destiny." +"A freshly planted seed. If properly tended to, it could grow into a healthy " +"plant." msgstr "" #: lang/json/furniture_from_json.py @@ -96983,7 +99059,7 @@ msgstr "" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." +msgid "A seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -97002,22 +99078,34 @@ msgid "planter with harvestable plant" msgstr "" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." msgstr "" #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "" @@ -97025,8 +99113,8 @@ msgstr "" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -97036,8 +99124,8 @@ msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." msgstr "" #: lang/json/furniture_from_json.py @@ -97047,15 +99135,16 @@ msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're " -"seeing this, you're already too close to it." +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." msgstr "" #: lang/json/furniture_from_json.py @@ -97064,7 +99153,9 @@ msgstr "" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." msgstr "" #. ~ Description for swamp gas @@ -97116,9 +99207,8 @@ msgstr "" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." msgstr "" #: lang/json/furniture_from_json.py @@ -97142,7 +99232,8 @@ msgstr "" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." msgstr "" #. ~ Description for brazier @@ -97150,6 +99241,20 @@ msgstr "" msgid "A raised metal dish in which to safely burn things." msgstr "" +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "" @@ -97280,7 +99385,7 @@ msgstr "" #: lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py -#: src/iuse.cpp +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "" @@ -97299,8 +99404,8 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." msgstr "" #: lang/json/furniture_from_json.py @@ -97311,8 +99416,8 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." +"color has been leached from its petals and stem. It gently sways of its own " +"volition, maintaining an unsettling rhythm." msgstr "" #: lang/json/furniture_from_json.py @@ -97323,7 +99428,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." +"soft to the touch, but not firm enough to hold any weight." msgstr "" #: lang/json/furniture_from_json.py @@ -97333,7 +99438,8 @@ msgstr "" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." msgstr "" #: lang/json/furniture_from_json.py @@ -97357,7 +99463,7 @@ msgstr "" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." +msgid "A slab of heavy stone, with a reasonably flat surface." msgstr "" #: lang/json/furniture_from_json.py @@ -97366,7 +99472,10 @@ msgstr "" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." msgstr "" #: lang/json/furniture_from_json.py @@ -97382,7 +99491,10 @@ msgstr "" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." +msgid "" +"An upright slab of stone with information engraved on the face about whoever " +"lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." msgstr "" #: lang/json/furniture_from_json.py @@ -97391,7 +99503,10 @@ msgstr "" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." msgstr "" #: lang/json/furniture_from_json.py @@ -97400,7 +99515,10 @@ msgstr "" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." msgstr "" #: lang/json/furniture_from_json.py @@ -97415,7 +99533,8 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -97425,8 +99544,8 @@ msgstr "" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." +"A large vat with a motorized mixing device for combining large quantities of " +"chemicals." msgstr "" #: lang/json/furniture_from_json.py @@ -97436,9 +99555,9 @@ msgstr "" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -97453,8 +99572,10 @@ msgstr "" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." +"A surgical apparatus used for installation and removal of bionics. The term " +"name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." msgstr "" #: lang/json/furniture_from_json.py @@ -97472,8 +99593,8 @@ msgstr "" #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost anything." +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." msgstr "" #: lang/json/furniture_from_json.py @@ -97487,8 +99608,8 @@ msgstr "" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the inside." +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." msgstr "" #: lang/json/furniture_from_json.py @@ -97521,8 +99642,9 @@ msgstr "" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow " -"bacteria. This is great for microbiology, but terrible for preserving food." +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." msgstr "" #: lang/json/furniture_from_json.py @@ -97532,9 +99654,10 @@ msgstr "" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running " -"water, you could use those attachments to wash harmful chemicals out of your " -"eyes, or to take a pleasant cold shower in a public place." +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." msgstr "" #: lang/json/furniture_from_json.py @@ -97543,7 +99666,9 @@ msgstr "" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." msgstr "" #: lang/json/furniture_from_json.py @@ -97554,9 +99679,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on " +"their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" #: lang/json/furniture_from_json.py @@ -97567,9 +99692,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." msgstr "" #: lang/json/furniture_from_json.py @@ -97579,10 +99704,11 @@ msgstr "" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other " +"advanced sciences, it's not as useful anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -97592,10 +99718,9 @@ msgstr "" #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." msgstr "" #: lang/json/furniture_from_json.py @@ -97605,8 +99730,8 @@ msgstr "" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." msgstr "" #: lang/json/furniture_from_json.py @@ -97616,9 +99741,8 @@ msgstr "" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of " -"radio-opacity." +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." msgstr "" #: lang/json/furniture_from_json.py @@ -97628,9 +99752,8 @@ msgstr "" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't " -"excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." +"A massive tool used to take NMR images of a patient placed inside, providing " +"invaluable medical insight." msgstr "" #: lang/json/furniture_from_json.py @@ -97640,8 +99763,8 @@ msgstr "" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." msgstr "" #: lang/json/furniture_from_json.py @@ -97651,9 +99774,9 @@ msgstr "" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." msgstr "" #: lang/json/furniture_from_json.py @@ -97663,9 +99786,9 @@ msgstr "" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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." +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." msgstr "" #: lang/json/furniture_from_json.py @@ -97675,9 +99798,9 @@ msgstr "" #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." msgstr "" #: lang/json/furniture_from_json.py @@ -97714,7 +99837,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." +"faint light spills from it." msgstr "" #: lang/json/furniture_from_json.py @@ -97730,7 +99853,7 @@ msgstr "" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." +"even waving gently as though underwater." msgstr "" #: lang/json/furniture_from_json.py @@ -97742,7 +99865,7 @@ msgstr "" msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." msgstr "" @@ -97753,9 +99876,9 @@ msgstr "" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." +"A spine resembling moth antennae juts from the ground, swaying gently in the " +"air. Every so often, a cascade of energy arcs along it and discharges into " +"the ceiling." msgstr "" #: lang/json/furniture_from_json.py @@ -97765,8 +99888,8 @@ msgstr "" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases " -"out of injured vessels." +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." msgstr "" #: lang/json/furniture_from_json.py @@ -97825,8 +99948,9 @@ msgstr "" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The " -"plug is intact, so you could use it to store liquids." +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." msgstr "" #: lang/json/furniture_from_json.py @@ -97843,7 +99967,10 @@ msgstr "" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to " +"imagine wasting that much water." msgstr "" #: lang/json/furniture_from_json.py @@ -97853,7 +99980,8 @@ msgstr "" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." msgstr "" #: lang/json/furniture_from_json.py @@ -97863,8 +99991,9 @@ msgstr "" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the cleanest." msgstr "" #: lang/json/furniture_from_json.py @@ -97874,15 +100003,16 @@ msgstr "" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." msgstr "" #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." +"This devices effectively sterilizes water, though without a lot of power and " +"proper plumbing, it's only good for parts now." msgstr "" #: lang/json/furniture_from_json.py @@ -97892,8 +100022,10 @@ msgstr "" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." +"A heavy set of weightlifting equipment for strength training, with a pair of " +"heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." msgstr "" #: lang/json/furniture_from_json.py @@ -97903,9 +100035,9 @@ msgstr "" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various " -"balls for different types of sports. It's only good for parts now if " -"disassembled." +"A simple machine for launching sports balls of various types, with a pair of " +"motorized wheels that, if spun up, would fling the ball at moderate speeds. " +"Probably not the most effective ranged weapon against the undead." msgstr "" #: lang/json/furniture_from_json.py @@ -97914,7 +100046,11 @@ msgstr "" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." msgstr "" #: lang/json/furniture_from_json.py @@ -97923,7 +100059,9 @@ msgstr "" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." msgstr "" #: lang/json/furniture_from_json.py @@ -97932,7 +100070,12 @@ msgstr "" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped " +"off." msgstr "" #: lang/json/furniture_from_json.py @@ -97942,9 +100085,8 @@ msgstr "" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." msgstr "" #: lang/json/furniture_from_json.py @@ -97954,9 +100096,10 @@ msgstr "" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't " -"go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While " +"inoperable without power, it's still impressive to look at, though probably " +"more useful if disassembled." msgstr "" #: lang/json/furniture_from_json.py @@ -97966,8 +100109,9 @@ msgstr "" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." +"An exercise machine with a set of handles and plates meant to emulate rowing " +"a boat. Without power it can't be operated, but it might have useful parts " +"to be scavanged." msgstr "" #: lang/json/furniture_from_json.py @@ -97977,8 +100121,9 @@ msgstr "" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be " -"taken apart for its… parts." +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." msgstr "" #: lang/json/furniture_from_json.py @@ -97988,8 +100133,9 @@ msgstr "" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." msgstr "" #: lang/json/furniture_from_json.py @@ -98003,8 +100149,9 @@ msgstr "" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." msgstr "" #: lang/json/furniture_from_json.py @@ -98022,9 +100169,9 @@ msgstr "" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things " -"loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." +"An upright wood-panel case of large speakers, built to produce a potentially " +"deafening volume level. While this is a terrible idea to use now, it could " +"hold useful parts." msgstr "" #: lang/json/furniture_from_json.py @@ -98033,7 +100180,10 @@ msgstr "" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." msgstr "" #: lang/json/furniture_from_json.py @@ -98042,21 +100192,33 @@ msgstr "" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." msgstr "" -#. ~ Description for this should never actually show up, it's a pseudo furniture #: lang/json/furniture_from_json.py msgid "this should never actually show up, it's a pseudo furniture" msgstr "" +#. ~ Description for this should never actually show up, it's a pseudo furniture +#: lang/json/furniture_from_json.py +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cell phone signal booster" msgstr "" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -98069,7 +100231,10 @@ msgstr "" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." msgstr "" #: lang/json/furniture_from_json.py @@ -98078,7 +100243,9 @@ msgstr "" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." msgstr "" #: lang/json/furniture_from_json.py @@ -98087,7 +100254,10 @@ msgstr "" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." msgstr "" #: lang/json/furniture_from_json.py @@ -98096,7 +100266,9 @@ msgstr "" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." msgstr "" #: lang/json/furniture_from_json.py @@ -98105,7 +100277,10 @@ msgstr "" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py -msgid "The turbine uses wind power to suck hot and humid air out of the attic." +msgid "" +"A rotary wind turbine that will catch the wind and pull out air from " +"inside. It is most commonly used for improving air cicrulation, " +"particularly in poorly-ventilated areas like attics." msgstr "" #: lang/json/furniture_from_json.py @@ -98114,7 +100289,10 @@ msgstr "" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable " +"bed." msgstr "" #: lang/json/furniture_from_json.py @@ -98127,7 +100305,10 @@ msgstr "" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the " +"way." msgstr "" #: lang/json/furniture_from_json.py @@ -98136,7 +100317,9 @@ msgstr "" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." msgstr "" #: lang/json/furniture_from_json.py @@ -98145,7 +100328,9 @@ msgstr "" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." msgstr "" #: lang/json/furniture_from_json.py @@ -98154,7 +100339,9 @@ msgstr "" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." msgstr "" #: lang/json/furniture_from_json.py @@ -98162,9 +100349,11 @@ msgid "chair" msgstr "" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat " +"a meal properly and almost pretend that things were normal again." msgstr "" #: lang/json/furniture_from_json.py @@ -98173,16 +100362,29 @@ msgstr "" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." msgstr "" #: lang/json/furniture_from_json.py msgid "stool" msgstr "" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "" + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." msgstr "" #: lang/json/furniture_from_json.py @@ -98192,8 +100394,8 @@ msgstr "" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." msgstr "" #: lang/json/furniture_from_json.py @@ -98203,7 +100405,9 @@ msgstr "" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground, " +"it's not particularly comfortable." msgstr "" #: lang/json/furniture_from_json.py @@ -98213,8 +100417,8 @@ msgstr "" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." msgstr "" #: lang/json/furniture_from_json.py @@ -98223,7 +100427,9 @@ msgstr "" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." msgstr "" #: lang/json/furniture_from_json.py @@ -98233,8 +100439,8 @@ msgstr "" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -98244,7 +100450,9 @@ msgstr "" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -98253,7 +100461,11 @@ msgstr "" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than " +"you'd like to somebody you wouldn't normally want to share a mattress with, " +"a bed's a bed." msgstr "" #: lang/json/furniture_from_json.py @@ -98263,8 +100475,8 @@ msgstr "" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place " -"to sleep. Sleeping on it right now wouldn't be great." +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." msgstr "" #: lang/json/furniture_from_json.py @@ -98274,8 +100486,9 @@ msgstr "" #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's " -"not quite as comfy as a real bed, but it's pretty close." +"An ordinary mattress left on the floor. While it's not as comfortable as an " +"entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." msgstr "" #: lang/json/furniture_from_json.py @@ -98287,8 +100500,10 @@ msgstr "" #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty close." +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." msgstr "" #: lang/json/furniture_from_json.py @@ -98297,7 +100512,10 @@ msgstr "" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal " +"bed, albeit with a slightly lumpy mattress. Considering the circumstances, " +"it's not too bad at all." msgstr "" #: lang/json/furniture_from_json.py @@ -98306,7 +100524,9 @@ msgstr "" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." msgstr "" #: lang/json/furniture_from_json.py @@ -98315,7 +100535,9 @@ msgstr "" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -98324,7 +100546,10 @@ msgstr "" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden " +"cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -98333,7 +100558,11 @@ msgstr "" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will " +"likely never receive." msgstr "" #: lang/json/furniture_from_json.py @@ -98348,8 +100577,10 @@ msgstr "" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." msgstr "" #: lang/json/furniture_from_json.py @@ -98359,8 +100590,9 @@ msgstr "" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." msgstr "" #: lang/json/furniture_from_json.py @@ -98369,14 +100601,19 @@ msgstr "" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of " +"nails, could be sealed back shut." msgstr "" #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." +"A large box made of a brown paper-based material. Could contain a number of " +"things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect " +"you if you're found." msgstr "" #: lang/json/furniture_from_json.py @@ -98394,7 +100631,9 @@ msgstr "" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." msgstr "" #: lang/json/furniture_from_json.py @@ -98403,7 +100642,10 @@ msgstr "" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." msgstr "" #: lang/json/furniture_from_json.py @@ -98420,7 +100662,11 @@ msgstr "" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." msgstr "" #: lang/json/furniture_from_json.py @@ -98433,7 +100679,10 @@ msgstr "" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." msgstr "" #: lang/json/furniture_from_json.py @@ -98442,7 +100691,11 @@ msgstr "" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking " +"system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." msgstr "" #: lang/json/furniture_from_json.py @@ -98451,7 +100704,9 @@ msgstr "" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." msgstr "" #: lang/json/furniture_from_json.py @@ -98461,8 +100716,9 @@ msgstr "" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come " -"for awhile. Doesn't look like it's coming again anytime soon." +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." msgstr "" #: lang/json/furniture_from_json.py @@ -98471,7 +100727,10 @@ msgstr "" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes. " +"Usually used in theater or retail environments, it's easy to use and quick " +"to access." msgstr "" #: lang/json/furniture_from_json.py @@ -98480,7 +100739,9 @@ msgstr "" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." msgstr "" #: lang/json/furniture_from_json.py @@ -98489,7 +100750,9 @@ msgstr "" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." msgstr "" #: lang/json/furniture_from_json.py @@ -98498,7 +100761,9 @@ msgstr "" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." msgstr "" #: lang/json/furniture_from_json.py @@ -98507,7 +100772,11 @@ msgstr "" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it. " +"While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." msgstr "" #: lang/json/furniture_from_json.py @@ -98516,12 +100785,17 @@ msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." msgstr "" #: lang/json/furniture_from_json.py @@ -98530,7 +100804,9 @@ msgstr "" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." msgstr "" #: lang/json/furniture_from_json.py @@ -98539,7 +100815,10 @@ msgstr "" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." msgstr "" #: lang/json/furniture_from_json.py @@ -98548,7 +100827,10 @@ msgstr "" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." msgstr "" #: lang/json/furniture_from_json.py @@ -98558,9 +100840,8 @@ msgstr "" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." msgstr "" #: lang/json/furniture_from_json.py @@ -98569,7 +100850,9 @@ msgstr "" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools " +"and materials for easy access to workers." msgstr "" #: lang/json/furniture_from_json.py @@ -98578,9 +100861,7 @@ msgstr "" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py -msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." +msgid "A huge, sturdy steel shelf for storing pallets of crates in warehouses." msgstr "" #: lang/json/furniture_from_json.py @@ -98589,7 +100870,9 @@ msgstr "" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." msgstr "" #: lang/json/furniture_from_json.py @@ -98598,7 +100881,10 @@ msgstr "" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the " +"top. Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." msgstr "" #: lang/json/furniture_from_json.py @@ -98607,7 +100893,11 @@ msgstr "" #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the " +"top. Would be useful for storing valuable things while still showing them " +"off, if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." msgstr "" #: lang/json/furniture_from_json.py @@ -98616,7 +100906,8 @@ msgstr "" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." msgstr "" #: lang/json/furniture_from_json.py @@ -98625,7 +100916,10 @@ msgstr "" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." msgstr "" #: lang/json/furniture_from_json.py @@ -98634,7 +100928,9 @@ msgstr "" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." msgstr "" #: lang/json/furniture_from_json.py @@ -99555,6 +101851,19 @@ msgstr "" msgid "tank trap" msgstr "" +#. ~ Description for fungal mass +#: lang/json/furniture_from_json.py +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." +msgstr "" + +#. ~ Description for fungal clump +#: lang/json/furniture_from_json.py +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +msgstr "" + #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py msgid "The gate is closed!" @@ -99769,6 +102078,71 @@ msgid_plural "acid dart guns" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from " +"a double barrel shotgun." +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 +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to " +"strike the single round it holds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the " +"better homemade weapons." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] "" +msgstr[1] "" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -99877,7 +102251,7 @@ msgstr "" #: lang/json/gun_from_json.py #: lang/json/gunmod_from_json.py -#: lang/json/gunmod_from_json.py src/item.cpp +#: src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "" @@ -99979,13 +102353,6 @@ msgstr "" msgid "double" 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 -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -100054,6 +102421,36 @@ msgid "" "magazines and is an overall much more effective weapon." msgstr "" +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -100442,6 +102839,19 @@ msgstr "" msgid "burst" msgstr "" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -100498,18 +102908,6 @@ msgid "" "buttstock." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to " -"strike the single round it holds." -msgstr "" - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -100561,19 +102959,6 @@ msgid "" "low recoil and high accuracy." msgstr "" -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the " -"better homemade weapons." -msgstr "" - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -100695,12 +103080,6 @@ msgid "" "competing Browning BLR." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] "" -msgstr[1] "" - #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" msgid_plural "Remington ACR .300BLKs" @@ -100829,17 +103208,15 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." msgstr "" #: lang/json/gun_from_json.py @@ -101652,8 +104029,8 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" msgstr[0] "" msgstr[1] "" @@ -101689,8 +104066,8 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" msgstr[0] "" msgstr[1] "" @@ -101974,24 +104351,6 @@ msgid "" "the AK series with the high-velocity, lightweight 5.45x39mm cartridge." msgstr "" -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "" - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -102348,18 +104707,6 @@ msgid "" "Accepts box and RMGD250 drum magazines." msgstr "" -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful " -"addition to the arsenal of any gunslinger." -msgstr "" - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -102835,19 +105182,6 @@ msgid "" "their egomaniac descendants in New England." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from " -"a double barrel shotgun." -msgstr "" - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -103007,6 +105341,19 @@ msgid "" "action means this is much less likely to jam." msgstr "" +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -103388,18 +105735,6 @@ msgid "" "quiet and accurate marksman laser rifle." msgstr "" -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "" - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" @@ -103607,7 +105942,7 @@ msgstr[1] "" msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." +"hunting small game." msgstr "" #: lang/json/gun_from_json.py @@ -103631,9 +105966,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." msgstr "" #: lang/json/gun_from_json.py @@ -103784,7 +106118,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." +"A leather sling, can launch rocks much further and faster than throwing them " +"by hand." msgstr "" #: lang/json/gun_from_json.py @@ -103800,7 +106135,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as ammunition." +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." msgstr "" #: lang/json/gun_from_json.py @@ -103811,8 +106147,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." msgstr "" #: lang/json/gun_from_json.py @@ -103823,8 +106159,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." msgstr "" #: lang/json/gun_from_json.py @@ -104264,6 +106600,35 @@ msgid "" "crafted ammunition." msgstr "" +#: lang/json/gun_from_json.py +msgid "pipe rifle" +msgid_plural "pipe rifles" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "survivor carbine" +msgid_plural "survivor carbines" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than " +"ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." +msgstr "" + #: lang/json/gun_from_json.py msgid "antique pistol" msgid_plural "antique pistols" @@ -104620,35 +106985,6 @@ msgid "" "to reload." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than " -"ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -104893,6 +107229,32 @@ msgid_plural "TEST compound bows" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "Test Glock" +msgid_plural "Test Glocks" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "A handgun for testing, based on the Glock 9mm." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"The integrated underbarrel shotgun of a pipe combination gun which holds two " +"shots. It's irremovable." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "barrel extension" msgid_plural "barrel extensions" @@ -105132,10 +107494,6 @@ msgid "" "any sort of firearm, greatly expanding its lethality." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "" - #: lang/json/gunmod_from_json.py #: src/item.cpp msgctxt "gun_type_type" @@ -105489,6 +107847,21 @@ msgid "" "good as actual full-auto parts, so precision and reliability suffer slightly." msgstr "" +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -106207,18 +108580,6 @@ msgid "" "shots. It's irremovable." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two " -"shots. It's irremovable." -msgstr "" - #: lang/json/gunmod_from_json.py msgid "factory handguard" msgid_plural "factory handguards" @@ -106755,6 +109116,16 @@ msgid "" "replacing the iron sights. Increases accuracy and weight." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "Gun suppressor mod for testing." +msgstr "" + #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" msgstr "" @@ -106801,8 +109172,9 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future " +"looks pretty grim." msgstr "" #: lang/json/help_from_json.py @@ -106815,11 +109187,12 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are " +"exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." @@ -106827,10 +109200,10 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help " +"you survive." msgstr "" #: lang/json/help_from_json.py @@ -108514,10 +110887,6 @@ msgstr "" msgid "Cauterize a wound" msgstr "" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "" @@ -109947,6 +112316,14 @@ msgstr "" msgid "Toggle turret lines" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "" @@ -109979,10 +112356,6 @@ msgstr "" msgid "Travel to destination" msgstr "" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "" @@ -110428,7 +112801,6 @@ msgid "Disassemble items" msgstr "" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "" @@ -110652,7 +113024,7 @@ msgstr "" msgid "Active World Mods" msgstr "" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "" @@ -110952,6 +113324,30 @@ msgstr "" msgid "Describe terrain" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp #: src/vehicle_use.cpp msgid "Control multiple electronics" @@ -111107,7 +113503,7 @@ msgstr "" msgid "Nothing" msgstr "" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "" @@ -111116,7 +113512,7 @@ msgstr "" msgid "Crater" msgstr "" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "" @@ -111125,7 +113521,7 @@ msgstr "" msgid "College Kids" msgstr "" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "" @@ -111134,7 +113530,7 @@ msgstr "" msgid "Drug Deal" msgstr "" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "" @@ -111143,7 +113539,7 @@ msgstr "" msgid "Roadworks" msgstr "" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "" @@ -111152,7 +113548,7 @@ msgstr "" msgid "Road Mayhem" msgstr "" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "" @@ -111161,7 +113557,7 @@ msgstr "" msgid "Roadblock (Military)" msgstr "" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "" @@ -111170,7 +113566,7 @@ msgstr "" msgid "Roadblock (Bandits)" msgstr "" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "" @@ -111179,7 +113575,7 @@ msgstr "" msgid "Minefield" msgstr "" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "" @@ -111188,17 +113584,17 @@ msgstr "" msgid "Supply Drop" msgstr "" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "" -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" msgstr "" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "" @@ -111207,7 +113603,7 @@ msgstr "" msgid "Helicopter Crash" msgstr "" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "" @@ -111216,7 +113612,7 @@ msgstr "" msgid "Scientists" msgstr "" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "" @@ -111225,7 +113621,7 @@ msgstr "" msgid "Portal" msgstr "" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "" @@ -111234,7 +113630,7 @@ msgstr "" msgid "Portal In" msgstr "" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "" @@ -111243,7 +113639,7 @@ msgstr "" msgid "Spider Nest" msgstr "" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "" @@ -111252,22 +113648,21 @@ msgstr "" msgid "Wasp Nest" msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "" #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "" @@ -111276,7 +113671,7 @@ msgstr "" msgid "Jabberwock" msgstr "" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "" @@ -111285,7 +113680,7 @@ msgstr "" msgid "Grove" msgstr "" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "" @@ -111294,7 +113689,7 @@ msgstr "" msgid "Shrubberry" msgstr "" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "" @@ -111303,7 +113698,7 @@ msgstr "" msgid "Clearcut" msgstr "" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." msgstr "" @@ -111312,7 +113707,7 @@ msgstr "" msgid "Pond" msgstr "" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "" @@ -111321,7 +113716,7 @@ msgstr "" msgid "Stand of trees" msgstr "" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "" @@ -111330,7 +113725,7 @@ msgstr "" msgid "Tall grass" msgstr "" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "" @@ -111339,7 +113734,7 @@ msgstr "" msgid "Derelict shed" msgstr "" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "" @@ -111348,7 +113743,7 @@ msgstr "" msgid "Clay Deposit" msgstr "" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "" @@ -111357,8 +113752,8 @@ msgstr "" msgid "Dead Vegetation" msgstr "" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "" @@ -111371,8 +113766,8 @@ msgstr "" msgid "Burned Ground" msgstr "" -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "" @@ -111385,7 +113780,7 @@ msgstr "" msgid "Marloss Pilgrimage" msgstr "" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "" @@ -111394,7 +113789,7 @@ msgstr "" msgid "Casings" msgstr "" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "" @@ -111403,7 +113798,7 @@ msgstr "" msgid "Looters" msgstr "" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "" @@ -111412,12 +113807,12 @@ msgstr "" msgid "Corpses" msgstr "" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "" @@ -111426,7 +113821,7 @@ msgstr "" msgid "Dermatik Nest" msgstr "" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "" @@ -111435,7 +113830,7 @@ msgstr "" msgid "Prison Bus" msgstr "" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "" @@ -111444,7 +113839,7 @@ msgstr "" msgid "Mass Grave" msgstr "" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "" @@ -111453,11 +113848,20 @@ msgstr "" msgid "Grave" msgstr "" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "" +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -112958,6 +115362,19 @@ msgstr "" msgid "%s gets ready to brawl." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a " +"time.\n" +"\n" +"+1 Block attempts." +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "" @@ -114656,6 +117073,204 @@ msgid "" "DEX provides dodge ability, accuracy and armor penetration." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming " +"strikes. The complex spinning and slashing of the curved blade incorporated " +"into many Desert Wind maneuvers are in fact carefully honed gestures that " +"evoke the power of fire, if performed correctly and with the proper focus." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" +msgstr "" + +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr " +"racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so " +"that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must " +"inevitably." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "" + +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"You move slightly faster than normal due to a combination of confidence, " +"raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing " +"like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a " +"battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top " +"notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "" + +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"Taking advantage of momentum, you rush towards foes to deliver a powerful " +"strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" +msgstr "" + +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"When you perfectly dodge an attack, you can attack rapidly for a short " +"time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Panzer Kunst" msgstr "" @@ -114711,22 +117326,22 @@ msgid "Alcohol" msgstr "" #: lang/json/material_from_json.py -#: src/material.cpp +#: lang/json/material_from_json.py src/material.cpp msgid "damaged" msgstr "" #: lang/json/material_from_json.py -#: src/material.cpp +#: lang/json/material_from_json.py src/material.cpp msgid "lightly damaged" msgstr "" #: lang/json/material_from_json.py -#: src/material.cpp +#: lang/json/material_from_json.py src/material.cpp msgid "very damaged" msgstr "" #: lang/json/material_from_json.py -#: src/material.cpp +#: lang/json/material_from_json.py src/material.cpp msgid "thoroughly damaged" msgstr "" @@ -114957,7 +117572,7 @@ msgid "Junk Food" msgstr "" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" +msgid "Foodplace's delicious foodstuff" msgstr "" #: lang/json/material_from_json.py @@ -114965,11 +117580,11 @@ msgid "Kevlar" msgstr "" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" +msgid "Layered Kevlar" msgstr "" #: lang/json/material_from_json.py -msgid "scarred" +msgid "Rigid Kevlar" msgstr "" #: lang/json/material_from_json.py @@ -115098,7 +117713,7 @@ msgstr "" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "" @@ -115170,6 +117785,30 @@ msgstr "" msgid "Graphene Weave" msgstr "" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "" + +#: lang/json/material_from_json.py +msgid "Prismetallic Blend" +msgstr "" + +#: lang/json/material_from_json.py +msgid "Chromogenic Weave" +msgstr "" + +#: lang/json/material_from_json.py +msgid "Collagenic Polymer" +msgstr "" + +#: lang/json/material_from_json.py +msgid "Emulsified Hydrogel" +msgstr "" + +#: lang/json/material_from_json.py +msgid "pupled" +msgstr "" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "" @@ -120799,6 +123438,112 @@ msgstr "" msgid "Debug Morale" msgstr "" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp +#: src/weather.cpp +msgid "W" +msgstr "" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "" + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "" + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "" + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "" + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp #: src/options.cpp @@ -122587,7 +125332,8 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." msgstr "" #: lang/json/mutation_from_json.py @@ -122622,9 +125368,9 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale " -"bonus." +"you can't even think about eating without a table or not taking your time. " +"Eating without it frustrates you, but eating like a civilized person gives " +"you a bigger morale bonus." msgstr "" #: lang/json/mutation_from_json.py @@ -123168,8 +125914,8 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." msgstr "" #: lang/json/mutation_from_json.py @@ -123500,10 +126246,6 @@ msgid "" "with Fast Learner will come out to a slower rate of learning for all skills." msgstr "" -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -127198,7 +129940,7 @@ msgid "Well, maybe you'll just have to make your own world wide web." msgstr "" #: lang/json/mutation_from_json.py -#: lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/npc_from_json.py msgid "Survivor" msgstr "" @@ -127749,10 +130491,10 @@ msgid "Mind the bugs, would you kindly?" msgstr "" #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" +msgid "Debug Very Strong Back" msgstr "" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "" @@ -127872,10 +130614,21 @@ msgid "" "off-limits to you, even if your life depended on it." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -129065,6 +131818,40 @@ msgid "" "unarmed combat." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "" @@ -129245,6 +132032,38 @@ msgstr "" msgid "Mana Vortex" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to " +"tap into more of your reserves." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "" @@ -129267,11 +132086,6 @@ msgstr "" msgid "Greater Mana Efficiency" msgstr "" -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" msgstr "" @@ -129321,11 +132135,6 @@ msgstr "" msgid "Greater Mana Regeneration" msgstr "" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "" @@ -129379,13 +132188,6 @@ msgstr "" msgid "Greater Mana Sensitivity" msgstr "" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to " -"tap into more of your reserves." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "" @@ -129793,26 +132595,6 @@ msgstr "" msgid "I've been studying the mi-go for years…" msgstr "" -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive " -"it's twilight." -msgstr "" - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "" @@ -130023,6 +132805,26 @@ msgid "" "and I don't plan to keep being one." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive " +"it's twilight." +msgstr "" + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "" @@ -131275,6 +134077,10 @@ msgstr "" msgid "electronics store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "" @@ -131315,6 +134121,10 @@ msgstr "" msgid "bookstore roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "" @@ -131751,10 +134561,22 @@ msgstr "" msgid "hunting supply store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "" @@ -132015,6 +134837,22 @@ msgstr "" msgid "steel mill depot" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "science lab" msgstr "" @@ -132103,6 +134941,10 @@ msgstr "" msgid "mall - food court roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - subway station" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "mansion" msgstr "" @@ -133011,35 +135853,11 @@ msgid "county mortuary roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "diner" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" +msgid "Dinosaur Exhibit" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "light industry" +msgid "wildlife field office" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -133054,6 +135872,10 @@ msgstr "" msgid "scavenger bunker" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "" @@ -133299,9 +136121,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" #: lang/json/professions_from_json.py @@ -133313,9 +136135,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" #: lang/json/professions_from_json.py @@ -133327,9 +136149,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics " -"and got additional survival training. Now the end has come, and it is time " -"to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" #: lang/json/professions_from_json.py @@ -133341,9 +136163,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics " -"and got additional survival training. Now the end has come, and it is time " -"to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" #: lang/json/professions_from_json.py @@ -133355,7 +136177,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" @@ -133368,7 +136190,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" @@ -133381,9 +136203,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it " -"is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -133395,9 +136217,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it " -"is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -133409,9 +136231,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it " -"is winter, and you hope your guns and the skills you have acquired can help " -"you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your " +"collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -133423,9 +136245,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it " -"is winter, and you hope your guns and the skills you have acquired can help " -"you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your " +"collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -133438,7 +136260,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended. " -"Most people wouldn't expect a simple tailor to live long. This is your " +"Most people wouldn't expect a simple tailor to live very long. This is your " "opportunity to prove them wrong." msgstr "" @@ -133452,7 +136274,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended. " -"Most people wouldn't expect a simple tailor to live long. This is your " +"Most people wouldn't expect a simple tailor to live very long. This is your " "opportunity to prove them wrong." msgstr "" @@ -133466,8 +136288,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small " -"collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" #: lang/json/professions_from_json.py @@ -133480,8 +136302,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small " -"collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" #: lang/json/professions_from_json.py @@ -133523,9 +136345,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" #: lang/json/professions_from_json.py @@ -133537,9 +136359,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" #: lang/json/professions_from_json.py @@ -133551,8 +136373,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" #: lang/json/professions_from_json.py @@ -133564,8 +136387,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" #: lang/json/professions_from_json.py @@ -133580,7 +136404,7 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" #: lang/json/professions_from_json.py @@ -133595,7 +136419,7 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" #: lang/json/professions_from_json.py @@ -133607,9 +136431,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" #: lang/json/professions_from_json.py @@ -133621,9 +136445,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" #: lang/json/professions_from_json.py @@ -133635,9 +136459,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the " +"court. Quick feet and good reflexes meant you were among the lucky few to " +"escape the stadium alive." msgstr "" #: lang/json/professions_from_json.py @@ -133649,9 +136473,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the " +"court. Quick feet and good reflexes meant you were among the lucky few to " +"escape the stadium alive." msgstr "" #: lang/json/professions_from_json.py @@ -133663,9 +136487,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you " -"are real and the only thing standing between this world and oblivion is you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -133677,9 +136501,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you " -"are real and the only thing standing between this world and oblivion is you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -133693,8 +136517,8 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" #: lang/json/professions_from_json.py @@ -133708,8 +136532,8 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" #: lang/json/professions_from_json.py @@ -133721,10 +136545,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the " -"military. You finally got in, just in time for your training to get " -"interrupted by a national emergency. As far as you can tell, military " -"command abandoned you in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" #: lang/json/professions_from_json.py @@ -133736,10 +136560,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the " -"military. You finally got in, just in time for your training to get " -"interrupted by a national emergency. As far as you can tell, military " -"command abandoned you in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" #: lang/json/professions_from_json.py @@ -133781,8 +136605,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -133794,8 +136619,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -133807,10 +136633,11 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and " +"blacked out. You just woke up in this strange place… are you even on Earth " +"anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -133822,10 +136649,11 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and " +"blacked out. You just woke up in this strange place… are you even on Earth " +"anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -133838,9 +136666,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -133853,9 +136681,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -133868,8 +136696,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you " +"expected." msgstr "" #: lang/json/professions_from_json.py @@ -133882,8 +136711,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you " +"expected." msgstr "" #: lang/json/professions_from_json.py @@ -133896,8 +136726,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough " -"jobs. A shame he didn't manage it, himself. No stranger to a spot of " -"violence, you almost feel at home in this new world already." +"jobs. Shame he got himself smoked. No problem; the world's always got a " +"place for someone with your kind of talents." msgstr "" #: lang/json/professions_from_json.py @@ -133910,8 +136740,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough " -"jobs. A shame he didn't manage it, himself. No stranger to a spot of " -"violence, you almost feel at home in this new world already." +"jobs. Shame he got himself smoked. No problem; the world's always got a " +"place for someone with your kind of talents." msgstr "" #: lang/json/professions_from_json.py @@ -133923,10 +136753,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" #: lang/json/professions_from_json.py @@ -133938,10 +136767,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" #: lang/json/professions_from_json.py @@ -133955,7 +136783,7 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left " -"but your tools and expertise." +"except your tools and expertise." msgstr "" #: lang/json/professions_from_json.py @@ -133969,7 +136797,7 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left " -"but your tools and expertise." +"except your tools and expertise." msgstr "" #: lang/json/professions_from_json.py @@ -133981,9 +136809,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" #: lang/json/professions_from_json.py @@ -133995,9 +136823,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" #: lang/json/professions_from_json.py @@ -134009,10 +136837,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only " +"difference is all the monsters that suddenly want you dead. Your equipment " +"is basic, but versatile… except that your canteen's run out!" msgstr "" #: lang/json/professions_from_json.py @@ -134024,10 +136851,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only " +"difference is all the monsters that suddenly want you dead. Your equipment " +"is basic, but versatile… except that your canteen's run out!" msgstr "" #: lang/json/professions_from_json.py @@ -134039,9 +136865,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in " -"hand. Now, you're down to a single pack, and you hope you find more soon. " -"You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a " +"smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" #: lang/json/professions_from_json.py @@ -134053,9 +136879,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in " -"hand. Now, you're down to a single pack, and you hope you find more soon. " -"You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a " +"smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" #: lang/json/professions_from_json.py @@ -134069,7 +136895,7 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" #: lang/json/professions_from_json.py @@ -134083,7 +136909,7 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" #: lang/json/professions_from_json.py @@ -134095,10 +136921,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't " +"mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" #: lang/json/professions_from_json.py @@ -134110,10 +136936,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't " +"mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" #: lang/json/professions_from_json.py @@ -134125,9 +136951,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and " -"the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" #: lang/json/professions_from_json.py @@ -134139,9 +136965,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and " -"the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" #: lang/json/professions_from_json.py @@ -134154,8 +136980,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" #: lang/json/professions_from_json.py @@ -134168,8 +136994,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" #: lang/json/professions_from_json.py @@ -134181,8 +137007,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -134194,8 +137021,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -134208,8 +137036,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your " +"loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -134222,8 +137051,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your " +"loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -134235,8 +137065,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" #: lang/json/professions_from_json.py @@ -134248,8 +137078,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" #: lang/json/professions_from_json.py @@ -134261,10 +137091,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come " -"to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -134276,10 +137106,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come " -"to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -134291,9 +137121,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You " -"need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" #: lang/json/professions_from_json.py @@ -134305,9 +137135,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You " -"need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" #: lang/json/professions_from_json.py @@ -134321,8 +137151,8 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your " -"current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" #: lang/json/professions_from_json.py @@ -134336,8 +137166,8 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your " -"current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" #: lang/json/professions_from_json.py @@ -134349,10 +137179,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" #: lang/json/professions_from_json.py @@ -134364,10 +137194,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" #: lang/json/professions_from_json.py @@ -134380,7 +137210,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting " -"the innocent with a single, well placed bullet. Now survival itself is on " +"the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" @@ -134395,7 +137225,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting " -"the innocent with a single, well placed bullet. Now survival itself is on " +"the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" @@ -134409,10 +137239,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour " -"the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing " -"that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" #: lang/json/professions_from_json.py @@ -134424,10 +137254,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour " -"the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing " -"that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" #: lang/json/professions_from_json.py @@ -134439,9 +137269,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar - " "and get it, too!" msgstr "" @@ -134454,9 +137283,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar - " "and get it, too!" msgstr "" @@ -134469,10 +137297,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to " -"the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" #: lang/json/professions_from_json.py @@ -134484,10 +137312,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to " -"the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" #: lang/json/professions_from_json.py @@ -134499,10 +137327,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to " -"the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure " +"to bring it along." msgstr "" #: lang/json/professions_from_json.py @@ -134514,10 +137342,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to " -"the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure " +"to bring it along." msgstr "" #: lang/json/professions_from_json.py @@ -134529,10 +137357,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to " -"the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" #: lang/json/professions_from_json.py @@ -134544,10 +137372,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to " -"the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" #: lang/json/professions_from_json.py @@ -134559,10 +137387,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to " -"the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" #: lang/json/professions_from_json.py @@ -134574,10 +137402,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to " -"the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" #: lang/json/professions_from_json.py @@ -134589,10 +137417,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the " -"way out, sufficient to help it rebuild?" +"way out, sufficient to help rebuild?" msgstr "" #: lang/json/professions_from_json.py @@ -134604,10 +137432,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the " -"way out, sufficient to help it rebuild?" +"way out, sufficient to help rebuild?" msgstr "" #: lang/json/professions_from_json.py @@ -134619,9 +137447,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -134633,9 +137460,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -134673,9 +137499,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" #: lang/json/professions_from_json.py @@ -134687,9 +137514,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" #: lang/json/professions_from_json.py @@ -134701,8 +137529,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the " -"meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable " +"and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" #: lang/json/professions_from_json.py @@ -134714,8 +137543,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the " -"meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable " +"and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" #: lang/json/professions_from_json.py @@ -134727,10 +137557,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" #: lang/json/professions_from_json.py @@ -134742,10 +137570,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" #: lang/json/professions_from_json.py @@ -134757,9 +137583,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you " -"skills in an area that seem, on the face of it, distinctly less-than-useful " -"when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" #: lang/json/professions_from_json.py @@ -134771,9 +137598,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you " -"skills in an area that seem, on the face of it, distinctly less-than-useful " -"when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" #: lang/json/professions_from_json.py @@ -134785,9 +137613,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much " -"higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" #: lang/json/professions_from_json.py @@ -134799,9 +137628,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much " -"higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" #: lang/json/professions_from_json.py @@ -134813,9 +137643,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You " -"barely managed to escape with some soap and the most massively useful thing " -"ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" #: lang/json/professions_from_json.py @@ -134827,9 +137657,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You " -"barely managed to escape with some soap and the most massively useful thing " -"ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" #: lang/json/professions_from_json.py @@ -134841,8 +137671,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the " -"rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" #: lang/json/professions_from_json.py @@ -134854,8 +137684,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the " -"rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" #: lang/json/professions_from_json.py @@ -134867,8 +137697,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" #: lang/json/professions_from_json.py @@ -134880,8 +137711,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" #: lang/json/professions_from_json.py @@ -134893,9 +137725,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" #: lang/json/professions_from_json.py @@ -134907,9 +137739,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" #: lang/json/professions_from_json.py @@ -134921,7 +137753,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." @@ -134936,7 +137768,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." @@ -134951,8 +137783,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" #: lang/json/professions_from_json.py @@ -134964,8 +137796,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" #: lang/json/professions_from_json.py @@ -134978,7 +137810,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" #: lang/json/professions_from_json.py @@ -134991,7 +137824,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" #: lang/json/professions_from_json.py @@ -135004,8 +137838,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for " +"a field test." msgstr "" #: lang/json/professions_from_json.py @@ -135018,8 +137852,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for " +"a field test." msgstr "" #: lang/json/professions_from_json.py @@ -135033,7 +137867,8 @@ msgctxt "prof_desc_male" msgid "" "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." +"human now, but that might prove to be an advantage against the horrors that " +"await." msgstr "" #: lang/json/professions_from_json.py @@ -135047,7 +137882,8 @@ msgctxt "prof_desc_female" msgid "" "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." +"human now, but that might prove to be an advantage against the horrors that " +"await." msgstr "" #: lang/json/professions_from_json.py @@ -135089,9 +137925,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" #: lang/json/professions_from_json.py @@ -135103,9 +137939,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" #: lang/json/professions_from_json.py @@ -135117,9 +137953,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now " +"there's plenty to run from - this is your kind of game." msgstr "" #: lang/json/professions_from_json.py @@ -135131,9 +137967,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now " +"there's plenty to run from - this is your kind of game." msgstr "" #: lang/json/professions_from_json.py @@ -135174,8 +138010,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty " +"sure this counts." msgstr "" #: lang/json/professions_from_json.py @@ -135188,8 +138024,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty " +"sure this counts." msgstr "" #: lang/json/professions_from_json.py @@ -135201,9 +138037,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically " +"augmented mind." msgstr "" #: lang/json/professions_from_json.py @@ -135215,9 +138051,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically " +"augmented mind." msgstr "" #: lang/json/professions_from_json.py @@ -135229,9 +138065,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" #: lang/json/professions_from_json.py @@ -135243,9 +138079,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" #: lang/json/professions_from_json.py @@ -135257,9 +138093,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " -"targets from implausible distances, even after weeks of total isolation in " -"enemy territory." +"A top-secret military program sought to convert you into the perfect " +"sniper. Your bionics, equipment, and extensive field training enable you to " +"drop targets from implausible distances, even after weeks of total isolation " +"in enemy territory." msgstr "" #: lang/json/professions_from_json.py @@ -135271,9 +138108,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " -"targets from implausible distances, even after weeks of total isolation in " -"enemy territory." +"A top-secret military program sought to convert you into the perfect " +"sniper. Your bionics, equipment, and extensive field training enable you to " +"drop targets from implausible distances, even after weeks of total isolation " +"in enemy territory." msgstr "" #: lang/json/professions_from_json.py @@ -135285,8 +138123,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a " "hacking module." msgstr "" @@ -135300,8 +138138,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a " "hacking module." msgstr "" @@ -135317,7 +138155,7 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic " "sleeper agent capable of silently engaging your target while maintaining an " -"innocuous appearance." +"innocuous appearance. Your handler cut all contact a week ago." msgstr "" #: lang/json/professions_from_json.py @@ -135331,7 +138169,7 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic " "sleeper agent capable of silently engaging your target while maintaining an " -"innocuous appearance." +"innocuous appearance. Your handler cut all contact a week ago." msgstr "" #: lang/json/professions_from_json.py @@ -135343,11 +138181,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in \"basic" -"\" augments and the best gear on the market to better aid you in your job. " -"After enjoying some period of freedom to do as you wanted, now you find " -"yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you " +"came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -135359,11 +138196,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in \"basic" -"\" augments and the best gear on the market to better aid you in your job. " -"After enjoying some period of freedom to do as you wanted, now you find " -"yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you " +"came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -135375,9 +138211,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" #: lang/json/professions_from_json.py @@ -135389,9 +138225,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" #: lang/json/professions_from_json.py @@ -135404,10 +138240,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" #: lang/json/professions_from_json.py @@ -135420,10 +138253,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" #: lang/json/professions_from_json.py @@ -135462,8 +138292,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" #: lang/json/professions_from_json.py @@ -135476,8 +138306,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" #: lang/json/professions_from_json.py @@ -135489,9 +138319,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of " +"some of the equipment you were carrying." msgstr "" #: lang/json/professions_from_json.py @@ -135503,9 +138333,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of " +"some of the equipment you were carrying." msgstr "" #: lang/json/professions_from_json.py @@ -135519,7 +138349,7 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" #: lang/json/professions_from_json.py @@ -135533,7 +138363,7 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" #: lang/json/professions_from_json.py @@ -135545,9 +138375,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" @@ -135560,9 +138390,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" @@ -135603,9 +138433,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" #: lang/json/professions_from_json.py @@ -135617,9 +138448,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" #: lang/json/professions_from_json.py @@ -135657,8 +138489,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system " -"is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now " +"that the system is dead, it's time to party among the bones of the world!" msgstr "" #: lang/json/professions_from_json.py @@ -135670,8 +138502,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system " -"is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now " +"that the system is dead, it's time to party among the bones of the world!" msgstr "" #: lang/json/professions_from_json.py @@ -135683,10 +138515,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of " -"the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" #: lang/json/professions_from_json.py @@ -135698,10 +138530,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of " -"the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" #: lang/json/professions_from_json.py @@ -135713,7 +138545,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -135726,7 +138558,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -135739,8 +138571,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" #: lang/json/professions_from_json.py @@ -135752,8 +138584,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" #: lang/json/professions_from_json.py @@ -135765,8 +138597,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -135778,8 +138611,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -135791,9 +138625,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else " -"is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" #: lang/json/professions_from_json.py @@ -135805,9 +138639,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else " -"is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" #: lang/json/professions_from_json.py @@ -135821,7 +138655,7 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you " -"were too soft for prison, except right now they're dead and you're not." +"were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -135835,7 +138669,7 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you " -"were too soft for prison, except right now they're dead and you're not." +"were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -135875,8 +138709,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught " +"you and threw you in prison on trumped-up charges to silence you. Clearly, " +"they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -135888,8 +138723,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught " +"you and threw you in prison on trumped-up charges to silence you. Clearly, " +"they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -135929,8 +138765,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" #: lang/json/professions_from_json.py @@ -135942,8 +138779,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" #: lang/json/professions_from_json.py @@ -135955,10 +138793,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " -"bionic weapon, your services as a mercenary available to the highest " -"bidder. Now that the world has ended, those bionic enhancements may spell " -"the difference between life and death." +"Through a series of painful and expensive surgeries, you became a walking " +"bionic weapon, your services as a mercenary available to the highest bidder." msgstr "" #: lang/json/professions_from_json.py @@ -135970,10 +138806,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " -"bionic weapon, your services as a mercenary available to the highest " -"bidder. Now that the world has ended, those bionic enhancements may spell " -"the difference between life and death." +"Through a series of painful and expensive surgeries, you became a walking " +"bionic weapon, your services as a mercenary available to the highest bidder." msgstr "" #: lang/json/professions_from_json.py @@ -135987,8 +138821,8 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand " -"CBMs. The world has moved on but your posthuman hunger still cries out to " -"be fed; where will you get your bionic fix now?" +"CBMs. Your posthuman hunger still cries out to be fed; where will you get " +"your bionic fix now?" msgstr "" #: lang/json/professions_from_json.py @@ -136002,8 +138836,8 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand " -"CBMs. The world has moved on but your posthuman hunger still cries out to " -"be fed; where will you get your bionic fix now?" +"CBMs. Your posthuman hunger still cries out to be fed; where will you get " +"your bionic fix now?" msgstr "" #: lang/json/professions_from_json.py @@ -136016,9 +138850,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were " -"forced to hide in the shadows, you find in this new desolation a world where " -"even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" #: lang/json/professions_from_json.py @@ -136031,9 +138864,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were " -"forced to hide in the shadows, you find in this new desolation a world where " -"even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" #: lang/json/professions_from_json.py @@ -136045,8 +138877,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat " +"your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" #: lang/json/professions_from_json.py @@ -136058,8 +138891,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat " +"your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" #: lang/json/professions_from_json.py @@ -136071,10 +138905,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they " -"are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" #: lang/json/professions_from_json.py @@ -136086,10 +138919,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they " -"are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" #: lang/json/professions_from_json.py @@ -136130,8 +138962,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they " +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they " "come to eat your brains." msgstr "" @@ -136145,8 +138977,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they " +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they " "come to eat your brains." msgstr "" @@ -136214,9 +139046,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" #: lang/json/professions_from_json.py @@ -136229,9 +139061,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" #: lang/json/professions_from_json.py @@ -136243,8 +139075,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world " -"ended. And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local " +"dojo. You'll be great at it, you're sure of it." msgstr "" #: lang/json/professions_from_json.py @@ -136256,8 +139088,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world " -"ended. And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local " +"dojo. You'll be great at it, you're sure of it." msgstr "" #: lang/json/professions_from_json.py @@ -136321,8 +139153,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" #: lang/json/professions_from_json.py @@ -136334,8 +139166,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" #: lang/json/professions_from_json.py @@ -136348,9 +139180,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -136363,9 +139195,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -136377,9 +139209,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" #: lang/json/professions_from_json.py @@ -136391,9 +139223,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" #: lang/json/professions_from_json.py @@ -136405,9 +139237,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle " +"is still in working order." msgstr "" #: lang/json/professions_from_json.py @@ -136419,9 +139251,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle " +"is still in working order." msgstr "" #: lang/json/professions_from_json.py @@ -136433,10 +139265,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you " -"race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" #: lang/json/professions_from_json.py @@ -136448,10 +139280,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you " -"race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" #: lang/json/professions_from_json.py @@ -136463,9 +139295,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty " +"hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -136477,9 +139309,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty " +"hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -136491,8 +139323,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all " "communications ceased and you found yourself alone amongst the dead." msgstr "" @@ -136505,8 +139337,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all " "communications ceased and you found yourself alone amongst the dead." msgstr "" @@ -136520,8 +139352,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself " -"on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +"amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -136534,8 +139366,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself " -"on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +"amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -136547,8 +139379,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is " "to survive." msgstr "" @@ -136562,8 +139394,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is " "to survive." msgstr "" @@ -136577,9 +139409,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills, " +"but you do have your trusty tazer, baton, and pocket knife." msgstr "" #: lang/json/professions_from_json.py @@ -136591,9 +139423,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills, " +"but you do have your trusty tazer, baton, and pocket knife." msgstr "" #: lang/json/professions_from_json.py @@ -136605,9 +139437,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of self-" -"imposed exile in the wilderness. The world as they knew it might have ended " -"for your forsaken species, but you can hardly tell the difference." +"Over long years of self-imposed exile in the wilderness, you have come to an " +"understanding with Mother Nature. The world as they knew it might have " +"ended for your forsaken species, but you can hardly tell the difference." msgstr "" #: lang/json/professions_from_json.py @@ -136619,9 +139451,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of self-" -"imposed exile in the wilderness. The world as they knew it might have ended " -"for your forsaken species, but you can hardly tell the difference." +"Over long years of self-imposed exile in the wilderness, you have come to an " +"understanding with Mother Nature. The world as they knew it might have " +"ended for your forsaken species, but you can hardly tell the difference." msgstr "" #: lang/json/professions_from_json.py @@ -136633,10 +139465,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on " -"what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your " +"catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" #: lang/json/professions_from_json.py @@ -136648,10 +139480,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on " -"what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your " +"catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" #: lang/json/professions_from_json.py @@ -136718,8 +139550,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" #: lang/json/professions_from_json.py @@ -136732,8 +139564,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" #: lang/json/professions_from_json.py @@ -136745,8 +139577,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than " +"off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" #: lang/json/professions_from_json.py @@ -136758,8 +139591,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than " +"off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" #: lang/json/professions_from_json.py @@ -136771,10 +139605,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing grown-" +"ups to tell you what to do is the only reason you're alive. Man, you really " +"should've played hooky today." msgstr "" #: lang/json/professions_from_json.py @@ -136786,10 +139620,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing grown-" +"ups to tell you what to do is the only reason you're alive. Man, you really " +"should've played hooky today." msgstr "" #: lang/json/professions_from_json.py @@ -136832,9 +139666,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they " -"had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +"had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" #: lang/json/professions_from_json.py @@ -136847,9 +139681,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they " -"had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +"had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" #: lang/json/professions_from_json.py @@ -136861,8 +139695,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out " +"of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" #: lang/json/professions_from_json.py @@ -136874,8 +139709,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out " +"of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" #: lang/json/professions_from_json.py @@ -136887,10 +139723,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" #: lang/json/professions_from_json.py @@ -136902,10 +139737,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" #: lang/json/professions_from_json.py @@ -136918,8 +139752,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" #: lang/json/professions_from_json.py @@ -136932,8 +139766,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" #: lang/json/professions_from_json.py @@ -136945,9 +139779,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" #: lang/json/professions_from_json.py @@ -136959,9 +139793,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" #: lang/json/professions_from_json.py @@ -136973,10 +139807,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" #: lang/json/professions_from_json.py @@ -136988,10 +139821,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" #: lang/json/professions_from_json.py @@ -137003,8 +139835,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" #: lang/json/professions_from_json.py @@ -137016,8 +139849,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" #: lang/json/professions_from_json.py @@ -137029,10 +139863,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" #: lang/json/professions_from_json.py @@ -137044,10 +139877,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" #: lang/json/professions_from_json.py @@ -137060,7 +139892,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of " -"gas, and you're on your last pair of batteries for your mining helmet..." +"gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" #: lang/json/professions_from_json.py @@ -137073,7 +139905,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of " -"gas, and you're on your last pair of batteries for your mining helmet..." +"gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" #: lang/json/professions_from_json.py @@ -137085,8 +139917,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -137098,8 +139931,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -137139,8 +139973,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" #: lang/json/professions_from_json.py @@ -137152,8 +139987,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" #: lang/json/professions_from_json.py @@ -137165,8 +140001,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" #: lang/json/professions_from_json.py @@ -137178,8 +140015,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" #: lang/json/professions_from_json.py @@ -137192,9 +140030,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" #: lang/json/professions_from_json.py @@ -137207,9 +140045,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" #: lang/json/professions_from_json.py @@ -137221,10 +140059,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason, " +"when you had two no-shows and the other two tried to eat you, you ditched. " +"Maybe you can find some new players in the ruins of the world." msgstr "" #: lang/json/professions_from_json.py @@ -137236,10 +140074,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason, " +"when you had two no-shows and the other two tried to eat you, you ditched. " +"Maybe you can find some new players in the ruins of the world." msgstr "" #: lang/json/professions_from_json.py @@ -137252,10 +140090,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps " -"you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" #: lang/json/professions_from_json.py @@ -137268,10 +140105,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps " -"you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" #: lang/json/professions_from_json.py @@ -137283,8 +140119,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some " +"reason, none of your coworkers bothered showing up for work today." msgstr "" #: lang/json/professions_from_json.py @@ -137296,8 +140132,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some " +"reason, none of your coworkers bothered showing up for work today." msgstr "" #: lang/json/professions_from_json.py @@ -137309,8 +140145,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" #: lang/json/professions_from_json.py @@ -137322,8 +140158,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" #: lang/json/professions_from_json.py @@ -137363,11 +140199,10 @@ msgstr "" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 @@ -137379,41 +140214,38 @@ msgstr "" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "Competetive Fencer" +msgid "Competitive Fencer" msgstr "" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your " +"latest tournament was cut short when zombies invaded the piste. The referee " +"was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" +msgid "Competitive Fencer" msgstr "" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your " +"latest tournament was cut short when zombies invaded the piste. The referee " +"was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py @@ -137453,8 +140285,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways " +"things are going, this isn't going to be just another day at the ranch." msgstr "" #: lang/json/professions_from_json.py @@ -137466,8 +140298,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways " +"things are going, this isn't going to be just another day at the ranch." msgstr "" #: lang/json/professions_from_json.py @@ -137479,9 +140311,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" #: lang/json/professions_from_json.py @@ -137493,9 +140325,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" #: lang/json/professions_from_json.py @@ -137507,9 +140339,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't " -"able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" #: lang/json/professions_from_json.py @@ -137521,9 +140353,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't " -"able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" #: lang/json/professions_from_json.py @@ -137536,7 +140368,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -137549,7 +140381,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -137563,7 +140395,8 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists " "with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -137577,7 +140410,8 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists " "with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -137589,10 +140423,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in " -"the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -137604,10 +140438,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in " -"the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -137952,6 +140786,40 @@ msgid "" "seems that your combat skills might come useful once again." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it " +"blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it " +"blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" @@ -143756,6 +146624,7 @@ msgstr "" #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. #: lang/json/scenario_from_json.py @@ -143887,6 +146756,32 @@ msgid "" "didn't get proper medical care, and now the wound has started turning green." msgstr "" +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -144577,19 +147472,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -144599,7 +147494,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -144609,7 +147504,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" @@ -145065,9 +147960,7 @@ msgstr "" #. ~ Description for {'str': 'cooking'} #: lang/json/skill_from_json.py msgid "" -"Your skill in combining food ingredients to make other, tastier food items. " -"It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." +"Your skill in combining food ingredients to make other, tastier food items." msgstr "" #: lang/json/skill_from_json.py src/crafting_gui.cpp @@ -145287,6 +148180,17 @@ msgid "" "chance and decreases time required to successfully pick the lock." msgstr "" +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" + #: lang/json/skill_from_json.py msgid "weapon" msgstr "" @@ -146840,6 +149744,12 @@ msgid "" "Don't. This thorazine seriously clouds your mind. You need to stay sharp." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde " +"of undead!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "" @@ -146904,6 +149814,14 @@ msgstr "" msgid "Wish I could, ." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "" @@ -146936,6 +149854,10 @@ msgstr "" msgid "Not exactly the settlin' type." msgstr "" +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "" + #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -147249,6 +150171,10 @@ msgid "" "ending, just for a while?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "" + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "" @@ -147789,6 +150715,14 @@ msgstr "" msgid "Hold up a second, will ya?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "" @@ -150230,6 +153164,117 @@ msgstr "" msgid "survivor" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr "" @@ -156473,6 +159518,42 @@ msgid "" "Michael Baker" msgstr "" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "" @@ -157257,7 +160338,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" msgstr "" #: lang/json/snippet_from_json.py @@ -159162,6 +162244,53 @@ msgstr "" msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you " +"think they eat cat food?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big " +"lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind " +"of big lizard down there. Probably not a good idea to check." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special " @@ -159169,6 +162298,14 @@ msgid "" "breakthroughs." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -159206,7 +162343,9 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" msgstr "" #: lang/json/snippet_from_json.py @@ -159219,6 +162358,35 @@ msgid "" "butterfly?\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "A circle of esoteric symbols etched into the metal wall, they draw your eye " @@ -162482,16 +165650,17 @@ msgid "Yeah, alright." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." +msgid "An acolyte should not take on too many songs at once." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." +msgid "That is all for now." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." +msgid "" +"The song is… quiet for now. Perhaps with time, more notes will be etched in " +"the bones of this world." msgstr "" #: lang/json/talk_topic_from_json.py @@ -162507,17 +165676,16 @@ msgid "There are bones to etch, songs to sing. Wish to join me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "An acolyte should not take on too many songs at once." +msgid "There is an additional song you could take on, if you'd like." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That is all for now." +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The song is… quiet for now. Perhaps with time, more notes will be etched in " -"the bones of this world." +msgid "A song may yet be sung by you, should you wish to." msgstr "" #: lang/json/talk_topic_from_json.py @@ -163534,8 +166702,9 @@ msgstr "" #: src/iuse.cpp #: src/iuse.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp -#: src/monexamine.cpp -#: src/npc.cpp src/pickup.cpp src/player.cpp +#: src/iuse_actor.cpp src/monexamine.cpp +#: src/monexamine.cpp src/npc.cpp +#: src/pickup.cpp src/player.cpp #: src/player.cpp #: src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." @@ -163917,11 +167086,11 @@ msgid "Show me what needs to be done at the camp." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm not doing much currently." +msgid "I'm currently ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm currently ." +msgid "I'm not doing much currently." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164007,12 +167176,12 @@ msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" +msgid "" +"Well, it's the time of day for a quick break surely! How are you holding up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, it's the time of day for a quick break surely! How are you holding up?" +msgid "Man it's dark out isn't it? what's up?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -164128,11 +167297,11 @@ msgid "&Put hands up." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." +msgid "*drops his weapon." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." +msgid "*drops_her_weapon." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164164,11 +167333,11 @@ msgid "I don't care." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" +msgid "I don't have any more jobs for you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" +msgid "I don't have any jobs for you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164180,11 +167349,11 @@ msgid "I have other jobs for you. Want to hear about them?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." +msgid "I just have one job for you. Want to hear about it?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I don't have any jobs for you." +msgid "I have another job for you. Want to hear about it?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -170087,13 +173256,13 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense " +"Sir, I don't know how the hell you got down here but if you have any sense " "you'll get out while you can." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " +"Ma'am, I don't know how the hell you got down here but if you have any sense " "you'll get out while you can." msgstr "" @@ -170495,10 +173664,6 @@ msgstr "" msgid "All right! Let's get going." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Have I told you about cardboard, friend? Do you have any?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "How's things with you? My cardboard collection is getting quite impressive." @@ -170508,6 +173673,10 @@ msgstr "" msgid "We've done it! We've solved the list!" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Have I told you about cardboard, friend? Do you have any?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "About that shopping list of yours…" msgstr "" @@ -174021,11 +177190,11 @@ msgid "Just on watch, move along." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." +msgid "Rough out there, isn't it?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Rough out there, isn't it?" +msgid "Ma'am, you really shouldn't be traveling out there." msgstr "" #: lang/json/talk_topic_from_json.py @@ -175821,6 +178990,204 @@ msgstr "" msgid "This is not reassuring." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more " +"fearsome enforcer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided " +"to use tactical nukes and buy time for the retreat." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that " +"were happening in the city, they were beneath me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security " +"notices piled up about routes through the city to avoid. Finally, one day I " +"came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only " +"chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But they built me with the ability to survive a world beyond imagining." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked " +"for the government or a corporation." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come " +"back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons " +"afraid of mutants." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -177531,7 +180898,7 @@ msgid " hack at %s with a vicious strike" msgstr "" #: lang/json/technique_from_json.py -msgid "Deathblow" +msgid "Mordhau" msgstr "" #: lang/json/technique_from_json.py @@ -178692,6 +182059,109 @@ msgstr "" msgid " probes their weapon at %s " msgstr "" +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a spin attack against %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleashes a spin attack against %s and those nearby" +msgstr "" + #: lang/json/technique_from_json.py msgid "Ausstoß" msgstr "" @@ -181406,19 +184876,6 @@ msgid "" "press them into basic shapes, ready for further crafting." msgstr "" -#: lang/json/terrain_from_json.py -msgid "gasoline pump" -msgstr "" - -#. ~ Description for gasoline pump -#: lang/json/terrain_from_json.py -msgid "" -"Precious GASOLINE. The former world bowed to their petroleum god as it led " -"them to their ruin. There's plenty left over to fuel your inner road " -"warrior. If this gas dispenser doesn't give up the goods for free, you may " -"have to pay at a nearby terminal." -msgstr "" - #: lang/json/terrain_from_json.py msgid "fuel tank" msgstr "" @@ -181437,6 +184894,19 @@ msgstr "" msgid "A broken tank which was filled with gasoline." msgstr "" +#: lang/json/terrain_from_json.py +msgid "gasoline pump" +msgstr "" + +#. ~ Description for gasoline pump +#: lang/json/terrain_from_json.py +msgid "" +"Precious GASOLINE. The former world bowed to their petroleum god as it led " +"them to their ruin. There's plenty left over to fuel your inner road " +"warrior. If this gas dispenser doesn't give up the goods for free, you may " +"have to pay at a nearby terminal." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "" @@ -181448,6 +184918,16 @@ msgid "" "the liquid gold." msgstr "" +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "" + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "" @@ -184338,6 +187818,10 @@ msgstr "" msgid "self jacking" msgstr "" +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "chiseling" msgstr "" @@ -185373,6 +188857,12 @@ msgstr "" msgid "A combustion engine. Burns fuel from a tank in the vehicle." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "" +"A combustion engine for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " @@ -185667,6 +189157,10 @@ msgid "" "speed. Extremely fragile and cannot be armored." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -185863,11 +189357,11 @@ msgid "mounted A7 laser rifle" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" +msgid "mounted M249" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "mounted M249" +msgid "mounted M249S" msgstr "" #: lang/json/vehicle_part_from_json.py @@ -185894,6 +189388,10 @@ msgstr "" msgid "mounted M60" msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" msgstr "" @@ -187041,6 +190539,13 @@ msgstr "" msgid "A wooden wheel." msgstr "" +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "" @@ -187053,13 +190558,6 @@ msgid "" "makes it fragile." msgstr "" -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "crude plating" msgstr "" @@ -187071,10 +190569,6 @@ msgid "" "protective as proper armor, but it'll do if there's nothing else available." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -187534,11 +191028,20 @@ msgstr "" msgid "%s/%s " msgstr "" +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "" + #: src/achievement.cpp msgid "" "\n" @@ -187586,10 +191089,6 @@ msgstr "" msgid "Debug" msgstr "" -#: src/action.cpp -msgid "Back" -msgstr "" - #: src/action.cpp msgid "Actions" msgstr "" @@ -187653,7 +191152,7 @@ msgstr "" msgid "You cannot hack this." msgstr "" -#: src/activity_actor.cpp src/activity_handlers.cpp +#: src/activity_actor.cpp #: src/computer_session.cpp #: src/computer_session.cpp src/iuse.cpp #: src/map.cpp @@ -187684,10 +191183,118 @@ msgstr "" msgid "The nearby doors unlock." msgstr "" +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "" + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "" + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "" + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "" +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "" + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "" + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "" + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "" + +#: src/activity_actor.cpp src/game.cpp +#: src/game.cpp src/iuse.cpp +#: src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp +#: src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "" + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "" + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "" + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "" + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "" + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "" + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "" + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "" + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -187755,8 +191362,8 @@ msgstr "" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." msgstr "" #: src/activity_handlers.cpp @@ -188027,52 +191634,10 @@ msgstr "" msgid "The %s runs out of batteries." msgstr "" -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "" - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "" - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "" - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "" - #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "" -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "" - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie " -"won't be able to attack when it reanimates." -msgstr "" - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "" - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "" - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -188224,34 +191789,6 @@ msgstr "" msgid "With a satisfying click, the lock on the safe opens!" msgstr "" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "" - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "" - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "" - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "" @@ -188383,6 +191920,10 @@ msgstr "" msgid "You finish fishing" msgstr "" +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "" @@ -188409,26 +191950,6 @@ msgstr "" msgid "%s finishes chatting with you." msgstr "" -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "" - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "" @@ -188517,10 +192038,6 @@ msgid "" "actually stitching 's wounds." msgstr "" -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "" - #: src/activity_handlers.cpp msgid "" "The Autodoc returns to its resting position after successfully performing " @@ -189296,10 +192813,6 @@ msgstr "" msgid "South East" msgstr "" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "" @@ -189620,6 +193133,10 @@ msgstr "" msgid "an aura around you" msgstr "" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "" + #: src/armor_layers.cpp #, c-format msgid "" @@ -189769,16 +193286,6 @@ msgstr "" msgid "It can occupy the same space as other things." msgstr "" -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "" - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "" - #: src/armor_layers.cpp msgid "Sort Armor" msgstr "" @@ -189823,6 +193330,16 @@ msgstr "" msgid "Encumbrance" msgstr "" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "" + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "" + #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" @@ -190761,10 +194278,6 @@ msgstr "" msgid "Your eyes won't focus without reading glasses." msgstr "" -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "" @@ -191094,6 +194607,11 @@ msgstr "" msgid "You retched, but your stomach is empty." msgstr "" +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "" @@ -191172,54 +194690,6 @@ msgstr "" msgid "Are you sure you want to raise %s? %d points available." msgstr "" -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "" - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "" - -#: src/avatar.cpp -msgid "You start walking." -msgstr "" - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "" - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "" - -#: src/avatar.cpp -msgid "You start running." -msgstr "" - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "" - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "" - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "" - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "" - -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "" - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "" - #. ~ %1$s: weapon name #. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp @@ -191889,14 +195359,6 @@ msgstr "" msgid "There is no suitable corpse on this tile." msgstr "" -#: src/bionics.cpp src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "" - -#: src/bionics.cpp src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "" - #: src/bionics.cpp msgid "You unleash a powerful shockwave!" msgstr "" @@ -192102,10 +195564,6 @@ msgstr "" msgid "Your %s powers down." msgstr "" -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "" - #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." @@ -192176,6 +195634,14 @@ msgstr "" msgid "The %s screws up the operation." msgstr "" +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "" + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "" + #: src/bionics.cpp msgid "You prep to begin surgery." msgstr "" @@ -192909,6 +196375,46 @@ msgstr "" msgid "quart" msgstr "" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "" + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -193441,11 +196947,7 @@ msgid "Slaked" msgstr "" #: src/character.cpp -msgid "Engorged" -msgstr "" - -#: src/character.cpp -msgid "Sated" +msgid "Satisfied" msgstr "" #: src/character.cpp @@ -193457,11 +196959,11 @@ msgid "Very Hungry" msgstr "" #: src/character.cpp -msgid "Starving!" +msgid "Near starving" msgstr "" #: src/character.cpp -msgid "Near starving" +msgid "Starving!" msgstr "" #: src/character.cpp @@ -193469,7 +196971,7 @@ msgid "Famished" msgstr "" #: src/character.cpp -msgid "Peckish" +msgid "ERROR!" msgstr "" #: src/character.cpp src/npctalk.cpp @@ -194337,7 +197839,8 @@ msgstr "" msgid "You need a hammering tool to crush up frozen liquids!" msgstr "" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp +#: src/npc.cpp msgid "Wielding: " msgstr "" @@ -194349,11 +197852,6 @@ msgstr "" msgid "Traits: " msgstr "" -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." @@ -195516,7 +199014,6 @@ msgstr "" #: src/iuse.cpp #: src/iuse.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp -#: src/iuse_actor.cpp src/player.cpp msgid "You can't do that while underwater." msgstr "" @@ -195528,7 +199025,7 @@ msgstr "" msgid "You can't drink it while it's frozen." msgstr "" -#: src/consumption.cpp src/player.cpp +#: src/consumption.cpp #, c-format msgid "You need a %s to consume that!" msgstr "" @@ -195925,6 +199422,15 @@ msgid_plural " load %1$i charges of %2$s in their %3$s." msgstr[0] "" msgstr[1] "" +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "" + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "" + #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" msgstr "" @@ -196015,8 +199521,8 @@ msgstr "" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" msgstr "" #: src/crafting.cpp src/pickup.cpp @@ -198029,7 +201535,7 @@ msgstr "" msgid "trap: %s (%d)" msgstr "" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "" @@ -200683,6 +204189,11 @@ msgstr "" msgid "You completed the achievement \"%s\"." msgstr "" +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "" + #: src/game.cpp src/options.cpp #, c-format msgid "Loading the tileset failed: %s" @@ -201377,14 +204888,6 @@ msgstr "" msgid "Without extra fuel it will burn for between %s to %s." msgstr "" -#: src/game.cpp -#: src/game.cpp src/iuse.cpp -#: src/iuse.cpp -#: src/iuse.cpp src/iuse_actor.cpp -#: src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "" - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "" @@ -201419,6 +204922,44 @@ msgstr "" msgid "Peek where?" msgstr "" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "" + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "" + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "" + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -201460,16 +205001,16 @@ msgstr "" #: src/game.cpp #, c-format -msgid "%s; Impassable" +msgid "Cover: %d%%" msgstr "" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" +msgid "Impassable" msgstr "" #: src/game.cpp -msgid "Lighting: " +#, c-format +msgid "Move cost: %d" msgstr "" #: src/game.cpp @@ -201478,7 +205019,7 @@ msgid "Sign: %s" msgstr "" #: src/game.cpp -msgid "Sign: ???" +msgid "Lighting: " msgstr "" #: src/game.cpp @@ -201493,12 +205034,11 @@ msgstr "" #: src/game.cpp #, c-format -msgid "Coverage: %d%%" +msgid "Unfinished task: %s, %d%% complete" msgstr "" #: src/game.cpp -#, c-format -msgid "Unfinished task: %s, %d%% complete" +msgid "Vehicle: " msgstr "" #: src/game.cpp @@ -202631,7 +206171,39 @@ msgid "Speed %s%d!" msgstr "" #: src/game.cpp -msgid "You slip while climbing and fall down again." +msgid "Your skill in parkour makes it easier to climb." +msgstr "" + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "" + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "" + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "" + +#: src/game.cpp +msgid "You slip while climbing and fall down." msgstr "" #: src/game.cpp @@ -202776,6 +206348,15 @@ msgstr "" msgid "VOLUME" msgstr "" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "" @@ -203009,6 +206590,10 @@ msgstr "" msgid "MOVES" msgstr "" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "" + #: src/game_inventory.cpp msgid "Wield item" msgstr "" @@ -203027,9 +206612,18 @@ msgstr "" msgid "Choose an item to put into your %s" msgstr "" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "" + +#: src/game_inventory.cpp +#, c-format +msgid "Insert items into %s" +msgstr "" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." +msgid "Could not put %s into %s, aborting." msgstr "" #: src/game_inventory.cpp src/iuse.cpp @@ -203311,35 +206905,6 @@ msgstr "" msgid "Special Zombies" msgstr "" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "" - -#: src/gamemode_defense.cpp -#: src/handle_action.cpp -msgid "Food" -msgstr "" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "" @@ -203416,7 +206981,36 @@ msgstr "" msgid "Enemy Selection:" msgstr "" +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "" + #: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/options.cpp msgid "Custom" msgstr "" @@ -203783,6 +207377,10 @@ msgstr "" msgid "This vehicle doesn't look very airworthy." msgstr "" +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "" + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "" @@ -203898,6 +207496,11 @@ msgstr "" msgid "Your %s shatters!" msgstr "" +#: src/handle_action.cpp +#, c-format +msgid "You hurt your hands trying to smash the %s." +msgstr "" + #: src/handle_action.cpp msgid "There's nothing there to smash!" msgstr "" @@ -204168,15 +207771,7 @@ msgid "Change to which movement mode?" msgstr "" #: src/handle_action.cpp -msgid "Run" -msgstr "" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "" - -#: src/handle_action.cpp -msgid "Crouch" +msgid "Cycle move mode" msgstr "" #: src/handle_action.cpp @@ -204671,6 +208266,10 @@ msgid_plural "Withdraw how much? Max: %d cents. (0 to cancel) " msgstr[0] "" msgstr[1] "" +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "" @@ -205837,15 +209436,18 @@ msgid "You're illiterate, and can't read the screen." msgstr "" #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" +#, c-format +msgid "Failure! No %s pumps found!" msgstr "" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" +#, c-format +msgid "Failure! No %s tank found!" msgstr "" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." msgstr "" #: src/iexamine.cpp @@ -205857,7 +209459,8 @@ msgid "What would you like to do?" msgstr "" #: src/iexamine.cpp -msgid "Buy gas." +#, c-format +msgid "Buy %s." msgstr "" #: src/iexamine.cpp @@ -205865,11 +209468,13 @@ msgid "Refund cash." msgstr "" #: src/iexamine.cpp -msgid "Current gas pump: " +#, c-format +msgid "Current %s pump: " msgstr "" #: src/iexamine.cpp -msgid "Choose a gas pump." +#, c-format +msgid "Choose a %s pump." msgstr "" #: src/iexamine.cpp @@ -205877,7 +209482,8 @@ msgid "Your discount: " msgstr "" #: src/iexamine.cpp -msgid "Your price per gasoline unit: " +#, c-format +msgid "Your price per %s unit: " msgstr "" #: src/iexamine.cpp @@ -205885,7 +209491,8 @@ msgid "Hack console." msgstr "" #: src/iexamine.cpp -msgid "Please choose gas pump:" +#, c-format +msgid "Please choose %s pump:" msgstr "" #: src/iexamine.cpp @@ -205898,7 +209505,7 @@ msgstr "" #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" msgstr "" #: src/iexamine.cpp @@ -205952,7 +209559,7 @@ msgid "You jump over an obstacle." msgstr "" #: src/iexamine.cpp -msgid "You can't climb down there" +msgid "You can't climb down there." msgstr "" #: src/iexamine.cpp @@ -205980,6 +209587,14 @@ msgstr "" msgid "You may have problems climbing back up. Climb down?" msgstr "" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "" + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "" @@ -206009,8 +209624,8 @@ msgstr "" #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't " -"opperate. Please move patient to appropriate facility. Exiting." +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." msgstr "" #: src/iexamine.cpp @@ -206601,6 +210216,10 @@ msgstr "" msgid "Mapgen weights" msgstr "" +#: src/init.cpp +msgid "Behaviors" +msgstr "" + #: src/init.cpp msgid "Monster types" msgstr "" @@ -206617,6 +210236,10 @@ msgstr "" msgid "Factions" msgstr "" +#: src/init.cpp +msgid "Move modes" +msgstr "" + #: src/init.cpp msgid "Crafting recipes" msgstr "" @@ -206637,10 +210260,6 @@ msgstr "" msgid "Missions" msgstr "" -#: src/init.cpp -msgid "Behaviors" -msgstr "" - #: src/init.cpp msgid "Harvest lists" msgstr "" @@ -206653,7 +210272,7 @@ msgstr "" msgid "Mutations" msgstr "" -#: src/init.cpp +#: src/init.cpp src/scores_ui.cpp msgid "Achievements" msgstr "" @@ -207163,7 +210782,7 @@ msgstr "" msgid "No items were selected. Use %s to select them." msgstr "" -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "" @@ -207279,14 +210898,19 @@ msgstr "" msgid "Material: %s" msgstr "" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp +#: src/item_pocket.cpp msgid "Volume: " msgstr "" -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "" +#: src/item.cpp +msgid "Length: " +msgstr "" + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -207418,6 +211042,10 @@ msgstr "" msgid "Portions: " msgstr "" +#: src/item.cpp +msgid "Consume time: " +msgstr "" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "" @@ -207663,6 +211291,10 @@ msgstr "" msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr "" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "" @@ -207686,6 +211318,10 @@ msgid_plural "Contains %i casings" msgstr[0] "" msgstr[1] "" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "" + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -207698,6 +211334,14 @@ msgid "" "attacks with it." msgstr "" +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "" + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" + #: src/item.cpp msgid "Dispersion modifier: " msgstr "" @@ -207934,6 +211578,10 @@ msgstr "" msgid "Encumbrance: " msgstr "" +#: src/item.cpp +msgid "Encumbrance when full: " +msgstr "" + #: src/item.cpp msgid "Weight capacity modifier: " msgstr "" @@ -208179,7 +211827,6 @@ msgstr "" msgid "Compatible magazines: " msgstr "" -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -208188,10 +211835,29 @@ msgstr[0] "" msgstr[1] "" #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "" -msgstr[1] "" +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard batteries." +msgstr "" + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "" + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "" #: src/item.cpp #, c-format @@ -208363,46 +212029,32 @@ msgstr "" msgid "Contents of this item:" msgstr "" -#: src/item.cpp -msgid "* This item does not conduct electricity." -msgstr "" - #: src/item.cpp msgid "" -"* This item effectively conducts electricity, as it has no guard." +"* This item is not rigid. Its volume and encumbrance increase " +"with contents." msgstr "" #: src/item.cpp -msgid "* This item conducts electricity." -msgstr "" - -#: src/item.cpp -msgid "* This clothing will give you an allergic reaction." +msgid "" +"* This item is not rigid. Its volume increases with contents." msgstr "" #: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard batteries." +msgid "* This item does not conduct electricity." msgstr "" #: src/item.cpp msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." +"* This item effectively conducts electricity, as it has no guard." msgstr "" #: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." +msgid "* This item conducts electricity." msgstr "" #: src/item.cpp -msgid "* This tool runs on bionic power." +msgid "* This clothing will give you an allergic reaction." msgstr "" #: src/item.cpp @@ -208426,18 +212078,6 @@ msgid "" "detonate it immediately." msgstr "" -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "" - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "" - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "" - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -209082,9 +212722,21 @@ msgstr "" msgid "is not rigid" msgstr "" +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "" + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr "" + #: src/item_contents.cpp #, c-format -msgid "Pockets (%d)" +msgid "%d Pockets with capacity:" +msgstr "" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" msgstr "" #: src/item_factory.cpp @@ -209125,32 +212777,26 @@ msgid "Pocket %d:" msgstr "" #: src/item_pocket.cpp -msgid "This pocket is rigid." +msgid "Maximum item length: " msgstr "" #: src/item_pocket.cpp #, c-format -msgid "Minimum volume of item allowed: %s" +msgid "Minimum item volume: %s" msgstr "" #: src/item_pocket.cpp #, c-format -msgid "Maximum volume of item allowed: %s" +msgid "Maximum item volume: %s" msgstr "" #: src/item_pocket.cpp #, c-format -msgid "Volume Capacity: %s" +msgid "Base moves to remove item: %d" msgstr "" #: src/item_pocket.cpp -#, c-format -msgid "Weight Capacity: %s" -msgstr "" - -#: src/item_pocket.cpp -#, c-format -msgid "Base moves to take an item out: %d" +msgid "This pocket is rigid." msgstr "" #: src/item_pocket.cpp @@ -209180,6 +212826,13 @@ msgid "" "Items in this pocket weigh %.0f%% their original weight." msgstr "" +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "" + #: src/item_pocket.cpp #, c-format msgid "%s pocket %d" @@ -209199,11 +212852,7 @@ msgid "This pocket is sealed." msgstr "" #: src/item_pocket.cpp -msgid "Volume" -msgstr "" - -#: src/item_pocket.cpp src/veh_interact.cpp -msgid "Weight" +msgid " of " msgstr "" #: src/item_pocket.cpp @@ -209214,6 +212863,10 @@ msgstr "" msgid "only mods can go into mod pocket" msgstr "" +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "" + #: src/item_pocket.cpp msgid "holster already contains an item" msgstr "" @@ -209262,6 +212915,10 @@ msgstr "" msgid "item too big" msgstr "" +#: src/item_pocket.cpp +msgid "item is too long" +msgstr "" + #: src/item_pocket.cpp msgid "item is too small" msgstr "" @@ -209470,6 +213127,12 @@ msgstr "" msgid "You no longer need to fear the flu, at least for some time." msgstr "" +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "" + #: src/iuse.cpp msgid "You no longer need to worry about asthma attacks, at least for a while." msgstr "" @@ -210839,7 +214502,7 @@ msgstr "" #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." +msgid "Your %s doesn't have a filter." msgstr "" #: src/iuse.cpp @@ -212983,16 +216646,12 @@ msgstr[1] "" #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" +msgid "You deploy the %s wrong. It is hostile!" msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "" - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." +msgid "You deploy the %s." msgstr "" #: src/iuse_actor.cpp @@ -213017,25 +216676,6 @@ msgstr "" msgid "There is also a certain bionic that helps with this kind of armor." msgstr "" -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "" - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "" - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "" - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "" @@ -213162,10 +216802,6 @@ msgstr "" msgid "At your skill level, it will take around %d minutes to light a fire." msgstr "" -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "" - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -213312,38 +216948,6 @@ msgstr "" msgid "You need at least %d charges to cauterize wounds." msgstr "" -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "" - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "" - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "" - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "" - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "" - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "" - #: src/iuse_actor.cpp msgid "Hsss" msgstr "" @@ -213434,6 +217038,10 @@ msgstr "" msgid "Spells Contained:" msgstr "" +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "" + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -213843,7 +217451,7 @@ msgid "You can't install bionics while mounted." msgstr "" #: src/iuse_actor.cpp -msgid "You can't self-install bionics." +msgid "You can't self-install this CBM." msgstr "" #: src/iuse_actor.cpp @@ -214879,10 +218487,6 @@ msgstr "" msgid "It is SOFTWARE BUG." msgstr "" -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "" - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "" @@ -214902,11 +218506,12 @@ msgid ")." msgstr "" #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if " "they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" #: src/iuse_software_kitten.cpp @@ -214914,7 +218519,13 @@ msgid "Press any key to start." msgstr "" #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "" + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." msgstr "" #: src/iuse_software_kitten.cpp @@ -215274,7 +218885,7 @@ msgid "Loading" msgstr "" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" msgstr "" #: src/magic.cpp @@ -218434,6 +222045,58 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "" +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Forgot the spell %s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Forgot the spell %s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Learned the spell %s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Learned the spell %s." +msgstr "" + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -220234,6 +223897,10 @@ msgstr "" msgid "You feel like you're being watched, it makes you sick." msgstr "" +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -221306,11 +224973,6 @@ msgstr "" msgid "zombie slave" msgstr "" -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "" - #: src/monexamine.cpp msgid "Rename" msgstr "" @@ -221784,10 +225446,6 @@ msgstr "" msgid "Ignoring." msgstr "" -#: src/monster.cpp -msgid "Zombie slave." -msgstr "" - #: src/monster.cpp msgid "Hostile!" msgstr "" @@ -221865,11 +225523,11 @@ msgid "It is nearly dead!" msgstr "" #: src/monster.cpp -msgid " Difficulty " +msgid "Can see to your current location" msgstr "" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" +#: src/monster.cpp +msgid "Can't see to your current location" msgstr "" #: src/monster.cpp @@ -221920,11 +225578,6 @@ msgstr "" msgid "It is %s." msgstr "" -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "" - #: src/monster.cpp msgid "an animal" msgstr "" @@ -222271,6 +225924,13 @@ msgstr "" msgid "Focus trends towards:" msgstr "" +#. ~ This should never occur - this is the message when the character swtiches to +#. ~ an invalid move mode or there's not a message for failing to switch to a move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "" + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -222814,7 +226474,7 @@ msgstr "" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" +msgid "Bash damage bonus: %.1f" msgstr "" #: src/newcharacter.cpp @@ -223203,6 +226863,10 @@ msgstr "" msgid "Various limb wounds" msgstr "" +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "" + #: src/newcharacter.cpp msgid "No starting NPC" msgstr "" @@ -223221,6 +226885,11 @@ msgstr "" msgid "Age:" msgstr "" +#: src/newcharacter.cpp +#: src/player_display.cpp +msgid "Blood type:" +msgstr "" + #: src/newcharacter.cpp #, c-format msgid "" @@ -223363,6 +227032,18 @@ msgstr "" msgid "Enter height in centimeters. Minimum 145, maximum 200" msgstr "" +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "" + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" +msgstr "" + #: src/newcharacter.cpp msgid "Name of template:" msgstr "" @@ -223472,12 +227153,11 @@ msgid "%1$s says something but you can't hear it!" msgstr "" #: src/npc.cpp -msgid "NPC: " +msgid "Aware of your presence" msgstr "" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" +msgid "Unaware of you" msgstr "" #: src/npc.cpp @@ -223853,7 +227533,12 @@ msgstr "" #: src/npcmove.cpp #, c-format -msgid "%s %s" +msgid " %s, %s" +msgstr "" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" msgstr "" #: src/npcmove.cpp @@ -224698,6 +228383,14 @@ msgstr "" msgid "Select a follower" msgstr "" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to " +"get information on an item." +msgstr "" + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -224771,13 +228464,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to " -"quit,\n" -"? to get information on an item." -msgstr "" - #: src/options.cpp msgid "General" msgstr "" @@ -224798,11 +228484,6 @@ msgstr "" msgid "Android" msgstr "" -#: src/options.cpp src/overmap_ui.cpp -#, c-format -msgid "%s" -msgstr "" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -225322,6 +229003,11 @@ msgstr "" msgid "12h" msgstr "" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -225799,7 +229485,7 @@ msgid "Terminal width" msgstr "" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." +msgid "Set the size of the terminal along the X axis." msgstr "" #: src/options.cpp @@ -225807,7 +229493,7 @@ msgid "Terminal height" msgstr "" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." +msgid "Set the size of the terminal along the Y axis." msgstr "" #: src/options.cpp @@ -225927,11 +229613,13 @@ msgid "Choose the tileset you want to use." msgstr "" #: src/options.cpp -msgid "Memory map drawing mode" +msgid "Memory map overlay preset" msgstr "" #: src/options.cpp -msgid "Specified the mode in which the memory map is drawn. Requires restart." +msgid "" +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." msgstr "" #: src/options.cpp @@ -225942,6 +229630,70 @@ msgstr "" msgid "Sepia" msgstr "" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "" + #: src/options.cpp msgid "Pixel minimap" msgstr "" @@ -226146,125 +229898,6 @@ msgstr "" msgid "4x" msgstr "" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "" - -#: src/options.cpp -msgid "Initial stat points" -msgstr "" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "" - -#: src/options.cpp -msgid "Initial trait points" -msgstr "" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "" - -#: src/options.cpp -msgid "Initial skill points" -msgstr "" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "" - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "" - -#: src/options.cpp -msgid "Skill training speed" -msgstr "" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "" - -#: src/options.cpp -msgid "Skill rust" -msgstr "" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at " -"skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in " -"z-level mode, the vision will extend beyond current z-level. Currently very " -"bugged!" -msgstr "" - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "" - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "" - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK " -"Windows users." -msgstr "" - #: src/options.cpp msgid "Core version data" msgstr "" @@ -226536,6 +230169,125 @@ msgstr "" msgid "No freeform" msgstr "" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "" + +#: src/options.cpp +msgid "Initial stat points" +msgstr "" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "" + +#: src/options.cpp +msgid "Initial trait points" +msgstr "" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "" + +#: src/options.cpp +msgid "Initial skill points" +msgstr "" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "" + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "" + +#: src/options.cpp +msgid "Skill training speed" +msgstr "" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "" + +#: src/options.cpp +msgid "Skill rust" +msgstr "" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at " +"skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in " +"z-level mode, the vision will extend beyond current z-level. Currently very " +"bugged!" +msgstr "" + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "" + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "" + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK " +"Windows users." +msgstr "" + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "" @@ -227544,21 +231296,6 @@ msgstr "" msgid "PER" msgstr "" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "" - #: src/panels.cpp msgid "DEAF" msgstr "" @@ -228248,16 +231985,6 @@ msgstr "" msgid "Your power armor disengages." msgstr "" -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -228383,6 +232110,10 @@ msgstr "" msgid "The %s doesn't have any faults to mend." msgstr "" +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "" + #: src/player.cpp #, c-format msgid "" @@ -228677,6 +232408,10 @@ msgstr "" msgid "This task is too simple to train your %s beyond %d." msgstr "" +#: src/player.cpp +msgid " (empty)" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "" @@ -228739,7 +232474,7 @@ msgstr "" #: src/player_display.cpp #, c-format -msgid "Running movement point cost: %+d\n" +msgid "Movement point cost: %+d\n" msgstr "" #: src/player_display.cpp @@ -228820,6 +232555,10 @@ msgstr "" msgid "Reduced gun aim speed: %.1f" msgstr "" +#: src/player_display.cpp +msgid "Weight:" +msgstr "" + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your " @@ -228839,7 +232578,7 @@ msgstr "" #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" +msgid "Bash damage: %.1f" msgstr "" #: src/player_display.cpp @@ -228901,10 +232640,6 @@ msgstr "" msgid "Aiming penalty: %+d" msgstr "" -#: src/player_display.cpp -msgid "Weight:" -msgstr "" - #: src/player_display.cpp msgid "" "Your weight is a general indicator of how much fat your body has stored up, " @@ -228920,6 +232655,20 @@ msgstr "" msgid "This is how old you are." msgstr "" +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" +msgstr "" + #: src/player_display.cpp #, c-format msgid "" @@ -228988,6 +232737,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr "" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "" + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "" + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -229065,18 +232835,6 @@ msgid "" "Strength - 4; Dexterity - 4; Intelligence - 4; Perception - 4" msgstr "" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr "" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr "" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "" @@ -229086,12 +232844,7 @@ msgid "Cycle to previous category" msgstr "" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" +msgid "Toggle skill training / Upgrade stat" msgstr "" #: src/player_hardcoded_effects.cpp @@ -229409,15 +233162,15 @@ msgid "" msgstr "" #: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." +msgid "You are beset with a vision of a prowling beast." msgstr "" #: src/player_hardcoded_effects.cpp -msgid "You are beset with a vision of a prowling beast." +msgid "Your surroundings are permeated with a foul scent." msgstr "" #: src/player_hardcoded_effects.cpp -msgid "Your surroundings are permeated with a foul scent." +msgid "Glowing lights surround you, and you teleport." msgstr "" #: src/player_hardcoded_effects.cpp @@ -229543,6 +233296,10 @@ msgstr "" msgid "You succumb to the infection." msgstr "" +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "" + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "" @@ -229966,6 +233723,10 @@ msgstr "" msgid "[?] show help" msgstr "" +#: src/ranged.cpp +msgid "Shift view with directional keys" +msgstr "" + #: src/ranged.cpp msgid "Move cursor with directional keys" msgstr "" @@ -230367,20 +234128,35 @@ msgid "Limited" msgstr "" #: src/scores_ui.cpp +msgid "achievements" +msgstr "" + +#: src/scores_ui.cpp +msgid "conducts" +msgstr "" + +#: src/scores_ui.cpp +msgid "Conducts" +msgstr "" + +#: src/scores_ui.cpp +#, c-format msgid "" -"Achievements are disabled, probably due to use of the debug menu. If you " -"only used the debug menu to work around a game bug, then you can re-enable " -"achievements via the debug menu (under the Game submenu)." +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." msgstr "" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" +#, c-format +msgid "This game has no valid %s.\n" msgstr "" #: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." +"Note that only %s that existed when you started this game and still exist " +"now will appear here." msgstr "" #: src/scores_ui.cpp @@ -230398,6 +234174,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "" + #: src/scores_ui.cpp msgid "SCORES" msgstr "" @@ -231163,7 +234943,7 @@ msgid "A blade swings out and hacks your torso!" msgstr "" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" +msgid "A blade swings out and hacks 's torso!" msgstr "" #: src/trapfunc.cpp @@ -231575,6 +235355,10 @@ msgstr "" msgid "Only one %1$s powered engine can be installed." msgstr "" +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "" + #: src/veh_interact.cpp msgid "This part cannot be installed.\n" msgstr "" @@ -231728,6 +235512,12 @@ msgstr "" msgid "You can't install parts while driving." msgstr "" +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "" @@ -231756,6 +235546,20 @@ msgstr "" msgid "This part cannot be repaired.\n" msgstr "" +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "" + #: src/veh_interact.cpp msgid "Your morale is too low to mend…" msgstr "" @@ -231867,6 +235671,13 @@ msgid "" "Removing the broken %1$s may yield some fragments.\n" msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "" +"Removing the %1$s may yield:\n" +"> %2$s\n" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "" @@ -231896,6 +235707,12 @@ msgstr "" msgid "Better not remove something while driving." msgstr "" +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "" @@ -232164,6 +235981,10 @@ msgstr "" msgid "Dmg" msgstr "" +#: src/veh_interact.cpp +msgid "Weight" +msgstr "" + #: src/veh_interact.cpp msgid "Wgt" msgstr "" @@ -232337,6 +236158,11 @@ msgstr "" msgid "You remove the broken %1$s from the %2$s." msgstr "" +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -233041,10 +236867,6 @@ msgstr "" msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -233976,11 +237798,6 @@ msgstr "" msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" msgstr "" -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "" - #: src/wish.cpp msgid "How many?" msgstr "" diff --git a/lang/po/de.po b/lang/po/de.po index c1ffa84675edb..52bac882021b0 100644 --- a/lang/po/de.po +++ b/lang/po/de.po @@ -1,10 +1,10 @@ # # Translators: # marc s , 2018 +# Robert Boettcher , 2018 # Nico Brandt , 2018 # Enrico Grunitz, 2018 # OzoneH3 , 2018 -# Robert Boettcher , 2018 # Nipaporn P. , 2018 # Mark Bies, 2018 # - - , 2018 @@ -18,9 +18,11 @@ # a b , 2020 # kurtice087 , 2020 # Chris , 2020 -# Pupsi , 2020 -# Brett Dong , 2020 # Ziv Edo, 2020 +# Brett Dong , 2020 +# Björn Hartmann , 2020 +# Pupsi , 2020 +# Matyas Taller , 2020 # Vlasov Vitaly , 2020 # Wuzzy , 2020 # @@ -28,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-01 12:24+0800\n" +"POT-Creation-Date: 2020-06-05 08:37+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Wuzzy , 2020\n" "Language-Team: German (https://www.transifex.com/cataclysm-dda-translators/teams/2217/de/)\n" @@ -41,8 +43,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "fusion pack" msgid_plural "fusion packs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Fusionszell" +msgstr[1] "Fusionszellen" #. ~ Description for {'str': 'fusion pack'} #: lang/json/AMMO_from_json.py @@ -59,8 +61,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "bootleg fusion pack" msgid_plural "bootleg fusion packs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "selbstgebaute Fusionszelle" +msgstr[1] "selbstgebaute Fusionszellen" #. ~ Description for {'str': 'bootleg fusion pack'} #: lang/json/AMMO_from_json.py @@ -91,12 +93,58 @@ msgstr "" "Freiliegende Batterieladung. Diese kann in wiederaufladbare Batteriezellen " "geladen werden, kann aber nie entladen werden." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'butane'} #: lang/json/AMMO_from_json.py -msgid "aluminum foil" -msgid_plural "aluminum foils" +msgid "A common flammable liquid used in lighters." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "Sauerstoff" +msgstr[1] "Sauerstoff" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "aluminum foil" +msgid_plural "aluminum foils" +msgstr[0] "Alufolie" +msgstr[1] "Alufolie" + #. ~ Description for {'str': 'aluminum foil'} #: lang/json/AMMO_from_json.py msgid "" @@ -107,15 +155,13 @@ msgstr "Eine dünne Folie aus Aluminium." #: lang/json/AMMO_from_json.py msgid "cent" msgid_plural "cents" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Cent" +msgstr[1] "Cents" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "WENN DU DIES SIEHST, IST ES EIN BUG." +#: lang/json/AMMO_from_json.py +msgid "A unit of currency equivalent to 0.01 US dollars." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -133,8 +179,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "sinew" msgid_plural "sinews" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Sehne" +msgstr[1] "Sehnen" #. ~ Description for {'str': 'sinew'} #: lang/json/AMMO_from_json.py @@ -146,8 +192,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "plant fiber" msgid_plural "plant fibers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pflanzenfaser" +msgstr[1] "Pflanzenfasern" #. ~ Description for {'str': 'plant fiber'} #: lang/json/AMMO_from_json.py @@ -169,8 +215,8 @@ msgstr "Wollgarn, könnte zum Stricken von Kleidung gebraucht werden." #: lang/json/AMMO_from_json.py msgid "soap bar" msgid_plural "soap bars" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Seifenstück" +msgstr[1] "Seifenstücke" #. ~ Description for {'str': 'soap bar'} #: lang/json/AMMO_from_json.py @@ -180,8 +226,8 @@ msgstr "Ein Reinigungsmittel in Quaderform." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "duct tape" msgid_plural "duct tapes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Isolierband" +msgstr[1] "Isolierbänder" #. ~ Description for {'str': 'duct tape'} #: lang/json/AMMO_from_json.py @@ -193,8 +239,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "rolling paper" msgid_plural "rolling papers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Zigarettenpapier" +msgstr[1] "Zigarettenpapiere" #. ~ Description for {'str': 'rolling paper'} #: lang/json/AMMO_from_json.py @@ -206,8 +252,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "copper wire" msgid_plural "copper wires" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kupferkabel" +msgstr[1] "Kupferkabel" #. ~ Description for {'str': 'copper wire'} #: lang/json/AMMO_from_json.py @@ -219,8 +265,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "plutonium fuel cell" msgid_plural "plutonium fuel cells" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Plutoniumbrennstoffzelle" +msgstr[1] "Plutoniumbrennstoffzellen" #. ~ Description for {'str': 'plutonium fuel cell'} #: lang/json/AMMO_from_json.py @@ -231,7 +277,7 @@ msgid "" "conventional means: expended cells had to be sent to a central reprocessing " "facility that almost certainly doesn't exist anymore." msgstr "" -"Dies ist weder eine Brennstoffzelle noch nuklear, aber der Name ist " +"Dies ist weder eine Brennstoffzelle, noch nuklear, aber der Name ist " "geblieben. Es verwendet Plutonium-244 als Katalysator, um eine komplizierte " "Nanoverbindung zu stabilisieren, die enorme Mengen an Energie speichern " "kann. Leider kann es nicht mit herkömmlichen Mitteln wieder aufgeladen " @@ -242,8 +288,8 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "plutonium slurry" msgid_plural "plutonium slurry" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Plutoniumschlamm" +msgstr[1] "Plutoniumschlamm" #. ~ Description for {'str_sp': 'plutonium slurry'} #. ~ Description for {'str_sp': 'watery plutonium slurry'} @@ -258,13 +304,13 @@ msgstr "" msgid "watery plutonium slurry" msgid_plural "watery plutonium slurry" msgstr[0] "wässriger Plutoniumschlamm" -msgstr[1] "wässrige Plutoniumschlämme" +msgstr[1] "wässriger Plutoniumschlamm" #: lang/json/AMMO_from_json.py lang/json/snippet_from_json.py msgid "rock" msgid_plural "rocks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Stein" +msgstr[1] "Steine" #. ~ Description for {'str': 'rock'} #. ~ Description for TEST rock @@ -279,27 +325,25 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "pebble" msgid_plural "pebbles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kieselstein" +msgstr[1] "Kieselsteine" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." +msgid "A handful of pebbles, useful as ammunition for slingshots." msgstr "" -"Eine Handvoll Kiesel, nützlich als Munition für Schleudern oder " +"Eine handvoll Kiesel, nützlich as Munition für Schleudern oder " "Steinschleudern." #: lang/json/AMMO_from_json.py msgid "clay pellet" msgid_plural "clay pellets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tonkügelchen" +msgstr[1] "Tonkügelchen" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or " -"slingshots." +msgid "A handful of round projectiles made of clay, useful for slingshots." msgstr "" "Eine handvoll runder Projektile aus Ton, nützlich für Schleudern oder " "Steinschleudern." @@ -307,13 +351,12 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "marble" msgid_plural "marbles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Murmel" +msgstr[1] "Murmeln" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." +msgid "A handful of glass marbles, useful as ammunition for slingshots." msgstr "" "Eine handvoll Glasmurmeln, nützlich als Munition für Schleudern oder " "Steinschleudern." @@ -326,28 +369,30 @@ msgstr[1] "Kugellager" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." +msgid "A box of ball bearings, useful as ammunition for slingshots." msgstr "" -"Eine Kiste mit Kugellagern, verwendbar als Munition für allerlei Schleudern." +"Eine Kiste mit Kugellagern, verwendbar als Munition für eine Steinschleuder." #: lang/json/AMMO_from_json.py msgid "BB" msgid_plural "BBs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "BB Softair Kugeln" +msgstr[1] "BB Softair Kugeln" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." msgstr "" -"Eine Kiste mit kleinen Stahlkugeln. Sie verursachen so gut wie keinen " -"Schaden." +"Eine Kiste mit kleinen Stahlkugeln für eine SoftAir Waffe. Sie verursachen " +"so gut wie keinen Schaden." #: lang/json/AMMO_from_json.py msgid "feather" msgid_plural "feathers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Vogelfeder" +msgstr[1] "Vogelfedern" #. ~ Description for {'str': 'feather'} #: lang/json/AMMO_from_json.py @@ -358,8 +403,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "down feather" msgid_plural "down feathers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Daunenfeder" +msgstr[1] "Daunenfedern" #. ~ Description for {'str': 'down feather'} #: lang/json/AMMO_from_json.py @@ -371,8 +416,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "120mm HEAT" msgid_plural "120mm HEATs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "120mm HEAT" +msgstr[1] "120mm HEATs" #. ~ Description for {'str': '120mm HEAT'} #: lang/json/AMMO_from_json.py @@ -385,8 +430,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "hydrogen canister" msgid_plural "hydrogen canisters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Wasserstoffkanister" +msgstr[1] "Wasserstoffkanister" #. ~ Description for {'str': 'hydrogen canister'} #: lang/json/AMMO_from_json.py @@ -401,8 +446,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "mixed smokeless gunpowder" msgid_plural "mixed smokeless gunpowders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gemischtes rauchloses Schießpulver" +msgstr[1] "gemischtes rauchloses Schießpulver" #. ~ Description for {'str': 'mixed smokeless gunpowder'} #: lang/json/AMMO_from_json.py @@ -419,8 +464,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "smokeless shotgun powder" msgid_plural "smokeless shotgun powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rauchfreies Pulver für Schrotflinte" +msgstr[1] "Rauchfreies Pulver für Schrotflinte" #. ~ Description for {'str': 'smokeless shotgun powder'} #: lang/json/AMMO_from_json.py @@ -432,8 +477,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "smokeless pistol powder" msgid_plural "smokeless pistol powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rauchfreies Pulver für Pistole" +msgstr[1] "Rauchfreies Pulver für Pistole" #. ~ Description for {'str': 'smokeless pistol powder'} #: lang/json/AMMO_from_json.py @@ -444,8 +489,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "smokeless magnum powder" msgid_plural "smokeless magnum powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rauchfreies Pulver für Magnum" +msgstr[1] "Rauchfreies Pulver für Magnum" #. ~ Description for {'str': 'smokeless magnum powder'} #: lang/json/AMMO_from_json.py @@ -458,8 +503,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "smokeless rifle powder" msgid_plural "smokeless rifle powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rauchfreies Pulver für Gewehre" +msgstr[1] "Rauchfreies Pulver für Gewehre" #. ~ Description for {'str': 'smokeless rifle powder'} #: lang/json/AMMO_from_json.py @@ -470,8 +515,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "smokeless overbore rifle powder" msgid_plural "smokeless overbore rifle powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rauchfreies Pulver für overbore Gewehre" +msgstr[1] "Rauchfreies Pulver für overbore Gewehre" #. ~ Description for {'str': 'smokeless overbore rifle powder'} #: lang/json/AMMO_from_json.py @@ -575,8 +620,8 @@ msgstr "Anzündhütchen einer Großkalibergewehrpatrone." #: lang/json/AMMO_from_json.py msgid "rubber slug" msgid_plural "rubber slugs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gummikugel" +msgstr[1] "Gummigeschosse" #. ~ Description for {'str': 'rubber slug'} #: lang/json/AMMO_from_json.py @@ -601,8 +646,8 @@ msgstr "Ein Stück nützliches Gummi, das sich leicht formen lässt." #: lang/json/AMMO_from_json.py msgid "copper" msgid_plural "coppers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kupfer" +msgstr[1] "Kupfer" #. ~ Description for {'str': 'copper'} #: lang/json/AMMO_from_json.py @@ -616,8 +661,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "medical tape" msgid_plural "medical tapes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "medizinisches Band" +msgstr[1] "medizinische Bänder" #. ~ Description for {'str': 'medical tape'} #: lang/json/AMMO_from_json.py @@ -627,8 +672,14 @@ msgstr "Eine Rolle medizinisches Klebeband, ähnlich wie Isolierband." #: lang/json/AMMO_from_json.py msgid "placeholder ammunition" msgid_plural "placeholder ammunitions" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Platzhaltermunition" +msgstr[1] "Platzhaltermunition" + +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "WENN DU DIES SIEHST, IST ES EIN BUG." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" @@ -678,6 +729,19 @@ msgstr "" "Brennbare schwarze Brocken eines kohlebasierten Materials, üblicherweise zum" " Kochen und Erhitzen verwendet." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -727,8 +791,8 @@ msgstr "Ein Ersatzfiltereinsatz für ein Kreislaufatemgerät." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "filter mask cartridge" msgid_plural "filter mask cartridges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Atemschutzmaskeneinsatz" +msgstr[1] "Atemschutzmaskeneinsätze" #. ~ Description for {'str': 'filter mask cartridge'} #: lang/json/AMMO_from_json.py @@ -738,8 +802,8 @@ msgstr "Kleiner Ersatzfiltereinsatz für Luftfilterungsmasken." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gas mask cartridge" msgid_plural "gas mask cartridges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gasmaskeneinsatz" +msgstr[1] "Gasmaskeneinsätze" #. ~ Description for {'str': 'gas mask cartridge'} #: lang/json/AMMO_from_json.py @@ -749,8 +813,8 @@ msgstr "Mittelgroßer Ersatzfiltereinsatz für Luftfilterungsmasken." #: lang/json/AMMO_from_json.py msgid "chemical mask cartridge" msgid_plural "chemical mask cartridges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Chemikalienschutzmaskeneinsatz" +msgstr[1] "Chemikalienschutzmaskeneinsätze" #. ~ Description for {'str': 'chemical mask cartridge'} #: lang/json/AMMO_from_json.py @@ -760,8 +824,8 @@ msgstr "Schwerer Ersatzfiltereinsatz für Luftfilterungsmasken." #: lang/json/AMMO_from_json.py msgid "nicotine liquid" msgid_plural "nicotine liquids" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Nikotinflüssigkeit" +msgstr[1] "Nikotinflüssigkeiten" #. ~ Description for {'str': 'nicotine liquid'} #: lang/json/AMMO_from_json.py @@ -775,20 +839,14 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "fish bait" msgid_plural "fish baits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Fischköder" +msgstr[1] "Fischköder" #. ~ Description for {'str': 'fish bait'} #: lang/json/AMMO_from_json.py msgid "A bait used in traps to lure fish." msgstr "Ein Köder, der in Fallen benutzt wird, im Fische anzulocken." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "Sauerstoff" -msgstr[1] "Sauerstoff" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -797,8 +855,8 @@ msgstr "Ein Behälter mit Sauerstoff." #: lang/json/AMMO_from_json.py msgid "spiked homemade rocket" msgid_plural "spiked homemade rockets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "stechelige selbstgebaute Rakete" +msgstr[1] "stechelige selbstgebaute Raketen" #. ~ Description for {'str': 'spiked homemade rocket'} #: lang/json/AMMO_from_json.py @@ -815,8 +873,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "explosive homemade rocket" msgid_plural "explosive homemade rockets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "explosive selbstgebaute Rakete" +msgstr[1] "explosive selbstgebaute Raketen" #. ~ Description for {'str': 'explosive homemade rocket'} #: lang/json/AMMO_from_json.py @@ -952,8 +1010,8 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "anesthetic" msgid_plural "anesthetics" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Anästhetika" +msgstr[1] "Anästhetika" #. ~ Description for {'str': 'anesthetic'} #: lang/json/AMMO_from_json.py @@ -1366,12 +1424,17 @@ msgid "" "to sharply lower its temperature, but is there any use for this quality in " "this new world?" msgstr "" +"Eine Handvoll mit Ammoniumnitrat. Dieses weiße kristalline Pulver wird " +"hauptsächlich als Komponente von Düngern und Sprengstoffen benutzt. Könnte " +"auch in Wasser aufgelöst werden, um dessen Temperatur stark abzusenken, aber" +" gibt es in dieser neuen Welt irgendeinen Verwendungszweck für diese " +"Eigenschaft?" #: lang/json/AMMO_from_json.py msgid "ammonium nitrate pellets" msgid_plural "ammonium nitrate pellets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ammoniumnitrat Brocken" +msgstr[1] "Ammoniumnitrat Brocken" #. ~ Description for {'str_sp': 'ammonium nitrate pellets'} #: lang/json/AMMO_from_json.py @@ -1381,6 +1444,11 @@ msgid "" "to sharply lower its temperature, but is there any use for this quality in " "this new world?" msgstr "" +"Eine Handvoll mit Ammoniumnitrat Brocken. Dieses Brocken werden " +"hauptsächlich als Komponente von Düngern und Sprengstoffen benutzt. Könnte " +"auch in Wasser aufgelöst werden, um dessen Temperatur stark abzusenken, aber" +" gibt es in dieser neuen Welt irgendeinen Verwendungszweck für diese " +"Eigenschaft?" #: lang/json/AMMO_from_json.py msgid "saltpeter" @@ -1646,8 +1714,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "nanomaterial canister" msgid_plural "nanomaterial canisters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Nanomaterial-Kanister" +msgstr[1] "Nanomaterial-Kanister" #. ~ Description for {'str': 'nanomaterial canister'} #: lang/json/AMMO_from_json.py @@ -1677,8 +1745,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden bead" msgid_plural "wooden beads" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Holzperle" +msgstr[1] "Holzperlen" #. ~ Description for {'str': 'wooden bead'} #: lang/json/AMMO_from_json.py @@ -1692,8 +1760,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "rosin" msgid_plural "rosins" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Harz" +msgstr[1] "Harz" #. ~ Description for {'str': 'rosin'} #: lang/json/AMMO_from_json.py @@ -1722,8 +1790,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "denatured alcohol" msgid_plural "denatured alcohols" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Spiritus" +msgstr[1] "Spiritus" #. ~ Description for {'str': 'denatured alcohol'} #: lang/json/AMMO_from_json.py @@ -3520,10 +3588,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "" ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, " -"the .45 ACP round has been common for almost 150 years." +"the .45 ACP round has been common for over a century." msgstr "" -".45-ACP-Munition mit 230gr-FMJ-Kugeln. Die .45-ACP-Patrone wird geschätzt " -"für ihre Mannstoppwirkung und war für über 150 Jahre verbreitet." #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -4652,12 +4718,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round" -" for military, law enforcement, and civilian use even after almost 150 " -"years." +" for military, law enforcement, and civilian use for over a century." msgstr "" -"9×19mm-Munition mit einer messingummantelten 115gr-Kugel. Sie ist eine " -"beliebte Patrone für militärische, polizeiliche und zivile Verwendung, sogar" -" nach fast 150 Jahren." #: lang/json/AMMO_from_json.py msgid "9x19mm +P" @@ -5005,8 +5067,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "nail" msgid_plural "nails" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Nagel" +msgstr[1] "Nägel" #. ~ Description for {'str': 'nail'} #: lang/json/AMMO_from_json.py @@ -5498,8 +5560,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "makeshift wooden arrow" msgid_plural "makeshift wooden arrows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "selbstgemachter Holzpfeil" +msgstr[1] "selbstgemachte Holzpfeile" #. ~ Description for {'str': 'makeshift wooden arrow'} #: lang/json/AMMO_from_json.py @@ -5678,8 +5740,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "makeshift wooden bolt" msgid_plural "makeshift wooden bolts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "selbstgemachter Holzbolzen" +msgstr[1] "selbstgemachte Holzbolzen" #. ~ Description for {'str': 'makeshift wooden bolt'} #: lang/json/AMMO_from_json.py @@ -6183,8 +6245,8 @@ msgstr "Eine violette Teppichrolle." #: lang/json/AMMO_from_json.py msgid "scrap metal" msgid_plural "scrap metals" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Metallschrott" +msgstr[1] "Metallschrott" #. ~ Description for {'str': 'scrap metal'} #: lang/json/AMMO_from_json.py @@ -6300,8 +6362,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "small metal sheet" msgid_plural "small metal sheets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kleines Metallblech" +msgstr[1] "kleine Metallbleche" #. ~ Description for {'str': 'small metal sheet'} #. ~ Description for TEST small metal sheet @@ -6312,8 +6374,8 @@ msgstr "Ein kleines Metallblech." #: lang/json/AMMO_from_json.py msgid "chunk of steel" msgid_plural "chunks of steel" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Stahlstück" +msgstr[1] "Stahlstücke" #. ~ Description for {'str': 'chunk of steel', 'str_pl': 'chunks of steel'} #: lang/json/AMMO_from_json.py @@ -6327,8 +6389,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "lump of steel" msgid_plural "lumps of steel" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Klumpen Stahl" +msgstr[1] "Klumpen Stahl" #. ~ Description for {'str': 'lump of steel', 'str_pl': 'lumps of steel'} #: lang/json/AMMO_from_json.py @@ -6339,8 +6401,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "door hinge" msgid_plural "door hinges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Türscharnier" +msgstr[1] "Türscharniere" #. ~ Description for {'str': 'door hinge'} #: lang/json/AMMO_from_json.py @@ -6370,8 +6432,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "solder" msgid_plural "solder" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Lötzinn" +msgstr[1] "Lötzinn" #. ~ Description for {'str_sp': 'solder'} #: lang/json/AMMO_from_json.py @@ -6397,8 +6459,8 @@ msgstr "Material einer Brandpatrone, nützlich, um Brandgeschosse zu fertigen." #: lang/json/AMMO_from_json.py msgid "fuse" msgid_plural "fuse" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Zündschnur" +msgstr[1] "Zündschnüre" #. ~ Description for {'str_sp': 'fuse'} #: lang/json/AMMO_from_json.py @@ -6587,8 +6649,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "cotton sheet" msgid_plural "cotton sheets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Baumwolltuch" +msgstr[1] "Baumwolltücher" #. ~ Description for {'str': 'cotton sheet'} #: lang/json/AMMO_from_json.py @@ -6683,12 +6745,9 @@ msgstr[1] "" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." msgstr "" -"Eine Platte aus synthetischem Kevlar-Gewebe, die zur Herstellung von " -"kugelsicheren Panzerungen geeignet ist. In dieser Form kann sie, im " -"Gegensatz zu starren Platten, genäht werden." #: lang/json/AMMO_from_json.py msgid "Lycra sheet" @@ -6976,12 +7035,6 @@ msgstr "" "Flüssigkeit abzusondern. Sie sollten es wahrscheinlich am besten in den " "Bioblaster geben. " -#: lang/json/AMMO_from_json.py -msgid "plutonium cell" -msgid_plural "plutonium cells" -msgstr[0] "" -msgstr[1] "" - #: lang/json/AMMO_from_json.py msgid "titanium" msgid_plural "titanium" @@ -7088,75 +7141,6 @@ msgstr "" "es gibt, aber sie hat trotzdem eine hohe Durchschlagskraft, ohne die Sorge, " "dass ein Streuschuss die Umwelt ernsthaft schädigen könnte." -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N8" -msgid_plural "6.54x42mm 9N8" -msgstr[0] "6,54×42mm 9N8" -msgstr[1] "6,54×42mm 9N8" - -#. ~ Description for {'str_sp': '6.54x42mm 9N8'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 6.54x42mm cartridge, loaded with a 120 gr. FMJBT bullet. Inspired by the " -"improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " -"rifle cartridge for his new SVS-24 Assault Rifle." -msgstr "" -"Eine 6,54×42mm-Patrone, geladen mit einer 120gr-FMJBT-Kugel. Inspiriert von " -"der verbesserten .280 British entwickelte Alexander Sarafanov " -"höchstpersönlich die 6,54×42mm-Gewehrpatrone für sein neues " -"SVS-24-Sturmgewehr." - -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N12" -msgid_plural "6.54x42mm 9N12" -msgstr[0] "6,54×42mm 9N12" -msgstr[1] "6,54×42mm 9N12" - -#. ~ Description for {'str_sp': '6.54x42mm 9N12'} -#: lang/json/AMMO_from_json.py -msgid "" -"The 6.54x42mm 9N12 has superior armor piercing capabilities thanks to its " -"tungsten carbide core. Tungsten carbide was used in anti-tank rounds of the" -" 20th and 21st century, whenever depleted uranium was unavailable or " -"undesirable." -msgstr "" -"Die 6,54×42mm 9N12 hat überlegene Panzerbrechungsfähigkeiten dank ihres " -"Wolframcarbitkerns. Worframcarbit wurde in Panzerabwehrgeschossen des 20. " -"und 21. Jahrhunderts verwendet, wenn angereichertes Uran entweder nicht " -"verfügbar oder unerwünscht war." - -#: lang/json/AMMO_from_json.py -msgid ".20 DREAD Pellet" -msgid_plural ".20 DREAD Pellets" -msgstr[0] ".20-DREAD-Kugel" -msgstr[1] ".20-DREAD-Kugeln" - -#. ~ Description for {'str': '.20 DREAD Pellet'} -#: lang/json/AMMO_from_json.py -msgid "" -"These metal pellets are propelled with the help of electromagnets, therefore" -" they do not produce sound, flash or heat signature." -msgstr "" -"Diese Metallkügelchen werden mithilfe von Elektromagneten angetrieben, darum" -" erzeugen sie kein Geräusch, keinen Blitz oder eine Wärmesignatur." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 6.54x42mm" -msgid_plural "reloaded 6.54x42mm" -msgstr[0] "wiedergeladene 6,54×42mm" -msgstr[1] "wiedergeladene 6,54×42mm" - -#. ~ Description for {'str_sp': 'reloaded 6.54x42mm'} -#: lang/json/AMMO_from_json.py -msgid "" -"Inspired by the improved .280, Alexander Sarafanov himself developed the " -"6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " -"been hand-reloaded." -msgstr "" -"Inspiriert von der verbesserten .280 entwickelte Alexander Sarafanov " -"höchstpersönlich die 6,54×42mm-Gewehrpatrone für sein neues " -"SVS-24-Sturmgewehr. Diese Patrone wurde wiedergeladen." - #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -7898,131 +7882,10 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for mana core power -#. ~ Description for {'str_sp': 'vortex core'} #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." msgstr "Das ist ein Bug, der an sich nicht zu sehen sein sollte." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "fire lance charge" -msgid_plural "fire lance charges" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for fire lance charge -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm. Despite the " -"minimal range, it packs a punch." -msgstr "" -"Etwas mehr als eine Ladung Schießpulver für eine einfache Schusswaffe. Trotz" -" der minimalen Reichweite richtet es immer noch einen gewissen Schaden an." - -#: lang/json/AMMO_from_json.py -msgid "fire lance shot" -msgid_plural "fire lance shots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for fire lance shot -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm, with small " -"pellets as shot. Despite the minimal range, it packs a punch." -msgstr "" -"Etwas mehr als eine Ladung Schießpulver für eine einfache Schusswaffe, mit " -"kleinen Kügelchen als Schrot. Trotz der minimalen Reichweite richtet es " -"immer noch einen gewissen Schaden an." - -#: lang/json/AMMO_from_json.py -msgid "lead pellet" -msgid_plural "lead pellets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lead pellet -#: lang/json/AMMO_from_json.py -msgid "" -"Hefty round projectiles cast from lead, useful as ammunition for slings." -msgstr "" -"Schwere runde aus Blei gegossene Projektile, nützlich als Munition für " -"Steinschleudern." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" -msgstr[0] "hölzerner Wurfspeer" -msgstr[1] "hölzerne Wurfspeere" - -#: lang/json/AMMO_from_json.py -msgid "stone javelin" -msgid_plural "stone javelins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for stone javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A throwing spear with a stone spearhead. The grip area has also been carved" -" and covered for better grip." -msgstr "" -"Ein Wurfspeer mit einer Steinspitze. Der Griff wurde ebenso geschnitzt, für " -"einen besseren Halt." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" -msgstr[0] "Eisenwurfspeer" -msgstr[1] "Eisenwurfspeere" - -#: lang/json/AMMO_from_json.py -msgid "copper javelin" -msgid_plural "copper javelins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for copper javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A copper-tipped throwing spear. The grip area has also been carved and " -"covered for better grip." -msgstr "" -"Ein Wurfspeer mit Kupferspitze. Der Griff wurde ebenso geschnitzt, für einen" -" besseren Halt." - -#: lang/json/AMMO_from_json.py -msgid "40mm EMP grenade" -msgid_plural "40mm EMP grenades" -msgstr[0] "40mm EMP-Granate" -msgstr[1] "40mm EMP-Granaten" - -#. ~ Description for {'str': '40mm EMP grenade'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" -" capable of damaging robots and some equipment." -msgstr "" -"Eine 40mm Granate mit einer EMP-Ladung. Sie wird einen elektromagnetischen " -"Impuls auslösen, der Roboter und einige elektrische Geräte beschädigen kann." - -#: lang/json/AMMO_from_json.py -msgid "glowball" -msgid_plural "glowballs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for glowball -#: lang/json/AMMO_from_json.py -msgid "" -"A tube of small glowballs taken off the market due to hazardous chemicals. " -"They deal virtually no damage, but light up on impact. Useful for " -"illuminating an area without lighting up yourself in the process." -msgstr "" -"Eine Röhre mit kleinen Leuchtkugeln, die wegen gefährlicher Chemikalien vom " -"Markt genommen wurden. Sie verursachen praktisch keinen Schaden, leuchten " -"beim Aufprall aber auf. Nützlich, um einen Bereich zu beleuchten, ohne sich " -"dabei selbst zu beleuchten." - #: lang/json/AMMO_from_json.py msgid "TEST rock" msgid_plural "TEST rocks" @@ -8036,587 +7899,57 @@ msgstr[0] "" msgstr[1] "" #: lang/json/AMMO_from_json.py -msgid "TEST platinum bit" -msgid_plural "TEST platinum bits" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEDP" -msgid_plural "30x113mm HEDP" -msgstr[0] "30×113mm HEDP" -msgstr[1] "30×113mm HEDP" - -#. ~ Description for {'str_sp': '30x113mm HEDP'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " -"Used primarily against light armored vehicles." -msgstr "" -"Eine 30×113mm-Autokanonenpatrone ist eine hochexplosive Granate mit zwei " -"Verwendungszwecken. Hauptsächlich gegen leicht gepanzerte Fahrzeuge benutzt." - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEI" -msgid_plural "30x113mm HEI" -msgstr[0] "30×113mm HEI" -msgstr[1] "30×113mm HEI" - -#. ~ Description for {'str_sp': '30x113mm HEI'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round, high explosive incendiary. Designed for use " -"against unarmored vehicles and to suppress infantry." -msgstr "" -"Eine 30×113mm-Autokanonenpatrone, hoch explosive Brandmunition. Entworfen " -"für die Benutzung gegen ungepanzerte Fahrzeuge und zum Aufhalten der " -"Infanterie." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 30x113mm" -msgid_plural "reloaded 30x113mm" -msgstr[0] "wiedergeladene 30×113mm" -msgstr[1] "wiedergeladene 30×113mm" - -#. ~ Description for {'str_sp': '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 "" -"Eine 30×113mm-Autokanonenpatrone, bei der man das Zündhütchen ersetzt hat " -"und mit einem einfachen Bleiprojektil ersetzt hat. Nicht so effektiv wie das" -" Original." - -#. ~ 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 "" -"Ein 120mm-Hochexplosiv-Panzerabwehrgeschoss. Es könnte jemandes Tag " -"ruinieren." - -#: lang/json/AMMO_from_json.py -msgid "120mm APFSDS" -msgid_plural "120mm APFSDSs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 120mm APFSDS -#: lang/json/AMMO_from_json.py -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 "" -"Eine 120mm Panzerbrechende Flügelstabilisierte Treibspiegelablegende " -"Patrone. Benutzt ein Projektil aus angereichertem Uran, um, was auch immer " -"es trifft, einen wirklich schlechten Tag zu bescheren." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 120mm shot" -msgid_plural "reloaded 120mm shots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for reloaded 120mm shot -#: lang/json/AMMO_from_json.py -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 "" -"Eine 120mm-Hülle, in die ein neues elektrisches Zündhütchen eingebaut wurde." -" Sie ist mit einer großen Ladung Posten gefüllt. Das ist ziemlich ähnlich zu" -" den nicht mehr hergestellten Kartäschen, hat jedoch eine geringere " -"Qualität." - -#: lang/json/AMMO_from_json.py -msgid "makeshift 120mm slug" -msgid_plural "makeshift 120mm slugs" -msgstr[0] "" -msgstr[1] "" - -#. ~ 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 "" -"Eine 120mm-Hülse mit einem neuen elektrischen Zündhütchen. Sie ist gefüllt " -"mit einem großen selbstgemachten Flintenlaufgeschoss. Obwohl das kaum ideal " -"ist, richtet es immer noch einiges an Schaden an." - -#: lang/json/AMMO_from_json.py -msgid "155mm HEAT" -msgid_plural "155mm HEATs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 155mm HEAT -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Anti Tank round. More than enough firepower for " -"whatever you could think to point it at." -msgstr "" -"Eine 155mm-Hochexplosiv-Panzerabwehr-Patrone. Mehr als genug Feuerkraft für " -"womit auch immer du damit zielst." - -#: lang/json/AMMO_from_json.py -msgid "155mm frag" -msgid_plural "155mm frags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 155mm frag -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Fragmentation round. Designed to give anything near " -"what you hit a really bad day." -msgstr "" -"Eine 155m-Hochexplosiv-Splitter-Patrone. Alles, was ihr beim Einschlag zu " -"nahe kommt, hat einen wirklich schlechten Tag." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm shot" -msgid_plural "reloaded 155mm shots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for reloaded 155mm shot -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm shell with a new electric primer installed, filled with a huge " -"amount of buckshot. Effectively turns a howitzer into a punt gun on " -"steroids." -msgstr "" -"Eine 155mm-Hülle, in die ein neues elektrisches Zündhütchen eingebaut wurde." -" Sie ist mit einer enormen Ladung Posten gefüllt. Das verwandelt eine " -"Haubitze sozusagen in eine Punt Gun auf Steroiden." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm slug" -msgid_plural "reloaded 155mm slugs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for reloaded 155mm slug -#: lang/json/AMMO_from_json.py -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 "" -"Eine 155mm-Hülse mit einem neuen elektrischen Zündhütchen. Sie ist gefüllt " -"mit einem enorm großen selbstgemachten Flintenlaufgeschoss. Obwohl es " -"weniger effektiv ist, wird jeder, der davon getroffen wird, es mit " -"Sicherheit spüren." - -#: lang/json/AMMO_from_json.py -msgid "small electric primer" -msgid_plural "small electric primers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for small electric primer -#: lang/json/AMMO_from_json.py -msgid "Primer for an autocannon shell. Seems to use an electric ignition." -msgstr "" -"Zündhütchen für eine Autokanonenhülse. Scheint eine elektronische Zündung zu" -" verwenden." - -#: lang/json/AMMO_from_json.py -msgid "large electric primer" -msgid_plural "large electric primers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for large electric primer -#: lang/json/AMMO_from_json.py -msgid "" -"Primer for a tank or artillery shell. Seems to use an electric ignition." -msgstr "" -"Zündhütchen für ein Panzer- oder Artilleriegeschoss. Scheint eine " -"elektronische Zündung zu verwenden." - -#: lang/json/AMMO_from_json.py -msgid "liquified blob feed" -msgid_plural "liquified blob feed" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'liquified blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"Liquified blob feed, useful for fueling certain blob based vehicle parts" -msgstr "" -"Verflüssigtes Blobfutter, nützlich zum Auftanken bestimmter blobbasierter " -"Fahrzeugteile" - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "blob feed" -msgid_plural "blob feed" -msgstr[0] "Blobfutter" -msgstr[1] "Blobfutter" - -#. ~ Description for {'str_sp': 'blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"An amalgam of various types of organic material, contains everything the " -"blob needs to be healthy. You think…" -msgstr "" - -#: lang/json/AMMO_from_json.py -msgid "IED" -msgid_plural "IEDs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/AMMO_from_json.py -msgid "blast canister" -msgid_plural "blast canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'blast canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a substantial explosive payload." -msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Sprengladung gefüllt ist, welche beim Einschlag gezündet wird. Sie enthält " -"eine wesentliche Sprengladung." - -#: lang/json/AMMO_from_json.py -msgid "Big Bang canister" -msgid_plural "Big Bang canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Big Bang canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a VERY substantial explosive payload." -msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Sprengladung gefüllt ist, welche beim Einschlag gezündet wird. Sie enthält " -"eine SEHR wesentliche Sprengladung." - -#: lang/json/AMMO_from_json.py -msgid "fire canister" -msgid_plural "fire canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'fire canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a small area with deadly flames." -msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Ladung gefüllt und mit einer Zündvorrichtung versehen ist. Sie ist dafür " -"gedacht, von einem speziellen Werfer gefeuert zu werden. Dieses Exemplar " -"wird einen kleinen Bereich mit tödlichen Flammen eindecken." - -#: lang/json/AMMO_from_json.py -msgid "inferno canister" -msgid_plural "inferno canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'inferno canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a large area with deadly flames." -msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Ladung gefüllt und mit einer Zündvorrichtung versehen ist. Sie ist dafür " -"gedacht, von einem speziellen Werfer gefeuert zu werden. Dieses Exemplar " -"wird einen großen Bereich mit tödlichen Flammen eindecken." - -#: lang/json/AMMO_from_json.py -msgid "fragmentation canister" -msgid_plural "fragmentation canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'fragmentation canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to spray the immediate area with deadly shrapnel." -msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Ladung gefüllt ist, und einer Zündvorrichtung versehen ist. Sie ist dafür " -"gedacht, von einem speziellen Werfer gefeuert zu werden. Dieses Exemplar ist" -" so gebaut, dass die direkte Umgebung mit tödlichen Fragmenten befeuert " -"wird." - -#. ~ Description for {'str': 'modified mininuke'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device. Intended to be fired from a " -"specialized launcher, its case has been cut down and it has been rigged to " -"explode on impact. While it is now somewhat lighter than before, it can no " -"longer be triggered manually." -msgstr "" -"Eine stark modifizierte tragbarer nuklearer Sprengkörper. Er ist dazu " -"gedacht, von einem speziellem Werfer abgeschossen zu werden; seine Hülle " -"wurde entfernt und er wurde so modifiziert, dass er bei Aufprall explodiert." -" Er ist einerseits etwas leichter als vorher, aber kann andererseits nicht " -"mehr manuell aktiviert werden." - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "harpoon" -msgid_plural "harpoons" +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'harpoon'} +#. ~ Description for {'str': 'test wooden broadhead arrow'} #: lang/json/AMMO_from_json.py -msgid "" -"A large spear carved from wood. This was fashioned specifically to be fired" -" from a compatible weapon; thus unsuitable for melee combat." +msgid "Test arrow" msgstr "" -"Ein großer Speer, der aus Holz geschnitzt wurde. Er wurde so gemacht, dass " -"er nur von einer kompatiblen Waffe gefeuert werden kann. Somit ist er " -"ungeeignet für den Nahkampf." - -#: lang/json/AMMO_from_json.py -msgid "IED rigged bolt" -msgid_plural "IED rigged bolts" -msgstr[0] "" -msgstr[1] "" #: lang/json/AMMO_from_json.py -msgid "nova bolt" -msgid_plural "nova bolts" +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nova bolt'} +#. ~ Description for {'str': 'Test 9mm ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a substantial explosive payload." +msgid "Generic 9mm ammo based on JHP." msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Ladung gefüllt ist und am Ende eines großen Ballistenbolzen befestigt wurde." -" Sie ist dafür gedacht, von einem speziellen Werfer gefeuert zu werden. Sie " -"trägt eine große Explosivsprengladung." #: lang/json/AMMO_from_json.py -msgid "supernova bolt" -msgid_plural "supernova bolts" +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'supernova bolt'} +#. ~ Description for {'str': 'Test .45 ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a very substantial explosive payload." -msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Ladung gefüllt ist und am Ende eines großen Ballistenbolzen befestigt wurde." -" Sie ist dafür gedacht, von einem speziellen Werfer gefeuert zu werden. Sie " -"trägt eine sehr große Explosivsprengladung." - -#: lang/json/AMMO_from_json.py -msgid "searing bolt" -msgid_plural "searing bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'searing bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a small area with deadly flames." +msgid "Test ammo based on the .45 JHP." msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Ladung gefüllt ist und am Ende eines großen Ballistenbolzen befestigt wurde." -" Sie ist dafür gedacht, von einem speziellen Werfer gefeuert zu werden. " -"Dieses Exemplar wird einen kleinen Bereich mit tödlichen Flammen eindecken." #: lang/json/AMMO_from_json.py -msgid "napalm bolt" -msgid_plural "napalm bolts" +msgid "test gas" +msgid_plural "test gas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'napalm bolt'} +#. ~ Description for {'str_sp': 'test gas'} #: lang/json/AMMO_from_json.py msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a large area with deadly flames." +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Ladung gefüllt ist und am Ende eines großen Ballistenbolzen befestigt wurde." -" Sie ist dafür gedacht, von einem speziellen Werfer gefeuert zu werden. " -"Dieses Exemplar wird einen großen Bereich mit tödlichen Flammen eindecken." - -#: lang/json/AMMO_from_json.py -msgid "shatter bolt" -msgid_plural "shatter bolts" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'shatter bolt'} #: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to spray the immediate area with deadly " -"shrapnel." -msgstr "" -"Eine USBV, die aus einem versiegelten Behälter besteht, welche mit einer " -"Ladung gefüllt ist und am Ende eines großen Ballistenbolzen befestigt wurde." -" Sie ist dafür gedacht, von einem speziellen Werfer gefeuert zu werden. " -"Dieses Exemplar wurde so gebaut, dass sie den unmittelbaren Bereich mit " -"Schrapnell eindecken wird." - -#: lang/json/AMMO_from_json.py -msgid "steel ballista bolt" -msgid_plural "steel ballista bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'steel ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A long shaft carved from wood ending in a tip of sharpened metal. It's " -"quite heavy, capable of dealing large amounts of damage, but isn't " -"particularly accurate. Stands a good chance of remaining intact once fired." -msgstr "" -"Ein langer Schaft aus Holz, der mit einer Spitze aus geschärftem Metall " -"endet. Er ist ziemlich schwer und richtet großen Schaden an, ist aber nicht " -"besonders treffsicher. Er hat eine gute Chance, nach dem Verschießen intakt " -"zu bleiben." - -#: lang/json/AMMO_from_json.py -msgid "nuclear bolt" -msgid_plural "nuclear bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'nuclear bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device affixed to the end of a large " -"ballista bolt. Its case has been cut down and it has been rigged to explode" -" on impact. It can no longer be triggered manually." -msgstr "" -"Ein stark modifizierter tragbarer nuklearer Sprengkörper, der am Ende eines " -"Ballistenbolzen befestigt wurde. Seine Hülle wurde entfernt und er wurde so " -"modifiziert, dass er bei Aufprall explodiert. Er kann nicht mehr manuell " -"aktiviert werden." - -#: lang/json/AMMO_from_json.py -msgid "wood ballista bolt" -msgid_plural "wood ballista bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'wood ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A sharpened bolt carved from wood. It's fairly heavy, capable of dealing " -"large amounts of damage, but isn't particularly accurate. Stands a good " -"chance of remaining intact once fired." -msgstr "" -"Ein langer Bolzen, der aus Holz geschnitzt wurde. Er ist recht schwer und " -"richtet großen Schaden an, ist aber nicht besonders treffsicher. Er hat eine" -" gute Chance, nach dem Verschießen intakt zu bleiben." - -#: lang/json/AMMO_from_json.py -msgid "lead ball" -msgid_plural "lead balls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'lead ball'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy lead ball about 8cm in diameter. Could pack quite a bit of a punch " -"if you had something to launch it." -msgstr "" -"Eine schwere Bleikugel, welche einen Durchmesser von etwa 8cm hat. Sie kann " -"ganz schön reinhauen, wenn du etwas hättest, womit du sie abfeuern könntest." - -#: lang/json/AMMO_from_json.py -msgid "serrated disc" -msgid_plural "serrated discs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'serrated disc'} -#: lang/json/AMMO_from_json.py -msgid "" -"A metal disc surrounded by serrated edges. It's as menacing as it sounds." -msgstr "" -"Eine große Metallscheibe, die von gezackten Klingen umrundet ist. Sie ist " -"genau so bedrohlich, wie sie klingt." - -#: lang/json/AMMO_from_json.py -msgid "metal fragment" -msgid_plural "metal fragments" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'metal fragment'} -#: lang/json/AMMO_from_json.py -msgid "Small slivers of metal. Can't see much use for them." -msgstr "Kleine Metallsplitter. Du kannst nicht viel damit anfangen." - -#: lang/json/AMMO_from_json.py -msgid "glittering carbon" -msgid_plural "glittering carbon" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'glittering carbon'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of carbon are have been compressed into a crystalline " -"structure that is beginning to resemble diamonds." -msgstr "" - -#: lang/json/AMMO_from_json.py -msgid "diamond fragments" -msgid_plural "diamond fragments" +msgid "TEST platinum bit" +msgid_plural "TEST platinum bits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'diamond fragments'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of diamond are formed as a byproduct from the " -"crystallization process of a diamond matrix. While the substance usually " -"decays when separated from the catalyst; these fragments are small enough to" -" remain stable." -msgstr "" -"Diese kleinen Diamantfragmente wurden als ein Nebenprodukt des " -"Kristallisierungsprozesses einer Diamantmatrix geformt. Obwohl die Substanz " -"normalerweise zerfällt, wenn sie vom Katalysator getrennt wird, sind diese " -"Fragmente klein genug, um stabil zu bleiben." - -#: lang/json/AMMO_from_json.py -msgid "vortex core" -msgid_plural "vortex core" -msgstr[0] "Vortexkern" -msgstr[1] "Vortexkern" - #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" msgid_plural "pairs of bone arm guards" @@ -8755,7 +8088,6 @@ msgstr[1] "kugelsichere Modulwesten (leer)" #. 'large grenade pouches'}. #. ~ Use action holster_msg for {'str': 'MBR vest (titanium)', 'str_pl': 'MBR #. vests (titanium)'}. -#. ~ Use action holster_msg for javelin bag. #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You stash your %s." @@ -8907,8 +8239,8 @@ msgstr "Ein Werkzeug, das hilft, Knochen zu richten und sie gerade zu halten." #: lang/json/ARMOR_from_json.py msgid "arm splint XL" msgid_plural "arm splints XL" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Armschiene XL" +msgstr[1] "Armschienen XL" #. ~ Description for {'str': 'arm splint XL', 'str_pl': 'arm splints XL'} #: lang/json/ARMOR_from_json.py @@ -8965,8 +8297,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "personal go bag" msgid_plural "personal go bags" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Persönliche Notfall-Tasche" +msgstr[1] "Persönliche Notfall-Taschen" #. ~ Description for {'str': 'personal go bag'} #: lang/json/ARMOR_from_json.py @@ -8984,8 +8316,8 @@ msgstr[1] "Beinschienen" #: lang/json/ARMOR_from_json.py msgid "leg splint XL" msgid_plural "leg splints XL" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Beinschiene XL" +msgstr[1] "Beinschienen XL" #. ~ Description for {'str': 'leg splint XL', 'str_pl': 'leg splints XL'} #: lang/json/ARMOR_from_json.py @@ -9026,8 +8358,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "crude welding mask" msgid_plural "crude welding masks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Primitive Schweißermaske" +msgstr[1] "Primitive Schweißermasken" #. ~ Description for {'str': 'crude welding mask'} #: lang/json/ARMOR_from_json.py @@ -9040,8 +8372,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "crude welding mask (raised)" msgid_plural "crude welding masks (raised)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Primitive Schweißermaske (geöffnet)" +msgstr[1] "Primitive Schweißermasken (geöffnet)" #. ~ Use action menu_text for {'str': 'crude welding mask (raised)', 'str_pl': #. 'crude welding masks (raised)'}. @@ -9055,7 +8387,7 @@ msgstr "" #. 'crude welding masks (raised)'}. #: lang/json/ARMOR_from_json.py msgid "You lower your crude welding mask over your face." -msgstr "" +msgstr "Du schließt deine primitive Schweißermaske." #. ~ Description for {'str': 'crude welding mask (raised)', 'str_pl': 'crude #. welding masks (raised)'} @@ -9069,14 +8401,14 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "welding mask (raised)" msgid_plural "welding masks (raised)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Schweißermaske (geöffnet)" +msgstr[1] "Schweißermasken (geöffnet)" #. ~ Use action msg for {'str': 'welding mask (raised)', 'str_pl': 'welding #. masks (raised)'}. #: lang/json/ARMOR_from_json.py msgid "You lower your welding mask over your face." -msgstr "" +msgstr "Du schließt deine Schweißermaske." #. ~ Description for {'str': 'welding mask (raised)', 'str_pl': 'welding masks #. (raised)'} @@ -9146,12 +8478,11 @@ msgstr[1] "Überlebendenwerkzeuggürtel" #. 'pairs of knee-high boots'}. #. ~ Use action holster_msg for {'str': 'pair of rollerblades', 'str_pl': #. 'pairs of rollerblades'}. -#. ~ Use action holster_msg for {'str': 'pair of rollerskates', 'str_pl': -#. 'pairs of rollerskates'}. -#. ~ Use action holster_msg for C.R.I.T web belt. +#. ~ Use action holster_msg for CRIT web belt. #. ~ Use action holster_msg for {'str': "technomancer's toolbelt"}. #. ~ Use action holster_msg for {'str': 'hollow cane'}. -#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/ARMOR_from_json.py lang/json/ARMOR_from_json.py +#: lang/json/GENERIC_from_json.py #, no-python-format msgid "You sheath your %s" msgstr "Du steckst %s in die Scheide." @@ -9159,7 +8490,7 @@ msgstr "Du steckst %s in die Scheide." #. ~ Use action holster_prompt for {'str': 'survivor utility belt'}. #. ~ Use action holster_prompt for {'str': 'survivor belt'}. #. ~ Use action holster_prompt for {'str': 'hiking backpack'}. -#. ~ Use action holster_prompt for C.R.I.T web belt. +#. ~ Use action holster_prompt for CRIT web belt. #. ~ Use action holster_prompt for {'str': "technomancer's toolbelt"}. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" @@ -9234,8 +8565,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "ammo pouch" msgid_plural "ammo pouches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Munitionstasche" +msgstr[1] "Munitionstaschen" #. ~ Description for {'str': 'ammo pouch', 'str_pl': 'ammo pouches'} #: lang/json/ARMOR_from_json.py @@ -9278,8 +8609,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "chest rig" msgid_plural "chest rig" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Brustgurt" +msgstr[1] "Brustgurte" #. ~ Description for {'str_sp': 'chest rig'} #: lang/json/ARMOR_from_json.py @@ -9297,7 +8628,6 @@ msgstr[0] "Wurfspeertasche" msgstr[1] "Wurfspeertaschen" #. ~ Use action holster_prompt for {'str': 'javelin bag'}. -#. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" msgstr "Wurfspeere einlagern" @@ -9408,8 +8738,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "tac vest" msgid_plural "tac vests" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Taktische Weste" +msgstr[1] "Taktische Westen" #. ~ Description for {'str': 'tac vest'} #: lang/json/ARMOR_from_json.py @@ -9424,8 +8754,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "XL Kevlar vest" msgid_plural "XL Kevlar vests" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kevlar Weste XL" +msgstr[1] "Kevlar Westen XL" #. ~ Description for {'str': 'XL Kevlar vest'} #: lang/json/ARMOR_from_json.py @@ -9623,6 +8953,20 @@ msgstr[1] "Paar Lederarmschienen" msgid "A pair of light leather arm guards, made for archery." msgstr "Ein Paar leichte Lederarmschienen, gemacht für das Bogenschießen." +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': +#. 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -9780,8 +9124,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "stone pouch" msgid_plural "stone pouches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Steinsammeltasche" +msgstr[1] "Steinsammeltaschen" #. ~ Description for {'str': 'stone pouch', 'str_pl': 'stone pouches'} #: lang/json/ARMOR_from_json.py @@ -10056,8 +9400,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "webbing belt" msgid_plural "webbing belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Militärgürtel" +msgstr[1] "Militärgürtel" #. ~ Description for {'str': 'webbing belt'} #: lang/json/ARMOR_from_json.py @@ -10163,6 +9507,34 @@ msgstr[1] "Paar Kampfstiefel" msgid "Modern reinforced tactical combat boots. Very durable." msgstr "Moderne, verstärkte taktische Kampfstiefel. Sehr widerstandsfähig." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs +#. of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -10292,8 +9664,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of scrap boots" msgid_plural "pairs of scrap boots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Paar Schrottstiefel" +msgstr[1] "Schrottstiefel" #. ~ Description for {'str': 'pair of scrap boots', 'str_pl': 'pairs of scrap #. boots'} @@ -10488,8 +9860,8 @@ msgstr "Einfache Sandalen. Mit ihnen zu laufen ist sehr schwer." #: lang/json/ARMOR_from_json.py msgid "pair of expensive flip-flops" msgid_plural "pairs of flip-flops" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Paar Flip-Flops" +msgstr[1] "Flip-Flops" #. ~ Description for {'str': 'pair of expensive flip-flops', 'str_pl': 'pairs #. of flip-flops'} @@ -10870,6 +10242,8 @@ msgstr[1] "Paar feuerfeste Socken" #. ~ Description for {'str': 'pair of flame-resistant socks', 'str_pl': 'pairs #. of flame-resistant socks'} +#. ~ Description for {'str': 'pair of XL flame-resistant socks', 'str_pl': +#. 'pairs of XL flame-resistant socks'} #: lang/json/ARMOR_from_json.py msgid "" "A snug fitting pair of stockings made from thin and lightweight Nomex fire-" @@ -10880,6 +10254,12 @@ msgstr "" "Nomexfasern. Sie sind robust und dennoch atmungsaktiv und es ist " "komfortabel, sie unter Kleidung zu tragen." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL flame-resistant socks" +msgid_plural "pairs of XL flame-resistant socks" +msgstr[0] "" +msgstr[1] "" + #: lang/json/ARMOR_from_json.py msgid "pair of socks" msgid_plural "pairs of socks" @@ -10894,11 +10274,23 @@ msgid "Socks. Put 'em on your feet." msgstr "Socken. Sie gehören auf die Füße." #: lang/json/ARMOR_from_json.py -msgid "pair of ankle socks" -msgid_plural "pairs of ankle socks" +msgid "pair of XL socks" +msgid_plural "pairs of XL socks" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'pair of XL socks', 'str_pl': 'pairs of XL +#. socks'} +#: lang/json/ARMOR_from_json.py +msgid "Socks. Big ones. Put 'em on your feet." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of ankle socks" +msgid_plural "pairs of ankle socks" +msgstr[0] "Paar Knöchelsocken" +msgstr[1] "Knöchelsocken" + #. ~ Description for {'str': 'pair of ankle socks', 'str_pl': 'pairs of ankle #. socks'} #: lang/json/ARMOR_from_json.py @@ -10948,6 +10340,20 @@ msgstr[1] "Paar Wollsocken" msgid "Warm socks made of wool." msgstr "Warme Socken, die aus Wolle gemacht sind." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL wool socks" +msgid_plural "pairs of XL wool socks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of XL wool socks', 'str_pl': 'pairs of XL +#. wool socks'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Warm socks made of wool for a larger than you'd previously thought possible " +"human." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of stockings" msgid_plural "pairs of stockings" @@ -11661,8 +11067,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "ski jacket" msgid_plural "ski jackets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ski-Jacke" +msgstr[1] "Ski-Jacken" #. ~ Description for {'str': 'ski jacket'} #: lang/json/ARMOR_from_json.py @@ -12586,11 +11992,9 @@ msgstr[1] "Paar Taktikhandschuhe" #. tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." msgstr "" -"Ein Paar verstärkte Taktikhandschuhe aus Kevlar. Gewöhnlicherweise benutzt " -"von Polizei- und Militäreinheiten." #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -12638,7 +12042,8 @@ msgstr[1] "" #. of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." msgstr "" #: lang/json/ARMOR_from_json.py @@ -12841,6 +12246,21 @@ msgstr[1] "Paar Golfhandschuhe" msgid "A thin pair of black leather golfing gloves." msgstr "Ein dünnes Paar schwarzer Ledergolfhandschuhe." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD +#. gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -12915,8 +12335,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "drinking hat" msgid_plural "drinking hats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Trinkerhut" +msgstr[1] "Trinkerhüte" #. ~ Description for {'str': 'drinking hat'} #: lang/json/ARMOR_from_json.py @@ -14760,8 +14180,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of gold earrings" msgid_plural "pairs of gold earrings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ein Paar Gold-Ohrringe" +msgstr[1] "Gold-Ohrringe" #. ~ Description for {'str': 'pair of gold earrings', 'str_pl': 'pairs of gold #. earrings'} @@ -14815,8 +14235,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "gold necklace" msgid_plural "gold necklaces" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gold-Halskette" +msgstr[1] "Gold-Halsketten" #. ~ Description for {'str': 'gold necklace'} #: lang/json/ARMOR_from_json.py @@ -14871,8 +14291,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "silver watch" msgid_plural "silver watches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Silberne Uhr" +msgstr[1] "Silberne Uhren" #. ~ Description for {'str': 'silver watch', 'str_pl': 'silver watches'} #: lang/json/ARMOR_from_json.py @@ -15129,8 +14549,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "engagement ring" msgid_plural "engagement rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Verlobungsring" +msgstr[1] "Verlobungsringe" #. ~ Description for {'str': 'engagement ring'} #: lang/json/ARMOR_from_json.py @@ -15178,8 +14598,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "wedding ring" msgid_plural "wedding rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ehering" +msgstr[1] "Eheringe" #. ~ Description for {'str': 'wedding ring'} #: lang/json/ARMOR_from_json.py @@ -15258,8 +14678,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "silver ring" msgid_plural "silver rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Silberring" +msgstr[1] "Silberringe" #. ~ Description for {'str': 'silver ring'} #: lang/json/ARMOR_from_json.py @@ -15410,8 +14830,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "Foodkid badge" msgid_plural "Foodkid badges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Essenskind Abzeichen" +msgstr[1] "Essenskind Abzeichen" #. ~ Description for {'str': 'Foodkid badge'} #: lang/json/ARMOR_from_json.py @@ -15577,8 +14997,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of amethyst and gold earrings" msgid_plural "pairs of amethyst and gold earrings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ein Paar Amethyst und Gold Ohrringe" +msgstr[1] "Amethyst und Gold Ohrringe" #. ~ Description for {'str': 'pair of amethyst and gold earrings', 'str_pl': #. 'pairs of amethyst and gold earrings'} @@ -15591,8 +15011,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of aquamarine and gold earrings" msgid_plural "pairs of aquamarine and gold earrings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ein Paar Aquamarin und Gold Ohrringe" +msgstr[1] "Aquamarin und Gold Ohrringe" #. ~ Description for {'str': 'pair of aquamarine and gold earrings', 'str_pl': #. 'pairs of aquamarine and gold earrings'} @@ -18284,6 +17704,21 @@ msgstr "" "Chaps aus schwarzem Leder. Sehr zäh und leicht, bieten aber keinen " "Lagerplatz." +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -18431,6 +17866,35 @@ msgid "" "built to be durable, comfortable, and easy to wear." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "basketball shorts" msgid_plural "basketball shorts" @@ -18821,6 +18285,8 @@ msgstr[0] "Arbeitshose" msgstr[1] "Arbeitshosen" #. ~ Description for {'str': 'work pants', 'str_pl': 'pairs of work pants'} +#. ~ Description for {'str': 'XL work pants', 'str_pl': 'pairs of XL work +#. pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." msgstr "Eine graue Arbeitshose." @@ -18870,6 +18336,19 @@ msgstr[1] "Sturmhauben" msgid "A warm covering that protects the head and face from the cold." msgstr "Eine warme Bedeckung, die Kopf und Gesicht vor Kälte schützt." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -19183,8 +18662,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "necktie" msgid_plural "neckties" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Krawatte" +msgstr[1] "Krawatten" #. ~ Description for {'str': 'necktie'} #: lang/json/ARMOR_from_json.py @@ -19271,6 +18750,7 @@ msgstr[1] "" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "Deine Energierüstung aktiviert sich." @@ -19857,10 +19337,8 @@ msgstr "Golfschläger einstecken" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." +"has straps to be worn on the back and a slot for an umbrella." msgstr "" -"Ein großes Tuch mit Plastiktasche mit ausgeklappten Beinen, benutzt zum " -"Golfen. Es hat sogar Riemen, damit man es am Rücken tragen kann." #: lang/json/ARMOR_from_json.py msgid "H&K operational briefcase (empty)" @@ -20197,8 +19675,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "travelpack" msgid_plural "travelpacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Wanderrucksack" +msgstr[1] "Wanderrucksäcke" #. ~ Description for {'str': 'travelpack'} #: lang/json/ARMOR_from_json.py @@ -20218,6 +19696,17 @@ msgstr "" "Eine leichte Weste, die mit Taschen und Trägern für die Lagerung versehen " "wurde." +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -21392,6 +20881,19 @@ msgstr "" "Ein Schurz aus dickem Leder. Mühselig zum Tragen, aber er bietet " "ausgezeichneten Schutz vor Schnitten." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from " +"cuts." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -21619,8 +21121,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "leotard" msgid_plural "leotard" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Leotard" +msgstr[1] "Leotard" #. ~ Description for {'str_sp': 'leotard'} #: lang/json/ARMOR_from_json.py @@ -22022,6 +21524,17 @@ msgstr[1] "Boxerslips" msgid "The age-old question, boxers or briefs? Your answer? Yes." msgstr "Die uralte Frage: Boxershorts oder Slip? Deine Antwort: Ja." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer briefs" +msgid_plural "XL boxer briefs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'XL boxer briefs'} +#: lang/json/ARMOR_from_json.py +msgid "The age-old question, boxers or briefs? Your answer? Chonk!" +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "boxer shorts" msgid_plural "boxer shorts" @@ -22036,6 +21549,19 @@ msgstr "" "Eine Boxershorts für Männer. Modischer als eine Unterhose und genauso " "komfortabel." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer shorts" +msgid_plural "XL boxer shorts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'XL boxer shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Men's XL boxer shorts. For the very big and tall. More fashionable than " +"briefs and just as comfortable." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "boy shorts" msgid_plural "boy shorts" @@ -22050,6 +21576,19 @@ msgstr "" "Unterwäsche für Frauen, die den Boxer-Shorts für Männer ähnlich ist, aber " "enger anliegt." +#: lang/json/ARMOR_from_json.py +msgid "XL boy shorts" +msgid_plural "XL boy shorts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'XL boy shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Female underwear similar to men's boxer shorts, but much more close-fitting." +" This size is made for giants." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bra" msgid_plural "bras" @@ -22293,6 +21832,20 @@ msgstr "" "Halt zu bieten. Er wird üblicherweise beim Trainieren getragen, haftet sich " "an die Haut an und ist leicht zu tragen." +#: lang/json/ARMOR_from_json.py +msgid "XL sports bra" +msgid_plural "XL sports bras" +msgstr[0] "Sport-BH XL" +msgstr[1] "Sport-BHs XL" + +#. ~ Description for {'str': 'XL sports bra'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A sturdy nylon bra to provide additional support during physical movement. " +"Typically worn when exercising, it clings to the skin and is easy to wear. " +"This one appears to have been made for a massive person." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "tank top" msgid_plural "tank tops" @@ -22376,6 +21929,11 @@ msgid "" "leggings. Commonly used by gymnasts, dancers and equestrian vaulters, the " "unitard provides overall coverage with great flexibility." msgstr "" +"Das Leotard ist ein hautenges einteiliges Kleidungsstück aus Oberteil und " +"angeschnittenem Slip. Leotards können ärmellos, kurz- oder langärmlig sein. " +"Sie werden getragen von Akrobaten, Gymnastikern, Tänzern, Schauspielern und " +"Künstlern im Zirkus, sowohl als praktische Kleidung als auch bei " +"Vorführungen als Kostüm." #: lang/json/ARMOR_from_json.py msgid "sheet" @@ -22465,8 +22023,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "makeshift Kevlar vest" msgid_plural "makeshift Kevlar vests" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "selbstgemachte Kevlarweste" +msgstr[1] "selbstgemachte Kevlarwesten" #. ~ Description for makeshift Kevlar vest #: lang/json/ARMOR_from_json.py @@ -22566,6 +22124,58 @@ msgid "" "but cannot be repaired" msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL jeans" +msgid_plural "pairs of XL jeans" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL jeans', 'str_pl': 'pairs of XL jeans'} +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue jeans with two deep pockets." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL work pants" +msgid_plural "pairs of XL work pants" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL gray work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL light-blue work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL work t-shirt" +msgid_plural "XL work t-shirts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL work t-shirt'} +#: lang/json/ARMOR_from_json.py +msgid "A gray XL work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL blue work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL gray work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL light-blue work t-shirt with a small front pocket." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Uplifted SWAT armor" msgid_plural "Uplifted SWAT armors" @@ -22642,6 +22252,59 @@ msgid "" "tactical gloves." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL leather belt" +msgid_plural "XL leather belts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL leather belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL leather belt. Useful for making your pair of pants fit if you need " +"really big pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL police duty belt" +msgid_plural "XL police duty belts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL police duty belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL black leather belt used by extremely large uplifted police officers. " +"It has several pouches and a holder for a baton." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL tactical full helmet" +msgid_plural "XL tactical full helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL tactical full helmet'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An all-encompassing massive black helmet that covers your entire face and " +"neck, providing excellent protection from all sorts of damage." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL leg ammo pouch" +msgid_plural "XL leg ammo pouches" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL leg ammo pouch', 'str_pl': 'XL leg ammo +#. pouches'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL fabric ammo pouch that can be strapped to your leg and capable of " +"holding two magazine close at hand." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "titanium watch" msgid_plural "titanium watches" @@ -22787,6 +22450,21 @@ msgid "" "armor, it'll still keep you relatively safe." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "CRIT Engineering Suit" +msgid_plural "CRIT Engineering Suits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for CRIT Engineering Suit +#: lang/json/ARMOR_from_json.py +msgid "" +"An airtight, flexible suit of woven composite fibers complete with segmented" +" plates of armor. A complex system digitizes items in an individual pocket " +"universe for storage while built in joint-torsion ratchets generate the " +"neccessary energy required to power the interface." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "CRIT face mask" msgid_plural "CRIT face masks" @@ -22796,9 +22474,9 @@ msgstr[1] "" #. ~ Description for CRIT face mask #: lang/json/ARMOR_from_json.py msgid "" -"This is the C.R.I.T standard issue face mask, lined with Kevlar for extra " -"protection. A few filters provide decent environmental safety, but it was " -"not intended for extended use. It has a basic integrated HUD." +"A standard issue face mask, lined with Kevlar for extra protection. A few " +"filters provide decent environmental safety, but it was not intended for " +"extended use. It has a basic integrated HUD." msgstr "" #: lang/json/ARMOR_from_json.py @@ -22811,7 +22489,7 @@ msgstr[1] "" #. boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and " +"A pair of standard-issue boots. Next-gen gels keep feet comfortable and " "hygienic during long-term missions while absorbing shock and heat from " "outside-sources. Superalloy mesh and rubber offer quite a bit of chemical " "protection as well. Decently heavy though" @@ -22827,7 +22505,7 @@ msgstr[1] "" #. LA boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor " +"A pair of skeletonized boots. Based off of C.R.I.T boots, the light-armor " "variant was created for missions in warmer climates. The LA boots keep most" " of the old features of the standard issue boots but trade in protection for" " easier movement." @@ -22843,7 +22521,7 @@ msgstr[1] "" #. 'pairs of CRIT fingertip-less gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with " +"A pair of standard-issue gloves. Made with superalloy mesh for those with " "gene-modding and/or mutations while still allowing greater manipulation of " "items and moderate protection." msgstr "" @@ -22858,8 +22536,8 @@ msgstr[1] "" #. 'pairs of CRIT fingertip-less liners'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue glove liners. Made with neoprene and rubber mesh for" -" warmth and fingertip-less for those with gene-modding and/or mutations " +"A pair of standard-issue glove liners. Made with neoprene and rubber mesh " +"for warmth and fingertip-less for those with gene-modding and/or mutations " "while still allowing greater manipulation of items and moderate protection." msgstr "" @@ -22872,10 +22550,10 @@ msgstr[1] "" #. ~ Description for CRIT backpack #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this " -"smaller pack strikes a fine balance between storage space and encumbrance " -"and allows a larger weapon to be holstered, drawing and holstering is still " -"rather awkward even with the magnetized clips, but practice helps." +"A standard-issue pack. Based on the MOLLE backpack's design, this smaller " +"pack strikes a fine balance between storage space and encumbrance and allows" +" a larger weapon to be holstered, drawing and holstering is still rather " +"awkward even with the magnetized clips, but practice helps." msgstr "" #: lang/json/ARMOR_from_json.py @@ -22887,8 +22565,8 @@ msgstr[1] "" #. ~ Description for CRIT chestrig #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" -" with light-armor padding." +"A slightly modified chestrig, has mesh and MOLLE loops for gear and slots " +"with light-armor padding." msgstr "" #: lang/json/ARMOR_from_json.py @@ -22901,19 +22579,19 @@ msgstr[1] "" #. CRIT leg guards'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue leg armor. Simple design and durable material allows" -" for easy movement and the padding keeps the legs safe and warm in colder " +"Leg armor for those who fight. Simple design and durable material allows " +"for easy movement and the padding keeps the legs safe and warm in colder " "conditions." msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT arm guards" -msgid_plural "pairs of C.R.I.T arm guards" +msgid_plural "pairs of CRIT arm guards" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'pair of CRIT arm guards', 'str_pl': 'pairs of -#. C.R.I.T arm guards'} +#. CRIT arm guards'} #: lang/json/ARMOR_from_json.py msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " @@ -22930,8 +22608,8 @@ msgstr[1] "" #. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on " -"your hip." +"CRIT standard-issue belt. Keeps your trousers up and your weapons on your " +"hip." msgstr "" #: lang/json/ARMOR_from_json.py @@ -22948,21 +22626,6 @@ msgid "" "discharges from the robots. Has several pockets for storage." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "CRIT Engineering Suit" -msgid_plural "CRIT Engineering Suits" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CRIT Engineering Suit -#: lang/json/ARMOR_from_json.py -msgid "" -"An airtight, flexible suit of woven composite fibers complete with segmented" -" plates of armor. A complex system digitizes items in an individual pocket " -"universe for storage while built in joint-torsion ratchets generate the " -"necessary energy required to power the interface." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "CRIT Armored Anomaly Suit" msgid_plural "CRIT Armored Anomaly Suits" @@ -22980,12 +22643,12 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "CRIT drop leg pouch" -msgid_plural "C.R.I.T drop leg pouches" +msgid_plural "CRIT drop leg pouches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'C.R.I.T drop -#. leg pouches'} +#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'CRIT drop leg +#. pouches'} #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " @@ -23021,7 +22684,7 @@ msgstr[1] "" #. of CRIT Enforcer docks'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of " +"CRIT Enforcer docks. Metal plates vaguely molded into the shape of " "oversized feet which clamp down onto your own footwear keep your feet out of" " harms way. It looks terrible and feels clunky unlike most of C.R.I.T's " "designs, but they do seem to be worth using if you were to be in the middle " @@ -23059,98 +22722,97 @@ msgid "" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T blouse" -msgid_plural "C.R.I.T blouses" +msgid "CRIT blouse" +msgid_plural "CRIT blouses" msgstr[0] "" msgstr[1] "" -#. ~ Description for C.R.I.T blouse +#. ~ Description for CRIT blouse #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage." -" Super-flex neoprene keeps one warm in moderately cold weather while a " -"sleek design keeps it from being too flashy. A zipper at the back and front" -" allows for quick donning and doffing." +"A standard-issue military jacket. Durable, lightweight, and has ample " +"storage. Super-flex neoprene keeps one warm in moderately cold weather " +"while a sleek design keeps it from being too flashy. A zipper at the back " +"and front allows for quick donning and doffing." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T trousers" -msgid_plural "C.R.I.T trousers" +msgid "CRIT trousers" +msgid_plural "CRIT trousers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT trousers'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue trousers. Durable, lightweight and has ample " +"A pair of standard-issue cargo pants. Durable, lightweight and has ample " "storage. Super-flex neoprene keeps one warm in moderately cold weather." msgstr "" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#: lang/json/ARMOR_from_json.py +msgid "CRIT pants" +msgid_plural "CRIT pants" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'CRIT pants'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " -"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " -"cold weather." +"A pair of dress pants. A minimalist sleek design makes the pants " +"lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in" +" moderately cold weather." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T helmet liner" -msgid_plural "C.R.I.T helmet liners" +msgid "CRIT helmet liner" +msgid_plural "CRIT helmet liners" msgstr[0] "" msgstr[1] "" -#. ~ Description for C.R.I.T helmet liner +#. ~ Description for CRIT helmet liner #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." +msgid "A standard-issue helmet liner. Keeps the noggin warm." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T shoes" -msgid_plural "pairs of C.R.I.T dress shoes" +msgid "pair of CRIT shoes" +msgid_plural "pairs of CRIT dress shoes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pair of C.R.I.T shoes', 'str_pl': 'pairs of -#. C.R.I.T dress shoes'} +#. ~ Description for {'str': 'pair of CRIT shoes', 'str_pl': 'pairs of CRIT +#. dress shoes'} #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T rec gloves" -msgid_plural "pairs of C.R.I.T rec gloves" +msgid "pair of CRIT rec gloves" +msgid_plural "pairs of CRIT rec gloves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pair of C.R.I.T rec gloves', 'str_pl': 'pairs of -#. C.R.I.T rec gloves'} +#. ~ Description for {'str': 'pair of CRIT rec gloves', 'str_pl': 'pairs of +#. CRIT rec gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are" -" made with cotton with a neoprene lining for grip-pads and warmth. " +"A pair of standard-issue rec gloves. Skin-hugging and sleek, these gloves " +"are made with cotton with a neoprene lining for grip-pads and warmth. " msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "C.R.I.T web belt" -msgid_plural "C.R.I.T web belts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for C.R.I.T web belt +#. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " -"hip." +"A standard-issue belt. Keeps your trousers up and your tools on your hip." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec duster" -msgid_plural "C.R.I.T rec dusters" +msgid "CRIT rec duster" +msgid_plural "CRIT rec dusters" msgstr[0] "" msgstr[1] "" -#. ~ Description for C.R.I.T rec duster +#. ~ Description for CRIT rec duster #: lang/json/ARMOR_from_json.py msgid "" "A waterproofed full-length duster coat. Made with neoprene, comfort and " @@ -23159,19 +22821,45 @@ msgid "" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec hat" -msgid_plural "C.R.I.T rec hats" +msgid "CRIT rec hat" +msgid_plural "CRIT rec hats" msgstr[0] "" msgstr[1] "" -#. ~ Description for C.R.I.T rec hat +#. ~ Description for CRIT rec hat #: lang/json/ARMOR_from_json.py msgid "" -"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " +"Functionality meets fashion in this waterproofed CRIT standard issue rec " "cover. Thick enough to provide warmth in colder weather, this hat shares " "the same sleek design of most of C.R.I.T's gear." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "plant fiber tunic" +msgid_plural "plant fiber tunics" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plant fiber tunic +#: lang/json/ARMOR_from_json.py +msgid "" +"A loose garment cobbled together from a collection of plant bundles and " +"wound together by makeshift cordage" +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber bracelet" +msgid_plural "plant fiber bracelets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plant fiber bracelet +#: lang/json/ARMOR_from_json.py +msgid "" +"A bracelet wound together by makeshift cordage. Has some cool looking " +"pebbles. " +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "CRIT canteen" msgid_plural "CRIT canteens" @@ -23181,8 +22869,8 @@ msgstr[1] "" #. ~ Description for CRIT canteen #: lang/json/ARMOR_from_json.py msgid "" -"A simple, durable steel canteen that can heat up food with built in " -"plutonium heating elements." +"A durable steel canteen that can heat up food with built in atomic heating " +"elements." msgstr "" #: lang/json/ARMOR_from_json.py @@ -23799,150 +23487,6 @@ msgid "" "the environment." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "wooden shield" -msgid_plural "wooden shields" -msgstr[0] "Holzschild" -msgstr[1] "Holzschilde" - -#. ~ Description for wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A crude wooden shield, lacking any metal or leather reinforcement. " -"Lightweight but not very tough." -msgstr "" -"Ein grober Holzschild, dem jegliche Metall- oder Lederverstärkung fehlt. " -"Leicht, aber nicht sehr widerstandsfähig." - -#: lang/json/ARMOR_from_json.py -msgid "large wooden shield" -msgid_plural "large wooden shields" -msgstr[0] "großer Holzschild" -msgstr[1] "große Holzschilde" - -#. ~ Description for large wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"An ancient style of wooden shield, lacking any metal or leather " -"reinforcement. Bulky, but offers a decent amount of protection." -msgstr "" -"Eine antike Art eines Holzschildes, dem jegliche Metall- oder " -"Lederverstärkung fehlt. Klobig, bietet aber einen anständigen Schutz." - -#: lang/json/ARMOR_from_json.py -msgid "heater shield" -msgid_plural "heater shields" -msgstr[0] "Dreieckschild" -msgstr[1] "Dreieckschilde" - -#. ~ Description for heater shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A medieval style of shield made of wood overlaid with leather, developed " -"from the longer kite shield. Mainly used in tournaments, but still viable " -"in battle." -msgstr "" -"Eine mittelalterliche Art von Schild, welche aus Holz besteht und mit Leder " -"überzogen wurde. Der Schild wurde aus dem längeren Normannenschild " -"entwickelt. Hauptsächlich in Turnieren benutzt, aber immer noch im Kampf zu " -"gebrauchen." - -#: lang/json/ARMOR_from_json.py -msgid "kite shield" -msgid_plural "kite shields" -msgstr[0] "Normannenschild" -msgstr[1] "Normannenschilde" - -#. ~ Description for kite shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A classic medieval style of shield, made of wood overlaid with leather, in " -"an elongated teardrop shape. Affords decent protection, but was better " -"suited for cavalry." -msgstr "" -"Eine klassisch-mittelalterliche Art von Schild, welche aus Holz besteht und " -"mit Leder überzogen wurde. Der Schild hat die Form einer langgezogenen " -"Träne. Bietet ganz guten Schutz, war aber für die Kavallerie besser " -"geeignet." - -#: lang/json/ARMOR_from_json.py -msgid "round shield" -msgid_plural "round shields" -msgstr[0] "runder Schild" -msgstr[1] "runde Schilde" - -#. ~ Description for round shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple round shield made of wood, with a rim and boss of iron. Made " -"infamous by the Vikings." -msgstr "" -"Ein einfacher runder Schild aus Holz, mit einem Rand und Buckeln aus Eisen. " -"Er wurde berühmt-berüchtigt von den Wikingern gemacht." - -#: lang/json/ARMOR_from_json.py -msgid "hoplon" -msgid_plural "hoplons" -msgstr[0] "Hoplon" -msgstr[1] "Hoplons" - -#. ~ Description for hoplon -#: lang/json/ARMOR_from_json.py -msgid "" -"A convex round shield from ancient Greece, made of wood reinforced with " -"bronze. Heavy but effective." -msgstr "" -"Ein konvexer runder Schild aus dem antiken Griechenland, der aus mit Bronze " -"verstärktem Holz besteht. Schwer aber effektiv." - -#: lang/json/ARMOR_from_json.py -msgid "scutum" -msgid_plural "scuta" -msgstr[0] "Scutum" -msgstr[1] "Scuta" - -#. ~ Description for {'str': 'scutum', 'str_pl': 'scuta'} -#: lang/json/ARMOR_from_json.py -msgid "" -"A rectangular shield from ancient Rome, made of wood and iron. Perfect for " -"fighting in formation, but not ideal for facing zombies alone." -msgstr "" -"Ein rechteckiger Schild aus dem antiken Rom, bestehend aus Holz und Eisen. " -"Perfekt für den Kampf in einer Formation, aber nicht ideal, um alleine gegen" -" Zombies zu kämpfen." - -#: lang/json/ARMOR_from_json.py -msgid "buckler" -msgid_plural "bucklers" -msgstr[0] "Buckler" -msgstr[1] "Buckler" - -#. ~ Description for buckler -#: lang/json/ARMOR_from_json.py -msgid "" -"A small metal shield from the late medieval and renaissance periods. " -"Extremely light and tough, but its small size is as much a hindrance as it " -"is an advantage." -msgstr "" -"Ein kleiner Metallschild aus dem späten Mittelalter und der Renaissance. " -"Extrem leicht und widerstandsfähig, aber seine kleine Größe ist genau so ein" -" Hindernis wie auch ein Vorteil." - -#: lang/json/ARMOR_from_json.py -msgid "hooded hat" -msgid_plural "hooded hats" -msgstr[0] "Hut mit Haube" -msgstr[1] "Hüte mit Haube" - -#. ~ Description for hooded hat -#: lang/json/ARMOR_from_json.py -msgid "" -"A proper wide-brimmed hat, modified by the addition of a hood sewn to it, to" -" better protect the neck from wind and rain." -msgstr "" -"Ein guter breitkrempiger Hut, der mit einer angenähten Kapuze ausgestattet " -"wurde, um den Hals besser vor Wind und Regen zu schützen." - #: lang/json/ARMOR_from_json.py msgid "TEST pair of socks" msgid_plural "TEST pairs of socks" @@ -23979,6 +23523,28 @@ msgid_plural "TEST briefcases" msgstr[0] "" msgstr[1] "" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "" + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -25746,6 +25312,19 @@ msgid "" "suppressing fear." msgstr "" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "" + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -25781,6 +25360,22 @@ msgid "" " the better. It can hold up to 100 mL of blood." msgstr "" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Crystallized Mana Nose Replacement" +msgid_plural "Crystallized Mana Nose Replacements" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Crystallized Mana Nose Replacement'} +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"A large gem made with crystallized mana and some other stabilizing metals. " +"Comes with a specially designed power pack (installed into the skull) that " +"does not interfere with your mana ley lines. WARNING: for Technomancer use " +"only. By using this spell you are waiving all liability of Frikken Laser " +"Beams Inc. and its subsidiaries." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" msgid_plural "chicken walker schematics" @@ -25843,6 +25438,314 @@ msgstr "" " plädieren sehr überzeugend für die Einführung von federgetriebenen " "Nuklearsprengköpfen. Es ist mit »ABGELEHNT« abgestempelt." +#: lang/json/BOOK_from_json.py +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Generic Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a manuscript purporting to be factual" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Generic Fiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a work of fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Generic Hard Bound Fiction Book +#: lang/json/BOOK_from_json.py +msgid "Template for hard bound book of fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#: lang/json/BOOK_from_json.py +msgid "An ordinary paperback book. Or is it? It is." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Book" +msgid_plural "Nonfiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for hard bound nonfiction book" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Paperback" +msgid_plural "Nonfiction Paperbacks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Nonfiction Paperback +#: lang/json/BOOK_from_json.py +msgid "template for a paperback nonfiction book" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Homemaking Book" +msgid_plural "Homemaking Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Homemaking Book +#: lang/json/BOOK_from_json.py +msgid "" +"This is a template for books about homemaking, style, home decor, and home " +"economics." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Cookbook" +msgid_plural "Hardcover Cookbooks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Cookbook +#. ~ Description for Softcover Cookbook +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about cooking." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Cookbook" +msgid_plural "Softcover Cookbooks" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "dodge skillbook abstract" +msgid_plural "dodge skillbook abstracts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for dodge skillbook abstract +#: lang/json/BOOK_from_json.py +msgid "An ordinary book. Or is it? It is." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Philosophy +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about philosophy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Softcover Philosophy. +#: lang/json/BOOK_from_json.py +msgid "This is a template for paperbacks about philosophy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. +#: lang/json/BOOK_from_json.py +msgid "This is a template." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "template for mass produced books on esoteric subjects" +msgid_plural "template for mass produced books on esoteric subjectss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for template for mass produced books on esoteric subjects +#: lang/json/BOOK_from_json.py +msgid "" +"An ordinary paperback book. Or is it? Is that a glimmer of higher truth?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Sweet Providence Romance Novel" +msgid_plural "Sweet Providence Romance Novels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Sweet Providence Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is a publisher of discount romance paperbacks easily " +"recognized by their blue and yellow cover illustrations. Despite the adult " +"nature of their subject matter, the books tend to be under 250 pages of " +"large print written in a vocabulary consistent with a 4th grade reading " +"level." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Lorn and Loan Romance Novel" +msgid_plural "Lorn and Loan Romance Novels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Lorn and Loan Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Lorn and Loan Press marketed romance paperbacks to a variety of alt " +"demographics, especially those with a penchant for eyeliner. The books are " +"billed as \"provocative,\" but words like \"malingering\" and \"turgid\" " +"also come to mind." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Vanilla Romance Novel" +msgid_plural "Vanilla Romance Novels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Vanilla Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Vanilla Media is a mainstream publisher providing romantic literature to " +"everyday readers of taste. These stories contain explicit details only in " +"the odd chapters, and invariably end with a conventionally uplifting moral." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Everyman Library" +msgid_plural "The Everyman Librarys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Everyman Library +#: lang/json/BOOK_from_json.py +msgid "" +"The Everyman Library is an imprint of Vanilla Media that publishes stories " +"about private eyes, cowboys, quarterbacks, and mobsters." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Tween Topics" +msgid_plural "Tween Topicss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Tween Topics +#: lang/json/BOOK_from_json.py +msgid "" +"Tween Topics is an imprint of Vanilla Media that publishes stories that " +"appeal to the youth of today. Or, failing that, the parents of said youth." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Quiddity Books" +msgid_plural "Quiddity Bookss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Quiddity Books +#: lang/json/BOOK_from_json.py +msgid "" +"Quiddity publishes books for young adults. They offer stories about self-" +"discovery, personal identity, and contemporary trends." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Satire Template" +msgid_plural "Satire Templates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Satire Template +#: lang/json/BOOK_from_json.py +msgid "template for mass produced satirical fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Magazine Template" +msgid_plural "Magazine Templates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "News Magazine Template" +msgid_plural "News Magazine Templates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for News Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for news magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "readable magazine" +msgid_plural "readable magazines" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "archery skill training abstract" +msgid_plural "archery skill training abstracts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for archery skill training abstract +#: lang/json/BOOK_from_json.py +msgid "template for heavy books that confer archery skill training" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Lessons for the Novice Bowhunter" msgid_plural "copies of Lessons for the Novice Bowhunter" @@ -25860,6 +25763,22 @@ msgstr "" "Bogenschützen-Anfänger nötig sind, um mit der Jagd mittels diverser Bögen " "und Armbrüste anzufangen." +#: lang/json/BOOK_from_json.py +msgid "Zen and the Art of Archery" +msgid_plural "copies of Zen and the Art of Archery" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies +#. of Zen and the Art of Archery'} +#: lang/json/BOOK_from_json.py +msgid "" +"This massive book contains a wealth of vital information for the novice " +"archer." +msgstr "" +"Dieses wuchtige Buch enthält eine große Menge an wichtigen Informationen für" +" Anfänger im Bogenschießen." + #: lang/json/BOOK_from_json.py msgid "Archery for Kids" msgid_plural "issues of Archery for Kids" @@ -25878,22 +25797,6 @@ msgstr "" "so einfach, aber sobald du weißt, wie man es anstellt, wirst du mit dem " "Bogenschießen viel Spaß haben." -#: lang/json/BOOK_from_json.py -msgid "Zen and the Art of Archery" -msgid_plural "copies of Zen and the Art of Archery" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies -#. of Zen and the Art of Archery'} -#: lang/json/BOOK_from_json.py -msgid "" -"This massive book contains a wealth of vital information for the novice " -"archer." -msgstr "" -"Dieses wuchtige Buch enthält eine große Menge an wichtigen Informationen für" -" Anfänger im Bogenschießen." - #: lang/json/BOOK_from_json.py msgid "car buyer's guide" msgid_plural "car buyer's guides" @@ -25970,6 +25873,284 @@ msgstr "" " ist gefüllt mit lange erprobten, nicht blödsinnigen Informationen und ist " "so geschrieben, um von Anfängern verstanden zu werden." +#: lang/json/BOOK_from_json.py +msgid "Advanced Physical Chemistry" +msgid_plural "copies of Advanced Physical Chemistry" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies +#. of Advanced Physical Chemistry'} +#: lang/json/BOOK_from_json.py +msgid "" +"A university-level textbook on advanced principles of physical chemistry and" +" all its branches: thermochemistry, electrochemistry, solid-state chemistry," +" photochemistry, quantum chemistry et cetera." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Modern Tanner" +msgid_plural "copies of The Modern Tanner" +msgstr[0] "Der moderne Gerber" +msgstr[1] "Exemplare von Der moderne Gerber" + +#. ~ Description for {'str': 'The Modern Tanner', 'str_pl': 'copies of The +#. Modern Tanner'} +#: lang/json/BOOK_from_json.py +msgid "" +"An in-depth and easy to read guide that details a very modern take on the " +"ancient art of leather tanning." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "PE050 \"Alpha\": Preliminary Report" +msgid_plural "copies of PE050 \"Alpha\": Preliminary Report" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'PE050 "Alpha": Preliminary Report', 'str_pl': +#. 'copies of PE050 "Alpha": Preliminary Report'} +#: lang/json/BOOK_from_json.py +msgid "" +"This sheaf of papers--dated two weeks before all this started--describes " +"some new chemical formula, and its effects on human subjects. It's stamped " +"\"APPROVED\"…" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "lab journal-Dionne" +msgid_plural "lab journals-Dionne" +msgstr[0] "Laborjournal: Dionne" +msgstr[1] "Laborjournale: Dionne" + +#. ~ Description for {'str': 'lab journal-Dionne', 'str_pl': 'lab journals- +#. Dionne'} +#: lang/json/BOOK_from_json.py +msgid "" +"This team logbook details several varieties of mutagenic experiments, " +"focusing on those derived from various Earth fauna. The team seems quite " +"enthusiastic--if not eager--about their results." +msgstr "" +"Dieses Teamlogbuch erklärt detailliert mehrere Varianten mutagener " +"Experimente und konzentiert sich auf diejenigen, die von diversen " +"Erdentieren abgeleitet wurden. Das Team scheint ziemlich enthusiastisch – " +"wenn nicht gar eifrig – über ihre Ergebnisse zu sein." + +#: lang/json/BOOK_from_json.py +msgid "PE065 \"Chimera\": Best Practices" +msgid_plural "copies of PE065 \"Chimera\": Best Practices" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'PE065 "Chimera": Best Practices', 'str_pl': +#. 'copies of PE065 "Chimera": Best Practices'} +#: lang/json/BOOK_from_json.py +msgid "" +"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…" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "lab journal-Smythe" +msgid_plural "lab journals-Smythe" +msgstr[0] "Laborjournal: Smythe" +msgstr[1] "Laborjournale: Smythe" + +#. ~ Description for {'str': 'lab journal-Smythe', 'str_pl': 'lab journals- +#. Smythe'} +#: lang/json/BOOK_from_json.py +msgid "" +"This team logbook details several varieties of mutagenic experiments, " +"focusing on those derived from flesh contaminated with XE037. The results " +"look promising but the procurement methods seem awfully vague…" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "standpipe maintenance log" +msgid_plural "standpipe maintenance logs" +msgstr[0] "Standrohr-Wartungsprotokoll" +msgstr[1] "Standrohr-Wartungsprotokolle" + +#. ~ Description for {'str': 'standpipe maintenance log'} +#: lang/json/BOOK_from_json.py +msgid "" +"This binder details the scheduled maintenance for several plumbing systems " +"throughout the facility. However, some of the log sheets seem to be filled " +"with… a chemical formula?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "chemical reference-CLASSIFIED" +msgid_plural "chemical references-CLASSIFIED" +msgstr[0] "chemische Referenz (vertraulich)" +msgstr[1] "chemische Referenzen (vertraulich)" + +#. ~ Description for {'str': 'chemical reference-CLASSIFIED', 'str_pl': +#. 'chemical references-CLASSIFIED'} +#: lang/json/BOOK_from_json.py +msgid "" +"This somewhat technical binder has several intimidating security warnings on" +" the cover, yet guarantees unauthorized readers \"permanent employment, for " +"life\". It contains useful information on \"basic\" chemical projects like " +"methamphetamine and heroin, along with briefing on things called \"XE037\" " +"and \"PE012\"." +msgstr "" +"Dieser recht technische Einband hat mehrere bedrohliche Sicherheitswarnungen" +" auf dem Buchdeckel, garantiert allerdings unautorisierten Lesern eine " +"»lebenslange Beschäftigung«. Es enthält nützliche Informationen über " +"»grundlegende« chemische Projekte wie Methamphetamine und Heroin, gemeinsam " +"mit kurzen Abrissen über Dinge, die »XE037« und »PE012« genannt werden." + +#: lang/json/BOOK_from_json.py +msgid "lab journal-x-|xp" +msgid_plural "lab journals-x-|xp" +msgstr[0] "Laborjournal: x-|xp" +msgstr[1] "Laborjournale: x-|xp" + +#. ~ Description for {'str': 'lab journal-x-|xp', 'str_pl': 'lab +#. journals-x-|xp'} +#: lang/json/BOOK_from_json.py +msgid "" +"This damaged team logbook lacks (deliberately?) any identifying information," +" but still contains useful information on several types of mutagen and their" +" development." +msgstr "" +"Diesem beschädigten Teamlogbuch fehlen (absichtlich?) jegliche " +"identifizierenden Informationen, aber es enthält immer noch nützliche " +"Informationen über diverse Mutagenarten und ihre Entwicklung." + +#: lang/json/BOOK_from_json.py +msgid "PE023 \"Medical\": Application and Findings" +msgid_plural "copies of PE023 \"Medical\": Application and Findings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'PE023 "Medical": Application and Findings', +#. 'str_pl': 'copies of PE023 "Medical": Application and Findings'} +#: lang/json/BOOK_from_json.py +msgid "" +"This binder of highly technical papers describes some new chemical formula, " +"and its effects on human subjects. It's stamped \"APPROVED\"…" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "PE070 \"Raptor\": Proposal" +msgid_plural "copies of PE070 \"Raptor\": Proposal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'PE070 "Raptor": Proposal', 'str_pl': 'copies of +#. PE070 "Raptor": Proposal'} +#: lang/json/BOOK_from_json.py +msgid "" +"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." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Best Practices for Compound Delivery" +msgid_plural "copies of Best Practices for Compound Delivery" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Best Practices for Compound Delivery', 'str_pl': +#. 'copies of Best Practices for Compound Delivery'} +#: lang/json/BOOK_from_json.py +msgid "" +"This internal manual details several varieties of mutagenic experiments, as " +"well as describing the protocols used to concentrate mutagens for quicker " +"results. The authors recommend that researchers ensure that their subjects " +"are well-fed and in good health, as the concentrated serums draw heavily on " +"subjects' bodies." +msgstr "" +"Dieses interne Handbuch beschreibt detailliert diverse Varianten mutagener " +"Experimente, sowie die Protokolle, die benutzt wurden, um die Mutagene für " +"schnellere Ergebnisse zu konzentrieren. Die Autoren empfehlen, dass die " +"Forscher sicherstellen, dass ihre Testpersonen gut ernährt und in guter " +"Gesundheit sind, da die konzentrierten Seren die Körper der Testpersonen " +"belasten." + +#: lang/json/BOOK_from_json.py +msgid "CRC-Merck Handbook, 4th edition" +msgid_plural "copies of CRC-Merck Handbook, 4th edition" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'CRC-Merck Handbook, 4th edition', 'str_pl': +#. 'copies of CRC-Merck Handbook, 4th edition'} +#: lang/json/BOOK_from_json.py +msgid "" +"This huge hardbound book is a collection of reference data and formulae " +"pertinent to many technical disciplines. If poring over tables of chemical " +"and physical data is your thing, this is the book for you." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" +msgstr[0] "Chemielehrbuch" +msgstr[1] "Chemielehrbücher" + +#. ~ Description for {'str': 'chemistry textbook'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on chemistry." +msgstr "Ein Hochschulbuch über Chemie." + +#: lang/json/BOOK_from_json.py +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', +#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': +#. 'copies of Art and Science of Chemical Warfare'} +#: lang/json/BOOK_from_json.py +msgid "" +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at" +" times, though the information is top-notch." +msgstr "" +"Dieser tiefgründige und technische Text deckt den Entwurf, die Entwicklung, " +"die Verbreitung von und die Verteidigungen gegen diverse chemischen Waffen " +"durch die Jahrhunderte ab. Die Fotos, die der Autor wählte, machen ihn " +"mitunter zu einer schwierigen Lektüre, aber die Informationen sind " +"erstklassig." + +#: lang/json/BOOK_from_json.py +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments +#. that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science +#. Experiments that Really Work'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book with comprehensive and accurate step-by-step illustrated instructions" +" for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "SICP" msgid_plural "copies of SICP" @@ -26053,22 +26234,6 @@ msgstr "" "Ein schweres Lehrbuch gewidmet dem fortgeschrittenen Software-Design; " "geschrieben für verschiedene Programmiersprachen." -#: lang/json/BOOK_from_json.py -msgid "Advanced Physical Chemistry" -msgid_plural "copies of Advanced Physical Chemistry" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies -#. of Advanced Physical Chemistry'} -#: lang/json/BOOK_from_json.py -msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." -msgstr "" -"Ein Lehrbuch auf Universitätsniveau über die fortgeschrittenen Prinzipien " -"der Chemie, sowohl organischer als auch nicht-organischer Natur." - #: lang/json/BOOK_from_json.py msgid "The Homebrewer's Bible" msgid_plural "copies of The Homebrewer's Bible" @@ -26198,205 +26363,6 @@ msgstr "" "originelle Rezepte und ein paar Kochtipps zwischen all den Modefotos und den" " Sexratgeberspalten." -#: lang/json/BOOK_from_json.py -msgid "The Modern Tanner" -msgid_plural "copies of The Modern Tanner" -msgstr[0] "Der moderne Gerber" -msgstr[1] "Exemplare von Der moderne Gerber" - -#. ~ Description for {'str': 'The Modern Tanner', 'str_pl': 'copies of The -#. Modern Tanner'} -#: lang/json/BOOK_from_json.py -msgid "" -"An in-depth and easy to read guide that details a very modern take on the " -"ancient art of leather tanning." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "PE050 \"Alpha\": Preliminary Report" -msgid_plural "copies of PE050 \"Alpha\": Preliminary Report" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'PE050 "Alpha": Preliminary Report', 'str_pl': -#. 'copies of PE050 "Alpha": Preliminary Report'} -#: lang/json/BOOK_from_json.py -msgid "" -"This sheaf of papers--dated two weeks before all this started--describes " -"some new chemical formula, and its effects on human subjects. It's stamped " -"\"APPROVED\"…" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "lab journal-Dionne" -msgid_plural "lab journals-Dionne" -msgstr[0] "Laborjournal: Dionne" -msgstr[1] "Laborjournale: Dionne" - -#. ~ Description for {'str': 'lab journal-Dionne', 'str_pl': 'lab journals- -#. Dionne'} -#: lang/json/BOOK_from_json.py -msgid "" -"This team logbook details several varieties of mutagenic experiments, " -"focusing on those derived from various Earth fauna. The team seems quite " -"enthusiastic--if not eager--about their results." -msgstr "" -"Dieses Teamlogbuch erklärt detailliert mehrere Varianten mutagener " -"Experimente und konzentiert sich auf diejenigen, die von diversen " -"Erdentieren abgeleitet wurden. Das Team scheint ziemlich enthusiastisch – " -"wenn nicht gar eifrig – über ihre Ergebnisse zu sein." - -#: lang/json/BOOK_from_json.py -msgid "PE065 \"Chimera\": Best Practices" -msgid_plural "copies of PE065 \"Chimera\": Best Practices" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'PE065 "Chimera": Best Practices', 'str_pl': -#. 'copies of PE065 "Chimera": Best Practices'} -#: lang/json/BOOK_from_json.py -msgid "" -"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…" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "lab journal-Smythe" -msgid_plural "lab journals-Smythe" -msgstr[0] "Laborjournal: Smythe" -msgstr[1] "Laborjournale: Smythe" - -#. ~ Description for {'str': 'lab journal-Smythe', 'str_pl': 'lab journals- -#. Smythe'} -#: lang/json/BOOK_from_json.py -msgid "" -"This team logbook details several varieties of mutagenic experiments, " -"focusing on those derived from flesh contaminated with XE037. The results " -"look promising but the procurement methods seem awfully vague…" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "standpipe maintenance log" -msgid_plural "standpipe maintenance logs" -msgstr[0] "Standrohr-Wartungsprotokoll" -msgstr[1] "Standrohr-Wartungsprotokolle" - -#. ~ Description for {'str': 'standpipe maintenance log'} -#: lang/json/BOOK_from_json.py -msgid "" -"This binder details the scheduled maintenance for several plumbing systems " -"throughout the facility. However, some of the log sheets seem to be filled " -"with… a chemical formula?" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "chemical reference-CLASSIFIED" -msgid_plural "chemical references-CLASSIFIED" -msgstr[0] "chemische Referenz (vertraulich)" -msgstr[1] "chemische Referenzen (vertraulich)" - -#. ~ Description for {'str': 'chemical reference-CLASSIFIED', 'str_pl': -#. 'chemical references-CLASSIFIED'} -#: lang/json/BOOK_from_json.py -msgid "" -"This somewhat technical binder has several intimidating security warnings on" -" the cover, yet guarantees unauthorized readers \"permanent employment, for " -"life\". It contains useful information on \"basic\" chemical projects like " -"methamphetamine and heroin, along with briefing on things called \"XE037\" " -"and \"PE012\"." -msgstr "" -"Dieser recht technische Einband hat mehrere bedrohliche Sicherheitswarnungen" -" auf dem Buchdeckel, garantiert allerdings unautorisierten Lesern eine " -"»lebenslange Beschäftigung«. Es enthält nützliche Informationen über " -"»grundlegende« chemische Projekte wie Methamphetamine und Heroin, gemeinsam " -"mit kurzen Abrissen über Dinge, die »XE037« und »PE012« genannt werden." - -#: lang/json/BOOK_from_json.py -msgid "lab journal-x-|xp" -msgid_plural "lab journals-x-|xp" -msgstr[0] "Laborjournal: x-|xp" -msgstr[1] "Laborjournale: x-|xp" - -#. ~ Description for {'str': 'lab journal-x-|xp', 'str_pl': 'lab -#. journals-x-|xp'} -#: lang/json/BOOK_from_json.py -msgid "" -"This damaged team logbook lacks (deliberately?) any identifying information," -" but still contains useful information on several types of mutagen and their" -" development." -msgstr "" -"Diesem beschädigten Teamlogbuch fehlen (absichtlich?) jegliche " -"identifizierenden Informationen, aber es enthält immer noch nützliche " -"Informationen über diverse Mutagenarten und ihre Entwicklung." - -#: lang/json/BOOK_from_json.py -msgid "PE023 \"Medical\": Application and Findings" -msgid_plural "copies of PE023 \"Medical\": Application and Findings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'PE023 "Medical": Application and Findings', -#. 'str_pl': 'copies of PE023 "Medical": Application and Findings'} -#: lang/json/BOOK_from_json.py -msgid "" -"This binder of highly technical papers describes some new chemical formula, " -"and its effects on human subjects. It's stamped \"APPROVED\"…" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "PE070 \"Raptor\": Proposal" -msgid_plural "copies of PE070 \"Raptor\": Proposal" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'PE070 "Raptor": Proposal', 'str_pl': 'copies of -#. PE070 "Raptor": Proposal'} -#: lang/json/BOOK_from_json.py -msgid "" -"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." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Best Practices for Compound Delivery" -msgid_plural "copies of Best Practices for Compound Delivery" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Best Practices for Compound Delivery', 'str_pl': -#. 'copies of Best Practices for Compound Delivery'} -#: lang/json/BOOK_from_json.py -msgid "" -"This internal manual details several varieties of mutagenic experiments, as " -"well as describing the protocols used to concentrate mutagens for quicker " -"results. The authors recommend that researchers ensure that their subjects " -"are well-fed and in good health, as the concentrated serums draw heavily on " -"subjects' bodies." -msgstr "" -"Dieses interne Handbuch beschreibt detailliert diverse Varianten mutagener " -"Experimente, sowie die Protokolle, die benutzt wurden, um die Mutagene für " -"schnellere Ergebnisse zu konzentrieren. Die Autoren empfehlen, dass die " -"Forscher sicherstellen, dass ihre Testpersonen gut ernährt und in guter " -"Gesundheit sind, da die konzentrierten Seren die Körper der Testpersonen " -"belasten." - -#: lang/json/BOOK_from_json.py -msgid "CRC-Merck Handbook, 4th edition" -msgid_plural "copies of CRC-Merck Handbook, 4th edition" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'CRC-Merck Handbook, 4th edition', 'str_pl': -#. 'copies of CRC-Merck Handbook, 4th edition'} -#: lang/json/BOOK_from_json.py -msgid "" -"This huge hardbound book is a collection of reference data and formulae " -"pertinent to many technical disciplines. If poring over tables of chemical " -"and physical data is your thing, this is the book for you." -msgstr "" - #. ~ That would translate out to The Scottish Book of Cookery, or The Scottish #. Cookbook. #: lang/json/BOOK_from_json.py @@ -26410,29 +26376,11 @@ msgstr[1] "Exemplare von Ye Scots Beuk o Cuikery" #. 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of" +" people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." msgstr "" -"Ein teilweise übersetztes Kochbuch aus dem Schottland des dreizehnten " -"Jahrhunderts. Obwohl es etwas schwierig zu lesen ist, da sich zwischen den " -"Rezepten eine beunruhigend hohe Anzahl an Illustationen von Leuten, die sich" -" gegenseitig abstechen, gibt, bietet es doch Einblicke in die " -"mittelalterlich schottische Kultur und Mode sowie neue Verwendungszwecke für" -" Haferflocken, Fisch und Schafsleber." - -#: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" -msgstr[0] "Chemielehrbuch" -msgstr[1] "Chemielehrbücher" - -#. ~ Description for {'str': 'chemistry textbook'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." -msgstr "Ein Hochschulbuch über Chemie." #: lang/json/BOOK_from_json.py msgid "The Vinegar Maker's Handbook" @@ -26626,17 +26574,17 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to -#. home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " -"chapter contains a complete recipe for it's namesake." +"chapter contains a complete recipe for its namesake." msgstr "" #: lang/json/BOOK_from_json.py @@ -26665,7 +26613,7 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "" "The smallest cookbook on the market, marketed exclusively to the " -"outdoorsman. Packs a surprising number of recipes for it's tiny size." +"outdoorsman. Packs a surprising number of recipes for its tiny size." msgstr "" #: lang/json/BOOK_from_json.py @@ -26771,6 +26719,21 @@ msgstr[1] "" msgid "The Kids' Guide to Acting and Stagecraft." msgstr "Der Führer über die Schauspiel- und Bühnenkunst für Kinder." +#: lang/json/BOOK_from_json.py +msgid "Treasury of Legends about Western Dancing" +msgid_plural "copies of Western Dancing" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Treasury of Legends about Western Dancing', +#. 'str_pl': 'copies of Western Dancing'} +#: lang/json/BOOK_from_json.py +msgid "" +"Written by Emanuel Nogueira, a constabulario and historian of Nuevo Laredo, " +"this massive book details the movements and cultural legacies of a variety " +"of North American folk dances." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "AAA Guide" msgid_plural "copies of AAA Guide" @@ -27498,27 +27461,6 @@ msgstr "" "Geschichte der Brandbekämpfung von der Antike bis in die Neuzeit, mit einem " "Fokus auf die Technologie, die benutzt wurde, um Leben zu retten." -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': -#. 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at" -" times, though the information is top-notch." -msgstr "" -"Dieser tiefgründige und technische Text deckt den Entwurf, die Entwicklung, " -"die Verbreitung von und die Verteidigungen gegen diverse chemischen Waffen " -"durch die Jahrhunderte ab. Die Fotos, die der Autor wählte, machen ihn " -"mitunter zu einer schwierigen Lektüre, aber die Informationen sind " -"erstklassig." - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" @@ -27659,21 +27601,6 @@ msgid "" "machining operation, the answer lies somewhere in these pages." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', -#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -27998,6 +27925,20 @@ msgstr[1] "" msgid "A large textbook for college students about biodiesel." msgstr "Ein großes Lehrbuch für College-Studenten über Biodiesel." +#: lang/json/BOOK_from_json.py +msgid "Hot Rod Chassis & Suspension Handbook" +msgid_plural "copies of Hot Rod Handbook" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Hot Rod Chassis & Suspension Handbook', +#. 'str_pl': 'copies of Hot Rod Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"By learning the fundamentals of chassis building and suspension design you " +"will gain the critical knowledge needed to hot rod properly." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" msgid_plural "copies of Mechanical Mastery" @@ -28045,17 +27986,6 @@ msgstr "" "Ein zerlesenes gebundenes Buch, welches einfache Nahkampfstrategien und " "-techniken illustriert." -#: lang/json/BOOK_from_json.py -msgid "paperback abstract" -msgid_plural "paperback abstracts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'paperback abstract'} -#: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" msgid_plural "copies of Zombie Survival Guide" @@ -28087,23 +28017,6 @@ msgstr "" "Ein vollständiges Flugprotokoll für ein Militärflugzeug. Nichts " "interessantes sticht heraus." -#: lang/json/BOOK_from_json.py -msgid "children's book" -msgid_plural "children's books" -msgstr[0] "Kinderbuch" -msgstr[1] "Kinderbücher" - -#. ~ Description for {'str': "children's book"} -#: lang/json/BOOK_from_json.py -msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the dead walked" -" and the world moved on." -msgstr "" -"Ein kleines Buch für kleine Leser. Die bunten Cartoonfiguren und heiteren " -"Geschichten, die in ihm sind, gehören in eine andere Zeit, bevor die Toten " -"liefen und die Welt sich weiterdrehte." - #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" msgid_plural "Ranch Prospectus" @@ -28143,160 +28056,6 @@ msgstr "" "Eine Sammlung von Essays von verschiedenen Autoren aus der ganzen Welt, " "inklusive Werken von Churchill, Mailer, Eco und Voltaire." -#: lang/json/BOOK_from_json.py -msgid "book of fairy tales" -msgid_plural "books of fairy tales" -msgstr[0] "Märchenbuch" -msgstr[1] "Märchenbücher" - -#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy -#. tales'} -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of folklore featuring the usual cast of fairies, " -"goblins, and trolls." -msgstr "" -"Eine unterhaltsame Sammlung von Folklore mit den üblichen Verdächten: Feen, " -"Goblins und Trolle." - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale is about a wolf who eats so much salted meat she becomes " -"trapped in the butcher's cellar." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this traditional story of beastly intrigue a clever fox convinces an " -"elderly lion to kill a derogatory wolf." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is an illustrated fairy tale book about a conversation between a mouse " -"and a cat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of stories featuring \"Goldilocks and The Three " -"Bears\" on the cover." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a well illustrated fairy tale about a war between the birds and the " -"beasts, with particulars on the wartime conduct and eventual fate of the " -"bat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " -"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" -" page." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale book is entitled \"Little Red Cap\". It details a red-" -"cloaked child's various encounters with talking wolves." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of ghost stories warning about the dangers of stealing from the" -" dead." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"An Irish fairy tale in which a Celtic poet marries a princess who has been " -"cursed with the head of a pig." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A book of Italian fairy tales translated into English. The cover features " -"an orange fairy juggling a lemon, a lime, and a tangerine." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "A book of fables about people who change into birds." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This compendium of amusing folk tales about the devil is titled \"Hell's " -"Kettle: Legends of the Devil.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This charming book of Swedish fables is titled, \"The Glass Mountain and the" -" Princess.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a collection of fairy tale stories warning against the consequences " -"of extreme greed." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a book of legends collected by Traveller Johnny Cassidy in the " -"1960s." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of fables expands upon the legend of the Seven Sleepers of " -"Ephesus." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this fairy tale a strong man frightens an ogre by squeezing water out of " -"a stone." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of rustic folk tales bears the title: \"How to Shout Down the " -"Devil.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " -"fables about logical errors and foolish misjudgements of the Kadambawa men." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " -"Stories.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " -"suitable for small children." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" msgid_plural "copies of The Hitchhiker's Guide to the Cataclysm" @@ -28313,317 +28072,6 @@ msgstr "" "Auf dem Buchdeckel steht ihn großen, freundlichen Buchstaben die Botschaft " "»Keine Panik!«." -#: lang/json/BOOK_from_json.py -msgid "Mycenacean Hymns" -msgid_plural "copies of Mycenacean Hymns" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of -#. Mycenacean Hymns'} -#: lang/json/BOOK_from_json.py -msgid "" -"A vellum book containing the hymns central to Marloss faith. As the verses " -"lead to each other, the text sings of unity and promised paradise." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "King James Bible" -msgid_plural "copies of King James Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King -#. James Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, which originated in England " -"in the early 1600s." -msgstr "" -"Eine englische Übersetzung der christlichen Bibel. Sie hat ihren Ursprung in" -" England in den frühen 1600ern." - -#: lang/json/BOOK_from_json.py -msgid "Eastern Orthodox Bible" -msgid_plural "copies of Eastern Orthodox Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of -#. Eastern Orthodox Bible'} -#: lang/json/BOOK_from_json.py -msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." -msgstr "" -"Ein englischsprachiges Exemplar der Eastern Orhodox Bible, einer Übersetzung" -" der Bibel." - -#: lang/json/BOOK_from_json.py -msgid "Gideon Bible" -msgid_plural "copies of Gideon Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon -#. Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, distributed free of charge by" -" Gideons International." -msgstr "" -"Eine englische Übersetzung der christlichen Bibel, kostenlos verteilt vom " -"Internationalen Gideonbund." - -#: lang/json/BOOK_from_json.py -msgid "The Guru Granth Sahib" -msgid_plural "copies of The Guru Granth Sahib" -msgstr[0] "Der Guru Granth Sahib" -msgstr[1] "Exemplare von Der Guru Granth Sahib" - -#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The -#. Guru Granth Sahib'} -#: lang/json/BOOK_from_json.py -msgid "A single-volume copy of the central religious texts of Sikhism." -msgstr "" -"Ein einbändiges Exemplar der zentralen religiösen Texte des Sikhismus." - -#: lang/json/BOOK_from_json.py -msgid "Hadith" -msgid_plural "copies of Hadith" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} -#: lang/json/BOOK_from_json.py -msgid "" -"A Muslim religious text containing an account of the sayings and actions of " -"the prophet Muhammad." -msgstr "" -"Ein muslimischer religiöser Text, der einen Bericht der Sprüche und Taten " -"des Propheten Mohammed enthält." - -#: lang/json/BOOK_from_json.py -msgid "Principia Discordia" -msgid_plural "copies of Principia Discordia" -msgstr[0] "Principia Discordia" -msgstr[1] "Exemplare von Principia Discordia" - -#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of -#. Principia Discordia'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of Discordianism. It seems to " -"primarily concern chaos, and features a card in the back which informs you " -"that you are now a 'genuine and authorized Pope of Discordia'." -msgstr "" -"Ein Buch, das die Hauptglaubenssätze des Diskordianismus verkörpert. Es " -"scheint hauptsächlich um Chaos zu gehen. Das Buch enthält eine Karte in der " -"Rückseite. Sie setzt dich davon in Kenntnis, dass du nun ein »echter und " -"autorisierter Papst der Diskordia« bist." - -#: lang/json/BOOK_from_json.py -msgid "The Kojiki" -msgid_plural "copies of The Kojiki" -msgstr[0] "Das Kojiki" -msgstr[1] "Kojikis" - -#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} -#: lang/json/BOOK_from_json.py -msgid "" -"The oldest extant chronicle of Japan's myths and history, the stories " -"contained in the Kojiki are part of the inspiration behind Shinto practices." -msgstr "" -"Dies ist die älteste erhaltene Chronik von Japans Mythen und Geschichte. Die" -" Geschichten in der Kojiki sind Teil der Inspiration hinter schintoistischen" -" Praktiken." - -#: lang/json/BOOK_from_json.py -msgid "The Book of Mormon" -msgid_plural "copies of The Book of Mormon" -msgstr[0] "Das Buch Mormon" -msgstr[1] "Mormon-Bücher" - -#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The -#. Book of Mormon'} -#: lang/json/BOOK_from_json.py -msgid "" -"The sacred text of the Latter Day Saint movement of Christianity, originally" -" published in 1830 by Joseph Smith." -msgstr "" -"Der heilige Text der Mormonen, ursprünglich im Jahre 1830 von Joseph Smith " -"veröffentlicht." - -#: lang/json/BOOK_from_json.py -msgid "The Gospel of the Flying Spaghetti Monster" -msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" -msgstr[0] "Die Heilsbotschaft des Fliegenden Spaghettimonsters" -msgstr[1] "Exemplare von Die Heilsbotschaft des Fliegenden Spaghettimonsters" - -#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', -#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of the Church of the Flying Spaghetti " -"Monster. It seems to involve a lot of pirates and some sort of invisible " -"drunken monster made of pasta." -msgstr "" -"Ein Buch, welches die Hauptglaubenssätze der Kirche des Fliegenden " -"Spaghettimonsters beinhaltet. Es scheint um viele Piraten und irgendso ein " -"betrunkenes Monster aus Pasta zu gehen." - -#: lang/json/BOOK_from_json.py -msgid "Quran" -msgid_plural "copies of Quran" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Muslim book of holy scriptures, with " -"explanatory notes and commentaries to aid in understanding." -msgstr "" -"Eine englische Übersetzung des muslimischen Buchs der heiligen Schriften, " -"mit erläuternden Bemerkungen und Kommentaren, um beim Verständnis zu helfen." - -#: lang/json/BOOK_from_json.py -msgid "Dianetics" -msgid_plural "copies of Dianetics" -msgstr[0] "Dianetik" -msgstr[1] "Exemplare von Dianetik" - -#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is the canonical text of Scientology. Written by a science " -"fiction author, it contains self-improvement techniques and musings on " -"psychology called Dianetics." -msgstr "" -"Dieses Buch ist der kanonische Text von Scientology. Er wurde von einem " -"Science-Fiction-Autor geschrieben und enthält Selbstverbesserungstechniken " -"und Träumereien über eine Psychologie namens Dianetik." - -#: lang/json/BOOK_from_json.py -msgid "The Book of the SubGenius" -msgid_plural "copies of The Book of the SubGenius" -msgstr[0] "Das Buch des SubGenius" -msgstr[1] "Bücher des SubGenius" - -#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of -#. The Book of the SubGenius'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book about the Church of the SubGenius. It seems to involve a salesman " -"named J. R. \"Bob\" Dobbs and a concept called 'slack'." -msgstr "" -"Ein Buch über die Kirche des SubGenius. Es scheint einen Verkäufer namens J." -" R. »Bob« Dobbs und ein Kopzept namens »slack« zu involvieren." - -#: lang/json/BOOK_from_json.py -msgid "The Sutras of the Buddha" -msgid_plural "copies of The Sutras of the Buddha" -msgstr[0] "Die Sutras des Buddhas" -msgstr[1] "Exemplare von Die Sutras des Buddhas" - -#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of -#. The Sutras of the Buddha'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of discourses attributed to the Buddha and his close disciples." -msgstr "" -"Eine Sammlung von Diskursen, welche Buddha und seinen nahestehenden Jüngern " -"zugeschrieben werden." - -#: lang/json/BOOK_from_json.py -msgid "Talmud" -msgid_plural "copies of Talmud" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of Talmud'} -#: lang/json/BOOK_from_json.py -msgid "" -"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " -"Hebrew Bible with teachings and opinions of thousands of rabbis." -msgstr "" -"Als einer der zentralen Texte des rabbinischen Judentums legt der Talmud auf" -" Basis des Tanachs die Lehren und Meinungen von tausenden Rabbis dar." - -#: lang/json/BOOK_from_json.py -msgid "Tanakh" -msgid_plural "copies of Tanakh" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single-volume book containing the complete canon of the Jewish Bible." -msgstr "" -"Ein einbändiges Buch, das den kompletten Kanon der jüdischen Bibel enthält." - -#: lang/json/BOOK_from_json.py -msgid "The Tripitaka" -msgid_plural "copies of The Tripitaka" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The -#. Tripitaka'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Buddhist writings describing their canons of " -"scriptures." -msgstr "" -"Eine Sammlung heiliger buddhistischer Aufzeichnungen, welche ihre Kanone der" -" Schriften beschreiben." - -#: lang/json/BOOK_from_json.py -msgid "The Upanishads" -msgid_plural "copies of The Upanishads" -msgstr[0] "Die Upanishaden" -msgstr[1] "Exemplare von Die Upanishaden" - -#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The -#. Upanishads'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Hindu writings regarding the nature of reality and " -"describing the character and form of human salvation." -msgstr "" -"Eine Sammlung heiliger hinduistischer Schriften, die die Natur der Realität " -"betreffen und den Charakter und die Form der menschlichen Erlösung " -"beschreiben." - -#: lang/json/BOOK_from_json.py -msgid "The Four Vedas" -msgid_plural "copies of The Four Vedas" -msgstr[0] "Die vier Veden" -msgstr[1] "Exemplare von Die vier Veden" - -#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four -#. Vedas'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single volume containing all four Vedas, which are the oldest scriptures " -"of Hinduism." -msgstr "" -"Ein einbändiges Buch, dass alle vier Veden, welche die ältesten Schriften " -"des Hinduismus sind, enthält." - -#: lang/json/BOOK_from_json.py -msgid "The Satanic Bible" -msgid_plural "copies of The Satanic Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The -#. Satanic Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of essays, observations, and rituals published by Anton LaVey " -"in 1969." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "comic book" msgid_plural "comic books" @@ -28663,6 +28111,19 @@ msgstr "" "Aktuelle Ereignisse, die ein paar Leute betrifft, die nun alle (un-)tot " "sind." +#: lang/json/BOOK_from_json.py +msgid "The Analyst" +msgid_plural "issues of The Analyst" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Analyst', 'str_pl': 'issues of The Analyst'} +#: lang/json/BOOK_from_json.py +msgid "" +"This news magazine has been described as \"a kind of Reader's Digest for " +"America's corporate elite.\" These concerns are, of course, behind us now." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Playboy" msgid_plural "issues of Playboy" @@ -28802,6 +28263,22 @@ msgid "" "the underworld is eroded by rumor and paranoia." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "Midnight Cop" +msgid_plural "copies of Midnight Cop" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Midnight Cop', 'str_pl': 'copies of Midnight +#. Cop'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this bare-knuckled potboiler, a ruthless police detective schemes to shut" +" down local crime lords by pitting them against each other. When long-" +"simmering resentments finally flare the city learns why they call it \"the " +"dead of night.\"" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "drama novel" msgid_plural "drama novels" @@ -28890,6 +28367,63 @@ msgstr "" "Eine Erzählung über einen hartgesottenen Inspektor mit knallharter Action " "und Intrige." +#: lang/json/BOOK_from_json.py +msgid "Planet of the Murderous Squids that Time Forgot!" +msgid_plural "Planet of the Murderous Squids that Time Forgot!s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Planet of the Murderous Squids that Time Forgot! +#: lang/json/BOOK_from_json.py +msgid "" +"In this psychedelic adventure novel of cosmic exploration, an elderly " +"assassin discovers a planet too good to be true. Only once it is too late " +"does she discover the harrowing truth at the center of \"The Planet of the " +"Murderous Squids that Time Forgot!\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Great Capes of Metropolis" +msgid_plural "The Great Capes of Metropoliss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Great Capes of Metropolis +#: lang/json/BOOK_from_json.py +msgid "" +"In this classic pulp paperback of superheroic exploits, a group of masked " +"vigilantes with diverse superpowers learn to work together to defeat the " +"ultimate villain." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Yesterday's Murdered" +msgid_plural "Yesterday's Murdereds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Yesterday's Murdered +#: lang/json/BOOK_from_json.py +msgid "" +"In this fast paced pulp noir, a hard-drinking detective with nerves of steel" +" has one last shot at vengeance." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Flashgun Condor and the Crimson Criminal" +msgid_plural "Flashgun Condor and the Crimson Criminals" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Flashgun Condor and the Crimson Criminal +#: lang/json/BOOK_from_json.py +msgid "" +"A hot-blooded photographer who fights crime with film, footage, and fists, " +"Condor is more than a mere shutterbug on the crime beat. But will she be " +"able to unravel a devious deception and bring the \"Crimson Criminal\" to " +"justice?" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "road novel" msgid_plural "road novels" @@ -28916,6 +28450,141 @@ msgstr[1] "Liebes- und Familienromane" msgid "Drama and mild smut." msgstr "Ein Drama mit milder Pornografie." +#: lang/json/BOOK_from_json.py +msgid "Love and Circuses" +msgid_plural "Love and Circusess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Love and Circuses +#: lang/json/BOOK_from_json.py +msgid "" +"The passionate saga of two Boston politicians fiercely battling each other " +"for the mayor's office, and for Lydia's hand in marriage." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cloven Kisses" +msgid_plural "Cloven Kissess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Cloven Kisses +#: lang/json/BOOK_from_json.py +msgid "" +"When the devil falls in love with a warlock, his proposal must be infernally" +" wicked. Will hooves, horns, and the scent of sulphur condemn love's flames" +" to hellfire?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Conquer Me Sweetly" +msgid_plural "Conquer Me Sweetlys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Conquer Me Sweetly +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is delighted to offer you this romantic tale of " +"delicious dalliances and daring delights." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dubliner's Debutante" +msgid_plural "Dubliner's Debutantes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Dubliner's Debutante +#: lang/json/BOOK_from_json.py +msgid "" +"His love songs were only for me, but I preferred the banjo over bagpipes. " +"How could I ever love a kilted yankee of foreign breeding?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Blood Diodes" +msgid_plural "Blood Diodess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Blood Diodes +#: lang/json/BOOK_from_json.py +msgid "" +"He is an automaton, she is a reformed vampire, can love find a way? In this" +" edgy romance by acclaimed author Kea Dekker, heartbreak is just the " +"beginning." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Envying Heaven" +msgid_plural "Envying Heavens" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Envying Heaven +#: lang/json/BOOK_from_json.py +msgid "" +"When her fiancee names a star for her Wanda begins to wonder if an " +"astronomer's wife can ever compete with the allure of the cosmos." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Tall, Dark, and Gruesome" +msgid_plural "Tall, Dark, and Gruesomes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Tall, Dark, and Gruesome +#: lang/json/BOOK_from_json.py +msgid "" +"Fatima's obsession with the dead threatens to consume her when she falls in " +"love with a restless ghost. In this provocative romp celebrated author Kea " +"Dekker gently lifts the thin veil separating cold bodies from warm. " +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Along Came a Rider" +msgid_plural "Along Came a Riders" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Along Came a Rider +#: lang/json/BOOK_from_json.py +msgid "" +"When Beth's career as a pro steeplechase jockey threatens to divide her from" +" her lover, Beth has to act fast. Will she ever find a man that can keep up" +" with her racing heart?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Rogue's Virtue" +msgid_plural "Rogue's Virtues" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Rogue's Virtue +#: lang/json/BOOK_from_json.py +msgid "" +"Can Victoria reform the fugitive from justice who wooed her with false " +"pretenses and true passion?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Death of My Secret Life" +msgid_plural "The Death of My Secret Lifes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Death of My Secret Life +#: lang/json/BOOK_from_json.py +msgid "" +"Makeda comes out to her family, but she's still got plenty of skeletons in " +"her closet. Best selling authoress Kea Dekker breaks all the rules in this " +"macabre story of love and lies." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "samurai novel" msgid_plural "samurai novels" @@ -28949,6 +28618,73 @@ msgstr "" " des Armageddons aus zurückzublicken lässt das alles noch weitaus " "lächerlicher erscheinen." +#: lang/json/BOOK_from_json.py +msgid "The House of God" +msgid_plural "The House of Gods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The House of God +#: lang/json/BOOK_from_json.py +msgid "" +"Set in a lightly disguised Boston hospital of high repute, Samuel Shem’s " +"novel dives deep into the agony of absurdity." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Catch-22" +msgid_plural "Catch-22s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Catch-22 +#: lang/json/BOOK_from_json.py +msgid "" +"There is a short informational forward in this paperback edition of " +"Catch-22. Apparently the original title for Joseph Heller’s excruciatingly " +"brilliant war satire was \"Catch-11.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Master and Margarita" +msgid_plural "The Master and Margaritas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Master and Margarita +#: lang/json/BOOK_from_json.py +msgid "" +"Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, " +"vampires, a talking cat, and the literary elite of Moscow, this is a satire " +"on Stalinist tyranny written by Mikhail Bulgakov." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Handful of Dust" +msgid_plural "A Handful of Dusts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for A Handful of Dust +#: lang/json/BOOK_from_json.py +msgid "" +"Laced with cynicism, Evelyn Waugh's \"A Handful of Dust\" satirizes a " +"stratum of characters who have wealth, but lack any other credentials." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cat’s Cradle" +msgid_plural "Cat’s Cradles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Cat’s Cradle +#: lang/json/BOOK_from_json.py +msgid "" +"A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of " +"nuclear destruction isn't much of an influence on human nature." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "scifi novel" msgid_plural "scifi novels" @@ -29053,7 +28789,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "" "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It " -"still has the smell of new books within it's pages." +"still has the smell of new books within its pages." msgstr "" #: lang/json/BOOK_from_json.py @@ -29270,24 +29006,6 @@ msgid "" "Douglas Adams." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "Sportroman" -msgstr[1] "Sportromane" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "" -"Die dramatische Geschichte eines mikrigen Boxers, der die seltene Chance, " -"gegen den Schwergewichts-Champion anzutreten, erhält und diese Gelegenheit " -"nutzt, um sein eigenes Leben zu verbessern, während er das süße Mädchen, das" -" im Tierladen arbeitet, beeindruckt." - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -29351,6 +29069,49 @@ msgstr "" "versklavter irischer Arzt und seine in Ketten gelegten Kameraden fliehen und" " zu heroischen Piraten der Robin-Hood-Art werden." +#: lang/json/BOOK_from_json.py +msgid "The Black Freighter" +msgid_plural "copies of The Black Freighter" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Black Freighter', 'str_pl': 'copies of The +#. Black Freighter'} +#: lang/json/BOOK_from_json.py +msgid "" +"Who watches the watchmen? Pirate Jenny, that's who! This swashbuckling " +"adventure novel will make you feel swell." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Captain Gosgold and the Sea Rovers of Buzzards Bay" +msgid_plural "copies of The Sea Rovers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Captain Gosgold and the Sea Rovers of Buzzards +#. Bay', 'str_pl': 'copies of The Sea Rovers'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lengthy paperback novel describes the ocean exploits of Captain " +"Gosgold. The British consider him an outlaw, but in America he is a " +"patriot." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Code of the Buccaneer" +msgid_plural "copies of The Buccaneer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Code of the Buccaneer', 'str_pl': 'copies of +#. The Buccaneer'} +#: lang/json/BOOK_from_json.py +msgid "" +"The cover of this paperback pirate story shows a shirtless man and a near " +"shirtless woman. Clearly it is not a dress code." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "thriller novel" msgid_plural "thriller novels" @@ -29421,274 +29182,97 @@ msgstr "" "vor einer Bande plündernder Banditen zu verteidigen." #: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "Buch der Philosophie" -msgstr[1] "Bücher der Philosophie" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of -#. philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "" -"Eine tiefgründige Diskussion über Moral mit einer Betonung auf " -"Erkenntnislehre und Logik." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." -" It looks to have been used as a coaster in a past life." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an" -" ominous looking metal tube. Provocative." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" -" tag on the back cover. It appears to still be active." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" -" cover contains an image of a pelican." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " -"Science\" by Friederich Nietzsche." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." -msgstr "" +msgid "Atwixt a Brace of Cacti" +msgid_plural "Atwixt a Brace of Cactis" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Atwixt a Brace of Cacti #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." +"A grizzled clodhopper interviews a mess of rangehands, flummoxing longhorns " +"and tenderfoot alike in a flusteration of jawing." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" -" title, it does not actually appear to be defending terrorism." -msgstr "" +msgid "Stinky Bart Puts on Starch" +msgid_plural "Stinky Bart Puts on Starchs" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Stinky Bart Puts on Starch #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." +"A local bandit, driven by sadistic impulses, begins offering unlicensed " +"dentistry to brave frontiersmen with few options and fewer teeth." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this" -" book." -msgstr "" +msgid "Six Beans in the Wheel" +msgid_plural "Six Beans in the Wheels" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Six Beans in the Wheel #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" -" like this book has a surprisingly long track record of owners." +"The safety is off in this gun slinging tale of revenge and redemption by " +"acclaimed author El Amor." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "" +msgid "Irons at Calico Queen Annex" +msgid_plural "Irons at Calico Queen Annexs" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Irons at Calico Queen Annex #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" -" might have been printed decades before the Cataclysm since the cover is " -"quite weathered." +"The establishment of a telegraph line into the recently named town of Calico" +" Queen threatens to bring with it the long arm of the law. A trio of " +"enterprising gunfighters hatches a plan to keep Calico Queen wild by looting" +" the supply wagons." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "" +msgid "Riot on the Range" +msgid_plural "Riot on the Ranges" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Riot on the Range #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" -" that the author's real name is Fereidoun M. Esfandiary." +"Best selling author El Amor paints a visceral study in red with his latest " +"western saga: Riot on the Range." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "" +msgid "Vaquero Sun" +msgid_plural "Vaquero Suns" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Vaquero Sun #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." +"Western author El Amor relates the story of a dispossessed young man " +"inspired by a heat stroke delusion to pursue justice against an evil land " +"baron." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "" +msgid "The Vendetta Riders" +msgid_plural "The Vendetta Riderss" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for The Vendetta Riders #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +"A wild young man, fast on the draw, who thinks he has nothing to lose, falls" +" in with a group of gun runners." msgstr "" #: lang/json/BOOK_from_json.py @@ -29763,8 +29347,10 @@ msgstr[1] "" #. ~ Description for {'str': "priest's diary", 'str_pl': "priests' diaries"} #: lang/json/BOOK_from_json.py -msgid "A small book filled with journal entries in Latin." -msgstr "Ein kleines Buch mit Tagebucheinträgen auf lateinisch." +msgid "" +"A small book filled with journal entries in Latin. You can read Latin, " +"right?" +msgstr "" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -29847,23 +29433,6 @@ msgstr "" "Ein kleines Buch, das die »Visionen«, die ein Gefangener im Todestrakt " "hatte, beschreibt." -#: lang/json/BOOK_from_json.py -msgid "Hávamál" -msgid_plural "copies of Hávamál" -msgstr[0] "Hávamál" -msgstr[1] "Exemplare von Hávamál" - -#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of several Old Norse poems. The poems contain " -"proverbs and stories attributed to the god Odin, many transcribed from oral " -"history." -msgstr "" -"Eine englische Übersetzung diverser Altnordischer Gedichte. Die Gedichte " -"enthalten Sprüche und Geschichten, welche dem Gott Odin zugeschrieben " -"werden, viele davon wurden mündlich überliefert." - #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" @@ -30277,6 +29846,900 @@ msgid "" "believing I could do it. Best regards, Terry.\"" msgstr "" +#: lang/json/BOOK_from_json.py +msgid "The Economicon of Dobbs" +msgid_plural "copies of The Economicon" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Economicon of Dobbs', 'str_pl': 'copies of +#. The Economicon'} +#: lang/json/BOOK_from_json.py +msgid "" +"These are the prescriptures Pile 18 Disk sg30 File 14. \"Look, small brain " +"of pink earth inside my null-grasping, and she/he receives Logos; and it lay" +" with the Wor.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Bobliographon" +msgid_plural "copies of The Bobliographon" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Bobliographon', 'str_pl': 'copies of The +#. Bobliographon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this cheaply published paperback reads: \"These newly-" +"released SubGenius revelations will SHOCK those who think they know Bob! " +"Unpredictables are not alone and possess amazing hidden powers of their own!" +" In a world without slack, a yeti lust revival saunters about. WARNING: Do" +" not fail to pay full price for this book; JHVH-1's wrath knows some " +"bounds.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Glimpses of Solomon in Yellow" +msgid_plural "copies of Solomon in Yellow" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Glimpses of Solomon in Yellow', 'str_pl': +#. 'copies of Solomon in Yellow'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is titled \"Glimpses of Solomon in Yellow; The Initiation " +"Rites of the Starry Wisdom Covenant, by Dr. Enoch Craven.\" It describes " +"not just the investiture of new adherents, but the history and beliefs of " +"the Church of Starry Wisdom. Someone has defaced the sparse citations " +"section by scrawling \"PUPPETS OF ROME!\" over its few pages. The book does" +" not provide any biography for Dr. Craven, let alone academic credentials." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "Buch der Philosophie" +msgstr[1] "Bücher der Philosophie" + +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of +#. philosophy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "" +"Eine tiefgründige Diskussion über Moral mit einer Betonung auf " +"Erkenntnislehre und Logik." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." +" It looks to have been used as a coaster in a past life." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an" +" ominous looking metal tube. Provocative." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a small reader on Hegel's Dialectics." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" +" tag on the back cover. It appears to still be active." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" +" cover contains an image of a pelican." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " +"Science\" by Friederich Nietzsche." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" +" title, it does not actually appear to be defending terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this" +" book." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" +" like this book has a surprisingly long track record of owners." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" +" might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" +" that the author's real name is Fereidoun M. Esfandiary." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies +#. of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': +#. 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works," +" and critical analyses on the subject of beauty." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': +#. 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe" +" and advance semantic investigations." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of +#. Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A" +" key work in the existentialist tradition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "Sportroman" +msgstr[1] "Sportromane" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "" +"Die dramatische Geschichte eines mikrigen Boxers, der die seltene Chance, " +"gegen den Schwergewichts-Champion anzutreten, erhält und diese Gelegenheit " +"nutzt, um sein eigenes Leben zu verbessern, während er das süße Mädchen, das" +" im Tierladen arbeitet, beeindruckt." + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The +#. Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating," +" it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The +#. Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The +#. Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': +#. 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The +#. Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': +#. 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up" +" your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', +#. 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike +#. Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare +#. Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': +#. 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Anything Can Be Beautiful" +msgid_plural "Anything Can Be Beautifuls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Anything Can Be Beautiful +#: lang/json/BOOK_from_json.py +msgid "" +"Stylist, designer, and glitter goddess, Tiffynie Blust looks at the world " +"one mantra in mind: anything can be beautiful." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Greatest Rooms of the Century" +msgid_plural "The Greatest Rooms of the Centurys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Greatest Rooms of the Century +#: lang/json/BOOK_from_json.py +msgid "" +"A stunning collection of the best living spaces created and commissioned by " +"the most influential people in interior design." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Hands-On Home" +msgid_plural "The Hands-On Homes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Hands-On Home +#: lang/json/BOOK_from_json.py +msgid "" +"An ecologically-minded take on modern homemaking, this is a practical guide " +"to maximising your time in the kitchen and beyond." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Rooms We Love" +msgid_plural "Rooms We Loves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Rooms We Love +#: lang/json/BOOK_from_json.py +msgid "" +"This is a guide on how to affordably decorate rooms to suit your " +"personality. In the book, we visit rooms inspired by the needs of each " +"homeowner and will see how they transformed their rooms." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "New York Parties" +msgid_plural "New York Partiess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for New York Parties +#: lang/json/BOOK_from_json.py +msgid "" +"Visit the homes of savvy tastemakers from the worlds of fashion, finance, " +"and design, with this book of lavish photography." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Best Signature Outdoor Kitchens" +msgid_plural "Best Signature Outdoor Kitchenss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Best Signature Outdoor Kitchens +#: lang/json/BOOK_from_json.py +msgid "" +"Outdoor space is one of the hottest amenities being considered by new and " +"existing homeowners. This book will show you how to turn any deck, patio, " +"or other outside area into a great place to cook." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Using Plants to Transform Your Home" +msgid_plural "The Art of Using Plants to Transform Your Homes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Art of Using Plants to Transform Your Home +#: lang/json/BOOK_from_json.py +msgid "" +"Bring gorgeous greenery into your life with this delightful guide to " +"decorating your living space with a wide variety of plants. Illustrated " +"examples enable you to easily transform every corner of your interior space." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Woman of Color" +msgid_plural "Woman of Colors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Woman of Color +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of essays and advice on style, beauty, and motherhood." +" Part memoir, part lifestyle guide, this book reflects the author's " +"experience growing up as a woman of color in Brooklyn." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "10 Cool Things About Being A Ring Bearer" +msgid_plural "10 Cool Things About Being A Ring Bearers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for 10 Cool Things About Being A Ring Bearer +#: lang/json/BOOK_from_json.py +msgid "" +"This book is for the delightful little ring bearer in your wedding. The " +"author depicts the responsibility and the honor in being a ring bearer your " +"little angel will cherish." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "How to Raise a Gentleman: A Civilized Guide to Parenting" +msgid_plural "How to Raise a Gentleman: A Civilized Guide to Parentings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for How to Raise a Gentleman: A Civilized Guide to Parenting +#: lang/json/BOOK_from_json.py +msgid "" +"A revised edition for parents who hope their little boy children will grow " +"up to be the kind of men who know which fork to use, how to treat others, " +"and generally make their parents proud." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"International Approaches to Securing Radioactive Sources Against Terrorism" +msgid_plural "" +"International Approaches to Securing Radioactive Sources Against Terrorisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for International Approaches to Securing Radioactive Sources +#. Against Terrorism +#: lang/json/BOOK_from_json.py +msgid "" +"This book presents how to enhance cooperation and assistance between " +"countries in support of International Atomic Energy Agency efforts to secure" +" radioactive sources against the threat of terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Forensic Psychiatry" +msgid_plural "Principles of Forensic Psychiatrys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Principles of Forensic Psychiatry +#: lang/json/BOOK_from_json.py +msgid "" +"This text addresses standards in the assessment and treatment of aggression " +"and violence as well as psychological and neuroimaging assessments." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Guide to Reflective Conflict Resolution" +msgid_plural "The Guide to Reflective Conflict Resolutions" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Guide to Reflective Conflict Resolution +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this hardbound book reads: \"Why should professionals care" +" about reflective practice? How do its principles and methods increase " +"competence? What characteristics distinguish reflective practitioners?\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Oxbridge Handbook of Mood Ailments" +msgid_plural "The Oxbridge Handbook of Mood Ailmentss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Oxbridge Handbook of Mood Ailments +#: lang/json/BOOK_from_json.py +msgid "" +"The Oxbridge Handbook of Mood Ailments provides detailed coverage of the " +"characterization, understanding, and treatment of affective disorders. It " +"provides coverage of unipolar depression, bipolar disorder, and known " +"variants of these illnesses." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Phonological Acquisition and Disorders" +msgid_plural "Phonological Acquisition and Disorderss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Phonological Acquisition and Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"Studying the phonologies of children with non-organic speech disorders, this" +" volume details the latest findings in optimality theory, phonological " +"acquisition and disorders. It is intended for linguists and psychologists." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Therapeutic Gardens and Healing Spaces" +msgid_plural "Therapeutic Gardens and Healing Spacess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Therapeutic Gardens and Healing Spaces +#: lang/json/BOOK_from_json.py +msgid "" +"This book addresses how to design therapeutic gardens. It illustrates a " +"variety of landscape designs appropriate for public spaces that promote " +"mental health." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Advances in Drug Delivery Systems" +msgid_plural "Advances in Drug Delivery Systemss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Advances in Drug Delivery Systems +#: lang/json/BOOK_from_json.py +msgid "" +"This softcover reprint covers an array of topics in pharmacology. The " +"physicochemical concepts of the refinement of bioresponsive drug delivery " +"are presented in detail alongside a variety of current approaches employed " +"in the development of zero order release systems." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Using Art to Treat Eating Disorders" +msgid_plural "Using Art to Treat Eating Disorderss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Using Art to Treat Eating Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"This is an introductory guide for those wanting to explore the use of art to" +" address eating disorders. Art therapy is a particularly effective " +"therapeutic intervention, as it allows people to express uncomfortable " +"thoughts and feelings nonverbally." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Clinical Guide to Video Gamers" +msgid_plural "A Clinical Guide to Video Gamerss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for A Clinical Guide to Video Gamers +#: lang/json/BOOK_from_json.py +msgid "" +"This scholarly work considers the role that games play in psychological " +"experiences and mental health. Chapters examine the factors that compel " +"individual gamers to select and identify with particular games and " +"characters, as well as the different play styles, genres, and archetypes " +"common in video games." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Paranoia and the History of Madness" +msgid_plural "Paranoia and the History of Madnesss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Paranoia and the History of Madness +#: lang/json/BOOK_from_json.py +msgid "" +"This book is an analysis of the use and misuse of paranoia throughout " +"history and in contemporary society. The impact of paranoia on societies is" +" explored in detail." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Psychoanalysis and Colonialism" +msgid_plural "Psychoanalysis and Colonialisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Psychoanalysis and Colonialism +#: lang/json/BOOK_from_json.py +msgid "" +"Freud referred to women's sexuality as a \"dark continent\" for " +"psychoanalysis, drawing on colonial use of the same phrase to refer to " +"Africa. This book details how the problematic universalism of " +"psychoanalysis led theorists to reject its relevance for postcolonial " +"critique." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Psychology of Stalking" +msgid_plural "The Psychology of Stalkings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Psychology of Stalking +#: lang/json/BOOK_from_json.py +msgid "" +"This book explores stalking from social, psychiatric, psychological and " +"behavioral perspectives. Topics include psychiatric diagnoses, offender-" +"victim typologies, cyberstalking, false victimization syndrome, erotomania, " +"domestic violence, the stalking of public figures, and many other aspects of" +" stalking." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" msgid_plural "issues of Tactical Handgun Digest" @@ -30468,6 +30931,360 @@ msgstr "" "Geschichten zu spinnen. Er ist voller Informationen, aber es kann allerdings" " ziemlich mühsam sein, die Dinge zu finden, nach denen du suchst." +#: lang/json/BOOK_from_json.py +msgid "Nail Your Law Firm Interview" +msgid_plural "copies of Nail Your Law Firm Interview" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Nail Your Law Firm Interview', 'str_pl': 'copies +#. of Nail Your Law Firm Interview'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lightweight book proclaims itself to be \"the ONLY gold star interview " +"guide for lawyers interviewing in any type of a job interview.\" It was " +"suppsed to help new lawyers find work." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "holybook abstract" +msgid_plural "holybook abstracts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for holybook abstract +#: lang/json/BOOK_from_json.py +msgid "theoretically this isn't a book at all" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Mycenacean Hymns" +msgid_plural "copies of Mycenacean Hymns" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of +#. Mycenacean Hymns'} +#: lang/json/BOOK_from_json.py +msgid "" +"A vellum book containing the hymns central to Marloss faith. As the verses " +"lead to each other, the text sings of unity and promised paradise." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "King James Bible" +msgid_plural "copies of King James Bible" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King +#. James Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, which originated in England " +"in the early 1600s." +msgstr "" +"Eine englische Übersetzung der christlichen Bibel. Sie hat ihren Ursprung in" +" England in den frühen 1600ern." + +#: lang/json/BOOK_from_json.py +msgid "Eastern Orthodox Bible" +msgid_plural "copies of Eastern Orthodox Bible" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of +#. Eastern Orthodox Bible'} +#: lang/json/BOOK_from_json.py +msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." +msgstr "" +"Ein englischsprachiges Exemplar der Eastern Orhodox Bible, einer Übersetzung" +" der Bibel." + +#: lang/json/BOOK_from_json.py +msgid "Gideon Bible" +msgid_plural "copies of Gideon Bible" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon +#. Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, distributed free of charge by" +" Gideons International." +msgstr "" +"Eine englische Übersetzung der christlichen Bibel, kostenlos verteilt vom " +"Internationalen Gideonbund." + +#: lang/json/BOOK_from_json.py +msgid "The Guru Granth Sahib" +msgid_plural "copies of The Guru Granth Sahib" +msgstr[0] "Der Guru Granth Sahib" +msgstr[1] "Exemplare von Der Guru Granth Sahib" + +#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The +#. Guru Granth Sahib'} +#: lang/json/BOOK_from_json.py +msgid "A single-volume copy of the central religious texts of Sikhism." +msgstr "" +"Ein einbändiges Exemplar der zentralen religiösen Texte des Sikhismus." + +#: lang/json/BOOK_from_json.py +msgid "Hadith" +msgid_plural "copies of Hadith" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} +#: lang/json/BOOK_from_json.py +msgid "" +"A Muslim religious text containing an account of the sayings and actions of " +"the prophet Muhammad." +msgstr "" +"Ein muslimischer religiöser Text, der einen Bericht der Sprüche und Taten " +"des Propheten Mohammed enthält." + +#: lang/json/BOOK_from_json.py +msgid "Principia Discordia" +msgid_plural "copies of Principia Discordia" +msgstr[0] "Principia Discordia" +msgstr[1] "Exemplare von Principia Discordia" + +#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of +#. Principia Discordia'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of Discordianism. It seems to " +"primarily concern chaos, and features a card in the back which informs you " +"that you are now a 'genuine and authorized Pope of Discordia'." +msgstr "" +"Ein Buch, das die Hauptglaubenssätze des Diskordianismus verkörpert. Es " +"scheint hauptsächlich um Chaos zu gehen. Das Buch enthält eine Karte in der " +"Rückseite. Sie setzt dich davon in Kenntnis, dass du nun ein »echter und " +"autorisierter Papst der Diskordia« bist." + +#: lang/json/BOOK_from_json.py +msgid "The Kojiki" +msgid_plural "copies of The Kojiki" +msgstr[0] "Das Kojiki" +msgstr[1] "Kojikis" + +#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} +#: lang/json/BOOK_from_json.py +msgid "" +"The oldest extant chronicle of Japan's myths and history, the stories " +"contained in the Kojiki are part of the inspiration behind Shinto practices." +msgstr "" +"Dies ist die älteste erhaltene Chronik von Japans Mythen und Geschichte. Die" +" Geschichten in der Kojiki sind Teil der Inspiration hinter schintoistischen" +" Praktiken." + +#: lang/json/BOOK_from_json.py +msgid "The Book of Mormon" +msgid_plural "copies of The Book of Mormon" +msgstr[0] "Das Buch Mormon" +msgstr[1] "Mormon-Bücher" + +#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The +#. Book of Mormon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The sacred text of the Latter Day Saint movement of Christianity, originally" +" published in 1830 by Joseph Smith." +msgstr "" +"Der heilige Text der Mormonen, ursprünglich im Jahre 1830 von Joseph Smith " +"veröffentlicht." + +#: lang/json/BOOK_from_json.py +msgid "The Gospel of the Flying Spaghetti Monster" +msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" +msgstr[0] "Die Heilsbotschaft des Fliegenden Spaghettimonsters" +msgstr[1] "Exemplare von Die Heilsbotschaft des Fliegenden Spaghettimonsters" + +#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', +#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of the Church of the Flying Spaghetti " +"Monster. It seems to involve a lot of pirates and some sort of invisible " +"drunken monster made of pasta." +msgstr "" +"Ein Buch, welches die Hauptglaubenssätze der Kirche des Fliegenden " +"Spaghettimonsters beinhaltet. Es scheint um viele Piraten und irgendso ein " +"betrunkenes Monster aus Pasta zu gehen." + +#: lang/json/BOOK_from_json.py +msgid "Quran" +msgid_plural "copies of Quran" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Muslim book of holy scriptures, with " +"explanatory notes and commentaries to aid in understanding." +msgstr "" +"Eine englische Übersetzung des muslimischen Buchs der heiligen Schriften, " +"mit erläuternden Bemerkungen und Kommentaren, um beim Verständnis zu helfen." + +#: lang/json/BOOK_from_json.py +msgid "The Satanic Bible" +msgid_plural "copies of The Satanic Bible" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The +#. Satanic Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of essays, observations, and rituals published by Anton LaVey " +"in 1969." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dianetics" +msgid_plural "copies of Dianetics" +msgstr[0] "Dianetik" +msgstr[1] "Exemplare von Dianetik" + +#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book is the canonical text of Scientology. Written by a science " +"fiction author, it contains self-improvement techniques and musings on " +"psychology called Dianetics." +msgstr "" +"Dieses Buch ist der kanonische Text von Scientology. Er wurde von einem " +"Science-Fiction-Autor geschrieben und enthält Selbstverbesserungstechniken " +"und Träumereien über eine Psychologie namens Dianetik." + +#: lang/json/BOOK_from_json.py +msgid "The Book of the SubGenius" +msgid_plural "copies of The Book of the SubGenius" +msgstr[0] "Das Buch des SubGenius" +msgstr[1] "Bücher des SubGenius" + +#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of +#. The Book of the SubGenius'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book about the Church of the SubGenius. It seems to involve a salesman " +"named J. R. \"Bob\" Dobbs and a concept called 'slack'." +msgstr "" +"Ein Buch über die Kirche des SubGenius. Es scheint einen Verkäufer namens J." +" R. »Bob« Dobbs und ein Kopzept namens »slack« zu involvieren." + +#: lang/json/BOOK_from_json.py +msgid "The Sutras of the Buddha" +msgid_plural "copies of The Sutras of the Buddha" +msgstr[0] "Die Sutras des Buddhas" +msgstr[1] "Exemplare von Die Sutras des Buddhas" + +#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of +#. The Sutras of the Buddha'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of discourses attributed to the Buddha and his close disciples." +msgstr "" +"Eine Sammlung von Diskursen, welche Buddha und seinen nahestehenden Jüngern " +"zugeschrieben werden." + +#: lang/json/BOOK_from_json.py +msgid "Talmud" +msgid_plural "copies of the Talmud" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of the Talmud'} +#: lang/json/BOOK_from_json.py +msgid "" +"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " +"Hebrew Bible with teachings and opinions of thousands of rabbis." +msgstr "" +"Als einer der zentralen Texte des rabbinischen Judentums legt der Talmud auf" +" Basis des Tanachs die Lehren und Meinungen von tausenden Rabbis dar." + +#: lang/json/BOOK_from_json.py +msgid "Tanakh" +msgid_plural "copies of Tanakh" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single-volume book containing the complete canon of the Jewish Bible." +msgstr "" +"Ein einbändiges Buch, das den kompletten Kanon der jüdischen Bibel enthält." + +#: lang/json/BOOK_from_json.py +msgid "The Tripitaka" +msgid_plural "copies of The Tripitaka" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The +#. Tripitaka'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Buddhist writings describing their canons of " +"scriptures." +msgstr "" +"Eine Sammlung heiliger buddhistischer Aufzeichnungen, welche ihre Kanone der" +" Schriften beschreiben." + +#: lang/json/BOOK_from_json.py +msgid "The Upanishads" +msgid_plural "copies of The Upanishads" +msgstr[0] "Die Upanishaden" +msgstr[1] "Exemplare von Die Upanishaden" + +#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The +#. Upanishads'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Hindu writings regarding the nature of reality and " +"describing the character and form of human salvation." +msgstr "" +"Eine Sammlung heiliger hinduistischer Schriften, die die Natur der Realität " +"betreffen und den Charakter und die Form der menschlichen Erlösung " +"beschreiben." + +#: lang/json/BOOK_from_json.py +msgid "The Four Vedas" +msgid_plural "copies of The Four Vedas" +msgstr[0] "Die vier Veden" +msgstr[1] "Exemplare von Die vier Veden" + +#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four +#. Vedas'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single volume containing all four Vedas, which are the oldest scriptures " +"of Hinduism." +msgstr "" +"Ein einbändiges Buch, dass alle vier Veden, welche die ältesten Schriften " +"des Hinduismus sind, enthält." + +#: lang/json/BOOK_from_json.py +msgid "Hávamál" +msgid_plural "copies of Hávamál" +msgstr[0] "Hávamál" +msgstr[1] "Exemplare von Hávamál" + +#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of several Old Norse poems. The poems contain " +"proverbs and stories attributed to the god Odin, many transcribed from oral " +"history." +msgstr "" +"Eine englische Übersetzung diverser Altnordischer Gedichte. Die Gedichte " +"enthalten Sprüche und Geschichten, welche dem Gott Odin zugeschrieben " +"werden, viele davon wurden mündlich überliefert." + #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" msgid_plural "Duelist's Annuals" @@ -30804,6 +31621,21 @@ msgstr "" "Ein dickes, fest gebundenes Buch mit einem Reichtum an Informationen für den" " professionellen Modedesigner." +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of +#. Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -30964,11 +31796,323 @@ msgstr "" "Tipps für den unbewaffneten Kampf." #: lang/json/BOOK_from_json.py -msgid "readable magazine" -msgid_plural "readable magazines" +msgid "children's book" +msgid_plural "children's books" +msgstr[0] "Kinderbuch" +msgstr[1] "Kinderbücher" + +#. ~ Description for {'str': "children's book"} +#: lang/json/BOOK_from_json.py +msgid "" +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the dead walked" +" and the world moved on." +msgstr "" +"Ein kleines Buch für kleine Leser. Die bunten Cartoonfiguren und heiteren " +"Geschichten, die in ihm sind, gehören in eine andere Zeit, bevor die Toten " +"liefen und die Welt sich weiterdrehte." + +#: lang/json/BOOK_from_json.py +msgid "book of fairy tales" +msgid_plural "books of fairy tales" +msgstr[0] "Märchenbuch" +msgstr[1] "Märchenbücher" + +#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy +#. tales'} +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of folklore featuring the usual cast of fairies, " +"goblins, and trolls." +msgstr "" +"Eine unterhaltsame Sammlung von Folklore mit den üblichen Verdächten: Feen, " +"Goblins und Trolle." + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale is about a wolf who eats so much salted meat she becomes " +"trapped in the butcher's cellar." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this traditional story of beastly intrigue a clever fox convinces an " +"elderly lion to kill a derogatory wolf." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is an illustrated fairy tale book about a conversation between a mouse " +"and a cat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This illustrated fairy tale relates how a city mouse did visit his cousin in" +" the country, and how each regarded the other's quality of life." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A fable in which the jackal wins the day via clever foolishness." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A slave mistakenly wanders into a lion's den - thus begins a fable which " +"demonstrates mutual dependence regardless of size or status." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of stories featuring \"Goldilocks and The Three " +"Bears\" on the cover." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a well illustrated fairy tale about a war between the birds and the " +"beasts, with particulars on the wartime conduct and eventual fate of the " +"bat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " +"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" +" page." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale book is entitled \"Little Red Cap\". It details a red-" +"cloaked child's various encounters with talking wolves." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of ghost stories warning about the dangers of stealing from the" +" dead." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"An Irish fairy tale in which a Celtic poet marries a princess who has been " +"cursed with the head of a pig." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A book of Italian fairy tales translated into English. The cover features " +"an orange fairy juggling a lemon, a lime, and a tangerine." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A book of fables about people who change into birds." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This compendium of amusing folk tales about the devil is titled \"Hell's " +"Kettle: Legends of the Devil.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This charming book of Swedish fables is titled, \"The Glass Mountain and the" +" Princess.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of fairy tale stories warning against the consequences " +"of extreme greed." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fable book is entitled, \"The Rabbit Herd.\" Inside are woodcut " +"illustrations of a peasant boy playing his flute for a mob of mischievous " +"hares." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a book of legends collected by Traveller Johnny Cassidy in the " +"1960s." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of fables expands upon the legend of the Seven Sleepers of " +"Ephesus." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this fairy tale a strong man frightens an ogre by squeezing water out of " +"a stone." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of rustic folk tales bears the title: \"How to Shout Down the " +"Devil.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " +"fables about logical errors and foolish misjudgements of the Kadambawa men." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " +"Stories.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " +"suitable for small children." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Adorkable Girl" +msgid_plural "The Adorkable Girls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Adorkable Girl +#: lang/json/BOOK_from_json.py +msgid "" +"When a therapist's daughter transfers to a new school, she decides to change" +" her personality type. As her social life begins to blossom, can she " +"maintain a healthy boundary between her home life and her public persona?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Becoming Jackson" +msgid_plural "Becoming Jacksons" msgstr[0] "" msgstr[1] "" +#. ~ Description for Becoming Jackson +#: lang/json/BOOK_from_json.py +msgid "" +"When Jackson gains the mystical talent to alter his appearance on command, " +"how will he continue to recognize himself in his own mirror?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nothing Burned" +msgid_plural "Nothing Burneds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Nothing Burned +#: lang/json/BOOK_from_json.py +msgid "" +"A teenage influencer becomes fast friends with someone who may or may not be" +" an actual demon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "High and Low" +msgid_plural "High and Lows" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for High and Low +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of adolescent fiction, a young gemini discovers that the " +"astrology section of his small town newspaper is eerily preminiscent. His " +"efforts to uncover the oracle reveal more than the stars could have " +"predicted." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Fire When You See My Eyes" +msgid_plural "Fire When You See My Eyess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Fire When You See My Eyes +#: lang/json/BOOK_from_json.py +msgid "" +"In a cataclysmic future, advanced technology gives parents access to video " +"footage of every moment of their teenage children's lives." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Peanut Butter Bruised" +msgid_plural "Peanut Butter Bruiseds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Peanut Butter Bruised +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of young adult fiction, a woman raised on food stamps falls in " +"love with a young cook. More importantly, she falls in love with the idea " +"of become a professional chef." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Ready When You Are" +msgid_plural "Ready When You Ares" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Ready When You Are +#: lang/json/BOOK_from_json.py +msgid "" +"When three teenage girls ditch class to drive cross country together they " +"get a strong dose of life lessons on the road. This work of young adult " +"fiction explores how friendships evolve in early adulthood." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Study of a Boy" +msgid_plural "Study of a Boys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Study of a Boy +#: lang/json/BOOK_from_json.py +msgid "" +"A high school sophomore's personal journal is stolen and then leaked on " +"social media. When it goes viral he is forced simultaneously to contend " +"with both fame and betrayal." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Summer Variables" +msgid_plural "Summer Variabless" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Summer Variables +#: lang/json/BOOK_from_json.py +msgid "" +"In this book written primarily for young adults, a woman's modest summer " +"internship results in an incredible discovery that attracts the attention of" +" unsavory elements." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "original copy of Housefly" msgid_plural "original copies of Housefly" @@ -31137,194 +32281,6 @@ msgid "" "ancient movie?" msgstr "" -#: lang/json/BOOK_from_json.py -msgid "Case #5846, Illegal Gun Modification" -msgid_plural "copies of Case #5846, Illegal Gun Modification" -msgstr[0] "Fall Nr. 5846: Illegale Waffenmodifikation" -msgstr[1] "Exemplare von Fall Nr. 5846: Illegale Waffenmodifikation" - -#. ~ Description for {'str': 'Case #5846, Illegal Gun Modification', 'str_pl': -#. 'copies of Case #5846, Illegal Gun Modification'} -#: lang/json/BOOK_from_json.py -msgid "" -"This file details illegal gun modifications. Maybe you could learn " -"something. At least you don't have to worry about the cops anymore." -msgstr "" -"Diese Akte behandelt detailliert illegale Waffenmodifikationen. Vielleicht " -"könntest du etwas daraus lernen. Jedenfalls musst du dir keine Sorgen mehr " -"um die Bullen machen." - -#: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "Schachspiel" -msgstr[1] "Schachspiele" - -#. ~ Description for chess set -#: lang/json/BOOK_from_json.py -msgid "" -"A wooden box containing all the equipment needed to play a game of chess." -msgstr "" -"Eine kleine Holzkiste mit allen notwendigen Dingen, um eine schöne Partie " -"Schach zu spielen." - -#: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "Dame-Set" -msgstr[1] "Dame-Sets" - -#. ~ Description for checkers set -#: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." -msgstr "Eine Holzkiste mit runden Spielsteinen, um Dame zu spielen." - -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" -msgstr[0] "Kartendeck" -msgstr[1] "Kartendecks" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "Eine Sammlung von 52 Karten zum Pokern." - -#: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" -msgstr[0] "Zauberkartendeck" -msgstr[1] "Zauberkartendecks" - -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of -#. Sorcery cards'} -#: lang/json/BOOK_from_json.py -msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." -msgstr "" -"Eine Reihe von Karten, um das Spiel »Hexerei« zu spielen. Jede Karte trägt " -"ein vernügliches Bild eines anderen Monsters." - -#: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where one draws an image, and the others attempt to guess what it is." -msgstr "" -"Ein Spiel, bei dem ein Spiel ein Bild zeichnet und die Mitspieler versuchen " -"zu erraten, was es sein soll." - -#: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players traverse around the board buying property and swindling" -" their friends." -msgstr "" -"Ein Spiel, bei dem Spieler das Spielbrett überqueren, um Immobilien zu " -"kaufen und ihre Freunde zu beschwindeln." - -#: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and -#. Bandits'} -#: lang/json/BOOK_from_json.py -msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive" -" the apocalypse while surviving the apocalypse." -msgstr "" -"Ein postapokalyptisches Rollenspiel, bei dem du so tun kannst, als würdest " -"du die Apokalypse überleben, während du versuchst in ›der Apokalypse‹ zu " -"überleben." - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of fantasy creatures." -msgstr "" -"Ein Strategiespiel mit einer Reihe winziger Figuren aus der Welt der " -"Fantasiegeschöpfe." - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of -#. Battlehammer 20k'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." -msgstr "" -"Ein Strategiespiel mit kleinen Alien-Figuren und grotesken Weltraum-" -"Soldaten." - -#: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of -#. Settlers of the Ranch'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game where players build settlements and trade for supplies." -msgstr "" -"Ein Strategiespiel, in dem Spieler Siedlungen bauen und Vorräte handeln." - -#: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." -msgstr "" -"Ein Spiel, bei dem die Spieler versuchen zu erraten, wo der Gegner seine " -"Schiffe auf das Spielbrett plaziert hat." - -#: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder -#. Mystery'} -#: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." -msgstr "" -"Ein Spiel, bei dem die Spieler herausfinden wollen, wer den Butler ermordet " -"hat." - #: lang/json/BOOK_from_json.py msgid "Black Dragons: Swamp Ruins" msgid_plural "copies of Black Dragons: Swamp Ruins" @@ -31463,87 +32419,34 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Weapons of Asgard" -msgid_plural "copies of The Weapons of Asgard" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Weapons of Asgard', 'str_pl': 'copies of The -#. Weapons of Asgard'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is about creating replicas of the weapons used by the Norse Gods, " -"such as the well-known Mjölnir. It is well illustrated with lots of " -"pictures." -msgstr "" -"Dieses Buch dreht sich um Replikate von den Waffen, die von den nordischen " -"Göttern benutzt wurden, so wie die bekannte Mjölnir. Es ist gut illustriert " -"mit vielen Bildern." - -#: lang/json/BOOK_from_json.py -msgid "Hacking Robots for Fun & Profit" -msgid_plural "copies of Hacking Robots for Fun & Profit" +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Hacking Robots for Fun & Profit', 'str_pl': -#. 'copies of Hacking Robots for Fun & Profit'} +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', +#. 'str_pl': 'copies of In the Beginning… Was the Command Line'} #: lang/json/BOOK_from_json.py msgid "" -"A book on illegally obtaining, reprogramming, and modifying robots. It has " -"lots of helpful step-by-step guides and example blueprints." +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Popular Robotics" -msgid_plural "issues of Popular Robotics" +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Popular Robotics', 'str_pl': 'issues of Popular -#. Robotics'} -#: lang/json/BOOK_from_json.py -msgid "A magazine about building and altering your own robots." -msgstr "Ein Magazin über den Bau und die Modifizierung eigener Roboter." - -#: lang/json/BOOK_from_json.py -msgid "Artillery and Field Gunnery" -msgid_plural "copies of Artillery and Field Gunnery" -msgstr[0] "Artillerie und Schießwesen" -msgstr[1] "Exemplare von Artillerie und Schießwesen" - -#. ~ Description for {'str': 'Artillery and Field Gunnery', 'str_pl': 'copies -#. of Artillery and Field Gunnery'} +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': +#. 'copies of Principles of Compiler Design'} #: lang/json/BOOK_from_json.py msgid "" -"A textbook on the history of modern artillery, with a number of " -"illustrations and excerpts from various field manuals. A competent " -"handloader or mechanic might find additional uses for the more technical " -"parts of the text." +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." msgstr "" -"Ein Lehrbuch über die Geschichte der modernen Artillerie mit einer Reihe an " -"Illustrationen und Ausschnitten verschiedener Felddienstvorschriften. Ein " -"kompetenter Handlader oder Mechaniker könnte weitere Verwendungszecke für " -"die etwas technischeren Teile des Textes finden." - -#: lang/json/BOOK_from_json.py -msgid "Principles of Postmortem Mind Control" -msgid_plural "copies of Principles of Postmortem Mind Control" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Principles of Postmortem Mind Control', -#. 'str_pl': 'copies of Principles of Postmortem Mind Control'} -#: lang/json/BOOK_from_json.py -msgid "" -"A thick book containing research notes of a mad scientist. It describes " -"various methods of reanimating and controlling the dead. There's a lot of " -"gory details and technical language mixed in, so it's not easy to read." -msgstr "" -"Ein dickes Buch, welches Forschungsnotizen eines verrückten Wissenschaftlers" -" enthält. Es beschreibt verschiedene Methoden der Wiederbelebung und " -"Kontrolle über die Toten. Es gibt viele blutige und technische Details, " -"somit ist es nicht einfach zu lesen." #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -31776,8 +32679,8 @@ msgstr "Eine Probe des Abwassers einer Abwasseraufbereitungsanlage. Igitt." #: lang/json/COMESTIBLE_from_json.py msgid "water purification tablet" msgid_plural "water purification tablets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Wasserreinigungstablette" +msgstr[1] "Wasserreinigungstabletten" #. ~ Description for water purification tablet #: lang/json/COMESTIBLE_from_json.py @@ -32754,6 +33657,17 @@ msgid "" "Prohibition era." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -33187,6 +34101,7 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for large human stomach +#. ~ Description for large demihuman stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "" @@ -33201,6 +34116,7 @@ msgstr[1] "" #. ~ Description for {'str': 'chunk of human fat', 'str_pl': 'chunks of human #. fat'} +#. ~ Description for chunk of demihuman fat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly harvested from a human body." msgstr "" @@ -33514,6 +34430,14 @@ msgid_plural "jerk jerky" msgstr[0] "Dörrmenschenfleisch" msgstr[1] "Dörrmenschenfleisch" +#. ~ Conditional name for {'str_sp': 'meat jerky'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal jerky" +msgid_plural "talking animal jerky" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'meat jerky'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -33557,6 +34481,13 @@ msgid_plural "smoked sucker" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for smoked meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked Narnian" +msgid_plural "smoked Narnian" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for smoked meat when COMPONENT_ID matches mutant #. ~ Conditional name for canned meat when COMPONENT_ID matches mutant #. ~ Conditional name for salted meat slice when COMPONENT_ID matches mutant @@ -34079,6 +35010,19 @@ msgstr "" "kannst sie zum Lagern und Gerben einpökeln, oder du kannst sie essen, wenn " "du verzweifelt genug bist." +#: lang/json/COMESTIBLE_from_json.py +msgid "raw demihuman skin" +msgid_plural "raw demihuman skins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for raw demihuman skin +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A carefully folded raw skin harvested from a demihuman. You can cure it for" +" storage and tanning, or eat it if you're desperate enough." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" msgid_plural "raw pelts" @@ -34223,6 +35167,257 @@ msgid "" "blue veins running through it." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman stomach" +msgid_plural "demihuman stomachs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "The stomach of an intelligent demihuman. It is surprisingly durable." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "large demihuman stomach" +msgid_plural "large demihuman stomachs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chunk of demihuman fat" +msgid_plural "chunk of demihuman fats" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman tallow" +msgid_plural "demihuman tallows" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for demihuman tallow +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of cleaned and rendered demihuman fat. It will remain " +"edible for a very long time, and can be used as an ingredient in many foods " +"and projects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman lard" +msgid_plural "demihuman lards" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for demihuman lard +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of dry-rendered demihuman fat. It will remain edible " +"for a very long time, and can be used as an ingredient in many foods and " +"projects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman flesh" +msgid_plural "demihuman fleshs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for demihuman flesh +#: lang/json/COMESTIBLE_from_json.py +msgid "Freshly butchered from a demihuman body." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked mongrel" +msgid_plural "cooked mongrels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for cooked mongrel +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A freshly cooked slice of something close to being a real person. Tastes " +"like long pig." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "boiled demihuman stomach" +msgid_plural "boiled demihuman stomachs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for boiled demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" + +#. ~ Description for {'str': 'boiled demihuman stomach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A small boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cereal" +msgid_plural "cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A generic box of cereal, you shouldn't see this." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace cereal" +msgid_plural "FoodPlace cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'FoodPlace cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A generic box of FoodPlace brand sugary cereal, you shouldn't see this." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Snicker-Snacks cereal" +msgid_plural "Snicker-Snacks cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Snicker-Snacks cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Snicker-Snack cereal. Each tiny \"Snicker-Snack\" is shaped" +" like human food!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Carpenter Crunch cereal" +msgid_plural "Carpenter Crunch cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Carpenter Crunch cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is FoodPlace brand \"Carpenter Crunch\" cereal with the iconic " +"\"Breakfast Beaver\" mascot on the box. It tastes kind of like nails." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Brantastic cereal" +msgid_plural "Brantastic cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Brantastic cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Brantastic\" cereal. An essential part of a complete Bran" +" breakfast." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Sugar Chomps cereal" +msgid_plural "Sugar Chomps cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Sugar Chomps cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Sugar Chomps\" cereal. \"Chocolate Frosted Crunchy Sugar " +"Chomps: 8 essential vitamins packed into that rich, fudgy taste!\"" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Honey Pellet cereal" +msgid_plural "Honey Pellet cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Honey Pellet cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Amorphous Honey Pellet\" cereal. The box promises " +"\"Inconceivable sustenance in tiny morsels of yellow honey.\"" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Fructose Flakes cereal" +msgid_plural "Fructose Flakes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Fructose Flakes cereal', 'str_pl': 'Fructose +#. Flakes'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Fructose Flakes cereal. Fortified with energy enriched " +"FoodSyrup™ that supports life most efficiently." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodios cereal" +msgid_plural "Foodios cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Foodios cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace brand \"Foodios\" cereal. Foodios™ are Foodalicious™!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sugary cereal" +msgid_plural "sugary cereals" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sugary cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sugary breakfast cereal with marshmallows. It takes you back to your " +"childhood." +msgstr "" +"Zuckerhaltige Frühstücksflocken mit Marshmallows. Sie bringen dich " +"gedanklich zurück in deine Kindheit." + +#: lang/json/COMESTIBLE_from_json.py +msgid "wheat cereal" +msgid_plural "wheat cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'wheat cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " +"your heart." +msgstr "" +"Vollkornweizenmüsli. Es ist überraschend gut und angeblich gut für dein " +"Herz." + +#: lang/json/COMESTIBLE_from_json.py +msgid "corn cereal" +msgid_plural "corn cereals" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for corn cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "Plain cornflake cereal. They're not that good, but it beats nothing." +msgstr "" +"Einfache Cornflakes. Sie sind nicht so gut, aber immer noch besser als " +"nichts." + #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "raw milk" msgid_plural "raw milk" @@ -34639,8 +35834,8 @@ msgstr[1] "" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." -msgstr "Hergestellt aus echten Massachusetts-Cranberrys. Lecker und nahrhaft." +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -35098,6 +36293,73 @@ msgstr "" "Schrilles Mineralwasser, so schrill, dass es dich nur beim Festhalten der " "Flasche schrill fühlen lässt." +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -35178,32 +36440,6 @@ msgstr "" "flüssige Form von Honig. Dieser Honig wird nicht verderben und ist gut für " "deine Verdauung." -#: lang/json/COMESTIBLE_from_json.py -msgid "peanut butter" -msgid_plural "peanut butters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for peanut butter -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A brown goo that tastes very little like its namesake. It's not bad, but " -"it'll stick to the roof of your mouth." -msgstr "" -"Ein brauner Glibber, der kaum nach seinem Namensvetter schmeckt. Er ist " -"nicht schlecht, aber er wird an der Oberseite deines Mundes kleben bleiben." - -#: lang/json/COMESTIBLE_from_json.py -msgid "imitation peanutbutter" -msgid_plural "imitation peanutbutters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for imitation peanutbutter -#: lang/json/COMESTIBLE_from_json.py -msgid "A thick, nutty brown paste." -msgstr "Eine dicke, nussige braune Paste." - #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" msgid_plural "vinegar" @@ -35222,8 +36458,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vegetable cooking oil" msgid_plural "vegetable cooking oil" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pflanzliches Öl" +msgstr[1] "Pflanzliche Öle" #. ~ Description for {'str_sp': 'vegetable cooking oil'} #: lang/json/COMESTIBLE_from_json.py @@ -35233,8 +36469,8 @@ msgstr "Dünnflüssiges gelbes Pflanzenöl, das zum Kochen benutzt wird." #: lang/json/COMESTIBLE_from_json.py msgid "animal cooking oil" msgid_plural "animal cooking oil" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tierisches Öl" +msgstr[1] "Tierische Öle" #. ~ Description for {'str_sp': 'animal cooking oil'} #: lang/json/COMESTIBLE_from_json.py @@ -35302,6 +36538,19 @@ msgid_plural "chicken eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" @@ -35428,8 +36677,8 @@ msgstr "Gewöhnlicher Rogen von einem unbekannten Fisch." #: lang/json/COMESTIBLE_from_json.py msgid "powdered egg" msgid_plural "powdered eggs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Eipulver" +msgstr[1] "Eipulver" #. ~ Description for {'str': 'powdered egg'} #: lang/json/COMESTIBLE_from_json.py @@ -35799,6 +37048,19 @@ msgstr "" "Diese durchweichte Masse aus konserviertem Obst wurde in einem früherem " "Leben gekocht und eingelegt. Fad, breiig und an Farbe verlierend." +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -36845,34 +38107,6 @@ msgstr "Etwas Karamell. Immer noch schlecht für deine Zähne." msgid "Betcha can't eat just one." msgstr "Ich wette, dass du nicht nur einen davon essen kannst." -#: lang/json/COMESTIBLE_from_json.py -msgid "sugary cereal" -msgid_plural "sugary cereals" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for sugary cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sugary breakfast cereal with marshmallows. It takes you back to your " -"childhood." -msgstr "" -"Zuckerhaltige Frühstücksflocken mit Marshmallows. Sie bringen dich " -"gedanklich zurück in deine Kindheit." - -#: lang/json/COMESTIBLE_from_json.py -msgid "corn cereal" -msgid_plural "corn cereals" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for corn cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "" -"Einfache Cornflakes. Sie sind nicht so gut, aber immer noch besser als " -"nichts." - #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" @@ -36917,6 +38151,14 @@ msgid_plural "niño nachos" msgstr[0] "Nörgler-Nachos" msgstr[1] "Nörgler-Nachos" +#. ~ Conditional name for {'str_sp': 'meat nachos'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos" +msgid_plural "nibelung nachos" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'meat nachos'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -36948,6 +38190,14 @@ msgid_plural "niño nachos with cheese" msgstr[0] "Nörgler-Nachos mit Käse" msgstr[1] "Nörgler-Nachos mit Käse" +#. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos with cheese" +msgid_plural "nibelung nachos with cheese" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when #. COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -37216,6 +38466,13 @@ msgid_plural "raw Mannwursts" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for raw sausage when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "raw killbasa" +msgid_plural "raw killbasas" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for raw sausage when COMPONENT_ID matches mutant #. ~ Conditional name for smoked sausage when COMPONENT_ID matches mutant #. ~ Conditional name for cooked sausage when COMPONENT_ID matches mutant @@ -37247,6 +38504,14 @@ msgid_plural "smoked Mannwursts" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for smoked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked killbasa" +msgid_plural "smoked killbasas" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for smoked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." @@ -37267,6 +38532,14 @@ msgid_plural "cooked Mannwursts" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for cooked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked killbasa" +msgid_plural "cooked killbasas" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." @@ -37297,6 +38570,14 @@ msgid_plural "Mannbrats" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "frankenfurter" +msgid_plural "frankenfurters" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str': 'bratwurst'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -37429,6 +38710,14 @@ msgid_plural "cheapskate %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for currywurst when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "confusing %s" +msgid_plural "confusing %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for currywurst when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -37468,6 +38757,15 @@ msgid_plural "amoral %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str': 'aspic'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orwell's %s" +msgid_plural "Orwell's %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for {'str': 'aspic'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -37586,6 +38884,15 @@ msgid_plural "brat %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str_sp': 'bologna'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Tumnis %s" +msgid_plural "Tumnis %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'bologna'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -37679,6 +38986,14 @@ msgid_plural "Mannwurst gravies" msgstr[0] "Mannwurstbratensoße" msgstr[1] "Mannwurstbratensoßen" +#. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage +#. gravies'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "killbasa gravy" +msgid_plural "killbasa gravies" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage #. gravies'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -37711,6 +39026,15 @@ msgid_plural "prepper %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orley %s" +msgid_plural "Orley %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'pemmican'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -37741,7 +39065,15 @@ msgstr[1] "" #. ~ Conditional name for hamburger helper when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgid_plural "hobo helpers" +msgid_plural "hobo helper" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for hamburger helper when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "halfling helper" +msgid_plural "halfling helper" msgstr[0] "" msgstr[1] "" @@ -37787,6 +39119,14 @@ msgid_plural "chilis con cabron" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con +#. carne'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "chili con Sindar" +msgid_plural "chilis con Sindar" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con #. carne'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -37968,7 +39308,14 @@ msgstr[1] "" #. ~ Conditional name for meat pie when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgid_plural "prick pies" +msgid_plural "prick pie" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for meat pie when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal pie" +msgid_plural "talking animal pie" msgstr[0] "" msgstr[1] "" @@ -37994,7 +39341,14 @@ msgstr[1] "" #. ~ Conditional name for meat pizza when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgid_plural "poser pizzas" +msgid_plural "poser pizza" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for meat pizza when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "protesting pizza" +msgid_plural "protesting pizza" msgstr[0] "" msgstr[1] "" @@ -38056,9 +39410,16 @@ msgstr[1] "" #. ~ Conditional name for canned meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" -msgid_plural "soylent slices" -msgstr[0] "Soylent-Stückchen" -msgstr[1] "Soylent-Stückchen" +msgid_plural "soylent slice" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for canned meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient slice" +msgid_plural "sapient slice" +msgstr[0] "" +msgstr[1] "" #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py @@ -38079,7 +39440,15 @@ msgstr[1] "" #. ~ Conditional name for salted meat slice when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slice" -msgid_plural "salted simpleton slices" +msgid_plural "salted simpleton slice" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for salted meat slice when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "salted sapient slice" +msgid_plural "salted sapient slice" msgstr[0] "" msgstr[1] "" @@ -38098,7 +39467,15 @@ msgstr[1] "Spaghetti Bolognese" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" -msgid_plural "scoundrel spaghettis" +msgid_plural "scoundrel spaghetti" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "speaking spaghetti" +msgid_plural "speaking spaghetti" msgstr[0] "" msgstr[1] "" @@ -38130,6 +39507,14 @@ msgid_plural "Luigi %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for lasagne when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Lab %s" +msgid_plural "Lab %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for lasagne when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -38173,6 +39558,15 @@ msgid_plural "chump %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for cheeseburger when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "elf %s" +msgid_plural "elf %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for cheeseburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -38197,7 +39591,14 @@ msgstr[1] "" #. ~ Conditional name for hamburger when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgid_plural "bobburgers" +msgid_plural "bobburger" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for hamburger when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "Moreauburger" +msgid_plural "Moreauburger" msgstr[0] "" msgstr[1] "" @@ -38227,6 +39628,13 @@ msgid_plural "manwiches" msgstr[0] "Menschwich" msgstr[1] "Menschwiches" +#. ~ Conditional name for sloppy joe when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "manfriendwich" +msgid_plural "manfriendwiches" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for sloppy joe when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -38258,6 +39666,14 @@ msgid_plural "tio %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for taco when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "talking %s" +msgid_plural "talking %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for taco when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -38284,7 +39700,15 @@ msgstr[1] "" #. ~ Conditional name for pickled meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgid_plural "pickled punks" +msgid_plural "pickled punk" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for pickled meat when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "pickled anthro" +msgid_plural "pickled anthro" msgstr[0] "" msgstr[1] "" @@ -38299,8 +39723,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated meat" msgid_plural "dehydrated meats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gerocknetes Fleisch" +msgstr[1] "Gerocknetes Fleisch" #. ~ Conditional name for dehydrated meat when FLAG matches CANNIBALISM #. ~ Conditional name for rehydrated meat when FLAG matches CANNIBALISM @@ -38311,6 +39735,19 @@ msgid_plural "%s, human" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for dehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for rehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for {'str': 'haggis', 'str_pl': 'haggises'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "%s, demihuman" +msgid_plural "%s, demihuman" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -38476,8 +39913,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "melatonin tablet" msgid_plural "melatonin tablets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Melatonintablette" +msgstr[1] "Melatonintabletten" #. ~ Use action activation_message for melatonin tablet. #: lang/json/COMESTIBLE_from_json.py @@ -38583,8 +40020,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "aspirin" msgid_plural "aspirins" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Aspirin" +msgstr[1] "Aspirin" #. ~ Use action activation_message for {'str': 'aspirin'}. #: lang/json/COMESTIBLE_from_json.py @@ -38603,8 +40040,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bandage" msgid_plural "bandages" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Bandage" +msgstr[1] "Bandagen" #. ~ Description for {'str': 'bandage'} #: lang/json/COMESTIBLE_from_json.py @@ -38616,8 +40053,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "makeshift bandage" msgid_plural "makeshift bandages" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Behelfsbandage" +msgstr[1] "Behelfsbandagen" #. ~ Description for makeshift bandage #: lang/json/COMESTIBLE_from_json.py @@ -38627,8 +40064,8 @@ msgstr "Einfache Stoffbandagen. Besser als nichts." #: lang/json/COMESTIBLE_from_json.py msgid "bleached makeshift bandage" msgid_plural "bleached makeshift bandages" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gebleichte Behelfsbandage" +msgstr[1] "gebleichte Behelfsbandagen" #. ~ Description for {'str': 'bleached makeshift bandage'} #: lang/json/COMESTIBLE_from_json.py @@ -38640,8 +40077,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "boiled makeshift bandage" msgid_plural "boiled makeshift bandages" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "abgekochte Behelfsbandage" +msgstr[1] "abgekochte Behelfsbandagen" #. ~ Description for {'str': 'boiled makeshift bandage'} #: lang/json/COMESTIBLE_from_json.py @@ -38676,8 +40113,13 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "caffeine pill" msgid_plural "caffeine pills" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Koffeintablette" +msgstr[1] "Koffeintabletten" + +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "" #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py @@ -38907,8 +40349,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "makeshift antiseptic" msgid_plural "makeshift antiseptics" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "selbstgemachte Antiseptikum" +msgstr[1] "selbstgemachte Antiseptika" #. ~ Description for makeshift antiseptic #: lang/json/COMESTIBLE_from_json.py @@ -39196,8 +40638,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "saline eye drop" msgid_plural "saline eye drops" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "salzhaltige Augentropfen" +msgstr[1] "salzhaltige Augentropfen" #. ~ Description for {'str': 'saline eye drop'} #: lang/json/COMESTIBLE_from_json.py @@ -39218,11 +40660,9 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." msgstr "" -"Pharmazeutischer Grippeimpfstoff, der für Massenimpfungen gemacht wurde. Er " -"ist immer noch in seiner Verpackung. Soll angeblich Immunität gegenüber " -"Grippe gewähren." #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -39331,8 +40771,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" msgid_plural "medical gauzes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Verbandmull" +msgstr[1] "Verbandmulle" #. ~ Description for medical gauze #: lang/json/COMESTIBLE_from_json.py @@ -39394,8 +40834,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "nicotine gum" msgid_plural "nicotine gums" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Nikotinkaugummi" +msgstr[1] "Nikotinkaugummis" #. ~ Description for nicotine gum #: lang/json/COMESTIBLE_from_json.py @@ -39525,8 +40965,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Prussian blue tablet" msgid_plural "Prussian blue tablets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Preußisch Blaue Tablette" +msgstr[1] "Preußisch Blaue Tabletten" #. ~ Use action activation_message for {'str': 'Prussian blue tablet'}. #: lang/json/COMESTIBLE_from_json.py @@ -39561,8 +41001,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "saline solution" msgid_plural "saline solutions" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "salzige Lösung" +msgstr[1] "salzige Lösung" #. ~ Description for saline solution #: lang/json/COMESTIBLE_from_json.py @@ -39665,8 +41105,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "multivitamin" msgid_plural "multivitamins" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Multivitamintablette" +msgstr[1] "Multivitamintabletten" #. ~ Use action activation_message for multivitamin. #. ~ Use action activation_message for calcium tablet. @@ -39691,8 +41131,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "calcium tablet" msgid_plural "calcium tablets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kalziumtablette" +msgstr[1] "Kalziumtabletten" #. ~ Description for calcium tablet #: lang/json/COMESTIBLE_from_json.py @@ -39706,8 +41146,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bone meal tablet" msgid_plural "bone meal tablets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Knochenmehl-Tablette" +msgstr[1] "Knochenmehl-Tabletten" #. ~ Description for bone meal tablet #: lang/json/COMESTIBLE_from_json.py @@ -39721,8 +41161,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "flavored bone meal tablet" msgid_plural "flavored bone meal tablets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "aromatisierte Knochenmehl-Tablette" +msgstr[1] "aromatisierte Knochenmehl-Tabletten" #. ~ Description for flavored bone meal tablet #: lang/json/COMESTIBLE_from_json.py @@ -39890,11 +41330,8 @@ msgstr "Du nimmst ein Medikament gegen Sodbrennen ein." #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." +"urges." msgstr "" -"Cremiger rosafarbener Sirup gegen Sodbrennen, welcher Magenschmerzen lindert" -" und den Brechreiz unterdrückt. Die Flasche ist mit einer Drehkappe, die " -"auch als Dosierbecher dient, versehen." #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" @@ -40153,6 +41590,33 @@ msgstr "" " Strahlung sterilisiert, somit ist ihr Verzehrt völlig unbedenklich. Fängt " "aber jetzt, nach dem Öffnen, an alt zu werden." +#: lang/json/COMESTIBLE_from_json.py +msgid "spinach fettuccine entree" +msgid_plural "spinach fettuccine entrees" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spinach fettuccine entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The creamy spinach fettuccine entree from an MRE. Sterilized using " +"radiation, so it's safe to eat. Exposed to the atmosphere, it has started " +"to go bad." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "ratatouille entree" +msgid_plural "ratatouille entrees" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for ratatouille entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The ratatouille entree from an MRE. Sterilized using radiation, so it's " +"safe to eat. Exposed to the atmosphere, it has started to go bad." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" msgid_plural "cheese tortellini entrees" @@ -40621,6 +42085,8 @@ msgid "" "A super-concentrated mutagen as white as a full moon. You need a syringe to" " inject it… if you really want to?" msgstr "" +"Ein super-konzentriertes Mutagen, weiss wie der Vollmond. Du brauchst eine " +"Spritze zum injizieren... wenn du wirklich willst?" #: lang/json/COMESTIBLE_from_json.py msgid "medical serum" @@ -41249,6 +42715,43 @@ msgstr[1] "" msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." msgstr "Leckere Hickorynuss-Ambrosia. Ein Getränk, dass Göttern würdig ist." +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter" +msgid_plural "peanut butters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for peanut butter +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A brown goo that tastes very little like its namesake. It's not bad, but " +"it'll stick to the roof of your mouth." +msgstr "" +"Ein brauner Glibber, der kaum nach seinem Namensvetter schmeckt. Er ist " +"nicht schlecht, aber er wird an der Oberseite deines Mundes kleben bleiben." + +#: lang/json/COMESTIBLE_from_json.py +msgid "imitation peanutbutter" +msgid_plural "imitation peanutbutters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for imitation peanutbutter +#: lang/json/COMESTIBLE_from_json.py +msgid "A thick, nutty brown paste." +msgstr "Eine dicke, nussige braune Paste." + +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter spread" +msgid_plural "peanut butter spreads" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for peanut butter spread +#: lang/json/COMESTIBLE_from_json.py +msgid "Processed peanut butter spread.." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "acorns" msgid_plural "acorns" @@ -41476,8 +42979,8 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "diet pill" msgid_plural "diet pills" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Diättablette" +msgstr[1] "Diättabletten" #. ~ Description for diet pill #: lang/json/COMESTIBLE_from_json.py @@ -41538,9 +43041,9 @@ msgstr[1] "Gelée royale" #. ~ Description for {'str': 'royal jelly', 'str_pl': 'royal jellies'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A translucent hexagonal chunk of wax, filled with dense, milky jelly. " -"Though some hold it as a panacea, it doesn't have any medical benefit. " -"Still, it is delicious, and rich with the most beneficial substances the " +"A translucent hexagonal chunk of wax, filled with dense, milky, bitter and " +"acidic-tasting jelly. Though some hold it as a panacea, it doesn't have any" +" medical benefit. Still it is rich with the most beneficial substances the " "hive can produce." msgstr "" @@ -41609,8 +43112,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bone meal" msgid_plural "bone meal" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Knochenmehl" +msgstr[1] "Knochenmehl" #. ~ Description for {'str_sp': 'bone meal'} #: lang/json/COMESTIBLE_from_json.py @@ -41622,8 +43125,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tainted bone meal" msgid_plural "tainted bone meal" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "verpestetes Knochenmehl" +msgstr[1] "verpestetes Knochenmehl" #. ~ Description for {'str_sp': 'tainted bone meal'} #: lang/json/COMESTIBLE_from_json.py @@ -41649,8 +43152,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "paper" msgid_plural "papers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Papier" +msgstr[1] "Papiere" #. ~ Description for paper #: lang/json/COMESTIBLE_from_json.py @@ -41660,8 +43163,8 @@ msgstr "Ein Stück Papier. Kann für Feuer benutzt werden." #: lang/json/COMESTIBLE_from_json.py msgid "cardboard" msgid_plural "cardboards" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kartonpapier" +msgstr[1] "Kartonpapiere" #. ~ Description for cardboard #: lang/json/COMESTIBLE_from_json.py @@ -41791,6 +43294,17 @@ msgid "" " and is guaranteed 100% edible!" msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -41969,17 +43483,51 @@ msgid "Some nectar. Seeing this item is a bug." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "protein drink" -msgid_plural "protein drinks" +msgid "tea bag" +msgid_plural "tea bags" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with tea leafs inside. Put it into boiling water to get your " +"cup of tea." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "herbal tea bag" +msgid_plural "herbal tea bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'herbal tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with dried wild herbs inside. Put it into boiling water to " +"make some healthy warm drink." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "protein drink" +msgid_plural "protein drinks" +msgstr[0] "Proteingetränk" +msgstr[1] "Proteingetränke" + #. ~ Conditional name for protein drink when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" -msgid_plural "soylent green drinks" -msgstr[0] "Soylent-Green-Getränk" -msgstr[1] "Soylent-Green-Getränke" +msgid_plural "soylent green drink" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for protein drink when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green drink" +msgid_plural "sapient green drink" +msgstr[0] "" +msgstr[1] "" #. ~ Conditional name for protein drink when COMPONENT_ID matches mutant #. ~ Conditional name for {'str_sp': 'protein powder'} when COMPONENT_ID @@ -42006,8 +43554,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "protein powder" msgid_plural "protein powder" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Proteinpulver" +msgstr[1] "Proteinpulver" #. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches #. CANNIBALISM @@ -42017,6 +43565,14 @@ msgid_plural "soylent green powder" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green powder" +msgid_plural "sapient green powder" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for {'str_sp': 'protein powder'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -42029,31 +43585,40 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "protein ration" msgid_plural "protein rations" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Proteinration" +msgstr[1] "Proteinrationen" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the" -" product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you" -" hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable" +" to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" msgid_plural "protein shakes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Proteinshake" +msgstr[1] "Proteinshakes" #. ~ Conditional name for protein shake when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgid_plural "soylent green shakes" +msgid_plural "soylent green shake" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green shake" +msgid_plural "sapient green shake" msgstr[0] "" msgstr[1] "" @@ -42076,7 +43641,15 @@ msgstr[1] "" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgid_plural "fortified soylent green shakes" +msgid_plural "fortified soylent green shake" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for fortified protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "fortified sapient green shake" +msgid_plural "fortified sapient green shake" msgstr[0] "" msgstr[1] "" @@ -42545,8 +44118,8 @@ msgstr "Ein gesundes Wurzelgemüse. Reich an Vitamin A!" #: lang/json/COMESTIBLE_from_json.py msgid "cattail rhizome" msgid_plural "cattail rhizomes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rohrkolben-Rhizom" +msgstr[1] "Rohrkolben-Rhizome" #. ~ Description for {'str': 'cattail rhizome'} #: lang/json/COMESTIBLE_from_json.py @@ -42562,8 +44135,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cattail stalk" msgid_plural "cattail stalks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rohrkolbenstiel" +msgstr[1] "Rohrkolbenstiele" #. ~ Description for {'str': 'cattail stalk'} #: lang/json/COMESTIBLE_from_json.py @@ -43029,6 +44602,17 @@ msgid "" "fiddle. Delicious when cooked, but consuming raw can cause food poisoning." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" @@ -43167,6 +44751,14 @@ msgid_plural "slob sandwiches" msgstr[0] "Sapiens-Sandwich" msgstr[1] "Sapiens-Sandwichs" +#. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat +#. sandwiches'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "satyr sandwich" +msgid_plural "satyr sandwiches" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when COMPONENT_ID matches mutant #. ~ Conditional name for meat soup when COMPONENT_ID matches mutant @@ -43614,7 +45206,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cattail" -msgstr "" +msgstr "Rohrkolben" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia seeds" @@ -44158,6 +45750,23 @@ msgstr "" msgid "chamomile" msgstr "Kamille" +#: lang/json/COMESTIBLE_from_json.py +msgid "spurge seeds" +msgid_plural "spurge seeds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'spurge seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some spurge seeds." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py +msgid "spurge" +msgid_plural "spurges" +msgstr[0] "Wolfsmilch" +msgstr[1] "Wolfsmilch" + #: lang/json/COMESTIBLE_from_json.py msgid "popcorn seeds" msgid_plural "popcorn seeds" @@ -44191,6 +45800,17 @@ msgstr[1] "" msgid "Some mustard seeds. Could be ground into mustard powder." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -44209,6 +45829,14 @@ msgid_plural "bone broths" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for bone broth when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "demihuman %s" +msgid_plural "demihuman %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." @@ -44234,7 +45862,14 @@ msgstr[1] "" #. ~ Conditional name for meat soup when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgid_plural "sap soups" +msgid_plural "sap soup" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for meat soup when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "goblin soup" +msgid_plural "goblin soup" msgstr[0] "" msgstr[1] "" @@ -44506,10 +46141,8 @@ msgstr[1] "Wildkräuter" #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " -"purslane, fireweed, and burdock." +"purslane, and fireweed." msgstr "" -"Eine leckere Sammlung aus Wildkräutern mit Veilchen, Sassafras, Minze, Klee," -" Portulak, Weidenröschen und Klette." #: lang/json/COMESTIBLE_from_json.py msgid "soy sauce" @@ -44538,6 +46171,19 @@ msgstr[1] "" msgid "A fragnant yellow powder. Not edible in this form." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" @@ -44964,8 +46610,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated vegetable" msgid_plural "dehydrated vegetables" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gerocknetes Gemüse" +msgstr[1] "Gerocknetes Gemüse" #. ~ Description for dehydrated vegetable #: lang/json/COMESTIBLE_from_json.py @@ -45164,19 +46810,17 @@ msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "wheat cereal" -msgid_plural "wheat cereals" +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" msgstr[0] "" msgstr[1] "" -#. ~ Description for wheat cereal +#. ~ Description for {'str': 'cooked bell pepper'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " -"your heart." +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds" +" are removed." msgstr "" -"Vollkornweizenmüsli. Es ist überraschend gut und angeblich gut für dein " -"Herz." #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py @@ -45417,7 +47061,6 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for {'str_sp': 'granola'} -#. ~ Description for gluten free granola #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " @@ -46065,6 +47708,12 @@ msgid_plural "pachycephalosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -46077,6 +47726,12 @@ msgid_plural "tyrannosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "triceratops egg" msgid_plural "triceratops eggs" @@ -46095,6 +47750,12 @@ msgid_plural "ankylosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -46614,714 +48275,768 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "necrotic head" -msgid_plural "necrotic heads" +msgid "TEST pine nuts" +msgid_plural "TEST pine nuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for necrotic head -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"The severed head of a zombie necromancer. Its eyes still roll in its head " -"and its jaws snap menacingly." -msgstr "" -"Der abgetrennte Kopf eines Zombiebeschwörer. Seine Augen rollen noch immer " -"in seinem Kopf herum und seine Kiefer schnappen drohend zu." - #: lang/json/COMESTIBLE_from_json.py -msgid "mutagenic glob" -msgid_plural "mutagenic globs" +msgid "test bitter almonds" +msgid_plural "test bitter almonds" msgstr[0] "" msgstr[1] "" -#. ~ Description for mutagenic glob -#: lang/json/COMESTIBLE_from_json.py -msgid "A gelatinous glob of mutagen." -msgstr "Ein gelatinöser Klumpen aus Mutagenen." - +#. ~ Description for {'str_sp': 'test bitter almonds'} #: lang/json/COMESTIBLE_from_json.py -msgid "honey" -msgid_plural "honey" -msgstr[0] "Honig" -msgstr[1] "Honig" - -#. ~ Description for {'str_sp': 'honey'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Honey, that stuff bees make." -msgstr "Honig, das Zeug, das Bienen machen." +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when" +" eaten raw." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "TEST pine nuts" -msgid_plural "TEST pine nuts" +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fish sandwich" -msgid_plural "gluten free fish sandwiches" -msgstr[0] "glutenfreies Fischsandwich" -msgstr[1] "glutenfreie Fischsandwichs" - -#. ~ Description for {'str': 'gluten free fish sandwich', 'str_pl': 'gluten -#. free fish sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free and a delicious fish sandwich." -msgstr "Ein glutenfreies und leckeres Fischsandwich." - -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable sandwich" -msgid_plural "gluten free vegetable sandwiches" -msgstr[0] "glutenfreies Gemüsesandwich" -msgstr[1] "glutenfreie Gemüsesandwichs" - -#. ~ Description for {'str': 'gluten free vegetable sandwich', 'str_pl': -#. 'gluten free vegetable sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluen free bread and vegetables, that's it." -msgstr "Glutenfreies Brot und Gemüse, mehr nicht." +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free granola" -msgid_plural "gluten free granolas" +msgid "test apple" +msgid_plural "test apples" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'test apple'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat sandwich" -msgid_plural "gluten free meat sandwiches" -msgstr[0] "glutenfreies Fleisch-Sandwich" -msgstr[1] "glutenfreie Fleisch-Sandwichs" - -#. ~ Description for {'str': 'gluten free meat sandwich', 'str_pl': 'gluten -#. free meat sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free bread and meat, that's it." -msgstr "Glutenfreies Brot und Fleisch, und das war’s." +msgid "Test apple. May contain worms, but tastes delicious!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free peanut butter sandwich" -msgid_plural "gluten free peanut butter sandwiches" -msgstr[0] "glutenfreies Erdnussbuttersandwich" -msgstr[1] "glutenfreie Erdnussbuttersandwichs" +msgid "test liquid" +msgid_plural "test liquid" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free peanut butter sandwich', 'str_pl': -#. 'gluten free peanut butter sandwiches'} +#. ~ Description for {'str_sp': 'test liquid'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some peanut butter smothered between two pieces of gluten free bread. Not " -"very filling and will stick to the roof of your mouth like glue." +"No clue what it's made of, but it's definitely liquid. Only for testing, do" +" not drink!" msgstr "" -"Etwas Erdnussbutter, welche zwischen zwei glutenfreien Brotscheiben " -"geschmiert wurde. Nicht sehr füllend und es wird an der Oberseite deines " -"Mundes wie Klebstoff kleben bleiben." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&J sandwich" -msgid_plural "gluten free PB&J sandwiches" -msgstr[0] "glutenfreies Erdnussbutter-Marmelade-Sandwich" -msgstr[1] "glutenfreie Erdnussbutter-Marmelade-Sandwichs" +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free PB&J sandwich', 'str_pl': 'gluten -#. free PB&J sandwiches'} +#. ~ Description for tennis ball wine must #: lang/json/COMESTIBLE_from_json.py msgid "" -"A delicious peanut butter and jelly gluten free sandwich. It reminds you of" -" the times your mother would make you lunch." +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." msgstr "" -"Ein leckeres glutenfreies Erdnussbutter-Marmelade-Sandwich. Es erinnert dich" -" an die Zeiten, als dir deine Mutter Essen machte." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&H sandwich" -msgid_plural "gluten free PB&H sandwiches" -msgstr[0] "glutenfreies Erdnussbutter-Honig-Sandwich" -msgstr[1] "glutenfreie Erdnussbutter-Honig-Sandwichs" +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free PB&H sandwich', 'str_pl': 'gluten -#. free PB&H sandwiches'} +#. ~ Description for {'str_sp': 'test tennis ball wine'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some damned fool put honey on this peanut butter sandwich, who in their " -"right mind- oh wait this is pretty good. Gluten free too!" +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&M sandwich" -msgid_plural "gluten free PB&M sandwiches" -msgstr[0] "glutenfreies Erdnussbutter-Ahornsirup-Sandwich" -msgstr[1] "glutenfreie Erdnussbutter-Ahornsirup-Sandwichs" +msgid "test chewing gum" +msgid_plural "test chewing gum" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free PB&M sandwich', 'str_pl': 'gluten -#. free PB&M sandwiches'} +#. ~ Description for {'str_sp': 'test chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Who knew you could mix maple syrup and peanut butter to create yet another " -"different gluten free sandwich?" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." msgstr "" -"Wer hätte gewusst, dass man Ahornsirup und Erdnussbutter vermischen kann, um" -" noch ein weiteres glutenfreies Sandwich zu machen?" #: lang/json/COMESTIBLE_from_json.py -msgid "lactose free hickory nut ambrosia" -msgid_plural "lactose free hickory nut ambrosias" +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" msgstr[0] "" msgstr[1] "" -#. ~ Description for lactose free hickory nut ambrosia +#. ~ Description for {'str': 'test mutated thumb'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " -"made with an alternative to cows milk." +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." msgstr "" -#. ~ Description for cornmeal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"You think this is cornflour… or rice flour… Or something else. However, it" -" certainly is not wheat flour! It is useful for baking though." +#: lang/json/CONTAINER_from_json.py +msgid "small metal tank" +msgid_plural "small metal tanks" +msgstr[0] "kleiner Metalltank" +msgstr[1] "kleine Metalltanks" + +#. ~ Description for small metal tank +#: lang/json/CONTAINER_from_json.py +msgid "A small metal tank for holding gas or liquids. Useful for crafting." msgstr "" +"Ein kleiner Metalltank für das Aufbewahren von Gasen oder Flüssigkeiten. " +"Nützlich für die Fertigung." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free johnnycake" -msgid_plural "gluten free johnnycakes" +#: lang/json/ENGINE_from_json.py +msgid "internal combustion engine" +msgid_plural "internal combustion engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free johnnycake -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"We all crave for cake sometimes. This is not perfect, but it is a tasty and" -" nutritious gluten free fried bread treat. " -msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "base diesel engine" +msgid_plural "base diesel engines" +msgstr[0] "" +msgstr[1] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pancake" -msgid_plural "gluten free fruit pancakes" -msgstr[0] "glutenfreier Obstpfannkuchen" -msgstr[1] "glutenfreie Obstpfannkuchen" +#: lang/json/ENGINE_from_json.py +msgid "base gasoline engine" +msgid_plural "base gasoline engines" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"Lockere und leckere glutenfreie Pfannkuchen mit echtem Ahornsirup. Sie " -"wurden süßer und gesünder mit dem Hinzufügen gesunder Früchte gemacht." +#: lang/json/ENGINE_from_json.py +msgid "base steam engine" +msgid_plural "base steam engines" +msgstr[0] "" +msgstr[1] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free fruit pancake" -msgid_plural "lactose free fruit pancakes" -msgstr[0] "laktosefreier Obstpfannkuchen" -msgstr[1] "laktosefreie Obstpfannkuchen" +#: lang/json/ENGINE_from_json.py +msgid "1-cylinder engine" +msgid_plural "1-cylinder engines" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': '1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A single-cylinder 4-stroke combustion engine." +msgstr "Ein Einzylinder-Viertaktverbrennungsmotor." + +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgid_plural "large 1-cylinder engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'large 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious lactose free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." +"A powerful high-compression single-cylinder 4-stroke combustion engine." msgstr "" -"Lockere und leckere laktosefreie Pfannkuchen mit echtem Ahornsirup. Sie " -"wurden süßer und gesünder mit dem Hinzufügen gesunder Früchte gemacht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit pancake" -msgid_plural "gluten free lactose free fruit pancakes" -msgstr[0] "gluten- und laktosefreier Obstpfannkuchen" -msgstr[1] "gluten- und laktosefreie Obstpfannkuchen" +#: lang/json/ENGINE_from_json.py +msgid "small 1-cylinder engine" +msgid_plural "small 1-cylinder engines" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small single-cylinder 2-stroke combustion engine." +msgstr "Ein kleiner einzylindriger Zweitaktverbrennungsmotor." + +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious pancakes made out of the only things you can still eat." -" But at least it has real maple syrup, made sweeter and healthier with the " -"addition of wholesome fruit." +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate pancake" -msgid_plural "gluten free chocolate pancakes" -msgstr[0] "glutenfreier Schokoladenpfannkuchen" -msgstr[1] "glutenfreie Schokoladenpfannkuchen" +#: lang/json/ENGINE_from_json.py +msgid "Inline-4 engine" +msgid_plural "Inline-4 engines" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free chocolate pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Inline-4 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small, yet powerful 4-cylinder combustion engine." +msgstr "Ein kleiner, aber starker Vierzylinder-Verbrennungsmotor." + +#: lang/json/ENGINE_from_json.py +msgid "I6 diesel engine" +msgid_plural "I6 diesel engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'I6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful straight-6 diesel engine." +msgstr "Ein starker Sechszylinder-Diesel-Reihenmotor." + +#: lang/json/ENGINE_from_json.py +msgid "V-twin engine" +msgid_plural "V-twin engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'V-twin engine'} +#: lang/json/ENGINE_from_json.py +msgid "A 2-cylinder 4-stroke combustion engine." +msgstr "Ein Zweizylinder-Viertaktverbrennungsmotor." + +#: lang/json/ENGINE_from_json.py +msgid "V6 engine" +msgid_plural "V6 engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'V6 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder combustion engine." +msgstr "Ein starker Sechszylinder-Verbrennungsmotor." + +#: lang/json/ENGINE_from_json.py +msgid "V6 diesel engine" +msgid_plural "V6 diesel engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'V6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder diesel engine." +msgstr "Ein starker Sechszylinderdieselmotor." + +#: lang/json/ENGINE_from_json.py +msgid "V8 engine" +msgid_plural "V8 engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'V8 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A large and very powerful 8-cylinder combustion engine." +msgstr "Ein großer und sehr starker Achtzylinder-Verbrennungsmotor." + +#: lang/json/ENGINE_from_json.py +msgid "V8 diesel engine" +msgid_plural "V8 diesel engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'V8 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 8-cylinder diesel engine." +msgstr "Ein starker Achtzylinderdieselmotor." + +#: lang/json/ENGINE_from_json.py +msgid "V12 engine" +msgid_plural "V12 engines" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'V12 engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, with " -"delicious chocolate baked right in." +"A massive and extremely powerful V12 engine, usually built into high end " +"sports cars." msgstr "" -"Luftige und leckere glutenfreie Pfannkuchen mit echtem Ahornsirup und " -"leckerer Schokolade, die direkt eingebacken wurde." +"Ein wuchtiger und extrem schwerer Zwölfzylindermotor; üblicherweise werden " +"diese in hochwertigen Sportwagen eingebaut." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free French toast" -msgid_plural "gluten free French toasts" -msgstr[0] "glutenfreier Armer Ritter" -msgstr[1] "glutenfreie Arme Ritter" +#: lang/json/ENGINE_from_json.py +msgid "V12 diesel engine" +msgid_plural "V12 diesel engines" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'V12 diesel engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a milk and egg mixture then fried." +"A massive and extremely powerful V12 engine, usually built into heavy " +"trucks." msgstr "" -"Glutenfreie Brotscheiben, die in einem Milch- und Eiermix getunkt und " -"anschließend geröstet wurden." +"Ein wuchtiger und extrem schwerer Zwölfzylindermotor; üblicherweise werden " +"diese in schweren Lastern eingebaut." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free French toast" -msgid_plural "gluten free lactose free French toasts" -msgstr[0] "gluten- und laktosefreier Armer Ritter" -msgstr[1] "gluten- und laktosefreie Arme Ritter" +#: lang/json/ENGINE_from_json.py +msgid "makeshift steam engine" +msgid_plural "makeshift steam engines" +msgstr[0] "selbstgebaute Dampfmaschine" +msgstr[1] "selbstgebaute Dampfmaschinen" -#. ~ Description for {'str': 'gluten free lactose free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'makeshift steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a lactose free milk and egg mixture " -"then fried. You never thought it was possible, but now you truly feel like " -"a post millennial." +"A small, primitive, steam engine. An integrated boiler burns coal to heat " +"water into steam, driving a reciprocating shaft. A condenser recaptures the" +" water, making this a closed cycle system." msgstr "" +"Eine kleine, primitive Dampfmaschine. Ein integrierter Kessel verbrennt " +"Kohle, um Wasser zu Dampf zu erhitzen und eine sich hin- und herbewegende " +"Welle anzutreiben. Ein Kondensator fängt den Wasserdampf wieder auf, wodurch" +" ein geschlossener Wasser-Kreislauf entsteht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free biscuit" -msgid_plural "gluten free biscuits" +#: lang/json/ENGINE_from_json.py +msgid "small steam engine" +msgid_plural "small steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free biscuit -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Delicious and filling, this home made gluten free biscuit is good, and good " -"for you!" +"A small steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condenser recaptures the water, " +"making this a closed cycle system." msgstr "" -"Lecker und füllend: Dieses selbstgemachte glutenfreie weiche Brötchen ist " -"gut, und gut für dich!" +"Eine kleine Dampfmaschine. Ein integrierter Kessel verbrennt Kohle, um " +"Wasser zu Dampf zu erhitzen und eine sich hin- und herbewegende Welle " +"anzutreiben. Ein Kondensator fängt den Wasserdampf wieder auf, wodurch ein " +"geschlossener Wasser-Kreislauf entsteht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pie" -msgid_plural "gluten free fruit pies" +#: lang/json/ENGINE_from_json.py +msgid "medium steam engine" +msgid_plural "medium steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free fruit pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a sweet fruit filling." +#. ~ Description for {'str': 'medium steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A medium-sized steam engine. An integrated boiler burns coal to heat water " +"into steam, driving a reciprocating shaft. A condenser recaptures the " +"water, making this a closed cycle system." msgstr "" -"Ein köstlicher gebackener glutenfreier Kuchen, gefüllt mit einer süßen " -"Fruchtmischung." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pie" -msgid_plural "gluten free vegetable pies" +#: lang/json/ENGINE_from_json.py +msgid "1350 hp gas turbine engine" +msgid_plural "1350 hp gas turbine engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free vegetable pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious vegetable filling." +#. ~ Description for {'str': '1350 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A gas turbine engine, usually used for military vehicles. Known for its " +"high rate of fuel consumption." msgstr "" -"Ein leckere gebackene glutenfreie Pastete mit einer leckeren Gemüsefüllung." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pie" -msgid_plural "gluten free meat pies" +#: lang/json/ENGINE_from_json.py +msgid "1900 hp gas turbine engine" +msgid_plural "1900 hp gas turbine engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free meat pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious meat filling." +#. ~ Description for {'str': '1900 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large gas turbine engine, usually used for military helicopters. Known " +"for its high rate of fuel consumption." msgstr "" -"Ein leckere gebackene glutenfreie Pastete mit einer leckeren Fleischfüllung." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free maple pie" -msgid_plural "gluten free maple pies" +#: lang/json/ENGINE_from_json.py +msgid "6000 hp gas turbine engine" +msgid_plural "6000 hp gas turbine engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free maple pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A sweet and delicious baked gluten free pie with pure maple syrup." +#. ~ Description for {'str': '6000 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " +"high rate of fuel consumption." msgstr "" -"Eine süße und leckere gebackene glutenfreie Pastete mit reinem Ahornsirup." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pizza" -msgid_plural "gluten free vegetable pizzas" +#: lang/json/ENGINE_from_json.py +msgid "large steam engine" +msgid_plural "large steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free vegetable pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " -"crust. Its smell brings back great memories." +"A large steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" -"Eine vegetarische glutenfreie Pizza, mit leckerer Tomatensoße und einer " -"lockeren Kruste. Ihr Geruch weckt großartige Erinnerungen." +"Eine große Dampfmaschine. Ein integrierter Kessel verbrennt Kohle, um Wasser" +" zu Dampf zu erhitzen und eine sich hin- und herbewegende Welle anzutreiben." +" Ein Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener" +" Wasser-Kreislauf entsteht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese pizza" -msgid_plural "gluten free cheese pizzas" +#: lang/json/ENGINE_from_json.py +msgid "huge steam engine" +msgid_plural "huge steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free cheese pizza -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free pizza with molten cheese on top." -msgstr "Eine leckere glutenfreie Pizza mit geschmolzenem Käse." +#. ~ Description for {'str': 'huge steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "" +"Eine riesige Dampfmaschine. Ein integrierter Kessel verbrennt Kohle, um " +"Wasser zu Dampf zu erhitzen und eine sich hin- und herbewegende Welle " +"anzutreiben. Ein Kondensator fängt den Wasserdampf wieder auf, wodurch ein " +"geschlossener Wasser-Kreislauf entsteht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pizza" -msgid_plural "gluten free meat pizzas" +#: lang/json/ENGINE_from_json.py +msgid "small steam turbine" +msgid_plural "small steam turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free meat pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A meat gluten free pizza, for all the carnivores out there. Chock full of " -"minced meat and heavily seasoned." +"A small steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -"Eine glutenfreie Fleischpizza, für alle Fleichfresser da draußen. " -"Knüppelvoll mit Hackfleisch und stark gewürzt." +"Eine kleine Dampfturbine. Ein integrierter Kessel verbrennt Kohle, um Wasser" +" zu Dampf zu erhitzen und eine sich drehende Turbine anzutreiben. Ein " +"Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener " +"Wasser-Kreislauf entsteht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheeseburger" -msgid_plural "gluten free cheeseburgers" +#: lang/json/ENGINE_from_json.py +msgid "medium steam turbine" +msgid_plural "medium steam turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free cheeseburger -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of minced meat and cheese with condiments. The apex " -"of pre-Cataclysm culinary achievement." +"A medium sized steam turbine. An integrated boiler burns coal to heat water" +" into steam, driving a spinning turbine. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" +"Eine mittelgroße Dampfturbine. Ein integrierter Kessel verbrennt Kohle, um " +"Wasser zu Dampf zu erhitzen und eine sich drehende Turbine anzutreiben. Ein " +"Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener " +"Wasser-Kreislauf entsteht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free hamburger" -msgid_plural "gluten free hamburgers" +#: lang/json/ENGINE_from_json.py +msgid "large steam turbine" +msgid_plural "large steam turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free hamburger -#: lang/json/COMESTIBLE_from_json.py -msgid "A gluten free sandwich of minced meat with condiments." -msgstr "Ein glutenfreies Sandwich mit Hackfleisch und Gewürzen." +#. ~ Description for {'str': 'large steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "" +"Eine große Dampfturbine. Ein integrierter Kessel verbrennt Kohle, um Wasser " +"zu Dampf zu erhitzen und eine sich drehende Turbine anzutreiben. Ein " +"Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener " +"Wasser-Kreislauf entsteht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sloppy joe" -msgid_plural "gluten free sloppy joes" +#: lang/json/ENGINE_from_json.py +msgid "huge steam turbine" +msgid_plural "huge steam turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free sloppy joe -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'huge steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich, consisting of ground meat and tomato sauce served on" -" a hamburger bun." +"A huge steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -"Ein glutenfreies Sandwich, bestehend aus Hackfleisch, Zwiebeln und " -"Tomatensoße in einem Hamburgerbrötchen." +"Eine riesige Dampfturbine. Ein integrierter Kessel verbrennt Kohle, um " +"Wasser zu Dampf zu erhitzen und eine sich drehende Turbine anzutreiben. Ein " +"Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener " +"Wasser-Kreislauf entsteht." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free BLT" -msgid_plural "gluten free BLTs" +#: lang/json/GENERIC_from_json.py +msgid "fetid goop" +msgid_plural "fetid goops" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free BLT -#: lang/json/COMESTIBLE_from_json.py -msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." -msgstr "Ein glutenfreies Speck-, Salat- und Tomatensandwich in Toastbrot." +#. ~ Description for {'str': 'fetid goop'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A foul smelling goop. It has a disgusting texture and a powerful smell that" +" overrides every other smell around it." +msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sweetbread" -msgid_plural "gluten free sweetbreads" -msgstr[0] "glutenfreies Kalbsbries" -msgstr[1] "glutenfreie Kalbsbriese" +#: lang/json/GENERIC_from_json.py +msgid "limestone shard" +msgid_plural "limestone shards" +msgstr[0] "Kalksteinbruchstück" +msgstr[1] "Kalksteinbruchstücke" -#. ~ Description for {'str': 'gluten free sweetbread'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'limestone shard'} +#: lang/json/GENERIC_from_json.py msgid "" -"Delicious and tender organ meats. First boiled, then gluten free breaded " -"crumbs added and fried. They have interesting flavor and unparalleled " -"texture." +"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" +" alkaline properties may yet find some use." msgstr "" -"Leckere und zarte Organfleischsorten. Zuerst gekocht, dann mit glutenfreien " -"Brotkrumen paniert und frittiert. Sie haben einen interessanten Geschmack " -"und eine einzigartige Textur." +"Ein kleiner Kalksteinsplitter. Ziemlich dünn und nicht wirklich eine Waffe, " +"aber seine alkalischen Eigenschaften könnten sich als nützlich erweisen." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese sandwich" -msgid_plural "gluten free cheese sandwiches" -msgstr[0] "glutenfreies Käsesandwich" -msgstr[1] "glutenfreie Käsesandwichs" +#: lang/json/GENERIC_from_json.py +msgid "rock salt" +msgid_plural "rock salt" +msgstr[0] "Steinsalz" +msgstr[1] "Steinsalz" -#. ~ Description for {'str': 'gluten free cheese sandwich', 'str_pl': 'gluten -#. free cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A simple gluten free cheese sandwich." -msgstr "Ein einfaches glutenfreies Käsesandwich." +#. ~ Description for {'str_sp': 'rock salt'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of rock salt crystals. Could be refined into table salt." +msgstr "" +"Eine Handvoll Steinsalzkristalle. Könnte zu Kochsalz raffiniert werden." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free grilled cheese sandwich" -msgid_plural "gluten free grilled cheese sandwiches" -msgstr[0] "glutenfreier Käsetoast" -msgstr[1] "glutenfreie Käsetoasts" +#: lang/json/GENERIC_from_json.py +msgid "rhodonite" +msgid_plural "rhodonite" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free grilled cheese sandwich', 'str_pl': -#. 'gluten free grilled cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'rhodonite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A delicious gluten free grilled cheese sandwich, because everything is " -"better with melted cheese." +"A chunk of rhodonite. It has manganese dioxide covering and going through " +"it in veins, which can be obtained using a chisel." msgstr "" -"Ein leckerer glutenfreier Käsetoast, weil alles mit geschmolzenem Käse " -"besser wird." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free deluxe sandwich" -msgid_plural "gluten free deluxe sandwiches" -msgstr[0] "glutenfreies Luxus-Sandwich" -msgstr[1] "glutenfreie Luxus-Sandwichs" +#: lang/json/GENERIC_from_json.py +msgid "zincite" +msgid_plural "zincite" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free deluxe sandwich', 'str_pl': 'gluten -#. free deluxe sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'zincite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A gluten free sandwich of meat, vegetables, and cheese with condiments. " -"Tasty and nutritious!" +"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " +"reduction with a source of carbon." msgstr "" -"Ein glutenfreies Sandwich mit Fleisch, Gemüse und Käse mit Gewürzen. Lecker " -"und nahrhaft!" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cucumber sandwich" -msgid_plural "gluten free cucumber sandwiches" -msgstr[0] "glutenfreies Gurkensandwich" -msgstr[1] "glutenfreie Gurkensandwichs" +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free cucumber sandwich', 'str_pl': -#. 'gluten free cucumber sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py msgid "" -"A refreshing gluten free cucumber sandwich. Not very filling, but quite " -"tasty." +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." msgstr "" -"Ein erfrischendes glutenfreies Gurkensandwich. Nicht sehr sättigend aber " -"immer noch lecker." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free jam sandwich" -msgid_plural "gluten free jam sandwiches" -msgstr[0] "glutenfreies Marmeladenbrot" -msgstr[1] "glutenfreie Marmeladenbrote" +#: lang/json/GENERIC_from_json.py +msgid "hickory root" +msgid_plural "hickory roots" +msgstr[0] "Hickorywurzel" +msgstr[1] "Hickorywurzeln" -#. ~ Description for {'str': 'gluten free jam sandwich', 'str_pl': 'gluten -#. free jam sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free jam sandwich." -msgstr "Ein leckeres glutenfreies Marmeladenbrot." +#. ~ Description for {'str': 'hickory root'} +#: lang/json/GENERIC_from_json.py +msgid "A root from a hickory tree. It has an earthy smell." +msgstr "Eine Wurzel eines Hickorybaums. Sie hat einen erdigen Geruch." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free honey sandwich" -msgid_plural "gluten free honey sandwiches" -msgstr[0] "glutenfreies Honigsandwich" -msgstr[1] "glutenfreie Honigsandwichs" +#: lang/json/GENERIC_from_json.py +msgid "hickory nuts" +msgid_plural "hickory nuts" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free honey sandwich', 'str_pl': 'gluten -#. free honey sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free honey sandwich." -msgstr "Ein leckeres glutenfreies Honigsandwich." +#. ~ Description for {'str_sp': 'hickory nuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hickory tree, still in their shell." +msgstr "" +"Eine Handvoll harter Nüsse von einem Hickory-Baum, noch in der Schale." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free boring sandwich" -msgid_plural "gluten free boring sandwiches" -msgstr[0] "glutenfreies fades Sandwich" -msgstr[1] "glutenfreie fade Sandwichs" +#: lang/json/GENERIC_from_json.py +msgid "pecans" +msgid_plural "pecans" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free boring sandwich', 'str_pl': 'gluten -#. free boring sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A simple gluten free sauce sandwich. Not very filling but beats eating just" -" the bread… especially if it is the wrong type of bread!" +#. ~ Description for {'str_sp': 'pecans'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pecan tree, still in their shell." msgstr "" +"Eine Handvoll harter Nüsse eines Pekannussbaums, immer noch in ihrer Schale." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free waffle" -msgid_plural "gluten free waffles" +#: lang/json/GENERIC_from_json.py +msgid "pistachios" +msgid_plural "pistachios" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str_sp': 'pistachios'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pistachio tree, still in their shell." msgstr "" +"Eine Handvoll harter Nussfrüchte eines Pistazienbaums, immer noch in ihrer " +"Schale." -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free waffle" -msgid_plural "lactose free waffles" +#: lang/json/GENERIC_from_json.py +msgid "almonds" +msgid_plural "almonds" msgstr[0] "" msgstr[1] "" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Lactose free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str_sp': 'almonds'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from an almond tree, still in their shell." msgstr "" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Gluten free and lactose free waffle. It's basically a pancake in hashtag " -"form." +#: lang/json/GENERIC_from_json.py +msgid "peanuts" +msgid_plural "peanuts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'peanuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a peanut bush, still in their shell." msgstr "" +"Eine Handvoll harter Früchte einer Erdnusspflanze, immer noch in ihrer " +"Schale." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit waffle" -msgid_plural "gluten free fruit waffles" +#: lang/json/GENERIC_from_json.py +msgid "hazelnuts" +msgid_plural "hazelnuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." +#. ~ Description for {'str_sp': 'hazelnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hazelnut tree, still in their shell." msgstr "" -"Knusprige und leckere glutenfreie Waffeln mit echtem Ahornsirup. Sie wurden " -"süßer und gesünder durch die Zugabe von gesundem Obst gemacht." +"Eine Handvoll harter Nüsse eines Haselnussbaums, immer noch in ihrer Schale." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit waffle" -msgid_plural "gluten free lactose free fruit waffles" +#: lang/json/GENERIC_from_json.py +msgid "chestnuts" +msgid_plural "chestnuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free lactose free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free and lactose free waffles with real maple " -"syrup, made sweeter and healthier with the addition of wholesome fruit." +#. ~ Description for {'str_sp': 'chestnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a chestnut tree, still in their shell." msgstr "" -"Knusprige und leckere gluten- und laktosefreie Waffeln mit echtem " -"Ahornsirup. Sie wurden süßer und gesünder durch die Zugabe von gesundem Obst" -" gemacht." +"Eine Handvoll harter Nussfrüchte eines Kastanienbaums, immer noch in ihrer " +"Schale." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate waffle" -msgid_plural "gluten free chocolate waffles" +#: lang/json/GENERIC_from_json.py +msgid "walnuts" +msgid_plural "walnuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free chocolate waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, with " -"delicious chocolate baked right in." +#. ~ Description for {'str_sp': 'walnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a walnut tree, still in their shell." msgstr "" -"Knusprige und leckere glutenfreie Waffeln mit echtem Ahornsirup; leckere " -"Schokolade ist direkt eingebacken." +"Eine Handvoll harter Nüsse eines Walnussbaums, immer noch in ihrer Schale." -#: lang/json/COMESTIBLE_from_json.py -msgid "rice milk" -msgid_plural "rice milk" -msgstr[0] "Reismilch" -msgstr[1] "Reismilch" +#: lang/json/GENERIC_from_json.py +msgid "steel grille" +msgid_plural "steel grilles" +msgstr[0] "Stahlgitter" +msgstr[1] "Stahlgitter" -#. ~ Description for {'str_sp': 'rice milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'steel grille'} +#: lang/json/GENERIC_from_json.py msgid "" -"Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " -"rapidly." +"This is a metal grille. It can be used as a framework for making a chemical" +" catalyst." msgstr "" +"Dies ist ein Metallgitter. Es kann als Rahmen für die Herstellung eines " +"chemischen Katalysators verwendet werden." -#: lang/json/COMESTIBLE_from_json.py -msgid "coconut water" -msgid_plural "coconut water" -msgstr[0] "Kokosnusswasser" -msgstr[1] "Kokosnusswasser" +#: lang/json/GENERIC_from_json.py +msgid "cobalt-60 pellet" +msgid_plural "cobalt-60 pellets" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str_sp': 'coconut water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'cobalt-60 pellet'} +#: lang/json/GENERIC_from_json.py msgid "" -"Coconut milk, with water added to make it go further. Tastes ok though. " -"Spoils rapidly." +"Radioactive material that used to be a part of some nuclear industry " +"equipment. You are yet to find some use for it." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "jarred coconut milk" -msgid_plural "jarred coconut milk" -msgstr[0] "durchgeschüttelte Kokosnussmilch" -msgstr[1] "durchgeschüttelte Kokosnussmilch" +#: lang/json/GENERIC_from_json.py +msgid "sandbag" +msgid_plural "sandbags" +msgstr[0] "Sandsack" +msgstr[1] "Sandsäcke" -#. ~ Description for {'str_sp': 'jarred coconut milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'sandbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"This deliciously rich coconut cream is a more concentrated, thicker version " -"of the coconut milk." +"This is a canvas sack filled with sand. It can be used to construct simple " +"barricades." msgstr "" -"Diese lecker reichhaltige Kokosnusscreme ist eine dichtere und dickere " -"Version der Kokosnussmilch." -#: lang/json/COMESTIBLE_from_json.py -msgid "rice flour" -msgid_plural "rice flour" -msgstr[0] "Reismehl" -msgstr[1] "Reismehl" - -#. ~ Description for {'str_sp': 'rice flour'} -#: lang/json/COMESTIBLE_from_json.py -msgid "This rice flour is useful for baking." -msgstr "Dieses Maismehl ist nützlich zum Backen." - -#: lang/json/COMESTIBLE_from_json.py -msgid "revival serum" -msgid_plural "revival serums" -msgstr[0] "" -msgstr[1] "" +#: lang/json/GENERIC_from_json.py +msgid "earthbag" +msgid_plural "earthbags" +msgstr[0] "Sack voll Erde" +msgstr[1] "Säcke voll Erde" -#. ~ Description for revival serum -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'earthbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"A potent drug, necessary when performing a revival operation on larger " -"animals (including humans). It induces a violent allergic reactions in " -"living organisms, so using it on yourself is a REALLY bad idea." +"This is a canvas sack filled with soil. It can be used to construct simple " +"barricades." msgstr "" -"Ein starkes Medikament, nötig, wenn eine Wiederbelebungsoperation an " -"größeren Tieren (einschließlich Menschen) vorgenommen wird. Es ruft " -"gewaltige allergische Reaktionen in lebenden Organismen hervor, also ist es " -"eine WIRKLICH schlechte Idee, es an dir selbst anzuwenden." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "2.5L canteen" msgid_plural "2.5L canteens" msgstr[0] "2,5-l-Feldflasche" msgstr[1] "2,5-l-Feldflaschen" #. ~ Description for {'str': '2.5L canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "" "Eine große Plastikfeldflasche, mit einer Kapazität von 2,5 Litern und einem " "Trageriemen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "30 gallon barrel" msgid_plural "30 gallon barrels" msgstr[0] "112,5-Liter-Fass" msgstr[1] "112,5-Liter-Fässer" #. ~ Description for {'str': '30 gallon barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "Eine riesiges Plastikfass mit einem wiederverschließbaren Deckel." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" msgid_plural "steel drums (100L)" msgstr[0] "Stahlfass (100 l)" @@ -47329,11 +49044,11 @@ msgstr[1] "Stahlfässer (100 l)" #. ~ Description for {'str': 'steel drum (100L)', 'str_pl': 'steel drums #. (100L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge steel barrel with a resealable lid." msgstr "Eine riesiges Stahlfass mit einem wiederverschließbaren Deckel." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" msgid_plural "steel drums (200L)" msgstr[0] "Stahlfass (200 l)" @@ -47341,150 +49056,150 @@ msgstr[1] "Stahlfässer (200 l)" #. ~ Description for {'str': 'steel drum (200L)', 'str_pl': 'steel drums #. (200L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "Ein gewaltiges Stahlfass mit einem wiederverschließbaren Deckel." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas sack" msgid_plural "canvas sacks" msgstr[0] "Leinensack" msgstr[1] "Leinensäcke" #. ~ Description for {'str': 'canvas sack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "" "Ein großer und stabiler Leinenbeutel. Riecht leicht nach Erde und harter " "Arbeit." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas bag" msgid_plural "canvas bags" msgstr[0] "Leinentasche" msgstr[1] "Leinentaschen" #. ~ Description for {'str': 'canvas bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "" "Eine kleine Tasche, die aus Leinen gemacht wurde. Sie scheint geeignet für " "die Lagerung von getrockneten Kräutern zu sein." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bag" msgid_plural "plastic bags" msgstr[0] "Plastiktüte" msgstr[1] "Plastiktüten" #. ~ Description for {'str': 'plastic bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "Eine kleine offene Plastiktüte. Praktisch Müll." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "zipper bag" msgid_plural "zipper bags" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'zipper bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_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 +#: lang/json/GENERIC_from_json.py msgid "body bag" msgid_plural "body bags" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'body bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large, human size, rectangular bag made of strong plastic, with a zipper " "in the middle. Used to hold a dead body." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "IV bag" msgid_plural "IV bags" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'IV bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass bottle" msgid_plural "glass bottles" msgstr[0] "Glasflasche" msgstr[1] "Glasflaschen" #. ~ Description for {'str': 'glass bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "" "Eine wiederverschließbare Glasflasche, welche 750 ml Flüssigkeit enthalten " "kann." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bottle" msgid_plural "plastic bottles" msgstr[0] "Plastikflasche" msgstr[1] "Plastikflaschen" #. ~ Description for {'str': 'plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "" "Eine wiederverschließbare Plastikflasche, welche 500 ml Flüssigkeit " "enthalten kann." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condiment bottle" msgid_plural "condiment bottles" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An inverted plastic bottle for condiments. Still sealed from factory, " "preserves content from rot until opened." msgstr "" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An inverted plastic bottle for condiments." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small plastic bottle" msgid_plural "small plastic bottles" msgstr[0] "kleine Plastikflasche" msgstr[1] "kleine Plastikflaschen" #. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "" "Eine wiederverschließbare Plastikflasche. Sie fasst 250 ml Flüssigkeit." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large plastic bottle" msgid_plural "large plastic bottles" msgstr[0] "große Plastikflasche" msgstr[1] "große Plastikflaschen" #. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." @@ -47492,14 +49207,14 @@ msgstr "" "Eine 2-Liter Plastikflasche, die viel Soda oder heutzutage reichlich " "abgekochtes Wasser enthalten kann." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay bowl" msgid_plural "clay bowls" msgstr[0] "Tonschale" msgstr[1] "Tonschalen" #. ~ Description for {'str': 'clay bowl'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A clay bowl with a waterproofed hide lid. Can be used as a container or as " "a tool. Holds 250 ml of liquid." @@ -47507,14 +49222,14 @@ msgstr "" "Eine Tonschale mit einem imprägnierten Tierhautdeckel. Kann als Behälter " "oder als Werkzeug benutzt werden. Hat ein Volumen von 250 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "pack" msgid_plural "packs" msgstr[0] "Schachtel" msgstr[1] "Schachteln" #. ~ Description for {'str': 'pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." @@ -47523,54 +49238,54 @@ msgstr "" "Herzkrankheit, Emphysem und kann zu Komplikationen in der Schwangerschaft " "führen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kleine Kartonschachtel" +msgstr[1] "kleine Kartonschachteln" #. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "" "Eine kleine Kartonschachtel. Nicht kleiner als 30 Zentimeter in der " "Ausdehnung." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" msgstr[0] "Kartonschachtel" msgstr[1] "Kartonschachteln" #. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "" -#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "große Kartonschachtel" +msgstr[1] "große Kartonschachteln" #. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A very large cardboard box, the sort children would have loved to hide in, " "when there were still children." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "bucket" msgid_plural "buckets" msgstr[0] "Eimer" msgstr[1] "Eimer" #. ~ Description for {'str': 'bucket'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " "legs, French fries, animal feed, farm use, tailgating, crafts, planting " @@ -47583,14 +49298,14 @@ msgstr "" "Früchtekörbe, Kräuter, einer einfachen Lagerung von Gegenständen oder als " "ein Eiseimer." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hydration pack" msgid_plural "hydration packs" msgstr[0] "Trinkrucksack" msgstr[1] "Trinkrucksäcke" #. ~ Description for {'str': 'hydration pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " @@ -47601,25 +49316,25 @@ msgstr "" "einem Schlauch abzusaugen, was es dem Träger ermöglicht, freihändig zu " "trinken." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum can" msgid_plural "aluminum cans" msgstr[0] "Aluminiumdose" msgstr[1] "Aluminiumdosen" #. ~ Description for {'str': 'aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An aluminum can, like what soda comes in." msgstr "Eine Aluminiumdose, wo Sachen wie Limo reinkommen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened aluminum can" msgid_plural "opened aluminum cans" msgstr[0] "geöffnete Aluminiumdose" msgstr[1] "geöffnete Aluminiumdosen" #. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." @@ -47627,99 +49342,99 @@ msgstr "" "Eine Aluminiumdose, wo Sachen wie Limo reinkommen. Diese hier ist geöffnet " "und kann nicht so einfach dicht verschlossen werden." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper carton" msgid_plural "paper cartons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pappkarton" +msgstr[1] "Pappkartons" #. ~ Description for {'str': 'paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " It has a threaded cap for easy resealing." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened paper carton" msgid_plural "opened paper cartons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "geöffneter Pappkarton" +msgstr[1] "geöffnete Pappkartons" #. ~ Description for {'str': 'opened paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " This one is open and its contents will spoil." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" msgstr[0] "vakuumverpackter Beutel" msgstr[1] "vakuumverpackte Beutel" #. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "This is a bag of vacuum-packed food." msgstr "Dies ist ein Beutel mit vakuumverpackten Lebensmitteln." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small tin can" msgid_plural "small tin cans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kleine Konservendose" +msgstr[1] "Kleine Konservendosen" #. ~ Description for {'str': 'small tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small tin can, like what tuna comes in." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small opened tin can" msgid_plural "small opened tin cans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kleine Konservendose (offen)" +msgstr[1] "Kleine Konservendosen (offen)" #. ~ Description for {'str': 'small opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small tin can, like what tuna comes in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium tin can" msgid_plural "medium tin cans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mittlere Konservendose" +msgstr[1] "Mittlere Konservendosen" #. ~ Description for {'str': 'medium tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A medium tin can, like what soup comes in." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium opened tin can" msgid_plural "medium opened tin cans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mittlere Konservendose (offen)" +msgstr[1] "Mittlere Konservendosen (offen)" #. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A medium tin can, like what soup comes in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic canteen" msgid_plural "plastic canteens" msgstr[0] "Plastikfeldflasche" msgstr[1] "Plastikfeldflaschen" #. ~ Description for {'str': 'plastic canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." @@ -47727,14 +49442,14 @@ msgstr "" "Eine Wasserfeldflasche, wie sie vom Militär verwendet wird, mit einer " "Kapazität von 1,5 Litern. Üblicherweise an der Hüfte getragen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "thermos" msgid_plural "thermoses" msgstr[0] "Thermosflasche" msgstr[1] "Thermosflaschen" #. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." @@ -47742,14 +49457,14 @@ msgstr "" "Eine Isolierflasche der Marke Thermos. Hält den Inhalt für eine gewisse Zeit" " heiß oder kalt. 1 Liter Fassungsvermögen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay canister" msgid_plural "clay canisters" msgstr[0] "Tonkanister" msgstr[1] "Tonkanister" #. ~ Description for {'str': 'clay canister'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." @@ -47757,25 +49472,25 @@ msgstr "" "Ein zerbrechliches Tongefäß. Es kann dazu benutzt werden, um grobe " "Einschlagsgranaten zu bauen, oder, um Flüssigkeiten zu lagern." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay hydria" msgid_plural "clay hydrias" msgstr[0] "Tonhydria" msgstr[1] "Tonhydrien" #. ~ Description for {'str': 'clay hydria'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "Ein 15-Liter-Tontopf mit drei Griffen zum Tragen und Gießen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large clay pot" msgid_plural "large clay pots" msgstr[0] "großer Tontopf" msgstr[1] "große Tontöpfe" #. ~ Description for {'str': 'large clay pot'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky and heavy clay pot with a waterproofed hide lid, meant to store " "water, but can carry other liquids in a pinch." @@ -47784,100 +49499,100 @@ msgstr "" "dafür gedacht, um Wasser zu lagern, aber zur Not kann er auch andere " "Flüssigkeiten lagern." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic cup" msgid_plural "plastic cups" msgstr[0] "Plastikbecher" msgstr[1] "Plastikbecher" #. ~ Description for {'str': 'plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup." msgstr "Ein kleiner vakuumgeformter Becher." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened plastic cup" msgid_plural "opened plastic cups" msgstr[0] "geöffneter Plastikbecher" msgstr[1] "geöffnete Plastikbecher" #. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "Ein kleiner vakuumgeformter Becher. Praktisch Müll." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass flask" msgid_plural "glass flasks" msgstr[0] "Glaskolben" msgstr[1] "Glaskolben" #. ~ Description for {'str': 'glass flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "" "Ein konischer Glaskolben mit einer Kapazität von 250 ml und einem " "Gummipfropfen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "test tube" msgid_plural "test tubes" msgstr[0] "Reagenzglas" msgstr[1] "Reagenzgläser" #. ~ Description for {'str': 'test tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "Ein zylindrisches 50-ml-Laborröhrchen mit Gummistopfen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "beaker" msgid_plural "beakers" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'beaker'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A tall, narrow glass cylinder with precise markings for measuring fluid " "quantities. An important science tool, it is also useful for anal retentive" " chefs." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "These plastic tubes, with little built in snap-caps, are a great way to " "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 "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hip flask" msgid_plural "hip flasks" msgstr[0] "Flachmann" msgstr[1] "Flachmänner" #. ~ Description for {'str': 'hip flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." @@ -47885,27 +49600,27 @@ msgstr "" "Ein 250-ml-Metallfläschchen mit einem drehbarem Schraubdeckel, " "gewöhnlicherweise benutzt, um Alkohol diskret zu transportieren." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" msgstr[0] "3-l-Glasgefäß" msgstr[1] "3-l-Glasgefäße" #. ~ Description for {'str': '3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Ein Drei-Liter-Glasgefäß mit einer Metallschraubverschlusskappe. Es wird für" " die Konservierung verwendet." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed 3L glass jar" msgid_plural "sealed 3L glass jars" msgstr[0] "versiegeltes 3-l-Glasgefäß" msgstr[1] "versiegelte 3-l-Glasgefäße" #. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." @@ -47914,27 +49629,27 @@ msgstr "" " die Konservierung verwendet. Fest verschlossen, um die Inhalt vor dem " "Verderben zu schützen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass jar" msgid_plural "glass jars" msgstr[0] "Glasgefäß" msgstr[1] "Glasgefäße" #. ~ Description for {'str': 'glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Ein 0,5-Liter-Glasgefäß mit einer Metallschraubverschlusskappe. Es wird für " "die Konservierung verwendet." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed glass jar" msgid_plural "sealed glass jars" msgstr[0] "versiegeltes Glasgefäß" msgstr[1] "versiegelte Glasgefäße" #. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half-liter glass jar with a metal screw top lid, used for canning. Sealed" " tightly and will preserve the contents from rot (assuming it was sterile " @@ -47944,14 +49659,14 @@ msgstr "" "die Konservierung verwendet. Fest verschlossen, und es wird den Inhalt vor " "dem Verderben schützen (angenommen, er war steril vor dem Versiegeln)." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic jerrycan" msgid_plural "plastic jerrycans" msgstr[0] "Plastikkanister" msgstr[1] "Plastikkanister" #. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." @@ -47959,14 +49674,14 @@ msgstr "" "Ein sperriger Plastikkanister, gedacht, um Treifstoff zu enthalten, aber er " "kann im Notfall auch andere Flüssigkeiten tragen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel jerrycan" msgid_plural "steel jerrycans" msgstr[0] "Stahlkanne" msgstr[1] "Stahlkannen" #. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." @@ -47974,20 +49689,20 @@ msgstr "" "Eine Stahlkanne, die für das Tragen von Treibstoff gedacht war, aber im " "Notfall auch andere Flüssigkeiten tragen kann." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay jug" msgid_plural "clay jugs" msgstr[0] "Tonkrug" msgstr[1] "Tonkrüge" #. ~ Description for {'str': 'clay jug'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "" "Ein Tonbehälter mit einem Deckel. Er kann dazu benutzt werden, Flüssigkeiten" " zu lagern und auszugießen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "gallon jug" msgid_plural "gallon jugs" msgstr[0] "Plastikkrug" @@ -47995,20 +49710,20 @@ msgstr[1] "Plastikkrüge" #. ~ Description for {'str': 'gallon jug'} #. ~ Description for TEST gallon jug -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "" "Eine Standardplastikkanne, die für Milch und Haushaltsreinigungschemikalien " "verwendet wird." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum keg" msgid_plural "aluminum kegs" msgstr[0] "Aluminiumfass" msgstr[1] "Aluminiumfässer" #. ~ Description for {'str': 'aluminum keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." @@ -48016,14 +49731,14 @@ msgstr "" "Ein wiederverwendbares leichtes Aluminiumfass, welches für den Biertransport" " verwendet wird. Es hat eine Kapazität von 50 Litern." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel keg" msgid_plural "steel kegs" msgstr[0] "Stahlfass" msgstr[1] "Stahlfässer" #. ~ Description for {'str': 'steel keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." @@ -48031,14 +49746,14 @@ msgstr "" "Ein wiederverwendbares schweres Stahlfass, welches für den Biertransport " "verwendet wird. Es hat eine Kapazität von 50 Litern." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large sealed stomach" msgid_plural "large sealed stomachs" msgstr[0] "großer versiegelter Magen" msgstr[1] "große versiegelte Mägen" #. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." @@ -48046,7 +49761,7 @@ msgstr "" "Der Magen einer großen Kreatur, gereinigt und versiegelt mit Fäden. Er kann " "3 Liter Wasser enthalten." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (60L)" msgid_plural "metal tanks (60L)" msgstr[0] "Metalltank (60 l)" @@ -48054,33 +49769,33 @@ msgstr[1] "Metalltanks (60 l)" #. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks #. (60L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "" "Ein großer Metalltank für das Aufbewahren von Flüssigkeiten. Nützlich für " "die Fertigung." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (2L)" msgid_plural "metal tanks (2L)" msgstr[0] "Metalltank (2 l)" msgstr[1] "Metalltanks (2 l)" #. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "" "Ein kleiner Metalltank für das Aufbewahren von Gasen oder Flüssigkeiten. " "Nützlich für die Fertigung." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" msgstr[0] "Holzfeldflasche" msgstr[1] "Holzfeldflaschen" #. ~ Description for {'str': 'wooden canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A water canteen made from wood, secured by metal bands and sealed with wax " "or pitch. Holds 1.5 liters and has a simple carry strap." @@ -48089,14 +49804,14 @@ msgstr "" "und mit Wachs oder Harz versiegelt wurde. Fasst 1,5 Liter und hat einen " "einfachen Trageriemen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed stomach" msgid_plural "sealed stomachs" msgstr[0] "versiegelter Magen" msgstr[1] "versiegelte Mägen" #. ~ Description for {'str': 'sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." @@ -48104,7 +49819,7 @@ msgstr "" "Der Magen einer Kreatur, gereinigt und versiegelt mit einem Faden. Er kann " "1,5 Liter Wasser enthalten." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small waterskin" msgid_plural "small waterskins" msgstr[0] "kleiner Wasserbeutel" @@ -48112,7 +49827,7 @@ msgstr[1] "kleine Wasserbeutel" #. ~ Description for {'str': 'small waterskin'} #. ~ Description for TEST small waterskin -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." @@ -48120,28 +49835,28 @@ msgstr "" "Eine kleiner wasserdichte Ledertasche, die 1,5 Liter Wasser fassen kann, mit" " einem Trageriemen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "waterskin" msgid_plural "waterskins" msgstr[0] "Wasserbeutel" msgstr[1] "Wasserbeutel" #. ~ Description for {'str': 'waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "" "Eine wasserdichte Ledertasche, die 3 Liter Wasser fassen kann, mit einem " "Trageriemen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large waterskin" msgid_plural "large waterskins" msgstr[0] "großer Wasserbeutel" msgstr[1] "große Wasserbeutel" #. ~ Description for {'str': 'large waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." @@ -48149,14 +49864,14 @@ msgstr "" "Eine große wasserdichte Ledertasche, die 5 Liter Wasser fassen kann, mit " "einem Trageriemen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden barrel" msgid_plural "wooden barrels" msgstr[0] "Holzfass" msgstr[1] "Holzfässer" #. ~ Description for {'str': 'wooden barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "Traditionally made of white oak; these vessels are known for delivering " "delicious whiskey to the future. It has a capacity of 100 liters." @@ -48165,93 +49880,106 @@ msgstr "" "bekannt dafür, leckeren Whisky für die Zukunft zur Verfügung zu stellen. Er " "hat eine Kapazität von 100 Litern." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper wrapper" msgid_plural "paper wrappers" msgstr[0] "Einwickelpapier" msgstr[1] "Einwickelpapiere" #. ~ Description for {'str': 'paper wrapper'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." msgstr "Nur ein Stück Fleischpapier. Gut, um Feuer zu entfachen." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "Umschlag" +msgstr[1] "Umschläge" + +#. ~ Description for {'str': 'wrapper'} +#: lang/json/GENERIC_from_json.py +msgid "" +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." +msgstr "" + +#: lang/json/GENERIC_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" msgstr[0] "Styroporbecher" msgstr[1] "Styroporbecher" #. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "Ein billiger Einwegbecher mit Plastikdeckel und Strohhalm." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic tub" msgid_plural "plastic tubs" msgstr[0] "Plastikwanne" msgstr[1] "Plastikwannen" #. ~ Description for {'str': 'plastic tub'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "" "Ein großer, quadratischer Kunststoffeimer, der normalerweise zum Tragen von " "Eis verwendet wird." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'condom'} -#: lang/json/CONTAINER_from_json.py +#: 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/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "balloon" msgid_plural "balloons" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'balloon'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A child's balloon. This could be used as a makeshift water container." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large tin can" msgid_plural "large tin cans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Große Konservendose" +msgstr[1] "Große Konservendosen" #. ~ Description for {'str': 'large tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. Holds a substantial amount of " "food." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large opened tin can" msgid_plural "large opened tin cans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Große Konservendose (offen)" +msgstr[1] "Große Konservendosen (offen)" #. ~ Description for {'str': 'large opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "survival kit box" msgid_plural "survival kit boxes" msgstr[0] "" @@ -48259,810 +49987,22 @@ msgstr[1] "" #. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum box that used to contain a small survival kit. Can hold 1 liter" " of liquid." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "Plastikschüssel" -msgstr[1] "Plastikschüsseln" - -#. ~ Description for {'str': '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 "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "Stahlflasche" -msgstr[1] "Stahlflaschen" - -#. ~ Description for {'str': 'steel bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "" -"Eine Wasserflasche aus rostfreiem Stahl, kann 750 ml Flüssigkeit enthalten." - -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "faltbare Plastikflasche" -msgstr[1] "faltbare Plastikflaschen" - -#. ~ Description for {'str': 'foldable plastic bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Eine unstarre wiederverschließbare Plastikflasche zum einfachen Lagern, " -"fasst 500 ml Flüssigkeit." - -#: lang/json/CONTAINER_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" -msgstr[0] "Blutentnahmesatz" -msgstr[1] "Blutentnahmesätze" - -#. ~ Description for {'str': 'blood draw kit'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." -msgstr "" -"Dies ist ein Werkzeugsatz, um Blut zu entnehmen, inklusive eines " -"Reagenzglases, das die Probe beeinhalten kann. Benutze dieses Werkzeug, um " -"Blut zu entnehmen, entweder von dir oder von einer Leiche, auf der du " -"stehst." - -#: lang/json/CONTAINER_from_json.py -msgid "small metal tank" -msgid_plural "small metal tanks" -msgstr[0] "kleiner Metalltank" -msgstr[1] "kleine Metalltanks" - -#. ~ Description for small metal tank -#: lang/json/CONTAINER_from_json.py -msgid "A small metal tank for holding gas or liquids. Useful for crafting." -msgstr "" -"Ein kleiner Metalltank für das Aufbewahren von Gasen oder Flüssigkeiten. " -"Nützlich für die Fertigung." - -#: lang/json/CONTAINER_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" -msgstr[0] "Gefahrenstofffass" -msgstr[1] "Gefahrenstofffässer" - -#. ~ Description for {'str': 'hazardous waste drum'} -#: lang/json/CONTAINER_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." -msgstr "Ein gelbes Fass, vorgesehen für die Aufbewahrung von Gefahrenstoffen." - -#: lang/json/CONTAINER_from_json.py -msgid "garden pot" -msgid_plural "garden pots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for garden pot -#: lang/json/CONTAINER_from_json.py -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 "" - -#: lang/json/CONTAINER_from_json.py -msgid "endless flask" -msgid_plural "endless flasks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "The flask isn't done refilling yet." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "cauldron of purification" -msgid_plural "cauldrons of purification" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons -#. of purification'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This cauldron made of demon spider chitin seems to absorb the light. It " -"will hold 16 liters of material and will absorb poisons from it. It may " -"have other properties that require discovery." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "aluminum foil wrap" -msgid_plural "aluminum foil wraps" -msgstr[0] "Alufolie" -msgstr[1] "Alufolien" - -#. ~ Description for aluminum foil wrap -#: lang/json/CONTAINER_from_json.py -msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." -msgstr "" -"Ein halb zerknitterter Bogen aus Aluminiumfolie, benutzt zum Kochen und " -"Backen." - -#: lang/json/CONTAINER_from_json.py -msgid "TEST gallon jug" -msgid_plural "TEST gallon jugs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST small waterskin" -msgid_plural "TEST small waterskins" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous capsule" -msgid_plural "gelatinous capsules" -msgstr[0] "gelatinöse Kapsel" -msgstr[1] "gelatinöse Kapseln" - -#. ~ Description for {'str': 'gelatinous capsule'} -#. ~ Description for {'str': 'gray cocoon'} -#. ~ Description for {'str': 'oozing pod'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"While the blob is very eager to be fed, it's not as enthusiastic about " -"giving up liquids. A few alterations are necessary." -msgstr "" -"Obwohl der Blob sehr gewillt ist, gefüttert zu werden, ist er nicht so " -"begeistert davon, Flüssigeit abzugeben. Ein paar Veränderungen sind " -"notwendig." - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous tank" -msgid_plural "gelatinous tanks" -msgstr[0] "gelatinöser Tank" -msgstr[1] "gelatinöse Tanks" - -#: lang/json/CONTAINER_from_json.py -msgid "gray cocoon" -msgid_plural "gray cocoons" -msgstr[0] "grauer Kokon" -msgstr[1] "graue Kokons" - -#: lang/json/CONTAINER_from_json.py -msgid "gray tank" -msgid_plural "gray tanks" -msgstr[0] "grauer Tank" -msgstr[1] "graue Tanks" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing pod" -msgid_plural "oozing pods" -msgstr[0] "triefende Kapsel" -msgstr[1] "triefende Kapseln" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing tank" -msgid_plural "oozing tanks" -msgstr[0] "triefender Tank" -msgstr[1] "triefende Tanks" - -#: lang/json/ENGINE_from_json.py -msgid "internal combustion engine" -msgid_plural "internal combustion engines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ENGINE_from_json.py -msgid "base diesel engine" -msgid_plural "base diesel engines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ENGINE_from_json.py -msgid "base gasoline engine" -msgid_plural "base gasoline engines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ENGINE_from_json.py -msgid "base steam engine" -msgid_plural "base steam engines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ENGINE_from_json.py -msgid "1-cylinder engine" -msgid_plural "1-cylinder engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A single-cylinder 4-stroke combustion engine." -msgstr "Ein Einzylinder-Viertaktverbrennungsmotor." - -#: lang/json/ENGINE_from_json.py -msgid "large 1-cylinder engine" -msgid_plural "large 1-cylinder engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A powerful high-compression single-cylinder 4-stroke combustion engine." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "small 1-cylinder engine" -msgid_plural "small 1-cylinder engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "Ein kleiner einzylindriger Zweitaktverbrennungsmotor." - -#: lang/json/ENGINE_from_json.py -msgid "Inline-4 engine" -msgid_plural "Inline-4 engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Inline-4 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "Ein kleiner, aber starker Vierzylinder-Verbrennungsmotor." - -#: lang/json/ENGINE_from_json.py -msgid "I6 diesel engine" -msgid_plural "I6 diesel engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'I6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful straight-6 diesel engine." -msgstr "Ein starker Sechszylinder-Diesel-Reihenmotor." - -#: lang/json/ENGINE_from_json.py -msgid "V-twin engine" -msgid_plural "V-twin engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'V-twin engine'} -#: lang/json/ENGINE_from_json.py -msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "Ein Zweizylinder-Viertaktverbrennungsmotor." - -#: lang/json/ENGINE_from_json.py -msgid "V6 engine" -msgid_plural "V6 engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'V6 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder combustion engine." -msgstr "Ein starker Sechszylinder-Verbrennungsmotor." - -#: lang/json/ENGINE_from_json.py -msgid "V6 diesel engine" -msgid_plural "V6 diesel engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'V6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder diesel engine." -msgstr "Ein starker Sechszylinderdieselmotor." - -#: lang/json/ENGINE_from_json.py -msgid "V8 engine" -msgid_plural "V8 engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'V8 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "Ein großer und sehr starker Achtzylinder-Verbrennungsmotor." - -#: lang/json/ENGINE_from_json.py -msgid "V8 diesel engine" -msgid_plural "V8 diesel engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'V8 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 8-cylinder diesel engine." -msgstr "Ein starker Achtzylinderdieselmotor." - -#: lang/json/ENGINE_from_json.py -msgid "V12 engine" -msgid_plural "V12 engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'V12 engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into high end " -"sports cars." -msgstr "" -"Ein wuchtiger und extrem schwerer Zwölfzylindermotor; üblicherweise werden " -"diese in hochwertigen Sportwagen eingebaut." - -#: lang/json/ENGINE_from_json.py -msgid "V12 diesel engine" -msgid_plural "V12 diesel engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'V12 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into heavy " -"trucks." -msgstr "" -"Ein wuchtiger und extrem schwerer Zwölfzylindermotor; üblicherweise werden " -"diese in schweren Lastern eingebaut." - -#: lang/json/ENGINE_from_json.py -msgid "makeshift steam engine" -msgid_plural "makeshift steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'makeshift steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small, primitive, steam engine. An integrated boiler burns coal to heat " -"water into steam, driving a reciprocating shaft. A condenser recaptures the" -" water, making this a closed cycle system." -msgstr "" -"Eine kleine, primitive Dampfmaschine. Ein integrierter Kessel verbrennt " -"Kohle, um Wasser zu Dampf zu erhitzen und eine sich hin- und herbewegende " -"Welle anzutreiben. Ein Kondensator fängt den Wasserdampf wieder auf, wodurch" -" ein geschlossener Wasser-Kreislauf entsteht." - -#: lang/json/ENGINE_from_json.py -msgid "small steam engine" -msgid_plural "small steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condenser recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Eine kleine Dampfmaschine. Ein integrierter Kessel verbrennt Kohle, um " -"Wasser zu Dampf zu erhitzen und eine sich hin- und herbewegende Welle " -"anzutreiben. Ein Kondensator fängt den Wasserdampf wieder auf, wodurch ein " -"geschlossener Wasser-Kreislauf entsteht." - -#: lang/json/ENGINE_from_json.py -msgid "medium steam engine" -msgid_plural "medium steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'medium steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium-sized steam engine. An integrated boiler burns coal to heat water " -"into steam, driving a reciprocating shaft. A condenser recaptures the " -"water, making this a closed cycle system." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "1350 hp gas turbine engine" -msgid_plural "1350 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '1350 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A gas turbine engine, usually used for military vehicles. Known for its " -"high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "1900 hp gas turbine engine" -msgid_plural "1900 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '1900 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large gas turbine engine, usually used for military helicopters. Known " -"for its high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "6000 hp gas turbine engine" -msgid_plural "6000 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '6000 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " -"high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "large steam engine" -msgid_plural "large steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Eine große Dampfmaschine. Ein integrierter Kessel verbrennt Kohle, um Wasser" -" zu Dampf zu erhitzen und eine sich hin- und herbewegende Welle anzutreiben." -" Ein Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener" -" Wasser-Kreislauf entsteht." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam engine" -msgid_plural "huge steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'huge steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Eine riesige Dampfmaschine. Ein integrierter Kessel verbrennt Kohle, um " -"Wasser zu Dampf zu erhitzen und eine sich hin- und herbewegende Welle " -"anzutreiben. Ein Kondensator fängt den Wasserdampf wieder auf, wodurch ein " -"geschlossener Wasser-Kreislauf entsteht." - -#: lang/json/ENGINE_from_json.py -msgid "small steam turbine" -msgid_plural "small steam turbines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Eine kleine Dampfturbine. Ein integrierter Kessel verbrennt Kohle, um Wasser" -" zu Dampf zu erhitzen und eine sich drehende Turbine anzutreiben. Ein " -"Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener " -"Wasser-Kreislauf entsteht." - -#: lang/json/ENGINE_from_json.py -msgid "medium steam turbine" -msgid_plural "medium steam turbines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'medium steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium sized steam turbine. An integrated boiler burns coal to heat water" -" into steam, driving a spinning turbine. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Eine mittelgroße Dampfturbine. Ein integrierter Kessel verbrennt Kohle, um " -"Wasser zu Dampf zu erhitzen und eine sich drehende Turbine anzutreiben. Ein " -"Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener " -"Wasser-Kreislauf entsteht." - -#: lang/json/ENGINE_from_json.py -msgid "large steam turbine" -msgid_plural "large steam turbines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Eine große Dampfturbine. Ein integrierter Kessel verbrennt Kohle, um Wasser " -"zu Dampf zu erhitzen und eine sich drehende Turbine anzutreiben. Ein " -"Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener " -"Wasser-Kreislauf entsteht." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam turbine" -msgid_plural "huge steam turbines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'huge steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Eine riesige Dampfturbine. Ein integrierter Kessel verbrennt Kohle, um " -"Wasser zu Dampf zu erhitzen und eine sich drehende Turbine anzutreiben. Ein " -"Kondensator fängt den Wasserdampf wieder auf, wodurch ein geschlossener " -"Wasser-Kreislauf entsteht." - -#: lang/json/GENERIC_from_json.py -msgid "fetid goop" -msgid_plural "fetid goops" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'fetid goop'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A foul smelling goop. It has a disgusting texture and a powerful smell that" -" overrides every other smell around it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "limestone shard" -msgid_plural "limestone shards" -msgstr[0] "Kalksteinbruchstück" -msgstr[1] "Kalksteinbruchstücke" - -#. ~ Description for {'str': 'limestone shard'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" -" alkaline properties may yet find some use." -msgstr "" -"Ein kleiner Kalksteinsplitter. Ziemlich dünn und nicht wirklich eine Waffe, " -"aber seine alkalischen Eigenschaften könnten sich als nützlich erweisen." - -#: lang/json/GENERIC_from_json.py -msgid "rock salt" -msgid_plural "rock salt" -msgstr[0] "Steinsalz" -msgstr[1] "Steinsalz" - -#. ~ Description for {'str_sp': 'rock salt'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of rock salt crystals. Could be refined into table salt." -msgstr "" -"Eine Handvoll Steinsalzkristalle. Könnte zu Kochsalz raffiniert werden." - -#: lang/json/GENERIC_from_json.py -msgid "rhodonite" -msgid_plural "rhodonite" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'rhodonite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of rhodonite. It has manganese dioxide covering and going through " -"it in veins, which can be obtained using a chisel." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "zincite" -msgid_plural "zincite" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'zincite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " -"reduction with a source of carbon." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "hickory root" -msgid_plural "hickory roots" -msgstr[0] "Hickorywurzel" -msgstr[1] "Hickorywurzeln" - -#. ~ Description for {'str': 'hickory root'} -#: lang/json/GENERIC_from_json.py -msgid "A root from a hickory tree. It has an earthy smell." -msgstr "Eine Wurzel eines Hickorybaums. Sie hat einen erdigen Geruch." - -#: lang/json/GENERIC_from_json.py -msgid "hickory nuts" -msgid_plural "hickory nuts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'hickory nuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hickory tree, still in their shell." -msgstr "" -"Eine Handvoll harter Nüsse von einem Hickory-Baum, noch in der Schale." - -#: lang/json/GENERIC_from_json.py -msgid "pecans" -msgid_plural "pecans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'pecans'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pecan tree, still in their shell." -msgstr "" -"Eine Handvoll harter Nüsse eines Pekannussbaums, immer noch in ihrer Schale." - -#: lang/json/GENERIC_from_json.py -msgid "pistachios" -msgid_plural "pistachios" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'pistachios'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pistachio tree, still in their shell." -msgstr "" -"Eine Handvoll harter Nussfrüchte eines Pistazienbaums, immer noch in ihrer " -"Schale." - -#: lang/json/GENERIC_from_json.py -msgid "almonds" -msgid_plural "almonds" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'almonds'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from an almond tree, still in their shell." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "peanuts" -msgid_plural "peanuts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'peanuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a peanut bush, still in their shell." -msgstr "" -"Eine Handvoll harter Früchte einer Erdnusspflanze, immer noch in ihrer " -"Schale." - -#: lang/json/GENERIC_from_json.py -msgid "hazelnuts" -msgid_plural "hazelnuts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'hazelnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hazelnut tree, still in their shell." -msgstr "" -"Eine Handvoll harter Nüsse eines Haselnussbaums, immer noch in ihrer Schale." - -#: lang/json/GENERIC_from_json.py -msgid "chestnuts" -msgid_plural "chestnuts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'chestnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a chestnut tree, still in their shell." -msgstr "" -"Eine Handvoll harter Nussfrüchte eines Kastanienbaums, immer noch in ihrer " -"Schale." - -#: lang/json/GENERIC_from_json.py -msgid "walnuts" -msgid_plural "walnuts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'walnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a walnut tree, still in their shell." -msgstr "" -"Eine Handvoll harter Nüsse eines Walnussbaums, immer noch in ihrer Schale." - -#: lang/json/GENERIC_from_json.py -msgid "steel grille" -msgid_plural "steel grilles" -msgstr[0] "Stahlgitter" -msgstr[1] "Stahlgitter" - -#. ~ Description for {'str': 'steel grille'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a metal grille. It can be used as a framework for making a chemical" -" catalyst." -msgstr "" -"Dies ist ein Metallgitter. Es kann als Rahmen für die Herstellung eines " -"chemischen Katalysators verwendet werden." - -#: lang/json/GENERIC_from_json.py -msgid "cobalt-60 pellet" -msgid_plural "cobalt-60 pellets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'cobalt-60 pellet'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Radioactive material that used to be a part of some nuclear industry " -"equipment. You are yet to find some use for it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "sandbag" -msgid_plural "sandbags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'sandbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with sand. It can be used to construct simple " -"barricades." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "earthbag" -msgid_plural "earthbags" +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'earthbag'} +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': +#. 'small cardboard boxes of tea bags'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with soil. It can be used to construct simple " -"barricades." +msgid "A very small cardboard box with tea brand written on it." msgstr "" #: lang/json/GENERIC_from_json.py @@ -49146,6 +50086,12 @@ msgstr "" "Ein Wahrsagegerät aus den 1950er Jahren. Die Art moralische Unterstützung, " "von der du nicht wusstest, dass du sie gebraucht hast." +#: lang/json/GENERIC_from_json.py +msgid "deck of cards" +msgid_plural "decks of cards" +msgstr[0] "Kartendeck" +msgstr[1] "Kartendecks" + #. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py msgid "A deck of 52 playing cards." @@ -49180,6 +50126,166 @@ msgid "" "like a cleaner, happier version of the person you know." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "chess set" +msgid_plural "chess sets" +msgstr[0] "Schachspiel" +msgstr[1] "Schachspiele" + +#. ~ Description for {'str': 'chess set'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden box containing all the equipment needed to play a game of chess." +msgstr "" +"Eine kleine Holzkiste mit allen notwendigen Dingen, um eine schöne Partie " +"Schach zu spielen." + +#: lang/json/GENERIC_from_json.py +msgid "checkers set" +msgid_plural "checkers sets" +msgstr[0] "Dame-Set" +msgstr[1] "Dame-Sets" + +#. ~ Description for {'str': 'checkers set'} +#: lang/json/GENERIC_from_json.py +msgid "A wooden box containing a set of round tokens used to play checkers." +msgstr "Eine Holzkiste mit runden Spielsteinen, um Dame zu spielen." + +#: lang/json/GENERIC_from_json.py +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" +msgstr[0] "Zauberkartendeck" +msgstr[1] "Zauberkartendecks" + +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of +#. Sorcery cards'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." +msgstr "" +"Eine Reihe von Karten, um das Spiel »Hexerei« zu spielen. Jede Karte trägt " +"ein vernügliches Bild eines anderen Monsters." + +#: lang/json/GENERIC_from_json.py +msgid "Picturesque" +msgid_plural "sets of Picturesque" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where one draws an image, and the others attempt to guess what it is." +msgstr "" +"Ein Spiel, bei dem ein Spiel ein Bild zeichnet und die Mitspieler versuchen " +"zu erraten, was es sein soll." + +#: lang/json/GENERIC_from_json.py +msgid "Capitalism" +msgid_plural "sets of Capitalism" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players traverse around the board buying property and swindling" +" their friends." +msgstr "" +"Ein Spiel, bei dem Spieler das Spielbrett überqueren, um Immobilien zu " +"kaufen und ihre Freunde zu beschwindeln." + +#: lang/json/GENERIC_from_json.py +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and +#. Bandits'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A roleplaying game set in the post-apocalypse, so you can pretend to survive" +" the apocalypse while surviving the apocalypse." +msgstr "" +"Ein postapokalyptisches Rollenspiel, bei dem du so tun kannst, als würdest " +"du die Apokalypse überleben, während du versuchst in ›der Apokalypse‹ zu " +"überleben." + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of fantasy creatures." +msgstr "" +"Ein Strategiespiel mit einer Reihe winziger Figuren aus der Welt der " +"Fantasiegeschöpfe." + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of +#. Battlehammer 20k'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." +msgstr "" +"Ein Strategiespiel mit kleinen Alien-Figuren und grotesken Weltraum-" +"Soldaten." + +#: lang/json/GENERIC_from_json.py +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of +#. Settlers of the Ranch'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game where players build settlements and trade for supplies." +msgstr "" +"Ein Strategiespiel, in dem Spieler Siedlungen bauen und Vorräte handeln." + +#: lang/json/GENERIC_from_json.py +msgid "Warships" +msgid_plural "sets of Warships" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players try to guess where the opponent placed their ships on " +"the board." +msgstr "" +"Ein Spiel, bei dem die Spieler versuchen zu erraten, wo der Gegner seine " +"Schiffe auf das Spielbrett plaziert hat." + +#: lang/json/GENERIC_from_json.py +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder +#. Mystery'} +#: lang/json/GENERIC_from_json.py +msgid "A game where players try to figure out who murdered the butler." +msgstr "" +"Ein Spiel, bei dem die Spieler herausfinden wollen, wer den Butler ermordet " +"hat." + #: lang/json/GENERIC_from_json.py msgid "animal" msgid_plural "none" @@ -49362,8 +50468,8 @@ msgstr "Ein kleiner Ballen aus feuerfesten Nomexstoff." #: lang/json/GENERIC_from_json.py msgid "superglue" msgid_plural "superglue" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Superkleber" +msgstr[1] "Superkleber" #. ~ Description for {'str_sp': 'superglue'} #: lang/json/GENERIC_from_json.py @@ -49697,8 +50803,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "steel mesh" msgid_plural "steel meshes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Stahlgitter" +msgstr[1] "Stahlgitter" #. ~ Description for {'str': 'steel mesh', 'str_pl': 'steel meshes'} #: lang/json/GENERIC_from_json.py @@ -49968,7 +51074,6 @@ msgstr[0] "kaputter Schauboter" msgstr[1] "kaputte Schauboter" #. ~ Description for {'str': 'broken eyebot'} -#. ~ Description for broken eyebot #: lang/json/GENERIC_from_json.py msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " @@ -50089,7 +51194,6 @@ msgstr[0] "kaputter Bergroboter" msgstr[1] "kaputte Bergroboter" #. ~ Description for {'str': 'broken miner bot'} -#. ~ Description for broken miner bot #: lang/json/GENERIC_from_json.py msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " @@ -50159,8 +51263,6 @@ msgstr[0] "kaputte Klingendrohne" msgstr[1] "kaputte Klingendrohnen" #. ~ Description for {'str': 'broken manhack'} -#. ~ Description for broken hack -#. ~ Description for broken manhack #: lang/json/GENERIC_from_json.py msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " @@ -50177,7 +51279,6 @@ msgstr[0] "kaputte Granatendrohne" msgstr[1] "kaputte Granatendrohnen" #. ~ Description for {'str': 'broken grenade hack'} -#. ~ Description for broken grenade hack #: lang/json/GENERIC_from_json.py msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " @@ -50194,7 +51295,6 @@ msgstr[0] "kaputte Atombömbchendrohne" msgstr[1] "kaputte Atombömbchendrohnen" #. ~ Description for {'str': 'broken mininuke hack'} -#. ~ Description for broken mininuke hack #: lang/json/GENERIC_from_json.py msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " @@ -50210,7 +51310,6 @@ msgstr[0] "kaputte Tränengasdrohne" msgstr[1] "kaputte Tränengasdrohnen" #. ~ Description for {'str': 'broken tear gas hack'} -#. ~ Description for broken tear gas hack #: lang/json/GENERIC_from_json.py msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " @@ -50227,7 +51326,6 @@ msgstr[0] "kaputte EMP-Drohne" msgstr[1] "kaputte EMP-Drohnen" #. ~ Description for {'str': 'broken EMP hack'} -#. ~ Description for broken EMP hack #: lang/json/GENERIC_from_json.py msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " @@ -50244,7 +51342,6 @@ msgstr[0] "kaputte Blendgranatendrohne" msgstr[1] "kaputte Blendgranatendrohnen" #. ~ Description for {'str': 'broken flashbang hack'} -#. ~ Description for broken flashbang hack #: lang/json/GENERIC_from_json.py msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " @@ -50261,7 +51358,6 @@ msgstr[0] "kaputte C-4-Drohne" msgstr[1] "kaputte C-4-Drohnen" #. ~ Description for {'str': 'broken C-4 hack'} -#. ~ Description for broken C-4 hack #: lang/json/GENERIC_from_json.py msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " @@ -50271,6 +51367,19 @@ msgstr "" "sie still auf dem festen Boden liegt. Sie könnte für Bauteile demontiert " "werden." +#: lang/json/GENERIC_from_json.py +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'broken loudspeaker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "processor board" msgid_plural "processor boards" @@ -50606,8 +51715,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "pipe cleaner" msgid_plural "pipe cleaners" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Rohrreiniger" +msgstr[1] "Rohrreiniger" #. ~ Description for {'str': 'pipe cleaner'} #: lang/json/GENERIC_from_json.py @@ -50852,8 +51961,8 @@ msgstr "Etwas Mörtel, bereit, um in einem Bauprojekt verwendet zu werden." #: lang/json/GENERIC_from_json.py msgid "soft adobe brick" msgid_plural "soft adobe bricks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "weicher Lehmziegel" +msgstr[1] "weiche Lehmziegel" #. ~ Use action msg for {'str': 'soft adobe brick'}. #: lang/json/GENERIC_from_json.py @@ -50875,8 +51984,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "adobe brick" msgid_plural "adobe bricks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Lehmziegel" +msgstr[1] "Lehmziegel" #. ~ Description for {'str': 'adobe brick'} #: lang/json/GENERIC_from_json.py @@ -50888,8 +51997,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "adobe mortar" msgid_plural "adobe mortar" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "weicher Lehm-Mörtel" +msgstr[1] "weicher Lehm-Mörtel" #. ~ Description for {'str_sp': 'adobe mortar'} #: lang/json/GENERIC_from_json.py @@ -51451,22 +52560,6 @@ msgstr "" "Ein mittelgroßer Bogen aus Neopren. Kann benutzt werden, um leichte und " "dehnbare Kleidung zu fertigen." -#: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" -msgstr[0] "TX-5LR-Laserkanone" -msgstr[1] "TX-5LR-Laserkanonen" - -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." -msgstr "" -"Eine Laserkanone, die von dem Lauf eines TX-5LR-Cerberus-Lasergeschützturms " -"entfernt wurde. Sie ist für sich alleine und ohne die notwendigen Teile als " -"Waffe unbrauchbar." - #: lang/json/GENERIC_from_json.py msgid "light bulb" msgid_plural "light bulbs" @@ -51593,8 +52686,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "small lock and key" msgid_plural "small locks and keys" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kleines Schloss und Schlüssel" +msgstr[1] "kleine Schlösser und Schlüssel" #. ~ Description for {'str': 'small lock and key', 'str_pl': 'small locks and #. keys'} @@ -51696,12 +52789,6 @@ msgid_plural "broken M2 autonomous CROWS II turrets" msgstr[0] "" msgstr[1] "" -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "kaputter Laser-Geschützturm" -msgstr[1] "kaputte Laser-Geschütztürme" - #: lang/json/GENERIC_from_json.py msgid "broken secubot" msgid_plural "broken secubots" @@ -52012,12 +53099,6 @@ msgstr "" "Eine Tulpe Knospe. Enthält einige Substanzen, die üblicherweise von einer " "Tulpenblume produziert werden." -#: lang/json/GENERIC_from_json.py -msgid "spurge" -msgid_plural "spurges" -msgstr[0] "Wolfsmilch" -msgstr[1] "Wolfsmilch" - #. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." @@ -52248,7 +53329,6 @@ msgstr[0] "kaputter Triboter" msgstr[1] "kaputte Triboter" #. ~ Description for {'str': 'broken tribot'} -#. ~ Description for broken tribot #: lang/json/GENERIC_from_json.py msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" @@ -52374,6 +53454,28 @@ msgstr "" " ziemlich zerbrechlich aus; es sieht so aus, als könnte sie auch keine " "Panzerungsschicht vertragen." +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "kaputter Laser-Geschützturm" +msgstr[1] "kaputte Laser-Geschütztürme" + +#: lang/json/GENERIC_from_json.py +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" +msgstr[0] "TX-5LR-Laserkanone" +msgstr[1] "TX-5LR-Laserkanonen" + +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." +msgstr "" +"Eine Laserkanone, die von dem Lauf eines TX-5LR-Cerberus-Lasergeschützturms " +"entfernt wurde. Sie ist für sich alleine und ohne die notwendigen Teile als " +"Waffe unbrauchbar." + #: lang/json/GENERIC_from_json.py msgid "module template" msgid_plural "module templates" @@ -52740,6 +53842,12 @@ msgid "" "to salvage and reuse these components without them." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "martial art manual" +msgid_plural "martial art manuals" +msgstr[0] "" +msgstr[1] "" + #: lang/json/GENERIC_from_json.py msgid "abstract map" msgid_plural "abstract maps" @@ -52787,6 +53895,10 @@ msgid "" "down the locations of nearby supply sources including gun stores and gas " "stations. Using it will add points of interest to your map." msgstr "" +"Dies ist eine handgemalte Karte der näheren Umgebung. Wer auch immer sie " +"erstellt hat, hat auf sie die Positionen naheliegener Vorratsquellen " +"inklusive Waffengeschäfte und Tankstellen markiert. Benutze sie, um deiner " +"Karte wichtige Punkte hinzuzufügen." #: lang/json/GENERIC_from_json.py msgid "road map" @@ -53240,12 +54352,6 @@ msgid "" "without shield." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" -msgstr[0] "" -msgstr[1] "" - #: lang/json/GENERIC_from_json.py msgid "juvenile sourdough starter" msgid_plural "juvenile sourdough starters" @@ -53335,6 +54441,19 @@ msgstr "" "Ein Knochen von einem menschlichem Wesen. Könnte zur Herstellung einiger " "Gegenstände benutzt werden, falls du dich morbid genug fühlst." +#: lang/json/GENERIC_from_json.py +msgid "demihuman bone" +msgid_plural "demihuman bones" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'demihuman bone'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "first aid kit" msgid_plural "first aid kits" @@ -53419,14 +54538,11 @@ msgstr[1] "EPas - Chili mit Bohnen" #. Beans'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." msgstr "" -"Eine »Einmannpackung« mit einer Chili-Bohnen-Speise und allem, was ein " -"hungriger Soldat so braucht. Der Inhalt ist teilweise verderblich und wird " -"nach dem Entsiegeln sukzessive alt werden und schließlich verderben. " -"Aktiviere oder zerlege die Packung, um an ihren Inhalt zu gelangen." #: lang/json/GENERIC_from_json.py msgid "MRE - BBQ Beef" @@ -53636,6 +54752,37 @@ msgstr "" "verderben. Aktiviere oder zerlege die Packung, um an ihren Inhalt zu " "gelangen." +#: lang/json/GENERIC_from_json.py +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - +#. Spinach Fettuccine'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything" +" a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - +#. Ratatouille'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" msgid_plural "MREs - Cheese Tortellini" @@ -53939,7 +55086,7 @@ msgstr "" #. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py msgid "A dead human body." -msgstr "" +msgstr "Ein toter Körper eines Menschen." #. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py @@ -55145,6 +56292,17 @@ msgid "" "looks almost like glass." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "Plastikschüssel" +msgstr[1] "Plastikschüsseln" + +#. ~ Description for {'str': 'plastic bowl'} +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "kiddie bowl" msgid_plural "kiddie bowls" @@ -55725,8 +56883,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "kettle" msgid_plural "kettles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kessel" +msgstr[1] "Kessel" #. ~ Description for {'str': 'kettle'} #: lang/json/GENERIC_from_json.py @@ -55879,6 +57037,19 @@ msgid "" "placed on the ground, this can support one guitar in an upright position." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "plectrum" +msgid_plural "plectra" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "mixer" msgid_plural "mixers" @@ -56049,6 +57220,8 @@ msgid "" "A 6-inch (or about 15 cm) long piece of natural cordage. Useful for some " "purposes, but not as strong or flexible as proper string." msgstr "" +"Ein 15 cm langes Stück, gewoben aus natürlichem Fasertauwerk. Für ein paar " +"Zwecke nützlich, aber nicht so reißfest oder flexibel wie richtiges Seil." #: lang/json/GENERIC_from_json.py msgid "long cordage piece" @@ -56062,6 +57235,8 @@ msgid "" "A 3-foot (or about 90 cm) long piece of natural cordage. Useful for some " "purposes, but not as strong or flexible as proper string." msgstr "" +"Ein 90 cm langes Stück, gewoben aus natürlichem Fasertauwerk. Für ein paar " +"Zwecke nützlich, aber nicht so reißfest oder flexibel wie richtiges Seil." #: lang/json/GENERIC_from_json.py msgid "short string" @@ -56139,8 +57314,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "short cordage rope" msgid_plural "short cordage ropes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kurzes selbstgeflochtenes Seil" +msgstr[1] "kurze selbstgeflochtene Seile" #. ~ Description for {'str': 'short cordage rope'} #: lang/json/GENERIC_from_json.py @@ -56149,12 +57324,15 @@ msgid "" "cordage. Useful for some purposes, but not as strong or flexible as proper " "rope." msgstr "" +"Ein 3m langes Stück grobes Seil, gewoben aus natürlichem Fasertauwerk. Für " +"ein paar Zwecke nützlich, aber nicht so reißfest oder flexibel wie richtiges" +" Seil." #: lang/json/GENERIC_from_json.py msgid "long cordage rope" msgid_plural "long cordage ropes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "langes selbstgeflochtenes Seil" +msgstr[1] "lange selbstgeflochtene Seile" #. ~ Description for {'str': 'long cordage rope'} #: lang/json/GENERIC_from_json.py @@ -56163,6 +57341,9 @@ msgid "" "strong enough to hold up to falls, but still useful for some things, such as" " suspending large corpses for butchering." msgstr "" +"Ein 9m langes grobes Seil, gewoben aus natürlichem Fasertauwerk. Nicht " +"reißfest genug, um dich vor Stürzen zu schützen, aber immer noch für einige " +"Dinge zu gebrauchen, z.B. große Leichen zum schlachten hochzuziehen." #: lang/json/GENERIC_from_json.py msgid "badminton shuttlecock" @@ -56658,8 +57839,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "short sledge hammer" msgid_plural "short sledge hammers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kurzer Vorschlaghammer" +msgstr[1] "Kurze Vorschlaghämmer" #. ~ Description for {'str': 'short sledge hammer'} #: lang/json/GENERIC_from_json.py @@ -56667,6 +57848,8 @@ msgid "" "A shorter sledge hammer, still as weighty, however, due to the same steel " "head. Worse as a melee weapon but is a more portable tool." msgstr "" +"Ein kürzerer Vorschlaghammer, immernoch schwer durch den gleichen Stahlkopf." +" Schlecht als Nahkampfwaffe, doch ein tragbareres Werkzeug." #: lang/json/GENERIC_from_json.py msgid "engineer's hammer" @@ -57191,6 +58374,7 @@ msgstr[0] "spitzer Stock" msgstr[1] "spitze Stöcke" #. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py msgid "A simple wood pole with one end sharpened." msgstr "Ein einfacher Holzstock, vom dem sein Ende geschärft wurde." @@ -57375,6 +58559,12 @@ msgstr "" "Dieser stabile Stahlschafft mit Schwertklinge am Ende ist gut sowohl zum " "Schlitzen und Stechen." +#: lang/json/GENERIC_from_json.py +msgid "wooden javelin" +msgid_plural "wooden javelins" +msgstr[0] "hölzerner Wurfspeer" +msgstr[1] "hölzerne Wurfspeere" + #. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -57384,6 +58574,12 @@ msgstr "" "Ein feuergehärteter Holzspeer, dessen Spitze geschärft wurde. Der Griff " "wurde ebenso geschnitzt, für einen besseren Halt." +#: lang/json/GENERIC_from_json.py +msgid "iron javelin" +msgid_plural "iron javelins" +msgstr[0] "Eisenwurfspeer" +msgstr[1] "Eisenwurfspeere" + #. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -58528,8 +59724,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "splintered wood" msgid_plural "splintered wood" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zersplittertes Holz" +msgstr[1] "zersplitterte Hölzer" #. ~ Description for {'str_sp': 'splintered wood'} #: lang/json/GENERIC_from_json.py @@ -58538,30 +59734,32 @@ msgstr "" "Ein zersplittertes Stück Holz, könnte als Spieß dienen oder zum Anzünden." #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" -msgstr[0] "schwerer Stock" -msgstr[1] "schwere Stöcke" +msgid "stout branch" +msgid_plural "stout branches" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." -msgstr "Ein robuster, schwerer Stock. Er ist eine annehmbare Nahkampfwaffe. " +msgid "" +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" -msgstr[0] "langer Stock" -msgstr[1] "lange Stöcke" +msgid "long stout branch" +msgid_plural "long stout branches" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout +#. branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." msgstr "" -"Ein langer Stock. Ist eine annehmbare Nahkampfwaffe und kann zu schweren " -"Stöcken für die Fertigung zerstückelt werden." #: lang/json/GENERIC_from_json.py msgid "long pole" @@ -58583,7 +59781,6 @@ msgstr[0] "Brett" msgstr[1] "Bretter" #. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" @@ -58608,8 +59805,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "wooden panel" msgid_plural "wooden panels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Holzplatte" +msgstr[1] "Holzplatten" #. ~ Description for {'str': 'wooden panel'} #: lang/json/GENERIC_from_json.py @@ -58634,6 +59831,31 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "Stahlflasche" +msgstr[1] "Stahlflaschen" + +#. ~ Description for {'str': 'steel bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "" +"Eine Wasserflasche aus rostfreiem Stahl, kann 750 ml Flüssigkeit enthalten." + +#: lang/json/GENERIC_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "faltbare Plastikflasche" +msgstr[1] "faltbare Plastikflaschen" + +#. ~ Description for {'str': 'foldable plastic bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Eine unstarre wiederverschließbare Plastikflasche zum einfachen Lagern, " +"fasst 500 ml Flüssigkeit." + #: lang/json/GENERIC_from_json.py msgid "atomic coffee maker" msgid_plural "atomic coffee makers" @@ -58964,8 +60186,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "wicker sieve" msgid_plural "wicker sieves" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Korbweiden-Sieb" +msgstr[1] "Korbweiden-Siebe" #. ~ Description for {'str': 'wicker sieve'} #: lang/json/GENERIC_from_json.py @@ -58978,8 +60200,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "sieve" msgid_plural "sieves" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Sieb" +msgstr[1] "Siebe" #. ~ Description for {'str': 'sieve'} #: lang/json/GENERIC_from_json.py @@ -59374,6 +60596,24 @@ msgid "" " cover is closed. Use it to open the cover and show the light." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" +msgstr[0] "Blutentnahmesatz" +msgstr[1] "Blutentnahmesätze" + +#. ~ Description for {'str': 'blood draw kit'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." +msgstr "" +"Dies ist ein Werkzeugsatz, um Blut zu entnehmen, inklusive eines " +"Reagenzglases, das die Probe beeinhalten kann. Benutze dieses Werkzeug, um " +"Blut zu entnehmen, entweder von dir oder von einer Leiche, auf der du " +"stehst." + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" msgid_plural "charcoal kilns" @@ -59636,8 +60876,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "bone sewing awl" msgid_plural "bone sewing awls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Knochenahle" +msgstr[1] "Knochenahle" #. ~ Description for {'str': 'bone sewing awl'} #: lang/json/GENERIC_from_json.py @@ -59646,6 +60886,9 @@ msgid "" "before metal was discovered. It can also serve as an improvised stabbing " "weapon, but will break quickly." msgstr "" +"Eine grobe geschärfte Knochenahle; Sie wurde für Lederarbeiten benutzt bevor" +" Metall entdeckt wurde. Es kann auch als improviserte Stech-Waffe benutzt " +"werden, aber es wird schnell brechen." #: lang/json/GENERIC_from_json.py msgid "steel sewing awl" @@ -59961,13 +61204,13 @@ msgstr "Ruder für ein Boot." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "sail" msgid_plural "sails" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Segel" +msgstr[1] "Segel" #. ~ Description for {'str': 'sail'} #: lang/json/GENERIC_from_json.py msgid "Sails for a boat." -msgstr "" +msgstr "Segel für ein Boot." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "inflatable section" @@ -60153,7 +61396,6 @@ msgstr "" "zu sehen." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "security camera" msgid_plural "security cameras" msgstr[0] "Sicherheitskamera" @@ -60198,13 +61440,14 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "rein and tackle" msgid_plural "reins and tackles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Zaumzeug" +msgstr[1] "Zaumzeug" #. ~ Description for {'str': 'rein and tackle', 'str_pl': 'reins and tackles'} #: lang/json/GENERIC_from_json.py msgid "A set of leather bindings to control a mountable creature." msgstr "" +"Verschiedene lederne Bänder um eine reitbare Kreatur zu kontrollieren." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "dashboard" @@ -60229,7 +61472,6 @@ msgstr[0] "elektronische Steuereinheit" msgstr[1] "elektronische Steuereinheiten" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "drive by wire controls" msgid_plural "sets of drive by wire controls" msgstr[0] "Drive-by-Wire-Steuerung" @@ -60919,7 +62161,6 @@ msgstr "" "fürchterlich unklug zu sein." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "stereo system" msgid_plural "stereo systems" msgstr[0] "Stereoanlage" @@ -60955,8 +62196,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "sheet metal" msgid_plural "sheet metal" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Metallblech" +msgstr[1] "Metallbleche" #. ~ Description for {'str_sp': 'sheet metal'} #. ~ Description for TEST sheet metal @@ -60967,8 +62208,8 @@ msgstr "Ein dünnes Blech." #: lang/json/GENERIC_from_json.py msgid "wired sheet metal" msgid_plural "wired sheet metal" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Verkabeltes Metallblech" +msgstr[1] "Verkabelte Metallbleche" #. ~ Description for {'str_sp': 'wired sheet metal'} #: lang/json/GENERIC_from_json.py @@ -61282,8 +62523,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "leather seat" msgid_plural "leather seats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ledersitz" +msgstr[1] "Ledersitze" #. ~ Description for {'str': 'leather seat'} #: lang/json/GENERIC_from_json.py @@ -61304,7 +62545,6 @@ msgstr "" "muss." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "solar panel" msgid_plural "solar panels" msgstr[0] "Solarpaneel" @@ -61339,7 +62579,6 @@ msgstr "" "für ein Fahrzeug." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "upgraded solar panel" msgid_plural "upgraded solar panels" msgstr[0] "verbessertes Solarpaneel" @@ -61420,8 +62659,8 @@ msgstr "Ein ungehobelter Holztisch." #: lang/json/vehicle_part_from_json.py msgid "workbench" msgid_plural "workbenches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Arbeitstisch" +msgstr[1] "Arbeitstische" #. ~ Description for workbench #. ~ Description for {'str': 'workbench', 'str_pl': 'workbenches'} @@ -61469,13 +62708,13 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "towel hanger" msgid_plural "towel hangers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Handtuchhaken" +msgstr[1] "Handtuchhaken" #. ~ Description for {'str': 'towel hanger'} #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "A towel hanger with towels." -msgstr "" +msgstr "Ein Handtuchhaken mit Handtüchern." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "recharging station" @@ -61496,8 +62735,8 @@ 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] "" +msgstr[0] "Akkuladegerät" +msgstr[1] "Akkuladegeräte" #. ~ Description for {'str': 'battery charger'} #: lang/json/GENERIC_from_json.py @@ -61508,6 +62747,10 @@ msgid "" "directly within its storage space. It can only be installed onto existing " "storage compartments." msgstr "" +"Ein kleines Gerät zum aufladen von Akkus, wenn es mit Strom verbunden ist. " +"Es kann leicht in ein Fahrzeug mit Strom verbaut werden. Dann wird es " +"langsam alle sich an dieser Stelle befindenden aufladbaren Akkus aufladen. " +"Das System kann nur in bestehende Lagerplätze eingebaut werden." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py #: lang/json/vehicle_part_from_json.py @@ -61871,6 +63114,20 @@ msgid "" "sequences embossed on them and RFID chips inside." msgstr "" +#: lang/json/GENERIC_from_json.py +msgctxt "container" +msgid "basin" +msgid_plural "basins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" msgid_plural "vehicle refrigerators" @@ -61985,6 +63242,17 @@ msgstr "" "Ein kleiner zylindrischer Behälter mit radioaktiven Material. Mit Vorsicht " "zu handhaben." +#: lang/json/GENERIC_from_json.py +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" +msgstr[0] "Gefahrenstofffass" +msgstr[1] "Gefahrenstofffässer" + +#. ~ Description for {'str': 'hazardous waste drum'} +#: lang/json/GENERIC_from_json.py +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "Ein gelbes Fass, vorgesehen für die Aufbewahrung von Gefahrenstoffen." + #: lang/json/GENERIC_from_json.py msgid "folded atomic butter churn" msgid_plural "folded atomic butter churns" @@ -62026,6 +63294,19 @@ msgid "" "bio-compatibility and durability." msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'hauling space'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to" +" create a very large amount of space for transporting goods." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" msgid_plural "hydraulic gauntlets" @@ -62205,8 +63486,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "nanowire battery" msgid_plural "nanowire batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Nanodraht Akku" +msgstr[1] "Nanodraht Akkus" #. ~ Description for {'str': 'nanowire battery', 'str_pl': 'nanowire #. batteries'} @@ -62426,19 +63707,6 @@ msgid "" "parts." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to" -" create a very large amount of space for transporting goods." -msgstr "" - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "ultralight frame" msgid_plural "ultralight frames" @@ -62463,6 +63731,84 @@ msgid "" "camera station, steering tools, and electronics controls." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'vehicle shelving'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" +msgstr[0] "Solaranlage" +msgstr[1] "Solaranlagen" + +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires" +" a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" +msgstr[0] "verbesserte Solaranlage" +msgstr[1] "verbesserte Solaranlagen" + +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" +msgstr[0] "verbesserte verstärkte Solaranlage" +msgstr[1] "verbesserte verstärkte Solaranlagen" + +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" msgid_plural "withered plant bundles" @@ -62480,22 +63826,47 @@ msgid_plural "CRIT hatchets" msgstr[0] "" msgstr[1] "" +#. ~ Use action msg for CRIT hatchet. +#: lang/json/GENERIC_from_json.py +msgid "You extend your hatchet" +msgstr "" + #. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer." +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "CRIT axe" +msgid_plural "CRIT axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for CRIT axe. +#: lang/json/GENERIC_from_json.py +msgid "You collapse your axe" msgstr "" +#. ~ Description for CRIT axe #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Blade-work manual" -msgid_plural "C.R.I.T Blade-work manuals" +msgid "" +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer" +" when extended." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'C.R.I.T Blade-work manual'} +#. ~ Description for CRIT Blade-work manual #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Blade-work." +msgid "An advanced military manual on CRIT Blade-work." msgstr "" #: lang/json/GENERIC_from_json.py @@ -62510,14 +63881,14 @@ msgid "An advanced military manual on C.R.I.T Enforcer melee." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T CQB manual" -msgid_plural "C.R.I.T CQB manuals" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'C.R.I.T CQB manual'} +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T general CQB." +msgid "An advanced military manual on CRIT general CQB." msgstr "" #: lang/json/GENERIC_from_json.py @@ -62627,17 +63998,6 @@ msgid "" "upgraded panel. Useful for a vehicle." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "6.54x42mm casing" -msgid_plural "6.54x42mm casings" -msgstr[0] "6,54×42mm-Hülse" -msgstr[1] "6,54×42mm-Hülsen" - -#. ~ Description for 6.54x42mm casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 6.54x42 round." -msgstr "Eine leere Hülse einer 6,54×42-Patrone." - #: lang/json/GENERIC_from_json.py msgid "tiny pistol casing" msgid_plural "tiny pistol casings" @@ -62760,491 +64120,38 @@ msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing)" -msgid_plural "garden pots (growing)" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'garden pot (growing)', 'str_pl': 'garden pots -#. (growing)'} +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot growing some tasty, unnameable plants. You shouldn't see this " -"item." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (grown)" -msgid_plural "garden pots (grown)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (grown)', 'str_pl': 'garden pots -#. (grown)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot with some ripe, unnameable plants. You shouldn't see this " -"item." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing tomato)" -msgid_plural "garden pots (growing tomatoes)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing tomato)', 'str_pl': -#. 'garden pots (growing tomatoes)'}. -#: lang/json/GENERIC_from_json.py -msgid "The tomatoes are ready to harvest!" -msgstr "" - -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing tomato)', -#. 'str_pl': 'garden pots (growing tomatoes)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing wheat)', -#. 'str_pl': 'garden pots (growing wheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing hops)', -#. 'str_pl': 'garden pots (growing hops)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing buckwheat)', -#. 'str_pl': 'garden pots (growing buckwheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing broccoli)', -#. 'str_pl': 'garden pots (growing broccoli)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing oats)', -#. 'str_pl': 'garden pots (growing oats)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing barley)', -#. 'str_pl': 'garden pots (growing barley)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing carrot)', -#. 'str_pl': 'garden pots (growing carrots)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cotton)', -#. 'str_pl': 'garden pots (growing cotton)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cabbage)', -#. 'str_pl': 'garden pots (growing cabbage)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cucumber)', -#. 'str_pl': 'garden pots (growing cucumber)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing garlic)', -#. 'str_pl': 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "It isn't done growing yet." -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing tomato)', 'str_pl': 'garden -#. pots (growing tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing tomatoes. Once ripe, it can be activated to " -"prepare them for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe tomato)" -msgid_plural "garden pots (ripe tomatoes)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe tomato)', 'str_pl': 'garden -#. pots (ripe tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with a ripe tomato plant. Disassemble to retrieve the " -"tasty 'matos." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing wheat)" -msgid_plural "garden pots (growing wheat)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing wheat)', 'str_pl': -#. 'garden pots (growing wheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The wheat is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing wheat)', 'str_pl': 'garden -#. pots (growing wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing wheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe wheat)" -msgid_plural "garden pots (ripe wheat)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe wheat)', 'str_pl': 'garden pots -#. (ripe wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with wheat ready to harvest. Disassemble to retrieve " -"it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing hops)" -msgid_plural "garden pots (growing hops)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'}. -#: lang/json/GENERIC_from_json.py -msgid "The hops are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing hops. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe hops)" -msgid_plural "garden pots (ripe hops)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe hops)', 'str_pl': 'garden pots -#. (ripe hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing blooming hops flowers. Disassemble to " -"harvest them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing buckwheat)" -msgid_plural "garden pots (growing buckwheat)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The buckwheat is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing buckwheat. Once ripe, it can be activated to " -"prepare it for harvest." +msgid "This book contains the teaching of the Desert Wind discipline." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe buckwheat)" -msgid_plural "garden pots (ripe buckwheat)" +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'garden pot (ripe buckwheat)', 'str_pl': 'garden -#. pots (ripe buckwheat)'} +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe buckwheat stalks. Disassemble to " -"harvest them." +msgid "This book contains the teaching of the Diamond Mind discipline." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing broccoli)" -msgid_plural "garden pots (growing broccoli)" +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'}. -#: lang/json/GENERIC_from_json.py -msgid "The broccoli is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'} +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot growing broccoli. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe broccoli)" -msgid_plural "garden pots (ripe broccoli)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe broccoli)', 'str_pl': 'garden -#. pots (ripe broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some fully-grown broccoli. Disassemble to " -"harvest it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing oats)" -msgid_plural "garden pots (growing oats)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'}. -#: lang/json/GENERIC_from_json.py -msgid "The oats are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing oats. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe oats)" -msgid_plural "garden pots (ripe oats)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe oats)', 'str_pl': 'garden pots -#. (ripe oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some golden, fully-grown oats. Disassemble " -"to harvest them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing barley)" -msgid_plural "garden pots (growing barley)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing barley)', 'str_pl': -#. 'garden pots (growing barley)'}. -#: lang/json/GENERIC_from_json.py -msgid "Barley is ready to harvest!" -msgstr "Gerste ist bereit zum ernten!" - -#. ~ Description for {'str': 'garden pot (growing barley)', 'str_pl': 'garden -#. pots (growing barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing barley. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe barley)" -msgid_plural "garden pots (ripe barley)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe barley)', 'str_pl': 'garden -#. pots (ripe barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ready-to-harvest barley. Disassemble " -"to harvest it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing carrot)" -msgid_plural "garden pots (growing carrots)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing carrot)', 'str_pl': -#. 'garden pots (growing carrots)'}. -#: lang/json/GENERIC_from_json.py -msgid "The carrots are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing carrot)', 'str_pl': 'garden -#. pots (growing carrots)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing carrots. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe carrot)" -msgid_plural "garden pots (ripe carrot)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe carrot)', 'str_pl': 'garden -#. pots (ripe carrot)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ripe carrots. Disassemble to harvest " -"them. Store away from rabbits." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cotton)" -msgid_plural "garden pots (growing cotton)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing cotton)', 'str_pl': -#. 'garden pots (growing cotton)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cotton is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing cotton)', 'str_pl': 'garden -#. pots (growing cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cotton. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cotton)" -msgid_plural "garden pots (ripe cotton)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe cotton)', 'str_pl': 'garden -#. pots (ripe cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing white, fluffy cotton bolls ready for the " -"loom. Disassemble to pluck them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cabbage)" -msgid_plural "garden pots (growing cabbage)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing cabbage)', 'str_pl': -#. 'garden pots (growing cabbage)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cabbages are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing cabbage)', 'str_pl': 'garden -#. pots (growing cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cabbage. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cabbage)" -msgid_plural "garden pots (ripe cabbage)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe cabbage)', 'str_pl': 'garden -#. pots (ripe cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing a big cabbage leaf. Disassemble to harvest " -"it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cucumber)" -msgid_plural "garden pots (growing cucumber)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cucumbers are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cucumber. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cucumber)" -msgid_plural "garden pots (ripe cucumber)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe cucumber)', 'str_pl': 'garden -#. pots (ripe cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe cucumbers. Disassemble to harvest " -"them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing garlic)" -msgid_plural "garden pots (growing garlic)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing garlic)', 'str_pl': -#. 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "The garlic is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing garlic)', 'str_pl': 'garden -#. pots (growing garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing garlic bulbs. Once ripe, it can be activated " -"to prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe garlic)" -msgid_plural "garden pots (ripe garlic)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe garlic)', 'str_pl': 'garden -#. pots (ripe garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing pungent garlic bulbs. Disassemble to " -"harvest them, or wave it at vampires to scare them." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "roadheader" -msgid_plural "roadheaders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for roadheader -#: lang/json/GENERIC_from_json.py -msgid "" -"A large and heavy jagged metalhead with a lot of spikes for destroying mine " -"walls." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "Balancer" -msgid_plural "Balancers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for Balancer -#: lang/json/GENERIC_from_json.py -msgid "A large and heavy metal bar for balancing a vehicle." +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." msgstr "" #: lang/json/GENERIC_from_json.py @@ -63535,6 +64442,52 @@ msgid "" "smashed for iron." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff" +" you put into it. It takes a few words and hand-waving to take an item out." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "dimensional bag" +msgid_plural "dimensional bags" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/GENERIC_from_json.py +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "lesser staff of the magi" msgid_plural "lesser staves of the magi" @@ -64217,6 +65170,22 @@ msgid "" "tips from retracting while in staff configuration. Activate to extend." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "endless flask" +msgid_plural "endless flasks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" +msgstr "" + +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "The flask isn't done refilling yet." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "magic token" msgid_plural "magic tokens" @@ -64597,7 +65566,7 @@ msgid "" "the edge is impeccable." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Laevateinn" msgid_plural "Laevateinns" msgstr[0] "Laevateinn" @@ -65795,13 +66764,13 @@ msgid "" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Overcharge" -msgid_plural "Scrolls of Overcharge" +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Overcharge', 'str_pl': 'Scrolls of -#. Overcharge'} +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': +#. 'Scrolls of Optical Sneeze Beam'} #: lang/json/GENERIC_from_json.py msgid "" "You overcharge your internal batteries to send a semi-directed beam from " @@ -66351,6 +67320,34 @@ msgid "" "hopes to discover a more permanent solution." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "cauldron of purification" +msgid_plural "cauldrons of purification" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons +#. of purification'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This cauldron made of demon spider chitin seems to absorb the light. It " +"will hold 16 liters of material and will absorb poisons from it. It may " +"have other properties that require discovery." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" @@ -66431,1353 +67428,58 @@ msgid "" "much more expensive." msgstr "" -#. ~ Description for broken turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken turret. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." -msgstr "" -"Ein kaputter Geschützturm. Viel unbedrohlicher, jetzt, wo er schlaff auf den" -" Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken military turret" -msgid_plural "broken military turrets" -msgstr[0] "kaputter Militärgeschützturm" -msgstr[1] "kaputte Militärgeschütztürme" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced turret" -msgid_plural "broken advanced turrets" -msgstr[0] "kaputter fortgeschrittener Geschützturm" -msgstr[1] "kaputte fortgeschrittene Geschütztürme" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense turret" -msgid_plural "broken defense turrets" -msgstr[0] "kaputter Verteidigungsgeschützturm" -msgstr[1] "kaputte Verteidigungsgeschütztürme" - -#. ~ Description for broken defense turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter Verteidigungsgeschützturm. Jetzt wo er lahm auf dem Boden liegt" -" ist er deutlich weniger gefährlich. Kann für Teile ausgeschlachtet werden." - -#. ~ Description for broken military turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter Militärgeschützturm. Viel unbedrohlicher, jetzt, wo er schlaff " -"auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#. ~ Description for broken advanced turret -#. ~ Description for broken 9mm turret -#. ~ Description for broken riotcontrol turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken 9mm defense turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter 9mm Verteidigungsgeschützturm. Viel unbedrohlicher, jetzt, wo " -"er schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken 9mm turret" -msgid_plural "broken 9mm turrets" -msgstr[0] "kaputter 9mm-Geschützturm" -msgstr[1] "kaputte 9mm-Geschütztürme" - -#. ~ Description for broken 9mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken shotgun defense turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter Flinten-Verteidigungsgeschützturm. Viel unbedrohlicher, jetzt, " -"wo er schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#. ~ Description for broken riot control turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control turret. Much less threatening now that it lies limp " -"on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter Antikrawallgeschützturm. Viel unbedrohlicher, jetzt, wo er " -"schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol turret" -msgid_plural "broken riotcontrol turrets" -msgstr[0] "kaputter Antikrawallgeschützturm" -msgstr[1] "kaputte Antikrawallgeschütztürme" - -#: lang/json/GENERIC_from_json.py -msgid "broken 5.56mm turret" -msgid_plural "broken 5.56mm turrets" -msgstr[0] "kaputter 5.56mm-Geschützturm" -msgstr[1] "kaputte 5.56mm-Geschütztürme" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5.56mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter 5.56mm-Militärgeschützturm. Viel unbedrohlicher, jetzt, wo er " -"schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken 7.62mm turret" -msgid_plural "broken 7.62mm turrets" -msgstr[0] "kaputter 7.62mm-Geschützturm" -msgstr[1] "kaputte 7.62mm-Geschütztürme" - -#. ~ Description for broken 7.62mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 7.62mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter 7.62mm-Militärgeschützturm. Viel unbedrohlicher, jetzt, wo er " -"schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken 50cal turret" -msgid_plural "broken 50cal turrets" -msgstr[0] "kaputter Kaliber-.50-Geschützturm" -msgstr[1] "kaputte Kaliber-.50-Geschütztürme" - -#. ~ Description for broken 50cal turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 50 caliber turret. Much less threatening now that " -"it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter Kaliber-.50-Militärgeschützturm. Viel unbedrohlicher, jetzt, wo" -" er schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken 40mm turret" -msgid_plural "broken 40mm turrets" -msgstr[0] "kaputter 40mm-Geschützturm" -msgstr[1] "kaputte 40mm-Geschütztürme" - -#. ~ Description for broken 40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 40mm grenade turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter 40mm-Granaten-Militärgeschützturm. Viel unbedrohlicher, jetzt, " -"wo er schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5x50 flechette turret. Much less threatening now " -"that it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter 5x50-Flechet-Militärgeschützturm. Viel unbedrohlicher, jetzt, " -"wo er schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken 8x40mm turret" -msgid_plural "broken 8x40mm turrets" -msgstr[0] "kaputter 8x40mm-Geschützturm" -msgstr[1] "kaputte 8x40mm-Geschütztürme" - -#. ~ Description for broken 8x40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 8x40mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter 8x40mm-Militärgeschützturm. Viel unbedrohlicher, jetzt, wo er " -"schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken flamethrower turret" -msgid_plural "broken flamethrower turrets" -msgstr[0] "kaputter Flammenwerfer-Geschützturm" -msgstr[1] "kaputte Flammenwerfer-Geschütztürme" - -#. ~ Description for broken flamethrower turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade flamethrower turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter Flammenwerfer-Militärgeschützturm. Viel unbedrohlicher, jetzt, " -"wo er schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#. ~ Description for broken laser turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced laser emitter turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter fortschrittlicher Laser-Emitter-Geschützturm. Viel " -"unbedrohlicher, jetzt, wo er schlaff auf den Boden liegt. Er könnte für " -"Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken acid turret" -msgid_plural "broken acid turrets" -msgstr[0] "kaputter Säure-Geschützturm" -msgstr[1] "kaputte Säure-Geschütztürme" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid thrower turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter fortschrittlicher Säure-Werfer-Geschützturm. Viel " -"unbedrohlicher, jetzt, wo er schlaff auf den Boden liegt. Er könnte für " -"Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken plasma turret" -msgid_plural "broken plasma turrets" -msgstr[0] "kaputter Plasma-Geschützturm" -msgstr[1] "kaputte Plasma-Geschütztürme" - -#. ~ Description for broken plasma turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced plasma ejector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter fortschrittlicher Plasma-Werfer-Geschützturm. Viel " -"unbedrohlicher, jetzt, wo er schlaff auf den Boden liegt. Er könnte für " -"Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken rail gun turret" -msgid_plural "broken rail gun turrets" -msgstr[0] "kaputter Schienengewehrgeschützturm" -msgstr[1] "kaputte Schienengewehrgeschütztürme" - -#. ~ Description for broken rail gun turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced rail gun turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter fortschrittlicher Schienengewehr-Geschützturm. Viel " -"unbedrohlicher, jetzt, wo er schlaff auf den Boden liegt. Er könnte für " -"Bauteile demontiert werden." - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid projector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter fortschrittlicher Säureprojektor-Geschützturm. Viel " -"unbedrohlicher, jetzt, wo er schlaff auf den Boden liegt. Er könnte für " -"Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken electro turret" -msgid_plural "broken electro turrets" -msgstr[0] "kaputter Elektro-Geschützturm" -msgstr[1] "kaputte Elektro-Geschütztürme" - -#. ~ Description for broken electro turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced electro caster turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter fortschrittlicher Elektro-Werfer-Geschützturm. Viel " -"unbedrohlicher, jetzt, wo er schlaff auf den Boden liegt. Er könnte für " -"Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken EMP turret" -msgid_plural "broken EMP turrets" -msgstr[0] "kaputter EMP-Geschützturm" -msgstr[1] "kaputte EMP-Geschütztürme" - -#. ~ Description for broken EMP turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced EMP generator turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter fortschrittlicher EMP-Generator-Geschützturm. Viel " -"unbedrohlicher, jetzt, wo er schlaff auf den Boden liegt. Er könnte für " -"Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken gaurdin gnome" -msgid_plural "broken gaurdin gnomes" -msgstr[0] "kaputter Gartenzwerg" -msgstr[1] "kaputte Gartenzwerge" - -#. ~ Description for broken gaurdin gnome -#: lang/json/GENERIC_from_json.py -msgid "A broken and completely harmless garden gnome." -msgstr "Ein kaputter und völlig harmloser Gartenzwerg." - #: lang/json/GENERIC_from_json.py -msgid "broken hack" -msgid_plural "broken hacks" -msgstr[0] "kaputte Drohne" -msgstr[1] "kaputte Drohnen" - -#. ~ Description for broken eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot, now dark and motionless. Could be stripped down for parts." -msgstr "" -"Ein kaputter Schauboter, jetzt dunkel und bewegungslos. Er könnte noch für " -"seine Bestandteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed eyebot" -msgid_plural "broken disarmed eyebots" -msgstr[0] "kaputter entwaffneter Schauboter" -msgstr[1] "kaputte entwaffnete Schauboter" - -#. ~ Description for broken disarmed eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot. Its integrated weapon module has been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"Ein kaputter Schauboter. Sein integriertes Waffenmodul wurde entfernt. " -"Könnte für seine Bestandteile entkernt oder zu einem geborgenen Roboter " -"verarbeitet werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken utility robot" -msgid_plural "broken utility robots" -msgstr[0] "kaputter Hilfsroboter" -msgstr[1] "kaputte Hilfsroboter" - -#. ~ Description for broken utility robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken utility robot, now limp and unmoving. Could be gutted for parts or" -" crafted into a salvaged robot." -msgstr "" -"Ein kaputter Hilfsroboter - jetzt schlaff und bewegungslos. Könnte für seine" -" Bestandteile entkernt oder zu einem geborgenen Roboter verarbeitet werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed skitterbot" -msgid_plural "broken disarmed skitterbots" -msgstr[0] "kaputter entwaffneter Scheuchboter" -msgstr[1] "kaputte entwaffnete Scheuchboter" - -#. ~ Description for broken disarmed skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot. Its internal weapon modules have been removed. Could " -"be gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot, now harmless and inert. Could be stripped of integral " -"weapon modules." -msgstr "" -"Ein kaputter Scheuchboter, jetzt völlig reg- und harmlos. Er könnte noch für" -" seine integrierten Waffenmodule demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed defense bot" -msgid_plural "broken disarmed defense bots" -msgstr[0] "kaputter entwaffneter Verteidigungsroboter" -msgstr[1] "kaputte entwaffnete Verteidigungsroboter" - -#. ~ Description for broken disarmed defense bot -#. ~ Description for broken security robot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken security robot -#. ~ Description for broken defense bot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken disarmed military bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken security robot" -msgid_plural "broken security robots" -msgstr[0] "kaputter Sicherheitsroboter" -msgstr[1] "kaputte Sicherheitsroboter" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol robot" -msgid_plural "broken riotcontrol robots" -msgstr[0] "kaputter Antikrawallroboter" -msgstr[1] "kaputte Antikrawallroboter" - -#: lang/json/GENERIC_from_json.py -msgid "broken chickenwalker" -msgid_plural "broken chickenwalkers" -msgstr[0] "kaputter Chicken-Walker" -msgstr[1] "kaputte Chicken-Walker" - -#. ~ Description for broken chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "A broken chickenwalker. Could be stripped for parts." -msgstr "" -"Ein kaputter Chicken-Walker. Er könnte noch für seine Bestandteile " -"demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed chickenwalker" -msgid_plural "broken disarmed chickenwalkers" -msgstr[0] "kaputter entwaffneter Chicken-Walker" -msgstr[1] "kaputte entwaffnete Chicken-Walker" - -#. ~ Description for broken disarmed chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken chickenwalker. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken tank drone -#: lang/json/GENERIC_from_json.py -msgid "A broken tank drone. Could be stripped down for parts." -msgstr "" -"Eine kaputte Panzerdrohne. Sie könnte noch für ihre Bestandteile demontiert " -"werden. " - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed tank drone" -msgid_plural "broken disarmed tank drones" -msgstr[0] "kaputte entwaffnete Panzerdrohne" -msgstr[1] "kaputte entwaffnete Panzerdrohnen" - -#. ~ Description for broken disarmed tank drone -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Could be gutted for parts or recrafted into a salvaged" -" robot." -msgstr "" -"Eine kaputte Panzerdrohne. Sie könnte noch für ihre Bestandteile demontiert " -"werden oder zu einem geborgenen Roboter verarbeitet werden." - -#: lang/json/GENERIC_from_json.py -msgid "robot component" -msgid_plural "robot components" -msgstr[0] "Roboter-Komponente" -msgstr[1] "Roboter-Komponenten" - -#. ~ Description for robot component -#: lang/json/GENERIC_from_json.py -msgid "" -"A component for turrets and robots. It is unuseable in its current state." -msgstr "" -"Eine Komponente für Geschütztürme und Roboter. Sie ist in ihrem aktuellen " -"Zustand nicht nutzbar." - -#: lang/json/GENERIC_from_json.py -msgid "integral microreactor" -msgid_plural "integral microreactors" -msgstr[0] "integrierter Mikroreaktor" -msgstr[1] "integrierte Mikroreaktoren" - -#. ~ Description for integral microreactor -#: lang/json/GENERIC_from_json.py -msgid "A compact fusion reactor used to power a robot's energy weapons." -msgstr "" -"Ein kompakter Fusionsreaktor, der die Energiewaffen eines Roboters mit " -"Energie versorgt." - -#: lang/json/GENERIC_from_json.py -msgid "integral flash gun" -msgid_plural "integral flash guns" -msgstr[0] "eingebaute Blitzkanone" -msgstr[1] "eingebaute Blitzkanonen" - -#: lang/json/GENERIC_from_json.py -msgid "integral tazer" -msgid_plural "integral tazers" -msgstr[0] "integrierter Elektroschocker" -msgstr[1] "integrierte Elektroschocker" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 9mm firearm" -msgid_plural "integral 9mm firearms" -msgstr[0] "integrierte 9mm-Feuerwaffe" -msgstr[1] "integrierte 9mm-Feuerwaffen" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 5.56mm firearm" -msgid_plural "integral 5.56mm firearms" -msgstr[0] "integrierte 5.56mm-Feuerwaffe" -msgstr[1] "integrierte 5.56mm-Feuerwaffen" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 7.62mm firearm" -msgid_plural "integral 7.62mm firearms" -msgstr[0] "integrierte 7.62mm-Feuerwaffe" -msgstr[1] "integrierte 7.62mm-Feuerwaffen" - -#: lang/json/GENERIC_from_json.py -msgid "integral shotgun" -msgid_plural "integral shotguns" -msgstr[0] "integrierte Schrotflinte" -msgstr[1] "integrierte Schrotflinten" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral beanbag launcher" -msgid_plural "integral beanbag launchers" -msgstr[0] "integrierter Beanbagwerfer" -msgstr[1] "integrierte Beanbagwerfer" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral teargas launcher" -msgid_plural "integral teargas launchers" -msgstr[0] "integrierter Tränengaswerfer" -msgstr[1] "integrierte Tränengaswerfer" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py -msgid "integral flamethrower" -msgid_plural "integral flamethrowers" -msgstr[0] "integrierter Flammenwerfer" -msgstr[1] "integrierte Flammenwerfer" - -#: lang/json/GENERIC_from_json.py -msgid "integral flechette firearm" -msgid_plural "integral flechette firearms" -msgstr[0] "integrierte Flechet-Feuerwaffe" -msgstr[1] "integrierte Flechet-Feuerwaffen" - -#: lang/json/GENERIC_from_json.py -msgid "integral 8x40mm firearm" -msgid_plural "integral 8x40mm firearms" -msgstr[0] "integrierte 8x40mm-Feuerwaffe" -msgstr[1] "integrierte 8x40mm-Feuerwaffen" - -#: lang/json/GENERIC_from_json.py -msgid "integral 50 caliber firearm" -msgid_plural "integral 50 caliber firearms" -msgstr[0] "integrierte Kaliber-.50-Feuerwaffe" -msgstr[1] "integrierte Kaliber-.50-Feuerwaffen" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral grenade launcher" -msgid_plural "integral grenade launchers" -msgstr[0] "integrierter Granatwerfer" -msgstr[1] "integrierte Granatwerfer" - -#: lang/json/GENERIC_from_json.py -msgid "integral laser weapon" -msgid_plural "integral laser weapons" -msgstr[0] "integrierte Laserwaffe" -msgstr[1] "integrierte Laserwaffen" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral plasma ejector" -msgid_plural "integral plasma ejectors" -msgstr[0] "integrierter Plasma-Werfer" -msgstr[1] "integrierte Plasma-Werfer" - -#: lang/json/GENERIC_from_json.py -msgid "integral electromagnetic railgun" -msgid_plural "integral electromagnetic railguns" -msgstr[0] "integriertes elektromagnetisches Schienengewehr" -msgstr[1] "integrierte elektromagnetische Schienengewehre" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral acid thrower" -msgid_plural "integral acid throwers" -msgstr[0] "integrierter Säure-Werfer" -msgstr[1] "integrierte Säure-Werfer" - -#: lang/json/GENERIC_from_json.py -msgid "integral electro caster" -msgid_plural "integral electro casters" -msgstr[0] "integrierter Elektro-Werfer" -msgstr[1] "integrierte Elektro-Werfer" - -#: lang/json/GENERIC_from_json.py -msgid "integral EMP projector" -msgid_plural "integral EMP projectors" -msgstr[0] "integrierter EMP-Projektor" -msgstr[1] "integrierte EMP-Projektoren" - -#. ~ Description for Mjölnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Mjölnir, the hammer of Thor. It is rumored to be able to level" -" mountains with a single blow. It is decorated with gold and silver " -"ornaments." -msgstr "" -"Ein Replikat von Mjölnir, dem Hammer Thors. Gerüchte besagen, dass er in der" -" Lage sei, Berge mit einem Schlag zerschlagen. Er ist mit Gold- und " -"Silberverzierungen dekoriert." - -#. ~ Description for Gungnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Gungnir, the spear of Odin. It is rumored to be the perfect " -"spear, perfectly hitting any target regardless of the wielder's strength or " -"skill. It is decorated with gold and silver ornaments." -msgstr "" -"Ein Replikat von Gungnir, dem Speer Odins. Man erzählt sich, dass er der " -"perfekte Speer sei und jedes Ziel perfekt trifft, unabhängig von der Stärke " -"oder der Erfahrung des Werfers. Er ist mit Gold- und Silberverzierungen " -"dekoriert." - -#: lang/json/GENERIC_from_json.py -msgid "broken light auto armor" -msgid_plural "broken light auto armors" -msgstr[0] "kaputte leichte Auto-Rüstung" -msgstr[1] "kaputte leichte Auto-Rüstungen" - -#. ~ Description for broken light auto armor -#. ~ Description for broken basic auto armor -#. ~ Description for broken heavy auto armor -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken set of power armor fitted with an AI core for automated use. It " -"cannot be worn or disassembled until re-crafted into an undamaged robot." -msgstr "" -"Ein kaputter Satz aus Energierüstung, der mit einem KI-Kern für die " -"automatische Benutzung ausgestattet ist. Er kann nicht getragen oder " -"demontiert werden, bis er zu einen unbeschädigten Roboter umgebaut wurde." - -#: lang/json/GENERIC_from_json.py -msgid "broken basic auto armor" -msgid_plural "broken basic auto armors" -msgstr[0] "kaputte basis Auto-Rüstung" -msgstr[1] "kaputte basis Auto-Rüstungen" - -#: lang/json/GENERIC_from_json.py -msgid "broken heavy auto armor" -msgid_plural "broken heavy auto armors" -msgstr[0] "kaputte schwere Auto-Rüstung" -msgstr[1] "kaputte schwere Auto-Rüstungen" - -#: lang/json/GENERIC_from_json.py -msgid "dead craftbuddy" -msgid_plural "dead craftbuddies" +msgid "TEST plank" +msgid_plural "TEST planks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'dead craftbuddy', 'str_pl': 'dead craftbuddies'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken repair robot, now limp and unmoving. Could be gutted for parts or " -"re-crafted into a functioning pal." -msgstr "" -"Ein kaputter Reparaturroboter, jetzt ist er schlaff und unbeweglich. Könnte " -"für Teile auseinandergenommen werden oder zu einem funktionstüchtigen Freund" -" umgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating lantern" -msgid_plural "broken floating lanterns" -msgstr[0] "kaputte schwebende Laterne" -msgstr[1] "kaputte schwebende Laternen" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating lantern, now dark and motionless. Could be gutted for " -"parts." -msgstr "" -"Eine kaputte schwebende Laterne, jetzt dunkel und bewegungslos. Sie könnte " -"noch für ihre Bestandteile demontiert werden. " - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "A broken arson hack, now cold and burnt. Could be gutted for parts." -msgstr "" -"Eine kaputte Brandstiftungsdrohne, jetzt kalt und völlig ausgebrannt. Sie " -"könnte noch für ihre Bestandteile demontiert werden." - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken distract-o-hack, now silent and still. Could be gutted for parts." -msgstr "" -"Eine kaputte Ablenkdrohne, jetzt stumm und steif. Könnte für Teile " -"auseinandergenommen werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken spore hack" -msgid_plural "broken spore hacks" -msgstr[0] "kaputte Sporendrohne" -msgstr[1] "kaputte Sporendrohnen" - -#. ~ Description for broken spore hack -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken spore hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." -msgstr "" -"Eine kaputte Sporendrohne. Viel unbedrohlicher, jetzt, wo sie still auf den " -"Boden liegt. Sie könnte für ihre Bauteile demontiert werden. " - -#: lang/json/GENERIC_from_json.py -msgid "broken watercannon turret" -msgid_plural "broken watercannon turrets" -msgstr[0] "kaputter Wasserwerfer-Geschützturm" -msgstr[1] "kaputte Wasserwerfer-Geschütztürme" - -#. ~ Description for broken watercannon turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken watercannon turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Ein kaputter Wasserwerfer-Geschützturm. Viel unbedrohlicher, jetzt, wo er " -"schlaff auf den Boden liegt. Er könnte für Bauteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating heater" -msgid_plural "broken floating heaters" -msgstr[0] "kaputte schwebende Heizung" -msgstr[1] "kaputte schwebende Heizungen" - -#. ~ Description for broken floating heater -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating heater, now cold and motionless. Could be stripped down " -"or re-crafted." -msgstr "" -"Eine kaputte schwebende Heizung, nun kalt und bewegungslos. Könnte " -"auseinandergenommen oder umgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating furnace" -msgid_plural "broken floating furnaces" -msgstr[0] "kaputter schwebender Ofen" -msgstr[1] "kaputte schwebende Öfen" - -#. ~ Description for broken floating furnace -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating furnace, now cold and motionless. Could bestripped down " -"or re-crafted." -msgstr "" -"Ein kaputter schwebender Ofen, nun kalt und bewegungslos. Könnte " -"auseinandergenommen oder umgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken burning eye" -msgid_plural "broken burning eyes" -msgstr[0] "kaputtes brennendes Auge" -msgstr[1] "kaputte brennende Augen" - -#. ~ Description for broken burning eye -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken burning eye, now dark and motionless. Could be stripped down or " -"re-crafted." -msgstr "" -"Ein kaputtes brennendes Auge, jetzt dunkel und bewegungslos. Es könnte noch " -"für seine Bestandteile demontiert, oder wieder aufgebaut werden. " - -#: lang/json/GENERIC_from_json.py -msgid "broken butler-bot" -msgid_plural "broken butler-bots" -msgstr[0] "kaputter Butler-Bot" -msgstr[1] "kaputte Butler-Bots" - -#. ~ Description for broken butler-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken butler-bot, now silent and mangled. Could be stripped down for " -"parts." -msgstr "" -"Ein kaputter Butler-Bot, jetzt stumm und verstümmelt. Er könnte noch für " -"seine Bestandteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken construction robot" -msgid_plural "broken construction robots" -msgstr[0] "kaputter Bauroboter" -msgstr[1] "kaputte Bauroboter" - -#. ~ Description for broken construction robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken construction robot, now wrecked and immobile. Could be stripped " -"down for parts." -msgstr "" -"Ein kaputter Bauroboter, jetzt zerstört und bewegungslos. Er könnte noch für" -" seine Bestandteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken firefighter robot" -msgid_plural "broken firefighter robots" -msgstr[0] "kaputter Feuerwehr-Roboter" -msgstr[1] "kaputte Feuerwehr-Roboter" - -#. ~ Description for broken firefighter robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken firefighter robot, now cold and inert. Could be stripped down for " -"parts." -msgstr "" -"Ein kaputter Feuerwehr-Roboter, jetzt kalt und völlig reglos. Er könnte noch" -" für seine Bestandteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken blob breeder" -msgid_plural "broken blob breeders" -msgstr[0] "kaputter Blobzüchter" -msgstr[1] "kaputte Blobzüchter" - -#. ~ Description for broken blob breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien blobs. Could be stripped down or re-" -"crafted." -msgstr "" -"Ein kaputter Roboter-Inkubator für außerirdische Blobs. Er könnte noch für " -"seine Bestandteile demontiert, oder wieder aufgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken slime breeder" -msgid_plural "broken slime breeders" -msgstr[0] "kaputter Schleimzüchter" -msgstr[1] "kaputte Schleimzüchter" - -#. ~ Description for broken slime breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien slimes. Could be stripped down or re-" -"crafted." -msgstr "" -"Ein kaputter Roboter-Inkubator für außerirdischen Schleim. Er könnte noch " -"für seine Bestandteile demontiert, oder wieder aufgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken digestron" -msgid_plural "broken digestrons" -msgstr[0] "kaputter Digestron" -msgstr[1] "kaputte Digestrons" - -#. ~ Description for broken digestron -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken acid digestor robot, now cold and unmoving. Could be stripped down" -" or re-crafted." -msgstr "" -"Ein kaputter Säurezersetzungsroboter, nun kalt und bewegungslos. Könnte " -"auseinandergenommen oder umgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken bee-bot" -msgid_plural "broken bee-bots" -msgstr[0] "kaputter Bienenboter" -msgstr[1] "kaputte Bienenboter" - -#. ~ Description for broken bee-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken beehive robot, now still and bee-less. Could be stripped down or " -"re-crafted." -msgstr "" -"Ein kaputter Bienenstockroboter, jetzt still und leblos. Er könnte noch für " -"seine Bestandteile demontiert, oder wieder aufgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken medical bot" -msgid_plural "broken medical bots" -msgstr[0] "kaputter Medizin-Roboter" -msgstr[1] "kaputte Medizin-Roboter" - -#. ~ Description for broken medical bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot, now crumpled and inert. Could be stripped down for " -"parts." -msgstr "" -"Ein kaputter Medizin-Roboter, jetzt zerknautscht und völlig reglos. Er " -"könnte noch für seine Bestandteile demontiert werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed medical robot" -msgid_plural "broken disarmed medical robots" -msgstr[0] "kaputter entwaffneter Medizin-Roboter" -msgstr[1] "kaputte entwaffnete Medizin-Roboter" - -#. ~ Description for broken disarmed medical robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot. Its onboard pharma-crafter and integral surgical " -"tools have been removed. Could be gutted for parts or crafted into a " -"salvaged robot." -msgstr "" -"Ein kaputter Medizin-Roboter. Sein bordeigener Pharma-Hersteller und seine " -"integrierten chirurgischen Werkzeuge wurden entfernt. Könnte für seine " -"Bestandteile entkernt oder zu einem geborgenen Roboter verarbeitet werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken assassin robot" -msgid_plural "broken assassin robots" -msgstr[0] "kaputter Assassinenroboter" -msgstr[1] "kaputte Assassinenroboter" - -#. ~ Description for broken assassin robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken assassin robot, now limp and immobile. Could be stripped down or " -"re-crafted." -msgstr "" -"Ein kaputter Assassinenroboter, nun schlaff und bewegungslos. Könnte " -"auseinandergenommen oder umgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken elixirator" -msgid_plural "broken elixirators" -msgstr[0] "kaputter Elixirator" -msgstr[1] "kaputte Elixiratoren" - -#. ~ Description for broken elixirator -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken elixirator, now shattered and lifeless. Could be stripped down or " -"re-crafted." -msgstr "" -"Ein kaputter Elixirator, jetzt zerschmettert und leblos. Er könnte noch für " -"seine Bestandteile demontiert, oder wieder aufgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken party bot" -msgid_plural "broken party bots" -msgstr[0] "kaputter Party-Roboter" -msgstr[1] "kaputte Party-Roboter" - -#. ~ Description for broken party bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken party robot, now wasted and burnt out. Looks like the party's " -"over. Could be stripped down or re-crafted." -msgstr "" -"Ein kaputter Party-Roboter, jetzt ausgelaugt und völlig ausgebrannt. Sieht " -"so aus, als wäre die Party vorbei. Er könnte noch für seine Bestandteile " -"demontiert, oder wieder aufgebaut werden. " - -#: lang/json/GENERIC_from_json.py -msgid "broken insane cyborg" -msgid_plural "broken insane cyborgs" -msgstr[0] "defekter wahnsinniger Cyborg" -msgstr[1] "defekte wahnsinnige Cyborgs" - -#. ~ Description for broken insane cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be gutted for parts or " -"crafted into a salvaged robot." -msgstr "" -"Ein defekter Cyborg - jetzt schlaff und bewegungslos. Könnte für seine " -"Bestandteile entkernt oder zu einem geborgenen Roboter verarbeitet werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken necrotic cyborg" -msgid_plural "broken necrotic cyborgs" -msgstr[0] "defekter nekrotischer Cyborg" -msgstr[1] "defekte nekrotische Cyborgs" - -#. ~ Description for broken necrotic cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be stripped down or re-" -"crafted into a salvaged robot." -msgstr "" -"Ein defekter Cyborg - jetzt schlaff und bewegungslos. Könnte für seine " -"Bestandteile entkernt oder zu einem geborgenen Roboter verarbeitet werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken rat snatcher" -msgid_plural "broken rat snatchers" -msgstr[0] "kaputter Rattenfänger" -msgstr[1] "kaputte Rattenfänger" - -#. ~ Description for broken rat snatcher -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken rat snatcher, now harmless and inert. Could be stripped down or " -"re-crafted." -msgstr "" -"Ein kaputter Rattenfänger, jetzt völlig reg- und harmlos. Er könnte noch für" -" seine Bestandteile demontiert, oder wieder aufgebaut werden. " - -#: lang/json/GENERIC_from_json.py -msgid "broken grab-bot" -msgid_plural "broken grab-bots" -msgstr[0] "kaputter Greifboter" -msgstr[1] "kaputte Greifboter" - -#. ~ Description for broken grab-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken grabber robot, now limp and nonthreatening. Could be stripped down" -" or re-crafted." -msgstr "" -"Ein kaputter Greifboter, jetzt völlig reglos und gänzlich unbedrohlich. Er " -"könnte noch für seine Bestandteile demontiert, oder wieder aufgebaut werden." -" " - -#: lang/json/GENERIC_from_json.py -msgid "broken pest hunter" -msgid_plural "broken pest hunters" -msgstr[0] "kaputter Schädlingsbekämpfer" -msgstr[1] "kaputte Schädlingsbekämpfer" - -#. ~ Description for broken pest hunter -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken pest hunter, now harmless and inert. Could be gutted for parts or " -"re-crafted." -msgstr "" -"Ein kaputter Schädlingsbekämpfer, jetzt völlig reg- und harmlos. Er könnte " -"noch für seine Bestandteile demontiert, oder wieder aufgebaut werden. " - -#: lang/json/GENERIC_from_json.py -msgid "broken defense bot" -msgid_plural "broken defense bots" -msgstr[0] "kaputter Verteidigungsroboter" -msgstr[1] "kaputte Verteidigungsroboter" - -#: lang/json/GENERIC_from_json.py -msgid "broken junkyard cowboy" -msgid_plural "broken junkyard cowboys" -msgstr[0] "kaputter Schrottplatz-Cowboy" -msgstr[1] "kaputte Schrottplatz-Cowboys" - -#. ~ Description for broken junkyard cowboy -#. ~ Description for broken shortcircuit samurai -#. ~ Description for broken slapdash paladin -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken shortcircuit samurai" -msgid_plural "broken shortcircuit samurais" -msgstr[0] "kaputter Kurzschlusssamurai" -msgstr[1] "kaputte Kurzschlusssamurais" - -#: lang/json/GENERIC_from_json.py -msgid "broken slapdash paladin" -msgid_plural "broken slapdash paladins" -msgstr[0] "kaputter Hoppla-Paladin" -msgstr[1] "kaputte Hoppla-Paladine" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed military bot" -msgid_plural "broken disarmed military bots" -msgstr[0] "kaputter entwaffneter Militärroboter" -msgstr[1] "kaputte entwaffnete Militärroboter" - -#: lang/json/GENERIC_from_json.py -msgid "broken military trainer robot" -msgid_plural "broken military trainer robots" -msgstr[0] "kaputter Militärausbildungsroboter" -msgstr[1] "kaputte Militärausbildungsroboter" - -#. ~ Description for broken military trainer robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military trainer robot, shattered and inert. This one is armed " -"with an integrated paintball gun. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military robot" -msgid_plural "broken military robots" -msgstr[0] "kaputter Militärroboter" -msgstr[1] "kaputte Militärroboter" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 5.56mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 7.62mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 50 caliber firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 8x40mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flechette gun. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 40mm grenade launcher. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military flame robot" -msgid_plural "broken military flame robots" -msgstr[0] "kaputter Militärflammenroboter" -msgstr[1] "kaputte Militärflammenroboter" - -#. ~ Description for broken military flame robot +#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flamethrower. Could be stripped for parts." +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" +" lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken robo-guardian" -msgid_plural "broken robo-guardians" +msgid "TEST pipe" +msgid_plural "TEST pipes" msgstr[0] "" msgstr[1] "" -#. ~ Description for broken robo-guardian -#. ~ Description for broken robo-protector -#. ~ Description for broken robo-defender -#. ~ Description for {'str': 'broken glittering lady', 'str_pl': 'broken -#. glittering ladies'} -#. ~ Description for broken bitter spinster -#. ~ Description for broken fist king -#. ~ Description for broken atomic sultan -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "" -"Ein kaputter geborgener Roboter. Er könnte noch für seine Bestandteile " -"demontiert, oder wieder aufgebaut werden." - -#: lang/json/GENERIC_from_json.py -msgid "broken robote deluxe" -msgid_plural "broken robote deluxes" -msgstr[0] "kaputter robote deluxe" -msgstr[1] "kaputte robote deluxe" - -#. ~ Description for broken robote deluxe -#: lang/json/GENERIC_from_json.py -msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-protector" -msgid_plural "broken robo-protectors" -msgstr[0] "kaputter Robo-Beschützer" -msgstr[1] "kaputte Robo-Beschützer" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-defender" -msgid_plural "broken robo-defenders" -msgstr[0] "kaputter Robo-Verteidiger" -msgstr[1] "kaputte Robo-Verteidiger" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed advanced bot" -msgid_plural "broken disarmed advanced bots" -msgstr[0] "kaputter entwaffneter fortgeschrittener Bot" -msgstr[1] "kaputte entwaffnete fortgeschrittene Bots" - -#. ~ Description for broken disarmed advanced bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced robot" -msgid_plural "broken advanced robots" -msgstr[0] "kaputter fortgeschrittener Roboter" -msgstr[1] "kaputte fortgeschrittene Roboter" - -#. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated laser-" -"emitter. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated plasma-" -"ejector. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated electro-" -"caster. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated EMP " -"projector. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken glittering lady" -msgid_plural "broken glittering ladies" +msgid "TEST sheet metal" +msgid_plural "TEST sheet metals" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "broken bitter spinster" -msgid_plural "broken bitter spinsters" -msgstr[0] "kaputte verbitterte Jungfer" -msgstr[1] "kaputte verbitterte Jungfern" - -#: lang/json/GENERIC_from_json.py -msgid "broken chainsaw horror" -msgid_plural "broken chainsaw horrors" -msgstr[0] "kaputter Kettensägenschrecken" -msgstr[1] "kaputte Kettensägenschrecken" - -#. ~ Description for broken chainsaw horror -#. ~ Description for broken screeching terror -#. ~ Description for broken hooked nightmare -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken salvaged robot. Thank God it's finally dead. Could be stripped or" -" recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken screeching terror" -msgid_plural "broken screeching terrors" -msgstr[0] "kaputter kreischender Schrecken" -msgstr[1] "kaputte kreischende Schrecken" - -#: lang/json/GENERIC_from_json.py -msgid "broken hooked nightmare" -msgid_plural "broken hooked nightmares" -msgstr[0] "kaputter Hakenalbtraum" -msgstr[1] "kaputte Hakenalbträume" - -#: lang/json/GENERIC_from_json.py -msgid "broken fist king" -msgid_plural "broken fist kings" -msgstr[0] "kaputter Faustkönig" -msgstr[1] "kaputte Faustkönige" - -#: lang/json/GENERIC_from_json.py -msgid "broken atomic sultan" -msgid_plural "broken atomic sultans" -msgstr[0] "kaputter Atomsultan" -msgstr[1] "kaputte Atomsultane" - -#. ~ Description for AI core -#: lang/json/GENERIC_from_json.py -msgid "A computer module for controlling robots." -msgstr "Ein Computermodul zur Steuerung von Robotern." - -#: lang/json/GENERIC_from_json.py -msgid "surgery module" -msgid_plural "surgery modules" -msgstr[0] "Chirurgiemodul" -msgstr[1] "Chirurgiemodule" - -#. ~ Description for surgery module -#: lang/json/GENERIC_from_json.py -msgid "A microsurgery module for a medical robot." -msgstr "Ein Mikrochirurgiemodul für einen medizinischen Roboter." - -#: lang/json/GENERIC_from_json.py -msgid "pharmaceutical module" -msgid_plural "pharmaceutical modules" -msgstr[0] "pharmazeutisches Modul" -msgstr[1] "pharmazeutische Module" - -#. ~ Description for pharmaceutical module -#: lang/json/GENERIC_from_json.py -msgid "A pharmaceutical fabricating module for a medical robot." -msgstr "" -"Ein Herstellungsmodul für Pharmazeutika für einen medizinischen Roboter." - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral paintball gun" -msgid_plural "integral paintball guns" -msgstr[0] "integrierte Paintballwaffe" -msgstr[1] "integrierte Paintballwaffen" - -#. ~ Description for integral paintball gun -#: lang/json/GENERIC_from_json.py -msgid "" -"A high-powered paintball module used for safely testing robots or training " -"soldiers." -msgstr "" -"Ein leistungsstarkes Paintball-Modul zum sicheren Testen von Robotern oder " -"zum Trainieren von Soldaten." - -#: lang/json/GENERIC_from_json.py -msgid "robot carrier" -msgid_plural "robot carriers" -msgstr[0] "Roboterträger" -msgstr[1] "Roboterträger" - -#. ~ Description for robot carrier -#: lang/json/GENERIC_from_json.py -msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large machine in place. It is " -"meant to hold large drones and robots for transport. Use it on a suitable " -"robot to capture, use it on an empty tile to release." -msgstr "" -"Ein schwerer Rahmen zur Beförderung von Fracht, ausgestattet mit Zurrgurten " -"und Befestigungspunkten sowie zusätzlichen Schienen, um eine große Maschine " -"an Ort und Stelle zu halten. Entworfen, um große Drohnen und Roboter für den" -" Transport aufzunehmen. Benutze ihn, um einen geeigneten Roboter " -"einzufangen, benutze ihn auf einem freien Feld, um den Inhalt freizulassen." +msgid "TEST gallon jug" +msgid_plural "TEST gallon jugs" +msgstr[0] "" +msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "TEST plank" -msgid_plural "TEST planks" +msgid "TEST small waterskin" +msgid_plural "TEST small waterskins" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "TEST pipe" -msgid_plural "TEST pipes" +msgid "test balloon" +msgid_plural "test balloons" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'test balloon'} #: lang/json/GENERIC_from_json.py -msgid "TEST sheet metal" -msgid_plural "TEST sheet metals" +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "test pointy stick" +msgid_plural "test pointy sticks" msgstr[0] "" msgstr[1] "" @@ -67815,209 +67517,50 @@ msgid "A well-balanced sword for test purposes" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "a large artillery casing" -msgid_plural "large artillery casings" -msgstr[0] "eine große Artilleriehülle" -msgstr[1] "große Artilleriehüllen" - -#: lang/json/GENERIC_from_json.py -msgid "30x113mm autocannon belt linkage" -msgid_plural "30x113mm autocannon belt linkages" -msgstr[0] "30×113mm-Autokanonengurtscharnier" -msgstr[1] "30×113mm-Autokanonengurtscharniere" - -#: lang/json/GENERIC_from_json.py -msgid "30mm canister" -msgid_plural "30mm canisters" -msgstr[0] "30mm-Kanister" -msgstr[1] "30mm-Kanister" - -#. ~ Description for 30mm canister -#: lang/json/GENERIC_from_json.py -msgid "A canister from a spent 30mm shell." -msgstr "Ein Kanister einer verbrauchten 30mm-Granate." - -#: lang/json/GENERIC_from_json.py -msgid "120mm canister" -msgid_plural "120mm canisters" -msgstr[0] "120mm-Kanister" -msgstr[1] "120mm-Kanister" - -#. ~ Description for 120mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 120mm shell, now an expensive paperweight." -msgstr "" -"Ein Kanister einer verbrauchten 120mm-Granate, nun ein teurer " -"Briefbeschwerer." - -#: lang/json/GENERIC_from_json.py -msgid "155mm canister" -msgid_plural "155mm canisters" -msgstr[0] "155mm-Kanister" -msgstr[1] "155mm-Kanister" - -#. ~ Description for 155mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 155mm shell, now an expensive paperweight." -msgstr "" -"Ein Kanister einer verbrauchten 155mm-Granate, nun ein teurer " -"Briefbeschwerer." - -#: lang/json/GENERIC_from_json.py -msgid "stabilized portal" -msgid_plural "stabilized portals" -msgstr[0] "stabilisiertes Portal" -msgstr[1] "stabilisierte Portale" - -#. ~ Description for {'str': 'stabilized portal'} -#: lang/json/GENERIC_from_json.py -msgid "" -"As you gaze into the seemingly infinite depths of this portable hole in " -"reality, a phrase from a time forever gone echoes in your mind. \"There are" -" two things that are infinite: the universe and human kleptomania.\"" -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" +msgid "test box" +msgid_plural "test boxs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle shelving'} +#. ~ Description for {'str': 'test box'} #: lang/json/GENERIC_from_json.py -msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" -msgstr[0] "Solaranlage" -msgstr[1] "Solaranlagen" - -#. ~ Description for {'str': 'solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. However, this comes at the " -"cost of being prohibitively heavy." -msgstr "" -"Ein Dutzend Solarmodule, die auf ein Fahrgestell montiert wurden, sie " -"reichen einige Meter hoch. Das hält die zerbrechlichen Module sicher von " -"jeglichen potentiellen Gefahren fern und erhöht die Effizienz aufgrund der " -"Fähigkeit, der Sonne zu folgen. Allerdings kommt das auf Kosten eines " -"ungeheuer hohen Gewichts." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" -msgstr[0] "verbesserte Solaranlage" -msgstr[1] "verbesserte Solaranlagen" - -#. ~ Description for {'str': 'upgraded solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able to track the sun. However, this comes" -" at the cost of being prohibitively heavy and obstructive." -msgstr "" -"Ein Dutzend verbesserte Solarmodule, die auf ein Fahrgestell montiert " -"wurden, sie reichen einige Meter hoch. Das hält die zerbrechlichen Module " -"sicher von jeglichen potentiellen Gefahren fern und erhöht die Effizienz " -"aufgrund der Fähigkeit, der Sonne zu folgen. Allerdings kommt das auf Kosten" -" eines ungeheuer hohen Gewichts und es ist sehr auffällig." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" -msgstr[0] "verbesserte verstärkte Solaranlage" -msgstr[1] "verbesserte verstärkte Solaranlagen" - -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded reinforced solar panels set on a chassis reaching several " -"meters high. It keeps the fragile panels safely away from any potential " -"threats and improves efficiency due to being able to track the sun. " -"However, this comes at the cost of being prohibitively heavy and " -"obstructive." -msgstr "" -"Ein Dutzend verbesserte verstärkte Solarmodule, die auf ein Fahrgestell " -"montiert wurden, sie reichen einige Meter hoch. Das hält die zerbrechlichen " -"Module sicher von jeglichen potentiellen Gefahren fern und erhöht die " -"Effizienz aufgrund der Fähigkeit, der Sonne zu folgen. Allerdings kommt das " -"auf Kosten eines ungeheuer hohen Gewichts und es ist sehr auffällig." - #: lang/json/GENERIC_from_json.py -msgid "gelectrode" -msgid_plural "gelectrodes" +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gelectrode'} +#. ~ Description for test 14 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A strange biological anomaly, this blob seems capable of emitting light when" -" electricity is provided to it, from small lamps up to headlights. " -"Unfortunately there is no place to insert a battery, so you'll have to hook " -"it up to a vehicle's power grid. It seems pliable enough to pull apart…" +msgid "A thin rod exactly 14 cm in length" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "amorphous heart" -msgid_plural "amorphous hearts" -msgstr[0] "amorphes Herz" -msgstr[1] "amorphe Herzen" +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'amorphous heart'} +#. ~ Description for test 15 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"This amorphous mass seems to have finished developing; its advanced internal" -" structures testifying to that. It is capable of locomotion through " -"internal hydraulic pressure, capable of moving substantial loads, and, in an" -" astounding display of intelligence, is capable of manipulating anything " -"it's attached to, whether blob-based or otherwise, through extended " -"pseudopods. You think you might be able to manipulate it, and through it, " -"all its attached parts. Though to do so you'll have to position yourself to" -" be in contact with it; and it appears unnervingly willing to accommodate " -"you…" +msgid "A thin rod exactly 15 cm in length" msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond frame" -msgid_plural "diamond frames" -msgstr[0] "Diamantrahmen" -msgstr[1] "Diamantrahmen" - -#. ~ Description for {'str': 'diamond frame'} #: lang/json/GENERIC_from_json.py -msgid "" -"A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " -"weight." -msgstr "" -"Ein brillant glänzender Diamantfahrzeugrahmen. Unglaublich stark für sein " -"Gewicht." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond plating" -msgid_plural "diamond platings" -msgstr[0] "Diamantplattierung" -msgstr[1] "Diamantplattierungen" +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'diamond plating'} +#. ~ Description for {'str': 'test nuclear carafe'} #: lang/json/GENERIC_from_json.py msgid "" -"A piece of armor plating made of clear diamond. Incredibly strong for its " -"weight." +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." msgstr "" -"Ein Stück Panzerungsplattierung aus reinem Diamant. Unglaublich stark für " -"sein Gewicht." #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" @@ -68446,8 +67989,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light battery" msgid_plural "ultra-light batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ultra-kleiner Akku" +msgstr[1] "Ultra-kleine Akkus" #. ~ Description for {'str': 'ultra-light battery', 'str_pl': 'ultra-light #. batteries'} @@ -68456,12 +67999,14 @@ msgid "" "This is a light battery cell designed for small size over everything else. " "It retains its universal compatibility, though." msgstr "" +"Ein ultra-leichter Akku, extra klein gebaut auf Kosten von allem anderen. " +"Hat jedoch seine universelle Kompatibilität behalten." #: lang/json/MAGAZINE_from_json.py msgid "ultra-light plutonium fuel battery" msgid_plural "ultra-light plutonium fuel batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ultra-kleine Plutoniumbrennstoffzelle" +msgstr[1] "Ultra-kleine Plutoniumbrennstoffzellen" #. ~ Description for {'str': 'ultra-light plutonium fuel battery', 'str_pl': #. 'ultra-light plutonium fuel batteries'} @@ -68475,8 +68020,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light disposable battery" msgid_plural "ultra-light disposable batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ultra-kleine Batterie" +msgstr[1] "Ultra-kleine Batterien" #. ~ Description for {'str': 'ultra-light disposable battery', 'str_pl': #. 'ultra-light disposable batteries'} @@ -68486,25 +68031,27 @@ msgid "" "It retains its universal compatibility, though. The battery's chemistry " "means that it has a very high capacity, but cannot be recharged." msgstr "" +"Eine ultra-leichte Batterie, extra klein gebaut auf Kosten von allem anderen. Hat jedoch seine universelle Kompatibilität behalten.\n" +"Der chemische Aufbau der Batterie garantiert eine sehr hohe Kapazität, aber sie kann nicht wieder aufgeladen werden." #: lang/json/MAGAZINE_from_json.py msgid "light battery" msgid_plural "light batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kleiner Akku" +msgstr[1] "Kleine Akkus" #. ~ Description for {'str': 'light battery', 'str_pl': 'light batteries'} #: lang/json/MAGAZINE_from_json.py msgid "" "This is a light battery cell, universally compatible with all kinds of small" " devices." -msgstr "" +msgstr "Kleiner Akku, universell kompatibel mit allen Arten kleiner Geräte." #: lang/json/MAGAZINE_from_json.py msgid "light battery (high-capacity)" msgid_plural "light batteries (high-capacity)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kleiner Akku (Extra-Kapazität)" +msgstr[1] "Kleine Akkus (Extra-Kapazität)" #. ~ Description for {'str': 'light battery (high-capacity)', 'str_pl': 'light #. batteries (high-capacity)'} @@ -68513,12 +68060,14 @@ msgid "" "This is a high-capacity light battery cell, universally compatible with all " "kinds of small devices." msgstr "" +"Kleiner Akku mit extra hoher Kapazität, universell kompatibel mit allen " +"Arten kleiner Geräte." #: lang/json/MAGAZINE_from_json.py msgid "light plutonium fuel battery" msgid_plural "light plutonium fuel batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kleine Plutoniumbrennstoffzelle" +msgstr[1] "Kleine Plutoniumbrennstoffzellen" #. ~ Description for {'str': 'light plutonium fuel battery', 'str_pl': 'light #. plutonium fuel batteries'} @@ -68533,8 +68082,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light disposable battery" msgid_plural "light disposable batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kleine Batterie" +msgstr[1] "Kleine Batterien" #. ~ Description for {'str': 'light disposable battery', 'str_pl': 'light #. disposable batteries'} @@ -68544,12 +68093,14 @@ msgid "" " devices. The battery's chemistry means that it has a very high capacity, " "but cannot be recharged." msgstr "" +"Eine leichte Batterie, universell kompatibel mit allen Arten kleiner Geräte.\n" +"Der chemische Aufbau der Batterie garantiert eine sehr hohe Kapazität, aber sie kann nicht wieder aufgeladen werden." #: lang/json/MAGAZINE_from_json.py msgid "medium battery" msgid_plural "medium batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mittlerer Akku" +msgstr[1] "Mittlere Akkus" #. ~ Description for {'str': 'medium battery', 'str_pl': 'medium batteries'} #: lang/json/MAGAZINE_from_json.py @@ -68557,12 +68108,14 @@ msgid "" "This is a medium battery cell, universally compatible with all kinds of " "appliances and power tools." msgstr "" +"Mittlerer Akku, universell kompatibel mit allen Arten Haushaltsgeräten und " +"Elektrowerkzeugen." #: lang/json/MAGAZINE_from_json.py msgid "medium battery (high-capacity)" msgid_plural "medium batteries (high-capacity)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mittlerer Akku (Extra-Kapazität)" +msgstr[1] "Mittlere Akkus (Extra-Kapazität)" #. ~ Description for {'str': 'medium battery (high-capacity)', 'str_pl': #. 'medium batteries (high-capacity)'} @@ -68571,12 +68124,14 @@ msgid "" "This is a high-capacity medium battery cell, universally compatible with all" " kinds of appliances and power tools." msgstr "" +"Mittlerer Akku mit extra hoher Kapazität, universell kompatibel mit allen " +"Arten Haushaltsgeräten und Elektrowerkzeugen." #: lang/json/MAGAZINE_from_json.py msgid "medium plutonium fuel battery" msgid_plural "medium plutonium fuel batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mittlere Plutoniumbrennstoffzelle" +msgstr[1] "Mittlere Plutoniumbrennstoffzellen" #. ~ Description for {'str': 'medium plutonium fuel battery', 'str_pl': #. 'medium plutonium fuel batteries'} @@ -68591,8 +68146,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "medium disposable battery" msgid_plural "medium disposable batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mittlere Batterie" +msgstr[1] "Mittlere Batterien" #. ~ Description for {'str': 'medium disposable battery', 'str_pl': 'medium #. disposable batteries'} @@ -68602,12 +68157,14 @@ msgid "" "appliances and power tools. The battery's chemistry means that it has a " "very high capacity, but cannot be recharged." msgstr "" +"Eine mittlere Batterie, universell kompatibel mit allen Arten Haushaltsgeräten und Elektrowerkzeugen.\n" +"Der chemische Aufbau der Batterie garantiert eine sehr hohe Kapazität, aber sie kann nicht wieder aufgeladen werden." #: lang/json/MAGAZINE_from_json.py msgid "heavy battery" msgid_plural "heavy batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Großer Akku" +msgstr[1] "Große Akkus" #. ~ Description for {'str': 'heavy battery', 'str_pl': 'heavy batteries'} #: lang/json/MAGAZINE_from_json.py @@ -68615,12 +68172,14 @@ msgid "" "This is a heavy battery cell, universally compatible with all kinds of " "industrial-grade equipment and large tools." msgstr "" +"Großer Akku, universell kompatibel mit allen Arten industrieller Geräte und " +"großen Werkzeugen." #: lang/json/MAGAZINE_from_json.py msgid "heavy battery (high-capacity)" msgid_plural "heavy batteries (high-capacity)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Großer Akku (Extra-Kapazität) " +msgstr[1] "Große Akkus (Extra-Kapazität)" #. ~ Description for {'str': 'heavy battery (high-capacity)', 'str_pl': 'heavy #. batteries (high-capacity)'} @@ -68629,12 +68188,14 @@ msgid "" "This is a high-capacity heavy battery cell, universally compatible with all " "kinds of industrial-grade equipment and large tools." msgstr "" +"Großer Akku mit extra hoher Kapazität, universell kompatibel mit allen Arten" +" industrieller Geräte und großen Werkzeugen." #: lang/json/MAGAZINE_from_json.py msgid "heavy plutonium fuel battery" msgid_plural "heavy plutonium fuel batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Große Plutoniumbrennstoffzelle" +msgstr[1] "Große Plutoniumbrennstoffzellen" #. ~ Description for {'str': 'heavy plutonium fuel battery', 'str_pl': 'heavy #. plutonium fuel batteries'} @@ -68664,8 +68225,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "heavy disposable battery" msgid_plural "heavy disposable batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Große Batterie" +msgstr[1] "Große Batterien" #. ~ Description for {'str': 'heavy disposable battery', 'str_pl': 'heavy #. disposable batteries'} @@ -68675,6 +68236,8 @@ msgid "" "industrial-grade equipment and large tools. The battery's chemistry means " "that it has a very high capacity, but cannot be recharged." msgstr "" +"Großer Batterie, universell kompatibel mit allen Arten industrieller Geräte und großen Werkzeugen.\n" +"Der chemische Aufbau der Batterie garantiert eine sehr hohe Kapazität, aber sie kann nicht wieder aufgeladen werden. " #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" @@ -69972,10 +69535,8 @@ msgstr[1] "" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." msgstr "" -"Ein Standard-Stahlkastenmagazin mit 7 Schuss zur Verwendung mit der IMI " -"Desert Eagle." #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 magazine" @@ -70547,19 +70108,6 @@ msgstr "" "Ein Kastenmagazin mit 50 Schuss zur Verwendung mit Rivtech-8×40mm-Hülsenlos-" "Feuerwaffen." -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "" - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" @@ -71203,8 +70751,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "small motorbike battery" msgid_plural "small motorbike batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kleine Motorrad Batterie" +msgstr[1] "Kleine Motorrad Batterien" #. ~ Description for {'str': 'small motorbike battery', 'str_pl': 'small #. motorbike batteries'} @@ -71217,8 +70765,8 @@ 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[0] "Großer Speicher-Akku" +msgstr[1] "Große Speicher-Akkus" #. ~ Description for {'str': 'large storage battery', 'str_pl': 'large storage #. batteries'} @@ -71272,138 +70820,14 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgid_plural "fuel bunkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Brennstoffbehälter" +msgstr[1] "Brennstoffbehälter" #. ~ Description for {'str': 'fuel bunker'} #: lang/json/MAGAZINE_from_json.py msgid "A bin for holding solid fuel." msgstr "Ein Behälter zum Lagern von Festbrennstoff." -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 auto-magazine" -msgid_plural "CW-24 auto-magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CW-24 auto-magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Ein fortgeschrittenes Automatikmagazin für das CW-24-Gewehr. Wie die SVS-" -"Gewehre benutzt es Mikrorobotik, um die Patronen zu laden." - -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 extended magazine" -msgid_plural "CW-24 extended magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CW-24 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Ein erweitertes Automatikmagazin für das CW-24-Gewehr. Wie die SVS-Gewehre " -"benutzt es Mikrorobotik, um die Patronen zu laden." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 extended magazine" -msgid_plural "CWD-63 extended magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CWD-63 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." -msgstr "" -"Ein billiges Kastenmagazin mit 10 Schuss für die CWD-63. Es ist nicht so " -"stabil." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 magazine" -msgid_plural "CWD-63 magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CWD-63 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"Since it's created for the .308 round, it doesn't need the curved shape of " -"the original magazine." -msgstr "" -"Da es für die .308-Patrone gemacht wurde, braucht es nicht die gekrümmte " -"Form des Originalmagazins." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robodrum" -msgid_plural "SVS-24 robodrums" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for SVS-24 robodrum -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 135-round drum magazine. Like the auto-magazine, it loads " -"cartridges using microrobotics." -msgstr "" -"Ein fortgeschrittenes Trommelmagazin mit 135 Schuss. Wie das " -"Automatikmagazin lädt es Patronen mittels Mikrorobotik." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robomag" -msgid_plural "SVS-24 robomags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for SVS-24 robomag -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 42-round auto-magazine. Unlike previous generations of " -"magazines, this one uses microrobotics to load cartridges." -msgstr "" -"Ein fortgeschrittenes Trommelmagazin mit 42 Schuss. Anders als frühere " -"Generationen von Magazinen benutzt dieses Magazin Mikrorobotik, um Patronen " -"zu laden." - -#. ~ Description for .454 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 6 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid ".454 8-round speedloader" -msgid_plural ".454 8-round speedloaders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for .454 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 8 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid "Eagle 1776 magazine" -msgid_plural "Eagle 1776 magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for Eagle 1776 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " -"to the Eagle 1776." -msgstr "" -"Ein amerikanisch-hergestelltes Kastenmagazin, gemacht, um 24 " -".44-Magnumpatronen in die Eagle 1776 zu laden." - #: lang/json/MAGAZINE_from_json.py msgid "grenade machine gun belt" msgid_plural "grenade machine gun belts" @@ -71602,77 +71026,28 @@ msgid "" msgstr "" #: lang/json/MAGAZINE_from_json.py -msgid "30x113mm ammo belt" -msgid_plural "30x113mm ammo belts" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MAGAZINE_from_json.py -msgid "BB hopper" -msgid_plural "BB hoppers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'BB hopper'} -#. ~ Description for {'str': 'pebble hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"small round shot into the weapon's chamber below. It is not very reliable, " -"but quick to reload." -msgstr "" -"Ein improvisiertes Magazin für eine an einem Fahrzeug montierte Waffe. Das " -"ist eine einfache Metallkiste mit ein paar Plastikführungsschienen. Es " -"agiert als ein schwerkraftgetriebener Trichter, um eine kleine Patronenkugel" -" in die Waffenkammer unter ihm fallen zu lassen. Es ist nicht sehr " -"zuverlässig, aber lädt schnell nach." - -#: lang/json/MAGAZINE_from_json.py -msgid "bolt hopper" -msgid_plural "bolt hoppers" +msgid "test disposable battery" +msgid_plural "test disposable batteries" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'bolt hopper'} +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test +#. disposable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted crossbow. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"crossbow bolt into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test disposable battery." msgstr "" -"Ein improvisiertes Magazin für eine an einem Fahrzeug montierte Armbrust. " -"Das ist eine einfache Metallkiste mit ein paar Plastikführungsschienen. Es " -"agiert als ein schwerkraftgetriebener Trichter, um einen kleinen " -"Armbrustbolzen in die Waffenkammer unter ihm fallen zu lassen. Es ist " -"kompliziert, es nachzuladen und nicht wirklich zuverlässig." #: lang/json/MAGAZINE_from_json.py -msgid "canister rack" -msgid_plural "canister racks" +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'canister rack'} +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test +#. rechargeable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"heavy canister into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test battery that may be recharged." msgstr "" -"Ein improvisiertes Magazin für eine an einem Fahrzeug montierte Waffe. Das " -"ist eine einfache Metallkiste mit ein paar Plastikführungsschienen. Es " -"agiert als ein schwerkraftgetriebener Trichter, um einen schweren Kanister " -"in die Waffenkammer unter ihm fallen zu lassen. Es ist kompliziert, es " -"nachzuladen und nicht wirklich zuverlässig." - -#: lang/json/MAGAZINE_from_json.py -msgid "pebble hopper" -msgid_plural "pebble hoppers" -msgstr[0] "" -msgstr[1] "" #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" @@ -71693,29 +71068,27 @@ msgid "Drifts the game away from realism and more towards sci-fi." msgstr "Verschiebt das Spiel vom Realismus mehr hin zu Sci-Fi." #: lang/json/MOD_INFO_from_json.py -msgid "C.R.I.T Expansion Mod" +msgid "Blaze Industries" msgstr "" -#. ~ Description for C.R.I.T Expansion Mod +#. ~ Description for Blaze Industries #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds a plethora of content: professions, guns/mods, WIP enemies, mutations, " -"martial arts, melee weapons, and some QOL changes such as plants from " -"cutting grass." +"Introduces the fictional corporation Blaze Industries, bringing advanced " +"vehicle modification to the consumer." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Craftable Gun Pack" -msgstr "Waffenfertigungspaket" +msgid "C.R.I.T Expansion Mod" +msgstr "" -#. ~ Description for Craftable Gun Pack +#. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " -"balance." +"Adds a plethora of content: professions, guns/mods/weapons, WIP mobs, " +"mutations, MA styles, and some QOL innawoods changes. Use the readme to see " +"more details!" msgstr "" -"Fügt noch mehr selbstbaubare Feuerwaffen und Schießpulver hinzu. ACHTUNG: " -"Nicht mit der vorgesehenen Spielbalance vereinbar." #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" @@ -71737,19 +71110,6 @@ msgid "" "occupation. Use other mods at your own risk!" msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Folding Parts pack" -msgstr "Paket Faltbare Teile" - -#. ~ Description for Folding Parts pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Makes solar panels and several other parts foldable, and adds foldable " -"quarterboards." -msgstr "" -"Macht Solarmodule und diverse andere Teile faltbar und fügt faltbare " -"Seitenwände hinzu." - #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" msgstr "DinoMod" @@ -71760,28 +71120,6 @@ msgid "" "Adds dinosaurs. Some rideable, others less friendly. Life will find a way." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Icecoon's Arsenal" -msgstr "Icecoons Arsenal" - -#. ~ Description for Icecoon's Arsenal -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those gun nuts. Don't have enough near-future firearms in your life? " -"Add this mod today!" -msgstr "" -"Für die Waffennarren. Hast du noch nicht genug Schusswaffen aus der nahen " -"Zukunft in deinem Leben? Dann füg diese Mod heute hinzu!" - -#: lang/json/MOD_INFO_from_json.py -msgid "DeadLeaves' Fictional Guns" -msgstr "DeadLeaves’ fiktive Waffen" - -#. ~ Description for DeadLeaves' Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a bunch of rare, fictional weapons." -msgstr "Fügt eine Reihe an seltenen fiktiven Waffen hinzu." - #: lang/json/MOD_INFO_from_json.py msgid "Fuji's Military Profession Pack" msgstr "" @@ -71836,53 +71174,30 @@ msgid "Fuji Structures mod support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Graphical Overmap More Locations" -msgstr "" - -#. ~ Description for Graphical Overmap More Locations -#: lang/json/MOD_INFO_from_json.py -msgid "More Locations mod support for Graphical Overmap." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Graphical Overmap Urban Development" -msgstr "" - -#. ~ Description for Graphical Overmap Urban Development -#: lang/json/MOD_INFO_from_json.py -msgid "Urban Development mod support for Graphical Overmap." +msgid "Graphical Overmap Magiclysm" msgstr "" +#. ~ Description for Graphical Overmap Magiclysm #: lang/json/MOD_INFO_from_json.py -msgid "Garden Pots" -msgstr "" - -#. ~ Description for Garden Pots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Allows you to grow seeds in craftable garden pots that can be carried around" -" as items. Perfect for the nomadic botanist." +msgid "Magiclysm support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Roadheader and other mining vehicles" +msgid "Graphical Overmap More Locations" msgstr "" -#. ~ Description for Roadheader and other mining vehicles +#. ~ Description for Graphical Overmap More Locations #: lang/json/MOD_INFO_from_json.py -msgid "Adds a few mining vehicles, requires Vehicle Additions Pack." +msgid "More Locations mod support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Hydroponics" +msgid "Graphical Overmap Urban Development" msgstr "" -#. ~ Description for Hydroponics +#. ~ Description for Graphical Overmap Urban Development #: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds hydroponic units, a furniture which can have crops planted in it for " -"increased yields. Spawn occasionally in labs or basements. Or build your " -"own." +msgid "Urban Development mod support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py @@ -71905,41 +71220,6 @@ msgstr "" msgid "Cataclysm but with magic spells!" msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "Manuelle Bionikinstallation" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "" -"Ermöglicht KBM-Installation per Hand. Passt zusammen mit Sicherer " -"Autodoktor." - -#: lang/json/MOD_INFO_from_json.py -msgid "Medieval and Historic Classes and Shields" -msgstr "" - -#. ~ Description for Medieval and Historic Classes and Shields -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Assorted fun classes and shields for the wannabe knight, legionary, and " -"more." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Modular Turrets" -msgstr "Modulare Geschütztürme" - -#. ~ Description for Modular Turrets -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Gives turrets swappable firearm modules, which can be reclaimed from broken " -"robots." -msgstr "" -"Verleiht Geschütztürmen austauschbare Feuerwaffen-Module, die von kaputten " -"Robotern geborgen werden können." - #: lang/json/MOD_INFO_from_json.py msgid "More Locations" msgstr "Mehr Orte" @@ -71953,28 +71233,6 @@ msgstr "" "Neue Z-Ebenengebäude. Nicht ganz ausgereift. Um ungewollte Orte zu " "unterbinden, lösche Unterverzeichnisse." -#: lang/json/MOD_INFO_from_json.py -msgid "More Survival Tools" -msgstr "Mehr Überlebenswerkzeuge" - -#. ~ Description for More Survival Tools -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those who prefer being innawoods. Adds several tools, various recipes " -"additions/tweaks, plus two new professions." -msgstr "" -"Wenn du lieber im Wald lebst. Diverse Werkzeuge, Rezepte und kleine " -"Rezeptanpassungen sowie zwei neue Berufungen." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mundane Zombies" -msgstr "Normale Zombies" - -#. ~ Description for Mundane Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all special zombies from the game." -msgstr "Entfernt alle besonderen Zombies vom Spiel." - #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" msgstr "Mutanten-NPCs" @@ -71999,15 +71257,6 @@ msgid "" "sweet treats." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Mythological Replicas" -msgstr "Mythologische Replikate" - -#. ~ Description for Mythological Replicas -#: lang/json/MOD_INFO_from_json.py -msgid "Adds recipes for replicas of mythological weapons." -msgstr "Fügt Rezepte für Replikate mythologischer Waffen hinzu." - #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" msgstr "Beta-Nationalgardenlager" @@ -72021,73 +71270,6 @@ msgstr "" "Hilf beim Testen des Nationalgardenlagers, bevor es ins Hauptspiel eingebaut" " wird. Gib uns Feedback im Forums-Thread unter »The Lab«." -#: lang/json/MOD_INFO_from_json.py -msgid "No Acid Zombies" -msgstr "Keine Säurezombies" - -#. ~ Description for No Acid Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all acid-based zombies from the game." -msgstr "Entfernt alle säurebasierten Zombies aus dem Spiel." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Ants" -msgstr "Keine Ameisen" - -#. ~ Description for No Ants -#: lang/json/MOD_INFO_from_json.py -msgid "Removes ants and anthills from the game" -msgstr "Entfernt Ameisen und Ameisenhaufen aus dem Spiel" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Bees" -msgstr "Keine Bienen" - -#. ~ Description for No Bees -#: lang/json/MOD_INFO_from_json.py -msgid "Removes bees and beehives from the game" -msgstr "Entfernt Bienen und Bienenstöcke aus dem Spiel" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Big Zombies" -msgstr "Keine großen Zombies" - -#. ~ Description for No Big Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " -"game." -msgstr "" -"Entfernt die großen Zombies Schockrohling, Zombie-Hulk und Skelettmoloch aus" -" dem Spiel." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Explosive Zombies" -msgstr "Keine explosiven Zombies" - -#. ~ Description for No Explosive Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all explosion-based zombies from the game." -msgstr "Entfernt alle explosionsbasierten Zombies vom Spiel." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Filthy Clothing" -msgstr "Keine versiffte Kleidung" - -#. ~ Description for No Filthy Clothing -#: lang/json/MOD_INFO_from_json.py -msgid "Clothes dropped by zombies will be completely clean." -msgstr "Von Zombies fallen gelassene Kleidung wird komplett sauber sein. " - -#: lang/json/MOD_INFO_from_json.py -msgid "No Flaming Weapons" -msgstr "Keine Brandwaffen" - -#. ~ Description for No Flaming Weapons -#: lang/json/MOD_INFO_from_json.py -msgid "Removes flaming melee weapons." -msgstr "Entfernt Brandnahkampfwaffen." - #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" msgstr "Keine Fungusmonster" @@ -72097,24 +71279,6 @@ msgstr "Keine Fungusmonster" msgid "Removes fungal monsters and regions from the game." msgstr "Entfernt Fungusmonster und -regionen aus dem Spiel." -#: lang/json/MOD_INFO_from_json.py -msgid "No Medieval Items" -msgstr "Keine mittelalterlichen Ggnstd." - -#. ~ Description for No Medieval Items -#: lang/json/MOD_INFO_from_json.py -msgid "Removes medieval weapons, armors, and specific books." -msgstr "Entfernt mittelalterliche Waffen, Rüstungen und bestimmte Bücher." - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Mutagens" -msgstr "Mutagene deaktivieren" - -#. ~ Description for Disable Mutagens -#: lang/json/MOD_INFO_from_json.py -msgid "Removes mutagen items from the game." -msgstr "Entfernt Mutagen-Gegenstände vom Spiel." - #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" msgstr "NPC-Bedürfnisse deaktivieren" @@ -72124,15 +71288,6 @@ msgstr "NPC-Bedürfnisse deaktivieren" msgid "Makes NPCs not require food, water or rest." msgstr "NPCs benötigen weder Nahrung, Wasser noch Schlaf." -#: lang/json/MOD_INFO_from_json.py -msgid "No Antique Firearms" -msgstr "Keine antiken Feuerwaffen" - -#. ~ Description for No Antique Firearms -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all black powder and pre-Cold War firearms." -msgstr "Entfernt Schwarzpulver und alle Feuerwaffen vor dem Kalten Krieg." - #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" msgstr "" @@ -72142,42 +71297,6 @@ msgstr "" msgid "Removes above-ground rail stations from the game." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Religious Texts" -msgstr "Religiöse Texte deaktivieren" - -#. ~ Description for Disable Religious Texts -#: lang/json/MOD_INFO_from_json.py -msgid "Removes religious text items from the game." -msgstr "Entfernt Gegenstände mit religiösen Texten aus dem Spiel." - -#: lang/json/MOD_INFO_from_json.py -msgid "Prevent Zombie Revivication" -msgstr "Zombiewiederbelebung verhindern" - -#. ~ Description for Prevent Zombie Revivication -#: lang/json/MOD_INFO_from_json.py -msgid "Disables zombie revival." -msgstr "Verhindert die Wiederbelebung von Zombies." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Fictional Guns" -msgstr "Keine fiktiven Waffen" - -#. ~ Description for No Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Removes fictional conventional firearms and ammunition." -msgstr "Entfernt fiktionale gewöhnliche Feuerwaffen und Munition." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Survivor Armor" -msgstr "Keine Überlebendenkleidung" - -#. ~ Description for No Survivor Armor -#: lang/json/MOD_INFO_from_json.py -msgid "Removes survivor armor." -msgstr "Entfernt Überlebendenkleidung." - #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" msgstr "Keine Monster" @@ -72189,41 +71308,6 @@ msgid "" msgstr "" "Entfernt alle Monster vom Spiel, außer die aus der Kategorie »Wildtiere«." -#: lang/json/MOD_INFO_from_json.py -msgid "Classic Roguelike Classes" -msgstr "Klassische Roguelike-Klassen" - -#. ~ Description for Classic Roguelike Classes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a set of professions which correspond to classic Roguelike character " -"archetypes." -msgstr "Mehr Berufungen, die klassischen Rogue-ähnlichen Klassen entsprechen." - -#: lang/json/MOD_INFO_from_json.py -msgid "Salvaged Robots" -msgstr "Geborgene Roboter" - -#. ~ Description for Salvaged Robots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Expands the types of robots and allows players to jury-rig broken robots " -"into functioning companions." -msgstr "" -"Erweitert die Robotertypen und ermöglicht es Spielern, kaputte Roboter zu " -"funktionierenden Gefährten zu machen." - -#: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp -msgid "Sleep Deprivation" -msgstr "Schlafentzug" - -#. ~ Description for Sleep Deprivation -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Enables sleep deprivation mechanics independently of a player's fatigue." -msgstr "" -"Aktiviert eine Schlafentzug-Mechanik unabhängig von der Spieler-Müdigkeit." - #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Skills" msgstr "" @@ -72243,30 +71327,6 @@ msgid "" "Adds mockup items, recipes, and other content for use by automated tests." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Tanks and Other Vehicles" -msgstr "Panzer und andere Fahrzeuge" - -#. ~ Description for Tanks and Other Vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a few armored fighting vehicles and other such things, requires Vehicle" -" Additions Pack." -msgstr "" -"Fügt gepanzerte Kampffahrzeuge und Ähnliches hinzu. Benötigt Fahrzeugextras-" -"Paket." - -#: lang/json/MOD_INFO_from_json.py -msgid "Bens GF recipes" -msgstr "Bens GF-Rezepte" - -#. ~ Description for Bens GF recipes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Some simple gluten free and lactose free alternative recipe options. NOT " -"EXHAUSTIVE." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" msgstr "Städtebildung" @@ -72276,15 +71336,6 @@ msgstr "Städtebildung" msgid "Holder for suburban and urban buildings." msgstr "Enthält vorstädtische und städtische Gebäude." -#: lang/json/MOD_INFO_from_json.py -msgid "Zombie Nightvision" -msgstr "Zombienachtsicht" - -#. ~ Description for Zombie Nightvision -#: lang/json/MOD_INFO_from_json.py -msgid "Gives all zombies perfect nightvision." -msgstr "Gibt allen Zombies perfekte Nachtsicht." - #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" msgstr "Alternative Kartenlegende" @@ -72296,18 +71347,6 @@ msgid "" "and use initial letter of their names instead of ^v<>." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Vehicle Additions Pack" -msgstr "Fahrzeugextras-Paket" - -#. ~ Description for Vehicle Additions Pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Please see the included PAQ.txt in the mod folder if you encounter any " -"issues." -msgstr "" -"Siehe PAQ.txt im Modverzeichnis, falls du auf Probleme stoßen solltest." - #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" msgstr "" @@ -72352,74 +71391,6 @@ msgstr "" msgid "A testbed/WIP mod to showcase regional_map_settings JSON changes." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "EZ-Mode Medical" -msgstr "" - -#. ~ Description for EZ-Mode Medical -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Increases broken limb mending speed and the effectiveness of healing items." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Makeshift Items Mod" -msgstr "Behelfsmäßige-Dinge-Mod" - -#. ~ Description for Makeshift Items Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds more improvised item variants and rebalances existing ones." -msgstr "" -"Fügt weitere Varianten improvisierter Gegenstände hinzu und verändert die " -"Spielbalance existierender Gegenstände." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mapgen Demo" -msgstr "Kartengenerator-Demo" - -#. ~ Description for Mapgen Demo -#: lang/json/MOD_INFO_from_json.py -msgid "Demo for JSONized mapgens (megastore, missile silo)." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Classes and Scenarios Mod" -msgstr "Klassen-und-Szenarios-Mod" - -#. ~ Description for Classes and Scenarios Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds new classes and scenarios while rebalancing some existing ones." -msgstr "Neue Klassen und Szenarios, Existierende werden neu angepasst." - -#: lang/json/MOD_INFO_from_json.py -msgid "Necromancy" -msgstr "Nekromantie" - -#. ~ Description for Necromancy -#: lang/json/MOD_INFO_from_json.py -msgid "Adds the ability to revive creatures as minions." -msgstr "Fügt die Möglichkeit hinzu, Kreaturen als Untertanen wiederzubeleben." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Sci-Fi Equipment" -msgstr "Keine Sci-Fi-Ausrüstung" - -#. ~ Description for No Sci-Fi Equipment -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes far-future Sci-Fi items such as powered armor and energy weapons." -msgstr "" -"Entfernt Sci-Fi-Dinge aus ferner Zukunft und Energierüstung und -waffen." - -#: lang/json/MOD_INFO_from_json.py -msgid "Simplified Nutrition" -msgstr "Vereinfachte Ernährung" - -#. ~ Description for Simplified Nutrition -#: lang/json/MOD_INFO_from_json.py -msgid "Disables vitamin requirements." -msgstr "Deaktiviert Vitaminanforderungen." - #: lang/json/MOD_INFO_from_json.py msgid "Rural-Only Mapgen" msgstr "" @@ -72752,7 +71723,6 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'skitterbot'} -#. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py msgid "" "An insectoid robot the size of a small dog, designed for home security. " @@ -73834,8 +72804,8 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "" "Fungi bloom from the crevices in the ossified plates of this ponderous bone " -"titan, and it seems even it's eyes are lost to it. A dust of spores lands " -"on the ground with every sluggish stomp of it's heavy legs." +"titan, and it seems even its eyes are lost to it. A dust of spores lands on" +" the ground with every sluggish stomp of its heavy legs." msgstr "" #: lang/json/MONSTER_from_json.py @@ -74455,7 +73425,7 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "" "An amalgamation of throbbing organs from various creatures have fused " -"together into this lurching, vaguely humanoid shape. It's myriad roughly " +"together into this lurching, vaguely humanoid shape. Its myriad roughly " "formed mouths sussurate in a chorus of sibilant groans and whispers." msgstr "" @@ -74470,7 +73440,7 @@ msgstr[1] "" msgid "" "A seeping conglomeration of spasming muscle and organs have fused together " "into this towering caricature of the human form. Various organs fall off of" -" it's hulking body only to be reabsorbed moments later." +" its hulking body only to be reabsorbed moments later." msgstr "" #: lang/json/MONSTER_from_json.py @@ -76425,11 +75395,11 @@ msgstr "" "ausflackern, was unsagbare Ängste in den finstersten und hintersten Ecken " "deiner Gedanken erweckt." -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Schatten" +msgstr[1] "Schatten" #. ~ Description for {'str': 'shadow'} #: lang/json/MONSTER_from_json.py @@ -76786,6 +75756,23 @@ msgid "" "was limited due to a legal dispute." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from" +" solar cells embedded in its hull." +msgstr "" +"Der TX-5LR Cerberus ist eine Verbesserung seiner Vorgänger. Er hat ein " +"hochmodernes drehbares Laserkanonensystem mit drei Läufen. Er wird von in " +"seiner Hülle eingebettete Solarzellen betrieben." + #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" @@ -77311,23 +76298,6 @@ msgstr "" "Drei leistungsstarke Suchscheinwerfer mit einer automatischen Such-KI und " "Befestigung. Sie suchen beständig nach Zielen." -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from" -" solar cells embedded in its hull." -msgstr "" -"Der TX-5LR Cerberus ist eine Verbesserung seiner Vorgänger. Er hat ein " -"hochmodernes drehbares Laserkanonensystem mit drei Läufen. Er wird von in " -"seiner Hülle eingebettete Solarzellen betrieben." - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" @@ -77394,6 +76364,17 @@ msgid "" "so mobile anymore." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "eyebot" msgid_plural "eyebots" @@ -78210,38 +77191,6 @@ msgstr "" "zystenbedeckte Zombie so aus, als könnte er unter der kleinsten Störung auf " "gewaltige Weise platzen." -#: lang/json/MONSTER_from_json.py -msgid "zombie grenadier" -msgid_plural "zombie grenadiers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'zombie grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear. Its hands " -"constantly fumble at its many pouches." -msgstr "" -"Ehemals ein Soldat, aber nun ist er von Kopf bis Fuß in einer " -"Kampfausrüstung angezogen. Seine Hände fummeln die ganze Zeit in seinen " -"vielen Taschen herum." - -#: lang/json/MONSTER_from_json.py -msgid "zombie elite grenadier" -msgid_plural "zombie elite grenadiers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'zombie elite grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear and wearing a MOLLE" -" pack. Its hands quickly open and close its many pouches." -msgstr "" -"Ehemals ein Soldat, aber nun ist er von Kopf bis Fuß in einer " -"Kampfausrüstung angezogen und trägt einen MOLLE-Rucksack. Schnell öffnen und" -" schließen seine Hände seine vielen Taschen." - #: lang/json/MONSTER_from_json.py msgid "crawler" msgid_plural "crawlers" @@ -78631,6 +77580,22 @@ msgstr "" "sogar die Luft um ihr scheint unheimlicher, irgendwie düsterer und " "gefährlicher zu sein." +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears" +" and guts teem with unmatched fecundity, as its gaze inspires fear of " +"nothing less than cosmic, inhuman ecstasy." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" @@ -79226,32 +78191,116 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "headless zombie" -msgid_plural "headless zombies" +msgid "Schwarz Walder" +msgid_plural "Schwarz Walders" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Schwarz Walder'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Schwarz Walders were originally developed by a German company as forest " +"rangers for the expanded Black Forest Conservation Area. Shortly afterwards" +" it was determined that they also made excellent long range reconnaissance " +"units that could operate independently indefinitely. Pre-Cataclysm they " +"lived on every continent in a variety of jobs." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder cub" +msgid_plural "Schwarz Walder cubs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Schwarz Walder cub'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A young Schwarz Walder. If one is out here, a very protective parent is " +"likely nearby." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "infeme" +msgid_plural "infemes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'infeme'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The Infeme are uplifted from apes and other near human ancestors. The Zulu " +"word for monkey became the catch-all term for many species of uplifts " +"whether majority chimp, gorilla or baboon. They've probably formed colonies" +" hidden from the Cataclysm." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "headless zombie" +msgid_plural "headless zombies" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'headless zombie'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Despite lacking a head, this zombie appears to have not gotten the memo, and" +" shambles aimlessly around without functioning senses. Black ooze pulses " +"out of its neck, and it stumbles around listlessly." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "headless horror" +msgid_plural "headless horrors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'headless horror'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This headless zombie has swollen to frightening proportions, towering almost" +" nine feet tall. Six-foot-long feelers of black ooze blindly wave from its " +"neck, violently twitching at nearby sounds, and it moves at terrifying speed" +" with its grotesquely-swollen hands." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Haunting Forest Walker" +msgid_plural "Haunting Forest Walkers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Haunting Forest Walker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This towering zombie is covered in wounds and shedding fur. Once it may " +"have prevented forest fires in national parks, now it kills anything it " +"catches." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "rotting grodd" +msgid_plural "rotting grodds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'headless zombie'} +#. ~ Description for {'str': 'rotting grodd'} #: lang/json/MONSTER_from_json.py msgid "" -"Despite lacking a head, this zombie appears to have not gotten the memo, and" -" shambles aimlessly around without functioning senses. Black ooze pulses " -"out of its neck, and it stumbles around listlessly." +"Imagine a gorilla. Now imagine it dead and rotting and somehow looking at " +"you with more hate than you had previously imagined possible." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "headless horror" -msgid_plural "headless horrors" +msgid "Ghoulodon" +msgid_plural "Ghoulodons" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'headless horror'} +#. ~ Description for {'str': 'Ghoulodon'} #: lang/json/MONSTER_from_json.py msgid "" -"This headless zombie has swollen to frightening proportions, towering almost" -" nine feet tall. Six-foot-long feelers of black ooze blindly wave from its " -"neck, violently twitching at nearby sounds, and it moves at terrifying speed" -" with its grotesquely-swollen hands." +"An undead Uplifted Elephant of ginormous size. It still wears its assault " +"grade armor." msgstr "" #: lang/json/MONSTER_from_json.py @@ -79642,8 +78691,68 @@ msgstr[1] "" #. ~ Description for {'str': 'stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray cop" +msgid_plural "stray cops" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for stray cop +#: lang/json/MONSTER_from_json.py +msgid "" +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray soldier" +msgid_plural "stray soldiers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray soldier'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former soldier, no doubt deployed to assist with evacuations and drive off" +" the Order, dressed from head to toe in partially crystalized combat armor." +" Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray firefighter" +msgid_plural "stray firefighters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray firefighter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "hungry stray" +msgid_plural "hungry strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'hungry stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An obese former human, body studded with irregular crystal growths deforming" +" its body. It howls in mockery of hunger as it wanders, seeking new meals " +"to add to its bulk." msgstr "" #: lang/json/MONSTER_from_json.py @@ -79672,11 +78781,53 @@ msgstr[1] "" msgid "" "Little more than a moving mound of crystal and meat that occasionally spits " "up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures" -" skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling stray" +msgid_plural "crackling strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'crackling stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A hunched human form, back bristling with a hedge of buzzing blue crystals." +" Its veins visibly glow with some sort of unearthly substance." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "arcing stray" +msgid_plural "arcing strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'arcing stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than" +" capable of simply ramming its prey to deliver dangerous electric shocks." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray sprinter" +msgid_plural "stray sprinters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray sprinter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." msgstr "" #: lang/json/MONSTER_from_json.py @@ -79688,23 +78839,25 @@ msgstr[1] "" #. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with" -" tusks of polished stone and fingers tipped with crystal-fused claws." +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" +msgid "stray guardian" +msgid_plural "stray guardians" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray predator'} +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of" -" time before the very shell that protects it weighs it down to the ground." +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated" +" crystal limbs sharpened to dangerous points. It strides about the streets," +" spearing intruders to its domain like some sort of horrid spider from " +"beyond the stars." msgstr "" #: lang/json/MONSTER_from_json.py @@ -79716,38 +78869,37 @@ msgstr[1] "" #. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray titan" -msgid_plural "stray titans" +msgid "stray golem" +msgid_plural "stray golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray titan'} +#. ~ Description for {'str': 'stray golem'} #: lang/json/MONSTER_from_json.py msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its" -" own weight." +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" +msgid "stray titan" +msgid_plural "stray titans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray husk'} +#. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to" -" alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" #: lang/json/MONSTER_from_json.py @@ -79759,53 +78911,98 @@ msgstr[1] "" #. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" +msgid "stray creep" +msgid_plural "stray creeps" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray tinder'} +#. ~ Description for {'str': 'stray creep'} #: lang/json/MONSTER_from_json.py msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray creep" -msgid_plural "stray creeps" +msgid "stray wretch" +msgid_plural "stray wretches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray creep'} +#. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray wretch" -msgid_plural "stray wretches" +msgid "stray stalker" +msgid_plural "stray stalkers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} +#. ~ Description for {'str': 'stray stalker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to" +" its 'family'." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "flailing wretch" +msgid_plural "flailing wretchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'flailing wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling wretch" +msgid_plural "crackling wretchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'crackling wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray wretchmother'} #: lang/json/MONSTER_from_json.py msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet" -" at some point, but now it leaps and skitters around like something out of a" -" nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion" -" across its body." +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." msgstr "" #: lang/json/MONSTER_from_json.py @@ -79818,6 +79015,21 @@ msgstr[1] "" #. 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little" +" bit of organic matter it can find and drawing it to its base." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting +#. crystal masses'} +#: lang/json/MONSTER_from_json.py +msgid "" "A human-sized mound of shimmering blue-purple crystals growing on the base " "of what looks like a mound of foul smelling garbage and organic leftovers. " "Long, thin tendrils appear to grow out of the mound, and are subtly rooting " @@ -79884,7 +79096,7 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "" "A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." +"residual electric energy." msgstr "" #: lang/json/MONSTER_from_json.py @@ -79906,12 +79118,12 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" +msgid "crystal seed" +msgid_plural "crystal seeds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'crystal mite'} +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" "A tiny, multilegged creature that appears to be made of a chunk of crystal." @@ -79920,17 +79132,17 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'engorged crystal mite'} +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into" -" a proper crystal mass." +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." msgstr "" #. ~ Description for {'str': 'C-4 hack'} @@ -79977,11 +79189,9 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." msgstr "" -"Ein zweibeiniger Dinosaurier von der Größe eines Truthahns. Seine Zähne und " -"Klauen sind klein aber scharf." #: lang/json/MONSTER_from_json.py msgid "Gallimimus" @@ -80011,6 +79221,19 @@ msgid "" "reptilian ostrich with a round hard-looking domed head." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Camptosaurus" +msgid_plural "Camptosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" msgid_plural "Spinosaurus" @@ -80034,7 +79257,20 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." +msgid "" +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Albertosaurus" +msgid_plural "Albertosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Albertosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" msgstr "" #: lang/json/MONSTER_from_json.py @@ -80060,10 +79296,9 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." msgstr "" -"Ein großer vierbeiniger Dinosaurier mit Platten an seinem Rücken, und einem " -"stacheligem Schwanz." #: lang/json/MONSTER_from_json.py msgid "Ankylosaurus" @@ -80080,6 +79315,20 @@ msgstr "" "Dieser Dinosaurier sieht wie ein gigantisches prähistorisches Gürteltier " "aus. Sein Schwanz endet mit einem gewaltigen stacheligem Knochenknüppel." +#: lang/json/MONSTER_from_json.py +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Ceratosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Allosaurus" msgid_plural "Allosaurus" @@ -80104,11 +79353,9 @@ msgstr[1] "" #. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." +"A bipedal dinosaur about the size of a chicken. It darts around quickly and" +" has long arms for grabbing what it desires. It's holding something." msgstr "" -"Ein zweibeiniger Dinosaurier, in etwa von der Größe eines Huhns. Es stöbert " -"um das Unterholz herum, um kleine Tiere und Pflanzen zu plündern." #: lang/json/MONSTER_from_json.py msgid "Velociraptor" @@ -80140,6 +79387,19 @@ msgstr "" "Ein mittelgroßer zweibeiniger Dinosaurier, der mit Federn bedeckt ist. Am " "Ende von jedem seiner Füße ist eine große sichelähnliche Klaue." +#: lang/json/MONSTER_from_json.py +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Utahraptor" msgid_plural "Utahraptors" @@ -80191,10 +79451,10 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its " +"head." msgstr "" -"Ein mittelgroßer Dinosaurier. Aus seinen Zähnen tropft eine klebrig grüne " -"Galle." #: lang/json/MONSTER_from_json.py msgid "greenish yellow hatchling" @@ -80298,6 +79558,20 @@ msgstr[1] "" msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Z-Deinonychus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "improvised SMG turret" msgid_plural "improvised SMG turrets" @@ -80467,1924 +79741,605 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "clay golem" -msgid_plural "clay golems" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for clay golem -#: lang/json/MONSTER_from_json.py -msgid "" -"A large, humanoid golem made from clay. Its proportions are off and it " -"seems fragile." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "plastic golem" -msgid_plural "plastic golems" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'plastic golem'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Traditionally, making a golem is a months-long process involving hand tools " -"and precision craftsmanship. A stone golem is as much a work of art as it " -"is a magical device. The advent of 3D printing made it easy to get into the" -" golem-making hobby, and plastic golems have soared in popularity." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stone golem" -msgid_plural "stone golems" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for stone golem -#: lang/json/MONSTER_from_json.py -msgid "" -"A large, humanoid golem made from stone. Its fists look similar to rockets." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "iron golem" -msgid_plural "iron golems" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for iron golem -#: lang/json/MONSTER_from_json.py -msgid "" -"A large, humanoid golem made from iron. Some sort of noxious gas seems to " -"be seeping from its mouth." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lizardfolk warrior" -msgid_plural "lizardfolk warriors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lizardfolk warrior -#: lang/json/MONSTER_from_json.py -msgid "" -"A tall, powerful, reptilian humanoid with a muscular tail whose skin is " -"covered in dark gray-green scales. They are tribal and tend to be found in " -"caves and near water, especially in areas inhabited by dragons and wyrms. " -"They aren't particularly hostile, though they don't care for outsiders and " -"are highly dangerous when provoked. While they usually prefer to fight with" -" their greatclubs, they are equally ferocious with their sharp teeth and " -"claws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lizardfolk hunter" -msgid_plural "lizardfolk hunters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lizardfolk hunter -#: lang/json/MONSTER_from_json.py -msgid "" -"The hunter is a smaller lizardfolk than a warrior, but equally as deadly, " -"with their lithe figures and accurate javelin throws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "The hunter hurls a barbed javelin at you!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lizardfolk shaman" -msgid_plural "lizardfolk shamans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lizardfolk shaman -#: lang/json/MONSTER_from_json.py -msgid "" -"Lizardfolk are very intelligent and cunning, but magical ability is a rare " -"quality. Shamans are chosen from the tribe during childhood, when magical " -"abilities mark the fate of the young tribesman. Not much is known about the" -" initiation ritual they must undergo, but few survive the experience. " -"Shamans are druidic spellcasters that can use the forces of nature to battle" -" enemies, as well as summoning assistance when needed." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lizardfolk chieftan" -msgid_plural "lizardfolk chieftans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lizardfolk chieftan -#: lang/json/MONSTER_from_json.py -msgid "" -"Among the lizardfolk, ambition is a rare quality. Chieftans earn their " -"place by exhibiting unusually high levels of ambition, often mistaken by " -"outsiders as excessive, brutal violence. This chief is the largest and " -"strongest member of its tribe and carries a fierce trident to compliment its" -" teeth and claws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "crocodile" -msgid_plural "crocodiles" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for crocodile -#: lang/json/MONSTER_from_json.py -msgid "" -"A once-and-future lizardfolk shaman, this large crocodile no longer has any " -"hint of any humanoid characteristics and looks very, very dangerous." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "owlbear" -msgid_plural "owlbears" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for owlbear -#: lang/json/MONSTER_from_json.py -msgid "" -"The horrible owlbear is probably the result of genetic experimentation by " -"some insane wizard. These creatures inhabit the tangled forest regions of " -"every temperate clime, as well as subterranean labyrinths. They are " -"ravenous eaters, aggressive hunters, and evil tempered at all times. They " -"attack prey on sight and will fight to the death." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "black pudding" -msgid_plural "black puddings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for black pudding -#: lang/json/MONSTER_from_json.py -msgid "" -"Writhing, sticky, black sludge undulates across the ground. A faint " -"sizzling sound comes from the ground beneath it as it lurches toward you." -msgstr "" - -#. ~ Attack message of monster "black pudding"'s spell "None" -#: lang/json/MONSTER_from_json.py -msgid "The black pudding burns %3$s with acid!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "krabgek" -msgid_plural "krabgeks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for krabgek -#: lang/json/MONSTER_from_json.py -msgid "" -"A large baleful eye peers out from the darkness, its gleam hinting at a " -"weird intelligence and unnerving malevolence. The eye oozes some pinkish " -"liquid, and the weirdly humanoid figure is covered in sharp blue-black " -"triangular plates." -msgstr "" - -#. ~ Attack message of monster "krabgek"'s spell "None" -#: lang/json/MONSTER_from_json.py -msgid "The krabgek gazes at %3$s!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "owlbear cub" -msgid_plural "owlbear cubs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py -msgid "bulette" -msgid_plural "bulettes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for bulette -#: lang/json/MONSTER_from_json.py -msgid "" -"The bulette (or landshark) was the result of a mad wizard's experimental " -"cross breeding of a snapping turtle and armadillo with infusions of demons' " -"ichor. They range temperate climates feeding on horses, men, and most other" -" flesh. The stupid bulette is irascible and always hungry, and they fear " -"nothing." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "will-o-wisp" -msgid_plural "will-o-wisps" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for will-o-wisp -#: lang/json/MONSTER_from_json.py -msgid "" -"Will-o’-wisps can be yellow, white, green, or blue. They are easily " -"mistaken for lanterns, especially in the foggy marshes and swamps where they" -" reside." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "troll" -msgid_plural "trolls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for troll -#: lang/json/MONSTER_from_json.py -msgid "" -"Monstrous, green-skinned humanoid. Trolls are renowned for their thick " -"hides and natural regenerative ability." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stirge" -msgid_plural "stirges" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for stirge -#: lang/json/MONSTER_from_json.py -msgid "" -"This horrid flying creature looks like a cross between a large bat and " -"oversized mosquito." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "shrieker" -msgid_plural "shriekers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for shrieker -#: lang/json/MONSTER_from_json.py -msgid "" -"A shrieker is a human-sized mushroom that emits a piercing screech to drive " -"off creatures that disturb it." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lemure" -msgid_plural "lemures" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lemure -#: lang/json/MONSTER_from_json.py -msgid "" -"A lemure resembles a molten mass of flesh with a vaguely humanoid head and " -"torso." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "automated turret" -msgid_plural "automated turrets" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed defense turret" -msgid_plural "disarmed defense turrets" -msgstr[0] "entwaffneter Verteidigungsgeschützturm" -msgstr[1] "entwaffnete Verteidigungsgeschütztürme" - -#. ~ Description for disarmed defense turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-series turret, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. It requires an integrated firearm module to " -"work." -msgstr "" -"Der Geschützturm der TX-Serie von General Atomics ist ein kleiner " -"pillenförmiger automatisierter Schusswaffengeschützturm, der hochmoderne " -"ATR-Systeme benutzt, um sich dynamisch eigenständig an neue Freunde und " -"Feinde anzupassen. Er benötigt ein integriertes Schusswaffenmodul, um zu " -"funktionieren." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed military turret" -msgid_plural "disarmed military turrets" -msgstr[0] "entwaffneter Militärgeschützturm" -msgstr[1] "entwaffnete Militärgeschütztürme" - -#. ~ Description for disarmed military turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX series turret, a military-grade automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. It requires a integrated gun module to operate." -msgstr "" -"Der Geschützturm der TX-Serie von Leadworks LLC ist ein kleiner " -"pillenförmiger automatisierter Schusswaffengeschützturm, der hochmoderne " -"ATR-Systeme benutzt, um sich dynamisch eigenständig an neue Freunde und " -"Feinde anzupassen. Er benötigt ein integriertes Schusswaffenmodul, um zu " -"funktionieren." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed advanced turret" -msgid_plural "disarmed advanced turrets" -msgstr[0] "entwaffneter fortgeschrittener Geschützturm" -msgstr[1] "entwaffnete fortgeschrittene Geschütztürme" - -#. ~ Description for disarmed advanced turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-series turret, an advanced automated gun turret using state" -" of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. It requires an integrated gun module to function." -msgstr "" -"Der Geschützturm der T-Serie von DoubleTech ist ein kleiner pillenförmiger " -"automatisierter Schusswaffengeschützturm, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Er benötigt ein integriertes Schusswaffenmodul, um zu " -"funktionieren." - -#: lang/json/MONSTER_from_json.py -msgid "9mm turret" -msgid_plural "9mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 9mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-1 Guardian, a small, pill-shaped automated gun turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " -"full 360 degrees." -msgstr "" -"Der General Atomics TX-1 Guardian ist ein kleiner pillenförmiger " -"automatisierter Schusswaffengeschützturm, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Seine eingebaute 9mm-Maschinenpistole kann sich um volle 360 " -"Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "shotgun turret" -msgid_plural "shotgun turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for shotgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-4 Protector, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 12ga shotgun can swivel a " -"full 360 degrees." -msgstr "" -"Der General Atomics TX-4 Protector ist ein kleiner pillenförmiger " -"automatisierter Schusswaffengeschützturm, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Seine eingebaute 12ga-Schrotflinte kann sich um volle 360 Grad " -"drehen." - -#: lang/json/MONSTER_from_json.py -msgid "riot control turret" -msgid_plural "riot control turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1a Warden, a small, pill-shaped automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 40mm teargas launcher can swivel " -"a full 360 degrees." -msgstr "" -"Der General Atomics TZ-1a Warden ist ein kleiner pillenförmiger " -"automatisierter Schusswaffengeschützturm, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Sein eingebauter 40mm-Tränengaswerfer kann sich um volle 360 " -"Grad drehen." - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1b Pacifier, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 40mm beanbag launcher can " -"swivel a full 360 degrees." -msgstr "" -"Der General Atomics TZ-1b Pacifier ist ein kleiner pillenförmiger " -"automatisierter Schusswaffengeschützturm, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Sein eingebauter 40mm-Beanbag-Werfer kann sich um volle 360 Grad" -" drehen." - -#: lang/json/MONSTER_from_json.py -msgid "5.56mm turret" -msgid_plural "5.56mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 5.56mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32L Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " -"360 degrees." -msgstr "" -"Der TX-32L Sentry von Leadworks LLC ist ein automatisierter " -"Maschinengewehrgeschützturm der Militärklasse, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Sein eingebautes 5,56-Gewehr kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "7.62mm turret" -msgid_plural "7.62mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 7.62mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32H Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " -"360 degrees." -msgstr "" -"Der TX-32H Sentry von Leadworks LLC ist ein automatisierter " -"Maschinengewehrgeschützturm der Militärklasse, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Sein eingebautes 7,62-Gewehr kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "50cal turret" -msgid_plural "50cal turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 50cal turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-13 Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 50 caliber machinegun can " -"swivel a full 360 degrees." -msgstr "" -"Der TX-13 Sentry von Leadworks LLC ist ein automatisierter " -"Maschinengewehrgeschützturm der Militärklasse, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Sein eingebautes Kaliber-50-Maschinengewehr kann sich um volle " -"360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "8x40mm turret" -msgid_plural "8x40mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 8x40mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-01A Warden, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " -"full 360 degrees." -msgstr "" -"Der TX-01A Warden von Leadworks LLC ist ein automatisierter " -"Maschinengewehrgeschützturm der Militärklasse, der hochmoderne ATR-Systeme " -"benutzt, um sich dynamisch eigenständig an neue Freunde und Feinde " -"anzupassen. Sein eingebautes 8×40mm-Gewehr kann sich um volle 360 Grad " -"drehen." - -#: lang/json/MONSTER_from_json.py -msgid "needle turret" -msgid_plural "needle turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for needle turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TN-7 Sentry, a military-grade automated flechette turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 5mm flechette gun can swivel a " -"full 360 degrees." -msgstr "" -"Der TN-7 Sentry von Leadworks LLC ist ein automatisierter " -"Flechetgeschützturm der Militärklasse, der hochmoderne ATR-Systeme benutzt, " -"um sich dynamisch eigenständig an neue Freunde und Feinde anzupassen. Sein " -"eingebautes 5mm-Flechetgewehr kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "40mm grenade turret" -msgid_plural "40mm grenade turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 40mm grenade turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TG-7 Sentry, a military-grade automated gun turret using" -" state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated 40mm grenade launcher can swivel a full " -"360 degrees." -msgstr "" -"Der TG-7 Sentry von Leadworks LLC ist ein automatisierter " -"Flechetgeschützturm der Militärklasse, der hochmoderne ATR-Systeme benutzt, " -"um sich dynamisch eigenständig an neue Freunde und Feinde anzupassen. Sein " -"eingebauter 40mm-Granatenwerfer kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "flame turret" -msgid_plural "flame turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for flame turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TF-7 Sentry, a military-grade automated flame turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated flamethrower can swivel a full " -"360 degrees." -msgstr "" -"Der TF-7 Sentry von Leadworks LLC ist ein automatisierter " -"Flechetgeschützturm der Militärklasse, der hochmoderne ATR-Systeme benutzt, " -"um sich dynamisch eigenständig an neue Freunde und Feinde anzupassen. Sein " -"eingebauter Flammenwerfer kann sich um volle 360 Grad drehen." - -#. ~ Description for laser turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-L3 Scintillator, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated laser emitter can swivel a full 360 " -"degrees." -msgstr "" -"Der DoubleTech T-L3 Scintillator ist ein fortgeschrittener automatisierter " -"Lasergeschützturm, der hochmoderne ATR-Systeme benutzt, um sich dynamisch " -"eigenständig an neue Freunde und Feinde anzupassen. Sein eingebauter Laser-" -"Emitter kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "acid turret" -msgid_plural "acid turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for acid turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-A3 Disintegrator, an advanced automated acid turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated acid thrower can swivel a full 360 " -"degrees." -msgstr "" -"Der DoubleTech T-A3 Disintegrator ist ein fortgeschrittener automatisierter " -"Säuregeschützturm, der hochmoderne ATR-Systeme benutzt, um sich dynamisch " -"eigenständig an neue Freunde und Feinde anzupassen. Sein eingebauter " -"Säurewerfer kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "plasma turret" -msgid_plural "plasma turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for plasma turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-P3 Scathefire, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated plasma ejector can swivel a full 360 " -"degrees." -msgstr "" -"Der DoubleTech T-P3 Scathefire ist ein fortgeschrittener automatisierter " -"Lasergeschützturm, der hochmoderne ATR-Systeme benutzt, um sich dynamisch " -"eigenständig an neue Freunde und Feinde anzupassen. Sein eingebauter " -"Plasmawerfer kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "railgun turret" -msgid_plural "railgun turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for railgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-R3 Arbalest, an advanced automated railgun turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated railgun can swivel a full 360 degrees." -msgstr "" -"Der DoubleTech T-R3 Arbalest ist ein fortgeschrittener automatisierter " -"Schienengewehrgeschützturm, der hochmoderne ATR-Systeme benutzt, um sich " -"dynamisch eigenständig an neue Freunde und Feinde anzupassen. Sein " -"eingebautes Schienengewehr kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "advanced electro turret" -msgid_plural "advanced electro turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for advanced electro turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-E3 Thunderstroke, an advanced automated electro turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated electro caster can swivel a full " -"360 degrees." -msgstr "" -"Der DoubleTech T-E3 Thunderstroke: Ein fortgeschrittener Automatik-Elektro-" -"Geschützturm, der die hochmodernen ATR-Systeme, um sich dynamisch neu " -"gegenüber Freund und Feind zu orientieren, benutzt. Sein eingebauter " -"Elektrowerfer kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "EMP turret" -msgid_plural "EMP turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for EMP turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-EMP3 Corona, an advanced automated EMP turret using state " -"of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. Its electro magnetic pulse generator can swivel a full 360 " -"degrees." -msgstr "" -"Der DoubleTech T-EMP3 Corona ist ein fortgeschrittener automatisierter EMP-" -"Geschützturm, der hochmoderne ATR-Systeme benutzt, um sich dynamisch " -"eigenständig an neue Freunde und Feinde anzupassen. Sein eingebauter " -"Magnetpulsgenerator kann sich um volle 360 Grad drehen." - -#: lang/json/MONSTER_from_json.py -msgid "guardin gnome" -msgid_plural "guardin gnomes" -msgstr[0] "" -msgstr[1] "" - -#. ~ 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 "Ein normaler und völlig harmloser Gartenzwerg." - -#: lang/json/MONSTER_from_json.py -msgid "utility robot" -msgid_plural "utility robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for utility robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of utility robot formerly in use by government " -"agencies, private corporations, and civilians alike." -msgstr "" -"Eines der vielen Modelle von Hilfsrobotern, die früher von " -"Regierungsbehörden, privaten Unternehmen und Zivilisten verwendet wurden." - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and trespassers." -msgstr "" -"Ein kleiner Luftroboter, der mit einem Satz Kameras ausgestattet und mit " -"einem Blendblitz bewaffnet ist. Er ist nicht mehr mit dem Polizei- oder " -"Sicherheitsnetzwerk verbunden und setzt seine niemals endende Jagd nach " -"Kriminellen und Eindringlingen fort." - -#: lang/json/MONSTER_from_json.py -msgid "defense robot" -msgid_plural "defense robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for defense robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is armed with an electric prod and an integrated 9mm firearm." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "security robot" -msgid_plural "security robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an integrated 9mm firearm." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "riotcontrol robot" -msgid_plural "riotcontrol robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for riotcontrol robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod, tear gas sprayer, and integrated" -" 40mm beanbag launcher." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "necco" -msgid_plural "neccos" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'necco'} -#: lang/json/MONSTER_from_json.py -msgid "A giant necco wafer happily jaunting around." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow kid" -msgid_plural "marshmallow kids" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow kid'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A small humanoid made of marsmallow. It bumbles around on its stubby " -"cushioned legs. How cute!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow guy" -msgid_plural "marshmallow guys" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow guy'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A marshmallow humanoid with a smile drawn on its face. It bumbles around, " -"hollow eyes scanning its surrounding seemingly looking for something." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow buff" -msgid_plural "marshmallow buffs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow buff'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A muscular body made of marshmallow, proudly striding towards an unknown " -"goal. Yummy!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow goliath" -msgid_plural "marshmallow goliaths" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow goliath'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A gigantic marshmallow humanoid softly stompind around, frozen smile and big" -" empty eyes carefully scanning its surroundings." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow squire" -msgid_plural "marshmallow squires" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow squire'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A small humanoid made of marsmallow. It wears a plate armor made of " -"chocolate coated crakers and bumbles around on its stubby cushioned legs. " -"How cute!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow knight" -msgid_plural "marshmallow knights" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow knight'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A marshmallow humanoid in full chocolate coated crakers knight armor. It " -"bumbles around, hollow eyes scanning its surrounding seemingly looking for " -"something." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow champion" -msgid_plural "marshmallow champions" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow champion'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Standing tall in its shining armor of chocolate coated crakers this " -"marshmallow is proudly striding towards an unknown goal." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow war lord" -msgid_plural "marshmallow war lords" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow war lord'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A gigantic humanoid armored with thick plates of chocolate coated crakers. " -"A frozen smile half visible under its heavy helmet it carefully scans its " -"surroundings." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "gummy cub" -msgid_plural "gummy cubs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gummy cub'} -#: lang/json/MONSTER_from_json.py -msgid "A juvenile gummy bear. A cute bear cub made of sugary gum." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "gummy bear" -msgid_plural "gummy bears" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gummy bear'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A big bear made of fruit flavored gelatine, its smooth round shape and its " -"fruity smell make it somehow less scary than its fleshy counterpart." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "cracker kid" -msgid_plural "cracker kids" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'cracker kid'} -#: lang/json/MONSTER_from_json.py -msgid "A small cracker kid running around on its cracker legs." -msgstr "" - -#. ~ Description for {'str': 'cracker'} -#: lang/json/MONSTER_from_json.py -msgid "A full grown cracker running around on its cracker legs." -msgstr "" - -#. ~ Description for {'str': 'cookie'} -#: lang/json/MONSTER_from_json.py -msgid "A small cookie, scuriying around in search for crumbs." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "gum spider" -msgid_plural "gum spiders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gum spider'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A giant piece of gum streched in the shape of a spider. It stands very " -"still in its gum web." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "caffeinated gum spider" -msgid_plural "caffeinated gum spiders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'caffeinated gum spider'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A giant piece of gum streched in the shape of a spider. It moves quickly " -"and aggressively as if under the effect of some stimulant." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "W11B10" -msgid_plural "W11B10s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W11B10 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11B) Infantry 10 Level. Part of Wraitheon's series of one-to-one" -" auxiliaries designed to seamlessly integrate with more traditional forces." -msgstr "" -"Wraitheon (11B), Infanterie, Stufe 10. Teil der Wraitheon-Serie von " -"Hilfstruppen für den Einzelkampf. Entworfen, um sich nahtlos mit " -"traditionelleren Truppen zu integrieren." - -#: lang/json/MONSTER_from_json.py -msgid "W11B10B4" -msgid_plural "W11B10B4s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W11B10B4 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11B) Infantry 20 Level (B4) Sniper. Part of Wraitheon's series " -"of one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces. " -msgstr "" -"Wraitheon (11B), Infanterie, Stufe 20 (B4), Scharfschütze. Teil der " -"Wraitheon-Serie von Hilfstruppen für den Einzelkampf. Entworfen, um sich " -"nahtlos mit traditionelleren Truppen zu integrieren." - -#: lang/json/MONSTER_from_json.py -msgid "W12B10" -msgid_plural "W12B10s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W12B10 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (12B) Combat Engineer 10 Level. Part of Wraitheon's series of " -"one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" -"Wraitheon (12B), Pionier, Stufe 10. Teil der Wraitheon-Serie von " -"Hilfstruppen für den Einzelkampf. Entworfen, um sich nahtlos mit " -"traditionelleren Truppen zu integrieren." - -#: lang/json/MONSTER_from_json.py -msgid "W11H10" -msgid_plural "W11H10s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W11H10 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11H) Anti-Tank Infantry 10 Level. Part of Wraitheon's series of " -"one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" -"Wraitheon (11H), Panzerabwehrinfanterie, Stufe 10. Teil der Wraitheon-Serie " -"von Hilfstruppen für den Einzelkampf. Entworfen, um sich nahtlos mit " -"traditionelleren Truppen zu integrieren." - -#: lang/json/MONSTER_from_json.py -msgid "W12N10" -msgid_plural "W12N10s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W12N10 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (12N) Construction Engineer 10 Level. Part of Wraitheon's series " -"of one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" -"Wraitheon (12N), Bauingenieur, Stufe 10. Teil der Wraitheon-Serie von " -"Hilfstruppen für den Einzelkampf. Entworfen, um sich nahtlos mit " -"traditionelleren Truppen zu integrieren." - -#: lang/json/MONSTER_from_json.py -msgid "craftbuddy" -msgid_plural "craftbuddies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'craftbuddy', 'str_pl': 'craftbuddies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A mobile crafting station used by workers in mines, on oil rigs, and in " -"other remote locales. In it's active state, the craftbuddy merely follows " -"its user. In it's deactivated state, the craft buddy is useable as a " -"toolbench and multipurpose workstation." -msgstr "" -"Eine mobile Werkbank, die von Arbeitern in Bergwerken, auf Bohrinseln und an" -" anderen abgelegenen Orten verwendet wird. Im aktiven Zustand folgt der " -"Bastelfreund seinem Benutzer. Im deaktivierten Zustand kann er als Werkbank " -"und als Mehrzweckarbeitsplatz verwendet werden." - -#: lang/json/MONSTER_from_json.py -msgid "automated armor" -msgid_plural "automated armors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for automated armor -#: lang/json/MONSTER_from_json.py -msgid "" -"A suit of power armor temporarily controlled by an attached AI-core. " -"Originally intended as a way to retrieve dead or wounded operators from " -"combat, it was more commonly used for transporting the suit itself. The AI " -"is limited, and makes a poor combatant." -msgstr "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "light auto armor" -msgid_plural "light auto armors" -msgstr[0] "leichte Auto-Rüstung" -msgstr[1] "leichte Auto-Rüstungen" - -#: lang/json/MONSTER_from_json.py -msgid "auto armor" -msgid_plural "auto armors" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "heavy auto armor" -msgid_plural "heavy auto armors" -msgstr[0] "schwere Auto-Rüstung" -msgstr[1] "schwere Auto-Rüstungen" - -#: lang/json/MONSTER_from_json.py -msgid "floating lantern" -msgid_plural "floating lanterns" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating lantern -#: lang/json/MONSTER_from_json.py -msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "" -"Eine geborgene Drohne, die in eine mobile Lichtquelle umfunktioniert wurde." - -#: lang/json/MONSTER_from_json.py -msgid "distract-o-hack" -msgid_plural "distract-o-hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for distract-o-hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed into a makeshift diversion tactic. Once " -"activated it will light up, produce sound, emit sparks, and move towards " -"hostile targets. Although fragile, the distract-o-hack's erratic movements " -"make it difficult to hit." -msgstr "" -"Eine geborgene Drohne, die zu einer selbstgemachten Ablenkungstaktik " -"umfunktioniert wurde. Sobald aktiviert, wird sie aufleuchten, Krach machen, " -"Funken versprüchen und sich zu feindlichen Zielen bewegen. Obwohl die fragil" -" ist, machen es die chaotischen Bewegungen der Ablenkdrohne es schwer, sie " -"zu treffen." - -#: lang/json/MONSTER_from_json.py -msgid "arsonhack" -msgid_plural "arsonhacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for arsonhack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread flame and cause property damage. It's" -" almost as dangerous to its user as it is to the surroundings. The " -"arsonhack cannot be recovered once activated. Only a reckless madman would " -"dare to build this." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "spore hack" -msgid_plural "spore hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for spore hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread alien contaminants. It periodically " -"releases a puff of fungal spores. Who in their right mind would build such " -"a thing?" -msgstr "" -"Eine geborgene Drohne, die so umfunktioniert wurde, um außerirdische " -"Kontaminanten auszubreiten. In regelmäßigen Abständen lässt sie Fungussporen" -" los. Welcher Irrer würde nur so ein Ding bauen?" - -#: lang/json/MONSTER_from_json.py -msgid "watercannon turret" -msgid_plural "watercannon turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for watercannon turret -#: lang/json/MONSTER_from_json.py -msgid "" -"A turret equipped with a jury-rigged watercannon in place of a proper " -"firearm. It's highly ineffective but the ammo is cheap." -msgstr "" -"Ein Geschützturm, der mit einem notdürftigen Wasserwerfer anstelle einer " -"richtigen Schusswaffe ausgestattet wurde. Er ist sehr ineffektiv, aber die " -"Munition ist günstig." - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and tresspassers." -msgstr "" -"Ein kleiner Luftroboter, der mit einem Satz Kameras ausgestattet und mit " -"einem Blendblitz bewaffnet ist. Er ist nicht mehr mit dem Polizei- oder " -"Sicherheitsnetzwerk verbunden und setzt seine niemals endende Jagd nach " -"Kriminellen und Eindringlingen fort." - -#: lang/json/MONSTER_from_json.py -msgid "floating heater" -msgid_plural "floating heaters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating heater -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "floating furnace" -msgid_plural "floating furnaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating furnace -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. Warning! " -"Can result in rapid heatstroke!" -msgstr "" -"Ein geborgener Schauboter, der zu einem schwebenden Lufterhitzer umgebaut " -"wurde. Er erzeugt einen beständigen Strom aus gefährlich heißer Luft, um " -"einen geschlossenen Raum zu erhitzen. Achtung! Kann zu plötzlichem " -"Hitzschlag führen!" - -#: lang/json/MONSTER_from_json.py -msgid "burning eye" -msgid_plural "burning eyes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for burning eye -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon. The lack of recoil allows " -"the hovering robot to aim and fire without penalty. It has decent range and" -" damage, but requires an extended recharge time between shots." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "hazmat bot" -msgid_plural "hazmat bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for hazmat bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A utility robot designed for cleaning up waste material in hazardous " -"conditions." -msgstr "" -"Ein Hilfsroboter, der zur Beseitigung von Abfall in Gefahrenbereichen " -"entwickelt wurde." - -#: lang/json/MONSTER_from_json.py -msgid "butler-bot" -msgid_plural "butler-bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for butler-bot -#: lang/json/MONSTER_from_json.py -msgid "A luxury model utility robot for domestic use." -msgstr "Ein Luxus-Hilfsroboter für den häuslichen Einsatz." - -#: lang/json/MONSTER_from_json.py -msgid "construction robot" -msgid_plural "construction robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for construction robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of construction robot formerly in use by government " -"agencies and private corporations. It is equipped with an integrated " -"welder, flashlight, nailgun, and jackhammer." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "firefighter robot" -msgid_plural "firefighter robots" +msgid "goblin warrior" +msgid_plural "goblin warriors" msgstr[0] "" msgstr[1] "" -#. ~ Description for firefighter robot +#. ~ Description for {'str': 'goblin warrior'} #: lang/json/MONSTER_from_json.py msgid "" -"One of the many models of fire-fighting robot formerly in use by local fire " -"departments and emergency services. Designed for entering burning buildings" -" and other situations deemed too dangerous for human firefighters." +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "blob breeder" -msgid_plural "blob breeders" +msgid "goblin slinger" +msgid_plural "goblin slingers" msgstr[0] "" msgstr[1] "" -#. ~ Description for blob breeder +#. ~ Description for {'str': 'goblin slinger'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of living blobs. Why on Earth" -" would you build this?" +"An ugly creature that slings rocks almost as well as it slings insults." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "slime breeder" -msgid_plural "slime breeders" +msgid "goblin chieftain" +msgid_plural "goblin chieftains" msgstr[0] "" msgstr[1] "" -#. ~ Description for slime breeder +#. ~ Description for {'str': 'goblin chieftain'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of friendly blobs." +"An ugly creature that was promoted to chieftain because it figured out which" +" end of the weapon is pointy." msgstr "" -"Ein geborgener Hilfsroboter, der zu einem mobilen Brutkasten für den " -"außerirdischen Blob umgebaut wurde. Er wird in unregelmäßigen Abständen eine" -" Gruppe an lebendigen freundlich gesinnten Blobs freilassen." #: lang/json/MONSTER_from_json.py -msgid "digestron" -msgid_plural "digestrons" +msgid "clay golem" +msgid_plural "clay golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for digestron +#. ~ Description for clay golem #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. A useful helper for keeping your front lawn clean of debris…" -" or corpses." +"A large, humanoid golem made from clay. Its proportions are off and it " +"seems fragile." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "bee bot" -msgid_plural "bee bots" +msgid "plastic golem" +msgid_plural "plastic golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for bee bot +#. ~ Description for {'str': 'plastic golem'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers honey combs. It protects the insect " -"colony with a mechanical crossbow mounted to its chassis." +"Traditionally, making a golem is a months-long process involving hand tools " +"and precision craftsmanship. A stone golem is as much a work of art as it " +"is a magical device. The advent of 3D printing made it easy to get into the" +" golem-making hobby, and plastic golems have soared in popularity." msgstr "" -"Ein geborgener Hilfsroboter, der zu einem wandernden Bienenstock umgewandelt" -" wurde. In regelmäßigen Abständen entfernt er und wechselt er Honigwaben " -"aus. Er schützt die Insektenkolonie mit einer mechanischen Armbrust, die auf" -" seinem Gestell montiert wurde." #: lang/json/MONSTER_from_json.py -msgid "medical robot" -msgid_plural "medical robots" +msgid "stone golem" +msgid_plural "stone golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for medical robot +#. ~ Description for stone golem #: lang/json/MONSTER_from_json.py msgid "" -"A free roaming medical robot capable of administering powerful anesthetics " -"and performing complex surgical operations, usually in that order. Faulty " -"bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." +"A large, humanoid golem made from stone. Its fists look similar to rockets." msgstr "" -"Ein frei umherwandernder Medizinroboter, der in der Lage ist, starke " -"Anästhetika zu verabreichen und komplexe chirurgische Operationen " -"durchzuführen, üblicherweise in dieser Reihenfolge. Fehlerhafte " -"Biodiagnoseprogramme führten zu vielen Anklagen vor der Katastrophe." #: lang/json/MONSTER_from_json.py -msgid "assassination robot" -msgid_plural "assassination robots" +msgid "iron golem" +msgid_plural "iron golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for assassination robot +#. ~ Description for iron golem #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged medical robot repurposed into a murder machine. Its surgical " -"tools have been replaced with a fearsome set of blades, and its hypodermic " -"needle now delivers powerful toxins." +"A large, humanoid golem made from iron. Some sort of noxious gas seems to " +"be seeping from its mouth." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "elixirator" -msgid_plural "elixirators" +msgid "lizardfolk warrior" +msgid_plural "lizardfolk warriors" msgstr[0] "" msgstr[1] "" -#. ~ Description for elixirator +#. ~ Description for lizardfolk warrior #: lang/json/MONSTER_from_json.py msgid "" -"This doesn't work yet. Don't build it… A salvaged medibot with its internal" -" pharma-fabricators repurposed to produce mutagen." +"A tall, powerful, reptilian humanoid with a muscular tail whose skin is " +"covered in dark gray-green scales. They are tribal and tend to be found in " +"caves and near water, especially in areas inhabited by dragons and wyrms. " +"They aren't particularly hostile, though they don't care for outsiders and " +"are highly dangerous when provoked. While they usually prefer to fight with" +" their greatclubs, they are equally ferocious with their sharp teeth and " +"claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "party bot" -msgid_plural "party bots" +msgid "lizardfolk hunter" +msgid_plural "lizardfolk hunters" msgstr[0] "" msgstr[1] "" -#. ~ Description for party bot +#. ~ Description for lizardfolk hunter #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Why on Earth would you build this crazy " -"thing?" +"The hunter is a smaller lizardfolk than a warrior, but equally as deadly, " +"with their lithe figures and accurate javelin throws." msgstr "" -"Ein geborgener Medizin-Roboter, angefüllt mit Marihuana, bedeckt mit bunten " -"Blinklichtern und zum Tanzen umprogrammiert. Warum um alles in der Welt hast" -" du dir dabei gedacht, dieses Ding zu bauen?" #: lang/json/MONSTER_from_json.py -msgid "rat snatcher" -msgid_plural "rat snatchers" +msgid "The hunter hurls a barbed javelin at you!" +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "lizardfolk shaman" +msgid_plural "lizardfolk shamans" msgstr[0] "" msgstr[1] "" -#. ~ Description for rat snatcher +#. ~ Description for lizardfolk shaman #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot repurposed for hunting small game. It's faster than " -"the original model but far less sturdy." +"Lizardfolk are very intelligent and cunning, but magical ability is a rare " +"quality. Shamans are chosen from the tribe during childhood, when magical " +"abilities mark the fate of the young tribesman. Not much is known about the" +" initiation ritual they must undergo, but few survive the experience. " +"Shamans are druidic spellcasters that can use the forces of nature to battle" +" enemies, as well as summoning assistance when needed." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "grab-bot" -msgid_plural "grab-bots" +msgid "lizardfolk chieftan" +msgid_plural "lizardfolk chieftans" msgstr[0] "" msgstr[1] "" -#. ~ Description for grab-bot +#. ~ Description for lizardfolk chieftan #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " -"meant to work in a pack." +"Among the lizardfolk, ambition is a rare quality. Chieftans earn their " +"place by exhibiting unusually high levels of ambition, often mistaken by " +"outsiders as excessive, brutal violence. This chief is the largest and " +"strongest member of its tribe and carries a fierce trident to compliment its" +" teeth and claws." msgstr "" -"Ein geborgener Scheuchboter, der umfunktioniert wurde, um Gegner zu " -"ergreifen und zu immobilisieren. Er ist darauf ausgelegt, um im Rudel zu " -"agieren." #: lang/json/MONSTER_from_json.py -msgid "pest hunter" -msgid_plural "pest hunters" +msgid "crocodile" +msgid_plural "crocodiles" msgstr[0] "" msgstr[1] "" -#. ~ Description for pest hunter +#. ~ Description for crocodile #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's " -"small size precludes rapid fire, due to recoil, and requires the use of " -"lightweight caseless ammo." +"A once-and-future lizardfolk shaman, this large crocodile no longer has any " +"hint of any humanoid characteristics and looks very, very dangerous." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "insane cyborg" -msgid_plural "insane cyborgs" +msgid "owlbear" +msgid_plural "owlbears" msgstr[0] "" msgstr[1] "" -#. ~ Description for insane cyborg +#. ~ Description for owlbear #: lang/json/MONSTER_from_json.py msgid "" -"A robot body with the head of a human. All kinds of electronic wires and " -"devices are implanted in its head. This cyborg moves erratically and has a " -"confused and deranged look in its eyes." +"The horrible owlbear is probably the result of genetic experimentation by " +"some insane wizard. These creatures inhabit the tangled forest regions of " +"every temperate clime, as well as subterranean labyrinths. They are " +"ravenous eaters, aggressive hunters, and evil tempered at all times. They " +"attack prey on sight and will fight to the death." msgstr "" -"Ein Roboterkörper mit dem Kopf eines Menschen. Alle Arten von elektronischen" -" Drähten und Geräten wurden in seinem Kopf implantiert. Dieser Cyborg bewegt" -" sich ziellos umher und hat einen verwirrten und geistesgestörten Blick in " -"seinen Augen." #: lang/json/MONSTER_from_json.py -msgid "necrotic cyborg" -msgid_plural "necrotic cyborgs" +msgid "black pudding" +msgid_plural "black puddings" msgstr[0] "" msgstr[1] "" -#. ~ Description for necrotic cyborg +#. ~ Description for black pudding #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Why on Earth " -"would anyone build such an abomination?" +"Writhing, sticky, black sludge undulates across the ground. A faint " +"sizzling sound comes from the ground beneath it as it lurches toward you." msgstr "" -"Ein geborgener Cyborg, der den Kopf eine Zombiebeschwörers trägt. Er " -"lebendige Kopf ist immer noch, wenn auch abgeschwächt, in der Lage, Zombies " -"wiederzubeleben. Warum um alles in der Welt würde irgendjemand ein solches " -"Scheusal bauen?" -#. ~ Description for security robot +#. ~ Attack message of monster "black pudding"'s spell "None" #: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod and an integrated shotgun." +msgid "The black pudding burns %3$s with acid!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "military robot" -msgid_plural "military robots" +msgid "krabgek" +msgid_plural "krabgeks" msgstr[0] "" msgstr[1] "" -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5.56mm firearm." -msgstr "" -"Ein Militärroboter, der aufgrund seiner internen Energiequelle noch immer " -"aktiv ist. Dieser ist mit einem Elektroschocker und einer eingebauten 5" -",56mm-Feuerwaffe bewaffnet." - -#. ~ Description for military robot +#. ~ Description for krabgek #: lang/json/MONSTER_from_json.py msgid "" -"A military training robot still operating due to its internal power core. " -"This one is armed with a high power paintball gun and a foam baton." +"A large baleful eye peers out from the darkness, its gleam hinting at a " +"weird intelligence and unnerving malevolence. The eye oozes some pinkish " +"liquid, and the weirdly humanoid figure is covered in sharp blue-black " +"triangular plates." msgstr "" -"Ein Militärausbildungsroboter, der aufgrund seiner internen Energiequelle " -"noch immer aktiv ist. Dieser ist mit einer starken Paintball-Waffe und einem" -" Schlagstock aus Schaumstoff bewaffnet." -#. ~ Description for military robot +#. ~ Attack message of monster "krabgek"'s spell "None" #: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 7.62mm firearm." +msgid "The krabgek gazes at %3$s!" msgstr "" -"Ein Militärroboter, der aufgrund seiner internen Energiequelle noch immer " -"aktiv ist. Dieser ist mit einem Elektroschocker und einer eingebauten 7" -",62mm-Feuerwaffe bewaffnet." -#. ~ Description for military robot #: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 50 caliber firearm." -msgstr "" -"Ein Militärroboter, der aufgrund seiner internen Energiequelle noch immer " -"aktiv ist. Dieser ist mit einem Elektroschocker und einer eingebauten " -"Kaliber-50-Feuerwaffe bewaffnet." +msgid "owlbear cub" +msgid_plural "owlbear cubs" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for military robot #: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 8mm firearm." -msgstr "" -"Ein Militärroboter, der aufgrund seiner internen Energiequelle noch immer " -"aktiv ist. Dieser ist mit einem Elektroschocker und einer eingebauten 8mm-" -"Feuerwaffe bewaffnet." +msgid "bulette" +msgid_plural "bulettes" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for military robot +#. ~ Description for bulette #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5x50mm flechette gun." +"The bulette (or landshark) was the result of a mad wizard's experimental " +"cross breeding of a snapping turtle and armadillo with infusions of demons' " +"ichor. They range temperate climates feeding on horses, men, and most other" +" flesh. The stupid bulette is irascible and always hungry, and they fear " +"nothing." msgstr "" -"Ein Militärroboter, der aufgrund seiner internen Energiequelle noch immer " -"aktiv ist. Dieser ist mit einem Elektroschocker und einem eingebauten 5" -"×50mm-Flechetgewehr bewaffnet." #: lang/json/MONSTER_from_json.py -msgid "grenadier robot" -msgid_plural "grenadier robots" +msgid "will-o-wisp" +msgid_plural "will-o-wisps" msgstr[0] "" msgstr[1] "" -#. ~ Description for grenadier robot +#. ~ Description for will-o-wisp #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 40mm grenade launcher." +"Will-o’-wisps can be yellow, white, green, or blue. They are easily " +"mistaken for lanterns, especially in the foggy marshes and swamps where they" +" reside." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "military flame robot" -msgid_plural "military flame robots" +msgid "troll" +msgid_plural "trolls" msgstr[0] "" msgstr[1] "" -#. ~ Description for military flame robot +#. ~ Description for troll #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated flamethrower." +"Monstrous, green-skinned humanoid. Trolls are renowned for their thick " +"hides and natural regenerative ability." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "advanced robot" -msgid_plural "advanced robots" +msgid "stirge" +msgid_plural "stirges" msgstr[0] "" msgstr[1] "" -#. ~ Description for advanced robot +#. ~ Description for stirge #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is armed with a powerful laser-emitter." +"This horrid flying creature looks like a cross between a large bat and " +"oversized mosquito." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "laser-emitting robot" -msgid_plural "laser-emitting robots" +msgid "shrieker" +msgid_plural "shriekers" msgstr[0] "" msgstr[1] "" -#. ~ Description for laser-emitting robot +#. ~ Description for shrieker #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful laser-emitter." +"A shrieker is a human-sized mushroom that emits a piercing screech to drive " +"off creatures that disturb it." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "plasma-ejecting robot" -msgid_plural "plasma-ejecting robots" +msgid "lemure" +msgid_plural "lemures" msgstr[0] "" msgstr[1] "" -#. ~ Description for plasma-ejecting robot +#. ~ Description for lemure #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful plasma-ejector." +"A lemure resembles a molten mass of flesh with a vaguely humanoid head and " +"torso." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "railgun robot" -msgid_plural "railgun robots" +msgid "necco" +msgid_plural "neccos" msgstr[0] "" msgstr[1] "" -#. ~ Description for railgun robot +#. ~ Description for {'str': 'necco'} #: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful railgun." +msgid "A giant necco wafer happily jaunting around." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "electro-casting robot" -msgid_plural "electro-casting robots" +msgid "marshmallow kid" +msgid_plural "marshmallow kids" msgstr[0] "" msgstr[1] "" -#. ~ Description for electro-casting robot +#. ~ Description for {'str': 'marshmallow kid'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful electro-caster." +"A small humanoid made of marsmallow. It bumbles around on its stubby " +"cushioned legs. How cute!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "EMP-projecting robot" -msgid_plural "EMP-projecting robots" +msgid "marshmallow guy" +msgid_plural "marshmallow guys" msgstr[0] "" msgstr[1] "" -#. ~ Description for EMP-projecting robot +#. ~ Description for {'str': 'marshmallow guy'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful EMP-projector." +"A marshmallow humanoid with a smile drawn on its face. It bumbles around, " +"hollow eyes scanning its surrounding seemingly looking for something." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "junkyard cowboy" -msgid_plural "junkyard cowboys" +msgid "marshmallow buff" +msgid_plural "marshmallow buffs" msgstr[0] "" msgstr[1] "" -#. ~ Description for junkyard cowboy +#. ~ Description for {'str': 'marshmallow buff'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Due to bootleg targeting software, it can only attack nearby targets." +"A muscular body made of marshmallow, proudly striding towards an unknown " +"goal. Yummy!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "shortcircuit samurai" -msgid_plural "shortcircuit samurais" +msgid "marshmallow goliath" +msgid_plural "marshmallow goliaths" msgstr[0] "" msgstr[1] "" -#. ~ Description for shortcircuit samurai +#. ~ Description for {'str': 'marshmallow goliath'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with two electrified blades. The over-" -"taxed power systems result in somewhat sluggish movement and occasional " -"discharges. Keep a safe distance!" +"A gigantic marshmallow humanoid softly stompind around, frozen smile and big" +" empty eyes carefully scanning its surroundings." msgstr "" -"Ein geborgener Verteidigungsroboter, der mit zwei elektrifizierten Klingen " -"ausgestattet wurde. Die überlasteten Stromsysteme führen zu einer etwas " -"langsamen Bewegung und gelegentlichen Entladungen. Halte einen " -"Sicherheitsabstand!" #: lang/json/MONSTER_from_json.py -msgid "slapdash paladin" -msgid_plural "slapdash paladins" +msgid "marshmallow squire" +msgid_plural "marshmallow squires" msgstr[0] "" msgstr[1] "" -#. ~ Description for slapdash paladin +#. ~ Description for {'str': 'marshmallow squire'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. The burning fuel reserves make the robot noisy and " -"smokey." +"A small humanoid made of marsmallow. It wears a plate armor made of " +"chocolate coated crakers and bumbles around on its stubby cushioned legs. " +"How cute!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robo-guardian" -msgid_plural "robo-guardians" +msgid "marshmallow knight" +msgid_plural "marshmallow knights" msgstr[0] "" msgstr[1] "" -#. ~ Description for robo-guardian +#. ~ Description for {'str': 'marshmallow knight'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Multiple weapons provide a high rate of fire, but jury-rigged sensors limit " -"the effective range and accuracy. It makes for a good close range " -"bodyguard." +"A marshmallow humanoid in full chocolate coated crakers knight armor. It " +"bumbles around, hollow eyes scanning its surrounding seemingly looking for " +"something." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robote deluxe" -msgid_plural "robote deluxe" +msgid "marshmallow champion" +msgid_plural "marshmallow champions" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'robote deluxe'} +#. ~ Description for {'str': 'marshmallow champion'} #: lang/json/MONSTER_from_json.py msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style." +"Standing tall in its shining armor of chocolate coated crakers this " +"marshmallow is proudly striding towards an unknown goal." msgstr "" -"Ein diamantbespickter goldplattierter Roboter, der mit einem Paar " -"eingebauter 9mm-Feuerwaffen bewaffnet ist. Ein opulenter Luxus-Roboter, der " -"geeignet ist für diejenigen, die die Apokalypse mit Stil überleben wollen." #: lang/json/MONSTER_from_json.py -msgid "robo-protector" -msgid_plural "robo-protectors" +msgid "marshmallow war lord" +msgid_plural "marshmallow war lords" msgstr[0] "" msgstr[1] "" -#. ~ Description for robo-protector +#. ~ Description for {'str': 'marshmallow war lord'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. The " -"modified firearm is only capable of three round bursts, but range and " -"accuracy are decent. It makes for a solid combat ally." +"A gigantic humanoid armored with thick plates of chocolate coated crakers. " +"A frozen smile half visible under its heavy helmet it carefully scans its " +"surroundings." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robo-defender" -msgid_plural "robo-defenders" +msgid "gummy cub" +msgid_plural "gummy cubs" msgstr[0] "" msgstr[1] "" -#. ~ Description for robo-defender +#. ~ Description for {'str': 'gummy cub'} #: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Improved" -" optics provide nightvision and excellent range, but glitchy targeting " -"software requires an extended pause between shots. It makes for a good long" -" range sniper." +msgid "A juvenile gummy bear. A cute bear cub made of sugary gum." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "glittering lady" -msgid_plural "glittering ladies" +msgid "gummy bear" +msgid_plural "gummy bears" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'glittering lady', 'str_pl': 'glittering ladies'} +#. ~ Description for {'str': 'gummy bear'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It has two integral lasers and emits a steady pulse of blinding flashes. " -"Due to mismatched focusing lenses, the lasers have limited range." +"A big bear made of fruit flavored gelatine, its smooth round shape and its " +"fruity smell make it somehow less scary than its fleshy counterpart." msgstr "" -"Ein geborgener fortgeschrittener Roboter, der zu einer grellen Leuchte der " -"Zerstörung transformiert wurde. Er hat zwei eingebaute Laser und stößt " -"regelmäßige Blendblitze aus. Aufgrund von fehlangepassten Fokuslinsen haben " -"die Laser eine begrenzte Reichweite." #: lang/json/MONSTER_from_json.py -msgid "bitter spinster" -msgid_plural "bitter spinsters" +msgid "cracker kid" +msgid_plural "cracker kids" msgstr[0] "" msgstr[1] "" -#. ~ Description for bitter spinster +#. ~ Description for {'str': 'cracker kid'} #: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " -"pipes weaken the robot structurally, making it somewhat fragile." +msgid "A small cracker kid running around on its cracker legs." msgstr "" -"Ein geborgener Militärroboter, der zu einem ätzendem Monster transformiert " -"wurde. Ein interner Säuregärbottich bietet Munition für einen Säurespucker " -"und -sprüher. Die vielen Tanks und Rohre schwächen den Roboter strukturell " -"ab und machen ihn etwas zerbrechlich." -#. ~ Description for chicken walker +#. ~ Description for {'str': 'cracker'} #: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a " -"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade " -"launcher, 5.56 anti-personnel gun, and the ability to electrify itself " -"against attackers, it is an effective automated sentry, though production " -"was limited due to a legal dispute." +msgid "A full grown cracker running around on its cracker legs." +msgstr "" + +#. ~ Description for {'str': 'cookie'} +#: lang/json/MONSTER_from_json.py +msgid "A small cookie, scuriying around in search for crumbs." msgstr "" -"Der Northrop ATSV, ein gewaltiger, schwerbewaffneter und -gepanzerter " -"Roboter, der auf einem Paar entgegengesetzt verbundener Beine läuft. Mit " -"einem 40-mm-Fahrzeugabwehr-Granatenwerfer, einem 5.56-Antipersonengewehr und" -" der Fähigkeit, sich selbst gegen Angreifern zu elektrifizieren, ist er eine" -" effektive automatische Wache, aber die Produktion war aufgrund eines " -"Rechtstreits begrenzt." #: lang/json/MONSTER_from_json.py -msgid "chainsaw horror" -msgid_plural "chainsaw horrors" +msgid "gum spider" +msgid_plural "gum spiders" msgstr[0] "" msgstr[1] "" -#. ~ Description for chainsaw horror +#. ~ Description for {'str': 'gum spider'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"whirring chainsaws. A speaker system has been installed to blast terrifying" -" shrieks of distorted music. No one in their right mind would craft such an" -" awful creature." +"A giant piece of gum streched in the shape of a spider. It stands very " +"still in its gum web." msgstr "" -"Ein geborgener Chicken-Walker, der zu einem schrecklichen Monster " -"transformiert wurde, das mit Totenschädeln und Stacheln dekoriert ist. Seine" -" Fernwaffen wurden gegen ein Satz surrender Kettensägen ausgetauscht. Ein " -"Lautsprechersystem wurde installiert, um eine furchtbar kreischende " -"verzerrte Musik in die Welt zu plärren. Niemand, der noch ganz bei Trost " -"ist, würde eine solch furchtbare Kreatur erbauen." #: lang/json/MONSTER_from_json.py -msgid "screeching terror" -msgid_plural "screeching terrors" +msgid "caffeinated gum spider" +msgid_plural "caffeinated gum spiders" msgstr[0] "" msgstr[1] "" -#. ~ Description for screeching terror +#. ~ Description for {'str': 'caffeinated gum spider'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"piston-driven lances. A speaker system has been installed to blast " -"terrifying shrieks of distorted music. No one in their right mind would " -"craft such a hellish beast." +"A giant piece of gum streched in the shape of a spider. It moves quickly " +"and aggressively as if under the effect of some stimulant." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "hooked nightmare" -msgid_plural "hooked nightmares" +msgid "W11B10" +msgid_plural "W11B10s" msgstr[0] "" msgstr[1] "" -#. ~ Description for hooked nightmare +#. ~ Description for W11B10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"spinning chains terminating in bloody hooks. A speaker system has been " -"installed to blast terrifying shrieks of distorted music. No one in their " -"right mind would craft such a twisted abomination." +"Wraitheon (11B) Infantry 10 Level. Part of Wraitheon's series of one-to-one" +" auxiliaries designed to seamlessly integrate with more traditional forces." msgstr "" +"Wraitheon (11B), Infanterie, Stufe 10. Teil der Wraitheon-Serie von " +"Hilfstruppen für den Einzelkampf. Entworfen, um sich nahtlos mit " +"traditionelleren Truppen zu integrieren." -#. ~ Description for Beagle Mini-Tank UGV +#: lang/json/MONSTER_from_json.py +msgid "W11B10B4" +msgid_plural "W11B10B4s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for W11B10B4 #: lang/json/MONSTER_from_json.py msgid "" -"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an " -"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" -"infantry weapons, it's designed for high-risk urban fighting." +"Wraitheon (11B) Infantry 20 Level (B4) Sniper. Part of Wraitheon's series " +"of one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces. " msgstr "" -"Der Northrup Beagle ist ein kühlschrankgroßes unbemanntes Landfahrzeug für " -"den Stadtkampf. Er ist für den gefährlichen Stadtkampf ausgelegt und hat " -"eine Panzerfaust, 40mm-Granatenwerfer und zahlreiche Anti-Infanterie-Waffen." +"Wraitheon (11B), Infanterie, Stufe 20 (B4), Scharfschütze. Teil der " +"Wraitheon-Serie von Hilfstruppen für den Einzelkampf. Entworfen, um sich " +"nahtlos mit traditionelleren Truppen zu integrieren." #: lang/json/MONSTER_from_json.py -msgid "fist king" -msgid_plural "fist kings" +msgid "W12B10" +msgid_plural "W12B10s" msgstr[0] "" msgstr[1] "" -#. ~ Description for fist king +#. ~ Description for W12B10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Although lacking" -" ranged weapons, its armor and strength make it a match for the even the " -"biggest monsters. Only a madman would dare build such a reckless behemoth." +"Wraitheon (12B) Combat Engineer 10 Level. Part of Wraitheon's series of " +"one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" -"Ein geborgener Panzerroboter, der mit einem Paar starker Drucklufthämmer " -"ausgestattet ist, die er benutzt, um alles, was in seinem Weg ist, zu " -"zermalmen, inklusive Gebäude. Obwohl es ihm an Fernwaffen fehlt, sind seine " -"Panzerung und Stärke selbst den größten Monstern ebenbürtig. Nur ein " -"Verrückter würde es wagen, ein solch waghalsiges Ungeheuer zu bauen." +"Wraitheon (12B), Pionier, Stufe 10. Teil der Wraitheon-Serie von " +"Hilfstruppen für den Einzelkampf. Entworfen, um sich nahtlos mit " +"traditionelleren Truppen zu integrieren." #: lang/json/MONSTER_from_json.py -msgid "atomic sultan" -msgid_plural "atomic sultans" +msgid "W11H10" +msgid_plural "W11H10s" msgstr[0] "" msgstr[1] "" -#. ~ Description for atomic sultan +#. ~ Description for W11H10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged tankbot refitted with burning hot man-crushers. Although lacking" -" ranged weapons, its armor and strength make it a match for even the biggest" -" foes. Multiple fusion cores give the robot ample power but also cause " -"radioactive gas leaks. Only a lunatic would dare build such a reckless " -"monster." +"Wraitheon (11H) Anti-Tank Infantry 10 Level. Part of Wraitheon's series of " +"one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" -"Ein geborgener Panzerroboter, der mit feurig heißen Menschenzermalmern " -"ausgestattet wurde. Obwohl es ihm an Fernwaffen fehlt, sind seine Panzerung " -"und Stärke selbst den größten Gegnern ebenbürtig. Mehrere Fusionskerne geben" -" dem Roboter reichlich Energie, aber sie lecken und stoßen radioaktives Gas " -"aus. Nur ein Wahnsinniger würde es wagen, ein solch waghalsiges Monster zu " -"bauen." +"Wraitheon (11H), Panzerabwehrinfanterie, Stufe 10. Teil der Wraitheon-Serie " +"von Hilfstruppen für den Einzelkampf. Entworfen, um sich nahtlos mit " +"traditionelleren Truppen zu integrieren." -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gelatinous mass" -msgid_plural "gelatinous mass" +#: lang/json/MONSTER_from_json.py +msgid "W12N10" +msgid_plural "W12N10s" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'gelatinous mass'} -#. ~ Description for {'str_sp': 'gray mass'} -#. ~ Description for {'str_sp': 'gelatinous mass'} +#. ~ Description for W12N10 #: lang/json/MONSTER_from_json.py msgid "" -"An escaping noisy blob, catch it before it brings in every zombie for miles!" +"Wraitheon (12N) Construction Engineer 10 Level. Part of Wraitheon's series " +"of one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" -"Ein fliehender lautstarker Blob, fang ihn, bevor er jeden Zombie " -"kilometerweit anlockt!" +"Wraitheon (12N), Bauingenieur, Stufe 10. Teil der Wraitheon-Serie von " +"Hilfstruppen für den Einzelkampf. Entworfen, um sich nahtlos mit " +"traditionelleren Truppen zu integrieren." -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gray mass" -msgid_plural "gray mass" +#: lang/json/MONSTER_from_json.py +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper +#. mummies'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Vaguely humanoid in shape, layered in something resembling toilet paper." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "giant scorpion" msgid_plural "giant scorpions" @@ -82759,6 +80714,19 @@ msgid "" "chitin fitted to a thin mesh. You could put this on a friendly horse." msgstr "" +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "a mammal" msgstr "" @@ -82855,6 +80823,10 @@ msgstr "eine Anomalie" msgid "a human" msgstr "" +#: lang/json/SPECIES_from_json.py +msgid "an intelligent animal created by man before the Cataclysm" +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "an alien" msgstr "" @@ -83492,6 +81464,15 @@ msgstr "" msgid "Holographic Transposition" msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "psi stun" msgstr "" @@ -84579,6 +82560,56 @@ msgid "" "have this spell you probably debugged it in." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" msgid_plural "reactor core expansion devices" @@ -84637,8 +82668,8 @@ msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "light battery mod" msgid_plural "light battery mods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kleine Akku Modifikation" +msgstr[1] "Kleine Akku Modifikationen" #. ~ Description for {'str': 'light battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -84650,8 +82681,8 @@ msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "medium battery mod" msgid_plural "medium battery mods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mittlere Akku Modifikation" +msgstr[1] "Mittlere Akku Modifikationen" #. ~ Description for {'str': 'medium battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -84663,8 +82694,8 @@ msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "heavy battery mod" msgid_plural "heavy battery mods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Schwer Akku Modifikation" +msgstr[1] "Schwere Akku Modifikationen" #. ~ Description for {'str': 'heavy battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -84672,6 +82703,8 @@ msgid "" "A battery compartment mod that allows the use of heavy batteries in tools " "that otherwise could not." msgstr "" +"Eine Batteriefachmodifikation, welche es ermöglicht, schwere Akkus in " +"Werkzeugen zu benutzen, die normalerweise nicht passen würden." #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" @@ -85276,6 +83309,54 @@ msgid "" "open the cover and show the light." msgstr "" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD +#. helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets +#. (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" msgid_plural "RM13 combat armors" @@ -86804,6 +84885,35 @@ msgid_plural "Foodperson masks (on)" msgstr[0] "" msgstr[1] "" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" @@ -86962,9 +85072,9 @@ msgstr[1] "" #. ~ Description for CRIT S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into " -"your spinal cord, this device improves your overall physique and provides " -"basic information on your surroundings." +"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" +" spinal cord, this device improves your overall physique and provides basic " +"information on your surroundings." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -86976,7 +85086,7 @@ msgstr[1] "" #. ~ Use action msg for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD booting up…" +msgid "CRIT HUD booting up…" msgstr "" #. ~ Use action need_charges_msg for {'str': 'CRIT gasmask (off)', 'str_pl': @@ -86989,11 +85099,11 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line " -"electronics and lined with Kevlar for extra protection in order to keep " -"one's head where it should be. Various filters and other high tech wizardry" -" allow for enhanced oxygen intake and safety even under bombardment. It has" -" an integrated HUD and the option to turn it on for more features." +"This is a heavily modified Spec Ops modified gasmask, fitted with top-of-" +"the-line electronics and lined with Kevlar for extra protection in order to " +"keep one's head where it should be. Various filters and other high tech " +"wizardry allow for enhanced oxygen intake and safety even under bombardment." +" It has an integrated HUD and the option to turn it on for more features." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -87005,16 +85115,15 @@ msgstr[1] "" #. ~ Use action msg for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD deactivating." +msgid "CRIT HUD deactivating." msgstr "" #. ~ Description for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " -"draining power for the HUD, low-level nightvision and other protective " -"elements." +"This a heavily modified gasmask. It is currently on and draining power for " +"the HUD, low-level nightvision and other protective elements." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -87026,7 +85135,7 @@ msgstr[1] "" #. ~ Use action msg for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T EM booting up…" +msgid "CRIT EM booting up…" msgstr "" #. ~ Use action need_charges_msg for {'str': 'CRIT EM vest (off)', 'str_pl': @@ -87039,11 +85148,11 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments and reactive servos which protects its wearer and assists in " -"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec" -" Ops for its ease of use and manuverability. Turn it on for suit mode, " -"extra protection and movement." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments and" +" reactive servos which protects its wearer and assists in movement at the " +"cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its " +"ease of use and manuverability. Turn it on for suit mode, extra protection " +"and movement." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -87061,18 +85170,18 @@ msgstr "Rüstung ausschalten" #. ~ Use action msg for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T E.M powering off…" +msgid "CRIT EM powering off…" msgstr "" #. ~ Description for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments, reactive servos and a generator which pumps a crystallized liquid" -" that protects its wearer from most heavy combat situations at the cost of " -"extreme power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is" -" currently in suit form and draining your UPS power at high rates." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments, " +"reactive servos and a generator which pumps a crystallized liquid that " +"protects its wearer from most heavy combat situations at the cost of extreme" +" power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " +"currently in suit form and draining your UPS power at high rates." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -87092,8 +85201,8 @@ msgstr "Du schaltest das %s ein." #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -87113,10 +85222,9 @@ msgstr "" #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection. A tactically dim " -"flashlight is attached to the side. This light is currently on and drawing " -"power." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection. A tactically dim flashlight is " +"attached to the side. This light is currently on and drawing power." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -88350,16 +86458,14 @@ msgstr "Licht" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." +msgid "You flip the switch in the jack o'lantern." msgstr "" #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." +"face. It has a tiny LED light in it. It doesn't provide very much light." msgstr "" #: lang/json/TOOL_from_json.py @@ -88371,7 +86477,7 @@ msgstr[1] "" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." +msgid "The LED winks out inside the lantern." msgstr "" #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack @@ -88379,7 +86485,7 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is lit." +"very much light, but it can run for quite a long time. This lantern is lit." " The face shifts." msgstr "" @@ -89058,191 +87164,17 @@ msgstr "" "fest?" #: lang/json/TOOL_from_json.py -msgid "folded poncho" -msgid_plural "folded ponchos" -msgstr[0] "gefalteter Poncho" -msgstr[1] "gefaltete Ponchos" - -#. ~ Description for {'str': 'folded poncho'} -#: lang/json/TOOL_from_json.py -msgid "" -"A folded lightweight plastic rain poncho with a hood. Use it to unfold for " -"use." -msgstr "" -"Ein zusammengefalteter leichtgewichtiger Regenponcho mit einer Kapuze. " -"Benutze ihn, um ihn zu entfalten." - -#: lang/json/TOOL_from_json.py -msgid "folded emergency blanket" -msgid_plural "folded emergency blankets" -msgstr[0] "zusammengefaltete Notfalldecke" -msgstr[1] "zusammengefaltete Notfalldecken" - -#. ~ Description for {'str': 'folded emergency blanket'} -#: lang/json/TOOL_from_json.py -msgid "" -"A folded blanket made of space-age materials that covers your most important" -" body parts. Use it to unfold for use." -msgstr "" -"Eine zusammengefaltete Decke, die aus Weltraumzeitaltermaterialien gemacht " -"wurde. Sie bedeckt deine wichtigsten Körperteile. Benutze sie, um sie für " -"die weitere Verwendung zu entfalten." - -#: lang/json/TOOL_from_json.py -msgid "inactive EMP hack" -msgid_plural "inactive EMP hacks" -msgstr[0] "inaktive EMP-Drohne" -msgstr[1] "inaktive EMP-Drohnen" - -#. ~ Use action friendly_msg for {'str': 'inactive EMP hack'}. -#: lang/json/TOOL_from_json.py -msgid "The EMP hack flies from your hand and surveys the area!" -msgstr "Die EMP-Drohne fliegt aus deiner Hand und erforscht das Gebiet!" - -#. ~ Use action hostile_msg for {'str': 'inactive EMP hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the EMP hack; take cover!" -msgstr "Du fehlprogrammierst die EMP-Drohne, geh in Deckung!" - -#. ~ Description for {'str': 'inactive EMP hack'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive EMP hack. EMP hacks are fist-sized robots that fly " -"through the air. This one contains an EMP grenade and attacks by flying at " -"its target and detonating. Use this item to reprogram and release the EMP " -"hack. Electronics and computer skill determines if the targeting matrix is " -"reprogrammed successfully." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive C-4 hack" -msgid_plural "inactive C-4 hacks" -msgstr[0] "inaktive C-4-Drohne" -msgstr[1] "inaktive C-4-Drohnen" - -#. ~ Use action friendly_msg for {'str': 'inactive C-4 hack'}. -#: lang/json/TOOL_from_json.py -msgid "The C-4 hack flies from your hand and surveys the area!" -msgstr "Die C-4-Drohne fliegt aus deiner Hand und erforscht das Gebiet!" - -#. ~ Use action hostile_msg for {'str': 'inactive C-4 hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the C-4 hack; take cover!" -msgstr "Du fehlprogrammierst die C-4-Drohne, geh in Deckung!" - -#. ~ Description for {'str': 'inactive C-4 hack'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive C-4 hack. C-4 hacks are fist-sized robots that fly " -"through the air. This one contains some C-4 and attacks by flying at its " -"target and detonating. Use this item to reprogram and activate the C-4 " -"hack. Electronics and computer skill determines if the targeting matrix is " -"reprogrammed successfully." -msgstr "" -"Dies ist eine inaktive C-4-Drohne. C-4-Drohnen sind faustgroße Roboter, " -"welche durch die Luft fliegen. Diese Drohne enthält etwas C-4 und greift an," -" indem sie zum Ziel fliegt und detoniert. Benutze diesen Gegenstand, um ihn " -"umzuprogrammieren und die C-4-Drohne freizulassen. Die Fertigkeitsstufen zum" -" Thema Elekronik und Computer spielt eine Rolle dabei, ob die Zielmatrix " -"erfolgreich programmiert wird." - -#: lang/json/TOOL_from_json.py -msgid "inactive flashbang hack" -msgid_plural "inactive flashbang hacks" -msgstr[0] "inaktive Blendgranatendrohne" -msgstr[1] "inaktive Blendgranatendrohnen" - -#. ~ Use action friendly_msg for {'str': 'inactive flashbang hack'}. -#: lang/json/TOOL_from_json.py -msgid "The flashbang hack flies from your hand and surveys the area!" -msgstr "" -"Die Blendgranatendrohne fliegt aus deiner Hand und erforscht das Gebiet!" - -#. ~ Use action hostile_msg for {'str': 'inactive flashbang hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the flashbang hack; take cover!" -msgstr "Du fehlprogrammierst die Blendgranatendrohne, geh in Deckung!" - -#. ~ Description for {'str': 'inactive flashbang hack'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive flashbang hack. Flashbang hacks are fist-sized robots " -"that fly through the air. This one contains a flashbang and attacks by " -"flying at its target and detonating. Use this item to reprogram and " -"activate the flashbang hack. Electronics and computer skill determines if " -"the targeting matrix is reprogrammed successfully." -msgstr "" -"Dies ist eine inaktive Blendgranatendrohne. Blendgranatendrohnen sind " -"faustgroße Roboter, welche durch die Luft fliegen. Diese Drohne enthält eine" -" Blendgranate und greift an, indem sie zum Ziel fliegt und detoniert. " -"Benutze diesen Gegenstand, um ihn umzuprogrammieren und die " -"Blendgranatendrohne freizulassen. Die Fertigkeitsstufen zum Thema Elekronik " -"und Computer spielt eine Rolle dabei, ob die Zielmatrix erfolgreich " -"programmiert wird." - -#: lang/json/TOOL_from_json.py -msgid "inactive tear gas hack" -msgid_plural "inactive tear gas hacks" -msgstr[0] "inaktive Tränengasdrohne" -msgstr[1] "inaktive Tränengasdrohnen" - -#. ~ Use action friendly_msg for {'str': 'inactive tear gas hack'}. -#: lang/json/TOOL_from_json.py -msgid "The tear gas hack flies from your hand and surveys the area!" -msgstr "Die Tränengasdrohne fliegt aus deiner Hand und erforscht das Gebiet!" - -#. ~ Use action hostile_msg for {'str': 'inactive tear gas hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the tear gas hack; take cover!" -msgstr "Du fehlprogrammierst die Tränengasdrohne, geh in Deckung!" - -#. ~ Description for {'str': 'inactive tear gas hack'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive tear gas hack. Tear gas hacks are fist-sized robots " -"that fly through the air. This one contains a tear gas canister and attacks" -" by flying at its target and releasing tear gas. Use this item to reprogram" -" and activate the tear gas hack. Electronics and computer skill determines " -"if the targeting matrix is reprogrammed successfully." -msgstr "" -"Dies ist eine inaktive Tränengasdrohne. Tränengasdrohnen sind faustgroße " -"Roboter, welche durch die Luft fliegen. Diese Drohne enthält einen " -"Tränengaskanister und greift an, indem sie zum Ziel fliegt und detoniert. " -"Benutze diesen Gegenstand, um ihn umzuprogrammieren und die Tränengasdrohne " -"freizulassen. Die Fertigkeitsstufen zum Thema Elekronik und Computer spielen" -" eine Rolle dabei, ob die Zielmatrix erfolgreich programmiert wird." - -#: lang/json/TOOL_from_json.py -msgid "inactive grenade hack" -msgid_plural "inactive grenade hacks" -msgstr[0] "inaktiver Granatendrohne" -msgstr[1] "inaktive Granatendrohnen" - -#. ~ Use action friendly_msg for {'str': 'inactive grenade hack'}. -#: lang/json/TOOL_from_json.py -msgid "The grenade hack flies from your hand and surveys the area!" -msgstr "Die Granatendrohne fliegt aus deiner Hand und erforscht das Gebiet!" - -#. ~ Use action hostile_msg for {'str': 'inactive grenade hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the grenade hack; take cover!" -msgstr "Du fehlprogrammierst die Granatendrohne, geh in Deckung!" +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "Steuerungslaptop" +msgstr[1] "Steuerungslaptops" -#. ~ Description for {'str': 'inactive grenade hack'} +#. ~ Description for {'str': 'control laptop'} #: lang/json/TOOL_from_json.py msgid "" -"This is an inactive grenade hack. Grenade hacks are fist-sized robots that " -"fly through the air. This one contains a grenade and attacks by flying at " -"its target and detonating. Use this item to reprogram and activate the " -"grenade hack. Electronics and computer skill determines if the targeting " -"matrix is reprogrammed successfully." +"A modified laptop, now capable of transmitting in the ultra-high frequencies" +" utilized by robots. Activate it to command robots from afar." msgstr "" -"Dies ist eine inaktive Granatendrohne. Granatendrohnen sind faustgroße " -"Roboter, welche durch die Luft fliegen. Diese Drohne enthält eine Granate " -"und greift an, indem sie zum Ziel fliegt und detoniert. Benutze diesen " -"Gegenstand, um ihn umzuprogrammieren und die Granatendrohne freizulassen. " -"Die Fertigkeitsstufen zum Thema Elekronik und Computer spielen eine Rolle " -"dabei, ob die Zielmatrix erfolgreich programmiert wird." #: lang/json/TOOL_from_json.py msgid "inactive laser turret" @@ -89266,6 +87198,193 @@ msgstr "" "seinen eingebauten drehbaren Laserkanonen angeifen. Er benötigt Sonnenlicht," " um schießen zu können." +#: lang/json/TOOL_from_json.py +msgid "folded poncho" +msgid_plural "folded ponchos" +msgstr[0] "gefalteter Poncho" +msgstr[1] "gefaltete Ponchos" + +#. ~ Description for {'str': 'folded poncho'} +#: lang/json/TOOL_from_json.py +msgid "" +"A folded lightweight plastic rain poncho with a hood. Use it to unfold for " +"use." +msgstr "" +"Ein zusammengefalteter leichtgewichtiger Regenponcho mit einer Kapuze. " +"Benutze ihn, um ihn zu entfalten." + +#: lang/json/TOOL_from_json.py +msgid "folded emergency blanket" +msgid_plural "folded emergency blankets" +msgstr[0] "zusammengefaltete Notfalldecke" +msgstr[1] "zusammengefaltete Notfalldecken" + +#. ~ Description for {'str': 'folded emergency blanket'} +#: lang/json/TOOL_from_json.py +msgid "" +"A folded blanket made of space-age materials that covers your most important" +" body parts. Use it to unfold for use." +msgstr "" +"Eine zusammengefaltete Decke, die aus Weltraumzeitaltermaterialien gemacht " +"wurde. Sie bedeckt deine wichtigsten Körperteile. Benutze sie, um sie für " +"die weitere Verwendung zu entfalten." + +#: lang/json/TOOL_from_json.py +msgid "inactive EMP hack" +msgid_plural "inactive EMP hacks" +msgstr[0] "inaktive EMP-Drohne" +msgstr[1] "inaktive EMP-Drohnen" + +#. ~ Use action friendly_msg for {'str': 'inactive EMP hack'}. +#: lang/json/TOOL_from_json.py +msgid "The EMP hack flies from your hand and surveys the area!" +msgstr "Die EMP-Drohne fliegt aus deiner Hand und erforscht das Gebiet!" + +#. ~ Use action hostile_msg for {'str': 'inactive EMP hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the EMP hack; take cover!" +msgstr "Du fehlprogrammierst die EMP-Drohne, geh in Deckung!" + +#. ~ Description for {'str': 'inactive EMP hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive EMP hack. EMP hacks are fist-sized robots that fly " +"through the air. This one contains an EMP grenade and attacks by flying at " +"its target and detonating. Use this item to reprogram and release the EMP " +"hack. Electronics and computer skill determines if the targeting matrix is " +"reprogrammed successfully." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "inactive C-4 hack" +msgid_plural "inactive C-4 hacks" +msgstr[0] "inaktive C-4-Drohne" +msgstr[1] "inaktive C-4-Drohnen" + +#. ~ Use action friendly_msg for {'str': 'inactive C-4 hack'}. +#: lang/json/TOOL_from_json.py +msgid "The C-4 hack flies from your hand and surveys the area!" +msgstr "Die C-4-Drohne fliegt aus deiner Hand und erforscht das Gebiet!" + +#. ~ Use action hostile_msg for {'str': 'inactive C-4 hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the C-4 hack; take cover!" +msgstr "Du fehlprogrammierst die C-4-Drohne, geh in Deckung!" + +#. ~ Description for {'str': 'inactive C-4 hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive C-4 hack. C-4 hacks are fist-sized robots that fly " +"through the air. This one contains some C-4 and attacks by flying at its " +"target and detonating. Use this item to reprogram and activate the C-4 " +"hack. Electronics and computer skill determines if the targeting matrix is " +"reprogrammed successfully." +msgstr "" +"Dies ist eine inaktive C-4-Drohne. C-4-Drohnen sind faustgroße Roboter, " +"welche durch die Luft fliegen. Diese Drohne enthält etwas C-4 und greift an," +" indem sie zum Ziel fliegt und detoniert. Benutze diesen Gegenstand, um ihn " +"umzuprogrammieren und die C-4-Drohne freizulassen. Die Fertigkeitsstufen zum" +" Thema Elekronik und Computer spielt eine Rolle dabei, ob die Zielmatrix " +"erfolgreich programmiert wird." + +#: lang/json/TOOL_from_json.py +msgid "inactive flashbang hack" +msgid_plural "inactive flashbang hacks" +msgstr[0] "inaktive Blendgranatendrohne" +msgstr[1] "inaktive Blendgranatendrohnen" + +#. ~ Use action friendly_msg for {'str': 'inactive flashbang hack'}. +#: lang/json/TOOL_from_json.py +msgid "The flashbang hack flies from your hand and surveys the area!" +msgstr "" +"Die Blendgranatendrohne fliegt aus deiner Hand und erforscht das Gebiet!" + +#. ~ Use action hostile_msg for {'str': 'inactive flashbang hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the flashbang hack; take cover!" +msgstr "Du fehlprogrammierst die Blendgranatendrohne, geh in Deckung!" + +#. ~ Description for {'str': 'inactive flashbang hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive flashbang hack. Flashbang hacks are fist-sized robots " +"that fly through the air. This one contains a flashbang and attacks by " +"flying at its target and detonating. Use this item to reprogram and " +"activate the flashbang hack. Electronics and computer skill determines if " +"the targeting matrix is reprogrammed successfully." +msgstr "" +"Dies ist eine inaktive Blendgranatendrohne. Blendgranatendrohnen sind " +"faustgroße Roboter, welche durch die Luft fliegen. Diese Drohne enthält eine" +" Blendgranate und greift an, indem sie zum Ziel fliegt und detoniert. " +"Benutze diesen Gegenstand, um ihn umzuprogrammieren und die " +"Blendgranatendrohne freizulassen. Die Fertigkeitsstufen zum Thema Elekronik " +"und Computer spielt eine Rolle dabei, ob die Zielmatrix erfolgreich " +"programmiert wird." + +#: lang/json/TOOL_from_json.py +msgid "inactive tear gas hack" +msgid_plural "inactive tear gas hacks" +msgstr[0] "inaktive Tränengasdrohne" +msgstr[1] "inaktive Tränengasdrohnen" + +#. ~ Use action friendly_msg for {'str': 'inactive tear gas hack'}. +#: lang/json/TOOL_from_json.py +msgid "The tear gas hack flies from your hand and surveys the area!" +msgstr "Die Tränengasdrohne fliegt aus deiner Hand und erforscht das Gebiet!" + +#. ~ Use action hostile_msg for {'str': 'inactive tear gas hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the tear gas hack; take cover!" +msgstr "Du fehlprogrammierst die Tränengasdrohne, geh in Deckung!" + +#. ~ Description for {'str': 'inactive tear gas hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive tear gas hack. Tear gas hacks are fist-sized robots " +"that fly through the air. This one contains a tear gas canister and attacks" +" by flying at its target and releasing tear gas. Use this item to reprogram" +" and activate the tear gas hack. Electronics and computer skill determines " +"if the targeting matrix is reprogrammed successfully." +msgstr "" +"Dies ist eine inaktive Tränengasdrohne. Tränengasdrohnen sind faustgroße " +"Roboter, welche durch die Luft fliegen. Diese Drohne enthält einen " +"Tränengaskanister und greift an, indem sie zum Ziel fliegt und detoniert. " +"Benutze diesen Gegenstand, um ihn umzuprogrammieren und die Tränengasdrohne " +"freizulassen. Die Fertigkeitsstufen zum Thema Elekronik und Computer spielen" +" eine Rolle dabei, ob die Zielmatrix erfolgreich programmiert wird." + +#: lang/json/TOOL_from_json.py +msgid "inactive grenade hack" +msgid_plural "inactive grenade hacks" +msgstr[0] "inaktiver Granatendrohne" +msgstr[1] "inaktive Granatendrohnen" + +#. ~ Use action friendly_msg for {'str': 'inactive grenade hack'}. +#: lang/json/TOOL_from_json.py +msgid "The grenade hack flies from your hand and surveys the area!" +msgstr "Die Granatendrohne fliegt aus deiner Hand und erforscht das Gebiet!" + +#. ~ Use action hostile_msg for {'str': 'inactive grenade hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the grenade hack; take cover!" +msgstr "Du fehlprogrammierst die Granatendrohne, geh in Deckung!" + +#. ~ Description for {'str': 'inactive grenade hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive grenade hack. Grenade hacks are fist-sized robots that " +"fly through the air. This one contains a grenade and attacks by flying at " +"its target and detonating. Use this item to reprogram and activate the " +"grenade hack. Electronics and computer skill determines if the targeting " +"matrix is reprogrammed successfully." +msgstr "" +"Dies ist eine inaktive Granatendrohne. Granatendrohnen sind faustgroße " +"Roboter, welche durch die Luft fliegen. Diese Drohne enthält eine Granate " +"und greift an, indem sie zum Ziel fliegt und detoniert. Benutze diesen " +"Gegenstand, um ihn umzuprogrammieren und die Granatendrohne freizulassen. " +"Die Fertigkeitsstufen zum Thema Elekronik und Computer spielen eine Rolle " +"dabei, ob die Zielmatrix erfolgreich programmiert wird." + #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" @@ -89301,7 +87420,6 @@ msgid "You misprogram the manhack; it's hostile!" msgstr "Du fehlprogrammierst die Klingendrohne; sie ist feindlich!" #. ~ Description for {'str': 'inactive manhack'} -#. ~ Description for inactive hack #: lang/json/TOOL_from_json.py msgid "" "This is an inactive manhack. Manhacks are fist-sized robots that fly " @@ -89840,6 +87958,26 @@ msgid "" "distraction." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "" + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing" +" it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "clothes hanger" msgid_plural "clothes hangers" @@ -90470,8 +88608,8 @@ msgstr[1] "" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end" -" and sharpened into a cutting tool. Its jagged edge is wicked but fragile." +"A femur or other bone, about 20 cm long, which has been broken at one end " +"and sharpened into a cutting tool. Its jagged edge is wicked but fragile." msgstr "" #: lang/json/TOOL_from_json.py @@ -91184,11 +89322,37 @@ msgid "" msgstr "" #: lang/json/TOOL_from_json.py -msgid "butchering kit" -msgid_plural "butchering kits" +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" msgstr[0] "" msgstr[1] "" +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "butchering kit" +msgid_plural "butchering kits" +msgstr[0] "Schlachter-Ausrüstung" +msgstr[1] "Schlachter-Ausrüstung" + #. ~ Description for {'str': 'butchering kit'} #: lang/json/TOOL_from_json.py msgid "" @@ -91479,8 +89643,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "mortar and pestle" msgid_plural "mortars and pestles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mörser und Stößel" +msgstr[1] "Mörser und Stößel" #. ~ Description for {'str': 'mortar and pestle', 'str_pl': 'mortars and #. pestles'} @@ -91663,13 +89827,11 @@ msgid_plural "fire barrels (200L)" msgstr[0] "" msgstr[1] "" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels #. (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels #. (100L)'} -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +#: lang/json/TOOL_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -91895,8 +90057,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "professional camera" msgid_plural "professional cameras" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Professionelle Kamera" +msgstr[1] "Professionelle Kameras" #. ~ Description for {'str': 'professional camera'} #: lang/json/TOOL_from_json.py @@ -91955,19 +90117,6 @@ msgstr[1] "Handys - Taschenlampe" msgid "You stop lighting up the screen." msgstr "Du verwendest den Bildschirm nicht länger als Quelle für Licht." -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "Steuerungslaptop" -msgstr[1] "Steuerungslaptops" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies" -" utilized by robots. Activate it to command robots from afar." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" @@ -92017,7 +90166,6 @@ msgstr[0] "Elektrohack" msgstr[1] "Elektrohacks" #. ~ Description for {'str': 'electrohack'} -#. ~ Description for electrohack #: lang/json/TOOL_from_json.py msgid "" "This device has many ports attached, allowing it to connect to almost any " @@ -92189,11 +90337,13 @@ msgstr[1] "Smartphones" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "Du aktivierst das Taschenlampen-Programm." #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "Das Smartphone ist nicht ausreichend geladen." @@ -92363,11 +90513,8 @@ msgstr[1] "Schlosser-Sets" msgid "" "This is a locksmith's set of sturdy steel lock picks and torsion wrenches. " "It is essential for silently and quickly opening locks, provided you have " -"some mechanical skill." +"some lock picking and mechanical skills." msgstr "" -"Dies ist ein Satz von stabilen Stahldietrichen und Spannern eines " -"Schlossers. Er ist essentiell, um leise und schnell Schlösser zu offen, " -"vorausgesetzt, dass du ein bisschen Erfahrung in Mechanik hast." #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -92873,7 +91020,6 @@ msgstr[0] "aktive EMP-Granate" msgstr[1] "aktive EMP-Granaten" #. ~ Description for {'str': 'active EMP grenade'} -#. ~ Description for active EMP grenade #: lang/json/TOOL_from_json.py msgid "" "This EMP grenade is active, and will shortly detonate, creating a large EMP " @@ -95297,21 +93443,6 @@ msgstr "" "Die ist eine Autohupe, die dazu gedacht ist, an das elektrische System eines" " Autos angebracht zu werden." -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "Kevlarplatte" -msgstr[1] "Kevlarplatten" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made" -" of Kevlar." -msgstr "" -"Dies ist eine Platte aus Kevlar. Sie könnte benutzt werden, um Gegenstände " -"aus Kevlar zu reparieren." - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" @@ -95650,6 +93781,19 @@ msgstr "" "Obwohl er an sich ziemlich groß ist, wiegt er fast nichts. Luft scheint sich" " um ihn zu sammeln." +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" @@ -95801,8 +93945,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "shears" msgid_plural "shears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Schurschere" +msgstr[1] "Schurscheren" #. ~ Description for {'str_sp': 'shears'} #: lang/json/TOOL_from_json.py @@ -95812,8 +93956,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "electric shears" msgid_plural "electric shears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Elektrische Schurschere" +msgstr[1] "Elektrische Schurscheren" #. ~ Description for {'str_sp': 'electric shears'} #: lang/json/TOOL_from_json.py @@ -95837,7 +93981,7 @@ msgstr "" msgid "pet carrier" msgid_plural "pet carriers" msgstr[0] " Transportbox" -msgstr[1] " Transportbox" +msgstr[1] "Transportbox" #. ~ Description for {'str': 'pet carrier'} #: lang/json/TOOL_from_json.py @@ -95999,8 +94143,8 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "birchbark funnel" msgid_plural "birchbark funnels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Birkenrinden-Trichter" +msgstr[1] "Birkenrinden-Trichter" #. ~ Use action done_message for {'str': 'birchbark funnel'}. #: lang/json/TOOL_from_json.py @@ -97325,8 +95469,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "washing kit" msgid_plural "washing kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Waschwerkzeugset" +msgstr[1] "Waschwerkzeugsets" #. ~ Description for {'str': 'washing kit'} #: lang/json/TOOL_from_json.py @@ -97742,8 +95886,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "stone hand axe" msgid_plural "stone hand axes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Steinerne Handaxt" +msgstr[1] "Steinerne Handäxte" #. ~ Description for {'str': 'stone hand axe'} #: lang/json/TOOL_from_json.py @@ -97755,8 +95899,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "metal hand axe" msgid_plural "metal hand axes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Metallene Handaxt" +msgstr[1] "Metallene Handäxte" #. ~ Description for {'str': 'metal hand axe'} #: lang/json/TOOL_from_json.py @@ -97901,8 +96045,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "clamp" msgid_plural "clamps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Klemme" +msgstr[1] "Klemmen" #. ~ Description for {'str': 'clamp'} #: lang/json/TOOL_from_json.py @@ -98168,8 +96312,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "misc repair kit" msgid_plural "misc repair kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Verschiedene Reperatursätze" +msgstr[1] "Verschiedene Reperatursätze" #. ~ Description for {'str': 'misc repair kit'} #: lang/json/TOOL_from_json.py @@ -98421,8 +96565,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "extended toolset" msgid_plural "extended toolsets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Erweitertes Werkzeugset" +msgstr[1] "Erweiterte Werkzeugsets" #. ~ Description for {'str': 'extended toolset'} #: lang/json/TOOL_from_json.py @@ -98543,8 +96687,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "makeshift hand drill" msgid_plural "makeshift hand drills" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Selbstgebauter Handbohrer" +msgstr[1] "Selbstgebaute Handbohrer" #. ~ Description for {'str': 'makeshift hand drill'} #: lang/json/TOOL_from_json.py @@ -99115,11 +97259,10 @@ msgstr[1] "" #. knives'} #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked" -" pry bar at the bottom for opening simple things and bashing in heads. " -"Matte black finish helps it avoid flash in dim-light situations and tanto " -"tip allows for light-armor penetration. Blade length allows for decent " -"reach." +"A modified trench knife. Has a knuckleduster guard and a small, hooked pry " +"bar at the bottom. The matte black finish helps it avoid flash in dim-light " +"situations and tanto tip allows for light-armor penetration. Blade length " +"allows for decent reach." msgstr "" #: lang/json/TOOL_from_json.py @@ -99145,9 +97288,9 @@ msgstr[1] "" #. ~ Description for CRIT Reso-blade #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " -"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " -"thrums from within." +"CRIT melee weapon. Alien runes adorn the carbon steel blade. The blade " +"oddly seems to lack sharpness, and yet upon closer oberservation, a hum of " +"energy thrums from within." msgstr "" #: lang/json/TOOL_from_json.py @@ -100174,1245 +98317,6 @@ msgid "" "magical metals into their workable ingot form." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "Dusk" -msgid_plural "Dusks" -msgstr[0] "Dusk" -msgstr[1] "Dusks" - -#. ~ Description for Dusk -#: lang/json/TOOL_from_json.py -msgid "" -"A longsword, made out of a very dark, almost black metal. It seems to hold " -"a greater edge than usual steel blades and feels …more comfortable in the " -"hand. While the blade is made out of this dark metal, the crossguard and " -"the pommel seem to be made out of a brighter material, which feels " -"abnormally cool to the touch." -msgstr "" - -#. ~ Description for disarmed defense turret -#: lang/json/TOOL_from_json.py -msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "Ein automatisierter Verteidigungsgeschützturm ohne integrierte Waffe." - -#. ~ Description for disarmed military turret -#: lang/json/TOOL_from_json.py -msgid "An automated military turret. It lacks an integrated weapon." -msgstr "Ein automatisierter Militärgeschützturm ohne integrierte Waffe." - -#. ~ Description for disarmed advanced turret -#: lang/json/TOOL_from_json.py -msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "" -"Ein fortschrittlicher automatisierter Geschützturm ohne integrierte Waffe." - -#: lang/json/TOOL_from_json.py -msgid "inactive 9mm defense turret" -msgid_plural "inactive 9mm defense turrets" -msgstr[0] "inaktiver 9mm-Verteidigungsgeschützturm" -msgstr[1] "inaktive 9mm-Verteidigungsgeschütztürme" - -#. ~ Description for inactive 9mm defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 9mm defense turret. Up to 100 standard 9mm rounds will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Ein inaktiver 9mm-Verteidigungsgeschützturm. Bis zu 100 Standard-9mm-" -"Patronen werden automatisch aus deinem Inventar in den Geschützturm geladen," -" wenn er aktiviert wird. Platziere den Geschützturm und er wird dich als " -"Freund mit seiner fortgeschrittenen Freund-Feind-Erkennungs-Software " -"erkennen. Lies das Sicherheitshandbuch im Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive shotgun defense turret" -msgid_plural "inactive shotgun defense turrets" -msgstr[0] "inaktiver Flinten-Verteidigungsgeschützturm" -msgstr[1] "inaktive Flinten-Verteidigungsgeschütztürme" - -#. ~ Description for inactive shotgun defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive shotgun defense turret. Up to 100 standard 12ga shells will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Ein inaktiver Schrotflinten-Verteidigungsgeschützturm. Bis zu 100 Standard-" -"12ga-Patronen werden automatisch aus deinem Inventar in den Geschützturm " -"geladen, wenn er aktiviert wird. Platziere den Geschützturm und er wird dich" -" als Freund mit seiner fortgeschrittenen Freund-Feind-Erkennungs-Software " -"erkennen. Lies das Sicherheitshandbuch im Falle einer Fehlfunktion." - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riotcontrol turret. Up to 50 standard 40mm less-than-lethal " -"beanbag canisters will be automatically loaded from your inventory into the " -"turret upon activation. Place the turret and it will ID you as friendly " -"with its advanced IFF software. Consult your safety manual in the event of " -"a malfunction." -msgstr "" -"Ein inaktiver Anti-Krawall-Geschützturm. Bis zu 50 standardmäßige weniger " -"tödliche 40mm-Beanbag-Kanister werden automatisch aus deinem Inventar in den" -" Geschützturm geladen, wenn er aktiviert wird. Platziere den Geschützturm " -"und er wird dich als Freund mit seiner fortgeschrittenen Freund-Feind-" -"Erkennungs-Software erkennen. Lies das Sicherheitshandbuch im Falle einer " -"Fehlfunktion." - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riot control turret. Up to 50 standard 40mm teargas canisters " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Ein inaktiver Anti-Krawall-Geschützturm. Bis zu 50 standardmäßige 40mm-" -"Tränengaskanister werden automatisch aus deinem Inventar in den Geschützturm" -" geladen, wenn er aktiviert wird. Platziere den Geschützturm und er wird " -"dich als Freund mit seiner fortgeschrittenen Freund-Feind-Erkennungs-" -"Software erkennen. Lies das Sicherheitshandbuch im Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive 5.56mm military turret" -msgid_plural "inactive 5.56mm military turrets" -msgstr[0] "inaktiver 5.56mm-Militärgeschützturm" -msgstr[1] "inaktive 5.56mm-Militärgeschütztürme" - -#. ~ Description for inactive 5.56mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 5.56mm military turret. Up to 100 standard 5.56mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Ein inaktiver 5,56mm-Militärgeschützturm. Bis zu 100 Standard-5,56mm-NATO-" -"Patronen werden automatisch aus deinem Inventar in den Geschützturm geladen," -" wenn er aktiviert wird. Platziere den Geschützturm und er wird dich als " -"Freund mit seiner fortgeschrittenen Freund-Feind-Erkennungs-Software " -"erkennen. Lies das Sicherheitshandbuch im Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive 7.62mm military turret" -msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "inaktive 7.62mm-Militärgeschützturm" -msgstr[1] "inaktive 7.62mm-Militärgeschütztürme" - -#. ~ Description for inactive 7.62mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 7.62mm military turret. Up to 100 standard 7.62mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Ein inaktiver 7,62mm-Militärgeschützturm. Bis zu 100 Standard-7,62mm-NATO-" -"Patronen werden automatisch aus deinem Inventar in den Geschützturm geladen," -" wenn er aktiviert wird. Platziere den Geschützturm und er wird dich als " -"Freund mit seiner fortgeschrittenen Freund-Feind-Erkennungs-Software " -"erkennen. Lies das Sicherheitshandbuch im Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive 50 caliber military turret" -msgid_plural "inactive 50 caliber military turrets" -msgstr[0] "inaktiver Kaliber-.50-Militärgeschützturm" -msgstr[1] "inaktive Kaliber-.50-Militärgeschütztürme" - -#. ~ Description for inactive 50 caliber military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 50 caliber military turret. Up to 100 standard 50 caliber bmg " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Ein inaktiver Kaliber-50-Militärgeschützturm. Bis zu 100 Standard-Kaliber-50" -"-bmg-Patronen werden automatisch aus deinem Inventar in den Geschützturm " -"geladen, wenn er aktiviert wird. Platziere den Geschützturm und er wird dich" -" als Freund mit seiner fortgeschrittenen Freund-Feind-Erkennungs-Software " -"erkennen. Lies das Sicherheitshandbuch im Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive military needle turret" -msgid_plural "inactive military needle turrets" -msgstr[0] "inaktiver Militärnadelgeschützturm" -msgstr[1] "inaktive Militärnadelgeschütztürme" - -#. ~ Description for inactive military needle turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced needle turret. Up to 100 standard 5x50mm flechette " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Ein inaktiver fortgeschrittener Nadelgeschützturm. Bis zu 100 Standard-5" -"×50mm-Flechetpatronen werden automatisch aus deinem Inventar in den " -"Geschützturm geladen, wenn er aktiviert wird. Platziere den Geschützturm und" -" er wird dich als Freund mit seiner fortgeschrittenen Freund-Feind-" -"Erkennungs-Software erkennen. Lies das Sicherheitshandbuch im Falle einer " -"Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 8x40mm turret" -msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "inaktiver militärischer 8x40mm-Geschützturm" -msgstr[1] "inaktive militärische 8x40mm-Geschütztürme" - -#. ~ Description for inactive military 8x40mm turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced 8x40mm turret. Up to 100 standard 8x40mm caseless " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Ein inaktiver fortgeschrittener 8×40mm-Geschützturm. Bis zu 100 Standard-8" -"×40mm-Patronen werden automatisch aus deinem Inventar in den Geschützturm " -"geladen, wenn er aktiviert wird. Platziere den Geschützturm und er wird dich" -" als Freund mit seiner fortgeschrittenen Freund-Feind-Erkennungs-Software " -"erkennen. Lies das Sicherheitshandbuch im Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 40mm grenade turret" -msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "inaktiver militärischer 40mm-Granaten-Geschützturm" -msgstr[1] "inaktive militärische 40mm-Granaten-Geschütztürme" - -#. ~ Description for inactive military 40mm grenade turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive military grenade turret. Up to 50 standard 40mm fragmentation " -"grenades will be automatically loaded from your inventory into the turret " -"upon activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military flamethrower turret" -msgid_plural "inactive military flamethrower turrets" -msgstr[0] "inaktiver militärischer Flammenwerfer-Geschützturm" -msgstr[1] "inaktive militärische Flammenwerfer-Geschütztürme" - -#. ~ Description for inactive military flamethrower turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive flame turret. Up to 100 units of napalm will be automatically " -"loaded from your inventory into the turret upon activation. Place the " -"turret and it will ID you as friendly with its advanced IFF software. " -"Consult your safety manual in the event of a malfunction." -msgstr "" -"Ein inaktiver Flammengeschützturm. Bis zu 100 Einheiten Napalm werden " -"automatisch aus deinem Inventar in den Geschützturm geladen, wenn er " -"aktiviert wird. Platziere den Geschützturm und er wird dich als Freund mit " -"seiner fortgeschrittenen Freund-Feind-Erkennungs-Software erkennen. Lies das" -" Sicherheitshandbuch im Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced laser turret" -msgid_plural "inactive advanced laser turrets" -msgstr[0] "inaktiver fortschrittlicher Lasergeschützturm" -msgstr[1] "inaktive fortschrittliche Lasergeschütztürme" - -#. ~ Description for inactive advanced laser turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced laser turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Ein inaktiver fortgeschrittener Lasergeschützturm. Platziere den " -"Geschützturm und er wird dich als Freund mit seiner fortgeschrittenen " -"Freund-Feind-Erkennungs-Software erkennen. Lies das Sicherheitshandbuch im " -"Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced plasma turret" -msgid_plural "inactive advanced plasma turrets" -msgstr[0] "inaktiver fortschrittlicher Plasma-Geschützturm" -msgstr[1] "inaktive fortschrittliche Plasma-Geschütztürme" - -#. ~ Description for inactive advanced plasma turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced plasma turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Ein inaktiver fortgeschrittener Plasmageschützturm. Platziere den " -"Geschützturm und er wird dich als Freund mit seiner fortgeschrittenen " -"Freund-Feind-Erkennungs-Software erkennen. Lies das Sicherheitshandbuch im " -"Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced railgun turret" -msgid_plural "inactive advanced railgun turrets" -msgstr[0] "inaktiver fortgeschrittener Schienengewehrgeschützturm" -msgstr[1] "inaktive fortgeschrittene Schienengewehrgeschütztürme" - -#. ~ Description for inactive advanced railgun turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced railgun turret. Up to 50 standard rail projectiles " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced acid turret" -msgid_plural "inactive advanced acid turrets" -msgstr[0] "inaktiver fortschrittlicher Säure-Geschützturm" -msgstr[1] "inaktive fortschrittliche Säure-Geschütztürme" - -#. ~ Description for inactive advanced acid turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced acid turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced EMP turret" -msgid_plural "inactive advanced EMP turrets" -msgstr[0] "inaktiver fortschrittlicher EMP-Geschützturm" -msgstr[1] "inaktive fortschrittliche EMP-Geschütztürme" - -#. ~ Description for inactive advanced EMP turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced EMP turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced electro turret" -msgid_plural "inactive advanced electro turrets" -msgstr[0] "inaktiver fortschrittlicher Elektro-Geschützturm" -msgstr[1] "inaktive fortschrittliche Elektro-Geschütztürme" - -#. ~ Description for inactive advanced electro turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced electro turret. Place the turret and it will ID you as" -" friendly with its advanced IFF software. Consult your safety manual in the" -" event of a malfunction." -msgstr "" -"Ein inaktiver fortgeschrittener Elektro-Geschützturm. Platziere den " -"Geschützturm und er wird dich als Freund mit seiner fortgeschrittenen " -"Freund-Feind-Erkennungs-Software erkennen. Lies das Sicherheitshandbuch im " -"Falle einer Fehlfunktion." - -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "garden gnome" -msgid_plural "garden gnomes" -msgstr[0] "Gartenzwerg" -msgstr[1] "Gartenzwerge" - -#. ~ Description for garden gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. You can place him in your " -"garden or elsewhere." -msgstr "" -"Ein normaler und völlig harmloser Gartenzwerg. Du kannst ihn in deinem " -"Garten oder sonst wohin platzieren." - -#: lang/json/TOOL_from_json.py -msgid "gaurdin gnome" -msgid_plural "gaurdin gnomes" -msgstr[0] "Gartenzwerg" -msgstr[1] "Gartenzwerge" - -#. ~ Description for gaurdin gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. He holds up to 100 rounds of" -" 9mm ammo." -msgstr "" -"Ein normaler und völlig harmloser Gartenzwerg. Er enthält bis zu 100 Schuss " -"9mm Munition." - -#: lang/json/TOOL_from_json.py -msgid "small batch of curdling milk" -msgid_plural "small batches of curdling milk" -msgstr[0] "kleiner Klumpen mit gerinnender Milch" -msgstr[1] "kleine Klumpen mit gerinnender Milch" - -#. ~ Use action msg for {'str': 'small batch of curdling milk', 'str_pl': -#. 'small batches of curdling milk'}. -#. ~ Use action msg for {'str': 'batch of curdling milk', 'str_pl': 'batches -#. of curdling milk'}. -#. ~ Use action msg for {'str': 'large batch of curdling milk', 'str_pl': -#. 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "" -"The milk appears to have finished curdling, and is ready for further " -"processing. Checking on it has exposed the mixture to the atmosphere." -msgstr "" -"Die Milch scheint fertig mit der Gerinnung zu sein und ist bereit für " -"weitere Verarbeitung. Ihre Überprüfung hat die Mixtur der Atmosphäre " -"ausgesetzt." - -#. ~ Use action not_ready_msg for {'str': 'small batch of curdling milk', -#. 'str_pl': 'small batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'batch of curdling milk', 'str_pl': -#. 'batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'large batch of curdling milk', -#. 'str_pl': 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "The milk is still curdling." -msgstr "Die Milch gerinnt noch." - -#. ~ Description for {'str': 'small batch of curdling milk', 'str_pl': 'small -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed small waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Ein versiegelter kleiner Wasserbeutel, der mit Milch gefüllt ist. Die Milch " -"ist momentam im Prozess, sich zu einer primitiven Art von Käse zu " -"entwicklen, da ihr Essig und natürlicher Lab hinzugefügt wurde." - -#: lang/json/TOOL_from_json.py -msgid "batch of curdling milk" -msgid_plural "batches of curdling milk" -msgstr[0] "Klumpen mit gerinnender Milch" -msgstr[1] "Klumpen mit gerinnender Milch" - -#. ~ Description for {'str': 'batch of curdling milk', 'str_pl': 'batches of -#. curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed waterskin filled with milk that is undergoing the process to become" -" a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Ein versiegelter Wasserbeutel, der mit Milch gefüllt ist. Die Milch ist " -"dabei, zu einer primitiven Art von Käse zu werden, da ihr Essig und " -"natürlicher Lab hinzugefügt wurde." - -#: lang/json/TOOL_from_json.py -msgid "large batch of curdling milk" -msgid_plural "large batches of curdling milk" -msgstr[0] "großer Klumpen mit gerinnender Milch" -msgstr[1] "große Klumpen mit gerinnender Milch" - -#. ~ Description for {'str': 'large batch of curdling milk', 'str_pl': 'large -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed large waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Ein versiegelter großer Wasserbeutel, der mit Milch gefüllt ist. Die Milch " -"ist dabei, zu einer primitiven Art von Käse zu werden, da ihr Essig und " -"natürlicher Lab hinzugefügt wurde." - -#: lang/json/TOOL_from_json.py -msgid "heavy snare kit" -msgid_plural "heavy snare kits" -msgstr[0] "großer Fallenbaukasten" -msgstr[1] "große Fallenbaukästen" - -#. ~ Use action done_message for heavy snare kit. -#. ~ Use action done_message for light snare kit. -#: lang/json/TOOL_from_json.py -msgid "You set the snare trap." -msgstr "Du stellst die Fallstrickfalle." - -#. ~ Description for heavy snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a rope noose and a snare " -"trigger. It requires a tree nearby. It is effective at trapping monsters." -msgstr "" -"Dies ist ein Bausatz für eine einfache Falle, die aus einer Schlinge und " -"einem Fallenauslöser besteht. Sie erfordert einen Baum neben ihr. Sie ist " -"effektiv beim Fangen von Monstern." - -#: lang/json/TOOL_from_json.py -msgid "light snare kit" -msgid_plural "light snare kits" -msgstr[0] "kleiner Fallenbaukasten" -msgstr[1] "kleine Fallenbaukästen" - -#. ~ Description for light snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a string noose and a snare " -"trigger. It requires a young tree nearby. It is effective at trapping and " -"killing some small animals." -msgstr "" -"Dies ist ein Bausatz für eine einfache Falle, die aus einer Schlinge und " -"einem Fallenauslöser besteht. Sie erfordert einen jungen Baum neben ihr. Sie" -" ist effektiv beim Fangen und Töten von kleinen Tieren." - -#: lang/json/TOOL_from_json.py -msgid "snare trigger" -msgid_plural "snare triggers" -msgstr[0] "Fallenauslöser" -msgstr[1] "Fallenauslöser" - -#. ~ Description for snare trigger -#: lang/json/TOOL_from_json.py -msgid "" -"This is a stick that has been cut into a trigger mechanism for a snare trap." -msgstr "" -"Dies ist ein Stock, der zu einem Schaltmechanismus für eine Fallstrickfalle " -"geschnitzt wurde." - -#. ~ Description for Laevateinn -#: lang/json/TOOL_from_json.py -msgid "" -"A replica of Laevateinn, the sword of Freyr. It is rumored to be able to " -"fight by itself. It is decorated with gold and silver ornaments." -msgstr "" -"Ein Replikat von Laevateinn, dem Schwert von Freyr. Gerüchte besagen, dass " -"es in der Lage ist, alleine zu kämpfen. Es ist mit Gold- und " -"Silberverzierungen dekoriert." - -#: lang/json/TOOL_from_json.py -msgid "inactive craftbuddy" -msgid_plural "inactive craftbuddies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'inactive craftbuddy', 'str_pl': 'inactive -#. craftbuddies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A robot crafting assistant. Useable in its current state as a portable " -"workbench, or deployable as a traveling companion." -msgstr "" -"Ein robotischer Fertigungsassistent. In seinem jetzigen Zustand ist er als " -"bewegliche Werkbank zu gebrauchen, oder er kann als reisenden Begleiter " -"eingesetzt werden." - -#. ~ Description for light auto armor -#. ~ Description for basic auto armor -#. ~ Description for heavy auto armor -#: lang/json/TOOL_from_json.py -msgid "" -"A set of light power armor fitted with an AI core for automated use. " -"Activate it to deploy the robot or disassemble it to use as armor." -msgstr "" -"Ein Satz einer leichten Rüstung, die mit einem KI-Kern für die automatische " -"Benutzung ausgestattet ist. Aktiviere ihn, um den Roboter einzusetzen oder " -"demontiere ihn, um es als Rüstung zu benutzen." - -#: lang/json/TOOL_from_json.py -msgid "basic auto armor" -msgid_plural "basic auto armors" -msgstr[0] "basis Auto-Rüstung" -msgstr[1] "basis Auto-Rüstungen" - -#: lang/json/TOOL_from_json.py -msgid "inactive hack" -msgid_plural "inactive hacks" -msgstr[0] "inaktive Drohne" -msgstr[1] "inaktive Drohnen" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating lantern" -msgid_plural "inactive floating lanterns" -msgstr[0] "inaktive schwebende Laterne" -msgstr[1] "inaktive schwebende Laternen" - -#. ~ Use action friendly_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "" -"Die schwebende Laterne fliegt aus deiner Hand und beleuchtet ihre sodann " -"Umgebung!" - -#. ~ Use action hostile_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the lantern." -msgstr "Du programmierst die Laternendrohne falsch." - -#. ~ Description for inactive floating lantern -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive floating lantern, a fist-sized robots that flies through the air" -" and illuminates its surroundings with bright LEDs. The lantern is non " -"aggressive and has no means of attack. Activate this item to deploy the " -"salvaged robot." -msgstr "" -"Eine inaktive schwebende Laterne, ein faustgroßer Roboter, der durch die " -"Luft fliegt und seine Umgebung mit hellen LEDs beleuchtet. Die Laterne ist " -"nicht aggressiv und auch gänzlich unbewaffnet. Aktiviere die Drohne, um sie " -"einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive distract-o-hack" -msgid_plural "inactive distract-o-hacks" -msgstr[0] "inaktive Ablenkdrohne" -msgstr[1] "inaktive Ablenkdrohnen" - -#. ~ Use action friendly_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "Die Ablenkdrohne fliegt aus deiner Hand und versprüht Funken!" - -#. ~ Use action hostile_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the distract-o-hack!" -msgstr "Du fehlprogrammierst die Ablenkdrohne!" - -#. ~ Description for inactive distract-o-hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive distract-o-hack, a fist-sized robot that flies through the air " -"emitting noise, smoke, and sparks. The salvaged robot has no weapons, but " -"will harass hostile targets to draw their attention. Activate this item to " -"deploy the robot. It cannot be recovered once activated." -msgstr "" -"Eine inaktive Ablenkdrohne, ein faustgroßer Roboter, der durch die Lüfte " -"fliegt, um Krach, Rauch und Funken zu machen. Der geborgene Roboter hat " -"keine Waffen, aber wird feindliche Ziele nerven, um die Aufmerksamkeit auf " -"sich zu ziehen. Aktiviere diesen Gegenstand, um den Roboter einzusetzen. Er " -"kann nicht zurückerlangt werden, nachdem er aktiviert wurde." - -#: lang/json/TOOL_from_json.py -msgid "inactive arson hack" -msgid_plural "inactive arson hacks" -msgstr[0] "inaktive Brandstiftungsdrohne" -msgstr[1] "inaktive Brandstiftungsdrohnen" - -#. ~ Use action friendly_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "The arson hack flies from your hand! Get clear!" -msgstr "" -"Die Brandstiftungsdrohne erhebt sich von deiner Hand! Zeit, den Bereich zu " -"räumen!" - -#. ~ Use action hostile_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the arson hack! Run!" -msgstr "" - -#. ~ Description for inactive arson hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive arson hack, a fist-sized robot that flies through the air " -"chaotically spreading deadly fires. The salvaged robot has no weapons, but " -"will emit intermittent bursts of flame as it moves toward hostile targets. " -"Activate this item to deploy the robot. It cannot be recovered once " -"activated." -msgstr "" -"Eine inaktive Brandstiftungsdrohne, ein faustgroßer Roboter, der chaotisch " -"durch die Lüfte fliegt, um tödliche Feuer zu verbreiten. Der geborgene " -"Roboter hat keine Waffen, aber er wird unregelmäßig Flammen erzeugen, " -"während er sich auf feindliche Ziele zubewegt. Aktiviere diesen Gegenstand, " -"um den Roboter einzusetzen. Er kann nicht zurückerlangt werden, nachdem er " -"aktiviert wurde." - -#: lang/json/TOOL_from_json.py -msgid "inactive spore hack" -msgid_plural "inactive spore hacks" -msgstr[0] "inaktive Sporendrohne" -msgstr[1] "inaktive Sporendrohnen" - -#. ~ Use action friendly_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "The spore hack flies from your hand!" -msgstr "Die Sporendrohne erhebt sich von deiner Hand!" - -#. ~ Use action hostile_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the spore hack!" -msgstr "Du programmierst die Sporendrohne falsch!" - -#. ~ Description for inactive spore hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive spore hack, a fist-sized robot that flies through the air " -"spreading alien contaminants. The robot will dust hostile targets, and " -"intermittently cover the terrain with puffs of fungal spores. Activate this" -" item to deploy the robot." -msgstr "" -"Eine inaktive Sporendrohne, ein faustgroßer Roboter, der durch die Lüfte " -"fliegt, um außerirdische Kontaminanten zu verbreiten. Der Roboter wird Staub" -" auf feindliche Ziele streuen und in unregelmäßigen Abständen das Gelände " -"mit Fungussporen bedecken. Aktiviere diesen Gegenstand, um den Roboter " -"einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive water turret" -msgid_plural "inactive water turrets" -msgstr[0] "inaktiver Wasserwerfer" -msgstr[1] "inaktive Wasserwerfer" - -#. ~ Description for inactive water turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive watercannon defense turret. Up to 1000 units of water will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. There is no safety manual." -msgstr "" -"Ein inaktiver Wasserkanonenverteidigungsgeschützturm. Bis zu 1000 Einheiten " -"Wasser werden automatisch aus deinem Inventar in den Geschützturm geladen, " -"wenn er aktiviert wird. Platziere ihn, und er wird dich als Freund mit " -"seiner fortgeschrittenen Freund-Feind-Erkennungs-Software erkennen. Es gibt " -"kein Sicherheitshandbuch." - -#: lang/json/TOOL_from_json.py -msgid "inactive floating heater" -msgid_plural "inactive floating heaters" -msgstr[0] "inaktive schwebende Heizung" -msgstr[1] "Inaktive schwebende Heizungen" - -#. ~ Description for inactive floating heater -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space. It is non-aggressive " -"and has no weapons systems. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating furnace" -msgid_plural "inactive floating furnaces" -msgstr[0] "inaktiver schwebender Ofen" -msgstr[1] "Inaktive schwebende Öfen" - -#. ~ Description for inactive floating furnace -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. It is non-" -"aggressive and has no weapons systems. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive burning eye" -msgid_plural "inactive burning eyes" -msgstr[0] "inaktives brennendes Auge" -msgstr[1] "inaktive brennende Augen" - -#. ~ Description for inactive burning eye -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon which it will use on hostile " -"targets. Activate this item to deploy the robot." -msgstr "" -"Ein geborgener Schauboter, der mit einer Laserwaffe ausgestattet wurde, die " -"er auf feindliche Ziele anwenden wird. Aktiviere diesen Gegenstand, um den " -"Roboter einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive utilibot" -msgid_plural "inactive utilibots" -msgstr[0] "inaktiver Hilfsroboter" -msgstr[1] "inaktive Hilfsroboter" - -#: lang/json/TOOL_from_json.py -msgid "inactive blob breeder" -msgid_plural "inactive blob breeders" -msgstr[0] "inaktiver Blobzüchter" -msgstr[1] "inaktive Blobzüchter" - -#. ~ Description for inactive blob breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It is non aggressive and has no weapon systems. You can activate " -"this item to deploy the robot and begin the incubation process, but you " -"probably shouldn't." -msgstr "" -"Ein geborgener Hilfsroboter, der zu einem beweglichen Brutkasten für den " -"außerirdischen Blob umgebaut wurde. Er ist nicht aggressiv und hat keine " -"Waffensysteme. Du kannst diesen Gegenstand aktivieren, um den Roboter " -"einzusetzen und den Brutprozess einzuleiten, aber das solltest du lieber " -"nicht tun." - -#: lang/json/TOOL_from_json.py -msgid "inactive slime breeder" -msgid_plural "inactive slime breeders" -msgstr[0] "inaktiver Schleimzüchter" -msgstr[1] "inaktive Schleimzüchter" - -#. ~ Description for inactive slime breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob, and upgraded to only produce friendly slimes. It is non aggressive " -"and has no weapon systems. You can activate this item to deploy the robot " -"and begin the incubation process." -msgstr "" -"Ein geborgener Hilfsroboter, der zu einem beweglichen Brutkasten für den " -"außerirdischen Blob umgebaut wurde, und so verbessert, dass er nur " -"freundlich gesinnten Schleim produziert. Er ist nicht aggressiv und hat " -"keine Waffensysteme. Du kannst diesen Gegenstand aktivieren, um den Roboter " -"einzusetzen und den Brutprozess einzuleiten." - -#: lang/json/TOOL_from_json.py -msgid "inactive digestron" -msgid_plural "inactive digestrons" -msgstr[0] "inaktiver Digestron" -msgstr[1] "inaktive Digestrons" - -#. ~ Description for inactive digestron -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. It is non aggressive and has no weapon systems. Activate " -"this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive bee-bot" -msgid_plural "inactive bee-bots" -msgstr[0] "inkativer Bienenboter" -msgstr[1] "inkative Bienenboter" - -#. ~ Description for inactive bee-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers segments of fresh honey comb. It protects" -" the insect colony with a mechanical crossbow mounted to its chassis. " -"Activate this item, with wooden bolts in your inventory, to load and deploy " -"the robot." -msgstr "" -"Ein geborgener Hilfsroboter, der zu einem wandernden Bienenstock umgebaut " -"wurde, der regelmäßig Honigwaben entfernt und frische Segmente von " -"Honigwaben ausliefert. Er beschützt die Insektenkolonie mit einer " -"mechanischen Armbrust, die auf seinem Gestell montiert wurde. Aktiviere " -"diesen Gegenstand, mit Holzbolzen in deinem Inventar, um den Roboter zu " -"beladen und einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive medibot" -msgid_plural "inactive medibots" -msgstr[0] "inaktiver Medizin-Roboter" -msgstr[1] "inaktive Medizin-Roboter" - -#: lang/json/TOOL_from_json.py -msgid "inactive assassin robot" -msgid_plural "inactive assassin robots" -msgstr[0] "inaktiver Assassinenroboter" -msgstr[1] "inaktive Assassinenroboter" - -#. ~ Description for inactive assassin robot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. It will attack " -"hostile targets with a set of blades and a toxic needle. Activate this item" -" to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive elixirator" -msgid_plural "inactive elixirators" -msgstr[0] "inaktiver Elixirator" -msgstr[1] "inaktive Elixiratoren" - -#. ~ Description for inactive elixirator -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot with its internal pharma-fabricators repurposed to " -"produce mutagen. Activate this item to deploy the robot." -msgstr "" -"Ein geborgener Medizin-Roboter, dessen interne Medikamentenherstellung zur " -"Erzeugung von Mutagen umfunktioniert wurde. Aktiviere diesen Gegenstand, um " -"den Roboter einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive party bot" -msgid_plural "inactive party bots" -msgstr[0] "inkativer Party-Roboter" -msgstr[1] "inkative Party-Roboter" - -#. ~ Description for inactive party bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Activate this item to get the party " -"started." -msgstr "" -"Ein geborgener Medizin-Roboter, angefüllt mit Marihuana, bedeckt mit bunten " -"Blinklichtern und zum Tanzen umprogrammiert. Aktiviere ihn, um die Party in " -"Gang zu bringen." - -#: lang/json/TOOL_from_json.py -msgid "inactive rat snatcher" -msgid_plural "inactive rat snatchers" -msgstr[0] "inaktiver Rattenfänger" -msgstr[1] "inaktive Rattenfänger" - -#. ~ Description for inactive rat snatcher -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It attacks targets" -" with pincers and an integrated tazer. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive grab-bot" -msgid_plural "inactive grab-bots" -msgstr[0] "inkativer Greifboter" -msgstr[1] "inkative Greifboter" - -#. ~ Description for inactive grab-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. " -"Activate this item to deploy the robot." -msgstr "" -"Ein geborgener Scheuchboter, der umfunktioniert wurde, um Gegner zu " -"ergreifen und zu immobilisieren. Aktiviere diesen Gegenstand, um den Roboter" -" einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive pest hunter" -msgid_plural "inactive pest hunters" -msgstr[0] "inaktiver Schädlingsbekämpfer" -msgstr[1] "inaktive Schädlingsbekämpfer" - -#. ~ Description for inactive pest hunter -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " -"this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Ein geborgener Scheuchboter, der mit einer integrierten 8-mm-Feuerwaffe " -"ausgestattet wurde. Aktiviere diesen Gegenstand mit der passenden Munition " -"in deinem Inventar, um die Waffe des Roboters zu laden und den Roboter " -"einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive cyborg" -msgid_plural "inactive cyborgs" -msgstr[0] "inaktiver Cyborg" -msgstr[1] "inaktive Cyborgs" - -#: lang/json/TOOL_from_json.py -msgid "inactive necrotic cyborg" -msgid_plural "inactive necrotic cyborgs" -msgstr[0] "inaktiver nekrotischer Cyborg" -msgstr[1] "inaktive nekrotische Cyborgs" - -#. ~ Description for inactive necrotic cyborg -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Activate this " -"item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive defense robot" -msgid_plural "inactive defense robots" -msgstr[0] "inaktiver Verteidigungsroboter" -msgstr[1] "inaktive Verteidigungsroboter" - -#: lang/json/TOOL_from_json.py -msgid "inactive junkyard cowboy" -msgid_plural "inactive junkyard cowboys" -msgstr[0] "inaktiver Schrottplatz-Cowboy" -msgstr[1] "inaktive Schrottplatz-Cowboys" - -#. ~ Description for inactive junkyard cowboy -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Ein geborgener Verteidigungsroboter, der mit einer Flinte und zwei " -"Kreissägen neu ausgestattet wurde. Aktiviere diesen Gegenstand, mit Munition" -" in deinem Inventar, um den Roboter zu beladen und einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive shortcircuit samurai" -msgid_plural "inactive shortcircuit samurais" -msgstr[0] "inaktiver Kurzschlusssamurai" -msgstr[1] "inaktive Kurzschlusssamurais" - -#. ~ Description for inactive shortcircuit samurai -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with an integrated tazer and two " -"electrified blades. Activate this item to deploy the robot." -msgstr "" -"Ein geborgener Verteidigungsroboter, der mit einem eingebauten " -"Elektroschocker und zwei elektrifizierten Klingen neu ausgestattet wurde. " -"Aktiviere diesen Gegenstand, um den Roboter einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive slapdash paladin" -msgid_plural "inactive slapdash paladins" -msgstr[0] "inaktiver Hoppla-Paladin" -msgstr[1] "inaktive Hoppla-Paladine" - -#. ~ Description for inactive slapdash paladin -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. Activate this item, with gasoline in your inventory, to" -" load and deploy the robot… preferably far from anything flammable" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military robot" -msgid_plural "inactive military robots" -msgstr[0] "inaktiver Militärroboter" -msgstr[1] "inaktive Militärroboter" - -#. ~ Description for inactive military robot -#: lang/json/TOOL_from_json.py -msgid "" -"An unpowered military robot fitted with an integrated 7.62 firearm and " -"electric prod. Activate this item, with ammo in your inventory, to load and" -" deploy the robot." -msgstr "" -"Ein stromloser Militärroboter, der mit einer eingebauten 7,62-Feuerwaffe und" -" einem Elektroschocker ausgestattet ist. Aktiviere diesen Gegenstand, mit " -"Munition in deinem Inventar, um den Roboter zu beladen und einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-guardian" -msgid_plural "inactive robo-guardians" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive robo-guardian -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Ein geborgener Militärroboter, der mit einem Paar eingebauter 9mm-" -"Feuerwaffen neu ausgestattet wurde. Aktiviere diesen Gegenstand, mit " -"Munition in deinem Inventar, um den Roboter zu beladen und einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive robote deluxe" -msgid_plural "inactive robote deluxes" -msgstr[0] "inaktiver robote deluxe" -msgstr[1] "inaktive robote deluxe" - -#. ~ Description for inactive robote deluxe -#: lang/json/TOOL_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style. Activate this item, with ammo in your inventory, to " -"load and deploy the robot." -msgstr "" -"Ein diamantbespickter goldplattierter Roboter, der mit einem Paar " -"eingebauter 9mm-Feuerwaffen bewaffnet ist. Aktiviere diesen Gegenstand, mit " -"Munition in deinem Inventar, um den Roboter zu beladen und einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-protector" -msgid_plural "inactive robo-protectors" -msgstr[0] "inaktiver Robo-Beschützer" -msgstr[1] "inaktive Robo-Beschützer" - -#. ~ Description for inactive robo-protector -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Ein geborgener Roboter, der mit einem eingebauten 5,56mm-Gewehr neu " -"ausgestattet wurde. Aktiviere diesen Gegenstand, mit Munition in deinem " -"Inventar, um den Roboter zu beladen und einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-defender" -msgid_plural "inactive robo-defenders" -msgstr[0] "inaktiver Robo-Verteidiger" -msgstr[1] "inaktive Robo-Verteidiger" - -#. ~ Description for inactive robo-defender -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Activate" -" this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Ein geborgener Roboter, der mit einem eingebauten 50bmg-Gewehr neu " -"ausgestattet wurde. Aktiviere diesen Gegenstand, mit Munition in deinem " -"Inventar, um den Roboter zu beladen und einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced robot" -msgid_plural "inactive advanced robots" -msgstr[0] "inaktiver fortgeschrittener Roboter" -msgstr[1] "inaktive fortgeschrittene Roboter" - -#: lang/json/TOOL_from_json.py -msgid "inactive glittering lady" -msgid_plural "inactive glittering ladies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'inactive glittering lady', 'str_pl': 'inactive -#. glittering ladies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It attacks hostile targets with its two integral lasers and blinding " -"flashes. Activate this item to deploy the robot." -msgstr "" -"Ein geborgener Roboter, der zu einer grellen Leuchte der Zerstörung " -"transformiert wurde. Er wird feindliche Ziele mit seinen zwei eingebauten " -"Lasern und Blendblitzen angreifen. Aktiviere diesen Gegenstand, um den " -"Roboter einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive bitter spinster" -msgid_plural "inactive bitter spinsters" -msgstr[0] "inaktive verbitterte Jungfer" -msgstr[1] "inaktive verbitterte Jungfern" - -#. ~ Description for inactive bitter spinster -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " -"to deploy the robot." -msgstr "" -"Ein geborgener Roboter, der zu einem ätzendem Monster transformiert wurde. " -"Ein innerer Säuregärbottich liefert Munition für einen Globspucker und " -"-sprüher. Aktiviere diesen Gegenstand, um den Roboter einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive chickenwalker" -msgid_plural "inactive chickenwalkers" -msgstr[0] "inaktiver Chicken-Walker" -msgstr[1] "inaktive Chicken-Walker" - -#: lang/json/TOOL_from_json.py -msgid "inactive chainsaw horror" -msgid_plural "inactive chainsaw horrors" -msgstr[0] "inaktiver Kettensägenschrecken" -msgstr[1] "inaktive Kettensägenschrecken" - -#. ~ Description for inactive chainsaw horror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of whirring " -"chainsaws and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Ein geborgener Chicken-Walker, der zu einem furchterrendendem Monster " -"modifiziert wurde, das mit Totenschädeln und Stacheln verziert wurde. Er " -"greift feindliche Ziele mit einem Paar surrender Kettensägen und einem " -"ohrenbetäubenden Lärmsystem an. Aktiviere diesen Gegenstand, um den Roboter " -"einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive screeching terror" -msgid_plural "inactive screeching terrors" -msgstr[0] "inaktiver kreischender Schrecken" -msgstr[1] "inaktive kreischende Schrecken" - -#. ~ Description for inactive screeching terror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of piston-driven " -"lances and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Ein geborgener Chicken-Walker, der zu einem furchterrendendem Monster " -"modifiziert wurde, das mit Totenschädeln und Stacheln verziert wurde. Er " -"greift feindliche Ziele mit einem Paar kolbengetriebener Lanzen und einem " -"ohrenbetäubenden Lärmsystem an. Aktiviere diesen Gegenstand, um den Roboter " -"einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive hooked nightmare" -msgid_plural "inactive hooked nightmares" -msgstr[0] "inaktiver Hakenalbtraum" -msgstr[1] "inaktive Hakenalbträume" - -#. ~ Description for inactive hooked nightmare -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of spinning hooks" -" on chains and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Ein geborgener Chicken-Walker, der zu einem furchterrendendem Monster " -"modifiziert wurde, das mit Totenschädeln und Stacheln verziert wurde. Er " -"greift feindliche Ziele mit einem Paar rotierender Haken an Ketten und einem" -" ohrenbetäubenden Lärmsystem an. Aktiviere diesen Gegenstand, um den Roboter" -" einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive tankbot" -msgid_plural "inactive tankbots" -msgstr[0] "inaktiver Panzerroboter" -msgstr[1] "inaktive Panzerroboter" - -#: lang/json/TOOL_from_json.py -msgid "inactive fist king" -msgid_plural "inactive fist kings" -msgstr[0] "inaktiver Faustkönig" -msgstr[1] "inaktive Faustkönige" - -#. ~ Description for inactive fist king -#. ~ Description for inactive atomic sultan -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Activate this " -"item to deploy the robot." -msgstr "" -"Ein geborgener Panzerroboter, der mit einem Paar starker Drucklufthämmer " -"ausgestattet ist, die er benutzt, um alles, was in seinem Weg ist, zu " -"zermalmen, inklusive Gebäude. Aktiviere diesen Gegenstand, um den Roboter " -"einzusetzen." - -#: lang/json/TOOL_from_json.py -msgid "inactive atomic sultan" -msgid_plural "inactive atomic sultans" -msgstr[0] "inaktiver Atomsultan" -msgstr[1] "inaktive Atomsultane" - -#: lang/json/TOOL_from_json.py -msgid "active glowball" -msgid_plural "active glowballs" -msgstr[0] "Leuchtball (aktiv)" -msgstr[1] "Leuchtbälle (aktiv)" - -#. ~ Use action msg for active glowball. -#: lang/json/TOOL_from_json.py -msgid "The glowball goes dim." -msgstr "Der Leuchtball erlischt." - -#. ~ Description for active glowball -#: lang/json/TOOL_from_json.py -msgid "A small plastic ball filled with glowing chemicals." -msgstr "Ein kleiner Plastikball, gefüllt mit leuchtenden Chemikalien." - #: lang/json/TOOL_from_json.py msgid "TEST rag" msgid_plural "TEST rags" @@ -101461,512 +98365,26 @@ msgstr[0] "" msgstr[1] "" #: lang/json/TOOL_from_json.py -msgid "growing blob frame" -msgid_plural "growing blob frames" -msgstr[0] "wachsender Blobrahmen" -msgstr[1] "wachsende Blobrahmen" - -#. ~ Use action msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "" -"You test the frame; It wiggles, and then collapses into an lump of goo." -msgstr "" -"Du überprüfst den Rahmen; Er zuckelt, und dann zerfällt er zu einem " -"Glibberklumpen." - -#. ~ Use action not_ready_msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "" -"Du überprüfst den Rahmen; es gibt leicht nach, er ist immer noch nicht " -"stabil genug." - -#. ~ Description for {'str': 'growing blob frame'} -#: lang/json/TOOL_from_json.py -msgid "" -"A growing vehicle frame made of bone. It's coated in a thick layer of ooze," -" though there's greater amounts on the bindings. It's not quite tough " -"enough to use." -msgstr "" -"Ein wachsender Fahrzeugrahmen aus Knochen. Er ist mit einer dicken " -"Glibberschicht bedeckt, wobei es größere Mengen an den Einfassungen gibt. Er" -" ist noch nicht stabil genug, um ihn zu benutzen." - -#: lang/json/TOOL_from_json.py -msgid "growing keratinous mass" -msgid_plural "growing keratinous mass" -msgstr[0] "wachsende keratinöse Masse" -msgstr[1] "wachsende keratinöse Masse" - -#. ~ Use action msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action msg for {'str_sp': 'growing ooze'}. -#. ~ Use action msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "The blob balloons to full size." -msgstr "Der Blob schwillt auf die volle Größe an." - -#. ~ Use action not_ready_msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing ooze'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "Whatever it's doing, it's not done yet." -msgstr "Was auch immer es tut, es ist noch nicht fertig." - -#. ~ Description for {'str_sp': 'growing keratinous mass'} -#. ~ Description for {'str_sp': 'growing beaded mass'} -#. ~ Description for {'str_sp': 'growing icy mass'} -#. ~ Description for {'str_sp': 'growing cold mass'} -#. ~ Description for {'str_sp': 'growing hairy mass'} -#. ~ Description for {'str_sp': 'growing gelatinous mass'} -#. ~ Description for {'str_sp': 'growing glowing mass'} -#. ~ Description for {'str_sp': 'growing gray mass'} -#. ~ Description for {'str_sp': 'growing spike-studded mass'} -#. ~ Description for {'str_sp': 'growing gasoline-laced mass'} -#. ~ Description for {'str_sp': 'growing acidic mass'} -#. ~ Description for {'str_sp': 'growing ooze'} -#. ~ Description for {'str_sp': 'growing mass of tendrils'} -#. ~ Description for {'str_sp': 'growing spiked mass'} -#. ~ Description for {'str_sp': 'growing spiny mass'} -#. ~ Description for {'str_sp': 'growing spiky mass'} -#. ~ Description for {'str_sp': 'growing bright mass'} -#. ~ Description for {'str_sp': 'growing viscous mass'} -#. ~ Description for {'str_sp': 'growing warm mass'} -#. ~ Description for {'str_sp': 'growing electrified mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Not quite fully grown, this blob requires nourishment to fully develop." -msgstr "" -"Dieser Blob ist noch nicht ganz ausgewachsen und benötigt Nahrung, um sich " -"vollständig zu entwickeln." - -#: lang/json/TOOL_from_json.py -msgid "growing beaded mass" -msgid_plural "growing beaded mass" -msgstr[0] "wachsende verwulstete Masse" -msgstr[1] "wachsende verwulstete Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing icy mass" -msgid_plural "growing icy mass" -msgstr[0] "wachsende eisige Masse" -msgstr[1] "wachsende eisige Masse" - -#: lang/json/TOOL_from_json.py -msgid "gelacier" -msgid_plural "gelaciers" -msgstr[0] "Geletscher" -msgstr[1] "Geletscher" - -#. ~ Description for {'str': 'gelacier'} -#: lang/json/TOOL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "growing cold mass" -msgid_plural "growing cold mass" -msgstr[0] "wachsende kalte Masse" -msgstr[1] "wachsende kalte Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing hairy mass" -msgid_plural "growing hairy mass" -msgstr[0] "wachsende haarige Masse" -msgstr[1] "wachsende haarige Masse" - -#. ~ Use action msg for {'str_sp': 'gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'gray mass'}. -#. ~ Use action msg for {'str_sp': 'oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "You fumble as the blob starts to multiply rapidly!" -msgstr "" -"Du fummelst herum, als der Blob damit anfängt, sich schlagartig zu " -"vermehren!" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An experiment gone horribly right. While the original intent was to combine" -" the structure of a bone frame with the impact absorption of the blob; the " -"blob seems to have completely consumed the bone. Instead, what remains is " -"an amorphous mass of goo with what seems to be numerous thin filaments " -"floating within. With a bit of effort, you can grasp the fibers and stretch" -" the mass into a multitude of shapes. The mass is able to retain the new " -"shape even under force, though the mass yields at your touch. With enough " -"strength, you think you can pull it apart." -msgstr "" -"Ein Experiment, das fürchterlich gelungen ist. Obwohl die ursprüngliche " -"Absicht war, die Struktur eines Knochenrahmens mit der Einschlagsabsorbtion " -"des Blobs zu kombinieren, scheint der Blob den Knochen vollständig " -"konsumiert zu haben. Was stattdessen verbleibt, ist eine formlosse Masse aus" -" Glibber mit anscheinend zahlreichen dünnen Fasern, die darin umhertreiben. " -"Mit etwas Mühe kannst du die Fasern greifen und die Masse in zahlreiche " -"Formen strecken. Die Masse ist in der Lage, selbst unter Krafteinfluss die " -"Form beizubehalten, jedoch gibt die Masse deiner Berührung nach. Du denkst, " -"dass du sie mit ausreichend Kraft auseinanderziehen kannst." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gelatinous mass" -msgid_plural "multiplying gelatinous mass" -msgstr[0] "sich vermehrende gelantinöse Masse" -msgstr[1] "sich vermehrende gelantinöse Masse" - -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying oozing mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "A blob splits and bounces away!" -msgstr "Ein Blob trennt sich und hüpft davon!" - -#. ~ Description for {'str_sp': 'multiplying gelatinous mass'} -#. ~ Description for {'str_sp': 'multiplying gray mass'} -#. ~ Description for {'str_sp': 'multiplying oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Having been fed, this blob is now rapidly multiplying into other copies of " -"itself; extremely noisy copies! And even worse, it's stuck to your hands " -"until whatever it's doing is done! Catch those blobs before they bring in " -"every zombie for miles!" -msgstr "" -"Da er gefüttert wurde, vermehrt sich dieser Blob in weitere Kopien seiner " -"selbst; sehr lautstarke Kopien! Und was noch schlimmer ist, er klebt an " -"deinen Händen bis das, was auch immer du tust, zu Ende gebracht wurde! Fang " -"diese Blobs ein, bevor sie jeden Zombie kilometerweit anlocken!" - -#: lang/json/TOOL_from_json.py -msgid "growing gelatinous mass" -msgid_plural "growing gelatinous mass" -msgstr[0] "wachsende Gallertmasse" -msgstr[1] "wachsende Gallertmasse" - -#: lang/json/TOOL_from_json.py -msgid "growing glowing mass" -msgid_plural "growing glowing mass" -msgstr[0] "wachsende glühende Masse" -msgstr[1] "wachsende glühende Masse" - -#. ~ Description for {'str_sp': 'gray mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"This internal structures of this creature have developed significantly. " -"While retaining the resilience and malleability of its once simpler form, it" -" has gained the considerable abilities of perception and stimulus response." -" When directly threatened, it is able to shift and alter its microfibers, " -"hardening its membrane to an almost steel-hard shell. You can still pull it" -" apart with enough force. It's also really gray." -msgstr "" -"Die inneren Strukturen dieser Kreatur haben sich bedeutend entwickelt. " -"Während sie die Widerstandsfähigkeit und Formbarkeit ihrer ehemals " -"einfacheren Form beibehält, hat sie beträchtliche Fähigkeiten in der " -"Wahrnehmung und Reizreaktion erhalten. Wird sie direkt bedroht, ist sie in " -"der Lage, sich zu verlagern und ihre Mikrofasern zu verändern, was ihre " -"Membran in einen fast stahlharten Panzer verwandelt. Du kannst sie immer " -"noch mit genügend Stärke auseinanderziehen. Sie ist außerdem wirklich grau." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gray mass" -msgid_plural "multiplying gray mass" -msgstr[0] "sich vermehrende graue Masse" -msgstr[1] "sich vermehrende graue Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing gray mass" -msgid_plural "growing gray mass" -msgstr[0] "wachsende graue Masse" -msgstr[1] "wachsende graue Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing spike-studded mass" -msgid_plural "growing spike-studded mass" -msgstr[0] "wachsende stachelgespickte Masse" -msgstr[1] "wachsende stachelgespickte Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing gasoline-laced mass" -msgid_plural "growing gasoline-laced mass" -msgstr[0] "wachsende benzinhaltige Masse" -msgstr[1] "wachsende benzinhaltige Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing acidic mass" -msgid_plural "growing acidic mass" -msgstr[0] "wachsende säurehaltige Masse" -msgstr[1] "wachsende säurehaltige Masse" - -#: lang/json/TOOL_from_json.py -msgid "oozing mass" -msgid_plural "oozing mass" -msgstr[0] "triefende Masse" -msgstr[1] "triefende Masse" - -#. ~ Description for {'str_sp': 'oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An amorphous mass that has undergone a significant growth. In addition to " -"the increased amount of goo and sinuous filaments, it seems to have started " -"developing other internal structures. Like its smaller counterpart, it can " -"be shaped into various structures; albeit with significantly greater tensile" -" strength due to the increased number of supporting filaments. You believe " -"you can split it apart with enough force." -msgstr "" -"Eine formlose Masse, die ein erhebliches Wachstum erlebt hat. Zusätzlich zur" -" erhöhten Menge an Glibber und geschmeidigen Fasern scheint sie damit " -"begonnen zu haben, andere interne Strukturen zu entwickeln. Wie ihr " -"kleineres Pendant kann sie in verschiedene Strukturen geformt werden, jedoch" -" mit einer deutlich höheren Dehnfestigkeit aufgrund der erhöhten Anzahl an " -"unterstützenden Fasern. Du glaubst, dass du sie mit genügend Stärke " -"zerteilen kannst." - -#: lang/json/TOOL_from_json.py -msgid "multiplying oozing mass" -msgid_plural "multiplying oozing mass" -msgstr[0] "sich vermehrende triefende Masse" -msgstr[1] "sich vermehrende triefende Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing ooze" -msgid_plural "growing ooze" -msgstr[0] "wachsender Trief" -msgstr[1] "wachsender Trief" - -#: lang/json/TOOL_from_json.py -msgid "growing mass of tendrils" -msgid_plural "growing mass of tendrils" -msgstr[0] "wachsende Masse aus Ranken" -msgstr[1] "wachsende Masse aus Ranken" - -#: lang/json/TOOL_from_json.py -msgid "growing spiked mass" -msgid_plural "growing spiked mass" -msgstr[0] "wachsende gespickte Masse" -msgstr[1] "wachsende gespickte Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing spiny mass" -msgid_plural "growing spiny mass" -msgstr[0] "wachsende dornige Masse" -msgstr[1] "wachsende dornige Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing spiky mass" -msgid_plural "growing spiky mass" -msgstr[0] "wachsende stachelige Masse" -msgstr[1] "wachsende stachelige Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing bright mass" -msgid_plural "growing bright mass" -msgstr[0] "wachsende helle Masse" -msgstr[1] "wachsende helle Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing viscous mass" -msgid_plural "growing viscous mass" -msgstr[0] "wachsende zähflüssige Masse" -msgstr[1] "wachsende zähflüssige Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing warm mass" -msgid_plural "growing warm mass" -msgstr[0] "wachsende warme Masse" -msgstr[1] "wachsende warme Masse" - -#: lang/json/TOOL_from_json.py -msgid "growing electrified mass" -msgid_plural "growing electrified mass" -msgstr[0] "wachsende elektrifizierte Masse" -msgstr[1] "wachsende elektrifizierte Masse" - -#: lang/json/TOOL_from_json.py -msgid "diamond cluster" -msgid_plural "diamond clusters" -msgstr[0] "Diamantenbrocken" -msgstr[1] "Diamantenbrocken" - -#. ~ Use action msg for {'str': 'diamond cluster'}. -#: lang/json/TOOL_from_json.py -msgid "The cluster comes apart in your hands." -msgstr "Der Brocken zerfällt in deinen Händen." - -#. ~ Description for {'str': 'diamond cluster'} -#: lang/json/TOOL_from_json.py -msgid "" -"A cluster of artificial crystals that have broken off of a diamond matrix. " -"While the substance usually decays when separated from the catalyst; this " -"cluster seems to be self-sustaining by some unknown mechanism. " -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "diamond matrix" -msgid_plural "diamond matrices" -msgstr[0] "Diamantmatrix" -msgstr[1] "Diamantmatrizen" - -#. ~ Use action msg for {'str': 'diamond matrix', 'str_pl': 'diamond -#. matrices'}. -#: lang/json/TOOL_from_json.py -msgid "" -"Your senses dull as you gaze into the depths of this gemstone's center…" -msgstr "" - -#. ~ Description for {'str': 'diamond matrix', 'str_pl': 'diamond matrices'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sparkling diamond with a dazzling spiral pattern. Small pieces of " -"glittering crystal form on the edges as you hold it." -msgstr "" -"Ein funkelnder Diamant mit einem überwältigendem Spiralenmuster. Kleine " -"Stücke aus glitzerndem Kristall formen sich an den Kanten, während du es " -"hältst." - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex engine" -msgid_plural "vortex engines" -msgstr[0] "Vortexmotor" -msgstr[1] "Vortexmotoren" - -#. ~ Description for {'str': 'vortex engine'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allows it to be attached to a vehicle to render " -"it mobile." -msgstr "" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex generator" -msgid_plural "vortex generators" -msgstr[0] "Vortexgenerator" -msgstr[1] "Vortexgeneratoren" - -#. ~ Description for {'str': 'vortex generator'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allow it to be hooked up to a battery to store " -"the power generated." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "control chip" -msgid_plural "control chips" -msgstr[0] "Steuerungschip" -msgstr[1] "Steuerungschips" - -#. ~ Description for control chip -#: lang/json/TOOL_from_json.py -msgid "" -"A small device, not bigger than a man's fist. It provides primitive " -"organisms with electric stimulation, reviving them and forcing them to obey " -"your commands. This version only works on blobs." -msgstr "" -"Ein kleines Gerät, nicht größer als die Faust eines Menschen. Sie gibt " -"primitiven Organismen eine elektische Stimulation, was sie wiederbelebt und " -"zwingt, deinen Befehlen zu gehorchen. Diese Variante funktioniert nur mit " -"Blobs." - -#: lang/json/TOOL_from_json.py -msgid "dormant blob" -msgid_plural "dormant blobs" -msgstr[0] "ruhender Blob" -msgstr[1] "ruhende Blobs" - -#. ~ Use action friendly_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "The blob becomes active and starts slithering around." -msgstr "Der Blob wird aktiv und beginnt damit, herumzugleiten." - -#. ~ Use action hostile_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "You've made a terrible mistake, the blob is hostile!" -msgstr "Du hast einen furchtbaren Fehler gemacht, der Blob ist feindlich!" +msgid "test smartphone" +msgid_plural "test smartphones" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for dormant blob +#. ~ Description for {'str': 'test smartphone'} #: lang/json/TOOL_from_json.py -msgid "" -"Several chunks of blob scraps, stuffed with a control chip and sewn back " -"together. A light shock from the UPS started the chip, bringing the blob " -"back to life. Use this item to wake up the blob." +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." msgstr "" -"Einige Stücke von Blobfetzen, zu einer großen Masse verklumpt und mit einem " -"Steuerungs-Chip zusammengenäht. Ein leichter Schock von einer Esz. startete " -"den Chip, was den Blob wieder zum Leben erweckte. Benutze diesen Gegenstand," -" um den Blob aufzuwecken." #: lang/json/TOOL_from_json.py -msgid "dormant minion" -msgid_plural "dormant minions" -msgstr[0] "ruhender Untertan" -msgstr[1] "ruhende Untertanen" - -#. ~ Use action friendly_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "The jabberwock climbs to its feet and shambles around." -msgstr "Der Jabberwock rappelt sich hoch und watschelt daher." - -#. ~ Use action hostile_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "" -"Something has gone wrong; after getting up the jabberwock lumbers toward you" -" menacingly!" -msgstr "" -"Etwas ist schief gelaufen. Nachdem der Jabberwock aufgestanden ist, humpelt " -"er bedrohlich auf dich zu!" +msgid "test matchbook" +msgid_plural "test matchbooks" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for dormant minion +#. ~ Description for {'str': 'test matchbook'} #: lang/json/TOOL_from_json.py -msgid "" -"Your very own undead servant. The blob controlling its body is in a state " -"of coma, awaiting your orders. Use this item to wake up the minion." +msgid "Test matches - when you must burn things, for science!" msgstr "" -"Dein eigener untoter Diener. Der Blob, der seinen Körper kontrolliert, " -"befindet sich in eine Art Koma und wartet auf deine Anweisungen. Benutze " -"diesen Gegenstand, um den Untertan aufzuwecken." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -102103,8 +98521,8 @@ msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "pair of small rail wheels" msgid_plural "pairs of small rail wheels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ein Paar kleiner Schienenräder" +msgstr[1] "Kleine Schienenräder" #. ~ Description for {'str': 'pair of small rail wheels', 'str_pl': 'pairs of #. small rail wheels'} @@ -102173,6 +98591,19 @@ msgstr "" "Ein ziemlich kleines Rad. Vermutlich von einer dieser Segway-Dinger. Es ist " "nicht sehr beeindruckend." +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "" + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" @@ -102260,208 +98691,66 @@ msgstr[1] "" msgid "A column of mana energy that enables a floating disk to move." msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Rubber Caterpillar Track" -msgid_plural "Rubber Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Rubber Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of hard rubber tracks reinforced by stiff wire " -"held in place by a set of smaller wheels. Similar with what you might see " -"used on light construction vehicles. It's significantly stronger than " -"regular tires due to not being at risk of bursting; but is quite heavy." +#: lang/json/achievement_from_json.py +msgid "One down, billions to go…" msgstr "" -"Eine kurze ineinandergreifende Reihe aus harten Gummikettengliedern, die mit" -" steifem Draht verstärkt wurden. Sie werden durch einige kleinere Reifen " -"zusammengehalten. Ähnlich zu dem, was sonst einige leichte Baufahrzeuge " -"benutzen. Es ist deutlich stärker als reguläre Reifen, da es nicht platzen " -"kann, allerdings ist es ziemlich schwer." - -#: lang/json/WHEEL_from_json.py -msgid "Steel Caterpillar Track" -msgid_plural "Steel Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'Steel Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on large construction " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is very heavy." +#: lang/json/achievement_from_json.py +msgid "Rude awakening" msgstr "" -"Eine kurze ineinandergreifende Reihe aus gefrästen Stahlkettengliedern, die " -"durch einige kleinere Reifen zusammengehalten werden. Ähnlich zu dem, was " -"sonst einige große Baufahrzeuge benutzen. Es ist deutlich stärker als " -"reguläre Reifen, da es nicht platzen kann, allerdings ist es sehr schwer." - -#: lang/json/WHEEL_from_json.py -msgid "Reinforced Caterpillar Track" -msgid_plural "Reinforced Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'Reinforced Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on APCs and armored " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is extremely heavy." +#: lang/json/achievement_from_json.py +msgid "Decamate" msgstr "" -"Eine kurze ineinandergreifende Reihe aus gefrästen Stahlkettengliedern, die " -"durch einige kleinere Reifen zusammengehalten werden. Ähnlich zu dem, was " -"sonst auf Mannschaftstransportwagen und gepanzerten Fahrzeugen benutzt wird." -" Es ist deutlich stärker als reguläre Reifen, da es nicht platzen kann, " -"allerdings ist es extrem schwer." - -#: lang/json/WHEEL_from_json.py -msgid "Gelatinous track" -msgid_plural "Gelatinous tracks" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'Gelatinous track'} -#. ~ Description for {'str': 'Oozing track'} -#. ~ Description for {'str': 'Gray track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of tracks created out of some of your monstrosity " -"blob based parts. Similar with what you might see used on light " -"construction vehicles. It's significantly stronger than regular tires due " -"to not being at risk of bursting; but is quite heavy." +#: lang/json/achievement_from_json.py +msgid "Centinel" msgstr "" -"Eine kurze ineinandergreifende Reihe aus Kettengliedern, die aus einigen " -"deiner monströsen blobbasierten Teile hergestellt wurde. Dieses Ding ist " -"ähnlich zu dem, was sonst einige leichte Baufahrzeuge benutzen. Es ist " -"deutlich stärker als reguläre Reifen, da es nicht platzen kann, allerdings " -"ist es ziemlich schwer." - -#: lang/json/WHEEL_from_json.py -msgid "Oozing track" -msgid_plural "Oozing tracks" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "Gray track" -msgid_plural "Gray tracks" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/WHEEL_from_json.py -msgid "gelacier wheel" -msgid_plural "gelacier wheels" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'gelacier wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It has formed itself into a wide, crude " -"wheel." +#: lang/json/achievement_from_json.py +msgid "The first day of the rest of their unlives" msgstr "" -"Es ist ein biologisches Mysterium: Die internen Strukturen dieses Blobs " -"befinden sich in einem Reservoir aus einer Flüssigkeit mit niedriger Dichte," -" die flüssig bleibt, obwohl er sich in einem extrem gekühltem Zustand " -"befindet; dennoch verfügt er über die ganze Formbarkeit seiner ehemaligen " -"Form. Frostfragmente fallen ständig von ihm ab. Er scheint sich zu einem " -"breiten groben Rad verformt zu haben." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gelatinous wheel" -msgid_plural "gelatinous wheels" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'gelatinous wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gelatinous mass with water has resulted in something that appears " -"to be a cross between a wheel, an otherworldly abomination, and one of those" -" old squeezy toys." +#: lang/json/achievement_from_json.py +msgid "Survive for a day and find a safe place to sleep" msgstr "" -"Das Füllen einer gelatinösen Masse mit Wasser hat zu einem Ding geführt, " -"welches eine Kreuzung aus einem Rad, einer Abscheulichkeit aus dem Jenseits " -"und einer dieser alten Knautschspielzeuge zu sein scheint." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gray wheel" -msgid_plural "gray wheels" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gray mass with water has resulted in something that appears to be " -"a cross between a wheel, an otherworldly abomination, and one of those old " -"squeezy toys." +#: lang/json/achievement_from_json.py +msgid "Thank God it's Friday" msgstr "" -"Das Füllen einer grauen Masse mit Wasser hat zu einem Ding geführt, welches " -"eine Kreuzung aus einem Rad, einer Abscheulichkeit aus dem Jenseits und " -"einer dieser alten Knautschspielzeuge zu sein scheint." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "earthen roller" -msgid_plural "earthen rollers" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a week" +msgstr "" -#. ~ Description for {'str': 'earthen roller'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A large, spherical blob the size of a large truck tire. The outer layer has" -" compacted itself into a solid shell; offering great resilience. Having " -"grown to full size, it seems content to simply sit there." +#: lang/json/achievement_from_json.py +msgid "28 days later" msgstr "" -"Ein großer runder Blob von der Größe eines großen Lastwagenreifens. Die " -"äußere Schicht hat sich selbst in eine feste Hülle verwandelt, was " -"großartige Widerstandsfähigkeit bringt. Da er zur vollen Größe " -"herangewachsen ist, scheint er zufrieden damit zu sein, einfach nur dort zu " -"hocken." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "oozing wheel" -msgid_plural "oozing wheels" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a month" +msgstr "" -#. ~ Description for {'str': 'oozing wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling an oozing mass with water has resulted in something that appears to " -"be a cross between a wheel, an otherworldly abomination, and one of those " -"old squeezy toys." +#: lang/json/achievement_from_json.py +msgid "A time to every purpose under heaven" msgstr "" -"Das Füllen einer triefenden Masse mit Wasser hat zu einem Ding geführt, " -"welches eine Kreuzung aus einem Rad, einer Abscheulichkeit aus dem Jenseits " -"und einer dieser alten Knautschspielzeuge zu sein scheint." #: lang/json/achievement_from_json.py -msgid "One down, billions to go…" +msgid "Survive for a season" msgstr "" #: lang/json/achievement_from_json.py -msgid "Rude awakening" +msgid "Brighter days ahead?" msgstr "" #: lang/json/achievement_from_json.py -msgid "The first day of the rest of their unlives" +msgid "Survive for a year" msgstr "" #: lang/json/achievement_from_json.py msgid "Pheidippides was a hack" msgstr "" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." msgstr "" @@ -102470,7 +98759,6 @@ msgstr "" msgid "Please don't fall down at my door" msgstr "" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." msgstr "" @@ -102491,6 +98779,18 @@ msgstr "" msgid "Ain't no valley low enough" msgstr "" +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "reloading" msgstr "" @@ -102529,7 +98829,7 @@ msgstr "" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "butchering" -msgstr "Schlachtungs" +msgstr "Schlacht" #: lang/json/activity_type_from_json.py msgid "chopping trees" @@ -102619,10 +98919,6 @@ msgstr "" msgid "de-stressing" msgstr "" -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr "" - #: lang/json/activity_type_from_json.py msgid "dropping" msgstr "" @@ -102717,7 +99013,7 @@ msgstr "" #: lang/json/activity_type_from_json.py msgid "picking lock" -msgstr "" +msgstr "Knacke Schloss" #: lang/json/activity_type_from_json.py msgid "repairing" @@ -103053,10 +99349,6 @@ msgstr "Batterien" msgid "cents" msgstr "Cents" -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "Plutonium" - #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" msgstr "12mm-Schrotpatronen" @@ -103181,14 +99473,6 @@ msgstr "" msgid "pulse ammo" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "6.54x42mm" -msgstr "6,54×42mm" - -#: lang/json/ammunition_type_from_json.py -msgid ".20 DREAD Pellets" -msgstr ".20-DREAD-Kugeln" - #: lang/json/ammunition_type_from_json.py msgid "black powder ammo" msgstr "" @@ -103234,41 +99518,9 @@ msgid "mana energy" msgstr "" #: lang/json/ammunition_type_from_json.py -msgid "javelin" -msgstr "Wurfspeer" - -#: lang/json/ammunition_type_from_json.py -msgid "120mm shell" -msgstr "120mm-Patrone" - -#: lang/json/ammunition_type_from_json.py -msgid "155mm shell" -msgstr "155mm-Patrone" - -#: lang/json/ammunition_type_from_json.py -msgid "30x113mm" -msgstr "30×113mm" - -#: lang/json/ammunition_type_from_json.py -msgid "heavy projectiles" -msgstr "schwere Projektile" - -#: lang/json/ammunition_type_from_json.py -msgid "ballista bolt" -msgstr "Ballistenbolzen" - -#: lang/json/ammunition_type_from_json.py -msgid "bladed disk" -msgstr "Klingenscheibe" - -#: lang/json/ammunition_type_from_json.py -msgid "crystalline shards" +msgid "heady vapours" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "vortex energy" -msgstr "Vortexenergie" - #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" msgstr "Adrenalinpumpe" @@ -103352,10 +99604,10 @@ msgstr "" "umgeleitet. Wenn du weinst, musst du spucken oder deine Tränen schlucken." #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" -msgstr "Legierungsplattierung – Kopf" +msgid "Alloy Plating - head" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -103375,10 +99627,10 @@ msgid "" msgstr "" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" -msgstr "Legierungsplattierung – Torso" +msgid "Alloy Plating - torso" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -104593,7 +100845,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Extended Toolset" -msgstr "" +msgstr "Erweitertes Werkzeugset" #. ~ Description for {'str': 'Extended Toolset'} #: lang/json/bionic_from_json.py @@ -104952,6 +101204,15 @@ msgid "" "inducing a state of euphoria that notably elevates mood." msgstr "" +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top" +" of your spine. They are all dead now but there is unfortunately a dead man" +" switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" @@ -105283,6 +101544,22 @@ msgstr "Mit Wolle verstärken" msgid "Destroy wool lining" msgstr "Wollfütterung zerstören" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "Pazifist" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -105731,11 +102008,11 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Build Workbench" -msgstr "" +msgstr "Arbeitstisch bauen" #: lang/json/construction_from_json.py msgid "Place Workbench" -msgstr "" +msgstr "Arbeitstisch plazieren" #: lang/json/construction_from_json.py msgid "Build Chair" @@ -106103,6 +102380,10 @@ msgstr "Kissenburg bauen" msgid "Build Cardboard Fort" msgstr "" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "Feuerreifen bauen" @@ -106287,26 +102568,10 @@ msgstr "Baumstamm zu Holzscheiten" msgid "Makeshift Wall" msgstr "" -#: lang/json/construction_from_json.py -msgid "Build Hydroponics" -msgstr "" - -#: lang/json/construction_from_json.py -msgid "Build Hydroponics Heater" -msgstr "" - #: lang/json/construction_from_json.py msgid "Build Translocator Gate" msgstr "" -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" -msgstr "Blobfutter aus Leichengrube gewinnen: Zerschmettern zum Erhalten" - -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "Blobfutter aus Schleim gewinnen: Zerschmettern zum Erhalten" - #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." msgstr "Du hast einen seltsamen Traum über Echsen." @@ -107278,6 +103543,8 @@ msgstr "" #: lang/json/dream_from_json.py msgid "You dream of landscapes lit by the light of alien moons." msgstr "" +"Du träumst von Landschaften die erleuchtet sind vom Licht fremdartiger " +"Monde." #: lang/json/dream_from_json.py msgid "" @@ -107313,6 +103580,71 @@ msgstr "" msgid "You have transitioned from a dying race to a glorious future." msgstr "" +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded" +" by snow and bitter pelting winds, you feel confident and toasty-warm " +"beneath your shaggy coat." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is" +" restored." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill" +" for anyone or anything to bother trying to attack. And if they do… it'll " +"be the last mistake of their life. Waking up gives you a brief jolt of " +"fear and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one" +" through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "" + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "" @@ -108194,8 +104526,6 @@ msgid "Stuck in beartrap" msgstr "In einer Bärenfalle gefangen" #. ~ Description of effect 'Stuck in beartrap'. -#. ~ Description of effect 'Stuck in a light snare'. -#. ~ Description of effect 'Stuck in a heavy snare'. #: lang/json/effects_from_json.py msgid "You can't move until you get free!" msgstr "Du kannst dich nicht bewegen, bis du dich befreist!" @@ -108561,6 +104891,52 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "Kurierte die Pilzinfektion." +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "" + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, +#. Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly +#. tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "Halluzinierend" @@ -109976,6 +106352,26 @@ msgstr "" msgid "You're disgusted by the goop." msgstr "" +#: lang/json/effects_from_json.py src/character.cpp +msgid "Full" +msgstr "Satt" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "" + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "Verstopft" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "" + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" msgstr "Magnesium Nahrungsergänzungsmittel" @@ -110002,10 +106398,6 @@ msgstr "" "KI-Marker, welches verwendet wird, wenn du einen NPC mit einer bestimmten " "Gesprächsoption beleidigt hast. Diesen Status zu sehen, ist an sich ein Bug." -#: lang/json/effects_from_json.py src/character.cpp src/character.cpp -msgid "Full" -msgstr "Satt" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -110378,20 +106770,6 @@ msgstr "" msgid "You feel sluggish and weak, from magically-induced poisoning." msgstr "" -#: lang/json/effects_from_json.py -msgid "Stuck in a light snare" -msgstr "Steckt in einem leichten Fallstrick fest" - -#. ~ Apply message for effect(s) 'Stuck in a light snare'. -#. ~ Apply message for effect(s) 'Stuck in a heavy snare'. -#: lang/json/effects_from_json.py -msgid "You are snared!" -msgstr "Du bist von einem Fallstrick erfasst!" - -#: lang/json/effects_from_json.py -msgid "Stuck in a heavy snare" -msgstr "Steckt in einem schweren Fallstrick fest" - #: lang/json/effects_from_json.py msgid "Gummed" msgstr "" @@ -110418,6 +106796,66 @@ msgstr "" msgid "The gum webs constrict your movement." msgstr "" +#: lang/json/effects_from_json.py +msgid "Debugged" +msgstr "" + +#. ~ Description of effect 'Debugged'. +#: lang/json/effects_from_json.py +msgid "" +"You have been debugged!\n" +"Everything is working perfectly now." +msgstr "" + +#. ~ Apply message for effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Diving into your source, you find a rubber duck, and talk it to death." +msgstr "" + +#. ~ Speed name of effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Optimized" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Min-Maxed" +msgstr "" + +#. ~ Description of effect 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "" +"All the benefits of being the worst with none of the drawbacks of being the " +"best!" +msgstr "" + +#. ~ Apply message for effect(s) 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "You feel your internal metrics stretch like a fun-house mirror." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Whoa" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wut?" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wow!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "" +"Everything is just way too intense, man!\n" +"You feel confused and disoriented." +msgstr "" + +#. ~ Apply message for effect(s) 'Whoa, Wut?, Wow!'. +#: lang/json/effects_from_json.py +msgid "!!Intensity intensifies!!" +msgstr "" + #: lang/json/faction_from_json.py msgid "Your Followers" msgstr "Deine Gefährten" @@ -111092,7 +107530,7 @@ msgstr "Spinnenweben" #: lang/json/field_type_from_json.py msgid "thick webs" -msgstr "dicke Spinnenweben" +msgstr "dichte Spinnenweben" #: lang/json/field_type_from_json.py msgid "slime trail" @@ -111169,7 +107607,7 @@ msgstr "Rauch" #: lang/json/field_type_from_json.py msgid "thick smoke" -msgstr "dicker Rauch" +msgstr "dichter Rauch" #: lang/json/field_type_from_json.py msgid "hazy cloud" @@ -111181,7 +107619,7 @@ msgstr "Giftgas" #: lang/json/field_type_from_json.py msgid "thick toxic gas" -msgstr "dickes Giftgas" +msgstr "dichtes Giftgas" #: lang/json/field_type_from_json.py msgid "tear gas" @@ -111189,7 +107627,7 @@ msgstr "Tränengas" #: lang/json/field_type_from_json.py msgid "thick tear gas" -msgstr "dickes Tränengas" +msgstr "dichtes Tränengas" #: lang/json/field_type_from_json.py msgid "radioactive gas" @@ -111205,19 +107643,19 @@ msgstr "Gasventil" #: lang/json/field_type_from_json.py msgid "angular ripple" -msgstr "" +msgstr "eckige Welligkeit" #: lang/json/field_type_from_json.py msgid "angular rift" -msgstr "" +msgstr "Winkelriss" #: lang/json/field_type_from_json.py msgid "fractal fissure" -msgstr "" +msgstr "fraktale Fissur" #: lang/json/field_type_from_json.py msgid "fire vent" -msgstr "" +msgstr "Feuerabzug" #: lang/json/field_type_from_json.py msgid "sparks" @@ -111249,11 +107687,11 @@ msgstr "" #: lang/json/field_type_from_json.py msgid "shock vent" -msgstr "" +msgstr "Stromabzug" #: lang/json/field_type_from_json.py msgid "acid vent" -msgstr "" +msgstr "Säureabzug" #: lang/json/field_type_from_json.py msgid "faint plasma" @@ -111349,15 +107787,15 @@ msgstr "matschiger Gedärmehaufen" #: lang/json/field_type_from_json.py msgid "swirl of tobacco smoke" -msgstr "Tabaksrauchwirbel" +msgstr "Tabakrauchwirbel" #: lang/json/field_type_from_json.py msgid "tobacco smoke" -msgstr "Tabaksrauch" +msgstr "Tabakrauch" #: lang/json/field_type_from_json.py msgid "thick tobacco smoke" -msgstr "dicker Tabaksrauch" +msgstr "dichter Tabakrauch" #: lang/json/field_type_from_json.py msgid "swirl of pot smoke" @@ -111369,7 +107807,7 @@ msgstr "Marihuanarauch" #: lang/json/field_type_from_json.py msgid "thick pot smoke" -msgstr "dicker Marihuanarauch" +msgstr "dichter Marihuanarauch" #: lang/json/field_type_from_json.py msgid "swirl of crack smoke" @@ -111381,7 +107819,7 @@ msgstr "Crack-Rauch" #: lang/json/field_type_from_json.py msgid "thick crack smoke" -msgstr "dicker Crack-Rauch" +msgstr "dichter Crack-Rauch" #: lang/json/field_type_from_json.py msgid "swirl of meth smoke" @@ -111393,19 +107831,19 @@ msgstr "Meth-Rauch" #: lang/json/field_type_from_json.py msgid "thick meth smoke" -msgstr "" +msgstr "dichter Meth-Rauch" #: lang/json/field_type_from_json.py msgid "swirl of fog" -msgstr "" +msgstr "Rauchwirbel" #: lang/json/field_type_from_json.py msgid "foul fog" -msgstr "" +msgstr "fauliger Rauch" #: lang/json/field_type_from_json.py msgid "thick foul fog" -msgstr "" +msgstr "dichter fauliger Rauch" #: lang/json/field_type_from_json.py msgid "some bees" @@ -111433,19 +107871,19 @@ msgstr "Entspannungsgas" #: lang/json/field_type_from_json.py lang/json/furniture_from_json.py msgid "swamp gas" -msgstr "" +msgstr "Sumpfgas" #: lang/json/field_type_from_json.py msgid "mist" -msgstr "" +msgstr "Dunst" #: lang/json/field_type_from_json.py lang/json/furniture_from_json.py msgid "fog" -msgstr "" +msgstr "Nebel" #: lang/json/field_type_from_json.py msgid "dense fog" -msgstr "" +msgstr "dichter Nebel" #: lang/json/field_type_from_json.py msgid "fungal haze" @@ -111453,91 +107891,91 @@ msgstr "Fungusdunst" #: lang/json/field_type_from_json.py msgid "thick fungal haze" -msgstr "dicker Fungusdunst" +msgstr "dichter Fungusdunst" #: lang/json/field_type_from_json.py msgid "cold air 1" -msgstr "" +msgstr "Kalte Luft 1" #: lang/json/field_type_from_json.py msgid "cold air 2" -msgstr "" +msgstr "Kalte Luft 2" #: lang/json/field_type_from_json.py msgid "cold air 3" -msgstr "" +msgstr "Kalte Luft 3" #: lang/json/field_type_from_json.py msgid "cold air 4" -msgstr "" +msgstr "Kalte Luft 4" #: lang/json/field_type_from_json.py msgid "hot air 1" -msgstr "" +msgstr "Heiße Luft 1" #: lang/json/field_type_from_json.py msgid "hot air 2" -msgstr "" +msgstr "Heiße Luft 2" #: lang/json/field_type_from_json.py msgid "hot air 3" -msgstr "" +msgstr "Heiße Luft 3" #: lang/json/field_type_from_json.py msgid "hot air 4" -msgstr "" +msgstr "Heiße Luft 4" #: lang/json/field_type_from_json.py msgid "hot air sauna" -msgstr "" +msgstr "Heiße Sauna-Luft " #: lang/json/field_type_from_json.py msgid "foul-smelling air" -msgstr "" +msgstr "faulig-richende Luft" #: lang/json/field_type_from_json.py msgid "fungicidal mist" -msgstr "" +msgstr "fungizidaler Nebel" #: lang/json/field_type_from_json.py msgid "fungicidal haze" -msgstr "" +msgstr "fungizidaler Dunst" #: lang/json/field_type_from_json.py msgid "thick fungicidal haze" -msgstr "" +msgstr "dichter fungizidaler Dunst" #: lang/json/field_type_from_json.py msgid "insecticidal mist" -msgstr "" +msgstr "insectizidaler Nebel" #: lang/json/field_type_from_json.py msgid "insecticidal haze" -msgstr "" +msgstr "insectizidaler Dunst" #: lang/json/field_type_from_json.py msgid "thick insecticidal haze" -msgstr "" +msgstr "dichter insectizidaler Dunst" #: lang/json/field_type_from_json.py msgid "smoke vent" -msgstr "Rauchventil" +msgstr "Rauchabzug" #: lang/json/field_type_from_json.py msgid "clairvoyance" -msgstr "" +msgstr "Hellsehen" #: lang/json/field_type_from_json.py msgid "dreadful presense" -msgstr "" +msgstr "schreckliche Präsenz" #: lang/json/field_type_from_json.py msgid "frightful presense" -msgstr "" +msgstr "fürchterliche Präsenz" #: lang/json/field_type_from_json.py msgid "terrifying presense" -msgstr "" +msgstr "furchterregende Präsenz" #: lang/json/field_type_from_json.py msgid "flimsy gum webs" @@ -111561,7 +107999,9 @@ msgstr "" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -111579,15 +108019,17 @@ msgstr "" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." msgstr "" #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them" -" clean and to save people an unpleasant chore. Now, with the power gone and" -" it sitting for a while, it's starting to smell a bit off." +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." msgstr "" #: lang/json/furniture_from_json.py @@ -111596,7 +108038,9 @@ msgstr "Trockner" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -111606,9 +108050,8 @@ msgstr "Kühlschrank" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." msgstr "" #: lang/json/furniture_from_json.py @@ -111618,7 +108061,10 @@ msgstr "Glastür-Kühlschrank" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without" +" letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." msgstr "" #: lang/json/furniture_from_json.py @@ -111629,15 +108075,15 @@ msgstr "Ofen" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." +"the air through a building's ventilation system to keep it warm." msgstr "" #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." msgstr "" -"Du könntest deine verdreckte Kleidung waschen, wenn nur der Strom fließen " -"würde." #: lang/json/furniture_from_json.py msgid "oven" @@ -111646,9 +108092,8 @@ msgstr "Ofen" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." msgstr "" #: lang/json/furniture_from_json.py @@ -111658,8 +108103,9 @@ msgstr "" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -111669,8 +108115,9 @@ msgstr "" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." +"An anvil with a large metal hammer suspended above it in a metal framework." +" If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -111680,8 +108127,10 @@ msgstr "" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -111690,8 +108139,11 @@ msgstr "" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." -msgstr "Dies ist ein großer Haufen Computer. Sie sind alle ausgeschaltet." +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." +msgstr "" #: lang/json/furniture_from_json.py msgid "large satellite dish" @@ -111700,8 +108152,10 @@ msgstr "große Satellitenschüssel" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes" +" have all been lost." msgstr "" #: lang/json/furniture_from_json.py @@ -111710,7 +108164,10 @@ msgstr "" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -111724,8 +108181,11 @@ msgstr "Straßenbarrikade" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." -msgstr "Eine Straßensperre. Zum Verbarrikadieren von Straßen." +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp @@ -111743,7 +108203,9 @@ msgstr "" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -111756,7 +108218,7 @@ msgstr "" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." +msgid "A wall of stacked earthbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -111765,8 +108227,8 @@ msgstr "Rinne" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." -msgstr "Früher wurde damit der Verkehr in die richtigen Bahnen gelenkt." +msgid "A simple wooden post to mark the separation between street lanes." +msgstr "" #: lang/json/furniture_from_json.py msgid "sandbag barricade" @@ -111774,7 +108236,9 @@ msgstr "Sandsackbarrikade" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -111783,7 +108247,7 @@ msgstr "Sandsackwand" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." +msgid "A wall of stacked sandbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -111792,7 +108256,9 @@ msgstr "Standspiegel" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all" +" of the dirt and blood on your clothes, and the weariness in your eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -111806,11 +108272,10 @@ msgstr "zerbrochener Standspiegel" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." msgstr "" -"Du könntest dich selbst betrachten, wenn der Spiegel nur nicht voller Risse " -"und Frakturen wäre." #: lang/json/furniture_from_json.py msgid "bitts" @@ -111819,8 +108284,8 @@ msgstr "" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." msgstr "" #: lang/json/furniture_from_json.py @@ -111829,9 +108294,7 @@ msgstr "Handschellen" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -111845,11 +108308,12 @@ msgstr "Statue" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." msgstr "»Bums.«." @@ -111860,8 +108324,9 @@ msgstr "Mannequin" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." msgstr "" #: lang/json/furniture_from_json.py @@ -111870,7 +108335,9 @@ msgstr "" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." msgstr "" #: lang/json/furniture_from_json.py @@ -111879,7 +108346,9 @@ msgstr "" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to" +" hang up clothes to dry in the sunlight." msgstr "" #: lang/json/furniture_from_json.py @@ -111888,7 +108357,9 @@ msgstr "" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." msgstr "" #: lang/json/furniture_from_json.py @@ -111904,13 +108375,29 @@ msgstr "" msgid "A decorative wreath for the winter holidays." msgstr "" +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "" + +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +msgid "crunch." +msgstr "»Knirsch.«." + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." +msgid "" +"A decorative pine tree littered with ornaments for the winter holidays." msgstr "" #: lang/json/furniture_from_json.py @@ -111919,8 +108406,10 @@ msgstr "Topfplanze" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." -msgstr "Eine Pflanzenart, für die Dekoration." +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried" +" up and died a while ago." +msgstr "" #: lang/json/furniture_from_json.py msgid "yellow indoor plant" @@ -111928,8 +108417,10 @@ msgstr "gelbe Zimmerpflanze" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." -msgstr "Eine Pflanzenart, für die Dekoration. Es ist gelb." +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." +msgstr "" #: lang/json/furniture_from_json.py msgid "harvestable plant" @@ -111938,15 +108429,10 @@ msgstr "erntbare Pflanze" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to" -" harvest the plant appropriately." +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py -msgid "crunch." -msgstr "»Knirsch.«." - #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py msgid "whish." @@ -111958,7 +108444,7 @@ msgstr "erwachsene Pflanze" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." +msgid "This plant has matured, and will be ready to harvest before long." msgstr "" #: lang/json/furniture_from_json.py @@ -111968,8 +108454,8 @@ msgstr "Samen" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into " -"destiny." +"A freshly planted seed. If properly tended to, it could grow into a healthy" +" plant." msgstr "" #: lang/json/furniture_from_json.py @@ -111978,7 +108464,7 @@ msgstr "Setzling" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." +msgid "A seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -111997,22 +108483,34 @@ msgid "planter with harvestable plant" msgstr "" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." msgstr "" #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "" @@ -112020,8 +108518,8 @@ msgstr "" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -112031,8 +108529,8 @@ msgstr "Spinneneiernest" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." msgstr "" #: lang/json/furniture_from_json.py @@ -112042,15 +108540,16 @@ msgstr "»Platsch!«." #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're" -" seeing this, you're already too close to it." +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." msgstr "" #: lang/json/furniture_from_json.py @@ -112059,7 +108558,9 @@ msgstr "geplündertes Eiernest" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." msgstr "" #. ~ Description for swamp gas @@ -112110,9 +108611,8 @@ msgstr "Kamin" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -112133,7 +108633,8 @@ msgstr "Holzherd" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." msgstr "" #. ~ Description for brazier @@ -112141,6 +108642,20 @@ msgstr "" msgid "A raised metal dish in which to safely burn things." msgstr "" +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "Feuerreifen" @@ -112256,7 +108771,7 @@ msgstr "" #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." -msgstr "" +msgstr "Eine hübsche Mondblume." #: lang/json/furniture_from_json.py msgid "pile of leaves" @@ -112289,8 +108804,8 @@ msgstr "Marlossblume" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." msgstr "" #: lang/json/furniture_from_json.py @@ -112301,8 +108816,8 @@ msgstr "»Puff.«." #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." +"color has been leached from its petals and stem. It gently sways of its own" +" volition, maintaining an unsettling rhythm." msgstr "" #: lang/json/furniture_from_json.py @@ -112313,7 +108828,7 @@ msgstr "Fungusmasse" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." +"soft to the touch, but not firm enough to hold any weight." msgstr "" #: lang/json/furniture_from_json.py @@ -112323,7 +108838,8 @@ msgstr "Fungusklumpen" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." msgstr "" #: lang/json/furniture_from_json.py @@ -112347,7 +108863,7 @@ msgstr "Steinplatte" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." +msgid "A slab of heavy stone, with a reasonably flat surface." msgstr "" #: lang/json/furniture_from_json.py @@ -112356,8 +108872,11 @@ msgstr "Grabplatte" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." -msgstr "Hält die Körper." +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -112371,8 +108890,11 @@ msgstr "Grabstein" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." -msgstr "Hält die Körper. Etwas schicker." +msgid "" +"An upright slab of stone with information engraved on the face about whoever" +" lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -112380,8 +108902,11 @@ msgstr "abgenutzter Grabstein" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." -msgstr "Ein abgenutzter Grabstein." +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." +msgstr "" #: lang/json/furniture_from_json.py msgid "obelisk" @@ -112389,7 +108914,10 @@ msgstr "Obelisk" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." msgstr "" #: lang/json/furniture_from_json.py @@ -112404,10 +108932,9 @@ msgstr "Robotermonteur" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." msgstr "" -"Ein haltbarer und vielseitiger Roboterarm mit einem am Ende angebrachten " -"Werkzeug für die Arbeit am Fließband." #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "chemical mixer" @@ -112416,8 +108943,8 @@ msgstr "Chemiemischer" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." +"A large vat with a motorized mixing device for combining large quantities of" +" chemicals." msgstr "" #: lang/json/furniture_from_json.py @@ -112427,9 +108954,9 @@ msgstr "Roboterarm" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -112444,8 +108971,10 @@ msgstr "Autodoktor Typ XI" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." +"A surgical apparatus used for installation and removal of bionics. The term" +" name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." msgstr "" #: lang/json/furniture_from_json.py @@ -112466,9 +108995,8 @@ msgstr "" #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost " -"anything." +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." msgstr "" #: lang/json/furniture_from_json.py @@ -112482,14 +109010,13 @@ msgstr "" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the " -"inside." +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." msgstr "" #: lang/json/furniture_from_json.py msgid "lab workbench" -msgstr "" +msgstr "Labor-Arbeitstisch" #. ~ Description for lab workbench #: lang/json/furniture_from_json.py @@ -112518,13 +109045,10 @@ msgstr "" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow" -" bacteria. This is great for microbiology, but terrible for preserving " -"food." +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." msgstr "" -"Ein Werkzeug, um die Brühe gut gemischt zu halten, bei genau der richtigen " -"Temperatur, um Bakterien wachsen zu lassen. Das ist großartig für die " -"Mikrobiologie, aber schrecklich für die Konservierung von Lebensmitteln." #: lang/json/furniture_from_json.py msgid "emergency wash station" @@ -112533,9 +109057,10 @@ msgstr "" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running" -" water, you could use those attachments to wash harmful chemicals out of " -"your eyes, or to take a pleasant cold shower in a public place." +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." msgstr "" #: lang/json/furniture_from_json.py @@ -112544,7 +109069,9 @@ msgstr "" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." msgstr "" #: lang/json/furniture_from_json.py @@ -112555,9 +109082,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on" +" their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" #: lang/json/furniture_from_json.py @@ -112568,9 +109095,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." msgstr "" #: lang/json/furniture_from_json.py @@ -112580,10 +109107,11 @@ msgstr "" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other" +" advanced sciences, it's not as useful anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -112593,10 +109121,9 @@ msgstr "" #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." msgstr "" #: lang/json/furniture_from_json.py @@ -112606,8 +109133,8 @@ msgstr "" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." msgstr "" #: lang/json/furniture_from_json.py @@ -112617,9 +109144,8 @@ msgstr "" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of" -" radio-opacity." +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." msgstr "" #: lang/json/furniture_from_json.py @@ -112629,9 +109155,8 @@ msgstr "" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't" -" excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." +"A massive tool used to take NMR images of a patient placed inside, providing" +" invaluable medical insight." msgstr "" #: lang/json/furniture_from_json.py @@ -112641,8 +109166,8 @@ msgstr "" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." msgstr "" #: lang/json/furniture_from_json.py @@ -112652,14 +109177,10 @@ msgstr "Narkose-Maschine" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." msgstr "" -"Eine Person auf dem richtigen Niveau des Schlafes zu halten, um eine " -"Operation durchzuführen, ist schwierig. Diese Maschine hilft einem " -"Anästhesisten, die richtige Mischung aus Medikamenten und Luft zu finden, um" -" den Patienten im Schlaf zu halten." #: lang/json/furniture_from_json.py msgid "dialysis machine" @@ -112668,9 +109189,9 @@ msgstr "" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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." +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." msgstr "" #: lang/json/furniture_from_json.py @@ -112680,9 +109201,9 @@ msgstr "" #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." msgstr "" #: lang/json/furniture_from_json.py @@ -112719,7 +109240,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." +"faint light spills from it." msgstr "" #: lang/json/furniture_from_json.py @@ -112735,7 +109256,7 @@ msgstr "" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." +"even waving gently as though underwater." msgstr "" #: lang/json/furniture_from_json.py @@ -112747,7 +109268,7 @@ msgstr "" msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." msgstr "" @@ -112758,9 +109279,9 @@ msgstr "" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." +"A spine resembling moth antennae juts from the ground, swaying gently in the" +" air. Every so often, a cascade of energy arcs along it and discharges into" +" the ceiling." msgstr "" #: lang/json/furniture_from_json.py @@ -112770,8 +109291,8 @@ msgstr "" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases" -" out of injured vessels." +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." msgstr "" #: lang/json/furniture_from_json.py @@ -112830,8 +109351,9 @@ msgstr "Badewanne" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The" -" plug is intact, so you could use it to store liquids." +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." msgstr "" #: lang/json/furniture_from_json.py @@ -112848,8 +109370,11 @@ msgstr "Dusche" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." -msgstr "Du könntest dich hier waschen, wenn es fließendes Wasser gäbe." +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to" +" imagine wasting that much water." +msgstr "" #: lang/json/furniture_from_json.py msgid "sink" @@ -112858,7 +109383,8 @@ msgstr "Waschbecken" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." msgstr "" #: lang/json/furniture_from_json.py @@ -112868,8 +109394,10 @@ msgstr "Toilette" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the " +"cleanest." msgstr "" #: lang/json/furniture_from_json.py @@ -112879,15 +109407,16 @@ msgstr "Wassererhitzer" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." msgstr "" #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." +"This devices effectively sterilizes water, though without a lot of power and" +" proper plumbing, it's only good for parts now." msgstr "" #: lang/json/furniture_from_json.py @@ -112897,8 +109426,10 @@ msgstr "Fitness-Gerät" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." +"A heavy set of weightlifting equipment for strength training, with a pair of" +" heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." msgstr "" #: lang/json/furniture_from_json.py @@ -112908,9 +109439,9 @@ msgstr "Kugelmaschine" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various" -" balls for different types of sports. It's only good for parts now if " -"disassembled." +"A simple machine for launching sports balls of various types, with a pair of" +" motorized wheels that, if spun up, would fling the ball at moderate speeds." +" Probably not the most effective ranged weapon against the undead." msgstr "" #: lang/json/furniture_from_json.py @@ -112919,9 +109450,12 @@ msgstr "Billardtisch" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." msgstr "" -"Ein gut aussehender Billardtisch. Wenn du nur wüsstest, wie man spielt …" #: lang/json/furniture_from_json.py msgid "diving block" @@ -112929,8 +109463,10 @@ msgstr "Startblock" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" -msgstr "Spring! Spring! Tauch!" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." +msgstr "" #: lang/json/furniture_from_json.py msgid "target" @@ -112938,8 +109474,13 @@ msgstr "Zielscheibe" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." -msgstr "Ein Schießscheibe mit menschlichen Umrissen." +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped" +" off." +msgstr "" #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -112948,9 +109489,8 @@ msgstr "Arcade-Automat" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." msgstr "" #: lang/json/furniture_from_json.py @@ -112960,9 +109500,10 @@ msgstr "Flipperautomat" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't" -" go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While" +" inoperable without power, it's still impressive to look at, though probably" +" more useful if disassembled." msgstr "" #: lang/json/furniture_from_json.py @@ -112972,8 +109513,9 @@ msgstr "Ergometer" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." +"An exercise machine with a set of handles and plates meant to emulate rowing" +" a boat. Without power it can't be operated, but it might have useful parts" +" to be scavanged." msgstr "" #: lang/json/furniture_from_json.py @@ -112983,8 +109525,9 @@ msgstr "Laufband" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be" -" taken apart for its… parts." +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." msgstr "" #: lang/json/furniture_from_json.py @@ -112994,8 +109537,9 @@ msgstr "schwerer Sandsack" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." msgstr "" #: lang/json/furniture_from_json.py @@ -113009,8 +109553,9 @@ msgstr "Klavier" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." msgstr "" #: lang/json/furniture_from_json.py @@ -113028,9 +109573,9 @@ msgstr "" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things" -" loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." +"An upright wood-panel case of large speakers, built to produce a potentially" +" deafening volume level. While this is a terrible idea to use now, it could" +" hold useful parts." msgstr "" #: lang/json/furniture_from_json.py @@ -113039,7 +109584,10 @@ msgstr "" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." msgstr "" #: lang/json/furniture_from_json.py @@ -113048,13 +109596,22 @@ msgstr "" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "this should never actually show up, it's a pseudo furniture" msgstr "" #. ~ Description for this should never actually show up, it's a pseudo #. furniture #: lang/json/furniture_from_json.py -msgid "this should never actually show up, it's a pseudo furniture" +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." msgstr "" #: lang/json/furniture_from_json.py @@ -113063,7 +109620,10 @@ msgstr "" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -113076,7 +109636,10 @@ msgstr "" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." msgstr "" #: lang/json/furniture_from_json.py @@ -113085,7 +109648,9 @@ msgstr "" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." msgstr "" #: lang/json/furniture_from_json.py @@ -113094,7 +109659,10 @@ msgstr "TV-Antenne" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." msgstr "" #: lang/json/furniture_from_json.py @@ -113103,7 +109671,9 @@ msgstr "" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." msgstr "" #: lang/json/furniture_from_json.py @@ -113113,7 +109683,9 @@ msgstr "" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py msgid "" -"The turbine uses wind power to suck hot and humid air out of the attic." +"A rotary wind turbine that will catch the wind and pull out air from inside." +" It is most commonly used for improving air cicrulation, particularly in " +"poorly-ventilated areas like attics." msgstr "" #: lang/json/furniture_from_json.py @@ -113122,8 +109694,11 @@ msgstr "" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." -msgstr "Ein Heuballen. Du könntest darauf schlafen, wenn du verzweifelt bist." +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable" +" bed." +msgstr "" #: lang/json/furniture_from_json.py msgid "whish!" @@ -113135,10 +109710,11 @@ msgstr "Holzspanhaufen" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the" +" way." msgstr "" -"Ein Haufen aus zerhäckselten Holzstücken. Du kannst ihn mit einer Schaufel " -"bewegen." #: lang/json/furniture_from_json.py msgid "bench" @@ -113146,7 +109722,9 @@ msgstr "Bank" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." msgstr "" #: lang/json/furniture_from_json.py @@ -113155,8 +109733,10 @@ msgstr "Sessel" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." -msgstr "Ein etwas bequemerer Sitzplatz." +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." +msgstr "" #: lang/json/furniture_from_json.py msgid "airplane seat" @@ -113164,7 +109744,9 @@ msgstr "" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." msgstr "" #: lang/json/furniture_from_json.py @@ -113172,10 +109754,12 @@ msgid "chair" msgstr "Stuhl" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." -msgstr "Setz dich hin und nimm einen Drink." +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat" +" a meal properly and almost pretend that things were normal again." +msgstr "" #: lang/json/furniture_from_json.py msgid "sofa" @@ -113183,16 +109767,29 @@ msgstr "Sofa" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." msgstr "" #: lang/json/furniture_from_json.py msgid "stool" msgstr "Hocker" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "" + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." msgstr "" #: lang/json/furniture_from_json.py @@ -113202,8 +109799,8 @@ msgstr "" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." msgstr "" #: lang/json/furniture_from_json.py @@ -113213,7 +109810,9 @@ msgstr "" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground," +" it's not particularly comfortable." msgstr "" #: lang/json/furniture_from_json.py @@ -113223,8 +109822,8 @@ msgstr "Pinnwand" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." msgstr "" #: lang/json/furniture_from_json.py @@ -113233,8 +109832,10 @@ msgstr "Schild" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." -msgstr "Lies es. Warnungen stehen bevor." +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." +msgstr "" #: lang/json/furniture_from_json.py msgid "warning sign" @@ -113243,8 +109844,8 @@ msgstr "" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -113254,7 +109855,9 @@ msgstr "Bett" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -113263,7 +109866,11 @@ msgstr "" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than" +" you'd like to somebody you wouldn't normally want to share a mattress with," +" a bed's a bed." msgstr "" #: lang/json/furniture_from_json.py @@ -113273,8 +109880,8 @@ msgstr "" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place" -" to sleep. Sleeping on it right now wouldn't be great." +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." msgstr "" #: lang/json/furniture_from_json.py @@ -113284,8 +109891,9 @@ msgstr "" #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's" -" not quite as comfy as a real bed, but it's pretty close." +"An ordinary mattress left on the floor. While it's not as comfortable as an" +" entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -113296,9 +109904,10 @@ msgstr "»Rrrrrratsch!«." #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty " -"close." +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." msgstr "" #: lang/json/furniture_from_json.py @@ -113307,8 +109916,11 @@ msgstr "Notbett" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "Nicht so bequem wie ein richtiges Bett, aber es wird reichen." +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal" +" bed, albeit with a slightly lumpy mattress. Considering the circumstances," +" it's not too bad at all." +msgstr "" #: lang/json/furniture_from_json.py msgid "straw bed" @@ -113316,8 +109928,10 @@ msgstr "Strohbett" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." -msgstr "Es zwickt etwas, wenn du dich reinlegst." +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." +msgstr "" #: lang/json/furniture_from_json.py msgid "bookcase" @@ -113325,7 +109939,9 @@ msgstr "" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -113334,7 +109950,10 @@ msgstr "" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden" +" cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -113343,7 +109962,11 @@ msgstr "Sarg" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will" +" likely never receive." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -113357,8 +109980,10 @@ msgstr "offener Sarg" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." msgstr "" #: lang/json/furniture_from_json.py @@ -113368,8 +109993,9 @@ msgstr "Kiste" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." msgstr "" #: lang/json/furniture_from_json.py @@ -113378,14 +110004,19 @@ msgstr "offene Kiste" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" -msgstr "Was ist drinnen? Wirf einen Blick herein!" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of" +" nails, could be sealed back shut." +msgstr "" #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." +"A large box made of a brown paper-based material. Could contain a number of" +" things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect" +" you if you're found." msgstr "" #: lang/json/furniture_from_json.py @@ -113402,8 +110033,10 @@ msgstr "Kleiderschrank" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." -msgstr "Mach dich schick für den Zombieball oder andere Gelegenheiten." +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." +msgstr "" #: lang/json/furniture_from_json.py msgid "glass front cabinet" @@ -113411,7 +110044,10 @@ msgstr "" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -113426,8 +110062,12 @@ msgstr "Waffentresor" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." -msgstr "Oh! Es glänzt." +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "screeching metal!" @@ -113439,9 +110079,11 @@ msgstr "blockierter Waffentresor" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." msgstr "" -"Sind da Schusswaffen drinnen? Das wirst du nicht erfahren. Es ist blockiert." #: lang/json/furniture_from_json.py msgid "electronic gun safe" @@ -113449,8 +110091,12 @@ msgstr "elektronischer Waffentresor" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" -msgstr "Kannst du ihn auf-hacken, um an die Schusswaffen zu kommen?" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking" +" system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." +msgstr "" #: lang/json/furniture_from_json.py msgid "locker" @@ -113458,8 +110104,10 @@ msgstr "Spind" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." -msgstr "Üblicherweise benutzt, um Ausrüstung oder Gegenstände aufzubewahren." +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "mailbox" @@ -113468,8 +110116,9 @@ msgstr "Briefkasten" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come" -" for awhile. Doesn't look like it's coming again anytime soon." +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." msgstr "" #: lang/json/furniture_from_json.py @@ -113478,7 +110127,10 @@ msgstr "" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes." +" Usually used in theater or retail environments, it's easy to use and quick" +" to access." msgstr "" #: lang/json/furniture_from_json.py @@ -113487,8 +110139,10 @@ msgstr "Gestell" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." -msgstr "Stell deine Gegenstände aus." +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." +msgstr "" #: lang/json/furniture_from_json.py msgid "wooden rack" @@ -113496,7 +110150,9 @@ msgstr "" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." msgstr "" #: lang/json/furniture_from_json.py @@ -113505,8 +110161,10 @@ msgstr "Garderobe" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." -msgstr "Ein Hakengestell zum Aufhängen von Jacken und Hüten." +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." +msgstr "" #: lang/json/furniture_from_json.py msgid "recycle bin" @@ -113514,8 +110172,12 @@ msgstr "Wertstofftonne" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." -msgstr "Enthält Gegenstände für die Wiederverwertung." +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it." +" While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." +msgstr "" #: lang/json/furniture_from_json.py msgid "safe" @@ -113523,13 +110185,18 @@ msgstr "Tresor" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." -msgstr "Verwahrt Gegenstände. Sicher." +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." +msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" -msgstr "Wofür braucht man so einen Schutz?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "open safe" @@ -113537,8 +110204,10 @@ msgstr "offener Tresor" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" -msgstr "Schnapp dir die Waffen!" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." +msgstr "" #: lang/json/furniture_from_json.py msgid "trash can" @@ -113546,7 +110215,10 @@ msgstr "Mülleimer" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." msgstr "" #: lang/json/furniture_from_json.py @@ -113555,7 +110227,10 @@ msgstr "Kleiderschrank" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." msgstr "" #: lang/json/furniture_from_json.py @@ -113565,9 +110240,8 @@ msgstr "Aktenschrank" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." msgstr "" #: lang/json/furniture_from_json.py @@ -113576,7 +110250,9 @@ msgstr "" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools" +" and materials for easy access to workers." msgstr "" #: lang/json/furniture_from_json.py @@ -113586,8 +110262,7 @@ msgstr "" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." +"A huge, sturdy steel shelf for storing pallets of crates in warehouses." msgstr "" #: lang/json/furniture_from_json.py @@ -113596,7 +110271,9 @@ msgstr "Holzfässchen" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." msgstr "" #: lang/json/furniture_from_json.py @@ -113605,7 +110282,10 @@ msgstr "Schaukasten" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." msgstr "" #: lang/json/furniture_from_json.py @@ -113614,8 +110294,12 @@ msgstr "zerbrochener Schaukasten." #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." -msgstr "Stell deine Gegenstände aus. Sie werden gestohlen werden." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Would be useful for storing valuable things while still showing them off, " +"if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." +msgstr "" #: lang/json/furniture_from_json.py msgid "standing tank" @@ -113623,9 +110307,9 @@ msgstr "Stehtank" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." msgstr "" -"Ein großer freistehender Metalltank für das Aufbewahren von Flüssigkeiten." #: lang/json/furniture_from_json.py msgid "dumpster" @@ -113633,7 +110317,10 @@ msgstr "Müllcontainer" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." msgstr "" #: lang/json/furniture_from_json.py @@ -113642,7 +110329,9 @@ msgstr "" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." msgstr "" #: lang/json/furniture_from_json.py @@ -114488,68 +111177,6 @@ msgid "" "inducing aroma." msgstr "" -#: lang/json/furniture_from_json.py -msgid "hydroponics unit" -msgstr "" - -#. ~ Description for hydroponics unit -#: lang/json/furniture_from_json.py -msgid "This is a self-contained hydroponics unit used to grow crops indoors." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seed" -msgstr "" - -#. ~ Description for hydroponics unit with seed -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seed" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seedling" -msgstr "" - -#. ~ Description for hydroponics unit with seedling -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seedling" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with mature plant" -msgstr "" - -#. ~ Description for hydroponics unit with mature plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with harvestable plant" -msgstr "" - -#. ~ Description for hydroponics unit with harvestable plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant that is ready for harvest." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics heater" -msgstr "" - -#. ~ Description for hydroponics heater -#: lang/json/furniture_from_json.py -msgid "This is a self-contained heater, used to warm hydroponics units." -msgstr "" - #: lang/json/furniture_from_json.py msgid "Translocator Gate" msgstr "" @@ -114658,16 +111285,21 @@ msgid "" msgstr "" #: lang/json/furniture_from_json.py -msgid "krash!" -msgstr "knirsch!" +msgid "tank trap" +msgstr "Panzersperre" +#. ~ Description for fungal mass #: lang/json/furniture_from_json.py -msgid "krak." -msgstr "knacks." +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." +msgstr "" +#. ~ Description for fungal clump #: lang/json/furniture_from_json.py -msgid "tank trap" -msgstr "Panzersperre" +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +msgstr "" #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py @@ -114864,13 +111496,13 @@ msgstr[1] "" msgid "Fake gun that fires acid globs." msgstr "Fake-Gewehr, welches Säureklumpen feuert." -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item_factory.cpp msgid "auto" msgstr "automatisch" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "Gewehr" @@ -114881,6 +111513,73 @@ msgid_plural "acid dart guns" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "Rohrkombigewehr" +msgstr[1] "Rohrkombigewehre" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from" +" a double barrel shotgun." +msgstr "" +"Eine selbstgemachte dreiläufige Feuerwaffe, ein Lauf für .30-06 und die zwei" +" anderen für Schrotmunition. Sie wurde aus Rohren und Teilen, die aus einer " +"doppelläufigen Flinte ausgeschlachtet wurden, gebaut." + +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "Schrotflinte" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] ".30-06-Rohrgewehr" +msgstr[1] ".30-06-Rohrgewehre" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" +" strike the single round it holds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "selbstgebauter Karabiner" +msgstr[1] "selbstgebaute Karabiner" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the" +" better homemade weapons." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] ".223-Rohrgewehr" +msgstr[1] ".223-Rohrgewehre" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -115009,9 +111708,7 @@ msgstr "" "Isolierband und Elektronik besteht, wird sie von einer Standard-Esz. " "betrieben." -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py -#: lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "Pistole" @@ -115126,11 +111823,6 @@ msgstr "einfach" msgid "double" msgstr "doppel" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "Schrotflinte" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -115222,6 +111914,44 @@ msgstr "" "abnehmbaren Magazinen nachgeladen werden und ist insgesamt eine viel " "effektivere Waffe." +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "AN-94" +msgstr[1] "AN-94s" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" +"Dieses Gewehr war dafür gedacht, die AK-74 zu ersetzen. Es benutzt einen " +"aufwändigen Mechanismus, um den gefühlten Rückstoß zu verzögern, zusammen " +"mit einem sehr schnellen zweischüssigen Feuerstoßmodus. Obwohl dessen " +"erhöhte Komplexität die Verwendung im russischem Militär verhinderte, fand " +"es unter ihren Spezialeinheiten Verwendung." + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "2 P." + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "tragbare Laserkanone" +msgstr[1] "tragbare Laserkanonen" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "" +"Dies ist eine Laserkanone, die vom Lauf eines »TX-5LR-" +"Cerberus«-Lasergeschützturms abgerissen wurde; sie wurde so modifiziert, " +"dass sie Esz.-Strom zum Feuern benutzen kann." + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -115587,6 +112317,21 @@ msgid "" "retains the integral bipod, though." msgstr "" +#: lang/json/gun_from_json.py +msgid "FS2000" +msgid_plural "FS2000s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A sleek bullpup carbine designed by FN Herstal, complete with an integrated " +"sight accessory rail. The forward ejecting action and ambidextrous controls" +" make firing comfortable for both left and right-handed shooting. The whole" +" rifle is well sealed from mud and dust for reliability, but this makes it " +"incompatible with many aftermarket magazines." +msgstr "" + #: lang/json/gun_from_json.py msgid "HK416 A5" msgid_plural "HK416 A5s" @@ -115637,6 +112382,19 @@ msgstr "" msgid "burst" msgstr "" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -115699,18 +112457,6 @@ msgid "" "buttstock." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] ".223-Rohrgewehr" -msgstr[1] ".223-Rohrgewehre" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" -" strike the single round it holds." -msgstr "" - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -115776,19 +112522,6 @@ msgstr "" "Design benutzt. Sie wird von Streit- und Polizeikräften vieler Nationen " "verwendet und genießt niedrigen Rückstoß und hohe Treffgenauigkeit." -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "selbstgebauter Karabiner" -msgstr[1] "selbstgebaute Karabiner" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the" -" better homemade weapons." -msgstr "" - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -115940,12 +112673,6 @@ msgstr "" "Schaden aber ist vielleicht nicht so treffsicher wie die konkurrierende " "Browning BLR." -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] ".30-06-Rohrgewehr" -msgstr[1] ".30-06-Rohrgewehre" - #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" msgid_plural "Remington ACR .300BLKs" @@ -116100,17 +112827,15 @@ msgstr "" "keine Actionfilmhelden sind." #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." msgstr "" #: lang/json/gun_from_json.py @@ -117011,10 +113736,10 @@ msgstr "" "auf den Rückstoß auf." #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" -msgstr[0] "Thompson-Maschinenpistole" -msgstr[1] "Thompson-Maschinenpistolen" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" +msgstr[0] "" +msgstr[1] "" #: lang/json/gun_from_json.py msgid "" @@ -117053,8 +113778,8 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" msgstr[0] "" msgstr[1] "" @@ -117355,29 +114080,6 @@ msgstr "" "Zuverlässigkeit der AK-Serie mit der schnellen und leichten 5,45×39mm-" "Patrone." -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "AN-94" -msgstr[1] "AN-94s" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" -"Dieses Gewehr war dafür gedacht, die AK-74 zu ersetzen. Es benutzt einen " -"aufwändigen Mechanismus, um den gefühlten Rückstoß zu verzögern, zusammen " -"mit einem sehr schnellen zweischüssigen Feuerstoßmodus. Obwohl dessen " -"erhöhte Komplexität die Verwendung im russischem Militär verhinderte, fand " -"es unter ihren Spezialeinheiten Verwendung." - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "2 P." - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -117818,20 +114520,6 @@ msgstr "" "Lauf für maximale Beherrschbarkeit. Kompatibel mit Kasten und " "RMGD250-Trommelmagazinen." -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "RM99-Revolver" -msgstr[1] "RM99-Revolver" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" -" addition to the arsenal of any gunslinger." -msgstr "" -"Von einigen als Overkill betrachtet bleibt die Rivtech M99 eine " -"außerordentlich starke Erweiterung zum Arsenal eines jeden Revolverhelden." - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -118363,22 +115051,6 @@ msgstr "" " Kaliber 12 besteht. Historisch von egomanischen Jägern in Afrika benutzt, " "nun von ihren egomanischen Nachkommen in Neuengland benutzt." -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "Rohrkombigewehr" -msgstr[1] "Rohrkombigewehre" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from" -" a double barrel shotgun." -msgstr "" -"Eine selbstgemachte dreiläufige Feuerwaffe, ein Lauf für .30-06 und die zwei" -" anderen für Schrotmunition. Sie wurde aus Rohren und Teilen, die aus einer " -"doppelläufigen Flinte ausgeschlachtet wurden, gebaut." - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -118559,6 +115231,19 @@ msgid "" "action means this is much less likely to jam." msgstr "" +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -118962,21 +115647,6 @@ msgid "" "quiet and accurate marksman laser rifle." msgstr "" -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "tragbare Laserkanone" -msgstr[1] "tragbare Laserkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "" -"Dies ist eine Laserkanone, die vom Lauf eines »TX-5LR-" -"Cerberus«-Lasergeschützturms abgerissen wurde; sie wurde so modifiziert, " -"dass sie Esz.-Strom zum Feuern benutzen kann." - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" @@ -119233,12 +115903,8 @@ msgstr[1] "Kugelschnäpper" msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." +"hunting small game." msgstr "" -"Eine modifizierte Variante der klassischen Armbrust. Sie verwendet Steine " -"statt der traditionellen Bolzen als Projektile und ist hauptsächlich dafür " -"gedacht, Kleinwild zu jagen. Stärkere Leute können sie viel schneller " -"nachladen." #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -119265,13 +115931,9 @@ msgstr[1] "Armbrüste" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." msgstr "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of remaining" -" intact for re-use." #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -119456,10 +116118,9 @@ msgstr[1] "Schleudern" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." +"A leather sling, can launch rocks much further and faster than throwing them" +" by hand." msgstr "" -"Ein Lederriemen, er ist einfach zu benutzen und er ist genau. Er benutzt " -"Kieselsteine als Munition." #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -119474,11 +116135,9 @@ msgstr[1] "Steinschleudern" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as " -"ammunition." +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." msgstr "" -"Eine hölzerne Steinschleuder, die einfach zu benutzen und genau ist. Sie " -"benutzt Kieselsteine als Munition." #: lang/json/gun_from_json.py msgid "staff sling" @@ -119488,11 +116147,9 @@ msgstr[1] "Stockschleudern" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." msgstr "" -"Eine Lederschleuder, die an einem Stock befestigt ist, einfach zu benutzen " -"und genau. Sie benutzt Steine als Munition. " #: lang/json/gun_from_json.py msgid "brace slingshot" @@ -119502,11 +116159,9 @@ msgstr[1] "Schonerschleudern" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." msgstr "" -"Eine moderne Steinschleuder mit einem Handgelenkschoner, sie ist leicht zu " -"verwenden, treffsicher und ziemlich stark." #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -119795,8 +116450,7 @@ msgid "" " mid-range versatility of the 9mm with the power of the 12 gauge shotgun. " "To further compliment the CQB aspect, the stock is built to amplify the " "user's force and the rugged construction with tonfa-like grip can handle " -"bashing in enemy heads. An integrated magazine makes it a pain to reload, " -"but keeps your clip from ejecting accidently." +"bashing in enemy heads." msgstr "" #: lang/json/gun_from_json.py @@ -119851,7 +116505,7 @@ msgid "" "Experimental double purpose tool under development in C.R.I.T R&D. It takes" " a regular nail and then enlongates it within a fraction of a second before " "firing it out, upon reaching a target, the fragile stake explodes into " -"shards." +"shards inside the target." msgstr "" #: lang/json/gun_from_json.py @@ -119978,296 +116632,33 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "SVS-24" -msgid_plural "SVS-24" -msgstr[0] "SVS-24" -msgstr[1] "SVS-24" - -#: lang/json/gun_from_json.py -msgid "" -"The Sarafanov Assault Rifle replaced the famous AK family of guns as the " -"service rifle of the Russian Army. It uses the 6.54x42mm cartridge." -msgstr "" -"Die Sarafanov Assault Rifle ist ein Sturmgewehr, das die berühmte AK-Familie" -" der Gewehre als die Ordonnanzwaffe der russischen Armee ersetzte. Es " -"benutzt die 6,54×42mm-Patrone." - -#: lang/json/gun_from_json.py -msgid "SVS-24C" -msgid_plural "SVS-24C" -msgstr[0] "SVS-24C" -msgstr[1] "SVS-24C" - -#: lang/json/gun_from_json.py -msgid "" -"The compact version of the standard SVS-24. It is commonly issued to tank " -"crews or special forces due to its smaller size. The shorter barrel reduces" -" accuracy." -msgstr "" -"Die Kompaktvariante der Standardausführung der SVS-24. Sie wird " -"üblicherweise an Panzerbesatzungen oder Spezialeinsatzkräfte aufgrund ihrer " -"kleineren Größe ausgegeben. Der kürzere Lauf verringert die " -"Treffgenauigkeit." - -#: lang/json/gun_from_json.py -msgid "CW-24" -msgid_plural "CW-24" -msgstr[0] "CW-24" -msgstr[1] "CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It was made by Clearwater Arms, Georgia, " -"for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" -" cartridge." -msgstr "" -"Dies ist die Zivilversion der SVS-24. Sie wurde von Clearwater Arms aus " -"Georgia für den US-Markt gemacht. Sie ist rein halbautomatisch und feuert " -"die schwächere »5,45×39mm«-Patrone." - -#: lang/json/gun_from_json.py -msgid "CW-24M" -msgid_plural "CW-24M" -msgstr[0] "CW-24M" -msgstr[1] "CW-24M" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" -" as the SVS-24." -msgstr "" -"Dies ist die Zivilvariante der SVS-24. Diese hier feuert die gleiche 6,54" -"×42mm-Patrone wie die SVS-24." - -#: lang/json/gun_from_json.py -msgid "CW-24K" -msgid_plural "CW-24K" -msgstr[0] "CW-24K" -msgstr[1] "CW-24K" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the cheaper, but still " -"powerful, 7.62x39mm cartridge." -msgstr "" -"Dies ist die Zivilversion der SVS-24. Diese hier feuert die billigere, aber " -"immer noch starke 7,62×39mm-Patrone." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24" -msgid_plural "Modified CW-24" -msgstr[0] "modifizierte CW-24" -msgstr[1] "modifizierte CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It has a modified receiver and a new " -"crudely crafted full-auto bolt carrier. Don't expect the original " -"reliability." -msgstr "" -"Dies ist die Zivilversion der SVS-24. Sie hat ein modifiziertes " -"Verschlussgehäuse und einen neuen grob zusammengebastelten vollautomatischen" -" Verschlussträger. Erwarte nicht die Zuverlässigkeit des Originals." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24M" -msgid_plural "Modified CW-24M" -msgstr[0] "modifizierte CW-24M" -msgstr[1] "modifizierte CW-24M" - -#: lang/json/gun_from_json.py -msgid "CWD-63" -msgid_plural "CWD-63" -msgstr[0] "CWD-63" -msgstr[1] "CWD-63" - -#: lang/json/gun_from_json.py -msgid "" -"The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " -"rechambered for the .308 round." -msgstr "" -"Die »Clearwater Arms«-Version der berühmten SVD-63 Dragunov. Diesem Exemplar" -" wurde das Patronenlager für die .308-Patrone umgebaut." - -#: lang/json/gun_from_json.py -msgid "Wrist DREAD" -msgid_plural "Wrist DREAD" -msgstr[0] "Handgelenk-DREAD" -msgstr[1] "Handgelenk-DREAD" - -#: lang/json/gun_from_json.py -msgid "" -"The miniaturized version of the DREAD MkIX attached to the wrist of the " -"operator. It fires .20 metal pellets at an incredible rate without any " -"flash or noise. It is mainly a defensive weapon." -msgstr "" -"Die stark verkleinerte Version der DREAD MkIX wird am Handgelenk des " -"Benutzers angebracht. Sie feuert .20-Metallkügelchen mit einer enormen " -"Feuerrate ohne irgendwelche Blitze oder Lärm. Sie ist hauptsächlich eine " -"Verteidigungswaffe." - -#: lang/json/gun_from_json.py -msgid "JHEC M128" -msgid_plural "JHEC M128s" -msgstr[0] "JHEC M128s" -msgstr[1] "JHEC M128s" - -#: lang/json/gun_from_json.py -msgid "" -"The Johnson Heavy Equipment Co. M128 autorevolver; all others fail to " -"measure up. Johnson Heavy Equipment Co. is a subsidiary of D&B " -"Minneapolis." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "Boomlighter 454" -msgid_plural "Boomlighter 454s" -msgstr[0] "Boomlighter 454" -msgstr[1] "Boomlighter 454s" - -#: lang/json/gun_from_json.py -msgid "" -"Handmade by master gunsmiths at D&B Minneapolis, this deadly accurate and " -"powerful pistol packs a punch with precision, power and flair. Comes with a" -" one of a kind integrated flamethrower." -msgstr "" -"Diese Pistole wurde von den Meisterwaffenschmieden von D&B Minneapolis von " -"Hand gefertigt und ist eine tödlich zielsichere und starke Pistole, die mit " -"Präzision, Stärke und Flair glänzt. Sie ist mit einem einzigartigen " -"eingebauten Flammenwerfer ausgestattet." - -#: lang/json/gun_from_json.py -msgid "gunsword" -msgid_plural "gunswords" -msgstr[0] "Gewehrschwert" -msgstr[1] "Gewehrschwerter" - -#: lang/json/gun_from_json.py -msgid "" -"A long sharp blade, with two powerful .500 S&W Magnum chambers in the hilt." -" While chambering big rounds, the barrels are so short it slightly reduces " -"outgoing damage." -msgstr "" -"Eine lange scharfe Klinge mit zwei starken .500-S&W-Magnum-Kammern im Griff." -" Obwohl sie große Patronen verwenden, sind die Läufe so kurz, dass sie " -"leicht den ausgehenden Schaden reduzieren." - -#: lang/json/gun_from_json.py -msgid "gunknife" -msgid_plural "gunknives" -msgstr[0] "Gewehrmesser" -msgstr[1] "Gewehrmesser" - -#: lang/json/gun_from_json.py -msgid "" -"A short but sharp blade, with two powerful .500 S&W Magnum chambers in the " -"grip. While chambering big rounds, the barrels are so short it slightly " -"reduces outgoing damage." -msgstr "" -"Eine kurze aber scharfe Klinge mit zwei starken .500-S&W-Magnum-Kammern im " -"Griff. Obwohl sie große Patronen verwenden, sind die Läufe so kurz, dass sie" -" leicht den ausgehenden Schaden reduzieren." - -#: lang/json/gun_from_json.py -msgid "FiveO handcannon" -msgid_plural "FiveO handcannons" -msgstr[0] "FiveO-Handkanone" -msgstr[1] "FiveO-Handkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"Someone crazy thought that the .50 BMG belonged in a pistol. This massive " -"piece of steel proves otherwise. The sheer bulk however does make it quite " -"adept at smashing face." -msgstr "" -"Irgendso ein Verrückter dachte, dass die .50 BMG in eine Pistole gehört. " -"Dieses große Stück Stahl beweist das Gegenteil. Das schiere Masse macht es " -"jedoch ganz gut dafür geeignet, die Fresse einzuschlagen." - -#: lang/json/gun_from_json.py -msgid "M919" -msgid_plural "M919s" -msgstr[0] "M919" -msgstr[1] "M919s" - -#: lang/json/gun_from_json.py -msgid "" -"Manufactured by Sarah and Suhl machine company of Portland, Maine, the M919 " -"submachine gun is the most accurate 9x19mm submachine gun on the market. " -"Intended for police use, it is fitted with an integral grenade launcher." -msgstr "" -"Die M191 wurde vom Maschinenunternehmen Sarah and Suhl aus Portland in Maine" -" hergestellt und ist die treffsicherste 9×19mm-Maschinenpistole auf dem " -"Markt. Sie ist gedacht für polizeiliche Verwendung und ist mit einem " -"eingebauten Granatenwerfer ausgestattet." - -#: lang/json/gun_from_json.py -msgid "Eagle 1776" -msgid_plural "Eagle 1776" -msgstr[0] "Eagle 1776" -msgstr[1] "Eagle 1776" - -#: lang/json/gun_from_json.py -msgid "" -"You see before you a marvel of American engineering: a powerful .44 Magnum " -"submachine gun, made from fine parts assembled in America, including an " -"integral grenade launcher. Eagle 1776: From the arsenal of freedom!" -msgstr "" -"Hier siehst du ein Wunderwerk des amerikanischen Ingenieurwesens: Eine " -"starke .44-Magnum-Maschinenpistole, die aus guten Teilen in Amerika " -"zusammengebaut wurde, inklusive einem eingebauten Granatenwerfer. Eagle " -"1776: Aus dem Arsenal der Freiheit!" - -#: lang/json/gun_from_json.py -msgid "L.T. carbine" -msgid_plural "L.T. carbines" +msgid "pipe rifle" +msgid_plural "pipe rifles" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"The Lightning Trail carbine was developed for the riot police to quickly " -"blanket an area with lightning clouds. While damaging, it is less lethal " -"than live ammunition." -msgstr "" -"Der »Lightning Trail«-Karabiner wurde für die Bereitschaftspolizei " -"entwickelt, um ein Gebiet rasch mit Blitzwolken zu überdecken. Das ist " -"schädlich, aber weniger tödlich als scharfe Munition." - -#: lang/json/gun_from_json.py -msgid "arc cannon" -msgid_plural "arc cannons" -msgstr[0] "Lichtbogenkanone" -msgstr[1] "Lichtbogenkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"The arc cannon fires bolts of lightning arcing between targets in close " -"proximity to each other. Originally manufactured to fry insects, now it’s " -"been turned up to fry zombies." +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." msgstr "" -"Die Lichtbogenkanone feuert Blitzbolzen, die Bögen zwischen Zielen, die nahe" -" zusammen sind, bilden. Ursprünglich hergestellt, um Insekten zu brutzeln, " -"jetzt wurde sie aufgemotzt, um Zombies zu brutzeln." #: lang/json/gun_from_json.py -msgid "M1911 DS" -msgid_plural "M1911 DSs" -msgstr[0] "M1911 DS" -msgstr[1] "M1911 DSs" +msgid "survivor carbine" +msgid_plural "survivor carbines" +msgstr[0] "" +msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"The M1911 Darkstalker is a very modified M1911, it has a fully integrated " -"crossbow and added rails. Professional looking with a ebony black finish, " -"laced with lime green details. Now they will know why they fear the night." -" Bat hood sold separately." +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than" +" ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." msgstr "" -"Der M1911 Darkstalker ist eine sehr modifizierte M1911; er hat eine " -"vollintegrierte Armbrust, ebenso wurden Schienen hinzugefügt. Er sieht " -"professionell aus mit einer Lackierung so schwarz wie Ebenholz mit kleinen " -"lindgrünen Details. Jetzt werden sie wissen, warum sie sich vor der Nacht " -"fürchten. Die Fledermauskapuze wird separat verkauft." #: lang/json/gun_from_json.py msgid "antique pistol" @@ -120626,35 +117017,6 @@ msgid "" "to reload." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than" -" ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -120895,147 +117257,6 @@ msgstr "" msgid "Fake gun that fires barbed javelins." msgstr "" -#: lang/json/gun_from_json.py -msgid "fire lance" -msgid_plural "fire lances" -msgstr[0] "Feuerlanze" -msgstr[1] "Feuerlanzen" - -#: lang/json/gun_from_json.py -msgid "" -"An ancient Chinese spear, with a small tube attached for a charge of " -"gunpowder. While it has an extremely short range, it gives a powerful edge " -"in close combat." -msgstr "" -"Ein antiker chinesischer Speer, an dem ein kleines Röhrchen für eine " -"Schießpulverladung befestigt wurde. Obwohl der Speer eine sehr kurze " -"Reichweite hat, hat er einen starken Vorteil im Nahkampf." - -#: lang/json/gun_from_json.py -msgctxt "gun_type_type" -msgid "melee" -msgstr "Nahkampf" - -#: lang/json/gun_from_json.py -msgid "base robogun" -msgid_plural "base roboguns" -msgstr[0] "Basis-Robogewehr" -msgstr[1] "Basis-Robogewehre" - -#: lang/json/gun_from_json.py -msgid "" -"This is a pseudo item for monster attacks. If you see this, it's a bug." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "integral 12 gauge shotgun" -msgid_plural "integral 12 gauge shotguns" -msgstr[0] "eingebaute Kaliber-12-Flinte" -msgstr[1] "eingebaute Kaliber-12-Flinten" - -#: lang/json/gun_from_json.py -msgid "integral 50 caliber machinegun" -msgid_plural "integral 50 caliber machineguns" -msgstr[0] "integriertes Kaliber-.50-Maschinengewehr" -msgstr[1] "integrierte Kaliber-.50-Maschinengewehre" - -#: lang/json/gun_from_json.py -msgid "integral needle gun" -msgid_plural "integral needle guns" -msgstr[0] "eingebautes Nadelgewehr" -msgstr[1] "eingebaute Nadelgewehre" - -#: lang/json/gun_from_json.py -msgid "integral 8mm firearm" -msgid_plural "integral 8mm firearms" -msgstr[0] "integrierte 8mm-Feuerwaffe" -msgstr[1] "integrierte 8mm-Feuerwaffen" - -#: lang/json/gun_from_json.py -msgid "integral laser emitter" -msgid_plural "integral laser emitters" -msgstr[0] "integrierter Laser-Emitter" -msgstr[1] "integrierte Laser-Emitter" - -#: lang/json/gun_from_json.py -msgid "integral railgun" -msgid_plural "integral railguns" -msgstr[0] "integriertes Schienengewehr" -msgstr[1] "integrierte Schienengewehre" - -#: lang/json/gun_from_json.py -msgid "integral lightning caster" -msgid_plural "integral lightning casters" -msgstr[0] "eingebaute Blitzkanone" -msgstr[1] "eingebaute Blitzkanonen" - -#: lang/json/gun_from_json.py -msgid "integral EMP generator" -msgid_plural "integral EMP generators" -msgstr[0] "integrierter EMP-Generator" -msgstr[1] "integrierte EMP-Generatoren" - -#: lang/json/gun_from_json.py -msgid "atlatl" -msgid_plural "atlatls" -msgstr[0] "Speerschleuder" -msgstr[1] "Speerschleudern" - -#: lang/json/gun_from_json.py -msgid "" -"A wooden tool for supporting a javelin, to throw it more effectively than by" -" hand." -msgstr "" -"Ein hölzernes Werkzeug, um einen Wurfspeer zu halten, um ihn effektiver zu " -"werfen als von Hand." - -#: lang/json/gun_from_json.py -msgid "makeshift crossbow" -msgid_plural "makeshift crossbows" -msgstr[0] "selbstgebaute Armbrust" -msgstr[1] "selbstgebaute Armbrüste" - -#: lang/json/gun_from_json.py -msgid "" -"A simple, handmade crossbow of the Skane style, with a wooden peg that is " -"pushed up from underneath to loose the bowstring. Not as powerful as other " -"crossbow designs, but it is easier to draw the bow back. Bolts fired from " -"this weapon have a good chance of remaining intact for re-use." -msgstr "" -"Eine einfache selbstgemachte Armbrust im Skane-Stil, mit einem hölzernen " -"Stift, der von unterhalb nach oben gedrückt wird, um die Bogensehne zu " -"lösen. Nicht so stark wie andere Armbrusttypen, aber es ist leichter, die " -"Sehne zu ziehen. Abgefeuerte Bolzen bleiben wahrscheinlich intakt, um zum " -"Wiedergebrauch wieder geborgen werden zu können." - -#: lang/json/gun_from_json.py -msgid "" -"This is a replica of the bow possessed by Odin, Ichaival, which is rumored " -"to fire 10 arrows with every pull of the string. It has gold and silver " -"ornaments on it." -msgstr "" -"Dies ist eine Replikat des Bogens, dem Odin gehörte, Ichaival. Gerüchte " -"besagten, dass er 10 Pfeile mit nur einem Schuss feuern kann. Er hat Gold- " -"und Silberverzierungen." - -#: lang/json/gun_from_json.py -msgid "integral nailgun" -msgid_plural "integral nailguns" -msgstr[0] "eingebautes Nagelgewehr" -msgstr[1] "eingebaute Nagelgewehre" - -#: lang/json/gun_from_json.py -msgid "mounted crossbow" -msgid_plural "mounted crossbows" -msgstr[0] "montierte Armbrust" -msgstr[1] "montierte Armbrüste" - -#: lang/json/gun_from_json.py -msgid "Vortical plasma beam" -msgid_plural "Vortical plasma beams" -msgstr[0] "Wirbelnder Plasmastrahl" -msgstr[1] "Wirbelnde Plasmastrahlen" - #: lang/json/gun_from_json.py msgid "TEST compound bow" msgid_plural "TEST compound bows" @@ -121043,672 +117264,32 @@ msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py -msgid "30mm autocannon" -msgid_plural "30mm autocannons" -msgstr[0] "30mm-Autokanone" -msgstr[1] "30mm-Autokanonen" - -#: lang/json/gun_from_json.py -msgid "" -"A chain-driven autocannon chambered in 30x113mm, originally designed for " -"aircraft use, but later adapted for armored vehicles. Obviously it needs to" -" be mounted on a vehicle to fire." -msgstr "" -"Eine kettengetriebene Autokanone für 30×113mm, ursprünglich zur Verwendung " -"mit Luftfahrzeugen ausgelegt, aber später wurde sie für gepanzerte Fahrzeuge" -" angepasst. Offensichtlich muss sie auf ein Fahrzeug montiert werden, um " -"feuern zu können." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "120mm tank gun" -msgid_plural "120mm tank guns" -msgstr[0] "120mm-Panzerkanone" -msgstr[1] "120mm-Panzerkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " -"to fire." -msgstr "" -"Eine 120mm-Kanone eines Panzers. Offensichtlich muss sie auf ein Fahrzeug " -"montiert werden, um feuern zu können." - -#: lang/json/gun_from_json.py -msgid "120mm autoloading tank gun" -msgid_plural "120mm autoloading tank guns" -msgstr[0] "selbstladende 120mm-Panzerkanone" -msgstr[1] "selbstladende 120mm-Panzerkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"Eine 120mm-Kanone eines Panzers mit einem 5-Schuss-Autolader. Offensichtlich" -" muss sie auf ein Fahrzeug montiert werden, um feuern zu können." - -#: lang/json/gun_from_json.py -msgid "120mm remote weapon system" -msgid_plural "120mm remote weapon systems" -msgstr[0] "120mm-Funkpanzerkanone" -msgstr[1] "120mm-Funkpanzerkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon with an advanced autoloader, designed to operate via remote " -"control. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"Eine 120mm-Kanone eines Panzers mit einem fortgeschrittenem Autolader, dafür" -" gemacht, mit einer Fernsteuerung gesteuert zu werden. Offensichtlich muss " -"sie auf ein Fahrzeug montiert werden, um feuern zu können." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "155mm howitzer" -msgid_plural "155mm howitzers" -msgstr[0] "155mm-Haubitze" -msgstr[1] "155mm-Haubitzen" - -#: lang/json/gun_from_json.py -msgid "" -"A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"Eine 155mm-Kanone für die Artillerie und schwere Panzer. Offensichtlich muss" -" sie auf ein Fahrzeug montiert werden, um feuern zu können." - -#: lang/json/gun_from_json.py -msgid "Vehicular ATGM Launcher" -msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "Fahrzeug-ATGM-Werfer" -msgstr[1] "Fahrzeug-ATGM-Werfer" - -#: lang/json/gun_from_json.py -msgid "" -"A launcher for anti-tank guided missiles. While highly accurate, it isn't " -"fire-and-forget. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"Ein Werfer für Panzerabwehrlenkraketen. Obwohl er ziemlich treffsicher ist, " -"muss man immer noch halbwegs richtig zielen. Offensichtlich muss er auf ein " -"Fahrzeug montiert werden, um feuern zu können." - -#: lang/json/gun_from_json.py -msgid "slingshot cannon" -msgid_plural "slingshot cannons" -msgstr[0] "Steinschleuderkanone" -msgstr[1] "Steinschleuderkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"Essentially several long drawstrings held by two long, reinforced sides and " -"a mechanism attached to a crank to draw and fire it. It's deceptively " -"powerful and surprisingly accurate, but far too large to be used without " -"some sort of stable platform." -msgstr "" -"Hauptsächlich einige lange Kordeln, welche von zwei langen verstärkten " -"Seiten und einem Mechanismus, der an einer Kurbel angebracht wurde, um es zu" -" ziehen und abzufeuern, gehalten werden. Die Waffe ist unglaublich stark und" -" überaschend treffsicher, aber viel zu groß, um ohne eine stabile Halterung " -"benutzt zu werden." - -#: lang/json/gun_from_json.py -msgid "lacerator" -msgid_plural "lacerators" -msgstr[0] "Lazerator" -msgstr[1] "Lazeratoren" - -#: lang/json/gun_from_json.py -msgid "" -"This weapon launches serrated metal disks at nearby enemies. It draws its " -"power from a vehicle's engines, and thus must be mounted on such in order to" -" be operated." -msgstr "" -"Diese Waffe wirft gezackte Scheiben auf Feinde in der Nähe. Sie entnimmt " -"ihren Strom aus den Motoren eines Fahrzeugs und muss daher auf ein solches " -"montiert werden, um betrieben werden zu können." - -#: lang/json/gun_from_json.py -msgid "rotary cannon" -msgid_plural "rotary cannons" -msgstr[0] "Drehkanone" -msgstr[1] "Drehkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"This fearsome weapon sports 3 barrels in a cyclic configuration. A " -"specialized mechanism loads the otherwise troublesome rounds; allowing it to" -" be fired in quick succession. However, this renders it incredibly " -"unwieldy, and it must be mounted on a support structure in order to be " -"fired." -msgstr "" -"Diese furchteinflößende Waffe hat 3 Läufe in einer zyklischen Anordnung. Ein" -" spezialisierter Mechanismus lädt die ansonsten mühsam zu handhabenden " -"Patronen; dadurch können sie in schneller Abfolge abgefeuert werden. " -"Allerdings ist die Waffe dadurch enorm unhandlich und muss auf etwas " -"montiert werden, um abgefeuert werden zu können." - -#: lang/json/gun_from_json.py -msgid "laser cannon" -msgid_plural "laser cannons" -msgstr[0] "Laserkanone" -msgstr[1] "Laserkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"This enhanced laser cannon sacrifices efficiency for destructive power. The" -" increased power requirements require a significant power source and the " -"size of the firing mechanism also requires support." -msgstr "" -"Diese verbesserte Laserkanone opfert Effizienz für Zerstörungskraft. Der " -"erhöhte Strombedarf erfordert eine starke Stromquelle und die Größe der " -"Abschussvorrichtung benötigt eine Abstützung." - -#: lang/json/gun_from_json.py -msgid "pulse laser" -msgid_plural "pulse lasers" -msgstr[0] "Pulslaser" -msgstr[1] "Pulslaser" - -#: lang/json/gun_from_json.py -msgid "" -"Augmented damage capability and rapid bursts make this a powerful weapon. " -"The increased power requirements require a significant power source and the " -"firing mechanism also requires a specialized chassis." -msgstr "" -"Eine verbesserte Schadensfähigkeit und schnelle Feuerstöße machen dies zu " -"einer starken Waffe. Der erhöhte Strombedarf erfordert eine starke " -"Stromquelle und die Abschussvorrichtung benötigt einen spezialisierten " -"Einbaurahmen." - -#: lang/json/gun_from_json.py -msgid "turbolaser cannon" -msgid_plural "turbolaser cannons" -msgstr[0] "Turbolaserkanone" -msgstr[1] "Turbolaserkanonen" - -#: lang/json/gun_from_json.py -msgid "" -"With an augmented emitter and capacitor, this mounted laser is capable of " -"superheating most materials to the point of exploding. The firing mechanism" -" also requires the services of a specialized chassis, and one must be wary " -"of the prodigious power needs of such a weapon." -msgstr "" -"Mit einem verbesserten Emitter und Kondensator ist dieser montierte Laser " -"fähig, die meisten Materialien bis zum Punkt der Explosion zu überhitzen. " -"Die Abschussvorrichtung benötigt außerdem einen spezialisierten Einbaurahmen" -" und man muss sich des außergewöhnlichen Strombedarfs einer solchen Waffe " -"bewusst sein." - -#: lang/json/gun_from_json.py -msgid "ripper" -msgid_plural "rippers" -msgstr[0] "Ripper" -msgstr[1] "Ripper" - -#: lang/json/gun_from_json.py -msgid "" -"This menacing weapon rapidly launches bladed disks that rips through enemies" -" with devastating effect. It draws its power from a vehicle's engines, and " -"thus must be mounted on such in order to be operated." -msgstr "" -"Diese bedrohliche Waffe wirft rasant Klingenscheiben, welche sich durch " -"Feinde mit verheerender Wirkung fetzen. Sie entnimmt ihren Strom aus den " -"Motoren eines Fahrzeugs und muss daher auf ein solches montiert werden, um " -"betrieben werden zu können." - -#: lang/json/gun_from_json.py -msgid "scorpion ballista" -msgid_plural "scorpion ballistae" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A massive tension-operated crossbow. The hand-crank allows one to draw it " -"without the need for heavy labor. It's far too massive to be used on foot, " -"and thus needs to be mounted on a vehicle in order to be operated." -msgstr "" -"Eine gewaltige tensionsgetriebene Armbrust. Die Handkurbel ermöglicht es, " -"sie ohne große Anstrengung zu ziehen. Sie ist viel zu gewaltig, um sie zu " -"Fuß benutzen zu können und muss daher auf ein Fahrzeug montiert werden, um " -"sie benutzen zu können." - -#: lang/json/gun_from_json.py -msgid "harpoon gun" -msgid_plural "harpoon guns" -msgstr[0] "Harpunengewehr" -msgstr[1] "Harpunengewehre" - -#: lang/json/gun_from_json.py -msgid "" -"A tension-operated speargun. A hand-crank lets one draw the strings " -"quickly, but it's too unwieldy to handle without a support of some sort." -msgstr "" -"Eine tensionsgetriebene Harpue. Mit einer Handkurbel können die Fäden " -"schnell gezogen werden, aber ohne einer Form der Abstützung ist sie zu " -"unhandlich zu bedienen." - -#: lang/json/gun_from_json.py -msgid "tesla cannon" -msgid_plural "tesla cannons" +msgid "Test Glock" +msgid_plural "Test Glocks" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py -msgid "" -"This alteration of the Chain Lightning bionic fires artificial lightning " -"bolts that arc to nearby enemies. It must be attached to a large power " -"source, but it allows for much more powerful bolts." -msgstr "" -"Diese Anpassung des Kettenstoßspannungsbionik feuert künstliche Lichtbltze, " -"welche sich hin zu nahestehenden Gegnern kurven. Es muss an einer großen " -"Stromquelle angebracht werden, aber das ermöglicht viel stärkere Blitze." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "biting blob" -msgid_plural "biting blobs" -msgstr[0] "beißender Blob" -msgstr[1] "beißende Blobs" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. It has evolved the ability to constantly " -"generate calcified protrusions which are then controlled by sinuous tensile " -"strands. These \"teeth\" can then be used to latch and wound anything " -"unfortunate enough to be nearby. The outer membrane has also become " -"significantly thicker in order to support its more strenuous movement; " -"though it seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel shooter" -msgid_plural "gel shooters" -msgstr[0] "Gelschießer" -msgstr[1] "Gelschießer" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It trawls the ground for " -"material, which it then strips of nutrition. The remainder is then expelled" -" out at significant velocity towards any nearby threats. The amorphous mass" -" can be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "frost lancer" -msgid_plural "frost lancers" -msgstr[0] "Frostlanzer" -msgstr[1] "Frostlanzer" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A biological aberration " -"that exists at sub-zero temperatures. After filtering nutrients from the " -"water, it freezes the remainder into an incredibly sharp spear of ice; which" -" it then launches at nearby threats. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Eine " -"biologische Anomalie, die bei Temperaturen von unter Null existieren kann. " -"Nachdem er Nährstoffe aus dem Wasser herausfiltert, friert er die " -"Überbleibsel zu einen unglaublich scharfen Speer aus Eis ein, welcher dann " -"zu Gefahren in der Nähe geworfen wird. Die formlose Masse kann geformt und " -"von Hand befestigt werden, aber die Waffe selbst ist ohne etwas, um sie zu " -"steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "snapping ooze" -msgid_plural "snapping oozes" -msgstr[0] "schnappender Trief" -msgstr[1] "schnappende Triefe" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A baffling mutation in an " -"already baffling creature, this blob is encased in a thick coat of fur, " -"which serves as a form of protection. In addition, it is capable of " -"projecting rows of calcified sharp fragments in a manner mimicking the jaw " -"of a more recognizable creature. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Eine " -"unergründliche Mutation einer bereits unergründlichen Kreatur. Dieser Blob " -"ist mit einem dicken Pelzmantel bedeckt, was als eine Art Schutz dient. " -"Zusätzlich ist er dazu in der Lage, Reihen aus verkalkten scharfen " -"Fragmenten auszufahren, so dass es einem Kiefer einer etwas vertrauteren " -"Kreatur ähnelt. Die formlose Masse kann geformt und von Hand befestigt " -"werden, aber die Waffe selbst ist ohne etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "blobsaw" -msgid_plural "blobsaws" -msgstr[0] "Blobsäger" -msgstr[1] "Blobsäger" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. While its simpler cousins have a limit to " -"the number of keratinous protrusions they can project and control; this blob" -" can utilize hundreds of these sharp fangs to shred anything it detects as a" -" threat into unrecognizable ribbons. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde, dafür " -"geeignet über einen Rahmen als eine Art Barriere gestreckt zu werden. " -"Während seine einfacheren Verwandten eine Obergrenze für die Anzahl der " -"keratinösen Herausragungen haben, die sie ausfahren und lenken können, kann " -"dieser Blob hunderte dieser scharfen Schneidezähne benutzen, um alles, was " -"es als Gefahr wahrnimmt, in nicht wiedererkennbare Streifen zu zerfetzen. " -"Die formlose Masse kann geformt und von Hand befestigt werden, aber die " -"Waffe selbst ist ohne etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fuel puffer" -msgid_plural "fuel puffers" -msgstr[0] "Brennstoffspucker" -msgstr[1] "Brennstoffspucker" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digestion process turns the " -"result incredibly viscous which, when threats come near, is launched; " -"ensnaring anything it hits. The amorphous mass can be shaped and attached " -"at your touch, but the weapon itself is inert without something to control " -"it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Dies ist " -"ein ziemlich wählerischer Esser; er ernährt sich von den Chemikalien, die im" -" Benzin gefunden werden können. Der Verdauungsprozess macht das Resultat " -"sehr dickflüssig. Wenn Gefahren in der Nähe auftauchen, wird diese " -"Ausscheidung abgefeuert, was alles in der Nähe einfängt. Die formlose Masse " -"kann geformt und von Hand befestigt werden, aber die Waffe selbst ist ohne " -"etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "acid puffer" -msgid_plural "acid puffers" -msgstr[0] "Säurespucker" -msgstr[1] "Säurespucker" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, the " -"digestion process produces highly acidic byproducts; which is then expelled " -"at any nearby enemies. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Dies ist " -"ein Filtrierer; der Verdauungsprozess produziert hochgradig säurehaltige " -"Nebenprodukte, welche nach Feinden in der Nähe abgefeuert werden. Die " -"formlose Masse kann geformt und von Hand befestigt werden, aber die Waffe " -"selbst ist ohne etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spiker" -msgid_plural "gel spikers" -msgstr[0] "Gelstachler" -msgstr[1] "Gelstachler" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Capable of calcifying large" -" numbers of fang-like fragments within itself. It hurls groups of these " -"fragments along with a small portion of itself. When it reaches its " -"destination, the detached remains shoot these fragments in all directions, " -"expiring in the process. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Dieser " -"hier ist in der Lage, große Mengen an schneidezahnähnlichen Fragmenten in " -"sich selbst zu verkalken. Er schleudert Gruppen dieser Fragmente in einem " -"Teil seines »Körpers« umher. Sobald sie ihr Ziel erreichen, werden die " -"abgebrochenen Überbleibsel diese Fragmente in alle Richtungen schießen, " -"wobei sie während des Prozesses zerfallen. Die formlose Masse kann geformt " -"und von Hand befestigt werden, aber die Waffe selbst ist ohne etwas, um sie " -"zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spouter" -msgid_plural "gel spouters" -msgstr[0] "Gelspeier" -msgstr[1] "Gelspeier" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It can suck in water from a" -" vehicle tank, and forcibly expel it in a wide cone. The amorphous mass can" -" be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Er kann " -"Wasser aus einem Fahrzeugtank saugen und es mit Gewalt in einem breiten " -"Kegel hinausschießen. Die formlose Masse kann geformt und von Hand befestigt" -" werden, aber die Waffe selbst ist ohne etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel lancer" -msgid_plural "gel lancers" -msgstr[0] "Gel-Lanzer" -msgstr[1] "Gel-Lanzer" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Evolving incredible " -"abilities of perception, it is capable of locating and discerning possible " -"threats within a large radius. When a potential threat is located, it fires" -" a small, calcified projectile with incredible speed and accuracy. The " -"amorphous mass can be shaped and attached at your touch, but the weapon " -"itself is inert without something to control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Dieser " -"Blob hat unglaubliche Wahrnehmungsfähigkeiten entwickelt und kann mögliche " -"Gefahren innerhalb eines großen Radius lokalisieren und erkennen. Sobald " -"eine mögliche Gefahr lokalisiert wurde, feuert er ein kleines verkalktes " -"Projektil mit unglaublicher Geschwindigkeit und Treffgenauigkeit ab. Die " -"formlose Masse kann geformt und von Hand befestigt werden, aber die Waffe " -"selbst ist ohne etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel razor" -msgid_plural "gel razors" -msgstr[0] "Gel-Schlitzer" -msgstr[1] "Gel-Schlitzer" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. An enhanced metabolism " -"allows it to calcify large, toothy discs which are then launched towards any" -" nearby threats. The amorphous mass can be shaped and attached at your " -"touch, but the weapon itself is inert without something to control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Ein " -"verbesserter Metabolismus ermöglicht es ihm, große gezahnte Scheiben zu " -"verkalken, welche dann nach jeglichen Gefahren in der Nähe geschleudert " -"werden. Die formlose Masse kann geformt und von Hand befestigt werden, aber " -"die Waffe selbst ist ohne etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock bulb" -msgid_plural "shock bulbs" -msgstr[0] "Schockknollen" -msgstr[1] "Schockknollen" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Shockingly, it somehow is " -"able to project electricity, which it then discharges at any nearby threats." -" The amorphous mass can be shaped and attached at your touch, but the " -"weapon itself is inert without something to control it." +msgid "A handgun for testing, based on the Glock 9mm." msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. " -"Schockierenderweise ist er irgendwie in der Lage, Elektrizität zu erzeugen, " -"welche er dann nach jeglichen Gefahren in der Nähe hinausschleudert und " -"entlädt. Die formlose Masse kann geformt und von Hand befestigt werden, aber" -" die Waffe selbst ist ohne etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel puffer" -msgid_plural "gel puffers" -msgstr[0] "Gelspucker" -msgstr[1] "Gelspucker" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, it strips " -"any water it processes of nutrients and expels the remainder towards any " -"nearby threats. The process of filter-feeding also makes the remaining " -"liquid viscous, though it also dissipates fairly quickly. The amorphous " -"mass can be shaped and attached at your touch, but the weapon itself is " -"inert without something to control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Dies ist " -"ein Filtrierer; er entimmt jeglichem Wasser, über das er verfügt, die " -"Nährstoffe und schleudert den Rest nach Gefahren in der Nähe aus. Der " -"Vorgang des Flitrierens macht die verbleibende Flüssigkeit dickflüssig, " -"allerdings löst sie sich recht schnell auf. Die formlose Masse kann geformt " -"und von Hand befestigt werden, aber die Waffe selbst ist ohne etwas, um sie " -"zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fire puffer" -msgid_plural "fire puffers" -msgstr[0] "Feuerspucker" -msgstr[1] "Feuerspucker" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digested material is still " -"highly flammable, and when launched, also activates an ignition gland " -"located on the outer membrane. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Dies ist " -"ein ziemlich wählerischer Esser; er ernährt sich von den Chemikalien, die im" -" Benzin gefunden werden können. Das verdaute Material ist immer noch " -"hochentzündlich; sobald es geworfen wird, wird es auch die Zünddrüse, die " -"sich an der äußeren Membran befindet, aktivieren. Die formlose Masse kann " -"geformt und von Hand befestigt werden, aber die Waffe selbst ist ohne etwas," -" um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "spark blight" -msgid_plural "spark blights" -msgstr[0] "Funkenzerstörer" -msgstr[1] "Funkenzerstörer" -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It is capable of storing " -"energy from sunlight inside itself in the form of electricity. Then, in a " -"truly baffling show of force, projects a highly concentrated stream of " -"electricity towards any possible threats. The amorphous mass can be shaped " -"and attached at your touch, but the weapon itself is inert without something" -" to control it." -msgstr "" -"Ein lebendiger Blob, der in eine autonome Waffe verwandelt wurde. Er ist in " -"der Lage, Energie vom Sonnenlicht in sich selbst in der Form von " -"Elektrizität zu speichern. Anschließend wird, in einer wahrhaft " -"unergründlichen Zuschaustellung von Kraft, ein hochkonzentrierter Strahl aus" -" Elektrizität nach allen möglichen Gefahren geschossen. Die formlose Masse " -"kann geformt und von Hand befestigt werden, aber die Waffe selbst ist ohne " -"etwas, um sie zu steuern, inaktiv." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond lance" -msgid_plural "diamond lances" -msgstr[0] "Diamantlanzer" -msgstr[1] "Diamantlanzer" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst; thus a pre-" -"shaped lump of carbon is brought into contact with the matrix, immediately " -"crystallized and launched just as quickly. The launcher requires a " -"specialized chassis in order to be brought to bear on its unfortunate " -"targets." -msgstr "" -"Eine Waffe, die genau so tödlich wie sie grell ist. Die Diamantmatrix im " -"Zentrum dieser Waffe agiert als Katalysator und verändert rasch stark " -"kohlenstoffhaltige Materialien in eine kritalline Substanz, die fast so hart" -" wie Diamanten selbst ist. Die Substanz zerfällt schnell, wenn sie vom " -"Katalysator getrennt wurde, daher wird ein vorgeformter Klumpen aus " -"Kohlenstoff im Kontakt mit der Matrix gebracht, sofort kristallisiert und " -"genau so schnell abgefeuert. Der Werfer benötigt eine besondere Halterung, " -"um gegen seine unglücklichen Ziele benutzt werden zu können." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond nova" -msgid_plural "diamond novae" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst, and at sizes " -"as large as the projectile used, also rapidly decays when in contact with " -"other matter. Thus the projectile is held and launched by the use of " -"pressurized air from a vortex stone. Upon striking its target, the " -"projectile undergoes explosive decomposition; shattering into a brilliant " -"burst of diamond fragments." -msgstr "" -"Eine Waffe, die genau so tödlich wie sie grell ist. Die Diamantmatrix im " -"Zentrum dieser Waffe agiert als Katalysator und verändert rasch stark " -"kohlenstoffhaltige Materialien in eine kritalline Substanz, die fast so hart" -" wie Diamanten selbst ist. Die Substanz zerfällt schnell, wenn sie vom " -"Katalysator getrennt wurde, und mit Größen, die so groß wie das verwendete " -"Projektil sind, zerfällt es rasch bei Berührung mit anderer Materie. Daher " -"wird das Projektil mittels Druckluft aus einem Vortexstein festgehalten und " -"abgefeuert. Wenn das Ziel getroffen wird, erfährt das Projektil eine " -"explosive Spaltung und zerbricht in einer grellen Explosion aus " -"Diamantfragmenten." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex accelerator" -msgid_plural "vortex accelerators" -msgstr[0] "Vortexbeschleuniger" -msgstr[1] "Vortexbeschleuniger" +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" +msgstr[0] "Rohrkombigewehrflinte" +msgstr[1] "Rohrkombigewehrflinten" -#: lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py msgid "" -"This weapon uses powerful bursts of air to launch sharp fragments at its " -"target at high speed. You'll need some form of platform to mount it on." +"The integrated underbarrel shotgun of a pipe combination gun which holds two" +" shots. It's irremovable." msgstr "" -"Diese Waffe benutzt starke Luftstöße, um scharfe Fragmente auf ihr Ziel mit " -"hoher Geschwinigkeit zu werfen. Du brauchst eine Art von Plattform, um sie " -"darauf zu montieren." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex cannon" -msgid_plural "vortex cannons" -msgstr[0] "Vortexkanone" -msgstr[1] "Vortexkanonen" +"Die integrierte unterläufige Flinte eines Rohrkombinationsgewehrs. Sie fasst" +" zwei Schuss und kann nicht entfernt werden." -#: lang/json/gun_from_json.py -msgid "" -"Essentially a large pneumatic gun made to hurl sharpened metal rails. " -"Instead of a mechanical system, you've managed to harness the vortex to " -"power this gun. While powerful for its size, you'll need some form of " -"platform to mount it on." -msgstr "" -"Praktisch ein großes pneumatisches Gewehr, das dafür gemacht wurde, " -"geschärfte Metallschienen zu schleudern. Statt eines mechanischen Systems " -"hast du es geschafft, den Vortex zu schröpfen, um diese Waffe mit Strom zu " -"versorgen. Es ist stark für dessen Größe, aber du brauchst eine Art von " -"Plattform, um es darauf montieren zu können." +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "unterläufig" #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -122005,10 +117586,6 @@ msgstr "" "Dieser selbstgebaute Miniaturflammenwerfer kann an fast jede Feuerwaffe " "befestigt werden und somit ihre Tödlichkeit stark erhöhen." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "unterläufig" - #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" @@ -122399,6 +117976,21 @@ msgstr "" "wie vollautomatische Teile, also werden Präzision und Zuverlässigkeit leicht" " darunter leiden." +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -123201,18 +118793,22 @@ msgstr "" " fasst zwei Schuss und kann nicht entfernt werden." #: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" -msgstr[0] "Rohrkombigewehrflinte" -msgstr[1] "Rohrkombigewehrflinten" +msgid "factory handguard" +msgid_plural "factory handguards" +msgstr[0] "" +msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two" -" shots. It's irremovable." +"A removable molded grip that comes standard on guns without rails. It's not" +" as efficient as a proper forward grip or bipod at controlling recoil, but " +"it's better than nothing." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "fs2000" msgstr "" -"Die integrierte unterläufige Flinte eines Rohrkombinationsgewehrs. Sie fasst" -" zwei Schuss und kann nicht entfernt werden." #: lang/json/gunmod_from_json.py msgid "forward grip" @@ -123668,93 +119264,6 @@ msgid "" "powerful, but good enough for tight hallways." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "5.45 caliber conversion kit" -msgid_plural "5.45 caliber conversion kits" -msgstr[0] "5,45-Kaliber-Umbausatz" -msgstr[1] "5,45-Kaliber-Umbausätze" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " -"results in slight reductions to recoil." -msgstr "" -"Dieser Satz wird dazu benutzt, 6,54-Gewehre zum Kaliber 5,45 umzubauen. Der " -"Umbau wird den Rückstoß leicht reduzieren." - -#: lang/json/gunmod_from_json.py -msgid "6.54 caliber conversion kit" -msgid_plural "6.54 caliber conversion kits" -msgstr[0] "6,54-Kaliber-Umbausatz" -msgstr[1] "6,54-Kaliber-Umbausätze" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Dieser Satz wird dazu benutzt, 5,45-Gewehre zum Kaliber 6,54 umzubauen. Der " -"Umbau wird den Rückstoß erhöhen." - -#: lang/json/gunmod_from_json.py -msgid "7.62 caliber conversion kit" -msgid_plural "7.62 caliber conversion kits" -msgstr[0] "7,62-Kaliber-Umbausatz" -msgstr[1] "7,62-Kaliber-Umbausätze" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Dieser Umbausatz wird benutzt, um ein 6,54-Gewehr zum Kaliber 7,62 " -"umzubauen. Der Umbau würde den Rückstoß erhöhen." - -#: lang/json/gunmod_from_json.py -msgid "Flaregun conversion kit" -msgid_plural "Flaregun conversion kits" -msgstr[0] "Leuchtfackelwerfer-Umbausatz" -msgstr[1] "Leuchtfackelwerfer-Umbausätze" - -#: lang/json/gunmod_from_json.py -msgid "" -"Replacing several key parts flaregun to convert it to a .40 firearm. The " -"conversion results in reduced accuracy and increased recoil." -msgstr "" -"Durch das Ersetzen diverser Hauptteile eines Leuchtfackelwerfers wandelt " -"dieser Umbausatz sie zu eine .40-Feuerwaffe um. Der Umbau resultiert in " -"einer geringeren Treffergenauigkeit und einem erhöhtem Rückstoß." - -#: lang/json/gunmod_from_json.py -msgid "" -"This genuine Herostratus flamethrower is ideal for light brush clearing and " -"self-defense." -msgstr "" -"Dieser authentische Herostratus-Flammenwerfer ist ideal für die Entfernung " -"dünnen Gestrüpps und zur Selbstverteidigung." - -#: lang/json/gunmod_from_json.py -msgid "E.M.A.S." -msgid_plural "E.M.A.S.s" -msgstr[0] "EMBS" -msgstr[1] "EMBS'" - -#: lang/json/gunmod_from_json.py -msgid "" -"ElectroMagnetic Acceleration System is an array of electromagnets attached " -"to the front of the barrel, accelerating any projectile fired to even higher" -" velocities, increasing damage, recoil and reducing accuracy. It does " -"however drain UPS charges when firing and due to extensive modifications the" -" gun can no longer operate without a UPS." -msgstr "" -"Das Elektromagnetische Beschleunigungssystem ist eine Anordnung aus " -"Elektromagneten, die an der Vorderseite des Laufs befestigt werden; diese " -"beschleunigen jedes abgefeuerte Projektil zu noch höheren Geschwindigkeiten," -" was den Schaden und den Rückstoß erhöht und die Treffgenauigkeit " -"verringert. Allerdings verbraucht es beim Feuern Esz.-Ladungen und aufgrund " -"aufwändiger Veränderungen kann die Schusswaffe ohne einer Esz. nicht mehr " -"benutzt werden." - #: lang/json/gunmod_from_json.py msgid "underbarrel launcher" msgid_plural "underbarrel launchers" @@ -123853,37 +119362,14 @@ msgid "" msgstr "" #: lang/json/gunmod_from_json.py -msgid "makeshift pistol bayonet" -msgid_plural "makeshift pistol bayonets" -msgstr[0] "behelfsmäßiges Pistolenbajonett" -msgstr[1] "behelfsmäßige Pistolenbajonette" - -#: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a bayonet meant for a pistol that consists of a mere " -"spike with some string. It still makes a decent melee weapon in a pinch " -"when attached to a pistol." -msgstr "" -"Eine provisorische Version eines Bajonetts für eine Pistole, bestehend aus " -"einem bloßen Stachel mit etwas Schnur. Zur Not ist es ist immer noch eine " -"geeignete Nahkampfwaffe, wenn man es an eine Pistole befestigt." - -#: lang/json/gunmod_from_json.py -msgid "makeshift sword bayonet" -msgid_plural "makeshift sword bayonets" -msgstr[0] "behelfsmäßiges Schwertbajonett" -msgstr[1] "behelfsmäßige Schwertbajonette" +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "" +msgstr[1] "" #: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a sword bayonet that consists of a salvaged blade " -"with some string. It still makes a good melee weapon providing reach " -"attacks when attached to long arm or crossbow." +msgid "Gun suppressor mod for testing." msgstr "" -"Eine behelfsmäßige Version des Schwert-Bajonetts, bestehend aus einem " -"geborgenem Stachel und etwas Schnur. Noch immer eine gute Nahkampfwaffe, die" -" Distanzangriffe vornehmen kann, falls sie an einer langen Waffe oder einer " -"Armbrust befestigt ist." #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" @@ -123932,23 +119418,16 @@ msgid "" "they are something else." msgstr "" -#: lang/json/harvest_from_json.py -msgid "You butcher the fallen zombie and hack off its head" -msgstr "" -"Du schlachtest den gefallenen Zombie und hackst ihm anschließend den Kopf ab" - #: lang/json/help_from_json.py msgid ": Introduction" msgstr ": Einleitung" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future" +" looks pretty grim." msgstr "" -"Cataclysm: DDA ist ein Rouge ähnelndes Überlebensspiel, das in einer " -"Monster-Apokalypse spielt. Du hast den ersten Ansturm überlebt, aber die " -"Zukunft sieht ziemlich düster aus. " #: lang/json/help_from_json.py msgid "" @@ -123965,36 +119444,24 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are" +" exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." msgstr "" -"Cataclysm: DDA unterscheidet sich von den traditionellen Rogueartigen auf " -"verschiedene Weisen. Anstatt Katakomben im Untergrund mit einem begrenzten " -"Bereich auf jeder Ebene zu erkunden, erforschst du eine wirklich unendliche " -"Welt, welche sich in alle vier Himmelsrichtungen erstreckt. In diesem " -"Überlebensspiel musst du nicht nur Nahrung finden, du musst auch dafür " -"sorgen regelmäßig zu trinken und zu schlafen. Es basiert auf dem Prinzip des" -" Realismus, also erwarte alle Nöte, die du auch im wahren Leben in einer " -"Überlebenssituation erwarten würdest und wenigstens noch ein Dutzend mehr " -"aus dem bizarren und sci-fi-artigen Wesen des Spiels selbst." #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help" +" you survive." msgstr "" -"Obwohl Cataclysm: DDA mehr Aufgaben als viele andere Rogueartige bietet, die" -" du im Auge behalten musst, macht das Spiel-Setting in der nahen Zukunft " -"auch einige Aufgaben einfacher. Feuerwaffen, Medikamente und eine breite " -"Auswahl an Werkzeugen sind verfügbar, um dir beim Überleben zu helfen." #: lang/json/help_from_json.py msgid ": Movement" @@ -125569,7 +121036,7 @@ msgstr "Erde umgraben" #: lang/json/item_action_from_json.py msgid "Dig water channel here" -msgstr "" +msgstr "Hier Wassergraben graben" #: lang/json/item_action_from_json.py msgid "Dig through rock" @@ -125577,11 +121044,11 @@ msgstr "Durch Gestein graben" #: lang/json/item_action_from_json.py msgid "Pack CBM in pouch" -msgstr "" +msgstr "KBM in Beutel packen" #: lang/json/item_action_from_json.py msgid "Burrow through rock" -msgstr "" +msgstr "Durch Gestein graben" #: lang/json/item_action_from_json.py msgid "Use geiger counter" @@ -125617,7 +121084,7 @@ msgstr "Bewegtes Hologramm erzeugen" #: lang/json/item_action_from_json.py msgid "Extract data from memory banks" -msgstr "" +msgstr "Daten aus Speicherkarte kopieren" #: lang/json/item_action_from_json.py msgid "Hack a robot" @@ -125655,10 +121122,6 @@ msgstr "Auf einem Gegenstand schreiben" msgid "Cauterize a wound" msgstr "Eine Wunde kauterisieren" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "Einen Zombiesklaven machen" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "Countdown starten" @@ -125669,11 +121132,11 @@ msgstr "Auspacken" #: lang/json/item_action_from_json.py msgid "Learn spell" -msgstr "" +msgstr "Zauberspruch lernen" #: lang/json/item_action_from_json.py msgid "Cast spell" -msgstr "" +msgstr "Zauberspruch sprechen" #: lang/json/item_action_from_json.py msgid "Use holster" @@ -125702,7 +121165,7 @@ msgstr "Benutzen" #: lang/json/item_action_from_json.py msgid "Sterilize" -msgstr "" +msgstr "Sterilisieren" #: lang/json/item_action_from_json.py src/artifact.cpp msgid "Ring" @@ -125754,7 +121217,7 @@ msgstr "Essen" #: lang/json/item_action_from_json.py msgid "Dig pit here" -msgstr "" +msgstr "Hier Grube graben" #: lang/json/item_action_from_json.py msgid "Find direction" @@ -125841,15 +121304,15 @@ msgstr "Wischen" #: lang/json/item_action_from_json.py msgid "Play music" -msgstr "" +msgstr "Musik spielen" #: lang/json/item_action_from_json.py msgid "Turn off music" -msgstr "" +msgstr "Musik ausschalten" #: lang/json/item_action_from_json.py msgid "Roll die" -msgstr "" +msgstr "Würfeln" #: lang/json/item_action_from_json.py msgid "Prepare to use" @@ -125857,7 +121320,7 @@ msgstr "Vorbereiten für Benutzung" #: lang/json/item_action_from_json.py msgid "Use regulator" -msgstr "" +msgstr "Regulator benutzen" #: lang/json/item_action_from_json.py msgid "Unfold" @@ -125890,7 +121353,7 @@ msgstr "Spielen" #: lang/json/item_action_from_json.py msgid "Check health metrics" -msgstr "" +msgstr "Gesundheitswerte anschauen" #: lang/json/item_action_from_json.py msgid "Put up" @@ -125904,7 +121367,7 @@ msgstr "Strahlung messen" #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/game_inventory.cpp src/teleport.cpp msgid "…" -msgstr "" +msgstr "..." #: lang/json/item_action_from_json.py msgid "Control an RC car" @@ -125953,7 +121416,7 @@ msgstr "Etwas Blut abnehmen" #: lang/json/item_action_from_json.py msgid "Recharge a battery" -msgstr "" +msgstr "Akku wiederaufladen" #: lang/json/item_action_from_json.py msgid "Well, you know" @@ -125961,15 +121424,15 @@ msgstr "Naja, du weißt schon" #: lang/json/item_action_from_json.py msgid "Wash soft items" -msgstr "" +msgstr "Weiche Gegenstände waschen" #: lang/json/item_action_from_json.py msgid "Wash hard items" -msgstr "" +msgstr "Harte Gegenstände waschen" #: lang/json/item_action_from_json.py msgid "Wash items" -msgstr "" +msgstr "Gegenstände waschen" #: lang/json/item_action_from_json.py msgid "Purify some water" @@ -125983,10 +121446,6 @@ msgstr "Wetterinformationen überprüfen" msgid "Reload" msgstr "Nachladen" -#: lang/json/item_action_from_json.py -msgid "Store/unload ammo" -msgstr "Munition lagern/entladen" - #: lang/json/item_action_from_json.py msgid "Make some noise" msgstr "Etwas Krach machen" @@ -125998,7 +121457,7 @@ msgstr "Spielen" #: lang/json/item_action_from_json.py msgid "Mask scent" -msgstr "" +msgstr "Geruch verbergen" #: lang/json/item_action_from_json.py msgid "Activate/deactivate" @@ -126026,11 +121485,11 @@ msgstr "Inhalt erhalten" #: lang/json/item_action_from_json.py msgid "Use Scale" -msgstr "" +msgstr "Waage benutzen" #: lang/json/item_action_from_json.py src/iexamine.cpp msgid "Work on craft" -msgstr "" +msgstr "An Herstellung arbeiten" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -127220,6 +122679,18 @@ msgstr "Munition wechseln" msgid "Switch Firing Mode" msgstr "Feuermodus umschalten" +#: lang/json/keybinding_from_json.py +msgid "Toggle turret lines" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "Zieleinrastung umschalten" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "Auswählen" @@ -127252,10 +122723,6 @@ msgstr "Erweiterte Beschreibung anzeigen" msgid "Travel to destination" msgstr "Zum Ziel reisen" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "Zieleinrastung umschalten" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "Zum Spieler zentrieren" @@ -127472,6 +122939,10 @@ msgstr "Weit nach unten bewegen" msgid "Toggle category selection mode" msgstr "Kategorieauswahlmodus umschalten" +#: lang/json/keybinding_from_json.py +msgid "Toggle inventory view to show item categories" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Set item filter" msgstr "Gegenstandsfilter setzen" @@ -127697,7 +123168,6 @@ msgid "Disassemble items" msgstr "Gegenstände demontieren" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "Schlafen" @@ -127921,7 +123391,7 @@ msgstr "Farbverwaltung" msgid "Active World Mods" msgstr "Aktive Welt-Mods" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "" @@ -128215,6 +123685,30 @@ msgstr "" msgid "Describe terrain" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "Zurück" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "Ändere Namen des Berufes" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" msgstr "Mehrere Elektroniken steuern" @@ -128367,7 +123861,7 @@ msgstr "Turmzielmodus anpassen" msgid "Nothing" msgstr "Nichts" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "" @@ -128376,7 +123870,7 @@ msgstr "" msgid "Crater" msgstr "" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "" @@ -128385,7 +123879,7 @@ msgstr "" msgid "College Kids" msgstr "" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "" @@ -128394,7 +123888,7 @@ msgstr "" msgid "Drug Deal" msgstr "" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "" @@ -128403,7 +123897,7 @@ msgstr "" msgid "Roadworks" msgstr "" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "" @@ -128412,7 +123906,7 @@ msgstr "" msgid "Road Mayhem" msgstr "" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "" @@ -128421,7 +123915,7 @@ msgstr "" msgid "Roadblock (Military)" msgstr "" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "" @@ -128430,7 +123924,7 @@ msgstr "" msgid "Roadblock (Bandits)" msgstr "" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "" @@ -128439,7 +123933,7 @@ msgstr "" msgid "Minefield" msgstr "" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "" @@ -128448,17 +123942,17 @@ msgstr "" msgid "Supply Drop" msgstr "" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "" -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" msgstr "Militär" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "" @@ -128467,7 +123961,7 @@ msgstr "" msgid "Helicopter Crash" msgstr "Helikopterabsturz" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "" @@ -128476,7 +123970,7 @@ msgstr "" msgid "Scientists" msgstr "" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "" @@ -128485,7 +123979,7 @@ msgstr "" msgid "Portal" msgstr "" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "" @@ -128494,7 +123988,7 @@ msgstr "" msgid "Portal In" msgstr "" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "" @@ -128503,7 +123997,7 @@ msgstr "" msgid "Spider Nest" msgstr "" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "" @@ -128512,22 +124006,21 @@ msgstr "" msgid "Wasp Nest" msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "" #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "Spinnen" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "" @@ -128536,7 +124029,7 @@ msgstr "" msgid "Jabberwock" msgstr "" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "" @@ -128545,7 +124038,7 @@ msgstr "" msgid "Grove" msgstr "" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "" @@ -128554,7 +124047,7 @@ msgstr "" msgid "Shrubberry" msgstr "" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "" @@ -128563,7 +124056,7 @@ msgstr "" msgid "Clearcut" msgstr "" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." msgstr "" @@ -128572,7 +124065,7 @@ msgstr "" msgid "Pond" msgstr "" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "" @@ -128581,7 +124074,7 @@ msgstr "" msgid "Stand of trees" msgstr "" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "" @@ -128590,7 +124083,7 @@ msgstr "" msgid "Tall grass" msgstr "" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "" @@ -128599,7 +124092,7 @@ msgstr "" msgid "Derelict shed" msgstr "" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "" @@ -128608,7 +124101,7 @@ msgstr "" msgid "Clay Deposit" msgstr "" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "" @@ -128617,8 +124110,8 @@ msgstr "" msgid "Dead Vegetation" msgstr "" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "" @@ -128631,8 +124124,8 @@ msgstr "" msgid "Burned Ground" msgstr "" -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "" @@ -128645,7 +124138,7 @@ msgstr "" msgid "Marloss Pilgrimage" msgstr "" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "" @@ -128654,7 +124147,7 @@ msgstr "" msgid "Casings" msgstr "" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "" @@ -128663,7 +124156,7 @@ msgstr "" msgid "Looters" msgstr "" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "" @@ -128672,12 +124165,12 @@ msgstr "" msgid "Corpses" msgstr "" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "" @@ -128686,7 +124179,7 @@ msgstr "" msgid "Dermatik Nest" msgstr "" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "" @@ -128695,7 +124188,7 @@ msgstr "" msgid "Prison Bus" msgstr "" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "" @@ -128704,7 +124197,7 @@ msgstr "" msgid "Mass Grave" msgstr "" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "" @@ -128713,11 +124206,20 @@ msgstr "" msgid "Grave" msgstr "" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "" +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -128734,8 +124236,7 @@ msgid "High Security Consolidated Computerized Bank of the Treasury" msgstr "Vereinigte hochsicherheits Computerbank des Finanzministeriums" #. ~ Computer access denied warning -#: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py src/mapgen.cpp -#: src/mapgen.cpp +#: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "" "ERROR! Access denied! Unauthorized access will be met with lethal force!" msgstr "" @@ -130038,16 +125539,6 @@ msgid "" "years.'" msgstr "" -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Hydroponics Entrance" -msgstr "" - -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Missile Control" -msgstr "Raketensteuerung" - #: lang/json/martial_art_from_json.py msgid "No style" msgstr "Kein Stil" @@ -130241,6 +125732,19 @@ msgstr "" msgid "%s gets ready to brawl." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': +#. 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a time.\n" +"\n" +"+1 Block attempts." +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "Capoeira" @@ -130929,7 +126433,7 @@ msgstr "" #: lang/json/martial_art_from_json.py msgid "Waning Moon" -msgstr "" +msgstr "abneh. Mond" #. ~ Description of buff 'Waning Moon' for martial art '{'str': 'Niten Ichi- #. Ryu'}' @@ -130945,7 +126449,7 @@ msgstr "" #: lang/json/martial_art_from_json.py msgid "Moonlight" -msgstr "" +msgstr "Mondlicht" #. ~ Description of buff 'Moonlight' for martial art '{'str': 'Niten Ichi- #. Ryu'}' @@ -131808,47 +127312,81 @@ msgid "Sojutsu" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Blade-work" +msgid "CRIT Blade-work" msgstr "" -#. ~ Description for martial art 'C.R.I.T Blade-work' +#. ~ Description for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"An offensive style that is centered around rapid slashes and prodding. Each" -" attack landed increases combat ability" +"An offensive style centered around rapid slashes and prodding. Each attack " +"landed increases combat ability but leaves you increasingly vunerable" msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Initiate blade-work." +msgid "You prepare to whittle down your enemies." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py #, python-format msgid "%s initiates blade-work." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Intensity" +msgid "Unwavering Edge" msgstr "" -#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Unwavering Edge' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Additional DMG, and Arpen per stack. Max of 5 stacks" +msgid "" +"Gain minor Accuracy, Cutting and Stabbing Arpen per stack. Greatly reduces " +"dodge skill. 2 stacks max" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Calculation" +msgid "Ruthlessness" msgstr "" -#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Ruthlessness' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"Increased accuracy along with minor cut and stab damage with piercing " -"capability." +"Additional Stabbing and Cutting damage per stack. Reduces dodge attempts. 4" +" stacks max." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Rending Strikes" +msgstr "" + +#. ~ Description of buff 'Rending Strikes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Additional Armor penetration per stack. Further reduces dodge attempts. 3 " +"stacks max." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Calculating Eyes" +msgstr "" + +#. ~ Description of buff 'Calculating Eyes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"You have been taught how to properly utilize small to medium-sized sharp " +"weaponry. Gain great Cutting and Stabbing Armor Penetration on top of minor " +"Accuracy" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Honed Movements" +msgstr "" + +#. ~ Description of buff 'Honed Movements' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Your skill and handling with sharp weaponry has improved. Gain extra Cutting" +" and Stabbing damage." msgstr "" #: lang/json/martial_art_from_json.py @@ -131875,65 +127413,267 @@ msgid "%s draws a line in the sand." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Buildup" +msgid "Bulwark" msgstr "" -#. ~ Description of buff 'C.R.I.T Buildup' for martial art 'C.R.I.T -#. Enforcement' +#. ~ Description of buff 'Bulwark' for martial art 'C.R.I.T Enforcement' #: lang/json/martial_art_from_json.py -msgid "+0.05 armor and other small bonuses per stack. Max of 10 stacks" +msgid "+0.5 armor and other small bonuses per stack. Max of 2 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Guard" +msgid "Unyielding Front" msgstr "" -#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement' +#. ~ Description of buff 'Unyielding Front' for martial art 'C.R.I.T +#. Enforcement' #: lang/json/martial_art_from_json.py -msgid "+1 armor. STR provides accuracy and minor bash arpen." +msgid "" +"Stand strong in the face of adversity. +1 armor. STR provides accuracy and " +"minor bash arpen." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T CQB" +msgid "CRIT CQB" msgstr "" -#. ~ Description for martial art 'C.R.I.T CQB' +#. ~ Description for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "A style centered around rapid strikes and piercing jabs. Each attack landed" -" adds a plethora of combat bonuses. 25 percent bash damage." +" adds a plethora of combat bonuses." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py -msgid "Initiate CQB." +msgid "You shift your weight for the oncoming fight." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py #, python-format -msgid "%s initiates CQB." +msgid "%s prepares for hand-to-hand battle." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Tenacity" +msgid "Fluid Tenacity" msgstr "" -#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Fluid Tenacity' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "+Atk Speed and other small bonuses based on DEX per stack. Max of 5 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Initiative" +msgid "Tactful Initiative" msgstr "" -#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Tactful Initiative' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" -"DEX provides dodge ability, accuracy and minor cut / stab damage with slight" -" piercing capability. 50 Percent Bash Damage." +"You have gained an advantage by always remaing mindful of common weaknesses." +" DEX provides dodge ability, accuracy and armor penetration." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming strikes." +" The complex spinning and slashing of the curved blade incorporated into " +"many Desert Wind maneuvers are in fact carefully honed gestures that evoke " +"the power of fire, if performed correctly and with the proper focus." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" +msgstr "" + +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so" +" that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must" +" inevitably." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "" + +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art +#. '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': +#. 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "" + +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" +msgstr "" + +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"When you perfectly dodge an attack, you can attack rapidly for a short time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." msgstr "" #: lang/json/martial_art_from_json.py @@ -132011,7 +127751,8 @@ msgstr "gründlich beschädigt" msgid "Resin" msgstr "" -#: lang/json/material_from_json.py src/veh_interact.cpp +#: lang/json/material_from_json.py lang/json/material_from_json.py +#: src/veh_interact.cpp msgid "dented" msgstr "verbeult" @@ -132232,7 +127973,7 @@ msgid "Junk Food" msgstr "Junk-Food" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" +msgid "Foodplace's delicious foodstuff" msgstr "" #: lang/json/material_from_json.py @@ -132240,12 +127981,12 @@ msgid "Kevlar" msgstr "Kevlar" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" +msgid "Layered Kevlar" msgstr "" #: lang/json/material_from_json.py -msgid "scarred" -msgstr "schrammig" +msgid "Rigid Kevlar" +msgstr "" #: lang/json/material_from_json.py msgid "Lead" @@ -132373,7 +128114,7 @@ msgstr "Pilz" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "Wasser" @@ -132445,6 +128186,10 @@ msgstr "" msgid "Graphene Weave" msgstr "" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "schrammig" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "" @@ -138425,51 +134170,6 @@ msgid "" " and stumbles." msgstr "" -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes you!" -msgstr "%1$s blendet dich!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes at !" -msgstr "%1$s blendet !" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash you, but fails to." -msgstr "%1$s versagt bei dem Versuch dich zu blenden." - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash , but fails to." -msgstr "%1$s versagt bei dem Versuch zu blenden." - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects you with a syringe!" -msgstr "%1$s injiziert dich mit einer Spritze!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects with a syringe!" -msgstr "%1$s injiziert mit einer Spritze!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "" -"%1$s versucht dich mit einer Spritze zu injiziert, kann deine Rüstung aber " -"nicht durchdringen!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "" -"The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "" -"%1$s versucht mit einer Spritze zu injiziert, kommt aber nicht " -"durch die Rüstung!" - #: lang/json/morale_type_from_json.py #, no-python-format msgid "Enjoyed %s" @@ -138572,6 +134272,10 @@ msgstr "%s nicht gemocht" msgid "Ate Human Flesh" msgstr "Menschenfleisch gegessen" +#: lang/json/morale_type_from_json.py +msgid "Ate Demihuman Flesh" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Ate Meat" msgstr "Fleisch gegessen" @@ -138769,6 +134473,111 @@ msgstr "Fehlgeschlagen" msgid "Debug Morale" msgstr "Debug-Moral" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp src/weather.cpp +msgid "W" +msgstr "W" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "L" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "Du fängst an, zu laufen." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "" + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "Du bist zu müde zum Laufen." + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "" + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "c" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "F" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "" + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp msgid "Any" @@ -140335,7 +136144,6 @@ msgid "Good Hearing" msgstr "Gutes Gehör" #. ~ Description for {'str': 'Good Hearing'} -#. ~ Description for Good Hearing #: lang/json/mutation_from_json.py msgid "" "Your hearing is better than average, and you can hear distant sounds more " @@ -140387,7 +136195,6 @@ msgid "Indefatigable" msgstr "Unermüdlich" #. ~ Description for {'str': 'Indefatigable'} -#. ~ Description for Indefatigable #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -140439,7 +136246,6 @@ msgid "Fast Healer" msgstr "Schneller Heiler" #. ~ Description for {'str': 'Fast Healer'} -#. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" "You heal faster when sleeping and will even recover a small amount of HP " @@ -140491,7 +136297,6 @@ msgid "Pain Resistant" msgstr "Schmerzbeständig" #. ~ Description for {'str': 'Pain Resistant'} -#. ~ Description for Pain Resistant #: lang/json/mutation_from_json.py msgid "You have a high tolerance for pain." msgstr "Du hast eine hohe Schmerzgrenze." @@ -140501,7 +136306,6 @@ msgid "Night Vision" msgstr "Nachtsicht" #. ~ Description for {'str': 'Night Vision'} -#. ~ Description for Night Vision #: lang/json/mutation_from_json.py msgid "" "You possess natural night vision, and can see further in the dark than most." @@ -140606,10 +136410,9 @@ msgstr "Packesel" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." msgstr "" -"Du findest wirklich Platz für alles und kannst im Vergleich 40% mehr Volumen" -" tragen." #: lang/json/mutation_from_json.py msgid "Strong Back" @@ -140648,9 +136451,9 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale" -" bonus." +"you can't even think about eating without a table or not taking your time. " +"Eating without it frustrates you, but eating like a civilized person gives " +"you a bigger morale bonus." msgstr "" #: lang/json/mutation_from_json.py @@ -140687,7 +136490,6 @@ msgid "Deft" msgstr "Gewandt" #. ~ Description for {'str': 'Deft'} -#. ~ Description for Deft #: lang/json/mutation_from_json.py msgid "" "While you're not any better at melee combat, you are better at recovering " @@ -140774,7 +136576,6 @@ msgid "Animal Empathy" msgstr "Tierlieb" #. ~ Description for {'str': 'Animal Empathy'} -#. ~ Description for Animal Empathy #: lang/json/mutation_from_json.py msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" @@ -140790,7 +136591,6 @@ msgid "Animal Kinship" msgstr "" #. ~ Description for {'str': 'Animal Kinship'} -#. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py msgid "" "Something about your presence is calming to animals, and they will treat you" @@ -140803,7 +136603,6 @@ msgid "Terrifying" msgstr "Furchterregend" #. ~ Description for {'str': 'Terrifying'} -#. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " @@ -140901,7 +136700,6 @@ msgid "Light Step" msgstr "Leichter Schritt" #. ~ Description for {'str': 'Light Step'} -#. ~ Description for Light Step #: lang/json/mutation_from_json.py msgid "" "You make less noise while walking. You're also less likely to set off " @@ -140958,7 +136756,6 @@ msgid "Cannibal" msgstr "Kannibale" #. ~ Description for {'str': 'Cannibal'} -#. ~ Description for Cannibal #: lang/json/mutation_from_json.py msgid "" "For your whole life you've been forbidden from indulging in your peculiar " @@ -140969,6 +136766,17 @@ msgstr "" "nachzugeben. Nun hat die Welt aufgehört und du wärest verdammt, wenn " "irgendjemand dir sagen würde, dass du keine Leute essen kannst." +#: lang/json/mutation_from_json.py +msgid "Strict Humanitarian" +msgstr "" + +#. ~ Description for {'str': 'Strict Humanitarian'} +#: lang/json/mutation_from_json.py +msgid "" +"You'd never eat people, but these things that look vaguely human from " +"elsewhere are definitely not people." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Psychopath" msgstr "Psychopath" @@ -141062,7 +136870,6 @@ msgid "Weak Scent" msgstr "Schwacher Geruch" #. ~ Description for {'str': 'Weak Scent'} -#. ~ Description for Weak Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is quite weak. Animals that track your scent will do so with " @@ -141286,11 +137093,9 @@ msgstr "Unordentlich" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." msgstr "" -"Du bist furchtbar unorganisiert beim Lagern deiner Besitztümer. Du kannst " -"40% weniger Volumen tragen." #: lang/json/mutation_from_json.py msgid "Illiterate" @@ -141341,7 +137146,6 @@ msgid "Insomniac" msgstr "Schlaflosigkeit" #. ~ Description for {'str': 'Insomniac'} -#. ~ Description for Insomniac #: lang/json/mutation_from_json.py msgid "" "You have a hard time falling asleep, even under the best circumstances!" @@ -141533,7 +137337,6 @@ msgid "Strong Scent" msgstr "Starker Geruch" #. ~ Description for {'str': 'Strong Scent'} -#. ~ Description for Strong Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is particularly strong. It's not offensive to humans, but " @@ -141678,10 +137481,6 @@ msgstr "" "Besten. Beachte, dass das Kombinieren mit Schneller Lerner dazu führt, dass " "du langsamer bei allen Fertigkeiten lernst." -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "Pazifist" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -141720,7 +137519,6 @@ msgid "Weak Stomach" msgstr "Schwacher Magen" #. ~ Description for {'str': 'Weak Stomach'} -#. ~ Description for Weak Stomach #: lang/json/mutation_from_json.py msgid "You are more likely to throw up from food poisoning, alcohol, etc." msgstr "" @@ -141769,7 +137567,6 @@ msgid "Albino" msgstr "Albino" #. ~ Description for {'str': 'Albino'} -#. ~ Description for Albino #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " @@ -141785,7 +137582,6 @@ msgid "Flimsy" msgstr "Schwach" #. ~ Description for {'str': 'Flimsy'} -#. ~ Description for Flimsy #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -141856,7 +137652,6 @@ msgid "High Night Vision" msgstr "Starke Nachtsicht" #. ~ Description for {'str': 'High Night Vision'} -#. ~ Description for High Night Vision #: lang/json/mutation_from_json.py msgid "" "You can see incredibly well in the dark! Activate to toggle NV-visible " @@ -142053,7 +137848,6 @@ msgid "Regeneration" msgstr "Regeneration" #. ~ Description for {'str': 'Regeneration'} -#. ~ Description for Regeneration #: lang/json/mutation_from_json.py msgid "Your flesh regenerates from wounds incredibly quickly." msgstr "Dein Fleisch reneriert sich von Wunden unglaublich schnell." @@ -142928,7 +138722,6 @@ msgid "Mammal Pheromones" msgstr "Säugetierpheromone" #. ~ Description for {'str': 'Mammal Pheromones'} -#. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" "Your body produces low-level pheromones which put mammals at ease. They " @@ -143014,7 +138807,6 @@ msgid "Venomous" msgstr "Hochgiftig" #. ~ Description for {'str': 'Venomous'} -#. ~ Description for Venomous #: lang/json/mutation_from_json.py msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " @@ -145111,7 +140903,6 @@ msgid "Solar Sensitivity" msgstr "Solarempflindlich" #. ~ Description for {'str': 'Solar Sensitivity'} -#. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " @@ -146070,7 +141861,8 @@ msgid "Well, maybe you'll just have to make your own world wide web." msgstr "" "Tja, vielleicht musst du einfach nur dein eigenes World Wide Web spinnen." -#: lang/json/mutation_from_json.py lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/mutation_from_json.py +#: lang/json/npc_from_json.py msgid "Survivor" msgstr "Überlebender" @@ -146357,8 +142149,8 @@ msgstr "" #. ~ Description for Helicopter Pilot #: lang/json/mutation_from_json.py msgid "" -"You are a trained pilot, you wonder if you will ever have the chance to fly " -"again." +"You are a trained helicopter pilot. This makes you one of the few living " +"people who can operate a helicopter after the Cataclysm." msgstr "" #: lang/json/mutation_from_json.py @@ -146471,12 +142263,10 @@ msgstr "Skater" #. ~ Description for {'str': 'Skater'} #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the Cataclysm," -" and are better at staying on your feet when checked or blocked." +"You are skilled in maneuvering on skates. You suffer less dodging penalties" +" and are less likely to fall down if hit in melee combat while you're " +"wearing rollerskates or rollerblades." msgstr "" -"Vor der Katastrophe verbrachtest du viel Zeit, dich auf Rollschuhen " -"fortzubewegen und bist besser darin, auf deinen Füßen zu bleiben, wenn du " -"aufgehalten oder blockiert wirst." #: lang/json/mutation_from_json.py msgid "Martial Artist" @@ -146720,10 +142510,10 @@ msgid "Mind the bugs, would you kindly?" msgstr "Denk bitte auch an die Bugs, okay?" #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" -msgstr "Debug: Tragekapazität" +msgid "Debug Very Strong Back" +msgstr "" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "" @@ -146852,10 +142642,21 @@ msgid "" " off-limits to you, even if your life depended on it." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "Überlebendengeschichte" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -147946,14 +143747,14 @@ msgid "Your muscles are quite slow to move. You move 25% slower." msgstr "" #: lang/json/mutation_from_json.py -msgid "C.R.I.T Melee Training" +msgid "CRIT Melee Training" msgstr "" -#. ~ Description for C.R.I.T Melee Training +#. ~ Description for CRIT Melee Training #: lang/json/mutation_from_json.py msgid "" -"You have received defensive training. For every hit you land, gain various " -"miniscule combat bonuses that scale off of your stats." +"You have received CQB training. For every hit you land, gain themed combat " +"bonuses." msgstr "" #: lang/json/mutation_from_json.py @@ -147999,21 +143800,6 @@ msgid "" "Emerge from the grave of the old world, and become the night once again." msgstr "" -#. ~ Description for Pretty -#: lang/json/mutation_from_json.py -msgid "" -"You are a sight to behold. NPCs who care about such things will react more " -"kindly to you." -msgstr "" -"Du bist ein herrlicher Anblick. NPCs, denen solche Dinge wichtig sind, " -"werden dir gegenüber freundlicher reagieren." - -#. ~ Description for Thin-Skinned -#: lang/json/mutation_from_json.py -msgid "Your skin is fragile. Cutting damage is slightly increased for you." -msgstr "" -"Deine Haut ist brüchig. Der Schnittschaden ist für dich leicht erhöht." - #: lang/json/mutation_from_json.py msgid "Forest Guardian" msgstr "" @@ -148057,6 +143843,40 @@ msgstr "" msgid "%1$s tears into %2$s with their blades" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Spurs" +msgstr "" + +#. ~ Description for Spurs +#: lang/json/mutation_from_json.py +msgid "" +"Spurs of bone have erupted all across your arms. A thick, biological " +"secretion oozes out of them promising extra harm to enemies." +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "You ravage %s with your arms" +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "%1$s ravages %2$s with their arm spurs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Persistent Body" +msgstr "" + +#. ~ Description for Persistent Body +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "" +"As you move, the world seems to breath life and energy into your limbs. You " +"simply rarely tire less readily than others. Your maximum stamina is 50% " +"higher than usual." +msgstr "" + #: lang/json/mutation_from_json.py msgid "RP: Combatant" msgstr "" @@ -148123,6 +143943,40 @@ msgstr "" "natürliche Weise. Solange du unter Alkoholeinfluss stehst, wird deine " "Nahkampffertigkeit beachtlich ansteigen, insbesondere unbewaffneter Kampf." +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "" @@ -148303,6 +144157,38 @@ msgstr "" msgid "Mana Vortex" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "" @@ -148325,11 +144211,6 @@ msgstr "" msgid "Greater Mana Efficiency" msgstr "" -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" msgstr "" @@ -148379,11 +144260,6 @@ msgstr "" msgid "Greater Mana Regeneration" msgstr "" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "" @@ -148437,13 +144313,6 @@ msgstr "" msgid "Greater Mana Sensitivity" msgstr "" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to" -" tap into more of your reserves." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "" @@ -148848,26 +144717,6 @@ msgstr "" msgid "I've been studying the mi-go for years…" msgstr "" -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive" -" it's twilight." -msgstr "" - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "Echsenmutant" @@ -149078,6 +144927,26 @@ msgid "" "and I don't plan to keep being one." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive" +" it's twilight." +msgstr "" + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "" @@ -149818,18 +145687,10 @@ msgstr "Autoplatz" msgid "shipwreck" msgstr "Schiffswrack" -#: lang/json/overmap_terrain_from_json.py -msgid "razorclaw nest" -msgstr "Rasierklauennest" - #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" msgstr "Funkturm" -#: lang/json/overmap_terrain_from_json.py -msgid "radio tower roof" -msgstr "Funkturmdach" - #: lang/json/overmap_terrain_from_json.py msgid "looted building" msgstr "geplündertes Gebäude" @@ -149842,10 +145703,6 @@ msgstr "Rampentestgebiet" msgid "campsite" msgstr "Campingplatz" -#: lang/json/overmap_terrain_from_json.py -msgid "campsites" -msgstr "Campingplätze" - #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" msgstr "unfertiges Blockhaus" @@ -150059,25 +145916,29 @@ msgid "generic_brushland" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "sugar house" -msgstr "Zuckerhaus" +msgid "rural road" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "sugar house roof" +msgid "dirt road" +msgstr "Unbefestigte Straße" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural building" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "rural road" +msgid "sugar house" +msgstr "Zuckerhaus" + +#: lang/json/overmap_terrain_from_json.py +msgid "sugar house roof" msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "farm field" msgstr "Bauernhof" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house" -msgstr "Bauernhaus" - #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" msgstr "" @@ -150094,6 +145955,10 @@ msgstr "" msgid "farm" msgstr "Bauernhaus" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house" +msgstr "Bauernhaus" + #: lang/json/overmap_terrain_from_json.py msgid "grape farm" msgstr "" @@ -150186,10 +146051,6 @@ msgstr "" msgid "chicken coop roof" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" msgstr "kleiner Friedhof" @@ -150200,23 +146061,19 @@ msgstr "Schwarzbrennerei" #: lang/json/overmap_terrain_from_json.py msgid "moonshine still roof" -msgstr "" +msgstr "Dach einer Schwarzbrennerei" #: lang/json/overmap_terrain_from_json.py msgid "tree farm" msgstr "Baumschule" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "Unbefestigte Straße" - #: lang/json/overmap_terrain_from_json.py msgid "silos" -msgstr "" +msgstr "Silos" #: lang/json/overmap_terrain_from_json.py msgid "yard" -msgstr "" +msgstr "Hof" #: lang/json/overmap_terrain_from_json.py msgid "rural house" @@ -150230,6 +146087,10 @@ msgstr "" msgid "farm road" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "barn roof" msgstr "" @@ -150342,6 +146203,10 @@ msgstr "Elektronikfachgeschäft" msgid "electronics store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "Sportgeschäft" @@ -150374,10 +146239,6 @@ msgstr "" msgid "clothing store" msgstr "Bekleidungsgeschäft" -#: lang/json/overmap_terrain_from_json.py -msgid "clothing store roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "bookstore" msgstr "Buchladen" @@ -150386,6 +146247,10 @@ msgstr "Buchladen" msgid "bookstore roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "Diner" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "Restaurant" @@ -150514,10 +146379,6 @@ msgstr "Hotel" msgid "hotel entrance" msgstr "Hoteleingang" -#: lang/json/overmap_terrain_from_json.py -msgid "hotel tower" -msgstr "Hotelturm" - #: lang/json/overmap_terrain_from_json.py msgid "hotel basement" msgstr "Hotelkeller" @@ -150542,10 +146403,6 @@ msgstr "Superheimwerkergeschäft" msgid "garage - gas station" msgstr "Tankstelle mit Werkstatt" -#: lang/json/overmap_terrain_from_json.py -msgid "garage - gas station roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "dispensary" msgstr "Arzneiausgabe" @@ -150715,11 +146572,11 @@ msgid "craft shop" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "craft shop roof" +msgid "craft shop upper roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "craft shop upper roof" +msgid "craft shop roof" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -150752,11 +146609,11 @@ msgstr "Autohaus" #: lang/json/overmap_terrain_from_json.py msgid "car showroom 2nd floor" -msgstr "" +msgstr "Autohaus - 2er Stock" #: lang/json/overmap_terrain_from_json.py msgid "car showroom roof" -msgstr "" +msgstr "Autohaus - Dach" #: lang/json/overmap_terrain_from_json.py msgid "car dealership" @@ -150830,18 +146687,30 @@ msgstr "" msgid "hunting supply store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "Outdoorladen" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "road" -msgstr "Straße" +msgid "gaming store" +msgstr "Spielwarenladen" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "Flüchtlingslager" +#: lang/json/overmap_terrain_from_json.py +msgid "road" +msgstr "Straße" + #: lang/json/overmap_terrain_from_json.py msgid "camp survey" msgstr "Lager in Vorbereitung" @@ -151060,11 +146929,11 @@ msgstr "Holzlager" #: lang/json/overmap_terrain_from_json.py msgid "lumbermill" -msgstr "" +msgstr "Sägewerk" #: lang/json/overmap_terrain_from_json.py msgid "lumbermill roof" -msgstr "" +msgstr "Sägewerk - Dach" #: lang/json/overmap_terrain_from_json.py msgid "construction site" @@ -151076,7 +146945,7 @@ msgstr "verlassenes Lager" #: lang/json/overmap_terrain_from_json.py msgid "abandoned warehouse roof" -msgstr "" +msgstr "verlassenes Lager - Dach" #: lang/json/overmap_terrain_from_json.py msgid "storage units" @@ -151084,14 +146953,30 @@ msgstr "Lagereinheiten" #: lang/json/overmap_terrain_from_json.py msgid "storage units roof" -msgstr "" +msgstr "Lagereinheiten - Dach" #: lang/json/overmap_terrain_from_json.py msgid "steel mill" -msgstr "" +msgstr "Stahlwerk" #: lang/json/overmap_terrain_from_json.py msgid "steel mill depot" +msgstr "Stahlwerkdepot" + +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "Leichtindustrie" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -151174,13 +147059,17 @@ msgstr "Platz" msgid "mall - entrance" msgstr "Einkaufszentrum – Eingang" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - food court" +msgstr "Einkaufszentrum – Food-Court" + #: lang/json/overmap_terrain_from_json.py msgid "mall - food court roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "mall - food court" -msgstr "Einkaufszentrum – Food-Court" +msgid "mall - subway station" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mansion" @@ -151291,10 +147180,6 @@ msgstr "Polizeidienststelle" msgid "church" msgstr "Kirche" -#: lang/json/overmap_terrain_from_json.py -msgid "sewer" -msgstr "Abwasserkanal" - #: lang/json/overmap_terrain_from_json.py msgid "sewer?" msgstr "Abwasserkanal (?)" @@ -151303,6 +147188,14 @@ msgstr "Abwasserkanal (?)" msgid "basement" msgstr "Keller" +#: lang/json/overmap_terrain_from_json.py +msgid "sewer" +msgstr "Abwasserkanal" + +#: lang/json/overmap_terrain_from_json.py +msgid "Vault - Passage" +msgstr "Bunkerkomplex – Korridor" + #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" msgstr "Bunkerkomplex – Kaserne" @@ -151335,10 +147228,6 @@ msgstr "Bunkerkomplex – Eingang" msgid "Vault - Utilities" msgstr "Bunkerkomplex – Werkzeuge" -#: lang/json/overmap_terrain_from_json.py -msgid "Vault - Passage" -msgstr "Bunkerkomplex – Korridor" - #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" msgstr "Bunkerkomplex – Kommunikation" @@ -151429,11 +147318,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "church roof" -msgstr "" +msgstr "Kirchendach" #: lang/json/overmap_terrain_from_json.py msgid "church steeple" -msgstr "" +msgstr "Kirchturm" #: lang/json/overmap_terrain_from_json.py msgid "cathedral" @@ -151449,7 +147338,7 @@ msgstr "Bibliothek" #: lang/json/overmap_terrain_from_json.py msgid "library roof" -msgstr "" +msgstr "Bibliothek - Dach" #: lang/json/overmap_terrain_from_json.py msgid "police station roof" @@ -151785,16 +147674,16 @@ msgid "marina parking" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" -msgstr "Doppelhaus" +msgid "house roof" +msgstr "Hausdach" #: lang/json/overmap_terrain_from_json.py -msgid "apartment tower" -msgstr "Wohnhochhaus" +msgid "dense urban" +msgstr "dichtes Stadtgebiet" #: lang/json/overmap_terrain_from_json.py -msgid "homeless camp" -msgstr "Obdachlosenlager" +msgid "apartment tower" +msgstr "Wohnhochhaus" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" @@ -151804,6 +147693,10 @@ msgstr "Wohnwagenplatz" msgid "trailer park roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless camp" +msgstr "Obdachlosenlager" + #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" msgstr "verlassenes Wohngrundstück" @@ -151812,10 +147705,6 @@ msgstr "verlassenes Wohngrundstück" msgid "derelict property" msgstr "verlassenes Grundstück" -#: lang/json/overmap_terrain_from_json.py -msgid "dense urban" -msgstr "dichtes Stadtgebiet" - #: lang/json/overmap_terrain_from_json.py msgid "river" msgstr "Fluss" @@ -151848,26 +147737,14 @@ msgstr "Brücke" msgid "roadstop" msgstr "Straßensperre" -#: lang/json/overmap_terrain_from_json.py -msgid "roadstop roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "public washroom" msgstr "öffentliche Toilette" -#: lang/json/overmap_terrain_from_json.py -msgid "public washroom roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" msgstr "Essenswagen am Straßenrand" -#: lang/json/overmap_terrain_from_json.py -msgid "roadside foodcart roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "Eisenbahn" @@ -152044,14 +147921,14 @@ msgstr "Offener Abwasserkanal" msgid "small dump" msgstr "kleine Mülldeponie" -#: lang/json/overmap_terrain_from_json.py -msgid "lake shore" -msgstr "Seeufer" - #: lang/json/overmap_terrain_from_json.py msgid "lake" msgstr "See" +#: lang/json/overmap_terrain_from_json.py +msgid "lake shore" +msgstr "Seeufer" + #: lang/json/overmap_terrain_from_json.py msgid "lake (submerged)" msgstr "" @@ -152101,36 +147978,12 @@ msgid "county mortuary roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "Wildtiere-Außendienststelle" - -#: lang/json/overmap_terrain_from_json.py -msgid "diner" -msgstr "Diner" - -#: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "Apartment" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" -msgstr "Autohandel" - -#: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "Outdoorladen" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "Spielwarenladen" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "Flughafen" +msgid "Dinosaur Exhibit" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "light industry" -msgstr "Leichtindustrie" +msgid "wildlife field office" +msgstr "Wildtiere-Außendienststelle" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -152144,6 +147997,10 @@ msgstr "Bunker" msgid "scavenger bunker" msgstr "Sammlerbunker" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "" @@ -152157,7 +148014,6 @@ msgid "used bookstore" msgstr "" #: lang/json/overmap_terrain_from_json.py -#: lang/json/start_location_from_json.py msgid "Swamp" msgstr "Sumpf" @@ -152189,10 +148045,6 @@ msgstr "Tor" msgid "house basement" msgstr "Hauskeller" -#: lang/json/overmap_terrain_from_json.py -msgid "house roof" -msgstr "Hausdach" - #: lang/json/overmap_terrain_from_json.py msgid "attached garage" msgstr "angebaute Garage" @@ -152301,10 +148153,6 @@ msgstr "Mikrobiologielabor" msgid "rocketry lab" msgstr "Raketentechniklabor" -#: lang/json/overmap_terrain_from_json.py -msgid "robot dispatch center" -msgstr "Roboterzentrale" - #: lang/json/overmap_terrain_from_json.py msgid "school" msgstr "Schule" @@ -152333,6 +148181,14 @@ msgstr "Mechanikergarage" msgid "megastore entrance" msgstr "Einkaufszentrum Eingang" +#: lang/json/overmap_terrain_from_json.py +msgid "hotel tower" +msgstr "Hotelturm" + +#: lang/json/overmap_terrain_from_json.py +msgid "razorclaw nest" +msgstr "Rasierklauennest" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "Abwasserkläranlage" @@ -152349,6 +148205,10 @@ msgstr "Kabelverzweiger" msgid "electric substation" msgstr "Umspannwerk" +#: lang/json/overmap_terrain_from_json.py +msgid "campsites" +msgstr "Campingplätze" + #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" msgstr "religiöser Friedhof" @@ -152386,15 +148246,10 @@ msgstr "Vagabund" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Die Umstände zwangen dich ohne Zuhause, Familie oder Freunde auf " -"Wanderschaft zu gehen. Aber die Welt, die du kanntest, existiert nicht mehr " -"und vielleicht werden sich die Erfahrungen und Kenntnisse, auf die du dich " -"bisher beim Überleben verlassen hast, in dieser neuen Welt als vorteilhaft " -"erweisen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152405,15 +148260,10 @@ msgstr "Vagabund" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Die Umstände zwangen dich ohne Zuhause, Familie oder Freunde auf " -"Wanderschaft zu gehen. Aber die Welt, die du kanntest, existiert nicht mehr " -"und vielleicht werden sich die Erfahrungen und Kenntnisse, auf die du dich " -"bisher beim Überleben verlassen hast, in dieser neuen Welt als vorteilhaft " -"erweisen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152424,13 +148274,10 @@ msgstr "Bionik-Prepper" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"Du wusstest, dass das Ende bevorstand. Du hast dich mit ein paar einfachen " -"Bioniken und zusätzlichem Überlebenstraining verbessert. Nun ist das Ende " -"gekommen und es ist Zeit, zu sehen, ob sich deine Mühen ausgezahlt haben." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152441,13 +148288,10 @@ msgstr "Bionik-Prepper" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"Du wusstest, dass das Ende bevorstand. Du hast dich mit ein paar einfachen " -"Bioniken und zusätzlichem Überlebenstraining verbessert. Nun ist das Ende " -"gekommen und es ist Zeit, zu sehen, ob sich deine Mühen ausgezahlt haben." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152458,12 +148302,9 @@ msgstr "Überlebender" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" -"Einige würden sagen, dass es nichts besonders bemerkenswertes über dich " -"gibt. Aber du überlebtest und das ist mehr, als die Meisten von sich " -"behaupten können." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152474,12 +148315,9 @@ msgstr "Überlebende" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" -"Einige würden sagen, dass es nichts besonders bemerkenswertes über dich " -"gibt. Aber du überlebtest und das ist mehr, als die Meisten von sich " -"behaupten können." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152490,9 +148328,9 @@ msgstr "Geschützter Überlebender" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -152504,9 +148342,9 @@ msgstr "Geschützte Überlebende" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -152518,9 +148356,9 @@ msgstr "Untergebrachte Miliz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -152532,9 +148370,9 @@ msgstr "Untergebrachte Miliz" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -152547,12 +148385,9 @@ msgstr "Schneider" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"Das Schneidereihandwerk scheint nicht die nützlichste Fertigkeit zu sein, " -"als die Welt endete. Die meisten Leute würden nicht erwarten, dass ein " -"Schneider lange lebt. Dies ist deine Gelegenheit, das Gegenteil zu beweisen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152564,13 +148399,9 @@ msgstr "Schneiderin" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"Das Schneidereihandwerk scheint nicht die nützlichste Fertigkeit zu sein, " -"als die Welt endete. Die meisten Leute würden nicht erwarten, dass eine " -"Schneiderin lange lebt. Dies ist deine Gelegenheit, das Gegenteil zu " -"beweisen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152582,13 +148413,9 @@ msgstr "Chefkoch" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" -"Smørrebrød, Smørrebrød røm, pøm, pøm, pøm! Jahre in der Küche haben dir eine" -" gewaltige Menge an Sachen hinterlassen, aber du bist dem Blutbad mit einem " -"Fleischermesser und nur ein paar Flecken auf deiner Arbeitskleidung " -"entkommen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152600,13 +148427,9 @@ msgstr "Chefköchin" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" -"Smørrebrød, Smørrebrød røm, pøm, pøm, pøm! Jahre in der Küche haben dir eine" -" gewaltige Menge an Sachen hinterlassen, aber du bist dem Blutbad mit einem " -"Fleischermesser und nur ein paar Flecken auf deiner Arbeitskleidung " -"entkommen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152647,14 +148470,10 @@ msgstr "Laborant" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Dank deiner Zeit im Labor bist du vertraut mit den Grundlagen der " -"Durchführung wissenschaftlicher Arbeit. Jetzt, wo die Welt aufgehört hat, " -"verbleibt nur eine Frage: Kannst die Apokalypse, die du mit herbeigeführt " -"hast, wieder rückgängig machen?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152665,14 +148484,10 @@ msgstr "Laborantin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Dank deiner Zeit im Labor bist du vertraut mit den Grundlagen der " -"Durchführung wissenschaftlicher Arbeit. Jetzt, wo die Welt aufgehört hat, " -"verbleibt nur eine Frage: Kannst die Apokalypse, die du mit herbeigeführt " -"hast, wieder rückgängig machen?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152683,11 +148498,10 @@ msgstr "Heimwerker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Obwohl du niemals deinen Führerschein gemacht hast, hast du schon immer " -"Autos gemocht. Wenigstens wirst du nun nie wieder Materialien brauchen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152698,11 +148512,10 @@ msgstr "Heimwerkerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Obwohl du niemals deinen Führerschein gemacht hast, hast du schon immer " -"Autos gemocht. Wenigstens wirst du nun nie wieder Materialien brauchen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152716,12 +148529,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"Deine flexible Einstellung gegenüber dem Gesetz, deine Schlägereien und " -"deine beeindruckende Fähigkeit, sich aus den Konsequenzen herauszuwinden – " -"all diese Fähigkeiten sichterten dir dein Überleben. Aber wie viel länger " -"werden sie ausreichen?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152735,12 +148544,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"Deine flexible Einstellung gegenüber dem Gesetz, deine Schlägereien und " -"deine beeindruckende Fähigkeit, sich aus den Konsequenzen herauszuwinden – " -"all diese Fähigkeiten sichterten dir dein Überleben. Aber wie viel länger " -"werden sie ausreichen?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152751,9 +148556,9 @@ msgstr "Imker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" #: lang/json/professions_from_json.py @@ -152765,9 +148570,9 @@ msgstr "Imkerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" #: lang/json/professions_from_json.py @@ -152779,9 +148584,9 @@ msgstr "Basketballspieler" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" #: lang/json/professions_from_json.py @@ -152793,9 +148598,9 @@ msgstr "Basketballspielerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" #: lang/json/professions_from_json.py @@ -152807,10 +148612,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -152822,10 +148626,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -152839,13 +148642,9 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"Du warst ein vielversprechender junger Radfahrer mit einer glänzenden " -"Karriere vor dir, bevor all dies passierte. Vielleicht wirst du niemals an " -"den großen Touren teilnehmen, aber wie schon das Sprichwort besagt: Das " -"Leben ist wie Fahradfahren, man muss immer in Bewegung bleiben." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152858,13 +148657,9 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"Du warst eine vielversprechende junge Radfahrerin mit einer glänzenden " -"Karriere vor dir, bevor all dies passierte. Vielleicht wirst du niemals an " -"den großen Touren teilnehmen, aber wie schon das Sprichwort besagt: Das " -"Leben ist wie Fahradfahren, man muss immer in Bewegung bleiben." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152875,16 +148670,11 @@ msgstr "Rekrut" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Du warst ein Schulabbrecher mit einem Ziel vor Augen: dem Militär " -"beizutreten. Du bist endlich hereingekommen, gerade rechtzeitig zum " -"Training, nur um vom Staatsnotstand unterbrochen zu werden. So weit du sagen" -" kannst, hat dich das Militärkommando in diesem Höllenloch im Stich " -"gelassen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152895,16 +148685,11 @@ msgstr "Rekrutin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Du warst ein Schulabbrecher mit einem Ziel vor Augen: dem Militär " -"beizutreten. Du bist endlich hereingekommen, gerade rechtzeitig zum " -"Training, nur um vom Staatsnotstand unterbrochen zu werden. So weit du sagen" -" kannst, hat dich das Militärkommando in diesem Höllenloch im Stich " -"gelassen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152953,8 +148738,9 @@ msgstr "Butler" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -152966,8 +148752,9 @@ msgstr "Magd" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -152979,10 +148766,11 @@ msgstr "Gefangener" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -152994,10 +148782,11 @@ msgstr "Gefangener" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -153010,9 +148799,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -153025,9 +148814,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -153040,12 +148829,10 @@ msgstr "Assistenzarzt" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"Frisch aus der Ärzteschule hast du ein paar wenige Praxiserfahrungen " -"gemacht. Du hoffst nur, dass sie ausreichen werden, um dich selbst verarzten" -" zu können." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153057,12 +148844,10 @@ msgstr "Assistenzärztin" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"Frisch aus der Ärzteschule hast du ein paar wenige Praxiserfahrungen " -"gemacht. Du hoffst nur, dass sie ausreichen werden, um dich selbst verarzten" -" zu können." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153074,13 +148859,9 @@ msgstr "Gangster" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"Der Boss sagte immer, dass er sich auf dich verlassen kann, die schwierigen " -"Dinger zu drehen. Eine Schande, dass er es nicht selbst geschafft hat. Als " -"jemand, dem einen ein Ort der Gewalt nicht fremd ist fühlst du dich in " -"dieser neuen Welt fast wie Zuhause." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153092,13 +148873,9 @@ msgstr "Gangster" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"Der Boss sagte immer, dass er sich auf dich verlassen kann, die schwierigen " -"Dinger zu drehen. Eine Schande, dass er es nicht selbst geschafft hat. Als " -"jemand, dem einen ein Ort der Gewalt nicht fremd ist fühlst du dich in " -"dieser neuen Welt fast wie Zuhause." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153109,15 +148886,10 @@ msgstr "Wächter" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Als schlecht bezahlte Wache wurde es plötzlich viel gefährlicher, als nur " -"auf Grundstücken zu patroullieren, um potentielle Diebe abzuwehren. Du hast " -"keine besonders nützlichen Fähigkeiten, aber du hast eine nützliche " -"Dienstausrüstung, als es berab ging." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153128,15 +148900,10 @@ msgstr "Wächterin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Als schlecht bezahlte Wache wurde es plötzlich viel gefährlicher, als nur " -"auf Grundstücken zu patroullieren, um potentielle Diebe abzuwehren. Du hast " -"keine besonders nützlichen Fähigkeiten, aber du hast eine nützliche " -"Dienstausrüstung, als es berab ging." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153149,7 +148916,7 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" #: lang/json/professions_from_json.py @@ -153163,7 +148930,7 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" #: lang/json/professions_from_json.py @@ -153175,9 +148942,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" #: lang/json/professions_from_json.py @@ -153189,9 +148956,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" #: lang/json/professions_from_json.py @@ -153203,10 +148970,9 @@ msgstr "Überlebenskünstler" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" #: lang/json/professions_from_json.py @@ -153218,10 +148984,9 @@ msgstr "Überlebenskünstlerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" #: lang/json/professions_from_json.py @@ -153233,13 +148998,10 @@ msgstr "Kettenraucher" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Jeder bei der Arbeit kannte dich als die Person, die immer eine oder zwei " -"Zigarretten zur Hand hatte. Nun hast nur noch eine Schachtel und hoffst, " -"bald mehr zu finden. Du beginnst mit einer starken Nikotinsucht." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153250,13 +149012,10 @@ msgstr "Kettenraucherin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Jeder bei der Arbeit kannte dich als die Person, die immer eine oder zwei " -"Zigarretten zur Hand hatte. Nun hast nur noch eine Schachtel und hoffst, " -"bald mehr zu finden. Du beginnst mit einer starken Nikotinsucht." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153269,12 +149028,8 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"Kokain: Wahrhaft, dies ist eine höllische Droge. Du vergeudest dein Geld auf" -" etwas von dem Pulver und ehe du dich versiehst, gehst du auf dem Strich, " -"hinter der örtlichen CVS-Filiale, nur, um noch einen weiteren Schuss zu " -"kriegen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153287,12 +149042,8 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"Kokain: Wahrhaft, dies ist eine höllische Droge. Du vergeudest dein Geld auf" -" etwas von dem Pulver und ehe du dich versiehst, gehst du auf dem Strich, " -"hinter der örtlichen CVS-Filiale, nur, um noch einen weiteren Schuss zu " -"kriegen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153303,15 +149054,11 @@ msgstr "Landstreicher" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"Die Gesellschaft verdrängte dich und du fingst an, herumzuwandern, ohne " -"Zuhause, ohne Familie, ohne Freunde, bis du deinen einzigen Trost in der " -"Flasche finden konntest. Aber »Gesellschaft« bedeutet nichts mehr, und für " -"all die Scheiße, die durchlebtest, stehst du immer noch aufrecht." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153322,15 +149069,11 @@ msgstr "Landstreicherin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"Die Gesellschaft verdrängte dich und du fingst an, herumzuwandern, ohne " -"Zuhause, ohne Familie, ohne Freunde, bis du deinen einzigen Trost in der " -"Flasche finden konntest. Aber »Gesellschaft« bedeutet nichts mehr, und für " -"all die Scheiße, die durchlebtest, stehst du immer noch aufrecht." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153341,13 +149084,10 @@ msgstr "Speed-Junkie" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"Du bist dir nicht ganz sicher, was passierte, aber alles ging den Bach " -"runter und das Einzige, was dir durch den Kopf geht ist die Frage, woher du " -"deinen nächsten Kick bekommst." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153358,13 +149098,10 @@ msgstr "Speed-Junkie" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"Du bist dir nicht ganz sicher, was passierte, aber alles ging den Bach " -"runter und das Einzige, was dir durch den Kopf geht ist die Frage, woher du " -"deinen nächsten Kick bekommst." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153376,12 +149113,9 @@ msgstr "Pillenschlucker" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" -"Nach einem Unfall in deiner Jugend wurdest du abhängig von den Opiaten, die " -"deine Schmerzen stillten. Da nun die Apotheken geschlossen und die Dealer " -"untot sind, ist es erheblich schwieriger, deine Sucht zu befriedigen. " #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153393,12 +149127,9 @@ msgstr "Pillenschluckerin" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" -"Nach einem Unfall in deiner Jugend wurdest du abhängig von den Opiaten, die " -"deine Schmerzen stillten. Da nun die Apotheken geschlossen und die Dealer " -"untot sind, ist es erheblich schwieriger, deine Sucht zu befriedigen. " #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153409,8 +149140,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -153422,8 +149154,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -153436,8 +149169,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -153450,8 +149184,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -153463,11 +149198,9 @@ msgstr "Verrückter Katzenkerl" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" -"Alle sind tot? Na ja, macht nichts… Deine Katzen sind all die Freunde, die " -"du brauchst! " #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153478,11 +149211,9 @@ msgstr "Verrückte Katzenlady" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" -"Alle sind tot? Na ja, macht nichts… Deine Katzen sind all die Freunde, die " -"du brauchst! " #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153493,15 +149224,11 @@ msgstr "Polizeibeamter" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Als du den Anruf erhieltest, wast du nur ein Kleinstadtstellvertreter und " -"immer noch bereit, zur Rettung zu eilen. Außer, dass es bald du warst, der " -"Rettung brauchte – du hattest Glück und konntest mit deinem Leben " -"davonkommen. Doch wer wird jetzt noch deine Autorität respektieren?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153512,15 +149239,11 @@ msgstr "Polizeibeamte" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Als du den Anruf erhieltest, wast du nur ein Kleinstadtstellvertreter und " -"immer noch bereit, zur Rettung zu eilen. Außer, dass es bald du warst, der " -"Rettung brauchte – du hattest Glück und konntest mit deinem Leben " -"davonkommen. Doch wer wird jetzt noch deine Autorität respektieren?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153531,13 +149254,10 @@ msgstr "Kriminalpolizist" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"Du warst an der Schwelle eines großen Durchbruchs in deinem letzten " -"Mordfall, als die Katastrophe zuschlug. Nun ist der verdächtige tot. Jeder " -"ist tot. Du brauchst eine Zigarette." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153548,13 +149268,10 @@ msgstr "Kriminalpolizistin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"Du warst an der Schwelle eines großen Durchbruchs in deinem letzten " -"Mordfall, als die Katastrophe zuschlug. Nun ist der verdächtige tot. Jeder " -"ist tot. Du brauchst eine Zigarette." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153567,13 +149284,9 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Als ein Mitglied der elitärsten Abteilung der Polizei wurdest du mehr als " -"ausreichend trainiert und ausgerüstet, um den brutalen Ansturm der " -"Apokalypse zu überleben. Leider bedeutet der Zerfall der Gesellschaft für " -"dich, dass du nur noch kämpfst, um zu überleben." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153586,13 +149299,9 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Als ein Mitglied der elitärsten Abteilung der Polizei wurdest du mehr als " -"ausreichend trainiert und ausgerüstet, um den brutalen Ansturm der " -"Apokalypse zu überleben. Leider bedeutet der Zerfall der Gesellschaft für " -"dich, dass du nur noch kämpfst, um zu überleben." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153603,14 +149312,11 @@ msgstr "SWAT-Nahkampfspezialist" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Als ein Mitglied der elitärsten Abteilung der Polizei hat dich dein " -"Nahkampftraining bisher am Leben gehalten. Leider bedeutet der Zerfall der " -"Gesellschaft für dich, dass du nur noch kämpfst, um zu überleben." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153621,14 +149327,11 @@ msgstr "SWAT-Nahkampfspezialistin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Als ein Mitglied der elitärsten Abteilung der Polizei hat dich dein " -"Nahkampftraining bisher am Leben gehalten. Leider bedeutet der Zerfall der " -"Gesellschaft für dich, dass du nur noch kämpfst, um zu überleben." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153640,15 +149343,10 @@ msgstr "Polizeischarfschütze" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Deine Fähigkeit als Scharfschütze half dir sehr in deinen Einsätzen, in " -"denen du die Unschuldigen mit einer gut platzierten Kugel retten konntest. " -"Jetzt steht das Überleben selbst auf dem Spiel und du kannst es dir nicht " -"leisten, zu verfehlen, wenn du nicht als jemandes Mittagessen enden " -"möchtest." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153660,15 +149358,10 @@ msgstr "Polizeischarfschützin" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Deine Fähigkeit als Scharfschütze half dir sehr in deinen Einsätzen, in " -"denen du die Unschuldigen mit einer gut platzierten Kugel retten konntest. " -"Jetzt steht das Überleben selbst auf dem Spiel und du kannst es dir nicht " -"leisten, zu verfehlen, wenn du nicht als jemandes Mittagessen enden " -"möchtest." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153679,16 +149372,11 @@ msgstr "Aufstandsbekämpfungspolizist" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"Die Aufstände waren brutal, und das war, bevor die Toten aufstanden sind und" -" anfingen, die Lebenden zu fressen. Bald war klar, dass du sie nicht " -"aufhalten konntest – es gelang dir nur mit Glück und vielen zertrümmerten " -"Köpfen, dass du überhaupt lebend fliehen konntest, doch das Schlimmste kommt" -" noch." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153699,16 +149387,11 @@ msgstr "Aufstandsbekämpfungspolizistin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"Die Aufstände waren brutal, und das war, bevor die Toten aufstanden sind und" -" anfingen, die Lebenden zu fressen. Bald war klar, dass du sie nicht " -"aufhalten konntest – es gelang dir nur mit Glück und vielen zertrümmerten " -"Köpfen, dass du überhaupt lebend fliehen konntest, doch das Schlimmste kommt" -" noch." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153719,15 +149402,10 @@ msgstr "Gebrauchtwagenhändler" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Du wirst beschuldigt, der Personentyp zu sein, der willentlich seine eigene " -"Mutter für einen Dollar verkaufen würde. Das hat dich immer beleidigt – du " -"bist gut bewandert und du verlangst wesentlich mehr als einen Dollar – und " -"du kriegst das Geld auch noch!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153738,15 +149416,10 @@ msgstr "Gebrauchtwagenhändlerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Du wirst beschuldigt, der Personentyp zu sein, der willentlich seine eigene " -"Mutter für einen Dollar verkaufen würde. Das hat dich immer beleidigt – du " -"bist gut bewandert und du verlangst wesentlich mehr als einen Dollar – und " -"du kriegst das Geld auch noch!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153757,15 +149430,11 @@ msgstr "Bogen-Jäger" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"Schon seit du ein Kind warst, liebtest du die Jagd und fandest früh Gefallen" -" an der Herausforderung, mit einem Bogen zu jagen. Denn wenn die Welt " -"aufgehört haben sollte, dann gibt es nichts, was du an deiner Seite näher " -"haben willst, als dein treuer Bogen. Also hast du ihn mitgenommen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153776,15 +149445,11 @@ msgstr "Bogen-Jägerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"Schon seit du ein Kind warst, liebtest du die Jagd und fandest früh Gefallen" -" an der Herausforderung, mit einem Bogen zu jagen. Denn wenn die Welt " -"aufgehört haben sollte, dann gibt es nichts, was du an deiner Seite näher " -"haben willst, als dein treuer Bogen. Also hast du ihn mitgenommen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153795,15 +149460,11 @@ msgstr "Armbrustjäger" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"Schon seit du ein Kind warst, liebtest du die Jagd und fandest früh Gefallen" -" an der Herausforderung, mit einer Armbrust zu jagen. Denn wenn die Welt " -"aufgehört haben sollte, dann gibt es nichts, was du an deiner Seite näher " -"haben willst, als deine treue Armbrust. Also hast du sie mitgenommen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153814,15 +149475,11 @@ msgstr "Armbrustjägerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"Schon seit du ein Kind warst, liebtest du die Jagd und fandest früh Gefallen" -" an der Herausforderung, mit einer Armbrust zu jagen. Denn wenn die Welt " -"aufgehört haben sollte, dann gibt es nichts, was du an deiner Seite näher " -"haben willst, als deine treue Armbrust. Also hast du sie mitgenommen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153833,15 +149490,11 @@ msgstr "Flintenjäger" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"Schon seit du ein Kind warst, liebtest du die Jagd und fandest früh Gefallen" -" an der Herausforderung, mit einer Flinte zu jagen. Denn wenn die Welt " -"aufgehört haben sollte, dann gibt es nichts, was du an deiner Seite näher " -"haben willst, als deine treue Flinte. Also hast du sie mitgenommen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153852,15 +149505,11 @@ msgstr "Flintenjägerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"Schon seit du ein Kind warst, liebtest du die Jagd und fandest früh Gefallen" -" an der Herausforderung, mit einer Flinte zu jagen. Denn wenn die Welt " -"aufgehört haben sollte, dann gibt es nichts, was du an deiner Seite näher " -"haben willst, als deine treue Flinte. Also hast du sie mitgenommen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153871,15 +149520,11 @@ msgstr "Gewehrjäger" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"Schon seit du ein Kind warst, liebtest du die Jagd und fandest früh Gefallen" -" an der Herausforderung, mit einem Gewehr zu jagen. Denn wenn die Welt " -"aufgehört haben sollte, dann gibt es nichts, was du an deiner Seite näher " -"haben willst, als dein treues Gewehr. Also hast du es mitgenommen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153890,15 +149535,11 @@ msgstr "Gewehrjägerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"Schon seit du ein Kind warst, liebtest du die Jagd und fandest früh Gefallen" -" an der Herausforderung, mit einem Gewehr zu jagen. Denn wenn die Welt " -"aufgehört haben sollte, dann gibt es nichts, was du an deiner Seite näher " -"haben willst, als dein treues Gewehr. Also hast du es mitgenommen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153909,15 +149550,11 @@ msgstr "Handwerker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"Du arbeitetest in einem Baumarkt in der Nähe und hast viele " -"Heimrenovierungen selbst gemacht. Nun schaust du auf den Horizont einer " -"ruinierten Welt und fragst dich: Sind deine dürftigen Fähigkeiten und " -"Vorräte ausreichend, um beim Wiederaufbau zu helfen?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153928,15 +149565,11 @@ msgstr "Handwerkerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"Du arbeitetest in einem Baumarkt in der Nähe und hast viele " -"Heimrenovierungen selbst gemacht. Nun schaust du auf den Horizont einer " -"ruinierten Welt und fragst dich: Sind deine dürftigen Fähigkeiten und " -"Vorräte ausreichend, um beim Wiederaufbau zu helfen?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153947,9 +149580,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -153961,9 +149593,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -154007,13 +149638,11 @@ msgstr "Rucksacktourist" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Durch Reisen schlugst du dich so durchs Leben, mit Besichtigungen hier und " -"da, und lebtest vom Treuhandfonds deiner Eltern. Aber nun sind sie fort und " -"das Einzige zwischen dir und dem Tod ist die freie Straße und dein Rucksack." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154024,13 +149653,11 @@ msgstr "Rucksacktouristin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Durch Reisen schlugst du dich so durchs Leben, mit Besichtigungen hier und " -"da, und lebtest vom Treuhandfonds deiner Eltern. Aber nun sind sie fort und " -"das Einzige zwischen dir und dem Tod ist die freie Straße und dein Rucksack." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154041,11 +149668,10 @@ msgstr "Fast-Food-Koch" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Du arbeitetest in einem schicken Schnellrestaurant vor einer Woche, aber nun" -" zeigst du die Bedeutung von »Schnell«, indem du um dein Leben rennst." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154056,11 +149682,10 @@ msgstr "Fast-Food-Köchin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Du arbeitetest in einem schicken Schnellrestaurant vor einer Woche, aber nun" -" zeigst du die Bedeutung von »Schnell«, indem du um dein Leben rennst." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154071,10 +149696,8 @@ msgstr "Elektriker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" #: lang/json/professions_from_json.py @@ -154086,10 +149709,8 @@ msgstr "Elektrikerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" #: lang/json/professions_from_json.py @@ -154101,14 +149722,11 @@ msgstr "Hacker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"Koffeinpillen und durchgemachte Nächte vor einem Computerbildschirm gaben " -"dir Fertigkeiten in einem Bereich, der, oberflächlich betrachtet, nutzlos " -"erscheint, als die Welt aufhörte. Außer, wenn du es schaffst, einen " -"militärischen Mainframe zu finden." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154119,14 +149737,11 @@ msgstr "Haeckse" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"Koffeinpillen und durchgemachte Nächte vor einem Computerbildschirm gaben " -"dir Fertigkeiten in einem Bereich, der, oberflächlich betrachtet, nutzlos " -"erscheint, als die Welt aufhörte. Außer, wenn du es schaffst, einen " -"militärischen Mainframe zu finden." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154137,13 +149752,11 @@ msgstr "Student" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Du warst ein High-School-Schüler, aber die Tests, die dir nun bevorstehen, " -"sind viel schwieriger. Da könnte sogar etwas nützliches in einen dieser " -"Bücher, die du das ganze Jahr mit dir herumschlepptest, sein." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154154,13 +149767,11 @@ msgstr "Studentin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Du warst ein High-School-Schüler, aber die Tests, die dir nun bevorstehen, " -"sind viel schwieriger. Da könnte sogar etwas nützliches in einen dieser " -"Bücher, die du das ganze Jahr mit dir herumschlepptest, sein." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154171,9 +149782,9 @@ msgstr "Dusch-Opfer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" #: lang/json/professions_from_json.py @@ -154185,9 +149796,9 @@ msgstr "Dusch-Opfer" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" #: lang/json/professions_from_json.py @@ -154199,11 +149810,9 @@ msgstr "Rocker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Du hast die meiste Zeit deines Lebens auf einer Harley verbracht und es ist " -"nur natürlich, dass du dies den Rest deines Lebens ebenso tust." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154214,11 +149823,9 @@ msgstr "Rocker" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Du hast die meiste Zeit deines Lebens auf einer Harley verbracht und es ist " -"nur natürlich, dass du dies den Rest deines Lebens ebenso tust." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154229,8 +149836,9 @@ msgstr "Turniertänzer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" #: lang/json/professions_from_json.py @@ -154242,8 +149850,9 @@ msgstr "Turniertänzerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" #: lang/json/professions_from_json.py @@ -154255,13 +149864,10 @@ msgstr "Bionikdieb" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Du hast ein paar hochgradige Raube begangen, aber deine Verdienste bedeuten " -"nichts in dieser Welt. Alles, was dir bleibt, sind eine Arbeitswerkzeuge und" -" dein tadelloser Stil." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154272,13 +149878,10 @@ msgstr "Bionikdiebin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Du hast ein paar hochgradige Raube begangen, aber deine Verdienste bedeuten " -"nichts in dieser Welt. Alles, was dir bleibt, sind eine Arbeitswerkzeuge und" -" dein tadelloser Stil." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154289,15 +149892,11 @@ msgstr "Bionikpatient" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"Als die Diagnose positiv ausfiel, hast du dich einer Reihe experimenteller " -"Bionik-OPs unterzogen, was dein Leben rettete. Nun bist du gesünder als je " -"zuvor, dank einigen Bioniksystemen, die von deinem eigenem Metabolismus " -"angetrieben werden. Mach das Beste aus deiner zweiten Lebenschance." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154308,15 +149907,11 @@ msgstr "Bionikpatientin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"Als die Diagnose positiv ausfiel, hast du dich einer Reihe experimenteller " -"Bionik-OPs unterzogen, was dein Leben rettete. Nun bist du gesünder als je " -"zuvor, dank einigen Bioniksystemen, die von deinem eigenem Metabolismus " -"angetrieben werden. Mach das Beste aus deiner zweiten Lebenschance." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154327,12 +149922,9 @@ msgstr "Patient" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Als die Diagnose »positiv« ergab, warst du bereit, um dein Weiterleben zu " -"kämpfen. Jetzt musst du deinen Schwur der Beharrlichkeit in diesen Zeiten " -"erneuern." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154343,12 +149935,9 @@ msgstr "Patientin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Als die Diagnose »positiv« ergab, warst du bereit, um dein Weiterleben zu " -"kämpfen. Jetzt musst du deinen Schwur der Beharrlichkeit in diesen Zeiten " -"erneuern." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154360,10 +149949,9 @@ msgstr "Unfreiwilliger Mutant" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" -"Du warst ein menschliches Versuchskaninchen, von Labortechnikern benutzt, um" -" die immense Kraft der Mutation zu ergründen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154375,10 +149963,9 @@ msgstr "Unfreiwilliger Mutant" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" -"Du warst ein menschliches Versuchskaninchen, von Labortechnikern benutzt, um" -" die immense Kraft der Mutation zu ergründen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154390,13 +149977,9 @@ msgstr "Freiwilliger Mutant" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"Deine Träume, ein übermenschlicher Mutant mittels genetischen Anpassungen zu" -" werden, sind etwas zurückgeblieben, aber als die Katastrophe kam, waren du " -"und die Wissenschaftler bereit, um deinen neuen Körper auf den Prüfstand zu " -"stellen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154408,13 +149991,9 @@ msgstr "Freiwilliger Mutant" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"Deine Träume, ein übermenschlicher Mutant mittels genetischen Anpassungen zu" -" werden, sind etwas zurückgeblieben, aber als die Katastrophe kam, waren du " -"und die Wissenschaftler bereit, um deinen neuen Körper auf den Prüfstand zu " -"stellen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154427,12 +150006,9 @@ msgctxt "prof_desc_male" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"Du warst mal normal. Vor den Tests, vor den Prozeduren, bevor sie dir jedes " -"äußerliche Zeichen deines Menschseins entrissen. Jetzt bist du mehr Mensch " -"als Maschine, aber das könnte ein Vorteil gegenüber den Schrecken, die dich " -"erwarten, sein." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154445,12 +150021,9 @@ msgctxt "prof_desc_female" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"Du warst mal normal. Vor den Tests, vor den Prozeduren, bevor sie dir jedes " -"äußerliche Zeichen deines Menschseins entrissen. Jetzt bist du mehr Mensch " -"als Maschine, aber das könnte ein Vorteil gegenüber den Schrecken, die dich " -"erwarten, sein." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154499,13 +150072,10 @@ msgstr "Bionikathlet" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Es ist eine Schande, dass die Apokalypse passiert ist; du wirst niemals an " -"der Cyberolympiade teilnehmen können. Jetzt ist die einzige Sache zwischen " -"dir und dem Tod wegen Zombies deine sonderbare Cyborgstärke." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154516,13 +150086,10 @@ msgstr "Bionikathletin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Es ist eine Schande, dass die Apokalypse passiert ist; du wirst niemals an " -"der Cyberolympiade teilnehmen können. Jetzt ist die einzige Sache zwischen " -"dir und dem Tod wegen Zombies deine sonderbare Cyborgstärke." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154533,9 +150100,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" #: lang/json/professions_from_json.py @@ -154547,9 +150114,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" #: lang/json/professions_from_json.py @@ -154596,12 +150163,9 @@ msgstr "Bionikfeuerwehrmann" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"Als ein bionikverbesserter Feuerwehrmann der 2. Generation wurdest du " -"kybernetisch verbessert, um in den meisten fatalen Notsituationen " -"einzugreifen. Das Ende der Welt zählt eindeutig als eine fatale Situation." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154613,12 +150177,9 @@ msgstr "Bionikfeuerwehrfrau" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"Als eine bionikverbesserte Feuerwehrfrau der 2. Generation wurdest du " -"kybernetisch verbessert, um in den meisten fatalen Notsituationen " -"einzugreifen. Das Ende der Welt zählt eindeutig als eine fatale Situation." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154629,14 +150190,10 @@ msgstr "Bionikwissenschaftler" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" -"Vor der Apokalypse wurdest du von einem wichtigen internationalem " -"Unternehmen als stellvertretender und technischer Berater eingestellt, wo du" -" die unglaubliche Kraft deiner kybernetisch aufgewerteten Geistesschärfe " -"benutzt hast." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154647,14 +150204,10 @@ msgstr "Bionikwissenschaftlerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" -"Vor der Apokalypse wurdest du von einem wichtigen internationalem " -"Unternehmen als stellvertretender und technischer Berater eingestellt, wo du" -" die unglaubliche Kraft deiner kybernetisch aufgewerteten Geistesschärfe " -"benutzt hast." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154665,14 +150218,10 @@ msgstr "Bioniksoldat" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"Du bist das Ergebnis von einem der neuesten und letzten Forschungsprogrammen" -" des Militärs, ein Prototyp eines Cyborgsoldaten. Du bist dank deiner " -"Verbesserungen immer noch lebendig, sogar, nachdem all deine Kameraden den " -"Untoten zum Opfer fielen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154683,14 +150232,10 @@ msgstr "Bioniksoldatin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"Du bist das Ergebnis von einem der neuesten und letzten Forschungsprogrammen" -" des Militärs, ein Prototyp eines Cyborgsoldaten. Du bist dank deiner " -"Verbesserungen immer noch lebendig, sogar, nachdem all deine Kameraden den " -"Untoten zum Opfer fielen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154701,13 +150246,11 @@ msgstr "Bionik-Scharfschütze" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Deine Bioniken, deine Ausstattung und dein ausführlicches Feldtraining " -"ermöglichen es dir, Ziele aus unglaubhaften Entfernungen auszuschalten, " -"sogar nach Wochen in völliger Isolation im Feindesland." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154718,13 +150261,11 @@ msgstr "Bionik-Scharfschützin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Deine Bioniken, deine Ausstattung und dein ausführlicches Feldtraining " -"ermöglichen es dir, Ziele aus unglaubhaften Entfernungen auszuschalten, " -"sogar nach Wochen in völliger Isolation im Feindesland." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154735,15 +150276,11 @@ msgstr "Bionikagent" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Dein Körper hat diverse Bioniken im Wert von mehreren Millionen Dollar, " -"bezahlt aus Steuergeldern. Die Regierung stellte dich als Infiltrations- und" -" Aufklärungsspezialisten ein: Du hast ein Nachtsichtgerät, einen Wecker, ein" -" Hack-Modul und kannst Schlösser knacken." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154754,15 +150291,11 @@ msgstr "Bionikagentin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Dein Körper hat diverse Bioniken im Wert von mehreren Millionen Dollar, " -"bezahlt aus Steuergeldern. Die Regierung stellte dich als Infiltrations- und" -" Aufklärungsspezialisten ein: Du hast ein Nachtsichtgerät, einen Wecker, ein" -" Hack-Modul und kannst Schlösser knacken." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154775,11 +150308,8 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"Als das Produkt einer Millionen Dollar schweren Geheimforschung bist du ein " -"bionischer Schläferagent, der in der Lage ist, lautlos dein Ziel " -"anzugreifen, während du eine unscheinbare Ausstrahlung hast." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154792,11 +150322,8 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"Als das Produkt einer Millionen Dollar schweren Geheimforschung bist du ein " -"bionischer Schläferagent, der in der Lage ist, lautlos dein Ziel " -"anzugreifen, während du eine unscheinbare Ausstrahlung hast." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154807,11 +150334,10 @@ msgstr "Bionik-Gangster" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -154823,11 +150349,10 @@ msgstr "Bionik-Gangster" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -154839,13 +150364,10 @@ msgstr "Gescheiterter Cyborg" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Dein Körper ist ein Bionik-Wrack. Du hast eine große Stromkapazität aber " -"bist voller kaputter Bioniken. Wenigstens funktioniert noch deine " -"Ethanolverbrennung." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154856,13 +150378,10 @@ msgstr "Gescheiterter Cyborg" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Dein Körper ist ein Bionik-Wrack. Du hast eine große Stromkapazität aber " -"bist voller kaputter Bioniken. Wenigstens funktioniert noch deine " -"Ethanolverbrennung." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154874,10 +150393,7 @@ msgstr "Kommerzieller Cyborg" msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" #: lang/json/professions_from_json.py @@ -154890,10 +150406,7 @@ msgstr "Kommerzieller Cyborg" msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" #: lang/json/professions_from_json.py @@ -154936,13 +150449,9 @@ msgstr "Fallensteller" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"Du hast die meiste Zeit deines Lebens mit deinem Vater mit Fallenstellen " -"verbracht. Ihr beiden konntet von den Fängen und Fallenstellkursen recht gut" -" leben. Hoffentlich werden deine Erfahrungen auch gegen weniger gewöhnliches" -" Wild vom Nutzen sein." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154954,13 +150463,9 @@ msgstr "Fallenstellerin" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"Du hast die meiste Zeit deines Lebens mit deinem Vater mit Fallenstellen " -"verbracht. Ihr beiden konntet von den Fängen und Fallenstellkursen recht gut" -" leben. Hoffentlich werden deine Erfahrungen auch gegen weniger gewöhnliches" -" Wild vom Nutzen sein." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154971,14 +150476,10 @@ msgstr "Schmied" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"Du warst dabei, das Metallarbeitsprogramm deines Community Colleges " -"durchzugehen, als die Welt aufhörte. Du hattest Schwierigkeiten bei der " -"Flucht – aber hast es geschafft, das Equipment, dass du in diesem Moment " -"getragen hast, zu behalten." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154989,14 +150490,10 @@ msgstr "Schmiedin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"Du warst dabei, das Metallarbeitsprogramm deines Community Colleges " -"durchzugehen, als die Welt aufhörte. Du hattest Schwierigkeiten bei der " -"Flucht – aber hast es geschafft, das Equipment, dass du in diesem Moment " -"getragen hast, zu behalten." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155009,12 +150506,8 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"Du wolltest schon immer Leute zum Lachen bringen. Ein Traum ging in " -"Erfüllung, als du die Schule abbrachst und bei Kinderpartys deine " -"Vorstellungen machtest, bis die Welt endete. Nun gibt es in deiner Zukunft " -"wenige Ballontiere." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155027,12 +150520,8 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"Du wolltest schon immer Leute zum Lachen bringen. Ein Traum ging in " -"Erfüllung, als du die Schule abbrachst und bei Kinderpartys deine " -"Vorstellungen machtest, bis die Welt endete. Nun gibt es in deiner Zukunft " -"wenige Ballontiere." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155043,14 +150532,11 @@ msgstr "Verlorener Bottom" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"Früh in der Hetze zur Sicherheit wurdest du von deinem Top durch ein " -"grausames Schicksal getrennt. Nun bist du alleine mit nichts außer einem " -"Anzug aus richtig perversem schwarzen Leder. Jetzt gibt es keine Safewords." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155061,14 +150547,11 @@ msgstr "Verlorener Bottom" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"Früh in der Hetze zur Sicherheit wurdest du von deinem Top durch ein " -"grausames Schicksal getrennt. Nun bist du alleine mit nichts außer einem " -"Anzug aus richtig perversem schwarzen Leder. Jetzt gibt es keine Safewords." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155113,14 +150596,11 @@ msgstr "Otaku" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Späte Abende beim Animeschauen und Snackessen mit Freunden haben dich auf " -"den führenden Animekongress im Nordosten vorbereitet. Der musste ja gerade " -"am Tag des Apokalypse sein! Wenigstens warst du bereit für den Fall, dass " -"dein Kostüm zerrisse." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155131,14 +150611,11 @@ msgstr "Otaku" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Späte Abende beim Animeschauen und Snackessen mit Freunden haben dich auf " -"den führenden Animekongress im Nordosten vorbereitet. Der musste ja gerade " -"am Tag des Apokalypse sein! Wenigstens warst du bereit für den Fall, dass " -"dein Kostüm zerrisse." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155175,12 +150652,9 @@ msgstr "Punkrock-Kerl" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"Die Apokalypse ist die Erfüllung deines psychotischen Traums. Jetzt, da das " -"System tot ist, ist es Zeit, auf den Knochen der Welt die Party steigen zu " -"lassen!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155191,12 +150665,9 @@ msgstr "Punkrock-Gör" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"Die Apokalypse ist die Erfüllung deines psychotischen Traums. Jetzt, da das " -"System tot ist, ist es Zeit, auf den Knochen der Welt die Party steigen zu " -"lassen!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155207,15 +150678,11 @@ msgstr "Feuerwehrmann" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Als ein Ersthelfer warst du ein direkter Zeuge der qualvollen Schrecken der " -"Katastrophe. Getrennt von dem Großteil deiner Ausrüstung und deiner Einheit " -"beim Einsatz warst du gezwungen, dir deinen Weg in die Sicherheit mit kaum " -"mehr als deiner treuen Feuerwehrausrüstung als Schutz freizukämpfen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155226,15 +150693,11 @@ msgstr "Feuerwehrfrau" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Als ein Ersthelfer warst du ein direkter Zeuge der qualvollen Schrecken der " -"Katastrophe. Getrennt von dem Großteil deiner Ausrüstung und deiner Einheit " -"beim Einsatz warst du gezwungen, dir deinen Weg in die Sicherheit mit kaum " -"mehr als deiner treuen Feuerwehrausrüstung als Schutz freizukämpfen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155245,7 +150708,7 @@ msgstr "Ungezogener Junge" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -155258,7 +150721,7 @@ msgstr "Ungezogenes Mädchen" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -155271,12 +150734,9 @@ msgstr "Briefträger" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Deine Erfahrung beim Ausweichen von Hunden und vergessenen Kinderspielzeugen" -" während des Briefaustragens gibt dir einen Vorteil in deiner neuen Rolle " -"als Überlebender." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155287,12 +150747,9 @@ msgstr "Briefträgerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Deine Erfahrung beim Ausweichen von Hunden und vergessenen Kinderspielzeugen" -" während des Briefaustragens gibt dir einen Vorteil in deiner neuen Rolle " -"als Überlebender." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155303,8 +150760,9 @@ msgstr "Verurteilter" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -155316,8 +150774,9 @@ msgstr "Verurteilte" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -155329,9 +150788,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" #: lang/json/professions_from_json.py @@ -155343,9 +150802,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" #: lang/json/professions_from_json.py @@ -155359,7 +150818,7 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -155373,7 +150832,7 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -155413,8 +150872,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -155426,8 +150886,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -155467,11 +150928,10 @@ msgstr "Einbrecher" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Du dachtest, das wäre dein glücklicher Einbruch. Zählt es als Einbruch, wenn" -" jeder in der Stadt untot ist?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155482,11 +150942,10 @@ msgstr "Einbrecherin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Du dachtest, das wäre dein glücklicher Einbruch. Zählt es als Einbruch, wenn" -" jeder in der Stadt untot ist?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155497,16 +150956,9 @@ msgstr "Klingenjunge" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"Durch eine Serie schmerzhafter und teurer Operationen wurdest du zur " -"laufenden bionischen Waffe, deine Dienste als Sölder an den Meistbietenden " -"zur Verfügung stellend. Nun, nachdem die Welt aufhörte, können diese " -"bionischen Verbesserungen den Unterschied zwischen Leben und Tod " -"entscheiden." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155517,16 +150969,9 @@ msgstr "Klingenmädchen" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"Durch eine Serie schmerzhafter und teurer Operationen wurdest du zur " -"laufenden bionischen Waffe, deine Dienste als Sölder an den Meistbietenden " -"zur Verfügung stellend. Nun, nachdem die Welt aufhörte, können diese " -"bionischen Verbesserungen den Unterschied zwischen Leben und Tod " -"entscheiden." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155539,13 +150984,9 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Vor langer Zeit führte dich deine lebenslange Vernarrtheit mit bionischen " -"Verbesserungen in eine düstere Welt von Hinterhofkliniken und " -"selbstinstallierten Second-Hand-KBMs. Die Welt drehte sich weiter, aber dein" -" übermenschlicher Hunger schreit immer noch danach, gestillt zu werden …" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155558,13 +150999,9 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Vor langer Zeit führte dich deine lebenslange Vernarrtheit mit bionischen " -"Verbesserungen in eine düstere Welt von Hinterhofkliniken und " -"selbstinstallierten Second-Hand-KBMs. Die Welt drehte sich weiter, aber dein" -" übermenschlicher Hunger schreit immer noch danach, gestillt zu werden …" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155576,14 +151013,9 @@ msgstr "Bionikmonster" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Völlig übernommen von einer bionikverursachten Psychose bist du ein " -"deformiertes posthumanes Monster, der keinen Platz in der Gesellschaft " -"hatte. Aber jetzt, wo du einst gezwungen warst, in den Schatten zu leben, " -"findest du dich in dieser neuen trostlosen Welt zurecht." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155595,14 +151027,9 @@ msgstr "Bionikmonster" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Völlig übernommen von einer bionikverursachten Psychose bist du ein " -"deformiertes posthumanes Monster, der keinen Platz in der Gesellschaft " -"hatte. Aber jetzt, wo du einst gezwungen warst, in den Schatten zu leben, " -"findest du dich in dieser neuen trostlosen Welt zurecht." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155613,11 +151040,10 @@ msgstr "Anwalt" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Statt sich jetzt um deine Honorare zu beschweren, versuchen deine Klienten, " -"dein Hirn zu fressen. Du kannst nicht sagen, was davon schlimmer ist." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155628,11 +151054,10 @@ msgstr "Anwältin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Statt sich jetzt um deine Honorare zu beschweren, versuchen deine Klienten, " -"dein Hirn zu fressen. Du kannst nicht sagen, was davon schlimmer ist." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155643,15 +151068,10 @@ msgstr "Priester" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Als die Apokalypse zuschlug, hast du alles, was in deiner Macht steht, " -"getan, um deine gläubige Gemeinde zu schützen, aber es scheint, dass Gebete " -"nicht ausreichten. Nun sind sie alle tot, du solltest vielleicht etwas " -"Handfesteres haben, um dich zu schützen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155662,15 +151082,10 @@ msgstr "Priesterin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Als die Apokalypse zuschlug, hast du alles, was in deiner Macht steht, " -"getan, um deine gläubige Gemeinde zu schützen, aber es scheint, dass Gebete " -"nicht ausreichten. Nun sind sie alle tot, du solltest vielleicht etwas " -"Handfesteres haben, um dich zu schützen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155716,14 +151131,10 @@ msgstr "Imam" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Vor der Apokalypse hast du einen Großteil deiner Zeit in der örtlichen " -"Moschee verbracht und die Wörter des Propheten und den Koran studiert, und " -"deine Gemeinde in Gebeten geleitet. Damals kamen sie von weit und fern, um " -"dir zuzuhören, nun kommen sie, um dein Gehirn zu fressen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155735,14 +151146,10 @@ msgstr "Murschida" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Vor der Apokalypse hast du einen Großteil deiner Zeit in der örtlichen " -"Moschee verbracht und die Wörter des Propheten und den Koran studiert, und " -"deine Gemeinde in Gebeten geleitet. Damals kamen sie von weit und fern, um " -"dir zuzuhören, nun kommen sie, um dein Gehirn zu fressen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155814,15 +151221,10 @@ msgstr "Prediger" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." -msgstr "" -"Du hast dein Leben der Verbreitung des guten Wortes gewidmet, warst immer " -"auf Achse, reistest von Stadt zu Stadt. Jetzt ist überall die Hölle " -"ausgebrochen, du kannst deine tägliche Radiosendung nicht moderieren und die" -" Untoten, die deine Predigten hören, scheinen nicht besonders berührt zu " -"sein." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155834,15 +151236,10 @@ msgstr "Predigerin" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." -msgstr "" -"Du hast dein Leben der Verbreitung des guten Wortes gewidmet, warst immer " -"auf Achse, reistest von Stadt zu Stadt. Jetzt ist überall die Hölle " -"ausgebrochen, du kannst deine tägliche Radiosendung nicht moderieren und die" -" Untoten, die deine Predigten hören, scheinen nicht besonders berührt zu " -"sein." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155853,11 +151250,9 @@ msgstr "Kampfkunst-Neuling" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Du warst auf deinem Weg zum Dojo für deine erste Unterrichtsstunde, als die " -"Welt endete. Und du wolltest wirklich auch noch Schwimmen lernen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155868,11 +151263,9 @@ msgstr "Kampfkunst-Neuling" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Du warst auf deinem Weg zum Dojo für deine erste Unterrichtsstunde, als die " -"Welt endete. Und du wolltest wirklich auch noch Schwimmen lernen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155943,11 +151336,9 @@ msgstr "Boxer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Du hast für den Kampf deines Lebens trainiert, bevor die Apokalypse " -"zuschlug. Jetzt kämpfst du nur noch, um dich selbst am Leben zu erhalten." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155958,11 +151349,9 @@ msgstr "Boxerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Du hast für den Kampf deines Lebens trainiert, bevor die Apokalypse " -"zuschlug. Jetzt kämpfst du nur noch, um dich selbst am Leben zu erhalten." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155974,9 +151363,9 @@ msgstr "Pizzaausträger" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -155989,9 +151378,9 @@ msgstr "Pizzaausträgerin" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -156003,14 +151392,10 @@ msgstr "Archäologe" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"Als du auf dem Weg zu einem lang verloren gegangenen Tempel warst, um einer " -"Spur aus dem Journal deines verstorbenen Großvaters zu folgen, fing der " -"Boden an, unkontrolliert zu beben. Mit einem mulmigen Gefühl im Bauch über " -"diese Situation begabst du dich zur nächsten Unterkunft." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156021,14 +151406,10 @@ msgstr "Archäologin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"Als du auf dem Weg zu einem lang verloren gegangenen Tempel warst, um einer " -"Spur aus dem Journal deines verstorbenen Großvaters zu folgen, fing der " -"Boden an, unkontrolliert zu beben. Mit einem mulmigen Gefühl im Bauch über " -"diese Situation begabst du dich zur nächsten Unterkunft." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156039,14 +151420,10 @@ msgstr "Zeitungsausträger" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Du hast die Morgenzeitung auf der üblichen Strecke ausgeliefert, als die " -"Katastrophe zuschlug. Die untoten Horden scheinen sich nicht für die " -"Nachrichten zu interessieren, aber wenigstens funktioniert dein gutes altes " -"Fahrrad noch." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156057,14 +151434,10 @@ msgstr "Zeitungsausträgerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Du hast die Morgenzeitung auf der üblichen Strecke ausgeliefert, als die " -"Katastrophe zuschlug. Die untoten Horden scheinen sich nicht für die " -"Nachrichten zu interessieren, aber wenigstens funktioniert dein gutes altes " -"Fahrrad noch." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156075,15 +151448,11 @@ msgstr "Roller-Derby-Spieler" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"Vor der Apokalypse warst du die Hölle auf Rädern. Jetzt ist der Rest deines " -"Teams tot und du würdest wohl nicht so lange gelebt haben, wenn da nicht " -"deine Vorliebe für schnelle Gewalt wäre. Es sieht düster aus; wie lange " -"kannst du die Untoten umrunden, bevor du endgültig blockiert wirst?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156094,15 +151463,11 @@ msgstr "Roller-Derby-Spielerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"Vor der Apokalypse warst du die Hölle auf Rädern. Jetzt ist der Rest deines " -"Teams tot und du würdest wohl nicht so lange gelebt haben, wenn da nicht " -"deine Vorliebe für schnelle Gewalt wäre. Es sieht düster aus; wie lange " -"kannst du die Untoten umrunden, bevor du endgültig blockiert wirst?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156113,9 +151478,9 @@ msgstr "Bauer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -156127,9 +151492,9 @@ msgstr "Bäuerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -156141,14 +151506,10 @@ msgstr "Nationalgarde" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"Deine Nationalgardeeinheit wurde aktiviert, als die Epedemie zuschlug. Trotz" -" deiner besten Mühen hast du es nicht geschafft, dich mit ihr zu treffen, " -"bevor die gesamte Kommunikation verstummte und du alleine unter den Toten " -"warst." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156159,14 +151520,10 @@ msgstr "Nationalgarde" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"Deine Nationalgardeeinheit wurde aktiviert, als die Epedemie zuschlug. Trotz" -" deiner besten Mühen hast du es nicht geschafft, dich mit ihr zu treffen, " -"bevor die gesamte Kommunikation verstummte und du alleine unter den Toten " -"warst." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156178,8 +151535,8 @@ msgstr "Abgehärteter Sammler" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -156192,8 +151549,8 @@ msgstr "Abgehärtete Sammlerin" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -156205,15 +151562,11 @@ msgstr "Militär-Dickkopf" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"Du musst wohl während deines Überlebenstrainings in der Grundausbildung gut " -"aufgepasst haben, sonst würdest du nie lange genug gelebt haben, um die " -"Befehlskette zu überstehen und dich in dieser Zwickmühle wiederzufinden. Die" -" einzige Mission, die noch bleibt, ist das Überleben." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156224,15 +151577,11 @@ msgstr "Militär-Dickkopf" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"Du musst wohl während deines Überlebenstrainings in der Grundausbildung gut " -"aufgepasst haben, sonst würdest du nie lange genug gelebt haben, um die " -"Befehlskette zu überstehen und dich in dieser Zwickmühle wiederzufinden. Die" -" einzige Mission, die noch bleibt, ist das Überleben." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156243,13 +151592,10 @@ msgstr "Einkaufszentrumwache" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Eine Wache im Einkaufszentrum. Du hat keinerlei nützlichen Fähigkeiten, " -"abgesehen von einer einfachen Ausbildung für deinen Beruf. Allerdings hast " -"du deinen treuen Tazer, Schlagstock und ein Taschenmesser." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156260,13 +151606,10 @@ msgstr "Einkaufszentrumwache" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Eine Wache im Einkaufszentrum. Du hat keinerlei nützlichen Fähigkeiten, " -"abgesehen von einer einfachen Ausbildung für deinen Beruf. Allerdings hast " -"du deinen treuen Tazer, Schlagstock und ein Taschenmesser." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156277,14 +151620,10 @@ msgstr "Naturalist" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"Über lange Jahre des selbstauferlegten Exils in der Wildnis hast du es " -"geschafft, Mutter Natur zu verstehen. Die Welt, so wie sie sie kannten, " -"könnte für deine einsame Art vorbei sein, aber du kannst kaum einen " -"Unterschied ausmachen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156295,14 +151634,10 @@ msgstr "Naturalistin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"Über lange Jahre des selbstauferlegten Exils in der Wildnis hast du es " -"geschafft, Mutter Natur zu verstehen. Die Welt, so wie sie sie kannten, " -"könnte für deine einsame Art vorbei sein, aber du kannst kaum einen " -"Unterschied ausmachen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156313,16 +151648,11 @@ msgstr "Fischer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Die Meisten deiner Tage verbrachtest du nur mit dem Angeln in den Sümpfen " -"und bekamst leise das, was du fingst. Dir gefiel das Summen der Insekten, " -"aber sie wurden größer und fieser. Jetzt haben dich ihr fürchterlicher Krach" -" dich beängstigt – du hoffst, dass wenigstens die Fische nicht genau so fies" -" sind." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156333,16 +151663,11 @@ msgstr "Fischerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Die Meisten deiner Tage verbrachtest du nur mit dem Angeln in den Sümpfen " -"und bekamst leise das, was du fingst. Dir gefiel das Summen der Insekten, " -"aber sie wurden größer und fieser. Jetzt haben dich ihr fürchterlicher Krach" -" dich beängstigt – du hoffst, dass wenigstens die Fische nicht genau so fies" -" sind." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156422,12 +151747,9 @@ msgstr "Drohnenführer" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Du hattest den Beruf, Maschinen wie automatische Straßenkehrer, " -"Nachrichtenroboter und Pizzaauslieferungsdrohnen zu programmieren. Nun " -"tragen all die Drohnen Schusswaffen statt Pizzen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156439,12 +151761,9 @@ msgstr "Drohnenführerin" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Du hattest den Beruf, Maschinen wie automatische Straßenkehrer, " -"Nachrichtenroboter und Pizzaauslieferungsdrohnen zu programmieren. Nun " -"tragen all die Drohnen Schusswaffen statt Pizzen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156455,11 +151774,10 @@ msgstr "Skater" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"Du liebst skaten! Wenigstens können dir nun die Erwachsenen nicht mehr " -"sagen, wo du nicht skaten darfst." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156470,11 +151788,10 @@ msgstr "Skater" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"Du liebst skaten! Wenigstens können dir nun die Erwachsenen nicht mehr " -"sagen, wo du nicht skaten darfst." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156485,15 +151802,11 @@ msgstr "Jugendlicher Delinquent" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"Du hast dich nie darum geschert, was die die Erwachsenen sagten, und so hast" -" du die meisten Tage im Büro des Schuldirektors verbracht. Dass du nicht von" -" Erwachsen herumkommandieren musst, ist der einzige Grund, warum du lebst. " -"Mann, du solltest heute wirklich die Schule geschwänzt haben." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156504,15 +151817,11 @@ msgstr "Jugendliche Delinquentin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"Du hast dich nie darum geschert, was die die Erwachsenen sagten, und so hast" -" du die meisten Tage im Büro des Schuldirektors verbracht. Dass du nicht von" -" Erwachsen herumkommandieren musst, ist der einzige Grund, warum du lebst. " -"Mann, du solltest heute wirklich die Schule geschwänzt haben." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156554,14 +151863,10 @@ msgstr "Bionikschüler" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Deine Eltern waren so besessen davon, sicherzustellen, dass du jeden Test " -"mit Bestnote bestehst, dass sie dich mit Bioniken ausgestattet haben, um " -"dich klüger zu machen und, damit du niemals etwas vergisst. Und nun stehst " -"du der schwersten Prüfung bevor, und wehe, wenn du die nicht bestehst!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156573,14 +151878,10 @@ msgstr "Bionikschülerin" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Deine Eltern waren so besessen davon, sicherzustellen, dass du jeden Test " -"mit Bestnote bestehst, dass sie dich mit Bioniken ausgestattet haben, um " -"dich klüger zu machen und, damit du niemals etwas vergisst. Und nun stehst " -"du der schwersten Prüfung bevor, und wehe, wenn du die nicht bestehst!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156591,12 +151892,10 @@ msgstr "Völkerballspieler" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Du mochtest das Völkerballspiel, in dem du auscheidest, wenn du dem Ball " -"nicht ausweichen konntest. Nun ist es lebensbedrohlich, wenn du nicht " -"ausweichst. Mach keine Fehler." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156607,12 +151906,10 @@ msgstr "Völkerballspielerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Du mochtest das Völkerballspiel, in dem du auscheidest, wenn du dem Ball " -"nicht ausweichen konntest. Nun ist es lebensbedrohlich, wenn du nicht " -"ausweichst. Mach keine Fehler." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156623,15 +151920,10 @@ msgstr "Mitglied der Wissenschafts-AG" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"Du warst ein Mitglied der Wissenschafts-AG in der Schule und gerade jetzt " -"bist du verärgert wie noch nie, dass die Schule dich nie an die wirklich " -"lustigen Chemikalien, welche »Peng!« und »Krach!« machen, heranließ. " -"Wenigstens gibt es jetzt niemanden mehr, der dir das verbieten kann." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156642,15 +151934,10 @@ msgstr "Mitglied der Wissenschafts-AG" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"Du warst ein Mitglied der Wissenschafts-AG in der Schule und gerade jetzt " -"bist du verärgert wie noch nie, dass die Schule dich nie an die wirklich " -"lustigen Chemikalien, welche »Peng!« und »Krach!« machen, heranließ. " -"Wenigstens gibt es jetzt niemanden mehr, der dir das verbieten kann." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156662,13 +151949,9 @@ msgstr "Mitglied der Technik-AG" msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"Du warst ein Mitglied der Technik-AG in der Schule. Du bist dir sicher, dass" -" es eine Möglichkeit gibt, deine technischen Fertigkeiten zu benutzen, um " -"dich am Leben zu halten. Du hast bloß noch nicht herausgefunden, wie man " -"einen affengeilen Todesstrahler macht." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156680,13 +151963,9 @@ msgstr "Mitglied der Technik-AG" msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"Du warst ein Mitglied der Technik-AG in der Schule. Du bist dir sicher, dass" -" es eine Möglichkeit gibt, deine technischen Fertigkeiten zu benutzen, um " -"dich am Leben zu halten. Du hast bloß noch nicht herausgefunden, wie man " -"einen affengeilen Todesstrahler macht." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156697,13 +151976,10 @@ msgstr "Lehrer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Dein ganzes Leben lang hast du Kinder unterrichtet, und meistens sind sie " -"deinem Unterricht gefolgt. Allerdings werden die Toten keine Strafarbeiten " -"schreiben, wenn sie dich bei lebendigem Leibe fressen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156714,13 +151990,10 @@ msgstr "Lehrerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Dein ganzes Leben lang hast du Kinder unterrichtet, und meistens sind sie " -"deinem Unterricht gefolgt. Allerdings werden die Toten keine Strafarbeiten " -"schreiben, wenn sie dich bei lebendigem Leibe fressen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156731,16 +152004,10 @@ msgstr "Fotojournalist" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Du warst ein freiberuflicher Fotojournalist vor dem Ende. Du hast die " -"Chance, der erste Journalist zu sein, der über die Apokalypse berichtet, " -"wobei es jetzt schwer sein könnte, einen Herausgeber zu finden. Du konntest " -"deine Kamera mitnehmen, hoffentlich kannst du einige tolle Schnappschüsse " -"machen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156751,16 +152018,10 @@ msgstr "Fotojournalistin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Du warst ein freiberuflicher Fotojournalist vor dem Ende. Du hast die " -"Chance, der erste Journalist zu sein, der über die Apokalypse berichtet, " -"wobei es jetzt schwer sein könnte, einen Herausgeber zu finden. Du konntest " -"deine Kamera mitnehmen, hoffentlich kannst du einige tolle Schnappschüsse " -"machen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156771,12 +152032,10 @@ msgstr "Sportlehrer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Nach einer Karriere in Kindern die Sportarten beizubringen, die sie am " -"meisten hassten, weigern sich die Zombies um dir herum, Runden zu drehen, " -"sogar beim Trillern deiner Pfeife." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156787,12 +152046,10 @@ msgstr "Sportlehrerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Nach einer Karriere in Kindern die Sportarten beizubringen, die sie am " -"meisten hassten, weigern sich die Zombies um dir herum, Runden zu drehen, " -"sogar beim Trillern deiner Pfeife." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156803,15 +152060,10 @@ msgstr "Camper" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Du mochtest immer das Wandern und Campen in der Wildnis, bevor alles " -"zerfiel, also war es naheliegend, dir die Tasche zu greifen und loszulaufen," -" als die Sirenen ertönten. Die Welt mag zwar ruiniert sein, aber du bist " -"bereit, die Wildnis zu deinem Zuhause zu erklären." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156822,15 +152074,10 @@ msgstr "Camper" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Du mochtest immer das Wandern und Campen in der Wildnis, bevor alles " -"zerfiel, also war es naheliegend, dir die Tasche zu greifen und loszulaufen," -" als die Sirenen ertönten. Die Welt mag zwar ruiniert sein, aber du bist " -"bereit, die Wildnis zu deinem Zuhause zu erklären." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156842,11 +152089,8 @@ msgstr "Bergarbeiter" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"Du bist ein Bergarbeiter, kein Kind! Deine Trinkflasche ist trocken, dein " -"Bohrer hat keinen Sprit und du hast ein letztes Paar Batterien für deinen " -"Bergbauhelm …" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156858,11 +152102,8 @@ msgstr "Bergarbeiterin" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"Du bist eine Bergarbeiterin, kein Kind! Deine Trinkflasche ist trocken, dein" -" Bohrer hat keinen Sprit und du hast ein letztes Paar Batterien für deinen " -"Bergbauhelm …" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156873,8 +152114,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -156886,8 +152128,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -156935,11 +152178,10 @@ msgstr "Tourist" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Du bist hierher gekommen, um Neuengland zu entdecken; jetzt hoffst du, dass " -"Zombies nicht dich entdecken!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156950,11 +152192,10 @@ msgstr "Tourist" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Du bist hierher gekommen, um Neuengland zu entdecken; jetzt hoffst du, dass " -"Zombies nicht dich entdecken!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156965,12 +152206,10 @@ msgstr "Nackt und verängstigt" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Du warst draußen im Wald, um eine Reality-TV-Show zu drehen und die " -"Besetzung und Crew scheinen sich alle in Zombies verwandelt zu haben. Sieht " -"so aus, als wäre es diesmal real." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156981,12 +152220,10 @@ msgstr "Nackt und verängstigt" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Du warst draußen im Wald, um eine Reality-TV-Show zu drehen und die " -"Besetzung und Crew scheinen sich alle in Zombies verwandelt zu haben. Sieht " -"so aus, als wäre es diesmal real." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156998,15 +152235,10 @@ msgstr "Augmentationsassistent" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"Als die ersten Bioniken erfunden wurden, warst du schnell dabei, sie zu " -"deiner Karriere zu machen und verbrachtest deine Tage damit, ihre " -"Installation zu überwachen. Als einer der wenigen Nicht-Zombies, der einen " -"Autodoktor kalibrieren kann, können deine Fertigkeiten immer noch nützlich " -"in dieser verwüsteten Welt sein.." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157018,15 +152250,10 @@ msgstr "Augmentationsassistent" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"Als die ersten Bioniken erfunden wurden, warst du schnell dabei, sie zu " -"deiner Karriere zu machen und verbrachtest deine Tage damit, ihre " -"Installation zu überwachen. Als einer der wenigen Nicht-Zombies, der einen " -"Autodoktor kalibrieren kann, können deine Fertigkeiten immer noch nützlich " -"in dieser verwüsteten Welt sein.." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157037,17 +152264,11 @@ msgstr "Spielleiter" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"Der wöchentliche Versuch Menschen dazu zu bewegen, sich an einem Ort zu " -"versammeln, hat dich eines gelehrt: Es ist oft besser, deine Verluste zu " -"minimieren und auf dein Bauchgefühl zu vertrauen. Es verwundert daher nicht," -" dass du, als zwei deiner Mitspieler nicht erschienen und die anderen zwei " -"versuchten dich zu verspeisen, die Gruppe sitzen gelassen hast. Vielleicht " -"findest du in den Ruinen der Welt ja ein paar neue Spieler." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157058,17 +152279,11 @@ msgstr "Spielleiterin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"Der wöchentliche Versuch Menschen dazu zu bewegen, sich an einem Ort zu " -"versammeln, hat dich eines gelehrt: Es ist oft besser, deine Verluste zu " -"minimieren und auf dein Bauchgefühl zu vertrauen. Es verwundert daher nicht," -" dass du, als zwei deiner Mitspieler nicht erschienen und die anderen zwei " -"versuchten dich zu verspeisen, die Gruppe sitzen gelassen hast. Vielleicht " -"findest du in den Ruinen der Welt ja ein paar neue Spieler." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157080,16 +152295,10 @@ msgstr "Bionik-Spielleiter" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"Du wurdest sehr vermögend, ob durch Glück oder Willen, und hast Spiele für " -"Leute veranstaltet, die der Großteil der Welt bei ihrem Vornamen kennt. Du " -"konntest es dir leisten, deine Spieler zu verwöhnen, also tatest du es. Du " -"investiertest in Bioniken, um dich schlauer zu machen und hast dir das " -"gesamte Handbuch gemerkt. Hoffen wir, dass dir dieses Wissen nun hilft." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157101,16 +152310,10 @@ msgstr "Bionik-Spielleiterin" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"Du wurdest sehr vermögend, ob durch Glück oder Willen, und hast Spiele für " -"Leute veranstaltet, die der Großteil der Welt bei ihrem Vornamen kennt. Du " -"konntest es dir leisten, deine Spieler zu verwöhnen, also tatest du es. Du " -"investiertest in Bioniken, um dich schlauer zu machen und hast dir das " -"gesamte Handbuch gemerkt. Hoffen wir, dass dir dieses Wissen nun hilft." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157121,12 +152324,9 @@ msgstr "Tierpfleger" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Weil aus irgendeinem Grund keiner deiner Arbeitskollege zur Arbeit gekommen " -"ist, wurdest du an deinem freien Tag gerufen, um die Tiere im Zoo zu " -"füttern." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157137,12 +152337,9 @@ msgstr "Tierpflegerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Weil aus irgendeinem Grund keiner deiner Arbeitskollege zur Arbeit gekommen " -"ist, wurdest du an deinem freien Tag gerufen, um die Tiere im Zoo zu " -"füttern." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157153,11 +152350,9 @@ msgstr "Golfer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" -"Du wolltest dich eigentlich nur für einen Tag von der Familie losreißen, um " -"selbst ein bisschen Golf zu spielen." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157168,11 +152363,9 @@ msgstr "Golferin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" -"Du wolltest dich eigentlich nur für einen Tag von der Familie losreißen, um " -"selbst ein bisschen Golf zu spielen." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157219,11 +152412,10 @@ msgstr "" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 @@ -157235,41 +152427,38 @@ msgstr "" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "Competetive Fencer" +msgid "Competitive Fencer" msgstr "" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" +msgid "Competitive Fencer" msgstr "" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py @@ -157309,8 +152498,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" #: lang/json/professions_from_json.py @@ -157322,8 +152511,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" #: lang/json/professions_from_json.py @@ -157335,9 +152524,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" #: lang/json/professions_from_json.py @@ -157349,9 +152538,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" #: lang/json/professions_from_json.py @@ -157363,9 +152552,9 @@ msgstr "Musiker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" #: lang/json/professions_from_json.py @@ -157377,9 +152566,9 @@ msgstr "Musikerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" #: lang/json/professions_from_json.py @@ -157392,7 +152581,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -157405,7 +152594,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -157419,7 +152608,8 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -157433,7 +152623,8 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -157445,10 +152636,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -157460,10 +152651,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -157808,6 +152999,40 @@ msgid "" " seems that your combat skills might come useful once again." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" @@ -158896,312 +154121,6 @@ msgid "" "find some other use." msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Brave of the King" -msgstr "Mutiger des Königs" - -#. ~ Profession (male Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Eliteinfanterie des antiken Ägyptens und Bodyguards des Pharaohs. Obwohl " -"Rüstung ungewöhnlich aufgrund von Wüstenbedingungen war, ist in der Ära des " -"Neuen Reichs solches Equipment häufiger verwendet worden." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Brave of the King" -msgstr "Mutige des Königs" - -#. ~ Profession (female Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Eliteinfanterie des antiken Ägyptens und Bodyguards des Pharaos. Obwohl " -"Rüstung ungewöhnlich aufgrund von Wüstenbedingungen war, ist in der Ära des " -"Neuen Reichs solches Equipment häufiger verwendet worden." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hoplite" -msgstr "Hoplit" - -#. ~ Profession (male Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Schwere Infanterie der antiken griechischen Stadtstaaten vor dem Übergang " -"zur mazedonischen Phalanx. Gut trainiert für den Kampf in Formation, aber " -"weniger effektiv, wenn man ausmanöviert wurde oder sich auf unebenem Boden " -"befindet." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hoplite" -msgstr "Hoplit" - -#. ~ Profession (female Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Schwere Infanterie der antiken griechischen Stadtstaaten vor dem Übergang " -"zur mazedonischen Phalanx. Gut ausgebildet für den Kampf in Formation, aber " -"weniger effektiv, wenn man ausmanöviert wurde oder sich auf unebenem Boden " -"befindet." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Legionary" -msgstr "Legionär" - -#. ~ Profession (male Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Römische schwere Infanterie, nach den Militärreformen, welche die " -"Ausstattung der Legion standardisierte. Ausgebildet für den Kampf in " -"Formation mit Wurfspeer und Schwert, außerdem sehr bekannt für ihre " -"Feldbefestigungen." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Legionary" -msgstr "Legionär" - -#. ~ Profession (female Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Römische schwere Infanterie, nach den Militärreformen, welche die " -"Ausstattung der Legion standardisierte. Ausgebildet für den Kampf in " -"Formation mit Wurfspeer und Schwert, außerdem sehr bekannt für ihre " -"Feldbefestigungen." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Viking" -msgstr "Wikinger" - -#. ~ Profession (male Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Die berühmt-berüchtigten Piraten des frühen Mittelalters; Plünderer und " -"Entdecker aus verschiedenen skandinavischen Ländern." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Viking" -msgstr "Wikinger" - -#. ~ Profession (female Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Die berühmt-berüchtigten Piraten des frühen Mittelalters; Plünderer und " -"Entdecker aus verschiedenen skandinavischen Ländern." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Man-at-Arms" -msgstr "Krieger" - -#. ~ Profession (Man-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Die mittelalterliche schwere Kavallerie aus verschiedenen Ländern in Europa," -" ob adelig geboren oder nicht. Obgleich Ritter traditionsgemäß Krieger " -"waren, war nicht jeder Krieger ein Ritter." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Woman-at-Arms" -msgstr "Kriegerin" - -#. ~ Profession (Woman-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Die mittelalterliche schwere Kavallerie aus verschiedenen Ländern in Europa," -" ob adelig geboren oder nicht. Obgleich Ritter traditionsgemäß Krieger " -"waren, war nicht jeder Krieger ein Ritter." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Horse Archer" -msgstr "Pferdebogenschütze" - -#. ~ Profession (male Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Die berühmte Kavallerie des mongolischen Imperiums. Am besten bekannt für " -"ihre Erfahrung als reitende Bogenschützen." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Horse Archer" -msgstr "Pferdebogenschützin" - -#. ~ Profession (female Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Die berühmte Kavallerie des mongolischen Imperiums. Am besten bekannt für " -"ihre Erfahrung als reitende Bogenschützen." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Samurai" -msgstr "Samurai" - -#. ~ Profession (male Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Krieger-Adel des feudalen Japans. Ursprünglich bekannt als die Meister des " -"Pferdes und Bogens wurden sie später berühmt für ihre Schwertkunst." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Samurai" -msgstr "Samurai" - -#. ~ Profession (female Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Krieger-Adel des feudalen Japans. Ursprünglich bekannt als die Meister des " -"Pferdes und Bogens wurden sie später berühmt für ihre Schwertkunst." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Wanderer" -msgstr "Wanderer" - -#. ~ Profession (male Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Du hast immer die Bequemlichkeit des freien Himmels vorgezogen, weit " -"entfernt von den Komplexitäten des modernen Lebens. Aber dem Anschein nach " -"haben sich die Dinge geändert, seit du das letzte mal in der Nähe der " -"Zivilisation warst." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Wanderer" -msgstr "Wanderer" - -#. ~ Profession (female Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Du hast immer die Bequemlichkeit des freien Himmels vorgezogen, weit " -"entfernt von den Komplexitäten des modernen Lebens. Aber dem Anschein nach " -"haben sich die Dinge geändert, seit du das letzte mal in der Nähe der " -"Zivilisation warst." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Prehistoric Hunter" -msgstr "Prähistorischer Jäger" - -#. ~ Profession (male Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Ein deplatziertes lebendes Relikt aus der Vorzeit, gestrandet in einer " -"unvertrauten und furchterregenden Welt. Das Leben als Jäger und Sammler war " -"schwer, aber wenigstens musstest du nicht gegen die lebenden Toten kämpfen " -"und du hattest deine Sippe, die dir zur Seite stand. Hier bist du auf dich " -"alleine gestellt." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Prehistoric Hunter" -msgstr "Prähistorische Jägerin" - -#. ~ Profession (female Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Ein deplatziertes lebendes Relikt aus der Vorzeit, gestrandet in einer " -"unvertrauten und furchterregenden Welt. Das Leben als Jäger und Sammler war " -"schwer, aber wenigstens musstest du nicht gegen die lebenden Toten kämpfen " -"und du hattest deine Sippe, die dir zur Seite stand. Hier bist du auf dich " -"alleine gestellt." - #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sugar Boy" @@ -159228,888 +154147,6 @@ msgid "" "You have your whole life ahead of you and it's gonna be sweet!" msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Fighter" -msgstr "Krieger" - -#. ~ Profession (male Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Ein Meister der Waffen und Rüstung und ein beängstigender tödlicher Kämpfer;" -" du bist ein Krieger, erfahren in der Kriegskunst und auf dem Schlachtfeld " -"abgehärtet." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Fighter" -msgstr "Kriegerin" - -#. ~ Profession (female Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Eine Meisterin der Waffen und Rüstung und eine beängstigende tödliche " -"Kämpferin; du bist eine Kriegerin, erfahren in der Kriegskunst und auf dem " -"Schlachtfeld abgehärtet." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Rogue" -msgstr "Schurke" - -#. ~ Profession (male Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Ein Gassenjunge, der mit Taschenspielereien erfahren und tödlich mit einer " -"Klinge ist: Du bist ein Schurke, ein einfallsreicher Trickbetrüger und " -"Meisterdieb." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Rogue" -msgstr "Schurkin" - -#. ~ Profession (female Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Ein Gassenmädchen, das mit Taschenspielereien erfahren und tödlich mit einer" -" Klinge ist: Du bist eine Schurkin, ein einfallsreicher Trickbetrüger und " -"Meisterdieb." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Barbarian" -msgstr "Barbar" - -#. ~ Profession (male Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Du bist ein Kind aus dem bitteren Norden, so furchterregend und schrecklich " -"wie das ungezähmte Land, welches du Zuhause nennst: Du bist ein Barbar." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Barbarian" -msgstr "Barbarin" - -#. ~ Profession (female Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Du bist ein Kind aus dem bitteren Norden, so furchterregend und schrecklich " -"wie das ungezähmte Land, welches du Zuhause nennst: Du bist eine Barbarin." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Skald" -msgstr "Skalde" - -#. ~ Profession (male Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Ein mysteriöser wandernder Minnesänger und Geschichtenerzähler aus den " -"nördlichen Hochländern; du bist eine Skalde, ein nobler barbarischer " -"Geschichtenbewahrer, der mit den Geistern spricht." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Skald" -msgstr "Skalde" - -#. ~ Profession (female Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Ein mysteriöser wandernder Minnesänger und Geschichtenerzähler aus den " -"nördlichen Hochländern; du bist eine Skalde, ein nobler barbarischer " -"Geschichtenbewahrer, der mit den Geistern spricht." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Ranger" -msgstr "Jäger" - -#. ~ Profession (male Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Du bist einer der Wenigen, die umherwandern, aber sich nie verlaufen: Ein " -"Jäger, erfahren mit den Regeln des Waldes und tödlich mit einem Bogen." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Ranger" -msgstr "Jägerin" - -#. ~ Profession (female Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Du bist eine der Wenigen, die umherwandern, aber sich nie verlaufen: Eine " -"Jägerin, erfahren mit den Regeln des Waldes und tödlich mit einem Bogen." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Monk" -msgstr "Mönch" - -#. ~ Profession (male Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Du bist ein Mönch, ein Diener eines exotischen Ordens der Ästhetik, ein " -"frommer Anhänger mit weitreichenden Kenntnissen über den unbewaffneten " -"Kampf." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Monk" -msgstr "Mönch" - -#. ~ Profession (female Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Du bist ein Mönch, ein Diener eines exotischen Ordens der Ästhetik, ein " -"frommer Anhänger mit weitreichenden Kenntnissen über den unbewaffneten " -"Kampf." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Knight" -msgstr "Ritter" - -#. ~ Profession (male Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Du bist ein Ritter, ein eingeschworener Verteidiger des Landes, ein " -"unterrichteter Krieger, der seit der Kindheit in den ehrbaren Kampf " -"trainiert wirde." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Knight" -msgstr "Ritterin" - -#. ~ Profession (female Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Du bist ein Ritter, ein eingeschworener Verteidiger des Landes, ein " -"unterrichteter Krieger, der seit der Kindheit in den ehrbaren Kampf " -"trainiert wirde." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Sorcerer" -msgstr "Zauberer" - -#. ~ Profession (Sorcerer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Du bist ein Zauberer, ein weiser Schüler antiken und verbotenem Wissens, ein" -" mystischer Praktiker der (bionischen) Zauberkünste." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Sorceress" -msgstr "Zauberin" - -#. ~ Profession (Sorceress) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Du bist eine Zauberin, ein weiser Schüler antiken und verbotenem Wissens, " -"ein mystischer Praktiker der (bionischen) Zauberkünste." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-Hacker" -msgstr "Robo-Hacker" - -#. ~ Profession (male Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Vor dem Apokalypse war dein Hobby das illegale Umprogrammieren und " -"Zweckentfremden kommerzieller Roboter, aber du hättest nie gedacht, dass " -"einmal dein Überleben davon abhängen würde." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-Hacker" -msgstr "Robo-Hacker" - -#. ~ Profession (female Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Vor dem Apokalypse war dein Hobby das illegale Umprogrammieren und " -"Zweckentfremden kommerzieller Roboter, aber du hättest nie gedacht, dass " -"einmal dein Überleben davon abhängen würde." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Engineer" -msgstr "Robotikingenieur" - -#. ~ Profession (male Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"Du warst ein unterer Ingenieur in einer Roboterfabrik. Die Geschäftsführung " -"sagte dir andauernd, dass das Anbringen von Flammenwerfen an Klingendrohnen " -"»unnötig« und »zu gefährlich« sei, aber jetzt gibt es nichts mehr, was dich " -"stoppen könnte." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Engineer" -msgstr "Robotikingenieur" - -#. ~ Profession (female Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"Du warst ein unterer Ingenieur in einer Roboterfabrik. Die Geschäftsführung " -"sagte dir andauernd, dass das Anbringen von Flammenwerfen an Klingendrohnen " -"»unnötig« und »zu gefährlich« sei, aber jetzt gibt es nichts mehr, was dich " -"stoppen könnte." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Prodigy" -msgstr "Robotikwunderkind" - -#. ~ Profession (male Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" -"Du hast Roboter gebaut, seit du einen Lötkolben halten kannst, und du hast " -"nicht vor, dass das Ende der Welt dich davon abhält." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Prodigy" -msgstr "Robotikwunderkind" - -#. ~ Profession (female Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" -"Du hast Roboter gebaut, seit du einen Lötkolben halten kannst, und du hast " -"nicht vor, dass das Ende der Welt dich davon abhält." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robot Adoptee" -msgstr "Roboter-Adoptivkind" - -#. ~ Profession (male Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" -"Während der Unruhen kam ein Militärroboter aus dem Nichts, um dich zu " -"retten. Vielleicht denkt er, dass du jemand besonderes bist, wer weiß?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robot Adoptee" -msgstr "Roboter-Adoptivkind" - -#. ~ Profession (female Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" -"Während der Unruhen kam ein Militärroboter aus dem Nichts, um dich zu " -"retten. Vielleicht denkt er, dass du jemand besonderes bist, wer weiß?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-hunter" -msgstr "Robo-Jäger" - -#. ~ Profession (male Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Du hast einen örtlichen Hacker bezahlt, um dir einen robotischen Jagdhund zu" -" bauen. Er ist fast so gut wie ein echter Hund, aber er mag nicht so gerne " -"gestreichelt werden." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-hunter" -msgstr "Robo-Jägerin" - -#. ~ Profession (female Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Du hast einen örtlichen Hacker bezahlt, um dir einen robotischen Jagdhund zu" -" bauen. Er ist fast so gut wie ein echter Hund, aber er mag nicht so gerne " -"gestreichelt werden." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (male Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"Sobald sich die bionische Aufwertung als sicher erwies, wurdest du für ein " -"streng geheimes Soldatenaufwertungsprogramm ausgewählt. Als ob es nicht " -"schon genug gewesen war, ein Spitzenanführer einer Sondereinsatztruppe zu " -"sein, ermöglichen dir deine neuen Verbesserungen, mit jeder Kampfsituation " -"fertig zu werden, ob gegen Menschen oder nicht." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (female Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"Sobald sich die bionische Aufwertung als sicher erwies, wurdest du für ein " -"streng geheimes Soldatenaufwertungsprogramm ausgewählt. Als ob es nicht " -"schon genug gewesen war, ein Spitzenanführer einer Sondereinsatztruppe zu " -"sein, ermöglichen dir deine neuen Verbesserungen, mit jeder Kampfsituation " -"fertig zu werden, ob gegen Menschen oder nicht." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Seasoned Tourist" -msgstr "Erfahrener Tourist" - -#. ~ Profession (male Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Aufgrund deiner Abenteuerlust, deinem Hunger nach gutem Essen und einem " -"großen Einkommen warst du in der Lage, viel zu reisen. Du bist hierher " -"gereist, um von Neuengland zu kosten; jetzt hoffst du, dass Neuengland nicht" -" von dir kostet!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Seasoned Tourist" -msgstr "Erfahrene Touristin" - -#. ~ Profession (female Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Aufgrund deiner Abenteuerlust, Hunger nach gutem Essen und einem großen " -"Einkommen warst du in der Lage, viel zu reisen. Du bist hierher gereist, um " -"von Neuengland zu kosten; jetzt hoffst du, dass Neuengland nicht von dir " -"kostet!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Post-Human Cyborg" -msgstr "Posthumaner Cyborg" - -#. ~ Profession (male Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" -"Um die Zukunft voranzutreiben, hast du dich als wohlhabender Transhumanist " -"dafür entschieden, dich an die Spitze der aufwertenden Technologie zu " -"setzen. Du bist jetzt ein lebendes Beispiel für das, was die Menschheit " -"hätte werden können." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Post-Human Cyborg" -msgstr "Posthumaner Cyborg" - -#. ~ Profession (female Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" -"Um die Zukunft voranzutreiben, hast du dich als wohlhabende Transhumanistin " -"dafür entschieden, dich an die Spitze der aufwertenden Technologie zu " -"setzen. Du bist nun ein lebendes Beispiel für das, was die Menschheit hätte " -"werden können." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Janitor" -msgstr "Hausmeister" - -#. ~ Profession (male Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Du hast dir deinen Lebensunterhalt damit verdient, Schokoladenverpackungen " -"aufzufegen und Kaugummis unter Tischen aufzusammeln. Jetzt wird das Einzige," -" was du noch auffegen wirst, die Hirne der Toten sein." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Janitor" -msgstr "Hausmeisterin" - -#. ~ Profession (female Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Du hast dir deinen Lebensunterhalt damit verdient, Schokoladenverpackungen " -"aufzufegen und Kaugummis unter Tischen aufzusammeln. Jetzt wird das Einzige," -" was du noch auffegen wirst, die Hirne der Toten sein." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Poor Student" -msgstr "Armer Schüler" - -#. ~ Profession (male Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Du kommst von einer Unterschichtenfamilie und wurdest für deine alten " -"heruntergekommenen Kleider gehänselt, und dafür, dass du kostenlose " -"Schulmahlzeiten in der Cafeteria bekommen hast. Schlimmer noch, dein " -"schäbiger alter Rucksack ist endgültig in der schlimmsten Zeit " -"auseinandergefallen. Wenigstens macht sich nun keiner mehr über dich lustig." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Poor Student" -msgstr "Arme Schülerin" - -#. ~ Profession (female Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Du kommst von einer Unterschichtenfamilie und wurdest für deine alten " -"heruntergekommenen Kleider gehänselt, und dafür, dass du kostenlose " -"Schulmahlzeiten in der Cafeteria bekommen hast. Schlimmer noch, dein " -"schäbiger alter Rucksack ist endgültig in der schlimmsten Zeit " -"auseinandergefallen. Wenigstens macht sich nun keiner mehr über dich lustig." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Elementary Student" -msgstr "Grundschüler" - -#. ~ Profession (male Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Du bist nur ein Kind, und nun ist die Welt zu etwas aus einem deiner " -"Albträume geworden. Die Erwachsenen, auf die du dich verlassen hast, sind " -"jetzt alle tot – oder untot. Was wirst du jetzt tun?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Elementary Student" -msgstr "Grundschülerin" - -#. ~ Profession (female Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Du bist nur ein Kind, und nun ist die Welt zu etwas aus einem deiner " -"Albträume geworden. Die Erwachsenen, auf die du dich verlassen hast, sind " -"jetzt alle tot – oder untot. Was wirst du jetzt tun?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hockey Player" -msgstr "Hockeyspieler" - -#. ~ Profession (male Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Du warst ein Hockey-Goalie in der Minor League, bevor der Rest deiner " -"Mannschaft zu Zombies wurde. Nun bist du alleine mit deiner Hockey-" -"Ausrüstung gegen die Untoten, aber wenigstens darfst du sie jetzt cross-" -"checken." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hockey Player" -msgstr "Hockeyspielerin" - -#. ~ Profession (female Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Du warst ein Hockey-Goalie in der Minor League, bevor der Rest deiner " -"Mannschaft zu Zombies wurde. Nun bist du alleine mit deiner Hockey-" -"Ausrüstung gegen die Untoten, aber wenigstens darfst du sie jetzt cross-" -"checken." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Baseball Player" -msgstr "Baseballspieler" - -#. ~ Profession (male Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Baseball Player" -msgstr "Baseballspielerin" - -#. ~ Profession (female Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Football Player" -msgstr "Footballspieler" - -#. ~ Profession (male Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Du warst der Starspieler in deinem lokalen American-Football-Team, verehrt " -"von den Teammitgliedern und Fans gleichermaßen. Nun verehren Sie nur noch " -"dein Gehirn. Du hast immer noch dein sperriges Football-Zeug an." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Football Player" -msgstr "Footballspielerin" - -#. ~ Profession (female Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Du warst der Starspieler in deinem lokalen American-Football-Team, verehrt " -"von den Teammitgliedern und Fans gleichermaßen. Nun verehren Sie nur noch " -"dein Gehirn. Du hast immer noch dein sperriges Football-Zeug an." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Preppy Student" -msgstr "Prepper-Schüler" - -#. ~ Profession (male Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Deine Eltern waren beschäftigte wichtige Leute, welche für dich jeden Vorzug" -" wollten, und sie hatten dich dazu gedrängt, »erfolgreich« zu werden, was " -"auch immer das bedeutete. Wenn sie dich nur deine Kindheit hätten erleben " -"lassen, oder jemals ihre Liebe gezeigt hätten! Nun bekommst du weder das " -"eine, noch das andere." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Preppy Student" -msgstr "Prepper-Schülerin" - -#. ~ Profession (female Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Deine Eltern waren beschäftigte wichtige Leute, welche für dich jeden Vorzug" -" wollten, und sie hatten dich dazu gedrängt, »erfolgreich« zu werden, was " -"auch immer das bedeutete. Wenn sie dich nur deine Kindheit hätten erleben " -"lassen, oder jemals ihre Liebe gezeigt hätten! Nun bekommst du weder das " -"eine, noch das andere." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Awakened" -msgstr "Geweckter" - -#. ~ Profession (male Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Awakened" -msgstr "Geweckte" - -#. ~ Profession (female Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Cyclist" -msgstr "Bionikradfahrer" - -#. ~ Profession (male Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Cyclist" -msgstr "Bionikradfahrerin" - -#. ~ Profession (female Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Welder" -msgstr "Schweißer" - -#. ~ Profession (male Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Welder" -msgstr "Schweißerin" - -#. ~ Profession (female Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Primitive Survivalist" -msgstr "Primitiver Überlebenskünstler" - -#. ~ Profession (male Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Primitive Survivalist" -msgstr "Primitive Überlebenskünstlerin" - -#. ~ Profession (female Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" @@ -160275,7 +154312,7 @@ msgid "LIGHTING" msgstr "BELEUCHTUNG" #. ~ Crafting recipes subcategory of 'ARMOR' category -#: lang/json/recipe_category_from_json.py src/game_inventory.cpp +#: lang/json/recipe_category_from_json.py msgid "STORAGE" msgstr "LAGERUNG" @@ -161782,7 +155819,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "build a workbench" -msgstr "" +msgstr "Baue einen Arbeitstisch" #: lang/json/recipe_from_json.py msgid "" @@ -164663,7 +158700,7 @@ msgstr " Fertigen: Handbohrer" #: lang/json/recipe_group_from_json.py msgid " Craft: Sheet Metal" -msgstr " Fertigen: Blech" +msgstr " Fertigen: Metallblech" #: lang/json/recipe_group_from_json.py msgid " Craft: Chain" @@ -164803,7 +158840,7 @@ msgstr " Fertigen: Spitzhacke" #: lang/json/recipe_group_from_json.py msgid " Craft: Sheet Metal, Drop Hammer" -msgstr " Fertigen: Blech, Maschinenhammer" +msgstr " Fertigen: Metallblech, Maschinenhammer" #: lang/json/recipe_group_from_json.py msgid " Craft: Chain, Drop Hammer" @@ -164900,9 +158937,9 @@ msgstr "" #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. -#. ~ Starting location for scenario 'Robots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "In Town" @@ -165038,6 +159075,34 @@ msgstr "" "gebissen! Du hast keine brauchbare medizinische Versorgung erhalten und nun " "fängst die Wunde an, grün zu werden." +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -165763,19 +159828,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -165785,7 +159850,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -165795,7 +159860,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" @@ -166124,126 +160189,6 @@ msgctxt "start_name" msgid "Candy Shop" msgstr "" -#. ~ Name for scenario 'Robots' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Robots" -msgstr "Roboter" - -#. ~ Name for scenario 'Robots' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Robots" -msgstr "Roboter" - -#. ~ Description for scenario 'Robots' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Während der Unruhen und des Chaos verstecktest du dich, in der Hoffnung, " -"dass die Roboter dich schützen würden, in einer Roboterzentrale. Die Roboter" -" könnten sich allerdings als gefährlicher als die Zombies erweisen." - -#. ~ Description for scenario 'Robots' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Während der Unruhen und des Chaos verstecktest du dich, in der Hoffnung, " -"dass die Roboter dich schützen würden, in einer Roboterzentrale. Die Roboter" -" könnten sich allerdings als gefährlicher als die Zombies erweisen." - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Challenge-FEMA Death Camp" -msgstr "Herausforderung: FEMA-Todeslager" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Challenge-FEMA Death Camp" -msgstr "Herausforderung: FEMA-Todeslager" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"Du warst einer der vielen Mitarbeiter aus Polizei und Militär, welche " -"gerufen wurden, um in einem der FEMA-Lager die Ordnung aufrechtzuerhalten. " -"Es ging alles schnell den Bach runter: Verwundet und infiziert liegst du da," -" umgeben von Feuer, und es sind so verdammt viele …" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a female -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"Du warst eine der vielen Mitarbeiterinnen aus Polizei und Militär, welche " -"gerufen wurden, um in einem der FEMA-Lager die Ordnung aufrechtzuerhalten. " -"Es ging alles schnell den Bach runter: Verwundet und infiziert liegst du da," -" umgeben von Feuer, und es sind so verdammt viele …" - -#. ~ Starting location for scenario 'Challenge-FEMA Death Camp'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Fema Camp" -msgstr "Fema-Lager" - -#. ~ Name for scenario 'Mansion Holdout' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Mansion Holdout" -msgstr "Villa-Dickkopf" - -#. ~ Name for scenario 'Mansion Holdout' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Mansion Holdout" -msgstr "Villa-Dickkopf" - -#. ~ Description for scenario 'Mansion Holdout' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" - -#. ~ Description for scenario 'Mansion Holdout' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" - -#. ~ Starting location for scenario 'Mansion Holdout'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Mansion" -msgstr "Villa" - #. ~ display string for skill display type 'display_melee' #: lang/json/skill_display_type_from_json.py msgid "Melee skills" @@ -166407,12 +160352,7 @@ msgstr "Kochen" #: lang/json/skill_from_json.py msgid "" "Your skill in combining food ingredients to make other, tastier food items." -" It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." msgstr "" -"Deine Erfahrung damit, aus Zutaten andere, leckerere Nahrungsmittel zu " -"kombinieren. Es könnte auch für bestimmte chemische Mixturen und andere, " -"esoterischere Aufgaben benutzt werden." #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -166670,7 +160610,7 @@ msgstr "" #: lang/json/skill_from_json.py msgid "lock picking" -msgstr "" +msgstr "Schlösser knacken" #. ~ Description for {'str': 'lock picking'} #: lang/json/skill_from_json.py @@ -166680,6 +160620,17 @@ msgid "" "chance and decreases time required to successfully pick the lock." msgstr "" +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" + #: lang/json/skill_from_json.py msgid "weapon" msgstr "Waffe" @@ -168572,6 +162523,12 @@ msgid "" "Don't. This thorazine seriously clouds your mind. You need to stay sharp." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde" +" of undead!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "" @@ -168636,6 +162593,14 @@ msgstr "" msgid "Wish I could, ." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "" @@ -168668,6 +162633,10 @@ msgstr "" msgid "Not exactly the settlin' type." msgstr "" +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "" + #: lang/json/snippet_from_json.py msgid " " msgstr ", " @@ -168987,6 +162956,10 @@ msgid "" " ending, just for a while?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "" + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "Kein Problem, , ich brauch sowieso eine Pause, wie geht’s?" @@ -169528,6 +163501,14 @@ msgstr "Heda, ich bin hier drüben!" msgid "Hold up a second, will ya?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "Ich bin ungebunden." @@ -171972,6 +165953,117 @@ msgstr "" msgid "survivor" msgstr "Überbender" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr "" @@ -178689,6 +172781,42 @@ msgid "" "Michael Baker" msgstr "" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "»WIR HATTEN RECHT DIE REGIERUNG HAT'S GETAN«" @@ -179628,11 +173756,9 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" msgstr "" -"»Ich werd mich eines Tages zur Ruhe setzen. Schöner großer Obstgarten, ein " -"paar Freunde / künftige Familie, um Zeit mit ihnen zu verbringen und meine " -"Armee aus Zombiesklaven, um den Ort zu bewachen.«" #: lang/json/snippet_from_json.py msgid "" @@ -180601,6 +174727,51 @@ msgstr "" msgid "Dark days are ahead, but is that all?" msgstr "Die düsteren Tage stehen bevor, aber ist das alles?" +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 1: I had a dream and I can vaguely remember seeing a strange " +"truck that had overly round edges, it tooted its horn but instead I heard " +"people screaming, and when I blinked suddenly the truck wasn't just rounded," +" but made of people screaming forever inside a viscous blob.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 2: In last night's dream I was driving a rusty and dusty humvee," +" with my trusty companion using a massive pneumatic weapon to shoot rebar " +"pipes into faceless enemies chasing us. My heart is still pumping, why does" +" it feel like a memory instead of a dream?\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 3: Another dream. This time I dropped a diamond on a sea of " +"charcoal dust, and the diamond begun to shine and make the dust glitter " +"until a shape of a car emerged from the dust made entirely of thick, " +"perfectly angular diamond. A beautiful shape appeared on it, and in a flash" +" of light I was pierced by a glittering lance.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 4: These dreams get weirder. My companion of mine was driving " +"the RV, and I opened the back of the RV and found there was no roof but a " +"whole tray of gargantuan flowers made of solar panels arching toward the sun" +" greedily, light flowing from them into the RV. I stepped back and lost my " +"footing, seeing a strange portal on the side before I fell into a limitless " +"darkness.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 5: My most recent dream was better so here it goes. I was " +"walking in a meadow when a strange stone with a perfect spiral on it fell in" +" front of me. I picked it up and blew on it, and a tornado roared from the " +"stone. In its wake, a car appeared, wickedly shaped and the sound of " +"tornadoes coming from its exhaust- and I rode the wind, hurling thunderbolts" +" at any who got in my way.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "" @@ -181761,6 +175932,53 @@ msgstr "" msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you" +" think they eat cat food?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big" +" lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind" +" of big lizard down there. Probably not a good idea to check." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special" @@ -181768,6 +175986,14 @@ msgid "" "breakthroughs." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -181810,10 +176036,10 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "»Warum wimmelt es an diesem Ort nur so von Echsen?«" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" msgstr "" -"»Meine lieben schuppigen Brüder! Heute schlemmen wir von den haarlosen " -"Affen.«" #: lang/json/snippet_from_json.py msgid "\"where's some .700 t-rex medicine when you need it?\"" @@ -181828,32 +176054,33 @@ msgstr "" "Schmetterling trittst?«" #: lang/json/snippet_from_json.py -msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" +msgid "" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." msgstr "" -"»Gewehr. Schwert. Gewehrschert. Scheiß auf Bajonette, das ist viel " -"großartiger.«" #: lang/json/snippet_from_json.py msgid "" -"\"Not sure if wielding this thing makes me feel like a bodybuilder or a " -"theoretical physicist. Both?\"" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" msgstr "" -"»Nicht sicher, ob mich dieses Ding wie ein Bodybuilder oder einen " -"theoretischen Physiker fühlen lässt. Beides?«" - -#: lang/json/snippet_from_json.py -msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" -msgstr "»Das ist nicht die Kaliber-.50-Handkanone deines Großpapas!«" - -#: lang/json/snippet_from_json.py -msgid "\"Nice pistol! Which trigger fires the flamer?\"" -msgstr "»Nette Pistole! Womit löst man den Flammenwerfer aus?«" #: lang/json/snippet_from_json.py -msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." msgstr "" -"»Warum um alles in der Welt hab ich eine Armbrust auf diese Pistole " -"geklebt.«" #: lang/json/snippet_from_json.py msgid "" @@ -181989,7 +176216,7 @@ msgstr "Kranke müssen draußen bleiben!" #: lang/json/snippet_from_json.py msgid "Need clean water." -msgstr "Brauche klares Wasser." +msgstr "Brauche sauberes Wasser." #: lang/json/snippet_from_json.py msgid "Waiting for airlift." @@ -182079,14 +176306,6 @@ msgstr "Junge" msgid "chief" msgstr "Boss" -#: lang/json/snippet_from_json.py -msgid "" -"\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " -"repeat.\"" -msgstr "" -"»Erschieß elfenartige Mutanten. Schnitz mehr Bolzen aus ihren Knochen. Fang " -"wieder von vorne an.«" - #: lang/json/snippet_from_json.py msgid "" "A flyer for some kind of candy. It shows a picture of a gleaming human made" @@ -182094,101 +176313,6 @@ msgid "" "human candy! Are you a real monster? Will you be able to devour it all?\"" msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"\"Tank drone, meet the real deal. See how you handle 120 millimeters of " -"HELL YEAH!\"" -msgstr "" -"»Panzerdrohne, triff das einzig Wahre. Sieh, wie du fertig wirst mit 120 " -"Millimetern aus OH YEAH!«" - -#: lang/json/snippet_from_json.py -msgid "\"big fucking gun, earplugs are good for your brain\"" -msgstr "»große mega Kanone, Ohrenschützer sind gut für dein Gehirn«" - -#: lang/json/snippet_from_json.py -msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" -msgstr "" -"»Ich habe eine Panzerkanone an mein Fahrrad montiert. Dein Argument ist " -"falsch.«" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Next person to call this infantry fighting vehicle a 'tank' is walking " -"home.\"" -msgstr "" -"»Die nächste Person, die dieses Infanteriekampffahrzeug einen ›Panzer‹ " -"nennt, geht heim.«" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Found what used to be an armored platoon. Most tanks have hatches up top," -" not in the back like the new ones they're using.\"" -msgstr "" -"»Hab gefunden, was mal ein Panzerzug war. Die meisten Panzer haben die " -"Klappen oben, nicht in der Rückseite wie die neuen Modelle, die sie " -"verwenden.«" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Agh, to See the Spiral in such a Distorted Shape! Manipulated for its " -"Vortex motion! Its Perpetual Grace! Its beauty Tarnished…\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "" -"»Meine Freundin ist gestorben, aber wenigstens hab ich sie in einen " -"Blobgeschützturm verwandelt.«" - -#: lang/json/snippet_from_json.py -msgid "" -"\"I have this laser cannon turret on my shopping cart. I push it around and" -" everything dies. I think I'm gonna toss it in the lake-- this just isn't " -"fair anymore.\"" -msgstr "" -"»Ich habe diesen Laserkanonengeschützturm an meinem Einkaufswagen. Ich kann " -"ihn rumschieben und alles stirbt. Ich glaub, ich werf ihn in den See – das " -"ist doch nicht mehr fair.«" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Day 40. Controls broken-- car's magic reactor makes it goes inexorably " -"forward. Giant rollers on front demolish forest. Maine, here I come.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"my car is a diamond in the rough… literally\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" -msgstr "" -"»Ich hab so viele Dinge an mein Taxi befestigt, dass es in Flammen aufging. " -"Upps.«" - -#: lang/json/snippet_from_json.py -msgid "" -"\"If I put one cargo dimension into another cargo dimension, does the " -"universe end?\"" -msgstr "" -"»Wenn ich eine Lagerdimension in eine andere Lagerdimension tue, hört das " -"Universum auf?«" - -#: lang/json/snippet_from_json.py -msgid "\"one day, i will be part of car, too\"" -msgstr "»eines tages werde ich auch ein teil eines autos sein«" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Putta little bitta dynamite and halfa landmine in an old soda can… WHAM!" -" You goin' somewhere.\"" -msgstr "" - #: lang/json/speech_from_json.py msgid "\"Hello?\"" msgstr "»Hallo?«" @@ -183694,17 +177818,57 @@ msgid "\"Our food contains up to 95% real food.\"" msgstr "" #: lang/json/speech_from_json.py -msgid "\"FoodPlace: It's the Calories.\"" +msgid "\"At FoodPlace your excellent value brings nourishment and delight.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"At FoodPlace we have a host of solutions for your food needs!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"♪Eat at FoodPlace. ♫It is a place with food.♪\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is a popular food chain selling food items. What else is there " +"to know?\"" msgstr "" #: lang/json/speech_from_json.py msgid "\"You need food, don't you? Then come with me to FOODPLACE!!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"You need food, don't you? It's time for FoodPlace!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: It's the Calories.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Don’t get caught in the web of unsafe diet.\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"FoodPlace: Edible food is OUR guarantee!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: We bring food to life!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Edible food is one of our main goals!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is the only way to obtain healthy and strong lifecycle " +"choices!!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "Wanna play with me?" msgstr "Willst du mit mir spielen?" @@ -184878,154 +179042,6 @@ msgstr "" msgid "a semi-musical chirping that echos across the landscape." msgstr "" -#: lang/json/speech_from_json.py -msgid "\"bzzzzzz.\"" -msgstr "»bzzzzzz.«" - -#: lang/json/speech_from_json.py -msgid "\"Beep.\"" -msgstr "»Piep«" - -#: lang/json/speech_from_json.py -msgid "\"Beep?\"" -msgstr "»Piep?«" - -#: lang/json/speech_from_json.py -msgid "\"Beep!\"" -msgstr "»Piep!«" - -#: lang/json/speech_from_json.py -msgid "\"Beeeeep beep.\"" -msgstr "»Piiieeep, piep.«" - -#: lang/json/speech_from_json.py -msgid "\"Bebebeeeep.\"" -msgstr "»Piep, piiieeep.«" - -#: lang/json/speech_from_json.py -msgid "\"Beep boop beep?\"" -msgstr "»Piep, pööp, piep?«" - -#: lang/json/speech_from_json.py -msgid "\"Beedoo-Beep.\"" -msgstr "»Pieppööp-Piep.«" - -#: lang/json/speech_from_json.py -msgid "\"Beep Beep. Whirr.\"" -msgstr "»Piep Piep. Whirr.«" - -#: lang/json/speech_from_json.py -msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "»Vrrrr Hrrrmmm.«" - -#: lang/json/speech_from_json.py -msgid "\"Whirrrrr-click click.\"" -msgstr "»Whirrrrr-klick klick.«" - -#: lang/json/speech_from_json.py -msgid "\"Boodoobeep beep beep.\"" -msgstr "»Pööppiep piep piep.«" - -#: lang/json/speech_from_json.py -msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "»Brannnnnnn Brzt Brmmmm.«" - -#: lang/json/speech_from_json.py -msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "»Whshoooo. Brzzzt. Brzzzt.«" - -#: lang/json/speech_from_json.py -msgid "\"Brrm Bum Brrm?\"" -msgstr "»Brrm Bum Brrm?«" - -#: lang/json/speech_from_json.py -msgid "\"Pwweeee Krsht.\"" -msgstr "»Pwweeee Krsht.«" - -#: lang/json/speech_from_json.py -msgid "\"Fshkt fshkt. Booop.\"" -msgstr "»Fshkt fshkt. Pööp.«" - -#: lang/json/speech_from_json.py -msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "»Vzt. Vzt. Krshhhhhhhh.«" - -#: lang/json/speech_from_json.py -msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "»Whhheeee-oooo. Piepdiep.«" - -#: lang/json/speech_from_json.py -msgid "\"Grrrnd clang whirrrr.\"" -msgstr "»Grrrnd kläng whirrrr.«" - -#: lang/json/speech_from_json.py -msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "»Grrrrrrrnd. Grrrnd.«" - -#: lang/json/speech_from_json.py -msgid "\"Cla-clang cla-clang!\"" -msgstr "»Kla-Kläng Kla-Kläng!«" - -#: lang/json/speech_from_json.py -msgid "\"Klang!\"" -msgstr "»Kläng!«" - -#: lang/json/speech_from_json.py -msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "»Bzzzt. Bzzzzt!«" - -#: lang/json/speech_from_json.py -msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "»Shwwwrrrrnnnzzz bzzt.«" - -#: lang/json/speech_from_json.py -msgid "a high pitched alarm." -msgstr "ein hochfrequenter Alarm." - -#: lang/json/speech_from_json.py -msgid "a blaring siren." -msgstr "eine brüllende Sirene." - -#: lang/json/speech_from_json.py -msgid "\"CHUG chug chug.\"" -msgstr "»TSCHUG tschug tschug.«" - -#: lang/json/speech_from_json.py -msgid "\"Creak! Clang clang.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Khr Khr Khr.\"" -msgstr "»Khr Khr Khr.«" - -#: lang/json/speech_from_json.py -msgid "a mechanical groaning." -msgstr "ein mechanisches Stöhnen." - -#: lang/json/speech_from_json.py -msgid "grinding gears." -msgstr "knirschende Getriebe." - -#: lang/json/speech_from_json.py -msgid "tortured machinery." -msgstr "gequälte Maschinen." - -#: lang/json/speech_from_json.py -msgid "\"SQUEE!\"" -msgstr "»KREISCH!«" - #: lang/json/start_location_from_json.py msgid "Shelter" msgstr "Unterkunft" @@ -185238,36 +179254,8 @@ msgstr "" msgid "Candy Shop" msgstr "" -#: lang/json/start_location_from_json.py -msgid "Robot Dispatch Center" -msgstr "Roboterzentrale" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp (entrance)" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "Mansion Entrance" -msgstr "Villeneingang" - -#: lang/json/start_location_from_json.py src/gamemode_defense.cpp -msgid "Mansion" -msgstr "Villa" - -#: lang/json/start_location_from_json.py -msgid "Electronics Store" -msgstr "Elektronikfachgeschäft" - -#: lang/json/start_location_from_json.py -msgid "Clothing Store" -msgstr "Bekleidungsgeschäft" - #: lang/json/talk_topic_from_json.py -msgid "You there. Quiet down. Can you hear it? The song?" +msgid "Acolyte." msgstr "" #: lang/json/talk_topic_from_json.py @@ -185275,7 +179263,7 @@ msgid "You're back. Have you come to listen to the song?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Acolyte." +msgid "You there. Quiet down. Can you hear it? The song?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -185423,32 +179411,34 @@ msgid "Yeah, alright." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." +msgid "There are bones to etch, songs to sing. Wish to join me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." +msgid "Do you wish to take on more songs?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." +msgid "Do you believe you can take on the burden of additional bones?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you believe you can take on the burden of additional bones?" +msgid "A song may yet be sung by you, should you wish to." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you wish to take on more songs?" +msgid "There is an additional song you could take on, if you'd like." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There are bones to etch, songs to sing. Wish to join me?" +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That is all for now." +msgid "" +"The song is… quiet for now. Perhaps with time, more notes will be etched in" +" the bones of this world." msgstr "" #: lang/json/talk_topic_from_json.py @@ -185456,9 +179446,7 @@ msgid "An acolyte should not take on too many songs at once." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The song is… quiet for now. Perhaps with time, more notes will be etched in" -" the bones of this world." +msgid "That is all for now." msgstr "" #: lang/json/talk_topic_from_json.py @@ -185530,16 +179518,16 @@ msgstr "" msgid "I see. Very well then." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Only those who bear my mark will prove themselves worthy of my skills." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "You bear my mark, meaning I believe you have potential to learn to truly " "listen to the Song. Yes, I will lend my skills to you, for now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Only those who bear my mark will prove themselves worthy of my skills." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I am glad to hear it. Let's go then." msgstr "" @@ -185753,14 +179741,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, I can perform first aid. You give me some bandages or a bottle of " -"antiseptic, I'll treat your wounds as best I can." +"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " +"or a bottle of antiseptic, I'm get you fixed when I see you hurting." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " -"or a bottle of antiseptic, I'm get you fixed when I see you hurting." +"Yeah, I can perform first aid. You give me some bandages or a bottle of " +"antiseptic, I'll treat your wounds as best I can." msgstr "" #: lang/json/talk_topic_from_json.py @@ -185932,13 +179920,13 @@ msgid "Thanks. I have some things for you to do." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " -"anymore..." +msgid "Hi there, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there, ." +msgid "" +"STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " +"anymore..." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186012,24 +180000,24 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Anything to do before I go to sleep?" -msgstr "Gibt es irgendetwas zu tun, bevor ich mich schlafen lege?" +msgid "No, just no..." +msgstr "Nein, einfach nein, …" #: lang/json/talk_topic_from_json.py -msgid "Just few minutes more..." -msgstr "Nur noch ein paar Minuten …" +msgid "Just let me sleep, !" +msgstr "Lass mich einfach schlafen, !" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." msgstr "Mach schnell, ich will mich wieder schlafen legen." #: lang/json/talk_topic_from_json.py -msgid "Just let me sleep, !" -msgstr "Lass mich einfach schlafen, !" +msgid "Just few minutes more..." +msgstr "Nur noch ein paar Minuten …" #: lang/json/talk_topic_from_json.py -msgid "No, just no..." -msgstr "Nein, einfach nein, …" +msgid "Anything to do before I go to sleep?" +msgstr "Gibt es irgendetwas zu tun, bevor ich mich schlafen lege?" #: lang/json/talk_topic_from_json.py msgid "Wake up!" @@ -186055,11 +180043,11 @@ msgid "no, go back to sleep." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What is it, friend?" +msgid " *pshhhttt* I'm reading you boss, over." msgstr "" #: lang/json/talk_topic_from_json.py -msgid " *pshhhttt* I'm reading you boss, over." +msgid "What is it, friend?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186143,15 +180131,15 @@ msgid "Let's go." msgstr "Los geht’s!" #: lang/json/talk_topic_from_json.py -msgid "*will engage all enemies." +msgid "*will not engage enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage enemies close enough to attack without moving." +msgid "*will engage nearby enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage distant enemies without moving." +msgid "*will engage weak enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186159,19 +180147,15 @@ msgid "*will engage enemies you attack." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage weak enemies." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "*will engage nearby enemies." +msgid "*will engage distant enemies without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not engage enemies." +msgid "*will engage enemies close enough to attack without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid " " +msgid "*will engage all enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186179,7 +180163,7 @@ msgid " OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid " " msgstr "" #: lang/json/talk_topic_from_json.py @@ -186187,7 +180171,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186195,19 +180179,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186215,7 +180199,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186223,13 +180207,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid " What should do?" msgstr "" @@ -186305,7 +180293,8 @@ msgstr "" #: src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/monexamine.cpp src/monexamine.cpp src/npc.cpp -#: src/pickup.cpp src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp +#: src/pickup.cpp src/player.cpp src/player.cpp src/player.cpp +#: src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." msgstr "Ach, schon gut." @@ -186339,12 +180328,13 @@ msgid "Attack anything you want." msgstr "Greif an, was du willst." #: lang/json/talk_topic_from_json.py -msgid "*will not reserve any power for defense or utility CBMs." +#, no-python-format +msgid "*will reserve 100% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 25% of CBM power for defense or utility CBMs." +msgid "*will reserve 75% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186354,12 +180344,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 75% of CBM power for defense or utility CBMs." +msgid "*will reserve 25% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py -#, no-python-format -msgid "*will reserve 100% of CBM power for defense or utility CBMs." +msgid "*will not reserve any power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186399,12 +180388,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 10% of total power." +msgid "*will recharge power CBMs until has 90% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 25% of total power." +msgid "*will recharge power CBMs until has 75% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186414,12 +180403,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 75% of total power." +msgid "*will recharge power CBMs until has 25% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 90% of total power." +msgid "*will recharge power CBMs until has 10% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186455,19 +180444,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not bother to aim at all." +msgid "*will aim when it's convenient." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will take time and aim carefully." +msgid "*will only shoot after taking a long time to aim." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will only shoot after taking a long time to aim." +msgid "*will take time and aim carefully." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will aim when it's convenient." +msgid "*will not bother to aim at all." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186511,7 +180500,7 @@ msgid "OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186519,11 +180508,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186531,7 +180516,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186539,7 +180524,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186547,7 +180532,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186555,7 +180540,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186563,7 +180548,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186571,7 +180556,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186579,13 +180564,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." msgstr "Folge den gleichen Regeln wie dieser Gefährte." @@ -186758,14 +180747,14 @@ msgstr "" msgid "Sure thing, I'll make my way there." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, this summer heat is hitting me hard, let's take a quick break, how " @@ -186780,10 +180769,6 @@ msgstr "" "Okay, vielleicht wird es mir helfen, in diesem Wetter nicht zu erfrieren. " "Was ist los?" -#: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, it's the time of day for a quick break surely! How are you holding " @@ -186791,13 +180776,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, I'm feeling pretty sick… are you doing OK though?" +msgid "Man it's dark out isn't it? what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " -"what's up?" +msgid "Well, I'm feeling pretty sick… are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -186806,6 +180789,12 @@ msgid "" "Anyway, you coping OK, ? " msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " +"what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Now, we've got a moment, I was just thinking it's been a month or so since… " @@ -186877,14 +180866,14 @@ msgstr "Okay, keine plötzlichen Bewegungen!" msgid "Keep your distance!" msgstr "Bleib fern!" -#: lang/json/talk_topic_from_json.py -msgid "This is my territory, ." -msgstr "Das ist mein Gebiet, ." - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is my territory, ." +msgstr "Das ist mein Gebiet, ." + #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." msgstr "Ruhig Blut. Ich habe nicht vor, dich zu verletzen." @@ -186901,14 +180890,14 @@ msgstr "" msgid "&Put hands up." msgstr "&Hände hoch!" -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*lässt ihre Waffe fallen." - #: lang/json/talk_topic_from_json.py msgid "*drops his weapon." msgstr "*lässt seine Waffe fallen." +#: lang/json/talk_topic_from_json.py +msgid "*drops_her_weapon." +msgstr "*lässt ihre Waffe fallen." + #: lang/json/talk_topic_from_json.py msgid "Now get out of here" msgstr "Jetzt verschwinde von hier" @@ -186937,14 +180926,6 @@ msgstr "Worum geht’s?" msgid "I don't care." msgstr "Ist mir egal." -#: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" -msgstr "Ich hab nur eine Aufgabe für dich. Willst du sie hören?" - -#: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" -msgstr "Ich habe noch eine Aufgabe für dich. Willst du sie hören?" - #: lang/json/talk_topic_from_json.py msgid "I have other jobs for you. Want to hear about them?" msgstr "" @@ -186954,13 +180935,21 @@ msgid "I have more jobs for you. Want to hear about them?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." -msgstr "Ich hab nichts weiteres für dich zu tun." +msgid "I have another job for you. Want to hear about it?" +msgstr "Ich habe noch eine Aufgabe für dich. Willst du sie hören?" + +#: lang/json/talk_topic_from_json.py +msgid "I just have one job for you. Want to hear about it?" +msgstr "Ich hab nur eine Aufgabe für dich. Willst du sie hören?" #: lang/json/talk_topic_from_json.py msgid "I don't have any jobs for you." msgstr "Ich hab nichts für dich zu tun." +#: lang/json/talk_topic_from_json.py +msgid "I don't have any more jobs for you." +msgstr "Ich hab nichts weiteres für dich zu tun." + #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." @@ -186971,16 +180960,16 @@ msgid "Never mind, I'm not interested." msgstr "Vergiss es, ich bin nicht interessiert." #: lang/json/talk_topic_from_json.py -msgid "What about it?" -msgstr "Wie wär’s?" +msgid "You're not working on anything for me now." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Which job?" msgstr "Welche Aufgabe?" #: lang/json/talk_topic_from_json.py -msgid "You're not working on anything for me now." -msgstr "" +msgid "What about it?" +msgstr "Wie wär’s?" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" @@ -187201,31 +181190,31 @@ msgid "Thanks!" msgstr "Danke!" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for not telling you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Nothing comes to my mind now. Ask me later perhaps?" +msgid "Focus on the road, mate!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm too tired, let me rest first." -msgstr "Ich bin zu müde, lass mich zuerst etwas ruhen." +msgid "I'm too thirsty, give me something to drink." +msgstr "Ich bin zu durstig, gib mir was zu Trinken." #: lang/json/talk_topic_from_json.py msgid "I'm too hungry, give me something to eat." msgstr "Ich bin zu hungrig, gib mir etwas zu Essen." #: lang/json/talk_topic_from_json.py -msgid "I'm too thirsty, give me something to drink." -msgstr "Ich bin zu durstig, gib mir was zu Trinken." +msgid "I'm too tired, let me rest first." +msgstr "Ich bin zu müde, lass mich zuerst etwas ruhen." #: lang/json/talk_topic_from_json.py -msgid "I must focus on the road!" +msgid "Nothing comes to my mind now. Ask me later perhaps?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Focus on the road, mate!" +msgid "I have some reason for not telling you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I must focus on the road!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -187233,16 +181222,16 @@ msgid "Ah, okay." msgstr "Ah, okay." #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "Warum sollte ich mit dir reisen?" +msgid "Not until I get some antibiotics..." +msgstr "Nicht, bevor ich ein paar Antibiotika kriege." #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." msgstr "Du hast mich erst kürzlich gefragt; frag später nach." #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Nicht, bevor ich ein paar Antibiotika kriege." +msgid "Why should I travel with you?" +msgstr "Warum sollte ich mit dir reisen?" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." @@ -187333,20 +181322,20 @@ msgid "On second thought, never mind." msgstr "Wenn ich darüber nachdenke, vergiss es." #: lang/json/talk_topic_from_json.py -msgid "I have some reason for denying you training." -msgstr "Ich habe Gründe, um dir die Ausbildung zu verweigern." +msgid "I can't train you properly while you're operating a vehicle!" +msgstr "Ich kann dich nicht trainieren, solange du ein Fahrzeug benutzt!" #: lang/json/talk_topic_from_json.py msgid "Give it some time, I'll show you something new later..." msgstr "Nur Geduld, ich werd dir später etwas neues zeigen …" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while I'm operating a vehicle!" -msgstr "" +msgid "I have some reason for denying you training." +msgstr "Ich habe Gründe, um dir die Ausbildung zu verweigern." #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while you're operating a vehicle!" -msgstr "Ich kann dich nicht trainieren, solange du ein Fahrzeug benutzt!" +msgid "I can't train you properly while I'm operating a vehicle!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not a bloody chance, I'm going to get left behind!" @@ -187384,14 +181373,14 @@ msgstr "Ich behalte das lieber für mich." msgid "I understand…" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Why should I share my equipment with you?" -msgstr "Warum sollte ich dir etwas abgeben?" - #: lang/json/talk_topic_from_json.py msgid "You just asked me for stuff; ask later." msgstr "Du hast mich gerade eben um etwas gefragt, frag später nach." +#: lang/json/talk_topic_from_json.py +msgid "Why should I share my equipment with you?" +msgstr "Warum sollte ich dir etwas abgeben?" + #: lang/json/talk_topic_from_json.py msgid "Okay, fine." msgstr "In Ordnung." @@ -187537,13 +181526,13 @@ msgid "You might be seeing more of me…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " -"I've seen in a long time." +msgid "Hey again. *kzzz*" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey again. *kzzz*" +msgid "" +"I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " +"I've seen in a long time." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188702,15 +182691,15 @@ msgid "This is a low driving test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greeting citizen, what brings you to the FoodLair?" +msgid "Greetings friend, it's nice to see you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Still here? Take your time, it's rough out there." +msgid "So you're back… Explain yourself!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greetings friend, it's nice to see you." +msgid "What sorcery is this?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188718,11 +182707,11 @@ msgid "Welcome home Foodkid!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What sorcery is this?" +msgid "Still here? Take your time, it's rough out there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So you're back… Explain yourself!" +msgid "Greeting citizen, what brings you to the FoodLair?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -190377,6 +184366,10 @@ msgid "" " just busy not dying." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "Ich kann darüber jetzt einfach nicht reden. Ich kann nicht." + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a blur." @@ -190385,8 +184378,7 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke. I'd seen such horrible injuries, and then I… " -", I can't even talk about it." +"shift I… well, I broke." msgstr "" #: lang/json/talk_topic_from_json.py @@ -190397,13 +184389,10 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke." +"shift I… well, I broke. I'd seen such horrible injuries, and then I… " +", I can't even talk about it." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "I just can't talk about that right now. I can't." -msgstr "Ich kann darüber jetzt einfach nicht reden. Ich kann nicht." - #: lang/json/talk_topic_from_json.py msgid "It might help to get it off your chest." msgstr "Es könnte helfen, es von der Seele zu bekommen." @@ -190815,20 +184804,20 @@ msgstr "Danke, dass du mir das alles erzählt hast. " #: lang/json/talk_topic_from_json.py msgid "" -"My wife made it out with me, but got eaten by one of those plant " +"My husband made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"Meine Frau schaffte es mit mir zusammen nach draußen, aber sie wurde von " +"Mein Mann schaffte es mit mir zusammen nach draußen, aber sie wurde von " "eines dieser verdammten Pflanzenmonster gefressen. Das ist ein paar Tage, " "bevor ich dich getroffen habe, passiert. Das war kein großartiges Jahr für " "mich." #: lang/json/talk_topic_from_json.py msgid "" -"My husband made it out with me, but got eaten by one of those plant " +"My wife made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"Mein Mann schaffte es mit mir zusammen nach draußen, aber sie wurde von " +"Meine Frau schaffte es mit mir zusammen nach draußen, aber sie wurde von " "eines dieser verdammten Pflanzenmonster gefressen. Das ist ein paar Tage, " "bevor ich dich getroffen habe, passiert. Das war kein großartiges Jahr für " "mich." @@ -190892,10 +184881,11 @@ msgid "I'm sorry you lost someone." msgstr "Es tut mir leid, dass du jemanden verloren hast." #: lang/json/talk_topic_from_json.py -msgid "Just another tale of love and loss. Not one I like to tell." +msgid "" +"I said, I don't wanna talk about it. How are you not understanding this?" msgstr "" -"Nur eine weitere Geschichte über Liebe und Verlust. Keine die ich " -"gerne erzähle." +"Ich habe gesagt, dass ich darüber nicht reden will. Wieso kannst du das " +"nicht verstehen?" #: lang/json/talk_topic_from_json.py msgid "" @@ -190906,11 +184896,10 @@ msgstr "" "nicht um, sie noch einmal zu erzählen." #: lang/json/talk_topic_from_json.py -msgid "" -"I said, I don't wanna talk about it. How are you not understanding this?" +msgid "Just another tale of love and loss. Not one I like to tell." msgstr "" -"Ich habe gesagt, dass ich darüber nicht reden will. Wieso kannst du das " -"nicht verstehen?" +"Nur eine weitere Geschichte über Liebe und Verlust. Keine die ich " +"gerne erzähle." #: lang/json/talk_topic_from_json.py msgid "You said you lost someone." @@ -190935,52 +184924,52 @@ msgid "" msgstr "Oh, . Das hat weder etwas mit dir, noch mit uns zu tun." #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." +msgid "All right, fine. I had someone. I lost him." msgstr "In Ordnung, schon gut. Ich hatte jemanden und hab sie verloren." #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." +msgid "All right, fine. I had someone. I lost her." msgstr "In Ordnung, schon gut. Ich hatte jemanden und hab sie verloren." #: lang/json/talk_topic_from_json.py msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -"Sie war zuhause, als die Bomben fielen und die Hölle auf Erden ausbrach. Ich" -" war auf der Arbeit. Ich versuchte, zu unserem Haus zu gelangen, aber die " +"Er war zuhause, als die Bomben fielen und die Hölle auf Erden ausbrach. Ich " +"war auf der Arbeit. Ich versuchte, zu unserem Haus zu gelangen, aber die " "Stadt war ein Kriegsgebiet. Dinge, die ich nicht beschreiben kann, taumelten" " durch die Straßen und zerschlugen Menschen und Autos. Soldaten versuchten, " "sie zu stoppen, aber sie trafen Menschen im Kreuzfeuer so oft wie andere " "Dinge. Und dann stünde der Kollateralschaden gleich wieder auf und liefe zum" -" Feind über. Wenn da nicht noch meine Frau gewesen wäre, wär ich einfach " +" Feind über. Wenn da nicht noch mein Mann gewesen wäre, wär ich einfach " "abgehauen, aber ich tat, was ich konnte und kam durch. Ich hab es verdammt " "noch mal lebendig geschafft." #: lang/json/talk_topic_from_json.py msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -"Er war zuhause, als die Bomben fielen und die Hölle auf Erden ausbrach. Ich " -"war auf der Arbeit. Ich versuchte, zu unserem Haus zu gelangen, aber die " +"Sie war zuhause, als die Bomben fielen und die Hölle auf Erden ausbrach. Ich" +" war auf der Arbeit. Ich versuchte, zu unserem Haus zu gelangen, aber die " "Stadt war ein Kriegsgebiet. Dinge, die ich nicht beschreiben kann, taumelten" " durch die Straßen und zerschlugen Menschen und Autos. Soldaten versuchten, " "sie zu stoppen, aber sie trafen Menschen im Kreuzfeuer so oft wie andere " "Dinge. Und dann stünde der Kollateralschaden gleich wieder auf und liefe zum" -" Feind über. Wenn da nicht noch mein Mann gewesen wäre, wär ich einfach " +" Feind über. Wenn da nicht noch meine Frau gewesen wäre, wär ich einfach " "abgehauen, aber ich tat, was ich konnte und kam durch. Ich hab es verdammt " "noch mal lebendig geschafft." @@ -191057,11 +185046,11 @@ msgstr "Hast du es ins Haus geschafft?" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " +"up part? Like, out of all this? My husband was still alive. He'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirious by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then… well, then I did what you " +"he'd lost a ton of blood, he was delirious by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -191069,11 +185058,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " +"up part? Like, out of all this? My wife was still alive. She'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirious by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then… well, then I did what you " +"she'd lost a ton of blood, she was delirious by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -191875,16 +185864,6 @@ msgstr "" " denke ich, wandere ich auf Höllen auf Erden. Ich wünschte, ich hätte mehr " "in der Sonntagsschule aufgepasst." -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started… cancer. If anything good has " -"come out of all this, it's that I finally see a positive to losing her so " -"young. I'd been shut in for a while anyway. When the news started talking " -"about Chinese bio weapons and sleeper agents, and showing the rioting in " -"Boston and such, I curled up with my canned soup and changed the channel." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I lived alone, on the old family property way out of town. My husband " @@ -191896,6 +185875,16 @@ msgid "" "channel." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started… cancer. If anything good has " +"come out of all this, it's that I finally see a positive to losing her so " +"young. I'd been shut in for a while anyway. When the news started talking " +"about Chinese bio weapons and sleeper agents, and showing the rioting in " +"Boston and such, I curled up with my canned soup and changed the channel." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, it built up a bit. There was that acid rain, it burnt up one of my " @@ -191993,6 +185982,14 @@ msgstr "Es tut mir leid wegen Buck. " msgid "I'm sorry about Buck. " msgstr "Es tut mir leid wegen Buck " +#: lang/json/talk_topic_from_json.py +msgid "" +"Like I said, you want me to tell you a story, you gotta pony up the whisky." +" A full bottle, mind you." +msgstr "" +"Wie ich schon sagte, wenn du von mir eine Geschichte hören willst, musst du " +"den Whisky rüberwachsen lassen. Eine volle Flasche, wohlgemerkt." + #: lang/json/talk_topic_from_json.py msgid "" "Listen. I'm gonna cut this off short. I work for you, okay? I'm not " @@ -192002,14 +185999,6 @@ msgstr "" "interessiert darin, eine Beziehung anzufangen. Du hast mich nicht dafür " "bezahlt, dein Freund zu sein." -#: lang/json/talk_topic_from_json.py -msgid "" -"Like I said, you want me to tell you a story, you gotta pony up the whisky." -" A full bottle, mind you." -msgstr "" -"Wie ich schon sagte, wenn du von mir eine Geschichte hören willst, musst du " -"den Whisky rüberwachsen lassen. Eine volle Flasche, wohlgemerkt." - #: lang/json/talk_topic_from_json.py msgid "" "I'm not looking for a friend, but I've paid my dues and earned my way. You " @@ -192417,30 +186406,30 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " -"peel out of there with her brother - my best man - in his pickup truck as " -"things went bad. So, until I run into them again one way or another, I'm " -"just gonna keep on believing they're out there, doing well. That's more " +"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " +"peel out of there with his sister - my maid of honor - in her pickup truck " +"as things went bad. So, until I run into them again one way or another, I'm" +" just gonna keep on believing they're out there, doing well. That's more " "than most of us have." msgstr "" "Nun, ich habe diese seltsame Hoffnung. Sie ist vielleicht dumm, aber ich " -"sah, wie meine Verlobte mit ihrem Bruder – meinem besten Mann – mit " -"quietschdem Reifen in seinem Pick-Up floh, als die Dinge so richtig schlimm " +"sah, wie mein Verlobter mit seiner Schwester – meiner Ehrendame – mit " +"quietschdem Reifen in ihrem Pick-Up floh, als die Dinge so richtig schlimm " "wurden. Also, bis ich ihnen wieder begegne – so oder so – werde ich weiter " "glauben, dass sie da draußen sind und es ihnen gut geht. Das ist mehr als " "was die meisten von uns haben." #: lang/json/talk_topic_from_json.py msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancé " -"peel out of there with his sister - my maid of honor - in her pickup truck " -"as things went bad. So, until I run into them again one way or another, I'm" -" just gonna keep on believing they're out there, doing well. That's more " +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " "than most of us have." msgstr "" "Nun, ich habe diese seltsame Hoffnung. Sie ist vielleicht dumm, aber ich " -"sah, wie mein Verlobter mit seiner Schwester – meiner Ehrendame – mit " -"quietschdem Reifen in ihrem Pick-Up floh, als die Dinge so richtig schlimm " +"sah, wie meine Verlobte mit ihrem Bruder – meinem besten Mann – mit " +"quietschdem Reifen in seinem Pick-Up floh, als die Dinge so richtig schlimm " "wurden. Also, bis ich ihnen wieder begegne – so oder so – werde ich weiter " "glauben, dass sie da draußen sind und es ihnen gut geht. Das ist mehr als " "was die meisten von uns haben." @@ -192449,10 +186438,6 @@ msgstr "" msgid "What were you saying before that?" msgstr "Was hast du davor gesagt?" -#: lang/json/talk_topic_from_json.py -msgid "Welcome! You seem new, how can I help you?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "Hallöchen!" @@ -192473,6 +186458,10 @@ msgstr "" msgid "How's the weather?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Welcome! You seem new, how can I help you?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What is this place?" msgstr "Was ist das für ein Ort?" @@ -192559,16 +186548,16 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. If " -"you had found our community earlier, you could have had a higher chance to " -"join. The newest member joined just a few days ago." +"decisions. But as I said, your chances are low, like everyone else's. The " +"newest member joined just a long time ago." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. The " -"newest member joined just a long time ago." +"decisions. But as I said, your chances are low, like everyone else's. If " +"you had found our community earlier, you could have had a higher chance to " +"join. The newest member joined just a few days ago." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192615,15 +186604,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey! What are you doing up here? You are not allowed to come here." +msgid "You're back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You're back." +msgid "So…?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So…?" +msgid "Hey! What are you doing up here? You are not allowed to come here." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192657,15 +186646,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am sorry, but nobody is allowed to take anything from here. We would like" -" to help you, but we already have enough mouths to feed." +"I am afraid you can't. Look, we are running low on our rations, and we " +"don't want to waste even more. Even if you just want to 'borrow' it. Too " +"bad, we could've helped you if you had come here earlier." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am afraid you can't. Look, we are running low on our rations, and we " -"don't want to waste even more. Even if you just want to 'borrow' it. Too " -"bad, we could've helped you if you had come here earlier." +"I am sorry, but nobody is allowed to take anything from here. We would like" +" to help you, but we already have enough mouths to feed." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192708,14 +186697,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That information is a bit private, but you can see for yourself. We have " -"about 20 crates full of non-perishables." +"I don't know anymore. You see, we used to have 20 crates full of non-" +"perishables. That was months ago. We are running out." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I don't know anymore. You see, we used to have 20 crates full of non-" -"perishables. That was months ago. We are running out." +"That information is a bit private, but you can see for yourself. We have " +"about 20 crates full of non-perishables." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192784,11 +186773,11 @@ msgid "That's good to hear." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Pleased to meet you." +msgid "Are you here to protect us?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Are you here to protect us?" +msgid "Pleased to meet you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192845,11 +186834,11 @@ msgid "That's the most hopeful thing I've heard so far." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." +msgid "Same way you got yours, I bet." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Same way you got yours, I bet." +msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192861,19 +186850,19 @@ msgid "You're disgusting." msgstr "Du bist ekelerregend." #: lang/json/talk_topic_from_json.py -msgid "Insulting people who could help you is unlikely to aid survival." +msgid "I'm very sorry to tell you this, but you should look in a mirror." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm very sorry to tell you this, but you should look in a mirror." +msgid "Insulting people who could help you is unlikely to aid survival." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can't believe my eyes. Please get me outta here…" +msgid "Hey, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey, ." +msgid "I can't believe my eyes. Please get me outta here…" msgstr "" #: lang/json/talk_topic_from_json.py @@ -192899,7 +186888,9 @@ msgid "Sounds good, Barry." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello Ma'am, what brings you here?" +msgid "" +"I see that badge, I think you need to keep on walking, straight off this " +"property." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192907,9 +186898,7 @@ msgid "Hello Sir, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need to keep on walking, straight off this " -"property." +msgid "Hello Ma'am, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -192983,16 +186972,16 @@ msgstr "" msgid "Where can I find Chris?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hi, what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I see that badge. You need to leave our land, my relatives have no fondness" " for Marshals." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi, what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hi, Your dad asked me to come find you, said you've been looking for your " @@ -193084,7 +187073,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi, what brings you here?" +msgid "Is that a U.S. Marshal's badge you're wearing?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -193092,7 +187081,7 @@ msgid "Hello, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Is that a U.S. Marshal's badge you're wearing?" +msgid "Hi, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -193197,7 +187186,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Ask away." -msgstr "" +msgstr "Trotzdem fragen." #: lang/json/talk_topic_from_json.py msgid "Tell me about your husband, is he around?" @@ -193386,11 +187375,11 @@ msgid "That's all for now. I'd best get going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello, We don't see many people these days." +msgid "Leave our property, Marshal." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Leave our property, Marshal." +msgid "Hello, We don't see many people these days." msgstr "" #: lang/json/talk_topic_from_json.py @@ -193589,13 +187578,8 @@ msgid "Tell me about your dad." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Hey, ich weiß nicht, wie zur Hölle du hier nach unten gekommen sind, aber " -"wenn du irgendeine Form von Anstand hast, solltest du von hier verschwinden," -" solange du noch kannst." +msgid "Marshal, I hope you're here to assist us." +msgstr "Marshal, ich hoffe, dass du hier bist, um uns zu helfen." #: lang/json/talk_topic_from_json.py msgid "" @@ -193607,8 +187591,13 @@ msgstr "" " solange du noch kannst." #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Marshal, ich hoffe, dass du hier bist, um uns zu helfen." +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Hey, ich weiß nicht, wie zur Hölle du hier nach unten gekommen sind, aber " +"wenn du irgendeine Form von Anstand hast, solltest du von hier verschwinden," +" solange du noch kannst." #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" @@ -193690,16 +187679,16 @@ msgid "Whatever they did it must have worked since we are still alive…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here… you should leave." -msgstr "" +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Marshal, ich bin doch etwas überrascht, dich hier zu sehen." #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here… you should leave." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Marshal, ich bin doch etwas überrascht, dich hier zu sehen." +msgid "Ma'am you are not authorized to be here… you should leave." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." @@ -193746,6 +187735,22 @@ msgstr "" "Kommunikationsnetzwerks zu bewahren. Wir hoffen, dass wir ein paar Meldungen" " im Klartext aufnehmen können." +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Hallo, Marshal!" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Marshal, ich fürchte, ich kann jetzt nicht reden." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "Ich bin nicht der Verantwortliche hier, Marshal." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "Ich sollte alle Fragen der Führung übergeben, Marshal." + #: lang/json/talk_topic_from_json.py msgid "Hey, citizen… I'm not sure you belong here." msgstr "" @@ -193760,16 +187765,6 @@ msgstr "" msgid "If you need something you'll need to talk to someone else." msgstr "Wenn du etwas brauchst, musst du mit jemand anderem reden." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Gnä’ Frau" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Hey, Fräulein, glaubst du nicht, dass es sicherer wäre, wenn du mich " -"begleiten würdest?" - #: lang/json/talk_topic_from_json.py msgid "Sir." msgstr "Sir." @@ -193781,20 +187776,14 @@ msgstr "" "einzuschreiben." #: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Hallo, Marshal!" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Marshal, ich fürchte, ich kann jetzt nicht reden." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "Ich bin nicht der Verantwortliche hier, Marshal." +msgid "Ma'am" +msgstr "Gnä’ Frau" #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "Ich sollte alle Fragen der Führung übergeben, Marshal." +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" +"Hey, Fräulein, glaubst du nicht, dass es sicherer wäre, wenn du mich " +"begleiten würdest?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me…" @@ -193851,16 +187840,15 @@ msgid "I've no use for weaklings. Run. Now." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Please, help me. I need food." -msgstr "Bitte hilf mir. Ich brauche Essen." +msgid "" +"So, any luck with convincing the others to come on your crazy adventure yet?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Please, help me. I need food. Aren't you their sheriff? Can't you help " -"me?" +"I'm sorry to say it after all you've done for me, but… I don't suppose " +"you've got anything to eat?" msgstr "" -"Bitte hilf mir. Ich brauche etwas zu essen. Bist du nicht deren Sheriff? " -"Kannst du mir nicht helfen?" #: lang/json/talk_topic_from_json.py msgid "Thank you again. I really appreciate the food." @@ -193868,14 +187856,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm sorry to say it after all you've done for me, but… I don't suppose " -"you've got anything to eat?" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" msgstr "" +"Bitte hilf mir. Ich brauche etwas zu essen. Bist du nicht deren Sheriff? " +"Kannst du mir nicht helfen?" #: lang/json/talk_topic_from_json.py -msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" -msgstr "" +msgid "Please, help me. I need food." +msgstr "Bitte hilf mir. Ich brauche Essen." #: lang/json/talk_topic_from_json.py msgid "" @@ -193894,18 +187883,18 @@ msgstr "Geh weg von mir." #: 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." +"here as long as I keep it clean and don't make a fuss, but I'm reduced to " +"begging to survive." msgstr "" -"Sie lassen mich nicht rein. Sie sagen, dass sie zu voll sind. Ich darf " -"hier draußen campen, solange ich es sauber halte und keinen großen Wirbel " -"mache, aber ich bin so hungrig." #: 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 reduced to " -"begging to survive." +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." msgstr "" +"Sie lassen mich nicht rein. Sie sagen, dass sie zu voll sind. Ich darf " +"hier draußen campen, solange ich es sauber halte und keinen großen Wirbel " +"mache, aber ich bin so hungrig." #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" @@ -194011,16 +188000,16 @@ msgid "" "hurry to face that again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " "think you realize how useless I am in this world." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I'm too hungry to make a big decision like that." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." msgstr "" @@ -194067,12 +188056,12 @@ msgstr "" "Hab ich dir was über Pappkarton erzählt, mein Freund? Hast du welchen?" #: lang/json/talk_topic_from_json.py -msgid "" -"How's things with you? My cardboard collection is getting quite impressive." +msgid "We've done it! We've solved the list!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "We've done it! We've solved the list!" +msgid "" +"How's things with you? My cardboard collection is getting quite impressive." msgstr "" #: lang/json/talk_topic_from_json.py @@ -194104,13 +188093,13 @@ msgid "Do you need something to eat?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm real hungry and they put drugs in most of the food. I can see " -"you're not like that." +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." msgstr "" #: lang/json/talk_topic_from_json.py @@ -194212,15 +188201,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's it! I'm just gonna need a little time to get it all set up. Thanks." -" You've helped me a lot. I'm feeling much more myself with all this to " -"keep me going." +"Well… I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well… I had it all pretty together, but the others have left, and now the " -"masters won't let me build my sanctuary. Can you help me figure them out?" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." msgstr "" #: lang/json/talk_topic_from_json.py @@ -194240,18 +188229,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Don't bother with these assholes." -msgstr "Kümmere dich nicht um diese Arschlöcher." +msgid "Fuck off, dickwaddle." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there, not-asshole. Good to see you again." +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " -"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" -" cranky. We cool?" +msgid "Hey there. Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py @@ -194261,16 +188247,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." +msgid "" +"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " +"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" +" cranky. We cool?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgid "Hey there, not-asshole. Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." -msgstr "" +msgid "Don't bother with these assholes." +msgstr "Kümmere dich nicht um diese Arschlöcher." #: lang/json/talk_topic_from_json.py msgid "What's up?" @@ -194558,12 +188547,6 @@ msgid "" "that?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I dunno, scientific interest? If you don't bring me anything, no worries. " -"I'm positively swimming in entertainment here, as you can see." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "If you get me a sample, I'll join your crazy camp expedition. Hell, if you " @@ -194572,6 +188555,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -194614,14 +188603,14 @@ msgstr "" msgid "I'll see what I can do." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hey, are you a big fan of survival of the fittest?" -msgstr "Hey, was hältst du vom Prinzip des Überleben des Stärkeren?" - #: lang/json/talk_topic_from_json.py msgid "Thanks again for the grub, my friend." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "Hey, was hältst du vom Prinzip des Überleben des Stärkeren?" + #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" msgstr "Warum fragst du?" @@ -194640,17 +188629,17 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " -"Help a poor sickly soul out?" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." msgstr "" -"Denn ich bin bestimmt nicht stark, also harre ich hier aus, bis ich zu Tode " -"verhungere. Kannst du einer armen schwachen Seele helfen?" #: lang/json/talk_topic_from_json.py msgid "" -"Oh you know, the usual: sittin' out here until I starve to death, playin' " -"cards with Dave, that kinda thing." +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" msgstr "" +"Denn ich bin bestimmt nicht stark, also harre ich hier aus, bis ich zu Tode " +"verhungere. Kannst du einer armen schwachen Seele helfen?" #: lang/json/talk_topic_from_json.py msgid "I could maybe help you out… want something to eat?" @@ -194673,12 +188662,12 @@ msgid "Why are you camped out here if they won't let you in?" msgstr "Warum kampierst du hier draußen, wenn sie dich nicht hereinlassen?" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgid "That's awful kind of you, you really are a wonderful person." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's awful kind of you, you really are a wonderful person." +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." msgstr "" #: lang/json/talk_topic_from_json.py @@ -194966,10 +188955,6 @@ msgstr "" msgid "What's your take on the situation here?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, uh… hi. You look new. I'm Aleesha." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." msgstr "Oh, hey, du schon wieder." @@ -194982,6 +188967,10 @@ msgstr "" msgid "Aw hey, look who's back." msgstr "Sieh mal an, wer wieder da ist." +#: lang/json/talk_topic_from_json.py +msgid "Oh, uh… hi. You look new. I'm Aleesha." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" msgstr "Schön dich zu sehen, Kind. Was ist los?" @@ -194999,16 +188988,16 @@ msgid "Hi Aleesha. I can't stay to talk." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm fourteen." -msgstr "Ich bin kein Kind, ok? Ich bin vierzehn." +msgid "I'm not a kid, okay? I'm sixteen." +msgstr "Ich bin kein Kind, ok? Ich bin sechzehn." #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." msgstr "Ich bin kein Kind, ok? Ich bin fünfzehn" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm sixteen." -msgstr "Ich bin kein Kind, ok? Ich bin sechzehn." +msgid "I'm not a kid, okay? I'm fourteen." +msgstr "Ich bin kein Kind, ok? Ich bin vierzehn." #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" @@ -195018,19 +189007,6 @@ msgstr "Tschuldigung, so meinte ich das nicht. Was ist los?" msgid "Sorry, I didn't mean anything by it. I'll be on my way." msgstr "Tschuldigung, so meinte ich das nicht. Ich bin schon unterwegs." -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know what's up. I'm not sure what we've even doing here. They say " -"we're supposed to wait until we can be moved to the shelter downstairs, but " -"we've been here days and there's no word on how long we'll be waiting. It's" -" all so stupid, and nobody can tell me anything." -msgstr "" -"Ich weiß nicht, was los ist. Ich bin mir nicht sicher, was wir hier " -"eigentlich machen. Sie sagen, wir sollten hier warten, bis wir zum " -"Unterschlupf treppab umziehen können, aber wir waren hier tagelang und es " -"gab keine Erklärung darüber, wie lange wir warten werden. Es ist alles so " -"traurig, und niemand kann mir etwas sagen." - #: lang/json/talk_topic_from_json.py msgid "" "We're just standing around here waiting, like a bunch of idiots. We're " @@ -195045,6 +189021,19 @@ msgstr "" "was wir hier tun. Ich habe all die Bücher gelesen und es gibt Zombies da " "draußen, also stecken wir hier fest. Nachts können wir sie hören." +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't know what's up. I'm not sure what we've even doing here. They say " +"we're supposed to wait until we can be moved to the shelter downstairs, but " +"we've been here days and there's no word on how long we'll be waiting. It's" +" all so stupid, and nobody can tell me anything." +msgstr "" +"Ich weiß nicht, was los ist. Ich bin mir nicht sicher, was wir hier " +"eigentlich machen. Sie sagen, wir sollten hier warten, bis wir zum " +"Unterschlupf treppab umziehen können, aber wir waren hier tagelang und es " +"gab keine Erklärung darüber, wie lange wir warten werden. Es ist alles so " +"traurig, und niemand kann mir etwas sagen." + #: lang/json/talk_topic_from_json.py msgid "" "You can't just go asking people questions like that nowadays. I'm a " @@ -195082,8 +189071,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." +msgid "Hello again, gorgeous" msgstr "" #: lang/json/talk_topic_from_json.py @@ -195093,7 +189081,8 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello again, gorgeous" +msgid "" +"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195123,33 +189112,33 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Now that you are here, everything. Is there anything Alonso can… *do for " -"you*?" +"Well, it's a lot better now that you're here. Nice to see a familiar face." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well, it's a lot better now that you're here. Nice to see a familiar face." +"Now that you are here, everything. Is there anything Alonso can… *do for " +"you*?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Alonso cannot help himself, in the face of someone so fine as you." +msgid "You know me, I gotta be me, right?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You know me, I gotta be me, right?" +msgid "Alonso cannot help himself, in the face of someone so fine as you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " +"Aw man, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw man, why you gotta be like that? I'm just tryin' to get an air of " +"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" @@ -195178,12 +189167,6 @@ msgstr "" msgid "Thanks. I'd better get going." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Alonso does not wish to talk about the past, only the future. There are " -"dark days ahead, but perhaps together we can bring a little light?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I'm tryin' ta forget, y'know? Don't like thinkin' about the past. Better " @@ -195192,8 +189175,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here in the center, Alonso is a bit lonely. We get a few brave, strong " -"travelers like yourself, though, and seeing them brightens Alonso's day." +"Alonso does not wish to talk about the past, only the future. There are " +"dark days ahead, but perhaps together we can bring a little light?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -195203,8 +189186,10 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, another new face. Hello. I am Boris." -msgstr "Ah, ein weiteres neues Gesicht. Hallo. Ich bin Boris." +msgid "" +"Here in the center, Alonso is a bit lonely. We get a few brave, strong " +"travelers like yourself, though, and seeing them brightens Alonso's day." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, well. I'm glad you are back." @@ -195218,6 +189203,10 @@ msgstr "Hallo zurück, mein Freund." msgid "It is good to see you again." msgstr "Es ist schön, dich wieder zu sehen." +#: lang/json/talk_topic_from_json.py +msgid "Ah, another new face. Hello. I am Boris." +msgstr "Ah, ein weiteres neues Gesicht. Hallo. Ich bin Boris." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." msgstr "" @@ -195286,6 +189275,13 @@ msgstr "" msgid "I'm sorry. I'd better get going." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, now that you mention it, with the back bay cleared I could probably " +"set up back there and start work. I'll think about it, get back to me " +"later." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "There isn't much to do with a hammer and a saw here indoors, and working " @@ -195296,13 +189292,6 @@ msgid "" "caravans bring food, so they get priority, I can't argue with that." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, now that you mention it, with the back bay cleared I could probably " -"set up back there and start work. I'll think about it, get back to me " -"later." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Everyone agrees this is bad. Sleeping on a cot on the floor, crowded in " @@ -195331,10 +189320,6 @@ msgstr "" msgid "Got any more bread I can trade flour for?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hi there. I'm Dana, nice to see a new face." -msgstr "Hallo. Ich bin Dana, schön, ein neues Gesicht zu sehen." - #: lang/json/talk_topic_from_json.py msgid "Hello, nice to see you again." msgstr "Hallo, nett, dich wiederzusehen." @@ -195343,6 +189328,10 @@ msgstr "Hallo, nett, dich wiederzusehen." msgid "It's good to see you're still around." msgstr "Gut zu sehen, dass es dich noch gibt." +#: lang/json/talk_topic_from_json.py +msgid "Hi there. I'm Dana, nice to see a new face." +msgstr "Hallo. Ich bin Dana, schön, ein neues Gesicht zu sehen." + #: lang/json/talk_topic_from_json.py msgid "Dana, hey? Nice to meet you." msgstr "Dana, ja? Schön, dich zu sehen." @@ -195393,10 +189382,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do a bit. I got a sourdough starter going almost as soon as I arrived, " -"and it's making passable bread already. I cooked some up yesterday " -"actually, I could probably trade a loaf of fresh bread for, say, about eight" -" cups of flour." +"Not since I last saw you, sorry. Come by in another day or two and I'll try" +" to keep a loaf set aside for you, but they disappear fast." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195407,8 +189394,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Not since I last saw you, sorry. Come by in another day or two and I'll try" -" to keep a loaf set aside for you, but they disappear fast." +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight" +" cups of flour." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195430,12 +189419,6 @@ msgid "" "that's a lot more than most." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " -"not too bad honestly. Everyone here seems to like it." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Great, here's a loaf of the best damn sourdough bread in the world. I used " @@ -195457,6 +189440,12 @@ msgid "" "now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You seem pretty unhappy about the quality of your bread. Is there something" @@ -195486,6 +189475,10 @@ msgid "" "gonna murder someone soon, mark my words." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Huh. I've made a few friends here, but not so much as I'd stick around here" @@ -195493,10 +189486,6 @@ msgid "" "me. It does sound nice, if they're looking for more workers." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Have you heard anything back from the ranch about jobs yet?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " @@ -195534,13 +189523,13 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well now, good to see another new face! Welcome to the center, friend, I'm " -"Draco." +msgid "Always good to see you, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Always good to see you, friend." +msgid "" +"Well now, good to see another new face! Welcome to the center, friend, I'm " +"Draco." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195777,12 +189766,12 @@ msgid "Well then, I'll leave you here where it's safe." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Man, just imagine what I could do with a new guitar." +msgid "" +"My savior! My patron of the arts! You're always welcome here, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"My savior! My patron of the arts! You're always welcome here, friend." +msgid "Man, just imagine what I could do with a new guitar." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195882,14 +189871,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " -"up some Merch bucks for, say, five joints or joints-worth of the good stuff." +"Yeah, no worries, though. I'm good at the moment. Ask me again later and " +"maybe I'll have scrounged up some more cash for you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, no worries, though. I'm good at the moment. Ask me again later and " -"maybe I'll have scrounged up some more cash for you." +"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " +"up some Merch bucks for, say, five joints or joints-worth of the good stuff." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195940,12 +189929,6 @@ msgstr "" msgid "Is there anything I can do to help you out?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " -"meet new people but there are no beds to share." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "Hallo nochmal." @@ -195958,6 +189941,12 @@ msgstr "" msgid "Oh, hi." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you too, Fatima. I'm just passing through." msgstr "" @@ -196017,15 +190006,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." +msgid "Well, hello." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, hello." +msgid "Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Good to see you again." +msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196090,12 +190079,6 @@ msgid "" "look like we'll be here for the long term. If we live that long." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " -"call me Gunny." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hi." msgstr "Hi." @@ -196104,6 +190087,12 @@ msgstr "Hi." msgid "Hey again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " +"call me Gunny." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Gunny." msgstr "" @@ -196150,6 +190139,10 @@ msgid "" " I think my mom's on the fence." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you again." +msgstr "Nett dich wiederzusehen." + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." @@ -196157,10 +190150,6 @@ msgstr "" "Hi. Ich habe dich hier bisher noch nicht gesehen. Ich bin Jenny. Jenny " "Forcette." -#: lang/json/talk_topic_from_json.py -msgid "Nice to see you again." -msgstr "Nett dich wiederzusehen." - #: lang/json/talk_topic_from_json.py msgid "Nice meeting you. What are you doing on that computer?" msgstr "Schön dich kennenzulernen. Was machst du an dem Computer?" @@ -196352,20 +190341,6 @@ msgstr "" " genug zu Essen und wir sind nicht freiwillig zusammen. Ich weiß nicht, wie " "lange wir noch so bleiben können, bis jemand durchdreht." -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a bunch of us. We're starting to form a bit of a community. " -"Fatima and I work together a fair bit, and I've been hanging out with Dana, " -"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " -"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " -"What did you want to know?" -msgstr "" -"Nun, es gibt ein paar von uns. Wir sind im Begriff, eine Art Gemeinschaft zu" -" bilden. Fatima und ich arbeiten recht häufig zusammen und ich hänge oft mit" -" Dana, Draco und Aleesha ab. Ich kenne die Borichenko-Leute, die Singhs, " -"Vanessa, Uyen und Rhyzaea nicht so gut, aber wir haben genug geredet. Was " -"wolltest du wissen?" - #: lang/json/talk_topic_from_json.py msgid "" "For better or worse, we're a community now. Fatima and I work together a " @@ -196386,6 +190361,20 @@ msgstr "" "hier ist. Uyen und Rhyzaea streiten sich immer über Führungsentscheidungen, " "als ob sie solche Dinge tun könnten. Was wolltest du wissen?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" +"Nun, es gibt ein paar von uns. Wir sind im Begriff, eine Art Gemeinschaft zu" +" bilden. Fatima und ich arbeiten recht häufig zusammen und ich hänge oft mit" +" Dana, Draco und Aleesha ab. Ich kenne die Borichenko-Leute, die Singhs, " +"Vanessa, Uyen und Rhyzaea nicht so gut, aber wir haben genug geredet. Was " +"wolltest du wissen?" + #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" msgstr "Kannst du mir etwas über die Freien Händler erzählen?" @@ -196456,6 +190445,22 @@ msgid "" "hope that there's a future to be had." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I didn't get to know Boris, Garry, and Stan so well for the first while. " +"They kinda kept to themselves. Boris and Garry had just lost their son, you" +" know. It's pretty lucky that Stan was with them, he's Boris' little " +"brother. Together, they're a pretty good team. I feel bad for thinking " +"they were standoffish before. They probably do the most to pull their " +"weight around here whenever there's work to be done." +msgstr "" +"In der ersten Zeit lernte ich Boris, Garry und Stan nicht so sehr kennen. " +"Sie blieben meist unter sich. Da hatten Boris und Garry gerade ihren Sohn " +"verloren, verstehst du? Es ist großes Glück, dass Stan mit ihnen dabei war, " +"er ist Boris’ kleiner Bruder. Zusammen sind sie ein ziemlich gutes Team. Ich" +" fühle mich schlecht, dass ich glaubte, dass sie uns schlecht behandeln. Sie" +" machen hier vielleicht die meiste Arbeit, wenn es Arbeit zu erledigen gibt." + #: lang/json/talk_topic_from_json.py msgid "" "Boris and Garry are married, I guess. They kinda keep to themselves, they " @@ -196472,19 +190477,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I didn't get to know Boris, Garry, and Stan so well for the first while. " -"They kinda kept to themselves. Boris and Garry had just lost their son, you" -" know. It's pretty lucky that Stan was with them, he's Boris' little " -"brother. Together, they're a pretty good team. I feel bad for thinking " -"they were standoffish before. They probably do the most to pull their " -"weight around here whenever there's work to be done." +"The Singhs are really shy, and I think they feel pretty bad about making it " +"through this together. They're the only complete family I've seen since " +". That has to feel really weird, and I think it's made them " +"stick really close together. I think… I think they also just don't really " +"like any of us." msgstr "" -"In der ersten Zeit lernte ich Boris, Garry und Stan nicht so sehr kennen. " -"Sie blieben meist unter sich. Da hatten Boris und Garry gerade ihren Sohn " -"verloren, verstehst du? Es ist großes Glück, dass Stan mit ihnen dabei war, " -"er ist Boris’ kleiner Bruder. Zusammen sind sie ein ziemlich gutes Team. Ich" -" fühle mich schlecht, dass ich glaubte, dass sie uns schlecht behandeln. Sie" -" machen hier vielleicht die meiste Arbeit, wenn es Arbeit zu erledigen gibt." #: lang/json/talk_topic_from_json.py msgid "" @@ -196500,11 +190498,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"The Singhs are really shy, and I think they feel pretty bad about making it " -"through this together. They're the only complete family I've seen since " -". That has to feel really weird, and I think it's made them " -"stick really close together. I think… I think they also just don't really " -"like any of us." +"Vanessa… I'm doing my best, I really am, but we just do not get along. One " +"of these days one of us is probably going to brain the other with a tire " +"iron, and I'm just grateful I spend more time around the tire irons. Uyen " +"and Rhyzaea are both excellent people, and I genuinely like them, but I " +"can't stand this ongoing political bullshit they've got going on. Alonso is" +" just a… he's… there's no polite word for what he is. A lot of the others " +"are fine with it, and okay, sure, I guess. John is a walking stereotype, " +"but he's a great poker buddy. I admit I kinda like him." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196520,15 +190521,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Vanessa… I'm doing my best, I really am, but we just do not get along. One " -"of these days one of us is probably going to brain the other with a tire " -"iron, and I'm just grateful I spend more time around the tire irons. Uyen " -"and Rhyzaea are both excellent people, and I genuinely like them, but I " -"can't stand this ongoing political bullshit they've got going on. Alonso is" -" just a… he's… there's no polite word for what he is. A lot of the others " -"are fine with it, and okay, sure, I guess. John is a walking stereotype, " -"but he's a great poker buddy. I admit I kinda like him." +msgid "Howdy, pardner." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196536,10 +190529,6 @@ msgid "" "Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Howdy, pardner." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, John." msgstr "" @@ -196594,11 +190583,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello ma'am. I am Mandeep Singh." +msgid "Hello sir. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello sir. I am Mandeep Singh." +msgid "Hello ma'am. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196641,15 +190630,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." +msgid "Hi there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there." +msgid "Oh, hello there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, hello there." +msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196850,12 +190839,12 @@ msgid "What brings you around here? We don't see a lot of new faces." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgid "Need to talk?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Need to talk?" +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196946,17 +190935,17 @@ msgid "Do you want to talk about your story?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " -"Stan." +msgid "Hm? Oh, hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hm? Oh, hi." +msgid "...Hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "...Hi." +msgid "" +"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " +"Stan." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197068,6 +191057,10 @@ msgstr "" msgid "Hmm, can we change this shave a little please?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Oh, you're back." +msgstr "Oh, da bist du ja wieder." + #: lang/json/talk_topic_from_json.py msgid "" "Oh, great. Another new mouth to feed? Just what we need. Well, I'm " @@ -197076,10 +191069,6 @@ msgstr "" "Oh, fantastisch. Noch ein Maul zu stopfen? Genau was wir gebraucht haben. " "Jedenfalls, ich bin Vanessa." -#: lang/json/talk_topic_from_json.py -msgid "Oh, you're back." -msgstr "Oh, da bist du ja wieder." - #: lang/json/talk_topic_from_json.py msgid "I'm not a new mouth to feed, but nice to meet you too." msgstr "" @@ -197120,14 +191109,6 @@ msgstr "" msgid "Could you give me a haircut?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"You want the sarcastic version, or the really sarcastic version? I'm stuck " -"in a dank shitty brick building with two dozen strangers, the world's dead, " -"and there's not enough food to go around. Why don't you fuckin' figure it " -"out?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I'm stuck in a dank shitty brick building with two dozen strangers, " @@ -197136,6 +191117,14 @@ msgid "" "to keeping my belly full. People like getting a good haircut." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I can see you need one, but last time I used these shears it was to stab a " @@ -197313,15 +191302,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Even once we got things sorted out, there weren't enough beds for everyone, " -"and definitely not enough supplies. These are harsh times. We're doing what" -" we can for those folks… at least they've got shelter." +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do. I don't know what you did to convince them to move out, but our " -"supply chain and I both thank you. I hope it wasn't too unseemly." +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks… at least they've got shelter." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197716,14 +191705,14 @@ msgstr "Bleib zivil oder es wird schmerzhaft." msgid "Just on watch, move along." msgstr "Ich bin nur auf Wache, weitergehen." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "Gnä’ Frau, Sie sollten wirklich nicht hier draußen reisen." - #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" msgstr "Es ist gefährlich da draußen, nicht wahr?" +#: lang/json/talk_topic_from_json.py +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "Gnä’ Frau, Sie sollten wirklich nicht hier draußen reisen." + #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center…" msgstr "" @@ -197752,14 +191741,14 @@ msgstr "" msgid "Well, I'd better be going. Bye." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Willkommen…" - #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." msgstr "Willkommen, Marshal…" +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Willkommen…" + #: lang/json/talk_topic_from_json.py msgid "" "Before you say anything else, we're full. We don't have the space, nor the " @@ -198006,14 +191995,14 @@ msgid "" "attacked by zombie hordes, as you might guess." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "Bürger…" - #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Marshal…" +#: lang/json/talk_topic_from_json.py +msgid "Citizen..." +msgstr "Bürger…" + #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" msgstr "Kann ich gegen Vorräte handeln?" @@ -198083,14 +192072,14 @@ msgstr "" " hab nicht die Mittel, um von dir zu kaufen. Ich glaube nicht, dass du " "spenden willst." -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Hey, du siehst wichtig aus." - #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "Das ist wirklich eine glänzende Dienstmarke, die Sie da haben!" +#: lang/json/talk_topic_from_json.py +msgid "Heh, you look important." +msgstr "Hey, du siehst wichtig aus." + #: lang/json/talk_topic_from_json.py msgid "I'm actually new." msgstr "Ich bin eigentlich neu hier." @@ -198165,10 +192154,6 @@ msgid "" "it." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate… mutations. This was an accident." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Same way you got yours, I bet. Keep quiet about it, some people here look " @@ -198177,6 +192162,10 @@ msgstr "" "Genauso, wie ich deins gekriegt habe, glaub ich. Sag besser kein Wort davon," " einige Leute hier schauen auf Leute wie uns herab." +#: lang/json/talk_topic_from_json.py +msgid "Ssh. Some people in here hate… mutations. This was an accident." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" msgstr "Es tut mir leid, dass ich frage." @@ -198203,22 +192192,22 @@ msgid "" "trade?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "Geh zum Teufel!" - #: lang/json/talk_topic_from_json.py msgid "As if you're one to talk. Screw You." msgstr "Als ob man mit dir reden könnte. Geh zum Teufel!" #: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "Hö? Ich dachte, ich hätte jemand Neues gerochen. Kann ich dir helfen?" +msgid "Screw You!" +msgstr "Geh zum Teufel!" #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest… please don't arrest me." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Huh, thought I smelled someone new. Can I help you?" +msgstr "Hö? Ich dachte, ich hätte jemand Neues gerochen. Kann ich dir helfen?" + #: lang/json/talk_topic_from_json.py msgid "You… smelled me?" msgstr "" @@ -198541,16 +192530,6 @@ msgstr "Ich denke, du bist der Boss." msgid "Glad to have you aboard." msgstr "Ich bin froh, dich an Bord zu haben." -#: lang/json/talk_topic_from_json.py -msgid "" -"Hold there. I don't care how you got access to this location, but you are " -"coming no further. Go away." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "We haven't changed our mind. Go away." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" msgstr "" @@ -198631,6 +192610,16 @@ msgstr "" msgid "If/you speak to/understand… you/me. Yes?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "We haven't changed our mind. Go away." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hold there. I don't care how you got access to this location, but you are " +"coming no further. Go away." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Wait! What??" msgstr "" @@ -198900,14 +192889,6 @@ msgstr "" msgid "Keep it civil, merc." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Here to trade, I hope?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Safe travels, scavenger." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Still plenty of outlaws in the roads, perhaps you should tend to your job, " @@ -198923,10 +192904,11 @@ msgid "Oh, a U.S. marshal, how quaint." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"We have been supplying this lab here with food from a few hunting and " -"farming communities nearby. The roads are though and dangerous, but it " -"makes good money, and beats scavenging the cities for scraps." +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198935,6 +192917,13 @@ msgid "" "fair deal?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Keep safe, then." msgstr "" @@ -199176,16 +193165,16 @@ msgid "I'll talk with them then…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "Guten Morgen, wie kann ich helfen?" +msgid "Can I help you, marshal?" +msgstr "Kann ich dir helfen, Marshal?" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" msgstr "Guten Morgen, wie kann ich helfen?" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "Kann ich dir helfen, Marshal?" +msgid "Morning ma'am, how can I help you?" +msgstr "Guten Morgen, wie kann ich helfen?" #: lang/json/talk_topic_from_json.py msgid "" @@ -199320,17 +193309,17 @@ msgstr "Was für Jobs hast du für mich?" msgid "Not now." msgstr "Jetzt nicht." -#: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." -msgstr "" -"Ich kann mir dich oder deine Begleiter ansehen, wenn ihr verletzt seid." - #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." msgstr "" "Komm später wieder zurück, ich werde mich zuerst um ein paar Dinge kümmern " "müssen." +#: lang/json/talk_topic_from_json.py +msgid "I can take a look at you or your companions if you are injured." +msgstr "" +"Ich kann mir dich oder deine Begleiter ansehen, wenn ihr verletzt seid." + #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." msgstr "[200 $, 30min] Ich will, das du mich verarztest." @@ -199622,15 +193611,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "New test subjects! I'm so glad you showed up!" +msgid "What did you bring me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What did you bring me?" +msgid "Do you smell something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you smell something?" +msgid "New test subjects! I'm so glad you showed up!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -199706,6 +193695,205 @@ msgstr "" msgid "This is not reassuring." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more" +" fearsome enforcer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided" +" to use tactical nukes and buy time for the retreat." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that" +" were happening in the city, they were beneath me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security" +" notices piled up about routes through the city to avoid. Finally, one day " +"I came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only" +" chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"But they built me with the ability to survive a world beyond imagining." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked" +" for the government or a corporation." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come" +" back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons" +" afraid of mutants." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "Hey, Sammler." @@ -199806,11 +193994,11 @@ msgid "I must purge this place before I can move on." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Huh? *mumble mumble* … Who are you?" +msgid "Oh, you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, you again." +msgid "Huh? *mumble mumble* … Who are you?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -199822,11 +194010,11 @@ msgid "And leave my tower and all my research? I think not." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you seek power as well?" +msgid "Ah, hello again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, hello again." +msgid "Do you seek power as well?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -201427,7 +195615,7 @@ msgid " hack at %s with a vicious strike" msgstr " hackt auf %s ein mit einem Barbarenschlag" #: lang/json/technique_from_json.py -msgid "Deathblow" +msgid "Mordhau" msgstr "" #: lang/json/technique_from_json.py @@ -202099,65 +196287,65 @@ msgid " smashes %s with a pressurized slam" msgstr " zerschmettert %s mit einem druckvollen Schlag" #: lang/json/technique_from_json.py -msgid "Shimmer Flurry" +msgid "Tipped Intent" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a blindingly fast slash at %s" +msgid "You quickly jab your weapon at %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " slashes at %s" +msgid " quickly jabs their weapon at %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Tipped Intent" +msgid "Shimmer Flurry" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You swiftly jab your weapon at %s" +msgid "" +"You release a blindingly fast low slash at %s and topple them off balance" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " swiftly jabs their weapon at %s" +msgid " slashes at %s and shoves them down" msgstr "" #: lang/json/technique_from_json.py -msgid "Decisive Blow" +msgid "Mirage Slash" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a debilitating swipe at %s" +msgid "" +"You hold your blade taut, and then launch a piercing slash on %s's top half" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " releases a debilitating swipe at %s" +msgid " lands a piercing blow on %s's face" msgstr "" #: lang/json/technique_from_json.py -msgid "End Slash" +msgid "The Point" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "" -"You envision the tension of a fully drawn bow and then launch a piercing " -"blow on %s's top half" +msgid "You drive your weapon down into %s's vulnerable center mass" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " lands a piercing blow on %s's face" +msgid " lands a deadly blow on %s's unguarded center mass" msgstr "" #: lang/json/technique_from_json.py -msgid "Harsh Reprimand" +msgid "Reprimand" msgstr "" #: lang/json/technique_from_json.py @@ -202227,17 +196415,17 @@ msgid " swiftly impales their fingers into %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Joint Pain" +msgid "Shifting Feint" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You explosively jab your weapon at %s joints" +msgid "You fake a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " explosively jabs at %s" +msgid " fakes a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py @@ -202261,8 +196449,8 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "" -"You envision a gathering tempest in and then release it's energy on %s's top" -" half" +"You envision a gathering tempest and then release it's energy on %s's top " +"half" msgstr "" #: lang/json/technique_from_json.py @@ -202314,8 +196502,8 @@ msgstr "" #. ~ Description for BERSERK #: lang/json/technique_from_json.py msgid "" -"50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " -"reduces action cost and adds overall damage (S)" +"50% AP cost, 77% DMG, Down (2), STR (SS) greatly reduces AP cost and adds " +"(S) DMG" msgstr "" #: lang/json/technique_from_json.py @@ -202335,8 +196523,8 @@ msgstr "" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py msgid "" -"15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," -" and adds a (A) damage bonus, min 4 melee" +"15% AP cost, 35% DMG, wide arc, STR (SS) reduces AP cost, and adds (A) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -202356,8 +196544,8 @@ msgstr "" #. ~ Description for BISECTION #: lang/json/technique_from_json.py msgid "" -"Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " -"reduces action cost and increases overall (B) damage, min 2 melee" +"Crit!, 35% AP cost, 115% DMG, STR (SS) and DEX (SS) reduces AP cost and PER " +"(B) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -202372,9 +196560,7 @@ msgstr " hackt auf %s" #. ~ Description for HOOK #: lang/json/technique_from_json.py -msgid "" -"85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " -"reduces action cost" +msgid "85% AP, 88% DMG, Down (2), STR (C) reduces AP cost" msgstr "" #: lang/json/technique_from_json.py @@ -202389,8 +196575,8 @@ msgstr "" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py msgid "" -"75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " -"and adds a (C) damage bonus, min 4 melee" +"75% AP, 60% DMG, WIDE AOE, STR (S) reduces AP cost, and adds a (C) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -202405,8 +196591,8 @@ msgstr "" #. ~ Description for CHOP #: lang/json/technique_from_json.py msgid "" -"Crit only, 118% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E)" -" reduces action cost and increases overall (B) damage, min 2 melee" +"CRIT!, 118% AP, 125% Cut/Stab, DEX (D) and PER (E) reduces AP cost and adds " +"(B) DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -202421,8 +196607,8 @@ msgstr "" #. ~ Description for SMASH #: lang/json/technique_from_json.py msgid "" -"Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " -"(D) reduces action cost and increases overall (C) damage, min 2 melee" +"CRIT!, 110% AP, 120% Bash, DEX (C) and STR (D) reduces AP cost and adds (C) " +"Arpen, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -202442,8 +196628,7 @@ msgstr "" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py msgid "" -"Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" -" reduces action cost, min melee 1" +"Crit!, 120% AP, 125% damage, Stun (1), STR (A) reduces AP cost, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -202463,8 +196648,8 @@ msgstr "" #. ~ Description for SHOVE #: lang/json/technique_from_json.py msgid "" -"65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " -"(D) and DEX (E) reduce action cost" +"65% AP, REDUCED DMG, knockback (2), stun (1), STR (D) and DEX (E) reduce AP " +"cost" msgstr "" #: lang/json/technique_from_json.py @@ -202484,8 +196669,8 @@ msgstr "" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py msgid "" -"75% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " -"(B) and DEX (C) reduce action cost, min melee 1" +"75% AP, 110% DMG, knockback (3), STR (B) and DEX (C) reduce AP cost, melee " +"(1)" msgstr "" #: lang/json/technique_from_json.py @@ -202499,7 +196684,7 @@ msgstr "" #. ~ Description for TEAR #: lang/json/technique_from_json.py -msgid "Crit only, 110% Cut, 115% Stab, min melee 2" +msgid "CRIT!, 115% Cut/Stab, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -202518,8 +196703,7 @@ msgstr "" #. ~ Description for THRUST #: lang/json/technique_from_json.py -msgid "" -"110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" +msgid "110% Stab DMG, STR (E) and PER (D) adds DMG, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -202539,8 +196723,7 @@ msgstr "" #. ~ Description for LUNGE #: lang/json/technique_from_json.py msgid "" -"Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " -"provides bonus damage, min 2 melee" +"CRIT!, 115% Stab DMG, Strength (D) and Perception (D) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -202560,8 +196743,7 @@ msgstr "" #. ~ Description for PROD #: lang/json/technique_from_json.py msgid "" -"66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " -"DEX (C) reduces action cost, min 3 melee" +"66% AP, 70% Stab DMG, PER (C) adds Arpen, DEX (B) reduces AP cost, melee (3)" msgstr "" #: lang/json/technique_from_json.py @@ -202580,19 +196762,120 @@ msgstr "" #. ~ Description for PROBE #: lang/json/technique_from_json.py +msgid "80% AP, PER (C) adds DMG and Arpen (E), melee (3)" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You probe at %s's openings with your weapon" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " probes their weapon at %s " +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format msgid "" -"80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" -" also provides armor pierce (E), min 3 melee" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You probe %s's openings" +msgid "You carve an arc through %s and those nearby" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " probe %s " +msgid " carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a spin attack against %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleashes a spin attack against %s and those nearby" msgstr "" #: lang/json/technique_from_json.py @@ -205684,19 +199967,6 @@ msgstr "" "aufnehmen und in einfache Grundformen pressen kann, um diese dann " "anschließend zur Fertigung verwenden zu können." -#: lang/json/terrain_from_json.py -msgid "gasoline pump" -msgstr "Benzinzapfsäule" - -#. ~ Description for gasoline pump -#: lang/json/terrain_from_json.py -msgid "" -"Precious GASOLINE. The former world bowed to their petroleum god as it led " -"them to their ruin. There's plenty left over to fuel your inner road " -"warrior. If this gas dispenser doesn't give up the goods for free, you may " -"have to pay at a nearby terminal." -msgstr "" - #: lang/json/terrain_from_json.py msgid "fuel tank" msgstr "" @@ -205715,6 +199985,19 @@ msgstr "" msgid "A broken tank which was filled with gasoline." msgstr "" +#: lang/json/terrain_from_json.py +msgid "gasoline pump" +msgstr "Benzinzapfsäule" + +#. ~ Description for gasoline pump +#: lang/json/terrain_from_json.py +msgid "" +"Precious GASOLINE. The former world bowed to their petroleum god as it led " +"them to their ruin. There's plenty left over to fuel your inner road " +"warrior. If this gas dispenser doesn't give up the goods for free, you may " +"have to pay at a nearby terminal." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "zerstörte Benzinzapfsäule" @@ -205726,6 +200009,16 @@ msgid "" "the liquid gold." msgstr "" +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "" + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "Dieselzapfsäule" @@ -207124,7 +201417,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "adobe wall" -msgstr "" +msgstr "Lehmwand" #. ~ Description for adobe wall #: lang/json/terrain_from_json.py @@ -208560,17 +202853,6 @@ msgid "" "much good here though. Perhaps it could be salvaged for other purposes." msgstr "" -#: lang/json/terrain_from_json.py -msgid "LEGACY hydroponics unit" -msgstr "" - -#. ~ Description for LEGACY hydroponics unit -#: lang/json/terrain_from_json.py -msgid "" -"This is a deprecated hydroponics unit. Deconstruct it to receive your " -"materials back." -msgstr "" - #: lang/json/terrain_from_json.py msgid "burnt tree" msgstr "" @@ -208668,18 +202950,6 @@ msgstr "Sicherheitsbolzenfreigabe" msgid "bridge control" msgstr "Brückensteuerung" -#: lang/json/terrain_from_json.py -msgid "mass of blob feed" -msgstr "Blobfuttermasse" - -#: lang/json/terrain_from_json.py -msgid "squish!" -msgstr "»Matsch«." - -#: lang/json/terrain_from_json.py -msgid "mound of blob feed" -msgstr "Haufen aus Blobfutter" - #: lang/json/terrain_from_json.py msgid "singing sand" msgstr "" @@ -208854,6 +203124,10 @@ msgstr "Wagenhebe" msgid "self jacking" msgstr "Selbsthebe" +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "chiseling" msgstr "Meißel" @@ -208912,7 +203186,7 @@ msgstr "" #: lang/json/tool_quality_from_json.py msgid "lockpicking" -msgstr "" +msgstr "Schlossknacken" #: lang/json/tool_quality_from_json.py msgid "extraction" @@ -209079,14 +203353,6 @@ msgstr "Regenfänger" msgid "magic door" msgstr "" -#: lang/json/trap_from_json.py -msgid "light snare trap" -msgstr "leichte Fallstrickfalle" - -#: lang/json/trap_from_json.py -msgid "heavy snare trap" -msgstr "schwere Fallstrickfalle" - #: lang/json/vehicle_from_json.py msgid "work light" msgstr "Arbeitslicht" @@ -209619,62 +203885,10 @@ msgstr "Atomauto" msgid "Flaming Atomic Car" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Roadheader" -msgstr "" - #: lang/json/vehicle_from_json.py msgid "Floating disk" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Robotic Taxi" -msgstr "Roboter-Taxi" - -#: lang/json/vehicle_from_json.py -msgid "Armored Robot Carrier" -msgstr "gepanzerter Robotertransporter" - -#: lang/json/vehicle_from_json.py -msgid "Atomic Mini-Tank" -msgstr "Atomkleinpanzer" - -#: lang/json/vehicle_from_json.py -msgid "Light Tank" -msgstr "Leichter Panzer" - -#: lang/json/vehicle_from_json.py -msgid "Main Battle Tank" -msgstr "Hauptkampfpanzer" - -#: lang/json/vehicle_from_json.py -msgid "Self-Propelled Howitzer" -msgstr "Selbstfahrende Haubitze" - -#: lang/json/vehicle_from_json.py -msgid "Mobile Gun System" -msgstr "Mobiles Waffensystem" - -#: lang/json/vehicle_from_json.py -msgid "Bandit Bulldozer" -msgstr "Banditenbulldozer" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Planter Tractor" -msgstr "Schwerer Pflanztraktor" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Plow Tractor" -msgstr "Schwerer Pflügtraktor" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Reaper Tractor" -msgstr "Schwerer Erntetraktor" - -#: lang/json/vehicle_from_json.py -msgid "Infantry Fighting Vehicle" -msgstr "Infanteriekampffahrzeug" - #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" msgstr "montiertes Fusionsgewehr" @@ -209987,6 +204201,12 @@ msgstr "" msgid "A combustion engine. Burns fuel from a tank in the vehicle." msgstr "Ein Verbrennungsmotor. Verbrennt Treibstoff aus einem Fahrzeugtank." +#: lang/json/vehicle_part_from_json.py +msgid "" +"A combustion engine for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " @@ -210247,7 +204467,6 @@ msgstr "" "Fertigung nicht aus." #. ~ Description for {'str': 'floodlight'} -#. ~ Description for {'str': 'gel floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, circular light that illuminates the area outside the vehicle " @@ -210257,7 +204476,6 @@ msgstr "" "einen beachtlichen kreisrunden Bereich außerhalb des Fahrzeugs beleuchtet." #. ~ Description for {'str': 'directed floodlight'} -#. ~ Description for {'str': 'gel directed floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, directed light that illuminates a half-circular area outside " @@ -210270,7 +204488,6 @@ msgid "headlight" msgstr "Scheinwerfer" #. ~ Description for {'str': 'headlight'} -#. ~ Description for {'str': 'gel headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a narrow cone outside the vehicle when " @@ -210297,7 +204514,6 @@ msgid "wide angle headlight" msgstr "Weitwinkelscheinwerfer" #. ~ Description for {'str': 'wide angle headlight'} -#. ~ Description for {'str': 'gel wide angle headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a wide cone outside the vehicle when turned " @@ -210377,6 +204593,10 @@ msgstr "" "Aufladegeschwindigkeit verlangsamen. Extrem zerbrechlich und kann nicht " "gepanzert werden." +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -210595,14 +204815,14 @@ msgstr "" msgid "mounted A7 laser rifle" msgstr "montiertes A7-Lasergewehr" -#: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted M249" msgstr "montiertes M249" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M249S" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted gatling shotgun" msgstr "" @@ -210627,6 +204847,10 @@ msgstr "montiertes M240" msgid "mounted M60" msgstr "montiertes M60" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" msgstr "montierter Mark-19-Granatenwerfer" @@ -210671,7 +204895,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "reclining leather seat" -msgstr "" +msgstr "Umklappbarer Ledersitz" #. ~ Description for {'str': 'yoke and harness'} #: lang/json/vehicle_part_from_json.py @@ -211062,7 +205286,7 @@ msgstr "Handpaddel" #: lang/json/vehicle_part_from_json.py msgid "reins and tackle" -msgstr "" +msgstr "Zaumzeug" #. ~ Description for {'str': 'reins and tackle'} #: lang/json/vehicle_part_from_json.py @@ -211949,6 +206173,13 @@ msgstr "" msgid "A wooden wheel." msgstr "Ein Holzrad." +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "" @@ -211961,13 +206192,6 @@ msgid "" " makes it fragile." msgstr "" -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "crude plating" msgstr "" @@ -211979,10 +206203,6 @@ msgid "" "protective as proper armor, but it'll do if there's nothing else available." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "montierte Laserkanone" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -212044,105 +206264,6 @@ msgid "" "size." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "folding extra light quarterpanel" -msgstr "klappbare superleichte Seitenwand" - -#: lang/json/vehicle_part_from_json.py -msgid "foldable door" -msgstr "klappbare Türe" - -#: lang/json/vehicle_part_from_json.py -msgid "superalloy coating" -msgstr "Superlegierungsbeschichtung" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tactical shotgun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted heavy machinegun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted assault rifle" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted light machine gun" -msgstr "montiertes leichtes Maschinengewehr" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted automatic grenade launcher" -msgstr "" - -#. ~ Description for Balancer -#: lang/json/vehicle_part_from_json.py -msgid "A large and heavy metal drum for balancing a vehicle." -msgstr "" - -#. ~ Description for roadheader -#: lang/json/vehicle_part_from_json.py -msgid "" -"A large metal jagged metalhead, powered by the vehicle's engines. Use the " -"vehicle controls to turn it on or off. When turned on, it will stop the " -"vehicle unless it has a strong engine. When turned on, it will destroy " -"walls near it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "bulette plating" -msgstr "" - -#. ~ Description for orichalcum frame -#: lang/json/vehicle_part_from_json.py -msgid "" -"An expensive magical metal framework. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mana frame" -msgstr "" - -#. ~ Description for mana frame -#: lang/json/vehicle_part_from_json.py -msgid "A shape of pure mana that can float and carry items." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "robot_carrier" -msgstr "Roboterträger" - -#. ~ Description for robot_carrier -#: lang/json/vehicle_part_from_json.py -msgid "" -"A cargo space for carrying robots. 'e'xamine it to capture a robot next to " -"you, or to release the robot currently contained. When selecting a robot to" -" capture, choose its tile relative to you, not the part." -msgstr "" -"Ein Lagerraum zum Transport von Robotern. Unt[e]rsuche ihn, um einen Roboter" -" neben dir zu lagern, oder, um einen bereits enthaltenen Roboter " -"freizugeben. Wenn du einen Roboter zum Einlagern auswählen möchtest, wähle " -"das Feld relativ zu dir aus, nicht den Lagerraum selbst." - -#: lang/json/vehicle_part_from_json.py -msgid "120mm tank gun (AL)" -msgstr "120mm-Panzerkanone (AL)" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm RWS" -msgstr "120mm RWS" - -#: lang/json/vehicle_part_from_json.py -msgid "ATGM turret" -msgstr "ATGM-Geschützturm" - -#: lang/json/vehicle_part_from_json.py -msgid "30mm chaingun" -msgstr "30mm-Kettenkanone" - #: lang/json/vehicle_part_from_json.py msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" @@ -212152,75 +206273,10 @@ msgstr "" "Wasserkreislauf. Verbrennt Kohle aus einem Fahrzeug-Brennstofflager, um " "Dampf zu erzeugen." -#: lang/json/vehicle_part_from_json.py -msgid "mounted slingshot cannon" -msgstr "montierte Steinschleuderkanone" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted lacerator" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary cannon" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted pulse laser" -msgstr "montierter Pulslaser" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted turbolaser" -msgstr "montierter Turbolaser" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted ripper" -msgstr "montierter Schlitzer" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted scorpion ballista" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted speargun" -msgstr "montierte Harpune" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tesla cannon" -msgstr "montierte Teslakanone" - #: lang/json/vehicle_part_from_json.py msgid "cargo shelving" msgstr "" -#. ~ Description for {'str': 'solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. Will recharge the vehicle's " -"electrical power when exposed to the sun." -msgstr "" -"Ein Dutzend Solarmodule, die auf ein Fahrgestell montiert wurden, sie " -"reichen einige Meter hoch. Das hält die zerbrechlichen Module sicher von " -"jeglichen potentiellen Gefahren fern und erhöht die Effizienz aufgrund der " -"Fähigkeit, der Sonne zu folgen. Werden den Strom des Fahrzeugs aufladen, " -"wenn die Sonne auf sie scheint." - -#. ~ Description for {'str': 'upgraded solar array'} -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able track the sun. Will recharge the " -"vehicle's electrical power when exposed to the sun." -msgstr "" -"Ein Dutzend verbesserte Solarmodule, die auf ein Fahrgestell montiert " -"wurden, sie reichen einige Meter hoch. Das hält die zerbrechlichen Module " -"sicher von jeglichen potentiellen Gefahren fern und erhöht die Effizienz " -"aufgrund der Fähigkeit, der Sonne zu verfolgen. Werden den Strom des " -"Fahrzeugs aufladen, wenn die Sonne auf sie scheint." - #: lang/json/vehicle_part_from_json.py msgid "wiring" msgstr "Verdrahtung" @@ -212234,37 +206290,6 @@ msgstr "" "Ein langes Stück Hochleistungskupferkabel, nützlich, um Strom von einem Teil" " eines Fahrzeugs zu einem anderen Teil umzuleiten." -#: lang/json/vehicle_part_from_json.py -msgid "pocket dimension cargo" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "rubber treads" -msgstr "Gummiketten" - -#. ~ Description for {'str': 'rubber treads'} -#. ~ Description for {'str': 'steel treads'} -#. ~ Description for {'str': 'tank treads'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A section of continuous track, the kind mounted on construction vehicles and" -" military fighting vehicles. It acts as a wheel, and the broad surface " -"provides plenty of traction to move heavy vehicles off-road, but at the cost" -" of speed due to the heavy weight." -msgstr "" -"Ein Stück Raupenkette, wie man sie an Baufahrzeugen und militärischen " -"Kampffahrzeugen vorfindet. Sie wird wie ein Rad behandelt und die breite " -"Oberfläche bietet viel Reibung, um schwere Fahrzeuge querfeldein fahren zu " -"lassen, aber auf Kosten der Geschwindigkeit aufgrund des schweren Gewichts." - -#: lang/json/vehicle_part_from_json.py -msgid "steel treads" -msgstr "Stahlketten" - -#: lang/json/vehicle_part_from_json.py -msgid "tank treads" -msgstr "Panzerketten" - #: lang/json/vehicle_part_from_json.py msgid "mounted TDI Vector" msgstr "" @@ -212485,10 +206510,6 @@ msgstr "montiertes RM802" msgid "mounted RM88 battle rifle" msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary speargun" -msgstr "montierter drehbarer Speergeschützturm" - #: lang/json/vehicle_part_from_json.py msgid "mounted Ruger 10/22" msgstr "" @@ -212546,507 +206567,45 @@ msgid "mounted V29 laser" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel panel" -msgstr "Gelwand" - -#: lang/json/vehicle_part_from_json.py -msgid "gray wall" -msgstr "graue Wand" - -#. ~ Description for {'str': 'gray wall'} -#. ~ Description for {'str': 'ooze barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a vehicle wall. Keeps zombies outside the " -"vehicle and prevents people from seeing through it." -msgstr "" -"Ein lebendiger Blob, geformt zu einer Fahrzeugwand. Hält Zombies davon ab, " -"das Innere des Fahrzeugs zu betreten und hindert Leute daran, hindurch zu " -"sehen." - -#: lang/json/vehicle_part_from_json.py -msgid "gel quarterpanel" -msgstr "graue Seitenwand" - -#. ~ Description for {'str': 'gel quarterpanel'} -#. ~ Description for {'str': 'gray barricade'} -#. ~ Description for {'str': 'ooze screen'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a half-height vehicle wall. Keeps zombies " -"outside the vehicle but allows people to see over it." -msgstr "" -"Ein lebendiger Blob, geformt zu einer halbhohen Fahrzeugwand. Hält Zombies " -"außerhalb des Fahrzeugs, aber ermöglicht es Leuten, darüber zu sehen." - -#: lang/json/vehicle_part_from_json.py -msgid "gray barricade" -msgstr "graue Barrikade" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze screen" -msgstr "Triefblende" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze barrier" -msgstr "Triefbarriere" - -#: lang/json/vehicle_part_from_json.py -msgid "gel framework" -msgstr "Gelrahmenwerk" - -#. ~ Description for {'str': 'gel framework'} -#. ~ Description for {'str': 'gray frame'} -#. ~ Description for {'str': 'ooze chassis'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, shaped to provide attachment points for other blobs. Other " -"vehicle components and blobs can be mounted on it. If all the frames and " -"components of a vehicle are foldable or made from blobs, the vehicle can be " -"folding into a small package and picked up as a normal item." -msgstr "" -"Ein lebendiger Blob, so geformt, dass er Anschlusspunkte für andere Blobs " -"bietet. Andere Fahrzeugkomponenten können darauf montiert werden. Falls all " -"die Rahmen und Komponenten eines Fahrzeugs klappbar oder aus Blobs gemacht " -"sind, kann das Fahrzeug in ein kleines Paket zusammengeklappt und wie ein " -"normaler Gegenstand aufgesammelt werden." - -#: lang/json/vehicle_part_from_json.py -msgid "gray frame" -msgstr "grauer Rahmen" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze chassis" -msgstr "Trieffahrgestell" - -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living, glowing blob. Having been filled with electrical power, can " -"release it as light of varying strength." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel aisle lights" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel directed floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel wide angle headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ice ram" -msgstr "Eisrammbock" - -#. ~ Description for {'str': 'ice ram'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will absorb damage in a" -" vehicle collision and deliver additional damage to the other object in the " -"collision. It should be mounted on the edge of the vehicle, preferably the " -"front." -msgstr "" -"Ein lebendiger Blob, der sich in einem unterkühlten Zustand befindet. Er " -"wird Schaden bei eienr Fahrzeugkollision absorbieren und zusätzlichen " -"Schaden an das andere Objekt bei der Kollision austeilen. Er sollte am Rand " -"des Fahrzeugs montiert werden, vorzugsweise vorne." - -#: lang/json/vehicle_part_from_json.py -msgid "Gelatinous tracks" -msgstr "" - -#. ~ Description for {'str': 'Gelatinous tracks'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A set of continuous, interlocking tracks made out of blob. They can be used" -" in place of wheels, and provide good traction and off-road performance." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "Oozing tracks" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "inert core" -msgstr "inaktiver Kern" - -#. ~ Description for {'str': 'inert core'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A sleeping amorphous core, acting as a rotating, universal mount for a " -"weapon. If your hands are empty, you can stand next to a tentacle and " -"'f'ire the weapon by selecting the tile." -msgstr "" -"Ein schlafender amorpher Kern, welcher als drehbare Universalhalterung für " -"Waffen fungiert. Sind deine Hände leer, kannst du neben einem der Tentakel " -"stehen und die darauf montierte Waffe durch das Auswählen des entsprechenden" -" Feldes ab[f]euern." - -#: lang/json/vehicle_part_from_json.py -msgid "A living blob turned into a heavy vehicle weapon." -msgstr "" -"Ein lebendiger Blob, der zu einer schweren Fahrzeugwaffe umgeformt wurde." - -#. ~ Description for {'str': 'frost lancer'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state and transformed into a heavy" -" vehicle weapon." -msgstr "" -"Ein lebendiger Blob, der sich in einem unterkühlten Zustand befindet und zu " -"einer schweren Fahrzeugwaffe transformiert wurde." - -#: lang/json/vehicle_part_from_json.py -msgid "ice pack" -msgstr "Kühlakku" - -#. ~ Description for {'str': 'ice pack'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will keep items stored " -"in it cold, reducing the speed at which food and drink rots." -msgstr "" -"Ein lebendiger Blob, der sich in einem unterkühlten Zustand befindet. Er " -"wird Gegenstände, die sich in ihm befinden, kühl lagern und die " -"Geschwindigkeit, in der Lebensmittel und Getränke verderben, verringern." - -#: lang/json/vehicle_part_from_json.py -msgid "icy windshield" -msgstr "vereiste Windschutzscheibe" - -#. ~ Description for {'str': 'icy windshield'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It is transparent, and can" -" be used to see out of the vehicle." -msgstr "" -"Ein lebendiger Blob, der sich in einem unterkühlten Zustand befindet. Er ist" -" transparent und kann benutzt werden, um aus dem Fahrzeug zu blicken." - -#: lang/json/vehicle_part_from_json.py -msgid "gelacier boat hull" -msgstr "" - -#. ~ Description for {'str': 'gelacier boat hull'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It acts as a boat hull." +msgid "mounted tactical shotgun" msgstr "" -"Ein lebendiger Blob, der sich in einem unterkühlten Zustand befindet. Er " -"fungiert als ein Bootsrumpf." #: lang/json/vehicle_part_from_json.py -msgid "gel retriever" -msgstr "Gelempfänger" - -#. ~ Description for {'str': 'gel retriever'} -#. ~ Description for {'str': 'gray retriever'} -#. ~ Description for {'str': 'ooze retriever'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed to act as a scoop. Use the vehicle controls to turn " -"it on or off. When turned on, it will scoop up any loose items that it " -"travels over, putting them into the vehicle's storage." +msgid "mounted heavy machinegun" msgstr "" -"Ein lebender Blob, der als eine Fahrzeugschaufel fungiert. Benutze die " -"Fahrzeugsteuerung um ihn ein- oder auszuschalten. Wenn eingeschaltet, wird " -"er alle losen Gegenstände, über die er fährt, aufsammeln und in den " -"Lagerraum des Fahrzeugs befördern." - -#: lang/json/vehicle_part_from_json.py -msgid "gel harness" -msgstr "Gelharnisch" -#. ~ Description for {'str': 'gel harness'} -#. ~ Description for {'str': 'gray harness'} -#. ~ Description for {'str': 'ooze harness'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, reformed as a belt and attached to a seat." +msgid "mounted assault rifle" msgstr "" -"Ein lebendiger Blob, der zu einem Gurt verformt und an einem Sitz befestigt " -"wurde." - -#: lang/json/vehicle_part_from_json.py -msgid "capsule (10L)" -msgstr "Kapsel (10 l)" - -#. ~ Description for {'str': 'capsule (10L)'} -#. ~ Description for {'str': 'cocoon (30L)'} -#. ~ Description for {'str': 'pod (20L)'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a storage space for holding liquids. If filled " -"with the appropriate fuel for the vehicle's engine, the engine will " -"automatically draw fuel from the tank when the engine is on. If filled with" -" water, you can access the water from a water faucet, if one is installed in" -" the vehicle. You can also use a rubber hose to siphon liquids out of a " -"tank." -msgstr "" -"Ein lebendiger Blob, der zu einem Lagerraum geformt wurde, um Flüssigkeiten " -"zu halten. Ist er mit dem passenden Treibstoff für einen eingebauten Motor " -"des Fahrzeugs gefüllt, dann zieht der eingeschaltete Motor automatisch " -"Treibstoff aus diesem Blob. Wenn er mit Wasser gefüllt ist, kannst du auf " -"das Wasser mit einem Wasserhahn zugreifen, falls einer am Fahrzeug befestigt" -" wurde. Du kannst außerdem einen Gummischlauch benutzen, um Flüssigkeiten " -"aus einem Tank abzusaugen." - -#: lang/json/vehicle_part_from_json.py -msgid "gel tank (60L)" -msgstr "Geltank (60 l)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel reinforcement" -msgstr "Gelverstärkung" -#. ~ Description for {'str': 'gel reinforcement'} -#. ~ Description for {'str': 'gray reinforcement'} -#. ~ Description for {'str': 'ooze reinforcement'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, acting as armor plate." -msgstr "Ein lebendiger Blob, der als Panzerplatte fungiert." - -#: lang/json/vehicle_part_from_json.py -msgid "gel roof" -msgstr "Geldach" - -#. ~ Description for {'str': 'gel roof'} -#. ~ Description for {'str': 'gray roof'} -#. ~ Description for {'str': 'ooze roof'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, placed as roof." -msgstr "Ein lebendiger Blob, der als ein Dach platziert wurde." - -#: lang/json/vehicle_part_from_json.py -msgid "gel seat" -msgstr "Gelsitz" +msgid "mounted light machine gun" +msgstr "montiertes leichtes Maschinengewehr" -#. ~ Description for {'str': 'gel seat'} -#. ~ Description for {'str': 'gray seat'} -#. ~ Description for {'str': 'ooze seat'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a comfy couch. You can sit here." +msgid "mounted automatic grenade launcher" msgstr "" -"Ein lebendiger Blob, der zu einem bequemen Sofa geformt wurde. Du kannst " -"dich hier setzen." - -#: lang/json/vehicle_part_from_json.py -msgid "gel receptacle" -msgstr "Gelrezeptor" - -#. ~ Description for {'str': 'gel receptacle'} -#. ~ Description for {'str': 'gray receptacle'} -#. ~ Description for {'str': 'ooze receptacle'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, shaped into a cargo space." -msgstr "Ein lebendiger Blob, der zu einem Lagerraum geformt wurde." - -#: lang/json/vehicle_part_from_json.py -msgid "gel pouch (under)" -msgstr "Geltasche (unten)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel walkway" -msgstr "Gelgang" - -#. ~ Description for {'str': 'gel walkway'} -#. ~ Description for {'str': 'gray walkway'} -#. ~ Description for {'str': 'ooze walkway'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a walkway." -msgstr "Ein lebendiger Blob, geformt zu einem Gang." #: lang/json/vehicle_part_from_json.py -msgid "gel hatch" -msgstr "Gelfalltür" - -#. ~ Description for {'str': 'gel hatch'} -#. ~ Description for {'str': 'gray hatch'} -#. ~ Description for {'str': 'ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Has a transparent patch so you can see out" -" of it, even when closed." +msgid "bulette plating" msgstr "" -"Ein lebendiger Blob, der als Tür fungiert. Hat ein transparentes Stück, " -"damit du nach draußen sehen kannst, auch wenn er geschlossen ist." - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gel hatch" -msgstr "undurchsichtige Gelfalltür" -#. ~ Description for {'str': 'opaque gel hatch'} -#. ~ Description for {'str': 'opaque gray hatch'} -#. ~ Description for {'str': 'opaque ooze hatch'} +#. ~ Description for orichalcum frame #: lang/json/vehicle_part_from_json.py msgid "" -"A living blob, acting as a door. Entirely opaque so you can't see through " -"it when closed." -msgstr "" -"Ein lebendiger Blob, der als Tür fungiert. Völlig undurchsichtig, also " -"kannst du nicht hindurch sehen, wenn er geschlossen ist." - -#: lang/json/vehicle_part_from_json.py -msgid "gray retriever" -msgstr "grauer Empfänger" - -#: lang/json/vehicle_part_from_json.py -msgid "gray harness" -msgstr "grauer Harnisch" - -#: lang/json/vehicle_part_from_json.py -msgid "cocoon (30L)" -msgstr "Kokon (30 l)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray tank (100L)" -msgstr "grauer Tank (100 l)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray reinforcement" -msgstr "graue Verstärkung" - -#: lang/json/vehicle_part_from_json.py -msgid "gray roof" -msgstr "graues Dach" - -#: lang/json/vehicle_part_from_json.py -msgid "gray seat" -msgstr "grauer Sitz" - -#: lang/json/vehicle_part_from_json.py -msgid "gray receptacle" -msgstr "grauer Empfänger" - -#: lang/json/vehicle_part_from_json.py -msgid "gray pouch (under)" -msgstr "graue Tasche (unten)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray walkway" -msgstr "grauer Gang" - -#: lang/json/vehicle_part_from_json.py -msgid "gray hatch" -msgstr "graue Klappe" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gray hatch" -msgstr "undurchsichtige graue Klappe" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze retriever" -msgstr "Triefempfänger" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze harness" -msgstr "Triefharnisch" - -#: lang/json/vehicle_part_from_json.py -msgid "pod (20L)" -msgstr "Kapsel (20 l)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze tank (80L)" -msgstr "Trief-Tank (80 l)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze reinforcement" -msgstr "Triefverstärkung" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze roof" -msgstr "Triefdach" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze seat" -msgstr "Triefsitz" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze receptacle" -msgstr "Triefempfänger" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze pouch (under)" -msgstr "Trieftasche (unten)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze walkway" -msgstr "Triefgang" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze hatch" -msgstr "Trieffalltür" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque ooze hatch" -msgstr "undurchsichtige Trieffalltür" - -#: lang/json/vehicle_part_from_json.py -msgid "amorphous core" -msgstr "amorpher Kern" - -#. ~ Description for {'str': 'amorphous core'} -#: lang/json/vehicle_part_from_json.py -msgid "An amorphous mass, the living heart and brain of a blob vehicle." -msgstr "Eine amorphe Masse, das lebendige Herz und Hirn eines Blobfahrzeugs." - -#: lang/json/vehicle_part_from_json.py -msgid "snow slider" -msgstr "Schneerutscher" - -#. ~ Description for {'str': 'snow slider'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, existing in a super-cooled state. It acts as a wheel." -msgstr "" -"Ein lebendiger Blob, der sich in einem unterkühlten Zustand befindet. Er " -"fungiert als ein Rad." - -#. ~ Description for {'str': 'gelatinous wheel'} -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob. It acts as a wheel." -msgstr "Ein lebendiger Blob. Er fungiert als ein Rad." - -#: lang/json/vehicle_part_from_json.py -msgid "diamond barrier" -msgstr "Diamantbarriere" - -#. ~ Description for {'str': 'diamond barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "A transparent, solid sheet of self-sustaining crystals." +"An expensive magical metal framework. Other vehicle components can be " +"mounted on it, and it can be attached to other frames to increase the " +"vehicle's size." msgstr "" -"Eine transparente, massive Platte aus sich selbst erhaltenden Kristallen." -#. ~ Description for {'str': 'diamond frame'} #: lang/json/vehicle_part_from_json.py -msgid "" -"A framework of super-strong crystal. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." +msgid "mana frame" msgstr "" -"Ein Gerüst aus superstarkem Kristall. Andere Fahrzeugkomponenten können " -"darauf montiert werden und es kann an andere Rahmen befestigt werden, um " -"dadurch die Fahrzeuggröße zu erweitern." -#. ~ Description for {'str': 'diamond plating'} +#. ~ Description for mana frame #: lang/json/vehicle_part_from_json.py -msgid "" -"Transparent crystal armor plate. Will partially protect other components on" -" the same frame from damage." +msgid "A shape of pure mana that can float and carry items." msgstr "" -"Transparente Diamantpanzerplatte. Wird teilweise andere Komponenten auf dem " -"selben Rahmen vor Schaden schützen." #: lang/json/vitamin_from_json.py msgid "Calcium" @@ -213109,11 +206668,20 @@ msgstr "" msgid "%s/%s " msgstr "" +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "" + #: src/achievement.cpp msgid "" "\n" @@ -213160,10 +206728,6 @@ msgstr "Verschiedenes" msgid "Debug" msgstr "Debug" -#: src/action.cpp -msgid "Back" -msgstr "Zurück" - #: src/action.cpp msgid "Actions" msgstr "Aktionen" @@ -213178,6 +206742,30 @@ msgstr "HAUPTMENÜ" msgid "%s (Direction button)" msgstr "" +#. ~ Sound of a shovel digging a pit at work! +#. ~ Sound of a shovel filling a pit or mound at work! +#: src/activity_actor.cpp src/activity_handlers.cpp +msgid "hsh!" +msgstr "»Schipp!«" + +#: src/activity_actor.cpp +msgid "Something crawls out of the coffin!" +msgstr "" + +#: src/activity_actor.cpp +msgid "You finish exhuming a grave." +msgstr "" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging the %s." +msgstr "" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging up %s." +msgstr "Du bist fertig mit dem Ausgraben von %s." + #: src/activity_actor.cpp msgid "Use electrohack?" msgstr "Elektrohack benutzen?" @@ -213202,8 +206790,8 @@ msgstr "Dein Strom ist erschöpft!" msgid "You cannot hack this." msgstr "" -#: src/activity_actor.cpp src/activity_handlers.cpp src/computer_session.cpp -#: src/computer_session.cpp src/iuse.cpp src/map.cpp +#: src/activity_actor.cpp src/computer_session.cpp src/computer_session.cpp +#: src/iuse.cpp src/map.cpp msgid "an alarm sound!" msgstr "einen Alarm ertönen!" @@ -213233,10 +206821,120 @@ msgstr "Du aktivierst das Panel!" msgid "The nearby doors unlock." msgstr "" +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "" + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "" + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "Das rote Kabel startet immer den Motor, oder?" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "" + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "" +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "Mit einem zufriedenstellendem Klick öffnet sich das Maschendrahttor." + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "Mit einem freundlichem Klicken öffnet sich das Schloss der Tür." + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "" + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "Dein tolpatschiger Versuch blockiert das Schloss!" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "" +"Das Schloss wehrt sich bei deinem Versuch, es zu knacken und zu zerstörst " +"dein Werkzeug." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "" +"Das Schloss wehrt sich bei deinem Versuch, es zu knacken und zu beschädigst " +"dein Werkzeug." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "Der Dietrich stumpft bei deinem Einbruchsversuch ab." + +#: src/activity_actor.cpp src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "" + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "Wo willst du den Dietrich anwenden?" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "" +"Mit dem Dietrich bohrst du in deiner Nase und deine Nebenhöhlen öffnen sich." + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "Diese Türe ist nicht abgeschlossen." + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "Hierauf kann der Dietrich nicht angewendet werden." + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "" + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "" + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "" + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "" + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -213310,8 +207008,8 @@ msgstr "" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." msgstr "" #: src/activity_handlers.cpp @@ -213622,59 +207320,10 @@ msgstr "Du hast nichts gefunden." msgid "The %s runs out of batteries." msgstr "Die Batterien von %s sind leer gegangen." -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "Dieses Kabel wird den Motor starten." - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "Dieses Kabel wird vielleicht den Motor starten." - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "Nach dem Ausschlussprinzip wird dieses Kabel den Motor starten." - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "Das rote Kabel startet immer den Motor, oder?" - #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "Du bist fertig mit der Gewinnung." -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "Dort ist keine Leiche, die zum Zombiesklaven gemacht werden kann!" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "" -"Du schneidest Muskeln und Sehen auf und entfernst Körperteile, bis du dir " -"sicher bist, dass der Zombie nicht mehr in der Lage ist, anzugreifen, wenn " -"er wiederaufersteht." - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie" -" won't be able to attack when it reanimates." -msgstr "" -"Du zerhackst die Leiche und trennst einige Körperteile ab. Du denkst, dass " -"der Zombie nicht mehr kampffähig sein wird, wenn er wiederaufersteht." - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "Zu zerschneidest die Leiche zu sehr, sie ist völlig zermalmt." - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "" -"Du zerschneidest die Leiche beim Versuch, sie kampfunfähig zu machen, aber " -"du glaubst nicht, dass du es richtig gemacht hast." - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -213828,38 +207477,6 @@ msgstr "»Zisch!«." msgid "With a satisfying click, the lock on the safe opens!" msgstr "Mit einem freundlichem Klicken öffnet sich das Schloss des Tresors!" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "Mit einem zufriedenstellendem Klick öffnet sich das Maschendrahttor." - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "Mit einem freundlichem Klicken öffnet sich das Schloss der Tür." - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "Dein tolpatschiger Versuch blockiert das Schloss!" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "" -"Das Schloss wehrt sich bei deinem Versuch, es zu knacken und zu zerstörst " -"dein Werkzeug." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "" -"Das Schloss wehrt sich bei deinem Versuch, es zu knacken und zu beschädigst " -"dein Werkzeug." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "Der Dietrich stumpft bei deinem Einbruchsversuch ab." - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "Einmal wiederholen" @@ -213990,6 +207607,10 @@ msgstr "" msgid "You finish fishing" msgstr "" +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "Es ist zu dunkel zum Lesen!" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "Du bist fertig mit Lesen." @@ -214016,26 +207637,6 @@ msgstr "" msgid "%s finishes chatting with you." msgstr "%s ist fertig damit, mit dir zu plaudern." -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "" - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "" @@ -214124,10 +207725,6 @@ msgid "" "actually stitching 's wounds." msgstr "" -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "" - #: src/activity_handlers.cpp msgid "" "The Autodoc returns to its resting position after successfully performing " @@ -214274,30 +207871,6 @@ msgstr "Du bist fertig mit Bohren." msgid " finishes drilling." msgstr "" -#. ~ Sound of a shovel digging a pit at work! -#. ~ Sound of a shovel filling a pit or mound at work! -#: src/activity_handlers.cpp -msgid "hsh!" -msgstr "»Schipp!«" - -#: src/activity_handlers.cpp -msgid "Something crawls out of the coffin!" -msgstr "" - -#: src/activity_handlers.cpp -msgid "You finish exhuming a grave." -msgstr "" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging the %s." -msgstr "" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging up %s." -msgstr "Du bist fertig mit dem Ausgraben von %s." - #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." @@ -214587,7 +208160,7 @@ msgstr "Einige Gegenstände fallen auf %s." #, c-format msgid "You need %1$i charges of water or clean water to wash these items." msgstr "" -"Du brauchst %1$ix Wasser oder klares Wasser, um diese Gegenstände zu " +"Du brauchst %1$ix Wasser oder sauberes Wasser, um diese Gegenstände zu " "waschen." #: src/activity_item_handling.cpp src/iuse.cpp @@ -214773,7 +208346,7 @@ msgstr "Alkohol" #: src/addiction.cpp msgid "sleeping pills" -msgstr "Schlafmittel" +msgstr "Schlaftabletten" #: src/addiction.cpp msgid "opiates" @@ -214955,10 +208528,6 @@ msgstr "SO" msgid "South East" msgstr "Südost" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "W" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "West" @@ -215150,6 +208719,11 @@ msgstr "" msgid "Source area is the same as destination (%s)." msgstr "Quellbereich ist derselbe wie das Ziel (%s)." +#: src/advanced_inv.cpp +#, c-format +msgid "You have no space for %s" +msgstr "" + #: src/advanced_inv.cpp msgid "Default layout was saved." msgstr "Das Standard-Layout wurde gespeichert." @@ -215178,12 +208752,6 @@ msgstr "Quellbehälter ist leer." msgid "You can unload only liquids into target container." msgstr "Du kannst nur Flüssigkeiten in den Zielbehälter entleeren." -#: src/advanced_inv.cpp -msgid "You can't partially unload liquids from unsealable container." -msgstr "" -"Von nicht versiegelbaren Behältern kannst du Flüssigkeiten nicht teilweise " -"entladen." - #: src/advanced_inv.cpp msgid "You can't pick up a liquid." msgstr "Du kannst keine Flüssigkeit aufsammeln." @@ -215282,6 +208850,10 @@ msgstr "Angebunden" msgid "an aura around you" msgstr "" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "" + #: src/armor_layers.cpp #, c-format msgid "" @@ -215367,11 +208939,6 @@ msgstr "Hinderung:" msgid "Warmth:" msgstr "Wärme:" -#: src/armor_layers.cpp -#, c-format -msgid "Storage (%s):" -msgstr "Lagerplatz (%s):" - #: src/armor_layers.cpp msgid "Protection" msgstr "Schutz" @@ -215384,6 +208951,10 @@ msgstr "Schlag:" msgid "Cut:" msgstr "Schnitt:" +#: src/armor_layers.cpp +msgid "Ballistic:" +msgstr "" + #: src/armor_layers.cpp msgid "Acid:" msgstr "" @@ -215444,16 +209015,6 @@ msgstr "Hilft dir, im Wasser klar zu sehen." msgid "It can occupy the same space as other things." msgstr "" -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "%s ist zu weit weg, um Kleidungsstücke zu sortieren." - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "%s ist nicht freundlich gestimmt!" - #: src/armor_layers.cpp msgid "Sort Armor" msgstr "Kleidung sortieren" @@ -215498,6 +209059,16 @@ msgstr "Hinderung und Wärme" msgid "Encumbrance" msgstr "Hinderung" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "%s ist zu weit weg, um Kleidungsstücke zu sortieren." + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "%s ist nicht freundlich gestimmt!" + #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" @@ -216438,10 +210009,6 @@ msgstr "Du bist ein Analphabet." msgid "Your eyes won't focus without reading glasses." msgstr "Ohne eine Lesebrille kannst du nicht lesen." -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "Es ist zu dunkel zum Lesen!" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "Vielleicht könnte dir jemand das Buch vorlesen, aber du bist taub!" @@ -216757,11 +210324,15 @@ msgstr "" msgid "You train for a while." msgstr "" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp +msgid "It looks like you woke up before your alarm." +msgstr "Es sieht so aus, als ob du vor deinem Wecker aufgewacht bist." + +#: src/avatar.cpp msgid "It looks like you've slept through your internal alarm…" msgstr "" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp msgid "It looks like you've slept through the alarm…" msgstr "" @@ -216769,6 +210340,11 @@ msgstr "" msgid "You retched, but your stomach is empty." msgstr "Dir würgst, aber dein Magen ist leer." +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "Du (%s)" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "" @@ -216843,59 +210419,12 @@ msgstr "" msgid "Are you sure you want to raise %s? %d points available." msgstr "" -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "" - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "" - -#: src/avatar.cpp -msgid "You start walking." -msgstr "" - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "" - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "" - -#: src/avatar.cpp -msgid "You start running." -msgstr "Du fängst an, zu laufen." - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "" - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "" - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "Du bist zu müde zum Laufen." - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "" - -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "" - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "" - -#. ~ %1$s: weapon name, %2$s: holster name +#. ~ %1$s: weapon name +#. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp #, c-format msgctxt "holster" -msgid "Draw %1$s from %2$s?" +msgid "Draw from %1$s?" msgstr "" #: src/avatar.cpp src/monexamine.cpp @@ -216943,11 +210472,11 @@ msgstr "" msgid "Move into the monster to attack." msgstr "" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" msgstr "Deine Willenskraft behauptet sich, so wie du!" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything…" msgstr "" @@ -217162,11 +210691,6 @@ msgstr "Dieses Gras ist tot und zu sehr zerfetzt, um hier zu grasen." msgid "This grass is tainted with paint and thus inedible." msgstr "Das Gras ist mit Farbe verdorben und daher ungenießbar." -#: src/avatar_action.cpp -#, c-format -msgid "You leave the empty %s." -msgstr "Du hinterlässt: %s (leer)" - #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "Du kannst nicht gut werfen, solange du in deinem Panzer bist." @@ -217780,10 +211304,6 @@ msgstr "" msgid "Your %s powers down." msgstr "Dein %s schaltet sich ab." -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "Kunstlichtgenerator aktiv!" - #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." @@ -217855,6 +211375,14 @@ msgstr "" msgid "The %s screws up the operation." msgstr "" +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "" + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "" + #: src/bionics.cpp msgid "You prep to begin surgery." msgstr "Du bereitest dich auf die Operation vor." @@ -218624,6 +212152,46 @@ msgstr "Liter" msgid "quart" msgstr "Quart" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "" + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -218657,7 +212225,7 @@ msgstr "du" #: src/character.cpp msgid "Your" -msgstr "" +msgstr "Dein" #: src/character.cpp msgid "your" @@ -218679,16 +212247,16 @@ msgstr "Autsch, etwas tut weh!" #: src/character.cpp #, c-format msgid "You remove the %s's harness." -msgstr "" +msgstr "Du entfernst %s's Geschirr." #: src/character.cpp src/game.cpp msgid "You let go of the grabbed object." -msgstr "" +msgstr "Du lässt das festgehaltene Objekt los." #: src/character.cpp #, c-format msgid "You climb on the %s." -msgstr "" +msgstr "Du kletterst auf das %s. " #: src/character.cpp #, c-format @@ -218702,7 +212270,7 @@ msgstr "Du schaffst es nicht, dein %s zu schieben." #: src/character.cpp msgid "You are ejected from your mech!" -msgstr "" +msgstr "Du bist aus deinem Mech ausgestiegen." #: src/character.cpp msgid " is ejected from their mech!" @@ -218723,12 +212291,12 @@ msgstr "Du verletzt dich!" #: src/character.cpp msgctxt "memorial_male" msgid "Fell off a mount." -msgstr "" +msgstr "Vom Reittier gefallen." #: src/character.cpp msgctxt "memorial_female" msgid "Fell off a mount." -msgstr "" +msgstr "Vom Reittier gefallen.Vom Reittier gefallen." #: src/character.cpp msgid "Dismount where?" @@ -218816,6 +212384,7 @@ msgstr "%s entkommt aus der Bärenfalle!" #, c-format msgid "Your %s tries to free itself from the bear trap, but can't get loose!" msgstr "" +"Dein %s versucht sich aus der Bärenfalle zu befreien, aber kommt nicht los." #: src/character.cpp msgid "You free yourself from the bear trap!" @@ -218868,7 +212437,7 @@ msgstr "" #: src/character.cpp #, c-format msgid "You are pulled from your %s!" -msgstr "" +msgstr "Du wirst weggezogen von deinem %s!" #: src/character.cpp msgid "You find yourself no longer grabbed." @@ -218897,7 +212466,7 @@ msgstr " bricht aus dem Griff frei!" #: src/character.cpp #, c-format msgid "Your %s bionic comes back online." -msgstr "" +msgstr "Dein %s Bionik ist wieder eingeschaltet." #: src/character.cpp #, c-format @@ -218933,13 +212502,6 @@ msgstr "" msgid "This %s is too small to wear comfortably! Maybe it could be refitted." msgstr "" -#. ~ %1$s: item name, %2$s: container name -#: src/character.cpp -#, c-format -msgctxt "container" -msgid "You put the %1$s in your %2$s." -msgstr "" - #: src/character.cpp msgid "You can't place items here!" msgstr "Du kannst hier keine Gegenstände platzieren!" @@ -219176,12 +212738,8 @@ msgid "Slaked" msgstr "Undurstig" #: src/character.cpp -msgid "Engorged" -msgstr "Verstopft" - -#: src/character.cpp -msgid "Sated" -msgstr "Gesättigt" +msgid "Satisfied" +msgstr "Zufrieden" #: src/character.cpp msgid "Hungry" @@ -219191,21 +212749,21 @@ msgstr "Hungrig" msgid "Very Hungry" msgstr "Sehr hungrig" -#: src/character.cpp -msgid "Starving!" -msgstr "Verhungernd!" - #: src/character.cpp msgid "Near starving" msgstr "Fast verhungert" +#: src/character.cpp +msgid "Starving!" +msgstr "Verhungernd!" + #: src/character.cpp msgid "Famished" msgstr "Ausgehungert" #: src/character.cpp -msgid "Peckish" -msgstr "Hungrig" +msgid "ERROR!" +msgstr "FEHLER!" #: src/character.cpp src/npctalk.cpp msgid "Exhausted" @@ -219217,7 +212775,7 @@ msgstr "Todmüde" #: src/character.cpp msgid "Pain " -msgstr "" +msgstr "Schmerz" #: src/character.cpp #, c-format @@ -219227,12 +212785,12 @@ msgstr "" #: src/character.cpp #, c-format msgid "Bandaged wounds on your %s healed." -msgstr "" +msgstr "Bandagierte Wunden an deinem %s sind geheilt." #: src/character.cpp #, c-format msgid "Disinfected wounds on your %s healed." -msgstr "" +msgstr "Desinfizierte Wunden an deinem %s sind geheilt." #: src/character.cpp #, c-format @@ -219253,22 +212811,42 @@ msgstr "" msgid "You have a sudden heart attack!" msgstr "Du hast eine plötzliche Herzattacke!" +#: src/character.cpp +msgid " has a sudden heart attack!" +msgstr "" + #: src/character.cpp msgid "Your breathing stops completely." msgstr "Deine Atmung setzt aus." +#: src/character.cpp +msgid "'s breathing stops completely." +msgstr "" + #: src/character.cpp msgid "Your heart spasms painfully and stops." msgstr "Dein Herz verkrampft sich schmerzhaft und hält an." +#: src/character.cpp +msgid "'s heart spasms painfully and stops." +msgstr "" + #: src/character.cpp msgid "Your heart spasms and stops." msgstr "Dein Herz verkrampft sich und hält an." +#: src/character.cpp +msgid "'s heart spasms and stops." +msgstr "" + #: src/character.cpp msgid "Your breathing slows down to a stop." msgstr "" +#: src/character.cpp +msgid "'s breathing slows down to a stop." +msgstr "" + #: src/character.cpp msgid "You have starved to death." msgstr "Du bist verhungert." @@ -219279,7 +212857,7 @@ msgstr "Du bist verdurstet." #: src/character.cpp msgid "Even your eyes feel dry…" -msgstr "" +msgstr "Sogar deine Augen fühlen sich trocken an..." #: src/character.cpp msgid "You are THIRSTY!" @@ -219287,15 +212865,15 @@ msgstr "Du hast DURST!" #: src/character.cpp msgid "Your mouth feels so dry…" -msgstr "" +msgstr "Dein Mund fühlt sich so trocken an..." #: src/character.cpp msgid "Survivor sleep now." -msgstr "Überlebender schlafen jetzt!" +msgstr "Überlebender schläft jetzt!" #: src/character.cpp msgid "Anywhere would be a good place to sleep…" -msgstr "" +msgstr "Überall wäre jetzt ein guter Platz zum schlafen..." #: src/character.cpp msgid "You feel like you haven't slept in days." @@ -219401,11 +212979,11 @@ msgstr "Du spürst, wie dein %s warm wird." #: src/character.cpp msgid "Your shivering prevents you from sleeping." -msgstr "" +msgstr "Dein Zittern verhindert das du einschläfst." #: src/character.cpp msgid "You are too cold. Your frostbite prevents you from sleeping." -msgstr "" +msgstr "Dir ist zu kalt. Deine Erfrierungen verhindern das du einschläfst." #: src/character.cpp #, c-format @@ -219453,15 +213031,15 @@ msgstr "" #: src/character.cpp msgid "Very Bad" -msgstr "" +msgstr "Sehr schlecht" #: src/character.cpp src/panels.cpp msgid "Bad" -msgstr "" +msgstr "Schlecht" #: src/character.cpp src/panels.cpp msgid "Good" -msgstr "" +msgstr "Gut" #: src/character.cpp #, c-format @@ -219546,6 +213124,12 @@ msgstr "Weder Leib noch Glieder würden davon profitieren." msgid "Cancel" msgstr "Abbrechen" +#. ~ you filled to the brim with +#: src/character.cpp +#, c-format +msgid "You filled %1$s to the brim with %2$s." +msgstr "" + #: src/character.cpp src/iexamine.cpp #, c-format msgid "You pour %1$s into the %2$s." @@ -219639,11 +213223,11 @@ msgstr "" #: src/character.cpp msgid "Overweight" -msgstr "" +msgstr "Übergewicht" #: src/character.cpp msgid "Underweight" -msgstr "" +msgstr "Untergewicht" #: src/character.cpp msgid "Skeletal" @@ -219898,7 +213482,7 @@ msgstr "%1$s ist %2$s!" #: src/character.cpp #, c-format msgid "You are no longer able to wield your %s and drop it!" -msgstr "" +msgstr "Du bist nicht länger in der Lage %s zu halten und lässt es fallen!" #: src/character.cpp msgid "A snake sprouts from your body!" @@ -219974,7 +213558,7 @@ msgstr "Du wurdest verletzt!" #: src/character.cpp msgid "You smell like yourself again." -msgstr "" +msgstr "Du richst wieder wie du selbst." #. ~spore-release sound #. ~ the sound of a fungus releasing spores @@ -220044,7 +213628,7 @@ msgstr "" #: src/character.cpp #, c-format msgid "You swing your %s wildly!" -msgstr "" +msgstr "Du schwingst dein %s weit!" #: src/character.cpp #, c-format @@ -220053,9 +213637,9 @@ msgstr "" #: src/character.cpp msgid "You need a hammering tool to crush up frozen liquids!" -msgstr "" +msgstr "Du brachst ein Werkzeug um gefrorene Flüssigkeiten zu zerstoßen!" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp src/npc.cpp msgid "Wielding: " msgstr "Hält: " @@ -220067,11 +213651,6 @@ msgstr "Kleidung: " msgid "Traits: " msgstr "Wesenszüge: " -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "Du (%s)" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." @@ -221254,7 +214833,7 @@ msgid "This is full of dirt after being on the ground." msgstr "Das ist nun voller Schmutz, nachdem es auf Boden gelegen hat." #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/player.cpp +#: src/iuse_actor.cpp src/iuse_actor.cpp msgid "You can't do that while underwater." msgstr "Du kannst das nicht tun, solange du im Wasser bist." @@ -221267,7 +214846,7 @@ msgstr "" msgid "You can't drink it while it's frozen." msgstr "Du kannst es nicht trinken, solange es gefroren ist." -#: src/consumption.cpp src/player.cpp +#: src/consumption.cpp #, c-format msgid "You need a %s to consume that!" msgstr "Du brauchst 1 %s, um dies zu konsumieren!" @@ -221296,10 +214875,18 @@ msgstr "" msgid "This is rotten and smells awful!" msgstr "Dies ist verdorben und stinkt fürchterlich!" +#: src/consumption.cpp +msgid "The thought of eating demihuman flesh makes you feel sick." +msgstr "" + #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." msgstr "Der Gedanke daran, Menschenfleisch zu essen, macht dich krank." +#: src/consumption.cpp +msgid "Eating this raw meat probably isn't very healthy." +msgstr "" + #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." msgstr "" @@ -221673,6 +215260,15 @@ msgid_plural " load %1$i charges of %2$s in their %3$s." msgstr[0] "" msgstr[1] "" +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "Diesen Gegenstand hast du nicht." + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "Du kannst dein %s nicht essen." + #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" msgstr " (nah)" @@ -221763,8 +215359,8 @@ msgstr "Du kannst nicht noch mehr davon anfertigen!" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" msgstr "" #: src/crafting.cpp src/pickup.cpp @@ -222518,6 +216114,11 @@ msgctxt "damage type" msgid "stab" msgstr "Stich" +#: src/damage.cpp +msgctxt "damage_type" +msgid "bullet" +msgstr "" + #: src/damage.cpp msgctxt "damage type" msgid "heat" @@ -222706,6 +216307,14 @@ msgstr "" msgid "Info…" msgstr "" +#: src/debug_menu.cpp +msgid "Enable achievements" +msgstr "" + +#: src/debug_menu.cpp +msgid "Game…" +msgstr "" + #: src/debug_menu.cpp msgid "Teleport - short range" msgstr "" @@ -223146,6 +216755,10 @@ msgstr "Durst" msgid "Fatigue" msgstr "Müdigkeit" +#: src/debug_menu.cpp +msgid "Sleep Deprivation" +msgstr "Schlafentzug" + #: src/debug_menu.cpp msgid "Reset all basic needs" msgstr "" @@ -223529,6 +217142,14 @@ msgstr "" msgid "Enter benchmark length (in milliseconds):" msgstr "Benchmark-Länge eingeben (in Millisekunden):" +#: src/debug_menu.cpp +msgid "Achievements are already enabled" +msgstr "" + +#: src/debug_menu.cpp +msgid "Achievements enabled" +msgstr "" + #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " @@ -223771,7 +217392,7 @@ msgstr "" msgid "trap: %s (%d)" msgstr "Falle: %s (%d)" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "" @@ -226451,6 +220072,11 @@ msgstr "Der Baum wächst zu einer Fungusblüte heran!" msgid "You completed the achievement \"%s\"." msgstr "" +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "" + #: src/game.cpp src/options.cpp #, c-format msgid "Loading the tileset failed: %s" @@ -226618,6 +220244,16 @@ msgctxt "action" msgid "disassemble" msgstr "demontieren" +#: src/game.cpp +msgctxt "action" +msgid "insert" +msgstr "" + +#: src/game.cpp +msgctxt "action" +msgid "open" +msgstr "" + #: src/game.cpp msgctxt "action" msgid "unfavorite" @@ -227151,11 +220787,6 @@ msgid "Without extra fuel it will burn for between %s to %s." msgstr "" "Ohne zusätzlichen Brennstoff wird es zwischen %s und %s weiterbrennen. " -#: src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "" - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "" @@ -227190,6 +220821,44 @@ msgstr "" msgid "Peek where?" msgstr "Wohin linsen?" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "winzig" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "klein" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "mittelgroß" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "groß" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "riesig" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "" + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "Ist %s." + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "" + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -227231,17 +220900,17 @@ msgstr "Unsichtbar." #: src/game.cpp #, c-format -msgid "%s; Impassable" -msgstr "%s; unpassierbar" +msgid "Cover: %d%%" +msgstr "" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" -msgstr "%s; Bewegungskosten: %d" +msgid "Impassable" +msgstr "" #: src/game.cpp -msgid "Lighting: " -msgstr "Beleuchtung: " +#, c-format +msgid "Move cost: %d" +msgstr "" #: src/game.cpp #, c-format @@ -227249,8 +220918,8 @@ msgid "Sign: %s" msgstr "Schild: »%s«" #: src/game.cpp -msgid "Sign: ???" -msgstr "Schild: ???" +msgid "Lighting: " +msgstr "Beleuchtung: " #: src/game.cpp #, c-format @@ -227264,12 +220933,11 @@ msgstr "Unten: %s; begehbar" #: src/game.cpp #, c-format -msgid "Coverage: %d%%" +msgid "Unfinished task: %s, %d%% complete" msgstr "" #: src/game.cpp -#, c-format -msgid "Unfinished task: %s, %d%% complete" +msgid "Vehicle: " msgstr "" #: src/game.cpp @@ -227694,7 +221362,7 @@ msgstr "Du benötigst mindestens 1 %s, um %s nachzuladen!" msgid "The %s is already full!" msgstr "%s ist schon voll!" -#: src/game.cpp src/ranged.cpp +#: src/game.cpp #, c-format msgid "You can't reload a %s!" msgstr "Du kannst %s nicht nachladen!" @@ -228461,8 +222129,40 @@ msgid "Speed %s%d!" msgstr "" #: src/game.cpp -msgid "You slip while climbing and fall down again." -msgstr "Beim Klettern rutschst du ab und fällst wieder herunter." +msgid "Your skill in parkour makes it easier to climb." +msgstr "" + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "" + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "" + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "" + +#: src/game.cpp +msgid "You slip while climbing and fall down." +msgstr "" #: src/game.cpp msgid "Climbing is impossible in your current state." @@ -228481,6 +222181,11 @@ msgstr "" "Gegenstands-Tastenkürzel zugewiesen: " "%d/%d" +#: src/game_inventory.cpp +#, c-format +msgid "Inventory of %s" +msgstr "" + #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." msgstr "Dein Inventar ist leer." @@ -228505,6 +222210,10 @@ msgstr "SCHLAG" msgid "CUT" msgstr "SCHNITT" +#: src/game_inventory.cpp +msgid "BULLET" +msgstr "" + #: src/game_inventory.cpp msgid "ACID" msgstr "SÄURE" @@ -228598,6 +222307,15 @@ msgstr "" msgid "VOLUME" msgstr "" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "%s" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "FRISCHE" @@ -228830,6 +222548,10 @@ msgstr "NAHKAMPF" msgid "MOVES" msgstr "ZÜGE" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "" + #: src/game_inventory.cpp msgid "Wield item" msgstr "Gegenstand halten" @@ -228840,21 +222562,26 @@ msgstr "Du hast nichts zum Halten." #: src/game_inventory.cpp #, c-format -msgid "You can't put anything into your %s." -msgstr "Du kannst nichts in %s stecken." - -#: src/game_inventory.cpp src/iuse_actor.cpp -msgid "Holster item" -msgstr "Gegenstand in Halfter stecken" +msgid "Put item into %s" +msgstr "" #: src/game_inventory.cpp #, c-format msgid "Choose an item to put into your %s" msgstr "" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "" + +#: src/game_inventory.cpp +#, c-format +msgid "Insert items into %s" +msgstr "" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." +msgid "Could not put %s into %s, aborting." msgstr "" #: src/game_inventory.cpp src/iuse.cpp @@ -229139,34 +222866,6 @@ msgstr "Du musst mindestens eine Monstergruppe auswählen!" msgid "Special Zombies" msgstr "Besondere Zombies" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "Zombies" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "Triffiden" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "Roboter" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "Subebene" - -#: src/gamemode_defense.cpp src/handle_action.cpp -msgid "Food" -msgstr "Essen" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "Söldner" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "VERTEIDIGUNGSMODUS" @@ -229243,7 +222942,35 @@ msgstr "Die Erhöhung des Preisgeldes pro Welle." msgid "Enemy Selection:" msgstr "Gegner-Auswahl:" -#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "Zombies" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "Triffiden" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "Roboter" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "Subebene" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "Essen" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "Söldner" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "" + +#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp src/options.cpp msgid "Custom" msgstr "Benutzerdefiniert" @@ -229327,6 +223054,10 @@ msgstr "Kaufhaus" msgid "Bar" msgstr "Kneipe" +#: src/gamemode_defense.cpp +msgid "Mansion" +msgstr "Villa" + #: src/gamemode_defense.cpp msgid "One entrance and many rooms. Some medical supplies." msgstr "Ein Eingang und viele Räume. Einige Medikamente." @@ -229614,6 +223345,10 @@ msgstr "" msgid "This vehicle doesn't look very airworthy." msgstr "" +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "" + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "" @@ -229999,15 +223734,7 @@ msgid "Change to which movement mode?" msgstr "" #: src/handle_action.cpp -msgid "Run" -msgstr "" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "" - -#: src/handle_action.cpp -msgid "Crouch" +msgid "Cycle move mode" msgstr "" #: src/handle_action.cpp @@ -230517,6 +224244,10 @@ msgid_plural "Withdraw how much? Max: %d cents. (0 to cancel) " msgstr[0] "" msgstr[1] "" +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "" @@ -230623,7 +224354,7 @@ msgstr "Das hier aufräumen? %s" #: src/iexamine.cpp msgid "Climb obstacle?" -msgstr "" +msgstr "Hindernis erklettern?" #: src/iexamine.cpp msgid "You vault over the obstacle with ease." @@ -230759,11 +224490,11 @@ msgstr "Versuchen, den Tresor zu knacken?" #: src/iexamine.cpp msgid "You start cracking the safe." -msgstr "" +msgstr "Du fängst an, den Tresor zu knacken." #: src/iexamine.cpp msgid "Attempt to hack this safe?" -msgstr "" +msgstr "Versuchen, den Tresor zu hacken?" #: src/iexamine.cpp #, c-format @@ -230856,11 +224587,11 @@ msgstr "Du hörst das Grollen von sich schiebendem Stein." #: src/iexamine.cpp msgid "This flower is dead. You can't get it." -msgstr "" +msgstr "Diese Blume ist tot. Du kannst sie nicht nehmen." #: src/iexamine.cpp msgid "This plant is dead. You can't get it." -msgstr "" +msgstr "Diese Pflanze ist tot. Du kannst sie nicht nehmen." #: src/iexamine.cpp msgid "You drink some nectar." @@ -230896,7 +224627,7 @@ msgstr "Diese Blume hat ein berauschendes Aroma." #: src/iexamine.cpp msgid "You fall asleep…" -msgstr "" +msgstr "Du schläfst ein..." #: src/iexamine.cpp msgid "Your legs are covered in the poppy's roots!" @@ -230917,7 +224648,7 @@ msgstr "" #: src/iexamine.cpp msgid "You couldn't harvest anything." -msgstr "Es konntest nichts ernten." +msgstr "Du konntest nichts ernten." #: src/iexamine.cpp msgid "Nothing can be harvested from this plant in current season" @@ -230926,7 +224657,7 @@ msgstr "" #: src/iexamine.cpp msgid "This flower is still alive, despite the harsh conditions…" -msgstr "" +msgstr "Diese Blume lebt immer noch, trotz der rauen Umstände…" #: src/iexamine.cpp #, c-format @@ -230971,7 +224702,7 @@ msgstr "Du hast keine Samen zum Einpflanzen." #: src/iexamine.cpp msgid "Something's lying there…" -msgstr "" +msgstr "Da liegt etwas…" #: src/iexamine.cpp src/mission_companion.cpp msgid "You saved your seeds for later." @@ -231053,6 +224784,8 @@ msgstr "" #: src/iexamine.cpp msgid "This kiln is empty. Fill it with wood or bone and try again." msgstr "" +"Dieser Ofen ist leer. Fülle ihn mit Holz oder Knochen und versuch es noch " +"einmal." #: src/iexamine.cpp msgid "The batch in this kiln is too small to yield any charcoal." @@ -231077,7 +224810,7 @@ msgstr "Du befeuerst den Holzkohleofen." #: src/iexamine.cpp msgid "This kiln is empty…" -msgstr "" +msgstr "Dieser Ofen ist leer." #: src/iexamine.cpp msgid "There's a charcoal kiln there." @@ -231238,7 +224971,7 @@ msgstr "" #: src/iexamine.cpp #, c-format msgid "Take down the %s" -msgstr "" +msgstr "%s abnehmen" #: src/iexamine.cpp #, c-format @@ -231247,7 +224980,7 @@ msgstr "" #: src/iexamine.cpp msgid "You weren't able to start a fire." -msgstr "" +msgstr "Du warst nicht in der Lage, ein Feuer zu entfachen." #: src/iexamine.cpp msgid "You can't light a fire there." @@ -231434,7 +225167,7 @@ msgstr "Du hast kein Werkzeug zum Graben." #: src/iexamine.cpp #, c-format msgid "Dig up %s? This kills the tree!" -msgstr "" +msgstr "%s ausgraben? Das würde den Baum töten!" #: src/iexamine.cpp msgid "Which container?" @@ -231722,18 +225455,19 @@ msgid "You're illiterate, and can't read the screen." msgstr "Du bist ein Analphabet und kannst nicht vom Bildschirm lesen." #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" +#, c-format +msgid "Failure! No %s pumps found!" msgstr "" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" +#, c-format +msgid "Failure! No %s tank found!" msgstr "" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." msgstr "" -"Diese Tankstelle hat keinen Treibstoff mehr. Wir entschuldigen uns für die " -"Unannehmlichkeiten." #: src/iexamine.cpp msgid "Welcome to AutoGas!" @@ -231744,36 +225478,41 @@ msgid "What would you like to do?" msgstr "Was möchten Sie tun?" #: src/iexamine.cpp -msgid "Buy gas." -msgstr "Benzin kaufen." +#, c-format +msgid "Buy %s." +msgstr "" #: src/iexamine.cpp msgid "Refund cash." msgstr "Geld zurückverlangen." #: src/iexamine.cpp -msgid "Current gas pump: " -msgstr "Aktuelle Zapfsäule: " +#, c-format +msgid "Current %s pump: " +msgstr "" #: src/iexamine.cpp -msgid "Choose a gas pump." -msgstr "Zapfsäule wählen." +#, c-format +msgid "Choose a %s pump." +msgstr "" #: src/iexamine.cpp msgid "Your discount: " msgstr "Ihr Rabatt: " #: src/iexamine.cpp -msgid "Your price per gasoline unit: " -msgstr "Ihr Preis pro Benzineinheit: " +#, c-format +msgid "Your price per %s unit: " +msgstr "" #: src/iexamine.cpp msgid "Hack console." msgstr "Konsole hacken." #: src/iexamine.cpp -msgid "Please choose gas pump:" -msgstr "Bitte Zapfsäule wählen:" +#, c-format +msgid "Please choose %s pump:" +msgstr "" #: src/iexamine.cpp msgid "Pump " @@ -231785,7 +225524,7 @@ msgstr "Nicht genügend Geld, bitte laden Sie ihre Geldkarte wieder auf." #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" msgstr "" #: src/iexamine.cpp @@ -231839,8 +225578,8 @@ msgid "You jump over an obstacle." msgstr "" #: src/iexamine.cpp -msgid "You can't climb down there" -msgstr "Du kannst hier nicht herunterklettern" +msgid "You can't climb down there." +msgstr "" #: src/iexamine.cpp #, c-format @@ -231867,6 +225606,14 @@ msgstr "" msgid "You may have problems climbing back up. Climb down?" msgstr "" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "" + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "" @@ -231902,8 +225649,8 @@ msgstr "" #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate." -" Please move patient to appropriate facility. Exiting." +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." msgstr "" #: src/iexamine.cpp @@ -232476,10 +226223,6 @@ msgstr "Fahrzeugteile" msgid "Traps" msgstr "Fallen" -#: src/init.cpp -msgid "Bionics" -msgstr "Bioniken" - #: src/init.cpp msgid "Terrain" msgstr "Terrain" @@ -232516,6 +226259,10 @@ msgstr "Fahrzeugprototypen" msgid "Mapgen weights" msgstr "Kartengeneratorgewichtungen" +#: src/init.cpp +msgid "Behaviors" +msgstr "" + #: src/init.cpp msgid "Monster types" msgstr "Monstertypen" @@ -232532,6 +226279,10 @@ msgstr "Monsterfraktionen" msgid "Factions" msgstr "" +#: src/init.cpp +msgid "Move modes" +msgstr "" + #: src/init.cpp msgid "Crafting recipes" msgstr "Fertigungsrezepte" @@ -232552,10 +226303,6 @@ msgstr "NPC-Klassen" msgid "Missions" msgstr "" -#: src/init.cpp -msgid "Behaviors" -msgstr "" - #: src/init.cpp msgid "Harvest lists" msgstr "Erntelisten" @@ -232568,8 +226315,8 @@ msgstr "Anatomien" msgid "Mutations" msgstr "Mutationen" -#: src/init.cpp -msgid "Achivements" +#: src/init.cpp src/scores_ui.cpp +msgid "Achievements" msgstr "" #: src/init.cpp @@ -232628,6 +226375,10 @@ msgstr "" msgid "Ammunition types" msgstr "Munitionstypen" +#: src/init.cpp +msgid "Bionics" +msgstr "Bioniken" + #: src/init.cpp msgid "Gates" msgstr "Tore" @@ -232664,6 +226415,10 @@ msgstr "" msgid "Scores" msgstr "" +#: src/init.cpp +msgid "Achivements" +msgstr "" + #: src/init.cpp msgid "Disease types" msgstr "" @@ -233078,7 +226833,7 @@ msgstr "" msgid "No items were selected. Use %s to select them." msgstr "Keine Gegenstände wurden ausgewählt. Benutze %s, um sie auszuwählen." -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "ABZULEGENDE GEGENSTÄNDE" @@ -233219,14 +226974,18 @@ msgstr "" msgid "Material: %s" msgstr "Material: %s" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp src/item_pocket.cpp msgid "Volume: " msgstr "Volumen: " -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "Gewicht: " +#: src/item.cpp +msgid "Length: " +msgstr "Länge:" + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -233249,7 +227008,7 @@ msgstr "" #: src/item.cpp msgid "Minimum requirements:" -msgstr "" +msgstr "Minimale Anforderungen: " #: src/item.cpp #, c-format @@ -233262,19 +227021,19 @@ msgstr "Anzahl: " #: src/item.cpp msgid "age (hours): " -msgstr "" +msgstr "Alter (Stunden):" #: src/item.cpp msgid "charges: " -msgstr "" +msgstr "Ladungen:" #: src/item.cpp msgid "damage: " -msgstr "" +msgstr "Schaden:" #: src/item.cpp msgid "active: " -msgstr "" +msgstr "Aktiv:" #: src/item.cpp msgid "burn: " @@ -233292,23 +227051,23 @@ msgstr "" #: src/item.cpp msgid "age (turns): " -msgstr "" +msgstr "Alter (Runden):" #: src/item.cpp msgid "rot (turns): " -msgstr "" +msgstr "Faul (Runden):" #: src/item.cpp msgid "max rot (turns): " -msgstr "" +msgstr "Max Faul (Runden):" #: src/item.cpp msgid "last rot: " -msgstr "last rot: " +msgstr "Letztes Faul: " #: src/item.cpp msgid "last temp: " -msgstr "last temp: " +msgstr "Letzte Temp: " #: src/item.cpp msgid "Temp: " @@ -233328,11 +227087,11 @@ msgstr "" #: src/item.cpp msgid "latent heat: " -msgstr "" +msgstr "Latente Wärme:" #: src/item.cpp msgid "Freeze point: " -msgstr "" +msgstr "Gefrierpunkt:" #: src/item.cpp msgid "Quench: " @@ -233358,6 +227117,10 @@ msgstr "Upper" msgid "Portions: " msgstr "Portionen: " +#: src/item.cpp +msgid "Consume time: " +msgstr "Konsumier-Zeit:" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "* Kann süchtig machen." @@ -233390,11 +227153,12 @@ msgstr "Vitamine (ETD): " #: src/item.cpp msgid "Other contents: " -msgstr "" +msgstr "Andere Inhalte:" #: src/item.cpp msgid "* This food will cause an allergic reaction." msgstr "" +"* Dieses Lebensmittel wird eine allergische Reaktion auslösen. " #: src/item.cpp msgid "* This food contains human flesh." @@ -233472,6 +227236,8 @@ msgid "" "This food has started to rot. Eating it would be a " "very bad idea." msgstr "" +"Dieses Lebensmittel hat angefangen zu faulen. Es zu " +"essen wäre eine sehr schlechte Idee. " #: src/item.cpp #, c-format @@ -233486,7 +227252,7 @@ msgstr "Kapazität: " #: src/item.cpp msgid " moves per round" -msgstr "" +msgstr " Züge pro Runde" #: src/item.cpp msgid "Reload time: " @@ -233494,11 +227260,11 @@ msgstr "Nachladedauer: " #: src/item.cpp msgid "Ammunition: " -msgstr "" +msgstr "Munition:" #: src/item.cpp msgid "Ammunition type: " -msgstr "" +msgstr "Munitions Typ:" #: src/item.cpp msgid "Damage: " @@ -233506,7 +227272,7 @@ msgstr "Schaden: " #: src/item.cpp msgid "Damage multiplier: " -msgstr "" +msgstr "Schadensvervielfacher:" #: src/item.cpp msgid "Armor-pierce: " @@ -233526,7 +227292,7 @@ msgstr "Rückstoß: " #: src/item.cpp msgid "Critical multiplier: " -msgstr "" +msgstr "Kritischer Vervielfacher:" #: src/item.cpp msgid "This ammo has been hand-loaded." @@ -233553,7 +227319,7 @@ msgstr "" #: src/item.cpp msgid "Ranged damage: " -msgstr "" +msgstr "Reichweite Schaden: " #: src/item.cpp msgid " = " @@ -233581,7 +227347,7 @@ msgstr "Empfohlene Stärke (Feuerstoß): " #: src/item.cpp msgid " moves " -msgstr "" +msgstr " Züge" #: src/item.cpp msgid "Skill used: " @@ -233608,7 +227374,7 @@ msgstr[1] "Benutzt %i Esz.-Ladungen pro Schuss" #: src/item.cpp msgid "Base aim speed: " -msgstr "" +msgstr "Grundzielgeschwindigkeit: " #: src/item.cpp msgid "Even chance of good hit at range: " @@ -233618,21 +227384,25 @@ msgstr "Gleiche Chance für guten Fernschuss: " msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr "" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "Zielgeschwindigkeitsmalus: " #: src/item.cpp msgid "Fire modes: " -msgstr "" +msgstr "Feuermodi: " #: src/item.cpp msgid "Compatible magazines: " -msgstr "" +msgstr "Kompatible Magazine: " #: src/item.cpp msgid "Mods: " -msgstr "" +msgstr "Mods: " #: src/item.cpp #, c-format @@ -233641,6 +227411,10 @@ msgid_plural "Contains %i casings" msgstr[0] "Enthält %i Hülse" msgstr[1] "Enthält %i Hülsen" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "" + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -233657,6 +227431,14 @@ msgstr "" "Wenn an einer Feuerwaffe befestigt, ermöglicht es dir, " "Distanzangriffe damit vorzunehmen." +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "" + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" + #: src/item.cpp msgid "Dispersion modifier: " msgstr "Streuungsmodifikator: " @@ -233697,7 +227479,7 @@ msgstr "Benutzt mit: " #: src/item.cpp #, c-format msgid "Location: %s" -msgstr "" +msgstr "Ort: %s" #: src/item.cpp msgid "Incompatible with mod location: " @@ -233711,6 +227493,10 @@ msgstr "Schutz: Schlag: " msgid "Cut: " msgstr "Schnitt: " +#: src/item.cpp +msgid "Ballistic: " +msgstr "Ballistisch:" + #: src/item.cpp msgid "Acid: " msgstr "Säure: " @@ -233829,7 +227615,7 @@ msgstr "Schicht: " #: src/item.cpp msgid "Personal aura. " -msgstr "" +msgstr "Persönliche Aura. " #: src/item.cpp msgid "Close to skin. " @@ -233849,7 +227635,7 @@ msgstr "Taille. " #: src/item.cpp msgid "Outer aura. " -msgstr "" +msgstr "Äußere Aura. " #: src/item.cpp msgid "Normal. " @@ -233895,10 +227681,6 @@ msgstr "Hinderung: " msgid "Encumbrance when full: " msgstr "Hinderung wenn voll: " -#: src/item.cpp -msgid "Storage: " -msgstr "Lagerplatz: " - #: src/item.cpp msgid "Weight capacity modifier: " msgstr "" @@ -233907,6 +227689,10 @@ msgstr "" msgid "Weight capacity bonus: " msgstr "" +#: src/item.cpp +msgid "Storage: " +msgstr "Lagerplatz: " + #: src/item.cpp msgid "* This item can be worn with a helmet." msgstr "" @@ -233977,19 +227763,19 @@ msgstr "" #: src/item.cpp msgid "can be upsized" -msgstr "" +msgstr "kann vergrößert werden " #: src/item.cpp msgid "can be downsized" -msgstr "" +msgstr "kann verkleinert werden " #: src/item.cpp msgid "can not be downsized" -msgstr "" +msgstr "kann nicht verkleinert werden " #: src/item.cpp msgid "can not be upsized" -msgstr "" +msgstr "kann nicht vergrößert werden " #: src/item.cpp #, c-format @@ -234015,11 +227801,13 @@ msgstr "" #: src/item.cpp #, c-format msgid "* This clothing can be refitted%s." -msgstr "" +msgstr "* Diese Kleindung kann angepasst werden%s. " #: src/item.cpp msgid "* This clothing can not be refitted, upsized, or downsized." msgstr "" +"* Diese Kleindung kann nicht angepasst, vergrößert oder verkleinert " +"werden. " #: src/item.cpp msgid "* This item can be worn on either side of the body." @@ -234063,18 +227851,19 @@ msgstr "Ein Kampfkunst-Handbuch." #: src/item.cpp #, c-format msgid "You can learn %s style from it." -msgstr "" +msgstr "Du kannst %s Stil davon lernen." #: src/item.cpp #, c-format msgid "This fighting style is %s to learn." -msgstr "" +msgstr "Dieser Kampstil ist %s zu lernen." #: src/item.cpp #, c-format msgid "" "It'd be easier to master if you'd have skill expertise in %s." msgstr "" +"Es ist einfach zu meistern wenn du schon Erfahrung in %s hast." #: src/item.cpp msgid "It can be understood by beginners." @@ -234118,7 +227907,11 @@ msgid_plural "" "A training session with this book takes " "minutes." msgstr[0] "" +"Eine Trainingsrunde mit diesem Buch dauert " +"minuten." msgstr[1] "" +"Eine Trainingsrunde mit diesem Buch dauert " +"minuten." #: src/item.cpp msgid "This book has unread chapter." @@ -234142,27 +227935,6 @@ msgstr "" msgid "You need to read this book to see its contents." msgstr "Du musst dieses Buch lesen, um dessen Inhalte zu sehen." -#: src/item.cpp -msgid "This container " -msgstr "Dieser Behälter " - -#: src/item.cpp -msgid "can be resealed, " -msgstr "ist wiederverschließbar, " - -#: src/item.cpp -msgid "is watertight, " -msgstr "ist wasserdicht, " - -#: src/item.cpp -msgid "prevents spoiling, " -msgstr "verhindert Verderben," - -#: src/item.cpp -#, c-format -msgid "can store %s %s." -msgstr "fasst %s %s." - #: src/item.cpp #, c-format msgid "Capacity: %dmJ" @@ -234185,9 +227957,8 @@ msgstr "Ladungen: %d" #: src/item.cpp msgid "Compatible magazines: " -msgstr "" +msgstr "Kompatible Magazine:" -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -234196,15 +227967,43 @@ msgstr[0] "Maximal Ladung %s." msgstr[1] "Maximal Ladungen %s." #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "Maximal Ladung." -msgstr[1] "Maximal Ladungen." +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard " +"batteries." +msgstr "" +"* Dieses Werkzeug wurde so modifiziert, dass es mit einer " +"Einheitsstromzufuhr betrieben wird. Es ist " +"nicht mit Standardbatterien kompatibel." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "" +"* Dieses Werkzug hat eine wiederaufladbare Stromzelle und ist " +"nicht mit Standardbatterien kompatibel." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" +"* Dieses Werkzeug hat eine wiederaufladbare Energiezelle und " +"kann in jeder Esz.-kompatiblen Ladestation " +"wiederaufgeladen werden. Du könntest es mit Standardbatterien " +"laden, aber ein Entladen ist unmöglich." + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "* Dieses Werkzeug arbeitet mit bionischem Strom. " #: src/item.cpp #, c-format msgid "Using: %s" -msgstr "" +msgstr "Benutzen: %s" #: src/item.cpp #, c-format @@ -234214,7 +228013,7 @@ msgstr "Hergestellt aus: %s" #: src/item.cpp #, c-format msgid "Repair using %s." -msgstr "" +msgstr "Reparieren mit %s. " #: src/item.cpp msgid "* This item can be reinforced." @@ -234227,7 +228026,7 @@ msgstr "* Dieser Gegenstand ist nicht reparierbar." #: src/item.cpp #, c-format msgid "Disassembly takes %s and might yield: %s." -msgstr "" +msgstr "Zerlegen dauert %s und könnte %s ergeben. " #: src/item.cpp #, c-format @@ -234269,27 +228068,31 @@ msgstr "" #: src/item.cpp msgid "Power Capacity:" -msgstr "" +msgstr "Energie Kapazität: " #: src/item.cpp msgid "Environmental Protection: " -msgstr "" +msgstr "Umgebungs-Schutz: " #: src/item.cpp msgid "Bash Protection: " -msgstr "" +msgstr "Schlag-Schutz: " #: src/item.cpp msgid "Cut Protection: " -msgstr "" +msgstr "Schnitt-Schutz: " + +#: src/item.cpp +msgid "Ballistic Protection: " +msgstr "Ballistik-Schutz: " #: src/item.cpp msgid "Stat Bonus: " -msgstr "" +msgstr "Werte-Bonus: " #: src/item.cpp msgid "Melee damage: " -msgstr "" +msgstr "Nahkampf-Schaden: " #: src/item.cpp msgid "Bash: " @@ -234309,7 +228112,7 @@ msgstr "Züge pro Angriff: " #: src/item.cpp msgid "Typical damage per second:" -msgstr "" +msgstr "Typischer Schaden pro Sekunde:" #: src/item.cpp msgid "Techniques when wielded: " @@ -234333,35 +228136,39 @@ msgstr "" #: src/item.cpp msgid "Average melee damage:" -msgstr "" +msgstr "Durchschnittlicher Nahkamp-Schaden: " #: src/item.cpp #, c-format msgid "Critical hit chance %d%% - %d%%" -msgstr "" +msgstr "Kritischer Treffer Chance %d%% - %d%% " #: src/item.cpp #, c-format msgid "" "%d bashing (%d on a critical hit)" msgstr "" +"%d Schlag (%d bei Kritischer Treffer) " #: src/item.cpp #, c-format msgid "" "%d cutting (%d on a critical hit)" msgstr "" +"%d Schnitt (%d bei Kritischer Treffer)" +" " #: src/item.cpp #, c-format msgid "" "%d piercing (%d on a critical hit)" msgstr "" +"%d Stich (%d Kritischer Treffer) " #: src/item.cpp #, c-format msgid "%d moves per attack" -msgstr "" +msgstr "%d Züge pro Angriff" #: src/item.cpp msgid "Integrated mod: " @@ -234380,6 +228187,15 @@ msgid "" "* This item is not rigid. Its volume and encumbrance increase " "with contents." msgstr "" +"* Dieser Gegenstand ist nicht starr. Sein Volumen und Hinderung" +" steigt mit seinem Inhalt. " + +#: src/item.cpp +msgid "" +"* This item is not rigid. Its volume increases with contents." +msgstr "" +"* Dieser Gegenstand ist nicht starr. Sein Volumen steigt mit " +"seinem Inhalt. " #: src/item.cpp msgid "* This item does not conduct electricity." @@ -234402,40 +228218,6 @@ msgstr "" "* Dieses Kleidungsstück wird bei dir eine allergische Reaktion " "auslösen." -#: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard " -"batteries." -msgstr "" -"* Dieses Werkzeug wurde so modifiziert, dass es mit einer " -"Einheitsstromzufuhr betrieben wird. Es ist " -"nicht mit Standardbatterien kompatibel." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." -msgstr "" -"* Dieses Werkzug hat eine wiederaufladbare Stromzelle und ist " -"nicht mit Standardbatterien kompatibel." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." -msgstr "" -"* Dieses Werkzeug hat eine wiederaufladbare Energiezelle und " -"kann in jeder Esz.-kompatiblen Ladestation " -"wiederaufgeladen werden. Du könntest es mit Standardbatterien " -"laden, aber ein Entladen ist unmöglich." - -#: src/item.cpp -msgid "* This tool runs on bionic power." -msgstr "" - #: src/item.cpp msgid "" "* This item has been modified to listen to radio signals. It " @@ -234463,20 +228245,6 @@ msgstr "" "* Wird dieser Gegenstand mit einem Funksignal aktiviert, wird " "er sofort detonieren." -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "* Diese Waffe benötigt zwei freie Hände zum Feuern." - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "" -"* Diese Modifikation versperrt die Sicht der Zielvorrichtung der " -"Waffe." - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "" - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -234520,7 +228288,7 @@ msgstr "" #: src/item.cpp msgid "Can be stored in: " -msgstr "" +msgstr "Kann aufbewahrt werden in: " #: src/item.cpp msgid "It's done and can be activated." @@ -234641,7 +228409,7 @@ msgstr "verbrannt " #: src/item.cpp #, c-format msgid "in progress %s" -msgstr "" +msgstr "in Verarbeitung %s" #. ~ %1$s: item name, %2$s: content liquid, food, or drink name #: src/item.cpp @@ -234655,7 +228423,7 @@ msgstr "%1$s der %2$s" #, c-format msgctxt "item name" msgid "%1$s with %2$s" -msgstr "" +msgstr " %1$s mit %2$s" #. ~ %1$s: item name, %2$zd: content size #: src/item.cpp @@ -234663,8 +228431,8 @@ msgstr "" msgctxt "item name" msgid "%1$s with %2$zd item" msgid_plural "%1$s with %2$zd items" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%1$s mit %2$zd Item" +msgstr[1] "%1$s mit %2$zd Items" #: src/item.cpp msgid " (poisonous)" @@ -234677,7 +228445,7 @@ msgstr " (halluzinogen)" #: src/item.cpp #, c-format msgid " (%s turns)" -msgstr "" +msgstr "(%s Runden)" #: src/item.cpp msgid " (dirty)" @@ -234717,19 +228485,19 @@ msgstr " (geschmolzen)" #: src/item.cpp msgid " (too big)" -msgstr "" +msgstr "(zu groß)" #: src/item.cpp msgid " (huge!)" -msgstr "" +msgstr "(riesig!)" #: src/item.cpp msgid " (too small)" -msgstr "" +msgstr "(zu klein)" #: src/item.cpp msgid " (tiny!)" -msgstr "" +msgstr "(winzig!)" #: src/item.cpp msgid " (poor fit)" @@ -234741,15 +228509,15 @@ msgstr " (versifft)" #: src/item.cpp msgid " (sterile)" -msgstr "" +msgstr "(steril)" #: src/item.cpp msgid " (packed)" -msgstr "" +msgstr "(verpackt)" #: src/item.cpp msgid " (UPS)" -msgstr " (Esz.)" +msgstr " (ESZ.)" #: src/item.cpp msgid " (radio:" @@ -234784,7 +228552,7 @@ msgstr " (angezündet)" #: src/item.cpp msgid " (plugged in)" -msgstr "" +msgstr "(eingesteckt)" #: src/item.cpp msgid " (active)" @@ -234830,7 +228598,7 @@ msgstr "*%s*" #, c-format msgctxt "cash card and money" msgid "%1$s %3$s of %2$s" -msgstr "" +msgstr "%1$s %3$s von %2$s " #. ~ This is a string to display the total amount of money in a stack of cash #. cards. @@ -234873,7 +228641,7 @@ msgstr "\\." #: src/item.cpp msgid "XX" -msgstr "" +msgstr "XX" #: src/item.cpp msgid ".." @@ -234911,7 +228679,7 @@ msgstr "zermalmte " #: src/item.cpp msgid "fully intact " -msgstr "" +msgstr "voll intakt" #: src/item.cpp msgid "isn't a weapon" @@ -234924,7 +228692,7 @@ msgstr "ist eine Waffenmodifikation, es kann nicht modifiziert werden" #: src/item.cpp #, c-format msgid "already has a %s" -msgstr "hat schon 1 %s" +msgstr "hat schon ein %s" #: src/item.cpp msgid "doesn't have a slot for this mod" @@ -234979,17 +228747,7 @@ msgstr "kann nicht auf einer Waffe mit »%s« montiert werden" #, c-format msgctxt "magazine" msgid "Eject %1$s from %2$s?" -msgstr "" - -#: src/item.cpp -#, c-format -msgid "You can't mix loads in your %s." -msgstr "Du kannst die Ladungen nicht vermischen in deinem %s." - -#: src/item.cpp -#, c-format -msgid "That %s isn't water-tight." -msgstr "%s ist nicht wasserdicht." +msgstr "Auswerfen %1$s von %2$s? " #: src/item.cpp #, c-format @@ -234998,11 +228756,6 @@ msgstr "" "%s muss auf dem Boden sein oder in der Hand gehalten werden, um Inhalte zu " "enthalten!" -#: src/item.cpp -#, c-format -msgid "You can't seal that %s!" -msgstr "Du kannst dieses %s nicht versiegeln!" - #: src/item.cpp #, c-format msgid "That %1$s won't hold %2$s." @@ -235123,7 +228876,7 @@ msgstr[1] "%s-Blut" #, c-format msgctxt "corpse ownership qualifier" msgid "%1$s of a %2$s" -msgstr "" +msgstr "%1$s von einem %2$s " #. ~ %1$s: name of corpse with modifiers; %2$s: proper name; %3$s: species #. name @@ -235131,7 +228884,7 @@ msgstr "" #, c-format msgctxt "corpse ownership qualifier" msgid "%1$s of %2$s, %3$s" -msgstr "" +msgstr "%1$s von %2$s, %3$s" #: src/item_action.cpp msgid "You do not have an item that can perform this action." @@ -235145,6 +228898,31 @@ msgstr "Du hast keinerlei Gegenstände mit registrierten Verwendungszwecken" msgid "Execute which action?" msgstr "Welche Aktion ausführen?" +#: src/item_contents.cpp +msgid "is not a container" +msgstr "" + +#: src/item_contents.cpp +msgid "is not rigid" +msgstr "" + +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "" + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr "" + +#: src/item_contents.cpp +#, c-format +msgid "%d Pockets with capacity:" +msgstr "" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" +msgstr "" + #: src/item_factory.cpp msgid "" "Can be activated to increase environmental protection. Will " @@ -235172,6 +228950,179 @@ msgstr "Inventar" msgid "inside %s" msgstr "" +#: src/item_pocket.cpp +msgid "sealed" +msgstr "" + +#: src/item_pocket.cpp +msgid "open" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Pocket %d:" +msgstr "" + +#: src/item_pocket.cpp +msgid "Maximum item length: " +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Minimum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Maximum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Base moves to remove item: %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is rigid." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket can contain a liquid." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket can contain a gas." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket will spill if placed into another item or worn." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket protects its contents from fire." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Contained items spoil at %.0f%% their original rate." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Items in this pocket weigh %.0f%% their original weight." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "%s pocket %d" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "pocket %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is empty." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is sealed." +msgstr "" + +#: src/item_pocket.cpp +msgid " of " +msgstr " von " + +#: src/item_pocket.cpp +msgid "Contents of this pocket:" +msgstr "" + +#: src/item_pocket.cpp +msgid "only mods can go into mod pocket" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster already contains an item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't contain liquid" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't mix liquid with contained item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't put non liquid into pocket with liquid" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't contain gas" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't mix gas with contained item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't put non gas into pocket with gas" +msgstr "" + +#: src/item_pocket.cpp +msgid "item does not have correct flag" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is not an ammo" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is not the correct ammo type" +msgstr "" + +#: src/item_pocket.cpp +msgid "tried to put too many charges of ammo in item" +msgstr "" + +#: src/item_pocket.cpp +msgid "item too big" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too long" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too small" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too heavy" +msgstr "" + +#: src/item_pocket.cpp +msgid "pocket is holding too much weight" +msgstr "" + +#: src/item_pocket.cpp +msgid "not enough space" +msgstr "" + #: src/itype.h msgid "click." msgstr "»Klick«." @@ -235231,7 +229182,7 @@ msgstr "Du hast keine Nikotinflüssigkeit!" #: src/iuse.cpp msgid "Ugh, too much nicotine… you feel nasty." -msgstr "" +msgstr "Ugh, zu viel Nikotin. Du fühlst dich elend." #: src/iuse.cpp msgid "You take some antibiotics." @@ -235375,6 +229326,12 @@ msgstr "Du fühlst dich widerstandsfähig." msgid "You no longer need to fear the flu, at least for some time." msgstr "" +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "" + #: src/iuse.cpp msgid "" "You no longer need to worry about asthma attacks, at least for a while." @@ -236805,8 +230762,8 @@ msgstr " braucht einen neuen Gasmaskenfilter!" #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." -msgstr "%s hat keinen Filter." +msgid "Your %s doesn't have a filter." +msgstr "" #: src/iuse.cpp #, c-format @@ -239000,19 +232957,13 @@ msgstr[1] "Du lädst %1$d Patronen des Typs »%2$s« in das %3$s." #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" -msgstr "%s scannt dich und macht wütende Piepsgeräusche!" +msgid "You deploy the %s wrong. It is hostile!" +msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "%s macht einen ZEFF-Pieps, während er dich scannt." - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." +msgid "You deploy the %s." msgstr "" -"Eine blinkende LED am Lasergeschützturm scheint schwaches Licht zu " -"kennzeichnen." #: src/iuse_actor.cpp msgid "Place npc where?" @@ -239038,34 +232989,6 @@ msgstr "" "Es gibt außerdem ein bestimmtes Bionik, das dir mit dieser Art Rüstung " "hilft." -#: src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "" - -#: src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "Wo willst du den Dietrich anwenden?" - -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "" -"Mit dem Dietrich bohrst du in deiner Nase und deine Nebenhöhlen öffnen sich." - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "Diese Türe ist nicht abgeschlossen." - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "Hierauf kann der Dietrich nicht angewendet werden." - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "" @@ -239199,10 +233122,6 @@ msgstr "" "Mit deiner Fertigungsstufe wird es ca. %d Minuten brauchen, um ein Feuer zu " "entfachen." -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "Diesen Gegenstand hast du nicht." - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -239353,42 +233272,6 @@ msgstr "" msgid "You need at least %d charges to cauterize wounds." msgstr "Du brauchst mindestens %d Ladungen, um Wunden zu kauterisieren." -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "Keine geeigneten Leichen" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "" -"Die Aussicht, diese Leiche zu verstümmeln und als Sklave wiederauferstehen " -"zu lassen, ist momentan einfach zu viel für dich, um damit klar zu kommen." - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "Den niedergeschlagenen Zombie gezielt zum Zombiesklaven schlachten?" - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "Liebe statt Zklaverei!" - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "" - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "" -"Du fühlst dich entstzlich für das demütigen und versklaven von jemandes " -"Leiche." - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "Du brauchst mindestens %s 1." - #: src/iuse_actor.cpp msgid "Hsss" msgstr "Zisch" @@ -239479,6 +233362,10 @@ msgstr "" msgid "Spells Contained:" msgstr "" +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "" + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -239542,31 +233429,11 @@ msgstr "" msgid "This item never fails." msgstr "" -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too big to fit in your %2$s" -msgstr "%1$s ist zu groß, um in %2$s zu passen" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too small to fit in your %2$s" -msgstr "%1$s ist zu klein, um in %2$s zu passen" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too heavy to fit in your %2$s" -msgstr "%1$s ist zu schwer, um in %2$s zu passen" - #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" msgstr "Du glaubst nicht, dass es eine gute Idee wäre, %1$s in %2$s zu tun" -#: src/iuse_actor.cpp -#, c-format -msgid "You can't put your %1$s in your %2$s" -msgstr "Du kannst %1$s nicht in %2$s legen" - #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" @@ -239577,6 +233444,10 @@ msgstr "Du steckst %s in den Halfter" msgid "You need to unwield your %s before using it." msgstr "Du musst dich von %s entwaffnen, bevor du es verwenden kannst." +#: src/iuse_actor.cpp +msgid "Holster item" +msgstr "Gegenstand in Halfter stecken" + #: src/iuse_actor.cpp #, c-format msgid "Draw %s" @@ -239588,62 +233459,8 @@ msgid "Use %s" msgstr "%s benutzen" #: src/iuse_actor.cpp -msgid "Can be activated to store a suitable item." -msgid_plural "Can be activated to store suitable items." -msgstr[0] "Kann aktiviert werden, um einen geeigneten Gegenstand einzulagern." -msgstr[1] "Kann aktiviert werden, um geeignete Gegenstände einzulagern." - -#: src/iuse_actor.cpp -msgid "Num items: " -msgstr "Ggst. Anzahl: " - -#: src/iuse_actor.cpp -msgid "Item volume: Min: " -msgstr "Ggst. Volumen: Min: " - -#: src/iuse_actor.cpp -msgid " Max: " -msgstr " Max: " - -#: src/iuse_actor.cpp -msgid "Max item weight: " -msgstr "" - -#: src/iuse_actor.cpp -#, c-format -msgid " %s" -msgstr " %s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to store a single round of " -msgid_plural "Can be activated to store up to %i rounds of " -msgstr[0] "Zum Einlagern aktivieren. Max. Inhalt: 1 - " -msgstr[1] "Zum Einlagern aktivieren. Max. Inhalt: %i - " - -#: src/iuse_actor.cpp -#, c-format -msgid "No matching ammo for the %1$s" -msgstr "Keine passende Munition für %1$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "You store the %1$s in your %2$s" -msgstr "Du lagerst %1$s in %2$s" - -#: src/iuse_actor.cpp -msgid "Store ammo" -msgstr "Munition einlagern" - -#: src/iuse_actor.cpp -#, c-format -msgid "Store ammo in %s" -msgstr "Munition in %s einlagern" - -#: src/iuse_actor.cpp src/vehicle_use.cpp -#, c-format -msgid "Unload %s" -msgstr "%s entladen" +msgid "Can be activated to store suitable items." +msgstr "Kann aktiviert werden, um geeignete Gegenstände einzulagern." #: src/iuse_actor.cpp #, c-format @@ -239862,11 +233679,11 @@ msgstr "" #: src/iuse_actor.cpp msgid "Base bandaging quality: " -msgstr "" +msgstr "Basis Verbandsqualität:" #: src/iuse_actor.cpp msgid "Actual bandaging quality: " -msgstr "" +msgstr "Aktuelle Verbandsqualität:" #: src/iuse_actor.cpp msgid "Base disinfecting quality: " @@ -239878,7 +233695,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Chance to heal (percent): " -msgstr "" +msgstr "Heilungschancen (%):" #: src/iuse_actor.cpp msgid "* Bleeding: " @@ -239894,7 +233711,7 @@ msgstr "* Infektion: " #: src/iuse_actor.cpp msgid "Moves to use: " -msgstr "" +msgstr "Züge zum verwenden:" #: src/iuse_actor.cpp #, c-format @@ -239964,8 +233781,8 @@ msgid "You can't install bionics while mounted." msgstr "" #: src/iuse_actor.cpp -msgid "You can't self-install bionics." -msgstr "Du kannst Bioniken nicht selbst installieren." +msgid "You can't self-install this CBM." +msgstr "" #: src/iuse_actor.cpp msgid "You can't install a filthy CBM!" @@ -240112,6 +233929,10 @@ msgstr "" msgid "Cut" msgstr "" +#: src/iuse_actor.cpp +msgid "Ballistic" +msgstr "" + #: src/iuse_actor.cpp msgid "Acid" msgstr "" @@ -240124,10 +233945,6 @@ msgstr "" msgid "Warmth" msgstr "" -#: src/iuse_actor.cpp -msgid "Storage" -msgstr "Lagerplatz" - #: src/iuse_actor.cpp msgid "Are you sure? You will not gain any materials back." msgstr "Bist du dir sicher? Du wirst keine Materialien zurück erhalten." @@ -241034,10 +234851,6 @@ msgstr "" msgid "It is SOFTWARE BUG." msgstr "Es ist PROGRAMMIERFEHLER." -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "Roboter findet Mauzi v22July2008 – drücke »q« zum Verlassen." - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "Roboter findet Mauzi v22July2008" @@ -241060,11 +234873,12 @@ msgid ")." msgstr ")." #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if" " they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" #: src/iuse_software_kitten.cpp @@ -241072,8 +234886,14 @@ msgid "Press any key to start." msgstr "Drücke irgendeine Taste zum Starten." #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." -msgstr "Ungültiger Befehl: Drücke Richtungstasten oder drücke »q«." +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "" + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" @@ -241433,7 +235253,7 @@ msgid "Loading" msgstr "Laden" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" msgstr "" #: src/magic.cpp @@ -241443,7 +235263,7 @@ msgstr "" #: src/magic.cpp #, c-format msgid "%d moves" -msgstr "" +msgstr "%d Züge" #: src/magic.cpp #, c-format @@ -241647,6 +235467,12 @@ msgstr "" msgid "Only affects the monsters: %s" msgstr "" +#. ~ amount of damage per second, abbreviated +#: src/magic.cpp +#, c-format +msgid ", %d/sec" +msgstr "" + #: src/magic.cpp src/veh_interact.cpp msgid "Damage" msgstr "Schaden" @@ -244616,6 +238442,34 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "Öffnete einen seltsamen Tempel." +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "" + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -246294,12 +240148,35 @@ msgstr "Der Kopf von %s explodiert in einer Masse aus aufgewühlten Tentakeln!" msgid "The %s lashes its tentacle at you!" msgstr "%s schlägt ein Tentakel auf dich!" +#: src/monattack.cpp +#, c-format +msgid "The %s lashes its tentacle at !" +msgstr "" + #. ~ 1$s is bodypart name, 2$d is damage value. #: src/monattack.cpp #, c-format msgid "Your %1$s is hit for %2$d damage!" msgstr "%1$s wurde für %2$d Schaden getroffen!" +#. ~ 1$s is bodypart name, 2$d is damage value. +#: src/monattack.cpp +#, c-format +msgid "'s %1$s is hit for %2$d damage!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "" +"The %1$s lashes its tentacle at 's %2$s, but glances off their " +"armor!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s's arms fly out at you, but you dodge!" @@ -246400,6 +240277,10 @@ msgstr "%s starrt dich an und du erschauderst." msgid "You feel like you're being watched, it makes you sick." msgstr "Dir ist, als ob dich etwas beobachten würdest, es macht dich krank." +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -247503,21 +241384,6 @@ msgstr "" msgid "The %s was destroyed! GAME OVER!" msgstr "Der %s wurde zerstört! DAS SPIEL IST AUS!" -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its pockets, but there's nothing left in them." -msgstr "" -"Die Hände von %s fliegen zurück in die Taschen, aber in ihnen ist nichts " -"mehr übrig." - -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its remaining pockets, opening them!" -msgstr "" -"Die Hände von %s fliegen zurück in die verbleibenden Taschen und öffnen sie!" - #. ~ %s is the possessive form of the monster's name #: src/mondeath.cpp #, c-format @@ -247561,11 +241427,6 @@ msgstr "" msgid "zombie slave" msgstr "Zombiesklave" -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "%s schieben" - #: src/monexamine.cpp msgid "Rename" msgstr "Umbenennen" @@ -247645,7 +241506,7 @@ msgstr "" #: src/monexamine.cpp msgid "You cannot shear this animal without shears." -msgstr "" +msgstr "Du kannst dieses Tier nicht ohne Schurschere scheren." #: src/monexamine.cpp #, c-format @@ -248041,10 +241902,6 @@ msgstr "Verfolgend." msgid "Ignoring." msgstr "Ignorierend." -#: src/monster.cpp -msgid "Zombie slave." -msgstr "Zombiesklave." - #: src/monster.cpp msgid "Hostile!" msgstr "Feindlich!" @@ -248122,11 +241979,11 @@ msgid "It is nearly dead!" msgstr "Ist so gut wie tot!" #: src/monster.cpp -msgid " Difficulty " -msgstr " Schwierigkeitsgrad " +msgid "Can see to your current location" +msgstr "" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" +#: src/monster.cpp +msgid "Can't see to your current location" msgstr "" #: src/monster.cpp @@ -248177,11 +242034,6 @@ msgstr "%s: %s %s" msgid "It is %s." msgstr "Ist %s." -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "Ist %s." - #: src/monster.cpp msgid "an animal" msgstr "ein Tier" @@ -248531,6 +242383,15 @@ msgstr "" msgid "Focus trends towards:" msgstr "" +#. ~ This should never occur - this is the message when the character swtiches +#. to +#. ~ an invalid move mode or there's not a message for failing to switch to a +#. move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "" + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -249095,8 +242956,8 @@ msgstr "Trage-Gewicht: %.1f %s" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" -msgstr "Nahkampfschadensbonus: %.1f" +msgid "Bash damage bonus: %.1f" +msgstr "" #: src/newcharacter.cpp msgid "" @@ -249501,6 +243362,10 @@ msgstr "Zombies in der Nähe" msgid "Various limb wounds" msgstr "Diverse Gliedmaßenwunden" +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "" + #: src/newcharacter.cpp msgid "No starting NPC" msgstr "Keine startenden NPCs" @@ -249511,10 +243376,14 @@ msgstr "Nach Szenarionamen suchen." #: src/newcharacter.cpp src/player_display.cpp msgid "Height:" -msgstr "" +msgstr "Größe:" #: src/newcharacter.cpp src/player_display.cpp msgid "Age:" +msgstr "Alter:" + +#: src/newcharacter.cpp src/player_display.cpp +msgid "Blood type:" msgstr "" #: src/newcharacter.cpp @@ -249598,12 +243467,12 @@ msgstr "" #: src/newcharacter.cpp #, c-format msgid "Press %s to switch gender" -msgstr "" +msgstr "Drücke %s um das Geschlecht zu wechseln" #: src/newcharacter.cpp #, c-format msgid "Press %s to select location." -msgstr "" +msgstr "Drücke %s um Umgebung zu wählen" #: src/newcharacter.cpp msgid "Starting location:" @@ -249611,7 +243480,7 @@ msgstr "Startort:" #: src/newcharacter.cpp msgid "Starting Vehicle: " -msgstr "" +msgstr "Start Auto:" #: src/newcharacter.cpp msgid "Scenario: " @@ -249649,7 +243518,7 @@ msgstr "" #: src/newcharacter.cpp msgid "Are you SURE you're finished? Your name will be randomly generated." -msgstr "" +msgstr "Bist du SICHER fertig? Dein Name wird zufällig generiert." #: src/newcharacter.cpp src/worldfactory.cpp msgid "Are you SURE you're finished?" @@ -249657,14 +243526,26 @@ msgstr "Bist du SICHER, dass du fertig bist?" #: src/newcharacter.cpp msgid "Enter name. Cancel to delete all." -msgstr "" +msgstr "Gib deinen Namen an. Abbrechen um alles zu löschen." #: src/newcharacter.cpp msgid "Enter age in years. Minimum 16, maximum 55" -msgstr "" +msgstr "Gib dein Alter in Jahren an. Min 16, Max 55" #: src/newcharacter.cpp msgid "Enter height in centimeters. Minimum 145, maximum 200" +msgstr "Gib deine Größe in cm an. Min 145, Max 200" + +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "" + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" msgstr "" #: src/newcharacter.cpp @@ -249780,13 +243661,12 @@ msgid "%1$s says something but you can't hear it!" msgstr "%1$s sagt etwas, aber du kannst es nicht hören." #: src/npc.cpp -msgid "NPC: " +msgid "Aware of your presence" msgstr "" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" -msgstr "Hält: %s" +msgid "Unaware of you" +msgstr "" #: src/npc.cpp msgid "Completely untrusting" @@ -250164,8 +244044,13 @@ msgstr "" #: src/npcmove.cpp #, c-format -msgid "%s %s" -msgstr "%s %s" +msgid " %s, %s" +msgstr "" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" +msgstr "" #: src/npcmove.cpp #, c-format @@ -250689,7 +244574,7 @@ msgstr "." #: src/npctalk.cpp msgctxt "punctuation" msgid "…" -msgstr "" +msgstr "..." #: src/npctalk.cpp msgctxt "punctuation" @@ -251026,6 +244911,13 @@ msgstr "Bezahlen:" msgid "Select a follower" msgstr "Wähle einen Gefährten" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to get information on an item." +msgstr "" + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -251067,11 +244959,6 @@ msgstr "Weiter >" msgid "Examine which item?" msgstr "Was untersuchen?" -#: src/npctrade.cpp -#, c-format -msgid "Trade how many containers with %s [MAX: %d]: " -msgstr "" - #: src/npctrade.cpp #, c-format msgid "Trade how many %s [MAX: %d]: " @@ -251103,16 +244990,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to quit,\n" -"? to get information on an item." -msgstr "" - -#: src/options.cpp -msgid "System language" -msgstr "Systemsprache" - #: src/options.cpp msgid "General" msgstr "Allgemein" @@ -251133,11 +245010,6 @@ msgstr "Welt-Standard" msgid "Android" msgstr "Android" -#: src/options.cpp src/overmap_ui.cpp src/ranged.cpp -#, c-format -msgid "%s" -msgstr "%s" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -251183,6 +245055,10 @@ msgstr "Deon's" msgid "Basic" msgstr "Basispaket" +#: src/options.cpp +msgid "System language" +msgstr "Systemsprache" + #: src/options.cpp msgid "Default character name" msgstr "Standardprotagonistenname" @@ -251705,6 +245581,11 @@ msgstr "" msgid "12h" msgstr "12h" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "Militär" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -252218,18 +246099,16 @@ msgid "Terminal width" msgstr "Terminalbreite" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." +msgid "Set the size of the terminal along the X axis." msgstr "" -"Setzt die Größe des Terminals entlang der X-Achse. Erfordert Neustart." #: src/options.cpp msgid "Terminal height" msgstr "Terminalhöhe" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." +msgid "Set the size of the terminal along the Y axis." msgstr "" -"Setzt die Größe des Terminals entlang der Y-Achse. Erfordert Neustart." #: src/options.cpp msgid "Font blending" @@ -252350,12 +246229,13 @@ msgid "Choose the tileset you want to use." msgstr "Wähle den Feldbilder-Satz, den du verwenden willst." #: src/options.cpp -msgid "Memory map drawing mode" +msgid "Memory map overlay preset" msgstr "" #: src/options.cpp msgid "" -"Specified the mode in which the memory map is drawn. Requires restart." +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." msgstr "" #: src/options.cpp @@ -252366,6 +246246,70 @@ msgstr "" msgid "Sepia" msgstr "" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "" + #: src/options.cpp msgid "Pixel minimap" msgstr "Pixel-Minikarte" @@ -252590,142 +246534,6 @@ msgstr "2×" msgid "4x" msgstr "4×" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "Bekanntes Startgebiet" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "Bestimmt die Größe des Bereichs, der am Spielbeginn bekannt ist." - -#: src/options.cpp -msgid "Initial stat points" -msgstr "Anfangspunktezahl für Werte" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "Die Anfangspunktezahl der Werte eines neuen Protagonisten." - -#: src/options.cpp -msgid "Initial trait points" -msgstr "Anfangspunktezahl für Wesenszüge" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "Die Anfangspunktezahl der Wesenszüge eines neuen Protagonisten." - -#: src/options.cpp -msgid "Initial skill points" -msgstr "Anfangspunktezahl für Fertigkeiten" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "" -"Anfänglich verfügbare Punkte, die bei der Protagonistenerstellung für " -"Fertigkeiten ausgegeben werden können." - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "Maximale Wesenszug-Punkte" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "" -"Die maximale Anzahl der verfügbaren Punkte der Wesenszüge eines neuen " -"Protagonisten." - -#: src/options.cpp -msgid "Skill training speed" -msgstr "Geschwindigkeit der Fertigkeitentrainings" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "" -"Skaliert die Erfahrung, die man für das Trainieren von Fertigkeiten und das " -"Lesen von Büchern erhält. 0,5 ist halb so schnell wie normal, 2,0 ist " -"doppelt so schnell. 0,0 deaktiviert das Training von Fertigkeiten außer bei " -"der Ausbildung von NPCs." - -#: src/options.cpp -msgid "Skill rust" -msgstr "Einrosten der Fertigkeiten" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" -" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" -"Stellt den Grad des Einrostens ein. Normal: Wie bei Cataclysm. – Gedeckelt: " -"Gedeckelt ab Stufe 2 – Int: Intelligenzabhängig – Int. u. Deckel – " -"Intelligenzabhängig und gedeckelt – Aus: Kein Einrosten." - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "Normal" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "Gedeckelt" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "Int" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "Int. u. Deckel" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "Aus" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "Experimentelles 3D-Blickfeld" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in" -" z-level mode, the vision will extend beyond current z-level. Currently " -"very bugged!" -msgstr "" -"Falls falsch, ist die Sichtweite auf die aktuelle Z-Ebene begrenzt. Falls " -"diese Einstellung wahr und die Welt im Z-Ebenen-Modus ist, kann die " -"Sichtweite auch über die aktuelle Z-Ebene hinausgehen. Momentan voller Bugs!" - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "" - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "Experimentelle Pfadnamenkodierungskonvertierung" - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" -" Windows users." -msgstr "" -"Falls wahr, werden Dateipfadnamen beim Lesen von der Systemkodierung nach " -"UTF-8 transkodiert, und beim Schreiben in die andere Richtung. Hauptsächlich" -" für CJK-Windows-Benutzer." - #: src/options.cpp msgid "Core version data" msgstr "Kern-Versionsdaten" @@ -253032,6 +246840,142 @@ msgstr "Nur Mehrere" msgid "No freeform" msgstr "Keine freie Wahl" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "Bekanntes Startgebiet" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "Bestimmt die Größe des Bereichs, der am Spielbeginn bekannt ist." + +#: src/options.cpp +msgid "Initial stat points" +msgstr "Anfangspunktezahl für Werte" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "Die Anfangspunktezahl der Werte eines neuen Protagonisten." + +#: src/options.cpp +msgid "Initial trait points" +msgstr "Anfangspunktezahl für Wesenszüge" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "Die Anfangspunktezahl der Wesenszüge eines neuen Protagonisten." + +#: src/options.cpp +msgid "Initial skill points" +msgstr "Anfangspunktezahl für Fertigkeiten" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "" +"Anfänglich verfügbare Punkte, die bei der Protagonistenerstellung für " +"Fertigkeiten ausgegeben werden können." + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "Maximale Wesenszug-Punkte" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "" +"Die maximale Anzahl der verfügbaren Punkte der Wesenszüge eines neuen " +"Protagonisten." + +#: src/options.cpp +msgid "Skill training speed" +msgstr "Geschwindigkeit der Fertigkeitentrainings" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "" +"Skaliert die Erfahrung, die man für das Trainieren von Fertigkeiten und das " +"Lesen von Büchern erhält. 0,5 ist halb so schnell wie normal, 2,0 ist " +"doppelt so schnell. 0,0 deaktiviert das Training von Fertigkeiten außer bei " +"der Ausbildung von NPCs." + +#: src/options.cpp +msgid "Skill rust" +msgstr "Einrosten der Fertigkeiten" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" +" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" +"Stellt den Grad des Einrostens ein. Normal: Wie bei Cataclysm. – Gedeckelt: " +"Gedeckelt ab Stufe 2 – Int: Intelligenzabhängig – Int. u. Deckel – " +"Intelligenzabhängig und gedeckelt – Aus: Kein Einrosten." + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "Normal" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "Gedeckelt" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "Int" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "Int. u. Deckel" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "Aus" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "Experimentelles 3D-Blickfeld" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in" +" z-level mode, the vision will extend beyond current z-level. Currently " +"very bugged!" +msgstr "" +"Falls falsch, ist die Sichtweite auf die aktuelle Z-Ebene begrenzt. Falls " +"diese Einstellung wahr und die Welt im Z-Ebenen-Modus ist, kann die " +"Sichtweite auch über die aktuelle Z-Ebene hinausgehen. Momentan voller Bugs!" + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "" + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "Experimentelle Pfadnamenkodierungskonvertierung" + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" +" Windows users." +msgstr "" +"Falls wahr, werden Dateipfadnamen beim Lesen von der Systemkodierung nach " +"UTF-8 transkodiert, und beim Schreiben in die andere Richtung. Hauptsächlich" +" für CJK-Windows-Benutzer." + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "Schnellspeichern bei Fokusverlust" @@ -254030,7 +247974,7 @@ msgstr "Neumond" #: src/panels.cpp msgid "Waxing crescent" -msgstr "" +msgstr "zuneh. Sichel" #: src/panels.cpp msgid "Half moon" @@ -254038,7 +247982,7 @@ msgstr "Halbmond" #: src/panels.cpp msgid "Waxing gibbous" -msgstr "" +msgstr "zuneh. Halbmond" #: src/panels.cpp msgid "Full moon" @@ -254046,11 +247990,11 @@ msgstr "Vollmond" #: src/panels.cpp msgid "Waning gibbous" -msgstr "" +msgstr "abneh. Halbmond" #: src/panels.cpp msgid "Waning crescent" -msgstr "" +msgstr "abneh. Sichel" #: src/panels.cpp msgid "Dark moon" @@ -254062,7 +248006,7 @@ msgstr "Gegen Mitternacht" #: src/panels.cpp msgid "Dead of night" -msgstr "" +msgstr "Mitten in der Nacht" #: src/panels.cpp msgid "Around dawn" @@ -254122,19 +248066,19 @@ msgstr " (Fallend!!)" #: src/panels.cpp msgid "Scorching!" -msgstr "" +msgstr "Verbrennend!" #: src/panels.cpp msgid "Very hot!" -msgstr "" +msgstr "Sehr heiß!" #: src/panels.cpp msgid "Very cold!" -msgstr "" +msgstr "Sehr kalt!" #: src/panels.cpp msgid "Freezing!" -msgstr "" +msgstr "Erfrierend!" #: src/panels.cpp msgid "SAFE" @@ -254164,24 +248108,9 @@ msgstr "" msgid "PER" msgstr "" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "L" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "F" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "G" - #: src/panels.cpp msgid "DEAF" -msgstr "" +msgstr "TAUB" #: src/panels.cpp msgid "Sound:" @@ -254217,7 +248146,7 @@ msgstr "" #: src/panels.cpp msgid "Move :" -msgstr "" +msgstr "Zug:" #: src/panels.cpp msgid "Str :" @@ -254261,7 +248190,7 @@ msgstr "" #: src/panels.cpp msgid "Light:" -msgstr "" +msgstr "Licht:" #: src/panels.cpp #, c-format @@ -254293,19 +248222,19 @@ msgstr "" #: src/panels.cpp msgid "Style:" -msgstr "" +msgstr "Stil:" #: src/panels.cpp msgid "Hunger:" -msgstr "" +msgstr "Hunger:" #: src/panels.cpp msgid "Thirst:" -msgstr "" +msgstr "Durst:" #: src/panels.cpp msgid "Heat :" -msgstr "" +msgstr "Wärme:" #: src/panels.cpp msgid "Deaf!" @@ -254334,7 +248263,7 @@ msgstr "STROM" #: src/panels.cpp msgid "Head :" -msgstr "" +msgstr "Kopf:" #: src/panels.cpp msgid "Torso:" @@ -254342,20 +248271,20 @@ msgstr "" #: src/panels.cpp msgid "Arms :" -msgstr "" +msgstr "Arme:" #: src/panels.cpp msgid "Legs :" -msgstr "" +msgstr "Beine:" #: src/panels.cpp msgid "Feet :" -msgstr "" +msgstr "Füße:" #: src/panels.cpp #, c-format msgid "Goal: %s" -msgstr "" +msgstr "Ziel: %s" #: src/panels.cpp msgid "Weather :" @@ -254405,7 +248334,7 @@ msgstr "Wetter" #: src/panels.cpp msgid "Lighting" -msgstr "" +msgstr "Beleuch.:" #: src/panels.cpp msgid "Weapon" @@ -254417,7 +248346,7 @@ msgstr "Zeit" #: src/panels.cpp msgid "Compass" -msgstr "" +msgstr "Kompass:" #: src/panels.cpp msgid "Log" @@ -254457,7 +248386,7 @@ msgstr "" #: src/panels.cpp msgid "Movement" -msgstr "" +msgstr "Bewegung" #: src/panels.cpp msgid "Location Alt" @@ -254512,8 +248441,8 @@ msgstr "%s anziehen" #: src/pickup.cpp #, c-format -msgid "Spill %s, then pick up %s" -msgstr "%s verschütten, dann %s aufheben" +msgid "Spill contents of %s, then pick up %s" +msgstr "" #: src/pickup.cpp msgid "" @@ -254548,10 +248477,6 @@ msgstr "Du kannst eine Flüssigkeit nicht aufsammeln!" msgid "You're overburdened!" msgstr "Du bist überlastet!" -#: src/pickup.cpp -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 "" @@ -254875,36 +248800,6 @@ msgstr "" msgid "Your power armor disengages." msgstr "Deine Energierüstung deaktiviert sich." -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "%s aus deinen Händen trinken?" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "Du kannst dein %s nicht essen." - -#: src/player.cpp -#, c-format -msgid "You are now wielding an empty %s." -msgstr "Du hältst nun ein leeres %s." - -#: src/player.cpp -#, c-format -msgid "You are now wearing an empty %s." -msgstr "Du hältst nun ein leeres %s." - -#: src/player.cpp -#, c-format -msgid "You drop the empty %s." -msgstr "Du lässt das leere %s fallen." - -#: src/player.cpp -#, c-format -msgid "%c - %d empty %s" -msgstr "%c – %d leere(r) %s" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -255032,6 +248927,10 @@ msgstr "%s hat keine Defekte, die umgeschlatet werden können." msgid "The %s doesn't have any faults to mend." msgstr "%s hat keine Defekte, die behoben werden müssen." +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "" + #: src/player.cpp #, c-format msgid "" @@ -255124,11 +249023,6 @@ msgstr "" msgid " can't take that item off." msgstr "" -#: src/player.cpp -#, c-format -msgid "No room in inventory for your %s. Drop it?" -msgstr "Kein Platz im Inventar für %s. Fallen lassen?" - #: src/player.cpp #, c-format msgid "You take off your %s." @@ -255348,6 +249242,10 @@ msgstr "" "Diese Tätigkeit ist zu simpel, um deine Fertigkeit »%s« über den Wert »%d« " "hinaus zu trainieren." +#: src/player.cpp +msgid " (empty)" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "Was halten?" @@ -255410,7 +249308,7 @@ msgstr "" #: src/player_display.cpp #, c-format -msgid "Running movement point cost: %+d\n" +msgid "Movement point cost: %+d\n" msgstr "" #: src/player_display.cpp @@ -255489,6 +249387,10 @@ msgstr "" msgid "Reduced gun aim speed: %.1f" msgstr "" +#: src/player_display.cpp +msgid "Weight:" +msgstr "Gewicht:" + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your" @@ -255502,16 +249404,16 @@ msgstr "" #: src/player_display.cpp #, c-format msgid "Base HP: %d" -msgstr "" +msgstr "Basis TP: %d " #: src/player_display.cpp #, c-format msgid "Carry weight (%s): %.1f" -msgstr "" +msgstr "Tragegewicht (%s): %.1f " #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" +msgid "Bash damage: %.1f" msgstr "" #: src/player_display.cpp @@ -255526,17 +249428,17 @@ msgstr "" #: src/player_display.cpp #, c-format msgid "Melee to-hit bonus: %+.1lf" -msgstr "" +msgstr "Nahkampftreffbonus: %+.1lf" #: src/player_display.cpp #, c-format msgid "Ranged penalty: %+d" -msgstr "" +msgstr "Fernkampfstrafe: %+d " #: src/player_display.cpp #, c-format msgid "Throwing penalty per target's dodge: %+d" -msgstr "" +msgstr "Wurfstrafe je Ausweichen des Ziels: %+d" #: src/player_display.cpp msgid "" @@ -255551,17 +249453,17 @@ msgstr "" #: src/player_display.cpp #, c-format msgid "Skill rust: %d%%" -msgstr "" +msgstr "Fertigkeits-Einrosten: %d%% " #: src/player_display.cpp #, c-format msgid "Read times: %d%%" -msgstr "" +msgstr "Lesegeschwindigkeit: %d%%" #: src/player_display.cpp #, c-format msgid "Crafting bonus: %d%%" -msgstr "" +msgstr "Herstellungs-Bonus: %d%%" #: src/player_display.cpp msgid "" @@ -255574,16 +249476,12 @@ msgstr "" #: src/player_display.cpp #, c-format msgid "Trap detection level: %d" -msgstr "" +msgstr "Fallenerkennungstufe: %d" #: src/player_display.cpp #, c-format msgid "Aiming penalty: %+d" -msgstr "" - -#: src/player_display.cpp -msgid "Weight:" -msgstr "Gewicht:" +msgstr "Fernkampfstrafe: %+d" #: src/player_display.cpp msgid "" @@ -255594,10 +249492,24 @@ msgstr "" #: src/player_display.cpp msgid "Your height. Simply how tall you are." -msgstr "" +msgstr "Deine Größe, einfach wie groß du bist." #: src/player_display.cpp msgid "This is how old you are." +msgstr "So alt bist du." + +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" msgstr "" #: src/player_display.cpp @@ -255619,23 +249531,23 @@ msgstr "Geschwindigkeit:" #, c-format msgctxt "speed penalty" msgid "Overburdened -%2d%%" -msgstr "" +msgstr "Überladen -%2d%%" #: src/player_display.cpp #, c-format msgctxt "speed penalty" msgid "Pain -%2d%%" -msgstr "" +msgstr "Schmerz -%2d%% " #: src/player_display.cpp #, c-format msgctxt "speed penalty" msgid "Thirst -%2d%%" -msgstr "" +msgstr "Durst -%2d%%" #: src/player_display.cpp msgid "Underfed" -msgstr "" +msgstr "Unterernährt" #. ~ %s: Starving/Underfed (already left-justified), %2d: speed penalty #: src/player_display.cpp @@ -255669,6 +249581,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr "" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "" + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "Beruf:" + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -255750,18 +249683,6 @@ msgstr "" "Das Sonnenlicht irritiert dich fürchterlich.\n" "Stärke −4; Geschicklichkeit −4; Intelligenz −4; Wahrnehmung −4" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr "" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr "" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "Zur nächsten Kategorie wechseln" @@ -255771,12 +249692,7 @@ msgid "Cycle to previous category" msgstr "Zur vorherigen Kategorie wechseln" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "Training umschalten" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" +msgid "Toggle skill training / Upgrade stat" msgstr "" #: src/player_hardcoded_effects.cpp @@ -256100,10 +250016,6 @@ msgstr "" "Du fühlst dich so krank, als ob du vergiftet wurdest. Aber du brauchst mehr." " So viel mehr." -#: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." -msgstr "Glühende Lichter umhüllen dich, bevor du wegteleportiert wirst." - #: src/player_hardcoded_effects.cpp msgid "You are beset with a vision of a prowling beast." msgstr "" @@ -256112,6 +250024,10 @@ msgstr "" msgid "Your surroundings are permeated with a foul scent." msgstr "" +#: src/player_hardcoded_effects.cpp +msgid "Glowing lights surround you, and you teleport." +msgstr "Glühende Lichter umhüllen dich, bevor du wegteleportiert wirst." + #: src/player_hardcoded_effects.cpp msgid "You pass out." msgstr "Du verlierst das Bewustsein." @@ -256248,6 +250164,10 @@ msgstr "Deine Wunde auf %s fühlt sich allmählich besser an!" msgid "You succumb to the infection." msgstr "Du erliegst der Infektion." +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "" + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "Du fühlst dich gut ausgeruht." @@ -256285,11 +250205,6 @@ msgstr "Du wirfst und drehst dich umher in der Hitze." msgid "It's too hot to sleep." msgstr "Es ist zu heiß zum Schlafen." -#: src/player_hardcoded_effects.cpp -msgid "It looks like you woke up just before your alarm." -msgstr "" -"Sieht so aus als wärst du aufgewacht, kurz bevor dein Wecker klingelt." - #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." msgstr "" @@ -256463,122 +250378,21 @@ msgid "You feel a surge of euphoria as flames roar out of the %s!" msgstr "Du bist erfüllt von Euphorie, sobald die Flammen aus %s strömen!" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "High" -msgstr "" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Medium" -msgstr "" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Low" -msgstr "" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "None" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Recoil: %s" -msgstr "Rückstoß: %s" - -#: src/ranged.cpp -#, c-format -msgid "Firing %s" -msgstr "%s feuernd" - -#: src/ranged.cpp -#, c-format -msgid "Throwing %s" -msgstr "%s werfend" - -#: src/ranged.cpp -#, c-format -msgid "Blind throwing %s" -msgstr "Blind Werfen %s" - -#: src/ranged.cpp -msgid "Set target" -msgstr "Ziel setzen" - -#: src/ranged.cpp -msgid "< [?] show help >" -msgstr "< [?] Hilfe >" - -#: src/ranged.cpp -msgid "Move cursor to target with directional keys" -msgstr "Beweg den Cursor mit den Richtungstasten" - -#: src/ranged.cpp -msgctxt "[Hotkey] to throw" -msgid "to throw" -msgstr "" - -#: src/ranged.cpp -msgctxt "[Hotkey] to attack" -msgid "to attack" -msgstr "" - -#: src/ranged.cpp -msgctxt "[Hotkey] to cast the spell" -msgid "to cast" -msgstr "" - -#: src/ranged.cpp -msgctxt "[Hotkey] to fire" -msgid "to fire" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%s] Cycle targets;" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%c] target self; [%c] toggle snap-to-target" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to steady your aim. (10 moves)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "%sto aim and fire" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch aiming modes." -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch firing modes." -msgstr "" +msgid "Steadiness" +msgstr "Stabilität" #: src/ranged.cpp -#, c-format -msgid "[%c] to reload/switch ammo." -msgstr "" +msgid "Moves" +msgstr "Züge" #: src/ranged.cpp -msgid "RMB: Fire" +msgid "Symbols:" msgstr "" #: src/ranged.cpp -msgid "Steadiness" -msgstr "Stabilität" - -#: src/ranged.cpp -msgid "Symbols:" +msgid "" +" Great - Normal - " +"Graze - Moves" msgstr "" #: src/ranged.cpp @@ -256590,10 +250404,6 @@ msgstr "" msgid "%s %s:" msgstr "" -#: src/ranged.cpp -msgid "Moves" -msgstr "" - #: src/ranged.cpp #, c-format msgid "" @@ -256615,11 +250425,6 @@ msgctxt "aim_confidence" msgid "Graze" msgstr "Streifschuss" -#: src/ranged.cpp -#, c-format -msgid "Turrets in range: %d" -msgstr "Türme in Entfernung: %d" - #: src/ranged.cpp msgctxt "aim_confidence" msgid "Hit" @@ -256652,114 +250457,6 @@ msgstr "" msgid "[%c] to take precise aim and fire." msgstr "" -#: src/ranged.cpp -msgid "turrets" -msgstr "Geschütztürme" - -#: src/ranged.cpp -#, c-format -msgid "Really attack %s?" -msgstr "Willst du %s wirklich angreifen?" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Targets: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d Targets: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s %s (%d)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s (%d)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s (%d/%d)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "%s Delay: %i" -msgstr "%s-Verzögerung: %i" - -#: src/ranged.cpp -#, c-format -msgid "You don't have enough %s to cast this spell" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Casting: %s (Level %u)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s (Current: %s)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "0.0 % Failure Chance" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d/%d Elevation: %d Targets: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d Elevation: %d Targets: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Effective Spell Radius: %s%s" -msgstr "" - -#: src/ranged.cpp -msgid " WARNING! IN RANGE" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Cone Arc: %s degrees" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Line width: %s" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Damage: %s" -msgstr "" - #: src/ranged.cpp msgid "Thunk!" msgstr "»Plumps!«." @@ -256840,6 +250537,232 @@ msgstr "»Krawumm!«" msgid "kerblam!" msgstr "»KRAWENG!«." +#: src/ranged.cpp +#, c-format +msgid "You don't have enough %s to cast this spell" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Really attack %s?" +msgstr "Willst du %s wirklich angreifen?" + +#: src/ranged.cpp +#, c-format +msgid "Firing %s" +msgstr "%s feuernd" + +#: src/ranged.cpp +#, c-format +msgid "Throwing %s" +msgstr "%s werfend" + +#: src/ranged.cpp +#, c-format +msgid "Blind throwing %s" +msgstr "Blind Werfen %s" + +#: src/ranged.cpp +msgid "Set target" +msgstr "Ziel setzen" + +#: src/ranged.cpp +msgctxt "[Hotkey] to throw" +msgid "to throw" +msgstr "" + +#: src/ranged.cpp +msgctxt "[Hotkey] to attack" +msgid "to attack" +msgstr "" + +#: src/ranged.cpp +msgctxt "[Hotkey] to cast the spell" +msgid "to cast" +msgstr "" + +#: src/ranged.cpp +msgctxt "[Hotkey] to fire" +msgid "to fire" +msgstr "" + +#: src/ranged.cpp +msgid "[?] show all controls" +msgstr "" + +#: src/ranged.cpp +msgid "[?] show help" +msgstr "" + +#: src/ranged.cpp +msgid "Shift view with directional keys" +msgstr "" + +#: src/ranged.cpp +msgid "Move cursor with directional keys" +msgstr "" + +#: src/ranged.cpp +msgid "Mouse: LMB: Target, Wheel: Cycle," +msgstr "" + +#: src/ranged.cpp +msgid "RMB: Fire" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%s] Cycle targets;" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] %s." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] target self; [%c] toggle snap-to-target" +msgstr "" + +#: src/ranged.cpp +msgid "to aim and fire." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to steady your aim. (10 moves)" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch aiming modes." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch firing modes." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to reload/switch ammo." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgctxt "[Hotkey] Show/Hide turrets' lines of fire" +msgid "[%c] %s lines of fire" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Elevation: %d" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Targets: %d" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Firing mode: %s%s (%d)" +msgstr "" + +#: src/ranged.cpp +msgid "OUT OF AMMO" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s (%d/%d)" +msgstr "" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "High" +msgstr "" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Medium" +msgstr "" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Low" +msgstr "" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "None" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Recoil: %s" +msgstr "Rückstoß: %s" + +#: src/ranged.cpp +#, c-format +msgid "Casting: %s (Level %u)" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s (Current: %s)" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "0.0 % Failure Chance" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Effective Spell Radius: %s%s" +msgstr "" + +#: src/ranged.cpp +msgid " WARNING! IN RANGE" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Cone Arc: %s degrees" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Line width: %s" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Damage: %s" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "%s Delay: %i" +msgstr "%s-Verzögerung: %i" + +#: src/ranged.cpp +#, c-format +msgid "Turrets in range: %d/%d" +msgstr "" + #: src/recipe.cpp msgid "none" msgstr "keine" @@ -257081,13 +251004,35 @@ msgid "Limited" msgstr "Begrenzt" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" +msgid "achievements" +msgstr "" + +#: src/scores_ui.cpp +msgid "conducts" +msgstr "" + +#: src/scores_ui.cpp +msgid "Conducts" msgstr "" #: src/scores_ui.cpp +#, c-format +msgid "" +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "This game has no valid %s.\n" +msgstr "" + +#: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." +"Note that only %s that existed when you started this game and still exist " +"now will appear here." msgstr "" #: src/scores_ui.cpp @@ -257104,6 +251049,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "" + #: src/scores_ui.cpp msgid "SCORES" msgstr "" @@ -257882,8 +251831,8 @@ msgid "A blade swings out and hacks your torso!" msgstr "Eine Klinge schnellt hervor und trifft deinen Torso!" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" -msgstr "Eine Klinge schnellt hervor und trifft s Torso!" +msgid "A blade swings out and hacks 's torso!" +msgstr "" #: src/trapfunc.cpp msgid "Snap!" @@ -258311,6 +252260,14 @@ msgstr "" msgid "Only one %1$s powered engine can be installed." msgstr "Nur %1$s-Motor kann installiert werden." +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This part cannot be installed.\n" +msgstr "" + #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." msgstr "Regentrichter müssen über einen Tank montiert werden." @@ -258463,6 +252420,12 @@ msgstr "" msgid "You can't install parts while driving." msgstr "Du kannst während der Fahrt keine Teile anbringen." +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy." +" Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "" @@ -258488,8 +252451,22 @@ msgid "Choose a part here to repair:" msgstr "Wähle hier ein Teil zum Reparieren:" #: src/veh_interact.cpp -msgid "This part cannot be repaired" -msgstr "Dieses Teil kann nicht repariert werden" +msgid "This part cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to mend…" @@ -258593,6 +252570,10 @@ msgstr "»{«: hochscrollen" msgid "'}' to scroll down" msgstr "»{«: runterscrollen" +#: src/veh_interact.cpp +msgid "This part cannot be uninstalled.\n" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "" @@ -258604,33 +252585,18 @@ msgstr "" #: src/veh_interact.cpp #, c-format msgid "" -"Removing the %1$s will yield:\n" +"Removing the %1$s may yield:\n" "> %2$s\n" msgstr "" -"Das Entfrenen von %1$s wird hervorbringen:\n" -"> %2$s\n" - -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength -#: src/veh_interact.cpp -#, c-format -msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength ( " -"assisted ) %5$i" -msgstr "" -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength #: src/veh_interact.cpp #, c-format msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength " -"%5$i" +"Removing the %1$s will yield:\n" +"> %2$s\n" msgstr "" -"> %1$s1 Werkzeug mit %2$s %3$i ODER %4$sStärke " -"%5$i" +"Das Entfrenen von %1$s wird hervorbringen:\n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is pre-translated reason @@ -258656,6 +252622,12 @@ msgstr "" msgid "Better not remove something while driving." msgstr "Während der Fahrt sollte man nichts entfernen." +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "Dieses Fahrzeug hat keinen Flüssigtreibstoff zum Absaugen." @@ -259112,6 +253084,11 @@ msgstr "" msgid "You remove the broken %1$s from the %2$s." msgstr "Du entfernst das kaputte %1$s von dem %2$s." +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -259827,10 +253804,6 @@ msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "" "Du findest keine Schlüssel in %s. Versuchen, das Fahrzeug kurzzuschließen?" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "Kurzschließen" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -260178,6 +254151,7 @@ msgstr "" #: src/vehicle_use.cpp msgid "You should put your CBMs in autoclave pouches to keep them sterile." msgstr "" +"Du solltest deine KBM's in Autoklavenbeutel packen um sie steril zu halten." #: src/vehicle_use.cpp msgid "You turn the autoclave on and it starts its cycle." @@ -260346,6 +254320,11 @@ msgstr "Den Geschirrspüler ausschalten" msgid "Activate the dishwasher (1.5 hours)" msgstr "Den Geschirrspüler einschalten (1,5 Stunden)" +#: src/vehicle_use.cpp +#, c-format +msgid "Unload %s" +msgstr "%s entladen" + #: src/vehicle_use.cpp msgid "Peek through the closed curtains" msgstr "Durch die geschlossenen Vorhänge spähen" @@ -260772,11 +254751,6 @@ msgstr " (geflaggt)" msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" msgstr "" -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "%.*s" - #: src/wish.cpp msgid "How many?" msgstr "Wie viele?" diff --git a/lang/po/es_AR.po b/lang/po/es_AR.po index 1a1000d1dad86..2a5e7a4c9fd52 100644 --- a/lang/po/es_AR.po +++ b/lang/po/es_AR.po @@ -1,14 +1,14 @@ # # Translators: -# Vlasov Vitaly , 2020 # Brett Dong , 2020 +# Vlasov Vitaly , 2020 # Noctivagante , 2020 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-01 12:24+0800\n" +"POT-Creation-Date: 2020-06-05 08:37+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Noctivagante , 2020\n" "Language-Team: Spanish (Argentina) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/es_AR/)\n" @@ -70,6 +70,54 @@ msgstr "" "Son unas cargas de batería sueltas. Pueden ser puestas en celdas " "recargables, pero no pueden ser quitadas." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "butano" +msgstr[1] "butano" + +#. ~ Description for {'str_sp': 'butane'} +#: lang/json/AMMO_from_json.py +msgid "A common flammable liquid used in lighters." +msgstr "Es un líquido inflamable muy común, utilizado en encendedores." + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "pirotécnico de bengala" +msgstr[1] "pirotécnico de bengala" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "Es un químico pirotécnico que se usa en las bengalas." + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" +msgstr[0] "fósforo" +msgstr[1] "fósforos" + +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "" +"Es un palito con la punta roja. Lo podés encender raspándolo contra la caja " +"de fósforos." + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "oxígeno" +msgstr[1] "oxígeno" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "Es oxígeno medicinal comprimido." + #: lang/json/AMMO_from_json.py msgid "aluminum foil" msgid_plural "aluminum foils" @@ -92,11 +140,9 @@ msgstr[0] "centavo" msgstr[1] "centavos" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "SI VES ESTE TEXTO, ES UN BUG." +#: lang/json/AMMO_from_json.py +msgid "A unit of currency equivalent to 0.01 US dollars." +msgstr "Es una unidad monetaria equivalente a 0.01 dólares." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -262,10 +308,9 @@ msgstr[1] "piedritas" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." +msgid "A handful of pebbles, useful as ammunition for slingshots." msgstr "" -"Es un puñado de piedritas que se pueden usar como munición para hondas o " -"gomeras." +"Es un puñado de piedritas que se pueden usar como munición para gomeras." #: lang/json/AMMO_from_json.py msgid "clay pellet" @@ -275,12 +320,10 @@ msgstr[1] "bolitas de arcilla" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or " -"slingshots." +msgid "A handful of round projectiles made of clay, useful for slingshots." msgstr "" "Es un puñado de proyectiles redondos hechos de arcilla. Útil como munición " -"para hondas o gomeras." +"para gomeras." #: lang/json/AMMO_from_json.py msgid "marble" @@ -290,11 +333,10 @@ msgstr[1] "bolitas" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." +msgid "A handful of glass marbles, useful as ammunition for slingshots." msgstr "" "Es un puñado de bolitas de vidrio que se pueden usar como munición para " -"hondas o gomeras." +"gomeras." #: lang/json/AMMO_from_json.py msgid "bearings" @@ -304,10 +346,9 @@ msgstr[1] "rulemanes" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." +msgid "A box of ball bearings, useful as ammunition for slingshots." msgstr "" -"Es una caja de rulemanes que se pueden usar como munición para hondas y " -"gomeras." +"Es una caja de rulemanes que se pueden usar como munición para gomeras." #: lang/json/AMMO_from_json.py msgid "BB" @@ -317,9 +358,12 @@ msgstr[1] "balines" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." msgstr "" -"Una caja de pequeños balines de acero. Prácticamente, no causan ningún daño." +"Es una caja de pequeños balines de acero que pueden dispararse desde un aire" +" comprimido. Prácticamente, no causan ningún daño." #: lang/json/AMMO_from_json.py msgid "feather" @@ -605,6 +649,12 @@ msgid_plural "placeholder ammunitions" msgstr[0] "munición de referencia" msgstr[1] "municiones de referencia" +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "SI VES ESTE TEXTO, ES UN BUG." + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" msgid_plural "charcoal" @@ -653,6 +703,21 @@ msgstr "" "Pedazos de material flamable de base carbónica comúnmente utilizado para " "cocinar o calefaccionar." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "albuterol" +msgstr[1] "albuterol" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "" +"Es un broncodilatador que relaja los músculos de las vías respiratorias e " +"incrementa el flujo de aire hacia los pulmones." + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -758,12 +823,6 @@ msgstr[1] "carnadas" msgid "A bait used in traps to lure fish." msgstr "Es carnada que se usa en las trampas para atraer a los peces." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "oxígeno" -msgstr[1] "oxígeno" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -1038,7 +1097,7 @@ msgid "" "A handful of New England sand. If you had a stoked furnace, you could turn " "it into glass. Otherwise, it's only good for making cement." msgstr "" -"Un puñado de arena de New England. Si tenés un buen horno, podrías " +"Es un puñado de arena de New England. Si tenés un buen horno, podrías " "transformarla en vidrio. Si no, solo sirve para hacer cemento." #: lang/json/AMMO_from_json.py @@ -3473,10 +3532,10 @@ msgstr[1] ".45 ACP FMJ" #: lang/json/AMMO_from_json.py msgid "" ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, " -"the .45 ACP round has been common for almost 150 years." +"the .45 ACP round has been common for over a century." msgstr "" "Es munición .45 ACP FMJ de 230gr. Conocida por su potencia de detención, la " -"bala .45 ACP ha sido utilizada por casi 150 años." +"bala .45 ACP ha sido utilizada por más de un siglo." #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -4590,11 +4649,10 @@ msgstr[1] "9x19mm FMJ" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round" -" for military, law enforcement, and civilian use even after almost 150 " -"years." +" for military, law enforcement, and civilian use for over a century." msgstr "" "Es munición 9x19mm recubierta de latón de 115gr. Ha sido una bala común en " -"los ejércitos, fuerzas de seguridad y uso civil por casi 150 años." +"los ejércitos, fuerzas de seguridad y uso civil por más de un siglo." #: lang/json/AMMO_from_json.py msgid "9x19mm +P" @@ -6401,8 +6459,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "Kevlar scraps" msgid_plural "Kevlar scraps" -msgstr[0] "pedazos de Kevlar" -msgstr[1] "pedazos de Kevlar" +msgstr[0] "pedazos de kevlar" +msgstr[1] "pedazos de kevlar" #. ~ Description for {'str_sp': 'Kevlar scraps'} #: lang/json/AMMO_from_json.py @@ -6412,10 +6470,10 @@ msgid "" "difficult to make in a post-apocalyptic world, it might be worth recycling " "it for Kevlar thread." msgstr "" -"Son pequeños pedazos irregulares de tela Kevlar, desperdicio de algún " -"proyecto de sastrería. No son muy útiles, pero dado que el Kevlar puede ser " +"Son pequeños pedazos irregulares de tela kevlar, desperdicio de algún " +"proyecto de sastrería. No son muy útiles, pero dado que el kevlar puede ser " "muy difícil de fabricar en un mundo post-apocalíptico, es mejor recuperar su" -" hilo de Kevlar." +" hilo de kevlar." #: lang/json/AMMO_from_json.py msgid "leather scraps" @@ -6583,17 +6641,18 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "Kevlar sheet" msgid_plural "Kevlar sheets" -msgstr[0] "tela de Kevlar" -msgstr[1] "telas de Kevlar" +msgstr[0] "tela de kevlar" +msgstr[1] "telas de kevlar" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." msgstr "" -"Es una tela sintética de Kevlar, ideal para hacer armadura antibalas. En " -"esta forma, a diferencia de las placas rígidas, puede ser cocida." +"Es una tela sintética de Kevlar, ideal para hacer armadura duradera " +"resistente a los cortes. En esta forma, a diferencia de las placas rígidas, " +"puede ser cocida." #: lang/json/AMMO_from_json.py msgid "Lycra sheet" @@ -6877,12 +6936,6 @@ msgstr "" "Este nódulo tembloroso de resina y carne parece estar secretando un fluido " "acre. Probablemente, lo mejor sea usarlo como munición del bioblaster." -#: lang/json/AMMO_from_json.py -msgid "plutonium cell" -msgid_plural "plutonium cells" -msgstr[0] "celda de plutonio" -msgstr[1] "celdas de plutonio" - #: lang/json/AMMO_from_json.py msgid "titanium" msgid_plural "titanium" @@ -6897,7 +6950,7 @@ msgid "" " expensive due to rarity. More commonly used in jewelery and medical " "implants." msgstr "" -"Es un metal fuerte y duradero. Muy valorado por su relación de peso a " +"Es un metal fuerte y resistente. Muy valorado por su relación de peso a " "fuerza, fue una excelente mejora al aluminio por esas propiedades a pesar de" " ser mucho más caro por ser menos común. Es comúnmente usado en joyería e " "implantes médicos." @@ -6986,74 +7039,6 @@ msgstr "" "iniciadores. No es la cosa más letal que existe, pero tiene buena potencia " "sin la preocupación de que un disparo loco pueda lastimar el ambiente." -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N8" -msgid_plural "6.54x42mm 9N8" -msgstr[0] "6.54x42mm 9N8" -msgstr[1] "6.54x42mm 9N8" - -#. ~ Description for {'str_sp': '6.54x42mm 9N8'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 6.54x42mm cartridge, loaded with a 120 gr. FMJBT bullet. Inspired by the " -"improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " -"rifle cartridge for his new SVS-24 Assault Rifle." -msgstr "" -"Es un cartucho 6.54x42mm, cargado con balas de 120gr. FMJBT. Inspirado en la" -" británica .280 mejorada, Alexander Sarafanov desarrolló el cartucho para " -"rifle 6.54x42mm para su nuevo rifle de asalto SVS-24." - -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N12" -msgid_plural "6.54x42mm 9N12" -msgstr[0] "6.54x42mm 9N12" -msgstr[1] "6.54x42mm 9N12" - -#. ~ Description for {'str_sp': '6.54x42mm 9N12'} -#: lang/json/AMMO_from_json.py -msgid "" -"The 6.54x42mm 9N12 has superior armor piercing capabilities thanks to its " -"tungsten carbide core. Tungsten carbide was used in anti-tank rounds of the" -" 20th and 21st century, whenever depleted uranium was unavailable or " -"undesirable." -msgstr "" -"La 6.54x42mm 9N12 posee gran penetración de blindaje gracias a su núcleo de " -"carburo de tungsteno. El carburo de tungsteno (también conocido como carburo" -" de wolframio) era usado en balas antitanque del siglo XX y XXI, cuando no " -"se conseguía uranio empobrecido." - -#: lang/json/AMMO_from_json.py -msgid ".20 DREAD Pellet" -msgid_plural ".20 DREAD Pellets" -msgstr[0] "balín .20 DREAD" -msgstr[1] "balines .20 DREAD" - -#. ~ Description for {'str': '.20 DREAD Pellet'} -#: lang/json/AMMO_from_json.py -msgid "" -"These metal pellets are propelled with the help of electromagnets, therefore" -" they do not produce sound, flash or heat signature." -msgstr "" -"Estos balines metálicos son impulsados con la ayuda de electromagnetos, por " -"lo tanto no producen ningún ruido, ni luz, ni calor" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 6.54x42mm" -msgid_plural "reloaded 6.54x42mm" -msgstr[0] "6.54x42mm recargada" -msgstr[1] "6.54x42mm recargadas" - -#. ~ Description for {'str_sp': 'reloaded 6.54x42mm'} -#: lang/json/AMMO_from_json.py -msgid "" -"Inspired by the improved .280, Alexander Sarafanov himself developed the " -"6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " -"been hand-reloaded." -msgstr "" -"Inspirado en la .280 mejorada, el mismo Alexander Sarafanov desarrolló el " -"cartucho para rifle 6.54x42mm para su rifle de asalto SVS-24. Esta ha sido " -"recargada a mano." - #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -7828,129 +7813,10 @@ msgstr[0] "núcleo de energía de maná" msgstr[1] "núcleos de energía de maná" #. ~ Description for mana core power -#. ~ Description for {'str_sp': 'vortex core'} #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." msgstr "Si ves esto es un bug." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "fire lance charge" -msgid_plural "fire lance charges" -msgstr[0] "carga de lanza de fuego" -msgstr[1] "cargas de lanza de fuego" - -#. ~ Description for fire lance charge -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm. Despite the " -"minimal range, it packs a punch." -msgstr "" -"Es poco más que una carga de pólvora para un arma básica. A pesar de su " -"mínimo alcance, causa bastante daño." - -#: lang/json/AMMO_from_json.py -msgid "fire lance shot" -msgid_plural "fire lance shots" -msgstr[0] "cartucho de lanza de fuego" -msgstr[1] "cartuchos de lanza de fuego" - -#. ~ Description for fire lance shot -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm, with small " -"pellets as shot. Despite the minimal range, it packs a punch." -msgstr "" -"Es poco más que una carga de pólvora para un arma básica, con pequeños " -"perdigones. A pesar de su mínimo alcance, causa bastante daño." - -#: lang/json/AMMO_from_json.py -msgid "lead pellet" -msgid_plural "lead pellets" -msgstr[0] "perdigón de plomo" -msgstr[1] "perdigones de plomo" - -#. ~ Description for lead pellet -#: lang/json/AMMO_from_json.py -msgid "" -"Hefty round projectiles cast from lead, useful as ammunition for slings." -msgstr "" -"Son proyectiles pesados y redondos, fundidos de plomo. Útil como munición " -"para hondas." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" -msgstr[0] "jabalina de madera" -msgstr[1] "jabalinas de madera" - -#: lang/json/AMMO_from_json.py -msgid "stone javelin" -msgid_plural "stone javelins" -msgstr[0] "jabalina de piedra" -msgstr[1] "jabalinas de piedra" - -#. ~ Description for stone javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A throwing spear with a stone spearhead. The grip area has also been carved" -" and covered for better grip." -msgstr "" -"Es una lanza con la punta de piedra. El mango también fue tallado y " -"recubierto para tener mejor agarre." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" -msgstr[0] "jabalina de hierro" -msgstr[1] "jabalinas de hierro" - -#: lang/json/AMMO_from_json.py -msgid "copper javelin" -msgid_plural "copper javelins" -msgstr[0] "jabalina de cobre" -msgstr[1] "jabalinas de cobre" - -#. ~ Description for copper javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A copper-tipped throwing spear. The grip area has also been carved and " -"covered for better grip." -msgstr "" -"Es una lanza con la punta de cobre. El mango también fue tallado y " -"recubierto para tener mejor agarre." - -#: lang/json/AMMO_from_json.py -msgid "40mm EMP grenade" -msgid_plural "40mm EMP grenades" -msgstr[0] "granada 40mm PEM" -msgstr[1] "granadas 40mm PEM" - -#. ~ Description for {'str': '40mm EMP grenade'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" -" capable of damaging robots and some equipment." -msgstr "" -"Es una granada 40mm con carga PEM. Liberará un pulso electromagnético capaz " -"de dañar robots y algunos equipamientos." - -#: lang/json/AMMO_from_json.py -msgid "glowball" -msgid_plural "glowballs" -msgstr[0] "bola de brillar" -msgstr[1] "bolas de brillar" - -#. ~ Description for glowball -#: lang/json/AMMO_from_json.py -msgid "" -"A tube of small glowballs taken off the market due to hazardous chemicals. " -"They deal virtually no damage, but light up on impact. Useful for " -"illuminating an area without lighting up yourself in the process." -msgstr "" -"Es un tubo con pequeñas bolas brillantes que fueron sacadas del mercado por " -"sus químicos peligrosos. Casi no provocan ningún daño, pero iluminan al " -"impactar. Es útil para iluminar áreas sin iluminarte vos mismo." - #: lang/json/AMMO_from_json.py msgid "TEST rock" msgid_plural "TEST rocks" @@ -7964,575 +7830,56 @@ msgstr[0] "TEST lámina pequeña de metal" msgstr[1] "TEST láminas pequeñas de metal" #: lang/json/AMMO_from_json.py -msgid "TEST platinum bit" -msgid_plural "TEST platinum bits" -msgstr[0] "TEST pedazo de platino" -msgstr[1] "TEST pedazos de platino" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEDP" -msgid_plural "30x113mm HEDP" -msgstr[0] "30x113mm HEDP" -msgstr[1] "30x113mm HEDP" - -#. ~ Description for {'str_sp': '30x113mm HEDP'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " -"Used primarily against light armored vehicles." -msgstr "" -"Es una bala 30x113mm de cañón automático, con una vaina altamente explosiva " -"y de doble uso. Utilizada principalmente contra vehículos ligeros." - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEI" -msgid_plural "30x113mm HEI" -msgstr[0] "30x113mm HEI" -msgstr[1] "30x113mm HEI" - -#. ~ Description for {'str_sp': '30x113mm HEI'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round, high explosive incendiary. Designed for use " -"against unarmored vehicles and to suppress infantry." -msgstr "" -"Una bala 30x113mm de cañón automático, altamente explosiva e incendiaria. " -"Utilizada principalmente contra vehículos no blindados y para reprimir " -"infantería." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 30x113mm" -msgid_plural "reloaded 30x113mm" -msgstr[0] "30x113mm recargada" -msgstr[1] "30x113mm recargadas" - -#. ~ Description for {'str_sp': '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 "" -"Una bala 30x113mm de cañón automático con el iniciador reemplazado, y " -"cargada con plomo básico de proyectil. No es tan efectiva como la verdadera." - -#. ~ 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 "" -"Una bala de 120mm anti-tanque de alta explosividad. Podría arruinarle el día" -" a cualquiera." - -#: lang/json/AMMO_from_json.py -msgid "120mm APFSDS" -msgid_plural "120mm APFSDSs" -msgstr[0] "120mm APFSDS" -msgstr[1] "120mm APFSDS" - -#. ~ Description for 120mm APFSDS -#: lang/json/AMMO_from_json.py -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 "" -"Es un proyectil de 120mm perforador de blindaje estabilizado por aletas con " -"casquillo desechable sabot. Utiliza un proyectil de uranio empobrecido para " -"hacerle tener un mal día a lo que sea que golpee." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 120mm shot" -msgid_plural "reloaded 120mm shots" -msgstr[0] "cartucho 120mm recargado" -msgstr[1] "cartuchos 120mm recargados" - -#. ~ Description for reloaded 120mm shot -#: lang/json/AMMO_from_json.py -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 "" -"Es un proyectil de 120mm con un iniciador eléctrico instalado, relleno con " -"muchos perdigones grandes. Similar en eficacia al bote de metralla que ya no" -" se produce, pero de menor calidad." - -#: lang/json/AMMO_from_json.py -msgid "makeshift 120mm slug" -msgid_plural "makeshift 120mm slugs" -msgstr[0] "posta 120mm improvisada" -msgstr[1] "postas 120mm improvisadas" - -#. ~ 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 "" -"Un proyectil de 120mm con un iniciador eléctrico instalado, lleno con balas " -"hechas a mano. Aunque lejos de ser ideal, causa bastante daño." - -#: lang/json/AMMO_from_json.py -msgid "155mm HEAT" -msgid_plural "155mm HEATs" -msgstr[0] "155mm HEAT" -msgstr[1] "155mm HEAT" - -#. ~ Description for 155mm HEAT -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Anti Tank round. More than enough firepower for " -"whatever you could think to point it at." -msgstr "" -"Una bala de 155mm anti-tanque muy explosiva. Poder de fuego más que " -"suficiente para cualquier cosa contra la que quieras apuntarla." - -#: lang/json/AMMO_from_json.py -msgid "155mm frag" -msgid_plural "155mm frags" -msgstr[0] "155mm fragmentaria" -msgstr[1] "155mm fragmentarias" - -#. ~ Description for 155mm frag -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Fragmentation round. Designed to give anything near " -"what you hit a really bad day." -msgstr "" -"Es un cartucho de 155mm de fragmentación altamente explosivo. Diseñado para " -"hacerle pasar un mal momento a cualquier cosa que esté cerca de donde pegue." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm shot" -msgid_plural "reloaded 155mm shots" -msgstr[0] "cartucho 155mm recargado" -msgstr[1] "cartuchos 155mm recargados" - -#. ~ Description for reloaded 155mm shot -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm shell with a new electric primer installed, filled with a huge " -"amount of buckshot. Effectively turns a howitzer into a punt gun on " -"steroids." -msgstr "" -"Es un proyectil de 155mm con iniciador eléctrico instalado, relleno con una " -"enorme cantidad de perdigones grandes. Efectivamente, convierte un obús en " -"una escopeta punt drogada." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm slug" -msgid_plural "reloaded 155mm slugs" -msgstr[0] "posta 155mm recargada" -msgstr[1] "postas 155mm recargadas" - -#. ~ Description for reloaded 155mm slug -#: lang/json/AMMO_from_json.py -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 "" -"Un proyectil de 155mm con un iniciador eléctrico instalado, relleno con una " -"cantidad masiva de posta hecha a mano. A pesar de su baja eficacia, lo que " -"sea que golpee lo va a sentir." - -#: lang/json/AMMO_from_json.py -msgid "small electric primer" -msgid_plural "small electric primers" -msgstr[0] "iniciador eléctrico pequeño" -msgstr[1] "iniciadores eléctricos pequeños" - -#. ~ Description for small electric primer -#: lang/json/AMMO_from_json.py -msgid "Primer for an autocannon shell. Seems to use an electric ignition." -msgstr "" -"Es un iniciador para proyectiles de cañón automático. Parece funcionar por " -"ignición eléctrica." - -#: lang/json/AMMO_from_json.py -msgid "large electric primer" -msgid_plural "large electric primers" -msgstr[0] "iniciador eléctrico grande" -msgstr[1] "iniciadores eléctricos grandes" - -#. ~ Description for large electric primer -#: lang/json/AMMO_from_json.py -msgid "" -"Primer for a tank or artillery shell. Seems to use an electric ignition." -msgstr "" -"Es un iniciador para un proyectil de tanque o de artillería. Parece " -"funcionar por ignición eléctrica." - -#: lang/json/AMMO_from_json.py -msgid "liquified blob feed" -msgid_plural "liquified blob feed" -msgstr[0] "alimento líquido para blobo" -msgstr[1] "alimento líquido para blobo" - -#. ~ Description for {'str_sp': 'liquified blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"Liquified blob feed, useful for fueling certain blob based vehicle parts" -msgstr "" -"Es alimento líquido para blobo, es útil para usar como combustible para " -"algunas partes de vehículos hechas de blobo." - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "blob feed" -msgid_plural "blob feed" -msgstr[0] "alimento para blobo" -msgstr[1] "alimento para blobo" - -#. ~ Description for {'str_sp': 'blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"An amalgam of various types of organic material, contains everything the " -"blob needs to be healthy. You think…" -msgstr "" -"Es una amalgama de varias clases de materiales orgánicos. Contiene todo lo " -"que un blobo necesita para estar sano. Eso te parece..." - -#: lang/json/AMMO_from_json.py -msgid "IED" -msgid_plural "IEDs" -msgstr[0] "AEI" -msgstr[1] "AEI" - -#: lang/json/AMMO_from_json.py -msgid "blast canister" -msgid_plural "blast canisters" -msgstr[0] "carcasa explosiva" -msgstr[1] "carcasas explosivas" - -#. ~ Description for {'str': 'blast canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a substantial explosive payload." -msgstr "" -"Un artefacto explosivo improvisado, hecho con un recipiente sellado lleno de" -" carga explosiva que detona al impacto. Contiene abundante carga explosiva." - -#: lang/json/AMMO_from_json.py -msgid "Big Bang canister" -msgid_plural "Big Bang canisters" -msgstr[0] "carcasa Big Bang" -msgstr[1] "carcasas Big Bang" - -#. ~ Description for {'str': 'Big Bang canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a VERY substantial explosive payload." -msgstr "" -"Un artefacto explosivo improvisado, hecho con un recipiente sellado lleno de" -" carga explosiva que detona al impacto. Contiene MUCHÍSIMA carga explosiva." - -#: lang/json/AMMO_from_json.py -msgid "fire canister" -msgid_plural "fire canisters" -msgstr[0] "carcasa incendiaria" -msgstr[1] "carcasas incendiarias" - -#. ~ Description for {'str': 'fire canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a small area with deadly flames." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva. Está diseñado para ser usado con un lanzador " -"específico. Este rocía un área pequeña con llamas mortales." - -#: lang/json/AMMO_from_json.py -msgid "inferno canister" -msgid_plural "inferno canisters" -msgstr[0] "carcasa infernal" -msgstr[1] "carcasas infernales" - -#. ~ Description for {'str': 'inferno canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a large area with deadly flames." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva. Está diseñado para ser usado con un lanzador " -"específico. Este rocía un área grande con llamas mortales." - -#: lang/json/AMMO_from_json.py -msgid "fragmentation canister" -msgid_plural "fragmentation canisters" -msgstr[0] "carcasa fragmentaria" -msgstr[1] "carcasas fragmentarias" - -#. ~ Description for {'str': 'fragmentation canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to spray the immediate area with deadly shrapnel." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva y un medio para detonarlo. Está hecho para ser disparado" -" desde un lanzador específico. Este ha sido diseñado para rociar el área " -"próxima con esquirlas letales." - -#. ~ Description for {'str': 'modified mininuke'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device. Intended to be fired from a " -"specialized launcher, its case has been cut down and it has been rigged to " -"explode on impact. While it is now somewhat lighter than before, it can no " -"longer be triggered manually." -msgstr "" -"Es una pequeña bomba nuclear modificada. Aunque fue diseñada para ser usada " -"en un lanzador específico, su carcasa ha sido cortada y está preparada para " -"explotar al impactar. Ahora es un poco más liviana, pero no puede ser " -"detonada a mano." - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "harpoon" -msgid_plural "harpoons" -msgstr[0] "arpón" -msgstr[1] "arpones" - -#. ~ Description for {'str': 'harpoon'} -#: lang/json/AMMO_from_json.py -msgid "" -"A large spear carved from wood. This was fashioned specifically to be fired" -" from a compatible weapon; thus unsuitable for melee combat." -msgstr "" -"Es una lanza grande tallada en madera. El arpón era fabricado " -"específicamente para ser disparado desde un arma compatible, pero inadecuado" -" para el combate cuerpo a cuerpo." - -#: lang/json/AMMO_from_json.py -msgid "IED rigged bolt" -msgid_plural "IED rigged bolts" -msgstr[0] "perno con AEI" -msgstr[1] "pernos con AEI" - -#: lang/json/AMMO_from_json.py -msgid "nova bolt" -msgid_plural "nova bolts" -msgstr[0] "perno nova" -msgstr[1] "pernos nova" - -#. ~ Description for {'str': 'nova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a substantial explosive payload." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Contiene bastante " -"carga explosiva." - -#: lang/json/AMMO_from_json.py -msgid "supernova bolt" -msgid_plural "supernova bolts" -msgstr[0] "perno supernova" -msgstr[1] "pernos supernova" - -#. ~ Description for {'str': 'supernova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a very substantial explosive payload." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Contiene mucha carga " -"explosiva." - -#: lang/json/AMMO_from_json.py -msgid "searing bolt" -msgid_plural "searing bolts" -msgstr[0] "perno ardiente" -msgstr[1] "pernos ardientes" - -#. ~ Description for {'str': 'searing bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a small area with deadly flames." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Este ha sido diseñado" -" para rociar una pequeña área con llamas letales." - -#: lang/json/AMMO_from_json.py -msgid "napalm bolt" -msgid_plural "napalm bolts" -msgstr[0] "perno napalm" -msgstr[1] "pernos napalm" - -#. ~ Description for {'str': 'napalm bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a large area with deadly flames." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Este ha sido diseñado" -" para rociar una gran área con llamas letales." - -#: lang/json/AMMO_from_json.py -msgid "shatter bolt" -msgid_plural "shatter bolts" -msgstr[0] "perno de destrucción" -msgstr[1] "pernos de destrucción" - -#. ~ Description for {'str': 'shatter bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to spray the immediate area with deadly " -"shrapnel." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Este ha sido diseñado" -" para rociar el área próxima con esquirlas letales." - -#: lang/json/AMMO_from_json.py -msgid "steel ballista bolt" -msgid_plural "steel ballista bolts" -msgstr[0] "perno de acero para balista" -msgstr[1] "pernos de acero para balista" - -#. ~ Description for {'str': 'steel ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A long shaft carved from wood ending in a tip of sharpened metal. It's " -"quite heavy, capable of dealing large amounts of damage, but isn't " -"particularly accurate. Stands a good chance of remaining intact once fired." -msgstr "" -"Es un palo largo tallado en madera con una punta afilada de metal. Es " -"bastante pesado, capaz de causar mucho daño, pero no es particularmente " -"preciso. Es probable que permanezca intacto luego de dispararlo." - -#: lang/json/AMMO_from_json.py -msgid "nuclear bolt" -msgid_plural "nuclear bolts" -msgstr[0] "perno nuclear" -msgstr[1] "pernos nucleares" - -#. ~ Description for {'str': 'nuclear bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device affixed to the end of a large " -"ballista bolt. Its case has been cut down and it has been rigged to explode" -" on impact. It can no longer be triggered manually." -msgstr "" -"Es un dispositivo portátil nuclear modificado, fijado a la punta de un gran " -"perno de balista. Se le ha cortado la carcasa y está preparado para explotar" -" al impacto. Ya no puede ser detonado a mano." - -#: lang/json/AMMO_from_json.py -msgid "wood ballista bolt" -msgid_plural "wood ballista bolts" -msgstr[0] "perno de madera para balista" -msgstr[1] "pernos de madera para balista" +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'wood ballista bolt'} +#. ~ Description for {'str': 'test wooden broadhead arrow'} #: lang/json/AMMO_from_json.py -msgid "" -"A sharpened bolt carved from wood. It's fairly heavy, capable of dealing " -"large amounts of damage, but isn't particularly accurate. Stands a good " -"chance of remaining intact once fired." +msgid "Test arrow" msgstr "" -"Es un perno afilado tallado en madera. Es bastante pesado, capaz de causar " -"mucho daño, pero no es particularmente preciso. Es probable que permanezca " -"intacto luego de dispararlo." #: lang/json/AMMO_from_json.py -msgid "lead ball" -msgid_plural "lead balls" -msgstr[0] "bola de plomo" -msgstr[1] "bolas de plomo" +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'lead ball'} +#. ~ Description for {'str': 'Test 9mm ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"A heavy lead ball about 8cm in diameter. Could pack quite a bit of a punch " -"if you had something to launch it." +msgid "Generic 9mm ammo based on JHP." msgstr "" -"Es una bola pesada de plomo de unos 8cm de diámetro. Puede ser muy buen " -"proyectil si tenés con qué lanzarla." #: lang/json/AMMO_from_json.py -msgid "serrated disc" -msgid_plural "serrated discs" -msgstr[0] "disco dentado" -msgstr[1] "discos dentados" - -#. ~ Description for {'str': 'serrated disc'} -#: lang/json/AMMO_from_json.py -msgid "" -"A metal disc surrounded by serrated edges. It's as menacing as it sounds." -msgstr "Un disco de metal con el borde dentado. Es tan peligroso como parece." - -#: lang/json/AMMO_from_json.py -msgid "metal fragment" -msgid_plural "metal fragments" -msgstr[0] "fragmento de metal" -msgstr[1] "fragmentos de metal" - -#. ~ Description for {'str': 'metal fragment'} -#: lang/json/AMMO_from_json.py -msgid "Small slivers of metal. Can't see much use for them." -msgstr "Son pequeñas astillas de metal. No parecen tener mucha utilidad." - -#: lang/json/AMMO_from_json.py -msgid "glittering carbon" -msgid_plural "glittering carbon" -msgstr[0] "carbón brillante" -msgstr[1] "carbón brillante" +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str_sp': 'glittering carbon'} +#. ~ Description for {'str': 'Test .45 ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of carbon are have been compressed into a crystalline " -"structure that is beginning to resemble diamonds." +msgid "Test ammo based on the .45 JHP." msgstr "" -"Estos pequeños fragmentos de carbón han sido comprimidos para formar una " -"estructura cristalina que es el inicio de lo que parecen diamantes." #: lang/json/AMMO_from_json.py -msgid "diamond fragments" -msgid_plural "diamond fragments" -msgstr[0] "fragmento de diamante" -msgstr[1] "fragmentos de diamante" +msgid "test gas" +msgid_plural "test gas" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str_sp': 'diamond fragments'} +#. ~ Description for {'str_sp': 'test gas'} #: lang/json/AMMO_from_json.py msgid "" -"These small fragments of diamond are formed as a byproduct from the " -"crystallization process of a diamond matrix. While the substance usually " -"decays when separated from the catalyst; these fragments are small enough to" -" remain stable." +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" msgstr "" -"Son unos pequeños fragmentos de diamante formados como un derivado del " -"proceso de cristalización de la matriz del diamante. Aunque normalmente la " -"sustancia se descompone cuando es separada del catalizador, estos fragmentos" -" son lo suficientemente pequeños como para mantenerse estables." #: lang/json/AMMO_from_json.py -msgid "vortex core" -msgid_plural "vortex core" -msgstr[0] "núcleo de vórtice" -msgstr[1] "núcleo de vórtice" +msgid "TEST platinum bit" +msgid_plural "TEST platinum bits" +msgstr[0] "TEST pedazo de platino" +msgstr[1] "TEST pedazos de platino" #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" @@ -8673,7 +8020,6 @@ msgstr[1] "chalecos MBR (vacíos)" #. 'large grenade pouches'}. #. ~ Use action holster_msg for {'str': 'MBR vest (titanium)', 'str_pl': 'MBR #. vests (titanium)'}. -#. ~ Use action holster_msg for javelin bag. #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You stash your %s." @@ -9086,12 +8432,11 @@ msgstr[1] "cinturones de herramientas de supervivencia" #. 'pairs of knee-high boots'}. #. ~ Use action holster_msg for {'str': 'pair of rollerblades', 'str_pl': #. 'pairs of rollerblades'}. -#. ~ Use action holster_msg for {'str': 'pair of rollerskates', 'str_pl': -#. 'pairs of rollerskates'}. -#. ~ Use action holster_msg for C.R.I.T web belt. +#. ~ Use action holster_msg for CRIT web belt. #. ~ Use action holster_msg for {'str': "technomancer's toolbelt"}. #. ~ Use action holster_msg for {'str': 'hollow cane'}. -#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/ARMOR_from_json.py lang/json/ARMOR_from_json.py +#: lang/json/GENERIC_from_json.py #, no-python-format msgid "You sheath your %s" msgstr "Enfundás tu %s." @@ -9099,7 +8444,7 @@ msgstr "Enfundás tu %s." #. ~ Use action holster_prompt for {'str': 'survivor utility belt'}. #. ~ Use action holster_prompt for {'str': 'survivor belt'}. #. ~ Use action holster_prompt for {'str': 'hiking backpack'}. -#. ~ Use action holster_prompt for C.R.I.T web belt. +#. ~ Use action holster_prompt for CRIT web belt. #. ~ Use action holster_prompt for {'str': "technomancer's toolbelt"}. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" @@ -9115,8 +8460,8 @@ msgid "" msgstr "" "Es un cinturón de herramientas de cuero, cubierto con correas y bolsillos. " "Tiene muchas herramientas de mano y una funda para llevar una cuchilla " -"pequeña. Duradero y diseñado para ser cómodo. Hay que usarlo para enfundar y" -" desenfundar el arma." +"pequeña. Resistente y diseñado para ser cómodo. Hay que usarlo para enfundar" +" y desenfundar el arma." #: lang/json/ARMOR_from_json.py msgid "pair of attached ear plugs (in)" @@ -9247,7 +8592,6 @@ msgstr[0] "bolsa para jabalinas" msgstr[1] "bolsas para jabalinas" #. ~ Use action holster_prompt for {'str': 'javelin bag'}. -#. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" msgstr "Guardar jabalinas" @@ -9590,6 +8934,22 @@ msgstr "" "Es un par de protecciones ligeras de cuero para los brazos, hechas para los " "arqueros." +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "par de mangas resistentes a cortes" +msgstr[1] "pares de mangas resistentes a cortes" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': +#. 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "" +"Es un par de mangas largas resistentes a los cortes, con agujeros para los " +"pulgares. Son útiles como protección al usar motosierras." + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -10010,7 +9370,7 @@ msgid "" "comfortable to wear. Activate to sheathe/draw a weapon." msgstr "" "Es un cinturón de cuero cubierto con correas y bolsillos, y una funda para " -"llevar una cuchilla pequeña. Duradero y diseñado para ser cómodo. Hay que " +"llevar una cuchilla pequeña. Resistente y diseñado para ser cómodo. Hay que " "usarlo para enfundar y desenfundar el arma." #: lang/json/ARMOR_from_json.py @@ -10155,6 +9515,39 @@ msgstr[1] "pares de botas de combate" msgid "Modern reinforced tactical combat boots. Very durable." msgstr "Son unas botas tácticas de combate reforzadas. Muy duraderas." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "par de protectores de pies EOD" +msgstr[1] "pares de protectores de pies EOD" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs +#. of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" +"Son unas armaduras para pies construidas de acero y nomex que son parte del " +"traje antiexplosivos. Están diseñado para proteger contra la presión, " +"fragmentación, impacto y calor." + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "par de punteras" +msgstr[1] "pares de punteras" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "" +"Son una cubierta de goma para los pies, con una protección de acero para los" +" dedos, de acuerdo a las normas ANSI." + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -10782,8 +10175,8 @@ msgid "" "A pair of rubber flippers worn on the feet which improve swimming speed " "while greatly impeding the wearer's ability to walk." msgstr "" -"Un par de patas de rana de goma que se usan en los pies para incrementar la " -"velocidad del nado, pero caminar se hace imposible." +"Es un par de patas de rana de goma que se usan en los pies para incrementar " +"la velocidad al nadar, pero caminar se hace imposible." #: lang/json/ARMOR_from_json.py msgid "pair of thigh-high boots" @@ -10804,15 +10197,16 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of swimming booties" msgid_plural "pairs of swimming booties" -msgstr[0] "par de botas de nado" -msgstr[1] "pares de botas de nado" +msgstr[0] "par de botas para nadar" +msgstr[1] "pares de botas para nadar" #. ~ Description for {'str': 'pair of swimming booties', 'str_pl': 'pairs of #. swimming booties'} #: lang/json/ARMOR_from_json.py msgid "A pair of neoprene swimming booties, with individual toes." msgstr "" -"Un par de botas de nado de neopreno, con espacio individual para cada dedo." +"Es un par de botas para nadar de neopreno, con espacio individual para cada " +"dedo." #: lang/json/ARMOR_from_json.py msgid "pair of heelys (off)" @@ -10878,7 +10272,8 @@ msgstr[1] "pares de espolones de piel" #. fetlock furs'} #: lang/json/ARMOR_from_json.py msgid "Snug fur sleeves to keep your fetlocks warm." -msgstr "Mangas de piel ajustadas, que mantienen tus espolones abrigados." +msgstr "" +"Son unas mangas de piel ajustadas, que mantienen tus espolones abrigados." #: lang/json/ARMOR_from_json.py msgid "pair of flame-resistant socks" @@ -10888,6 +10283,8 @@ msgstr[1] "pares de medias ignífugas" #. ~ Description for {'str': 'pair of flame-resistant socks', 'str_pl': 'pairs #. of flame-resistant socks'} +#. ~ Description for {'str': 'pair of XL flame-resistant socks', 'str_pl': +#. 'pairs of XL flame-resistant socks'} #: lang/json/ARMOR_from_json.py msgid "" "A snug fitting pair of stockings made from thin and lightweight Nomex fire-" @@ -10897,6 +10294,12 @@ msgstr "" "Un par de medias ajustadas hechas de nomex, una tela ignífuga. Fuertes, " "dejan pasar el aire, y son livianas y cómodas para usar debajo de otra ropa." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL flame-resistant socks" +msgid_plural "pairs of XL flame-resistant socks" +msgstr[0] "par de medias XL ignífugas" +msgstr[1] "pares de medias XL ignífugas" + #: lang/json/ARMOR_from_json.py msgid "pair of socks" msgid_plural "pairs of socks" @@ -10910,6 +10313,18 @@ msgstr[1] "pares de medias" msgid "Socks. Put 'em on your feet." msgstr "Son medias. Se ponen en los pies." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL socks" +msgid_plural "pairs of XL socks" +msgstr[0] "par de medias XL" +msgstr[1] "pares de medias XL" + +#. ~ Description for {'str': 'pair of XL socks', 'str_pl': 'pairs of XL +#. socks'} +#: lang/json/ARMOR_from_json.py +msgid "Socks. Big ones. Put 'em on your feet." +msgstr "Son medias. Grandes. Se ponen en los pies." + #: lang/json/ARMOR_from_json.py msgid "pair of ankle socks" msgid_plural "pairs of ankle socks" @@ -10968,6 +10383,22 @@ msgstr[1] "pares de medias de lana" msgid "Warm socks made of wool." msgstr "Medias abrigadas hechas de lana." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL wool socks" +msgid_plural "pairs of XL wool socks" +msgstr[0] "par de medias XL de lana" +msgstr[1] "pares de medias XL de lana" + +#. ~ Description for {'str': 'pair of XL wool socks', 'str_pl': 'pairs of XL +#. wool socks'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Warm socks made of wool for a larger than you'd previously thought possible " +"human." +msgstr "" +"Son medias abrigadas hechas de lana para humanos más grandes de lo que " +"alguna vez pensaste." + #: lang/json/ARMOR_from_json.py msgid "pair of stockings" msgid_plural "pairs of stockings" @@ -11565,7 +10996,8 @@ msgid "" "Plain white karate gi. Loose and flowing, it offers little protection, and " "little encumbrance." msgstr "" -"Un karategi blanco. Suelto y flojo ofrece poca protección, pero es cómodo." +"Es un karategi blanco. Suelto y flojo ofrece poca protección, pero es " +"cómodo." #: lang/json/ARMOR_from_json.py msgid "kariginu" @@ -11579,8 +11011,8 @@ msgid "" "A traditional, ankle-length Shinto robe with several layers and very wide " "sleeves." msgstr "" -"Una túnica tradicional sintoísta, larga hasta los tobillos, con varias capas" -" y mangas muy anchas." +"Es una túnica tradicional sintoísta, larga hasta los tobillos, con varias " +"capas y mangas muy anchas." #: lang/json/ARMOR_from_json.py msgid "keikogi" @@ -11768,7 +11200,7 @@ msgid "" "pouches and pockets. Comfortable, durable, and great for storage." msgstr "" "Es una gabardina personalizada sin mangas, con protección de Kevlar. Tiene " -"muchos bolsillos. Cómodo, duradero y con muy buena capacidad de " +"muchos bolsillos. Cómodo, resistente y con muy buena capacidad de " "almacenamiento." #: lang/json/ARMOR_from_json.py @@ -11846,7 +11278,7 @@ msgid "" " pockets. Comfortable, durable, and great for storage." msgstr "" "Es un sobretodo personalizado sin mangas, con protección de Kevlar. Tiene " -"muchos bolsillos. Cómodo, duradero y con muy buena capacidad de " +"muchos bolsillos. Cómodo, resistente y con muy buena capacidad de " "almacenamiento." #: lang/json/ARMOR_from_json.py @@ -11858,7 +11290,7 @@ msgstr[1] "túnicas sin mangas" #. ~ Description for {'str': 'sleeveless tunic'} #: lang/json/ARMOR_from_json.py msgid "A sleeveless cloth garment that covers the torso and legs." -msgstr "Una prenda de tela sin mangas que cubre el torso y las piernas." +msgstr "Es una prenda de tela sin mangas que cubre el torso y las piernas." #: lang/json/ARMOR_from_json.py msgid "thawb" @@ -11871,7 +11303,8 @@ msgstr[1] "thawb" msgid "" "A long, loose-fitting robe with wide sleeves, a traditional Arab garment." msgstr "" -"Una túnica larga y suelta con mangas anchas. Una prenda tradicional árabe." +"Es una túnica larga y suelta con mangas anchas. Una prenda tradicional " +"árabe." #: lang/json/ARMOR_from_json.py msgid "trenchcoat" @@ -11941,7 +11374,7 @@ msgid "" "Comfortable, durable, and great for storage." msgstr "" "Es un sobretodo personalizado con protección de kevlar. Tiene muchos " -"bolsillos. Cómodo, duradero y con muy buena capacidad de almacenamiento." +"bolsillos. Cómodo, resistente y con muy buena capacidad de almacenamiento." #: lang/json/ARMOR_from_json.py msgid "tunic" @@ -12243,7 +11676,8 @@ msgid "" "built to last, they provide excellent protection from environmental dangers." msgstr "" "Es un par de anteojos blindados con los lentes polarizados. Son cómodos y " -"duraderos, brindan una excelente protección contra los peligros ambientales." +"resistentes, brindan una excelente protección contra los peligros " +"ambientales." #: lang/json/ARMOR_from_json.py msgid "pair of beekeeping gloves" @@ -12319,8 +11753,8 @@ msgstr[1] "pares de guantes de quitina" msgid "" "Gauntlets made from the exoskeletons of insects. Very light and durable." msgstr "" -"Guantes hechos con el exoesqueleto de algún insecto. Muy livianos y " -"duraderos." +"Son guantes hechos con el exoesqueleto de algún insecto. Muy livianos y " +"resistentes." #: lang/json/ARMOR_from_json.py msgid "pair of biosilicified chitin gauntlets" @@ -12337,7 +11771,7 @@ msgid "" msgstr "" "Es un par de guantes creados con exoesqueletos de hormigas ácidas, " "cuidadosamente limpiados y biosilicificados. Son resistentes al ácido y muy " -"duraderos." +"resistentes." #: lang/json/ARMOR_from_json.py msgid "fencing gauntlet" @@ -12627,11 +12061,11 @@ msgstr[1] "pares de guantes tácticos" #. tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." msgstr "" -"Es un par de guantes tácticos reforzados con Kevlar. Utilizados por los " -"policías y los soldados." +"Es un par de guantes de aramida resistentes al calor y los cortes. " +"Utilizados comúnmente por policías y soldados." #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -12679,10 +12113,11 @@ msgstr[1] "pares de guantes resistentes a cortes" #. of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." msgstr "" -"Es un par de guantes resistentes a los cortes, muy útiles para descuartizar " -"rápidamente una carcasa." +"Es un par de guantes resistentes a los cortes, útiles para carnear o para " +"trabajos rutinarios con cuchillas." #: lang/json/ARMOR_from_json.py msgid "pair of hand wraps" @@ -12879,6 +12314,24 @@ msgstr[1] "pares de guantes de golf" msgid "A thin pair of black leather golfing gloves." msgstr "Es un par de guantes de golf finos de cuero negro." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "par de guantes EOD" +msgstr[1] "pares de guantes EOD" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD +#. gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "" +"Son unos guantes livianos construidos de kevlar y nomex que son parte del " +"traje antiexplosivos. Están diseñados para proteger contra la fragmentación " +"y el calor." + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -13380,8 +12833,8 @@ msgid "" "An all-encompassing black helmet that covers your entire face and neck, " "providing excellent protection from all sorts of damage." msgstr "" -"Un casco negro completo que también cubre tu cara y tu cuello, y brinda " -"excelente protección contra toda clase de daño." +"Es un casco negro completo que cubre la cara y el cuello, y brinda excelente" +" protección contra toda clase de daño." #: lang/json/ARMOR_from_json.py msgid "tactical helmet" @@ -13395,8 +12848,8 @@ msgid "" "A lightweight black helmet that provides excellent protection from all sorts" " of damage." msgstr "" -"Un casco negro liviano que brinda excelente protección contra toda clase de " -"daño." +"Es un casco negro liviano que brinda excelente protección contra toda clase " +"de daño." #: lang/json/ARMOR_from_json.py msgid "firefighter helmet" @@ -13467,8 +12920,8 @@ msgid "" "A helmet made from the exoskeletons of insects. Covers the entire head; " "very light and durable." msgstr "" -"Un casco hecho con el exoesqueleto de algún insecto. Cubre completamente la " -"cabeza, y es muy liviano y duradero." +"Es un casco hecho con el exoesqueleto de algún insecto. Cubre completamente " +"la cabeza, y es muy liviano y resistente." #: lang/json/ARMOR_from_json.py msgid "conical helm" @@ -13500,7 +12953,7 @@ msgid "" msgstr "" "Es un casco creado con exoesqueletos de hormigas ácidas, cuidadosamente " "limpiados y biosilicificados. Cubre completamente la cabeza, es resistente " -"al ácido y muy duradero." +"al ácido y muy resistente." #: lang/json/ARMOR_from_json.py msgid "football helmet" @@ -13664,8 +13117,8 @@ msgid "" "A medieval helmet that provides excellent protection to the entire head, at " "the cost of great encumbrance." msgstr "" -"Un yelmo medieval que brinda excelente protección para toda la cabeza, pero " -"también es muy incómodo de usar." +"Es un yelmo medieval que brinda excelente protección para toda la cabeza, " +"pero también es muy incómodo de usar." #: lang/json/ARMOR_from_json.py msgid "scavenger cowl" @@ -13870,7 +13323,7 @@ msgid "" "weapon." msgstr "" "Es un arnés ligero con varias ranuras y una eslinga táctica integrada para " -"colgar un pequeño rifle o un arma similar. Duradero y diseñado para ser " +"colgar un pequeño rifle o un arma similar. Resistente y diseñado para ser " "cómodo de usar. Hay que usarlo para desenfundar y enfundar el arma." #: lang/json/ARMOR_from_json.py @@ -14261,13 +13714,13 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "barrette" msgid_plural "barrettes" -msgstr[0] "pasador" -msgstr[1] "pasadores" +msgstr[0] "hebilla francesa" +msgstr[1] "hebillas francesas" #. ~ Description for {'str': 'barrette'} #: lang/json/ARMOR_from_json.py msgid "A barrette with lots of ornaments." -msgstr "Un pasador para el pelo con muchos adornos." +msgstr "Es una hebilla francesa para el pelo con muchos adornos." #: lang/json/ARMOR_from_json.py msgid "blue topaz dental grill" @@ -15500,7 +14953,7 @@ msgstr[1] "placas de alguacil" #. ~ Description for {'str': 'marshal badge'} #: lang/json/ARMOR_from_json.py msgid "A bright silver star strikes fear into the eyes of ne'er-do-wells." -msgstr "Una estrella de plata brillante que causa pavor a los malhechores." +msgstr "Es una estrella de plata brillante que causa pavor a los malhechores." #: lang/json/ARMOR_from_json.py msgid "SWAT badge" @@ -18746,6 +18199,26 @@ msgstr "" "Son unas chaparreras negras de cuero. Muy resistentes y ligeras, pero no " "tiene bolsillos." +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "par de perneras anticorte" +msgstr[1] "pares de perneras anticorte" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" +"Es un par de perneras resistentes hechas de kevlar. Cuando se zafa una " +"motosierra puede ser falta; el equipo de protección personal como estas " +"perneras pueden ayudarte a proteger tus arterias femorales. La capa de " +"kevlar está diseñada para deshilacharse al contacto con la cadena y trabar " +"la herramienta." + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -18756,7 +18229,7 @@ msgstr[1] "pantalones de esgrima" #: lang/json/ARMOR_from_json.py msgid "A pair of reinforced pants used by fencers to prevent injuries." msgstr "" -"Un par de pantalones reforzados usado por los esgrimistas para prevenir " +"Es un par de pantalones reforzados usado por los esgrimistas para prevenir " "lesiones." #: lang/json/ARMOR_from_json.py @@ -18887,7 +18360,7 @@ msgstr[1] "pares de pantalones de moto" #: lang/json/ARMOR_from_json.py msgid "A pair of pants designed for dirt bikers and motorcyclists." msgstr "" -"Un par de pantalones diseñado para los motoqueros y los motocrossistas." +"Es un par de pantalones diseñado para los motoqueros y los motocrossistas." #: lang/json/ARMOR_from_json.py msgid "survivor cargo pants" @@ -18902,7 +18375,43 @@ msgid "" "built to be durable, comfortable, and easy to wear." msgstr "" "Es un pantalón con protección de Kevlar, con muchos bolsillos. Hecho para " -"ser duradero, cómodo y fácil de vestir." +"ser resistente, cómodo y fácil de vestir." + +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "pantalones EOD" +msgstr[1] "pantalones EOD" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" +"Son pantalones con protección resistente construidas de kevlar y nomex que " +"son parte del traje antiexplosivos. Están diseñados para proteger contra la " +"presión, fragmentación, impacto y calor." + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "pantalones EOD livianos" +msgstr[1] "pantalones EOD livianos" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "" +"Son pantalones con protección construidas de kevlar y nomex diseñados para " +"proteger contra la presión, fragmentación, impacto y calor en ambientes " +"hostiles. Son más livianas que la armadura antiexplosivos normal, para " +"brindar mayor maniobrabilidad." #: lang/json/ARMOR_from_json.py msgid "basketball shorts" @@ -18913,7 +18422,7 @@ msgstr[1] "pantalones cortos de básquet" #. ~ Description for {'str_sp': 'basketball shorts'} #: lang/json/ARMOR_from_json.py msgid "A pair of basketball shorts. Comfortable and light." -msgstr "Un par de pantalones cortos de básquet. Cómodos y livianos." +msgstr "Es un par de pantalones cortos de básquet. Cómodos y livianos." #: lang/json/ARMOR_from_json.py msgid "breeches" @@ -19291,7 +18800,7 @@ msgstr[1] "pantalones a rayas" #. ~ Description for {'str_sp': 'striped pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of pants with horizontal black and white stripes." -msgstr "Un par de pantalones con rayas horizontales blancas y negras." +msgstr "Es un par de pantalones con rayas horizontales blancas y negras." #: lang/json/ARMOR_from_json.py msgid "work pants" @@ -19300,17 +18809,19 @@ msgstr[0] "par de pantalones de trabajo" msgstr[1] "pares de pantalones de trabajo" #. ~ Description for {'str': 'work pants', 'str_pl': 'pairs of work pants'} +#. ~ Description for {'str': 'XL work pants', 'str_pl': 'pairs of XL work +#. pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." -msgstr "Un par de pantalones grises de trabajo." +msgstr "Es un par de pantalones grises de trabajo." #: lang/json/ARMOR_from_json.py msgid "A pair of blue work pants." -msgstr "Un par de pantalones azules de trabajo." +msgstr "Es un par de pantalones azules de trabajo." #: lang/json/ARMOR_from_json.py msgid "A pair of light-blue work pants." -msgstr "Un par de pantalones celestes de trabajo." +msgstr "Es un par de pantalones celestes de trabajo." #: lang/json/ARMOR_from_json.py msgid "army winter pants" @@ -19349,6 +18860,21 @@ msgstr[1] "pasamontañas" msgid "A warm covering that protects the head and face from the cold." msgstr "Es una tela abrigada que protege la cabeza y la cara del frío." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "pasamontañas resistente a cortes" +msgstr[1] "pasamontañas resistentes a cortes" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "" +"Es una prenda que cubre la cara y te ayuda a protegerte contra cortes y " +"rayaduras, y también contra el frío." + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -19757,8 +19283,8 @@ msgid "" msgstr "" "Esto solía ser un casco completo de grado militar con ópticas avanzadas y " "filtros ambientales. Parece que ha sido dado de baja o por lo menos, " -"desarmado. Ahora es un sombrero muy caro. Todavía es bastante duradero, pero" -" dificulta un poco la visión." +"desarmado. Ahora es un sombrero muy caro. Todavía es bastante resistente, " +"pero dificulta un poco la visión." #: lang/json/ARMOR_from_json.py msgid "combat exoskeleton" @@ -19769,6 +19295,7 @@ msgstr[1] "exoesqueletos de combate" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "Tu armadura de poder se activa." @@ -20106,8 +19633,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "back scabbard" msgid_plural "back scabbards" -msgstr[0] "vaina de espalda" -msgstr[1] "vainas de espalda" +msgstr[0] "vaina para espalda" +msgstr[1] "vainas para espalda" #. ~ Description for {'str': 'back scabbard'} #: lang/json/ARMOR_from_json.py @@ -20124,8 +19651,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "scabbard" msgid_plural "scabbards" -msgstr[0] "vaina" -msgstr[1] "vainas" +msgstr[0] "vaina grande" +msgstr[1] "vainas grandes" #. ~ Description for {'str': 'scabbard'} #: lang/json/ARMOR_from_json.py @@ -20413,10 +19940,11 @@ msgstr "Envainar palo de golf" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." +"has straps to be worn on the back and a slot for an umbrella." msgstr "" "Es un bolso grande de tela y plástico con patas plegables que se usa para el" -" golf. También tiene correas para colgarlo en la espalda." +" golf. También tiene correas para colgarlo en la espalda y un gancho para un" +" paraguas." #: lang/json/ARMOR_from_json.py msgid "H&K operational briefcase (empty)" @@ -20469,8 +19997,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of drop leg pouches" msgid_plural "pairs of drop leg pouches" -msgstr[0] "par de perneras" -msgstr[1] "pares de perneras" +msgstr[0] "par de bolsas perneras" +msgstr[1] "pares de bolsas perneras" #. ~ Description for {'str': 'pair of drop leg pouches', 'str_pl': 'pairs of #. drop leg pouches'} @@ -20774,6 +20302,17 @@ msgid "A light vest covered in pockets and straps for storage." msgstr "" "Es un chaleco liviano lleno de bolsillos y correas para almacenamiento." +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -20815,7 +20354,7 @@ msgid "" "A full-body costume in the form of an anthropomorphic dinosaur. It is quite" " encumbering and has little storage but is very warm." msgstr "" -"Un disfraz de cuerpo entero con la forma de un hombre-dinosaurio. Es " +"Es un disfraz de cuerpo entero con la forma de un hombre-dinosaurio. Es " "bastante incómodo de usar y tiene poca capacidad de almacenamiento, pero es " "muy calentito." @@ -21687,8 +21226,8 @@ msgstr "Un par de antiparras pequeñas para nadar." #: lang/json/ARMOR_from_json.py msgid "pair of swimming gloves" msgid_plural "pairs of swimming gloves" -msgstr[0] "par de guantes de nado" -msgstr[1] "pares de guantes de nado" +msgstr[0] "par de guantes para nadar" +msgstr[1] "pares de guantes para nadar" #. ~ Description for {'str': 'pair of swimming gloves', 'str_pl': 'pairs of #. swimming gloves'} @@ -22013,6 +21552,21 @@ msgstr "" "Un delantal hecho de cuero grueso. Un poco incómodo, pero brinda excelente " "protección contra cortaduras." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "delantal resistente a cortes" +msgstr[1] "delantales resistentes a cortes" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from " +"cuts." +msgstr "" +"Es un delantal hecho de kevlar que brinda una excelente protección contra " +"los cortes." + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -22050,7 +21604,7 @@ msgstr[1] "camisas de vestir" #: lang/json/ARMOR_from_json.py msgid "A white button-down shirt with long sleeves. Looks professional!" msgstr "" -"Una camisa blanca con mangas largas. ¡Con esto parecés un profesional!" +"Es una camisa blanca con mangas largas. ¡Con esto parecés un profesional!" #: lang/json/ARMOR_from_json.py msgid "wedding dress" @@ -22236,7 +21790,7 @@ msgid "" "A volleyball jersey made of thick material imprinted with the logo of the " "Ooarai Ducks." msgstr "" -"Es una camiseta de voley hecha de un material grueso, con el logo de los " +"Es una camiseta de vóley hecha de un material grueso, con el logo de los " "Ooarai Ducks." #: lang/json/ARMOR_from_json.py @@ -22368,7 +21922,8 @@ msgstr[1] "chombas" #. ~ Description for {'str': 'polo shirt'} #: lang/json/ARMOR_from_json.py msgid "A short-sleeved cotton shirt, slightly thicker than a t-shirt." -msgstr "Una chomba de mangas cortas, un poco más gruesa que una remera común." +msgstr "" +"Es una chomba de mangas cortas, un poco más gruesa que una remera común." #: lang/json/ARMOR_from_json.py msgid "mail carrier shirt" @@ -22394,7 +21949,7 @@ msgstr[1] "camisas de sheriff" #. ~ Description for {'str': "sheriff's shirt"} #: lang/json/ARMOR_from_json.py msgid "A tan button-down shirt with long sleeves." -msgstr "Una camisa marrón clarito, con mangas largas." +msgstr "Es una camisa marrón clarito, con mangas largas." #: lang/json/ARMOR_from_json.py msgid "striped shirt" @@ -22405,7 +21960,8 @@ msgstr[1] "camisas a rayas" #. ~ Description for {'str': 'striped shirt'} #: lang/json/ARMOR_from_json.py msgid "A long-sleeved shirt with horizontal black and white stripes." -msgstr "Una camisa de mangas largas con rayas horizontales negras y blancas." +msgstr "" +"Es una camisa de mangas largas con rayas horizontales negras y blancas." #: lang/json/ARMOR_from_json.py msgid "sundress" @@ -22602,7 +22158,8 @@ msgstr[1] "pares de guantillas" #: lang/json/ARMOR_from_json.py msgid "Snug, soft cloth sleeves to keep your arms warm." msgstr "" -"Mangas suaves y ajustadas de algodón, que mantienen tus brazos abrigados." +"Son unas mangas suaves y ajustadas de algodón, que mantienen tus brazos " +"abrigados." #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -22671,6 +22228,17 @@ msgstr[1] "slips bóxer" msgid "The age-old question, boxers or briefs? Your answer? Yes." msgstr "La clásica pregunta: ¿bóxer o slip? ¿Tu respuesta? Sí." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer briefs" +msgid_plural "XL boxer briefs" +msgstr[0] "slip bóxer XL" +msgstr[1] "slips bóxer XL" + +#. ~ Description for {'str_sp': 'XL boxer briefs'} +#: lang/json/ARMOR_from_json.py +msgid "The age-old question, boxers or briefs? Your answer? Chonk!" +msgstr "La clásica pregunta: ¿bóxer o slip? ¿Tu respuesta? ¡Gordito!" + #: lang/json/ARMOR_from_json.py msgid "boxer shorts" msgid_plural "boxer shorts" @@ -22684,6 +22252,21 @@ msgid "" msgstr "" "Es un bóxer para hombre. Igual de cómodo que el slip, pero más elegante." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer shorts" +msgid_plural "XL boxer shorts" +msgstr[0] "bóxer XL" +msgstr[1] "bóxers XL" + +#. ~ Description for {'str_sp': 'XL boxer shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Men's XL boxer shorts. For the very big and tall. More fashionable than " +"briefs and just as comfortable." +msgstr "" +"Es un bóxer XL para hombre. Para los muy grandes y altos. Igual de cómodo " +"que el slip, pero más elegante." + #: lang/json/ARMOR_from_json.py msgid "boy shorts" msgid_plural "boy shorts" @@ -22698,6 +22281,21 @@ msgstr "" "Es ropa interior femenina similar al boxer masculino, pero mucho más " "ajustado." +#: lang/json/ARMOR_from_json.py +msgid "XL boy shorts" +msgid_plural "XL boy shorts" +msgstr[0] "culotte XL" +msgstr[1] "culottes XL" + +#. ~ Description for {'str_sp': 'XL boy shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Female underwear similar to men's boxer shorts, but much more close-fitting." +" This size is made for giants." +msgstr "" +"Es ropa interior femenina similar al boxer masculino, pero mucho más " +"ajustado. Este talle es para gigantes." + #: lang/json/ARMOR_from_json.py msgid "bra" msgid_plural "bras" @@ -22824,7 +22422,8 @@ msgstr[1] "pares de calentadores" #: lang/json/ARMOR_from_json.py msgid "Snug, soft cloth sleeves to keep your legs warm." msgstr "" -"Mangas suaves y ajustadas de algodón, que mantienen tus piernas abrigadas." +"Son unas mangas suaves y ajustadas de algodón, que mantienen tus piernas " +"abrigadas." #: lang/json/ARMOR_from_json.py msgid "pair of fur leggings" @@ -22853,8 +22452,8 @@ msgstr[1] "pares de calentadores XL" #: lang/json/ARMOR_from_json.py msgid "Large, soft, snug cloth sleeves to keep your exotic anatomy warm." msgstr "" -"Mangas de algodón suaves, ajustadas y grandes, que mantienen tu anatomía " -"exótica abrigada." +"Son unas mangas de algodón suaves, ajustadas y grandes, que mantienen tu " +"anatomía exótica abrigada." #: lang/json/ARMOR_from_json.py msgid "long underwear bottom" @@ -22939,6 +22538,24 @@ msgstr "" "ejercicio físico. Generalmente, se utiliza cuando se hace ejercicio, se " "adhiere a la piel y es cómodo." +#: lang/json/ARMOR_from_json.py +msgid "XL sports bra" +msgid_plural "XL sports bras" +msgstr[0] "corpiño deportivo XL" +msgstr[1] "corpiños deportivos XL" + +#. ~ Description for {'str': 'XL sports bra'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A sturdy nylon bra to provide additional support during physical movement. " +"Typically worn when exercising, it clings to the skin and is easy to wear. " +"This one appears to have been made for a massive person." +msgstr "" +"Es un corpiño resistente de nailon que brinda un mejor soporte durante el " +"ejercicio físico. Generalmente, se utiliza cuando se hace ejercicio, se " +"adhiere a la piel y es cómodo. Este parece haber sido hecho para una persona" +" enorme." + #: lang/json/ARMOR_from_json.py msgid "tank top" msgid_plural "tank tops" @@ -23124,7 +22741,7 @@ msgid "" "A vest sewn together from Kevlar plates, less durable and protective than a " "proper Kevlar vest. Suitable for wearing under clothing." msgstr "" -"Es un chaleco cosido con placas de Kevlar, no tan duradero ni con tanta " +"Es un chaleco cosido con placas de Kevlar, no tan resistente ni con tanta " "protección como un chaleco de Kevlar normal. Perfecto para utilizar debajo " "de la ropa." @@ -23229,6 +22846,58 @@ msgstr "" " sombra sólida y antinatural. Hecha de grafeno tejido, es liviano y " "resistente, pero no puede ser reparado." +#: lang/json/ARMOR_from_json.py +msgid "XL jeans" +msgid_plural "pairs of XL jeans" +msgstr[0] "jeans XL" +msgstr[1] "pares de jeans XL" + +#. ~ Description for {'str': 'XL jeans', 'str_pl': 'pairs of XL jeans'} +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue jeans with two deep pockets." +msgstr "Es un jean XL azul con dos bolsillos grandes." + +#: lang/json/ARMOR_from_json.py +msgid "XL work pants" +msgid_plural "pairs of XL work pants" +msgstr[0] "pantalones XL de trabajo" +msgstr[1] "pares de pantalones XL de trabajo" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue work pants." +msgstr "Es un par de pantalones XL azules de trabajo." + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL gray work pants." +msgstr "Es un par de pantalones XL grises de trabajo." + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL light-blue work pants." +msgstr "Es un par de pantalones XL celestes de trabajo." + +#: lang/json/ARMOR_from_json.py +msgid "XL work t-shirt" +msgid_plural "XL work t-shirts" +msgstr[0] "remera XL de trabajo" +msgstr[1] "remeras XL de trabajo" + +#. ~ Description for {'str': 'XL work t-shirt'} +#: lang/json/ARMOR_from_json.py +msgid "A gray XL work t-shirt with a small front pocket." +msgstr "Es una remera XL gris de trabajo con un pequeño bolsillo adelante." + +#: lang/json/ARMOR_from_json.py +msgid "An XL blue work t-shirt with a small front pocket." +msgstr "Es una remera XL azul de trabajo con un pequeño bolsillo adelante." + +#: lang/json/ARMOR_from_json.py +msgid "An XL gray work t-shirt with a small front pocket." +msgstr "Es una remera XL gris de trabajo con un pequeño bolsillo adelante." + +#: lang/json/ARMOR_from_json.py +msgid "An XL light-blue work t-shirt with a small front pocket." +msgstr "Es una remera XL celeste de trabajo con un pequeño bolsillo adelante." + #: lang/json/ARMOR_from_json.py msgid "Uplifted SWAT armor" msgid_plural "Uplifted SWAT armors" @@ -23316,6 +22985,68 @@ msgstr "" "las manos de tres dedos de los Asesifantes. Son más finos que los guantes " "tácticos comunes." +#: lang/json/ARMOR_from_json.py +msgid "XL leather belt" +msgid_plural "XL leather belts" +msgstr[0] "cinturón XL de cuero" +msgstr[1] "cinturones XL de cuero" + +#. ~ Description for {'str': 'XL leather belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL leather belt. Useful for making your pair of pants fit if you need " +"really big pants." +msgstr "" +"Es un cinturón XL de cuero. Útil para hacer que los pantalones te queden " +"bien si necesitás pantalones muy grandes." + +#: lang/json/ARMOR_from_json.py +msgid "XL police duty belt" +msgid_plural "XL police duty belts" +msgstr[0] "cinturón XL de policía" +msgstr[1] "cinturones XL de policía" + +#. ~ Description for {'str': 'XL police duty belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL black leather belt used by extremely large uplifted police officers. " +"It has several pouches and a holder for a baton." +msgstr "" +"Es un cinturón XL negro de cuero usado por los oficiales extremadamente " +"grandes de policía. Tiene varias bolsas y un gancho para poner una " +"cachiporra." + +#: lang/json/ARMOR_from_json.py +msgid "XL tactical full helmet" +msgid_plural "XL tactical full helmets" +msgstr[0] "casco táctico XL completo" +msgstr[1] "cascos tácticos XL completos" + +#. ~ Description for {'str': 'XL tactical full helmet'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An all-encompassing massive black helmet that covers your entire face and " +"neck, providing excellent protection from all sorts of damage." +msgstr "" +"Es un casco negro completo gigante que cubre la cara y el cuello, y brinda " +"excelente protección contra toda clase de daño." + +#: lang/json/ARMOR_from_json.py +msgid "XL leg ammo pouch" +msgid_plural "XL leg ammo pouches" +msgstr[0] "bolsa pernera XL de munición" +msgstr[1] "bolsas perneras XL de munición" + +#. ~ Description for {'str': 'XL leg ammo pouch', 'str_pl': 'XL leg ammo +#. pouches'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL fabric ammo pouch that can be strapped to your leg and capable of " +"holding two magazine close at hand." +msgstr "" +"Es una bolsa XL de tela para munición que puede ser atada a la pierna y " +"permite tener dos cargadores a mano." + #: lang/json/ARMOR_from_json.py msgid "titanium watch" msgid_plural "titanium watches" @@ -23328,7 +23059,7 @@ msgid "" "A thick, masculine watch made out of titanium. It is durable, light-weight " "and water-resistant, an excellent watch to have in a hostile environment." msgstr "" -"Es un reloj grueso y masculino hecho de titanio. Es duradero, ligero y " +"Es un reloj grueso y masculino hecho de titanio. Es resistente, ligero y " "resistente al agua. Un reloj excelente para los ambientes hostiles." #: lang/json/ARMOR_from_json.py @@ -23361,11 +23092,11 @@ msgid "" "environmental hazards. A hatch in the front opens to provide a small amount" " of storage." msgstr "" -"Desarrollado para la exploración de planos alienígenas, este traje naranja y" -" negro cubro todo por debajo del cuello. Aunque brinda una protección física" -" modesta, provee una excelente protección para la mayoría de los riesgos " -"ambientales. Un bolsillo en la parte frontal, otorga un pequeño espacio de " -"almacenamiento." +"Desarrollado para la exploración de planos alienígenas, este traje HEV " +"naranja y negro cubre todo por debajo del cuello. Aunque brinda una " +"protección física modesta, provee una excelente protección contra la mayoría" +" de los riesgos ambientales. Un bolsillo en la parte frontal otorga un " +"pequeño espacio de almacenamiento." #: lang/json/ARMOR_from_json.py msgid "boot quiver" @@ -23427,7 +23158,8 @@ msgid "" msgstr "" "Es un cinturón de herramientas de cuero, cubierto con correas y bolsillos. " "Tiene muchas herramientas de mano y gancho para sostener algún equipo. " -"Duradero y diseñado para ser cómodo. Hay que activarlo para usar el gancho." +"Resistente y diseñado para ser cómodo. Hay que activarlo para usar el " +"gancho." #: lang/json/ARMOR_from_json.py msgid "survivor utility belt (sheath)" @@ -23489,6 +23221,26 @@ msgstr "" "en la parte interior. Aunque no brinda tanta protección como una armadura " "real, logra mantenerte relativamente a salvo." +#: lang/json/ARMOR_from_json.py +msgid "CRIT Engineering Suit" +msgid_plural "CRIT Engineering Suits" +msgstr[0] "Traje de Ingeniería CRIT" +msgstr[1] "Trajes de Ingeniería CRIT" + +#. ~ Description for CRIT Engineering Suit +#: lang/json/ARMOR_from_json.py +msgid "" +"An airtight, flexible suit of woven composite fibers complete with segmented" +" plates of armor. A complex system digitizes items in an individual pocket " +"universe for storage while built in joint-torsion ratchets generate the " +"neccessary energy required to power the interface." +msgstr "" +"Es un traje tejido con fibras compuestas, flexible y hermético, con placas " +"segmentadas de armadura. Un sistema complejo digitaliza objetos en un solo " +"universo de bolsillo para almacenarlos, a la vez que unos engranajes " +"articulados integrados generan la energía necesaria para alimentar la " +"interface." + #: lang/json/ARMOR_from_json.py msgid "CRIT face mask" msgid_plural "CRIT face masks" @@ -23498,14 +23250,13 @@ msgstr[1] "máscaras CRIT" #. ~ Description for CRIT face mask #: lang/json/ARMOR_from_json.py msgid "" -"This is the C.R.I.T standard issue face mask, lined with Kevlar for extra " -"protection. A few filters provide decent environmental safety, but it was " -"not intended for extended use. It has a basic integrated HUD." +"A standard issue face mask, lined with Kevlar for extra protection. A few " +"filters provide decent environmental safety, but it was not intended for " +"extended use. It has a basic integrated HUD." msgstr "" -"Es la máscara facial estándar de C.R.I.T., con interior de Kevlar para mayor" -" protección. Tiene unos filtros que brindan una protección decente al " -"ambiente, pero no está pensada para un uso intensivo. Tiene integrado un HUD" -" básico." +"Es una máscara facial estándar con interior de Kevlar para mayor protección." +" Tiene unos filtros que brindan una protección decente al ambiente, pero no " +"está pensada para un uso intensivo. Tiene integrado un HUD básico." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT boots" @@ -23517,15 +23268,15 @@ msgstr[1] "pares de botas CRIT" #. boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and " +"A pair of standard-issue boots. Next-gen gels keep feet comfortable and " "hygienic during long-term missions while absorbing shock and heat from " "outside-sources. Superalloy mesh and rubber offer quite a bit of chemical " "protection as well. Decently heavy though" msgstr "" -"Son las botas estándares de C.R.I.T. Con gel de última tecnología para " -"hacerlas cómodas e higiénicas durante misiones largas, y para absorber los " -"golpes y proteger del calor. Además, una malla de superaleación y goma " -"brinda un poco de protección química. Son bastante pesadas." +"Son unas botas estándares. Con gel de última tecnología para hacerlas " +"cómodas e higiénicas durante misiones largas, y para absorber los golpes y " +"proteger del calor. Además, una malla de superaleación y goma brinda un poco" +" de protección química. Son bastante pesadas." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT LA boots" @@ -23537,12 +23288,12 @@ msgstr[1] "pares de botas CRIT LA" #. LA boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor " +"A pair of skeletonized boots. Based off of C.R.I.T boots, the light-armor " "variant was created for missions in warmer climates. The LA boots keep most" " of the old features of the standard issue boots but trade in protection for" " easier movement." msgstr "" -"Son botas C.R.I.T. reducidas a su armazón. Basadas en las botas C.R.I.T., " +"Es un par de botas reducidas a su armazón. Basadas en las botas C.R.I.T., " "esta variante liviana fue creada para misiones en climas cálidos. Las botas " "LA conservan la mayoría de las características de las estándares, pero dejan" " la protección a cambio de la facilidad de movimiento." @@ -23557,13 +23308,13 @@ msgstr[1] "pares de guantes sin dedos CRIT" #. 'pairs of CRIT fingertip-less gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with " +"A pair of standard-issue gloves. Made with superalloy mesh for those with " "gene-modding and/or mutations while still allowing greater manipulation of " "items and moderate protection." msgstr "" -"Son los guantes C.R.I.T. estándares. Hechos con una maya de superaleación " -"para aquellos con genes modificados y/o mutaciones, sin incomodar la " -"manipulación de objetos y brindando una protección moderada." +"Es un par de guantes estándares. Hechos con una maya de superaleación para " +"aquellos con genes modificados y/o mutaciones, sin incomodar la manipulación" +" de objetos y brindando una protección moderada." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT fingertip-less liners" @@ -23575,11 +23326,11 @@ msgstr[1] "pares de guantes internos sin dedos CRIT" #. 'pairs of CRIT fingertip-less liners'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue glove liners. Made with neoprene and rubber mesh for" -" warmth and fingertip-less for those with gene-modding and/or mutations " +"A pair of standard-issue glove liners. Made with neoprene and rubber mesh " +"for warmth and fingertip-less for those with gene-modding and/or mutations " "while still allowing greater manipulation of items and moderate protection." msgstr "" -"Son los guantes C.R.I.T. estándares. Hechos de neopreno y una maya de goma, " +"Es un par de guantes estándares. Hechos de neopreno y una maya de goma, " "abrigados y sin dedos para aquellos con genes modificados y/o mutaciones, " "sin incomodar la manipulación de objetos y brindando una protección " "moderada." @@ -23593,16 +23344,15 @@ msgstr[1] "mochilas CRIT" #. ~ Description for CRIT backpack #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this " -"smaller pack strikes a fine balance between storage space and encumbrance " -"and allows a larger weapon to be holstered, drawing and holstering is still " -"rather awkward even with the magnetized clips, but practice helps." +"A standard-issue pack. Based on the MOLLE backpack's design, this smaller " +"pack strikes a fine balance between storage space and encumbrance and allows" +" a larger weapon to be holstered, drawing and holstering is still rather " +"awkward even with the magnetized clips, but practice helps." msgstr "" -"Es la mochila C.R.I.T. estándar. Basada en el diseño de la mochila MOLLE, " -"esta es más pequeña con balance entre la capacidad de almacenamiento e " -"incomodidad y permite llevar colgada un arma grande, aunque enfundar y " -"desenfundar sigue siendo incómodo incluso con cargadores magnéticos, pero la" -" práctica ayuda." +"Es una mochila estándar. Basada en el diseño de la mochila MOLLE, esta es " +"más pequeña con balance entre la capacidad de almacenamiento e incomodidad y" +" permite llevar colgada un arma grande, aunque enfundar y desenfundar sigue " +"siendo incómodo incluso con cargadores magnéticos, pero la práctica ayuda." #: lang/json/ARMOR_from_json.py msgid "CRIT chestrig" @@ -23613,11 +23363,11 @@ msgstr[1] "arneses utilitarios CRIT" #. ~ Description for CRIT chestrig #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" -" with light-armor padding." +"A slightly modified chestrig, has mesh and MOLLE loops for gear and slots " +"with light-armor padding." msgstr "" -"Es un arnés utilitario C.R.I.T. estándar, posee una malla y ganchos MOLLE " -"para equipo y ranuras con placas ligeras de protección." +"Es un arnés utilitario modificado, que posee una malla y ganchos MOLLE para " +"equipo y ranuras con placas ligeras de protección." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT leg guards" @@ -23629,22 +23379,22 @@ msgstr[1] "pares de perneras CRIT" #. CRIT leg guards'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue leg armor. Simple design and durable material allows" -" for easy movement and the padding keeps the legs safe and warm in colder " +"Leg armor for those who fight. Simple design and durable material allows " +"for easy movement and the padding keeps the legs safe and warm in colder " "conditions." msgstr "" -"Son perneras C.R.I.T. estándares. Su diseño simple y material duradero " -"permite el movimiento fácil, y sus protecciones protegen las piernas y " -"abrigan en condiciones frías." +"Son perneras para aquellos que pelean. Su diseño simple y su material " +"resistente te permite el movimiento fácil, y sus protecciones protegen las " +"piernas y abrigan en condiciones frías." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT arm guards" -msgid_plural "pairs of C.R.I.T arm guards" +msgid_plural "pairs of CRIT arm guards" msgstr[0] "par de mangas CRIT" msgstr[1] "pares de mangas CRIT" #. ~ Description for {'str': 'pair of CRIT arm guards', 'str_pl': 'pairs of -#. C.R.I.T arm guards'} +#. CRIT arm guards'} #: lang/json/ARMOR_from_json.py msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " @@ -23664,11 +23414,11 @@ msgstr[1] "cinturones cincha CRIT" #. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on " -"your hip." +"CRIT standard-issue belt. Keeps your trousers up and your weapons on your " +"hip." msgstr "" -"Es un cinturón C.R.I.T. estándar. Mantiene tus pantalones arriba y tus armas" -" a mano." +"Es un cinturón CRIT estándar. Mantiene tus pantalones arriba y tus armas a " +"mano." #: lang/json/ARMOR_from_json.py msgid "CRIT infantry duster" @@ -23687,26 +23437,6 @@ msgstr "" "brinda bastante protección contra las descargas eléctricas de los robots. " "Tiene varios bolsillos." -#: lang/json/ARMOR_from_json.py -msgid "CRIT Engineering Suit" -msgid_plural "CRIT Engineering Suits" -msgstr[0] "Traje de Ingeniería CRIT" -msgstr[1] "Trajes de Ingeniería CRIT" - -#. ~ Description for CRIT Engineering Suit -#: lang/json/ARMOR_from_json.py -msgid "" -"An airtight, flexible suit of woven composite fibers complete with segmented" -" plates of armor. A complex system digitizes items in an individual pocket " -"universe for storage while built in joint-torsion ratchets generate the " -"necessary energy required to power the interface." -msgstr "" -"Es un traje tejido con fibras compuestas, flexible y hermético, con placas " -"segmentadas de armadura. Un sistema complejo digitaliza objetos en un solo " -"universo de bolsillo para almacenarlos, a la vez que unos engranajes " -"articulados integrados generan la energía necesaria para alimentar la " -"interface." - #: lang/json/ARMOR_from_json.py msgid "CRIT Armored Anomaly Suit" msgid_plural "CRIT Armored Anomaly Suits" @@ -23729,12 +23459,12 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "CRIT drop leg pouch" -msgid_plural "C.R.I.T drop leg pouches" -msgstr[0] "bolsa de pierna CRIT" -msgstr[1] "bolsas de pierna CRIT" +msgid_plural "CRIT drop leg pouches" +msgstr[0] "bolsa pernera CRIT" +msgstr[1] "bolsas perneras CRIT" -#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'C.R.I.T drop -#. leg pouches'} +#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'CRIT drop leg +#. pouches'} #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " @@ -23773,23 +23503,24 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT Enforcer docks" msgid_plural "pairs of CRIT Enforcer docks" -msgstr[0] "par de calzado Enforcer CRIT" -msgstr[1] "pares de calzado Enforcer CRIT" +msgstr[0] "par de calzado CRIT Enforcer" +msgstr[1] "pares de calzado CRIT Enforcer" #. ~ Description for {'str': 'pair of CRIT Enforcer docks', 'str_pl': 'pairs #. of CRIT Enforcer docks'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of " +"CRIT Enforcer docks. Metal plates vaguely molded into the shape of " "oversized feet which clamp down onto your own footwear keep your feet out of" " harms way. It looks terrible and feels clunky unlike most of C.R.I.T's " "designs, but they do seem to be worth using if you were to be in the middle " "of a warzone." msgstr "" -"Son unas placas de metal vagamente moldeadas para darle forma de pie grande," -" que se sujetan bajo tu calzado para mantener protegidos tus pies. Es " -"horrible y se sienten torpes a diferencia de los otros diseños de C.R.I.T., " -"pero vale la pena utilizarlos se estás en el medio de una zona de guerra." +"Son calzado CRIT Enforcer. Son unas placas de metal vagamente moldeadas para" +" darle forma de pie grande, que se sujetan bajo tu calzado para mantener " +"protegidos tus pies. Es horrible y se sienten torpes a diferencia de los " +"otros diseños de C.R.I.T., pero vale la pena utilizarlos se estás en el " +"medio de una zona de guerra." #: lang/json/ARMOR_from_json.py msgid "CRIT Soldier Suit" @@ -23831,71 +23562,76 @@ msgstr "" "asegurate de que podés caminar con esto puesto." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T blouse" -msgid_plural "C.R.I.T blouses" -msgstr[0] "blusa C.R.I.T." -msgstr[1] "blusas C.R.I.T." +msgid "CRIT blouse" +msgid_plural "CRIT blouses" +msgstr[0] "blusa CRIT" +msgstr[1] "blusas CRIT" -#. ~ Description for C.R.I.T blouse +#. ~ Description for CRIT blouse #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage." -" Super-flex neoprene keeps one warm in moderately cold weather while a " -"sleek design keeps it from being too flashy. A zipper at the back and front" -" allows for quick donning and doffing." +"A standard-issue military jacket. Durable, lightweight, and has ample " +"storage. Super-flex neoprene keeps one warm in moderately cold weather " +"while a sleek design keeps it from being too flashy. A zipper at the back " +"and front allows for quick donning and doffing." msgstr "" -"Es una blusa C.R.I.T. estándar. Duradera, liviana y con abundante capacidad " -"de almacenamiento. El neopreno superflexible te mantiene abrigado y su " +"Es una campera militar estándar. Duradera, liviana y con abundante capacidad" +" de almacenamiento. El neopreno superflexible te mantiene abrigado y su " "diseño elegante evita que seas demasiado llamativo. Un cierre en la espalda " "y en la parte de adelante, permite ponerse y sacársela rápidamente." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T trousers" -msgid_plural "C.R.I.T trousers" -msgstr[0] "pantalón CRIT" +msgid "CRIT trousers" +msgid_plural "CRIT trousers" +msgstr[0] "pantalones CRIT" msgstr[1] "pantalones CRIT" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT trousers'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue trousers. Durable, lightweight and has ample " +"A pair of standard-issue cargo pants. Durable, lightweight and has ample " "storage. Super-flex neoprene keeps one warm in moderately cold weather." msgstr "" -"Son pantalones C.R.I.T. estándares. Duraderos, livianos y con abundante " -"capacidad de almacenamiento. El neopreno superflexible te mantiene abrigado " -"en climas fríos." +"Es un par de pantalones cargo estándar. Resistentes, livianos y con " +"abundante capacidad de almacenamiento. El neopreno superflexible te mantiene" +" abrigado en climas fríos." + +#: lang/json/ARMOR_from_json.py +msgid "CRIT pants" +msgid_plural "CRIT pants" +msgstr[0] "pantalones de vestir CRIT" +msgstr[1] "pantalones de vestir CRIT" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT pants'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " -"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " -"cold weather." +"A pair of dress pants. A minimalist sleek design makes the pants " +"lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in" +" moderately cold weather." msgstr "" -"Son pantalones de vestir C.R.I.T. Su elegante diseño minimalista los hace " -"livianos y con una buena cantidad de bolsillos. El neopreno superflexible te" -" mantiene abrigado en climas fríos." +"Son pantalones de vestir. Su elegante diseño minimalista los hace livianos y" +" con una buena cantidad de bolsillos. El neopreno superflexible te mantiene " +"abrigado en climas fríos." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T helmet liner" -msgid_plural "C.R.I.T helmet liners" -msgstr[0] "interior de casco C.R.I.T." -msgstr[1] "interiores de casco C.R.I.T." +msgid "CRIT helmet liner" +msgid_plural "CRIT helmet liners" +msgstr[0] "interior de casco CRIT" +msgstr[1] "interiores de casco CRIT" -#. ~ Description for C.R.I.T helmet liner +#. ~ Description for CRIT helmet liner #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." -msgstr "" -"Es un interior de casco C.R.I.T. estándar. Mantiene el balero calentito." +msgid "A standard-issue helmet liner. Keeps the noggin warm." +msgstr "Es un interior de casco estándar. Mantiene el balero calentito." #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T shoes" -msgid_plural "pairs of C.R.I.T dress shoes" -msgstr[0] "par de zapatos de vestir C.R.I.T." -msgstr[1] "pares de zapatos de vestir C.R.I.T." +msgid "pair of CRIT shoes" +msgid_plural "pairs of CRIT dress shoes" +msgstr[0] "par de zapatos de vestir CRIT" +msgstr[1] "pares de zapatos de vestir CRIT" -#. ~ Description for {'str': 'pair of C.R.I.T shoes', 'str_pl': 'pairs of -#. C.R.I.T dress shoes'} +#. ~ Description for {'str': 'pair of CRIT shoes', 'str_pl': 'pairs of CRIT +#. dress shoes'} #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." msgstr "" @@ -23903,44 +23639,37 @@ msgstr "" "ojos." #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T rec gloves" -msgid_plural "pairs of C.R.I.T rec gloves" +msgid "pair of CRIT rec gloves" +msgid_plural "pairs of CRIT rec gloves" msgstr[0] "par de guantes rec CRIT" msgstr[1] "pares de guantes rec CRIT" -#. ~ Description for {'str': 'pair of C.R.I.T rec gloves', 'str_pl': 'pairs of -#. C.R.I.T rec gloves'} +#. ~ Description for {'str': 'pair of CRIT rec gloves', 'str_pl': 'pairs of +#. CRIT rec gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are" -" made with cotton with a neoprene lining for grip-pads and warmth. " +"A pair of standard-issue rec gloves. Skin-hugging and sleek, these gloves " +"are made with cotton with a neoprene lining for grip-pads and warmth. " msgstr "" -"Son guantes rec C.R.I.T. estándares. Ajustados a la piel y elegantes, estos " +"Es un par de guantes rec estándares. Ajustados a la piel y elegantes, estos " "guantes están hechos de algodón con interior de neopreno para brindar mejor " "agarre y abrigo." -#: lang/json/ARMOR_from_json.py -msgid "C.R.I.T web belt" -msgid_plural "C.R.I.T web belts" -msgstr[0] "cinturón cincha C.R.I.T." -msgstr[1] "cinturones cincha C.R.I.T." - -#. ~ Description for C.R.I.T web belt +#. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " -"hip." +"A standard-issue belt. Keeps your trousers up and your tools on your hip." msgstr "" -"Es un cinturón C.R.I.T. estándar. Mantiene tus pantalones arriba y tus " -"herramientas a mano." +"Es un cinturón estándar. Mantiene tus pantalones arriba y tus herramientas a" +" mano." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec duster" -msgid_plural "C.R.I.T rec dusters" -msgstr[0] "gabardina rec C.R.I.T." -msgstr[1] "gabardinas rec C.R.I.T." +msgid "CRIT rec duster" +msgid_plural "CRIT rec dusters" +msgstr[0] "gabardina rec CRIT" +msgstr[1] "gabardinas rec CRIT" -#. ~ Description for C.R.I.T rec duster +#. ~ Description for CRIT rec duster #: lang/json/ARMOR_from_json.py msgid "" "A waterproofed full-length duster coat. Made with neoprene, comfort and " @@ -23952,23 +23681,53 @@ msgstr "" "Tiene varios bolsillos para almacenar objetos." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec hat" -msgid_plural "C.R.I.T rec hats" -msgstr[0] "sombrero rec C.R.I.T." -msgstr[1] "sombreros rec C.R.I.T." +msgid "CRIT rec hat" +msgid_plural "CRIT rec hats" +msgstr[0] "sombrero rec CRIT" +msgstr[1] "sombreros rec CRIT" -#. ~ Description for C.R.I.T rec hat +#. ~ Description for CRIT rec hat #: lang/json/ARMOR_from_json.py msgid "" -"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " +"Functionality meets fashion in this waterproofed CRIT standard issue rec " "cover. Thick enough to provide warmth in colder weather, this hat shares " "the same sleek design of most of C.R.I.T's gear." msgstr "" -"La funcionalidad se conjuga con la elegancia en este sombrero rec C.R.I.T. " +"La funcionalidad se conjuga con la elegancia en este sombrero rec CRIT " "estándar. Lo suficientemente grueso para brindar abrigo en climas fríos, " "este sombrero comparte el mismo diseño elegante de la mayoría del equipo " "C.R.I.T." +#: lang/json/ARMOR_from_json.py +msgid "plant fiber tunic" +msgid_plural "plant fiber tunics" +msgstr[0] "túnica de fibra vegetal" +msgstr[1] "túnicas de fibra vegetal" + +#. ~ Description for plant fiber tunic +#: lang/json/ARMOR_from_json.py +msgid "" +"A loose garment cobbled together from a collection of plant bundles and " +"wound together by makeshift cordage" +msgstr "" +"Es un vestido suelto armado con una colección de manojos de plantas y " +"envuelto con una soga improvisada." + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber bracelet" +msgid_plural "plant fiber bracelets" +msgstr[0] "pulsera de fibra vegetal" +msgstr[1] "pulseras de fibra vegetal" + +#. ~ Description for plant fiber bracelet +#: lang/json/ARMOR_from_json.py +msgid "" +"A bracelet wound together by makeshift cordage. Has some cool looking " +"pebbles. " +msgstr "" +"Es una pulsera armada con una soga improvisada. Tiene unas piedritas " +"copadas." + #: lang/json/ARMOR_from_json.py msgid "CRIT canteen" msgid_plural "CRIT canteens" @@ -23978,11 +23737,11 @@ msgstr[1] "cantimploras CRIT" #. ~ Description for CRIT canteen #: lang/json/ARMOR_from_json.py msgid "" -"A simple, durable steel canteen that can heat up food with built in " -"plutonium heating elements." +"A durable steel canteen that can heat up food with built in atomic heating " +"elements." msgstr "" -"Es una cantimplora común y duradera de acero, que puede calentar la comida " -"con sus resistencias térmicas de plutonio integradas." +"Es una cantimplora duradera de acero, que puede calentar la comida con sus " +"resistencias térmicas atómicas integradas." #: lang/json/ARMOR_from_json.py msgid "wet bandana" @@ -24158,7 +23917,7 @@ msgid "" msgstr "" "Es un casco creado con exoesqueletos rojos de arañas demoníacas, " "cuidadosamente limpiados y recortados. Cubre toda la cabeza, es resistente " -"al fuego y muy duradero." +"al fuego y muy resistente." #: lang/json/ARMOR_from_json.py msgid "pair of demon chitin gauntlets" @@ -24175,7 +23934,7 @@ msgid "" msgstr "" "Son unos guantes creados con exoesqueletos rojos de arañas demoníacas, " "cuidadosamente limpiados y recortados. Son resistentes al fuego y muy " -"duraderos." +"resistentes." #: lang/json/ARMOR_from_json.py msgid "pair of demon chitin boots" @@ -24701,149 +24460,6 @@ msgstr "" "Es una capa envolvente e invisible de aura mágica que te protege del " "ambiente." -#: lang/json/ARMOR_from_json.py -msgid "wooden shield" -msgid_plural "wooden shields" -msgstr[0] "escudo de madera" -msgstr[1] "escudos de madera" - -#. ~ Description for wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A crude wooden shield, lacking any metal or leather reinforcement. " -"Lightweight but not very tough." -msgstr "" -"Es un escudo rudimentario de madera que no tiene ningún refuerzo de metal ni" -" cuero. Es liviano pero no es muy resistente." - -#: lang/json/ARMOR_from_json.py -msgid "large wooden shield" -msgid_plural "large wooden shields" -msgstr[0] "escudo grande de madera" -msgstr[1] "escudos grandes de madera" - -#. ~ Description for large wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"An ancient style of wooden shield, lacking any metal or leather " -"reinforcement. Bulky, but offers a decent amount of protection." -msgstr "" -"Es un escudo de madera de estilo antiguo que no tiene ningún refuerzo de " -"metal ni cuero. Es incómodo pero brinda una cantidad decente de protección." - -#: lang/json/ARMOR_from_json.py -msgid "heater shield" -msgid_plural "heater shields" -msgstr[0] "escudo de plancha" -msgstr[1] "escudos de plancha" - -#. ~ Description for heater shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A medieval style of shield made of wood overlaid with leather, developed " -"from the longer kite shield. Mainly used in tournaments, but still viable " -"in battle." -msgstr "" -"Es un escudo de estilo medieval hecho de madera recubierto de cuero, " -"desarrollado a partir del escudo de lágrima que es un poco más grande. Se lo" -" usaba principalmente en torneos, pero igual es útil en combate. Su nombre " -"se le dio modernamente por su forma parecida al de una plancha." - -#: lang/json/ARMOR_from_json.py -msgid "kite shield" -msgid_plural "kite shields" -msgstr[0] "escudo de lágrima" -msgstr[1] "escudos de lágrima" - -#. ~ Description for kite shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A classic medieval style of shield, made of wood overlaid with leather, in " -"an elongated teardrop shape. Affords decent protection, but was better " -"suited for cavalry." -msgstr "" -"Es un escudo de estilo medieval clásico hecho de madera recubierto de cuero," -" con forma de lágrima estirada. Brinda una protección decente, pero era " -"mejor aprovechado por la caballería." - -#: lang/json/ARMOR_from_json.py -msgid "round shield" -msgid_plural "round shields" -msgstr[0] "escudo circular" -msgstr[1] "escudos circulares" - -#. ~ Description for round shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple round shield made of wood, with a rim and boss of iron. Made " -"infamous by the Vikings." -msgstr "" -"Es un escudo circular común hecho de madera, con borde y bloca de hierro. Su" -" fama se debe a los vikingos." - -#: lang/json/ARMOR_from_json.py -msgid "hoplon" -msgid_plural "hoplons" -msgstr[0] "hoplon" -msgstr[1] "hoplones" - -#. ~ Description for hoplon -#: lang/json/ARMOR_from_json.py -msgid "" -"A convex round shield from ancient Greece, made of wood reinforced with " -"bronze. Heavy but effective." -msgstr "" -"Es un escudo circular convexo de la antigua Grecia, hecho de madera y " -"reforzado con bronce. Es pesado pero eficiente." - -#: lang/json/ARMOR_from_json.py -msgid "scutum" -msgid_plural "scuta" -msgstr[0] "scutum" -msgstr[1] "scuta" - -#. ~ Description for {'str': 'scutum', 'str_pl': 'scuta'} -#: lang/json/ARMOR_from_json.py -msgid "" -"A rectangular shield from ancient Rome, made of wood and iron. Perfect for " -"fighting in formation, but not ideal for facing zombies alone." -msgstr "" -"Es un escudo rectangular de la antigua Roma, hecho de madera e hierro. " -"Perfecto para el combate en formación, pero no muy ideal para enfrentarse " -"con zombis solo." - -#: lang/json/ARMOR_from_json.py -msgid "buckler" -msgid_plural "bucklers" -msgstr[0] "broquel" -msgstr[1] "broqueles" - -#. ~ Description for buckler -#: lang/json/ARMOR_from_json.py -msgid "" -"A small metal shield from the late medieval and renaissance periods. " -"Extremely light and tough, but its small size is as much a hindrance as it " -"is an advantage." -msgstr "" -"Es un pequeño escudo de metal del medioevo tardío y del renacimiento. " -"Extremadamente liviano y resistente, pero el pequeño tamaño es tanto su " -"problema como su ventaja." - -#: lang/json/ARMOR_from_json.py -msgid "hooded hat" -msgid_plural "hooded hats" -msgstr[0] "sombrero con capucha" -msgstr[1] "sombreros con capucha" - -#. ~ Description for hooded hat -#: lang/json/ARMOR_from_json.py -msgid "" -"A proper wide-brimmed hat, modified by the addition of a hood sewn to it, to" -" better protect the neck from wind and rain." -msgstr "" -"Es un sombrero formal de ala ancha, con el agregado de una capucha cosida, " -"para proteger mejor el cuello del viento y la lluvia." - #: lang/json/ARMOR_from_json.py msgid "TEST pair of socks" msgid_plural "TEST pairs of socks" @@ -24880,6 +24496,28 @@ msgid_plural "TEST briefcases" msgstr[0] "TEST maletín" msgstr[1] "TEST maletines" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "" + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -26764,7 +26402,7 @@ msgid "" "Part of the autodoc's 'Cyborg Identity Package', this bionic gives the user " "a creepy robot voice." msgstr "" -"Es parte del 'Paquete de Identidad Androide' del autodoc, este biónico le " +"Es parte del 'Paquete de Identidad Ciborg' del autodoc, este biónico le " "otorga al usuario una voz robótica y espeluznante." #: lang/json/BIONIC_ITEM_from_json.py @@ -26984,6 +26622,22 @@ msgstr "" "biónica, periódicamente libera dopamina y otros químicos, induciendo un " "estado de euforia y eliminando el miedo." +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "Bomba Craneal" +msgstr[1] "Bomba Craneal" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "" +"Es una bomba instalada donde tu columna vertebral se conecta con tu tallo " +"cerebral. Tiene un temporizador desde su instalación y no tenés los códigos " +"para resetearlo." + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -27022,6 +26676,27 @@ msgstr "" "Cuanto más fuerte sea la sangre, mejor. Puede contener hasta 100 ml de " "sangre." +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Crystallized Mana Nose Replacement" +msgid_plural "Crystallized Mana Nose Replacements" +msgstr[0] "Reemplazo de Nariz de Maná Cristalizado" +msgstr[1] "Reemplazo de Nariz de Maná Cristalizado" + +#. ~ Description for {'str': 'Crystallized Mana Nose Replacement'} +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"A large gem made with crystallized mana and some other stabilizing metals. " +"Comes with a specially designed power pack (installed into the skull) that " +"does not interfere with your mana ley lines. WARNING: for Technomancer use " +"only. By using this spell you are waiving all liability of Frikken Laser " +"Beams Inc. and its subsidiaries." +msgstr "" +"Es un joya grande con maná cristalizado y algunos otros metales estables. " +"Viene con un paquete de energía especialmente diseñado (instalado en el " +"cráneo) que no interfiere en las líneas ley de tu maná. CUIDADO: para ser " +"usado solamente por Tecnomantes. Al usar este hechizo, queda relegada toda " +"responsabilidad de Friken Laser Beams Inc. y sus filiales." + #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" msgid_plural "chicken walker schematics" @@ -27096,355 +26771,476 @@ msgstr "" "nucleares. Tiene un sello que dice \"RECHAZADO\"." #: lang/json/BOOK_from_json.py -msgid "Lessons for the Novice Bowhunter" -msgid_plural "copies of Lessons for the Novice Bowhunter" -msgstr[0] "Lecciones para el Cazador con Arco Principiante" -msgstr[1] "copias de Lecciones para el Cazador con Arco Principiante" +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'Lessons for the Novice Bowhunter', 'str_pl': -#. 'copies of Lessons for the Novice Bowhunter'} +#. ~ Description for Generic Nonfiction Book #: lang/json/BOOK_from_json.py -msgid "" -"This hefty paperback book contains all the information needed for novice " -"archers to get started hunting with a variety of bows and crossbows." +msgid "template for a manuscript purporting to be factual" msgstr "" -"Este robusto libro en rústica contiene toda la información necesaria para " -"que el arquero principiante pueda comenzar a cazar con una variedad de arcos" -" y ballestas." #: lang/json/BOOK_from_json.py -msgid "Archery for Kids" -msgid_plural "issues of Archery for Kids" -msgstr[0] "Arquería para Niños" -msgstr[1] "fascículos de Arquería para Niños" +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'Archery for Kids', 'str_pl': 'issues of Archery -#. for Kids'} +#. ~ Description for Generic Fiction Book #: lang/json/BOOK_from_json.py -msgid "" -"Will you be able to place the arrow right into the bullseye? It is not that" -" easy, but once you know how it's done, you will have a lot of fun with " -"archery." +msgid "template for a work of fiction" msgstr "" -"¿Serás capaz de clavar la flecha en el medio de la diana? No es fácil, pero " -"una vez que sepas cómo se hace, te vas a divertir mucho con la arquería." #: lang/json/BOOK_from_json.py -msgid "Zen and the Art of Archery" -msgid_plural "copies of Zen and the Art of Archery" -msgstr[0] "El Zen y el Arte de la Arquería" -msgstr[1] "copias de El Zen y el Arte de la Arquería" +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies -#. of Zen and the Art of Archery'} +#. ~ Description for Generic Hard Bound Fiction Book #: lang/json/BOOK_from_json.py -msgid "" -"This massive book contains a wealth of vital information for the novice " -"archer." +msgid "Template for hard bound book of fiction" msgstr "" -"Este enorme libro contiene mucha información vital para el arquero novato." #: lang/json/BOOK_from_json.py -msgid "car buyer's guide" -msgid_plural "car buyer's guides" -msgstr[0] "catálogo de autos" -msgstr[1] "catálogos de autos" +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#: lang/json/BOOK_from_json.py +msgid "An ordinary paperback book. Or is it? It is." +msgstr "Es un libro común con tapa blanda. ¿O no? Sí." + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Book" +msgid_plural "Nonfiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for hard bound nonfiction book" +msgstr "" -#. ~ Description for {'str': "car buyer's guide"} +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Paperback" +msgid_plural "Nonfiction Paperbacks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Nonfiction Paperback +#: lang/json/BOOK_from_json.py +msgid "template for a paperback nonfiction book" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Homemaking Book" +msgid_plural "Homemaking Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Homemaking Book #: lang/json/BOOK_from_json.py msgid "" -"Normally this glossy, ad-filled magazine about cars would be pointless, but " -"it has a series of articles on haggling techniques." +"This is a template for books about homemaking, style, home decor, and home " +"economics." msgstr "" -"Esta revista brillosa, llena de publicidades acerca de autos sería " -"normalmente inservible, pero tiene artículos sobre técnicas para regatear " -"precios." #: lang/json/BOOK_from_json.py -msgid "How to Succeed in Business" -msgid_plural "copies of How to Succeed in Business" -msgstr[0] "Cómo tener Éxito en los Negocios" -msgstr[1] "copias de Cómo tener Éxito en los Negocios" +msgid "Hardcover Cookbook" +msgid_plural "Hardcover Cookbooks" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'How to Succeed in Business', 'str_pl': 'copies -#. of How to Succeed in Business'} +#. ~ Description for Hardcover Cookbook +#. ~ Description for Softcover Cookbook #: lang/json/BOOK_from_json.py -msgid "Useful if you want to get a good deal when purchasing goods." -msgstr "Es útil si querés obtener un buen negocio cuando comprás cosas." +msgid "This is a template for books about cooking." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Advanced Economics" -msgid_plural "copies of Advanced Economics" -msgstr[0] "Economía Avanzada" -msgstr[1] "copias de Economía Avanzada" +msgid "Softcover Cookbook" +msgid_plural "Softcover Cookbooks" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'Advanced Economics', 'str_pl': 'copies of -#. Advanced Economics'} #: lang/json/BOOK_from_json.py -msgid "A college textbook on economics." -msgstr "Un texto escolar sobre economía." +msgid "dodge skillbook abstract" +msgid_plural "dodge skillbook abstracts" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for dodge skillbook abstract #: lang/json/BOOK_from_json.py -msgid "Batter Up!" -msgid_plural "issues of Batter Up!" -msgstr[0] "¡Al Bate!" -msgstr[1] "fascículos de ¡Al Bate!" +msgid "An ordinary book. Or is it? It is." +msgstr "Es un libro común. ¿O no? Sí, lo es." -#. ~ Description for {'str': 'Batter Up!', 'str_pl': 'issues of Batter Up!'} #: lang/json/BOOK_from_json.py -msgid "" -"A baseball magazine that focuses on batting tips. There are lots of " -"colorful, full-page photos of skilled athletes demonstrating proper form and" -" technique." +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Philosophy +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about philosophy." msgstr "" -"Es una revista sobre béisbol que se especializa en consejos para batear. " -"Está lleno de fotos de página completa a todo color de atletas demostrando " -"la técnica correcta." #: lang/json/BOOK_from_json.py -msgid "tactical baton defense manual" -msgid_plural "tactical baton defense manuals" -msgstr[0] "manual de defensa con bastón táctico" -msgstr[1] "manuales de defensa con bastón táctico" +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'tactical baton defense manual'} +#. ~ Description for Softcover Philosophy. #: lang/json/BOOK_from_json.py -msgid "" -"An informative guide to self-defense using clubs and batons. Aimed at the " -"law enforcement and military market, it is packed with time tested, no-" -"nonsense information and written to be understandable for beginners." +msgid "This is a template for paperbacks about philosophy." msgstr "" -"Es una guía informativa para la defensa personal usando garrotes y bastones." -" Escrito para el mercado militar y policial, está lleno de información " -"comprobada y escrita para que lo pueda comprender un principiante." #: lang/json/BOOK_from_json.py -msgid "SICP" -msgid_plural "copies of SICP" -msgstr[0] "SICP" -msgstr[1] "copias de SICP" +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. #: lang/json/BOOK_from_json.py -msgid "" -"A classic text, \"The Structure and Interpretation of Computer Programs.\" " -"Written with examples in LISP, but applicable to any language." +msgid "This is a template." msgstr "" -"Un texto clásico, \"Estructura e Interpretación de los Programas de " -"Computación\". Escrito con ejemplos en LISP pero aplicable a cualquier " -"lenguaje." #: lang/json/BOOK_from_json.py -msgid "Computer Science 301" -msgid_plural "copies of Computer Science 301" -msgstr[0] "Ciencias de la Computación 3" -msgstr[1] "copias de Ciencias de la Computación 3" +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of -#. Computer Science 301'} #: lang/json/BOOK_from_json.py -msgid "A college textbook on computer science." -msgstr "Un texto escolar sobre las ciencias de la computación." +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "" +msgstr[1] "" #: lang/json/BOOK_from_json.py -msgid "How to Browse the Web" -msgid_plural "copies of How to Browse the Web" -msgstr[0] "Cómo Navegar por la Web" -msgstr[1] "copias de Cómo Navegar por la Web" +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How -#. to Browse the Web'} #: lang/json/BOOK_from_json.py -msgid "Very beginner-level information about computers." -msgstr "Información sobre computadoras para principiantes." +msgid "template for mass produced books on esoteric subjects" +msgid_plural "template for mass produced books on esoteric subjectss" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for template for mass produced books on esoteric subjects #: lang/json/BOOK_from_json.py -msgid "Computer World" -msgid_plural "issues of Computer World" -msgstr[0] "Mundo Computadora" -msgstr[1] "fascículos de Mundo Computadora" +msgid "" +"An ordinary paperback book. Or is it? Is that a glimmer of higher truth?" +msgstr "" +"Es un libro común con tapa blanda. ¿O no? ¿Eso son destellos de una verdad " +"absoluta?" -#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer -#. World'} +#: lang/json/BOOK_from_json.py +msgid "Sweet Providence Romance Novel" +msgid_plural "Sweet Providence Romance Novels" +msgstr[0] "Novela Romántica de Sweet Providence" +msgstr[1] "Novelas Románticas de Sweet Providence" + +#. ~ Description for Sweet Providence Romance Novel #: lang/json/BOOK_from_json.py msgid "" -"An informative magazine all about computers, both hardware and software." +"Sweet Providence Books is a publisher of discount romance paperbacks easily " +"recognized by their blue and yellow cover illustrations. Despite the adult " +"nature of their subject matter, the books tend to be under 250 pages of " +"large print written in a vocabulary consistent with a 4th grade reading " +"level." msgstr "" -"Una revista informativa acerca de las computadoras, tanto hardware como " -"software." +"Sweet Providence Books es una editorial de libros románticos baratos en " +"rústica, fácilmente reconocibles por sus tapas ilustradas en azul y " +"amarillo. A pesar de la naturaleza adulta del tema tratado, los libros " +"tienden a ser de menos de 250 páginas en letra grande, con un vocabulario " +"consistente con un nivel de lectura de cuarto grado." #: lang/json/BOOK_from_json.py -msgid "Computer Science 101" -msgid_plural "copies of Computer Science 101" -msgstr[0] "Ciencias de la Computación 1" -msgstr[1] "copias de Ciencias de la Computación 1" +msgid "Lorn and Loan Romance Novel" +msgid_plural "Lorn and Loan Romance Novels" +msgstr[0] "Novela Romántica Lorn and Loan" +msgstr[1] "Novelas Románticas Lorn and Loan" -#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of -#. Computer Science 101'} +#. ~ Description for Lorn and Loan Romance Novel #: lang/json/BOOK_from_json.py -msgid "An entry-level textbook about computers." -msgstr "Un libro de texto sobre computadoras de nivel básico." +msgid "" +"Lorn and Loan Press marketed romance paperbacks to a variety of alt " +"demographics, especially those with a penchant for eyeliner. The books are " +"billed as \"provocative,\" but words like \"malingering\" and \"turgid\" " +"also come to mind." +msgstr "" +"Lorn and Loan Press dirige sus romances en rústica a una variedad de " +"demográfica, especialmente aquellos que tienen afición por el delineador de " +"ojos. Los libros están listados como \"provocativos\", pero otra palabra que" +" viene a la mente es \"ampulosos\"." #: lang/json/BOOK_from_json.py -msgid "Principles of Advanced Programming" -msgid_plural "copies of Principles of Advanced Programming" -msgstr[0] "Principios de Programación Avanzada" -msgstr[1] "copias de Principios de Programación Avanzada" +msgid "Vanilla Romance Novel" +msgid_plural "Vanilla Romance Novels" +msgstr[0] "Novela Romántica Vanilla" +msgstr[1] "Novelas Románticas Vanilla" -#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': -#. 'copies of Principles of Advanced Programming'} +#. ~ Description for Vanilla Romance Novel #: lang/json/BOOK_from_json.py msgid "" -"A heavy textbook dedicated to advanced-level software design, written for " -"several different programming languages." +"Vanilla Media is a mainstream publisher providing romantic literature to " +"everyday readers of taste. These stories contain explicit details only in " +"the odd chapters, and invariably end with a conventionally uplifting moral." msgstr "" -"Un libro pesado dedicado al diseño de software de nivel avanzado, escrito " -"para diferentes lenguajes de programación." +"Vanilla Media es una editora establecida que edita literatura romántica para" +" los lectores diarios. Estas historias contienen detalles explícitos " +"solamente en los capítulos impares, e invariablemente terminan con una " +"convencional moral inspiradora." #: lang/json/BOOK_from_json.py -msgid "Advanced Physical Chemistry" -msgid_plural "copies of Advanced Physical Chemistry" -msgstr[0] "Físico-química Avanzada" -msgstr[1] "copias de Físico-química Avanzada" +msgid "The Everyman Library" +msgid_plural "The Everyman Librarys" +msgstr[0] "The Everyman Library" +msgstr[1] "The Everyman Library" -#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies -#. of Advanced Physical Chemistry'} +#. ~ Description for The Everyman Library #: lang/json/BOOK_from_json.py msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." +"The Everyman Library is an imprint of Vanilla Media that publishes stories " +"about private eyes, cowboys, quarterbacks, and mobsters." msgstr "" -"Un texto universitario sobre los principios avanzados de química, tanto " -"orgánica como inorgánica." +"The Everyman Lybrary es sello editorial de Vanilla Media que publica " +"historias sobre detectives privados, vaqueros, mariscales de campo y " +"mafiosos." #: lang/json/BOOK_from_json.py -msgid "The Homebrewer's Bible" -msgid_plural "copies of The Homebrewer's Bible" -msgstr[0] "La Biblia del Cervecero" -msgstr[1] "copias de La Biblia del Cervecero" +msgid "Tween Topics" +msgid_plural "Tween Topicss" +msgstr[0] "Tween Topics" +msgstr[1] "Tween Topics" -#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of -#. The Homebrewer's Bible"} +#. ~ Description for Tween Topics #: lang/json/BOOK_from_json.py msgid "" -"A book full of easy-to-follow recipes and useful advice on homebrewing, " -"malting, and fermenting. It even smells faintly of booze." +"Tween Topics is an imprint of Vanilla Media that publishes stories that " +"appeal to the youth of today. Or, failing that, the parents of said youth." msgstr "" -"Es un libro lleno de recetas fáciles de hacer y consejos útiles sobre hacer " -"cerveza en casa, transformar en malta y la fermentación. Incluso tiene un " -"olorcito a alcohol." +"Tween Topics es un sello editorial de Vanilla Media que publica historias " +"que atraen a la juventud de hoy. O, si eso no funciona, a los padres de " +"dicha juventud." #: lang/json/BOOK_from_json.py -msgid "Cooking on a Budget" -msgid_plural "copies of Cooking on a Budget" -msgstr[0] "Cocinando con Poca Plata" -msgstr[1] "copias de Cocinando con Poca Plata" +msgid "Quiddity Books" +msgid_plural "Quiddity Bookss" +msgstr[0] "Quiddity Books" +msgstr[1] "Quiddity Books" -#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of -#. Cooking on a Budget'} +#. ~ Description for Quiddity Books #: lang/json/BOOK_from_json.py msgid "" -"A nice cook book that goes beyond recipes and into the chemistry of food." +"Quiddity publishes books for young adults. They offer stories about self-" +"discovery, personal identity, and contemporary trends." msgstr "" -"Un lindo libro de cocina que va más allá de las recetas, cubre también la " -"química de la comida." +"Quiddity Books publica libros para adultos jóvenes. Ofrecen historias acerca" +" del autoconocimiento, identidad personal y tendencias contemporáneas." #: lang/json/BOOK_from_json.py -msgid "To Serve Man" -msgid_plural "copies of To Serve Man" -msgstr[0] "Servir al Hombre" -msgstr[1] "copias de Servir al Hombre" +msgid "Satire Template" +msgid_plural "Satire Templates" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve -#. Man'} +#. ~ Description for Satire Template #: lang/json/BOOK_from_json.py -msgid "It's… it's a cookbook!" -msgstr "Es... ¡un libro de recetas!" +msgid "template for mass produced satirical fiction" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Cucina Italiana" -msgid_plural "copies of Cucina Italiana" -msgstr[0] "Cucina Italiana" -msgstr[1] "copias de Cucina Italiana" +msgid "Magazine Template" +msgid_plural "Magazine Templates" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina -#. Italiana'} +#. ~ Description for Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "News Magazine Template" +msgid_plural "News Magazine Templates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for News Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for news magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "readable magazine" +msgid_plural "readable magazines" +msgstr[0] "revista legible" +msgstr[1] "revistas legibles" + +#: lang/json/BOOK_from_json.py +msgid "archery skill training abstract" +msgid_plural "archery skill training abstracts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for archery skill training abstract +#: lang/json/BOOK_from_json.py +msgid "template for heavy books that confer archery skill training" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Lessons for the Novice Bowhunter" +msgid_plural "copies of Lessons for the Novice Bowhunter" +msgstr[0] "Lecciones para el Cazador con Arco Principiante" +msgstr[1] "copias de Lecciones para el Cazador con Arco Principiante" + +#. ~ Description for {'str': 'Lessons for the Novice Bowhunter', 'str_pl': +#. 'copies of Lessons for the Novice Bowhunter'} #: lang/json/BOOK_from_json.py msgid "" -"This cookbook is written in Italian, but handily illustrated with step by " -"step photo instructions." +"This hefty paperback book contains all the information needed for novice " +"archers to get started hunting with a variety of bows and crossbows." msgstr "" -"Este libro de recetas está escrito en italiano, pero convenientemente " -"ilustrado con fotografías paso por paso." +"Este robusto libro en rústica contiene toda la información necesaria para " +"que el arquero principiante pueda comenzar a cazar con una variedad de arcos" +" y ballestas." #: lang/json/BOOK_from_json.py -msgid "Sushi Made Easy" -msgid_plural "copies of Sushi Made Easy" -msgstr[0] "Sushi con Facilidad" -msgstr[1] "copias de Sushi con Facilidad" +msgid "Zen and the Art of Archery" +msgid_plural "copies of Zen and the Art of Archery" +msgstr[0] "El Zen y el Arte de la Arquería" +msgstr[1] "copias de El Zen y el Arte de la Arquería" -#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi -#. Made Easy'} +#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies +#. of Zen and the Art of Archery'} #: lang/json/BOOK_from_json.py msgid "" -"A simple text for the aspiring sushi lover, this easy to read guide is " -"filled with lots of helpful illustrations for everything from basic rice " -"preparation to setting a proper Japanese table." +"This massive book contains a wealth of vital information for the novice " +"archer." msgstr "" -"Es un texto simple para el amante del sushi. Esta guía fácil de leer está " -"llena con ilustraciones para todo, desde la preparación básica del arroz " -"hasta cómo poner adecuadamente la mesa a la japonesa." +"Este enorme libro contiene mucha información vital para el arquero novato." #: lang/json/BOOK_from_json.py -msgid "family cookbook" -msgid_plural "family cookbooks" -msgstr[0] "libro de recetas familiares" -msgstr[1] "libros de recetas familiares" +msgid "Archery for Kids" +msgid_plural "issues of Archery for Kids" +msgstr[0] "Arquería para Niños" +msgstr[1] "fascículos de Arquería para Niños" -#. ~ Description for {'str': 'family cookbook'} +#. ~ Description for {'str': 'Archery for Kids', 'str_pl': 'issues of Archery +#. for Kids'} #: lang/json/BOOK_from_json.py msgid "" -"A big binder full of somebody's family recipes. The well-turned pages and " -"creased corners speak volumes of the culinary knowledge contained within. " -"You could probably learn a lot about cooking from studying this domestic " -"artifact." +"Will you be able to place the arrow right into the bullseye? It is not that" +" easy, but once you know how it's done, you will have a lot of fun with " +"archery." msgstr "" -"Una gran carpeta llena de recetas de alguna familia. Las elegantes páginas y" -" esquinas arrugadas nos da una idea de la cantidad de conocimiento culinario" -" que contiene. Probablemente, puedas aprender mucho sobre cocina estudiando " -"este libro casero." +"¿Serás capaz de clavar la flecha en el medio de la diana? No es fácil, pero " +"una vez que sepas cómo se hace, te vas a divertir mucho con la arquería." #: lang/json/BOOK_from_json.py -msgid "Bon Appetit" -msgid_plural "issues of Bon Appetit" -msgstr[0] "Bon Appetit" -msgstr[1] "fascículos de Bon Appetit" +msgid "car buyer's guide" +msgid_plural "car buyer's guides" +msgstr[0] "catálogo de autos" +msgstr[1] "catálogos de autos" -#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#. ~ Description for {'str': "car buyer's guide"} #: lang/json/BOOK_from_json.py msgid "" -"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +"Normally this glossy, ad-filled magazine about cars would be pointless, but " +"it has a series of articles on haggling techniques." msgstr "" -"Libro con recetas apasionantes y reseñas de restaurantes. Lleno de consejos " -"útiles para cocinar." +"Esta revista brillosa, llena de publicidades acerca de autos sería " +"normalmente inservible, pero tiene artículos sobre técnicas para regatear " +"precios." #: lang/json/BOOK_from_json.py -msgid "Glamopolitan" -msgid_plural "issues of Glamopolitan" -msgstr[0] "Glamopolitan" -msgstr[1] "fascículos de Glamopolitan" +msgid "How to Succeed in Business" +msgid_plural "copies of How to Succeed in Business" +msgstr[0] "Cómo tener Éxito en los Negocios" +msgstr[1] "copias de Cómo tener Éxito en los Negocios" -#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of -#. Glamopolitan'} +#. ~ Description for {'str': 'How to Succeed in Business', 'str_pl': 'copies +#. of How to Succeed in Business'} +#: lang/json/BOOK_from_json.py +msgid "Useful if you want to get a good deal when purchasing goods." +msgstr "Es útil si querés obtener un buen negocio cuando comprás cosas." + +#: lang/json/BOOK_from_json.py +msgid "Advanced Economics" +msgid_plural "copies of Advanced Economics" +msgstr[0] "Economía Avanzada" +msgstr[1] "copias de Economía Avanzada" + +#. ~ Description for {'str': 'Advanced Economics', 'str_pl': 'copies of +#. Advanced Economics'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on economics." +msgstr "Un texto escolar sobre economía." + +#: lang/json/BOOK_from_json.py +msgid "Batter Up!" +msgid_plural "issues of Batter Up!" +msgstr[0] "¡Al Bate!" +msgstr[1] "fascículos de ¡Al Bate!" + +#. ~ Description for {'str': 'Batter Up!', 'str_pl': 'issues of Batter Up!'} #: lang/json/BOOK_from_json.py msgid "" -"This is a full-size glossy women's magazine. There are a few unoriginal " -"recipes and some simple cooking tips somewhere in between the fashion photos" -" and the sex advice columns." +"A baseball magazine that focuses on batting tips. There are lots of " +"colorful, full-page photos of skilled athletes demonstrating proper form and" +" technique." msgstr "" -"Es una revista brillosa para mujeres. Tiene algunas recetas poco originales " -"y simples consejos de cocina entre las fotos de moda y las columnas sobre " -"sexo." +"Es una revista sobre béisbol que se especializa en consejos para batear. " +"Está lleno de fotos de página completa a todo color de atletas demostrando " +"la técnica correcta." + +#: lang/json/BOOK_from_json.py +msgid "tactical baton defense manual" +msgid_plural "tactical baton defense manuals" +msgstr[0] "manual de defensa con bastón táctico" +msgstr[1] "manuales de defensa con bastón táctico" + +#. ~ Description for {'str': 'tactical baton defense manual'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative guide to self-defense using clubs and batons. Aimed at the " +"law enforcement and military market, it is packed with time tested, no-" +"nonsense information and written to be understandable for beginners." +msgstr "" +"Es una guía informativa para la defensa personal usando garrotes y bastones." +" Escrito para el mercado militar y policial, está lleno de información " +"comprobada y escrita para que lo pueda comprender un principiante." + +#: lang/json/BOOK_from_json.py +msgid "Advanced Physical Chemistry" +msgid_plural "copies of Advanced Physical Chemistry" +msgstr[0] "Físico-química Avanzada" +msgstr[1] "copias de Físico-química Avanzada" + +#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies +#. of Advanced Physical Chemistry'} +#: lang/json/BOOK_from_json.py +msgid "" +"A university-level textbook on advanced principles of physical chemistry and" +" all its branches: thermochemistry, electrochemistry, solid-state chemistry," +" photochemistry, quantum chemistry et cetera." +msgstr "" +"Es un libro de texto universitario sobre los proncipios básicos de la " +"fisicoquímica y todas sus ramas: termoquímica, electroquímica, química del " +"estado sólido, fotoquímica, química cuántica etcétera." #: lang/json/BOOK_from_json.py msgid "The Modern Tanner" @@ -27668,6 +27464,290 @@ msgstr "" " y fórmulas pertinentes a muchas disciplinas técnicas. Si leer sobre tablas " "de química e información de física es lo tuyo, este es el libro para vos." +#: lang/json/BOOK_from_json.py +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" +msgstr[0] "libro de texto de química" +msgstr[1] "libros de texto de química" + +#. ~ Description for {'str': 'chemistry textbook'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on chemistry." +msgstr "Es un libro escolar sobre química." + +#: lang/json/BOOK_from_json.py +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" +msgstr[0] "Guía para Entusiastas del Aceite Esencial" +msgstr[1] "copias de Guía para Entusiastas del Aceite Esencial" + +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', +#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" +msgstr "" +"Es un grueso libro de tapa dura que explica el proceso para producir aceite " +"esencial, con los esquemas del equipamiento necesario. Buena suerte, y ¡no " +"hagas estallar todo!" + +#: lang/json/BOOK_from_json.py +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" +msgstr[0] "Arte y Ciencia de las Armas Químicas" +msgstr[1] "copias de Arte y Ciencia de las Armas Químicas" + +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': +#. 'copies of Art and Science of Chemical Warfare'} +#: lang/json/BOOK_from_json.py +msgid "" +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at" +" times, though the information is top-notch." +msgstr "" +"Este texto técnico y detallado, explica el diseño, desarrollo, diseminación " +"y defensas contra varias armas químicas a lo largo de los siglos. Las " +"fotografías que el autor seleccionó lo hacen un poco difícil de leer, aunque" +" la información es de lo mejor." + +#: lang/json/BOOK_from_json.py +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" +msgstr[0] "" +"Química para Niños: Asombrosos Experimentos Científicos que Funcionan" +msgstr[1] "" +"copias de Química para Niños: Asombrosos Experimentos Científicos que " +"Funcionan" + +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments +#. that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science +#. Experiments that Really Work'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book with comprehensive and accurate step-by-step illustrated instructions" +" for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." +msgstr "" +"Es un libro con instrucciones ilustradas paso a paso, completas y precisas " +"para varios experimentos científicos para jóvenes investigadores, y " +"cualquiera que quiera indagar en el maravilloso mundo de la química." + +#: lang/json/BOOK_from_json.py +msgid "SICP" +msgid_plural "copies of SICP" +msgstr[0] "SICP" +msgstr[1] "copias de SICP" + +#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#: lang/json/BOOK_from_json.py +msgid "" +"A classic text, \"The Structure and Interpretation of Computer Programs.\" " +"Written with examples in LISP, but applicable to any language." +msgstr "" +"Un texto clásico, \"Estructura e Interpretación de los Programas de " +"Computación\". Escrito con ejemplos en LISP pero aplicable a cualquier " +"lenguaje." + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 301" +msgid_plural "copies of Computer Science 301" +msgstr[0] "Ciencias de la Computación 3" +msgstr[1] "copias de Ciencias de la Computación 3" + +#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of +#. Computer Science 301'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on computer science." +msgstr "Un texto escolar sobre las ciencias de la computación." + +#: lang/json/BOOK_from_json.py +msgid "How to Browse the Web" +msgid_plural "copies of How to Browse the Web" +msgstr[0] "Cómo Navegar por la Web" +msgstr[1] "copias de Cómo Navegar por la Web" + +#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How +#. to Browse the Web'} +#: lang/json/BOOK_from_json.py +msgid "Very beginner-level information about computers." +msgstr "Información sobre computadoras para principiantes." + +#: lang/json/BOOK_from_json.py +msgid "Computer World" +msgid_plural "issues of Computer World" +msgstr[0] "Mundo Computadora" +msgstr[1] "fascículos de Mundo Computadora" + +#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer +#. World'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative magazine all about computers, both hardware and software." +msgstr "" +"Una revista informativa acerca de las computadoras, tanto hardware como " +"software." + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 101" +msgid_plural "copies of Computer Science 101" +msgstr[0] "Ciencias de la Computación 1" +msgstr[1] "copias de Ciencias de la Computación 1" + +#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of +#. Computer Science 101'} +#: lang/json/BOOK_from_json.py +msgid "An entry-level textbook about computers." +msgstr "Un libro de texto sobre computadoras de nivel básico." + +#: lang/json/BOOK_from_json.py +msgid "Principles of Advanced Programming" +msgid_plural "copies of Principles of Advanced Programming" +msgstr[0] "Principios de Programación Avanzada" +msgstr[1] "copias de Principios de Programación Avanzada" + +#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': +#. 'copies of Principles of Advanced Programming'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy textbook dedicated to advanced-level software design, written for " +"several different programming languages." +msgstr "" +"Un libro pesado dedicado al diseño de software de nivel avanzado, escrito " +"para diferentes lenguajes de programación." + +#: lang/json/BOOK_from_json.py +msgid "The Homebrewer's Bible" +msgid_plural "copies of The Homebrewer's Bible" +msgstr[0] "La Biblia del Cervecero" +msgstr[1] "copias de La Biblia del Cervecero" + +#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of +#. The Homebrewer's Bible"} +#: lang/json/BOOK_from_json.py +msgid "" +"A book full of easy-to-follow recipes and useful advice on homebrewing, " +"malting, and fermenting. It even smells faintly of booze." +msgstr "" +"Es un libro lleno de recetas fáciles de hacer y consejos útiles sobre hacer " +"cerveza en casa, transformar en malta y la fermentación. Incluso tiene un " +"olorcito a alcohol." + +#: lang/json/BOOK_from_json.py +msgid "Cooking on a Budget" +msgid_plural "copies of Cooking on a Budget" +msgstr[0] "Cocinando con Poca Plata" +msgstr[1] "copias de Cocinando con Poca Plata" + +#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of +#. Cooking on a Budget'} +#: lang/json/BOOK_from_json.py +msgid "" +"A nice cook book that goes beyond recipes and into the chemistry of food." +msgstr "" +"Un lindo libro de cocina que va más allá de las recetas, cubre también la " +"química de la comida." + +#: lang/json/BOOK_from_json.py +msgid "To Serve Man" +msgid_plural "copies of To Serve Man" +msgstr[0] "Servir al Hombre" +msgstr[1] "copias de Servir al Hombre" + +#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve +#. Man'} +#: lang/json/BOOK_from_json.py +msgid "It's… it's a cookbook!" +msgstr "Es... ¡un libro de recetas!" + +#: lang/json/BOOK_from_json.py +msgid "Cucina Italiana" +msgid_plural "copies of Cucina Italiana" +msgstr[0] "Cucina Italiana" +msgstr[1] "copias de Cucina Italiana" + +#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina +#. Italiana'} +#: lang/json/BOOK_from_json.py +msgid "" +"This cookbook is written in Italian, but handily illustrated with step by " +"step photo instructions." +msgstr "" +"Este libro de recetas está escrito en italiano, pero convenientemente " +"ilustrado con fotografías paso por paso." + +#: lang/json/BOOK_from_json.py +msgid "Sushi Made Easy" +msgid_plural "copies of Sushi Made Easy" +msgstr[0] "Sushi con Facilidad" +msgstr[1] "copias de Sushi con Facilidad" + +#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi +#. Made Easy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A simple text for the aspiring sushi lover, this easy to read guide is " +"filled with lots of helpful illustrations for everything from basic rice " +"preparation to setting a proper Japanese table." +msgstr "" +"Es un texto simple para el amante del sushi. Esta guía fácil de leer está " +"llena con ilustraciones para todo, desde la preparación básica del arroz " +"hasta cómo poner adecuadamente la mesa a la japonesa." + +#: lang/json/BOOK_from_json.py +msgid "family cookbook" +msgid_plural "family cookbooks" +msgstr[0] "libro de recetas familiares" +msgstr[1] "libros de recetas familiares" + +#. ~ Description for {'str': 'family cookbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A big binder full of somebody's family recipes. The well-turned pages and " +"creased corners speak volumes of the culinary knowledge contained within. " +"You could probably learn a lot about cooking from studying this domestic " +"artifact." +msgstr "" +"Una gran carpeta llena de recetas de alguna familia. Las elegantes páginas y" +" esquinas arrugadas nos da una idea de la cantidad de conocimiento culinario" +" que contiene. Probablemente, puedas aprender mucho sobre cocina estudiando " +"este libro casero." + +#: lang/json/BOOK_from_json.py +msgid "Bon Appetit" +msgid_plural "issues of Bon Appetit" +msgstr[0] "Bon Appetit" +msgstr[1] "fascículos de Bon Appetit" + +#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#: lang/json/BOOK_from_json.py +msgid "" +"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +msgstr "" +"Libro con recetas apasionantes y reseñas de restaurantes. Lleno de consejos " +"útiles para cocinar." + +#: lang/json/BOOK_from_json.py +msgid "Glamopolitan" +msgid_plural "issues of Glamopolitan" +msgstr[0] "Glamopolitan" +msgstr[1] "fascículos de Glamopolitan" + +#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of +#. Glamopolitan'} +#: lang/json/BOOK_from_json.py +msgid "" +"This is a full-size glossy women's magazine. There are a few unoriginal " +"recipes and some simple cooking tips somewhere in between the fashion photos" +" and the sex advice columns." +msgstr "" +"Es una revista brillosa para mujeres. Tiene algunas recetas poco originales " +"y simples consejos de cocina entre las fotos de moda y las columnas sobre " +"sexo." + #. ~ That would translate out to The Scottish Book of Cookery, or The Scottish #. Cookbook. #: lang/json/BOOK_from_json.py @@ -27681,28 +27761,16 @@ msgstr[1] "copias de Ye Scots Beuk o Cuikery" #. 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of" +" people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." msgstr "" -"Un libro de recetas a medio traducir, de la Escocia del siglo XIII. Aunque " -"es un poco difícil de leer, porque tiene un alarmante número de " -"ilustraciones de gente apuñalando a otra mezcladas con las recetas. Nos deja" -" conocer la cultura y la moda medieval escocesa tanto como los nuevos usos " -"para la avena, el pescado y el hígado de oveja." - -#: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" -msgstr[0] "libro de texto de química" -msgstr[1] "libros de texto de química" - -#. ~ Description for {'str': 'chemistry textbook'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." -msgstr "Es un libro escolar sobre química." +"Es un libro de recetas gaélicas a medio traducir, de la Escocia del siglo " +"XVI. Aunque es un poco difícil de leer, porque tiene un alarmante número de " +"ilustraciones de gente apuñalando a otra mezcladas con diatribas acerca del " +"'Escocés Verdadero'. Brinda conocimiento de la cocina y la cultura " +"escocesas." #: lang/json/BOOK_from_json.py msgid "The Vinegar Maker's Handbook" @@ -27928,17 +27996,17 @@ msgstr "" "las cuales no encontrarás nunca más sus ingredientes." #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" -msgstr[0] "Desde el Holler y al Hogar: Guía de Destilación Hogareña" +msgstr[0] "Desde el Holler y Hacia Casa: Una guía de la destilación hogareña" msgstr[1] "copias de Desde el Holler" #. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to -#. home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " -"chapter contains a complete recipe for it's namesake." +"chapter contains a complete recipe for its namesake." msgstr "" "Es un libro que describe la historia de la destilación hogareña de licor. " "Cada capítulo tiene el nombre de la receta completa que contiene." @@ -27973,10 +28041,10 @@ msgstr[1] "copias de Guía de Bolsillo de Cocina de Supervivencia" #: lang/json/BOOK_from_json.py msgid "" "The smallest cookbook on the market, marketed exclusively to the " -"outdoorsman. Packs a surprising number of recipes for it's tiny size." +"outdoorsman. Packs a surprising number of recipes for its tiny size." msgstr "" -"El libro de cocina más pequeño del mercado, dirigido exclusivamente a los " -"amantes de la naturaleza. Contiene un sorprendente número de recetas, para " +"Es el libro de cocina más pequeño del mercado, dirigido exclusivamente a los" +" amantes de la naturaleza. Contiene un sorprendente número de recetas, para " "ser tan pequeño." #: lang/json/BOOK_from_json.py @@ -28082,6 +28150,24 @@ msgstr[1] "copias de ¡Mucha mierda!" msgid "The Kids' Guide to Acting and Stagecraft." msgstr "Es la Guía de Actuación y Arte Teatral para Niños." +#: lang/json/BOOK_from_json.py +msgid "Treasury of Legends about Western Dancing" +msgid_plural "copies of Western Dancing" +msgstr[0] "El Tesoro de las Leyendas de las Danzas Occidentales" +msgstr[1] "copias de Danzas Occidentales" + +#. ~ Description for {'str': 'Treasury of Legends about Western Dancing', +#. 'str_pl': 'copies of Western Dancing'} +#: lang/json/BOOK_from_json.py +msgid "" +"Written by Emanuel Nogueira, a constabulario and historian of Nuevo Laredo, " +"this massive book details the movements and cultural legacies of a variety " +"of North American folk dances." +msgstr "" +"Escrito por Emanuel Nogueira, constabulario e historiador de Nuevo Laredo, " +"este enorme libro detalla los movimientos y legados culturales de la " +"variedad de danzas folklóricas de Norte América." + #: lang/json/BOOK_from_json.py msgid "AAA Guide" msgid_plural "copies of AAA Guide" @@ -28165,7 +28251,7 @@ msgid "" "An amusing magazine about ham radio, with lots of diagrams and illustrations" " for making your own electronic devices." msgstr "" -"Una entretenida revista acerca de los radio-aficionados, con muchos " +"Es una entretenida revista acerca de los radio-aficionados, con muchos " "diagramas e ilustraciones para fabricar tus propios dispositivos " "electrónicos." @@ -28366,8 +28452,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "grocery bot schematics" msgid_plural "grocery bot schematics" -msgstr[0] "esquema de reposibot" -msgstr[1] "esquemas de reposibot" +msgstr[0] "esquema de almacénbot" +msgstr[1] "esquemas de almacénbot" #. ~ Description for {'str_sp': 'grocery bot schematics'} #: lang/json/BOOK_from_json.py @@ -28378,8 +28464,9 @@ msgid "" "parts." msgstr "" "Con el logo de Uncanny, estos son planos de ensamblaje, especificaciones de " -"diseño y dibujos técnicos para una reposibot. Casi no te sirve de nada, pero" -" podrías usar los planos para rearmar el robot con las partes recuperadas." +"diseño y dibujos técnicos para una almacénbot. Casi no te sirve de nada, " +"pero podrías usar los planos para rearmar el robot con las partes " +"recuperadas." #: lang/json/BOOK_from_json.py msgid "police bot schematics" @@ -28837,7 +28924,7 @@ msgid "" "A thick, hardbound book detailing countless projects for inventions that " "claim to improve all aspects of life." msgstr "" -"Un libro grueso encuadernado en cuero, con incontables proyectos para " +"Es un libro grueso encuadernado en cuero, con incontables proyectos para " "inventos que dicen mejorar todos los aspectos de la vida." #: lang/json/BOOK_from_json.py @@ -28858,26 +28945,6 @@ msgstr "" "los tiempos antiguos hasta la era moderna, centrándose en la tecnología " "utilizada para salvar vidas." -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "Arte y Ciencia de las Armas Químicas" -msgstr[1] "copias de Arte y Ciencia de las Armas Químicas" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': -#. 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at" -" times, though the information is top-notch." -msgstr "" -"Este texto técnico y detallado, explica el diseño, desarrollo, diseminación " -"y defensas contra varias armas químicas a lo largo de los siglos. Las " -"fotografías que el autor seleccionó lo hacen un poco difícil de leer, aunque" -" la información es de lo mejor." - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" @@ -29026,24 +29093,6 @@ msgstr "" "completar cierta operación de maquinarias, la respuesta está en alguna parte" " de estas páginas." -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "Guía para Entusiastas del Aceite Esencial" -msgstr[1] "copias de Guía para Entusiastas del Aceite Esencial" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', -#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "" -"Es un grueso libro de tapa dura que explica el proceso para producir aceite " -"esencial, con los esquemas del equipamiento necesario. Buena suerte, y ¡no " -"hagas estallar todo!" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -29384,6 +29433,23 @@ msgstr[1] "copias de Biodiésel: Fuente de Combustible Renovable" msgid "A large textbook for college students about biodiesel." msgstr "Es un manual para estudiantes acerca del biodiésel." +#: lang/json/BOOK_from_json.py +msgid "Hot Rod Chassis & Suspension Handbook" +msgid_plural "copies of Hot Rod Handbook" +msgstr[0] "Guía de Chasis y Suspensión para Picadas" +msgstr[1] "copias de Guía de Picadas" + +#. ~ Description for {'str': 'Hot Rod Chassis & Suspension Handbook', +#. 'str_pl': 'copies of Hot Rod Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"By learning the fundamentals of chassis building and suspension design you " +"will gain the critical knowledge needed to hot rod properly." +msgstr "" +"Al aprender los fundamentos de la construcción de chasis y y diseño de " +"suspensiones, obtendrás el conocimiento crítico necesario para poder correr " +"picadas de manera correcta." + #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" msgid_plural "copies of Mechanical Mastery" @@ -29431,17 +29497,6 @@ msgstr "" "Un libro de tapa dura muy manoseado que ilustra simples estrategias y " "técnicas de combate en espacios cerrados." -#: lang/json/BOOK_from_json.py -msgid "paperback abstract" -msgid_plural "paperback abstracts" -msgstr[0] "reseña en rústica" -msgstr[1] "reseñas en rústica" - -#. ~ Description for {'str': 'paperback abstract'} -#: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." -msgstr "Es un libro común con tapa blanda. ¿O no? Sí." - #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" msgid_plural "copies of Zombie Survival Guide" @@ -29472,23 +29527,6 @@ msgstr "" "El registro de todo un vuelo de un avión militar. No encontrás nada de " "interés." -#: lang/json/BOOK_from_json.py -msgid "children's book" -msgid_plural "children's books" -msgstr[0] "libro infantil" -msgstr[1] "libros infantiles" - -#. ~ Description for {'str': "children's book"} -#: lang/json/BOOK_from_json.py -msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the dead walked" -" and the world moved on." -msgstr "" -"Es un pequeño libro para pequeños lectores. Los personajes coloridos y las " -"dulces historias que contiene dentro pertenecen a otro tiempo diferente, " -"antes de que los muertos caminen y el mundo continuó girando." - #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" msgid_plural "Ranch Prospectus" @@ -29525,209 +29563,8 @@ msgid "" "A collection of essays by various authors from around the world, including " "works by Churchill, Mailer, Eco, and Voltaire." msgstr "" -"Una colección de ensayos de diversos autores de todo el mundo, incluyendo " -"trabajos de Churchill, Mailer, Eco y Voltaire." - -#: lang/json/BOOK_from_json.py -msgid "book of fairy tales" -msgid_plural "books of fairy tales" -msgstr[0] "libro de cuentos de hadas" -msgstr[1] "libros de cuentos de hadas" - -#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy -#. tales'} -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of folklore featuring the usual cast of fairies, " -"goblins, and trolls." -msgstr "" -"Una divertida colección de cuentos tradicionales, con la participación de " -"los protagonistas habituales como hadas, goblins y trolls." - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale is about a wolf who eats so much salted meat she becomes " -"trapped in the butcher's cellar." -msgstr "" -"Este cuentito es sobre un lobo que come mucha carne salada y termina " -"atrapado en el sótano de un carnicero." - -#: lang/json/BOOK_from_json.py -msgid "" -"In this traditional story of beastly intrigue a clever fox convinces an " -"elderly lion to kill a derogatory wolf." -msgstr "" -"En esta tradicional historia de intriga bestial, un astuto zorro convence a " -"un viejo león de matar al despectivo lobo." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is an illustrated fairy tale book about a conversation between a mouse " -"and a cat." -msgstr "" -"Es un libro ilustrado con un cuentito sobre la conversación entre un ratón y" -" un gato." - -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of stories featuring \"Goldilocks and The Three " -"Bears\" on the cover." -msgstr "" -"Es una divertida colección de historias con \"Ricitos de Oro y Los Tres " -"Osos\" en la tapa." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a well illustrated fairy tale about a war between the birds and the " -"beasts, with particulars on the wartime conduct and eventual fate of the " -"bat." -msgstr "" -"Esto es un cuentito muy bien ilustrado acerca de la guerra entre los pájaros" -" y las bestias, con detalles sobre la conducta en tiempos de guerra y el " -"eventual destino del murciélago." - -#: lang/json/BOOK_from_json.py -msgid "" -"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " -"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" -" page." -msgstr "" -"Este libro, titulado \"La venganza de la serpiente cascabel\", es una " -"colección de mitos y leyendas cheroqui. Tiene escrito a mano con lápiz " -"\"285D\" en la página con el título." - -#: lang/json/BOOK_from_json.py -msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" -msgstr "" -"Este cuentito es una versión regional de \"Jack y las habichuelas mágicas\"." - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale book is entitled \"Little Red Cap\". It details a red-" -"cloaked child's various encounters with talking wolves." -msgstr "" -"Este cuentito está titulado \"Caperucita Roja\". Detalla los diversos " -"encuentros de una niña de capa roja con lobos parlantes." - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of ghost stories warning about the dangers of stealing from the" -" dead." -msgstr "" -"Es una colección de cuentos de fantasmas advirtiendo sobre los peligros de " -"robarles pertenencias a los muertos." - -#: lang/json/BOOK_from_json.py -msgid "" -"An Irish fairy tale in which a Celtic poet marries a princess who has been " -"cursed with the head of a pig." -msgstr "" -"Es un cuentito irlandés en el cual el poeta Céltico se casa con una princesa" -" que ha sido maldecida y tiene cabeza de chancho." - -#: lang/json/BOOK_from_json.py -msgid "" -"A book of Italian fairy tales translated into English. The cover features " -"an orange fairy juggling a lemon, a lime, and a tangerine." -msgstr "" -"Es un libro de cuentitos italianos traducidos al español. La tapa tiene un " -"hada naranja haciendo malabares con un limón, una lima y una mandarina." - -#: lang/json/BOOK_from_json.py -msgid "A book of fables about people who change into birds." -msgstr "Es un libro de fábulas de personas que se transforman en pájaros." - -#: lang/json/BOOK_from_json.py -msgid "" -"This compendium of amusing folk tales about the devil is titled \"Hell's " -"Kettle: Legends of the Devil.\"" -msgstr "" -"Este compendio de cuentos folklóricos acerca del diable, se titula \"El " -"caldero del infierno: Leyendas del Diablo\"." - -#: lang/json/BOOK_from_json.py -msgid "" -"This charming book of Swedish fables is titled, \"The Glass Mountain and the" -" Princess.\"" -msgstr "" -"Este adorable libro de fábulas suecas se titula \"La Montaña de Vidrio y la " -"Princesa\"." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a collection of fairy tale stories warning against the consequences " -"of extreme greed." -msgstr "" -"Esta es una colección de cuentitos que advierten sobre las consecuencias de " -"la avaricia extrema." - -#: lang/json/BOOK_from_json.py -msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" -msgstr "" -"Este libro se titula \"La Olla de los Ladrones: Cuentos del Mundo Árabe\"." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a book of legends collected by Traveller Johnny Cassidy in the " -"1960s." -msgstr "" -"Este es un libro de leyendas recopiladas por el viajero Johnny Cassidy en la" -" década de 1960." - -#: lang/json/BOOK_from_json.py -msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" -msgstr "" -"Es un libro de los hermanos Grimm que se titula \"Los desiguales hijos de " -"Eva\"." - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of fables expands upon the legend of the Seven Sleepers of " -"Ephesus." -msgstr "" -"Este libro de fábulas profundiza la leyenda de los Siete Durmientes de " -"Éfeso." - -#: lang/json/BOOK_from_json.py -msgid "" -"In this fairy tale a strong man frightens an ogre by squeezing water out of " -"a stone." -msgstr "" -"En este cuentito, un hombre fuerte intimida a un ogro al exprimir agua de " -"una piedra." - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of rustic folk tales bears the title: \"How to Shout Down the " -"Devil.\"" -msgstr "" -"Este libro de cuentos folklóricos lleva el título: \"Cómo hacer callar al " -"Diablo\"." - -#: lang/json/BOOK_from_json.py -msgid "" -"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " -"fables about logical errors and foolish misjudgements of the Kadambawa men." -msgstr "" -"El título de este libro es \"Cuentos folklóricos de Ceilán\". Incluye " -"fábulas acerca de los errores lógicos y juicios erróneos tontos de los " -"hombres Kadambawa." - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " -"Stories.\"" -msgstr "" -"Este libro de cuentos folklóricos se titula \"La chica con el nombre feo, y " -"otras historias\"." - -#: lang/json/BOOK_from_json.py -msgid "" -"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " -"suitable for small children." -msgstr "" -"El título es \"El panqueque huidizo\", es una colección de cuentitos " -"simples, ideales para los niños más pequeños." +"Es una colección de ensayos de diversos autores de todo el mundo, incluyendo" +" trabajos de Churchill, Mailer, Eco y Voltaire." #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" @@ -29745,322 +29582,6 @@ msgstr "" "Escrito en la tapa, bien grande con letras amistosas, está escrito el " "mensaje \"Que no cunda el pánico\"." -#: lang/json/BOOK_from_json.py -msgid "Mycenacean Hymns" -msgid_plural "copies of Mycenacean Hymns" -msgstr[0] "Hymnos Myceanos" -msgstr[1] "copias de Hymnos Myceanos" - -#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of -#. Mycenacean Hymns'} -#: lang/json/BOOK_from_json.py -msgid "" -"A vellum book containing the hymns central to Marloss faith. As the verses " -"lead to each other, the text sings of unity and promised paradise." -msgstr "" -"Es un libro de vitela que contiene los himnos principales de la fe Marloss. " -"Los versos hablan de uno al otro, y el texto canta de la unida y el paraíso " -"prometido." - -#: lang/json/BOOK_from_json.py -msgid "King James Bible" -msgid_plural "copies of King James Bible" -msgstr[0] "Biblia del Rey Jacobo" -msgstr[1] "copias de Biblia del Rey Jacobo" - -#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King -#. James Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, which originated in England " -"in the early 1600s." -msgstr "" -"Una traducción al español de la Biblia Cristiana, que fue originada en " -"Inglaterra a principios del siglo XVII." - -#: lang/json/BOOK_from_json.py -msgid "Eastern Orthodox Bible" -msgid_plural "copies of Eastern Orthodox Bible" -msgstr[0] "Biblia Ortodoxa de Oriente" -msgstr[1] "copias de Biblia Ortodoxa de Oriente" - -#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of -#. Eastern Orthodox Bible'} -#: lang/json/BOOK_from_json.py -msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." -msgstr "" -"Es una copia en español de la versión Ortodoxa de Oriente de la Santa " -"Biblia." - -#: lang/json/BOOK_from_json.py -msgid "Gideon Bible" -msgid_plural "copies of Gideon Bible" -msgstr[0] "Biblia de Gedeón" -msgstr[1] "copias de Biblia de Gedeón" - -#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon -#. Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, distributed free of charge by" -" Gideons International." -msgstr "" -"Una copia en español de la Biblia Cristiana, distribuida gratuitamente por " -"los Gedeones Internacionales." - -#: lang/json/BOOK_from_json.py -msgid "The Guru Granth Sahib" -msgid_plural "copies of The Guru Granth Sahib" -msgstr[0] "El Gurú Granth Sahib" -msgstr[1] "copias de El Gurú Granth Sahib" - -#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The -#. Guru Granth Sahib'} -#: lang/json/BOOK_from_json.py -msgid "A single-volume copy of the central religious texts of Sikhism." -msgstr "" -"Es una copia de un solo volumen del texto religioso central del Sijismo." - -#: lang/json/BOOK_from_json.py -msgid "Hadith" -msgid_plural "copies of Hadith" -msgstr[0] "Hadiz" -msgstr[1] "copias de Hadiz" - -#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} -#: lang/json/BOOK_from_json.py -msgid "" -"A Muslim religious text containing an account of the sayings and actions of " -"the prophet Muhammad." -msgstr "" -"Un texto religioso musulmán, que contiene un recuento de las palabras y las " -"acciones del profeta Muhammad." - -#: lang/json/BOOK_from_json.py -msgid "Principia Discordia" -msgid_plural "copies of Principia Discordia" -msgstr[0] "Principia Discordia" -msgstr[1] "copias del Principia Discordia" - -#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of -#. Principia Discordia'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of Discordianism. It seems to " -"primarily concern chaos, and features a card in the back which informs you " -"that you are now a 'genuine and authorized Pope of Discordia'." -msgstr "" -"Un libro que personifica las creencias principales del Discordianismo. " -"Parece concernir primeramente al caos, e incluye una carta en la parte de " -"atrás que te informa que ya eres un 'genuino y autorizado Papa de la " -"Discordia'." - -#: lang/json/BOOK_from_json.py -msgid "The Kojiki" -msgid_plural "copies of The Kojiki" -msgstr[0] "Kojiki" -msgstr[1] "copias del Kojiki" - -#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} -#: lang/json/BOOK_from_json.py -msgid "" -"The oldest extant chronicle of Japan's myths and history, the stories " -"contained in the Kojiki are part of the inspiration behind Shinto practices." -msgstr "" -"Es la crónica más antigua existente de la historia y los mitos japoneses. " -"Las historias que contiene el Kojiki son parte de la inspiración detrás de " -"las prácticas del Sintoísmo." - -#: lang/json/BOOK_from_json.py -msgid "The Book of Mormon" -msgid_plural "copies of The Book of Mormon" -msgstr[0] "El libro del Mormón" -msgstr[1] "copias de El libro del Mormón" - -#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The -#. Book of Mormon'} -#: lang/json/BOOK_from_json.py -msgid "" -"The sacred text of the Latter Day Saint movement of Christianity, originally" -" published in 1830 by Joseph Smith." -msgstr "" -"El texto sagrado del Movimiento de los Santos de los Últimos Días del " -"Cristianismo, originalmente publicado en 1830 por Joseph Smith." - -#: lang/json/BOOK_from_json.py -msgid "The Gospel of the Flying Spaghetti Monster" -msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" -msgstr[0] "El Evangelio del Monstruo del Espagueti Volador" -msgstr[1] "copies de El Evangelio del Monstruo del Espagueti Volador" - -#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', -#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of the Church of the Flying Spaghetti " -"Monster. It seems to involve a lot of pirates and some sort of invisible " -"drunken monster made of pasta." -msgstr "" -"Es un libro que personifica las principales creencias de la Iglesia del " -"Monstruo del Espagueti Volador. Parece implicar muchos piratas y alguna " -"clase de monstruo borracho invisible hecho con pasta." - -#: lang/json/BOOK_from_json.py -msgid "Quran" -msgid_plural "copies of Quran" -msgstr[0] "Corán" -msgstr[1] "copias de Corán" - -#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Muslim book of holy scriptures, with " -"explanatory notes and commentaries to aid in understanding." -msgstr "" -"Un traducción al español del libro musulmán de las santas escrituras, con " -"notas explicativas y comentarios para facilitar su comprensión." - -#: lang/json/BOOK_from_json.py -msgid "Dianetics" -msgid_plural "copies of Dianetics" -msgstr[0] "Dianética" -msgstr[1] "copias de Dianética" - -#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is the canonical text of Scientology. Written by a science " -"fiction author, it contains self-improvement techniques and musings on " -"psychology called Dianetics." -msgstr "" -"Este libro es el texto canónico de la Cienciología. Escrito por un autor de " -"ciencia ficción, contiene técnicas de auto-mejoramiento y reflexiones sobre " -"psicología llamadas Diánetica." - -#: lang/json/BOOK_from_json.py -msgid "The Book of the SubGenius" -msgid_plural "copies of The Book of the SubGenius" -msgstr[0] "El Libro de los Subgenios" -msgstr[1] "copias de El Libro de los Subgenios" - -#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of -#. The Book of the SubGenius'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book about the Church of the SubGenius. It seems to involve a salesman " -"named J. R. \"Bob\" Dobbs and a concept called 'slack'." -msgstr "" -"Un libro sobre la Iglesia de los Subgenios. Parece que implica un vendedor " -"llamado J. R. \"Bob\" Dobbs y un concepto denominado 'slack'." - -#: lang/json/BOOK_from_json.py -msgid "The Sutras of the Buddha" -msgid_plural "copies of The Sutras of the Buddha" -msgstr[0] "Los Sutras de Buda" -msgstr[1] "copias de Los Sutras de Buda" - -#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of -#. The Sutras of the Buddha'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of discourses attributed to the Buddha and his close disciples." -msgstr "" -"Una colección de los discursos atribuidos a Buda y sus discípulos cercanos." - -#: lang/json/BOOK_from_json.py -msgid "Talmud" -msgid_plural "copies of Talmud" -msgstr[0] "Talmud" -msgstr[1] "copias de Talmud" - -#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of Talmud'} -#: lang/json/BOOK_from_json.py -msgid "" -"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " -"Hebrew Bible with teachings and opinions of thousands of rabbis." -msgstr "" -"Uno de los textos centrales del Judaísmo Rabínico, el Talmud explica en " -"profundidad la Biblia Hebrea con enseñanzas y opiniones de cientos de " -"rabinos." - -#: lang/json/BOOK_from_json.py -msgid "Tanakh" -msgid_plural "copies of Tanakh" -msgstr[0] "Tanaj" -msgstr[1] "copias de Tanaj" - -#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single-volume book containing the complete canon of the Jewish Bible." -msgstr "" -"Un libro de un solo volumen que contiene el canon completo de la Biblia " -"Judía." - -#: lang/json/BOOK_from_json.py -msgid "The Tripitaka" -msgid_plural "copies of The Tripitaka" -msgstr[0] "El Tripitaka" -msgstr[1] "copias de El Tripitaka" - -#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The -#. Tripitaka'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Buddhist writings describing their canons of " -"scriptures." -msgstr "" -"Una colección de textos sagrados Budistas, que describen los cánones de las " -"escrituras." - -#: lang/json/BOOK_from_json.py -msgid "The Upanishads" -msgid_plural "copies of The Upanishads" -msgstr[0] "Los Upanishad" -msgstr[1] "copias de los Upanishad" - -#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The -#. Upanishads'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Hindu writings regarding the nature of reality and " -"describing the character and form of human salvation." -msgstr "" -"Una colección de textos sagrados Hindúes, acerca de la naturaleza de la " -"realidad, y describiendo la forma y el carácter de la salvación humana." - -#: lang/json/BOOK_from_json.py -msgid "The Four Vedas" -msgid_plural "copies of The Four Vedas" -msgstr[0] "Los Cuatro Vedas" -msgstr[1] "copias de los Cuatro Vedas" - -#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four -#. Vedas'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single volume containing all four Vedas, which are the oldest scriptures " -"of Hinduism." -msgstr "" -"Un volumen que contiene los cuatro Vedas, que son las escrituras más " -"antiguas del Hinduismo." - -#: lang/json/BOOK_from_json.py -msgid "The Satanic Bible" -msgid_plural "copies of The Satanic Bible" -msgstr[0] "La Biblia Satánica" -msgstr[1] "copias de La Biblia Satánica" - -#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The -#. Satanic Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of essays, observations, and rituals published by Anton LaVey " -"in 1969." -msgstr "" -"Es una colección de ensayos, observaciones y rituales publicados por Anton " -"LaVey en 1969." - #: lang/json/BOOK_from_json.py msgid "comic book" msgid_plural "comic books" @@ -30100,6 +29621,22 @@ msgstr "" "Eventos actuales acerca de un montón de gente que ahora son cadáveres o " "zombis." +#: lang/json/BOOK_from_json.py +msgid "The Analyst" +msgid_plural "issues of The Analyst" +msgstr[0] "El Analista" +msgstr[1] "fascículos de El Analista" + +#. ~ Description for {'str': 'The Analyst', 'str_pl': 'issues of The Analyst'} +#: lang/json/BOOK_from_json.py +msgid "" +"This news magazine has been described as \"a kind of Reader's Digest for " +"America's corporate elite.\" These concerns are, of course, behind us now." +msgstr "" +"Esta revista de noticias ha sido descrita como \"una especie de Reader's " +"Digest para la elite corporativa estadounidense\". Estas preocupaciones " +"ahora están en el pasado, obviamente." + #: lang/json/BOOK_from_json.py msgid "Playboy" msgid_plural "issues of Playboy" @@ -30241,6 +29778,26 @@ msgstr "" "cómplice, y nunca le da la espalda a un amigo. Sin embargo, su dominio de " "los reinos del submundo se ve erosionado por los rumores y la paranoia." +#: lang/json/BOOK_from_json.py +msgid "Midnight Cop" +msgid_plural "copies of Midnight Cop" +msgstr[0] "Policía de Medianoche" +msgstr[1] "copias de Policía de Medianoche" + +#. ~ Description for {'str': 'Midnight Cop', 'str_pl': 'copies of Midnight +#. Cop'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this bare-knuckled potboiler, a ruthless police detective schemes to shut" +" down local crime lords by pitting them against each other. When long-" +"simmering resentments finally flare the city learns why they call it \"the " +"dead of night.\"" +msgstr "" +"En esta obra mediocre y sin tapujos, un detective de policía despiadado " +"planea terminar con los jefes criminales metiendo cizaña entre ellos. Cuando" +" los resentimientos que venían creciendo hacía mucho comienzan finalmente a " +"estallar, la ciudad comprende por qué lo llaman \"el muerto de la noche\"." + #: lang/json/BOOK_from_json.py msgid "drama novel" msgid_plural "drama novels" @@ -30329,6 +29886,75 @@ msgid "" msgstr "" "Un historia dura de detectives, llena de acción contundente e intriga." +#: lang/json/BOOK_from_json.py +msgid "Planet of the Murderous Squids that Time Forgot!" +msgid_plural "Planet of the Murderous Squids that Time Forgot!s" +msgstr[0] "¡Planeta de Calamares Asesinos que el Tiempo Olvidó!" +msgstr[1] "¡Planeta de Calamares Asesinos que el Tiempo Olvidó!" + +#. ~ Description for Planet of the Murderous Squids that Time Forgot! +#: lang/json/BOOK_from_json.py +msgid "" +"In this psychedelic adventure novel of cosmic exploration, an elderly " +"assassin discovers a planet too good to be true. Only once it is too late " +"does she discover the harrowing truth at the center of \"The Planet of the " +"Murderous Squids that Time Forgot!\"" +msgstr "" +"En esta psicodélica novela de aventura y exploración cósmica, una asesina " +"anciana descubre un planeta demasiado bueno para ser cierto. Una vez que es " +"demasiado tarde, ella descubre la horrorosa verdad en el medio de \"¡El " +"Planeta de Calamares Asesinos que el Tiempo Olvidó!\"" + +#: lang/json/BOOK_from_json.py +msgid "The Great Capes of Metropolis" +msgid_plural "The Great Capes of Metropoliss" +msgstr[0] "Las Grandes Capas de Metrópolis" +msgstr[1] "Las Grandes Capas de Metrópolis" + +#. ~ Description for The Great Capes of Metropolis +#: lang/json/BOOK_from_json.py +msgid "" +"In this classic pulp paperback of superheroic exploits, a group of masked " +"vigilantes with diverse superpowers learn to work together to defeat the " +"ultimate villain." +msgstr "" +"En esta clásica novela sensacionalista en rústica de abusos de superhéroes, " +"un grupo de vigilantes enmascarados con diversos poderes aprenden a trabajar" +" en equipo para vencer al principal villano." + +#: lang/json/BOOK_from_json.py +msgid "Yesterday's Murdered" +msgid_plural "Yesterday's Murdereds" +msgstr[0] "Asesinatos de Ayer" +msgstr[1] "Asesinatos de Ayer" + +#. ~ Description for Yesterday's Murdered +#: lang/json/BOOK_from_json.py +msgid "" +"In this fast paced pulp noir, a hard-drinking detective with nerves of steel" +" has one last shot at vengeance." +msgstr "" +"En esta novela noir sensacionalista y rápida, un detective de buen tomar con" +" los nervios de acero tiene una última oportunidad para vengarse." + +#: lang/json/BOOK_from_json.py +msgid "Flashgun Condor and the Crimson Criminal" +msgid_plural "Flashgun Condor and the Crimson Criminals" +msgstr[0] "Flashgun Condor y los Criminales Carmesí" +msgstr[1] "Flashgun Condor y los Criminales Carmesí" + +#. ~ Description for Flashgun Condor and the Crimson Criminal +#: lang/json/BOOK_from_json.py +msgid "" +"A hot-blooded photographer who fights crime with film, footage, and fists, " +"Condor is more than a mere shutterbug on the crime beat. But will she be " +"able to unravel a devious deception and bring the \"Crimson Criminal\" to " +"justice?" +msgstr "" +"Una fotógrafa de sangre caliente que lucha contra el crimen con película, " +"grabaciones y puños, Condor es más que una mera fotógrafa de policiales. " +"Pero ¿podrá descubrir el retorcido engaño de los \"Criminales Carmesí\"?" + #: lang/json/BOOK_from_json.py msgid "road novel" msgid_plural "road novels" @@ -30355,6 +29981,170 @@ msgstr[1] "novelas de romance" msgid "Drama and mild smut." msgstr "Drama y obscenidades tiernas." +#: lang/json/BOOK_from_json.py +msgid "Love and Circuses" +msgid_plural "Love and Circusess" +msgstr[0] "Amor y Circos" +msgstr[1] "Amor y Circos" + +#. ~ Description for Love and Circuses +#: lang/json/BOOK_from_json.py +msgid "" +"The passionate saga of two Boston politicians fiercely battling each other " +"for the mayor's office, and for Lydia's hand in marriage." +msgstr "" +"Es la apasionante saga de dos políticos de Boston que pelean ferozmente " +"entre ellos para llegar a la intendencia, y por casarse con Lydia." + +#: lang/json/BOOK_from_json.py +msgid "Cloven Kisses" +msgid_plural "Cloven Kissess" +msgstr[0] "Besos Hendidos" +msgstr[1] "Besos Hendidos" + +#. ~ Description for Cloven Kisses +#: lang/json/BOOK_from_json.py +msgid "" +"When the devil falls in love with a warlock, his proposal must be infernally" +" wicked. Will hooves, horns, and the scent of sulphur condemn love's flames" +" to hellfire?" +msgstr "" +"Cuando el diablo se enamora del brujo, su propuesta debe ser infernalmente " +"malvada. ¿Podrán las pezuñas, cuernos y el aroma a azufre condenar las " +"llamas del amor a los fuegos del infierno?" + +#: lang/json/BOOK_from_json.py +msgid "Conquer Me Sweetly" +msgid_plural "Conquer Me Sweetlys" +msgstr[0] "Conquistame Suavemente" +msgstr[1] "Conquistame Suavemente" + +#. ~ Description for Conquer Me Sweetly +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is delighted to offer you this romantic tale of " +"delicious dalliances and daring delights." +msgstr "" +"Sweet Providence Books está encatada de poder ofrecerte esta historia " +"romántica de coqueteos deliciosos y deleites osados." + +#: lang/json/BOOK_from_json.py +msgid "Dubliner's Debutante" +msgid_plural "Dubliner's Debutantes" +msgstr[0] "Debutante del Dublinés" +msgstr[1] "Debutante del Dublinés" + +#. ~ Description for Dubliner's Debutante +#: lang/json/BOOK_from_json.py +msgid "" +"His love songs were only for me, but I preferred the banjo over bagpipes. " +"How could I ever love a kilted yankee of foreign breeding?" +msgstr "" +"Susa canciones de amor eran solo para mí, pero preferí el banjo antes que la" +" gaita. ¿Cómo podría haber amado a un yanqui con pollera de crianza " +"extranjera?" + +#: lang/json/BOOK_from_json.py +msgid "Blood Diodes" +msgid_plural "Blood Diodess" +msgstr[0] "Diodos de Sangre" +msgstr[1] "Diodos de Sangre" + +#. ~ Description for Blood Diodes +#: lang/json/BOOK_from_json.py +msgid "" +"He is an automaton, she is a reformed vampire, can love find a way? In this" +" edgy romance by acclaimed author Kea Dekker, heartbreak is just the " +"beginning." +msgstr "" +"Él es un autómata, esa es una vampira recuperada, ¿podrá haber lugar para el" +" amor? En esta provocadora novela romántica de la aclamada autora Kea " +"Dekker, el desamor es solo el comienzo." + +#: lang/json/BOOK_from_json.py +msgid "Envying Heaven" +msgid_plural "Envying Heavens" +msgstr[0] "Paraíso Envidioso" +msgstr[1] "Paraíso Envidioso" + +#. ~ Description for Envying Heaven +#: lang/json/BOOK_from_json.py +msgid "" +"When her fiancee names a star for her Wanda begins to wonder if an " +"astronomer's wife can ever compete with the allure of the cosmos." +msgstr "" +"Cuando su prometido nombra una estrella para ella, Wanda comienza a " +"preguntarse si ser esposa de un astrónomo podrá competir con la fascinación " +"del cosmos." + +#: lang/json/BOOK_from_json.py +msgid "Tall, Dark, and Gruesome" +msgid_plural "Tall, Dark, and Gruesomes" +msgstr[0] "Alto, Morocho y Repugnante" +msgstr[1] "Alto, Morocho y Repugnante" + +#. ~ Description for Tall, Dark, and Gruesome +#: lang/json/BOOK_from_json.py +msgid "" +"Fatima's obsession with the dead threatens to consume her when she falls in " +"love with a restless ghost. In this provocative romp celebrated author Kea " +"Dekker gently lifts the thin veil separating cold bodies from warm. " +msgstr "" +"La obsesión de Fátima con los muertos la amenaza con consumirla cuando se " +"enamora de un fantasma perturbado. En esta comedia provocativa, la celebrada" +" autora Kea Dekker levanta gentilmente el velo que separa los cuerpos fríos " +"de los cálidos." + +#: lang/json/BOOK_from_json.py +msgid "Along Came a Rider" +msgid_plural "Along Came a Riders" +msgstr[0] "Y Llegó un Jinete" +msgstr[1] "Y Llegó un Jinete" + +#. ~ Description for Along Came a Rider +#: lang/json/BOOK_from_json.py +msgid "" +"When Beth's career as a pro steeplechase jockey threatens to divide her from" +" her lover, Beth has to act fast. Will she ever find a man that can keep up" +" with her racing heart?" +msgstr "" +"Cuando la carrera de Beth como jinete de carrera de obstáculos profesional " +"amenaza con separarla de su amor, Beth tiene que actuar rápido. ¿Podrá " +"alguna vez encontrar al hombre que puede estar a la altura de su cabalgante " +"corazón?" + +#: lang/json/BOOK_from_json.py +msgid "Rogue's Virtue" +msgid_plural "Rogue's Virtues" +msgstr[0] "Virtud de Granuja" +msgstr[1] "Virtud de Granuja" + +#. ~ Description for Rogue's Virtue +#: lang/json/BOOK_from_json.py +msgid "" +"Can Victoria reform the fugitive from justice who wooed her with false " +"pretenses and true passion?" +msgstr "" +"¿Podrá Victoria recuperar al fugitivo que la enamoró con falsas pretensiones" +" y verdadera pasión?" + +#: lang/json/BOOK_from_json.py +msgid "The Death of My Secret Life" +msgid_plural "The Death of My Secret Lifes" +msgstr[0] "La Muerte de mi Vida Secreta" +msgstr[1] "La Muerte de mi Vida Secreta" + +#. ~ Description for The Death of My Secret Life +#: lang/json/BOOK_from_json.py +msgid "" +"Makeda comes out to her family, but she's still got plenty of skeletons in " +"her closet. Best selling authoress Kea Dekker breaks all the rules in this " +"macabre story of love and lies." +msgstr "" +"Makeda se sincera con su familia, pero ella todavía conserva muchos muertos " +"en el placard. El libro más vendido de la autora Kea Dekker rompe todas las " +"reglas en esta macabra historia de amor y mentiras." + #: lang/json/BOOK_from_json.py msgid "samurai novel" msgid_plural "samurai novels" @@ -30387,6 +30177,88 @@ msgstr "" "Una sátira política del mundo pre-apocalíptico. Mirándola ahora desde este " "lado del Armagedón, la hace parecer mucho más ridículo." +#: lang/json/BOOK_from_json.py +msgid "The House of God" +msgid_plural "The House of Gods" +msgstr[0] "La Casa de Dios" +msgstr[1] "La Casa de Dios" + +#. ~ Description for The House of God +#: lang/json/BOOK_from_json.py +msgid "" +"Set in a lightly disguised Boston hospital of high repute, Samuel Shem’s " +"novel dives deep into the agony of absurdity." +msgstr "" +"Ambientada en un hospital de gran reputación de Boston, un poco encubierto, " +"la novela de Samuel Shem se adentra en las profundidades de la agonía de lo " +"absurdo." + +#: lang/json/BOOK_from_json.py +msgid "Catch-22" +msgid_plural "Catch-22s" +msgstr[0] "Catch-22" +msgstr[1] "Catch-22" + +#. ~ Description for Catch-22 +#: lang/json/BOOK_from_json.py +msgid "" +"There is a short informational forward in this paperback edition of " +"Catch-22. Apparently the original title for Joseph Heller’s excruciatingly " +"brilliant war satire was \"Catch-11.\"" +msgstr "" +"Hay un pequeño texto informativo en esta edición en rústica de Catch-22. " +"Aparentemente, el título original para la sátira de guerra terriblemente " +"brillante de Joseph Heller era \"Catch-11\"." + +#: lang/json/BOOK_from_json.py +msgid "The Master and Margarita" +msgid_plural "The Master and Margaritas" +msgstr[0] "Margarita y el Maestro" +msgstr[1] "Margarita y el Maestro" + +#. ~ Description for The Master and Margarita +#: lang/json/BOOK_from_json.py +msgid "" +"Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, " +"vampires, a talking cat, and the literary elite of Moscow, this is a satire " +"on Stalinist tyranny written by Mikhail Bulgakov." +msgstr "" +"Con personajes que incluyen a Satán, Poncio Pilatos, Jesucristo, vampiros, " +"un gato parlante y la elite literaria de Moscú, esto es una sátira de la " +"tiranía estalinista escrita por Mikhail Bulgakov." + +#: lang/json/BOOK_from_json.py +msgid "A Handful of Dust" +msgid_plural "A Handful of Dusts" +msgstr[0] "Un Puñado de Polvo" +msgstr[1] "Un Puñado de Polvo" + +#. ~ Description for A Handful of Dust +#: lang/json/BOOK_from_json.py +msgid "" +"Laced with cynicism, Evelyn Waugh's \"A Handful of Dust\" satirizes a " +"stratum of characters who have wealth, but lack any other credentials." +msgstr "" +"Mezclado con cinismo, \"Un Puñado de Polvo\" de Evelyn Waugh satiriza un " +"estrato de personajes que tienen riquezas pero carecen de otras " +"credenciales." + +#: lang/json/BOOK_from_json.py +msgid "Cat’s Cradle" +msgid_plural "Cat’s Cradles" +msgstr[0] "Cuna de Gato" +msgstr[1] "Cuna de Gato" + +#. ~ Description for Cat’s Cradle +#: lang/json/BOOK_from_json.py +msgid "" +"A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of " +"nuclear destruction isn't much of an influence on human nature." +msgstr "" +"Es un edición en rústica de la cuarta novela de Kurt Vonnegut, en la cual la" +" amenaza de una destrucción nuclear no es mucha influencia en la naturaleza " +"humana." + #: lang/json/BOOK_from_json.py msgid "scifi novel" msgid_plural "scifi novels" @@ -30521,7 +30393,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "" "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It " -"still has the smell of new books within it's pages." +"still has the smell of new books within its pages." msgstr "" "Esto es una copia casi nueva de \"Una mirada en la oscuridad\" de Phillip K." " Dick. Todavía conserva el olor de los libros nuevos." @@ -30780,24 +30652,6 @@ msgstr "" "Es una copia bastante gastada de \"Guía del autoestopista galáctico\" de " "Douglas Adams." -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "novela de deportes" -msgstr[1] "novelas de deportes" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "" -"La historia dramática de un boxeador aficionado que tiene una extraña " -"oportunidad de pelear contra el campeón del peso pesado, e intenta agarrar " -"esta posibilidad de tener una mejor vida mientras impresiona a una chica " -"linda que trabaja en la tienda de mascotas." - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -30868,6 +30722,57 @@ msgstr "" "irlandés esclavizado y sus compañeros esclavos, y su conversión en piratas " "heroicos al estilo de Robin Hood." +#: lang/json/BOOK_from_json.py +msgid "The Black Freighter" +msgid_plural "copies of The Black Freighter" +msgstr[0] "El Carguero Negro" +msgstr[1] "copias de El Carguero Negro" + +#. ~ Description for {'str': 'The Black Freighter', 'str_pl': 'copies of The +#. Black Freighter'} +#: lang/json/BOOK_from_json.py +msgid "" +"Who watches the watchmen? Pirate Jenny, that's who! This swashbuckling " +"adventure novel will make you feel swell." +msgstr "" +"¿Quién vigila a los vigilantes? La Pirata Jenny, ¡ella lo hace! Esta novela " +"de aventuras y peleas de espada te hará sentir formidable." + +#: lang/json/BOOK_from_json.py +msgid "Captain Gosgold and the Sea Rovers of Buzzards Bay" +msgid_plural "copies of The Sea Rovers" +msgstr[0] "Capitán Gosgold y los los Vagabundos del Mar de Buzzard Bay" +msgstr[1] "copias de Los Vagabundos del Mar" + +#. ~ Description for {'str': 'Captain Gosgold and the Sea Rovers of Buzzards +#. Bay', 'str_pl': 'copies of The Sea Rovers'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lengthy paperback novel describes the ocean exploits of Captain " +"Gosgold. The British consider him an outlaw, but in America he is a " +"patriot." +msgstr "" +"Esta extensa novela en rústica describe la explotación del océano por parte " +"de Capitán Gosgold. Los británicos lo consideran un forajido, pero en " +"Estados Unidos es un patriota." + +#: lang/json/BOOK_from_json.py +msgid "The Code of the Buccaneer" +msgid_plural "copies of The Buccaneer" +msgstr[0] "El Código del Bucanero" +msgstr[1] "copias de El Bucanero" + +#. ~ Description for {'str': 'The Code of the Buccaneer', 'str_pl': 'copies of +#. The Buccaneer'} +#: lang/json/BOOK_from_json.py +msgid "" +"The cover of this paperback pirate story shows a shirtless man and a near " +"shirtless woman. Clearly it is not a dress code." +msgstr "" +"La tapa de esta historia de piratas en rústica muestra un hombre con el " +"torso desnudo y una mujer casi desnuda. Claramente, no es un código de " +"etiqueta." + #: lang/json/BOOK_from_json.py msgid "thriller novel" msgid_plural "thriller novels" @@ -30938,350 +30843,117 @@ msgstr "" "banda de forajidos saqueadores." #: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "libro de filosofía" -msgstr[1] "libros de filosofía" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of -#. philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "" -"Una profunda discusión sobre moralidad con el énfasis en la epistemología y " -"la lógica." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." -msgstr "" -"Es una copia de \"Más allá del bien y del mal\" de Nietzsche. La tapa está " -"arrugada y tiene un punta doblada." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "" -"Es una copia de \"El único y su propiedad\" de Max Stirner. Es una " -"traducción moderna hecha por Wolfi Landstreicher." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." -msgstr "" -"Es una copia de \"El ser y la nada\" de Jean-Paul Sartre. En trabajo " -"esencial de la tradición existencialista." - -#: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "" -"Es una versión larga y extendida de \"Locura y civilización\" de Michel " -"Foucault. La tapa tiene la imagen del panóptico de una cárcel." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "" -"Es una copia de \"La condición posmoderna: informe sobre el saber\" de " -"Lyotard." - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "" -"Es una colección de textos y ensayos de Jacques Derrida. Las páginas están " -"sueltas y amarillentas - vas a tener que manejarlo con cuidado." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." -msgstr "" -"Es una copia de \"La sociedad del espectáculo\" de Guy Debord. La tapa " -"muestra una fila de adultos mirando plácidamente una pantalla." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "" -"Es una copia de \"Ética de la diferencia sexual\" y de \"Ese sexo que no es " -"uno\" en el mismo libro, de Luce Irigaray." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." -msgstr "" -"Es una copia de \"Cultura y simulacro\" de Baudrillard. La tapa tiene la " -"imagen de un hombre con una pastilla en cada mano, con la leyenda " -"\"Bienvenido al desierto de lo real\". Te parece que ya viste esta película." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." -" It looks to have been used as a coaster in a past life." -msgstr "" -"Es una pequeña versión de bolsillo de \"El existencialismo es un humanismo\"" -" de Sartre. Parece que fue utilizada como posavaso en una vida pasada." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." -msgstr "" -"Es una copia de \"Etíca práctica\" de Peter Singer. De la imprenta de la " -"universidad local." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "" -"Es una copia fotocopiada y anillada de \"La sociedad industrial y su " -"futuro\" del 'Freedom Club'. El original parece haber sido escrito en una " -"máquina de escribir antes de ser fotocopiado." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an" -" ominous looking metal tube. Provocative." -msgstr "" -"Es una copia de \"La sociedad industrial y su futuro\" de Ted Kaczynski. La " -"tapa tiene una imagen de una caja de madera hecha a mano, llena con cables y" -" un tubo de metal de aspecto amenazante. Provocativo." - -#: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "Es un pequeño texto sobre la dialéctica de Hegel." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "" -"Es una copia de \"El estado y la revolución\" de Vladimir Lenin. Está en " -"español, por suerte." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "Es una copia de \"En defensa del marxismo\" de Leon Trotsky." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" -" tag on the back cover. It appears to still be active." -msgstr "" -"Es una copia de \"Roba este libro\" de Abbie Hoffman. Tiene una etiqueta de " -"seguridad en la contratapa. Parece que todavía está activa..." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "" -"Es una copia de \"Walden: o la vida en los bosques\" de Henry David Thoreau." -" Tiene una hoja seca y planchada como marcador." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "" -"Es una copia de \"La mujer eunuco\" de Germaine Greer. Tiene garabatos de " -"algún chico en el índice, hechos con crayón rojo." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "Es una copia de \"Introducción a la metafísica\" de Bergson." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "" -"Es una copia de \"Los cuatro conceptos fundamentales del psicoanálisis\" de " -"Jacques Lacan." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "" -"Es una copia de \"El príncipe\" de Maquiavelo. Con un prólogo de Q. Skinner." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "Es una copia de \"La revolución de la vida cotidiana\" de Raoul Vaneigem." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" -" cover contains an image of a pelican." -msgstr "" -"Es una copia de bolsillo de \"Un ensayo sobre la liberación\" de Herbert " -"Marcuse. La tapa tiene una imagen de un pelícano." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "Es una copia de \"O lo uno o lo otro\" de Søren Kierkegaard." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "Es una copia de \"Alegoría de la caverna\" de Platón." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "Es una copia de \"Leviatán\" de Thomas Hobbes." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "Es una copia de \"Crítica de la razón pura\" de Immanuel Kant." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "Es una copia de \"Principios de filosofía\" de Descartes." +msgid "Atwixt a Brace of Cacti" +msgid_plural "Atwixt a Brace of Cactis" +msgstr[0] "Dentre Soportes de Cactus" +msgstr[1] "Dentre Soportes de Cactus" +#. ~ Description for Atwixt a Brace of Cacti #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " -"Science\" by Friederich Nietzsche." +"A grizzled clodhopper interviews a mess of rangehands, flummoxing longhorns " +"and tenderfoot alike in a flusteration of jawing." msgstr "" -"Es una copia de \"La genealogía de la moral\" y \"La gaya ciencia\" en el " -"mismo libro, de Friederich Nietzsche." +"Un patán canoso le hace una entrevista a un revoltijo de montañeses, " +"vaqueros despistados y principiantes de esa calaña en un sermoneo " +"conmocionante." #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." -msgstr "" -"Es una copia de \"El mito de Sísifo\", y otros ensayos de Albert Camus. La " -"tapa tiene una imagen de un hombre con el torso desnudo y una gran roca." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." -msgstr "" -"Es una copia de \"La enfermedad mortal\" de Søren Kierkegaard. Las páginas " -"están llenas de notas pegadas." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" -" title, it does not actually appear to be defending terrorism." -msgstr "" -"Es una copia de \"La defensa del terrorismo\" de Leon Trotsky. A pesar del " -"título, no parece defender al terrorismo." +msgid "Stinky Bart Puts on Starch" +msgid_plural "Stinky Bart Puts on Starchs" +msgstr[0] "Bart el Apestoso Determinado" +msgstr[1] "Bart el Apestoso Determinado" +#. ~ Description for Stinky Bart Puts on Starch #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." +"A local bandit, driven by sadistic impulses, begins offering unlicensed " +"dentistry to brave frontiersmen with few options and fewer teeth." msgstr "" -"Es una copia de \"Justicia política\" de William Godwin. Este libro grueso " -"está lleno de frases anticuadas." +"Un delincuente local, llevado por sus impulsos sádicos, comienza a ofrecer " +"servicio dental sin licencia a los valientes pioners con pocas opciones y " +"menos dientes." #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this" -" book." -msgstr "" -"Es una copia de \"La abolición del trabajo y otros ensayos\" de Bob Black. " -"Es probable que \"La abolición del trabajo\" sea el ensayo más conocido de " -"este libro." +msgid "Six Beans in the Wheel" +msgid_plural "Six Beans in the Wheels" +msgstr[0] "Seis Porotos en la Rueda" +msgstr[1] "Seis Porotos en la Rueda" +#. ~ Description for Six Beans in the Wheel #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" -" like this book has a surprisingly long track record of owners." +"The safety is off in this gun slinging tale of revenge and redemption by " +"acclaimed author El Amor." msgstr "" -"Es una copia de \"¿Qué es la propiedad?\" de Pierre-Joseph Proudhon. Parece " -"que este libro tuvo una sorprendente cantidad de dueños." +"Este cuento de pistoleros, sin el seguro puesto, es sobre venganza y " +"redención. Escrito por el aclamado autor El Amor." #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "" -"Es una copia de \"La conquista del pan\" de Peter Kropotkin. En la tapa " -"tiene una imagen de un viejo filósofo con una barba magnífica, en lugar de " -"pan." +msgid "Irons at Calico Queen Annex" +msgid_plural "Irons at Calico Queen Annexs" +msgstr[0] "Grilletes en el Anexo de Calico Queen" +msgstr[1] "Grilletes en el Anexo de Calico Queen" +#. ~ Description for Irons at Calico Queen Annex #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" -" might have been printed decades before the Cataclysm since the cover is " -"quite weathered." +"The establishment of a telegraph line into the recently named town of Calico" +" Queen threatens to bring with it the long arm of the law. A trio of " +"enterprising gunfighters hatches a plan to keep Calico Queen wild by looting" +" the supply wagons." msgstr "" -"Es una copia de \"Del inconveniente de haber nacido\" de Emil Cioran. Este " -"libro puede haber sido impreso décadas antes del Cataclismo, ya que la tapa " -"está bastante desgastada." +"La construcción de una línea de telegrafía en el pueblo recientemente " +"llamado Calico Queen, amenaza con traer también el largo brazo de la ley. Un" +" trío de pistoleros con iniciativa trama un plan para mantener salvaje a " +"Calico Queen saqueando las carretas de suministros." #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "" -"Es una copia de \"El mundo como voluntad y representación\" de Arthur " -"Schopenhauer. Contiene algunas notas y garabatos indescifrables." +msgid "Riot on the Range" +msgid_plural "Riot on the Ranges" +msgstr[0] "Revuelta en la Cordillera" +msgstr[1] "Revuelta en la Cordillera" +#. ~ Description for Riot on the Range #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" -" that the author's real name is Fereidoun M. Esfandiary." +"Best selling author El Amor paints a visceral study in red with his latest " +"western saga: Riot on the Range." msgstr "" -"Es una copia de \"Up-Wingers: un manifiesto futurista\" de FM-2030. Parece " -"que el nombre real del autor es Fereidoun M. Esfandiary." +"El libro más vendido del autor El Amor, retrata un estudio visceral con su " +"última saga western: Revuelta en la Cordillera." #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "" -"Es una copia de \"La colección Bastiat\", una gran colección de ensayos de " -"Frederic Bastiat." +msgid "Vaquero Sun" +msgid_plural "Vaquero Suns" +msgstr[0] "Sol de Cowboy" +msgstr[1] "Sol de Cowboy" +#. ~ Description for Vaquero Sun #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." +"Western author El Amor relates the story of a dispossessed young man " +"inspired by a heat stroke delusion to pursue justice against an evil land " +"baron." msgstr "" -"Es una copia de \"Anarquía, estado y utopía\" de Robert Nozick, uno de los " -"libros más influyentes en el libertarismo moderno." +"El autor de western El Amor relata la historia de un joven desposeído que " +"inspirado por una alucinación causada por un golpe de calor sale a buscar " +"justicia contra el malvado barón de esas tierras." #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "" -"Es una copia de \"Socialismo\" de Ludwig von Mises, un examen crítico del " -"socialismo." +msgid "The Vendetta Riders" +msgid_plural "The Vendetta Riderss" +msgstr[0] "Los Jinetes Vendetta" +msgstr[1] "Los Jinetes Vendetta" +#. ~ Description for The Vendetta Riders #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." +"A wild young man, fast on the draw, who thinks he has nothing to lose, falls" +" in with a group of gun runners." msgstr "" -"Es una copia de \"El ABC del comunismo\" de Nikolai Bukharin, uno de los " -"libros más influyentes del marxismo-leninismo temprano." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." -msgstr "Es una copia de \"Mentalidad anticapitalista\" de Ludwig von Mises." +"Un salvaje joven, rápido para desenfundar, que cree no tener nada que " +"perder, se une a un grupo de pistoleros." #: lang/json/BOOK_from_json.py msgid "phone book" @@ -31329,7 +31001,7 @@ msgid "" "A collection of plays by various authors from around the world, including " "scripts by Wilde, Beckett, Checkov, and Shakespeare." msgstr "" -"Una colección de obras teatrales de diversos autores de todo el mundo, " +"Es una colección de obras teatrales de diversos autores de todo el mundo, " "incluyendo obras de Wilde, Beckett, Chéjov y Shakespeare." #: lang/json/BOOK_from_json.py @@ -31355,8 +31027,11 @@ msgstr[1] "diarios de cura" #. ~ Description for {'str': "priest's diary", 'str_pl': "priests' diaries"} #: lang/json/BOOK_from_json.py -msgid "A small book filled with journal entries in Latin." -msgstr "Un librito lleno con entradas diarias en latín." +msgid "" +"A small book filled with journal entries in Latin. You can read Latin, " +"right?" +msgstr "" +"Es un librito lleno de entradas diarias en latín. ¿Podés leer latín, no?" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -31440,23 +31115,6 @@ msgstr "" "Un pequeño libro detallando las \"revelaciones\" que tuvo un prisionero en " "el corredor de la muerte." -#: lang/json/BOOK_from_json.py -msgid "Hávamál" -msgid_plural "copies of Hávamál" -msgstr[0] "Hávamál" -msgstr[1] "copias de Hávamál" - -#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of several Old Norse poems. The poems contain " -"proverbs and stories attributed to the god Odin, many transcribed from oral " -"history." -msgstr "" -"Es una traducción de algunos poemas nórdicos antiguos. Los poemas contienen " -"proverbios e historias atribuidas al dios Odón, transcriptos de la tradición" -" oral." - #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" @@ -31961,6 +31619,1120 @@ msgstr "" " solapa interior, tiene una nota escrita a mano que dice \"Para Chris, " "gracias por creer que podría lograrlo. Con los mejores deseos, Terry.\"" +#: lang/json/BOOK_from_json.py +msgid "The Economicon of Dobbs" +msgid_plural "copies of The Economicon" +msgstr[0] "El Economicón de Dobbs" +msgstr[1] "copias de El Economicón" + +#. ~ Description for {'str': 'The Economicon of Dobbs', 'str_pl': 'copies of +#. The Economicon'} +#: lang/json/BOOK_from_json.py +msgid "" +"These are the prescriptures Pile 18 Disk sg30 File 14. \"Look, small brain " +"of pink earth inside my null-grasping, and she/he receives Logos; and it lay" +" with the Wor.\"" +msgstr "" +"Estas son las preescrituras Pila 18 Disco sg30 Archivo 14. \"Observa, " +"pequeño cerebro con tierra rosa adentro, y ella/él recibe el Logos; y se " +"tumba con el Wor.\"" + +#: lang/json/BOOK_from_json.py +msgid "The Bobliographon" +msgid_plural "copies of The Bobliographon" +msgstr[0] "El Bobliografón" +msgstr[1] "copias de El Bobliografón" + +#. ~ Description for {'str': 'The Bobliographon', 'str_pl': 'copies of The +#. Bobliographon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this cheaply published paperback reads: \"These newly-" +"released SubGenius revelations will SHOCK those who think they know Bob! " +"Unpredictables are not alone and possess amazing hidden powers of their own!" +" In a world without slack, a yeti lust revival saunters about. WARNING: Do" +" not fail to pay full price for this book; JHVH-1's wrath knows some " +"bounds.\"" +msgstr "" +"La contratapa de esta publicación barata en rústica dice: \"¡Estas nuevas " +"revelaciones SubGenius conmocionarán a aquellos que creían conocer a Bob! " +"¡Los impredecibles no están solos y poseen maravillosos poderes ocultos! En " +"un mundo sin descanso, la lujuria de un yeti sale a pasear. CUIDADO: No " +"falles en pagar el precio completo por este libro; la ira de JHVH-1 conoce " +"límites\"." + +#: lang/json/BOOK_from_json.py +msgid "Glimpses of Solomon in Yellow" +msgid_plural "copies of Solomon in Yellow" +msgstr[0] "Destellos de Salomón en Amarillo" +msgstr[1] "copias de Salomón en Amarillo" + +#. ~ Description for {'str': 'Glimpses of Solomon in Yellow', 'str_pl': +#. 'copies of Solomon in Yellow'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is titled \"Glimpses of Solomon in Yellow; The Initiation " +"Rites of the Starry Wisdom Covenant, by Dr. Enoch Craven.\" It describes " +"not just the investiture of new adherents, but the history and beliefs of " +"the Church of Starry Wisdom. Someone has defaced the sparse citations " +"section by scrawling \"PUPPETS OF ROME!\" over its few pages. The book does" +" not provide any biography for Dr. Craven, let alone academic credentials." +msgstr "" +"Este libro en rústica se titula \"Destellos de Salomón en Amarillo; Los " +"Ritos de Iniciación del Pacto de Sabiduría Iluminada, por el Dr. Enoch " +"Craven\". No solamente describe la investidura de los nuevos adherentes, si " +"no también la historia y creencias de la Iglesia de la Sabiduría Iluminada. " +"Alguien ha pintado en la escasa sección de citas y puso \"¡MARIONETAS DE " +"ROMA!\" sobre sus pocas páginas. El libro no trae biografía del Dr. Craven, " +"menos aún credenciales académicas." + +#: lang/json/BOOK_from_json.py +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "libro de filosofía" +msgstr[1] "libros de filosofía" + +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of +#. philosophy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "" +"Una profunda discusión sobre moralidad con el énfasis en la epistemología y " +"la lógica." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "" +"Es una copia de \"Más allá del bien y del mal\" de Nietzsche. La tapa está " +"arrugada y tiene un punta doblada." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "" +"Es una copia de \"El único y su propiedad\" de Max Stirner. Es una " +"traducción moderna hecha por Wolfi Landstreicher." + +#: lang/json/BOOK_from_json.py +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "" +"Es una versión larga y extendida de \"Locura y civilización\" de Michel " +"Foucault. La tapa tiene la imagen del panóptico de una cárcel." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "" +"Es una copia de \"La condición posmoderna: informe sobre el saber\" de " +"Lyotard." + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "" +"Es una colección de textos y ensayos de Jacques Derrida. Las páginas están " +"sueltas y amarillentas - vas a tener que manejarlo con cuidado." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "" +"Es una copia de \"La sociedad del espectáculo\" de Guy Debord. La tapa " +"muestra una fila de adultos mirando plácidamente una pantalla." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "" +"Es una copia de \"Ética de la diferencia sexual\" y de \"Ese sexo que no es " +"uno\" en el mismo libro, de Luce Irigaray." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." +msgstr "" +"Es una copia de \"Cultura y simulacro\" de Baudrillard. La tapa tiene la " +"imagen de un hombre con una pastilla en cada mano, con la leyenda " +"\"Bienvenido al desierto de lo real\". Te parece que ya viste esta película." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." +" It looks to have been used as a coaster in a past life." +msgstr "" +"Es una pequeña versión de bolsillo de \"El existencialismo es un humanismo\"" +" de Sartre. Parece que fue utilizada como posavaso en una vida pasada." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "" +"Es una copia de \"Etíca práctica\" de Peter Singer. De la imprenta de la " +"universidad local." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "" +"Es una copia fotocopiada y anillada de \"La sociedad industrial y su " +"futuro\" del 'Freedom Club'. El original parece haber sido escrito en una " +"máquina de escribir antes de ser fotocopiado." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an" +" ominous looking metal tube. Provocative." +msgstr "" +"Es una copia de \"La sociedad industrial y su futuro\" de Ted Kaczynski. La " +"tapa tiene una imagen de una caja de madera hecha a mano, llena con cables y" +" un tubo de metal de aspecto amenazante. Provocativo." + +#: lang/json/BOOK_from_json.py +msgid "This is a small reader on Hegel's Dialectics." +msgstr "Es un pequeño texto sobre la dialéctica de Hegel." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "" +"Es una copia de \"El estado y la revolución\" de Vladimir Lenin. Está en " +"español, por suerte." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "Es una copia de \"En defensa del marxismo\" de Leon Trotsky." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" +" tag on the back cover. It appears to still be active." +msgstr "" +"Es una copia de \"Roba este libro\" de Abbie Hoffman. Tiene una etiqueta de " +"seguridad en la contratapa. Parece que todavía está activa..." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "" +"Es una copia de \"Walden: o la vida en los bosques\" de Henry David Thoreau." +" Tiene una hoja seca y planchada como marcador." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "" +"Es una copia de \"La mujer eunuco\" de Germaine Greer. Tiene garabatos de " +"algún chico en el índice, hechos con crayón rojo." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "Es una copia de \"Introducción a la metafísica\" de Bergson." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "" +"Es una copia de \"Los cuatro conceptos fundamentales del psicoanálisis\" de " +"Jacques Lacan." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "" +"Es una copia de \"El príncipe\" de Maquiavelo. Con un prólogo de Q. Skinner." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "Es una copia de \"La revolución de la vida cotidiana\" de Raoul Vaneigem." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" +" cover contains an image of a pelican." +msgstr "" +"Es una copia de bolsillo de \"Un ensayo sobre la liberación\" de Herbert " +"Marcuse. La tapa tiene una imagen de un pelícano." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "Es una copia de \"O lo uno o lo otro\" de Søren Kierkegaard." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "Es una copia de \"Alegoría de la caverna\" de Platón." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "Es una copia de \"Leviatán\" de Thomas Hobbes." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "Es una copia de \"Crítica de la razón pura\" de Immanuel Kant." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "Es una copia de \"Principios de filosofía\" de Descartes." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " +"Science\" by Friederich Nietzsche." +msgstr "" +"Es una copia de \"La genealogía de la moral\" y \"La gaya ciencia\" en el " +"mismo libro, de Friederich Nietzsche." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "" +"Es una copia de \"El mito de Sísifo\", y otros ensayos de Albert Camus. La " +"tapa tiene una imagen de un hombre con el torso desnudo y una gran roca." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "" +"Es una copia de \"La enfermedad mortal\" de Søren Kierkegaard. Las páginas " +"están llenas de notas pegadas." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" +" title, it does not actually appear to be defending terrorism." +msgstr "" +"Es una copia de \"La defensa del terrorismo\" de Leon Trotsky. A pesar del " +"título, no parece defender al terrorismo." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "" +"Es una copia de \"Justicia política\" de William Godwin. Este libro grueso " +"está lleno de frases anticuadas." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this" +" book." +msgstr "" +"Es una copia de \"La abolición del trabajo y otros ensayos\" de Bob Black. " +"Es probable que \"La abolición del trabajo\" sea el ensayo más conocido de " +"este libro." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" +" like this book has a surprisingly long track record of owners." +msgstr "" +"Es una copia de \"¿Qué es la propiedad?\" de Pierre-Joseph Proudhon. Parece " +"que este libro tuvo una sorprendente cantidad de dueños." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "" +"Es una copia de \"La conquista del pan\" de Peter Kropotkin. En la tapa " +"tiene una imagen de un viejo filósofo con una barba magnífica, en lugar de " +"pan." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" +" might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "" +"Es una copia de \"Del inconveniente de haber nacido\" de Emil Cioran. Este " +"libro puede haber sido impreso décadas antes del Cataclismo, ya que la tapa " +"está bastante desgastada." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "" +"Es una copia de \"El mundo como voluntad y representación\" de Arthur " +"Schopenhauer. Contiene algunas notas y garabatos indescifrables." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" +" that the author's real name is Fereidoun M. Esfandiary." +msgstr "" +"Es una copia de \"Up-Wingers: un manifiesto futurista\" de FM-2030. Parece " +"que el nombre real del autor es Fereidoun M. Esfandiary." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "" +"Es una copia de \"La colección Bastiat\", una gran colección de ensayos de " +"Frederic Bastiat." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "" +"Es una copia de \"Anarquía, estado y utopía\" de Robert Nozick, uno de los " +"libros más influyentes en el libertarismo moderno." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "" +"Es una copia de \"Socialismo\" de Ludwig von Mises, un examen crítico del " +"socialismo." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "" +"Es una copia de \"El ABC del comunismo\" de Nikolai Bukharin, uno de los " +"libros más influyentes del marxismo-leninismo temprano." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "Es una copia de \"Mentalidad anticapitalista\" de Ludwig von Mises." + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "Lógica Modal como Metafísica" +msgstr[1] "copias de Lógica Modal" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies +#. of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "" +"Es un tratado sobre aplicar herramientas lógicas a las preguntas acerca de " +"la naturaleza de la realidad. Este libro contiene una discusión detallada " +"sobre problemas metafísicos." + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "Estéticas: Una Antología Crítica" +msgstr[1] "copias de Estéticas" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': +#. 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works," +" and critical analyses on the subject of beauty." +msgstr "" +"Esta antología de tapa dura presenta una colección de lecturas, trabajos " +"académicos y análisis críticos sobre la belleza." + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "Filosofía de la Información" +msgstr[1] "copias de Filosofía de la Información" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': +#. 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe" +" and advance semantic investigations." +msgstr "" +"Este texto universitario detalla la investigación crítica de la naturaleza " +"conceptual y los principios básicos de la información. El estudiante ganará " +"una apreciación rigurosa de las estructuras conceptuales comúnmente usadas " +"para describir y para las investigaciones semánticas." + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "El Ser y La Nada" +msgstr[1] "copias de El Ser y La Nada" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of +#. Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A" +" key work in the existentialist tradition." +msgstr "" +"Es una copia de tapa blanda de \"El ser y la nada\" de Jean-Paul Sartre. En " +"trabajo esencial de la tradición existencialista." + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "novela de deportes" +msgstr[1] "novelas de deportes" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "" +"La historia dramática de un boxeador aficionado que tiene una extraña " +"oportunidad de pelear contra el campeón del peso pesado, e intenta agarrar " +"esta posibilidad de tener una mejor vida mientras impresiona a una chica " +"linda que trabaja en la tienda de mascotas." + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "El Arte de los Banderines" +msgstr[1] "copias de El Arte de los Banderines" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The +#. Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating," +" it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" +"Cuando estés esperando instrucciones para decoraciones de fiestas, en " +"realidad es una novela sobre béisbol. En el climático último partido, una " +"joven estrella se prueba a sí mismo que está listo para las grandes ligas." + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "El Especial de Touchdown" +msgstr[1] "copias de El Especial de Touchdown" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The +#. Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "" +"En esta atrapante novela sobre la hinchada de fútbol americano, un hombre " +"que trabaja como delivery de pizza hace un apuesta desesperada en un partido" +" de lunes por la noche." + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "Trofeo Envidia" +msgstr[1] "copias de Trofeo Envidia" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "" +"Este libro en rústica cuenta la historia de una prodigia del tenis que " +"comienza a arrepentirse de su propio éxito." + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "Semi-Áspero" +msgstr[1] "copias de Semi-Áspero" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "" +"Esta novela sigue las divertidas aventuras de un atleta profesional que se " +"convierte en periodista amateur." + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "El Omnívoro del Golf" +msgstr[1] "copias de El Omnívoro del Golf" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The +#. Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "" +"Este libro de tapa dura es una colección de cuentos cortos en los que el " +"amor y el golf son las únicas constantes." + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "Chico Uniforme" +msgstr[1] "copias de Chico Uniforme" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "" +"Este libro de tapa dura es sobre el utilero de un equipo de ligas menores, " +"explora temas de lealtad y resentimiento." + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "Budgetball: Ganando un Juego Arreglado" +msgstr[1] "copias de Budgetball" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': +#. 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "" +"\"Budgetball\" narra la historia verdadera del curioso caso de Benny Bobbin " +"y su quijotesca misión de vencer a los millonarios de Orlando O." + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "Los Pibes del Verano" +msgstr[1] "copias de Los Pibes del Verano" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The +#. Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "" +"Este libro en rústica bastante gastado detalla la temprana carrera en el " +"béisbol de uno de los mejores equipos que el deporte profesional haya " +"conocido." + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "Vóley: Preparate para Prepararte" +msgstr[1] "copias de Vóley" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': +#. 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up" +" your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "" +"\"Vóley: Preparate para Prepararte\" es TU guía ilustrada sobre cómo mejorar" +" en ese deporte. Con fotos a color y diagramas, aprenderás los ejercicios y " +"técnicas que necesitás para dominar la competición." + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "William G. Morgan, El Padrino del Vóley" +msgstr[1] "copias de El Padrino del Vóley" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', +#. 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" +"Este extraño pequeño libro en tapa dura tiene solamente 98 páginas, y una " +"docena de esas son fotos en blanco y negro. Si leés este libro, vas a " +"aprender por qué el voley era llamada originalmente \"Mintonette\" y también" +" algunos detalles biográficos de su inventor." + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "Paseos Legendarios en Bicicleta" +msgstr[1] "copias de Paseos en Bicicleta" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike +#. Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" +"Este incómodo libro de lujo ilustrado es titulado \"LEGENDARIOS Paseos en " +"Bicicleta Alrededor del MUNDO\". Contiene una numerosa cantidad de detalle " +"acerca de las sendas para bicicletas en todas partes del planeta excepto New" +" England. Pero si querés ir a la Patagonia en bicicleta, viene perfecto." + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "Natare Ergo Sum" +msgstr[1] "copias de Natare Ergo Sum" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare +#. Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" +"El título mal traducido se supone que es el equivalente latino de \"Nado, " +"Luego Existo\". Este breve libro de tapa dura presenta \"Una Filosofía de la" +" Natación\" y aplica alegremente una variedad de famosas expresiones " +"filosófica al deporte de la natación. No es un libro malo, un poco extraño " +"nomás." + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "Estratófera: El Ascenso de los Aros" +msgstr[1] "copias de Estratófera" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': +#. 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "" +"\"Estratófera: El Ascenso de los Aros\" es la crónica de cuatro décadas de " +"básquet profesional contextualizado en un trasfondo de cambio social " +"constante." + +#: lang/json/BOOK_from_json.py +msgid "Anything Can Be Beautiful" +msgid_plural "Anything Can Be Beautifuls" +msgstr[0] "Cualquier Cosa Puede Ser Hermosa" +msgstr[1] "Cualquier Cosa Puede Ser Hermosa" + +#. ~ Description for Anything Can Be Beautiful +#: lang/json/BOOK_from_json.py +msgid "" +"Stylist, designer, and glitter goddess, Tiffynie Blust looks at the world " +"one mantra in mind: anything can be beautiful." +msgstr "" +"Tiffynie Blust, estilista, diseñadora y diosa del glitter, mira al mundo con" +" un mantra en la cabeza: cualquier cosa puede ser hermosa." + +#: lang/json/BOOK_from_json.py +msgid "The Greatest Rooms of the Century" +msgid_plural "The Greatest Rooms of the Centurys" +msgstr[0] "Las Mejores Habitaciones del Siglo" +msgstr[1] "Las Mejores Habitaciones del Siglo" + +#. ~ Description for The Greatest Rooms of the Century +#: lang/json/BOOK_from_json.py +msgid "" +"A stunning collection of the best living spaces created and commissioned by " +"the most influential people in interior design." +msgstr "" +"Es una colección impresionante de los mejores espacios para vivir creados y " +"encargados por la persona más influyente del diseño interior." + +#: lang/json/BOOK_from_json.py +msgid "The Hands-On Home" +msgid_plural "The Hands-On Homes" +msgstr[0] "Hands-On Home" +msgstr[1] "Hands-On Home" + +#. ~ Description for The Hands-On Home +#: lang/json/BOOK_from_json.py +msgid "" +"An ecologically-minded take on modern homemaking, this is a practical guide " +"to maximising your time in the kitchen and beyond." +msgstr "" +"Es una visión ecológica sobre la construcción de hogares modernos, una guía " +"práctica para maximizar tu tiempo en la cocina y más allá." + +#: lang/json/BOOK_from_json.py +msgid "Rooms We Love" +msgid_plural "Rooms We Loves" +msgstr[0] "Habitaciones que Amamos" +msgstr[1] "Habitaciones que Amamos" + +#. ~ Description for Rooms We Love +#: lang/json/BOOK_from_json.py +msgid "" +"This is a guide on how to affordably decorate rooms to suit your " +"personality. In the book, we visit rooms inspired by the needs of each " +"homeowner and will see how they transformed their rooms." +msgstr "" +"Es una guía sobre cómo decorar habitaciones de modo accesible para que se " +"ajusten a tu personalidad. En el libro, visitamos habitaciones inspiradas en" +" las necesidades de cada dueño de hogar, y veremos cómo se transforman sus " +"habitaciones." + +#: lang/json/BOOK_from_json.py +msgid "New York Parties" +msgid_plural "New York Partiess" +msgstr[0] "Fiestas de New York" +msgstr[1] "Fiestas de New York" + +#. ~ Description for New York Parties +#: lang/json/BOOK_from_json.py +msgid "" +"Visit the homes of savvy tastemakers from the worlds of fashion, finance, " +"and design, with this book of lavish photography." +msgstr "" +"Visitá las casas de aquellos que marcan tendencia en el mundo de la moda, " +"finanza y diseño, con este libro de lujosas fotografías." + +#: lang/json/BOOK_from_json.py +msgid "Best Signature Outdoor Kitchens" +msgid_plural "Best Signature Outdoor Kitchenss" +msgstr[0] "Las Mejores Cocinas Externas de Marca" +msgstr[1] "Las Mejores Cocinas Externas de Marca" + +#. ~ Description for Best Signature Outdoor Kitchens +#: lang/json/BOOK_from_json.py +msgid "" +"Outdoor space is one of the hottest amenities being considered by new and " +"existing homeowners. This book will show you how to turn any deck, patio, " +"or other outside area into a great place to cook." +msgstr "" +"El espacio exterior es una de las instalaciones más de moda, consideradas " +"por los dueños de hogares nuevos y existentes. Este libro te mostrará cómo " +"transformar una plataforma, un patio, o cualquier área externa en un " +"excelente lugar para cocinar." + +#: lang/json/BOOK_from_json.py +msgid "The Art of Using Plants to Transform Your Home" +msgid_plural "The Art of Using Plants to Transform Your Homes" +msgstr[0] "El Arte de Usar Plantas para Transformar el Hogar" +msgstr[1] "El Arte de Usar Plantas para Transformar el Hogar" + +#. ~ Description for The Art of Using Plants to Transform Your Home +#: lang/json/BOOK_from_json.py +msgid "" +"Bring gorgeous greenery into your life with this delightful guide to " +"decorating your living space with a wide variety of plants. Illustrated " +"examples enable you to easily transform every corner of your interior space." +msgstr "" +"Introducí hermosos verdes en tu vida con esta deliciosa guía sobre " +"decoración con una gran variedad de plantas. Ejemplos ilustrados te permiten" +" transformar fácilmente cada rincón de tu espacio interior." + +#: lang/json/BOOK_from_json.py +msgid "Woman of Color" +msgid_plural "Woman of Colors" +msgstr[0] "Mujer de Color" +msgstr[1] "Mujer de Color" + +#. ~ Description for Woman of Color +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of essays and advice on style, beauty, and motherhood." +" Part memoir, part lifestyle guide, this book reflects the author's " +"experience growing up as a woman of color in Brooklyn." +msgstr "" +"Esto es una colección de ensayos y consejos sobre estilo, belleza y " +"maternidad. Parte memorias, parte guía de estilo de vida, este libro refleja" +" la experiencia de la autora mientras crecía como una mujer de color en " +"Brooklyn." + +#: lang/json/BOOK_from_json.py +msgid "10 Cool Things About Being A Ring Bearer" +msgid_plural "10 Cool Things About Being A Ring Bearers" +msgstr[0] "10 Cosas Copadas de los Portadores de Anillo" +msgstr[1] "10 Cosas Copadas de los Portadores de Anillo" + +#. ~ Description for 10 Cool Things About Being A Ring Bearer +#: lang/json/BOOK_from_json.py +msgid "" +"This book is for the delightful little ring bearer in your wedding. The " +"author depicts the responsibility and the honor in being a ring bearer your " +"little angel will cherish." +msgstr "" +"Este libro es para los encantadores y pequeños portadores de anillos en tu " +"casamiento. El autor describe la responsabilidad y el honor de ser un " +"portador de anillo que tu pequeño ángel valorará." + +#: lang/json/BOOK_from_json.py +msgid "How to Raise a Gentleman: A Civilized Guide to Parenting" +msgid_plural "How to Raise a Gentleman: A Civilized Guide to Parentings" +msgstr[0] "Como Criar un Caballero: Guía Civilizada de Paternidad" +msgstr[1] "Como Criar un Caballero: Guía Civilizada de Paternidad" + +#. ~ Description for How to Raise a Gentleman: A Civilized Guide to Parenting +#: lang/json/BOOK_from_json.py +msgid "" +"A revised edition for parents who hope their little boy children will grow " +"up to be the kind of men who know which fork to use, how to treat others, " +"and generally make their parents proud." +msgstr "" +"Es una edición revisada para padres que esperan que su pequeño niño pueda " +"llegar a ser la clase de hombre que sabe qué tenedor usar, cómo tratar a los" +" demás, y hacer orgullosos a sus padres." + +#: lang/json/BOOK_from_json.py +msgid "" +"International Approaches to Securing Radioactive Sources Against Terrorism" +msgid_plural "" +"International Approaches to Securing Radioactive Sources Against Terrorisms" +msgstr[0] "" +"Acercamientos Internacionales sobre Asegurar Fuentes de Radiación contra " +"Terrorismo" +msgstr[1] "" +"Acercamientos Internacionales sobre Asegurar Fuentes de Radiación contra " +"Terrorismo" + +#. ~ Description for International Approaches to Securing Radioactive Sources +#. Against Terrorism +#: lang/json/BOOK_from_json.py +msgid "" +"This book presents how to enhance cooperation and assistance between " +"countries in support of International Atomic Energy Agency efforts to secure" +" radioactive sources against the threat of terrorism." +msgstr "" +"Este libro presenta cómo mejorar la cooperación y asistencia entre países en" +" apoyo a la Agencia Internacional de Energía Atómica en sus esfuerzos para " +"asegurar fuentes de radiación contra la amenaza del terrorismo." + +#: lang/json/BOOK_from_json.py +msgid "Principles of Forensic Psychiatry" +msgid_plural "Principles of Forensic Psychiatrys" +msgstr[0] "Principios de Psiquiatría Forense" +msgstr[1] "Principios de Psiquiatría Forense" + +#. ~ Description for Principles of Forensic Psychiatry +#: lang/json/BOOK_from_json.py +msgid "" +"This text addresses standards in the assessment and treatment of aggression " +"and violence as well as psychological and neuroimaging assessments." +msgstr "" +"Este texto aborda los estándares en la evaluación y tratamiento de la " +"agresión y la violencia, y también en la evaluación psicológica y la " +"neuroimagen." + +#: lang/json/BOOK_from_json.py +msgid "The Guide to Reflective Conflict Resolution" +msgid_plural "The Guide to Reflective Conflict Resolutions" +msgstr[0] "La Guía para la Resolución Reflexiva de Conflictos" +msgstr[1] "La Guía para la Resolución Reflexiva de Conflictos" + +#. ~ Description for The Guide to Reflective Conflict Resolution +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this hardbound book reads: \"Why should professionals care" +" about reflective practice? How do its principles and methods increase " +"competence? What characteristics distinguish reflective practitioners?\"" +msgstr "" +"La contratapa de este libro de tapa dura dice: \"'¿Por qué los profesionales" +" deben preocuparse por la práctica reflexiva? ¿Cómo incrementan la " +"competencia estos principios y métodos? ¿Qué características distinguen a " +"los practicantes reflexivos?\"" + +#: lang/json/BOOK_from_json.py +msgid "The Oxbridge Handbook of Mood Ailments" +msgid_plural "The Oxbridge Handbook of Mood Ailmentss" +msgstr[0] "La Guía Oxbridge sobre Cambios de Humor" +msgstr[1] "La Guía Oxbridge sobre Cambios de Humor" + +#. ~ Description for The Oxbridge Handbook of Mood Ailments +#: lang/json/BOOK_from_json.py +msgid "" +"The Oxbridge Handbook of Mood Ailments provides detailed coverage of the " +"characterization, understanding, and treatment of affective disorders. It " +"provides coverage of unipolar depression, bipolar disorder, and known " +"variants of these illnesses." +msgstr "" +"La Guía Oxbridge sobre Cambios de Humor brinda una cobertura detallado sobre" +" la caracterización, comprensión y tratamiento de los desórdenes afectivos. " +"Brinda cobertura sobre la depresión unipolar, el desorden bipolar y " +"variantes conocidas de estas enfermedades." + +#: lang/json/BOOK_from_json.py +msgid "Phonological Acquisition and Disorders" +msgid_plural "Phonological Acquisition and Disorderss" +msgstr[0] "Adquisición y Desorden Fonológico" +msgstr[1] "Adquisición y Desorden Fonológico" + +#. ~ Description for Phonological Acquisition and Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"Studying the phonologies of children with non-organic speech disorders, this" +" volume details the latest findings in optimality theory, phonological " +"acquisition and disorders. It is intended for linguists and psychologists." +msgstr "" +"Estudiando la fonología de los niños con desórdenes del habla no orgánicos, " +"este volumen detalla los últimos descubrimientos en la teoría de la " +"optimidad, adquisición y desórdenes fonológicos. Está dirigida a lingüistas " +"y psicólogos." + +#: lang/json/BOOK_from_json.py +msgid "Therapeutic Gardens and Healing Spaces" +msgid_plural "Therapeutic Gardens and Healing Spacess" +msgstr[0] "Jardines Terapéuticos y Espacios Sanadores" +msgstr[1] "Jardines Terapéuticos y Espacios Sanadores" + +#. ~ Description for Therapeutic Gardens and Healing Spaces +#: lang/json/BOOK_from_json.py +msgid "" +"This book addresses how to design therapeutic gardens. It illustrates a " +"variety of landscape designs appropriate for public spaces that promote " +"mental health." +msgstr "" +"Este libro aborda el diseño de los jardines terapéuticos. Ilustra una " +"variedad de diseños de paisajes apropiados para espacios públicos que " +"promueven la salud mental." + +#: lang/json/BOOK_from_json.py +msgid "Advances in Drug Delivery Systems" +msgid_plural "Advances in Drug Delivery Systemss" +msgstr[0] "Avances en los Sistemas de Suministro de Droga" +msgstr[1] "Avances en los Sistemas de Suministro de Droga" + +#. ~ Description for Advances in Drug Delivery Systems +#: lang/json/BOOK_from_json.py +msgid "" +"This softcover reprint covers an array of topics in pharmacology. The " +"physicochemical concepts of the refinement of bioresponsive drug delivery " +"are presented in detail alongside a variety of current approaches employed " +"in the development of zero order release systems." +msgstr "" +"Esta reedición en tapa blanda cubre una selección de tópicos sobre " +"farmacología. Los conceptos fisicoquímicos del refinamiento del suministro " +"biosensible de droga son presentados en detalle al igual que una variedad de" +" acercamientos actuales empleados en el desarrollo de sistemas de liberación" +" de orden cero." + +#: lang/json/BOOK_from_json.py +msgid "Using Art to Treat Eating Disorders" +msgid_plural "Using Art to Treat Eating Disorderss" +msgstr[0] "Usando el Arte para Tratar Desórdenes Alimenticios" +msgstr[1] "Usando el Arte para Tratar Desórdenes Alimenticios" + +#. ~ Description for Using Art to Treat Eating Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"This is an introductory guide for those wanting to explore the use of art to" +" address eating disorders. Art therapy is a particularly effective " +"therapeutic intervention, as it allows people to express uncomfortable " +"thoughts and feelings nonverbally." +msgstr "" +"Es una guía introductoria para aquellos que quieren explorar el uso del arte" +" para atender desórdenes alimenticios. La terapia con arte es " +"particularmente efectiva como intervención terapéutica, porque permite " +"expresar pensamientos y sentimientos molestos de manera no verbal." + +#: lang/json/BOOK_from_json.py +msgid "A Clinical Guide to Video Gamers" +msgid_plural "A Clinical Guide to Video Gamerss" +msgstr[0] "Guía Clínica para Videojugadores" +msgstr[1] "Guía Clínica para Videojugadores" + +#. ~ Description for A Clinical Guide to Video Gamers +#: lang/json/BOOK_from_json.py +msgid "" +"This scholarly work considers the role that games play in psychological " +"experiences and mental health. Chapters examine the factors that compel " +"individual gamers to select and identify with particular games and " +"characters, as well as the different play styles, genres, and archetypes " +"common in video games." +msgstr "" +"Este trabajo académico considera el rol de los juegos tienen en las " +"experiencia psicológicas y en la salud mental. Los capítulos examinan los " +"factores que llevan a los jugadores individuales a seleccionar e " +"identificarse con juegos y personajes en particular, y también los " +"diferentes estilos de juego, géneros y arquetipos comunes en los " +"videojuegos." + +#: lang/json/BOOK_from_json.py +msgid "Paranoia and the History of Madness" +msgid_plural "Paranoia and the History of Madnesss" +msgstr[0] "Paranoia e Historia de la Locura" +msgstr[1] "Paranoia e Historia de la Locura" + +#. ~ Description for Paranoia and the History of Madness +#: lang/json/BOOK_from_json.py +msgid "" +"This book is an analysis of the use and misuse of paranoia throughout " +"history and in contemporary society. The impact of paranoia on societies is" +" explored in detail." +msgstr "" +"Este libro es un análisis de los usos y mal usos de la paranoia a través de " +"la historia y en la sociedad contemporánea. Se explora en detalle el impacto" +" de la paranoia en las sociedades." + +#: lang/json/BOOK_from_json.py +msgid "Psychoanalysis and Colonialism" +msgid_plural "Psychoanalysis and Colonialisms" +msgstr[0] "Psicoanálisis y Colonialismo" +msgstr[1] "Psicoanálisis y Colonialismo" + +#. ~ Description for Psychoanalysis and Colonialism +#: lang/json/BOOK_from_json.py +msgid "" +"Freud referred to women's sexuality as a \"dark continent\" for " +"psychoanalysis, drawing on colonial use of the same phrase to refer to " +"Africa. This book details how the problematic universalism of " +"psychoanalysis led theorists to reject its relevance for postcolonial " +"critique." +msgstr "" +"Freud se refería a la sexualidad de la mujer como el \"continente oscuro\" " +"del psicoanálisis, inspirándose en el uso colonial de la misma frase para " +"referirse a África. Este libro detalla cómo el problemático universalismo " +"del psicoanálisis llevó a los teóricos a rechazar su relevancia en la " +"crítica postcolonial." + +#: lang/json/BOOK_from_json.py +msgid "The Psychology of Stalking" +msgid_plural "The Psychology of Stalkings" +msgstr[0] "La Psicología del Acoso" +msgstr[1] "La Psicología del Acoso" + +#. ~ Description for The Psychology of Stalking +#: lang/json/BOOK_from_json.py +msgid "" +"This book explores stalking from social, psychiatric, psychological and " +"behavioral perspectives. Topics include psychiatric diagnoses, offender-" +"victim typologies, cyberstalking, false victimization syndrome, erotomania, " +"domestic violence, the stalking of public figures, and many other aspects of" +" stalking." +msgstr "" +"Este libro explora el acoso desde una perspectiva social, psiquiátrica, " +"psicológica y conductual. Los tópicos incluyen diagnosis psiquiátrica, " +"tipologías agresor-víctima, ciberacoso o stalking, síndrome de falsa " +"victimización, erotomanía, violencia doméstica, el acoso de figuras " +"públicas, y muchos otros aspectos del acoso." + #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" msgid_plural "issues of Tactical Handgun Digest" @@ -32148,6 +32920,370 @@ msgstr "" "legendarias. Está lleno de información, pero encontrar las cosas que " "necesitás puede ser complicado." +#: lang/json/BOOK_from_json.py +msgid "Nail Your Law Firm Interview" +msgid_plural "copies of Nail Your Law Firm Interview" +msgstr[0] "Salí Bien de tu Entrevista en el Estudio Jurídico" +msgstr[1] "copias de Salí Bien de tu Entrevista en el Estudio Jurídico" + +#. ~ Description for {'str': 'Nail Your Law Firm Interview', 'str_pl': 'copies +#. of Nail Your Law Firm Interview'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lightweight book proclaims itself to be \"the ONLY gold star interview " +"guide for lawyers interviewing in any type of a job interview.\" It was " +"suppsed to help new lawyers find work." +msgstr "" +"Este livianito libro se proclama a sí mismo como \"la ÚNICA guía de estrella" +" dorada sobre entrevistas para abogados que tiene que ir a entrevistas en " +"cualquier clase de entrevista de trabajo.\" Se supone que ayude a los " +"abogados nuevos a conseguir trabajo." + +#: lang/json/BOOK_from_json.py +msgid "holybook abstract" +msgid_plural "holybook abstracts" +msgstr[0] "reseña de texto sagrado" +msgstr[1] "reseñas de texto sagrado" + +#. ~ Description for holybook abstract +#: lang/json/BOOK_from_json.py +msgid "theoretically this isn't a book at all" +msgstr "teóricamente, esto ni siquiera es un libro" + +#: lang/json/BOOK_from_json.py +msgid "Mycenacean Hymns" +msgid_plural "copies of Mycenacean Hymns" +msgstr[0] "Hymnos Myceanos" +msgstr[1] "copias de Hymnos Myceanos" + +#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of +#. Mycenacean Hymns'} +#: lang/json/BOOK_from_json.py +msgid "" +"A vellum book containing the hymns central to Marloss faith. As the verses " +"lead to each other, the text sings of unity and promised paradise." +msgstr "" +"Es un libro de vitela que contiene los himnos principales de la fe Marloss. " +"Los versos hablan de uno al otro, y el texto canta de la unida y el paraíso " +"prometido." + +#: lang/json/BOOK_from_json.py +msgid "King James Bible" +msgid_plural "copies of King James Bible" +msgstr[0] "Biblia del Rey Jacobo" +msgstr[1] "copias de Biblia del Rey Jacobo" + +#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King +#. James Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, which originated in England " +"in the early 1600s." +msgstr "" +"Una traducción al español de la Biblia Cristiana, que fue originada en " +"Inglaterra a principios del siglo XVII." + +#: lang/json/BOOK_from_json.py +msgid "Eastern Orthodox Bible" +msgid_plural "copies of Eastern Orthodox Bible" +msgstr[0] "Biblia Ortodoxa de Oriente" +msgstr[1] "copias de Biblia Ortodoxa de Oriente" + +#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of +#. Eastern Orthodox Bible'} +#: lang/json/BOOK_from_json.py +msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." +msgstr "" +"Es una copia en español de la versión Ortodoxa de Oriente de la Santa " +"Biblia." + +#: lang/json/BOOK_from_json.py +msgid "Gideon Bible" +msgid_plural "copies of Gideon Bible" +msgstr[0] "Biblia de Gedeón" +msgstr[1] "copias de Biblia de Gedeón" + +#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon +#. Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, distributed free of charge by" +" Gideons International." +msgstr "" +"Una copia en español de la Biblia Cristiana, distribuida gratuitamente por " +"los Gedeones Internacionales." + +#: lang/json/BOOK_from_json.py +msgid "The Guru Granth Sahib" +msgid_plural "copies of The Guru Granth Sahib" +msgstr[0] "El Gurú Granth Sahib" +msgstr[1] "copias de El Gurú Granth Sahib" + +#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The +#. Guru Granth Sahib'} +#: lang/json/BOOK_from_json.py +msgid "A single-volume copy of the central religious texts of Sikhism." +msgstr "" +"Es una copia de un solo volumen del texto religioso central del Sijismo." + +#: lang/json/BOOK_from_json.py +msgid "Hadith" +msgid_plural "copies of Hadith" +msgstr[0] "Hadiz" +msgstr[1] "copias de Hadiz" + +#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} +#: lang/json/BOOK_from_json.py +msgid "" +"A Muslim religious text containing an account of the sayings and actions of " +"the prophet Muhammad." +msgstr "" +"Un texto religioso musulmán, que contiene un recuento de las palabras y las " +"acciones del profeta Muhammad." + +#: lang/json/BOOK_from_json.py +msgid "Principia Discordia" +msgid_plural "copies of Principia Discordia" +msgstr[0] "Principia Discordia" +msgstr[1] "copias del Principia Discordia" + +#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of +#. Principia Discordia'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of Discordianism. It seems to " +"primarily concern chaos, and features a card in the back which informs you " +"that you are now a 'genuine and authorized Pope of Discordia'." +msgstr "" +"Un libro que personifica las creencias principales del Discordianismo. " +"Parece concernir primeramente al caos, e incluye una carta en la parte de " +"atrás que te informa que ya eres un 'genuino y autorizado Papa de la " +"Discordia'." + +#: lang/json/BOOK_from_json.py +msgid "The Kojiki" +msgid_plural "copies of The Kojiki" +msgstr[0] "Kojiki" +msgstr[1] "copias del Kojiki" + +#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} +#: lang/json/BOOK_from_json.py +msgid "" +"The oldest extant chronicle of Japan's myths and history, the stories " +"contained in the Kojiki are part of the inspiration behind Shinto practices." +msgstr "" +"Es la crónica más antigua existente de la historia y los mitos japoneses. " +"Las historias que contiene el Kojiki son parte de la inspiración detrás de " +"las prácticas del Sintoísmo." + +#: lang/json/BOOK_from_json.py +msgid "The Book of Mormon" +msgid_plural "copies of The Book of Mormon" +msgstr[0] "El libro del Mormón" +msgstr[1] "copias de El libro del Mormón" + +#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The +#. Book of Mormon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The sacred text of the Latter Day Saint movement of Christianity, originally" +" published in 1830 by Joseph Smith." +msgstr "" +"El texto sagrado del Movimiento de los Santos de los Últimos Días del " +"Cristianismo, originalmente publicado en 1830 por Joseph Smith." + +#: lang/json/BOOK_from_json.py +msgid "The Gospel of the Flying Spaghetti Monster" +msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" +msgstr[0] "El Evangelio del Monstruo del Espagueti Volador" +msgstr[1] "copies de El Evangelio del Monstruo del Espagueti Volador" + +#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', +#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of the Church of the Flying Spaghetti " +"Monster. It seems to involve a lot of pirates and some sort of invisible " +"drunken monster made of pasta." +msgstr "" +"Es un libro que personifica las principales creencias de la Iglesia del " +"Monstruo del Espagueti Volador. Parece implicar muchos piratas y alguna " +"clase de monstruo borracho invisible hecho con pasta." + +#: lang/json/BOOK_from_json.py +msgid "Quran" +msgid_plural "copies of Quran" +msgstr[0] "Corán" +msgstr[1] "copias de Corán" + +#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Muslim book of holy scriptures, with " +"explanatory notes and commentaries to aid in understanding." +msgstr "" +"Un traducción al español del libro musulmán de las santas escrituras, con " +"notas explicativas y comentarios para facilitar su comprensión." + +#: lang/json/BOOK_from_json.py +msgid "The Satanic Bible" +msgid_plural "copies of The Satanic Bible" +msgstr[0] "La Biblia Satánica" +msgstr[1] "copias de La Biblia Satánica" + +#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The +#. Satanic Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of essays, observations, and rituals published by Anton LaVey " +"in 1969." +msgstr "" +"Es una colección de ensayos, observaciones y rituales publicados por Anton " +"LaVey en 1969." + +#: lang/json/BOOK_from_json.py +msgid "Dianetics" +msgid_plural "copies of Dianetics" +msgstr[0] "Dianética" +msgstr[1] "copias de Dianética" + +#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book is the canonical text of Scientology. Written by a science " +"fiction author, it contains self-improvement techniques and musings on " +"psychology called Dianetics." +msgstr "" +"Este libro es el texto canónico de la Cienciología. Escrito por un autor de " +"ciencia ficción, contiene técnicas de auto-mejoramiento y reflexiones sobre " +"psicología llamadas Diánetica." + +#: lang/json/BOOK_from_json.py +msgid "The Book of the SubGenius" +msgid_plural "copies of The Book of the SubGenius" +msgstr[0] "El Libro de los Subgenios" +msgstr[1] "copias de El Libro de los Subgenios" + +#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of +#. The Book of the SubGenius'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book about the Church of the SubGenius. It seems to involve a salesman " +"named J. R. \"Bob\" Dobbs and a concept called 'slack'." +msgstr "" +"Es un libro sobre la Iglesia de los Subgenios. Parece que implica un " +"vendedor llamado J. R. \"Bob\" Dobbs y un concepto denominado 'slack'." + +#: lang/json/BOOK_from_json.py +msgid "The Sutras of the Buddha" +msgid_plural "copies of The Sutras of the Buddha" +msgstr[0] "Los Sutras de Buda" +msgstr[1] "copias de Los Sutras de Buda" + +#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of +#. The Sutras of the Buddha'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of discourses attributed to the Buddha and his close disciples." +msgstr "" +"Es una colección de los discursos atribuidos a Buda y sus discípulos " +"cercanos." + +#: lang/json/BOOK_from_json.py +msgid "Talmud" +msgid_plural "copies of the Talmud" +msgstr[0] "Talmud" +msgstr[1] "copias del Talmud" + +#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of the Talmud'} +#: lang/json/BOOK_from_json.py +msgid "" +"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " +"Hebrew Bible with teachings and opinions of thousands of rabbis." +msgstr "" +"Uno de los textos centrales del Judaísmo Rabínico, el Talmud explica en " +"profundidad la Biblia Hebrea con enseñanzas y opiniones de cientos de " +"rabinos." + +#: lang/json/BOOK_from_json.py +msgid "Tanakh" +msgid_plural "copies of Tanakh" +msgstr[0] "Tanaj" +msgstr[1] "copias de Tanaj" + +#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single-volume book containing the complete canon of the Jewish Bible." +msgstr "" +"Un libro de un solo volumen que contiene el canon completo de la Biblia " +"Judía." + +#: lang/json/BOOK_from_json.py +msgid "The Tripitaka" +msgid_plural "copies of The Tripitaka" +msgstr[0] "El Tripitaka" +msgstr[1] "copias de El Tripitaka" + +#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The +#. Tripitaka'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Buddhist writings describing their canons of " +"scriptures." +msgstr "" +"Es una colección de textos sagrados Budistas, que describen los cánones de " +"las escrituras." + +#: lang/json/BOOK_from_json.py +msgid "The Upanishads" +msgid_plural "copies of The Upanishads" +msgstr[0] "Los Upanishad" +msgstr[1] "copias de los Upanishad" + +#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The +#. Upanishads'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Hindu writings regarding the nature of reality and " +"describing the character and form of human salvation." +msgstr "" +"Es una colección de textos sagrados Hindúes, acerca de la naturaleza de la " +"realidad, y describiendo la forma y el carácter de la salvación humana." + +#: lang/json/BOOK_from_json.py +msgid "The Four Vedas" +msgid_plural "copies of The Four Vedas" +msgstr[0] "Los Cuatro Vedas" +msgstr[1] "copias de los Cuatro Vedas" + +#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four +#. Vedas'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single volume containing all four Vedas, which are the oldest scriptures " +"of Hinduism." +msgstr "" +"Un volumen que contiene los cuatro Vedas, que son las escrituras más " +"antiguas del Hinduismo." + +#: lang/json/BOOK_from_json.py +msgid "Hávamál" +msgid_plural "copies of Hávamál" +msgstr[0] "Hávamál" +msgstr[1] "copias de Hávamál" + +#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of several Old Norse poems. The poems contain " +"proverbs and stories attributed to the god Odin, many transcribed from oral " +"history." +msgstr "" +"Es una traducción de algunos poemas nórdicos antiguos. Los poemas contienen " +"proverbios e historias atribuidas al dios Odón, transcriptos de la tradición" +" oral." + #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" msgid_plural "Duelist's Annuals" @@ -32489,6 +33625,24 @@ msgstr "" "Un masivo libro de tapa dura lleno de mucha información para el diseñador " "profesional de indumentaria." +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "Ye Scots Beuk o Tailorin'" +msgstr[1] "copias de Ye Scots Beuk o Tailorin'" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of +#. Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "" +"Es un libro escocés traducido del gaélico. Aunque es de lectura aburrida " +"dado su tono técnico, brinda conocimiento sobre la cultura escocesa e " +"información sobre sastrería." + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -32650,53 +33804,446 @@ msgstr "" "anillado. Aún asi, tiene muchos consejos útiles para el combate sin armas." #: lang/json/BOOK_from_json.py -msgid "readable magazine" -msgid_plural "readable magazines" -msgstr[0] "revista legible" -msgstr[1] "revistas legibles" - -#: lang/json/BOOK_from_json.py -msgid "original copy of Housefly" -msgid_plural "original copies of Housefly" -msgstr[0] "copia original de Housefly" -msgstr[1] "copias originales de Housefly" +msgid "children's book" +msgid_plural "children's books" +msgstr[0] "libro infantil" +msgstr[1] "libros infantiles" -#. ~ Description for {'str': 'original copy of Housefly', 'str_pl': 'original -#. copies of Housefly'} +#. ~ Description for {'str': "children's book"} #: lang/json/BOOK_from_json.py msgid "" -"The only copy of Housefly in existence - a long book about three individuals" -" drawn together by fate in the early 1800s to save their English town of " -"Victoria from a mysterious threat. You never got to publish it, but reading" -" it lets you forget the horrors of the Cataclysm, if only for a moment." +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the dead walked" +" and the world moved on." msgstr "" -"Es la única copia existente de \"Housefly\", un libro largo acerca de tres " -"individuos juntados por el destino a principios de siglo XiX para salvar el " -"pueblo inglés de Victoria de una amenaza misteriosa. Nunca llegaste a " -"publicarlo, pero leer te permite olvidar los horrores del Cataclismo por un " -"momento, aunque sea." +"Es un pequeño libro para pequeños lectores. Los personajes coloridos y las " +"dulces historias que contiene dentro pertenecen a otro tiempo diferente, " +"antes de que los muertos caminen y el mundo continuó girando." #: lang/json/BOOK_from_json.py -msgid "USMC M1014 technical manual" -msgid_plural "USMC M1014 technical manuals" -msgstr[0] "manual técnico de USMC M1014" -msgstr[1] "manuales técnicos de USMC M1014" +msgid "book of fairy tales" +msgid_plural "books of fairy tales" +msgstr[0] "libro de cuentitos" +msgstr[1] "libros de cuentitos" -#. ~ Description for {'str': 'USMC M1014 technical manual'} +#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy +#. tales'} #: lang/json/BOOK_from_json.py msgid "" -"A pocket-sized book printed in 2000 by the United States Marine Corps for " -"official use. It describes the operation, repair, and cleaning of the " -"Benilli M1014 shotgun. Though specific to the M4, it can provide a wealth " -"of information to the trained eye." +"An amusing collection of folklore featuring the usual cast of fairies, " +"goblins, and trolls." msgstr "" -"Es un libro de bolsillo impreso en 2000 por la Marina de los Estados Unidos " -"para uso oficial. Describe la operación, reparación y limpieza de la " -"escopeta Benilli M1014. Aunque es específica para la M4, puede brindar " -"información útil a quien sabe buscarla." +"Es una divertida colección de cuentos tradicionales, con la participación de" +" los protagonistas habituales como hadas, goblins y trolls." #: lang/json/BOOK_from_json.py -msgid "Black Powder to Berettas" +msgid "" +"This fairy tale is about a wolf who eats so much salted meat she becomes " +"trapped in the butcher's cellar." +msgstr "" +"Este cuentito es sobre un lobo que come mucha carne salada y termina " +"atrapado en el sótano de un carnicero." + +#: lang/json/BOOK_from_json.py +msgid "" +"In this traditional story of beastly intrigue a clever fox convinces an " +"elderly lion to kill a derogatory wolf." +msgstr "" +"En esta tradicional historia de intriga bestial, un astuto zorro convence a " +"un viejo león de matar al despectivo lobo." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is an illustrated fairy tale book about a conversation between a mouse " +"and a cat." +msgstr "" +"Es un libro ilustrado con un cuentito sobre la conversación entre un ratón y" +" un gato." + +#: lang/json/BOOK_from_json.py +msgid "" +"This illustrated fairy tale relates how a city mouse did visit his cousin in" +" the country, and how each regarded the other's quality of life." +msgstr "" +"Este cuentito ilustrado relata cómo un ratón de ciudad visitó a su primo en " +"el campo, y cómo cada uno apreciaba la calidad de vida del otro." + +#: lang/json/BOOK_from_json.py +msgid "A fable in which the jackal wins the day via clever foolishness." +msgstr "" +"Es una fábula en la que un chacal sale victorioso gracias a su ingenio." + +#: lang/json/BOOK_from_json.py +msgid "" +"A slave mistakenly wanders into a lion's den - thus begins a fable which " +"demonstrates mutual dependence regardless of size or status." +msgstr "" +"Un esclavo entra por equivocación en la cueva de un león - así comienza la " +"fábula que demuestra una dependencia mutua a pesar del tamaño o el estatus." + +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of stories featuring \"Goldilocks and The Three " +"Bears\" on the cover." +msgstr "" +"Es una divertida colección de historias con \"Ricitos de Oro y Los Tres " +"Osos\" en la tapa." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a well illustrated fairy tale about a war between the birds and the " +"beasts, with particulars on the wartime conduct and eventual fate of the " +"bat." +msgstr "" +"Esto es un cuentito muy bien ilustrado acerca de la guerra entre los pájaros" +" y las bestias, con detalles sobre la conducta en tiempos de guerra y el " +"eventual destino del murciélago." + +#: lang/json/BOOK_from_json.py +msgid "" +"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " +"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" +" page." +msgstr "" +"Este libro, titulado \"La venganza de la serpiente cascabel\", es una " +"colección de mitos y leyendas cheroqui. Tiene escrito a mano con lápiz " +"\"285D\" en la página con el título." + +#: lang/json/BOOK_from_json.py +msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" +msgstr "" +"Este cuentito es una versión regional de \"Jack y las habichuelas mágicas\"." + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale book is entitled \"Little Red Cap\". It details a red-" +"cloaked child's various encounters with talking wolves." +msgstr "" +"Este cuentito está titulado \"Caperucita Roja\". Detalla los diversos " +"encuentros de una niña de capa roja con lobos parlantes." + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of ghost stories warning about the dangers of stealing from the" +" dead." +msgstr "" +"Es una colección de cuentos de fantasmas advirtiendo sobre los peligros de " +"robarles pertenencias a los muertos." + +#: lang/json/BOOK_from_json.py +msgid "" +"An Irish fairy tale in which a Celtic poet marries a princess who has been " +"cursed with the head of a pig." +msgstr "" +"Es un cuentito irlandés en el cual el poeta Céltico se casa con una princesa" +" que ha sido maldecida y tiene cabeza de chancho." + +#: lang/json/BOOK_from_json.py +msgid "" +"A book of Italian fairy tales translated into English. The cover features " +"an orange fairy juggling a lemon, a lime, and a tangerine." +msgstr "" +"Es un libro de cuentitos italianos traducidos al español. La tapa tiene un " +"hada naranja haciendo malabares con un limón, una lima y una mandarina." + +#: lang/json/BOOK_from_json.py +msgid "A book of fables about people who change into birds." +msgstr "Es un libro de fábulas de personas que se transforman en pájaros." + +#: lang/json/BOOK_from_json.py +msgid "" +"This compendium of amusing folk tales about the devil is titled \"Hell's " +"Kettle: Legends of the Devil.\"" +msgstr "" +"Este compendio de cuentos folklóricos acerca del diable, se titula \"El " +"caldero del infierno: Leyendas del Diablo\"." + +#: lang/json/BOOK_from_json.py +msgid "" +"This charming book of Swedish fables is titled, \"The Glass Mountain and the" +" Princess.\"" +msgstr "" +"Este adorable libro de fábulas suecas se titula \"La Montaña de Vidrio y la " +"Princesa\"." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of fairy tale stories warning against the consequences " +"of extreme greed." +msgstr "" +"Esta es una colección de cuentitos que advierten sobre las consecuencias de " +"la avaricia extrema." + +#: lang/json/BOOK_from_json.py +msgid "" +"This fable book is entitled, \"The Rabbit Herd.\" Inside are woodcut " +"illustrations of a peasant boy playing his flute for a mob of mischievous " +"hares." +msgstr "" +"Esta fábula se titula \"La Manada de Conejos\". Dentro tiene ilustraciones " +"grabadas en madera de un paisano tocando la flauta para un grupo de " +"traviesas liebres." + +#: lang/json/BOOK_from_json.py +msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" +msgstr "" +"Este libro se titula \"La Olla de los Ladrones: Cuentos del Mundo Árabe\"." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a book of legends collected by Traveller Johnny Cassidy in the " +"1960s." +msgstr "" +"Este es un libro de leyendas recopiladas por el viajero Johnny Cassidy en la" +" década de 1960." + +#: lang/json/BOOK_from_json.py +msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" +msgstr "" +"Es un libro de los hermanos Grimm que se titula \"Los desiguales hijos de " +"Eva\"." + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of fables expands upon the legend of the Seven Sleepers of " +"Ephesus." +msgstr "" +"Este libro de fábulas profundiza la leyenda de los Siete Durmientes de " +"Éfeso." + +#: lang/json/BOOK_from_json.py +msgid "" +"In this fairy tale a strong man frightens an ogre by squeezing water out of " +"a stone." +msgstr "" +"En este cuentito, un hombre fuerte intimida a un ogro al exprimir agua de " +"una piedra." + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of rustic folk tales bears the title: \"How to Shout Down the " +"Devil.\"" +msgstr "" +"Este libro de cuentos folklóricos lleva el título: \"Cómo hacer callar al " +"Diablo\"." + +#: lang/json/BOOK_from_json.py +msgid "" +"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " +"fables about logical errors and foolish misjudgements of the Kadambawa men." +msgstr "" +"El título de este libro es \"Cuentos folklóricos de Ceilán\". Incluye " +"fábulas acerca de los errores lógicos y juicios erróneos tontos de los " +"hombres Kadambawa." + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " +"Stories.\"" +msgstr "" +"Este libro de cuentos folklóricos se titula \"La chica con el nombre feo, y " +"otras historias\"." + +#: lang/json/BOOK_from_json.py +msgid "" +"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " +"suitable for small children." +msgstr "" +"El título es \"El panqueque huidizo\", es una colección de cuentitos " +"simples, ideales para los niños más pequeños." + +#: lang/json/BOOK_from_json.py +msgid "The Adorkable Girl" +msgid_plural "The Adorkable Girls" +msgstr[0] "La Chica Tontadorable" +msgstr[1] "La Chica Tontadorable" + +#. ~ Description for The Adorkable Girl +#: lang/json/BOOK_from_json.py +msgid "" +"When a therapist's daughter transfers to a new school, she decides to change" +" her personality type. As her social life begins to blossom, can she " +"maintain a healthy boundary between her home life and her public persona?" +msgstr "" +"Cuando la hija de un terapeuta se cambia a una nueva escuela, decido cambiar" +" también su personalidad. Cuando su vida social comienza a florecer, ¿podrá " +"mantener un vínculo saludable entre su hogar y su personalidad pública?" + +#: lang/json/BOOK_from_json.py +msgid "Becoming Jackson" +msgid_plural "Becoming Jacksons" +msgstr[0] "Volviéndose Jackson" +msgstr[1] "Volviéndose Jackson" + +#. ~ Description for Becoming Jackson +#: lang/json/BOOK_from_json.py +msgid "" +"When Jackson gains the mystical talent to alter his appearance on command, " +"how will he continue to recognize himself in his own mirror?" +msgstr "" +"Cuando Jackson obtiene el talento místico de alterar su apariencia cuando " +"quiere, ¿podrá continuar reconociéndose a sí mismo en el espejo?" + +#: lang/json/BOOK_from_json.py +msgid "Nothing Burned" +msgid_plural "Nothing Burneds" +msgstr[0] "Nada Quemado" +msgstr[1] "Nada Quemado" + +#. ~ Description for Nothing Burned +#: lang/json/BOOK_from_json.py +msgid "" +"A teenage influencer becomes fast friends with someone who may or may not be" +" an actual demon." +msgstr "" +"Un influencer adolescente se hace amigo íntimo con alguien que puede o no " +"puede ser realmente un demonio." + +#: lang/json/BOOK_from_json.py +msgid "High and Low" +msgid_plural "High and Lows" +msgstr[0] "Alto y Bajo" +msgstr[1] "Alto y Bajo" + +#. ~ Description for High and Low +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of adolescent fiction, a young gemini discovers that the " +"astrology section of his small town newspaper is eerily preminiscent. His " +"efforts to uncover the oracle reveal more than the stars could have " +"predicted." +msgstr "" +"En este trabajo de ficción adolescente, un joven geminiano descubre que la " +"parte de astrología del diario de un pueblo pequeño es siniestramente " +"premonitorio. Sus esfuerzos para descubrir el oráculo revelan más de lo que " +"las estrellas podrían haber predicho." + +#: lang/json/BOOK_from_json.py +msgid "Fire When You See My Eyes" +msgid_plural "Fire When You See My Eyess" +msgstr[0] "Fuego Cuando Miras Mis Ojos" +msgstr[1] "Fuego Cuando Miras Mis Ojos" + +#. ~ Description for Fire When You See My Eyes +#: lang/json/BOOK_from_json.py +msgid "" +"In a cataclysmic future, advanced technology gives parents access to video " +"footage of every moment of their teenage children's lives." +msgstr "" +"En un futuro cataclísmico, la tecnología avanzada le da a los padres acceso " +"a videos de cada momento de la vida de sus hijos." + +#: lang/json/BOOK_from_json.py +msgid "Peanut Butter Bruised" +msgid_plural "Peanut Butter Bruiseds" +msgstr[0] "Moretones de Mantequilla de Maní" +msgstr[1] "Moretones de Mantequilla de Maní" + +#. ~ Description for Peanut Butter Bruised +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of young adult fiction, a woman raised on food stamps falls in " +"love with a young cook. More importantly, she falls in love with the idea " +"of become a professional chef." +msgstr "" +"En este trabajo de ficción para jóvenes adultos, una mujer criada con " +"cupones de comida se enamora de un joven cocinero. Y lo que es más " +"importante, se enamora de la idea de convertirse en chef profesional." + +#: lang/json/BOOK_from_json.py +msgid "Ready When You Are" +msgid_plural "Ready When You Ares" +msgstr[0] "Listo Cuando Vos Lo Estés" +msgstr[1] "Listo Cuando Vos Lo Estés" + +#. ~ Description for Ready When You Are +#: lang/json/BOOK_from_json.py +msgid "" +"When three teenage girls ditch class to drive cross country together they " +"get a strong dose of life lessons on the road. This work of young adult " +"fiction explores how friendships evolve in early adulthood." +msgstr "" +"Cuando tres chicas adolescentes se ratean para viajar en su auto por el " +"país, reciben una dosis fuerte de lecciones de vida en el camino. Este " +"trabajo de ficción para jóvenes adultos explora cómo las amistades " +"evolucionan en la adultez temprana." + +#: lang/json/BOOK_from_json.py +msgid "Study of a Boy" +msgid_plural "Study of a Boys" +msgstr[0] "Estudio de un Chico" +msgstr[1] "Estudio de un Chico" + +#. ~ Description for Study of a Boy +#: lang/json/BOOK_from_json.py +msgid "" +"A high school sophomore's personal journal is stolen and then leaked on " +"social media. When it goes viral he is forced simultaneously to contend " +"with both fame and betrayal." +msgstr "" +"Roban el diario personal de un estudiante de segundo año de secundaria y lo " +"difunden por las redes sociales. Cuando se vuelve viral, él es forzado a " +"enfrentarse simultáneamente a la fama y a la traición." + +#: lang/json/BOOK_from_json.py +msgid "Summer Variables" +msgid_plural "Summer Variabless" +msgstr[0] "Variables de Verano" +msgstr[1] "Variables de Verano" + +#. ~ Description for Summer Variables +#: lang/json/BOOK_from_json.py +msgid "" +"In this book written primarily for young adults, a woman's modest summer " +"internship results in an incredible discovery that attracts the attention of" +" unsavory elements." +msgstr "" +"En este libro escribo principalmente para adultos jóvenes, la modesta " +"pasantía de verano de una mujer se convierte en un increíble descubrimiento " +"que atrae la atención de elementos desagradables." + +#: lang/json/BOOK_from_json.py +msgid "original copy of Housefly" +msgid_plural "original copies of Housefly" +msgstr[0] "copia original de Housefly" +msgstr[1] "copias originales de Housefly" + +#. ~ Description for {'str': 'original copy of Housefly', 'str_pl': 'original +#. copies of Housefly'} +#: lang/json/BOOK_from_json.py +msgid "" +"The only copy of Housefly in existence - a long book about three individuals" +" drawn together by fate in the early 1800s to save their English town of " +"Victoria from a mysterious threat. You never got to publish it, but reading" +" it lets you forget the horrors of the Cataclysm, if only for a moment." +msgstr "" +"Es la única copia existente de \"Housefly\", un libro largo acerca de tres " +"individuos juntados por el destino a principios de siglo XiX para salvar el " +"pueblo inglés de Victoria de una amenaza misteriosa. Nunca llegaste a " +"publicarlo, pero leer te permite olvidar los horrores del Cataclismo por un " +"momento, aunque sea." + +#: lang/json/BOOK_from_json.py +msgid "USMC M1014 technical manual" +msgid_plural "USMC M1014 technical manuals" +msgstr[0] "manual técnico de USMC M1014" +msgstr[1] "manuales técnicos de USMC M1014" + +#. ~ Description for {'str': 'USMC M1014 technical manual'} +#: lang/json/BOOK_from_json.py +msgid "" +"A pocket-sized book printed in 2000 by the United States Marine Corps for " +"official use. It describes the operation, repair, and cleaning of the " +"Benilli M1014 shotgun. Though specific to the M4, it can provide a wealth " +"of information to the trained eye." +msgstr "" +"Es un libro de bolsillo impreso en 2000 por la Marina de los Estados Unidos " +"para uso oficial. Describe la operación, reparación y limpieza de la " +"escopeta Benilli M1014. Aunque es específica para la M4, puede brindar " +"información útil a quien sabe buscarla." + +#: lang/json/BOOK_from_json.py +msgid "Black Powder to Berettas" msgid_plural "copies of Black Powder to Berettas" msgstr[0] "copia de Pólvora Negra para Berettas" msgstr[1] "copias de Pólvora Negra para Berettas" @@ -32846,194 +34393,6 @@ msgstr "" "cantidad de ficción especulativa lo hace prácticamente inservible. ¿Qué " "carajo es un mi-go? ¿Los trífidos no eran algo de una película viejísima?" -#: lang/json/BOOK_from_json.py -msgid "Case #5846, Illegal Gun Modification" -msgid_plural "copies of Case #5846, Illegal Gun Modification" -msgstr[0] "Caso #5846, Modificaciones de Armas Ilegales" -msgstr[1] "copias de Caso #5846, Modificaciones de Armas Ilegales" - -#. ~ Description for {'str': 'Case #5846, Illegal Gun Modification', 'str_pl': -#. 'copies of Case #5846, Illegal Gun Modification'} -#: lang/json/BOOK_from_json.py -msgid "" -"This file details illegal gun modifications. Maybe you could learn " -"something. At least you don't have to worry about the cops anymore." -msgstr "" -"Este expediente detalla las modificaciones de armas ilegales. Tal vez puedas" -" aprender algo. Por lo menos, ahora no te tenés que preocupar por la " -"policía." - -#: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "juego de ajedrez" -msgstr[1] "juegos de ajedrez" - -#. ~ Description for chess set -#: lang/json/BOOK_from_json.py -msgid "" -"A wooden box containing all the equipment needed to play a game of chess." -msgstr "" -"Es una caja de madera con todo el equipo necesario para jugar al ajedrez." - -#: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "juego de damas" -msgstr[1] "juegos de damas" - -#. ~ Description for checkers set -#: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." -msgstr "" -"Es una caja de madera con un conjunto de fichas circulares utilizadas para " -"jugar a las damas." - -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" -msgstr[0] "mazo de cartas" -msgstr[1] "mazos de cartas" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "Es un conjunto de 52 cartas francesas, hechas para jugar al póquer." - -#: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" -msgstr[0] "mazo de cartas Hechicería" -msgstr[1] "mazos de cartas Hechicería" - -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of -#. Sorcery cards'} -#: lang/json/BOOK_from_json.py -msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." -msgstr "" -"Es un conjunto de cartas hechas para jugar a \"Hechicería\". Cada carta " -"tiene una extraña imagen de un monstruo." - -#: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" -msgstr[0] "Pintoresco" -msgstr[1] "colección de Pintoresco" - -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where one draws an image, and the others attempt to guess what it is." -msgstr "" -"Es un juego donde uno dibuja una imagen y los demás deben intentar adivinar " -"qué es." - -#: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" -msgstr[0] "Capitalismo" -msgstr[1] "colección de Capitalismo" - -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players traverse around the board buying property and swindling" -" their friends." -msgstr "" -"Es un juego donde los jugadores van alrededor del tablero comprando " -"propiedades y estafando a sus amigos." - -#: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" -msgstr[0] "Blobos y Bandidos" -msgstr[1] "colección de Blobos y Bandidos" - -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and -#. Bandits'} -#: lang/json/BOOK_from_json.py -msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive" -" the apocalypse while surviving the apocalypse." -msgstr "" -"Es un juego de rol post-apocalíptico, para que puedas pretender que " -"sobrevivís al apocalipsis mientras sobrevivís al apocalipsis." - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" -msgstr[0] "Battlehammer" -msgstr[1] "colección de Battlehammer" - -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of fantasy creatures." -msgstr "" -"Es un juego de estrategia con pequeños muñequitos de criaturas fantásticas." - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" -msgstr[0] "Battlehammer 20k" -msgstr[1] "colección de Battlehammer 20k" - -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of -#. Battlehammer 20k'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." -msgstr "" -"Es un juego de estrategia con pequeños muñequitos de alienígenas y grotescos" -" marinos espaciales." - -#: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" -msgstr[0] "Colonizadores de Rancho" -msgstr[1] "colección de Colonizadores de Rancho" - -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of -#. Settlers of the Ranch'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game where players build settlements and trade for supplies." -msgstr "" -"Es un juego de estrategia donde los jugadores construyen asentamientos y " -"comercian recursos." - -#: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" -msgstr[0] "Buques de Guerra" -msgstr[1] "colección de Buques de Guerra" - -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." -msgstr "" -"Es un juego donde los jugadores intentan adivinar el lugar donde el oponente" -" a ubicado sus naves en el tablero." - -#: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" -msgstr[0] "Asesinato Misterioso" -msgstr[1] "colección de Asesinato Misterioso" - -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder -#. Mystery'} -#: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." -msgstr "" -"Es un juego donde los jugadores intentarán descubrir quién mató al " -"mayordomo." - #: lang/json/BOOK_from_json.py msgid "Black Dragons: Swamp Ruins" msgid_plural "copies of Black Dragons: Swamp Ruins" @@ -33204,89 +34563,41 @@ msgstr "" " - F. \"." #: lang/json/BOOK_from_json.py -msgid "The Weapons of Asgard" -msgid_plural "copies of The Weapons of Asgard" -msgstr[0] "Las Armas de Asgard" -msgstr[1] "copias de Las Armas de Asgard" - -#. ~ Description for {'str': 'The Weapons of Asgard', 'str_pl': 'copies of The -#. Weapons of Asgard'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is about creating replicas of the weapons used by the Norse Gods, " -"such as the well-known Mjölnir. It is well illustrated with lots of " -"pictures." -msgstr "" -"Este libro es sobre crear réplicas de las armas utilizadas por los Dioses " -"Nórdicos, como el famoso martillo Mjölnir. Está bien ilustrado con muchas " -"imágenes." - -#: lang/json/BOOK_from_json.py -msgid "Hacking Robots for Fun & Profit" -msgid_plural "copies of Hacking Robots for Fun & Profit" -msgstr[0] "Hackeando Robots por Diversión y Beneficio" -msgstr[1] "copias de Hackeando Robots por Diversión y Beneficio" - -#. ~ Description for {'str': 'Hacking Robots for Fun & Profit', 'str_pl': -#. 'copies of Hacking Robots for Fun & Profit'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book on illegally obtaining, reprogramming, and modifying robots. It has " -"lots of helpful step-by-step guides and example blueprints." -msgstr "" -"Es un libro que trata sobre la manera ilegal de obtener, reprogramar o " -"modificar robots. Tiene muchas guías paso a paso con diseños de ejemplo." - -#: lang/json/BOOK_from_json.py -msgid "Popular Robotics" -msgid_plural "issues of Popular Robotics" -msgstr[0] "Robótica Popular" -msgstr[1] "fascículos de Robótica Popular" - -#. ~ Description for {'str': 'Popular Robotics', 'str_pl': 'issues of Popular -#. Robotics'} -#: lang/json/BOOK_from_json.py -msgid "A magazine about building and altering your own robots." -msgstr "Es una revista sobre cómo construir y modificar tus propios robots." - -#: lang/json/BOOK_from_json.py -msgid "Artillery and Field Gunnery" -msgid_plural "copies of Artillery and Field Gunnery" -msgstr[0] "Artillería y Armamento de Campo" -msgstr[1] "copias de Artillería y Armamento de Campo" +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" +msgstr[0] "En el Principio... Fue la Línea de Comando" +msgstr[1] "copias de En el Principio... Fue la Línea de Comando" -#. ~ Description for {'str': 'Artillery and Field Gunnery', 'str_pl': 'copies -#. of Artillery and Field Gunnery'} +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', +#. 'str_pl': 'copies of In the Beginning… Was the Command Line'} #: lang/json/BOOK_from_json.py msgid "" -"A textbook on the history of modern artillery, with a number of " -"illustrations and excerpts from various field manuals. A competent " -"handloader or mechanic might find additional uses for the more technical " -"parts of the text." +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." msgstr "" -"Es un manual de la historia de la artillería moderna, con varias " -"ilustraciones y fragmentos de distintos manuales de campo. Aquellos " -"competentes artilleros o mecánicos pueden encontrar más usos en las partes " -"técnicas del texto." +"Es un ensayo humorístico de 1999 escrito por Neal Stephenson, comparando a " +"los vendedores de sistemas operativos con los vendedores de autos." #: lang/json/BOOK_from_json.py -msgid "Principles of Postmortem Mind Control" -msgid_plural "copies of Principles of Postmortem Mind Control" -msgstr[0] "Principios de Control Mental Postmortem" -msgstr[1] "copias de Principios de Control Mental Postmortem" +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" +msgstr[0] "Principios de Diseño del Compilador" +msgstr[1] "copias de Principios de Diseño del Compilador" -#. ~ Description for {'str': 'Principles of Postmortem Mind Control', -#. 'str_pl': 'copies of Principles of Postmortem Mind Control'} +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': +#. 'copies of Principles of Compiler Design'} #: lang/json/BOOK_from_json.py msgid "" -"A thick book containing research notes of a mad scientist. It describes " -"various methods of reanimating and controlling the dead. There's a lot of " -"gory details and technical language mixed in, so it's not easy to read." +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." msgstr "" -"Un libro grueso que contiene notas de investigación de científicos locos. " -"Describe varios métodos para reanimar y controlar a los muertos. Tiene " -"muchos detalles sangrientos y lenguaje técnico mezclado, así que no es muy " -"fácil de leer." +"Es el libro de texto clásico de informática de 1977 escrito por Alfred Aho y" +" Jeffrey Ullman. También conocido como El libro del dragón verde porque en " +"la tapa tiene el dibujo de un caballero empuñando un parser LALR y la " +"traducción dirigida a sintaxis contra un dragón verde metafórico, La " +"Complejidad del Diseño del Compilador." #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -34536,6 +35847,19 @@ msgstr "" "Es un trago popular hecho con gin y vermú seco, originario de la época de la" " prohibición." +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "muffin de calabaza" +msgstr[1] "muffins de calabaza" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "" +"Son unos muffin horneados hechos con calabaza. Perfectos para tu banquete de" +" otoño." + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -34972,7 +36296,7 @@ msgstr[1] "estómagos humanos" #. ~ Description for human stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a human. It is surprisingly durable." -msgstr "Es el estómago de un humano. Es sorprendentemente duradero." +msgstr "Es el estómago de un humano. Es sorprendentemente resistente." #: lang/json/COMESTIBLE_from_json.py msgid "large human stomach" @@ -34981,11 +36305,12 @@ msgstr[0] "estómago humano grande" msgstr[1] "estómagos humanos grandes" #. ~ Description for large human stomach +#. ~ Description for large demihuman stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "" "Es el estómago de una criatura humanoide grande. Es sorprendentemente " -"duradero." +"resistente." #: lang/json/COMESTIBLE_from_json.py msgid "chunk of human fat" @@ -34995,6 +36320,7 @@ msgstr[1] "pedazos de grasa humana" #. ~ Description for {'str': 'chunk of human fat', 'str_pl': 'chunks of human #. fat'} +#. ~ Description for chunk of demihuman fat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly harvested from a human body." msgstr "Está recién carneada de un cadáver humano." @@ -35301,7 +36627,7 @@ msgstr[1] "estómagos" #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a woodland creature. It is surprisingly durable." msgstr "" -"Es el estómago de una criatura del bosque. Es sorprendentemente duradero." +"Es el estómago de una criatura del bosque. Es sorprendentemente resistente." #: lang/json/COMESTIBLE_from_json.py msgid "large stomach" @@ -35314,7 +36640,7 @@ msgstr[1] "estómagos grandes" msgid "The stomach of a large woodland creature. It is surprisingly durable." msgstr "" "Es el estómago de una criatura grande del bosque. Es sorprendentemente " -"duradero." +"resistente." #: lang/json/COMESTIBLE_from_json.py msgid "meat jerky" @@ -35330,6 +36656,14 @@ msgid_plural "jerk jerky" msgstr[0] "charqui de chabón" msgstr[1] "charqui de chabón" +#. ~ Conditional name for {'str_sp': 'meat jerky'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal jerky" +msgid_plural "talking animal jerky" +msgstr[0] "charqui de animal parlante" +msgstr[1] "charqui de animal parlante" + #. ~ Conditional name for {'str_sp': 'meat jerky'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -35373,6 +36707,13 @@ msgid_plural "smoked sucker" msgstr[0] "cabrón ahumado" msgstr[1] "cabrón ahumado" +#. ~ Conditional name for smoked meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked Narnian" +msgid_plural "smoked Narnian" +msgstr[0] "narniano ahumado" +msgstr[1] "narniano ahumado" + #. ~ Conditional name for smoked meat when COMPONENT_ID matches mutant #. ~ Conditional name for canned meat when COMPONENT_ID matches mutant #. ~ Conditional name for salted meat slice when COMPONENT_ID matches mutant @@ -35886,6 +37227,22 @@ msgstr "" "Es el pellejo crudo de un humano cuidadosamente doblado. Lo podés curar para" " almacenarlo y para curtirlo, o te lo podés comer si estás muy desesperado." +#: lang/json/COMESTIBLE_from_json.py +msgid "raw demihuman skin" +msgid_plural "raw demihuman skins" +msgstr[0] "pellejo semihumano crudo" +msgstr[1] "pellejos semihumanos crudos" + +#. ~ Description for raw demihuman skin +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A carefully folded raw skin harvested from a demihuman. You can cure it for" +" storage and tanning, or eat it if you're desperate enough." +msgstr "" +"Es el pellejo crudo de un semihumano cuidadosamente doblado. Lo podés curar " +"para almacenarlo y para curtirlo, o te lo podés comer si estás muy " +"desesperado." + #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" msgid_plural "raw pelts" @@ -36053,6 +37410,284 @@ msgstr "" "traslúcida, y si la mirás a contraluz podés ver unas venas azules brillantes" " que la recorren." +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman stomach" +msgid_plural "demihuman stomachs" +msgstr[0] "estómago semihumano" +msgstr[1] "estómagos semihumanos" + +#. ~ Description for demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "The stomach of an intelligent demihuman. It is surprisingly durable." +msgstr "" +"Es el estómago de un semihumano inteligente. Es sorprendentemente " +"resistente." + +#: lang/json/COMESTIBLE_from_json.py +msgid "large demihuman stomach" +msgid_plural "large demihuman stomachs" +msgstr[0] "estómago semihumano grande" +msgstr[1] "estómagos semihumanos grandes" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chunk of demihuman fat" +msgid_plural "chunk of demihuman fats" +msgstr[0] "pedazo de grasa semihumana" +msgstr[1] "pedazos de grasa semihumana" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman tallow" +msgid_plural "demihuman tallows" +msgstr[0] "sebo semihumano" +msgstr[1] "sebos semihumanos" + +#. ~ Description for demihuman tallow +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of cleaned and rendered demihuman fat. It will remain " +"edible for a very long time, and can be used as an ingredient in many foods " +"and projects." +msgstr "" +"Es un trozo de grasa semihumana derretida, suave, blanco y limpio. Tarda " +"mucho en echarse a perder, y puede ser usado como ingrediente en muchas " +"comidas y proyectos." + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman lard" +msgid_plural "demihuman lards" +msgstr[0] "manteca semihumana" +msgstr[1] "mantecas semihumanas" + +#. ~ Description for demihuman lard +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of dry-rendered demihuman fat. It will remain edible " +"for a very long time, and can be used as an ingredient in many foods and " +"projects." +msgstr "" +"Es un trozo de grasa semihumana derretida en seco, suave y blanco. Tarda " +"mucho en echarse a perder, y puede ser usado como ingrediente en muchas " +"comidas y proyectos." + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman flesh" +msgid_plural "demihuman fleshs" +msgstr[0] "carne de semihumano" +msgstr[1] "carnes de semihumano" + +#. ~ Description for demihuman flesh +#: lang/json/COMESTIBLE_from_json.py +msgid "Freshly butchered from a demihuman body." +msgstr "Recién carneada de un cadáver semihumano." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked mongrel" +msgid_plural "cooked mongrels" +msgstr[0] "mongrel cocinado" +msgstr[1] "mongreles cocinados" + +#. ~ Description for cooked mongrel +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A freshly cooked slice of something close to being a real person. Tastes " +"like long pig." +msgstr "" +"Es una porción recién cocinada de algo cerca de ser una persona real. Tiene " +"gusto a chancho largo." + +#: lang/json/COMESTIBLE_from_json.py +msgid "boiled demihuman stomach" +msgid_plural "boiled demihuman stomachs" +msgstr[0] "estómago semihumano hervido" +msgstr[1] "estómagos semihumanos hervidos" + +#. ~ Description for boiled demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" +"Es un estómago hervido de un semihumano, nada más que eso. Parece muchas " +"cosas excepto apetitoso." + +#. ~ Description for {'str': 'boiled demihuman stomach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A small boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" +"Es un estómago chico hervido de un semihumano, nada más que eso. Parece " +"muchas cosas excepto apetitoso." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cereal" +msgid_plural "cereal" +msgstr[0] "cereal" +msgstr[1] "cereal" + +#. ~ Description for {'str_sp': 'cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A generic box of cereal, you shouldn't see this." +msgstr "Es una caja genérica de cereal, no deberías ver esto." + +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace cereal" +msgid_plural "FoodPlace cereal" +msgstr[0] "cereal FoodPlace" +msgstr[1] "cereal FoodPlace" + +#. ~ Description for {'str_sp': 'FoodPlace cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A generic box of FoodPlace brand sugary cereal, you shouldn't see this." +msgstr "" +"Es una caja genérica de cereal azucarado FoodPlace, no deberías ver esto." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Snicker-Snacks cereal" +msgid_plural "Snicker-Snacks cereal" +msgstr[0] "cereal Snicker-Snacks" +msgstr[1] "cereal Snicker-Snacks" + +#. ~ Description for {'str_sp': 'Snicker-Snacks cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Snicker-Snack cereal. Each tiny \"Snicker-Snack\" is shaped" +" like human food!" +msgstr "" +"Es cereal Snicker-Snack de la marca FoodPlace. ¡Cada pequeño \"Snicker-" +"Snack\" tiene la forma de comida para humano!" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Carpenter Crunch cereal" +msgid_plural "Carpenter Crunch cereal" +msgstr[0] "cereal Carpintero Crunch" +msgstr[1] "cereal Carpintero Crunch" + +#. ~ Description for {'str_sp': 'Carpenter Crunch cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is FoodPlace brand \"Carpenter Crunch\" cereal with the iconic " +"\"Breakfast Beaver\" mascot on the box. It tastes kind of like nails." +msgstr "" +"Es cereal \"Carpintero Crunch\" de la marca Foodplace, con la icónica " +"mascota \"Castor del Desayuno\" en la caja. Tiene un gusto similar a los " +"clavos." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Brantastic cereal" +msgid_plural "Brantastic cereal" +msgstr[0] "cereal Brantastic" +msgstr[1] "cereal Brantastic" + +#. ~ Description for {'str_sp': 'Brantastic cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Brantastic\" cereal. An essential part of a complete Bran" +" breakfast." +msgstr "" +"Es cereal \"Brantastic\" de la marca FoodPlace. Una parte esencial del " +"desayuno Bran completo." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Sugar Chomps cereal" +msgid_plural "Sugar Chomps cereal" +msgstr[0] "cereal Sugar Chomps" +msgstr[1] "cereal Sugar Chomps" + +#. ~ Description for {'str_sp': 'Sugar Chomps cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Sugar Chomps\" cereal. \"Chocolate Frosted Crunchy Sugar " +"Chomps: 8 essential vitamins packed into that rich, fudgy taste!\"" +msgstr "" +"Es cereal \"Sugar Chomps\" de la marca FoodPlace. \"Sugar Chomps Crocantes " +"con Chocolate: ¡8 vitaminas esenciales juntas en un rico sabor a caramelo!\"" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Honey Pellet cereal" +msgid_plural "Honey Pellet cereal" +msgstr[0] "cereal Bolitas de Miel" +msgstr[1] "cereal Bolitas de Miel" + +#. ~ Description for {'str_sp': 'Honey Pellet cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Amorphous Honey Pellet\" cereal. The box promises " +"\"Inconceivable sustenance in tiny morsels of yellow honey.\"" +msgstr "" +"Es cereal \"Bolitas Amorfas de Miel\" de la marca FoodPlace. La caja promete" +" \"Inconcebible sustento en pequeños bocados amarillos de miel\"." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Fructose Flakes cereal" +msgid_plural "Fructose Flakes" +msgstr[0] "cereal Copos de Fructosa" +msgstr[1] "cereal Copos de Fructosa" + +#. ~ Description for {'str': 'Fructose Flakes cereal', 'str_pl': 'Fructose +#. Flakes'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Fructose Flakes cereal. Fortified with energy enriched " +"FoodSyrup™ that supports life most efficiently." +msgstr "" +"Es cereal \"Copos de Fructosa\" de la marca FoodPlace. Fortificado con " +"energía enriquecida con FoodSyrup™ que sostiene la bien bastante " +"eficientemente." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodios cereal" +msgid_plural "Foodios cereal" +msgstr[0] "cereal Foodios" +msgstr[1] "cereal Foodios" + +#. ~ Description for {'str_sp': 'Foodios cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace brand \"Foodios\" cereal. Foodios™ are Foodalicious™!" +msgstr "Es cereal \"Foodios\" de la marca FoodPlace. ¡Foodios™ es Foodelicioso™!" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sugary cereal" +msgid_plural "sugary cereals" +msgstr[0] "cereal azucarado" +msgstr[1] "cereales azucarados" + +#. ~ Description for sugary cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sugary breakfast cereal with marshmallows. It takes you back to your " +"childhood." +msgstr "" +"Son cereales azucarados para el desayuno, con malvaviscos. Te hace volver a " +"tu infancia." + +#: lang/json/COMESTIBLE_from_json.py +msgid "wheat cereal" +msgid_plural "wheat cereal" +msgstr[0] "cereal de trigo" +msgstr[1] "cereal de trigo" + +#. ~ Description for {'str_sp': 'wheat cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " +"your heart." +msgstr "" +"Son cereales de trigo integral. Están sorprendentemente buenos, y según " +"dice, es bueno para tu corazón." + +#: lang/json/COMESTIBLE_from_json.py +msgid "corn cereal" +msgid_plural "corn cereals" +msgstr[0] "cereal de maíz" +msgstr[1] "cereales de maíz" + +#. ~ Description for corn cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "Plain cornflake cereal. They're not that good, but it beats nothing." +msgstr "Son copos de maíz. No son muy buenos, pero es mejor que nada." + #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "raw milk" msgid_plural "raw milk" @@ -36210,7 +37845,7 @@ msgid "" "Hard, dry cheese made to last, unlike modern processed cheese. Will make " "you thirsty though." msgstr "" -"Queso duro y seco hecho para ser duradero, a diferencia de los modernos " +"Es queso duro y seco hecho para ser duradero, a diferencia de los modernos " "quesos procesados. Te va a dar bastante sed, eso sí." #: lang/json/COMESTIBLE_from_json.py @@ -36500,9 +38135,10 @@ msgstr[1] "jugo de arándanos" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." msgstr "" -"Hecho con verdaderos arándanos de Massachusetts. Delicioso y nutritivo." +"Hecho con verdaderos arándanos de Massachusetts. Bastante agrio pero " +"nutritivo." #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -36813,9 +38449,9 @@ msgid "" " you want something that tastes like fruit, but still don't care about your " "health." msgstr "" -"Una bebida fabricada en serie, con gusto a uva, de origen artificial. Está " -"buena para cuando querés tomar algo que tenga gusto a fruta, pero te sigue " -"importando poco tu salud." +"Es una bebida fabricada en serie, con gusto a uva, de origen artificial. " +"Está buena para cuando querés tomar algo que tenga gusto a fruta, pero te " +"sigue importando poco tu salud." #: lang/json/COMESTIBLE_from_json.py msgid "root beer" @@ -36969,6 +38605,86 @@ msgstr "" "Agua mineral extravagante, tan extravagante que tenerla en la mano te hace " "sentir extravagante." +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "café endulzado" +msgstr[1] "cafés endulzados" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" +"El ritual mañanero del mundo preapocalíptico, que es creado desde los granos" +" de café con un proceso complejo de quitado de semillas, tostado, molido y " +"destilado. El café es sustancialmente más rico en cafeína que su rival, el " +"té. Con edulcorante agregado para mejorar su sabor." + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "té endulzado" +msgstr[1] "tés endulzados" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "" +"Es la bebida del caballero, hecha aplicando agua caliente a hojas de la " +"planta del té, Camellia sinensis. Con edulcorante agregado para mejorar su " +"sabor." + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "té con leche endulzado" +msgstr[1] "tés con leche endulzados" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "Es té caliente con leche fría y edulcorante agregado." + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "sucedáneo de café endulzado" +msgstr[1] "sucedáneos de café endulzados" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" +"Es un no-café casero, creado del árbol cafetero de Kentucky, ¡cómo lo hace " +"la tribu Meskwaki! No contiene nada de cafeína, y es bastante amargo, pero " +"zafa. La dulzura agregada neutraliza un poco su amargura." + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "café con leche endulzado" +msgstr[1] "cafés con leche endulzados" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "" +"Es una mezcla de café y leche. Ha sido la bebida estatal de Rhode Island " +"desde 1993. Tiene edulcorante agregado para aquellos que lo prefieren más " +"dulce." + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -37047,32 +38763,6 @@ msgstr "" "Miel, eso que hacen las abejas. Esta es \"miel de bosque\", la forma líquida" " de la miel. Esta miel no se echa a perder y es buena para la digestión." -#: lang/json/COMESTIBLE_from_json.py -msgid "peanut butter" -msgid_plural "peanut butters" -msgstr[0] "mantequilla de maní" -msgstr[1] "mantequilla de maní" - -#. ~ Description for peanut butter -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A brown goo that tastes very little like its namesake. It's not bad, but " -"it'll stick to the roof of your mouth." -msgstr "" -"Una crema marrón que no tiene gusto a lo que su nombre indica. No está mal, " -"pero se te va a pegar en el paladar." - -#: lang/json/COMESTIBLE_from_json.py -msgid "imitation peanutbutter" -msgid_plural "imitation peanutbutters" -msgstr[0] "imitación de mantequilla de maní" -msgstr[1] "imitación de mantequilla de maní" - -#. ~ Description for imitation peanutbutter -#: lang/json/COMESTIBLE_from_json.py -msgid "A thick, nutty brown paste." -msgstr "Es una pasta espesa y marrón, con gusto a nuez." - #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" msgid_plural "vinegar" @@ -37169,6 +38859,21 @@ msgid_plural "chicken eggs" msgstr[0] "huevo de gallina" msgstr[1] "huevos de gallina" +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" +msgstr[0] "huevo sin fertilizar de pájaro" +msgstr[1] "huevos sin fertilizar de pájaro" + +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "" +"Es un nutritivo huevo puesto por un pájaro. Este no está fertilizado y " +"probablemente sea de una granja." + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" @@ -37662,6 +39367,21 @@ msgstr "" "Esta empapada masa de fruta en conserva, ha sido hervida y enlatada en una " "vida anterior. Insulsa, floja y decolorándose." +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "pan de calabaza" +msgstr[1] "panes de calabaza" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "" +"Es un pan de banquetes otoñales de color dorado, y puede estar en forma de " +"bollo o cortado en rebanadas." + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -38624,8 +40344,8 @@ msgid "" "Roasted coffee beans coated with dark chocolate, natural source of " "concentrated caffeine." msgstr "" -"Granos de café tostados y cubiertos con chocolate, una fuente natural de " -"cafeína concentrada." +"Son granos de café tostados y cubiertos con chocolate, una fuente natural de" +" cafeína concentrada." #: lang/json/COMESTIBLE_from_json.py msgid "fast-food French fries" @@ -38674,8 +40394,8 @@ msgid "" "A handful of candy wafers, in assorted flavors: orange, lemon, lime, clove, " "chocolate, wintergreen, cinnamon, and licorice. Yum!" msgstr "" -"Un puñado de galletas de caramelo, de varios sabores: naranja, limón, lima, " -"clavo de olor, chocolate, gaulteria, canela y regaliz. ¡Qué rico!" +"Es un puñado de galletas de caramelo, de varios sabores: naranja, limón, " +"lima, clavo de olor, chocolate, gaulteria, canela y regaliz. ¡Qué rico!" #: lang/json/COMESTIBLE_from_json.py msgid "candy cigarette" @@ -38689,8 +40409,8 @@ msgid "" "Candy sticks. Slightly more healthy than tobacco cigarettes, but with no " "possibility of addiction." msgstr "" -"Palitos de caramelo. Un poco más saludables que los cigarrillos de tabaco, " -"pero no tenés chance de volverte adicto a esto." +"Son palitos de caramelo. Un poco más saludables que los cigarrillos de " +"tabaco, pero no tenés chance de volverte adicto a esto." #: lang/json/COMESTIBLE_from_json.py msgid "caramel" @@ -38701,39 +40421,13 @@ msgstr[1] "caramelo" #. ~ Description for {'str_sp': 'caramel'} #: lang/json/COMESTIBLE_from_json.py msgid "Some caramel. Still bad for your health." -msgstr "Un poco de caramelo. Sigue siendo malo para tu salud." +msgstr "Es un poco de caramelo. Sigue siendo malo para tu salud." #. ~ Description for {'str_sp': 'potato chips'} #: lang/json/COMESTIBLE_from_json.py msgid "Betcha can't eat just one." msgstr "A que no te podés comer una sola." -#: lang/json/COMESTIBLE_from_json.py -msgid "sugary cereal" -msgid_plural "sugary cereals" -msgstr[0] "cereal azucarado" -msgstr[1] "cereales azucarados" - -#. ~ Description for sugary cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sugary breakfast cereal with marshmallows. It takes you back to your " -"childhood." -msgstr "" -"Son cereales azucarados para el desayuno, con malvaviscos. Te hace volver a " -"tu infancia." - -#: lang/json/COMESTIBLE_from_json.py -msgid "corn cereal" -msgid_plural "corn cereals" -msgstr[0] "cereal de maíz" -msgstr[1] "cereales de maíz" - -#. ~ Description for corn cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "Son copos de maíz. No son muy buenos, pero es mejor que nada." - #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" @@ -38778,6 +40472,14 @@ msgid_plural "niño nachos" msgstr[0] "nachos niño" msgstr[1] "nachos niño" +#. ~ Conditional name for {'str_sp': 'meat nachos'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos" +msgid_plural "nibelung nachos" +msgstr[0] "nachos nibelungos" +msgstr[1] "nachos nibelungos" + #. ~ Conditional name for {'str_sp': 'meat nachos'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -38809,6 +40511,14 @@ msgid_plural "niño nachos with cheese" msgstr[0] "nachos niño con queso" msgstr[1] "nachos niño con queso" +#. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos with cheese" +msgid_plural "nibelung nachos with cheese" +msgstr[0] "nachos nibelungos con queso" +msgstr[1] "nachos nibelungos con queso" + #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when #. COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -38834,7 +40544,7 @@ msgstr[1] "palitos de cerdo" #. ~ Description for pork stick #: lang/json/COMESTIBLE_from_json.py msgid "Salty dried pork. Tastes good, but it will make you thirsty." -msgstr "Cerdo seco y salado. Tiene buen sabor, pero comerlo te da sed." +msgstr "Es cerdo seco y salado. Tiene buen sabor, pero comerlo te da sed." #: lang/json/COMESTIBLE_from_json.py msgid "microwave burrito" @@ -38961,8 +40671,8 @@ msgid "" "Fluffy and delicious pancakes with real maple syrup, with delicious " "chocolate baked right in." msgstr "" -"Panqueques suaves y deliciosos con verdadero jarabe de arce, y delicioso " -"chocolate." +"Son panqueques suaves y deliciosos con verdadero jarabe de arce, y delicioso" +" chocolate." #: lang/json/COMESTIBLE_from_json.py msgid "chocolate waffle" @@ -38976,8 +40686,8 @@ msgid "" "Crunchy and delicious waffles with real maple syrup, with delicious " "chocolate baked right in." msgstr "" -"Wafles deliciosos y crujientes con verdadero jarabe de arce, y delicioso " -"chocolate." +"Son wafles deliciosos y crujientes con verdadero jarabe de arce, y delicioso" +" chocolate." #: lang/json/COMESTIBLE_from_json.py msgid "cheese spread" @@ -39084,6 +40794,13 @@ msgid_plural "raw Mannwursts" msgstr[0] "Juannwurst cruda" msgstr[1] "Juannwurst crudas" +#. ~ Conditional name for raw sausage when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "raw killbasa" +msgid_plural "raw killbasas" +msgstr[0] "killbasa cruda" +msgstr[1] "killbasas crudas" + #. ~ Conditional name for raw sausage when COMPONENT_ID matches mutant #. ~ Conditional name for smoked sausage when COMPONENT_ID matches mutant #. ~ Conditional name for cooked sausage when COMPONENT_ID matches mutant @@ -39114,6 +40831,14 @@ msgid_plural "smoked Mannwursts" msgstr[0] "Juannwurst ahumada" msgstr[1] "Juannwurst ahumadas" +#. ~ Conditional name for smoked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked killbasa" +msgid_plural "smoked killbasas" +msgstr[0] "killbasa ahumada" +msgstr[1] "killbasas ahumadas" + #. ~ Description for smoked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." @@ -39134,6 +40859,14 @@ msgid_plural "cooked Mannwursts" msgstr[0] "Juannwurst cocinada" msgstr[1] "Juannwurst cocinadas" +#. ~ Conditional name for cooked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked killbasa" +msgid_plural "cooked killbasas" +msgstr[0] "killbasa cocinada" +msgstr[1] "killbasas cocinadas" + #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." @@ -39154,8 +40887,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bratwurst" msgid_plural "bratwursts" -msgstr[0] "bratwurst" -msgstr[1] "bratwursts" +msgstr[0] "pibewurst" +msgstr[1] "pibewursts" #. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py @@ -39164,6 +40897,14 @@ msgid_plural "Mannbrats" msgstr[0] "Juannbrat" msgstr[1] "Juannbrats" +#. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "frankenfurter" +msgid_plural "frankenfurters" +msgstr[0] "salchicha frankenfurter" +msgstr[1] "salchichas frankenfurters" + #. ~ Conditional name for {'str': 'bratwurst'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -39209,7 +40950,7 @@ msgid "" "A thick slab of salty cured bacon. Shelf stable, precooked and ready-to-" "eat, it tastes better when reheated." msgstr "" -"Una feta de panceta salada. No necesita refrigeración, está precocido y " +"Es una feta de panceta salada. No necesita refrigeración, está precocido y " "listo para comer. Tiene mejor gusto cuando es recalentado." #: lang/json/COMESTIBLE_from_json.py @@ -39268,8 +41009,8 @@ msgstr[1] "lomitos glaseados" #, python-format msgid "grisly %s" msgid_plural "grisly %s" -msgstr[0] "horripilante %s" -msgstr[1] "horripilantes %s" +msgstr[0] "%s horripilante" +msgstr[1] "%s horripilantes" #. ~ Description for {'str_sp': 'glazed tenderloins'} #: lang/json/COMESTIBLE_from_json.py @@ -39293,16 +41034,24 @@ msgstr[1] "currywursts" #, python-format msgid "cheapskate %s" msgid_plural "cheapskate %s" -msgstr[0] "miserable %s" -msgstr[1] "miserables %s" +msgstr[0] "%s miserable" +msgstr[1] "%s miserables" + +#. ~ Conditional name for currywurst when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "confusing %s" +msgid_plural "confusing %s" +msgstr[0] "%s confuso" +msgstr[1] "%s confusos" #. ~ Conditional name for currywurst when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format msgid "bloodcurdling %s" msgid_plural "bloodcurdling %s" -msgstr[0] "espeluznante %s" -msgstr[1] "espeluznantes %s" +msgstr[0] "%s espeluznante" +msgstr[1] "%s espeluznantes" #. ~ Description for currywurst #: lang/json/COMESTIBLE_from_json.py @@ -39324,16 +41073,25 @@ msgstr[1] "áspics" #, python-format msgid "abomination %s" msgid_plural "abomination %s" -msgstr[0] "abominación %s" -msgstr[1] "abominaciones %s" +msgstr[0] " %s abominante" +msgstr[1] "%s abominantes " #. ~ Conditional name for {'str': 'aspic'} when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py #, python-format msgid "amoral %s" msgid_plural "amoral %s" -msgstr[0] "amoral %s" -msgstr[1] "amorales %s" +msgstr[0] "%s amoral" +msgstr[1] "%s amorales" + +#. ~ Conditional name for {'str': 'aspic'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orwell's %s" +msgid_plural "Orwell's %s" +msgstr[0] "%s de Orwell" +msgstr[1] "%s de Orwell" #. ~ Description for {'str': 'aspic'} #: lang/json/COMESTIBLE_from_json.py @@ -39421,8 +41179,8 @@ msgstr[1] "fiambres" #, python-format msgid "loathsome %s" msgid_plural "loathsome %s" -msgstr[0] "asqueroso %s" -msgstr[1] "asquerosos %s" +msgstr[0] "%s asqueroso" +msgstr[1] "%s asquerosos" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py @@ -39444,8 +41202,17 @@ msgstr[1] "bologna" #, python-format msgid "brat %s" msgid_plural "brat %s" -msgstr[0] "pibe %s" -msgstr[1] "pibes %s" +msgstr[0] "%s pibe" +msgstr[1] "%s pibes" + +#. ~ Conditional name for {'str_sp': 'bologna'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Tumnis %s" +msgid_plural "Tumnis %s" +msgstr[0] "%s Tumnis" +msgstr[1] "%s Tumnis" #. ~ Conditional name for {'str_sp': 'bologna'} when COMPONENT_ID matches #. mutant @@ -39453,8 +41220,8 @@ msgstr[1] "pibes %s" #, python-format msgid "bleak %s" msgid_plural "bleak %s" -msgstr[0] "lúgubre %s" -msgstr[1] "lúgubres %s" +msgstr[0] "%s lúgubre" +msgstr[1] "%s lúgubres" #. ~ Description for {'str_sp': 'bologna'} #: lang/json/COMESTIBLE_from_json.py @@ -39542,14 +41309,22 @@ msgid_plural "Mannwurst gravies" msgstr[0] "salsa espesa de Juannwurst" msgstr[1] "salsas espesas de Juannwurst" +#. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage +#. gravies'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "killbasa gravy" +msgid_plural "killbasa gravies" +msgstr[0] "salsa espesa de kilibasa" +msgstr[1] "salsas espesas de kilibasa" + #. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage #. gravies'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format msgid "ghastly %s" msgid_plural "ghastly %s" -msgstr[0] "horroroso %s" -msgstr[1] "horrorosos %s" +msgstr[0] "%s horrorosos" +msgstr[1] "%s horrorosos" #. ~ Description for {'str': 'sausage gravy', 'str_pl': 'sausage gravies'} #: lang/json/COMESTIBLE_from_json.py @@ -39571,8 +41346,17 @@ msgstr[1] "pemmican" #, python-format msgid "prepper %s" msgid_plural "prepper %s" -msgstr[0] "survivalista %s" -msgstr[1] "survivalistas %s" +msgstr[0] "%s sobreviviente" +msgstr[1] "%s sobrevivientes" + +#. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orley %s" +msgid_plural "Orley %s" +msgstr[0] "%s Orley " +msgstr[1] "%s Orley " #. ~ Conditional name for {'str_sp': 'pemmican'} when COMPONENT_ID matches #. mutant @@ -39580,8 +41364,8 @@ msgstr[1] "survivalistas %s" #, python-format msgid "pernicious %s" msgid_plural "pernicious %s" -msgstr[0] "pernicioso %s" -msgstr[1] "perniciosos %s" +msgstr[0] " %s pernicioso" +msgstr[1] "%s perniciosos" #. ~ Description for {'str_sp': 'pemmican'} #: lang/json/COMESTIBLE_from_json.py @@ -39590,8 +41374,8 @@ msgid "" "food. Composed of meat, tallow, and edible plants, it provides excellent " "nutrition in an easy to carry form." msgstr "" -"Una mezcla concentrada de grasa y proteína, considerada una comida nutritiva" -" que provee mucha energía. Está compuesta de carne, sebo y plantas " +"Es una mezcla concentrada de grasa y proteína, considerada una comida " +"nutritiva que provee mucha energía. Está compuesta de carne, sebo y plantas " "comestibles, provee excelente nutrición en un tamaño pequeño." #: lang/json/COMESTIBLE_from_json.py @@ -39603,9 +41387,17 @@ msgstr[1] "refuerzos para hamburguesas" #. ~ Conditional name for hamburger helper when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgid_plural "hobo helpers" -msgstr[0] "refuerzo para vagabundo" -msgstr[1] "refuerzos para vagabundo" +msgid_plural "hobo helper" +msgstr[0] "refuerzo para indigente" +msgstr[1] "refuerzo para indigente" + +#. ~ Conditional name for hamburger helper when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "halfling helper" +msgid_plural "halfling helper" +msgstr[0] "refuerzo para halfling" +msgstr[1] "refuerzo para halfling" #. ~ Conditional name for hamburger helper when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -39651,6 +41443,14 @@ msgid_plural "chilis con cabron" msgstr[0] "chili con cabrón" msgstr[1] "chilis con cabrón" +#. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con +#. carne'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "chili con Sindar" +msgid_plural "chilis con Sindar" +msgstr[0] "chili con Sindar" +msgstr[1] "chilis con Sindar" + #. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con #. carne'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -39699,7 +41499,7 @@ msgstr[1] "latas de salmón" #. ~ Description for {'str_sp': 'canned salmon'} #: lang/json/COMESTIBLE_from_json.py msgid "Bright pink fish-paste in a can!" -msgstr "¡Una pasta de pescado rosa brillante en lata!" +msgstr "¡Es una pasta de pescado rosa brillante en lata!" #: lang/json/COMESTIBLE_from_json.py msgid "canned chicken" @@ -39710,7 +41510,7 @@ msgstr[1] "pollos enlatados" #. ~ Description for canned chicken #: lang/json/COMESTIBLE_from_json.py msgid "Bright white chicken-paste." -msgstr "Una pasta de pollo blanca y brillante." +msgstr "Es una pasta de pollo blanca y brillante." #: lang/json/COMESTIBLE_from_json.py msgid "pickled herring" @@ -39834,9 +41634,16 @@ msgstr[1] "tartas de carne" #. ~ Conditional name for meat pie when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgid_plural "prick pies" +msgid_plural "prick pie" msgstr[0] "tarta de boludo" -msgstr[1] "tartas de boludo" +msgstr[1] "tarta de boludo" + +#. ~ Conditional name for meat pie when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal pie" +msgid_plural "talking animal pie" +msgstr[0] "tarta de animal parlante" +msgstr[1] "tarta de animal parlante" #. ~ Conditional name for meat pie when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -39860,9 +41667,16 @@ msgstr[1] "pizzas de salame" #. ~ Conditional name for meat pizza when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgid_plural "poser pizzas" +msgid_plural "poser pizza" msgstr[0] "pizza de impostor" -msgstr[1] "pizzas de impostor" +msgstr[1] "pizza de impostor" + +#. ~ Conditional name for meat pizza when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "protesting pizza" +msgid_plural "protesting pizza" +msgstr[0] "pizza de protesta" +msgstr[1] "pizza de protesta" #. ~ Conditional name for meat pizza when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -39924,9 +41738,16 @@ msgstr[1] "carnes enlatadas" #. ~ Conditional name for canned meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" -msgid_plural "soylent slices" +msgid_plural "soylent slice" msgstr[0] "feta de soylent" -msgstr[1] "fetas de soylent" +msgstr[1] "feta de soylent" + +#. ~ Conditional name for canned meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient slice" +msgid_plural "sapient slice" +msgstr[0] "feta de sapiente" +msgstr[1] "feta de sapiente" #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py @@ -39946,9 +41767,17 @@ msgstr[1] "fetas de carne saladas" #. ~ Conditional name for salted meat slice when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slice" -msgid_plural "salted simpleton slices" -msgstr[0] "feta de papanatas salada" -msgstr[1] "fetas de papanatas salada" +msgid_plural "salted simpleton slice" +msgstr[0] "feta salada de papanatas" +msgstr[1] "feta salada de papanatas" + +#. ~ Conditional name for salted meat slice when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "salted sapient slice" +msgid_plural "salted sapient slice" +msgstr[0] "feta salada de sapiente" +msgstr[1] "feta salada de sapiente" #. ~ Description for salted meat slice #: lang/json/COMESTIBLE_from_json.py @@ -39967,10 +41796,18 @@ msgstr[1] "espagueti a la boloñesa" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" -msgid_plural "scoundrel spaghettis" +msgid_plural "scoundrel spaghetti" msgstr[0] "espagueti a la sinvergüenza" msgstr[1] "espagueti a la sinvergüenza" +#. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "speaking spaghetti" +msgid_plural "speaking spaghetti" +msgstr[0] "espagueti a la parlante" +msgstr[1] "espagueti a la parlante" + #. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when COMPONENT_ID #. matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -39999,6 +41836,14 @@ msgid_plural "Luigi %s" msgstr[0] "Luigi %s" msgstr[1] "Luigi %s" +#. ~ Conditional name for lasagne when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Lab %s" +msgid_plural "Lab %s" +msgstr[0] "%s de laboratorio" +msgstr[1] "%s de laboratorio" + #. ~ Conditional name for lasagne when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -40041,6 +41886,15 @@ msgid_plural "chump %s" msgstr[0] "tonto %s" msgstr[1] "tontos %s" +#. ~ Conditional name for cheeseburger when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "elf %s" +msgid_plural "elf %s" +msgstr[0] "%s élfico" +msgstr[1] "%s élficos" + #. ~ Conditional name for cheeseburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -40067,9 +41921,16 @@ msgstr[1] "hamburguesas" #. ~ Conditional name for hamburger when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgid_plural "bobburgers" +msgid_plural "bobburger" msgstr[0] "juanburguesa" -msgstr[1] "juanburguesas" +msgstr[1] "juanburguesa" + +#. ~ Conditional name for hamburger when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "Moreauburger" +msgid_plural "Moreauburger" +msgstr[0] "Moreauburguesa" +msgstr[1] "Moreauburguesa" #. ~ Conditional name for hamburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -40097,6 +41958,13 @@ msgid_plural "manwiches" msgstr[0] "mánguche" msgstr[1] "mánguches" +#. ~ Conditional name for sloppy joe when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "manfriendwich" +msgid_plural "manfriendwiches" +msgstr[0] "manfriendwich" +msgstr[1] "manfriendwiches" + #. ~ Conditional name for sloppy joe when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -40128,6 +41996,14 @@ msgid_plural "tio %s" msgstr[0] "tío %s" msgstr[1] "tíos %s" +#. ~ Conditional name for taco when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "talking %s" +msgid_plural "talking %s" +msgstr[0] "%s parlante" +msgstr[1] " %s parlantes" + #. ~ Conditional name for taco when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -40154,9 +42030,17 @@ msgstr[1] "carnes al escabeche" #. ~ Conditional name for pickled meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgid_plural "pickled punks" +msgid_plural "pickled punk" msgstr[0] "punk al escabeche" -msgstr[1] "punks al escabeche" +msgstr[1] "punk al escabeche" + +#. ~ Conditional name for pickled meat when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "pickled anthro" +msgid_plural "pickled anthro" +msgstr[0] "antro al escabeche" +msgstr[1] "antro al escabeche" #. ~ Description for pickled meat #: lang/json/COMESTIBLE_from_json.py @@ -40179,6 +42063,19 @@ msgid_plural "%s, human" msgstr[0] "%s, humano" msgstr[1] "%s, humanos" +#. ~ Conditional name for dehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for rehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for {'str': 'haggis', 'str_pl': 'haggises'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "%s, demihuman" +msgid_plural "%s, demihuman" +msgstr[0] "%s, semihumano" +msgstr[1] "%s, semihumano" + #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -40550,6 +42447,11 @@ msgid_plural "caffeine pills" msgstr[0] "pastilla de cafeína" msgstr[1] "pastillas de cafeína" +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "Te tomás una pastilla de cafeína." + #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -41144,10 +43046,12 @@ msgstr[1] "vacunas para la gripe" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." msgstr "" -"Una vacuna farmacéutica para la gripe, diseñada para vacunaciones en masa. " -"Todavía en su paquete original. Supuestamente, te hace inmune a la gripe." +"Es una vacuna farmacéutica para la gripe, diseñada para vacunaciones en " +"masa, todavía en su paquete original. Supuestamente, te hace inmune a la " +"gripe, para la temporada que fue diseñada." #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -41445,7 +43349,7 @@ msgid "" "forming, though adverse reactions are not uncommon. Its generic name is " "fluoxetine." msgstr "" -"Un antidepresivo común y popular. Te levanta el ánimo, y puede afectar " +"Es un antidepresivo común y popular. Te levanta el ánimo, y puede afectar " "profundamente la acción de otras drogas. Raramente puede crear hábito, pero " "sus reacciones adversas son bastante comunes. El nombre genérico es " "fluoxetina." @@ -41826,11 +43730,10 @@ msgstr "Te tomás un poco de antiácido." #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." +"urges." msgstr "" "Es un jarabe para la acidez, cremoso y rosa, que calma los estómagos " -"molestos y sofoca las ganas de vomitar; con una tapa a rosca que también " -"funciona como vasito de dosis." +"molestos y sofoca las ganas de vomitar." #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" @@ -41902,7 +43805,7 @@ msgstr[1] "MRE entrada" #. ~ Description for {'str': 'MRE entree'} #: lang/json/COMESTIBLE_from_json.py msgid "A generic MRE entree, you shouldn't see this." -msgstr "Es la entrada genérica de un MRE, no deberías ver esto." +msgstr "Es un plato de entrada MRE genérico, no deberías ver esto." #: lang/json/COMESTIBLE_from_json.py msgid "chili & beans entree" @@ -41916,7 +43819,7 @@ msgid "" "The chili & beans entree from an MRE. Sterilized using radiation, so it's " "safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de porotos con chili. Está esterilizado con " +"Es un plato principal MRE de porotos con chili. Está esterilizado con " "radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " "a poner feo." @@ -41932,9 +43835,9 @@ msgid "" "The BBQ beef entree from an MRE. Sterilized using radiation, so it's safe " "to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de parrillada de vaca. Está esterilizado con" -" radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó" -" a poner feo." +"Es un plato principal MRE de parrillada de vaca. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "chicken noodle entree" @@ -41948,7 +43851,7 @@ msgid "" "The chicken noodle entree from an MRE. Sterilized using radiation, so it's " "safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de pollo y fideos. Está esterilizado con " +"Es un plato principal MRE de pollo y fideos. Está esterilizado con " "radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " "a poner feo." @@ -41964,9 +43867,8 @@ msgid "" "The spaghetti entree from an MRE. Sterilized using radiation, so it's safe " "to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de espagueti. Está esterilizado con " -"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " -"a poner feo." +"Es un plato principal MRE de espagueti. Está esterilizado con radiación, así" +" que es seguro comerlo. Al ser expuesto al ambiente se empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "chicken chunks entree" @@ -41980,9 +43882,9 @@ msgid "" "The chicken chunks entree from an MRE. Sterilized using radiation, so it's " "safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de pollo trozado. Está esterilizado con " -"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " -"a poner feo." +"Es un plato principal MRE de pollo trozado. Está esterilizado con radiación," +" así que es seguro comerlo. Al ser expuesto al ambiente se empezó a poner " +"feo." #: lang/json/COMESTIBLE_from_json.py msgid "beef taco entree" @@ -41996,9 +43898,9 @@ msgid "" "The beef taco entree from an MRE. Sterilized using radiation, so it's safe " "to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de taco de carne. Está esterilizado con " -"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " -"a poner feo." +"Es un plato principal MRE de taco de carne. Está esterilizado con radiación," +" así que es seguro comerlo. Al ser expuesto al ambiente se empezó a poner " +"feo." #: lang/json/COMESTIBLE_from_json.py msgid "beef brisket entree" @@ -42012,7 +43914,7 @@ msgid "" "The beef brisket entree from an MRE. Sterilized using radiation, so it's " "safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de costilla de vaca. Está esterilizado con " +"Es un plato principal MRE de costilla de vaca. Está esterilizado con " "radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " "a poner feo." @@ -42028,9 +43930,9 @@ msgid "" "The meatballs & marinara entree from an MRE. Sterilized using radiation, so" " it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de albóndigas con marinera. Está " -"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " -"ambiente se empezó a poner feo." +"Es un plato principal MRE de albóndigas con marinera. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "beef stew entree" @@ -42044,7 +43946,7 @@ msgid "" "The beef stew entree from an MRE. Sterilized using radiation, so it's safe " "to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de estofado de carne. Está esterilizado con " +"Es un plato principal MRE de estofado de carne. Está esterilizado con " "radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " "a poner feo." @@ -42060,9 +43962,9 @@ msgid "" "The chili & macaroni entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de macarrones con chili. Está esterilizado " -"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " -"empezó a poner feo." +"Es un plato principal MRE de macarrones con chili. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "vegetarian taco entree" @@ -42076,7 +43978,7 @@ msgid "" "The vegetarian taco entree from an MRE. Sterilized using radiation, so it's" " safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de taco vegetariano. Está esterilizado con " +"Es un plato principal MRE de taco vegetariano. Está esterilizado con " "radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " "a poner feo." @@ -42092,10 +43994,43 @@ msgid "" "The macaroni & marinara entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de macarrones con marinera. Está " +"Es un plato principal MRE de macarrones con marinera. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." + +#: lang/json/COMESTIBLE_from_json.py +msgid "spinach fettuccine entree" +msgid_plural "spinach fettuccine entrees" +msgstr[0] "entrada de fetuchini con espinaca" +msgstr[1] "entradas de fetuchini con espinaca" + +#. ~ Description for spinach fettuccine entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The creamy spinach fettuccine entree from an MRE. Sterilized using " +"radiation, so it's safe to eat. Exposed to the atmosphere, it has started " +"to go bad." +msgstr "" +"Es un plato principal MRE de fetuchini con crema de espinaca. Está " "esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " "ambiente se empezó a poner feo." +#: lang/json/COMESTIBLE_from_json.py +msgid "ratatouille entree" +msgid_plural "ratatouille entrees" +msgstr[0] "entrada de ratatouille" +msgstr[1] "entradas de ratatouille" + +#. ~ Description for ratatouille entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The ratatouille entree from an MRE. Sterilized using radiation, so it's " +"safe to eat. Exposed to the atmosphere, it has started to go bad." +msgstr "" +"Es un plato principal MRE de ratatouille. Está esterilizado con radiación, " +"así que es seguro comerlo. Al ser expuesto al ambiente se empezó a poner " +"feo." + #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" msgid_plural "cheese tortellini entrees" @@ -42108,9 +44043,9 @@ msgid "" "The cheese tortellini entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de capelettini de queso. Está esterilizado " -"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " -"empezó a poner feo." +"Es un plato principal MRE de capelettini de queso. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "mushroom fettuccine entree" @@ -42124,9 +44059,9 @@ msgid "" "The mushroom fettuccine entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de fetuchini con champiñones. Está " -"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " -"ambiente se empezó a poner feo." +"Es un plato principal MRE de fetuchini con champiñones. Está esterilizado " +"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " +"empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "Mexican chicken stew entree" @@ -42140,9 +44075,9 @@ msgid "" "The Mexican chicken stew entree from an MRE. Sterilized using radiation, so" " it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de estofado mexicano de pollo. Está " -"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " -"ambiente se empezó a poner feo." +"Es un plato principal MRE de estofado mexicano de pollo. Está esterilizado " +"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " +"empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "chicken burrito bowl entree" @@ -42156,7 +44091,7 @@ msgid "" "The chicken burrito bowl entree from an MRE. Sterilized using radiation, so" " it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de burrito de pollo. Está esterilizado con " +"Es un plato principal MRE de burrito de pollo. Está esterilizado con " "radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " "a poner feo." @@ -42172,7 +44107,7 @@ msgid "" "The maple sausage entree from an MRE. Sterilized using radiation, so it's " "safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de salchicha de arce. Está esterilizado con " +"Es un plato principal MRE de salchicha de arce. Está esterilizado con " "radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " "a poner feo." @@ -42188,9 +44123,8 @@ msgid "" "The ravioli entree from an MRE. Sterilized using radiation, so it's safe to" " eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de ravioles. Está esterilizado con " -"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " -"a poner feo." +"Es un plato principal MRE de ravioles. Está esterilizado con radiación, así " +"que es seguro comerlo. Al ser expuesto al ambiente se empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "pepper jack beef entree" @@ -42204,9 +44138,9 @@ msgid "" "The pepper jack beef entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de carne con queso Jack. Está esterilizado " -"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " -"empezó a poner feo." +"Es un plato principal MRE de carne con queso Jack. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "hash browns & bacon entree" @@ -42220,9 +44154,9 @@ msgid "" "The hash browns & bacon entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de hash browns y panceta. Está esterilizado " -"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " -"empezó a poner feo." +"Es un plato principal MRE de hash browns y panceta. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "lemon pepper tuna entree" @@ -42236,9 +44170,9 @@ msgid "" "The lemon pepper tuna entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de atún con pimienta y limón. Está " -"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " -"ambiente se empezó a poner feo." +"Es un plato principal MRE de atún con pimienta y limón. Está esterilizado " +"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " +"empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "asian beef & vegetables entree" @@ -42252,9 +44186,9 @@ msgid "" "The asian beef & vegetables entree from an MRE. Sterilized using radiation," " so it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de carne de asia con verduras. Está " -"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " -"ambiente se empezó a poner feo." +"Es un plato principal MRE de carne de asia con verduras. Está esterilizado " +"con radiación, así que es seguro comerlo. Al ser expuesto al ambiente se " +"empezó a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "chicken pesto & pasta entree" @@ -42268,9 +44202,9 @@ msgid "" "The chicken pesto & pasta entree from an MRE. Sterilized using radiation, " "so it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de pasta con pesto y pollo. Está " -"esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " -"ambiente se empezó a poner feo." +"Es un plato principal MRE de pasta con pesto y pollo. Está esterilizado con " +"radiación, así que es seguro comerlo. Al ser expuesto al ambiente se empezó " +"a poner feo." #: lang/json/COMESTIBLE_from_json.py msgid "southwest beef & beans entree" @@ -42284,7 +44218,7 @@ msgid "" "The southwest beef & beans entree from an MRE. Sterilized using radiation, " "so it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"Es el plato principal de un MRE de carne del suroeste con porotos. Está " +"Es un plato principal MRE de carne del suroeste con porotos. Está " "esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " "ambiente se empezó a poner feo." @@ -42314,7 +44248,7 @@ msgstr[1] "hongos cocinados" #. ~ Description for cooked mushroom #: lang/json/COMESTIBLE_from_json.py msgid "A tasty cooked wild mushroom." -msgstr "Un sabroso hongo silvestre cocinado." +msgstr "Es un sabroso hongo silvestre cocinado." #: lang/json/COMESTIBLE_from_json.py msgid "morel mushroom" @@ -42340,7 +44274,7 @@ msgstr[1] "colmenillas cocinadas" #. ~ Description for cooked morel mushroom #: lang/json/COMESTIBLE_from_json.py msgid "A tasty cooked morel mushroom." -msgstr "Un sabroso hongo tipo colmenilla cocinado." +msgstr "Es un sabroso hongo tipo colmenilla cocinado." #: lang/json/COMESTIBLE_from_json.py msgid "fried morel mushroom" @@ -42390,7 +44324,7 @@ msgstr[1] "sabores abstractos de mutágeno" #: lang/json/COMESTIBLE_from_json.py msgid "A rare substance of uncertain origins. Causes you to mutate." msgstr "" -"Una sustancia extraña de origen desconocido. Si lo tomás, vas a mutar." +"Es una sustancia extraña de origen desconocido. Si lo tomás, vas a mutar." #: lang/json/COMESTIBLE_from_json.py msgid "abstract iv mutagen flavor" @@ -43257,6 +45191,43 @@ msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." msgstr "" "Es una deliciosa ambrosía de nuez hickory. Una bebida digna de los dioses." +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter" +msgid_plural "peanut butters" +msgstr[0] "mantequilla de maní" +msgstr[1] "mantequilla de maní" + +#. ~ Description for peanut butter +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A brown goo that tastes very little like its namesake. It's not bad, but " +"it'll stick to the roof of your mouth." +msgstr "" +"Una crema marrón que no tiene gusto a lo que su nombre indica. No está mal, " +"pero se te va a pegar en el paladar." + +#: lang/json/COMESTIBLE_from_json.py +msgid "imitation peanutbutter" +msgid_plural "imitation peanutbutters" +msgstr[0] "imitación de mantequilla de maní" +msgstr[1] "imitación de mantequilla de maní" + +#. ~ Description for imitation peanutbutter +#: lang/json/COMESTIBLE_from_json.py +msgid "A thick, nutty brown paste." +msgstr "Es una pasta espesa y marrón, con gusto a nuez." + +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter spread" +msgid_plural "peanut butter spreads" +msgstr[0] "mantequilla de maní untable" +msgstr[1] "mantequilla de maní untable" + +#. ~ Description for peanut butter spread +#: lang/json/COMESTIBLE_from_json.py +msgid "Processed peanut butter spread.." +msgstr "Es mantequilla de maní procesada para untar." + #: lang/json/COMESTIBLE_from_json.py msgid "acorns" msgid_plural "acorns" @@ -43548,15 +45519,15 @@ msgstr[1] "jaleas reales" #. ~ Description for {'str': 'royal jelly', 'str_pl': 'royal jellies'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A translucent hexagonal chunk of wax, filled with dense, milky jelly. " -"Though some hold it as a panacea, it doesn't have any medical benefit. " -"Still, it is delicious, and rich with the most beneficial substances the " +"A translucent hexagonal chunk of wax, filled with dense, milky, bitter and " +"acidic-tasting jelly. Though some hold it as a panacea, it doesn't have any" +" medical benefit. Still it is rich with the most beneficial substances the " "hive can produce." msgstr "" -"Es un pedazo hexagonal translúcido de cera, lleno con una jalea densa y " -"lechosa. Aunque algunos creen que es la panacea, no posee ningún beneficio " -"médico. De todas maneras, es deliciosa y rica en las sustancias más " -"benéficas que una colmena puede producir." +"Es un pedazo hexagonal translúcido de cera, lleno con una jalea densa, " +"lechosa, amarga y de gusto ácido. Aunque algunos creen que es la panacea, no" +" posee ningún beneficio médico. De todas maneras, es rica en las sustancias " +"más benéficas que una colmena puede producir." #: lang/json/COMESTIBLE_from_json.py msgid "marloss berry" @@ -43620,7 +45591,7 @@ msgstr[1] "levadura" msgid "" "A powder-like mix of cultured yeast, good for baking and brewing alike." msgstr "" -"Una especie de polvo mezcla de levaduras refinadas, bueno para cocinar y " +"Es una especie de polvo mezcla de levaduras refinadas, bueno para cocinar y " "para elaborar bebidas." #: lang/json/COMESTIBLE_from_json.py @@ -43818,6 +45789,17 @@ msgstr "" "Es el producto más vendido de Foodplace, deliciosa comida™, está hecho con " "verdadera sustancia de comida y ¡está garantizado que es 100% comestible!" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "snack™ apropiado de Foodplace" +msgstr[1] "snack™ apropiado de Foodplace" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "Cosacomida verdadera, ¡ahora en tamaño de bolsillo!" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -43999,6 +45981,36 @@ msgstr[1] "néctares" msgid "Some nectar. Seeing this item is a bug." msgstr "Es néctar. Si ves esto es un bug." +#: lang/json/COMESTIBLE_from_json.py +msgid "tea bag" +msgid_plural "tea bags" +msgstr[0] "saquito de té" +msgstr[1] "saquitos de té" + +#. ~ Description for {'str': 'tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with tea leafs inside. Put it into boiling water to get your " +"cup of tea." +msgstr "" +"Es un saquito de papel con hojas de té adentro. Ponelo en agua hirviendo " +"para hacer una taza de té." + +#: lang/json/COMESTIBLE_from_json.py +msgid "herbal tea bag" +msgid_plural "herbal tea bags" +msgstr[0] "saquito de té de hierbas" +msgstr[1] "saquitos de té de hierbas" + +#. ~ Description for {'str': 'herbal tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with dried wild herbs inside. Put it into boiling water to " +"make some healthy warm drink." +msgstr "" +"Es un saquito de papel con hierbas secas adentro. Ponelo en agua hirviendo " +"para hacer una bebida calentita y saludable." + #: lang/json/COMESTIBLE_from_json.py msgid "protein drink" msgid_plural "protein drinks" @@ -44008,9 +46020,17 @@ msgstr[1] "bebidas de proteína" #. ~ Conditional name for protein drink when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" -msgid_plural "soylent green drinks" +msgid_plural "soylent green drink" msgstr[0] "bebida de soylent verde" -msgstr[1] "bebidas de soylent verde" +msgstr[1] "bebida de soylent verde" + +#. ~ Conditional name for protein drink when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green drink" +msgid_plural "sapient green drink" +msgstr[0] "bebida de sapiente verde" +msgstr[1] "bebida de sapiente verde" #. ~ Conditional name for protein drink when COMPONENT_ID matches mutant #. ~ Conditional name for {'str_sp': 'protein powder'} when COMPONENT_ID @@ -44048,6 +46068,14 @@ msgid_plural "soylent green powder" msgstr[0] "polvo de soylent verde" msgstr[1] "polvo de soylent verde" +#. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green powder" +msgid_plural "sapient green powder" +msgstr[0] "polvo de sapiente verde" +msgstr[1] "polvo de sapiente verde" + #. ~ Description for {'str_sp': 'protein powder'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -44066,24 +46094,25 @@ msgstr[1] "raciones de proteína" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the" -" product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you" -" hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable" +" to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" -"SoyPelusa hizo una campaña muy exitosa para juntar fondos para esta barra de" -" proteína. Una persona puede vivir con una de estas barras, tres veces por " -"día, presumiblemente para siempre. Luego de que los patrocinadores " -"recibieron el producto, solo se encontró una falla: la mayoría de los " -"consumidores decidieron que era mejor la hambruna que el sabor que tenía. " -"Quedaron sin vender depósitos enteros del producto cuando la compañía quedó " -"en bancarrota, lo que le dio la oportunidad perfecta a FEMA para agarrarlas " -"y guardarlas en los refugios de evacuación. Ahora, tenés un pedazo de la " -"historia de las campañas de recolección de dinero en tus manos. Qué " -"excitante." +"SoyPelusa hizo una campaña muy exitosa para juntar fondos para su clásica " +"barra de proteínas, apodada \"DaiZoom\". Una persona puede vivir con una de " +"estas barras, tres veces por día, presumiblemente para siempre. Luego de que" +" los patrocinadores recibieron el producto, solo se encontró una falla: la " +"mayoría de los consumidores decidieron que era mejor la hambruna que el " +"sabor que tenía. Quedaron sin vender depósitos enteros del producto cuando " +"la compañía quedó en bancarrota, lo que le dio la oportunidad perfecta a " +"FEMA para agarrarlas y guardarlas en los refugios de evacuación. Ahora, " +"tenés un pedazo de la historia de las campañas de recolección de dinero en " +"tus manos. Qué excitante." #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" @@ -44094,9 +46123,17 @@ msgstr[1] "licuados de proteína" #. ~ Conditional name for protein shake when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgid_plural "soylent green shakes" +msgid_plural "soylent green shake" msgstr[0] "licuado de soylent verde" -msgstr[1] "licuados de soylent verde" +msgstr[1] "licuado de soylent verde" + +#. ~ Conditional name for protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green shake" +msgid_plural "sapient green shake" +msgstr[0] "licuado de sapiente verde" +msgstr[1] "licuado de sapiente verde" #. ~ Description for protein shake #: lang/json/COMESTIBLE_from_json.py @@ -44117,9 +46154,17 @@ msgstr[1] "licuados de proteína fortificados" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgid_plural "fortified soylent green shakes" +msgid_plural "fortified soylent green shake" msgstr[0] "licuado de soylent verde fortificado" -msgstr[1] "licuados de soylent verde fortificados" +msgstr[1] "licuado de soylent verde fortificado" + +#. ~ Conditional name for fortified protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "fortified sapient green shake" +msgid_plural "fortified sapient green shake" +msgstr[0] "licuado de sapiente verde fortificado" +msgstr[1] "licuado de sapiente verde fortificado" #. ~ Description for fortified protein shake #: lang/json/COMESTIBLE_from_json.py @@ -45098,6 +47143,17 @@ msgstr "" "voluta de un violín. Son deliciosas cuando están cocinadas pero consumirlas " "crudas pueden causar intoxicación." +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "morrón" +msgstr[1] "morrones" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "Es un morrón verde. Puede ser cocinado." + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" @@ -45241,6 +47297,14 @@ msgid_plural "slob sandwiches" msgstr[0] "sánguche de vago" msgstr[1] "sánguches de vago" +#. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat +#. sandwiches'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "satyr sandwich" +msgid_plural "satyr sandwiches" +msgstr[0] "sánguche de sátiro" +msgstr[1] "sánguches de sátiro" + #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when COMPONENT_ID matches mutant #. ~ Conditional name for meat soup when COMPONENT_ID matches mutant @@ -46246,6 +48310,23 @@ msgstr "Son unas semillas de manzanilla." msgid "chamomile" msgstr "manzanilla" +#: lang/json/COMESTIBLE_from_json.py +msgid "spurge seeds" +msgid_plural "spurge seeds" +msgstr[0] "semillas de euforbio" +msgstr[1] "semillas de euforbio" + +#. ~ Description for {'str_sp': 'spurge seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some spurge seeds." +msgstr "Son unas semillas de euforbio." + +#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py +msgid "spurge" +msgid_plural "spurges" +msgstr[0] "euforbio" +msgstr[1] "euforbios" + #: lang/json/COMESTIBLE_from_json.py msgid "popcorn seeds" msgid_plural "popcorn seeds" @@ -46281,6 +48362,17 @@ msgstr "" "Son unas semillas de mostaza. Pueden ser molidas para hacer polvo de " "mostaza." +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "semillas de morrón" +msgstr[1] "semillas de morrón" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "Son unas semillas de morrón." + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -46298,6 +48390,14 @@ msgid_plural "bone broths" msgstr[0] "caldo de hueso" msgstr[1] "caldos de hueso" +#. ~ Conditional name for bone broth when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "demihuman %s" +msgid_plural "demihuman %s" +msgstr[0] "%s semihumano" +msgstr[1] " %s semihumanos" + #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." @@ -46323,9 +48423,16 @@ msgstr[1] "sopas de carne" #. ~ Conditional name for meat soup when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgid_plural "sap soups" +msgid_plural "sap soup" msgstr[0] "sopa de savia" -msgstr[1] "sopas de savia" +msgstr[1] "sopa de savia" + +#. ~ Conditional name for meat soup when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "goblin soup" +msgid_plural "goblin soup" +msgstr[0] "sopa de goblin" +msgstr[1] "sopa de goblin" #. ~ Description for meat soup #: lang/json/COMESTIBLE_from_json.py @@ -46590,10 +48697,10 @@ msgstr[1] "hierbas silvestres" #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " -"purslane, fireweed, and burdock." +"purslane, and fireweed." msgstr "" "Es una colección sabrosa de hierbas silvestres que incluyen violeta, " -"sasafrás, menta, trébol, portulaca, epilobio y bardana." +"sasafrás, menta, trébol, portulaca y epilobio." #: lang/json/COMESTIBLE_from_json.py msgid "soy sauce" @@ -46623,6 +48730,21 @@ msgid "A fragnant yellow powder. Not edible in this form." msgstr "" "Es un polvo amarillo con un fuerte olor. No es comestible en esta forma." +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "edulcorante artificial" +msgstr[1] "edulcorantes artificiales" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "" +"¿Dulce, dulce azúcar? No, es un edulcorante artificial agridulce. Sin " +"calorías, sin preocupaciones." + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" @@ -47261,19 +49383,19 @@ msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "Son brotes de helechos salteados en grasa. Tiernos y deliciosos." #: lang/json/COMESTIBLE_from_json.py -msgid "wheat cereal" -msgid_plural "wheat cereals" -msgstr[0] "cereal de trigo" -msgstr[1] "cereales de trigo" +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" +msgstr[0] "morrón cocinado" +msgstr[1] "morrones cocinados" -#. ~ Description for wheat cereal +#. ~ Description for {'str': 'cooked bell pepper'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " -"your heart." +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds" +" are removed." msgstr "" -"Son cereales de trigo integral. Están sorprendentemente buenos, y según " -"dice, es bueno para tu corazón." +"Es un morrón limpiado y cocinado. Se puede disfrutar mucho más ahora que no " +"tiene las semillas." #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py @@ -47514,7 +49636,6 @@ msgstr[0] "granola" msgstr[1] "granola" #. ~ Description for {'str_sp': 'granola'} -#. ~ Description for gluten free granola #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " @@ -48267,6 +50388,12 @@ msgid_plural "pachycephalosaurus eggs" msgstr[0] "huevo de pachycephalosaurus" msgstr[1] "huevos de pachycephalosaurus" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "huevo de camptosaurus" +msgstr[1] "huevos de camptosaurus" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -48279,6 +50406,12 @@ msgid_plural "tyrannosaurus eggs" msgstr[0] "huevo de tyrannosaurus" msgstr[1] "huevos de tyrannosaurus" +#: lang/json/COMESTIBLE_from_json.py +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" +msgstr[0] "huevo de albertosaurus" +msgstr[1] "huevos de albertosaurus" + #: lang/json/COMESTIBLE_from_json.py msgid "triceratops egg" msgid_plural "triceratops eggs" @@ -48297,6 +50430,12 @@ msgid_plural "ankylosaurus eggs" msgstr[0] "huevo de ankylosaurus" msgstr[1] "huevos de ankylosaurus" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "huevo de ceratosaurus" +msgstr[1] "huevos de ceratosaurus" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -48603,8 +50742,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "owlbear egg" msgid_plural "owlbear eggs" -msgstr[0] "huevo de oso lechuza" -msgstr[1] "huevos de oso lechuza" +msgstr[0] "huevo de osolechuza" +msgstr[1] "huevos de osolechuza" #. ~ Description for owlbear egg #: lang/json/COMESTIBLE_from_json.py @@ -48615,22 +50754,22 @@ msgid "" "something so small. Perhaps you could carefully crack it open to get at the" " liquid golden goodness inside." msgstr "" -"Este huevo, puesto por un oso lechuza, es casi igual a una piedra grande " +"Este huevo, puesto por un osolechuza, es casi igual a una piedra grande " "hasta que lo tocás y sentís un brillo tibio de energía vital en su interior." -" Es difícil creer que un oso lechuza puede crecer tan rápido desde algo tan " +" Es difícil creer que un osolechuza puede crecer tan rápido desde algo tan " "pequeño. Tal vez podrías abrirlo cuidadosamente para conseguir su bondadoso " "líquido dorado." #: lang/json/COMESTIBLE_from_json.py msgid "owlbear egg yolk" msgid_plural "owlbear egg yolks" -msgstr[0] "yema de huevo de oso lechuza" -msgstr[1] "yemas de huevo de oso lechuza" +msgstr[0] "yema de huevo de osolechuza" +msgstr[1] "yemas de huevo de osolechuza" #. ~ Description for owlbear egg yolk #: lang/json/COMESTIBLE_from_json.py msgid "The liquid innards of an owlbear egg. Good eating." -msgstr "Es el líquido interior de un huevo de oso lechuza. Buena comida." +msgstr "Es el líquido interior de un huevo de osolechuza. Buena comida." #: lang/json/COMESTIBLE_from_json.py msgid "hairball" @@ -48896,43 +51035,6 @@ msgstr "" "No existimos en este momento. Pequeño humano inteligente, ¿así que debugging" " para ver esto? No te vamos a permitir unirte mientras estamos modeando." -#: lang/json/COMESTIBLE_from_json.py -msgid "necrotic head" -msgid_plural "necrotic heads" -msgstr[0] "cabeza necrótica" -msgstr[1] "cabezas necróticas" - -#. ~ Description for necrotic head -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"The severed head of a zombie necromancer. Its eyes still roll in its head " -"and its jaws snap menacingly." -msgstr "" -"Es la cabeza cortada de un zombi nigromante. Sus ojos todavía ruedan en su " -"cabeza, y su mandíbula se cierra de golpe de manera amenazante." - -#: lang/json/COMESTIBLE_from_json.py -msgid "mutagenic glob" -msgid_plural "mutagenic globs" -msgstr[0] "gota mutagénica" -msgstr[1] "gotas mutagénicas" - -#. ~ Description for mutagenic glob -#: lang/json/COMESTIBLE_from_json.py -msgid "A gelatinous glob of mutagen." -msgstr "Es un gota gelatinosa de mutágeno." - -#: lang/json/COMESTIBLE_from_json.py -msgid "honey" -msgid_plural "honey" -msgstr[0] "miel" -msgstr[1] "miel" - -#. ~ Description for {'str_sp': 'honey'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Honey, that stuff bees make." -msgstr "Miel, eso que hacen las abejas." - #: lang/json/COMESTIBLE_from_json.py msgid "TEST pine nuts" msgid_plural "TEST pine nuts" @@ -48940,699 +51042,791 @@ msgstr[0] "TEST piñones" msgstr[1] "TEST piñones" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fish sandwich" -msgid_plural "gluten free fish sandwiches" -msgstr[0] "sánguche de pescado sin gluten" -msgstr[1] "sánguches de pescado sin gluten" - -#. ~ Description for {'str': 'gluten free fish sandwich', 'str_pl': 'gluten -#. free fish sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free and a delicious fish sandwich." -msgstr "Es un delicioso sánguche de pescado sin gluten." +msgid "test bitter almonds" +msgid_plural "test bitter almonds" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str_sp': 'test bitter almonds'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable sandwich" -msgid_plural "gluten free vegetable sandwiches" -msgstr[0] "sánguche de verdura sin gluten" -msgstr[1] "sánguches de verdura sin gluten" +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when" +" eaten raw." +msgstr "" -#. ~ Description for {'str': 'gluten free vegetable sandwich', 'str_pl': -#. 'gluten free vegetable sandwiches'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluen free bread and vegetables, that's it." -msgstr "Pan y verduras, eso pero sin gluten." +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free granola" -msgid_plural "gluten free granolas" -msgstr[0] "barra de cereales sin gluten" -msgstr[1] "barras de cereales sin gluten" +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat sandwich" -msgid_plural "gluten free meat sandwiches" -msgstr[0] "sánguche de carne sin gluten" -msgstr[1] "sánguches de carne sin gluten" +msgid "test apple" +msgid_plural "test apples" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free meat sandwich', 'str_pl': 'gluten -#. free meat sandwiches'} +#. ~ Description for {'str': 'test apple'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free bread and meat, that's it." -msgstr "Pan y carne, eso pero sin gluten." +msgid "Test apple. May contain worms, but tastes delicious!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free peanut butter sandwich" -msgid_plural "gluten free peanut butter sandwiches" -msgstr[0] "sánguche de mantequilla de maní sin gluten" -msgstr[1] "sánguches de mantequilla de maní sin gluten" +msgid "test liquid" +msgid_plural "test liquid" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free peanut butter sandwich', 'str_pl': -#. 'gluten free peanut butter sandwiches'} +#. ~ Description for {'str_sp': 'test liquid'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some peanut butter smothered between two pieces of gluten free bread. Not " -"very filling and will stick to the roof of your mouth like glue." +"No clue what it's made of, but it's definitely liquid. Only for testing, do" +" not drink!" msgstr "" -"Es un poco de mantequilla de maní entre dos pedazos de pan sin gluten. No te" -" va a llenar mucho, y se te pega al paladar como pegamento." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&J sandwich" -msgid_plural "gluten free PB&J sandwiches" -msgstr[0] "sánguche PB&J sin gluten" -msgstr[1] "sánguches PB&J sin gluten" +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" +msgstr[0] "mosto de vino de pelota de tenis" +msgstr[1] "mostos de vino de pelota de tenis" -#. ~ Description for {'str': 'gluten free PB&J sandwich', 'str_pl': 'gluten -#. free PB&J sandwiches'} +#. ~ Description for tennis ball wine must #: lang/json/COMESTIBLE_from_json.py msgid "" -"A delicious peanut butter and jelly gluten free sandwich. It reminds you of" -" the times your mother would make you lunch." +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." msgstr "" -"Es un delicioso sánguche sin gluten de mantequilla de maní y mermelada. Te " -"hace acordar a cuando tu vieja te preparaba el almuerzo (si hubieras vivido " -"en EE.UU.)" +"Es vino sin fermentar de pelota de tenis. Un jugo gomoso y hervido hecho con" +" pelotas de tenis aplastadas." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&H sandwich" -msgid_plural "gluten free PB&H sandwiches" -msgstr[0] "sánguche PB&H sin gluten" -msgstr[1] "sánguches PB&H sin gluten" +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free PB&H sandwich', 'str_pl': 'gluten -#. free PB&H sandwiches'} +#. ~ Description for {'str_sp': 'test tennis ball wine'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some damned fool put honey on this peanut butter sandwich, who in their " -"right mind- oh wait this is pretty good. Gluten free too!" +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." msgstr "" -"Algún estúpido puso miel en su sánguche de mantequilla de maní, que en su " -"sano juicio- ah, pará, está bastante bueno. ¡Y además no tiene gluten!" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&M sandwich" -msgid_plural "gluten free PB&M sandwiches" -msgstr[0] "sánguche PB&M sin gluten" -msgstr[1] "sánguches PB&M sin gluten" +msgid "test chewing gum" +msgid_plural "test chewing gum" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'gluten free PB&M sandwich', 'str_pl': 'gluten -#. free PB&M sandwiches'} +#. ~ Description for {'str_sp': 'test chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Who knew you could mix maple syrup and peanut butter to create yet another " -"different gluten free sandwich?" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." msgstr "" -"¿Quién hubiera dicho que se podía mezclar jarabe de arce y mantequilla de " -"maní para crear otro sánguche sin gluten más?" #: lang/json/COMESTIBLE_from_json.py -msgid "lactose free hickory nut ambrosia" -msgid_plural "lactose free hickory nut ambrosias" -msgstr[0] "ambrosía de nuez hickory sin lactosa" -msgstr[1] "ambrosías de nuez hickory sin lactosa" +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for lactose free hickory nut ambrosia +#. ~ Description for {'str': 'test mutated thumb'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " -"made with an alternative to cows milk." +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." msgstr "" -"Es una deliciosa ambrosía de nuez hickory. Una bebida digna de los dioses. " -"Esta ha sido hecha con un sustituto de la leche de vaca." -#. ~ Description for cornmeal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"You think this is cornflour… or rice flour… Or something else. However, it" -" certainly is not wheat flour! It is useful for baking though." +#: lang/json/CONTAINER_from_json.py +msgid "small metal tank" +msgid_plural "small metal tanks" +msgstr[0] "tanque pequeño de metal" +msgstr[1] "tanques pequeños de metal" + +#. ~ Description for small metal tank +#: lang/json/CONTAINER_from_json.py +msgid "A small metal tank for holding gas or liquids. Useful for crafting." msgstr "" -"Pensás que es harina de maíz... o harina de arroz... o algo así. Sin " -"embargo, ¡indudablemente no es harina de trigo! Igual es útil para cocinar " -"algo." +"Un tanque chico de metal que puede llevar líquidos o gas. Se usa para " +"fabricar otras cosas." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free johnnycake" -msgid_plural "gluten free johnnycakes" -msgstr[0] "juanqueque sin gluten" -msgstr[1] "juanqueques sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "internal combustion engine" +msgid_plural "internal combustion engines" +msgstr[0] "motor de combustión interna" +msgstr[1] "motores de combustión interna" -#. ~ Description for gluten free johnnycake -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"We all crave for cake sometimes. This is not perfect, but it is a tasty and" -" nutritious gluten free fried bread treat. " -msgstr "" -"A todos nos agarra antojo de comer torta de vez en cuando. Esto no es " -"perfecto pero es un pan frito sabroso, nutritivo y sin gluten." +#: lang/json/ENGINE_from_json.py +msgid "base diesel engine" +msgid_plural "base diesel engines" +msgstr[0] "motor diésel" +msgstr[1] "motores diésel" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pancake" -msgid_plural "gluten free fruit pancakes" -msgstr[0] "panqueque de fruta sin gluten" -msgstr[1] "panqueques de fruta sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "base gasoline engine" +msgid_plural "base gasoline engines" +msgstr[0] "motor a nafta" +msgstr[1] "motores a nafta" -#. ~ Description for {'str': 'gluten free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"Son panqueques suaves y deliciosos sin gluten con verdadero jarabe de arce, " -"agregando una fruta son más dulces y saludables." +#: lang/json/ENGINE_from_json.py +msgid "base steam engine" +msgid_plural "base steam engines" +msgstr[0] "motor de vapor" +msgstr[1] "motores de vapor" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free fruit pancake" -msgid_plural "lactose free fruit pancakes" -msgstr[0] "panqueque de fruta sin lactosa" -msgstr[1] "panqueques de fruta sin lactosa" +#: lang/json/ENGINE_from_json.py +msgid "1-cylinder engine" +msgid_plural "1-cylinder engines" +msgstr[0] "motor de 1 cilindro" +msgstr[1] "motores de 1 cilindro" -#. ~ Description for {'str': 'lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': '1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A single-cylinder 4-stroke combustion engine." +msgstr "Un motor de combustión de 4 tiempos, de un solo cilindro." + +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgid_plural "large 1-cylinder engines" +msgstr[0] "motor grande de 1 cilindro" +msgstr[1] "motores grandes de 1 cilindro" + +#. ~ Description for {'str': 'large 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious lactose free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." +"A powerful high-compression single-cylinder 4-stroke combustion engine." msgstr "" -"Son panqueques suaves y deliciosos sin lactosa con verdadero jarabe de arce," -" agregando una fruta son más dulces y saludables." +"Es un motor de combustión potente de alta compresión de 4 tiempos, de un " +"solo cilindro." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit pancake" -msgid_plural "gluten free lactose free fruit pancakes" -msgstr[0] "panqueque de fruta sin lactosa ni gluten" -msgstr[1] "panqueques de fruta sin lactosa ni gluten" +#: lang/json/ENGINE_from_json.py +msgid "small 1-cylinder engine" +msgid_plural "small 1-cylinder engines" +msgstr[0] "motor chico de 1 cilindro" +msgstr[1] "motores chicos de 1 cilindro" -#. ~ Description for {'str': 'gluten free lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small single-cylinder 2-stroke combustion engine." +msgstr "Un pequeño motor de combustión de un solo cilindro y de 2 tiempos." + +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" +msgstr[0] "aero-motor liviano" +msgstr[1] "aero-motores livianos" + +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious pancakes made out of the only things you can still eat." -" But at least it has real maple syrup, made sweeter and healthier with the " -"addition of wholesome fruit." +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." msgstr "" -"Son panqueques suaves y deliciosos hechos con las pocas cosas que todavía " -"podés comer. Pero por lo menos tiene verdadero jarabe de arce, y agregando " -"una fruta son más dulces y saludables." +"Es un motor bóxer de combustión interna, refrigerado por aire, de cuatro " +"cilindros, de 150 caballos de fuerza. Comúnmente se utiliza en aeronaves " +"livianas." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate pancake" -msgid_plural "gluten free chocolate pancakes" -msgstr[0] "panqueque de chocolate sin gluten" -msgstr[1] "panqueques de chocolate sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "Inline-4 engine" +msgid_plural "Inline-4 engines" +msgstr[0] "motor en línea de 4 cilindros" +msgstr[1] "motores en línea de 4 cilindros" -#. ~ Description for {'str': 'gluten free chocolate pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Inline-4 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small, yet powerful 4-cylinder combustion engine." +msgstr "Un pequeño pero poderoso motor de combustión de 4 cilindros en línea." + +#: lang/json/ENGINE_from_json.py +msgid "I6 diesel engine" +msgid_plural "I6 diesel engines" +msgstr[0] "motor diésel I6" +msgstr[1] "motores diésel I6" + +#. ~ Description for {'str': 'I6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful straight-6 diesel engine." +msgstr "Un poderoso motor diésel de 6 cilindros en línea." + +#: lang/json/ENGINE_from_json.py +msgid "V-twin engine" +msgid_plural "V-twin engines" +msgstr[0] "motor de dos cilindros en V" +msgstr[1] "motores de dos cilindros en V" + +#. ~ Description for {'str': 'V-twin engine'} +#: lang/json/ENGINE_from_json.py +msgid "A 2-cylinder 4-stroke combustion engine." +msgstr "Un motor de combustión de 4 tiempos, de dos cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V6 engine" +msgid_plural "V6 engines" +msgstr[0] "motor V6" +msgstr[1] "motores V6" + +#. ~ Description for {'str': 'V6 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder combustion engine." +msgstr "Un poderoso motor de combustión de 6 cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V6 diesel engine" +msgid_plural "V6 diesel engines" +msgstr[0] "motor diésel V6" +msgstr[1] "motores diésel V6" + +#. ~ Description for {'str': 'V6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder diesel engine." +msgstr "Un poderoso motor diésel de 6 cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V8 engine" +msgid_plural "V8 engines" +msgstr[0] "motor V8" +msgstr[1] "motores V8" + +#. ~ Description for {'str': 'V8 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A large and very powerful 8-cylinder combustion engine." +msgstr "Un gran motor muy poderoso de combustión de 8 cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V8 diesel engine" +msgid_plural "V8 diesel engines" +msgstr[0] "motor diésel V8" +msgstr[1] "motores diésel V8" + +#. ~ Description for {'str': 'V8 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 8-cylinder diesel engine." +msgstr "Un poderoso motor diésel de 8 cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V12 engine" +msgid_plural "V12 engines" +msgstr[0] "motor V12" +msgstr[1] "motores V12" + +#. ~ Description for {'str': 'V12 engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, with " -"delicious chocolate baked right in." +"A massive and extremely powerful V12 engine, usually built into high end " +"sports cars." msgstr "" -"Panqueques suaves y deliciosos sin gluten con verdadero jarabe de arce, y " -"delicioso chocolate." +"Un enorme y extremadamente poderoso motor V12, usualmente utilizado por " +"autos deportivos de alta gama." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free French toast" -msgid_plural "gluten free French toasts" -msgstr[0] "tostada francesa sin gluten" -msgstr[1] "tostadas francesas sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "V12 diesel engine" +msgid_plural "V12 diesel engines" +msgstr[0] "motor diésel V12" +msgstr[1] "motores diésel V12" -#. ~ Description for {'str': 'gluten free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'V12 diesel engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a milk and egg mixture then fried." +"A massive and extremely powerful V12 engine, usually built into heavy " +"trucks." msgstr "" -"Son rebanadas de pan sin gluten mojadas en una mezcla de leche y huevo y " -"luego fritas." +"Es un motor V12 enorme y extremadamente poderoso, usualmente utilizado en " +"camiones grandes." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free French toast" -msgid_plural "gluten free lactose free French toasts" -msgstr[0] "tostada francesa sin gluten ni lactosa" -msgstr[1] "tostadas francesas sin gluten ni lactosa" +#: lang/json/ENGINE_from_json.py +msgid "makeshift steam engine" +msgid_plural "makeshift steam engines" +msgstr[0] "motor de vapor improvisado" +msgstr[1] "motores de vapor improvisado" -#. ~ Description for {'str': 'gluten free lactose free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'makeshift steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a lactose free milk and egg mixture " -"then fried. You never thought it was possible, but now you truly feel like " -"a post millennial." +"A small, primitive, steam engine. An integrated boiler burns coal to heat " +"water into steam, driving a reciprocating shaft. A condenser recaptures the" +" water, making this a closed cycle system." msgstr "" -"Son rebanadas de pan sin gluten mojadas en leche sin lactosa y huevo y luego" -" fritas. Nunca pensaste que esto sería posible, pero ahora te podés sentir " -"como un verdadero post milenial." +"Es un pequeño y primitivo motor de vapor. Una caldera integrada quema carbón" +" para calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free biscuit" -msgid_plural "gluten free biscuits" -msgstr[0] "galleta sin gluten" -msgstr[1] "galletas sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "small steam engine" +msgid_plural "small steam engines" +msgstr[0] "motor chico de vapor" +msgstr[1] "motores chico de vapor" -#. ~ Description for gluten free biscuit -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Delicious and filling, this home made gluten free biscuit is good, and good " -"for you!" +"A small steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condenser recaptures the water, " +"making this a closed cycle system." msgstr "" -"Deliciosas y rendidoras, estas galletas caseras sin gluten están buenas, ¡y " -"son buenas para vos!" +"Es un pequeño motor de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pie" -msgid_plural "gluten free fruit pies" -msgstr[0] "tarta de fruta sin gluten" -msgstr[1] "tartas de fruta sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "medium steam engine" +msgid_plural "medium steam engines" +msgstr[0] "motor mediano de vapor" +msgstr[1] "motores mediano de vapor" -#. ~ Description for gluten free fruit pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a sweet fruit filling." -msgstr "Es una deliciosa torta sin gluten horneada con relleno de fruta." +#. ~ Description for {'str': 'medium steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A medium-sized steam engine. An integrated boiler burns coal to heat water " +"into steam, driving a reciprocating shaft. A condenser recaptures the " +"water, making this a closed cycle system." +msgstr "" +"Es un motor de vapor de tamaño mediano. Una caldera integrada quema carbón " +"para calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pie" -msgid_plural "gluten free vegetable pies" -msgstr[0] "tarta de verdura sin gluten" -msgstr[1] "tartas de verdura sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "1350 hp gas turbine engine" +msgid_plural "1350 hp gas turbine engines" +msgstr[0] "motor de turbina de gas 1350 hp" +msgstr[1] "motores de turbina de gas 1350 hp" -#. ~ Description for gluten free vegetable pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious vegetable filling." +#. ~ Description for {'str': '1350 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A gas turbine engine, usually used for military vehicles. Known for its " +"high rate of fuel consumption." msgstr "" -"Es una deliciosa tarta sin gluten horneada con un delicioso relleno de " -"verduras." +"Es un motor de turbina de gas, usualmente utilizado en vehículos militares. " +"Es famoso por su alto consumo de combustible." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pie" -msgid_plural "gluten free meat pies" -msgstr[0] "tarta de carne sin gluten" -msgstr[1] "tartas de carne sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "1900 hp gas turbine engine" +msgid_plural "1900 hp gas turbine engines" +msgstr[0] "motor de turbina de gas 1900 hp" +msgstr[1] "motores de turbina de gas 1900 hp" -#. ~ Description for gluten free meat pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious meat filling." +#. ~ Description for {'str': '1900 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large gas turbine engine, usually used for military helicopters. Known " +"for its high rate of fuel consumption." msgstr "" -"Es una deliciosa tarta sin gluten horneada con un delicioso relleno de " -"carne." +"Es un motor grande de turbina de gas, usualmente utilizado en helicópteros " +"militares. Es famoso por su alto consumo de combustible." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free maple pie" -msgid_plural "gluten free maple pies" -msgstr[0] "tarta de arce sin gluten" -msgstr[1] "tartas de arce sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "6000 hp gas turbine engine" +msgid_plural "6000 hp gas turbine engines" +msgstr[0] "motor de turbina de gas 6000 hp" +msgstr[1] "motores de turbina de gas 6000 hp" -#. ~ Description for gluten free maple pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A sweet and delicious baked gluten free pie with pure maple syrup." +#. ~ Description for {'str': '6000 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " +"high rate of fuel consumption." msgstr "" -"Es una dulce y deliciosa torta sin gluten horneada con jarabe puro de arce." +"Es un motor enorme de turbina de gas, usualmente utilizado en el V-22 " +"Osprey. Es famoso por su alto consumo de combustible." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pizza" -msgid_plural "gluten free vegetable pizzas" -msgstr[0] "pizza de verduras sin gluten" -msgstr[1] "pizzas de verduras sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "large steam engine" +msgid_plural "large steam engines" +msgstr[0] "motor grande de vapor" +msgstr[1] "motores grandes de vapor" -#. ~ Description for gluten free vegetable pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " -"crust. Its smell brings back great memories." +"A large steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" -"Es una pizza vegetariana sin gluten con deliciosa salsa de tomate y masa " -"acolchada. Su aroma te trae grandes recuerdos." +"Es un motor grande de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese pizza" -msgid_plural "gluten free cheese pizzas" -msgstr[0] "pizza de mozzarella sin gluten" -msgstr[1] "pizzas de mozzarella sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "huge steam engine" +msgid_plural "huge steam engines" +msgstr[0] "motor enorme de vapor" +msgstr[1] "motores enormes de vapor" -#. ~ Description for gluten free cheese pizza -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free pizza with molten cheese on top." -msgstr "Es una deliciosa pizza sin gluten con queso derretido arriba." +#. ~ Description for {'str': 'huge steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "" +"Es un motor enorme de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pizza" -msgid_plural "gluten free meat pizzas" -msgstr[0] "pizza de carne sin gluten" -msgstr[1] "pizzas de carne sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "small steam turbine" +msgid_plural "small steam turbines" +msgstr[0] "turbina chica de vapor" +msgstr[1] "turbinas chicas de vapor" -#. ~ Description for gluten free meat pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A meat gluten free pizza, for all the carnivores out there. Chock full of " -"minced meat and heavily seasoned." +"A small steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -"Es una pizza de carne sin gluten para los carnívoros que andan por ahí. " -"Llena hasta el tope de carne picada y muy condimentada." +"Es una turbina chica de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" +" captura el agua, convirtiendo esto en un sistema cíclico cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheeseburger" -msgid_plural "gluten free cheeseburgers" -msgstr[0] "hamburguesa sin gluten con queso" -msgstr[1] "hamburguesas sin gluten con queso" +#: lang/json/ENGINE_from_json.py +msgid "medium steam turbine" +msgid_plural "medium steam turbines" +msgstr[0] "turbina mediana de vapor" +msgstr[1] "turbinas medianas de vapor" -#. ~ Description for gluten free cheeseburger -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of minced meat and cheese with condiments. The apex " -"of pre-Cataclysm culinary achievement." +"A medium sized steam turbine. An integrated boiler burns coal to heat water" +" into steam, driving a spinning turbine. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" -"Es un sánguche sin gluten de carne picada y queso con condimentos. El ápice " -"de la exitosa cocina pre-Cataclismo." +"Es una turbina de vapor de tamaño mediano. Una caldera integrada quema " +"carbón para calentar agua haciendo vapor, moviendo una turbina giratoria. Un" +" condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free hamburger" -msgid_plural "gluten free hamburgers" -msgstr[0] "hamburguesa sin gluten" -msgstr[1] "hamburguesas sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "large steam turbine" +msgid_plural "large steam turbines" +msgstr[0] "turbina grande de vapor" +msgstr[1] "turbinas grandes de vapor" -#. ~ Description for gluten free hamburger -#: lang/json/COMESTIBLE_from_json.py -msgid "A gluten free sandwich of minced meat with condiments." -msgstr "Es un sánguche sin gluten de carne picada con condimentos." +#. ~ Description for {'str': 'large steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "" +"Es una turbina grande de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" +" captura el agua, convirtiendo esto en un sistema cíclico cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sloppy joe" -msgid_plural "gluten free sloppy joes" -msgstr[0] "sloppy joe sin gluten" -msgstr[1] "sloppy joes sin gluten" +#: lang/json/ENGINE_from_json.py +msgid "huge steam turbine" +msgid_plural "huge steam turbines" +msgstr[0] "turbina enorme de vapor" +msgstr[1] "turbinas enormes de vapor" -#. ~ Description for gluten free sloppy joe -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'huge steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich, consisting of ground meat and tomato sauce served on" -" a hamburger bun." +"A huge steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -"Es un sánguche sin gluten de carne molida y salsa de tomate, servido en pan " -"de hamburguesa." +"Es una turbina enorme de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" +" captura el agua, convirtiendo esto en un sistema cíclico cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free BLT" -msgid_plural "gluten free BLTs" -msgstr[0] "sánguche BLT sin gluten" -msgstr[1] "sánguches BLT sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "fetid goop" +msgid_plural "fetid goops" +msgstr[0] "pegote fétido" +msgstr[1] "pegotes fétidos" -#. ~ Description for gluten free BLT -#: lang/json/COMESTIBLE_from_json.py -msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." +#. ~ Description for {'str': 'fetid goop'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A foul smelling goop. It has a disgusting texture and a powerful smell that" +" overrides every other smell around it." msgstr "" -"Es un sánguche sin gluten con pan tostado. Se llama BLT por las letras en " -"inglés de sus componentes: panceta, lechuga y tomate." +"Es un pego te olor horrendo. Tiene una textura desagradable y un olor tan " +"potente que tapa cualquier otro olor cercano." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sweetbread" -msgid_plural "gluten free sweetbreads" -msgstr[0] "molleja sin gluten" -msgstr[1] "mollejas sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "limestone shard" +msgid_plural "limestone shards" +msgstr[0] "fragmento de caliza" +msgstr[1] "fragmentos de caliza" -#. ~ Description for {'str': 'gluten free sweetbread'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'limestone shard'} +#: lang/json/GENERIC_from_json.py msgid "" -"Delicious and tender organ meats. First boiled, then gluten free breaded " -"crumbs added and fried. They have interesting flavor and unparalleled " -"texture." +"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" +" alkaline properties may yet find some use." msgstr "" -"Es la carne de un órgano delicioso y tierno. Primero hervido y luego " -"empanado sin gluten y frito. Tienen un sabor interesante y una textura " -"inigualable." +"Un pequeño fragmento de caliza. Muy poco sólido y no sirve como arma, pero " +"sus propiedades alcalinas pueden tener alguna utilidad." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese sandwich" -msgid_plural "gluten free cheese sandwiches" -msgstr[0] "sánguche de queso sin gluten" -msgstr[1] "sánguches de queso sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "rock salt" +msgid_plural "rock salt" +msgstr[0] "sal de roca" +msgstr[1] "sal de roca" -#. ~ Description for {'str': 'gluten free cheese sandwich', 'str_pl': 'gluten -#. free cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A simple gluten free cheese sandwich." -msgstr "Es un simple y común sánguche de queso sin gluten." +#. ~ Description for {'str_sp': 'rock salt'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of rock salt crystals. Could be refined into table salt." +msgstr "" +"Es un puñado de cristales de sal de roca. Puede ser refinada para hacer sal " +"de mesa." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free grilled cheese sandwich" -msgid_plural "gluten free grilled cheese sandwiches" -msgstr[0] "tostado de queso sin gluten" -msgstr[1] "tostados de queso sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "rhodonite" +msgid_plural "rhodonite" +msgstr[0] "rodonita" +msgstr[1] "rodonita" -#. ~ Description for {'str': 'gluten free grilled cheese sandwich', 'str_pl': -#. 'gluten free grilled cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'rhodonite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A delicious gluten free grilled cheese sandwich, because everything is " -"better with melted cheese." +"A chunk of rhodonite. It has manganese dioxide covering and going through " +"it in veins, which can be obtained using a chisel." msgstr "" -"Es un delicioso sánguche sin gluten tostado de queso, porque todo es mejor " -"con queso derretido." +"Es un pedazo de rodonita. Está cubierto de óxido de manganeso y también " +"tiene adentro, que puede ser obtenido con un cincel." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free deluxe sandwich" -msgid_plural "gluten free deluxe sandwiches" -msgstr[0] "sánguche de lujo sin gluten" -msgstr[1] "sánguches de lujo sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "zincite" +msgid_plural "zincite" +msgstr[0] "zincita" +msgstr[1] "zincita" -#. ~ Description for {'str': 'gluten free deluxe sandwich', 'str_pl': 'gluten -#. free deluxe sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'zincite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A gluten free sandwich of meat, vegetables, and cheese with condiments. " -"Tasty and nutritious!" +"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " +"reduction with a source of carbon." msgstr "" -"Es un sánguche sin gluten con carne, verduras, queso y condimentos. ¡Sabroso" -" y nutritivo!" +"Es un pedazo de zincita. Puede ser refinado para crear óxido de zinc y luego" +" en zinc por reducción con una fuente de carbono." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cucumber sandwich" -msgid_plural "gluten free cucumber sandwiches" -msgstr[0] "sánguche de pepino sin gluten" -msgstr[1] "sánguches de pepino sin gluten" +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" +msgstr[0] "plutonio" +msgstr[1] "plutonio" -#. ~ Description for {'str': 'gluten free cucumber sandwich', 'str_pl': -#. 'gluten free cucumber sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py msgid "" -"A refreshing gluten free cucumber sandwich. Not very filling, but quite " -"tasty." +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." msgstr "" -"Es un refrescante sánguche sin gluten de pepino. No te va a llenar mucho " -"pero está bastante bueno." +"Es un poco de plutonio. Deberías estar lo más lejos posible de esto si te " +"gusta no estar irradiado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free jam sandwich" -msgid_plural "gluten free jam sandwiches" -msgstr[0] "sánguche de mermelada sin gluten" -msgstr[1] "sánguches de mermelada sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "hickory root" +msgid_plural "hickory roots" +msgstr[0] "raíz de pacana" +msgstr[1] "raíces de hickory" -#. ~ Description for {'str': 'gluten free jam sandwich', 'str_pl': 'gluten -#. free jam sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free jam sandwich." -msgstr "Es un delicioso sánguche sin gluten de mermelada." +#. ~ Description for {'str': 'hickory root'} +#: lang/json/GENERIC_from_json.py +msgid "A root from a hickory tree. It has an earthy smell." +msgstr "Es una raíz de un nogal americano o hickory. Tiene olor a tierra." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free honey sandwich" -msgid_plural "gluten free honey sandwiches" -msgstr[0] "sánguche de miel sin gluten" -msgstr[1] "sánguches de miel sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "hickory nuts" +msgid_plural "hickory nuts" +msgstr[0] "nueces hickory" +msgstr[1] "nueces hickory" -#. ~ Description for {'str': 'gluten free honey sandwich', 'str_pl': 'gluten -#. free honey sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free honey sandwich." -msgstr "Es un delicioso sánguche sin gluten de miel." +#. ~ Description for {'str_sp': 'hickory nuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hickory tree, still in their shell." +msgstr "" +"Es un puñado de nueces duras del árbol hickory o nogal americano, todavía " +"con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free boring sandwich" -msgid_plural "gluten free boring sandwiches" -msgstr[0] "sánguche soso sin gluten" -msgstr[1] "sánguches sosos sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "pecans" +msgid_plural "pecans" +msgstr[0] "nueces de pacana" +msgstr[1] "nueces de pacana" -#. ~ Description for {'str': 'gluten free boring sandwich', 'str_pl': 'gluten -#. free boring sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A simple gluten free sauce sandwich. Not very filling but beats eating just" -" the bread… especially if it is the wrong type of bread!" +#. ~ Description for {'str_sp': 'pecans'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pecan tree, still in their shell." msgstr "" -"Es un simple sánguche sin gluten de salsa. No te llena mucho pero es un poco" -" mejor que comer el pan solo... ¡especialmente si es la clase equivocada de " -"pan!" +"Es un puñado de frutos secos duros del pacano, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free waffle" -msgid_plural "gluten free waffles" -msgstr[0] "wafle sin gluten" -msgstr[1] "wafles sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "pistachios" +msgid_plural "pistachios" +msgstr[0] "pistachos" +msgstr[1] "pistachos" -#. ~ Description for gluten free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free waffle. It's basically a pancake in hashtag form." -msgstr "Es un wafle sin gluten. Es como un panqueque con diseño de numerales." +#. ~ Description for {'str_sp': 'pistachios'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pistachio tree, still in their shell." +msgstr "" +"Es un puñado de frutos secos duros del árbol del pistacho, todavía con sus " +"cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free waffle" -msgid_plural "lactose free waffles" -msgstr[0] "wafle sin lactosa" -msgstr[1] "wafles sin lactosa" +#: lang/json/GENERIC_from_json.py +msgid "almonds" +msgid_plural "almonds" +msgstr[0] "almendras" +msgstr[1] "almendras" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Lactose free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str_sp': 'almonds'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from an almond tree, still in their shell." msgstr "" -"Es un wafle sin lactosa. Es como un panqueque con diseño de numerales." +"Es un puñado de frutos secos duros del almendro, todavía con sus cáscaras." -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Gluten free and lactose free waffle. It's basically a pancake in hashtag " -"form." +#: lang/json/GENERIC_from_json.py +msgid "peanuts" +msgid_plural "peanuts" +msgstr[0] "maníes" +msgstr[1] "maníes" + +#. ~ Description for {'str_sp': 'peanuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a peanut bush, still in their shell." msgstr "" -"Es un wafle sin lactosa ni gluten. Es como un panqueque con diseño de " -"numerales." +"Es un puñado de frutos secos duros del maní, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit waffle" -msgid_plural "gluten free fruit waffles" -msgstr[0] "wafle de fruta sin gluten" -msgstr[1] "wafles de fruta sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "hazelnuts" +msgid_plural "hazelnuts" +msgstr[0] "avellanas" +msgstr[1] "avellanas" -#. ~ Description for gluten free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." +#. ~ Description for {'str_sp': 'hazelnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hazelnut tree, still in their shell." msgstr "" -"Son wafles sin gluten deliciosos y crujientes con verdadero jarabe de arce, " -"agregándole una fruta son más dulces y saludables." +"Es un puñado de frutos secos duros del avellano, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit waffle" -msgid_plural "gluten free lactose free fruit waffles" -msgstr[0] "wafle de fruta sin lactosa ni gluten" -msgstr[1] "wafles de fruta sin lactosa ni gluten" +#: lang/json/GENERIC_from_json.py +msgid "chestnuts" +msgid_plural "chestnuts" +msgstr[0] "castañas" +msgstr[1] "castañas" -#. ~ Description for gluten free lactose free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free and lactose free waffles with real maple " -"syrup, made sweeter and healthier with the addition of wholesome fruit." +#. ~ Description for {'str_sp': 'chestnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a chestnut tree, still in their shell." msgstr "" -"Son wafles sin gluten ni lactosa deliciosos y crujientes con verdadero " -"jarabe de arce, agregándole una fruta son más dulces y saludables." +"Es un puñado de frutos secos duros del castaño, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate waffle" -msgid_plural "gluten free chocolate waffles" -msgstr[0] "wafle de chocolate sin gluten" -msgstr[1] "wafles de chocolate sin gluten" +#: lang/json/GENERIC_from_json.py +msgid "walnuts" +msgid_plural "walnuts" +msgstr[0] "nueces" +msgstr[1] "nueces" -#. ~ Description for gluten free chocolate waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, with " -"delicious chocolate baked right in." +#. ~ Description for {'str_sp': 'walnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a walnut tree, still in their shell." msgstr "" -"Son wafles sin gluten deliciosos y crujientes con verdadero jarabe de arce, " -"y delicioso chocolate." +"Es un puñado de frutos secos duros del nogal, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "rice milk" -msgid_plural "rice milk" -msgstr[0] "leche de arroz" -msgstr[1] "leche de arroz" +#: lang/json/GENERIC_from_json.py +msgid "steel grille" +msgid_plural "steel grilles" +msgstr[0] "rejilla de acero" +msgstr[1] "rejillas de acero" -#. ~ Description for {'str_sp': 'rice milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'steel grille'} +#: lang/json/GENERIC_from_json.py msgid "" -"Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " -"rapidly." +"This is a metal grille. It can be used as a framework for making a chemical" +" catalyst." msgstr "" -"Es más dulce que la leche de vaca, casi que tiene el gusto del helado de " -"vainilla. Se pudre rápido." +"Esto es una rejilla de acero. Puede ser usada como estructura para hacer un " +"catalizador químico." -#: lang/json/COMESTIBLE_from_json.py -msgid "coconut water" -msgid_plural "coconut water" -msgstr[0] "agua de coco" -msgstr[1] "agua de coco" +#: lang/json/GENERIC_from_json.py +msgid "cobalt-60 pellet" +msgid_plural "cobalt-60 pellets" +msgstr[0] "bolita cobalto-60" +msgstr[1] "bolitas cobalto-60" -#. ~ Description for {'str_sp': 'coconut water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'cobalt-60 pellet'} +#: lang/json/GENERIC_from_json.py msgid "" -"Coconut milk, with water added to make it go further. Tastes ok though. " -"Spoils rapidly." +"Radioactive material that used to be a part of some nuclear industry " +"equipment. You are yet to find some use for it." msgstr "" -"Es leche de coco con agua agregada para que rinda más. Tiene buen sabor. Se " -"pudre rápido." +"Es material radioactivo que antes era parte de algún equipamiento industrial" +" nuclear. Todavía no sabés para qué se puede usar." -#: lang/json/COMESTIBLE_from_json.py -msgid "jarred coconut milk" -msgid_plural "jarred coconut milk" -msgstr[0] "leche de coco envasada" -msgstr[1] "leche de coco envasada" +#: lang/json/GENERIC_from_json.py +msgid "sandbag" +msgid_plural "sandbags" +msgstr[0] "bolsa de arena" +msgstr[1] "bolsas de arena" -#. ~ Description for {'str_sp': 'jarred coconut milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'sandbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"This deliciously rich coconut cream is a more concentrated, thicker version " -"of the coconut milk." +"This is a canvas sack filled with sand. It can be used to construct simple " +"barricades." msgstr "" -"Esta deliciosa crema de coco es una versión más concentrada y más densa de " -"la leche de coco." - -#: lang/json/COMESTIBLE_from_json.py -msgid "rice flour" -msgid_plural "rice flour" -msgstr[0] "harina de arroz" -msgstr[1] "harina de arroz" - -#. ~ Description for {'str_sp': 'rice flour'} -#: lang/json/COMESTIBLE_from_json.py -msgid "This rice flour is useful for baking." -msgstr "Esta harina de arroz es útil para cocinar." +"Es una bolsa de tela llena de arena. Puede ser usada para construir " +"barricadas." -#: lang/json/COMESTIBLE_from_json.py -msgid "revival serum" -msgid_plural "revival serums" -msgstr[0] "suero de resucitación" -msgstr[1] "sueros de resucitación" +#: lang/json/GENERIC_from_json.py +msgid "earthbag" +msgid_plural "earthbags" +msgstr[0] "bolsa de tierra" +msgstr[1] "bolsas de tierra" -#. ~ Description for revival serum -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'earthbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"A potent drug, necessary when performing a revival operation on larger " -"animals (including humans). It induces a violent allergic reactions in " -"living organisms, so using it on yourself is a REALLY bad idea." +"This is a canvas sack filled with soil. It can be used to construct simple " +"barricades." msgstr "" -"Una droga potente, necesaria para realizar la operación de resucitación en " -"animales grandes (incluidos los humanos). Induce reacciones alérgicas " -"violentas en los organismos vivos, así que usarlo en vos mismo es una MALA " -"idea." +"Es una bolsa de tela llena de tierra. Puede ser usada para construir " +"barricadas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "2.5L canteen" msgid_plural "2.5L canteens" msgstr[0] "cantimplora de 2.5L" msgstr[1] "cantimploras de 2.5L" #. ~ Description for {'str': '2.5L canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "" "Una cantimplora grande de plástico, con una capacidad de 2.5 litros y una " "correa para colgarla." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "30 gallon barrel" msgid_plural "30 gallon barrels" msgstr[0] "barril de 110 litros" msgstr[1] "barriles de 110 litros" #. ~ Description for {'str': '30 gallon barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "Un barril grande de plástico con tapa resellable." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" msgid_plural "steel drums (100L)" msgstr[0] "tanque de acero (100L)" @@ -49640,11 +51834,11 @@ msgstr[1] "tanques de acero (100L)" #. ~ Description for {'str': 'steel drum (100L)', 'str_pl': 'steel drums #. (100L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge steel barrel with a resealable lid." msgstr "Un barril grande de acero con tapa resellable." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" msgid_plural "steel drums (200L)" msgstr[0] "tanque de acero (200L)" @@ -49652,56 +51846,56 @@ msgstr[1] "tanques de acero (200L)" #. ~ Description for {'str': 'steel drum (200L)', 'str_pl': 'steel drums #. (200L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "Un enorme tambor de acero con tapa resellable." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas sack" msgid_plural "canvas sacks" msgstr[0] "saco de tela" msgstr[1] "sacos de tela" #. ~ Description for {'str': 'canvas sack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "" "Un saco de tela grande y resistente. Tiene un poco de olor a tierra y " "trabajo pesado." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas bag" msgid_plural "canvas bags" msgstr[0] "bolsa de tela" msgstr[1] "bolsas de tela" #. ~ Description for {'str': 'canvas bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "" "Es una pequeña bolsa hecha de tela. Parece que sirve para almacenar hierbas " "secas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bag" msgid_plural "plastic bags" msgstr[0] "bolsa de plástico" msgstr[1] "bolsas de plástico" #. ~ Description for {'str': 'plastic bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "Es una bolsa de plástico chica y abierta. Esencialmente, basura." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "zipper bag" msgid_plural "zipper bags" msgstr[0] "bolsa zipper" msgstr[1] "bolsas zipper" #. ~ Description for {'str': 'zipper bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_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 " @@ -49711,14 +51905,14 @@ msgstr "" " transparente y de plástico, puede ser sellada y vuelta a abrir gracias a " "que tiene una especie de cierre." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "body bag" msgid_plural "body bags" msgstr[0] "bolsa de cadáver" msgstr[1] "bolsas de cadáver" #. ~ Description for {'str': 'body bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large, human size, rectangular bag made of strong plastic, with a zipper " "in the middle. Used to hold a dead body." @@ -49726,50 +51920,50 @@ msgstr "" "Es una bolsa grande, tamaño humano, rectangular hecha de un plástico duro, " "con un cierre en el medio. Se usa para guardar un cadáver." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "IV bag" msgid_plural "IV bags" msgstr[0] "bolsa IV" msgstr[1] "bolsas IV" #. ~ Description for {'str': 'IV bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "" "Es una pequeña bolsa plástica sellada, que contiene líquidos utilizados en " "terapias intravenosas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass bottle" msgid_plural "glass bottles" msgstr[0] "botella de vidrio" msgstr[1] "botellas de vidrio" #. ~ Description for {'str': 'glass bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "Es una botella de vidrio resellable, que puede contener hasta 750 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bottle" msgid_plural "plastic bottles" msgstr[0] "botella de plástico" msgstr[1] "botellas de plástico" #. ~ Description for {'str': 'plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "" "Es una botella de plástico resellable que puede contener hasta 500 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condiment bottle" msgid_plural "condiment bottles" msgstr[0] "botella para condimento" msgstr[1] "botellas para condimento" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An inverted plastic bottle for condiments. Still sealed from factory, " "preserves content from rot until opened." @@ -49778,30 +51972,30 @@ msgstr "" " cerrada de fábrica, preserva su contenido de pudrirse hasta que se abre." #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An inverted plastic bottle for condiments." msgstr "Es una botella de plástico invertida para poner condimentos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small plastic bottle" msgid_plural "small plastic bottles" msgstr[0] "botella pequeña de plástico" msgstr[1] "botellas pequeñas de plástico" #. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "" "Es una botella de plástico resellable, que puede contener hasta 250 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large plastic bottle" msgid_plural "large plastic bottles" msgstr[0] "botella grande de plástico" msgstr[1] "botellas grandes de plástico" #. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." @@ -49809,14 +52003,14 @@ msgstr "" "Es una botella de plástico de dos litros que puede contener mucha gaseosa, " "o, por estos días, agua hervida." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay bowl" msgid_plural "clay bowls" msgstr[0] "tazón de arcilla" msgstr[1] "tazones de arcilla" #. ~ Description for {'str': 'clay bowl'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A clay bowl with a waterproofed hide lid. Can be used as a container or as " "a tool. Holds 250 ml of liquid." @@ -49824,14 +52018,14 @@ msgstr "" "Es un tazón de arcilla con una tapa hermética. Se puede usar como recipiente" " o como herramienta. Tiene una capacidad de 250 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "pack" msgid_plural "packs" msgstr[0] "atado de cigarrillos" msgstr[1] "atados de cigarrillos" #. ~ Description for {'str': 'pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." @@ -49839,33 +52033,33 @@ msgstr "" "ADVERTENCIA DE LA DIRECCIÓN GENERAL DE SALUD PÚBLICA: Fumar Causa Cáncer de " "Pulmón, Enfermedades del Corazón, Enfisema y Puede Perjudicar el Embarazo." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" -msgstr[0] "caja pequeña de cartón" -msgstr[1] "cajas pequeñas de cartón" +msgstr[0] "cajita de cartón" +msgstr[1] "cajitas de cartón" #. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "Es una caja chica de cartón, de unos 30 cm." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" msgstr[0] "caja de cartón" msgstr[1] "cajas de cartón" #. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "" "Es una caja resistente de cartón, más o menos del tamaño de una caja de " "verduras. Genial para embalaje." -#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" msgstr[0] "caja grande de cartón" @@ -49873,7 +52067,7 @@ msgstr[1] "cajas grandes de cartón" #. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A very large cardboard box, the sort children would have loved to hide in, " "when there were still children." @@ -49881,14 +52075,14 @@ msgstr "" "Es una caja de cartón muy grande, de las que los pibes usan para meterse " "adentro, cuando todavía son niños, claro." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "bucket" msgid_plural "buckets" msgstr[0] "balde" msgstr[1] "baldes" #. ~ Description for {'str': 'bucket'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " "legs, French fries, animal feed, farm use, tailgating, crafts, planting " @@ -49901,14 +52095,14 @@ msgstr "" "regalos, llevar canastas de fruta e hierbas, almacenar varios objetos o para" " usar como balde de hielo." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hydration pack" msgid_plural "hydration packs" msgstr[0] "pack de hidratación" msgstr[1] "packs de hidratación" #. ~ Description for {'str': 'hydration pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " @@ -49918,25 +52112,25 @@ msgstr "" "espalda. Tiene un bolsillo grande y un pico con tapa para llenarla de " "líquida con una manguera, y permite tomar sin usar las manos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum can" msgid_plural "aluminum cans" msgstr[0] "lata de aluminio" msgstr[1] "latas de aluminio" #. ~ Description for {'str': 'aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An aluminum can, like what soda comes in." msgstr "Es una lata de aluminio, como la de las gaseosas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened aluminum can" msgid_plural "opened aluminum cans" msgstr[0] "lata abierta de aluminio" msgstr[1] "latas abiertas de aluminio" #. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." @@ -49944,14 +52138,14 @@ msgstr "" "Es una lata de aluminio, como las de las gaseosas. Esta ha sido abierto y no" " puede ser sellada fácilmente." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper carton" msgid_plural "paper cartons" msgstr[0] "tetra" msgstr[1] "tetras" #. ~ Description for {'str': 'paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " It has a threaded cap for easy resealing." @@ -49959,14 +52153,14 @@ msgstr "" "Es un tetra de dos litros de cartón fino, laminado de aluminio y plástico. " "Tiene una tapa a rosca para resellarla fácilmente." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened paper carton" msgid_plural "opened paper cartons" msgstr[0] "tetra abierto" msgstr[1] "tetras abiertos" #. ~ Description for {'str': 'opened paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " This one is open and its contents will spoil." @@ -49974,36 +52168,36 @@ msgstr "" "Es un tetra de dos litros de cartón fino, laminado de aluminio y plástico. " "Está abierto y su contenido se va a pudrir." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" msgstr[0] "bolsa de cerrado al vacío" msgstr[1] "bolsas de cerrado al vacío" #. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "This is a bag of vacuum-packed food." msgstr "Es una bolsa de comida cerrada al vacío." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small tin can" msgid_plural "small tin cans" msgstr[0] "lata pequeña de estaño" msgstr[1] "latas pequeñas de estaño" #. ~ Description for {'str': 'small tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small tin can, like what tuna comes in." msgstr "Es una lata chica de estaño, como las del atún." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small opened tin can" msgid_plural "small opened tin cans" msgstr[0] "lata pequeña de estaño abierta" msgstr[1] "latas pequeñas de estaño abiertas" #. ~ Description for {'str': 'small opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small tin can, like what tuna comes in. This one is opened and can't be " "easily sealed." @@ -50011,25 +52205,25 @@ msgstr "" "Es una lata chica de estaño, como las de atún. Está abierta y no puede ser " "sellada fácilmente." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium tin can" msgid_plural "medium tin cans" msgstr[0] "lata mediana de estaño" msgstr[1] "latas medianas de estaño" #. ~ Description for {'str': 'medium tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A medium tin can, like what soup comes in." msgstr "Es una lata mediana de estaño, como las de tomate." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium opened tin can" msgid_plural "medium opened tin cans" msgstr[0] "lata mediana de estaño abierta" msgstr[1] "latas medianas de estaño abiertas" #. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A medium tin can, like what soup comes in. This one is opened and can't be " "easily sealed." @@ -50037,14 +52231,14 @@ msgstr "" "Es una lata mediana de estaño, como las de tomate. Está abierta y no puede " "ser sellada fácilmente." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic canteen" msgid_plural "plastic canteens" msgstr[0] "cantimplora de plástico" msgstr[1] "cantimploras de plástico" #. ~ Description for {'str': 'plastic canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." @@ -50052,14 +52246,14 @@ msgstr "" "Una cantimplora de tipo militar con una capacidad de 1.5 litros. Comúnmente " "se lleva colgada en la cadera." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "thermos" msgid_plural "thermoses" msgstr[0] "termo" msgstr[1] "termos" #. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." @@ -50068,14 +52262,14 @@ msgstr "" "temperatura, ayuda a mantener las cosas frías o calientes. Puede contener " "hasta 1L de líquido." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay canister" msgid_plural "clay canisters" msgstr[0] "vasija de arcilla" msgstr[1] "vasijas de arcilla" #. ~ Description for {'str': 'clay canister'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." @@ -50083,27 +52277,27 @@ msgstr "" "Es un recipiente frágil de arcilla. Se puede usar para hacer granadas " "rudimentarias de impacto o para almacenar líquidos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay hydria" msgid_plural "clay hydrias" msgstr[0] "hidria de arcilla" msgstr[1] "hidrias de arcilla" #. ~ Description for {'str': 'clay hydria'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "" "Es una vasija de arcilla de 15 litros con tres manijas para poder " "transportarla y para servir." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large clay pot" msgid_plural "large clay pots" msgstr[0] "pote grande de arcilla" msgstr[1] "potes grandes de arcilla" #. ~ Description for {'str': 'large clay pot'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky and heavy clay pot with a waterproofed hide lid, meant to store " "water, but can carry other liquids in a pinch." @@ -50111,78 +52305,78 @@ msgstr "" "Es un pote grande y pesado de arcilla con una tapa hermética, hecho para " "almacenar agua pero puede llevar otros líquidos si es necesario." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic cup" msgid_plural "plastic cups" msgstr[0] "vaso de plástico" msgstr[1] "vasos de plástico" #. ~ Description for {'str': 'plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup." msgstr "Es un vaso pequeño que en algún momento estuvo sellado al vacío." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened plastic cup" msgid_plural "opened plastic cups" msgstr[0] "vaso abierto de plástico" msgstr[1] "vasos abiertos de plástico" #. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "" "Es un vaso pequeño que en algún momento estuvo sellado al vacío. Ahora es " "esencialmente basura." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass flask" msgid_plural "glass flasks" msgstr[0] "frasco de vidrio" msgstr[1] "frascos de vidrio" #. ~ Description for {'str': 'glass flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "" "Es un frasco cónico de laboratorio con una capacidad de 250 ml y un tapón de" " goma." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "test tube" msgid_plural "test tubes" msgstr[0] "tubo de ensayo" msgstr[1] "tubos de ensayo" #. ~ Description for {'str': 'test tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "" "Es un tubo de 10ml cilíndrico de ensayo de laboratorio, con un tapón de " "goma." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "beaker" msgid_plural "beakers" msgstr[0] "vaso de precipitado" msgstr[1] "vasos de precipitado" #. ~ Description for {'str': 'beaker'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "" "Es un vaso de precipitado de laboratorio, de 250ml. Es, básicamente, un vaso" " con delirios de grandesa." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" msgstr[0] "probetas" msgstr[1] "probeta" #. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A tall, narrow glass cylinder with precise markings for measuring fluid " "quantities. An important science tool, it is also useful for anal retentive" @@ -50192,14 +52386,14 @@ msgstr "" "cantidad de fluído que contiene. Es una herramienta importante en la " "ciencia, y también lo usan los chefs obsesivos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" msgstr[0] "tubo de microcentrífuga" msgstr[1] "tubos de microcentrífuga" #. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "These plastic tubes, with little built in snap-caps, are a great way to " "store a tiny amount of liquid. Great for jello shooters if 1mL is enough " @@ -50210,14 +52404,14 @@ msgstr "" "gelatina si es que 1mL te parece suficiente para un disparo. La gente copada" " les dice \"eppis\"." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hip flask" msgid_plural "hip flasks" msgstr[0] "petaca" msgstr[1] "petacas" #. ~ Description for {'str': 'hip flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." @@ -50225,27 +52419,27 @@ msgstr "" "Es un frasco de metal de 250 ml con una tapa con bisagras. Se usa comúnmente" " para transportar alcohol de manera discreta." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" msgstr[0] "jarra de vidrio de 3L" msgstr[1] "jarras de vidrio de 3L" #. ~ Description for {'str': '3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Es una jarra de vidrio de 3 litros con tapa de metal a rosca. Se usa para " "conservas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed 3L glass jar" msgid_plural "sealed 3L glass jars" msgstr[0] "jarra sellada de vidrio de 3L" msgstr[1] "jarras selladas de vidrio de 3L" #. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." @@ -50254,27 +52448,27 @@ msgstr "" "se usa para conservas. Está bien sellada para evitar que su contenido se " "pudra." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass jar" msgid_plural "glass jars" msgstr[0] "jarra de vidrio" msgstr[1] "jarras de vidrio" #. ~ Description for {'str': 'glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Es una jarra de vidrio de medio litro con tapa de metal a rosca. Se usa para" " conservas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed glass jar" msgid_plural "sealed glass jars" msgstr[0] "frasco sellado de vidrio" msgstr[1] "frascos sellados de vidrio" #. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half-liter glass jar with a metal screw top lid, used for canning. Sealed" " tightly and will preserve the contents from rot (assuming it was sterile " @@ -50284,14 +52478,14 @@ msgstr "" "se usa para conservas. Si se lo sella bien puede conservar su contenido sin " "que se pudra (asumiendo que estaba esterilizada antes del sellado)." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic jerrycan" msgid_plural "plastic jerrycans" msgstr[0] "bidón de plástico" msgstr[1] "bidones de plástico" #. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." @@ -50299,14 +52493,14 @@ msgstr "" "Es un bidón voluminoso de plástico hecho para llevar nafta, pero puede " "contener otros líquidos si es necesario." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel jerrycan" msgid_plural "steel jerrycans" msgstr[0] "bidón de acero" msgstr[1] "bidones de acero" #. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." @@ -50314,20 +52508,20 @@ msgstr "" "Es un bidón de acero hecho para llevar nafta, pero puede contener otros " "líquidos si es necesario." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay jug" msgid_plural "clay jugs" msgstr[0] "jarra de arcilla" msgstr[1] "jarras de arcilla" #. ~ Description for {'str': 'clay jug'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "" "Un recipiente de arcilla con una tapa, usado para almacenar y servir " "líquidos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "gallon jug" msgid_plural "gallon jugs" msgstr[0] "jarro de galón" @@ -50335,20 +52529,20 @@ msgstr[1] "jarros de galón" #. ~ Description for {'str': 'gallon jug'} #. ~ Description for TEST gallon jug -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "" "Es un jarro normal de plástico que se usa para la leche, o para los " "productos de limpieza en los hogares. Tiene una capacidad de 3.75 litros." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum keg" msgid_plural "aluminum kegs" msgstr[0] "barril de aluminio" msgstr[1] "barriles de aluminio" #. ~ Description for {'str': 'aluminum keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." @@ -50356,14 +52550,14 @@ msgstr "" "Un barril liviano y reutilizable de aluminio, usado para almacenar cerveza. " "Tiene una capacidad de 50 litros." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel keg" msgid_plural "steel kegs" msgstr[0] "barril de acero" msgstr[1] "barriles de acero" #. ~ Description for {'str': 'steel keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." @@ -50371,14 +52565,14 @@ msgstr "" "Es un pesado barril reutilizable de acero, usado para transportar cerveza. " "Tiene una capacidad de 50 litros." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large sealed stomach" msgid_plural "large sealed stomachs" msgstr[0] "estómago grande sellado" msgstr[1] "estómagos grandes sellados" #. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." @@ -50386,7 +52580,7 @@ msgstr "" "El estómago de una criatura grande, limpiado y sellado con hillos. Puede " "contener hasta 3 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (60L)" msgid_plural "metal tanks (60L)" msgstr[0] "tanque de metal (60L)" @@ -50394,33 +52588,33 @@ msgstr[1] "tanques de metal (60L)" #. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks #. (60L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "" "Es un tanque grande de metal que puede contener líquidos. Se usa para " "fabricar otras cosas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (2L)" msgid_plural "metal tanks (2L)" msgstr[0] "tanque de metal (2L)" msgstr[1] "tanques de metal (2L)" #. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "" "Es un tanque chico de metal que puede contener líquidos o gases. Se usa para" " fabricar otras cosas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" msgstr[0] "cantimplora de madera" msgstr[1] "cantimploras de madera" #. ~ Description for {'str': 'wooden canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A water canteen made from wood, secured by metal bands and sealed with wax " "or pitch. Holds 1.5 liters and has a simple carry strap." @@ -50429,14 +52623,14 @@ msgstr "" " de metal y sellada con cera o alquitrán. Puede contener hasta 1.5 litros y " "tiene una correa para llevarla." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed stomach" msgid_plural "sealed stomachs" msgstr[0] "estómago sellado" msgstr[1] "estómagos sellados" #. ~ Description for {'str': 'sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." @@ -50444,7 +52638,7 @@ msgstr "" "Es el estómago de una criatura, limpiado y sellado con un hilo. Puede " "contener hasta 1.5 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small waterskin" msgid_plural "small waterskins" msgstr[0] "odre pequeño" @@ -50452,7 +52646,7 @@ msgstr[1] "odres pequeños" #. ~ Description for {'str': 'small waterskin'} #. ~ Description for TEST small waterskin -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." @@ -50460,28 +52654,28 @@ msgstr "" "Es una bolsa hermética pequeña de cuero con una correa para colgarla. Tiene " "una capacidad de 1.5 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "waterskin" msgid_plural "waterskins" msgstr[0] "odre" msgstr[1] "odres" #. ~ Description for {'str': 'waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "" "Es una bolsa hermética de cuero con una correa para colgarla. Tiene una " "capacidad de 3 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large waterskin" msgid_plural "large waterskins" msgstr[0] "odre grande" msgstr[1] "odres grandes" #. ~ Description for {'str': 'large waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." @@ -50489,14 +52683,14 @@ msgstr "" "Es una bolsa hermética grande de cuero con una correa para colgarla. Tiene " "una capacidad de 5 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden barrel" msgid_plural "wooden barrels" msgstr[0] "barril de madera" msgstr[1] "barriles de madera" #. ~ Description for {'str': 'wooden barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "Traditionally made of white oak; these vessels are known for delivering " "delicious whiskey to the future. It has a capacity of 100 liters." @@ -50505,49 +52699,64 @@ msgstr "" "conocidos por su capacidad de guardar deliciosos whiskys. Tiene una " "capacidad de 100 litros." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper wrapper" msgid_plural "paper wrappers" -msgstr[0] "papel estraza" -msgstr[1] "papel estraza" +msgstr[0] "envoltorio de papel" +msgstr[1] "envoltorios de papel" #. ~ Description for {'str': 'paper wrapper'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." -msgstr "Es un pedazo de papel estraza. Bueno para encender fuegos." +msgstr "Es un pedazo de envoltorio de papel. Bueno para encender fuegos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "envoltorio" +msgstr[1] "envoltorios" + +#. ~ Description for {'str': 'wrapper'} +#: lang/json/GENERIC_from_json.py +msgid "" +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." +msgstr "" +"Estampado en letras grandes dice \"Barra de Proteínas DaiZoom, traída por " +"SoyPelusa\" sobre este envoltorio antigrasa." + +#: lang/json/GENERIC_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" msgstr[0] "vaso de poliestireno extruido" msgstr[1] "vasos de poliestireno extruido" #. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "Es un vasito descartable y barato con tapa plástica y pajita." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic tub" msgid_plural "plastic tubs" msgstr[0] "balde de plástico" msgstr[1] "baldes de plástico" #. ~ Description for {'str': 'plastic tub'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "" "Es un balde grande cuadrado de plástico que se usa comúnmente para llevar " "helado." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" msgstr[0] "preservativo" msgstr[1] "preservativos" #. ~ Description for {'str': 'condom'} -#: lang/json/CONTAINER_from_json.py +#: 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 " @@ -50557,27 +52766,27 @@ msgstr "" "de látex. Esto puede usarse para improvisar un contenedor de agua, pero que " "cada uno adivine para qué se puede usar." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "balloon" msgid_plural "balloons" msgstr[0] "globo" msgstr[1] "globos" #. ~ Description for {'str': 'balloon'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A child's balloon. This could be used as a makeshift water container." msgstr "" "El globo de los niños. Esto puede usarse para improvisar un contenedor de " "agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large tin can" msgid_plural "large tin cans" msgstr[0] "lata grande de estaño" msgstr[1] "latas grandes de estaño" #. ~ Description for {'str': 'large tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. Holds a substantial amount of " "food." @@ -50585,14 +52794,14 @@ msgstr "" "Es una lata grande de estaño, como las del ananá. Contiene una buena " "cantidad de comida." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large opened tin can" msgid_plural "large opened tin cans" msgstr[0] "lata grande de estaño abierta" msgstr[1] "latas grandes de estaño abiertas" #. ~ Description for {'str': 'large opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. This one is opened and can't be " "easily sealed." @@ -50600,7 +52809,7 @@ msgstr "" "Es una lata grande de estaño, como las del ananá. Esta ha sido abierta y no " "puede ser sellada fácilmente." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "survival kit box" msgid_plural "survival kit boxes" msgstr[0] "caja de kit de supervivencia" @@ -50608,7 +52817,7 @@ msgstr[1] "cajas de kit de supervivencia" #. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum box that used to contain a small survival kit. Can hold 1 liter" " of liquid." @@ -50616,834 +52825,18 @@ msgstr "" "Es una caja de aluminio que antes contenía un kit de supervivencia. Puede " "contener hasta 1 litro de líquido." -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "tazón de plástico" -msgstr[1] "tazones de plástico" - -#. ~ Description for {'str': 'plastic bowl'} -#: lang/json/CONTAINER_from_json.py -msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." -msgstr "" -"Es un tazón de plástico con su conveniente tapa. Puede contener hasta 750 ml" -" de líquido." - -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "botella de acero" -msgstr[1] "botellas de acero" - -#. ~ Description for {'str': 'steel bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Es una botella de acero inoxidable, que puede contener hasta 750 ml." - -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "botella plegable de plástico" -msgstr[1] "botellas plegables de plástico" - -#. ~ Description for {'str': 'foldable plastic bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Es una botella flexible de plástico, fácil de transportar, que puede " -"contener hasta 500 ml." - -#: lang/json/CONTAINER_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" -msgstr[0] "equipo de extracción de sangre" -msgstr[1] "equipos de extracción de sangre" - -#. ~ Description for {'str': 'blood draw kit'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." -msgstr "" -"Es un equipo para extraer sangre, que incluye un tubo de ensayo para " -"contener la muestra. Usalo para extraer sangre, ya sea tuya o de un cuerpo " -"que tengas cerca." - -#: lang/json/CONTAINER_from_json.py -msgid "small metal tank" -msgid_plural "small metal tanks" -msgstr[0] "tanque pequeño de metal" -msgstr[1] "tanques pequeños de metal" - -#. ~ Description for small metal tank -#: lang/json/CONTAINER_from_json.py -msgid "A small metal tank for holding gas or liquids. Useful for crafting." -msgstr "" -"Un tanque chico de metal que puede llevar líquidos o gas. Se usa para " -"fabricar otras cosas." - -#: lang/json/CONTAINER_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" -msgstr[0] "bol" -msgstr[1] "bols" - -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." -msgstr "" -"Es un boi ancho y playo utilizado para líquidos, hecho de un pedazo de " -"metal. Ideal para recolectar agua." - -#: lang/json/CONTAINER_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" -msgstr[0] "tambor de residuos peligrosos" -msgstr[1] "tambores de residuos peligrosos" - -#. ~ Description for {'str': 'hazardous waste drum'} -#: lang/json/CONTAINER_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." -msgstr "Es un tambor amarillo hecho para almacenar las sustancias peligrosas." - -#: lang/json/CONTAINER_from_json.py -msgid "garden pot" -msgid_plural "garden pots" -msgstr[0] "maceta" -msgstr[1] "macetas" - -#. ~ Description for garden pot -#: lang/json/CONTAINER_from_json.py -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 "" -"Es una maceta especial para cultivar plantas, conservándolas en condiciones " -"cómodas para su máxima producción. Puede usarse con varias semillas." - -#: lang/json/CONTAINER_from_json.py -msgid "endless flask" -msgid_plural "endless flasks" -msgstr[0] "frasco sin fin" -msgstr[1] "frascos sin fin" - -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "" -"Abrís el frasco y descubrís que está lleno de un dulce, dulce ¡whisky!" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "The flask isn't done refilling yet." -msgstr "El frasco todavía no se terminó de volver a llenar." - -#: lang/json/CONTAINER_from_json.py -msgid "cauldron of purification" -msgid_plural "cauldrons of purification" -msgstr[0] "caldera de purificación" -msgstr[1] "calderas de purificación" - -#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons -#. of purification'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This cauldron made of demon spider chitin seems to absorb the light. It " -"will hold 16 liters of material and will absorb poisons from it. It may " -"have other properties that require discovery." -msgstr "" -"Esta caldera, hecha de quitina de araña demoníaca, parece absorber la luz. " -"Puede contener hasta 16 litros de material y absorberá las pociones. Puede " -"tener otras propiedades que hay que descubrir." - -#: lang/json/CONTAINER_from_json.py -msgid "aluminum foil wrap" -msgid_plural "aluminum foil wraps" -msgstr[0] "envoltorio de papel aluminio" -msgstr[1] "envoltorios de papel aluminio" - -#. ~ Description for aluminum foil wrap -#: lang/json/CONTAINER_from_json.py -msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." -msgstr "" -"Es un pedazo medio arrugado de papel aluminio, usado para cocinar y para " -"hornear." - -#: lang/json/CONTAINER_from_json.py -msgid "TEST gallon jug" -msgid_plural "TEST gallon jugs" -msgstr[0] "TEST jarro de galón" -msgstr[1] "TEST jarros de galón" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST small waterskin" -msgid_plural "TEST small waterskins" -msgstr[0] "TEST odre pequeño" -msgstr[1] "TEST odres pequeños" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous capsule" -msgid_plural "gelatinous capsules" -msgstr[0] "cápsula gelatinosa" -msgstr[1] "cápsulas gelatinosas" - -#. ~ Description for {'str': 'gelatinous capsule'} -#. ~ Description for {'str': 'gray cocoon'} -#. ~ Description for {'str': 'oozing pod'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"While the blob is very eager to be fed, it's not as enthusiastic about " -"giving up liquids. A few alterations are necessary." -msgstr "" -"Aunque el blobo está con muchas ganas de que lo alimenten, no lo entusiasma " -"igualmente entregar líquidos. Hay que hacerle unas modificaciones." - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous tank" -msgid_plural "gelatinous tanks" -msgstr[0] "tanque gelatinoso" -msgstr[1] "tanques gelatinosos" - -#: lang/json/CONTAINER_from_json.py -msgid "gray cocoon" -msgid_plural "gray cocoons" -msgstr[0] "capullo gris" -msgstr[1] "capullos grises" - -#: lang/json/CONTAINER_from_json.py -msgid "gray tank" -msgid_plural "gray tanks" -msgstr[0] "tanque gris" -msgstr[1] "tanques grises" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing pod" -msgid_plural "oozing pods" -msgstr[0] "vaina supurante" -msgstr[1] "vainas supurantes" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing tank" -msgid_plural "oozing tanks" -msgstr[0] "tanque supurante" -msgstr[1] "tanques supurantes" - -#: lang/json/ENGINE_from_json.py -msgid "internal combustion engine" -msgid_plural "internal combustion engines" -msgstr[0] "motor de combustión interna" -msgstr[1] "motores de combustión interna" - -#: lang/json/ENGINE_from_json.py -msgid "base diesel engine" -msgid_plural "base diesel engines" -msgstr[0] "motor diésel" -msgstr[1] "motores diésel" - -#: lang/json/ENGINE_from_json.py -msgid "base gasoline engine" -msgid_plural "base gasoline engines" -msgstr[0] "motor a nafta" -msgstr[1] "motores a nafta" - -#: lang/json/ENGINE_from_json.py -msgid "base steam engine" -msgid_plural "base steam engines" -msgstr[0] "motor de vapor" -msgstr[1] "motores de vapor" - -#: lang/json/ENGINE_from_json.py -msgid "1-cylinder engine" -msgid_plural "1-cylinder engines" -msgstr[0] "motor de 1 cilindro" -msgstr[1] "motores de 1 cilindro" - -#. ~ Description for {'str': '1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A single-cylinder 4-stroke combustion engine." -msgstr "Un motor de combustión de 4 tiempos, de un solo cilindro." - -#: lang/json/ENGINE_from_json.py -msgid "large 1-cylinder engine" -msgid_plural "large 1-cylinder engines" -msgstr[0] "motor grande de 1 cilindro" -msgstr[1] "motores grandes de 1 cilindro" - -#. ~ Description for {'str': 'large 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A powerful high-compression single-cylinder 4-stroke combustion engine." -msgstr "" -"Es un motor de combustión potente de alta compresión de 4 tiempos, de un " -"solo cilindro." - -#: lang/json/ENGINE_from_json.py -msgid "small 1-cylinder engine" -msgid_plural "small 1-cylinder engines" -msgstr[0] "motor chico de 1 cilindro" -msgstr[1] "motores chicos de 1 cilindro" - -#. ~ Description for {'str': 'small 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "Un pequeño motor de combustión de un solo cilindro y de 2 tiempos." - -#: lang/json/ENGINE_from_json.py -msgid "Inline-4 engine" -msgid_plural "Inline-4 engines" -msgstr[0] "motor en línea de 4 cilindros" -msgstr[1] "motores en línea de 4 cilindros" - -#. ~ Description for {'str': 'Inline-4 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "Un pequeño pero poderoso motor de combustión de 4 cilindros en línea." - -#: lang/json/ENGINE_from_json.py -msgid "I6 diesel engine" -msgid_plural "I6 diesel engines" -msgstr[0] "motor diésel I6" -msgstr[1] "motores diésel I6" - -#. ~ Description for {'str': 'I6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful straight-6 diesel engine." -msgstr "Un poderoso motor diésel de 6 cilindros en línea." - -#: lang/json/ENGINE_from_json.py -msgid "V-twin engine" -msgid_plural "V-twin engines" -msgstr[0] "motor de dos cilindros en V" -msgstr[1] "motores de dos cilindros en V" - -#. ~ Description for {'str': 'V-twin engine'} -#: lang/json/ENGINE_from_json.py -msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "Un motor de combustión de 4 tiempos, de dos cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V6 engine" -msgid_plural "V6 engines" -msgstr[0] "motor V6" -msgstr[1] "motores V6" - -#. ~ Description for {'str': 'V6 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder combustion engine." -msgstr "Un poderoso motor de combustión de 6 cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V6 diesel engine" -msgid_plural "V6 diesel engines" -msgstr[0] "motor diésel V6" -msgstr[1] "motores diésel V6" - -#. ~ Description for {'str': 'V6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder diesel engine." -msgstr "Un poderoso motor diésel de 6 cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V8 engine" -msgid_plural "V8 engines" -msgstr[0] "motor V8" -msgstr[1] "motores V8" - -#. ~ Description for {'str': 'V8 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "Un gran motor muy poderoso de combustión de 8 cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V8 diesel engine" -msgid_plural "V8 diesel engines" -msgstr[0] "motor diésel V8" -msgstr[1] "motores diésel V8" - -#. ~ Description for {'str': 'V8 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 8-cylinder diesel engine." -msgstr "Un poderoso motor diésel de 8 cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V12 engine" -msgid_plural "V12 engines" -msgstr[0] "motor V12" -msgstr[1] "motores V12" - -#. ~ Description for {'str': 'V12 engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into high end " -"sports cars." -msgstr "" -"Un enorme y extremadamente poderoso motor V12, usualmente utilizado por " -"autos deportivos de alta gama." - -#: lang/json/ENGINE_from_json.py -msgid "V12 diesel engine" -msgid_plural "V12 diesel engines" -msgstr[0] "motor diésel V12" -msgstr[1] "motores diésel V12" - -#. ~ Description for {'str': 'V12 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into heavy " -"trucks." -msgstr "" -"Es un motor V12 enorme y extremadamente poderoso, usualmente utilizado en " -"camiones grandes." - -#: lang/json/ENGINE_from_json.py -msgid "makeshift steam engine" -msgid_plural "makeshift steam engines" -msgstr[0] "motor de vapor improvisado" -msgstr[1] "motores de vapor improvisado" - -#. ~ Description for {'str': 'makeshift steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small, primitive, steam engine. An integrated boiler burns coal to heat " -"water into steam, driving a reciprocating shaft. A condenser recaptures the" -" water, making this a closed cycle system." -msgstr "" -"Es un pequeño y primitivo motor de vapor. Una caldera integrada quema carbón" -" para calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " -"condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "small steam engine" -msgid_plural "small steam engines" -msgstr[0] "motor chico de vapor" -msgstr[1] "motores chico de vapor" - -#. ~ Description for {'str': 'small steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condenser recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Es un pequeño motor de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " -"condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "medium steam engine" -msgid_plural "medium steam engines" -msgstr[0] "motor mediano de vapor" -msgstr[1] "motores mediano de vapor" - -#. ~ Description for {'str': 'medium steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium-sized steam engine. An integrated boiler burns coal to heat water " -"into steam, driving a reciprocating shaft. A condenser recaptures the " -"water, making this a closed cycle system." -msgstr "" -"Es un motor de vapor de tamaño mediano. Una caldera integrada quema carbón " -"para calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " -"condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "1350 hp gas turbine engine" -msgid_plural "1350 hp gas turbine engines" -msgstr[0] "motor de turbina de gas 1350 cv" -msgstr[1] "motores de turbina de gas 1350 cv" - -#. ~ Description for {'str': '1350 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A gas turbine engine, usually used for military vehicles. Known for its " -"high rate of fuel consumption." -msgstr "" -"Es un motor de turbina de gas, usualmente utilizado en vehículos militares. " -"Es famoso por su alto consumo de combustible." - -#: lang/json/ENGINE_from_json.py -msgid "1900 hp gas turbine engine" -msgid_plural "1900 hp gas turbine engines" -msgstr[0] "motor de turbina de gas 1900 cv" -msgstr[1] "motores de turbina de gas 1900 cv" - -#. ~ Description for {'str': '1900 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large gas turbine engine, usually used for military helicopters. Known " -"for its high rate of fuel consumption." -msgstr "" -"Es un motor grande de turbina de gas, usualmente utilizado en helicópteros " -"militares. Es famoso por su alto consumo de combustible." - -#: lang/json/ENGINE_from_json.py -msgid "6000 hp gas turbine engine" -msgid_plural "6000 hp gas turbine engines" -msgstr[0] "motor de turbina de gas 6000 cv" -msgstr[1] "motores de turbina de gas 6000 cv" - -#. ~ Description for {'str': '6000 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " -"high rate of fuel consumption." -msgstr "" -"Es un motor enorme de turbina de gas, usualmente utilizado en el V-22 " -"Osprey. Es famoso por su alto consumo de combustible." - -#: lang/json/ENGINE_from_json.py -msgid "large steam engine" -msgid_plural "large steam engines" -msgstr[0] "motor grande de vapor" -msgstr[1] "motores grandes de vapor" - -#. ~ Description for {'str': 'large steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Es un motor grande de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " -"condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam engine" -msgid_plural "huge steam engines" -msgstr[0] "motor enorme de vapor" -msgstr[1] "motores enormes de vapor" - -#. ~ Description for {'str': 'huge steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Es un motor enorme de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " -"condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "small steam turbine" -msgid_plural "small steam turbines" -msgstr[0] "turbina chica de vapor" -msgstr[1] "turbinas chicas de vapor" - -#. ~ Description for {'str': 'small steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Es una turbina chica de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" -" captura el agua, convirtiendo esto en un sistema cíclico cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "medium steam turbine" -msgid_plural "medium steam turbines" -msgstr[0] "turbina mediana de vapor" -msgstr[1] "turbinas medianas de vapor" - -#. ~ Description for {'str': 'medium steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium sized steam turbine. An integrated boiler burns coal to heat water" -" into steam, driving a spinning turbine. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Es una turbina de vapor de tamaño mediano. Una caldera integrada quema " -"carbón para calentar agua haciendo vapor, moviendo una turbina giratoria. Un" -" condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "large steam turbine" -msgid_plural "large steam turbines" -msgstr[0] "turbina grande de vapor" -msgstr[1] "turbinas grandes de vapor" - -#. ~ Description for {'str': 'large steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Es una turbina grande de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" -" captura el agua, convirtiendo esto en un sistema cíclico cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam turbine" -msgid_plural "huge steam turbines" -msgstr[0] "turbina enorme de vapor" -msgstr[1] "turbinas enormes de vapor" - -#. ~ Description for {'str': 'huge steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Es una turbina enorme de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" -" captura el agua, convirtiendo esto en un sistema cíclico cerrado." - -#: lang/json/GENERIC_from_json.py -msgid "fetid goop" -msgid_plural "fetid goops" -msgstr[0] "pegote fétido" -msgstr[1] "pegotes fétidos" - -#. ~ Description for {'str': 'fetid goop'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A foul smelling goop. It has a disgusting texture and a powerful smell that" -" overrides every other smell around it." -msgstr "" -"Es un pego te olor horrendo. Tiene una textura desagradable y un olor tan " -"potente que tapa cualquier otro olor cercano." - -#: lang/json/GENERIC_from_json.py -msgid "limestone shard" -msgid_plural "limestone shards" -msgstr[0] "fragmento de caliza" -msgstr[1] "fragmentos de caliza" - -#. ~ Description for {'str': 'limestone shard'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" -" alkaline properties may yet find some use." -msgstr "" -"Un pequeño fragmento de caliza. Muy poco sólido y no sirve como arma, pero " -"sus propiedades alcalinas pueden tener alguna utilidad." - -#: lang/json/GENERIC_from_json.py -msgid "rock salt" -msgid_plural "rock salt" -msgstr[0] "sal de roca" -msgstr[1] "sal de roca" - -#. ~ Description for {'str_sp': 'rock salt'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of rock salt crystals. Could be refined into table salt." -msgstr "" -"Es un puñado de cristales de sal de roca. Puede ser refinada para hacer sal " -"de mesa." - -#: lang/json/GENERIC_from_json.py -msgid "rhodonite" -msgid_plural "rhodonite" -msgstr[0] "rodonita" -msgstr[1] "rodonita" - -#. ~ Description for {'str_sp': 'rhodonite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of rhodonite. It has manganese dioxide covering and going through " -"it in veins, which can be obtained using a chisel." -msgstr "" -"Es un pedazo de rodonita. Está cubierto de óxido de manganeso y también " -"tiene adentro, que puede ser obtenido con un cincel." - -#: lang/json/GENERIC_from_json.py -msgid "zincite" -msgid_plural "zincite" -msgstr[0] "zincita" -msgstr[1] "zincita" - -#. ~ Description for {'str_sp': 'zincite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " -"reduction with a source of carbon." -msgstr "" -"Es un pedazo de zincita. Puede ser refinado para crear óxido de zinc y luego" -" en zinc por reducción con una fuente de carbono." - #: lang/json/GENERIC_from_json.py -msgid "hickory root" -msgid_plural "hickory roots" -msgstr[0] "raíz de pacana" -msgstr[1] "raíces de hickory" +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" +msgstr[0] "cajita de cartón con saquitos de té" +msgstr[1] "cajitas de cartón con saquitos de té" -#. ~ Description for {'str': 'hickory root'} +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': +#. 'small cardboard boxes of tea bags'} #: lang/json/GENERIC_from_json.py -msgid "A root from a hickory tree. It has an earthy smell." -msgstr "Es una raíz de un nogal americano o hickory. Tiene olor a tierra." - -#: lang/json/GENERIC_from_json.py -msgid "hickory nuts" -msgid_plural "hickory nuts" -msgstr[0] "nueces hickory" -msgstr[1] "nueces hickory" - -#. ~ Description for {'str_sp': 'hickory nuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hickory tree, still in their shell." +msgid "A very small cardboard box with tea brand written on it." msgstr "" -"Es un puñado de nueces duras del árbol hickory o nogal americano, todavía " -"con sus cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "pecans" -msgid_plural "pecans" -msgstr[0] "nueces de pacana" -msgstr[1] "nueces de pacana" - -#. ~ Description for {'str_sp': 'pecans'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pecan tree, still in their shell." -msgstr "" -"Es un puñado de frutos secos duros del pacano, todavía con sus cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "pistachios" -msgid_plural "pistachios" -msgstr[0] "pistachos" -msgstr[1] "pistachos" - -#. ~ Description for {'str_sp': 'pistachios'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pistachio tree, still in their shell." -msgstr "" -"Es un puñado de frutos secos duros del árbol del pistacho, todavía con sus " -"cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "almonds" -msgid_plural "almonds" -msgstr[0] "almendras" -msgstr[1] "almendras" - -#. ~ Description for {'str_sp': 'almonds'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from an almond tree, still in their shell." -msgstr "" -"Es un puñado de frutos secos duros del almendro, todavía con sus cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "peanuts" -msgid_plural "peanuts" -msgstr[0] "maníes" -msgstr[1] "maníes" - -#. ~ Description for {'str_sp': 'peanuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a peanut bush, still in their shell." -msgstr "" -"Es un puñado de frutos secos duros del maní, todavía con sus cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "hazelnuts" -msgid_plural "hazelnuts" -msgstr[0] "avellanas" -msgstr[1] "avellanas" - -#. ~ Description for {'str_sp': 'hazelnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hazelnut tree, still in their shell." -msgstr "" -"Es un puñado de frutos secos duros del avellano, todavía con sus cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "chestnuts" -msgid_plural "chestnuts" -msgstr[0] "castañas" -msgstr[1] "castañas" - -#. ~ Description for {'str_sp': 'chestnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a chestnut tree, still in their shell." -msgstr "" -"Es un puñado de frutos secos duros del castaño, todavía con sus cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "walnuts" -msgid_plural "walnuts" -msgstr[0] "nueces" -msgstr[1] "nueces" - -#. ~ Description for {'str_sp': 'walnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a walnut tree, still in their shell." -msgstr "" -"Es un puñado de frutos secos duros del nogal, todavía con sus cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "steel grille" -msgid_plural "steel grilles" -msgstr[0] "rejilla de acero" -msgstr[1] "rejillas de acero" - -#. ~ Description for {'str': 'steel grille'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a metal grille. It can be used as a framework for making a chemical" -" catalyst." -msgstr "" -"Esto es una rejilla de acero. Puede ser usada como estructura para hacer un " -"catalizador químico." - -#: lang/json/GENERIC_from_json.py -msgid "cobalt-60 pellet" -msgid_plural "cobalt-60 pellets" -msgstr[0] "bolita cobalto-60" -msgstr[1] "bolitas cobalto-60" - -#. ~ Description for {'str': 'cobalt-60 pellet'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Radioactive material that used to be a part of some nuclear industry " -"equipment. You are yet to find some use for it." -msgstr "" -"Es material radioactivo que antes era parte de algún equipamiento industrial" -" nuclear. Todavía no sabés para qué se puede usar." - -#: lang/json/GENERIC_from_json.py -msgid "sandbag" -msgid_plural "sandbags" -msgstr[0] "bolsa de arena" -msgstr[1] "bolsas de arena" - -#. ~ Description for {'str': 'sandbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with sand. It can be used to construct simple " -"barricades." -msgstr "" -"Es una bolsa de tela llena de arena. Puede ser usada para construir " -"barricadas." - -#: lang/json/GENERIC_from_json.py -msgid "earthbag" -msgid_plural "earthbags" -msgstr[0] "bolsa de tierra" -msgstr[1] "bolsas de tierra" - -#. ~ Description for {'str': 'earthbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with soil. It can be used to construct simple " -"barricades." -msgstr "" -"Es una bolsa de tela llena de tierra. Puede ser usada para construir " -"barricadas." +"Es una cajita muy chica de cartón con una marca de té escrita en el costado." #: lang/json/GENERIC_from_json.py msgid "microwave generator" @@ -51463,8 +52856,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "explosively pumped flux compression generator" msgid_plural "explosively pumped flux compression generators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "generador de flujo comprimido por explosión" +msgstr[1] "generadores de flujo comprimido por explosión" #. ~ Description for {'str': 'explosively pumped flux compression generator'} #: lang/json/GENERIC_from_json.py @@ -51474,6 +52867,10 @@ msgid "" " explosives allow the device to produce large amounts of electrical energy " "in a very short time." msgstr "" +"Este gran dispositivo consiste más que nada en un tubo de cable de cobre " +"alrededor de un caño de cobre grande llena de explosivos. Cuando se lo " +"detona apropiadamente, los explosivos permiten que el aparato produzca " +"grandes cantidades de energía eléctrica en un corto tiempo." #: lang/json/GENERIC_from_json.py msgid "fake item" @@ -51526,6 +52923,12 @@ msgstr "" "Es un dispositivo adivinador de la suerte de los años '50. El apoyo moral " "que no sabías que necesitabas." +#: lang/json/GENERIC_from_json.py +msgid "deck of cards" +msgid_plural "decks of cards" +msgstr[0] "mazo de cartas" +msgstr[1] "mazos de cartas" + #. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py msgid "A deck of 52 playing cards." @@ -51561,6 +52964,166 @@ msgstr "" "Es la foto de una familia sonriente en un campamento. Uno de los padres " "parece como una versión más limpia y feliz de la persona que conociste." +#: lang/json/GENERIC_from_json.py +msgid "chess set" +msgid_plural "chess sets" +msgstr[0] "juego de ajedrez" +msgstr[1] "juegos de ajedrez" + +#. ~ Description for {'str': 'chess set'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden box containing all the equipment needed to play a game of chess." +msgstr "" +"Es una caja de madera con todo el equipo necesario para jugar al ajedrez." + +#: lang/json/GENERIC_from_json.py +msgid "checkers set" +msgid_plural "checkers sets" +msgstr[0] "juego de damas" +msgstr[1] "juegos de damas" + +#. ~ Description for {'str': 'checkers set'} +#: lang/json/GENERIC_from_json.py +msgid "A wooden box containing a set of round tokens used to play checkers." +msgstr "" +"Es una caja de madera con un conjunto de fichas circulares utilizadas para " +"jugar a las damas." + +#: lang/json/GENERIC_from_json.py +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" +msgstr[0] "mazo de cartas Hechicería" +msgstr[1] "mazos de cartas Hechicería" + +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of +#. Sorcery cards'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." +msgstr "" +"Es un conjunto de cartas hechas para jugar a \"Hechicería\". Cada carta " +"tiene una extraña imagen de un monstruo." + +#: lang/json/GENERIC_from_json.py +msgid "Picturesque" +msgid_plural "sets of Picturesque" +msgstr[0] "Pintoresco" +msgstr[1] "colección de Pintoresco" + +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where one draws an image, and the others attempt to guess what it is." +msgstr "" +"Es un juego donde uno dibuja una imagen y los demás deben intentar adivinar " +"qué es." + +#: lang/json/GENERIC_from_json.py +msgid "Capitalism" +msgid_plural "sets of Capitalism" +msgstr[0] "Capitalismo" +msgstr[1] "colección de Capitalismo" + +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players traverse around the board buying property and swindling" +" their friends." +msgstr "" +"Es un juego donde los jugadores van alrededor del tablero comprando " +"propiedades y estafando a sus amigos." + +#: lang/json/GENERIC_from_json.py +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" +msgstr[0] "Blobos y Bandidos" +msgstr[1] "colección de Blobos y Bandidos" + +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and +#. Bandits'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A roleplaying game set in the post-apocalypse, so you can pretend to survive" +" the apocalypse while surviving the apocalypse." +msgstr "" +"Es un juego de rol post-apocalíptico, para que puedas pretender que " +"sobrevivís al apocalipsis mientras sobrevivís al apocalipsis." + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" +msgstr[0] "Battlehammer" +msgstr[1] "colección de Battlehammer" + +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of fantasy creatures." +msgstr "" +"Es un juego de estrategia con pequeños muñequitos de criaturas fantásticas." + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" +msgstr[0] "Battlehammer 20k" +msgstr[1] "colección de Battlehammer 20k" + +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of +#. Battlehammer 20k'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." +msgstr "" +"Es un juego de estrategia con pequeños muñequitos de alienígenas y grotescos" +" marinos espaciales." + +#: lang/json/GENERIC_from_json.py +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" +msgstr[0] "Colonizadores de Rancho" +msgstr[1] "colección de Colonizadores de Rancho" + +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of +#. Settlers of the Ranch'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game where players build settlements and trade for supplies." +msgstr "" +"Es un juego de estrategia donde los jugadores construyen asentamientos y " +"comercian recursos." + +#: lang/json/GENERIC_from_json.py +msgid "Warships" +msgid_plural "sets of Warships" +msgstr[0] "Buques de Guerra" +msgstr[1] "colección de Buques de Guerra" + +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players try to guess where the opponent placed their ships on " +"the board." +msgstr "" +"Es un juego donde los jugadores intentan adivinar el lugar donde el oponente" +" a ubicado sus naves en el tablero." + +#: lang/json/GENERIC_from_json.py +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" +msgstr[0] "Asesinato Misterioso" +msgstr[1] "colección de Asesinato Misterioso" + +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder +#. Mystery'} +#: lang/json/GENERIC_from_json.py +msgid "A game where players try to figure out who murdered the butler." +msgstr "" +"Es un juego donde los jugadores intentarán descubrir quién mató al " +"mayordomo." + #: lang/json/GENERIC_from_json.py msgid "animal" msgid_plural "none" @@ -51624,8 +53187,8 @@ msgid "" "Several documents with all kinds of information, customer data and charts " "kept together, pretty useless now though." msgstr "" -"Varios documentos juntos con toda clase de información, datos de clientes y " -"gráficos. Bastante inservible por estos días." +"Son varios documentos juntos con toda clase de información, datos de " +"clientes y gráficos. Bastante inservible por estos días." #: lang/json/GENERIC_from_json.py msgid "INCIDENT REPORT: IMMERSION-27A" @@ -51695,7 +53258,7 @@ msgstr[1] "pelajes" #: lang/json/GENERIC_from_json.py msgid "A small bolt of fur from an animal. Can be made into warm clothing." msgstr "" -"Un pequeño rollo de pelaje de un animal. Con esto puede hacerse ropa " +"Es un pequeño rollo de pelaje de un animal. Con esto puede hacerse ropa " "abrigada." #: lang/json/GENERIC_from_json.py @@ -51746,7 +53309,7 @@ msgstr[1] "pedazos de Nomex" #. ~ Description for {'str': 'Nomex patch', 'str_pl': 'Nomex patches'} #: lang/json/GENERIC_from_json.py msgid "A small bolt of Nomex fire-resistant fabric." -msgstr "Un pequeño rollo de nomex, que es una tela ignífuga." +msgstr "Es un pequeño rollo de Nomex, que es una tela ignífuga." #: lang/json/GENERIC_from_json.py msgid "superglue" @@ -51812,7 +53375,7 @@ msgstr[1] "pedazos de quitina" #: lang/json/GENERIC_from_json.py msgid "A piece of an insect's exoskeleton. It is light and very durable." msgstr "" -"Es un pedazo del exoesqueleto de un insecto. Es liviano y muy duradero." +"Es un pedazo del exoesqueleto de un insecto. Es liviano y muy resistente." #: lang/json/GENERIC_from_json.py msgid "set of 100 ceramic disk" @@ -52202,8 +53765,8 @@ msgstr[1] "resortes" msgid "" "A large, heavy-duty spring. Expands with significant force when compressed." msgstr "" -"Un resorte grande reforzado. Se expande con una fuerza importante cuando es " -"comprimido." +"Es un resorte grande reforzado. Se expande con una fuerza importante cuando " +"es comprimido." #: lang/json/GENERIC_from_json.py msgid "lawnmower" @@ -52379,7 +53942,6 @@ msgstr[0] "ojobot roto" msgstr[1] "ojobots rotos" #. ~ Description for {'str': 'broken eyebot'} -#. ~ Description for broken eyebot #: lang/json/GENERIC_from_json.py msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " @@ -52451,8 +54013,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken grocery bot" msgid_plural "broken grocery bots" -msgstr[0] "reposibot roto" -msgstr[1] "reposibots rotos" +msgstr[0] "almacénbot roto" +msgstr[1] "almacénbots rotos" #. ~ Description for {'str': 'broken grocery bot'} #: lang/json/GENERIC_from_json.py @@ -52460,7 +54022,7 @@ msgid "" "A broken grocery bot. Its smiling face staring vacantly into empty space. " "Could be gutted for parts." msgstr "" -"Es un repositbot roto. Con su cara sonriente mirando vacíamente hacia la " +"Es un almacénbot roto. Con su cara sonriente mirando vacíamente hacia la " "nada. Puede ser desarmado para recuperar las partes." #. ~ Description for {'str': 'broken grocery bot'} @@ -52469,7 +54031,7 @@ msgid "" "The body of a busted grocery bot. Its tarnished face is still smiling. " "Could be gutted for parts." msgstr "" -"Es el cuerpo de un reposibot destrozado. Su dañada cara todavía sonríe. " +"Es el cuerpo de un almacénbot destrozado. Su dañada cara todavía sonríe. " "Puede ser desarmado para recuperar partes." #: lang/json/GENERIC_from_json.py @@ -52509,7 +54071,6 @@ msgstr[0] "minerobot roto" msgstr[1] "minerobots rotos" #. ~ Description for {'str': 'broken miner bot'} -#. ~ Description for broken miner bot #: lang/json/GENERIC_from_json.py msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " @@ -52586,8 +54147,6 @@ msgstr[0] "manhack roto" msgstr[1] "manhacks rotos" #. ~ Description for {'str': 'broken manhack'} -#. ~ Description for broken hack -#. ~ Description for broken manhack #: lang/json/GENERIC_from_json.py msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " @@ -52603,7 +54162,6 @@ msgstr[0] "grana-hack roto" msgstr[1] "grana-hacks rotos" #. ~ Description for {'str': 'broken grenade hack'} -#. ~ Description for broken grenade hack #: lang/json/GENERIC_from_json.py msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " @@ -52619,7 +54177,6 @@ msgstr[0] "minibom-hack roto" msgstr[1] "minibom-hacks rotos" #. ~ Description for {'str': 'broken mininuke hack'} -#. ~ Description for broken mininuke hack #: lang/json/GENERIC_from_json.py msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " @@ -52635,7 +54192,6 @@ msgstr[0] "lacrimo-hack roto" msgstr[1] "lacrimo-hacks rotos" #. ~ Description for {'str': 'broken tear gas hack'} -#. ~ Description for broken tear gas hack #: lang/json/GENERIC_from_json.py msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " @@ -52651,7 +54207,6 @@ msgstr[0] "PEM-hack roto" msgstr[1] "PEM-hacks rotos" #. ~ Description for {'str': 'broken EMP hack'} -#. ~ Description for broken EMP hack #: lang/json/GENERIC_from_json.py msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " @@ -52667,7 +54222,6 @@ msgstr[0] "destello-hack roto" msgstr[1] "destello-hacks rotos" #. ~ Description for {'str': 'broken flashbang hack'} -#. ~ Description for broken flashbang hack #: lang/json/GENERIC_from_json.py msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " @@ -52683,7 +54237,6 @@ msgstr[0] "C4-hack roto" msgstr[1] "C4-hacks rotos" #. ~ Description for {'str': 'broken C-4 hack'} -#. ~ Description for broken C-4 hack #: lang/json/GENERIC_from_json.py msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " @@ -52692,6 +54245,21 @@ msgstr "" "Es un C4-hack roto. Ahora que está tirado quieto en el suelo no es tan " "amenazante. Puede ser desarmado para recuperar las partes." +#: lang/json/GENERIC_from_json.py +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" +msgstr[0] "parlante roto" +msgstr[1] "parlantes rotos" + +#. ~ Description for {'str': 'broken loudspeaker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." +msgstr "" +"Es un parlante roto. Es raro verlo así... tan silencioso. Puede ser " +"desarmado para recuperar las partes." + #: lang/json/GENERIC_from_json.py msgid "processor board" msgid_plural "processor boards" @@ -52961,8 +54529,8 @@ msgid "" "A random collection of resistors, capacitors, and diodes which have been " "stripped from printed circuits." msgstr "" -"Una colección de resistencias, capacitores y diodos que han sido sacados de " -"circuitos impresos." +"Es una colección de resistencias, capacitores y diodos que han sido sacados " +"de circuitos impresos." #: lang/json/GENERIC_from_json.py msgid "radio repeater mod" @@ -53901,21 +55469,6 @@ msgstr "" "Es una lámina de neopreno de tamaño medio. Puede ser utilizada para fabricar" " ropa liviana y elastizada." -#: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" -msgstr[0] "cañón láser TX-5LR" -msgstr[1] "cañones láser TX-5LR" - -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." -msgstr "" -"Es un cañón láser que pertenecía a una torreta láser TX-5LR Cerberus. No se " -"puede usar como arma así solo sin las partes necesarias." - #: lang/json/GENERIC_from_json.py msgid "light bulb" msgid_plural "light bulbs" @@ -54156,12 +55709,6 @@ msgid_plural "broken M2 autonomous CROWS II turrets" msgstr[0] "torreta M2 autónoma CROWS II rota" msgstr[1] "torretas M2 autónomas CROWS II rotas" -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "torreta láser rota" -msgstr[1] "torretas láser rotas" - #: lang/json/GENERIC_from_json.py msgid "broken secubot" msgid_plural "broken secubots" @@ -54493,12 +56040,6 @@ msgstr "" "Es el capullo de un tulipán. Contiene algunas sustancias comúnmente " "producidas por la flor del tulipán." -#: lang/json/GENERIC_from_json.py -msgid "spurge" -msgid_plural "spurges" -msgstr[0] "euforbio" -msgstr[1] "euforbios" - #. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." @@ -54735,7 +56276,6 @@ msgstr[0] "tribot roto" msgstr[1] "tribots rotos" #. ~ Description for {'str': 'broken tribot'} -#. ~ Description for broken tribot #: lang/json/GENERIC_from_json.py msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" @@ -54843,7 +56383,7 @@ msgid "" "melee weapon but better be disassembled to recycle the baseball bat and some" " Nomex patches." msgstr "" -"Un robusto bate de madera envuelto en tela nomex que es ignífuga. Es una " +"Es un robusto bate de madera envuelto en tela nomex que es ignífuga. Es una " "buena arma de cuerpo a cuerpo pero es mejor desarmarla para usar el bate y " "algunos pedazos de nomex." @@ -54866,6 +56406,27 @@ msgstr "" " extraño, pero parece un poco frágil. Tampoco parece que pueda soportar un " "panel de refuerzo." +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "torreta láser rota" +msgstr[1] "torretas láser rotas" + +#: lang/json/GENERIC_from_json.py +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" +msgstr[0] "cañón láser TX-5LR" +msgstr[1] "cañones láser TX-5LR" + +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." +msgstr "" +"Es un cañón láser que pertenecía a una torreta láser TX-5LR Cerberus. No se " +"puede usar como arma así solo sin las partes necesarias." + #: lang/json/GENERIC_from_json.py msgid "module template" msgid_plural "module templates" @@ -54939,8 +56500,8 @@ msgstr "Este módulo permite almacenar y recuperar información." #: lang/json/GENERIC_from_json.py msgid "sensor array" msgid_plural "sensor arrays" -msgstr[0] "matriz de sensores" -msgstr[1] "matrices de sensores" +msgstr[0] "conjunto de sensores" +msgstr[1] "conjuntos de sensores" #. ~ Description for {'str': 'sensor array'} #: lang/json/GENERIC_from_json.py @@ -55266,6 +56827,12 @@ msgstr "" "varios productores grandes. Probablemente valiosos para la persona indicada," " porque es difícil recuperar y reutilizar estos componentes." +#: lang/json/GENERIC_from_json.py +msgid "martial art manual" +msgid_plural "martial art manuals" +msgstr[0] "manual de artes marciales" +msgstr[1] "manuales de artes marciales" + #: lang/json/GENERIC_from_json.py msgid "abstract map" msgid_plural "abstract maps" @@ -55775,12 +57342,6 @@ msgstr "" " italianas de espada larga y espada ropera, con y sin armadura, con y sin " "escudo." -#: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" -msgstr[0] "manual de artes marciales" -msgstr[1] "manuales de artes marciales" - #: lang/json/GENERIC_from_json.py msgid "juvenile sourdough starter" msgid_plural "juvenile sourdough starters" @@ -55874,6 +57435,21 @@ msgstr "" "Es un hueso de un ser humano. Puede ser usado para hacer cosas, si te sentís" " lo suficientemente morboso." +#: lang/json/GENERIC_from_json.py +msgid "demihuman bone" +msgid_plural "demihuman bones" +msgstr[0] "hueso semihumano" +msgstr[1] "huesos semihumanos" + +#. ~ Description for {'str': 'demihuman bone'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." +msgstr "" +"Es un hueso de un ser semihumano. Puede ser usado para hacer cosas, si te " +"sentís lo suficientemente morboso." + #: lang/json/GENERIC_from_json.py msgid "first aid kit" msgid_plural "first aid kits" @@ -55895,7 +57471,7 @@ msgstr "" msgid "MRE" msgid_plural "MREs" msgstr[0] "MRE" -msgstr[1] "MREs" +msgstr[1] "MRE" #. ~ Description for {'str': 'MRE'} #: lang/json/GENERIC_from_json.py @@ -55917,7 +57493,7 @@ msgstr "Es una caja pequeña genérica de un MRE, no deberías ver esto." msgid "MRE - Accessory Pack" msgid_plural "MREs - Accessory Packs" msgstr[0] "MRE - Pack de Accesorios" -msgstr[1] "MREs - Packs de Accesorios" +msgstr[1] "MRE - Packs de Accesorios" #. ~ Description for {'str': 'MRE - Accessory Pack', 'str_pl': 'MREs - #. Accessory Packs'} @@ -55933,7 +57509,7 @@ msgstr "" msgid "MRE - Dessert Pack" msgid_plural "MREs - Dessert Packs" msgstr[0] "MRE - Pack de Postres" -msgstr[1] "MREs - Packs de Postres" +msgstr[1] "MRE - Packs de Postres" #. ~ Description for {'str': 'MRE - Dessert Pack', 'str_pl': 'MREs - Dessert #. Packs'} @@ -55949,26 +57525,27 @@ msgstr "" msgid "MRE - Chili & Beans" msgid_plural "MREs - Chili & Beans" msgstr[0] "MRE - Porotos con Chili" -msgstr[1] "MREs - Porotos con Chili" +msgstr[1] "MRE - Porotos con Chili" #. ~ Description for {'str': 'MRE - Chili & Beans', 'str_pl': 'MREs - Chili & #. Beans'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." msgstr "" "Es una MRE (comida preparada) con porotos con chili y todo lo que un soldado" -" hambriento necesita. El contenido empezará a pudrirse luego de haberlo " -"sacado de la bolsa sellada. Hay que usarla o desarmarla para acceder al " +" vegetariano necesita. El contenido empezará a pudrirse luego de haberlo " +"sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener el " "contenido." #: lang/json/GENERIC_from_json.py msgid "MRE - BBQ Beef" msgid_plural "MREs - BBQ Beef" msgstr[0] "MRE - Parrillada de vaca" -msgstr[1] "MREs - Parrillada de vaca" +msgstr[1] "MRE - Parrillada de vaca" #. ~ Description for {'str': 'MRE - BBQ Beef', 'str_pl': 'MREs - BBQ Beef'} #: lang/json/GENERIC_from_json.py @@ -55986,7 +57563,7 @@ msgstr "" msgid "MRE - Chicken & Noodles" msgid_plural "MREs - Chicken & Noodles" msgstr[0] "MRE - Fideos con pollo" -msgstr[1] "MREs - Fideos con pollo" +msgstr[1] "MRE - Fideos con pollo" #. ~ Description for {'str': 'MRE - Chicken & Noodles', 'str_pl': 'MREs - #. Chicken & Noodles'} @@ -56005,7 +57582,7 @@ msgstr "" msgid "MRE - Spaghetti" msgid_plural "MREs - Spaghetti" msgstr[0] "MRE - Espagueti" -msgstr[1] "MREs - Espagueti" +msgstr[1] "MRE - Espagueti" #. ~ Description for {'str': 'MRE - Spaghetti', 'str_pl': 'MREs - Spaghetti'} #: lang/json/GENERIC_from_json.py @@ -56023,7 +57600,7 @@ msgstr "" msgid "MRE - Chicken Chunks" msgid_plural "MREs - Chicken Chunks" msgstr[0] "MRE - Pollo Trozado" -msgstr[1] "MREs - Pollo Trozado" +msgstr[1] "MRE - Pollo Trozado" #. ~ Description for {'str': 'MRE - Chicken Chunks', 'str_pl': 'MREs - Chicken #. Chunks'} @@ -56042,7 +57619,7 @@ msgstr "" msgid "MRE - Beef Taco" msgid_plural "MREs - Beef Taco" msgstr[0] "MRE - Taco de Carne" -msgstr[1] "MREs - Taco de Carne" +msgstr[1] "MRE - Taco de Carne" #. ~ Description for {'str': 'MRE - Beef Taco', 'str_pl': 'MREs - Beef Taco'} #: lang/json/GENERIC_from_json.py @@ -56060,7 +57637,7 @@ msgstr "" msgid "MRE - Beef Brisket" msgid_plural "MREs - Beef Brisket" msgstr[0] "MRE - Costilla de Vaca" -msgstr[1] "MREs - Costilla de Vaca" +msgstr[1] "MRE - Costilla de Vaca" #. ~ Description for {'str': 'MRE - Beef Brisket', 'str_pl': 'MREs - Beef #. Brisket'} @@ -56079,7 +57656,7 @@ msgstr "" msgid "MRE - Meatballs & Marinara" msgid_plural "MREs - Meatballs & Marinara" msgstr[0] "MRE - Albóndigas con marinera" -msgstr[1] "MREs - Albóndigas con marinera" +msgstr[1] "MRE - Albóndigas con marinera" #. ~ Description for {'str': 'MRE - Meatballs & Marinara', 'str_pl': 'MREs - #. Meatballs & Marinara'} @@ -56098,7 +57675,7 @@ msgstr "" msgid "MRE - Beef Stew" msgid_plural "MREs - Beef Stew" msgstr[0] "MRE - Estofado de Carne" -msgstr[1] "MREs - Estofado de Carne" +msgstr[1] "MRE - Estofado de Carne" #. ~ Description for {'str': 'MRE - Beef Stew', 'str_pl': 'MREs - Beef Stew'} #: lang/json/GENERIC_from_json.py @@ -56116,7 +57693,7 @@ msgstr "" msgid "MRE - Chili & Macaroni" msgid_plural "MREs - Chili & Macaroni" msgstr[0] "MRE - Macarrones con chili" -msgstr[1] "MREs - Macarrones con chili" +msgstr[1] "MRE - Macarrones con chili" #. ~ Description for {'str': 'MRE - Chili & Macaroni', 'str_pl': 'MREs - Chili #. & Macaroni'} @@ -56135,7 +57712,7 @@ msgstr "" msgid "MRE - Vegetarian Taco" msgid_plural "MREs - Vegetarian Taco" msgstr[0] "MRE - Taco Vegetariano" -msgstr[1] "MREs - Taco Vegetariano" +msgstr[1] "MRE - Taco Vegetariano" #. ~ Description for {'str': 'MRE - Vegetarian Taco', 'str_pl': 'MREs - #. Vegetarian Taco'} @@ -56154,7 +57731,7 @@ msgstr "" msgid "MRE - Macaroni Marinara" msgid_plural "MREs - Macaroni Marinara" msgstr[0] "MRE - Macarrones con Marinera" -msgstr[1] "MREs - Macarrones con Marinera" +msgstr[1] "MRE - Macarrones con Marinera" #. ~ Description for {'str': 'MRE - Macaroni Marinara', 'str_pl': 'MREs - #. Macaroni Marinara'} @@ -56169,11 +57746,50 @@ msgstr "" "haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para acceder" " al contenido." +#: lang/json/GENERIC_from_json.py +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" +msgstr[0] "MRE - Fetuchini con espinaca" +msgstr[1] "MRE - Fetuchini con espinaca" + +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - +#. Spinach Fettuccine'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything" +" a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" +"Es una MRE (comida preparada) con fetuchini con crema de espinaca y todo lo " +"que un soldado vegetariano necesita. El contenido empezará a pudrirse luego " +"de haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para " +"acceder al contenido." + +#: lang/json/GENERIC_from_json.py +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" +msgstr[0] "MRE - Ratatouille" +msgstr[1] "MRE - Ratatouille" + +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - +#. Ratatouille'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" +"Es una MRE (comida preparada) con ratatouille y todo lo que un soldado " +"vegetariano necesita. El contenido empezará a pudrirse luego de haberlo " +"sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener el " +"contenido." + #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" msgid_plural "MREs - Cheese Tortellini" msgstr[0] "MRE - Capelettini de Queso" -msgstr[1] "MREs - Capelettini de Queso" +msgstr[1] "MRE - Capelettini de Queso" #. ~ Description for {'str': 'MRE - Cheese Tortellini', 'str_pl': 'MREs - #. Cheese Tortellini'} @@ -56192,7 +57808,7 @@ msgstr "" msgid "MRE - Mushroom Fettuccine" msgid_plural "MREs - Mushroom Fettuccine" msgstr[0] "MRE - Fetuchini con champiñones" -msgstr[1] "MREs - Fetuchini con champiñones" +msgstr[1] "MRE - Fetuchini con champiñones" #. ~ Description for {'str': 'MRE - Mushroom Fettuccine', 'str_pl': 'MREs - #. Mushroom Fettuccine'} @@ -56211,7 +57827,7 @@ msgstr "" msgid "MRE - Mexican Chicken Stew" msgid_plural "MREs - Mexican Chicken Stew" msgstr[0] "MRE - Estofado Mexicano de Pollo" -msgstr[1] "MREs - Estofado Mexicano de Pollo" +msgstr[1] "MRE - Estofado Mexicano de Pollo" #. ~ Description for {'str': 'MRE - Mexican Chicken Stew', 'str_pl': 'MREs - #. Mexican Chicken Stew'} @@ -56230,7 +57846,7 @@ msgstr "" msgid "MRE - Chicken Burrito Bowl" msgid_plural "MREs - Chicken Burrito Bowl" msgstr[0] "MRE - Burrito de Pollo" -msgstr[1] "MREs - Burrito de Pollo" +msgstr[1] "MRE - Burrito de Pollo" #. ~ Description for {'str': 'MRE - Chicken Burrito Bowl', 'str_pl': 'MREs - #. Chicken Burrito Bowl'} @@ -56249,7 +57865,7 @@ msgstr "" msgid "MRE - Maple Sausage" msgid_plural "MREs - Maple Sausage" msgstr[0] "MRE - Salchicha de Arce" -msgstr[1] "MREs - Salchicha de Arce" +msgstr[1] "MRE - Salchicha de Arce" #. ~ Description for {'str': 'MRE - Maple Sausage', 'str_pl': 'MREs - Maple #. Sausage'} @@ -56268,7 +57884,7 @@ msgstr "" msgid "MRE - Ravioli" msgid_plural "MREs - Ravioli" msgstr[0] "MRE - Ravioles" -msgstr[1] "MREs - Ravioles" +msgstr[1] "MRE - Ravioles" #. ~ Description for {'str': 'MRE - Ravioli', 'str_pl': 'MREs - Ravioli'} #: lang/json/GENERIC_from_json.py @@ -56286,7 +57902,7 @@ msgstr "" msgid "MRE - Pepper Jack Beef" msgid_plural "MREs - Pepper Jack Beef" msgstr[0] "MRE - Carne con Queso Jack" -msgstr[1] "MREs - Carne con Queso Jack" +msgstr[1] "MRE - Carne con Queso Jack" #. ~ Description for {'str': 'MRE - Pepper Jack Beef', 'str_pl': 'MREs - #. Pepper Jack Beef'} @@ -56305,7 +57921,7 @@ msgstr "" msgid "MRE - Hash Browns & Bacon" msgid_plural "MREs - Hash Browns & Bacon" msgstr[0] "MRE - Hash Browns y Panceta" -msgstr[1] "MREs - Hash Browns y Panceta" +msgstr[1] "MRE - Hash Browns y Panceta" #. ~ Description for {'str': 'MRE - Hash Browns & Bacon', 'str_pl': 'MREs - #. Hash Browns & Bacon'} @@ -56324,7 +57940,7 @@ msgstr "" msgid "MRE - Lemon Pepper Tuna" msgid_plural "MREs - Lemon Pepper Tuna" msgstr[0] "MRE - Atún con Limón y Pimienta" -msgstr[1] "MREs - Atún con Limón y Pimienta" +msgstr[1] "MRE - Atún con Limón y Pimienta" #. ~ Description for {'str': 'MRE - Lemon Pepper Tuna', 'str_pl': 'MREs - #. Lemon Pepper Tuna'} @@ -56343,7 +57959,7 @@ msgstr "" msgid "MRE - Asian Beef & Vegetables" msgid_plural "MREs - Asian Beef & Vegetables" msgstr[0] "MRE - Carne de Asia con Verduras" -msgstr[1] "MREs - Carne de Asia con Verduras" +msgstr[1] "MRE - Carne de Asia con Verduras" #. ~ Description for {'str': 'MRE - Asian Beef & Vegetables', 'str_pl': 'MREs #. - Asian Beef & Vegetables'} @@ -56362,7 +57978,7 @@ msgstr "" msgid "MRE - Chicken Pesto & Pasta" msgid_plural "MREs - Chicken Pesto & Pasta" msgstr[0] "MRE - Pasta con Pesto y Pollo" -msgstr[1] "MREs - Pasta con Pesto y Pollo" +msgstr[1] "MRE - Pasta con Pesto y Pollo" #. ~ Description for {'str': 'MRE - Chicken Pesto & Pasta', 'str_pl': 'MREs - #. Chicken Pesto & Pasta'} @@ -56381,7 +57997,7 @@ msgstr "" msgid "MRE - Southwest Beef & Beans" msgid_plural "MREs - Southwest Beef & Beans" msgstr[0] "MRE - Carne del Suroeste con Porotos" -msgstr[1] "MREs - Carne del Suroeste con Porotos" +msgstr[1] "MRE - Carne del Suroeste con Porotos" #. ~ Description for {'str': 'MRE - Southwest Beef & Beans', 'str_pl': 'MREs - #. Southwest Beef & Beans'} @@ -56400,7 +58016,7 @@ msgstr "" msgid "MRE - Frankfurters & Beans" msgid_plural "MREs - Frankfurters & Beans" msgstr[0] "MRE - Salchichas de Frankfurt con porotos" -msgstr[1] "MREs - Salchichas de Frankfurt con porotos" +msgstr[1] "MRE - Salchichas de Frankfurt con porotos" #. ~ Description for {'str': 'MRE - Frankfurters & Beans', 'str_pl': 'MREs - #. Frankfurters & Beans'} @@ -57764,8 +59380,21 @@ msgid "" "A durable plastic drinking vessel. This one is made of clear acrylic and " "looks almost like glass." msgstr "" -"Es un recipiente de plástico duradero utilizado para beber. Este está hecho " -"de un acrílico transparente que casi parece vidrio." +"Es un recipiente de plástico resistente utilizado para beber. Este está " +"hecho de un acrílico transparente que casi parece vidrio." + +#: lang/json/GENERIC_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "tazón de plástico" +msgstr[1] "tazones de plástico" + +#. ~ Description for {'str': 'plastic bowl'} +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "" +"Es un tazón de plástico con su conveniente tapa. Puede contener hasta 750 ml" +" de líquido." #: lang/json/GENERIC_from_json.py msgid "kiddie bowl" @@ -58587,6 +60216,21 @@ msgstr "" "Es un pequeño pedazo de aluminio de forma extraña, con tres patas. Cuando se" " lo pone en el suelo, puede sostener una guitarra en posición parada." +#: lang/json/GENERIC_from_json.py +msgid "plectrum" +msgid_plural "plectra" +msgstr[0] "púa de guitarra" +msgstr[1] "púas de guitarra" + +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." +msgstr "" +"Es un pedazo chato de plástico con terminación en punta, diseñado para tocar" +" las cuerdas de una guitarra o una mandolina." + #: lang/json/GENERIC_from_json.py msgid "mixer" msgid_plural "mixers" @@ -59909,10 +61553,10 @@ msgid "" "flaying the rotten flesh off of walking corpses. Great for when a problem " "comes along." msgstr "" -"Una larga correa de cuero trenzado con un mango en un extremo. Originalmente" -" diseñado para ordenar el ganado, ahora es mejor usada para despellejar la " -"carne podrida de los cadáveres ambulantes. Muy útil cuando se te vienen los " -"problemas." +"Es una larga correa de cuero trenzado con un mango en un extremo. " +"Originalmente diseñado para ordenar el ganado, ahora es mejor usada para " +"despellejar la carne podrida de los cadáveres ambulantes. Muy útil cuando se" +" te vienen los problemas." #: lang/json/GENERIC_from_json.py msgid "pitchfork" @@ -59936,6 +61580,7 @@ msgstr[0] "palo con punta" msgstr[1] "palos con punta" #. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py msgid "A simple wood pole with one end sharpened." msgstr "Es un simple palo de madera con una punta afilada." @@ -60121,6 +61766,12 @@ msgstr "" "Esta robusta vara de acero con una hoja de espada en la punta, es buena " "tanto para cortar como para apuñalar." +#: lang/json/GENERIC_from_json.py +msgid "wooden javelin" +msgid_plural "wooden javelins" +msgstr[0] "jabalina de madera" +msgstr[1] "jabalinas de madera" + #. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -60130,6 +61781,12 @@ msgstr "" "Es una lanza de madera endurecida al fuego, con una punta afilada. El mango " "fue tallado y recubierto para un mejor agarre." +#: lang/json/GENERIC_from_json.py +msgid "iron javelin" +msgid_plural "iron javelins" +msgstr[0] "jabalina de hierro" +msgstr[1] "jabalinas de hierro" + #. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -60918,8 +62575,8 @@ msgid "" "A lightweight hatchet made for throwing. Its ineffective cutting edge and " "light weight makes it unsuitable for use as a tool." msgstr "" -"Una hacha de poco peso para ser tirada. No tiene buen filo y su poco peso la" -" hace inservible como herramienta." +"Es un hacha de poco peso para ser tirada. No tiene buen filo y su poco peso " +"la hace inservible como herramienta." #: lang/json/GENERIC_from_json.py msgid "throwing knife" @@ -61106,7 +62763,7 @@ msgid "" "down to a powder, for more… high-profile applications." msgstr "" "Es un pequeño lingote de aluminio, normalizado para un proceso posterior. " -"Ligero pero duradero, puede ser moldeado en diferentes formas para la " +"Ligero pero resistente, puede ser moldeado en diferentes formas para la " "construcción o molido en polvo, para usos más... notorios." #: lang/json/GENERIC_from_json.py @@ -61172,7 +62829,7 @@ msgstr[1] "aguijones de guerrero fúngico" #: lang/json/GENERIC_from_json.py msgid "A short dart from a fungal fighter. Makes a poor melee weapon." msgstr "" -"Es como un dardo corto de un guerrero fúngico. Es una arma pobre para el " +"Es como un dardo corto de un guerrero fúngico. Es una arma mediocre para el " "cuerpo a cuerpo." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py @@ -61279,8 +62936,8 @@ msgstr[1] "aguijones de avispa" #: lang/json/GENERIC_from_json.py msgid "A six-inch stinger from a giant wasp. Makes a poor melee weapon." msgstr "" -"Un aguijón de 15 centímetros de una avispa gigante. Es una arma pobre para " -"el cuerpo a cuerpo." +"Es un aguijón de 15 centímetros de una avispa gigante. Es una arma mediocre " +"para el cuerpo a cuerpo." #: lang/json/GENERIC_from_json.py msgid "plastic sheet" @@ -61334,31 +62991,38 @@ msgstr "" "Es un pedazo de madera astillada que puede ser usada como brochette o leña." #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" -msgstr[0] "palo grueso" -msgstr[1] "palos gruesos" +msgid "stout branch" +msgid_plural "stout branches" +msgstr[0] "rama fuerte" +msgstr[1] "ramas fuertes" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." +msgid "" +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." msgstr "" -"Es un palo pesado y robusto. Es una decente arma para el cuerpo a cuerpo." +"Es un pedazo bastante grande de rama, del tamaño suficiente como para que la" +" agarres con la mano. Funciona decentemente como arma de cuerpo a cuerpo." #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" -msgstr[0] "palo largo" -msgstr[1] "palos largos" +msgid "long stout branch" +msgid_plural "long stout branches" +msgstr[0] "rama larga fuerte" +msgstr[1] "ramas largas fuertes" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout +#. branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." msgstr "" -"Es un palo largo. Funciona bastante bien como arma de cuerpo a cuerpo, y " -"puede romperse para hacer palitos útiles en alguna fabricación." +"Es un pedazo recto de madera de una rama de árbol, de más de dos metros de " +"largo y unos cinco centímetros de diámetro. Funciona bastante bien como arma" +" de cuerpo a cuerpo, y puede ser partida para hacer palos más cortos útiles " +"en alguna fabricación." #: lang/json/GENERIC_from_json.py msgid "long pole" @@ -61383,7 +63047,6 @@ msgstr[0] "tablón" msgstr[1] "tablones" #. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" @@ -61449,6 +63112,30 @@ msgstr "" "voluminosa y extremadamente útil en toda clase de construcción, pero tal vez" " tengas que cortarla para proyectos más pequeños." +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "botella de acero" +msgstr[1] "botellas de acero" + +#. ~ Description for {'str': 'steel bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Es una botella de acero inoxidable, que puede contener hasta 750 ml." + +#: lang/json/GENERIC_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "botella plegable de plástico" +msgstr[1] "botellas plegables de plástico" + +#. ~ Description for {'str': 'foldable plastic bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Es una botella flexible de plástico, fácil de transportar, que puede " +"contener hasta 500 ml." + #: lang/json/GENERIC_from_json.py msgid "atomic coffee maker" msgid_plural "atomic coffee makers" @@ -62252,6 +63939,23 @@ msgstr "" "de noche para los chicos millonarios que le tienen miedo a la oscuridad. La " "tapa está cerrada. Usala para abrirla y que se vea la luz." +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" +msgstr[0] "equipo de extracción de sangre" +msgstr[1] "equipos de extracción de sangre" + +#. ~ Description for {'str': 'blood draw kit'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." +msgstr "" +"Es un equipo para extraer sangre, que incluye un tubo de ensayo para " +"contener la muestra. Usalo para extraer sangre, ya sea tuya o de un cuerpo " +"que tengas cerca." + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" msgid_plural "charcoal kilns" @@ -62647,8 +64351,8 @@ msgid "" "A one-handed hatchet. Makes a great melee weapon, and is useful both for " "chopping things and for use as a hammer." msgstr "" -"Un hacha de una sola mano. Es útil como arma de cuerpo a cuerpo, y se puede " -"usar para cortar cosas y como martillo." +"Es un hacha de una sola mano. Es útil como arma de cuerpo a cuerpo, y se " +"puede usar para cortar cosas y como martillo." #: lang/json/GENERIC_from_json.py msgid "carding paddles" @@ -63062,7 +64766,6 @@ msgstr "" "cámara." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "security camera" msgid_plural "security cameras" msgstr[0] "cámara de seguridad" @@ -63140,7 +64843,6 @@ msgstr[0] "unidad electrónica de control" msgstr[1] "unidades electrónicas de control" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "drive by wire controls" msgid_plural "sets of drive by wire controls" msgstr[0] "controles drive by wire" @@ -63841,7 +65543,6 @@ msgstr "" "inteligente." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "stereo system" msgid_plural "stereo systems" msgstr[0] "equipo estéreo" @@ -64222,7 +65923,6 @@ msgid "A leather-covered seat designed to be straddled." msgstr "Un asiento recubierto de cuero, diseñado para sentarse a horcajadas." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "solar panel" msgid_plural "solar panels" msgstr[0] "panel solar" @@ -64257,7 +65957,6 @@ msgstr "" "lo normal. Útil para armar un vehículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "upgraded solar panel" msgid_plural "upgraded solar panels" msgstr[0] "panel solar mejorado" @@ -64841,6 +66540,22 @@ msgstr "" "internet que no se pueden rastrear. Sin embargo, estas son monedas físicas " "con secuencias aleatorias de números grabados con chips RFID adentro." +#: lang/json/GENERIC_from_json.py +msgctxt "container" +msgid "basin" +msgid_plural "basins" +msgstr[0] "bol" +msgstr[1] "bols" + +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." +msgstr "" +"Es un boi ancho y playo utilizado para líquidos, hecho de un pedazo de " +"metal. Ideal para recolectar agua." + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" msgid_plural "vehicle refrigerators" @@ -64968,6 +66683,17 @@ msgstr[1] "perdigones de combustible nuclear" msgid "A small pellet of fissile material. Handle carefully." msgstr "Es un pequeño perdigón de material fisible. Manejar con cuidado." +#: lang/json/GENERIC_from_json.py +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" +msgstr[0] "tambor de residuos peligrosos" +msgstr[1] "tambores de residuos peligrosos" + +#. ~ Description for {'str': 'hazardous waste drum'} +#: lang/json/GENERIC_from_json.py +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "Es un tambor amarillo hecho para almacenar las sustancias peligrosas." + #: lang/json/GENERIC_from_json.py msgid "folded atomic butter churn" msgid_plural "folded atomic butter churns" @@ -65018,6 +66744,22 @@ msgstr "" "Es un implante dental hecho de titanio puro, usado para reemplazar un diente" " debido a su biocompatibilidad y durabilidad." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" +msgstr[0] "espacio de transporte" +msgstr[1] "espacios de transporte" + +#. ~ Description for {'str': 'hauling space'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to" +" create a very large amount of space for transporting goods." +msgstr "" +"Es un espacio muy grande de metal que se usa con una extensión del techo del" +" vehículo para crear una cantidad muy grande de espacio para transportar " +"productos." + #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" msgid_plural "hydraulic gauntlets" @@ -65253,8 +66995,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "ultracapacitor array" msgid_plural "ultracapacitor arrays" -msgstr[0] "matriz de ultracapacitor" -msgstr[1] "matrices de ultracapacitores" +msgstr[0] "conjunto de ultracapacitores" +msgstr[1] "conjuntos de ultracapacitores" #. ~ Description for {'str': 'ultracapacitor array'} #: lang/json/GENERIC_from_json.py @@ -65479,22 +67221,6 @@ msgstr "" "uniendo máquina con intelecto humano en un gestalt mucho más grande que sus " "partes individualmente." -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" -msgstr[0] "espacio de transporte" -msgstr[1] "espacios de transporte" - -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to" -" create a very large amount of space for transporting goods." -msgstr "" -"Es un espacio muy grande de metal que se usa con una extensión del techo del" -" vehículo para crear una cantidad muy grande de espacio para transportar " -"productos." - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "ultralight frame" msgid_plural "ultralight frames" @@ -65523,6 +67249,108 @@ msgstr "" "Es una compleja y gran estación de pilotaje de un vehículo militar, incluye " "una estación de cámaras, herramientas de dirección y controles electrónicos." +#: lang/json/GENERIC_from_json.py +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" +msgstr[0] "estantería de vehículo" +msgstr[1] "estanterías de vehículo" + +#. ~ Description for {'str': 'vehicle shelving'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." +msgstr "" +"Son unas armazones pesadas modernizadas para ser instaladas juntas, con un " +"montón de amarres y puntos de enganche para poder llevar una mayor cantidad " +"de carga." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" +msgstr[0] "conjunto de paneles solares" +msgstr[1] "conjuntos de paneles solares" + +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires" +" a jumper cable or similar to pull power from." +msgstr "" +"Es un conjunto vertical de tres paneles solares puesto en una estructura " +"uno sobre otro, en una vara de metal y con motores y guías. Debido a la " +"naturaleza endeble de los hidráulicos y la gran superficie que abarca para " +"maximizar la luz solar, no pueden ser instalados en un vehículo. Requiere un" +" cable de arranque o algo similar para usar su energía." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" +msgstr[0] "conjunto de paneles solares reforzados" +msgstr[1] "conjuntos de paneles solares reforzados" + +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" +"Es un conjunto vertical de tres paneles solares reforzados puesto en una " +"estructura uno sobre otro, en una vara de metal y con motores y guías. " +"Debido a la naturaleza endeble de los hidráulicos y la gran superficie que " +"abarca para maximizar la luz solar, no pueden ser instalados en un vehículo." +" Requiere un cable de arranque o algo similar para usar su energía." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" +msgstr[0] "conjunto de paneles solares mejorados" +msgstr[1] "conjuntos de paneles solares mejorados" + +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" +"Es un conjunto vertical de tres paneles solares mejorados puesto en una " +"estructura uno sobre otro, en una vara de metal y con motores y guías. " +"Debido a la naturaleza endeble de los hidráulicos y la gran superficie que " +"abarca para maximizar la luz solar, no pueden ser instalados en un vehículo." +" Requiere un cable de arranque o algo similar para usar su energía." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" +msgstr[0] "conjunto de paneles solares mejorados reforzados" +msgstr[1] "conjuntos de paneles solares mejorados reforzados" + +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." +msgstr "" +"Es un conjunto vertical de tres paneles solares mejorados reforzados puesto " +"en una estructura uno sobre otro, en una vara de metal y con motores y " +"guías. Debido a la naturaleza endeble de los hidráulicos y la gran " +"superficie que abarca para maximizar la luz solar, no pueden ser instalados " +"en un vehículo. Requiere un cable de arranque o algo similar para usar su " +"energía." + #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" msgid_plural "withered plant bundles" @@ -65540,26 +67368,54 @@ msgid_plural "CRIT hatchets" msgstr[0] "hachuela CRIT" msgstr[1] "hachuelas CRIT" +#. ~ Use action msg for CRIT hatchet. +#: lang/json/GENERIC_from_json.py +msgid "You extend your hatchet" +msgstr "Extendés tu hachuela" + #. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer." +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." msgstr "" "Es un hacha de una sola mano, increíblemente filosa y resistente. Es útil " "como arma de cuerpo a cuerpo, y se puede usar para cortar cosas y también " -"como martillo." +"como martillo cuando está extendida." #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Blade-work manual" -msgid_plural "C.R.I.T Blade-work manuals" -msgstr[0] "manual C.R.I.T. de Manejo de Cuchilla" -msgstr[1] "manuales C.R.I.T. de Manejo de Cuchilla" +msgid "CRIT axe" +msgid_plural "CRIT axes" +msgstr[0] "hacha CRIT" +msgstr[1] "hachas CRIT" -#. ~ Description for {'str': 'C.R.I.T Blade-work manual'} +#. ~ Use action msg for CRIT axe. #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Blade-work." -msgstr "Es un manual militar avanzado sobre C.R.I.T. de Manejo de Cuchilla." +msgid "You collapse your axe" +msgstr "Plegás tu hacha" + +#. ~ Description for CRIT axe +#: lang/json/GENERIC_from_json.py +msgid "" +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer" +" when extended." +msgstr "" +"Es un hacha extendida increíblemente filosa y resistente. Es un arma de " +"cuerpo a cuerpo de golpe pesado, y se puede usar para cortar cosas y también" +" como martillo cuando está extendida." + +#: lang/json/GENERIC_from_json.py +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" +msgstr[0] "manual de Manejo de Cuchilla CRIT" +msgstr[1] "manuales de Manejo de Cuchilla CRIT" + +#. ~ Description for CRIT Blade-work manual +#: lang/json/GENERIC_from_json.py +msgid "An advanced military manual on CRIT Blade-work." +msgstr "Es un manual militar avanzado sobre Manejo de Cuchilla CRIT." #: lang/json/GENERIC_from_json.py msgid "C.R.I.T Enforcement manual" @@ -65573,16 +67429,16 @@ msgid "An advanced military manual on C.R.I.T Enforcer melee." msgstr "Es un manual militar avanzado sobre C.R.I.T. de Ejecución." #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T CQB manual" -msgid_plural "C.R.I.T CQB manuals" -msgstr[0] "manual C.R.I.T. de Pelea en Espacios Cerrados" -msgstr[1] "manuales C.R.I.T. de Pelea en Espacios Cerrados" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" +msgstr[0] "manual CRIT de Pelea en Espacios Cerrados" +msgstr[1] "manuales CRIT de Pelea en Espacios Cerrados" -#. ~ Description for {'str': 'C.R.I.T CQB manual'} +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T general CQB." +msgid "An advanced military manual on CRIT general CQB." msgstr "" -"Es un manual militar avanzado sobre C.R.I.T. de Pelea en Espacios Cerrados" +"Es un manual militar avanzado sobre CRIT de Pelea en Espacios Cerrados." #: lang/json/GENERIC_from_json.py msgid "broken emissary" @@ -65720,17 +67576,6 @@ msgstr "" " pelotas de béisbol errantes. El vidrio hace que el panel produzca un poco " "menos de energía que lo normal. Útil para armar un vehículo." -#: lang/json/GENERIC_from_json.py -msgid "6.54x42mm casing" -msgid_plural "6.54x42mm casings" -msgstr[0] "vaina 6.54x42mm" -msgstr[1] "vainas 6.54x42mm" - -#. ~ Description for 6.54x42mm casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 6.54x42 round." -msgstr "Es la vaina servida de una bala calibre 6.54x42." - #: lang/json/GENERIC_from_json.py msgid "tiny pistol casing" msgid_plural "tiny pistol casings" @@ -65855,545 +67700,43 @@ msgstr[0] "rifle TALON UGV roto" msgstr[1] "rifles TALON UGV rotos" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing)" -msgid_plural "garden pots (growing)" -msgstr[0] "maceta para huerta (cultivando)" -msgstr[1] "macetas para huerta (cultivando)" - -#. ~ Description for {'str': 'garden pot (growing)', 'str_pl': 'garden pots -#. (growing)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot growing some tasty, unnameable plants. You shouldn't see this " -"item." -msgstr "" -"Es una maceta para huerta cultivando alguna planta sabrosa sin nombre. No " -"deberías ver este objeto." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (grown)" -msgid_plural "garden pots (grown)" -msgstr[0] "maceta para huerta (maduro)" -msgstr[1] "macetas para huerta (maduro)" - -#. ~ Description for {'str': 'garden pot (grown)', 'str_pl': 'garden pots -#. (grown)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot with some ripe, unnameable plants. You shouldn't see this " -"item." -msgstr "" -"Es una maceta para huerta con alguna planta madura sin nombre. No deberías " -"ver este objeto." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing tomato)" -msgid_plural "garden pots (growing tomatoes)" -msgstr[0] "maceta para huerta (tomates inmaduros)" -msgstr[1] "macetas para huerta (tomates inmaduros)" - -#. ~ Use action msg for {'str': 'garden pot (growing tomato)', 'str_pl': -#. 'garden pots (growing tomatoes)'}. -#: lang/json/GENERIC_from_json.py -msgid "The tomatoes are ready to harvest!" -msgstr "¡Los tomates están listos para cosechar!" - -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing tomato)', -#. 'str_pl': 'garden pots (growing tomatoes)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing wheat)', -#. 'str_pl': 'garden pots (growing wheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing hops)', -#. 'str_pl': 'garden pots (growing hops)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing buckwheat)', -#. 'str_pl': 'garden pots (growing buckwheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing broccoli)', -#. 'str_pl': 'garden pots (growing broccoli)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing oats)', -#. 'str_pl': 'garden pots (growing oats)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing barley)', -#. 'str_pl': 'garden pots (growing barley)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing carrot)', -#. 'str_pl': 'garden pots (growing carrots)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cotton)', -#. 'str_pl': 'garden pots (growing cotton)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cabbage)', -#. 'str_pl': 'garden pots (growing cabbage)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cucumber)', -#. 'str_pl': 'garden pots (growing cucumber)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing garlic)', -#. 'str_pl': 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "It isn't done growing yet." -msgstr "Todavía no terminó de madurar." - -#. ~ Description for {'str': 'garden pot (growing tomato)', 'str_pl': 'garden -#. pots (growing tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing tomatoes. Once ripe, it can be activated to " -"prepare them for harvest." -msgstr "" -"Es una maceta para huerta cultivando tomates. Una vez que estén maduros, " -"puede ser activada para dejarlos listos para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe tomato)" -msgid_plural "garden pots (ripe tomatoes)" -msgstr[0] "maceta para huerta (tomates maduros)" -msgstr[1] "macetas para huerta (tomates maduros)" - -#. ~ Description for {'str': 'garden pot (ripe tomato)', 'str_pl': 'garden -#. pots (ripe tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with a ripe tomato plant. Disassemble to retrieve the " -"tasty 'matos." -msgstr "" -"Es una maceta de huerta con una planta de tomate madura. Desarmala para " -"cosechar los sabrosos tomates." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing wheat)" -msgid_plural "garden pots (growing wheat)" -msgstr[0] "maceta para huerta (trigo inmaduro)" -msgstr[1] "macetas para huerta (trigo inmaduro)" - -#. ~ Use action msg for {'str': 'garden pot (growing wheat)', 'str_pl': -#. 'garden pots (growing wheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The wheat is ready to harvest!" -msgstr "¡El trigo está listo para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing wheat)', 'str_pl': 'garden -#. pots (growing wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing wheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando trigo. Una vez que esté maduro, puede " -"ser activada para dejarlo listo para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe wheat)" -msgid_plural "garden pots (ripe wheat)" -msgstr[0] "maceta para huerta (trigo maduro)" -msgstr[1] "macetas para huerta (trigo maduro)" - -#. ~ Description for {'str': 'garden pot (ripe wheat)', 'str_pl': 'garden pots -#. (ripe wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with wheat ready to harvest. Disassemble to retrieve " -"it." -msgstr "" -"Es una maceta para huerta con trigo listo para cosechar. Desarmala para " -"cosecharlo." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing hops)" -msgid_plural "garden pots (growing hops)" -msgstr[0] "maceta para huerta (lúpulo inmaduro)" -msgstr[1] "macetas para huerta (lúpulo inmaduro)" - -#. ~ Use action msg for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'}. -#: lang/json/GENERIC_from_json.py -msgid "The hops are ready to harvest!" -msgstr "¡El lúpulo está listo para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing hops. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando lúpulo. Una vez que esté maduro, puede " -"ser activada para dejarlo listo para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe hops)" -msgid_plural "garden pots (ripe hops)" -msgstr[0] "maceta para huerta (lúpulo maduro)" -msgstr[1] "macetas para huerta (lúpulo maduro)" - -#. ~ Description for {'str': 'garden pot (ripe hops)', 'str_pl': 'garden pots -#. (ripe hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing blooming hops flowers. Disassemble to " -"harvest them." -msgstr "" -"Es una maceta para huerta con flores de lúpulo. Desarmala para cosecharlas." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing buckwheat)" -msgid_plural "garden pots (growing buckwheat)" -msgstr[0] "maceta para huerta (trigo sarraceno inmaduro)" -msgstr[1] "macetas para huerta (trigo sarraceno inmaduro)" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" +msgstr[0] "Siroco Ardiente" +msgstr[1] "Siroco Ardiente" -#. ~ Use action msg for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'}. +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "The buckwheat is ready to harvest!" -msgstr "¡El trigo sarraceno está listo para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing buckwheat. Once ripe, it can be activated to " -"prepare it for harvest." +msgid "This book contains the teaching of the Desert Wind discipline." msgstr "" -"Es una maceta para huerta cultivando trigo sarraceno. Una vez que esté " -"maduro, puede ser activada para dejarlo listo para cosechar." +"Este libro contiene las enseñanzas de la disciplina del Viento Desértico." #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe buckwheat)" -msgid_plural "garden pots (ripe buckwheat)" -msgstr[0] "maceta para huerta (trigo sarraceno maduro)" -msgstr[1] "macetas para huerta (trigo sarraceno maduro)" +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" +msgstr[0] "Claridad Perfecta de Mente y Cuerpo" +msgstr[1] "Claridad Perfecta de Mente y Cuerpo" -#. ~ Description for {'str': 'garden pot (ripe buckwheat)', 'str_pl': 'garden -#. pots (ripe buckwheat)'} +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe buckwheat stalks. Disassemble to " -"harvest them." -msgstr "" -"Es una maceta para huerta con tallos de trigo sarraceno maduros. Desarmala " -"para cosecharlos." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing broccoli)" -msgid_plural "garden pots (growing broccoli)" -msgstr[0] "maceta para huerta (brócoli inmaduro)" -msgstr[1] "macetas para huerta (brócoli inmaduro)" - -#. ~ Use action msg for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'}. -#: lang/json/GENERIC_from_json.py -msgid "The broccoli is ready to harvest!" -msgstr "¡El brócoli está listo para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing broccoli. Once ripe, it can be activated to " -"prepare it for harvest." +msgid "This book contains the teaching of the Diamond Mind discipline." msgstr "" -"Es una maceta para huerta cultivando brócoli. Una vez que esté maduro, puede" -" ser activada para dejarlo listo para cosechar." +"Este libro contiene las enseñanzas de la disciplina Mente de Diamante." #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe broccoli)" -msgid_plural "garden pots (ripe broccoli)" -msgstr[0] "maceta para huerta (brócoli maduro)" -msgstr[1] "macetas para huerta (brócoli maduro)" +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" +msgstr[0] "El libro de Mudora" +msgstr[1] "El libro de Mudora" -#. ~ Description for {'str': 'garden pot (ripe broccoli)', 'str_pl': 'garden -#. pots (ripe broccoli)'} +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot containing some fully-grown broccoli. Disassemble to " -"harvest it." -msgstr "" -"Es una maceta para huerta con brócoli bien crecido. Desarmala para " -"cosecharlo." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing oats)" -msgid_plural "garden pots (growing oats)" -msgstr[0] "maceta para huerta (avena inmadura)" -msgstr[1] "macetas para huerta (avena inmadura)" - -#. ~ Use action msg for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'}. -#: lang/json/GENERIC_from_json.py -msgid "The oats are ready to harvest!" -msgstr "¡La avena está lista para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing oats. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando avena. Una vez que esté madura, puede " -"ser activada para dejarla lista para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe oats)" -msgid_plural "garden pots (ripe oats)" -msgstr[0] "maceta para huerta (avena madura)" -msgstr[1] "macetas para huerta (avena madura)" - -#. ~ Description for {'str': 'garden pot (ripe oats)', 'str_pl': 'garden pots -#. (ripe oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some golden, fully-grown oats. Disassemble " -"to harvest them." -msgstr "" -"Es una maceta para huerta con avena dorada, bien crecida. Desarmala para " -"cosecharla." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing barley)" -msgid_plural "garden pots (growing barley)" -msgstr[0] "maceta para huerta (cebada inmadura)" -msgstr[1] "macetas para huerta (cebada inmadura)" - -#. ~ Use action msg for {'str': 'garden pot (growing barley)', 'str_pl': -#. 'garden pots (growing barley)'}. -#: lang/json/GENERIC_from_json.py -msgid "Barley is ready to harvest!" -msgstr "¡La cebada está lista para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing barley)', 'str_pl': 'garden -#. pots (growing barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing barley. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando cebada. Una vez que esté madura, puede " -"ser activada para dejarla lista para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe barley)" -msgid_plural "garden pots (ripe barley)" -msgstr[0] "maceta para huerta (cebada madura)" -msgstr[1] "macetas para huerta (cebada madura)" - -#. ~ Description for {'str': 'garden pot (ripe barley)', 'str_pl': 'garden -#. pots (ripe barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ready-to-harvest barley. Disassemble " -"to harvest it." -msgstr "" -"Es una maceta para huerta con cebada lista para ser cosechada. Desarmala " -"para cosecharla." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing carrot)" -msgid_plural "garden pots (growing carrots)" -msgstr[0] "maceta para huerta (zanahorias inmaduras)" -msgstr[1] "macetas para huerta (zanahorias inmaduras)" - -#. ~ Use action msg for {'str': 'garden pot (growing carrot)', 'str_pl': -#. 'garden pots (growing carrots)'}. -#: lang/json/GENERIC_from_json.py -msgid "The carrots are ready to harvest!" -msgstr "¡Las zanahorias están listas para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing carrot)', 'str_pl': 'garden -#. pots (growing carrots)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing carrots. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando zanahorias. Una vez que estén maduras, " -"puede ser activada para dejarlas listas para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe carrot)" -msgid_plural "garden pots (ripe carrot)" -msgstr[0] "maceta para huerta (zanahorias maduras)" -msgstr[1] "macetas para huerta (zanahorias maduras)" - -#. ~ Description for {'str': 'garden pot (ripe carrot)', 'str_pl': 'garden -#. pots (ripe carrot)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ripe carrots. Disassemble to harvest " -"them. Store away from rabbits." -msgstr "" -"Es una maceta para huerta con zanahorias maduras. Desarmala para " -"cosecharlas." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cotton)" -msgid_plural "garden pots (growing cotton)" -msgstr[0] "maceta para huerta (algodón inmaduro)" -msgstr[1] "macetas para huerta (algodón inmaduro)" - -#. ~ Use action msg for {'str': 'garden pot (growing cotton)', 'str_pl': -#. 'garden pots (growing cotton)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cotton is ready to harvest!" -msgstr "¡El algodón está listo para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing cotton)', 'str_pl': 'garden -#. pots (growing cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cotton. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando algodón. Una vez que esté maduro, puede" -" ser activada para dejarlo listo para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cotton)" -msgid_plural "garden pots (ripe cotton)" -msgstr[0] "maceta para huerta (algodón maduro)" -msgstr[1] "macetas para huerta (algodón maduro)" - -#. ~ Description for {'str': 'garden pot (ripe cotton)', 'str_pl': 'garden -#. pots (ripe cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing white, fluffy cotton bolls ready for the " -"loom. Disassemble to pluck them." -msgstr "" -"Es una maceta para huerta con cápsulas blancas y esponjosas de algodón " -"listas para tejer. Desarmala para cosecharlas." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cabbage)" -msgid_plural "garden pots (growing cabbage)" -msgstr[0] "maceta para huerta (repollo inmaduro)" -msgstr[1] "macetas para huerta (repollo inmaduro)" - -#. ~ Use action msg for {'str': 'garden pot (growing cabbage)', 'str_pl': -#. 'garden pots (growing cabbage)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cabbages are ready to harvest!" -msgstr "¡El repollo está listo para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing cabbage)', 'str_pl': 'garden -#. pots (growing cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cabbage. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando repollo. Una vez que esté maduro, puede" -" ser activada para dejarlo listo para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cabbage)" -msgid_plural "garden pots (ripe cabbage)" -msgstr[0] "maceta para huerta (repollo maduro)" -msgstr[1] "macetas para huerta (repollo maduro)" - -#. ~ Description for {'str': 'garden pot (ripe cabbage)', 'str_pl': 'garden -#. pots (ripe cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing a big cabbage leaf. Disassemble to harvest " -"it." -msgstr "" -"Es una maceta para huerta con una hoja grande de repollo. Desarmala para " -"cosecharla." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cucumber)" -msgid_plural "garden pots (growing cucumber)" -msgstr[0] "maceta para huerta (pepino inmaduros)" -msgstr[1] "macetas para huerta (pepino inmaduros)" - -#. ~ Use action msg for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cucumbers are ready to harvest!" -msgstr "¡Los pepinos están listos para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cucumber. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando pepino. Una vez que esté maduro, puede " -"ser activada para dejarlo listo para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cucumber)" -msgid_plural "garden pots (ripe cucumber)" -msgstr[0] "maceta para huerta (pepino maduro)" -msgstr[1] "macetas para huerta (pepino maduro)" - -#. ~ Description for {'str': 'garden pot (ripe cucumber)', 'str_pl': 'garden -#. pots (ripe cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe cucumbers. Disassemble to harvest " -"them." -msgstr "" -"Es una maceta para huerta con pepino maduro. Desarmala para cosecharlo." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing garlic)" -msgid_plural "garden pots (growing garlic)" -msgstr[0] "maceta para huerta (ajo inmaduro)" -msgstr[1] "macetas para huerta (ajo inmaduro)" - -#. ~ Use action msg for {'str': 'garden pot (growing garlic)', 'str_pl': -#. 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "The garlic is ready to harvest!" -msgstr "¡El ajo está listo para cosechar!" - -#. ~ Description for {'str': 'garden pot (growing garlic)', 'str_pl': 'garden -#. pots (growing garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing garlic bulbs. Once ripe, it can be activated " -"to prepare it for harvest." -msgstr "" -"Es una maceta para huerta cultivando cabezas de ajo. Una vez que estén " -"maduras, puede ser activada para dejarlas listas para cosechar." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe garlic)" -msgid_plural "garden pots (ripe garlic)" -msgstr[0] "maceta para huerta (ajo maduro)" -msgstr[1] "macetas para huerta (ajo maduro)" - -#. ~ Description for {'str': 'garden pot (ripe garlic)', 'str_pl': 'garden -#. pots (ripe garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing pungent garlic bulbs. Disassemble to " -"harvest them, or wave it at vampires to scare them." -msgstr "" -"Es una maceta para huerta con cabezas picantes de ajo. Desarmala para " -"cosecharlas, o agitalas para asustar a los vampiros." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "roadheader" -msgid_plural "roadheaders" -msgstr[0] "rozadora" -msgstr[1] "rozadoras" - -#. ~ Description for roadheader -#: lang/json/GENERIC_from_json.py -msgid "" -"A large and heavy jagged metalhead with a lot of spikes for destroying mine " -"walls." -msgstr "" -"Es una gran punta de metal pesada con muchas púas para destrozar paredes en " -"una mina. También se lo llama minador puntual." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "Balancer" -msgid_plural "Balancers" -msgstr[0] "balanceador" -msgstr[1] "balanceadores" - -#. ~ Description for Balancer -#: lang/json/GENERIC_from_json.py -msgid "A large and heavy metal bar for balancing a vehicle." +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." msgstr "" -"Es una gran barra de metal pesada que se usa para balancear un vehículo." +"Es una colección de antiguas historias y conocimiento hyliano. Tiene marcada" +" una sección sobre batallas históricas." #: lang/json/GENERIC_from_json.py msgid "The Life and Work of Tiger Sauer" @@ -66407,8 +67750,8 @@ msgid "" "A biography of a combat cyborg agent detailing his philosophy and martial " "art." msgstr "" -"Es una biografía de un agente androide de combate, que detalla su filosofía " -"y su arte marcial." +"Es una biografía de un agente ciborg de combate, que detalla su filosofía y " +"su arte marcial." #: lang/json/GENERIC_from_json.py msgid "stone shell" @@ -66422,7 +67765,7 @@ msgid "" "The broken fragment of an owlbear egg. With luck it might still contain " "some of its former power, though if nothing else it's still a bit sharp." msgstr "" -"Es un fragmento roto de un huevo de oso lechuza. Con un poco de suerte, " +"Es un fragmento roto de un huevo de osolechuza. Con un poco de suerte, " "todavía contiene algo de su poder, aunque si no, por lo menos es un poco " "filoso." @@ -66439,7 +67782,7 @@ msgid "" "possess an otherworldly glow." msgstr "" "Es los restos en polvo de la forma física de una luz mala. Parece que " -"todavía conserva un brillo de otro mundo." +"todavía conserva un brillo sobrenatural." #: lang/json/GENERIC_from_json.py msgid "magical reading light" @@ -66514,8 +67857,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "stirge proboscis" msgid_plural "stirge proboscises" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "probóscide de stirge" +msgstr[1] "probóscides de stirge" #. ~ Description for {'str': 'stirge proboscis', 'str_pl': 'stirge #. proboscises'} @@ -66524,12 +67867,14 @@ msgid "" "A long sucking apparatus harvested from stirge corpse. Makes a poor melee " "weapon." msgstr "" +"Es un órgano largo que usa para chupar el stirge, quitado de un cadáver. Es " +"un arma mediocre para el cuerpo a cuerpo." #: lang/json/GENERIC_from_json.py msgid "chunk of demon chitin" msgid_plural "chunks of demon chitin" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pedazo de quitina demoníaca" +msgstr[1] "pedazos de quitina demoníaca" #. ~ Description for {'str': 'chunk of demon chitin', 'str_pl': 'chunks of #. demon chitin'} @@ -66538,12 +67883,14 @@ msgid "" "A piece of demon spider exoskeleton. It is light and very durable, and " "probably has some magical properties." msgstr "" +"Es un pedazo de exoesqueleto de una araña demoníaca. Es liviano y muy " +"resistente, y probablemente tenga alguna propiedad mágica." #: lang/json/GENERIC_from_json.py msgid "demon chitin plate" msgid_plural "demon chitin plates" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "placa de quitina demoníaca" +msgstr[1] "placas de quitina demoníaca" #. ~ Description for demon chitin plate #: lang/json/GENERIC_from_json.py @@ -66552,12 +67899,15 @@ msgid "" " of an adult demon spider. A plate of this size can be used to create armor" " plating." msgstr "" +"Es un pedazo grande de exoesqueleto de una araña demoníaca, cuidadosamente " +"cortada de un cadáver de una araña demoníaca adulta. Una placa de este " +"tamaño puede ser usada para crear armaduras." #: lang/json/GENERIC_from_json.py msgid "demon spider fang" msgid_plural "demon spider fangs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "colmillo de araña demoníaca" +msgstr[1] "colmillos de araña demoníaca" #. ~ Description for demon spider fang #: lang/json/GENERIC_from_json.py @@ -66565,24 +67915,28 @@ msgid "" "A fang from a demon spider. It seems to still drip with poison; you might " "be able to use this in some alchemical recipe?" msgstr "" +"Es un colmillo de araña demoníaca. Parece que todavía le gotea el veneno; " +"¿por ahí podés usarlo en alguna receta química?" #: lang/json/GENERIC_from_json.py msgid "mana dust" msgid_plural "mana dusts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "polvo de maná" +msgstr[1] "polvos de maná" #. ~ Description for mana dust #: lang/json/GENERIC_from_json.py msgid "" "Crystallized mana in powdered form. It faintly pulses with arcane energy." msgstr "" +"Es maná cristalizado forma de polvo. Parece latir levemente con energía " +"arcana." #: lang/json/GENERIC_from_json.py msgid "black dragon scale" msgid_plural "black dragon scales" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escama de dragón negro" +msgstr[1] "escamas de dragón negro" #. ~ Description for black dragon scale #: lang/json/GENERIC_from_json.py @@ -66590,12 +67944,14 @@ msgid "" "A scale from a black dragon. It still has its magical properties and acid " "resistance." msgstr "" +"Es una escama de dragón negro. Todavía posee sus propiedades mágicas y su " +"resistencia al ácido." #: lang/json/GENERIC_from_json.py msgid "black dragon hide" msgid_plural "black dragon hides" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pellejo de dragón negro" +msgstr[1] "pellejos de dragón negro" #. ~ Description for black dragon hide #: lang/json/GENERIC_from_json.py @@ -66603,18 +67959,21 @@ msgid "" "Prepared hide from a black dragon. Hard, acid-resistant, and with more " "scales could make a suit of armor as hard as steel and half as heavy." msgstr "" +"Es pellejo curado de un dragón negro. Duro, resistente al ácido y si " +"conseguís más escamas podrías fabricar una armadura tan dura como el acero " +"pero con la mitad del peso." #: lang/json/GENERIC_from_json.py msgid "vacation brochure" msgid_plural "vacation brochures" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "folleto de vacaciones" +msgstr[1] "folletos de vacaciones" #. ~ Use action message for vacation brochure. #. ~ Use action message for lair map. #: lang/json/GENERIC_from_json.py msgid "You add the locations to your map." -msgstr "" +msgstr "Agregás los lugares en tu mapa." #. ~ Description for vacation brochure #: lang/json/GENERIC_from_json.py @@ -66624,12 +67983,16 @@ msgid "" "on an island and a remote looking cabin in the woods. It includes a map of " "the areas." msgstr "" +"Es un folleto brillante que incentiva a los estudiantes a reservar " +"vacaciones junto a un lago o una cabaña alejada. Este folleto incluye " +"abundantes fotografías de una torre en una isla y de una cabaña alejada en " +"un bosque. Incluye un mapa de esas áreas." #: lang/json/GENERIC_from_json.py msgid "lair map" msgid_plural "lair maps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mapa de guarida" +msgstr[1] "mapas de guarida" #. ~ Description for lair map #: lang/json/GENERIC_from_json.py @@ -66637,12 +68000,14 @@ msgid "" "This is an well worn map. It has pictures of fantastical beasts " "embellishing the carefully drawn map markers." msgstr "" +"Es un mapa muy desgastado. Tiene imágenes de criaturas fantásticas adornando" +" el mapa cuidadosamente dibujado." #: lang/json/GENERIC_from_json.py msgid "old photo" msgid_plural "old photos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "foto vieja" +msgstr[1] "fotos viejas" #. ~ Description for old photo #: lang/json/GENERIC_from_json.py @@ -66650,12 +68015,14 @@ msgid "" "A photo of a jovial, old wizard, he seems to be dancing with a coat rack in " "this basement. There is a stack of suitcases in the background." msgstr "" +"Es la foto de un viejo mago pero jovial, que parece estar bailando con un " +"perchero en un sótano. En el fondo se ve una pila de valijas." #: lang/json/GENERIC_from_json.py msgid "broken clay golem" msgid_plural "broken clay golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golem de arcilla roto" +msgstr[1] "golems de arcilla rotos" #. ~ Description for broken clay golem #: lang/json/GENERIC_from_json.py @@ -66663,12 +68030,14 @@ msgid "" "A broken clay golem, looking like a piece of post-modern art. Could be " "smashed for clay." msgstr "" +"Es un golem de arcilla roto, que parece una obra de arte post-moderna. Puede" +" reciclarse la arcilla." #: lang/json/GENERIC_from_json.py msgid "broken plastic golem" msgid_plural "broken plastic golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golem de plástico roto" +msgstr[1] "golems de plástico rotos" #. ~ Description for broken plastic golem #: lang/json/GENERIC_from_json.py @@ -66676,12 +68045,14 @@ msgid "" "A broken plastic golem, like a giant action figure chewed up by an equally " "giant puppy. You could smash it up into recycled plastic bits." msgstr "" +"Es un golem de plástico roto, como un muñeco gigante masticado por un " +"cachorro igualemente gigantesco. Puede reciclarse el plástico." #: lang/json/GENERIC_from_json.py msgid "broken stone golem" msgid_plural "broken stone golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golem de piedra roto" +msgstr[1] "golems de piedra rotos" #. ~ Description for broken stone golem #: lang/json/GENERIC_from_json.py @@ -66689,12 +68060,14 @@ msgid "" "A broken stone golem, not that much different from big boulder. Could be " "smashed for stone." msgstr "" +"Es un golem de piedra roto, no muy diferente a una roca grande. Puede " +"romperse para usar la piedra." #: lang/json/GENERIC_from_json.py msgid "broken iron golem" msgid_plural "broken iron golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golem de hierro roto" +msgstr[1] "golems de hierro rotos" #. ~ Description for broken iron golem #: lang/json/GENERIC_from_json.py @@ -66702,12 +68075,69 @@ msgid "" "A broken iron golem, with all iron you would possibly ever need. Could be " "smashed for iron." msgstr "" +"Es un golem de hierro roto, con todo el hierro que podrías llegar a " +"necesitar. Puede romperse para usar el hierro." + +#: lang/json/GENERIC_from_json.py +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" +msgstr[0] "bolsa dimensional menor" +msgstr[1] "bolsas dimensionales menores" + +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff" +" you put into it. It takes a few words and hand-waving to take an item out." +msgstr "" +"Es una bolsa que puede contener más de lo que debería. La bolsa reduce " +"mágicamente el peso de su contenido y se expande menos del tamaño de las " +"cosas que ponés dentro. Necesitás unas palabras y un movimiento de manos " +"para sacar los objetos." + +#: lang/json/GENERIC_from_json.py +msgid "dimensional bag" +msgid_plural "dimensional bags" +msgstr[0] "bolsa dimensional" +msgstr[1] "bolsas dimensionales" + +#: lang/json/GENERIC_from_json.py +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" +msgstr[0] "bolsa dimensional mayor" +msgstr[1] "bolsas dimensionales mayores" + +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." +msgstr "" +"Esta bolsa dimensional ha alcanzado los límites de la innovación humana con " +"una combinación de industrial y secretos mágicos." + +#: lang/json/GENERIC_from_json.py +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" +msgstr[0] "caja de preservación por supergravedad" +msgstr[1] "cajas de preservación por supergravedad" + +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." +msgstr "" +"Es un caja que utiliza gravedad mágica para preservar la comida. Hace que la" +" caja sea mucho más pesada, pero lo que contenga durará por más tiempo y " +"podés almacenar más cosas." #: lang/json/GENERIC_from_json.py msgid "lesser staff of the magi" msgid_plural "lesser staves of the magi" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vara menor de magi" +msgstr[1] "varas menores de magi" #. ~ Description for {'str': 'lesser staff of the magi', 'str_pl': 'lesser #. staves of the magi'} @@ -66716,23 +68146,26 @@ msgid "" "A beautifully carved staff, made of enchanted wood and mithril. It faintly " "glows with magic when you cast spells, but it is not a sturdy melee weapon." msgstr "" +"Es una hermosa vara tallada, hecha con madera encantada y mitril. Brilla " +"suavemente con magia cuando realizás un hechizo, pero no es tan buena como " +"arma de cuerpo a cuerpo." #: lang/json/GENERIC_from_json.py msgid "fireball hammer" msgid_plural "fireball hammers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "martillo bola de fuego" +msgstr[1] "martillos bola de fuego" #. ~ Description for fireball hammer #: lang/json/GENERIC_from_json.py msgid "Use with caution! Flammable! Explosive!" -msgstr "" +msgstr "¡Usar con cuidado! ¡Inflamable! ¡Explosivo!" #: lang/json/GENERIC_from_json.py msgid "The Iron Whip" msgid_plural "Iron Whips" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El Látigo de Hierro" +msgstr[1] "látigos de hierro" #. ~ Use action msg for {'str': 'The Iron Whip', 'str_pl': 'Iron Whips'}. #: lang/json/GENERIC_from_json.py @@ -66740,6 +68173,8 @@ msgid "" "You loop the whip in your hand and it coils back into a belt form in an " "instant." msgstr "" +"Hacés un movimiento y el látigo se enrosca nuevamente en forma de cinturón " +"en un segundo." #. ~ Description for {'str': 'The Iron Whip', 'str_pl': 'Iron Whips'} #: lang/json/GENERIC_from_json.py @@ -66748,426 +68183,429 @@ msgid "" "the end. Easily capable of slicing and dicing anything that comes at you. " "It transforms back into a belt." msgstr "" +"Es un látigo largo de acero flexible trenzado que se hace fino en la punta y" +" termina en una cuchilla filosa. Es muy capaz de cortar y hacer pedazos " +"cualquier cosa que se te acerque. Se vuelve a transformar en un cinturón." #: lang/json/GENERIC_from_json.py msgid "cudgel +1" msgid_plural "cudgel +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "garrote +1" +msgstr[1] "garrotes +1" #: lang/json/GENERIC_from_json.py msgid "cudgel +2" msgid_plural "cudgel +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "garrote +2" +msgstr[1] "garrotes +2" #: lang/json/GENERIC_from_json.py msgid "quarterstaff +1" msgid_plural "quarterstaff +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vara larga +1" +msgstr[1] "varas largas +1" #: lang/json/GENERIC_from_json.py msgid "quarterstaff +2" msgid_plural "quarterstaff +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vara larga +2" +msgstr[1] "varas largas +2" #: lang/json/GENERIC_from_json.py msgid "ironshod quarterstaff +1" msgid_plural "ironshod quarterstaff +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vara larga con calces de hierro +1" +msgstr[1] "varas largas con calces de hierro +1" #: lang/json/GENERIC_from_json.py msgid "ironshod quarterstaff +2" msgid_plural "ironshod quarterstaff +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vara larga con calces de hierro +2" +msgstr[1] "varas largas con calces de hierro +2" #: lang/json/GENERIC_from_json.py msgid "longsword +1" msgid_plural "longsword +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espada larga +1" +msgstr[1] "espadas largas +1" #: lang/json/GENERIC_from_json.py msgid "longsword +2" msgid_plural "longsword +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espada larga +2" +msgstr[1] "espadas largas +2" #: lang/json/GENERIC_from_json.py msgid "sledge hammer +1" msgid_plural "sledge hammer +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "almádena +1" +msgstr[1] "almádenas +1" #: lang/json/GENERIC_from_json.py msgid "sledge hammer +2" msgid_plural "sledge hammer +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "almádena +2" +msgstr[1] "almádenas +2" #: lang/json/GENERIC_from_json.py msgid "warhammer +1" msgid_plural "warhammer +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "martillo de guerra +1" +msgstr[1] "martillos de guerra +1" #: lang/json/GENERIC_from_json.py msgid "warhammer +2" msgid_plural "warhammer +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "martillo de guerra +2" +msgstr[1] "martillos de guerra +2" #: lang/json/GENERIC_from_json.py msgid "bat +1" msgid_plural "bat +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bate +1" +msgstr[1] "bates +1" #: lang/json/GENERIC_from_json.py msgid "bat +2" msgid_plural "bat +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bate +2" +msgstr[1] "bates +2" #: lang/json/GENERIC_from_json.py msgid "aluminum bat +1" msgid_plural "aluminum bat +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bate de aluminio +1" +msgstr[1] "bates de aluminio +1" #: lang/json/GENERIC_from_json.py msgid "aluminum bat +2" msgid_plural "aluminum bat +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bate de aluminio +2" +msgstr[1] "bates de aluminio +2" #: lang/json/GENERIC_from_json.py msgid "steel spear +1" msgid_plural "steel spear +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanza de acero +1" +msgstr[1] "lanzas de acero +1" #: lang/json/GENERIC_from_json.py msgid "steel spear +2" msgid_plural "steel spear +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanza de acero +2" +msgstr[1] "lanzas de acero +2" #: lang/json/GENERIC_from_json.py msgid "qiang +1" msgid_plural "qiang +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "qiang +1" +msgstr[1] "qiangs +1" #: lang/json/GENERIC_from_json.py msgid "qiang +2" msgid_plural "qiang +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "qiang +2" +msgstr[1] "qiangs +2" #: lang/json/GENERIC_from_json.py msgid "halberd +1" msgid_plural "halberd +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "alabarda +1" +msgstr[1] "alabardas +1" #: lang/json/GENERIC_from_json.py msgid "halberd +2" msgid_plural "halberd +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "alabarda +2" +msgstr[1] "alabardas +2" #: lang/json/GENERIC_from_json.py msgid "glaive +1" msgid_plural "glaive +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "guja +1" +msgstr[1] "gujas +1" #: lang/json/GENERIC_from_json.py msgid "glaive +2" msgid_plural "glaive +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "guja +2" +msgstr[1] "gujas +2" #: lang/json/GENERIC_from_json.py msgid "naginata +1" msgid_plural "naginata +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "naginata +1" +msgstr[1] "naginatas +1" #: lang/json/GENERIC_from_json.py msgid "naginata +2" msgid_plural "naginata +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "naginata +2" +msgstr[1] "naginatas +2" #: lang/json/GENERIC_from_json.py msgid "mace +1" msgid_plural "mace +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "maza +1" +msgstr[1] "mazas +1" #: lang/json/GENERIC_from_json.py msgid "mace +2" msgid_plural "mace +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "maza +2" +msgstr[1] "mazas +2" #: lang/json/GENERIC_from_json.py msgid "morningstar +1" msgid_plural "morningstar +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "maza de armas +1" +msgstr[1] "mazas de armas +1" #: lang/json/GENERIC_from_json.py msgid "morningstar +2" msgid_plural "morningstar +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "maza de armas +2" +msgstr[1] "mazas de armas +2" #: lang/json/GENERIC_from_json.py msgid "jian +1" msgid_plural "jian +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jian +1" +msgstr[1] "jians +1" #: lang/json/GENERIC_from_json.py msgid "jian +2" msgid_plural "jian +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jian +2" +msgstr[1] "jians +2" #: lang/json/GENERIC_from_json.py msgid "scimitar +1" msgid_plural "scimitar +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cimitarra +1" +msgstr[1] "cimitarras +1" #: lang/json/GENERIC_from_json.py msgid "scimitar +2" msgid_plural "scimitar +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cimitarra +2" +msgstr[1] "cimitarras +2" #: lang/json/GENERIC_from_json.py msgid "estoc +1" msgid_plural "estoc +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "estoque +1" +msgstr[1] "estoques +1" #: lang/json/GENERIC_from_json.py msgid "estoc +2" msgid_plural "estoc +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "estoque +2" +msgstr[1] "estoques +2" #: lang/json/GENERIC_from_json.py msgid "arming sword +1" msgid_plural "arming sword +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espada de caballero +1" +msgstr[1] "espadas de caballero +1" #: lang/json/GENERIC_from_json.py msgid "arming sword +2" msgid_plural "arming sword +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espada de caballero +2" +msgstr[1] "espadas de caballero +2" #: lang/json/GENERIC_from_json.py msgid "broadsword +1" msgid_plural "broadsword +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espada ancha +1" +msgstr[1] "espadas anchas +1" #: lang/json/GENERIC_from_json.py msgid "broadsword +2" msgid_plural "broadsword +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espada ancha +2" +msgstr[1] "espadas anchas +2" #: lang/json/GENERIC_from_json.py msgid "battle axe +1" msgid_plural "battle axe +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hacha de guerra +1" +msgstr[1] "hachas de guerra +1" #: lang/json/GENERIC_from_json.py msgid "battle axe +2" msgid_plural "battle axe +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hacha de guerra +2" +msgstr[1] "hachas de guerra +2" #: lang/json/GENERIC_from_json.py msgid "cavalry sabre +1" msgid_plural "cavalry sabre +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sable de caballería +1" +msgstr[1] "sables de caballería +1" #: lang/json/GENERIC_from_json.py msgid "cavalry sabre +2" msgid_plural "cavalry sabre +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sable de caballería +2" +msgstr[1] "sables de caballería +2" #: lang/json/GENERIC_from_json.py msgid "crowbar +1" msgid_plural "crowbar +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "barreta +1" +msgstr[1] "barretas +1" #: lang/json/GENERIC_from_json.py msgid "crowbar +2" msgid_plural "crowbar +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "barreta +2" +msgstr[1] "barretas +2" #: lang/json/GENERIC_from_json.py msgid "cutlass +1" msgid_plural "cutlass +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "alfanje +1" +msgstr[1] "alfanjes +1" #: lang/json/GENERIC_from_json.py msgid "cutlass +2" msgid_plural "cutlass +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "alfanje +2" +msgstr[1] "alfanjes +2" #: lang/json/GENERIC_from_json.py msgid "fire axe +1" msgid_plural "fire axe +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hacha de bombero +1" +msgstr[1] "hachas de bombero +1" #: lang/json/GENERIC_from_json.py msgid "fire axe +2" msgid_plural "fire axe +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hacha de bombero +2" +msgstr[1] "hachas de bombero +2" #: lang/json/GENERIC_from_json.py msgid "katana +1" msgid_plural "katana +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "katana +1" +msgstr[1] "katanas +1" #: lang/json/GENERIC_from_json.py msgid "katana +2" msgid_plural "katana +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "katana +2" +msgstr[1] "katanas +2" #: lang/json/GENERIC_from_json.py msgid "combat knife +1" msgid_plural "combat knife +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de combate +1" +msgstr[1] "cuchillos de combate +1" #: lang/json/GENERIC_from_json.py msgid "combat knife +2" msgid_plural "combat knife +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de combate +2" +msgstr[1] "cuchillos de combate +2" #: lang/json/GENERIC_from_json.py msgid "hunting knife +1" msgid_plural "hunting knife +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de caza +1" +msgstr[1] "cuchillos de caza +1" #: lang/json/GENERIC_from_json.py msgid "hunting knife +2" msgid_plural "hunting knife +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de caza +2" +msgstr[1] "cuchillos de caza +2" #: lang/json/GENERIC_from_json.py msgid "survival knife +1" msgid_plural "survival knife +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de supervivencia +1" +msgstr[1] "cuchillos de supervivencia +1" #: lang/json/GENERIC_from_json.py msgid "survival knife +2" msgid_plural "survival knife +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de supervivencia +2" +msgstr[1] "cuchillos de supervivencia +2" #: lang/json/GENERIC_from_json.py msgid "trench knife +1" msgid_plural "trench knife +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de trinchera +1" +msgstr[1] "cuchillos de trinchera +1" #: lang/json/GENERIC_from_json.py msgid "trench knife +2" msgid_plural "trench knife +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de trinchera +2" +msgstr[1] "cuchillos de trinchera +2" #: lang/json/GENERIC_from_json.py msgid "kris +1" msgid_plural "kris +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kris +1" +msgstr[1] "kris +1" #: lang/json/GENERIC_from_json.py msgid "kris +2" msgid_plural "kris +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kris +2" +msgstr[1] "kris +2" #: lang/json/GENERIC_from_json.py msgid "kukri +1" msgid_plural "kukri +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kukri +1" +msgstr[1] "kukris +1" #: lang/json/GENERIC_from_json.py msgid "kukri +2" msgid_plural "kukri +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kukri +2" +msgstr[1] "kukris +2" #: lang/json/GENERIC_from_json.py msgid "nodachi +1" msgid_plural "nodachi +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "nodachi +1" +msgstr[1] "nodachis +1" #: lang/json/GENERIC_from_json.py msgid "nodachi +2" msgid_plural "nodachi +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "nodachi +2" +msgstr[1] "nodachis +2" #: lang/json/GENERIC_from_json.py msgid "pickaxe +1" msgid_plural "pickaxe +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pico +1" +msgstr[1] "picos +1" #: lang/json/GENERIC_from_json.py msgid "pickaxe +2" msgid_plural "pickaxe +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pico +2" +msgstr[1] "picos +2" #: lang/json/GENERIC_from_json.py msgid "pike +1" msgid_plural "pike +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pica +1" +msgstr[1] "picas +1" #: lang/json/GENERIC_from_json.py msgid "pike +2" msgid_plural "pike +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pica +2" +msgstr[1] "picas +2" #: lang/json/GENERIC_from_json.py msgid "rapier +1" @@ -67184,80 +68622,80 @@ msgstr[1] "espadas roperas +2" #: lang/json/GENERIC_from_json.py msgid "tanto +1" msgid_plural "tanto +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tantō +1" +msgstr[1] "tantōs +1" #: lang/json/GENERIC_from_json.py msgid "tanto +2" msgid_plural "tanto +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tantō +2" +msgstr[1] "tantōs +2" #: lang/json/GENERIC_from_json.py msgid "wakizashi +1" msgid_plural "wakizashi +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "wakizashi +1" +msgstr[1] "wakizashis +1" #: lang/json/GENERIC_from_json.py msgid "wakizashi +2" msgid_plural "wakizashi +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "wakizashi +2" +msgstr[1] "wakizashis +2" #: lang/json/GENERIC_from_json.py msgid "zweihänder +1" msgid_plural "zweihänder +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zweihänder +1" +msgstr[1] "zweihänders +1" #: lang/json/GENERIC_from_json.py msgid "zweihänder +2" msgid_plural "zweihänder +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zweihänder +2" +msgstr[1] "zweihänders +2" #: lang/json/GENERIC_from_json.py msgid "khopesh +1" msgid_plural "khopesh +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "khopesh +1" +msgstr[1] "khopeshes +1" #: lang/json/GENERIC_from_json.py msgid "khopesh +2" msgid_plural "khopesh +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "khopesh +2" +msgstr[1] "khopeshes +2" #: lang/json/GENERIC_from_json.py msgid "xiphos +1" msgid_plural "xiphos +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "xiphos +1" +msgstr[1] "xiphos +1" #: lang/json/GENERIC_from_json.py msgid "xiphos +2" msgid_plural "xiphos +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "xiphos +2" +msgstr[1] "xiphos +2" #: lang/json/GENERIC_from_json.py msgid "dao +1" msgid_plural "dao +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dao +1" +msgstr[1] "daos +1" #: lang/json/GENERIC_from_json.py msgid "dao +2" msgid_plural "dao +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dao +2" +msgstr[1] "daos +2" #: lang/json/GENERIC_from_json.py msgid "Biomancer spear" msgid_plural "Biomancer spears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanza de Biomante" +msgstr[1] "lanzas de Biomante" #. ~ Description for {'str': 'Biomancer spear'} #: lang/json/GENERIC_from_json.py @@ -67265,12 +68703,14 @@ msgid "" "A grotesque bone spearhead on a stout wooden pole. There is a Biomancer " "rune embedded at the base of the head." msgstr "" +"Es una grotesca punta de lanza de hueso puesta en una robusta vara de " +"madera. Tiene una runa de Biomante incrustada en la base de la punta." #: lang/json/GENERIC_from_json.py msgid "Technomancer toolbar" msgid_plural "Technomancer toolbars" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "barra de herramientas de Tecnomante" +msgstr[1] "barras de herramientas de Tecnomante" #. ~ Description for {'str': 'Technomancer toolbar'} #: lang/json/GENERIC_from_json.py @@ -67279,12 +68719,15 @@ msgid "" "hammer on the other in a convienent package. There is a Technomancer rune " "embedded in the hammerhead." msgstr "" +"Esta vara incorpora una llave inglesa arriba de una barreta y un martillo en" +" la otra parte, armando un paquete práctico. Tiene una runa de Tecnomante " +"incrustada en la punta de martillo." #: lang/json/GENERIC_from_json.py msgid "Magus staff" msgid_plural "Magus staves" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bastón de Magus" +msgstr[1] "bastones de Magus" #. ~ Description for {'str': 'Magus staff', 'str_pl': 'Magus staves'} #: lang/json/GENERIC_from_json.py @@ -67293,12 +68736,15 @@ msgid "" "and infused with mana for durability, to act as mana receptacles. There are" " two Magi runes embedded at the tips." msgstr "" +"Es una vara larga con runas talladas y dos frascos de vidrio, templado al " +"calor e infundidos con maná para mayor resistencia, que actúan como " +"receptáculos de maná. Tiene dos runas de Magi incrustadas en las puntas." #: lang/json/GENERIC_from_json.py msgid "Kelvinist flamberge" msgid_plural "Kelvinist flamberges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espada flamígera de Kelvinista" +msgstr[1] "espadas flamígeras de Kelvinista" #. ~ Description for {'str': 'Kelvinist flamberge'} #: lang/json/GENERIC_from_json.py @@ -67306,12 +68752,14 @@ msgid "" "A sword with an undulating blade, reminiscent of a flame. There is a " "Kelvinist rune embedded in the pommel." msgstr "" +"Es una espada con la cuchilla ondulada, que recuerda a una llama. Tiene una " +"runa de Kelvinista incrustada en el pomo." #: lang/json/GENERIC_from_json.py msgid "Stormshaper axe" msgid_plural "Stormshaper axes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hacha de Tormentaformante" +msgstr[1] "hachas de Tormentaformante" #. ~ Description for {'str': 'Stormshaper axe'} #: lang/json/GENERIC_from_json.py @@ -67319,12 +68767,14 @@ msgid "" "A forged copper axe with silver trimmings and a wooden handle. There is a " "Stormshaper rune embedded in the eye." msgstr "" +"Es un hacha forjada de cobre con adornos de plata y mango de madera. Tiene " +"una runa de Tormentaformante incrustada en el ojo." #: lang/json/GENERIC_from_json.py msgid "Animist athame" msgid_plural "Animist athames" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "athame de Animista" +msgstr[1] "athames de Animista" #. ~ Description for {'str': 'Animist athame'} #: lang/json/GENERIC_from_json.py @@ -67332,24 +68782,27 @@ msgid "" "A steel ritual knife used by Animists to draw blood for summoning. Their " "school rune is embedded in the crossguard." msgstr "" +"Es un cuchillo de ritual de acero usado por los Animistas para extraer " +"sangre en las invocaciones. Hay una runa de su escuela incrustada en la " +"guarda. " #: lang/json/GENERIC_from_json.py msgid "springstaff(baton)" msgid_plural "springstaves(baton)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vara-resorte (bastón)" +msgstr[1] "vara-resortes (bastón)" #. ~ Use action menu_text for {'str': 'springstaff(baton)', 'str_pl': #. 'springstaves(baton)'}. #: lang/json/GENERIC_from_json.py msgid "Extend to staff" -msgstr "" +msgstr "Extender la vara" #. ~ Use action msg for {'str': 'springstaff(baton)', 'str_pl': #. 'springstaves(baton)'}. #: lang/json/GENERIC_from_json.py msgid "You snap open your springstaff into staff mode." -msgstr "" +msgstr "Abrís bruscamente tu vara-resorte para que tenga tamaño de vara." #. ~ Description for {'str': 'springstaff(baton)', 'str_pl': #. 'springstaves(baton)'} @@ -67358,24 +68811,27 @@ msgid "" "This versatile weapon uses Technomancy-enhanced springs to keep the staff " "tips retracted while in baton configuration. Activate to extend." msgstr "" +"Es un arma versátil que utiliza resortes mejorados por Tecnomancia para " +"mantener las puntas de esta vara retraídos cuando está en la forma de " +"bastón. Hay que activarla para extenderla." #: lang/json/GENERIC_from_json.py msgid "springstaff(staff)" msgid_plural "springstaves(staff)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vara-resorte (vara)" +msgstr[1] "vara-resortes (vara)" #. ~ Use action menu_text for {'str': 'springstaff(staff)', 'str_pl': #. 'springstaves(staff)'}. #: lang/json/GENERIC_from_json.py msgid "Retract to baton" -msgstr "" +msgstr "Contraer a bastón" #. ~ Use action msg for {'str': 'springstaff(staff)', 'str_pl': #. 'springstaves(staff)'}. #: lang/json/GENERIC_from_json.py msgid "You collapse your springstaff into baton mode." -msgstr "" +msgstr "Cerrás tu vara-resorte para que tenga tamaño de bastón." #. ~ Description for {'str': 'springstaff(staff)', 'str_pl': #. 'springstaves(staff)'} @@ -67384,18 +68840,38 @@ msgid "" "This versatile weapon uses Technomancy-enhanced springs to keep the staff " "tips from retracting while in staff configuration. Activate to extend." msgstr "" +"Es un arma versátil que utiliza resortes mejorados por Tecnomancia para " +"evitar que las puntas de esta vara se retraigan cuando está en la forma de " +"vara. Hay que activarla para extenderla." + +#: lang/json/GENERIC_from_json.py +msgid "endless flask" +msgid_plural "endless flasks" +msgstr[0] "frasco sin fin" +msgstr[1] "frascos sin fin" + +#. ~ Use action msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" +msgstr "" +"Abrís el frasco y descubrís que está lleno de un dulce, dulce ¡whisky!" + +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "The flask isn't done refilling yet." +msgstr "El frasco todavía no se terminó de volver a llenar." #: lang/json/GENERIC_from_json.py msgid "magic token" msgid_plural "magic tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo mágico" +msgstr[1] "símbolos mágicos" #: lang/json/GENERIC_from_json.py msgid "longsword token" msgid_plural "longsword tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de espada larga" +msgstr[1] "símbolos de espada larga" #. ~ Use action msg for longsword token. #: lang/json/GENERIC_from_json.py @@ -67403,6 +68879,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine longsword!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en una espada larga brillante e inmaculada!" #. ~ Description for longsword token #: lang/json/GENERIC_from_json.py @@ -67410,12 +68888,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a longsword." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, una espada larga." #: lang/json/GENERIC_from_json.py msgid "arming sword token" msgid_plural "arming sword tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de espada de caballero" +msgstr[1] "símbolos de espada de caballero" #. ~ Use action msg for {'str': 'arming sword token'}. #: lang/json/GENERIC_from_json.py @@ -67423,6 +68904,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine arming sword!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en una espada de caballero brillante e inmaculada!" #. ~ Description for {'str': 'arming sword token'} #: lang/json/GENERIC_from_json.py @@ -67430,12 +68913,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case an arming sword." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, una espada de caballero." #: lang/json/GENERIC_from_json.py msgid "broadsword token" msgid_plural "broadsword tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de espada ancha" +msgstr[1] "símbolos de espada ancha" #. ~ Use action msg for broadsword token. #: lang/json/GENERIC_from_json.py @@ -67443,6 +68929,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine broadsword!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en una espada ancha brillante e inmaculada!" #. ~ Description for broadsword token #: lang/json/GENERIC_from_json.py @@ -67450,12 +68938,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a broadsword." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, una espada ancha." #: lang/json/GENERIC_from_json.py msgid "battleaxe token" msgid_plural "battleaxe tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de hacha de guerra" +msgstr[1] "símbolos de hacha de guerra" #. ~ Use action msg for {'str': 'battleaxe token'}. #: lang/json/GENERIC_from_json.py @@ -67463,6 +68954,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine battle axe!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en un hacha de guerra brillante e inmaculada!" #. ~ Description for {'str': 'battleaxe token'} #: lang/json/GENERIC_from_json.py @@ -67470,12 +68963,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a battle axe." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, un hacha de guerra." #: lang/json/GENERIC_from_json.py msgid "pike token" msgid_plural "pike tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de pica" +msgstr[1] "símbolos de pica" #. ~ Use action msg for pike token. #: lang/json/GENERIC_from_json.py @@ -67483,6 +68979,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine pike!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en una pica brillante e inmaculada!" #. ~ Description for pike token #: lang/json/GENERIC_from_json.py @@ -67490,12 +68988,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a pike." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, una pica." #: lang/json/GENERIC_from_json.py msgid "mace token" msgid_plural "mace tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de maza" +msgstr[1] "símbolos de maza" #. ~ Use action msg for mace token. #: lang/json/GENERIC_from_json.py @@ -67503,6 +69004,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine mace!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en una maza brillante e inmaculada!" #. ~ Description for mace token #: lang/json/GENERIC_from_json.py @@ -67510,12 +69013,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a mace." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, una maza." #: lang/json/GENERIC_from_json.py msgid "quarterstaff token" msgid_plural "quarterstaff tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de vara larga" +msgstr[1] "símbolos de vara larga" #. ~ Use action msg for quarterstaff token. #: lang/json/GENERIC_from_json.py @@ -67523,6 +69029,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a pristine quarterstaff!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en una vara larga inmaculada!" #. ~ Description for quarterstaff token #: lang/json/GENERIC_from_json.py @@ -67530,12 +69038,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a quarterstaff." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, una vara larga." #: lang/json/GENERIC_from_json.py msgid "hammer token" msgid_plural "hammer tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de martillo" +msgstr[1] "símbolos de martillo" #. ~ Use action msg for hammer token. #: lang/json/GENERIC_from_json.py @@ -67543,6 +69054,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine hammer!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en un martillo brillante e inmaculado!" #. ~ Description for hammer token #: lang/json/GENERIC_from_json.py @@ -67550,12 +69063,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a hammer." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, un martillo." #: lang/json/GENERIC_from_json.py msgid "screwdriver set token" msgid_plural "screwdriver set tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de juego de destornilladores" +msgstr[1] "símbolos de juego de destornilladores" #. ~ Use action msg for screwdriver set token. #: lang/json/GENERIC_from_json.py @@ -67563,6 +69079,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine screwdriver set!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en un juego de destornilladores brillante e inmaculado!" #. ~ Description for screwdriver set token #: lang/json/GENERIC_from_json.py @@ -67570,12 +69088,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a screwdriver." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, un juego de destornilladores." #: lang/json/GENERIC_from_json.py msgid "toolbox token" msgid_plural "toolbox tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de caja de herramientas" +msgstr[1] "símbolos de caja de herramientas" #. ~ Use action msg for toolbox token. #: lang/json/GENERIC_from_json.py @@ -67583,6 +69104,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine toolbox!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en una caja de herramientas brillante e inmaculada!" #. ~ Description for toolbox token #: lang/json/GENERIC_from_json.py @@ -67590,12 +69113,15 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a toolbox." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, una caja de herramientas." #: lang/json/GENERIC_from_json.py msgid "crowbar token" msgid_plural "crowbar tokens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "símbolo de barreta" +msgstr[1] "símbolos de barreta" #. ~ Use action msg for crowbar token. #: lang/json/GENERIC_from_json.py @@ -67603,6 +69129,8 @@ msgid "" "You say the command word engraved on the token, and it rapidly grows and " "morphs into a shiny pristine crowbar!" msgstr "" +"Decís la palabra orden grabada en el símbolo y rápidamente crece y ¡se " +"transforma en una barreta brillante e inmaculada!" #. ~ Description for crowbar token #: lang/json/GENERIC_from_json.py @@ -67610,24 +69138,27 @@ msgid "" "A large silver coin that, when activated by uttering the word on the back, " "turns into the item pictured on the front, in this case a crowbar." msgstr "" +"Es como una moneda grande de plata que cuando es activada al pronunciar la " +"palabra que tiene en el reverso, se transforma en el objeto cuya imagen " +"tiene en el anverso, en este caso, una barreta." #: lang/json/GENERIC_from_json.py msgid "cestus +1" msgid_plural "cestus +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cestus +1" +msgstr[1] "cesti +1" #: lang/json/GENERIC_from_json.py msgid "cestus +2" msgid_plural "cestus +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cestus +2" +msgstr[1] "cesti +2" #: lang/json/GENERIC_from_json.py msgid "flaming fist" msgid_plural "flaming fists" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puño llameante" +msgstr[1] "puños llameantes" #. ~ Description for {'str': 'flaming fist'} #: lang/json/GENERIC_from_json.py @@ -67636,24 +69167,27 @@ msgid "" "stout padding underneath to protect the wearers hand. It has been enchanted" " to emit dark magical flames that only harm enemies." msgstr "" +"Es un brazal pesado de metal que cubre el puño y aumenta el poder de golpe, " +"con relleno grueso dentro para proteger la mano. Ha sido encantado y emite " +"llamas negras mágicas que solo afectan al enemigo." #: lang/json/GENERIC_from_json.py msgid "flaming fist +1" msgid_plural "flaming fist +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puño llameante +1" +msgstr[1] "puños llameantes +1" #: lang/json/GENERIC_from_json.py msgid "flaming fist +2" msgid_plural "flaming fist +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "puño llameante +2" +msgstr[1] "puños llameantes +2" #: lang/json/GENERIC_from_json.py msgid "gauntlet of pounding" msgid_plural "gauntlets of pounding" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "guante de golpe" +msgstr[1] "guantes de golpe" #. ~ Description for {'str': 'gauntlet of pounding', 'str_pl': 'gauntlets of #. pounding'} @@ -67662,12 +69196,14 @@ msgid "" "A large gleaming metal gauntlet covered in magical symbols that allows you " "to land astoundingly powerful blows." msgstr "" +"Es un guante grande de metal reluciente, cubierto de símbolos mágicos que te" +" permiten dar extraordinarios y potentes golpes." #: lang/json/GENERIC_from_json.py msgid "Earthshaper cestus" msgid_plural "Earthshaper cesti" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cestus de Terraformante" +msgstr[1] "cesti de Terraformante" #. ~ Description for {'str': 'Earthshaper cestus', 'str_pl': 'Earthshaper #. cesti'} @@ -67677,12 +69213,15 @@ msgid "" "while increasing striking power. There is an Earthshaper rune embedded in " "the palm." msgstr "" +"Es un guante de guerra de piedra, con runas esculpidas cubriendo la mano, " +"protegiéndola a la vez que aumenta la potencia del golpe. Tiene una runa de " +"Terraformante incrustada en la palma." #: lang/json/GENERIC_from_json.py msgid "The Stormhammer" msgid_plural "The Stormhammers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El Stormhammer" +msgstr[1] "Los Stormhammer" #. ~ Description for {'str': 'The Stormhammer'} #: lang/json/GENERIC_from_json.py @@ -67690,12 +69229,14 @@ msgid "" "A crackling magical warhammer full of lightning to smite your foes with, and" " of course, smash things to bits!" msgstr "" +"Es un martillo de guerra que chisporrotea con luces mágicas, para aniquilar " +"tus enemigos, y por supuesto, ¡destrozar cosas!" #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Stormfist" msgid_plural "Stormfists" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Stormfist" +msgstr[1] "Stormfists" #. ~ Description for {'str': 'Stormfist'} #. ~ Description for Stormfist @@ -67704,12 +69245,14 @@ msgid "" "Encases your arm and hand in a sheath of crackling magical lightning, you " "can punch and defend yourself with it in melee combat." msgstr "" +"Es como una vaina que chisporrotea de luces mágicas, que envuelve tu mano y " +"brazo, y con el que podés golpear y defenderte en combate cuerpo a cuerpo." #: lang/json/GENERIC_from_json.py msgid "vicious tentacle whip" msgid_plural "vicious tentacle whips" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "látigo tentáculo feroz" +msgstr[1] "látigos tentáculo feroces" #. ~ Description for vicious tentacle whip #: lang/json/GENERIC_from_json.py @@ -67717,17 +69260,20 @@ msgid "" "A long, writhing, tentacle covered in sharp bonelike blades and spikey " "protrusions." msgstr "" +"Es un tentáculo largo y retorcido, cubierto de cuchillas filosas que parecen" +" de hueso y protuberancias como púas." #: lang/json/GENERIC_from_json.py msgid "Wicked Bonespear" msgid_plural "Wicked Bonespears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Lanza Malvada de hueso" +msgstr[1] "Lanzas Malvadas de hueso" #. ~ Description for {'str': 'Wicked Bonespear'} #: lang/json/GENERIC_from_json.py msgid "This is a wicked spear/halberd hybrid entirely created of bone." msgstr "" +"Es un híbrido malvado entre lanza y alabarda, enteramente creado de hueso." #. ~ Description for {'str': 'Mjölnir'} #: lang/json/GENERIC_from_json.py @@ -67736,6 +69282,9 @@ msgid "" "mountains with a single blow. You feel the power of Asgard coursing through" " the hammer." msgstr "" +"Mjölnir, el legendario martillo de Thor. Dicen que es capaz de aplanar " +"montañas de un solo golpe. Sentís la energía de Asgard moviéndose por el " +"martillo." #: lang/json/GENERIC_from_json.py msgid "Gungnir" @@ -67750,12 +69299,15 @@ msgid "" "perfectly hitting any target regardless of the wielder's strength or skill." " If feels like Odin's protecting you." msgstr "" +"Gungnir, la lanza de Odín. Dicen que es la lanza perfecta, que golpeará " +"perfectamente a cualquier objetivo sin importar la fuerza o habilidad del " +"que la usa. Se siente como si Odín te estuviera protegindo.e" #: lang/json/GENERIC_from_json.py msgid "Gram" msgid_plural "Grams" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gram" +msgstr[1] "Grams" #. ~ Description for {'str': 'Gram'} #: lang/json/GENERIC_from_json.py @@ -67764,8 +69316,11 @@ msgid "" "legendary dragon, Fafnir. Once said to have cleaved Regin's anvil in half, " "the edge is impeccable." msgstr "" +"Gram, la espada de Sigurd. Se dice que es la espada que mató al legendario " +"dragón Fafnir, y que partió el yunque de Regin a la mitad. La hoja es " +"impecable." -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Laevateinn" msgid_plural "Laevateinns" msgstr[0] "Laevateinn" @@ -67778,12 +69333,15 @@ msgid "" "Hel by Loki. Imbued with a mysterious magic, the magic of the trickster god" " himself." msgstr "" +"Laevateinn, la vara de Loki. Dicen que ha sido arrancada de las puertas de " +"Hel por Loki. Imbuida con una magia misteriosa, la propia magia del dios " +"timador." #: lang/json/GENERIC_from_json.py msgid "orichalcum ingot" msgid_plural "orichalcum ingots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lingote de oricalco" +msgstr[1] "lingotes de oricalco" #. ~ Description for orichalcum ingot #: lang/json/GENERIC_from_json.py @@ -67791,18 +69349,20 @@ msgid "" "An ingot of orichalcum. About 3 cm by 7 cm by 12 cm in size, ready to be " "used for various blacksmithing tasks." msgstr "" +"Es un lingote de oricalco. De unos 3cm por 7cm por 12cm, listo para ser " +"usado para varias tareas de herrería." #: lang/json/GENERIC_from_json.py msgid "Spell Scroll" msgid_plural "Spell Scrolls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Hechizo" +msgstr[1] "Pergaminos de Hechizos" #: lang/json/GENERIC_from_json.py msgid "Scroll of Crystallize Mana" msgid_plural "Scrolls of Crystallize Mana" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Cristalizar Maná" +msgstr[1] "Pergaminos de Cristalizar Maná" #. ~ Description for {'str': 'Scroll of Crystallize Mana', 'str_pl': 'Scrolls #. of Crystallize Mana'} @@ -67810,12 +69370,13 @@ msgstr[1] "" msgid "" "A proper wizard is always prepared, crystallize your mana for the future!" msgstr "" +"Un hechicero serio siempre va preparado, ¡cristalizá tu maná para el futuro!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Dark Sight" msgid_plural "Scrolls of Dark Sight" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Vista Oscura" +msgstr[1] "Pergaminos de Vista Oscura" #. ~ Description for {'str': 'Scroll of Dark Sight', 'str_pl': 'Scrolls of #. Dark Sight'} @@ -67824,12 +69385,14 @@ msgid "" "The darkness holds no secrets for the arcane. Adjust your sight to see in " "perfect darkness!" msgstr "" +"La oscuridad no le oculta ningún secreto al arcano. ¡Ajustá tu vista para " +"poder ver perfectamente en la oscuridad!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Invisibility" msgid_plural "Scrolls of Invisibility" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Invisibilidad" +msgstr[1] "Pergaminos de Invisibilidad" #. ~ Description for {'str': 'Scroll of Invisibility', 'str_pl': 'Scrolls of #. Invisibility'} @@ -67838,12 +69401,14 @@ msgid "" "The light can not interact with you unless you want it to. Become " "invisible!" msgstr "" +"La luz no puede interactuar con vos salvo que así lo desees. ¡Volvete " +"invisible!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Obfuscated Body" msgid_plural "Scrolls of Obfuscated Body" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Cuerpo Confundido" +msgstr[1] "Pergaminos de Cuerpo Confundido" #. ~ Description for {'str': 'Scroll of Obfuscated Body', 'str_pl': 'Scrolls #. of Obfuscated Body'} @@ -67852,12 +69417,14 @@ msgid "" "A magical aura distorts light around your body, making it easier to dodge " "enemy attacks." msgstr "" +"Un aura mágica distorsiona la luz alrededor de tu cuerpo, haciendo que sea " +"más fácil esquivar los ataques del enemigo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Holographic Transposition" msgid_plural "Scrolls of Holographic Transposition" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Transposición Holográfica" +msgstr[1] "Pergaminos de Transposición Holográfica" #. ~ Description for {'str': 'Scroll of Holographic Transposition', 'str_pl': #. 'Scrolls of Holographic Transposition'} @@ -67869,12 +69436,15 @@ msgid "" "Allows you to swap places with a previously existing holographic image of " "yourself. If the universe itself can't tell you apart, who could?" msgstr "" +"Te permite cambiar lugares con una imagen holográfica previamente existente " +"de vos mismo. Si el universo mismo no puede saber cuál es el real, ¿quién " +"podría?" #: lang/json/GENERIC_from_json.py msgid "Scroll of Smite" msgid_plural "Scrolls of Smite" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Golpe" +msgstr[1] "Pergaminos de Golpe" #. ~ Description for {'str': 'Scroll of Smite', 'str_pl': 'Scrolls of Smite'} #. ~ Description for Smite @@ -67883,12 +69453,14 @@ msgid "" "Evil has become pervasive throughout the world. Let your power be the light" " that shines in the darkness!" msgstr "" +"El mal se ha desperdigado por todo el mundo. ¡Dejá que tu poder sea la luz " +"que brilla en la oscuridad!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Life Conversion" msgid_plural "Scrolls of Life Conversion" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Conversión Vital" +msgstr[1] "Pergaminos de Conversión Vital" #. ~ Description for {'str': 'Scroll of Life Conversion', 'str_pl': 'Scrolls #. of Life Conversion'} @@ -67898,12 +69470,14 @@ msgid "" "You channel your life force itself into your spiritual energy. You spend hp" " to regain mana." msgstr "" +"Canalizás tu energía vital hacia tu energía espiritual. Gastás puntos de " +"vida para regenerar maná." #: lang/json/GENERIC_from_json.py msgid "Scroll of Mind Over Pain" msgid_plural "Scrolls of Mind Over Pain" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de No Me Va a Doler" +msgstr[1] "Pergaminos de No Me Va a Doler" #. ~ Description for {'str': 'Scroll of Mind Over Pain', 'str_pl': 'Scrolls of #. Mind Over Pain'} @@ -67913,12 +69487,14 @@ msgid "" "With an intense ritual that resembles crossfit, you manage to put some of " "your pain at bay." msgstr "" +"Con un intenso ritual que recuerda al crossfit, lográs poner a raya un poco " +"de tu dolor." #: lang/json/GENERIC_from_json.py msgid "Scroll of Summon Zombie" msgid_plural "Scrolls of Summon Zombie" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Conjurar Zombi" +msgstr[1] "Pergaminos de Conjurar Zombi" #. ~ Description for {'str': 'Scroll of Summon Zombie', 'str_pl': 'Scrolls of #. Summon Zombie'} @@ -67928,12 +69504,15 @@ msgid "" "An ethereal-looking zombie rises from the depths of the earth to fight for " "you. You may be able to summon more with a higher level in this spell." msgstr "" +"Un zombi de apariencia etérea se levanta de las profundidades de la tierra " +"para luchar por vos. Podrías conjurar más zombis con un nivel más alto de " +"este hechizo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Summon Skeleton" msgid_plural "Scrolls of Summon Skeleton" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Conjurar Esqueleto" +msgstr[1] "Pergaminos de Conjurar Esqueleto" #. ~ Description for {'str': 'Scroll of Summon Skeleton', 'str_pl': 'Scrolls #. of Summon Skeleton'} @@ -67943,25 +69522,28 @@ msgid "" "A ghostly skeleton rises from the depths of the earth to fight for you. You" " may be able to summon more with a higher level in this spell." msgstr "" +"Un esqueleto fantasmal se levanta de las profundidades de la tierra para " +"luchar por vos. Podrías conjurar más esqueletos con un nivel más alto de " +"este hechizo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Summon Floating Disk" msgid_plural "Scrolls of Summon Floating Disk" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Conjurar Disco Flotante" +msgstr[1] "Pergaminos de Conjurar Disco Flotante" #. ~ Description for {'str': 'Scroll of Summon Floating Disk', 'str_pl': #. 'Scrolls of Summon Floating Disk'} #. ~ Description for Summon floating disk #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Summons a floating disk that is sworn to carry your burdens." -msgstr "" +msgstr "Conjura un disco flotante que ha jurado llevar tu carga." #: lang/json/GENERIC_from_json.py msgid "Scroll of Summon Decayed Pouncer" msgid_plural "Scrolls of Summon Decayed Pouncer" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Conjurar Saltador Podrido" +msgstr[1] "Pergaminos de Conjurar Saltador Podrido" #. ~ Description for {'str': 'Scroll of Summon Decayed Pouncer', 'str_pl': #. 'Scrolls of Summon Decayed Pouncer'} @@ -67971,38 +69553,41 @@ msgid "" "A decrepit looking large cat rises from the depths of the earth to fight for" " you. You may be able to summon more with a higher level in this spell." msgstr "" +"Un felino grande y decrépito se levanta de las profundidades de la tierra " +"para luchar por vos. Podrías conjurar más saltadores con un nivel más alto " +"de este hechizo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Cure Light Wounds" msgid_plural "Scrolls of Cure Light Wounds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Curar Heridas Menores" +msgstr[1] "Pergaminos de Curar Heridas Menores" #. ~ Description for {'str': 'Scroll of Cure Light Wounds', 'str_pl': 'Scrolls #. of Cure Light Wounds'} #. ~ Description for Cure Light Wounds #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Heals a little bit of damage on the target." -msgstr "" +msgstr "Cura una pequeña parte del daño en un objetivo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Pain Split" msgid_plural "Scrolls of Pain Split" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Dividir Dolor" +msgstr[1] "Pergaminos de Dividir Dolor" #. ~ Description for {'str': 'Scroll of Pain Split', 'str_pl': 'Scrolls of #. Pain Split'} #. ~ Description for Pain Split #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Evens out damage among your limbs." -msgstr "" +msgstr "Equilibra el daño entre todos tus miembros." #: lang/json/GENERIC_from_json.py msgid "Scroll of Vicious Tentacle" msgid_plural "Scrolls of Vicious Tentacle" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Tentáculo Feroz" +msgstr[1] "Pergaminos de Tentáculo Feroz" #. ~ Description for {'str': 'Scroll of Vicious Tentacle', 'str_pl': 'Scrolls #. of Vicious Tentacle'} @@ -68012,12 +69597,15 @@ msgid "" "This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" " acid from your body, it has a long reach attack and vicious damage." msgstr "" +"Este hechizo expulsa de tu cuerpo como un látigo a un tentáculo largo de " +"huesos filosos y goteando ácido. Tiene un ataque de largo alcance y un daño " +"feroz." #: lang/json/GENERIC_from_json.py msgid "Scroll of Grotesque Enhancement" msgid_plural "Scrolls of Grotesque Enhancement" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Mejora Grotesca" +msgstr[1] "Pergaminos de Mejora Grotesca" #. ~ Description for {'str': 'Scroll of Grotesque Enhancement', 'str_pl': #. 'Scrolls of Grotesque Enhancement'} @@ -68027,12 +69615,14 @@ msgid "" "A spell that warps your body in alien ways to increase your physical " "abilities and strength." msgstr "" +"Es un hechizo que modifica tu cuerpo en formas alienígenas para incrementar " +"tu fuerza y habilidades físicas." #: lang/json/GENERIC_from_json.py msgid "Scroll of Acidic Spray" msgid_plural "Scrolls of Acidic Spray" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Chorro Ácido" +msgstr[1] "Pergaminos de Chorro Ácido" #. ~ Description for {'str': 'Scroll of Acidic Spray', 'str_pl': 'Scrolls of #. Acidic Spray'} @@ -68042,12 +69632,15 @@ msgid "" "When cast, the mage opens his mouth and sprays acid in a wide cone to " "dissolve his foes into goo. Just imagine what he'll do with the goo." msgstr "" +"Cuando se usa, el mago abre la boca y expulsa un chorro de ácido para " +"disolver a sus enemigos y hacerlos una viscosidad. Imaginate lo que haría " +"contra una viscosidad." #: lang/json/GENERIC_from_json.py msgid "Scroll of Flesh Pouch" msgid_plural "Scrolls of Flesh Pouch" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Bolsa de Carne" +msgstr[1] "Pergaminos de Bolsa de Carne" #. ~ Description for {'str': 'Scroll of Flesh Pouch', 'str_pl': 'Scrolls of #. Flesh Pouch'} @@ -68057,12 +69650,14 @@ msgid "" "This spell grows a large pouch out of your skin on your back, allowing you " "to store your gear in it." msgstr "" +"Este hechizo hace crecer una gran bolsa desde tu piel y en tu espalda, lo " +"que te permite llevar tu equipo ahí." #: lang/json/GENERIC_from_json.py msgid "Scroll of Conjure Bonespear" msgid_plural "Scrolls of Conjure Bonespear" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Conjurar Lanza de Hueso" +msgstr[1] "Pergaminos de Conjurar Lanza de Hueso" #. ~ Description for {'str': 'Scroll of Conjure Bonespear', 'str_pl': 'Scrolls #. of Conjure Bonespear'} @@ -68072,12 +69667,14 @@ msgid "" "This spell creates a long shaft of bone with a wicked point and blades along" " its length." msgstr "" +"Este hechizo crea una vara larga de hueso con una punta malévola y cuchillas" +" por todo su costado." #: lang/json/GENERIC_from_json.py msgid "Scroll of Megablast" msgid_plural "Scrolls of Megablast" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Megaexplosión" +msgstr[1] "Pergaminos de Megaexplosión" #. ~ Description for {'str': 'Scroll of Megablast', 'str_pl': 'Scrolls of #. Megablast'} @@ -68087,25 +69684,27 @@ msgid "" "You always wanted to fire energy beams like in the animes you watched as a " "kid. Now you can!" msgstr "" +"Siempre quisiste disparar rayos de energía como en los animés que veías de " +"pibe. ¡Ahora podés!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Magical Light" msgid_plural "Scrolls of Magical Light" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Luz Mágica" +msgstr[1] "Pergaminos de Luz Mágica" #. ~ Description for {'str': 'Scroll of Magical Light', 'str_pl': 'Scrolls of #. Magical Light'} #. ~ Description for Magical Light #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Creates a magical light." -msgstr "" +msgstr "Crea una luz mágica." #: lang/json/GENERIC_from_json.py msgid "Scroll of Blinding Flash" msgid_plural "Scrolls of Blinding Flash" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Destello Cegador" +msgstr[1] "Pergaminos de Destello Cegador" #. ~ Description for {'str': 'Scroll of Blinding Flash', 'str_pl': 'Scrolls of #. Blinding Flash'} @@ -68115,12 +69714,14 @@ msgid "" "Blind enemies for a short time with a sudden, dazzling light. Higher levels" " deal slightly higher damage." msgstr "" +"Ciega a los enemigos por un corto tiempo con una luz súbita que encandila. " +"Los niveles más altos del hechizo causan un poco más de daño." #: lang/json/GENERIC_from_json.py msgid "Scroll of Ethereal Grasp" msgid_plural "Scrolls of Ethereal Grasp" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Agarre Etéreo" +msgstr[1] "Pergaminos de Agarre Etéreo" #. ~ Description for {'str': 'Scroll of Ethereal Grasp', 'str_pl': 'Scrolls of #. Ethereal Grasp'} @@ -68130,12 +69731,15 @@ msgid "" "A mass of spectral hands emerge from the ground, slowing everything in " "range. Higher levels allow a bigger AoE, and longer effect." msgstr "" +"Unas manos espectrales emergen del suelo, haciendo todo más lento a su " +"alcance. Los niveles más altos del hechizo tienen un área más grande y un " +"efecto más duradero." #: lang/json/GENERIC_from_json.py msgid "Scroll of Aura of Protection" msgid_plural "Scrolls of Aura of Protection" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Aura de Protección" +msgstr[1] "Pergaminos de Aura de Protección" #. ~ Description for {'str': 'Scroll of Aura of Protection', 'str_pl': #. 'Scrolls of Aura of Protection'} @@ -68145,12 +69749,13 @@ msgid "" "Encases your whole body in a magical aura that protects you from the " "environment." msgstr "" +"Envuelve todo tu cuerpo en un aura mágica que te protege del ambiente." #: lang/json/GENERIC_from_json.py msgid "Scroll of Vegetative Grasp" msgid_plural "Scrolls of Vegetative Grasp" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Agarre Vegetativo" +msgstr[1] "Pergaminos de Agarre Vegetativo" #. ~ Description for {'str': 'Scroll of Vegetative Grasp', 'str_pl': 'Scrolls #. of Vegetative Grasp'} @@ -68160,12 +69765,14 @@ msgid "" "This spell causes roots and vines to burst forth from the ground and grab " "your foes, slowing them and doing a small amount of damage as they dig in." msgstr "" +"Este hechizo crea raíces y ramas que salen del suelo y agarran a tus " +"enemigos, haciéndolos más lentos y causan una pequeña cantidad de daño." #: lang/json/GENERIC_from_json.py msgid "Scroll of Root Strike" msgid_plural "Scrolls of Root Strike" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Golpe de Raíz" +msgstr[1] "Pergaminos de Golpe de Raíz" #. ~ Description for {'str': 'Scroll of Root Strike', 'str_pl': 'Scrolls of #. Root Strike'} @@ -68175,12 +69782,14 @@ msgid "" "This spell causes roots to spear out the ground and stab into your foes in " "an arc, impaling them." msgstr "" +"Este hechizo hace salir raíces del suelo para apuñalar a tus enemigos, " +"empalándolos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Wooden Shaft" msgid_plural "Scrolls of Wooden Shaft" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Asta de Madera" +msgstr[1] "Pergaminos de Asta de Madera" #. ~ Description for {'str': 'Scroll of Wooden Shaft', 'str_pl': 'Scrolls of #. Wooden Shaft'} @@ -68190,12 +69799,14 @@ msgid "" "This spell creates a projectile of hardwood that shoots forth from the " "caster's hand at high speed to stab into an enemy." msgstr "" +"Este hechizo crea un proyectil de madera que sale disparado desde la mano a " +"gran velocidad para apuñalar al enemigo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Nature's Bow" msgid_plural "Scrolls of Nature's Bow" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Arco Natural" +msgstr[1] "Pergaminos de Arco Natural" #. ~ Description for {'str': "Scroll of Nature's Bow", 'str_pl': "Scrolls of #. Nature's Bow"} @@ -68205,12 +69816,14 @@ msgid "" "This spell conjures a magical wooden recurve bow that fires endless arrows " "for as long as it lasts." msgstr "" +"Este hechizo conjura un arco mágico de madera que dispara flechas infinitas " +"por todo el tiempo que dure el conjuro." #: lang/json/GENERIC_from_json.py msgid "Scroll of Nature's Trance" msgid_plural "Scrolls of Nature's Trance" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Trance Natural" +msgstr[1] "Pergaminos de Trance Natural" #. ~ Description for {'str': "Scroll of Nature's Trance", 'str_pl': "Scrolls #. of Nature's Trance"} @@ -68220,25 +69833,27 @@ msgid "" "Your connection to living things allows you to go into a magical trance. " "This allows you to recover fatige quickly in exchange for mana." msgstr "" +"Tu conexión con las cosas vivas te permite entrar en un trance mágico. Este " +"te permite recuperar la resistencia más rápidamente a cambio de maná." #: lang/json/GENERIC_from_json.py msgid "Scroll of Bag of Cats" msgid_plural "Scrolls of Bag of Cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bolsa de Gatos" +msgstr[1] "Pergaminos de Bolsa de Gatos" #. ~ Description for {'str': 'Scroll of Bag of Cats', 'str_pl': 'Scrolls of #. Bag of Cats'} #. ~ Description for {'str': 'Bag of Cats'} #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Are you the crazy cat lady?" -msgstr "" +msgstr "¿Vos sos la vieja de los gatos?" #: lang/json/GENERIC_from_json.py msgid "Scroll of Stonefist" msgid_plural "Scrolls of Stonefist" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Puño Pétreo" +msgstr[1] "Pergaminos de Puño Pétreo" #. ~ Description for {'str': 'Scroll of Stonefist', 'str_pl': 'Scrolls of #. Stonefist'} @@ -68248,12 +69863,14 @@ msgid "" "Encases your arms and hands in a sheath of magical stone, you can punch and " "defend yourself with it in melee combat." msgstr "" +"Es como una vaina de piedra mágica que envuelve tus manos y brazos, y con " +"ella podés golpear y defenderte en combate cuerpo a cuerpo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Seismic Stomp" msgid_plural "Scrolls of Seismic Stomp" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Pisotón Sísmico" +msgstr[1] "Pergaminos de Pisotón Sísmico" #. ~ Description for {'str': 'Scroll of Seismic Stomp', 'str_pl': 'Scrolls of #. Seismic Stomp'} @@ -68263,12 +69880,14 @@ msgid "" "Focusing mana into your leg, you stomp your foot and send out a shockwave, " "knocking enemies around you onto the ground." msgstr "" +"Focalizando maná en tu pierna, con una pisada enviás un movimiento sísmico, " +"haciendo caer al suelo a tus enemigos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Stone's Endurance" msgid_plural "Scrolls of Stone's Endurance" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Resistencia Pétrea" +msgstr[1] "Pergaminos de Resistencia Pétrea" #. ~ Description for {'str': "Scroll of Stone's Endurance", 'str_pl': "Scrolls #. of Stone's Endurance"} @@ -68278,12 +69897,14 @@ msgid "" "You focus on the stones beneath you and draw from their agelessness. Your " "mana is converted to stamina." msgstr "" +"Te enfocás en las piedras debajo tuyo y extraés su energía eterna. Tu maná " +"se convierte en resistencia." #: lang/json/GENERIC_from_json.py msgid "Scroll of Shardspray" msgid_plural "Scrolls of Shardspray" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Esquirlas" +msgstr[1] "Pergaminos de Esquirlas" #. ~ Description for {'str': 'Scroll of Shardspray', 'str_pl': 'Scrolls of #. Shardspray'} @@ -68293,12 +69914,14 @@ msgid "" "This spell projects a wide spray of sharp metal shards, cutting into your " "foes and friends alike." msgstr "" +"Este hechizo proyecta un chorro de pedazos filosos de metal, cortando a tus " +"enemigos y amigos por igual." #: lang/json/GENERIC_from_json.py msgid "Scroll of Piercing Bolt" msgid_plural "Scrolls of Piercing Bolt" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Rayo Penetrante" +msgstr[1] "Pergaminos de Rayo Penetrante" #. ~ Description for {'str': 'Scroll of Piercing Bolt', 'str_pl': 'Scrolls of #. Piercing Bolt'} @@ -68308,12 +69931,14 @@ msgid "" "This spell projects a piercing rod of conjured iron at those that dare " "oppose you." msgstr "" +"Este hechizo proyecta una vara penetrante de hierro conjurado hacia aquellos" +" que se atreven a enfrentarte." #: lang/json/GENERIC_from_json.py msgid "Scroll of Shardstorm" msgid_plural "Scrolls of Shardstorm" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Tormenta de Esquirlas" +msgstr[1] "Pergaminos de Tormenta de Esquirlas" #. ~ Description for {'str': 'Scroll of Shardstorm', 'str_pl': 'Scrolls of #. Shardstorm'} @@ -68322,38 +69947,40 @@ msgstr[1] "" msgid "" "Creates an omnidirectional spray of razor sharp metal shards all around you." msgstr "" +"Crea un chorro hacia todos lados de pedazos filosos de metal, todo alrededor" +" tuyo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Rockbolt" msgid_plural "Scrolls of Rockbolt" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Rayo Pétreo" +msgstr[1] "Pergaminos de Rayo Pétreo" #. ~ Description for {'str': 'Scroll of Rockbolt', 'str_pl': 'Scrolls of #. Rockbolt'} #. ~ Description for Rockbolt #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Fires a conjured stone projectile at high velocity." -msgstr "" +msgstr "Dispara un proyectil conjurado de piedra a gran velocidad." #: lang/json/GENERIC_from_json.py msgid "Scroll of Point Flare" msgid_plural "Scrolls of Point Flare" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Fulgor" +msgstr[1] "Pergaminos de Fulgor" #. ~ Description for {'str': 'Scroll of Point Flare', 'str_pl': 'Scrolls of #. Point Flare'} #. ~ Description for Point Flare #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Causes an intense heat at the location, damaging the target." -msgstr "" +msgstr "Causa un calor intenso en un lugar, dañando el objetivo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Finger Firelighter" msgid_plural "Scrolls of Finger Firelighter" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Dedo Encendedor" +msgstr[1] "Pergaminos de Dedo Encendedor" #. ~ Description for {'str': 'Scroll of Finger Firelighter', 'str_pl': #. 'Scrolls of Finger Firelighter'} @@ -68364,12 +69991,15 @@ msgid "" "things on fire. It seems to need you to have some intent to light things on" " fire, because you are able to put it in your pocket with no issue." msgstr "" +"Conjura una pequeña llama que no te quema, pero puede usarse para prender " +"fuego cosas. Parece que necesita que tengas alguna intención de prender " +"fuego algo, porque podés ponerla en tu bolsillo sin problemas." #: lang/json/GENERIC_from_json.py msgid "Scroll of Ice Spike" msgid_plural "Scrolls of Ice Spike" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Púa Helada" +msgstr[1] "Pergaminos de Púa Helada" #. ~ Description for {'str': 'Scroll of Ice Spike', 'str_pl': 'Scrolls of Ice #. Spike'} @@ -68379,12 +70009,14 @@ msgid "" "Causes jagged icicles to form in the air above the target, falling and " "damaging it." msgstr "" +"Causa que se formen témpanos puntiagudos en el aire sobre el objetivo, " +"cayendo sobre él." #: lang/json/GENERIC_from_json.py msgid "Scroll of Fireball" msgid_plural "Scrolls of Fireball" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bola de Fuego" +msgstr[1] "Pergaminos de Bola de Fuego" #. ~ Description for {'str': 'Scroll of Fireball', 'str_pl': 'Scrolls of #. Fireball'} @@ -68394,25 +70026,27 @@ msgid "" "You hurl a pea-sized glowing orb that when reaches its target or an obstacle" " produces a pressure-less blast of searing heat." msgstr "" +"Arrojás una esfera brillante del tamaño de un poroto que cuando llega al " +"objetivo o un obstáculo, produce una explosión de calor abrasador." #: lang/json/GENERIC_from_json.py msgid "Scroll of Cone of Cold" msgid_plural "Scrolls of Cone of Cold" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Cono de Frío" +msgstr[1] "Pergaminos de Cono de Frío" #. ~ Description for {'str': 'Scroll of Cone of Cold', 'str_pl': 'Scrolls of #. Cone of Cold'} #. ~ Description for Cone of Cold #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "You blast a cone of frigid air toward the target." -msgstr "" +msgstr "Disparás un cono de aire gélido hacia el objetivo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Burning Hands" msgid_plural "Scrolls of Burning Hands" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Manos Ardientes" +msgstr[1] "Pergaminos de Manos Ardientes" #. ~ Description for {'str': 'Scroll of Burning Hands', 'str_pl': 'Scrolls of #. Burning Hands'} @@ -68422,12 +70056,14 @@ msgid "" "You're pretty sure you saw this in a game somewhere. You fire a short-range" " cone of fire." msgstr "" +"Estás bastante seguro de que viste esto en algún juego antes. Disparás un " +"cono de fuego de corto alcance." #: lang/json/GENERIC_from_json.py msgid "Scroll of Frost Spray" msgid_plural "Scrolls of Frost Spray" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Chorro Gélido" +msgstr[1] "Pergaminos de Chorro Gélido" #. ~ Description for {'str': 'Scroll of Frost Spray', 'str_pl': 'Scrolls of #. Frost Spray'} @@ -68437,25 +70073,27 @@ msgid "" "You're pretty sure you saw this in a game somewhere. You fire a short-range" " cone of ice and cold." msgstr "" +"Estás bastante seguro de que viste esto en algún juego antes. Disparás un " +"cono de hielo y frío de corto alcance." #: lang/json/GENERIC_from_json.py msgid "Scroll of Chilling Touch" msgid_plural "Scrolls of Chilling Touch" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Toque Gélido" +msgstr[1] "Pergaminos de Toque Gélido" #. ~ Description for {'str': 'Scroll of Chilling Touch', 'str_pl': 'Scrolls of #. Chilling Touch'} #. ~ Description for Chilling Touch #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Freezes the touched target with intense cold." -msgstr "" +msgstr "Congela el objetivo tocado con un frío intenso." #: lang/json/GENERIC_from_json.py msgid "Scroll of Glide on Ice" msgid_plural "Scrolls of Glide on Ice" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Deslizamiento en Hielo" +msgstr[1] "Pergaminos de Deslizamiento en Hielo" #. ~ Description for {'str': 'Scroll of Glide on Ice', 'str_pl': 'Scrolls of #. Glide on Ice'} @@ -68465,12 +70103,14 @@ msgid "" "Encases your feet in a magical coating of ice, allowing you to glide along " "smooth surfaces faster." msgstr "" +"Envuelve tus pies con una cobertura mágica de hielo, lo que te permite " +"deslizarte más rápido sobre superficies suaves ." #: lang/json/GENERIC_from_json.py msgid "Scroll of Hoary Blast" msgid_plural "Scrolls of Hoary Blast" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bomba de Escarcha" +msgstr[1] "Pergaminos de Bomba de Escarcha" #. ~ Description for {'str': 'Scroll of Hoary Blast', 'str_pl': 'Scrolls of #. Hoary Blast'} @@ -68480,12 +70120,14 @@ msgid "" "You project a glowing white crystal of ice and it explodes on impact into a " "blossom of shattering cold." msgstr "" +"Proyectás un cristal blanco brillante de hielo y explota al impactar " +"causando una expansión de frío demoledor." #: lang/json/GENERIC_from_json.py msgid "Scroll of Ice Shield" msgid_plural "Scrolls of Ice Shield" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Escudo de Hielo" +msgstr[1] "Pergaminos de Escudo de Hielo" #. ~ Description for {'str': 'Scroll of Ice Shield', 'str_pl': 'Scrolls of Ice #. Shield'} @@ -68495,51 +70137,53 @@ msgid "" "Creates a magical shield of ice on your arm, you can defend yourself with it" " in melee combat and use it to bash." msgstr "" +"Crea un escudo mágico de hielo en tu brazo con el que te podés defender en " +"combate cuerpo a cuerpo, y también usar para golpear al rival." #: lang/json/GENERIC_from_json.py msgid "Scroll of Frost Armor" msgid_plural "Scrolls of Frost Armor" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Armadura Gélida" +msgstr[1] "Pergaminos de Armadura Gélida" #. ~ Description for {'str': 'Scroll of Frost Armor', 'str_pl': 'Scrolls of #. Frost Armor'} #. ~ Description for Frost Armor #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Covers you in a thin layer of magical ice to protect you from harm." -msgstr "" +msgstr "Te cubre con una fina capa de hielo mágico que te protege del daño." #: lang/json/GENERIC_from_json.py msgid "Scroll of Magic Missile" msgid_plural "Scrolls of Magic Missile" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Misil Mágico" +msgstr[1] "Pergaminos de Misil Mágico" #. ~ Description for {'str': 'Scroll of Magic Missile', 'str_pl': 'Scrolls of #. Magic Missile'} #. ~ Description for Magic Missile #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "I cast Magic Missile at the darkness!" -msgstr "" +msgstr "¡Conjuro Misil Mágico hacia la oscuridad!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Phase Door" msgid_plural "Scrolls of Phase Door" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Puerta Fásica" +msgstr[1] "Pergaminos de Puerta Fásica" #. ~ Description for {'str': 'Scroll of Phase Door', 'str_pl': 'Scrolls of #. Phase Door'} #. ~ Description for Phase Door #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Teleports you in a random direction a short distance." -msgstr "" +msgstr "Te teletransporta hacia un lugar aleatorio pero cercano." #: lang/json/GENERIC_from_json.py msgid "Scroll of Gravity Well" msgid_plural "Scrolls of Gravity Well" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Pozo de Gravedad" +msgstr[1] "Pergaminos de Pozo de Gravedad" #. ~ Description for {'str': 'Scroll of Gravity Well', 'str_pl': 'Scrolls of #. Gravity Well'} @@ -68549,12 +70193,14 @@ msgid "" "Summons a well of gravity with the epicenter at the location. Deals bashing" " damage to all creatures in the affected area." msgstr "" +"Conjura un pozo de gravedad con el epicentro en el lugar que elijas. Causa " +"daño golpeante a todas las criaturas afectadas en el área." #: lang/json/GENERIC_from_json.py msgid "Scroll of Mana Blast" msgid_plural "Scrolls of Mana Blast" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bomba de Maná" +msgstr[1] "Pergaminos de Bomba de Maná" #. ~ Description for {'str': 'Scroll of Mana Blast', 'str_pl': 'Scrolls of #. Mana Blast'} @@ -68562,25 +70208,26 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "A blast of concentrated magical power that obliterates a large area." msgstr "" +"Es un explosión de energía mágica concentrada que arrasa un área grande." #: lang/json/GENERIC_from_json.py msgid "Scroll of Mana Bolt" msgid_plural "Scrolls of Mana Bolt" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Flecha de Maná" +msgstr[1] "Pergaminos de Flecha de Maná" #. ~ Description for {'str': 'Scroll of Mana Bolt', 'str_pl': 'Scrolls of Mana #. Bolt'} #. ~ Description for Mana Bolt #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "A bolt of magical power that only damages your foes." -msgstr "" +msgstr "Es un rayo de energía mágica que solamente causa daño a tus enemigos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Haste" msgid_plural "Scrolls of Haste" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Apuro" +msgstr[1] "Pergaminos de Apuro" #. ~ Description for {'str': 'Scroll of Haste', 'str_pl': 'Scrolls of Haste'} #. ~ Description for Haste @@ -68589,12 +70236,14 @@ msgid "" "This spell gives you an enormous boost of speed lasting a short period of " "time." msgstr "" +"Este hechizo te aumenta enormemente la velocidad, pero dura un corto período" +" de tiempo." #: lang/json/GENERIC_from_json.py msgid "Scroll of Mana Beam" msgid_plural "Scrolls of Mana Beam" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Rayo de Maná" +msgstr[1] "Pergaminos de Rayo de Maná" #. ~ Description for {'str': 'Scroll of Mana Beam', 'str_pl': 'Scrolls of Mana #. Beam'} @@ -68602,12 +70251,14 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "A beam of focused magical power that damages any foes in its path." msgstr "" +"Es un rayo de energía mágica focalizada que causa daño a los enemigos en su " +"trayectoria." #: lang/json/GENERIC_from_json.py msgid "Scroll of Escape" msgid_plural "Scrolls of Escape" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Escape" +msgstr[1] "Pergaminos de Escape" #. ~ Description for {'str': 'Scroll of Escape', 'str_pl': 'Scrolls of #. Escape'} @@ -68617,76 +70268,79 @@ msgid "" "Teleports you in a random direction a medium distance, to help escape your " "foes in dangerous situations." msgstr "" +"Te teletransporta hacia un lugar aleatorio a una distancia media, para " +"ayudarte a escapar de tus enemigos en situaciones peligrosas." #: lang/json/GENERIC_from_json.py msgid "Scroll of Cat's Grace" msgid_plural "Scrolls of Cat's Grace" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Gracia Gatuna" +msgstr[1] "Pergaminos de Gracia Gatuna" #. ~ Description for {'str': "Scroll of Cat's Grace", 'str_pl': "Scrolls of #. Cat's Grace"} #. ~ Description for Cat's Grace #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "You become more graceful, agile, and coordinated." -msgstr "" +msgstr "Te volvés más habilidoso, ágil y coordinado." #: lang/json/GENERIC_from_json.py msgid "Scroll of Eagle's Sight" msgid_plural "Scrolls of Eagle's Sight" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Vista de Águila" +msgstr[1] "Pergaminos de Vista de Águila" #. ~ Description for {'str': "Scroll of Eagle's Sight", 'str_pl': "Scrolls of #. Eagle's Sight"} #. ~ Description for Eagle's Sight #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "You gain the perception of an eagle." -msgstr "" +msgstr "Recibís la percepción de un águila." #: lang/json/GENERIC_from_json.py msgid "Scroll of Ogre's Strength" msgid_plural "Scrolls of Ogre's Strength" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Fuerza de Ogro" +msgstr[1] "Pergaminos de Fuerza de Ogro" #. ~ Description for {'str': "Scroll of Ogre's Strength", 'str_pl': "Scrolls #. of Ogre's Strength"} #. ~ Description for Ogre's Strength #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "You gain the strength of an ogre." -msgstr "" +msgstr "Recibís la fuerza de un ogro." #: lang/json/GENERIC_from_json.py msgid "Scroll of Fox's Cunning" msgid_plural "Scrolls of Fox's Cunning" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Astucia de Zorro" +msgstr[1] "Pergaminos de Astucia de Zorro" #. ~ Description for {'str': "Scroll of Fox's Cunning", 'str_pl': "Scrolls of #. Fox's Cunning"} #. ~ Description for Fox's Cunning #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "You become wily like a fox." -msgstr "" +msgstr "Te volvés astuto como un zorro." #: lang/json/GENERIC_from_json.py msgid "Scroll of Jolt" msgid_plural "Scrolls of Jolt" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Descarga" +msgstr[1] "Pergaminos de Descarga" #. ~ Description for {'str': 'Scroll of Jolt', 'str_pl': 'Scrolls of Jolt'} #. ~ Description for Jolt #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "A short-ranged fan of electricity shoots from your fingers." msgstr "" +"Es un cono de electricidad de corto alcance que sale disparado de tus dedos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Lightning Bolt" msgid_plural "Scrolls of Lightning Bolt" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Rayo Eléctrico" +msgstr[1] "Pergaminos de Rayo Eléctrico" #. ~ Description for {'str': 'Scroll of Lightning Bolt', 'str_pl': 'Scrolls of #. Lightning Bolt'} @@ -68698,12 +70352,16 @@ msgid "" "is more directed than most lightning, and travels in a line through most " "non-solid targets." msgstr "" +"El hechizo preferido de muchos Tormentaformantes, este icónico hechizo hace " +"lo que esperás: disparás rayos de tus dedos. Sin embargo, este rayo es más " +"dirigido que la mayoría de los rayos, y viaja en línea a través de la " +"mayoría de los objetivos no sólidos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Windstrike" msgid_plural "Scrolls of Windstrike" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Golpe de Viento" +msgstr[1] "Pergaminos de Golpe de Viento" #. ~ Description for {'str': 'Scroll of Windstrike', 'str_pl': 'Scrolls of #. Windstrike'} @@ -68713,12 +70371,14 @@ msgid "" "A powerful blast of wind slams into anything in front of your outstretched " "hand." msgstr "" +"Es una potente explosión de viento que golpea cualquier cosa delante de tu " +"mano estirada." #: lang/json/GENERIC_from_json.py msgid "Scroll of Windrunning" msgid_plural "Scrolls of Windrunning" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Pies de Viento" +msgstr[1] "Pergaminos de Pies de Viento" #. ~ Description for {'str': 'Scroll of Windrunning', 'str_pl': 'Scrolls of #. Windrunning'} @@ -68728,12 +70388,14 @@ msgid "" "A magical wind pushes you forward as you move, easing your movements and " "increasing speed." msgstr "" +"Un viento mágico te empuja hacia adelante mientras te movés, facilitando tus" +" movimientos y aumentando tu velocidad." #: lang/json/GENERIC_from_json.py msgid "Scroll of Call Stormhammer" msgid_plural "Scrolls of Call Stormhammer" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Convocar Stormhammer" +msgstr[1] "Pergaminos de Convocar Stormhammer" #. ~ Description for {'str': 'Scroll of Call Stormhammer', 'str_pl': 'Scrolls #. of Call Stormhammer'} @@ -68743,37 +70405,40 @@ msgid "" "Creates a crackling magical warhammer full of lightning to smite your foes " "with, and of course, smash things to bits!" msgstr "" +"Crea un martillo de guerra que chisporrotea con luces mágicas, para " +"aniquilar tus enemigos, y por supuesto, ¡destrozar cosas!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Bless" msgid_plural "Scrolls of Bless" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bendición" +msgstr[1] "Pergaminos de Bendición" #. ~ Description for {'str': 'Scroll of Bless', 'str_pl': 'Scrolls of Bless'} #. ~ Description for {'str': 'Bless'} #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "A spell of blessing that gives you energy and boosts your abilities." msgstr "" +"Es un hechizo de bendición que te otorga energía y mejora tus habilidades." #: lang/json/GENERIC_from_json.py msgid "Scroll of Holy Blade" msgid_plural "Scrolls of Holy Blade" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Cuchilla Santa" +msgstr[1] "Pergaminos de Cuchilla Santa" #. ~ Description for {'str': 'Scroll of Holy Blade', 'str_pl': 'Scrolls of #. Holy Blade'} #. ~ Description for Holy Blade #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "This blade of light will cut through any evil it makes contact with!" -msgstr "" +msgstr "¡Esta cuchilla de luz cortará cualquier mal con el que haga contacto!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Spiritual Armor" msgid_plural "Scrolls of Spiritual Armor" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Armadura Espiritual" +msgstr[1] "Pergaminos de Armadura Espiritual" #. ~ Description for {'str': 'Scroll of Spiritual Armor', 'str_pl': 'Scrolls #. of Spiritual Armor'} @@ -68782,24 +70447,25 @@ msgstr[1] "" msgid "" "Evil will not make it through your defenses if your faith is strong enough!" msgstr "" +"¡El mal no podrá pasar tus defensas si tu fe es lo suficientemente fuerte!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Lamp" msgid_plural "Scrolls of Lamp" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Lámpara" +msgstr[1] "Pergaminos de Lámpara" #. ~ Description for {'str': 'Scroll of Lamp', 'str_pl': 'Scrolls of Lamp'} #. ~ Description for Lamp #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Creates a magical lamp." -msgstr "" +msgstr "Crea una lámpara mágica." #: lang/json/GENERIC_from_json.py msgid "Scroll of Manatricity" msgid_plural "Scrolls of Manatricity" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Manatricidad" +msgstr[1] "Pergaminos de Manatricidad" #. ~ Description for {'str': 'Scroll of Manatricity', 'str_pl': 'Scrolls of #. Manatricity'} @@ -68809,12 +70475,14 @@ msgid "" "You have found a way to convert your spiritual energy into power you can use" " for your bionics." msgstr "" +"Encontraste la manera de convertir tu energía espiritual en energía que " +"podés usar para alimentar tus biónicos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Taze" msgid_plural "Scrolls of Taze" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Electrochoque" +msgstr[1] "Pergaminos de Electrochoque" #. ~ Description for {'str': 'Scroll of Taze', 'str_pl': 'Scrolls of Taze'} #. ~ Description for Taze @@ -68823,12 +70491,14 @@ msgid "" "This spell creates a very short range bolt of electricity to shock your " "foes." msgstr "" +"Este hechizo crea una flecha de electricidad de muy corto alcance para " +"electrocutar a tus enemigos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Lesser Quantum Tunnel" msgid_plural "Scrolls of Lesser Quantum Tunnel" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Túnel Cuántico Menor" +msgstr[1] "Pergaminos de Túnel Cuántico Menor" #. ~ Description for {'str': 'Scroll of Lesser Quantum Tunnel', 'str_pl': #. 'Scrolls of Lesser Quantum Tunnel'} @@ -68840,12 +70510,16 @@ msgid "" "whole uncertainty thing as to where you come out. It leaves you a little " "dazed on the other side as you reorient yourself." msgstr "" +"Este hechizo manipula el coso cuántico para transportarte a una corta " +"distancia en el espacio, y también la materia. Lamentablemente, está la " +"incertidumbre de a dónde irás a parar. Te deja un poco mareado del otro lado" +" hasta que te puedas reorientar." #: lang/json/GENERIC_from_json.py msgid "Scroll of Synaptic Stimulation" msgid_plural "Scrolls of Synaptic Stimulation" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Estimulación Sináptica" +msgstr[1] "Pergaminos de Estimulación Sináptica" #. ~ Description for {'str': 'Scroll of Synaptic Stimulation', 'str_pl': #. 'Scrolls of Synaptic Stimulation'} @@ -68857,12 +70531,16 @@ msgid "" "enhancing your reflexes, speed, and raw intellectual power. Use " "responsibly!" msgstr "" +"Este hechizo estimula la sinapsis de tu cerebro para acelerar la velocidad " +"de proceso normal, lo que te brinda una mejora en tu capacidad mental, " +"incluyendo tus reflejos, velocidad y puro poder intelectual. ¡Usar con " +"responsabilidad!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Laze" msgid_plural "Scrolls of Laze" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Laze" +msgstr[1] "Pergaminos de Laze" #. ~ Description for {'str': 'Scroll of Laze', 'str_pl': 'Scrolls of Laze'} #. ~ Description for Laze @@ -68871,12 +70549,14 @@ msgid "" "You concentrate and release a focused beam of photons at a target, also " "known as a laser." msgstr "" +"Primero concentrás y luego expulsás un rayo de fotones focalizados hacia un " +"objetivo. También se lo conoce como láser." #: lang/json/GENERIC_from_json.py msgid "Scroll of Animated Blade" msgid_plural "Scrolls of Animated Blade" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Cuchilla Animada" +msgstr[1] "Pergaminos de Cuchilla Animada" #. ~ Description for {'str': 'Scroll of Animated Blade', 'str_pl': 'Scrolls of #. Animated Blade'} @@ -68886,12 +70566,14 @@ msgid "" "This spell conjures flying animated blades that will cut your enemies down " "to size. Into small pieces that is." msgstr "" +"Este hechizo conjura unas cuchillas animadas voladoras para cortar a tus " +"enemigos. En pedacitos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Mirror Image" msgid_plural "Scrolls of Mirror Image" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Reflejo Exacto" +msgstr[1] "Pergaminos de Reflejo Exacto" #. ~ Description for {'str': 'Scroll of Mirror Image', 'str_pl': 'Scrolls of #. Mirror Image'} @@ -68901,12 +70583,14 @@ msgid "" "This spell manipulates light into barely tangible duplicates of a living " "being, a magical hologram in short." msgstr "" +"Este hechizo manipula la luz para generar réplicas levemente tangibles de " +"seres vivos. Un holograma mágico, para hacerla corta." #: lang/json/GENERIC_from_json.py msgid "Scroll of Lightning Blast" msgid_plural "Scrolls of Lightning Blast" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bomba Eléctrica" +msgstr[1] "Pergaminos de Bomba Eléctrica" #. ~ Description for {'str': 'Scroll of Lightning Blast', 'str_pl': 'Scrolls #. of Lightning Blast'} @@ -68917,12 +70601,15 @@ msgid "" "electricity diffuses quickly, so it doesn't do much damage, but you're able " "to fire off several quick ones in a row." msgstr "" +"Disparás una pequeña esfera concentrada de electricidad hacia el objetivo. " +"La electricidad se esparce rápidamente así que no causa demasiado daño, pero" +" sos capaz de disparar varias esferas seguidas." #: lang/json/GENERIC_from_json.py msgid "Scroll of Necrotic Gaze" msgid_plural "Scrolls of Necrotic Gaze" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Mirada Necrótica" +msgstr[1] "Pergaminos de Mirada Necrótica" #. ~ Description for {'str': 'Scroll of Necrotic Gaze', 'str_pl': 'Scrolls of #. Necrotic Gaze'} @@ -68932,12 +70619,14 @@ msgid "" "You use the power of your own blood to imbue necrotic energy into your gaze," " damaging the target you look at." msgstr "" +"Utilizás la energía de tu propia sangre para imbuir energía necrótica en tu " +"mirada, dañando al enemigo que estés mirando." #: lang/json/GENERIC_from_json.py msgid "Scroll of Purification Seed" msgid_plural "Scrolls of Purification Seed" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Semilla de Purificación" +msgstr[1] "Pergaminos de Semilla de Purificación" #. ~ Description for {'str': 'Scroll of Purification Seed', 'str_pl': 'Scrolls #. of Purification Seed'} @@ -68946,12 +70635,14 @@ msgid "" "You summon a gift of the earth which will purify water. Greater levels " "yield greater numbers of seeds." msgstr "" +"Conjurás un regalo de la tierra que podés usar para purificar agua. Los " +"niveles mayores pueden darte más cantidad de semillas." #: lang/json/GENERIC_from_json.py msgid "Scroll of X-ray Vision" msgid_plural "Scrolls of X-ray Vision" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Visión de Rayos-X" +msgstr[1] "Pergaminos de Visión de Rayos-X" #. ~ Description for {'str': 'Scroll of X-ray Vision', 'str_pl': 'Scrolls of #. X-ray Vision'} @@ -68961,39 +70652,43 @@ msgid "" "You fire a cone of X-rays that magically allow you to see that area for a " "short time." msgstr "" +"Disparás un cono de rayos-X que te permiten ver mágicamente el área por un " +"corto período de tiempo." #: lang/json/GENERIC_from_json.py -msgid "Scroll of Overcharge" -msgid_plural "Scrolls of Overcharge" -msgstr[0] "" -msgstr[1] "" +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" +msgstr[0] "Pergamino de Estornudo Óptico" +msgstr[1] "Pergaminos de Estornudo Óptico" -#. ~ Description for {'str': 'Scroll of Overcharge', 'str_pl': 'Scrolls of -#. Overcharge'} +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': +#. 'Scrolls of Optical Sneeze Beam'} #: lang/json/GENERIC_from_json.py msgid "" "You overcharge your internal batteries to send a semi-directed beam from " "your face." msgstr "" +"Sobrecargás tus baterías internas para enviar un rayo semidireccionado desde" +" tu cara." #: lang/json/GENERIC_from_json.py msgid "Scroll of Clairvoyance" msgid_plural "Scrolls of Clairvoyance" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Clarividencia" +msgstr[1] "Pergaminos de Clarividencia" #. ~ Description for {'str': 'Scroll of Clairvoyance', 'str_pl': 'Scrolls of #. Clairvoyance'} #. ~ Description for Clairvoyance #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "You close your eyes and the earth surrenders its secrets to you." -msgstr "" +msgstr "Cerrás los ojos y la tierra te entrega sus secretos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Lava Bomb" msgid_plural "Scrolls of Lava Bomb" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bomba de Lava" +msgstr[1] "Pergaminos de Bomba de Lava" #. ~ Description for {'str': 'Scroll of Lava Bomb', 'str_pl': 'Scrolls of Lava #. Bomb'} @@ -69004,24 +70699,27 @@ msgid "" "surrounded by hot, solid rock. It shatters upon impact, spraying shards of " "rock and lava everywhere." msgstr "" +"Abrís el tierra debajo tuyo para disparar una bomba de lava: una esfera de " +"lava que rodea una roca caliente. Se destruye al impactar, disparando " +"pedazos de piedra y lava para todos lados." #: lang/json/GENERIC_from_json.py msgid "Scroll of Acid Resistance" msgid_plural "Scrolls of Acid Resistance" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Resistencia al Ácido" +msgstr[1] "Pergaminos de Resistencia al Ácido" #. ~ Description for {'str': 'Scroll of Acid Resistance', 'str_pl': 'Scrolls #. of Acid Resistance'} #: lang/json/GENERIC_from_json.py msgid "This spell creates an invisible aura to protect you from acid." -msgstr "" +msgstr "Este hechizo crea un aura invisible que te protege del ácido." #: lang/json/GENERIC_from_json.py msgid "Scroll of Lightning Storm" msgid_plural "Scrolls of Lightning Storm" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Tormenta Eléctrica" +msgstr[1] "Pergaminos de Tormenta Eléctrica" #. ~ Description for {'str': 'Scroll of Lightning Storm', 'str_pl': 'Scrolls #. of Lightning Storm'} @@ -69031,12 +70729,15 @@ msgid "" "used among Stormshapers can be altered to become much more powerful, at a " "much higher mana cost." msgstr "" +"Este pergamino detalla cómo un hechizo llamado 'Bomba Eléctrica' que es " +"usado comúnmente entre los Tormentaformantes, puede ser alterado para ser " +"mucho más potente, con un costo mucho mayor de maná." #: lang/json/GENERIC_from_json.py msgid "Scroll of Sacrificial Regrowth" msgid_plural "Scrolls of Sacrificial Regrowth" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Resurgimiento Sacrificial" +msgstr[1] "Pergaminos de Resurgimiento Sacrificial" #. ~ Description for {'str': 'Scroll of Sacrificial Regrowth', 'str_pl': #. 'Scrolls of Sacrificial Regrowth'} @@ -69046,12 +70747,15 @@ msgid "" "Through giving of one's own life force, you restore withered and barren " "plant life nearby. What remains will need time to regrow its full strength." msgstr "" +"Al entregar tu propia energía vital, restaurás las plantas marchitas y " +"estériles cercanas. Lo que queda necesitará tiempo para volver a crecer " +"completamente." #: lang/json/GENERIC_from_json.py msgid "Scroll of Sacrificial Healing" msgid_plural "Scrolls of Sacrificial Healing" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Curación Sacrificial" +msgstr[1] "Pergaminos de Curación Sacrificial" #. ~ Description for {'str': 'Scroll of Sacrificial Healing', 'str_pl': #. 'Scrolls of Sacrificial Healing'} @@ -69061,12 +70765,14 @@ msgid "" "Channels some of the user's own life force into healing energy, for the sake" " of ones allies." msgstr "" +"Canaliza algo de la energía vital del usuario y la convierte energía de " +"curación, para ayudar a los aliados." #: lang/json/GENERIC_from_json.py msgid "Scroll of Stoneskin" msgid_plural "Scrolls of Stoneskin" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Piel Pétrea" +msgstr[1] "Pergaminos de Piel Pétrea" #. ~ Description for {'str': 'Scroll of Stoneskin', 'str_pl': 'Scrolls of #. Stoneskin'} @@ -69076,12 +70782,14 @@ msgid "" "Envelops your entire body in armor formed from living rock, encumbering yet " "protective." msgstr "" +"Envuelve tu cuerpo entero en una armadura formada por roca viviente, " +"bastante incómoda pero protectora." #: lang/json/GENERIC_from_json.py msgid "Scroll of Pillar of Stone" msgid_plural "Scrolls of Pillar of Stone" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Pilar de Piedra" +msgstr[1] "Pergamino de Pilar de Piedra" #. ~ Description for {'str': 'Scroll of Pillar of Stone', 'str_pl': 'Scrolls #. of Pillar of Stone'} @@ -69092,12 +70800,14 @@ msgid "" "Experience will make the task easier, and less disruptive to the surrounding" " area." msgstr "" +"Al dibujar en la tierra que te rodea, formás un pilar de roca sólida. La " +"experiencia hará más fácil esta tarea y menos disruptiva para el área." #: lang/json/GENERIC_from_json.py msgid "Scroll of Paralytic Dart" msgid_plural "Scrolls of Paralytic Dart" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Dardo Paralizador" +msgstr[1] "Pergaminos de Dardo Paralizador" #. ~ Description for {'str': 'Scroll of Paralytic Dart', 'str_pl': 'Scrolls of #. Paralytic Dart'} @@ -69107,12 +70817,14 @@ msgid "" "Spits a warped needle of sinew and bone, carrying with it a sting that slows" " your victim." msgstr "" +"Escupe una aguja perversa de hueso y tendón, que lleva un aguijón que vuelve" +" lenta a la víctima." #: lang/json/GENERIC_from_json.py msgid "Scroll of Visceral Projection" msgid_plural "Scrolls of Visceral Projection" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Proyección Visceral" +msgstr[1] "Pergaminos de Proyección Visceral" #. ~ Description for {'str': 'Scroll of Visceral Projection', 'str_pl': #. 'Scrolls of Visceral Projection'} @@ -69122,12 +70834,14 @@ msgid "" "Projects a spray of acrid blood and gore all around you, growing to ensnare " "your prey in in a field of twitching poisonous tendrils." msgstr "" +"Proyecta un chorro de sangre y tripas acres alrededor tuyo, que logran " +"atrapar a tu presa en un campo de tentáculos retorcidos venenosos." #: lang/json/GENERIC_from_json.py msgid "Scroll of Coagulant Weave" msgid_plural "Scrolls of Coagulant Weave" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Ola Coagulante" +msgstr[1] "Pergaminos de Ola Coagulante" #. ~ Description for {'str': 'Scroll of Coagulant Weave', 'str_pl': 'Scrolls #. of Coagulant Weave'} @@ -69138,12 +70852,16 @@ msgid "" "Rather than strength of healing, it staves off blood loss and purges wounds " "before they can turn septic, at the cost of increased hunger and thirst." msgstr "" +"Envía tu maestría biológica hacia tu interior, mejorando médicamente tu " +"carne. Más que la fuerza de la curación, frena la pérdida de sangre y purga " +"las heridas antes de que se vuelvan sépticas, a cambio de un incremento en " +"hambre y sed." #: lang/json/GENERIC_from_json.py msgid "Scroll of Ionization" msgid_plural "Scrolls of Ionization" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergaminos de Ionización" +msgstr[1] "Pergaminos de Ionización" #. ~ Description for {'str': 'Scroll of Ionization', 'str_pl': 'Scrolls of #. Ionization'} @@ -69155,12 +70873,16 @@ msgid "" "from natural lightning, the light and thunderclap produced will leave your " "foes reeling." msgstr "" +"Al manipular la carga del aire, podés conjurar un chasquido de electricidad " +"sobre un área grande. Aunque su poder destructivo es bastante poco comparada" +" con un rayo natural, el relámpago y el trueno que se produce dejará a tus " +"enemigos tambaleando." #: lang/json/GENERIC_from_json.py msgid "Scroll of Ignus Fatuus" msgid_plural "Scrolls of Ignus Fatuus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Ignus Fatuus" +msgstr[1] "Pergaminos de Ignus Fatuus" #. ~ Description for {'str': 'Scroll of Ignus Fatuus', 'str_pl': 'Scrolls of #. Ignus Fatuus'} @@ -69171,12 +70893,15 @@ msgid "" " astray. With more experience, this spell can conjure multiple ghost " "lights." msgstr "" +"Conjura un fuego fatuo fantasmal extraído del vapor del pantano, para hacer " +"perder a tus enemigos. Con más experiencia, este hechizo puede conjurar " +"varias luces fantasmales." #: lang/json/GENERIC_from_json.py msgid "Scroll of Wall of Fog" msgid_plural "Scrolls of Wall of Fog" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Pared de Niebla" +msgstr[1] "Pergaminos de Pared de Niebla" #. ~ Description for {'str': 'Scroll of Wall of Fog', 'str_pl': 'Scrolls of #. Wall of Fog'} @@ -69187,24 +70912,27 @@ msgid "" "pressure will floor any enemies caught in it, the conjuration is otherwise " "harmless." msgstr "" +"Atrae una ancha pared de niebla gruesa. Aunque la súbita fuerza de la " +"presión del aire hará caer a los enemigos al suelo, el conjuro es " +"inofensivo." #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "copies of A Technomancer's Guide to Debugging C:DDA" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Guía de Tecnomante sobre Bugs de C:DDA" +msgstr[1] "copias de Guía de Tecnomante sobre Bugs de C:DDA" #. ~ Description for {'str': "A Technomancer's Guide to Debugging C:DDA", #. 'str_pl': "copies of A Technomancer's Guide to Debugging C:DDA"} #: lang/json/GENERIC_from_json.py msgid "static std::string description( spell sp ) const;" -msgstr "" +msgstr "static std::string description( spell sp ) const;" #: lang/json/GENERIC_from_json.py msgid "A Beginner's Guide to Magic" msgid_plural "copies of A Beginner's Guide to Magic" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Guía de Principiante en Magia" +msgstr[1] "copias de Guía de Principiante en Magia" #. ~ Description for {'str': "A Beginner's Guide to Magic", 'str_pl': "copies #. of A Beginner's Guide to Magic"} @@ -69213,12 +70941,14 @@ msgid "" "You would describe this as more like a pamphlet than a spellbook, but it " "seems to have at least one interesting spell you can use." msgstr "" +"Dirías que esto es más un folleto que un libro de hechizos, pero parece " +"contener por lo menos un hechizo interesante que podés usar." #: lang/json/GENERIC_from_json.py msgid "Wizarding Guide to Backpacking" msgid_plural "copies of Wizarding Guide to Backpacking" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Guía Hechicera sobre Valijas" +msgstr[1] "copias de Guía Hechicera sobre Valijas" #. ~ Description for {'str': 'Wizarding Guide to Backpacking', 'str_pl': #. 'copies of Wizarding Guide to Backpacking'} @@ -69228,12 +70958,14 @@ msgid "" " you when backpacking. It's a little bulky, but will certainly prove " "useful." msgstr "" +"Esto parece ser la versión hechizo de la guía sobre qué llevar cuando armás " +"una valija. Es voluminosa, pero puede ser de utilidad." #: lang/json/GENERIC_from_json.py msgid "Pyromancy for Heretics" msgid_plural "copies of Pyromancy for Heretics" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Piromancia para Herejes" +msgstr[1] "copias de Piromancia para Herejes" #. ~ Description for {'str': 'Pyromancy for Heretics', 'str_pl': 'copies of #. Pyromancy for Heretics'} @@ -69241,12 +70973,14 @@ msgstr[1] "" msgid "" "This charred husk of a book still contains many ways to light things aflame." msgstr "" +"Este libro medio quemado y descascarado todavía contiene muchas maneras de " +"encender una llama." #: lang/json/GENERIC_from_json.py msgid "A Treatise on Magical Elements" msgid_plural "copies of A Treatise on Magical Elements" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tratado sobre Elementos Mágicos" +msgstr[1] "copias de Tratado sobre Elementos Mágicos" #. ~ Description for {'str': 'A Treatise on Magical Elements', 'str_pl': #. 'copies of A Treatise on Magical Elements'} @@ -69255,12 +70989,14 @@ msgid "" "This details complex diagrams, rituals, and choreography that describes " "various spells." msgstr "" +"Esto detalla diagramas complejos, rituales y coreografía que describe " +"diversos hechizos." #: lang/json/GENERIC_from_json.py msgid "Introduction to the Divine" msgid_plural "copies of Introduction to the Divine" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Introducción a lo Divino" +msgstr[1] "copias de Introducción a lo Divino" #. ~ Description for {'str': 'Introduction to the Divine', 'str_pl': 'copies #. of Introduction to the Divine'} @@ -69269,12 +71005,14 @@ msgid "" "This appears to mostly be a religious text, but it does have some notes on " "healing." msgstr "" +"Esto parece ser más que nada un texto religioso, pero tiene algunas notas " +"sobre curación." #: lang/json/GENERIC_from_json.py msgid "The Paladin's Guide to Modern Spellcasting" msgid_plural "copies of The Paladin's Guide to Modern Spellcasting" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Guía para Paladín sobre Conjuros Modernos" +msgstr[1] "copias de Guía para Paladín sobre Conjuros Modernos" #. ~ Description for {'str': "The Paladin's Guide to Modern Spellcasting", #. 'str_pl': "copies of The Paladin's Guide to Modern Spellcasting"} @@ -69283,12 +71021,14 @@ msgid "" "Despite the title, this seems to be written in Middle English. A little " "obtuse, but you can make out most of the words well enough." msgstr "" +"A pesar del título, esto parece estar escrito en inglés antiguo. Es un poco " +"obtuso, pero podés entender bastante bien la mayoría de las palabras." #: lang/json/GENERIC_from_json.py msgid "Winter's Eternal Grasp" msgid_plural "copies of Winter's Eternal Grasp" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Agarre Eterno Invernal" +msgstr[1] "copias de Agarre Eterno Invernal" #. ~ Description for {'str': "Winter's Eternal Grasp", 'str_pl': "copies of #. Winter's Eternal Grasp"} @@ -69296,12 +71036,14 @@ msgstr[1] "" msgid "" "This slim book almost seems to be made from ice, it's cold to the touch." msgstr "" +"Este fino libro casi que parece estar hecho de hielo. Lo sentís frío cuando " +"lo tocás." #: lang/json/GENERIC_from_json.py msgid "The Tome of The Oncoming Storm" msgid_plural "copies of The Tome of The Oncoming Storm" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El Tomo de la Tormenta Venidera" +msgstr[1] "copias de El Tomo de la Tormenta Venidera" #. ~ Description for {'str': 'The Tome of The Oncoming Storm', 'str_pl': #. 'copies of The Tome of The Oncoming Storm'} @@ -69310,60 +71052,65 @@ msgid "" "A large book embossed with crossed lightning bolts and storm clouds, it " "tingles to the touch." msgstr "" +"Es un gran libro grabado en relieve, con rayos cruzados y nubes de tormenta." +" Sentís un hormigueo al tocarlo." #: lang/json/GENERIC_from_json.py msgid "Nondescript Spellbook" msgid_plural "copies of Nondescript Spellbook" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Libro de Hechizos Sin Descripción" +msgstr[1] "copias de Libro de Hechizos Sin Descripción" #. ~ Description for {'str': 'Nondescript Spellbook', 'str_pl': 'copies of #. Nondescript Spellbook'} #: lang/json/GENERIC_from_json.py msgid "A small book, containing spells created by a novice magician." msgstr "" +"Es un pequeño libro que contiene hechizos creados por un mago principiante." #: lang/json/GENERIC_from_json.py msgid "Of Light and Falsehoods" msgid_plural "copies of Of Light and Falsehoods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Sobre Luz y Falsedades" +msgstr[1] "copias de Sobre Luz y Falsedades" #. ~ Description for {'str': 'Of Light and Falsehoods', 'str_pl': 'copies of #. Of Light and Falsehoods'} #: lang/json/GENERIC_from_json.py msgid "A small white book, it subtly amplifies the ambient light around it." msgstr "" +"Es un pequeño libro blanco, que amplifica levemente la luz ambiente a su " +"alrededor." #: lang/json/GENERIC_from_json.py msgid "The Tome of Flesh" msgid_plural "copies of The Tome of Flesh" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El Tomo de Carne" +msgstr[1] "copias de El Tomo de Carne" #. ~ Description for {'str': 'The Tome of Flesh', 'str_pl': 'copies of The #. Tome of Flesh'} #: lang/json/GENERIC_from_json.py msgid "A small tome, seemingly covered in tanned human skin." -msgstr "" +msgstr "Es un pequeño tomo que parece estar cubierto con piel humana curtida." #: lang/json/GENERIC_from_json.py msgid "The Book of Trees" msgid_plural "copies of The Book of Trees" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El libro de Árboles" +msgstr[1] "copias de El libro de Árboles" #. ~ Description for {'str': 'The Book of Trees', 'str_pl': 'copies of The #. Book of Trees'} #: lang/json/GENERIC_from_json.py msgid "A bark covered book." -msgstr "" +msgstr "Es un libro cubierto con corteza." #: lang/json/GENERIC_from_json.py msgid "The Utility of Mana as an Energy Source" msgid_plural "copies of The Utility of Mana as an Energy Source" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "La Utilidad del Maná como Fuente de Energía" +msgstr[1] "copias de La Utilidad del Maná como Fuente de Energía" #. ~ Description for {'str': 'The Utility of Mana as an Energy Source', #. 'str_pl': 'copies of The Utility of Mana as an Energy Source'} @@ -69372,12 +71119,14 @@ msgid "" "This book details spells that use your mana to recover various physiological" " effects." msgstr "" +"Este libro detalla los hechizos que utilizan maná para recuperarse de alguno" +" efectos psicológicos." #: lang/json/GENERIC_from_json.py msgid "The Tome of The Battle Mage" msgid_plural "copies of The Tome of The Battle Mage" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El tomo del Mago de Batalla" +msgstr[1] "copias de El tomo del Mago de Batalla" #. ~ Description for {'str': 'The Tome of The Battle Mage', 'str_pl': 'copies #. of The Tome of The Battle Mage'} @@ -69386,12 +71135,14 @@ msgid "" "Your standard wizardy looking spellbook, filled with Magus combat spells. " "You sure lucked out!" msgstr "" +"Es el libro de hechizos estándar, lleno de hechizos de combate Magus. ¡Esto " +"es tener suerte!" #: lang/json/GENERIC_from_json.py msgid "The Tome of the Hollow Earth" msgid_plural "copies of The Tome of the Hollow Earth" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El Tomo de la Tierra Hueca" +msgstr[1] "copias de El Tomo de la Tierra Hueca" #. ~ Description for {'str': 'The Tome of the Hollow Earth', 'str_pl': 'copies #. of The Tome of the Hollow Earth'} @@ -69400,12 +71151,14 @@ msgid "" "This large dusty spellbook seems perpetually, well, dusty. It contains the " "power of the earth." msgstr "" +"Este libro de hechizos grande y sucio parece perpetuamente, bueno, sucio. " +"Contiene la energía de la tierra." #: lang/json/GENERIC_from_json.py msgid "The Tome of Magical Movement" msgid_plural "copies of The Tome of Magical Movement" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El Tomo del Movimiento Mágico" +msgstr[1] "copias de El Tomo del Movimiento Mágico" #. ~ Description for {'str': 'The Tome of Magical Movement', 'str_pl': 'copies #. of The Tome of Magical Movement'} @@ -69415,12 +71168,14 @@ msgid "" "This small lightweight book seems to almost not entirely exist, let's say it" " 97% does. It contains Magus spells focused on movement." msgstr "" +"Este pequeño libro liviano parece casi no existir completamente, digamos que" +" existe en un 97%. Contiene hechizos Magus que se enfocan en el movimiento." #: lang/json/GENERIC_from_json.py msgid "Smudged Scroll" msgid_plural "Smudged Scrolls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino Manchado" +msgstr[1] "Pergaminos Manchados" #. ~ Description for {'str': 'Smudged Scroll'} #: lang/json/GENERIC_from_json.py @@ -69430,12 +71185,15 @@ msgid "" "definitely cast something, but you can't be sure that it will work very " "well." msgstr "" +"Parece que alguien estaba diseñando un hechizo nuevo, pero se le cayó una " +"taza de café arriba y lo rompió enojado. Te das cuenta que igual podrá " +"conjurar algo, pero no podés estar seguro de que funcionará bien." #: lang/json/GENERIC_from_json.py msgid "Necromantic Minions for Dummies" msgid_plural "copies of Necromantic Minions for Dummies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Seguidores Necrománticos para Tontos" +msgstr[1] "copias de Seguidores Necrománticos para Tontos" #. ~ Description for {'str': 'Necromantic Minions for Dummies', 'str_pl': #. 'copies of Necromantic Minions for Dummies'} @@ -69444,12 +71202,15 @@ msgid "" "This book details various ways of summoning an undead minion to fight for " "you. They all appear to disappear after a short time, crumbling to dust." msgstr "" +"Este libro detalla las diversas maneras de conjurar seguidores muertos " +"vivientes para que luchen por vos. Todos parecen desaparecer luego de poco " +"tiempo, deshaciéndose en polvo." #: lang/json/GENERIC_from_json.py msgid "Fundamentals of Technomancy" msgid_plural "copies of Fundamentals of Technomancy" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Fundamentos de Tecnomancia" +msgstr[1] "copias de Fundamentos de Tecnomancia" #. ~ Description for {'str': 'Fundamentals of Technomancy', 'str_pl': 'copies #. of Fundamentals of Technomancy'} @@ -69458,12 +71219,14 @@ msgid "" "This thick manual instructs the spellcaster on manipulating and empowering " "various forms of matter and energy." msgstr "" +"Este grueso manual instruye al hechicero sobre la manipulación y " +"empoderamiento de varias formas de materia y energía." #: lang/json/GENERIC_from_json.py msgid "Complete Idiot's Guide to Technomancy" msgid_plural "copies of Complete Idiot's Guide to Technomancy" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Guía Completa de Tecnomancia Para Idiotas" +msgstr[1] "copias de Guía Completa de Tecnomancia Para Idiotas" #. ~ Description for {'str': "Complete Idiot's Guide to Technomancy", #. 'str_pl': "copies of Complete Idiot's Guide to Technomancy"} @@ -69472,12 +71235,14 @@ msgid "" "This colorful guide, full of diagrams and cartoons, teaches a couple of very" " basic Technomancy spells for the not-so-bright pupils." msgstr "" +"Esta colorida guía, llena de diagramas y dibujos, enseña un par de hechizos " +"muy básicos de Tecnomancia para los pupilos no muy listos." #: lang/json/GENERIC_from_json.py msgid "Technomancy and the Electromagnetic Spectrum" msgid_plural "copies of Technomancy and the Electromagnetic Spectrum" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tecnomancia y el Espectro Electromagnético" +msgstr[1] "copias de Tecnomancia y el Espectro Electromagnético" #. ~ Description for {'str': 'Technomancy and the Electromagnetic Spectrum', #. 'str_pl': 'copies of Technomancy and the Electromagnetic Spectrum'} @@ -69486,12 +71251,14 @@ msgid "" "This lab reference material book is thick and overflowing with information " "on combining magic with EM radiation." msgstr "" +"Este libro de referencia de laboratorio es grueso y desborda información " +"sobre combinar magia con radiación electromagnética." #: lang/json/GENERIC_from_json.py msgid "Geospatial Systems: The Lie Of Linearity" msgid_plural "copies of Geospatial Systems: The Lie Of Linearity" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Sistemas Geoespaciales: La Mentira de la Linealidad" +msgstr[1] "copias de Sistemas Geoespaciales: La Mentira de la Linealidad" #. ~ Description for {'str': 'Geospatial Systems: The Lie Of Linearity', #. 'str_pl': 'copies of Geospatial Systems: The Lie Of Linearity'} @@ -69503,12 +71270,17 @@ msgid "" "There's lots of jargon, but with intense study you can probably learn a " "thing or two about portals." msgstr "" +"Este libro resume con gran detalle cómo el tiempo y el espacio son " +"tambaleantes y no euclídeo. También parece tener una docena de diferentes " +"sistemas de coordinadas que intercambia, lo que lo hace difícil de entender." +" Tiene mucha jerga pero con un estudio intenso podrías aprender alguna cosa " +"sobre portales." #: lang/json/GENERIC_from_json.py msgid "Transcendence of the Human Condition" msgid_plural "copies of Transcendence of the Human Condition" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Trascendencia de la Condición Humana" +msgstr[1] "copias de Trascendencia de la Condición Humana" #. ~ Description for {'str': 'Transcendence of the Human Condition', 'str_pl': #. 'copies of Transcendence of the Human Condition'} @@ -69518,12 +71290,48 @@ msgid "" "examines different spells that can heighten various senses temporarily, in " "hopes to discover a more permanent solution." msgstr "" +"El humano es la única criatura que busca mejorarse a sí misma. Este estudio " +"examina diferentes hechizos que pueden elevar temporalmente varios sentidos," +" con la esperanza de descubrir una solución más permanente." + +#: lang/json/GENERIC_from_json.py +msgid "cauldron of purification" +msgid_plural "cauldrons of purification" +msgstr[0] "caldera de purificación" +msgstr[1] "calderas de purificación" + +#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons +#. of purification'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This cauldron made of demon spider chitin seems to absorb the light. It " +"will hold 16 liters of material and will absorb poisons from it. It may " +"have other properties that require discovery." +msgstr "" +"Esta caldera, hecha de quitina de araña demoníaca, parece absorber la luz. " +"Puede contener hasta 16 litros de material y absorberá las pociones. Puede " +"tener otras propiedades que hay que descubrir." + +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "caldera de oricalco" +msgstr[1] "calderas de oricalco" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "" +"Es una caldera alquímica hecha de oricalco. El metal es particularmente " +"resistente a los tipos únicos de corrosión ocasionados por la alquimia." #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mezcla ignífugo" +msgstr[1] "mezclas ignífugos" #. ~ Description for {'str_sp': 'fireproof mortar'} #: lang/json/GENERIC_from_json.py @@ -69531,12 +71339,14 @@ msgid "" "Some alchemical mortar, ready to be used in building projects expecting " "temperatures on par with dragonbreath." msgstr "" +"Es una mezcla química, lista para ser usada en algún proyecto que esperan " +"temperaturas parecidas a la del aliento de un dragón." #: lang/json/GENERIC_from_json.py msgid "greatclub" msgid_plural "greatclubs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gran garrote" +msgstr[1] "grandes garrotes" #. ~ Description for greatclub #: lang/json/GENERIC_from_json.py @@ -69544,12 +71354,15 @@ msgid "" "A stout knotty club with a large knob at the top. While it's very heavy, " "it's a very effective weapon in the hands of a strong opponent." msgstr "" +"Es un garrote robusto y nudoso con un bulto en la punta. Aunque es muy " +"pesado, es también muy efectivo como armas en las manos de un oponente " +"fuerte." #: lang/json/GENERIC_from_json.py msgid "wood trident" msgid_plural "wood tridents" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tridente de madera" +msgstr[1] "tridentes de madera" #. ~ Description for wood trident #: lang/json/GENERIC_from_json.py @@ -69558,12 +71371,16 @@ msgid "" "the end. It can be used for stabbing opponents either in close-range or as " "a thrown weapon, and in the right hands can also readily disarm opponents." msgstr "" +"Es un arma de cuerpo a cuerpo de madera con una punta similar a un tenedor, " +"hecha de acero forjado a mano. Puede ser usado para apuñalar oponentes tanto" +" en el corto alcance como al ser arrojada, y en las manos apropiadas puede " +"desarmar rápidamente al oponente." #: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py msgid "barbed javelin" msgid_plural "barbed javelins" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jabalina con púas" +msgstr[1] "jabalinas con púas" #. ~ Description for {'str': 'barbed javelin'} #: lang/json/GENERIC_from_json.py @@ -69572,12 +71389,15 @@ msgid "" "for better accuracy. The business end of the javelin has wicked-looking " "barbs which could cause significant bleeding." msgstr "" +"Este arma mide casi 1 metro de largo y tiene emplumado similar a una flecha " +"para mejorar la precisión. La punta de la jabalina tiene unas púas de " +"apariencia malvada que puede causar un sangrado severo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "foldable orichalcum frame" msgid_plural "foldable orichalcum frames" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "armazón plegable de oricalco" +msgstr[1] "armazones plegables de oricalco" #. ~ Description for foldable orichalcum frame #: lang/json/GENERIC_from_json.py @@ -69585,12 +71405,14 @@ msgid "" "A folding frame made of orichalcum pipes. Not as light as aluminum, but " "significantly sturdier." msgstr "" +"Es una armazón plegable hecha con caños de oricalco. No es tan liviano como " +"el aluminio, pero bastante más resistente." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "orichalcum frame" msgid_plural "orichalcum frames" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "armazón de oricalco" +msgstr[1] "armazones de oricalco" #. ~ Description for orichalcum frame #: lang/json/GENERIC_from_json.py @@ -69598,1338 +71420,61 @@ msgid "" "A frame made of orichalcum. Significantly sturdier than steel, but also " "much more expensive." msgstr "" +"Es una armazón hecha de oricalco. Bastante más resistente que el acero, pero" +" también mucho más caro." -#. ~ Description for broken turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken turret. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." -msgstr "" -"Es como una torreta pero rota. Mucho menos amenazante ahora que está ahí " -"inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken military turret" -msgid_plural "broken military turrets" -msgstr[0] "torreta militar rota" -msgstr[1] "torretas militares rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced turret" -msgid_plural "broken advanced turrets" -msgstr[0] "torreta mejorada rota" -msgstr[1] "torretas mejoradas rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense turret" -msgid_plural "broken defense turrets" -msgstr[0] "torreta defensiva rota" -msgstr[1] "torretas defensivas rotas" - -#. ~ Description for broken defense turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta defensiva pero rota. Mucho menos amenazante ahora que está " -"ahí inerte. Puede ser desarmada para recuperar partes." - -#. ~ Description for broken military turret #: lang/json/GENERIC_from_json.py -msgid "" -"A broken military turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar pero rota. Mucho menos amenazante ahora que está ahí " -"inerte. Puede ser desarmada para recuperar partes." - -#. ~ Description for broken advanced turret -#. ~ Description for broken 9mm turret -#. ~ Description for broken riotcontrol turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken 9mm defense turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta 9mm pero rota. Mucho menos amenazante ahora que está ahí " -"inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken 9mm turret" -msgid_plural "broken 9mm turrets" -msgstr[0] "torreta 9mm rota" -msgstr[1] "torretas 9mm rotas" - -#. ~ Description for broken 9mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken shotgun defense turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta escopeta defensiva pero rota. Mucho menos amenazante ahora " -"que está ahí inerte. Puede ser desarmada para recuperar partes." - -#. ~ Description for broken riot control turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control turret. Much less threatening now that it lies limp " -"on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta antidisturbios pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol turret" -msgid_plural "broken riotcontrol turrets" -msgstr[0] "torreta antidisturbios rota" -msgstr[1] "torretas antidisturbios rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken 5.56mm turret" -msgid_plural "broken 5.56mm turrets" -msgstr[0] "torreta 5.56mm rota" -msgstr[1] "torretas 5.56mm rotas" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5.56mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar 5.56mm pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken 7.62mm turret" -msgid_plural "broken 7.62mm turrets" -msgstr[0] "torreta 7.62mm rota" -msgstr[1] "torretas 7.62mm rotas" - -#. ~ Description for broken 7.62mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 7.62mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar 7.62mm pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken 50cal turret" -msgid_plural "broken 50cal turrets" -msgstr[0] "torreta 50cal rota" -msgstr[1] "torretas 50cal rotas" - -#. ~ Description for broken 50cal turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 50 caliber turret. Much less threatening now that " -"it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar calibre 50 pero rota. Mucho menos amenazante ahora " -"que está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken 40mm turret" -msgid_plural "broken 40mm turrets" -msgstr[0] "torreta 40mm rota" -msgstr[1] "torretas 40mm rotas" - -#. ~ Description for broken 40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 40mm grenade turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar de granada 40mm pero rota. Mucho menos amenazante " -"ahora que está ahí inerte. Puede ser desarmada para recuperar partes." - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5x50 flechette turret. Much less threatening now " -"that it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar de dardos perforantes 5x50 pero rota. Mucho menos " -"amenazante ahora que está ahí inerte. Puede ser desarmada para recuperar " -"partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken 8x40mm turret" -msgid_plural "broken 8x40mm turrets" -msgstr[0] "torreta 8x40mm rota" -msgstr[1] "torretas 8x40mm rotas" - -#. ~ Description for broken 8x40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 8x40mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar 8.40mm pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken flamethrower turret" -msgid_plural "broken flamethrower turrets" -msgstr[0] "torreta lanzallamas rota" -msgstr[1] "torretas lanzallamas rotas" - -#. ~ Description for broken flamethrower turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade flamethrower turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar lanzallamas pero rota. Mucho menos amenazante ahora " -"que está ahí inerte. Puede ser desarmada para recuperar partes." - -#. ~ Description for broken laser turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced laser emitter turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada láser pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken acid turret" -msgid_plural "broken acid turrets" -msgstr[0] "torreta ácida rota" -msgstr[1] "torretas ácidas rotas" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid thrower turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada lanza-ácido pero rota. Mucho menos amenazante ahora " -"que está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken plasma turret" -msgid_plural "broken plasma turrets" -msgstr[0] "torreta plasma rota" -msgstr[1] "torretas plasma rotas" - -#. ~ Description for broken plasma turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced plasma ejector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada plasma pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken rail gun turret" -msgid_plural "broken rail gun turrets" -msgstr[0] "torreta de cañón de riel rota" -msgstr[1] "torretas de cañón de riel rotas" - -#. ~ Description for broken rail gun turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced rail gun turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada de cañón de riel pero rota. Mucho menos amenazante " -"ahora que está ahí inerte. Puede ser desarmada para recuperar partes." - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid projector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada proyecta-ácido pero rota. Mucho menos amenazante " -"ahora que está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken electro turret" -msgid_plural "broken electro turrets" -msgstr[0] "electrotorreta rota" -msgstr[1] "electrotorretas rotas" - -#. ~ Description for broken electro turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced electro caster turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada lanza-rayos eléctricos pero rota. Mucho menos " -"amenazante ahora que está ahí inerte. Puede ser desarmada para recuperar " -"partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken EMP turret" -msgid_plural "broken EMP turrets" -msgstr[0] "torreta PEM rota" -msgstr[1] "torretas PEM rotas" - -#. ~ Description for broken EMP turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced EMP generator turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada PEM pero rota. Mucho menos amenazante ahora que está" -" ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken gaurdin gnome" -msgid_plural "broken gaurdin gnomes" -msgstr[0] "guardgnomo de jardín roto" -msgstr[1] "guardgnomos de jardín rotos" - -#. ~ Description for broken gaurdin gnome -#: lang/json/GENERIC_from_json.py -msgid "A broken and completely harmless garden gnome." -msgstr "Es un gnomo de jardín roto y completamente inofensivo." - -#: lang/json/GENERIC_from_json.py -msgid "broken hack" -msgid_plural "broken hacks" -msgstr[0] "hack roto" -msgstr[1] "hacks rotos" - -#. ~ Description for broken eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot, now dark and motionless. Could be stripped down for parts." -msgstr "" -"Es un ojobot roto, ahora apagado e inmóvil. Puede ser desarmado para " -"recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed eyebot" -msgid_plural "broken disarmed eyebots" -msgstr[0] "ojobot desarmado roto" -msgstr[1] "ojobots desarmados rotos" - -#. ~ Description for broken disarmed eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot. Its integrated weapon module has been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"Es un ojobot roto. Su arma integrada ha sido quitada. Puede ser desarmado " -"para recuperar partes o convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken utility robot" -msgid_plural "broken utility robots" -msgstr[0] "utilitaribot roto" -msgstr[1] "utilitaribots rotos" - -#. ~ Description for broken utility robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken utility robot, now limp and unmoving. Could be gutted for parts or" -" crafted into a salvaged robot." -msgstr "" -"Es un robot utilitario roto, ahora inmóvil e inerte. Puede ser desarmado " -"para recuperar partes o convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed skitterbot" -msgid_plural "broken disarmed skitterbots" -msgstr[0] "arañabot desarmado roto" -msgstr[1] "arañabots desarmados rotos" - -#. ~ Description for broken disarmed skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot. Its internal weapon modules have been removed. Could " -"be gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot, now harmless and inert. Could be stripped of integral " -"weapon modules." -msgstr "" -"Es un arañabot roto, ahora inerte e indefenso. Puede ser desarmado para " -"recuperar los módulos de armas." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed defense bot" -msgid_plural "broken disarmed defense bots" -msgstr[0] "defensibot desarmado roto" -msgstr[1] "defensibots desarmados rotos" - -#. ~ Description for broken disarmed defense bot -#. ~ Description for broken security robot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken security robot -#. ~ Description for broken defense bot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken disarmed military bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken security robot" -msgid_plural "broken security robots" -msgstr[0] "seguribot roto" -msgstr[1] "seguribots rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol robot" -msgid_plural "broken riotcontrol robots" -msgstr[0] "antidisturbot roto" -msgstr[1] "antidisturbots rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken chickenwalker" -msgid_plural "broken chickenwalkers" -msgstr[0] "mecagallina rota" -msgstr[1] "mecagallinas rotas" - -#. ~ Description for broken chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "A broken chickenwalker. Could be stripped for parts." -msgstr "Es una meca-gallina rota. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed chickenwalker" -msgid_plural "broken disarmed chickenwalkers" -msgstr[0] "mecagallina desarmada rota" -msgstr[1] "mecagallinas desarmadas rotas" - -#. ~ Description for broken disarmed chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken chickenwalker. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken tank drone -#: lang/json/GENERIC_from_json.py -msgid "A broken tank drone. Could be stripped down for parts." -msgstr "Es un dron tanque roto. Puede ser desarmado para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed tank drone" -msgid_plural "broken disarmed tank drones" -msgstr[0] "dron tanque desarmado roto" -msgstr[1] "drones tanque desarmados rotos" - -#. ~ Description for broken disarmed tank drone -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Could be gutted for parts or recrafted into a salvaged" -" robot." -msgstr "" -"Es un dron tanque roto. Puede ser desarmado para recuperar partes o " -"convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "robot component" -msgid_plural "robot components" -msgstr[0] "componente robótico" -msgstr[1] "componentes robóticos" - -#. ~ Description for robot component -#: lang/json/GENERIC_from_json.py -msgid "" -"A component for turrets and robots. It is unuseable in its current state." -msgstr "" -"Es un componente de una torreta o robot. En el estado que está no se puede " -"utilizar." - -#: lang/json/GENERIC_from_json.py -msgid "integral microreactor" -msgid_plural "integral microreactors" -msgstr[0] "microreactor integral" -msgstr[1] "microreactores integrales" - -#. ~ Description for integral microreactor -#: lang/json/GENERIC_from_json.py -msgid "A compact fusion reactor used to power a robot's energy weapons." -msgstr "" -"Es un reactor de fusión compacto, usado para alimentar las armas de energía " -"de un robot." - -#: lang/json/GENERIC_from_json.py -msgid "integral flash gun" -msgid_plural "integral flash guns" -msgstr[0] "arma flash integral" -msgstr[1] "armas flash integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral tazer" -msgid_plural "integral tazers" -msgstr[0] "pistola eléctrica integral" -msgstr[1] "pistolas eléctricas integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 9mm firearm" -msgid_plural "integral 9mm firearms" -msgstr[0] "arma 9mm integral" -msgstr[1] "armas 9mm integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 5.56mm firearm" -msgid_plural "integral 5.56mm firearms" -msgstr[0] "arma 5.56mm integral" -msgstr[1] "armas 5.56mm integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 7.62mm firearm" -msgid_plural "integral 7.62mm firearms" -msgstr[0] "arma 7.62mm integral" -msgstr[1] "armas 7.62mm integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral shotgun" -msgid_plural "integral shotguns" -msgstr[0] "escopeta integral" -msgstr[1] "escopetas integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral beanbag launcher" -msgid_plural "integral beanbag launchers" -msgstr[0] "lanzacartuchos no letal integral" -msgstr[1] "lanzacartuchos no letales integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral teargas launcher" -msgid_plural "integral teargas launchers" -msgstr[0] "lanzagas lacrimógeno integral" -msgstr[1] "lanzagas lacrimógeno integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py -msgid "integral flamethrower" -msgid_plural "integral flamethrowers" -msgstr[0] "lanzallamas integral" -msgstr[1] "lanzallamas integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral flechette firearm" -msgid_plural "integral flechette firearms" -msgstr[0] "arma de dardos perforantes integral" -msgstr[1] "armas de dardos perforantes integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral 8x40mm firearm" -msgid_plural "integral 8x40mm firearms" -msgstr[0] "arma 8x40mm integral" -msgstr[1] "armas 8x40mm integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral 50 caliber firearm" -msgid_plural "integral 50 caliber firearms" -msgstr[0] "arma calibre 50 integral" -msgstr[1] "armas calibre 50 integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral grenade launcher" -msgid_plural "integral grenade launchers" -msgstr[0] "lanzagranadas integral" -msgstr[1] "lanzagranadas integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral laser weapon" -msgid_plural "integral laser weapons" -msgstr[0] "arma láser integral" -msgstr[1] "armas láser integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral plasma ejector" -msgid_plural "integral plasma ejectors" -msgstr[0] "eyectaplasma integral" -msgstr[1] "eyectaplasma integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral electromagnetic railgun" -msgid_plural "integral electromagnetic railguns" -msgstr[0] "cañón de riel electromagnético integral" -msgstr[1] "cañones de riel electromagnéticos integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral acid thrower" -msgid_plural "integral acid throwers" -msgstr[0] "lanza-ácido integral" -msgstr[1] "lanza-ácido integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral electro caster" -msgid_plural "integral electro casters" -msgstr[0] "lanza-rayos eléctricos integral" -msgstr[1] "lanza-rayos eléctricos integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral EMP projector" -msgid_plural "integral EMP projectors" -msgstr[0] "proyector PEM integral" -msgstr[1] "proyectores PEM integrales" - -#. ~ Description for Mjölnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Mjölnir, the hammer of Thor. It is rumored to be able to level" -" mountains with a single blow. It is decorated with gold and silver " -"ornaments." -msgstr "" -"Es una réplica de Mjölnir, el martillo de Thor. Un rumor dice que es capaz " -"de aplanar montañas de un solo golpe. Está decorado con adornos de oro y " -"plata." - -#. ~ Description for Gungnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Gungnir, the spear of Odin. It is rumored to be the perfect " -"spear, perfectly hitting any target regardless of the wielder's strength or " -"skill. It is decorated with gold and silver ornaments." -msgstr "" -"Una réplica de Gungnir, la lanza de Odín. Un rumor dice que es la lanza " -"perfecta, siempre acertando perfectamente en el objetivo sin importar la " -"fuerza o habilidad de quien la utiliza. Está decorada con adornos de oro y " -"plata." - -#: lang/json/GENERIC_from_json.py -msgid "broken light auto armor" -msgid_plural "broken light auto armors" -msgstr[0] "armadura ligera automática rota" -msgstr[1] "armaduras ligeras automáticas rotas" - -#. ~ Description for broken light auto armor -#. ~ Description for broken basic auto armor -#. ~ Description for broken heavy auto armor -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken set of power armor fitted with an AI core for automated use. It " -"cannot be worn or disassembled until re-crafted into an undamaged robot." -msgstr "" -"Es un conjunto roto de armadura de poder, con IA instalada para un uso " -"automático. No puede ser usada o desarmada hasta que sea convertida en un " -"robot ileso." - -#: lang/json/GENERIC_from_json.py -msgid "broken basic auto armor" -msgid_plural "broken basic auto armors" -msgstr[0] "armadura básica automática rota" -msgstr[1] "armaduras básicas automáticas rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken heavy auto armor" -msgid_plural "broken heavy auto armors" -msgstr[0] "armadura pesada automática rota" -msgstr[1] "armaduras pesadas automáticas rotas" - -#: lang/json/GENERIC_from_json.py -msgid "dead craftbuddy" -msgid_plural "dead craftbuddies" +msgid "TEST plank" +msgid_plural "TEST planks" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'dead craftbuddy', 'str_pl': 'dead craftbuddies'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken repair robot, now limp and unmoving. Could be gutted for parts or " -"re-crafted into a functioning pal." -msgstr "" -"Es un robot de reparación roto, ahora inmóvil e inerte. Puede ser desarmado " -"para recuperar partes o convertido en un amiguito funcional." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating lantern" -msgid_plural "broken floating lanterns" -msgstr[0] "linterna voladora rota" -msgstr[1] "linternas voladoras rotas" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating lantern, now dark and motionless. Could be gutted for " -"parts." -msgstr "" -"Es una linterna voladora rota, ahora oscura e inmóvil. Puede ser desarmada " -"para recuperar partes." - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "A broken arson hack, now cold and burnt. Could be gutted for parts." -msgstr "" -"Es un incendi-hack roto, ahora frío y quemado. Puede ser desarmado para " -"recuperar partes." - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken distract-o-hack, now silent and still. Could be gutted for parts." -msgstr "" -"Es un distracto-hack roto, ahora silencioso e inmóvil. Puede ser desarmado " -"para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken spore hack" -msgid_plural "broken spore hacks" -msgstr[0] "espora-hack roto" -msgstr[1] "espora-hacks rotos" - -#. ~ Description for broken spore hack -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken spore hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." -msgstr "" -"Es un espora-hack roto. Ahora que está tirado quieto en el suelo no es tan " -"amenazante. Puede ser desarmado para recuperar las partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken watercannon turret" -msgid_plural "broken watercannon turrets" -msgstr[0] "torreta rota de cañón de agua" -msgstr[1] "torretas rotas de cañón de agua" - -#. ~ Description for broken watercannon turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken watercannon turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta rota de cañón de agua. Mucho menos amenazantes ahora que está" -" ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating heater" -msgid_plural "broken floating heaters" -msgstr[0] "calentador flotante roto" -msgstr[1] "calentadores flotantes rotos" - -#. ~ Description for broken floating heater -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating heater, now cold and motionless. Could be stripped down " -"or re-crafted." -msgstr "" -"Es un calentador flotante roto, ahora frío e inmóvil. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating furnace" -msgid_plural "broken floating furnaces" -msgstr[0] "horno flotante roto" -msgstr[1] "hornos flotantes rotos" - -#. ~ Description for broken floating furnace -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating furnace, now cold and motionless. Could bestripped down " -"or re-crafted." -msgstr "" -"Es un horno flotante roto, ahora frío e inmóvil. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken burning eye" -msgid_plural "broken burning eyes" -msgstr[0] "ojo llameante roto" -msgstr[1] "ojos llameantes rotos" - -#. ~ Description for broken burning eye -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken burning eye, now dark and motionless. Could be stripped down or " -"re-crafted." -msgstr "" -"Es un ojo llameante roto, ahora apagado e inmóvil. Puede ser desarmado para " -"recuperar partes o reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken butler-bot" -msgid_plural "broken butler-bots" -msgstr[0] "mayordobot roto" -msgstr[1] "mayordobots rotos" - -#. ~ Description for broken butler-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken butler-bot, now silent and mangled. Could be stripped down for " -"parts." -msgstr "" -"Es un mayordobot roto, ahora silencioso y mutilado. Puede ser desarmado para" -" recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken construction robot" -msgid_plural "broken construction robots" -msgstr[0] "robot constructor roto" -msgstr[1] "robots constructores rotos" - -#. ~ Description for broken construction robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken construction robot, now wrecked and immobile. Could be stripped " -"down for parts." -msgstr "" -"Es un robot constructor roto, ahora destrozado e inmóvil. Puede ser " -"desarmado para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken firefighter robot" -msgid_plural "broken firefighter robots" -msgstr[0] "bomberobot roto" -msgstr[1] "bomberobots rotos" - -#. ~ Description for broken firefighter robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken firefighter robot, now cold and inert. Could be stripped down for " -"parts." -msgstr "" -"Es un bomberobot roto, ahora frío e inerte. Puede ser desarmado para " -"recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken blob breeder" -msgid_plural "broken blob breeders" -msgstr[0] "cultivador roto de blobo" -msgstr[1] "cultivadores rotos de blobo" - -#. ~ Description for broken blob breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien blobs. Could be stripped down or re-" -"crafted." -msgstr "" -"Es un incubador robótico roto para blobos alienígenas. Puede ser desarmado o" -" reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken slime breeder" -msgid_plural "broken slime breeders" -msgstr[0] "cultivador roto de slime" -msgstr[1] "cultivadores rotos de slime" - -#. ~ Description for broken slime breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien slimes. Could be stripped down or re-" -"crafted." -msgstr "" -"Es un incubador robótico roto para slimes alienígenas. Puede ser desarmado o" -" reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken digestron" -msgid_plural "broken digestrons" -msgstr[0] "digestrón roto" -msgstr[1] "digestrones rotos" - -#. ~ Description for broken digestron -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken acid digestor robot, now cold and unmoving. Could be stripped down" -" or re-crafted." -msgstr "" -"Es un robot roto digestor de ácido, ahora frío e inmóvil. Puede ser " -"desarmado o reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken bee-bot" -msgid_plural "broken bee-bots" -msgstr[0] "abejabot roto" -msgstr[1] "abejabots rotos" - -#. ~ Description for broken bee-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken beehive robot, now still and bee-less. Could be stripped down or " -"re-crafted." -msgstr "" -"Es un robot abejero roto , ahora quieto y sin abejas. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken medical bot" -msgid_plural "broken medical bots" -msgstr[0] "medicobot roto" -msgstr[1] "medicobots rotos" - -#. ~ Description for broken medical bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot, now crumpled and inert. Could be stripped down for " -"parts." -msgstr "" -"Es un robot médico roto, ahora plegado e inerte. Puede ser desarmado para " -"recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed medical robot" -msgid_plural "broken disarmed medical robots" -msgstr[0] "medicobot roto desarmado" -msgstr[1] "medicobots rotos desarmados" - -#. ~ Description for broken disarmed medical robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot. Its onboard pharma-crafter and integral surgical " -"tools have been removed. Could be gutted for parts or crafted into a " -"salvaged robot." -msgstr "" -"Es un robot médico roto. Su creador de fármacos y herramientas quirúrgicas " -"integradas han sido quitadas. Puede ser desarmado para recuperar partes o " -"convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken assassin robot" -msgid_plural "broken assassin robots" -msgstr[0] "asesinobot roto" -msgstr[1] "asesinobots rotos" - -#. ~ Description for broken assassin robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken assassin robot, now limp and immobile. Could be stripped down or " -"re-crafted." -msgstr "" -"Es un robot asesino roto, ahora flácido e inmóvil. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken elixirator" -msgid_plural "broken elixirators" -msgstr[0] "elixirador roto" -msgstr[1] "elixiradores rotos" - -#. ~ Description for broken elixirator -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken elixirator, now shattered and lifeless. Could be stripped down or " -"re-crafted." -msgstr "" -"Es un elixirador roto, ahora destrozado y sin vida. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken party bot" -msgid_plural "broken party bots" -msgstr[0] "fiestabot roto" -msgstr[1] "fiestabots rotos" - -#. ~ Description for broken party bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken party robot, now wasted and burnt out. Looks like the party's " -"over. Could be stripped down or re-crafted." -msgstr "" -"Es un fiestabot roto, ahora arruinado y quemado. Parece que la fiesta " -"terminó. Puede ser desarmado o reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken insane cyborg" -msgid_plural "broken insane cyborgs" -msgstr[0] "androide demente roto" -msgstr[1] "androides dementes rotos" - -#. ~ Description for broken insane cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be gutted for parts or " -"crafted into a salvaged robot." -msgstr "" -"Es un androide roto, ahora inmóvil e inerte. Puede ser desarmado para " -"recuperar partes o convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken necrotic cyborg" -msgid_plural "broken necrotic cyborgs" -msgstr[0] "androide necrótico roto" -msgstr[1] "androides necróticos rotos" - -#. ~ Description for broken necrotic cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be stripped down or re-" -"crafted into a salvaged robot." -msgstr "" -"Es un androide roto, ahora inmóvil e inerte. Puede ser desarmado o " -"convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken rat snatcher" -msgid_plural "broken rat snatchers" -msgstr[0] "cazaratas roto" -msgstr[1] "cazaratas rotos" - -#. ~ Description for broken rat snatcher -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken rat snatcher, now harmless and inert. Could be stripped down or " -"re-crafted." -msgstr "" -"Es un cazaratas roto, ahora inerte e indefenso. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken grab-bot" -msgid_plural "broken grab-bots" -msgstr[0] "agarrabot roto" -msgstr[1] "agarrabots rotos" - -#. ~ Description for broken grab-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken grabber robot, now limp and nonthreatening. Could be stripped down" -" or re-crafted." -msgstr "" -"Es un agarrabot roto, ahora inmóvil e indefenso. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken pest hunter" -msgid_plural "broken pest hunters" -msgstr[0] "cazapestes roto" -msgstr[1] "cazapestes rotos" - -#. ~ Description for broken pest hunter -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken pest hunter, now harmless and inert. Could be gutted for parts or " -"re-crafted." -msgstr "" -"Es un cazapestes roto, ahora inerte e indefenso. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken defense bot" -msgid_plural "broken defense bots" -msgstr[0] "robot defensivo roto" -msgstr[1] "robots defensivos rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken junkyard cowboy" -msgid_plural "broken junkyard cowboys" -msgstr[0] "vaquero de basurero roto" -msgstr[1] "vaqueros de basurero rotos" - -#. ~ Description for broken junkyard cowboy -#. ~ Description for broken shortcircuit samurai -#. ~ Description for broken slapdash paladin -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken shortcircuit samurai" -msgid_plural "broken shortcircuit samurais" -msgstr[0] "samurai cortocircuitos roto" -msgstr[1] "samurais cortocircuitos rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken slapdash paladin" -msgid_plural "broken slapdash paladins" -msgstr[0] "paladín chambón roto" -msgstr[1] "paladines chambones rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed military bot" -msgid_plural "broken disarmed military bots" -msgstr[0] "robot militar desarmado y roto" -msgstr[1] "robots militares desarmados y rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken military trainer robot" -msgid_plural "broken military trainer robots" -msgstr[0] "militaribot de entrenamiento roto" -msgstr[1] "militaribots de entrenamiento rotos" - -#. ~ Description for broken military trainer robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military trainer robot, shattered and inert. This one is armed " -"with an integrated paintball gun. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military robot" -msgid_plural "broken military robots" -msgstr[0] "militaribot roto" -msgstr[1] "militaribots rotos" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 5.56mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 7.62mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 50 caliber firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 8x40mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flechette gun. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 40mm grenade launcher. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military flame robot" -msgid_plural "broken military flame robots" -msgstr[0] "militaribot flameante roto" -msgstr[1] "militaribots flameantes rotos" - -#. ~ Description for broken military flame robot +#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flamethrower. Could be stripped for parts." +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" +" lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken robo-guardian" -msgid_plural "broken robo-guardians" +msgid "TEST pipe" +msgid_plural "TEST pipes" msgstr[0] "" msgstr[1] "" -#. ~ Description for broken robo-guardian -#. ~ Description for broken robo-protector -#. ~ Description for broken robo-defender -#. ~ Description for {'str': 'broken glittering lady', 'str_pl': 'broken -#. glittering ladies'} -#. ~ Description for broken bitter spinster -#. ~ Description for broken fist king -#. ~ Description for broken atomic sultan -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "Es un robot rescatado roto. Puede ser desarmado o reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken robote deluxe" -msgid_plural "broken robote deluxes" -msgstr[0] "robot de lujo roto" -msgstr[1] "robots de lujo rotos" - -#. ~ Description for broken robote deluxe -#: lang/json/GENERIC_from_json.py -msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-protector" -msgid_plural "broken robo-protectors" -msgstr[0] "protectorbot roto" -msgstr[1] "protectorbots rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-defender" -msgid_plural "broken robo-defenders" -msgstr[0] "defensorbot roto" -msgstr[1] "defensorbots rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed advanced bot" -msgid_plural "broken disarmed advanced bots" -msgstr[0] "robot avanzado desarmado y roto" -msgstr[1] "robots avanzados desarmados y rotos" - -#. ~ Description for broken disarmed advanced bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced robot" -msgid_plural "broken advanced robots" -msgstr[0] "robot avanzado roto" -msgstr[1] "robots avanzados rotos" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated laser-" -"emitter. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated plasma-" -"ejector. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated electro-" -"caster. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated EMP " -"projector. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken glittering lady" -msgid_plural "broken glittering ladies" +msgid "TEST sheet metal" +msgid_plural "TEST sheet metals" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "broken bitter spinster" -msgid_plural "broken bitter spinsters" -msgstr[0] "solterona amarga rota" -msgstr[1] "solteronas amargas rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken chainsaw horror" -msgid_plural "broken chainsaw horrors" -msgstr[0] "horror motosierra roto" -msgstr[1] "horrores motosierra rotos" - -#. ~ Description for broken chainsaw horror -#. ~ Description for broken screeching terror -#. ~ Description for broken hooked nightmare -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken salvaged robot. Thank God it's finally dead. Could be stripped or" -" recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken screeching terror" -msgid_plural "broken screeching terrors" -msgstr[0] "terror chillón roto" -msgstr[1] "terrores chillones rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken hooked nightmare" -msgid_plural "broken hooked nightmares" -msgstr[0] "pesadilla ganchuda rota" -msgstr[1] "pesadillas ganchudas rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken fist king" -msgid_plural "broken fist kings" -msgstr[0] "rey puño roto" -msgstr[1] "reyes puños rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken atomic sultan" -msgid_plural "broken atomic sultans" -msgstr[0] "sultán atómico roto" -msgstr[1] "sultanes atómicos rotos" - -#. ~ Description for AI core -#: lang/json/GENERIC_from_json.py -msgid "A computer module for controlling robots." -msgstr "Es un módulo de computadora para controlar robots." - -#: lang/json/GENERIC_from_json.py -msgid "surgery module" -msgid_plural "surgery modules" -msgstr[0] "módulo de cirugía" -msgstr[1] "módulos de cirugía" - -#. ~ Description for surgery module -#: lang/json/GENERIC_from_json.py -msgid "A microsurgery module for a medical robot." -msgstr "Es un módulo de microcirugía para un robot médico." - -#: lang/json/GENERIC_from_json.py -msgid "pharmaceutical module" -msgid_plural "pharmaceutical modules" -msgstr[0] "módulo farmacéutico" -msgstr[1] "módulos farmacéuticos" - -#. ~ Description for pharmaceutical module -#: lang/json/GENERIC_from_json.py -msgid "A pharmaceutical fabricating module for a medical robot." -msgstr "Es un módulo de fabricación de fármacos, para un robot médico." - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral paintball gun" -msgid_plural "integral paintball guns" -msgstr[0] "arma de paintball integral" -msgstr[1] "armas de paintball integrales" - -#. ~ Description for integral paintball gun -#: lang/json/GENERIC_from_json.py -msgid "" -"A high-powered paintball module used for safely testing robots or training " -"soldiers." -msgstr "" -"Es un módulo de paintball de alta potencia, usado para probar robots o " -"entrenar soldados." - -#: lang/json/GENERIC_from_json.py -msgid "robot carrier" -msgid_plural "robot carriers" -msgstr[0] "transportador de robots" -msgstr[1] "transportadores de robots" +msgid "TEST gallon jug" +msgid_plural "TEST gallon jugs" +msgstr[0] "TEST jarro de galón" +msgstr[1] "TEST jarros de galón" -#. ~ Description for robot carrier #: lang/json/GENERIC_from_json.py -msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large machine in place. It is " -"meant to hold large drones and robots for transport. Use it on a suitable " -"robot to capture, use it on an empty tile to release." -msgstr "" -"Es una estructura resistente equipada con puntos de enganche y de amarre " -"para llevar carga, con rejas adicionales para mantener a las máquinas " -"grandes en su lugar. Está diseñado para contener drones grandes para " -"transportarlos. Usalo en un robot para capturar, y usalo en un espacio vacío" -" para largarlo." +msgid "TEST small waterskin" +msgid_plural "TEST small waterskins" +msgstr[0] "TEST odre pequeño" +msgstr[1] "TEST odres pequeños" #: lang/json/GENERIC_from_json.py -msgid "TEST plank" -msgid_plural "TEST planks" +msgid "test balloon" +msgid_plural "test balloons" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'test balloon'} #: lang/json/GENERIC_from_json.py -msgid "TEST pipe" -msgid_plural "TEST pipes" -msgstr[0] "" -msgstr[1] "" +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "TEST sheet metal" -msgid_plural "TEST sheet metals" +msgid "test pointy stick" +msgid_plural "test pointy sticks" msgstr[0] "" msgstr[1] "" @@ -70967,206 +71512,50 @@ msgid "A well-balanced sword for test purposes" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "a large artillery casing" -msgid_plural "large artillery casings" -msgstr[0] "casquillo grande de artillería" -msgstr[1] "casquillos grandes de artillería" - -#: lang/json/GENERIC_from_json.py -msgid "30x113mm autocannon belt linkage" -msgid_plural "30x113mm autocannon belt linkages" -msgstr[0] "unión metálica de autocañón 30x113mm" -msgstr[1] "uniones metálicas de autocañón 30x113mm" - -#: lang/json/GENERIC_from_json.py -msgid "30mm canister" -msgid_plural "30mm canisters" -msgstr[0] "carcasa 40mm" -msgstr[1] "carcasas 40mm" - -#. ~ Description for 30mm canister -#: lang/json/GENERIC_from_json.py -msgid "A canister from a spent 30mm shell." -msgstr "Una carcasa de un proyectil 30mm usado." - -#: lang/json/GENERIC_from_json.py -msgid "120mm canister" -msgid_plural "120mm canisters" -msgstr[0] "carcasa 120mm" -msgstr[1] "carcasas 120mm" - -#. ~ Description for 120mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 120mm shell, now an expensive paperweight." -msgstr "" -"Una carcasa grande de un proyectil 120mm usado, y que ahora es un " -"pisapapeles carísimo." - -#: lang/json/GENERIC_from_json.py -msgid "155mm canister" -msgid_plural "155mm canisters" -msgstr[0] "carcasa 155mm" -msgstr[1] "carcasas 155mm" - -#. ~ Description for 155mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 155mm shell, now an expensive paperweight." -msgstr "" -"Una carcasa grande de un proyectil 155mm usado, y que ahora es un " -"pisapapeles carísimo." - -#: lang/json/GENERIC_from_json.py -msgid "stabilized portal" -msgid_plural "stabilized portals" -msgstr[0] "portal estabilizado" -msgstr[1] "portales estabilizados" - -#. ~ Description for {'str': 'stabilized portal'} -#: lang/json/GENERIC_from_json.py -msgid "" -"As you gaze into the seemingly infinite depths of this portable hole in " -"reality, a phrase from a time forever gone echoes in your mind. \"There are" -" two things that are infinite: the universe and human kleptomania.\"" -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" +msgid "test box" +msgid_plural "test boxs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle shelving'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" -msgstr[0] "matriz solar" -msgstr[1] "matrices solares" - -#. ~ Description for {'str': 'solar array'} +#. ~ Description for {'str': 'test box'} #: lang/json/GENERIC_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. However, this comes at the " -"cost of being prohibitively heavy." +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." msgstr "" -"Es una docena de paneles solares puestos en un chasis de varios metros de " -"altura. Mantiene a los paneles a salvo de cualquier amenaza potencial, y " -"mejora su eficiencia debido a que puede seguir al sol. Sin embargo, es " -"imposiblemente pesado." -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" -msgstr[0] "matriz solar mejorada" -msgstr[1] "matrices solares mejoradas" - -#. ~ Description for {'str': 'upgraded solar array'} #: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able to track the sun. However, this comes" -" at the cost of being prohibitively heavy and obstructive." -msgstr "" -"Es una docena de paneles solares mejorados puestos en un chasis de varios " -"metros de altura. Mantiene a los paneles a salvo de cualquier amenaza " -"potencial, y mejora su eficiencia debido a que puede seguir al sol. Sin " -"embargo, es imposiblemente pesado y molesto." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" -msgstr[0] "matriz solar reforzada mejorada" -msgstr[1] "matrices solares reforzadas mejoradas" - -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded reinforced solar panels set on a chassis reaching several " -"meters high. It keeps the fragile panels safely away from any potential " -"threats and improves efficiency due to being able to track the sun. " -"However, this comes at the cost of being prohibitively heavy and " -"obstructive." -msgstr "" -"Es una docena de paneles solares reforzados y mejorados puestos en un chasis" -" de varios metros de altura. Mantiene a los paneles a salvo de cualquier " -"amenaza potencial, y mejora su eficiencia debido a que puede seguir al sol. " -"Sin embargo, es imposiblemente pesado y molesto." - -#: lang/json/GENERIC_from_json.py -msgid "gelectrode" -msgid_plural "gelectrodes" +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gelectrode'} +#. ~ Description for test 14 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A strange biological anomaly, this blob seems capable of emitting light when" -" electricity is provided to it, from small lamps up to headlights. " -"Unfortunately there is no place to insert a battery, so you'll have to hook " -"it up to a vehicle's power grid. It seems pliable enough to pull apart…" +msgid "A thin rod exactly 14 cm in length" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "amorphous heart" -msgid_plural "amorphous hearts" -msgstr[0] "corazón amorfo" -msgstr[1] "corazones amorfos" +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'amorphous heart'} +#. ~ Description for test 15 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"This amorphous mass seems to have finished developing; its advanced internal" -" structures testifying to that. It is capable of locomotion through " -"internal hydraulic pressure, capable of moving substantial loads, and, in an" -" astounding display of intelligence, is capable of manipulating anything " -"it's attached to, whether blob-based or otherwise, through extended " -"pseudopods. You think you might be able to manipulate it, and through it, " -"all its attached parts. Though to do so you'll have to position yourself to" -" be in contact with it; and it appears unnervingly willing to accommodate " -"you…" +msgid "A thin rod exactly 15 cm in length" msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond frame" -msgid_plural "diamond frames" -msgstr[0] "armazón de diamante" -msgstr[1] "armazones de diamante" - -#. ~ Description for {'str': 'diamond frame'} #: lang/json/GENERIC_from_json.py -msgid "" -"A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " -"weight." -msgstr "" -"Es la brillante y centelleante estructura de diamante de un vehículo. " -"Increíblemente fuerte para lo que pesa." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond plating" -msgid_plural "diamond platings" -msgstr[0] "chapa de diamante" -msgstr[1] "chapas de diamante" +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'diamond plating'} +#. ~ Description for {'str': 'test nuclear carafe'} #: lang/json/GENERIC_from_json.py msgid "" -"A piece of armor plating made of clear diamond. Incredibly strong for its " -"weight." +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." msgstr "" -"Es una pieza de coraza hecha de diamante transparente. Increíblemente fuerte" -" para lo que pesa." #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" @@ -71299,6 +71688,9 @@ msgid "" "Place to drop unsorted loot. You can use \"sort out loot\" zone-action to " "sort items inside. It can overlap with Loot zones of different types." msgstr "" +"Lugar para dejar las cosas sin orden. Podés usar la acción de zona \"ordenar" +" cosas\" para ordenar los objetos dentro. Se puede sobreponer con otras " +"zonas de cosas." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Food" @@ -71310,6 +71702,8 @@ msgid "" "Destination for comestibles. If more specific food zone is not defined, all" " food is moved here." msgstr "" +"Lugar para lo comestible. Si no hay una zona más específica para la comida, " +"va toda acá." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: P.Food" @@ -71321,6 +71715,8 @@ msgid "" "Destination for perishable comestibles. Does include perishable drinks if " "such zone is not specified." msgstr "" +"Lugar para los comestibles perecederos. Incluye bebidas perecederas si no " +"hay una zona específica para ellas." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Drink" @@ -71332,6 +71728,8 @@ msgid "" "Destination for drinks. Does include perishable drinks if such zone is not " "specified." msgstr "" +"Lugar para las bebidas. Incluye bebidas perecederas si no hay una zona " +"específica para ellas." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: P.Drink" @@ -71344,12 +71742,12 @@ msgstr "Lugar para bebidas perecederas." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Containers" -msgstr "" +msgstr "Cosas: Recipientes" #. ~ Description for Loot: Containers #: lang/json/LOOT_ZONE_from_json.py msgid "Destination for empty containers." -msgstr "" +msgstr "Lugar para recipientes vacíos." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Guns" @@ -71406,6 +71804,8 @@ msgid "" "Destination for clothing. Does include filthy clothing if such zone is not " "specified." msgstr "" +"Lugar para ropa. Incluye la ropa sucia si no hay una zona específica para " +"ella." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: F.Clothing" @@ -71459,7 +71859,7 @@ msgstr "Cosas: Biónicos" #. ~ Description for Loot: Bionics #: lang/json/LOOT_ZONE_from_json.py msgid "Destination for Compact Bionics Modules, a.k.a. CBMS." -msgstr "" +msgstr "Lugar para Módulos Compactos de Biónicos, también conocidos como MCB." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: V.Parts" @@ -71530,12 +71930,12 @@ msgstr "Lugar para artefactos." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Corpses" -msgstr "" +msgstr "Cosas: Cadáveres" #. ~ Description for Loot: Corpses #: lang/json/LOOT_ZONE_from_json.py msgid "Destination for corpses" -msgstr "" +msgstr "Lugar para cadáveres." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Armor" @@ -71547,6 +71947,8 @@ msgid "" "Destination for armor. Does include filthy armor if such zone is not " "specified." msgstr "" +"Lugar para armaduras. Incluye armaduras sucias si no hay una zona específica" +" para ella." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: F.Armor" @@ -71568,12 +71970,13 @@ msgstr "Lugar para leña y objetos que pueden usarse como tal." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Custom" -msgstr "" +msgstr "Cosas: Personalizar" #. ~ Description for Loot: Custom #: lang/json/LOOT_ZONE_from_json.py msgid "Destination for loot with a custom filter that you can modify" msgstr "" +"Lugar para cosas dependiendo cómo hayas modificado el filtro de cosas." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Ignore" @@ -71589,8 +71992,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light battery" msgid_plural "ultra-light batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería ultra-liviana" +msgstr[1] "baterías ultra-livianas" #. ~ Description for {'str': 'ultra-light battery', 'str_pl': 'ultra-light #. batteries'} @@ -71599,12 +72002,14 @@ msgid "" "This is a light battery cell designed for small size over everything else. " "It retains its universal compatibility, though." msgstr "" +"Es una batería liviana diseñada para ser de tamaño pequeño como prioridad. " +"Aunque sigue teniendo compatibilidad universal." #: lang/json/MAGAZINE_from_json.py msgid "ultra-light plutonium fuel battery" msgid_plural "ultra-light plutonium fuel batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería de plutonio ultra-liviana" +msgstr[1] "baterías de plutonio ultra-livianas" #. ~ Description for {'str': 'ultra-light plutonium fuel battery', 'str_pl': #. 'ultra-light plutonium fuel batteries'} @@ -71614,12 +72019,16 @@ msgid "" "nanocompound. It is universally compatible with small devices. Although it" " stores a huge amount of power, it cannot be recharged." msgstr "" +"Esta batería utiliza una vara fina de plutonio-244 para estabilizar un " +"nanocompuesto exótico. Tiene compatibilidad universal con dispositivos " +"pequeños. Aunque almacena una gran cantidad de energía, no puede ser " +"recargada." #: lang/json/MAGAZINE_from_json.py msgid "ultra-light disposable battery" msgid_plural "ultra-light disposable batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería descartable ultra-liviana" +msgstr[1] "baterías descartables ultra-livianas" #. ~ Description for {'str': 'ultra-light disposable battery', 'str_pl': #. 'ultra-light disposable batteries'} @@ -71629,12 +72038,15 @@ msgid "" "It retains its universal compatibility, though. The battery's chemistry " "means that it has a very high capacity, but cannot be recharged." msgstr "" +"Es una batería liviana diseñada para ser de tamaño pequeño como prioridad. " +"Aunque sigue teniendo compatibilidad universal. La química que constituye la" +" batería la hace poseer una gran capacidad pero no puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "light battery" msgid_plural "light batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería liviana" +msgstr[1] "baterías livianas" #. ~ Description for {'str': 'light battery', 'str_pl': 'light batteries'} #: lang/json/MAGAZINE_from_json.py @@ -71642,12 +72054,14 @@ msgid "" "This is a light battery cell, universally compatible with all kinds of small" " devices." msgstr "" +"Es una batería liviana, con compatibilidad universal con toda clase de " +"dispositivo pequeño." #: lang/json/MAGAZINE_from_json.py msgid "light battery (high-capacity)" msgid_plural "light batteries (high-capacity)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería liviana (gran capacidad)" +msgstr[1] "baterías livianas (gran capacidad)" #. ~ Description for {'str': 'light battery (high-capacity)', 'str_pl': 'light #. batteries (high-capacity)'} @@ -71656,12 +72070,14 @@ msgid "" "This is a high-capacity light battery cell, universally compatible with all " "kinds of small devices." msgstr "" +"Es una batería liviana de gran capacidad, con compatibilidad universal con " +"toda clase de dispositivo pequeño." #: lang/json/MAGAZINE_from_json.py msgid "light plutonium fuel battery" msgid_plural "light plutonium fuel batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería de plutonio liviana" +msgstr[1] "baterías de plutonio livianas" #. ~ Description for {'str': 'light plutonium fuel battery', 'str_pl': 'light #. plutonium fuel batteries'} @@ -71672,12 +72088,16 @@ msgid "" "electronic devices. Although it stores a huge amount of power, it cannot be" " recharged." msgstr "" +"Esta batería utiliza una vara fina de plutonio-244 para estabilizar un " +"nanocompuesto exótico. Tiene compatibilidad universal con toda clase de " +"dispositivo electrónico. Aunque almacena una gran cantidad de energía, no " +"puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "light disposable battery" msgid_plural "light disposable batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería descartable liviana" +msgstr[1] "baterías descartables livianas" #. ~ Description for {'str': 'light disposable battery', 'str_pl': 'light #. disposable batteries'} @@ -71687,12 +72107,15 @@ msgid "" " devices. The battery's chemistry means that it has a very high capacity, " "but cannot be recharged." msgstr "" +"Es una batería liviana, con compatibilidad universal con toda clase de " +"dispositivo pequeño. La química que constituye la batería la hace poseer una" +" gran capacidad pero no puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "medium battery" msgid_plural "medium batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería mediana" +msgstr[1] "baterías medianas" #. ~ Description for {'str': 'medium battery', 'str_pl': 'medium batteries'} #: lang/json/MAGAZINE_from_json.py @@ -71700,12 +72123,14 @@ msgid "" "This is a medium battery cell, universally compatible with all kinds of " "appliances and power tools." msgstr "" +"Es una batería mediana, con compatibilidad universal con toda clase de " +"electrodomésticos y herramientas." #: lang/json/MAGAZINE_from_json.py msgid "medium battery (high-capacity)" msgid_plural "medium batteries (high-capacity)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería mediana (gran capacidad)" +msgstr[1] "baterías medianas (gran capacidad)" #. ~ Description for {'str': 'medium battery (high-capacity)', 'str_pl': #. 'medium batteries (high-capacity)'} @@ -71714,12 +72139,14 @@ msgid "" "This is a high-capacity medium battery cell, universally compatible with all" " kinds of appliances and power tools." msgstr "" +"Es una batería mediana de gran capacidad, con compatibilidad universal con " +"toda clase de electrodomésticos y herramientas." #: lang/json/MAGAZINE_from_json.py msgid "medium plutonium fuel battery" msgid_plural "medium plutonium fuel batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería de plutonio mediana" +msgstr[1] "baterías de plutonio medianas" #. ~ Description for {'str': 'medium plutonium fuel battery', 'str_pl': #. 'medium plutonium fuel batteries'} @@ -71730,12 +72157,16 @@ msgid "" " power tools. Although it stores a huge amount of power, it cannot be " "recharged." msgstr "" +"Esta batería utiliza una vara fina de plutonio-244 para estabilizar un " +"nanocompuesto exótico. Tiene compatibilidad universal con toda clase de " +"electrodomésticos y herramientas. Aunque almacena una gran cantidad de " +"energía, no puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "medium disposable battery" msgid_plural "medium disposable batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería descartable mediana" +msgstr[1] "baterías descartables medianas" #. ~ Description for {'str': 'medium disposable battery', 'str_pl': 'medium #. disposable batteries'} @@ -71745,12 +72176,15 @@ msgid "" "appliances and power tools. The battery's chemistry means that it has a " "very high capacity, but cannot be recharged." msgstr "" +"Es una batería mediana, con compatibilidad universal con toda clase de " +"electrodomésticos y herramientas. La química que constituye la batería la " +"hace poseer una gran capacidad pero no puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "heavy battery" msgid_plural "heavy batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería grande" +msgstr[1] "baterías grandes" #. ~ Description for {'str': 'heavy battery', 'str_pl': 'heavy batteries'} #: lang/json/MAGAZINE_from_json.py @@ -71758,12 +72192,14 @@ msgid "" "This is a heavy battery cell, universally compatible with all kinds of " "industrial-grade equipment and large tools." msgstr "" +"Es una batería grande, con compatibilidad universal con toda clase de " +"equipamiento industrial y herramientas grandes." #: lang/json/MAGAZINE_from_json.py msgid "heavy battery (high-capacity)" msgid_plural "heavy batteries (high-capacity)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería grande (gran capacidad)" +msgstr[1] "baterías grandes (gran capacidad)" #. ~ Description for {'str': 'heavy battery (high-capacity)', 'str_pl': 'heavy #. batteries (high-capacity)'} @@ -71772,12 +72208,14 @@ msgid "" "This is a high-capacity heavy battery cell, universally compatible with all " "kinds of industrial-grade equipment and large tools." msgstr "" +"Es una batería grande de gran capacidad, con compatibilidad universal con " +"toda clase de equipamiento industrial y herramientas grandes." #: lang/json/MAGAZINE_from_json.py msgid "heavy plutonium fuel battery" msgid_plural "heavy plutonium fuel batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería de plutonio grande" +msgstr[1] "baterías de plutonio grandes" #. ~ Description for {'str': 'heavy plutonium fuel battery', 'str_pl': 'heavy #. plutonium fuel batteries'} @@ -71788,12 +72226,16 @@ msgid "" "grade equipment and large tools. Although it stores a huge amount of power," " it cannot be recharged." msgstr "" +"Esta batería utiliza una vara fina de plutonio-244 para estabilizar un " +"nanocompuesto exótico. Tiene compatibilidad universal con toda clase de " +"equipamiento industrial y herramientas grandes. Aunque almacena una gran " +"cantidad de energía, no puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "military plutonium fuel cell" msgid_plural "military plutonium fuel cells" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "celda militar de plutonio" +msgstr[1] "celdas militares de plutonio" #. ~ Description for {'str': 'military plutonium fuel cell'} #: lang/json/MAGAZINE_from_json.py @@ -71803,12 +72245,16 @@ msgid "" "and had no civilian applications. Although it stores a stupendous amount of" " power, it cannot be recharged." msgstr "" +"Esta batería utiliza una vara enorme de plutonio-244 para estabilizar un " +"nanocompuesto exótico. Era utilizada en armaduras mecha militares, eran " +"experimentales y no tienen uso civil. Aunque almacena una gran cantidad de " +"energía, no puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "heavy disposable battery" msgid_plural "heavy disposable batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería descartable grande" +msgstr[1] "baterías descartables grandes" #. ~ Description for {'str': 'heavy disposable battery', 'str_pl': 'heavy #. disposable batteries'} @@ -71818,12 +72264,15 @@ msgid "" "industrial-grade equipment and large tools. The battery's chemistry means " "that it has a very high capacity, but cannot be recharged." msgstr "" +"Es una batería grande, con compatibilidad universal con toda clase de " +"equipamiento industrial y herramientas grandes. La química que constituye la" +" batería la hace poseer una gran capacidad pero no puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "LW-5 speedloader" msgid_plural "LW-5 speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad LW-5" +msgstr[1] "cargadores de velocidad LW-5" #. ~ Description for {'str': 'LW-5 speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -71831,12 +72280,15 @@ msgid "" "This speedloader, made by Leadworks for use with L2037 Backup revolver, can " "hold 5 rounds of .223 and quickly reload a compatible revolver." msgstr "" +"Este cargador de velocidad fabricado por Leadworks para usar con el revólver" +" L2037 Backup, permite contener 5 balas .223 y recargarlas rápidamente en un" +" revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid "nail rifle magazine" msgid_plural "nail rifle magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de rifle de clavos" +msgstr[1] "cargadores de rifle de clavos" #. ~ Description for {'str': 'nail rifle magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71852,8 +72304,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ammo belt" msgid_plural "ammo belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinta cargadora" +msgstr[1] "cintas cargadoras" #. ~ Description for {'str': 'ammo belt'} #: lang/json/MAGAZINE_from_json.py @@ -71866,8 +72318,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "H&K G80 magazine" msgid_plural "H&K G80 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador H&K G80" +msgstr[1] "cargadores H&K G80" #. ~ Description for {'str': 'H&K G80 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71875,12 +72327,14 @@ msgid "" "A magazine for H&K G80 railgun which can hold up to 20 ferromagnetic " "projectiles." msgstr "" +"Es un cargador para el cañón de riel H&K G80 que puede contener hasta 20 " +"proyectiles ferromagnéticos." #: lang/json/MAGAZINE_from_json.py msgid "RMSA10 20x66mm compact magazine" msgid_plural "RMSA10 20x66mm compact magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador compacto RMSA10 20x66mm" +msgstr[1] "cargadores compactos RMSA10 20x66mm" #. ~ Description for {'str': 'RMSA10 20x66mm compact magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71894,8 +72348,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMSB20 20x66mm magazine" msgid_plural "RMSB20 20x66mm magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador RMSB20 20x66mm" +msgstr[1] "cargadores RMSB20 20x66mm" #. ~ Description for {'str': 'RMSB20 20x66mm magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71907,8 +72361,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMSB40 20x66mm extended magazine" msgid_plural "RMSB40 20x66mm extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido RMSB40 20x66mm" +msgstr[1] "cargadores extendidos RMSB40 20x66mm" #. ~ Description for {'str': 'RMSB40 20x66mm extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71920,8 +72374,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid ".22 8-round speedloader" msgid_plural ".22 8-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad .22-8" +msgstr[1] "cargadores de velocidad .22-8" #. ~ Description for {'str': '.22 8-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -71929,12 +72383,14 @@ msgid "" "This speedloader can hold 8 rounds of .22 and quickly reload a compatible " "revolver." msgstr "" +"Este cargador de velocidad permite contener 8 balas .22 y recargarlas " +"rápidamente en un revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid "A-180 magazine" msgid_plural "A-180 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador A-180" +msgstr[1] "cargadores A-180" #. ~ Description for {'str': 'A-180 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71944,8 +72400,8 @@ msgstr "Es un cargador de disco de una forma inusual, para el American-180." #: lang/json/MAGAZINE_from_json.py msgid ".22 19-round tube loader" msgid_plural ".22 19-round tube loaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tubo de 19 balas .22" +msgstr[1] "cargadores de tubo de 19 balas .22" #. ~ Description for {'str': '.22 19-round tube loader'} #: lang/json/MAGAZINE_from_json.py @@ -71953,12 +72409,14 @@ msgid "" "This is a tube which holds 19 rounds of .22, designed for quick reloading of" " a compatible rifle with tubular magazine." msgstr "" +"Es un tubo que contiene 19 balas .22, diseñado para cargar rápidamente en un" +" rifle compatible con cargadores tubulares." #: lang/json/MAGAZINE_from_json.py msgid "SIG Mosquito magazine" msgid_plural "SIG Mosquito magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de SIG Mosquito" +msgstr[1] "cargadores de SIG Mosquito" #. ~ Description for {'str': 'SIG Mosquito magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71970,8 +72428,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Ruger BX-25 magazine" msgid_plural "Ruger BX-25 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Ruger BX-25" +msgstr[1] "cargadores Ruger BX-25" #. ~ Description for {'str': 'Ruger BX-25 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71981,8 +72439,8 @@ msgstr "Es un cargador recto extendido de 25 balas para la Ruger BX-25." #: lang/json/MAGAZINE_from_json.py msgid "Ruger 10/22 rotary magazine" msgid_plural "Ruger 10/22 rotary magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador rotativo Ruger 10/22" +msgstr[1] "cargadores rotativos Ruger 10/22" #. ~ Description for {'str': 'Ruger 10/22 rotary magazine'} #: lang/json/MAGAZINE_from_json.py @@ -71996,8 +72454,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "S&W 22A magazine" msgid_plural "S&W 22A magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador S&W 22A" +msgstr[1] "cargadores S&W 22A" #. ~ Description for {'str': 'S&W 22A magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72007,36 +72465,37 @@ 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" msgid_plural "Jennings J-22 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Jennings J-22" +msgstr[1] "cargadores Jennings J-22" #. ~ Description for {'str': 'Jennings J-22 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A cheap 6-round steel box magazine for the Jennings J-22." msgstr "" +"Es un cargador de caja berreta de acero de 6 balas para el Jennings J-22." #: lang/json/MAGAZINE_from_json.py msgid "Walther P22 magazine" msgid_plural "Walther P22 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Walther P22" +msgstr[1] "cargadores Walther P22" #. ~ Description for {'str': 'Walther P22 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 10-round box magazine for the Walther P22." -msgstr "" +msgstr "Es un cargador de caja de 10 balas para el Walther P22." #: lang/json/MAGAZINE_from_json.py msgid "5.56x45mm ammo belt" msgid_plural "5.56x45mm ammo belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinta cargadora 5.56x45mm" +msgstr[1] "cintas cargadoras 5.56x45mm" #: lang/json/MAGAZINE_from_json.py msgid "MAS 223 magazine" msgid_plural "MAS 223 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador MAS 223" +msgstr[1] "cargadores MAS 223" #. ~ Description for {'str': 'MAS 223 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72044,114 +72503,130 @@ msgid "" "A 25-round magazine for the MAS 223. It resembles a STANAG magazine but is " "not compatible nor interchangeable." msgstr "" +"Es un cargador de 25 balas para el MAS 223. Se parece al cargador STANAG " +"pero no es compatible ni intercambiable." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 5-round magazine" msgid_plural "Ruger .223 5-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 5 balas .Ruger 223" +msgstr[1] "cargadores de 5 balas .Ruger 223" #. ~ Description for {'str': 'Ruger .223 5-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A compact 5-round box magazine used with the Ruger Mini-14 rifle." msgstr "" +"Es un cargador compacto de caja de 5 balas usado en el rifle Ruger Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 10-round magazine" msgid_plural "STANAG 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas STANAG" +msgstr[1] "cargadores de 10 balas STANAG" #. ~ Description for {'str': 'STANAG 10-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A compact 10-round box magazine for use with STANAG compatible rifles." msgstr "" +"Es un cargador compacto de caja de 10 balas usado en rifles compatibles con " +"STANAG." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 10-round magazine" msgid_plural "Ruger .223 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas .Ruger 223" +msgstr[1] "cargadores de 10 balas .Ruger 223" #. ~ Description for {'str': 'Ruger .223 10-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A compact 10-round box magazine used with the Ruger Mini-14 rifle." msgstr "" +"Es un cargador compacto de caja de 10 balas usado en el rifle Ruger Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 20-round magazine" msgid_plural "Ruger .223 20-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 20 balas .Ruger 223" +msgstr[1] "cargadores de 20 balas .Ruger 223" #. ~ Description for {'str': 'Ruger .223 20-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 20-round box magazine used with the Ruger Mini-14 rifle." -msgstr "" +msgstr "Es un cargador de caja de 20 balas usado en el rifle Ruger Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 30-round magazine" msgid_plural "Ruger .223 30-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 30 balas .Ruger 223" +msgstr[1] "cargadores de 30 balas .Ruger 223" #. ~ Description for {'str': 'Ruger .223 30-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A high-capacity box magazine for use with the Ruger Mini-14 rifle." msgstr "" +"Es un cargador de caja de gran capacidad para usar en el rifle Ruger " +"Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 90-round snail drum magazine" msgid_plural "Ruger .223 90-round snail drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador caracol de 90 balas .Ruger 223" +msgstr[1] "cargadores caracol de 90 balas .Ruger 223" #. ~ Description for {'str': 'Ruger .223 90-round snail drum magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A bulky 90-round snail drum magazine for use with the Ruger Mini-14 rifle." msgstr "" +"Es un cargador caracol voluminoso de 90 balas para usar en el rifle Ruger " +"Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 100-round double drum magazine" msgid_plural "Ruger .223 100-round double drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de doble tambor de 100 balas .Ruger 223" +msgstr[1] "cargadores de doble tambor de 100 balas .Ruger 223" #. ~ Description for {'str': 'Ruger .223 100-round double drum magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A bulky 100-round double drum magazine for use with the Ruger Mini-14 rifle." msgstr "" +"Es un voluminoso cargador doble tambor de 100 balas para usar en el rifle " +"Ruger Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 5-round magazine" msgid_plural "STANAG 5-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 5 balas STANAG" +msgstr[1] "cargadores de 5 balas STANAG" #. ~ Description for {'str': 'STANAG 5-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A very compact 5-round box magazine for use with STANAG compatible rifles." msgstr "" +"Es un cargador muy compacto de caja de 5 balas para usar en rifles " +"compatibles con STANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 20-round magazine" msgid_plural "STANAG 20-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 20 balas STANAG" +msgstr[1] "cargadores de 20 balas STANAG" #. ~ Description for {'str': 'STANAG 20-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A compact 20-round box magazine for use with STANAG compatible rifles." msgstr "" +"Es un cargador compacto de caja de 20 balas para usar en rifles compatibles " +"con STANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 30-round magazine" msgid_plural "STANAG 30-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 30 balas STANAG" +msgstr[1] "cargadores de 30 balas STANAG" #. ~ Description for {'str': 'STANAG 30-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72159,12 +72634,14 @@ msgid "" "A standard capacity 30-round box magazine for use with STANAG compatible " "rifles." msgstr "" +"Es un cargador de caja de capacidad estándar de 30 balas para usar en los " +"rifles compatibles con STANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 40-round magazine" msgid_plural "STANAG 40-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 40 balas STANAG" +msgstr[1] "cargadores de 40 balas STANAG" #. ~ Description for {'str': 'STANAG 40-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72172,12 +72649,14 @@ msgid "" "An increased-capacity 40-round box magazine for use with STANAG compatible " "rifles." msgstr "" +"Es un cargador de caja de gran capacidad de 40 balas para usar en los rifles" +" compatibles con STANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 50-round drum magazine" msgid_plural "STANAG 50-round drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor de 50 balas STANAG" +msgstr[1] "cargadores de tambor de 50 balas STANAG" #. ~ Description for {'str': 'STANAG 50-round drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72185,12 +72664,14 @@ msgid "" "A bulky 50-round drum magazine for use with STANAG compatible rifles, known " "as the X-15." msgstr "" +"Es un voluminoso cargador de caja de 50 balas para usar en rifles " +"compatibles con STANAG, conocido como el X-15." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 60-round magazine" msgid_plural "STANAG 60-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 60 balas STANAG" +msgstr[1] "cargadores de 60 balas STANAG" #. ~ Description for {'str': 'STANAG 60-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72198,12 +72679,14 @@ msgid "" "A high-capacity 60-round casket magazine for use with STANAG compatible " "rifles." msgstr "" +"Es un cargador de gran capacidad de 60 balas para usar en rifles compatibles" +" con STANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 60-round drum magazine" msgid_plural "STANAG 60-round drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor de 60 balas STANAG" +msgstr[1] "cargadores de tambor de 60 balas STANAG" #. ~ Description for {'str': 'STANAG 60-round drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72211,24 +72694,28 @@ msgid "" "A bulky 60-round drum magazine for use with STANAG compatible rifles, known " "as the D-60." msgstr "" +"Es un voluminoso cargador de caja de 60 balas para usar en rifles " +"compatibles con STANAG, conocido como el D-60." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 90-round snail drum magazine" msgid_plural "STANAG 90-round snail drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador caracol de 90 balas STANAG" +msgstr[1] "cargadores caracol de 90 balas STANAG" #. ~ Description for {'str': 'STANAG 90-round snail drum magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A bulky 90-round snail drum magazine for use with STANAG compatible rifles." msgstr "" +"Es un voluminoso cargador caracol de 90 balas para usar en rifles " +"compatibles con STANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 100-round magazine" msgid_plural "STANAG 100-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 100 balas STANAG" +msgstr[1] "cargadores de 100 balas STANAG" #. ~ Description for {'str': 'STANAG 100-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72236,12 +72723,14 @@ msgid "" "A high-capacity 100-round casket magazine for use with STANAG compatible " "rifles." msgstr "" +"Es un cargador de gran capacidad de 100 balas para usar en rifles " +"compatibles con STANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 100-round double drum magazine" msgid_plural "STANAG 100-round double drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de doble tambor de 100 balas STANAG" +msgstr[1] "cargadores de doble tambor de 100 balas STANAG" #. ~ Description for {'str': 'STANAG 100-round double drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72249,12 +72738,14 @@ msgid "" "A bulky 100-round double drum magazine for use with STANAG compatible " "rifles, known as the Beta-C Mag." msgstr "" +"Es un voluminoso cargador de doble tambor de 100 balas para usar en rifles " +"compatibles con STANAG, conocido como el Beta-C Mag." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 150-round double drum magazine" msgid_plural "STANAG 150-round double drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de doble tambor de 150 balas STANAG" +msgstr[1] "cargadores de doble tambor de 150 balas STANAG" #. ~ Description for {'str': 'STANAG 150-round double drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72262,47 +72753,55 @@ msgid "" "A bulky 150-round double drum magazine for use with STANAG compatible " "rifles, known as the SAW-MAG." msgstr "" +"Es un voluminoso cargador de doble tambor de 150 balas para usar en rifles " +"compatibles con STANAG, conocido como el SAW-MAG." #: lang/json/MAGAZINE_from_json.py msgid "G36 30-round magazine" msgid_plural "G36 30-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 30 balas G36" +msgstr[1] "cargadores de 30 balas G36" #. ~ Description for {'str': 'G36 30-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A standard capacity box magazine for use with the G36 assault rifle." msgstr "" +"Es un cargador de caja de capacidad estándar para usar en el rifle de asalto" +" G36." #: lang/json/MAGAZINE_from_json.py msgid "G36 100-round double drum magazine" msgid_plural "G36 100-round double drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de doble tambor de 100 balas G36" +msgstr[1] "cargadores de doble tambor de 100 balas G36" #. ~ Description for {'str': 'G36 100-round double drum magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A bulky 100-round double drum magazine for use with the G36 assault rifle." msgstr "" +"Es un voluminoso cargador doble tambor de 100 balas para usar en el rifle de" +" asalto G36." #: lang/json/MAGAZINE_from_json.py msgid "AUG 10-round magazine" msgid_plural "AUG 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas AUG" +msgstr[1] "cargadores de 10 balas AUG" #. ~ Description for {'str': 'AUG 10-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A compact 10-round box magazine for use with the Steyr AUG assault rifle." msgstr "" +"Es un cargador compacto de caja de 10 balas para usar en el rifle de asalto " +"Steyr AUG." #: lang/json/MAGAZINE_from_json.py msgid "AUG 30-round magazine" msgid_plural "AUG 30-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 30 balas AUG" +msgstr[1] "cargadores de 30 balas AUG" #. ~ Description for {'str': 'AUG 30-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72310,12 +72809,14 @@ msgid "" "A standard capacity 30-round box magazine for use with the Steyr AUG assault" " rifle." msgstr "" +"Es un cargador de caja estándar de 30 balas para usar en el rifle de asalto " +"Steyr AUG." #: lang/json/MAGAZINE_from_json.py msgid "AUG 42-round magazine" msgid_plural "AUG 42-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 42 balas AUG" +msgstr[1] "cargadores de 42 balas AUG" #. ~ Description for {'str': 'AUG 42-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72323,12 +72824,14 @@ msgid "" "An increased-capacity 42-round box magazine for use with the Steyr AUG " "assault rifle." msgstr "" +"Es un cargador de caja de capacidad aumentada de 42 balas para usar en el " +"rifle de asalto Steyr AUG." #: lang/json/MAGAZINE_from_json.py msgid "AUG 100-round double drum magazine" msgid_plural "AUG 100-round double drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de doble tambor de 100 balas AUG" +msgstr[1] "cargadores de doble tambor de 100 balas AUG" #. ~ Description for {'str': 'AUG 100-round double drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72336,12 +72839,14 @@ msgid "" "A bulky 100-round double drum magazine for use with the Steyr AUG assault " "rifle." msgstr "" +"Es un voluminoso cargador doble tambor de 100 balas para usar en el rifle de" +" asalto Steyr AUG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG makeshift magazine" msgid_plural "STANAG makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado STANAG" +msgstr[1] "cargadores improvisados STANAG" #. ~ Description for {'str': 'STANAG makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72350,12 +72855,15 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with STANAG compatible rifles." msgstr "" +"Es un cargador de caja improvisado de simple fila para 5 balas, que consiste" +" en poco más que una lámina de acero doblada unida con cinta adhesiva y " +"mucha esperanza, para usar en los rifles compatibles STANAG." #: lang/json/MAGAZINE_from_json.py msgid "Ruger makeshift magazine" msgid_plural "Ruger makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado Ruger" +msgstr[1] "cargadores improvisados Ruger" #. ~ Description for {'str': 'Ruger makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72364,12 +72872,15 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with the Ruger Mini-14 rifle." msgstr "" +"Es un cargador de caja improvisado de simple fila para 5 balas, que consiste" +" en poco más que una lámina de acero doblada unida con cinta adhesiva y " +"mucha esperanza, para usar en el rifle Ruger Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "M2010 ESR magazine" msgid_plural "M2010 ESR magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador M2010 ESR" +msgstr[1] "cargadores M2010 ESR" #. ~ Description for {'str': 'M2010 ESR magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72381,8 +72892,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid ".30-06 clip" msgid_plural ".30-06 clips" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "peine .30-06" +msgstr[1] "peines .30-06" #. ~ Description for {'str': '.30-06 clip'} #. ~ Description for {'str': '7.62x39mm clip'} @@ -72398,8 +72909,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Browning BLR magazine" msgid_plural "Browning BLR magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Browning BLR" +msgstr[1] "cargadores Browning BLR" #. ~ Description for {'str': 'Browning BLR magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72409,8 +72920,8 @@ msgstr "Es un cargador compacto de tambor de 4 balas para el Browning BLR." #: lang/json/MAGAZINE_from_json.py msgid "M1 Garand clip" msgid_plural "M1 Garand clips" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "peine M1 Garand" +msgstr[1] "peines M1 Garand" #. ~ Description for {'str': 'M1 Garand clip'} #: lang/json/MAGAZINE_from_json.py @@ -72424,8 +72935,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "BAR extended magazine" msgid_plural "BAR extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido BAR" +msgstr[1] "cargadores extendidos BAR" #. ~ Description for {'str': 'BAR extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72439,8 +72950,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "BAR magazine" msgid_plural "BAR magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador BAR" +msgstr[1] "cargadores BAR" #. ~ Description for {'str': 'BAR magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72454,14 +72965,14 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "7.62x51mm ammo belt" msgid_plural "7.62x51mm ammo belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinta cargadora 7.62x51mm" +msgstr[1] "cintas cargadoras 7.62x51mm" #: lang/json/MAGAZINE_from_json.py msgid "FN FAL extended magazine" msgid_plural "FN FAL extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido FN FAL" +msgstr[1] "cargadores extendidos FN FAL" #. ~ Description for {'str': 'FN FAL extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72472,8 +72983,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "FN FAL magazine" msgid_plural "FN FAL magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador FN FAL" +msgstr[1] "cargadores FN FAL" #. ~ Description for {'str': 'FN FAL magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72483,8 +72994,8 @@ msgstr "Es un cargador militar de caja de 20 balas para el rifle FN FAL." #: lang/json/MAGAZINE_from_json.py msgid "FN FAL makeshift magazine" msgid_plural "FN FAL makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado FN FAL" +msgstr[1] "cargadores improvisados FN FAL" #. ~ Description for {'str': 'FN FAL makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72493,23 +73004,26 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with FN FAL rifle." msgstr "" +"Es un cargador de caja improvisado de simple fila para 5 balas, que consiste" +" en poco más que una lámina de acero doblada unida con cinta adhesiva y " +"mucha esperanza, para usar en el rifle FN FAL." #: lang/json/MAGAZINE_from_json.py msgid "H&K G3 drum magazine" msgid_plural "H&K G3 drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor H&K G3" +msgstr[1] "cargadores de tambor H&K G3" #. ~ Description for {'str': 'H&K G3 drum magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 50-round drum magazine for the H&K G3 rifle." -msgstr "" +msgstr "Es un cargador de caja de 50 balas para el rifle H&K G3." #: lang/json/MAGAZINE_from_json.py msgid "H&K G3 magazine" msgid_plural "H&K G3 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador H&K G3" +msgstr[1] "cargadores H&K G3" #. ~ Description for {'str': 'H&K G3 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72519,8 +73033,8 @@ msgstr "Es un cargador de caja liviano de aluminio para el rifle H&K G3." #: lang/json/MAGAZINE_from_json.py msgid "H&K G3 makeshift magazine" msgid_plural "H&K G3 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado H&K G3" +msgstr[1] "cargadores improvisados H&K G3" #. ~ Description for {'str': 'H&K G3 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72529,12 +73043,15 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with G3 rifle." msgstr "" +"Es un cargador de caja improvisado de simple fila para 5 balas, que consiste" +" en poco más que una lámina de acero doblada unida con cinta adhesiva y " +"mucha esperanza, para usar en el rifle G3." #: lang/json/MAGAZINE_from_json.py msgid "M14 magazine" msgid_plural "M14 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador M14" +msgstr[1] "cargadores M14" #. ~ Description for {'str': 'M14 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72548,8 +73065,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M14 compact magazine" msgid_plural "M14 compact magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador compacto M14" +msgstr[1] "cargadores compactos M14" #. ~ Description for {'str': 'M14 compact magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72558,12 +73075,15 @@ msgid "" " rifles. Although it has a low capacity it is easy to store and quick to " "reload." msgstr "" +"Es un cargador compacto genérico de caja de acero de 5 balas, compatible con" +" los modelos de rifle M14. Aunque tiene poca capacidad, es fácil de guardar " +"y rápido para cargar." #: lang/json/MAGAZINE_from_json.py msgid "M14 makeshift magazine" msgid_plural "M14 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado M14" +msgstr[1] "cargadores improvisados M14" #. ~ Description for {'str': 'M14 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72572,23 +73092,26 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with M14 rifle." msgstr "" +"Es un cargador de caja improvisado de simple fila para 5 balas, que consiste" +" en poco más que una lámina de acero doblada unida con cinta adhesiva y " +"mucha esperanza, para usar en el rifle M14." #: lang/json/MAGAZINE_from_json.py msgid "FN SCAR-H drum magazine" msgid_plural "FN SCAR-H drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor FN SCAR-H" +msgstr[1] "cargadores de tambor FN SCAR-H" #. ~ Description for {'str': 'FN SCAR-H drum magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 50-round drum magazine for the FN SCAR-H rifle." -msgstr "" +msgstr "Es un cargador de tambor de 50 balas para le rifle FN SCAR-H." #: lang/json/MAGAZINE_from_json.py msgid "FN SCAR-H 30-round magazine" msgid_plural "FN SCAR-H 30-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 30 balas FN SCAR-H" +msgstr[1] "cargadores de 30 balas FN SCAR-H" #. ~ Description for {'str': 'FN SCAR-H 30-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72596,12 +73119,14 @@ msgid "" "A 30-round steel box magazine for the FN SCAR-H rifle. This one actually " "seems to be a modified FN FAL magazine." msgstr "" +"Es un cargador de caja de acero de 30 balas para el rifle FN SCAR-H. Parece " +"ser en realidad un cargador de FN FAL modificado." #: lang/json/MAGAZINE_from_json.py msgid "FN SCAR-H magazine" msgid_plural "FN SCAR-H magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador FN SCAR-H" +msgstr[1] "cargadores FN SCAR-H" #. ~ Description for {'str': 'FN SCAR-H magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72612,8 +73137,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "FN SCAR-H makeshift magazine" msgid_plural "FN SCAR-H makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado FN SCAR-H" +msgstr[1] "cargadores improvisados FN SCAR-H" #. ~ Description for {'str': 'FN SCAR-H makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72622,34 +73147,39 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with FN SCAR-H rifle." msgstr "" +"Es un cargador de caja improvisado de simple fila para 5 balas, que consiste" +" en poco más que una lámina de acero doblada unida con cinta adhesiva y " +"mucha esperanza, para usar en el rifle FN SCAR-H." #: lang/json/MAGAZINE_from_json.py msgid "HK417 magazine" msgid_plural "HK417 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador HK417" +msgstr[1] "cargadores HK417" #. ~ Description for {'str': 'HK417 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 20 round double stack box magazine for the HK417 rifle." msgstr "" +"Es un cargador de caja de doble fila de 20 balas, para el rifle HK417." #: lang/json/MAGAZINE_from_json.py msgid "HK417 compact magazine" msgid_plural "HK417 compact magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador compacto HK417" +msgstr[1] "cargadores compactos HK417" #. ~ Description for {'str': 'HK417 compact magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 10 round double stack box magazine for the HK417 rifle." msgstr "" +"Es un cargador de caja de doble fila de 10 balas, para el rifle HK417." #: lang/json/MAGAZINE_from_json.py msgid "HK417 makeshift magazine" msgid_plural "HK417 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado HK417" +msgstr[1] "cargadores improvisados HK417" #. ~ Description for {'str': 'HK417 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72658,23 +73188,27 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with HK417 rifle." msgstr "" +"Es un cargador de caja improvisado de simple fila para 5 balas, que consiste" +" en poco más que una lámina de acero doblada unida con cinta adhesiva y " +"mucha esperanza, para usar en el rifle HK417." #: lang/json/MAGAZINE_from_json.py msgid "AR-10 magazine" msgid_plural "AR-10 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador AR-10" +msgstr[1] "cargadores AR-10" #. ~ Description for {'str': 'AR-10 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 20 round double stack box magazine for the AR-10 rifle." msgstr "" +"Es un cargador de caja de doble fila de 20 balas, para el rifle AR-10." #: lang/json/MAGAZINE_from_json.py msgid "AR-10 makeshift magazine" msgid_plural "AR-10 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado AR-10" +msgstr[1] "cargadores improvisados AR-10" #. ~ Description for {'str': 'AR-10 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72683,12 +73217,15 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with AR-10 rifle." msgstr "" +"Es un cargador de caja improvisado de simple fila para 5 balas, que consiste" +" en poco más que una lámina de acero doblada unida con cinta adhesiva y " +"mucha esperanza, para usar en el rifle AR-10." #: lang/json/MAGAZINE_from_json.py msgid "Walther PPK magazine" msgid_plural "Walther PPK magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Walther PPK" +msgstr[1] "cargadores Walther PPK" #. ~ Description for {'str': 'Walther PPK magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72699,8 +73236,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "SIG P230 magazine" msgid_plural "SIG P230 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador SIG P230" +msgstr[1] "cargadores SIG P230" #. ~ Description for {'str': 'SIG P230 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72712,8 +73249,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Skorpion Vz. 61 magazine" msgid_plural "Skorpion Vz. 61 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Skorpion Vz. 61" +msgstr[1] "cargadores Skorpion Vz. 61" #. ~ Description for {'str': 'Skorpion Vz. 61 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72724,19 +73261,20 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Kel-Tec P32 magazine" msgid_plural "Kel-Tec P32 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Kel-Tec P32" +msgstr[1] "cargadores Kel-Tec P32" #. ~ Description for {'str': 'Kel-Tec P32 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A standard 7-round steel box magazine for the Kel-Tec P32." msgstr "" +"Es un cargador de caja de acero estándar de 7 balas para el Kel-Tec P32." #: lang/json/MAGAZINE_from_json.py msgid "P226 .357 SIG magazine" msgid_plural "P226 .357 SIG magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador P226 .357 SIG" +msgstr[1] "cargadores P226 .357 SIG" #. ~ Description for {'str': 'P226 .357 SIG magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72744,23 +73282,26 @@ msgid "" "A 12 round double stack box magazine for a SIG P226 chambered for .357 SIG " "rounds." msgstr "" +"Es un cargador de caja de doble fila con 12 balas para el SIG P226 con " +"calibre .357 SIG." #: lang/json/MAGAZINE_from_json.py msgid "P320 .357 SIG magazine" msgid_plural "P320 .357 SIG magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador P320 .357 SIG" +msgstr[1] "cargadores P320 .357 SIG" #. ~ Description for {'str': 'P320 .357 SIG magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 13 round double stack box magazine for the SIG Sauer P320." msgstr "" +"Es un cargador de caja de doble fila de 13 balas, para el SIG Sauer P320." #: lang/json/MAGAZINE_from_json.py msgid ".38/.357 7-round speedloader" msgid_plural ".38/.357 7-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 7 balas .38/.357" +msgstr[1] "cargadores de velocidad de 7 balas .38/.357" #. ~ Description for {'str': '.38/.357 7-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -72768,12 +73309,14 @@ msgid "" "This speedloader can hold 7 rounds of .357 Magnum or .38 Special and quickly" " reload a compatible revolver." msgstr "" +"Este cargador de velocidad permite contener 7 balas .357 Magnum o .38 " +"Special y recargarlas rápidamente en un revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid ".38/.357 5-round speedloader" msgid_plural ".38/.357 5-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 5 balas .38/.357" +msgstr[1] "cargadores de velocidad de 5 balas .38/.357" #. ~ Description for {'str': '.38/.357 5-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -72781,12 +73324,14 @@ msgid "" "This speedloader can hold 5 rounds of .357 Magnum or .38 Special and quickly" " reload a compatible revolver." msgstr "" +"Este cargador de velocidad permite contener 5 balas .357 Magnum o .38 " +"Special y recargarlas rápidamente en un revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid ".38/.357 6-round speedloader" msgid_plural ".38/.357 6-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 6 balas .38/.357" +msgstr[1] "cargadores de velocidad de 6 balas .38/.357" #. ~ Description for {'str': '.38/.357 6-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -72794,91 +73339,103 @@ msgid "" "This speedloader can hold 6 rounds of .357 Magnum or .38 Special and quickly" " reload a compatible revolver." msgstr "" +"Este cargador de velocidad permite contener 6 balas .357 Magnum o .38 " +"Special y recargarlas rápidamente en un revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid "Kel-Tec P3AT magazine" msgid_plural "Kel-Tec P3AT magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Kel-Tec P3AT" +msgstr[1] "cargadores Kel-Tec P3AT" #. ~ Description for {'str': 'Kel-Tec P3AT magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A standard 6-round steel box magazine for the Kel-Tec P3AT." msgstr "" +"Es un cargador de caja de acero estándar de 6 balas para el Kel-Tec P3AT." #: lang/json/MAGAZINE_from_json.py msgid "FN 1910 magazine" msgid_plural "FN 1910 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador FN 1910" +msgstr[1] "cargadores FN 1910" #. ~ Description for {'str': '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 "" +"Es un cargador de caja de acero estándar de 6 balas para el FN 1910. Parece " +"un poco viejo." #: lang/json/MAGAZINE_from_json.py msgid "Ruger LCP magazine" msgid_plural "Ruger LCP magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Ruger LCP" +msgstr[1] "cargadores Ruger LCP" #. ~ Description for {'str': 'Ruger LCP magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A standard 6-round capacity magazine for the Ruger LCP pistol." msgstr "" +"Es un cargador de capacidad estándar de 6 balas para la pistola Ruger LCP." #: lang/json/MAGAZINE_from_json.py msgid "MAC-11 magazine" msgid_plural "MAC-11 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador MAC-11" +msgstr[1] "cargadores MAC-11" #. ~ Description for {'str': '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 "" +"Es un cargador de caja berreta de acero de 32 balas para usar en el subfusil" +" MAC-11." #: lang/json/MAGAZINE_from_json.py msgid "CF-380 8-round magazine" msgid_plural "CF-380 8-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 8 balas CF-380" +msgstr[1] "cargadores de 8 balas CF-380" #. ~ Description for {'str': 'CF-380 8-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "An 8-round steel box magazine for use with the Hi-Point CF-380." msgstr "" +"Es un cargador de caja de acero de 8 balas para usar en el Hi-Point CF-380." #: lang/json/MAGAZINE_from_json.py msgid "CF-380 10-round magazine" msgid_plural "CF-380 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas CF-380" +msgstr[1] "cargadores de 10 balas CF-380" #. ~ Description for {'str': 'CF-380 10-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 10-round steel box magazine for use with the Hi-Point CF-380." msgstr "" +"Es un cargador de caja de acero de 10 balas para usar en el Hi-Point CF-380." #: lang/json/MAGAZINE_from_json.py msgid "Taurus Spectrum magazine" msgid_plural "Taurus Spectrum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Taurus Spectrum" +msgstr[1] "cargadores Taurus Spectrum" #. ~ Description for {'str': 'Taurus Spectrum magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A compact, 6-round steel box magazine for use with the Taurus Spectrum." msgstr "" +"Es un cargador compacto de caja de acero de 6 balas para usar en el Taurus " +"Spectrum." #: lang/json/MAGAZINE_from_json.py msgid "AF2011A1 magazine" msgid_plural "AF2011A1 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador AF2011A1" +msgstr[1] "cargadores AF2011A1" #. ~ Description for {'str': 'AF2011A1 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72886,23 +73443,25 @@ msgid "" "Two .38 Super 8-round box magazines attached to a single base plate, holding" " up to 16 rounds in total, used by AF2011A1 double-barrel pistol." msgstr "" +"Son dos cargadores de caja de 8 balas .38 Super unidos a una placa, dando un" +" total de 16 balas, para usar en la pistola de doble cañón AF2011A1." #: lang/json/MAGAZINE_from_json.py msgid "M1911 .38 Super magazine" msgid_plural "M1911 .38 Super magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador M1911 .38 Super" +msgstr[1] "cargadores M1911 .38 Super" #. ~ Description for {'str': 'M1911 .38 Super magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A compact single stack box magazine for the M1911." -msgstr "" +msgstr "Es un cargador compacto de jaca para el M1911." #: lang/json/MAGAZINE_from_json.py msgid ".40 6-round speedloader" msgid_plural ".40 6-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 6 balas .40" +msgstr[1] "cargadores de velocidad de 6 balas .40" #. ~ Description for {'str': '.40 6-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -72910,12 +73469,14 @@ msgid "" "This speedloader can hold 6 rounds of .40 S&W or 10mm Auto and quickly " "reload a compatible revolver." msgstr "" +"Este cargador de velocidad permite contener 6 balas .40 S&W o 10mm Auto y " +"recargarlas rápidamente en un revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid "90two .40 S&W magazine" msgid_plural "90two .40 S&W magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador 90two .40 S&W" +msgstr[1] "cargadores 90two .40 S&W" #. ~ Description for {'str': '90two .40 S&W magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72923,12 +73484,14 @@ msgid "" "A magazine for the 92 and 96 series of Beretta handguns, this one is for .40" " S&W and can hold 12 rounds." msgstr "" +"Es un cargador para las series 92 y 96 de las pistolas Beretta. Este puede " +"contener 12 balas .40S&W." #: lang/json/MAGAZINE_from_json.py msgid "Glock 22 extended magazine" msgid_plural "Glock 22 extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido Glock 22" +msgstr[1] "cargadores extendidos Glock 22" #. ~ Description for {'str': 'Glock 22 extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72936,12 +73499,14 @@ msgid "" "An extended 22-round magazine for use with Glock pistols chambered for .40 " "S&W or .357 SIG." msgstr "" +"Es un cargador extendido de 22 balas para pistolas Glock con calibre .40 S&W" +" o .357 SIG." #: lang/json/MAGAZINE_from_json.py msgid "Glock 22 magazine" msgid_plural "Glock 22 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Glock 22" +msgstr[1] "cargadores Glock 22" #. ~ Description for {'str': 'Glock 22 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72949,24 +73514,28 @@ msgid "" "A compact light-weight polymer magazine for use with Glock pistols chambered" " for .40 S&W or .357 SIG." msgstr "" +"Es un cargador liviano de polímero para pistolas Glock con calibre .40 S&W o" +" .357 SIG." #: lang/json/MAGAZINE_from_json.py msgid "Px4 .40 magazine" msgid_plural "Px4 .40 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Px4 .40" +msgstr[1] "cargadores Px4 .40" #. ~ Description for {'str': 'Px4 .40 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A magazine for the Px4 Storm chambered for .40 S&W. It holds 14 rounds." msgstr "" +"Es un cargador para el Px4 Storm con calibre .40 S&W. Puede contener hasta " +"14 balas." #: lang/json/MAGAZINE_from_json.py msgid "SIG Pro .40 magazine" msgid_plural "SIG Pro .40 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador SIG Pro .40" +msgstr[1] "cargadores SIG Pro .40" #. ~ Description for {'str': 'SIG Pro .40 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72977,8 +73546,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "makeshift .40 20-round magazine" msgid_plural "makeshift .40 20-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado de 20 balas .40" +msgstr[1] "cargadores improvisados de 20 balas .40" #. ~ Description for {'str': 'makeshift .40 20-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -72987,67 +73556,77 @@ msgid "" "submachinegun, with a simplified feed system. It looks like it might feed " "20 rounds of .40S&W." msgstr "" +"Es un cargador improvisado que es compatible con el subfusil casero 'Luty', " +"con un sistema de alimentación simplificado. Parece que puede contener hasta" +" 20 balas .40S&W." #: lang/json/MAGAZINE_from_json.py msgid "Hi-Power .40 S&W magazine" msgid_plural "Hi-Power .40 S&W magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Hi-Power .40 S&W" +msgstr[1] "cargadores Hi-Power .40 S&W" #. ~ Description for {'str': 'Hi-Power .40 S&W magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 10 round steel box magazine for the Browning Hi-Power .40 S&W." msgstr "" +"Es un cargador de caja de acero de 10 balas para el Browning Hi-Power .40 " +"S&W." #: lang/json/MAGAZINE_from_json.py msgid "PPQ .40 S&W 10-round magazine" msgid_plural "PPQ .40 S&W 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas PPQ .40 S&W" +msgstr[1] "cargadores de 10 balas PPQ .40 S&W" #. ~ Description for {'str': 'PPQ .40 S&W 10-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 10 round steel box magazine for the Walther PPQ .40 S&W." msgstr "" +"Es un cargador de caja de acero de 10 balas para el Walther PPQ .40 S&W." #: lang/json/MAGAZINE_from_json.py msgid "PPQ .40 S&W 12-round magazine" msgid_plural "PPQ .40 S&W 12-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 12 balas PPQ .40 S&W" +msgstr[1] "cargadores de 12 balas PPQ .40 S&W" #. ~ Description for {'str': 'PPQ .40 S&W 12-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 12 round steel box magazine for the Walther PPQ .40 S&W." msgstr "" +"Es un cargador de caja de acero de 12 balas para el Walther PPQ .40 S&W." #: lang/json/MAGAZINE_from_json.py msgid "PPQ .40 S&W 14-round magazine" msgid_plural "PPQ .40 S&W 14-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 14 balas PPQ .40 S&W" +msgstr[1] "cargadores de 14 balas PPQ .40 S&W" #. ~ Description for {'str': 'PPQ .40 S&W 14-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 14 round steel box magazine for the Walther PPQ .40 S&W." msgstr "" +"Es un cargador de caja de acero de 14 balas para el Walther PPQ .40 S&W." #: lang/json/MAGAZINE_from_json.py msgid "Model JCP magazine" msgid_plural "Model JCP magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Model JCP" +msgstr[1] "cargadores Model JCP" #. ~ Description for {'str': 'Model JCP magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 10-round steel box magazine for use with the Hi-Point Model JCP." msgstr "" +"Es un cargador de caja de acero de 10 balas para usar en el Hi-Point Model " +"JCP." #: lang/json/MAGAZINE_from_json.py msgid "grenade belt" msgid_plural "grenade belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinta de granada" +msgstr[1] "cintas de granada" #. ~ Description for {'str': 'grenade belt'} #: lang/json/MAGAZINE_from_json.py @@ -73063,8 +73642,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Saiga-410 box magazine" msgid_plural "Saiga-410 box magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de caja Saiga-410" +msgstr[1] "cargadores de caja Saiga-410" #. ~ Description for {'str': 'Saiga-410 box magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73072,12 +73651,14 @@ msgid "" "A removable plastic box magazine for the Saiga-410 shotgun. Holds 10 " "shells." msgstr "" +"Es un cargador de plástico extraíble para la escopeta Saiga-410. Contiene 10" +" cartuchos." #: lang/json/MAGAZINE_from_json.py msgid "Saiga-410 drum magazine" msgid_plural "Saiga-410 drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor Saiga-410" +msgstr[1] "cargadores de tambor Saiga-410" #. ~ Description for {'str': 'Saiga-410 drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73085,12 +73666,14 @@ msgid "" "A removable plastic drum magazine for the Saiga-410 shotgun. Holds 30 " "shells." msgstr "" +"Es un cargador de plástico de tambor extraíble para la escopeta Saiga-410. " +"Contiene 30 cartuchos." #: lang/json/MAGAZINE_from_json.py msgid ".44 6-round speedloader" msgid_plural ".44 6-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 6 balas .44" +msgstr[1] "cargadores de velocidad de 6 balas .44" #. ~ Description for {'str': '.44 6-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -73098,26 +73681,26 @@ msgid "" "This speedloader can hold 6 rounds of .44 and quickly reload a compatible " "revolver." msgstr "" +"Este cargador de velocidad permite contener 6 balas .44 y recargarlas " +"rápidamente en un revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid "Desert Eagle magazine" msgid_plural "Desert Eagle magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Desert Eagle" +msgstr[1] "cargadores Desert Eagle" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." msgstr "" -"Es un cargador de caja estándar de acero de 7 balas para usar en la IMI " -"Desert Eagle." #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 magazine" msgid_plural "MAC-10 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador MAC-10" +msgstr[1] "cargadores MAC-10" #. ~ Description for {'str': 'MAC-10 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73129,8 +73712,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 makeshift magazine" msgid_plural "MAC-10 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado MAC-10" +msgstr[1] "cargadores improvisados MAC-10" #. ~ Description for {'str': 'MAC-10 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73139,12 +73722,15 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with MAC-10 SMG." msgstr "" +"Es un cargador de caja improvisado de simple fila para 20 balas, que " +"consiste en poco más que una lámina de acero doblada unida con cinta " +"adhesiva y mucha esperanza, para usar en el subfusil MAC-10." #: lang/json/MAGAZINE_from_json.py msgid "TDI Vector magazine" msgid_plural "TDI Vector magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador TDI Vector" +msgstr[1] "cargadores TDI Vector" #. ~ Description for {'str': 'TDI Vector magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73155,8 +73741,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Thompson extended magazine" msgid_plural "Thompson extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido Thompson" +msgstr[1] "cargadores extendidos Thompson" #. ~ Description for {'str': 'Thompson extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73166,8 +73752,8 @@ msgstr "Es un cargador extendido de 30 balas para el subfusil Thompson." #: lang/json/MAGAZINE_from_json.py msgid "Thompson drum magazine" msgid_plural "Thompson drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor Thompson" +msgstr[1] "cargadores de tambor Thompson" #. ~ Description for {'str': 'Thompson drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73183,8 +73769,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Thompson magazine" msgid_plural "Thompson magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Thompson" +msgstr[1] "cargadores Thompson" #. ~ Description for {'str': 'Thompson magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73194,8 +73780,8 @@ msgstr "Es un cargador estándar de 20 balas para el subfusil Thompson." #: lang/json/MAGAZINE_from_json.py msgid "Thompson makeshift magazine" msgid_plural "Thompson makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado Thompson" +msgstr[1] "cargadores improvisados Thompson" #. ~ Description for {'str': 'Thompson makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73204,23 +73790,28 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with the Thompson SMG." msgstr "" +"Es un cargador de caja improvisado de simple fila para 20 balas, que " +"consiste en poco más que una lámina de acero doblada unida con cinta " +"adhesiva y mucha esperanza, para usar en el subfusil Thompson." #: lang/json/MAGAZINE_from_json.py msgid "UMP45 magazine" msgid_plural "UMP45 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador UMP45" +msgstr[1] "cargadores UMP45" #. ~ Description for {'str': 'UMP45 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A standard 25-round box magazine for use with the H&K UMP45 SMG." msgstr "" +"Es un cargador de caja estándar de 25 balas para usar en el subfusil H&K " +"UMP45." #: lang/json/MAGAZINE_from_json.py msgid "UMP45 makeshift magazine" msgid_plural "UMP45 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado UMP45" +msgstr[1] "cargadores improvisados UMP45" #. ~ Description for {'str': 'UMP45 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73229,12 +73820,15 @@ msgid "" "little more than a bent sheet of steel held together by duct tape and hope, " "for use with the UMP45 SMG." msgstr "" +"Es un cargador de caja improvisado de simple fila para 20 balas, que " +"consiste en poco más que una lámina de acero doblada unida con cinta " +"adhesiva y mucha esperanza, para usar en el subfusil UMP45." #: lang/json/MAGAZINE_from_json.py msgid "USP .45 magazine" msgid_plural "USP .45 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador USP .45" +msgstr[1] "cargadores USP .45" #. ~ Description for {'str': 'USP .45 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73246,30 +73840,33 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "PPQ .45 ACP magazine" msgid_plural "PPQ .45 ACP magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador PPQ .45 ACP" +msgstr[1] "cargadores PPQ .45 ACP" #. ~ Description for {'str': 'PPQ .45 ACP magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 12 round steel box magazine for the Walther PPQ .45 ACP." msgstr "" +"Es un cargador de caja de acero de 12 balas para el Walther PPQ .45 ACP." #: lang/json/MAGAZINE_from_json.py msgid "Model JHP magazine" msgid_plural "Model JHP magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Model JHP" +msgstr[1] "cargadores Model JHP" #. ~ Description for {'str': 'Model JHP magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 9-round steel box magazine for use with the Hi-Point Model JHP." msgstr "" +"Es un cargador de caja de acero de 9 balas para usar en el Hi-Point Model " +"JHP." #: lang/json/MAGAZINE_from_json.py msgid ".454 5-round speedloader" msgid_plural ".454 5-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 5 balas .454" +msgstr[1] "cargadores de velocidad de 5 balas .454" #. ~ Description for {'str': '.454 5-round speedloader'} #. ~ Description for {'str': '.454 6-round speedloader'} @@ -73278,18 +73875,20 @@ msgid "" "This speedloader can hold 5 rounds of .454, .45 Colt or .410 bore and " "quickly reload a compatible revolver." msgstr "" +"Este cargador de velocidad permite contener 5 balas .454, .45 Colt o .410 " +"bore y recargarlas rápidamente en un revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid ".454 6-round speedloader" msgid_plural ".454 6-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 6 balas .454" +msgstr[1] "cargadores de velocidad de 6 balas .454" #: lang/json/MAGAZINE_from_json.py msgid "H&K 4.6mm extended magazine" msgid_plural "H&K 4.6mm extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido H&K 4.6mm" +msgstr[1] "cargadores extendidos H&K 4.6mm" #. ~ Description for {'str': 'H&K 4.6mm extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73302,8 +73901,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "H&K 4.6mm magazine" msgid_plural "H&K 4.6mm magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador H&K 4.6mm" +msgstr[1] "cargadores H&K 4.6mm" #. ~ Description for {'str': 'H&K 4.6mm magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73317,8 +73916,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M1911 extended magazine" msgid_plural "M1911 extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido M1911" +msgstr[1] "cargadores extendidos M1911" #. ~ Description for {'str': 'M1911 extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73328,8 +73927,8 @@ msgstr "Es un cargador extendido de 10 balas para usar en la pistola M1911." #: lang/json/MAGAZINE_from_json.py msgid "M1911 magazine" msgid_plural "M1911 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador M1911" +msgstr[1] "cargadores M1911" #. ~ Description for {'str': 'M1911 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73339,14 +73938,14 @@ msgstr "Es un cargador militar de 7 balas para usar en la pistola M1911." #: lang/json/MAGAZINE_from_json.py msgid ".50 BMG ammo belt" msgid_plural ".50 BMG ammo belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinta cargadora .50 BMG" +msgstr[1] "cintas cargadoras .50 BMG" #: lang/json/MAGAZINE_from_json.py msgid "Barrett magazine" msgid_plural "Barrett magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Barrett" +msgstr[1] "cargadores Barrett" #. ~ Description for {'str': 'Barrett magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73359,30 +73958,31 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "AS50 magazine" msgid_plural "AS50 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador AS50" +msgstr[1] "cargadores AS50" #. ~ Description for {'str': 'AS50 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "10-round box magazine for Accuracy International AS50." msgstr "" +"Es un cargador de caja de 10 balas para el Accuracy International AS50." #: lang/json/MAGAZINE_from_json.py msgid "TAC-50 magazine" msgid_plural "TAC-50 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador TAC-50" +msgstr[1] "cargadores TAC-50" #. ~ Description for {'str': 'TAC-50 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "5-round box magazine for McMillan TAC-50." -msgstr "" +msgstr "Es un cargador de caja de 5 balas para el McMillan TAC-50." #: lang/json/MAGAZINE_from_json.py msgid ".500 5-round speedloader" msgid_plural ".500 5-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 5 balas .500" +msgstr[1] "cargadores de velocidad de 5 balas .500" #. ~ Description for {'str': '.500 5-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -73390,12 +73990,14 @@ msgid "" "This speedloader can hold 5 rounds of .500 and quickly reload a compatible " "revolver." msgstr "" +"Este cargador de velocidad permite contener 5 balas .500 y recargarlas " +"rápidamente en un revólver compatible." #: lang/json/MAGAZINE_from_json.py msgid "AK-74M magazine" msgid_plural "AK-74M magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador AK-74M" +msgstr[1] "cargadores AK-74M" #. ~ Description for {'str': 'AK-74M magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73409,8 +74011,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "AK-74M extended magazine" msgid_plural "AK-74M extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido AK-74M" +msgstr[1] "cargadores extendidos AK-74M" #. ~ Description for {'str': 'AK-74M extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73424,8 +74026,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "FN-57 magazine" msgid_plural "FN-57 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador FN-57" +msgstr[1] "cargadores FN-57" #. ~ Description for {'str': 'FN-57 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73435,8 +74037,8 @@ msgstr "Es un cargador de capacidad estándar para usar en el FN Five-Seven." #: lang/json/MAGAZINE_from_json.py msgid "FN-P90 magazine" msgid_plural "FN-P90 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador FN-P90" +msgstr[1] "cargadores FN-P90" #. ~ Description for {'str': 'FN-P90 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73450,8 +74052,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMFB100 5x50mm extended magazine" msgid_plural "RMFB100 5x50mm extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido RMFB100 5x50mm" +msgstr[1] "cargadores extendidos RMFB100 5x50mm" #. ~ Description for {'str': 'RMFB100 5x50mm extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73463,8 +74065,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMFB50 5x50mm magazine" msgid_plural "RMFB50 5x50mm magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador RMFB50 5x50mm" +msgstr[1] "cargadores RMFB50 5x50mm" #. ~ Description for {'str': 'RMFB50 5x50mm magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73476,26 +74078,28 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M74 rocket clip" msgid_plural "M74 rocket clips" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "peine de misiles M74" +msgstr[1] "peines de misiles M74" #. ~ Description for {'str': 'M74 rocket clip'} #: lang/json/MAGAZINE_from_json.py msgid "" "This is a clip for the M202A1 FLASH that can hold 4 M74 incendiary rockets." msgstr "" +"Es un peine de munición para el M202A1 FLASH, que puede contener hasta 4 " +"misiles incendiarios M74." #: lang/json/MAGAZINE_from_json.py msgid "7.62x39mm clip" msgid_plural "7.62x39mm clips" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "peine 7.62x39mm" +msgstr[1] "peines 7.62x39mm" #: lang/json/MAGAZINE_from_json.py msgid "AK 10-round magazine" msgid_plural "AK 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas AK" +msgstr[1] "cargadores de 10 balas AK" #. ~ Description for {'str': 'AK 10-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73503,12 +74107,14 @@ msgid "" "A compact 10-round magazine for 7.62x39 AK-pattern rifles, made of stamped " "sheet metal. Made for restricted civilian use." msgstr "" +"Es un cargador compacto de 10 balas para los rifles 7.62x39 AK, hecho con " +"láminas metálicas estampadas. Diseñado para uso estrictamente civil." #: lang/json/MAGAZINE_from_json.py msgid "AK 20-round magazine" msgid_plural "AK 20-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 20 balas AK" +msgstr[1] "cargadores de 20 balas AK" #. ~ Description for {'str': 'AK 20-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73516,12 +74122,15 @@ msgid "" "A compact 20-round magazine for 7.62x39 AK-pattern rifles, made of stamped " "sheet metal. Originally designed for tank crews." msgstr "" +"Es un cargador compacto de 20 balas para los rifles 7.62x39 AK, hecho con " +"láminas metálicas estampadas. Diseñado originalmente para tripulación de " +"tanques." #: lang/json/MAGAZINE_from_json.py msgid "AK 30-round magazine" msgid_plural "AK 30-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 30 balas AK" +msgstr[1] "cargadores de 30 balas AK" #. ~ Description for {'str': 'AK 30-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73529,12 +74138,14 @@ msgid "" "A standard 30-round magazine for 7.62x39 AK-pattern rifles, made of stamped " "sheet metal." msgstr "" +"Es un cargador estándar de 30 balas para rifles 7.62x39 AK, hecho con " +"láminas de metal selladas." #: lang/json/MAGAZINE_from_json.py msgid "AK 40-round magazine" msgid_plural "AK 40-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 40 balas AK" +msgstr[1] "cargadores de 40 balas AK" #. ~ Description for {'str': 'AK 40-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73542,12 +74153,14 @@ msgid "" "An extended 40-round magazine for 7.62x39 AK-pattern rifles, made of stamped" " sheet metal." msgstr "" +"Es un cargador extendido de 40 balas para rifles 7.62x39 AK, hecho con " +"láminas de metal selladas." #: lang/json/MAGAZINE_from_json.py msgid "AK 75-round drum magazine" msgid_plural "AK 75-round drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor de 75 balas AK" +msgstr[1] "cargadores de tambor de 75 balas AK" #. ~ Description for {'str': 'AK 75-round drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73555,18 +74168,20 @@ msgid "" "A bulky 75-round drum magazine for 7.62x39 AK-pattern rifles, made of " "stamped sheet metal." msgstr "" +"Es un cargador voluminoso de 75 balas para rifles 7.62x39 AK, hecho con " +"láminas de metal selladas." #: lang/json/MAGAZINE_from_json.py msgid "7.62x54mmR clip" msgid_plural "7.62x54mmR clips" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "peine 7.62x54mmR" +msgstr[1] "peines 7.62x54mmR" #: lang/json/MAGAZINE_from_json.py msgid "PPSh 71-round drum magazine" msgid_plural "PPSh 71-round drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor PPSh de 71 balas " +msgstr[1] "cargadores de tambor PPSh de 71 balas " #. ~ Description for {'str': 'PPSh 71-round drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73576,8 +74191,8 @@ msgstr "Es un cargador de tambor de gran capacidad para la PPSh-41." #: lang/json/MAGAZINE_from_json.py msgid "PPSh 35-round magazine" msgid_plural "PPSh 35-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador PPSh de 35 balas" +msgstr[1] "cargadores PPSh de 35 balas" #. ~ Description for {'str': 'PPSh 35-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73587,8 +74202,8 @@ msgstr "Es un cargador de caja de 35 balas para la PPSh-41." #: lang/json/MAGAZINE_from_json.py msgid "Tokarev TT-33 magazine" msgid_plural "Tokarev TT-33 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Tokarev TT-33" +msgstr[1] "cargadores Tokarev TT-33" #. ~ Description for {'str': 'Tokarev TT-33 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73598,8 +74213,8 @@ msgstr "Es un cargador estándar de 8 balas para la Tokarev TT-33." #: lang/json/MAGAZINE_from_json.py msgid "RMGB100 8x40mm magazine" msgid_plural "RMGB100 8x40mm magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador RMGB100 8x40mm" +msgstr[1] "cargadores RMGB100 8x40mm" #. ~ Description for {'str': 'RMGB100 8x40mm magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73612,8 +74227,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMGP10 8x40mm stick magazine" msgid_plural "RMGP10 8x40mm stick magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador recto RMGP10 8x40mm " +msgstr[1] "cargadores rectos RMGP10 8x40mm " #. ~ Description for {'str': 'RMGP10 8x40mm stick magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73626,8 +74241,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMGD250 8x40mm drum magazine" msgid_plural "RMGD250 8x40mm drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor RMG250 8x40mm" +msgstr[1] "cargadores de tambor RMG250 8x40mm" #. ~ Description for {'str': 'RMGD250 8x40mm drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73640,8 +74255,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMGP25 8x40mm stick magazine" msgid_plural "RMGP25 8x40mm stick magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador recto RMGP25 8x40mm " +msgstr[1] "cargadores rectos RMGP25 8x40mm " #. ~ Description for {'str': 'RMGP25 8x40mm stick magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73654,8 +74269,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMGB500 8x40mm drum magazine" msgid_plural "RMGB500 8x40mm drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor RMGB500 8x40mm" +msgstr[1] "cargadores de tambor RMGB500 8x40mm" #. ~ Description for {'str': 'RMGB500 8x40mm drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73668,8 +74283,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMGB50 8x40mm magazine" msgid_plural "RMGB50 8x40mm magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador RMGB50 8x40mm" +msgstr[1] "cargadores RMGB50 8x40mm" #. ~ Description for {'str': 'RMGB50 8x40mm magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73678,24 +74293,11 @@ msgstr "" "Es un cargador de caja de 50 balas para usar en las armas Rivtech de calibre" " 8x40mm sin casquillo." -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "" - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Calico" +msgstr[1] "cargadores Calico" #. ~ Description for {'str': 'Calico magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73709,8 +74311,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Glock extended magazine" msgid_plural "Glock extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido Glock" +msgstr[1] "cargadores extendidos Glock" #. ~ Description for {'str': 'Glock extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73724,8 +74326,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Glock magazine" msgid_plural "Glock magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Glock" +msgstr[1] "cargadores Glock" #. ~ Description for {'str': 'Glock magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73739,8 +74341,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Glock 17 17-round magazine" msgid_plural "Glock 17 17-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 17 balas Glock 17" +msgstr[1] "cargadores de 17 balas Glock 17" #. ~ Description for {'str': 'Glock 17 17-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73750,8 +74352,8 @@ msgstr "Hecho para la Glock 17, este cargador contiene 17 balas." #: lang/json/MAGAZINE_from_json.py msgid "Glock 17 22-round magazine" msgid_plural "Glock 17 22-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 22 balas Glock 17" +msgstr[1] "cargadores de 22 balas Glock 17" #. ~ Description for {'str': 'Glock 17 22-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73761,8 +74363,8 @@ msgstr "Hecho para la Glock 17, este cargador contiene 22 balas." #: lang/json/MAGAZINE_from_json.py msgid "Glock 50-round drum magazine" msgid_plural "Glock 50-round drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor de 50 balas Glock" +msgstr[1] "cargadores de tambor de 50 balas Glock" #. ~ Description for {'str': 'Glock 50-round drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73774,8 +74376,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Glock 100-round drum magazine" msgid_plural "Glock 100-round drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor de 100 balas Glock" +msgstr[1] "cargadores de tambor de 100 balas Glock" #. ~ Description for {'str': 'Glock 100-round drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73787,8 +74389,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M9 extended magazine" msgid_plural "M9 extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido M9" +msgstr[1] "cargadores extendidos M9" #. ~ Description for {'str': 'M9 extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73796,12 +74398,14 @@ msgid "" "A 30-round extended magazine compatible with both the M9 handgun and some " "modern carbines." msgstr "" +"Es un cargador extendido de 30 balas compatible con la pistola M9 y algunas " +"carabinas modernas." #: lang/json/MAGAZINE_from_json.py msgid "M9 magazine" msgid_plural "M9 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador M9" +msgstr[1] "cargadores M9" #. ~ Description for {'str': 'M9 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73815,8 +74419,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "MP5 extended magazine" msgid_plural "MP5 extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido MP5" +msgstr[1] "cargadores extendidos MP5" #. ~ Description for {'str': 'MP5 extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73824,12 +74428,14 @@ msgid "" "A drum magazine for use with the H&K MP5 SMG. Much greater capacity but " "less reliable the factory specification magazine." msgstr "" +"Es un cargador de tambor que se usa en el subfusil H&K MP5. Un cargador con " +"especificación de fábrica, con mucha mayor capacidad pero menos confiable." #: lang/json/MAGAZINE_from_json.py msgid "MP5 magazine" msgid_plural "MP5 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador MP5" +msgstr[1] "cargadores MP5" #. ~ Description for {'str': 'MP5 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73840,19 +74446,19 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Px4 magazine" msgid_plural "Px4 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Px4" +msgstr[1] "cargadores Px4" #. ~ Description for {'str': 'Px4 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "The standard magazine for the Beretta Px4, in 9x19mm." -msgstr "" +msgstr "Es el cargador estándar para la Beretta Px4, de 9x19mm." #: lang/json/MAGAZINE_from_json.py msgid "STEN magazine" msgid_plural "STEN magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador STEN" +msgstr[1] "cargadores STEN" #. ~ Description for {'str': 'STEN magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73866,8 +74472,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "makeshift STEN magazine" msgid_plural "makeshift STEN magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado STEN" +msgstr[1] "cargadores improvisados STEN" #. ~ Description for {'str': 'makeshift STEN magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73875,12 +74481,14 @@ msgid "" "An improvised magazine that is mostly compatible with the STEN submachine " "gun, with a simplified feed system." msgstr "" +"Es un cargador improvisado mayormente compatible con el subfusil STEN, con " +"un sistema de alimentación simplificado." #: lang/json/MAGAZINE_from_json.py msgid "TEC-9 magazine" msgid_plural "TEC-9 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador TEC-9" +msgstr[1] "cargadores TEC-9" #. ~ Description for {'str': 'TEC-9 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73894,8 +74502,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "USP 9mm magazine" msgid_plural "USP 9mm magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador USP 9mm" +msgstr[1] "cargadores USP 9mm" #. ~ Description for {'str': 'USP 9mm magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73909,8 +74517,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "UZI magazine" msgid_plural "UZI magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador UZI" +msgstr[1] "cargadores UZI" #. ~ Description for {'str': 'UZI magazine'} #: lang/json/MAGAZINE_from_json.py @@ -73922,173 +74530,182 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Kel-Tec PF-9 magazine" msgid_plural "Kel-Tec PF-9 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Kel-Tec PF-9" +msgstr[1] "cargadores Kel-Tec PF-9" #. ~ Description for {'str': '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 "" +"Es un cargador de caja de acero estándar de 7 balas para el Kel-Tec PF-9." #: lang/json/MAGAZINE_from_json.py msgid "P320 9x19mm magazine" msgid_plural "P320 9x19mm magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador P320 9x19mm" +msgstr[1] "cargadores P320 9x19mm" #. ~ Description for {'str': 'P320 9x19mm magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 17 round double stack box magazine for the SIG Sauer P320." msgstr "" +"Es un cargador de caja de doble fila de 17 balas, para el SIG Sauer P320." #: lang/json/MAGAZINE_from_json.py msgid "Hi-Power 9x19mm 13-round magazine" msgid_plural "Hi-Power 9x19mm 13-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 13 balas Hi-Power 9x19mm" +msgstr[1] "cargadores de 13 balas Hi-Power 9x19mm" #. ~ Description for {'str': 'Hi-Power 9x19mm 13-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 13 round steel box magazine for the Browning Hi-Power 9x19mm." msgstr "" +"Es un cargador de caja de acero de 13 balas para el Browning Hi-Power " +"9x19mm." #: lang/json/MAGAZINE_from_json.py msgid "Hi-Power 9x19mm 15-round magazine" msgid_plural "Hi-Power 9x19mm 15-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 15 balas Hi-Power 9x19mm" +msgstr[1] "cargadores de 15 balas Hi-Power 9x19mm" #. ~ Description for {'str': 'Hi-Power 9x19mm 15-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 15 round steel box magazine for the Browning Hi-Power 9x19mm." msgstr "" +"Es un cargador de caja de acero de 15 balas para el Browning Hi-Power " +"9x19mm." #: lang/json/MAGAZINE_from_json.py msgid "P38 magazine" msgid_plural "P38 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador P38" +msgstr[1] "cargadores P38" #. ~ Description for {'str': 'P38 magazine'} #: lang/json/MAGAZINE_from_json.py msgid "An 8 round steel box magazine for the Walther P38." -msgstr "" +msgstr "Es un cargador de caja de acero de 8 balas para el Walther P38." #: lang/json/MAGAZINE_from_json.py msgid "PPQ 9x19mm 10-round magazine" msgid_plural "PPQ 9x19mm 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas PPQ 9x19mm" +msgstr[1] "cargadores de 10 balas PPQ 9x19mm" #. ~ Description for {'str': 'PPQ 9x19mm 10-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 10 round steel box magazine for the Walther PPQ 9mm." -msgstr "" +msgstr "Es un cargador de caja de acero de 10 balas para el Walther PPQ 9mm." #: lang/json/MAGAZINE_from_json.py msgid "PPQ 9x19mm 15-round magazine" msgid_plural "PPQ 9x19mm 15-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 15 balas PPQ 9x19mm" +msgstr[1] "cargadores de 15 balas PPQ 9x19mm" #. ~ Description for {'str': 'PPQ 9x19mm 15-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 15 round steel box magazine for the Walther PPQ 9mm." -msgstr "" +msgstr "Es un cargador de caja de acero de 15 balas para el Walther PPQ 9mm." #: lang/json/MAGAZINE_from_json.py msgid "PPQ 9x19mm 17-round magazine" msgid_plural "PPQ 9x19mm 17-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 17 balas PPQ 9x19mm" +msgstr[1] "cargadores de 17 balas PPQ 9x19mm" #. ~ Description for {'str': 'PPQ 9x19mm 17-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 17 round steel box magazine for the Walther PPQ 9mm." -msgstr "" +msgstr "Es un cargador de caja de acero de 17 balas para el Walther PPQ 9mm." #: lang/json/MAGAZINE_from_json.py msgid "C-9 8-round magazine" msgid_plural "C-9 8-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 8 balas C-9" +msgstr[1] "cargadores de 8 balas C-9" #. ~ Description for {'str': 'C-9 8-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "An 8-round steel box magazine for use with the Hi-Point C-9." msgstr "" +"Es un cargador de caja de acero de 8 balas para usar en el Hi-Point C-9." #: lang/json/MAGAZINE_from_json.py msgid "C-9 10-round magazine" msgid_plural "C-9 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas C-9" +msgstr[1] "cargadores de 10 balas C-9" #. ~ Description for {'str': 'C-9 10-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 10-round steel box magazine for use with the Hi-Point C-9." msgstr "" +"Es un cargador de caja de acero de 10 balas para usar en el Hi-Point C-9." #: lang/json/MAGAZINE_from_json.py msgid "C-9 15-round magazine" msgid_plural "C-9 15-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 15 balas C-9" +msgstr[1] "cargadores de 15 balas C-9" #. ~ Description for {'str': 'C-9 15-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 15-round steel box magazine for use with the Hi-Point C-9." msgstr "" +"Es un cargador de caja de acero de 15 balas para usar en el Hi-Point C-9." #: lang/json/MAGAZINE_from_json.py msgid "CZ 75 12-round magazine" msgid_plural "CZ 75 12-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 12 balas CZ 75" +msgstr[1] "cargadores de 12 balas CZ 75" #. ~ Description for {'str': 'CZ 75 12-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 12-round steel box magazine for use with the CZ 75." -msgstr "" +msgstr "Es un cargador de caja de acero de 12 balas para usar en el CZ 75." #: lang/json/MAGAZINE_from_json.py msgid "CZ 75 20-round magazine" msgid_plural "CZ 75 20-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 20 balas CZ 75" +msgstr[1] "cargadores de 20 balas CZ 75" #. ~ Description for {'str': 'CZ 75 20-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 20-round steel box magazine for use with the CZ 75." -msgstr "" +msgstr "Es un cargador de caja de acero de 20 balas para usar en el CZ 75." #: lang/json/MAGAZINE_from_json.py msgid "CZ 75 26-round magazine" msgid_plural "CZ 75 26-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 26 balas CZ 75" +msgstr[1] "cargadores de 26 balas CZ 75" #. ~ Description for {'str': 'CZ 75 26-round magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A 26-round steel box magazine for use with the CZ 75." -msgstr "" +msgstr "Es un cargador de caja de acero de 26 balas para usar en el CZ 75." #: lang/json/MAGAZINE_from_json.py msgid "CCP magazine" msgid_plural "CCP magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador CCP" +msgstr[1] "cargadores CCP" #. ~ Description for {'str': 'CCP magazine'} #: lang/json/MAGAZINE_from_json.py msgid "An 8-round steel box magazine for use with the Walther CCP." -msgstr "" +msgstr "Es un cargador de caja de acero de 8 balas para el Walther CCP." #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" msgid_plural "Makarov PM magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Makarov PM" +msgstr[1] "cargadores Makarov PM" #. ~ Description for {'str': 'Makarov PM magazine'} #: lang/json/MAGAZINE_from_json.py @@ -74098,8 +74715,8 @@ msgstr "Es el cargador estándar para la Pistolet Makarova, contiene 8 balas." #: lang/json/MAGAZINE_from_json.py msgid "Skorpion Vz. 82 magazine" msgid_plural "Skorpion Vz. 82 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Skorpion Vz. 82" +msgstr[1] "cargadores Skorpion Vz. 82" #. ~ Description for {'str': 'Skorpion Vz. 82 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -74112,8 +74729,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "pressurized chemical tank" msgid_plural "pressurized chemical tanks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque químico presurizado" +msgstr[1] "tanques químicos presurizados" #. ~ Description for {'str': 'pressurized chemical tank'} #: lang/json/MAGAZINE_from_json.py @@ -74121,12 +74738,14 @@ msgid "" "A makeshift pressurized 2L canister designed to feed a makeshift chemical " "thrower." msgstr "" +"Es un recipiente improvisado de 2lts, diseñado para alimentar un lanzador " +"químico." #: lang/json/MAGAZINE_from_json.py msgid "pressurized fuel tank" msgid_plural "pressurized fuel tanks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque presurizado de combustible" +msgstr[1] "tanques presurizados de combustible" #. ~ Description for {'str': 'pressurized fuel tank'} #: lang/json/MAGAZINE_from_json.py @@ -74137,8 +74756,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "small pressurized fuel tank" msgid_plural "small pressurized fuel tanks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque pequeño presurizado de combustible" +msgstr[1] "tanques pequeños presurizados de combustible" #. ~ Description for {'str': 'small pressurized fuel tank'} #: lang/json/MAGAZINE_from_json.py @@ -74152,8 +74771,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RM450-2 fuel canister" msgid_plural "RM450-2 fuel canisters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tubo de combustible RM450-2" +msgstr[1] "tubos de combustible RM450-2" #. ~ Description for {'str': 'RM450-2 fuel canister'} #: lang/json/MAGAZINE_from_json.py @@ -74167,8 +74786,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RM450-4 fuel canister" msgid_plural "RM450-4 fuel canisters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tubo de combustible RM450-4" +msgstr[1] "tubos de combustible RM450-4" #. ~ Description for {'str': 'RM450-4 fuel canister'} #: lang/json/MAGAZINE_from_json.py @@ -74182,8 +74801,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Saiga-12 box magazine" msgid_plural "Saiga-12 box magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de caja Saiga-12" +msgstr[1] "cargadores de caja Saiga-12" #. ~ Description for {'str': 'Saiga-12 box magazine'} #: lang/json/MAGAZINE_from_json.py @@ -74196,8 +74815,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Saiga-12 drum magazine" msgid_plural "Saiga-12 drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor Saiga-12" +msgstr[1] "cargadores de tambor Saiga-12" #. ~ Description for {'str': 'Saiga-12 drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -74210,32 +74829,36 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "USAS-12 box magazine" msgid_plural "USAS-12 box magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de caja USAS-12" +msgstr[1] "cargadores de caja USAS-12" #. ~ Description for {'str': 'USAS-12 box magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A removable plastic magazine for the USAS-12 shotgun. Holds 10 rounds." msgstr "" +"Es un cargador de plástico extraíble para la escopeta USAS-12. Contiene 10 " +"balas." #: lang/json/MAGAZINE_from_json.py msgid "USAS-12 drum magazine" msgid_plural "USAS-12 drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor USAS-12" +msgstr[1] "cargadores de tambor USAS-12" #. ~ Description for {'str': 'USAS-12 drum magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" "A removable plastic magazine for the USAS-12 shotgun. Holds 20 rounds." msgstr "" +"Es un cargador de plástico extraíble para la escopeta USAS-12. Contiene 20 " +"balas." #: lang/json/MAGAZINE_from_json.py msgid "shotshell belt" msgid_plural "shotshell belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinta de cartuchos" +msgstr[1] "cintas de cartuchos" #. ~ Description for {'str': 'shotshell belt'} #: lang/json/MAGAZINE_from_json.py @@ -74243,12 +74866,15 @@ msgid "" "A non-disintegrating cloth ammo belt which can hold up to 20 shotgun shells." " Notably less reliable than metal ammo belts." msgstr "" +"Es una cinta de munición de tela que no se desintegra, puede contener hasta " +"20 cartuchos de escopeta. Es bastante menos confiable que las cintas de " +"metal." #: lang/json/MAGAZINE_from_json.py msgid "shotgun 6-round speedloader" msgid_plural "shotgun 6-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 6 balas de escopeta" +msgstr[1] "cargadores de velocidad de 6 balas de escopeta" #. ~ Description for {'str': 'shotgun 6-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -74257,12 +74883,15 @@ msgid "" "rounds into a shotgun's tube in a much shorter period of time than by hand." " It needs to interface with a chute to be used with any speed." msgstr "" +"Es un tubo plástico con una manija deslizable que puede usarse para cargar 6" +" cartuchos en una escopeta, en un tiempo mucho menor que a mano. Necesita " +"conectarse con un conducto para ser usado con velocidad." #: lang/json/MAGAZINE_from_json.py msgid "shotgun 8-round speedloader" msgid_plural "shotgun 8-round speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de 8 balas de escopeta" +msgstr[1] "cargadores de velocidad de 8 balas de escopeta" #. ~ Description for {'str': 'shotgun 8-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -74271,12 +74900,15 @@ msgid "" "rounds into a shotgun's tube in a much shorter period of time than by hand." " It needs to interface with a chute to be used with any speed." msgstr "" +"Es un tubo plástico con una manija deslizable que puede usarse para cargar 8" +" cartuchos en una escopeta, en un tiempo mucho menor que a mano. Necesita " +"conectarse con un conducto para ser usado con velocidad." #: lang/json/MAGAZINE_from_json.py msgid "small welding tank" msgid_plural "small welding tanks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque pequeño de soldadura" +msgstr[1] "tanques pequeños de soldadura" #. ~ Description for {'str': 'small welding tank'} #: lang/json/MAGAZINE_from_json.py @@ -74290,8 +74922,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "welding tank" msgid_plural "welding tanks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque de soldadura" +msgstr[1] "tanques de soldadura" #. ~ Description for {'str': 'welding tank'} #: lang/json/MAGAZINE_from_json.py @@ -74333,8 +74965,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "small motorbike battery" msgid_plural "small motorbike batteries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "batería pequeña de moto" +msgstr[1] "baterías pequeñas de moto" #. ~ Description for {'str': 'small motorbike battery', 'str_pl': 'small #. motorbike batteries'} @@ -74343,12 +74975,14 @@ msgid "" "A miniature 12v lead-acid battery used to power smaller vehicles' electrical" " systems." msgstr "" +"Es una batería miniatura de plomo y ácido de 12v, usada para darle energía a" +" los sistemas eléctricos de vehículos pequeños." #: 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[0] "batería grande de almacenamiento" +msgstr[1] "baterías grandes de almacenamiento" #. ~ Description for {'str': 'large storage battery', 'str_pl': 'large storage #. batteries'} @@ -74358,18 +74992,24 @@ msgid "" "tremendous amount of energy. Could be installed into a storage battery case" " for easy removal from a vehicle, or just welded straight in." msgstr "" +"Es una batería de enorme capacidad que contiene varias celdas de ion de " +"litio. Contiene una tremenda cantidad de energía. Puede ser instalada en una" +" caja de almacenamiento de baterías para poder ser sacada con facilidad del " +"vehículo, o puede ir soldada." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "medium storage battery" msgid_plural "medium storage batteries" -msgstr[0] "batería mediana" -msgstr[1] "baterías medianas" +msgstr[0] "batería de capacidad media" +msgstr[1] "baterías de capacidad media" #. ~ Description for {'str': 'medium storage battery', 'str_pl': 'medium #. storage batteries'} #: lang/json/MAGAZINE_from_json.py msgid "A medium storage battery containing multiple lithium-ion cells." msgstr "" +"Es una batería de capacidad media que contiene varias celdas de ion de " +"litio." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "small storage battery" @@ -74384,6 +75024,8 @@ msgid "" "A small storage battery created with pre-Cataclysm lithium-ion technology. " "Useful for crafting." msgstr "" +"Es una batería de baja capacidad de tecnología de ion de litio, creada antes" +" del Cataclismo. Útil para fabricar otras cosas." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "storage battery" @@ -74398,147 +75040,26 @@ msgid "" "installed into a storage battery case for easy removal from a vehicle, or " "just welded straight in." msgstr "" +"Es una batería de gran capacidad que contiene varias celdas de ion de litio." +" Puede ser instalada en una caja de almacenamiento de baterías para poder " +"ser sacada con facilidad del vehículo, o puede ir soldada." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" msgid_plural "fuel bunkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "carbonera" +msgstr[1] "carboneras" #. ~ Description for {'str': 'fuel bunker'} #: lang/json/MAGAZINE_from_json.py msgid "A bin for holding solid fuel." msgstr "Es un tacho para contener combustible sólido." -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 auto-magazine" -msgid_plural "CW-24 auto-magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CW-24 auto-magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Es un autocargador avanzado para el rifle CW-24. Al igual que los cargadores" -" SVS, utiliza microbótica para cargar los cartuchos." - -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 extended magazine" -msgid_plural "CW-24 extended magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CW-24 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Es un autocargador extendido para el rifle CW-24. Al igual que los " -"cargadores SVS, utiliza microbótica para cargar los cartuchos." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 extended magazine" -msgid_plural "CWD-63 extended magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CWD-63 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." -msgstr "" -"Es un cargador de caja barato de 10 balas para el CWD-63. No es muy " -"confiable." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 magazine" -msgid_plural "CWD-63 magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CWD-63 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"Since it's created for the .308 round, it doesn't need the curved shape of " -"the original magazine." -msgstr "" -"Como fue creado para la bala .308, no necesita ser de forma curva como el " -"cargador original." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robodrum" -msgid_plural "SVS-24 robodrums" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for SVS-24 robodrum -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 135-round drum magazine. Like the auto-magazine, it loads " -"cartridges using microrobotics." -msgstr "" -"Es un cargador de tambor avanzado de 135 balas. Al igual que el " -"autocartucho. carga sus cartuchos usando microbótica." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robomag" -msgid_plural "SVS-24 robomags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for SVS-24 robomag -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 42-round auto-magazine. Unlike previous generations of " -"magazines, this one uses microrobotics to load cartridges." -msgstr "" -"Es un autocargador avanzado de 42 balas. A diferencia de las generaciones " -"anteriores de cargadores, este utiliza microbótica para cargar los " -"cartuchos." - -#. ~ Description for .454 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 6 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid ".454 8-round speedloader" -msgid_plural ".454 8-round speedloaders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for .454 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 8 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid "Eagle 1776 magazine" -msgid_plural "Eagle 1776 magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for Eagle 1776 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " -"to the Eagle 1776." -msgstr "" -"Es un cargador de caja hecho en Estados Unidos, diseñado para entregar 24 " -"cartuchos .44 Magnum a la Eagle 1776." - #: lang/json/MAGAZINE_from_json.py msgid "grenade machine gun belt" msgid_plural "grenade machine gun belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinta de granadas para ametralladora" +msgstr[1] "cintas de granadas para ametralladora" #. ~ Description for {'str': 'grenade machine gun belt'} #: lang/json/MAGAZINE_from_json.py @@ -74547,12 +75068,15 @@ msgid "" "firing. This one holds grenade cartridges and is too bulky to be worn like " "other ammo belts." msgstr "" +"Es una cinta cargadora que consiste en uniones metálicas que se separan de " +"la cinta cuando se dispara. Esta tiene granadas y es demasiado grande para " +"ser llevada como otras cintas cargadoras." #: lang/json/MAGAZINE_from_json.py msgid "pistol magazine" msgid_plural "pistol magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de pistola" +msgstr[1] "cargadores de pistola" #. ~ Description for {'str': 'pistol magazine'} #: lang/json/MAGAZINE_from_json.py @@ -74560,12 +75084,14 @@ msgid "" "A flush fitting magazine for use with pistols and submachine guns. Holds 15" " rounds of standard pistol ammo." msgstr "" +"Es un cargador alienado para usar en pistolas y subfusiles. Contiene 15 " +"balas de munición estándar de pistola." #: lang/json/MAGAZINE_from_json.py msgid "SMG magazine" msgid_plural "SMG magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de subfusil" +msgstr[1] "cargadores de subfusil" #. ~ Description for {'str': 'SMG magazine'} #: lang/json/MAGAZINE_from_json.py @@ -74573,12 +75099,14 @@ msgid "" "A long stick magazine for use with pistols and submachine guns. Holds 30 " "rounds of standard pistol ammo." msgstr "" +"Es un cargador largo para usar en pistolas y subfusiles. Contiene 30 balas " +"de munición estándar de pistola." #: lang/json/MAGAZINE_from_json.py msgid "revolver speedloader" msgid_plural "revolver speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de revólver" +msgstr[1] "cargadores de velocidad de revólver" #. ~ Description for {'str': 'revolver speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -74587,23 +75115,27 @@ msgid "" "to aid in loading revolvers. Accepts 6 standard or magnum pistol " "cartridges." msgstr "" +"Es un cargador de velocidad, un cilindra de metal capaz de contener y soltar" +" munición para ayudar en la carga de revólveres. Acepta hasta 6 balas " +"estándar o magnum." #: lang/json/MAGAZINE_from_json.py msgid "magnum pistol magazine" msgid_plural "magnum pistol magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de pistola magnum" +msgstr[1] "cargadores de pistola magnum" #. ~ Description for {'str': 'magnum pistol magazine'} #: lang/json/MAGAZINE_from_json.py msgid "An 8 round magazine for use with semi-automatic magnum pistols." msgstr "" +"Es un cargador de 8 balas para usar en pistolas magnum semiautomáticas." #: lang/json/MAGAZINE_from_json.py msgid "target pistol magazine" msgid_plural "target pistol magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de pistola deportiva" +msgstr[1] "cargadores de pistola deportiva" #. ~ Description for target pistol magazine #: lang/json/MAGAZINE_from_json.py @@ -74611,6 +75143,8 @@ msgid "" "A flush fitting magazine for use with target pistols, capable of feeding 10 " "tiny pistol cartridges." msgstr "" +"Es un cargador alienado para usar en pistolas deportivas, capaz de alimentar" +" 10 pequeños cartuchos de pistola." #. ~ Description for {'str': 'ammo belt'} #: lang/json/MAGAZINE_from_json.py @@ -74618,12 +75152,14 @@ msgid "" "An ammo belt consisting of metal linkages which separate from the belt upon " "firing. Holds rifle ammunition." msgstr "" +"Es una cinta cargadora de munición que consiste en uniones metálicas que se " +"separan de la cinta cuando se dispara. Es para munición de rifle." #: lang/json/MAGAZINE_from_json.py msgid "standard rifle magazine" msgid_plural "standard rifle magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de rifle estándar" +msgstr[1] "cargadores de rifle estándar" #. ~ Description for standard rifle magazine #: lang/json/MAGAZINE_from_json.py @@ -74633,12 +75169,16 @@ msgid "" "They're made of aluminum and were originally meant to be dispsoable, so " "they're not the most durable; don't let them get damaged." msgstr "" +"Es un cargador estándar de 30 balas para rifles, más barato que un almuerzo " +"debido a su compatibilidad con muchos rifles comunes. Está hecho de aluminio" +" y fueron originalmente pensados como descartables, así que no son muy " +"duraderos; tratá de no dañarlo." #: lang/json/MAGAZINE_from_json.py msgid "compact rifle magazine" msgid_plural "compact rifle magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de rifle compacto" +msgstr[1] "cargadores de rifle compacto" #. ~ Description for {'str': 'compact rifle magazine'} #: lang/json/MAGAZINE_from_json.py @@ -74646,12 +75186,15 @@ msgid "" "A short 5 round steel magazine compatible with nearly every common rifle. " "Although it has a low capacity it is easy to store and quick to reload." msgstr "" +"Es un cargador de acero de 5 balas compatible con casi todos los rifles " +"comunes. Aunque tiene poca capacidad, es fácil de guardar y rápido para " +"cargar." #: lang/json/MAGAZINE_from_json.py msgid "heavy machine gun belt" msgid_plural "heavy machine gun belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinta de subfusiles pesados" +msgstr[1] "cintas de subfusiles pesados" #. ~ Description for {'str': 'heavy machine gun belt'} #: lang/json/MAGAZINE_from_json.py @@ -74659,23 +75202,25 @@ msgid "" "An ammo belt consisting of metal linkages which separate from the belt upon " "firing. Holds huge rifle ammunition." msgstr "" +"Es una cinta cargadora de munición que consiste en uniones metálicas que se " +"separan de la cinta cuando se dispara. Es para munición de rifles grandes." #: lang/json/MAGAZINE_from_json.py msgid "anti-materiel rifle magazine" msgid_plural "anti-materiel rifle magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de rifle antimaterial" +msgstr[1] "cargadores de rifle antimaterial" #. ~ Description for {'str': 'anti-materiel rifle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "A huge 10 round magazine for anti-materiel rifles." -msgstr "" +msgstr "Es un enorme cargador de 10 balas para rifles antimaterial." #: lang/json/MAGAZINE_from_json.py msgid "shotgun box magazine" msgid_plural "shotgun box magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de caja de escopeta" +msgstr[1] "cargadores de caja de escopeta" #. ~ Description for shotgun box magazine #: lang/json/MAGAZINE_from_json.py @@ -74684,12 +75229,15 @@ msgid "" "well in box magazines due to their plastic hulls and the compression from " "the magazine spring." msgstr "" +"Es un cargador de caja de 8 balas para escopetas tácticas. Los cartuchos " +"tienden a no funcionar bien en cargadores de caja debido a la vaina plástica" +" y la compresión del resorte del cargador." #: lang/json/MAGAZINE_from_json.py msgid "shotgun speedloader" msgid_plural "shotgun speedloaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de velocidad de escopeta" +msgstr[1] "cargadores de velocidad de escopeta" #. ~ Description for shotgun speedloader #: lang/json/MAGAZINE_from_json.py @@ -74699,30 +75247,34 @@ msgid "" "by pushing the follower against the shotgun's loading port. Bulky, but sees" " use in competition occasionally." msgstr "" +"Es un cargador de velocidad de escopeta, un tubo largo de plástico con un " +"prominente pestillo de plástico. Podés alimentar 6 cartuchos en la escopeta " +"modificada apropiadamente, al empujar el pestillo contra el lugar de carga " +"de la escopeta. Es voluminoso pero a veces se lo utiliza en competiciones." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 high-capacity magazine" msgid_plural "Ruger .223 high-capacity magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de gran capacidad Ruger .223" +msgstr[1] "cargadores de gran capacidad Ruger .223" #: lang/json/MAGAZINE_from_json.py msgid "STANAG magazine" msgid_plural "STANAG magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador STANAG" +msgstr[1] "cargadores STANAG" #: lang/json/MAGAZINE_from_json.py msgid "STANAG drum magazine" msgid_plural "STANAG drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor STANAG" +msgstr[1] "cargadores de tambor STANAG" #: lang/json/MAGAZINE_from_json.py msgid "small mana crystal" msgid_plural "small mana crystals" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cristal pequeño de maná" +msgstr[1] "cristales pequeños de maná" #. ~ Description for {'str': 'small mana crystal'} #: lang/json/MAGAZINE_from_json.py @@ -74730,74 +75282,32 @@ msgid "" "This is a small mana crystal specifically designed to be attached to wand " "tips." msgstr "" +"Es un pequeño cristal de maná, específicamente diseñado para ser puesto en " +"puntas de varitas." #: lang/json/MAGAZINE_from_json.py -msgid "30x113mm ammo belt" -msgid_plural "30x113mm ammo belts" +msgid "test disposable battery" +msgid_plural "test disposable batteries" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test +#. disposable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "BB hopper" -msgid_plural "BB hoppers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'BB hopper'} -#. ~ Description for {'str': 'pebble hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"small round shot into the weapon's chamber below. It is not very reliable, " -"but quick to reload." -msgstr "" -"Es un cargador improvisado para un arma montada en un vehículo. Es una caja " -"común de metal con unas guías plásticas, pequeñas balas caen por la gravedad" -" en la recámara del arma. No es muy confiable, pero es rápido para recargar." - -#: lang/json/MAGAZINE_from_json.py -msgid "bolt hopper" -msgid_plural "bolt hoppers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'bolt hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted crossbow. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"crossbow bolt into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test disposable battery." msgstr "" -"Es un cargador improvisado para una ballesta montada en un vehículo. Es una " -"caja común de metal con unas guías plásticas, un perno de ballesta cae por " -"la gravedad en la recámara del arma. Es medio incómoda de recargar y no es " -"muy confiable." #: lang/json/MAGAZINE_from_json.py -msgid "canister rack" -msgid_plural "canister racks" +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'canister rack'} +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test +#. rechargeable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"heavy canister into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test battery that may be recharged." msgstr "" -"Es un cargador improvisado para un arma montada en un vehículo. Es una caja " -"común de metal con unas guías plásticas, una carcasa cae por la gravedad en " -"el arma. Es medio incómoda de recargar y no es muy confiable." - -#: lang/json/MAGAZINE_from_json.py -msgid "pebble hopper" -msgid_plural "pebble hoppers" -msgstr[0] "" -msgstr[1] "" #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" @@ -74810,37 +75320,40 @@ msgstr "contiene todos los mods recomendados por los desarrolladores" #: lang/json/MOD_INFO_from_json.py msgid "Aftershock" -msgstr "" +msgstr "Aftershock" #. ~ Description for Aftershock #: lang/json/MOD_INFO_from_json.py msgid "Drifts the game away from realism and more towards sci-fi." -msgstr "" +msgstr "Aleja el juego del realismo y lo lleva más a la ciencia ficción." #: lang/json/MOD_INFO_from_json.py -msgid "C.R.I.T Expansion Mod" -msgstr "" +msgid "Blaze Industries" +msgstr "Industrias Blaze" -#. ~ Description for C.R.I.T Expansion Mod +#. ~ Description for Blaze Industries #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds a plethora of content: professions, guns/mods, WIP enemies, mutations, " -"martial arts, melee weapons, and some QOL changes such as plants from " -"cutting grass." +"Introduces the fictional corporation Blaze Industries, bringing advanced " +"vehicle modification to the consumer." msgstr "" +"Introduce al juego la corporación ficticia Industrias Blaze, poniendo al " +"alcance del consumidor modificaciones avanzadas de vehículos." #: lang/json/MOD_INFO_from_json.py -msgid "Craftable Gun Pack" -msgstr "Paquete de Armas Fabricables" +msgid "C.R.I.T Expansion Mod" +msgstr "Mod de Expansión C.R.I.T." -#. ~ Description for Craftable Gun Pack +#. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " -"balance." +"Adds a plethora of content: professions, guns/mods/weapons, WIP mobs, " +"mutations, MA styles, and some QOL innawoods changes. Use the readme to see " +"more details!" msgstr "" -"Agrega más armas que pueden ser fabricadas, y pólvora. ADVERTENCIA: Rompe el" -" balance buscado." +"Agrega mucho contenido: profesiones, armas/modificaciones, monstruos, " +"mutaciones, estilos de artes marciales y otros cambios. ¡Mirá la ayuda para " +"ver los detalles!" #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" @@ -74853,7 +75366,7 @@ msgstr "¿Querés un poco de locura en tu Cataclysm? Probá este mod." #: lang/json/MOD_INFO_from_json.py msgid "Dark Skies Above" -msgstr "" +msgstr "Dark Skies Above" #. ~ Description for Dark Skies Above #: lang/json/MOD_INFO_from_json.py @@ -74861,19 +75374,8 @@ msgid "" "A total conversion that shifts the Cataclysm towards an XCOM 2 style alien " "occupation. Use other mods at your own risk!" msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Folding Parts pack" -msgstr "Pack de Partes Plegables" - -#. ~ Description for Folding Parts pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Makes solar panels and several other parts foldable, and adds foldable " -"quarterboards." -msgstr "" -"Hace que los paneles solares y varias otras partes sean plegables, y agrega " -"cuartos plegables." +"Es una conversión total que lleva Cataclysm hacia un estilo XCOM 2 de " +"ocupación alienígena. ¡Usalo con otros mods a tu propio riesgo!" #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" @@ -74884,37 +75386,17 @@ msgstr "DinoMod" msgid "" "Adds dinosaurs. Some rideable, others less friendly. Life will find a way." msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Icecoon's Arsenal" -msgstr "Arsenal de Icecoon" - -#. ~ Description for Icecoon's Arsenal -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those gun nuts. Don't have enough near-future firearms in your life? " -"Add this mod today!" -msgstr "" -"Para los locos de las armas. No tenés suficientes armas de fuego futuristas " -"en tu vida? Agregá este mod ahora mismo!" - -#: lang/json/MOD_INFO_from_json.py -msgid "DeadLeaves' Fictional Guns" -msgstr "Armas Ficticias de DeadLeaves" - -#. ~ Description for DeadLeaves' Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a bunch of rare, fictional weapons." -msgstr "Agrega un montón de armas raras y ficticias." +"Agrega dinosaurios. Algunos son montables, otros son menos amigables. La " +"vida encontrará una manera." #: lang/json/MOD_INFO_from_json.py msgid "Fuji's Military Profession Pack" -msgstr "" +msgstr "Pack de Profesiones Militares Fuji" #. ~ Description for Fuji's Military Profession Pack #: lang/json/MOD_INFO_from_json.py msgid "Numerous military themed professions" -msgstr "" +msgstr "Agrega numerosas profesiones militares." #: lang/json/MOD_INFO_from_json.py msgid "Fuji's More Buildings" @@ -74926,6 +75408,8 @@ msgid "" "Adds more buildings and more variations to existing buildings. (Requires " "More Locations)" msgstr "" +"Agrega más edificios y más variantes de los edificios ya existentes " +"(Necesita el mod Más Lugares)" #: lang/json/MOD_INFO_from_json.py msgid "Generic Guns" @@ -74942,7 +75426,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap" -msgstr "" +msgstr "Mapa General Gráfico" #. ~ Description for Graphical Overmap #: lang/json/MOD_INFO_from_json.py @@ -74950,69 +75434,50 @@ msgid "" "Gives the overmap a graphical overhaul. Please refer to readme for " "installation." msgstr "" +"Le da un formato gráfico al mapa general. Por favor, revisá las notas para " +"su instalación." #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap Fujistruct" -msgstr "" +msgstr "Mapa General Gráfico para Fuji" #. ~ Description for Graphical Overmap Fujistruct #: lang/json/MOD_INFO_from_json.py msgid "Fuji Structures mod support for Graphical Overmap." msgstr "" +"Es el soporte del mod Estructuras Fuji para el mod Mapa General Gráfico." + +#: lang/json/MOD_INFO_from_json.py +msgid "Graphical Overmap Magiclysm" +msgstr "Mapa General Magiclysm" + +#. ~ Description for Graphical Overmap Magiclysm +#: lang/json/MOD_INFO_from_json.py +msgid "Magiclysm support for Graphical Overmap." +msgstr "Es el soporte del mod Magiclysm para el mod Mapa General Gráfico." #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap More Locations" -msgstr "" +msgstr "Mapa General Más Lugares" #. ~ Description for Graphical Overmap More Locations #: lang/json/MOD_INFO_from_json.py msgid "More Locations mod support for Graphical Overmap." -msgstr "" +msgstr "Es el soporte del mod Más Lugares para el mod Mapa General Gráfico." #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap Urban Development" -msgstr "" +msgstr "Mapa General Desarrollo Urbano" #. ~ Description for Graphical Overmap Urban Development #: lang/json/MOD_INFO_from_json.py msgid "Urban Development mod support for Graphical Overmap." msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Garden Pots" -msgstr "" - -#. ~ Description for Garden Pots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Allows you to grow seeds in craftable garden pots that can be carried around" -" as items. Perfect for the nomadic botanist." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Roadheader and other mining vehicles" -msgstr "" - -#. ~ Description for Roadheader and other mining vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a few mining vehicles, requires Vehicle Additions Pack." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Hydroponics" -msgstr "" - -#. ~ Description for Hydroponics -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds hydroponic units, a furniture which can have crops planted in it for " -"increased yields. Spawn occasionally in labs or basements. Or build your " -"own." -msgstr "" +"Es el soporte del mod Desarrollo Urbano para el mod Mapa General Gráfico." #: lang/json/MOD_INFO_from_json.py msgid "Mythical Martial Arts" -msgstr "" +msgstr "Artes Marciales Míticas" #. ~ Description for Mythical Martial Arts #: lang/json/MOD_INFO_from_json.py @@ -75020,49 +75485,17 @@ msgid "" "A collection of fictional, mythologically inspired or otherwise unrealistic " "martial arts." msgstr "" +"Es una colección de artes marciales ficticias y inspiradas en la mitología o" +" poco realistas." #: lang/json/MOD_INFO_from_json.py msgid "Magiclysm" -msgstr "" +msgstr "Magiclysm" #. ~ Description for Magiclysm #: lang/json/MOD_INFO_from_json.py msgid "Cataclysm but with magic spells!" -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "Instalación Manual de Biónico" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "" -"Te permite instalar los MCB a mano. Hace buena dupla con Autodoc Seguro." - -#: lang/json/MOD_INFO_from_json.py -msgid "Medieval and Historic Classes and Shields" -msgstr "" - -#. ~ Description for Medieval and Historic Classes and Shields -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Assorted fun classes and shields for the wannabe knight, legionary, and " -"more." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Modular Turrets" -msgstr "Torretas Modulares" - -#. ~ Description for Modular Turrets -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Gives turrets swappable firearm modules, which can be reclaimed from broken " -"robots." -msgstr "" -"Permite que las torretas usen módulos intercambiables de armas, que pueden " -"ser conseguidos en los robots rotos." +msgstr "¡Es Cataclysm pero con hechizos mágicos!" #: lang/json/MOD_INFO_from_json.py msgid "More Locations" @@ -75077,28 +75510,6 @@ msgstr "" "Agrega edificios con niveles Z y calabozos. Todavía está sin pulir. Antes de" " crear un mundo, podés borrar subdirectorios para prohibir locaciones." -#: lang/json/MOD_INFO_from_json.py -msgid "More Survival Tools" -msgstr "Más Herramientas de Superviv." - -#. ~ Description for More Survival Tools -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those who prefer being innawoods. Adds several tools, various recipes " -"additions/tweaks, plus two new professions." -msgstr "" -"Para los que prefieran quedarse en el bosque. Agrega herramientas, recetas y" -" modificaciones, y dos profesiones más." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mundane Zombies" -msgstr "Zombis Mundanos" - -#. ~ Description for Mundane Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all special zombies from the game." -msgstr "Saca del juego todos los zombis especiales." - #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" msgstr "PNJs mutantes" @@ -75109,10 +75520,12 @@ msgid "" "NPCs wandering the wasteland will occasionally have mutations --- your foes " "included. Beware!" msgstr "" +"Los PNJs que aparezcan por el mundo, a veces tendrán mutaciones --- tus " +"enemigos también. ¡Cuidado!" #: lang/json/MOD_INFO_from_json.py msgid "My Sweet Cataclysm" -msgstr "" +msgstr "Mi Dulce Cataclysm" #. ~ Description for My Sweet Cataclysm #: lang/json/MOD_INFO_from_json.py @@ -75122,15 +75535,10 @@ msgid "" "of sugar with your pet necco wafer, or you could just hunt them for some " "sweet treats." msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Mythological Replicas" -msgstr "Réplicas Mitológicas" - -#. ~ Description for Mythological Replicas -#: lang/json/MOD_INFO_from_json.py -msgid "Adds recipes for replicas of mythological weapons." -msgstr "Agrega recetas para réplicas de armas mitológicas." +"Al inicio del Cataclismo, las golosinas están cobrando vida. Podés ser uno " +"de ellos y caminar por el Cataclismo como un pedazo de azúcar con forma " +"humana, con tu galleta Necco como mascota, o simplemente podés salir a " +"cazarlos para conseguir golosinas." #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" @@ -75145,72 +75553,6 @@ msgstr "" "Ayudá a probar el campamento de guarda nacional antes de incluirlo en el " "juego. Contá tu experiencia en el foro, adentro de 'The Lab'" -#: lang/json/MOD_INFO_from_json.py -msgid "No Acid Zombies" -msgstr "Sin Zombis Ácidos" - -#. ~ Description for No Acid Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all acid-based zombies from the game." -msgstr "Saca del juego todos los zombis ácidos." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Ants" -msgstr "Sin Hormigas" - -#. ~ Description for No Ants -#: lang/json/MOD_INFO_from_json.py -msgid "Removes ants and anthills from the game" -msgstr "Saca del juego las hormigas y los hormigueros" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Bees" -msgstr "Sin Abejas" - -#. ~ Description for No Bees -#: lang/json/MOD_INFO_from_json.py -msgid "Removes bees and beehives from the game" -msgstr "Saca del juego las abejas y las colmenas" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Big Zombies" -msgstr "Sin Zombis Grandes" - -#. ~ Description for No Big Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " -"game." -msgstr "" -"Saca del juego los shocker bruto, zombi gigantón y gigante esquelético" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Explosive Zombies" -msgstr "Sin Zombis Explosivos" - -#. ~ Description for No Explosive Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all explosion-based zombies from the game." -msgstr "Saca del juego todos los zombis que explotan." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Filthy Clothing" -msgstr "" - -#. ~ Description for No Filthy Clothing -#: lang/json/MOD_INFO_from_json.py -msgid "Clothes dropped by zombies will be completely clean." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Flaming Weapons" -msgstr "Sin Armas de Llamas" - -#. ~ Description for No Flaming Weapons -#: lang/json/MOD_INFO_from_json.py -msgid "Removes flaming melee weapons." -msgstr "Saca del juego las armas de llamas de cuerpo a cuerpo." - #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" msgstr "Sin Monstruos Fúngicos" @@ -75220,26 +75562,6 @@ msgstr "Sin Monstruos Fúngicos" msgid "Removes fungal monsters and regions from the game." msgstr "Saca del juego las regiones y los monstruos fúngicos." -#: lang/json/MOD_INFO_from_json.py -msgid "No Medieval Items" -msgstr "Sin Objetos Medievales" - -#. ~ Description for No Medieval Items -#: lang/json/MOD_INFO_from_json.py -msgid "Removes medieval weapons, armors, and specific books." -msgstr "" -"Saca del juego las armas, armaduras y libros específicos, pertenecientes a " -"la edad media." - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Mutagens" -msgstr "Desactivar Mutágenos" - -#. ~ Description for Disable Mutagens -#: lang/json/MOD_INFO_from_json.py -msgid "Removes mutagen items from the game." -msgstr "Saca del juego los mutágenos." - #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" msgstr "Desactivar Necesidades de PNJ" @@ -75249,60 +75571,14 @@ msgstr "Desactivar Necesidades de PNJ" msgid "Makes NPCs not require food, water or rest." msgstr "Hace que los PNJ no necesiten ni comida, ni agua ni descansar." -#: lang/json/MOD_INFO_from_json.py -msgid "No Antique Firearms" -msgstr "Sin Armas de Fuego Antiguas" - -#. ~ Description for No Antique Firearms -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all black powder and pre-Cold War firearms." -msgstr "" -"Saca del juego todas las armas de pólvora y las anteriores a la Guerra Fría." - #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" -msgstr "" +msgstr "Sin Estaciones de Tren" #. ~ Description for No Rail Stations #: lang/json/MOD_INFO_from_json.py msgid "Removes above-ground rail stations from the game." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Religious Texts" -msgstr "Sin Textos Religiosos" - -#. ~ Description for Disable Religious Texts -#: lang/json/MOD_INFO_from_json.py -msgid "Removes religious text items from the game." -msgstr "Saca del juego todos los textos religiosos." - -#: lang/json/MOD_INFO_from_json.py -msgid "Prevent Zombie Revivication" -msgstr "Prevenir Resucitación de Zombis" - -#. ~ Description for Prevent Zombie Revivication -#: lang/json/MOD_INFO_from_json.py -msgid "Disables zombie revival." -msgstr "Desactiva la resucitación de los zombis." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Fictional Guns" -msgstr "Sin Armas Ficticias" - -#. ~ Description for No Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Removes fictional conventional firearms and ammunition." -msgstr "Saca del juego las armas y municiones ficticias." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Survivor Armor" -msgstr "Sin Armaduras de Supervivencia" - -#. ~ Description for No Survivor Armor -#: lang/json/MOD_INFO_from_json.py -msgid "Removes survivor armor." -msgstr "Saca del juego las armaduras de supervivencia." +msgstr "Saca del juego las estaciones de tren sobre nivel." #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" @@ -75316,86 +75592,28 @@ msgstr "" "Saca del juego todos los monstruos excepto los que pertenecen a la categoría" " FAUNA SALVAJE." -#: lang/json/MOD_INFO_from_json.py -msgid "Classic Roguelike Classes" -msgstr "Clases Clásicas de Roguelike" - -#. ~ Description for Classic Roguelike Classes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a set of professions which correspond to classic Roguelike character " -"archetypes." -msgstr "" -"Agrega un conjunto de profesiones que corresponden a los arquetipos clásicos" -" de los personajes de Roguelike." - -#: lang/json/MOD_INFO_from_json.py -msgid "Salvaged Robots" -msgstr "Robots Recuperados" - -#. ~ Description for Salvaged Robots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Expands the types of robots and allows players to jury-rig broken robots " -"into functioning companions." -msgstr "" -"Expande los tipos de robots y le permite al jugador arreglar robots rotos " -"para usarlos como compañeros." - -#: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp -msgid "Sleep Deprivation" -msgstr "Privación de Sueño" - -#. ~ Description for Sleep Deprivation -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Enables sleep deprivation mechanics independently of a player's fatigue." -msgstr "" -"Activa la mecánica de privación de sueño para que sea independiente de la " -"fatiga." - #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Skills" -msgstr "" +msgstr "Características por Habilidades" #. ~ Description for Stats Through Skills #: lang/json/MOD_INFO_from_json.py msgid "Allows stats to raise via skill progression." msgstr "" +"Permite que las características del personaje mejoren con la progresión de " +"las habilidades." #: lang/json/MOD_INFO_from_json.py msgid "TESTING DATA" -msgstr "" +msgstr "TESTING DATA" #. ~ Description for TESTING DATA #: lang/json/MOD_INFO_from_json.py msgid "" "Adds mockup items, recipes, and other content for use by automated tests." msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Tanks and Other Vehicles" -msgstr "Tanques y Otros Vehículos" - -#. ~ Description for Tanks and Other Vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a few armored fighting vehicles and other such things, requires Vehicle" -" Additions Pack." -msgstr "" -"Agrega algunos vehículos blindados de combate y otras cosas similares. " -"Necesita el Pack de Adiciones Vehiculares." - -#: lang/json/MOD_INFO_from_json.py -msgid "Bens GF recipes" -msgstr "Recetas de Bens GF" - -#. ~ Description for Bens GF recipes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Some simple gluten free and lactose free alternative recipe options. NOT " -"EXHAUSTIVE." -msgstr "" +"Agrega bosquejos de objetos, recetas y otro contenido que utilizan los tests" +" automatizados." #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" @@ -75406,15 +75624,6 @@ msgstr "Desarrollo Urbano" msgid "Holder for suburban and urban buildings." msgstr "Depositario para edificios urbanos y suburbanos." -#: lang/json/MOD_INFO_from_json.py -msgid "Zombie Nightvision" -msgstr "Visión Nocturna de Zombis" - -#. ~ Description for Zombie Nightvision -#: lang/json/MOD_INFO_from_json.py -msgid "Gives all zombies perfect nightvision." -msgstr "Le otorga visión nocturna perfecta a todos los zombis." - #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" msgstr "Teclas Alternativas para Mapa" @@ -75425,22 +75634,13 @@ msgid "" "Changes the overmap to be more readable. Buildings are color coded by type " "and use initial letter of their names instead of ^v<>." msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Vehicle Additions Pack" -msgstr "Pack de Adiciones Vehiculares" - -#. ~ Description for Vehicle Additions Pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Please see the included PAQ.txt in the mod folder if you encounter any " -"issues." -msgstr "" -"Leé el PAQ.txt incluido en el directorio del mod si encontrás un problema." +"Cambia el mapa general para que sea más fácil de leer. Los edificios tienen " +"diferentes colores para los diferentes tipos y utilizan la letra inicial de " +"sus nombres en lugar de ^v<>." #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" -msgstr "" +msgstr "Lugares para Biónicos" #. ~ Description for Bionic Slots #: lang/json/MOD_INFO_from_json.py @@ -75448,10 +75648,12 @@ msgid "" "Enables the bionic slots system, which limits the number of CBMs you can " "install in each bodypart." msgstr "" +"Activa un sistema de lugares para los biónicos, lo que limita el número de " +"MCB que podés instalar en cada parte del cuerpo." #: lang/json/MOD_INFO_from_json.py msgid "Dark Days of the Dead" -msgstr "" +msgstr "Días Oscuros de los Muertos" #. ~ Description for Dark Days of the Dead #: lang/json/MOD_INFO_from_json.py @@ -75463,6 +75665,12 @@ msgid "" "day. If you have this mod enabled in experimental, some items may " "disappear." msgstr "" +"(Antes se llamaba Zombis Clásicos): Solamente se generarán zombis clásicos " +"(zombis normales y animales zombis) y animales naturales. Los zombis no " +"reviven y no es necesario destrozarlos. Esto desactiva ciertos edificios y " +"cosas del mapa. El plan a largo plazo es simular una clásica película de " +"zombis ambientada en la actualidad. Si tenés este mod activado en una " +"versión experimental, algunos objetos pueden desaparecer." #: lang/json/MOD_INFO_from_json.py msgid "Dark Days Ahead" @@ -75475,85 +75683,18 @@ msgstr "Contenido central de Cataclysm-DDA" #: lang/json/MOD_INFO_from_json.py msgid "Desert Region" -msgstr "" +msgstr "Región Desértica" #. ~ Description for Desert Region #: lang/json/MOD_INFO_from_json.py msgid "A testbed/WIP mod to showcase regional_map_settings JSON changes." msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "EZ-Mode Medical" -msgstr "" - -#. ~ Description for EZ-Mode Medical -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Increases broken limb mending speed and the effectiveness of healing items." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Makeshift Items Mod" -msgstr "Mod de Objetos Improvisados" - -#. ~ Description for Makeshift Items Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds more improvised item variants and rebalances existing ones." -msgstr "" -"Agrega variantes improvisadas de los objetos y reajusta las que ya existen." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mapgen Demo" -msgstr "Demo de Mapgen" - -#. ~ Description for Mapgen Demo -#: lang/json/MOD_INFO_from_json.py -msgid "Demo for JSONized mapgens (megastore, missile silo)." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Classes and Scenarios Mod" -msgstr "Mod de Clases y Escenarios" - -#. ~ Description for Classes and Scenarios Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds new classes and scenarios while rebalancing some existing ones." -msgstr "" -"Agrega nuevas clases y escenarios y reajusta algunas de las ya existentes." - -#: lang/json/MOD_INFO_from_json.py -msgid "Necromancy" -msgstr "Necromancia" - -#. ~ Description for Necromancy -#: lang/json/MOD_INFO_from_json.py -msgid "Adds the ability to revive creatures as minions." -msgstr "Agrega la habilidad de revivir criaturas para que luchen para vos." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Sci-Fi Equipment" -msgstr "Sin Equipo de Ciencia Ficción" - -#. ~ Description for No Sci-Fi Equipment -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes far-future Sci-Fi items such as powered armor and energy weapons." -msgstr "" -"Saca del juego los objetos de ciencia ficción futuristas, como la armadura " -"de poder y las armas de energía." - -#: lang/json/MOD_INFO_from_json.py -msgid "Simplified Nutrition" -msgstr "Nutrición Simplificada" - -#. ~ Description for Simplified Nutrition -#: lang/json/MOD_INFO_from_json.py -msgid "Disables vitamin requirements." -msgstr "Desactiva los requisitos de vitaminas." +"Es un mod en desarrollo para mostrar los cambios en el JSON " +"regional_map_settings." #: lang/json/MOD_INFO_from_json.py msgid "Rural-Only Mapgen" -msgstr "" +msgstr "Solamente Rural" #. ~ Description for Rural-Only Mapgen #: lang/json/MOD_INFO_from_json.py @@ -75561,10 +75702,12 @@ msgid "" "Play in the boonies: nothing but farms, forests, and villages. Recommended " "city size set to 1 and spacing set to 8." msgstr "" +"Jugá en las zonas alejadas: nada más que granjas, bosques y pueblos. El " +"tamaño recomendado de ciudades es 1 y el espaciado es 8." #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, HitButton_iso" -msgstr "" +msgstr "Ícono de ver jugador, HitButton_iso" #. ~ Description for sees-player icon, HitButton_iso #: lang/json/MOD_INFO_from_json.py @@ -75572,10 +75715,12 @@ msgid "" "Adds indicator icon if a creature sees the player. Designed for the " "HitButton isometric tileset." msgstr "" +"Agrega un indicador si una criatura ve al jugador. Diseñado para los " +"gráficos isométricos HitButton." #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, retrodays" -msgstr "" +msgstr "Ícono de ver jugador, retrodays" #. ~ Description for sees-player icon, retrodays #: lang/json/MOD_INFO_from_json.py @@ -75583,30 +75728,34 @@ msgid "" "Adds indicator icon if a creature sees the player. Designed for the " "retrodays tileset." msgstr "" +"Agrega un indicador si una criatura ve al jugador. Diseñado para los " +"gráficos Retrodays." #: lang/json/MOD_INFO_from_json.py msgid "SpeedyDex" -msgstr "" +msgstr "Destreza Veloz" #. ~ Description for SpeedyDex #: lang/json/MOD_INFO_from_json.py msgid "Higher dex increases your speed." -msgstr "" +msgstr "A mayor destreza, mayor velocidad." #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Kills" -msgstr "" +msgstr "Características por Muertes" #. ~ Description for Stats Through Kills #: lang/json/MOD_INFO_from_json.py msgid "You gain XP from kills that you can spend on increasing your stats." msgstr "" +"Ganás experiencia de las muertes que vas a poder usar para incrementar tus " +"características." #: lang/json/MONSTER_from_json.py msgid "chicken" msgid_plural "chickens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gallina" +msgstr[1] "gallinas" #. ~ Description for {'str': 'chicken'} #: lang/json/MONSTER_from_json.py @@ -75622,8 +75771,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "grouse" msgid_plural "grouses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "urogallo" +msgstr[1] "urogallos" #. ~ Description for {'str': 'grouse'} #: lang/json/MONSTER_from_json.py @@ -75637,8 +75786,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "crow" msgid_plural "crows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuervo" +msgstr[1] "cuervos" #. ~ Description for {'str': 'crow'} #: lang/json/MONSTER_from_json.py @@ -75652,8 +75801,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "duck" msgid_plural "ducks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pato" +msgstr[1] "patos" #. ~ Description for {'str': 'duck'} #: lang/json/MONSTER_from_json.py @@ -75661,12 +75810,15 @@ msgid "" "A mallard duck, often seen around rivers and other bodies of water. It " "feeds primarily on insects, seeds, roots, and, pre-Cataclysm, bread scraps." msgstr "" +"Es un ánade real, a menudo visto cerca de los ríos y otros cuerpos de agua. " +"Se alimenta principalmente de insectos, semillas, raíces y, antes del " +"Cataclismo, migas de pan." #: lang/json/MONSTER_from_json.py msgid "goose" msgid_plural "geese" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ganso" +msgstr[1] "gansos" #. ~ Description for {'str': 'goose', 'str_pl': 'geese'} #: lang/json/MONSTER_from_json.py @@ -75678,8 +75830,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "turkey" msgid_plural "turkeys" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pavo" +msgstr[1] "pavos" #. ~ Description for {'str': 'turkey'} #: lang/json/MONSTER_from_json.py @@ -75693,8 +75845,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "pheasant" msgid_plural "pheasants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "faisán" +msgstr[1] "faisanes" #. ~ Description for {'str': 'pheasant'} #: lang/json/MONSTER_from_json.py @@ -75708,8 +75860,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "cockatrice" msgid_plural "cockatrices" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cocatriz" +msgstr[1] "cocatrices" #. ~ Description for {'str': 'cockatrice'} #: lang/json/MONSTER_from_json.py @@ -75725,8 +75877,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "yellow chick" msgid_plural "yellow chicks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pollito amarillo" +msgstr[1] "pollitos amarillos" #. ~ Description for {'str': 'yellow chick'} #: lang/json/MONSTER_from_json.py @@ -75740,14 +75892,14 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "brown chick" msgid_plural "brown chicks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pollito marrón" +msgstr[1] "pollitos marrones" #: lang/json/MONSTER_from_json.py msgid "strange chick" msgid_plural "strange chicks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pollito raro" +msgstr[1] "pollitos raros" #. ~ Description for {'str': 'strange chick'} #: lang/json/MONSTER_from_json.py @@ -75758,8 +75910,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "waterfowl chick" msgid_plural "waterfowl chicks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pollito acuático" +msgstr[1] "pollitos acuáticos" #. ~ Description for {'str': 'waterfowl chick'} #: lang/json/MONSTER_from_json.py @@ -75773,8 +75925,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "broken cyborg" msgid_plural "broken cyborgs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ciborg roto" +msgstr[1] "ciborgs rotos" #. ~ Description for {'str': 'broken cyborg'} #: lang/json/MONSTER_from_json.py @@ -75786,14 +75938,14 @@ msgid "" msgstr "" "Es un cuerpo robótico con cabeza humana. Tiene toda clase de cables y " "dispositivos eléctricos implantados en la cabeza. Los pedazos de piel " -"parecen enfermos o podridos. El androide se mueve erráticamente y tiene una " +"parecen enfermos o podridos. El ciborg se mueve erráticamente y tiene una " "mirada confusa y perturbada." #: lang/json/MONSTER_from_json.py msgid "prototype cyborg" msgid_plural "prototype cyborgs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ciborg prototipo" +msgstr[1] "ciborgs prototipo" #. ~ Description for {'str': 'prototype cyborg'} #: lang/json/MONSTER_from_json.py @@ -75803,12 +75955,17 @@ 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 "" +"Es un humano fusionado con un quilombo de partes metálicas y cables. Aunque " +"sus ojos están vacíos, destellos de dolor pasan por su cara recordando a la " +"persona atrapada en este cuerpo grotesco. Con la habilidad quirúrgica " +"suficiente, se podría devolverle algo de humanidad. Lástima que no les " +"importa..." #: lang/json/MONSTER_from_json.py msgid "police bot" msgid_plural "police bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "policíabot" +msgstr[1] "policíabots" #. ~ Description for {'str': 'police bot'} #: lang/json/MONSTER_from_json.py @@ -75827,8 +75984,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "riot control bot" msgid_plural "riot control bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "antidisturbot" +msgstr[1] "antidisturbots" #. ~ Description for {'str': 'riot control bot'} #: lang/json/MONSTER_from_json.py @@ -75846,8 +76003,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "M16A4 autonomous TALON UGV" msgid_plural "M16A4 autonomous TALON UGVs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "TALON UGV autónomo M16A4" +msgstr[1] "TALON UGV autónomo M16A4" #. ~ Description for {'str': 'M16A4 autonomous TALON UGV'} #: lang/json/MONSTER_from_json.py @@ -75855,12 +76012,15 @@ msgid "" "A TALON unmanned ground vehicle equipped with an M16A4. It is a small " "tracked UGV with an array of motors and sensors covering its weapon mount." msgstr "" +"Es un vehículo terrestre no tripulado TALON equipado con una M16A4. Es un " +"pequeño UGV rastreado con un conjunto de motores y sensores que cubren la " +"montura del arma." #: lang/json/MONSTER_from_json.py msgid "M202A1 autonomous TALON UGV" msgid_plural "M202A1 autonomous TALON UGVs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "TALON UGV autónomo M202A1" +msgstr[1] "TALON UGV autónomo M202A1" #. ~ Description for {'str': 'M202A1 autonomous TALON UGV'} #: lang/json/MONSTER_from_json.py @@ -75869,15 +76029,17 @@ msgid "" "small tracked UGV with an array of motors and sensors covering its weapon " "mount." msgstr "" +"Es un vehículo terrestre no tripulado TALON equipado con una M202A1 FLASH. " +"Es un pequeño UGV rastreado con un conjunto de motores y sensores que cubren" +" la montura del arma." #: lang/json/MONSTER_from_json.py msgid "skitterbot" msgid_plural "skitterbots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arañabot" +msgstr[1] "arañabots" #. ~ Description for {'str': 'skitterbot'} -#. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py msgid "" "An insectoid robot the size of a small dog, designed for home security. " @@ -75891,8 +76053,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "experimental lab bot" msgid_plural "experimental lab bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "robot experimental de laboratorio" +msgstr[1] "robots experimentales de laboratorio" #. ~ Description for {'str': 'experimental lab bot'} #: lang/json/MONSTER_from_json.py @@ -75900,12 +76062,15 @@ msgid "" "This robot looks like a large metal spider, a bit bigger than a person, with" " its thorax covered in tiny holes. An ominous buzzing emanates from it." msgstr "" +"Este robot parece un araña de metal grande, un poco más grande que una " +"persona, con su tórax cubierto de pequeños agujeros. Emite un zumbido " +"amenazante." #: lang/json/MONSTER_from_json.py msgid "prototype robot" msgid_plural "prototype robots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "robot prototipo" +msgstr[1] "robots prototipo" #. ~ Description for {'str': 'prototype robot'} #: lang/json/MONSTER_from_json.py @@ -75916,12 +76081,17 @@ msgid "" "that animate it, and yet it moves deftly as it switches between one target " "and the next." msgstr "" +"El único ojo brillante de este robot vigila periódicamente el paisaje, " +"mientras realiza una carnicería sin final dictada por una rutina cruel y " +"malinterpretada. Entre sus placas a medio construir, podés ver la maquinaria" +" y cables que le dan vida, pero igual se mueve hábilmente mientras va de un " +"objetivo al otro." #: lang/json/MONSTER_from_json.py msgid "NR-031 Dispatch" msgid_plural "NR-031 Dispatches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Desplegador NR-031" +msgstr[1] "Desplegadores NR-031" #. ~ Description for {'str': 'NR-031 Dispatch', 'str_pl': 'NR-031 Dispatches'} #: lang/json/MONSTER_from_json.py @@ -75931,12 +76101,17 @@ msgid "" " marks a low-force variant - *comparatively* low-force, anyways - typically " "deployed as guards after an area has been cleared." msgstr "" +"El Desplegador Northrop, diseñado para control de manifestaciones, lleva y " +"despliega drones kamikaze de diveros tipos. Su pintura verde y amarilla " +"brillante significa que es una variante de fuerza menor - *comparativamente*" +" menor, eso sí - típicamente usada para proteger un área que ya ha sido " +"despejada." #: lang/json/MONSTER_from_json.py msgid "NR-V05-M Dispatch" msgid_plural "NR-V05-M Dispatches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Desplegador NR-V05-M" +msgstr[1] "Desplegadores NR-V05-M" #. ~ Description for {'str': 'NR-V05-M Dispatch', 'str_pl': 'NR-V05-M #. Dispatches'} @@ -75947,18 +76122,22 @@ msgid "" "the lethal and feared military variant, carrying extreme and deadly " "firepower." msgstr "" +"El Desplegador Northrop, diseñado para control de manifestaciones, lleva y " +"despliega drones kamikaze de diversos tipos. Su pintura verde oscuro " +"significa que es una variante militar letal y temida, que lleva extremo y " +"letal poder de fuego." #: lang/json/MONSTER_from_json.py msgid "autonomous drone" msgid_plural "autonomous drones" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dron autónomo" +msgstr[1] "drones autónomos" #: lang/json/MONSTER_from_json.py msgid "EMP hack" msgid_plural "EMP hacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "PEMhack" +msgstr[1] "PEMhacks" #. ~ Description for {'str': 'EMP hack'} #: lang/json/MONSTER_from_json.py @@ -75966,12 +76145,14 @@ msgid "" "An automated kamikaze drone, this small quadcopter robot appears to have an " "EMP grenade inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot cuadrirrotor que parece " +"tener una granada de pulso electromagnético adentro." #: lang/json/MONSTER_from_json.py msgid "C-4 hack" msgid_plural "C-4 hacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "C4hack" +msgstr[1] "C4hacks" #. ~ Description for {'str': 'C-4 hack'} #: lang/json/MONSTER_from_json.py @@ -75979,12 +76160,14 @@ msgid "" "An automated kamikaze drone, this small quadcopter robot appears to have " "some C-4 inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot cuadrirrotor que parece " +"tener C-4 adentro." #: lang/json/MONSTER_from_json.py msgid "flashbang hack" msgid_plural "flashbang hacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "destellohack" +msgstr[1] "destellohacks" #. ~ Description for {'str': 'flashbang hack'} #: lang/json/MONSTER_from_json.py @@ -75992,12 +76175,14 @@ msgid "" "An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot cuadrirrotor que parece " +"tener una granada de destello adentro." #: lang/json/MONSTER_from_json.py msgid "tear gas hack" msgid_plural "tear gas hacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lacrimohack" +msgstr[1] "lacrimohacks" #. ~ Description for {'str': 'tear gas hack'} #: lang/json/MONSTER_from_json.py @@ -76005,12 +76190,14 @@ msgid "" "An automated kamikaze drone, this small quadcopter robot appears to have a " "tear gas canister inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot cuadrirrotor que parece " +"tener una granada de gas lacrimógeno adentro." #: lang/json/MONSTER_from_json.py msgid "grenade hack" msgid_plural "grenade hacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "granadahack" +msgstr[1] "granadahacks" #. ~ Description for {'str': 'grenade hack'} #: lang/json/MONSTER_from_json.py @@ -76018,12 +76205,14 @@ msgid "" "An automated kamikaze drone, this small quadcopter robot appears to have a " "grenade inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot cuadrirrotor que parece " +"tener una granada adentro." #: lang/json/MONSTER_from_json.py msgid "manhack" msgid_plural "manhacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "manhack" +msgstr[1] "manhacks" #. ~ Description for {'str': 'manhack'} #: lang/json/MONSTER_from_json.py @@ -76031,12 +76220,14 @@ msgid "" "An automated anti-personnel drone, a small quadcopter robot surrounded by " "whirring blades." msgstr "" +"Es un dron automatizado antipersonal, un pequeño robot cuadrirrotor cubierto" +" con cuchillas zumbantes." #: lang/json/MONSTER_from_json.py msgid "mininuke hack" msgid_plural "mininuke hacks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "minibomhack" +msgstr[1] "minibomhacks" #. ~ Description for {'str': 'mininuke hack'} #: lang/json/MONSTER_from_json.py @@ -76044,12 +76235,15 @@ msgid "" "Many times as large as a normal manhack, this flying quadcopter drone " "appears to have a mininuke inside. If this is targeting you… Run." msgstr "" +"Varias veces más grande que un manhack normal, este dron volador " +"cuadrirrotor parece tener una minibomba nuclear adentro. Si te tiene como " +"objetivo... corré." #: lang/json/MONSTER_from_json.py msgid "alpha razorclaw" msgid_plural "alpha razorclaws" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "garrafilada alfa" +msgstr[1] "garrafiladas alfas" #. ~ Description for {'str': 'alpha razorclaw'} #: lang/json/MONSTER_from_json.py @@ -76063,63 +76257,63 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "tiny fish" msgid_plural "tiny fish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez pequeño" +msgstr[1] "peces pequeños" #. ~ Description for {'str_sp': 'tiny fish'} #: lang/json/MONSTER_from_json.py msgid "A tiny fish." -msgstr "" +msgstr "Es un pez... pequeño." #: lang/json/MONSTER_from_json.py msgid "small fish" msgid_plural "small fish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez chico" +msgstr[1] "peces chicos" #. ~ Description for {'str_sp': 'small fish'} #: lang/json/MONSTER_from_json.py msgid "A small fish." -msgstr "" +msgstr "Es un pez... chico." #: lang/json/MONSTER_from_json.py msgid "medium fish" msgid_plural "medium fish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez mediano" +msgstr[1] "peces medianos" #. ~ Description for {'str_sp': 'medium fish'} #: lang/json/MONSTER_from_json.py msgid "A medium fish." -msgstr "" +msgstr "Es un pez... mediano." #: lang/json/MONSTER_from_json.py msgid "large fish" msgid_plural "large fish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez grande" +msgstr[1] "peces grandes" #. ~ Description for {'str_sp': 'large fish'} #: lang/json/MONSTER_from_json.py msgid "A large fish." -msgstr "" +msgstr "Es un pez... grande." #: lang/json/MONSTER_from_json.py msgid "huge fish" msgid_plural "huge fish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez enorme" +msgstr[1] "peces enormes" #. ~ Description for {'str_sp': 'huge fish'} #: lang/json/MONSTER_from_json.py msgid "A huge fish." -msgstr "" +msgstr "Es un pez... enorme." #: lang/json/MONSTER_from_json.py msgid "trout" msgid_plural "trouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trucha" +msgstr[1] "truchas" #. ~ Description for {'str': 'trout'} #: lang/json/MONSTER_from_json.py @@ -76127,12 +76321,14 @@ msgid "" "A trout. A fish made popular by father-son fishing trips, except for the " "part where you have to gut it." msgstr "" +"Es un trucha. Es un pez popular en las salidas de pesca padre-hijo, excepto " +"al momento de tener que destriparlos." #: lang/json/MONSTER_from_json.py msgid "brown trout" msgid_plural "brown trouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trucha marrón" +msgstr[1] "truchas marrones" #. ~ Description for {'str': 'brown trout'} #: lang/json/MONSTER_from_json.py @@ -76140,12 +76336,14 @@ msgid "" "A brown trout. A fish made popular by father-son fishing trips, except for " "the part where you have to gut it." msgstr "" +"Es un trucha marrón. Es un pez popular en las salidas de pesca padre-hijo, " +"excepto al momento de tener que destriparlos." #: lang/json/MONSTER_from_json.py msgid "brook trout" msgid_plural "brook trouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trucha de arroyo" +msgstr[1] "truchas de arroyo" #. ~ Description for {'str': 'brook trout'} #: lang/json/MONSTER_from_json.py @@ -76153,12 +76351,14 @@ msgid "" "A brook trout. A fish made popular by father-son fishing trips, except for " "the part where you have to gut it." msgstr "" +"Es un trucha de arroyo. Es un pez popular en las salidas de pesca padre-" +"hijo, excepto al momento de tener que destriparlos." #: lang/json/MONSTER_from_json.py msgid "lake trout" msgid_plural "lake trouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trucha de lago" +msgstr[1] "truchas de lago" #. ~ Description for {'str': 'lake trout'} #: lang/json/MONSTER_from_json.py @@ -76166,12 +76366,14 @@ msgid "" "A lake trout. A fish made popular by father-son fishing trips, except for " "the part where you have to gut it." msgstr "" +"Es un trucha de lago. Es un pez popular en las salidas de pesca padre-hijo, " +"excepto al momento de tener que destriparlos." #: lang/json/MONSTER_from_json.py msgid "rainbow trout" msgid_plural "rainbow trouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trucha arcoiris" +msgstr[1] "truchas arcoiris" #. ~ Description for {'str': 'rainbow trout'} #: lang/json/MONSTER_from_json.py @@ -76179,12 +76381,14 @@ msgid "" "A rainbow trout. A fish made popular by father-son fishing trips, except " "for the part where you have to gut it." msgstr "" +"Es un trucha arcoiris. Es un pez popular en las salidas de pesca padre-hijo," +" excepto al momento de tener que destriparlos." #: lang/json/MONSTER_from_json.py msgid "steelhead trout" msgid_plural "steelhead trouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trucha cabeza de acero" +msgstr[1] "truchas cabeza de acero" #. ~ Description for {'str': 'steelhead trout'} #: lang/json/MONSTER_from_json.py @@ -76192,59 +76396,69 @@ msgid "" "A steelhead trout. A fish made popular by father-son fishing trips, except " "for the part where you have to gut it." msgstr "" +"Es un trucha cabeza de acero. Es un pez popular en las salidas de pesca " +"padre-hijo, excepto al momento de tener que destriparlos." #: lang/json/MONSTER_from_json.py msgid "salmon" msgid_plural "salmons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "salmón" +msgstr[1] "salmones" #. ~ Description for {'str': 'salmon'} #: lang/json/MONSTER_from_json.py msgid "" "An Atlantic salmon. A very fatty, nutritious fish. Tastes great smoked." msgstr "" +"Es un salmón atlántico. Es un pez bastante gordo y nutritivo. Ahumado tiene " +"muy buen sabor." #: lang/json/MONSTER_from_json.py msgid "kokanee salmon" msgid_plural "kokanee salmons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "salmón kokanee" +msgstr[1] "salmones kokanee" #. ~ Description for {'str': 'kokanee salmon'} #: lang/json/MONSTER_from_json.py msgid "" "A Kokanee salmon. A very fatty, nutritious fish. Tastes great smoked." msgstr "" +"Es un salmón kokanee. Es un pez bastante gordo y nutritivo. Ahumado tiene " +"muy buen sabor." #: lang/json/MONSTER_from_json.py msgid "chinook salmon" msgid_plural "chinook salmons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "salmón chinook" +msgstr[1] "salmones chinook" #. ~ Description for {'str': 'chinook salmon'} #: lang/json/MONSTER_from_json.py msgid "" "A Chinook salmon. A very fatty, nutritious fish. Tastes great smoked." msgstr "" +"Es un salmón chinook. Es un pez bastante gordo y nutritivo. Ahumado tiene " +"muy buen sabor." #: lang/json/MONSTER_from_json.py msgid "coho salmon" msgid_plural "coho salmons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "salmón coho" +msgstr[1] "salmones coho" #. ~ Description for {'str': 'coho salmon'} #: lang/json/MONSTER_from_json.py msgid "A Coho salmon. A very fatty, nutritious fish. Tastes great smoked." msgstr "" +"Es un salmón coho. Es un pez bastante gordo y nutritivo. Ahumado tiene muy " +"buen sabor." #: lang/json/MONSTER_from_json.py msgid "whitefish" msgid_plural "whitefish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bacalaos" +msgstr[1] "bacalaos" #. ~ Description for {'str_sp': 'whitefish'} #: lang/json/MONSTER_from_json.py @@ -76258,8 +76472,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "largemouth bass" msgid_plural "largemouth bass" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "róbalo de boca grande" +msgstr[1] "róbalos de boca grande" #. ~ Description for {'str_sp': 'largemouth bass'} #: lang/json/MONSTER_from_json.py @@ -76270,8 +76484,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "smallmouth bass" msgid_plural "smallmouth bass" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "róbalo de boca chica" +msgstr[1] "róbalos de boca chica" #. ~ Description for {'str_sp': 'smallmouth bass'} #: lang/json/MONSTER_from_json.py @@ -76279,12 +76493,14 @@ msgid "" "A smallmouth bass. Being intolerant to pollution in the water, smallmouth " "bass are a good indicator of how clean it is." msgstr "" +"Es un róbalo de boca chica. Como son poco tolerantes a la contaminación en " +"el agua, su presencia indica que el agua está bastante limpia." #: lang/json/MONSTER_from_json.py msgid "striped bass" msgid_plural "striped bass" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "róbalo rayado" +msgstr[1] "róbalos rayados" #. ~ Description for {'str_sp': 'striped bass'} #: lang/json/MONSTER_from_json.py @@ -76298,8 +76514,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "white bass" msgid_plural "white bass" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "róbalo blanco" +msgstr[1] "róbalos blancos" #. ~ Description for {'str_sp': 'white bass'} #: lang/json/MONSTER_from_json.py @@ -76307,12 +76523,13 @@ msgid "" "A white bass. Common to the region, a slab-sided and spiny-rayed little " "fish." msgstr "" +"Es un róbalo blanco. Común en esta región, un pez pequeño, chato y espinoso." #: lang/json/MONSTER_from_json.py msgid "perch" msgid_plural "perches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lucioperca" +msgstr[1] "luciopercas" #. ~ Description for {'str': 'perch', 'str_pl': 'perches'} #: lang/json/MONSTER_from_json.py @@ -76320,45 +76537,51 @@ msgid "" "A small sprightly perch. A very bony fish, still got some tasty meat on it " "though." msgstr "" +"Es un lucioperca pequeño y vivaz. Es un pez con muchas espinas, pero igual " +"tiene algo de carne sabrosa." #: lang/json/MONSTER_from_json.py msgid "walleye" msgid_plural "walleyes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lucio amarillo" +msgstr[1] "lucios amarillo" #. ~ Description for {'str': 'walleye'} #: lang/json/MONSTER_from_json.py msgid "A walleye, a green-brown medium-sized fish with a white belly." msgstr "" +"Es un lucio amarillo, un pez mediano verde y marrón con el estómago blanco." #: lang/json/MONSTER_from_json.py msgid "sunfish" msgid_plural "sunfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez luna" +msgstr[1] "peces luna" #. ~ Description for {'str_sp': 'sunfish'} #: lang/json/MONSTER_from_json.py msgid "A sunfish. A small fish related to bass or bluegill." msgstr "" +"Es un pez luna. Es un pequeño pez relacionado con el róbalo o el perca sol." #: lang/json/MONSTER_from_json.py msgid "pumpkinseed sunfish" msgid_plural "pumpkinseed sunfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez semilla de calabaza" +msgstr[1] "peces semilla de calabaza" #. ~ Description for {'str_sp': 'pumpkinseed sunfish'} #: lang/json/MONSTER_from_json.py msgid "A pumpkinseed sunfish. A small fish related to bass or bluegill." msgstr "" +"Es un pez semilla de calabaza. Es un pequeño pez relacionado con el róbalo o" +" el perca sol." #: lang/json/MONSTER_from_json.py msgid "bluegill" msgid_plural "bluegills" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perca sol" +msgstr[1] "percas sol" #. ~ Description for {'str': 'bluegill'} #: lang/json/MONSTER_from_json.py @@ -76371,52 +76594,60 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "redbreast sunfish" msgid_plural "redbreast sunfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez luna de pecho rojo" +msgstr[1] "peces luna de pecho rojo" #. ~ Description for {'str_sp': 'redbreast sunfish'} #: lang/json/MONSTER_from_json.py msgid "A redbreast sunfish. A small fish related to bass or bluegill." msgstr "" +"Es un pez luna de pecho rojo. Es un pequeño pez relacionado con el róbalo o " +"el perca sol." #: lang/json/MONSTER_from_json.py msgid "green sunfish" msgid_plural "green sunfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez luna verde" +msgstr[1] "peces luna verdes" #. ~ Description for {'str_sp': 'green sunfish'} #: lang/json/MONSTER_from_json.py msgid "A green sunfish. A small fish related to bass or bluegill." msgstr "" +"Es un pez luna verde. Es un pequeño pez relacionado con el róbalo o el perca" +" sol." #: lang/json/MONSTER_from_json.py msgid "longear sunfish" msgid_plural "longear sunfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez luna orejón" +msgstr[1] "peces luna orejón" #. ~ Description for {'str_sp': 'longear sunfish'} #: lang/json/MONSTER_from_json.py msgid "A longear sunfish. A small fish related to bass or bluegill." msgstr "" +"Es un pez luna orejón. Es un pequeño pez relacionado con el róbalo o el " +"perca sol." #: lang/json/MONSTER_from_json.py msgid "redear sunfish" msgid_plural "redear sunfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez luna oreja roja" +msgstr[1] "peces luna oreja roja" #. ~ Description for {'str_sp': 'redear sunfish'} #: lang/json/MONSTER_from_json.py msgid "A redear sunfish. A small fish related to bass or bluegill." msgstr "" +"Es un pez luna oreja roja. Es un pequeño pez relacionado con el róbalo o el " +"perca sol." #: lang/json/MONSTER_from_json.py msgid "rock bass" msgid_plural "rock bass" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "róbalo roca" +msgstr[1] "róbalos roca" #. ~ Description for {'str_sp': 'rock bass'} #: lang/json/MONSTER_from_json.py @@ -76424,23 +76655,25 @@ msgid "" "A rock bass. Related to sunfish, this tiny fish has a camouflage-like " "patterning and a red eye." msgstr "" +"Es un róbalo roca. Es un pequeño pez relacionado al pez luna, que parece " +"camuflado y tiene los ojos rojos." #: lang/json/MONSTER_from_json.py msgid "calico bass" msgid_plural "calico bass" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "róbalo calico" +msgstr[1] "róbalos calico" #. ~ Description for {'str_sp': 'calico bass'} #: lang/json/MONSTER_from_json.py msgid "A calico bass. A medium-sized fish also known as a 'Crappie'." -msgstr "" +msgstr "Es un róbalo calico, un pez mediano también conocido como 'Crappie'." #: lang/json/MONSTER_from_json.py msgid "warmouth" msgid_plural "warmouths" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "peces boca de guerra" +msgstr[1] "pez boca de guerra" #. ~ Description for {'str': 'warmouth'} #: lang/json/MONSTER_from_json.py @@ -76448,12 +76681,14 @@ msgid "" "A warmouth, similar to a rock bass, this small fish is related to the " "sunfish." msgstr "" +"Es un pez boca de guerra, similar al róbalo roca, es un pequeño pez " +"relacionado al pez luna." #: lang/json/MONSTER_from_json.py msgid "bullhead" msgid_plural "bullheads" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bagre" +msgstr[1] "bagres" #. ~ Description for {'str': 'bullhead'} #: lang/json/MONSTER_from_json.py @@ -76463,31 +76698,31 @@ msgstr "Es un bagre, una especie del pez gato. Es delicioso rebozado y frito." #: lang/json/MONSTER_from_json.py msgid "channel catfish" msgid_plural "channel catfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez gato de canal" +msgstr[1] "peces gato de canal" #. ~ Description for {'str_sp': 'channel catfish'} #: lang/json/MONSTER_from_json.py msgid "A channel catfish, they have a forked tail and long whiskers." -msgstr "" +msgstr "Es un pez gato de canal, tiene la cola bifurcada y bigotes largos." #: lang/json/MONSTER_from_json.py msgid "white catfish" msgid_plural "white catfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez gato blanco" +msgstr[1] "peces gato blanco" #. ~ Description for {'str_sp': 'white catfish'} #: lang/json/MONSTER_from_json.py msgid "A white catfish, a small whiskered fish with a broad head." -msgstr "" +msgstr "Es un pez gato blanco, es pequeño, con bigotes y la cabeza ancha." #: lang/json/MONSTER_from_json.py msgctxt "fish" msgid "pike" msgid_plural "pikes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lucio" +msgstr[1] "lucios" #. ~ Description for {'ctxt': 'fish', 'str': 'pike'} #: lang/json/MONSTER_from_json.py @@ -76495,12 +76730,14 @@ msgid "" "A northern pike. Pike can be a pretty aggressive fish, careful around those" " teeth." msgstr "" +"Es un lucio del norte. Los lucios pueden ser peces muy agresivos, tené " +"cuidado con esos dientes." #: lang/json/MONSTER_from_json.py msgid "pickerel" msgid_plural "pickerels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lucio joven" +msgstr[1] "lucios joven" #. ~ Description for {'str': 'pickerel'} #: lang/json/MONSTER_from_json.py @@ -76510,8 +76747,8 @@ msgstr "Es un lucio joven. Se parece al lucio, pero es mucho más chico." #: lang/json/MONSTER_from_json.py msgid "muskellunge" msgid_plural "muskellunges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "muscallonge" +msgstr[1] "muscallonges" #. ~ Description for {'str': 'muskellunge'} #: lang/json/MONSTER_from_json.py @@ -76519,23 +76756,25 @@ msgid "" "A muskellunge. Closely related to pike, it shares the same aggression and " "sharp teeth." msgstr "" +"Es un muscallonge, también conocido como lucio rayado de aleta roja. Y " +"comparte con el lucio su agresividad y dientes filosos." #: lang/json/MONSTER_from_json.py msgid "white sucker" msgid_plural "white suckers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "matalote" +msgstr[1] "matalotes" #. ~ Description for {'str': 'white sucker'} #: lang/json/MONSTER_from_json.py msgid "A white sucker. It has a streamlined body with a round mouth." -msgstr "" +msgstr "Es un matalote. Tiene forma aerodinámica y la boca redonda." #: lang/json/MONSTER_from_json.py msgid "carp" msgid_plural "carps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "carpa" +msgstr[1] "carpas" #. ~ Description for {'str': 'carp'} #: lang/json/MONSTER_from_json.py @@ -76543,23 +76782,25 @@ msgid "" "A golden-yellow common carp. Some people think they don't taste great, but " "you can't afford to be choosy in the Cataclysm." msgstr "" +"Es una carpa común dorada. Algunos piensan que no tienen buen sabor, pero no" +" te podés dar el lujo de andar eligiendo en el Cataclismo." #: lang/json/MONSTER_from_json.py msgid "grass carp" msgid_plural "grass carps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "carpa forrajera" +msgstr[1] "carpas forrajera" #. ~ Description for {'str': 'grass carp'} #: lang/json/MONSTER_from_json.py msgid "A huge grass carp. A golden, herbivorous fish." -msgstr "" +msgstr "Es una enorme carpa forrajero. Un pez herbívoro y dorado." #: lang/json/MONSTER_from_json.py msgid "bowfin" msgid_plural "bowfins" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "amia calva" +msgstr[1] "amias calva" #. ~ Description for {'str': 'bowfin'} #: lang/json/MONSTER_from_json.py @@ -76567,12 +76808,15 @@ msgid "" "A bowfin. These fish are related to gar but without the huge teeth, skin " "rending scales, and aggression." msgstr "" +"Es un pez conocido como amia calva. Estos peces están emparentados con el " +"lucio pero no tienen sus enormes dientes, ni sus escamas lacerantes, ni su " +"agresividad." #: lang/json/MONSTER_from_json.py msgid "fallfish" msgid_plural "fallfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "piscardo" +msgstr[1] "piscardos" #. ~ Description for {'str_sp': 'fallfish'} #: lang/json/MONSTER_from_json.py @@ -76580,12 +76824,14 @@ msgid "" "A fallfish. These fish are related to gar but without the huge teeth, skin " "rending scales, and aggression." msgstr "" +"Es un piscardo. Estos peces están emparentados con el lucio pero no tienen " +"sus enormes dientes, ni sus escamas lacerantes, ni su agresividad." #: lang/json/MONSTER_from_json.py msgid "lobster" msgid_plural "lobsters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "langosta" +msgstr[1] "langostas" #. ~ Description for {'str': 'lobster'} #: lang/json/MONSTER_from_json.py @@ -76594,12 +76840,15 @@ msgid "" "marketing genius started selling them to people as a delicacy and they took " "off in popularity… and price." msgstr "" +"Estas cosas fueron consideradas alguna vez como una plaga que no valía la " +"pena comerse. Después, algún genio del marketing empezó a venderlas como una" +" exquisitez y se volvieron muy populares... y caras." #: lang/json/MONSTER_from_json.py msgid "crayfish" msgid_plural "crayfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cangrejo de río" +msgstr[1] "cangrejos de río" #. ~ Description for {'str_sp': 'crayfish'} #: lang/json/MONSTER_from_json.py @@ -76607,6 +76856,8 @@ msgid "" "If you could get a hold of a bunch more of these, a hefty pot of boiling " "water, and some spicy seasonings…" msgstr "" +"Si pudieras conseguir una buena cantidad de estos, una olla grande con agua " +"hirviendo, y algunos condimentos..." #: lang/json/MONSTER_from_json.py msgid "Blinky" @@ -76622,8 +76873,8 @@ msgstr "Un extraño pez de tres ojos." #: lang/json/MONSTER_from_json.py msgid "freshwater eel" msgid_plural "freshwater eels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anguila de agua dulce" +msgstr[1] "anguilas de agua dulce" #. ~ Description for {'str': 'freshwater eel'} #: lang/json/MONSTER_from_json.py @@ -76638,8 +76889,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant crayfish" msgid_plural "giant crayfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cangrejo de río gigante" +msgstr[1] "cangrejos de río gigante" #. ~ Description for {'str_sp': 'giant crayfish'} #: lang/json/MONSTER_from_json.py @@ -76653,8 +76904,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "razorclaw" msgid_plural "razorclaws" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "garrafilada" +msgstr[1] "garrafiladas" #. ~ Description for {'str': 'razorclaw'} #: lang/json/MONSTER_from_json.py @@ -76671,8 +76922,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant carp" msgid_plural "giant carps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "carpa gigante" +msgstr[1] "carpas gigantes" #. ~ Description for {'str': 'giant carp'} #: lang/json/MONSTER_from_json.py @@ -76686,8 +76937,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant salmon" msgid_plural "giant salmons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "salmón gigante" +msgstr[1] "salmones gigantes" #. ~ Description for {'str': 'giant salmon'} #: lang/json/MONSTER_from_json.py @@ -76701,8 +76952,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "seweranha" msgid_plural "seweranhas" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "piraña de cloaca" +msgstr[1] "pirañas de cloaca" #. ~ Description for {'str': 'seweranha'} #: lang/json/MONSTER_from_json.py @@ -76716,8 +76967,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal boomer" msgid_plural "fungal boomers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "boomer fúngico" +msgstr[1] "boomers fúngicos" #. ~ Description for {'str': 'fungal boomer'} #: lang/json/MONSTER_from_json.py @@ -76731,8 +76982,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal blossom" msgid_plural "fungal blossoms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "capullo fúngico" +msgstr[1] "capullos fúngicos" #. ~ Description for {'str': 'fungal blossom'} #: lang/json/MONSTER_from_json.py @@ -76746,8 +76997,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal hedgerow" msgid_plural "fungal hedgerows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "seto fúngico" +msgstr[1] "setos fúngicos" #. ~ Description for {'str': 'fungal hedgerow'} #: lang/json/MONSTER_from_json.py @@ -76762,8 +77013,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal tendril" msgid_plural "fungal tendrils" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zarcillo fúngico" +msgstr[1] "zarcillos fúngicos" #. ~ Description for {'str': 'fungal tendril'} #: lang/json/MONSTER_from_json.py @@ -76774,8 +77025,8 @@ msgstr "Un zarcillo largo y aparentemente delicado, con la punta filosa." #: lang/json/terrain_from_json.py msgid "fungal wall" msgid_plural "fungal walls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pared fúngica" +msgstr[1] "paredes fúngicas" #. ~ Description for {'str': 'fungal wall'} #: lang/json/MONSTER_from_json.py @@ -76785,12 +77036,16 @@ msgid "" "constrict around it, pulling new mass into its shape. They move with an " "inexorable strength that could snap limbs." msgstr "" +"Es un verdadera pared de hongos que creció como una defensa natural para el " +"chapitel fúngico. Cada algunos segundos, nuevas esporas emergen de su " +"superficie, y los zarcillos se aprietan alrededor agregando más masa a la " +"forma. Se mueve con una fuerza inexorable que puede romper huesos." #: lang/json/MONSTER_from_json.py msgid "fungaloid" msgid_plural "fungaloids" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "fungaloide" +msgstr[1] "fungaloides" #. ~ Description for {'str': 'fungaloid'} #: lang/json/MONSTER_from_json.py @@ -76807,8 +77062,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal spire" msgid_plural "fungal spires" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "chapitel fúngico" +msgstr[1] "chapiteles fúngicos" #. ~ Description for {'str': 'fungal spire'} #: lang/json/MONSTER_from_json.py @@ -76822,8 +77077,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant fungal blossom" msgid_plural "giant fungal blossoms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "capullo fúngico gigante" +msgstr[1] "capullos fúngicos gigantes" #. ~ Description for {'str': 'giant fungal blossom'} #: lang/json/MONSTER_from_json.py @@ -76837,8 +77092,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py lang/json/overmap_terrain_from_json.py msgid "fungal tower" msgid_plural "fungal towers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torre fúngica" +msgstr[1] "torres fúngicas" #. ~ Description for {'str': 'fungal tower'} #: lang/json/MONSTER_from_json.py @@ -76858,8 +77113,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal sporeling" msgid_plural "fungal sporelings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espora fúngica" +msgstr[1] "esporas fúngicas" #. ~ Description for {'str': 'fungal sporeling'} #: lang/json/MONSTER_from_json.py @@ -76875,8 +77130,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "spore cloud" msgid_plural "spore clouds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "nube de esporas" +msgstr[1] "nubes de esporas" #. ~ Description for {'str': 'spore cloud'} #: lang/json/MONSTER_from_json.py @@ -76886,8 +77141,8 @@ msgstr "Es una masa de esporas del tamaño de puños flotando por el aire." #: lang/json/MONSTER_from_json.py msgid "fungal zombie" msgid_plural "fungal zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi fúngico" +msgstr[1] "zombis fúngicos" #. ~ Description for {'str': 'fungal zombie'} #: lang/json/MONSTER_from_json.py @@ -76902,8 +77157,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bloated fungal zombie" msgid_plural "bloated fungal zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi fúngico hinchado" +msgstr[1] "zombis fúngicos hinchados" #. ~ Description for {'str': 'bloated fungal zombie'} #: lang/json/MONSTER_from_json.py @@ -76912,12 +77167,15 @@ msgid "" "like fungal zombie looks like it could violently burst with a cloud of " "noxious spores." msgstr "" +"Con la piel gris hinchada y una gruesa capa de moho, este zombi fúngico " +"similar a un globo, parece que pudiera explotar violentamente y generar una " +"nube de esporas nocivas." #: lang/json/MONSTER_from_json.py msgid "pollinator zombie" msgid_plural "pollinator zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi polinizador" +msgstr[1] "zombis polinizadores" #. ~ Description for {'str': 'pollinator zombie'} #: lang/json/MONSTER_from_json.py @@ -76925,20 +77183,26 @@ msgid "" "Every breath of this crooked, fungus-ridden zombie emits a fine dust of " "spores, and it constantly looks like it's emerging from a cloud of mist." msgstr "" +"Cada respiro de este zombi encorvado y atestado de hongos, emite un fino " +"polvo de esporas, y parece estar constantemente saliendo de una nube de " +"vapor." #: lang/json/MONSTER_from_json.py msgid "fungal juggernaut" msgid_plural "fungal juggernauts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gigante fúngico" +msgstr[1] "gigantes fúngicos" #. ~ Description for {'str': 'fungal juggernaut'} #: lang/json/MONSTER_from_json.py msgid "" "Fungi bloom from the crevices in the ossified plates of this ponderous bone " -"titan, and it seems even it's eyes are lost to it. A dust of spores lands " -"on the ground with every sluggish stomp of it's heavy legs." +"titan, and it seems even its eyes are lost to it. A dust of spores lands on" +" the ground with every sluggish stomp of its heavy legs." msgstr "" +"Este titán de hueso muy pesado tiene hongos floreciendo de las aberturas de " +"sus placas osificadas, y parece que hasta en sus ojos. Una nube de esporas " +"cae al suelo con cada torpe paso de sus pesadas piernas." #: lang/json/MONSTER_from_json.py msgid "fungal child" @@ -76960,8 +77224,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal ant" msgid_plural "fungal ants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hormiga fúngica" +msgstr[1] "hormigas fúngicas" #. ~ Description for {'str': 'fungal ant'} #: lang/json/MONSTER_from_json.py @@ -76976,8 +77240,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal spider" msgid_plural "fungal spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña fúngica" +msgstr[1] "arañas fúngicas" #. ~ Description for {'str': 'fungal spider'} #: lang/json/MONSTER_from_json.py @@ -76986,12 +77250,15 @@ msgid "" " blooming fungi. It is leaving behind a trail of tainted secretions when " "the spider struggles to drag it along the ground." msgstr "" +"El abdomen de esta gigante araña de apariencia enfermiza está cubierto de " +"muchos hongos florecientes. Va dejando un rastro de secreciones contaminadas" +" cada vez que la araña se arrastra con esfuerzo por el suelo." #: lang/json/MONSTER_from_json.py msgid "dark wyrm" msgid_plural "dark wyrms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "wyrm oscuro" +msgstr[1] "wyrms oscuros" #. ~ Description for {'str': 'dark wyrm'} #: lang/json/MONSTER_from_json.py @@ -77007,8 +77274,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "graboid" msgid_plural "graboids" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "graboide" +msgstr[1] "graboides" #. ~ Description for {'str': 'graboid'} #: lang/json/MONSTER_from_json.py @@ -77025,8 +77292,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "half worm" msgid_plural "half worms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mediogusano" +msgstr[1] "mediogusanos" #. ~ Description for {'str': 'half worm'} #: lang/json/MONSTER_from_json.py @@ -77036,8 +77303,8 @@ msgstr "Una parte movediza cortada de un gusano gigante herido." #: lang/json/MONSTER_from_json.py msgid "giant worm" msgid_plural "giant worms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gusano gigante" +msgstr[1] "gusanos gigantes" #. ~ Description for {'str': 'giant worm'} #: lang/json/MONSTER_from_json.py @@ -77053,8 +77320,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skittering plague" msgid_plural "skittering plagues" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "plaga escurridiza" +msgstr[1] "plagas escurridizas" #. ~ Description for {'str': 'skittering plague'} #: lang/json/MONSTER_from_json.py @@ -77066,8 +77333,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "plague nymph" msgid_plural "plague nymphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ninfa plaga" +msgstr[1] "ninfas plagas" #. ~ Description for {'str': 'plague nymph'} #: lang/json/MONSTER_from_json.py @@ -77077,8 +77344,8 @@ msgstr "Es una cucaracha mutante e infectada del tamaño de una rata." #: lang/json/MONSTER_from_json.py msgid "plague vector" msgid_plural "plague vectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "portador de plaga" +msgstr[1] "portadores de plaga" #. ~ Description for {'str': 'plague vector'} #: lang/json/MONSTER_from_json.py @@ -77093,8 +77360,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant cockroach" msgid_plural "giant cockroaches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cucaracha gigante" +msgstr[1] "cucarachas gigantes" #. ~ Description for {'str': 'giant cockroach', 'str_pl': 'giant cockroaches'} #: lang/json/MONSTER_from_json.py @@ -77104,8 +77371,8 @@ msgstr "Es una cucaracha mutante, del tamaño de un perro pequeño." #: lang/json/MONSTER_from_json.py msgid "giant cockroach nymph" msgid_plural "giant cockroach nymphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cucaracha ninfa gigante" +msgstr[1] "cucarachas ninfas gigantes" #. ~ Description for {'str': 'giant cockroach nymph'} #: lang/json/MONSTER_from_json.py @@ -77115,8 +77382,8 @@ msgstr "Es una cucaracha mutante bebé, del tamaño de una rata." #: lang/json/MONSTER_from_json.py msgid "pregnant giant cockroach" msgid_plural "pregnant giant cockroaches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cucaracha gigante embarazada" +msgstr[1] "cucarachas gigantes embarazadas" #. ~ Description for {'str': 'pregnant giant cockroach', 'str_pl': 'pregnant #. giant cockroaches'} @@ -77124,12 +77391,14 @@ msgstr[1] "" msgid "" "A mutant cockroach the size of a small dog. Its abdomen is heavily swollen." msgstr "" +"Es una cucaracha mutante, del tamaño de un perro pequeño. Tiene el abdomen " +"muy hinchado." #: lang/json/MONSTER_from_json.py msgid "giant bee" msgid_plural "giant bees" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "abeja gigante" +msgstr[1] "abejas gigantes" #. ~ Description for {'str': 'giant bee'} #: lang/json/MONSTER_from_json.py @@ -77144,8 +77413,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant centipede" msgid_plural "giant centipedes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ciempiés gigante" +msgstr[1] "ciempiés gigantes" #. ~ Description for {'str': 'giant centipede'} #: lang/json/MONSTER_from_json.py @@ -77189,8 +77458,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant mosquito" msgid_plural "giant mosquitos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mosquito gigante" +msgstr[1] "mosquitos gigantes" #. ~ Description for {'str': 'giant mosquito'} #: lang/json/MONSTER_from_json.py @@ -77204,8 +77473,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant cellar spider" msgid_plural "giant cellar spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña gigante de patas largas" +msgstr[1] "arañas gigantes de patas largas" #. ~ Description for {'str': 'giant cellar spider'} #: lang/json/MONSTER_from_json.py @@ -77221,8 +77490,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "immature giant cellar spider" msgid_plural "immature giant cellar spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña gigante de patas largas inmadura" +msgstr[1] "arañas gigantes de patas largas inmaduras" #. ~ Description for {'str': 'immature giant cellar spider'} #: lang/json/MONSTER_from_json.py @@ -77236,8 +77505,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant jumping spider" msgid_plural "giant jumping spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña saltadora gigante" +msgstr[1] "arañas saltadoras gigantes" #. ~ Description for {'str': 'giant jumping spider'} #: lang/json/MONSTER_from_json.py @@ -77251,8 +77520,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant trapdoor spider" msgid_plural "giant trapdoor spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña tapadera gigante" +msgstr[1] "arañas tapaderas gigantes" #. ~ Description for {'str': 'giant trapdoor spider'} #: lang/json/MONSTER_from_json.py @@ -77266,8 +77535,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant web spider" msgid_plural "giant web spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña gigante" +msgstr[1] "arañas gigantes" #. ~ Description for {'str': 'giant web spider'} #: lang/json/MONSTER_from_json.py @@ -77281,8 +77550,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "immature giant web spider" msgid_plural "immature giant web spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña gigante inmadura" +msgstr[1] "arañas gigantes inmaduras" #. ~ Description for {'str': 'immature giant web spider'} #: lang/json/MONSTER_from_json.py @@ -77296,8 +77565,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant black widow" msgid_plural "giant black widows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "viuda negra gigante" +msgstr[1] "viudas negras gigantes" #. ~ Description for {'str': 'giant black widow'} #: lang/json/MONSTER_from_json.py @@ -77311,8 +77580,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant black widow spiderling" msgid_plural "giant black widow spiderlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría de viuda negra gigante" +msgstr[1] "crías de viuda negra gigante" #. ~ Description for {'str': 'giant black widow spiderling'} #: lang/json/MONSTER_from_json.py @@ -77326,8 +77595,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant wolf spider" msgid_plural "giant wolf spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña lobo gigante" +msgstr[1] "arañas lobo gigantes" #. ~ Description for {'str': 'giant wolf spider'} #: lang/json/MONSTER_from_json.py @@ -77341,8 +77610,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant wasp" msgid_plural "giant wasps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "avispa gigante" +msgstr[1] "avispas gigantes" #. ~ Description for {'str': 'giant wasp'} #: lang/json/MONSTER_from_json.py @@ -77357,8 +77626,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "dermatik" msgid_plural "dermatiks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dermatik" +msgstr[1] "dermatiks" #. ~ Description for {'str': 'dermatik'} #: lang/json/MONSTER_from_json.py @@ -77372,8 +77641,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "dermatik larva" msgid_plural "dermatik larvae" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "larva de dermatik" +msgstr[1] "larvas de dermatik" #. ~ Description for {'str': 'dermatik larva', 'str_pl': 'dermatik larvae'} #: lang/json/MONSTER_from_json.py @@ -77387,8 +77656,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant ant" msgid_plural "giant ants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hormiga gigante" +msgstr[1] "hormigas gigantes" #. ~ Description for {'str': 'giant ant'} #: lang/json/MONSTER_from_json.py @@ -77402,8 +77671,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant acidic ant" msgid_plural "giant acidic ants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hormiga ácida gigante" +msgstr[1] "hormigas ácidas gigantes" #. ~ Description for {'str': 'giant acidic ant'} #: lang/json/MONSTER_from_json.py @@ -77418,8 +77687,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "acidic ant larva" msgid_plural "acidic ant larvae" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "larva de hormiga ácida" +msgstr[1] "larvas de hormiga ácida" #. ~ Description for {'str': 'acidic ant larva', 'str_pl': 'acidic ant #. larvae'} @@ -77435,8 +77704,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "acidic queen ant" msgid_plural "acidic queen ants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hormiga ácida reina" +msgstr[1] "hormigas ácidas reinas" #. ~ Description for {'str': 'acidic queen ant'} #: lang/json/MONSTER_from_json.py @@ -77453,8 +77722,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "acidic soldier ant" msgid_plural "acidic soldier ants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hormiga ácida soldado" +msgstr[1] "hormigas ácidas soldados" #. ~ Description for {'str': 'acidic soldier ant'} #: lang/json/MONSTER_from_json.py @@ -77470,8 +77739,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "ant larva" msgid_plural "ant larvae" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "larva de hormiga" +msgstr[1] "larvas de hormiga" #. ~ Description for {'str': 'ant larva', 'str_pl': 'ant larvae'} #: lang/json/MONSTER_from_json.py @@ -77485,8 +77754,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "queen ant" msgid_plural "queen ants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hormiga reina" +msgstr[1] "hormigas reina" #. ~ Description for {'str': 'queen ant'} #: lang/json/MONSTER_from_json.py @@ -77500,8 +77769,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "soldier ant" msgid_plural "soldier ants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hormiga soldado" +msgstr[1] "hormigas soldado" #. ~ Description for {'str': 'soldier ant'} #: lang/json/MONSTER_from_json.py @@ -77515,8 +77784,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant locust" msgid_plural "giant locusts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "langosta gigante" +msgstr[1] "langostas gigantes" #. ~ Description for {'str': 'giant locust'} #: lang/json/MONSTER_from_json.py @@ -77530,8 +77799,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "locust nymph" msgid_plural "locust nymphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "langosta ninfa" +msgstr[1] "langostas ninfas" #. ~ Description for {'str': 'locust nymph'} #: lang/json/MONSTER_from_json.py @@ -77545,36 +77814,43 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fleshy shambler" msgid_plural "fleshy shamblers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desorden cárnico" +msgstr[1] "desórdenes cárnicos" #. ~ Description for {'str': 'fleshy shambler'} #: lang/json/MONSTER_from_json.py msgid "" "An amalgamation of throbbing organs from various creatures have fused " -"together into this lurching, vaguely humanoid shape. It's myriad roughly " +"together into this lurching, vaguely humanoid shape. Its myriad roughly " "formed mouths sussurate in a chorus of sibilant groans and whispers." msgstr "" +"Es una amalgama de órganos palpitantes de diversas criaturas fusionadas en " +"esta tambaleante forma vagamente humana. Sus innumerables bocas groseramente" +" formadas susurran un coro de gemidos sibilantes." #: lang/json/MONSTER_from_json.py msgid "flesh golem" msgid_plural "flesh golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golem de carne" +msgstr[1] "golems de carne" #. ~ Description for {'str': 'flesh golem'} #: lang/json/MONSTER_from_json.py msgid "" "A seeping conglomeration of spasming muscle and organs have fused together " "into this towering caricature of the human form. Various organs fall off of" -" it's hulking body only to be reabsorbed moments later." +" its hulking body only to be reabsorbed moments later." msgstr "" +"Es una conglomeración con filtraciones de músculos y órganos convulsionando " +"que se han fusionado en esta torre que es una caricatura de la forma humana." +" Varios órganos se caen de su descomunal cuerpo pero son reabsorbidos " +"momentos después." #: lang/json/MONSTER_from_json.py msgid "jabberwock" msgid_plural "jabberwocks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jabberwock" +msgstr[1] "jabberwocks" #. ~ Description for {'str': 'jabberwock'} #: lang/json/MONSTER_from_json.py @@ -77591,8 +77867,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bat" msgid_plural "bats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "murciélago" +msgstr[1] "murciélagos" #. ~ Description for {'str': 'bat'} #: lang/json/MONSTER_from_json.py @@ -77609,8 +77885,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "black bear cub" msgid_plural "black bear cubs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "osezno negro" +msgstr[1] "oseznos negros" #. ~ Description for {'str': 'black bear cub'} #: lang/json/MONSTER_from_json.py @@ -77624,8 +77900,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "black bear" msgid_plural "black bears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "oso negro" +msgstr[1] "osos negros" #. ~ Description for {'str': 'black bear'} #: lang/json/MONSTER_from_json.py @@ -77641,8 +77917,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "beaver" msgid_plural "beavers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "castor" +msgstr[1] "castores" #. ~ Description for {'str': 'beaver'} #: lang/json/MONSTER_from_json.py @@ -77660,8 +77936,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "black rat" msgid_plural "black rats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rata negra" +msgstr[1] "ratas negras" #. ~ Description for {'str': 'black rat'} #: lang/json/MONSTER_from_json.py @@ -77677,8 +77953,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "wild boar piglet" msgid_plural "wild boar piglets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jabato" +msgstr[1] "jabatos" #. ~ Description for wild boar piglet #. ~ Description for wild boar @@ -77689,18 +77965,22 @@ msgid "" "pig went feral in the wilderness. Its population has skyrocketed in the US " "during the last few decades." msgstr "" +"No es originalmente nativo de Estados Unidos, este omnívoro salvaje es una " +"cruza de raza entre el jabalí de Eurasia que escapó de las cacerías, y el " +"chancho domesticado que se volvió salvaje en la naturaleza. Su población " +"aumentó mucho en Estados Unidos en las últimas décadas." #: lang/json/MONSTER_from_json.py msgid "wild boar" msgid_plural "wild boars" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jabalí" +msgstr[1] "jabalíes" #: lang/json/MONSTER_from_json.py msgid "bobcat" msgid_plural "bobcats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lince" +msgstr[1] "linces" #. ~ Description for {'str': 'bobcat'} #: lang/json/MONSTER_from_json.py @@ -77708,24 +77988,29 @@ 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 "" +"Es un felino salvaje con manchas que vive a lo largo de todo Norte América. " +"No es una verdadera amenaza para los humanos, pero puede ser agresivo cuando" +" se siente amenazado." #: lang/json/MONSTER_from_json.py msgid "shorthair kitten" msgid_plural "shorthair kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito de pelo corto" +msgstr[1] "gatitos de pelo corto" #. ~ Description for {'str': 'shorthair kitten'} #: lang/json/MONSTER_from_json.py msgid "" "A cuddly kitten meowing and scampering amidst the death. Currently feral." msgstr "" +"Es un adorable gatito maullando y correteando entre la muerte. Ahora es " +"salvaje." #: lang/json/MONSTER_from_json.py msgid "shorthair cat" msgid_plural "shorthair cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato de pelo corto" +msgstr[1] "gatos de pelo corto" #. ~ Description for {'str': 'shorthair cat'} #: lang/json/MONSTER_from_json.py @@ -77741,8 +78026,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "longhair cat" msgid_plural "longhair cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato de pelo largo" +msgstr[1] "gatos de pelo largo" #. ~ Description for longhair cat #: lang/json/MONSTER_from_json.py @@ -77750,12 +78035,14 @@ msgid "" "This cat's long fur appears difficult to groom, but the cat seems to manage " "it despite the environmental conditions." msgstr "" +"El largo pelaje de este gato parece difícil de acicalar, pero el gato se " +"maneja a pesar de las condiciones ambientales." #: lang/json/MONSTER_from_json.py msgid "longhair kitten" msgid_plural "longhair kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito de pelo largo" +msgstr[1] "gatitos de pelo largo" #. ~ Description for longhair kitten #: lang/json/MONSTER_from_json.py @@ -77763,12 +78050,14 @@ msgid "" "Barely more than a ball of fluff with eyes, this kitten looks like a " "longhair breed." msgstr "" +"Es poco más que una pelota de pelusa con ojos, este gatito parece de una " +"raza de pelo largo." #: lang/json/MONSTER_from_json.py msgid "Maine coon cat" msgid_plural "Maine coon cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato Maine coon" +msgstr[1] "gatos Maine coon" #. ~ Description for Maine coon cat #: lang/json/MONSTER_from_json.py @@ -77776,24 +78065,28 @@ msgid "" "Impressively large for a domestic cat, this thick-haired breed was once " "native to the state of Maine." msgstr "" +"Es un gato doméstico impresionantemente grande con mucho pelo. Esta raza fue" +" alguna vez nativa del estado de Maine." #: lang/json/MONSTER_from_json.py msgid "Maine coon kitten" msgid_plural "Maine coon kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito Maine coon" +msgstr[1] "gatitos Maine coon" #. ~ Description for Maine coon kitten #: lang/json/MONSTER_from_json.py msgid "" "This young Maine coon has tufted ears and a striking pattern on its face." msgstr "" +"Este joven Maine coon tiene las orejas en punta y un llamativo patrón en la " +"cara." #: lang/json/MONSTER_from_json.py msgid "Siamese cat" msgid_plural "Siamese cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato siamés" +msgstr[1] "gatos siameses" #. ~ Description for Siamese cat #: lang/json/MONSTER_from_json.py @@ -77801,12 +78094,14 @@ msgid "" "This cat has the distinctive dark extremeties of a Siamese, first native to " "Asia but a common domestic breed in North America." msgstr "" +"Este gato siamés tiene las extremidades distintivamente negras. Eran nativos" +" de Asia pero se convirtieron en una raza doméstica común de Norte América." #: lang/json/MONSTER_from_json.py msgid "Siamese kitten" msgid_plural "Siamese kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito siamés" +msgstr[1] "gatitos siameses" #. ~ Description for Siamese kitten #: lang/json/MONSTER_from_json.py @@ -77814,12 +78109,14 @@ msgid "" "With cream-colored fur and dark points, you guess this kitten must be a " "young Siamese." msgstr "" +"Con el pelaje color crema y las puntas negras, podés darte cuenta que este " +"gatito es un joven siamés." #: lang/json/MONSTER_from_json.py msgid "Persian cat" msgid_plural "Persian cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato persia" +msgstr[1] "gatos persias" #. ~ Description for Persian cat #: lang/json/MONSTER_from_json.py @@ -77827,12 +78124,14 @@ msgid "" "The short nose and rounded face of this cat suggest it comes from the " "popular Persian breed." msgstr "" +"La nariz corta y la cara redondeada de este gato sugieren que es de la " +"popular raza persia." #: lang/json/MONSTER_from_json.py msgid "Persian kitten" msgid_plural "Persian kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito persia" +msgstr[1] "gatitos persias" #. ~ Description for Persian kitten #: lang/json/MONSTER_from_json.py @@ -77840,12 +78139,14 @@ msgid "" "An adorably squashed nose and sad pleading eyes beg you to adopt this tiny " "Persian." msgstr "" +"Una nariz adorablemente apretada y ojos tristes te ruegan que adoptes a este" +" pequeño persia." #: lang/json/MONSTER_from_json.py msgid "Bengal cat" msgid_plural "Bengal cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato bengala" +msgstr[1] "gatos bengala" #. ~ Description for Bengal cat #: lang/json/MONSTER_from_json.py @@ -77853,24 +78154,28 @@ msgid "" "Looking like a spotted wild cat, the Bengal breed derives from the Asian " "leopard cat and Egyptian Mau." msgstr "" +"Parece un gato manchado salvaje, la raza de bengala desciende del leopardo " +"asiático y del Mau Egipcio." #: lang/json/MONSTER_from_json.py msgid "Bengal kitten" msgid_plural "Bengal kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito bengala" +msgstr[1] "gatitos bengala" #. ~ Description for Bengal kitten #: lang/json/MONSTER_from_json.py msgid "" "You have seen spots like this on Bengal cats, but this one is just a kitten." msgstr "" +"Ya viste manchas similares a este en el gato bengala, pero este parece ser " +"una cría." #: lang/json/MONSTER_from_json.py msgid "Devon Rex cat" msgid_plural "Devon Rex cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato Devon Rex" +msgstr[1] "gatos Devon Rex" #. ~ Description for Devon Rex cat #: lang/json/MONSTER_from_json.py @@ -77878,12 +78183,14 @@ msgid "" "An unusual-looking cat with strikingly large eyes and ears, sporting a soft " "curly coat of fur." msgstr "" +"Es un gato de una apariencia inusual, con grandes ojos y orejas arrugados y " +"pelaje suave y rizado." #: lang/json/MONSTER_from_json.py msgid "Devon Rex kitten" msgid_plural "Devon Rex kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito Devon Rex" +msgstr[1] "gatitos Devon Rex" #. ~ Description for Devon Rex kitten #: lang/json/MONSTER_from_json.py @@ -77891,12 +78198,14 @@ msgid "" "This curly-coated kitten has enormous ears and inquisitive eyes, possibly a " "Devon Rex." msgstr "" +"Este gatito de pelaje rizado tiene orejas enormes y ojos inquisidores, " +"posiblemente sea una cría de Devon Rex." #: lang/json/MONSTER_from_json.py msgid "Sphynx cat" msgid_plural "Sphynx cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato esfinge" +msgstr[1] "gatos esfinge" #. ~ Description for Sphynx cat #: lang/json/MONSTER_from_json.py @@ -77904,12 +78213,14 @@ msgid "" "The Sphynx cat has practically no fur on its body, exposing its curiously " "wrinkled skin." msgstr "" +"El gato esfinge casi no tiene pelaje en su cuerpo, lo que deja expuesta su " +"curiosa piel arrugada." #: lang/json/MONSTER_from_json.py msgid "Sphynx kitten" msgid_plural "Sphynx kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito esfinge" +msgstr[1] "gatitos esfinge" #. ~ Description for Sphynx kitten #: lang/json/MONSTER_from_json.py @@ -77917,12 +78228,14 @@ msgid "" "An almost total lack of fur on this kitten suggests it is of the hairless " "Sphynx breed." msgstr "" +"Es un gatito casí totalmente carente de pelaje, lo que sugiere que es una " +"cría de la raza esfinge." #: lang/json/MONSTER_from_json.py msgid "tabby cat" msgid_plural "tabby cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato atigrado" +msgstr[1] "gatos atigrados" #. ~ Description for tabby cat #: lang/json/MONSTER_from_json.py @@ -77930,12 +78243,14 @@ msgid "" "Marked with the characteristic 'M' on its forehead and decorated with " "swirling stripes, the tabby's markings must provide excellent camouflage." msgstr "" +"Marcado con esa característica 'M' en la frente y decorado con rayas " +"arremolinadas. Las marcas de este gato deben brindar un excelente camuflaje." #: lang/json/MONSTER_from_json.py msgid "tabby kitten" msgid_plural "tabby kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito atigrado" +msgstr[1] "gatitos atigrados" #. ~ Description for tabby kitten #: lang/json/MONSTER_from_json.py @@ -77943,12 +78258,14 @@ msgid "" "Sharp lines around the eyes and familiar wavy stripes mark this kitten as a " "common tabby." msgstr "" +"Unas línas bien definidas alrededor de los ojos y las familiares rayas " +"ondulantes, muestran que este gatito es cría de atigrado." #: lang/json/MONSTER_from_json.py msgid "calico cat" msgid_plural "calico cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato calicó" +msgstr[1] "gatos calicó" #. ~ Description for calico cat #: lang/json/MONSTER_from_json.py @@ -77957,12 +78274,15 @@ msgid "" " this cat is probably female. The Calico was the Maryland State cat (back " "when there were still states)." msgstr "" +"Parcialmente blanco con pedazos naranjas y negros, los colores de este " +"calicó te dicen que este gato es probablemente hembra. El calicó era el gato" +" del estado de Maryland (eso cuando todavía había estados)." #: lang/json/MONSTER_from_json.py msgid "calico kitten" msgid_plural "calico kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito calicó" +msgstr[1] "gatitos calicó" #. ~ Description for calico kitten #: lang/json/MONSTER_from_json.py @@ -77970,12 +78290,14 @@ msgid "" "Splotches of tan and grey mark this young cat as a calico, and probably " "female." msgstr "" +"Manchas marrones y grises te dicen que este joven gato es un calicó, y " +"probablemente sea hembra." #: lang/json/MONSTER_from_json.py msgid "golden chonker" msgid_plural "golden chonkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gordito dorado" +msgstr[1] "gorditos dorados" #. ~ Description for golden chonker #: lang/json/MONSTER_from_json.py @@ -77984,12 +78306,15 @@ msgid "" "internet cat forums for its chonkiness and majestic golden mane. Appears " "surprisingly well-groomed for a feral cat." msgstr "" +"Este impresionante felino alguna vez ha sido celebrado en en los foros de " +"internet por ser gordito y su majestuosidad dorada. Parece sorprendentemente" +" limpio para un gato salvajo." #: lang/json/MONSTER_from_json.py msgid "yellow kitten" msgid_plural "yellow kittens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gatito amarillo" +msgstr[1] "gatitos amarillos" #. ~ Description for yellow kitten #: lang/json/MONSTER_from_json.py @@ -77997,12 +78322,14 @@ msgid "" "This poor little kitten is starving! You wonder if you have some cat food " "around…" msgstr "" +"¡Este pobre gatito se está muriendo de hambre! Tratás de pensar si tenés " +"comida para gato en algún lugar..." #: lang/json/MONSTER_from_json.py msgid "chipmunk" msgid_plural "chipmunks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tamia" +msgstr[1] "tamias" #. ~ Description for {'str': 'chipmunk'} #: lang/json/MONSTER_from_json.py @@ -78039,8 +78366,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "calf" msgid_plural "calves" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ternero" +msgstr[1] "terneros" #. ~ Description for {'str': 'calf', 'str_pl': 'calves'} #. ~ Description for {'str': 'cow'} @@ -78057,14 +78384,14 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "cow" msgid_plural "cows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vaca" +msgstr[1] "vacas" #: lang/json/MONSTER_from_json.py msgid "coyote" msgid_plural "coyotes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "coyote" +msgstr[1] "coyotes" #. ~ Description for {'str': 'coyote'} #: lang/json/MONSTER_from_json.py @@ -78094,8 +78421,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fawn" msgid_plural "fawns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cervato" +msgstr[1] "cervatos" #. ~ Description for {'str': 'fawn'} #: lang/json/MONSTER_from_json.py @@ -78110,8 +78437,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "deer" msgid_plural "deers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ciervo" +msgstr[1] "ciervos" #. ~ Description for {'str': 'deer'} #: lang/json/MONSTER_from_json.py @@ -78126,8 +78453,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Labrador mutt" msgid_plural "Labrador mutts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perro cruza con labrador" +msgstr[1] "perros cruza con labrador" #. ~ Description for {'str': 'Labrador mutt'} #: lang/json/MONSTER_from_json.py @@ -78136,12 +78463,15 @@ msgid "" "it likely still instinctively trusts humans, it's probably far from domestic" " by now." msgstr "" +"Esto que alguna vez fue un labrador comunacho mezcla con otras razas, se ha " +"vuelto salvaje. Aunque instintivamente todavía confía en los humanos, " +"probablemente ya esté muy lejos de ser domesticado." #: lang/json/MONSTER_from_json.py msgid "Labrador puppy" msgid_plural "Labrador puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro Labrador" +msgstr[1] "cachorros Labrador" #. ~ Description for {'str': 'Labrador puppy', 'str_pl': 'Labrador puppies'} #: lang/json/MONSTER_from_json.py @@ -78155,8 +78485,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bulldog" msgid_plural "bulldogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bulldog" +msgstr[1] "bulldogs" #. ~ Description for {'str': 'bulldog'} #: lang/json/MONSTER_from_json.py @@ -78170,8 +78500,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bulldog puppy" msgid_plural "bulldog puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro de bulldog" +msgstr[1] "cachorros de bulldog" #. ~ Description for {'str': 'bulldog puppy', 'str_pl': 'bulldog puppies'} #: lang/json/MONSTER_from_json.py @@ -78179,12 +78509,14 @@ msgid "" "An adorable, defenseless American bulldog puppy. Much safer to tame than an" " adult dog." msgstr "" +"Es un cachorrito de bulldog americano, adorable e indefenso. Mucho más fácil" +" de domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "pit bull mix" msgid_plural "pit bull mixes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pit bull mezcla" +msgstr[1] "pit bulls mezcla" #. ~ Description for {'str': 'pit bull mix', 'str_pl': 'pit bull mixes'} #: lang/json/MONSTER_from_json.py @@ -78194,12 +78526,16 @@ msgid "" "for its 'lock jaw' - which isn't real, but their incredible determination " "is." msgstr "" +"El pit bull en realidad no es una sola raza, como se cree, si no el nombre " +"que se le da a varias clases de terrier. Posee habilidades mediocres y es " +"famoso por poder trabar su mandíbula, lo que no es verdad pero su increíble " +"determinación sí lo es." #: lang/json/MONSTER_from_json.py msgid "pit bull puppy" msgid_plural "pit bull puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro pit bull" +msgstr[1] "cachorros pit bull" #. ~ Description for {'str': 'pit bull puppy', 'str_pl': 'pit bull puppies'} #: lang/json/MONSTER_from_json.py @@ -78207,12 +78543,14 @@ msgid "" "An adorable, defenseless pit bull puppy. Much safer to tame than an adult " "dog." msgstr "" +"Es un cachorrito de pit bull, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "beagle" msgid_plural "beagles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "beagle" +msgstr[1] "beagles" #. ~ Description for {'str': 'beagle'} #: lang/json/MONSTER_from_json.py @@ -78227,8 +78565,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "beagle puppy" msgid_plural "beagle puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro beagle" +msgstr[1] "cachorros beagle" #. ~ Description for {'str': 'beagle puppy', 'str_pl': 'beagle puppies'} #: lang/json/MONSTER_from_json.py @@ -78236,12 +78574,14 @@ msgid "" "An adorable, defenseless beagle puppy. Much safer to tame than an adult " "dog." msgstr "" +"Es un cachorrito de beagle, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "border collie" msgid_plural "border collies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "border collie" +msgstr[1] "border collies" #. ~ Description for {'str': 'border collie'} #: lang/json/MONSTER_from_json.py @@ -78257,8 +78597,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "border collie puppy" msgid_plural "border collie puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro border collie" +msgstr[1] "cachorros border collie" #. ~ Description for {'str': 'border collie puppy', 'str_pl': 'border collie #. puppies'} @@ -78267,12 +78607,14 @@ msgid "" "An adorable, defenseless Border Collie puppy. Much safer to tame than an " "adult dog." msgstr "" +"Es un cachorrito de border collie, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "boxer mastiff" msgid_plural "boxer mastiffs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mastín bóxer" +msgstr[1] "mastines bóxer" #. ~ Description for {'str': 'boxer mastiff'} #: lang/json/MONSTER_from_json.py @@ -78286,20 +78628,22 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "boxer puppy" msgid_plural "boxer puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro bóxer" +msgstr[1] "cachorros bóxer" #. ~ Description for {'str': 'boxer puppy', 'str_pl': 'boxer puppies'} #: lang/json/MONSTER_from_json.py msgid "" "An adorable, defenseless boxer puppy. Much safer to tame than an adult dog." msgstr "" +"Es un cachorrito de bóxer, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "Chihuahua" msgid_plural "Chihuahuas" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Chihuahua" +msgstr[1] "Chihuahuas" #. ~ Description for {'str': 'Chihuahua'} #: lang/json/MONSTER_from_json.py @@ -78307,12 +78651,14 @@ msgid "" "It's a tiny Chihuahua. How it has managed to survive is a miracle, although" " its small size and aggressive nature may have proven useful." msgstr "" +"Es un pequeño chihuahua. Cómo hizo para seguir vivo es un milagro, aunque su" +" naturaleza agresiva y su pequeño tamaño pueden haberle servido." #: lang/json/MONSTER_from_json.py msgid "Chihuahua puppy" msgid_plural "Chihuahua puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro Chihuahua" +msgstr[1] "cachorros Chihuahua" #. ~ Description for {'str': 'Chihuahua puppy', 'str_pl': 'Chihuahua puppies'} #: lang/json/MONSTER_from_json.py @@ -78320,12 +78666,14 @@ msgid "" "An adorable, defenseless Chihuahua puppy. Much safer to tame than an adult " "dog." msgstr "" +"Es un cachorrito de Chihuahua, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "dachshund" msgid_plural "dachshunds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perro salchicha" +msgstr[1] "perros salchicha" #. ~ Description for {'str': 'dachshund'} #: lang/json/MONSTER_from_json.py @@ -78334,12 +78682,15 @@ msgid "" "looks adorable as it bumbles around. Its tiny size also makes it hard to " "shoot (you monster)." msgstr "" +"¡Es un perro salchicha! Este perro de extraña apariencia puede ser útil como" +" perro de guardia, además es adorable verlo caminar. Su pequeño tamaño lo " +"hace difícil para pegarle un tiro (maldito bastardo por intentarlo)." #: lang/json/MONSTER_from_json.py msgid "dachshund puppy" msgid_plural "dachshund puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro perro salchicha" +msgstr[1] "cachorros perro salchicha" #. ~ Description for {'str': 'dachshund puppy', 'str_pl': 'dachshund puppies'} #: lang/json/MONSTER_from_json.py @@ -78347,12 +78698,14 @@ msgid "" "An adorable, defenseless dachshund puppy. Much safer to tame than an adult " "dog." msgstr "" +"Es un cachorrito de perro salchicha, adorable e indefenso. Mucho más fácil " +"de domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "German shepherd" msgid_plural "German shepherds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pastor alemán" +msgstr[1] "pastores alemán" #. ~ Description for {'str': 'German shepherd'} #: lang/json/MONSTER_from_json.py @@ -78367,8 +78720,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "German shepherd puppy" msgid_plural "German shepherd puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro pastor alemán" +msgstr[1] "cachorros pastor alemán" #. ~ Description for {'str': 'German shepherd puppy', 'str_pl': 'German #. shepherd puppies'} @@ -78377,12 +78730,14 @@ msgid "" "An adorable, defenseless German shepherd puppy. Much safer to tame than an " "adult dog." msgstr "" +"Es un cachorrito de pastor alemán, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "Great Pyrenees" msgid_plural "Great Pyrenees" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gran Pirineo" +msgstr[1] "Grandes Pirineo" #. ~ Description for {'str_sp': 'Great Pyrenees'} #: lang/json/MONSTER_from_json.py @@ -78399,8 +78754,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Great Pyrenees puppy" msgid_plural "Great Pyrenees puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro Gran Pirineo" +msgstr[1] "cachorros Gran Pirineo" #. ~ Description for {'str': 'Great Pyrenees puppy', 'str_pl': 'Great Pyrenees #. puppies'} @@ -78409,12 +78764,14 @@ msgid "" "An adorable, defenseless Great Pyrenees puppy. Much safer to tame than an " "adult dog." msgstr "" +"Es un cachorrito de Gran Pirineo, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "rottweiler" msgid_plural "rottweilers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rottweiler" +msgstr[1] "rottweilers" #. ~ Description for {'str': 'rottweiler'} #: lang/json/MONSTER_from_json.py @@ -78430,8 +78787,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "rottweiler puppy" msgid_plural "rottweiler puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro rottweiler" +msgstr[1] "cachorros rottweiler" #. ~ Description for {'str': 'rottweiler puppy', 'str_pl': 'rottweiler #. puppies'} @@ -78440,12 +78797,14 @@ msgid "" "An adorable, defenseless Rottweiler puppy. Much safer to tame than an adult" " dog." msgstr "" +"Es un cachorrito de rottweiler, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "cattle dog" msgid_plural "cattle dogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perro pastor" +msgstr[1] "perros pastor" #. ~ Description for {'str': 'cattle dog'} #: lang/json/MONSTER_from_json.py @@ -78459,8 +78818,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "cattle dog puppy" msgid_plural "cattle dog puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorro perro pastor" +msgstr[1] "cachorros perro pastor" #. ~ Description for {'str': 'cattle dog puppy', 'str_pl': 'cattle dog #. puppies'} @@ -78469,6 +78828,8 @@ msgid "" "An adorable, defenseless Australian cattle dog puppy. Much safer to tame " "than an adult dog." msgstr "" +"Es un cachorrito de perro pastor australiano, adorable e indefenso. Mucho " +"más fácil de domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "fox" @@ -78497,8 +78858,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "groundhog" msgid_plural "groundhogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "marmota" +msgstr[1] "marmotas" #. ~ Description for {'str': 'groundhog'} #: lang/json/MONSTER_from_json.py @@ -78511,8 +78872,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "jackrabbit" msgid_plural "jackrabbits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "liebre" +msgstr[1] "liebres" #. ~ Description for {'str': 'jackrabbit'} #: lang/json/MONSTER_from_json.py @@ -78526,8 +78887,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "horse" msgid_plural "horses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "caballo" +msgstr[1] "caballos" #. ~ Description for {'str': 'horse'} #: lang/json/MONSTER_from_json.py @@ -78541,8 +78902,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "lemming" msgid_plural "lemmings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lemino" +msgstr[1] "leminos" #. ~ Description for {'str': 'lemming'} #: lang/json/MONSTER_from_json.py @@ -78561,8 +78922,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "mink" msgid_plural "minks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "visón" +msgstr[1] "visones" #. ~ Description for {'str': 'mink'} #: lang/json/MONSTER_from_json.py @@ -78571,12 +78932,15 @@ msgid "" "fur. It is a capable fisher, but the presence of otters in these parts " "makes it rely more on food from the land." msgstr "" +"El visón americano, una comadreja de agua, en algún momento se las tenía en " +"fábricas por su piel. Es un pescador hábil, pero la presencia de nutrias en " +"estas zonas las hace depender de la comida que consigan en la tierra." #: lang/json/MONSTER_from_json.py msgid "moose" msgid_plural "moose" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "alce" +msgstr[1] "alces" #. ~ Description for {'str_sp': 'moose'} #: lang/json/MONSTER_from_json.py @@ -78592,8 +78956,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "muskrat" msgid_plural "muskrats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rata almizclera" +msgstr[1] "ratas almizcleras" #. ~ Description for {'str': 'muskrat'} #: lang/json/MONSTER_from_json.py @@ -78609,8 +78973,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "gigantic naked mole-rat" msgid_plural "gigantic naked mole-rats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "topo gigante desnudo" +msgstr[1] "topos gigantes desnudos" #. ~ Description for {'str': 'gigantic naked mole-rat'} #: lang/json/MONSTER_from_json.py @@ -78621,12 +78985,17 @@ msgid "" "constantly and several car-length whiskers twitch in the air. It regularly " "makes high-pitched chirps as it roams around." msgstr "" +"Es una gigante masa mutada de piel arrugada y casi translúcida que ha sido " +"curtida de tanto cavar túneles. Su pellejo está lleno de cascaritas enormes," +" un par de colmillos del tamaño de una excavadora industrial rechinan " +"constantemente, y varios bigotes del tamaño de autos se retuercen por el " +"aire. Regularmente emite unos gorjeos agudos mientras deambula." #: lang/json/MONSTER_from_json.py msgid "opossum" msgid_plural "opossums" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zarigüeya" +msgstr[1] "zarigüeyas" #. ~ Description for {'str': 'opossum'} #: lang/json/MONSTER_from_json.py @@ -78642,8 +79011,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "otter" msgid_plural "otters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "nutria" +msgstr[1] "nutrias" #. ~ Description for {'str': 'otter'} #: lang/json/MONSTER_from_json.py @@ -78653,12 +79022,17 @@ msgid "" "excellent fisher and a resourceful survivor, using the abandoned dens of " "beavers and other animals to raise its own young." msgstr "" +"La nutria de río de América del Norte es un pariente acuático y tímido de la" +" comadreja. Viven en grandes familias al costado de las orillas de los " +"arroyos. Es un excelente pescador y tiene muchas mañas para su " +"supervivencia, utiliza los diques abandonados de los castores y otros " +"animales para cuidar a sus crías." #: lang/json/MONSTER_from_json.py msgid "piglet" msgid_plural "piglets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lechón" +msgstr[1] "lechones" #. ~ Description for {'str': 'piglet'} #: lang/json/MONSTER_from_json.py @@ -78667,12 +79041,15 @@ msgid "" "inquisitive. Left to its own devices, it has gone feral. Unlike the fully " "grown version it can be tamed." msgstr "" +"Es un omnívoro domesticado que desciende del jabalí salvaje. Es inteligente " +"y curioso. Dejado a su propio cuidado, se ha vuelto salvaje. A diferencia de" +" su familiar adulto, este puede ser amaestrado." #: lang/json/MONSTER_from_json.py msgid "pig" msgid_plural "pigs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "chancho" +msgstr[1] "chanchos" #. ~ Description for {'str': 'pig'} #: lang/json/MONSTER_from_json.py @@ -78686,8 +79063,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "rabbit" msgid_plural "rabbits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conejo" +msgstr[1] "conejos" #. ~ Description for {'str': 'rabbit'} #: lang/json/MONSTER_from_json.py @@ -78701,8 +79078,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "raccoon" msgid_plural "raccoons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mapache" +msgstr[1] "mapaches" #. ~ Description for {'str': 'raccoon'} #: lang/json/MONSTER_from_json.py @@ -78718,8 +79095,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "rat king" msgid_plural "rat kings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rey de las ratas" +msgstr[1] "reyes de las ratas" #. ~ Description for {'str': 'rat king'} #: lang/json/MONSTER_from_json.py @@ -78727,15 +79104,15 @@ msgid "" "A towering swarm of mutated rats, their tails knotted together in a filthy " "mass. A fetid stench flows from its filthy presence." msgstr "" -"Un enjambre de ratas mutadas formando una torre, sus colas están atadas " -"entre sí formando una desagradable masa. Un hedor fétido fluye de esta " +"Es un enjambre de ratas mutadas en forma de torre, sus colas están atadas " +"entre sí formando una desagradable masa. Un hedor fétido fluye de su " "desagradable presencia." #: lang/json/MONSTER_from_json.py msgid "sewer rat" msgid_plural "sewer rats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rata de alcantarilla" +msgstr[1] "ratas de alcantarilla" #. ~ Description for {'str': 'sewer rat'} #: lang/json/MONSTER_from_json.py @@ -78743,6 +79120,8 @@ msgid "" "A worm-tailed rodent with long whiskers and beady eyes. The way it squeaks " "makes it sound… hungry." msgstr "" +"Es un roedor con la cola como un gusano, largos bigotes ojos pequeños y " +"brillantes. La manera en que chilla la hace parecer... hambrienta." #: lang/json/MONSTER_from_json.py msgid "lamb" @@ -78757,6 +79136,9 @@ msgid "" "domesticated. Its body is covered in a thick layer of wool, and the males " "have long, spiraling horns." msgstr "" +"Es un mamífero de pastoreo con pezuñas y tímido, y uno de los primeros " +"animales que se ha domesticado. Su cuerpo está cubierto de una capa gruesa " +"de lana, y los machos tiene cuernos largos y espiralados." #: lang/json/MONSTER_from_json.py msgid "sheep" @@ -78771,12 +79153,15 @@ msgid "" "domesticated. Its body is covered in a thick layer of wool, and the males " "have long, spiralling horns." msgstr "" +"Es un mamífero de pastoreo con pezuñas y tímido, y uno de los primeros " +"animales que se ha domesticado. Su cuerpo está cubierto de una capa gruesa " +"de lana, y los machos tiene cuernos largos y espiralados." #: lang/json/MONSTER_from_json.py msgid "squirrel" msgid_plural "squirrels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ardilla" +msgstr[1] "ardillas" #. ~ Description for {'str': 'squirrel'} #: lang/json/MONSTER_from_json.py @@ -78804,8 +79189,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "weasel" msgid_plural "weasels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "comadreja" +msgstr[1] "comadrejas" #. ~ Description for {'str': 'weasel'} #: lang/json/MONSTER_from_json.py @@ -78838,8 +79223,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "marloss zealot" msgid_plural "marloss zealots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "fanático del marloss" +msgstr[1] "fanáticos del marloss" #. ~ Description for {'str': 'marloss zealot'} #: lang/json/MONSTER_from_json.py @@ -78847,6 +79232,8 @@ msgid "" "Her eyes lie vacant and spittle foams in her mouth, as she recites from the " "hymns in rapturous ecstasy." msgstr "" +"Sus ojos están vacíos y una baba espumosa sale de su boca, mientras recita " +"los himnos en un éxtasis eufórico." #. ~ Description for {'str': 'marloss zealot'} #: lang/json/MONSTER_from_json.py @@ -78854,12 +79241,14 @@ msgid "" "His eyes lie vacant and spittle foams in his mouth, as he recites from the " "hymns in rapturous ecstasy." msgstr "" +"Sus ojos están vacíos y una baba espumosa sale de su boca, mientras recita " +"los himnos en un éxtasis eufórico." #: lang/json/MONSTER_from_json.py msgid "X-03: 'Spectre' Recon Mech" msgid_plural "X-03: 'Spectre' Recon Mechs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "X-03: Mecha de Reconocimiento 'Spectre'" +msgstr[1] "X-03: Mechas de Reconocimiento 'Spectre'" #. ~ Description for {'str': "X-03: 'Spectre' Recon Mech"} #: lang/json/MONSTER_from_json.py @@ -78872,12 +79261,20 @@ msgid "" " field. You may be able to hack it to accept you as its pilot. Like all " "mech-suits it can act as a UPS from its large battery." msgstr "" +"El Boeing-Daewoo RMES (Exoesqueleto Mecánico de Reconocimiento, por sus " +"siglas en inglés), es una adquisición reciente del ejército de Estados " +"Unidos. Fue diseñado para usar en como explorador-reconocedor-francotirador," +" debido a su movilidad y su rifle láser integrado, y un conjunto de lentes " +"para designación de objetivo y reconocimiento del campo de batalla. No fue " +"desplegado antes del Cataclismo, aunque hubo algunos prototipos en el campo." +" Podés intentar hackearlo para que te acepte como piloto. Como todos los " +"trajes mecha, su gran batería puede funcionar como un UPS." #: lang/json/MONSTER_from_json.py msgid "X-02: 'Grunt' Combat Mech" msgid_plural "X-02: 'Grunt' Combat Mechs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "X-02: Mecha de Combate 'Grunt'" +msgstr[1] "X-02: Mechas de Combate 'Grunt'" #. ~ Description for {'str': "X-02: 'Grunt' Combat Mech"} #: lang/json/MONSTER_from_json.py @@ -78889,12 +79286,19 @@ msgid "" "You may be able to hack it to accept you as its pilot. Like all mech-suits " "it can act as a UPS from its large battery." msgstr "" +"El Boeing-Daewoo CMES (Exoesqueleto Mecánico de Combate, por sus siglas en " +"inglés), es una adquisición reciente del ejército de Estados Unidos. Fue " +"diseñado para usar como fuego de apoyo, debido a su temerosa ametralladora " +"galing láser integrada. No fue desplegado antes del Cataclismo, aunque hubo " +"algunos prototipos en el campo. Podés intentar hackearlo para que te acepte " +"como piloto. Como todos los trajes mecha, su gran batería puede funcionar " +"como un UPS." #: lang/json/MONSTER_from_json.py msgid "X-01: 'Jack' Lifting Mech" msgid_plural "X-01: 'Jack' Lifting Mechs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "X-01: Mecha Elevador 'Jack'" +msgstr[1] "X-01: Mechas Elevadores 'Jack'" #. ~ Description for {'str': "X-01: 'Jack' Lifting Mech"} #: lang/json/MONSTER_from_json.py @@ -78906,12 +79310,19 @@ msgid "" "prototypes in the field. You may be able to hack it to accept you as its " "pilot. Like all mech-suits it can act as a UPS from its large battery." msgstr "" +"El Boeing-Daewoo LMES (Exoesqueleto Mecánico Elevador, por sus siglas en " +"inglés), es una adquisición reciente del ejército de Estados Unidos. Fue " +"diseñado para ser pilotado por un operador para cargar y descargar " +"materiales pesados, y con un uso limitado en combate. No fue desplegado " +"antes del Cataclismo, aunque hubo algunos prototipos en el campo. Podés " +"intentar hackearlo para que te acepte como piloto. Como todos los trajes " +"mecha, su gran batería puede funcionar como un UPS." #: lang/json/MONSTER_from_json.py msgid "mi-go" msgid_plural "mi-gos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mi-go" +msgstr[1] "mi-gos" #. ~ Description for {'str': 'mi-go'} #: lang/json/MONSTER_from_json.py @@ -78931,8 +79342,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "mi-go slaver" msgid_plural "mi-go slavers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mi-go esclavista" +msgstr[1] "mi-gos esclavistas" #. ~ Description for {'str': 'mi-go slaver'} #: lang/json/MONSTER_from_json.py @@ -78944,12 +79355,18 @@ msgid "" "gazing upon the unnatural beast fills you with primordial dread. It is " "carrying an oblong object that hums with an odd keening sound." msgstr "" +"Es una criatura alienígena de origen desconocido. Su informe cuerpo rosa " +"tiene varios apéndices cuya función es desconocida, y un par de alas " +"membranosas y con costillas, que parecen bastante inútiles. Su extraña " +"cabeza piramidal está llena de antenas, y solo ver esta bestia sobrenatural " +"te llena de pavor primordial. Lleva un objeto oblongo que vibra con un " +"extraño sonido agudo." #: lang/json/MONSTER_from_json.py msgid "mi-go surgeon" msgid_plural "mi-go surgeons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mi-go cirujano" +msgstr[1] "mi-gos cirujanos" #. ~ Description for {'str': 'mi-go surgeon'} #: lang/json/MONSTER_from_json.py @@ -78958,12 +79375,15 @@ msgid "" "paired clawed appendages. Its claws are smaller and more delicate looking, " "but that does not make them less unnerving." msgstr "" +"Este mi-go tiene un cuerpo delgado con una caparazón a lo largo, y unos " +"apéndices con garras y de a pares. Sus garras son más pequeñas y parecen más" +" delicadas, pero eso no las hace menos perturbadoras." #: lang/json/MONSTER_from_json.py msgid "mi-go guard" msgid_plural "mi-go guards" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mi-go guardia" +msgstr[1] "mi-gos guardias" #. ~ Description for {'str': 'mi-go guard'} #: lang/json/MONSTER_from_json.py @@ -78975,12 +79395,19 @@ msgid "" "barnacle-like armor, aside from the bristling antennae that serve as its - " "you must assume sensory devices and mouth." msgstr "" +"Esta, como el mi-go común, es una criatura alienígena, pero con más armadura" +" en su cuerpo. Su torso es una masa sin forma de una extraña carne " +"iridiscente cubierto por una caparazón también iridiscente, y del cual " +"varios apéndices salen terminando en lo que parecen ser dispositivos de " +"alguna clase. Su cabeza piramidal está incrustada en una armadura similar a " +"un percebe, y posee unas antenas que se erizan funcionando como, suponés, " +"sus sensores y boca." #: lang/json/MONSTER_from_json.py msgid "mi-go myrmidon" msgid_plural "mi-go myrmidons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mi-go mirmidón" +msgstr[1] "mi-gos mirmidones" #. ~ Description for {'str': 'mi-go myrmidon'} #: lang/json/MONSTER_from_json.py @@ -78992,12 +79419,18 @@ msgid "" " grace, like an otherworldly dancer. It actually appears to be carrying " "weaponry." msgstr "" +"Esta criatura parece un mi-go más pequeño al igual que un oso gris se parece" +" a un humano. Su cuerpo enorme está cubierto de una caparazón segmentada " +"iridiscente, como una cruza entre escarabajo e isopodo. Presume de varios " +"pares de garras de aspecto letal y otros apéndices, y se mueve con una " +"gracia lenta y extraña, como un bailarín sobrenatural. Parece estar llevando" +" armas." #: lang/json/MONSTER_from_json.py msgid "mi-go scout" msgid_plural "mi-go scouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mi-go explorador" +msgstr[1] "mi-gos exploradores" #. ~ Description for {'str': 'mi-go scout'} #: lang/json/MONSTER_from_json.py @@ -79007,16 +79440,20 @@ msgid "" " diaphragm or a membrane on the end. The thing seems like an integral part " "of the mi-go, and all its appendages are supporting it to prevent swaying." msgstr "" +"Este flacucho mi-go es un poco más pequeño que los otros de su raza. Tiene " +"algo extraño oblongo unido al centro de su cuerpo con alguna clase de " +"diafragma o membrana en la punta. La cosa parece ser parte integral del mi-" +"go, y todos sus apéndices están soportándolo para que no se mueva." #: lang/json/MONSTER_from_json.py msgid "The mi-go scout fires its weapon!" -msgstr "" +msgstr "¡El mi-go explorador dispara su arma!" #: lang/json/MONSTER_from_json.py msgid "debug monster" msgid_plural "debug monsters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "monstruo debug" +msgstr[1] "monstruos debug" #. ~ Description for {'str': 'debug monster'} #: lang/json/MONSTER_from_json.py @@ -79026,8 +79463,8 @@ msgstr "Este monstruo solo existe para hacer pruebas." #: lang/json/MONSTER_from_json.py msgid "ancient red dragon" msgid_plural "ancient red dragons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dragón rojo antiguo" +msgstr[1] "dragones rojos antiguos" #. ~ Description for {'str': 'ancient red dragon'} #: lang/json/MONSTER_from_json.py @@ -79036,12 +79473,15 @@ msgid "" "scales, its glowing maw peeled back in a hateful grimace as its eyes bore " "into yours." msgstr "" +"Es un dragón descomunal e imponente, con tremendos cuernos curvos y " +"relucientes escamas rojas. Sus fauces brillantes se desarman en un gesto de " +"odio al tiempo que sus ojos perforan los tuyos." #: lang/json/MONSTER_from_json.py msgid "generator" msgid_plural "generators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "generador" +msgstr[1] "generadores" #. ~ Description for {'str': 'generator'} #: lang/json/MONSTER_from_json.py @@ -79054,8 +79494,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "your mother" msgid_plural "your mothers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tu vieja" +msgstr[1] "tus viejas" #. ~ Description for {'str': 'your mother'} #: lang/json/MONSTER_from_json.py @@ -79065,8 +79505,8 @@ msgstr "¿Mamá?" #: lang/json/MONSTER_from_json.py msgid "evil multi-cooker" msgid_plural "evil multi-cookers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "multicocina malévola" +msgstr[1] "multicocinas malévolas" #. ~ Description for {'str': 'evil multi-cooker'} #: lang/json/MONSTER_from_json.py @@ -79076,8 +79516,8 @@ msgstr "¡Esta cocina malévola tiene vida propia! ¡Cuidado!" #: lang/json/MONSTER_from_json.py msgid "hologram" msgid_plural "holograms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "holograma" +msgstr[1] "hologramas" #. ~ Description for {'str': 'hologram'} #. ~ Description for hologram @@ -79088,8 +79528,8 @@ msgstr "Es una imagen hecha de luz, casi parece real." #: lang/json/MONSTER_from_json.py msgid "C.H.U.D." msgid_plural "C.H.U.D.s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "H.H.S.C." +msgstr[1] "H.H.S.C." #. ~ Description for {'str': 'C.H.U.D.'} #: lang/json/MONSTER_from_json.py @@ -79103,8 +79543,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "experimental mutant" msgid_plural "experimental mutants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mutante experimental" +msgstr[1] "mutantes experimentales" #. ~ Description for {'str': 'experimental mutant'} #: lang/json/MONSTER_from_json.py @@ -79114,12 +79554,16 @@ msgid "" " in his pale yellow eyes are a testament to that he lost all of his " "humanity." msgstr "" +"Es una amalgama deformada entre hombre y animal. Un humanoide grotesco " +"cubierto de piel y un mameluco roto. Los colmillos y garras siniestros, y la" +" mirada de locura de sus ojos amarillos son el testamento de que ha perdido " +"toda su humanidad." #: lang/json/MONSTER_from_json.py msgid "evolved mutant" msgid_plural "evolved mutants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mutante evolucionado" +msgstr[1] "mutantes evolucionados" #. ~ Description for {'str': 'evolved mutant'} #: lang/json/MONSTER_from_json.py @@ -79129,12 +79573,16 @@ msgid "" "The sinister fangs, claws and the look of insanity in his pale yellow eyes " "are a testament to that he lost all of his humanity." msgstr "" +"Es una gigantesca bestia que ya no es ni humana ni animal. Una criatura " +"enorme y malformada cubierta con una piel gruesa y la parte de abajo de un " +"mameluco roto. Los colmillos y garras siniestros, y la mirada de locura de " +"sus ojos amarillos son el testamento de que ha perdido toda su humanidad." #: lang/json/MONSTER_from_json.py msgid "cyclopean" msgid_plural "cyclopeans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ciclópeo" +msgstr[1] "ciclópeos" #. ~ Description for {'str': 'cyclopean'} #: lang/json/MONSTER_from_json.py @@ -79148,8 +79596,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "albino penguin" msgid_plural "albino penguins" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pingüino albino" +msgstr[1] "pingüinos albinos" #. ~ Description for {'str': 'albino penguin'} #: lang/json/MONSTER_from_json.py @@ -79162,8 +79610,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "amigara horror" msgid_plural "amigara horrors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "horror amigara" +msgstr[1] "horrores amigara" #. ~ Description for {'str': 'amigara horror'} #: lang/json/MONSTER_from_json.py @@ -79202,8 +79650,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "blood sacrifice" msgid_plural "blood sacrifices" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sacrificio sangriento" +msgstr[1] "sacrificios sangrientos" #. ~ Description for {'str': 'blood sacrifice'} #: lang/json/MONSTER_from_json.py @@ -79220,8 +79668,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "breather" msgid_plural "breathers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "respirador" +msgstr[1] "respiradores" #. ~ Description for {'str': 'breather'} #: lang/json/MONSTER_from_json.py @@ -79243,8 +79691,8 @@ msgstr "Es una rara masa de viscosidad rosa inmóvil. Parece respirar." #: lang/json/MONSTER_from_json.py msgid "wraith" msgid_plural "wraiths" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espectro" +msgstr[1] "espectros" #. ~ Description for {'str': 'wraith'} #: lang/json/MONSTER_from_json.py @@ -79252,12 +79700,14 @@ msgid "" "A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." msgstr "" +"Es una sombra gigantesca, cambiando caóticamente de forma y volumen. Dos " +"esferas penetrantes de luz dominan lo que podría describirse como la cabeza." #: lang/json/MONSTER_from_json.py msgid "dementia" msgid_plural "dementias" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dementia" +msgstr[1] "dementias" #. ~ Description for {'str': 'dementia'} #: lang/json/MONSTER_from_json.py @@ -79271,8 +79721,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "dog" msgid_plural "dogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perro" +msgstr[1] "perros" #. ~ Description for {'str': 'dog'} #: lang/json/MONSTER_from_json.py @@ -79286,8 +79736,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "flaming eye" msgid_plural "flaming eyes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ojo llameante" +msgstr[1] "ojos llameantes" #. ~ Description for {'str': 'flaming eye'} #: lang/json/MONSTER_from_json.py @@ -79308,8 +79758,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "flesh angel" msgid_plural "flesh angels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ángel cárnico" +msgstr[1] "ángeles cárnicos" #. ~ Description for {'str': 'flesh angel'} #: lang/json/MONSTER_from_json.py @@ -79323,8 +79773,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "flying polyp" msgid_plural "flying polyps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pólipo volador" +msgstr[1] "pólipos voladores" #. ~ Description for {'str': 'flying polyp'} #: lang/json/MONSTER_from_json.py @@ -79333,12 +79783,16 @@ msgid "" "the ability to fly, despite the absence of wings. It produces strange " "whistling noises which send cold shivers of primal terror down your spine." msgstr "" +"Es una criatura medio pólipo, pero completamente extraterrestre. Es " +"parcialmente material y tiene la habilidad de volar, a pesar de la ausencia " +"de alas. Emite unos extraños silbidos que te hacen sentír escalofríos en la " +"espina dorsal." #: lang/json/MONSTER_from_json.py msgid "gozu" msgid_plural "gozus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gozu" +msgstr[1] "gozus" #. ~ Description for {'str': 'gozu'} #: lang/json/MONSTER_from_json.py @@ -79359,8 +79813,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "gracken" msgid_plural "grackens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gracken" +msgstr[1] "grackens" #. ~ Description for {'str': 'gracken'} #: lang/json/MONSTER_from_json.py @@ -79382,8 +79836,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "tentacle dog" msgid_plural "tentacle dogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perro tentáculo" +msgstr[1] "perros tentáculo" #. ~ Description for {'str': 'tentacle dog'} #: lang/json/MONSTER_from_json.py @@ -79397,8 +79851,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "homunculus" msgid_plural "homunculi" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "homúnculo" +msgstr[1] "homúnculos" #. ~ Description for {'str': 'homunculus', 'str_pl': 'homunculi'} #: lang/json/MONSTER_from_json.py @@ -79412,8 +79866,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "hound of tindalos" msgid_plural "hounds of tindalos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sabueso de tindalos" +msgstr[1] "sabuesos de tindalos" #. ~ Description for {'str': 'hound of tindalos', 'str_pl': 'hounds of #. tindalos'} @@ -79426,12 +79880,19 @@ msgid "" "to our reality, it moves between the corners of the world, hunting those " "that would dare stepping beyond time and space." msgstr "" +"Es una grotesca bestia similar a un sabueso, su estructura es angular y " +"demacrada, y su cabeza es como la de un pez abisal. Cuando se mueve, " +"retorcidos miembros se duplican, salen, desaparecen y se reforman en " +"discordancia, como si cientos de copias de sí mismo estuvieran forzadas a " +"cohabitar en el mismo espacio. Extraño a nuestra realidad, se mueve por las " +"esquinas del mundo, cazando a aquellos que se animen a poner un pie por " +"fuera del tiempo y del espacio." #: lang/json/MONSTER_from_json.py msgid "human snail" msgid_plural "human snails" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "caracol humano" +msgstr[1] "caracoles humanos" #. ~ Description for {'str': 'human snail'} #: lang/json/MONSTER_from_json.py @@ -79445,8 +79906,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "hunting horror" msgid_plural "hunting horrors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "horror cazador" +msgstr[1] "horrores cazadores" #. ~ Description for {'str': 'hunting horror'} #: lang/json/MONSTER_from_json.py @@ -79464,8 +79925,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "kreck" msgid_plural "krecks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kreck" +msgstr[1] "krecks" #. ~ Description for {'str': 'kreck'} #: lang/json/MONSTER_from_json.py @@ -79478,19 +79939,19 @@ msgid "" " of your perceptions in a fashion that awakens ancient nameless terrors in " "the back of your mind" msgstr "" -"Es una especie de perro de otro mundo. Magro y hambriento, su retorcida " -"carne roja está tirante sobre su cuerpo angular y deformado. Avanza a " -"grandes zancadas grotescas, su cuello inusualmente largo se estira hacia " -"adelante, con su cabeza esquelética en el piso mientras va olfateando a su " -"presa. Su asquerosidad está parcialmente tapada por alguna fuerza arcana, " -"pareciera que escapa a tu percepción, mientras despierta terrores " -"innombrables en tu mente." +"Es una especie de perro sobrenatural. Magro y hambriento, su retorcida carne" +" roja está tirante sobre su cuerpo angular y deformado. Avanza a grandes " +"zancadas grotescas, su cuello inusualmente largo se estira hacia adelante, " +"con su cabeza esquelética en el piso mientras va olfateando a su presa. Su " +"asquerosidad está parcialmente tapada por alguna fuerza arcana, pareciera " +"que escapa a tu percepción, mientras despierta terrores innombrables en tu " +"mente." -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sombra" +msgstr[1] "sombras" #. ~ Description for {'str': 'shadow'} #: lang/json/MONSTER_from_json.py @@ -79509,8 +79970,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shadow snake" msgid_plural "shadow snakes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "serpiente sombría" +msgstr[1] "serpientes sombrías" #. ~ Description for {'str': 'shadow snake'} #: lang/json/MONSTER_from_json.py @@ -79525,8 +79986,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shoggoth" msgid_plural "shoggoths" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "shoggoth" +msgstr[1] "shoggoths" #. ~ Description for {'str': 'shoggoth'} #: lang/json/MONSTER_from_json.py @@ -79535,15 +79996,15 @@ msgid "" " seemingly at will. All over its body are eyes that form and disappear. It" " looks at you with malice." msgstr "" -"Un pantagruélico blobo protoplasmáco, cambiando de forma constantemente, " -"generando nuevos pseudópodos a voluntad. Por todo su cuerpo hay ojos que se " -"forman y desaparecen. Te mira con malicia." +"Es un pantagruélico blobo protoplasmáco, que cambia de forma constantemente," +" generando nuevos pseudópodos a voluntad. Por todo su cuerpo hay ojos que se" +" forman y desaparecen. Te mira con malicia." #: lang/json/MONSTER_from_json.py msgid "thing" msgid_plural "things" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cosa" +msgstr[1] "cosas" #. ~ Description for {'str': 'thing'} #: lang/json/MONSTER_from_json.py @@ -79573,8 +80034,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "yugg" msgid_plural "yuggs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "yugg" +msgstr[1] "yuggs" #. ~ Description for {'str': 'yugg'} #: lang/json/MONSTER_from_json.py @@ -79610,8 +80071,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "centipede" msgid_plural "centipedes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ciempiés" +msgstr[1] "ciempiés" #. ~ Description for {'str': 'centipede'} #: lang/json/MONSTER_from_json.py @@ -79624,8 +80085,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "deer mouse" msgid_plural "deer mouses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ratón ciervo" +msgstr[1] "ratones ciervos" #. ~ Description for {'str': 'deer mouse'} #: lang/json/MONSTER_from_json.py @@ -79655,8 +80116,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bull frog" msgid_plural "bull frogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rana toro" +msgstr[1] "ranas toro" #. ~ Description for {'str': 'bull frog'} #: lang/json/MONSTER_from_json.py @@ -79670,8 +80131,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "mosquito" msgid_plural "mosquitos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mosquito" +msgstr[1] "mosquitos" #. ~ Description for {'str': 'mosquito'} #: lang/json/MONSTER_from_json.py @@ -79685,8 +80146,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shrew" msgid_plural "shrews" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "musaraña" +msgstr[1] "musarañas" #. ~ Description for {'str': 'shrew'} #: lang/json/MONSTER_from_json.py @@ -79701,8 +80162,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "slug" msgid_plural "slugs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "babosa" +msgstr[1] "babosas" #. ~ Description for {'str': 'slug'} #: lang/json/MONSTER_from_json.py @@ -79718,8 +80179,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "jumping spider" msgid_plural "jumping spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña saltadora" +msgstr[1] "arañas saltadora" #. ~ Description for {'str': 'jumping spider'} #: lang/json/MONSTER_from_json.py @@ -79735,8 +80196,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "trapdoor spider" msgid_plural "trapdoor spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña tapadera" +msgstr[1] "arañas tapadera" #. ~ Description for {'str': 'trapdoor spider'} #: lang/json/MONSTER_from_json.py @@ -79751,8 +80212,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "black widow spider" msgid_plural "black widow spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "viuda negra" +msgstr[1] "viudas negras" #. ~ Description for {'str': 'black widow spider'} #: lang/json/MONSTER_from_json.py @@ -79766,8 +80227,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "wolf spider" msgid_plural "wolf spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña lobo" +msgstr[1] "arañas lobo" #. ~ Description for {'str': 'wolf spider'} #: lang/json/MONSTER_from_json.py @@ -79781,8 +80242,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "wasp" msgid_plural "wasps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "avispa" +msgstr[1] "avispas" #. ~ Description for {'str': 'wasp'} #: lang/json/MONSTER_from_json.py @@ -79796,8 +80257,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "tripod" msgid_plural "tripods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trípode" +msgstr[1] "trípodes" #. ~ Description for {'str': 'tripod'} #: lang/json/MONSTER_from_json.py @@ -79813,8 +80274,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Beagle Mini-Tank UGV" msgid_plural "Beagle Mini-Tank UGVs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "UGV Beagle Mini-Tanque" +msgstr[1] "UGV Beagle Mini-Tanques" #. ~ Description for {'str': 'Beagle Mini-Tank UGV'} #: lang/json/MONSTER_from_json.py @@ -79823,12 +80284,16 @@ msgid "" "anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" "infantry weapons, it's designed for high-risk urban fighting." msgstr "" +"El Northrop Beagle es un UGV (vehículo terrestre no tripulado) del tamaño de" +" una heladera. Tiene un lanzamisiles anti-tanque, una lanzagranadas 40mm y " +"varias armas anti-infantería. Está diseñado para combate urbano de alto " +"riesgo." #: lang/json/MONSTER_from_json.py msgid "chicken walker" msgid_plural "chicken walkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mecha-gallina" +msgstr[1] "mecha-gallinas" #. ~ Description for {'str': 'chicken walker'} #: lang/json/MONSTER_from_json.py @@ -79839,12 +80304,35 @@ msgid "" "against attackers, it is an effective automated sentry, though production " "was limited due to a legal dispute." msgstr "" +"El Northrop ATSV, un robot enorme, fuertemente armado y blindado que camina " +"en un par de piernas con las articulaciones al revés. Armado con un " +"lanzagranadas 40mm anti-vehículo , un arma 5.56 anti-personal, y la " +"habilidad de electrificarse para defenderse de los atacantes. Es un guardia " +"automatizado eficaz, aunque su producción fue limitada debido a una disputa " +"legal." + +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "torreta láser" +msgstr[1] "torretas láser" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from" +" solar cells embedded in its hull." +msgstr "" +"La TX-5LR Cerberus es una actualización de su predecesores. Posee un sistema" +" de cañón láser rotativo de última generación, con tres cañones que se " +"cargan con las celdas solares que están dispuestas por todo su casco." #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "capullo chupasangre" +msgstr[1] "capullos chupasangre" #. ~ Description for {'str': 'leech blossom'} #: lang/json/MONSTER_from_json.py @@ -79852,16 +80340,18 @@ msgid "" "A resplendent alien fern, crowned with flowers colored deep indigo. It " "appears to be the centerpiece of this otherworldly bloom." msgstr "" +"Es una resplandeciente planta alienígena, coronada de flores de un color " +"índigo profundo. Parece ser la pieza central de un capillo sobrenatural." #: lang/json/MONSTER_from_json.py msgid "Lightning arcs from the leech blossom!" -msgstr "" +msgstr "¡Se ven rayos que salen del capullo chupasangre!" #: lang/json/MONSTER_from_json.py msgid "leech stalk" msgid_plural "leech stalks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tallo chupasangre" +msgstr[1] "tallos chupasangre" #. ~ Description for {'str': 'leech stalk'} #: lang/json/MONSTER_from_json.py @@ -79870,16 +80360,19 @@ msgid "" "from it, and the shadow cast by its canopy continuously glows with electric " "charge." msgstr "" +"Es una resplandeciente y voluminosa planta alienígena. Un zumbido débil " +"emana de ella, y la sombra que genera brilla continuamente con una carga " +"eléctrica." #: lang/json/MONSTER_from_json.py msgid "Lightning arcs from the leech stalk!" -msgstr "" +msgstr "¡Se ven rayos que salen del tallo chupasangre!" #: lang/json/MONSTER_from_json.py msgid "leech pod cluster" msgid_plural "leech pod clusters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "racimo de vainas chupasangre" +msgstr[1] "racimos de vainas chupasangre" #. ~ Description for {'str': 'leech pod cluster'} #: lang/json/MONSTER_from_json.py @@ -79888,16 +80381,19 @@ msgid "" "rhizomes. You can barely distinguish a root drone floating within a cloudy " "substance." msgstr "" +"Son las vainas traslúcidas de los huevos de una planta alienígena, agarrados" +" firmemente por rizomas luminosas. Apenas si podés distinguir una raíz " +"flotando dentro de una sustancia nubosa." #: lang/json/MONSTER_from_json.py msgid "Lightning arcs from the pod cluster!" -msgstr "" +msgstr "¡Se ven rayos que salen del racimo de vainas chupasangre!" #: lang/json/MONSTER_from_json.py msgid "root runner" msgid_plural "root runners" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "corredor de raíz" +msgstr[1] "corredores de raíz" #. ~ Description for {'str': 'root runner'} #: lang/json/MONSTER_from_json.py @@ -79908,16 +80404,22 @@ msgid "" "unknown mean. It's seemingly a symbiote of the nearby alien ferns, and " "looks ready to defend them with its life." msgstr "" +"Esta mata de vegetación boscosa trepa velozmente de una forma similar a un " +"lagarto. En la parte de atrás de la criatura, tiene unas hojas traslúcidas " +"que parecen escamas, y las delgadas puntas entre ellas brillan de vez en " +"cuando de alguna forma desconocida. Aparentemente, es una simbiosis de las " +"plantas alienígenas cercanas, y parece estar lista para defenderlas con su " +"vida." #: lang/json/MONSTER_from_json.py msgid "Sparks fly from the root runner!" -msgstr "" +msgstr "¡Se ven chispas que salen del corredor de raíz!" #: lang/json/MONSTER_from_json.py msgid "root drone" msgid_plural "root drones" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "raíz dron" +msgstr[1] "raíces drones" #. ~ Description for {'str': 'root drone'} #: lang/json/MONSTER_from_json.py @@ -79926,16 +80428,20 @@ msgid "" "three tendril rhizomes. Dripping and glistening, it resembles a creature " "newly born rather than a sapling grown from seeds." msgstr "" +"Es un bulbo pequeño con una protuberancia que parece un pico, paseando " +"tímidamente debajo de los rizomas y zarcillos del árbol. Está chorreando " +"algo y es reluciente, parece más una criatura recién nacida que un brote " +"crecido de una semilla." #: lang/json/MONSTER_from_json.py msgid "Lightning arcs from the root pod!" -msgstr "" +msgstr "¡Se ven rayos que salen de las raíces!" #: lang/json/MONSTER_from_json.py msgid "giant frog" msgid_plural "giant frogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rana gigante" +msgstr[1] "ranas gigantes" #. ~ Description for {'str': 'giant frog'} #: lang/json/MONSTER_from_json.py @@ -79949,8 +80455,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "sewer gator" msgid_plural "sewer gators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cocodrilo de cloaca" +msgstr[1] "cocodrilos de cloaca" #. ~ Description for {'str': 'sewer gator'} #: lang/json/MONSTER_from_json.py @@ -79960,12 +80466,15 @@ msgid "" "large specimen doesn't look like it sees humans as anything other than a " "meal." msgstr "" +"A fines del siglo XX había una leyenda urbana acerca de unos pequeños " +"cocodrilos que eran tirados por el inodoro y se hacían adultos en las " +"cloacas. Este gran especímen parece ver a los humanos solo como alimento." #: lang/json/MONSTER_from_json.py msgid "rattlesnake" msgid_plural "rattlesnakes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "serpiente de cascabel" +msgstr[1] "serpientes de cascabel" #. ~ Description for {'str': 'rattlesnake'} #: lang/json/MONSTER_from_json.py @@ -79979,8 +80488,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant rattlesnake" msgid_plural "giant rattlesnakes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "serpiente de cascabel gigante" +msgstr[1] "serpientes gigantes de cascabel" #. ~ Description for {'str': 'giant rattlesnake'} #: lang/json/MONSTER_from_json.py @@ -79997,8 +80506,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "sewer snake" msgid_plural "sewer snakes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "serpiente de cloaca" +msgstr[1] "serpientes de cloaca" #. ~ Description for {'str': 'sewer snake'} #: lang/json/MONSTER_from_json.py @@ -80014,8 +80523,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "blob" msgid_plural "blobs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "blobo" +msgstr[1] "blobos" #. ~ Description for {'str': 'blob'} #: lang/json/MONSTER_from_json.py @@ -80029,8 +80538,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "brain blob" msgid_plural "brain blobs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "blobo cerebro" +msgstr[1] "blobos cerebro" #. ~ Description for {'str': 'brain blob'} #: lang/json/MONSTER_from_json.py @@ -80045,8 +80554,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "big blob" msgid_plural "big blobs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "blobo grande" +msgstr[1] "blobos grandes" #. ~ Description for {'str': 'big blob'} #: lang/json/MONSTER_from_json.py @@ -80060,8 +80569,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "small blob" msgid_plural "small blobs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "blobo pequeño" +msgstr[1] "blobos pequeños" #. ~ Description for {'str': 'small blob'} #: lang/json/MONSTER_from_json.py @@ -80075,8 +80584,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "amoebic mold" msgid_plural "amoebic molds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "moho amebiano" +msgstr[1] "mohos amebianos" #. ~ Description for {'str': 'amoebic mold'} #: lang/json/MONSTER_from_json.py @@ -80090,8 +80599,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "slimespring" msgid_plural "slimesprings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "slime elástico" +msgstr[1] "slimes elásticos" #. ~ Description for {'str': 'slimespring'} #: lang/json/MONSTER_from_json.py @@ -80103,8 +80612,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "sludge crawler" msgid_plural "sludge crawlers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arrastrador de barro" +msgstr[1] "arrastradores de barro" #. ~ Description for {'str': 'sludge crawler'} #: lang/json/MONSTER_from_json.py @@ -80121,8 +80630,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant slug" msgid_plural "giant slugs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "babosa gigante" +msgstr[1] "babosas gigantes" #. ~ Description for {'str': 'giant slug'} #: lang/json/MONSTER_from_json.py @@ -80137,8 +80646,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "biollante sprig" msgid_plural "biollante sprigs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ramito de biollante" +msgstr[1] "ramitos de biollante" #. ~ Description for {'str': 'biollante sprig'} #: lang/json/MONSTER_from_json.py @@ -80148,8 +80657,8 @@ msgstr "Es un tallo corto y gordo con hojas anchas y pequeños pimpollos." #: lang/json/MONSTER_from_json.py msgid "biollante sprout" msgid_plural "biollante sprouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "brote de biollante" +msgstr[1] "brotes de biollante" #. ~ Description for {'str': 'biollante sprout'} #: lang/json/MONSTER_from_json.py @@ -80164,8 +80673,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "biollante" msgid_plural "biollantes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "biollante" +msgstr[1] "biollantes" #. ~ Description for {'str': 'biollante'} #: lang/json/MONSTER_from_json.py @@ -80173,14 +80682,14 @@ msgid "" "A drooped, quivering plant with a thick stalk adorned by a purple flower. " "Its petals are closed, and pulsate ominously." msgstr "" -"Una planta de ramas colgantes con un tallo grueso adornado con una flor " +"Es una planta de ramas colgantes con un tallo grueso adornado con una flor " "púrpura. Sus pétalos están cerrados, y palpitan ominosamente." #: lang/json/MONSTER_from_json.py msgid "creeper hub" msgid_plural "creeper hubs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "enredadera central" +msgstr[1] "enredaderas centrales" #. ~ Description for {'str': 'creeper hub'} #: lang/json/MONSTER_from_json.py @@ -80194,8 +80703,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "creeper vine" msgid_plural "creeper vines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "enredadera brotada" +msgstr[1] "enredaderas brotadas" #. ~ Description for {'str': 'creeper vine'} #: lang/json/MONSTER_from_json.py @@ -80207,8 +80716,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "triffid sprig" msgid_plural "triffid sprigs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ramito trífido" +msgstr[1] "ramitos trífido" #. ~ Description for {'str': 'triffid sprig'} #: lang/json/MONSTER_from_json.py @@ -80222,8 +80731,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "triffid sprout" msgid_plural "triffid sprouts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "brote de trífido" +msgstr[1] "brotes de trífido" #. ~ Description for {'str': 'triffid sprout'} #: lang/json/MONSTER_from_json.py @@ -80237,8 +80746,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "triffid" msgid_plural "triffids" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trífido" +msgstr[1] "trífidos" #. ~ Description for {'str': 'triffid'} #: lang/json/MONSTER_from_json.py @@ -80254,8 +80763,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "triffid queen" msgid_plural "triffid queens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "trífida reina" +msgstr[1] "trífidas reina" #. ~ Description for {'str': 'triffid queen'} #: lang/json/MONSTER_from_json.py @@ -80271,8 +80780,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "vine beast" msgid_plural "vine beasts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bestia enredadera" +msgstr[1] "bestias enredaderas" #. ~ Description for {'str': 'vine beast'} #: lang/json/MONSTER_from_json.py @@ -80288,8 +80797,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal fighter" msgid_plural "fungal fighters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "guerrero fúngico" +msgstr[1] "guerreros fúngicos" #. ~ Description for {'str': 'fungal fighter'} #: lang/json/MONSTER_from_json.py @@ -80305,8 +80814,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "triffid flower" msgid_plural "triffid flowers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "flor trífida" +msgstr[1] "flores trífidas" #. ~ Description for {'str': 'triffid flower'} #: lang/json/MONSTER_from_json.py @@ -80314,12 +80823,14 @@ msgid "" "A giant plant with a thick stalk adorned by a purple flower. Its petals are" " open with ominous shine in center." msgstr "" +"Es una planta gigante con un tallo grueso adornado con una flor púrpura. Sus" +" pétalos están abiertos y tiene un brillo ominoso en el centro." #: lang/json/MONSTER_from_json.py lang/json/overmap_terrain_from_json.py msgid "triffid heart" msgid_plural "triffid hearts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "corazón trífido" +msgstr[1] "corazones trífidos" #. ~ Description for {'str': 'triffid heart'} #: lang/json/MONSTER_from_json.py @@ -80333,8 +80844,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "improvised MP5 turret" msgid_plural "improvised MP5 turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta MP5 improvisada" +msgstr[1] "torretas MP5 improvisadas" #. ~ Description for {'str': 'improvised MP5 turret'} #: lang/json/MONSTER_from_json.py @@ -80343,12 +80854,16 @@ msgid "" "control. There is no mechanism to reload the weapon when its magazine is " "empty and the fire control system is only designed for semi automatic fire." msgstr "" +"Es un MP5 unido a un chasis motorizado con un software básico de control " +"autónomo. No tiene mecanismo de recarga para el arma cuando el cargador se " +"vacía, y el sistema de control de disparo es diseñado solamente para disparo" +" semiautomático." #: lang/json/MONSTER_from_json.py msgid "milspec searchlight" msgid_plural "milspec searchlights" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "foco reflector milspec" +msgstr[1] "focos reflectores milspec" #. ~ Description for {'str': 'milspec searchlight'} #: lang/json/MONSTER_from_json.py @@ -80360,28 +80875,11 @@ msgstr "" " búsqueda y montaje automatizados, lo que lo hace estar constantemente " "buscando objetivos." -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from" -" solar cells embedded in its hull." -msgstr "" -"La TX-5LR Cerberus es una actualización de su predecesores. Posee un sistema" -" de cañón láser rotativo de última generación, con tres cañones que se " -"cargan con las celdas solares que están dispuestas por todo su casco." - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta M2HB autónoma CROWS II" +msgstr[1] "torretas M2HB autónomas CROWS II" #. ~ Description for {'str': 'M2HB autonomous CROWS II'} #: lang/json/MONSTER_from_json.py @@ -80392,12 +80890,17 @@ msgid "" " anything up to light vehicles at long range without exposing the operator." " This one is fitted with a M2HB." msgstr "" +"Es un sistema de arma remoto derivada de la M153 CROWS II y mejorada con un " +"software de operación autónoma. Miles de estas fueron desplegadas por el " +"ejército de Estados Unidos antes del Cataclismo, y eran valoradas por su uso" +" contra cualquier cosa, incluso vehículos ligeros a gran distancia sin " +"exponer al operador. Esta tiene un M2HB." #: lang/json/MONSTER_from_json.py msgid "M249 autonomous CROWS II" msgid_plural "M249 autonomous CROWS IIs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta M249 autónoma CROWS II" +msgstr[1] "torretas M249 autónomas CROWS II" #. ~ Description for {'str': 'M249 autonomous CROWS II'} #: lang/json/MONSTER_from_json.py @@ -80407,12 +80910,16 @@ msgid "" "military before the Cataclysm and they were valued for their use in engaging" " infantry without exposing the operator. This one is fitted with a M249." msgstr "" +"Es un sistema de arma remoto derivada de la M153 CROWS II y mejorada con un " +"software de operación autónoma. Miles de estas fueron desplegadas por el " +"ejército de Estados Unidos antes del Cataclismo, y eran valoradas por su uso" +" contra infantería sin exponer al operador. Esta tiene un M249." #: lang/json/MONSTER_from_json.py msgid "M240 autonomous CROWS II" msgid_plural "M240 autonomous CROWS IIs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta M240 autónoma CROWS II" +msgstr[1] "torretas M240 autónomas CROWS II" #. ~ Description for {'str': 'M240 autonomous CROWS II'} #: lang/json/MONSTER_from_json.py @@ -80422,12 +80929,16 @@ msgid "" "military before the Cataclysm and they were valued for their use in engaging" " infantry without exposing the operator. This one is fitted with a M240." msgstr "" +"Es un sistema de arma remoto derivada de la M153 CROWS II y mejorada con un " +"software de operación autónoma. Miles de estas fueron desplegadas por el " +"ejército de Estados Unidos antes del Cataclismo, y eran valoradas por su uso" +" contra infantería sin exponer al operador. Esta tiene un M240." #: lang/json/MONSTER_from_json.py msgid "riot control platform" msgid_plural "riot control platforms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "plataforma antidisturbios" +msgstr[1] "plataformas antidisturbios" #. ~ Description for {'str': 'riot control platform'} #: lang/json/MONSTER_from_json.py @@ -80442,12 +80953,33 @@ msgid "" "shoots autonomously, it requires a human operator to relocate, so it's not " "so mobile anymore." msgstr "" +"Estas plataformas antidisturbios derivadas del TALON fueron muy publicitadas" +" unos años antes del Cataclismo, como un nuevo dispositivo semiautónomo que " +"puede disparar balas no letales con mucha mayor precisión que un humano, " +"asegurándose de herir al objetivo en los miembros. Fueron rápidamente " +"adoptadas en las cárceles y fuerzas policiales, donde quedó demostrado que " +"las armas no letales a veces son un poco letales. En los días previos al " +"Cataclismo, enromes cantidades fueron puestas en circulación. Lo bueno es " +"que aunque dispara de manera autónoma, necesita un operador humano para " +"reubicarse, así que ya no es muy móvil." + +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "parlante" +msgstr[1] "parlantes" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "" +"Es un parlante de gran potencia, que repite mensajes fuertes una y otra vez." #: lang/json/MONSTER_from_json.py msgid "eyebot" msgid_plural "eyebots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ojobot" +msgstr[1] "ojobots" #. ~ Description for {'str': 'eyebot'} #: lang/json/MONSTER_from_json.py @@ -80459,12 +80991,18 @@ msgid "" "functional, given that the thing seems to have an operational charging " "station somewhere." msgstr "" +"Es un dron cuadrirrotor compuesto en su mayor parte de lentes de cámara de " +"alta resolución y un parlante. Este robot sobrevuela el suelo, documentando " +"la carnicería y el caos que lo rodea. Aunque ya no es capaz de reportarse a " +"la autoridad central, es probable que algunos de sus sistemas automatizados " +"de alerta todavía sigan funcionando, dado que parece tener una estación de " +"carga operativa en algún lado." #: lang/json/MONSTER_from_json.py msgid "grocery bot" msgid_plural "grocery bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "almacénbot" +msgstr[1] "almacénbots" #. ~ Description for {'str': 'grocery bot'} #: lang/json/MONSTER_from_json.py @@ -80475,12 +81013,18 @@ msgid "" "machine of a complexity never seen before, Uncanny even hired professional " "actors to record its lines. Examine to befriend." msgstr "" +"Es un producto popular de Uncanny, este amigable androide puede llevar tu " +"bolsa o empujar tu changuito. Sabés que es amigable porque su cara humana " +"está constantemente sonriéndote. Según las publicidades, utiliza una máquina" +" de estado de una complejidad nunca antes vista, incluso Uncanny contrató " +"actores profesionales para grabar sus voces. Hay que examinarlo para hacerse" +" amigo." #: lang/json/MONSTER_from_json.py msgid "busted grocery bot" msgid_plural "busted grocery bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "almacénbot estropeado" +msgstr[1] "almacénbots estropeados" #. ~ Description for {'str': 'busted grocery bot'} #: lang/json/MONSTER_from_json.py @@ -80489,12 +81033,15 @@ msgid "" "damaged to push a Grocery Cart. Despite its current state it's still " "smiling at you. Examine to befriend." msgstr "" +"Es un almacénbot un poco estropeado, todavía te puede llevar la bolsa, pero " +"sus brazos están muy dañados como para empujar un changuito. A pesar de su " +"estado, todavía te sonríe. Hay que examinarlo para hacerse amigo." #: lang/json/MONSTER_from_json.py msgid "cleaner bot" msgid_plural "cleaner bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "limpiezabot" +msgstr[1] "limpiezabots" #. ~ Description for {'str': 'cleaner bot'} #: lang/json/MONSTER_from_json.py @@ -80508,8 +81055,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "miner bot" msgid_plural "miner bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "minerobot" +msgstr[1] "minerobots" #. ~ Description for {'str': 'miner bot'} #: lang/json/MONSTER_from_json.py @@ -80523,8 +81070,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "nurse bot" msgid_plural "nurse bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "enfermerobot" +msgstr[1] "enfermerobots" #. ~ Description for {'str': 'nurse bot'} #: lang/json/MONSTER_from_json.py @@ -80534,12 +81081,16 @@ msgid "" "makes you really uncomfortable. The end of the world did not stop it from " "looking for patient to assist." msgstr "" +"El primer producto de Uncanny, un gran humanoide de cuatro brazos con cara " +"gentil. Los detalles de su rostro son notables, pero su rigidez te hace " +"sentir muy incómodo. El fin del mundo no evitó que todavía esté esperando un" +" paciente para asistir." #: lang/json/MONSTER_from_json.py msgid "jawed terror" msgid_plural "jawed terrors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "terror dentado" +msgstr[1] "terrores dentados" #. ~ Description for {'str': 'jawed terror'} #: lang/json/MONSTER_from_json.py @@ -80553,8 +81104,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie dog" msgid_plural "zombie dogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perro zombi" +msgstr[1] "perros zombis" #. ~ Description for {'str': 'zombie dog'} #: lang/json/MONSTER_from_json.py @@ -80568,8 +81119,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skeletal dog" msgid_plural "skeletal dogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perro esquelético" +msgstr[1] "perros esqueléticos" #. ~ Description for {'str': 'skeletal dog'} #: lang/json/MONSTER_from_json.py @@ -80587,8 +81138,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Z-9" msgid_plural "Z-9s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Z-9" +msgstr[1] "Z-9" #. ~ Description for {'str': 'Z-9'} #: lang/json/MONSTER_from_json.py @@ -80602,8 +81153,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "rot-weiler" msgid_plural "rot-weilers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rot-weiler" +msgstr[1] "rot-weilers" #. ~ Description for {'str': 'rot-weiler'} #: lang/json/MONSTER_from_json.py @@ -80611,12 +81162,15 @@ msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" " chains of pulsing cysts and slime-dribbling ulcers." msgstr "" +"Este cadáver canino va acompañado por un olor agrio. Su cuerpo entero está " +"cubierto con una sucesión de quistes que palpitan y de úlceras que gotean " +"baba." #: lang/json/MONSTER_from_json.py msgid "grim howler" msgid_plural "grim howlers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "aullador sombrío" +msgstr[1] "aulladores sombríos" #. ~ Description for {'str': 'grim howler'} #: lang/json/MONSTER_from_json.py @@ -80630,8 +81184,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombear" msgid_plural "zombears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "osombi" +msgstr[1] "osombis" #. ~ Description for {'str': 'zombear'} #: lang/json/MONSTER_from_json.py @@ -80645,8 +81199,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "festering boar" msgid_plural "festering boars" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jabalí podrido" +msgstr[1] "jabalís podridos" #. ~ Description for {'str': 'festering boar'} #: lang/json/MONSTER_from_json.py @@ -80660,8 +81214,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombeaver" msgid_plural "zombeavers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "castorombi" +msgstr[1] "castorombis" #. ~ Description for {'str': 'zombeaver'} #: lang/json/MONSTER_from_json.py @@ -80672,12 +81226,18 @@ msgid "" " is oozing out of it. Seems like it isn't interested in trees anymore and " "is looking for some warm flesh to feed." msgstr "" +"Esta bestia de mirada fría tiene un gran bulto al costado, y se puede ver " +"dentro unas costillas con algo de carne. La característica más prominente de" +" esta abominación son sus largos incisivos en su ominosa boca abierta. Una " +"extraña viscosidad negra está goteando de ella. Parece como ya no tiene " +"interés en los árboles y está buscando un poco de carne tibia para " +"alimentarse." #: lang/json/MONSTER_from_json.py msgid "antlered horror" msgid_plural "antlered horrors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "horror con cuernos" +msgstr[1] "horrores con cuernos" #. ~ Description for {'str': 'antlered horror'} #: lang/json/MONSTER_from_json.py @@ -80695,8 +81255,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "decayed pouncer" msgid_plural "decayed pouncers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "saltador podrido" +msgstr[1] "saltadores podridos" #. ~ Description for {'str': 'decayed pouncer'} #: lang/json/MONSTER_from_json.py @@ -80710,8 +81270,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "scarred zombie" msgid_plural "scarred zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi cicatrizal" +msgstr[1] "zombis cicatrizales" #. ~ Description for {'str': 'scarred zombie'} #: lang/json/MONSTER_from_json.py @@ -80719,12 +81279,14 @@ msgid "" "A deformed human body, its skin transformed into one thick, calloused " "envelope of scar tissue." msgstr "" +"Es un cuerpo humano deformado, su piel se ha transformado en un grueso " +"envoltorio calloso de tejido cicatrizal." #: lang/json/MONSTER_from_json.py lang/json/snippet_from_json.py msgid "zombie" msgid_plural "zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi" +msgstr[1] "zombis" #. ~ Description for {'str': 'zombie'} #: lang/json/MONSTER_from_json.py @@ -80732,12 +81294,14 @@ msgid "" "A human body, swaying as it moves, an unstoppable rage visible in its oily " "black eyes." msgstr "" +"Es un cuerpo humano que se arrastra para moverse, con una ira incontenible " +"en sus aceitosos ojos negros." #: lang/json/MONSTER_from_json.py msgid "zombie cop" msgid_plural "zombie cops" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi policía" +msgstr[1] "zombis policías" #. ~ Description for {'str': 'zombie cop'} #: lang/json/MONSTER_from_json.py @@ -80750,8 +81314,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "crawling zombie" msgid_plural "crawling zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi arrastrador" +msgstr[1] "zombis arrastradores" #. ~ Description for {'str': 'crawling zombie'} #: lang/json/MONSTER_from_json.py @@ -80765,8 +81329,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie dancer" msgid_plural "zombie dancers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi bailarín" +msgstr[1] "zombis bailarines" #. ~ Description for {'str': 'zombie dancer'} #: lang/json/MONSTER_from_json.py @@ -80778,12 +81342,18 @@ msgid "" "\n" "The dancer doesn't even notice you, it seems like something nearby is controlling it." msgstr "" +"The foulest stench is in the air, \n" +"The funk of forty thousand years, \n" +"And grisly ghouls from every tomb, \n" +"Are closing in to seal your doom!\n" +"\n" +"El bailarín ni siquiera nota tu presencia, parece como si algo lo estuviera controlando." #: lang/json/MONSTER_from_json.py msgid "fat zombie" msgid_plural "fat zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi gordo" +msgstr[1] "zombis gordos" #. ~ Description for {'str': 'fat zombie'} #: lang/json/MONSTER_from_json.py @@ -80797,8 +81367,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "firefighter zombie" msgid_plural "firefighter zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi bombero" +msgstr[1] "zombis bomberos" #. ~ Description for {'str': 'firefighter zombie'} #: lang/json/MONSTER_from_json.py @@ -80813,8 +81383,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "hazmat zombie" msgid_plural "hazmat zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi NBQ" +msgstr[1] "zombis NBQ" #. ~ Description for {'str': 'hazmat zombie'} #: lang/json/MONSTER_from_json.py @@ -80828,8 +81398,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "decayed zombie" msgid_plural "decayed zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi putrefacto" +msgstr[1] "zombis putrefactos" #. ~ Description for {'str': 'decayed zombie'} #: lang/json/MONSTER_from_json.py @@ -80843,8 +81413,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "SWAT zombie" msgid_plural "SWAT zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi SWAT" +msgstr[1] "zombis SWAT" #. ~ Description for SWAT zombie #: lang/json/MONSTER_from_json.py @@ -80852,12 +81422,15 @@ msgid "" "This zombie was part of a specialized unit of law enforcement. It still " "wears a battered armor with the SWAT logo emblazoned on the front." msgstr "" +"Este zombi formaba parte de una unidad especializada de las fuerzas de la " +"ley. Todavía lleva la armadura maltrecha con el logo de SWAT grabado en el " +"frente." #: lang/json/MONSTER_from_json.py msgid "tough zombie" msgid_plural "tough zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi rudo" +msgstr[1] "zombis rudos" #. ~ Description for {'str': 'tough zombie'} #: lang/json/MONSTER_from_json.py @@ -80871,19 +81444,19 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "sleek zombie" msgid_plural "sleek zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi pulcro" +msgstr[1] "zombis pulcros" #. ~ Description for {'str': 'sleek zombie'} #: lang/json/MONSTER_from_json.py msgid "This zombie is rather sleek and barely clothed." -msgstr "" +msgstr "Este zombi está bastante limpio y con muy poca ropa." #: lang/json/MONSTER_from_json.py msgid "bouncer zombie" msgid_plural "bouncer zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi patovica" +msgstr[1] "zombis patovicas" #. ~ Description for {'str': 'bouncer zombie'} #: lang/json/MONSTER_from_json.py @@ -80891,12 +81464,14 @@ msgid "" "This zombie looks beefed and is dressed in the tattered remnants of a " "security uniform." msgstr "" +"Este zombi parece musculoso y está vestido con los restos destrozados de un " +"uniforme de seguridad." #: lang/json/MONSTER_from_json.py msgid "acidic zombie" msgid_plural "acidic zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi ácido" +msgstr[1] "zombis ácidos" #. ~ Description for {'str': 'acidic zombie'} #: lang/json/MONSTER_from_json.py @@ -80911,8 +81486,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "corrosive zombie" msgid_plural "corrosive zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi corrosivo" +msgstr[1] "zombis corrosivos" #. ~ Description for {'str': 'corrosive zombie'} #: lang/json/MONSTER_from_json.py @@ -80933,8 +81508,8 @@ msgstr "¡El zombi corrosivo escupe una pegote de ácido!" #: lang/json/MONSTER_from_json.py msgid "spitter zombie" msgid_plural "spitter zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi escupidor" +msgstr[1] "zombis escupidores" #. ~ Description for {'str': 'spitter zombie'} #: lang/json/MONSTER_from_json.py @@ -80951,8 +81526,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "wretched puker" msgid_plural "wretched pukers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vomitador miserable" +msgstr[1] "vomitadores miserables" #. ~ Description for {'str': 'wretched puker'} #: lang/json/MONSTER_from_json.py @@ -80961,6 +81536,9 @@ msgid "" "materials have unified into its skin and wounds around it reeks in black " "goo." msgstr "" +"Es un cuerpo degenerado, que arrastra los pies al caminar. Varias porquerías" +" y residuos se han unido a su piel, y las heridas que tiene chorrean una " +"viscosidad negra." #: lang/json/MONSTER_from_json.py msgid "zombie kinderling" @@ -80982,8 +81560,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fiend" msgid_plural "fiends" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "diablito" +msgstr[1] "diablitos" #. ~ Description for {'str': 'fiend'} #: lang/json/MONSTER_from_json.py @@ -80997,8 +81575,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "scorched zombie" msgid_plural "scorched zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi calcinado" +msgstr[1] "zombis calcinados" #. ~ Description for {'str': 'scorched zombie'} #: lang/json/MONSTER_from_json.py @@ -81012,8 +81590,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "anklebiter" msgid_plural "anklebiters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pendejo" +msgstr[1] "pendejos" #. ~ Description for {'str': 'anklebiter'} #: lang/json/MONSTER_from_json.py @@ -81045,8 +81623,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "creepy crawler" msgid_plural "creepy crawlers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sabandija" +msgstr[1] "sabandijas" #. ~ Description for {'str': 'creepy crawler'} #: lang/json/MONSTER_from_json.py @@ -81061,8 +81639,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shriekling" msgid_plural "shrieklings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pendejo aullador" +msgstr[1] "pendejos aulladores" #. ~ Description for {'str': 'shriekling'} #: lang/json/MONSTER_from_json.py @@ -81076,8 +81654,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "snotgobbler" msgid_plural "snotgobblers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mocoso" +msgstr[1] "mocosos" #. ~ Description for {'str': 'snotgobbler'} #: lang/json/MONSTER_from_json.py @@ -81091,8 +81669,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "sproglodyte" msgid_plural "sproglodytes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vastaglodita" +msgstr[1] "vastagloditas" #. ~ Description for {'str': 'sproglodyte'} #: lang/json/MONSTER_from_json.py @@ -81106,8 +81684,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "howling waif" msgid_plural "howling waifs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "huérfano aullante" +msgstr[1] "huérfanos aullantes" #. ~ Description for {'str': 'howling waif'} #: lang/json/MONSTER_from_json.py @@ -81123,8 +81701,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shocker brute" msgid_plural "shocker brutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "shocker bruto" +msgstr[1] "shockers brutos" #. ~ Description for {'str': 'shocker brute'} #: lang/json/MONSTER_from_json.py @@ -81140,8 +81718,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shocker zombie" msgid_plural "shocker zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi shocker" +msgstr[1] "zombis shocker" #. ~ Description for {'str': 'shocker zombie'} #: lang/json/MONSTER_from_json.py @@ -81153,8 +81731,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "incandescent husk" msgid_plural "incandescent husks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cáscara incandescente" +msgstr[1] "cáscaras incandescentes" #. ~ Description for {'str': 'incandescent husk'} #: lang/json/MONSTER_from_json.py @@ -81173,8 +81751,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zapper zombie" msgid_plural "zapper zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi exterminador" +msgstr[1] "zombis exterminadores" #. ~ Description for {'str': 'zapper zombie'} #: lang/json/MONSTER_from_json.py @@ -81182,12 +81760,14 @@ msgid "" "A very pale dead body with the worst case of static hair you have ever seen." " Sometimes, you can see sparks of electricity around it." msgstr "" +"Es un cadáver muy pálido con el peor caso de estática que alguna vez hayas " +"visto. A veces, podés ver chispas de electricidad a su alrededor." #: lang/json/MONSTER_from_json.py msgid "boomer" msgid_plural "boomers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "boomer" +msgstr[1] "boomers" #. ~ Description for {'str': 'boomer'} #: lang/json/MONSTER_from_json.py @@ -81202,8 +81782,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "huge boomer" msgid_plural "huge boomers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "boomer enorme" +msgstr[1] "boomers enormes" #. ~ Description for {'str': 'huge boomer'} #: lang/json/MONSTER_from_json.py @@ -81211,12 +81791,14 @@ msgid "" "This boomer, normally swollen and ready to burst, has strengthened and " "solidified. The bile dribbling from its mouth also appears to have changed…" msgstr "" +"Este boomer, hinchado y listo para explotar como todos, se ha fortalecido y " +"solidificado. La bilis que gotea de su boca también parece haber cambiado..." #: lang/json/MONSTER_from_json.py msgid "gasoline zombie" msgid_plural "gasoline zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi nafta" +msgstr[1] "zombis nafta" #. ~ Description for {'str': 'gasoline zombie'} #: lang/json/MONSTER_from_json.py @@ -81224,12 +81806,14 @@ msgid "" "A huge bloated zombie that appears to have fed upon gasoline; fumes and " "flames escape from its mouth and fuel leaks from its waddling form." msgstr "" +"Es un enorme zombi hinchado que parece haberse alimentado con nafta; gases y" +" llamas escapan de su boca y pierde nafta mientras camina." #: lang/json/MONSTER_from_json.py msgid "bloated zombie" msgid_plural "bloated zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi hinchado" +msgstr[1] "zombis hinchados" #. ~ Description for {'str': 'bloated zombie'} #: lang/json/MONSTER_from_json.py @@ -81242,42 +81826,11 @@ msgstr "" " cubierto de quistes parece como si pudiera explotar violentamente ante la " "menor perturbación." -#: lang/json/MONSTER_from_json.py -msgid "zombie grenadier" -msgid_plural "zombie grenadiers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'zombie grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear. Its hands " -"constantly fumble at its many pouches." -msgstr "" -"Alguna vez fue un soldado, está vestido de los pies a la cabeza con equipo " -"de combate. Sus manos revuelven constantemente sus múltiples bolsillos." - -#: lang/json/MONSTER_from_json.py -msgid "zombie elite grenadier" -msgid_plural "zombie elite grenadiers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'zombie elite grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear and wearing a MOLLE" -" pack. Its hands quickly open and close its many pouches." -msgstr "" -"Alguna vez fue un soldado, está vestido de los pies a la cabeza con equipo " -"de combate y lleva una mochila MOLLE. Sus manos abren y cierran rápidamente " -"sus múltiples bolsillos." - #: lang/json/MONSTER_from_json.py msgid "crawler" msgid_plural "crawlers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arrastrador" +msgstr[1] "arrastradores" #. ~ Description for {'str': 'crawler'} #: lang/json/MONSTER_from_json.py @@ -81292,8 +81845,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "dissoluted devourer" msgid_plural "dissoluted devourers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "devorador depravado" +msgstr[1] "devoradores depravados" #. ~ Description for {'str': 'dissoluted devourer'} #: lang/json/MONSTER_from_json.py @@ -81302,12 +81855,15 @@ msgid "" "out of its bloated body. You may have trouble estimating its healthiness " "and its capabilities might change." msgstr "" +"Cuerpos humanos se han fusionado armando un coloso con cabezas y miembros " +"sobresaliendo de su cuerpo hinchado. Podés tener problemas estimando su " +"salud, y sus capacidades pueden cambiar." #: lang/json/MONSTER_from_json.py msgid "trapped tendril" msgid_plural "trapped tendrils" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zarcillo atrapado" +msgstr[1] "zarcillos atrapados" #. ~ Description for {'str': 'trapped tendril'} #: lang/json/MONSTER_from_json.py @@ -81319,12 +81875,18 @@ msgid "" "bigger, for when it moves, you can feel this whole ruin tremble, as if an " "unseen giant struggled against the weight of its concrete tomb." msgstr "" +"Es un gran zarcillo de carne mutada y huesos filosos. Sale de una grieta en " +"el suelo arruinado; cientos de miembros humanos buscan liberarse y se " +"retuercen incesantemente debajo de su grotesca caparazón. Así de enorme como" +" ya se lo ve, estás seguro de que esto es solo parte de una criatura mucho " +"más grande, ya que cuando se mueve podés sentir temblar la ruina entera, " +"como si un gigante oculto pelea contra el peso de su tumba de concreto." #: lang/json/MONSTER_from_json.py msgid "gangrenous flesh" msgid_plural "gangrenous flesh" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "carne gangrenosa" +msgstr[1] "carne gangrenosa" #. ~ Description for {'str_sp': 'gangrenous flesh'} #: lang/json/MONSTER_from_json.py @@ -81333,12 +81895,15 @@ msgid "" "with putrid gas. Between lumps of unrecognizable gore, a human head lamely " "follows your walking with empty, black eyes." msgstr "" +"Inmóvil por las severas heridas, su piel gris se ha hinchado hasta casi " +"romperse con un gas pútrido. Entre los pedazos de órganos irreconocibles, " +"una cabeza humana sigue débilmente tu movimiento con ojos negros y vacíos." #: lang/json/MONSTER_from_json.py msgid "gangrenous crawler" msgid_plural "gangrenous crawlers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arrastrador gangrenoso" +msgstr[1] "arrastradores gangrenosos" #. ~ Description for {'str': 'gangrenous crawler'} #: lang/json/MONSTER_from_json.py @@ -81346,12 +81911,15 @@ msgid "" "A nightmarish spidery abomination, born from human gore. It deftly crawls " "between walls and ceiling with limbs grown from its own disjointed ribs." msgstr "" +"Es una abominación pesadillesca con forma de araña, nacida de órganos " +"humanos. Se arrastra ágilmente entre las paredes y el techo con miembros " +"crecidos de sus costillas dislocadas." #: lang/json/MONSTER_from_json.py msgid "gangrenous impaler" msgid_plural "gangrenous impalers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "impalador gangrenoso" +msgstr[1] "impaladores gangrenosos" #. ~ Description for {'str': 'gangrenous impaler'} #: lang/json/MONSTER_from_json.py @@ -81359,16 +81927,18 @@ msgid "" "A corpse hideously twisted into an insect-like form. A hollow tendril " "reaches out from its open thorax." msgstr "" +"Es un cadáver horriblemente retorcido hasta tomar forma de insecto. Un " +"zarcillo hueco sale de su tórax abierto." #: lang/json/MONSTER_from_json.py msgid "The impaler launches a barb!" -msgstr "" +msgstr "¡El impalador lanza una púa!" #: lang/json/MONSTER_from_json.py msgid "flesh wall" msgid_plural "flesh walls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pared cárnica" +msgstr[1] "paredes cárnicas" #. ~ Description for {'str': 'flesh wall'} #: lang/json/MONSTER_from_json.py @@ -81376,12 +81946,14 @@ msgid "" "A great lump of mutated flesh. It resembles the innards of some gigantic " "creature and is covered in a grid of diminutive veins." msgstr "" +"Es un gran bulto de carne mutada. Parece las entrañas de alguna gigantesca " +"criatura, y está cubierta por una red de venas diminutas." #: lang/json/MONSTER_from_json.py msgid "zombie scientist" msgid_plural "zombie scientists" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi científico" +msgstr[1] "zombis científicos" #. ~ Description for {'str': 'zombie scientist'} #: lang/json/MONSTER_from_json.py @@ -81391,12 +81963,16 @@ msgid "" "awareness - not a human awareness, but something more sinister. As you " "watch it, its movements look almost marionette-like." msgstr "" +"Aparte de los ojos negros azabache, este zombi parece menos descompuesto e " +"inhumano que los demás. Vestido con una bata de laboratorio rota, parece " +"tener un destello de conciencia - no una conciencia humana, algo más " +"siniestro. Mientras lo mirás, sus movimientos parecen los de una marioneta." #: lang/json/MONSTER_from_json.py msgid "zombie security guard" msgid_plural "zombie security guards" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi guardia de seguridad" +msgstr[1] "zombis guardia de seguridad" #. ~ Description for {'str': 'zombie security guard'} #: lang/json/MONSTER_from_json.py @@ -81406,12 +81982,16 @@ msgid "" " physically fit before its death; it moves quickly and powerfully, albeit " "clumsily." msgstr "" +"Es un cadáver humano tambaleante que lleva un uniforme gris y un chaleco " +"antibalas con la palabra \"SEGURIDAD\" grabada en el frente. Parece que el " +"guardia estaba en buen estado físico antes de su muerte, se mueve velozmente" +" y con fuerza, aunque de manera torpe." #: lang/json/MONSTER_from_json.py msgid "slavering biter" msgid_plural "slavering biters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mordedor babeante" +msgstr[1] "mordedores babeantes" #. ~ Description for {'str': 'slavering biter'} #: lang/json/MONSTER_from_json.py @@ -81426,8 +82006,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "brainless zombie" msgid_plural "brainless zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi descerebrado" +msgstr[1] "zombis descerebrados" #. ~ Description for {'str': 'brainless zombie'} #: lang/json/MONSTER_from_json.py @@ -81437,12 +82017,16 @@ msgid "" "flesh you can see that its face and brain are gone, though its ears are " "intact." msgstr "" +"Es un zombi como cualquier otro, excepto que su rostro y su cráneo han sido " +"devastados. No está claro qué le causó ese daño, pero entre los restos de " +"carnes podés ver que no tiene cara ni cerebro, aunque sus orejas están " +"intactas." #: lang/json/MONSTER_from_json.py msgid "zombie brute" msgid_plural "zombie brutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi bruto" +msgstr[1] "zombis brutos" #. ~ Description for {'str': 'zombie brute'} #: lang/json/MONSTER_from_json.py @@ -81455,8 +82039,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie wrestler" msgid_plural "zombie wrestlers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi luchador" +msgstr[1] "zombis luchadores" #. ~ Description for {'str': 'zombie wrestler'} #: lang/json/MONSTER_from_json.py @@ -81470,8 +82054,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie nightstalker" msgid_plural "zombie nightstalkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi acosador nocturno" +msgstr[1] "zombis acosador nocturno" #. ~ Description for {'str': 'zombie nightstalker'} #: lang/json/MONSTER_from_json.py @@ -81485,8 +82069,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "listener zombie" msgid_plural "listener zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi escuchador" +msgstr[1] "zombis escuchadores" #. ~ Description for {'str': 'listener zombie'} #: lang/json/MONSTER_from_json.py @@ -81496,12 +82080,17 @@ msgid "" "sides, enormous and unsettling. Thin slits at the front suggest it may be " "able to see." msgstr "" +"La cabeza de este zombi fue obviamente destrozada en algún momento, los " +"espacios entre sus pedazos de cara ahora están llenos de una peculiar " +"viscosidad gris. Orejas humanas cuelgan a los costados, enormes y " +"perturbadoras. Unos tajos finitos en su parte frontal pueden sugerir que es " +"capaz de ver." #: lang/json/MONSTER_from_json.py msgid "grabber zombie" msgid_plural "grabber zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi agarrador" +msgstr[1] "zombis agarradores" #. ~ Description for {'str': 'grabber zombie'} #: lang/json/MONSTER_from_json.py @@ -81516,8 +82105,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "grappler zombie" msgid_plural "grappler zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi aferrador" +msgstr[1] "zombis aferrradores" #. ~ Description for {'str': 'grappler zombie'} #: lang/json/MONSTER_from_json.py @@ -81533,8 +82122,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie hollow" msgid_plural "zombie hollows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi hueco" +msgstr[1] "zombis huecos" #. ~ Description for {'str': 'zombie hollow'} #: lang/json/MONSTER_from_json.py @@ -81555,8 +82144,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie hulk" msgid_plural "zombie hulks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi gigantón" +msgstr[1] "zombis gigantones" #. ~ Description for {'str': 'zombie hulk'} #: lang/json/MONSTER_from_json.py @@ -81570,8 +82159,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "feral hunter" msgid_plural "feral hunters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cazador salvaje" +msgstr[1] "cazadores salvajes" #. ~ Description for {'str': 'feral hunter'} #: lang/json/MONSTER_from_json.py @@ -81586,8 +82175,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Thriller" msgid_plural "Thrillers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Thriller" +msgstr[1] "Thrillers" #. ~ Description for {'str': 'Thriller'} #: lang/json/MONSTER_from_json.py @@ -81597,12 +82186,16 @@ msgid "" "For no mere mortal can resist,\n" "The evil of the thriller." msgstr "" +"And though you fight to stay alive,\n" +"Your body starts to shiver.\n" +"For no mere mortal can resist,\n" +"The evil of the thriller." #: lang/json/MONSTER_from_json.py msgid "zombie snapper" msgid_plural "zombie snappers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombis pargos" +msgstr[1] "zombi pargo" #. ~ Description for {'str': 'zombie snapper'} #: lang/json/MONSTER_from_json.py @@ -81616,8 +82209,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie master" msgid_plural "zombie masters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi maestro" +msgstr[1] "zombis maestros" #. ~ Description for {'str': 'zombie master'} #: lang/json/MONSTER_from_json.py @@ -81638,8 +82231,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie necromancer" msgid_plural "zombie necromancers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi nigromante" +msgstr[1] "zombis nigromantes" #. ~ Description for {'str': 'zombie necromancer'} #: lang/json/MONSTER_from_json.py @@ -81654,11 +82247,32 @@ msgstr "" "miedos más profundos de tu psiquis, e incluso el aire a su alrededor para " "más siniestro, de alguna manera más oscuro y más peligroso." +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "zombi necro-boomer" +msgstr[1] "zombis necro-boomers" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears" +" and guts teem with unmatched fecundity, as its gaze inspires fear of " +"nothing less than cosmic, inhuman ecstasy." +msgstr "" +"Al principio esta criatura parece nada más que una cáscara grotesca y " +"oleaginosa, hinchada y perforada por pústulas negras azabache. Cuando está " +"cerca podés ver sus ojos brillantes rojos y su gesto de dolor; su piel se " +"rompe y las tripas abundan con fecundidad inusitada, mientras que su mirada " +"inspira terror de completo éxtasis cósmico e inhumano." + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "corredor salvaje" +msgstr[1] "corredores salvajes" #. ~ Description for {'str': 'feral runner'} #: lang/json/MONSTER_from_json.py @@ -81673,8 +82287,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "feral predator" msgid_plural "feral predators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "depredador salvaje" +msgstr[1] "depredadores salvajes" #. ~ Description for {'str': 'feral predator'} #: lang/json/MONSTER_from_json.py @@ -81692,8 +82306,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "screecher zombie" msgid_plural "screecher zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi chillador" +msgstr[1] "zombis chilladores" #. ~ Description for {'str': 'screecher zombie'} #: lang/json/MONSTER_from_json.py @@ -81707,8 +82321,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shady zombie" msgid_plural "shady zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi sombrío" +msgstr[1] "zombis sombríos" #. ~ Description for {'str': 'shady zombie'} #: lang/json/MONSTER_from_json.py @@ -81734,12 +82348,16 @@ msgid "" "eating all the bodies,\n" "actual cannibal Shia LaBeouf." msgstr "" +"Living in the woods,\n" +"killing for sport,\n" +"eating all the bodies,\n" +"actual cannibal Shia LaBeouf." #: lang/json/MONSTER_from_json.py msgid "shrieker zombie" msgid_plural "shrieker zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi aullador" +msgstr[1] "zombis aulladores" #. ~ Description for {'str': 'shrieker zombie'} #: lang/json/MONSTER_from_json.py @@ -81753,8 +82371,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skull zombie" msgid_plural "skull zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi calavera" +msgstr[1] "zombis calavera" #. ~ Description for {'str': 'skull zombie'} #: lang/json/MONSTER_from_json.py @@ -81765,12 +82383,17 @@ msgid "" "thing's fleshy ears are four sizes too large and droop under their own " "weight." msgstr "" +"La cabeza de esta criatura es una espantosa calavera gris, formada con " +"fragmentos de hueso humano y alguna cosa viscosa. Se pueden ver dientes " +"serrados cuando esta cosa usa su mandíbula y unos ojos perturbadoramente " +"humanos y sin párpados te miran fijamente desde sus cuencas. Sus orejas " +"carnosas son excesivamente grandes y caen bajo su propio peso." #: lang/json/MONSTER_from_json.py msgid "smoker zombie" msgid_plural "smoker zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi humeante" +msgstr[1] "zombis humeantes" #. ~ Description for {'str': 'smoker zombie'} #: lang/json/MONSTER_from_json.py @@ -81784,8 +82407,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "swimmer zombie" msgid_plural "swimmer zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi nadador" +msgstr[1] "zombis nadadores" #. ~ Description for {'str': 'swimmer zombie'} #: lang/json/MONSTER_from_json.py @@ -81799,8 +82422,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie technician" msgid_plural "zombie technicians" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi técnico" +msgstr[1] "zombis técnicos" #. ~ Description for {'str': 'zombie technician'} #: lang/json/MONSTER_from_json.py @@ -81815,8 +82438,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "thorny shambler" msgid_plural "thorny shamblers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desorden espinoso" +msgstr[1] "desórdenes espinosos" #. ~ Description for {'str': 'thorny shambler'} #: lang/json/MONSTER_from_json.py @@ -81826,12 +82449,17 @@ msgid "" "the bramble utterly enveloping its upper half twitches and moves with a life" " of its own, tendrils tipped with a paralytic sting." msgstr "" +"Es un muerto viviente humanoide que renguea, con una masa de vegetación " +"sobrenatural enredada en su cuerpo. Encorvado y arrastrando los pies " +"mientras se mueve, el arbusto espinoso que envuelve su mitad superior se " +"retuerce y se mueve con vida propia. Sus zarcillos tienen un aguijón " +"paralizante en la punta." #: lang/json/MONSTER_from_json.py msgid "prisoner zombie" msgid_plural "prisoner zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi prisionero" +msgstr[1] "zombis prisioneros" #. ~ Description for {'str': 'prisoner zombie'} #: lang/json/MONSTER_from_json.py @@ -81840,12 +82468,15 @@ msgid "" "black and white striped prisoner clothes, and tattoos can be seen on his " "decaying skin." msgstr "" +"Aparentemente, este zombi estaba guardado cuando llegó el Cataclismo. Tiene " +"la ropa típica de rayas blancas y negras, y tatuajes que se ven en su piel " +"en descomposición." #: lang/json/MONSTER_from_json.py msgid "charred nightmare" msgid_plural "charred nightmares" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pesadilla chamuscada" +msgstr[1] "pesadillas chamuscadas" #. ~ Description for {'str': 'charred nightmare'} #: lang/json/MONSTER_from_json.py @@ -81860,8 +82491,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "irradiated wanderer" msgid_plural "irradiated wanderers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "errante irradiado" +msgstr[1] "errantes irradiados" #. ~ Description for {'str': 'irradiated wanderer'} #: lang/json/MONSTER_from_json.py @@ -81876,8 +82507,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skeleton" msgid_plural "skeletons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "esqueleto" +msgstr[1] "esqueletos" #. ~ Description for {'str': 'skeleton'} #: lang/json/MONSTER_from_json.py @@ -81896,8 +82527,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skeletal brute" msgid_plural "skeletal brutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bruto esquelético" +msgstr[1] "brutos esqueléticos" #. ~ Description for {'str': 'skeletal brute'} #: lang/json/MONSTER_from_json.py @@ -81905,12 +82536,15 @@ msgid "" "Distorted outgrowths of calcified bone plates cover this zombie's rotten " "skin. Joints and cracks around its body ooze with black goo." msgstr "" +"La piel podrida de este zombi está cubierta de placas de hueso calcificadas," +" distorsionadas y sobrecrecidas. Las articulaciones y fisuras de este cuerpo" +" chorrean una viscosidad negra." #: lang/json/MONSTER_from_json.py msgid "skeletal shocker" msgid_plural "skeletal shockers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "shocker esquéletico" +msgstr[1] "shockers esquéleticos" #. ~ Description for {'str': 'skeletal shocker'} #: lang/json/MONSTER_from_json.py @@ -81919,12 +82553,15 @@ msgid "" "Underneath, its flesh glows and crackles with the occasional jolt of " "electricity." msgstr "" +"Este zombi tiene placas de hueso grandes y dentadas creciendo de si piel. " +"Debajo, su carne brilla y chisporrotea con ocasionales descargas de " +"electricidad." #: lang/json/MONSTER_from_json.py msgid "skeletal juggernaut" msgid_plural "skeletal juggernauts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gigante esquelético" +msgstr[1] "gigantes esqueléticos" #. ~ Description for {'str': 'skeletal juggernaut'} #: lang/json/MONSTER_from_json.py @@ -81942,8 +82579,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie soldier" msgid_plural "zombie soldiers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi soldado" +msgstr[1] "zombis soldados" #. ~ Description for {'str': 'zombie soldier'} #: lang/json/MONSTER_from_json.py @@ -81957,8 +82594,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "black-ops zombie" msgid_plural "black-ops zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi black-ops" +msgstr[1] "zombis black-ops" #. ~ Description for {'str': 'black-ops zombie'} #: lang/json/MONSTER_from_json.py @@ -81967,12 +82604,15 @@ msgid "" "its outline, making its camouflage even harder to see against the " "background. In the darkness it would be nigh invisible." msgstr "" +"La piel de este zombi soldado irradia una especie de humo sombrío que " +"oscurece su silueta, haciendo que su camuflaje sea más difícil de ver contra" +" el fondo. En la oscuridad es prácticamente invisible." #: lang/json/MONSTER_from_json.py msgid "hunter-killer zombie" msgid_plural "hunter-killer zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi cazador-asesino" +msgstr[1] "zombis cazador-asesino" #. ~ Description for {'str': 'hunter-killer zombie'} #: lang/json/MONSTER_from_json.py @@ -81981,12 +82621,15 @@ msgid "" " Anything human is invisible, hidden inside a sheath of living shadow. It " "moves with preternatural fluidity and grace." msgstr "" +"Los fragmentos de un uniforme te dan la pista de que esta monstruosidad fue " +"alguna vez un soldado. Cualquier rasgo humano queda oculto en un velo de " +"sombra viva. Se mueve con fluidez y gracia sobrenatural." #: lang/json/MONSTER_from_json.py msgid "acid-sniper zombie" msgid_plural "acid-sniper zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi ácido-francotirador" +msgstr[1] "zombis ácido-francotirador" #. ~ Description for {'str': 'acid-sniper zombie'} #: lang/json/MONSTER_from_json.py @@ -81996,12 +82639,16 @@ msgid "" "hardened fleshy proboscis, with steaming corrosive fluid leaking from the " "end." msgstr "" +"Este soldado tambaleante lleva un máscara de gas quemada que ahora está " +"fusionada a su cara. A través de la máscara derretida y ruinosa llena de " +"bilis, se ve una especie de trompa dura de carne, con un humeante fluido " +"corrosivo chorreando de la punta." #: lang/json/MONSTER_from_json.py msgid "acid-support zombie" msgid_plural "acid-support zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi ácido-soporte" +msgstr[1] "zombis ácido-soporte" #. ~ Description for {'str': 'acid-support zombie'} #: lang/json/MONSTER_from_json.py @@ -82011,12 +82658,16 @@ msgid "" " and thickened hide. Its face and arms blister with strange mutated tubes " "that pulse and drip with acid." msgstr "" +"Este zombi tiene puesto lo que parece ser uniforme y armadura de soldado, " +"pero ahora son una serie de placas derretidas y rotas que se fusionaron a su" +" piel. Su cara y brazos burbujean con extraños tubos mutados que laten y " +"chorrean ácido." #: lang/json/MONSTER_from_json.py msgid "Kevlar zombie" msgid_plural "Kevlar zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi Kevlar" +msgstr[1] "zombis Kevlar" #. ~ Description for {'str': 'Kevlar zombie'} #: lang/json/MONSTER_from_json.py @@ -82028,12 +82679,18 @@ msgid "" "material into part of its hide. Its hands, similarly, have fused into large" " leathery cudgels." msgstr "" +"Este zombi alguna vez tuvo puesto algún uniforme con materiales antibalas " +"cosidos. En este momento, es imposible darse cuenta qué tipo de uniforme " +"era: la piel del monstruo ha crecido sobre la tela, rompiéndola e " +"deshilachándola, convirtiendo el Kevlar y los otros pedazos de armadura en " +"parte de su pellejo. Sus manos, de igual manera, se han fusionado y parecen " +"garrotes de cuero." #: lang/json/MONSTER_from_json.py msgid "Kevlar hulk" msgid_plural "Kevlar hulks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gigantón Kevlar" +msgstr[1] "gigantones Kevlar" #. ~ Description for {'str': 'Kevlar hulk'} #: lang/json/MONSTER_from_json.py @@ -82044,12 +82701,17 @@ msgid "" " the Kevlar bits embedded in it. Its arms have twisted into enormous clubs " "of misshapen bone that it drags on the ground behind it." msgstr "" +"Este zombi alguna vez tuvo puesto un uniforme con materiales antibalas " +"cocidos, pero ahora está destrozado. Se ha convertido una bestia gigante con" +" caparazón, su piel mutada tiene una textura similar al Kevlar al que está " +"unida. Sus brazos se han convertido en enormes garrotes de hueso deformado, " +"que va arrastrando por el suelo." #: lang/json/MONSTER_from_json.py msgid "zombie military pilot" msgid_plural "zombie military pilots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi piloto de ejército" +msgstr[1] "zombis piloto de ejército" #. ~ Description for {'str': 'zombie military pilot'} #: lang/json/MONSTER_from_json.py @@ -82063,8 +82725,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie burner" msgid_plural "zombie burners" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi quemador" +msgstr[1] "zombis quemadores" #. ~ Description for {'str': 'zombie burner'} #: lang/json/MONSTER_from_json.py @@ -82084,8 +82746,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "armored zombie" msgid_plural "armored zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi blindado" +msgstr[1] "zombis blindados" #. ~ Description for {'str': 'armored zombie'} #: lang/json/MONSTER_from_json.py @@ -82099,8 +82761,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie bio-operator" msgid_plural "zombie bio-operators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi bio-operador" +msgstr[1] "zombis bio-operadores" #. ~ Description for {'str': 'zombie bio-operator'} #: lang/json/MONSTER_from_json.py @@ -82114,8 +82776,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "elite zombie bio-operator" msgid_plural "elite zombie bio-operators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi bio-operador elite" +msgstr[1] "zombis bio-operadores elite" #. ~ Description for {'str': 'elite zombie bio-operator'} #: lang/json/MONSTER_from_json.py @@ -82123,12 +82785,14 @@ msgid "" "Once a highly trained soldier, various bionics cover this zombie's broken " "body. Strangely, it maintains a vague martial arts stance." msgstr "" +"Alguna vez fue un soldado entrenado, y varios biónicos cubren el cuerpo roto" +" de este zombi. Extrañamente, mantiene su postura de arte marcial" #: lang/json/MONSTER_from_json.py msgid "survivor zombie" msgid_plural "survivor zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sobreviviente zombi" +msgstr[1] "sobrevivientes zombis" #. ~ Description for {'str': 'survivor zombie'} #: lang/json/MONSTER_from_json.py @@ -82142,8 +82806,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "veteran survivor zombie" msgid_plural "veteran survivor zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sobreviviente veterano zombi" +msgstr[1] "sobrevivientes veteranos zombis" #. ~ Description for {'str': 'veteran survivor zombie'} #: lang/json/MONSTER_from_json.py @@ -82152,12 +82816,15 @@ msgid "" "Unfortunately they didn't make it, despite the custom-made, heavy armor " "pieces they wear and the gear that they are still lugging around." msgstr "" +"Este zombi fue alguna vez un sobreviviente como vos, y era bastante bueno en" +" eso. Lamentablemente no aguantó, a pesar de las armaduras artesanales que " +"tiene puestas y el equipamiento que se ve en los alrededores." #: lang/json/MONSTER_from_json.py msgid "Cyber Mastiff" msgid_plural "Cyber Mastifs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Cibermastín" +msgstr[1] "Cibermastines" #. ~ Description for {'str': 'Cyber Mastiff', 'str_pl': 'Cyber Mastifs'} #: lang/json/MONSTER_from_json.py @@ -82166,12 +82833,15 @@ msgid "" "enhancements. These hounds defend Prep Phyle lands from all comers undead " "and otherwise." msgstr "" +"Es una cruza entre las razas Gran Pirineo y Ovcharka, con algunas mejoras " +"biónicas. Estos perros defienden las tierras de lo que entre, muerto " +"viviente o no." #: lang/json/MONSTER_from_json.py msgid "Cyber Mastiff puppy" msgid_plural "Cyber Mastiff puppies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cachorrito Cibermastín" +msgstr[1] "cachorritos Cibermastín" #. ~ Description for {'str': 'Cyber Mastiff puppy', 'str_pl': 'Cyber Mastiff #. puppies'} @@ -82180,12 +82850,15 @@ msgid "" "An adorable, defenseless Cyber Mastiff puppy. Much safer to tame than an " "adult dog. CBMs are implanted but immature in growth with the puppy." msgstr "" +"Es un cachorrito de Cibermastín, adorable e indefenso. Mucho más fácil de " +"domesticar que uno adulto. Tiene MCB instalados pero aún es un perro " +"inmaduro." #: lang/json/MONSTER_from_json.py msgid "brain blaster" msgid_plural "brain blasters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "explotacerebro" +msgstr[1] "explotacerebros" #. ~ Description for {'str': 'brain blaster'} #: lang/json/MONSTER_from_json.py @@ -82194,6 +82867,9 @@ msgid "" "amalgamation appears to use brains in jars as their operating system. On " "the plus side it looks like it can be headshot." msgstr "" +"El mi-go ha establecido sus defensas aquí. Esta espantosa amalgama tecno-" +"orgánica parece usar cerebros en frascos como su sistema operativo. Por el " +"lado bueno, parece que se puede pegarle un tiro en la cabeza." #. ~ Description for {'str': 'tripod'} #: lang/json/MONSTER_from_json.py @@ -82203,12 +82879,16 @@ msgid "" "PrepNet Phyle have modified it to have a flamethrower for their war against " "the Mycus." msgstr "" +"Es el Rey de Honda Crop. Diseñado originalmente para trabajos de " +"agricultura, tiene un trío de cables retraíbles y donde solía tener un " +"rociador de pesticida, el PrepNet Phyle lo ha modificado para tener un " +"lanzallamas ideal para la guerra contra el Mycus." #: lang/json/MONSTER_from_json.py msgid "Wraitheon Sentinel-lx" msgid_plural "Wraitheon Sentinel-lxs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sentinel-lxs Wraitheon" +msgstr[1] "sentineles-lxs Wraitheon" #. ~ Description for {'str': 'Wraitheon Sentinel-lx'} #: lang/json/MONSTER_from_json.py @@ -82218,12 +82898,15 @@ msgid "" "it's wrist sword extended, it resembles an ancient knight, standing an " "eternal watch." msgstr "" +"Con sus placas exteriores negras y doradas, esta variante lujosa del dron " +"Wraitheon alguna vez fue el guardaespaldas de algún millonario. Así con su " +"espada extendida parece un antiguo caballero, parado en guardia eterna." #: lang/json/MONSTER_from_json.py msgid "bloodhound drone" msgid_plural "bloodhound drones" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dron sabueso" +msgstr[1] "drones sabuesos" #. ~ Description for {'str': 'bloodhound drone'} #: lang/json/MONSTER_from_json.py @@ -82232,12 +82915,72 @@ msgid "" "automated seeker drone was originally designed harry and harrass fugitives " "while maintaining visual contact for other pursuers." msgstr "" +"Es un pequeño robot cuadrirrotor equipado con un reflector de alta potencia." +" Este dron automático de búsqueda fue diseñado originalmente para hostigar y" +" acechar fugitivos mientras mantenía contacto visual para los otros " +"perseguidores." + +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder" +msgid_plural "Schwarz Walders" +msgstr[0] "Schwarz Walder" +msgstr[1] "Schwarz Walders" + +#. ~ Description for {'str': 'Schwarz Walder'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Schwarz Walders were originally developed by a German company as forest " +"rangers for the expanded Black Forest Conservation Area. Shortly afterwards" +" it was determined that they also made excellent long range reconnaissance " +"units that could operate independently indefinitely. Pre-Cataclysm they " +"lived on every continent in a variety of jobs." +msgstr "" +"Los Schwarz Walders fueron desarrollados originalmente por una empresa " +"alemana como guardabosques para la extensa Área de Conservación del Bosque " +"Negro. Poco después se determinó que también serían excelentes unidades de " +"reconocimiento a gran distancia, que podían operar de manera independiente " +"indefinidamente. Antes del Cataclismo habitaban todos los continentes y " +"hacían varios trabajos." + +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder cub" +msgid_plural "Schwarz Walder cubs" +msgstr[0] "cachorro Schwarz Walder" +msgstr[1] "cachorros Schwarz Walder" + +#. ~ Description for {'str': 'Schwarz Walder cub'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A young Schwarz Walder. If one is out here, a very protective parent is " +"likely nearby." +msgstr "" +"Es un Schwarz Walder joven. Si anda por ahí es porque un padre muy protector" +" también anda cerca." + +#: lang/json/MONSTER_from_json.py +msgid "infeme" +msgid_plural "infemes" +msgstr[0] "infeme" +msgstr[1] "infemes" + +#. ~ Description for {'str': 'infeme'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The Infeme are uplifted from apes and other near human ancestors. The Zulu " +"word for monkey became the catch-all term for many species of uplifts " +"whether majority chimp, gorilla or baboon. They've probably formed colonies" +" hidden from the Cataclysm." +msgstr "" +"Los infemes versiones elevadas de simios u otros ancestros casi humanos. La " +"palabra zulu para mono se convirtió en el término para denominar a muchas " +"especies ya sean chimpancés, gorilas o babuinos. Probablemente hayan formado" +" colonias ocultas al Catalismo." #: lang/json/MONSTER_from_json.py msgid "headless zombie" msgid_plural "headless zombies" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi sin cabeza" +msgstr[1] "zombis sin cabeza" #. ~ Description for {'str': 'headless zombie'} #: lang/json/MONSTER_from_json.py @@ -82246,12 +82989,15 @@ msgid "" " shambles aimlessly around without functioning senses. Black ooze pulses " "out of its neck, and it stumbles around listlessly." msgstr "" +"A pesar de la ausencia de cabeza, este zombi parece no haber recibido el " +"memo, y se pasea sin rumbo sin ningún sentido funcionando. Un líquido espeso" +" negro sale del cuello y se va tropezando sin fuerzas." #: lang/json/MONSTER_from_json.py msgid "headless horror" msgid_plural "headless horrors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "horror sin cabeza" +msgstr[1] "horrores sin cabeza" #. ~ Description for {'str': 'headless horror'} #: lang/json/MONSTER_from_json.py @@ -82261,12 +83007,64 @@ msgid "" "neck, violently twitching at nearby sounds, and it moves at terrifying speed" " with its grotesquely-swollen hands." msgstr "" +"Este zombi sin cabeza se ha hinchado a proporciones temerarias, alcanzando " +"casi tres metros de altura. Antenas de casi dos metros con un líquido espeso" +" negro salen de su cuello, retorciéndose violentamente a los sonidos " +"cercanos, y se mueve a una velocidad tremenda con sus manos grotescamente " +"hinchadas." + +#: lang/json/MONSTER_from_json.py +msgid "Haunting Forest Walker" +msgid_plural "Haunting Forest Walkers" +msgstr[0] "Guardabosques Embrujado" +msgstr[1] "Guardabosques Embrujados" + +#. ~ Description for {'str': 'Haunting Forest Walker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This towering zombie is covered in wounds and shedding fur. Once it may " +"have prevented forest fires in national parks, now it kills anything it " +"catches." +msgstr "" +"Este enorme zombi está cubierto de heridas y piel vieja. Alguna vez pudo " +"haber prevenido incendios forestales en parques nacionales, ahora mata todo " +"lo que encuentra." + +#: lang/json/MONSTER_from_json.py +msgid "rotting grodd" +msgid_plural "rotting grodds" +msgstr[0] "grodd podrido" +msgstr[1] "grodds podridos" + +#. ~ Description for {'str': 'rotting grodd'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Imagine a gorilla. Now imagine it dead and rotting and somehow looking at " +"you with more hate than you had previously imagined possible." +msgstr "" +"Imaginate un gorila. Ahora imaginalo muerto y pudriéndose y mirándote con " +"más odio de lo que hubieras creído posible." + +#: lang/json/MONSTER_from_json.py +msgid "Ghoulodon" +msgid_plural "Ghoulodons" +msgstr[0] "Ghoulodon" +msgstr[1] "Ghoulodons" + +#. ~ Description for {'str': 'Ghoulodon'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An undead Uplifted Elephant of ginormous size. It still wears its assault " +"grade armor." +msgstr "" +"Es un Elefante Elevado muerto viviente de tamaño descomunal. Todavía lleva " +"su armadura de asalto." #: lang/json/MONSTER_from_json.py msgid "Slasher Necromorph" msgid_plural "Slasher Necromorphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Necromorfo Acuchillador" +msgstr[1] "Necromorfos Acuchilladores" #. ~ Description for Slasher Necromorph #: lang/json/MONSTER_from_json.py @@ -82275,12 +83073,15 @@ msgid "" "burst through its shoulders where they are poised above its head as it " "stalks about with terrifying purpose." msgstr "" +"Es un cuerpo humano horrorosamente retorcido. Dos cuchillas enormes salen " +"como apéndices de sus hombros, y se balancean sobre su cabeza mientras " +"camina con algún propósito aterrador." #: lang/json/MONSTER_from_json.py msgid "Weak Slasher Necromorph" msgid_plural "Weak Slasher Necromorphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Necromorfo Acuchillador Débil" +msgstr[1] "Necromorfos Acuchilladores Débiles" #. ~ Description for Weak Slasher Necromorph #: lang/json/MONSTER_from_json.py @@ -82290,12 +83091,16 @@ msgid "" "jawless maw and a gaping wound in its forehead sends chills down your spine." " The awkward steps it takes slows it down greatly." msgstr "" +"Es un cuerpo humano horrorosamente mutilado. Dos escuálidas cuchillas salen " +"de sus manos para poder cazar a su presa. Su inolvidable rostro con fauces " +"sin mandíbula y una herida grande en su frente te hace sentir escalofríos en" +" la espalda. Los pasos raros que hace lo vuelven muy lento." #: lang/json/MONSTER_from_json.py msgid "Waster Necromorph" msgid_plural "Waster Necromorphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Necromorfo Vago" +msgstr[1] "Necromorfos Vagos" #. ~ Description for Waster Necromorph #: lang/json/MONSTER_from_json.py @@ -82304,12 +83109,16 @@ msgid "" "from sunken eye sockets and a gaping mouth. Strange blade like points have " "burst out of its arms making it a formidable force to be reckoned with." msgstr "" +"Este zombi está vestido con equipamiento policial de asalto, y tiene una " +"inquietante luz verde debajo de su casco que sale de sus ojos hundidos y su " +"boca abierta. Extrañas cuchillas como puntos han salido de sus brazos " +"haciéndolo una fuerza letal." #: lang/json/MONSTER_from_json.py msgid "Leaper Necromorph" msgid_plural "Leaper Necromorphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Necromorfo Saltador" +msgstr[1] "Necromorfos Saltadores" #. ~ Description for Leaper Necromorph #: lang/json/MONSTER_from_json.py @@ -82319,12 +83128,17 @@ msgid "" "are can easily mutilate your flesh, the grotesque face roars incessantly. " "The lower body has fused together into one giant tail with a barbed spike." msgstr "" +"Es cuerpo que alguna vez fue humano es casi irreconocible, arrastrándose con" +" su abdomen mientras salta con una inmensa fuerza de brazos. Con unos " +"colmillos largos que pueden fácilmente mutilar tu carne, el rostro grotesco " +"ruge sin cesar. La parte inferior de su cuerpo se ha fusionado en una cola " +"grande con una punta con púas." #: lang/json/MONSTER_from_json.py msgid "Twitcher Necromorph" msgid_plural "Twitcher Necromorphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Necromorfo Sacudidor" +msgstr[1] "Necromorfos Sacudidores" #. ~ Description for Twitcher Necromorph #: lang/json/MONSTER_from_json.py @@ -82334,12 +83148,17 @@ msgid "" "idle, further observation shows that the person before this husk was a " "C.R.I.T S-I G.E.A.R operator." msgstr "" +"Con unas cuchillas finas saliendo de sus manos, este cuerpo avanza " +"espasmódicamente de un lado a otro a una velocidad sorprendente. Se sostiene" +" de manera bastante estable cuando está quieto. Una mejor observación " +"muestra que la persona que este monstruo era antes, era un operador de " +"C.R.I.T S-I G.E.A.R." #: lang/json/MONSTER_from_json.py msgid "Pack Necromorph" msgid_plural "Pack Necromorphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Necromorfo de Manada" +msgstr[1] "Necromorfos de Manada" #. ~ Description for Pack Necromorph #: lang/json/MONSTER_from_json.py @@ -82349,12 +83168,17 @@ msgid "" " A pair of seemingly purposeless appendages sprout from its shoulders " "before ending in its arms. Its small hands end in sharp claws." msgstr "" +"Es un pibe zombi chillón y mutado. La cara es más que nada inexpresiva, con " +"los ojos saltones cerrados y la boca abierta rasgada con solapas de carne " +"colgando del costado. Un par de apéndices que no parecen tener propósito " +"salen de sus hombros antes de terminar en brazos. Sus pequeñas manos son " +"garras filosas." #: lang/json/MONSTER_from_json.py msgid "Puker Necromorph" msgid_plural "Puker Necromorphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Necromorfo Vomitador" +msgstr[1] "Necromorfos Vomitadores" #. ~ Description for Puker Necromorph #: lang/json/MONSTER_from_json.py @@ -82365,12 +83189,17 @@ msgid "" "internal organs to its unhinged jaw where it drips, hissing as it eats " "through material." msgstr "" +"Es un cadáver bastante mutilado cubierto de llagas abiertas. Los brazos y " +"las manos le cuelgan corroídas, revelando bordes dentados que podrían " +"fácilmente penetrar en tu carne. Un lodo amarillo, pegajoso y espumoso fluye" +" desde sus órganos expuestos hacia su mandíbula suelta, de donde gotea, " +"siseando mientras corroe material." #: lang/json/MONSTER_from_json.py msgid "Animate Arm" msgid_plural "Animate Arms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Brazo Animado" +msgstr[1] "Brazos Animados" #. ~ Description for Animate Arm #: lang/json/MONSTER_from_json.py @@ -82378,12 +83207,14 @@ msgid "" "A dismembered arm that slowly crawls forward. Occasionally, tentacles " "sprout out from the wound and lash about wildly." msgstr "" +"Es un brazo desmembrado que va lentamente arrastrándose. Ocasionalmente, " +"unos tentáculos salen de la herida y pegan un latigazo salvaje." #: lang/json/MONSTER_from_json.py msgid "Dullahan" msgid_plural "Dullahans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Dullahan" +msgstr[1] "Dullahans" #. ~ Description for Dullahan #: lang/json/MONSTER_from_json.py @@ -82393,6 +83224,10 @@ msgid "" "steadiness. A long tentacle has sprouted out of its right arm which " "occasionally flails about wildly." msgstr "" +"Es un humanoide sin cabeza que se va meciendo lentamente. Una armadura " +"ornamentada y funcional adorna este cadáver espantoso, que se lleva a sí " +"mismo con una terrible estabilidad infalible. Un largo tentáculo ha salido " +"de su brazo derecho que ocasionalmente usa como un látigo." #. ~ Description for {'str': 'shocker zombie'} #: lang/json/MONSTER_from_json.py @@ -82400,12 +83235,14 @@ msgid "" "A human body with pale blue flesh, crackling with electrical energy. It " "seems eager to tell you something." msgstr "" +"Es un cuerpo humano con la piel de color azul pálido, y chisporroteando de " +"energía eléctrica. Parece con ganas de decirte algo." #: lang/json/MONSTER_from_json.py msgid "mr skeltal" msgid_plural "mr skeltals" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sr skeltal" +msgstr[1] "sres skeltal" #. ~ Description for {'str': 'mr skeltal'} #: lang/json/MONSTER_from_json.py @@ -82414,12 +83251,15 @@ msgid "" "the bone. In its bony hand, it holds a pristine trumpet, unmarred by the " "end of the world." msgstr "" +"Desprovisto completamente de carne y órganos, la presencia de este esqueleto" +" ambulante te cala hasta los huesos. En su mano huesuda, tiene una trompeta " +"prístina, intacta del fin del mundo." #: lang/json/MONSTER_from_json.py msgid "minion of skeltal" msgid_plural "minions of skeltal" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "secuaz de skeltal" +msgstr[1] "secuaces de skeltal" #. ~ Description for {'str': 'minion of skeltal', 'str_pl': 'minions of #. skeltal'} @@ -82430,8 +83270,8 @@ msgstr "Es un esqueleto menor, criado por el triste sonido de una trompeta." #: lang/json/MONSTER_from_json.py msgid "Smoky bear" msgid_plural "Smoky bears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "oso Smoky" +msgstr[1] "osos Smoky" #. ~ Description for {'str': 'Smoky bear'} #: lang/json/MONSTER_from_json.py @@ -82439,12 +83279,14 @@ msgid "" "A smoking husk is all that remains of this once proud bear. Its black eyes " "gaze at you with malice… and hunger." msgstr "" +"Una cáscara humeante es todo lo que queda de lo que debe haber sido un " +"presuntuoso oso. Sus ojos negros te contemplan con malicia... y con hambre." #: lang/json/MONSTER_from_json.py msgid "emissary" msgid_plural "emissaries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "emisario" +msgstr[1] "emisarios" #. ~ Description for {'str': 'emissary', 'str_pl': 'emissaries'} #: lang/json/MONSTER_from_json.py @@ -82457,16 +83299,23 @@ msgid "" "studying its surroundings and probing things in the environment with a " "variety of internal tools. A sickeningly sweet gas hangs around it." msgstr "" +"Es una enorme criatura metálica con un diseño asombrosamente hermoso y " +"grabados brillantes, que se para sobre tres piernas segmentadas. Los " +"tentáculos de su chasis central tienen en la punta unos dispositivos " +"extraños y caen mientras da pasos largos lentamente por el paisaje. Este " +"parece menos agresivo que aquellos vistos en la línea frontal de la Llegada," +" estudian sus alrededores exploran las cosas del ambiente con una variedad " +"de herramientas internas. Un gas dulce y enfermizo lo rodea." #: lang/json/MONSTER_from_json.py msgid "The emissary emits a stream of sedative gas!" -msgstr "" +msgstr "¡El emisario emite una oleada de gas sedativo!" #: lang/json/MONSTER_from_json.py msgid "emissary of pestilence" msgid_plural "emissaries of pestilence" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "emisario pestilente" +msgstr[1] "emisarios pestilentes" #. ~ Description for {'str': 'emissary of pestilence', 'str_pl': 'emissaries #. of pestilence'} @@ -82480,16 +83329,24 @@ msgid "" " hums hauntingly as it moves and booming footsteps often heralded trouble to" " come during the Arrival, now is no different." msgstr "" +"Es una enorme criatura metálica, de pisos de alto, que se para sobre tres " +"piernas conectadas a un chasis central. Sería asombrosamente hermosa con sus" +" incrustaciones doradas y su diseño celestial, si no fuera por el gas que " +"libera desde sus armas montadas en tentáculos que va depredando el paisaje y" +" hace que te hace cosquillear la piel de solo ver su gloria tóxica, " +"seguramente radioactiva. Zumba conmovedoramente mientras se mueve, y unos " +"pasos estridentes son heraldos del problema que venía con la Llegada, y " +"ahora es igual." #: lang/json/MONSTER_from_json.py msgid "Putrid gas rolls across the landscape!" -msgstr "" +msgstr "¡Un gas pútrido se esparce por el paisaje!" #: lang/json/MONSTER_from_json.py msgid "emissary of flame" msgid_plural "emissaries of flame" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "emisario de llama" +msgstr[1] "emisarios de llama" #. ~ Description for {'str': 'emissary of flame', 'str_pl': 'emissaries of #. flame'} @@ -82503,16 +83360,23 @@ msgid "" "plasma and flame. Its unique chirping and booming footsteps often heralded " "trouble to come during the Arrival, and now is no different." msgstr "" +"Como todos los emisarios, esta impresionante criatura metálica se para sobre" +" tres piernas, con muchos más tentáculos segmentados saliendo del chasis " +"central y un halo brillante sobre su cabeza. Pero este parece más " +"terrorífico, se sabe que utiliza un cañón de energía de gran intensidad, " +"capaz de destrozar lo que toca con una explosión de plasma y llamas. Sus " +"distintivos pasos estridentes sirven de heraldo del problema que venía con " +"la Llegada, y ahora es igual." #: lang/json/MONSTER_from_json.py msgid "Sound returns as the emissary's cannon roars to life!!" -msgstr "" +msgstr "¡¡El sonido vuelve mientras el cañón del emisario ruge!!" #: lang/json/MONSTER_from_json.py msgid "order surveillance drone" msgid_plural "order surveillance drones" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dron de la orden de vigilancia" +msgstr[1] "drones de la orden de vigilancia" #. ~ Description for {'str': 'order surveillance drone'} #: lang/json/MONSTER_from_json.py @@ -82522,12 +83386,16 @@ msgid "" "former world, onboard cameras and spotlights impartial witness to the chaos " "around it. Who knows might be watching on the other side…" msgstr "" +"Es un pequeño robot, brillante, con placas blancas y una insignia dorada de " +"la Orden estampada. Es capaz de vuelos limitados, sobrevuela las ruinas del " +"antiguo mundo, con cámaras y reflectores que son testigos imparciales del " +"caos que lo rodea. Quién sabe quién estará mirando del otro lado..." #: lang/json/MONSTER_from_json.py msgid "order seeker drone" msgid_plural "order seeker drones" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dron de la orden buscador" +msgstr[1] "drones de la orden buscador" #. ~ Description for {'str': 'order seeker drone'} #: lang/json/MONSTER_from_json.py @@ -82539,17 +83407,23 @@ msgid "" " with surprising dexterity and procure samples. It seems to watch you " "closely…" msgstr "" +"Es un pequeño robot, brillante, con placas blancas y una insignia dorada de " +"la Orden estampada. Es capaz de vuelos limitados, sobrevuela las ruinas del " +"antiguo mundo, utilizando un grupo de herramientas retraíbles bastante " +"filosas, un flash de cámara y 'brazos' integrados para manipular el mundo a " +"su alrededor con una destreza sorprendente, y para procurarse muestras. " +"Parece observarte con detenimiento..." #. ~ Attack message of monster "{'str': 'order seeker drone'}"'s spell "None" #: lang/json/MONSTER_from_json.py msgid "%1$s blinds %3$s with its integrated camera!" -msgstr "" +msgstr "¡%1$s ciega a %3$s con su cámara integrada!" #: lang/json/MONSTER_from_json.py msgid "sewer lurker" msgid_plural "sewer lurkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "acechadores de cloaca" +msgstr[1] "acechador de cloaca" #. ~ Description for {'str': 'sewer lurker'} #: lang/json/MONSTER_from_json.py @@ -82559,12 +83433,17 @@ msgid "" "an ambush predator, prefering to lurk just beneath the cloudy water before " "something comes close enough to snag with its long tentacles." msgstr "" +"Es una criatura que chorrea, una masa que se retuerce con tentáculos unidos " +"a fauces rechinantes. Esta cosa parece haber encontrado su hogar en la " +"basura y las cloacas. Es un depredador por emboscada, prefiere acechar bajo " +"el agua neblinosa esperando que algo se acerque lo suficiente para atraparlo" +" con sus largos tentáculos." #: lang/json/MONSTER_from_json.py msgid "lurker" msgid_plural "lurkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "acechador" +msgstr[1] "acechadores" #. ~ Description for {'str': 'lurker'} #: lang/json/MONSTER_from_json.py @@ -82574,12 +83453,17 @@ msgid "" " in its mouth. It prefers to lurk just below the surface, drifting and " "still like an unassuming piece of floatsam until something gets too close." msgstr "" +"Es un cuerpo largo y serpenteante, oscuro y turbio como el agua en que " +"habita. Unos zarcillos van dejando un rastro detrás, vestigios de unos " +"innumerables dientes rechinando en su boca. Prefiere acechar debajo de la " +"superficie, flotando y quieto como un pedazo de algo, esperando que algo se " +"acerque." #: lang/json/MONSTER_from_json.py msgid "moss lizard" msgid_plural "moss lizards" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lagarto de moho" +msgstr[1] "lagartos de moho" #. ~ Description for moss lizard #: lang/json/MONSTER_from_json.py @@ -82589,12 +83473,16 @@ msgid "" "foraging whatever flora it can reach with sharp little teeth. It doesn't " "seem to mind you too much." msgstr "" +"Es un reptil del tamaño de una vaca, cubierto de lo que parece ser un gruesa" +" capa de moho y piedras. Camina con dificultad por el paisaje con sus " +"piernas robustas, comiendo la flora que pueda alcanzar con sus pequeños " +"dientes filosos. No parece prestarte mucha atención." #: lang/json/MONSTER_from_json.py msgid "pack lizard" msgid_plural "pack lizards" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lagarto de manada" +msgstr[1] "lagartos de manada" #. ~ Description for pack lizard #: lang/json/MONSTER_from_json.py @@ -82604,12 +83492,17 @@ msgid "" "protrustions grow from the top of its head down to the base of its tail, " "glowing faintly when in the presence of other members of its pack." msgstr "" +"Es un reptil delgado más o menos del tamaño de un perro grande, con una " +"melena de lo que parecen unas 'plumas' azules y naranjas alrededor de su " +"cabeza. Unas protuberancias como hojas crecen desde la parte superior de su " +"cabeza hasta la base de su cola, brillando levemente ante la presencia de " +"otros miembros de su manada." #: lang/json/MONSTER_from_json.py msgid "wisp" msgid_plural "wisp" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "wisp" +msgstr[1] "wisp" #. ~ Description for {'str_sp': 'wisp'} #: lang/json/MONSTER_from_json.py @@ -82621,42 +83514,134 @@ msgid "" "sugary substances in small, communal groups. It regards you with curiosity," " occasionally flashing its markings at you as if trying to communicate." msgstr "" +"Es una criatura pequeña, del tamaño de un puño, que parece una babosa que " +"flota con marcas bioluminiscentes capaz de volar limitadamente gracias a " +"unas protuberancia membranosas similares a alas, y la segregación de una " +"débil neblina blanca. Generalmente, se la ve volando cerca de las flores, " +"frutas y otras sustancias azucaradas en grupos pequeños. Te mira con " +"curiosidad, ocasionalmente haciendo brillar sus marcas como si tratara de " +"comunicarse." #: lang/json/MONSTER_from_json.py msgid "bileworm" msgid_plural "bileworms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gusanobilis" +msgstr[1] "gusanobilis" + +#. ~ Description for {'str': 'bileworm'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A huge creature that smells like death, befitting its preferred diet of " +"carrion and other rotting organic material, though it may attack live prey " +"if it is hungry. Its favorite tactic is dissolving its food with its highly" +" acidic vomit, and then consuming the resulting liquified remains. It is " +"capable of both burrowing and limited land travel, with the help of a " +"multitude of stocky appendages that surround its mouth." +msgstr "" +"Es una enorme criatura que tiene olor a muerte, adecuado a su dieta de " +"carroña y otros materiales orgánicos en descomposición, aunque puede atacar " +"a presas vivas si tiene hambre. Su táctica favorita es disolver su comida " +"con un vómito muy ácido y después consumir los restos líquidos resultantes. " +"Es capaz de cavar y de andar por la superficies por períodos cortos, con la " +"ayuda de una multitud de apéndices fornidos que rodean su boca." + +#: lang/json/MONSTER_from_json.py +msgid "stray" +msgid_plural "strays" +msgstr[0] "desviado" +msgstr[1] "desviados" + +#. ~ Description for {'str': 'stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." +msgstr "" +"Es la odiosa presencia de lo que era un humano, capaz de violentos arrebatos" +" de ira. Grandes pedazos de cristales cian-púrpura le crecen de la carne " +"magullada, lentamente ganando espacio por su cuerpo." + +#: lang/json/MONSTER_from_json.py +msgid "stray cop" +msgid_plural "stray cops" +msgstr[0] "desviado policía" +msgstr[1] "desviados policías" + +#. ~ Description for stray cop +#: lang/json/MONSTER_from_json.py +msgid "" +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." +msgstr "" +"Fue parte de las fuerzas de la ley, sin duda desplegado para ayudar a los " +"civiles a evacuar durante la Llegada. Lamentablemente, a pesar de sus " +"esfuerzos, muchos fueron infectados. Todavía lleva su armadura en todo el " +"cuerpo, parcialmente tomada por cristales." + +#: lang/json/MONSTER_from_json.py +msgid "stray soldier" +msgid_plural "stray soldiers" +msgstr[0] "desviado soldado" +msgstr[1] "desviados soldados" + +#. ~ Description for {'str': 'stray soldier'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former soldier, no doubt deployed to assist with evacuations and drive off" +" the Order, dressed from head to toe in partially crystalized combat armor." +" Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." +msgstr "" +"Fue parte del ejército, sin duda desplegado para asistir en las evacuaciones" +" y para enfrentarse a la Orden, vestido de pies a cabeza con armadura de " +"combate parcialmente cubierta de cristales. A pesar de su entrenamiento, no " +"estaban preparados para lo que tuvieron que enfrentar, de todas maneras, " +"parecen recordar lo suficiente combatir con vos." + +#: lang/json/MONSTER_from_json.py +msgid "stray firefighter" +msgid_plural "stray firefighters" +msgstr[0] "desviado bombero" +msgstr[1] "desviados bomberos" -#. ~ Description for {'str': 'bileworm'} +#. ~ Description for {'str': 'stray firefighter'} #: lang/json/MONSTER_from_json.py msgid "" -"A huge creature that smells like death, befitting its preferred diet of " -"carrion and other rotting organic material, though it may attack live prey " -"if it is hungry. Its favorite tactic is dissolving its food with its highly" -" acidic vomit, and then consuming the resulting liquified remains. It is " -"capable of both burrowing and limited land travel, with the help of a " -"multitude of stocky appendages that surround its mouth." +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." msgstr "" +"Era humano y ahora está cubierto con su uniforme destrozado, con una " +"respiración ruidosa y húmeda que borbotea detrás de la máscara de gas está " +"incrustada en su cara. Tambaleándose por la comunidad a la que antes " +"ayudaba, es poco más que otro huésped de la infestación de cristales." #: lang/json/MONSTER_from_json.py -msgid "stray" -msgid_plural "strays" -msgstr[0] "" -msgstr[1] "" +msgid "hungry stray" +msgid_plural "hungry strays" +msgstr[0] "desviado hambriento" +msgstr[1] "desviados hambrientos" -#. ~ Description for {'str': 'stray'} +#. ~ Description for {'str': 'hungry stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." +"An obese former human, body studded with irregular crystal growths deforming" +" its body. It howls in mockery of hunger as it wanders, seeking new meals " +"to add to its bulk." msgstr "" +"Era un humano obeso, ahora con el cuerpo salpicado de cristales crecidos de " +"manera irregular que lo deforman. Aúlla como si estuviera hambriento " +"mientras va deambulando, buscando comida para agregar a su peso." #: lang/json/MONSTER_from_json.py msgid "stray rockfeeder" msgid_plural "stray rockfeeders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desviado comepiedras" +msgstr[1] "desviados comepiedras" #. ~ Description for {'str': 'stray rockfeeder'} #: lang/json/MONSTER_from_json.py @@ -82666,164 +83651,341 @@ msgid "" "crystalline teeth. It lets out bloodcurdling howls of pain and constantly " "drips a foul smelling slurry of rocky sludge and bile." msgstr "" +"Es un cuerpo hinchado y malformado, perforado desde su interior por el " +"crecimiento de piedras. La mitad inferior de su cara es solamente una " +"mandíbula hinchada llena de dientes cristalinos y rechinantes. Suelta " +"aullidos espeluznantes de dolor y está constantemente chorreando una pulpa " +"de lodo y bilis rocosos de olor nauseabundo." #: lang/json/MONSTER_from_json.py msgid "stray crystaltender" msgid_plural "stray crystaltenders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desviado cristalblando" +msgstr[1] "desviados cristalblando" #. ~ Description for {'str': 'stray crystaltender'} #: lang/json/MONSTER_from_json.py msgid "" "Little more than a moving mound of crystal and meat that occasionally spits " "up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures" -" skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." +msgstr "" +"Es poco más que una montaña móvil de cristal y carne, que ocasionalmente " +"escupe una ola de un brillante engrudo pedregoso desde sus varias rajaduras " +"y fisuras. Esta criatura similar a un cangrejo camina con dificultad, " +"llevando un peso grande. Desde detrás de las superficies turbias, casi que " +"podés ver pequeñas criaturas moviéndose y escabulléndose por los partes " +"interiores. Parece quedarse cerca de otras criaturas con cristales, " +"depositando el pegote que segrega esas otras criaturas como si las cuidara. " +"Cuando se siente amenazado es capaz de emitir unos gritos desgarradores, " +"atrayando a sus amigos." + +#: lang/json/MONSTER_from_json.py +msgid "crackling stray" +msgid_plural "crackling strays" +msgstr[0] "desviado chisporroteante" +msgstr[1] "desviados chisporroteantes" + +#. ~ Description for {'str': 'crackling stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A hunched human form, back bristling with a hedge of buzzing blue crystals." +" Its veins visibly glow with some sort of unearthly substance." +msgstr "" +"Es una forma humana encorvada, lleno de cristales azules. Sus venas brillan " +"visiblemente por alguna clase de sustancia sobrenatural." + +#: lang/json/MONSTER_from_json.py +msgid "arcing stray" +msgid_plural "arcing strays" +msgstr[0] "desviado eléctrico" +msgstr[1] "desviados eléctricos" + +#. ~ Description for {'str': 'arcing stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than" +" capable of simply ramming its prey to deliver dangerous electric shocks." +msgstr "" +"Es una deforme criatura con muchas patas, este cuerpo que antes era " +"terrestre, ahora es una mera plataforma para unas enormes torres de " +"cristales que sobresalen de su torso, de donde antes estaba la cabeza. Sus " +"brazos cuelgan inútiles a los costados pero es capaz de embestir a su presa " +"y causar choques eléctricos." + +#: lang/json/MONSTER_from_json.py +msgid "stray sprinter" +msgid_plural "stray sprinters" +msgstr[0] "desviado velocista" +msgstr[1] "desviados velocistas" + +#. ~ Description for {'str': 'stray sprinter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." msgstr "" +"Es una criatura en muy buen estado físico, antes era un humano de figura " +"atlética, y parece haber retenido algo de su ingenio." #: lang/json/MONSTER_from_json.py msgid "stray prowler" msgid_plural "stray prowlers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desviado merodeador" +msgstr[1] "desviados merodeadores" #. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with" -" tusks of polished stone and fingers tipped with crystal-fused claws." +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." msgstr "" +"Este mutante severamente herido ahora se mueve como alguna clase de animal, " +"a veces en dos patas y a veces en cuatro. Su boca es amenazante con " +"colmillos de piedra pulida y dedos que resplandecen con garras fusionadas " +"con cristal." #: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" -msgstr[0] "" -msgstr[1] "" +msgid "stray guardian" +msgid_plural "stray guardians" +msgstr[0] "desviado guardián" +msgstr[1] "desviados guardianes" -#. ~ Description for {'str': 'stray predator'} +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of" -" time before the very shell that protects it weighs it down to the ground." +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated" +" crystal limbs sharpened to dangerous points. It strides about the streets," +" spearing intruders to its domain like some sort of horrid spider from " +"beyond the stars." msgstr "" +"Músculos ágiles y cristales palpitantes fusionados en una masa que debe " +"estar hecha de varios cuerpos, propulsada varios miembros muy largos de " +"cristal, con peligrosas puntas filosas. Va dando zancadas por las calles, " +"atravesando a los intrusos que ingresan a su territorio como si fuera un " +"horrorosa araña de otro planeta." #: lang/json/MONSTER_from_json.py msgid "stray bruiser" msgid_plural "stray bruisers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desviado matón" +msgstr[1] "desviados matones" #. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." msgstr "" +"Lo que era un humano atlético, tonificado y amenazante ahora es un monstruo " +"que conserva su estado físico y posee una armadura gruesa de cristal que " +"palpita como si estuviera viva." #: lang/json/MONSTER_from_json.py -msgid "stray titan" -msgid_plural "stray titans" -msgstr[0] "" -msgstr[1] "" +msgid "stray golem" +msgid_plural "stray golems" +msgstr[0] "desviado golem" +msgstr[1] "desviados golems" -#. ~ Description for {'str': 'stray titan'} +#. ~ Description for {'str': 'stray golem'} #: lang/json/MONSTER_from_json.py msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its" -" own weight." +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." msgstr "" +"Es un humano que ha crecido considerablemente en estatura luego de haber " +"acumulado biomasa, ahora de por lo menos tres metros y cubierto de placas " +"rocosas que lo hacen parecer más mineral que humano." #: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" -msgstr[0] "" -msgstr[1] "" +msgid "stray titan" +msgid_plural "stray titans" +msgstr[0] "desviado titán" +msgstr[1] "desviados titanes" -#. ~ Description for {'str': 'stray husk'} +#. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to" -" alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" +"Esta enorme masa de carne fusionada con cristales tiene forma humanoide, " +"pero está mucho más allá de ser humano con su gigantesco tamaño. Destroza " +"todo lo que se pone en su camino con sus 'manos' como garrotes que son más " +"grandes que vos, y fácilmente voltean todo lo que tocan." #: lang/json/MONSTER_from_json.py msgid "stray waif" msgid_plural "stray waifs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desviado abandonado" +msgstr[1] "desviados abandonados" #. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'stray tinder'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." msgstr "" +"Es un mutante pequeño y veloz, probablemente haya sido un niño humano, ahora" +" desfigurado con pedazos de cristal. Sus rasgos todavía son lo " +"suficientemente reconocibles como para hacerte revolver las tripas al pensar" +" en matarlo." #: lang/json/MONSTER_from_json.py msgid "stray creep" msgid_plural "stray creeps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desviado asqueroso" +msgstr[1] "desviados asquerosos" #. ~ Description for {'str': 'stray creep'} #: lang/json/MONSTER_from_json.py msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." msgstr "" +"Es una criatura terrorífica y peluda que va gateando en sus cuatro patas, " +"algo parecido a una mascota pero cubierto de pedazos de cristal crecidos que" +" sobresalen como púas." #: lang/json/MONSTER_from_json.py msgid "stray wretch" msgid_plural "stray wretches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desviado desdichado" +msgstr[1] "desviados desdichados" #. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet" -" at some point, but now it leaps and skitters around like something out of a" -" nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion" -" across its body." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." msgstr "" +"Esta criatura difusa con miembros dentados fusionados con cristales y pelo, " +"podría haber sido desde una mascota hasta un humano, en algún momento, pero " +"ahora va saltando y se escabulle como algo salido de una pesadilla." + +#: lang/json/MONSTER_from_json.py +msgid "stray stalker" +msgid_plural "stray stalkers" +msgstr[0] "desviado acechador" +msgstr[1] "desviados acechadores" + +#. ~ Description for {'str': 'stray stalker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to" +" its 'family'." +msgstr "" +"Es una criatura del tamaño de un lobo hecho de pedazos de cristales, y " +"zarcillos pequeños de carne que caen como cilios. Parece muy feliz de " +"arrancarle la vida a cualquier desafortunada cosa que se cruce en su camino," +" para llevarse la presa hacia su 'familia'." + +#: lang/json/MONSTER_from_json.py +msgid "flailing wretch" +msgid_plural "flailing wretchs" +msgstr[0] "miserable agitante" +msgstr[1] "miserables agitantes" + +#. ~ Description for {'str': 'flailing wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." +msgstr "" +"Es una masa del tamaño de una persona que se retuerce de dolor, con " +"zarcillos con púas que ya casi apenas parecen pertenecer a algo animal " +"terrestre, originados de una masa apenas visible de un cristal central. Va " +"reptando por el suelo, arrancando la materia orgánica para llevársela y " +"alimentar a sus compañeros más pequeños para que puedan crecer." + +#: lang/json/MONSTER_from_json.py +msgid "crackling wretch" +msgid_plural "crackling wretchs" +msgstr[0] "miserable chisporroteante" +msgstr[1] "miserables chisporroteantes" + +#. ~ Description for {'str': 'crackling wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." +msgstr "" +"Es una masa de zarcillos y pelo quemado que se sacuden mientras va por el " +"suelo como un insecto, con la espalda corvada y estridentes arcos eléctricos" +" desde cristales como lanzas." + +#: lang/json/MONSTER_from_json.py +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" +msgstr[0] "desviado desdichado madre" +msgstr[1] "desviados desdichados madre" + +#. ~ Description for {'str': 'stray wretchmother'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." +msgstr "" +"Es una gran criatura llena de cristales, capaz de pegar saltos enormes como " +"si fuera una clase de lobo alienígena. En su capa superior hay cristales " +"crecidos, algunos zarcillos carnosos cuelgan y pueden atrapar lo que esté a " +"su alcance y llevarlos hacia sus fauces, en la parte inferior del cuerpo. " +"Algo más, también extraño, se retuerce debajo de la superficie del cuerpo " +"cristalino." #: lang/json/MONSTER_from_json.py msgid "germinating crystal mass" msgid_plural "germinating crystal masses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "masa germinante de cristal" +msgstr[1] "masas germinantes de cristal" #. ~ Description for {'str': 'germinating crystal mass', 'str_pl': #. 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little" +" bit of organic matter it can find and drawing it to its base." +msgstr "" +"Es un pequeño bulbo de cristal enraizado a la tierra a través de tierra y " +"concreto por igual, con zarcillos parecidos a fideos retorciéndose por el " +"suelo, agarrando la poca materia orgánica que puedan encontrar y llevándola " +"hacia su base." + +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "masa brotante de cristal" +msgstr[1] "masas brotantes de cristal" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting +#. crystal masses'} +#: lang/json/MONSTER_from_json.py +msgid "" "A human-sized mound of shimmering blue-purple crystals growing on the base " "of what looks like a mound of foul smelling garbage and organic leftovers. " "Long, thin tendrils appear to grow out of the mound, and are subtly rooting " @@ -82832,12 +83994,19 @@ msgid "" "looks like something wet and meaty is squirming just inside the inner shell " "of crystals…" msgstr "" +"Es un monte del tamaño de un humano, con brillantes cristales azul-púrpuras " +"creciendo en la base de lo que parece ser un monte de basura y desperdicios " +"orgánicos de olor espantoso. Zarcillos largos y delgados parecen crecer del " +"monte y van enraizándose lentamente en el suelo, a través de tierra y " +"concreto por igual. Chisporrotea levemente con energía eléctrica. Si mirás " +"de cerca, pareciera que algo húmedo y carnoso está retorciéndose dentro de " +"los cristales..." #: lang/json/MONSTER_from_json.py msgid "resonant crystal mass" msgid_plural "resonant crystal masses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "masa resonante de cristal" +msgstr[1] "masas resonantes de cristal" #. ~ Description for {'str': 'resonant crystal mass', 'str_pl': 'resonant #. crystal masses'} @@ -82849,12 +84018,18 @@ msgid "" " culminate into an almost musical sound. While pleasant at a distance, this" " can devolve to a deafening high pitched whine when it feels threatened." msgstr "" +"Es un grupo de líneas delgadas de cristal creciendo caprichosamente de un " +"monte de roca y materia orgánica fertilizada, unida por gruesos cabos de un " +"extraño material alienígena. La energía natural zumbante que corre por las " +"puntas parece culminar en un sonido casi musical. Aunque placentero a la " +"distancia, esto puede convertirse en un gemido ensordecedor de alta " +"frecuencia cuando se siente amenzado." #: lang/json/MONSTER_from_json.py msgid "flailing crystal mass" msgid_plural "flailing crystal masses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "masa agitante de cristal" +msgstr[1] "masas agitantes de cristal" #. ~ Description for {'str': 'flailing crystal mass', 'str_pl': 'flailing #. crystal masses'} @@ -82865,12 +84040,16 @@ msgid "" " it like feelers. It frequently grabs nearby objects and drags them into " "the pile beneath it, as if hoarding." msgstr "" +"Es un cristal solo y alto, que crece de una pila grande de escombros y de la" +" que han brotado muchos zarcillos delgados similares a látigos que van " +"moviéndose constantemente como sensores. Cada tanta, agarra objetos cercanos" +" y los lleva hacia la pila debajo, como si los estuviera juntando." #: lang/json/MONSTER_from_json.py msgid "energized crystal mass" msgid_plural "energized crystal masses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "masa energizada de cristal" +msgstr[1] "masas energizadas de cristal" #. ~ Description for {'str': 'energized crystal mass', 'str_pl': 'energized #. crystal masses'} @@ -82879,25 +84058,30 @@ msgid "" "A crooked, fiercely glowing blue-purple crystal that visibly discharges " "electricity into the surrounding environment without any particular intent." msgstr "" +"Es una masa de torcidos cristales azules y púrpuras que brillan ferozmente. " +"Se puede ver que descarga electricidad hacia el ambiente con un propósito " +"particular." #: lang/json/MONSTER_from_json.py msgid "crystal mass wall" msgid_plural "crystal mass walls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pared de masa de cristal" +msgstr[1] "paredes de masa de cristal" #. ~ Description for {'str': 'crystal mass wall'} #: lang/json/MONSTER_from_json.py msgid "" "A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." +"residual electric energy." msgstr "" +"Es una enorme pared de cristales gruesos con forma de bloque que brillan " +"levemente y chisporrotean con energía eléctrica residual" #: lang/json/MONSTER_from_json.py msgid "crystal mass hive" msgid_plural "crystal mass hives" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "colmena de masa de cristal" +msgstr[1] "colmenas de masa de cristal" #. ~ Description for {'str': 'crystal mass hive'} #: lang/json/MONSTER_from_json.py @@ -82910,34 +84094,49 @@ msgid "" "meaty tendrils with razor-like barbs, with something else just as unseemly " "writhing just beneath the murky surface of the glassy 'rocks'." msgstr "" +"Es una enorme masa de pedazos de cristal azules y púrpuras cubiertos de " +"pequeños agujeros del tamaño de un puño, desde los cuales chorrea una " +"desagradable pulpa rocosa que brilla suavemente - tal vez una especie de " +"nutriente para sus crías. Parece palpitar sutilmente, como si fuera más " +"orgánico de lo que su apariencia mineral sugiere. El aire a su alrededor " +"chisporrotea continuamente con una energía evidente y amenaza con un grupo " +"de zarcillos gruesos y carnosos con púas como hojitas de afeitar, y con algo" +" más retorciéndose debajo de su superficie de 'piedras' vidriosas." #: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" -msgstr[0] "" -msgstr[1] "" +msgid "crystal seed" +msgid_plural "crystal seeds" +msgstr[0] "semilla de cristal" +msgstr[1] "semillas de cristal" -#. ~ Description for {'str': 'crystal mite'} +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" "A tiny, multilegged creature that appears to be made of a chunk of crystal." " It skitters around on wire-like legs, eating bits of organic leftovers to " "gain mass in hopes of one day seeding a crystal colony of its own." msgstr "" +"Es un criatura pequeña con muchas patas que parece estar hecha de un pedazo " +"de cristal. Va escabulléndose con sus patas que parecen alambres, comiendo " +"pedacitos de restos orgánicos para ganar masa con la esperanza de que un día" +" pueda convertirse en una colonia de cristales." #: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" -msgstr[0] "" -msgstr[1] "" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" +msgstr[0] "semilla hinchada de cristal" +msgstr[1] "semillas hinchadas de cristal" -#. ~ Description for {'str': 'engorged crystal mite'} +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into" -" a proper crystal mass." +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." msgstr "" +"Es una semilla de cristal hinchada, ahora del tamaño de un gato, lo " +"suficientemente pesada con la biomasa acumulada como para asentarse y " +"empezar a germinar hacia una masa de cristales." #. ~ Description for {'str': 'C-4 hack'} #: lang/json/MONSTER_from_json.py @@ -82945,6 +84144,8 @@ msgid "" "An automated kamikaze drone, this small flying robot appears to have some " "C-4 inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot volador que parece tener " +"C-4 adentro." #. ~ Description for {'str': 'flashbang hack'} #: lang/json/MONSTER_from_json.py @@ -82952,6 +84153,8 @@ msgid "" "An automated kamikaze drone, this small flying robot appears to have a " "flashbang inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot volador que parece tener " +"una granada de destello adentro." #. ~ Description for {'str': 'tear gas hack'} #: lang/json/MONSTER_from_json.py @@ -82959,6 +84162,8 @@ msgid "" "An automated kamikaze drone, this small flying robot appears to have a tear " "gas canister inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot volador que parece tener " +"una granada de gas lacrimógeno adentro." #. ~ Description for {'str': 'grenade hack'} #: lang/json/MONSTER_from_json.py @@ -82966,6 +84171,8 @@ msgid "" "An automated kamikaze drone, this small flying robot appears to have a " "grenade inside." msgstr "" +"Es un dron kamikaze automatizado, un pequeño robot volador que parece tener " +"una granada adentro." #. ~ Description for {'str': 'manhack'} #: lang/json/MONSTER_from_json.py @@ -82973,27 +84180,29 @@ msgid "" "An automated anti-personnel drone, a small flying robot surrounded by " "whirring blades." msgstr "" +"Es un dron automatizado antipersonal, un pequeño robot volador cubierto con " +"cuchillas zumbantes." #: lang/json/MONSTER_from_json.py msgid "Compsognathus" msgid_plural "Compsognathus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Compsognathus" +msgstr[1] "Compsognathus" #. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." msgstr "" -"Un dinosaurio bípedo de un tamaño similar al de un pavo. Sus dientes y " -"garras so pequeños pero filados." +"Es un dinosaurio bípedo de movimientos rápidos, y de tamaño similar al de un" +" pavo. Sus dientes y garras son pequeños pero filosos." #: lang/json/MONSTER_from_json.py msgid "Gallimimus" msgid_plural "Gallimimus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gallimimus" +msgstr[1] "Gallimimus" #. ~ Description for {'str_sp': 'Gallimimus'} #: lang/json/MONSTER_from_json.py @@ -83007,8 +84216,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Pachycephalosaurus" msgid_plural "Pachycephalosaurus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pachycephalosaurus" +msgstr[1] "Pachycephalosaurus" #. ~ Description for {'str_sp': 'Pachycephalosaurus'} #: lang/json/MONSTER_from_json.py @@ -83016,12 +84225,29 @@ msgid "" "A feathered bipedal dinosaur, standing as tall as a human. It looks like a " "reptilian ostrich with a round hard-looking domed head." msgstr "" +"Es un dinosaurio bípedo con plumas, parado es tan alto como un humano. " +"Parece una avestruz reptiliana con la cabeza redondeada." + +#: lang/json/MONSTER_from_json.py +msgid "Camptosaurus" +msgid_plural "Camptosaurus" +msgstr[0] "Camptosaurus" +msgstr[1] "Camptosaurus" + +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "" +"Es un dinosaurio bípedo grande con plumas y piernas fuertes, hombros anchos " +"y un pico puntiagudo. Se mueve lentamente pero con enorme fuerza." #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" msgid_plural "Spinosaurus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Spinosaurus" +msgstr[1] "Spinosaurus" #. ~ Description for {'str_sp': 'Spinosaurus'} #: lang/json/MONSTER_from_json.py @@ -83029,25 +84255,42 @@ msgid "" "A huge dinosaur about the size of a small house, with a ferocious crocodile-" "like head and a sail on its back." msgstr "" -"Un enorme dinosaurio de un tamaño similar a una casa chica, con una cabeza " -"feroz parecida a la de un cocodrilo y tiene cola." +"Es un enorme dinosaurio de un tamaño similar a una casa chica, con una " +"cabeza feroz parecida a la de un cocodrilo y tiene cola." #: lang/json/MONSTER_from_json.py msgid "Tyrannosaurus rex" msgid_plural "Tyrannosaurus rex" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tyrannosaurus rex" +msgstr[1] "Tyrannosaurus rex" #. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." +msgid "" +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." +msgstr "" +"Tiene dientes enormes en una mandíbula gigante, ojos feroces y una " +"estructura fuerte para impulsarse hacia adelante." + +#: lang/json/MONSTER_from_json.py +msgid "Albertosaurus" +msgid_plural "Albertosaurus" +msgstr[0] "Albertosaurus" +msgstr[1] "Albertosaurus" + +#. ~ Description for {'str_sp': 'Albertosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" msgstr "" +"Parece un tyrannosaurus rex pero más chico, pero los brazos son mucho más " +"largos." #: lang/json/MONSTER_from_json.py msgid "Triceratops" msgid_plural "Triceratops" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Triceratops" +msgstr[1] "Triceratops" #. ~ Description for {'str_sp': 'Triceratops'} #: lang/json/MONSTER_from_json.py @@ -83061,21 +84304,22 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Stegosaurus" msgid_plural "Stegosaurus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Stegosaurus" +msgstr[1] "Stegosaurus" #. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." msgstr "" -"Es un gran dinosaurio cuadrúpedo con placas en su espalda, y una cola con " -"púas." +"Es un gran dinosaurio cuadrúpedo y lento con placas en su espalda, y una " +"cola con púas." #: lang/json/MONSTER_from_json.py msgid "Ankylosaurus" msgid_plural "Ankylosaurus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ankylosaurus" +msgstr[1] "Ankylosaurus" #. ~ Description for {'str_sp': 'Ankylosaurus'} #: lang/json/MONSTER_from_json.py @@ -83086,11 +84330,28 @@ msgstr "" "Este dinosaurio parece como un quirquincho prehistórico gigante. Su cola " "termina en lo que parece un garrote enorme de hueso con púas." +#: lang/json/MONSTER_from_json.py +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" +msgstr[0] "Ceratosaurus" +msgstr[1] "Ceratosaurus" + +#. ~ Description for {'str_sp': 'Ceratosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." +msgstr "" +"Es un dinosaurio bípedo depredador grande y rápido, decorado con tres " +"coloridos cuernos en la cabeza y varios huesos de piel brillante con dientes" +" filosos y una cola larga y flexible." + #: lang/json/MONSTER_from_json.py msgid "Allosaurus" msgid_plural "Allosaurus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Allosaurus" +msgstr[1] "Allosaurus" #. ~ Description for {'str_sp': 'Allosaurus'} #: lang/json/MONSTER_from_json.py @@ -83104,23 +84365,23 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Eoraptor" msgid_plural "Eoraptors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Eoraptor" +msgstr[1] "Eoraptors" #. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." +"A bipedal dinosaur about the size of a chicken. It darts around quickly and" +" has long arms for grabbing what it desires. It's holding something." msgstr "" -"Un dinosaurio bípedo de tamaño similar al de una gallina. Anda hurgando los " -"matorrales, buscando para comerse pequeños animales y plantas." +"Es un dinosaurio bípedo del tamaño de una gallina. Avanza rápidamente y " +"tiene brazos largos para atrapar lo que desea. Tiene algo." #: lang/json/MONSTER_from_json.py msgid "Velociraptor" msgid_plural "Velociraptors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Velociraptor" +msgstr[1] "Velociraptors" #. ~ Description for {'str': 'Velociraptor'} #: lang/json/MONSTER_from_json.py @@ -83134,8 +84395,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Deinonychus" msgid_plural "Deinonychus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Deinonychus" +msgstr[1] "Deinonychus" #. ~ Description for {'str_sp': 'Deinonychus'} #: lang/json/MONSTER_from_json.py @@ -83146,11 +84407,26 @@ msgstr "" "Es un dinosaurio bípedo de tamaño medio cubierto con plumas. En la punta de " "cada pata tiene una garra grande como una hoz." +#: lang/json/MONSTER_from_json.py +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" +msgstr[0] "bio-operador Deinonychus" +msgstr[1] "bio-operadores Deinonychus" + +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." +msgstr "" +"Es un dinosaurio bípedo cubierto de plumas y biónicos chisporroteantes. Cada" +" pata tiene una garra brillante grande como una hoz." + #: lang/json/MONSTER_from_json.py msgid "Utahraptor" msgid_plural "Utahraptors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Utahraptor" +msgstr[1] "Utahraptors" #. ~ Description for {'str': 'Utahraptor'} #: lang/json/MONSTER_from_json.py @@ -83164,8 +84440,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Parasaurolophus" msgid_plural "Parasaurolophus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Parasaurolophus" +msgstr[1] "Parasaurolophus" #. ~ Description for {'str_sp': 'Parasaurolophus'} #: lang/json/MONSTER_from_json.py @@ -83179,8 +84455,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Dimorphodon" msgid_plural "Dimorphodon" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Dimorphodon" +msgstr[1] "Dimorphodon" #. ~ Description for {'str_sp': 'Dimorphodon'} #: lang/json/MONSTER_from_json.py @@ -83188,25 +84464,29 @@ msgid "" "A feathered flying reptile over three feet long, with short wings and a big " "colorful beak." msgstr "" +"Es un reptil volador con plumas de más de un metro de largo, con alas cortas" +" y un pico grande y colorido." #: lang/json/MONSTER_from_json.py msgid "Dilophosaurus" msgid_plural "Dilophosaurus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Dilophosaurus" +msgstr[1] "Dilophosaurus" #. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its " +"head." msgstr "" -"Un dinosaurio de tamaño medio con una bilis pegajosa y verde goteándole de " -"los dientes." +"Es un dinosaurio de tamaño medio con dientes filosos y dos prominentes " +"crestas óseas en la cabeza." #: lang/json/MONSTER_from_json.py msgid "greenish yellow hatchling" msgid_plural "greenish yellow hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría verde y amarillo" +msgstr[1] "crías verde y amarillo" #. ~ Description for greenish yellow hatchling #: lang/json/MONSTER_from_json.py @@ -83214,107 +84494,127 @@ msgid "" "A tiny dinosaur hatchling with huge shiny eyes, it could be from a number of" " different species." msgstr "" +"Es una pequeña cría de dinosaurio con enormes ojos brillantes. Podría ser de" +" cualquiera de las especies que hay." #: lang/json/MONSTER_from_json.py msgid "light green and yellow hatchling" msgid_plural "light green and yellow hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría verde claro y amarillo" +msgstr[1] "crías verde claro y amarillo" #: lang/json/MONSTER_from_json.py msgid "red and white hatchling" msgid_plural "red and white hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría rojo y blanco" +msgstr[1] "crías rojo y blanco" #: lang/json/MONSTER_from_json.py msgid "light red and white hatchling" msgid_plural "light red and white hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría rojo claro y blanco" +msgstr[1] "crías rojo claro y blanco" #: lang/json/MONSTER_from_json.py msgid "light green and magenta hatchling" msgid_plural "light green and magenta hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría verde claro y magenta" +msgstr[1] "crías verde claro y magenta" #: lang/json/MONSTER_from_json.py msgid "green and magenta hatchling" msgid_plural "green and magenta hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría verde y magenta" +msgstr[1] "crías verde y magenta" #: lang/json/MONSTER_from_json.py msgid "brown and magenta hatchling" msgid_plural "brown and magenta hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría marrón y magenta" +msgstr[1] "crías marrón y magenta" #: lang/json/MONSTER_from_json.py msgid "brown and white hatchling" msgid_plural "brown and white hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría marrón y blanco" +msgstr[1] "crías marrón y blanco" #: lang/json/MONSTER_from_json.py msgid "dark gray and yellow hatchling" msgid_plural "dark gray and yellow hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría gris oscuro y amarillo" +msgstr[1] "crías gris oscuro y amarillo" #: lang/json/MONSTER_from_json.py msgid "red and green hatchling" msgid_plural "red and green hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría rojo y verde" +msgstr[1] "crías rojo y verde" #: lang/json/MONSTER_from_json.py msgid "dark gray and white hatchling" msgid_plural "dark gray and white hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría gris oscuro y blanco" +msgstr[1] "crías gris oscuro y blanco" #: lang/json/MONSTER_from_json.py msgid "dark gray and magenta hatchling" msgid_plural "dark gray and magenta hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría gris oscuro y magenta" +msgstr[1] "crías gris oscuro y magenta" #: lang/json/MONSTER_from_json.py msgid "light gray and yellow hatchling" msgid_plural "light gray and yellow hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría gris claro y amarillo" +msgstr[1] "crías gris claro y amarillo" #: lang/json/MONSTER_from_json.py msgid "magenta and green hatchling" msgid_plural "magenta and green hatchlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría magenta y verde" +msgstr[1] "crías magenta y verde" #: lang/json/MONSTER_from_json.py msgid "Z-Rex" msgid_plural "Z-Rexes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Z-Rex" +msgstr[1] "Z-Rexes" #. ~ Description for {'str': 'Z-Rex', 'str_pl': 'Z-Rexes'} #: lang/json/MONSTER_from_json.py msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "" +"Enormes pilas de carne irregular y maloliente sostienen dientes enormes." + +#: lang/json/MONSTER_from_json.py +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" +msgstr[0] "Z-Deinonychus" +msgstr[1] "Z-Deinonychus" + +#. ~ Description for {'str_sp': 'Z-Deinonychus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." +msgstr "" +"Es un cuerpo reorganizado de tamaño medio de un dinosaurio bípedo cubierto " +"con plumas rotas y un líquido pútrido negro. Los dos pies lucen un garra " +"grande similar a un hoz." #: lang/json/MONSTER_from_json.py msgid "improvised SMG turret" msgid_plural "improvised SMG turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta subfusil improvisada" +msgstr[1] "torretas subfusil improvisadas" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "CROWS II, heavy machinegun" msgid_plural "CROWS II, heavy machineguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "CROWS II, ametralladora pesada" +msgstr[1] "CROWS II, ametralladora pesada" #. ~ Description for {'str': 'CROWS II, heavy machinegun'} #: lang/json/MONSTER_from_json.py @@ -83325,12 +84625,17 @@ msgid "" " anything up to light vehicles at long range without exposing the operator." " This one is fitted with a heavy machinegun." msgstr "" +"Es un sistema de arma remoto derivada de la M153 CROWS II y mejorada con un " +"software de operación autónoma. Miles de estas fueron desplegadas por el " +"ejército de Estados Unidos antes del Cataclismo, y eran valoradas por su uso" +" contra cualquier cosa, incluso vehículos ligeros a gran distancia sin " +"exponer al operador. Esta tiene una ametralladora pesada." #: lang/json/MONSTER_from_json.py msgid "CROWS II, light machinegun" msgid_plural "CROWS II, light machineguns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "CROWS II, ametralladora ligera" +msgstr[1] "CROWS II, ametralladora ligera" #. ~ Description for {'str': 'CROWS II, light machinegun'} #: lang/json/MONSTER_from_json.py @@ -83341,12 +84646,17 @@ msgid "" " infantry without exposing the operator. This one is fitted with a light " "machine gun." msgstr "" +"Es un sistema de arma remoto derivada de la M153 CROWS II y mejorada con un " +"software de operación autónoma. Miles de estas fueron desplegadas por el " +"ejército de Estados Unidos antes del Cataclismo, y eran valoradas por su uso" +" contra infantería sin exponer al operador. Esta tiene una ametralladora " +"ligera." #: lang/json/MONSTER_from_json.py msgid "autonomous rifle TALON UGV" msgid_plural "autonomous rifle TALON UGVs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "TALON UGV rifle autónomo" +msgstr[1] "TALON UGV rifle autónomo" #. ~ Description for {'str': 'autonomous rifle TALON UGV'} #: lang/json/MONSTER_from_json.py @@ -83355,12 +84665,15 @@ msgid "" "is a small tracked UGV with an array of motors and sensors covering its " "weapon mount." msgstr "" +"Es un vehículo terrestre no tripulado TALON equipado con un rifle de asalto " +"estándar. Es un pequeño UGV rastreado con un conjunto de motores y sensores " +"que cubren la montura del arma." #: lang/json/MONSTER_from_json.py msgid "autonomous launcher TALON UGV" msgid_plural "autonomous launcher TALON UGVs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lanzador TALON UGV autónomo" +msgstr[1] "lanzadores TALON UGV autónomos" #. ~ Description for {'str': 'autonomous launcher TALON UGV'} #: lang/json/MONSTER_from_json.py @@ -83369,12 +84682,15 @@ msgid "" "It is a small tracked UGV with an array of motors and sensors covering its " "weapon mount." msgstr "" +"Es un vehículo terrestre no tripulado TALON equipado con un revólver " +"lanzagranadas. Es un pequeño UGV rastreado con un conjunto de motores y " +"sensores que cubren la montura del arma." #: lang/json/MONSTER_from_json.py msgid "animated blade" msgid_plural "animated blades" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchilla animada" +msgstr[1] "cuchillas animadas" #. ~ Description for animated blade #: lang/json/MONSTER_from_json.py @@ -83382,12 +84698,14 @@ msgid "" "A conjured glowing longsword that darts and dodges around, slicing and " "cutting your foes into small pieces." msgstr "" +"Es una brillante espada larga conjurada que vuela a toda velocidad " +"esquivando cosas, cortando y trozando a tus enemigos en pedacitos." #: lang/json/MONSTER_from_json.py msgid "demon spiderling" msgid_plural "demon spiderlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arañita demoníaca" +msgstr[1] "arañitas demoníacas" #. ~ Description for demon spiderling #: lang/json/MONSTER_from_json.py @@ -83397,12 +84715,15 @@ msgid "" "this creature before the Cataclysm. It is quick, and its large fangs drip " "with venom." msgstr "" +"A pesar de ser del tamaño de un perrito, se nota que es una araña muy joven." +" Su color rojo es lo que le da su nombre; nunca viste una criatura como esta" +" antes del Cataclismo. Es rápido y sus grandes colmillos chorrean veneno." #: lang/json/MONSTER_from_json.py msgid "demon spider" msgid_plural "demon spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña demoníaca" +msgstr[1] "arañas demoníacas" #. ~ Description for demon spider #: lang/json/MONSTER_from_json.py @@ -83412,12 +84733,16 @@ msgid "" " maroon carapace is studded with wicked-looking spikes that drip with some " "kind of viscious black liquid that sizzles when it touches the ground." msgstr "" +"Es una araña del tamaño de un auto. Sus enormes ojos compuestos parecen " +"tener infinitos charcos de negrura que parecen absorber la luz del aire. Su " +"caparazón marrón está llena de púas de apariencia malvada que chorrean " +"alguna clase de agresivo líquido negro que crepita al tocar el suelo." #: lang/json/MONSTER_from_json.py msgid "demon spider queen" msgid_plural "demon spider queens" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña reina demoníaca" +msgstr[1] "arañas reina demoníacas" #. ~ Description for demon spider queen #: lang/json/MONSTER_from_json.py @@ -83427,12 +84752,17 @@ msgid "" "huge and swollen-looking, and an evil intelligence burns in its eyes even as" " magic crackles around its chitinous barbs." msgstr "" +"Es una gigantesca araña del tamaño de una camioneta. No tenés ni idea de " +"cómo hace para mantenerse en una pieza, mucho menos cómo hace para moverse " +"con esa corpulencia. Su abdomen es enorme y parece hinchado, y una " +"inteligencia malévola arde en sus ojos incluso mientras la magia " +"chisporrotea alrededor de sus púas quitinosas." #: lang/json/MONSTER_from_json.py msgid "black dragon wyrmling" msgid_plural "black dragon wyrmlings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cría wyrm de dragón negro" +msgstr[1] "crías wyrm de dragón negro" #. ~ Description for black dragon wyrmling #: lang/json/MONSTER_from_json.py @@ -83441,12 +84771,15 @@ msgid "" "glossy, and its horns barely peek out of its head. Even from one so young, " "you see the glint of sadism in its eyes." msgstr "" +"Es un pequeño dragón negro, de menos de cinco años de edad. Sus escamas son " +"brillantes y sus cuernos apenas si asoman de su cabeza. Incluso en un dragón" +" tan joven podés ver el destello de sadismo en sus ojos." #: lang/json/MONSTER_from_json.py msgid "young black dragon" msgid_plural "young black dragons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dragón negro joven" +msgstr[1] "dragones negros jóvenes" #. ~ Description for young black dragon #: lang/json/MONSTER_from_json.py @@ -83457,12 +84790,17 @@ msgid "" "this creature is evil to its very core. Even though this dragon is not " "fully grown, it is the size of a full-grown bull." msgstr "" +"Este dragón negro parece estar todavía en las primeras etapas de su vida. " +"Sus ojos recién comenzaron a hundirse en sus cuencas y sus cuernos " +"segmentados y curvos apenas están poniéndose negros en las punta. Solo " +"mirándolo se nota que esta criatura es malvada hasta la médula. Incluso " +"aunque no sea completamente maduro, tiene el tamaño de un toro adulto." #: lang/json/MONSTER_from_json.py msgid "adult black dragon" msgid_plural "adult black dragons" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dragón negro adulto" +msgstr[1] "dragones negros adultos" #. ~ Description for adult black dragon #: lang/json/MONSTER_from_json.py @@ -83471,12 +84809,58 @@ msgid "" "evil. Its face and skull appear skeletal, and acid drips from its dagger-" "like jaws." msgstr "" +"Es una monstruosidad de escamas negras con ojos hundidos en sus cuencas y de" +" un verde brillante de maldad. Su cara y cráneo parecen esqueléticos, y un " +"ácido gotea de sus mandíbulas parecidas a dagas." + +#: lang/json/MONSTER_from_json.py +msgid "goblin warrior" +msgid_plural "goblin warriors" +msgstr[0] "goblin guerrero" +msgstr[1] "goblins guerreros" + +#. ~ Description for {'str': 'goblin warrior'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." +msgstr "" +"Es un humanoide petiso cubierto en mugre que te grita insultos mientras " +"blande un garrote." + +#: lang/json/MONSTER_from_json.py +msgid "goblin slinger" +msgid_plural "goblin slingers" +msgstr[0] "goblin tirador" +msgstr[1] "goblins tiradores" + +#. ~ Description for {'str': 'goblin slinger'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that slings rocks almost as well as it slings insults." +msgstr "" +"Es una criatura fea que arroja piedras casi tan bien como arroja insultos." + +#: lang/json/MONSTER_from_json.py +msgid "goblin chieftain" +msgid_plural "goblin chieftains" +msgstr[0] "goblin cacique" +msgstr[1] "goblins caciques" + +#. ~ Description for {'str': 'goblin chieftain'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that was promoted to chieftain because it figured out which" +" end of the weapon is pointy." +msgstr "" +"Es una criatura fea que ha sido ascendida a cacique debido a que pudo " +"determinar cuál era el lado con filo del arma." #: lang/json/MONSTER_from_json.py msgid "clay golem" msgid_plural "clay golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golem de arcilla" +msgstr[1] "golems de arcilla" #. ~ Description for clay golem #: lang/json/MONSTER_from_json.py @@ -83484,12 +84868,14 @@ msgid "" "A large, humanoid golem made from clay. Its proportions are off and it " "seems fragile." msgstr "" +"Es un golem humanoide grande hecho de arcila. Sus proporciones son raras y " +"parece frágil." #: lang/json/MONSTER_from_json.py msgid "plastic golem" msgid_plural "plastic golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golem de plástico" +msgstr[1] "golems de plástico" #. ~ Description for {'str': 'plastic golem'} #: lang/json/MONSTER_from_json.py @@ -83499,24 +84885,31 @@ msgid "" "is a magical device. The advent of 3D printing made it easy to get into the" " golem-making hobby, and plastic golems have soared in popularity." msgstr "" +"Tradicionalmente, hacer un golem es un proceso de meses que involucra " +"herramientas de mano y precisión de artesano. Un golem de piedra es tanto " +"una obra de arte como un dispositivo mágico. La llegada de la impresión 3D " +"hizo más fácil tener el hobby de la creación de golems, y los golems de " +"plástico explotaron en popularidad." #: lang/json/MONSTER_from_json.py msgid "stone golem" msgid_plural "stone golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golems de piedra" +msgstr[1] "golems de piedra" #. ~ Description for stone golem #: lang/json/MONSTER_from_json.py msgid "" "A large, humanoid golem made from stone. Its fists look similar to rockets." msgstr "" +"Es un golem humanoide grande hecho de piedra. Sus puños se parecen a " +"misiles." #: lang/json/MONSTER_from_json.py msgid "iron golem" msgid_plural "iron golems" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "golem de hierro" +msgstr[1] "golems de hierro" #. ~ Description for iron golem #: lang/json/MONSTER_from_json.py @@ -83524,12 +84917,14 @@ msgid "" "A large, humanoid golem made from iron. Some sort of noxious gas seems to " "be seeping from its mouth." msgstr "" +"Es un golem humanoide grande hecho de hierro. Alguna clase de gas nocivo " +"parece estar escapando de su boca." #: lang/json/MONSTER_from_json.py msgid "lizardfolk warrior" msgid_plural "lizardfolk warriors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lagartombre guerrero" +msgstr[1] "lagartombres guerreros" #. ~ Description for lizardfolk warrior #: lang/json/MONSTER_from_json.py @@ -83542,12 +84937,19 @@ msgid "" " their greatclubs, they are equally ferocious with their sharp teeth and " "claws." msgstr "" +"Es un humanoide reptiliano alto y poderoso, con una cola musculosa cuya piel" +" está cubierta de escalas verdes y gris oscuro. Son tribales y tienden a " +"vivir en cuevas con agua cerca, especialmente en áreas habitadas por " +"dragones y wyrms. No son particularmente hostiles, aunque no les importan " +"los forasteros, y son muy peligrosos cuando se los provoca. Aunque " +"generalmente prefieren sus garrotes para pelear, son igualmente feroces con " +"sus dientes y garras filosos." #: lang/json/MONSTER_from_json.py msgid "lizardfolk hunter" msgid_plural "lizardfolk hunters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lagartombre cazador" +msgstr[1] "lagartombres cazadores" #. ~ Description for lizardfolk hunter #: lang/json/MONSTER_from_json.py @@ -83555,16 +84957,18 @@ msgid "" "The hunter is a smaller lizardfolk than a warrior, but equally as deadly, " "with their lithe figures and accurate javelin throws." msgstr "" +"El cazador es un lagartombre más pequeño que el guerrero, pero igual de " +"mortal con sus cuerpos ágiles y su puntería con las jabalinas." #: lang/json/MONSTER_from_json.py msgid "The hunter hurls a barbed javelin at you!" -msgstr "" +msgstr "¡El cazador te arroja su jabalina con púas!" #: lang/json/MONSTER_from_json.py msgid "lizardfolk shaman" msgid_plural "lizardfolk shamans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lagartombre chamán" +msgstr[1] "lagartombres chamanes" #. ~ Description for lizardfolk shaman #: lang/json/MONSTER_from_json.py @@ -83576,12 +84980,19 @@ msgid "" "Shamans are druidic spellcasters that can use the forces of nature to battle" " enemies, as well as summoning assistance when needed." msgstr "" +"Los lagartombres son muy inteligentes y sagaces, pero su habilidad mágica es" +" una cualidad rara. Los chamanes son elegidos de la tribu durante la niñez, " +"cuando las habilidades mágicas marcan el destino del joven. No se conoce " +"mucho acerca del ritual de iniciación que deben pasar, pero pocos sobreviven" +" la experiencia. Los chamanes son conjuradores druídicos que pueden utilizar" +" las fuerzas de la naturaleza para combatir sus enemigos, así como también " +"conjurar ayudantes cuando lo necesitan." #: lang/json/MONSTER_from_json.py msgid "lizardfolk chieftan" msgid_plural "lizardfolk chieftans" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cacique lagartombre" +msgstr[1] "caciques lagartombres" #. ~ Description for lizardfolk chieftan #: lang/json/MONSTER_from_json.py @@ -83592,12 +85003,17 @@ msgid "" "strongest member of its tribe and carries a fierce trident to compliment its" " teeth and claws." msgstr "" +"Entre los lagartombres, la ambición es una cualidad rara. Los caciques se " +"ganan su lugar al exhibir inusuales niveles altos de ambición, a menudo " +"confundidos por los forasteros como violencia excesiva y brutal. Este jefe " +"es el miembro más grande y fuerte de la tribu y lleva el feroz tridente para" +" acompañar sus dientes y garras." #: lang/json/MONSTER_from_json.py msgid "crocodile" msgid_plural "crocodiles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cocodrilo" +msgstr[1] "cocodrilos" #. ~ Description for crocodile #: lang/json/MONSTER_from_json.py @@ -83605,12 +85021,15 @@ msgid "" "A once-and-future lizardfolk shaman, this large crocodile no longer has any " "hint of any humanoid characteristics and looks very, very dangerous." msgstr "" +"Fue alguna vez un chamán lagartombre y lo volverá a ser, este gran cocodrilo" +" ya no posee noción de sus características humanoides y parece muy, muy " +"peligroso." #: lang/json/MONSTER_from_json.py msgid "owlbear" msgid_plural "owlbears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "osolechuza" +msgstr[1] "osolechuzas" #. ~ Description for owlbear #: lang/json/MONSTER_from_json.py @@ -83621,12 +85040,17 @@ msgid "" "ravenous eaters, aggressive hunters, and evil tempered at all times. They " "attack prey on sight and will fight to the death." msgstr "" +"El horrendo osolechuza probablemente sea el resultado de un experimento " +"genético por parte de algún mago loco. Estas criatruras habitan las regiones" +" forestales espesas de cualquier clima, y también en laberintos " +"subterráneos. Son voraces, cazadores agresivos y de temperamento malévolo en" +" todo momento. Atacan a sus presas al verlas y lucharán a muerte." #: lang/json/MONSTER_from_json.py msgid "black pudding" msgid_plural "black puddings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "budín negro" +msgstr[1] "budines negros" #. ~ Description for black pudding #: lang/json/MONSTER_from_json.py @@ -83634,17 +85058,20 @@ msgid "" "Writhing, sticky, black sludge undulates across the ground. A faint " "sizzling sound comes from the ground beneath it as it lurches toward you." msgstr "" +"Es como un barro pegajoso, negro y que se retuerce y va serpenteando por el " +"suelo. Un débil sonido crepitante sal del suelo debajo de él mientras se " +"abalanza hacia vos." #. ~ Attack message of monster "black pudding"'s spell "None" #: lang/json/MONSTER_from_json.py msgid "The black pudding burns %3$s with acid!" -msgstr "" +msgstr "¡El budín negro quema a %3$s con ácido!" #: lang/json/MONSTER_from_json.py msgid "krabgek" msgid_plural "krabgeks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "krabgek" +msgstr[1] "krabgeks" #. ~ Description for krabgek #: lang/json/MONSTER_from_json.py @@ -83654,23 +85081,27 @@ msgid "" "liquid, and the weirdly humanoid figure is covered in sharp blue-black " "triangular plates." msgstr "" +"Un ojo grande y maligno observa desde la oscuridad, su brillo sugiere una " +"extraña inteligencia y una malevolencia perturbadora. El ojo chorrea un " +"líquido rosa y la extraña figura humanoide está cubierta de placas " +"triangulares filosas azules y negras." #. ~ Attack message of monster "krabgek"'s spell "None" #: lang/json/MONSTER_from_json.py msgid "The krabgek gazes at %3$s!" -msgstr "" +msgstr "¡El krabgek mira fijamente a %3$s!" #: lang/json/MONSTER_from_json.py msgid "owlbear cub" msgid_plural "owlbear cubs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "oseznolechuza" +msgstr[1] "oseznolechuzas" #: lang/json/MONSTER_from_json.py msgid "bulette" msgid_plural "bulettes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bulette" +msgstr[1] "bulettes" #. ~ Description for bulette #: lang/json/MONSTER_from_json.py @@ -83681,6 +85112,11 @@ msgid "" " flesh. The stupid bulette is irascible and always hungry, and they fear " "nothing." msgstr "" +"El bulette (o tiburón de tierra) fue el resultado del experimento de un " +"hechicero loco, cruzando tortugas serpentinas con armadillos y con " +"infusiones de icor demoníaco. Oscilan por climas temperados alimentándose de" +" caballos, hombres y casi cualquier carne. El estúpido bulette es irascible " +"y siempre está hambriento, y no le temen a nada." #: lang/json/MONSTER_from_json.py msgid "will-o-wisp" @@ -83702,8 +85138,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "troll" msgid_plural "trolls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "troll" +msgstr[1] "trolls" #. ~ Description for troll #: lang/json/MONSTER_from_json.py @@ -83711,12 +85147,14 @@ msgid "" "Monstrous, green-skinned humanoid. Trolls are renowned for their thick " "hides and natural regenerative ability." msgstr "" +"Es un humanoide monstruoso y de piel verde. Los trolls son reconocidos por " +"sus pellejos grueso y su habilidad natural regenerativa." #: lang/json/MONSTER_from_json.py msgid "stirge" msgid_plural "stirges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "stirge" +msgstr[1] "stirges" #. ~ Description for stirge #: lang/json/MONSTER_from_json.py @@ -83724,12 +85162,14 @@ msgid "" "This horrid flying creature looks like a cross between a large bat and " "oversized mosquito." msgstr "" +"Esta horrorosa criatura voladora parece la cruza entre un murciélago grande " +"y un mosquito sobredimensionado." #: lang/json/MONSTER_from_json.py msgid "shrieker" msgid_plural "shriekers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "aullador" +msgstr[1] "aulladores" #. ~ Description for shrieker #: lang/json/MONSTER_from_json.py @@ -83737,12 +85177,14 @@ msgid "" "A shrieker is a human-sized mushroom that emits a piercing screech to drive " "off creatures that disturb it." msgstr "" +"El aullador es un hongo del tamaño de un humano que emite unos gritos " +"penetrantes para desorientar a las criaturas que lo molestan." #: lang/json/MONSTER_from_json.py msgid "lemure" msgid_plural "lemures" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lémur" +msgstr[1] "lémures" #. ~ Description for lemure #: lang/json/MONSTER_from_json.py @@ -83750,473 +85192,25 @@ msgid "" "A lemure resembles a molten mass of flesh with a vaguely humanoid head and " "torso." msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "automated turret" -msgid_plural "automated turrets" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed defense turret" -msgid_plural "disarmed defense turrets" -msgstr[0] "torreta defensiva desarmada" -msgstr[1] "torretas defensivas desarmadas" - -#. ~ Description for disarmed defense turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-series turret, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. It requires an integrated firearm module to " -"work." -msgstr "" -"La torreta de la serie TX de General Atomics es una pequeña torreta " -"automatizada con forma de pastilla. Utiliza sistemas ATR de última " -"generación para reorientarse dinámicamente hacia sus nuevos amigos y " -"enemigos por igual. Necesita un módulo integrado de arma para funcionar." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed military turret" -msgid_plural "disarmed military turrets" -msgstr[0] "torreta militar desarmada" -msgstr[1] "torretas militares desarmadas" - -#. ~ Description for disarmed military turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX series turret, a military-grade automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. It requires a integrated gun module to operate." -msgstr "" -"La torreta de la serie TX de Leadworks LLC es una torreta militar " -"automatizada. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Necesita un " -"módulo integrado de arma para funcionar." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed advanced turret" -msgid_plural "disarmed advanced turrets" -msgstr[0] "torreta mejorada desarmada" -msgstr[1] "torretas mejoradas desarmadas" - -#. ~ Description for disarmed advanced turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-series turret, an advanced automated gun turret using state" -" of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. It requires an integrated gun module to function." -msgstr "" -"La torreta de la serie T de DoubleTech es una torreta mejorada automatizada." -" Utiliza sistemas ATR de última generación para reorientarse dinámicamente " -"hacia sus nuevos amigos y enemigos por igual. Necesita un módulo integrado " -"de arma para funcionar." - -#: lang/json/MONSTER_from_json.py -msgid "9mm turret" -msgid_plural "9mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 9mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-1 Guardian, a small, pill-shaped automated gun turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " -"full 360 degrees." -msgstr "" -"La General Atomics TX-1 Guardian es una pequeña torreta automatizada con " -"forma de pastilla. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"subfusil 9mm integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "shotgun turret" -msgid_plural "shotgun turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for shotgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-4 Protector, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 12ga shotgun can swivel a " -"full 360 degrees." -msgstr "" -"La General Atomics TX-4 Protector es una pequeña torreta automatizada con " -"forma de pastilla. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"escopeta 12ga integrada puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "riot control turret" -msgid_plural "riot control turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1a Warden, a small, pill-shaped automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 40mm teargas launcher can swivel " -"a full 360 degrees." -msgstr "" -"La General Atomics TZ-1a Warden es una pequeña torreta automatizada con " -"forma de pastilla. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"lanzador de gas lacrimógeno de 40mm integrado puede rotar 360 grados." - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1b Pacifier, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 40mm beanbag launcher can " -"swivel a full 360 degrees." -msgstr "" -"La General Atomics TZ-1b Pacifier es una pequeña torreta automatizada con " -"forma de pastilla. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"lanzador integrado de perdigones no letales de 40mm puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "5.56mm turret" -msgid_plural "5.56mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 5.56mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32L Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " -"360 degrees." -msgstr "" -"La torreta TX-32L Sentry de Leadworks LLC es una torreta militar " -"automatizada. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su rifle 5.56 " -"integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "7.62mm turret" -msgid_plural "7.62mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 7.62mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32H Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " -"360 degrees." -msgstr "" -"La torreta TX-32H Sentry de Leadworks LLC es una torreta militar " -"automatizada. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su rifle 7.62 " -"integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "50cal turret" -msgid_plural "50cal turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 50cal turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-13 Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 50 caliber machinegun can " -"swivel a full 360 degrees." -msgstr "" -"La torreta TX-13 Sentry de Leadworks LLC es una torreta militar " -"automatizada. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su ametralladora" -" calibre 50 integrada puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "8x40mm turret" -msgid_plural "8x40mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 8x40mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-01A Warden, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " -"full 360 degrees." -msgstr "" -"La torreta TX-01A Warden de Leadworks LLC es una torreta militar " -"automatizada. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su rifle 8x40mm " -"integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "needle turret" -msgid_plural "needle turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for needle turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TN-7 Sentry, a military-grade automated flechette turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 5mm flechette gun can swivel a " -"full 360 degrees." -msgstr "" -"La torreta TN-7 Sentry de Leadworks LLC es una torreta militar automatizada " -"de dardos perforantes. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"arma de dardos perforantes integrada puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "40mm grenade turret" -msgid_plural "40mm grenade turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 40mm grenade turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TG-7 Sentry, a military-grade automated gun turret using" -" state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated 40mm grenade launcher can swivel a full " -"360 degrees." -msgstr "" -"La torreta TG-7 Sentry de Leadworks LLC es una torreta militar automatizada." -" Utiliza sistemas ATR de última generación para reorientarse dinámicamente " -"hacia sus nuevos amigos y enemigos por igual. Su lanzagranadas 40mm " -"integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "flame turret" -msgid_plural "flame turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for flame turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TF-7 Sentry, a military-grade automated flame turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated flamethrower can swivel a full " -"360 degrees." -msgstr "" -"La torreta TF-7 Sentry de Leadworks LLC es una torreta militar automatizada " -"lanzallamas. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su lanzallamas " -"integrado puede rotar 360 grados." - -#. ~ Description for laser turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-L3 Scintillator, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated laser emitter can swivel a full 360 " -"degrees." -msgstr "" -"La torreta T-L3 Scintillator de DoubleTech es una torreta avanzada " -"automatizada láser. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"emisor láser integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "acid turret" -msgid_plural "acid turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for acid turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-A3 Disintegrator, an advanced automated acid turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated acid thrower can swivel a full 360 " -"degrees." -msgstr "" -"La torreta T-A3 Disintegrator de DoubleTech es una torreta avanzada " -"automatizada ácida. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"lanzador de ácido integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "plasma turret" -msgid_plural "plasma turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for plasma turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-P3 Scathefire, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated plasma ejector can swivel a full 360 " -"degrees." -msgstr "" -"La torreta T-P3 Scathefire de DoubleTech es una torreta avanzada " -"automatizada láser. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"eyector de plasma integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "railgun turret" -msgid_plural "railgun turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for railgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-R3 Arbalest, an advanced automated railgun turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated railgun can swivel a full 360 degrees." -msgstr "" -"La torreta T-R3 Arbalest de DoubleTech es una torreta avanzada automatizada " -"con cañón de riel. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"cañón de riel integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "advanced electro turret" -msgid_plural "advanced electro turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for advanced electro turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-E3 Thunderstroke, an advanced automated electro turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated electro caster can swivel a full " -"360 degrees." -msgstr "" -"La torreta T-E3 Thunderstroke de DoubleTech es una electrotorreta avanzada " -"automatizada. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su lanza-rayos " -"eléctrico integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "EMP turret" -msgid_plural "EMP turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for EMP turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-EMP3 Corona, an advanced automated EMP turret using state " -"of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. Its electro magnetic pulse generator can swivel a full 360 " -"degrees." -msgstr "" -"La torreta T-EMP3 Corona de DoubleTech es una torreta avanzada automatizada " -"PEM. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su generador " -"electromagnético integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "guardin gnome" -msgid_plural "guardin gnomes" -msgstr[0] "" -msgstr[1] "" - -#. ~ 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 "Es un guardgnomo de jardín totalmente normal e indefenso." - -#: lang/json/MONSTER_from_json.py -msgid "utility robot" -msgid_plural "utility robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for utility robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of utility robot formerly in use by government " -"agencies, private corporations, and civilians alike." -msgstr "" -"Es uno de los varios modelos de robos utilitarios que eran utilizados por " -"las agencias gubernamentales, corporaciones privadas y también por los " -"civiles." - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and trespassers." -msgstr "" -"Es un pequeño robot aéreo equipado con un conjunto de cámaras y armado con " -"un flash destellante. Ya no forma parte de ninguna seguridad ni de la " -"policía, pero continúa cazando criminales e intrusos." - -#: lang/json/MONSTER_from_json.py -msgid "defense robot" -msgid_plural "defense robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for defense robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is armed with an electric prod and an integrated 9mm firearm." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "security robot" -msgid_plural "security robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an integrated 9mm firearm." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "riotcontrol robot" -msgid_plural "riotcontrol robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for riotcontrol robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod, tear gas sprayer, and integrated" -" 40mm beanbag launcher." -msgstr "" +"El lémur recuerda una masa de carne derretida con cabeza y torso vagamente " +"humanoides." #: lang/json/MONSTER_from_json.py msgid "necco" msgid_plural "neccos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "necco" +msgstr[1] "neccos" #. ~ Description for {'str': 'necco'} #: lang/json/MONSTER_from_json.py msgid "A giant necco wafer happily jaunting around." -msgstr "" +msgstr "Es una galleta Necco gigante que va paseando alegremente. " #: lang/json/MONSTER_from_json.py msgid "marshmallow kid" msgid_plural "marshmallow kids" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pibe malvavisco" +msgstr[1] "pibes malvaviscos" #. ~ Description for {'str': 'marshmallow kid'} #: lang/json/MONSTER_from_json.py @@ -84224,12 +85218,14 @@ msgid "" "A small humanoid made of marsmallow. It bumbles around on its stubby " "cushioned legs. How cute!" msgstr "" +"Es un pequeño humanoide hecho de malvavisco. Va trastabillando en sus " +"gorditas patas acolchadas. ¡Qué lindo!" #: lang/json/MONSTER_from_json.py msgid "marshmallow guy" msgid_plural "marshmallow guys" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hombre malvavisco" +msgstr[1] "hombres malvaviscos" #. ~ Description for {'str': 'marshmallow guy'} #: lang/json/MONSTER_from_json.py @@ -84237,12 +85233,15 @@ msgid "" "A marshmallow humanoid with a smile drawn on its face. It bumbles around, " "hollow eyes scanning its surrounding seemingly looking for something." msgstr "" +"Es un humanoide de malvavisco con una sonrisa dibujada en la cara. Va " +"trastabillándose con sus ojos huecos mirando sus alrededores, aparentemente " +"buscando algo." #: lang/json/MONSTER_from_json.py msgid "marshmallow buff" msgid_plural "marshmallow buffs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "musculoso malvavisco" +msgstr[1] "musculosos malvaviscos" #. ~ Description for {'str': 'marshmallow buff'} #: lang/json/MONSTER_from_json.py @@ -84250,12 +85249,14 @@ msgid "" "A muscular body made of marshmallow, proudly striding towards an unknown " "goal. Yummy!" msgstr "" +"Es un cuerpo musculoso hecho de malvavisco, dando pasos largos de manera " +"orgullosa hacia un objetivo desconocido. ¡Rico!" #: lang/json/MONSTER_from_json.py msgid "marshmallow goliath" msgid_plural "marshmallow goliaths" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "goliat malvavisco" +msgstr[1] "goliats malvaviscos" #. ~ Description for {'str': 'marshmallow goliath'} #: lang/json/MONSTER_from_json.py @@ -84263,12 +85264,15 @@ msgid "" "A gigantic marshmallow humanoid softly stompind around, frozen smile and big" " empty eyes carefully scanning its surroundings." msgstr "" +"Es un humanoide gigantesco de malvavisco que va pisoteando suavemente, con " +"la sonrisa congelada y los grandes ojos vacíos mirando cuidadosamente sus " +"alrededores." #: lang/json/MONSTER_from_json.py msgid "marshmallow squire" msgid_plural "marshmallow squires" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escudero malvavisco" +msgstr[1] "escuderos malvaviscos" #. ~ Description for {'str': 'marshmallow squire'} #: lang/json/MONSTER_from_json.py @@ -84277,12 +85281,15 @@ msgid "" "chocolate coated crakers and bumbles around on its stubby cushioned legs. " "How cute!" msgstr "" +"Es un pequeño humanoide hecho de malvavisco. Tiene una armadura de placas " +"hecha de galletitas cubiertas de chocolate y va trastabillando en sus " +"gorditas patas acolchadas. ¡Qué lindo!" #: lang/json/MONSTER_from_json.py msgid "marshmallow knight" msgid_plural "marshmallow knights" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "caballero malvavisco" +msgstr[1] "caballeros malvaviscos" #. ~ Description for {'str': 'marshmallow knight'} #: lang/json/MONSTER_from_json.py @@ -84291,12 +85298,15 @@ msgid "" "bumbles around, hollow eyes scanning its surrounding seemingly looking for " "something." msgstr "" +"Es un humanoide de malvavisco cubierto de una armadura de caballero de " +"galletitas cubiertas de chocolate. Va trastabillándose con sus ojos huecos " +"mirando sus alrededores, aparentemente buscando algo." #: lang/json/MONSTER_from_json.py msgid "marshmallow champion" msgid_plural "marshmallow champions" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "campeón malvavisco" +msgstr[1] "campeones malvaviscos" #. ~ Description for {'str': 'marshmallow champion'} #: lang/json/MONSTER_from_json.py @@ -84304,12 +85314,15 @@ msgid "" "Standing tall in its shining armor of chocolate coated crakers this " "marshmallow is proudly striding towards an unknown goal." msgstr "" +"Parado orgulloso con su brillante armadura de galletitas cubiertas de " +"chocolate, este malvavisco va dando pasos largos de manera orgullosa hacia " +"un objetivo desconocido." #: lang/json/MONSTER_from_json.py msgid "marshmallow war lord" msgid_plural "marshmallow war lords" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jefe militar malvavisco" +msgstr[1] "jefes militares malvaviscos" #. ~ Description for {'str': 'marshmallow war lord'} #: lang/json/MONSTER_from_json.py @@ -84318,23 +85331,26 @@ msgid "" "A frozen smile half visible under its heavy helmet it carefully scans its " "surroundings." msgstr "" +"Es un humanoide gigantesco armado con gruesas placas de galletitas cubiertas" +" de chocolate. Una sonrisa congelada es visible debajo de su casco pesado, y" +" va mirando cuidadosamente sus alrededores." #: lang/json/MONSTER_from_json.py msgid "gummy cub" msgid_plural "gummy cubs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "osezno de goma" +msgstr[1] "oseznos de goma" #. ~ Description for {'str': 'gummy cub'} #: lang/json/MONSTER_from_json.py msgid "A juvenile gummy bear. A cute bear cub made of sugary gum." -msgstr "" +msgstr "Es un oso joven de goma. Un lindo osezno hecho de gomita de azúcar." #: lang/json/MONSTER_from_json.py msgid "gummy bear" msgid_plural "gummy bears" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "osito de goma" +msgstr[1] "ositos de goma" #. ~ Description for {'str': 'gummy bear'} #: lang/json/MONSTER_from_json.py @@ -84342,33 +85358,40 @@ msgid "" "A big bear made of fruit flavored gelatine, its smooth round shape and its " "fruity smell make it somehow less scary than its fleshy counterpart." msgstr "" +"Es un oso grande hecho de gelatina con gusto a frutas, su forma suave y " +"redondeada y su aroma a fruta lo hace causar un poco menos de miedo que su " +"primo de carne." #: lang/json/MONSTER_from_json.py msgid "cracker kid" msgid_plural "cracker kids" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pibe galletita" +msgstr[1] "pibes galletitas" #. ~ Description for {'str': 'cracker kid'} #: lang/json/MONSTER_from_json.py msgid "A small cracker kid running around on its cracker legs." msgstr "" +"Es un pibe pequeño de galletita que anda corriendo por ahí con sus piernas " +"galletitas." #. ~ Description for {'str': 'cracker'} #: lang/json/MONSTER_from_json.py msgid "A full grown cracker running around on its cracker legs." msgstr "" +"Es una galletita adulta que anda corriendo por ahí con sus piernas " +"galletitas." #. ~ Description for {'str': 'cookie'} #: lang/json/MONSTER_from_json.py msgid "A small cookie, scuriying around in search for crumbs." -msgstr "" +msgstr "Es una pequeña galletita, correteando mientras busca miguitas." #: lang/json/MONSTER_from_json.py msgid "gum spider" msgid_plural "gum spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña de chicle" +msgstr[1] "arañas de chicle" #. ~ Description for {'str': 'gum spider'} #: lang/json/MONSTER_from_json.py @@ -84376,12 +85399,14 @@ msgid "" "A giant piece of gum streched in the shape of a spider. It stands very " "still in its gum web." msgstr "" +"Es un pedazo gigante de chicle estirado en forma de araña. Se para muy " +"quieta en su telaraña de chicle." #: lang/json/MONSTER_from_json.py msgid "caffeinated gum spider" msgid_plural "caffeinated gum spiders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "araña de chicle con cafeína" +msgstr[1] "arañas de chicle con cafeína" #. ~ Description for {'str': 'caffeinated gum spider'} #: lang/json/MONSTER_from_json.py @@ -84389,12 +85414,15 @@ msgid "" "A giant piece of gum streched in the shape of a spider. It moves quickly " "and aggressively as if under the effect of some stimulant." msgstr "" +"Es un pedazo gigante de chicle estirado en forma de araña. Se mueve " +"velozmente y de manera agresiva como si estuviera bajo el efecto de un " +"estimulante." #: lang/json/MONSTER_from_json.py msgid "W11B10" msgid_plural "W11B10s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "W11B10" +msgstr[1] "W11B10" #. ~ Description for W11B10 #: lang/json/MONSTER_from_json.py @@ -84409,8 +85437,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "W11B10B4" msgid_plural "W11B10B4s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "W11B10B4" +msgstr[1] "W11B10B4" #. ~ Description for W11B10B4 #: lang/json/MONSTER_from_json.py @@ -84426,8 +85454,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "W12B10" msgid_plural "W12B10s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "W12B10" +msgstr[1] "W12B10" #. ~ Description for W12B10 #: lang/json/MONSTER_from_json.py @@ -84443,8 +85471,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "W11H10" msgid_plural "W11H10s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "W11H10" +msgstr[1] "W11H10" #. ~ Description for W11H10 #: lang/json/MONSTER_from_json.py @@ -84460,8 +85488,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "W12N10" msgid_plural "W12N10s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "W12N10" +msgstr[1] "W12N10" #. ~ Description for W12N10 #: lang/json/MONSTER_from_json.py @@ -84475,909 +85503,25 @@ msgstr "" "tradicionales." #: lang/json/MONSTER_from_json.py -msgid "craftbuddy" -msgid_plural "craftbuddies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'craftbuddy', 'str_pl': 'craftbuddies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A mobile crafting station used by workers in mines, on oil rigs, and in " -"other remote locales. In it's active state, the craftbuddy merely follows " -"its user. In it's deactivated state, the craft buddy is useable as a " -"toolbench and multipurpose workstation." -msgstr "" -"Es un puesto de fabricación móvil utilizado por los trabajadores de las " -"minas, plataformas petrolíferas y algunos otros lugares remotos. Cuando está" -" activado, el fabricarturito sigue a su usuario. Cuando está desactivado, " -"funciona como una mesa de trabajo y estación multipropósito." - -#: lang/json/MONSTER_from_json.py -msgid "automated armor" -msgid_plural "automated armors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for automated armor -#: lang/json/MONSTER_from_json.py -msgid "" -"A suit of power armor temporarily controlled by an attached AI-core. " -"Originally intended as a way to retrieve dead or wounded operators from " -"combat, it was more commonly used for transporting the suit itself. The AI " -"is limited, and makes a poor combatant." -msgstr "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "light auto armor" -msgid_plural "light auto armors" -msgstr[0] "armadura ligera automática" -msgstr[1] "armaduras ligeras automáticas" - -#: lang/json/MONSTER_from_json.py -msgid "auto armor" -msgid_plural "auto armors" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "heavy auto armor" -msgid_plural "heavy auto armors" -msgstr[0] "armadura pesada automática" -msgstr[1] "armaduras pesadas automáticas" - -#: lang/json/MONSTER_from_json.py -msgid "floating lantern" -msgid_plural "floating lanterns" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating lantern -#: lang/json/MONSTER_from_json.py -msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "Es un dron reconvertido en una lámpara móvil." - -#: lang/json/MONSTER_from_json.py -msgid "distract-o-hack" -msgid_plural "distract-o-hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for distract-o-hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed into a makeshift diversion tactic. Once " -"activated it will light up, produce sound, emit sparks, and move towards " -"hostile targets. Although fragile, the distract-o-hack's erratic movements " -"make it difficult to hit." -msgstr "" -"Es un dron reconvertido para cumplir funciones distractivas. Una vez que " -"está activado prenderá luces, producirá un sonido, emitirá chispas y se " -"moverá hacia el enemigo. Aunque es frágil, el movimiento errático del " -"distract-o-hack lo hace difícil de golpear." - -#: lang/json/MONSTER_from_json.py -msgid "arsonhack" -msgid_plural "arsonhacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for arsonhack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread flame and cause property damage. It's" -" almost as dangerous to its user as it is to the surroundings. The " -"arsonhack cannot be recovered once activated. Only a reckless madman would " -"dare to build this." -msgstr "" -"Es un dron modificado para lanzar llamas y causar daño. Es casi tan " -"peligroso para su dueño como para lo que lo rodea. El incendi-hack no puede " -"ser recuperado una vez que está activado. Solo un loco temerario se animaría" -" a construir esto." - -#: lang/json/MONSTER_from_json.py -msgid "spore hack" -msgid_plural "spore hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for spore hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread alien contaminants. It periodically " -"releases a puff of fungal spores. Who in their right mind would build such " -"a thing?" -msgstr "" -"Es un dron reconvertido para esparcir contaminantes alienígenas. Libera " -"periódicamente una nube de esporas fúngicas. ¿Quién en su sano juicio " -"querría construir esto?" - -#: lang/json/MONSTER_from_json.py -msgid "watercannon turret" -msgid_plural "watercannon turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for watercannon turret -#: lang/json/MONSTER_from_json.py -msgid "" -"A turret equipped with a jury-rigged watercannon in place of a proper " -"firearm. It's highly ineffective but the ammo is cheap." -msgstr "" -"Es una torreta equipada con un cañón de agua medio atado con alambre, en " -"lugar de un arma de en serio. Es bastante inefectiva pero tiene munición " -"barata." - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and tresspassers." -msgstr "" -"Es un pequeño robot aéreo equipado con un conjunto de cámaras y armado con " -"un flash destellante. Ya no forma parte de ninguna seguridad ni de la " -"policía, pero continúa cazando criminales e intrusos." - -#: lang/json/MONSTER_from_json.py -msgid "floating heater" -msgid_plural "floating heaters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating heater -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "floating furnace" -msgid_plural "floating furnaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating furnace -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. Warning! " -"Can result in rapid heatstroke!" -msgstr "" -"Es un ojobot arreglado convertido en un calentador flotante. Emite " -"constantemente un aire caliente peligroso para calentar un espacio cerrado. " -"¡Cuidado! ¡Puede provocar un golpe de calor!" - -#: lang/json/MONSTER_from_json.py -msgid "burning eye" -msgid_plural "burning eyes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for burning eye -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon. The lack of recoil allows " -"the hovering robot to aim and fire without penalty. It has decent range and" -" damage, but requires an extended recharge time between shots." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "hazmat bot" -msgid_plural "hazmat bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for hazmat bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A utility robot designed for cleaning up waste material in hazardous " -"conditions." -msgstr "" -"Es un utilitaribot diseñado para limpiar el material de desperdicio en " -"condiciones ambientales peligrosas." - -#: lang/json/MONSTER_from_json.py -msgid "butler-bot" -msgid_plural "butler-bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for butler-bot -#: lang/json/MONSTER_from_json.py -msgid "A luxury model utility robot for domestic use." -msgstr "Es un modelo de lujo de utilitaribot para uso doméstico." - -#: lang/json/MONSTER_from_json.py -msgid "construction robot" -msgid_plural "construction robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for construction robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of construction robot formerly in use by government " -"agencies and private corporations. It is equipped with an integrated " -"welder, flashlight, nailgun, and jackhammer." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "firefighter robot" -msgid_plural "firefighter robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for firefighter robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of fire-fighting robot formerly in use by local fire " -"departments and emergency services. Designed for entering burning buildings" -" and other situations deemed too dangerous for human firefighters." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "blob breeder" -msgid_plural "blob breeders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for blob breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of living blobs. Why on Earth" -" would you build this?" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "slime breeder" -msgid_plural "slime breeders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for slime breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of friendly blobs." -msgstr "" -"Es un utilitaribot recuperado convertido en una incubadora móvil para blobos" -" alienígenas. De manera intermitente, libera un grupo de blobos aliados." - -#: lang/json/MONSTER_from_json.py -msgid "digestron" -msgid_plural "digestrons" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for digestron -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. A useful helper for keeping your front lawn clean of debris…" -" or corpses." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "bee bot" -msgid_plural "bee bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for bee bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers honey combs. It protects the insect " -"colony with a mechanical crossbow mounted to its chassis." -msgstr "" -"Es un utilitaribot recuperado convertido en una colmena ambulante que " -"periódicamente quita y entrega panales. Protege la colonia con una ballesta " -"mecánica montada en su chasis." - -#: lang/json/MONSTER_from_json.py -msgid "medical robot" -msgid_plural "medical robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for medical robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A free roaming medical robot capable of administering powerful anesthetics " -"and performing complex surgical operations, usually in that order. Faulty " -"bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." -msgstr "" -"Es un robot médico capaz de administrar poderosas anestesias y de hacer " -"operaciones quirúrgicas complejas, usualmente en ese orden. Los programas " -"defectuosos de bio-diagnosis llevaron a varias demandas legales antes del " -"Cataclismo." - -#: lang/json/MONSTER_from_json.py -msgid "assassination robot" -msgid_plural "assassination robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for assassination robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. Its surgical " -"tools have been replaced with a fearsome set of blades, and its hypodermic " -"needle now delivers powerful toxins." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "elixirator" -msgid_plural "elixirators" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for elixirator -#: lang/json/MONSTER_from_json.py -msgid "" -"This doesn't work yet. Don't build it… A salvaged medibot with its internal" -" pharma-fabricators repurposed to produce mutagen." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "party bot" -msgid_plural "party bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for party bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Why on Earth would you build this crazy " -"thing?" -msgstr "" -"Es un medicobot reciclado, lleno de marihuana, cubierto en luces " -"multicolores y programado para bailar. ¿Por qué carajo alguien querría " -"construir esta locura?" - -#: lang/json/MONSTER_from_json.py -msgid "rat snatcher" -msgid_plural "rat snatchers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for rat snatcher -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It's faster than " -"the original model but far less sturdy." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "grab-bot" -msgid_plural "grab-bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for grab-bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " -"meant to work in a pack." -msgstr "" -"Es un arañabot reconvertido para agarrar e inmovilizar a los enemigos. Está " -"pensado para trabajar en manada." - -#: lang/json/MONSTER_from_json.py -msgid "pest hunter" -msgid_plural "pest hunters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for pest hunter -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's " -"small size precludes rapid fire, due to recoil, and requires the use of " -"lightweight caseless ammo." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "insane cyborg" -msgid_plural "insane cyborgs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for insane cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A robot body with the head of a human. All kinds of electronic wires and " -"devices are implanted in its head. This cyborg moves erratically and has a " -"confused and deranged look in its eyes." -msgstr "" -"Es un cuerpo robótico con cabeza humana. Toda clase de cables y aparatos " -"electrónicos han sido implantados en su cabeza. Este androide se mueve de " -"manera errática y tiene una mirada de confusión y trastorno." - -#: lang/json/MONSTER_from_json.py -msgid "necrotic cyborg" -msgid_plural "necrotic cyborgs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for necrotic cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Why on Earth " -"would anyone build such an abomination?" -msgstr "" -"Es un androide reconvertido con la cabeza de un zombi nigromante. La cabeza " -"retiene algo de su habilidad para revivir zombis. ¿Por qué carajo alguien " -"querría construir semejante abominación?" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod and an integrated shotgun." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "military robot" -msgid_plural "military robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5.56mm firearm." -msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma 5.56mm integrada." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military training robot still operating due to its internal power core. " -"This one is armed with a high power paintball gun and a foam baton." -msgstr "" -"Es un robot militar de entrenamiento todavía activo debido a su fuente " -"interna de energía. Este está armado con una poderosa arma de paintball y un" -" bastón de gomaespuma." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 7.62mm firearm." -msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma 7.62mm integrada." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 50 caliber firearm." -msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma calibre 50 integrada." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 8mm firearm." -msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma 8mm integrada." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5x50mm flechette gun." -msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma 5.50mm de dardos " -"perforantes integrada." - -#: lang/json/MONSTER_from_json.py -msgid "grenadier robot" -msgid_plural "grenadier robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for grenadier robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 40mm grenade launcher." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "military flame robot" -msgid_plural "military flame robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for military flame robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated flamethrower." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "advanced robot" -msgid_plural "advanced robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for advanced robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is armed with a powerful laser-emitter." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "laser-emitting robot" -msgid_plural "laser-emitting robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for laser-emitting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful laser-emitter." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "plasma-ejecting robot" -msgid_plural "plasma-ejecting robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for plasma-ejecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful plasma-ejector." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "railgun robot" -msgid_plural "railgun robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for railgun robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful railgun." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "electro-casting robot" -msgid_plural "electro-casting robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for electro-casting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful electro-caster." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "EMP-projecting robot" -msgid_plural "EMP-projecting robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for EMP-projecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful EMP-projector." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "junkyard cowboy" -msgid_plural "junkyard cowboys" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for junkyard cowboy -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Due to bootleg targeting software, it can only attack nearby targets." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "shortcircuit samurai" -msgid_plural "shortcircuit samurais" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for shortcircuit samurai -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with two electrified blades. The over-" -"taxed power systems result in somewhat sluggish movement and occasional " -"discharges. Keep a safe distance!" -msgstr "" -"Es un robot defensivo reconvertido con dos sierras electrificadas. La " -"exigencia en el sistema de energía lo hace tener un movimiento lento y tener" -" descargas ocasionales. ¡Mantenete alejado!" - -#: lang/json/MONSTER_from_json.py -msgid "slapdash paladin" -msgid_plural "slapdash paladins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for slapdash paladin -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. The burning fuel reserves make the robot noisy and " -"smokey." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "robo-guardian" -msgid_plural "robo-guardians" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for robo-guardian -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Multiple weapons provide a high rate of fire, but jury-rigged sensors limit " -"the effective range and accuracy. It makes for a good close range " -"bodyguard." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "robote deluxe" -msgid_plural "robote deluxe" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'robote deluxe'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style." -msgstr "" -"Es un robot con placas de oro y decorado con diamantes, armado con un par de" -" armas 9mm integradas. Es un robot opulento de lujo, adecuado para aquellos " -"que desean sobrevivir al apocalipsis sin perder el estilo." - -#: lang/json/MONSTER_from_json.py -msgid "robo-protector" -msgid_plural "robo-protectors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for robo-protector -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. The " -"modified firearm is only capable of three round bursts, but range and " -"accuracy are decent. It makes for a solid combat ally." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "robo-defender" -msgid_plural "robo-defenders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for robo-defender -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Improved" -" optics provide nightvision and excellent range, but glitchy targeting " -"software requires an extended pause between shots. It makes for a good long" -" range sniper." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "glittering lady" -msgid_plural "glittering ladies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'glittering lady', 'str_pl': 'glittering ladies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It has two integral lasers and emits a steady pulse of blinding flashes. " -"Due to mismatched focusing lenses, the lasers have limited range." -msgstr "" -"Es un robot avanzado transformado en una baliza luminosa de destrucción. " -"Tiene dos láser integrados y emite un pulso constante de destellos " -"cegadores. Debido a los lentes disparejos de enfoque, los láser tienen un " -"alcance limitado." - -#: lang/json/MONSTER_from_json.py -msgid "bitter spinster" -msgid_plural "bitter spinsters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for bitter spinster -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " -"pipes weaken the robot structurally, making it somewhat fragile." -msgstr "" -"Es un robot militar transformado en un monstruo cáustico. Un fermentador " -"interno de ácido alimenta un escupidor y rociador. La cantidad de tanques y " -"caños debilitan la estructura del robot, haciéndolo bastante frágil." - -#. ~ Description for chicken walker -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a " -"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade " -"launcher, 5.56 anti-personnel gun, and the ability to electrify itself " -"against attackers, it is an effective automated sentry, though production " -"was limited due to a legal dispute." -msgstr "" -"El Northrup ATSV, un robot enorme, fuertemente armado y blindado que camina " -"en un par de piernas con las articulaciones al revés. Armado con un " -"lanzagranadas 40mm anti-vehículo , un arma 5.56 anti-personal, y la " -"habilidad de electrificarse para defenderse de los atacantes. Es un guardia " -"automatizado eficaz, aunque su producción fue limitada debido a una disputa " -"legal." - -#: lang/json/MONSTER_from_json.py -msgid "chainsaw horror" -msgid_plural "chainsaw horrors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for chainsaw horror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"whirring chainsaws. A speaker system has been installed to blast terrifying" -" shrieks of distorted music. No one in their right mind would craft such an" -" awful creature." -msgstr "" -"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " -"calaveras y púas. En lugar de sus armas de largo alcance, tiene un conjunto " -"de motosierras zumbantes. Tiene instalado un sistema de altavoces para " -"emitir unos terroríficos chillidos de música distorsionada. Nadie en su sano" -" juicio fabricaría semejante criatura." - -#: lang/json/MONSTER_from_json.py -msgid "screeching terror" -msgid_plural "screeching terrors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for screeching terror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"piston-driven lances. A speaker system has been installed to blast " -"terrifying shrieks of distorted music. No one in their right mind would " -"craft such a hellish beast." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "hooked nightmare" -msgid_plural "hooked nightmares" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for hooked nightmare -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"spinning chains terminating in bloody hooks. A speaker system has been " -"installed to blast terrifying shrieks of distorted music. No one in their " -"right mind would craft such a twisted abomination." -msgstr "" - -#. ~ Description for Beagle Mini-Tank UGV -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an " -"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" -"infantry weapons, it's designed for high-risk urban fighting." -msgstr "" -"El Northrup Beagle es un UGV (vehículo terrestre no tripulado) del tamaño de" -" una heladera. Tiene un lanzamisiles anti-tanque, una lanzagranadas 40mm y " -"varias armas anti-infantería. Está diseñado para combate urbano de alto " -"riesgo." - -#: lang/json/MONSTER_from_json.py -msgid "fist king" -msgid_plural "fist kings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for fist king -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Although lacking" -" ranged weapons, its armor and strength make it a match for the even the " -"biggest monsters. Only a madman would dare build such a reckless behemoth." -msgstr "" -"Es un tanquebot modificado con un par de poderosos martillos neumáticos que " -"utiliza para aplastar todo lo que se cruce, incluso edificios. Aunque no " -"tiene las armas de distancias, su armadura y fuerza lo hacen un problema " -"incluso para los monstruos más grandes. Solo un loco se atrevería a " -"construir semejante mastodonte temerario." - -#: lang/json/MONSTER_from_json.py -msgid "atomic sultan" -msgid_plural "atomic sultans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for atomic sultan -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with burning hot man-crushers. Although lacking" -" ranged weapons, its armor and strength make it a match for even the biggest" -" foes. Multiple fusion cores give the robot ample power but also cause " -"radioactive gas leaks. Only a lunatic would dare build such a reckless " -"monster." -msgstr "" -"Es un tanquebot modificado con aplastahumanos llameantes. Aunque no tiene " -"armas de distancia, su armadura y fuerza lo hacen un problema para los " -"enemigos más grandes. Varios núcleos de fusión le dan al robot una energía " -"abundante, pero también ocasiona escapes de gas radiactivo. Solo un lunático" -" se atrevería a construir semejante monstruo temerario." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gelatinous mass" -msgid_plural "gelatinous mass" -msgstr[0] "" -msgstr[1] "" +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" +msgstr[0] "momia de papel higiénico" +msgstr[1] "momias de papel higiénico" -#. ~ Description for {'str_sp': 'gelatinous mass'} -#. ~ Description for {'str_sp': 'gray mass'} -#. ~ Description for {'str_sp': 'gelatinous mass'} +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper +#. mummies'} #: lang/json/MONSTER_from_json.py msgid "" -"An escaping noisy blob, catch it before it brings in every zombie for miles!" +"Vaguely humanoid in shape, layered in something resembling toilet paper." msgstr "" -"Es un ruidoso blobo que se está escapando, ¡atrapalo antes de que atraiga a " -"todos los zombis de la zona!" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gray mass" -msgid_plural "gray mass" -msgstr[0] "" -msgstr[1] "" +"Tiene una forma vagamente humanoide, cubierta de capas de algo que parece " +"papel higiénico." #: lang/json/MONSTER_from_json.py msgid "giant scorpion" msgid_plural "giant scorpions" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escorpión gigante" +msgstr[1] "escorpiones gigantes" #. ~ Description for {'str': 'giant scorpion'} #: lang/json/MONSTER_from_json.py @@ -85385,12 +85529,14 @@ msgid "" "A menacing arachnid with a second set of pedipalps, clacking rabidly as an " "engorged stinger looms over its body." msgstr "" +"Es un arácnido amenazante con un segundo grupo de pedipalpos, apretando sus " +"tenazas rabiosamente mientras un abultado aguijón se cierne sobre su cuerpo." #: lang/json/MONSTER_from_json.py msgid "bush elephant" msgid_plural "bush elephants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "elefante africano" +msgstr[1] "elefantes africanos" #. ~ Description for {'str': 'bush elephant'} #: lang/json/MONSTER_from_json.py @@ -85399,12 +85545,15 @@ msgid "" "tusks protruding from its mouth. Elephantry is on the rise since the " "Cataclysm." msgstr "" +"El elefante africano de sabana es un animal terrestre enorme con dos largos " +"colmillos sobresaliendo de su boca. Los elefantes de guerra se han puesto de" +" moda desde el Cataclismo." #: lang/json/MONSTER_from_json.py msgid "hook kangaroo" msgid_plural "hook kangaroos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "canguro gancho" +msgstr[1] "canguros gancho" #. ~ Description for {'str': 'hook kangaroo'} #: lang/json/MONSTER_from_json.py @@ -85413,12 +85562,15 @@ msgid "" "orifices. The most unnerving is its forearms have reformed into a raptorial" " shape, like that of a praying mantis." msgstr "" +"Es un canguro grotesco y deformado con una viscosidad negra saliendo de sus " +"orificios. La parte más perturbadora son sus brazos reformados de una manera" +" raptorial, como los de una mantis religiosa." #: lang/json/MONSTER_from_json.py msgid "fungal elephant" msgid_plural "fungal elephants" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "elefante fúngico" +msgstr[1] "elefantes fúngicos" #. ~ Description for {'str': 'fungal elephant'} #: lang/json/MONSTER_from_json.py @@ -85426,12 +85578,15 @@ msgid "" "A horrifying image with tendrils seeping out of many oozing wounds, this " "elephant's form appears more eldritch than animal." msgstr "" +"Es una imagen horrorosa con zarcillos asomando de las múltiples heridas " +"purulentas. La forma de este elefante parece más algo sobrenatural que " +"animal." #: lang/json/MONSTER_from_json.py msgid "zandcrawler" msgid_plural "zandcrawlers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arrastrador zombi" +msgstr[1] "arrastradores zombis" #. ~ Description for {'str': 'zandcrawler'} #: lang/json/MONSTER_from_json.py @@ -85439,12 +85594,14 @@ msgid "" "A calloused and misshapened form that seems to have adapted to the harsh, " "dry environment." msgstr "" +"Es una forma llena de callos y deforme que parece haberse adaptado al " +"ambiente seco y duro." #: lang/json/MONSTER_from_json.py msgid "Gila monster" msgid_plural "Gila monsters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "monstruo Gila" +msgstr[1] "monstruos Gila" #. ~ Description for {'str': 'Gila monster'} #: lang/json/MONSTER_from_json.py @@ -85452,6 +85609,8 @@ msgid "" "A reptile with aposematic coloration of black and orange that is renowned " "for an extremely painful venom when it bites." msgstr "" +"Es un reptil con coloración aposemática negra y naranja, que es reconocido " +"por un veneno extremadamente doloroso cuando muerde." #: lang/json/PET_ARMOR_from_json.py msgid "Kevlar dog harness" @@ -85467,12 +85626,15 @@ msgid "" " local law enforcement, that protects from shoulders to abdomen. You could " "put this on a friendly dog." msgstr "" +"Es un arnés azul antibalas, diseñado para ser usado por los caninos al " +"servicio de las fuerzas de la ley, que protege desde los hombros hasta el " +"abdomen. Podés ponerle esto a un perro amigo." #: lang/json/PET_ARMOR_from_json.py msgid "biosilicified chitin dog mesh harness" msgid_plural "biosilicified chitin dog mesh harnesses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arnés de quitina biosilicificada para perro" +msgstr[1] "arneses de quitina biosilicificada para perro" #. ~ Description for {'str': 'biosilicified chitin dog mesh harness', #. 'str_pl': 'biosilicified chitin dog mesh harnesses'} @@ -85481,12 +85643,14 @@ msgid "" "A makeshift harness of biosilicified chitin fitted to a thin mesh protecting" " the neck to flank of canines. You could put this on a friendly dog." msgstr "" +"Es un arnés improvisado de quitina biosilicificada con una malla fina para " +"proteger el cuello de los caninos. Se lo podés poner a un perro amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "chitin dog mesh harness" msgid_plural "chitin dog mesh harnesses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arnés de quitina para perro" +msgstr[1] "arneses de quitina para perro" #. ~ Description for {'str': 'chitin dog mesh harness', 'str_pl': 'chitin dog #. mesh harnesses'} @@ -85495,24 +85659,28 @@ msgid "" "A makeshift harness of chitin fitted to a thin mesh protecting the neck to " "flank of canines. You could put this on a friendly dog." msgstr "" +"Es un arnés improvisado de quitina con una malla fina para proteger el " +"cuello de los caninos. Se lo podés poner a un perro amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "chainmail dog coat" msgid_plural "chainmail dog coats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cobertor de cota de malla para perro" +msgstr[1] "cobertores de cota de malla para perro" #. ~ Description for {'str': 'chainmail dog coat'} #: lang/json/PET_ARMOR_from_json.py msgid "" "Protecteth yon hund fram ful daemons! You could put this on a friendly dog." msgstr "" +"¡Protege a tu sabueso de los repugnantes demonios! Podés ponerle esto a un " +"perro amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "leather dog harness" msgid_plural "leather dog harnesses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arnés de cuero para perro" +msgstr[1] "arneses de cuero para perro" #. ~ Description for {'str': 'leather dog harness', 'str_pl': 'leather dog #. harnesses'} @@ -85521,12 +85689,15 @@ msgid "" "A neck to hip harness made from leather that can be attached to a canine for" " protection. You could put this on a friendly dog." msgstr "" +"Es un arnés hecho de cuero que cubre desde el cuello hasta la cadera, y " +"puede ser puesto en un canino como protección. Se lo podés poner a un perro " +"amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "leather dog harness with bones" msgid_plural "leather dog harnesses with bones" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arnés de cuero con hueso para perro" +msgstr[1] "arneses de cuero con hueso para perro" #. ~ Description for {'str': 'leather dog harness with bones', 'str_pl': #. 'leather dog harnesses with bones'} @@ -85536,12 +85707,15 @@ msgid "" "apocalyptic style, even with a skull bone headpiece! You could put this on " "a friendly dog." msgstr "" +"Este arnés de cuero para perro está decorado con huesos para darle un " +"verdadero estilo postapocalíptico, ¡incluye casquito hecho con un cráneo! " +"Podés ponerle esto a un perro amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "rubber dog rainsuit" msgid_plural "rubber dog rainsuits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "impermeable para perro" +msgstr[1] "impermeables para perro" #. ~ Description for {'str': 'rubber dog rainsuit'} #: lang/json/PET_ARMOR_from_json.py @@ -85549,12 +85723,15 @@ msgid "" "A thin plastic covering adapted for dogs to protect from acid rain and other" " caustic sources. You could put this on a friendly dog." msgstr "" +"Es una fina cubierta plástica adaptada para perros, para protegerlos de la " +"lluvia ácida y otras cosas cáusticas. Se lo podés poner a un perro " +"amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "superalloy tactical dog outfit" msgid_plural "superalloy tactical dog outfits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "traje táctico de superaleación para perro" +msgstr[1] "trajes tácticos de superaleación para perro" #. ~ Description for {'str': 'superalloy tactical dog outfit'} #: lang/json/PET_ARMOR_from_json.py @@ -85563,18 +85740,21 @@ msgid "" "working dogs that covers from the dewlap to the croup, down to the elbows. " "You could put this on a friendly dog." msgstr "" +"Es una fina malla entretejida con placas de superaleación, con bolsas para " +"perros militares y que cubre desde la papada hasta las anginas, y hasta los " +"codos. Podés ponerle esto a un perro amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "horse armor" msgid_plural "horse armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "armadura para caballo" +msgstr[1] "armaduras para caballo" #: lang/json/PET_ARMOR_from_json.py msgid "Kevlar-lined horse peto" msgid_plural "Kevlar-lined horse petos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "peto forrado en Kevlar para caballo" +msgstr[1] "petos forrados en Kevlar para caballo" #. ~ Description for {'str': 'Kevlar-lined horse peto'} #: lang/json/PET_ARMOR_from_json.py @@ -85583,12 +85763,15 @@ msgid "" "originally used as protection in bullfighting. You could put this on a " "friendly horse." msgstr "" +"Es una armadura pesada similar a una manta de tela, cuero y forrado en " +"Kevlar, originalmente usado como protección en corridas de toros. Podés " +"ponerle esto a caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "biosilicified chitin horse armor" msgid_plural "biosilicified chitin horse armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "armadura de quitina biosilicificada para caballo" +msgstr[1] "armaduras de quitina biosilicificada para caballo" #. ~ Description for {'str': 'biosilicified chitin horse armor'} #: lang/json/PET_ARMOR_from_json.py @@ -85597,12 +85780,15 @@ msgid "" "biosilicified chitin fitted to a thin mesh. You could put this on a " "friendly horse." msgstr "" +"Es un conjunto de cuello, pechera y grupera hechos de quitina " +"biosilicificada con una malla fina. Podés ponerle esto a un caballo " +"amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "chitin horse armor" msgid_plural "chitin horse armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "armadura de quitina para caballo" +msgstr[1] "armaduras de quitina para caballo" #. ~ Description for {'str': 'chitin horse armor'} #: lang/json/PET_ARMOR_from_json.py @@ -85610,12 +85796,14 @@ msgid "" "A makeshift assembly of criniere, peytral and croupiere made from chitin " "fitted to a thin mesh. You could put this on a friendly horse." msgstr "" +"Es un conjunto de cuello, pechera y grupera hechos de quitina con una malla " +"fina. Podés ponerle esto a un caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "chainmail horse armor" msgid_plural "chainmail horse armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "armadura de cota de malla para caballo" +msgstr[1] "armaduras de cota de malla para caballo" #. ~ Description for {'str': 'chainmail horse armor'} #: lang/json/PET_ARMOR_from_json.py @@ -85623,12 +85811,14 @@ msgid "" "A heavy covering of chainmail, suitably made for horses as protection. You " "could put this on a friendly horse." msgstr "" +"Es una cobertura pesada de cota de malla, adecuada como protección para " +"caballos. Podés ponerle esto a un caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "boiled leather horse barding with caprison" msgid_plural "boiled leather horse bardings with caprison" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "barda y gualdrapa de cuero hervido para caballo" +msgstr[1] "bardas y gualdrapas de cuero hervido para caballo" #. ~ Description for {'str': 'boiled leather horse barding with caprison', #. 'str_pl': 'boiled leather horse bardings with caprison'} @@ -85638,6 +85828,9 @@ msgid "" "undercovering. This caparison is depicting a battle between a monstrous " "dragon and regal griffin. You could put this on a friendly horse." msgstr "" +"Es una barda completa para caballo que consiste de cuero hervido y tela por " +"dentro. La gualdrapa tiene la imagen de una batalla entre un dragón " +"monstruoso y un grifo real. Podés ponerle esto a un caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "" @@ -85645,6 +85838,9 @@ msgid "" "undercovering. This caparison is depicting a red dragon breathing fire on " "cities. You could put this on a friendly horse." msgstr "" +"Es una barda completa para caballo que consiste de cuero hervido y tela por " +"dentro. La gualdrapa tiene la imagen de un dragón rojo escupiendo fuego " +"sobre ciudades. Podés ponerle esto a un caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "" @@ -85653,6 +85849,10 @@ msgid "" "forelegs outstretched in a menacing manner. You could put this on a " "friendly horse." msgstr "" +"Es una barda completa para caballo que consiste de cuero hervido y tela por " +"dentro. La gualdrapa tiene la imagen de un oso parado en sus patas traseras " +"y con las delanteras estiradas de manera amenazante. Podés ponerle esto a un" +" caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "" @@ -85661,6 +85861,10 @@ msgid "" "vegetables with a very large orange featured in the foreground. You could " "put this on a friendly horse." msgstr "" +"Es una barda completa para caballo que consiste de cuero hervido y tela por " +"dentro. La gualdrapa tiene la imagen de una variedad de frutas y verduras " +"con una naranja muy grande en primer plano. Podés ponerle esto a un caballo " +"amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "" @@ -85668,6 +85872,9 @@ msgid "" "undercovering. This caparison is depicting a massive vulture perched on a " "mountain. You could put this on a friendly horse." msgstr "" +"Es una barda completa para caballo que consiste de cuero hervido y tela por " +"dentro. La gualdrapa tiene la imagen de un enorme buitre posado en una " +"montaña. Podés ponerle esto a un caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "" @@ -85675,6 +85882,9 @@ msgid "" "undercovering. This caparison is depicting the mythical Erymanthian boar in" " various artistic forms. You could put this on a friendly horse." msgstr "" +"Es una barda completa para caballo que consiste de cuero hervido y tela por " +"dentro. La gualdrapa tiene la imagen del mítico Jabalí de Erimanto, en " +"diversas formas artísticas. Podés ponerle esto a un caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "" @@ -85683,6 +85893,10 @@ msgid "" "with a tag line of \"From down under to your home, we play all the roles " "from start to finish!\". You could put this on a friendly horse." msgstr "" +"Es una barda completa para caballo que consiste de cuero hervido y tela por " +"dentro. La gualdrapa parece estar esponsoreada por Construcciones Rycon, y " +"tiene el texto \"¡Desde debajo de tu hogar, jugamos todos los roles desde " +"principio a fin!\". Podés ponerle esto a un caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "" @@ -85692,12 +85906,17 @@ msgid "" "design, we have the magic touch for your problems!\". You could put this on" " a friendly horse." msgstr "" +"Es una barda completa para caballo que consiste de cuero hervido y tela por " +"dentro. La gualdrapa parece estar esponsoreada por Core Generator Tech, y " +"tiene el texto \"¡Brindando soluciones energéticas desde lo culinario hasta " +"el diseño gráfico, tenemos el toque mágico para tus problemas!\". Podés " +"ponerle esto a un caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "boiled leather horse barding with bones" msgid_plural "boiled leather horse bardings with bones" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "barda de cuero hervido con hueso para caballo" +msgstr[1] "bardas de cuero hervido con hueso para caballo" #. ~ Description for {'str': 'boiled leather horse barding with bones', #. 'str_pl': 'boiled leather horse bardings with bones'} @@ -85706,12 +85925,15 @@ msgid "" "Decorative bones affixed to leather horse barding to invoke fear in bandits " "and raiders and traders all! You could put this on a friendly horse." msgstr "" +"Esta barda de cuero para caballo ha sido decorada con hueso para causar " +"miedo en los bandidos y saqueadores y comerciantes. Podés ponerle esto a un " +"caballo amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "horse rain sheet" msgid_plural "horse rain sheets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "manta impermeable para caballo" +msgstr[1] "mantas impermeables para caballo" #. ~ Description for {'str': 'horse rain sheet'} #: lang/json/PET_ARMOR_from_json.py @@ -85719,12 +85941,15 @@ msgid "" "A thin plastic covering adapted for horses to protect from acid rain and " "other caustic sources. You could put this on a friendly horse." msgstr "" +"Es una fina cubierta plástica adaptada para caballos, para protegerlos de la" +" lluvia ácida y otras cosas cáusticas. Se lo podés poner a un caballo " +"amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "demon chitin dog mesh harness" msgid_plural "demon chitin dog mesh harnesses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arnés de quitina demoníaca para perro" +msgstr[1] "arneses de quitina demoníaca para perro" #. ~ Description for {'str': 'demon chitin dog mesh harness', 'str_pl': 'demon #. chitin dog mesh harnesses'} @@ -85733,12 +85958,14 @@ msgid "" "A makeshift harness of demon chitin fitted to a thin mesh protecting the " "neck to flank of canines. You could put this on a friendly dog." msgstr "" +"Es un arnés improvisado de quitina demoníaca con una malla fina para " +"proteger el cuello de los caninos. Se lo podés poner a un perro amaestrado." #: lang/json/PET_ARMOR_from_json.py msgid "demon chitin horse armor" msgid_plural "demon chitin horse armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "armadura de quitina demoníaca para caballo" +msgstr[1] "armaduras de quitina demoníaca para caballo" #. ~ Description for {'str': 'demon chitin horse armor'} #: lang/json/PET_ARMOR_from_json.py @@ -85746,42 +85973,60 @@ msgid "" "A makeshift assembly of criniere, peytral and croupiere made from demon " "chitin fitted to a thin mesh. You could put this on a friendly horse." msgstr "" +"Es un conjunto de cuello, pechera y grupera hechos de quitina demoníaca con " +"una malla fina. Podés ponerle esto a un caballo amaestrado." + +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "armadura para meower" +msgstr[1] "armaduras para meower" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "" +"Es un arnés de kevlar elegante y liviano para gato, con una capucha y " +"pechera de protección. Incluye un bolsillo muy pequeño de velcro en la parte" +" de atrás." #: lang/json/SPECIES_from_json.py msgid "a mammal" -msgstr "" +msgstr "un mamífero" #: lang/json/SPECIES_from_json.py msgid "an amphibian" -msgstr "" +msgstr "un anfibio" #: lang/json/SPECIES_from_json.py msgid "a bird" -msgstr "" +msgstr "un pájaro" #: lang/json/SPECIES_from_json.py msgid "a reptile" -msgstr "" +msgstr "un reptil" #: lang/json/SPECIES_from_json.py msgid "a fish" -msgstr "" +msgstr "un pez" #: lang/json/SPECIES_from_json.py msgid "a mutant" -msgstr "" +msgstr "un mutante" #: lang/json/SPECIES_from_json.py msgid "a nether creature" -msgstr "" +msgstr "una criatura del nether" #: lang/json/SPECIES_from_json.py msgid "a blob" -msgstr "" +msgstr "un blobo" #: lang/json/SPECIES_from_json.py msgid "plop." -msgstr "" +msgstr "plof" #: lang/json/SPECIES_from_json.py msgid "a fungus" @@ -85789,7 +86034,7 @@ msgstr "un hongo" #: lang/json/SPECIES_from_json.py msgid "a leech plant" -msgstr "" +msgstr "una planta chupasangre" #: lang/json/SPECIES_from_json.py msgid "an insect" @@ -85797,23 +86042,23 @@ msgstr "un insecto" #: lang/json/SPECIES_from_json.py msgid "a spider" -msgstr "" +msgstr "una araña" #: lang/json/SPECIES_from_json.py msgid "a plant" -msgstr "" +msgstr "una planta" #: lang/json/SPECIES_from_json.py msgid "a mollusk" -msgstr "" +msgstr "un molusco" #: lang/json/SPECIES_from_json.py msgid "a worm" -msgstr "" +msgstr "un gusano" #: lang/json/SPECIES_from_json.py msgid "rustle." -msgstr "" +msgstr "un crujido" #: lang/json/SPECIES_from_json.py msgid "a zombie" @@ -85821,19 +86066,19 @@ msgstr "un zombi" #: lang/json/SPECIES_from_json.py msgid "shuffling." -msgstr "" +msgstr "algo arrastrándose" #: lang/json/SPECIES_from_json.py msgid "a robot" -msgstr "" +msgstr "un robot" #: lang/json/SPECIES_from_json.py msgid "mechanical whirring." -msgstr "" +msgstr "un chirrido mecánico" #: lang/json/SPECIES_from_json.py msgid "a horror" -msgstr "" +msgstr "un horror" #: lang/json/SPECIES_from_json.py msgid "an aberration" @@ -85841,72 +86086,76 @@ msgstr "una aberración" #: lang/json/SPECIES_from_json.py msgid "a human" -msgstr "" +msgstr "un humano" + +#: lang/json/SPECIES_from_json.py +msgid "an intelligent animal created by man before the Cataclysm" +msgstr "un animal inteligente creado por el hombre antes del Cataclismo" #: lang/json/SPECIES_from_json.py msgid "an alien" -msgstr "" +msgstr "un alienígena" #: lang/json/SPECIES_from_json.py msgid "an alien animal" -msgstr "" +msgstr "un animal alienígena" #: lang/json/SPECIES_from_json.py msgid "a fusion of flesh and mineral" -msgstr "" +msgstr "una fusión de carne y mineral" #: lang/json/SPECIES_from_json.py msgid "an alien combat mutant" -msgstr "" +msgstr "un mutante alienígena de combate" #: lang/json/SPECIES_from_json.py msgid "the scrabbling of something unearthly." -msgstr "" +msgstr "el rascado de algo sobrenatural" #: lang/json/SPECIES_from_json.py msgid "an alien combat mutant that drags itself on the ground" -msgstr "" +msgstr "un mutante alienígena de combate que se arrastra por el suelo" #: lang/json/SPECIES_from_json.py msgid "the sound of metal and flesh scraping against the ground." -msgstr "" +msgstr "el sonido del metal y la carne rasguñando el suelo." #: lang/json/SPECIES_from_json.py msgid "a spiderant" -msgstr "" +msgstr "una hormigaraña" #: lang/json/SPECIES_from_json.py msgid "clicking." -msgstr "" +msgstr "clicking" #: lang/json/SPECIES_from_json.py msgid "shlop." -msgstr "" +msgstr "shlop" #: lang/json/SPECIES_from_json.py msgid "pop." -msgstr "" +msgstr "pop" #: lang/json/SPECIES_from_json.py msgid "tac." -msgstr "" +msgstr "tac" #: lang/json/SPECIES_from_json.py msgid "pat." -msgstr "" +msgstr "pat" #: lang/json/SPECIES_from_json.py msgid "shlip." -msgstr "" +msgstr "shlip" #: lang/json/SPELL_from_json.py msgid "Artifact Adrenaline" -msgstr "" +msgstr "Artefacto Adrenalina" #. ~ Description for {'str': 'Artifact Adrenaline'} #: lang/json/SPELL_from_json.py msgid "Causes a surge of adrenaline to flow throughout your body." -msgstr "" +msgstr "Provoca que un aluvión de adrenalina fluya por tu cuerpo." #. ~ Message for SPELL '{'str': 'Artifact Adrenaline'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -85915,12 +86164,12 @@ msgstr "¡Estás lleno de energía rugiente!" #: lang/json/SPELL_from_json.py msgid "Artifact Blood" -msgstr "" +msgstr "Artefacto Sangre" #. ~ Description for {'str': 'Artifact Blood'} #: lang/json/SPELL_from_json.py msgid "Causes blood to leak from nearby terrain." -msgstr "" +msgstr "Provoca que brote sangre del terreno cercano." #. ~ Message for SPELL '{'str': 'Artifact Blood'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -85929,12 +86178,12 @@ msgstr "Hay sangre saliendo del suelo y de las paredes." #: lang/json/SPELL_from_json.py msgid "Artifact Heal" -msgstr "" +msgstr "Artefacto Curación" #. ~ Description for {'str': 'Artifact Heal'} #: lang/json/SPELL_from_json.py msgid "Will heal injuries all over your body." -msgstr "" +msgstr "Curará las heridas de todo tu cuerpo." #. ~ Message for SPELL '{'str': 'Artifact Heal'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -85943,21 +86192,21 @@ msgstr "Te sentís curado." #: lang/json/SPELL_from_json.py msgid "Artifact Confused" -msgstr "" +msgstr "Artefacto Confusión" #. ~ Description for {'str': 'Artifact Confused'} #: lang/json/SPELL_from_json.py msgid "Causes nearby enemies to become confused." -msgstr "" +msgstr "Provoca confusión en los enemigos cercanos." #: lang/json/SPELL_from_json.py msgid "Artifact Pain" -msgstr "" +msgstr "Artefacto Dolor" #. ~ Description for {'str': 'Artifact Pain'} #: lang/json/SPELL_from_json.py msgid "Owchie that hurts." -msgstr "" +msgstr "Ay, eso duele." #. ~ Message for SPELL '{'str': 'Artifact Pain'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -85966,27 +86215,27 @@ msgstr "¡Te está destrozando el dolor!" #: lang/json/SPELL_from_json.py msgid "Artifact Teleport" -msgstr "" +msgstr "Artefacto Teletransportación" #. ~ Description for {'str': 'Artifact Teleport'} #: lang/json/SPELL_from_json.py msgid "Randomly teleports you a short distance." -msgstr "" +msgstr "Te teletransporta aleatoriamente una corta distancia." #. ~ Message for SPELL '{'str': 'Artifact Teleport'}' #: lang/json/SPELL_from_json.py msgid "You teleport!" -msgstr "" +msgstr "¡Te teletransportás!" #: lang/json/SPELL_from_json.py msgid "Artifact Attention" -msgstr "" +msgstr "Artefacto Atención" #. ~ Description for {'str': 'Artifact Attention'} #: lang/json/SPELL_from_json.py msgid "" "You're not quite sure what you did, but something is watching you for it." -msgstr "" +msgstr "No estás seguro de qué hiciste pero ahora algo te está observando." #. ~ Message for SPELL '{'str': 'Artifact Attention'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -85995,12 +86244,12 @@ msgstr "Sentís como si tu acción haya atraído atención." #: lang/json/SPELL_from_json.py msgid "Artifact Teleglow" -msgstr "" +msgstr "Artefacto Teleresplandor" #. ~ Description for {'str': 'Artifact Teleglow'} #: lang/json/SPELL_from_json.py msgid "DO YOU HEAR THE VOICES TOO?" -msgstr "" +msgstr "¿VOS TAMBIÉN ESCUCHÁS LAS VOCES?" #. ~ Message for SPELL '{'str': 'Artifact Teleglow'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86009,12 +86258,12 @@ msgstr "Te sentís trastornado." #: lang/json/SPELL_from_json.py msgid "Artifact Vomit" -msgstr "" +msgstr "Artefacto Vómito" #. ~ Description for {'str': 'Artifact Vomit'} #: lang/json/SPELL_from_json.py msgid "Causes the caster to vomit." -msgstr "" +msgstr "Causa vómitos." #. ~ Message for SPELL '{'str': 'Artifact Vomit'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86023,12 +86272,12 @@ msgstr "¡Una ola de náusea pasa a través tuyo!" #: lang/json/SPELL_from_json.py msgid "Artifact Shadows" -msgstr "" +msgstr "Artefacto Sombras" #. ~ Description for {'str': 'Artifact Shadows'} #: lang/json/SPELL_from_json.py msgid "Summons shadows" -msgstr "" +msgstr "Conjura sombras" #. ~ Message for SPELL '{'str': 'Artifact Shadows'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86037,12 +86286,12 @@ msgstr "Se forman sombras a tu alrededor." #: lang/json/SPELL_from_json.py msgid "Artifact Stamina Empty" -msgstr "" +msgstr "Artefacto Vaciar Resistencia" #. ~ Description for {'str': 'Artifact Stamina Empty'} #: lang/json/SPELL_from_json.py msgid "does a variable amount of stamina damage" -msgstr "" +msgstr "causa una variable cantidad de daño a la resistencia" #. ~ Message for SPELL '{'str': 'Artifact Stamina Empty'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86051,12 +86300,12 @@ msgstr "Tu cuerpo se siente como gelatina." #: lang/json/SPELL_from_json.py msgid "Artifact Radiation" -msgstr "" +msgstr "Artefacto Radiación" #. ~ Description for {'str': 'Artifact Radiation'} #: lang/json/SPELL_from_json.py msgid "causes radiation" -msgstr "" +msgstr "causa radiación" #. ~ Message for SPELL '{'str': 'Artifact Radiation'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86065,21 +86314,21 @@ msgstr "¡Se emiten gases horribles!" #: lang/json/SPELL_from_json.py msgid "Artifact Hurtall" -msgstr "" +msgstr "Artefacto Dañartodos" #. ~ Description for {'str': 'Artifact Hurtall'} #: lang/json/SPELL_from_json.py msgid "Hurts all monsters within your view distance" -msgstr "" +msgstr "Causa daño a todos los monstruos que veas" #: lang/json/SPELL_from_json.py msgid "Artifact Acidball" -msgstr "" +msgstr "Artefacto Bolácida" #. ~ Description for {'str': 'Artifact Acidball'} #: lang/json/SPELL_from_json.py msgid "fires an acidball" -msgstr "" +msgstr "dispara una bola de ácido" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Pet" @@ -86088,16 +86337,16 @@ msgstr "Mascota" #. ~ Description for {'str': 'Pet'} #: lang/json/SPELL_from_json.py msgid "Makes the target a pet" -msgstr "" +msgstr "Convierte en mascota el objetivo" #: lang/json/SPELL_from_json.py msgid "Artifact Flies Buzz" -msgstr "" +msgstr "Artefacto Zumbido de Moscas" #. ~ Description for {'str': 'Artifact Flies Buzz'} #: lang/json/SPELL_from_json.py msgid "Flies buzz around you" -msgstr "" +msgstr "Las moscas zumban a tu alrededor" #. ~ Message for SPELL '{'str': 'Artifact Flies Buzz'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86106,12 +86355,12 @@ msgstr "Hay moscas zumbando alrededor tuyo." #: lang/json/SPELL_from_json.py msgid "Artifact Summon Flies" -msgstr "" +msgstr "Artefacto Conjurar Moscas" #. ~ Description for {'str': 'Artifact Summon Flies'} #: lang/json/SPELL_from_json.py msgid "Summons some flies" -msgstr "" +msgstr "Conjura algunas moscas" #. ~ Message for SPELL '{'str': 'Artifact Summon Flies'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86120,7 +86369,7 @@ msgstr "¡Aparecen unas moscas gigantes!" #: lang/json/SPELL_from_json.py msgid "Artifact Summon Bees" -msgstr "" +msgstr "Artefacto Conjurar Abejas" #. ~ Description for {'str': 'Artifact Summon Bees'} #. ~ Message for SPELL '{'str': 'Artifact Summon Bees'}' @@ -86130,12 +86379,12 @@ msgstr "¡Aparecen unas abejas gigantes!" #: lang/json/SPELL_from_json.py msgid "Artifact Summon Wasps" -msgstr "" +msgstr "Artefacto Conjurar Avispas" #. ~ Description for {'str': 'Artifact Summon Wasps'} #: lang/json/SPELL_from_json.py msgid "Summons some wasps" -msgstr "" +msgstr "Conjura unas avispas" #. ~ Message for SPELL '{'str': 'Artifact Summon Wasps'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86144,54 +86393,54 @@ msgstr "¡Aparecen unas avispas gigantes!" #: lang/json/SPELL_from_json.py msgid "Artifact Bugs" -msgstr "" +msgstr "Artefacto Insectos" #. ~ Description for {'str': 'Artifact Bugs'} #: lang/json/SPELL_from_json.py msgid "Summon some bugs." -msgstr "" +msgstr "Conjura unos insectos." #: lang/json/SPELL_from_json.py msgid "Artifact Noise" -msgstr "" +msgstr "Artefacto Ruido" #. ~ Description for {'str': 'Artifact Noise'} #: lang/json/SPELL_from_json.py msgid "Makes a noise at your location" -msgstr "" +msgstr "Hace ruido en tu lugar" #. ~ description for the sound of spell '{'str': 'Artifact Noise'}' #: lang/json/SPELL_from_json.py msgid "a deafening boom" -msgstr "" +msgstr "una explosión ensordecedora" #. ~ Message for SPELL '{'str': 'Artifact Noise'}' #: lang/json/SPELL_from_json.py msgid "You hear a deafening boom from your location!" -msgstr "" +msgstr "¡Sentís una explosión ensordecedora desde tu lugar!" #: lang/json/SPELL_from_json.py msgid "Artifact Light" -msgstr "" +msgstr "Artefacto Luz" #. ~ Description for {'str': 'Artifact Light'} #: lang/json/SPELL_from_json.py msgid "Makes some light." -msgstr "" +msgstr "Crea un poco de luz." #. ~ Message for SPELL '{'str': 'Artifact Light'}' #: lang/json/SPELL_from_json.py msgid "You glow brightly!" -msgstr "" +msgstr "¡Brillás fuertemente!" #: lang/json/SPELL_from_json.py msgid "Artifact Dim" -msgstr "" +msgstr "Artefacto Tenue" #. ~ Description for {'str': 'Artifact Dim'} #: lang/json/SPELL_from_json.py msgid "Darkens the sky." -msgstr "" +msgstr "Oscurece el cielo." #. ~ Message for SPELL '{'str': 'Artifact Dim'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86200,39 +86449,39 @@ msgstr "El cielo empieza a atenuarse." #: lang/json/SPELL_from_json.py msgid "Artifact Dimensional Fatigue" -msgstr "" +msgstr "Artefacto Fatiga Dimensional" #. ~ Description for {'str': 'Artifact Dimensional Fatigue'} #: lang/json/SPELL_from_json.py msgid "Creates some dimensional fatigue at a random point within range" -msgstr "" +msgstr "Crea algo de fatiga dimensional en un lugar aleatorio" #: lang/json/SPELL_from_json.py msgid "Artifact Fireball" -msgstr "" +msgstr "Artefacto Bola de Fuego" #. ~ Description for {'str': 'Artifact Fireball'} #: lang/json/SPELL_from_json.py msgid "Causes an explosion at the target" -msgstr "" +msgstr "Causa una explosión en el objetivo" #: lang/json/SPELL_from_json.py msgid "Artifact Flash" -msgstr "" +msgstr "Artefacto Destello" #. ~ Description for {'str': 'Artifact Flash'} #: lang/json/SPELL_from_json.py msgid "Causes a flashbang at the target" -msgstr "" +msgstr "Crea un destello en el objetivo" #: lang/json/SPELL_from_json.py msgid "Artifact Paralyze" -msgstr "" +msgstr "Artefacto Paralizar" #. ~ Description for {'str': 'Artifact Paralyze'} #: lang/json/SPELL_from_json.py msgid "Paralyzes you for a second or two" -msgstr "" +msgstr "Te paraliza por un segundo o dos" #. ~ Message for SPELL '{'str': 'Artifact Paralyze'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86241,26 +86490,26 @@ msgstr "¡Estás paralizado!" #: lang/json/SPELL_from_json.py msgid "Artifact Map" -msgstr "" +msgstr "Artefacto Mapa" #. ~ Description for {'str': 'Artifact Map'} #: lang/json/SPELL_from_json.py msgid "Reveals an area around you on the overmap" -msgstr "" +msgstr "Revela un área alrededor tuyo en el mapa general" #. ~ Message for SPELL '{'str': 'Artifact Map'}' #: lang/json/SPELL_from_json.py src/iuse.cpp msgid "You have a vision of the surrounding area…" -msgstr "" +msgstr "Tenés una visión del área circundante..." #: lang/json/SPELL_from_json.py msgid "Artifact Firestorm" -msgstr "" +msgstr "Artefacto Tormenta de Fuego" #. ~ Description for {'str': 'Artifact Firestorm'} #: lang/json/SPELL_from_json.py msgid "Calls a firestorm around you" -msgstr "" +msgstr "Crea una tormenta de fuego a tu alrededor" #. ~ Message for SPELL '{'str': 'Artifact Firestorm'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86269,12 +86518,12 @@ msgstr "¡Llueve fuego a tu alrededor!" #: lang/json/SPELL_from_json.py msgid "Artifact Fun" -msgstr "" +msgstr "Artefacto Diversión" #. ~ Description for {'str': 'Artifact Fun'} #: lang/json/SPELL_from_json.py msgid "Makes you feel pretty good" -msgstr "" +msgstr "Te hace sentir bastante bien" #. ~ Message for SPELL '{'str': 'Artifact Fun'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86283,21 +86532,21 @@ msgstr "¡Estás lleno de euforia!" #: lang/json/SPELL_from_json.py msgid "Artifact Mutate" -msgstr "" +msgstr "Artefacto Mutar" #. ~ Description for {'str': 'Artifact Mutate'} #: lang/json/SPELL_from_json.py msgid "Mutates you randomly" -msgstr "" +msgstr "Te hace mutar aleatoriamente" #: lang/json/SPELL_from_json.py msgid "Bolt" -msgstr "" +msgstr "Rayo" #. ~ Description for {'str': 'Bolt'} #: lang/json/SPELL_from_json.py msgid "One of the bolts thrown by AEA_STORM" -msgstr "" +msgstr "Uno de los rayos arrojados por AEA_STORM" #. ~ description for the sound of spell '{'str': 'Bolt'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86306,58 +86555,58 @@ msgstr "¡Ka-BOOM!" #: lang/json/SPELL_from_json.py msgid "Artifact Storm" -msgstr "" +msgstr "Artefacto Tormenta" #. ~ Description for {'str': 'Artifact Storm'} #: lang/json/SPELL_from_json.py msgid "Calls down a storm near you" -msgstr "" +msgstr "Crea una tormenta cerca tuyo" #: lang/json/SPELL_from_json.py msgid "Morale Scream" -msgstr "" +msgstr "Grito Moral" #. ~ Description for {'str': 'Morale Scream'} #: lang/json/SPELL_from_json.py msgid "Morale effect from AEA_SCREAM" -msgstr "" +msgstr "Efecto moral del AEA_SCREAM" #: lang/json/SPELL_from_json.py msgid "Artifact Entrance" -msgstr "" +msgstr "Artefacto Encantamiento" #. ~ Description for {'str': 'Artifact Entrance'} #: lang/json/SPELL_from_json.py msgid "Entrances surrounding monsters" -msgstr "" +msgstr "Encanta a los monstruos cercanos" #: lang/json/SPELL_from_json.py msgid "Artifact Scream" -msgstr "" +msgstr "Artefacto Grito" #. ~ Description for {'str': 'Artifact Scream'} #: lang/json/SPELL_from_json.py msgid "An ethereal scream" -msgstr "" +msgstr "Es un grito etéreo" #. ~ description for the sound of spell '{'str': 'Artifact Scream'}' #: lang/json/SPELL_from_json.py msgid "an ethereal scream" -msgstr "" +msgstr "un grito etéreo" #: lang/json/SPELL_from_json.py msgid "Bash Terrain" -msgstr "" +msgstr "Destrozar Terreno" #. ~ Description for {'str': 'Bash Terrain'} #. ~ Description for {'str': 'Artifact Pulse'} #: lang/json/SPELL_from_json.py msgid "Damages the terrain" -msgstr "" +msgstr "Causa daño al terreno" #: lang/json/SPELL_from_json.py msgid "Artifact Pulse" -msgstr "" +msgstr "Artefacto Pulso" #. ~ description for the sound of spell '{'str': 'Artifact Pulse'}' #: lang/json/SPELL_from_json.py src/iuse.cpp @@ -86366,12 +86615,12 @@ msgstr "¡La tierra tiembla!" #: lang/json/SPELL_from_json.py msgid "EEEEEEVVVVVIIIIILLLL!" -msgstr "" +msgstr "EEEEEEVVVVVIIIIILLLL!" #. ~ Description for EEEEEEVVVVVIIIIILLLL! #: lang/json/SPELL_from_json.py msgid "You debugged in this spell! It makes you evil for 30 minutes." -msgstr "" +msgstr "¡Depurás este hechizo! Te vuelve malvado por 30 minutos." #: lang/json/SPELL_from_json.py lang/json/SPELL_from_json.py #: src/memorial_logger.cpp src/player_display.cpp @@ -86381,7 +86630,7 @@ msgstr "Dolor" #. ~ Description for {'str': 'Pain'} #: lang/json/SPELL_from_json.py msgid "Increases pain" -msgstr "" +msgstr "Incrementa el dolor" #: lang/json/SPELL_from_json.py src/character.cpp src/npctalk.cpp msgid "Tired" @@ -86390,21 +86639,21 @@ msgstr "Cansado/a" #. ~ Description for {'str': 'Tired'} #: lang/json/SPELL_from_json.py msgid "decreases stamina" -msgstr "" +msgstr "disminuye la resistencia" #. ~ Description for {'str': 'Tired'} #: lang/json/SPELL_from_json.py msgid "decreases stamina. Designed for mi-go slaver beam" -msgstr "" +msgstr "disminuye la resistencia. Diseñado para el rayo esclavizador mi-go" #. ~ Description for {'str': 'Pain'} #: lang/json/SPELL_from_json.py msgid "Increases pain. Designed for mi-go slaver beam" -msgstr "" +msgstr "Incrementa el dolo. Diseñado para el rayo esclavizador mi-go" #: lang/json/SPELL_from_json.py msgid "mi-go slaver beam" -msgstr "" +msgstr "rayo esclavizador mi-go" #. ~ Description for {'str': 'mi-go slaver beam'} #: lang/json/SPELL_from_json.py @@ -86412,55 +86661,58 @@ msgid "" "Mi-go slaver beams cause pain, lower stamina, and give a short-lasting daze " "effect. Starts very short range, increases rapidly with level." msgstr "" +"Los rayo esclavizadores mi-go causan daño, bajan la resistencia y causan un " +"efecto de mareo de corta duración. Empieza con muy poco alcance, pero se " +"incrementa velozmente con el nivel" #: lang/json/SPELL_from_json.py msgid "Summon Gangrenous Crawlers" -msgstr "" +msgstr "Conjurar Arrastradores Gangrenosos" #. ~ Description for {'str': 'Summon Gangrenous Crawlers'} #: lang/json/SPELL_from_json.py msgid "Summons 2 permanent gangrenous crawlers." -msgstr "" +msgstr "Conjura 2 arrastradores gangrenosos permanentes." #: lang/json/SPELL_from_json.py msgid "Summon Gangrenous Monsters" -msgstr "" +msgstr "Conjurar Monstruos Gangrenosos" #. ~ Description for {'str': 'Summon Gangrenous Monsters'} #: lang/json/SPELL_from_json.py msgid "Summons 2 permanent gangrenous impalers." -msgstr "" +msgstr "Conjura 2 impaladores gangrenosos permanentes." #: lang/json/SPELL_from_json.py msgid "Blinding spray" -msgstr "" +msgstr "Rayo cegador" #. ~ Description for {'str': 'Blinding spray'} #: lang/json/SPELL_from_json.py msgid "Blinds enemy for a short time." -msgstr "" +msgstr "Ciega al enemigo por un tiempo breve." #: lang/json/SPELL_from_json.py msgid "Holographic Field" -msgstr "" +msgstr "Campo Holográfico" #. ~ Description for {'str': 'Holographic Field'} #: lang/json/SPELL_from_json.py msgid "Creates several short-lived holograms around you." -msgstr "" +msgstr "Crea varios hologramas de corta vida a tu alrededor." #: lang/json/SPELL_from_json.py msgid "Holographic Decoy" -msgstr "" +msgstr "Señuelo Holográfico" #. ~ Description for {'str': 'Holographic Decoy'} #: lang/json/SPELL_from_json.py msgid "Creates a short-lived hologram." -msgstr "" +msgstr "Crea un holograma de corta vida." #: lang/json/SPELL_from_json.py msgid "Holographic Flash" -msgstr "" +msgstr "Destello Holográfico" #. ~ Description for {'str': 'Holographic Flash'} #. ~ Description for {'str': 'Holographic Flash Explosion'} @@ -86469,23 +86721,36 @@ msgid "" "Causes an existing hologram to explode into burning light, harming and " "stunning enemies close to it." msgstr "" +"Causa que un holograma ya existente explote en una luz quemadora, dañando y " +"aturdiendo a los enemigos cercanos." #: lang/json/SPELL_from_json.py msgid "Holographic Flash Explosion" -msgstr "" +msgstr "Explosión de Destello Holográfico" #: lang/json/SPELL_from_json.py msgid "Holographic Transposition" +msgstr "Transposición Holográfica" + +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "Explosión Craneal" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." msgstr "" +"Este falso hechizo ocurre con la activación de la bomba craneal. " +"Probablemente, fatal." #: lang/json/SPELL_from_json.py msgid "psi stun" -msgstr "" +msgstr "aturdimiento psíquico" #. ~ Description for psi stun #: lang/json/SPELL_from_json.py msgid "an attack that stuns the target for a few turns" -msgstr "" +msgstr "un ataque que aturde al objetivo por algunos turnos" #. ~ Message for SPELL 'psi stun' #: lang/json/SPELL_from_json.py @@ -86493,15 +86758,17 @@ msgid "" "%1$s gesticulates at %3$s and a pulse of disorienting psionic energy ripples" " through the air!" msgstr "" +"%1$s gesticula hacia el %3$s ¡y un pulso de energía psiónica desorientadora " +"ondea por el aire!" #: lang/json/SPELL_from_json.py msgid "psi panic" -msgstr "" +msgstr "pánico psíquico" #. ~ Description for psi panic #: lang/json/SPELL_from_json.py msgid "an attack that panics the target for a few turns" -msgstr "" +msgstr "un ataque que causa pánico en el objetivo por algunos turnos" #. ~ Message for SPELL 'psi panic' #: lang/json/SPELL_from_json.py @@ -86509,15 +86776,17 @@ msgid "" "The %1$s gesticulates at %3$s and a pulse of fear-inducing psionic energy " "ripples through the air!" msgstr "" +"El %1$s gesticula hacia el %3$s ¡y un pulso de energía psiónica que causa " +"miedo ondea por el aire!" #: lang/json/SPELL_from_json.py msgid "psi hallucinate" -msgstr "" +msgstr "alucinación psíquica" #. ~ Description for psi hallucinate #: lang/json/SPELL_from_json.py msgid "an attack that causes the target to hallucinate for a few turns" -msgstr "" +msgstr "un ataque que causa que el objetivo alucine por algunos turnos" #. ~ Message for SPELL 'psi hallucinate' #: lang/json/SPELL_from_json.py @@ -86525,24 +86794,27 @@ msgid "" "%1$s gesticulates at %3$s and a pulse of mind-bending psionic energy ripples" " through the air!" msgstr "" +"%1$s gesticula hacia el %3$s ¡y un pulso de energía psiónica alucinante " +"ondea por el aire!" #: lang/json/SPELL_from_json.py msgid "psi ghost" -msgstr "" +msgstr "fantasma psíquico" #. ~ Description for psi ghost #: lang/json/SPELL_from_json.py msgid "an attack that summons a temporary monster" -msgstr "" +msgstr "un ataque que conjura un monstruo temporario" #. ~ Message for SPELL 'psi ghost' #: lang/json/SPELL_from_json.py msgid "%1$s gesticulates, and a soldier made of a mysterious energy appears!" msgstr "" +"%1$s gesticula, ¡y aparece un soldado hecho de una energía misteriosa!" #: lang/json/SPELL_from_json.py msgid "psi mindblast" -msgstr "" +msgstr "estallido psíquico" #. ~ Description for psi mindblast #: lang/json/SPELL_from_json.py @@ -86550,6 +86822,8 @@ msgid "" "blasts a target with a wave of disorienting psionic energy. has random " "effects" msgstr "" +"dispara al objetivo una onda de energía psiónica desorientadora. Tiene " +"efectos aleatorios" #: lang/json/SPELL_from_json.py lang/json/TOOL_from_json.py msgid "camera" @@ -86560,39 +86834,39 @@ msgstr[1] "cámaras" #. ~ Description for camera #: lang/json/SPELL_from_json.py msgid "an attack that blinds the target for a few turns" -msgstr "" +msgstr "un ataque que ciega al objetivo por algunos turnos" #: lang/json/SPELL_from_json.py msgid "Smite" -msgstr "" +msgstr "Golpe" #: lang/json/SPELL_from_json.py msgid "Life Conversion" -msgstr "" +msgstr "Conversión Vital" #: lang/json/SPELL_from_json.py msgid "Mind over Pain" -msgstr "" +msgstr "No Me Va a Doler" #: lang/json/SPELL_from_json.py msgid "Summon Zombie" -msgstr "" +msgstr "Conjurar Zombi" #: lang/json/SPELL_from_json.py msgid "Summon Skeleton" -msgstr "" +msgstr "Conjurar Esqueleto" #: lang/json/SPELL_from_json.py msgid "Summon Decayed Pouncer" -msgstr "" +msgstr "Conjurar Saltador Podrido" #: lang/json/SPELL_from_json.py msgid "Necrotic Gaze" -msgstr "" +msgstr "Mirada Necrótica" #: lang/json/SPELL_from_json.py msgid "Animist Rune" -msgstr "" +msgstr "Runa Animista" #. ~ Description for {'str': 'Animist Rune'} #: lang/json/SPELL_from_json.py @@ -86600,42 +86874,44 @@ msgid "" "This ritual creates a small pebble attuned to Animists. You can use the " "rune as a catalyst for recipes." msgstr "" +"Este ritual crea una pequeña piedra adaptado a los Animistas. Podés usar la " +"runa como catalizador en recetas." #: lang/json/SPELL_from_json.py msgid "Ignus Fatuus" -msgstr "" +msgstr "Ignus Fatuus" #: lang/json/SPELL_from_json.py msgid "Cure Light Wounds" -msgstr "" +msgstr "Curar Heridas Menores" #: lang/json/SPELL_from_json.py msgid "Pain Split" -msgstr "" +msgstr "Dividir Dolor" #: lang/json/SPELL_from_json.py msgid "Vicious Tentacle" -msgstr "" +msgstr "Tentáculo Feroz" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Grotesque Enhancement" -msgstr "" +msgstr "Mejora Grotesca" #: lang/json/SPELL_from_json.py msgid "Acidic Spray" -msgstr "" +msgstr "Chorro Ácido" #: lang/json/SPELL_from_json.py msgid "Flesh Pouch" -msgstr "" +msgstr "Bolsa de Carne" #: lang/json/SPELL_from_json.py msgid "Conjure Bonespear" -msgstr "" +msgstr "Conjurar Lanza de Hueso" #: lang/json/SPELL_from_json.py msgid "Biomancer Rune" -msgstr "" +msgstr "Runa Biomante" #. ~ Description for {'str': 'Biomancer Rune'} #: lang/json/SPELL_from_json.py @@ -86643,63 +86919,65 @@ msgid "" "This ritual creates a small pebble attuned to Biomancers. You can use the " "rune as a catalyst for recipes." msgstr "" +"Este ritual crea una pequeña piedra adaptado a los Biomantes. Podés usar la " +"runa como catalizador en recetas." #: lang/json/SPELL_from_json.py msgid "Paralytic Dart" -msgstr "" +msgstr "Dardo Paralizador" #: lang/json/SPELL_from_json.py msgid "Visceral Projection" -msgstr "" +msgstr "Proyección Visceral" #: lang/json/SPELL_from_json.py msgid "Visceral Paralysis" -msgstr "" +msgstr "Parálisis Visceral" #. ~ Description for Visceral Paralysis #: lang/json/SPELL_from_json.py msgid "Paralytic side effect of Projection." -msgstr "" +msgstr "Efecto secundario paralítico de la Proyección." #: lang/json/SPELL_from_json.py msgid "Visceral Backlash" -msgstr "" +msgstr "Reacción Visceral" #. ~ Description for Visceral Backlash #: lang/json/SPELL_from_json.py msgid "Hits the user with side effects too." -msgstr "" +msgstr "También causa efectos secundarios." #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Coagulant Weave" -msgstr "" +msgstr "Ola Coagulante" #: lang/json/SPELL_from_json.py msgid "Crystallize Mana" -msgstr "" +msgstr "Cristalizar Maná" #. ~ Description for Crystallize Mana #: lang/json/SPELL_from_json.py msgid "Crystallizes mana into solid form" -msgstr "" +msgstr "Cristalizar maná a forma sólida" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Mana Fatigue" -msgstr "" +msgstr "Fatiga de Maná" #. ~ Description for Mana Fatigue #: lang/json/SPELL_from_json.py msgid "Secondary effect of Crystallize Mana" -msgstr "" +msgstr "Efecto secundario de Cristalizar Maná" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Dark Sight" -msgstr "" +msgstr "Vista Oscura" #. ~ Description for Dark Sight #: lang/json/SPELL_from_json.py msgid "Gives you the power to see in the dark" -msgstr "" +msgstr "Te da el poder de ver en la oscuridad" #. ~ Message for SPELL 'Dark Sight' #: lang/json/SPELL_from_json.py @@ -86707,26 +86985,28 @@ msgid "" "Your eyes glow green for a moment. Now your sight can pierce the darkest " "shadows." msgstr "" +"Tus ojos brillan verdes por un momento. Ahora tu vista puede penetrar en las" +" sombras más oscuras." #: lang/json/SPELL_from_json.py msgid "Megablast" -msgstr "" +msgstr "Megaexplosión" #: lang/json/SPELL_from_json.py msgid "Magical Light" -msgstr "" +msgstr "Luz Mágica" #: lang/json/SPELL_from_json.py msgid "Blinding Flash" -msgstr "" +msgstr "Destello Cegador" #: lang/json/SPELL_from_json.py msgid "Ethereal Grasp" -msgstr "" +msgstr "Agarre Etéreo" #: lang/json/SPELL_from_json.py msgid "Obfuscated Body" -msgstr "" +msgstr "Cuerpo Confundido" #. ~ Description for Obfuscated Body #: lang/json/SPELL_from_json.py @@ -86734,33 +87014,35 @@ msgid "" "A magical aura distorts light around your body, increasing the amount of " "attacks you might dodge in a given turn." msgstr "" +"Un aura mágica distorsiona la luz alrededor de tu cuerpo, aumentando la " +"cantidad de ataques que podés esquivar en ese turno." #: lang/json/SPELL_from_json.py msgid "Aura of Protection" -msgstr "" +msgstr "Aura de Protección" #: lang/json/SPELL_from_json.py msgid "Translocate Self" -msgstr "" +msgstr "Translocarse" #. ~ Description for Translocate Self #: lang/json/SPELL_from_json.py msgid "Translocates the user to an attuned gate." -msgstr "" +msgstr "Transloca al usuario a una puerta afín." #: lang/json/SPELL_from_json.py msgid "Acid Resistance" -msgstr "" +msgstr "Resistencia al Ácido" #. ~ Description for {'str': 'Acid Resistance'} #. ~ Description for Greater Acid Resistance #: lang/json/SPELL_from_json.py msgid "Protects the user from acid." -msgstr "" +msgstr "Protege al usuario del ácido." #: lang/json/SPELL_from_json.py msgid "Greater Acid Resistance" -msgstr "" +msgstr "Resistencia Mayor al Ácido" #: lang/json/SPELL_from_json.py msgid "Template Spell" @@ -86775,16 +87057,16 @@ msgstr "" #: lang/json/SPELL_from_json.py #, python-format msgid "As you cast %s, your ears pops!" -msgstr "" +msgstr "Cuando lanzás %s, ¡tus orejas truenan!" #: lang/json/SPELL_from_json.py msgid "Spawn Debug Monsters" -msgstr "" +msgstr "Crea Monstruos Debug" #. ~ Description for Spawn Debug Monsters #: lang/json/SPELL_from_json.py msgid "Set level to number of monsters spawned." -msgstr "" +msgstr "Establece nivel al número de monstruos creados." #. ~ Message for SPELL 'Spawn Debug Monsters' #. ~ Message for SPELL 'Debug Fatigue Spell' @@ -86797,22 +87079,22 @@ msgstr "" #: lang/json/SPELL_from_json.py #, python-format msgid "Debug spell %s cast." -msgstr "" +msgstr "Conjurado %s hechizo debug." #: lang/json/SPELL_from_json.py msgid "Debug Stamina Spell" -msgstr "" +msgstr "Hechizo Resistencia Debug" #. ~ Description for Debug Stamina Spell #: lang/json/SPELL_from_json.py msgid "Uses a little stamina" -msgstr "" +msgstr "Usar poca resistencia" #. ~ Message for SPELL 'Debug Stamina Spell' #: lang/json/SPELL_from_json.py #, python-format msgid "Debug spell [ %s ] has no effect. Debug warning is expected." -msgstr "" +msgstr "Hechizo debug [ %s ] no tiene efecto. Advertencia de debug probable." #: lang/json/SPELL_from_json.py msgid "Debug Fatigue Spell" @@ -86908,40 +87190,40 @@ msgstr "" #: lang/json/SPELL_from_json.py msgid "Black Dragons' Breath" -msgstr "" +msgstr "Aliento de Dragón Negro" #. ~ Description for {'str': "Black Dragons' Breath"} #: lang/json/SPELL_from_json.py msgid "Spews a line of acid from your mouth." -msgstr "" +msgstr "Escupe una línea de ácido de tu boca." #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Vegetative Grasp" -msgstr "" +msgstr "Agarre Vegetativo" #: lang/json/SPELL_from_json.py msgid "Root Strike" -msgstr "" +msgstr "Golpe de Raíz" #: lang/json/SPELL_from_json.py msgid "Wooden Shaft" -msgstr "" +msgstr "Asta de Madera" #: lang/json/SPELL_from_json.py msgid "Nature's Bow" -msgstr "" +msgstr "Arco Natural" #: lang/json/SPELL_from_json.py msgid "Nature's Trance" -msgstr "" +msgstr "Trance Natural" #: lang/json/SPELL_from_json.py msgid "Bag of Cats" -msgstr "" +msgstr "Bolsa de Gatos" #: lang/json/SPELL_from_json.py msgid "Cause Bear" -msgstr "" +msgstr "Causar Oso" #. ~ Description for Cause Bear #: lang/json/SPELL_from_json.py @@ -86951,19 +87233,23 @@ msgid "" "because the instructions are hardly legible. No time like the Cataclysm to " "find out, though!" msgstr "" +"Este hechizo parece estar muy manchado. Estás bastante seguro que el nombre " +"debería ser Causar Miedo, pero también estás bastante seguro que no va a " +"tener el efecto deseado porque las instrucciones son casi ilegibles. ¡No hay" +" mejor momento que el Cataclismo para ver qué pasa!" #: lang/json/SPELL_from_json.py msgid "Kill Fungus" -msgstr "" +msgstr "Matar Hongo" #. ~ Description for Kill Fungus #: lang/json/SPELL_from_json.py msgid "Kills fungus affected areas" -msgstr "" +msgstr "Mata las áreas afectadas por hongos" #: lang/json/SPELL_from_json.py msgid "Druid Rune" -msgstr "" +msgstr "Runa Druida" #. ~ Description for Druid Rune #: lang/json/SPELL_from_json.py @@ -86971,10 +87257,12 @@ msgid "" "This ritual creates a small pebble attuned to Druids. You can use the rune " "as a catalyst for recipes." msgstr "" +"Este ritual crea una pequeña piedra adaptado a los Druidas. Podés usar la " +"runa como catalizador en recetas." #: lang/json/SPELL_from_json.py msgid "Purification Seed" -msgstr "" +msgstr "Semilla de Purificación" #. ~ Description for Purification Seed #: lang/json/SPELL_from_json.py @@ -86982,55 +87270,57 @@ msgid "" "You summon a gift of the earth which will purify water. Rapidly degrades if" " not utilized." msgstr "" +"Conjurás un regalo de la tierra que podés usar para purificar agua. Se " +"degrada rápidamente si no se utiliza." #: lang/json/SPELL_from_json.py msgid "Sacrificial Regrowth" -msgstr "" +msgstr "Resurgimiento Sacrificial" #: lang/json/SPELL_from_json.py msgid "Sacrificial Healing" -msgstr "" +msgstr "Curación Sacrificial" #: lang/json/SPELL_from_json.py msgid "Stonefist" -msgstr "" +msgstr "Puño Pétreo" #: lang/json/SPELL_from_json.py msgid "Seismic Stomp" -msgstr "" +msgstr "Pisotón Sísmico" #: lang/json/SPELL_from_json.py msgid "Stone's Endurance" -msgstr "" +msgstr "Resistencia Pétrea" #: lang/json/SPELL_from_json.py msgid "Shardspray" -msgstr "" +msgstr "Esquirlas" #: lang/json/SPELL_from_json.py msgid "Piercing Bolt" -msgstr "" +msgstr "Rayo Penetrante" #: lang/json/SPELL_from_json.py msgid "Shardstorm" -msgstr "" +msgstr "Tormenta de Esquirlas" #: lang/json/SPELL_from_json.py msgid "Rockbolt" -msgstr "" +msgstr "Rayo de Piedra" #: lang/json/SPELL_from_json.py msgid "Move Earth" -msgstr "" +msgstr "Mover Tierra" #. ~ Description for Move Earth #: lang/json/SPELL_from_json.py msgid "Your essense flows around you, and the earth follows." -msgstr "" +msgstr "Tu esencia fluye a tu alrededor, y la tierra le sigue." #: lang/json/SPELL_from_json.py msgid "Earthshaper Rune" -msgstr "" +msgstr "Runa Terraformante" #. ~ Description for Earthshaper Rune #: lang/json/SPELL_from_json.py @@ -87038,54 +87328,58 @@ msgid "" "This ritual creates a small pebble attuned to Earthshapers. You can use the" " rune as a catalyst for recipes." msgstr "" +"Este ritual crea una pequeña piedra adaptado a los Terraformantes. Podés " +"usar la runa como catalizador en recetas." #: lang/json/SPELL_from_json.py msgid "Lava Bomb Shrapnel" -msgstr "" +msgstr "Esquirla de Bomba de Lava" #. ~ Description for Lava Bomb Shrapnel #. ~ Description for Lava Bomb Heat #. ~ Description for Lava Bomb Terrain #: lang/json/SPELL_from_json.py msgid "This is a sub spell for the Lava Bomb spell." -msgstr "" +msgstr "Es un sub hechizo del hechizo Bomba de Lava. " #: lang/json/SPELL_from_json.py msgid "Lava Bomb Heat" -msgstr "" +msgstr "Calor de Bomba de Lava" #: lang/json/SPELL_from_json.py msgid "Lava Bomb Terrain" -msgstr "" +msgstr "Terreno de Bomba de Lava" #: lang/json/SPELL_from_json.py msgid "Lava Bomb" -msgstr "" +msgstr "Bomba de Lava" #: lang/json/SPELL_from_json.py msgid "Clairvoyance" -msgstr "" +msgstr "Clarividencia" #: lang/json/SPELL_from_json.py msgid "Stoneskin" -msgstr "" +msgstr "Piel Pétrea" #: lang/json/SPELL_from_json.py msgid "Pillar of Stone" -msgstr "" +msgstr "Pilar de Piedra" #: lang/json/SPELL_from_json.py msgid "Pillar Side Effect" -msgstr "" +msgstr "Efecto Secundario de Pilar" #. ~ Description for Pillar Side Effect #: lang/json/SPELL_from_json.py msgid "Bash effect that follows, levels reduce damage and AoE." msgstr "" +"Es un efecto de golpe que le sigue, los niveles reducen el daño y el área " +"que afecta." #: lang/json/SPELL_from_json.py msgid "Twisted Restoration" -msgstr "" +msgstr "Restoración Retorcida" #. ~ Description for Twisted Restoration #: lang/json/SPELL_from_json.py @@ -87094,10 +87388,13 @@ msgid "" "unwise to use this in immediate danger, and may be fatal if done in critical" " condition." msgstr "" +"Este hechizo acelera tu corazón, generando carne y músculos nuevos. No se " +"aconseja usar esto ante un peligro inmediato, y puede ser fatal si se lo " +"hace en condiciones críticas." #: lang/json/SPELL_from_json.py msgid "Improved Twisted Restoration" -msgstr "" +msgstr "Restoración Retorcida Improvisada" #. ~ Description for Improved Twisted Restoration #: lang/json/SPELL_from_json.py @@ -87106,35 +87403,41 @@ msgid "" "unwise to use this in immediate danger, and may be fatal if done in critical" " condition. Improved brewing mitigates the strain of the spell." msgstr "" +"Este hechizo acelera tu corazón, generando carne y músculos nuevos. No se " +"aconseja usar esto ante un peligro inmediato, y puede ser fatal si se lo " +"hace en condiciones críticas. Una destilación mejorada mitiga la presión del" +" hechizo." #: lang/json/SPELL_from_json.py msgid "Conjure Throwing Blade I" -msgstr "" +msgstr "Conjurar Cuchillas Arrojadizas I" #. ~ Description for Conjure Throwing Blade I #: lang/json/SPELL_from_json.py msgid "conjures 3 throwing knives" -msgstr "" +msgstr "conjura 3 cuchillos arrojadizos" #. ~ Message for SPELL 'Conjure Throwing Blade I' #: lang/json/SPELL_from_json.py msgid "" "You activate your ring and three throwing knives appear, ready to throw!" msgstr "" +"Activás el anillo y aparecen tres cuchillos arrojadizos, ¡listos para ser " +"lanzados!" #: lang/json/SPELL_from_json.py msgid "Recover Mana" -msgstr "" +msgstr "Recuperar Maná" #. ~ Description for Recover Mana #: lang/json/SPELL_from_json.py msgid "You regain mana." -msgstr "" +msgstr "Recuperás maná." #. ~ Message for SPELL 'Recover Mana' #: lang/json/SPELL_from_json.py msgid "You start regenerating mana!" -msgstr "" +msgstr "¡Empezás a regenerar maná!" #. ~ Message for SPELL '{'str': 'Pain'}' #: lang/json/SPELL_from_json.py @@ -87142,58 +87445,60 @@ msgid "" "Your veins feel like they are on fire!\n" "You start regenerating mana!" msgstr "" +"¡Sentís las venas como si estuvieran en fuego!\n" +"¡Empezás a regenerar maná!" #: lang/json/SPELL_from_json.py msgid "Point Flare" -msgstr "" +msgstr "Fulgor" #: lang/json/SPELL_from_json.py msgid "Finger Firelighter" -msgstr "" +msgstr "Dedo Encendedor" #: lang/json/SPELL_from_json.py msgid "Ice Spike" -msgstr "" +msgstr "Púa Helada" #: lang/json/SPELL_from_json.py msgid "Fireball" -msgstr "" +msgstr "Bola de Fuego" #: lang/json/SPELL_from_json.py msgid "Cone of Cold" -msgstr "" +msgstr "Cono de Frío" #: lang/json/SPELL_from_json.py msgid "Burning Hands" -msgstr "" +msgstr "Manos Ardientes" #: lang/json/SPELL_from_json.py msgid "Frost Spray" -msgstr "" +msgstr "Chorro Gélido" #: lang/json/SPELL_from_json.py msgid "Chilling Touch" -msgstr "" +msgstr "Toque Gélido" #: lang/json/SPELL_from_json.py msgid "Glide on Ice" -msgstr "" +msgstr "Deslizamiento en Hielo" #: lang/json/SPELL_from_json.py msgid "Hoary Blast" -msgstr "" +msgstr "Bomba de Escarcha" #: lang/json/SPELL_from_json.py msgid "Ice Shield" -msgstr "" +msgstr "Escudo de Hielo" #: lang/json/SPELL_from_json.py msgid "Frost Armor" -msgstr "" +msgstr "Armadura Gélida" #: lang/json/SPELL_from_json.py msgid "Kelvinist Rune" -msgstr "" +msgstr "Runa Kelvinista" #. ~ Description for Kelvinist Rune #: lang/json/SPELL_from_json.py @@ -87201,65 +87506,67 @@ msgid "" "This ritual creates a small pebble attuned to Kelvinists. You can use the " "rune as a catalyst for recipes." msgstr "" +"Este ritual crea una pequeña piedra adaptado a los Kelvinistas. Podés usar " +"la runa como catalizador en recetas." #: lang/json/SPELL_from_json.py msgid "Summon Crocodile" -msgstr "" +msgstr "Conjurar Cocodrilo" #. ~ Description for Summon Crocodile #: lang/json/SPELL_from_json.py msgid "Summons a permanent crocodile." -msgstr "" +msgstr "Conjura un cocodrilo permanente." #. ~ Message for SPELL 'Summon Crocodile' #: lang/json/SPELL_from_json.py msgid "The shaman summons a crocodile!" -msgstr "" +msgstr "¡El chamán conjura un cocodrilo!" #: lang/json/SPELL_from_json.py msgid "an ancient reptilian spell" -msgstr "" +msgstr "un antiguo hechizo reptiliano" #. ~ Description for an ancient reptilian spell #: lang/json/SPELL_from_json.py msgid "Causes one of the shaman spells to be cast." -msgstr "" +msgstr "Causa que uno de los hechizos de chamán sea conjurado." #: lang/json/SPELL_from_json.py msgid "Magic Missile" -msgstr "" +msgstr "Misil Mágico" #: lang/json/SPELL_from_json.py msgid "Phase Door" -msgstr "" +msgstr "Puerta Fásica" #: lang/json/SPELL_from_json.py msgid "Gravity Well" -msgstr "" +msgstr "Pozo de Gravedad" #: lang/json/SPELL_from_json.py msgid "Mana Blast" -msgstr "" +msgstr "Bomba de Maná" #: lang/json/SPELL_from_json.py msgid "Mana Bolt" -msgstr "" +msgstr "Flecha de Maná" #: lang/json/SPELL_from_json.py msgid "Haste" -msgstr "" +msgstr "Apuro" #: lang/json/SPELL_from_json.py msgid "Mana Beam" -msgstr "" +msgstr "Rayo de Maná" #: lang/json/SPELL_from_json.py msgid "Escape" -msgstr "" +msgstr "Escape" #: lang/json/SPELL_from_json.py msgid "Magus Rune" -msgstr "" +msgstr "Runa Magus" #. ~ Description for Magus Rune #: lang/json/SPELL_from_json.py @@ -87267,22 +87574,24 @@ msgid "" "This ritual creates a small pebble attuned to Magi. You can use the rune as" " a catalyst for recipes." msgstr "" +"Este ritual crea una pequeña piedra adaptado a los Magi. Podés usar la runa " +"como catalizador en recetas." #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Cat's Grace" -msgstr "" +msgstr "Gracia Gatuna" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Eagle's Sight" -msgstr "" +msgstr "Vista de Águila" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Ogre's Strength" -msgstr "" +msgstr "Fuerza de Ogro" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Fox's Cunning" -msgstr "" +msgstr "Astucia de Zorro" #. ~ Description for Crystallize Mana #: lang/json/SPELL_from_json.py @@ -87290,10 +87599,12 @@ msgid "" "Crystallizes mana into solid form. Your physiological changes have made " "this spell much more efficient and easier to cast." msgstr "" +"Cristaliza maná en forma sólida. Tus cambios psicológicos han hecho que este" +" hechizo se mucho más eficiente y fácil de usar." #: lang/json/SPELL_from_json.py lang/json/mutation_from_json.py msgid "Seeker Bolts" -msgstr "" +msgstr "Rayos Buscadores" #. ~ Description for Seeker Bolts #: lang/json/SPELL_from_json.py @@ -87301,74 +87612,76 @@ msgid "" "Fires bolts of mana from your fingertips that home in on randomly selected " "targets in range." msgstr "" +"Dispara rayos de maná desde tus dedos que son dirigidos a objetivos " +"aleatorios al alcance." #. ~ description for the sound of spell 'Seeker Bolts' #: lang/json/SPELL_from_json.py msgid "a zing" -msgstr "" +msgstr "una chispa" #: lang/json/SPELL_from_json.py msgid "Blood Suck" -msgstr "" +msgstr "Chupar Sangre" #. ~ Description for {'str': 'Blood Suck'} #: lang/json/SPELL_from_json.py msgid "Sucks blood from one foe." -msgstr "" +msgstr "Chupa la sangre de un enemigo." #: lang/json/SPELL_from_json.py msgid "Bear Trap" -msgstr "" +msgstr "Trampa de Oso" #. ~ Description for Bear Trap #: lang/json/SPELL_from_json.py msgid "A trap that summons bears! Not what you were expecting, is it?" -msgstr "" +msgstr "¡Es una trampa que conjura osos! No era lo que esperabas, ¿eh?" #. ~ description for the sound of spell 'Bear Trap' #: lang/json/SPELL_from_json.py msgid "\"It's a trap!\"" -msgstr "" +msgstr "\"¡Es una trampa!\"" #: lang/json/SPELL_from_json.py msgid "Rocket Punch" -msgstr "" +msgstr "Piña Misil" #. ~ Description for Rocket Punch #: lang/json/SPELL_from_json.py msgid "Ejects giant fist from arm." -msgstr "" +msgstr "Eyecta un puño gigante desde el brazo." #: lang/json/SPELL_from_json.py msgid "Gas Attack" -msgstr "" +msgstr "Ataque de Gas" #. ~ Description for Gas Attack #: lang/json/SPELL_from_json.py msgid "Spreads toxic gas around itself." -msgstr "" +msgstr "Libera un gas tóxico a tu alrededor." #: lang/json/SPELL_from_json.py msgid "Demon Fireball" -msgstr "" +msgstr "Bola de Fuego Demoníaca" #. ~ Description for Demon Fireball #: lang/json/SPELL_from_json.py msgid "This is a monster only spell." -msgstr "" +msgstr "Este hechizo es solo para monstruos." #: lang/json/SPELL_from_json.py msgid "Summon Demon Spiderlings" -msgstr "" +msgstr "Conjurar Arañitas Demoníacas" #. ~ Description for Summon Demon Spiderlings #: lang/json/SPELL_from_json.py msgid "Summons 4 permanent demon spiderlings." -msgstr "" +msgstr "Conjura 4 arañitas demoníacas permanentes." #: lang/json/SPELL_from_json.py msgid "Jolt" -msgstr "" +msgstr "Descarga" #. ~ Mutation class: Manatouched iv_sound_message #. ~ description for the sound of spell 'Jolt' @@ -87376,32 +87689,32 @@ msgstr "" #. ~ description for the sound of spell 'Lightning Blast' #: lang/json/SPELL_from_json.py lang/json/mutation_category_from_json.py msgid "a crackle" -msgstr "" +msgstr "un chisporroteo" #: lang/json/SPELL_from_json.py msgid "Lightning Bolt" -msgstr "" +msgstr "Rayo Eléctrico" #: lang/json/SPELL_from_json.py msgid "Windstrike" -msgstr "" +msgstr "Golpe de Viento" #. ~ description for the sound of spell 'Windstrike' #: lang/json/SPELL_from_json.py msgid "a whoosh" -msgstr "" +msgstr "un zumbido" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Windrunning" -msgstr "" +msgstr "Pies de Viento" #: lang/json/SPELL_from_json.py msgid "Call Stormhammer" -msgstr "" +msgstr "Convocar Stormhammer" #: lang/json/SPELL_from_json.py msgid "Stormshaper Rune" -msgstr "" +msgstr "Runa Tormentaformante" #. ~ Description for Stormshaper Rune #: lang/json/SPELL_from_json.py @@ -87409,10 +87722,12 @@ msgid "" "This ritual creates a small pebble attuned to Stormshapers. You can use the" " rune as a catalyst for recipes." msgstr "" +"Este ritual crea una pequeña piedra adaptado a los Tormentaformantes. Podés " +"usar la runa como catalizador en recetas." #: lang/json/SPELL_from_json.py msgid "Lightning Blast" -msgstr "" +msgstr "Bomba Eléctrica" #: lang/json/SPELL_from_json.py src/weather_data.cpp msgid "Lightning Storm" @@ -87424,31 +87739,33 @@ msgid "" "You call the power of the sky to strike the earth. Several lightning blasts" " fire from your finger tips to strike the target." msgstr "" +"Convocás el poder del cielo para que golpee la tierra. Varios rayos " +"eléctricos salen de tus dedos hacia el objetivo." #: lang/json/SPELL_from_json.py msgid "Ionization" -msgstr "" +msgstr "Ionización" #: lang/json/SPELL_from_json.py msgid "Ionization Thunderclap" -msgstr "" +msgstr "Trueno de Ionización" #. ~ Description for Ionization Thunderclap #: lang/json/SPELL_from_json.py msgid "Adds the actual flashbang effect." -msgstr "" +msgstr "Agrega el efecto de destello." #: lang/json/SPELL_from_json.py msgid "Wall of Fog" -msgstr "" +msgstr "Pared de Niebla" #: lang/json/SPELL_from_json.py msgid "Bless" -msgstr "" +msgstr "Bendición" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Invisibility" -msgstr "" +msgstr "Invisibilidad" #. ~ Description for Invisibility #: lang/json/SPELL_from_json.py @@ -87456,31 +87773,34 @@ msgid "" "Creates a magical field that hides your visual presence to others. " "Colloquially known as invisibility, but without all the science mumbo jumbo." msgstr "" +"Crea un campo mágico que oculta tu presencia visual a los otros. " +"Coloquialmente conocido como invisibilidad, pero sin toda la gilada " +"científica." #. ~ Message for SPELL 'Invisibility' #: lang/json/SPELL_from_json.py msgid "To the outside world, your body fades away and you cease to exist!" -msgstr "" +msgstr "Para el mundo exterior, ¡tu cuerpo desaparece y dejás de existir!" #: lang/json/SPELL_from_json.py msgid "Holy Blade" -msgstr "" +msgstr "Cuchilla Santa" #: lang/json/SPELL_from_json.py msgid "Spiritual Armor" -msgstr "" +msgstr "Armadura Espiritual" #: lang/json/SPELL_from_json.py msgid "Lamp" -msgstr "" +msgstr "Lámpara" #: lang/json/SPELL_from_json.py msgid "Manatricity" -msgstr "" +msgstr "Manatricidad" #: lang/json/SPELL_from_json.py msgid "Technomancer Rune" -msgstr "" +msgstr "Runa Tecnomante" #. ~ Description for Technomancer Rune #: lang/json/SPELL_from_json.py @@ -87488,47 +87808,49 @@ msgid "" "This ritual creates a small pebble attuned to Technomancers. You can use " "the rune as a catalyst for recipes." msgstr "" +"Este ritual crea una pequeña piedra adaptado a los Tecnomantes. Podés usar " +"la runa como catalizador en recetas." #: lang/json/SPELL_from_json.py msgid "Taze" -msgstr "" +msgstr "Electrochoque" #: lang/json/SPELL_from_json.py msgid "Lesser Quantum Tunnel" -msgstr "" +msgstr "Túnel Cuántico Menor" #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Synaptic Stimulation" -msgstr "" +msgstr "Estimulación Sináptica" #: lang/json/SPELL_from_json.py msgid "Laze" -msgstr "" +msgstr "Laze" #: lang/json/SPELL_from_json.py msgid "Animated Blade" -msgstr "" +msgstr "Cuchilla Animada" #: lang/json/SPELL_from_json.py msgid "Mirror Image" -msgstr "" +msgstr "Reflejo Exacto" #: lang/json/SPELL_from_json.py msgid "Summon floating disk" -msgstr "" +msgstr "Conjurar Disco Flotante" #: lang/json/SPELL_from_json.py msgid "Overcharge Burn" -msgstr "" +msgstr "Quemadura de Sobrecarga" #. ~ Description for Overcharge Burn #: lang/json/SPELL_from_json.py msgid "The side effects of casting the overcharge spell." -msgstr "" +msgstr "Es el efecto secundario de lanzar el hechizo sobrecarga." #: lang/json/SPELL_from_json.py msgid "Optical Sneeze Beam" -msgstr "" +msgstr "Estornudo Óptico" #. ~ Description for Optical Sneeze Beam #: lang/json/SPELL_from_json.py @@ -87537,11 +87859,14 @@ msgid "" "your face. The inventor of this spell must have had some weird sense of " "humor." msgstr "" +"Sobrecargás tus baterías internas para enviar un rayo semidireccionado desde" +" tu cara. El inventor de este hechizo debe haber tenido un sentido del humor" +" extraño." #. ~ description for the sound of spell 'Optical Sneeze Beam' #: lang/json/SPELL_from_json.py msgid "bzzzzzzt!" -msgstr "" +msgstr "bzzzzzzt!" #. ~ Message for SPELL 'Optical Sneeze Beam' #: lang/json/SPELL_from_json.py @@ -87549,14 +87874,16 @@ msgid "" "You overcharge your bionic energy through what ley lines you have left, and " "channel it through the center of your face." msgstr "" +"Sobrecargás tu energía biónica a través de las líneas ley que dejaste, y la " +"canalizás a través del centro de tu cara." #: lang/json/SPELL_from_json.py msgid "X-ray Vision" -msgstr "" +msgstr "Visión de Rayos-X" #: lang/json/SPELL_from_json.py lang/json/mutation_from_json.py msgid "Mana Siphon" -msgstr "" +msgstr "Succión de Maná" #. ~ Description for Mana Siphon #: lang/json/SPELL_from_json.py @@ -87564,6 +87891,67 @@ msgid "" "This is the spell portion of the mana siphon series of mutations. If you " "have this spell you probably debugged it in." msgstr "" +"Este es el hechizo de la serie de mutaciones de succión de maná. Si tenés " +"este hechizo debe ser por que lo hiciste por debug." + +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "Piú, Piú" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "" +"Apuntás tu dedo hacia tu oponente y hacés el siguiente sonido 'Piú, piú'." + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "El Suelo es Lava" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "" +"Es mejor que encuentres una silla o una mesada para subirte, porque ¡el " +"suelo es lava!" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "Montaje de Entrenamiento" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "" +"Cuando algo dura mucho tiempo y querés saltearlo hasta llegar al final, vas " +"a necesitar un montaje." + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "Sana Sana Colita de Rana" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "" +"Es una caricia que hará que el dolor se vaya, como las que te hacía tu " +"madre." + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "Conjurar Momia" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "" +"Conjura una criatura endeble de tejido, desde el placard de las escobas de " +"tu alma." #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" @@ -87604,6 +87992,9 @@ msgid "" "that can plug into a UPS. Any device modified with this can be used without" " a battery as long as you have a charged UPS with you." msgstr "" +"Este dispositivo reemplaza las conexiones convencionales de una batería con " +"un conector que puede enchufarse a un UPS. Cualquier aparato modificado con " +"esto puede ser usado sin batería mientras tengas un UPS cargado." #: lang/json/TOOLMOD_from_json.py msgid "battery compartment mod" @@ -87623,8 +88014,8 @@ msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "light battery mod" msgid_plural "light battery mods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "modificación de batería liviana" +msgstr[1] "modificaciones de batería liviana" #. ~ Description for {'str': 'light battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -87632,12 +88023,14 @@ msgid "" "A battery compartment mod that allows the use of light batteries in tools " "that otherwise could not." msgstr "" +"Es una modificación de compartimiento para batería que te permite usar " +"baterías livianas en herramientas que no están diseñadas para eso." #: lang/json/TOOLMOD_from_json.py msgid "medium battery mod" msgid_plural "medium battery mods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "modificación de batería mediana" +msgstr[1] "modificaciones de batería mediana" #. ~ Description for {'str': 'medium battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -87645,12 +88038,14 @@ msgid "" "A battery compartment mod that allows the use of medium batteries in tools " "that otherwise could not." msgstr "" +"Es una modificación de compartimiento para batería que te permite usar " +"baterías medianas en herramientas que no están diseñadas para eso." #: lang/json/TOOLMOD_from_json.py msgid "heavy battery mod" msgid_plural "heavy battery mods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "modificación de batería grande" +msgstr[1] "modificaciones de batería grande" #. ~ Description for {'str': 'heavy battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -87658,12 +88053,14 @@ msgid "" "A battery compartment mod that allows the use of heavy batteries in tools " "that otherwise could not." msgstr "" +"Es una modificación de compartimiento para batería que te permite usar " +"baterías grandes en herramientas que no están diseñadas para eso." #: lang/json/TOOLMOD_from_json.py msgid "cybernetic power port mod" msgid_plural "cybernetic power port mods" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "modificación de conexión cibernética" +msgstr[1] "modificaciones de conexión cibernética" #. ~ Description for cybernetic power port mod #: lang/json/TOOLMOD_from_json.py @@ -87673,6 +88070,10 @@ msgid "" "implants. When applied, it will convert an item to run directly off of " "bionic power." msgstr "" +"Este dispositivo reemplaza las conexiones estándar y los conectores de la " +"batería para aparatos eléctricos con un puerto cuidadosamente moldeado que " +"se conecta a los implantes biónicos. Cuando se aplica, hará que un objeto " +"pueda funcionar directamente de la energía biónica." #: lang/json/TOOL_ARMOR_from_json.py msgid "quantum solar backpack (folded)" @@ -87736,6 +88137,8 @@ msgid "" "turn the flashlight on and provide light, assuming it is charged with " "batteries." msgstr "" +"Es un casco de minero con una resistente linterna LED. Al usarlo encendés la" +" linterna para generar luz, suponiendo que tiene baterías." #: lang/json/TOOL_ARMOR_from_json.py msgid "mining helmet (on)" @@ -87839,6 +88242,8 @@ msgid "" "This is a mining helmet with a heavy-duty LED flashlight. The flashlight is" " turned on, and continually draining its batteries. Use it to turn it off." msgstr "" +"Es un casco de minero con una resistente linterna LED. La linterna está " +"encendida, consumiendo gradualmente sus baterías. Usalo para apagarla." #: lang/json/TOOL_ARMOR_from_json.py msgid "game watch" @@ -87858,8 +88263,8 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "fitness band" msgid_plural "fitness bands" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "banda de fitness" +msgstr[1] "bandas de fitness" #. ~ Description for fitness band #: lang/json/TOOL_ARMOR_from_json.py @@ -87867,6 +88272,9 @@ msgid "" "A fitness band that can track your heartbeat, exercise level and also has a " "clock. Activate to see your metrics." msgstr "" +"Es una banda para fitness que puede controlar tus pulsaciones, el nivel de " +"ejercitación y también tiene un reloj. Hay que activarla para ver los " +"valores." #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak" @@ -87881,6 +88289,9 @@ msgid "" "reflective carbide. When activated, it will create a holographic decoy of " "its wearer." msgstr "" +"Es una capa tejida con fibras metálicas y cubierta con planchas hexagonales " +"de carburo reflectivo. Cuando es activada, crea una imagen holográfica de " +"quien la tiene puesta para usarla de señuelo." #: lang/json/TOOL_ARMOR_from_json.py msgid "fedora" @@ -88134,18 +88545,18 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "headlamp" msgid_plural "headlamps" -msgstr[0] "faro delantero" -msgstr[1] "faros delanteros" +msgstr[0] "linterna frontal" +msgstr[1] "linternas frontales" #. ~ Use action msg for {'str': 'headlamp'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the headlamp on." -msgstr "Encendés el faro delantero." +msgstr "Encendés la linterna frontal." #. ~ Use action need_charges_msg for {'str': 'headlamp'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "The headlamp batteries are dead." -msgstr "El faro delantero se quedó sin batería." +msgstr "La linterna frontal se quedó sin batería." #. ~ Description for {'str': 'headlamp'} #: lang/json/TOOL_ARMOR_from_json.py @@ -88153,14 +88564,14 @@ msgid "" "This is an LED headlamp with an adjustable strap so as to be comfortably " "worn on your head or attached to your helmet. Use it to turn it on." msgstr "" -"Es un faro delantero led con una correa ajustable para que sea cómodo de " -"ponerse en la cabeza o en un casco. Usalo para encenderlo." +"Es una linterna frontal led con una correa ajustable para que sea cómoda de " +"ponerse en la cabeza o en un casco. Usala para encenderla." #: lang/json/TOOL_ARMOR_from_json.py msgid "headlamp (on)" msgid_plural "headlamps (on)" -msgstr[0] "faro delantero (enc.)" -msgstr[1] "faros delanteros (enc.)" +msgstr[0] "linterna frontal (enc.)" +msgstr[1] "linternas frontales (enc.)" #. ~ Description for {'str': 'headlamp (on)', 'str_pl': 'headlamps (on)'} #: lang/json/TOOL_ARMOR_from_json.py @@ -88169,25 +88580,25 @@ msgid "" "worn on your head or attached to your helmet. It is turned on, and " "continually draining batteries. Use it to turn it off." msgstr "" -"Es un faro delantero led con una correa ajustable para que sea cómodo de " -"ponerse en la cabeza o en un casco. Ahora está encendido, consumiendo " -"gradualmente sus baterías. Usalo para apagarlo." +"Es una linterna frontal led con una correa ajustable para que sea cómoda de " +"ponerse en la cabeza o en un casco. Ahora está encendida, consumiendo " +"gradualmente sus baterías. Usala para apagarla." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor headlamp" msgid_plural "survivor headlamps" -msgstr[0] "faro delantero de supervivencia" -msgstr[1] "faros delanteros de supervivencia" +msgstr[0] "linterna frontal de supervivencia" +msgstr[1] "linternas frontales de supervivencia" #. ~ Use action msg for {'str': 'survivor headlamp'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the survivor headlamp on." -msgstr "Encendés el faro delantero de supervivencia." +msgstr "Encendés la linterna frontal de supervivencia." #. ~ Use action need_charges_msg for {'str': 'survivor headlamp'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "The survivor headlamp batteries are dead." -msgstr "El faro delantero de supervivencia se quedó sin batería." +msgstr "La linterna frontal de supervivencia se quedó sin batería." #. ~ Description for {'str': 'survivor headlamp'} #: lang/json/TOOL_ARMOR_from_json.py @@ -88197,12 +88608,16 @@ msgid "" "allows it to be comfortably worn on your head or attached to your helmet. " "Use it to turn it on." msgstr "" +"Es una linterna frontal led reforzada para ser más resistente, brillante y " +"con un paquete de baterías más grande y eficiente. La correa ajustable te " +"permite utilizarla cómodamente en la cabeza o en un casco. Usala para " +"encenderla." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor headlamp (on)" msgid_plural "survivor headlamps (on)" -msgstr[0] "faro delantero de supervivencia (enc.)" -msgstr[1] "faros delanteros de supervivencia (enc.)" +msgstr[0] "linterna frontal de supervivencia (enc.)" +msgstr[1] "linternas frontales de supervivencia (enc.)" #. ~ Description for {'str': 'survivor headlamp (on)', 'str_pl': 'survivor #. headlamps (on)'} @@ -88213,17 +88628,21 @@ msgid "" "allows it to be comfortably worn on your head or attached to your helmet. " "It is turned on, and continually draining batteries. Use it to turn it off." msgstr "" +"Es una linterna frontal led reforzada para ser más resistente, brillante y " +"con un paquete de baterías más grande y eficiente. La correa ajustable te " +"permite utilizarla cómodamente en la cabeza o en un casco. Está encendida, " +"consumiendo gradualmente sus baterías. Usala para apagarla." #: lang/json/TOOL_ARMOR_from_json.py msgid "atomic headlamp" msgid_plural "atomic headlamps" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "linterna frontal atómica" +msgstr[1] "linternas frontales atómicas" #. ~ Use action msg for {'str': 'atomic headlamp'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You close the headlamp's cover." -msgstr "" +msgstr "Cerrás la cubierta de la linterna frontal." #. ~ Description for {'str': 'atomic headlamp'} #: lang/json/TOOL_ARMOR_from_json.py @@ -88233,18 +88652,22 @@ msgid "" "to be comfortably worn on your head or attached to your helmet. Use it to " "close the cover and hide the light." msgstr "" +"Es una linterna frontal reforzada y alimentada por la magia de la " +"desintegración nuclear, focalizada para aumentar su intensidad. La correa " +"ajustable permite utilizarla cómodamente en la cabeza o en un casco. Usala " +"para cerrar la cubierta y esconder la luz." #: lang/json/TOOL_ARMOR_from_json.py msgid "atomic headlamp (covered)" msgid_plural "atomic headlamps (covered)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "linterna frontal atómica (cubierta)" +msgstr[1] "linternas frontales atómicas (cubiertas)" #. ~ Use action msg for {'str': 'atomic headlamp (covered)', 'str_pl': 'atomic #. headlamps (covered)'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You open the headlamp's cover." -msgstr "" +msgstr "Abrís la cubierta de la linterna frontal." #. ~ Description for {'str': 'atomic headlamp (covered)', 'str_pl': 'atomic #. headlamps (covered)'} @@ -88255,6 +88678,62 @@ msgid "" "to be comfortably worn on your head or attached to your helmet. Use it to " "open the cover and show the light." msgstr "" +"Es una linterna frontal reforzada y alimentada por la magia de la " +"desintegración nuclear, focalizada para aumentar su intensidad. La correa " +"ajustable permite utilizarla cómodamente en la cabeza o en un casco. Usala " +"para abrir la cubierta y dejar pasar la luz." + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "casco antiexplosivos" +msgstr[1] "cascos antiexplosivos" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "Encender linterna frontal" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "\"Activando iluminación.\"" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "\"Iluminación desactivada, poca batería.\"" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" +"Es un casco con protección electrónica que contiene una cámara, una radio " +"bidireccional y una linterna frontal, las cuales pueden activarse mediante " +"la voz. Está diseñado para proteger contra la presión, fragmentación, " +"impacto y calor." + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "casco antiexplosivos (enc.)" +msgstr[1] "cascos antiexplosivos (enc.)" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD +#. helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "Apagar linterna frontal" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets +#. (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "\"Desactivando iluminación.\"" #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" @@ -88298,19 +88777,19 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "5-point anchor" msgid_plural "5-point anchors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ancla de 5 puntos" +msgstr[1] "anclas de 5 puntos" #. ~ Use action msg for {'str': '5-point anchor'}. #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "A LED light in the %s LED flickers on." -msgstr "" +msgstr "El LED de la %s titila y se prende." #. ~ Use action need_charges_msg for {'str': '5-point anchor'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "It seems like this device needs power." -msgstr "" +msgstr "Parece que este dispositivo necesita energía." #. ~ Description for {'str': '5-point anchor'} #: lang/json/TOOL_ARMOR_from_json.py @@ -88318,19 +88797,22 @@ msgid "" "A featureless, disc-shaped device mounted on a harness. The words " "\"X.E.D.R.A\" and \"5-point anchor\" are inscribed on its front and back." msgstr "" +"Es un aparato con forma de disco montado sobre un arnés. Tiene escritas las " +"palabras \"X.E.D.R.A.\" y \"ancla de 5 puntos\" en la parte de adelante y de" +" atrás." #: lang/json/TOOL_ARMOR_from_json.py msgid "5-point anchor (on)" msgid_plural "5-point anchors (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ancla de 5 puntos (enc.)" +msgstr[1] "anclas de 5 puntos (enc.)" #. ~ Use action msg for {'str': '5-point anchor (on)', 'str_pl': '5-point #. anchors (on)'}. #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "The %s LED light flickers off." -msgstr "" +msgstr "El LED de la %s titila y se apaga." #. ~ Description for {'str': '5-point anchor (on)', 'str_pl': '5-point anchors #. (on)'} @@ -88339,12 +88821,14 @@ msgid "" "The harness' shoulder mounted LED glows with a soft green hue. There's no " "further indication of anything happening." msgstr "" +"El LED en los hombros del arnés brilla con un suave tono verde. No hay otra " +"indicación de que algo esté sucediendo." #: lang/json/TOOL_ARMOR_from_json.py msgid "phase immersion suit" msgid_plural "phase immersion suits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "traje de inmersión fásica" +msgstr[1] "trajes de inmersión fásica" #. ~ Use action msg for {'str': 'phase immersion suit'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -88353,11 +88837,14 @@ msgid "" "Running suit integrity diagnostics…\n" "All systems operational." msgstr "" +"Iniciando\n" +"Haciendo diagnóstico de integridad del traje…\n" +"Todos los sistemas están funcionando." #. ~ Use action need_charges_msg for {'str': 'phase immersion suit'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "Warning: Operating on minimal power. Protection compromised." -msgstr "" +msgstr "Advertencia: Funcionando con la mínima energía. Protección en riesgo." #. ~ Description for {'str': 'phase immersion suit'} #: lang/json/TOOL_ARMOR_from_json.py @@ -88368,18 +88855,23 @@ msgid "" "unparalleled environmental protection, both in this Earth and beyond. Use " "it to turn it on." msgstr "" +"Cubierto de placas interconectadas de un metal reflectivo, este traje " +"avanzado parece tanto un armadura de placas como un traje de astronauta. " +"Diseñado para proteger al usuario durante las excursiones " +"intradimensionales, ofrece una protección ambiental inmejorable, tanto en la" +" Tierra como en otros lados. Usalo para encenderlo." #: lang/json/TOOL_ARMOR_from_json.py msgid "phase immersion suit (on)" msgid_plural "phase immersion suits (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "traje de inmersión fásica (enc.)" +msgstr[1] "trajes de inmersión fásica (enc.)" #. ~ Use action msg for {'str': 'phase immersion suit (on)', 'str_pl': 'phase #. immersion suits (on)'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "Suit shutting down." -msgstr "" +msgstr "Traje apagándose." #. ~ Description for {'str': 'phase immersion suit (on)', 'str_pl': 'phase #. immersion suits (on)'} @@ -88389,6 +88881,9 @@ msgid "" "resembles both plate armor and an astronaut's spacesuit. It is turned on, " "and continually draining power. Use it to turn it off." msgstr "" +"Cubierto de placas interconectadas de un metal reflectivo, este traje " +"avanzado parece tanto un armadura de placas como un traje de astronauta. " +"Está encendido y utilizando la energía. Usalo para apagarlo." #: lang/json/TOOL_ARMOR_from_json.py msgid "rebreather mask" @@ -88713,6 +89208,9 @@ msgid "" "illuminator, allowing you to see in the dark. It is turned on, and " "continually draining batteries. Use it to turn them off." msgstr "" +"Es un par de lentes alimentados con baterías que amplifican la luz con un " +"iluminador infrarrojo, lo que te permite ver en la oscuridad. Están " +"prendidos, consumiendo gradualmente sus baterías. Usalos para apagarlos." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of infrared goggles" @@ -89457,8 +89955,8 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "electric guitar" msgid_plural "electric guitars" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "guitarra eléctrica" +msgstr[1] "guitarras eléctricas" #. ~ Description for {'str': 'electric guitar'} #: lang/json/TOOL_ARMOR_from_json.py @@ -89466,6 +89964,8 @@ msgid "" "A standard factory-made electric guitar. It's probably better at smashing " "heads than melting faces, these days. Has a strap." msgstr "" +"Es una guitarra eléctrica estándar. Probablemente, en estos días sea más " +"útil para reventar una cabeza que para tocar. Tiene una correa." #: lang/json/TOOL_ARMOR_from_json.py msgid "bagpipes" @@ -89536,6 +90036,10 @@ msgid "" " sounds over a certain decibel amount when turned on. The earmuffs are " "currently off." msgstr "" +"Es un par de orejeras que utilizan los tiradores. Sin baterías o cuando " +"están apagadas funcionan como protectores normales para bloquear el sonido. " +"Cuando están encendidas, bloquean sonidos de hasta cierta cantidad de " +"decibeles. Ahora están apagados." #. ~ Description for {'str_sp': "shooter's earmuffs"} #: lang/json/TOOL_ARMOR_from_json.py @@ -89564,8 +90068,8 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "makeshift stethoscope" msgid_plural "makeshift stethoscopes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "estetoscopio improvisado" +msgstr[1] "estetoscopios improvisados" #. ~ Description for {'str': 'makeshift stethoscope'} #: lang/json/TOOL_ARMOR_from_json.py @@ -89573,6 +90077,8 @@ msgid "" "This is a relatively cumbersome DIY child's medical listening toy. Use it " "to listen to things. Closely." msgstr "" +"Es un juguete médico infantil para oír, un poco incómodo. Usalo para " +"escuchar cosas. Más de cerca." #: lang/json/TOOL_ARMOR_from_json.py msgid "solar backpack (folded)" @@ -89654,8 +90160,8 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "scuba tank" msgid_plural "scuba tanks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque de buceo" +msgstr[1] "tanques de buceo" #. ~ Description for {'str': 'scuba tank'} #. ~ Description for {'str': 'scuba tank (on)', 'str_pl': 'scuba tanks (on)'} @@ -89665,18 +90171,21 @@ msgid "" "compressed mixture of oxygen and nitrogen. It is equipped with an on-demand" " regulator and a mouthpiece designed mostly for underwater use." msgstr "" +"Es un tanque de buceo de alta presión, de 232 bar, que puede contener hasta " +"12lts de mezcla comprimida de oxígeno y nitrógeno. Está equipado con " +"regulador y boquilla diseñados más que nada para usar debajo del agua." #: lang/json/TOOL_ARMOR_from_json.py msgid "scuba tank (on)" msgid_plural "scuba tanks (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque de buceo (enc.)" +msgstr[1] "tanques de buceo (enc.)" #: lang/json/TOOL_ARMOR_from_json.py msgid "small scuba tank" msgid_plural "small scuba tanks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque pequeño de buceo" +msgstr[1] "tanques pequeños de buceo" #. ~ Description for {'str': 'small scuba tank'} #. ~ Description for {'str': 'small scuba tank (on)', 'str_pl': 'small scuba @@ -89687,28 +90196,32 @@ msgid "" "4L of compressed mixture of oxygen and nitrogen. It is equipped with an on-" "demand regulator and a mouthpiece designed mostly for underwater use." msgstr "" +"Es un tanque pequeño de buceo de alta presión de reserva, de 200 bar, que " +"puede contener hasta 4lts de mezcla comprimida de oxígeno y nitrógeno. Está " +"equipado con regulador y boquilla diseñados más que nada para usar debajo " +"del agua." #: lang/json/TOOL_ARMOR_from_json.py msgid "small scuba tank (on)" msgid_plural "small scuba tanks (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tanque pequeño de buceo (enc.)" +msgstr[1] "tanques pequeños de buceo (enc.)" #: lang/json/TOOL_ARMOR_from_json.py msgid "electric blanket" msgid_plural "electric blankets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "manta eléctrica" +msgstr[1] "mantas eléctricas" #. ~ Use action msg for {'str': 'electric blanket'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the blanket's heating elements on." -msgstr "" +msgstr "Encendés los calentadores de la manta." #. ~ Use action need_charges_msg for {'str': 'electric blanket'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "The blanket's batteries are dead." -msgstr "" +msgstr "La manta se quedó sin baterías." #. ~ Description for {'str': 'electric blanket'} #: lang/json/TOOL_ARMOR_from_json.py @@ -89717,18 +90230,21 @@ msgid "" "Its cost is usually negligible, but with the power out, it chews through " "batteries insanely quickly." msgstr "" +"Es una manta climatizada hecha de poliéster. La cosa más cómoda que existe " +"en el planeta La Tierra. Generalmente, su costo es insignificante, pero " +"cuando no hay electricidad, se come las baterías muy rápido." #: lang/json/TOOL_ARMOR_from_json.py msgid "electric blanket (on)" msgid_plural "electric blankets (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "manta eléctrica (enc.)" +msgstr[1] "mantas eléctricas (enc.)" #. ~ Use action msg for {'str': 'electric blanket (on)', 'str_pl': 'electric #. blankets (on)'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the blanket's heating elements off." -msgstr "" +msgstr "Apagás los calentadores de la manta." #. ~ Description for {'str': 'electric blanket (on)', 'str_pl': 'electric #. blankets (on)'} @@ -89737,12 +90253,14 @@ msgid "" "A heated blanket made of polyster. It's turned on, making it nice and " "toasty while it lasts." msgstr "" +"Es una manta climatizada hecha de poliéster. Está encendida, lo que la hace " +"agradable y calentita mientras dure." #: lang/json/TOOL_ARMOR_from_json.py msgid "Foodperson mask" msgid_plural "Foodperson masks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "máscara Foodperson" +msgstr[1] "máscaras Foodperson" #. ~ Use action msg for {'str': 'Foodperson mask'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -89750,28 +90268,67 @@ msgid "" "Your HUD lights-up: \"Greetings Foodperson, your shift begins now. Good " "luck!\"" msgstr "" +"Tu HUD se enciende: \"Saludos, Foodperson, tu turno comienza en este " +"momento. ¡Buena suerte!\"" #. ~ Use action need_charges_msg for {'str': 'Foodperson mask'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "The mask's batteries are dead." -msgstr "" +msgstr "La máscara se quedó sin baterías." #. ~ Description for {'str': 'Foodperson mask'} #: lang/json/TOOL_ARMOR_from_json.py msgid "Foodperson, the mascot your stomach deserves!" -msgstr "" +msgstr "Foodperson, ¡la mascota que tu estómago se merece!" #: lang/json/TOOL_ARMOR_from_json.py msgid "Foodperson mask (on)" msgid_plural "Foodperson masks (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "máscara Foodperson (enc.)" +msgstr[1] "máscaras Foodperson (enc.)" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "campera antiexplosivos" +msgstr[1] "camperas antiexplosivos" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" +"Es una campera gruesa con protección resistente construidas de kevlar y " +"nomex que son parte del traje antiexplosivos. Están diseñados para proteger " +"contra la presión, fragmentación, impacto y calor." + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "campera ligera antiexplosivos" +msgstr[1] "camperas ligeras antiexplosivos" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "" +"Es una campera con protección construidas de kevlar y nomex diseñados para " +"proteger contra la presión, fragmentación, impacto y calor en ambientes " +"hostiles. Son más livianas que la armadura antiexplosivos normal, para " +"brindar mayor maniobrabilidad y puede ser puesta sobre cualquier armadura de" +" balística." #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "capa de holograma Mk.2" +msgstr[1] "capas de holograma Mk.2" #. ~ Description for {'str': 'hologram cloak mk.2'} #: lang/json/TOOL_ARMOR_from_json.py @@ -89781,23 +90338,28 @@ msgid "" " free, probably by syphoning excess energy from some unknown " "hyperdimensional space." msgstr "" +"Es una capa que cuando está activada creará un señuelo holográfico de quien " +"la usa. Está alimentada por un generador experimental de energía " +"n-dimensión, y se recargará sola lentamente, probablemente tomando el exceso" +" de energía de algún espacio hiperdimensional desconocido." #: lang/json/TOOL_ARMOR_from_json.py msgid "caster" msgid_plural "casters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conjurador" +msgstr[1] "conjuradores" #. ~ Description for {'str': 'caster'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A generic techno doodad used to cast spells." msgstr "" +"Es un aparatito tecnológico genérico que se usa para conjurar hechizos." #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram transposition caster" msgid_plural "hologram transposition casters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conjurador de transposición de holograma" +msgstr[1] "conjuradores de transposición de holograma" #. ~ Description for {'str': 'hologram transposition caster'} #: lang/json/TOOL_ARMOR_from_json.py @@ -89805,12 +90367,14 @@ msgid "" "A small metallic sphere with a recessed bottom up top. When activated it " "will allow you to swap positions with an existing hologram." msgstr "" +"Es una pequeña esfera metálica con un hueco en la parte de abajo. Cuando se " +"lo activa te permitirá intercambiar lugares con un holograma ya existente." #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram flare caster" msgid_plural "hologram flare casters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conjurador de destello de holograma" +msgstr[1] "conjuradores de destello de holograma" #. ~ Description for {'str': 'hologram flare caster'} #: lang/json/TOOL_ARMOR_from_json.py @@ -89819,12 +90383,15 @@ msgid "" "will allow you to select an hologram, which will explode in a blinding " "flash, stunning anything nearby." msgstr "" +"Es una pequeña esfera metálica con un hueco en la parte de abajo. Cuando se " +"lo activa te permitirá seleccionar un holograma que explotará en un destello" +" cegador, aturdiendo cualquier cosa cercana." #: lang/json/TOOL_ARMOR_from_json.py msgid "decoy caster" msgid_plural "decoy casters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conjurador de señuelo" +msgstr[1] "conjuradores de señuelo" #. ~ Description for {'str': 'decoy caster'} #: lang/json/TOOL_ARMOR_from_json.py @@ -89832,12 +90399,14 @@ msgid "" "A small metallic sphere with a recessed bottom up top. When activated it " "will a holographic decoy in a location of your choosing." msgstr "" +"Es una pequeña esfera metálica con un hueco en la parte de abajo. Cuando se " +"lo activa creará un señuelo holográfico en el lugar que elijas." #: lang/json/TOOL_ARMOR_from_json.py msgid "decoy field caster" msgid_plural "decoy field casters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conjurador de campo señuelo" +msgstr[1] "conjuradores de campo señuelo" #. ~ Description for {'str': 'decoy field caster'} #: lang/json/TOOL_ARMOR_from_json.py @@ -89845,17 +90414,19 @@ msgid "" "A small metallic sphere with a recessed bottom up top. When activated it " "will create several holographic decoys around you." msgstr "" +"Es una pequeña esfera metálica con un hueco en la parte de abajo. Cuando se " +"lo activa creará varios señuelos holográficos alrededor tuyo." #: lang/json/TOOL_ARMOR_from_json.py msgid "hazardous environment helmet" msgid_plural "hazardous environment helmets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "casco para ambientes peligrosos" +msgstr[1] "cascos para ambientes peligrosos" #. ~ Use action msg for hazardous environment helmet. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the helmet's headlamp on." -msgstr "" +msgstr "Encendés la linterna frontal del casco." #. ~ Description for hazardous environment helmet #: lang/json/TOOL_ARMOR_from_json.py @@ -89865,12 +90436,16 @@ msgid "" "excellent protection from airborne contaminants. It has a mounted LED " "headlamp, powered by standard batteries." msgstr "" +"Diseñado para ser compatible con el traje HEV, la protección física de este " +"casco es básica, en el mejor de los casos, pero lo compensa con un " +"reciclador de aire que brinda excelente protección contra los contaminantes " +"del aire. Tiene un linterna frontal LED alimentada con baterías comunes." #: lang/json/TOOL_ARMOR_from_json.py msgid "hazardous environment helmet (on)" msgid_plural "hazardous environment helmets (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "casco para ambientes peligrosos (enc.)" +msgstr[1] "cascos para ambientes peligrosos (enc.)" #. ~ Description for {'str': 'hazardous environment helmet (on)', 'str_pl': #. 'hazardous environment helmets (on)'} @@ -89881,6 +90456,11 @@ msgid "" "excellent protection from airborne contaminants. Its light is on, " "illuminating the area at a cost of batteries." msgstr "" +"Diseñado para ser compatible con el traje HEV, la protección física de este " +"casco es básica, en el mejor de los casos, pero lo compensa con un " +"reciclador de aire que brinda excelente protección contra los contaminantes " +"del aire. Tiene la linterna encendida, iluminando el área y consumiendo " +"batería." #: lang/json/TOOL_ARMOR_from_json.py lang/json/TOOL_from_json.py #: lang/json/ammunition_type_from_json.py @@ -89899,6 +90479,13 @@ msgid "" "waterproofed to protect the delicate electronics. Has it's own custom " "battery, with higher capacity and rechargeable, but not removeable" msgstr "" +"Es un sistema de alimentación ininterrumpida, o UPS. Es un dispositivo " +"desarrollado en conjunto por intereses militares y científicos, por su uso " +"en combate y en el campo. El UPS está diseñado para alimentar armaduras y " +"algunas armas, pero sus baterías se consumen rápidamente. Puede ser usado " +"alrededor de una pierna para fácil acceso, y es impermeable para proteger " +"sus delicados electrónicos. Tiene su propia batería recargable y con alta " +"capacidad, pero que no se puede sacar." #: lang/json/TOOL_ARMOR_from_json.py lang/json/TOOL_from_json.py msgid "advanced UPS" @@ -89915,190 +90502,223 @@ msgid "" "slimmer and lighter to wear. Sadly, its plutonium reactor can't be charged " "in UPS charging station." msgstr "" +"Es una versión mejorada del sistema de alimentación ininterrumpida, o UPS. " +"Este dispositivo ha sido rediseñado significativamente para proveer una " +"mayor eficacia y también para consumir celdas de combustible de plutonio, en" +" lugar de baterías, y es más fina y más liviana para usar. Lamentablemente, " +"su reactor de plutonio no puede ser cargador en una estación de carga UPS." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT S-I G.E.A.R" msgid_plural "CRIT S-I G.E.A.Rs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "CRIT S-I G.E.A.R" +msgstr[1] "CRIT S-I G.E.A.R" #. ~ Description for CRIT S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into " -"your spinal cord, this device improves your overall physique and provides " -"basic information on your surroundings." +"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" +" spinal cord, this device improves your overall physique and provides basic " +"information on your surroundings." msgstr "" +"Es el Arnés de Asistencia a Ingeniería estándar de C.R.I.T. Enchufado a tu " +"espina dorsal, este dispositivo mejor tu desempeño físico y brinda " +"información básico de lo que te rodea." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT gasmask (off)" msgid_plural "CRIT gasmasks (off)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "máscara de gas CRIT (apag.)" +msgstr[1] "máscaras de gas CRIT (apag.)" #. ~ Use action msg for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD booting up…" -msgstr "" +msgid "CRIT HUD booting up…" +msgstr "Iniciando HUD de CRIT…" #. ~ Use action need_charges_msg for {'str': 'CRIT gasmask (off)', 'str_pl': #. 'CRIT gasmasks (off)'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "Power levels too low for safe boot up" -msgstr "" +msgstr "Niveles de energía muy bajos para iniciar" #. ~ Description for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line " -"electronics and lined with Kevlar for extra protection in order to keep " -"one's head where it should be. Various filters and other high tech wizardry" -" allow for enhanced oxygen intake and safety even under bombardment. It has" -" an integrated HUD and the option to turn it on for more features." +"This is a heavily modified Spec Ops modified gasmask, fitted with top-of-" +"the-line electronics and lined with Kevlar for extra protection in order to " +"keep one's head where it should be. Various filters and other high tech " +"wizardry allow for enhanced oxygen intake and safety even under bombardment." +" It has an integrated HUD and the option to turn it on for more features." msgstr "" +"Esta es una máscara de gas de Operaciones Especiales muy modificada, con " +"electrónicos de tope de línea agregados e interior de Kevlar para mayor " +"protección, con el fin de mantener la cabeza donde debe estar. Diversos " +"filtros y otra tecnología hechicera le permite mejorar el ingreso de oxígeno" +" y la seguridad incluso bajo bombardeos. Tiene un HUD integrado y la opción " +"de encenderlo para acceder a más opciones." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT gasmask (on)" msgid_plural "CRIT gasmasks (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "máscara de gas CRIT (enc.)" +msgstr[1] "máscaras de gas CRIT (enc.)" #. ~ Use action msg for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD deactivating." -msgstr "" +msgid "CRIT HUD deactivating." +msgstr "Desactivando HUD de CRIT…" #. ~ Description for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " -"draining power for the HUD, low-level nightvision and other protective " -"elements." +"This a heavily modified gasmask. It is currently on and draining power for " +"the HUD, low-level nightvision and other protective elements." msgstr "" +"Esta es una máscara de gas muy modificada. En este momento está encendida y " +"consumiendo energía para el HUD, la visión nocturna de bajo nivel y otros " +"elementos protectores." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT EM vest (off)" msgid_plural "CRIT EM vests (off)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "chaleco EM CRIT (apag.)" +msgstr[1] "chalecos EM CRIT (apag.)" #. ~ Use action msg for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T EM booting up…" -msgstr "" +msgid "CRIT EM booting up…" +msgstr "Iniciando EM de CRIT…" #. ~ Use action need_charges_msg for {'str': 'CRIT EM vest (off)', 'str_pl': #. 'CRIT EM vests (off)'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "Power levels too low for safe bootup…" -msgstr "" +msgstr "Niveles de energía muy bajos para iniciar…" #. ~ Description for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments and reactive servos which protects its wearer and assists in " -"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec" -" Ops for its ease of use and manuverability. Turn it on for suit mode, " -"extra protection and movement." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments and" +" reactive servos which protects its wearer and assists in movement at the " +"cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its " +"ease of use and manuverability. Turn it on for suit mode, extra protection " +"and movement." msgstr "" +"El chaleco EM (movimiento mejorado) del grupo de Operaciones Especiales " +"posee filamentos de alta tecnología y servos reactivos que protegen al " +"usuario y lo asiste en el movimiento, consumiendo una gran cantidad de " +"energía. Es comúnmente utilizado por los de Operaciones Especiales de " +"C.R.I.T. por su facilidad de uso y maniobrabilidad. Hay que encenderlo para " +"habilitar el modo traje, con protección y movimientos mejorados." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT EM vest (on)" msgid_plural "CRIT EM vests (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "chaleco EM CRIT (enc.)" +msgstr[1] "chalecos EM CRIT (enc.)" #. ~ Use action menu_text for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM #. vests (on)'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "Turn off armor" -msgstr "" +msgstr "Apagar armadura" #. ~ Use action msg for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T E.M powering off…" -msgstr "" +msgid "CRIT EM powering off…" +msgstr "Apagando EM de CRIT…" #. ~ Description for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments, reactive servos and a generator which pumps a crystallized liquid" -" that protects its wearer from most heavy combat situations at the cost of " -"extreme power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is" -" currently in suit form and draining your UPS power at high rates." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments, " +"reactive servos and a generator which pumps a crystallized liquid that " +"protects its wearer from most heavy combat situations at the cost of extreme" +" power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " +"currently in suit form and draining your UPS power at high rates." msgstr "" +"El chaleco de movimiento mejorado del grupo de Operaciones Especiales posee " +"filamentos de alta tecnología, servos reactivos y un generador que envía " +"líquido cristalizado y protege a su usuario en las situaciones más " +"complicadas de combate, consumiendo cantidades extremas de energía. Es " +"comúnmente utilizado por los de Operaciones Especiales de C.R.I.T. Este " +"chaleco está actualmente en el modo traje y consume la energía del UPS a " +"gran velocidad." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT helmet (off)" msgid_plural "CRIT helmets (off)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "casco CRIT (apag.)" +msgstr[1] "cascos CRIT (apag.)" #. ~ Use action msg for {'str': 'CRIT helmet (off)', 'str_pl': 'CRIT helmets #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "You turn the %s on." -msgstr "" +msgstr "Encendés el %s." #. ~ Description for {'str': 'CRIT helmet (off)', 'str_pl': 'CRIT helmets #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection." msgstr "" +"Es un casco común. Protege la capocha y tiene una malla elástica de acero " +"aislada para proteger y abrigar el cuello." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT helmet (on)" msgid_plural "CRIT helmets (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "casco CRIT (enc.)" +msgstr[1] "cascos CRIT (enc.)" #. ~ Use action msg for {'str': 'CRIT helmet (on)', 'str_pl': 'CRIT helmets #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "You turn the %s off." -msgstr "" +msgstr "Apagás el %s." #. ~ Description for {'str': 'CRIT helmet (on)', 'str_pl': 'CRIT helmets #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection. A tactically dim " -"flashlight is attached to the side. This light is currently on and drawing " -"power." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection. A tactically dim flashlight is " +"attached to the side. This light is currently on and drawing power." msgstr "" +"Es un casco común. Protege la capocha y tiene una malla elástica de acero " +"aislada para proteger y abrigar el cuello. Tiene una débil linterna táctica " +"en el costado. La luz está prendida en este momento, consumiendo energía." #: lang/json/TOOL_ARMOR_from_json.py msgid "magic leather belt" msgid_plural "magic leather belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cinturón mágico de cuero" +msgstr[1] "cinturones mágicos de cuero" #: lang/json/TOOL_ARMOR_from_json.py msgid "Belt of Haste" msgid_plural "Belts of Haste" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Cinturón de Apuro" +msgstr[1] "Cinturones de Apuro" #: lang/json/TOOL_ARMOR_from_json.py msgid "Megingjörð" msgid_plural "Megingjörð" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Megingjörð" +msgstr[1] "Megingjörð" #. ~ Description for {'str_sp': 'Megingjörð'} #: lang/json/TOOL_ARMOR_from_json.py @@ -90106,12 +90726,14 @@ msgid "" "The mythical belt of Thor, god of thunder. Or at least so it appears. It " "doubles the wearer's base strength." msgstr "" +"Es el mítico cinturón de Thor, el dios del trueno. O por lo menos eso " +"parece. Duplica la fuerza del usuario." #: lang/json/TOOL_ARMOR_from_json.py msgid "Lesser Girdle of Pockets" msgid_plural "Lesser Girdles of Pockets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Faja Menor con Bolsillos" +msgstr[1] "Fajas Menores con Bolsillos" #. ~ Description for {'str': 'Lesser Girdle of Pockets', 'str_pl': 'Lesser #. Girdles of Pockets'} @@ -90123,18 +90745,21 @@ msgid "" "that hold a lot more than they should, and the weight of their contents is " "greatly reduced." msgstr "" +"Es una faja ancha que se ajusta alrededor de tu cintura, cubierta con varios" +" pequeñas bolsas que pueden contener más de lo que deberían, y además " +"reducen el peso de su contenido." #: lang/json/TOOL_ARMOR_from_json.py msgid "Greater Girdle of Pockets" msgid_plural "Greater Girdles of Pockets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Faja Mayor con Bolsillos" +msgstr[1] "Fajas Mayores con Bolsillos" #: lang/json/TOOL_ARMOR_from_json.py msgid "Belt of Weaponry" msgid_plural "Belts of Weaponry" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Cinturón de Arsenal" +msgstr[1] "Cinturones de Arsenal" #. ~ Description for {'str': 'Belt of Weaponry', 'str_pl': 'Belts of #. Weaponry'} @@ -90144,12 +90769,15 @@ msgid "" "weapon into it in the blink of an eye, and it seemingly stores them " "somewhere else." msgstr "" +"Es una faja ancha que se ajusta alrededor de tu cintura, en la cual podés " +"envainar o enfundar cualquier arma en un segundo, y pareciera que la guarda " +"en otro lugar." #: lang/json/TOOL_ARMOR_from_json.py msgid "Belt of The Iron Whip" msgid_plural "Belts of the Iron Whip" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Cinturón de Látigo de Hierro" +msgstr[1] "Cinturones de Látigo de Hierro" #. ~ Use action msg for {'str': 'Belt of The Iron Whip', 'str_pl': 'Belts of #. the Iron Whip'}. @@ -90158,6 +90786,8 @@ msgid "" "You grab the belt and it uncoils to become a flexible metal whip in your " "hand!" msgstr "" +"¡Agarrás el cinturón y se desenrosca para convertirse en un látigo de metal " +"flexible! " #. ~ Description for {'str': 'Belt of The Iron Whip', 'str_pl': 'Belts of the #. Iron Whip'} @@ -90166,12 +90796,14 @@ msgid "" "A braided but flexible belt seemingly made of metal. You can activate it to" " transform it into a whip and flay your enemies." msgstr "" +"Es un cinturón trenzado pero flexible que parece estar hecho de metal. Podés" +" activarlo para transformarlo en un látigo y castigar a tus enemigos." #: lang/json/TOOL_ARMOR_from_json.py msgid "escape boots" msgid_plural "escape boots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "botas de escape" +msgstr[1] "botas de escape" #. ~ Description for {'str_sp': 'escape boots'} #: lang/json/TOOL_ARMOR_from_json.py @@ -90180,30 +90812,34 @@ msgid "" "steel, these boots can be activated once a day to escape from nasty " "situations, teleporting you a good distance in a random direction." msgstr "" +"Son unas botas de cuero gastado y acero, que son extremadamente cómodas y " +"resistentes. Estas botas pueden ser activadas una vez por día para escapar " +"de situaciones feas, teletransportándote una buena distancia en dirección " +"aleatoria." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of steel bracers" msgid_plural "pairs of steel bracers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de brazales de acero" +msgstr[1] "pares de brazales de acero" #. ~ Description for {'str': 'pair of steel bracers', 'str_pl': 'pairs of #. steel bracers'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A full assembly of medieval arm protection." -msgstr "" +msgstr "Es un equipo completo de protección medieval para brazos." #: lang/json/TOOL_ARMOR_from_json.py msgid "steel bracer" msgid_plural "steel bracers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "brazal de acero" +msgstr[1] "brazales de acero" #: lang/json/TOOL_ARMOR_from_json.py msgid "bracer of lesser defense" msgid_plural "bracers of lesser defense" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "brazal de defensa menor" +msgstr[1] "brazales de defensa menor" #. ~ Description for {'str': 'bracer of lesser defense', 'str_pl': 'bracers of #. lesser defense'} @@ -90213,12 +90849,15 @@ msgid "" "the top, silver accentuates the intricate design. It protects your body " "with a light aura to reduce damage you take." msgstr "" +"Es un brazal de acero liviano pero extremadamente resistente, adornado con " +"un escudo gravado en la parte superior, y plata acentuando el intrincado " +"diseño. Protege tu cuerpo con un aura leve que reduce el daño que recibís." #: lang/json/TOOL_ARMOR_from_json.py msgid "bracer of greater defense" msgid_plural "bracers of greater defense" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "brazal de defensa mayor" +msgstr[1] "brazales de defensa mayor" #. ~ Description for {'str': 'bracer of greater defense', 'str_pl': 'bracers #. of greater defense'} @@ -90228,12 +90867,15 @@ msgid "" "the top, gold accentuates the intricate design. It protects your body with " "a strong aura to reduce damage you take." msgstr "" +"Es un brazal de acero liviano pero extremadamente resistente, adornado con " +"un escudo gravado en la parte superior, y oro acentuando el intrincado " +"diseño. Protege tu cuerpo con un aura fuerte que reduce el daño que recibís." #: lang/json/TOOL_ARMOR_from_json.py msgid "lesser bracer of lightning" msgid_plural "lesser bracers of lightning" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "brazal menor de rayo" +msgstr[1] "brazales menores de rayo" #. ~ Description for {'str': 'lesser bracer of lightning', 'str_pl': 'lesser #. bracers of lightning'} @@ -90244,12 +90886,16 @@ msgid "" "protects your body with a light aura to reduce electrical damage you take, " "as well as being able to release a Jolt spell 3 times a day." msgstr "" +"Es un brazal de acero liviano pero extremadamente resistente, adornado con " +"rayos gravados en la parte superior, y plata acentuando el intrincado " +"diseño. Protege tu cuerpo con un aura leve que reduce el daño eléctrico que " +"recibís, y también te permite usar el hechizo Descarga, 3 veces por día." #: lang/json/TOOL_ARMOR_from_json.py msgid "greater bracer of lightning" msgid_plural "greater bracers of lightning" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "brazal mayor de rayo" +msgstr[1] "brazales mayores de rayo" #. ~ Description for {'str': 'greater bracer of lightning', 'str_pl': 'greater #. bracers of lightning'} @@ -90260,23 +90906,28 @@ msgid "" "protects your body with a strong aura to reduce electrical damage you take, " "as well as being able to release a Lightning Bolt spell 3 times a day." msgstr "" +"Es un brazal de acero liviano pero extremadamente resistente, adornado con " +"rayos gravados en la parte superior, y oro acentuando el intrincado diseño. " +"Protege tu cuerpo con un aura fuerte que reduce el daño eléctrico que " +"recibís, y también te permite usar el hechizo Rayo Eléctrico, 3 veces por " +"día." #: lang/json/TOOL_ARMOR_from_json.py msgid "magic mask" msgid_plural "magic masks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "máscara mágica" +msgstr[1] "máscaras mágicas" #. ~ Description for magic mask #: lang/json/TOOL_ARMOR_from_json.py msgid "A generic magic mask." -msgstr "" +msgstr "Es una máscara mágica común." #: lang/json/TOOL_ARMOR_from_json.py msgid "mask of disappearance" msgid_plural "masks of disappearance" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "máscara de desaparición" +msgstr[1] "máscaras de desaparición" #. ~ Description for {'str': 'mask of disappearance', 'str_pl': 'masks of #. disappearance'} @@ -90285,12 +90936,15 @@ msgid "" "A mask with no facial features at all, just eye and mouth holes, upon " "activation it makes everything ignore your presence for a while." msgstr "" +"Es una máscara que no tiene ningún rasgo facial, solamente agujeros para los" +" ojos y la boca. Cuando se la activa, hace que todo ignore tu presencia por " +"un rato." #: lang/json/TOOL_ARMOR_from_json.py msgid "mask of perfect vision" msgid_plural "masks of perfect vision" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "máscara de visión perfecta" +msgstr[1] "máscaras de visión perfecta" #. ~ Description for {'str': 'mask of perfect vision', 'str_pl': 'masks of #. perfect vision'} @@ -90300,44 +90954,46 @@ msgid "" "face, it has large lenses that correct and greatly enhance the vision of the" " wearer." msgstr "" +"Es media máscara decididamente steampunk que cubre el área de los ojos, " +"tiene grandes lentes que corrigen mejoran mucho la visión del usuario." #: lang/json/TOOL_ARMOR_from_json.py msgid "copper magic ring" msgid_plural "copper magic rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo mágico de cobre" +msgstr[1] "anillos mágicos de cobre" #. ~ Description for copper magic ring #: lang/json/TOOL_ARMOR_from_json.py msgid "A generic copper magic ring." -msgstr "" +msgstr "Es un anillo mágico común de cobre." #: lang/json/TOOL_ARMOR_from_json.py msgid "magic ring" msgid_plural "magic rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo mágico" +msgstr[1] "anillos mágicos" #. ~ Description for magic ring #: lang/json/TOOL_ARMOR_from_json.py msgid "A generic silver magic ring." -msgstr "" +msgstr "Es un anillo mágico común de plata." #. ~ Description for magic ring #: lang/json/TOOL_ARMOR_from_json.py msgid "A generic gold magic ring." -msgstr "" +msgstr "Es un anillo mágico común de oro." #. ~ Description for magic ring #: lang/json/TOOL_ARMOR_from_json.py msgid "A generic platinum magic ring." -msgstr "" +msgstr "Es un anillo mágico común de platino." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of blades" msgid_plural "rings of blades" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de cuchillas" +msgstr[1] "anillos de cuchillas" #. ~ Description for {'str': 'ring of blades', 'str_pl': 'rings of blades'} #: lang/json/TOOL_ARMOR_from_json.py @@ -90345,12 +91001,14 @@ msgid "" "An ornate silver ring engraved with daggers that conjures a near perfect " "throwing knife into your hand on activation." msgstr "" +"Es un decorado anillo de plata gravado con dagas que conjura un cuchillo " +"arrojadizo casi perfecto en tu mano al activarlo." #: lang/json/TOOL_ARMOR_from_json.py msgid "eel ring" msgid_plural "eel rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo anguila" +msgstr[1] "anillos anguila" #. ~ Description for eel ring #: lang/json/TOOL_ARMOR_from_json.py @@ -90358,12 +91016,14 @@ msgid "" "A thin silver band ring, depicting an eel coiled on itself. Allows you to " "dodge an extra attack per turn." msgstr "" +"Es un fino anillo de plata con el dibujo de una anguila enrollada sobre sí " +"misma. Te permite esquivar un ataque extra por turno." #: lang/json/TOOL_ARMOR_from_json.py msgid "bicephalous eel ring" msgid_plural "bicephalous eel rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo anguila bicéfala" +msgstr[1] "anillos anguila bicéfala" #. ~ Description for {'str': 'bicephalous eel ring'} #: lang/json/TOOL_ARMOR_from_json.py @@ -90371,108 +91031,116 @@ msgid "" "A thin gold band ring, depicting a bicephalous eel coiled on itself. Allows" " you to dodge two extra attacks per turn." msgstr "" +"Es un fino anillo de oro con el dibujo de una anguila de dos cabezas " +"enrollada sobre sí misma. Te permite esquivar dos ataques extras por turno." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of strength +1" msgid_plural "rings of strength +1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de fuerza +1" +msgstr[1] "anillos de fuerza +1" #. ~ Description for {'str': 'ring of strength +1', 'str_pl': 'rings of #. strength +1'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A copper ring that makes you a little stronger when you wear it." msgstr "" +"Es un anillo de cobre que te hace un poco más fuerte cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of strength +2" msgid_plural "rings of strength +2" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de fuerza +2" +msgstr[1] "anillos de fuerza +2" #. ~ Description for {'str': 'ring of strength +2', 'str_pl': 'rings of #. strength +2'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A silver ring that makes you a good bit stronger when you wear it." -msgstr "" +msgstr "Es un anillo de plata que te hace más fuerte cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of strength +3" msgid_plural "rings of strength +3" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de fuerza +3" +msgstr[1] "anillos de fuerza +3" #. ~ Description for {'str': 'ring of strength +3', 'str_pl': 'rings of #. strength +3'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A golden ring that makes you surprisingly stronger when you wear it." msgstr "" +"Es un anillo de oro que te hace sorprendentemente fuerte cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of strength +4" msgid_plural "rings of strength +4" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de fuerza +4" +msgstr[1] "anillos de fuerza +4" #. ~ Description for {'str': 'ring of strength +4', 'str_pl': 'rings of #. strength +4'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A platinum ring that makes you much stronger when you wear it." msgstr "" +"Es un anillo de platino que te hace mucho más fuerte cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of dexterity +1" msgid_plural "rings of dexterity +1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de destreza +1" +msgstr[1] "anillos de destreza +1" #. ~ Description for {'str': 'ring of dexterity +1', 'str_pl': 'rings of #. dexterity +1'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A copper ring that makes you a little more agile when you wear it." msgstr "" +"Es un anillo de cobre que te hace un poco más ágil cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of dexterity +2" msgid_plural "rings of dexterity +2" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de destreza +2" +msgstr[1] "anillos de destreza +2" #. ~ Description for {'str': 'ring of dexterity +2', 'str_pl': 'rings of #. dexterity +2'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A silver ring that makes you a good bit more agile when you wear it." -msgstr "" +msgstr "Es un anillo de plata que te hace más ágil cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of dexterity +3" msgid_plural "rings of dexterity +3" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de destreza +3" +msgstr[1] "anillos de destreza +3" #. ~ Description for {'str': 'ring of dexterity +3', 'str_pl': 'rings of #. dexterity +3'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A golden ring that makes you surprisingly more agile when you wear it." msgstr "" +"Es un anillo de oro que te hace sorprendentemente ágil cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of dexterity +4" msgid_plural "rings of dexterity +4" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de destreza +4" +msgstr[1] "anillos de destreza +4" #. ~ Description for {'str': 'ring of dexterity +4', 'str_pl': 'rings of #. dexterity +4'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A platinum ring that makes you much more agile when you wear it." msgstr "" +"Es un anillo de platino que te hace mucho más ágil cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of intelligence +1" msgid_plural "rings of intelligence +1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de inteligencia +1" +msgstr[1] "anillos de inteligencia +1" #. ~ Description for {'str': 'ring of intelligence +1', 'str_pl': 'rings of #. intelligence +1'} @@ -90480,25 +91148,27 @@ msgstr[1] "" msgid "" "A copper ring that makes you a little more intelligent when you wear it." msgstr "" +"Es un anillo de cobre que te hace un poco más inteligente cuando te lo " +"ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of intelligence +2" msgid_plural "rings of intelligence +2" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de inteligencia +2" +msgstr[1] "anillos de inteligencia +2" #. ~ Description for {'str': 'ring of intelligence +2', 'str_pl': 'rings of #. intelligence +2'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" "A silver ring that makes you a good bit more intelligent when you wear it." -msgstr "" +msgstr "Es un anillo de plata que te hace más inteligente cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of intelligence +3" msgid_plural "rings of intelligence +3" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de inteligencia +3" +msgstr[1] "anillos de inteligencia +3" #. ~ Description for {'str': 'ring of intelligence +3', 'str_pl': 'rings of #. intelligence +3'} @@ -90506,24 +91176,28 @@ msgstr[1] "" msgid "" "A golden ring that makes you surprisingly more intelligent when you wear it." msgstr "" +"Es un anillo de oro que te hace sorprendentemente inteligente cuando te lo " +"ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of intelligence +4" msgid_plural "rings of intelligence +4" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de inteligencia +4" +msgstr[1] "anillos de inteligencia +4" #. ~ Description for {'str': 'ring of intelligence +4', 'str_pl': 'rings of #. intelligence +4'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A platinum ring that makes you much more intelligent when you wear it." msgstr "" +"Es un anillo de platino que te hace mucho más inteligente cuando te lo " +"ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of perception +1" msgid_plural "rings of perception +1" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de percepción +1" +msgstr[1] "anillos de percepción +1" #. ~ Description for {'str': 'ring of perception +1', 'str_pl': 'rings of #. perception +1'} @@ -90531,25 +91205,26 @@ msgstr[1] "" msgid "" "A copper ring that makes you a little more perceptive when you wear it." msgstr "" +"Es un anillo de cobre que te hace un poco más perceptivo cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of perception +2" msgid_plural "rings of perception +2" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de percepción +2" +msgstr[1] "anillos de percepción +2" #. ~ Description for {'str': 'ring of perception +2', 'str_pl': 'rings of #. perception +2'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" "A silver ring that makes you a good bit more perceptive when you wear it." -msgstr "" +msgstr "Es un anillo de plata que te hace más perceptivo cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of perception +3" msgid_plural "rings of perception +3" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillos de percepción +3" +msgstr[1] "anillos de percepción +3" #. ~ Description for {'str': 'ring of perception +3', 'str_pl': 'rings of #. perception +3'} @@ -90557,72 +91232,77 @@ msgstr[1] "" msgid "" "A golden ring that makes you eye-openingly more perceptive when you wear it." msgstr "" +"Es un anillo de oro que te hace reveladoramente perceptivo cuando te lo " +"ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of perception +4" msgid_plural "rings of perception +4" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillos de percepción +4" +msgstr[1] "anillos de percepción +4" #. ~ Description for {'str': 'ring of perception +4', 'str_pl': 'rings of #. perception +4'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A platinum ring that makes you much more perceptive when you wear it." msgstr "" +"Es un anillo de platino que te hace mucho más perceptivo cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of speed +3" msgid_plural "rings of speed +3" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de velocidad +3" +msgstr[1] "anillos de velocidad +3" #. ~ Description for {'str': 'ring of speed +3', 'str_pl': 'rings of speed #. +3'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A copper ring that makes you a little faster when you wear it." msgstr "" +"Es un anillo de cobre que te hace un poco más veloz cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of speed +5" msgid_plural "rings of speed +5" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de velocidad +5" +msgstr[1] "anillos de velocidad +5" #. ~ Description for {'str': 'ring of speed +5', 'str_pl': 'rings of speed #. +5'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A silver ring that makes you a good bit faster when you wear it." -msgstr "" +msgstr "Es un anillo de plata que te hace más veloz cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of speed +7" msgid_plural "rings of speed +7" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de velocidad +7" +msgstr[1] "anillos de velocidad +7" #. ~ Description for {'str': 'ring of speed +7', 'str_pl': 'rings of speed #. +7'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A golden ring that makes you quite hasty when you wear it." -msgstr "" +msgstr "Es un anillo de oro que te hace bastante veloz cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of speed +10" msgid_plural "rings of speed +10" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de velocidad +10" +msgstr[1] "anillos de velocidad +10" #. ~ Description for {'str': 'ring of speed +10', 'str_pl': 'rings of speed #. +10'} #: lang/json/TOOL_ARMOR_from_json.py msgid "A platinum ring that makes you much faster when you wear it." msgstr "" +"Es un anillo de platino que te hace mucho más veloz cuando te lo ponés." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of protection +2" msgid_plural "rings of protection +2" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de protección +2" +msgstr[1] "anillos de protección +2" #. ~ Description for {'str': 'ring of protection +2', 'str_pl': 'rings of #. protection +2'} @@ -90631,12 +91311,14 @@ msgid "" "A copper ring that reduces some of the force of damage you take when you " "wear it." msgstr "" +"Es un anillo de cobre que, cuando te lo ponés, reduce un poco la fuerza del " +"daño que recibís." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of protection +4" msgid_plural "rings of protection +4" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de protección +4" +msgstr[1] "anillos de protección +4" #. ~ Description for {'str': 'ring of protection +4', 'str_pl': 'rings of #. protection +4'} @@ -90645,12 +91327,14 @@ msgid "" "A silver ring that appreciably reduces some of the force of damage you take " "when you wear it." msgstr "" +"Es un anillo de plata que, cuando te lo ponés, reduce notoriamente la fuerza" +" del daño que recibís." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of protection +6" msgid_plural "rings of protection +6" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de protección +6" +msgstr[1] "anillos de protección +6" #. ~ Description for {'str': 'ring of protection +6', 'str_pl': 'rings of #. protection +6'} @@ -90659,12 +91343,14 @@ msgid "" "A golden ring that greatly reduces some of the force of damage you take when" " you wear it." msgstr "" +"Es un anillo de oro que, cuando te lo ponés, reduce mucho la fuerza del daño" +" que recibís." #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of protection +8" msgid_plural "rings of protection +8" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de protección +8" +msgstr[1] "anillos de protección +8" #. ~ Description for {'str': 'ring of protection +8', 'str_pl': 'rings of #. protection +8'} @@ -90673,6 +91359,8 @@ msgid "" "A platinum ring that vastly reduces some of the force of damage you take " "when you wear it." msgstr "" +"Es un anillo de platino que, cuando te lo ponés, reduce enormemente la " +"fuerza del daño que recibís." #: lang/json/TOOL_from_json.py msgid "RDX charge" @@ -90718,6 +91406,9 @@ msgid "" "Contains a core of primary explosive to ensure that the charge detonates " "completely and delivers its entire destructive power to everything in sight." msgstr "" +"Es un barril de metal lleno con 50 litros de RDX y chatarra. Contiene un " +"centro de explosivo primario para asegurar que la carga detone completamente" +" y emita su poder destructivo completo a todo lo que pueda." #: lang/json/TOOL_from_json.py msgid "nail bomb" @@ -90739,6 +91430,10 @@ msgid "" "surrounded by nails and a fuse. Use this item to light the fuse. You will " "then have five turns before it explodes; throwing it would be a good idea." msgstr "" +"Es una bomba improvisada, simple y medio incómoda, hecha de un recipiente " +"con un explosivo rodeado de clavos y una mecha. Hay que usarla para encender" +" la mecha. Después de eso, tenés cinco turnos antes de que explote. " +"Entonces, es una buena idea tirarla." #: lang/json/TOOL_from_json.py msgid "active nail bomb" @@ -90782,12 +91477,15 @@ msgid "" "A crude and bulky improvised bomb. Made from a container, an explosive " "surrounded by nails and a fuse. The fuse has been lit, you should throw it." msgstr "" +"Es una bomba improvisada, simple y medio incómoda, hecha de un recipiente " +"con un explosivo rodeado de clavos y una mecha. La mecha está prendida, lo " +"mejor sería que la TIRES." #: lang/json/TOOL_from_json.py msgid "fragment bomb" msgid_plural "fragment bombs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bomba de fragmentación" +msgstr[1] "bombas de fragmentación" #. ~ Description for {'str': 'fragment bomb'} #: lang/json/TOOL_from_json.py @@ -90797,12 +91495,16 @@ msgid "" "fuse. You will then have five turns before it explodes; throwing it would " "be a good idea." msgstr "" +"Es una bomba improvisada, simple y medio incómoda, hecha de un recipiente " +"con un explosivo rodeado de pequeños pedazos de metal y una mecha. Hay que " +"usarla para encender la mecha. Después de eso, tenés cinco turnos antes de " +"que explote. Entonces, es una buena idea tirarla." #: lang/json/TOOL_from_json.py msgid "active fragment bomb" msgid_plural "active fragment bombs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bomba de fragmentación activa" +msgstr[1] "bombas de fragmentación activas" #. ~ Description for {'str': 'active fragment bomb'} #: lang/json/TOOL_from_json.py @@ -90811,6 +91513,9 @@ msgid "" "surrounded by small pieces of metal and a fuse. The fuse has been lit, you " "should throw it." msgstr "" +"Es una bomba improvisada, simple y medio incómoda, hecha de un recipiente " +"con un explosivo rodeado de pequeños pedazos de metal y una mecha. La mecha " +"está prendida, lo mejor sería que la TIRES." #: lang/json/TOOL_from_json.py msgid "active RDX charge" @@ -90843,6 +91548,9 @@ msgid "" "The fuse has been lit and once it ignites the primary explosive, the charge " "will detonate and rain fire and steel on everything in sight." msgstr "" +"Es un barril de metal lleno con 50 litros de RDX y chatarra. La mecha ha " +"sido encendida y cuando llegue al explosivo primario, la carga detonará y " +"caerá una lluvia de fuego y acero sobre todo lo que esté cerca." #: lang/json/TOOL_from_json.py msgid "ANFO charge" @@ -90973,13 +91681,15 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "washcloth" msgid_plural "washcloths" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "repasador" +msgstr[1] "repasadores" #. ~ Description for {'str': 'washcloth'} #: lang/json/TOOL_from_json.py msgid "A piece of cloth that can be used for cleaning impervious surfaces." msgstr "" +"Es un pedazo de tela que puede ser usado para limpiar superficies " +"impermeables." #: lang/json/TOOL_from_json.py msgid "pipe bomb" @@ -91001,6 +91711,9 @@ msgid "" "to light the fuse, which gives you five turns to get away from it before it " "detonates. You'll need a lighter or some matches to use it." msgstr "" +"Es un pedazo de caño lleno de materiales explosivos. Usalo para encender la " +"mecha, lo que te da cinco turnos para alejarte antes de que detone. Vas a " +"necesitar un encendedor o fósforos para usarlo." #: lang/json/TOOL_from_json.py msgid "active pipe bomb" @@ -91039,6 +91752,9 @@ msgid "" "filled with black gunpowder and scrap metal, equipped with a long fuse. Use" " this item to light the fuse. Should explode in a few minutes…" msgstr "" +"Es un dispositivo explosivo casero, que consiste en una gran jarra de " +"plástico llena de pólvora negra y chatarra, equipada con una mecha larga. " +"Usala para encender la mecha. Debería explotar en pocos minutos…" #: lang/json/TOOL_from_json.py msgid "active black gunpowder charge" @@ -91060,8 +91776,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "betavoltaic cell" msgid_plural "betavoltaic cells" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "celda betavoltaica" +msgstr[1] "celdas betavoltaicas" #. ~ Description for {'str': 'betavoltaic cell'} #: lang/json/TOOL_from_json.py @@ -91073,12 +91789,18 @@ msgid "" "hundreds of dollars. Mostly they're a good way to brag to your neighbors " "that you have a nuclear power source in your house." msgstr "" +"¡Aprovechá el poder de la radiación en tu propia casa! Esto se parece a una " +"batería D, pero en realidad contiene capas plegadas de material radioactivo." +" Puede producir electricidad por varios años con un voltaje estable… pero es" +" apenas suficiente para alimentar un LED pequeño, y estas baterías valían " +"cientos de dólares. Más que nada sirven para presumir frente a tus vecinos " +"de que tenés energía nuclear en tu casa." #: lang/json/TOOL_from_json.py msgid "radioisotope thermoelectric generator" msgid_plural "radioisotope thermoelectric generators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "generador termoeléctrico radioisótopo" +msgstr[1] "generadores termoeléctricos radioisótopos" #. ~ Description for {'str': 'radioisotope thermoelectric generator'} #: lang/json/TOOL_from_json.py @@ -91091,6 +91813,14 @@ msgid "" "at only 2 Watts. Careful! Curium is great at making heat, and also " "releases deadly gamma radiation. Keep away from cellular life forms." msgstr "" +"¿Tus vecinos presumieron alguna vez acerca de sus copadas luces de noche " +"alimentadas con desintegración beta? ¡Ganales con esto! El generador " +"termoeléctrico radioisótopo CuppaTech 4 es un pedazo de metal de tres kilos " +"- la mayor parte, plomo - con un cartucho de curium-244 adentro. Es capaz de" +" generar unos 100-150 watts de energía termal, aunque su capacidad de " +"generación eléctrica es de un mínimo de solo 2 watts. ¡Cuidado! Curium es " +"genial para crear calor pero también genera radiación gamma mortal. Mantener" +" lejos de cualquier forma de vida celular." #: lang/json/TOOL_from_json.py msgid "basecamp charcoal smoker" @@ -91161,14 +91891,14 @@ msgstr "" #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "arc furnace" msgid_plural "arc furnaces" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "horno de arco eléctrico" +msgstr[1] "hornos de arco eléctrico" #: lang/json/TOOL_from_json.py msgid "teeth and claws" msgid_plural "teeth and claws" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dientes y garras" +msgstr[1] "dientes y garras" #: lang/json/TOOL_from_json.py msgid "integrated toolset" @@ -91185,8 +91915,8 @@ msgstr[1] "anteojos biónicos" #: lang/json/TOOL_from_json.py msgid "autonomous surgical scalpels" msgid_plural "autonomous surgical scalpels" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "escalpelo quirúrgico autónomo" +msgstr[1] "escalpelos quirúrgicos autónomos" #. ~ Description for {'str_sp': 'autonomous surgical scalpels'} #: lang/json/TOOL_from_json.py @@ -91194,6 +91924,9 @@ msgid "" "A system of surgical grade scalpels. They allow you to make precise cuts " "and can also be used as a high-quality butchering tool." msgstr "" +"Es un sistema de escalpelos quirúrgicos. Te permiten realizar cortes " +"precisos y pueden ser usados también como herramienta de carneo de alta " +"calidad." #: lang/json/TOOL_from_json.py msgid "bionic razor" @@ -91246,8 +91979,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "prototype I/O recorder" msgid_plural "prototype I/O recorders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "grabador I/O prototipo" +msgstr[1] "grabadores I/O prototipo" #. ~ Description for {'str': 'prototype I/O recorder'} #: lang/json/TOOL_from_json.py @@ -91255,6 +91988,8 @@ msgid "" "This small transparent card was attached to the prototype robot's CPU. It " "might contain the data the intercom spoke of." msgstr "" +"Esta pequeña tarjeta transparente estaba unida al CPU de un robot prototipo." +" Puede contener la información de la que habló el intercomunicador." #: lang/json/TOOL_from_json.py msgid "silver gas discount card" @@ -91293,8 +92028,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "jack o'lantern" msgid_plural "jack o'lanterns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lámpara de calabaza" +msgstr[1] "lámparas de calabaza" #. ~ Use action menu_text for {'str': "jack o'lantern"}. #. ~ Use action menu_text for {'str': 'Louisville Slaughterer'}. @@ -91306,44 +92041,47 @@ msgstr "Luz" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." -msgstr "" +msgid "You flip the switch in the jack o'lantern." +msgstr "Tocás el interruptor de la lámpara de calabaza." #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." +"face. It has a tiny LED light in it. It doesn't provide very much light." msgstr "" +"Es una linterna plástica que está pintada para parecer una calabaza con " +"cara. Tiene un pequeño LED adentro. No brinda demasiada iluminación." #: lang/json/TOOL_from_json.py msgid "spooky jack o'lantern" msgid_plural "jack o'lanterns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lámpara espeluznante de calabaza" +msgstr[1] "lámparas espeluznantea de calabaza" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." -msgstr "" +msgid "The LED winks out inside the lantern." +msgstr "El LED de adentro de la linterna titila y se apaga." #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"} #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is lit." +"very much light, but it can run for quite a long time. This lantern is lit." " The face shifts." msgstr "" +"Hay una gruesa vela LED adentro de la calabaza con cara. No brinda mucha luz" +" pero puede funcionar por mucho tiempo. La linterna está encendida. La cara " +"cambia." #: lang/json/TOOL_from_json.py msgid "yule wreath" msgid_plural "yule wreaths" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "corona navideña" +msgstr[1] "coronas navideñas" #. ~ Description for {'str': 'yule wreath'} #: lang/json/TOOL_from_json.py @@ -91351,12 +92089,14 @@ msgid "" "This decorative wreath can be deployed as furniture to decorate for the " "winter holidays." msgstr "" +"Esta corona decorativa puede ser usada para decorar durante las festividades" +" invernales." #: lang/json/TOOL_from_json.py msgid "makeshift grenade" msgid_plural "makeshift grenades" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "granada improvisada" +msgstr[1] "granadas improvisadas" #. ~ Use action menu_text for {'str': 'makeshift grenade'}. #. ~ Use action menu_text for {'str': 'flashbang'}. @@ -91375,7 +92115,7 @@ msgstr "Quitar gancho de seguridad" #. ~ Use action msg for {'str': 'makeshift grenade'}. #: lang/json/TOOL_from_json.py msgid "You pull the pin on the makeshift grenade." -msgstr "" +msgstr "Sacás el gancho de la granada improvisada." #. ~ Description for {'str': 'makeshift grenade'} #: lang/json/TOOL_from_json.py @@ -91384,12 +92124,15 @@ msgid "" "to pull the pin and light the fuse. You will then have about 5 seconds " "before it explodes; throwing it would be a good idea." msgstr "" +"Es un dispositivo explosivo improvisado hecha de pedazos sueltos. Hay que " +"usarla para sacarle el gancho y activar el detonador. Después, vas a tener 5" +" segundos antes de que explote para tirarla, si te parece ADECUADO." #: lang/json/TOOL_from_json.py msgid "active makeshift grenade" msgid_plural "active makeshift grenades" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "granada improvisada activada" +msgstr[1] "granadas improvisadas activadas" #. ~ Use action no_deactivate_msg for {'str': 'active makeshift grenade'}. #. ~ Use action no_deactivate_msg for {'str': 'active grenade'}. @@ -91398,7 +92141,7 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py #, no-python-format msgid "You've already pulled the %s's pin; try throwing it instead." -msgstr "" +msgstr "Ya le sacasrte el gancho a la %s; ahora intentá tirarla." #. ~ Description for {'str': 'active makeshift grenade'} #. ~ Description for {'str': 'active grenade'} @@ -91495,12 +92238,15 @@ msgid "" "container of the right size. Useful for defrosting and reheating food, uses" " simple tinder." msgstr "" +"Es una pequeña cocina de madera improvisada, hecha con una lata de metal o " +"algún recipiente similar de tamaño adecuado. Es útil para descongelar y " +"recalentar la comida, utiliza yesca común." #: lang/json/TOOL_from_json.py msgid "inactive chicken walker" msgid_plural "inactive chicken walkers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mecha-gallina inactiva" +msgstr[1] "mecha-gallinas inactivas" #. ~ Use action friendly_msg for {'str': 'inactive chicken walker'}. #: lang/json/TOOL_from_json.py @@ -91508,11 +92254,12 @@ msgid "" "The chicken walker rises to its feet, sways away from you and begins " "surveying the area." msgstr "" +"La mecha-gallina se levanta, se mueve y comienza a inspeccionar el área." #. ~ Use action hostile_msg for {'str': 'inactive chicken walker'}. #: lang/json/TOOL_from_json.py msgid "The chicken walker whirrs and aims directly at you. Take cover!" -msgstr "" +msgstr "La mecha-gallina hace un zumbido y te apunta directamente. ¡Cubrite!" #. ~ Description for {'str': 'inactive chicken walker'} #: lang/json/TOOL_from_json.py @@ -91525,6 +92272,12 @@ msgid "" "will then identify you as a friendly, roam around or follow you, and attack " "all enemies with a built-in firearm and grenade launcher." msgstr "" +"Es una mecha-gallina inactiva. Usar este objeto incluye ubicarla en el " +"suelo, cargar la unidad con balas 5.56 y los cartuchos de granada 40mm de tu" +" inventario (si querés dividir tu munición, dejá aparte lo que NO quieras " +"darle al robot) y encenderla. Si fue reprogramada y cableada exitosamente, " +"la mecha-gallina te identificará como aliado, deambulará o te seguirá, y " +"atacará a todos los enemigos con su arma y lanzagranadas integrados." #: lang/json/TOOL_from_json.py msgid "inactive tank drone" @@ -91557,6 +92310,12 @@ msgid "" " will then identify you as a friendly, roam around or follow you, and attack" " all enemies with a built-in firearm and grenade launcher." msgstr "" +"Es un Mini-Tanque Beagle UGV inactivo. Usar este objeto incluye ubicarlo en " +"el suelo, cargar la unidad con balas 5.56 y los cartuchos de granada 40mm de" +" tu inventario (si querés dividir tu munición, dejá aparte lo que NO quieras" +" darle al robot) y encenderlo. Si fue reprogramado y cableado exitosamente, " +"el dron tanque te identificará como aliado, deambulará o te seguirá, y " +"atacará a todos los enemigos con su arma y lanzagranadas integrados." #: lang/json/TOOL_from_json.py msgid "inactive tripod" @@ -91567,7 +92326,7 @@ msgstr[1] "trípodes inactivos" #. ~ Use action friendly_msg for {'str': 'inactive tripod'}. #: lang/json/TOOL_from_json.py msgid "The tribot rises to its feet and scans the area for contaminants." -msgstr "" +msgstr "El tribot se levanta e inspecciona el área en busca de contaminantes." #. ~ Use action hostile_msg for {'str': 'inactive tripod'}. #: lang/json/TOOL_from_json.py @@ -91575,6 +92334,8 @@ msgid "" "The tribot glowers down at you and ignites its flamethrower. Turns out you " "hate the smell of napalm." msgstr "" +"El tribot te mira y enciende su lanzallamas. Parece que odiás el olor al " +"napalm." #. ~ Description for {'str': 'inactive tripod'} #: lang/json/TOOL_from_json.py @@ -91585,6 +92346,10 @@ msgid "" "an ally, roam around or follow you, and impale hostiles with its spiked " "cable weapons." msgstr "" +"Es un Honda Regnal inactivo. Usar este objeto incluye ponerlo en el suelo, " +"viendo cómo alimentar su lanzallamas y encenderlo. Si fue reprogramado y " +"cableado exitosamente, el tribot te identificará como aliado, deambulará o " +"te seguirá, e impalará a los hostiles con sus armas." #: lang/json/TOOL_from_json.py msgid "shishkebab (off)" @@ -91975,8 +92740,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "RDX sand bomb" msgid_plural "RDX sand bombs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bomba de RDX y arena" +msgstr[1] "bombas de RDX y arena" #. ~ Use action msg for {'str': 'RDX sand bomb'}. #: lang/json/TOOL_from_json.py @@ -91990,12 +92755,15 @@ msgid "" "propelling the latter into a deadly mist of vicious shrapnel. Use this item" " to light the fuse." msgstr "" +"Es un caño de acero que contiene una mezcla de RDX y arena, el primero para " +"la propulsión de la segunda a manera una feroz nube de esquirlas mortales. " +"Usala para encender la mecha." #: lang/json/TOOL_from_json.py msgid "active RDX sand bomb" msgid_plural "active RDX sand bombs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bomba encendida de RDX y arena" +msgstr[1] "bombas encendidas de RDX y arena" #. ~ Description for {'str': 'active RDX sand bomb'} #: lang/json/TOOL_from_json.py @@ -92008,6 +92776,43 @@ msgstr "" "la propulsión de la segunda a manera una feroz nube de esquirlas mortales. " "La mecha está encendida... ¿por qué todavía la tenés en la mano?" +#: lang/json/TOOL_from_json.py +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "notebook de control" +msgstr[1] "notebooks de control" + +#. ~ Description for {'str': 'control laptop'} +#: lang/json/TOOL_from_json.py +msgid "" +"A modified laptop, now capable of transmitting in the ultra-high frequencies" +" utilized by robots. Activate it to command robots from afar." +msgstr "" +"Es una notebook modificada. Ahora es capaz de transmitir en las frecuencias " +"ultra altas que utilizan los robots. Activala para controlar robots a " +"distancia." + +#: lang/json/TOOL_from_json.py +msgid "inactive laser turret" +msgid_plural "inactive laser turrets" +msgstr[0] "torreta láser inactiva" +msgstr[1] "torretas láser inactivas" + +#. ~ Description for {'str': 'inactive laser turret'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive laser turret. Using this item involves turning it on " +"and placing it on the ground, where it will attach itself. If reprogrammed " +"and rewired successfully the turret will identify you as a friendly, and " +"attack all enemies with its revolving laser cannons. It requires sunlight " +"in order to fire." +msgstr "" +"Es una torreta láser inactiva. Usarla incluye prenderla y ubicarla en el " +"suelo, donde se desplegará sola. Si fue reprogramada y cableada " +"exitosamente, la torreta te identificará como aliado y atacará a todos tus " +"enemigos con sus cañones láser giratorios. Necesita estar expuesta a la luz " +"del sol para disparar." + #: lang/json/TOOL_from_json.py msgid "folded poncho" msgid_plural "folded ponchos" @@ -92063,6 +92868,11 @@ msgid "" "hack. Electronics and computer skill determines if the targeting matrix is " "reprogrammed successfully." msgstr "" +"Es un PEM-hack inactivo. Los PEM-hacks son robots del tamaño de un puño que " +"vuelan por el aire. Este contiene una granada de pulso electromagnético y su" +" manera de atacar es volar hacia el objetivo y detonar. Usalo para " +"reprogramar y soltar el PEM-hack. Tu habilidad en electrónica y computación " +"determinará si la reprogramación es exitosa." #: lang/json/TOOL_from_json.py msgid "inactive C-4 hack" @@ -92188,32 +92998,11 @@ msgstr "" "hack. Tu habilidad en electrónica y computación determinará si la " "reprogramación es exitosa." -#: lang/json/TOOL_from_json.py -msgid "inactive laser turret" -msgid_plural "inactive laser turrets" -msgstr[0] "torreta láser inactiva" -msgstr[1] "torretas láser inactivas" - -#. ~ Description for {'str': 'inactive laser turret'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive laser turret. Using this item involves turning it on " -"and placing it on the ground, where it will attach itself. If reprogrammed " -"and rewired successfully the turret will identify you as a friendly, and " -"attack all enemies with its revolving laser cannons. It requires sunlight " -"in order to fire." -msgstr "" -"Es una torreta láser inactiva. Usarla incluye prenderla y ubicarla en el " -"suelo, donde se desplegará sola. Si se la reprograma e instala " -"correctamente, la torreta te identificará como aliado y atacará a todos tus " -"enemigos con sus cañones láser giratorios. Necesita estar expuesta a la luz " -"del sol para disparar." - #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta M2HB autónoma CROWS II inactiva" +msgstr[1] "torretas M2HB autónomas CROWS II inactivas" #. ~ Description for {'str': 'inactive M2HB autonomous CROWS II', 'str_pl': #. 'inactive M2HB autonomous CROWS II turrets'} @@ -92226,6 +93015,12 @@ msgid "" "attach itself. If programmed successfully the turret will then identify you" " as a friendly, and attack all enemies with its M2HB." msgstr "" +"Es una torreta inactiva. Usarla incluye cargar la unidad con las balas .50 " +"BMG que haya en tu inventario (si querés dividir tu munición, dejá las .50 " +"BMG que NO quieras ponerle a la torreta), después prenderla y ubicarla en el" +" suelo, donde se desplegará sola. Si se la reprograma correctamente, la " +"torreta te identificará como aliado y atacará a todos tus enemigos con su " +"M2HB." #: lang/json/TOOL_from_json.py msgid "inactive manhack" @@ -92244,7 +93039,6 @@ msgid "You misprogram the manhack; it's hostile!" msgstr "Fallaste en la programación del manhack. ¡Es hostil!" #. ~ Description for {'str': 'inactive manhack'} -#. ~ Description for inactive hack #: lang/json/TOOL_from_json.py msgid "" "This is an inactive manhack. Manhacks are fist-sized robots that fly " @@ -92293,8 +93087,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive autonomous M249 CROWS II" msgid_plural "inactive autonomous M249 CROWS II turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta M249 autónoma CROWS II inactiva" +msgstr[1] "torretas M249 autónomas CROWS II inactivas" #. ~ Description for {'str': 'inactive autonomous M249 CROWS II', 'str_pl': #. 'inactive autonomous M249 CROWS II turrets'} @@ -92307,12 +93101,18 @@ msgid "" "attach itself. If programmed successfully the turret will then identify you" " as a friendly, and attack all enemies with its M249." msgstr "" +"Es una torreta inactiva. Usarla incluye cargar la unidad con las balas " +"5.56x45mm que haya en tu inventario (si querés dividir tu munición, dejá las" +" 5.56x45mm que NO quieras ponerle a la torreta), después prenderla y " +"ubicarla en el suelo, donde se desplegará sola. Si se la reprograma " +"correctamente, la torreta te identificará como aliado y atacará a todos tus " +"enemigos con su M249." #: lang/json/TOOL_from_json.py msgid "inactive autonomous M240 CROWS II" msgid_plural "inactive autonomous M240 CROWS II turrets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "torreta M240 autónoma CROWS II inactiva" +msgstr[1] "torretas M240 autónomas CROWS II inactivas" #. ~ Description for {'str': 'inactive autonomous M240 CROWS II', 'str_pl': #. 'inactive autonomous M240 CROWS II turrets'} @@ -92325,6 +93125,12 @@ msgid "" "attach itself. If programmed successfully the turret will then identify you" " as a friendly, and attack all enemies with its M240." msgstr "" +"Es una torreta inactiva. Usarla incluye cargar la unidad con las balas " +"7.62x51mm que haya en tu inventario (si querés dividir tu munición, dejá las" +" 7.62x51mm que NO quieras ponerle a la torreta), después prenderla y " +"ubicarla en el suelo, donde se desplegará sola. Si se la reprograma " +"correctamente, la torreta te identificará como aliado y atacará a todos tus " +"enemigos con su M240." #: lang/json/TOOL_from_json.py msgid "inactive riot control turret" @@ -92343,6 +93149,12 @@ msgid "" "identify you as a friendly, and attack all enemies with its riot control " "gun." msgstr "" +"Es una torreta antidisturbios inactiva. Usarla incluye cargar la unidad con " +"las balas de goma 40x46mm M1006 que haya en tu inventario (si querés dividir" +" tu munición, dejá aparte la munición no letal que NO quieras ponerle a la " +"torreta), después prenderla y ubicarla en el suelo, donde se desplegará " +"sola. Si se la reprograma correctamente, la torreta te identificará como " +"aliado y atacará a todos tus enemigos con su arma antidisturbios." #: lang/json/TOOL_from_json.py msgid "inactive turret" @@ -92360,24 +93172,31 @@ msgid "" "rewired successfully the turret will then identify you as a friendly, and " "attack all enemies with its SMG." msgstr "" +"Es una torreta inactiva. Usarla incluye cargar la unidad con las balas " +"9x19mm que haya en tu inventario (si querés dividir tu munición, dejá la " +"9x19mm que NO quieras ponerle a la torreta), prenderla y ubicarla en el " +"suelo. Si fue reprogramada y cableada exitosamente, la torreta te " +"identificará como aliado, y atacará a todos tus enemigos con su subfusil." #: lang/json/TOOL_from_json.py msgid "inactive TALON UGV" msgid_plural "inactive TALON UGVs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "TALON UGV inactivo" +msgstr[1] "TALON UGV inactivos" #. ~ Use action friendly_msg for {'str': 'inactive TALON UGV'}. #. ~ Use action friendly_msg for {'str': 'inactive M202A1 TALON UGV'}. #: lang/json/TOOL_from_json.py msgid "The security bot beeps affirmatively and begins scanning for hostiles." msgstr "" +"El robot de seguridad emite un sonido de afirmación y comienza a buscar " +"hostiles." #. ~ Use action hostile_msg for {'str': 'inactive TALON UGV'}. #. ~ Use action hostile_msg for {'str': 'inactive M202A1 TALON UGV'}. #: lang/json/TOOL_from_json.py msgid "You misprogram the security bot and it trains its gun on you. RUN!" -msgstr "" +msgstr "Programaste mal el robot de seguridad y te muestra su arma. ¡CORRÉ!" #. ~ Description for {'str': 'inactive TALON UGV'} #: lang/json/TOOL_from_json.py @@ -92390,12 +93209,18 @@ msgid "" "will then identify you as a friendly, roam around or follow you, and attack " "all enemies with its rifle." msgstr "" +"Es un TALON UGV inactivo equipado con un M16A4. Usarlo incluye cargar la " +"unidad con las balas 5.56x45mm que haya en tu inventario (si querés dividir " +"tu munición, dejá la 5.56x45mm que NO quieras ponerle a la robot), prenderlo" +" y ubicarlo en el suelo. Si fue reprogramado y cableado exitosamente, el " +"robot de seguridad te identificará como aliado, deambulará o te seguirá, y " +"atacará a todos tus enemigos con su rifle." #: lang/json/TOOL_from_json.py msgid "inactive M202A1 TALON UGV" msgid_plural "inactive M202A1 TALON UGVs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "TALON UGV M202A1 inactivo" +msgstr[1] "TALON UGV M202A1 inactivos" #. ~ Description for {'str': 'inactive M202A1 TALON UGV'} #: lang/json/TOOL_from_json.py @@ -92408,22 +93233,28 @@ msgid "" "you as a friendly, roam around or follow you, and attack all enemies with " "its M202A1." msgstr "" +"Es un TALON UGV inactivo equipado con un M202A1. Usarlo incluye cargar la " +"unidad con los misiles M235 que haya en tu inventario (si querés dividir tu " +"munición, dejá aparte los misiles M235 que NO quieras ponerle a la robot), " +"prenderlo y ubicarlo en el suelo. Si fue reprogramado y cableado " +"exitosamente, el robot de seguridad te identificará como aliado, deambulará " +"o te seguirá, y atacará a todos tus enemigos con su M202A1." #: lang/json/TOOL_from_json.py msgid "inactive nurse bot" msgid_plural "inactive nurse bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "enfermerobot inactivo" +msgstr[1] "enfermerobots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive nurse bot'}. #: lang/json/TOOL_from_json.py msgid "The nurse bot beeps affirmatively and awaits orders." -msgstr "" +msgstr "El enfermerobot emite un sonido de afirmación y espera órdenes." #. ~ Use action hostile_msg for {'str': 'inactive nurse bot'}. #: lang/json/TOOL_from_json.py msgid "You misprogram the nurse bot. It's looking at you funny." -msgstr "" +msgstr "Programaste mal el enfermerobot. Te mira con cara rara." #. ~ Description for {'str': 'inactive nurse bot'} #: lang/json/TOOL_from_json.py @@ -92433,24 +93264,28 @@ msgid "" "successfully the nurse bot will then identify you as a friendly, roam around" " or follow you, and assist you in surgeries." msgstr "" +"Es un enfermerobot inactivo. Usar este objeto incluye ponerlo en el suelo y " +"reactivar su cuerpo mecánico. Si fue reprogramado y cableado exitosamente, " +"el enfermerobot te identificará como aliado, deambulará o te seguirá, y te " +"asistirá en tus cirugías." #: lang/json/TOOL_from_json.py msgid "inactive grocery bot" msgid_plural "inactive grocery bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "almacénbot inactivo" +msgstr[1] "almacénbots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive grocery bot'}. #. ~ Use action friendly_msg for {'str': 'inactive busted grocery bot'}. #: lang/json/TOOL_from_json.py msgid "The grocery bot beeps affirmatively and awaits orders." -msgstr "" +msgstr "El almacénbot emite un sonido de afirmación y espera órdenes." #. ~ Use action hostile_msg for {'str': 'inactive grocery bot'}. #. ~ Use action hostile_msg for {'str': 'inactive busted grocery bot'}. #: lang/json/TOOL_from_json.py msgid "You misprogram the grocery bot. It's looking at you funny." -msgstr "" +msgstr "Programaste mal el almacénbot. Te mira con cara rara." #. ~ Description for {'str': 'inactive grocery bot'} #. ~ Description for {'str': 'inactive busted grocery bot'} @@ -92461,18 +93296,21 @@ msgid "" "successfully the grocery bot will then identify you as a friendly, roam " "around or follow you." msgstr "" +"Es un almacénbot inactivo. Usar este objeto incluye ponerlo en el suelo y " +"reactivar su cuerpo mecánico. Si fue reprogramado y cableado exitosamente, " +"el almacénbot te identificará como aliado, deambulará o te seguirá." #: lang/json/TOOL_from_json.py msgid "inactive busted grocery bot" msgid_plural "inactive busted grocery bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "almacénbot estropeado inactivo" +msgstr[1] "almacénbots estropeados inactivos" #: lang/json/TOOL_from_json.py msgid "inactive broken cyborg" msgid_plural "inactive broken cyborgs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ciborg inactivo roto" +msgstr[1] "ciborgs inactivos rotos" #. ~ Use action friendly_msg for {'str': 'inactive broken cyborg'}. #: lang/json/TOOL_from_json.py @@ -92480,11 +93318,13 @@ msgid "" "The broken cyborg rises to the sound of screeching metal and peers around " "for hostiles." msgstr "" +"El ciborg roto se levanta al sonido de chirridos metálicos y busca criaturas" +" hostiles." #. ~ Use action hostile_msg for {'str': 'inactive broken cyborg'}. #: lang/json/TOOL_from_json.py msgid "The broken cyborg lets out a howl of agony and attacks you!" -msgstr "" +msgstr "¡El ciborg roto deja escapar un alarido de agonía y te ataca!" #. ~ Description for {'str': 'inactive broken cyborg'} #: lang/json/TOOL_from_json.py @@ -92494,12 +93334,16 @@ msgid "" "reactivating its mechanical body. If reprogrammed and rewired successfully " "the cyborg will then follow you and attack enemies. You monster." msgstr "" +"Es un ciborg inactivo roto, los últimos pedazos de su humanidad todavía se " +"están pudriendo. Usar este objeto involucra ponerlo en el piso y reactivar " +"su cuerpo mecánico. Si fue reprogramado y cableado exitosamente, el ciborg " +"te seguirá y atacará a tus enemigos. Sos un monstruo." #: lang/json/TOOL_from_json.py msgid "inactive prototype cyborg" msgid_plural "inactive prototype cyborgs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ciborg prototipo roto" +msgstr[1] "ciborgs prototipo rotos" #. ~ Use action friendly_msg for {'str': 'inactive prototype cyborg'}. #: lang/json/TOOL_from_json.py @@ -92507,11 +93351,13 @@ msgid "" "The prototype cyborg rises to the sound of screeching metal and peers around" " for hostiles." msgstr "" +"El ciborg prototipo se levanta al sonido de chirridos metálicos y busca " +"criaturas hostiles." #. ~ Use action hostile_msg for {'str': 'inactive prototype cyborg'}. #: lang/json/TOOL_from_json.py msgid "The prototype cyborg lets out a howl of agony and attacks you!" -msgstr "" +msgstr "¡El ciborg prototipo deja escapar un alarido de agonía y te ataca!" #. ~ Description for {'str': 'inactive prototype cyborg'} #: lang/json/TOOL_from_json.py @@ -92522,23 +93368,29 @@ msgid "" "successfully the cyborg will then follow you and attack enemies. You " "monster." msgstr "" +"Es un ciborg prototipo inactivo, todavía se pueden ver destellos de su " +"humanidad en sus ojos vacíos. Usar este objeto involucra ponerlo en el piso " +"y reactivar su cuerpo mecánico. Si fue reprogramado y cableado exitosamente," +" el ciborg te seguirá y atacará a tus enemigos. Sos un monstruo." #: lang/json/TOOL_from_json.py msgid "inactive police bot" msgid_plural "inactive police bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "policíabot inactivo" +msgstr[1] "policíabots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive police bot'}. #: lang/json/TOOL_from_json.py msgid "The police bot rolls into action ready to pursue criminals." -msgstr "" +msgstr "El policíabot entra en acción, listo para perseguir criminales." #. ~ Use action hostile_msg for {'str': 'inactive police bot'}. #: lang/json/TOOL_from_json.py msgid "" "A siren howls and lights flash as the police bot prepares to arrest you!" msgstr "" +"¡Suena una sirena y se encienden luces cuando el policíabot se prepara para " +"arrestarte!" #. ~ Description for {'str': 'inactive police bot'} #: lang/json/TOOL_from_json.py @@ -92548,6 +93400,10 @@ msgid "" "police bot will then identify you as law enforcement, roam around or follow " "you, and attempt to detain lawbreakers." msgstr "" +"Es un policíabot inactivo. Usar este objeto incluye ponerlo en el suelo y " +"encenderlo. Si fue reprogramado y cableado exitosamente, el policíabot te " +"identificará como parte de las fuerzas de la ley, deambulará o te seguirá, e" +" intentará detener a los criminales." #: lang/json/TOOL_from_json.py msgid "inactive eyebot" @@ -92558,7 +93414,7 @@ msgstr[1] "ojobots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive eyebot'}. #: lang/json/TOOL_from_json.py msgid "The eyebot hums and takes to the sky." -msgstr "" +msgstr "El ojobot emite un zumbido y sale volando." #. ~ Use action hostile_msg for {'str': 'inactive eyebot'}. #: lang/json/TOOL_from_json.py @@ -92566,6 +93422,7 @@ msgid "" "The eyebot beeps disapprovingly and focuses its camera on your face. Say " "cheese!" msgstr "" +"El ojobot emite un pitido reprobador y enfoca su cámara en tu cara. ¡Sonría!" #. ~ Description for {'str': 'inactive eyebot'} #: lang/json/TOOL_from_json.py @@ -92574,22 +93431,26 @@ msgid "" "launching the UAV. If reprogrammed and rewired successfully the eyebot will" " then keep watch for intruders." msgstr "" +"Es un ojobot inactivo. Usar este objeto incluye encenderlo y lanzar el dron." +" Si fue reprogramado y cableado exitosamente, el ojobot estará atento a los " +"intrusos." #: lang/json/TOOL_from_json.py msgid "inactive cleaner bot" msgid_plural "inactive cleaner bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "limpiezabot inactivo" +msgstr[1] "limpiezabots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive cleaner bot'}. #: lang/json/TOOL_from_json.py msgid "The cleaner bot emits a friendly beep and starts scrubbing." -msgstr "" +msgstr "El limpiezabot emite un pitido amistoso y comienza a limpiar." #. ~ Use action hostile_msg for {'str': 'inactive cleaner bot'}. #: lang/json/TOOL_from_json.py msgid "The cleaner bot plays an error sound, but starts cleaning anyway." msgstr "" +"El limpiezabot emite un sonido de error, pero igual comienza a limpiar." #. ~ Description for {'str': 'inactive cleaner bot'} #: lang/json/TOOL_from_json.py @@ -92598,6 +93459,9 @@ msgid "" " ground and turning it on. If reprogrammed and rewired successfully the " "cleaner bot will respond to future commands." msgstr "" +"Es un limpiezabot inactivo. Usar este objeto incluye ponerlo en el suelo y " +"encenderlo. Si fue reprogramado y cableado exitosamente, el limpiezabot " +"responderá a tus comandos." #: lang/json/TOOL_from_json.py msgid "inactive miner bot" @@ -92608,12 +93472,12 @@ msgstr[1] "minerobots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive miner bot'}. #: lang/json/TOOL_from_json.py msgid "The miner bot whirrs and tunnels into the ground." -msgstr "" +msgstr "El minerobot zumba y hace un túnel en el suelo." #. ~ Use action hostile_msg for {'str': 'inactive miner bot'}. #: lang/json/TOOL_from_json.py msgid "The miner bot spins out of control and lunges at you. Make way!" -msgstr "" +msgstr "El minerobot gira descontrolado y se lanza sobre vos. ¡Correte!" #. ~ Description for {'str': 'inactive miner bot'} #: lang/json/TOOL_from_json.py @@ -92622,23 +93486,26 @@ msgid "" "the ground and turning it on. If reprogrammed and rewired successfully the " "miner bot will respond to future commands." msgstr "" +"Es un minerobot inactivo. Usar este objeto incluye ponerlo en el suelo y " +"encenderlo. Si fue reprogramado y cableado exitosamente, el minerobot " +"responderá a tus comandos." #: lang/json/TOOL_from_json.py msgid "inactive riot control bot" msgid_plural "inactive riot control bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "antidisturbot inactivo" +msgstr[1] "antidisturbots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive riot control bot'}. #: lang/json/TOOL_from_json.py msgid "The riot control bot rolls into action." -msgstr "" +msgstr "El antidisturbot entra en acción." #. ~ Use action hostile_msg for {'str': 'inactive riot control bot'}. #: lang/json/TOOL_from_json.py msgid "" "The riot control bot gases you and approaches with a pair of handcuffs." -msgstr "" +msgstr "El antidisturbot te arroja un gas y se acerca con unas esposas." #. ~ Description for {'str': 'inactive riot control bot'} #: lang/json/TOOL_from_json.py @@ -92647,6 +93514,9 @@ msgid "" "on the ground and turning it on. If reprogrammed and rewired successfully " "the robot will bring order and peace to the horde." msgstr "" +"Es un antidisturbot inactivo. Usar este objeto incluye ponerlo en el suelo y" +" encenderlo. Si fue reprogramado y cableado exitosamente, el robot traerá la" +" paz y el orden." #: lang/json/TOOL_from_json.py msgid "inactive skitterbot" @@ -92657,12 +93527,13 @@ msgstr[1] "arañabots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive skitterbot'}. #: lang/json/TOOL_from_json.py msgid "The skitterbot gives a quick bow and scurries away." -msgstr "" +msgstr "El arañabot te hace una pequeña reverencia y sale corriendo." #. ~ Use action hostile_msg for {'str': 'inactive skitterbot'}. #: lang/json/TOOL_from_json.py msgid "The skitterbot darts around you and menacingly clicks its tazers." msgstr "" +"El arañabot se lanza hacia vos y hace sonar sus tazers de manera amenazante." #. ~ Description for {'str': 'inactive skitterbot'} #: lang/json/TOOL_from_json.py @@ -92671,6 +93542,9 @@ msgid "" "ground and turning it on. If reprogrammed and rewired successfully the " "robot will race towards enemies and shock them." msgstr "" +"Es un arañabot inactivo. Usar este objeto incluye ponerlo en el suelo y " +"encenderlo. Si fue reprogramado y cableado exitosamente, el robot perseguirá" +" a los enemigos y les dará un electroshock." #: lang/json/TOOL_from_json.py msgid "inactive lab defense bot" @@ -92702,23 +93576,30 @@ msgid "" "reprogrammed and rewired successfully the robot will race towards enemies " "and deploy a variety of experimental devices." msgstr "" +"Es un robot experimental inactivo, sacado de un laboratorio. Parece una " +"araña del tamaño de un humano y fue diseñado para desplegar manhacks. Usar " +"este objeto incluye ponerlo en el suelo y encenderlo. Si fue reprogramado y " +"cableado exitosamente, el robot correrá hacia los enemigos y desplegará una " +"variedad de dispositivos experimentales." #: lang/json/TOOL_from_json.py msgid "inactive milspec searchlight" msgid_plural "inactive milspec searchlights" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "foco reflector milspec inactivo" +msgstr[1] "focos reflectores milspec inactivos" #. ~ Use action friendly_msg for {'str': 'inactive milspec searchlight'}. #: lang/json/TOOL_from_json.py msgid "The searchlight flares up and establishes a perimeter." -msgstr "" +msgstr "El reflector se enciende y establece un perímetro." #. ~ Use action hostile_msg for {'str': 'inactive milspec searchlight'}. #: lang/json/TOOL_from_json.py msgid "" "A bright light blinds you as the searchlight refuses to turn away from you." msgstr "" +"Una luz brillante te ciega mientras el reflector se niega a quitarte la luz " +"de encima." #. ~ Description for {'str': 'inactive milspec searchlight'} #: lang/json/TOOL_from_json.py @@ -92729,12 +93610,17 @@ msgid "" "survey the area, and illuminate approaching hostiles. Seems to have an " "unhealthy fascination with you." msgstr "" +"Es un reflector automatizado militar inactivo. Usar este objeto incluye " +"ponerlo en el suelo y encenderlo. Si fue reprogramado y cableado " +"exitosamente, el reflector te identificará como aliado, investigará el área " +"e iluminará a los enemigos que se acerquen. Parece tener una fascinación " +"extraña con vos." #: lang/json/TOOL_from_json.py msgid "inactive dispatch" msgid_plural "inactive dispatches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desplegador inactivo" +msgstr[1] "desplegadores inactivos" #. ~ Use action friendly_msg for {'str': 'inactive dispatch', 'str_pl': #. 'inactive dispatches'}. @@ -92742,13 +93628,13 @@ msgstr[1] "" #. 'str_pl': 'inactive military dispatches'}. #: lang/json/TOOL_from_json.py msgid "The dispatch whirrs onto its legs and searches for a target." -msgstr "" +msgstr "El desplegador zumba al pararse y comienza a buscar un objetivo." #. ~ Use action hostile_msg for {'str': 'inactive dispatch', 'str_pl': #. 'inactive dispatches'}. #: lang/json/TOOL_from_json.py msgid "The dispatch turns on you, whacking at you with its arms!" -msgstr "" +msgstr "¡El desplegador se enfoca en vos, intentado golpearte con sus brazos!" #. ~ Description for {'str': 'inactive dispatch', 'str_pl': 'inactive #. dispatches'} @@ -92759,18 +93645,23 @@ msgid "" " the ground; due to a one-way switch triggered during deactivation, however," " it will be nonaggressive, and serves only as a distraction." msgstr "" +"Es un Desplegador Northrop inactivo, modelo guardia, funcionando como un " +"armador y desplegador portátil de manhacks kamikaze de defensa. Activalo " +"para ponerlo en el suelo. Sin embargo, debido a su interruptor de sentido " +"único que se activó durante la desactivación, no será agresivo y solo " +"funcionará como distracción." #: lang/json/TOOL_from_json.py msgid "inactive military dispatch" msgid_plural "inactive military dispatches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desplegador militar inactivo" +msgstr[1] "desplegadores militares inactivos" #. ~ Use action hostile_msg for {'str': 'inactive military dispatch', #. 'str_pl': 'inactive military dispatches'}. #: lang/json/TOOL_from_json.py msgid "The dispatch turns on you, slashing at you with its arms!" -msgstr "" +msgstr "¡El desplegador se enfoca en vos, intentado atacarte con sus brazos!" #. ~ Description for {'str': 'inactive military dispatch', 'str_pl': 'inactive #. military dispatches'} @@ -92782,6 +93673,31 @@ msgid "" "deactivation, however, it will be nonaggressive, and serves only as a " "distraction." msgstr "" +"Es un Desplegador Northrop inactivo, modelo militar, funcionando como un " +"armador y desplegador portátil de manhacks letales de combate. Activalo para" +" ponerlo en el suelo. Sin embargo, debido a su interruptor de sentido único " +"que se activó durante la desactivación, no será agresivo y solo funcionará " +"como distracción." + +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "parlante inactivo" +msgstr[1] "parlantes inactivos" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "" + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing" +" it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "" #: lang/json/TOOL_from_json.py msgid "clothes hanger" @@ -93372,8 +94288,8 @@ msgstr[1] "" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end" -" and sharpened into a cutting tool. Its jagged edge is wicked but fragile." +"A femur or other bone, about 20 cm long, which has been broken at one end " +"and sharpened into a cutting tool. Its jagged edge is wicked but fragile." msgstr "" #: lang/json/TOOL_from_json.py @@ -94070,6 +94986,32 @@ msgid "" "but bad for the environment; at least you're recycling it." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "butchering kit" msgid_plural "butchering kits" @@ -94356,7 +95298,7 @@ msgstr "" "están hechos de una delgada capa compuesto de aluminio y superaleación, y " "están aislados con una cobertura cerámica. Depende de un anafe que funciona " "con baterías, en lugar del horno Esbit más común alimentado con químicos. " -"Compacto, duradero y liviano." +"Compacto, resistente y liviano." #: lang/json/TOOL_from_json.py msgid "mortar and pestle" @@ -94480,10 +95422,10 @@ msgid "" "apocalyptic cuisine. Powered by a lamp oil burner, it is composed of simple" " yet durable tools and materials." msgstr "" -"Un kit de utensilios hecho en casa, que contiene todo lo que podés necesitar" -" para crear una cocina post-apocalíptica. Alimentada con un quemador de " -"lámpara de aceite, está compuesto de herramientas y materiales simples pero " -"duraderos." +"Es un kit de utensilios hecho en casa, que contiene todo lo que podés " +"necesitar para crear una cocina post-apocalíptica. Alimentada con un " +"quemador de lámpara de aceite, está compuesto de herramientas y materiales " +"simples pero resistentes." #: lang/json/TOOL_from_json.py msgid "vacuum sealer" @@ -94541,13 +95483,11 @@ msgid_plural "fire barrels (200L)" msgstr[0] "" msgstr[1] "" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels #. (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels #. (100L)'} -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +#: lang/json/TOOL_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -94830,19 +95770,6 @@ msgstr[1] "celulares - Linterna" msgid "You stop lighting up the screen." msgstr "Dejás de encender la pantalla." -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "notebook de control" -msgstr[1] "notebooks de control" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies" -" utilized by robots. Activate it to command robots from afar." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" @@ -94892,7 +95819,6 @@ msgstr[0] "electrohackeador" msgstr[1] "electrohackeadores" #. ~ Description for {'str': 'electrohack'} -#. ~ Description for electrohack #: lang/json/TOOL_from_json.py msgid "" "This device has many ports attached, allowing it to connect to almost any " @@ -95061,11 +95987,13 @@ msgstr[1] "smartphones" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "Activás la aplicación de linterna." #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "La batería del smartphone tiene muy poca carga." @@ -95229,11 +96157,8 @@ msgstr[1] "equipos de cerrajero" msgid "" "This is a locksmith's set of sturdy steel lock picks and torsion wrenches. " "It is essential for silently and quickly opening locks, provided you have " -"some mechanical skill." +"some lock picking and mechanical skills." msgstr "" -"Es un equipo de cerrajero con ganzúas resistentes de acero y llaves de " -"torsión. Es esencial para abrir cerraduras de manera rápida y silenciosa, " -"suponiendo que tenés alguna habilidad mecánica." #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -95609,7 +96534,7 @@ msgstr[1] "granadas de destello activadas" #: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py src/iuse.cpp #, c-format, no-python-format msgid "You've already pulled the %s's pin, try throwing it instead." -msgstr "Ya le sacaste el pasador a la %s, ahora intentá tirarla." +msgstr "Ya le sacaste el gancho a la %s, ahora intentá tirarla." #. ~ Description for {'str': 'active flashbang'} #: lang/json/TOOL_from_json.py @@ -95734,7 +96659,6 @@ msgstr[0] "granada PEM activada" msgstr[1] "granadas PEM activadas" #. ~ Description for {'str': 'active EMP grenade'} -#. ~ Description for active EMP grenade #: lang/json/TOOL_from_json.py msgid "" "This EMP grenade is active, and will shortly detonate, creating a large EMP " @@ -96536,8 +97460,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "crash axe" msgid_plural "crash axes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hacha de emergencia" +msgstr[1] "hachas de emergencia" #. ~ Description for {'str': 'crash axe'} #: lang/json/TOOL_from_json.py @@ -96546,6 +97470,10 @@ msgid "" "pick opposite the blade and an insulated handle. Used on airplanes to chop " "down or pry walls or cabinets to gain access in case of fire." msgstr "" +"Es una herramienta corta y liviana de emergencia, con una cuchilla circular," +" un pequeño pico en la parte opuesta a la cuchilla y un mango aislado. Se " +"utiliza en los aviones para romper paredes o casilleros para abrirse paso en" +" caso de incendio." #: lang/json/TOOL_from_json.py msgid "large fire extinguisher" @@ -96559,6 +97487,8 @@ msgid "" "This is an emergency fire extinguisher containing five gallons of fire " "retardant foam. It would be useful for putting out adjacent fires." msgstr "" +"Es un extintor de emergencia que contiene casi veinte litros de espuma " +"retardante de fuego. Es útil para apagar fuegos cercanos." #: lang/json/TOOL_from_json.py msgid "fire axe" @@ -98125,21 +99055,6 @@ msgstr "" "Es una bocina de auto diseñada para ser conectada a un sistema eléctrico de " "auto." -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "placa de Kevlar" -msgstr[1] "placas de Kevlar" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made" -" of Kevlar." -msgstr "" -"Es una placa de Kevlar reforzada. Puede ser usada para reparar objetos que " -"estén hechos de este material." - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" @@ -98477,6 +99392,19 @@ msgstr "" "perímetro. Aunque es bastante grande, no pesa casi nada. El aire parece " "juntarse alrededor de ella." +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" @@ -98523,7 +99451,7 @@ msgstr[1] "clarinetes" #. ~ Description for {'str': 'clarinet'} #: lang/json/TOOL_from_json.py msgid "An ornate clarinet made from wood." -msgstr "Un clarinete adornado hecho de madera." +msgstr "Es un clarinete adornado hecho de madera." #: lang/json/TOOL_from_json.py msgid "flute" @@ -101887,11 +102815,10 @@ msgstr[1] "" #. knives'} #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked" -" pry bar at the bottom for opening simple things and bashing in heads. " -"Matte black finish helps it avoid flash in dim-light situations and tanto " -"tip allows for light-armor penetration. Blade length allows for decent " -"reach." +"A modified trench knife. Has a knuckleduster guard and a small, hooked pry " +"bar at the bottom. The matte black finish helps it avoid flash in dim-light " +"situations and tanto tip allows for light-armor penetration. Blade length " +"allows for decent reach." msgstr "" #: lang/json/TOOL_from_json.py @@ -101917,9 +102844,9 @@ msgstr[1] "" #. ~ Description for CRIT Reso-blade #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " -"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " -"thrums from within." +"CRIT melee weapon. Alien runes adorn the carbon steel blade. The blade " +"oddly seems to lack sharpness, and yet upon closer oberservation, a hum of " +"energy thrums from within." msgstr "" #: lang/json/TOOL_from_json.py @@ -102946,1202 +103873,6 @@ msgid "" "magical metals into their workable ingot form." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "Dusk" -msgid_plural "Dusks" -msgstr[0] "Dusk" -msgstr[1] "Dusks" - -#. ~ Description for Dusk -#: lang/json/TOOL_from_json.py -msgid "" -"A longsword, made out of a very dark, almost black metal. It seems to hold " -"a greater edge than usual steel blades and feels …more comfortable in the " -"hand. While the blade is made out of this dark metal, the crossguard and " -"the pommel seem to be made out of a brighter material, which feels " -"abnormally cool to the touch." -msgstr "" - -#. ~ Description for disarmed defense turret -#: lang/json/TOOL_from_json.py -msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "Es una torreta defensiva automatizada. Carece de arma integrada." - -#. ~ Description for disarmed military turret -#: lang/json/TOOL_from_json.py -msgid "An automated military turret. It lacks an integrated weapon." -msgstr "Es una torreta militar automatizada. No tiene un arma integrada." - -#. ~ Description for disarmed advanced turret -#: lang/json/TOOL_from_json.py -msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "Es una torreta avanzada automatizada. Carece de arma integrada." - -#: lang/json/TOOL_from_json.py -msgid "inactive 9mm defense turret" -msgid_plural "inactive 9mm defense turrets" -msgstr[0] "torreta defensiva 9mm inactiva" -msgstr[1] "torretas defensivas 9mm inactivas" - -#. ~ Description for inactive 9mm defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 9mm defense turret. Up to 100 standard 9mm rounds will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Es una torreta defensiva inactiva 9mm. Serán cargadas automáticamente hasta " -"100 balas 9mm desde tu inventario a la torreta cuando la actives. Cuando " -"pongas la torreta te va a identificar como aliado con su software IFF " -"avanzado. Consultá el manual de seguridad en caso de mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive shotgun defense turret" -msgid_plural "inactive shotgun defense turrets" -msgstr[0] "torreta defensiva de escopeta inactiva" -msgstr[1] "torretas defensivas de escopeta inactivas" - -#. ~ Description for inactive shotgun defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive shotgun defense turret. Up to 100 standard 12ga shells will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Es una torreta defensiva inactiva de escopeta. Serán cargados " -"automáticamente hasta 100 cartuchos 12ga desde tu inventario a la torreta " -"cuando la actives. Cuando pongas la torreta te va a identificar como aliado " -"con su software IFF avanzado. Consultá el manual de seguridad en caso de mal" -" funcionamiento." - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riotcontrol turret. Up to 50 standard 40mm less-than-lethal " -"beanbag canisters will be automatically loaded from your inventory into the " -"turret upon activation. Place the turret and it will ID you as friendly " -"with its advanced IFF software. Consult your safety manual in the event of " -"a malfunction." -msgstr "" -"Es una torreta antidisturbio inactiva. Serán cargadas automáticamente hasta " -"50 cartuchos 40mm no letales desde tu inventario a la torreta cuando la " -"activés. Cuando pongas la torreta te va a identificar como aliado con su " -"software IFF avanzado. Consultá el manual de seguridad en caso de mal " -"funcionamiento." - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riot control turret. Up to 50 standard 40mm teargas canisters " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta anti-disturbio inactiva. Serán cargadas automáticamente hasta" -" 50 cartuchos 40mm de gas lacrimógeno desde tu inventario a la torreta " -"cuando la actives. Cuando pongas la torreta te va a identificar como aliado " -"con su software IFF avanzado. Consultá el manual de seguridad en caso de mal" -" funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive 5.56mm military turret" -msgid_plural "inactive 5.56mm military turrets" -msgstr[0] "torreta militar 5.56mm inactiva" -msgstr[1] "torretas militares 5.56mm inactivas" - -#. ~ Description for inactive 5.56mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 5.56mm military turret. Up to 100 standard 5.56mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta militar inactiva 5.56mm. Serán cargadas automáticamente hasta" -" 100 balas 5.56mm NATO desde tu inventario a la torreta cuando la actives. " -"Cuando pongas la torreta te va a identificar como aliado con su software IFF" -" avanzado. Consultá el manual de seguridad en caso de mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive 7.62mm military turret" -msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "torreta militar 7.62mm inactiva" -msgstr[1] "torretas militares 7.62mm inactivas" - -#. ~ Description for inactive 7.62mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 7.62mm military turret. Up to 100 standard 7.62mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta militar inactiva 7.62mm. Serán cargadas automáticamente hasta" -" 100 balas 7.62mm NATO desde tu inventario a la torreta cuando la actives. " -"Cuando pongas la torreta te va a identificar como aliado con su software IFF" -" avanzado. Consultá el manual de seguridad en caso de mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive 50 caliber military turret" -msgid_plural "inactive 50 caliber military turrets" -msgstr[0] "torreta militar calibre 50 inactiva" -msgstr[1] "torretas militares calibre 50 inactivas" - -#. ~ Description for inactive 50 caliber military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 50 caliber military turret. Up to 100 standard 50 caliber bmg " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta militar inactiva calibre 50. Serán cargadas automáticamente " -"hasta 100 balas calibre 50 bmg desde tu inventario a la torreta cuando la " -"actives. Cuando pongas la torreta te va a identificar como aliado con su " -"software IFF avanzado. Consultá el manual de seguridad en caso de mal " -"funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive military needle turret" -msgid_plural "inactive military needle turrets" -msgstr[0] "torreta militar de clavos inactiva" -msgstr[1] "torretas militares de clavos inactivas" - -#. ~ Description for inactive military needle turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced needle turret. Up to 100 standard 5x50mm flechette " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta avanzada inactiva de clavos. Serán cargados automáticamente " -"hasta 100 cartuchos de dardos perforantes 5x50mm desde tu inventario a la " -"torreta cuando la actives. Cuando pongas la torreta te va a identificar como" -" aliado con su software IFF avanzado. Consultá el manual de seguridad en " -"caso de mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 8x40mm turret" -msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "torreta militar 8x40mm inactiva" -msgstr[1] "torretas militares 8x40mm inactivas" - -#. ~ Description for inactive military 8x40mm turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced 8x40mm turret. Up to 100 standard 8x40mm caseless " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta avanzada inactiva 8x40mm. Serán cargadas automáticamente " -"hasta 100 balas sin casquillo 8x40mm desde tu inventario a la torreta cuando" -" la actives. Cuando pongas la torreta te va a identificar como aliado con su" -" software IFF avanzado. Consultá el manual de seguridad en caso de mal " -"funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 40mm grenade turret" -msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "torreta militar de granadas 40mm inactiva" -msgstr[1] "torretas militares de granadas 40mm inactivas" - -#. ~ Description for inactive military 40mm grenade turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive military grenade turret. Up to 50 standard 40mm fragmentation " -"grenades will be automatically loaded from your inventory into the turret " -"upon activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military flamethrower turret" -msgid_plural "inactive military flamethrower turrets" -msgstr[0] "torreta lanzallamas militar inactiva" -msgstr[1] "torretas lanzallamas militares inactivas" - -#. ~ Description for inactive military flamethrower turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive flame turret. Up to 100 units of napalm will be automatically " -"loaded from your inventory into the turret upon activation. Place the " -"turret and it will ID you as friendly with its advanced IFF software. " -"Consult your safety manual in the event of a malfunction." -msgstr "" -"Es una torreta lanzallamas inactiva. Serán cargadas automáticamente hasta " -"100 unidades de napalm desde tu inventario a la torreta cuando la actives. " -"Cuando pongas la torreta te va a identificar como aliado con su software IFF" -" avanzado. Consultá el manual de seguridad en caso de mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced laser turret" -msgid_plural "inactive advanced laser turrets" -msgstr[0] "torreta láser avanzada inactiva" -msgstr[1] "torretas láser avanzadas inactivas" - -#. ~ Description for inactive advanced laser turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced laser turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Es una torreta láser avanzada inactiva. Poné la torreta y te va a " -"identificar como aliado con su software IFF avanzado. Consultá tu manual de " -"seguridad ante un eventual mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced plasma turret" -msgid_plural "inactive advanced plasma turrets" -msgstr[0] "torreta plasma avanzada inactiva" -msgstr[1] "torretas plasma avanzadas inactivas" - -#. ~ Description for inactive advanced plasma turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced plasma turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Es una torreta plasma avanzada inactiva. Poné la torreta y te va a " -"identificar como aliado con su software IFF avanzado. Consultá tu manual de " -"seguridad ante un eventual mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced railgun turret" -msgid_plural "inactive advanced railgun turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive advanced railgun turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced railgun turret. Up to 50 standard rail projectiles " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced acid turret" -msgid_plural "inactive advanced acid turrets" -msgstr[0] "torreta avanzada ácida inactiva" -msgstr[1] "torretas avanzadas ácidas inactivas" - -#. ~ Description for inactive advanced acid turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced acid turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced EMP turret" -msgid_plural "inactive advanced EMP turrets" -msgstr[0] "torreta avanzada PEM inactiva" -msgstr[1] "torretas avanzadas PEM inactivas" - -#. ~ Description for inactive advanced EMP turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced EMP turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced electro turret" -msgid_plural "inactive advanced electro turrets" -msgstr[0] "electrotorreta mejorada inactiva" -msgstr[1] "electrotorretas mejoradas inactivas" - -#. ~ Description for inactive advanced electro turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced electro turret. Place the turret and it will ID you as" -" friendly with its advanced IFF software. Consult your safety manual in the" -" event of a malfunction." -msgstr "" -"Es una electrotorreta avanzada inactiva. Poné la torreta y te va a " -"identificar como aliado con su software IFF avanzado. Consultá tu manual de " -"seguridad ante un eventual mal funcionamiento." - -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "garden gnome" -msgid_plural "garden gnomes" -msgstr[0] "gnomo de jardín" -msgstr[1] "gnomos de jardín" - -#. ~ Description for garden gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. You can place him in your " -"garden or elsewhere." -msgstr "" -"Es un gnomo de jardín totalmente normal e indefenso. Podés ponerlo en tu " -"jardín o en cualquier lado." - -#: lang/json/TOOL_from_json.py -msgid "gaurdin gnome" -msgid_plural "gaurdin gnomes" -msgstr[0] "guardgnomos de jardín" -msgstr[1] "guardgnomos de jardín" - -#. ~ Description for gaurdin gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. He holds up to 100 rounds of" -" 9mm ammo." -msgstr "" -"Es un gnomo de jardín totalmente normal e indefenso. Puede tener hasta 100 " -"balas 9 mm." - -#: lang/json/TOOL_from_json.py -msgid "small batch of curdling milk" -msgid_plural "small batches of curdling milk" -msgstr[0] "lote pequeño de leche cuajada" -msgstr[1] "lotes pequeños de leche cuajada" - -#. ~ Use action msg for {'str': 'small batch of curdling milk', 'str_pl': -#. 'small batches of curdling milk'}. -#. ~ Use action msg for {'str': 'batch of curdling milk', 'str_pl': 'batches -#. of curdling milk'}. -#. ~ Use action msg for {'str': 'large batch of curdling milk', 'str_pl': -#. 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "" -"The milk appears to have finished curdling, and is ready for further " -"processing. Checking on it has exposed the mixture to the atmosphere." -msgstr "" -"La leche parece haber terminado de cuajar, y está lista para un proceso " -"posterior. Al haber abierto el odre para mirar el contenido, has expuesto la" -" mezcla a la atmósfera." - -#. ~ Use action not_ready_msg for {'str': 'small batch of curdling milk', -#. 'str_pl': 'small batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'batch of curdling milk', 'str_pl': -#. 'batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'large batch of curdling milk', -#. 'str_pl': 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "The milk is still curdling." -msgstr "La leche todavía se está cuajando." - -#. ~ Description for {'str': 'small batch of curdling milk', 'str_pl': 'small -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed small waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Es un pequeño odre sellado lleno con leche que está en pleno proceso de " -"convertirse en una especie de queso. Tiene vinagre y cuajo natural agregado." - -#: lang/json/TOOL_from_json.py -msgid "batch of curdling milk" -msgid_plural "batches of curdling milk" -msgstr[0] "lote de leche cuajada" -msgstr[1] "lotes de leche cuajada" - -#. ~ Description for {'str': 'batch of curdling milk', 'str_pl': 'batches of -#. curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed waterskin filled with milk that is undergoing the process to become" -" a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Es un odre sellado lleno con leche que está en pleno proceso de convertirse " -"en una especie de queso. Tiene vinagre y cuajo natural agregado." - -#: lang/json/TOOL_from_json.py -msgid "large batch of curdling milk" -msgid_plural "large batches of curdling milk" -msgstr[0] "lote grande de leche cuajada" -msgstr[1] "lotes grandes de leche cuajada" - -#. ~ Description for {'str': 'large batch of curdling milk', 'str_pl': 'large -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed large waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Es un gran odre sellado lleno con leche que está en pleno proceso de " -"convertirse en una especie de queso. Tiene vinagre y cuajo natural agregado." - -#: lang/json/TOOL_from_json.py -msgid "heavy snare kit" -msgid_plural "heavy snare kits" -msgstr[0] "equipo de trampa pesada de lazo" -msgstr[1] "equipos de trampa pesada de lazo" - -#. ~ Use action done_message for heavy snare kit. -#. ~ Use action done_message for light snare kit. -#: lang/json/TOOL_from_json.py -msgid "You set the snare trap." -msgstr "Ponés la trampa de lazo." - -#. ~ Description for heavy snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a rope noose and a snare " -"trigger. It requires a tree nearby. It is effective at trapping monsters." -msgstr "" -"Es un equipo para armar una trampa simple que consiste en un nudo corredizo " -"y un disparador de la soga. Tiene que armarse cerca de un árbol. Es eficaz " -"para atrapar monstruos." - -#: lang/json/TOOL_from_json.py -msgid "light snare kit" -msgid_plural "light snare kits" -msgstr[0] "equipo de trampa ligera de lazo" -msgstr[1] "equipos de trampa ligera de lazo" - -#. ~ Description for light snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a string noose and a snare " -"trigger. It requires a young tree nearby. It is effective at trapping and " -"killing some small animals." -msgstr "" -"Es un equipo para armar una trampa simple que consiste en un nudo corredizo " -"y un disparador del hilo. Necesita estar cerca de un árbol joven. Es eficaz " -"para atrapar y matar algunos animales pequeños." - -#: lang/json/TOOL_from_json.py -msgid "snare trigger" -msgid_plural "snare triggers" -msgstr[0] "disparador de trampa de lazo" -msgstr[1] "disparadores de trampa de lazo" - -#. ~ Description for snare trigger -#: lang/json/TOOL_from_json.py -msgid "" -"This is a stick that has been cut into a trigger mechanism for a snare trap." -msgstr "" -"Es un palo que ha sido recortado para funcionar como mecanismo disparador de" -" una trampa de lazo." - -#. ~ Description for Laevateinn -#: lang/json/TOOL_from_json.py -msgid "" -"A replica of Laevateinn, the sword of Freyr. It is rumored to be able to " -"fight by itself. It is decorated with gold and silver ornaments." -msgstr "" -"Es una réplica de Laevateinn, la espada de Frey. Un rumor dice que es capaz " -"de luchar por sí misma. Está decorada con adornos de oro y plata." - -#: lang/json/TOOL_from_json.py -msgid "inactive craftbuddy" -msgid_plural "inactive craftbuddies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'inactive craftbuddy', 'str_pl': 'inactive -#. craftbuddies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A robot crafting assistant. Useable in its current state as a portable " -"workbench, or deployable as a traveling companion." -msgstr "" -"Es un robot asistente de fabricación. En su estado actual se puede usar como" -" una mesa de trabajo portátil, o llevar como un compañero de viaje." - -#. ~ Description for light auto armor -#. ~ Description for basic auto armor -#. ~ Description for heavy auto armor -#: lang/json/TOOL_from_json.py -msgid "" -"A set of light power armor fitted with an AI core for automated use. " -"Activate it to deploy the robot or disassemble it to use as armor." -msgstr "" -"Es un conjunto de armadura de poder ligera, con un núcleo de IA para uso " -"automatizado. Activalo para desplegar el robot, o desarmalo para usarlo como" -" armadura." - -#: lang/json/TOOL_from_json.py -msgid "basic auto armor" -msgid_plural "basic auto armors" -msgstr[0] "armadura básica automática" -msgstr[1] "armaduras básicas automáticas" - -#: lang/json/TOOL_from_json.py -msgid "inactive hack" -msgid_plural "inactive hacks" -msgstr[0] "hack inactivo" -msgstr[1] "hacks inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating lantern" -msgid_plural "inactive floating lanterns" -msgstr[0] "linterna voladora inactiva" -msgstr[1] "linternas voladoras inactivas" - -#. ~ Use action friendly_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "¡La linterna voladora sale de tu mano e ilumina el área!" - -#. ~ Use action hostile_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the lantern." -msgstr "Programaste mal la linterna." - -#. ~ Description for inactive floating lantern -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive floating lantern, a fist-sized robots that flies through the air" -" and illuminates its surroundings with bright LEDs. The lantern is non " -"aggressive and has no means of attack. Activate this item to deploy the " -"salvaged robot." -msgstr "" -"Es una linterna voladora inactiva, un robot del tamaño de un puño que vuela " -"e ilumina los alrededores con potentes leds. La linterna no es agresiva y no" -" tiene manera de atacar. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive distract-o-hack" -msgid_plural "inactive distract-o-hacks" -msgstr[0] "distract-o-hack inactivo" -msgstr[1] "distract-o-hacks inactivos" - -#. ~ Use action friendly_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "¡El distract-o-hack vuela desde tu mano y empieza a chisporrotear!" - -#. ~ Use action hostile_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the distract-o-hack!" -msgstr "¡Programaste mal el distract-o-hack!" - -#. ~ Description for inactive distract-o-hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive distract-o-hack, a fist-sized robot that flies through the air " -"emitting noise, smoke, and sparks. The salvaged robot has no weapons, but " -"will harass hostile targets to draw their attention. Activate this item to " -"deploy the robot. It cannot be recovered once activated." -msgstr "" -"Es un distract-o-hack inactivo, un robot del tamaño de un puño que vuela " -"emitiendo ruido, humo y chispas. Este robot recuperado no tiene armas, pero " -"molestará a los enemigos para atraer su atención. Activá este objeto para " -"desplegar el robot. Una vez activado, no puede ser recuperado." - -#: lang/json/TOOL_from_json.py -msgid "inactive arson hack" -msgid_plural "inactive arson hacks" -msgstr[0] "incendi-hack inactivo" -msgstr[1] "incendi-hacks inactivos" - -#. ~ Use action friendly_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "The arson hack flies from your hand! Get clear!" -msgstr "¡El incendi-hack vuela desde tu mano! ¡Cuidado!" - -#. ~ Use action hostile_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the arson hack! Run!" -msgstr "" - -#. ~ Description for inactive arson hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive arson hack, a fist-sized robot that flies through the air " -"chaotically spreading deadly fires. The salvaged robot has no weapons, but " -"will emit intermittent bursts of flame as it moves toward hostile targets. " -"Activate this item to deploy the robot. It cannot be recovered once " -"activated." -msgstr "" -"Es un incendi-hack desactivado, un robot del tamaño de un puño que vuela por" -" el aire de manera caótica lanzado llamas mortales. El robot recuperado no " -"tiene armas pero emitirá ráfagas intermitentes de llamas mientras se mueve " -"hacia el enemigo. Al activar este objeto desplegarás el robot. Una vez " -"activado no puede ser recuperado." - -#: lang/json/TOOL_from_json.py -msgid "inactive spore hack" -msgid_plural "inactive spore hacks" -msgstr[0] "espora-hack inactivo" -msgstr[1] "espora-hacks inactivos" - -#. ~ Use action friendly_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "The spore hack flies from your hand!" -msgstr "¡El espora-hack vuela desde tu mano!" - -#. ~ Use action hostile_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the spore hack!" -msgstr "¡Programaste mal el espora-hack!" - -#. ~ Description for inactive spore hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive spore hack, a fist-sized robot that flies through the air " -"spreading alien contaminants. The robot will dust hostile targets, and " -"intermittently cover the terrain with puffs of fungal spores. Activate this" -" item to deploy the robot." -msgstr "" -"Es un espora-hack inactivo, un robot del tamaño de un puño que vuela por el " -"aire propagando contaminantes alienígenas. El robot espolvoreará a los " -"objetivos hostiles, y cubrirá esporádicamente el terreno con nubes de " -"esporas fúngicas. Al activar este objeto desplegarás el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive water turret" -msgid_plural "inactive water turrets" -msgstr[0] "torreta de agua inactiva" -msgstr[1] "torretas de agua inactivas" - -#. ~ Description for inactive water turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive watercannon defense turret. Up to 1000 units of water will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. There is no safety manual." -msgstr "" -"Es una torreta defensiva inactiva de cañón de agua. Serán cargadas hasta " -"1000 unidades de agua automáticamente de tu inventario a la torreta cuando " -"la actives. Cuando pongas la torreta te va a identificar como aliado con su " -"software IFF avanzado. No tiene manual de seguridad." - -#: lang/json/TOOL_from_json.py -msgid "inactive floating heater" -msgid_plural "inactive floating heaters" -msgstr[0] "calentador flotante inactivo" -msgstr[1] "calentadores flotantes inactivos" - -#. ~ Description for inactive floating heater -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space. It is non-aggressive " -"and has no weapons systems. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating furnace" -msgid_plural "inactive floating furnaces" -msgstr[0] "horno flotante inactivo" -msgstr[1] "hornos flotantes inactivos" - -#. ~ Description for inactive floating furnace -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. It is non-" -"aggressive and has no weapons systems. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive burning eye" -msgid_plural "inactive burning eyes" -msgstr[0] "ojo llameante inactivo" -msgstr[1] "ojos llameantes inactivos" - -#. ~ Description for inactive burning eye -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon which it will use on hostile " -"targets. Activate this item to deploy the robot." -msgstr "" -"Es un ojobot reconvertido con un arma láser que usará contra los objetivos " -"hostiles. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive utilibot" -msgid_plural "inactive utilibots" -msgstr[0] "utilitaribot inactivo" -msgstr[1] "utilitaribots inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive blob breeder" -msgid_plural "inactive blob breeders" -msgstr[0] "cultivador inactivo de blobo" -msgstr[1] "cultivadores inactivos de blobo" - -#. ~ Description for inactive blob breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It is non aggressive and has no weapon systems. You can activate " -"this item to deploy the robot and begin the incubation process, but you " -"probably shouldn't." -msgstr "" -"Es un utilitaribot recuperado convertido en una incubadora móvil para blobos" -" alienígenas. No es agresivo y no tiene armas. Podés usar este objeto para " -"desplegar el robot y comenzar el proceso de incubación, pero no deberías." - -#: lang/json/TOOL_from_json.py -msgid "inactive slime breeder" -msgid_plural "inactive slime breeders" -msgstr[0] "cultivador de slime inactivo" -msgstr[1] "cultivadores de slime inactivos" - -#. ~ Description for inactive slime breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob, and upgraded to only produce friendly slimes. It is non aggressive " -"and has no weapon systems. You can activate this item to deploy the robot " -"and begin the incubation process." -msgstr "" -"Es un utilitaribot recuperado convertido en una incubadora móvil para blobos" -" alienígenas, y está mejorado para producir solo slime amistosos. No es " -"agresivo y no tiene armas. Podés usar este objeto para desplegar el robot y " -"comenzar el proceso de incubación." - -#: lang/json/TOOL_from_json.py -msgid "inactive digestron" -msgid_plural "inactive digestrons" -msgstr[0] "digestrón inactivo" -msgstr[1] "digestrones inactivos" - -#. ~ Description for inactive digestron -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. It is non aggressive and has no weapon systems. Activate " -"this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive bee-bot" -msgid_plural "inactive bee-bots" -msgstr[0] "abejabot inactivo" -msgstr[1] "abejabots inactivos" - -#. ~ Description for inactive bee-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers segments of fresh honey comb. It protects" -" the insect colony with a mechanical crossbow mounted to its chassis. " -"Activate this item, with wooden bolts in your inventory, to load and deploy " -"the robot." -msgstr "" -"Es un utilitaribot recuperado convertido en una colmena ambulante que " -"periódicamente quita y entrega panales. Protege la colonia con una ballesta " -"mecánica montada en su chasis. Activá este objeto, con pernos de madera en " -"tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive medibot" -msgid_plural "inactive medibots" -msgstr[0] "medicobot inactivo" -msgstr[1] "medicobots inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive assassin robot" -msgid_plural "inactive assassin robots" -msgstr[0] "asesinobot inactivo" -msgstr[1] "asesinobots inactivos" - -#. ~ Description for inactive assassin robot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. It will attack " -"hostile targets with a set of blades and a toxic needle. Activate this item" -" to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive elixirator" -msgid_plural "inactive elixirators" -msgstr[0] "elixirador inactivo" -msgstr[1] "elixiradores inactivos" - -#. ~ Description for inactive elixirator -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot with its internal pharma-fabricators repurposed to " -"produce mutagen. Activate this item to deploy the robot." -msgstr "" -"Es un medicobot recuperado con sus fabricadores internos de fármacos " -"readaptados para producir mutágeno. Activá este objeto para desplegar el " -"robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive party bot" -msgid_plural "inactive party bots" -msgstr[0] "fiestabot inactivo" -msgstr[1] "fiestabots inactivos" - -#. ~ Description for inactive party bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Activate this item to get the party " -"started." -msgstr "" -"Es un medicobot reciclado, lleno de marihuana, cubierto en luces " -"multicolores y programado para bailar. Activalo para que la fiesta comience." - -#: lang/json/TOOL_from_json.py -msgid "inactive rat snatcher" -msgid_plural "inactive rat snatchers" -msgstr[0] "cazarata inactivo" -msgstr[1] "cazaratas inactivos" - -#. ~ Description for inactive rat snatcher -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It attacks targets" -" with pincers and an integrated tazer. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive grab-bot" -msgid_plural "inactive grab-bots" -msgstr[0] "agarrabot inactivo" -msgstr[1] "agarrabots inactivos" - -#. ~ Description for inactive grab-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. " -"Activate this item to deploy the robot." -msgstr "" -"Es un arañabot reconvertido para agarrar e inmovilizar a los enemigos. " -"Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive pest hunter" -msgid_plural "inactive pest hunters" -msgstr[0] "cazapestes inactivo" -msgstr[1] "cazapestes inactivos" - -#. ~ Description for inactive pest hunter -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " -"this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Es un arañabot reconvertido con un arma 8mm integrada. Activá este objeto, " -"con munición en tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive cyborg" -msgid_plural "inactive cyborgs" -msgstr[0] "androide inactivo" -msgstr[1] "androides inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive necrotic cyborg" -msgid_plural "inactive necrotic cyborgs" -msgstr[0] "androide necrótico inactivo" -msgstr[1] "androides necróticos inactivos" - -#. ~ Description for inactive necrotic cyborg -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Activate this " -"item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive defense robot" -msgid_plural "inactive defense robots" -msgstr[0] "robot defensivo inactivo" -msgstr[1] "robots defensivos inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive junkyard cowboy" -msgid_plural "inactive junkyard cowboys" -msgstr[0] "vaquero de basurero inactivo" -msgstr[1] "vaqueros de basurero inactivos" - -#. ~ Description for inactive junkyard cowboy -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Es un robot defensivo reconvertido con una escopeta y dos sierras " -"circulares. Si activás este objeto teniendo la munición en tu inventario, " -"vas a cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive shortcircuit samurai" -msgid_plural "inactive shortcircuit samurais" -msgstr[0] "samurai cortocircuitos inactivo" -msgstr[1] "samurais cortocircuitos inactivos" - -#. ~ Description for inactive shortcircuit samurai -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with an integrated tazer and two " -"electrified blades. Activate this item to deploy the robot." -msgstr "" -"Es un robot defensivo reconvertido con una pistola eléctrica integrada y dos" -" cuchillas electrificadas. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive slapdash paladin" -msgid_plural "inactive slapdash paladins" -msgstr[0] "paladín chambón inactivo" -msgstr[1] "paladines chambones inactivos" - -#. ~ Description for inactive slapdash paladin -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. Activate this item, with gasoline in your inventory, to" -" load and deploy the robot… preferably far from anything flammable" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military robot" -msgid_plural "inactive military robots" -msgstr[0] "militaribot inactivo" -msgstr[1] "militaribots inactivos" - -#. ~ Description for inactive military robot -#: lang/json/TOOL_from_json.py -msgid "" -"An unpowered military robot fitted with an integrated 7.62 firearm and " -"electric prod. Activate this item, with ammo in your inventory, to load and" -" deploy the robot." -msgstr "" -"Es un militaribot sin energía con un arma 7.62mm y una picana eléctrica " -"integradas. Activá este objeto, con munición en tu inventario, para cargar y" -" desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-guardian" -msgid_plural "inactive robo-guardians" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive robo-guardian -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Es un militaribot reconvertido con un par de armas 9mm integradas. Activá " -"este objeto, con munición en tu inventario, para cargar y desplegar el " -"robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive robote deluxe" -msgid_plural "inactive robote deluxes" -msgstr[0] "robot de lujo inactivo" -msgstr[1] "robots de lujo inactivos" - -#. ~ Description for inactive robote deluxe -#: lang/json/TOOL_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style. Activate this item, with ammo in your inventory, to " -"load and deploy the robot." -msgstr "" -"Es un robot con placas de oro y decorado con diamantes, armado con un par de" -" armas 9mm integradas. Es un robot opulento de lujo, adecuado para aquellos " -"que desean sobrevivir al apocalipsis sin perder el estilo. Activá este " -"objeto, con munición en tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-protector" -msgid_plural "inactive robo-protectors" -msgstr[0] "protectorbot inactivo" -msgstr[1] "protectorbots inactivos" - -#. ~ Description for inactive robo-protector -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Es un militaribot reconvertido con un rifle 5.56mm integrado. Activá este " -"objeto, con munición en tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-defender" -msgid_plural "inactive robo-defenders" -msgstr[0] "defensorbot inactivo" -msgstr[1] "defensorbots inactivos" - -#. ~ Description for inactive robo-defender -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Activate" -" this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Es un militaribot reconvertido con un rifle 50bmg integrado. Activá este " -"objeto, con munición en tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced robot" -msgid_plural "inactive advanced robots" -msgstr[0] "robot avanzado inactivo" -msgstr[1] "robots avanzados inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive glittering lady" -msgid_plural "inactive glittering ladies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'inactive glittering lady', 'str_pl': 'inactive -#. glittering ladies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It attacks hostile targets with its two integral lasers and blinding " -"flashes. Activate this item to deploy the robot." -msgstr "" -"Es un robot avanzado transformado en una baliza luminosa de destrucción. " -"Ataca a sus enemigos con dos láser integrados y emite un pulso constante de " -"destellos cegadores. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive bitter spinster" -msgid_plural "inactive bitter spinsters" -msgstr[0] "solterona amarga inactiva" -msgstr[1] "solteronas amargas inactivas" - -#. ~ Description for inactive bitter spinster -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " -"to deploy the robot." -msgstr "" -"Es un robot militar transformado en un monstruo cáustico. Un fermentador " -"interno de ácido alimenta un escupidor y rociador.Activá este objeto para " -"desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive chickenwalker" -msgid_plural "inactive chickenwalkers" -msgstr[0] "mecagallina inactiva" -msgstr[1] "mecagallinas inactivas" - -#: lang/json/TOOL_from_json.py -msgid "inactive chainsaw horror" -msgid_plural "inactive chainsaw horrors" -msgstr[0] "horror motosierra inactivo" -msgstr[1] "horrores motosierra inactivos" - -#. ~ Description for inactive chainsaw horror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of whirring " -"chainsaws and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " -"calaveras y púas. Ataca a sus enemigos con un par de motosierras zumbantes y" -" su sistema defensivo de sonido. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive screeching terror" -msgid_plural "inactive screeching terrors" -msgstr[0] "terror chillón inactivo" -msgstr[1] "terrores chillones inactivos" - -#. ~ Description for inactive screeching terror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of piston-driven " -"lances and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " -"calaveras y púas. Ataca a sus enemigos con un par de lanzas a pistones y su " -"sistema defensivo de sonido. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive hooked nightmare" -msgid_plural "inactive hooked nightmares" -msgstr[0] "pesadilla ganchuda inactiva" -msgstr[1] "pesadillas ganchudas inactivas" - -#. ~ Description for inactive hooked nightmare -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of spinning hooks" -" on chains and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " -"calaveras y púas. Ataca a sus enemigos con un par de ganchos con cadenas " -"giratorios y su sistema defensivo de sonido. Activá este objeto para " -"desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive tankbot" -msgid_plural "inactive tankbots" -msgstr[0] "tanquebot inactivo" -msgstr[1] "tanquebots inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive fist king" -msgid_plural "inactive fist kings" -msgstr[0] "rey puño inactivo" -msgstr[1] "reyes puños inactivos" - -#. ~ Description for inactive fist king -#. ~ Description for inactive atomic sultan -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Activate this " -"item to deploy the robot." -msgstr "" -"Es un tanquebot modificado con un par de poderosos martillos neumáticos que " -"utiliza para aplastar todo lo que se cruce, incluso edificios. Activá este " -"objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive atomic sultan" -msgid_plural "inactive atomic sultans" -msgstr[0] "sultán atómico inactivo" -msgstr[1] "sultanes atómicos inactivos" - -#: lang/json/TOOL_from_json.py -msgid "active glowball" -msgid_plural "active glowballs" -msgstr[0] "bola de brillar activa" -msgstr[1] "bolas de brillar activas" - -#. ~ Use action msg for active glowball. -#: lang/json/TOOL_from_json.py -msgid "The glowball goes dim." -msgstr "La bola de brillar se va apagando." - -#. ~ Description for active glowball -#: lang/json/TOOL_from_json.py -msgid "A small plastic ball filled with glowing chemicals." -msgstr "Es una pequeña pelota de plástico llena con químicos que brillan." - #: lang/json/TOOL_from_json.py msgid "TEST rag" msgid_plural "TEST rags" @@ -104190,505 +103921,26 @@ msgstr[0] "" msgstr[1] "" #: lang/json/TOOL_from_json.py -msgid "growing blob frame" -msgid_plural "growing blob frames" -msgstr[0] "armazón de blobo en crecimiento" -msgstr[1] "armazones de blobo en crecimiento" - -#. ~ Use action msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "" -"You test the frame; It wiggles, and then collapses into an lump of goo." -msgstr "" -"Probás la armazón, se contonea y luego colapsa en una montañita viscosa." - -#. ~ Use action not_ready_msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "Probás la armazón; está muy blanda, todavía le falta endurecerse" - -#. ~ Description for {'str': 'growing blob frame'} -#: lang/json/TOOL_from_json.py -msgid "" -"A growing vehicle frame made of bone. It's coated in a thick layer of ooze," -" though there's greater amounts on the bindings. It's not quite tough " -"enough to use." -msgstr "" -"Es una armazón todavía creciendo para vehículo, hecha de hueso. Está " -"cubierta con una capa gruesa de flujo, aunque tiene mayores cantidades en " -"las uniones. No está lo suficientemente dura como para usar." - -#: lang/json/TOOL_from_json.py -msgid "growing keratinous mass" -msgid_plural "growing keratinous mass" -msgstr[0] "masa queratinosa creciendo" -msgstr[1] "masa queratinosa creciendo" - -#. ~ Use action msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action msg for {'str_sp': 'growing ooze'}. -#. ~ Use action msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "The blob balloons to full size." -msgstr "El blobo se infla hasta tomar su tamaño completo." - -#. ~ Use action not_ready_msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing ooze'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "Whatever it's doing, it's not done yet." -msgstr "Sea lo que sea que está haciendo, todavía no terminó." - -#. ~ Description for {'str_sp': 'growing keratinous mass'} -#. ~ Description for {'str_sp': 'growing beaded mass'} -#. ~ Description for {'str_sp': 'growing icy mass'} -#. ~ Description for {'str_sp': 'growing cold mass'} -#. ~ Description for {'str_sp': 'growing hairy mass'} -#. ~ Description for {'str_sp': 'growing gelatinous mass'} -#. ~ Description for {'str_sp': 'growing glowing mass'} -#. ~ Description for {'str_sp': 'growing gray mass'} -#. ~ Description for {'str_sp': 'growing spike-studded mass'} -#. ~ Description for {'str_sp': 'growing gasoline-laced mass'} -#. ~ Description for {'str_sp': 'growing acidic mass'} -#. ~ Description for {'str_sp': 'growing ooze'} -#. ~ Description for {'str_sp': 'growing mass of tendrils'} -#. ~ Description for {'str_sp': 'growing spiked mass'} -#. ~ Description for {'str_sp': 'growing spiny mass'} -#. ~ Description for {'str_sp': 'growing spiky mass'} -#. ~ Description for {'str_sp': 'growing bright mass'} -#. ~ Description for {'str_sp': 'growing viscous mass'} -#. ~ Description for {'str_sp': 'growing warm mass'} -#. ~ Description for {'str_sp': 'growing electrified mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Not quite fully grown, this blob requires nourishment to fully develop." -msgstr "" -"Este blobo todavía no está totalmente crecido y necesita nutrirse para poder" -" desarrollarse." - -#: lang/json/TOOL_from_json.py -msgid "growing beaded mass" -msgid_plural "growing beaded mass" -msgstr[0] "masa con cuentas creciendo" -msgstr[1] "masa con cuentas creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing icy mass" -msgid_plural "growing icy mass" -msgstr[0] "masa helada creciendo" -msgstr[1] "masa helada creciendo" - -#: lang/json/TOOL_from_json.py -msgid "gelacier" -msgid_plural "gelaciers" -msgstr[0] "gelacier" -msgstr[1] "gelaciers" - -#. ~ Description for {'str': 'gelacier'} -#: lang/json/TOOL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "growing cold mass" -msgid_plural "growing cold mass" -msgstr[0] "masa fría creciendo" -msgstr[1] "masa fría creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing hairy mass" -msgid_plural "growing hairy mass" -msgstr[0] "masa peluda creciendo" -msgstr[1] "masa peluda creciendo" - -#. ~ Use action msg for {'str_sp': 'gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'gray mass'}. -#. ~ Use action msg for {'str_sp': 'oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "You fumble as the blob starts to multiply rapidly!" -msgstr "" -"¡Quedás dubitativo mientras el blobo empieza a multiplicarse rápidamente!" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An experiment gone horribly right. While the original intent was to combine" -" the structure of a bone frame with the impact absorption of the blob; the " -"blob seems to have completely consumed the bone. Instead, what remains is " -"an amorphous mass of goo with what seems to be numerous thin filaments " -"floating within. With a bit of effort, you can grasp the fibers and stretch" -" the mass into a multitude of shapes. The mass is able to retain the new " -"shape even under force, though the mass yields at your touch. With enough " -"strength, you think you can pull it apart." -msgstr "" -"Es un experimento que salió horriblemente mal. Aunque el intento original " -"fue combinar la estructura de una armazón de hueso con la absorción de " -"impacto de un blobo; el blobo parece haber consumido completamente el hueso." -" Por lo tanto, lo que queda es una masa amorfa y viscosa con lo que parecen " -"ser varios filamentos delgados flotando adentro. Con un poco de esfuerzo, " -"podés agarrar las fibras y estirar la masa en una variedad de formas. La " -"masa es capaz de mantener su nueva forma incluso siendo forzada, aunque cede" -" cuando la tocás. Con fuerza suficiente, te parece que podrías desarmarla." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gelatinous mass" -msgid_plural "multiplying gelatinous mass" -msgstr[0] "masa gelatinosa multiplicándose" -msgstr[1] "masa gelatinosa multiplicándose" - -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying oozing mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "A blob splits and bounces away!" -msgstr "¡Un blobo se separa y sale rebotando!" - -#. ~ Description for {'str_sp': 'multiplying gelatinous mass'} -#. ~ Description for {'str_sp': 'multiplying gray mass'} -#. ~ Description for {'str_sp': 'multiplying oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Having been fed, this blob is now rapidly multiplying into other copies of " -"itself; extremely noisy copies! And even worse, it's stuck to your hands " -"until whatever it's doing is done! Catch those blobs before they bring in " -"every zombie for miles!" -msgstr "" -"Luego de ser alimentado, el blobo ahora se está multiplicando rápidamente " -"formando copias de sí mismo... ¡copias extremadamente ruidosas! Y lo que es " -"peor, se te pega en las manos hasta que termina lo que está haciendo. " -"¡Atrapá a esos blobos antes de que atraigan a todos los zombis de la zona!" - -#: lang/json/TOOL_from_json.py -msgid "growing gelatinous mass" -msgid_plural "growing gelatinous mass" -msgstr[0] "masa gelatinosa creciendo" -msgstr[1] "masa gelatinosa creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing glowing mass" -msgid_plural "growing glowing mass" -msgstr[0] "masa reluciente creciendo" -msgstr[1] "masa reluciente creciendo" - -#. ~ Description for {'str_sp': 'gray mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"This internal structures of this creature have developed significantly. " -"While retaining the resilience and malleability of its once simpler form, it" -" has gained the considerable abilities of perception and stimulus response." -" When directly threatened, it is able to shift and alter its microfibers, " -"hardening its membrane to an almost steel-hard shell. You can still pull it" -" apart with enough force. It's also really gray." -msgstr "" -"Las estructuras internas que esta criatura se han desarrollado " -"significativamente. Aunque mantiene la resiliencia y maleabilidad de su " -"anterior forma más simple, ha ganado habilidades considerables de percepción" -" y respuesta a los estímulos. Cuando es amenazada directamente, es capaz de " -"cambiar y alterar sus microfibras, endureciendo su membrana hasta formar una" -" caparazón casi dura como el acero. Igual la podés desarmar con la " -"suficiente fuerza. Y también es muy gris." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gray mass" -msgid_plural "multiplying gray mass" -msgstr[0] "masa gris multiplicándose" -msgstr[1] "masa gris multiplicándose" - -#: lang/json/TOOL_from_json.py -msgid "growing gray mass" -msgid_plural "growing gray mass" -msgstr[0] "masa gris creciendo" -msgstr[1] "masa gris creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing spike-studded mass" -msgid_plural "growing spike-studded mass" -msgstr[0] "masa llena de púas creciendo" -msgstr[1] "masa llena de púas creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing gasoline-laced mass" -msgid_plural "growing gasoline-laced mass" -msgstr[0] "masa cubierta de nafta creciendo" -msgstr[1] "masa cubierta de nafta creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing acidic mass" -msgid_plural "growing acidic mass" -msgstr[0] "masa ácida creciendo" -msgstr[1] "masa ácida creciendo" - -#: lang/json/TOOL_from_json.py -msgid "oozing mass" -msgid_plural "oozing mass" -msgstr[0] "masa supurante" -msgstr[1] "masa supurante" - -#. ~ Description for {'str_sp': 'oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An amorphous mass that has undergone a significant growth. In addition to " -"the increased amount of goo and sinuous filaments, it seems to have started " -"developing other internal structures. Like its smaller counterpart, it can " -"be shaped into various structures; albeit with significantly greater tensile" -" strength due to the increased number of supporting filaments. You believe " -"you can split it apart with enough force." -msgstr "" -"Es una masa amorfa que ha sufrido un crecimiento significativo. Además de " -"incrementar la cantidad de viscosidad y filamentos sinuosos, parece haber " -"empezado a desarrollar otras estructuras internas. Como su primo más chico, " -"puede dársele la forma de varias estructuras, pero con mucha fuerza de " -"tensión debido a sus numerosos filamentos de soporte. Te parece que podrías " -"desarmarla con la suficiente fuerza." - -#: lang/json/TOOL_from_json.py -msgid "multiplying oozing mass" -msgid_plural "multiplying oozing mass" -msgstr[0] "masa supurante multiplicándose" -msgstr[1] "masa supurante multiplicándose" - -#: lang/json/TOOL_from_json.py -msgid "growing ooze" -msgid_plural "growing ooze" -msgstr[0] "flujo creciendo" -msgstr[1] "flujo creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing mass of tendrils" -msgid_plural "growing mass of tendrils" -msgstr[0] "masa creciendo de zarcillos" -msgstr[1] "masa creciendo de zarcillos" - -#: lang/json/TOOL_from_json.py -msgid "growing spiked mass" -msgid_plural "growing spiked mass" -msgstr[0] "masa con púas creciendo" -msgstr[1] "masa con púas creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing spiny mass" -msgid_plural "growing spiny mass" -msgstr[0] "masa espinosa creciendo" -msgstr[1] "masa espinosa creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing spiky mass" -msgid_plural "growing spiky mass" -msgstr[0] "masa puntiaguda creciendo" -msgstr[1] "masa puntiaguda creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing bright mass" -msgid_plural "growing bright mass" -msgstr[0] "masa brillante creciendo" -msgstr[1] "masa brillante creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing viscous mass" -msgid_plural "growing viscous mass" -msgstr[0] "masa viscosa creciendo" -msgstr[1] "masa viscosa creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing warm mass" -msgid_plural "growing warm mass" -msgstr[0] "masa tibia creciendo" -msgstr[1] "masa tibia creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing electrified mass" -msgid_plural "growing electrified mass" -msgstr[0] "masa electrificada creciendo" -msgstr[1] "masa electrificada creciendo" - -#: lang/json/TOOL_from_json.py -msgid "diamond cluster" -msgid_plural "diamond clusters" -msgstr[0] "grupo de diamante" -msgstr[1] "grupos de diamante" - -#. ~ Use action msg for {'str': 'diamond cluster'}. -#: lang/json/TOOL_from_json.py -msgid "The cluster comes apart in your hands." -msgstr "El grupo se desarma en tus manos." - -#. ~ Description for {'str': 'diamond cluster'} -#: lang/json/TOOL_from_json.py -msgid "" -"A cluster of artificial crystals that have broken off of a diamond matrix. " -"While the substance usually decays when separated from the catalyst; this " -"cluster seems to be self-sustaining by some unknown mechanism. " -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "diamond matrix" -msgid_plural "diamond matrices" -msgstr[0] "matriz de diamante" -msgstr[1] "matrices de diamante" - -#. ~ Use action msg for {'str': 'diamond matrix', 'str_pl': 'diamond -#. matrices'}. -#: lang/json/TOOL_from_json.py -msgid "" -"Your senses dull as you gaze into the depths of this gemstone's center…" -msgstr "" - -#. ~ Description for {'str': 'diamond matrix', 'str_pl': 'diamond matrices'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sparkling diamond with a dazzling spiral pattern. Small pieces of " -"glittering crystal form on the edges as you hold it." -msgstr "" -"Es un destellante diamante con un espiral deslumbrante. En los bordes se " -"forman unos pequeños pedazos de cristal reluciente cuando lo tenés en la " -"mano." - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex engine" -msgid_plural "vortex engines" -msgstr[0] "motor vórtice" -msgstr[1] "motores vórtice" - -#. ~ Description for {'str': 'vortex engine'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allows it to be attached to a vehicle to render " -"it mobile." -msgstr "" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex generator" -msgid_plural "vortex generators" -msgstr[0] "generador vórtice" -msgstr[1] "generadores vórtice" - -#. ~ Description for {'str': 'vortex generator'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allow it to be hooked up to a battery to store " -"the power generated." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "control chip" -msgid_plural "control chips" -msgstr[0] "chip de control" -msgstr[1] "chips de control" - -#. ~ Description for control chip -#: lang/json/TOOL_from_json.py -msgid "" -"A small device, not bigger than a man's fist. It provides primitive " -"organisms with electric stimulation, reviving them and forcing them to obey " -"your commands. This version only works on blobs." -msgstr "" -"Un pequeño dispositivo, no más grande que un puño humano. Le otorga " -"estimulación eléctrica a los organismos primitivos, reviviéndolos y " -"forzándolos a obedecer tus órdenes. Esta versión solamente funciona en " -"blobos." - -#: lang/json/TOOL_from_json.py -msgid "dormant blob" -msgid_plural "dormant blobs" -msgstr[0] "blobo dormido" -msgstr[1] "blobos dormidos" - -#. ~ Use action friendly_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "The blob becomes active and starts slithering around." -msgstr "El blobo se pone en actividad y empieza a deslizarse por ahí." - -#. ~ Use action hostile_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "You've made a terrible mistake, the blob is hostile!" -msgstr "¡Cometiste un terrible error, el blobo es hostil!" +msgid "test smartphone" +msgid_plural "test smartphones" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for dormant blob +#. ~ Description for {'str': 'test smartphone'} #: lang/json/TOOL_from_json.py -msgid "" -"Several chunks of blob scraps, stuffed with a control chip and sewn back " -"together. A light shock from the UPS started the chip, bringing the blob " -"back to life. Use this item to wake up the blob." +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." msgstr "" -"Son varios pedazos de restos de blobo metidos con un chip de control y " -"cosidos entre sí. Un pequeño shock del UPS hizo encender el chip, lo que le " -"dio vida al blobo. Usa este objeto para despertar el blobo." - -#: lang/json/TOOL_from_json.py -msgid "dormant minion" -msgid_plural "dormant minions" -msgstr[0] "secuaz dormido" -msgstr[1] "secuaces dormidos" - -#. ~ Use action friendly_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "The jabberwock climbs to its feet and shambles around." -msgstr "El jabberwock se para y empieza a andar arrastrándose." -#. ~ Use action hostile_msg for dormant minion. #: lang/json/TOOL_from_json.py -msgid "" -"Something has gone wrong; after getting up the jabberwock lumbers toward you" -" menacingly!" -msgstr "" -"¡Algo salió mal, después de despertar al jabberwock empieza a moverse de " -"manera amenazante contra vos!" +msgid "test matchbook" +msgid_plural "test matchbooks" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for dormant minion +#. ~ Description for {'str': 'test matchbook'} #: lang/json/TOOL_from_json.py -msgid "" -"Your very own undead servant. The blob controlling its body is in a state " -"of coma, awaiting your orders. Use this item to wake up the minion." +msgid "Test matches - when you must burn things, for science!" msgstr "" -"Tu muerto viviente, tu sirviente personal. El blobo que controla su cuerpo " -"está en estado de coma, esperando tus órdenes. Usá este objeto para " -"despertar a este secuaz." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -104785,7 +104037,7 @@ msgstr[1] "kits de rueditas" #. ~ Description for {'str': 'set of casters', 'str_pl': 'sets of casters'} #: lang/json/WHEEL_from_json.py msgid "A set of casters, like on a shopping cart." -msgstr "Un kit de rueditas, como para un changuito." +msgstr "Es un kit de rueditas, como para un changuito." #: lang/json/WHEEL_from_json.py msgid "set of wheels" @@ -104894,6 +104146,19 @@ msgstr "" "Es una rueda bastante chica. Probablemente, sea de uno de esos " "transportadores personales Segway. No es la gran cosa." +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "" + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" @@ -104981,351 +104246,221 @@ msgstr[1] "" msgid "A column of mana energy that enables a floating disk to move." msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Rubber Caterpillar Track" -msgid_plural "Rubber Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Rubber Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of hard rubber tracks reinforced by stiff wire " -"held in place by a set of smaller wheels. Similar with what you might see " -"used on light construction vehicles. It's significantly stronger than " -"regular tires due to not being at risk of bursting; but is quite heavy." -msgstr "" -"Es una cadena articulada corta, hecha de caucho duro reforzadas con alambre " -"rígido, y que se mantiene en su lugar por una serie ruedas más pequeñas. " -"Similar a las que viste en los vehículos pequeños usados en las obras de " -"construcción. Es bastante más fuerte que las ruedas normales debido a que no" -" corren riesgo de reventar, pero son bastante pesadas." - -#: lang/json/WHEEL_from_json.py -msgid "Steel Caterpillar Track" -msgid_plural "Steel Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Steel Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on large construction " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is very heavy." -msgstr "" -"Es una cadena articulada corta, hecha de acero y que se mantiene en su lugar" -" por una serie ruedas más pequeñas. Similar a las que viste en los vehículos" -" grandes usados en las obras de construcción. Es significativamente más " -"fuerte que las ruedas normales debido a que no corren riesgo de reventar, " -"pero son muy pesadas." - -#: lang/json/WHEEL_from_json.py -msgid "Reinforced Caterpillar Track" -msgid_plural "Reinforced Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Reinforced Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on APCs and armored " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is extremely heavy." -msgstr "" -"Es una cadena articulada corta, hecha de acero y que se mantiene en su lugar" -" por una serie ruedas más pequeñas. Similar a las que viste en los vehículos" -" blindados y los APC. Es significativamente más fuerte que las ruedas " -"normales debido a que no corren riesgo de reventar, pero son extremadamente " -"pesadas." - -#: lang/json/WHEEL_from_json.py -msgid "Gelatinous track" -msgid_plural "Gelatinous tracks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Gelatinous track'} -#. ~ Description for {'str': 'Oozing track'} -#. ~ Description for {'str': 'Gray track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of tracks created out of some of your monstrosity " -"blob based parts. Similar with what you might see used on light " -"construction vehicles. It's significantly stronger than regular tires due " -"to not being at risk of bursting; but is quite heavy." -msgstr "" -"Es una cadena articulada corta creada con alguna clase de monstruosas partes" -" hechas de blobo. Similar a las que tienen los vehículos pequeños usados en " -"las obras de construcción. Es significativamente más resistente que las " -"ruedas normales debido a que no corren riesgo de reventar, pero es bastante " -"pesada." - -#: lang/json/WHEEL_from_json.py -msgid "Oozing track" -msgid_plural "Oozing tracks" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "Gray track" -msgid_plural "Gray tracks" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "One down, billions to go…" +msgstr "Uno menos, faltan billones…" -#: lang/json/WHEEL_from_json.py -msgid "gelacier wheel" -msgid_plural "gelacier wheels" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Rude awakening" +msgstr "Despertar grosero" -#. ~ Description for {'str': 'gelacier wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It has formed itself into a wide, crude " -"wheel." +#: lang/json/achievement_from_json.py +msgid "Decamate" msgstr "" -"Es un misterio biológico, la estructura interna de este blobo existe dentro " -"de una pileta de fluido de baja densidad que se mantiene líquido a pesar de " -"estar en estado superfrío. Pero aún así posee la maleabilidad de su forma " -"previa. Fragmentos de hielo continúan desprendiéndose. Se ha dado forma de " -"rueda ancha a sí mismo." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gelatinous wheel" -msgid_plural "gelatinous wheels" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Centinel" +msgstr "Centinela" -#. ~ Description for {'str': 'gelatinous wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gelatinous mass with water has resulted in something that appears " -"to be a cross between a wheel, an otherworldly abomination, and one of those" -" old squeezy toys." -msgstr "" -"Llenar una masa gelatinosa con agua ha resultado en algo que parece ser una " -"cruza entre una rueda, una abominación de otro mundo y uno de esos juguetes " -"viejos que hacen ruidito cuando los apretás." +#: lang/json/achievement_from_json.py +msgid "The first day of the rest of their unlives" +msgstr "El primer día del resto de sus no-vidas" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gray wheel" -msgid_plural "gray wheels" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a day and find a safe place to sleep" +msgstr "Sobrevivir un día y encontrar un lugar seguro para dormir" -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gray mass with water has resulted in something that appears to be " -"a cross between a wheel, an otherworldly abomination, and one of those old " -"squeezy toys." -msgstr "" -"Llenar una masa gris con agua ha resultado en algo que parece ser una cruza " -"entre una rueda, una abominación de otro mundo y uno de esos juguetes viejos" -" que hacen ruidito cuando los apretás." +#: lang/json/achievement_from_json.py +msgid "Thank God it's Friday" +msgstr "Gracias a dios que es viernes" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "earthen roller" -msgid_plural "earthen rollers" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a week" +msgstr "Sobrevivir una semana" -#. ~ Description for {'str': 'earthen roller'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A large, spherical blob the size of a large truck tire. The outer layer has" -" compacted itself into a solid shell; offering great resilience. Having " -"grown to full size, it seems content to simply sit there." -msgstr "" -"Es un gran blobo esférico, del tamaño de una rueda grande de camión. La capa" -" exterior se ha compactado en una coraza sólida, lo que brinda gran " -"resiliencia. Al haber crecido a su tamaño completo, parece estar contenta de" -" solo quedarse ahí quieta." +#: lang/json/achievement_from_json.py +msgid "28 days later" +msgstr "28 días después" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "oozing wheel" -msgid_plural "oozing wheels" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a month" +msgstr "Sobrevivir un mes" -#. ~ Description for {'str': 'oozing wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling an oozing mass with water has resulted in something that appears to " -"be a cross between a wheel, an otherworldly abomination, and one of those " -"old squeezy toys." -msgstr "" -"Llenar una masa supurante con agua ha resultado en algo que parece ser una " -"cruza entre una rueda, una abominación de otro mundo y uno de esos juguetes " -"viejos que hacen ruidito cuando los apretás." +#: lang/json/achievement_from_json.py +msgid "A time to every purpose under heaven" +msgstr "Todo lo que se quiere debajo del cielo tiene su hora" #: lang/json/achievement_from_json.py -msgid "One down, billions to go…" -msgstr "" +msgid "Survive for a season" +msgstr "Sobrevivir una estación" #: lang/json/achievement_from_json.py -msgid "Rude awakening" -msgstr "" +msgid "Brighter days ahead?" +msgstr "¿Se vienen días menos oscuros?" #: lang/json/achievement_from_json.py -msgid "The first day of the rest of their unlives" -msgstr "" +msgid "Survive for a year" +msgstr "Sobrevivir un año" #: lang/json/achievement_from_json.py msgid "Pheidippides was a hack" -msgstr "" +msgstr "Filípides era un noob" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." -msgstr "" +msgstr "Correr una maratón… y un poquito más." #: lang/json/achievement_from_json.py msgid "Please don't fall down at my door" -msgstr "" +msgstr "Por favor, no caigas en mi puerta" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." -msgstr "" +msgstr "Caminar 500 millas, y después caminar 500 más." #: lang/json/achievement_from_json.py msgid "Every rose has its thorn" -msgstr "" +msgstr "Cada rosa tiene su espina" #: lang/json/achievement_from_json.py msgid "Swimming merit badge" -msgstr "" +msgstr "Reconocimiento al mérito en natación" #: lang/json/achievement_from_json.py msgid "Ain't no mountain high enough" -msgstr "" +msgstr "No hay montaña lo suficientemente alta" #: lang/json/achievement_from_json.py msgid "Ain't no valley low enough" -msgstr "" +msgstr "No hay valle lo suficientemente bajo" + +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "Favorito del hombre libre" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "Impenetrable" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "¿Qué están escondiendo?" #: lang/json/activity_type_from_json.py msgid "reloading" -msgstr "" +msgstr "recargar" #: lang/json/activity_type_from_json.py msgid "finding a mount" -msgstr "" +msgstr "buscar montura" #: lang/json/activity_type_from_json.py msgid "reading" -msgstr "" +msgstr "leer" #: lang/json/activity_type_from_json.py msgid "constructing" -msgstr "" +msgstr "construir" #: lang/json/activity_type_from_json.py msgid "mining" -msgstr "" +msgstr "hacer mina" #: lang/json/activity_type_from_json.py msgid "tidying up" -msgstr "" +msgstr "ordenar" #: lang/json/activity_type_from_json.py msgid "deconstructing a vehicle" -msgstr "" +msgstr "desarmar vehículo" #: lang/json/activity_type_from_json.py msgid "repairing a vehicle" -msgstr "" +msgstr "arreglar vehículo" #: lang/json/activity_type_from_json.py msgid "chopping logs" -msgstr "" +msgstr "cortar troncos" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "butchering" -msgstr "Carnear" +msgstr "carnear" #: lang/json/activity_type_from_json.py msgid "chopping trees" -msgstr "" +msgstr "cortar árboles" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "fishing" -msgstr "" +msgstr "pescar" #: lang/json/activity_type_from_json.py msgid "playing" -msgstr "" +msgstr "tocar" #: lang/json/activity_type_from_json.py msgid "waiting" -msgstr "" +msgstr "esperar" #: lang/json/activity_type_from_json.py msgid "crafting" -msgstr "" +msgstr "fabricar" #: lang/json/activity_type_from_json.py msgid "disassembly" -msgstr "" +msgstr "desarmar" #: lang/json/activity_type_from_json.py msgid "field dressing" -msgstr "" +msgstr "vendar" #: lang/json/activity_type_from_json.py msgid "skinning" -msgstr "" +msgstr "cuerear" #: lang/json/activity_type_from_json.py msgid "quartering" -msgstr "" +msgstr "descuartizar" #: lang/json/activity_type_from_json.py msgid "dismembering" -msgstr "" +msgstr "desmembrar" #: lang/json/activity_type_from_json.py msgid "dissecting" -msgstr "" +msgstr "diseccionar" #: lang/json/activity_type_from_json.py msgid "salvaging" -msgstr "" +msgstr "recuperar" #: lang/json/activity_type_from_json.py msgid "foraging" -msgstr "" +msgstr "buscar comida" #: lang/json/activity_type_from_json.py msgid "interacting with the vehicle" -msgstr "" +msgstr "interactuar con vehículo" #: lang/json/activity_type_from_json.py msgid "training" -msgstr "" +msgstr "entrenar" #: lang/json/activity_type_from_json.py msgid "socializing" -msgstr "" +msgstr "socializar" #: lang/json/activity_type_from_json.py msgid "using first aid" -msgstr "" +msgstr "usar primeros auxilios" #: lang/json/activity_type_from_json.py msgid "burrowing" -msgstr "" +msgstr "cavar" #: lang/json/activity_type_from_json.py msgid "smashing" -msgstr "" +msgstr "destrozar" #: lang/json/activity_type_from_json.py msgid "cranking" @@ -105333,31 +104468,27 @@ msgstr "" #: lang/json/activity_type_from_json.py msgid "heating" -msgstr "" +msgstr "calentar" #: lang/json/activity_type_from_json.py msgid "de-stressing" -msgstr "" - -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr "" +msgstr "desestresar" #: lang/json/activity_type_from_json.py msgid "dropping" -msgstr "" +msgstr "soltar" #: lang/json/activity_type_from_json.py msgid "stashing" -msgstr "" +msgstr "guardar" #: lang/json/activity_type_from_json.py msgid "picking up" -msgstr "" +msgstr "agarrar" #: lang/json/activity_type_from_json.py msgid "moving items" -msgstr "" +msgstr "mover objetos" #: lang/json/activity_type_from_json.py lang/json/skill_from_json.py msgid "driving" @@ -105365,71 +104496,71 @@ msgstr "manejar" #: lang/json/activity_type_from_json.py msgid "traveling" -msgstr "" +msgstr "viajar" #: lang/json/activity_type_from_json.py msgid "sorting out the loot" -msgstr "" +msgstr "ordenar cosas" #: lang/json/activity_type_from_json.py msgid "fetching components" -msgstr "" +msgstr "buscar componentes" #: lang/json/activity_type_from_json.py msgid "farming" -msgstr "" +msgstr "cultivar" #: lang/json/activity_type_from_json.py msgid "fertilizing plots" -msgstr "" +msgstr "fertilizar campos" #: lang/json/activity_type_from_json.py msgid "interacting with inventory" -msgstr "" +msgstr "interactuar con inventario" #: lang/json/activity_type_from_json.py msgid "fiddling with your clothes" -msgstr "" +msgstr "manipular la ropa" #: lang/json/activity_type_from_json.py msgid "lighting the fire" -msgstr "" +msgstr "encender fuego" #: lang/json/activity_type_from_json.py msgid "working the winch" -msgstr "" +msgstr "usar el malacate" #: lang/json/activity_type_from_json.py msgid "filling the container" -msgstr "" +msgstr "llenar el recipiente" #: lang/json/activity_type_from_json.py msgid "milking an animal" -msgstr "" +msgstr "ordeñar animal" #: lang/json/activity_type_from_json.py msgid "shearing an animal" -msgstr "" +msgstr "esquilar animal" #: lang/json/activity_type_from_json.py msgid "hotwiring the vehicle" -msgstr "" +msgstr "puentear vehículo" #: lang/json/activity_type_from_json.py msgid "aiming" -msgstr "" +msgstr "apuntar" #: lang/json/activity_type_from_json.py msgid "using the ATM" -msgstr "" +msgstr "usar el cajero automático" #: lang/json/activity_type_from_json.py msgid "trying to start the vehicle" -msgstr "" +msgstr "intentar arrancar el vehículo" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "welding" -msgstr "Soldar" +msgstr "soldar" #: lang/json/activity_type_from_json.py msgid "cracking" @@ -105437,155 +104568,155 @@ msgstr "" #: lang/json/activity_type_from_json.py msgid "picking lock" -msgstr "" +msgstr "usar ganzúa" #: lang/json/activity_type_from_json.py msgid "repairing" -msgstr "" +msgstr "reparar" #: lang/json/activity_type_from_json.py msgid "mending" -msgstr "" +msgstr "arreglar" #: lang/json/activity_type_from_json.py msgid "modifying gun" -msgstr "" +msgstr "modificar arma" #: lang/json/activity_type_from_json.py msgid "modifying tool" -msgstr "" +msgstr "modificar herramienta" #: lang/json/activity_type_from_json.py msgid "interacting with the NPC" -msgstr "" +msgstr "interactuar con PNJ" #: lang/json/activity_type_from_json.py msgid "catching breath" -msgstr "" +msgstr "recuperar el aliento" #: lang/json/activity_type_from_json.py msgid "clearing that rubble" -msgstr "" +msgstr "limpiar el escombro" #: lang/json/activity_type_from_json.py msgid "meditating" -msgstr "" +msgstr "meditar" #: lang/json/activity_type_from_json.py msgid "washing" -msgstr "" +msgstr "lavar" #: lang/json/activity_type_from_json.py msgid "cutting the metal" -msgstr "" +msgstr "cortar el metal" #: lang/json/activity_type_from_json.py msgid "prying nails" -msgstr "" +msgstr "sacar clavos" #: lang/json/activity_type_from_json.py msgid "chopping down a tree" -msgstr "" +msgstr "talar árbol" #: lang/json/activity_type_from_json.py msgid "chopping a log" -msgstr "" +msgstr "cortar tronco" #: lang/json/activity_type_from_json.py msgid "cutting planks" -msgstr "" +msgstr "cortar tablas" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "drilling" -msgstr "Agujerear" +msgstr "agujerear" #: lang/json/activity_type_from_json.py msgid "churning earth" -msgstr "" +msgstr "revolver tierra" #: lang/json/activity_type_from_json.py msgid "planting seeds" -msgstr "" +msgstr "plantar semillas" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "digging" -msgstr "Cavar" +msgstr "cavar" #: lang/json/activity_type_from_json.py msgid "filling" -msgstr "" +msgstr "rellenar" #: lang/json/activity_type_from_json.py msgid "shaving" -msgstr "" +msgstr "afeitar" #: lang/json/activity_type_from_json.py msgid "cutting your hair" -msgstr "" +msgstr "cortar pelo" #: lang/json/activity_type_from_json.py msgid "playing with your pet" -msgstr "" +msgstr "jugar con mascota" #: lang/json/activity_type_from_json.py msgid "trying to fall asleep" -msgstr "" +msgstr "intentar dormirse" #: lang/json/activity_type_from_json.py msgid "being operated on" -msgstr "" +msgstr "ser operado" #: lang/json/activity_type_from_json.py msgid "unloading" -msgstr "" +msgstr "descargar" #: lang/json/activity_type_from_json.py msgid "programming override" -msgstr "" +msgstr "reprogramar" #: lang/json/activity_type_from_json.py msgid "putting on items" -msgstr "" +msgstr "poner objetos" #: lang/json/activity_type_from_json.py msgid "communing with the trees" -msgstr "" +msgstr "conversar con los árboles" #: lang/json/activity_type_from_json.py msgid "eating" -msgstr "" +msgstr "comer" #: lang/json/activity_type_from_json.py msgid "consuming" -msgstr "" +msgstr "consumir" #: lang/json/activity_type_from_json.py msgid "casting" -msgstr "" +msgstr "conjurar" #: lang/json/activity_type_from_json.py msgid "studying" -msgstr "" +msgstr "estudiar" #: lang/json/activity_type_from_json.py msgid "drinking" -msgstr "" +msgstr "beber" #: lang/json/activity_type_from_json.py msgid "using drugs" -msgstr "" +msgstr "usar drogas" #: lang/json/activity_type_from_json.py msgid "using the mind splicer" -msgstr "" +msgstr "usar el empalmador de mentes" #: lang/json/activity_type_from_json.py msgid "hacking" -msgstr "" +msgstr "hackear" #: lang/json/activity_type_from_json.py msgid "canceling activity serialized with legacy code" -msgstr "" +msgstr "cancelar actividad serializada con código legado" #: lang/json/ammunition_type_from_json.py msgid "fusion cell" @@ -105773,10 +104904,6 @@ msgstr "baterías" msgid "cents" msgstr "centavos" -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "plutonio" - #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" msgstr "postas 12mm" @@ -105901,14 +105028,6 @@ msgstr "" msgid "pulse ammo" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "6.54x42mm" -msgstr "6.54x42mm" - -#: lang/json/ammunition_type_from_json.py -msgid ".20 DREAD Pellets" -msgstr "balines .20 DREAD" - #: lang/json/ammunition_type_from_json.py msgid "black powder ammo" msgstr "" @@ -105954,41 +105073,9 @@ msgid "mana energy" msgstr "" #: lang/json/ammunition_type_from_json.py -msgid "javelin" -msgstr "jabalina" - -#: lang/json/ammunition_type_from_json.py -msgid "120mm shell" -msgstr "cartucho 120mm" - -#: lang/json/ammunition_type_from_json.py -msgid "155mm shell" -msgstr "cartucho 155mm" - -#: lang/json/ammunition_type_from_json.py -msgid "30x113mm" -msgstr "30x113mm" - -#: lang/json/ammunition_type_from_json.py -msgid "heavy projectiles" -msgstr "proyectiles pesados" - -#: lang/json/ammunition_type_from_json.py -msgid "ballista bolt" -msgstr "perno de ballista" - -#: lang/json/ammunition_type_from_json.py -msgid "bladed disk" -msgstr "disco con cuchillas" - -#: lang/json/ammunition_type_from_json.py -msgid "crystalline shards" +msgid "heady vapours" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "vortex energy" -msgstr "energía de vórtice" - #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" msgstr "Bomba de Adrenalina" @@ -106071,10 +105158,10 @@ msgstr "" "tu boca. Cuando llorás, tenés que escupir o tragarte tus lágrimas." #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" -msgstr "Placas de Aleación - Cabeza" +msgid "Alloy Plating - head" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -106094,10 +105181,10 @@ msgid "" msgstr "" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" -msgstr "Placas de Aleación - Torso" +msgid "Alloy Plating - torso" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -107377,6 +106464,10 @@ msgid "" "to why you don't opt for the Autodoc's 'Cyborg Identity Package'. A " "remodulator unit jammed down your throat has given you a creepy robot voice." msgstr "" +"Vas a pasarte el resto de tu vida como testimonio ambulante de por qué no " +"elegiste el 'Paquete de Identidad Ciborg' del Autodoc. Una unidad " +"remoduladora trabada en tu garganta te ha dejado una espeluznante voz de " +"robot." #: lang/json/bionic_from_json.py msgid "Internal Chronometer" @@ -107654,6 +106745,15 @@ msgid "" "inducing a state of euphoria that notably elevates mood." msgstr "" +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top" +" of your spine. They are all dead now but there is unfortunately a dead man" +" switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" @@ -107985,6 +107085,22 @@ msgstr "Forrarlo con lana" msgid "Destroy wool lining" msgstr "Destruir forro de lana" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "Pacifista" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -108801,6 +107917,10 @@ msgstr "Construir Fuerte de Almohadas" msgid "Build Cardboard Fort" msgstr "" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "Construir Anillo de Fuego" @@ -108985,27 +108105,10 @@ msgstr "Cortar Árbol en Troncos" msgid "Makeshift Wall" msgstr "" -#: lang/json/construction_from_json.py -msgid "Build Hydroponics" -msgstr "" - -#: lang/json/construction_from_json.py -msgid "Build Hydroponics Heater" -msgstr "" - #: lang/json/construction_from_json.py msgid "Build Translocator Gate" msgstr "" -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" -msgstr "" -"Recuperar Alimento de Blobo del Pozo de Cadáveres: Destrozar para Recuperar" - -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "Recuperar Alimento de Blobo de Slime: Destrozar para Recuperar" - #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." msgstr "Tenés un extraño sueño con lagartos." @@ -109973,6 +109076,71 @@ msgstr "" msgid "You have transitioned from a dying race to a glorious future." msgstr "" +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded" +" by snow and bitter pelting winds, you feel confident and toasty-warm " +"beneath your shaggy coat." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is" +" restored." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill" +" for anyone or anything to bother trying to attack. And if they do… it'll " +"be the last mistake of their life. Waking up gives you a brief jolt of " +"fear and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one" +" through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "" + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "" @@ -110856,8 +110024,6 @@ msgid "Stuck in beartrap" msgstr "Atrapado en una trampa para oso" #. ~ Description of effect 'Stuck in beartrap'. -#. ~ Description of effect 'Stuck in a light snare'. -#. ~ Description of effect 'Stuck in a heavy snare'. #: lang/json/effects_from_json.py msgid "You can't move until you get free!" msgstr "¡No te podés mover hasta que te liberes!" @@ -111222,6 +110388,52 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "Curada de la infección fúngica." +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "" + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, +#. Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly +#. tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "Alucinando" @@ -111369,7 +110581,7 @@ msgstr "Caliente" #: lang/json/effects_from_json.py #, python-format msgid "Your %s is sweating from the heat." -msgstr "Te traspira el/a %s por el calor." +msgstr "Te transpira el/a %s por el calor." #: lang/json/effects_from_json.py msgid "Scorching" @@ -111392,7 +110604,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Hampered" -msgstr "" +msgstr "Obstaculizado" #. ~ Description of effect 'Hampered'. #: lang/json/effects_from_json.py @@ -111652,13 +110864,13 @@ msgstr "Empujón de Estimulante RX11" #. ~ Description of effect 'RX11 Stimulant Rush'. #: lang/json/effects_from_json.py msgid "An intense surge of stimulants pulses through your body." -msgstr "Un intenso antojo de estimulantes te late por el cuerpo." +msgstr "Un intenso aluvión de estimulantes te late por el cuerpo." #. ~ Apply message for effect(s) 'RX11 Stimulant Comedown, RX11 Stimulant #. Rush'. #: lang/json/effects_from_json.py msgid "You feel an intense surge of stimulants pulse through your body!" -msgstr "¡Sentís un intenso antojo de estimulantes latiendo en tu cuerpo!" +msgstr "¡Sentís un intenso aluvión de estimulantes latiendo en tu cuerpo!" #. ~ Decay message for effect(s) 'RX11 Stimulant Comedown, RX11 Stimulant #. Rush'. @@ -112625,6 +111837,26 @@ msgstr "" msgid "You're disgusted by the goop." msgstr "" +#: lang/json/effects_from_json.py src/character.cpp +msgid "Full" +msgstr "Lleno" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "" + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "Panza llena" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "" + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" msgstr "Suplementos de Magnesio" @@ -112651,10 +111883,6 @@ msgstr "" "Es una etiqueta utilizada cuando ofendés a un PNJ sobre una opción " "específica de la conversación. Si te aparece, es un bug." -#: lang/json/effects_from_json.py src/character.cpp src/character.cpp -msgid "Full" -msgstr "Lleno" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -113027,20 +112255,6 @@ msgstr "" msgid "You feel sluggish and weak, from magically-induced poisoning." msgstr "" -#: lang/json/effects_from_json.py -msgid "Stuck in a light snare" -msgstr "Atrapado en una trampa de lazo" - -#. ~ Apply message for effect(s) 'Stuck in a light snare'. -#. ~ Apply message for effect(s) 'Stuck in a heavy snare'. -#: lang/json/effects_from_json.py -msgid "You are snared!" -msgstr "¡Caíste en una trampa de lazo!" - -#: lang/json/effects_from_json.py -msgid "Stuck in a heavy snare" -msgstr "Atrapado en una trampa pesada de lazo" - #: lang/json/effects_from_json.py msgid "Gummed" msgstr "" @@ -113067,6 +112281,66 @@ msgstr "" msgid "The gum webs constrict your movement." msgstr "" +#: lang/json/effects_from_json.py +msgid "Debugged" +msgstr "" + +#. ~ Description of effect 'Debugged'. +#: lang/json/effects_from_json.py +msgid "" +"You have been debugged!\n" +"Everything is working perfectly now." +msgstr "" + +#. ~ Apply message for effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Diving into your source, you find a rubber duck, and talk it to death." +msgstr "" + +#. ~ Speed name of effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Optimized" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Min-Maxed" +msgstr "" + +#. ~ Description of effect 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "" +"All the benefits of being the worst with none of the drawbacks of being the " +"best!" +msgstr "" + +#. ~ Apply message for effect(s) 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "You feel your internal metrics stretch like a fun-house mirror." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Whoa" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wut?" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wow!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "" +"Everything is just way too intense, man!\n" +"You feel confused and disoriented." +msgstr "" + +#. ~ Apply message for effect(s) 'Whoa, Wut?, Wow!'. +#: lang/json/effects_from_json.py +msgid "!!Intensity intensifies!!" +msgstr "" + #: lang/json/faction_from_json.py msgid "Your Followers" msgstr "Tus Seguidores" @@ -114208,7 +113482,9 @@ msgstr "" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -114226,15 +113502,17 @@ msgstr "" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." msgstr "" #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them" -" clean and to save people an unpleasant chore. Now, with the power gone and" -" it sitting for a while, it's starting to smell a bit off." +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." msgstr "" #: lang/json/furniture_from_json.py @@ -114243,7 +113521,9 @@ msgstr "secarropas" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -114253,9 +113533,8 @@ msgstr "heladera" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." msgstr "" #: lang/json/furniture_from_json.py @@ -114265,7 +113544,10 @@ msgstr "heladera con puerta de vidrio" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without" +" letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." msgstr "" #: lang/json/furniture_from_json.py @@ -114276,13 +113558,15 @@ msgstr "horno industrial" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." +"the air through a building's ventilation system to keep it warm." msgstr "" #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." -msgstr "Podrías lavar tu ropa sucia si hubiera electricidad." +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." +msgstr "" #: lang/json/furniture_from_json.py msgid "oven" @@ -114291,9 +113575,8 @@ msgstr "horno" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." msgstr "" #: lang/json/furniture_from_json.py @@ -114303,8 +113586,9 @@ msgstr "" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -114314,8 +113598,9 @@ msgstr "" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." +"An anvil with a large metal hammer suspended above it in a metal framework." +" If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -114325,8 +113610,10 @@ msgstr "" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -114335,7 +113622,10 @@ msgstr "" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." msgstr "" #: lang/json/furniture_from_json.py @@ -114345,8 +113635,10 @@ msgstr "" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes" +" have all been lost." msgstr "" #: lang/json/furniture_from_json.py @@ -114355,7 +113647,10 @@ msgstr "" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -114369,8 +113664,11 @@ msgstr "barricada de camino" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." -msgstr "Es una barricada de caminos. Se usa para cortar calles." +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp @@ -114388,7 +113686,9 @@ msgstr "" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -114401,7 +113701,7 @@ msgstr "" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." +msgid "A wall of stacked earthbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -114410,8 +113710,8 @@ msgstr "guardarraíl" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." -msgstr "Antes se utilizaba para organizar el tráfico." +msgid "A simple wooden post to mark the separation between street lanes." +msgstr "" #: lang/json/furniture_from_json.py msgid "sandbag barricade" @@ -114419,7 +113719,9 @@ msgstr "barricada de bolsas de arena" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -114428,7 +113730,7 @@ msgstr "pared de bolsas de arena" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." +msgid "A wall of stacked sandbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -114437,7 +113739,9 @@ msgstr "espejo de pie" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all" +" of the dirt and blood on your clothes, and the weariness in your eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -114451,11 +113755,10 @@ msgstr "espejo de pie roto" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." msgstr "" -"Te podrías mirar a vos mismo/a si el espejo no estuviera cubierto de " -"rajaduras y rayas." #: lang/json/furniture_from_json.py msgid "bitts" @@ -114464,8 +113767,8 @@ msgstr "" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." msgstr "" #: lang/json/furniture_from_json.py @@ -114474,9 +113777,7 @@ msgstr "esposas" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -114490,11 +113791,12 @@ msgstr "estatua" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." msgstr "tomp." @@ -114505,8 +113807,9 @@ msgstr "maniquí" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." msgstr "" #: lang/json/furniture_from_json.py @@ -114515,7 +113818,9 @@ msgstr "" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." msgstr "" #: lang/json/furniture_from_json.py @@ -114524,7 +113829,9 @@ msgstr "" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to" +" hang up clothes to dry in the sunlight." msgstr "" #: lang/json/furniture_from_json.py @@ -114533,7 +113840,9 @@ msgstr "" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." msgstr "" #: lang/json/furniture_from_json.py @@ -114549,13 +113858,29 @@ msgstr "" msgid "A decorative wreath for the winter holidays." msgstr "" +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "" + +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +msgid "crunch." +msgstr "crunch." + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." +msgid "" +"A decorative pine tree littered with ornaments for the winter holidays." msgstr "" #: lang/json/furniture_from_json.py @@ -114564,8 +113889,10 @@ msgstr "planta de interior" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." -msgstr "Es una planta, usada como decoración." +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried" +" up and died a while ago." +msgstr "" #: lang/json/furniture_from_json.py msgid "yellow indoor plant" @@ -114573,8 +113900,10 @@ msgstr "planta amarilla de interior" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." -msgstr "Es una variedad de plantas para decorar. Amarillas." +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." +msgstr "" #: lang/json/furniture_from_json.py msgid "harvestable plant" @@ -114583,15 +113912,10 @@ msgstr "planta cosechable" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to" -" harvest the plant appropriately." +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py -msgid "crunch." -msgstr "crunch." - #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py msgid "whish." @@ -114603,7 +113927,7 @@ msgstr "planta madura" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." +msgid "This plant has matured, and will be ready to harvest before long." msgstr "" #: lang/json/furniture_from_json.py @@ -114613,8 +113937,8 @@ msgstr "semilla" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into " -"destiny." +"A freshly planted seed. If properly tended to, it could grow into a healthy" +" plant." msgstr "" #: lang/json/furniture_from_json.py @@ -114623,7 +113947,7 @@ msgstr "brote" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." +msgid "A seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -114642,22 +113966,34 @@ msgid "planter with harvestable plant" msgstr "" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." msgstr "" #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "" @@ -114665,8 +114001,8 @@ msgstr "" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -114676,8 +114012,8 @@ msgstr "capullo de huevo de araña" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." msgstr "" #: lang/json/furniture_from_json.py @@ -114687,15 +114023,16 @@ msgstr "¡splat!" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're" -" seeing this, you're already too close to it." +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." msgstr "" #: lang/json/furniture_from_json.py @@ -114704,7 +114041,9 @@ msgstr "capullo roto de huevo" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." msgstr "" #. ~ Description for swamp gas @@ -114755,9 +114094,8 @@ msgstr "chimenea" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -114778,7 +114116,8 @@ msgstr "cocina de madera" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." msgstr "" #. ~ Description for brazier @@ -114786,6 +114125,20 @@ msgstr "" msgid "A raised metal dish in which to safely burn things." msgstr "" +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "anillo de fuego" @@ -114934,8 +114287,8 @@ msgstr "flor de marloss" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." msgstr "" #: lang/json/furniture_from_json.py @@ -114946,8 +114299,8 @@ msgstr "puf." #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." +"color has been leached from its petals and stem. It gently sways of its own" +" volition, maintaining an unsettling rhythm." msgstr "" #: lang/json/furniture_from_json.py @@ -114958,7 +114311,7 @@ msgstr "masa fúngica" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." +"soft to the touch, but not firm enough to hold any weight." msgstr "" #: lang/json/furniture_from_json.py @@ -114968,7 +114321,8 @@ msgstr "mata fúngica" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." msgstr "" #: lang/json/furniture_from_json.py @@ -114992,7 +114346,7 @@ msgstr "escalón de piedra" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." +msgid "A slab of heavy stone, with a reasonably flat surface." msgstr "" #: lang/json/furniture_from_json.py @@ -115001,8 +114355,11 @@ msgstr "lápida" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." -msgstr "Ahí abajo están los cadáveres." +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -115016,8 +114373,11 @@ msgstr "tumba" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." -msgstr "Ahí abajo están los cadáveres. Es elegante." +msgid "" +"An upright slab of stone with information engraved on the face about whoever" +" lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -115025,8 +114385,11 @@ msgstr "tumba desgastada" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." -msgstr "Es una lápida gastada." +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." +msgstr "" #: lang/json/furniture_from_json.py msgid "obelisk" @@ -115034,7 +114397,10 @@ msgstr "obelisco" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." msgstr "" #: lang/json/furniture_from_json.py @@ -115049,7 +114415,8 @@ msgstr "ensamblador robótico" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -115059,8 +114426,8 @@ msgstr "mezclador químico" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." +"A large vat with a motorized mixing device for combining large quantities of" +" chemicals." msgstr "" #: lang/json/furniture_from_json.py @@ -115070,9 +114437,9 @@ msgstr "brazo robótico" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -115087,8 +114454,10 @@ msgstr "Autodoc Mk. XI" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." +"A surgical apparatus used for installation and removal of bionics. The term" +" name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." msgstr "" #: lang/json/furniture_from_json.py @@ -115109,9 +114478,8 @@ msgstr "" #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost " -"anything." +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." msgstr "" #: lang/json/furniture_from_json.py @@ -115125,9 +114493,8 @@ msgstr "" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the " -"inside." +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." msgstr "" #: lang/json/furniture_from_json.py @@ -115161,9 +114528,9 @@ msgstr "" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow" -" bacteria. This is great for microbiology, but terrible for preserving " -"food." +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." msgstr "" #: lang/json/furniture_from_json.py @@ -115173,9 +114540,10 @@ msgstr "" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running" -" water, you could use those attachments to wash harmful chemicals out of " -"your eyes, or to take a pleasant cold shower in a public place." +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." msgstr "" #: lang/json/furniture_from_json.py @@ -115184,7 +114552,9 @@ msgstr "" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." msgstr "" #: lang/json/furniture_from_json.py @@ -115195,9 +114565,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on" +" their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" #: lang/json/furniture_from_json.py @@ -115208,9 +114578,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." msgstr "" #: lang/json/furniture_from_json.py @@ -115220,10 +114590,11 @@ msgstr "" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other" +" advanced sciences, it's not as useful anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -115233,10 +114604,9 @@ msgstr "" #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." msgstr "" #: lang/json/furniture_from_json.py @@ -115246,8 +114616,8 @@ msgstr "" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." msgstr "" #: lang/json/furniture_from_json.py @@ -115257,9 +114627,8 @@ msgstr "" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of" -" radio-opacity." +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." msgstr "" #: lang/json/furniture_from_json.py @@ -115269,9 +114638,8 @@ msgstr "" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't" -" excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." +"A massive tool used to take NMR images of a patient placed inside, providing" +" invaluable medical insight." msgstr "" #: lang/json/furniture_from_json.py @@ -115281,8 +114649,8 @@ msgstr "" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." msgstr "" #: lang/json/furniture_from_json.py @@ -115292,9 +114660,9 @@ msgstr "" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." msgstr "" #: lang/json/furniture_from_json.py @@ -115304,9 +114672,9 @@ msgstr "" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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." +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." msgstr "" #: lang/json/furniture_from_json.py @@ -115316,9 +114684,9 @@ msgstr "" #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." msgstr "" #: lang/json/furniture_from_json.py @@ -115355,7 +114723,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." +"faint light spills from it." msgstr "" #: lang/json/furniture_from_json.py @@ -115371,7 +114739,7 @@ msgstr "" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." +"even waving gently as though underwater." msgstr "" #: lang/json/furniture_from_json.py @@ -115383,7 +114751,7 @@ msgstr "" msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." msgstr "" @@ -115394,9 +114762,9 @@ msgstr "" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." +"A spine resembling moth antennae juts from the ground, swaying gently in the" +" air. Every so often, a cascade of energy arcs along it and discharges into" +" the ceiling." msgstr "" #: lang/json/furniture_from_json.py @@ -115406,8 +114774,8 @@ msgstr "" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases" -" out of injured vessels." +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." msgstr "" #: lang/json/furniture_from_json.py @@ -115466,8 +114834,9 @@ msgstr "bañera" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The" -" plug is intact, so you could use it to store liquids." +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." msgstr "" #: lang/json/furniture_from_json.py @@ -115484,8 +114853,11 @@ msgstr "ducha" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." -msgstr "Te podrías pegar una ducha si hubiera agua." +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to" +" imagine wasting that much water." +msgstr "" #: lang/json/furniture_from_json.py msgid "sink" @@ -115494,7 +114866,8 @@ msgstr "lavabo" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." msgstr "" #: lang/json/furniture_from_json.py @@ -115504,8 +114877,10 @@ msgstr "inodoro" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the " +"cleanest." msgstr "" #: lang/json/furniture_from_json.py @@ -115515,15 +114890,16 @@ msgstr "termotanque" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." msgstr "" #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." +"This devices effectively sterilizes water, though without a lot of power and" +" proper plumbing, it's only good for parts now." msgstr "" #: lang/json/furniture_from_json.py @@ -115533,8 +114909,10 @@ msgstr "máquina de ejercicio" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." +"A heavy set of weightlifting equipment for strength training, with a pair of" +" heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." msgstr "" #: lang/json/furniture_from_json.py @@ -115544,9 +114922,9 @@ msgstr "máquina lanzapelotas" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various" -" balls for different types of sports. It's only good for parts now if " -"disassembled." +"A simple machine for launching sports balls of various types, with a pair of" +" motorized wheels that, if spun up, would fling the ball at moderate speeds." +" Probably not the most effective ranged weapon against the undead." msgstr "" #: lang/json/furniture_from_json.py @@ -115555,9 +114933,12 @@ msgstr "mesa de pool" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." msgstr "" -"Es una mesa de pool bastante buena. Te hubiera gustado aprender a jugar." #: lang/json/furniture_from_json.py msgid "diving block" @@ -115565,8 +114946,10 @@ msgstr "podio de salida de natación" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" -msgstr "¡Saltá! ¡Saltá! ¡Tirate!" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." +msgstr "" #: lang/json/furniture_from_json.py msgid "target" @@ -115574,10 +114957,13 @@ msgstr "objetivo" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped" +" off." msgstr "" -"Es un objetivo metálico de práctica de disparo con forma más o menos de " -"humano." #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -115586,9 +114972,8 @@ msgstr "máquina de juego" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." msgstr "" #: lang/json/furniture_from_json.py @@ -115598,9 +114983,10 @@ msgstr "flipper" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't" -" go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While" +" inoperable without power, it's still impressive to look at, though probably" +" more useful if disassembled." msgstr "" #: lang/json/furniture_from_json.py @@ -115610,8 +114996,9 @@ msgstr "ergómetro" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." +"An exercise machine with a set of handles and plates meant to emulate rowing" +" a boat. Without power it can't be operated, but it might have useful parts" +" to be scavanged." msgstr "" #: lang/json/furniture_from_json.py @@ -115621,8 +115008,9 @@ msgstr "cinta para correr" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be" -" taken apart for its… parts." +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." msgstr "" #: lang/json/furniture_from_json.py @@ -115632,8 +115020,9 @@ msgstr "bolsa de boxeo grande" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." msgstr "" #: lang/json/furniture_from_json.py @@ -115647,8 +115036,9 @@ msgstr "piano" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." msgstr "" #: lang/json/furniture_from_json.py @@ -115666,9 +115056,9 @@ msgstr "" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things" -" loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." +"An upright wood-panel case of large speakers, built to produce a potentially" +" deafening volume level. While this is a terrible idea to use now, it could" +" hold useful parts." msgstr "" #: lang/json/furniture_from_json.py @@ -115677,7 +115067,10 @@ msgstr "" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." msgstr "" #: lang/json/furniture_from_json.py @@ -115686,13 +115079,22 @@ msgstr "" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "this should never actually show up, it's a pseudo furniture" msgstr "" #. ~ Description for this should never actually show up, it's a pseudo #. furniture #: lang/json/furniture_from_json.py -msgid "this should never actually show up, it's a pseudo furniture" +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." msgstr "" #: lang/json/furniture_from_json.py @@ -115701,7 +115103,10 @@ msgstr "" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -115714,7 +115119,10 @@ msgstr "" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." msgstr "" #: lang/json/furniture_from_json.py @@ -115723,7 +115131,9 @@ msgstr "" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." msgstr "" #: lang/json/furniture_from_json.py @@ -115732,7 +115142,10 @@ msgstr "" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." msgstr "" #: lang/json/furniture_from_json.py @@ -115741,7 +115154,9 @@ msgstr "" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." msgstr "" #: lang/json/furniture_from_json.py @@ -115751,7 +115166,9 @@ msgstr "" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py msgid "" -"The turbine uses wind power to suck hot and humid air out of the attic." +"A rotary wind turbine that will catch the wind and pull out air from inside." +" It is most commonly used for improving air cicrulation, particularly in " +"poorly-ventilated areas like attics." msgstr "" #: lang/json/furniture_from_json.py @@ -115760,8 +115177,11 @@ msgstr "" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." -msgstr "Es un fardo de paja. Podés dormir ahí encima, si estás desesperado/a." +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable" +" bed." +msgstr "" #: lang/json/furniture_from_json.py msgid "whish!" @@ -115773,9 +115193,11 @@ msgstr "pila de astillas de madera" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the" +" way." msgstr "" -"Es una pila de pedazos pequeños de madera. La podés mover con una pala." #: lang/json/furniture_from_json.py msgid "bench" @@ -115783,7 +115205,9 @@ msgstr "banco" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." msgstr "" #: lang/json/furniture_from_json.py @@ -115792,8 +115216,10 @@ msgstr "sillón" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." -msgstr "Es un mueble para sentarse más cómodo." +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." +msgstr "" #: lang/json/furniture_from_json.py msgid "airplane seat" @@ -115801,7 +115227,9 @@ msgstr "" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." msgstr "" #: lang/json/furniture_from_json.py @@ -115809,10 +115237,12 @@ msgid "chair" msgstr "silla" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." -msgstr "Sentate, tomate algo." +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat" +" a meal properly and almost pretend that things were normal again." +msgstr "" #: lang/json/furniture_from_json.py msgid "sofa" @@ -115820,16 +115250,29 @@ msgstr "sofá" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." msgstr "" #: lang/json/furniture_from_json.py msgid "stool" msgstr "banquito" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "" + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." msgstr "" #: lang/json/furniture_from_json.py @@ -115839,8 +115282,8 @@ msgstr "" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." msgstr "" #: lang/json/furniture_from_json.py @@ -115850,7 +115293,9 @@ msgstr "" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground," +" it's not particularly comfortable." msgstr "" #: lang/json/furniture_from_json.py @@ -115860,8 +115305,8 @@ msgstr "tablón de anuncios" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." msgstr "" #: lang/json/furniture_from_json.py @@ -115870,8 +115315,10 @@ msgstr "cartel" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." -msgstr "Leelo. Se viene alguna advertencia." +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." +msgstr "" #: lang/json/furniture_from_json.py msgid "warning sign" @@ -115880,8 +115327,8 @@ msgstr "" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -115891,7 +115338,9 @@ msgstr "cama" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -115900,7 +115349,11 @@ msgstr "" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than" +" you'd like to somebody you wouldn't normally want to share a mattress with," +" a bed's a bed." msgstr "" #: lang/json/furniture_from_json.py @@ -115910,8 +115363,8 @@ msgstr "" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place" -" to sleep. Sleeping on it right now wouldn't be great." +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." msgstr "" #: lang/json/furniture_from_json.py @@ -115921,8 +115374,9 @@ msgstr "" #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's" -" not quite as comfy as a real bed, but it's pretty close." +"An ordinary mattress left on the floor. While it's not as comfortable as an" +" entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -115933,9 +115387,10 @@ msgstr "¡rrrrip!" #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty " -"close." +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." msgstr "" #: lang/json/furniture_from_json.py @@ -115944,8 +115399,11 @@ msgstr "cama improvisada" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "No es tan cómoda como una cama verdadera, pero es suficiente." +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal" +" bed, albeit with a slightly lumpy mattress. Considering the circumstances," +" it's not too bad at all." +msgstr "" #: lang/json/furniture_from_json.py msgid "straw bed" @@ -115953,8 +115411,10 @@ msgstr "cama de paja" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." -msgstr "Te pica un poco cuando te acostás ahí." +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." +msgstr "" #: lang/json/furniture_from_json.py msgid "bookcase" @@ -115962,7 +115422,9 @@ msgstr "" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -115971,7 +115433,10 @@ msgstr "" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden" +" cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -115980,7 +115445,11 @@ msgstr "ataúd" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will" +" likely never receive." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -115994,8 +115463,10 @@ msgstr "ataúd abierto" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." msgstr "" #: lang/json/furniture_from_json.py @@ -116005,8 +115476,9 @@ msgstr "caja" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." msgstr "" #: lang/json/furniture_from_json.py @@ -116015,14 +115487,19 @@ msgstr "caja abierta" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" -msgstr "¿Qué habrá adentro? ¡Vamos a ver!" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of" +" nails, could be sealed back shut." +msgstr "" #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." +"A large box made of a brown paper-based material. Could contain a number of" +" things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect" +" you if you're found." msgstr "" #: lang/json/furniture_from_json.py @@ -116039,7 +115516,9 @@ msgstr "cómoda" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." msgstr "" #: lang/json/furniture_from_json.py @@ -116048,7 +115527,10 @@ msgstr "" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -116063,8 +115545,12 @@ msgstr "caja fuerte de armas" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." -msgstr "Oooooohhhh. Brillante." +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "screeching metal!" @@ -116076,8 +115562,11 @@ msgstr "caja fuerte trabada de armas" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." -msgstr "¿Tendrá armas adentro? No vas a poder saber. Está trabado." +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." +msgstr "" #: lang/json/furniture_from_json.py msgid "electronic gun safe" @@ -116085,8 +115574,12 @@ msgstr "caja fuerte electrónica de armas" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" -msgstr "¿Podrás abrirlo para agarrar las armas?" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking" +" system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." +msgstr "" #: lang/json/furniture_from_json.py msgid "locker" @@ -116094,8 +115587,10 @@ msgstr "casillero" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." -msgstr "Comúnmente se utiliza para guardar equipamiento u objetos." +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "mailbox" @@ -116104,8 +115599,9 @@ msgstr "buzón" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come" -" for awhile. Doesn't look like it's coming again anytime soon." +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." msgstr "" #: lang/json/furniture_from_json.py @@ -116114,7 +115610,10 @@ msgstr "" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes." +" Usually used in theater or retail environments, it's easy to use and quick" +" to access." msgstr "" #: lang/json/furniture_from_json.py @@ -116123,8 +115622,10 @@ msgstr "góndola" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." -msgstr "Para mostrar tus objetos." +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." +msgstr "" #: lang/json/furniture_from_json.py msgid "wooden rack" @@ -116132,7 +115633,9 @@ msgstr "" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." msgstr "" #: lang/json/furniture_from_json.py @@ -116141,8 +115644,10 @@ msgstr "perchero" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." -msgstr "Es un estante con ganchos para colgar camperas y sombreros." +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." +msgstr "" #: lang/json/furniture_from_json.py msgid "recycle bin" @@ -116150,8 +115655,12 @@ msgstr "papelera de reciclaje" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." -msgstr "Guarda objetos para su reciclado." +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it." +" While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." +msgstr "" #: lang/json/furniture_from_json.py msgid "safe" @@ -116159,13 +115668,18 @@ msgstr "caja fuerte" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." -msgstr "Para guardar objetos. De manera segura." +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." +msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" -msgstr "¿Qué necesita este tipo de protección?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "open safe" @@ -116173,8 +115687,10 @@ msgstr "caja fuerte abierta" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" -msgstr "¡Agarrá las armas!" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." +msgstr "" #: lang/json/furniture_from_json.py msgid "trash can" @@ -116182,7 +115698,10 @@ msgstr "tacho de basura" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." msgstr "" #: lang/json/furniture_from_json.py @@ -116191,7 +115710,10 @@ msgstr "ropero" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." msgstr "" #: lang/json/furniture_from_json.py @@ -116201,9 +115723,8 @@ msgstr "fichero" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." msgstr "" #: lang/json/furniture_from_json.py @@ -116212,7 +115733,9 @@ msgstr "" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools" +" and materials for easy access to workers." msgstr "" #: lang/json/furniture_from_json.py @@ -116222,8 +115745,7 @@ msgstr "" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." +"A huge, sturdy steel shelf for storing pallets of crates in warehouses." msgstr "" #: lang/json/furniture_from_json.py @@ -116232,7 +115754,9 @@ msgstr "barril de madera" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." msgstr "" #: lang/json/furniture_from_json.py @@ -116241,7 +115765,10 @@ msgstr "vitrina" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." msgstr "" #: lang/json/furniture_from_json.py @@ -116250,8 +115777,12 @@ msgstr "vitrina rota" #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." -msgstr "Para mostrar tus cosas. Aunque te las van a robar." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Would be useful for storing valuable things while still showing them off, " +"if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." +msgstr "" #: lang/json/furniture_from_json.py msgid "standing tank" @@ -116259,8 +115790,9 @@ msgstr "Tanque vertical" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." -msgstr "Es un metal grande de metal, útil para contener líquidos." +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." +msgstr "" #: lang/json/furniture_from_json.py msgid "dumpster" @@ -116268,7 +115800,10 @@ msgstr "contenedor" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." msgstr "" #: lang/json/furniture_from_json.py @@ -116277,7 +115812,9 @@ msgstr "" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." msgstr "" #: lang/json/furniture_from_json.py @@ -117121,68 +116658,6 @@ msgid "" "inducing aroma." msgstr "" -#: lang/json/furniture_from_json.py -msgid "hydroponics unit" -msgstr "" - -#. ~ Description for hydroponics unit -#: lang/json/furniture_from_json.py -msgid "This is a self-contained hydroponics unit used to grow crops indoors." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seed" -msgstr "" - -#. ~ Description for hydroponics unit with seed -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seed" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seedling" -msgstr "" - -#. ~ Description for hydroponics unit with seedling -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seedling" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with mature plant" -msgstr "" - -#. ~ Description for hydroponics unit with mature plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with harvestable plant" -msgstr "" - -#. ~ Description for hydroponics unit with harvestable plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant that is ready for harvest." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics heater" -msgstr "" - -#. ~ Description for hydroponics heater -#: lang/json/furniture_from_json.py -msgid "This is a self-contained heater, used to warm hydroponics units." -msgstr "" - #: lang/json/furniture_from_json.py msgid "Translocator Gate" msgstr "" @@ -117291,16 +116766,21 @@ msgid "" msgstr "" #: lang/json/furniture_from_json.py -msgid "krash!" -msgstr "crash!" +msgid "tank trap" +msgstr "tank trap" +#. ~ Description for fungal mass #: lang/json/furniture_from_json.py -msgid "krak." -msgstr "crak." +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." +msgstr "" +#. ~ Description for fungal clump #: lang/json/furniture_from_json.py -msgid "tank trap" -msgstr "tank trap" +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +msgstr "" #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py @@ -117497,13 +116977,13 @@ msgstr[1] "" msgid "Fake gun that fires acid globs." msgstr "Es una pistola falsa que dispara un globo ácido." -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item_factory.cpp msgid "auto" msgstr "auto" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "rifle" @@ -117514,6 +116994,73 @@ msgid_plural "acid dart guns" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "pistola de caño combinada" +msgstr[1] "pistolas de caño combinadas" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from" +" a double barrel shotgun." +msgstr "" +"Es un arma de triple cañón hecha en casa. Uno de los cañones tiene calibre " +".30-06 y los otros dos son para cartuchos de escopeta. Está hecho de caños y" +" partes extraídas de una escopeta de doble caño." + +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "escopeta" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] "rifle de caño: .30-06" +msgstr[1] "rifles de caño: .30-06" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" +" strike the single round it holds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "carabina casera" +msgstr[1] "carabinas caseras" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the" +" better homemade weapons." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] "rifle de caño: .223" +msgstr[1] "rifles de caño: .223" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -117539,7 +117086,7 @@ msgid "" "A cyborg's fusion blaster arm, cannibalized and converted into a rifle. " "This improvised weapon is powered by a standard UPS connection." msgstr "" -"Es el brazo de pistola de fusión de un androide, reutilizado como un rifle. " +"Es el brazo de pistola de fusión de un ciborg, reutilizado como un rifle. " "Esta arma improvisada se alimenta con una conexión normal de UPS." #: lang/json/gun_from_json.py @@ -117637,9 +117184,7 @@ msgstr "" "siglo XXI. Con poco de cinta adhesiva y partes electrónicas, funciona con un" " UPS normal." -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py -#: lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "pistola" @@ -117754,11 +117299,6 @@ msgstr "simple" msgid "double" msgstr "doble" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "escopeta" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -117847,6 +117387,42 @@ msgstr "" "un cañón corto, culata y guarda. Puede ser recargada utilizando un cargador " "extraíble y es un arma muy efectiva." +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "AN-94" +msgstr[1] "AN-94" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" +"Planeado para reemplazar a la AK-74, este rifle utiliza un sofisticado " +"mecanismo para demorar el retroceso, y con ráfaga muy rápida de dos balas. " +"Aunque su complejidad evita que sea adoptado por el ejército ruso, ha sido " +"usado entre sus fuerzas especiales." + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "2 bl." + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "cañón láser de mano" +msgstr[1] "cañones láser de mano" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "" +"Un cañón láser que pertenecía a una torreta láser TX-5LR Cerberus, y que ha " +"sido modificado para usar alimentación de UPS para disparar." + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -118209,6 +117785,21 @@ msgid "" "retains the integral bipod, though." msgstr "" +#: lang/json/gun_from_json.py +msgid "FS2000" +msgid_plural "FS2000s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A sleek bullpup carbine designed by FN Herstal, complete with an integrated " +"sight accessory rail. The forward ejecting action and ambidextrous controls" +" make firing comfortable for both left and right-handed shooting. The whole" +" rifle is well sealed from mud and dust for reliability, but this makes it " +"incompatible with many aftermarket magazines." +msgstr "" + #: lang/json/gun_from_json.py msgid "HK416 A5" msgid_plural "HK416 A5s" @@ -118222,7 +117813,7 @@ msgid "" msgstr "" "Diseñado para reemplazar el M4A1, el Heckler and Koch 416A5 mantiene la " "mayoría de las ventajas de su predecesor, y es considerablemente más " -"duradero." +"resistente." #: lang/json/gun_from_json.py msgid "H&K G36" @@ -118260,6 +117851,19 @@ msgstr "" msgid "burst" msgstr "" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -118322,18 +117926,6 @@ msgid "" "buttstock." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] "rifle de caño: .223" -msgstr[1] "rifles de caño: .223" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" -" strike the single round it holds." -msgstr "" - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -118396,19 +117988,6 @@ msgstr "" "Es usado por las fuerzas armadas y policiales de muchos países, y tiene poco" " retroceso y mucha precisión." -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "carabina casera" -msgstr[1] "carabinas caseras" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the" -" better homemade weapons." -msgstr "" - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -118556,15 +118135,9 @@ msgid "" " US Marine snipers. Highly damaging, but perhaps not as accurate as the " "competing Browning BLR." msgstr "" -"Un rifle de caza o francotirador muy popular y duradero. Popular entre los " -"francotiradores de SWAT y de la Marina de Estados Unidos. Causa mucho daño, " -"pero tal vez no sea tan preciso como su competidor, el Browning BLR." - -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] "rifle de caño: .30-06" -msgstr[1] "rifles de caño: .30-06" +"Es un rifle de caza o francotirador muy popular y duradero. Popular entre " +"los francotiradores de SWAT y de la Marina de Estados Unidos. Causa mucho " +"daño, pero tal vez no sea tan preciso como su competidor, el Browning BLR." #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" @@ -118716,17 +118289,15 @@ msgstr "" " el hombro, ya que casi nadie es un héroe de película de acción." #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." msgstr "" #: lang/json/gun_from_json.py @@ -119617,10 +119188,10 @@ msgstr "" " culatazo." #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" -msgstr[0] "subfusil Thompson" -msgstr[1] "subfusiles Thompson" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" +msgstr[0] "" +msgstr[1] "" #: lang/json/gun_from_json.py msgid "" @@ -119659,8 +119230,8 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" msgstr[0] "" msgstr[1] "" @@ -119959,28 +119530,6 @@ msgstr "" "El sucesor del famoso rifle AK-47. Combina la fiabilidad de la serie AK con " "la gran velocidad y poco peso del cartucho 5.45x39mm." -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "AN-94" -msgstr[1] "AN-94" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" -"Planeado para reemplazar a la AK-74, este rifle utiliza un sofisticado " -"mecanismo para demorar el retroceso, y con ráfaga muy rápida de dos balas. " -"Aunque su complejidad evita que sea adoptado por el ejército ruso, ha sido " -"usado entre sus fuerzas especiales." - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "2 bl." - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -120414,20 +119963,6 @@ msgstr "" " poco ideales, con un caño pesada para tener máxima controlabilidad. Acepta " "cargadores de caja y cargadores de tambor RMGD250." -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "revólver RM99" -msgstr[1] "revólveres RM99" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" -" addition to the arsenal of any gunslinger." -msgstr "" -"Aunque algunos lo consideran una exageración, el Rivtech M99 sigue siendo " -"una adición extremadamente poderosa al arsenal de cualquier pistolero." - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -120946,22 +120481,6 @@ msgstr "" "egocéntricos en África, ahora es usado por los descendientes egocéntricos en" " New England." -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "pistola de caño combinada" -msgstr[1] "pistolas de caño combinadas" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from" -" a double barrel shotgun." -msgstr "" -"Es un arma de triple cañón hecha en casa. Uno de los cañones tiene calibre " -".30-06 y los otros dos son para cartuchos de escopeta. Está hecho de caños y" -" partes extraídas de una escopeta de doble caño." - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -121142,6 +120661,19 @@ msgid "" "action means this is much less likely to jam." msgstr "" +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -121543,20 +121075,6 @@ msgid "" "quiet and accurate marksman laser rifle." msgstr "" -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "cañón láser de mano" -msgstr[1] "cañones láser de mano" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "" -"Un cañón láser que pertenecía a una torreta láser TX-5LR Cerberus, y que ha " -"sido modificado para usar alimentación de UPS para disparar." - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" @@ -121807,12 +121325,8 @@ msgstr[1] "ballestas para piedras" msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." +"hunting small game." msgstr "" -"Es una versión modificada de la ballesta clásica, que te permite utilizar " -"piedras como proyectiles en lugar de los tradicionales pernos. " -"Originalmente, fue pensada para cazar animales pequeños. Las personas con " -"más fuerza pueden recargarla mucho más rápido." #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -121838,13 +121352,9 @@ msgstr[1] "ballestas" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." msgstr "" -"Un arma de mano de recarga lenta que lanza pernos. Las personas con más " -"fuerza pueden recargarla mucho más rápido. Los pernos disparados con esta " -"arma tienen una gran probabilidad de no romperse." #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -122005,8 +121515,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "BB gun" msgid_plural "BB guns" -msgstr[0] "rifle de balines" -msgstr[1] "rifles de balines" +msgstr[0] "rifle de aire comprimido" +msgstr[1] "rifles de aire comprimido" #: lang/json/gun_from_json.py msgid "" @@ -122025,9 +121535,9 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." +"A leather sling, can launch rocks much further and faster than throwing them" +" by hand." msgstr "" -"Es una honda de cuero, fácil de usar y precisa. Usa piedritas como munición." #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -122042,11 +121552,9 @@ msgstr[1] "gomeras" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as " -"ammunition." +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." msgstr "" -"Es una gomera de madera, fácil de usar y precisa. Usa piedritas como " -"munición." #: lang/json/gun_from_json.py msgid "staff sling" @@ -122056,8 +121564,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." msgstr "" #: lang/json/gun_from_json.py @@ -122068,11 +121576,9 @@ msgstr[1] "gomeras con soporte" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." msgstr "" -"Es una gomera moderna con un soporte para la muñeca. Es fácil de usar, " -"precisa y bastante potente." #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -122359,8 +121865,7 @@ msgid "" " mid-range versatility of the 9mm with the power of the 12 gauge shotgun. " "To further compliment the CQB aspect, the stock is built to amplify the " "user's force and the rugged construction with tonfa-like grip can handle " -"bashing in enemy heads. An integrated magazine makes it a pain to reload, " -"but keeps your clip from ejecting accidently." +"bashing in enemy heads." msgstr "" #: lang/json/gun_from_json.py @@ -122415,7 +121920,7 @@ msgid "" "Experimental double purpose tool under development in C.R.I.T R&D. It takes" " a regular nail and then enlongates it within a fraction of a second before " "firing it out, upon reaching a target, the fragile stake explodes into " -"shards." +"shards inside the target." msgstr "" #: lang/json/gun_from_json.py @@ -122546,291 +122051,33 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "SVS-24" -msgid_plural "SVS-24" -msgstr[0] "SVS-24" -msgstr[1] "SVS-24" - -#: lang/json/gun_from_json.py -msgid "" -"The Sarafanov Assault Rifle replaced the famous AK family of guns as the " -"service rifle of the Russian Army. It uses the 6.54x42mm cartridge." -msgstr "" -"El rifle de asalto Sarafanov reemplazó la famosa familia de armas AK como el" -" rifle de servicio del Ejército de Rusia. Utiliza cartuchos 6.54x42mm." - -#: lang/json/gun_from_json.py -msgid "SVS-24C" -msgid_plural "SVS-24C" -msgstr[0] "SVS-24C" -msgstr[1] "SVS-24C" - -#: lang/json/gun_from_json.py -msgid "" -"The compact version of the standard SVS-24. It is commonly issued to tank " -"crews or special forces due to its smaller size. The shorter barrel reduces" -" accuracy." -msgstr "" -"Es la versión compacta del estándar SVS-24. Comúnmente se lo asigna a " -"tripulación de tanque o fuerzas especiales debido a su pequeño tamaño. El " -"cañón corto reduce la precisión." - -#: lang/json/gun_from_json.py -msgid "CW-24" -msgid_plural "CW-24" -msgstr[0] "CW-24" -msgstr[1] "CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It was made by Clearwater Arms, Georgia, " -"for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" -" cartridge." -msgstr "" -"Es una versión civil del SVS-24. Fue hecho por Clearwater Arms, Georgia para" -" el mercado estadounidense. Es semi-automática pura, y dispara el débil " -"cartucho 5.45x39mm." - -#: lang/json/gun_from_json.py -msgid "CW-24M" -msgid_plural "CW-24M" -msgstr[0] "CW-24M" -msgstr[1] "CW-24M" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" -" as the SVS-24." -msgstr "" -"Es una versión civil del SVS-24. Esta dispara el mismo cartucho 6.54x42mm " -"que el SVS-24." - -#: lang/json/gun_from_json.py -msgid "CW-24K" -msgid_plural "CW-24K" -msgstr[0] "CW-24K" -msgstr[1] "CW-24K" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the cheaper, but still " -"powerful, 7.62x39mm cartridge." -msgstr "" -"Es una versión civil del SVS-24. Esta dispara el cartucho 7.62x39mm, que es " -"más barato pero poderoso." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24" -msgid_plural "Modified CW-24" -msgstr[0] "CW-24 Modificada" -msgstr[1] "CW-24 Modificadas" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It has a modified receiver and a new " -"crudely crafted full-auto bolt carrier. Don't expect the original " -"reliability." -msgstr "" -"Es una versión civil del SVS-24. Tiene modificado el receptor y un " -"toscamente fabricado conjunto de cerrojo automático. No esperes la " -"fiabilidad del original." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24M" -msgid_plural "Modified CW-24M" -msgstr[0] "CW-24M Modificada" -msgstr[1] "CW-24M Modificadas" - -#: lang/json/gun_from_json.py -msgid "CWD-63" -msgid_plural "CWD-63" -msgstr[0] "CWD-63" -msgstr[1] "CWD-63" - -#: lang/json/gun_from_json.py -msgid "" -"The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " -"rechambered for the .308 round." -msgstr "" -"Es la versión de Clearwater Arms del famoso SVD-63 Dragunov. Esta está " -"modificada para usar las balas .308." - -#: lang/json/gun_from_json.py -msgid "Wrist DREAD" -msgid_plural "Wrist DREAD" -msgstr[0] "Wrist DREAD" -msgstr[1] "Wrist DREAD" - -#: lang/json/gun_from_json.py -msgid "" -"The miniaturized version of the DREAD MkIX attached to the wrist of the " -"operator. It fires .20 metal pellets at an incredible rate without any " -"flash or noise. It is mainly a defensive weapon." -msgstr "" -"Es la versión miniatura del DREAD MkIX que se pone en la muñeca del " -"operador. Dispara perdigones de metal de .20 a una velocidad increíble sin " -"siquiera hacer luz o ruido. Es más que nada un arma defensiva." - -#: lang/json/gun_from_json.py -msgid "JHEC M128" -msgid_plural "JHEC M128s" -msgstr[0] "JHEC M128" -msgstr[1] "JHEC M128" - -#: lang/json/gun_from_json.py -msgid "" -"The Johnson Heavy Equipment Co. M128 autorevolver; all others fail to " -"measure up. Johnson Heavy Equipment Co. is a subsidiary of D&B " -"Minneapolis." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "Boomlighter 454" -msgid_plural "Boomlighter 454s" -msgstr[0] "Boomlighter 454" -msgstr[1] "Boomlighter 454" - -#: lang/json/gun_from_json.py -msgid "" -"Handmade by master gunsmiths at D&B Minneapolis, this deadly accurate and " -"powerful pistol packs a punch with precision, power and flair. Comes with a" -" one of a kind integrated flamethrower." -msgstr "" -"Hecha a mano por maestros armeros en D&B Minneapolis, esta poderosa pistola " -"de precisión letal causa mucho daño gracias a su puntería, poder y estilo. " -"Viene con un lanzallamas integrado único en su clase." - -#: lang/json/gun_from_json.py -msgid "gunsword" -msgid_plural "gunswords" -msgstr[0] "espadarma" -msgstr[1] "espadarmas" - -#: lang/json/gun_from_json.py -msgid "" -"A long sharp blade, with two powerful .500 S&W Magnum chambers in the hilt." -" While chambering big rounds, the barrels are so short it slightly reduces " -"outgoing damage." -msgstr "" -"Una cuchilla larga y afilada, con dos poderosas recámaras de .500 S&W Magnum" -" en la empuñadura. Aunque las recámaras son para balas grandes, los cañones " -"son tan cortos que reduce levemente el daño causado." - -#: lang/json/gun_from_json.py -msgid "gunknife" -msgid_plural "gunknives" -msgstr[0] "cuhillarma" -msgstr[1] "cuhillarmas" - -#: lang/json/gun_from_json.py -msgid "" -"A short but sharp blade, with two powerful .500 S&W Magnum chambers in the " -"grip. While chambering big rounds, the barrels are so short it slightly " -"reduces outgoing damage." -msgstr "" -"Es una cuchilla corta pero afilada, con dos poderosas recámaras de .500 S&W " -"Magnum en la empuñadura. Aunque las recámaras son para balas grandes, los " -"cañones son tan cortos que reduce levemente el daño causado." - -#: lang/json/gun_from_json.py -msgid "FiveO handcannon" -msgid_plural "FiveO handcannons" -msgstr[0] "cañón de mano FiveO" -msgstr[1] "cañones de mano FiveO" - -#: lang/json/gun_from_json.py -msgid "" -"Someone crazy thought that the .50 BMG belonged in a pistol. This massive " -"piece of steel proves otherwise. The sheer bulk however does make it quite " -"adept at smashing face." -msgstr "" -"Algún loco pensó que el .50 BMG vendría bien en una pistola. Esta masiva " -"pieza de acero demuestra lo contrario. Sin embargo, el mamotreto es bastante" -" útil para aplastar caras." - -#: lang/json/gun_from_json.py -msgid "M919" -msgid_plural "M919s" -msgstr[0] "M919" -msgstr[1] "M919" - -#: lang/json/gun_from_json.py -msgid "" -"Manufactured by Sarah and Suhl machine company of Portland, Maine, the M919 " -"submachine gun is the most accurate 9x19mm submachine gun on the market. " -"Intended for police use, it is fitted with an integral grenade launcher." -msgstr "" -"Construido por la compañía Sarah and Suhl de Portland, Maine, el subfusil " -"M919 es la más precisa 9x19mm del mercado. Pensada para ser utilizada por la" -" policía, posee un lanzagranadas integrado." - -#: lang/json/gun_from_json.py -msgid "Eagle 1776" -msgid_plural "Eagle 1776" -msgstr[0] "Eagle 1776" -msgstr[1] "Eagle 1776" - -#: lang/json/gun_from_json.py -msgid "" -"You see before you a marvel of American engineering: a powerful .44 Magnum " -"submachine gun, made from fine parts assembled in America, including an " -"integral grenade launcher. Eagle 1776: From the arsenal of freedom!" -msgstr "" -"Tenés ante vos una maravilla de la ingeniería estadounidense: un poderoso " -"subfusil .44 Magnum, hecho con partes de calidad ensamblado en Estados " -"Unidos, incluyen el lanzagranadas integrado. Eagle 1776: ¡del arsenal de la " -"libertad!" - -#: lang/json/gun_from_json.py -msgid "L.T. carbine" -msgid_plural "L.T. carbines" +msgid "pipe rifle" +msgid_plural "pipe rifles" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"The Lightning Trail carbine was developed for the riot police to quickly " -"blanket an area with lightning clouds. While damaging, it is less lethal " -"than live ammunition." -msgstr "" -"La carabina con luz trazante fue desarrollada para la policía " -"antidisturbios, para poder cubrir rápidamente el área con nubes de rayos. " -"Aunque hace daño, es menos letal que la munición normal." - -#: lang/json/gun_from_json.py -msgid "arc cannon" -msgid_plural "arc cannons" -msgstr[0] "cañón de arco" -msgstr[1] "cañones de arco" - -#: lang/json/gun_from_json.py -msgid "" -"The arc cannon fires bolts of lightning arcing between targets in close " -"proximity to each other. Originally manufactured to fry insects, now it’s " -"been turned up to fry zombies." +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." msgstr "" -"El cañón de arco dispara rayos de luz en arco, que van entre los objetivos " -"que están próximos entre sí. Originalmente, fue construido para freír " -"insectos, ahora sirve para freír zombis." #: lang/json/gun_from_json.py -msgid "M1911 DS" -msgid_plural "M1911 DSs" -msgstr[0] "M1911 DS" -msgstr[1] "M1911 DS" +msgid "survivor carbine" +msgid_plural "survivor carbines" +msgstr[0] "" +msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"The M1911 Darkstalker is a very modified M1911, it has a fully integrated " -"crossbow and added rails. Professional looking with a ebony black finish, " -"laced with lime green details. Now they will know why they fear the night." -" Bat hood sold separately." +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than" +" ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." msgstr "" -"La M1911 DarkStalker es una M1911 muy modificada. Tiene una ballesta " -"integrada y rieles agregados. Posee una apariencia profesional con su " -"terminación de ébano negro, con detalles en verde lima. Ahora van a saber " -"por qué le tienen miedo a la noche. La careta de murciélago se vende por " -"separado." #: lang/json/gun_from_json.py msgid "antique pistol" @@ -123189,35 +122436,6 @@ msgid "" "to reload." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than" -" ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -123458,145 +122676,6 @@ msgstr "" msgid "Fake gun that fires barbed javelins." msgstr "" -#: lang/json/gun_from_json.py -msgid "fire lance" -msgid_plural "fire lances" -msgstr[0] "lanza de fuego" -msgstr[1] "lanzas de fuego" - -#: lang/json/gun_from_json.py -msgid "" -"An ancient Chinese spear, with a small tube attached for a charge of " -"gunpowder. While it has an extremely short range, it gives a powerful edge " -"in close combat." -msgstr "" -"Es una antigua lanza china, con un pequeño caño agregado para cargarle " -"pólvora. Aunque tiene un alcance extremadamente corto, aporta una ventaja " -"poderosa en el combate de cerca." - -#: lang/json/gun_from_json.py -msgctxt "gun_type_type" -msgid "melee" -msgstr "cuerpo a cuerpo" - -#: lang/json/gun_from_json.py -msgid "base robogun" -msgid_plural "base roboguns" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"This is a pseudo item for monster attacks. If you see this, it's a bug." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "integral 12 gauge shotgun" -msgid_plural "integral 12 gauge shotguns" -msgstr[0] "escopeta 12 gauge integral" -msgstr[1] "escopetas 12 gauge integrales" - -#: lang/json/gun_from_json.py -msgid "integral 50 caliber machinegun" -msgid_plural "integral 50 caliber machineguns" -msgstr[0] "ametralladora calibre 50 integral" -msgstr[1] "ametralladoras calibre 50 integrales" - -#: lang/json/gun_from_json.py -msgid "integral needle gun" -msgid_plural "integral needle guns" -msgstr[0] "arma de clavos integral" -msgstr[1] "armas de clavos integrales" - -#: lang/json/gun_from_json.py -msgid "integral 8mm firearm" -msgid_plural "integral 8mm firearms" -msgstr[0] "arma 8mm integral" -msgstr[1] "armas 8mm integrales" - -#: lang/json/gun_from_json.py -msgid "integral laser emitter" -msgid_plural "integral laser emitters" -msgstr[0] "emisor láser integral" -msgstr[1] "emisores láser integrales" - -#: lang/json/gun_from_json.py -msgid "integral railgun" -msgid_plural "integral railguns" -msgstr[0] "cañón de riel integral" -msgstr[1] "cañones de riel integrales" - -#: lang/json/gun_from_json.py -msgid "integral lightning caster" -msgid_plural "integral lightning casters" -msgstr[0] "lanza-rayos integral" -msgstr[1] "lanza-rayos integrales" - -#: lang/json/gun_from_json.py -msgid "integral EMP generator" -msgid_plural "integral EMP generators" -msgstr[0] "generador PEM integral" -msgstr[1] "generadores PEM integrales" - -#: lang/json/gun_from_json.py -msgid "atlatl" -msgid_plural "atlatls" -msgstr[0] "átlatl" -msgstr[1] "átlatls" - -#: lang/json/gun_from_json.py -msgid "" -"A wooden tool for supporting a javelin, to throw it more effectively than by" -" hand." -msgstr "" -"Es una herramienta de madera para apoyar una jabalina, y lanzarla de manera " -"más eficaz que con la mano." - -#: lang/json/gun_from_json.py -msgid "makeshift crossbow" -msgid_plural "makeshift crossbows" -msgstr[0] "ballesta improvisada" -msgstr[1] "ballestas improvisadas" - -#: lang/json/gun_from_json.py -msgid "" -"A simple, handmade crossbow of the Skane style, with a wooden peg that is " -"pushed up from underneath to loose the bowstring. Not as powerful as other " -"crossbow designs, but it is easier to draw the bow back. Bolts fired from " -"this weapon have a good chance of remaining intact for re-use." -msgstr "" -"Es una ballesta simple, hecha a mano, del estilo Skane, con una clavija de " -"madera que es empujada desde abajo para soltar la cuerda. No es tan poderosa" -" como otros diseños de ballesta, pero es fácil de cargar. Los pernos " -"disparados con esta arma tienen una gran probabilidad de no romperse." - -#: lang/json/gun_from_json.py -msgid "" -"This is a replica of the bow possessed by Odin, Ichaival, which is rumored " -"to fire 10 arrows with every pull of the string. It has gold and silver " -"ornaments on it." -msgstr "" -"Es una réplica del arco que pertenecía a Odín, Ichaival. Un rumor dice que " -"dispara 10 flechas por cada vez que se usa. Tiene adornos de oro y plata." - -#: lang/json/gun_from_json.py -msgid "integral nailgun" -msgid_plural "integral nailguns" -msgstr[0] "pistola de clavos integral" -msgstr[1] "pistolas de clavos integrales" - -#: lang/json/gun_from_json.py -msgid "mounted crossbow" -msgid_plural "mounted crossbows" -msgstr[0] "ballesta montada" -msgstr[1] "ballestas montadas" - -#: lang/json/gun_from_json.py -msgid "Vortical plasma beam" -msgid_plural "Vortical plasma beams" -msgstr[0] "rayos plasma vortical" -msgstr[1] "rayos plasma vorticales" - #: lang/json/gun_from_json.py msgid "TEST compound bow" msgid_plural "TEST compound bows" @@ -123604,653 +122683,32 @@ msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py -msgid "30mm autocannon" -msgid_plural "30mm autocannons" -msgstr[0] "cañón automático 30mm" -msgstr[1] "cañones automáticos 30mm" - -#: lang/json/gun_from_json.py -msgid "" -"A chain-driven autocannon chambered in 30x113mm, originally designed for " -"aircraft use, but later adapted for armored vehicles. Obviously it needs to" -" be mounted on a vehicle to fire." -msgstr "" -"Es un cañón automático con cadena de transmisión, con calibre 30x113mm, " -"originalmente diseñado para usar en aviones, pero luego adaptado para " -"vehículos blindados. Obviamente, necesita estar montado en un vehículo para " -"ser disparado." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "120mm tank gun" -msgid_plural "120mm tank guns" -msgstr[0] "arma 120mm de tanque" -msgstr[1] "armas 120mm de tanque" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " -"to fire." -msgstr "" -"Un cañón 120mm de un tanque. Obviamente, necesita ser montado en un vehículo" -" para ser disparado." - -#: lang/json/gun_from_json.py -msgid "120mm autoloading tank gun" -msgid_plural "120mm autoloading tank guns" -msgstr[0] "arma autocargadora 120mm de tanque" -msgstr[1] "armas autocargadoras 120mm de tanque" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"Un cañón 120mm de un tanque, con un autocargador de 5 balas. Obviamente, " -"necesita ser montado en un vehículo para ser disparado." - -#: lang/json/gun_from_json.py -msgid "120mm remote weapon system" -msgid_plural "120mm remote weapon systems" -msgstr[0] "sistema remoto de arma 120mm" -msgstr[1] "sistemas remotos de arma 120mm" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon with an advanced autoloader, designed to operate via remote " -"control. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"Un cañón 120mm con un autocargador avanzado, diseñado para ser operado a " -"través de un control remoto. Obviamente, necesita ser montado en un vehículo" -" para ser disparado." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "155mm howitzer" -msgid_plural "155mm howitzers" -msgstr[0] "155mm howitzer" -msgstr[1] "155mm howitzers" - -#: lang/json/gun_from_json.py -msgid "" -"A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"Un cañón 155mm diseñado para artillería y tanques pesados. Obviamente, " -"necesita ser montado en un vehículo para ser disparado." - -#: lang/json/gun_from_json.py -msgid "Vehicular ATGM Launcher" -msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "lanzador vehicular ATGM" -msgstr[1] "lanzadores vehiculares ATGM" - -#: lang/json/gun_from_json.py -msgid "" -"A launcher for anti-tank guided missiles. While highly accurate, it isn't " -"fire-and-forget. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"Es un lanzador de misiles anti-tanque guiados. Aunque es muy preciso, no es " -"cuestión de un disparo y listo. Obviamente, necesita ser montado en un " -"vehículo para ser disparado." - -#: lang/json/gun_from_json.py -msgid "slingshot cannon" -msgid_plural "slingshot cannons" -msgstr[0] "cañón gomera" -msgstr[1] "cañones gomera" - -#: lang/json/gun_from_json.py -msgid "" -"Essentially several long drawstrings held by two long, reinforced sides and " -"a mechanism attached to a crank to draw and fire it. It's deceptively " -"powerful and surprisingly accurate, but far too large to be used without " -"some sort of stable platform." -msgstr "" -"En esencia, son varias cuerdas elásticas sostenidas por dos costados " -"reforzados y un mecanismo conectado a una palanca para tensar el cañón y " -"disparar. Es engañosamente poderoso y sorpresivamente preciso, pero " -"demasiado grande para ser utilizado sin alguna clase de plataforma estable." - -#: lang/json/gun_from_json.py -msgid "lacerator" -msgid_plural "lacerators" -msgstr[0] "lacerador" -msgstr[1] "laceradores" - -#: lang/json/gun_from_json.py -msgid "" -"This weapon launches serrated metal disks at nearby enemies. It draws its " -"power from a vehicle's engines, and thus must be mounted on such in order to" -" be operated." -msgstr "" -"Este arma lanza discos dentados de metal a sus enemigos cercanos. Usa la " -"energía del motor de un vehículo, y por eso debe ser montado en uno para " -"poder ser usada." - -#: lang/json/gun_from_json.py -msgid "rotary cannon" -msgid_plural "rotary cannons" -msgstr[0] "cañón rotatorio" -msgstr[1] "cañones rotatorios" - -#: lang/json/gun_from_json.py -msgid "" -"This fearsome weapon sports 3 barrels in a cyclic configuration. A " -"specialized mechanism loads the otherwise troublesome rounds; allowing it to" -" be fired in quick succession. However, this renders it incredibly " -"unwieldy, and it must be mounted on a support structure in order to be " -"fired." -msgstr "" -"Esta imponente arma tiene 3 cañones en configuración cíclica. Un mecanismo " -"especializado carga la munición sin problemas, lo que le permite disparar en" -" secuencias rápidas. Sin embargo, esto la vuelve increíblemente incómoda, y " -"tiene que estar montada en una estructura de soporte para ser disparada." - -#: lang/json/gun_from_json.py -msgid "laser cannon" -msgid_plural "laser cannons" -msgstr[0] "cañón láser" -msgstr[1] "cañones láser" - -#: lang/json/gun_from_json.py -msgid "" -"This enhanced laser cannon sacrifices efficiency for destructive power. The" -" increased power requirements require a significant power source and the " -"size of the firing mechanism also requires support." -msgstr "" -"Este cañón láser mejorado sacrifica la eficiencia por poder destructivo. El " -"poder mejorado requiere de una fuente significativa de energía , y el tamaño" -" del mecanismo de disparo requiere de un soporte." - -#: lang/json/gun_from_json.py -msgid "pulse laser" -msgid_plural "pulse lasers" -msgstr[0] "láser de pulso" -msgstr[1] "lásers de pulso" - -#: lang/json/gun_from_json.py -msgid "" -"Augmented damage capability and rapid bursts make this a powerful weapon. " -"The increased power requirements require a significant power source and the " -"firing mechanism also requires a specialized chassis." -msgstr "" -"La capacidad aumentada de daño y las ráfagas rápidas la hacen una poderosa " -"arma. El poder mejorado requiere de una fuente significativa de energía, y " -"el tamaño del mecanismo de disparo requiere de un chasis especial." - -#: lang/json/gun_from_json.py -msgid "turbolaser cannon" -msgid_plural "turbolaser cannons" -msgstr[0] "cañón turboláser" -msgstr[1] "cañones turboláser" - -#: lang/json/gun_from_json.py -msgid "" -"With an augmented emitter and capacitor, this mounted laser is capable of " -"superheating most materials to the point of exploding. The firing mechanism" -" also requires the services of a specialized chassis, and one must be wary " -"of the prodigious power needs of such a weapon." -msgstr "" -"Con emisor y condensador aumentados, este láser montado es capaz de " -"supercalentar la mayoría de los materiales al punto de explotarlos. El " -"mecanismo de disparo requiere los servicios de un chasis especial, y hay que" -" tener cuidado con la prodigiosa energía que necesitan estas armas." - -#: lang/json/gun_from_json.py -msgid "ripper" -msgid_plural "rippers" -msgstr[0] "destripador" -msgstr[1] "destripadores" - -#: lang/json/gun_from_json.py -msgid "" -"This menacing weapon rapidly launches bladed disks that rips through enemies" -" with devastating effect. It draws its power from a vehicle's engines, and " -"thus must be mounted on such in order to be operated." -msgstr "" -"Este amenazante arma lanza rápidamente discos con cuchillas que destrozan a " -"los enemigos con un efecto devastador. Se alimenta con la energía del motor " -"del vehículo, y por eso necesita estar montada para funcionar." - -#: lang/json/gun_from_json.py -msgid "scorpion ballista" -msgid_plural "scorpion ballistae" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A massive tension-operated crossbow. The hand-crank allows one to draw it " -"without the need for heavy labor. It's far too massive to be used on foot, " -"and thus needs to be mounted on a vehicle in order to be operated." -msgstr "" -"Es una masiva ballesta que funciona por tensión. La palanca te permite " -"tensarla sin mucho esfuerzo. Es demasiado grande como para usarla a pie, y " -"por eso necesita estar montada en un vehículo para poder ser usada." - -#: lang/json/gun_from_json.py -msgid "harpoon gun" -msgid_plural "harpoon guns" -msgstr[0] "arma de arpón" -msgstr[1] "armas de arpón" - -#: lang/json/gun_from_json.py -msgid "" -"A tension-operated speargun. A hand-crank lets one draw the strings " -"quickly, but it's too unwieldy to handle without a support of some sort." -msgstr "" -"Es un arpón disparado por tensión. La palanca permite tensar las cuerdas de " -"manera rápida, pero es muy incómodo para manejar sin apoyarlo en algún " -"lugar." - -#: lang/json/gun_from_json.py -msgid "tesla cannon" -msgid_plural "tesla cannons" +msgid "Test Glock" +msgid_plural "Test Glocks" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py -msgid "" -"This alteration of the Chain Lightning bionic fires artificial lightning " -"bolts that arc to nearby enemies. It must be attached to a large power " -"source, but it allows for much more powerful bolts." -msgstr "" -"Es una modificación al biónico de Rayos en Cadena. Dispara un rayo " -"artificial que se mueve trazando un arco entre los enemigos cercanos. Debe " -"ser conectado a una fuente grande de energía, pero permite hacer descargas " -"mucho más poderosas." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "biting blob" -msgid_plural "biting blobs" -msgstr[0] "blobo mordaz" -msgstr[1] "blobos mordaces" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. It has evolved the ability to constantly " -"generate calcified protrusions which are then controlled by sinuous tensile " -"strands. These \"teeth\" can then be used to latch and wound anything " -"unfortunate enough to be nearby. The outer membrane has also become " -"significantly thicker in order to support its more strenuous movement; " -"though it seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel shooter" -msgid_plural "gel shooters" -msgstr[0] "disparador gel" -msgstr[1] "disparadores gel" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It trawls the ground for " -"material, which it then strips of nutrition. The remainder is then expelled" -" out at significant velocity towards any nearby threats. The amorphous mass" -" can be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "frost lancer" -msgid_plural "frost lancers" -msgstr[0] "lanzador de escarcha" -msgstr[1] "lanzadores de escarcha" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A biological aberration " -"that exists at sub-zero temperatures. After filtering nutrients from the " -"water, it freezes the remainder into an incredibly sharp spear of ice; which" -" it then launches at nearby threats. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Es una aberración biológica" -" que existe en temperaturas bajo cero. Luego de filtrar los nutrientes del " -"agua, congela el resto en una lanza increíblemente afilada de hielo, que " -"luego lanza hacia las amenazas cercanas. Puede dársele forma a la masa " -"amorfa y adaptado a tu tacto, pero el arma en sí misma está inerte si no es " -"controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "snapping ooze" -msgid_plural "snapping oozes" -msgstr[0] "flujo crujiente" -msgstr[1] "flujos crujientes" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A baffling mutation in an " -"already baffling creature, this blob is encased in a thick coat of fur, " -"which serves as a form of protection. In addition, it is capable of " -"projecting rows of calcified sharp fragments in a manner mimicking the jaw " -"of a more recognizable creature. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Una mutación incomprensible" -" sucedida a una criatura ya de por sí incomprensible. Este blob está " -"cubierto por una piel gruesa, que le sirve de protección. Además, tiene unas" -" filas salientes de fragmentos calcáreas filosos que parecen las mandíbulas " -"de alguna criatura más reconocible. Puede dársele forma a la masa amorfa y " -"adaptado a tu tacto, pero el arma en sí misma está inerte si no es " -"controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "blobsaw" -msgid_plural "blobsaws" -msgstr[0] "sierrablobo" -msgstr[1] "sierrablobos" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. While its simpler cousins have a limit to " -"the number of keratinous protrusions they can project and control; this blob" -" can utilize hundreds of these sharp fangs to shred anything it detects as a" -" threat into unrecognizable ribbons. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma; hecho para ser puesto sobre" -" una armazón como una barrera. Mientras que sus primos tienen un número " -"limitado de protuberancias queratinosas, pueden controlarlas; este blob " -"puede usar cientos de estos colmillos afilados para destrozar en pedacitos " -"irreconocibles cualquier cosa que detecte como una amenaza. Puede dársele " -"forma a esta masa amorfa y adaptada a tu tacto, pero el arma en sí misma " -"está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fuel puffer" -msgid_plural "fuel puffers" -msgstr[0] "globo de nafta" -msgstr[1] "globos de nafta" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digestion process turns the " -"result incredibly viscous which, when threats come near, is launched; " -"ensnaring anything it hits. The amorphous mass can be shaped and attached " -"at your touch, but the weapon itself is inert without something to control " -"it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Es bastante exigente para " -"comer, se alimenta de los químicos que tiene la nafta. El proceso digestivo " -"produce un resultado increíblemente viscoso que cuando se siente amenazado, " -"es lanzado, atrapando lo que toque. Puede dársele forma a la masa amorfa y " -"adaptado a tu tacto, pero el arma en sí misma está inerte si no es " -"controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "acid puffer" -msgid_plural "acid puffers" -msgstr[0] "globo de ácido" -msgstr[1] "globos de ácido" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, the " -"digestion process produces highly acidic byproducts; which is then expelled " -"at any nearby enemies. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Es como un filtro, en el " -"proceso digestivo produce derivados muy ácidos que son lanzados a los " -"enemigos cercanos. Puede dársele forma a la masa amorfa y adaptado a tu " -"tacto, pero el arma en sí misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spiker" -msgid_plural "gel spikers" -msgstr[0] "puntador gel" -msgstr[1] "puntadores gel" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Capable of calcifying large" -" numbers of fang-like fragments within itself. It hurls groups of these " -"fragments along with a small portion of itself. When it reaches its " -"destination, the detached remains shoot these fragments in all directions, " -"expiring in the process. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Es capaz de calcificar " -"grandes cantidades de fragmentos similares a colmillos dentro de sí mismo. " -"Puede lanzar algunos de esos colmillos con partes de su cuerpo. Cuando " -"alcanzan su destino, los pedazos que quedan largan estos fragmentos hacia " -"todos lados. Puede dársele forma a la masa amorfa y adaptado a tu tacto, " -"pero el arma en sí misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spouter" -msgid_plural "gel spouters" -msgstr[0] "chorreador gel" -msgstr[1] "chorreadores gel" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It can suck in water from a" -" vehicle tank, and forcibly expel it in a wide cone. The amorphous mass can" -" be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Puede chupar agua del " -"tanque de un vehículo, y expulsarla violentamente en forma de cono. Puede " -"dársele forma a la masa amorfa y adaptarla a tu toque, pero el arma en sí " -"misma permanece inerte sin que algo la controle." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel lancer" -msgid_plural "gel lancers" -msgstr[0] "lanzador gel" -msgstr[1] "lanzadores gel" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Evolving incredible " -"abilities of perception, it is capable of locating and discerning possible " -"threats within a large radius. When a potential threat is located, it fires" -" a small, calcified projectile with incredible speed and accuracy. The " -"amorphous mass can be shaped and attached at your touch, but the weapon " -"itself is inert without something to control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Desarrolló habilidades " -"increíbles de percepcio y es capaz de localizar y percibir las posibles " -"amenazas en un radio grande. Cuando encuentra una amenaza, lanza un " -"proyectil pequeño calcificado a una velocidad y precisión increíbles. Puede " -"dársele forma a la masa amorfa y adaptado a tu tacto, pero el arma en sí " -"misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel razor" -msgid_plural "gel razors" -msgstr[0] "navaja gel" -msgstr[1] "navajas gel" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. An enhanced metabolism " -"allows it to calcify large, toothy discs which are then launched towards any" -" nearby threats. The amorphous mass can be shaped and attached at your " -"touch, but the weapon itself is inert without something to control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Su metabolismo avanzado le " -"permite calcificar discos dentados grandes que son lanzados hacia las " -"amenazas cercanas. Puede dársele forma a la masa amorfa y adaptado a tu " -"tacto, pero el arma en sí misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock bulb" -msgid_plural "shock bulbs" -msgstr[0] "bulbo eléctrico" -msgstr[1] "bulbos eléctricos" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Shockingly, it somehow is " -"able to project electricity, which it then discharges at any nearby threats." -" The amorphous mass can be shaped and attached at your touch, but the " -"weapon itself is inert without something to control it." +msgid "A handgun for testing, based on the Glock 9mm." msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Sorprendentemente, de " -"alguna manera es capaz de proyectar electricidad que luego descarga hacia " -"las amenazas cercanas. Puede dársele forma a la masa amorfa y adaptado a tu " -"tacto, pero el arma en sí misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel puffer" -msgid_plural "gel puffers" -msgstr[0] "globo de gel" -msgstr[1] "globos de gel" -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, it strips " -"any water it processes of nutrients and expels the remainder towards any " -"nearby threats. The process of filter-feeding also makes the remaining " -"liquid viscous, though it also dissipates fairly quickly. The amorphous " -"mass can be shaped and attached at your touch, but the weapon itself is " -"inert without something to control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Es como un filtro, le quita" -" los nutrientes al agua que procesa y expulsa lo que queda hacia las " -"amenazas. El proceso de filtrado y alimentación también vuelve viscoso el " -"líquido resultante, aunque se disipa rápidamente. Puede dársele forma a la " -"masa amorfa y adaptado a tu tacto, pero el arma en sí misma está inerte si " -"no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fire puffer" -msgid_plural "fire puffers" -msgstr[0] "globo de fuego" -msgstr[1] "globos de fuego" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digested material is still " -"highly flammable, and when launched, also activates an ignition gland " -"located on the outer membrane. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Es bastante exigente para " -"comer, se alimenta de los químicos que tiene la nafta. El material digerido " -"es altamente inflamable y cuando es lanzado, también activa una glándula de " -"ignición localizada en la membrana exterior. Puede dársele forma a la masa " -"amorfa y adaptado a tu tacto, pero el arma en sí misma está inerte si no es " -"controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "spark blight" -msgid_plural "spark blights" -msgstr[0] "plaga de chispas" -msgstr[1] "plagas de chispas" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It is capable of storing " -"energy from sunlight inside itself in the form of electricity. Then, in a " -"truly baffling show of force, projects a highly concentrated stream of " -"electricity towards any possible threats. The amorphous mass can be shaped " -"and attached at your touch, but the weapon itself is inert without something" -" to control it." -msgstr "" -"Es un blobo vivo convertido en un arma autónoma. Es capaz de almacenar " -"energía del sol en forma de electricidad. Luego, en una verdadera muestra de" -" fuerza, proyecta un rayo altamente concentrado de electricidad hacia las " -"amenazas. Puede dársele forma a la masa amorfa y adaptado a tu tacto, pero " -"el arma en sí misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond lance" -msgid_plural "diamond lances" -msgstr[0] "lanza de diamante" -msgstr[1] "lanzas de diamante" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst; thus a pre-" -"shaped lump of carbon is brought into contact with the matrix, immediately " -"crystallized and launched just as quickly. The launcher requires a " -"specialized chassis in order to be brought to bear on its unfortunate " -"targets." -msgstr "" -"Es un arma tan letal como deslumbrante. La matriz de diamante del centro de " -"esta arma funciona como catalizador, cambiando rápidamente los materiales " -"carbónicos en una sustancia cristalina que es casi igual al diamante en su " -"dureza. La sustancia se degrada rápidamente cuando es separada del " -"catalizador, por eso cuando un pedazo de carbón es puesto en contacto con la" -" matriz, inmediatamente cristalizado y lanzado también velozmente. El " -"lanzador necesita un chasis especial para poder ser usado contra sus pobres " -"objetivos." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond nova" -msgid_plural "diamond novae" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst, and at sizes " -"as large as the projectile used, also rapidly decays when in contact with " -"other matter. Thus the projectile is held and launched by the use of " -"pressurized air from a vortex stone. Upon striking its target, the " -"projectile undergoes explosive decomposition; shattering into a brilliant " -"burst of diamond fragments." -msgstr "" -"Es un arma tan letal como deslumbrante. La matriz de diamante del centro de " -"esta arma funciona como catalizador, cambiando rápidamente los materiales " -"carbónicos en una sustancia cristalina que es casi igual al diamante en su " -"dureza. La sustancia se degrada rápidamente cuando es separada del " -"catalizador, y con tamaños tan grandes como los proyectiles utilizados, " -"también se degradan rápidamente cuando entra en contacto con otra materia. " -"Por eso el proyectil es mantenido y lanzado usando aire comprimido desde la " -"piedra vórtice. Luego de golpear su objetivo, el proyectil sufre una " -"descomposición explosiva, destrozándose en brillantes fragmentos de " -"diamante." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex accelerator" -msgid_plural "vortex accelerators" -msgstr[0] "acelerador vórtice" -msgstr[1] "aceleradores vórtice" +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" +msgstr[0] "escopeta de caño combinada" +msgstr[1] "escopetas de caño combinadas" -#: lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py msgid "" -"This weapon uses powerful bursts of air to launch sharp fragments at its " -"target at high speed. You'll need some form of platform to mount it on." +"The integrated underbarrel shotgun of a pipe combination gun which holds two" +" shots. It's irremovable." msgstr "" -"Este arma utiliza poderosas ráfagas de aire para lanzar fragmentos filosos " -"hacia sus objetivos, a mucha velocidad. Vas a necesitar alguna clase de " -"plataforma para montarla." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex cannon" -msgid_plural "vortex cannons" -msgstr[0] "cañón vórtice" -msgstr[1] "cañones vórtice" +"Es una escopeta integrada bajocañón de un arma de caño combinada, que tiene " +"dos disparos. No se puede quitar." -#: lang/json/gun_from_json.py -msgid "" -"Essentially a large pneumatic gun made to hurl sharpened metal rails. " -"Instead of a mechanical system, you've managed to harness the vortex to " -"power this gun. While powerful for its size, you'll need some form of " -"platform to mount it on." -msgstr "" -"Es en esencia una gran arma neumática fabricada para lanzar barras de metal " -"afiladas. En lugar del sistema mecánica, lograste poner el vórtice para " -"alimentar esta arma. Aunque es poderosa para su tamaño, vas a necesitar " -"alguna clase de plataforma para montarla." +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "bajocañón" #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -124543,10 +123001,6 @@ msgstr "" "Este lanzallamas miniatura está hecho para ser adjuntado a casi cualquier " "tipo de arma de fuego, lo que aumenta mucho su capacidad letal." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "bajocañón" - #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" @@ -124886,14 +123340,16 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "speedloader chute" msgid_plural "speedloader chutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "conducto de cargador de velocidad" +msgstr[1] "conductos de cargador de velocidad" #: lang/json/gunmod_from_json.py msgid "" "A metal ramp that is installed near a shotgun's feeding port to index " "speedloader tubes." msgstr "" +"Es una pequeña rampita de metal que se instala cerca de la ranura de carga " +"de la escopeta para insertar el cargador de velocidad." #: lang/json/gunmod_from_json.py msgid "loading port" @@ -124932,6 +123388,21 @@ msgstr "" "selectivo. La superficie de este sear hecho a mano no es tan buena como una " "parte automática, así que la precisión y la fiabilidad se verán reducidas." +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -125724,18 +124195,22 @@ msgstr "" "disparos. No se puede quitar." #: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" -msgstr[0] "escopeta de caño combinada" -msgstr[1] "escopetas de caño combinadas" +msgid "factory handguard" +msgid_plural "factory handguards" +msgstr[0] "" +msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two" -" shots. It's irremovable." +"A removable molded grip that comes standard on guns without rails. It's not" +" as efficient as a proper forward grip or bipod at controlling recoil, but " +"it's better than nothing." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "fs2000" msgstr "" -"Es una escopeta integrada bajocañón de un arma de caño combinada, que tiene " -"dos disparos. No se puede quitar." #: lang/json/gunmod_from_json.py msgid "forward grip" @@ -126188,92 +124663,6 @@ msgid "" "powerful, but good enough for tight hallways." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "5.45 caliber conversion kit" -msgid_plural "5.45 caliber conversion kits" -msgstr[0] "conversivo a calibre 5.45" -msgstr[1] "conversivos a calibre 5.45" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " -"results in slight reductions to recoil." -msgstr "" -"Este equipo es usado para convertir el calibre 6.54 de rifle al 5.45. Esta " -"conversión reduce un poco el retroceso." - -#: lang/json/gunmod_from_json.py -msgid "6.54 caliber conversion kit" -msgid_plural "6.54 caliber conversion kits" -msgstr[0] "conversivo a calibre 6.54" -msgstr[1] "conversivos a calibre 6.54" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Este equipo es usado para convertir el calibre 5.45 de rifle al 6.54. Esta " -"conversión incrementa el retroceso." - -#: lang/json/gunmod_from_json.py -msgid "7.62 caliber conversion kit" -msgid_plural "7.62 caliber conversion kits" -msgstr[0] "conversivo a calibre 7.62" -msgstr[1] "conversivos a calibre 7.62" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Este equipo es usado para convertir el calibre 6.54 de rifle al 7.62. Esta " -"conversión incrementa el retroceso." - -#: lang/json/gunmod_from_json.py -msgid "Flaregun conversion kit" -msgid_plural "Flaregun conversion kits" -msgstr[0] "conversivo de pistola de bengalas" -msgstr[1] "conversivos de pistola de bengalas" - -#: lang/json/gunmod_from_json.py -msgid "" -"Replacing several key parts flaregun to convert it to a .40 firearm. The " -"conversion results in reduced accuracy and increased recoil." -msgstr "" -"Reemplazando varias partes fundamentales de una pistola de bengalas, la " -"convierte en un arma .40. Esta conversión reduce la precisión e incrementa " -"el retroceso." - -#: lang/json/gunmod_from_json.py -msgid "" -"This genuine Herostratus flamethrower is ideal for light brush clearing and " -"self-defense." -msgstr "" -"Este genuino lanzallamas de Eróstrato es ideal para limpiar con fuego y para" -" defensa personal." - -#: lang/json/gunmod_from_json.py -msgid "E.M.A.S." -msgid_plural "E.M.A.S.s" -msgstr[0] "S.A.E.M." -msgstr[1] "S.A.E.M." - -#: lang/json/gunmod_from_json.py -msgid "" -"ElectroMagnetic Acceleration System is an array of electromagnets attached " -"to the front of the barrel, accelerating any projectile fired to even higher" -" velocities, increasing damage, recoil and reducing accuracy. It does " -"however drain UPS charges when firing and due to extensive modifications the" -" gun can no longer operate without a UPS." -msgstr "" -"El Sistema de Aceleración ElectroMagnética es un conjunto de electromagnetos" -" adjuntados a la parte frontal del cañón, lo que acelera cualquier proyectil" -" disparado a velocidades mayores, incrementando el daño, el retroceso y " -"reduciendo la precisión. Sin embargo, utiliza cargas de UPS cuando se " -"dispara y debido a las modificaciones extensivas, el arma ya no puede usarse" -" sin un UPS." - #: lang/json/gunmod_from_json.py msgid "underbarrel launcher" msgid_plural "underbarrel launchers" @@ -126372,37 +124761,14 @@ msgid "" msgstr "" #: lang/json/gunmod_from_json.py -msgid "makeshift pistol bayonet" -msgid_plural "makeshift pistol bayonets" -msgstr[0] "bayoneta improvisada de pistola" -msgstr[1] "bayonetas improvisadas de pistola" - -#: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a bayonet meant for a pistol that consists of a mere " -"spike with some string. It still makes a decent melee weapon in a pinch " -"when attached to a pistol." -msgstr "" -"Es una versión improvisada de la bayoneta hecha para pistolas, que consiste " -"en una simple punta con un poco de soga. Cuando se la pone en una pistola, " -"funciona bastante bien como arma de cuerpo a cuerpo en una emergencia." - -#: lang/json/gunmod_from_json.py -msgid "makeshift sword bayonet" -msgid_plural "makeshift sword bayonets" -msgstr[0] "bayoneta improvisada de espada" -msgstr[1] "bayonetas improvisadas de espada" +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "" +msgstr[1] "" #: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a sword bayonet that consists of a salvaged blade " -"with some string. It still makes a good melee weapon providing reach " -"attacks when attached to long arm or crossbow." +msgid "Gun suppressor mod for testing." msgstr "" -"Es una versión improvisada de la bayoneta de espada, que consiste en una " -"cuchilla reciclada con un poco de soga. Cuando se la pone en una ballesta o " -"algo similar, funciona bastante bien como arma de cuerpo a cuerpo por su " -"alcance" #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" @@ -126453,22 +124819,19 @@ msgstr "" "Puede que hayan sido humanos alguna vez... sea lo que sea que la Orden les " "haya hecho, ahora son otra cosa." -#: lang/json/harvest_from_json.py -msgid "You butcher the fallen zombie and hack off its head" -msgstr "Carneás al zombi caído y le cortás la cabeza." - #: lang/json/help_from_json.py msgid ": Introduction" msgstr ": Introducción" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future" +" looks pretty grim." msgstr "" -"Cataclysm es un juego de supervivencia de género roguelike, ambientado en un" -" apocalipsis con monstruos. Sobreviviste al ataque inicial, pero el futuro " -"se ve bastante desalentador." +"Cataclysm: Dark Days Ahead es un juego por turnos de supervivencia " +"ambientado en un mundo postapocalíptico. Sobreviviste al ataque inicial pero" +" el futuro se ve bastante desalentador." #: lang/json/help_from_json.py msgid "" @@ -126484,35 +124847,37 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are" +" exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." msgstr "" -"Cataclysm es diferente a otros roguelikes tradicionales en varias cosas. Más" -" que explorar un calabozo subterráneo con un área limitada en cada nivel, " -"vas a explorar un mundo verdaderamente infinito que se prolonga por los " -"cuatro puntos cardinales. En este roguelike de supervivencia vas a tener que" -" conseguir comida, mantenerte hidratado y dormir periódicamente. Está basado" -" en la realidad, así que esperá las mismas dificultades que la vida en una " -"situación de supervivencia, y por lo menos una docena más por las cosas de " -"ciencia ficción del mismo Cataclismo." +"Aunque se puede pensar que el Cataclysm: Dark Days Ahead es un roguelike, es" +" diferente a roguelikes tradicionales en varias cosas. Más que explorar un " +"calabozo subterráneo con un área limitada en cada nivel, vas a explorar un " +"mundo verdaderamente infinito que se prolonga por los cuatro puntos " +"cardinales. En este juego de supervivencia vas a tener que conseguir comida," +" mantenerte hidratado y dormir periódicamente. Está basado en la realidad, " +"así que esperá las mismas dificultades que la vida en una situación de " +"supervivencia, y por lo menos una docena más por las cosas de ciencia " +"ficción del mismo Cataclismo." #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help" +" you survive." msgstr "" -"Aunque Cataclysm tiene más cosas a las que prestar atención que otros " -"roguelikes, la ambientación del juego en un futuro cercano hace que algunas " -"tareas sean más sencillas. Armas de fuego, medicamentos y una amplia " -"variedad de herramientas están disponibles para ayudarte a sobrevivir." +"Aunque Cataclysm: Dark Days Ahead tiene más cosas a las que prestar atención" +" que otros juegos, la ambientación moderna del juego hace que algunas tareas" +" sean más sencillas. Armas de fuego, medicamentos y una amplia variedad de " +"herramientas están disponibles para ayudarte a sobrevivir." #: lang/json/help_from_json.py msgid ": Movement" @@ -126532,10 +124897,10 @@ msgid "" " you will then replenish a variable amount of movement points, depending on " "many factors (press to see the exact amount)." msgstr "" -"Cada paso usa 100 puntos de movimiento (o más, dependiendo del terreno). " -"Después de un paso recuperás una cantidad variable de puntos de movimiento, " -"dependiendo de muchos factores (apretá para ver la " -"cantidad exacta)." +"Cada paso son 100 puntos de movimiento (puede ser más, dependiendo del " +"terreno). Después de cada paso recuperás una cantidad variable de puntos de " +"movimiento, dependiendo de muchos factores (apretá para " +"ver la cantidad exacta)." #: lang/json/help_from_json.py msgid "To attempt to hit a monster with your weapon, simply move into it." @@ -126565,8 +124930,8 @@ msgid "" " is on, any movement will be ignored if new monsters enter the player's " "view." msgstr "" -"A veces vas a querer moverte más rápido manteniendo apretada una tecla. Sin " -"embargo, moverse rápido de esa manera puede llevarte a una situación " +"A veces vas a querer moverte rápido manteniendo apretada una tecla. Sin " +"embargo, moverte rápido de esa manera puede llevarte a una situación " "peligrosa, o incluso a morirte antes de que puedas reaccionar. Apretando " " se activa o desactiva el \"Modo seguro\". Cuando está " "activado, si algún monstruo aparece a la vista del jugador, el movimiento " @@ -126590,7 +124955,7 @@ msgstr "" "A menudo, el jugador puede ver más cosas de las que se muestran en la " "pantalla. Si apretás ingresás al \"modo mirar alrededor\" que " "te permite desplazarte con las teclas de movimiento y ver los objetos en el " -"mapa, así como también los monstruos y su actitud contra el personaje. " +"mapa, así como también los monstruos y su actitud hacia el personaje. " "Apretando vas a ver una lista de los objetos cercanos " "visibles, aunque los que estén dentro de cajas, armarios, heladeras y cosas " "así no serán mostrados hasta que estés lo suficientemente cerca. Apretando " @@ -126602,8 +124967,10 @@ msgid "" "Places outside of your view but seen previously and memorized can be " "visualized, but covered by the \"fog of war\"." msgstr "" -"Los lugares que están fuera de tu vista pero que han sido vistos antes y " -"memorizados, son visibles pero están cubiertos por la \"niebla de guerra\"" +"Los lugares que están fuera de tu visión pero que han sido vistos antes y " +"memorizados, son visibles pero están cubiertos por la \"niebla de guerra\" " +"(ves el terreno como lo recordás, pero no ves si hay algo nuevo o " +"moviéndose)." #: lang/json/help_from_json.py msgid ": Hunger, thirst, and sleep" @@ -126624,16 +124991,16 @@ msgid "" "whole body." msgstr "" "Mientras pasa el tiempo, empezarás a sentir hambre y sed, y tu estómago te " -"lo irá recordando. Cuando pasa eso, el estado aparecerá en la barra lateral." -" No te confundas - dependiendo de tu condición se mostrará que tan lleno " -"está tu panza y la intensidad del hambre en relación a tu estado de " -"nutrición. El nivel de nutrición de tu cuerpo es algo diferente a tu hambre." -" Por ejemplo, podés sentirte lleno después de una comida, pero seguir " -"estando malnutrido. Y vas a seguir sintiendo hambre si tenés sobrepeso. Con " -"comidas regulares tal vez nunca sufras hambre pero igual tener una mala " -"nutrición, si tu consumo de calorías es muy bajo. En otras palabras, " -"necesitás cuidar tanto tu hambre/saciedad y la nutrición general de todo tu " -"cuerpo." +"lo irá recordando. Cuando pasa eso, aparecerá en la barra lateral " +"información de ese estado. No te confundas - dependiendo de tu condición se " +"mostrará qué tan llena está tu panza y la intensidad del hambre en relación " +"a tu estado de nutrición. El nivel de nutrición de tu cuerpo es algo " +"diferente a tu hambre. Por ejemplo, podés sentirte lleno después de una " +"comida, pero seguir estando malnutrido. Y vas a seguir sintiendo hambre si " +"tenés sobrepeso. Con comidas regulares tal vez nunca sufras hambre pero " +"igual podés tener una mala nutrición, si tu consumo de calorías es muy bajo." +" En otras palabras, necesitás cuidar tanto tu hambre/saciedad como la " +"nutrición general de todo tu cuerpo." #: lang/json/help_from_json.py msgid "" @@ -126646,14 +125013,14 @@ msgid "" "levels, you will also suffer penalties. Thirst will kill you faster then " "hunger." msgstr "" -"La comida tarda un tiempo en digerirse, y el agua viaja rápido por tu " -"sistema digestivo. Comer y tomar mucho de golpe te puede hacer sentir " -"excesivamente lleno, así que dividí tus comidas. Si ya sufriste hambre, vas " -"a tardar un tiempo en recuperar tu masa corporal, juntando calorías al comer" -" regularmente. Comer mucho por un período prolongado de tiempo, te lleva a " -"la obesidad. Las dos puntas del espectro tienen penalidades. Cuando el " -"hambre y la sed llegan a niveles severos, vas a sufrir penalidades. La sed " -"te mata más rápido que el hambre." +"La comida tarda un tiempo en digerirse y el agua viaja rápido por tu sistema" +" digestivo. Comer y tomar mucho de golpe te puede hacer sentir excesivamente" +" lleno, así que dividí tus comidas. Si ya sufriste hambre, vas a tardar un " +"tiempo en recuperar tu masa corporal, que se logra juntando calorías al " +"comer regularmente. Comer mucho por un período prolongado de tiempo, te " +"lleva a la obesidad. Las dos puntas del espectro tienen sus penalidades. " +"Cuando el hambre o la sed llegan a niveles severos, vas a sufrir " +"penalidades. La sed te mata más rápido que el hambre." #: lang/json/help_from_json.py msgid "" @@ -126668,14 +125035,15 @@ msgid "" "should examine food items to view their nutritional facts." msgstr "" "Podés tener varias deficiencias vitamínicas si comés mal. Estas deficiencias" -" se sufren por estados, así que por ejemplo no pasás de salud perfecta a un " -"escorbuto desarrollado en un momento. Cualquier deficiencia que estés " -"desarrollando serán anunciadas en la hoja de personaje. Las deficiencias " -"causan varias penalidades, pero por suerte siempre son reversibles, y las " +" se van sufriendo por estados, así que no pasás de salud perfecta a un " +"escorbuto de un solo paso, por ejemplo. Cualquier deficiencia que estés " +"desarrollando será anunciada en la hoja de personaje. Las deficiencias " +"causan varias penalidades pero por suerte siempre son reversibles, y las " "píldoras multivitamínicas te van a ayudar a corregir esas deficiencias. " -"También podés pasarte de vitaminas y eso también genera problemas. Asegurate" -" de tener una dieta balanceada, o por lo menos de no tener una pésima. Podés" -" y tenés que examinar la comida para enterarte de sus valores nutritivos." +"También podés excederte de vitaminas y eso genera problemas. Asegurate de " +"tener una dieta balanceada o por lo menos de no tener una que sea pésima. " +"Podés y tenés que examinar la comida para enterarte de sus valores " +"nutritivos." #: lang/json/help_from_json.py msgid "" @@ -126685,10 +125053,10 @@ msgid "" " other hand vegetables, herbal teas, and many other self-prepared meals are " "good for your health, and are welcomed additions to your diet." msgstr "" -"Comer y tomar mal te va a afectar la salud. La comida rápido, picar cosas y " -"las bebidas con azúcar son altas en calorías, pero son pobres para mantener " -"un suministro de comida, y tu salud irá empeorando. Por otro lado, las " -"verduras, tés y otras comidas caseras son buenas para tu salud, y son " +"Si no comés y bebés bien te va a afectar la salud. La comida rápida, picar " +"cosas y las bebidas con azúcar son altas en calorías, pero son pobres para " +"mantener un suministro de comida, y tu salud irá empeorando. Por otro lado, " +"las verduras, tés y otras comidas caseras son buenas para tu salud, y son " "bienvenidas en tu dieta." #: lang/json/help_from_json.py @@ -126705,13 +125073,13 @@ msgid "" "boiling it or using water purifier before drinking." msgstr "" "Encontrar comida en una ciudad generalmente es más fácil; en las afueras de " -"una ciudad, tal vez tengas que cazar o recolectar. Luego de matar a un " -"animal, parate encima de su cuerpo y faenalo para obtener pedazos de carne " +"una ciudad tal vez tengas que cazar o recolectar. Luego de matar a un " +"animal, parate encima de su cuerpo y carnealo para obtener pedazos de carne " "con la tecla . Tal vez puedas conseguir algunas frutas o " "verduras comestibles; para esto tenés que examinar alguna planta que te " "parezca prometedora. Asimismo, vas a tener que tomar agua de un río o alguna" -" otra fuente natural. Para juntarla, te tenés que parar sobre agua con poca " -"profundidad y apretar . Vas a necesitar un recipiente " +" otra fuente natural. Para juntarla, te tenés que parar sobre el agua con " +"poca profundidad y apretar . Vas a necesitar un recipiente " "hermético para guardarla. Acordate que la mayoría de las fuentes de agua no " "son confiables y pueden provocarte enfermedades. Para asegurarte de que sea " "potable, purificá el agua haciéndola hervir o usando un purificador de agua " @@ -126727,14 +125095,14 @@ msgid "" "also be vulnerable to attack, so try to find a safe place to sleep, or set " "traps for unwary intruders." msgstr "" -"Cada 12 horas, más o menos, vas a empezar a sentirte con sueño. Si no dormís" -" apretando , vas a empezar a sufrir penalidades a tus " -"habilidades y a la movilidad. Puede ser que no siempre te caigas dormido " +"Cada 12 horas, más o menos, vas a empezar a sentirte con sueño. Para dormir " +"apretá , si no dormís vas a empezar a sufrir penalidades a tus " +"habilidades y a la movilidad. Puede ser que no siempre te quedes dormido " "inmediatamente. Dormir bajo techo, especialmente en una cama, ayuda. Si no " "es suficiente, las pastillas para dormir te pueden servir. Mientras estás " -"durmiendo, vas a ir recuperando puntos de vida lentamente. Pero también sos " +"durmiendo, vas a ir lentamente recuperando puntos de vida. Pero también sos " "vulnerable a los ataques, así que intentá conseguir un lugar seguro para " -"dormir, o poné trampas para los intrusos incautos." +"dormir, o poné trampas para los intrusos desprevenidos." #: lang/json/help_from_json.py msgid ": Pain and stimulants" @@ -126750,12 +125118,11 @@ msgid "" "slow you or reduce your stats." msgstr "" "Cuando sufrís algún daño empezás a sentir dolor. El dolor te hace más lento " -"y reduce tus características, así que conseguir una manera de aliviar el " -"dolor es de primera necesidad. La manera más común son las drogas: aspirina," -" codeína, tramadol, oxicodona y otras son las mejores opciones. Tené cuidado" -" porque estando bajo la influencia de los analgésicos, los efectos " -"secundarios psicológicos pueden hacerte más lento o reducir tus " -"características." +"y reduce tus características, así que es de primera necesidad conseguir una " +"manera de aliviar el dolor. La manera más común son las drogas: aspirina, " +"codeína, tramadol, oxicodona son las mejores opciones. Tené cuidado porque " +"estando bajo la influencia de los analgésicos, los efectos secundarios " +"psicológicos pueden hacerte más lento o reducir tus características." #: lang/json/help_from_json.py msgid "" @@ -126763,9 +125130,9 @@ msgid "" " oxycodone and don't notice the effects right away, don't start taking more " "- you may overdose and die!" msgstr "" -"Acordate que la mayoría de los analgésicos tardan un poco en empezar a hacer" -" efecto. Si tomaste oxicodona y no ves los efectos inmediatamente, no tomes " -"más - ¡te podés morir de una sobredosis!" +"Acordate que la mayoría de los analgésicos tardan un tiempo en empezar a " +"hacer efecto. Si tomaste oxicodona y no ves los efectos inmediatamente, no " +"tomes más - ¡te podés morir de una sobredosis!" #: lang/json/help_from_json.py msgid "" @@ -126774,8 +125141,8 @@ msgid "" "extended period of time." msgstr "" "El dolor también desaparece con el paso del tiempo, así que si no tenés " -"drogas disponibles y tenés mucho dolor, lo más sabio es conseguir un lugar " -"seguro y descansar por un tiempo largo." +"drogas disponibles y tenés mucho dolor, lo más inteligente es conseguir un " +"lugar seguro y descansar por un tiempo largo." #: lang/json/help_from_json.py msgid "" @@ -126799,8 +125166,8 @@ msgid "" "Depressants are opposite to stimulants. They will make you groggy and " "sluggish, but may help you in falling asleep." msgstr "" -"Los calmantes son lo opuesto de los estimulantes. Te van a dejar atontados y" -" adormecidos, por lo que te pueden ayudar a dormirte." +"Los calmantes son lo opuesto de los estimulantes. Te van a dejar atontado y " +"adormecido, por lo que te pueden ayudar a dormirte." #: lang/json/help_from_json.py msgid "" @@ -126824,13 +125191,13 @@ msgid "" "penalties and a long process of healing, after placing affected limb in a " "splint." msgstr "" -"Cuando sos herido cambia el estado de la parte del cuerpo afectada, y se " -"muestra en la barra lateral. El estado de cada parte se representa con " -"barritas verdes, que van bajando mientras más daño recibe. Si el daño " -"acumulado es mayor de lo que la parte del cuerpo puede soportar, se romperá." -" Si sucede en una parte esencial del cuerpo, te morís. Para las otras partes" -" significa que se rompe el hueso, que conlleva penalidades y un proceso " -"largo de sanación, luego de utilizar una tablilla." +"Cuando sos herido cambia el estado de la parte del cuerpo afectada y lo ves " +"en la barra lateral. El estado de cada parte se representa con barritas " +"verdes, que van bajando mientras más daño recibe. Si el daño acumulado es " +"mayor de lo que la parte del cuerpo puede soportar, se romperá. Si pasa eso " +"en una parte esencial del cuerpo, te morís. Para las otras partes significa " +"que se rompe el hueso, que conlleva penalidades y un proceso largo de " +"sanación, luego de utilizar una tablilla." #: lang/json/help_from_json.py msgid "" @@ -126850,13 +125217,13 @@ msgid "" "remember to always treat your wounds by default, as this is the proper way " "to get them healed." msgstr "" -"Necesitás tratar tus heridas apropiadamente, porque las heridas sin atender " -"sanan muy lentamente. Primero, tenés que vendar tus heridas y si es posible," +"Necesitás cuidar tus heridas apropiadamente, porque las que quedan sin " +"atender sanarán muy lentamente. Primero, tenés que vendarlas y si es posible" " también desinfectarlas. Eso establece las condiciones para una curación " -"apropiada y resultará en una recuperación más rápida. Podés hacer vendas " -"improvisadas si tenés la habilidad, y hay varias opciones para usar como " -"desinfectante. Pero acordate de tratar tus heridas, que es la manera " -"adecuada de que curarte." +"apropiada y hará que la recuperación sea más rápida. Podés improvisar vendas" +" si tenés la habilidad, y hay varias cosas que podés usar como " +"desinfectante. Pero acordate de cuidar tus heridas que es la manera adecuada" +" de que se curen." #: lang/json/help_from_json.py msgid "" @@ -126874,17 +125241,17 @@ msgid "" "hope that you will not die in the process." msgstr "" "Si un zombi te agarra puede llegar a morderte. Las mordeduras pueden ser " -"profundas e infectar. Si te pasa, la barra de estado de la parte afectada se" -" pondrá de color azul. Eso significa que necesitás desinfectarla lo antes " -"posible para limpiar la herida y prevenir una infección grave. Si no tenés " -"posibilidad de conseguir desinfectante, podés probar un método más drástico " -"cauterizando la herida, pero generalmente eso la empeora en lugar de ayudar." -" Si no la atendés, la parte infectada desarrollará una infección grave y el " -"color en la barra de estado pasará a ser verde oscuro. En ese momento ya es " -"muy tarde para desinfectar la herida, y vas a necesitar antibióticos. Tu " -"cuerpo peleará con la infección por sí mismo, y consumir antibióticos " +"profundas e infectarse. Si te pasa eso, la barra de estado de la parte " +"afectada se pondrá de color azul. Vas a necesitar desinfectarla lo antes " +"posible para limpiar la herida y prevenir una infección grave. Si no " +"conseguís desinfectante, podés probar un método más drástico cauterizando la" +" herida, pero generalmente eso la empeora en lugar de ayudar. Si no la " +"atendés, la parte infectada desarrollará una infección grave y el color en " +"la barra de estado pasará a ser verde oscuro. En ese momento ya es muy tarde" +" para desinfectar la herida y vas a necesitar antibióticos. Tu cuerpo " +"peleará con la infección por sí mismo pero consumir antibióticos " "regularmente puede llegar a mantenerte vivo el tiempo suficiente para que lo" -" logre. Vas a tener que esperar no morirte en el proceso." +" logre. Esperemos que no te mueras en el proceso." #: lang/json/help_from_json.py msgid "" @@ -126894,9 +125261,9 @@ msgid "" "hemorrhage." msgstr "" "Si estás sangrando, la barra de estado de la herida se pone roja. Los " -"miembros afectados reciben daño por el tiempo que dure el sangrado. La " -"manera más fácil de detenerlo es usando una venda, y hay otros objetos " -"médicos especiales para detener hemorragias." +"miembros afectados reciben daño durante el tiempo que estén sangrando. La " +"manera más fácil de detenerlo es usando una venda, pero también hay otros " +"objetos médicos especiales para detener hemorragias." #: lang/json/help_from_json.py msgid "" @@ -126910,7 +125277,7 @@ msgid "" msgstr "" "Podés estar afectado por más de una condición médica y enfermedades a lo " "largo del juego. En ese caso, buscá la medicación apropiada si es que existe" -" para la condición que estés sufriendo. Hay muchos medicamentos aparte de " +" para cada condición que estés sufriendo. Hay muchos medicamentos aparte de " "los analgésicos, algunos de los cuales te darán efectos que podés usar " "incluso para lo que no estaban pensados originalmente. Con un poco de " "habilidad podrías probar medicina natural, ya que varias hierbas tienen " @@ -126930,13 +125297,13 @@ msgid "" " going cold turkey. The process may last for days and will leave you very " "weak, so try to do it in a safe area." msgstr "" -"Muchas drogas (y otros consumibles) tienen la probabilidad de hacerte " -"adicto. Cada vez que consumís alguna de esas existe la posibilidad de que te" -" vuelvas dependiente de ella. Más consumís una droga, más dependiente te " -"volvés. Los efectos varían mucho dependiendo la sustancia, pero todas las " -"adicciones solo tienen una manera de curarse: dejar de consumirla " -"abruptamente. Este proceso puede llevar varios días y te va a debilitar, así" -" que hacelo en un área segura." +"Muchas drogas (y otros consumibles) tienen la probabilidad de causar " +"adicción. Cada vez que consumís alguna de esas existe la posibilidad de que " +"te vuelvas dependiente. Más consumís una droga, más dependiente te volvés. " +"Los efectos varían mucho dependiendo la sustancia, pero todas las adicciones" +" se curan de una sola manera: dejar de consumirla abruptamente. Este proceso" +" puede llevar varios días y te va a debilitar, así que hacelo en un área " +"segura." #: lang/json/help_from_json.py msgid "" @@ -126945,8 +125312,8 @@ msgid "" "dependence." msgstr "" "Si estás sufriendo efectos por el síndrome de abstinencia, consumir la " -"sustancia adictiva hará que los efectos desaparezcan inmediatamente, pero " -"puede profundizar tu dependencia." +"sustancia a la que sos adicto hará que los efectos desaparezcan " +"inmediatamente, pero puede profundizar tu dependencia." #: lang/json/help_from_json.py msgid ": Morale and learning" @@ -126970,9 +125337,9 @@ msgid "" "level before they grow boring." msgstr "" "Existen muchas maneras de incrementar tu moral. Leer un libro divertido, " -"comer comida deliciosa, o tomar drogas recreativas son algunas de las " -"maneras. La mayoría de las actividades que incrementan tu moral solo pueden " -"levantarte el humor hasta cierto nivel antes de empezar a resultarte " +"comer comida deliciosa, tomar drogas recreativas son algunas de las maneras." +" La mayoría de las actividades que incrementan tu moral solo pueden " +"levantarte el humor hasta cierto punto antes de empezar a resultarte " "aburridas." #: lang/json/help_from_json.py @@ -126982,8 +125349,8 @@ msgid "" "friendly NPC, or going through drug withdrawal are some prominent examples." msgstr "" "También hay muchas maneras de que tu moral disminuya, más allá del bajón " -"natural. Comer comida asquerosa, leer un aburrido libro técnico, matar a un " -"amigo PNJ o pasar por el síndrome de abstinencia son los ejemplos más " +"natural. Comer comida asquerosa, leer un libro técnico aburrido, matar a un " +"PNJ amigo o pasar por el síndrome de abstinencia son los ejemplos más " "destacados." #: lang/json/help_from_json.py @@ -126994,11 +125361,11 @@ msgid "" "fills you with gusto and energy, and you will find yourself moving faster. " "At extremely high levels, you will receive stat bonuses." msgstr "" -"La moral baja te pone perezoso y te desmotiva. Si tu moral cae muy abajo, no" -" vas a poder fabricar nada. Si llegás a ponerte lo suficientemente " -"depresivo, empezás a sufrir penalidades a las habilidades. Una moral muy " -"alta te llena de entusiasmo y energía, y te movés más rápido. A niveles " -"extremadamente altos, empezás a recibir bonus a tus habilidades." +"La moral baja te pone perezoso y desmotivado. Si tu moral cae mucho, no vas " +"a poder fabricar nada. Si llegás a ponerte lo suficientemente depresivo, " +"empezás a sufrir penalidades a las habilidades. Una moral muy alta te llena " +"de entusiasmo y energía, y te movés más rápido. A niveles extremadamente " +"altos, empezás a recibir bonus a tus habilidades." #: lang/json/help_from_json.py msgid "" @@ -127008,12 +125375,11 @@ msgid "" " learning potential. Higher or lower focus levels make it easier or harder " "to learn from practical experience." msgstr "" -"La moral es también responsable de que puedas aprender efectivamente, a " -"través de lo que llamamos 'enfoque'. Tu nivel de enfoque es una medida de " -"que tan efectivamente podés aprender. El nivel natural es 100, que indica un" -" potencial normal de aprendizaje. Niveles más altos o más bajos de enfoque " -"hacen que sea más fácil o más difícil aprender a través de la experiencia " -"práctica." +"La moral también es responsable de que puedas aprender efectivamente, a " +"través de lo que llamamos 'enfoque'. Tu nivel de enfoque es la medida de tu " +"efectividad para aprender. El nivel natural es 100 que indica un potencial " +"normal de aprendizaje. Niveles más altos o más bajos de enfoque hacen que " +"sea más fácil o más difícil aprender a través de la experiencia práctica." #: lang/json/help_from_json.py msgid "" @@ -127055,9 +125421,9 @@ msgid "" "performing relevant action, but you will not progress in that skill while " "it's disabled." msgstr "" -"Podés desactivar una habilidad en le Mení de Información del Jugador (apretá" -" ) si no querés practicarlo, lo que evitará usar enfoque " -"mientras realizás la acción relevante, pero no vas a progresar en esa " +"Si no querés practicar una habilidad, podés desactivarla en el Menú de " +"Información del Jugador (apretá ), lo que evitará usar " +"enfoque mientras realizás la acción relevante, pero sin progresar en esa " "habilidad mientras esté desactivada." #: lang/json/help_from_json.py @@ -127076,11 +125442,11 @@ msgid "" msgstr "" "A pesar de ser relativamente raro, algunas áreas del mundo pueden estar " "contaminadas con radiación. La radiación se irá acumulando en tu cuerpo " -"gradualmente, debilitándote cada vez más. Mientras que en áreas libre de " -"radiación, tu nivel de radiación irá disminuyendo lentamente. Las pastillas " -"de azul de Prusia acelerarán esa disminución. Conseguite un dispositivo de " -"medición ya que la radiación es invisible y tal vez no sepas que estás bajo " -"su influencia hasta que desarrollás una enfermedad por la radiación." +"gradualmente, debilitándote cada vez más. En áreas libre de radiación, tu " +"nivel de radiación irá disminuyendo lentamente. Las pastillas de azul de " +"Prusia acelerarán esa limpieza. Conseguite un dispositivo de medición ya que" +" la radiación es invisible y tal vez no sepas que estás bajo su influencia " +"hasta que desarrollás una enfermedad por su causa." #: lang/json/help_from_json.py msgid "" @@ -127122,11 +125488,11 @@ msgid "" " have unique effects that are otherwise unobtainable. Some bionics are " "constantly working, whereas others need to be toggled on and off as needed." msgstr "" -"Los biónicos son mejoras biomecánicas que podés aplicar en tu cuerpo. " +"Los biónicos son mejoras biomecánicas que podés aplicar a tu cuerpo. " "Mientras muchos son versiones incorporables de objetos que tendrías que " -"transportar, algunos biónicos tienen efectos únicos que de otra manera " -"serían imposibles de conseguir. Algunos biónicos funcionan constantemente, y" -" otros necesitan ser encendidos o apagados." +"transportar, algunos biónicos tienen efectos únicos que de otra manera sería" +" imposible conseguir. Algunos biónicos funcionan constantemente y otros " +"necesitan ser encendidos o apagados." #: lang/json/help_from_json.py msgid "" @@ -127136,10 +125502,10 @@ msgid "" "be done in a variety of ways, but all require the installation of a special " "bionic just for that purpose." msgstr "" -"La mayoría de los biónicos necesitan una fuente de energía, y vas a " -"necesitar un medio de almacenamiento de energía interno para alimentarlos. " -"Tu nivel actual de energía se muestra debajo de tu salud en la barra lateral" -" de la derecha. Podés recargar tu energía de diferentes maneras, pero todas " +"La mayoría de los biónicos necesitan una fuente de energía y vas a necesitar" +" un medio de almacenamiento de energía interno para alimentarlos. Tu nivel " +"actual de energía se muestra debajo de tu salud en la barra lateral de la " +"derecha. Podés recargar tu energía de diferentes maneras, pero todas " "necesitan la instalación de un biónico especial para eso." #: lang/json/help_from_json.py @@ -127155,13 +125521,13 @@ msgid "" msgstr "" "La instalación de un biónico solamente la puede realizar un profesional " "entrenado o un aparato médico especializado. Usar maquinaria para manipular " -"biónicos requiere grandes niveles de inteligencia, y conocimiento en " -"primeros auxilios, mecánica y electrónica. ¡Tené cuidado porque una falla " -"puede dejarte lisiado! Muchos módulos de biónicos son difíciles de " -"encontrar, pero pueden comprarse a algunos vagabundos errantes por un precio" -" muy alto, o los podés conseguir al diseccionar habilidosamente el cadáver " -"de un usuario de biónicos. Los módulos obtenidos de esa manera necesitan " -"mayores preparaciones para ser utilizables." +"biónicos requiere grandes niveles de inteligencia y conocimiento de primeros" +" auxilios, mecánica y electrónica. ¡Tené cuidado porque un error puede " +"dejarte discapacitado! Muchos módulos de biónicos son difíciles de encontrar" +" pero pueden comprarse a algunos vagabundos errantes por un precio muy alto," +" o los podés conseguir al diseccionar habilidosamente el cadáver de un " +"usuario de biónicos. Los módulos obtenidos de esa manera necesitan mayores " +"preparaciones para ser utilizables." #: lang/json/help_from_json.py msgid "" @@ -127183,8 +125549,8 @@ msgid "" msgstr "" "Para los sobrevivientes solitarios, la opción normal para instalar o " "desinstalar biónicos es un Autodoc. Normalmente, podés encontrarlos en los " -"hospitales y clínicas. Todos los procedimientos en un Autodoc requiere de un" -" equipo de anestesia. Sin embargo, podés saltearte esa restricción si " +"hospitales y clínicas. Todos los procedimientos en un Autodoc requieren un " +"equipo de anestesia. Sin embargo, podés saltearte esa restricción si " "encontrás alguna manera de negar el dolor. Ni siquiera intentes nada sin " "anestesia - las drogas normales no sirven." @@ -127209,10 +125575,10 @@ msgid "" "money to trade for. Fortunately, it is possible to craft a wide variety of " "goods (as best you can) with the proper tools, materials, and training." msgstr "" -"Muchos de los objetos importantes serán difíciles de encontrar o costarán " -"mucho dinero para comprarlos. Afortunadamente, es posible frabricar una gran" -" variedad de artículos (tan bien como puedas hacerlos) si contás con las " -"herramientas adecuadas, los materiales y el entrenamiento." +"Muchos objetos importantes serán difíciles de encontrar o costarán mucho " +"dinero comprarlos. Afortunadamente, es posible fabricar una gran variedad de" +" artículos (su calidad dependerá de tu habilidad) si contás con " +"herramientas, materiales y entrenamiento adecuados." #: lang/json/help_from_json.py msgid "" @@ -127220,9 +125586,9 @@ msgid "" "so you can keep your tool set. All recipes require one or more ingredients." " These ARE used up in crafting." msgstr "" -"Algunas recetas necesitan un juego de herramientas. Estas no son consumidas " -"cuando fabricás, así que podés seguir usándolas. Todas las recetas necesitan" -" por lo menos un ingrediente. Estos SÍ son consumidos cuando fabricás algo." +"Algunas recetas necesitan herramientas. Estas no son consumidas cuando " +"fabricás, así que podés seguir usándolas. Todas las recetas necesitan por lo" +" menos un ingrediente. Estos SÍ son consumidos cuando fabricás algo." #: lang/json/help_from_json.py msgid "" @@ -127239,22 +125605,22 @@ msgid "" msgstr "" "Para fabricar objetos, apretá . Hay ocho categorías: Armas, " "Munición, Comida, Químicos, Electrónica, Armadura, Animales y Otros. Dentro " -"de cada categoría hay subcategorías. Mientras algunos objetos no necesitan " -"ninguna habilidad especial para fabricarlos, la mayoría te va a exigir algún" -" conocimiento. A veces un superviviente habilidoso puede deducir un receta " -"desde su sabiduría, pero lo más común es que necesites material de " -"referencia, como lo puede ser un libro. Leer ese material te da la " -"posibilidad de memorizar las recetas, o podés fabricar algo mientras usás el" -" libro como referencia: solo necesitás tenerlo a mano cuando empezás a " -"fabricar. Cada uso requiere cierta sabiduría:" +"de cada categoría hay subcategorías. Aunque algunos objetos no necesitan " +"ninguna habilidad especial para fabricarlos, la mayoría te exige algún " +"conocimiento. A veces un superviviente habilidoso puede deducir un receta " +"con su sabiduría, pero lo más común es que necesités material de referencia," +" como puede ser un libro. Leer ese material te da la posibilidad de " +"memorizar las recetas, o podés fabricar algo mientras usás el libro como " +"referencia: solo necesitás tenerlo a mano cuando empezás a fabricar. Cada " +"conocimiento es útil para diferentes casos:" #: lang/json/help_from_json.py msgid "" "-> Fabrication is the generic artisan skill, used for a wide variety of " "gear." msgstr "" -"-> La fabricación es una habilidad genérica artesanal, utilizada para una " -"gran variedad de equipamiento." +"-> Fabricación es una habilidad genérica artesanal, utilizada para una gran " +"variedad de equipamiento." #: lang/json/help_from_json.py msgid "" @@ -127262,21 +125628,20 @@ msgid "" "levels, you have an understanding of chemistry and can make chemical weapons" " and beneficial elixirs." msgstr "" -"-> Cocinar, en niveles bajos, se usa para hacer sabrosas recetas. En niveles" -" altos, poseés conocimiento químico y podés hacer armas químicas o elíxires " -"beneficiosos.." +"-> Cocinar, en los niveles bajos, se usa para hacer sabrosas recetas. En los" +" niveles altos ya poseés conocimiento químico y podés hacer armas químicas o" +" elíxires beneficiosos." #: lang/json/help_from_json.py msgid "-> Tailoring is used to create basic clothing, and armor later on." -msgstr "" -"-> La sastrería se utiliza para crear ropa común, o también armaduras." +msgstr "-> Sastrería se utiliza para crear ropa común o armaduras también." #: lang/json/help_from_json.py msgid "" "-> Electronics lets you make a wide variety of tools with intricate uses." msgstr "" -"-> La electrónica te permita hacer una gran variedad de herramientas de usos" -" complejos." +"-> Electrónica te permite hacer una gran variedad de herramientas de usos " +"complejos." #: lang/json/help_from_json.py msgid "" @@ -127305,11 +125670,11 @@ msgid "" "furniture for crafting is beneficial for the added comfort, thus making the " "process faster." msgstr "" -"Si vas a fabricar objetos muy grandes o pesados, o tandas de objetos lo " -"mejor es hacerlo en alguna mesa de trabajo. Podés usar una mesa normal, o " -"construir una de metal para que soporten pesos mayores. Usar una mesa de " -"trabajo y otro mueble para fabricar ayuda al proceso por la comodidad, y " -"entonces el proceso es más rápido." +"Si vas a fabricar objetos muy grandes o pesados o tandas de objetos, lo " +"mejor es hacerlo en alguna mesa de trabajo. Podés usar una mesa normal o " +"construir una de metal que soporte pesos mayores. Usar una mesa de trabajo u" +" otro mueble para fabricar ayuda el proceso por la comodidad, por lo que el " +"proceso se hacee más rápido." #: lang/json/help_from_json.py msgid "" @@ -127317,7 +125682,7 @@ msgid "" "wrapped in a special item representing craft in making. You may use it to " "resume crafting at any point." msgstr "" -"Si por alguna razón el proceso de fabricación es interrumpida, el progreso " +"Si por alguna razón el proceso de fabricación es interrumpido, el progreso " "es guardado en un objeto especial que representa la fabricación en progreso." " Podés usarlo para continuar con la fabricación en cualquier momento." @@ -127326,8 +125691,8 @@ msgid "" "Batch crafting in most cases means time saving, and your companions can also" " help if they know the ropes." msgstr "" -"Las fabricaciones en tandas significa, generalmente, menos tiempo empleado, " -"y tus compañeras también puede ayudar si tienen conocimiento al respecto." +"Fabricar en tandas significa, generalmente, menos tiempo empleado y que tus " +"compañeros también pueden ayudar si tienen el conocimiento adecuado." #: lang/json/help_from_json.py msgid ": Traps" @@ -127346,7 +125711,7 @@ msgstr "" "mantener a raya a los intrusos. Podés encontrar algunas trampas por ahí, la " "más notable es el plástico de burbuja (que cuando se pisa hace mucho ruido, " "lo que te despertará) y las trampas para oso (que hacen ruido Y daño, y " -"atrapa cualquier cosa que la pise). Otras necesitan ser fabricadas, lo que " +"atrapa cualquier cosa que la pise). Otras pueden ser fabricadas, lo que " "requiere la habilidad Trampas y tal vez Mecánica." #: lang/json/help_from_json.py @@ -127373,7 +125738,7 @@ msgstr "" "Para desarmar una trampa, examiná (apretando ) el espacio en " "donde está. Si podés desarmarla dependerá de tus habilidades en Trampas y " "Destreza. Si lo lográs, la trampa es desarmada y reemplazada por algunos de " -"sus elementos constitutivos. Sin embargo, si fallás, hay una posibilidad de " +"sus elementos constitutivos. Sin embargo, si fallás hay una posibilidad de " "que hagas accionar la trampa sufriendo las consecuencias." #: lang/json/help_from_json.py @@ -127392,8 +125757,8 @@ msgid "" "Some traps can be build via the construction menu. Pit traps are the most " "common example of such traps." msgstr "" -"Algunas trampas se pueden construir desde el menú de construcción. Las " -"trampas de pozos son el ejemplo más común de esas trampas." +"Algunas trampas se pueden hacer desde el menú de construcción. Los pozos son" +" el ejemplo más común de ese tipo de trampas." #: lang/json/help_from_json.py msgid ": Items overview" @@ -127409,9 +125774,9 @@ msgid "" msgstr "" "Existe una gran variedad de objetos disponibles para usar. Podés " "encontrarlos tirados en el suelo; para agarrarlos parate en el mismo espacio" -" y apretá Algunos objetos están adentro de contenedores, su " +" y apretá . Algunos objetos están adentro de contenedores, su " "dibujo es un { con el fondo azul. Apretando , y luego la " -"tecla de dirección, te permite examinar estos contenedores y agarrar lo que " +"tecla de dirección, podrás examinar estos contenedores y agarrar lo que " "tengan." #: lang/json/help_from_json.py @@ -127452,30 +125817,30 @@ msgid "" "let you assess the effectiveness of weapons, and your actual damage in play " "will vary depending on the situation." msgstr "" -"Casi todos los objetos pueden usarse como arma de cuerpo a cuerpo, aunque " -"algunos son mejores. Podés revisar los atributos del objeto que llevás " -"apretando para ir a tu inventario, y luego apretando la " -"letra del objeto. Hay 5 valores para el cuerpo a cuerpo: el bonus al acierto" -" (o penalidad), movimientos por ataque, y el daño golpeante, cortante y " +"Casi todos los objetos pueden usarse como arma de cuerpo a cuerpo, algunos " +"mejor que otros. Podés revisar los atributos del objeto que llevás apretando" +" para ir a tu inventario y luego apretando la letra del " +"objeto. Hay 5 valores para el cuerpo a cuerpo: el bonus al acierto (o " +"penalidad), movimientos por ataque, y los daños golpeante, cortante y " "punzante. El bonus al acierto incrementa la probabilidad de que un ataque " -"conecte con el monstruo y de que un ataque sea considerado crítico para " +"conecte con el enemigo y de que un ataque sea considerado crítico para " "causar más daño. Los movimientos por ataque es la cantidad de movimientos " -"que cuesta atacar con esa arma, y 100 movimientos suceden por segundo. El " -"daño golpeante puede aturdir a un monstruo, evitando que contraataque, pero " +"que cuesta atacar con esa arma (100 movimientos suceden por segundo). El " +"daño golpeante puede aturdir a un enemigo, evitando que contraataque, pero " "está limitado por la fuerza. El daño cortante usualmente es mejor que el " -"daño golpeante, pero muchos monstruos poseen armadura natural contra los " +"daño golpeante, pero muchos enemigos poseen armadura natural contra los " "cortes. El daño punzante usualmente penetra armaduras mejor que el cortante " "pero causa menos daño, especialmente si no tenés mucha habilidad en armas " -"punzantes, la armadura natural del monstruo reducirá el daño. Los valores " -"típicos de daño por segundo son para tu personaje y cuentan los movimientos " -"por ataque, la incomodidad, los golpes errados, la habilidad con el arma, " -"los golpes críticos y la armadura del oponente. El valor 'Mejor' es contra " -"un oponente sin armadura y sin capacidad de esquivar. El valor 'Vs. Ágil' es" -" contra un oponente sin armadura y con gran capacidad de esquivar. El valor " -"'Vs. Armadura' es contra un objetivo con resistencias mayores de 15 en " -"Golpeante y 20 en Cortante, pero sin capacidad de esquivar. Esos son los " -"valores típicos que te dejan calcular la efectividad de las armas, y tu daño" -" real en el juego variará dependiendo de la situación." +"punzantes, la armadura natural del enemigo reducirá el daño. Los valores " +"típicos de daño por segundo son calculados por los movimientos por ataque, " +"la incomodidad, los golpes errados, la habilidad con el arma, los golpes " +"críticos y la armadura del oponente. El valor 'Mejor' es contra un oponente " +"sin armadura y sin capacidad de esquivar. El valor 'Vs. Ágil' es contra un " +"oponente sin armadura y con gran capacidad de esquivar. El valor 'Vs. " +"Armadura' es contra un objetivo con resistencias mayores de 15 en Golpeante " +"y 20 en Cortante, pero sin capacidad de esquivar. Esos son los valores " +"típicos que te dejan calcular la efectividad de las armas, y tu daño real en" +" el juego variará dependiendo de la situación." #: lang/json/help_from_json.py msgid "" @@ -127489,8 +125854,8 @@ msgstr "" "Para empuñar un objeto como arma, apretá y luego la letra " "correspondiente. Si hacés lo mismo para un objeto que ya estás empuñando, lo" " dejarás de empuñar quedándote con las manos libres. Un arma empuñada no " -"influye en el volumen de tu carga, así que llevar cosas grandes en las manos" -" es una buena idea para trasladar objetos. Cuando dejás de empuñar un arma, " +"influye en el volumen de tu carga, así que es buena idea llevar cosas " +"grandes en las manos para trasladarlas. Cuando dejás de empuñar un arma, " "vuelve a tu inventario, o puede caer al suelo si no tenés lugar." #: lang/json/help_from_json.py @@ -127506,11 +125871,11 @@ msgstr "" "Para ponerte una ropa apretá y después la letra apropiada. La " "armadura reduce el daño y te ayuda a resistir cosas como el humo. Para " "sacarte una prenda apretá y después la letra apropiada. La " -"ropa y la armadura se usan por capas, y otorgan diferente cobertura, " -"protección y abrigo. Cada prenda tiene su propia incomodidad, y usar " +"ropa y la armadura se usan por capas y otorgan diferente cobertura, " +"protección y abrigo. Cada prenda tiene su propia incomodidad y usar " "demasiadas cosas en la misma capa puede obstaculizar considerablemente tus " "movimientos y otras habilidades, especialmente durante el combate. Podés ver" -" la ropa puesta y el orden apretando ." +" la ropa puesta y su orden apretando ." #: lang/json/help_from_json.py msgid "" @@ -127522,7 +125887,7 @@ msgid "" "layering penalty applies a minimum of 2 and a maximum of 10 encumbrance per " "article of clothing." msgstr "" -"La ropa se pone en uno de los cinco niveles de tu cuerpo: contra la piel, " +"La ropa se pone en uno de los cinco niveles existentes: contra la piel, " "normal, cintura, sobre o abrochado. Podés ponerte una ropa de cada nivel en " "una parte del cuerpo sin sufrir penalidades de incomodidad por tener mucha " "ropa. Cualquier prenda adicional a la primera que te pongas en un nivel, " @@ -127550,9 +125915,9 @@ msgid "" "filter or prioritize items. You can enter item names, or various advanced " "filter strings: {:}" msgstr "" -"En el menú de ver objetos cercanos (se abre con ) podés " +"En el menú para ver objetos cercanos (se abre con ) podés " "filtrar resultados o priorizar objetos. Podés ingresar el nombre de un " -"objeto, o filtros más avanzados: {:}" +"objeto o usar filtros más avanzados: {:}" #: lang/json/help_from_json.py msgid "" @@ -127564,7 +125929,7 @@ msgid "" msgstr "" "Algunos identificadores disponibles:\n" "\t c = categoría (libros, comida, etc) | {c:libros}\n" -"\t m = material (algodón, Kevlar, etc) | {m:hierro}\n" +"\t m = material (algodón, kevlar, etc) | {m:hierro}\n" "\t dgt = mayor daño que (0-5) | {dgt:2}\n" "\t dlt = menor daño que (0-5) | {dlt:1}" @@ -128088,10 +126453,10 @@ msgid "" msgstr "" "El arrastre (o resistencia) del aire va aumentando a medida que tu vehículo " "se hace más ancho o tiene más partes que incrementan la altura, como las " -"tablas, espacios laterales o torretas. También va aumentando a medida que el" -" vehículo tiene menor perfil aerodinámico, como tener pasajeros expuestos o " -"tablas en el frente del vehículo. El arrastre del aire influye mucho en la " -"velocidad del vehículo, sobre todo a altas velocidades." +"tablas, pasillos o torretas. También va aumentando a medida que el vehículo " +"tiene menor perfil aerodinámico, como tener pasajeros expuestos o tablas en " +"el frente del vehículo. El arrastre del aire influye mucho en la velocidad " +"del vehículo, sobre todo a altas velocidades." #: lang/json/help_from_json.py msgid "" @@ -128256,7 +126621,7 @@ msgstr "" "~ Líquido\n" "%% Comida\n" "! Medicamentos\n" -"odo esto se puede consumir apretando . Proveen una cierta cantidad de nutrición, sacian tu sed, pueden ser estimulantes o depresivos, y pueden mejorar tu moral. También pueden tener efectos más sutiles." +"Todo esto se puede consumir apretando . Proveen una cierta cantidad de nutrición, sacian tu sed, pueden ser estimulantes o calmantes, y pueden mejorar tu moral. También pueden tener efectos más sutiles." #: lang/json/help_from_json.py msgid "" @@ -128807,10 +127172,6 @@ msgstr "Escribir en un objeto" msgid "Cauterize a wound" msgstr "Cauterizar herida" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "Crear zombi esclavo" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "Comenzar cuenta regresiva" @@ -129135,10 +127496,6 @@ msgstr "Revisar información del clima" msgid "Reload" msgstr "Recargar" -#: lang/json/item_action_from_json.py -msgid "Store/unload ammo" -msgstr "Guardar/descargar munición" - #: lang/json/item_action_from_json.py msgid "Make some noise" msgstr "Hacer un poco de ruido" @@ -130139,7 +128496,7 @@ msgstr "Sacarse armadura seleccionada" #: lang/json/keybinding_from_json.py msgid "Display keybindings menu" -msgstr "" +msgstr "Mostrar atajos de teclado" #: lang/json/keybinding_from_json.py msgid "Reset filter" @@ -130361,6 +128718,18 @@ msgstr "Cambiar munición" msgid "Switch Firing Mode" msgstr "Cambiar Modo de Disparo" +#: lang/json/keybinding_from_json.py +msgid "Toggle turret lines" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "Activar/Desactivar Saltar a objetivo" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "Elección" @@ -130393,10 +128762,6 @@ msgstr "Mostrar más descripción" msgid "Travel to destination" msgstr "Viajar a destino" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "Activar/Desactivar Saltar a objetivo" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "Centrar en personaje" @@ -130613,6 +128978,10 @@ msgstr "Moverse mucho abajo" msgid "Toggle category selection mode" msgstr "Activar/Desactivar Modo de selección de categoría" +#: lang/json/keybinding_from_json.py +msgid "Toggle inventory view to show item categories" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Set item filter" msgstr "Establecer filtro de objetos" @@ -130838,7 +129207,6 @@ msgid "Disassemble items" msgstr "Desarmar objetos" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "Dormir" @@ -131044,11 +129412,11 @@ msgstr "Opciones" #: lang/json/keybinding_from_json.py msgid "Autopickup manager" -msgstr "Configuración de Autoagarrar" +msgstr "Configuración de autoagarrar" #: lang/json/keybinding_from_json.py msgid "Autonotes manager" -msgstr "" +msgstr "Configuración de autonotas" #: lang/json/keybinding_from_json.py msgid "Safe Mode manager" @@ -131062,7 +129430,7 @@ msgstr "Configuración de color" msgid "Active World Mods" msgstr "Mods Activos de Mundo" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "" @@ -131356,6 +129724,30 @@ msgstr "" msgid "Describe terrain" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "Volver" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" msgstr "Controlar varios electrónicos" @@ -131378,7 +129770,7 @@ msgstr "Tocar la bocina" #: lang/json/keybinding_from_json.py msgid "Toggle aisle lights" -msgstr "Luces de espacio lateral" +msgstr "Luces de pasillo" #: lang/json/keybinding_from_json.py msgid "Toggle alarm" @@ -131508,7 +129900,7 @@ msgstr "Establecer modos de torreta" msgid "Nothing" msgstr "Nada" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "" @@ -131517,7 +129909,7 @@ msgstr "" msgid "Crater" msgstr "" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "" @@ -131526,7 +129918,7 @@ msgstr "" msgid "College Kids" msgstr "" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "" @@ -131535,7 +129927,7 @@ msgstr "" msgid "Drug Deal" msgstr "" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "" @@ -131544,7 +129936,7 @@ msgstr "" msgid "Roadworks" msgstr "" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "" @@ -131553,7 +129945,7 @@ msgstr "" msgid "Road Mayhem" msgstr "" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "" @@ -131562,7 +129954,7 @@ msgstr "" msgid "Roadblock (Military)" msgstr "" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "" @@ -131571,7 +129963,7 @@ msgstr "" msgid "Roadblock (Bandits)" msgstr "" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "" @@ -131580,7 +129972,7 @@ msgstr "" msgid "Minefield" msgstr "" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "" @@ -131589,17 +129981,17 @@ msgstr "" msgid "Supply Drop" msgstr "" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "" -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" msgstr "Militar" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "" @@ -131608,7 +130000,7 @@ msgstr "" msgid "Helicopter Crash" msgstr "Helicóptero Estrellado" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "" @@ -131617,7 +130009,7 @@ msgstr "" msgid "Scientists" msgstr "" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "" @@ -131626,7 +130018,7 @@ msgstr "" msgid "Portal" msgstr "" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "" @@ -131635,7 +130027,7 @@ msgstr "" msgid "Portal In" msgstr "" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "" @@ -131644,7 +130036,7 @@ msgstr "" msgid "Spider Nest" msgstr "" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "" @@ -131653,22 +130045,21 @@ msgstr "" msgid "Wasp Nest" msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "" #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "Arañas" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "" @@ -131677,7 +130068,7 @@ msgstr "" msgid "Jabberwock" msgstr "" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "" @@ -131686,7 +130077,7 @@ msgstr "" msgid "Grove" msgstr "" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "" @@ -131695,7 +130086,7 @@ msgstr "" msgid "Shrubberry" msgstr "" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "" @@ -131704,7 +130095,7 @@ msgstr "" msgid "Clearcut" msgstr "" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." msgstr "" @@ -131713,7 +130104,7 @@ msgstr "" msgid "Pond" msgstr "" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "" @@ -131722,7 +130113,7 @@ msgstr "" msgid "Stand of trees" msgstr "" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "" @@ -131731,7 +130122,7 @@ msgstr "" msgid "Tall grass" msgstr "" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "" @@ -131740,7 +130131,7 @@ msgstr "" msgid "Derelict shed" msgstr "" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "" @@ -131749,7 +130140,7 @@ msgstr "" msgid "Clay Deposit" msgstr "" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "" @@ -131758,8 +130149,8 @@ msgstr "" msgid "Dead Vegetation" msgstr "" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "" @@ -131772,8 +130163,8 @@ msgstr "" msgid "Burned Ground" msgstr "" -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "" @@ -131786,7 +130177,7 @@ msgstr "" msgid "Marloss Pilgrimage" msgstr "" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "" @@ -131795,7 +130186,7 @@ msgstr "" msgid "Casings" msgstr "" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "" @@ -131804,7 +130195,7 @@ msgstr "" msgid "Looters" msgstr "" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "" @@ -131813,12 +130204,12 @@ msgstr "" msgid "Corpses" msgstr "" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "" @@ -131827,7 +130218,7 @@ msgstr "" msgid "Dermatik Nest" msgstr "" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "" @@ -131836,7 +130227,7 @@ msgstr "" msgid "Prison Bus" msgstr "" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "" @@ -131845,7 +130236,7 @@ msgstr "" msgid "Mass Grave" msgstr "Fosa Común" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "" @@ -131854,11 +130245,20 @@ msgstr "" msgid "Grave" msgstr "" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "" +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -131875,8 +130275,7 @@ msgid "High Security Consolidated Computerized Bank of the Treasury" msgstr "Banco Computarizado Consolidado de Hacienda de Alta Seguridad" #. ~ Computer access denied warning -#: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py src/mapgen.cpp -#: src/mapgen.cpp +#: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "" "ERROR! Access denied! Unauthorized access will be met with lethal force!" msgstr "" @@ -133175,16 +131574,6 @@ msgid "" "years.'" msgstr "" -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Hydroponics Entrance" -msgstr "" - -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Missile Control" -msgstr "Control de Misiles" - #: lang/json/martial_art_from_json.py msgid "No style" msgstr "Sin estilo" @@ -133378,6 +131767,19 @@ msgstr "" msgid "%s gets ready to brawl." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': +#. 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a time.\n" +"\n" +"+1 Block attempts." +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "Capoeira" @@ -134945,47 +133347,81 @@ msgid "Sojutsu" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Blade-work" -msgstr "C.R.I.T. de Manejo de Cuchilla" +msgid "CRIT Blade-work" +msgstr "" -#. ~ Description for martial art 'C.R.I.T Blade-work' +#. ~ Description for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"An offensive style that is centered around rapid slashes and prodding. Each" -" attack landed increases combat ability" +"An offensive style centered around rapid slashes and prodding. Each attack " +"landed increases combat ability but leaves you increasingly vunerable" msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Initiate blade-work." -msgstr "Iniciar manejo de cuchilla." +msgid "You prepare to whittle down your enemies." +msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py #, python-format msgid "%s initiates blade-work." msgstr "%s inicia el manejo de cuchilla." #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Intensity" +msgid "Unwavering Edge" +msgstr "" + +#. ~ Description of buff 'Unwavering Edge' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Gain minor Accuracy, Cutting and Stabbing Arpen per stack. Greatly reduces " +"dodge skill. 2 stacks max" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Ruthlessness" msgstr "" -#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Ruthlessness' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Additional DMG, and Arpen per stack. Max of 5 stacks" +msgid "" +"Additional Stabbing and Cutting damage per stack. Reduces dodge attempts. 4" +" stacks max." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Calculation" +msgid "Rending Strikes" msgstr "" -#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Rending Strikes' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"Increased accuracy along with minor cut and stab damage with piercing " -"capability." +"Additional Armor penetration per stack. Further reduces dodge attempts. 3 " +"stacks max." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Calculating Eyes" +msgstr "" + +#. ~ Description of buff 'Calculating Eyes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"You have been taught how to properly utilize small to medium-sized sharp " +"weaponry. Gain great Cutting and Stabbing Armor Penetration on top of minor " +"Accuracy" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Honed Movements" +msgstr "" + +#. ~ Description of buff 'Honed Movements' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Your skill and handling with sharp weaponry has improved. Gain extra Cutting" +" and Stabbing damage." msgstr "" #: lang/json/martial_art_from_json.py @@ -135012,65 +133448,278 @@ msgid "%s draws a line in the sand." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Buildup" +msgid "Bulwark" msgstr "" -#. ~ Description of buff 'C.R.I.T Buildup' for martial art 'C.R.I.T -#. Enforcement' +#. ~ Description of buff 'Bulwark' for martial art 'C.R.I.T Enforcement' #: lang/json/martial_art_from_json.py -msgid "+0.05 armor and other small bonuses per stack. Max of 10 stacks" +msgid "+0.5 armor and other small bonuses per stack. Max of 2 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Guard" +msgid "Unyielding Front" msgstr "" -#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement' +#. ~ Description of buff 'Unyielding Front' for martial art 'C.R.I.T +#. Enforcement' #: lang/json/martial_art_from_json.py -msgid "+1 armor. STR provides accuracy and minor bash arpen." +msgid "" +"Stand strong in the face of adversity. +1 armor. STR provides accuracy and " +"minor bash arpen." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T CQB" +msgid "CRIT CQB" msgstr "" -#. ~ Description for martial art 'C.R.I.T CQB' +#. ~ Description for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "A style centered around rapid strikes and piercing jabs. Each attack landed" -" adds a plethora of combat bonuses. 25 percent bash damage." +" adds a plethora of combat bonuses." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py -msgid "Initiate CQB." +msgid "You shift your weight for the oncoming fight." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py #, python-format -msgid "%s initiates CQB." +msgid "%s prepares for hand-to-hand battle." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Tenacity" +msgid "Fluid Tenacity" msgstr "" -#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Fluid Tenacity' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "+Atk Speed and other small bonuses based on DEX per stack. Max of 5 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Initiative" +msgid "Tactful Initiative" +msgstr "" + +#. ~ Description of buff 'Tactful Initiative' for martial art 'CRIT CQB' +#: lang/json/martial_art_from_json.py +msgid "" +"You have gained an advantage by always remaing mindful of common weaknesses." +" DEX provides dodge ability, accuracy and armor penetration." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "Viento Desértico" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming strikes." +" The complex spinning and slashing of the curved blade incorporated into " +"many Desert Wind maneuvers are in fact carefully honed gestures that evoke " +"the power of fire, if performed correctly and with the proper focus." +msgstr "" +"Los movimientos del Viento Desértico se focalizan en ser rápidos y con giros" +" y golpes ardientes. Los complejos giros y golpes de la cuchilla curva " +"incorporados en muchos movimientos del Viento Desértico son en realidad " +"gestos cuidadosamente perfeccionados para evocar el poder del fuego, si son " +"ejecutados correctamente y con el enfoque adecuado." + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" +msgstr "" + +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" +msgstr "Mente de Diamante" + +#. ~ Description for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so" +" that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must" +" inevitably." +msgstr "" +"La verdadera rapidez está en la mente, no en el cuerpo. Un estudiante de la " +"disciplina Mente de Diamante busca perfeccionar su percepción y disciplinar " +"sus pensamientos para poder actuar en fracciones tan finas de tiempo que los" +" demás no pueden percibirlos. El corolario de esta velocidad del pensamiento" +" y la acción es el concepto de mente en el campo de batalla. Un enemigo debe" +" vencerse en su mente." + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "" + +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art +#. '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': +#. 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "" + +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" msgstr "" -#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian +#. Swordsmanship'}' #: lang/json/martial_art_from_json.py +#, no-python-format msgid "" -"DEX provides dodge ability, accuracy and minor cut / stab damage with slight" -" piercing capability. 50 Percent Bash Damage." +"When you perfectly dodge an attack, you can attack rapidly for a short time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." msgstr "" #: lang/json/martial_art_from_json.py @@ -135148,7 +133797,8 @@ msgstr "completamente dañado/a" msgid "Resin" msgstr "" -#: lang/json/material_from_json.py src/veh_interact.cpp +#: lang/json/material_from_json.py lang/json/material_from_json.py +#: src/veh_interact.cpp msgid "dented" msgstr "golpeado/a" @@ -135369,7 +134019,7 @@ msgid "Junk Food" msgstr "Comida chatarra" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" +msgid "Foodplace's delicious foodstuff" msgstr "" #: lang/json/material_from_json.py @@ -135377,12 +134027,12 @@ msgid "Kevlar" msgstr "Kevlar" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" +msgid "Layered Kevlar" msgstr "" #: lang/json/material_from_json.py -msgid "scarred" -msgstr "con cicatrices" +msgid "Rigid Kevlar" +msgstr "" #: lang/json/material_from_json.py msgid "Lead" @@ -135510,7 +134160,7 @@ msgstr "Hongo" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "Agua" @@ -135582,6 +134232,10 @@ msgstr "" msgid "Graphene Weave" msgstr "" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "con cicatrices" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "" @@ -136023,6 +134677,9 @@ msgid "" "hospital or doctor's office. I just want to know who might still be out " "there." msgstr "" +"He perdido a muchos amigos... por favor, conseguime una lista de pacientes " +"del hospital regional o de la oficina del doctor. Solo quiero saber quién " +"puede estar por acá todavía." #: lang/json/mission_def_from_json.py msgid "" @@ -141424,49 +140081,6 @@ msgid "" " and stumbles." msgstr "" -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes you!" -msgstr "¡El/a %1$s te enceguece!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes at !" -msgstr "¡El/a %1$s enceguece a !" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash you, but fails to." -msgstr "El/a %1$s intenta enceguecerte, pero no lo consigue." - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash , but fails to." -msgstr "El/a %1$s intenta enceguecer a , pero no lo consigue." - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects you with a syringe!" -msgstr "¡El/a %1$s te clava una jeringa!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects with a syringe!" -msgstr "¡El/a %1$s le clava una jeringa a !" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "¡El/a %1$s intenta clavarte algo, pero no logra penetrar tu armadura!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "" -"The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "" -"¡El/a %1$s intenta clavarle algo a , pero no logra penetrar su " -"armadura!" - #: lang/json/morale_type_from_json.py #, no-python-format msgid "Enjoyed %s" @@ -141569,6 +140183,10 @@ msgstr "No te gustó %s" msgid "Ate Human Flesh" msgstr "Comer Carne Humana" +#: lang/json/morale_type_from_json.py +msgid "Ate Demihuman Flesh" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Ate Meat" msgstr "Comer Carne" @@ -141766,6 +140384,111 @@ msgstr "Fracaso" msgid "Debug Morale" msgstr "Moral Debug" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp src/weather.cpp +msgid "W" +msgstr "O" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "Co" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "Empezás a correr." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "" + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "Estás muy cansado para correr." + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "" + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "c" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "Ag" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "" + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp msgid "Any" @@ -143330,7 +142053,6 @@ msgid "Good Hearing" msgstr "Buen Oído" #. ~ Description for {'str': 'Good Hearing'} -#. ~ Description for Good Hearing #: lang/json/mutation_from_json.py msgid "" "Your hearing is better than average, and you can hear distant sounds more " @@ -143381,7 +142103,6 @@ msgid "Indefatigable" msgstr "Incansable" #. ~ Description for {'str': 'Indefatigable'} -#. ~ Description for Indefatigable #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -143432,7 +142153,6 @@ msgid "Fast Healer" msgstr "Sanador/a Veloz" #. ~ Description for {'str': 'Fast Healer'} -#. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" "You heal faster when sleeping and will even recover a small amount of HP " @@ -143484,7 +142204,6 @@ msgid "Pain Resistant" msgstr "Resistente al Dolor" #. ~ Description for {'str': 'Pain Resistant'} -#. ~ Description for Pain Resistant #: lang/json/mutation_from_json.py msgid "You have a high tolerance for pain." msgstr "Tenés una gran tolerancia al dolor." @@ -143494,7 +142213,6 @@ msgid "Night Vision" msgstr "Visión Nocturna" #. ~ Description for {'str': 'Night Vision'} -#. ~ Description for Night Vision #: lang/json/mutation_from_json.py msgid "" "You possess natural night vision, and can see further in the dark than most." @@ -143593,10 +142311,9 @@ msgstr "Mula de Carga" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." msgstr "" -"¡Siempre encontrás un lugarcito para tus cosas! Podés cargar un 40% más de " -"volumen." #: lang/json/mutation_from_json.py msgid "Strong Back" @@ -143635,9 +142352,9 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale" -" bonus." +"you can't even think about eating without a table or not taking your time. " +"Eating without it frustrates you, but eating like a civilized person gives " +"you a bigger morale bonus." msgstr "" #: lang/json/mutation_from_json.py @@ -143673,7 +142390,6 @@ msgid "Deft" msgstr "Hábil" #. ~ Description for {'str': 'Deft'} -#. ~ Description for Deft #: lang/json/mutation_from_json.py msgid "" "While you're not any better at melee combat, you are better at recovering " @@ -143758,7 +142474,6 @@ msgid "Animal Empathy" msgstr "Empatía Animal" #. ~ Description for {'str': 'Animal Empathy'} -#. ~ Description for Animal Empathy #: lang/json/mutation_from_json.py msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" @@ -143774,7 +142489,6 @@ msgid "Animal Kinship" msgstr "" #. ~ Description for {'str': 'Animal Kinship'} -#. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py msgid "" "Something about your presence is calming to animals, and they will treat you" @@ -143787,7 +142501,6 @@ msgid "Terrifying" msgstr "Aterrador/a" #. ~ Description for {'str': 'Terrifying'} -#. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " @@ -143882,7 +142595,6 @@ msgid "Light Step" msgstr "Paso Liviano" #. ~ Description for {'str': 'Light Step'} -#. ~ Description for Light Step #: lang/json/mutation_from_json.py msgid "" "You make less noise while walking. You're also less likely to set off " @@ -143939,7 +142651,6 @@ msgid "Cannibal" msgstr "Caníbal" #. ~ Description for {'str': 'Cannibal'} -#. ~ Description for Cannibal #: lang/json/mutation_from_json.py msgid "" "For your whole life you've been forbidden from indulging in your peculiar " @@ -143950,6 +142661,19 @@ msgstr "" "el mundo se terminó, ya nadie podrá venir a decirte que no te podés comer " "una persona." +#: lang/json/mutation_from_json.py +msgid "Strict Humanitarian" +msgstr "Humanitario Estricto" + +#. ~ Description for {'str': 'Strict Humanitarian'} +#: lang/json/mutation_from_json.py +msgid "" +"You'd never eat people, but these things that look vaguely human from " +"elsewhere are definitely not people." +msgstr "" +"Jamás comiste personas, pero estas cosas que se asemejan vagamente a un " +"humano, definitivamente no son personas." + #: lang/json/mutation_from_json.py msgid "Psychopath" msgstr "Psicópata" @@ -143965,7 +142689,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Killer Drive" -msgstr "" +msgstr "Impulso Asesino" #. ~ Description for {'str': 'Killer Drive'} #: lang/json/mutation_from_json.py @@ -143973,6 +142697,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 "" +"Obtenés placer por matar cosas. Ponerle un fin a la vida parece encender " +"alguna satisfacción y emoción oscuras, y lo deseás en todo momento." #: lang/json/mutation_from_json.py msgid "Martial Arts Training" @@ -143999,6 +142725,9 @@ msgid "" "your choice of Capoeira, Krav Maga, Muay Thai, Ninjutsu, Wing Chun, or Zui " "Quan." msgstr "" +"Has recibido clases de defensa personal en un gimnasio de tu barrio. Empezás" +" con uno de estos estilos a elección: Capoeira, Krav Maga, Muay Thai, " +"Ninjutsu, Wing Chun o Zui Quan." #: lang/json/mutation_from_json.py msgid "Shaolin Adept" @@ -144024,10 +142753,13 @@ msgid "" "Eskrima, Fencing, Fior Di Battaglia, Medieval Swordsmanship, Niten Ichi-Ryu," " Pentjak Silat, or Sōjutsu." msgstr "" +"Has practicado luchar con armas. Empezás eligiendo una de estas prácticas: " +"Eskrima, Esgrima, Fior Di Battaglia, Espadeo Medieval, Niten Ichi-Ryu, " +"Pencak Silat o Sōjutsu." #: lang/json/mutation_from_json.py msgid "Competitive Fencer" -msgstr "" +msgstr "Esgrimista de Competición" #. ~ Description for {'str': 'Competitive Fencer'} #: lang/json/mutation_from_json.py @@ -144036,13 +142768,15 @@ msgid "" "épée. You competed nationally and dabbled with some of the historical " "fencing weapons afforded by HEMA's popularity." msgstr "" +"Eras un esgrimista ávido, comenzaste con el florete, pasaste por el sable y " +"llegaste al épée. Participaste en competiciones nacionales e incursionaste " +"en armas históricas de esgrima gracias a la popularidad de HEMA." #: lang/json/mutation_from_json.py msgid "Weak Scent" msgstr "Poco Olor" #. ~ Description for {'str': 'Weak Scent'} -#. ~ Description for Weak Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is quite weak. Animals that track your scent will do so with " @@ -144066,7 +142800,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Weight: XS" -msgstr "" +msgstr "Peso: XS" #. ~ Description for {'str': 'Weight: XS'} #: lang/json/mutation_from_json.py @@ -144075,10 +142809,13 @@ msgid "" " skeletal figure is now an extra burden, when food is not at hand's reach. " "You need to gain weight or die trying." msgstr "" +"Perdiste muchísimo peso antes del Cataclismo. Cualquiera sea la razón, tu " +"cuerpo esquelético ahora es un problema extra, cuando no hay comida al " +"alcance. Vas a tener que ganar peso o morir intentándolo." #: lang/json/mutation_from_json.py msgid "Weight: XXXL" -msgstr "" +msgstr "Peso: XXXL" #. ~ Description for {'str': 'Weight: XXXL'} #: lang/json/mutation_from_json.py @@ -144087,6 +142824,10 @@ msgid "" "your bloated figure is now an extra burden, when mobility is a key to " "survival. You need to go on a diet or die trying." msgstr "" +"Ganaste muchísimo peso antes del Cataclismo. Cualquiera sea la razón, tu " +"cuerpo hinchado ahora es un problema extra, cuando la movilidad es clave " +"para la supervivencia. Vas a tener que empezar la dieta o morir " +"intentándolo." #: lang/json/mutation_from_json.py msgid "Pretty" @@ -144098,6 +142839,8 @@ msgid "" "You are a sight to behold. People who care about such things will react " "more kindly to you." msgstr "" +"Sos una belleza admirable. Las personas que se interesen en las apariencias," +" serán más amables con vos." #: lang/json/mutation_from_json.py msgid "Bad Knees" @@ -144265,11 +143008,9 @@ msgstr "Desorganizado/a" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." msgstr "" -"Sos terrible para organizar y guardar tus posesiones. Podés cargar un 40% " -"menos de volumen." #: lang/json/mutation_from_json.py msgid "Illiterate" @@ -144297,6 +143038,7 @@ msgid "" "You're not able to hear anything, and as such you're not able to talk to " "NPCs." msgstr "" +"No sos capaz de escuchar nada, y por lo tanto no vas a poder hablar con PNJ." #: lang/json/mutation_from_json.py msgid "Slow Learner" @@ -144318,7 +143060,6 @@ msgid "Insomniac" msgstr "Insomne" #. ~ Description for {'str': 'Insomniac'} -#. ~ Description for Insomniac #: lang/json/mutation_from_json.py msgid "" "You have a hard time falling asleep, even under the best circumstances!" @@ -144336,6 +143077,8 @@ msgid "" "You have problems with eating meat. It's possible for you to eat it, but " "you will suffer morale penalties and obtain less nutrition from it." msgstr "" +"Tenés problemas para comer carne. La podés comer igual, pero vas a sufrir " +"penalidades a tu moral y recibir menos nutrición de ella." #: lang/json/mutation_from_json.py msgid "Thin-Skinned" @@ -144347,6 +143090,8 @@ msgid "" "Your skin is fragile. Cutting and bash damage is slightly increased for " "you." msgstr "" +"Tu piel es frágil. El daño cortante y golpeante que sufrís se incrementa " +"levemente." #: lang/json/mutation_from_json.py msgid "Hates Vegetables" @@ -144359,6 +143104,8 @@ msgid "" "them, but you will suffer morale penalties and obtain less nutrition from " "them." msgstr "" +"Tenés problemas para comer verduras. Las podés comer igual, pero vas a " +"sufrir penalidades a tu moral y recibir menos nutrición de ellas." #: lang/json/mutation_from_json.py msgid "Hates Books" @@ -144383,6 +143130,8 @@ msgid "" "You despise eating fruits. It's possible for you to eat them, but you will " "suffer morale penalties and obtain less nutrition from them." msgstr "" +"Despreciás comer frutas. Las podés comer, pero vas a sufrir penalidades a tu" +" moral y recibir menos nutrición de ellas." #. ~ Description for {'str': 'Lactose Intolerance'} #: lang/json/mutation_from_json.py @@ -144391,10 +143140,13 @@ msgid "" "products. It's possible for you to eat them, but you will suffer morale " "penalties and obtain less nutrition from them." msgstr "" +"Vos, como el 75 por ciento de la humanidad, no tolerás la leche o los " +"productos lácteos. Podés consumirlos, pero vas a sufrir penalidades a tu " +"moral y recibir menos nutrición de ella." #: lang/json/mutation_from_json.py msgid "Junkfood Intolerance" -msgstr "Intolerante a Com.Chatarra" +msgstr "Intolerante a la Comida Chatarra" #. ~ Description for {'str': 'Junkfood Intolerance'} #: lang/json/mutation_from_json.py @@ -144403,6 +143155,9 @@ msgid "" "possible for you to eat them, but you will suffer morale penalties and " "obtain less nutrition from them." msgstr "" +"Algo de esa comida excesivamente procesada, no se lleva bien con vos. Podés " +"comerla igual, pero vas a sufrir penalidades a tu moral y recibir menos " +"nutrición de ella." #: lang/json/mutation_from_json.py msgid "Grain Intolerance" @@ -144415,6 +143170,9 @@ msgid "" "such as wheat or oats. It's possible for you to eat them, but you will " "suffer morale penalties and obtain less nutrition from them." msgstr "" +"Tenés una rara alergia que te impide comer la mayoría de los tipos de " +"granos, como el trigo y la avena. Podés consumirlos igual, pero vas a sufrir" +" penalidades a tu moral y recibir menos nutrición de ellos." #: lang/json/mutation_from_json.py msgid "Sweet Tooth" @@ -144496,7 +143254,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Trigger Happy" -msgstr "Gatillo Fácil" +msgstr "" #. ~ Description for {'str': 'Trigger Happy'} #: lang/json/mutation_from_json.py @@ -144509,7 +143267,6 @@ msgid "Strong Scent" msgstr "Mucho Olor" #. ~ Description for {'str': 'Strong Scent'} -#. ~ Description for Strong Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is particularly strong. It's not offensive to humans, but " @@ -144651,10 +143408,6 @@ msgstr "" "Aprendiz Rápido resulta en un aprendizaje más lento para todas las " "habilidades." -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "Pacifista" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -144692,7 +143445,6 @@ msgid "Weak Stomach" msgstr "Estómago Flojo" #. ~ Description for {'str': 'Weak Stomach'} -#. ~ Description for Weak Stomach #: lang/json/mutation_from_json.py msgid "You are more likely to throw up from food poisoning, alcohol, etc." msgstr "" @@ -144733,13 +143485,14 @@ msgid "" "You're not much to look at. People who care about such things will react " "poorly to you." msgstr "" +"No sos algo que dan ganas de mirar. Las personas que se interesen en las " +"apariencias te van a tratar con desprecio." #: lang/json/mutation_from_json.py msgid "Albino" msgstr "Albino/a" #. ~ Description for {'str': 'Albino'} -#. ~ Description for Albino #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " @@ -144755,7 +143508,6 @@ msgid "Flimsy" msgstr "Endeble" #. ~ Description for {'str': 'Flimsy'} -#. ~ Description for Flimsy #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -144822,7 +143574,6 @@ msgid "High Night Vision" msgstr "Visión Nocturna Aguda" #. ~ Description for {'str': 'High Night Vision'} -#. ~ Description for High Night Vision #: lang/json/mutation_from_json.py msgid "" "You can see incredibly well in the dark! Activate to toggle NV-visible " @@ -145021,7 +143772,6 @@ msgid "Regeneration" msgstr "Regeneración" #. ~ Description for {'str': 'Regeneration'} -#. ~ Description for Regeneration #: lang/json/mutation_from_json.py msgid "Your flesh regenerates from wounds incredibly quickly." msgstr "Tu carne se regenera de sus heridas increíblemente rápido." @@ -145200,7 +143950,7 @@ msgid "" "A set of flexible green scales has grown to cover your body, acting as " "natural armor. Somewhat reduces wet effects." msgstr "" -"Una colección de escamas verdes y flexibles te han crecido y cubren tu " +"Es una colección de escamas verdes y flexibles te han crecido y cubren tu " "cuerpo. Funcionan como una armadura natural. De alguna manera, disminuyen " "los efectos de estar mojado." @@ -145215,7 +143965,7 @@ msgid "" "armor. While difficult to penetrate, it also limits your flexibility, " "resulting in a -2 penalty to Dexterity. Greatly reduces wet effects." msgstr "" -"Una colección de escamas verdes y resistentes te han crecido y cubren tu " +"Es una colección de escamas verdes y resistentes te han crecido y cubren tu " "cuerpo. Funcionan como una armadura natural. Aunque es difícil de penetrar, " "también limita tu flexibilidad, lo que te da una penalidad de -2 a tu " "destreza. Reduce mucho los efectos de estar mojado." @@ -145231,8 +143981,8 @@ msgid "" " act as weak natural armor, improve your ability to swim, and make you " "difficult to grab. Mostly reduces wet effects." msgstr "" -"Una colección de escamas muy flexibles y lisas te han crecido y cubren tu " -"cuerpo. Estas actúan como una débil armadura natural, mejoran tu habilidad " +"Es una colección de escamas muy flexibles y lisas te han crecido y cubren tu" +" cuerpo. Estas actúan como una débil armadura natural, mejoran tu habilidad " "para nadar, y hacen que sea más difícil agarrarte. Reduce mucho los efectos " "de estar mojado." @@ -145891,7 +144641,6 @@ msgid "Mammal Pheromones" msgstr "Feromonas de Mamífero" #. ~ Description for {'str': 'Mammal Pheromones'} -#. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" "Your body produces low-level pheromones which put mammals at ease. They " @@ -145976,7 +144725,6 @@ msgid "Venomous" msgstr "Venenoso" #. ~ Description for {'str': 'Venomous'} -#. ~ Description for Venomous #: lang/json/mutation_from_json.py msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " @@ -148053,7 +146801,6 @@ msgid "Solar Sensitivity" msgstr "Sensibilidad Solar" #. ~ Description for {'str': 'Solar Sensitivity'} -#. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " @@ -149007,7 +147754,8 @@ msgid "Well, maybe you'll just have to make your own world wide web." msgstr "" "Bueno, tal vez tengas que hacer tu propia telaraña informática mundial." -#: lang/json/mutation_from_json.py lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/mutation_from_json.py +#: lang/json/npc_from_json.py msgid "Survivor" msgstr "Superviviente" @@ -149284,8 +148032,8 @@ msgstr "" #. ~ Description for Helicopter Pilot #: lang/json/mutation_from_json.py msgid "" -"You are a trained pilot, you wonder if you will ever have the chance to fly " -"again." +"You are a trained helicopter pilot. This makes you one of the few living " +"people who can operate a helicopter after the Cataclysm." msgstr "" #: lang/json/mutation_from_json.py @@ -149394,11 +148142,10 @@ msgstr "Skater" #. ~ Description for {'str': 'Skater'} #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the Cataclysm," -" and are better at staying on your feet when checked or blocked." +"You are skilled in maneuvering on skates. You suffer less dodging penalties" +" and are less likely to fall down if hit in melee combat while you're " +"wearing rollerskates or rollerblades." msgstr "" -"Pasaste mucho tiempo maniobrando sobre skates antes del Cataclismo, y sos " -"bueno para mantenerlos cuando frenan o bloquean." #: lang/json/mutation_from_json.py msgid "Martial Artist" @@ -149642,10 +148389,10 @@ msgid "Mind the bugs, would you kindly?" msgstr "Preocupate por los bugs, ¿serías tan amable?" #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" -msgstr "Debug de Capacidad de Carga" +msgid "Debug Very Strong Back" +msgstr "" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "Te permite cargar 15 bugs el valor de tu peso en tus mandíbulas." @@ -149775,10 +148522,21 @@ msgid "" " off-limits to you, even if your life depended on it." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "Historia de Superviviente" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -150855,14 +149613,14 @@ msgid "Your muscles are quite slow to move. You move 25% slower." msgstr "" #: lang/json/mutation_from_json.py -msgid "C.R.I.T Melee Training" +msgid "CRIT Melee Training" msgstr "" -#. ~ Description for C.R.I.T Melee Training +#. ~ Description for CRIT Melee Training #: lang/json/mutation_from_json.py msgid "" -"You have received defensive training. For every hit you land, gain various " -"miniscule combat bonuses that scale off of your stats." +"You have received CQB training. For every hit you land, gain themed combat " +"bonuses." msgstr "" #: lang/json/mutation_from_json.py @@ -150908,21 +149666,6 @@ msgid "" "Emerge from the grave of the old world, and become the night once again." msgstr "" -#. ~ Description for Pretty -#: lang/json/mutation_from_json.py -msgid "" -"You are a sight to behold. NPCs who care about such things will react more " -"kindly to you." -msgstr "" -"Sos una belleza admirable. Los PNJ que se interesen en las apariencias, " -"serán más amables con vos." - -#. ~ Description for Thin-Skinned -#: lang/json/mutation_from_json.py -msgid "Your skin is fragile. Cutting damage is slightly increased for you." -msgstr "" -"Tu piel es frágil. El daño cortante que sufrís se incrementa levemente." - #: lang/json/mutation_from_json.py msgid "Forest Guardian" msgstr "" @@ -150966,6 +149709,40 @@ msgstr "" msgid "%1$s tears into %2$s with their blades" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Spurs" +msgstr "" + +#. ~ Description for Spurs +#: lang/json/mutation_from_json.py +msgid "" +"Spurs of bone have erupted all across your arms. A thick, biological " +"secretion oozes out of them promising extra harm to enemies." +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "You ravage %s with your arms" +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "%1$s ravages %2$s with their arm spurs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Persistent Body" +msgstr "" + +#. ~ Description for Persistent Body +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "" +"As you move, the world seems to breath life and energy into your limbs. You " +"simply rarely tire less readily than others. Your maximum stamina is 50% " +"higher than usual." +msgstr "" + #: lang/json/mutation_from_json.py msgid "RP: Combatant" msgstr "" @@ -151032,6 +149809,40 @@ msgstr "" "estás bajo la influencia del alcohol, tu habilidad de cuerpo a cuerpo se " "incrementa considerablemente, especialmente en el combate desarmado." +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "" @@ -151212,6 +150023,38 @@ msgstr "" msgid "Mana Vortex" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "" @@ -151234,11 +150077,6 @@ msgstr "" msgid "Greater Mana Efficiency" msgstr "" -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" msgstr "" @@ -151288,11 +150126,6 @@ msgstr "" msgid "Greater Mana Regeneration" msgstr "" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "" @@ -151346,13 +150179,6 @@ msgstr "" msgid "Greater Mana Sensitivity" msgstr "" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to" -" tap into more of your reserves." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "" @@ -151565,7 +150391,7 @@ msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Cyborg" -msgstr "" +msgstr "Ciborg" #: lang/json/npc_class_from_json.py msgid "Zzzzzt… I… I'm a Cy… BEEEEEP… borg." @@ -151757,26 +150583,6 @@ msgstr "" msgid "I've been studying the mi-go for years…" msgstr "" -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive" -" it's twilight." -msgstr "" - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "Lagarto Mutante" @@ -151987,6 +150793,26 @@ msgid "" "and I don't plan to keep being one." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive" +" it's twilight." +msgstr "" + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "" @@ -152721,18 +151547,10 @@ msgstr "concesionaria" msgid "shipwreck" msgstr "barco naufragado" -#: lang/json/overmap_terrain_from_json.py -msgid "razorclaw nest" -msgstr "nido de garrafilada" - #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" msgstr "torre de radio" -#: lang/json/overmap_terrain_from_json.py -msgid "radio tower roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "looted building" msgstr "edificio saqueado" @@ -152745,10 +151563,6 @@ msgstr "área de prueba de rampa" msgid "campsite" msgstr "camping" -#: lang/json/overmap_terrain_from_json.py -msgid "campsites" -msgstr "campings" - #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" msgstr "cabaña sin terminar" @@ -152962,25 +151776,29 @@ msgid "generic_brushland" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "sugar house" -msgstr "casa de azúcar" +msgid "rural road" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "sugar house roof" +msgid "dirt road" +msgstr "calle de tierra" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural building" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "rural road" +msgid "sugar house" +msgstr "casa de azúcar" + +#: lang/json/overmap_terrain_from_json.py +msgid "sugar house roof" msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "farm field" msgstr "sembradío" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house" -msgstr "casa de granja" - #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" msgstr "" @@ -152997,6 +151815,10 @@ msgstr "" msgid "farm" msgstr "granja" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house" +msgstr "casa de granja" + #: lang/json/overmap_terrain_from_json.py msgid "grape farm" msgstr "" @@ -153089,10 +151911,6 @@ msgstr "" msgid "chicken coop roof" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" msgstr "cementerio pequeño" @@ -153109,10 +151927,6 @@ msgstr "" msgid "tree farm" msgstr "granja de árboles" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "calle de tierra" - #: lang/json/overmap_terrain_from_json.py msgid "silos" msgstr "" @@ -153133,6 +151947,10 @@ msgstr "" msgid "farm road" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "barn roof" msgstr "" @@ -153245,6 +152063,10 @@ msgstr "negocio de electrónica" msgid "electronics store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "negocio de artículos deportivos" @@ -153277,10 +152099,6 @@ msgstr "" msgid "clothing store" msgstr "negocio de ropa" -#: lang/json/overmap_terrain_from_json.py -msgid "clothing store roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "bookstore" msgstr "librería" @@ -153289,6 +152107,10 @@ msgstr "librería" msgid "bookstore roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "cafetería" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "restaurant" @@ -153417,10 +152239,6 @@ msgstr "hotel" msgid "hotel entrance" msgstr "entrada del hotel" -#: lang/json/overmap_terrain_from_json.py -msgid "hotel tower" -msgstr "hotel grande" - #: lang/json/overmap_terrain_from_json.py msgid "hotel basement" msgstr "sótano del hotel" @@ -153445,10 +152263,6 @@ msgstr "negocio grande de mejoras del hogar" msgid "garage - gas station" msgstr "garage - estación de servicio" -#: lang/json/overmap_terrain_from_json.py -msgid "garage - gas station roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "dispensary" msgstr "dispensario" @@ -153618,11 +152432,11 @@ msgid "craft shop" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "craft shop roof" +msgid "craft shop upper roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "craft shop upper roof" +msgid "craft shop roof" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -153733,18 +152547,30 @@ msgstr "" msgid "hunting supply store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "negocio de camping" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "road" -msgstr "calle" +msgid "gaming store" +msgstr "local de videojuegos" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "centro de refugiados" +#: lang/json/overmap_terrain_from_json.py +msgid "road" +msgstr "calle" + #: lang/json/overmap_terrain_from_json.py msgid "camp survey" msgstr "planeamiento para campamento" @@ -153997,6 +152823,22 @@ msgstr "" msgid "steel mill depot" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "industria ligera" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "science lab" msgstr "laboratorio" @@ -154077,13 +152919,17 @@ msgstr "terreno" msgid "mall - entrance" msgstr "shopping - entrada" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - food court" +msgstr "shopping - patio de comidas" + #: lang/json/overmap_terrain_from_json.py msgid "mall - food court roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "mall - food court" -msgstr "shopping - patio de comidas" +msgid "mall - subway station" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mansion" @@ -154194,10 +153040,6 @@ msgstr "comisaría" msgid "church" msgstr "iglesia" -#: lang/json/overmap_terrain_from_json.py -msgid "sewer" -msgstr "cloacas" - #: lang/json/overmap_terrain_from_json.py msgid "sewer?" msgstr "¿cloacas?" @@ -154206,6 +153048,14 @@ msgstr "¿cloacas?" msgid "basement" msgstr "sótano" +#: lang/json/overmap_terrain_from_json.py +msgid "sewer" +msgstr "cloacas" + +#: lang/json/overmap_terrain_from_json.py +msgid "Vault - Passage" +msgstr "Bóveda - Pasaje" + #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" msgstr "Bóveda - Cuartel" @@ -154238,10 +153088,6 @@ msgstr "Bóveda - Entrada" msgid "Vault - Utilities" msgstr "Bóveda - Instalaciones" -#: lang/json/overmap_terrain_from_json.py -msgid "Vault - Passage" -msgstr "Bóveda - Pasaje" - #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" msgstr "Bóveda - Comunicaciones" @@ -154688,16 +153534,16 @@ msgid "marina parking" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" -msgstr "dúplex" +msgid "house roof" +msgstr "techo de casa" #: lang/json/overmap_terrain_from_json.py -msgid "apartment tower" -msgstr "edificio de departamentos" +msgid "dense urban" +msgstr "urbanización densa" #: lang/json/overmap_terrain_from_json.py -msgid "homeless camp" -msgstr "campamento para vagabundos" +msgid "apartment tower" +msgstr "edificio de departamentos" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" @@ -154707,6 +153553,10 @@ msgstr "camping para casas rodantes" msgid "trailer park roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless camp" +msgstr "campamento para vagabundos" + #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" msgstr "lote residencial vacío" @@ -154715,10 +153565,6 @@ msgstr "lote residencial vacío" msgid "derelict property" msgstr "propiedad abandonada" -#: lang/json/overmap_terrain_from_json.py -msgid "dense urban" -msgstr "urbanización densa" - #: lang/json/overmap_terrain_from_json.py msgid "river" msgstr "río" @@ -154751,26 +153597,14 @@ msgstr "puente" msgid "roadstop" msgstr "restobar de ruta" -#: lang/json/overmap_terrain_from_json.py -msgid "roadstop roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "public washroom" msgstr "baño público" -#: lang/json/overmap_terrain_from_json.py -msgid "public washroom roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" msgstr "carrito de comida de ruta" -#: lang/json/overmap_terrain_from_json.py -msgid "roadside foodcart roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "vía" @@ -154948,11 +153782,11 @@ msgid "small dump" msgstr "vertedero pequeño" #: lang/json/overmap_terrain_from_json.py -msgid "lake shore" +msgid "lake" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "lake" +msgid "lake shore" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -155004,36 +153838,12 @@ msgid "county mortuary roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "reserva de vida salvaje" - -#: lang/json/overmap_terrain_from_json.py -msgid "diner" -msgstr "cafetería" - -#: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "departamento" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" -msgstr "concesionaria" - -#: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "negocio de camping" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "local de videojuegos" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "aeropuerto" +msgid "Dinosaur Exhibit" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "light industry" -msgstr "industria ligera" +msgid "wildlife field office" +msgstr "reserva de vida salvaje" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -155047,6 +153857,10 @@ msgstr "búnker" msgid "scavenger bunker" msgstr "búnker de cartonero" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "" @@ -155060,7 +153874,6 @@ msgid "used bookstore" msgstr "" #: lang/json/overmap_terrain_from_json.py -#: lang/json/start_location_from_json.py msgid "Swamp" msgstr "Pantano" @@ -155092,10 +153905,6 @@ msgstr "verja" msgid "house basement" msgstr "sótano de casa" -#: lang/json/overmap_terrain_from_json.py -msgid "house roof" -msgstr "techo de casa" - #: lang/json/overmap_terrain_from_json.py msgid "attached garage" msgstr "garage adjunto" @@ -155204,10 +154013,6 @@ msgstr "laboratorio de microbiología" msgid "rocketry lab" msgstr "laboratorio de ingeniería espacial" -#: lang/json/overmap_terrain_from_json.py -msgid "robot dispatch center" -msgstr "centro de despliegue de robots" - #: lang/json/overmap_terrain_from_json.py msgid "school" msgstr "escuela" @@ -155236,6 +154041,14 @@ msgstr "taller mecánico" msgid "megastore entrance" msgstr "entrada de hipermercado" +#: lang/json/overmap_terrain_from_json.py +msgid "hotel tower" +msgstr "hotel grande" + +#: lang/json/overmap_terrain_from_json.py +msgid "razorclaw nest" +msgstr "nido de garrafilada" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "tratamiento de aguas cloacales" @@ -155252,6 +154065,10 @@ msgstr "interfaz" msgid "electric substation" msgstr "estación eléctrica" +#: lang/json/overmap_terrain_from_json.py +msgid "campsites" +msgstr "campings" + #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" msgstr "cementerio religioso" @@ -155289,14 +154106,10 @@ msgstr "Vagabundo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Las circunstancias te dejaron vagando, sin casa, sin familia, sin amigos. " -"Pero el mundo que conocías ya no existe, y tal vez tu experiencia " -"dependiendo solo de vos mismo para sobrevivir te servirán en este nuevo " -"mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155307,14 +154120,10 @@ msgstr "Vagabunda" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Las circunstancias te dejaron vagando, sin casa, sin familia, sin amigos. " -"Pero el mundo que conocías ya no existe, y tal vez tu experiencia " -"dependiendo solo de vos mismo para sobrevivir te servirán en este nuevo " -"mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155325,13 +154134,10 @@ msgstr "Survivalista Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"Sabías que estaba llegando el fin. Te mejoraste a vos mismo con algunos " -"biónicos básicos, y recibiste entrenamiento de supervivencia. Ahora que el " -"fin ya llegó, es momento de ver si tus esfuerzos sirvieron." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155342,13 +154148,10 @@ msgstr "Survivalista Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"Sabías que estaba llegando el fin. Te mejoraste a vos misma con algunos " -"biónicos básicos, y recibiste entrenamiento de supervivencia. Ahora que el " -"fin ya llegó, es momento de ver si tus esfuerzos sirvieron." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155359,11 +154162,9 @@ msgstr "Superviviente" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" -"Algunos dirán que no tenés ninguna cualidad sobresaliente. Pero " -"sobreviviste, y eso es más de lo que la mayoría ahora puede decir." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155374,11 +154175,9 @@ msgstr "Superviviente" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" -"Algunos dirán que no tenés ninguna cualidad sobresaliente. Pero " -"sobreviviste, y eso es más de lo que la mayoría ahora puede decir." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155389,9 +154188,9 @@ msgstr "Superviviente en Refugio" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -155403,9 +154202,9 @@ msgstr "Superviviente en Refugio" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -155417,9 +154216,9 @@ msgstr "Miliciano Refugiado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -155431,9 +154230,9 @@ msgstr "Miliciana Refugiada" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -155446,12 +154245,9 @@ msgstr "Sastre" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"La sastrería no parece ser la habilidad más útil cuando el mundo ha llegado " -"a su fin. La mayoría de la gente no espera que un simple sastre sobreviva " -"mucho. Esta es tu oportunidad de demostrarles lo contrario." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155463,12 +154259,9 @@ msgstr "Sastre" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"La sastrería no parece ser la habilidad más útil cuando el mundo ha llegado " -"a su fin. La mayoría de la gente no espera que una simple sastre sobreviva " -"mucho. Esta es tu oportunidad de demostrarles lo contrario." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155480,12 +154273,12 @@ msgstr "Chef" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" "¡Bork bork! Años en la cocina te han hecho bastante voluminoso, pero " -"lograste escaparte de la matanza con un cuchillo de carnicero y solo una " -"pequeña colección de manchas en tu uniforme." +"lograste escaparte de la matanza con tu fiable cuchillo de carnicero y solo " +"una pequeña colección de manchas en tu uniforme." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155497,12 +154290,12 @@ msgstr "Chef" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" "¡Bork bork! Años en la cocina te han hecho bastante voluminosa, pero " -"lograste escaparte de la matanza con un cuchillo de carnicero y solo una " -"pequeña colección de manchas en tu uniforme." +"lograste escaparte de la matanza con tu fiable cuchillo de carnicera y solo " +"una pequeña colección de manchas en tu uniforme." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155543,14 +154336,10 @@ msgstr "Técnico de Laboratorio" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Gracias al tiempo que pasaste en el laboratorio, estás familiarizado con los" -" fundamentos de la ciencia conductual. Ahora que se terminó el mundo, solo " -"queda una pregunta: ¿vas a poder deshacer el cataclismo que ayudaste a " -"crear?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155561,14 +154350,10 @@ msgstr "Técnica de Laboratorio" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Gracias al tiempo que pasaste en el laboratorio, estás familiarizada con los" -" fundamentos de la ciencia conductual. Ahora que se terminó el mundo, solo " -"queda una pregunta: ¿vas a poder deshacer el cataclismo que ayudaste a " -"crear?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155579,11 +154364,10 @@ msgstr "Mecánico Hogareño" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Aunque nunca sacaste el carné de conducir, siempre te encantaron los autos. " -"Por lo menos ahora te van a sobrar los materiales." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155594,11 +154378,10 @@ msgstr "Mecánica Hogareño" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Aunque nunca sacaste el carné de conducir, siempre te encantaron los autos. " -"Por lo menos ahora te van a sobrar los materiales." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155612,12 +154395,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"Tenés una perspectiva flexible de las leyes. Los altercados de los que " -"participaste (y evitaste) en bares, y tu impresionante habilidad para eludir" -" las consecuencias de tus actos, te ayudaron a sobrevivir. Pero ¿cuánto " -"tiempo te harán resistir?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155631,12 +154410,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"Tenés una perspectiva flexible de las leyes. Los altercados de los que " -"participaste (y evitaste) en bares, y tu impresionante habilidad para eludir" -" las consecuencias de tus actos, te ayudaron a sobrevivir. Pero ¿cuánto " -"tiempo más te harán resistir?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155647,9 +154422,9 @@ msgstr "Apicultor" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" #: lang/json/professions_from_json.py @@ -155661,9 +154436,9 @@ msgstr "Apicultora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" #: lang/json/professions_from_json.py @@ -155675,9 +154450,9 @@ msgstr "Jugador de Básquet" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" #: lang/json/professions_from_json.py @@ -155689,9 +154464,9 @@ msgstr "Jugadora de Básquet" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" #: lang/json/professions_from_json.py @@ -155703,10 +154478,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -155718,10 +154492,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -155735,13 +154508,9 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"Eras un joven ciclista que prometía tener una carrera brillante por delante " -"antes de que esto pasara. Tal vez ya no vas a poder participar en un grand " -"tour, pero como dice el dicho: La vida es como andar en bicicleta, tenés que" -" seguir moviéndote." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155754,13 +154523,9 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"Eras una joven ciclista que prometía tener una carrera brillante por delante" -" antes de que esto pasara. Tal vez ya no vas a poder participar en un grand " -"tour, pero como dice el dicho: La vida es como andar en bicicleta, tenés que" -" seguir moviéndote." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155771,15 +154536,11 @@ msgstr "Recluta Militar" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Abandonaste la escuela secundaria con un objetivo: unirte al ejército. " -"Finalmente, ingresaste justo a tiempo para que tu entrenamiento se viera " -"interrumpido por una emergencia nacional. Parece que los comandantes te " -"abandonaron en este infierno después de que te perdiste la evacuación." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155790,15 +154551,11 @@ msgstr "Recluta Militar" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Abandonaste la escuela secundaria con un objetivo: unirte al ejército. " -"Finalmente, ingresaste justo a tiempo para que tu entrenamiento se viera " -"interrumpido por una emergencia nacional. Parece que los comandantes te " -"abandonaron en este infierno después de que te perdiste la evacuación." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155847,8 +154604,9 @@ msgstr "Mayordomo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -155860,8 +154618,9 @@ msgstr "Sirvienta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -155873,10 +154632,11 @@ msgstr "Cautivo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -155888,10 +154648,11 @@ msgstr "Cautivo" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -155904,9 +154665,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -155919,9 +154680,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -155934,12 +154695,10 @@ msgstr "Médico Residente" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"Después de terminar la facultad de medicina, pudiste hacer poca experiencia " -"práctica. Tenés la esperanza de que será suficiente por si ese viejo " -"proverbio \"Doctor, cúrate a ti mismo\" llegara a ser necesario." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155951,12 +154710,10 @@ msgstr "Médica Residente" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"Después de terminar la facultad de medicina, pudiste hacer poca experiencia " -"práctica. Tenés la esperanza de que será suficiente por si ese viejo " -"proverbio \"Doctor, cúrate a ti mismo\" llegara a ser necesario." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -155968,13 +154725,9 @@ msgstr "Mafioso" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"El jefe siempre decía que podía confiar en que vos resolvieras los trabajos " -"más complicados. Una lástima que no haya podido resolverlo él. Estás " -"familiarizado con un entorno violento, así que casi te sentís en casa con " -"este nuevo mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -155986,13 +154739,9 @@ msgstr "Mafiosa" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"El jefe siempre decía que podía confiar en que vos resolvieras los trabajos " -"más complicados. Una lástima que no haya podido resolverlo él. Estás " -"familiarizada con un entorno violento, así que casi te sentís en casa con " -"este nuevo mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156003,15 +154752,10 @@ msgstr "Guardia de Seguridad" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Un guardia de seguridad con sueldo bajo. Repentinamente las cosas se han " -"vuelto mucho más peligrosas que patrullar para mantener a raya a los " -"ladrones. No tenés ninguna habilidad útil, pero sí tenés equipo útil ya que " -"estabas trabajando cuando todo empezó." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156022,15 +154766,10 @@ msgstr "Guardia de Seguridad" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Una guardia de seguridad con sueldo bajo. Repentinamente las cosas se han " -"vuelto mucho más peligrosas que patrullar para mantener a raya a los " -"ladrones. No tenés ninguna habilidad útil, pero sí tenés equipo útil ya que " -"estabas trabajando cuando todo empezó." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156043,7 +154782,7 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" #: lang/json/professions_from_json.py @@ -156057,7 +154796,7 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" #: lang/json/professions_from_json.py @@ -156069,9 +154808,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" #: lang/json/professions_from_json.py @@ -156083,9 +154822,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" #: lang/json/professions_from_json.py @@ -156097,10 +154836,9 @@ msgstr "Survivalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" #: lang/json/professions_from_json.py @@ -156112,10 +154850,9 @@ msgstr "Survivalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" #: lang/json/professions_from_json.py @@ -156127,13 +154864,10 @@ msgstr "Fumador Compulsivo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Todos en el trabajo te conocían como la persona que siempre tenía un " -"cigarrillo o dos en la mano. Ahora, te queda un paquete solo y esperás " -"encontrar pronto más. Empezás con una fuerte adicción a la nicotina." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156144,13 +154878,10 @@ msgstr "Fumadora Compulsiva" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Todos en el trabajo te conocían como la persona que siempre tenía un " -"cigarrillo o dos en la mano. Ahora, te queda un paquete solo y esperás " -"encontrar pronto más. Empezás con una fuerte adicción a la nicotina." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156163,11 +154894,8 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"Cocaína. Es, en verdad, una droga tremenda. Desperdiciaste tu plata en un " -"poco de polvo y antes de que te dieras cuenta estabas prostituyéndote detrás" -" de la farmacia CVS para poder conseguir una línea más." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156180,11 +154908,8 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"Cocaína. Es, en verdad, una droga tremenda. Desperdiciaste tu plata en un " -"poco de polvo y antes de que te dieras cuenta estabas prostituyéndote detrás" -" de la farmacia CVS para poder conseguir una línea más." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156195,15 +154920,11 @@ msgstr "Indigente" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"La sociedad te llevó hasta el límite y te puso a deambular, sin casa, sin " -"familia, sin amigos, solo con el consuelo del fondo de una botella. Pero la " -"sociedad ahora no significa nada, y a pesar de toda la mierda que te " -"tiraron, todavía estás en pie. La puta madre, te vendría bien un trago." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156214,15 +154935,11 @@ msgstr "Indigente" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"La sociedad te llevó hasta el límite y te puso a deambular, sin casa, sin " -"familia, sin amigos, solo con el consuelo del fondo de una botella. Pero la " -"sociedad ahora no significa nada, y a pesar de toda la mierda que te " -"tiraron, todavía estás en pie. La puta madre, te vendría bien un trago." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156233,12 +154950,10 @@ msgstr "Drogadicto" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"No estás muy seguro de lo que pasó, pero todo se fue a la mierda y la única " -"cosa que se te pasa por la cabeza es dónde conseguir una pitada más." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156249,12 +154964,10 @@ msgstr "Drogadicta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"No estás muy segura de lo que pasó, pero todo se fue a la mierda y la única " -"cosa que se te pasa por la cabeza es dónde conseguir una pitada más." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156266,8 +154979,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" #: lang/json/professions_from_json.py @@ -156280,8 +154993,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" #: lang/json/professions_from_json.py @@ -156293,8 +155006,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -156306,8 +155020,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -156320,8 +155035,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -156334,8 +155050,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -156347,8 +155064,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" #: lang/json/professions_from_json.py @@ -156360,8 +155077,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" #: lang/json/professions_from_json.py @@ -156373,16 +155090,11 @@ msgstr "Agente de Policía" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Eras un simple ayudante del comisario en un pueblo chico. Cuando recibiste " -"el llamado, estabas preparado para ir al rescate. Pero inmediatamente eras " -"vos el que necesitaba rescate. Tuviste suerte de escapar vivo. ¿Quién " -"respetará tu autoridad ahora que el gobierno al que representa esta placa no" -" existe más?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156393,16 +155105,11 @@ msgstr "Agente de Policía" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Eras una simple ayudante del comisario en un pueblo chico. Cuando recibiste " -"el llamado, estabas preparada para ir al rescate. Pero inmediatamente eras " -"vos la que necesitaba rescate. Tuviste suerte de escapar viva. ¿Quién " -"respetará tu autoridad ahora que el gobierno al que representa esta placa no" -" existe más?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156413,13 +155120,10 @@ msgstr "Detective de Policía" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"Cuando sucedió el Cataclismo, estabas en el umbral de hacer un gran " -"descubrimiento en tu último caso de homicidio. Ahora el sospechoso está " -"muerto. Todos están muerto. Necesitás un cigarrillo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156430,13 +155134,10 @@ msgstr "Detective de Policía" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"Cuando sucedió el Cataclismo, estabas en el umbral de hacer un gran " -"descubrimiento en tu último caso de homicidio. Ahora el sospechoso está " -"muerto. Todos están muerto. Necesitás un cigarrillo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156449,13 +155150,9 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Como miembro de la división de elite de la fuerza policial, estás más que " -"adecuadamente entrenado y preparado para sobrevivir la brutal arremetida del" -" apocalipsis. Desafortunadamente, el colapso de la sociedad ahora te puso en" -" otra situación: tenés que pelear simplemente para seguir vivo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156468,13 +155165,9 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Como miembro de la división de elite de la fuerza policial, estás más que " -"adecuadamente entrenada y preparada para sobrevivir la brutal arremetida del" -" apocalipsis. Desafortunadamente, el colapso de la sociedad ahora te puso en" -" otra situación: tenés que pelear simplemente para seguir viva." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156485,15 +155178,11 @@ msgstr "Especialista SWAT CQC" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Miembro de la división de elite de la fuerza policial. Tu entrenamiento en " -"combate en espacios cerrados te ha mantenido vivo hasta ahora. " -"Lamentablemente, el colapso de la sociedad ahora te puso en otra situación: " -"tenés que pelear simplemente para seguir viviendo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156504,15 +155193,11 @@ msgstr "Especialista SWAT CQC" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Miembro de la división de elite de la fuerza policial. Tu entrenamiento en " -"combate en espacios cerrados te ha mantenido viva hasta ahora. " -"Lamentablemente, el colapso de la sociedad ahora te puso en otra situación: " -"tenés que pelear simplemente para seguir viviendo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156524,14 +155209,10 @@ msgstr "Francotirador Policía" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Tu habilidad como tirador preciso te ha sido muy útil en el cumplimiento de " -"tu deber, protegiendo a los inocentes con una sola bala bien ubicada. Ahora," -" la supervivencia está en juego, y no podés darte el lujo de errar si no " -"querés terminar siendo la cena de alguien." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156543,14 +155224,10 @@ msgstr "Francotiradora Policía" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Tu habilidad como tiradora precisa te ha sido muy útil en el cumplimiento de" -" tu deber, protegiendo a los inocentes con una sola bala bien ubicada. " -"Ahora, la supervivencia está en juego, y no podés darte el lujo de errar si " -"no querés terminar siendo la cena de alguien." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156561,15 +155238,11 @@ msgstr "Agente Antidisturbios" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"Los disturbios eran brutales incluso antes de que los muertos se levantaran " -"y empezaran a devorar a los vivos. En seguida quedó claro que la línea que " -"estabas aguantando iba a ceder - fue solo con un poco de suerte y mucho " -"cabezazo que pudiste escapar a salvo, y lo peor todavía está por suceder." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156580,15 +155253,11 @@ msgstr "Agente Antidisturbios" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"Los disturbios eran brutales incluso antes de que los muertos se levantaran " -"y empezaran a devorar a los vivos. En seguida quedó claro que la línea que " -"estabas aguantando iba a ceder - fue solo con un poco de suerte y mucho " -"cabezazo que pudiste escapar a salvo, y lo peor todavía está por suceder." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156599,14 +155268,10 @@ msgstr "Vendedor de Autos Usados" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Te han acusado de ser una clase de persona que podría vender a su propia " -"madre por un dólar. Siempre te pareció un insulto, tenés mucha experiencia " -"en el trabajo y cobrarías mucho más que un dólar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156617,14 +155282,10 @@ msgstr "Vendedora de Autos Usados" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Te han acusado de ser una clase de persona que podría vender a su propia " -"madre por un dólar. Siempre te pareció un insulto, tenés mucha experiencia " -"en el trabajo y cobrarías mucho más que un dólar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156635,15 +155296,11 @@ msgstr "Arquero Cazador" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"Desde que eras chiquito te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con un arco. Por eso, si el mundo termina no hay otra cosa " -"que quieras más tener con vos que tu fiel arco. Así que cuando sucedió, te " -"aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156654,15 +155311,11 @@ msgstr "Arquera Cazadora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"Desde que eras chiquita te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con un arco. Por eso, si el mundo termina no hay otra cosa " -"que quieras más tener con vos que tu fiel arco. Así que cuando sucedió, te " -"aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156673,15 +155326,11 @@ msgstr "Ballestero Cazador" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"Desde que eras chiquito te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con una ballesta. Por eso, si el mundo termina no hay otra " -"cosa que quieras más tener con vos que tu fiel ballesta. Así que cuando " -"sucedió, te aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156692,15 +155341,11 @@ msgstr "Ballestera Cazadora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"Desde que eras chiquita te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con una ballesta. Por eso, si el mundo termina no hay otra " -"cosa que quieras más tener con vos que tu fiel ballesta. Así que cuando " -"sucedió, te aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156711,15 +155356,11 @@ msgstr "Cazador con Escopeta" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"Desde que eras chiquito te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con una escopeta. Por eso, si el mundo termina no hay otra " -"cosa que quieras más tener con vos que tu fiel escopeta. Así que cuando " -"sucedió, te aseguraste de tenerla encima." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156730,15 +155371,11 @@ msgstr "Cazadora con Escopeta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"Desde que eras chiquita te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con una escopeta. Por eso, si el mundo termina no hay otra " -"cosa que quieras más tener con vos que tu fiel escopeta. Así que cuando " -"sucedió, te aseguraste de tenerla encima." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156749,15 +155386,11 @@ msgstr "Cazador con Rifle" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"Desde que eras chiquito te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con un rifle. Por eso, si el mundo termina no hay otra cosa" -" que quieras más tener con vos que tu fiel rifle. Así que cuando sucedió, te" -" aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156768,15 +155401,11 @@ msgstr "Cazadora con Rifle" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"Desde que eras chiquita te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con un rifle. Por eso, si el mundo termina no hay otra cosa" -" que quieras más tener con vos que tu fiel rifle. Así que cuando sucedió, te" -" aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156787,15 +155416,11 @@ msgstr "Manitas" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"Trabajabas en la ferretería y en tu casa hacías todas las reparaciones vos " -"mismo. Ahora mirás al horizonte de este mundo en ruinas, y te preguntás si " -"tus escasas habilidades y las pocas provisiones que pudiste agarrar, serán " -"suficientes para ayudarte a reconstruirlo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156806,15 +155431,11 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"Trabajabas en la ferretería y en tu casa hacías todas las reparaciones vos " -"misma. Ahora mirás al horizonte de este mundo en ruinas, y te preguntás si " -"tus escasas habilidades y las pocas provisiones que pudiste agarrar, serán " -"suficientes para ayudarte a reconstruirlo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156825,9 +155446,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -156839,9 +155459,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -156883,13 +155502,11 @@ msgstr "Mochilero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Te pasaste la vida viajando, haciendo turismo por acá y por allá, y viviendo" -" de la plata de tus viejos. Pero ahora ellos ya no están y la única cosa " -"entre vos y la muerte es un camino y tu mochila." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156900,28 +155517,25 @@ msgstr "Mochilera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Te pasaste la vida viajando, haciendo turismo por acá y por allá, y viviendo" -" de la plata de tus viejos. Pero ahora ellos ya no están y la única cosa " -"entre vos y la muerte es un camino y tu mochila." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Fast Food Cook" -msgstr "Cocinero Com. Rápida" +msgstr "Cocinero de Comida Rápida" #. ~ Profession (male Fast Food Cook) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Hace una semana trabajabas en un puesto de comidas rápidas, pero ahora " -"resignificaste eso de comida \"rápida\" corriendo para salvar tu vida." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156932,11 +155546,10 @@ msgstr "Cocinera Com. Rápida" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Hace una semana trabajabas en un puesto de comidas rápidas, pero ahora " -"resignificaste eso de comida \"rápida\" corriendo para salvar tu vida." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -156947,10 +155560,8 @@ msgstr "Electricista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" #: lang/json/professions_from_json.py @@ -156962,10 +155573,8 @@ msgstr "Electricista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" #: lang/json/professions_from_json.py @@ -156977,14 +155586,11 @@ msgstr "Hacker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"Las pastillas de cafeína y las trasnochadas adelante del monitor de tu " -"computadora han elevado tus habilidades en esa área que, a primera vista, " -"son claramente inútiles ahora que el mundo se terminó. Excepto que puedas " -"encontrar una computadora central militar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -156995,14 +155601,11 @@ msgstr "Hacker" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"Las pastillas de cafeína y las trasnochadas adelante del monitor de tu " -"computadora han elevado tus habilidades en esa área que, a primera vista, " -"son claramente inútiles ahora que el mundo se terminó. Excepto que puedas " -"encontrar una computadora central militar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157013,13 +155616,11 @@ msgstr "Estudiante" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Eras un estudiante secundario pero los exámenes que vas a enfrentar ahora " -"tienen mucha más importancia. Tal vez haya algo útil en uno de esos libros " -"que estuviste arrastrando todo el año." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157030,13 +155631,11 @@ msgstr "Estudiante" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Eras una estudiante secundaria pero los exámenes que vas a enfrentar ahora " -"tienen mucha más importancia. Tal vez haya algo útil en uno de esos libros " -"que estuviste arrastrando todo el año." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157047,9 +155646,9 @@ msgstr "Víctima en la Ducha" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" #: lang/json/professions_from_json.py @@ -157061,9 +155660,9 @@ msgstr "Víctima en la Ducha" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" #: lang/json/professions_from_json.py @@ -157075,11 +155674,9 @@ msgstr "Motoquero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Te pasaste la mayor parte de tu vida arriba de una Harley, y es natural que " -"te pases el resto manejando una." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157090,11 +155687,9 @@ msgstr "Motoquera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Te pasaste la mayor parte de tu vida arriba de una Harley, y es natural que " -"te pases el resto manejando una." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157105,8 +155700,9 @@ msgstr "Bailarín de Salón" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" #: lang/json/professions_from_json.py @@ -157118,8 +155714,9 @@ msgstr "Bailarina de Salón" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" #: lang/json/professions_from_json.py @@ -157131,13 +155728,10 @@ msgstr "Ladrón Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Has realizado muchos asaltos de alta notoriedad, pero tus ganancias no " -"significan nada en este mundo. Lo único que te queda son las herramientas de" -" tu profesión y tu estilo impecable." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157148,13 +155742,10 @@ msgstr "Ladrona Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Has realizado muchos asaltos de alta notoriedad, pero tus ganancias no " -"significan nada en este mundo. Lo único que te queda son las herramientas de" -" tu profesión y tu estilo impecable." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157165,16 +155756,11 @@ msgstr "Paciente Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"Cuando el diagnóstico fue positivo te inscribiste para una serie de cirugías" -" biónicas experimentales que te salvaron la vida. Ahora estás más sano que " -"nunca, gracias a un conjunto de sistemas biónicos alimentados con tus " -"propias funciones metabólicas. Aprovecha al máximo tu segunda oportunidad en" -" la vida." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157185,16 +155771,11 @@ msgstr "Paciente Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"Cuando el diagnóstico fue positivo te inscribiste para una serie de cirugías" -" biónicas experimentales que te salvaron la vida. Ahora estás más sana que " -"nunca, gracias a un conjunto de sistemas biónicos alimentados con tus " -"propias funciones metabólicas. Aprovecha al máximo tu segunda oportunidad en" -" la vida." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157205,12 +155786,9 @@ msgstr "Paciente" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Cuando el diagnóstico fue positivo, estabas dispuesto a luchar para seguir " -"viviendo. Ahora, vas a tener que renovar tus votos de tenacidad en estos " -"nuevos tiempos." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157221,12 +155799,9 @@ msgstr "Paciente" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Cuando el diagnóstico fue positivo, estabas dispuesta a luchar para seguir " -"viviendo. Ahora, vas a tener que renovar tus votos de tenacidad en estos " -"nuevos tiempos." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157238,10 +155813,9 @@ msgstr "Mutante Involuntario" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" -"Eras un conejillo de indias humano, usado por los laboratorios para entender" -" el inmenso poder de las mutaciones." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157253,10 +155827,9 @@ msgstr "Mutante Involuntaria" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" -"Eras una conejilla de indias humana, usada por los laboratorios para " -"entender el inmenso poder de las mutaciones." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157268,13 +155841,9 @@ msgstr "Mutante Voluntario" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"Tus sueños de convertirte en un mutante super-humano a través de " -"alteraciones genéticas pueden haberse quedado un poco cortos, pero ahora que" -" ocurrió el Cataclismo, vos y los científicos están listos para poner tu " -"cuerpo a prueba." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157286,18 +155855,14 @@ msgstr "Mutante Voluntaria" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"Tus sueños de convertirte en una mutante super-humano a través de " -"alteraciones genéticas pueden haberse quedado un poco cortos, pero ahora que" -" ocurrió el Cataclismo, vos y los científicos están listos para poner tu " -"cuerpo a prueba." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Prototype Cyborg" -msgstr "" +msgstr "Ciborg Prototipo" #. ~ Profession (male Prototype Cyborg) description #: lang/json/professions_from_json.py @@ -157305,17 +155870,14 @@ msgctxt "prof_desc_male" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"Alguna vez fuiste normal. Antes de las pruebas, antes de los procedimientos," -" antes de que ellos te quitaran cada uno de tus signos de humanidad. Ahora, " -"sos más máquina que hombre, pero eso puede ser una ventaja contra los " -"horrores que te esperan." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Prototype Cyborg" -msgstr "" +msgstr "Ciborg Prototipo" #. ~ Profession (female Prototype Cyborg) description #: lang/json/professions_from_json.py @@ -157323,17 +155885,14 @@ msgctxt "prof_desc_female" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"Alguna vez fuiste normal. Antes de las pruebas, antes de los procedimientos," -" antes de que ellos te quitaran cada uno de tus signos de humanidad. Ahora, " -"sos más máquina que mujer, pero eso puede ser una ventaja contra los " -"horrores que te esperan." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Industrial Cyborg" -msgstr "Androide Industrial" +msgstr "Ciborg Industrial" #. ~ Profession (male Industrial Cyborg) description #: lang/json/professions_from_json.py @@ -157352,7 +155911,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Industrial Cyborg" -msgstr "Androide Industrial" +msgstr "Ciborg Industrial" #. ~ Profession (female Industrial Cyborg) description #: lang/json/professions_from_json.py @@ -157377,13 +155936,10 @@ msgstr "Atleta Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Es una lástima que haya ocurrido el apocalipsis porque nunca tendrás tu " -"oportunidad de participar en las Ciberolimpiadas. Ahora lo único entre vos y" -" un zombi matándote, es tu extravagante fuerza de androide." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157394,13 +155950,10 @@ msgstr "Atleta Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Es una lástima que haya ocurrido el apocalipsis porque nunca tendrás tu " -"oportunidad de participar en las Ciberolimpiadas. Ahora lo único entre vos y" -" un zombi matándote, es tu extravagante fuerza de androide." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157411,9 +155964,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" #: lang/json/professions_from_json.py @@ -157425,9 +155978,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" #: lang/json/professions_from_json.py @@ -157476,12 +156029,9 @@ msgstr "Bombero Biónico" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"Como un bombero renovado de segunda generación, fuiste mejorado " -"cibernéticamente para operar en las emergencias más extremas. El fin del " -"mundo definitivamente cuenta como una situación extrema." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157493,12 +156043,9 @@ msgstr "Bombera Biónica" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"Como una bombera renovada de segunda generación, fuiste mejorada " -"cibernéticamente para operar en las emergencias más extremas. El fin del " -"mundo definitivamente cuenta como una situación extrema." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157509,13 +156056,10 @@ msgstr "Cerebrito Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" -"Antes del apocalipsis trabajabas en una gran corporación internacional como " -"representante y asesor técnico, utilizando el increíble poder de tu mente " -"cibernéticamente mejorada." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157526,13 +156070,10 @@ msgstr "Cerebrito Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" -"Antes del apocalipsis trabajabas en una gran corporación internacional como " -"representante y asesora técnica, utilizando el increíble poder de tu mente " -"cibernéticamente mejorada." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157543,14 +156084,10 @@ msgstr "Soldado Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"Sos el resultado de uno de los últimos programas de investigación militar, " -"el prototipo de un cibersoldado. Todavía estás vivo gracias a tus mejoras, " -"incluso luego de que todos tus camaradas murieron ante los muertos " -"vivientes." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157561,14 +156098,10 @@ msgstr "Soldado Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"Sos el resultado de uno de los últimos programas de investigación militar, " -"el prototipo de una cibersoldado. Todavía estás viva gracias a tus mejoras, " -"incluso luego de que todos tus camaradas murieron ante los muertos " -"vivientes." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157579,13 +156112,11 @@ msgstr "Francotirador Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Tus biónicos, equipo y amplio entrenamiento de campo te permiten derribar " -"objetivos desde distancias inverosímiles, incluso después de semanas de " -"total aislamiento en territorio enemigo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157596,13 +156127,11 @@ msgstr "Francotiradora Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Tus biónicos, equipo y amplio entrenamiento de campo te permiten derribar " -"objetivos desde distancias inverosímiles, incluso después de semanas de " -"total aislamiento en territorio enemigo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157613,15 +156142,11 @@ msgstr "Agente Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Tu cuerpo tiene varios biónicos que valen millones de dólares, y fueron " -"pagados por los impuestos públicos. El gobierno te ha convertido en un " -"especialista en espionaje y reconocimiento: tenés visión nocturna, alarma, " -"capacidad de abrir cerraduras y un módulo de hackeo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157632,15 +156157,11 @@ msgstr "Agente Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Tu cuerpo tiene varios biónicos que valen millones de dólares, y fueron " -"pagados por los impuestos públicos. El gobierno te ha convertido en una " -"especialista en espionaje y reconocimiento: tenés visión nocturna, alarma, " -"capacidad de abrir cerraduras y un módulo de hackeo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157653,11 +156174,8 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"Sos el producto de millones de dólares en investigaciones clandestinas, sos " -"un agente biónico inactivo capaz de atacar silenciosamente a tu objetivo, " -"mientras mantenés tu apariencia inocua." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157670,11 +156188,8 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"Sos el producto de millones de dólares en investigaciones clandestinas, sos " -"una agente biónico inactivo capaz de atacar silenciosamente a tu objetivo, " -"mientras mantenés tu apariencia inocua." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157685,11 +156200,10 @@ msgstr "Mafioso Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -157701,77 +156215,64 @@ msgstr "Mafiosa Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Failed Cyborg" -msgstr "Androide Fallido" +msgstr "Ciborg Fallido" #. ~ Profession (male Failed Cyborg) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Tu cuerpo es un quilombo de partes biónicas. Tenés mucha capacidad de " -"energía pero estás lleno de biónicos rotos. Por lo menos, tu suministro de " -"energía a etanol todavía funciona." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Failed Cyborg" -msgstr "Androide Fallida" +msgstr "Ciborg Fallida" #. ~ Profession (female Failed Cyborg) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Tu cuerpo es un quilombo de partes biónicas. Tenés mucha capacidad de " -"energía pero estás llena de biónicos rotos. Por lo menos, tu suministro de " -"energía a etanol todavía funciona." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Commercial Cyborg" -msgstr "Androide Comercial" +msgstr "Ciborg Comercial" #. ~ Profession (male Commercial Cyborg) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Commercial Cyborg" -msgstr "Androide Comercial" +msgstr "Ciborg Comercial" #. ~ Profession (female Commercial Cyborg) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" #: lang/json/professions_from_json.py @@ -157814,12 +156315,9 @@ msgstr "Trampero" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"Te pasaste la mayor parte de tu vida poniendo trampas con tu viejo. Los dos " -"vivieron bien de lo que cazaban y de los tutoriales que hacían. Con suerte, " -"tus habilidades te servirán contra una presa menos convencional." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157831,12 +156329,9 @@ msgstr "Trampera" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"Te pasaste la mayor parte de tu vida poniendo trampas con tu viejo. Los dos " -"vivieron bien de lo que cazaban y de los tutoriales que hacían. Con suerte, " -"tus habilidades te servirán contra una presa menos convencional." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157847,14 +156342,10 @@ msgstr "Herrero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"Estabas en el medio de tus estudios de Trabajo del Metal, en el Espacio de " -"Formación Profesional Superior, cuando el mundo se terminó. Tuviste algunos " -"problemas al salir corriendo de la clase, pero te pudiste llevar las cosas " -"que tenías en ese momento." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157865,14 +156356,10 @@ msgstr "Herrera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"Estabas en el medio de tus estudios de Trabajo del Metal, en el Espacio de " -"Formación Profesional Superior, cuando el mundo se terminó. Tuviste algunos " -"problemas al salir corriendo de la clase, pero te pudiste llevar las cosas " -"que tenías en ese momento." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157885,12 +156372,8 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"Todo lo que siempre quisiste es que la gente se riera. Dejar la escuela para" -" actuar en las fiestas de los chicos era tu sueño hecho realidad, hasta que " -"el mundo se terminó. Ahora, en tu futuro habrá pocos de esos preciosos " -"globos con formas de animales." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157903,12 +156386,8 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"Todo lo que siempre quisiste es que la gente se riera. Dejar la escuela para" -" actuar en las fiestas de los chicos era tu sueño hecho realidad, hasta que " -"el mundo se terminó. Ahora, en tu futuro habrá pocos de esos preciosos " -"globos con formas de animales." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157919,15 +156398,11 @@ msgstr "Sumiso Perdido" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"En las apuradas por buscar refugio, fuiste separado de tu amo por el cruel " -"destino. Ahora estás solo y no tenés nada más que un traje de cuero negro " -"bastante pervertido. Lamentablemente, no existen las palabras de seguridad " -"en el apocalipsis." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -157938,15 +156413,11 @@ msgstr "Sumisa Perdida" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"En las apuradas por buscar refugio, fuiste separada de tu amo por el cruel " -"destino. Ahora estás sola y no tenés nada más que un traje de cuero negro " -"bastante pervertido. Lamentablemente, no existen las palabras de seguridad " -"en el apocalipsis." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -157991,14 +156462,11 @@ msgstr "Otaku" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Quedarse hasta tarde con tus amigos mirando animé y picando algo te preparó " -"para la principal convención de animé en el noreste. Pero justo era el día " -"del apocalipsis. Por lo menos, estás preparado por si se te rompe el " -"disfraz." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158009,14 +156477,11 @@ msgstr "Otaku" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Quedarse hasta tarde con tus amigos mirando animé y picando algo te preparó " -"para la principal convención de animé en el noreste. Pero justo era el día " -"del apocalipsis. Por lo menos, estás preparada por si se te rompe el " -"disfraz." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158053,11 +156518,9 @@ msgstr "Chabón PunkRocker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"El apocalipsis es tu sueño psicótico hecho realidad. Ahora que ha muerto el " -"sistema, ¡es momento de bailar entre los huesos del mundo!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158068,11 +156531,9 @@ msgstr "Chabona PunkRocker" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"El apocalipsis es tu sueño psicótico hecho realidad. Ahora que ha muerto el " -"sistema, ¡es momento de bailar entre los huesos del mundo!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158083,15 +156544,11 @@ msgstr "Bombero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Como socorrista fuiste testigo directo de los devastadores horrores del " -"apocalipsis. En la emergencia, perdiste la mayoría de tu equipo y el " -"contacto con tu unidad, fuiste forzado a luchar por tu vida con poco más que" -" tu barra Halligan y tu equipo ignífugo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158102,15 +156559,11 @@ msgstr "Bombera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Como socorrista fuiste testigo directo de los devastadores horrores del " -"apocalipsis. En la emergencia, perdiste la mayoría de tu equipo y el " -"contacto con tu unidad, fuiste forzado a luchar por tu vida con poco más que" -" tu barra Halligan y tu equipo ignífugo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158121,7 +156574,7 @@ msgstr "Chico Rudo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -158134,7 +156587,7 @@ msgstr "Chica Ruda" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -158147,11 +156600,9 @@ msgstr "Cartero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Tu habilidad para esquivar perros y juguetes tirados mientras dejás las " -"cartas, te da una ventaja para tu nuevo rol de sobreviviente." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158162,11 +156613,9 @@ msgstr "Cartera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Tu habilidad para esquivar perros y juguetes tirados mientras dejás las " -"cartas, te da una ventaja para tu nuevo rol de sobreviviente." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158177,8 +156626,9 @@ msgstr "Convicto" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -158190,8 +156640,9 @@ msgstr "Convicta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -158203,9 +156654,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" #: lang/json/professions_from_json.py @@ -158217,9 +156668,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" #: lang/json/professions_from_json.py @@ -158233,7 +156684,7 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -158247,7 +156698,7 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -158287,8 +156738,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -158300,8 +156752,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -158341,11 +156794,10 @@ msgstr "Chorro" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Pensaste que esta podía ser tu gran oportunidad. ¿Cuenta como violación a la" -" propiedad privada si los dueños son muertos vivientes?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158356,11 +156808,10 @@ msgstr "Chorra" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Pensaste que esta podía ser tu gran oportunidad. ¿Cuenta como violación a la" -" propiedad privada si los dueños son muertos vivientes?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158371,15 +156822,9 @@ msgstr "Mercenario Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"A través de una serie de cirugías caras y dolorosas, te convertiste en un " -"arma biónica ambulante. Tus servicios como mercenario estaban disponibles al" -" mejor postor. Ahora que el mundo se terminó, esas mejoras biónicas pueden " -"ser la diferencia entre la vida y la muerte." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158390,15 +156835,9 @@ msgstr "Mercenaria Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"A través de una serie de cirugías caras y dolorosas, te convertiste en un " -"arma biónica ambulante. Tus servicios como mercenaria estaban disponibles al" -" mejor postor. Ahora que el mundo se terminó, esas mejoras biónicas pueden " -"ser la diferencia entre la vida y la muerte." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158411,13 +156850,9 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Hace mucho, tu capricho con las mejoras biónicas te llevó a un mundo oscuro " -"de clínicas biónicas en callejones perdidos y auto-instalaciones de MCB " -"usados. El mundo cambió pero tu hambre posthumana todavía grita por ser " -"satisfecha. ¿Dónde conseguirás ahora ese repuesto biónico?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158430,13 +156865,9 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Hace mucho, tu capricho con las mejoras biónicas te llevó a un mundo oscuro " -"de clínicas biónicas en callejones perdidos y auto-instalaciones de MCB " -"usados. El mundo cambió pero tu hambre posthumana todavía grita por ser " -"satisfecha. ¿Dónde conseguirás ahora ese repuesto biónico?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158448,14 +156879,9 @@ msgstr "Monstruo Biónico" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Totalmente superado por la psicosis inducida por los biónicos, sos un " -"monstruo posthumano deforme que no tenía lugar en la sociedad. Pero ahora, " -"donde antes eras forzado a esconderte en las sombras, encontrás un mundo " -"desolado donde incluso una criatura como vos puede tener su lugar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158467,14 +156893,9 @@ msgstr "Monstruo Biónica" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Totalmente superada por la psicosis inducida por los biónicos, sos un " -"monstruo posthumano deforme que no tenía lugar en la sociedad. Pero ahora, " -"donde antes eras forzada a esconderte en las sombras, encontrás un mundo " -"desolado donde incluso una criatura como vos puede tener su lugar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158485,11 +156906,10 @@ msgstr "Abogado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Ahora en lugar de quejarse por tus honorarios, tus clientes intentan comerte" -" el cerebro. Pero no sabés cuál de las dos cosas es peor." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158500,11 +156920,10 @@ msgstr "Abogada" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Ahora en lugar de quejarse por tus honorarios, tus clientes intentan comerte" -" el cerebro. Pero no sabés cuál de las dos cosas es peor." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158515,15 +156934,10 @@ msgstr "Cura" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Cuando sucedió el apocalipsis, hiciste todo lo que pudiste para proteger " -"fielmente tu parroquia, pero parece que las plegarias no fueron suficientes." -" Ahora que están todos muertos, deberías encontrar algo más tangible para " -"protegerte." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158534,15 +156948,10 @@ msgstr "Diaconisa" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Cuando sucedió el apocalipsis, hiciste todo lo que pudiste para proteger " -"fielmente tu parroquia, pero parece que las plegarias no fueron suficientes." -" Ahora que están todos muertos, deberías encontrar algo más tangible para " -"protegerte." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158588,14 +156997,10 @@ msgstr "Imán" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Antes del apocalipsis, pasabas mucho tiempo en la mezquita local, estudiando" -" las palabras del Profeta y del Corán, y guiando a tu comunidad en la " -"oración. Antes venían de todas partes para escucharte, ahora vienen para " -"comerte el cerebro." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158607,14 +157012,10 @@ msgstr "Mourchida" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Antes del apocalipsis, pasabas mucho tiempo en la mezquita local, estudiando" -" las palabras del Profeta y del Corán, y guiando a tu comunidad en la " -"oración. Antes venían de todas partes para escucharte, ahora vienen para " -"comerte el cerebro." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158686,14 +157087,10 @@ msgstr "Pastor" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"Comprometiste tu vida a difundir la palabra, siempre en el camino, viajando " -"de pueblo en pueblo. Ahora, todo se fue al infierno, ya no podés hacer tu " -"podcast diario y los muertos vivientes que escuchan tus sermones no parecen " -"particularmente conmovidos." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158705,14 +157102,10 @@ msgstr "Pastora" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"Comprometiste tu vida a difundir la palabra, siempre en el camino, viajando " -"de pueblo en pueblo. Ahora, todo se fue al infierno, ya no podés hacer tu " -"podcast diario y los muertos vivientes que escuchan tus sermones no parecen " -"particularmente conmovidos." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158723,11 +157116,9 @@ msgstr "Artista Marcial Novato" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Estabas yendo al dojo para tu primera clase cuando el mundo terminó. Y " -"también tenías ganas de aprender a nadar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158738,11 +157129,9 @@ msgstr "Artista Marcial Novata" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Estabas yendo al dojo para tu primera clase cuando el mundo terminó. Y " -"también tenías ganas de aprender a nadar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158815,11 +157204,9 @@ msgstr "Boxeador" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Estabas entrenándote para la pelea de tu vida antes de que suceda el " -"Cataclismo. Ahora solamente peleás para mantenerte con vida." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158830,11 +157217,9 @@ msgstr "Boxeadora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Estabas entrenándote para la pelea de tu vida antes de que suceda el " -"Cataclismo. Ahora solamente peleás para mantenerte con vida." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158846,9 +157231,9 @@ msgstr "Delivery de Pizza" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -158861,9 +157246,9 @@ msgstr "Delivery de Pizza" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -158875,13 +157260,10 @@ msgstr "Arqueólogo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"Mientras ibas hacia el templo perdido siguiendo una pista del diario " -"personal de tu abuelo muerto, el suelo comenzó a temblar descontroladamente." -" Eso te dio una mala sensación, así que te fuiste al refugio más cercano." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158892,13 +157274,10 @@ msgstr "Arqueóloga" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"Mientras ibas hacia el templo perdido siguiendo una pista del diario " -"personal de tu abuelo muerto, el suelo comenzó a temblar descontroladamente." -" Eso te dio una mala sensación, así que te fuiste al refugio más cercano." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158909,13 +157288,10 @@ msgstr "Canillita" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Estabas entregando el diario matutino por tu ruta diaria, cuando el " -"cataclismo sucedió. Las hordas de muertos vivientes no parecen valorar las " -"noticias, pero al menos tu querida bicicleta todavía funciona." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158926,13 +157302,10 @@ msgstr "Canillita" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Estabas entregando el diario matutino por tu ruta diaria, cuando el " -"cataclismo sucedió. Las hordas de muertos vivientes no parecen valorar las " -"noticias, pero al menos tu querida bicicleta todavía funciona." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158943,15 +157316,11 @@ msgstr "Jugador Roller Derby" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"Eras un infierno sobre ruedas antes. Ahora el resto del equipo está muerto, " -"y tal vez no hubieras sobrevivido tanto si no fuera por tu afición a la " -"violencia de alta velocidad. Las cosas son desalentadoras. ¿Cuánta vueltas " -"podrás dar alrededor de los muertos vivientes hasta que puedan bloquearte?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -158962,15 +157331,11 @@ msgstr "Jugadora Roller Derby" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"Eras un infierno sobre ruedas antes. Ahora el resto del equipo está muerto, " -"y tal vez no hubieras sobrevivido tanto si no fuera por tu afición a la " -"violencia de alta velocidad. Las cosas son desalentadoras. ¿Cuánta vueltas " -"podrás dar alrededor de los muertos vivientes hasta que puedan bloquearte?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -158981,9 +157346,9 @@ msgstr "Granjero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -158995,9 +157360,9 @@ msgstr "Granjera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -159009,14 +157374,10 @@ msgstr "Guardia Nacional" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"Cuando apareció la epidemia, tu unidad de la Guardia Nacional fue convocada." -" A pesar de tus esfuerzos, no lograste reunirte con el resto de la unidad " -"antes de que todas las comunicaciones se cortaran, y quedaste solo entre los" -" muertos." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159027,14 +157388,10 @@ msgstr "Guardia Nacional" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"Cuando apareció la epidemia, tu unidad de la Guardia Nacional fue convocada." -" A pesar de tus esfuerzos, no lograste reunirte con el resto de la unidad " -"antes de que todas las comunicaciones se cortaran, y quedaste sola entre los" -" muertos." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159046,8 +157403,8 @@ msgstr "Cartonero Curtido" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -159060,8 +157417,8 @@ msgstr "Cartonera Curtida" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -159073,15 +157430,11 @@ msgstr "Militar Rezagado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"Debés haber prestado bastante atención curso de supervivencia durante el " -"campo de entrenamiento básico, si no nunca hubieras vivido lo suficiente " -"para sobrevivir a toda la cadena de comando y verte envuelto en este apuro. " -"La única misión ahora es sobrevivir." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159092,15 +157445,11 @@ msgstr "Militar Rezagada" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"Debés haber prestado bastante atención curso de supervivencia durante el " -"campo de entrenamiento básico, si no nunca hubieras vivido lo suficiente " -"para sobrevivir a toda la cadena de comando y verte envuelta en este apuro. " -"La única misión ahora es sobrevivir." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159111,13 +157460,10 @@ msgstr "Seguridad en Shopping" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Eras seguridad de un shopping. No tenés ninguna habilidad muy útil más que " -"un entrenamiento básico para tu trabajo. Sin embargo, sí tenés tu confiable " -"pistola eléctrica, tu bastón y tu navaja." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159128,13 +157474,10 @@ msgstr "Seguridad en Shopping" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Eras seguridad de un shopping. No tenés ninguna habilidad muy útil más que " -"un entrenamiento básico para tu trabajo. Sin embargo, sí tenés tu confiable " -"pistola eléctrica, tu bastón y tu navaja." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159145,13 +157488,10 @@ msgstr "Naturalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"Has llegado a entenderte muy bien con la Madre Naturaleza a lo largo de " -"muchos años de exilio autoimpuesto en tierras salvajes. El mundo conocido " -"puede haber terminado, pero vos casi ni notás la diferencia." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159162,13 +157502,10 @@ msgstr "Naturalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"Has llegado a entenderte muy bien con la Madre Naturaleza a lo largo de " -"muchos años de exilio autoimpuesto en tierras salvajes. El mundo conocido " -"puede haber terminado, pero vos casi ni notás la diferencia." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159179,15 +157516,11 @@ msgstr "Pescador" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Pasaste la mayor parte de tus días pescando en los pantanos, arreglándote " -"con lo que pescabas. Podrías disfrutar del zumbido de los insectos, pero " -"estos se volvieron más grandes y malos. Sus horribles ruidos ahora te " -"asustan, y deseás que a los peces no les haya pasado lo mismo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159198,15 +157531,11 @@ msgstr "Pescadora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Pasaste la mayor parte de tus días pescando en los pantanos, arreglándote " -"con lo que pescabas. Podrías disfrutar del zumbido de los insectos, pero " -"estos se volvieron más grandes y malos. Sus horribles ruidos ahora te " -"asustan, y deseás que a los peces no les haya pasado lo mismo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159286,12 +157615,9 @@ msgstr "Operador de Dron" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Trabajabas programando máquinas automáticas para limpiar las calles, robots " -"canillitas y drones de delivery de pizza. Ahora todos los drones llevan " -"armas en lugar de pizza." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159303,12 +157629,9 @@ msgstr "Operadora de Dron" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Trabajabas programando máquinas automáticas para limpiar las calles, robots " -"canillitas y drones de delivery de pizza. Ahora todos los drones llevan " -"armas en lugar de pizza." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159319,11 +157642,10 @@ msgstr "Skater" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"¡Te encanta el skate! Por lo menos ahora los adultos no te van a andar " -"diciendo por dónde no podés andar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159334,11 +157656,10 @@ msgstr "Skater" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"¡Te encanta el skate! Por lo menos ahora los adultos no te van a andar " -"diciendo por dónde no podés andar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159349,15 +157670,11 @@ msgstr "Delincuente Juvenil" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"Nunca te importó lo que los adultos te decían que tenías que hacer, y así es" -" como terminaste pasando la mayoría de los días en la oficina del director. " -"Ahora, la única razón por la que estás vivo es que no necesitás que los " -"adultos te digan lo que hay que hacer. Te podrías haber hecho la rata hoy." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159368,15 +157685,11 @@ msgstr "Delincuente Juvenil" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"Nunca te importó lo que los adultos te decían que tenías que hacer, y así es" -" como terminaste pasando la mayoría de los días en la oficina del director. " -"Ahora, la única razón por la que estás vivo es que no necesitás que los " -"adultos te digan lo que hay que hacer. Te podrías haber hecho la rata hoy." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159418,14 +157731,10 @@ msgstr "Estudiante Biónico" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Tus padres estaban tan obsesionados con asegurarse de que aprobaras con diez" -" cada examen, que te equiparon con biónicos para hacerte más inteligente y " -"que nunca te olvides de nada. Y ahora te enfrentás con el examen más " -"terrible, y vas a tener que aprobarlo, porque si no..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159437,14 +157746,10 @@ msgstr "Estudiante Biónica" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Tus padres estaban tan obsesionados con asegurarse de que aprobaras con diez" -" cada examen, que te equiparon con biónicos para hacerte más inteligente y " -"que nunca te olvides de nada. Y ahora te enfrentás con el examen más " -"terrible, y vas a tener que aprobarlo, porque si no..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159455,12 +157760,10 @@ msgstr "Jugador de Matanza" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Te gustaba jugar a la matanza, donde no poder esquivar la pelota significaba" -" que te quedabas afuera del juego. Ahora, \"matanza\" tiene otro " -"significado, y no poder esquivar es una amenaza para tu vida. No la cagués." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159471,84 +157774,66 @@ msgstr "Jugadora de Matanza" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Te gustaba jugar a la matanza, donde no poder esquivar la pelota significaba" -" que te quedabas afuera del juego. Ahora, \"matanza\" tiene otro " -"significado, y no poder esquivar es una amenaza para tu vida. No la cagués." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Science Club Member" -msgstr "Miembro C.de Ciencia" +msgstr "Miembro de Club de Ciencia" #. ~ Profession (male Science Club Member) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"Eras miembro del club de ciencia de la escuela, y ahora estás muy enojado " -"porque la escuela no te dejaba jugar con los químicos más divertidos, los " -"que explotaban. Por lo menos ahora no hay nadie cerca que te diga lo que no " -"podés tocar." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Science Club Member" -msgstr "Miembro C.de Ciencia" +msgstr "Miembra de Club de Ciencia" #. ~ Profession (female Science Club Member) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"Eras miembro del club de ciencia de la escuela, y ahora estás muy enojada " -"porque la escuela no te dejaba jugar con los químicos más divertidos, los " -"que explotaban. Por lo menos ahora no hay nadie cerca que te diga lo que no " -"podés tocar." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "A/V Club Member" -msgstr "Miembro C.Audiovisual" +msgstr "Miembro de Club Audiovisual" #. ~ Profession (male A/V Club Member) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"Eras miembro del club audiovisual de la escuela. Estás seguro que hay alguna" -" manera de que utilices tus habilidades técnicas para mantenerte con vida. " -"Todavía no encontraste la manera de hacer un maravilloso rayo de muerte." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "A/V Club Member" -msgstr "Miembro C.Audiovisual" +msgstr "Miembra de Club Audiovisual" #. ~ Profession (female A/V Club Member) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"Eras miembro del club audiovisual de la escuela. Estás segura que hay alguna" -" manera de que utilices tus habilidades técnicas para mantenerte con vida. " -"Todavía no encontraste la manera de hacer un maravilloso rayo de muerte." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159559,13 +157844,10 @@ msgstr "Maestro" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Le estuviste enseñando a los chicos toda tu vida y casi que escuchaban lo " -"que les decías. Sin embargo, los muertos no tienen que hacer ninguna tarea " -"para comerte vivo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159576,13 +157858,10 @@ msgstr "Maestra" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Le estuviste enseñando a los chicos toda tu vida y casi que escuchaban lo " -"que les decías. Sin embargo, los muertos no tienen que hacer ninguna tarea " -"para comerte vivo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159593,16 +157872,10 @@ msgstr "Fotoperiodista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Eras fotoperiodista freelance antes de que se terminara todo. Tenés la " -"posibilidad de ser el primer periodista en cubrir el apocalipsis, aunque " -"conseguir alguien que te publique parece ser un poco más complicado de lo " -"normal. Pudiste quedarte con tu cámara, con un poco de suerte vas a sacar " -"unas fotos fantásticas." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159613,16 +157886,10 @@ msgstr "Fotoperiodista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Eras fotoperiodista freelance antes de que se terminara todo. Tenés la " -"posibilidad de ser la primera periodista en cubrir el apocalipsis, aunque " -"conseguir alguien que te publique parece ser un poco más complicado de lo " -"normal. Pudiste quedarte con tu cámara, con un poco de suerte vas a sacar " -"unas fotos fantásticas." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159633,12 +157900,10 @@ msgstr "Profesor de Gimnasia" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Luego de una vida enseñándole a los chicos el arte de los deportes que " -"siempre odiaron, los zombis a tu alrededor se niegan a hacer flexiones de " -"brazos, incluso aunque toques tu silbato." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159649,12 +157914,10 @@ msgstr "Profesora de Gimnasia" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Luego de una vida enseñándole a los chicos el arte de los deportes que " -"siempre odiaron, los zombis a tu alrededor se niegan a hacer flexiones de " -"brazos, incluso aunque toques tu silbato." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159665,16 +157928,10 @@ msgstr "Campista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Siempre disfrutaste ir de excursión y de camping en la naturaleza, antes de " -"que todo se vaya a la mierda. Así que te resultó fácil agarrar tu bolso y " -"salir corriendo cuando sonaron las sirenas. El mundo puede estar en ruinas, " -"pero estás preparado para convertir cualquier lugar que encuentres en tu " -"hogar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159685,16 +157942,10 @@ msgstr "Campista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Siempre disfrutaste ir de excursión y de camping en la naturaleza, antes de " -"que todo se vaya a la mierda. Así que te resultó fácil agarrar tu bolso y " -"salir corriendo cuando sonaron las sirenas. El mundo puede estar en ruinas, " -"pero estás preparada para convertir cualquier lugar que encuentres en tu " -"hogar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159706,11 +157957,8 @@ msgstr "Minero" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"¡Sos un minero, y no es algo minor..! Tu cantimplora está seca, tu martillo " -"neumático se quedó sin nafta, y estás con tus últimas baterías en tu casco " -"de minero..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159722,11 +157970,8 @@ msgstr "Minera" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"¡Sos una minera, y no es algo minor..! Tu cantimplora está seca, tu martillo" -" neumático se quedó sin nafta, y estás con tus últimas baterías en tu casco " -"de minero..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159737,8 +157982,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -159750,8 +157996,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -159797,11 +158044,10 @@ msgstr "Turista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Viniste para conocer el sabor de New England. Ahora, ¡lo que esperás es que " -"New England no conozca el sabor de tu cuerpo!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159812,11 +158058,10 @@ msgstr "Turista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Viniste para conocer el sabor de New England. Ahora, ¡lo que esperás es que " -"New England no conozca el sabor de tu cuerpo!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159827,12 +158072,10 @@ msgstr "Desnudo y Asustado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Estabas filmando un reality show en el bosque y el equipo de producción y " -"los participantes parecen haberse convertido en zombis. Esto se pone " -"serio..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159843,12 +158086,10 @@ msgstr "Desnuda y Asustada" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Estabas filmando un reality show en el bosque y el equipo de producción y " -"los participantes parecen haberse convertido en zombis. Esto se pone " -"serio..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159860,14 +158101,10 @@ msgstr "Auxiliar de Aumentación" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"Cuando aparecieron los biónicos, estuviste rápido para hacerlos parte de tu " -"carrera y pasaste tus días supervisando su instalación. Como uno de los " -"pocos no-zombis en el mundo que podés calibrar un Autodoc, tus habilidades " -"serán útiles ahora que el mundo terminó." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159879,14 +158116,10 @@ msgstr "Auxiliar de Aumentación" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"Cuando aparecieron los biónicos, estuviste rápida para hacerlos parte de tu " -"carrera y pasaste tus días supervisando su instalación. Como una de los " -"pocos no-zombis en el mundo que podés calibrar un Autodoc, tus habilidades " -"serán útiles ahora que el mundo terminó." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159897,15 +158130,11 @@ msgstr "Game Master" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"Intentar arrear gatos hacia un lugar todas las semanas te enseñó algo: " -"usualmente es mejor cortar por lo sano y confiar en tu instinto. Por esa " -"razón, cuando tuviste dos ausentes y los otros dos intentaron comerte, te " -"fuiste. Tal vez puedas encontrar nuevos jugadores en las ruinas del mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159916,15 +158145,11 @@ msgstr "Game Master" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"Intentar arrear gatos hacia un lugar todas las semanas te enseñó algo: " -"usualmente es mejor cortar por lo sano y confiar en tu instinto. Por esa " -"razón, cuando tuviste dos ausentes y los otros dos intentaron comerte, te " -"fuiste. Tal vez puedas encontrar nuevos jugadores en las ruinas del mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159936,16 +158161,10 @@ msgstr "Game Master Biónico" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"Llegaste a tener una gran fortuna, a través de la suerte o de la voluntad, e" -" hiciste juegos para gente que la mayoría conocía por su nombre de pila. " -"Tenías la posibilidad de mimar a tus jugadores, y lo hiciste. Invertiste en " -"biónicos para hacerte más inteligente, y te memorizaste el libro de reglas " -"entero. Esperemos que ese conocimiento te sirva ahora." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159957,16 +158176,10 @@ msgstr "Game Master Biónica" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"Llegaste a tener una gran fortuna, a través de la suerte o de la voluntad, e" -" hiciste juegos para gente que la mayoría conocía por su nombre de pila. " -"Tenías la posibilidad de mimar a tus jugadores, y lo hiciste. Invertiste en " -"biónicos para hacerte más inteligente, y te memorizaste el libro de reglas " -"entero. Esperemos que ese conocimiento te sirva ahora." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -159977,12 +158190,9 @@ msgstr "Guardia de Zoológico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Fuiste llamado a trabajar en tu día franco para alimentar a los animales ya " -"que ninguno de tus compañeros fue a trabajar ese día, por una razón o por " -"otra." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -159993,12 +158203,9 @@ msgstr "Guardia de Zoológico" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Fuiste llamada a trabajar en tu día franco para alimentar a los animales ya " -"que ninguno de tus compañeros fue a trabajar ese día, por una razón o por " -"otra." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -160009,11 +158216,9 @@ msgstr "Golfista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" -"Decidiste alejarte de la familia por un día, para irte solo a jugar al golf " -"un rato." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -160024,11 +158229,9 @@ msgstr "Golfista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" -"Decidiste alejarte de la familia por un día, para irte sola a jugar al golf " -"un rato." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -160073,11 +158276,10 @@ msgstr "" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 @@ -160089,41 +158291,38 @@ msgstr "" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "Competetive Fencer" -msgstr "" +msgid "Competitive Fencer" +msgstr "Esgrimista de Competición" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" -msgstr "" +msgid "Competitive Fencer" +msgstr "Esgrimista de Competición" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py @@ -160163,8 +158362,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" #: lang/json/professions_from_json.py @@ -160176,8 +158375,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" #: lang/json/professions_from_json.py @@ -160189,9 +158388,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" #: lang/json/professions_from_json.py @@ -160203,9 +158402,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" #: lang/json/professions_from_json.py @@ -160217,9 +158416,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" #: lang/json/professions_from_json.py @@ -160231,9 +158430,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" #: lang/json/professions_from_json.py @@ -160246,7 +158445,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -160259,7 +158458,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -160273,7 +158472,8 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -160287,7 +158487,8 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -160299,10 +158500,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -160314,10 +158515,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -160662,6 +158863,40 @@ msgid "" " seems that your combat skills might come useful once again." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" @@ -161474,6 +159709,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "A combat-ready cyborg once salvaged from an obscure junkyard…" msgstr "" +"Sos un ciborg listo para el combate, rescatado de algún oscuro basurero..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -161485,6 +159721,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "A combat-ready cyborg once salvaged from an obscure junkyard…" msgstr "" +"Sos una ciborg lista para el combate, rescatada de algún oscuro basurero..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -161752,310 +159989,6 @@ msgid "" "find some other use." msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Brave of the King" -msgstr "Valiente del Rey" - -#. ~ Profession (male Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Es la infantería de elite del antiguo Egipto y guardaespaldas del Faraón. " -"Aunque la armadura no era común debido a las características del desierto, " -"tal equipamiento fue comenzado a usarse durante el período del Nuevo Reino." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Brave of the King" -msgstr "Valiente del Rey" - -#. ~ Profession (female Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Es la infantería de elite del antiguo Egipto y guardaespaldas del Faraón. " -"Aunque la armadura no era común debido a las características del desierto, " -"tal equipamiento fue comenzado a usarse durante el período del Nuevo Reino." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hoplite" -msgstr "Hoplita" - -#. ~ Profession (male Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Es la infantería pesada de las ciudades estado de la antigua Grecia, antes " -"del cambio hacia la falange macedonia. Bien entrenados para el combate en " -"formación pero menos efectivos cuando son superados o están en campo " -"abierto." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hoplite" -msgstr "Hoplita" - -#. ~ Profession (female Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Es la infantería pesada de las ciudades estado de la antigua Grecia, antes " -"del cambio hacia la falange macedonia. Bien entrenados para el combate en " -"formación pero menos efectivos cuando son superados o están en campo " -"abierto." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Legionary" -msgstr "Legionario" - -#. ~ Profession (male Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Es la infantería pesada romana, luego de las reformas militares que " -"estandarizaron el equipamiento de las legiones. Entrenados para actuar en " -"formación con jabalina y espada, y reconocidos por sus fortificaciones en el" -" campo de batalla." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Legionary" -msgstr "Legionaria" - -#. ~ Profession (female Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Es la infantería pesada romana, luego de las reformas militares que " -"estandarizaron el equipamiento de las legiones. Entrenados para actuar en " -"formación con jabalina y espada, y reconocidos por sus fortificaciones en el" -" campo de batalla." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Viking" -msgstr "Vikingo" - -#. ~ Profession (male Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Son los infames piratas del período medieval temprano, exploradores y " -"saqueadores de varios países escandinavos." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Viking" -msgstr "Vikinga" - -#. ~ Profession (female Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Son los infames piratas del período medieval temprano, exploradores y " -"saqueadores de varios países escandinavos." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Man-at-Arms" -msgstr "Hombre de Armas" - -#. ~ Profession (Man-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Es la caballería pesada medieval de varios países de Europa, tanto de sangre" -" noble como sangre común. Mientras que tradicionalmente los caballeros eran " -"hombres de armas, no todo hombre de armas era un caballero." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Woman-at-Arms" -msgstr "Mujer de Armas" - -#. ~ Profession (Woman-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Es la caballería pesada medieval de varios países de Europa, tanto de sangre" -" noble como sangre común. Mientras que tradicionalmente los caballeros eran " -"hombres de armas, no todo hombre de armas era un caballero." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Horse Archer" -msgstr "Arquero a Caballo" - -#. ~ Profession (male Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Es la famosa caballería ligera del Imperio Mongol. Reconocidos por su " -"habilidad como arqueros a caballo." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Horse Archer" -msgstr "Arquera a Caballo" - -#. ~ Profession (female Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Es la famosa caballería ligera del Imperio Mongol. Reconocidos por su " -"habilidad como arqueros a caballo." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Samurai" -msgstr "Samurai" - -#. ~ Profession (male Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Es el guerrero noble del feudo japonés. Conocidos originalmente por ser " -"maestros del caballo y el arco, se volvieron famosos por su habilidad con la" -" espada en épocas posteriores." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Samurai" -msgstr "Samurai" - -#. ~ Profession (female Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Es el guerrero noble del feudo japonés. Conocidos originalmente por ser " -"maestros del caballo y el arco, se volvieron famosos por su habilidad con la" -" espada en épocas posteriores." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Wanderer" -msgstr "Errante" - -#. ~ Profession (male Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Siempre preferiste la comodidad de estar a cielo abierto, lejos de las " -"complejidades de la vida moderna. Aunque por lo que parece, las cosas han " -"cambiado desde la última vez que estuviste cerca de la civilización." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Wanderer" -msgstr "Errante" - -#. ~ Profession (female Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Siempre preferiste la comodidad de estar a cielo abierto, lejos de las " -"complejidades de la vida moderna. Aunque por lo que parece, las cosas han " -"cambiado desde la última vez que estuviste cerca de la civilización." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Prehistoric Hunter" -msgstr "Cazador Prehistórico" - -#. ~ Profession (male Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Una reliquia prehistórica viviente, fuera de lugar, náufrago en un mundo " -"aterrador y desconocido. La vida como cazador-recolector era difícil, pero " -"por lo menos no tenías que pelear con muertos vivientes y estaba tu familia " -"para apoyarte. Ahora, estás solo." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Prehistoric Hunter" -msgstr "Cazadora Prehistórica" - -#. ~ Profession (female Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Una reliquia prehistórica viviente, fuera de lugar, náufraga en un mundo " -"aterrador y desconocido. La vida como cazadora-recolectora era difícil, pero" -" por lo menos no tenías que pelear con muertos vivientes y estaba tu familia" -" para apoyarte. Ahora, estás sola." - #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sugar Boy" @@ -162082,876 +160015,6 @@ msgid "" "You have your whole life ahead of you and it's gonna be sweet!" msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Fighter" -msgstr "Luchador" - -#. ~ Profession (male Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Maestro de las armas y las armaduras, y combatiente aterrador de artes " -"marciales. Sos un luchador, forjado en la guerra y templado en el campo de " -"batalla." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Fighter" -msgstr "Luchadora" - -#. ~ Profession (female Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Maestra de las armas y las armaduras, y combatiente aterradora de artes " -"marciales. Sos un luchadora, forjada en la guerra y templada en el campo de " -"batalla." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Rogue" -msgstr "Ladrón" - -#. ~ Profession (male Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Fuiste un travieso niño de la calle, habilidoso en la prestidigitación y " -"mortal con un cuchillo. Sos un ladrón, un estafador con muchos recursos, y " -"un caco maestro." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Rogue" -msgstr "Ladrona" - -#. ~ Profession (female Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Fuiste una traviesa niña de la calle, habilidosa en la prestidigitación y " -"mortal con un cuchillo. Sos una ladrona, una estafadora con muchos recursos," -" y una ratera maestra." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Barbarian" -msgstr "Bárbaro" - -#. ~ Profession (male Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Un niño de Crom, natural del norte polar. Sos un bárbaro, tan aterrador y " -"formidable como esa tierra indómita a la que llamás hogar." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Barbarian" -msgstr "Bárbara" - -#. ~ Profession (female Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Una niña de Crom, natural del norte polar. Sos una bárbara, tan aterradora y" -" formidable como esa tierra indómita a la que llamás hogar." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Skald" -msgstr "Escaldo" - -#. ~ Profession (male Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Un misterioso trovador y narrador errante, natural de las tierras altas del " -"norte. Sos un escaldo, un bárbaro noble, guardián del conocimiento y " -"portavoz de los espíritus." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Skald" -msgstr "Escalda" - -#. ~ Profession (female Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Una misteriosa trovadora y narradora errante, natural de las tierras altas " -"del norte. Sos una escalda, una bárbara noble, guardiana del conocimiento y " -"portavoz de los espíritus." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Ranger" -msgstr "Ranger" - -#. ~ Profession (male Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Uno de los pocos que vaga por el bosque y jamás se pierde. Sos un ranger, " -"conocedor de los caminos del bosque y mortífero con un arco." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Ranger" -msgstr "Ranger" - -#. ~ Profession (female Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Una de los pocos que vaga por el bosque y jamás se pierde. Sos una ranger, " -"conocedora de los caminos del bosque y mortífera con un arco." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Monk" -msgstr "Monje" - -#. ~ Profession (male Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Siervo de una orden exótica de ascetas, sos un monje, un devoto pío con " -"amplio conocimiento en el combate desarmado." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Monk" -msgstr "Monja" - -#. ~ Profession (female Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Sierva de una orden exótica de ascetas, sos una monja, una devota pía con " -"amplio conocimiento en el combate desarmado." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Knight" -msgstr "Caballero" - -#. ~ Profession (male Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Declarado defensor de las tierras, sos un caballero, un guerrero educado y " -"entrenado desde la niñez en el camino del combate honorable." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Knight" -msgstr "Caballera" - -#. ~ Profession (female Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Declarada defensora de las tierras, sos una caballera, una guerrera educada " -"y entrenada desde la niñez en el camino del combate honorable." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Sorcerer" -msgstr "Hechicero" - -#. ~ Profession (Sorcerer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Un sabio estudiante de un antiguo conocimiento olvidado. Sos un mago, un " -"practicante místico de las artes arcanas (biónicas)." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Sorceress" -msgstr "Hechicera" - -#. ~ Profession (Sorceress) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Una sabia estudiante de un antiguo conocimiento olvidado. Sos una maga, una " -"practicante mística de las artes arcanas (biónicas)." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-Hacker" -msgstr "Robo-Hacker" - -#. ~ Profession (male Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Antes del fin, tu pasatiempo era reprogramar ilegalmente y reconvertir " -"robots comerciales, pero nunca pensaste que tu supervivencia iba a depender " -"de eso." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-Hacker" -msgstr "Robo-Hacker" - -#. ~ Profession (female Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Antes del fin, tu pasatiempo era reprogramar ilegalmente y reconvertir " -"robots comerciales, pero nunca pensaste que tu supervivencia iba a depender " -"de eso." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Engineer" -msgstr "Ingeniero en Robótica" - -#. ~ Profession (male Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"Eras uno de los ingenieros de nivel bajo en una fábrica de robótica. La " -"administración siempre te decía que poner lanzallamas o manhacks era " -"'innecesario' o 'muy peligroso', pero ahora no hay nadie que te detenga." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Engineer" -msgstr "Ingeniera en Robótica" - -#. ~ Profession (female Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"Eras uno de los ingenieros de nivel bajo en una fábrica de robótica. La " -"administración siempre te decía que poner lanzallamas o manhacks era " -"'innecesario' o 'muy peligroso', pero ahora no hay nadie que te detenga." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Prodigy" -msgstr "Prodigio en Robótica" - -#. ~ Profession (male Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" -"Has estado construyendo robots desde que aprendiste a sostener una " -"soldadora, y no pensás dejar que el fin del mundo evite que eso siga " -"sucediendo." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Prodigy" -msgstr "Prodigio en Robótica" - -#. ~ Profession (female Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" -"Has estado construyendo robots desde que aprendiste a sostener una " -"soldadora, y no pensás dejar que el fin del mundo evite que eso siga " -"sucediendo." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robot Adoptee" -msgstr "Adoptado por Robot" - -#. ~ Profession (male Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" -"Durante los disturbios, un robot militar salió de la nada a rescatarte. Tal " -"vez piense que sos alguien importante, quién sabe." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robot Adoptee" -msgstr "Adoptada por Robot" - -#. ~ Profession (female Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" -"Durante los disturbios, un robot militar salió de la nada a rescatarte. Tal " -"vez piense que sos alguien importante, quién sabe." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-hunter" -msgstr "Robot Cazador" - -#. ~ Profession (male Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Le pagaste al hacker de tu barrio para que te construya un perro cazador " -"robótico. Es casi tan bueno como el real, aunque no responde bien a las " -"caricias." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-hunter" -msgstr "Robot Cazador" - -#. ~ Profession (female Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Le pagaste al hacker de tu barrio para que te construya un perro cazador " -"robótico. Es casi tan bueno como el real, aunque no responde bien a las " -"caricias." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (male Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"Una vez que se comprobó que los biónicos eran seguros, fuiste seleccionado " -"para el programa súper secreto de mejora de soldados. Como si ser un agente " -"de primer nivel de las fuerzas especiales no fuera suficiente, tus nuevas " -"mejoras te permiten desenvolverte en cualquier combate sea humano o no." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (female Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"Una vez que se comprobó que los biónicos eran seguros, fuiste seleccionado " -"para el programa súper secreto de mejora de soldados. Como si ser un agente " -"de primer nivel de las fuerzas especiales no fuera suficiente, tus nuevas " -"mejoras te permiten desenvolverte en cualquier combate sea humano o no." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Seasoned Tourist" -msgstr "Turista Experto" - -#. ~ Profession (male Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Debido a tu sed de aventuras, hambre por la buena comida y ahorros " -"disponibles, has podido viajar extensivamente. Viniste acá para conocer el " -"sabor de New England, ahora ¡lo que esperás es que New England no conozca el" -" sabor de tu cuerpo!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Seasoned Tourist" -msgstr "Turista Experta" - -#. ~ Profession (female Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Debido a tu sed de aventuras, hambre por la buena comida y ahorros " -"disponibles, has podido viajar extensivamente. Viniste acá para conocer el " -"sabor de New England, ahora ¡lo que esperás es que New England no conozca el" -" sabor de tu cuerpo!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Post-Human Cyborg" -msgstr "Androide Post-Humano" - -#. ~ Profession (male Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" -"Como trans-humanista rico que eras, decidiste ponerte al tope de gama de la " -"tecnología de mejoras para acercar el futuro. Ahora sos un ejemplo ambulante" -" de lo que la humanidad podría haberse convertido." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Post-Human Cyborg" -msgstr "Androide Post-Humano" - -#. ~ Profession (female Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" -"Como trans-humanista rica que eras, decidiste ponerte al tope de gama de la " -"tecnología de mejoras para acercar el futuro. Ahora sos un ejemplo ambulante" -" de lo que la humanidad podría haberse convertido." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Janitor" -msgstr "Portero" - -#. ~ Profession (male Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Te ganabas la vida limpiando envoltorios de chocolates y sacando los chicles" -" de abajo de las mesas. Ahora lo único que vas a estar limpiando son los " -"cerebros de los muertos." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Janitor" -msgstr "Portera" - -#. ~ Profession (female Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Te ganabas la vida limpiando envoltorios de chocolates y sacando los chicles" -" de abajo de las mesas. Ahora lo único que vas a estar limpiando son los " -"cerebros de los muertos." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Poor Student" -msgstr "Alumno Pobre" - -#. ~ Profession (male Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Venís de una familia de bajos recursos, siempre se burlaban de tu ropa de " -"segunda mano y de recibir las comidas gratis en la cafetería. Y lo peor, tu " -"roñosa mochila vieja se terminó de romper en el peor momento. Por lo menos, " -"ahora nadie se burla de vos." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Poor Student" -msgstr "Alumna Pobre" - -#. ~ Profession (female Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Venís de una familia de bajos recursos, siempre se burlaban de tu ropa de " -"segunda mano y de recibir las comidas gratis en la cafetería. Y lo peor, tu " -"roñosa mochila vieja se terminó de romper en el peor momento. Por lo menos, " -"ahora nadie se burla de vos." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Elementary Student" -msgstr "Alumno de Primaria" - -#. ~ Profession (male Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Sos solo un pibe, y ahora el mundo se ha convertido en algo salido de tus " -"pesadillas. Los adultos en los que confiabas están todos muertos o son " -"muertos vivientes. ¿Qué vas a hacer?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Elementary Student" -msgstr "Alumna de Primaria" - -#. ~ Profession (female Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Sos solo una piba, y ahora el mundo se ha convertido en algo salido de tus " -"pesadillas. Los adultos en los que confiabas están todos muertos o son " -"muertos vivientes. ¿Qué vas a hacer?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hockey Player" -msgstr "Jugador de Hockey" - -#. ~ Profession (male Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Eras arquero de las ligas menores de hockey antes de que el resto del equipo" -" se convirtiera en zombi. Sos vos y tu indumentaria de hockey contra los " -"muertos vivientes, pero por lo menos ahora no hay árbitros." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hockey Player" -msgstr "Jugadora de Hockey" - -#. ~ Profession (female Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Eras arquera de las ligas menores de hockey antes de que el resto del equipo" -" se convirtiera en zombi. Sos vos y tu indumentaria de hockey contra los " -"muertos vivientes, pero por lo menos ahora no hay árbitros." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Baseball Player" -msgstr "Jugador de Béisbol" - -#. ~ Profession (male Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Baseball Player" -msgstr "Jugadora de Béisbol" - -#. ~ Profession (female Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Football Player" -msgstr "Jugador de F.Americano" - -#. ~ Profession (male Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Eras la estrella del equipo local de fútbol americano, adorado por tus " -"compañeros y por la hinchada. Ahora solo adoran tu cerebro. Todavía tenés " -"puesta tu corpulenta indumentaria de fútbol americano." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Football Player" -msgstr "Jugadora de F.Americano" - -#. ~ Profession (female Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Eras la estrella del equipo local de fútbol americano, adorada por tus " -"compañeros y por la hinchada. Ahora solo adoran tu cerebro. Todavía tenés " -"puesta tu corpulenta indumentaria de fútbol americano." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Preppy Student" -msgstr "Alumno Preuniversitario" - -#. ~ Profession (male Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Tus padres eran gente importante, siempre ocupados, que te querían dar todas" -" las ventajas y te presionaban para que seas \"exitoso\", sea lo que eso " -"signifique. Te hubiera gustado que alguna vez te hayan dejado disfrutar tu " -"infancia, o te hubieran mostrado amor. Ahora no vas a recibir ninguna de " -"esas cosas." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Preppy Student" -msgstr "Alumna Preuniversitaria" - -#. ~ Profession (female Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Tus padres eran gente importante, siempre ocupados, que te querían dar todas" -" las ventajas y te presionaban para que seas \"exitoso\", sea lo que eso " -"signifique. Te hubiera gustado que alguna vez te hayan dejado disfrutar tu " -"infancia, o te hubieran mostrado amor. Ahora no vas a recibir ninguna de " -"esas cosas." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Awakened" -msgstr "Despertado" - -#. ~ Profession (male Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Awakened" -msgstr "Despertada" - -#. ~ Profession (female Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Cyclist" -msgstr "Ciclista Biónico" - -#. ~ Profession (male Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Cyclist" -msgstr "Ciclista Biónica" - -#. ~ Profession (female Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Welder" -msgstr "Soldador" - -#. ~ Profession (male Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Welder" -msgstr "Soldadora" - -#. ~ Profession (female Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Primitive Survivalist" -msgstr "Survivalista Primitivo" - -#. ~ Profession (male Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Primitive Survivalist" -msgstr "Sobreviviente Primitiva" - -#. ~ Profession (female Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" @@ -163117,7 +160180,7 @@ msgid "LIGHTING" msgstr "ILUMINACIÓN" #. ~ Crafting recipes subcategory of 'ARMOR' category -#: lang/json/recipe_category_from_json.py src/game_inventory.cpp +#: lang/json/recipe_category_from_json.py msgid "STORAGE" msgstr "ALMACENAMIENTO" @@ -167680,8 +164743,8 @@ msgid "" "You have survived the initial wave of panic, and have achieved (relative) " "safety in one of the many government evac shelters." msgstr "" -"Sobreviviste a la primera oleada de pánico, y has conseguido (relativamente)" -" la seguridad en uno de los refugios de evacuados que dispuso el gobierno." +"Sobreviviste a la primera oleada de pánico, y has llegado a la seguridad " +"(relativa) en uno de los refugios de evacuados que dispuso el gobierno." #. ~ Description for scenario 'Evacuee' for a female character. #: lang/json/scenario_from_json.py @@ -167690,8 +164753,8 @@ msgid "" "You have survived the initial wave of panic, and have achieved (relative) " "safety in one of the many government evac shelters." msgstr "" -"Sobreviviste a la primera oleada de pánico, y has conseguido (relativamente)" -" la seguridad en uno de los refugios de evacuados que dispuso el gobierno." +"Sobreviviste a la primera oleada de pánico, y has llegado a la seguridad " +"(relativa) en uno de los refugios de evacuados que dispuso el gobierno." #. ~ Starting location for scenario 'Evacuee'. #: lang/json/scenario_from_json.py @@ -167734,9 +164797,9 @@ msgstr "" #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. -#. ~ Starting location for scenario 'Robots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "In Town" @@ -167872,6 +164935,34 @@ msgstr "" "recibiste el cuidado médico adecuado y ahora la herida se empezó a poner un " "poco verde." +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -168595,19 +165686,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -168617,7 +165708,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -168627,7 +165718,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" @@ -168641,6 +165732,9 @@ msgid "" " to the Designated Living Zones. You begin in the (relative) safety in one " "of the many government evac shelters." msgstr "" +"Sobreviviste a la primera oleada de pánico, y has conseguido evitar que te " +"llevaran a una Zona Designada de Vivienda. Empezás en la seguridad " +"(relativa) de uno de los refugios de evacuados dispuestos por el gobierno." #. ~ Description for scenario 'Evacuee' for a female character. #: lang/json/scenario_from_json.py @@ -168650,6 +165744,9 @@ msgid "" " to the Designated Living Zones. You begin in the (relative) safety in one " "of the many government evac shelters." msgstr "" +"Sobreviviste a la primera oleada de pánico, y has conseguido evitar que te " +"llevaran a una Zona Designada de Vivienda. Empezás en la seguridad " +"(relativa) de uno de los refugios de evacuados dispuestos por el gobierno." #. ~ Description for scenario 'Missed' for a male character. #. ~ Description for scenario 'Large Building' for a male character. @@ -168956,124 +166053,6 @@ msgctxt "start_name" msgid "Candy Shop" msgstr "" -#. ~ Name for scenario 'Robots' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Robots" -msgstr "Robots" - -#. ~ Name for scenario 'Robots' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Robots" -msgstr "Robots" - -#. ~ Description for scenario 'Robots' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Durante los disturbios y el caos, te escondiste en un centro de despliegue " -"de robots esperando que los robots te protegieran, pero parece que son más " -"peligrosos que los zombis." - -#. ~ Description for scenario 'Robots' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Durante los disturbios y el caos, te escondiste en un centro de despliegue " -"de robots esperando que los robots te protegieran, pero parece que son más " -"peligrosos que los zombis." - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Challenge-FEMA Death Camp" -msgstr "Desafío-Campamento FEMA de la Muerte" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Challenge-FEMA Death Camp" -msgstr "Desafío-Campamento FEMA de la Muerte" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a female -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" - -#. ~ Starting location for scenario 'Challenge-FEMA Death Camp'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Fema Camp" -msgstr "Campamento Fema" - -#. ~ Name for scenario 'Mansion Holdout' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Mansion Holdout" -msgstr "Resistencia en Mansión" - -#. ~ Name for scenario 'Mansion Holdout' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Mansion Holdout" -msgstr "Resistencia en Mansión" - -#. ~ Description for scenario 'Mansion Holdout' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"Mientras el mundo se terminaba, te sentías relativamente a salvo adentro de " -"la mansión donde trabajaste por varios años. Ahora que los muertos están " -"golpeando a la puerta, tal vez sea el momento de irse." - -#. ~ Description for scenario 'Mansion Holdout' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"Mientras el mundo se terminaba, te sentías relativamente a salvo adentro de " -"la mansión donde trabajaste por varios años. Ahora que los muertos están " -"golpeando a la puerta, tal vez sea el momento de irse." - -#. ~ Starting location for scenario 'Mansion Holdout'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Mansion" -msgstr "Mansión" - #. ~ display string for skill display type 'display_melee' #: lang/json/skill_display_type_from_json.py msgid "Melee skills" @@ -169240,12 +166219,7 @@ msgstr "cocinar" #: lang/json/skill_from_json.py msgid "" "Your skill in combining food ingredients to make other, tastier food items." -" It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." msgstr "" -"Es tu habilidad para combinar ingredientes y hacer una comida más sabrosa. " -"También puede usarse en algunas mezclas químicas y otras tareas más " -"esotéricas." #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -169505,7 +166479,7 @@ msgstr "" #: lang/json/skill_from_json.py msgid "lock picking" -msgstr "" +msgstr "usar ganzúa" #. ~ Description for {'str': 'lock picking'} #: lang/json/skill_from_json.py @@ -169515,13 +166489,24 @@ msgid "" "chance and decreases time required to successfully pick the lock." msgstr "" +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" + #: lang/json/skill_from_json.py msgid "weapon" msgstr "arma" #: lang/json/skill_from_json.py msgid "spellcraft" -msgstr "" +msgstr "hechicería" #. ~ Description for spellcraft #: lang/json/skill_from_json.py @@ -170089,8 +167074,8 @@ msgid "" "you'll probably be left with no meat! Use a BB gun or maybe a .22 rifle." msgstr "" "Las ardillas son bastante sabrosas, pero si les disparás con un arma de alta" -" potencia, ¡probablemente no le dejes nada de carne! Usá una pistola de " -"balines o tal vez un rifle calibre .22." +" potencia, ¡probablemente no le dejes nada de carne! Usá un rifle de aire " +"comprimido o tal vez un rifle calibre .22." #: lang/json/snippet_from_json.py msgid "" @@ -170411,8 +167396,9 @@ msgid "" "BB guns may seem like a joke, but they've got their uses. They're good for " "hunting small game, or getting to know the basics of rifles." msgstr "" -"Los rifles de balines parecen una joda, pero pueden ser útiles. Sirven para " -"cazar animales pequeños, o para aprender el uso básico de los rifles." +"Los rifles de aire comprimido parecen una joda, pero pueden ser útiles. " +"Sirven para cazar animales pequeños, o para aprender el uso básico de los " +"rifles." #: lang/json/snippet_from_json.py msgid "" @@ -171379,6 +168365,12 @@ msgid "" msgstr "" "No. La Torazina te nubla seriamente la mente. Necesitás mantenerte atento." +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde" +" of undead!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "" @@ -171443,6 +168435,14 @@ msgstr "" msgid "Wish I could, ." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "" @@ -171475,6 +168475,10 @@ msgstr "" msgid "Not exactly the settlin' type." msgstr "" +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "" + #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -171795,6 +168799,10 @@ msgid "" " ending, just for a while?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "" + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "Ey, dale, , así descanso un rato, ¿cómo andás?" @@ -172335,6 +169343,14 @@ msgstr "¡Hey, estoy acá!" msgid "Hold up a second, will ya?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "No estoy afiliado." @@ -174510,7 +171526,7 @@ msgstr "muerto vivo" #: lang/json/snippet_from_json.py msgid "shamblers" -msgstr "" +msgstr "desórdenes" #: lang/json/snippet_from_json.py msgid "walkers" @@ -174518,7 +171534,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "goo-pukers" -msgstr "" +msgstr "babosos" #: lang/json/snippet_from_json.py msgid "zeds" @@ -174780,6 +171796,117 @@ msgstr "" msgid "survivor" msgstr "sobreviviente" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr "" @@ -174958,6 +172085,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid " You are forgotten among the billions lost in the cataclysm…" msgstr "" +" Quedás olvidado/a entre los miles de millones perdidos en el cataclismo…" #: lang/json/snippet_from_json.py msgid "" @@ -181433,6 +178561,42 @@ msgid "" "Michael Baker" msgstr "" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "\"TENÍAMOS RAZÓN, ES CULPA DEL GOBIERNO\"" @@ -181541,6 +178705,10 @@ msgid "" "unconscious body on that Autodoc and remove the chip that is messing up " "their brain!\"" msgstr "" +"\"¡Salvemos a los ciborgs! Por favor, el que lea esto, ¡tenés que ayudarlos!" +" Dejalos inconscientes o desactivalos, no me importa cómo lo hagas. ¡Pero " +"poné su cuerpo inconsciente en un Autodoc para quitarle el chip que está " +"arruinando su cerebro!\"" #: lang/json/snippet_from_json.py #, no-python-format @@ -182361,11 +179529,9 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" msgstr "" -"\"Me voy a establecer algún día. Con unos frutales grandes, un par de amigos" -" y futura familia para pasar el tiempo, y mi ejército de ezclavos para " -"cuidar el lugar.\"" #: lang/json/snippet_from_json.py msgid "" @@ -183295,6 +180461,51 @@ msgstr "Este no es el mundo que yo elegí. ¡Hasta se llevaron mis discos!" msgid "Dark days are ahead, but is that all?" msgstr "Se vienen días oscuros, pero ¿eso será todo? ¿Eh?" +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 1: I had a dream and I can vaguely remember seeing a strange " +"truck that had overly round edges, it tooted its horn but instead I heard " +"people screaming, and when I blinked suddenly the truck wasn't just rounded," +" but made of people screaming forever inside a viscous blob.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 2: In last night's dream I was driving a rusty and dusty humvee," +" with my trusty companion using a massive pneumatic weapon to shoot rebar " +"pipes into faceless enemies chasing us. My heart is still pumping, why does" +" it feel like a memory instead of a dream?\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 3: Another dream. This time I dropped a diamond on a sea of " +"charcoal dust, and the diamond begun to shine and make the dust glitter " +"until a shape of a car emerged from the dust made entirely of thick, " +"perfectly angular diamond. A beautiful shape appeared on it, and in a flash" +" of light I was pierced by a glittering lance.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 4: These dreams get weirder. My companion of mine was driving " +"the RV, and I opened the back of the RV and found there was no roof but a " +"whole tray of gargantuan flowers made of solar panels arching toward the sun" +" greedily, light flowing from them into the RV. I stepped back and lost my " +"footing, seeing a strange portal on the side before I fell into a limitless " +"darkness.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 5: My most recent dream was better so here it goes. I was " +"walking in a meadow when a strange stone with a perfect spiral on it fell in" +" front of me. I picked it up and blew on it, and a tornado roared from the " +"stone. In its wake, a car appeared, wickedly shaped and the sound of " +"tornadoes coming from its exhaust- and I rode the wind, hurling thunderbolts" +" at any who got in my way.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "" @@ -184454,6 +181665,53 @@ msgstr "" msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you" +" think they eat cat food?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big" +" lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind" +" of big lizard down there. Probably not a good idea to check." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special" @@ -184461,6 +181719,14 @@ msgid "" "breakthroughs." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -184503,9 +181769,10 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "\"¿Por qué ese lugar de mierda está repleto de lagartos?\"" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" msgstr "" -"\"¡Compañero escamoso amigo! Esta noche cenaremos a esos simios sin pelo.\"" #: lang/json/snippet_from_json.py msgid "\"where's some .700 t-rex medicine when you need it?\"" @@ -184520,30 +181787,33 @@ msgstr "" "mariposa?\"" #: lang/json/snippet_from_json.py -msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" +msgid "" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." msgstr "" -"\"Arma. Espada. Espadarma. A la mierda las bayonetas, esto está mucho más " -"copado.\"" #: lang/json/snippet_from_json.py msgid "" -"\"Not sure if wielding this thing makes me feel like a bodybuilder or a " -"theoretical physicist. Both?\"" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" msgstr "" -"\"No estoy seguro de si tener esto en la mano me hace sentir como un " -"fisicoculturista o un físico teórico. ¿Las dos cosas?\"" - -#: lang/json/snippet_from_json.py -msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" -msgstr "\"¡Este no es el cañón de mano calibre .50 de tu abuelita!\"" - -#: lang/json/snippet_from_json.py -msgid "\"Nice pistol! Which trigger fires the flamer?\"" -msgstr "\"¡Qué buena pistola! ¿Con cuál gatillo se lanzan llamas?\"" #: lang/json/snippet_from_json.py -msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" -msgstr "\"Para qué mierda le agregué esta ballesta a esta pistola.\"" +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -184769,14 +182039,6 @@ msgstr "pibe" msgid "chief" msgstr "jefe" -#: lang/json/snippet_from_json.py -msgid "" -"\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " -"repeat.\"" -msgstr "" -"\"Disparale a los mutantes élficos. Fabricá más pernos con sus huesos. " -"Enjuagalos y hacelo otra vez.\"" - #: lang/json/snippet_from_json.py msgid "" "A flyer for some kind of candy. It shows a picture of a gleaming human made" @@ -184784,100 +182046,6 @@ msgid "" "human candy! Are you a real monster? Will you be able to devour it all?\"" msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"\"Tank drone, meet the real deal. See how you handle 120 millimeters of " -"HELL YEAH!\"" -msgstr "" -"\"Dron tanque, enfrentate con algo serio. ¡Vamos a ver cómo te manejás con " -"120 milímetros de LA PUTA QUE TE PARIÓ!\"" - -#: lang/json/snippet_from_json.py -msgid "\"big fucking gun, earplugs are good for your brain\"" -msgstr "" -"\"un arma grande de la puta madre, los tapones para los orejas son buenos " -"para tu cerebro\"" - -#: lang/json/snippet_from_json.py -msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" -msgstr "" -"\"Tengo un cañón de tanque montado en una bicicleta. Tu argumento no es " -"válido.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Next person to call this infantry fighting vehicle a 'tank' is walking " -"home.\"" -msgstr "" -"\"El próximo que le diga 'tanque' a este vehículo de infantería se vuelve " -"caminando a la casa.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Found what used to be an armored platoon. Most tanks have hatches up top," -" not in the back like the new ones they're using.\"" -msgstr "" -"\"Encontré lo que alguna vez fue un pelotón armado. La mayoría de los " -"tanques tienen las escotillas en la parte de arriba, no atrás como los " -"nuevos que están usando.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Agh, to See the Spiral in such a Distorted Shape! Manipulated for its " -"Vortex motion! Its Perpetual Grace! Its beauty Tarnished…\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "" -"\"Mi amiga murió, pero por lo menos la convertí en una torreta de blobo.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"I have this laser cannon turret on my shopping cart. I push it around and" -" everything dies. I think I'm gonna toss it in the lake-- this just isn't " -"fair anymore.\"" -msgstr "" -"\"Tengo una torreta de cañón láser en mi changuito. Lo voy llevando y todo " -"se va muriendo. Creo que lo voy a tirar en el lago-- porque esto ya no es " -"justo para ellos.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Day 40. Controls broken-- car's magic reactor makes it goes inexorably " -"forward. Giant rollers on front demolish forest. Maine, here I come.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"my car is a diamond in the rough… literally\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" -msgstr "\"Le agregué tantas cosas a mi taxi que se prendió fuego. Ups.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"If I put one cargo dimension into another cargo dimension, does the " -"universe end?\"" -msgstr "" -"\"Si pongo una carga dimensional adentro de otra carga dimensional, ¿se " -"acaba el universo?\"" - -#: lang/json/snippet_from_json.py -msgid "\"one day, i will be part of car, too\"" -msgstr "\"algún día, yo también seré parte del auto\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Putta little bitta dynamite and halfa landmine in an old soda can… WHAM!" -" You goin' somewhere.\"" -msgstr "" - #: lang/json/speech_from_json.py msgid "\"Hello?\"" msgstr "\"¿Hola?\"" @@ -186380,17 +183548,57 @@ msgid "\"Our food contains up to 95% real food.\"" msgstr "" #: lang/json/speech_from_json.py -msgid "\"FoodPlace: It's the Calories.\"" +msgid "\"At FoodPlace your excellent value brings nourishment and delight.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"At FoodPlace we have a host of solutions for your food needs!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"♪Eat at FoodPlace. ♫It is a place with food.♪\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is a popular food chain selling food items. What else is there " +"to know?\"" msgstr "" #: lang/json/speech_from_json.py msgid "\"You need food, don't you? Then come with me to FOODPLACE!!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"You need food, don't you? It's time for FoodPlace!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: It's the Calories.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Don’t get caught in the web of unsafe diet.\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"FoodPlace: Edible food is OUR guarantee!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: We bring food to life!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Edible food is one of our main goals!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is the only way to obtain healthy and strong lifecycle " +"choices!!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "Wanna play with me?" msgstr "¿Querés jugar conmigo?" @@ -187555,154 +184763,6 @@ msgstr "" msgid "a semi-musical chirping that echos across the landscape." msgstr "" -#: lang/json/speech_from_json.py -msgid "\"bzzzzzz.\"" -msgstr "\"bzzzzzz.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep.\"" -msgstr "\"Bip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep?\"" -msgstr "\"¿Bip?\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep!\"" -msgstr "\"¡Bip!\"" - -#: lang/json/speech_from_json.py -msgid "\"Beeeeep beep.\"" -msgstr "\"Biiiiip biip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Bebebeeeep.\"" -msgstr "\"Bibibiiiip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep boop beep?\"" -msgstr "\"Bip bup bip?\"" - -#: lang/json/speech_from_json.py -msgid "\"Beedoo-Beep.\"" -msgstr "\"Bidu-Bip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep Beep. Whirr.\"" -msgstr "\"Bip Bip. Whirr.\"" - -#: lang/json/speech_from_json.py -msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "\"Vrrrr Hrrrmmm.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whirrrrr-click click.\"" -msgstr "\"Whirrrrr-click click.\"" - -#: lang/json/speech_from_json.py -msgid "\"Boodoobeep beep beep.\"" -msgstr "\"Budubip bip bip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "\"Brannnnnnn Brzt Brmmmm.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "\"Whshoooo. Brzzzt. Brzzzt.\"" - -#: lang/json/speech_from_json.py -msgid "\"Brrm Bum Brrm?\"" -msgstr "\"Brrm Bum Brrm?\"" - -#: lang/json/speech_from_json.py -msgid "\"Pwweeee Krsht.\"" -msgstr "\"Pwweeee Krsht.\"" - -#: lang/json/speech_from_json.py -msgid "\"Fshkt fshkt. Booop.\"" -msgstr "\"Fshkt fshkt. Buuup.\"" - -#: lang/json/speech_from_json.py -msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "\"Vzt. Vzt. Krshhhhhhhh.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "\"Whhhiiii-oooo. Bedip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Grrrnd clang whirrrr.\"" -msgstr "\"Grrrnd clang whirrrr.\"" - -#: lang/json/speech_from_json.py -msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "\"Grrrrrrrnd. Grrrnd.\"" - -#: lang/json/speech_from_json.py -msgid "\"Cla-clang cla-clang!\"" -msgstr "\"¡Cla-clang cla-clang!\"" - -#: lang/json/speech_from_json.py -msgid "\"Klang!\"" -msgstr "\"¡Klang!\"" - -#: lang/json/speech_from_json.py -msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "\"Bzzzt. ¡Bzzzzt!\"" - -#: lang/json/speech_from_json.py -msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "\"Shwwwrrrrnnnzzz bzzt.\"" - -#: lang/json/speech_from_json.py -msgid "a high pitched alarm." -msgstr "una alarma estridente." - -#: lang/json/speech_from_json.py -msgid "a blaring siren." -msgstr "un sirena resonante." - -#: lang/json/speech_from_json.py -msgid "\"CHUG chug chug.\"" -msgstr "\"CHUG chug chug.\"" - -#: lang/json/speech_from_json.py -msgid "\"Creak! Clang clang.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Khr Khr Khr.\"" -msgstr "\"Khr Khr Khr.\"" - -#: lang/json/speech_from_json.py -msgid "a mechanical groaning." -msgstr "un gemido mecánico." - -#: lang/json/speech_from_json.py -msgid "grinding gears." -msgstr "engranajes chirriantes." - -#: lang/json/speech_from_json.py -msgid "tortured machinery." -msgstr "maquinaria retorcida." - -#: lang/json/speech_from_json.py -msgid "\"SQUEE!\"" -msgstr "\"SQUIII!\"" - #: lang/json/start_location_from_json.py msgid "Shelter" msgstr "Refugio" @@ -187915,36 +184975,8 @@ msgstr "" msgid "Candy Shop" msgstr "" -#: lang/json/start_location_from_json.py -msgid "Robot Dispatch Center" -msgstr "Centro de Despliegue de Robots" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp (entrance)" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "Mansion Entrance" -msgstr "Entrada de Mansión" - -#: lang/json/start_location_from_json.py src/gamemode_defense.cpp -msgid "Mansion" -msgstr "Mansión" - -#: lang/json/start_location_from_json.py -msgid "Electronics Store" -msgstr "Negocio de Electrónica" - -#: lang/json/start_location_from_json.py -msgid "Clothing Store" -msgstr "Negocio de Ropa" - #: lang/json/talk_topic_from_json.py -msgid "You there. Quiet down. Can you hear it? The song?" +msgid "Acolyte." msgstr "" #: lang/json/talk_topic_from_json.py @@ -187952,7 +184984,7 @@ msgid "You're back. Have you come to listen to the song?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Acolyte." +msgid "You there. Quiet down. Can you hear it? The song?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188100,32 +185132,34 @@ msgid "Yeah, alright." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." +msgid "There are bones to etch, songs to sing. Wish to join me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." +msgid "Do you wish to take on more songs?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." +msgid "Do you believe you can take on the burden of additional bones?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you believe you can take on the burden of additional bones?" +msgid "A song may yet be sung by you, should you wish to." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you wish to take on more songs?" +msgid "There is an additional song you could take on, if you'd like." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There are bones to etch, songs to sing. Wish to join me?" +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That is all for now." +msgid "" +"The song is… quiet for now. Perhaps with time, more notes will be etched in" +" the bones of this world." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188133,9 +185167,7 @@ msgid "An acolyte should not take on too many songs at once." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The song is… quiet for now. Perhaps with time, more notes will be etched in" -" the bones of this world." +msgid "That is all for now." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188207,16 +185239,16 @@ msgstr "" msgid "I see. Very well then." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Only those who bear my mark will prove themselves worthy of my skills." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "You bear my mark, meaning I believe you have potential to learn to truly " "listen to the Song. Yes, I will lend my skills to you, for now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Only those who bear my mark will prove themselves worthy of my skills." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I am glad to hear it. Let's go then." msgstr "" @@ -188430,14 +185462,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, I can perform first aid. You give me some bandages or a bottle of " -"antiseptic, I'll treat your wounds as best I can." +"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " +"or a bottle of antiseptic, I'm get you fixed when I see you hurting." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " -"or a bottle of antiseptic, I'm get you fixed when I see you hurting." +"Yeah, I can perform first aid. You give me some bandages or a bottle of " +"antiseptic, I'll treat your wounds as best I can." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188609,13 +185641,13 @@ msgid "Thanks. I have some things for you to do." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " -"anymore..." +msgid "Hi there, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there, ." +msgid "" +"STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " +"anymore..." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188689,24 +185721,24 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Anything to do before I go to sleep?" -msgstr "¿Algo para hacer antes de que me vaya a dormir?" +msgid "No, just no..." +msgstr "No, solo no..." #: lang/json/talk_topic_from_json.py -msgid "Just few minutes more..." -msgstr "Unos minutitos más..." +msgid "Just let me sleep, !" +msgstr "¡Dejame dormir, !" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." msgstr "Hacelo rápido, quiero irme a dormir." #: lang/json/talk_topic_from_json.py -msgid "Just let me sleep, !" -msgstr "¡Dejame dormir, !" +msgid "Just few minutes more..." +msgstr "Unos minutitos más..." #: lang/json/talk_topic_from_json.py -msgid "No, just no..." -msgstr "No, solo no..." +msgid "Anything to do before I go to sleep?" +msgstr "¿Algo para hacer antes de que me vaya a dormir?" #: lang/json/talk_topic_from_json.py msgid "Wake up!" @@ -188732,11 +185764,11 @@ msgid "no, go back to sleep." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What is it, friend?" +msgid " *pshhhttt* I'm reading you boss, over." msgstr "" #: lang/json/talk_topic_from_json.py -msgid " *pshhhttt* I'm reading you boss, over." +msgid "What is it, friend?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188820,15 +185852,15 @@ msgid "Let's go." msgstr "Vamos." #: lang/json/talk_topic_from_json.py -msgid "*will engage all enemies." +msgid "*will not engage enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage enemies close enough to attack without moving." +msgid "*will engage nearby enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage distant enemies without moving." +msgid "*will engage weak enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188836,19 +185868,15 @@ msgid "*will engage enemies you attack." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage weak enemies." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "*will engage nearby enemies." +msgid "*will engage distant enemies without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not engage enemies." +msgid "*will engage enemies close enough to attack without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid " " +msgid "*will engage all enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188856,7 +185884,7 @@ msgid " OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid " " msgstr "" #: lang/json/talk_topic_from_json.py @@ -188864,7 +185892,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188872,19 +185900,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188892,7 +185920,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188900,13 +185928,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid " What should do?" msgstr "" @@ -188982,7 +186014,8 @@ msgstr "" #: src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/monexamine.cpp src/monexamine.cpp src/npc.cpp -#: src/pickup.cpp src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp +#: src/pickup.cpp src/player.cpp src/player.cpp src/player.cpp +#: src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." msgstr "No importa." @@ -189015,12 +186048,13 @@ msgid "Attack anything you want." msgstr "Atacá todo lo que quieras." #: lang/json/talk_topic_from_json.py -msgid "*will not reserve any power for defense or utility CBMs." +#, no-python-format +msgid "*will reserve 100% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 25% of CBM power for defense or utility CBMs." +msgid "*will reserve 75% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -189030,12 +186064,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 75% of CBM power for defense or utility CBMs." +msgid "*will reserve 25% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py -#, no-python-format -msgid "*will reserve 100% of CBM power for defense or utility CBMs." +msgid "*will not reserve any power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -189075,12 +186108,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 10% of total power." +msgid "*will recharge power CBMs until has 90% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 25% of total power." +msgid "*will recharge power CBMs until has 75% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -189090,12 +186123,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 75% of total power." +msgid "*will recharge power CBMs until has 25% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 90% of total power." +msgid "*will recharge power CBMs until has 10% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -189131,19 +186164,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not bother to aim at all." +msgid "*will aim when it's convenient." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will take time and aim carefully." +msgid "*will only shoot after taking a long time to aim." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will only shoot after taking a long time to aim." +msgid "*will take time and aim carefully." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will aim when it's convenient." +msgid "*will not bother to aim at all." msgstr "" #: lang/json/talk_topic_from_json.py @@ -189187,7 +186220,7 @@ msgid "OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189195,11 +186228,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189207,7 +186236,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189215,7 +186244,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189223,7 +186252,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189231,7 +186260,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189239,7 +186268,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189247,7 +186276,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189255,13 +186284,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." msgstr "Seguir las mismas reglas que su seguidor." @@ -189434,14 +186467,14 @@ msgstr "" msgid "Sure thing, I'll make my way there." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, this summer heat is hitting me hard, let's take a quick break, how " @@ -189454,10 +186487,6 @@ msgstr "" msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "OK, así dejo de cagarme de frío un rato. ¿Cómo va?" -#: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, it's the time of day for a quick break surely! How are you holding " @@ -189465,13 +186494,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, I'm feeling pretty sick… are you doing OK though?" +msgid "Man it's dark out isn't it? what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " -"what's up?" +msgid "Well, I'm feeling pretty sick… are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189480,6 +186507,12 @@ msgid "" "Anyway, you coping OK, ? " msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " +"what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Now, we've got a moment, I was just thinking it's been a month or so since… " @@ -189551,14 +186584,14 @@ msgstr "Bueno, sin hacer movimientos repentinos..." msgid "Keep your distance!" msgstr "¡Quedate lejos!" -#: lang/json/talk_topic_from_json.py -msgid "This is my territory, ." -msgstr "Este es mi territorio, ." - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is my territory, ." +msgstr "Este es mi territorio, ." + #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." msgstr "Calmate. No te voy a lastimar." @@ -189575,14 +186608,14 @@ msgstr "" msgid "&Put hands up." msgstr "&Levanta las manos." -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "*drops his weapon." msgstr "*suelta su arma." +#: lang/json/talk_topic_from_json.py +msgid "*drops_her_weapon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Now get out of here" msgstr "Ahora andate de acá" @@ -189611,14 +186644,6 @@ msgstr "¿Qué pasa?" msgid "I don't care." msgstr "No me importa." -#: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" -msgstr "Tengo un trabajo para vos. ¿Querés que te cuente?" - -#: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" -msgstr "Tengo otro trabajo para vos. ¿Querés que te cuente?" - #: lang/json/talk_topic_from_json.py msgid "I have other jobs for you. Want to hear about them?" msgstr "" @@ -189628,13 +186653,21 @@ msgid "I have more jobs for you. Want to hear about them?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." -msgstr "No tengo ningún otro trabajo para vos." +msgid "I have another job for you. Want to hear about it?" +msgstr "Tengo otro trabajo para vos. ¿Querés que te cuente?" + +#: lang/json/talk_topic_from_json.py +msgid "I just have one job for you. Want to hear about it?" +msgstr "Tengo un trabajo para vos. ¿Querés que te cuente?" #: lang/json/talk_topic_from_json.py msgid "I don't have any jobs for you." msgstr "No tengo ningún trabajo para vos." +#: lang/json/talk_topic_from_json.py +msgid "I don't have any more jobs for you." +msgstr "No tengo ningún otro trabajo para vos." + #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." @@ -189645,16 +186678,16 @@ msgid "Never mind, I'm not interested." msgstr "No importa, no estoy interesado." #: lang/json/talk_topic_from_json.py -msgid "What about it?" -msgstr "¿Qué te parece?" +msgid "You're not working on anything for me now." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Which job?" msgstr "¿Cuál trabajo?" #: lang/json/talk_topic_from_json.py -msgid "You're not working on anything for me now." -msgstr "" +msgid "What about it?" +msgstr "¿Qué te parece?" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" @@ -189871,31 +186904,31 @@ msgid "Thanks!" msgstr "¡Gracias!" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for not telling you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Nothing comes to my mind now. Ask me later perhaps?" +msgid "Focus on the road, mate!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm too tired, let me rest first." -msgstr "Estoy muy cansado/a, dejame descansar un poco." +msgid "I'm too thirsty, give me something to drink." +msgstr "Tengo mucha sed, dame algo para tomar." #: lang/json/talk_topic_from_json.py msgid "I'm too hungry, give me something to eat." msgstr "Tengo mucha hambre, dame algo para comer." #: lang/json/talk_topic_from_json.py -msgid "I'm too thirsty, give me something to drink." -msgstr "Tengo mucha sed, dame algo para tomar." +msgid "I'm too tired, let me rest first." +msgstr "Estoy muy cansado/a, dejame descansar un poco." #: lang/json/talk_topic_from_json.py -msgid "I must focus on the road!" +msgid "Nothing comes to my mind now. Ask me later perhaps?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Focus on the road, mate!" +msgid "I have some reason for not telling you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I must focus on the road!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189903,16 +186936,16 @@ msgid "Ah, okay." msgstr "Ah, ok." #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "¿Por qué tendría que viajar con vos?" +msgid "Not until I get some antibiotics..." +msgstr "Hasta que no tenga algún antibiótico, no..." #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." msgstr "Recién me preguntaste; preguntame de nuevo después." #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Hasta que no tenga algún antibiótico, no..." +msgid "Why should I travel with you?" +msgstr "¿Por qué tendría que viajar con vos?" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." @@ -190003,21 +187036,21 @@ msgid "On second thought, never mind." msgstr "Pensandolo bien, olvidate." #: lang/json/talk_topic_from_json.py -msgid "I have some reason for denying you training." -msgstr "Tengo razones para negarte el entrenamiento." +msgid "I can't train you properly while you're operating a vehicle!" +msgstr "" +"çNo puedo entrenarte apropiadamente mientras estás controlando un vehículo!" #: lang/json/talk_topic_from_json.py msgid "Give it some time, I'll show you something new later..." msgstr "Dale tiempo, te voy a mostrar algo nuevo después..." #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while I'm operating a vehicle!" -msgstr "" +msgid "I have some reason for denying you training." +msgstr "Tengo razones para negarte el entrenamiento." #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while you're operating a vehicle!" +msgid "I can't train you properly while I'm operating a vehicle!" msgstr "" -"çNo puedo entrenarte apropiadamente mientras estás controlando un vehículo!" #: lang/json/talk_topic_from_json.py msgid "Not a bloody chance, I'm going to get left behind!" @@ -190055,14 +187088,14 @@ msgstr "Prefiero quedarme con eso para mí." msgid "I understand…" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Why should I share my equipment with you?" -msgstr "¿Por qué tendría que compartir mi equipo con vos?" - #: lang/json/talk_topic_from_json.py msgid "You just asked me for stuff; ask later." msgstr "Ya me pediste cosas; preguntame en otro momento." +#: lang/json/talk_topic_from_json.py +msgid "Why should I share my equipment with you?" +msgstr "¿Por qué tendría que compartir mi equipo con vos?" + #: lang/json/talk_topic_from_json.py msgid "Okay, fine." msgstr "Bueno, está bien." @@ -190206,13 +187239,13 @@ msgid "You might be seeing more of me…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " -"I've seen in a long time." +msgid "Hey again. *kzzz*" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey again. *kzzz*" +msgid "" +"I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " +"I've seen in a long time." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191306,27 +188339,27 @@ msgid "This is a low driving test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greeting citizen, what brings you to the FoodLair?" -msgstr "" +msgid "Greetings friend, it's nice to see you." +msgstr "Saludos, amigo, qué bueno verte." #: lang/json/talk_topic_from_json.py -msgid "Still here? Take your time, it's rough out there." +msgid "So you're back… Explain yourself!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greetings friend, it's nice to see you." -msgstr "Saludos, amigo, qué bueno verte." +msgid "What sorcery is this?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Welcome home Foodkid!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What sorcery is this?" +msgid "Still here? Take your time, it's rough out there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So you're back… Explain yourself!" +msgid "Greeting citizen, what brings you to the FoodLair?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -192933,6 +189966,10 @@ msgid "" " just busy not dying." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "Ahora no puedo hablar de eso. No puedo." + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a blur." @@ -192941,8 +189978,7 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke. I'd seen such horrible injuries, and then I… " -", I can't even talk about it." +"shift I… well, I broke." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192953,13 +189989,10 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke." +"shift I… well, I broke. I'd seen such horrible injuries, and then I… " +", I can't even talk about it." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "I just can't talk about that right now. I can't." -msgstr "Ahora no puedo hablar de eso. No puedo." - #: lang/json/talk_topic_from_json.py msgid "It might help to get it off your chest." msgstr "Te podría venir bien sacártelo de adentro." @@ -193361,19 +190394,19 @@ msgstr "Gracias por decirme todo eso. " #: lang/json/talk_topic_from_json.py msgid "" -"My wife made it out with me, but got eaten by one of those plant " +"My husband made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"Mi esposa pudo salir conmigo, pero se la comió uno de esos monstruos plantas" +"Mi esposo pudo salir conmigo, pero se lo comió uno de esos monstruos plantas" " de unos días antes de que te encuentre a vos. Este no ha sido un " "buen año para mí." #: lang/json/talk_topic_from_json.py msgid "" -"My husband made it out with me, but got eaten by one of those plant " +"My wife made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"Mi esposo pudo salir conmigo, pero se lo comió uno de esos monstruos plantas" +"Mi esposa pudo salir conmigo, pero se la comió uno de esos monstruos plantas" " de unos días antes de que te encuentre a vos. Este no ha sido un " "buen año para mí." @@ -193436,10 +190469,9 @@ msgid "I'm sorry you lost someone." msgstr "Lamento que hayas perdido a alguien querido." #: lang/json/talk_topic_from_json.py -msgid "Just another tale of love and loss. Not one I like to tell." -msgstr "" -"Es solo otra historia de de amor y pérdida. Y no me agrada " -"narrarla." +msgid "" +"I said, I don't wanna talk about it. How are you not understanding this?" +msgstr "Dije que no quería hablar de eso. ¿No entendés?" #: lang/json/talk_topic_from_json.py msgid "" @@ -193450,9 +190482,10 @@ msgstr "" "contarla una vez más." #: lang/json/talk_topic_from_json.py -msgid "" -"I said, I don't wanna talk about it. How are you not understanding this?" -msgstr "Dije que no quería hablar de eso. ¿No entendés?" +msgid "Just another tale of love and loss. Not one I like to tell." +msgstr "" +"Es solo otra historia de de amor y pérdida. Y no me agrada " +"narrarla." #: lang/json/talk_topic_from_json.py msgid "You said you lost someone." @@ -193475,33 +190508,13 @@ msgid "" "Oh, . This doesn't have anything to do with you, or with us." msgstr "Oh, . Eso no tiene nada que ver con vos, o con nosotros." -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "Está bien. Tenía a alguien. La perdí." - #: lang/json/talk_topic_from_json.py msgid "All right, fine. I had someone. I lost him." msgstr "Está bien. Tenía a alguien. Lo perdí." #: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"Ella estaba en casa cuando empezaron a caer las bombas y el mundo se fue a " -"la mierda. Yo estaba en el trabajo. Intenté llegar hasta la casa pero la " -"ciudad era una zona de guerra. Cosas que no sé cómo describir tambaleándose " -"por las calles, aplastando gente y autos. Los soldados intentando " -"detenerlos, pero también le daban a la gente en los tiroteos. Y entonces, " -"esos caídos en el daño colateral también se unían al enemigo. Si no hubiera " -"sido por mi esposa, me habría ido, pero hice lo que pude y logré " -"escabullirme. Logré sobrevivir,." +msgid "All right, fine. I had someone. I lost her." +msgstr "Está bien. Tenía a alguien. La perdí." #: lang/json/talk_topic_from_json.py msgid "" @@ -193523,6 +190536,26 @@ msgstr "" "marido, me habría ido, pero hice lo que pude y logré escabullirme. Logré " "sobrevivir,." +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"Ella estaba en casa cuando empezaron a caer las bombas y el mundo se fue a " +"la mierda. Yo estaba en el trabajo. Intenté llegar hasta la casa pero la " +"ciudad era una zona de guerra. Cosas que no sé cómo describir tambaleándose " +"por las calles, aplastando gente y autos. Los soldados intentando " +"detenerlos, pero también le daban a la gente en los tiroteos. Y entonces, " +"esos caídos en el daño colateral también se unían al enemigo. Si no hubiera " +"sido por mi esposa, me habría ido, pero hice lo que pude y logré " +"escabullirme. Logré sobrevivir,." + #: lang/json/talk_topic_from_json.py msgid "You must have seen some shit." msgstr "Debés haber visto cosas horribles." @@ -193591,11 +190624,11 @@ msgstr "¿Llegaste a entrar a la casa?" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " +"up part? Like, out of all this? My husband was still alive. He'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirious by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then… well, then I did what you " +"he'd lost a ton of blood, he was delirious by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -193603,11 +190636,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " +"up part? Like, out of all this? My wife was still alive. She'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirious by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then… well, then I did what you " +"she'd lost a ton of blood, she was delirious by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -194388,16 +191421,6 @@ msgstr "" " a transitar este Infierno en la Tierra. Me arrepiento de no haber prestado " "atención en Catecismo." -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started… cancer. If anything good has " -"come out of all this, it's that I finally see a positive to losing her so " -"young. I'd been shut in for a while anyway. When the news started talking " -"about Chinese bio weapons and sleeper agents, and showing the rioting in " -"Boston and such, I curled up with my canned soup and changed the channel." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I lived alone, on the old family property way out of town. My husband " @@ -194409,6 +191432,16 @@ msgid "" "channel." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started… cancer. If anything good has " +"come out of all this, it's that I finally see a positive to losing her so " +"young. I'd been shut in for a while anyway. When the news started talking " +"about Chinese bio weapons and sleeper agents, and showing the rioting in " +"Boston and such, I curled up with my canned soup and changed the channel." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, it built up a bit. There was that acid rain, it burnt up one of my " @@ -194503,14 +191536,6 @@ msgstr "Lamento lo de Buck. " msgid "I'm sorry about Buck. " msgstr "Lamento lo de Buck. " -#: lang/json/talk_topic_from_json.py -msgid "" -"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " -"interested in getting attached. You didn't pay me to be your friend." -msgstr "" -"Escuchame. Te la hago corta. Yo trabajo para vos, ¿no? No tengo interés en " -"crear una relación. No me pagás para que sea tu amigo." - #: lang/json/talk_topic_from_json.py msgid "" "Like I said, you want me to tell you a story, you gotta pony up the whisky." @@ -194519,6 +191544,14 @@ msgstr "" "Como te dije, vos querés que yo te cuente una historia, vas a tener que " "poner whisky. Un botella entera, en lo posible." +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " +"interested in getting attached. You didn't pay me to be your friend." +msgstr "" +"Escuchame. Te la hago corta. Yo trabajo para vos, ¿no? No tengo interés en " +"crear una relación. No me pagás para que sea tu amigo." + #: lang/json/talk_topic_from_json.py msgid "" "I'm not looking for a friend, but I've paid my dues and earned my way. You " @@ -194902,15 +191935,6 @@ msgid "" "help, I'd just be another dripping corpse." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " -"peel out of there with her brother - my best man - in his pickup truck as " -"things went bad. So, until I run into them again one way or another, I'm " -"just gonna keep on believing they're out there, doing well. That's more " -"than most of us have." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I have this weird hope. It's probably stupid, but I saw my fiancé " @@ -194921,11 +191945,16 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What were you saying before that?" +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Welcome! You seem new, how can I help you?" +msgid "What were you saying before that?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -194948,6 +191977,10 @@ msgstr "" msgid "How's the weather?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Welcome! You seem new, how can I help you?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What is this place?" msgstr "¿Qué es este lugar?" @@ -195034,16 +192067,16 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. If " -"you had found our community earlier, you could have had a higher chance to " -"join. The newest member joined just a few days ago." +"decisions. But as I said, your chances are low, like everyone else's. The " +"newest member joined just a long time ago." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. The " -"newest member joined just a long time ago." +"decisions. But as I said, your chances are low, like everyone else's. If " +"you had found our community earlier, you could have had a higher chance to " +"join. The newest member joined just a few days ago." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195090,15 +192123,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey! What are you doing up here? You are not allowed to come here." +msgid "You're back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You're back." +msgid "So…?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So…?" +msgid "Hey! What are you doing up here? You are not allowed to come here." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195132,15 +192165,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am sorry, but nobody is allowed to take anything from here. We would like" -" to help you, but we already have enough mouths to feed." +"I am afraid you can't. Look, we are running low on our rations, and we " +"don't want to waste even more. Even if you just want to 'borrow' it. Too " +"bad, we could've helped you if you had come here earlier." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am afraid you can't. Look, we are running low on our rations, and we " -"don't want to waste even more. Even if you just want to 'borrow' it. Too " -"bad, we could've helped you if you had come here earlier." +"I am sorry, but nobody is allowed to take anything from here. We would like" +" to help you, but we already have enough mouths to feed." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195183,14 +192216,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That information is a bit private, but you can see for yourself. We have " -"about 20 crates full of non-perishables." +"I don't know anymore. You see, we used to have 20 crates full of non-" +"perishables. That was months ago. We are running out." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I don't know anymore. You see, we used to have 20 crates full of non-" -"perishables. That was months ago. We are running out." +"That information is a bit private, but you can see for yourself. We have " +"about 20 crates full of non-perishables." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195259,11 +192292,11 @@ msgid "That's good to hear." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Pleased to meet you." +msgid "Are you here to protect us?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Are you here to protect us?" +msgid "Pleased to meet you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195320,11 +192353,11 @@ msgid "That's the most hopeful thing I've heard so far." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." +msgid "Same way you got yours, I bet." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Same way you got yours, I bet." +msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195336,19 +192369,19 @@ msgid "You're disgusting." msgstr "Sos desagradable." #: lang/json/talk_topic_from_json.py -msgid "Insulting people who could help you is unlikely to aid survival." +msgid "I'm very sorry to tell you this, but you should look in a mirror." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm very sorry to tell you this, but you should look in a mirror." +msgid "Insulting people who could help you is unlikely to aid survival." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can't believe my eyes. Please get me outta here…" +msgid "Hey, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey, ." +msgid "I can't believe my eyes. Please get me outta here…" msgstr "" #: lang/json/talk_topic_from_json.py @@ -195374,7 +192407,9 @@ msgid "Sounds good, Barry." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello Ma'am, what brings you here?" +msgid "" +"I see that badge, I think you need to keep on walking, straight off this " +"property." msgstr "" #: lang/json/talk_topic_from_json.py @@ -195382,9 +192417,7 @@ msgid "Hello Sir, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need to keep on walking, straight off this " -"property." +msgid "Hello Ma'am, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -195458,16 +192491,16 @@ msgstr "" msgid "Where can I find Chris?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hi, what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I see that badge. You need to leave our land, my relatives have no fondness" " for Marshals." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi, what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hi, Your dad asked me to come find you, said you've been looking for your " @@ -195559,7 +192592,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi, what brings you here?" +msgid "Is that a U.S. Marshal's badge you're wearing?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -195567,7 +192600,7 @@ msgid "Hello, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Is that a U.S. Marshal's badge you're wearing?" +msgid "Hi, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -195861,11 +192894,11 @@ msgid "That's all for now. I'd best get going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello, We don't see many people these days." +msgid "Leave our property, Marshal." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Leave our property, Marshal." +msgid "Hello, We don't see many people these days." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196064,12 +193097,8 @@ msgid "Tell me about your dad." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Señora, no sé cómo demonios llegó hasta acá abajo pero si le queda un poco " -"de juicio se iría mientras pueda." +msgid "Marshal, I hope you're here to assist us." +msgstr "Alguacil, espero que esté aquí para ayudarnos." #: lang/json/talk_topic_from_json.py msgid "" @@ -196080,8 +193109,12 @@ msgstr "" " juicio se iría mientras pueda." #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Alguacil, espero que esté aquí para ayudarnos." +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Señora, no sé cómo demonios llegó hasta acá abajo pero si le queda un poco " +"de juicio se iría mientras pueda." #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" @@ -196162,16 +193195,16 @@ msgid "Whatever they did it must have worked since we are still alive…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here… you should leave." -msgstr "" +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Alguacil, estoy bastante sorprendido de verlo aquí." #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here… you should leave." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Alguacil, estoy bastante sorprendido de verlo aquí." +msgid "Ma'am you are not authorized to be here… you should leave." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." @@ -196216,6 +193249,24 @@ msgstr "" "de la red de comunicaciones. Esperamos igual que algunos simples mensajes de" " texto puedan ser recibidos." +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Hola, alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Alguacil, me temo que no puedo hablar ahora." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "No estoy a cargo acá, alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "" +"Se supone que dirija todas las preguntas directamente al liderazgo, " +"alguacil." + #: lang/json/talk_topic_from_json.py msgid "Hey, citizen… I'm not sure you belong here." msgstr "" @@ -196229,15 +193280,6 @@ msgstr "" msgid "If you need something you'll need to talk to someone else." msgstr "Si necesitás algo vas a tener que hablar con otra persona." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Señora" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Hey señorita, ¿no le parece que estaría más segura si se queda conmigo?" - #: lang/json/talk_topic_from_json.py msgid "Sir." msgstr "Señor." @@ -196247,22 +193289,13 @@ msgid "Dude, if you can hold your own you should look into enlisting." msgstr "Amigo, si podés controlarte deberías enrolarte." #: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Hola, alguacil." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Alguacil, me temo que no puedo hablar ahora." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "No estoy a cargo acá, alguacil." +msgid "Ma'am" +msgstr "Señora" #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." +msgid "Hey miss, don't you think it would be safer if you stuck with me?" msgstr "" -"Se supone que dirija todas las preguntas directamente al liderazgo, " -"alguacil." +"Hey señorita, ¿no le parece que estaría más segura si se queda conmigo?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me…" @@ -196319,16 +193352,15 @@ msgid "I've no use for weaklings. Run. Now." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Please, help me. I need food." -msgstr "Por favor, ayudame. Necesito comida." +msgid "" +"So, any luck with convincing the others to come on your crazy adventure yet?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Please, help me. I need food. Aren't you their sheriff? Can't you help " -"me?" +"I'm sorry to say it after all you've done for me, but… I don't suppose " +"you've got anything to eat?" msgstr "" -"Por favor, ayudame. Necesito comida. ¿Vos no sos el sheriff? ¿No me podés " -"ayudar?" #: lang/json/talk_topic_from_json.py msgid "Thank you again. I really appreciate the food." @@ -196336,14 +193368,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm sorry to say it after all you've done for me, but… I don't suppose " -"you've got anything to eat?" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" msgstr "" +"Por favor, ayudame. Necesito comida. ¿Vos no sos el sheriff? ¿No me podés " +"ayudar?" #: lang/json/talk_topic_from_json.py -msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" -msgstr "" +msgid "Please, help me. I need food." +msgstr "Por favor, ayudame. Necesito comida." #: lang/json/talk_topic_from_json.py msgid "" @@ -196362,17 +193395,17 @@ msgstr "Salí de acá." #: 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." +"here as long as I keep it clean and don't make a fuss, but I'm reduced to " +"begging to survive." msgstr "" -"No me dejan entrar. Dicen que está lleno. Me permiten quedarme acá afuera " -"mientras no ensucie y no haga quilombo, pero tengo hambre." #: 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 reduced to " -"begging to survive." +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." msgstr "" +"No me dejan entrar. Dicen que está lleno. Me permiten quedarme acá afuera " +"mientras no ensucie y no haga quilombo, pero tengo hambre." #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" @@ -196476,16 +193509,16 @@ msgid "" "hurry to face that again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " "think you realize how useless I am in this world." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I'm too hungry to make a big decision like that." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." msgstr "" @@ -196531,12 +193564,12 @@ msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "¿Te conté sobre el cartón, amigo? ¿Tenés un poco?" #: lang/json/talk_topic_from_json.py -msgid "" -"How's things with you? My cardboard collection is getting quite impressive." +msgid "We've done it! We've solved the list!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "We've done it! We've solved the list!" +msgid "" +"How's things with you? My cardboard collection is getting quite impressive." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196568,13 +193601,13 @@ msgid "Do you need something to eat?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm real hungry and they put drugs in most of the food. I can see " -"you're not like that." +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196675,15 +193708,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's it! I'm just gonna need a little time to get it all set up. Thanks." -" You've helped me a lot. I'm feeling much more myself with all this to " -"keep me going." +"Well… I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well… I had it all pretty together, but the others have left, and now the " -"masters won't let me build my sanctuary. Can you help me figure them out?" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196703,18 +193736,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Don't bother with these assholes." -msgstr "No te calentés con estos boludos." +msgid "Fuck off, dickwaddle." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there, not-asshole. Good to see you again." +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " -"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" -" cranky. We cool?" +msgid "Hey there. Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py @@ -196724,16 +193754,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." +msgid "" +"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " +"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" +" cranky. We cool?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgid "Hey there, not-asshole. Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." -msgstr "" +msgid "Don't bother with these assholes." +msgstr "No te calentés con estos boludos." #: lang/json/talk_topic_from_json.py msgid "What's up?" @@ -197021,12 +194054,6 @@ msgid "" "that?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I dunno, scientific interest? If you don't bring me anything, no worries. " -"I'm positively swimming in entertainment here, as you can see." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "If you get me a sample, I'll join your crazy camp expedition. Hell, if you " @@ -197035,6 +194062,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -197077,14 +194110,14 @@ msgstr "" msgid "I'll see what I can do." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hey, are you a big fan of survival of the fittest?" -msgstr "Ey, ¿te gusta eso de 'supervivencia del más apto'?" - #: lang/json/talk_topic_from_json.py msgid "Thanks again for the grub, my friend." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "Ey, ¿te gusta eso de 'supervivencia del más apto'?" + #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" msgstr "¿Por qué me preguntás?" @@ -197103,17 +194136,17 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " -"Help a poor sickly soul out?" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." msgstr "" -"Porque yo seguro que no estoy apto, así que me quedo sentado acá hasta que " -"me muera de hambre. ¿Podés ayudar a este pobre mendigo?" #: lang/json/talk_topic_from_json.py msgid "" -"Oh you know, the usual: sittin' out here until I starve to death, playin' " -"cards with Dave, that kinda thing." +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" msgstr "" +"Porque yo seguro que no estoy apto, así que me quedo sentado acá hasta que " +"me muera de hambre. ¿Podés ayudar a este pobre mendigo?" #: lang/json/talk_topic_from_json.py msgid "I could maybe help you out… want something to eat?" @@ -197136,12 +194169,12 @@ msgid "Why are you camped out here if they won't let you in?" msgstr "¿Y qué hacés acampando acá si no te dejan entrar?" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgid "That's awful kind of you, you really are a wonderful person." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's awful kind of you, you really are a wonderful person." +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197427,10 +194460,6 @@ msgstr "" msgid "What's your take on the situation here?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, uh… hi. You look new. I'm Aleesha." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." msgstr "Ah, hola, otra vez vos." @@ -197443,6 +194472,10 @@ msgstr "" msgid "Aw hey, look who's back." msgstr "Oh, hey, miren quién volvió." +#: lang/json/talk_topic_from_json.py +msgid "Oh, uh… hi. You look new. I'm Aleesha." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" msgstr "Encantado de conocerte, chico. ¿Cómo va?" @@ -197460,16 +194493,16 @@ msgid "Hi Aleesha. I can't stay to talk." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm fourteen." -msgstr "No soy un chico, eh. Tengo catorce." +msgid "I'm not a kid, okay? I'm sixteen." +msgstr "No soy un chico, eh. Tengo dieciséis." #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." msgstr "No soy un chico, eh. Tengo quince." #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm sixteen." -msgstr "No soy un chico, eh. Tengo dieciséis." +msgid "I'm not a kid, okay? I'm fourteen." +msgstr "No soy un chico, eh. Tengo catorce." #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" @@ -197479,6 +194512,15 @@ msgstr "Perdoname, no quise insinuar nada. ¿Cómo va?" msgid "Sorry, I didn't mean anything by it. I'll be on my way." msgstr "Perdoname, no quise insinuar nada. Ya me voy yendo." +#: lang/json/talk_topic_from_json.py +msgid "" +"We're just standing around here waiting, like a bunch of idiots. We're " +"supposedly waiting to go downstairs to the shelter, but it's been over a " +"month. I don't think it's happening. I don't know what we're doing here. " +"I've read all the books, and there's zombies outside so we're stuck in here." +" We can hear them at night." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I don't know what's up. I'm not sure what we've even doing here. They say " @@ -197491,15 +194533,6 @@ msgstr "" "abajo, pero hace días que estamos acá y no nos dicen cuánto tenemos que " "esperar. Es todo muy idiota, y nadie te dice nada." -#: lang/json/talk_topic_from_json.py -msgid "" -"We're just standing around here waiting, like a bunch of idiots. We're " -"supposedly waiting to go downstairs to the shelter, but it's been over a " -"month. I don't think it's happening. I don't know what we're doing here. " -"I've read all the books, and there's zombies outside so we're stuck in here." -" We can hear them at night." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "You can't just go asking people questions like that nowadays. I'm a " @@ -197537,8 +194570,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." +msgid "Hello again, gorgeous" msgstr "" #: lang/json/talk_topic_from_json.py @@ -197548,7 +194580,8 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello again, gorgeous" +msgid "" +"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197578,33 +194611,33 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Now that you are here, everything. Is there anything Alonso can… *do for " -"you*?" +"Well, it's a lot better now that you're here. Nice to see a familiar face." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well, it's a lot better now that you're here. Nice to see a familiar face." +"Now that you are here, everything. Is there anything Alonso can… *do for " +"you*?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Alonso cannot help himself, in the face of someone so fine as you." +msgid "You know me, I gotta be me, right?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You know me, I gotta be me, right?" +msgid "Alonso cannot help himself, in the face of someone so fine as you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " +"Aw man, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw man, why you gotta be like that? I'm just tryin' to get an air of " +"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" @@ -197633,12 +194666,6 @@ msgstr "" msgid "Thanks. I'd better get going." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Alonso does not wish to talk about the past, only the future. There are " -"dark days ahead, but perhaps together we can bring a little light?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I'm tryin' ta forget, y'know? Don't like thinkin' about the past. Better " @@ -197647,8 +194674,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here in the center, Alonso is a bit lonely. We get a few brave, strong " -"travelers like yourself, though, and seeing them brightens Alonso's day." +"Alonso does not wish to talk about the past, only the future. There are " +"dark days ahead, but perhaps together we can bring a little light?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -197658,7 +194685,9 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, another new face. Hello. I am Boris." +msgid "" +"Here in the center, Alonso is a bit lonely. We get a few brave, strong " +"travelers like yourself, though, and seeing them brightens Alonso's day." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197673,6 +194702,10 @@ msgstr "" msgid "It is good to see you again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Ah, another new face. Hello. I am Boris." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." msgstr "" @@ -197741,6 +194774,13 @@ msgstr "" msgid "I'm sorry. I'd better get going." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, now that you mention it, with the back bay cleared I could probably " +"set up back there and start work. I'll think about it, get back to me " +"later." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "There isn't much to do with a hammer and a saw here indoors, and working " @@ -197751,13 +194791,6 @@ msgid "" "caravans bring food, so they get priority, I can't argue with that." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, now that you mention it, with the back bay cleared I could probably " -"set up back there and start work. I'll think about it, get back to me " -"later." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Everyone agrees this is bad. Sleeping on a cot on the floor, crowded in " @@ -197787,15 +194820,15 @@ msgid "Got any more bread I can trade flour for?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there. I'm Dana, nice to see a new face." +msgid "Hello, nice to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello, nice to see you again." +msgid "It's good to see you're still around." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good to see you're still around." +msgid "Hi there. I'm Dana, nice to see a new face." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197847,10 +194880,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do a bit. I got a sourdough starter going almost as soon as I arrived, " -"and it's making passable bread already. I cooked some up yesterday " -"actually, I could probably trade a loaf of fresh bread for, say, about eight" -" cups of flour." +"Not since I last saw you, sorry. Come by in another day or two and I'll try" +" to keep a loaf set aside for you, but they disappear fast." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197861,8 +194892,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Not since I last saw you, sorry. Come by in another day or two and I'll try" -" to keep a loaf set aside for you, but they disappear fast." +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight" +" cups of flour." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197884,12 +194917,6 @@ msgid "" "that's a lot more than most." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " -"not too bad honestly. Everyone here seems to like it." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Great, here's a loaf of the best damn sourdough bread in the world. I used " @@ -197911,6 +194938,12 @@ msgid "" "now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You seem pretty unhappy about the quality of your bread. Is there something" @@ -197940,6 +194973,10 @@ msgid "" "gonna murder someone soon, mark my words." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Huh. I've made a few friends here, but not so much as I'd stick around here" @@ -197947,10 +194984,6 @@ msgid "" "me. It does sound nice, if they're looking for more workers." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Have you heard anything back from the ranch about jobs yet?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " @@ -197988,13 +195021,13 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well now, good to see another new face! Welcome to the center, friend, I'm " -"Draco." +msgid "Always good to see you, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Always good to see you, friend." +msgid "" +"Well now, good to see another new face! Welcome to the center, friend, I'm " +"Draco." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198231,12 +195264,12 @@ msgid "Well then, I'll leave you here where it's safe." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Man, just imagine what I could do with a new guitar." +msgid "" +"My savior! My patron of the arts! You're always welcome here, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"My savior! My patron of the arts! You're always welcome here, friend." +msgid "Man, just imagine what I could do with a new guitar." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198336,14 +195369,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " -"up some Merch bucks for, say, five joints or joints-worth of the good stuff." +"Yeah, no worries, though. I'm good at the moment. Ask me again later and " +"maybe I'll have scrounged up some more cash for you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, no worries, though. I'm good at the moment. Ask me again later and " -"maybe I'll have scrounged up some more cash for you." +"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " +"up some Merch bucks for, say, five joints or joints-worth of the good stuff." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198394,12 +195427,6 @@ msgstr "" msgid "Is there anything I can do to help you out?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " -"meet new people but there are no beds to share." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "" @@ -198412,6 +195439,12 @@ msgstr "" msgid "Oh, hi." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you too, Fatima. I'm just passing through." msgstr "" @@ -198471,15 +195504,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." +msgid "Well, hello." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, hello." +msgid "Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Good to see you again." +msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198545,17 +195578,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " -"call me Gunny." +msgid "Hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi." +msgid "Hey again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey again." +msgid "" +"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " +"call me Gunny." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198605,12 +195638,12 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." +msgid "Nice to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nice to see you again." +msgid "" +"Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198761,15 +195794,6 @@ msgid "" "like this before somebody snaps." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a bunch of us. We're starting to form a bit of a community. " -"Fatima and I work together a fair bit, and I've been hanging out with Dana, " -"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " -"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " -"What did you want to know?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "For better or worse, we're a community now. Fatima and I work together a " @@ -198782,6 +195806,15 @@ msgid "" "want to know?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" msgstr "" @@ -198847,14 +195880,6 @@ msgid "" "hope that there's a future to be had." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Boris and Garry are married, I guess. They kinda keep to themselves, they " -"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" -" I'm not totally sure. He seems nice enough, but he's a man of few words. " -"I can't get a good bead on them. I've learned not to pry too much though." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I didn't get to know Boris, Garry, and Stan so well for the first while. " @@ -198867,10 +195892,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I really can't get a bead on them. They never really talk to anyone outside" -" of their little family group, they just sit in their own spot and speak " -"Punjabi. They always seem nice, and they do their share, they just don't " -"have any social connection." +"Boris and Garry are married, I guess. They kinda keep to themselves, they " +"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" +" I'm not totally sure. He seems nice enough, but he's a man of few words. " +"I can't get a good bead on them. I've learned not to pry too much though." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198884,14 +195909,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " -"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " -"both seem to want to run the show here, but I try to stay out of those " -"politics and just focus on building stuff. I don't see much good coming of " -"it. Alonso is fine, he's clearly interested in me, and also in every other " -"single woman here. Not my thing, in a group this small. John is a walking " -"stereotype, I imagine there must be more depth to him, but I haven't seen it" -" yet." +"I really can't get a bead on them. They never really talk to anyone outside" +" of their little family group, they just sit in their own spot and speak " +"Punjabi. They always seem nice, and they do their share, they just don't " +"have any social connection." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198908,13 +195929,25 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " +"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " +"both seem to want to run the show here, but I try to stay out of those " +"politics and just focus on building stuff. I don't see much good coming of " +"it. Alonso is fine, he's clearly interested in me, and also in every other " +"single woman here. Not my thing, in a group this small. John is a walking " +"stereotype, I imagine there must be more depth to him, but I haven't seen it" +" yet." msgstr "" #: lang/json/talk_topic_from_json.py msgid "Howdy, pardner." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, John." msgstr "" @@ -198969,11 +196002,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello ma'am. I am Mandeep Singh." +msgid "Hello sir. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello sir. I am Mandeep Singh." +msgid "Hello ma'am. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py @@ -199016,15 +196049,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." +msgid "Hi there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there." +msgid "Oh, hello there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, hello there." +msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." msgstr "" #: lang/json/talk_topic_from_json.py @@ -199225,12 +196258,12 @@ msgid "What brings you around here? We don't see a lot of new faces." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgid "Need to talk?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Need to talk?" +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." msgstr "" #: lang/json/talk_topic_from_json.py @@ -199321,17 +196354,17 @@ msgid "Do you want to talk about your story?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " -"Stan." +msgid "Hm? Oh, hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hm? Oh, hi." +msgid "...Hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "...Hi." +msgid "" +"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " +"Stan." msgstr "" #: lang/json/talk_topic_from_json.py @@ -199444,13 +196477,13 @@ msgid "Hmm, can we change this shave a little please?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, great. Another new mouth to feed? Just what we need. Well, I'm " -"Vanessa." +msgid "Oh, you're back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, you're back." +msgid "" +"Oh, great. Another new mouth to feed? Just what we need. Well, I'm " +"Vanessa." msgstr "" #: lang/json/talk_topic_from_json.py @@ -199489,14 +196522,6 @@ msgstr "" msgid "Could you give me a haircut?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"You want the sarcastic version, or the really sarcastic version? I'm stuck " -"in a dank shitty brick building with two dozen strangers, the world's dead, " -"and there's not enough food to go around. Why don't you fuckin' figure it " -"out?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I'm stuck in a dank shitty brick building with two dozen strangers, " @@ -199505,6 +196530,14 @@ msgid "" "to keeping my belly full. People like getting a good haircut." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I can see you need one, but last time I used these shears it was to stab a " @@ -199682,15 +196715,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Even once we got things sorted out, there weren't enough beds for everyone, " -"and definitely not enough supplies. These are harsh times. We're doing what" -" we can for those folks… at least they've got shelter." +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do. I don't know what you did to convince them to move out, but our " -"supply chain and I both thank you. I hope it wasn't too unseemly." +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks… at least they've got shelter." msgstr "" #: lang/json/talk_topic_from_json.py @@ -200082,14 +197115,14 @@ msgstr "Mantenete civilizado o te voy a causar dolor." msgid "Just on watch, move along." msgstr "Solo estoy de guardia, circulando." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "Señora, no debería estar viajando por ahí afuera." - #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" msgstr "¿Está complicado ahí afuera, no?" +#: lang/json/talk_topic_from_json.py +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "Señora, no debería estar viajando por ahí afuera." + #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center…" msgstr "" @@ -200118,14 +197151,14 @@ msgstr "" msgid "Well, I'd better be going. Bye." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Bienvenido..." - #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." msgstr "Bienvenido, alguacil..." +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Bienvenido..." + #: lang/json/talk_topic_from_json.py msgid "" "Before you say anything else, we're full. We don't have the space, nor the " @@ -200368,14 +197401,14 @@ msgid "" "attacked by zombie hordes, as you might guess." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "Ciudadano..." - #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Alguacil..." +#: lang/json/talk_topic_from_json.py +msgid "Citizen..." +msgstr "Ciudadano..." + #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" msgstr "¿Podemos comerciar recursos?" @@ -200443,14 +197476,14 @@ msgstr "" "No podemos. No hay nada que nos sobre como para venderlo y no tengo plata " "para comprarte nada. Pero si querés donar algo..." -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Parecés una persona importante." - #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "¡Esa placa que tenés es bien brillante!" +#: lang/json/talk_topic_from_json.py +msgid "Heh, you look important." +msgstr "Parecés una persona importante." + #: lang/json/talk_topic_from_json.py msgid "I'm actually new." msgstr "En realidad, soy nuevo." @@ -200524,10 +197557,6 @@ msgid "" "it." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate… mutations. This was an accident." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Same way you got yours, I bet. Keep quiet about it, some people here look " @@ -200536,6 +197565,10 @@ msgstr "" "De la misma manera que vos conseguiste el tuyo, supongo. No hables mucho, " "algunos de acá desprecian a las personas como nosotros." +#: lang/json/talk_topic_from_json.py +msgid "Ssh. Some people in here hate… mutations. This was an accident." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" msgstr "Perdón por preguntar." @@ -200562,22 +197595,22 @@ msgid "" "trade?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "¡Andá a cagar!" - #: lang/json/talk_topic_from_json.py msgid "As if you're one to talk. Screw You." msgstr "Mirá quién habla. No me jodas." #: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "Ah, me pareció oler a alguien nuevo. ¿Te puedo ayudar en algo?" +msgid "Screw You!" +msgstr "¡Andá a cagar!" #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest… please don't arrest me." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Huh, thought I smelled someone new. Can I help you?" +msgstr "Ah, me pareció oler a alguien nuevo. ¿Te puedo ayudar en algo?" + #: lang/json/talk_topic_from_json.py msgid "You… smelled me?" msgstr "" @@ -200892,16 +197925,6 @@ msgstr "Supongo que sos el jefe." msgid "Glad to have you aboard." msgstr "Me alegra tenerte en el equipo." -#: lang/json/talk_topic_from_json.py -msgid "" -"Hold there. I don't care how you got access to this location, but you are " -"coming no further. Go away." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "We haven't changed our mind. Go away." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" msgstr "" @@ -200982,6 +198005,16 @@ msgstr "" msgid "If/you speak to/understand… you/me. Yes?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "We haven't changed our mind. Go away." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hold there. I don't care how you got access to this location, but you are " +"coming no further. Go away." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Wait! What??" msgstr "" @@ -201251,14 +198284,6 @@ msgstr "" msgid "Keep it civil, merc." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Here to trade, I hope?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Safe travels, scavenger." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Still plenty of outlaws in the roads, perhaps you should tend to your job, " @@ -201274,10 +198299,11 @@ msgid "Oh, a U.S. marshal, how quaint." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"We have been supplying this lab here with food from a few hunting and " -"farming communities nearby. The roads are though and dangerous, but it " -"makes good money, and beats scavenging the cities for scraps." +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -201286,6 +198312,13 @@ msgid "" "fair deal?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Keep safe, then." msgstr "" @@ -201524,16 +198557,16 @@ msgid "I'll talk with them then…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "Buenos días, señora, ¿la puedo ayudar en algo?" +msgid "Can I help you, marshal?" +msgstr "¿Te puedo ayudar, alguacil?" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" msgstr "Buenos días, señor, ¿lo puedo ayudar en algo?" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "¿Te puedo ayudar, alguacil?" +msgid "Morning ma'am, how can I help you?" +msgstr "Buenos días, señora, ¿la puedo ayudar en algo?" #: lang/json/talk_topic_from_json.py msgid "" @@ -201666,14 +198699,14 @@ msgstr "¿Qué tipo de trabajo tienen para mí?" msgid "Not now." msgstr "Ahora no." -#: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." -msgstr "Puedo revisarte a vos o a tus compañeros si hay alguien herido." - #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." msgstr "Vení después, necesito encargarme de unas cosas antes." +#: lang/json/talk_topic_from_json.py +msgid "I can take a look at you or your companions if you are injured." +msgstr "Puedo revisarte a vos o a tus compañeros si hay alguien herido." + #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." msgstr "[$200, 30m] Necesito que me cures." @@ -201958,15 +198991,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "New test subjects! I'm so glad you showed up!" +msgid "What did you bring me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What did you bring me?" +msgid "Do you smell something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you smell something?" +msgid "New test subjects! I'm so glad you showed up!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -202042,6 +199075,205 @@ msgstr "" msgid "This is not reassuring." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more" +" fearsome enforcer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided" +" to use tactical nukes and buy time for the retreat." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that" +" were happening in the city, they were beneath me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security" +" notices piled up about routes through the city to avoid. Finally, one day " +"I came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only" +" chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"But they built me with the ability to survive a world beyond imagining." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked" +" for the government or a corporation." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come" +" back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons" +" afraid of mutants." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "Qué hacés, carto." @@ -202141,11 +199373,11 @@ msgid "I must purge this place before I can move on." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Huh? *mumble mumble* … Who are you?" +msgid "Oh, you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, you again." +msgid "Huh? *mumble mumble* … Who are you?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -202157,11 +199389,11 @@ msgid "And leave my tower and all my research? I think not." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you seek power as well?" +msgid "Ah, hello again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, hello again." +msgid "Do you seek power as well?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -203759,7 +200991,7 @@ msgid " hack at %s with a vicious strike" msgstr " ataca %s con un golpe feroz" #: lang/json/technique_from_json.py -msgid "Deathblow" +msgid "Mordhau" msgstr "" #: lang/json/technique_from_json.py @@ -204431,65 +201663,65 @@ msgid " smashes %s with a pressurized slam" msgstr "" #: lang/json/technique_from_json.py -msgid "Shimmer Flurry" +msgid "Tipped Intent" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a blindingly fast slash at %s" +msgid "You quickly jab your weapon at %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " slashes at %s" +msgid " quickly jabs their weapon at %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Tipped Intent" +msgid "Shimmer Flurry" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You swiftly jab your weapon at %s" +msgid "" +"You release a blindingly fast low slash at %s and topple them off balance" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " swiftly jabs their weapon at %s" +msgid " slashes at %s and shoves them down" msgstr "" #: lang/json/technique_from_json.py -msgid "Decisive Blow" +msgid "Mirage Slash" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a debilitating swipe at %s" +msgid "" +"You hold your blade taut, and then launch a piercing slash on %s's top half" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " releases a debilitating swipe at %s" +msgid " lands a piercing blow on %s's face" msgstr "" #: lang/json/technique_from_json.py -msgid "End Slash" +msgid "The Point" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "" -"You envision the tension of a fully drawn bow and then launch a piercing " -"blow on %s's top half" +msgid "You drive your weapon down into %s's vulnerable center mass" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " lands a piercing blow on %s's face" +msgid " lands a deadly blow on %s's unguarded center mass" msgstr "" #: lang/json/technique_from_json.py -msgid "Harsh Reprimand" +msgid "Reprimand" msgstr "" #: lang/json/technique_from_json.py @@ -204559,17 +201791,17 @@ msgid " swiftly impales their fingers into %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Joint Pain" +msgid "Shifting Feint" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You explosively jab your weapon at %s joints" +msgid "You fake a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " explosively jabs at %s" +msgid " fakes a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py @@ -204593,8 +201825,8 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "" -"You envision a gathering tempest in and then release it's energy on %s's top" -" half" +"You envision a gathering tempest and then release it's energy on %s's top " +"half" msgstr "" #: lang/json/technique_from_json.py @@ -204646,8 +201878,8 @@ msgstr "" #. ~ Description for BERSERK #: lang/json/technique_from_json.py msgid "" -"50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " -"reduces action cost and adds overall damage (S)" +"50% AP cost, 77% DMG, Down (2), STR (SS) greatly reduces AP cost and adds " +"(S) DMG" msgstr "" #: lang/json/technique_from_json.py @@ -204667,8 +201899,8 @@ msgstr "" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py msgid "" -"15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," -" and adds a (A) damage bonus, min 4 melee" +"15% AP cost, 35% DMG, wide arc, STR (SS) reduces AP cost, and adds (A) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -204688,8 +201920,8 @@ msgstr "" #. ~ Description for BISECTION #: lang/json/technique_from_json.py msgid "" -"Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " -"reduces action cost and increases overall (B) damage, min 2 melee" +"Crit!, 35% AP cost, 115% DMG, STR (SS) and DEX (SS) reduces AP cost and PER " +"(B) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -204704,9 +201936,7 @@ msgstr " le da un golpe al %s" #. ~ Description for HOOK #: lang/json/technique_from_json.py -msgid "" -"85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " -"reduces action cost" +msgid "85% AP, 88% DMG, Down (2), STR (C) reduces AP cost" msgstr "" #: lang/json/technique_from_json.py @@ -204721,8 +201951,8 @@ msgstr "" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py msgid "" -"75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " -"and adds a (C) damage bonus, min 4 melee" +"75% AP, 60% DMG, WIDE AOE, STR (S) reduces AP cost, and adds a (C) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -204737,8 +201967,8 @@ msgstr "" #. ~ Description for CHOP #: lang/json/technique_from_json.py msgid "" -"Crit only, 118% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E)" -" reduces action cost and increases overall (B) damage, min 2 melee" +"CRIT!, 118% AP, 125% Cut/Stab, DEX (D) and PER (E) reduces AP cost and adds " +"(B) DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -204753,8 +201983,8 @@ msgstr "" #. ~ Description for SMASH #: lang/json/technique_from_json.py msgid "" -"Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " -"(D) reduces action cost and increases overall (C) damage, min 2 melee" +"CRIT!, 110% AP, 120% Bash, DEX (C) and STR (D) reduces AP cost and adds (C) " +"Arpen, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -204774,8 +202004,7 @@ msgstr "" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py msgid "" -"Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" -" reduces action cost, min melee 1" +"Crit!, 120% AP, 125% damage, Stun (1), STR (A) reduces AP cost, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -204795,8 +202024,8 @@ msgstr "" #. ~ Description for SHOVE #: lang/json/technique_from_json.py msgid "" -"65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " -"(D) and DEX (E) reduce action cost" +"65% AP, REDUCED DMG, knockback (2), stun (1), STR (D) and DEX (E) reduce AP " +"cost" msgstr "" #: lang/json/technique_from_json.py @@ -204816,8 +202045,8 @@ msgstr "" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py msgid "" -"75% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " -"(B) and DEX (C) reduce action cost, min melee 1" +"75% AP, 110% DMG, knockback (3), STR (B) and DEX (C) reduce AP cost, melee " +"(1)" msgstr "" #: lang/json/technique_from_json.py @@ -204831,7 +202060,7 @@ msgstr "" #. ~ Description for TEAR #: lang/json/technique_from_json.py -msgid "Crit only, 110% Cut, 115% Stab, min melee 2" +msgid "CRIT!, 115% Cut/Stab, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -204850,8 +202079,7 @@ msgstr "" #. ~ Description for THRUST #: lang/json/technique_from_json.py -msgid "" -"110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" +msgid "110% Stab DMG, STR (E) and PER (D) adds DMG, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -204871,8 +202099,7 @@ msgstr "" #. ~ Description for LUNGE #: lang/json/technique_from_json.py msgid "" -"Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " -"provides bonus damage, min 2 melee" +"CRIT!, 115% Stab DMG, Strength (D) and Perception (D) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -204892,8 +202119,7 @@ msgstr "" #. ~ Description for PROD #: lang/json/technique_from_json.py msgid "" -"66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " -"DEX (C) reduces action cost, min 3 melee" +"66% AP, 70% Stab DMG, PER (C) adds Arpen, DEX (B) reduces AP cost, melee (3)" msgstr "" #: lang/json/technique_from_json.py @@ -204912,19 +202138,120 @@ msgstr "" #. ~ Description for PROBE #: lang/json/technique_from_json.py +msgid "80% AP, PER (C) adds DMG and Arpen (E), melee (3)" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You probe at %s's openings with your weapon" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " probes their weapon at %s " +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format msgid "" -"80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" -" also provides armor pierce (E), min 3 melee" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You carve an arc through %s and those nearby" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You probe %s's openings" +msgid " carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " probe %s " +msgid "You spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a spin attack against %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleashes a spin attack against %s and those nearby" msgstr "" #: lang/json/technique_from_json.py @@ -208010,19 +205337,6 @@ msgstr "" "apretarlos hasta formar diferentes formas, que pueden ser usadas en " "fabricaciones." -#: lang/json/terrain_from_json.py -msgid "gasoline pump" -msgstr "surtidor de nafta" - -#. ~ Description for gasoline pump -#: lang/json/terrain_from_json.py -msgid "" -"Precious GASOLINE. The former world bowed to their petroleum god as it led " -"them to their ruin. There's plenty left over to fuel your inner road " -"warrior. If this gas dispenser doesn't give up the goods for free, you may " -"have to pay at a nearby terminal." -msgstr "" - #: lang/json/terrain_from_json.py msgid "fuel tank" msgstr "" @@ -208041,6 +205355,19 @@ msgstr "" msgid "A broken tank which was filled with gasoline." msgstr "" +#: lang/json/terrain_from_json.py +msgid "gasoline pump" +msgstr "surtidor de nafta" + +#. ~ Description for gasoline pump +#: lang/json/terrain_from_json.py +msgid "" +"Precious GASOLINE. The former world bowed to their petroleum god as it led " +"them to their ruin. There's plenty left over to fuel your inner road " +"warrior. If this gas dispenser doesn't give up the goods for free, you may " +"have to pay at a nearby terminal." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "surtidor de nafta roto" @@ -208052,6 +205379,16 @@ msgid "" "the liquid gold." msgstr "" +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "" + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "surtidor diésel" @@ -210300,8 +207637,8 @@ msgid "" "Breathtaking craftsmanship of stained glass featuring an otherworldly " "radiant ruby flower blooming." msgstr "" -"Es un vitral exquisitamente decorado con una radiante flor rubí de otro " -"planeta floreciendo." +"Es un vitral exquisitamente decorado con una radiante flor rubí sobrenatural" +" floreciendo." #. ~ Description for high stained glass window #: lang/json/terrain_from_json.py @@ -210863,17 +208200,6 @@ msgid "" "much good here though. Perhaps it could be salvaged for other purposes." msgstr "" -#: lang/json/terrain_from_json.py -msgid "LEGACY hydroponics unit" -msgstr "" - -#. ~ Description for LEGACY hydroponics unit -#: lang/json/terrain_from_json.py -msgid "" -"This is a deprecated hydroponics unit. Deconstruct it to receive your " -"materials back." -msgstr "" - #: lang/json/terrain_from_json.py msgid "burnt tree" msgstr "" @@ -210971,18 +208297,6 @@ msgstr "apertura de pestillos de seguridad" msgid "bridge control" msgstr "control de puente" -#: lang/json/terrain_from_json.py -msgid "mass of blob feed" -msgstr "masa de alimento para blobo" - -#: lang/json/terrain_from_json.py -msgid "squish!" -msgstr "squish!" - -#: lang/json/terrain_from_json.py -msgid "mound of blob feed" -msgstr "montículo de alimento para blobo" - #: lang/json/terrain_from_json.py msgid "singing sand" msgstr "" @@ -211047,203 +208361,207 @@ msgstr "" #: lang/json/tool_quality_from_json.py msgid "cutting" -msgstr "Cortar" +msgstr "cortar" #: lang/json/tool_quality_from_json.py msgid "fine cutting" -msgstr "Cortar de calidad" +msgstr "cortar bien" #: lang/json/tool_quality_from_json.py msgid "glare protection" -msgstr "Protección al brillo" +msgstr "protección al brillo" #: lang/json/tool_quality_from_json.py msgid "shearing" -msgstr "" +msgstr "esquilar" #: lang/json/tool_quality_from_json.py msgid "churn" -msgstr "" +msgstr "revolver" #: lang/json/tool_quality_from_json.py msgid "awl" -msgstr "" +msgstr "punzar" #: lang/json/tool_quality_from_json.py msgid "anesthesia" -msgstr "" +msgstr "anestesiar" #: lang/json/tool_quality_from_json.py msgid "smoothing" -msgstr "Suavizar" +msgstr "suavizar" #: lang/json/tool_quality_from_json.py msgid "hammering" -msgstr "Martillar" +msgstr "martillar" #: lang/json/tool_quality_from_json.py msgid "fine hammering" -msgstr "Martillar bien" +msgstr "martillar bien" #: lang/json/tool_quality_from_json.py msgid "wood sawing" -msgstr "Serruchar madera" +msgstr "serruchar madera" #: lang/json/tool_quality_from_json.py src/crafting_gui.cpp msgid "metal sawing" -msgstr "Serruchar metal" +msgstr "serruchar metal" #: lang/json/tool_quality_from_json.py msgid "fine metal sawing" -msgstr "Serruchar metal bien" +msgstr "serruchar metal bien" #: lang/json/tool_quality_from_json.py msgid "food cooking" -msgstr "Cocinar" +msgstr "cocinar" #: lang/json/tool_quality_from_json.py msgid "boiling" -msgstr "Hervir" +msgstr "hervir" #: lang/json/tool_quality_from_json.py msgid "containing" -msgstr "Contener" +msgstr "contener" #: lang/json/tool_quality_from_json.py msgid "chemical making" -msgstr "Crear químico" +msgstr "crear químico" #: lang/json/tool_quality_from_json.py msgid "smoking" -msgstr "Fumar" +msgstr "fumar" #: lang/json/tool_quality_from_json.py msgid "distilling" -msgstr "Destilar" +msgstr "destilar" #: lang/json/tool_quality_from_json.py msgid "tree cutting" -msgstr "Cortar árbol" +msgstr "cortar árbol" #: lang/json/tool_quality_from_json.py msgid "bolt turning" -msgstr "Abulonar" +msgstr "abulonar" #: lang/json/tool_quality_from_json.py src/crafting_gui.cpp msgid "fine bolt turning" -msgstr "Abulonar bien" +msgstr "abulonar bien" #: lang/json/tool_quality_from_json.py msgid "screw driving" -msgstr "Desatornillar" +msgstr "desatornillar" #: lang/json/tool_quality_from_json.py msgid "fine screw driving" -msgstr "Desatornillar bien" +msgstr "desatornillar bien" #: lang/json/tool_quality_from_json.py msgid "prying" -msgstr "Barretear" +msgstr "barretear" #: lang/json/tool_quality_from_json.py msgid "lifting" -msgstr "Levantar" +msgstr "levantar" #: lang/json/tool_quality_from_json.py msgid "jacking" -msgstr "Levantar auto" +msgstr "levantar vehículo" #: lang/json/tool_quality_from_json.py msgid "self jacking" -msgstr "Levantarse" +msgstr "levantarse" + +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "chupar" #: lang/json/tool_quality_from_json.py msgid "chiseling" -msgstr "Esculpir" +msgstr "esculpir" #: lang/json/tool_quality_from_json.py msgid "sewing" -msgstr "Coser" +msgstr "coser" #: lang/json/tool_quality_from_json.py msgid "knitting" -msgstr "Tejer" +msgstr "tejer" #: lang/json/tool_quality_from_json.py msgid "bullet pulling" -msgstr "Extraer bala" +msgstr "extraer bala" #: lang/json/tool_quality_from_json.py msgid "analysis" -msgstr "Análisis" +msgstr "analizar" #: lang/json/tool_quality_from_json.py msgid "concentration" -msgstr "Concentración" +msgstr "concentrar" #: lang/json/tool_quality_from_json.py msgid "separation" -msgstr "Separación" +msgstr "separar" #: lang/json/tool_quality_from_json.py msgid "fine distillation" -msgstr "Destilación de calidad" +msgstr "destilar bien" #: lang/json/tool_quality_from_json.py msgid "chromatography" -msgstr "Cromatografía" +msgstr "cromatografía" #: lang/json/tool_quality_from_json.py msgid "grinding" -msgstr "" +msgstr "moler" #: lang/json/tool_quality_from_json.py msgid "reaming" -msgstr "" +msgstr "escariar" #: lang/json/tool_quality_from_json.py msgid "filing" -msgstr "" +msgstr "llenar" #: lang/json/tool_quality_from_json.py msgid "clamping" -msgstr "" +msgstr "sujetar" #: lang/json/tool_quality_from_json.py msgid "pressurizing" -msgstr "" +msgstr "presurizar" #: lang/json/tool_quality_from_json.py msgid "lockpicking" -msgstr "" +msgstr "abrir cerraduras" #: lang/json/tool_quality_from_json.py msgid "extraction" -msgstr "" +msgstr "extraer" #: lang/json/tool_quality_from_json.py msgid "filtration" -msgstr "" +msgstr "filtrar" #: lang/json/tool_quality_from_json.py msgid "bionic assembly" -msgstr "" +msgstr "armar biónico" #: lang/json/tool_quality_from_json.py msgid "mana focusing" -msgstr "" +msgstr "focalizar maná" #: lang/json/tool_quality_from_json.py msgid "mana infusing" -msgstr "" +msgstr "infundir maná" #: lang/json/tool_quality_from_json.py msgid "mana weaving" -msgstr "" +msgstr "entrelazar maná" #: lang/json/tool_quality_from_json.py msgid "magic mutagen mixer" -msgstr "" +msgstr "mezclar mutágeno mágico" #. ~ Trap-vehicle collision message for trap 'bubble wrap' #: lang/json/trap_from_json.py src/trapfunc.cpp @@ -211382,14 +208700,6 @@ msgstr "junta-lluvia" msgid "magic door" msgstr "" -#: lang/json/trap_from_json.py -msgid "light snare trap" -msgstr "trampa ligera de lazo" - -#: lang/json/trap_from_json.py -msgid "heavy snare trap" -msgstr "trampa pesada de lazo" - #: lang/json/vehicle_from_json.py msgid "work light" msgstr "luz de trabajo" @@ -211922,62 +209232,10 @@ msgstr "Auto Atómico" msgid "Flaming Atomic Car" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Roadheader" -msgstr "" - #: lang/json/vehicle_from_json.py msgid "Floating disk" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Robotic Taxi" -msgstr "Taxi Robótico" - -#: lang/json/vehicle_from_json.py -msgid "Armored Robot Carrier" -msgstr "Transporte Blindado de Robots" - -#: lang/json/vehicle_from_json.py -msgid "Atomic Mini-Tank" -msgstr "Mini-Tanque Atómico" - -#: lang/json/vehicle_from_json.py -msgid "Light Tank" -msgstr "Tanque Ligero" - -#: lang/json/vehicle_from_json.py -msgid "Main Battle Tank" -msgstr "Tanque de Combate" - -#: lang/json/vehicle_from_json.py -msgid "Self-Propelled Howitzer" -msgstr "Obús Autopropulsado" - -#: lang/json/vehicle_from_json.py -msgid "Mobile Gun System" -msgstr "Sistema Móvil de Armas" - -#: lang/json/vehicle_from_json.py -msgid "Bandit Bulldozer" -msgstr "Topadora" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Planter Tractor" -msgstr "Tractor Sembradora Grande" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Plow Tractor" -msgstr "Tractor Arado Grande" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Reaper Tractor" -msgstr "Tractor Cosechadora Grande" - -#: lang/json/vehicle_from_json.py -msgid "Infantry Fighting Vehicle" -msgstr "Vehículo de Infantería de Combate" - #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" msgstr "pistola de fusión montada" @@ -212288,6 +209546,12 @@ msgstr "" msgid "A combustion engine. Burns fuel from a tank in the vehicle." 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 for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " @@ -212517,7 +209781,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "aisle lights" -msgstr "luces de espacio lateral" +msgstr "luces de pasillo" #. ~ Description for {'str': 'atomic lamp'} #: lang/json/vehicle_part_from_json.py @@ -212545,7 +209809,6 @@ msgstr "" "vehículo y no es adecuada para trabajar." #. ~ Description for {'str': 'floodlight'} -#. ~ Description for {'str': 'gel floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, circular light that illuminates the area outside the vehicle " @@ -212555,7 +209818,6 @@ msgstr "" " cuando está encendida." #. ~ Description for {'str': 'directed floodlight'} -#. ~ Description for {'str': 'gel directed floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, directed light that illuminates a half-circular area outside " @@ -212568,7 +209830,6 @@ msgid "headlight" msgstr "luz delantera" #. ~ Description for {'str': 'headlight'} -#. ~ Description for {'str': 'gel headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a narrow cone outside the vehicle when " @@ -212595,7 +209856,6 @@ msgid "wide angle headlight" msgstr "luz delantera amplia" #. ~ Description for {'str': 'wide angle headlight'} -#. ~ Description for {'str': 'gel wide angle headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a wide cone outside the vehicle when turned " @@ -212628,7 +209888,7 @@ msgstr "luz roja" #: lang/json/vehicle_part_from_json.py msgid "aisle with lights" -msgstr "espacio lateral con luces" +msgstr "pasillo con luces" #: lang/json/vehicle_part_from_json.py msgid "foot pedals" @@ -212674,6 +209934,10 @@ msgstr "" "eléctrica del vehículo cuando está expuesto al sol. Las nubes harán más " "lenta la recarga. Extremadamente frágil y no puede blindarse." +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -212889,14 +210153,14 @@ msgstr "" msgid "mounted A7 laser rifle" msgstr "rifle láser A7 montado" -#: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted M249" msgstr "M249 montado" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M249S" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted gatling shotgun" msgstr "" @@ -212921,6 +210185,10 @@ msgstr "M240 montada" msgid "mounted M60" msgstr "M60 montada" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" msgstr "lanzagranadas Mark 19 montado" @@ -213033,24 +210301,24 @@ msgstr "manija ligera de madera" #: lang/json/vehicle_part_from_json.py msgid "aisle" -msgstr "espacio lateral" +msgstr "pasillo" #. ~ Description for {'str': 'aisle'} #. ~ Description for {'str': 'wooden aisle'} #: lang/json/vehicle_part_from_json.py msgid "An aisle." -msgstr "Es un espacio lateral, como un pasillo." +msgstr "Es un pasillo." #: lang/json/vehicle_part_from_json.py msgid "wooden aisle" -msgstr "espacio lateral de madera" +msgstr "pasillo de madera" #. ~ Description for {'str': 'floor trunk'} #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." msgstr "" -"Es un espacio lateral, como un pasillo. Una escotilla te permite acceder al " -"espacio de almacenamiento que hay debajo." +"Es un pasillo. Una escotilla te permite acceder al espacio de almacenamiento" +" que hay debajo." #: lang/json/vehicle_part_from_json.py msgid "cloth roof" @@ -213443,7 +210711,7 @@ msgstr "Es una cortina sobre una ventana." #: lang/json/vehicle_part_from_json.py msgid "aisle curtain" -msgstr "cortina de espacio lateral" +msgstr "cortina de pasillo" #. ~ Description for {'str': 'aisle curtain'} #: lang/json/vehicle_part_from_json.py @@ -214229,6 +211497,13 @@ msgstr "" msgid "A wooden wheel." msgstr "Es una rueda de madera." +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "" @@ -214244,13 +211519,6 @@ msgstr "" "extendiéndose por debajo. Aunque puede contener muchas cosas, es un poco " "frágil." -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "crude plating" msgstr "" @@ -214262,10 +211530,6 @@ msgid "" "protective as proper armor, but it'll do if there's nothing else available." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "cañón láser montado" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -214327,105 +211591,6 @@ msgid "" "size." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "folding extra light quarterpanel" -msgstr "aleta extra-liviana plegable" - -#: lang/json/vehicle_part_from_json.py -msgid "foldable door" -msgstr "puerta plegable" - -#: lang/json/vehicle_part_from_json.py -msgid "superalloy coating" -msgstr "revestimiento de superaleación" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tactical shotgun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted heavy machinegun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted assault rifle" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted light machine gun" -msgstr "subfusil ligero montado" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted automatic grenade launcher" -msgstr "" - -#. ~ Description for Balancer -#: lang/json/vehicle_part_from_json.py -msgid "A large and heavy metal drum for balancing a vehicle." -msgstr "" - -#. ~ Description for roadheader -#: lang/json/vehicle_part_from_json.py -msgid "" -"A large metal jagged metalhead, powered by the vehicle's engines. Use the " -"vehicle controls to turn it on or off. When turned on, it will stop the " -"vehicle unless it has a strong engine. When turned on, it will destroy " -"walls near it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "bulette plating" -msgstr "" - -#. ~ Description for orichalcum frame -#: lang/json/vehicle_part_from_json.py -msgid "" -"An expensive magical metal framework. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mana frame" -msgstr "" - -#. ~ Description for mana frame -#: lang/json/vehicle_part_from_json.py -msgid "A shape of pure mana that can float and carry items." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "robot_carrier" -msgstr "" - -#. ~ Description for robot_carrier -#: lang/json/vehicle_part_from_json.py -msgid "" -"A cargo space for carrying robots. 'e'xamine it to capture a robot next to " -"you, or to release the robot currently contained. When selecting a robot to" -" capture, choose its tile relative to you, not the part." -msgstr "" -"Es un espacio de carga para llevar robots. Usá 'e' para examinar y capturar " -"un robot cercano, o para liberar al robot que esté adentro. Cuando " -"selecciones el robot para capturar, seleccioná el espacio en el que está en " -"relación a vos, no a la parte." - -#: lang/json/vehicle_part_from_json.py -msgid "120mm tank gun (AL)" -msgstr "arma 120mm de tanque (AC)" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm RWS" -msgstr "120mm RWS" - -#: lang/json/vehicle_part_from_json.py -msgid "ATGM turret" -msgstr "torreta ATGM" - -#: lang/json/vehicle_part_from_json.py -msgid "30mm chaingun" -msgstr "cañón de cadena 30mm" - #: lang/json/vehicle_part_from_json.py msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" @@ -214434,73 +211599,10 @@ msgstr "" "Es una turbina de vapor de combustión externa, con ciclo cerrado. Quema " "carbón de la carbonera del vehículo para producir vapor." -#: lang/json/vehicle_part_from_json.py -msgid "mounted slingshot cannon" -msgstr "cañón gomera montado" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted lacerator" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary cannon" -msgstr "cañón rotatorio montado" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted pulse laser" -msgstr "láser de pulso montado" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted turbolaser" -msgstr "turboláser montado" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted ripper" -msgstr "destripadora montada" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted scorpion ballista" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted speargun" -msgstr "harpón montado" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tesla cannon" -msgstr "cañón tesla montado" - #: lang/json/vehicle_part_from_json.py msgid "cargo shelving" msgstr "" -#. ~ Description for {'str': 'solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. Will recharge the vehicle's " -"electrical power when exposed to the sun." -msgstr "" -"Es una docena de paneles solares puestos en un chasis de varios metros de " -"altura. Mantiene a los paneles a salvo de cualquier amenaza potencial, y " -"mejora su eficiencia debido a que puede seguir al sol. Cargará la energía " -"eléctrica del vehículo cuando está expuesto al sol." - -#. ~ Description for {'str': 'upgraded solar array'} -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able track the sun. Will recharge the " -"vehicle's electrical power when exposed to the sun." -msgstr "" -"Es una docena de paneles solares mejorados puestos en un chasis de varios " -"metros de altura. Mantiene a los paneles a salvo de cualquier amenaza " -"potencial, y mejora su eficiencia debido a que puede seguir al sol. Cargará " -"la energía eléctrica del vehículo cuando está expuesto al sol." - #: lang/json/vehicle_part_from_json.py msgid "wiring" msgstr "cableado" @@ -214514,37 +211616,6 @@ msgstr "" "Es un pedazo de cable de cobre resistente, útil para conducir energía de una" " parte del vehículo a otra." -#: lang/json/vehicle_part_from_json.py -msgid "pocket dimension cargo" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "rubber treads" -msgstr "orugas de goma" - -#. ~ Description for {'str': 'rubber treads'} -#. ~ Description for {'str': 'steel treads'} -#. ~ Description for {'str': 'tank treads'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A section of continuous track, the kind mounted on construction vehicles and" -" military fighting vehicles. It acts as a wheel, and the broad surface " -"provides plenty of traction to move heavy vehicles off-road, but at the cost" -" of speed due to the heavy weight." -msgstr "" -"Es una parte de una correa continua, similar a la que se usa en los " -"vehículos de construcción o vehículos militares. Funciona como una rueda y " -"la superficie ancha brinda mucha tracción para mover vehículos grandes por " -"todo terreno, pero a baja velocidad debido al gran peso." - -#: lang/json/vehicle_part_from_json.py -msgid "steel treads" -msgstr "orugas de acero" - -#: lang/json/vehicle_part_from_json.py -msgid "tank treads" -msgstr "orugas de tanque" - #: lang/json/vehicle_part_from_json.py msgid "mounted TDI Vector" msgstr "" @@ -214765,10 +211836,6 @@ msgstr "RM802 montado" msgid "mounted RM88 battle rifle" msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary speargun" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted Ruger 10/22" msgstr "" @@ -214826,495 +211893,45 @@ msgid "mounted V29 laser" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel panel" -msgstr "panel de gel" - -#: lang/json/vehicle_part_from_json.py -msgid "gray wall" -msgstr "pared de gris" - -#. ~ Description for {'str': 'gray wall'} -#. ~ Description for {'str': 'ooze barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a vehicle wall. Keeps zombies outside the " -"vehicle and prevents people from seeing through it." -msgstr "" -"Es un blobo vivo, hecho pared del vehículo. Mantiene a los zombis afuera del" -" vehículo y evita que la gente vea a través de ella." - -#: lang/json/vehicle_part_from_json.py -msgid "gel quarterpanel" -msgstr "aleta de gel" - -#. ~ Description for {'str': 'gel quarterpanel'} -#. ~ Description for {'str': 'gray barricade'} -#. ~ Description for {'str': 'ooze screen'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a half-height vehicle wall. Keeps zombies " -"outside the vehicle but allows people to see over it." -msgstr "" -"Es un blobo vivo, convertido en media pared de vehículo. Mantiene a los " -"zombis afuera del vehículo pero permite que la gente vea sobre ella." - -#: lang/json/vehicle_part_from_json.py -msgid "gray barricade" -msgstr "barricada de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze screen" -msgstr "pantalla de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze barrier" -msgstr "barrera de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "gel framework" -msgstr "armazón de gel" - -#. ~ Description for {'str': 'gel framework'} -#. ~ Description for {'str': 'gray frame'} -#. ~ Description for {'str': 'ooze chassis'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, shaped to provide attachment points for other blobs. Other " -"vehicle components and blobs can be mounted on it. If all the frames and " -"components of a vehicle are foldable or made from blobs, the vehicle can be " -"folding into a small package and picked up as a normal item." -msgstr "" -"Es un blobo vivo hecho para brindar puntos de anclaje para otros blobos. " -"Otros componentes del vehículo y blobos pueden ser montados en él. Si todos " -"las estructuras y componentes del vehículo son plegables o hechos de blobos," -" el vehículo podrá plegarse en un pequeño paquete y llevarse como un objeto " -"normal." - -#: lang/json/vehicle_part_from_json.py -msgid "gray frame" -msgstr "estructura de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze chassis" -msgstr "chasis de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living, glowing blob. Having been filled with electrical power, can " -"release it as light of varying strength." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel aisle lights" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel directed floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel wide angle headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ice ram" -msgstr "ariete de hielo" - -#. ~ Description for {'str': 'ice ram'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will absorb damage in a" -" vehicle collision and deliver additional damage to the other object in the " -"collision. It should be mounted on the edge of the vehicle, preferably the " -"front." -msgstr "" -"Es un blobo vivo en un estado superfrío. Absorbe el daño causado en una " -"colisión y causa más daño al otro objeto. Debe ser puesta en el borde del " -"vehículo, preferiblemente adelante." - -#: lang/json/vehicle_part_from_json.py -msgid "Gelatinous tracks" -msgstr "" - -#. ~ Description for {'str': 'Gelatinous tracks'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A set of continuous, interlocking tracks made out of blob. They can be used" -" in place of wheels, and provide good traction and off-road performance." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "Oozing tracks" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "inert core" -msgstr "núcleo inerte" - -#. ~ Description for {'str': 'inert core'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A sleeping amorphous core, acting as a rotating, universal mount for a " -"weapon. If your hands are empty, you can stand next to a tentacle and " -"'f'ire the weapon by selecting the tile." -msgstr "" -"Es un núcleo amorfo inactivo, que funciona como montura rotatoria y " -"universal para un arma. Si tus manos están vacías, te podés parar al lado " -"del tentáculo y disparar el arma con 'f' al seleccionar el espacio." - -#: lang/json/vehicle_part_from_json.py -msgid "A living blob turned into a heavy vehicle weapon." -msgstr "Es un blobo vivo que funciona como un arma grande de vehículo." - -#. ~ Description for {'str': 'frost lancer'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state and transformed into a heavy" -" vehicle weapon." -msgstr "" -"Es un blobo vivo en un estado superfrío y convertido en un arma grande de " -"vehículo." - -#: lang/json/vehicle_part_from_json.py -msgid "ice pack" -msgstr "paquete de hielo" - -#. ~ Description for {'str': 'ice pack'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will keep items stored " -"in it cold, reducing the speed at which food and drink rots." -msgstr "" -"Es un blobo vivo en un estado superfrío. Mantendrá fríos los objetos " -"almacenados, reduciendo la velocidad en que los alimentos se pudren." - -#: lang/json/vehicle_part_from_json.py -msgid "icy windshield" -msgstr "parabrisas helado" - -#. ~ Description for {'str': 'icy windshield'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It is transparent, and can" -" be used to see out of the vehicle." -msgstr "" -"Es un blobo vivo en un estado superfrío. Es transparente y puede ser usado " -"para mirar hacia afuera del vehículo." - -#: lang/json/vehicle_part_from_json.py -msgid "gelacier boat hull" -msgstr "" - -#. ~ Description for {'str': 'gelacier boat hull'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It acts as a boat hull." +msgid "mounted tactical shotgun" msgstr "" -"Es un blobo vivo en un estado superfrío. Funciona como casco de un bote." - -#: lang/json/vehicle_part_from_json.py -msgid "gel retriever" -msgstr "recogedor de gel" -#. ~ Description for {'str': 'gel retriever'} -#. ~ Description for {'str': 'gray retriever'} -#. ~ Description for {'str': 'ooze retriever'} #: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed to act as a scoop. Use the vehicle controls to turn " -"it on or off. When turned on, it will scoop up any loose items that it " -"travels over, putting them into the vehicle's storage." +msgid "mounted heavy machinegun" msgstr "" -"Es un blobo vivo, hecho para funcionar como una pala. Usá los controles del " -"vehículo para activarla o desactivarla. Cuando está activada, recogerá todos" -" los objetos sueltos por los que pase, y los pondrá en el almacenamiento del" -" vehículo." #: lang/json/vehicle_part_from_json.py -msgid "gel harness" -msgstr "arnés de gel" - -#. ~ Description for {'str': 'gel harness'} -#. ~ Description for {'str': 'gray harness'} -#. ~ Description for {'str': 'ooze harness'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, reformed as a belt and attached to a seat." -msgstr "Es un blobo vivo, convertido en un cinturón y unido al asiento." - -#: lang/json/vehicle_part_from_json.py -msgid "capsule (10L)" -msgstr "cápsula (10L)" - -#. ~ Description for {'str': 'capsule (10L)'} -#. ~ Description for {'str': 'cocoon (30L)'} -#. ~ Description for {'str': 'pod (20L)'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a storage space for holding liquids. If filled " -"with the appropriate fuel for the vehicle's engine, the engine will " -"automatically draw fuel from the tank when the engine is on. If filled with" -" water, you can access the water from a water faucet, if one is installed in" -" the vehicle. You can also use a rubber hose to siphon liquids out of a " -"tank." +msgid "mounted assault rifle" msgstr "" -"Es un blobo hecho para almacenar líquidos. Si se lo llena con el combustible" -" apropiado para el motor del vehículo, el motor lo usará automáticamente " -"cuando está encendido. Si está lleno de agua, podés acceder a ella por la " -"canilla, si es que hay una instalada en el vehículo. También podés usar una " -"manguera de goma para chupar el líquido del tanque." - -#: lang/json/vehicle_part_from_json.py -msgid "gel tank (60L)" -msgstr "tanque de gel (60L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel reinforcement" -msgstr "refuerzo de gel" - -#. ~ Description for {'str': 'gel reinforcement'} -#. ~ Description for {'str': 'gray reinforcement'} -#. ~ Description for {'str': 'ooze reinforcement'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, acting as armor plate." -msgstr "Es un blobo vivo que funciona como placa de armadura." #: lang/json/vehicle_part_from_json.py -msgid "gel roof" -msgstr "techo de gel" - -#. ~ Description for {'str': 'gel roof'} -#. ~ Description for {'str': 'gray roof'} -#. ~ Description for {'str': 'ooze roof'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, placed as roof." -msgstr "Es un blobo vivo puesto como techo." - -#: lang/json/vehicle_part_from_json.py -msgid "gel seat" -msgstr "asiento de gel" +msgid "mounted light machine gun" +msgstr "subfusil ligero montado" -#. ~ Description for {'str': 'gel seat'} -#. ~ Description for {'str': 'gray seat'} -#. ~ Description for {'str': 'ooze seat'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a comfy couch. You can sit here." +msgid "mounted automatic grenade launcher" msgstr "" -"Es un blobo vivo convertido en un cómodo sillón. Te podés sentar en él." #: lang/json/vehicle_part_from_json.py -msgid "gel receptacle" -msgstr "receptáculo de gel" - -#. ~ Description for {'str': 'gel receptacle'} -#. ~ Description for {'str': 'gray receptacle'} -#. ~ Description for {'str': 'ooze receptacle'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, shaped into a cargo space." -msgstr "Es un blobo vivo hecho para almacenar objetos." - -#: lang/json/vehicle_part_from_json.py -msgid "gel pouch (under)" -msgstr "estuche de gel (debajo)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel walkway" -msgstr "pasarela de gel" - -#. ~ Description for {'str': 'gel walkway'} -#. ~ Description for {'str': 'gray walkway'} -#. ~ Description for {'str': 'ooze walkway'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a walkway." -msgstr "Es un blobo vivo hecho como una pasarela." - -#: lang/json/vehicle_part_from_json.py -msgid "gel hatch" -msgstr "escotilla de gel" - -#. ~ Description for {'str': 'gel hatch'} -#. ~ Description for {'str': 'gray hatch'} -#. ~ Description for {'str': 'ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Has a transparent patch so you can see out" -" of it, even when closed." +msgid "bulette plating" msgstr "" -"Es un blobo vivo que funciona como puerta. Tiene un pedazo transparente para" -" que puedas ver para afuera aunque esté cerrada." -#: lang/json/vehicle_part_from_json.py -msgid "opaque gel hatch" -msgstr "escotilla opaca de gel" - -#. ~ Description for {'str': 'opaque gel hatch'} -#. ~ Description for {'str': 'opaque gray hatch'} -#. ~ Description for {'str': 'opaque ooze hatch'} +#. ~ Description for orichalcum frame #: lang/json/vehicle_part_from_json.py msgid "" -"A living blob, acting as a door. Entirely opaque so you can't see through " -"it when closed." -msgstr "" -"Es un blobo vivo que funciona como una puerta. Es totalmente opaca así que " -"no se puede ver a través de ella cuando está cerrada." - -#: lang/json/vehicle_part_from_json.py -msgid "gray retriever" -msgstr "recogedor de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray harness" -msgstr "arnés de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "cocoon (30L)" -msgstr "capullo (30L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray tank (100L)" -msgstr "tanque gris (100L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray reinforcement" -msgstr "refuerzo de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray roof" -msgstr "techo de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray seat" -msgstr "asiento de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray receptacle" -msgstr "receptáculo de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray pouch (under)" -msgstr "estuche de gris (debajo)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray walkway" -msgstr "pasarela de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray hatch" -msgstr "escotilla de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gray hatch" -msgstr "escotilla opaca de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze retriever" -msgstr "recogedor de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze harness" -msgstr "arnés de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "pod (20L)" -msgstr "vaina (20L)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze tank (80L)" -msgstr "tanque supurante (80L)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze reinforcement" -msgstr "refuerzo de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze roof" -msgstr "techo de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze seat" -msgstr "asiento de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze receptacle" -msgstr "receptáculo de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze pouch (under)" -msgstr "estuche de flujo (debajo)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze walkway" -msgstr "pasarela de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze hatch" -msgstr "escotilla de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque ooze hatch" -msgstr "escotilla opaca de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "amorphous core" -msgstr "núcleo amorfo" - -#. ~ Description for {'str': 'amorphous core'} -#: lang/json/vehicle_part_from_json.py -msgid "An amorphous mass, the living heart and brain of a blob vehicle." +"An expensive magical metal framework. Other vehicle components can be " +"mounted on it, and it can be attached to other frames to increase the " +"vehicle's size." msgstr "" -"Es una masa sin forma, el corazón y el cerebro vivo de un vehículo hecho de " -"blobos." - -#: lang/json/vehicle_part_from_json.py -msgid "snow slider" -msgstr "deslizador de nieve" -#. ~ Description for {'str': 'snow slider'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, existing in a super-cooled state. It acts as a wheel." -msgstr "Es un blobo vivo en un estado superfrío. Funciona como una rueda." - -#. ~ Description for {'str': 'gelatinous wheel'} -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob. It acts as a wheel." -msgstr "Es un blobo vivo. Funciona como rueda." - -#: lang/json/vehicle_part_from_json.py -msgid "diamond barrier" -msgstr "barrera de diamante" - -#. ~ Description for {'str': 'diamond barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "A transparent, solid sheet of self-sustaining crystals." -msgstr "Es una lámina sólida y transparente de cristales autosostenidos." - -#. ~ Description for {'str': 'diamond frame'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A framework of super-strong crystal. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." +msgid "mana frame" msgstr "" -"Es una estructura de cristal super-fuerte. Se pueden poner otras partes del " -"vehículo en ella, y puede ser unida a otras estructuras para incrementar el " -"tamaño del vehículo." -#. ~ Description for {'str': 'diamond plating'} +#. ~ Description for mana frame #: lang/json/vehicle_part_from_json.py -msgid "" -"Transparent crystal armor plate. Will partially protect other components on" -" the same frame from damage." +msgid "A shape of pure mana that can float and carry items." msgstr "" -"Es una placa de cristal transparente. Protege parcialmente otros componentes" -" que estén en el mismo lugar de la estructura." #: lang/json/vitamin_from_json.py msgid "Calcium" @@ -215377,11 +211994,20 @@ msgstr "" msgid "%s/%s " msgstr "" +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "" + #: src/achievement.cpp msgid "" "\n" @@ -215428,10 +212054,6 @@ msgstr "Varios" msgid "Debug" msgstr "Debug" -#: src/action.cpp -msgid "Back" -msgstr "Volver" - #: src/action.cpp msgid "Actions" msgstr "Acciones" @@ -215446,6 +212068,30 @@ msgstr "MENÚ PRINCIPAL" msgid "%s (Direction button)" msgstr "" +#. ~ Sound of a shovel digging a pit at work! +#. ~ Sound of a shovel filling a pit or mound at work! +#: src/activity_actor.cpp src/activity_handlers.cpp +msgid "hsh!" +msgstr "hsh!" + +#: src/activity_actor.cpp +msgid "Something crawls out of the coffin!" +msgstr "" + +#: src/activity_actor.cpp +msgid "You finish exhuming a grave." +msgstr "" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging the %s." +msgstr "" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging up %s." +msgstr "Terminás de desenterrar %s." + #: src/activity_actor.cpp msgid "Use electrohack?" msgstr "¿Querés usar el electrohackeador?" @@ -215470,8 +212116,8 @@ msgstr "¡Te quedaste sin energía!" msgid "You cannot hack this." msgstr "" -#: src/activity_actor.cpp src/activity_handlers.cpp src/computer_session.cpp -#: src/computer_session.cpp src/iuse.cpp src/map.cpp +#: src/activity_actor.cpp src/computer_session.cpp src/computer_session.cpp +#: src/iuse.cpp src/map.cpp msgid "an alarm sound!" msgstr "el sonido de una alarma!" @@ -215500,10 +212146,120 @@ msgstr "¡Activaste el panel!" msgid "The nearby doors unlock." msgstr "" +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "" + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "" + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "El cable rojo siempre enciende el motor, ¿no?" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "" + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "" +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "Con un satisfactorio click, la puerta del alambrado se abre." + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "Con un satisfactorio click, la cerradura de la puerta se abre." + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "" + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "¡Tu intento torpe traba la cerradura!" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "" +"La cerradura no cede a tus intentos de forzarla, y terminás rompiendo tu " +"herramienta." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "" +"La cerradura no cede a tus intentos de forzarla, y terminás dañando tu " +"herramienta." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "La cerradura no cede a tus intentos de forzarla." + +#: src/activity_actor.cpp src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "" + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "¿Dónde querés usar tu ganzúa?" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "" +"Te metés la ganzúa en la nariz y tus sinusales se abren completamente." + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "Esa puerta no está cerrada con llave." + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "No podés usar la ganzúa en eso." + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "" + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "" + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "" + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "" + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -215576,8 +212332,8 @@ msgstr "" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." msgstr "" #: src/activity_handlers.cpp @@ -215881,58 +212637,10 @@ msgstr "No encontraste nada." msgid "The %s runs out of batteries." msgstr "El %s se queda sin batería." -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "Este cable hace que se encienda el motor." - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "Este cable, probablemente encienda el motor." - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "Por descarte, este cable enciende el motor." - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "El cable rojo siempre enciende el motor, ¿no?" - #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "Ya terminaste de recuperar cosas." -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "¡No hay ningún cadáver para convertir en esclavo zombi!" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "" -"Cortás los músculos y tendones, y quitás las partes del cuerpo hasta que te " -"sentís seguro de que el zombi no podrá volver a atacarte cuando reviva." - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie" -" won't be able to attack when it reanimates." -msgstr "" -"Te vas abriendo camino por el cadáver y cortando algunos partes. Creés que " -"el zombi no va a poder atacarte cuando reviva." - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "Cortaste demasiado el cadáver, ahora está hecho puré." - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "" -"Cortás por adentro del cadáver tratando de que quede incapaz de atacar, pero" -" no te parece que lo hayas hecho bien." - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -216085,38 +212793,6 @@ msgstr "¡hissssssssss!" msgid "With a satisfying click, the lock on the safe opens!" msgstr "Con un satisfactorio click, ¡la cerradura de la puerta se abre!" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "Con un satisfactorio click, la puerta del alambrado se abre." - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "Con un satisfactorio click, la cerradura de la puerta se abre." - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "¡Tu intento torpe traba la cerradura!" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "" -"La cerradura no cede a tus intentos de forzarla, y terminás rompiendo tu " -"herramienta." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "" -"La cerradura no cede a tus intentos de forzarla, y terminás dañando tu " -"herramienta." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "La cerradura no cede a tus intentos de forzarla." - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "Repetir una vez" @@ -216247,6 +212923,10 @@ msgstr "" msgid "You finish fishing" msgstr "" +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "¡Está demasiado oscuro para leer!" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "Terminaste de leer." @@ -216273,26 +212953,6 @@ msgstr "" msgid "%s finishes chatting with you." msgstr "%s termina de charlar con vos." -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "" - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "" @@ -216381,10 +213041,6 @@ msgid "" "actually stitching 's wounds." msgstr "" -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "" - #: src/activity_handlers.cpp msgid "" "The Autodoc returns to its resting position after successfully performing " @@ -216531,30 +213187,6 @@ msgstr "Terminaste de agujerear." msgid " finishes drilling." msgstr "" -#. ~ Sound of a shovel digging a pit at work! -#. ~ Sound of a shovel filling a pit or mound at work! -#: src/activity_handlers.cpp -msgid "hsh!" -msgstr "hsh!" - -#: src/activity_handlers.cpp -msgid "Something crawls out of the coffin!" -msgstr "" - -#: src/activity_handlers.cpp -msgid "You finish exhuming a grave." -msgstr "" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging the %s." -msgstr "" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging up %s." -msgstr "Terminás de desenterrar %s." - #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." @@ -216915,7 +213547,7 @@ msgstr "" #: src/activity_type.cpp #, c-format msgid "Stop %s?" -msgstr "" +msgstr "¿Dejás de %s?" #: src/activity_type.h msgid "THIS IS A BUG" @@ -217217,10 +213849,6 @@ msgstr "SE" msgid "South East" msgstr "SurEste" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "O" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "Oeste" @@ -217411,6 +214039,11 @@ msgstr "" msgid "Source area is the same as destination (%s)." msgstr "El área de origen es la misma que el destino (%s)." +#: src/advanced_inv.cpp +#, c-format +msgid "You have no space for %s" +msgstr "" + #: src/advanced_inv.cpp msgid "Default layout was saved." msgstr "La disposición por defecto fue guardada." @@ -217439,12 +214072,6 @@ msgstr "El recipiente de origen está vacío." msgid "You can unload only liquids into target container." msgstr "Solamente podés poner líquidos en el recipiente de destino." -#: src/advanced_inv.cpp -msgid "You can't partially unload liquids from unsealable container." -msgstr "" -"No podés descargar parcialmente el líquido de un recipiente que no se puede " -"sellar." - #: src/advanced_inv.cpp msgid "You can't pick up a liquid." msgstr "No podés agarrar un líquido." @@ -217543,6 +214170,10 @@ msgstr "atado a tu cuerpo" msgid "an aura around you" msgstr "" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "" + #: src/armor_layers.cpp #, c-format msgid "" @@ -217628,11 +214259,6 @@ msgstr "Incomodidad:" msgid "Warmth:" msgstr "Abrigo:" -#: src/armor_layers.cpp -#, c-format -msgid "Storage (%s):" -msgstr "Almacenamiento (%s):" - #: src/armor_layers.cpp msgid "Protection" msgstr "Protección" @@ -217645,6 +214271,10 @@ msgstr "Golpe:" msgid "Cut:" msgstr "Corte: " +#: src/armor_layers.cpp +msgid "Ballistic:" +msgstr "Balística:" + #: src/armor_layers.cpp msgid "Acid:" msgstr "" @@ -217705,16 +214335,6 @@ msgstr "Te ayuda a ver bien abajo del agua." msgid "It can occupy the same space as other things." msgstr "" -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "%s está muy lejos para ordenarse la ropa." - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "¡%s no es tu amigo!" - #: src/armor_layers.cpp msgid "Sort Armor" msgstr "Ordenar Ropa" @@ -217759,6 +214379,16 @@ msgstr "Incomodidad y Abrigo" msgid "Encumbrance" msgstr "Incomodidad" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "%s está muy lejos para ordenarse la ropa." + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "¡%s no es tu amigo!" + #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" @@ -218698,10 +215328,6 @@ msgstr "¡Sos analfabeto!" msgid "Your eyes won't focus without reading glasses." msgstr "Tus ojos no se pueden enfocar sin tus anteojos de leer." -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "¡Está demasiado oscuro para leer!" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "¡Por ahí alguien te podría leer esto, pero sos sordo!" @@ -219015,11 +215641,15 @@ msgstr "" msgid "You train for a while." msgstr "" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp +msgid "It looks like you woke up before your alarm." +msgstr "Parece que te despertaste antes de que suene la alarma." + +#: src/avatar.cpp msgid "It looks like you've slept through your internal alarm…" msgstr "" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp msgid "It looks like you've slept through the alarm…" msgstr "" @@ -219027,6 +215657,11 @@ msgstr "" msgid "You retched, but your stomach is empty." msgstr "Tenés arcadas, pero tu estómago está vacío." +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "Vos (%s)" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "" @@ -219101,59 +215736,12 @@ msgstr "" msgid "Are you sure you want to raise %s? %d points available." msgstr "" -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "" - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "" - -#: src/avatar.cpp -msgid "You start walking." -msgstr "" - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "" - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "" - -#: src/avatar.cpp -msgid "You start running." -msgstr "Empezás a correr." - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "" - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "" - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "Estás muy cansado para correr." - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "" - -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "" - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "" - -#. ~ %1$s: weapon name, %2$s: holster name +#. ~ %1$s: weapon name +#. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp #, c-format msgctxt "holster" -msgid "Draw %1$s from %2$s?" +msgid "Draw from %1$s?" msgstr "" #: src/avatar.cpp src/monexamine.cpp @@ -219201,11 +215789,11 @@ msgstr "" msgid "Move into the monster to attack." msgstr "" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" msgstr "¡Tu voluntad se reafirma a sí misma, y vos hacés lo mismo!" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything…" msgstr "" @@ -219418,11 +216006,6 @@ msgstr "" msgid "This grass is tainted with paint and thus inedible." msgstr "" -#: src/avatar_action.cpp -#, c-format -msgid "You leave the empty %s." -msgstr "Dejás el/a %s vacío/a." - #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "No podés tirar con eficacia mientras estás dentro de tu caparazón." @@ -220035,10 +216618,6 @@ msgstr "" msgid "Your %s powers down." msgstr "Tu %s se apaga." -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "¡Generador artificial de noche activado!" - #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." @@ -220109,6 +216688,14 @@ msgstr "" msgid "The %s screws up the operation." msgstr "" +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "" + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "" + #: src/bionics.cpp msgid "You prep to begin surgery." msgstr "Te preparás para empezar la cirugía." @@ -220869,6 +217456,46 @@ msgstr "litros" msgid "quart" msgstr "cuarto" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "" + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -221170,13 +217797,6 @@ msgstr "" msgid "This %s is too small to wear comfortably! Maybe it could be refitted." msgstr "" -#. ~ %1$s: item name, %2$s: container name -#: src/character.cpp -#, c-format -msgctxt "container" -msgid "You put the %1$s in your %2$s." -msgstr "" - #: src/character.cpp msgid "You can't place items here!" msgstr "¡No podés poner objetos acá!" @@ -221413,12 +218033,8 @@ msgid "Slaked" msgstr "Sed saciada" #: src/character.cpp -msgid "Engorged" -msgstr "Panza llena" - -#: src/character.cpp -msgid "Sated" -msgstr "Satisfecho" +msgid "Satisfied" +msgstr "" #: src/character.cpp msgid "Hungry" @@ -221428,21 +218044,21 @@ msgstr "Con hambre" msgid "Very Hungry" msgstr "Con mucha hambre" -#: src/character.cpp -msgid "Starving!" -msgstr "¡Muriendo de hambre!" - #: src/character.cpp msgid "Near starving" msgstr "Por morir de hambre" +#: src/character.cpp +msgid "Starving!" +msgstr "¡Muriendo de hambre!" + #: src/character.cpp msgid "Famished" msgstr "Famélico/a" #: src/character.cpp -msgid "Peckish" -msgstr "Muy hambriento/a" +msgid "ERROR!" +msgstr "" #: src/character.cpp src/npctalk.cpp msgid "Exhausted" @@ -221488,22 +218104,42 @@ msgstr "Estás sintiendo calambres por meterte en este vehículo." msgid "You have a sudden heart attack!" msgstr "¡Sufrís un repentino ataque al corazón!" +#: src/character.cpp +msgid " has a sudden heart attack!" +msgstr "" + #: src/character.cpp msgid "Your breathing stops completely." msgstr "Tu respiración se detiene completamente." +#: src/character.cpp +msgid "'s breathing stops completely." +msgstr "" + #: src/character.cpp msgid "Your heart spasms painfully and stops." msgstr "Sentís espasmos dolorosos en tu corazón, y se detiene." +#: src/character.cpp +msgid "'s heart spasms painfully and stops." +msgstr "" + #: src/character.cpp msgid "Your heart spasms and stops." msgstr "Tu corazón sufre espasmos y se detiene." +#: src/character.cpp +msgid "'s heart spasms and stops." +msgstr "" + #: src/character.cpp msgid "Your breathing slows down to a stop." msgstr "Tu respiración comienza a ser más lenta hasta que se detiene." +#: src/character.cpp +msgid "'s breathing slows down to a stop." +msgstr "" + #: src/character.cpp msgid "You have starved to death." msgstr "Te moriste de hambre." @@ -221791,6 +218427,12 @@ msgstr "Ningún miembro será beneficiado con esto." msgid "Cancel" msgstr "Cancelar" +#. ~ you filled to the brim with +#: src/character.cpp +#, c-format +msgid "You filled %1$s to the brim with %2$s." +msgstr "" + #: src/character.cpp src/iexamine.cpp #, c-format msgid "You pour %1$s into the %2$s." @@ -222299,7 +218941,7 @@ msgstr "" msgid "You need a hammering tool to crush up frozen liquids!" msgstr "" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp src/npc.cpp msgid "Wielding: " msgstr "Empuñando: " @@ -222311,11 +218953,6 @@ msgstr "Vistiendo: " msgid "Traits: " msgstr "Peculiaridades: " -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "Vos (%s)" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." @@ -223244,7 +219881,7 @@ msgstr "" #, c-format msgctxt "query_ynq" msgid "%s %s, %s, %s (Case sensitive)" -msgstr "" +msgstr "%s %s, %s, %s (Usá mayúscula)" #. ~ 1st: query string, 2nd-4th: keybinding descriptions #: src/computer_session.cpp @@ -223504,7 +220141,7 @@ msgid "This is full of dirt after being on the ground." msgstr "Esto está lleno de tierra después de haber estado en el suelo." #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/player.cpp +#: src/iuse_actor.cpp src/iuse_actor.cpp msgid "You can't do that while underwater." msgstr "No podés hacer eso abajo del agua." @@ -223516,7 +220153,7 @@ msgstr "Está congelado. Tenés que descongelarlo antes de que lo puedas comer." msgid "You can't drink it while it's frozen." msgstr "No podés tomarlo mientras está congelado." -#: src/consumption.cpp src/player.cpp +#: src/consumption.cpp #, c-format msgid "You need a %s to consume that!" msgstr "¡Necesitás un/a %s para consumir eso!" @@ -223545,10 +220182,18 @@ msgstr "" msgid "This is rotten and smells awful!" msgstr "¡Esto está podrido y tiene una baranda espantosa!" +#: src/consumption.cpp +msgid "The thought of eating demihuman flesh makes you feel sick." +msgstr "" + #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." msgstr "Solo pensar en comer carne humana te hace sentir enfermo/a." +#: src/consumption.cpp +msgid "Eating this raw meat probably isn't very healthy." +msgstr "" + #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." msgstr "Todavía sentís náuseas y posiblemente vuelvas a vomitar." @@ -223917,6 +220562,15 @@ msgid_plural " load %1$i charges of %2$s in their %3$s." msgstr[0] "" msgstr[1] "" +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "No tenés ese objeto." + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "No te podés comer tu %s." + #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" msgstr "(cercano)" @@ -224008,8 +220662,8 @@ msgstr "¡Ya no podés fabricar eso!" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" msgstr "" #: src/crafting.cpp src/pickup.cpp @@ -224763,6 +221417,11 @@ msgctxt "damage type" msgid "stab" msgstr "" +#: src/damage.cpp +msgctxt "damage_type" +msgid "bullet" +msgstr "" + #: src/damage.cpp msgctxt "damage type" msgid "heat" @@ -224952,6 +221611,14 @@ msgstr "" msgid "Info…" msgstr "" +#: src/debug_menu.cpp +msgid "Enable achievements" +msgstr "" + +#: src/debug_menu.cpp +msgid "Game…" +msgstr "" + #: src/debug_menu.cpp msgid "Teleport - short range" msgstr "" @@ -225392,6 +222059,10 @@ msgstr "Sed" msgid "Fatigue" msgstr "Cansancio" +#: src/debug_menu.cpp +msgid "Sleep Deprivation" +msgstr "Privación de Sueño" + #: src/debug_menu.cpp msgid "Reset all basic needs" msgstr "" @@ -225776,6 +222447,14 @@ msgstr "" msgid "Enter benchmark length (in milliseconds):" msgstr "" +#: src/debug_menu.cpp +msgid "Achievements are already enabled" +msgstr "" + +#: src/debug_menu.cpp +msgid "Achievements enabled" +msgstr "" + #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " @@ -226018,7 +222697,7 @@ msgstr "" msgid "trap: %s (%d)" msgstr "trampa: %s (%d)" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "" @@ -227514,6 +224193,16 @@ msgid "" "Time: 3 Hours, Repeated\n" "Positions: %d/3\n" msgstr "" +"Notas:\n" +"Enviar compañero a recoger materiales para la próxima mejora del campamento.\n" +"\n" +"Habilidad usada: supervivencia\n" +"Dificultad: N/D\n" +"Posibilidad de recolectar:\n" +"%s\n" +"Riesgo: Muy bajo\n" +"Tiempo: 3 Horas, Repetir\n" +"Lugares: %d/3\n" #: src/faction_camp.cpp #, c-format @@ -227532,6 +224221,19 @@ msgid "" "Time: 3 Hours, Repeated\n" "Positions: %d/3\n" msgstr "" +"Notas:\n" +"Enviar un compañero a recolectar arbustos y palos grandes.\n" +" \n" +"Habilidad usada: supervivencia\n" +"Dificultad: N/D \n" +"Posibilidad de recolectar:\n" +"> palos grandes\n" +"> plantas marchitas\n" +"> astillas de madera\n" +" \n" +"Riesgo: Muy bajo\n" +"Tiempo: 3 Horas, Repetir\n" +"Lugares: %d/3\n" #: src/faction_camp.cpp #, c-format @@ -227548,6 +224250,17 @@ msgid "" "Time: 3 Hours\n" "Positions: %d/1\n" msgstr "" +"Notas:\n" +"Enviar compañero a hacer tareas rutinarias y ordenar cosas.\n" +"\n" +"Habilidad usada: fabricación\n" +"Dificultad: N/D\n" +"Efectos:\n" +"> Material desordenado en zona para cosas será ordenado en su zona definida.\n" +"\n" +"Riesgo: Ninguno\n" +"Tiempo: 3 Horas\n" +"Lugares: %d/1\n" #: src/faction_camp.cpp #, c-format @@ -227566,6 +224279,19 @@ msgid "" "Time: 6 Hour Base + Travel Time + Cutting Time\n" "Positions: %d/1\n" msgstr "" +"Notas:\n" +"Enviar compañero a un bosque cercano a cortar troncos.\n" +" \n" +"Habilidad usada: fabricación\n" +"Dificultad: 1 \n" +"Efectos:\n" +"> 50%% de los árboles/troncos en el bosque serán cortados.\n" +"> 100%% del material total será traído.\n" +"> Se puede repetir con resultados menores.\n" +"> Eventualmente transformará bosques en campos. \n" +"Riesgo: Ninguno\n" +"Tiempo: 6 Horas en Base + Tiempo de Traslado + Tiempo de Tala\n" +"Lugares: %d/1\n" #: src/faction_camp.cpp #, c-format @@ -227585,6 +224311,20 @@ msgid "" "Time: 6 Hour Base + Travel Time + Cutting Time\n" "Positions: %d/1\n" msgstr "" +"Notas:\n" +"Enviar aliado a limpiar un bosque cercano.\n" +" \n" +"Habilidad usada: fabricación\n" +"Dificultad: 1 \n" +"Efectos:\n" +"> 95%% de los árboles/troncos en el bosque serán cortados.\n" +"> 0%% del material total será traído.\n" +"> El espacio de bosque debería convertirse en campo.\n" +"> Sirve para limpiar el terreno para poner otro campamento.\n" +" \n" +"Riesgo: Ninguno\n" +"Tiempo: 6 Horas en Base + Tiempo de Traslado + Tiempo de Talado\n" +"Lugares: %d/1\n" #: src/faction_camp.cpp #, c-format @@ -227603,6 +224343,19 @@ msgid "" "Time: 6 Hour Construction + Travel\n" "Positions: %d/1\n" msgstr "" +"Notas:\n" +"Enviar un compañero a construir un refugio improvisado y llenarlo con equipamiento en un lugar del mapa.\n" +" \n" +"Habilidad usada: supervivencia\n" +"Dificultad: 3\n" +"Efectos:\n" +"> Sirve para establecer puntos de contingencia o de suministros.\n" +"> El equipo queda sin supervisión y puede ser robado.\n" +"> El tiempo depende del peso del equipo enviado.\n" +" \n" +"Riesgo: Medio\n" +"Tiempo: 6 Horas de Construcción + Traslado\n" +"Lugares: %d/1\n" #: src/faction_camp.cpp #, c-format @@ -227621,6 +224374,19 @@ msgid "" "Time: 1 Hour Base + Travel\n" "Positions: %d/1\n" msgstr "" +"Notas:\n" +"Enviar equipamiento a escondite o traerlo de nuevo a la base.\n" +" \n" +"Habilidad usada: supervivencia\n" +"Dificultad: 1\n" +"Efectos:\n" +"> Sirve para recuperar equipo que dejaste en el refugio de escondite.\n" +"> El equipo queda sin supervisión y puede ser rebado.\n" +"> El tiempo depende del peso del equipo trasladado.\n" +" \n" +"Riesgo: Medio\n" +"Tiempo: 1 Hora en Base + Traslado\n" +"Lugares: %d/1\n" #: src/faction_camp.cpp #, c-format @@ -227638,6 +224404,18 @@ msgid "" "Time: 4 Hours, Repeated\n" "Positions: %d/3\n" msgstr "" +"Notas:\n" +"Enviar compañero a buscar plantas comestibles.\n" +" \n" +"Habilidad usada: supervivencia\n" +"Dificultad: N/D \n" +"Posibilidad de recolección:\n" +"> verduras silvestres\n" +"> frutas y nueces dependiendo la temporada\n" +"¡Puede producir menos comida que la consumida!\n" +"Riesgo: Muy bajo\n" +"Tiempo: 4 Horas, Repetir\n" +"Lugares: %d/3\n" #: src/faction_camp.cpp #, c-format @@ -227654,6 +224432,17 @@ msgid "" "Time: 6 Hours, Repeated\n" "Positions: %d/2\n" msgstr "" +"Notas:\n" +"Enviar compañero a poner trampas para caza menor.\n" +" \n" +"Habilidad usada: trampas\n" +"Dificultad: N/D \n" +"Posibilidad de atrapar:\n" +"> cadáveres de animales chicos y pequeños\n" +"¡Puede producir menos comida que la consumida!\n" +"Riesgo: Bajo\n" +"Tiempo: 6 Horas, Repetir\n" +"Lugares: %d/2\n" #: src/faction_camp.cpp #, c-format @@ -227670,6 +224459,17 @@ msgid "" "Time: 6 Hours, Repeated\n" "Positions: %d/1\n" msgstr "" +"Notas:\n" +"Enviar compañero a cazar animales grandes.\n" +" \n" +"Habilidad usada: puntería\n" +"Dificultad: N/D \n" +"Posibilidad de cazar:\n" +"> cadáveres de animales grandes, chicos o pequeños\n" +"¡Puede producir menos comida que la consumida!\n" +"Riesgo: Medio\n" +"Tiempo: 6 Horas, Repetir\n" +"Lugares: %d/1\n" #: src/faction_camp.cpp msgid "Construct Spiked Trench" @@ -227692,6 +224492,19 @@ msgid "" "Time: Travel\n" "Positions: %d/3\n" msgstr "" +"Notas:\n" +"Enviar compañero a territorio desconocido. Se necesita habilidad en supervivencia para evitar las luchas pero igual deberías prepararte para algunas.\n" +" \n" +"Habilidad usada: supervivencia\n" +"Dificultad: 3\n" +"Efectos:\n" +"> Elegir puntos específicos para trazar el camino.\n" +"> Revela terreno alrededor del camino.\n" +"> Puede pasar por escondites para extender su alcance.\n" +" \n" +"Riesgo: Alto\n" +"Tiempo: Traslado\n" +"Lugares: %d/3\n" #: src/faction_camp.cpp #, c-format @@ -227710,6 +224523,19 @@ msgid "" "Time: Travel\n" "Positions: %d/3\n" msgstr "" +"Notas:\n" +"Enviar compañero a purgar las tierras baldías. Su objetivo es eliminar cualquier cosa hostil que encuentre y regresar cuando esté muy herido o se haya complicado mucho su misión.\n" +" \n" +"Habilidad usada: supervivencia\n" +"Dificultad: 4\n" +"Efectos:\n" +"> Hace que las criaturas luchen en lugar de que huyan.\n" +"> Elegir puntos específicos para trazar el camino.\n" +"> Puede pasar por escondites para extender su alcance.\n" +" \n" +"Riesgo: Muy alto\n" +"Tiempo: Traslado\n" +"Lugares: %d/3\n" #: src/faction_camp.cpp msgid "" @@ -227747,6 +224573,17 @@ msgid "" "Time: 5 Min / Plot\n" "Positions: 0/1\n" msgstr "" +"\n" +" \n" +"Habilidad usada: fabricación\n" +"Dificultad: N/D \n" +"Efectos:\n" +"> Recupera solo los espacios creados en la última expansión.\n" +"> No daña los cultivos que haya.\n" +" \n" +"Riesgo: Ninguno\n" +"Tiempo: 5 Min / Lote \n" +"Lugares: 0/1 \n" #: src/faction_camp.cpp msgid "" @@ -227770,6 +224607,18 @@ msgid "" "Time: 1 Min / Plot\n" "Positions: 0/1\n" msgstr "" +"\n" +"\n" +"Habilidad usada: Supervivencia\n" +"Dificultad: N/D\n" +"Efectos:\n" +"> Elegir qué semilla o si usarás todas tus semillas.\n" +"> Detenerse cuando se quede sin semillas o sin lotes.\n" +"> Plantará en TODOS los montículos de tierra de la expansión.\n" +"\n" +"Riesgo: Ninguno\n" +"Tiempo: 1 Min / Lote\n" +"Lugares: 0/1\n" #: src/faction_camp.cpp msgid "" @@ -227791,6 +224640,16 @@ msgid "" "Time: 3 Min / Plot\n" "Positions: 0/1\n" msgstr "" +"\n" +" \n" +"Habilidad usada: supervivencia\n" +"Dificultad: N/D \n" +"Efectos:\n" +"> Dejará todos los productos cosechados en tu lugar.\n" +" \n" +"Riesgo: Ninguno\n" +"Tiempo: 3 Min / Lote \n" +"Lugares: 0/1 \n" #: src/faction_camp.cpp #, c-format @@ -227808,6 +224667,18 @@ msgid "" "Time: 3 Hours\n" "Positions: %d/1\n" msgstr "" +"Notas:\n" +"Tu base se hizo lo suficientemente grande como para agrandarla. Las expansiones abren nuevas posibilidades pero pueden ser costosas y llevan tiempo. Elegí la expansión con cuidado, solamente se pueden construir 8 por campamento.\n" +" \n" +"Habilidad usada: N/D \n" +"Efectos:\n" +"> Elegí cualquiera de las expansiones disponibles. Empezar por la granja siempre es la mejor opción porque la comida es necesaria para alimentar las misiones de los aliados y no es necesario mucho para hacerlas funcionar. Con poca inversión, un mecánico puede ser útil en un desarmadero para desarmar vehículos grandes, y una forja brinda los recursos para hacer carbón vegetal. \n" +" \n" +"NOTA: Las acciones disponibles a través de las expansiones están en pestañas separadas en la ventana de Administrador de Campamento. \n" +" \n" +"Riesgo: Ninguno\n" +"Tiemo: 3 Horas \n" +"Lugares: %d/1\n" #: src/faction_camp.cpp #, c-format @@ -228497,6 +225368,21 @@ msgid "" "Time: 4 Days\n" "Positions: %d/1\n" msgstr "" +"Notas:\n" +"Reclutar seguidores adicionales es muy caro y peligroso. El resultado dependerá mucho de la habilidad del compañero enviado y del atractivo de tu base.\n" +" \n" +"Habilidad usada: hablar\n" +"Dificultad: 2 \n" +"Puntuación de Base: +%3d%%\n" +"> Bonus por Expansión: +%3d%%\n" +"> Bonus por Bando: +%3d%%\n" +"> Bonus Especial: +%3d%%\n" +" \n" +"Total: Habilidad +%3d%%\n" +" \n" +"Riesgo: Alto\n" +"Tiempo: 4 Días\n" +"Lugares: %d/1\n" #: src/faction_camp.cpp msgid "Harvestable: " @@ -228694,6 +225580,11 @@ msgstr "¡El árbol florece en un capullo fúngico!" msgid "You completed the achievement \"%s\"." msgstr "" +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "" + #: src/game.cpp src/options.cpp #, c-format msgid "Loading the tileset failed: %s" @@ -228858,15 +225749,25 @@ msgctxt "action" msgid "disassemble" msgstr "desarmar" +#: src/game.cpp +msgctxt "action" +msgid "insert" +msgstr "Meter" + +#: src/game.cpp +msgctxt "action" +msgid "open" +msgstr "abrir" + #: src/game.cpp msgctxt "action" msgid "unfavorite" -msgstr "" +msgstr "no favorito" #: src/game.cpp msgctxt "action" msgid "favorite" -msgstr "" +msgstr "favorito" #: src/game.cpp msgctxt "action" @@ -229382,11 +226283,6 @@ msgstr "" msgid "Without extra fuel it will burn for between %s to %s." msgstr "" -#: src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "" - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "" @@ -229421,6 +226317,44 @@ msgstr "" msgid "Peek where?" msgstr "¿Adónde te querés asomar?" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "pequeño" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "chico" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "mediano" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "grande" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "enorme" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "" + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "Es de tamaño %s." + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "" + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -229462,17 +226396,17 @@ msgstr "No ves." #: src/game.cpp #, c-format -msgid "%s; Impassable" -msgstr "%s; Intransitable" +msgid "Cover: %d%%" +msgstr "" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" -msgstr "%s; Movimiento %d" +msgid "Impassable" +msgstr "" #: src/game.cpp -msgid "Lighting: " -msgstr "Luz: " +#, c-format +msgid "Move cost: %d" +msgstr "" #: src/game.cpp #, c-format @@ -229480,8 +226414,8 @@ msgid "Sign: %s" msgstr "Cartel: %s" #: src/game.cpp -msgid "Sign: ???" -msgstr "Cartel: ???" +msgid "Lighting: " +msgstr "Luz: " #: src/game.cpp #, c-format @@ -229495,12 +226429,11 @@ msgstr "Abajo: %s; Transitable" #: src/game.cpp #, c-format -msgid "Coverage: %d%%" +msgid "Unfinished task: %s, %d%% complete" msgstr "" #: src/game.cpp -#, c-format -msgid "Unfinished task: %s, %d%% complete" +msgid "Vehicle: " msgstr "" #: src/game.cpp @@ -229907,7 +226840,7 @@ msgstr "¡Necesitás por lo menos un/a %s para recargar el/a %s!" msgid "The %s is already full!" msgstr "¡El %s ya está lleno!" -#: src/game.cpp src/ranged.cpp +#: src/game.cpp #, c-format msgid "You can't reload a %s!" msgstr "¡No podés recargar un/a %s!" @@ -230618,7 +227551,7 @@ msgstr "Sentís degradarse tu maquillaje genético." #: src/game.cpp msgid "You feel an otherworldly attention upon you…" -msgstr "" +msgstr "Sentís una atención sobrenatural puesta sobre vos..." #: src/game.cpp msgid "You feel a force pulling you inwards." @@ -230666,8 +227599,40 @@ msgid "Speed %s%d!" msgstr "" #: src/game.cpp -msgid "You slip while climbing and fall down again." -msgstr "Te resbalás mientras trepabas y te caés de nuevo." +msgid "Your skill in parkour makes it easier to climb." +msgstr "" + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "" + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "" + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "" + +#: src/game.cpp +msgid "You slip while climbing and fall down." +msgstr "" #: src/game.cpp msgid "Climbing is impossible in your current state." @@ -230685,6 +227650,11 @@ msgid "" msgstr "" "Atajos asignados: %d/%d" +#: src/game_inventory.cpp +#, c-format +msgid "Inventory of %s" +msgstr "" + #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." msgstr "Tu inventario está vacío." @@ -230709,6 +227679,10 @@ msgstr "GOLPE" msgid "CUT" msgstr "CORTE" +#: src/game_inventory.cpp +msgid "BULLET" +msgstr "" + #: src/game_inventory.cpp msgid "ACID" msgstr "ÁCIDO" @@ -230802,6 +227776,15 @@ msgstr "" msgid "VOLUME" msgstr "" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "%s" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "FRESCURA" @@ -231034,6 +228017,10 @@ msgstr "CUERPO A CUERPO" msgid "MOVES" msgstr "MOVIMIENTOS" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "" + #: src/game_inventory.cpp msgid "Wield item" msgstr "Empuñar objeto" @@ -231044,21 +228031,26 @@ msgstr "No tenés nada para empuñar." #: src/game_inventory.cpp #, c-format -msgid "You can't put anything into your %s." -msgstr "No podés poner nada en tu %s." - -#: src/game_inventory.cpp src/iuse_actor.cpp -msgid "Holster item" -msgstr "Envainar objeto" +msgid "Put item into %s" +msgstr "" #: src/game_inventory.cpp #, c-format msgid "Choose an item to put into your %s" msgstr "" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "" + +#: src/game_inventory.cpp +#, c-format +msgid "Insert items into %s" +msgstr "" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." +msgid "Could not put %s into %s, aborting." msgstr "" #: src/game_inventory.cpp src/iuse.cpp @@ -231341,34 +228333,6 @@ msgstr "¡Tenés que elegir por lo menos un grupo de monstruos!" msgid "Special Zombies" msgstr "Zombis Especiales" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "Zombis" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "Trífidos" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "Robots" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "Subespacio" - -#: src/gamemode_defense.cpp src/handle_action.cpp -msgid "Food" -msgstr "Comida" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "Mercenarios" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "MODO DEFENSA" @@ -231445,7 +228409,35 @@ msgstr "Es el incremento del premio por cada ola." msgid "Enemy Selection:" msgstr "Selección de Enemigo:" -#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "Zombis" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "Trífidos" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "Robots" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "Subespacio" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "Comida" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "Mercenarios" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "" + +#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp src/options.cpp msgid "Custom" msgstr "Personalizado" @@ -231530,6 +228522,10 @@ msgstr "Hipermercado" msgid "Bar" msgstr "Bar" +#: src/gamemode_defense.cpp +msgid "Mansion" +msgstr "Mansión" + #: src/gamemode_defense.cpp msgid "One entrance and many rooms. Some medical supplies." msgstr "Una entrada y muchas habitaciones. Hay algunos suministros médicos." @@ -231817,6 +228813,10 @@ msgstr "" msgid "This vehicle doesn't look very airworthy." msgstr "" +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "" + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "" @@ -232202,15 +229202,7 @@ msgid "Change to which movement mode?" msgstr "" #: src/handle_action.cpp -msgid "Run" -msgstr "" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "" - -#: src/handle_action.cpp -msgid "Crouch" +msgid "Cycle move mode" msgstr "" #: src/handle_action.cpp @@ -232236,7 +229228,7 @@ msgstr "" #: src/handle_action.cpp msgid "What do you want to consume?" -msgstr "" +msgstr "¿Qué querés consumir?" #: src/handle_action.cpp msgid "Medication" @@ -232709,6 +229701,10 @@ msgid_plural "Withdraw how much? Max: %d cents. (0 to cancel) " msgstr[0] "" msgstr[1] "" +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "" @@ -232806,7 +229802,7 @@ msgstr "" #: src/iexamine.cpp msgid "If only you had a shovel…" -msgstr "" +msgstr "Si tuvieras una pala…" #: src/iexamine.cpp #, c-format @@ -232899,7 +229895,7 @@ msgstr "" #: src/iexamine.cpp #, c-format msgid "Insert $%d?" -msgstr "" +msgstr "¿Querés meter $%d?" #: src/iexamine.cpp #, c-format @@ -233916,18 +230912,19 @@ msgid "You're illiterate, and can't read the screen." msgstr "Sos analfabeto, no podés leer la pantalla." #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" +#, c-format +msgid "Failure! No %s pumps found!" msgstr "" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" +#, c-format +msgid "Failure! No %s tank found!" msgstr "" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." msgstr "" -"Esta estación se ha quedado sin combustible. Le pedimos disculpas por las " -"molestias." #: src/iexamine.cpp msgid "Welcome to AutoGas!" @@ -233938,36 +230935,41 @@ msgid "What would you like to do?" msgstr "¿Qué acción quieres realizar?" #: src/iexamine.cpp -msgid "Buy gas." -msgstr "Comprar combustible." +#, c-format +msgid "Buy %s." +msgstr "" #: src/iexamine.cpp msgid "Refund cash." msgstr "Reembolso de dinero." #: src/iexamine.cpp -msgid "Current gas pump: " -msgstr "Surtidor seleccionado:" +#, c-format +msgid "Current %s pump: " +msgstr "" #: src/iexamine.cpp -msgid "Choose a gas pump." -msgstr "Seleccionar surtidor." +#, c-format +msgid "Choose a %s pump." +msgstr "" #: src/iexamine.cpp msgid "Your discount: " msgstr "Descuento de:" #: src/iexamine.cpp -msgid "Your price per gasoline unit: " -msgstr "Precio por unidad de nafta." +#, c-format +msgid "Your price per %s unit: " +msgstr "" #: src/iexamine.cpp msgid "Hack console." msgstr "Hackear consola." #: src/iexamine.cpp -msgid "Please choose gas pump:" -msgstr "Por favor, seleccioná un surtidor:" +#, c-format +msgid "Please choose %s pump:" +msgstr "" #: src/iexamine.cpp msgid "Pump " @@ -233980,7 +230982,7 @@ msgstr "" #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" msgstr "" #: src/iexamine.cpp @@ -233998,7 +231000,7 @@ msgstr "No se pudo reembolsar el dinero, no hay nafta en el surtidor." #: src/iexamine.cpp msgid "There is a ledge here. What do you want to do?" -msgstr "" +msgstr "Hay un borde acá. ¿Qué querés hacer?" #: src/iexamine.cpp msgid "Jump over." @@ -234034,8 +231036,8 @@ msgid "You jump over an obstacle." msgstr "" #: src/iexamine.cpp -msgid "You can't climb down there" -msgstr "No podés bajar trepando por ahí" +msgid "You can't climb down there." +msgstr "" #: src/iexamine.cpp #, c-format @@ -234062,6 +231064,14 @@ msgstr "" msgid "You may have problems climbing back up. Climb down?" msgstr "" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "" + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "" @@ -234096,8 +231106,8 @@ msgstr "" #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate." -" Please move patient to appropriate facility. Exiting." +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." msgstr "" #: src/iexamine.cpp @@ -234667,10 +231677,6 @@ msgstr "Partes de vehículo" msgid "Traps" msgstr "Trampas" -#: src/init.cpp -msgid "Bionics" -msgstr "Biónicos" - #: src/init.cpp msgid "Terrain" msgstr "Terreno" @@ -234707,6 +231713,10 @@ msgstr "Prototipos de vehículos" msgid "Mapgen weights" msgstr "Pesos en generación de mapa" +#: src/init.cpp +msgid "Behaviors" +msgstr "" + #: src/init.cpp msgid "Monster types" msgstr "Tipos de monstruos" @@ -234723,6 +231733,10 @@ msgstr "Bandos de monstruos" msgid "Factions" msgstr "" +#: src/init.cpp +msgid "Move modes" +msgstr "" + #: src/init.cpp msgid "Crafting recipes" msgstr "Recetas de fabricación" @@ -234743,10 +231757,6 @@ msgstr "Clases de PNJ" msgid "Missions" msgstr "" -#: src/init.cpp -msgid "Behaviors" -msgstr "" - #: src/init.cpp msgid "Harvest lists" msgstr "Listas de cosecha" @@ -234759,8 +231769,8 @@ msgstr "Anatomías" msgid "Mutations" msgstr "Mutaciones" -#: src/init.cpp -msgid "Achivements" +#: src/init.cpp src/scores_ui.cpp +msgid "Achievements" msgstr "" #: src/init.cpp @@ -234819,6 +231829,10 @@ msgstr "" msgid "Ammunition types" msgstr "Tipos de municiones" +#: src/init.cpp +msgid "Bionics" +msgstr "Biónicos" + #: src/init.cpp msgid "Gates" msgstr "Verjas" @@ -234855,6 +231869,10 @@ msgstr "" msgid "Scores" msgstr "" +#: src/init.cpp +msgid "Achivements" +msgstr "" + #: src/init.cpp msgid "Disease types" msgstr "" @@ -235267,7 +232285,7 @@ msgstr "Necesitás dos objetos para comparar. Usá %s para elegirlos." msgid "No items were selected. Use %s to select them." msgstr "No hay ningún objeto seleccionado. Usá %s para elegirlos." -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "OBJETOS PARA SOLTAR" @@ -235402,14 +232420,18 @@ msgstr "Vs. Combinado" msgid "Material: %s" msgstr "Material: %s" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp src/item_pocket.cpp msgid "Volume: " msgstr "Volumen: " -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "Peso: " +#: src/item.cpp +msgid "Length: " +msgstr "" + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -235541,6 +232563,10 @@ msgstr "Estimulante" msgid "Portions: " msgstr "Porciones: " +#: src/item.cpp +msgid "Consume time: " +msgstr "" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "* Consumir este objeto es adictivo." @@ -235797,6 +232823,10 @@ msgstr "Oportunidad de acertar a distancia:" msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr "" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "Tiempo para llegar a apuntar:" @@ -235807,7 +232837,7 @@ msgstr "" #: src/item.cpp msgid "Compatible magazines: " -msgstr "" +msgstr "Cargadores compatibles: " #: src/item.cpp msgid "Mods: " @@ -235820,6 +232850,10 @@ msgid_plural "Contains %i casings" msgstr[0] "Contiene %i vaina" msgstr[1] "Contiene %i vainas" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "" + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -235836,6 +232870,14 @@ msgstr "" "Cuando está unida a un arma, te permite tener ataques de " "cuerpo a cuerpo con ella." +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "" + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" + #: src/item.cpp msgid "Dispersion modifier: " msgstr "Modificador de dispersión: " @@ -235890,6 +232932,10 @@ msgstr "Protección: Golpe: " msgid "Cut: " msgstr "Corte: " +#: src/item.cpp +msgid "Ballistic: " +msgstr "Balística:" + #: src/item.cpp msgid "Acid: " msgstr "Ácido: " @@ -235916,7 +232962,7 @@ msgstr "" #: src/item.cpp msgid "Covers: " -msgstr "" +msgstr "Cubre: " #: src/item.cpp msgid "The head. " @@ -236072,11 +233118,7 @@ msgstr "Incomodidad: " #: src/item.cpp msgid "Encumbrance when full: " -msgstr "Incomodidad cuando está llena:" - -#: src/item.cpp -msgid "Storage: " -msgstr "Almacenamiento: " +msgstr "Incomodidad cuando está lleno:" #: src/item.cpp msgid "Weight capacity modifier: " @@ -236086,21 +233128,25 @@ msgstr "" msgid "Weight capacity bonus: " msgstr "" +#: src/item.cpp +msgid "Storage: " +msgstr "Almacenamiento: " + #: src/item.cpp msgid "* This item can be worn with a helmet." msgstr "* Este objeto puede ser usado con un casco." #: src/item.cpp msgid "* This clothing fits you perfectly." -msgstr "" +msgstr "* Esta ropa te queda perfecta." #: src/item.cpp msgid "* This clothing fits your large frame perfectly." -msgstr "" +msgstr "* Esta ropa es perfecta para tu cuerpo grande." #: src/item.cpp msgid "* This clothing fits your small frame perfectly." -msgstr "" +msgstr "* Esta ropa es perfecta para tu cuerpo pequeño." #: src/item.cpp msgid "" @@ -236305,27 +233351,6 @@ msgstr "Te puede ayudar a descubrir nuevas recetas." msgid "You need to read this book to see its contents." msgstr "Necesitás leer este libro para ver su contenido." -#: src/item.cpp -msgid "This container " -msgstr "Este recipiente " - -#: src/item.cpp -msgid "can be resealed, " -msgstr "puede ser resellado, " - -#: src/item.cpp -msgid "is watertight, " -msgstr "es hermético, " - -#: src/item.cpp -msgid "prevents spoiling, " -msgstr "" - -#: src/item.cpp -#, c-format -msgid "can store %s %s." -msgstr "puede almacenar hasta %s %s." - #: src/item.cpp #, c-format msgid "Capacity: %dmJ" @@ -236348,9 +233373,8 @@ msgstr "Cargas: %d" #: src/item.cpp msgid "Compatible magazines: " -msgstr "" +msgstr "Cargadores compatibles:" -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -236359,15 +233383,42 @@ msgstr[0] "Máximo de carga de %s." msgstr[1] "Máximo de cargas de %s." #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "Máximo de carga." -msgstr[1] "Máximo de cargas." +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard " +"batteries." +msgstr "" +"* Esta herramienta ha sido modificada para usar un UPS y " +"no es compatible con las baterías comunes." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "" +"* Esta herramienta tiene una celda recargable de energía y " +"no es compatible con las baterías comunes." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" +"* Esta herramienta tiene una celda recargable de energía y " +"puede ser recargada con cualquier estación de recarga compatible " +"con UPS. La podés cargar con baterías comunes, pero " +"es imposible descargarla." + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "" #: src/item.cpp #, c-format msgid "Using: %s" -msgstr "" +msgstr "Usando: %s" #: src/item.cpp #, c-format @@ -236377,11 +233428,11 @@ msgstr "Hecho de: %s" #: src/item.cpp #, c-format msgid "Repair using %s." -msgstr "" +msgstr "Reparado con %s." #: src/item.cpp msgid "* This item can be reinforced." -msgstr "" +msgstr "* Este objeto puede ser reforzado." #: src/item.cpp msgid "* This item is not repairable." @@ -236446,6 +233497,10 @@ msgstr "" msgid "Cut Protection: " msgstr "" +#: src/item.cpp +msgid "Ballistic Protection: " +msgstr "Protección Balística: " + #: src/item.cpp msgid "Stat Bonus: " msgstr "" @@ -236545,6 +233600,11 @@ msgid "" "with contents." msgstr "" +#: src/item.cpp +msgid "" +"* This item is not rigid. Its volume increases with contents." +msgstr "" + #: src/item.cpp msgid "* This item does not conduct electricity." msgstr "* Este objeto no conduce la electricidad." @@ -236564,39 +233624,6 @@ msgstr "* Este objeto conduce la electricidad." msgid "* This clothing will give you an allergic reaction." msgstr "" -#: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard " -"batteries." -msgstr "" -"* Esta herramienta ha sido modificada para usar un UPS y " -"no es compatible con las baterías comunes." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." -msgstr "" -"* Esta herramienta tiene una celda recargable de energía y " -"no es compatible con las baterías comunes." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." -msgstr "" -"* Esta herramienta tiene una celda recargable de energía y " -"puede ser recargada con cualquier estación de recarga compatible " -"con UPS. La podés cargar con baterías comunes, pero " -"es imposible descargarla." - -#: src/item.cpp -msgid "* This tool runs on bionic power." -msgstr "" - #: src/item.cpp msgid "" "* This item has been modified to listen to radio signals. It " @@ -236624,19 +233651,6 @@ msgstr "" "* Al activar este objeto con una señal de radio se " "detonará inmediatamente." -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "" -"* Esta arma necesito las dos manos libres para dispararse." - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "* Esta modificación oscurece la visión del arma." - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "" - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -236686,7 +233700,7 @@ msgstr "" #: src/item.cpp msgid "Can be stored in: " -msgstr "" +msgstr "Puede guardarse en: " #: src/item.cpp msgid "It's done and can be activated." @@ -236732,7 +233746,7 @@ msgstr "Valor de regateo: " #: src/item.cpp msgid "You know of nothing you could craft with it." -msgstr "" +msgstr "No conocés nada que puedas fabricar con esto." #: src/item.cpp msgid "You know dozens of things you could craft with it." @@ -236815,14 +233829,14 @@ msgstr "" #, c-format msgctxt "item name" msgid "%1$s of %2$s" -msgstr "%1$s de %2$s" +msgstr "%1$s con %2$s" #. ~ %1$s: item name, %2$s: non-liquid, non-food, non-drink content item name #: src/item.cpp #, c-format msgctxt "item name" msgid "%1$s with %2$s" -msgstr "" +msgstr "%1$s con %2$s" #. ~ %1$s: item name, %2$zd: content size #: src/item.cpp @@ -236830,8 +233844,8 @@ msgstr "" msgctxt "item name" msgid "%1$s with %2$zd item" msgid_plural "%1$s with %2$zd items" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%1$s con %2$zd objeto" +msgstr[1] "%1$s con %2$zd objetos" #: src/item.cpp msgid " (poisonous)" @@ -236997,7 +234011,7 @@ msgstr "*%s*" #, c-format msgctxt "cash card and money" msgid "%1$s %3$s of %2$s" -msgstr "" +msgstr "%1$s %3$s de %2$s" #. ~ This is a string to display the total amount of money in a stack of cash #. cards. @@ -237148,16 +234162,6 @@ msgctxt "magazine" msgid "Eject %1$s from %2$s?" msgstr "" -#: src/item.cpp -#, c-format -msgid "You can't mix loads in your %s." -msgstr "No podés mezclar cargas en tu %s." - -#: src/item.cpp -#, c-format -msgid "That %s isn't water-tight." -msgstr "Ese %s no es hermético." - #: src/item.cpp #, c-format msgid "That %s must be on the ground or held to hold contents!" @@ -237165,11 +234169,6 @@ msgstr "" "¡Ese/a %s tiene que estar en el suelo o agarrado/a para conservar su " "contenido!" -#: src/item.cpp -#, c-format -msgid "You can't seal that %s!" -msgstr "¡No podés sellar ese %s!" - #: src/item.cpp #, c-format msgid "That %1$s won't hold %2$s." @@ -237288,7 +234287,7 @@ msgstr[1] "sangre de %s" #, c-format msgctxt "corpse ownership qualifier" msgid "%1$s of a %2$s" -msgstr "" +msgstr "%1$s de un %2$s" #. ~ %1$s: name of corpse with modifiers; %2$s: proper name; %3$s: species #. name @@ -237296,7 +234295,7 @@ msgstr "" #, c-format msgctxt "corpse ownership qualifier" msgid "%1$s of %2$s, %3$s" -msgstr "" +msgstr "%1$s de %2$s, %3$s" #: src/item_action.cpp msgid "You do not have an item that can perform this action." @@ -237310,6 +234309,31 @@ msgstr "No tenés ningún objeto con uso registrado" msgid "Execute which action?" msgstr "¿Qué acción querés realizar?" +#: src/item_contents.cpp +msgid "is not a container" +msgstr "" + +#: src/item_contents.cpp +msgid "is not rigid" +msgstr "" + +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "" + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr "" + +#: src/item_contents.cpp +#, c-format +msgid "%d Pockets with capacity:" +msgstr "%d Bolsillos con capacidad:" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" +msgstr "" + #: src/item_factory.cpp msgid "" "Can be activated to increase environmental protection. Will " @@ -237335,8 +234359,187 @@ msgstr "inventario" #: src/item_location.cpp #, c-format msgid "inside %s" +msgstr "adentro %s" + +#: src/item_pocket.cpp +msgid "sealed" +msgstr "sellado" + +#: src/item_pocket.cpp +msgid "open" +msgstr "abierto" + +#: src/item_pocket.cpp +#, c-format +msgid "Pocket %d:" +msgstr "Bolsillo %d:" + +#: src/item_pocket.cpp +msgid "Maximum item length: " +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Minimum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Maximum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Base moves to remove item: %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is rigid." +msgstr "Este bolsillo es rígido." + +#: src/item_pocket.cpp +msgid "This pocket can contain a liquid." +msgstr "Este bolsillo puede contener un líquido." + +#: src/item_pocket.cpp +msgid "This pocket can contain a gas." +msgstr "Este bolsillo puede contener un gas." + +#: src/item_pocket.cpp +msgid "This pocket will spill if placed into another item or worn." +msgstr "" +"Este bolsillo se derramará si te lo ponés o lo ponés dentro de " +"otro objeto." + +#: src/item_pocket.cpp +msgid "This pocket protects its contents from fire." +msgstr "Este bolsillo protege su contenido del fuego." + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Contained items spoil at %.0f%% their original rate." +msgstr "" +"Los objetos contenidos se echan a perder a un %.0f%% de " +"su velocidad original." + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Items in this pocket weigh %.0f%% their original weight." +msgstr "" +"Los objetos en este bolsillo pesan un %.0f%% de su peso " +"original." + +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "%s pocket %d" +msgstr "%s bolsillo %d" + +#: src/item_pocket.cpp +#, c-format +msgid "pocket %d" +msgstr "bolsillo %d" + +#: src/item_pocket.cpp +msgid "This pocket is empty." +msgstr "Este bolsillo está vacío." + +#: src/item_pocket.cpp +msgid "This pocket is sealed." +msgstr "Este bolsillo está sellado." + +#: src/item_pocket.cpp +msgid " of " +msgstr " de " + +#: src/item_pocket.cpp +msgid "Contents of this pocket:" +msgstr "Contenido de este bolsillo:" + +#: src/item_pocket.cpp +msgid "only mods can go into mod pocket" +msgstr "solo modificaciones van en el bolsillo de modificaciones" + +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster already contains an item" +msgstr "funda ya contiene un objeto" + +#: src/item_pocket.cpp +msgid "can't contain liquid" +msgstr "no puede contener líquidos" + +#: src/item_pocket.cpp +msgid "can't mix liquid with contained item" +msgstr "no se puede mezclar líquido con objeto que tiene" + +#: src/item_pocket.cpp +msgid "can't put non liquid into pocket with liquid" +msgstr "no se puede poner algo no líquido en bolsillo con líquido" + +#: src/item_pocket.cpp +msgid "can't contain gas" +msgstr "no puede contener gas" + +#: src/item_pocket.cpp +msgid "can't mix gas with contained item" +msgstr "no se puede mezclar gas con objeto que tiene" + +#: src/item_pocket.cpp +msgid "can't put non gas into pocket with gas" +msgstr "no se puede poner algo no gaseoso en bolsillo con gas" + +#: src/item_pocket.cpp +msgid "item does not have correct flag" +msgstr "objeto no tiene la marca correcta" + +#: src/item_pocket.cpp +msgid "item is not an ammo" +msgstr "objeto no es munición" + +#: src/item_pocket.cpp +msgid "item is not the correct ammo type" +msgstr "objeto no es la munición correcta" + +#: src/item_pocket.cpp +msgid "tried to put too many charges of ammo in item" +msgstr "intentando poner demasiada munición en objeto" + +#: src/item_pocket.cpp +msgid "item too big" +msgstr "objeto muy grande" + +#: src/item_pocket.cpp +msgid "item is too long" msgstr "" +#: src/item_pocket.cpp +msgid "item is too small" +msgstr "objeto muy chico" + +#: src/item_pocket.cpp +msgid "item is too heavy" +msgstr "objeto muy pesado" + +#: src/item_pocket.cpp +msgid "pocket is holding too much weight" +msgstr "bolsillo ya tiene mucho peso" + +#: src/item_pocket.cpp +msgid "not enough space" +msgstr "no tiene lugar" + #: src/itype.h msgid "click." msgstr "click." @@ -237353,7 +234556,7 @@ msgstr "¡Ya estás fumandote un %s!" #: src/iuse.cpp msgid "Are you sure you want to drink… this?" -msgstr "" +msgstr "¿Seguro que te querés tomar... esto?" #: src/iuse.cpp #, c-format @@ -237536,6 +234739,12 @@ msgstr "Te sentís fuerte." msgid "You no longer need to fear the flu, at least for some time." msgstr "" +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "" + #: src/iuse.cpp msgid "" "You no longer need to worry about asthma attacks, at least for a while." @@ -238928,16 +236137,19 @@ msgid "" "You unfold solar array from the pack. You still need to connect it with a " "cable." msgstr "" -"Desplegás la matriz solar de su paquete. Te falta conectarla con un cable." +"Desplegás los paneles solares abriendo el paquete. Te falta conectarlos con " +"un cable." #: src/iuse.cpp msgid "You fold your portable solar array into the pack." -msgstr "Plegás la matriz solar portátil y la guardás en su paquete." +msgstr "" +"Plegás el conjunto portátil de paneles solares y lo guardás en su paquete." #: src/iuse.cpp msgid "You unplug and fold your portable solar array into the pack." msgstr "" -"Desconectás y plegás tu matriz solar portátil y lo guardás en su paquete." +"Desconectás y plegás el conjunto portátil de paneles solares y lo guardás en" +" su paquete." #: src/iuse.cpp #, c-format @@ -238950,8 +236162,8 @@ msgstr "¡ necesita un filtro nuevo para la máscara de gas!" #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." -msgstr "Tu %s no tiene filtro." +msgid "Your %s doesn't have a filter." +msgstr "" #: src/iuse.cpp #, c-format @@ -239792,17 +237004,17 @@ msgstr "" #: src/iuse.cpp #, c-format msgid " with graffiti \"%s\"" -msgstr "" +msgstr " con el graffiti \"%s\"" #: src/iuse.cpp #, c-format msgid " with message \"%s\"" -msgstr "" +msgstr " con el mensaje \"%s\"" #: src/iuse.cpp #, c-format msgid " with %s on it" -msgstr "" +msgstr " con %s en él" #: src/iuse.cpp msgctxt "" @@ -239958,7 +237170,7 @@ msgstr "" #, c-format msgctxt "terrain and item" msgid "%1$s with a %2$s" -msgstr "" +msgstr "%1$s con un %2$s" #: src/iuse.cpp #, c-format @@ -241130,19 +238342,13 @@ msgstr[1] "Cargás %1$d balas %2$s en el %3$s." #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" -msgstr "¡El %s te escanea y comienza a hacer pitidos enojados!" +msgid "You deploy the %s wrong. It is hostile!" +msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "El %s emite un pitido IFF mientras te escanea." - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." +msgid "You deploy the %s." msgstr "" -"Un led parpadeante en la torreta láser parece indicar condiciones bajas de " -"luz." #: src/iuse_actor.cpp msgid "Place npc where?" @@ -241166,34 +238372,6 @@ msgstr "Necesitás alguna fuente de energía para tu %s (un UPS común, sirve)." msgid "There is also a certain bionic that helps with this kind of armor." msgstr "También existe un biónico que te ayuda con esta clase de armadura." -#: src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "" - -#: src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "¿Dónde querés usar tu ganzúa?" - -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "" -"Te metés la ganzúa en la nariz y tus sinusales se abren completamente." - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "Esa puerta no está cerrada con llave." - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "No podés usar la ganzúa en eso." - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "" @@ -241324,10 +238502,6 @@ msgstr "" msgid "At your skill level, it will take around %d minutes to light a fire." msgstr "Con tu habilidad, vas a tardar unos %d minutos para prender un fuego." -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "No tenés ese objeto." - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -241476,43 +238650,6 @@ msgstr "" msgid "You need at least %d charges to cauterize wounds." msgstr "Necesitás por lo menos %d cargas para cauterizar heridas." -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "No hay cadáveres apropiados" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "" -"La idea de cortar en pedazos el cuerpo y dejarlo que se vuelva a levantar y " -"sea un esclavo, es demasiado para que lo puedas soportar en este momento." - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "" -"¿Querés carnear selectivamente al zombi tirado para convertirlo en un " -"esclavo zombi?" - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "Haz el amor, no eZclavos." - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "" - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "" -"Te sentís horrible por mutilar y hacer esclavo el cadáver de una persona." - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "Necesitás por lo menos %s 1." - #: src/iuse_actor.cpp msgid "Hsss" msgstr "" @@ -241603,6 +238740,10 @@ msgstr "" msgid "Spells Contained:" msgstr "" +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "" + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -241666,31 +238807,11 @@ msgstr "" msgid "This item never fails." msgstr "" -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too big to fit in your %2$s" -msgstr "Tu %1$s es muy grande para entrar en tu %2$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too small to fit in your %2$s" -msgstr "Tu %1$s es muy chico para entrar en tu %2$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too heavy to fit in your %2$s" -msgstr "Tu %1$s es muy pesado para poner en tu %2$s" - #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" msgstr "No te parece que poner tu %1$s en tu %2$s sea una buena idea" -#: src/iuse_actor.cpp -#, c-format -msgid "You can't put your %1$s in your %2$s" -msgstr "No podés poner tu %1$s en tu %2$s" - #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" @@ -241701,6 +238822,10 @@ msgstr "Envainás tu %s" msgid "You need to unwield your %s before using it." msgstr "Necesitás dejar de empuñar tu %s antes de usarlo." +#: src/iuse_actor.cpp +msgid "Holster item" +msgstr "Envainar objeto" + #: src/iuse_actor.cpp #, c-format msgid "Draw %s" @@ -241712,62 +238837,8 @@ msgid "Use %s" msgstr "Usar %s" #: src/iuse_actor.cpp -msgid "Can be activated to store a suitable item." -msgid_plural "Can be activated to store suitable items." -msgstr[0] "Puede usarse para almacenar un objeto adecuado." -msgstr[1] "Puede usarse para almacenar objetos adecuados." - -#: src/iuse_actor.cpp -msgid "Num items: " -msgstr "Cant. objetos:" - -#: src/iuse_actor.cpp -msgid "Item volume: Min: " -msgstr "Volumen de objeto: Min:" - -#: src/iuse_actor.cpp -msgid " Max: " -msgstr "Máx: " - -#: src/iuse_actor.cpp -msgid "Max item weight: " -msgstr "" - -#: src/iuse_actor.cpp -#, c-format -msgid " %s" -msgstr " %s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to store a single round of " -msgid_plural "Can be activated to store up to %i rounds of " -msgstr[0] "Puede activarse para almacenar una sola bala de" -msgstr[1] "Puede activarse para almacenar hasta %i balas de " - -#: src/iuse_actor.cpp -#, c-format -msgid "No matching ammo for the %1$s" -msgstr "No tenés munición para el/a %1$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "You store the %1$s in your %2$s" -msgstr "Almacenás el %1$s en tu %2$s" - -#: src/iuse_actor.cpp -msgid "Store ammo" -msgstr "Guardar munición" - -#: src/iuse_actor.cpp -#, c-format -msgid "Store ammo in %s" -msgstr "Guardar munición en %s" - -#: src/iuse_actor.cpp src/vehicle_use.cpp -#, c-format -msgid "Unload %s" -msgstr "Descargar %s" +msgid "Can be activated to store suitable items." +msgstr "Puede usarse para almacenar objetos adecuados." #: src/iuse_actor.cpp #, c-format @@ -242084,8 +239155,8 @@ msgid "You can't install bionics while mounted." msgstr "" #: src/iuse_actor.cpp -msgid "You can't self-install bionics." -msgstr "No podés autoinstalarte biónicos." +msgid "You can't self-install this CBM." +msgstr "" #: src/iuse_actor.cpp msgid "You can't install a filthy CBM!" @@ -242232,6 +239303,10 @@ msgstr "" msgid "Cut" msgstr "" +#: src/iuse_actor.cpp +msgid "Ballistic" +msgstr "Balística" + #: src/iuse_actor.cpp msgid "Acid" msgstr "" @@ -242244,10 +239319,6 @@ msgstr "" msgid "Warmth" msgstr "" -#: src/iuse_actor.cpp -msgid "Storage" -msgstr "Almacenamiento" - #: src/iuse_actor.cpp msgid "Are you sure? You will not gain any materials back." msgstr "¿Estás seguro? No vas a recuperar ningún material." @@ -242422,7 +239493,7 @@ msgstr "" #: src/iuse_software_kitten.cpp msgid "A hammock stretched between a tree and a volleyball pole." -msgstr "Es una hamaca tendida entre un árbol y un poste de red de voley." +msgstr "Es una hamaca tendida entre un árbol y un poste de red de vóley." #: src/iuse_software_kitten.cpp msgid "A Texas Instruments of Destruction calculator." @@ -243148,10 +240219,6 @@ msgstr "" msgid "It is SOFTWARE BUG." msgstr "Es un BUG del SOFTWARE." -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "robotencuentrakitten v22July2008 - apretá q para salir." - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "robotencuentrakitten v22July2008" @@ -243173,11 +240240,12 @@ msgid ")." msgstr ")." #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if" " they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" #: src/iuse_software_kitten.cpp @@ -243185,8 +240253,14 @@ msgid "Press any key to start." msgstr "Apretá una tecla para comenzar." #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." -msgstr "Comando inválido: Usás las teclas de dirección o apretá 'q'." +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "" + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" @@ -243545,7 +240619,7 @@ msgid "Loading" msgstr "Cargando" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" msgstr "" #: src/magic.cpp @@ -243759,6 +240833,12 @@ msgstr "" msgid "Only affects the monsters: %s" msgstr "" +#. ~ amount of damage per second, abbreviated +#: src/magic.cpp +#, c-format +msgid ", %d/sec" +msgstr "" + #: src/magic.cpp src/veh_interact.cpp msgid "Damage" msgstr "Daño" @@ -244109,8 +241189,8 @@ msgid "" "profession, skills and other parameters. Scenario is fixed to Evacuee." msgstr "" "Empezás directamente el juego, eligiendo al azar las peculiaridades, " -"profesión, habilidades y otros parámetros del personaje. El escenario está " -"fijo en Evacuado." +"profesión, habilidades y otros parámetros. El escenario está fijo en " +"Evacuado." #: src/main_menu.cpp msgid "" @@ -244189,7 +241269,7 @@ msgstr "¡El %s que estabas agarrando es destruido!" #: src/map.cpp msgid "Smashable." -msgstr "" +msgstr "Destrozable." #: src/map.cpp msgid "Diggable." @@ -244213,7 +241293,7 @@ msgstr "" #: src/map.cpp msgid "Flat." -msgstr "" +msgstr "Plano." #: src/map.cpp msgid "Simple." @@ -244221,7 +241301,7 @@ msgstr "" #: src/map.cpp msgid "Mountable." -msgstr "" +msgstr "Pasable." #: src/map.cpp #, c-format @@ -246723,6 +243803,34 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "Abriste un templo extraño." +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "" + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -248397,12 +245505,35 @@ msgstr "¡La cabeza del %s explota en una masa de tentáculos que se agitan!" msgid "The %s lashes its tentacle at you!" msgstr "¡El %s te azota con su tentáculo!" +#: src/monattack.cpp +#, c-format +msgid "The %s lashes its tentacle at !" +msgstr "" + #. ~ 1$s is bodypart name, 2$d is damage value. #: src/monattack.cpp #, c-format msgid "Your %1$s is hit for %2$d damage!" msgstr "¡Tu %1$s es golpeado/a por %2$d de daño!" +#. ~ 1$s is bodypart name, 2$d is damage value. +#: src/monattack.cpp +#, c-format +msgid "'s %1$s is hit for %2$d damage!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "" +"The %1$s lashes its tentacle at 's %2$s, but glances off their " +"armor!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s's arms fly out at you, but you dodge!" @@ -248502,6 +245633,10 @@ msgstr "El %s te mira fijamente, y vos te estremecés." msgid "You feel like you're being watched, it makes you sick." msgstr "Sentís como si te estuvieran mirando, y te hace sentir mal." +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -249583,18 +246718,6 @@ msgstr "" msgid "The %s was destroyed! GAME OVER!" msgstr "¡El %s fue destruido! ¡GAME OVER!" -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its pockets, but there's nothing left in them." -msgstr "Las manos del %s van hacia sus bolsillos, pero ya no queda nada ahí." - -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its remaining pockets, opening them!" -msgstr "¡Las manos del %s van hacia sus últimos bolsillos, y los abre!" - #. ~ %s is the possessive form of the monster's name #: src/mondeath.cpp #, c-format @@ -249641,11 +246764,6 @@ msgstr "" msgid "zombie slave" msgstr "esclavo zombi" -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "Empujar %s" - #: src/monexamine.cpp msgid "Rename" msgstr "Renombrar" @@ -250120,10 +247238,6 @@ msgstr "Rastreándote." msgid "Ignoring." msgstr "Ignorándote." -#: src/monster.cpp -msgid "Zombie slave." -msgstr "Esclavo zombi." - #: src/monster.cpp msgid "Hostile!" msgstr "¡Hostil!" @@ -250201,11 +247315,11 @@ msgid "It is nearly dead!" msgstr "¡Está casi muerto/a!" #: src/monster.cpp -msgid " Difficulty " +msgid "Can see to your current location" msgstr "" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" +#: src/monster.cpp +msgid "Can't see to your current location" msgstr "" #: src/monster.cpp @@ -250256,11 +247370,6 @@ msgstr "" msgid "It is %s." msgstr "Es %s." -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "Es de tamaño %s." - #: src/monster.cpp msgid "an animal" msgstr "un animal" @@ -250611,6 +247720,15 @@ msgstr "" msgid "Focus trends towards:" msgstr "" +#. ~ This should never occur - this is the message when the character swtiches +#. to +#. ~ an invalid move mode or there's not a message for failing to switch to a +#. move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "" + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -251174,8 +248292,8 @@ msgstr "Carga máxima: %.1f %s" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" -msgstr "Bonus al daño cpo a cpo: %.1f" +msgid "Bash damage bonus: %.1f" +msgstr "" #: src/newcharacter.cpp msgid "" @@ -251574,6 +248692,10 @@ msgstr "Zombis cerca" msgid "Various limb wounds" msgstr "Varias heridas en los miembros" +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "" + #: src/newcharacter.cpp msgid "No starting NPC" msgstr "Sin PNJ al comienzo" @@ -251584,10 +248706,14 @@ msgstr "Buscar por nombre de escenario." #: src/newcharacter.cpp src/player_display.cpp msgid "Height:" -msgstr "" +msgstr "Altura:" #: src/newcharacter.cpp src/player_display.cpp msgid "Age:" +msgstr "Edad:" + +#: src/newcharacter.cpp src/player_display.cpp +msgid "Blood type:" msgstr "" #: src/newcharacter.cpp @@ -251737,6 +248863,18 @@ msgstr "" msgid "Enter height in centimeters. Minimum 145, maximum 200" msgstr "" +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "" + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" +msgstr "" + #: src/newcharacter.cpp msgid "Name of template:" msgstr "Nombre de la plantilla:" @@ -251850,13 +248988,12 @@ msgid "%1$s says something but you can't hear it!" msgstr "¡%1$s dice algo pero no lo podés escuchar!" #: src/npc.cpp -msgid "NPC: " +msgid "Aware of your presence" msgstr "" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" -msgstr "Empuñando un/a %s" +msgid "Unaware of you" +msgstr "" #: src/npc.cpp msgid "Completely untrusting" @@ -251889,7 +249026,7 @@ msgstr "Completamente confiado" #: src/npc.cpp #, c-format msgid " (Trust: %d); " -msgstr "" +msgstr " (Confianza: %d); " #: src/npc.cpp msgid "Thinks you're laughably harmless" @@ -251918,7 +249055,7 @@ msgstr "Muy temeroso" #: src/npc.cpp #, c-format msgid " (Fear: %d); " -msgstr "" +msgstr " (Miedo: %d); " #: src/npc.cpp msgid "Considers you a major liability" @@ -251951,7 +249088,7 @@ msgstr "¡Mejores Amigos para Siempre!" #: src/npc.cpp #, c-format msgid " (Value: %d); " -msgstr "" +msgstr " (Valor: %d); " #: src/npc.cpp msgid "You can do no wrong!" @@ -251984,7 +249121,7 @@ msgstr "Está por matarte" #: src/npc.cpp #, c-format msgid " (Anger: %d)" -msgstr "" +msgstr " (Enojo: %d)" #: src/npc.cpp #, c-format @@ -252233,7 +249370,12 @@ msgstr "" #: src/npcmove.cpp #, c-format -msgid "%s %s" +msgid " %s, %s" +msgstr "" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" msgstr "" #: src/npcmove.cpp @@ -252363,16 +249505,16 @@ msgstr "" #: src/npctalk.cpp msgid "What do you want to do?" -msgstr "" +msgstr "¿Qué querés hacer?" #: src/npctalk.cpp #, c-format msgid "Talk to %s" -msgstr "" +msgstr "Hablar con %s" #: src/npctalk.cpp msgid "Talk to…" -msgstr "" +msgstr "Hablar con…" #: src/npctalk.cpp msgid "Yell" @@ -252445,7 +249587,7 @@ msgstr "" #: src/npctalk.cpp msgid "Talk to whom?" -msgstr "" +msgstr "¿Con quién querés hablar?" #: src/npctalk.cpp msgid "loudly." @@ -253081,6 +250223,13 @@ msgstr "Pago:" msgid "Select a follower" msgstr "Elegir un seguidor" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to get information on an item." +msgstr "" + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -253122,11 +250271,6 @@ msgstr "Más >" msgid "Examine which item?" msgstr "¿Cuál examinar?" -#: src/npctrade.cpp -#, c-format -msgid "Trade how many containers with %s [MAX: %d]: " -msgstr "" - #: src/npctrade.cpp #, c-format msgid "Trade how many %s [MAX: %d]: " @@ -253158,16 +250302,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to quit,\n" -"? to get information on an item." -msgstr "" - -#: src/options.cpp -msgid "System language" -msgstr "Idioma del sistema" - #: src/options.cpp msgid "General" msgstr "General" @@ -253188,11 +250322,6 @@ msgstr "Predeterminados de Mundo" msgid "Android" msgstr "Android" -#: src/options.cpp src/overmap_ui.cpp src/ranged.cpp -#, c-format -msgid "%s" -msgstr "%s" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -253238,6 +250367,10 @@ msgstr "Deon's" msgid "Basic" msgstr "Básico" +#: src/options.cpp +msgid "System language" +msgstr "Idioma del sistema" + #: src/options.cpp msgid "Default character name" msgstr "Nombre predeterminado de personaje" @@ -253765,6 +250898,11 @@ msgstr "" msgid "12h" msgstr "12h" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "Militar" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -254282,18 +251420,16 @@ msgid "Terminal width" msgstr "Ancho de terminal" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." +msgid "Set the size of the terminal along the X axis." msgstr "" -"Establece el tamaño de la terminal en el eje X. Necesita reiniciar el juego." #: src/options.cpp msgid "Terminal height" msgstr "Alto de terminal" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." +msgid "Set the size of the terminal along the Y axis." msgstr "" -"Establece el tamaño de la terminal en el eje Y. Necesita reiniciar el juego." #: src/options.cpp msgid "Font blending" @@ -254413,12 +251549,13 @@ msgid "Choose the tileset you want to use." msgstr "Qué conjunto de gráficos querés usar." #: src/options.cpp -msgid "Memory map drawing mode" +msgid "Memory map overlay preset" msgstr "" #: src/options.cpp msgid "" -"Specified the mode in which the memory map is drawn. Requires restart." +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." msgstr "" #: src/options.cpp @@ -254429,6 +251566,70 @@ msgstr "" msgid "Sepia" msgstr "" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "" + #: src/options.cpp msgid "Pixel minimap" msgstr "Minimapa" @@ -254648,147 +251849,6 @@ msgstr "" msgid "4x" msgstr "" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "Distancia visible inicial" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "Determina el alcance visible, lo que es visto al inicio del juego." - -#: src/options.cpp -msgid "Initial stat points" -msgstr "Puntos iniciales de características" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "" -"Son los puntos iniciales disponibles para gastar en características al crear" -" el personaje." - -#: src/options.cpp -msgid "Initial trait points" -msgstr "Puntos iniciales de peculiaridades" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "" -"Son los puntos iniciales disponibles para gastar en peculiaridades al crear " -"el personaje." - -#: src/options.cpp -msgid "Initial skill points" -msgstr "Puntos iniciales de habilidades" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "" -"Son los puntos iniciales disponibles para gastar en habilidades al crear el " -"personaje." - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "Puntos máximos de peculiaridades" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "" -"Los puntos máximos de peculiaridades que tendrás disponibles cuando crees tu" -" personaje." - -#: src/options.cpp -msgid "Skill training speed" -msgstr "Velocidad de entrenamiento de habilidad" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "" -"Modifica la escala de la experiencia ganado por practicar habilidades y por " -"leer libros. 0.5 es la mitad de rápido que lo predeterminado, 2.0 es el " -"doble, 0.0 desactiva el entrenamiento de habilidades excepto el " -"entrenamiento de PNJ." - -#: src/options.cpp -msgid "Skill rust" -msgstr "Atrofia de habilidad" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" -" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" -"Establece el nivel de atrofia de una habilidad. Vanilla: el Cataclysm normal" -" - Limitado: está limitado en los niveles de habilidad - Int: depende de la " -"inteligencia - IntLim: depende de la inteligencia y está limitado en los " -"niveles - Apagado: sin atrofia de habilidades." - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "Vanilla" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "Limitado" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "Int" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "IntLim" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "Apagado" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "Campo visual 3D experimental" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in" -" z-level mode, the vision will extend beyond current z-level. Currently " -"very bugged!" -msgstr "" -"Si está desactivado, la visión está limitada al nivel z actual. Si está " -"activada y el mundo tiene el modo de niveles z, la visión se extiende más " -"allá del nivel z actual. ¡Por ahora tiene muchos bugs!" - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "" - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "Conversión experimental de nombre de ruta de codificación" - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" -" Windows users." -msgstr "" -"Si está activado, los nombres de ruta a archivos van a ser cambiados al " -"sistema de condificación UTF-8 cuando se los cargue y vueltos a convertir " -"cuando se los grabe. Principalmente, es para usuarios de Windows CJK." - #: src/options.cpp msgid "Core version data" msgstr "Información de versión de núcleo" @@ -255086,6 +252146,147 @@ msgstr "Solamente multi-grupos" msgid "No freeform" msgstr "Sin formalibre" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "Distancia visible inicial" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "Determina el alcance visible, lo que es visto al inicio del juego." + +#: src/options.cpp +msgid "Initial stat points" +msgstr "Puntos iniciales de características" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "" +"Son los puntos iniciales disponibles para gastar en características al crear" +" el personaje." + +#: src/options.cpp +msgid "Initial trait points" +msgstr "Puntos iniciales de peculiaridades" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "" +"Son los puntos iniciales disponibles para gastar en peculiaridades al crear " +"el personaje." + +#: src/options.cpp +msgid "Initial skill points" +msgstr "Puntos iniciales de habilidades" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "" +"Son los puntos iniciales disponibles para gastar en habilidades al crear el " +"personaje." + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "Puntos máximos de peculiaridades" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "" +"Los puntos máximos de peculiaridades que tendrás disponibles cuando crees tu" +" personaje." + +#: src/options.cpp +msgid "Skill training speed" +msgstr "Velocidad de entrenamiento de habilidad" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "" +"Modifica la escala de la experiencia ganado por practicar habilidades y por " +"leer libros. 0.5 es la mitad de rápido que lo predeterminado, 2.0 es el " +"doble, 0.0 desactiva el entrenamiento de habilidades excepto el " +"entrenamiento de PNJ." + +#: src/options.cpp +msgid "Skill rust" +msgstr "Atrofia de habilidad" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" +" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" +"Establece el nivel de atrofia de una habilidad. Vanilla: el Cataclysm normal" +" - Limitado: está limitado en los niveles de habilidad - Int: depende de la " +"inteligencia - IntLim: depende de la inteligencia y está limitado en los " +"niveles - Apagado: sin atrofia de habilidades." + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "Vanilla" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "Limitado" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "Int" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "IntLim" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "Apagado" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "Campo visual 3D experimental" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in" +" z-level mode, the vision will extend beyond current z-level. Currently " +"very bugged!" +msgstr "" +"Si está desactivado, la visión está limitada al nivel z actual. Si está " +"activada y el mundo tiene el modo de niveles z, la visión se extiende más " +"allá del nivel z actual. ¡Por ahora tiene muchos bugs!" + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "" + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "Conversión experimental de nombre de ruta de codificación" + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" +" Windows users." +msgstr "" +"Si está activado, los nombres de ruta a archivos van a ser cambiados al " +"sistema de condificación UTF-8 cuando se los cargue y vueltos a convertir " +"cuando se los grabe. Principalmente, es para usuarios de Windows CJK." + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "Guardado rápido si la aplicación pasa a segundo plano" @@ -255632,7 +252833,7 @@ msgstr "opciones" #, c-format msgctxt "query_yn" msgid "%s (Case Sensitive)" -msgstr "" +msgstr "%s (Usá mayúscula)" #: src/output.cpp #, c-format @@ -256197,21 +253398,6 @@ msgstr "INT" msgid "PER" msgstr "PER" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "Co" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "Ag" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "Ca" - #: src/panels.cpp msgid "DEAF" msgstr "SORDO" @@ -256238,7 +253424,7 @@ msgstr "Resist:" #: src/panels.cpp msgid "Focus:" -msgstr "Enfoque:" +msgstr "Enfoq.:" #: src/panels.cpp msgid "Mood :" @@ -256274,7 +253460,7 @@ msgstr "Energ.:" #: src/panels.cpp msgid "Safe :" -msgstr "ModSeg:" +msgstr "M.Seg:" #: src/panels.cpp msgid "On" @@ -256545,8 +253731,8 @@ msgstr "Ponerse %s" #: src/pickup.cpp #, c-format -msgid "Spill %s, then pick up %s" -msgstr "Derrarmar %s, luego agarrar %s" +msgid "Spill contents of %s, then pick up %s" +msgstr "" #: src/pickup.cpp msgid "" @@ -256581,10 +253767,6 @@ msgstr "¡No podés agarrar un líquido!" msgid "You're overburdened!" msgstr "¡Estás sobrecargado!" -#: src/pickup.cpp -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 "" @@ -256909,36 +254091,6 @@ msgstr "Tu camuflaje parpadea y se vuelve opaca." msgid "Your power armor disengages." msgstr "Tu armadura de poder se desactiva." -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "¿Querés beber %s de tus manos?" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "No te podés comer tu %s." - -#: src/player.cpp -#, c-format -msgid "You are now wielding an empty %s." -msgstr "Ahora estás empuñando un/a %s vacío/a." - -#: src/player.cpp -#, c-format -msgid "You are now wearing an empty %s." -msgstr "Ahora tenés puesto/a un/a %s vacío/a." - -#: src/player.cpp -#, c-format -msgid "You drop the empty %s." -msgstr "Dejaste el/a %s vacío/a." - -#: src/player.cpp -#, c-format -msgid "%c - %d empty %s" -msgstr "%c - %d vacío %s" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -256966,7 +254118,7 @@ msgstr "%1$s (%2$d)" #, c-format msgctxt "magazine" msgid "%1$s with %2$s (%3$d)" -msgstr "" +msgstr "%1$s con %2$s (%3$d)" #: src/player.cpp msgid "| Location " @@ -257067,6 +254219,10 @@ msgstr "El/a %s no tiene ningún desperfecto para solucionar." msgid "The %s doesn't have any faults to mend." msgstr "El/a %s no tiene niguna falla para arreglar." +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "" + #: src/player.cpp #, c-format msgid "" @@ -257106,14 +254262,14 @@ msgstr "" #, c-format msgctxt "skill requirement" msgid "%1$s (%2$d/%3$d)" -msgstr "" +msgstr "%1$s (%2$d/%3$d)" #. ~ %1$s: skill name, %2$s: current skill level, %3$s: required skill level #: src/player.cpp #, c-format msgctxt "skill requirement" msgid "%1$s (%2$d/%3$d)" -msgstr "" +msgstr "%1$s (%2$d/%3$d)" #: src/player.cpp #, c-format @@ -257159,11 +254315,6 @@ msgstr "" msgid " can't take that item off." msgstr "" -#: src/player.cpp -#, c-format -msgid "No room in inventory for your %s. Drop it?" -msgstr "No tenés lugar en el inventario para tu %s. ¿Lo dejás en el piso?" - #: src/player.cpp #, c-format msgid "You take off your %s." @@ -257375,6 +254526,10 @@ msgstr "Sentís que las tareas de %s de este nivel se han vuelto algo trivial." msgid "This task is too simple to train your %s beyond %d." msgstr "Esta tarea es demasiado simple para entrenar tu %s más de %d." +#: src/player.cpp +msgid " (empty)" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "¿Qué querés empuñar?" @@ -257402,12 +254557,12 @@ msgstr "¡%s intenta esquivar pero no hay lugar!" #, c-format msgctxt "reading progress" msgid "%s %d -> %d (%d%%)" -msgstr "" +msgstr "%s %d -> %d (%d%%)" #: src/player_activity.cpp #, c-format msgid "%s…" -msgstr "" +msgstr "%s…" #: src/player_activity.cpp #, c-format @@ -257437,7 +254592,7 @@ msgstr "" #: src/player_display.cpp #, c-format -msgid "Running movement point cost: %+d\n" +msgid "Movement point cost: %+d\n" msgstr "" #: src/player_display.cpp @@ -257516,6 +254671,10 @@ msgstr "" msgid "Reduced gun aim speed: %.1f" msgstr "" +#: src/player_display.cpp +msgid "Weight:" +msgstr "Peso:" + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your" @@ -257538,8 +254697,8 @@ msgstr "Carga máxima (%s): %.1f" #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" -msgstr "Daño cuerpo a cuerpo: %.1f" +msgid "Bash damage: %.1f" +msgstr "" #: src/player_display.cpp msgid "" @@ -257608,10 +254767,6 @@ msgstr "Detección de trampas: %d" msgid "Aiming penalty: %+d" msgstr "Penalidad a apuntar: %+d" -#: src/player_display.cpp -msgid "Weight:" -msgstr "Peso:" - #: src/player_display.cpp msgid "" "Your weight is a general indicator of how much fat your body has stored up, " @@ -257630,6 +254785,20 @@ msgstr "Es tu altura. Simplemente, cuánto medís." msgid "This is how old you are." msgstr "Esto indica cuántos años tenés." +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" +msgstr "" + #: src/player_display.cpp #, c-format msgid "" @@ -257701,6 +254870,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr "" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "[%s]" + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "" + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -257782,18 +254972,6 @@ msgstr "" "La luz del sol te molesta terriblemente.\n" "Fuerza - 4; Destreza - 4; Inteligencia - 4; Percepción - 4" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr "" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr "" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "Cambiar a próxima categoría" @@ -257803,12 +254981,7 @@ msgid "Cycle to previous category" msgstr "" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "Act/Desact entrenamiento de habilidad" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" +msgid "Toggle skill training / Upgrade stat" msgstr "" #: src/player_hardcoded_effects.cpp @@ -258131,10 +255304,6 @@ msgstr "" "Te sentís muy enfermo, como si hubieras sido envenenado, pero necesitás más." " Mucho más." -#: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." -msgstr "Te rodean luces brillantes, y te teletransportás." - #: src/player_hardcoded_effects.cpp msgid "You are beset with a vision of a prowling beast." msgstr "" @@ -258143,6 +255312,10 @@ msgstr "" msgid "Your surroundings are permeated with a foul scent." msgstr "" +#: src/player_hardcoded_effects.cpp +msgid "Glowing lights surround you, and you teleport." +msgstr "Te rodean luces brillantes, y te teletransportás." + #: src/player_hardcoded_effects.cpp msgid "You pass out." msgstr "Te desmayaste." @@ -258277,6 +255450,10 @@ msgstr "¡La herida en tu %s empieza a sentirse mejor!" msgid "You succumb to the infection." msgstr "Sucumbís a la infección." +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "" + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "Te sentís bien descansado." @@ -258314,10 +255491,6 @@ msgstr "Das vueltas del calor." msgid "It's too hot to sleep." msgstr "Hace demasiado calor para dormir." -#: src/player_hardcoded_effects.cpp -msgid "It looks like you woke up just before your alarm." -msgstr "" - #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." msgstr "Tu cronómetro interno sonó y vos no dormiste ni un poquito." @@ -258477,7 +255650,7 @@ msgstr "" #: src/ranged.cpp #, c-format msgid "You hear %s." -msgstr "" +msgstr "Escuchás %s." #: src/ranged.cpp #, c-format @@ -258490,122 +255663,21 @@ msgid "You feel a surge of euphoria as flames roar out of the %s!" msgstr "¡Sentís un aluvión de euforia viendo las llamas rugiendo en el/a %s!" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "High" -msgstr "" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Medium" -msgstr "" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Low" -msgstr "" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "None" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Recoil: %s" -msgstr "Retroceso: %s" - -#: src/ranged.cpp -#, c-format -msgid "Firing %s" -msgstr "Disparar %s" - -#: src/ranged.cpp -#, c-format -msgid "Throwing %s" -msgstr "Tirar objetos %s" - -#: src/ranged.cpp -#, c-format -msgid "Blind throwing %s" -msgstr "Tirar sin mirar %s" - -#: src/ranged.cpp -msgid "Set target" -msgstr "Establecer objetivo" - -#: src/ranged.cpp -msgid "< [?] show help >" -msgstr "< [?] show help >" - -#: src/ranged.cpp -msgid "Move cursor to target with directional keys" -msgstr "Mové el cursor con las teclas" - -#: src/ranged.cpp -msgctxt "[Hotkey] to throw" -msgid "to throw" -msgstr "" - -#: src/ranged.cpp -msgctxt "[Hotkey] to attack" -msgid "to attack" -msgstr "" - -#: src/ranged.cpp -msgctxt "[Hotkey] to cast the spell" -msgid "to cast" -msgstr "" - -#: src/ranged.cpp -msgctxt "[Hotkey] to fire" -msgid "to fire" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%s] Cycle targets;" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%c] target self; [%c] toggle snap-to-target" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to steady your aim. (10 moves)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "%sto aim and fire" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch aiming modes." -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch firing modes." -msgstr "" +msgid "Steadiness" +msgstr "Estabilidad" #: src/ranged.cpp -#, c-format -msgid "[%c] to reload/switch ammo." +msgid "Moves" msgstr "" #: src/ranged.cpp -msgid "RMB: Fire" +msgid "Symbols:" msgstr "" #: src/ranged.cpp -msgid "Steadiness" -msgstr "Estabilidad" - -#: src/ranged.cpp -msgid "Symbols:" +msgid "" +" Great - Normal - " +"Graze - Moves" msgstr "" #: src/ranged.cpp @@ -258615,11 +255687,7 @@ msgstr "" #: src/ranged.cpp #, c-format msgid "%s %s:" -msgstr "" - -#: src/ranged.cpp -msgid "Moves" -msgstr "" +msgstr "%s %s:" #: src/ranged.cpp #, c-format @@ -258642,11 +255710,6 @@ msgctxt "aim_confidence" msgid "Graze" msgstr "Rasguño" -#: src/ranged.cpp -#, c-format -msgid "Turrets in range: %d" -msgstr "Torretas al alcance: %d" - #: src/ranged.cpp msgctxt "aim_confidence" msgid "Hit" @@ -258679,114 +255742,6 @@ msgstr "" msgid "[%c] to take precise aim and fire." msgstr "" -#: src/ranged.cpp -msgid "turrets" -msgstr "torretas" - -#: src/ranged.cpp -#, c-format -msgid "Really attack %s?" -msgstr "¿Seguro? ¿Atacar a %s?" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Targets: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d Targets: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s %s (%d)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s (%d)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s" -msgstr "Munición: %s" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s (%d/%d)" -msgstr "Munición: %s (%d/%d)" - -#: src/ranged.cpp -#, c-format -msgid "%s Delay: %i" -msgstr "%s Retraso: %i" - -#: src/ranged.cpp -#, c-format -msgid "You don't have enough %s to cast this spell" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Casting: %s (Level %u)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s (Current: %s)" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "0.0 % Failure Chance" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d/%d Elevation: %d Targets: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d Elevation: %d Targets: %d" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Effective Spell Radius: %s%s" -msgstr "" - -#: src/ranged.cpp -msgid " WARNING! IN RANGE" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Cone Arc: %s degrees" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Line width: %s" -msgstr "" - -#: src/ranged.cpp -#, c-format -msgid "Damage: %s" -msgstr "" - #: src/ranged.cpp msgid "Thunk!" msgstr "¡Thunk!" @@ -258867,6 +255822,232 @@ msgstr "¡Kabum!" msgid "kerblam!" msgstr "¡kerblam!" +#: src/ranged.cpp +#, c-format +msgid "You don't have enough %s to cast this spell" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Really attack %s?" +msgstr "¿Seguro? ¿Atacar a %s?" + +#: src/ranged.cpp +#, c-format +msgid "Firing %s" +msgstr "Disparar %s" + +#: src/ranged.cpp +#, c-format +msgid "Throwing %s" +msgstr "Tirar objetos %s" + +#: src/ranged.cpp +#, c-format +msgid "Blind throwing %s" +msgstr "Tirar sin mirar %s" + +#: src/ranged.cpp +msgid "Set target" +msgstr "Establecer objetivo" + +#: src/ranged.cpp +msgctxt "[Hotkey] to throw" +msgid "to throw" +msgstr "" + +#: src/ranged.cpp +msgctxt "[Hotkey] to attack" +msgid "to attack" +msgstr "" + +#: src/ranged.cpp +msgctxt "[Hotkey] to cast the spell" +msgid "to cast" +msgstr "" + +#: src/ranged.cpp +msgctxt "[Hotkey] to fire" +msgid "to fire" +msgstr "" + +#: src/ranged.cpp +msgid "[?] show all controls" +msgstr "" + +#: src/ranged.cpp +msgid "[?] show help" +msgstr "" + +#: src/ranged.cpp +msgid "Shift view with directional keys" +msgstr "" + +#: src/ranged.cpp +msgid "Move cursor with directional keys" +msgstr "" + +#: src/ranged.cpp +msgid "Mouse: LMB: Target, Wheel: Cycle," +msgstr "" + +#: src/ranged.cpp +msgid "RMB: Fire" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%s] Cycle targets;" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] %s." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] target self; [%c] toggle snap-to-target" +msgstr "" + +#: src/ranged.cpp +msgid "to aim and fire." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to steady your aim. (10 moves)" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch aiming modes." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch firing modes." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to reload/switch ammo." +msgstr "" + +#: src/ranged.cpp +#, c-format +msgctxt "[Hotkey] Show/Hide turrets' lines of fire" +msgid "[%c] %s lines of fire" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Elevation: %d" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Targets: %d" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Firing mode: %s%s (%d)" +msgstr "" + +#: src/ranged.cpp +msgid "OUT OF AMMO" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s" +msgstr "Munición: %s" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s (%d/%d)" +msgstr "Munición: %s (%d/%d)" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "High" +msgstr "" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Medium" +msgstr "" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Low" +msgstr "" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "None" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Recoil: %s" +msgstr "Retroceso: %s" + +#: src/ranged.cpp +#, c-format +msgid "Casting: %s (Level %u)" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s (Current: %s)" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "0.0 % Failure Chance" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Effective Spell Radius: %s%s" +msgstr "" + +#: src/ranged.cpp +msgid " WARNING! IN RANGE" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Cone Arc: %s degrees" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Line width: %s" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Damage: %s" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "%s Delay: %i" +msgstr "%s Retraso: %i" + +#: src/ranged.cpp +#, c-format +msgid "Turrets in range: %d/%d" +msgstr "" + #: src/recipe.cpp msgid "none" msgstr "nada" @@ -258874,7 +256055,7 @@ msgstr "nada" #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" -msgstr "" +msgstr "%s%% en >%s unidades" #. ~ %1$d: tool count, %2$s: quality requirement name, %3$d: quality level #. requirement @@ -259107,13 +256288,35 @@ msgid "Limited" msgstr "Algunas" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" +msgid "achievements" +msgstr "" + +#: src/scores_ui.cpp +msgid "conducts" +msgstr "" + +#: src/scores_ui.cpp +msgid "Conducts" +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "" +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "This game has no valid %s.\n" msgstr "" #: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." +"Note that only %s that existed when you started this game and still exist " +"now will appear here." msgstr "" #: src/scores_ui.cpp @@ -259130,6 +256333,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "" + #: src/scores_ui.cpp msgid "SCORES" msgstr "" @@ -259167,7 +256374,7 @@ msgstr "" #: src/sounds.cpp #, c-format msgid "You hear %1$s" -msgstr "" +msgstr "Escuchás a %1$s" #: src/sounds.cpp src/suffer.cpp #, c-format @@ -259904,8 +257111,8 @@ msgid "A blade swings out and hacks your torso!" msgstr "¡Una cuchilla aparece y te golpea en el torso!" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" -msgstr "¡Una cuchilla aparece y golpea en el torso a !" +msgid "A blade swings out and hacks 's torso!" +msgstr "" #: src/trapfunc.cpp msgid "Snap!" @@ -260324,6 +257531,14 @@ msgstr "" msgid "Only one %1$s powered engine can be installed." msgstr "Solamente un motor alimentado por %1$s puede ser instalado." +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This part cannot be installed.\n" +msgstr "" + #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." msgstr "Los embudos tienen que ser instalados sobre un tanque." @@ -260475,6 +257690,12 @@ msgstr "" msgid "You can't install parts while driving." msgstr "No podés instalar partes mientras estás manejando." +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy." +" Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "" @@ -260500,8 +257721,22 @@ msgid "Choose a part here to repair:" msgstr "Elegí la parte para reparar:" #: src/veh_interact.cpp -msgid "This part cannot be repaired" -msgstr "Esta parte no puede ser reparada" +msgid "This part cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to mend…" @@ -260604,6 +257839,10 @@ msgstr "'{' para desplazar arriba" msgid "'}' to scroll down" msgstr "'}' para desplazar abajo" +#: src/veh_interact.cpp +msgid "This part cannot be uninstalled.\n" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "" @@ -260615,31 +257854,18 @@ msgstr "" #: src/veh_interact.cpp #, c-format msgid "" -"Removing the %1$s will yield:\n" +"Removing the %1$s may yield:\n" "> %2$s\n" msgstr "" -"Al quitar los %1$s podrías conseguir:\n" -"> %2$s\n" - -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength -#: src/veh_interact.cpp -#, c-format -msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength ( " -"assisted ) %5$i" -msgstr "" -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength #: src/veh_interact.cpp #, c-format msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength " -"%5$i" +"Removing the %1$s will yield:\n" +"> %2$s\n" msgstr "" +"Al quitar los %1$s podrías conseguir:\n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is pre-translated reason @@ -260664,6 +257890,12 @@ msgstr "No podés sacar esa parte mientras está unida a otra cosa." msgid "Better not remove something while driving." msgstr "No te conviene sacar nada mientras estás manejando." +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "Este vehículo no tiene más combustible líquido para chuparle." @@ -261115,6 +258347,11 @@ msgstr "No cumplís con los requisitos para desinstalar el %s." msgid "You remove the broken %1$s from the %2$s." msgstr "Sacás el %1$s roto del %2$s." +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -261695,7 +258932,7 @@ msgstr "luces superiores" #: src/vehicle_use.cpp msgctxt "electronics menu option" msgid "aisle lights" -msgstr "luces de espacio lateral" +msgstr "luces de pasillo" #: src/vehicle_use.cpp msgctxt "electronics menu option" @@ -261825,10 +259062,6 @@ msgstr "No encontrás la llave en el/a %s." msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "No encontrás la llave en el/a %s. ¿Querés intentar puentearlo/a?" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "Puentear" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -261889,14 +259122,16 @@ msgid "" "Program the autopilot to follow you. It might be a good idea to have a " "remote control available to tell it to stop, too." msgstr "" +"Programar el piloto automático para que te siga. Puede ser buena idea tener " +"un control remoto disponible para decirle que lo deje de hacer, también." #: src/vehicle_use.cpp msgid "Stop…" -msgstr "" +msgstr "Parar…" #: src/vehicle_use.cpp msgid "Stop all autopilot related activities." -msgstr "" +msgstr "Parar toda actividad relacionada al piloto automático." #: src/vehicle_use.cpp msgid "You stop keeping track of the vehicle position." @@ -262250,6 +259485,7 @@ msgstr "" msgid "" "You need 24 charges of water in tanks of the %s to fill the dishwasher." msgstr "" +"Necesitás 24 cargas de agua en el tanque del %s para llenar el lavaplatos." #: src/vehicle_use.cpp msgid "You need 5 charges of detergent for the dishwasher." @@ -262313,7 +259549,7 @@ msgstr "" #: src/vehicle_use.cpp #, c-format msgid "Remove the %s from the rack" -msgstr "" +msgstr "Sacar el %s del soporte" #: src/vehicle_use.cpp msgid "Examine vehicle" @@ -262343,6 +259579,11 @@ msgstr "" msgid "Activate the dishwasher (1.5 hours)" msgstr "" +#: src/vehicle_use.cpp +#, c-format +msgid "Unload %s" +msgstr "Descargar %s" + #: src/vehicle_use.cpp msgid "Peek through the closed curtains" msgstr "" @@ -262390,7 +259631,7 @@ msgstr "" #: src/vehicle_use.cpp #, c-format msgid "Craft at the %s" -msgstr "" +msgstr "Fabricar en el %s" #: src/vehicle_use.cpp #, c-format @@ -262524,7 +259765,7 @@ msgstr "%s Noche" #: src/weather.cpp #, c-format msgid "%s… %s. Highs of %s. Lows of %s. " -msgstr "" +msgstr "%s… %s. Altos de %s. Bajos de %s. " #: src/weather.cpp #, c-format @@ -262745,7 +259986,7 @@ msgstr "" #: src/wish.cpp #, c-format msgid "Spawned %d monsters, choose another or [%s] to quit." -msgstr "" +msgstr "Generados %d monstruos, elegí otro o [%s] para salir." #: src/wish.cpp msgid "" @@ -262768,12 +260009,7 @@ msgstr "(marcado)" #: src/wish.cpp #, c-format msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" -msgstr "" - -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "%.*s" +msgstr "[%s] buscar, [f] recipiente, [F] marca, [E] todo, [%s] salir" #: src/wish.cpp msgid "How many?" @@ -262782,7 +260018,7 @@ msgstr "¿Cuántos?" #: src/wish.cpp #, c-format msgid "Wish granted. Wish for more or hit [%s] to quit." -msgstr "" +msgstr "Deseo concedido. Pedí otro deseo o apretá [ %s ] para salir." #: src/wish.cpp msgid "Select a skill to modify" @@ -262800,7 +260036,7 @@ msgstr "@ %d: %s " #: src/wish.cpp #, c-format msgid "Set '%s' to…" -msgstr "" +msgstr "Establecer '%s' en…" #: src/wish.cpp msgid " (current)" @@ -262899,7 +260135,7 @@ msgstr "Orden de carga de mods" #: src/worldfactory.cpp #, c-format msgid "…%s = View full description " -msgstr "" +msgstr "…%s = Ver descripción completa " #: src/worldfactory.cpp msgid "--NO AVAILABLE MODS--" @@ -262916,7 +260152,7 @@ msgstr "Nombre del mundo:" #: src/worldfactory.cpp #, c-format msgid "Press [%s] to pick a random name for your world." -msgstr "" +msgstr "Apretá [%s] para elegir un nombre al azar." #: src/worldfactory.cpp #, c-format @@ -262925,6 +260161,9 @@ msgid "" " is and are ready to continue, or [%s] to go back and " "review your world." msgstr "" +"Apretá [%s] cuando estés conforme con las opciones del" +" mundo y quieras continuar, o [%s] para volver y " +"revisar el mundo." #: src/worldfactory.cpp msgid "________NO NAME ENTERED!________" @@ -262944,6 +260183,14 @@ msgid "" "[%s/%s] = switch Mod" " List Tab [%s] = keybindings" msgstr "" +"[%s] = guardar Orden de carga de " +"Mods predeterminado " +"[%s/%s] = cambiar Pestaña " +"[%s/%s] = cambiar " +"Lista de Mods y Orden de carga de " +"Mods [%s/%s] = cambiar " +"Pestaña de Lista de Mods [%s] = " +"atajos de teclado" #: src/worldfactory.cpp msgid "World Mods" diff --git a/lang/po/es_ES.po b/lang/po/es_ES.po index 103005c70595b..f626a8c58ae63 100644 --- a/lang/po/es_ES.po +++ b/lang/po/es_ES.po @@ -6,19 +6,19 @@ # Emma Forner, 2019 # lokatronao , 2019 # Luis Ortega , 2020 -# Vlasov Vitaly , 2020 -# Toni López , 2020 # Brett Dong , 2020 # Nelson Alvarez , 2020 # Miguel de Dios Matias , 2020 +# Vlasov Vitaly , 2020 +# Toni López , 2020 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-01 12:24+0800\n" +"POT-Creation-Date: 2020-06-05 08:37+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Miguel de Dios Matias , 2020\n" +"Last-Translator: Toni López , 2020\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" @@ -78,6 +78,52 @@ msgstr "" "Una carga de batería flotante. Se puede recargar en celdas de batería " "recargables, pero nunca se puede descargar." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "butano" +msgstr[1] "butano" + +#. ~ Description for {'str_sp': 'butane'} +#: lang/json/AMMO_from_json.py +msgid "A common flammable liquid used in lighters." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "oxígeno" +msgstr[1] "oxígeno" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "aluminum foil" msgid_plural "aluminum foils" @@ -100,11 +146,9 @@ msgstr[0] "centavo" msgstr[1] "centavos" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "SI ESTAS VIENDO ESTO, ES UN BUG." +#: lang/json/AMMO_from_json.py +msgid "A unit of currency equivalent to 0.01 US dollars." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -262,10 +306,8 @@ msgstr[1] "guijarros" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." +msgid "A handful of pebbles, useful as ammunition for slingshots." msgstr "" -"Un puñado de piedras pequeñas, útiles como munición para una honda o " -"tirachinas." #: lang/json/AMMO_from_json.py msgid "clay pellet" @@ -275,12 +317,8 @@ msgstr[1] "" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or " -"slingshots." +msgid "A handful of round projectiles made of clay, useful for slingshots." msgstr "" -"Es un puñado de proyectiles redondos hechos de arcilla. Útil como munición " -"para hondas o tirachinas." #: lang/json/AMMO_from_json.py msgid "marble" @@ -290,11 +328,8 @@ msgstr[1] "canicas" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." +msgid "A handful of glass marbles, useful as ammunition for slingshots." msgstr "" -"Es un puñado de bolitas de cristal que se pueden usar como munición para " -"hondas o tirachinas." #: lang/json/AMMO_from_json.py msgid "bearings" @@ -304,9 +339,8 @@ msgstr[1] "rodamientos" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." +msgid "A box of ball bearings, useful as ammunition for slingshots." msgstr "" -"Una caja de rodamientos, útiles como munición para una honda o tirachinas." #: lang/json/AMMO_from_json.py msgid "BB" @@ -316,9 +350,10 @@ msgstr[1] "balines" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." msgstr "" -"Una caja de pequeños balines de acero. Prácticamente, no causan ningún daño." #: lang/json/AMMO_from_json.py msgid "feather" @@ -596,6 +631,12 @@ msgid_plural "placeholder ammunitions" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "SI ESTAS VIENDO ESTO, ES UN BUG." + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" msgid_plural "charcoal" @@ -642,6 +683,19 @@ msgstr "" "Pedazos de material flamable de base carbónica comúnmente utilizado para " "cocinar o calefaccionar." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -750,12 +804,6 @@ msgstr[1] "" msgid "A bait used in traps to lure fish." msgstr "Un cebo utilizado en trampas para atraer a los peces." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "oxígeno" -msgstr[1] "oxígeno" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -1140,8 +1188,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "hydrochloric acid" msgid_plural "hydrochloric acid" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ácido hidroclórico" +msgstr[1] "ácido hidroclórico" #. ~ Description for {'str_sp': 'hydrochloric acid'} #: lang/json/AMMO_from_json.py @@ -1271,12 +1319,16 @@ msgid "" "to sharply lower its temperature, but is there any use for this quality in " "this new world?" msgstr "" +"Es un poco de nitrato de amonio. Este polvo blanco y cristalino se utiliza " +"comúnmente como componente en fertilizantes y explosivos. Puede disolverse " +"en agua para bajar bruscamente su temperatura, pero ¿Qué utilidad tiene esta" +" cualidad en este mundo que tenemos?" #: lang/json/AMMO_from_json.py msgid "ammonium nitrate pellets" msgid_plural "ammonium nitrate pellets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gránulos de nitrato de amonio" +msgstr[1] "gránulos de nitrato de amonio" #. ~ Description for {'str_sp': 'ammonium nitrate pellets'} #: lang/json/AMMO_from_json.py @@ -1733,7 +1785,7 @@ msgstr[1] "aceites de motor" #. ~ Description for {'str_sp': 'motor oil'} #: lang/json/AMMO_from_json.py msgid "An oil made for use in car engines." -msgstr "" +msgstr "Es un aceite que se utiliza en los motores de los vehículos." #: lang/json/AMMO_from_json.py msgid "napalm" @@ -2017,8 +2069,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "H&K 12mm" msgid_plural "H&K 12mms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "H&K 12mm" +msgstr[1] "H&K 12mm" #. ~ Description for {'str': 'H&K 12mm'} #: lang/json/AMMO_from_json.py @@ -2307,8 +2359,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".22 FMJ, reloaded" msgid_plural ".22 FMJ, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".22 FMJ, recargada" +msgstr[1] ".22 FMJ, recargadas" #: lang/json/AMMO_from_json.py msgid ".223 Remington" @@ -2448,8 +2500,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid ".300 Winchester Magnum, black powder" msgid_plural ".300 Winchester Magnum, black powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".300 Winchester Magnum, pólvora" +msgstr[1] ".300 Winchester Magnum, pólvora" #: lang/json/AMMO_from_json.py msgid ".300 Winchester Magnum, reloaded" @@ -2505,8 +2557,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid ".30-06 M2 AP" msgid_plural ".30-06 M2 APs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".30-06 M2 AP" +msgstr[1] ".30-06 M2 AP" #. ~ Description for {'str': '.30-06 M2 AP'} #: lang/json/AMMO_from_json.py @@ -2522,8 +2574,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid ".30-06 Springfield, black powder" msgid_plural ".30-06 Springfield, black powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".30-06 Springfield, pólvora" +msgstr[1] ".30-06 Springfield, pólvora" #: lang/json/AMMO_from_json.py msgid ".30-06 Springfield tracer, black powder" @@ -2620,8 +2672,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "7.62x51mm M80" msgid_plural "7.62x51mm M80s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "7.62x51mm M80" +msgstr[1] "7.62x51mm M80" #. ~ Description for {'str': '7.62x51mm M80'} #: lang/json/AMMO_from_json.py @@ -2682,8 +2734,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "7.62x51mm incendiary, reloaded" msgid_plural "7.62x51mm incendiary, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "7.62x51mm incendiaria, recargada" +msgstr[1] "7.62x51mm incendiarias, recargadas" #: lang/json/AMMO_from_json.py msgid ".32 ACP" @@ -2761,8 +2813,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".357 Magnum JHP, reloaded" msgid_plural ".357 Magnum JHP, reloaded" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".357 Magnum JHP, recargada" +msgstr[1] ".357 Magnum JHP, recargada" #: lang/json/AMMO_from_json.py msgid ".357 SIG FMJ" @@ -2886,8 +2938,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".38 FMJ, black powder" msgid_plural ".38 FMJ, black powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".38 FMJ, pólvora" +msgstr[1] ".38 FMJ, pólvora" #: lang/json/AMMO_from_json.py msgid ".38 Special, black powder" @@ -2973,8 +3025,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".38 Super FMJ" msgid_plural ".38 Super FMJs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".38 Super FMJ" +msgstr[1] ".38 Super FMJ" #. ~ Description for {'str': '.38 Super FMJ'} #: lang/json/AMMO_from_json.py @@ -3033,8 +3085,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".40 S&W JHP, black powder" msgid_plural ".40 S&W JHP, black powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".40 S&W JHP, pólvora" +msgstr[1] ".40 S&W JHP, pólvora" #: lang/json/AMMO_from_json.py msgid ".40 S&W FMJ, reloaded" @@ -3270,8 +3322,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".44 Magnum, black powder" msgid_plural ".44 Magnum, black powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".44 Magnum, pólvora" +msgstr[1] ".44 Magnum, pólvora" #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ, black powder" @@ -3304,10 +3356,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "" ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, " -"the .45 ACP round has been common for almost 150 years." +"the .45 ACP round has been common for over a century." msgstr "" -"Es munición .45 ACP FMJ de 230gr. Conocida por su potencia de detención, la " -"bala .45 ACP ha sido utilizada por casi 150 años." #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -3364,8 +3414,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP, reloaded" msgid_plural ".45 ACP JHP, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".45 ACP JHP, recargada" +msgstr[1] ".45 ACP JHP, recargadas" #: lang/json/AMMO_from_json.py msgid ".45 ACP +P, reloaded" @@ -3454,8 +3504,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid ".45-70 SP, reloaded" msgid_plural ".45-70 SP, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".45-70 SP, recargada" +msgstr[1] ".45-70 SP, recargadas" #. ~ Description for {'str': '.45-70 SP, reloaded'} #: lang/json/AMMO_from_json.py @@ -3574,8 +3624,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "4.6x30mm, reloaded" msgid_plural "4.6x30mm, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "4.6x30mm, recargada" +msgstr[1] "4.6x30mm, recargadas" #: lang/json/AMMO_from_json.py msgid ".460 Rowland HCFN" @@ -3621,8 +3671,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".460 Rowland FMJ, reloaded" msgid_plural ".460 Rowland FMJ, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".460 Rowland FMJ, recargada" +msgstr[1] ".460 Rowland FMJ, recargadas" #. ~ Description for {'str': '.460 Rowland FMJ, reloaded'} #: lang/json/AMMO_from_json.py @@ -3733,8 +3783,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid ".50 BMG Match, reloaded" msgid_plural ".50 BMG Match, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".50 BMG Match, recargada" +msgstr[1] ".50 BMG Match, recargadas" #. ~ Description for {'str': '.50 BMG Match, reloaded'} #: lang/json/AMMO_from_json.py @@ -3786,8 +3836,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".500 S&W Magnum, reloaded" msgid_plural ".500 S&W Magnum, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] ".500 S&W Magnum, recargada" +msgstr[1] ".500 S&W Magnum, recargadas" #: lang/json/AMMO_from_json.py msgid "5.45x39mm 7N10" @@ -4147,8 +4197,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "7.62x25mm FMJ, black powder" msgid_plural "7.62x25mm FMJ, black powders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "7.62x25mm FMJ, pólvora" +msgstr[1] "7.62x25mm FMJ, pólvora" #: lang/json/AMMO_from_json.py msgid "7.62x25mm, reloaded" @@ -4192,8 +4242,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "84x246mm smoke rocket" msgid_plural "84x246mm smoke rockets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "misil fumígeno 84x246mm" +msgstr[1] "misiles fumígenos 84x246mm" #. ~ Description for {'str': '84x246mm smoke rocket'} #: lang/json/AMMO_from_json.py @@ -4327,8 +4377,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "9x19mm JHP" msgid_plural "9x19mm JHPs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "9x19mm JHP" +msgstr[1] "9x19mm JHP" #. ~ Description for {'str': '9x19mm JHP'} #: lang/json/AMMO_from_json.py @@ -4353,11 +4403,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round" -" for military, law enforcement, and civilian use even after almost 150 " -"years." +" for military, law enforcement, and civilian use for over a century." msgstr "" -"Es munición 9x19mm recubierta de latón de 115gr. Ha sido una bala común en " -"los ejércitos, fuerzas de seguridad y uso civil por casi 150 años." #: lang/json/AMMO_from_json.py msgid "9x19mm +P" @@ -4405,8 +4452,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "9x19mm JHP, reloaded" msgid_plural "9x19mm JHP, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "9x19mm JHP, recargada" +msgstr[1] "9x19mm JHP, recargadas" #: lang/json/AMMO_from_json.py msgid "9x19mm FMJ, reloaded" @@ -4767,8 +4814,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "birdshot, reloaded" msgid_plural "birdshot, reloadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perdigones pequeños, recargado" +msgstr[1] "perdigones pequeños, recargados" #: lang/json/AMMO_from_json.py msgid "dragon's breath shell, reloaded" @@ -4920,8 +4967,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "00 shot, scrap loaded" msgid_plural "00 shot, scrap loadeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cartucho 00, con chatarra" +msgstr[1] "cartuchos 00, con chatarra" #. ~ Description for {'str': '00 shot, scrap loaded'} #. ~ Description for {'str_sp': 'shotshell, junk'} @@ -5112,8 +5159,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden broadhead arrow" msgid_plural "wooden broadhead arrows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "flecha de madera de punta ancha" +msgstr[1] "flechas de madera de punta ancha" #. ~ Description for {'str': 'wooden broadhead arrow'} #: lang/json/AMMO_from_json.py @@ -5159,8 +5206,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "makeshift wooden arrow" msgid_plural "makeshift wooden arrows" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "flecha improvisada de madera" +msgstr[1] "flechas improvisadas de madera" #. ~ Description for {'str': 'makeshift wooden arrow'} #: lang/json/AMMO_from_json.py @@ -5301,8 +5348,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "simple wooden small game bolt" msgid_plural "simple wooden small game bolts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perno simple de caza menor de madera" +msgstr[1] "pernos simples de caza menor de madera" #. ~ Description for {'str': 'simple wooden small game bolt'} #: lang/json/AMMO_from_json.py @@ -5328,8 +5375,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden broadhead bolt" msgid_plural "wooden broadhead bolts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perno de madera de punta ancha" +msgstr[1] "pernos de madera de punta ancha" #. ~ Description for {'str': 'wooden broadhead bolt'} #: lang/json/AMMO_from_json.py @@ -5526,6 +5573,8 @@ msgid "" "A mesh of string and weights, traditionally used to catch fish, and to " "entangle opponents in combat." msgstr "" +"Es una malla de cuerdas y pesos, tradicionalmente utilizada para pescar y " +"para atrapar oponentes en combate." #: lang/json/AMMO_from_json.py msgid "throwing stick" @@ -5933,8 +5982,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "tin powder" msgid_plural "tin powder" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "polvo de estaño" +msgstr[1] "polvo de estaño" #. ~ Description for {'str_sp': 'tin powder'} #: lang/json/AMMO_from_json.py @@ -6136,8 +6185,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "cotton sheet" msgid_plural "cotton sheets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tela de algodón" +msgstr[1] "telas de algodón" #. ~ Description for {'str': 'cotton sheet'} #: lang/json/AMMO_from_json.py @@ -6186,13 +6235,13 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "felt sheet" msgid_plural "felt sheets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tela de fieltro" +msgstr[1] "telas de fieltro" #. ~ Description for {'str': 'felt sheet'} #: lang/json/AMMO_from_json.py msgid "A sheet of felt, suitable for making clothing." -msgstr "" +msgstr "Es una tela de fieltro, ideal para hacer ropa." #: lang/json/AMMO_from_json.py msgid "patchwork felt clothing parts" @@ -6217,8 +6266,8 @@ msgstr[1] "" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." msgstr "" #: lang/json/AMMO_from_json.py @@ -6312,7 +6361,7 @@ msgstr[1] "" #. ~ Description for {'str': 'synthetic fabric sheet'} #: lang/json/AMMO_from_json.py msgid "A sheet of synthetic fabric, suitable for making clothing." -msgstr "" +msgstr "Es una tela sintética, ideal para hacer ropa." #: lang/json/AMMO_from_json.py msgid "patchwork synthetic fabric clothing parts" @@ -6477,12 +6526,6 @@ msgid "" "fluid. You'd probably best feed it into the bioblaster. " msgstr "" -#: lang/json/AMMO_from_json.py -msgid "plutonium cell" -msgid_plural "plutonium cells" -msgstr[0] "celda de plutonio" -msgstr[1] "celdas de plutonio" - #: lang/json/AMMO_from_json.py msgid "titanium" msgid_plural "titanium" @@ -6511,6 +6554,9 @@ msgid "" "tipped field pellets that can deal some light damage but are generally used " "for plinking." msgstr "" +"Son unos perdigones redondos de plomo de .177 gramos. Son comunes, con punta" +" de campo que pueden ocasionar un daño pequeño pero generalmente son " +"utilizados para practicar en blancos improvisados." #: lang/json/AMMO_from_json.py msgid "domed HP pellets" @@ -6567,74 +6613,6 @@ msgid "" "without the worry of having a stray shot seriously damaging the environment." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N8" -msgid_plural "6.54x42mm 9N8" -msgstr[0] "6.54x42mm 9N8" -msgstr[1] "6.54x42mm 9N8" - -#. ~ Description for {'str_sp': '6.54x42mm 9N8'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 6.54x42mm cartridge, loaded with a 120 gr. FMJBT bullet. Inspired by the " -"improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " -"rifle cartridge for his new SVS-24 Assault Rifle." -msgstr "" -"Un cartucho de 6.54x42mm cargado con 120 gr. de bala FMJBT. Está inspirado " -"en la mejorada .280 Británica. El mismo Alexander Sarafanov desarrolló el " -"cartucho para rifle 6.54x42mm para su nuevo rifle de asalto SVS-24." - -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N12" -msgid_plural "6.54x42mm 9N12" -msgstr[0] "6.54x42mm 9N12" -msgstr[1] "6.54x42mm 9N12" - -#. ~ Description for {'str_sp': '6.54x42mm 9N12'} -#: lang/json/AMMO_from_json.py -msgid "" -"The 6.54x42mm 9N12 has superior armor piercing capabilities thanks to its " -"tungsten carbide core. Tungsten carbide was used in anti-tank rounds of the" -" 20th and 21st century, whenever depleted uranium was unavailable or " -"undesirable." -msgstr "" -"El 6.54x42mm 9N12 tiene una capacidad de penetración de armaduras superior " -"gracias a su núcleo de carburo de tungsteno. El carburo de tungsteno fue " -"usado en los proyectiles anti-tanques del siglo XX u XXI, siempre que no " -"estuviese disponible o no fuese deseable usar uranio empobrecido." - -#: lang/json/AMMO_from_json.py -msgid ".20 DREAD Pellet" -msgid_plural ".20 DREAD Pellets" -msgstr[0] "balín .20 DREAD" -msgstr[1] "balines .20 DREAD" - -#. ~ Description for {'str': '.20 DREAD Pellet'} -#: lang/json/AMMO_from_json.py -msgid "" -"These metal pellets are propelled with the help of electromagnets, therefore" -" they do not produce sound, flash or heat signature." -msgstr "" -"Estos balines metálicos son impulsados con la ayuda de electromagnetos, por " -"lo tanto no producen ningún ruido, ni luz, ni calor" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 6.54x42mm" -msgid_plural "reloaded 6.54x42mm" -msgstr[0] "6.54x42mm recargadas" -msgstr[1] "6.54x42mm recargada" - -#. ~ Description for {'str_sp': 'reloaded 6.54x42mm'} -#: lang/json/AMMO_from_json.py -msgid "" -"Inspired by the improved .280, Alexander Sarafanov himself developed the " -"6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " -"been hand-reloaded." -msgstr "" -"Inspirado en la .280 mejorada, el mismo Alexander Sarafanov desarrolló el " -"cartucho para rifle 6.54x42mm para su rifle de asalto SVS-24. Esta ha sido " -"recargada a mano." - #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -6691,8 +6669,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "buckshot grenade cartridge" msgid_plural "buckshot grenade cartridges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cartucho granada de perdigones grandes" +msgstr[1] "cartuchos granada de perdigones grandes" #. ~ Description for {'str': 'buckshot grenade cartridge'} #: lang/json/AMMO_from_json.py @@ -6700,6 +6678,9 @@ msgid "" "A grenade cartridge with a powerful buckshot load, designed to provide some " "defensive options when carrying a grenade launcher." msgstr "" +"Es un cartucho granada con una carga poderosa de perdigones grandes, " +"diseñado para brindar opciones defensivas cuando se utiliza un " +"lanzagranadas." #: lang/json/AMMO_from_json.py msgid "smoke grenade cartridge" @@ -6710,7 +6691,7 @@ msgstr[1] "" #. ~ Description for smoke grenade cartridge #: lang/json/AMMO_from_json.py msgid "A grenade cartridge grenade designed to provide smoke cover." -msgstr "" +msgstr "Es un cartucho granada diseñado para crear una cortina de humo." #: lang/json/AMMO_from_json.py msgid "teargas grenade cartridge" @@ -6741,8 +6722,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "pistol ammo, ball" msgid_plural "pistol ammo, ball" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "munición de pistola, bola" +msgstr[1] "munición de pistola, bola" #. ~ Description for {'str_sp': 'pistol ammo, ball'} #: lang/json/AMMO_from_json.py @@ -6756,8 +6737,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "pistol ammo, JHP" msgid_plural "pistol ammo, JHP" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "munición de pistola, JHP" +msgstr[1] "munición de pistola, JHP" #. ~ Description for {'str_sp': 'pistol ammo, JHP'} #: lang/json/AMMO_from_json.py @@ -6901,8 +6882,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "tiny pistol ammo, JHP (black powder)" msgid_plural "tiny pistol ammo, JHP (black powder)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "munición de pistola pequeña, JHP (pólvora)" +msgstr[1] "munición de pistola pequeña, JHP (pólvora)" #: lang/json/AMMO_from_json.py msgid "rifle ammo, ball" @@ -6923,8 +6904,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "rifle ammo, AP" msgid_plural "rifle ammo, AP" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "munición de rifle, AP" +msgstr[1] "munición de rifle, AP" #. ~ Description for {'str_sp': 'rifle ammo, AP'} #: lang/json/AMMO_from_json.py @@ -6994,8 +6975,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "huge rifle ammo, ball (reloaded)" msgid_plural "huge rifle ammo, ball (reloaded)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "munición de rifle grande, bola (recargada)" +msgstr[1] "munición de rifle grande, bola (recargada)" #: lang/json/AMMO_from_json.py msgid "huge rifle ammo, AP (reloaded)" @@ -7112,8 +7093,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "shotshell, birdshot (reloaded)" msgid_plural "shotshell, birdshot (reloaded)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cartucho, perdigones pequeños (recargado)" +msgstr[1] "cartucho, perdigones pequeños (recargado)" #: lang/json/AMMO_from_json.py msgid "shotshell, slug (reloaded)" @@ -7175,8 +7156,8 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "shotshell, junk (black powder)" msgid_plural "shotshell, junk (black powder)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cartucho, chatarra (pólvora)" +msgstr[1] "cartucho, chatarra (pólvora)" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "alumentum" @@ -7303,129 +7284,10 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for mana core power -#. ~ Description for {'str_sp': 'vortex core'} #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." msgstr "Ver esto es un bug." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "fire lance charge" -msgid_plural "fire lance charges" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for fire lance charge -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm. Despite the " -"minimal range, it packs a punch." -msgstr "" -"Es poco más que una carga de pólvora para un arma básica. A pesar de su " -"mínimo alcance, causa bastante daño." - -#: lang/json/AMMO_from_json.py -msgid "fire lance shot" -msgid_plural "fire lance shots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for fire lance shot -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm, with small " -"pellets as shot. Despite the minimal range, it packs a punch." -msgstr "" -"Es poco más que una carga de pólvora para un arma básica, con pequeños " -"perdigones. A pesar de su mínimo alcance, causa bastante daño." - -#: lang/json/AMMO_from_json.py -msgid "lead pellet" -msgid_plural "lead pellets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lead pellet -#: lang/json/AMMO_from_json.py -msgid "" -"Hefty round projectiles cast from lead, useful as ammunition for slings." -msgstr "" -"Son proyectiles pesados y redondos, fundidos de plomo. Útil como munición " -"para hondas." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" -msgstr[0] "jabalina de madera" -msgstr[1] "jabalinas de madera" - -#: lang/json/AMMO_from_json.py -msgid "stone javelin" -msgid_plural "stone javelins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for stone javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A throwing spear with a stone spearhead. The grip area has also been carved" -" and covered for better grip." -msgstr "" -"Una lanza con la punta de piedra. El área de agarre también ha sido tallado " -"y recubierto para ser mejor." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" -msgstr[0] "jabalina de hierro" -msgstr[1] "jabalinas de hierro" - -#: lang/json/AMMO_from_json.py -msgid "copper javelin" -msgid_plural "copper javelins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for copper javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A copper-tipped throwing spear. The grip area has also been carved and " -"covered for better grip." -msgstr "" -"Una lanza con la punta de cobre. El área de agarre también ha sido tallado y" -" recubierto para ser mejor." - -#: lang/json/AMMO_from_json.py -msgid "40mm EMP grenade" -msgid_plural "40mm EMP grenades" -msgstr[0] "granada 40mm PEM" -msgstr[1] "granadas 40mm PEM" - -#. ~ Description for {'str': '40mm EMP grenade'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" -" capable of damaging robots and some equipment." -msgstr "" -"Es una granada 40mm con carga PEM. Liberará un pulso electromagnético capaz " -"de dañar robots y algunos equipamientos." - -#: lang/json/AMMO_from_json.py -msgid "glowball" -msgid_plural "glowballs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for glowball -#: lang/json/AMMO_from_json.py -msgid "" -"A tube of small glowballs taken off the market due to hazardous chemicals. " -"They deal virtually no damage, but light up on impact. Useful for " -"illuminating an area without lighting up yourself in the process." -msgstr "" -"Es un tubo con pequeñas bolas brillantes que fueron sacadas del mercado por " -"sus químicos peligrosos. Casi no provocan ningún daño, pero iluminan al " -"impactar. Es útil para iluminar áreas sin iluminarte vos mismo." - #: lang/json/AMMO_from_json.py msgid "TEST rock" msgid_plural "TEST rocks" @@ -7439,569 +7301,56 @@ msgstr[0] "" msgstr[1] "" #: lang/json/AMMO_from_json.py -msgid "TEST platinum bit" -msgid_plural "TEST platinum bits" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEDP" -msgid_plural "30x113mm HEDP" -msgstr[0] "30x113mm HEDP" -msgstr[1] "30x113mm HEDP" - -#. ~ Description for {'str_sp': '30x113mm HEDP'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " -"Used primarily against light armored vehicles." -msgstr "" -"Una bala 30x113mm de cañón automático, con un casquillo altamente explosiva " -"y de doble uso. Utilizada principalmente contra vehículos ligeros." - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEI" -msgid_plural "30x113mm HEI" -msgstr[0] "30x113mm HEI" -msgstr[1] "30x113mm HEI" - -#. ~ Description for {'str_sp': '30x113mm HEI'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round, high explosive incendiary. Designed for use " -"against unarmored vehicles and to suppress infantry." -msgstr "" -"Una bala 30x113mm de cañón automático, altamente explosiva e incendiaria. " -"Utilizada principalmente contra vehículos no blindados y para reprimir " -"infantería." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 30x113mm" -msgid_plural "reloaded 30x113mm" -msgstr[0] "30x113mm recargada" -msgstr[1] "30x113mm recargadas" - -#. ~ Description for {'str_sp': '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 "" -"Una bala 30x113mm de cañón automático con el iniciador reemplazado, y " -"cargada con plomo básico de proyectil. No es tan efectiva como la verdadera." - -#. ~ 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 "" -"Una bala de 120mm anti-tanque de alta explosividad. Podría arruinarle el día" -" a cualquiera." - -#: lang/json/AMMO_from_json.py -msgid "120mm APFSDS" -msgid_plural "120mm APFSDSs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 120mm APFSDS -#: lang/json/AMMO_from_json.py -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 "" -"Un proyectil de 120mm perforador de blindaje estabilizado por aletas con " -"casquillo desechable sabot. Utiliza un proyectil de uranio empobrecido para " -"hacerle tener un mal día a lo que sea que golpee." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 120mm shot" -msgid_plural "reloaded 120mm shots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for reloaded 120mm shot -#: lang/json/AMMO_from_json.py -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 "" -"Un proyectil de 120mm con un iniciador eléctrico instalado, relleno con gran" -" cantidad de perdigones. Similar en eficacia al bote de metralla que ya no " -"se produce, pero de menor calidad." - -#: lang/json/AMMO_from_json.py -msgid "makeshift 120mm slug" -msgid_plural "makeshift 120mm slugs" -msgstr[0] "" -msgstr[1] "" - -#. ~ 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 "" -"Un proyectil de 120mm con un iniciador eléctrico instalado, lleno con balas " -"hechas a mano. Aunque lejos de ser ideal, causa bastante daño." - -#: lang/json/AMMO_from_json.py -msgid "155mm HEAT" -msgid_plural "155mm HEATs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 155mm HEAT -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Anti Tank round. More than enough firepower for " -"whatever you could think to point it at." -msgstr "" -"Una bala de 155mm anti-tanque muy explosiva. Poder de fuego más que " -"suficiente para cualquier cosa contra la que quieras apuntarla." - -#: lang/json/AMMO_from_json.py -msgid "155mm frag" -msgid_plural "155mm frags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 155mm frag -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Fragmentation round. Designed to give anything near " -"what you hit a really bad day." -msgstr "" -"Un proyectil de Alta Fragmentación Explosiva de 155mm. Diseñado para dar a " -"cualquier cosa cercana a donde impacte un día realmente malo." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm shot" -msgid_plural "reloaded 155mm shots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for reloaded 155mm shot -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm shell with a new electric primer installed, filled with a huge " -"amount of buckshot. Effectively turns a howitzer into a punt gun on " -"steroids." -msgstr "" -"Un proyectil de 155mm con un iniciador eléctrico instalado, relleno con una " -"enorme cantidad de perdigones. Efectivamente, convierte un obús en una " -"escopeta punt drogada." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm slug" -msgid_plural "reloaded 155mm slugs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for reloaded 155mm slug -#: lang/json/AMMO_from_json.py -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 "" -"Un proyectil de 155mm con un iniciador eléctrico instalado, relleno con una " -"cantidad masiva de posta hecha a mano. A pesar de su baja eficacia, lo que " -"sea que golpee lo va a sentir." - -#: lang/json/AMMO_from_json.py -msgid "small electric primer" -msgid_plural "small electric primers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for small electric primer -#: lang/json/AMMO_from_json.py -msgid "Primer for an autocannon shell. Seems to use an electric ignition." -msgstr "" -"Es un iniciador para proyectiles de cañón automático. Parece funcionar por " -"ignición eléctrica." - -#: lang/json/AMMO_from_json.py -msgid "large electric primer" -msgid_plural "large electric primers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for large electric primer -#: lang/json/AMMO_from_json.py -msgid "" -"Primer for a tank or artillery shell. Seems to use an electric ignition." -msgstr "" -"Es un iniciador para un proyectil de tanque o de artillería. Parece " -"funcionar por ignición eléctrica." - -#: lang/json/AMMO_from_json.py -msgid "liquified blob feed" -msgid_plural "liquified blob feed" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'liquified blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"Liquified blob feed, useful for fueling certain blob based vehicle parts" -msgstr "" - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "blob feed" -msgid_plural "blob feed" -msgstr[0] "alimento para monstruo masa amorfa gelatinosa" -msgstr[1] "alimentos para monstruo masa amorfa gelatinosa" - -#. ~ Description for {'str_sp': 'blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"An amalgam of various types of organic material, contains everything the " -"blob needs to be healthy. You think…" -msgstr "" - -#: lang/json/AMMO_from_json.py -msgid "IED" -msgid_plural "IEDs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/AMMO_from_json.py -msgid "blast canister" -msgid_plural "blast canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'blast canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a substantial explosive payload." -msgstr "" -"Un artefacto explosivo improvisado, hecho con un recipiente sellado lleno de" -" carga explosiva que detona al impacto. Contiene abundante carga explosiva." - -#: lang/json/AMMO_from_json.py -msgid "Big Bang canister" -msgid_plural "Big Bang canisters" -msgstr[0] "carcasa Big Bang" -msgstr[1] "carcasas Big Bang" - -#. ~ Description for {'str': 'Big Bang canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a VERY substantial explosive payload." -msgstr "" -"Un artefacto explosivo improvisado, hecho con un recipiente sellado lleno de" -" carga explosiva que detona al impacto. Contiene MUCHÍSIMA carga explosiva." - -#: lang/json/AMMO_from_json.py -msgid "fire canister" -msgid_plural "fire canisters" -msgstr[0] "frasco incendiario" -msgstr[1] "frascos incendiarios" - -#. ~ Description for {'str': 'fire canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a small area with deadly flames." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva. Está diseñado para ser usado con un lanzador " -"específico. Este rocía un área pequeña con llamas mortales." - -#: lang/json/AMMO_from_json.py -msgid "inferno canister" -msgid_plural "inferno canisters" -msgstr[0] "frasco infernal" -msgstr[1] "frascos infernales" - -#. ~ Description for {'str': 'inferno canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a large area with deadly flames." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva. Está diseñado para ser usado con un lanzador " -"específico. Este rocía un área grande con llamas mortales." - -#: lang/json/AMMO_from_json.py -msgid "fragmentation canister" -msgid_plural "fragmentation canisters" -msgstr[0] "carcasa fragmentaria" -msgstr[1] "carcasas fragmentarias" - -#. ~ Description for {'str': 'fragmentation canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to spray the immediate area with deadly shrapnel." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva y un medio para detonarlo. Está hecho para ser disparado" -" desde un lanzador específico. Este ha sido diseñado para rociar el área " -"próxima con esquirlas letales." - -#. ~ Description for {'str': 'modified mininuke'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device. Intended to be fired from a " -"specialized launcher, its case has been cut down and it has been rigged to " -"explode on impact. While it is now somewhat lighter than before, it can no " -"longer be triggered manually." -msgstr "" -"Es una pequeña bomba nuclear modificada. Aunque fue diseñada para ser usada " -"en un lanzador específico, su carcasa ha sido cortada y está preparada para " -"explotar al impactar. Ahora es un poco más liviana, pero no puede ser " -"detonada a mano." - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "harpoon" -msgid_plural "harpoons" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'harpoon'} -#: lang/json/AMMO_from_json.py -msgid "" -"A large spear carved from wood. This was fashioned specifically to be fired" -" from a compatible weapon; thus unsuitable for melee combat." -msgstr "" -"Es una lanza grande tallada en madera. El arpón era fabricado " -"específicamente para ser disparado desde un arma compatible, pero inadecuado" -" para el combate cuerpo a cuerpo." - -#: lang/json/AMMO_from_json.py -msgid "IED rigged bolt" -msgid_plural "IED rigged bolts" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/AMMO_from_json.py -msgid "nova bolt" -msgid_plural "nova bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'nova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a substantial explosive payload." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Contiene bastante " -"carga explosiva." - -#: lang/json/AMMO_from_json.py -msgid "supernova bolt" -msgid_plural "supernova bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'supernova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a very substantial explosive payload." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Contiene mucha carga " -"explosiva." - -#: lang/json/AMMO_from_json.py -msgid "searing bolt" -msgid_plural "searing bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'searing bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a small area with deadly flames." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Este ha sido diseñado" -" para rociar una pequeña área con llamas letales." - -#: lang/json/AMMO_from_json.py -msgid "napalm bolt" -msgid_plural "napalm bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'napalm bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a large area with deadly flames." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Este ha sido diseñado" -" para rociar una gran área con llamas letales." - -#: lang/json/AMMO_from_json.py -msgid "shatter bolt" -msgid_plural "shatter bolts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'shatter bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to spray the immediate area with deadly " -"shrapnel." -msgstr "" -"Es un artefacto explosivo improvisado, hecho con un recipiente sellado lleno" -" de carga explosiva fijado en la punta de un gran perno de balista. Está " -"hecho para ser disparado desde un lanzador específico. Este ha sido diseñado" -" para rociar el área próxima con esquirlas letales." - -#: lang/json/AMMO_from_json.py -msgid "steel ballista bolt" -msgid_plural "steel ballista bolts" +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'steel ballista bolt'} +#. ~ Description for {'str': 'test wooden broadhead arrow'} #: lang/json/AMMO_from_json.py -msgid "" -"A long shaft carved from wood ending in a tip of sharpened metal. It's " -"quite heavy, capable of dealing large amounts of damage, but isn't " -"particularly accurate. Stands a good chance of remaining intact once fired." +msgid "Test arrow" msgstr "" -"Es un palo largo tallado en madera con una punta afilada de metal. Es " -"bastante pesado, capaz de causar mucho daño, pero no es particularmente " -"preciso. Es probable que permanezca intacto luego de dispararlo." #: lang/json/AMMO_from_json.py -msgid "nuclear bolt" -msgid_plural "nuclear bolts" +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'nuclear bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device affixed to the end of a large " -"ballista bolt. Its case has been cut down and it has been rigged to explode" -" on impact. It can no longer be triggered manually." -msgstr "" -"Es un dispositivo portátil nuclear modificado, fijado a la punta de un gran " -"perno de balista. Se le ha cortado la carcasa y está preparado para explotar" -" al impacto. Ya no puede ser detonado a mano." - -#: lang/json/AMMO_from_json.py -msgid "wood ballista bolt" -msgid_plural "wood ballista bolts" -msgstr[0] "perno de madera para ballesta" -msgstr[1] "pernos de madera para ballesta" - -#. ~ Description for {'str': 'wood ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A sharpened bolt carved from wood. It's fairly heavy, capable of dealing " -"large amounts of damage, but isn't particularly accurate. Stands a good " -"chance of remaining intact once fired." -msgstr "" -"Un afilado perno tallado en madera. Es bastante pesado, capaz de causar " -"mucho daño, pero no es particularmente preciso. Es probable que permanezca " -"intacto luego de dispararlo." - -#: lang/json/AMMO_from_json.py -msgid "lead ball" -msgid_plural "lead balls" -msgstr[0] "bola de plomo" -msgstr[1] "bolas de plomo" - -#. ~ Description for {'str': 'lead ball'} +#. ~ Description for {'str': 'Test 9mm ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"A heavy lead ball about 8cm in diameter. Could pack quite a bit of a punch " -"if you had something to launch it." +msgid "Generic 9mm ammo based on JHP." msgstr "" -"Una bola pesada de plomo de unos 8cm de diámetro. Puede ser muy buen " -"proyectil si tienes con qué lanzarla." - -#: lang/json/AMMO_from_json.py -msgid "serrated disc" -msgid_plural "serrated discs" -msgstr[0] "disco dentado" -msgstr[1] "discos dentados" - -#. ~ Description for {'str': 'serrated disc'} -#: lang/json/AMMO_from_json.py -msgid "" -"A metal disc surrounded by serrated edges. It's as menacing as it sounds." -msgstr "Un disco de metal con el borde dentado. Es tan peligroso como parece." #: lang/json/AMMO_from_json.py -msgid "metal fragment" -msgid_plural "metal fragments" +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'metal fragment'} -#: lang/json/AMMO_from_json.py -msgid "Small slivers of metal. Can't see much use for them." -msgstr "Son pequeñas astillas de metal. No parecen tener mucha utilidad." - +#. ~ Description for {'str': 'Test .45 ammo'} #: lang/json/AMMO_from_json.py -msgid "glittering carbon" -msgid_plural "glittering carbon" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'glittering carbon'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of carbon are have been compressed into a crystalline " -"structure that is beginning to resemble diamonds." +msgid "Test ammo based on the .45 JHP." msgstr "" #: lang/json/AMMO_from_json.py -msgid "diamond fragments" -msgid_plural "diamond fragments" +msgid "test gas" +msgid_plural "test gas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'diamond fragments'} +#. ~ Description for {'str_sp': 'test gas'} #: lang/json/AMMO_from_json.py msgid "" -"These small fragments of diamond are formed as a byproduct from the " -"crystallization process of a diamond matrix. While the substance usually " -"decays when separated from the catalyst; these fragments are small enough to" -" remain stable." +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" msgstr "" -"Son unos pequeños fragmentos de diamante formados como un derivado del " -"proceso de cristalización de la matriz del diamante. Aunque normalmente la " -"sustancia se descompone cuando es separada del catalizador, estos fragmentos" -" son lo suficientemente pequeños como para mantenerse estables." #: lang/json/AMMO_from_json.py -msgid "vortex core" -msgid_plural "vortex core" -msgstr[0] "núcleo de vórtice" -msgstr[1] "núcleo de vórtice" +msgid "TEST platinum bit" +msgid_plural "TEST platinum bits" +msgstr[0] "TEST pedazo de platino" +msgstr[1] "TEST pedazos de platino" #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" @@ -8139,7 +7488,6 @@ msgstr[1] "chalecos MBR (vacíos)" #. 'large grenade pouches'}. #. ~ Use action holster_msg for {'str': 'MBR vest (titanium)', 'str_pl': 'MBR #. vests (titanium)'}. -#. ~ Use action holster_msg for javelin bag. #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You stash your %s." @@ -8515,12 +7863,11 @@ msgstr[1] "cinturones de herramientas de supervivencia" #. 'pairs of knee-high boots'}. #. ~ Use action holster_msg for {'str': 'pair of rollerblades', 'str_pl': #. 'pairs of rollerblades'}. -#. ~ Use action holster_msg for {'str': 'pair of rollerskates', 'str_pl': -#. 'pairs of rollerskates'}. -#. ~ Use action holster_msg for C.R.I.T web belt. +#. ~ Use action holster_msg for CRIT web belt. #. ~ Use action holster_msg for {'str': "technomancer's toolbelt"}. #. ~ Use action holster_msg for {'str': 'hollow cane'}. -#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/ARMOR_from_json.py lang/json/ARMOR_from_json.py +#: lang/json/GENERIC_from_json.py #, no-python-format msgid "You sheath your %s" msgstr "Enfundas tu %s." @@ -8528,7 +7875,7 @@ msgstr "Enfundas tu %s." #. ~ Use action holster_prompt for {'str': 'survivor utility belt'}. #. ~ Use action holster_prompt for {'str': 'survivor belt'}. #. ~ Use action holster_prompt for {'str': 'hiking backpack'}. -#. ~ Use action holster_prompt for C.R.I.T web belt. +#. ~ Use action holster_prompt for CRIT web belt. #. ~ Use action holster_prompt for {'str': "technomancer's toolbelt"}. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" @@ -8602,8 +7949,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "ammo pouch" msgid_plural "ammo pouches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bolsa de munición" +msgstr[1] "bolsas de munición" #. ~ Description for {'str': 'ammo pouch', 'str_pl': 'ammo pouches'} #: lang/json/ARMOR_from_json.py @@ -8665,7 +8012,6 @@ msgstr[0] "bolsa para jabalinas" msgstr[1] "bolsas para jabalinas" #. ~ Use action holster_prompt for {'str': 'javelin bag'}. -#. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" msgstr "" @@ -8994,6 +8340,22 @@ msgstr "" "Es un par de protecciones ligeras de cuero para los brazos, hechas para los " "arqueros." +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': +#. 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "" +"Es un par de mangas largas resistentes a los cortes, con agujeros para los " +"pulgares. Son útiles como protección al usar motosierras." + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -9533,6 +8895,34 @@ msgstr[1] "pares de botas de combate" msgid "Modern reinforced tactical combat boots. Very durable." msgstr "Son unas botas tácticas de combate reforzadas. Muy duraderas." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs +#. of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -10240,6 +9630,8 @@ msgstr[1] "pares de calcetines ignífugas" #. ~ Description for {'str': 'pair of flame-resistant socks', 'str_pl': 'pairs #. of flame-resistant socks'} +#. ~ Description for {'str': 'pair of XL flame-resistant socks', 'str_pl': +#. 'pairs of XL flame-resistant socks'} #: lang/json/ARMOR_from_json.py msgid "" "A snug fitting pair of stockings made from thin and lightweight Nomex fire-" @@ -10250,6 +9642,12 @@ msgstr "" "Nomex. Resistentes pero transpirables, son livianas y se pueden llevar " "cómodamente bajo la ropa." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL flame-resistant socks" +msgid_plural "pairs of XL flame-resistant socks" +msgstr[0] "" +msgstr[1] "" + #: lang/json/ARMOR_from_json.py msgid "pair of socks" msgid_plural "pairs of socks" @@ -10263,6 +9661,18 @@ msgstr[1] "pares de calcetines" msgid "Socks. Put 'em on your feet." msgstr "Son calcetines. Se ponen en los pies." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL socks" +msgid_plural "pairs of XL socks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of XL socks', 'str_pl': 'pairs of XL +#. socks'} +#: lang/json/ARMOR_from_json.py +msgid "Socks. Big ones. Put 'em on your feet." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of ankle socks" msgid_plural "pairs of ankle socks" @@ -10319,6 +9729,20 @@ msgstr[1] "pares de calcetines de lana" msgid "Warm socks made of wool." msgstr "Calcetines abrigadas hechas de lana." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL wool socks" +msgid_plural "pairs of XL wool socks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of XL wool socks', 'str_pl': 'pairs of XL +#. wool socks'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Warm socks made of wool for a larger than you'd previously thought possible " +"human." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of stockings" msgid_plural "pairs of stockings" @@ -11934,11 +11358,9 @@ msgstr[1] "pares de guantes tácticos" #. tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." msgstr "" -"Es un par de guantes tácticos reforzados con Kevlar. Utilizados por los " -"policías y los soldados." #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -11986,7 +11408,8 @@ msgstr[1] "pares de guantes resistentes a cortes" #. of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." msgstr "" #: lang/json/ARMOR_from_json.py @@ -12179,6 +11602,24 @@ msgstr[1] "pares de guantes de golf" msgid "A thin pair of black leather golfing gloves." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD +#. gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "" +"Son unos guantes livianos construidos de kevlar y nomex que son parte del " +"traje antiexplosivos. Están diseñados para proteger contra la fragmentación " +"y el calor." + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -12782,8 +12223,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "biosilicified chitin helmet" msgid_plural "biosilicified chitin helmets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "casco de quitina biosilicificada" +msgstr[1] "cascos de quitina biosilicificada" #. ~ Description for {'str': 'biosilicified chitin helmet'} #: lang/json/ARMOR_from_json.py @@ -12855,8 +12296,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "large wolf skull" msgid_plural "large wolf skulls" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "calavera grande de lobo" +msgstr[1] "calaveras grandes de lobo" #. ~ Description for {'str': 'large wolf skull'} #: lang/json/ARMOR_from_json.py @@ -13642,8 +13083,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "copper ring" msgid_plural "copper rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de cobre" +msgstr[1] "anillos de cobre" #. ~ Description for {'str': 'copper ring'} #: lang/json/ARMOR_from_json.py @@ -13745,7 +13186,7 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'emerald and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset emeralds." -msgstr "" +msgstr "Es un par de gemelos con esmeraldas incrustadas." #: lang/json/ARMOR_from_json.py msgid "alexandrite and gold cufflinks" @@ -13758,7 +13199,7 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'alexandrite and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset alexandrites." -msgstr "" +msgstr "Es un par de gemelos con alejandritas incrustadas." #: lang/json/ARMOR_from_json.py msgid "ruby and gold cufflinks" @@ -13933,8 +13374,8 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "blue topaz and silver cufflinks" msgid_plural "blue topaz and silver cufflinks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pares de gemelos de topacio azul y plata" +msgstr[1] "pares de gemelos de topacio azul y plata" #: lang/json/ARMOR_from_json.py msgid "opal and silver cufflinks" @@ -13957,8 +13398,8 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "diamond and platinum cufflinks" msgid_plural "diamond and platinum cufflinks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pares de gemelos de diamante y platino" +msgstr[1] "pares de gemelos de diamante y platino" #: lang/json/ARMOR_from_json.py msgid "amethyst and platinum cufflinks" @@ -14318,8 +13759,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "platinum watch" msgid_plural "platinum watches" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "reloj de platino" +msgstr[1] "relojes de platino" #. ~ Description for {'str': 'platinum watch', 'str_pl': 'platinum watches'} #: lang/json/ARMOR_from_json.py @@ -14331,8 +13772,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "platinum bracelet" msgid_plural "platinum bracelets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pulsera de platino" +msgstr[1] "pulseras de platino" #. ~ Description for {'str': 'platinum bracelet'} #: lang/json/ARMOR_from_json.py @@ -14819,8 +14260,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of diamond and gold earrings" msgid_plural "pairs of diamond and gold earrings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de pendientes de aro de diamante y oro" +msgstr[1] "pares de pendientes de aro de diamante y oro" #. ~ Description for {'str': 'pair of diamond and gold earrings', 'str_pl': #. 'pairs of diamond and gold earrings'} @@ -14875,8 +14316,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of emerald and gold earrings" msgid_plural "pairs of emerald and gold earrings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de pendientes de aro de esmeralda y oro" +msgstr[1] "pares de pendientes de aro de esmeralda y oro" #. ~ Description for {'str': 'pair of emerald and gold earrings', 'str_pl': #. 'pairs of emerald and gold earrings'} @@ -14885,6 +14326,8 @@ msgid "" "A pair of shiny emerald and gold earrings. You can wear it if you like, but" " it won't provide any effects." msgstr "" +"Es un par de pendientes de aro brillantes de esmeralda y oro. Te los puedes " +"poner si quieres, pero no causan ningún efecto." #: lang/json/ARMOR_from_json.py msgid "pair of alexandrite and gold earrings" @@ -15053,6 +14496,8 @@ msgid "" "A pair of shiny amethyst and silver earrings. You can wear it if you like, " "but it won't provide any effects." msgstr "" +"Es un par de pendientes de aro brillantes de amatista y plata. Te los puedes" +" poner si quieres, pero no causan ningún efecto." #: lang/json/ARMOR_from_json.py msgid "pair of aquamarine and silver earrings" @@ -15081,6 +14526,8 @@ msgid "" "A pair of shiny emerald and silver earrings. You can wear it if you like, " "but it won't provide any effects." msgstr "" +"Es un par de pedientes de aro brillantes de esmeralda y plata. Te los puedes" +" poner si quieres, pero no causan ningún efecto." #: lang/json/ARMOR_from_json.py msgid "pair of alexandrite and silver earrings" @@ -15227,8 +14674,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of garnet and platinum earrings" msgid_plural "pairs of garnet and platinum earrings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de pendientes de aro de granate y platino" +msgstr[1] "pares de pendientes de aro de granate y platino" #. ~ Description for {'str': 'pair of garnet and platinum earrings', 'str_pl': #. 'pairs of garnet and platinum earrings'} @@ -15255,8 +14702,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of aquamarine and platinum earrings" msgid_plural "pairs of aquamarine and platinum earrings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de pendientes de aro de aguamarina y platino" +msgstr[1] "pares de pendientes de aro de aguamarina y platino" #. ~ Description for {'str': 'pair of aquamarine and platinum earrings', #. 'str_pl': 'pairs of aquamarine and platinum earrings'} @@ -15339,8 +14786,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of tourmaline and platinum earrings" msgid_plural "pairs of tourmaline and platinum earrings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de pendientes de aro de turmalina y platino" +msgstr[1] "pares de pendientes de aro de turmalina y platino" #. ~ Description for {'str': 'pair of tourmaline and platinum earrings', #. 'str_pl': 'pairs of tourmaline and platinum earrings'} @@ -15522,6 +14969,8 @@ msgid "" "A gold ring with a tourmaline mounted on top of it. You can wear it if you " "like, but it won't provide any effects." msgstr "" +"Es un anillo de oro con una turmalina encima. Te lo puedes poner si quieres," +" pero no causa ningún efecto." #: lang/json/ARMOR_from_json.py msgid "citrine and gold ring" @@ -15710,8 +15159,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "citrine and silver ring" msgid_plural "citrine and silver rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de citrino y plata" +msgstr[1] "anillos de citrino y plata" #. ~ Description for {'str': 'citrine and silver ring'} #: lang/json/ARMOR_from_json.py @@ -15723,8 +15172,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "blue topaz and silver ring" msgid_plural "blue topaz and silver rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de topacio azul y plata" +msgstr[1] "anillos de topacio azul y plata" #. ~ Description for {'str': 'blue topaz and silver ring'} #: lang/json/ARMOR_from_json.py @@ -15803,8 +15252,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "aquamarine and platinum ring" msgid_plural "aquamarine and platinum rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de aguamarina y platino" +msgstr[1] "anillos de aguamarina y platino" #. ~ Description for {'str': 'aquamarine and platinum ring'} #: lang/json/ARMOR_from_json.py @@ -15816,8 +15265,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "emerald and platinum ring" msgid_plural "emerald and platinum rings" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de esmeralda y platino" +msgstr[1] "anillos de esmeralda y platino" #. ~ Description for {'str': 'emerald and platinum ring'} #: lang/json/ARMOR_from_json.py @@ -16046,6 +15495,8 @@ msgid "" "A gold bracelet with sparkling peridots. You can wear it if you like, but " "it won't provide any effects." msgstr "" +"Es una pulsera de oro con peridotos brillantes. Te la puedes poner si " +"quieres, pero no causa ningún efecto." #: lang/json/ARMOR_from_json.py msgid "sapphire and gold bracelet" @@ -16154,8 +15605,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "amethyst and silver bracelet" msgid_plural "amethyst and silver bracelets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pulsera de amatista y plata" +msgstr[1] "pulseras de amatista y plata" #. ~ Description for {'str': 'amethyst and silver bracelet'} #: lang/json/ARMOR_from_json.py @@ -16176,6 +15627,8 @@ msgid "" "A silver bracelet with sparkling aquamarines. You can wear it if you like, " "but it won't provide any effects." msgstr "" +"Es una pulsera de plata con aguamarinas brillantes. Te la podés poner si " +"querés, pero no causa ningún efecto." #: lang/json/ARMOR_from_json.py msgid "emerald and silver bracelet" @@ -16219,8 +15672,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "peridot and silver bracelet" msgid_plural "peridot and silver bracelets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pulsera de peridoto y plata" +msgstr[1] "pulseras de peridoto y plata" #. ~ Description for {'str': 'peridot and silver bracelet'} #: lang/json/ARMOR_from_json.py @@ -16284,8 +15737,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "opal and silver bracelet" msgid_plural "opal and silver bracelets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pulsera de ópalo y plata" +msgstr[1] "pulseras de ópalo y plata" #. ~ Description for {'str': 'opal and silver bracelet'} #: lang/json/ARMOR_from_json.py @@ -16323,8 +15776,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "garnet and platinum bracelet" msgid_plural "garnet and platinum bracelets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pulsera de granate y platino" +msgstr[1] "pulseras de granate y platino" #. ~ Description for {'str': 'garnet and platinum bracelet'} #: lang/json/ARMOR_from_json.py @@ -16375,8 +15828,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "alexandrite and platinum bracelet" msgid_plural "alexandrite and platinum bracelets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pulsera de alejandrita y platino" +msgstr[1] "pulseras de alejandrita y platino" #. ~ Description for {'str': 'alexandrite and platinum bracelet'} #: lang/json/ARMOR_from_json.py @@ -16507,8 +15960,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "diamond and gold pendant necklace" msgid_plural "diamond and gold pendant necklaces" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "collar de diamante y oro" +msgstr[1] "collares de diamante y oro" #. ~ Description for {'str': 'diamond and gold pendant necklace'} #: lang/json/ARMOR_from_json.py @@ -16557,6 +16010,8 @@ msgid "" "A shiny, gold necklace adorned with an emerald pendant. You can wear it if " "you like, but it won't provide any effects." msgstr "" +"Es un collar brillante de oro, adornado con un colgante de esmeralda. Te lo " +"puedes poner si quieres, pero no causa ningún efecto." #: lang/json/ARMOR_from_json.py msgid "alexandrite and gold pendant necklace" @@ -16574,8 +16029,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "ruby and gold pendant necklace" msgid_plural "ruby and gold pendant necklaces" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "collar de rubí y oro" +msgstr[1] "collares de rubí y oro" #. ~ Description for {'str': 'ruby and gold pendant necklace'} #: lang/json/ARMOR_from_json.py @@ -16609,6 +16064,8 @@ msgid "" "A shiny, gold necklace adorned with a sapphire pendant. You can wear it if " "you like, but it won't provide any effects." msgstr "" +"Es un collar brillante de oro, adornado con un colgante de zafiro. Te lo " +"puedes poner si quieres, pero no causa ningún efecto." #: lang/json/ARMOR_from_json.py msgid "tourmaline and gold pendant necklace" @@ -16691,8 +16148,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "diamond and silver pendant necklace" msgid_plural "diamond and silver pendant necklaces" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "collar de granate y plata" +msgstr[1] "collares de granate y plata" #. ~ Description for {'str': 'diamond and silver pendant necklace'} #: lang/json/ARMOR_from_json.py @@ -16739,6 +16196,8 @@ msgid "" "A shiny, silver necklace adorned with an emerald pendant. You can wear it " "if you like, but it won't provide any effects." msgstr "" +"Es un collar brillante de plata, adornado con un colgante de esmeralda. Te " +"lo podés poner si querés, pero no causa ningún efecto." #: lang/json/ARMOR_from_json.py msgid "alexandrite and silver pendant necklace" @@ -16862,8 +16321,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "garnet and platinum necklace" msgid_plural "garnet and platinum necklaces" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "collar de granate y platino" +msgstr[1] "collares de granate y platino" #. ~ Description for {'str': 'garnet and platinum necklace'} #: lang/json/ARMOR_from_json.py @@ -16966,8 +16425,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "sapphire and platinum pendant necklace" msgid_plural "sapphire and platinum pendant necklaces" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "collar de zafiro y platino" +msgstr[1] "collares de zafiro y platino" #. ~ Description for {'str': 'sapphire and platinum pendant necklace'} #: lang/json/ARMOR_from_json.py @@ -17107,7 +16566,7 @@ msgstr[1] "" #. ~ Description for {'str': 'alexandrite and platinum tiara'} #: lang/json/ARMOR_from_json.py msgid "A shiny, platinum tiara adorned with alexandrites." -msgstr "" +msgstr "Es una tiara brillante de platino, adornada con alejandritas." #: lang/json/ARMOR_from_json.py msgid "ruby and platinum tiara" @@ -17145,8 +16604,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "tourmaline and platinum tiara" msgid_plural "tourmaline and platinum tiaras" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tiara de turmalina y platino" +msgstr[1] "tiaras de turmalina y platino" #. ~ Description for {'str': 'tourmaline and platinum tiara'} #: lang/json/ARMOR_from_json.py @@ -17288,8 +16747,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "sapphire and gold tiara" msgid_plural "sapphire and gold tiaras" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tiara de zafiro y oro" +msgstr[1] "tiaras de zafiro y oro" #. ~ Description for {'str': 'sapphire and gold tiara'} #: lang/json/ARMOR_from_json.py @@ -17382,7 +16841,7 @@ msgstr[1] "" #. ~ Description for {'str': 'amethyst and silver tiara'} #: lang/json/ARMOR_from_json.py msgid "A shiny, silver tiara adorned with amethyst." -msgstr "" +msgstr "Es una tiara brillante de plata, adornada con amatista." #: lang/json/ARMOR_from_json.py msgid "aquamarine and silver tiara" @@ -17492,7 +16951,7 @@ msgstr[1] "" #. ~ Description for {'str': 'opal and silver tiara'} #: lang/json/ARMOR_from_json.py msgid "A shiny, silver tiara adorned with opals." -msgstr "" +msgstr "Es una tiara brillante de plata, adornada con ópalos." #: lang/json/ARMOR_from_json.py msgid "pearl and silver tiara" @@ -17565,6 +17024,21 @@ msgstr "" "Unas cazadoras negras de cuero. Muy resistentes y ligeras, pero no tiene " "bolsillos." +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -17714,6 +17188,38 @@ msgid "" "built to be durable, comfortable, and easy to wear." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" +"Son pantalones con protección resistente construidas de kevlar y nomex que " +"son parte del traje antiexplosivos. Están diseñados para proteger contra la " +"presión, fragmentación, impacto y calor." + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "basketball shorts" msgid_plural "basketball shorts" @@ -18110,6 +17616,8 @@ msgstr[0] "par de pantalones de trabajo" msgstr[1] "pares de pantalones de trabajo" #. ~ Description for {'str': 'work pants', 'str_pl': 'pairs of work pants'} +#. ~ Description for {'str': 'XL work pants', 'str_pl': 'pairs of XL work +#. pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." msgstr "Un par de pantalones grises de trabajo." @@ -18159,6 +17667,19 @@ msgstr[1] "pasamontañas" msgid "A warm covering that protects the head and face from the cold." msgstr "Una tela abrigada que protege la cabeza y la cara del frío." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -18562,6 +18083,7 @@ msgstr[1] "" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "Tu armadura de poder se activa." @@ -18623,6 +18145,11 @@ msgid "" "In practice, the cameras were unreliable and easily fouled. The " "environmental controls function best with direct-skin contact." msgstr "" +"Es un casco de combate totalmente cerrado, que se puede usar en ambientes " +"peligrosos. Fue diseñado para acompañar el exoesqueleto de poder, utilizando" +" cámaras para expandir el rango visual. Pero en la práctica, las cámaras " +"eran poco fiables y fáciles de ensuciar. Los controles de ambiente funcionan" +" mejor cuando están en contacto directo con la piel." #: lang/json/ARMOR_from_json.py msgid "heavy environmental combat helmet" @@ -19149,7 +18676,7 @@ msgstr "Enfundar palo de golf" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." +"has straps to be worn on the back and a slot for an umbrella." msgstr "" #: lang/json/ARMOR_from_json.py @@ -19497,6 +19024,17 @@ msgid "A light vest covered in pockets and straps for storage." msgstr "" "Es un chaleco liviano lleno de bolsillos y correas para almacenamiento." +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -19793,6 +19331,9 @@ msgid "" "summer travels. It offers less storage space and armor compared to regular " "nomad gear." msgstr "" +"Es un traje improvisado ligero hecho con ropa pre-Cataclismo, diseñado para " +"viajes largos de verano. Tiene menos capacidad de almacenamiento y " +"protección que el equipo normal de nómada." #: lang/json/ARMOR_from_json.py msgid "plated leather armor" @@ -20614,8 +20155,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "plastic chest protector" msgid_plural "plastic chest protectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "protector plástico de torso" +msgstr[1] "protectores plásticos de torso" #. ~ Description for {'str': 'plastic chest protector'} #: lang/json/ARMOR_from_json.py @@ -20654,6 +20195,19 @@ msgstr "" "Un delantal hecho de cuero grueso. Un poco incómodo, pero brinda excelente " "protección contra cortaduras." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from " +"cuts." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -21285,6 +20839,17 @@ msgstr "" "La clásica pregunta: ¿Calzoncillos largos o calzoncillos slip? ¿Tu " "respuesta? Sí." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer briefs" +msgid_plural "XL boxer briefs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'XL boxer briefs'} +#: lang/json/ARMOR_from_json.py +msgid "The age-old question, boxers or briefs? Your answer? Chonk!" +msgstr "La clásica pregunta: ¿Bóxer o slip? ¿Tu respuesta? ¡Gordito!" + #: lang/json/ARMOR_from_json.py msgid "boxer shorts" msgid_plural "boxer shorts" @@ -21299,6 +20864,19 @@ msgstr "" "Es un calzoncillo para hombre. Igual de cómodo que el calzoncillo slip, pero" " más elegante." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer shorts" +msgid_plural "XL boxer shorts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'XL boxer shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Men's XL boxer shorts. For the very big and tall. More fashionable than " +"briefs and just as comfortable." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "boy shorts" msgid_plural "boy shorts" @@ -21312,6 +20890,19 @@ msgid "" msgstr "" "Ropa interior femenina similar al boxer masculino, pero mucho más ajustada." +#: lang/json/ARMOR_from_json.py +msgid "XL boy shorts" +msgid_plural "XL boy shorts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'XL boy shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Female underwear similar to men's boxer shorts, but much more close-fitting." +" This size is made for giants." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bra" msgid_plural "bras" @@ -21550,6 +21141,20 @@ msgstr "" "ejercicio físico. Generalmente, se utiliza cuando se hace ejercicio, se " "adhiere a la piel y es cómodo." +#: lang/json/ARMOR_from_json.py +msgid "XL sports bra" +msgid_plural "XL sports bras" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL sports bra'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A sturdy nylon bra to provide additional support during physical movement. " +"Typically worn when exercising, it clings to the skin and is easy to wear. " +"This one appears to have been made for a massive person." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "tank top" msgid_plural "tank tops" @@ -21820,6 +21425,58 @@ msgid "" "but cannot be repaired" msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL jeans" +msgid_plural "pairs of XL jeans" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL jeans', 'str_pl': 'pairs of XL jeans'} +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue jeans with two deep pockets." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL work pants" +msgid_plural "pairs of XL work pants" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL gray work pants." +msgstr "Es un par de pantalones XL grises de trabajo." + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL light-blue work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL work t-shirt" +msgid_plural "XL work t-shirts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL work t-shirt'} +#: lang/json/ARMOR_from_json.py +msgid "A gray XL work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL blue work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL gray work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL light-blue work t-shirt with a small front pocket." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Uplifted SWAT armor" msgid_plural "Uplifted SWAT armors" @@ -21856,7 +21513,7 @@ msgstr[1] "" #. ~ Description for {'str': 'XL ESAPI ballistic vest'} #: lang/json/ARMOR_from_json.py msgid "Oversized ballistic armor with ESAPI ceramic armor plates." -msgstr "" +msgstr "Es armadura balística de gran tamaño con placas ESAPI de cerámica." #: lang/json/ARMOR_from_json.py msgid "pair of XL combat boots" @@ -21896,6 +21553,59 @@ msgid "" "tactical gloves." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL leather belt" +msgid_plural "XL leather belts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL leather belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL leather belt. Useful for making your pair of pants fit if you need " +"really big pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL police duty belt" +msgid_plural "XL police duty belts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL police duty belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL black leather belt used by extremely large uplifted police officers. " +"It has several pouches and a holder for a baton." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL tactical full helmet" +msgid_plural "XL tactical full helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL tactical full helmet'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An all-encompassing massive black helmet that covers your entire face and " +"neck, providing excellent protection from all sorts of damage." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL leg ammo pouch" +msgid_plural "XL leg ammo pouches" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'XL leg ammo pouch', 'str_pl': 'XL leg ammo +#. pouches'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL fabric ammo pouch that can be strapped to your leg and capable of " +"holding two magazine close at hand." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "titanium watch" msgid_plural "titanium watches" @@ -22041,6 +21751,21 @@ msgid "" "armor, it'll still keep you relatively safe." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "CRIT Engineering Suit" +msgid_plural "CRIT Engineering Suits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for CRIT Engineering Suit +#: lang/json/ARMOR_from_json.py +msgid "" +"An airtight, flexible suit of woven composite fibers complete with segmented" +" plates of armor. A complex system digitizes items in an individual pocket " +"universe for storage while built in joint-torsion ratchets generate the " +"neccessary energy required to power the interface." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "CRIT face mask" msgid_plural "CRIT face masks" @@ -22050,10 +21775,13 @@ msgstr[1] "máscaras CRIT" #. ~ Description for CRIT face mask #: lang/json/ARMOR_from_json.py msgid "" -"This is the C.R.I.T standard issue face mask, lined with Kevlar for extra " -"protection. A few filters provide decent environmental safety, but it was " -"not intended for extended use. It has a basic integrated HUD." +"A standard issue face mask, lined with Kevlar for extra protection. A few " +"filters provide decent environmental safety, but it was not intended for " +"extended use. It has a basic integrated HUD." msgstr "" +"Es una máscara facial estándar con interior de Kevlar para mayor protección." +" Tiene unos filtros que brindan una protección decente al ambiente, pero no " +"está pensada para un uso intensivo. Tiene integrado un HUD básico." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT boots" @@ -22065,7 +21793,7 @@ msgstr[1] "" #. boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and " +"A pair of standard-issue boots. Next-gen gels keep feet comfortable and " "hygienic during long-term missions while absorbing shock and heat from " "outside-sources. Superalloy mesh and rubber offer quite a bit of chemical " "protection as well. Decently heavy though" @@ -22081,7 +21809,7 @@ msgstr[1] "" #. LA boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor " +"A pair of skeletonized boots. Based off of C.R.I.T boots, the light-armor " "variant was created for missions in warmer climates. The LA boots keep most" " of the old features of the standard issue boots but trade in protection for" " easier movement." @@ -22090,14 +21818,14 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT fingertip-less gloves" msgid_plural "pairs of CRIT fingertip-less gloves" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de guantes sin dedos CRIT" +msgstr[1] "pares de guantes sin dedos CRIT" #. ~ Description for {'str': 'pair of CRIT fingertip-less gloves', 'str_pl': #. 'pairs of CRIT fingertip-less gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with " +"A pair of standard-issue gloves. Made with superalloy mesh for those with " "gene-modding and/or mutations while still allowing greater manipulation of " "items and moderate protection." msgstr "" @@ -22112,8 +21840,8 @@ msgstr[1] "" #. 'pairs of CRIT fingertip-less liners'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue glove liners. Made with neoprene and rubber mesh for" -" warmth and fingertip-less for those with gene-modding and/or mutations " +"A pair of standard-issue glove liners. Made with neoprene and rubber mesh " +"for warmth and fingertip-less for those with gene-modding and/or mutations " "while still allowing greater manipulation of items and moderate protection." msgstr "" @@ -22126,10 +21854,10 @@ msgstr[1] "" #. ~ Description for CRIT backpack #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this " -"smaller pack strikes a fine balance between storage space and encumbrance " -"and allows a larger weapon to be holstered, drawing and holstering is still " -"rather awkward even with the magnetized clips, but practice helps." +"A standard-issue pack. Based on the MOLLE backpack's design, this smaller " +"pack strikes a fine balance between storage space and encumbrance and allows" +" a larger weapon to be holstered, drawing and holstering is still rather " +"awkward even with the magnetized clips, but practice helps." msgstr "" #: lang/json/ARMOR_from_json.py @@ -22141,8 +21869,8 @@ msgstr[1] "" #. ~ Description for CRIT chestrig #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" -" with light-armor padding." +"A slightly modified chestrig, has mesh and MOLLE loops for gear and slots " +"with light-armor padding." msgstr "" #: lang/json/ARMOR_from_json.py @@ -22155,19 +21883,19 @@ msgstr[1] "" #. CRIT leg guards'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue leg armor. Simple design and durable material allows" -" for easy movement and the padding keeps the legs safe and warm in colder " +"Leg armor for those who fight. Simple design and durable material allows " +"for easy movement and the padding keeps the legs safe and warm in colder " "conditions." msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT arm guards" -msgid_plural "pairs of C.R.I.T arm guards" +msgid_plural "pairs of CRIT arm guards" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'pair of CRIT arm guards', 'str_pl': 'pairs of -#. C.R.I.T arm guards'} +#. CRIT arm guards'} #: lang/json/ARMOR_from_json.py msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " @@ -22184,8 +21912,8 @@ msgstr[1] "" #. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on " -"your hip." +"CRIT standard-issue belt. Keeps your trousers up and your weapons on your " +"hip." msgstr "" #: lang/json/ARMOR_from_json.py @@ -22202,21 +21930,6 @@ msgid "" "discharges from the robots. Has several pockets for storage." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "CRIT Engineering Suit" -msgid_plural "CRIT Engineering Suits" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CRIT Engineering Suit -#: lang/json/ARMOR_from_json.py -msgid "" -"An airtight, flexible suit of woven composite fibers complete with segmented" -" plates of armor. A complex system digitizes items in an individual pocket " -"universe for storage while built in joint-torsion ratchets generate the " -"necessary energy required to power the interface." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "CRIT Armored Anomaly Suit" msgid_plural "CRIT Armored Anomaly Suits" @@ -22234,12 +21947,12 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "CRIT drop leg pouch" -msgid_plural "C.R.I.T drop leg pouches" +msgid_plural "CRIT drop leg pouches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'C.R.I.T drop -#. leg pouches'} +#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'CRIT drop leg +#. pouches'} #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " @@ -22275,7 +21988,7 @@ msgstr[1] "" #. of CRIT Enforcer docks'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of " +"CRIT Enforcer docks. Metal plates vaguely molded into the shape of " "oversized feet which clamp down onto your own footwear keep your feet out of" " harms way. It looks terrible and feels clunky unlike most of C.R.I.T's " "designs, but they do seem to be worth using if you were to be in the middle " @@ -22313,98 +22026,97 @@ msgid "" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T blouse" -msgid_plural "C.R.I.T blouses" +msgid "CRIT blouse" +msgid_plural "CRIT blouses" msgstr[0] "" msgstr[1] "" -#. ~ Description for C.R.I.T blouse +#. ~ Description for CRIT blouse #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage." -" Super-flex neoprene keeps one warm in moderately cold weather while a " -"sleek design keeps it from being too flashy. A zipper at the back and front" -" allows for quick donning and doffing." +"A standard-issue military jacket. Durable, lightweight, and has ample " +"storage. Super-flex neoprene keeps one warm in moderately cold weather " +"while a sleek design keeps it from being too flashy. A zipper at the back " +"and front allows for quick donning and doffing." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T trousers" -msgid_plural "C.R.I.T trousers" +msgid "CRIT trousers" +msgid_plural "CRIT trousers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT trousers'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue trousers. Durable, lightweight and has ample " +"A pair of standard-issue cargo pants. Durable, lightweight and has ample " "storage. Super-flex neoprene keeps one warm in moderately cold weather." msgstr "" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#: lang/json/ARMOR_from_json.py +msgid "CRIT pants" +msgid_plural "CRIT pants" +msgstr[0] "pantalones de vestir CRIT" +msgstr[1] "pantalones de vestir CRIT" + +#. ~ Description for {'str_sp': 'CRIT pants'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " -"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " -"cold weather." +"A pair of dress pants. A minimalist sleek design makes the pants " +"lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in" +" moderately cold weather." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T helmet liner" -msgid_plural "C.R.I.T helmet liners" +msgid "CRIT helmet liner" +msgid_plural "CRIT helmet liners" msgstr[0] "" msgstr[1] "" -#. ~ Description for C.R.I.T helmet liner +#. ~ Description for CRIT helmet liner #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." +msgid "A standard-issue helmet liner. Keeps the noggin warm." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T shoes" -msgid_plural "pairs of C.R.I.T dress shoes" +msgid "pair of CRIT shoes" +msgid_plural "pairs of CRIT dress shoes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pair of C.R.I.T shoes', 'str_pl': 'pairs of -#. C.R.I.T dress shoes'} +#. ~ Description for {'str': 'pair of CRIT shoes', 'str_pl': 'pairs of CRIT +#. dress shoes'} #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T rec gloves" -msgid_plural "pairs of C.R.I.T rec gloves" +msgid "pair of CRIT rec gloves" +msgid_plural "pairs of CRIT rec gloves" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'pair of C.R.I.T rec gloves', 'str_pl': 'pairs of -#. C.R.I.T rec gloves'} +#. ~ Description for {'str': 'pair of CRIT rec gloves', 'str_pl': 'pairs of +#. CRIT rec gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are" -" made with cotton with a neoprene lining for grip-pads and warmth. " +"A pair of standard-issue rec gloves. Skin-hugging and sleek, these gloves " +"are made with cotton with a neoprene lining for grip-pads and warmth. " msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "C.R.I.T web belt" -msgid_plural "C.R.I.T web belts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for C.R.I.T web belt +#. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " -"hip." +"A standard-issue belt. Keeps your trousers up and your tools on your hip." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec duster" -msgid_plural "C.R.I.T rec dusters" +msgid "CRIT rec duster" +msgid_plural "CRIT rec dusters" msgstr[0] "" msgstr[1] "" -#. ~ Description for C.R.I.T rec duster +#. ~ Description for CRIT rec duster #: lang/json/ARMOR_from_json.py msgid "" "A waterproofed full-length duster coat. Made with neoprene, comfort and " @@ -22413,19 +22125,45 @@ msgid "" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec hat" -msgid_plural "C.R.I.T rec hats" +msgid "CRIT rec hat" +msgid_plural "CRIT rec hats" msgstr[0] "" msgstr[1] "" -#. ~ Description for C.R.I.T rec hat +#. ~ Description for CRIT rec hat #: lang/json/ARMOR_from_json.py msgid "" -"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " +"Functionality meets fashion in this waterproofed CRIT standard issue rec " "cover. Thick enough to provide warmth in colder weather, this hat shares " "the same sleek design of most of C.R.I.T's gear." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "plant fiber tunic" +msgid_plural "plant fiber tunics" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plant fiber tunic +#: lang/json/ARMOR_from_json.py +msgid "" +"A loose garment cobbled together from a collection of plant bundles and " +"wound together by makeshift cordage" +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber bracelet" +msgid_plural "plant fiber bracelets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for plant fiber bracelet +#: lang/json/ARMOR_from_json.py +msgid "" +"A bracelet wound together by makeshift cordage. Has some cool looking " +"pebbles. " +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "CRIT canteen" msgid_plural "CRIT canteens" @@ -22435,11 +22173,9 @@ msgstr[1] "" #. ~ Description for CRIT canteen #: lang/json/ARMOR_from_json.py msgid "" -"A simple, durable steel canteen that can heat up food with built in " -"plutonium heating elements." +"A durable steel canteen that can heat up food with built in atomic heating " +"elements." msgstr "" -"Es una cantimplora común y duradera de acero, que puede calentar la comida " -"con sus resistencias térmicas de plutonio integradas." #: lang/json/ARMOR_from_json.py msgid "wet bandana" @@ -22686,8 +22422,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "black dragonhide armor" msgid_plural "black dragonhide armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "armadura negra de pellejo de dragón" +msgstr[1] "armaduras negras de pellejo de dragón" #. ~ Description for black dragonhide armor #: lang/json/ARMOR_from_json.py @@ -22696,6 +22432,9 @@ msgid "" "that cover your torso, legs, and arms, with the benefit of being very light " "and flexible." msgstr "" +"Es una armadura completa de pellejo negro de dragón. Viene con todos los " +"accesorios para cubrir tu torso, piernas y brazos, con el beneficio de ser " +"muy liviana y flexible." #: lang/json/ARMOR_from_json.py msgid "pair of black dragonscale gauntlets" @@ -22758,6 +22497,8 @@ msgid "" "A pair of heavy-duty gauntlets made of black dragonscale that covers your " "hands, or whatever you use as hands." msgstr "" +"Es un par de guantes resistentes hechos de escamas negras de dragón que " +"pueden cubrir tus manos o lo que sea que tengas en lugar de manos." #: lang/json/ARMOR_from_json.py msgid "pair of XL black dragonhide gloves" @@ -22801,6 +22542,9 @@ msgid "" "and doesn't cover your face, but is large enough to fit even the strangest " "of heads." msgstr "" +"Es un enorme casco hecho con pellejo negro de dragón. Protege tu cabeza muy " +"bien, y no cubre tu cara pero es lo suficientemente grande para entrar en " +"las cabezas más extrañas." #: lang/json/ARMOR_from_json.py msgid "XL black dragonscale armor" @@ -22932,8 +22676,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "magic light" msgid_plural "magic lights" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "luz mágica" +msgstr[1] "luces mágicas" #. ~ Description for magic light #: lang/json/ARMOR_from_json.py @@ -22951,6 +22695,8 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A lightweight but tough shield crafted entirely of magical ice." msgstr "" +"Es un escudo liviano pero resistente, fabricado íntegramente de hielo " +"mágico." #: lang/json/ARMOR_from_json.py msgid "slick icy coatings" @@ -22991,12 +22737,14 @@ msgid "" "An all-encompassing, invisible layer of magic distorts light around your " "body. Allows you to dodge two extra attacks in a given turn." msgstr "" +"Es una capa de magia envolvente e invisible que distorsiona la luz alrededor" +" de tu cuerpo. Te permite esquivar dos ataques extra por turno." #: lang/json/ARMOR_from_json.py msgid "acid resistance aura" msgid_plural "acid resistance auras" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "aura de resistencia al ácido" +msgstr[1] "auras de resistencia al ácido" #. ~ Description for {'str': 'acid resistance aura'} #. ~ Description for greater acid resistance aura @@ -23019,7 +22767,7 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'frost armor'} #: lang/json/ARMOR_from_json.py msgid "A thin layer of magical ice, covering the entire body." -msgstr "" +msgstr "Es una fina capa de hielo mágico que cubre el cuerpo entero." #: lang/json/ARMOR_from_json.py msgid "stoneskin coating" @@ -23048,8 +22796,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "aura of protection" msgid_plural "auras of protection" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "aura de protección" +msgstr[1] "auras de protección" #. ~ Description for {'str': 'aura of protection', 'str_pl': 'auras of #. protection'} @@ -23059,149 +22807,6 @@ msgid "" "the environment." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "wooden shield" -msgid_plural "wooden shields" -msgstr[0] "escudo de madera" -msgstr[1] "escudos de madera" - -#. ~ Description for wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A crude wooden shield, lacking any metal or leather reinforcement. " -"Lightweight but not very tough." -msgstr "" -"Es un simple escudo de madera que no tiene ningún refuerzo de metal ni " -"cuero. Es liviano pero no es muy resistente." - -#: lang/json/ARMOR_from_json.py -msgid "large wooden shield" -msgid_plural "large wooden shields" -msgstr[0] "escudo grande de madera" -msgstr[1] "escudos grandes de madera" - -#. ~ Description for large wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"An ancient style of wooden shield, lacking any metal or leather " -"reinforcement. Bulky, but offers a decent amount of protection." -msgstr "" -"Es un escudo de madera de estilo antiguo que no tiene ningún refuerzo de " -"metal ni cuero. Es incómodo pero brinda una cantidad decente de protección." - -#: lang/json/ARMOR_from_json.py -msgid "heater shield" -msgid_plural "heater shields" -msgstr[0] "escudo de plancha" -msgstr[1] "escudos de plancha" - -#. ~ Description for heater shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A medieval style of shield made of wood overlaid with leather, developed " -"from the longer kite shield. Mainly used in tournaments, but still viable " -"in battle." -msgstr "" -"Es un escudo de estilo medieval hecho de madera recubierto de cuero, " -"desarrollado a partir del escudo de lágrima que es un poco más grande. Se lo" -" usaba principalmente en torneos, pero igual es útil en combate. Su nombre " -"se le dio modernamente por su forma parecida al de una plancha." - -#: lang/json/ARMOR_from_json.py -msgid "kite shield" -msgid_plural "kite shields" -msgstr[0] "escudo de lágrima" -msgstr[1] "escudos de lágrima" - -#. ~ Description for kite shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A classic medieval style of shield, made of wood overlaid with leather, in " -"an elongated teardrop shape. Affords decent protection, but was better " -"suited for cavalry." -msgstr "" -"Es un escudo de estilo medieval clásico hecho de madera recubierto de cuero," -" con forma de lágrima estirada. Brinda una protección decente, pero era " -"mejor aprovechado por la caballería." - -#: lang/json/ARMOR_from_json.py -msgid "round shield" -msgid_plural "round shields" -msgstr[0] "escudo circular" -msgstr[1] "escudos circulares" - -#. ~ Description for round shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple round shield made of wood, with a rim and boss of iron. Made " -"infamous by the Vikings." -msgstr "" -"Es un escudo circular común hecho de madera, con borde y bloca de hierro. Su" -" fama se debe a los vikingos." - -#: lang/json/ARMOR_from_json.py -msgid "hoplon" -msgid_plural "hoplons" -msgstr[0] "hoplon" -msgstr[1] "hoplones" - -#. ~ Description for hoplon -#: lang/json/ARMOR_from_json.py -msgid "" -"A convex round shield from ancient Greece, made of wood reinforced with " -"bronze. Heavy but effective." -msgstr "" -"Es un escudo circular convexo de la antigua Grecia, hecho de madera y " -"reforzado con bronce. Es pesado pero eficiente." - -#: lang/json/ARMOR_from_json.py -msgid "scutum" -msgid_plural "scuta" -msgstr[0] "scutum" -msgstr[1] "scuta" - -#. ~ Description for {'str': 'scutum', 'str_pl': 'scuta'} -#: lang/json/ARMOR_from_json.py -msgid "" -"A rectangular shield from ancient Rome, made of wood and iron. Perfect for " -"fighting in formation, but not ideal for facing zombies alone." -msgstr "" -"Es un escudo rectangular de la antigua Roma, hecho de madera e hierro. " -"Perfecto para el combate en formación, pero no muy ideal para enfrentarse " -"con zombis solo." - -#: lang/json/ARMOR_from_json.py -msgid "buckler" -msgid_plural "bucklers" -msgstr[0] "broquel" -msgstr[1] "broqueles" - -#. ~ Description for buckler -#: lang/json/ARMOR_from_json.py -msgid "" -"A small metal shield from the late medieval and renaissance periods. " -"Extremely light and tough, but its small size is as much a hindrance as it " -"is an advantage." -msgstr "" -"Es un pequeño escudo de metal del medioevo tardío y del renacimiento. " -"Extremadamente liviano y resistente, pero el pequeño tamaño es tanto su " -"problema como su ventaja." - -#: lang/json/ARMOR_from_json.py -msgid "hooded hat" -msgid_plural "hooded hats" -msgstr[0] "sombrero con capucha" -msgstr[1] "sombreros con capucha" - -#. ~ Description for hooded hat -#: lang/json/ARMOR_from_json.py -msgid "" -"A proper wide-brimmed hat, modified by the addition of a hood sewn to it, to" -" better protect the neck from wind and rain." -msgstr "" -"Un sombrero formal de ala ancha, con el agregado de una capucha cosida, para" -" proteger mejor el cuello del viento y la lluvia." - #: lang/json/ARMOR_from_json.py msgid "TEST pair of socks" msgid_plural "TEST pairs of socks" @@ -23238,6 +22843,28 @@ msgid_plural "TEST briefcases" msgstr[0] "" msgstr[1] "" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "" + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -23279,8 +22906,8 @@ msgstr[1] "módulos biónicos abstractos" #: lang/json/BIONIC_ITEM_from_json.py msgid "abstract bionic module (npc usable)" msgid_plural "abstract bionic modules (npc usable)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "módulo biónico abstracto (usable por PNJ)" +msgstr[1] "módulos biónicos abstractos (usables por PNJ)" #: lang/json/BIONIC_ITEM_from_json.py msgid "abstract faulty bionic module" @@ -24180,8 +23807,8 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Power Storage CBM Mk. II" msgid_plural "Power Storage CBM Mk. II" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MCB Almacenamiento de energía Mk. II" +msgstr[1] "MCB Almacenamiento de energía Mk. II" #. ~ Description for {'str_sp': 'Power Storage CBM Mk. II'} #: lang/json/BIONIC_ITEM_from_json.py @@ -24487,8 +24114,8 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Joint Servo CBM" msgid_plural "Joint Servo CBMs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MCB Articulaciones Servo" +msgstr[1] "MCB Articulaciones Servo" #. ~ Description for {'str': 'Joint Servo CBM'} #: lang/json/BIONIC_ITEM_from_json.py @@ -24580,6 +24207,9 @@ msgid "" "structure. These artificial enhancers strengthen the knees and elbows, " "allowing the user to carry more weight." msgstr "" +"Es un conjunto de bisagras, resortes y otros aparatos sintéticos para la " +"estructura esquelética. Estas mejoras artificiales fortalecen las rodillas y" +" los codos, lo que le permite al usuario soportar más peso." #: lang/json/BIONIC_ITEM_from_json.py msgid "Kinetic Shock Absorbers CBM" @@ -24646,6 +24276,8 @@ msgid "" "A jumble of broken metal pieces that were removed during reconstructive " "surgery." msgstr "" +"Es una pila de pedazos de metal rotos que fueron sacados durante una cirugía" +" reconstructiva." #: lang/json/BIONIC_ITEM_from_json.py msgid "Acidic Leaking CBM" @@ -24683,6 +24315,8 @@ msgid "" "This CBM was wired incorrectly and would drain power from any system " "connected to it." msgstr "" +"Este MCB está cableado de manera incorrecta y gastará energía de cualquier " +"sistema al que esté conectado." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Itchy Metal Thing" @@ -24733,6 +24367,8 @@ msgid "" "A malfunctioning bionic. When powered, it occasionally emits a loud burst " "of noise." msgstr "" +"Es un biónico que funciona mal. Cuando está activado, emitirá ocasionalmente" +" un ruido muy fuerte." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Bionic Nostril" @@ -24745,6 +24381,8 @@ msgstr[1] "Fosas Nasales Biónicas" msgid "" "This thing was up someone's nose, they're probably glad to be rid of it." msgstr "" +"Esta cosa estaba adentro de la nariz de alguien, que debe estar contento de " +"habérselo sacado." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Bionic Visual Impairment" @@ -24792,6 +24430,8 @@ msgid "" "This malfunctioning bionic causes fatigue by altering the unfortunate user's" " brain chemistry." msgstr "" +"Este biónico defectuoso causa fatiga al alterar la química del desafortunado" +" usuario." #: lang/json/BIONIC_ITEM_from_json.py msgid "Synaptic Regeneration System CBM" @@ -25070,6 +24710,19 @@ msgid "" "suppressing fear." msgstr "" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "" + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -25099,6 +24752,26 @@ msgid "" "the innate energy stored in blood into bionic power. The stronger the blood" " the better. It can hold up to 100 mL of blood." msgstr "" +"Utilizando la última tecnología en tecnomancia, este biónico es capaz de " +"convertir la energía interna almacenada en la sangre en energía biónica. " +"Cuanto más fuerte sea la sangre, mejor. Puede contener hasta 100 ml de " +"sangre." + +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Crystallized Mana Nose Replacement" +msgid_plural "Crystallized Mana Nose Replacements" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Crystallized Mana Nose Replacement'} +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"A large gem made with crystallized mana and some other stabilizing metals. " +"Comes with a specially designed power pack (installed into the skull) that " +"does not interfere with your mana ley lines. WARNING: for Technomancer use " +"only. By using this spell you are waiving all liability of Frikken Laser " +"Beams Inc. and its subsidiaries." +msgstr "" #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" @@ -25162,6 +24835,314 @@ msgstr "" "presentan un caso muy convincente para la adopción de las carcasas " "nucleares. Tiene un sello que dice \"RECHAZADO\"." +#: lang/json/BOOK_from_json.py +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Generic Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a manuscript purporting to be factual" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Generic Fiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a work of fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Generic Hard Bound Fiction Book +#: lang/json/BOOK_from_json.py +msgid "Template for hard bound book of fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#: lang/json/BOOK_from_json.py +msgid "An ordinary paperback book. Or is it? It is." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Book" +msgid_plural "Nonfiction Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for hard bound nonfiction book" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Paperback" +msgid_plural "Nonfiction Paperbacks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Nonfiction Paperback +#: lang/json/BOOK_from_json.py +msgid "template for a paperback nonfiction book" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Homemaking Book" +msgid_plural "Homemaking Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Homemaking Book +#: lang/json/BOOK_from_json.py +msgid "" +"This is a template for books about homemaking, style, home decor, and home " +"economics." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Cookbook" +msgid_plural "Hardcover Cookbooks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Cookbook +#. ~ Description for Softcover Cookbook +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about cooking." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Cookbook" +msgid_plural "Softcover Cookbooks" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "dodge skillbook abstract" +msgid_plural "dodge skillbook abstracts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for dodge skillbook abstract +#: lang/json/BOOK_from_json.py +msgid "An ordinary book. Or is it? It is." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Philosophy +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about philosophy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Softcover Philosophy. +#: lang/json/BOOK_from_json.py +msgid "This is a template for paperbacks about philosophy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. +#: lang/json/BOOK_from_json.py +msgid "This is a template." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "template for mass produced books on esoteric subjects" +msgid_plural "template for mass produced books on esoteric subjectss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for template for mass produced books on esoteric subjects +#: lang/json/BOOK_from_json.py +msgid "" +"An ordinary paperback book. Or is it? Is that a glimmer of higher truth?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Sweet Providence Romance Novel" +msgid_plural "Sweet Providence Romance Novels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Sweet Providence Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is a publisher of discount romance paperbacks easily " +"recognized by their blue and yellow cover illustrations. Despite the adult " +"nature of their subject matter, the books tend to be under 250 pages of " +"large print written in a vocabulary consistent with a 4th grade reading " +"level." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Lorn and Loan Romance Novel" +msgid_plural "Lorn and Loan Romance Novels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Lorn and Loan Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Lorn and Loan Press marketed romance paperbacks to a variety of alt " +"demographics, especially those with a penchant for eyeliner. The books are " +"billed as \"provocative,\" but words like \"malingering\" and \"turgid\" " +"also come to mind." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Vanilla Romance Novel" +msgid_plural "Vanilla Romance Novels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Vanilla Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Vanilla Media is a mainstream publisher providing romantic literature to " +"everyday readers of taste. These stories contain explicit details only in " +"the odd chapters, and invariably end with a conventionally uplifting moral." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Everyman Library" +msgid_plural "The Everyman Librarys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Everyman Library +#: lang/json/BOOK_from_json.py +msgid "" +"The Everyman Library is an imprint of Vanilla Media that publishes stories " +"about private eyes, cowboys, quarterbacks, and mobsters." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Tween Topics" +msgid_plural "Tween Topicss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Tween Topics +#: lang/json/BOOK_from_json.py +msgid "" +"Tween Topics is an imprint of Vanilla Media that publishes stories that " +"appeal to the youth of today. Or, failing that, the parents of said youth." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Quiddity Books" +msgid_plural "Quiddity Bookss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Quiddity Books +#: lang/json/BOOK_from_json.py +msgid "" +"Quiddity publishes books for young adults. They offer stories about self-" +"discovery, personal identity, and contemporary trends." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Satire Template" +msgid_plural "Satire Templates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Satire Template +#: lang/json/BOOK_from_json.py +msgid "template for mass produced satirical fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Magazine Template" +msgid_plural "Magazine Templates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "News Magazine Template" +msgid_plural "News Magazine Templates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for News Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for news magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "readable magazine" +msgid_plural "readable magazines" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/BOOK_from_json.py +msgid "archery skill training abstract" +msgid_plural "archery skill training abstracts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for archery skill training abstract +#: lang/json/BOOK_from_json.py +msgid "template for heavy books that confer archery skill training" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Lessons for the Novice Bowhunter" msgid_plural "copies of Lessons for the Novice Bowhunter" @@ -25179,23 +25160,6 @@ msgstr "" "que el arquero principiante pueda comenzar a cazar con una variedad de arcos" " y ballestas." -#: lang/json/BOOK_from_json.py -msgid "Archery for Kids" -msgid_plural "issues of Archery for Kids" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Archery for Kids', 'str_pl': 'issues of Archery -#. for Kids'} -#: lang/json/BOOK_from_json.py -msgid "" -"Will you be able to place the arrow right into the bullseye? It is not that" -" easy, but once you know how it's done, you will have a lot of fun with " -"archery." -msgstr "" -"¿Serás capaz de clavar la flecha en el medio de la diana? No es fácil, pero " -"una vez que sepas cómo se hace, te vas a divertir mucho con la arquería." - #: lang/json/BOOK_from_json.py msgid "Zen and the Art of Archery" msgid_plural "copies of Zen and the Art of Archery" @@ -25211,6 +25175,23 @@ msgid "" msgstr "" "Este enorme libro contiene mucha información vital para el arquero novato." +#: lang/json/BOOK_from_json.py +msgid "Archery for Kids" +msgid_plural "issues of Archery for Kids" +msgstr[0] "Arquería para Niños" +msgstr[1] "fascículos de Arquería para Niños" + +#. ~ Description for {'str': 'Archery for Kids', 'str_pl': 'issues of Archery +#. for Kids'} +#: lang/json/BOOK_from_json.py +msgid "" +"Will you be able to place the arrow right into the bullseye? It is not that" +" easy, but once you know how it's done, you will have a lot of fun with " +"archery." +msgstr "" +"¿Serás capaz de clavar la flecha en el medio de la diana? No es fácil, pero " +"una vez que sepas cómo se hace, te vas a divertir mucho con la arquería." + #: lang/json/BOOK_from_json.py msgid "car buyer's guide" msgid_plural "car buyer's guides" @@ -25285,89 +25266,6 @@ msgstr "" "Escrito para el mercado militar y policial, está lleno de información " "comprobada y escrita para que lo pueda comprender un principiante." -#: lang/json/BOOK_from_json.py -msgid "SICP" -msgid_plural "copies of SICP" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} -#: lang/json/BOOK_from_json.py -msgid "" -"A classic text, \"The Structure and Interpretation of Computer Programs.\" " -"Written with examples in LISP, but applicable to any language." -msgstr "" -"Un texto clásico, \"Estructura e Interpretación de los Programas de " -"Computación\". Escrito con ejemplos en LISP pero aplicable a cualquier " -"lenguaje." - -#: lang/json/BOOK_from_json.py -msgid "Computer Science 301" -msgid_plural "copies of Computer Science 301" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of -#. Computer Science 301'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on computer science." -msgstr "Un texto escolar sobre las ciencias de la computación." - -#: lang/json/BOOK_from_json.py -msgid "How to Browse the Web" -msgid_plural "copies of How to Browse the Web" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How -#. to Browse the Web'} -#: lang/json/BOOK_from_json.py -msgid "Very beginner-level information about computers." -msgstr "Información sobre computadoras para principiantes." - -#: lang/json/BOOK_from_json.py -msgid "Computer World" -msgid_plural "issues of Computer World" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer -#. World'} -#: lang/json/BOOK_from_json.py -msgid "" -"An informative magazine all about computers, both hardware and software." -msgstr "" -"Una revista informativa acerca de las computadoras, tanto hardware como " -"software." - -#: lang/json/BOOK_from_json.py -msgid "Computer Science 101" -msgid_plural "copies of Computer Science 101" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of -#. Computer Science 101'} -#: lang/json/BOOK_from_json.py -msgid "An entry-level textbook about computers." -msgstr "Un libro de texto sobre computadoras de nivel básico." - -#: lang/json/BOOK_from_json.py -msgid "Principles of Advanced Programming" -msgid_plural "copies of Principles of Advanced Programming" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': -#. 'copies of Principles of Advanced Programming'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy textbook dedicated to advanced-level software design, written for " -"several different programming languages." -msgstr "" -"Un libro pesado dedicado al diseño de software de nivel avanzado, escrito " -"para diferentes lenguajes de programación." - #: lang/json/BOOK_from_json.py msgid "Advanced Physical Chemistry" msgid_plural "copies of Advanced Physical Chemistry" @@ -25378,140 +25276,10 @@ msgstr[1] "" #. of Advanced Physical Chemistry'} #: lang/json/BOOK_from_json.py msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." +"A university-level textbook on advanced principles of physical chemistry and" +" all its branches: thermochemistry, electrochemistry, solid-state chemistry," +" photochemistry, quantum chemistry et cetera." msgstr "" -"Un texto universitario sobre los principios avanzados de química, tanto " -"orgánica como inorgánica." - -#: lang/json/BOOK_from_json.py -msgid "The Homebrewer's Bible" -msgid_plural "copies of The Homebrewer's Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of -#. The Homebrewer's Bible"} -#: lang/json/BOOK_from_json.py -msgid "" -"A book full of easy-to-follow recipes and useful advice on homebrewing, " -"malting, and fermenting. It even smells faintly of booze." -msgstr "" -"Un libro lleno de recetas fáciles de hacer y consejos útiles sobre hacer " -"cerveza en casa, transformar en malta y la fermentación. Incluso tiene un " -"olorcito a alcohol." - -#: lang/json/BOOK_from_json.py -msgid "Cooking on a Budget" -msgid_plural "copies of Cooking on a Budget" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of -#. Cooking on a Budget'} -#: lang/json/BOOK_from_json.py -msgid "" -"A nice cook book that goes beyond recipes and into the chemistry of food." -msgstr "" -"Un lindo libro de cocina que va más allá de las recetas, cubre también la " -"química de la comida." - -#: lang/json/BOOK_from_json.py -msgid "To Serve Man" -msgid_plural "copies of To Serve Man" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve -#. Man'} -#: lang/json/BOOK_from_json.py -msgid "It's… it's a cookbook!" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Cucina Italiana" -msgid_plural "copies of Cucina Italiana" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina -#. Italiana'} -#: lang/json/BOOK_from_json.py -msgid "" -"This cookbook is written in Italian, but handily illustrated with step by " -"step photo instructions." -msgstr "" -"Este libro de recetas está escrito en italiano, pero convenientemente " -"ilustrado con fotografías paso por paso." - -#: lang/json/BOOK_from_json.py -msgid "Sushi Made Easy" -msgid_plural "copies of Sushi Made Easy" -msgstr[0] "Sushi con Facilidad" -msgstr[1] "copias de Sushi con Facilidad" - -#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi -#. Made Easy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A simple text for the aspiring sushi lover, this easy to read guide is " -"filled with lots of helpful illustrations for everything from basic rice " -"preparation to setting a proper Japanese table." -msgstr "" -"Un texto simple para el amante del sushi. Esta guía fácil de leer está llena" -" con ilustraciones para todo, desde la preparación básica del arroz hasta " -"cómo poner adecuadamente la mesa a la japonesa." - -#: lang/json/BOOK_from_json.py -msgid "family cookbook" -msgid_plural "family cookbooks" -msgstr[0] "libro de recetas familiares" -msgstr[1] "libros de recetas familiares" - -#. ~ Description for {'str': 'family cookbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A big binder full of somebody's family recipes. The well-turned pages and " -"creased corners speak volumes of the culinary knowledge contained within. " -"You could probably learn a lot about cooking from studying this domestic " -"artifact." -msgstr "" -"Una gran carpeta llena de recetas de alguna familia. Las elegantes páginas y" -" esquinas arrugadas nos da una idea de la cantidad de conocimiento culinario" -" que contiene. Probablemente, puedas aprender mucho sobre cocina estudiando " -"este libro casero." - -#: lang/json/BOOK_from_json.py -msgid "Bon Appetit" -msgid_plural "issues of Bon Appetit" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} -#: lang/json/BOOK_from_json.py -msgid "" -"Exciting recipes and restaurant reviews. Full of handy tips about cooking." -msgstr "" -"Libro con recetas apasionantes y reseñas de restaurantes. Lleno de consejos " -"útiles para cocinar." - -#: lang/json/BOOK_from_json.py -msgid "Glamopolitan" -msgid_plural "issues of Glamopolitan" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of -#. Glamopolitan'} -#: lang/json/BOOK_from_json.py -msgid "" -"This is a full-size glossy women's magazine. There are a few unoriginal " -"recipes and some simple cooking tips somewhere in between the fashion photos" -" and the sex advice columns." -msgstr "" -"Es una revista brillosa para mujeres. Tiene algunas recetas poco originales " -"y simples consejos de cocina entre las fotos de moda y las columnas sobre " -"sexo." #: lang/json/BOOK_from_json.py msgid "The Modern Tanner" @@ -25714,6 +25482,281 @@ msgid "" "and physical data is your thing, this is the book for you." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" +msgstr[0] "libro de texto de química" +msgstr[1] "libros de texto de química" + +#. ~ Description for {'str': 'chemistry textbook'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on chemistry." +msgstr "Un libro escolar sobre química." + +#: lang/json/BOOK_from_json.py +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', +#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': +#. 'copies of Art and Science of Chemical Warfare'} +#: lang/json/BOOK_from_json.py +msgid "" +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at" +" times, though the information is top-notch." +msgstr "" +"Este texto técnico y detallado, explica el diseño, desarrollo, diseminación " +"y defensas contra varias armas químicas a lo largo de los siglos. Las " +"fotografías que el autor seleccionó lo hacen un poco difícil de leer, aunque" +" la información es de lo mejor." + +#: lang/json/BOOK_from_json.py +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments +#. that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science +#. Experiments that Really Work'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book with comprehensive and accurate step-by-step illustrated instructions" +" for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "SICP" +msgid_plural "copies of SICP" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#: lang/json/BOOK_from_json.py +msgid "" +"A classic text, \"The Structure and Interpretation of Computer Programs.\" " +"Written with examples in LISP, but applicable to any language." +msgstr "" +"Un texto clásico, \"Estructura e Interpretación de los Programas de " +"Computación\". Escrito con ejemplos en LISP pero aplicable a cualquier " +"lenguaje." + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 301" +msgid_plural "copies of Computer Science 301" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of +#. Computer Science 301'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on computer science." +msgstr "Un texto escolar sobre las ciencias de la computación." + +#: lang/json/BOOK_from_json.py +msgid "How to Browse the Web" +msgid_plural "copies of How to Browse the Web" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How +#. to Browse the Web'} +#: lang/json/BOOK_from_json.py +msgid "Very beginner-level information about computers." +msgstr "Información sobre computadoras para principiantes." + +#: lang/json/BOOK_from_json.py +msgid "Computer World" +msgid_plural "issues of Computer World" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer +#. World'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative magazine all about computers, both hardware and software." +msgstr "" +"Una revista informativa acerca de las computadoras, tanto hardware como " +"software." + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 101" +msgid_plural "copies of Computer Science 101" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of +#. Computer Science 101'} +#: lang/json/BOOK_from_json.py +msgid "An entry-level textbook about computers." +msgstr "Un libro de texto sobre computadoras de nivel básico." + +#: lang/json/BOOK_from_json.py +msgid "Principles of Advanced Programming" +msgid_plural "copies of Principles of Advanced Programming" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': +#. 'copies of Principles of Advanced Programming'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy textbook dedicated to advanced-level software design, written for " +"several different programming languages." +msgstr "" +"Un libro pesado dedicado al diseño de software de nivel avanzado, escrito " +"para diferentes lenguajes de programación." + +#: lang/json/BOOK_from_json.py +msgid "The Homebrewer's Bible" +msgid_plural "copies of The Homebrewer's Bible" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of +#. The Homebrewer's Bible"} +#: lang/json/BOOK_from_json.py +msgid "" +"A book full of easy-to-follow recipes and useful advice on homebrewing, " +"malting, and fermenting. It even smells faintly of booze." +msgstr "" +"Un libro lleno de recetas fáciles de hacer y consejos útiles sobre hacer " +"cerveza en casa, transformar en malta y la fermentación. Incluso tiene un " +"olorcito a alcohol." + +#: lang/json/BOOK_from_json.py +msgid "Cooking on a Budget" +msgid_plural "copies of Cooking on a Budget" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of +#. Cooking on a Budget'} +#: lang/json/BOOK_from_json.py +msgid "" +"A nice cook book that goes beyond recipes and into the chemistry of food." +msgstr "" +"Un lindo libro de cocina que va más allá de las recetas, cubre también la " +"química de la comida." + +#: lang/json/BOOK_from_json.py +msgid "To Serve Man" +msgid_plural "copies of To Serve Man" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve +#. Man'} +#: lang/json/BOOK_from_json.py +msgid "It's… it's a cookbook!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cucina Italiana" +msgid_plural "copies of Cucina Italiana" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina +#. Italiana'} +#: lang/json/BOOK_from_json.py +msgid "" +"This cookbook is written in Italian, but handily illustrated with step by " +"step photo instructions." +msgstr "" +"Este libro de recetas está escrito en italiano, pero convenientemente " +"ilustrado con fotografías paso por paso." + +#: lang/json/BOOK_from_json.py +msgid "Sushi Made Easy" +msgid_plural "copies of Sushi Made Easy" +msgstr[0] "Sushi con Facilidad" +msgstr[1] "copias de Sushi con Facilidad" + +#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi +#. Made Easy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A simple text for the aspiring sushi lover, this easy to read guide is " +"filled with lots of helpful illustrations for everything from basic rice " +"preparation to setting a proper Japanese table." +msgstr "" +"Un texto simple para el amante del sushi. Esta guía fácil de leer está llena" +" con ilustraciones para todo, desde la preparación básica del arroz hasta " +"cómo poner adecuadamente la mesa a la japonesa." + +#: lang/json/BOOK_from_json.py +msgid "family cookbook" +msgid_plural "family cookbooks" +msgstr[0] "libro de recetas familiares" +msgstr[1] "libros de recetas familiares" + +#. ~ Description for {'str': 'family cookbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A big binder full of somebody's family recipes. The well-turned pages and " +"creased corners speak volumes of the culinary knowledge contained within. " +"You could probably learn a lot about cooking from studying this domestic " +"artifact." +msgstr "" +"Una gran carpeta llena de recetas de alguna familia. Las elegantes páginas y" +" esquinas arrugadas nos da una idea de la cantidad de conocimiento culinario" +" que contiene. Probablemente, puedas aprender mucho sobre cocina estudiando " +"este libro casero." + +#: lang/json/BOOK_from_json.py +msgid "Bon Appetit" +msgid_plural "issues of Bon Appetit" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#: lang/json/BOOK_from_json.py +msgid "" +"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +msgstr "" +"Libro con recetas apasionantes y reseñas de restaurantes. Lleno de consejos " +"útiles para cocinar." + +#: lang/json/BOOK_from_json.py +msgid "Glamopolitan" +msgid_plural "issues of Glamopolitan" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of +#. Glamopolitan'} +#: lang/json/BOOK_from_json.py +msgid "" +"This is a full-size glossy women's magazine. There are a few unoriginal " +"recipes and some simple cooking tips somewhere in between the fashion photos" +" and the sex advice columns." +msgstr "" +"Es una revista brillosa para mujeres. Tiene algunas recetas poco originales " +"y simples consejos de cocina entre las fotos de moda y las columnas sobre " +"sexo." + #. ~ That would translate out to The Scottish Book of Cookery, or The Scottish #. Cookbook. #: lang/json/BOOK_from_json.py @@ -25727,28 +25770,11 @@ msgstr[1] "copias de Ye Scots Beuk o Cuikery" #. 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of" +" people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." msgstr "" -"Un libro de recetas a medio traducir, de la Escocia del siglo XIII. Aunque " -"es un poco difícil de leer, porque tiene un alarmante número de " -"ilustraciones de gente apuñalando a otra mezcladas con las recetas. Nos deja" -" conocer la cultura y la moda medieval escocesa tanto como los nuevos usos " -"para la avena, el pescado y el hígado de oveja." - -#: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" -msgstr[0] "libro de texto de química" -msgstr[1] "libros de texto de química" - -#. ~ Description for {'str': 'chemistry textbook'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." -msgstr "Un libro escolar sobre química." #: lang/json/BOOK_from_json.py msgid "The Vinegar Maker's Handbook" @@ -25764,6 +25790,9 @@ msgid "" "would have thought that there wasn't much to making vinegar, but the girth " "of this book tells you otherwise." msgstr "" +"Este libro describe en detalle todas las maneras en que se puede hacer " +"vinagre. Seguro pensaste que no había mucha información sobre hacer vinagre," +" pero el ancho de este libro te dice lo contrario." #: lang/json/BOOK_from_json.py msgid "Drink the Harvest" @@ -25805,6 +25834,8 @@ msgstr[1] "" msgid "" "Whatever you want to do with milk, you will probably find it in this book." msgstr "" +"Sea lo que quieras hacer con leche, probablemente lo encuentres en este " +"libro." #: lang/json/BOOK_from_json.py msgid "Liver-Licious Recipes Your Kids Will Love" @@ -25939,17 +25970,17 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to -#. home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " -"chapter contains a complete recipe for it's namesake." +"chapter contains a complete recipe for its namesake." msgstr "" #: lang/json/BOOK_from_json.py @@ -25978,7 +26009,7 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "" "The smallest cookbook on the market, marketed exclusively to the " -"outdoorsman. Packs a surprising number of recipes for it's tiny size." +"outdoorsman. Packs a surprising number of recipes for its tiny size." msgstr "" #: lang/json/BOOK_from_json.py @@ -26055,8 +26086,8 @@ msgstr "Aprendé los movimientos de los bailes de moda." #: lang/json/BOOK_from_json.py msgid "The Book of Dances" msgid_plural "copies of The Book of Dances" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El Libro de las Danzas" +msgstr[1] "copias de El Libro de las Danzas" #. ~ Description for {'str': 'The Book of Dances', 'str_pl': 'copies of The #. Book of Dances'} @@ -26082,6 +26113,21 @@ msgstr[1] "" msgid "The Kids' Guide to Acting and Stagecraft." msgstr "Es la Guía de Actuación y Arte Teatral para Niños." +#: lang/json/BOOK_from_json.py +msgid "Treasury of Legends about Western Dancing" +msgid_plural "copies of Western Dancing" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Treasury of Legends about Western Dancing', +#. 'str_pl': 'copies of Western Dancing'} +#: lang/json/BOOK_from_json.py +msgid "" +"Written by Emanuel Nogueira, a constabulario and historian of Nuevo Laredo, " +"this massive book details the movements and cultural legacies of a variety " +"of North American folk dances." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "AAA Guide" msgid_plural "copies of AAA Guide" @@ -26217,8 +26263,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Augmentative Tech Review" msgid_plural "issues of Augmentative Tech Review" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Reseña de Mejoramiento Técnico" +msgstr[1] "fascículos de Reseña de Mejoramiento Técnico" #. ~ Description for {'str': 'Augmentative Tech Review', 'str_pl': 'issues of #. Augmentative Tech Review'} @@ -26316,8 +26362,8 @@ msgstr "Un libro raro sobre diseño de robots, con muchas guías paso a paso." #: lang/json/BOOK_from_json.py msgid "schematics" msgid_plural "schematics" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "esquema" +msgstr[1] "esquemas" #. ~ Description for {'str_sp': 'schematics'} #. ~ Description for {'str': 'animal', 'str_pl': 'none'} @@ -26613,8 +26659,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "The Fletcher's Friend" msgid_plural "copies of The Fletcher's Friend" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "El Amigo del Flechero" +msgstr[1] "copias de El Amigo del Flechero" #. ~ Description for {'str': "The Fletcher's Friend", 'str_pl': "copies of The #. Fletcher's Friend"} @@ -26778,8 +26824,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "DIY Compendium" msgid_plural "copies of DIY Compendium" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Compendio Hágalo Usted Mismo" +msgstr[1] "copias de Compendio Hágalo Usted Mismo" #. ~ Description for {'str': 'DIY Compendium', 'str_pl': 'copies of DIY #. Compendium'} @@ -26809,31 +26855,11 @@ msgstr "" "los tiempos antiguos hasta la era moderna, centrándose en la tecnología " "utilizada para salvar vidas." -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': -#. 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at" -" times, though the information is top-notch." -msgstr "" -"Este texto técnico y detallado, explica el diseño, desarrollo, diseminación " -"y defensas contra varias armas químicas a lo largo de los siglos. Las " -"fotografías que el autor seleccionó lo hacen un poco difícil de leer, aunque" -" la información es de lo mejor." - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Las Espadas del Samurai" +msgstr[1] "copias de Las Espadas del Samurai" #. ~ Description for {'str': 'The Swords of the Samurai', 'str_pl': 'copies of #. The Swords of the Samurai'} @@ -26850,8 +26876,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "The Historic Weaponsmith" msgid_plural "copies of The Historic Weaponsmith" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Fabricación Histórica de Armas" +msgstr[1] "copias de Fabricación Histórica de Armas" #. ~ Description for {'str': 'The Historic Weaponsmith', 'str_pl': 'copies of #. The Historic Weaponsmith'} @@ -26927,8 +26953,8 @@ msgstr "Un periódico fascinante acerca de pajareras y cómo construirlas." #: lang/json/BOOK_from_json.py msgid "Building for Beginners" msgid_plural "copies of Building for Beginners" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Construcción para Principiantes" +msgstr[1] "copias de Construcción para Principiantes" #. ~ Description for {'str': 'Building for Beginners', 'str_pl': 'copies of #. Building for Beginners'} @@ -26969,21 +26995,6 @@ msgid "" "machining operation, the answer lies somewhere in these pages." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', -#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -27041,8 +27052,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Pocket Guide to First Aid" msgid_plural "copies of Pocket Guide to First Aid" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Guía de Bolsillo de Primeros Auxilios" +msgstr[1] "copias de Guía de Bolsillo de Primeros Auxilios" #. ~ Description for {'str': 'Pocket Guide to First Aid', 'str_pl': 'copies of #. Pocket Guide to First Aid'} @@ -27250,8 +27261,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Popular Mechanics" msgid_plural "issues of Popular Mechanics" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mecánica Popular" +msgstr[1] "fascículos de Mecánica Popular" #. ~ Description for {'str': 'Popular Mechanics', 'str_pl': 'issues of Popular #. Mechanics'} @@ -27290,6 +27301,10 @@ msgid "" "ready to start a second Cataclysm, but the general information provided " "might be useful…" msgstr "" +"Este cuaderno de notas de laboratorio está lleno con descubrimientos " +"colectivos y perfeccionamientos del equipo de investigación dedicado a la " +"energía nuclear. No te parece que estés preparado para hacer un segundo " +"Cataclismo, pero la información general que tiene puede ser útil..." #: lang/json/BOOK_from_json.py msgid "Biodiesel: Renewable Fuel Resource" @@ -27303,6 +27318,20 @@ msgstr[1] "" msgid "A large textbook for college students about biodiesel." msgstr "Es un manual para estudiantes acerca del biodiésel." +#: lang/json/BOOK_from_json.py +msgid "Hot Rod Chassis & Suspension Handbook" +msgid_plural "copies of Hot Rod Handbook" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Hot Rod Chassis & Suspension Handbook', +#. 'str_pl': 'copies of Hot Rod Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"By learning the fundamentals of chassis building and suspension design you " +"will gain the critical knowledge needed to hot rod properly." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" msgid_plural "copies of Mechanical Mastery" @@ -27350,17 +27379,6 @@ msgstr "" "Un libro de tapa dura muy manoseado que ilustra simples estrategias y " "técnicas de combate en espacios cerrados." -#: lang/json/BOOK_from_json.py -msgid "paperback abstract" -msgid_plural "paperback abstracts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'paperback abstract'} -#: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" msgid_plural "copies of Zombie Survival Guide" @@ -27391,23 +27409,6 @@ msgstr "" "El registro de todo un vuelo de un avión militar. No encuentras nada de " "interés." -#: lang/json/BOOK_from_json.py -msgid "children's book" -msgid_plural "children's books" -msgstr[0] "libro infantil" -msgstr[1] "libros infantiles" - -#. ~ Description for {'str': "children's book"} -#: lang/json/BOOK_from_json.py -msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the dead walked" -" and the world moved on." -msgstr "" -"Es un pequeño libro para pequeños lectores. Los personajes coloridos y las " -"dulces historias que contiene dentro pertenecen a otro tiempo diferente, " -"antes de que los muertos caminen y el mundo continuó girando." - #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" msgid_plural "Ranch Prospectus" @@ -27447,160 +27448,6 @@ msgstr "" "Una colección de ensayos de diversos autores de todo el mundo, incluyendo " "trabajos de Churchill, Mailer, Eco y Voltaire." -#: lang/json/BOOK_from_json.py -msgid "book of fairy tales" -msgid_plural "books of fairy tales" -msgstr[0] "libro de cuentos de hadas" -msgstr[1] "libros de cuentos de hadas" - -#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy -#. tales'} -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of folklore featuring the usual cast of fairies, " -"goblins, and trolls." -msgstr "" -"Una divertida colección de cuentos tradicionales, con la participación de " -"los protagonistas habituales como hadas, goblins y trolls." - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale is about a wolf who eats so much salted meat she becomes " -"trapped in the butcher's cellar." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this traditional story of beastly intrigue a clever fox convinces an " -"elderly lion to kill a derogatory wolf." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is an illustrated fairy tale book about a conversation between a mouse " -"and a cat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of stories featuring \"Goldilocks and The Three " -"Bears\" on the cover." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a well illustrated fairy tale about a war between the birds and the " -"beasts, with particulars on the wartime conduct and eventual fate of the " -"bat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " -"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" -" page." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale book is entitled \"Little Red Cap\". It details a red-" -"cloaked child's various encounters with talking wolves." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of ghost stories warning about the dangers of stealing from the" -" dead." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"An Irish fairy tale in which a Celtic poet marries a princess who has been " -"cursed with the head of a pig." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A book of Italian fairy tales translated into English. The cover features " -"an orange fairy juggling a lemon, a lime, and a tangerine." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "A book of fables about people who change into birds." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This compendium of amusing folk tales about the devil is titled \"Hell's " -"Kettle: Legends of the Devil.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This charming book of Swedish fables is titled, \"The Glass Mountain and the" -" Princess.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a collection of fairy tale stories warning against the consequences " -"of extreme greed." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a book of legends collected by Traveller Johnny Cassidy in the " -"1960s." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of fables expands upon the legend of the Seven Sleepers of " -"Ephesus." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this fairy tale a strong man frightens an ogre by squeezing water out of " -"a stone." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of rustic folk tales bears the title: \"How to Shout Down the " -"Devil.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " -"fables about logical errors and foolish misjudgements of the Kadambawa men." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " -"Stories.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " -"suitable for small children." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" msgid_plural "copies of The Hitchhiker's Guide to the Cataclysm" @@ -27617,315 +27464,6 @@ msgstr "" "Escrito en la tapa, bien grande con letras amistosas, está escrito el " "mensaje \"Que no cunda el pánico\"." -#: lang/json/BOOK_from_json.py -msgid "Mycenacean Hymns" -msgid_plural "copies of Mycenacean Hymns" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of -#. Mycenacean Hymns'} -#: lang/json/BOOK_from_json.py -msgid "" -"A vellum book containing the hymns central to Marloss faith. As the verses " -"lead to each other, the text sings of unity and promised paradise." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "King James Bible" -msgid_plural "copies of King James Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King -#. James Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, which originated in England " -"in the early 1600s." -msgstr "" -"Una traducción al español de la Biblia Cristiana, que fue originada en " -"Inglaterra a principios del siglo XVII." - -#: lang/json/BOOK_from_json.py -msgid "Eastern Orthodox Bible" -msgid_plural "copies of Eastern Orthodox Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of -#. Eastern Orthodox Bible'} -#: lang/json/BOOK_from_json.py -msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." -msgstr "" -"Una copia en español de la versión Ortodoxa de Oriente de la Santa Biblia." - -#: lang/json/BOOK_from_json.py -msgid "Gideon Bible" -msgid_plural "copies of Gideon Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon -#. Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, distributed free of charge by" -" Gideons International." -msgstr "" -"Una copia en español de la Biblia Cristiana, distribuida gratuitamente por " -"los Gedeones Internacionales." - -#: lang/json/BOOK_from_json.py -msgid "The Guru Granth Sahib" -msgid_plural "copies of The Guru Granth Sahib" -msgstr[0] "El Gurú Granth Sahib" -msgstr[1] "copias de El Gurú Granth Sahib" - -#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The -#. Guru Granth Sahib'} -#: lang/json/BOOK_from_json.py -msgid "A single-volume copy of the central religious texts of Sikhism." -msgstr "Una copia de un solo volumen del texto religioso central del Sijismo." - -#: lang/json/BOOK_from_json.py -msgid "Hadith" -msgid_plural "copies of Hadith" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} -#: lang/json/BOOK_from_json.py -msgid "" -"A Muslim religious text containing an account of the sayings and actions of " -"the prophet Muhammad." -msgstr "" -"Un texto religioso musulmán, que contiene un recuento de las palabras y las " -"acciones del profeta Muhammad." - -#: lang/json/BOOK_from_json.py -msgid "Principia Discordia" -msgid_plural "copies of Principia Discordia" -msgstr[0] "Principia Discordia" -msgstr[1] "copias del Principia Discordia" - -#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of -#. Principia Discordia'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of Discordianism. It seems to " -"primarily concern chaos, and features a card in the back which informs you " -"that you are now a 'genuine and authorized Pope of Discordia'." -msgstr "" -"Un libro que personifica las creencias principales del Discordianismo. " -"Parece concernir primeramente al caos, e incluye una carta en la parte de " -"atrás que te informa que ya eres un 'genuino y autorizado Papa de la " -"Discordia'." - -#: lang/json/BOOK_from_json.py -msgid "The Kojiki" -msgid_plural "copies of The Kojiki" -msgstr[0] "Kojiki" -msgstr[1] "copias del Kojiki" - -#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} -#: lang/json/BOOK_from_json.py -msgid "" -"The oldest extant chronicle of Japan's myths and history, the stories " -"contained in the Kojiki are part of the inspiration behind Shinto practices." -msgstr "" -"Es la crónica más antigua existente de la historia y los mitos japoneses. " -"Las historias que contiene el Kojiki son parte de la inspiración detrás de " -"las prácticas del Sintoísmo." - -#: lang/json/BOOK_from_json.py -msgid "The Book of Mormon" -msgid_plural "copies of The Book of Mormon" -msgstr[0] "El libro del Mormón" -msgstr[1] "copias de El libro del Mormón" - -#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The -#. Book of Mormon'} -#: lang/json/BOOK_from_json.py -msgid "" -"The sacred text of the Latter Day Saint movement of Christianity, originally" -" published in 1830 by Joseph Smith." -msgstr "" -"El texto sagrado del Movimiento de los Santos de los Últimos Días del " -"Cristianismo, originalmente publicado en 1830 por Joseph Smith." - -#: lang/json/BOOK_from_json.py -msgid "The Gospel of the Flying Spaghetti Monster" -msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" -msgstr[0] "El Evangelio del Monstruo del Espagueti Volador" -msgstr[1] "copias de El Evangelio del Monstruo del Espagueti Volador" - -#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', -#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of the Church of the Flying Spaghetti " -"Monster. It seems to involve a lot of pirates and some sort of invisible " -"drunken monster made of pasta." -msgstr "" -"Un libro que personifica las principales creencias de la Iglesia del " -"Monstruo del Espagueti Volador. Parece implicar muchos piratas y alguna " -"clase de monstruo borracho invisible hecho con pasta." - -#: lang/json/BOOK_from_json.py -msgid "Quran" -msgid_plural "copies of Quran" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Muslim book of holy scriptures, with " -"explanatory notes and commentaries to aid in understanding." -msgstr "" -"Un traducción al español del libro musulmán de las santas escrituras, con " -"notas explicativas y comentarios para facilitar su comprensión." - -#: lang/json/BOOK_from_json.py -msgid "Dianetics" -msgid_plural "copies of Dianetics" -msgstr[0] "Dianética" -msgstr[1] "copias de Dianética" - -#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is the canonical text of Scientology. Written by a science " -"fiction author, it contains self-improvement techniques and musings on " -"psychology called Dianetics." -msgstr "" -"Este libro es el texto canónico de la Cienciología. Escrito por un autor de " -"ciencia ficción, contiene técnicas de auto-mejoramiento y reflexiones sobre " -"psicología llamadas Diánetica." - -#: lang/json/BOOK_from_json.py -msgid "The Book of the SubGenius" -msgid_plural "copies of The Book of the SubGenius" -msgstr[0] "El Libro de los Subgenios" -msgstr[1] "copias de El Libro de los Subgenios" - -#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of -#. The Book of the SubGenius'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book about the Church of the SubGenius. It seems to involve a salesman " -"named J. R. \"Bob\" Dobbs and a concept called 'slack'." -msgstr "" -"Un libro sobre la Iglesia de los Subgenios. Parece que implica un vendedor " -"llamado J. R. \"Bob\" Dobbs y un concepto denominado 'slack'." - -#: lang/json/BOOK_from_json.py -msgid "The Sutras of the Buddha" -msgid_plural "copies of The Sutras of the Buddha" -msgstr[0] "Los Sutras de Buda" -msgstr[1] "copias de Los Sutras de Buda" - -#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of -#. The Sutras of the Buddha'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of discourses attributed to the Buddha and his close disciples." -msgstr "" -"Una colección de los discursos atribuidos a Buda y sus discípulos cercanos." - -#: lang/json/BOOK_from_json.py -msgid "Talmud" -msgid_plural "copies of Talmud" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of Talmud'} -#: lang/json/BOOK_from_json.py -msgid "" -"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " -"Hebrew Bible with teachings and opinions of thousands of rabbis." -msgstr "" -"Uno de los textos centrales del Judaísmo Rabínico, el Talmud explica en " -"profundidad la Biblia Hebrea con enseñanzas y opiniones de cientos de " -"rabinos." - -#: lang/json/BOOK_from_json.py -msgid "Tanakh" -msgid_plural "copies of Tanakh" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single-volume book containing the complete canon of the Jewish Bible." -msgstr "" -"Un libro de un solo volumen que contiene el canon completo de la Biblia " -"Judía." - -#: lang/json/BOOK_from_json.py -msgid "The Tripitaka" -msgid_plural "copies of The Tripitaka" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The -#. Tripitaka'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Buddhist writings describing their canons of " -"scriptures." -msgstr "" -"Una colección de textos sagrados Budistas, que describen los cánones de las " -"escrituras." - -#: lang/json/BOOK_from_json.py -msgid "The Upanishads" -msgid_plural "copies of The Upanishads" -msgstr[0] "Los Upanishad" -msgstr[1] "copias de los Upanishad" - -#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The -#. Upanishads'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Hindu writings regarding the nature of reality and " -"describing the character and form of human salvation." -msgstr "" -"Una colección de textos sagrados Hindúes, acerca de la naturaleza de la " -"realidad, y describiendo la forma y el carácter de la salvación humana." - -#: lang/json/BOOK_from_json.py -msgid "The Four Vedas" -msgid_plural "copies of The Four Vedas" -msgstr[0] "Los Cuatro Vedas" -msgstr[1] "copias de los Cuatro Vedas" - -#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four -#. Vedas'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single volume containing all four Vedas, which are the oldest scriptures " -"of Hinduism." -msgstr "" -"Un volumen que contiene los cuatro Vedas, que son las escrituras más " -"antiguas del Hinduismo." - -#: lang/json/BOOK_from_json.py -msgid "The Satanic Bible" -msgid_plural "copies of The Satanic Bible" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The -#. Satanic Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of essays, observations, and rituals published by Anton LaVey " -"in 1969." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "comic book" msgid_plural "comic books" @@ -27965,6 +27503,19 @@ msgstr "" "Eventos actuales acerca de un montón de gente que ahora son cadáveres o " "zombis." +#: lang/json/BOOK_from_json.py +msgid "The Analyst" +msgid_plural "issues of The Analyst" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Analyst', 'str_pl': 'issues of The Analyst'} +#: lang/json/BOOK_from_json.py +msgid "" +"This news magazine has been described as \"a kind of Reader's Digest for " +"America's corporate elite.\" These concerns are, of course, behind us now." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Playboy" msgid_plural "issues of Playboy" @@ -28102,6 +27653,22 @@ msgid "" "the underworld is eroded by rumor and paranoia." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "Midnight Cop" +msgid_plural "copies of Midnight Cop" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Midnight Cop', 'str_pl': 'copies of Midnight +#. Cop'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this bare-knuckled potboiler, a ruthless police detective schemes to shut" +" down local crime lords by pitting them against each other. When long-" +"simmering resentments finally flare the city learns why they call it \"the " +"dead of night.\"" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "drama novel" msgid_plural "drama novels" @@ -28188,6 +27755,63 @@ msgid "" msgstr "" "Un historia dura de detectives, llena de acción contundente e intriga." +#: lang/json/BOOK_from_json.py +msgid "Planet of the Murderous Squids that Time Forgot!" +msgid_plural "Planet of the Murderous Squids that Time Forgot!s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Planet of the Murderous Squids that Time Forgot! +#: lang/json/BOOK_from_json.py +msgid "" +"In this psychedelic adventure novel of cosmic exploration, an elderly " +"assassin discovers a planet too good to be true. Only once it is too late " +"does she discover the harrowing truth at the center of \"The Planet of the " +"Murderous Squids that Time Forgot!\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Great Capes of Metropolis" +msgid_plural "The Great Capes of Metropoliss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Great Capes of Metropolis +#: lang/json/BOOK_from_json.py +msgid "" +"In this classic pulp paperback of superheroic exploits, a group of masked " +"vigilantes with diverse superpowers learn to work together to defeat the " +"ultimate villain." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Yesterday's Murdered" +msgid_plural "Yesterday's Murdereds" +msgstr[0] "Asesinatos de Ayer" +msgstr[1] "Asesinatos de Ayer" + +#. ~ Description for Yesterday's Murdered +#: lang/json/BOOK_from_json.py +msgid "" +"In this fast paced pulp noir, a hard-drinking detective with nerves of steel" +" has one last shot at vengeance." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Flashgun Condor and the Crimson Criminal" +msgid_plural "Flashgun Condor and the Crimson Criminals" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Flashgun Condor and the Crimson Criminal +#: lang/json/BOOK_from_json.py +msgid "" +"A hot-blooded photographer who fights crime with film, footage, and fists, " +"Condor is more than a mere shutterbug on the crime beat. But will she be " +"able to unravel a devious deception and bring the \"Crimson Criminal\" to " +"justice?" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "road novel" msgid_plural "road novels" @@ -28214,6 +27838,141 @@ msgstr[1] "novelas de romance" msgid "Drama and mild smut." msgstr "Drama y obscenidades tiernas." +#: lang/json/BOOK_from_json.py +msgid "Love and Circuses" +msgid_plural "Love and Circusess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Love and Circuses +#: lang/json/BOOK_from_json.py +msgid "" +"The passionate saga of two Boston politicians fiercely battling each other " +"for the mayor's office, and for Lydia's hand in marriage." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cloven Kisses" +msgid_plural "Cloven Kissess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Cloven Kisses +#: lang/json/BOOK_from_json.py +msgid "" +"When the devil falls in love with a warlock, his proposal must be infernally" +" wicked. Will hooves, horns, and the scent of sulphur condemn love's flames" +" to hellfire?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Conquer Me Sweetly" +msgid_plural "Conquer Me Sweetlys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Conquer Me Sweetly +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is delighted to offer you this romantic tale of " +"delicious dalliances and daring delights." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dubliner's Debutante" +msgid_plural "Dubliner's Debutantes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Dubliner's Debutante +#: lang/json/BOOK_from_json.py +msgid "" +"His love songs were only for me, but I preferred the banjo over bagpipes. " +"How could I ever love a kilted yankee of foreign breeding?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Blood Diodes" +msgid_plural "Blood Diodess" +msgstr[0] "Diodos de Sangre" +msgstr[1] "Diodos de Sangre" + +#. ~ Description for Blood Diodes +#: lang/json/BOOK_from_json.py +msgid "" +"He is an automaton, she is a reformed vampire, can love find a way? In this" +" edgy romance by acclaimed author Kea Dekker, heartbreak is just the " +"beginning." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Envying Heaven" +msgid_plural "Envying Heavens" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Envying Heaven +#: lang/json/BOOK_from_json.py +msgid "" +"When her fiancee names a star for her Wanda begins to wonder if an " +"astronomer's wife can ever compete with the allure of the cosmos." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Tall, Dark, and Gruesome" +msgid_plural "Tall, Dark, and Gruesomes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Tall, Dark, and Gruesome +#: lang/json/BOOK_from_json.py +msgid "" +"Fatima's obsession with the dead threatens to consume her when she falls in " +"love with a restless ghost. In this provocative romp celebrated author Kea " +"Dekker gently lifts the thin veil separating cold bodies from warm. " +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Along Came a Rider" +msgid_plural "Along Came a Riders" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Along Came a Rider +#: lang/json/BOOK_from_json.py +msgid "" +"When Beth's career as a pro steeplechase jockey threatens to divide her from" +" her lover, Beth has to act fast. Will she ever find a man that can keep up" +" with her racing heart?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Rogue's Virtue" +msgid_plural "Rogue's Virtues" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Rogue's Virtue +#: lang/json/BOOK_from_json.py +msgid "" +"Can Victoria reform the fugitive from justice who wooed her with false " +"pretenses and true passion?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Death of My Secret Life" +msgid_plural "The Death of My Secret Lifes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Death of My Secret Life +#: lang/json/BOOK_from_json.py +msgid "" +"Makeda comes out to her family, but she's still got plenty of skeletons in " +"her closet. Best selling authoress Kea Dekker breaks all the rules in this " +"macabre story of love and lies." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "samurai novel" msgid_plural "samurai novels" @@ -28246,6 +28005,73 @@ msgstr "" "Una sátira política del mundo pre-apocalíptico. Mirándola ahora desde este " "lado del Armagedón, la hace parecer mucho más ridículo." +#: lang/json/BOOK_from_json.py +msgid "The House of God" +msgid_plural "The House of Gods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The House of God +#: lang/json/BOOK_from_json.py +msgid "" +"Set in a lightly disguised Boston hospital of high repute, Samuel Shem’s " +"novel dives deep into the agony of absurdity." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Catch-22" +msgid_plural "Catch-22s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Catch-22 +#: lang/json/BOOK_from_json.py +msgid "" +"There is a short informational forward in this paperback edition of " +"Catch-22. Apparently the original title for Joseph Heller’s excruciatingly " +"brilliant war satire was \"Catch-11.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Master and Margarita" +msgid_plural "The Master and Margaritas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Master and Margarita +#: lang/json/BOOK_from_json.py +msgid "" +"Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, " +"vampires, a talking cat, and the literary elite of Moscow, this is a satire " +"on Stalinist tyranny written by Mikhail Bulgakov." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Handful of Dust" +msgid_plural "A Handful of Dusts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for A Handful of Dust +#: lang/json/BOOK_from_json.py +msgid "" +"Laced with cynicism, Evelyn Waugh's \"A Handful of Dust\" satirizes a " +"stratum of characters who have wealth, but lack any other credentials." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cat’s Cradle" +msgid_plural "Cat’s Cradles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Cat’s Cradle +#: lang/json/BOOK_from_json.py +msgid "" +"A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of " +"nuclear destruction isn't much of an influence on human nature." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "scifi novel" msgid_plural "scifi novels" @@ -28282,7 +28108,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "This is a copy of \"The Dispossessed\" by Ursula Le Guin." -msgstr "" +msgstr "Es una copia de \"Los desposeídos\" de Ursula Le Guin." #: lang/json/BOOK_from_json.py msgid "This copy of Ray Bradbury's \"Fahrenheit 451\"." @@ -28336,6 +28162,8 @@ msgid "" "This is a copy of \"The Windup Girl\" by Paolo Bacigalupi. The blurb makes " "you wonder how Thailand fared the end of the world." msgstr "" +"Es una copia de \"La chica mecánica\" de Paolo Bacigalupi. La nota en la " +"solapa te hace preguntarte cómo le fue a Tailandia en el fin del mundo. " #: lang/json/BOOK_from_json.py msgid "This is a copy of \"Islands in the Net\" by Bruce Sterling." @@ -28350,7 +28178,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "" "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It " -"still has the smell of new books within it's pages." +"still has the smell of new books within its pages." msgstr "" #: lang/json/BOOK_from_json.py @@ -28518,7 +28346,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "This is a copy of \"The War of The Worlds\" by H.G Wells." -msgstr "" +msgstr "Es una copia de \"La guerra de los mundos\" de H.G. Wells." #: lang/json/BOOK_from_json.py msgid "This is a copy of \"Iron Sunrise\" by Charles Stross." @@ -28545,7 +28373,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "This is a copy of \"Simulacron-3\" by Daniel F. Galouye." -msgstr "" +msgstr "Es una copia de \"Simulacron-3\" de Daniel F. Galouye." #: lang/json/BOOK_from_json.py msgid "This is a copy of \"The Glass Bees\" by Ernst Jünger." @@ -28553,7 +28381,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "This is a copy of \"Journey to The Center of the Earth\" by Jules Verne." -msgstr "" +msgstr "Es una copia de \"Viaje al centro de la Tierra\" de Julio Verne." #: lang/json/BOOK_from_json.py msgid "" @@ -28567,24 +28395,6 @@ msgid "" "Douglas Adams." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "novela de deportes" -msgstr[1] "novelas de deportes" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "" -"La historia dramática de un boxeador aficionado que tiene una extraña " -"oportunidad de pelear contra el campeón del peso pesado, e intenta agarrar " -"esta posibilidad de tener una mejor vida mientras impresiona a una chica " -"guapa que trabaja en la tienda de mascotas." - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -28648,6 +28458,49 @@ msgstr "" "irlandés esclavizado y sus compañeros esclavos, y su conversión en piratas " "heroicos al estilo de Robin Hood." +#: lang/json/BOOK_from_json.py +msgid "The Black Freighter" +msgid_plural "copies of The Black Freighter" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Black Freighter', 'str_pl': 'copies of The +#. Black Freighter'} +#: lang/json/BOOK_from_json.py +msgid "" +"Who watches the watchmen? Pirate Jenny, that's who! This swashbuckling " +"adventure novel will make you feel swell." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Captain Gosgold and the Sea Rovers of Buzzards Bay" +msgid_plural "copies of The Sea Rovers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Captain Gosgold and the Sea Rovers of Buzzards +#. Bay', 'str_pl': 'copies of The Sea Rovers'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lengthy paperback novel describes the ocean exploits of Captain " +"Gosgold. The British consider him an outlaw, but in America he is a " +"patriot." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Code of the Buccaneer" +msgid_plural "copies of The Buccaneer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Code of the Buccaneer', 'str_pl': 'copies of +#. The Buccaneer'} +#: lang/json/BOOK_from_json.py +msgid "" +"The cover of this paperback pirate story shows a shirtless man and a near " +"shirtless woman. Clearly it is not a dress code." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "thriller novel" msgid_plural "thriller novels" @@ -28718,274 +28571,97 @@ msgstr "" "banda de forajidos saqueadores." #: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "libro de filosofía" -msgstr[1] "libros de filosofía" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of -#. philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "" -"Una profunda discusión sobre moralidad con el énfasis en la epistemología y " -"la lógica." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." -" It looks to have been used as a coaster in a past life." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an" -" ominous looking metal tube. Provocative." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" -" tag on the back cover. It appears to still be active." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" -" cover contains an image of a pelican." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " -"Science\" by Friederich Nietzsche." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." -msgstr "" +msgid "Atwixt a Brace of Cacti" +msgid_plural "Atwixt a Brace of Cactis" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Atwixt a Brace of Cacti #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." +"A grizzled clodhopper interviews a mess of rangehands, flummoxing longhorns " +"and tenderfoot alike in a flusteration of jawing." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" -" title, it does not actually appear to be defending terrorism." -msgstr "" +msgid "Stinky Bart Puts on Starch" +msgid_plural "Stinky Bart Puts on Starchs" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Stinky Bart Puts on Starch #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." +"A local bandit, driven by sadistic impulses, begins offering unlicensed " +"dentistry to brave frontiersmen with few options and fewer teeth." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this" -" book." -msgstr "" +msgid "Six Beans in the Wheel" +msgid_plural "Six Beans in the Wheels" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Six Beans in the Wheel #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" -" like this book has a surprisingly long track record of owners." +"The safety is off in this gun slinging tale of revenge and redemption by " +"acclaimed author El Amor." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "" +msgid "Irons at Calico Queen Annex" +msgid_plural "Irons at Calico Queen Annexs" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Irons at Calico Queen Annex #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" -" might have been printed decades before the Cataclysm since the cover is " -"quite weathered." +"The establishment of a telegraph line into the recently named town of Calico" +" Queen threatens to bring with it the long arm of the law. A trio of " +"enterprising gunfighters hatches a plan to keep Calico Queen wild by looting" +" the supply wagons." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "" +msgid "Riot on the Range" +msgid_plural "Riot on the Ranges" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Riot on the Range #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" -" that the author's real name is Fereidoun M. Esfandiary." +"Best selling author El Amor paints a visceral study in red with his latest " +"western saga: Riot on the Range." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "" +msgid "Vaquero Sun" +msgid_plural "Vaquero Suns" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for Vaquero Sun #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." +"Western author El Amor relates the story of a dispossessed young man " +"inspired by a heat stroke delusion to pursue justice against an evil land " +"baron." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "" +msgid "The Vendetta Riders" +msgid_plural "The Vendetta Riderss" +msgstr[0] "" +msgstr[1] "" +#. ~ Description for The Vendetta Riders #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +"A wild young man, fast on the draw, who thinks he has nothing to lose, falls" +" in with a group of gun runners." msgstr "" #: lang/json/BOOK_from_json.py @@ -29060,8 +28736,10 @@ msgstr[1] "" #. ~ Description for {'str': "priest's diary", 'str_pl': "priests' diaries"} #: lang/json/BOOK_from_json.py -msgid "A small book filled with journal entries in Latin." -msgstr "Un librito lleno con entradas diarias en latín." +msgid "" +"A small book filled with journal entries in Latin. You can read Latin, " +"right?" +msgstr "" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -29144,23 +28822,6 @@ msgstr "" "Un pequeño libro detallando las \"revelaciones\" que tuvo un prisionero en " "el corredor de la muerte." -#: lang/json/BOOK_from_json.py -msgid "Hávamál" -msgid_plural "copies of Hávamál" -msgstr[0] "Hávamál" -msgstr[1] "copias del Hávamál" - -#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of several Old Norse poems. The poems contain " -"proverbs and stories attributed to the god Odin, many transcribed from oral " -"history." -msgstr "" -"Una traducción inglesa de varios poemas del nórdico antiguo. Los poemas " -"contienen proverbios e historias atribuidas al dios Odín, muchas transcritas" -" de la historia oral." - #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" @@ -29557,6 +29218,9 @@ msgid "" "authenticity declaring it to be an early edition. It would have been worth " "an enormous amount of money, not long ago." msgstr "" +"Esta copia de \"Fahrenheit 451\" de Ray Bradbury tiene un certificado de " +"autenticidad que dice ser una primera edición. Podría haber valido una " +"fortuna en un pasado no muy lejano." #: lang/json/BOOK_from_json.py msgid "" @@ -29659,6 +29323,908 @@ msgstr "" "En la cubierta interior hay una nota escrita a mano que dice \"Para Chris, " "gracias por creer que podía hacerlo. Atentamente, Terry.\"." +#: lang/json/BOOK_from_json.py +msgid "The Economicon of Dobbs" +msgid_plural "copies of The Economicon" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Economicon of Dobbs', 'str_pl': 'copies of +#. The Economicon'} +#: lang/json/BOOK_from_json.py +msgid "" +"These are the prescriptures Pile 18 Disk sg30 File 14. \"Look, small brain " +"of pink earth inside my null-grasping, and she/he receives Logos; and it lay" +" with the Wor.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Bobliographon" +msgid_plural "copies of The Bobliographon" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Bobliographon', 'str_pl': 'copies of The +#. Bobliographon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this cheaply published paperback reads: \"These newly-" +"released SubGenius revelations will SHOCK those who think they know Bob! " +"Unpredictables are not alone and possess amazing hidden powers of their own!" +" In a world without slack, a yeti lust revival saunters about. WARNING: Do" +" not fail to pay full price for this book; JHVH-1's wrath knows some " +"bounds.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Glimpses of Solomon in Yellow" +msgid_plural "copies of Solomon in Yellow" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Glimpses of Solomon in Yellow', 'str_pl': +#. 'copies of Solomon in Yellow'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is titled \"Glimpses of Solomon in Yellow; The Initiation " +"Rites of the Starry Wisdom Covenant, by Dr. Enoch Craven.\" It describes " +"not just the investiture of new adherents, but the history and beliefs of " +"the Church of Starry Wisdom. Someone has defaced the sparse citations " +"section by scrawling \"PUPPETS OF ROME!\" over its few pages. The book does" +" not provide any biography for Dr. Craven, let alone academic credentials." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "libro de filosofía" +msgstr[1] "libros de filosofía" + +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of +#. philosophy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "" +"Una profunda discusión sobre moralidad con el énfasis en la epistemología y " +"la lógica." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." +" It looks to have been used as a coaster in a past life." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an" +" ominous looking metal tube. Provocative." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a small reader on Hegel's Dialectics." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" +" tag on the back cover. It appears to still be active." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" +" cover contains an image of a pelican." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " +"Science\" by Friederich Nietzsche." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" +" title, it does not actually appear to be defending terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this" +" book." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" +" like this book has a surprisingly long track record of owners." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "" +"Es una copia de \"La conquista del pan\" de Peter Kropotkin. En la tapa " +"tiene una imagen de un viejo filósofo con una barba magnífica, en lugar de " +"pan." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" +" might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "" +"Es una copia de \"Del inconveniente de haber nacido\" de Emil Cioran. Este " +"libro puede haber sido impreso décadas antes del Cataclismo, ya que la tapa " +"está bastante desgastada." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" +" that the author's real name is Fereidoun M. Esfandiary." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies +#. of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': +#. 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works," +" and critical analyses on the subject of beauty." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': +#. 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe" +" and advance semantic investigations." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of +#. Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A" +" key work in the existentialist tradition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "novela de deportes" +msgstr[1] "novelas de deportes" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "" +"La historia dramática de un boxeador aficionado que tiene una extraña " +"oportunidad de pelear contra el campeón del peso pesado, e intenta agarrar " +"esta posibilidad de tener una mejor vida mientras impresiona a una chica " +"guapa que trabaja en la tienda de mascotas." + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The +#. Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating," +" it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The +#. Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The +#. Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': +#. 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The +#. Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': +#. 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up" +" your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', +#. 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike +#. Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare +#. Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': +#. 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Anything Can Be Beautiful" +msgid_plural "Anything Can Be Beautifuls" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Anything Can Be Beautiful +#: lang/json/BOOK_from_json.py +msgid "" +"Stylist, designer, and glitter goddess, Tiffynie Blust looks at the world " +"one mantra in mind: anything can be beautiful." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Greatest Rooms of the Century" +msgid_plural "The Greatest Rooms of the Centurys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Greatest Rooms of the Century +#: lang/json/BOOK_from_json.py +msgid "" +"A stunning collection of the best living spaces created and commissioned by " +"the most influential people in interior design." +msgstr "" +"Es una colección impresionante de los mejores espacios para vivir creados y " +"encargados por la persona más influyente del diseño interior." + +#: lang/json/BOOK_from_json.py +msgid "The Hands-On Home" +msgid_plural "The Hands-On Homes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Hands-On Home +#: lang/json/BOOK_from_json.py +msgid "" +"An ecologically-minded take on modern homemaking, this is a practical guide " +"to maximising your time in the kitchen and beyond." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Rooms We Love" +msgid_plural "Rooms We Loves" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Rooms We Love +#: lang/json/BOOK_from_json.py +msgid "" +"This is a guide on how to affordably decorate rooms to suit your " +"personality. In the book, we visit rooms inspired by the needs of each " +"homeowner and will see how they transformed their rooms." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "New York Parties" +msgid_plural "New York Partiess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for New York Parties +#: lang/json/BOOK_from_json.py +msgid "" +"Visit the homes of savvy tastemakers from the worlds of fashion, finance, " +"and design, with this book of lavish photography." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Best Signature Outdoor Kitchens" +msgid_plural "Best Signature Outdoor Kitchenss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Best Signature Outdoor Kitchens +#: lang/json/BOOK_from_json.py +msgid "" +"Outdoor space is one of the hottest amenities being considered by new and " +"existing homeowners. This book will show you how to turn any deck, patio, " +"or other outside area into a great place to cook." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Using Plants to Transform Your Home" +msgid_plural "The Art of Using Plants to Transform Your Homes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Art of Using Plants to Transform Your Home +#: lang/json/BOOK_from_json.py +msgid "" +"Bring gorgeous greenery into your life with this delightful guide to " +"decorating your living space with a wide variety of plants. Illustrated " +"examples enable you to easily transform every corner of your interior space." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Woman of Color" +msgid_plural "Woman of Colors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Woman of Color +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of essays and advice on style, beauty, and motherhood." +" Part memoir, part lifestyle guide, this book reflects the author's " +"experience growing up as a woman of color in Brooklyn." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "10 Cool Things About Being A Ring Bearer" +msgid_plural "10 Cool Things About Being A Ring Bearers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for 10 Cool Things About Being A Ring Bearer +#: lang/json/BOOK_from_json.py +msgid "" +"This book is for the delightful little ring bearer in your wedding. The " +"author depicts the responsibility and the honor in being a ring bearer your " +"little angel will cherish." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "How to Raise a Gentleman: A Civilized Guide to Parenting" +msgid_plural "How to Raise a Gentleman: A Civilized Guide to Parentings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for How to Raise a Gentleman: A Civilized Guide to Parenting +#: lang/json/BOOK_from_json.py +msgid "" +"A revised edition for parents who hope their little boy children will grow " +"up to be the kind of men who know which fork to use, how to treat others, " +"and generally make their parents proud." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"International Approaches to Securing Radioactive Sources Against Terrorism" +msgid_plural "" +"International Approaches to Securing Radioactive Sources Against Terrorisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for International Approaches to Securing Radioactive Sources +#. Against Terrorism +#: lang/json/BOOK_from_json.py +msgid "" +"This book presents how to enhance cooperation and assistance between " +"countries in support of International Atomic Energy Agency efforts to secure" +" radioactive sources against the threat of terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Forensic Psychiatry" +msgid_plural "Principles of Forensic Psychiatrys" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Principles of Forensic Psychiatry +#: lang/json/BOOK_from_json.py +msgid "" +"This text addresses standards in the assessment and treatment of aggression " +"and violence as well as psychological and neuroimaging assessments." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Guide to Reflective Conflict Resolution" +msgid_plural "The Guide to Reflective Conflict Resolutions" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Guide to Reflective Conflict Resolution +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this hardbound book reads: \"Why should professionals care" +" about reflective practice? How do its principles and methods increase " +"competence? What characteristics distinguish reflective practitioners?\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Oxbridge Handbook of Mood Ailments" +msgid_plural "The Oxbridge Handbook of Mood Ailmentss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Oxbridge Handbook of Mood Ailments +#: lang/json/BOOK_from_json.py +msgid "" +"The Oxbridge Handbook of Mood Ailments provides detailed coverage of the " +"characterization, understanding, and treatment of affective disorders. It " +"provides coverage of unipolar depression, bipolar disorder, and known " +"variants of these illnesses." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Phonological Acquisition and Disorders" +msgid_plural "Phonological Acquisition and Disorderss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Phonological Acquisition and Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"Studying the phonologies of children with non-organic speech disorders, this" +" volume details the latest findings in optimality theory, phonological " +"acquisition and disorders. It is intended for linguists and psychologists." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Therapeutic Gardens and Healing Spaces" +msgid_plural "Therapeutic Gardens and Healing Spacess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Therapeutic Gardens and Healing Spaces +#: lang/json/BOOK_from_json.py +msgid "" +"This book addresses how to design therapeutic gardens. It illustrates a " +"variety of landscape designs appropriate for public spaces that promote " +"mental health." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Advances in Drug Delivery Systems" +msgid_plural "Advances in Drug Delivery Systemss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Advances in Drug Delivery Systems +#: lang/json/BOOK_from_json.py +msgid "" +"This softcover reprint covers an array of topics in pharmacology. The " +"physicochemical concepts of the refinement of bioresponsive drug delivery " +"are presented in detail alongside a variety of current approaches employed " +"in the development of zero order release systems." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Using Art to Treat Eating Disorders" +msgid_plural "Using Art to Treat Eating Disorderss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Using Art to Treat Eating Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"This is an introductory guide for those wanting to explore the use of art to" +" address eating disorders. Art therapy is a particularly effective " +"therapeutic intervention, as it allows people to express uncomfortable " +"thoughts and feelings nonverbally." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Clinical Guide to Video Gamers" +msgid_plural "A Clinical Guide to Video Gamerss" +msgstr[0] "Guía Clínica para Jugadores Videojuegos" +msgstr[1] "Guía Clínica para Jugadores Videojuegos" + +#. ~ Description for A Clinical Guide to Video Gamers +#: lang/json/BOOK_from_json.py +msgid "" +"This scholarly work considers the role that games play in psychological " +"experiences and mental health. Chapters examine the factors that compel " +"individual gamers to select and identify with particular games and " +"characters, as well as the different play styles, genres, and archetypes " +"common in video games." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Paranoia and the History of Madness" +msgid_plural "Paranoia and the History of Madnesss" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Paranoia and the History of Madness +#: lang/json/BOOK_from_json.py +msgid "" +"This book is an analysis of the use and misuse of paranoia throughout " +"history and in contemporary society. The impact of paranoia on societies is" +" explored in detail." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Psychoanalysis and Colonialism" +msgid_plural "Psychoanalysis and Colonialisms" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Psychoanalysis and Colonialism +#: lang/json/BOOK_from_json.py +msgid "" +"Freud referred to women's sexuality as a \"dark continent\" for " +"psychoanalysis, drawing on colonial use of the same phrase to refer to " +"Africa. This book details how the problematic universalism of " +"psychoanalysis led theorists to reject its relevance for postcolonial " +"critique." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Psychology of Stalking" +msgid_plural "The Psychology of Stalkings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Psychology of Stalking +#: lang/json/BOOK_from_json.py +msgid "" +"This book explores stalking from social, psychiatric, psychological and " +"behavioral perspectives. Topics include psychiatric diagnoses, offender-" +"victim typologies, cyberstalking, false victimization syndrome, erotomania, " +"domestic violence, the stalking of public figures, and many other aspects of" +" stalking." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" msgid_plural "issues of Tactical Handgun Digest" @@ -29828,8 +30394,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Dungeon Master's Guide: 6th Edition" msgid_plural "copies of Dungeon Master's Guide: 6th Edition" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Guía del Dungeon Master: 6ta edición" +msgstr[1] "copias de Guía del Dungeon Master: 6ta edición" #. ~ Description for {'str': "Dungeon Master's Guide: 6th Edition", 'str_pl': #. "copies of Dungeon Master's Guide: 6th Edition"} @@ -29843,6 +30409,358 @@ msgstr "" "historias. Está lleno de información, pero encontrar lo que deseas puede ser" " una faena." +#: lang/json/BOOK_from_json.py +msgid "Nail Your Law Firm Interview" +msgid_plural "copies of Nail Your Law Firm Interview" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Nail Your Law Firm Interview', 'str_pl': 'copies +#. of Nail Your Law Firm Interview'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lightweight book proclaims itself to be \"the ONLY gold star interview " +"guide for lawyers interviewing in any type of a job interview.\" It was " +"suppsed to help new lawyers find work." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "holybook abstract" +msgid_plural "holybook abstracts" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for holybook abstract +#: lang/json/BOOK_from_json.py +msgid "theoretically this isn't a book at all" +msgstr "teóricamente, esto ni siquiera es un libro" + +#: lang/json/BOOK_from_json.py +msgid "Mycenacean Hymns" +msgid_plural "copies of Mycenacean Hymns" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of +#. Mycenacean Hymns'} +#: lang/json/BOOK_from_json.py +msgid "" +"A vellum book containing the hymns central to Marloss faith. As the verses " +"lead to each other, the text sings of unity and promised paradise." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "King James Bible" +msgid_plural "copies of King James Bible" +msgstr[0] "Biblia del Rey Jacobo" +msgstr[1] "copias de Biblia del Rey Jacobo" + +#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King +#. James Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, which originated in England " +"in the early 1600s." +msgstr "" +"Una traducción al español de la Biblia Cristiana, que fue originada en " +"Inglaterra a principios del siglo XVII." + +#: lang/json/BOOK_from_json.py +msgid "Eastern Orthodox Bible" +msgid_plural "copies of Eastern Orthodox Bible" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of +#. Eastern Orthodox Bible'} +#: lang/json/BOOK_from_json.py +msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." +msgstr "" +"Una copia en español de la versión Ortodoxa de Oriente de la Santa Biblia." + +#: lang/json/BOOK_from_json.py +msgid "Gideon Bible" +msgid_plural "copies of Gideon Bible" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon +#. Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, distributed free of charge by" +" Gideons International." +msgstr "" +"Una copia en español de la Biblia Cristiana, distribuida gratuitamente por " +"los Gedeones Internacionales." + +#: lang/json/BOOK_from_json.py +msgid "The Guru Granth Sahib" +msgid_plural "copies of The Guru Granth Sahib" +msgstr[0] "El Gurú Granth Sahib" +msgstr[1] "copias de El Gurú Granth Sahib" + +#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The +#. Guru Granth Sahib'} +#: lang/json/BOOK_from_json.py +msgid "A single-volume copy of the central religious texts of Sikhism." +msgstr "Una copia de un solo volumen del texto religioso central del Sijismo." + +#: lang/json/BOOK_from_json.py +msgid "Hadith" +msgid_plural "copies of Hadith" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} +#: lang/json/BOOK_from_json.py +msgid "" +"A Muslim religious text containing an account of the sayings and actions of " +"the prophet Muhammad." +msgstr "" +"Un texto religioso musulmán, que contiene un recuento de las palabras y las " +"acciones del profeta Muhammad." + +#: lang/json/BOOK_from_json.py +msgid "Principia Discordia" +msgid_plural "copies of Principia Discordia" +msgstr[0] "Principia Discordia" +msgstr[1] "copias del Principia Discordia" + +#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of +#. Principia Discordia'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of Discordianism. It seems to " +"primarily concern chaos, and features a card in the back which informs you " +"that you are now a 'genuine and authorized Pope of Discordia'." +msgstr "" +"Un libro que personifica las creencias principales del Discordianismo. " +"Parece concernir primeramente al caos, e incluye una carta en la parte de " +"atrás que te informa que ya eres un 'genuino y autorizado Papa de la " +"Discordia'." + +#: lang/json/BOOK_from_json.py +msgid "The Kojiki" +msgid_plural "copies of The Kojiki" +msgstr[0] "Kojiki" +msgstr[1] "copias del Kojiki" + +#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} +#: lang/json/BOOK_from_json.py +msgid "" +"The oldest extant chronicle of Japan's myths and history, the stories " +"contained in the Kojiki are part of the inspiration behind Shinto practices." +msgstr "" +"Es la crónica más antigua existente de la historia y los mitos japoneses. " +"Las historias que contiene el Kojiki son parte de la inspiración detrás de " +"las prácticas del Sintoísmo." + +#: lang/json/BOOK_from_json.py +msgid "The Book of Mormon" +msgid_plural "copies of The Book of Mormon" +msgstr[0] "El libro del Mormón" +msgstr[1] "copias de El libro del Mormón" + +#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The +#. Book of Mormon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The sacred text of the Latter Day Saint movement of Christianity, originally" +" published in 1830 by Joseph Smith." +msgstr "" +"El texto sagrado del Movimiento de los Santos de los Últimos Días del " +"Cristianismo, originalmente publicado en 1830 por Joseph Smith." + +#: lang/json/BOOK_from_json.py +msgid "The Gospel of the Flying Spaghetti Monster" +msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" +msgstr[0] "El Evangelio del Monstruo del Espagueti Volador" +msgstr[1] "copias de El Evangelio del Monstruo del Espagueti Volador" + +#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', +#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of the Church of the Flying Spaghetti " +"Monster. It seems to involve a lot of pirates and some sort of invisible " +"drunken monster made of pasta." +msgstr "" +"Un libro que personifica las principales creencias de la Iglesia del " +"Monstruo del Espagueti Volador. Parece implicar muchos piratas y alguna " +"clase de monstruo borracho invisible hecho con pasta." + +#: lang/json/BOOK_from_json.py +msgid "Quran" +msgid_plural "copies of Quran" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Muslim book of holy scriptures, with " +"explanatory notes and commentaries to aid in understanding." +msgstr "" +"Un traducción al español del libro musulmán de las santas escrituras, con " +"notas explicativas y comentarios para facilitar su comprensión." + +#: lang/json/BOOK_from_json.py +msgid "The Satanic Bible" +msgid_plural "copies of The Satanic Bible" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The +#. Satanic Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of essays, observations, and rituals published by Anton LaVey " +"in 1969." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dianetics" +msgid_plural "copies of Dianetics" +msgstr[0] "Dianética" +msgstr[1] "copias de Dianética" + +#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book is the canonical text of Scientology. Written by a science " +"fiction author, it contains self-improvement techniques and musings on " +"psychology called Dianetics." +msgstr "" +"Este libro es el texto canónico de la Cienciología. Escrito por un autor de " +"ciencia ficción, contiene técnicas de auto-mejoramiento y reflexiones sobre " +"psicología llamadas Diánetica." + +#: lang/json/BOOK_from_json.py +msgid "The Book of the SubGenius" +msgid_plural "copies of The Book of the SubGenius" +msgstr[0] "El Libro de los Subgenios" +msgstr[1] "copias de El Libro de los Subgenios" + +#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of +#. The Book of the SubGenius'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book about the Church of the SubGenius. It seems to involve a salesman " +"named J. R. \"Bob\" Dobbs and a concept called 'slack'." +msgstr "" +"Un libro sobre la Iglesia de los Subgenios. Parece que implica un vendedor " +"llamado J. R. \"Bob\" Dobbs y un concepto denominado 'slack'." + +#: lang/json/BOOK_from_json.py +msgid "The Sutras of the Buddha" +msgid_plural "copies of The Sutras of the Buddha" +msgstr[0] "Los Sutras de Buda" +msgstr[1] "copias de Los Sutras de Buda" + +#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of +#. The Sutras of the Buddha'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of discourses attributed to the Buddha and his close disciples." +msgstr "" +"Una colección de los discursos atribuidos a Buda y sus discípulos cercanos." + +#: lang/json/BOOK_from_json.py +msgid "Talmud" +msgid_plural "copies of the Talmud" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of the Talmud'} +#: lang/json/BOOK_from_json.py +msgid "" +"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " +"Hebrew Bible with teachings and opinions of thousands of rabbis." +msgstr "" +"Uno de los textos centrales del Judaísmo Rabínico, el Talmud explica en " +"profundidad la Biblia Hebrea con enseñanzas y opiniones de cientos de " +"rabinos." + +#: lang/json/BOOK_from_json.py +msgid "Tanakh" +msgid_plural "copies of Tanakh" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single-volume book containing the complete canon of the Jewish Bible." +msgstr "" +"Un libro de un solo volumen que contiene el canon completo de la Biblia " +"Judía." + +#: lang/json/BOOK_from_json.py +msgid "The Tripitaka" +msgid_plural "copies of The Tripitaka" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The +#. Tripitaka'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Buddhist writings describing their canons of " +"scriptures." +msgstr "" +"Una colección de textos sagrados Budistas, que describen los cánones de las " +"escrituras." + +#: lang/json/BOOK_from_json.py +msgid "The Upanishads" +msgid_plural "copies of The Upanishads" +msgstr[0] "Los Upanishad" +msgstr[1] "copias de los Upanishad" + +#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The +#. Upanishads'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Hindu writings regarding the nature of reality and " +"describing the character and form of human salvation." +msgstr "" +"Una colección de textos sagrados Hindúes, acerca de la naturaleza de la " +"realidad, y describiendo la forma y el carácter de la salvación humana." + +#: lang/json/BOOK_from_json.py +msgid "The Four Vedas" +msgid_plural "copies of The Four Vedas" +msgstr[0] "Los Cuatro Vedas" +msgstr[1] "copias de los Cuatro Vedas" + +#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four +#. Vedas'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single volume containing all four Vedas, which are the oldest scriptures " +"of Hinduism." +msgstr "" +"Un volumen que contiene los cuatro Vedas, que son las escrituras más " +"antiguas del Hinduismo." + +#: lang/json/BOOK_from_json.py +msgid "Hávamál" +msgid_plural "copies of Hávamál" +msgstr[0] "Hávamál" +msgstr[1] "copias del Hávamál" + +#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of several Old Norse poems. The poems contain " +"proverbs and stories attributed to the god Odin, many transcribed from oral " +"history." +msgstr "" +"Una traducción inglesa de varios poemas del nórdico antiguo. Los poemas " +"contienen proverbios e historias atribuidas al dios Odín, muchas transcritas" +" de la historia oral." + #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" msgid_plural "Duelist's Annuals" @@ -30035,8 +30953,8 @@ msgstr "El recurso líder en el mundo sobre deportes acuáticos." #: lang/json/BOOK_from_json.py msgid "Water Survival Training Field Manual" msgid_plural "copies of Water Survival Training Field Manual" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Manual de Supervivencia en el Agua" +msgstr[1] "copias de Manual de Supervivencia en el Agua" #. ~ Description for {'str': 'Water Survival Training Field Manual', 'str_pl': #. 'copies of Water Survival Training Field Manual'} @@ -30178,6 +31096,21 @@ msgstr "" "Un masivo libro de tapa dura lleno de mucha información para el diseñador " "profesional de indumentaria." +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of +#. Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -30335,343 +31268,483 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "readable magazine" -msgid_plural "readable magazines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/BOOK_from_json.py -msgid "original copy of Housefly" -msgid_plural "original copies of Housefly" -msgstr[0] "copia original de Mosca" -msgstr[1] "copias originales de Mosca" +msgid "children's book" +msgid_plural "children's books" +msgstr[0] "libro infantil" +msgstr[1] "libros infantiles" -#. ~ Description for {'str': 'original copy of Housefly', 'str_pl': 'original -#. copies of Housefly'} +#. ~ Description for {'str': "children's book"} #: lang/json/BOOK_from_json.py msgid "" -"The only copy of Housefly in existence - a long book about three individuals" -" drawn together by fate in the early 1800s to save their English town of " -"Victoria from a mysterious threat. You never got to publish it, but reading" -" it lets you forget the horrors of the Cataclysm, if only for a moment." +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the dead walked" +" and the world moved on." msgstr "" -"La única copia de Mosca que existe: un largo libro acerca de tres individuos" -" unidos por el destino a principios del siglo XIX para salvar Victoria, su " -"pueblo inglés, de una amenaza misteriosa. Nunca llegaste a publicarlo, pero " -"leerlo te hace olvidar los horrores del Cataclismo, aunque sea solo por un " -"momento." +"Es un pequeño libro para pequeños lectores. Los personajes coloridos y las " +"dulces historias que contiene dentro pertenecen a otro tiempo diferente, " +"antes de que los muertos caminen y el mundo continuó girando." #: lang/json/BOOK_from_json.py -msgid "USMC M1014 technical manual" -msgid_plural "USMC M1014 technical manuals" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'USMC M1014 technical manual'} +msgid "book of fairy tales" +msgid_plural "books of fairy tales" +msgstr[0] "libro de cuentos de hadas" +msgstr[1] "libros de cuentos de hadas" + +#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy +#. tales'} #: lang/json/BOOK_from_json.py msgid "" -"A pocket-sized book printed in 2000 by the United States Marine Corps for " -"official use. It describes the operation, repair, and cleaning of the " -"Benilli M1014 shotgun. Though specific to the M4, it can provide a wealth " -"of information to the trained eye." +"An amusing collection of folklore featuring the usual cast of fairies, " +"goblins, and trolls." msgstr "" +"Una divertida colección de cuentos tradicionales, con la participación de " +"los protagonistas habituales como hadas, goblins y trolls." #: lang/json/BOOK_from_json.py -msgid "Black Powder to Berettas" -msgid_plural "copies of Black Powder to Berettas" -msgstr[0] "" -msgstr[1] "" +msgid "" +"This fairy tale is about a wolf who eats so much salted meat she becomes " +"trapped in the butcher's cellar." +msgstr "" +"Este cuento es sobre un lobo que come mucha carne salada y termina atrapado " +"en el sótano de un carnicero." -#. ~ Description for {'str': 'Black Powder to Berettas', 'str_pl': 'copies of -#. Black Powder to Berettas'} #: lang/json/BOOK_from_json.py msgid "" -"This hardcover book, aimed at the gun nut, provides an illustrated, concise " -"history of the handgun throughout history, including technical " -"specifications and use techniques. It's difficult to follow without a " -"passing knowledge in pistols, but an experienced handgun user could glean " -"much from it." +"In this traditional story of beastly intrigue a clever fox convinces an " +"elderly lion to kill a derogatory wolf." msgstr "" #: lang/json/BOOK_from_json.py -msgid "America's Rifle" -msgid_plural "copies of America's Rifle" -msgstr[0] "copia de El Rifle de Estados Unidos" -msgstr[1] "copias de El Rifle de Estados Unidos" +msgid "" +"This is an illustrated fairy tale book about a conversation between a mouse " +"and a cat." +msgstr "" -#. ~ Description for {'str': "America's Rifle", 'str_pl': "copies of America's -#. Rifle"} #: lang/json/BOOK_from_json.py msgid "" -"A history book penned by an anonymous author. Starting from its design by " -"John Garand and ending with the Vietnam War, it provides a detailed run-down" -" of the M1 Garand rifle's use throughout history as well as its design and " -"quirks with the weapon." +"This illustrated fairy tale relates how a city mouse did visit his cousin in" +" the country, and how each regarded the other's quality of life." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Jane's Flamethrowers and Firestarters" -msgid_plural "copies of Jane's Flamethrowers and Firestarters" -msgstr[0] "" -msgstr[1] "" +msgid "A fable in which the jackal wins the day via clever foolishness." +msgstr "" -#. ~ Description for {'str': "Jane's Flamethrowers and Firestarters", -#. 'str_pl': "copies of Jane's Flamethrowers and Firestarters"} #: lang/json/BOOK_from_json.py msgid "" -"A detailed, full-colored guide to flamethrowers, incendiary weapons, and " -"napalm. It builds off of information provided in its sister book, Jane's " -"Mortars and Rocket Launchers, and so it's mostly incomprehensible to anyone " -"without prior knowledge." +"A slave mistakenly wanders into a lion's den - thus begins a fable which " +"demonstrates mutual dependence regardless of size or status." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Nuclear Physics Made Easy" -msgid_plural "copies of Nuclear Physics Made Easy" -msgstr[0] "" -msgstr[1] "" +msgid "" +"An amusing collection of stories featuring \"Goldilocks and The Three " +"Bears\" on the cover." +msgstr "" -#. ~ Description for {'str': 'Nuclear Physics Made Easy', 'str_pl': 'copies of -#. Nuclear Physics Made Easy'} #: lang/json/BOOK_from_json.py msgid "" -"A book detailing the workings of state of the art atomic technology, and the" -" physics behind it." +"This is a well illustrated fairy tale about a war between the birds and the " +"beasts, with particulars on the wartime conduct and eventual fate of the " +"bat." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Dr Moreau and You" -msgid_plural "copies of Dr Moreau and You" -msgstr[0] "" -msgstr[1] "" +msgid "" +"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " +"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" +" page." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" +msgstr "" -#. ~ Description for {'str': 'Dr Moreau and You', 'str_pl': 'copies of Dr -#. Moreau and You'} #: lang/json/BOOK_from_json.py msgid "" -"In what many considered a stunning example of poor taste and others " -"considered overt specieism this text on the creation of Uplifted Animals " -"references a story about sapient animals killing their creator. Otherwise a" -" dry text about genetic modification." +"This fairy tale book is entitled \"Little Red Cap\". It details a red-" +"cloaked child's various encounters with talking wolves." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Millyficent's Diary" -msgid_plural "copies of Millyficent's Diary" -msgstr[0] "" -msgstr[1] "" +msgid "" +"A collection of ghost stories warning about the dangers of stealing from the" +" dead." +msgstr "" -#. ~ Description for {'str': "Millyficent's Diary", 'str_pl': "copies of -#. Millyficent's Diary"} #: lang/json/BOOK_from_json.py msgid "" -"A pocket-sized book filled to the margins with cramped handwriting and notes" -" on the biology of Mi-Go and other musings. It's hard to understand and " -"quite gruesome in some places and written in a shorthand or cipher in " -"others." +"An Irish fairy tale in which a Celtic poet marries a princess who has been " +"cursed with the head of a pig." msgstr "" -#. ~ Description for {'str': "children's book"} #: lang/json/BOOK_from_json.py msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the sky grew " -"dark and the aliens arrived." +"A book of Italian fairy tales translated into English. The cover features " +"an orange fairy juggling a lemon, a lime, and a tangerine." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A book of fables about people who change into birds." msgstr "" -#. ~ Description for {'str': 'TIME magazine'} -#. ~ Description for {'str': 'US Weekly', 'str_pl': 'US Weeklies'} #: lang/json/BOOK_from_json.py msgid "" -"Current events concerning a bunch of people who're all dead now - or working" -" for them." +"This compendium of amusing folk tales about the devil is titled \"Hell's " +"Kettle: Legends of the Devil.\"" msgstr "" -#. ~ Description for {'str': 'Zombie Survival Guide', 'str_pl': 'copies of -#. Zombie Survival Guide'} #: lang/json/BOOK_from_json.py msgid "" -"While this seems like it would be at least partially useful in this " -"situation, the sheer amount of speculative fiction present makes it " -"practically useless. What the hell is a mi-go? Aren't triffids from some " -"ancient movie?" +"This charming book of Swedish fables is titled, \"The Glass Mountain and the" +" Princess.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of fairy tale stories warning against the consequences " +"of extreme greed." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fable book is entitled, \"The Rabbit Herd.\" Inside are woodcut " +"illustrations of a peasant boy playing his flute for a mob of mischievous " +"hares." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" +msgstr "" +"Este libro se titula \"La Olla de los Ladrones: Cuentos del Mundo Árabe\"." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a book of legends collected by Traveller Johnny Cassidy in the " +"1960s." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Case #5846, Illegal Gun Modification" -msgid_plural "copies of Case #5846, Illegal Gun Modification" +msgid "" +"This book of fables expands upon the legend of the Seven Sleepers of " +"Ephesus." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this fairy tale a strong man frightens an ogre by squeezing water out of " +"a stone." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of rustic folk tales bears the title: \"How to Shout Down the " +"Devil.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " +"fables about logical errors and foolish misjudgements of the Kadambawa men." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " +"Stories.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " +"suitable for small children." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Adorkable Girl" +msgid_plural "The Adorkable Girls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Case #5846, Illegal Gun Modification', 'str_pl': -#. 'copies of Case #5846, Illegal Gun Modification'} +#. ~ Description for The Adorkable Girl #: lang/json/BOOK_from_json.py msgid "" -"This file details illegal gun modifications. Maybe you could learn " -"something. At least you don't have to worry about the cops anymore." +"When a therapist's daughter transfers to a new school, she decides to change" +" her personality type. As her social life begins to blossom, can she " +"maintain a healthy boundary between her home life and her public persona?" msgstr "" -"Este expediente detalla las modificaciones de armas ilegales. Tal vez puedas" -" aprender algo. Por lo menos, ahora no te tienes que preocupar por la " -"policía." #: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "juego de ajedrez" -msgstr[1] "juegos de ajedrez" +msgid "Becoming Jackson" +msgid_plural "Becoming Jacksons" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for chess set +#. ~ Description for Becoming Jackson #: lang/json/BOOK_from_json.py msgid "" -"A wooden box containing all the equipment needed to play a game of chess." +"When Jackson gains the mystical talent to alter his appearance on command, " +"how will he continue to recognize himself in his own mirror?" msgstr "" #: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "juego de damas" -msgstr[1] "juegos de damas" +msgid "Nothing Burned" +msgid_plural "Nothing Burneds" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for checkers set +#. ~ Description for Nothing Burned #: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." +msgid "" +"A teenage influencer becomes fast friends with someone who may or may not be" +" an actual demon." msgstr "" +"Un influencer adolescente se hace amigo íntimo con alguien que puede o no " +"puede ser realmente un demonio." -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" +#: lang/json/BOOK_from_json.py +msgid "High and Low" +msgid_plural "High and Lows" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} +#. ~ Description for High and Low #: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "Es un conjunto de 52 cartas francesas, hechas para jugar al póquer." +msgid "" +"In this work of adolescent fiction, a young gemini discovers that the " +"astrology section of his small town newspaper is eerily preminiscent. His " +"efforts to uncover the oracle reveal more than the stars could have " +"predicted." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" +msgid "Fire When You See My Eyes" +msgid_plural "Fire When You See My Eyess" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of -#. Sorcery cards'} +#. ~ Description for Fire When You See My Eyes #: lang/json/BOOK_from_json.py msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." +"In a cataclysmic future, advanced technology gives parents access to video " +"footage of every moment of their teenage children's lives." msgstr "" -"Es un conjunto de cartas hechas para jugar a \"Hechicería\". Cada carta " -"tiene una extraña imagen de un monstruo." #: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" +msgid "Peanut Butter Bruised" +msgid_plural "Peanut Butter Bruiseds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} +#. ~ Description for Peanut Butter Bruised #: lang/json/BOOK_from_json.py msgid "" -"A game where one draws an image, and the others attempt to guess what it is." +"In this work of young adult fiction, a woman raised on food stamps falls in " +"love with a young cook. More importantly, she falls in love with the idea " +"of become a professional chef." msgstr "" -"Es un juego donde uno dibuja una imagen y los demás deben intentar adivinar " -"qué es." #: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" +msgid "Ready When You Are" +msgid_plural "Ready When You Ares" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} +#. ~ Description for Ready When You Are #: lang/json/BOOK_from_json.py msgid "" -"A game where players traverse around the board buying property and swindling" -" their friends." +"When three teenage girls ditch class to drive cross country together they " +"get a strong dose of life lessons on the road. This work of young adult " +"fiction explores how friendships evolve in early adulthood." msgstr "" -"Es un juego donde los jugadores van alrededor del tablero comprando " -"propiedades y estafando a sus amigos." #: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" +msgid "Study of a Boy" +msgid_plural "Study of a Boys" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and -#. Bandits'} +#. ~ Description for Study of a Boy #: lang/json/BOOK_from_json.py msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive" -" the apocalypse while surviving the apocalypse." +"A high school sophomore's personal journal is stolen and then leaked on " +"social media. When it goes viral he is forced simultaneously to contend " +"with both fame and betrayal." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" +msgid "Summer Variables" +msgid_plural "Summer Variabless" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} +#. ~ Description for Summer Variables #: lang/json/BOOK_from_json.py msgid "" -"A strategy game featuring a set of tiny figurines of fantasy creatures." +"In this book written primarily for young adults, a woman's modest summer " +"internship results in an incredible discovery that attracts the attention of" +" unsavory elements." msgstr "" -"Es un juego de estrategia con pequeños muñequitos de criaturas fantásticas." #: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" +msgid "original copy of Housefly" +msgid_plural "original copies of Housefly" +msgstr[0] "copia original de Mosca" +msgstr[1] "copias originales de Mosca" + +#. ~ Description for {'str': 'original copy of Housefly', 'str_pl': 'original +#. copies of Housefly'} +#: lang/json/BOOK_from_json.py +msgid "" +"The only copy of Housefly in existence - a long book about three individuals" +" drawn together by fate in the early 1800s to save their English town of " +"Victoria from a mysterious threat. You never got to publish it, but reading" +" it lets you forget the horrors of the Cataclysm, if only for a moment." +msgstr "" +"La única copia de Mosca que existe: un largo libro acerca de tres individuos" +" unidos por el destino a principios del siglo XIX para salvar Victoria, su " +"pueblo inglés, de una amenaza misteriosa. Nunca llegaste a publicarlo, pero " +"leerlo te hace olvidar los horrores del Cataclismo, aunque sea solo por un " +"momento." + +#: lang/json/BOOK_from_json.py +msgid "USMC M1014 technical manual" +msgid_plural "USMC M1014 technical manuals" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of -#. Battlehammer 20k'} +#. ~ Description for {'str': 'USMC M1014 technical manual'} #: lang/json/BOOK_from_json.py msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." +"A pocket-sized book printed in 2000 by the United States Marine Corps for " +"official use. It describes the operation, repair, and cleaning of the " +"Benilli M1014 shotgun. Though specific to the M4, it can provide a wealth " +"of information to the trained eye." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" +msgid "Black Powder to Berettas" +msgid_plural "copies of Black Powder to Berettas" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of -#. Settlers of the Ranch'} +#. ~ Description for {'str': 'Black Powder to Berettas', 'str_pl': 'copies of +#. Black Powder to Berettas'} #: lang/json/BOOK_from_json.py msgid "" -"A strategy game where players build settlements and trade for supplies." +"This hardcover book, aimed at the gun nut, provides an illustrated, concise " +"history of the handgun throughout history, including technical " +"specifications and use techniques. It's difficult to follow without a " +"passing knowledge in pistols, but an experienced handgun user could glean " +"much from it." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" +msgid "America's Rifle" +msgid_plural "copies of America's Rifle" +msgstr[0] "copia de El Rifle de Estados Unidos" +msgstr[1] "copias de El Rifle de Estados Unidos" + +#. ~ Description for {'str': "America's Rifle", 'str_pl': "copies of America's +#. Rifle"} +#: lang/json/BOOK_from_json.py +msgid "" +"A history book penned by an anonymous author. Starting from its design by " +"John Garand and ending with the Vietnam War, it provides a detailed run-down" +" of the M1 Garand rifle's use throughout history as well as its design and " +"quirks with the weapon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Jane's Flamethrowers and Firestarters" +msgid_plural "copies of Jane's Flamethrowers and Firestarters" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} +#. ~ Description for {'str': "Jane's Flamethrowers and Firestarters", +#. 'str_pl': "copies of Jane's Flamethrowers and Firestarters"} #: lang/json/BOOK_from_json.py msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." +"A detailed, full-colored guide to flamethrowers, incendiary weapons, and " +"napalm. It builds off of information provided in its sister book, Jane's " +"Mortars and Rocket Launchers, and so it's mostly incomprehensible to anyone " +"without prior knowledge." msgstr "" -"Es un juego donde los jugadores intentan adivinar el lugar donde el oponente" -" a ubicado sus barcos en el tablero." #: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" +msgid "Nuclear Physics Made Easy" +msgid_plural "copies of Nuclear Physics Made Easy" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder -#. Mystery'} +#. ~ Description for {'str': 'Nuclear Physics Made Easy', 'str_pl': 'copies of +#. Nuclear Physics Made Easy'} #: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." +msgid "" +"A book detailing the workings of state of the art atomic technology, and the" +" physics behind it." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dr Moreau and You" +msgid_plural "copies of Dr Moreau and You" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Dr Moreau and You', 'str_pl': 'copies of Dr +#. Moreau and You'} +#: lang/json/BOOK_from_json.py +msgid "" +"In what many considered a stunning example of poor taste and others " +"considered overt specieism this text on the creation of Uplifted Animals " +"references a story about sapient animals killing their creator. Otherwise a" +" dry text about genetic modification." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Millyficent's Diary" +msgid_plural "copies of Millyficent's Diary" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': "Millyficent's Diary", 'str_pl': "copies of +#. Millyficent's Diary"} +#: lang/json/BOOK_from_json.py +msgid "" +"A pocket-sized book filled to the margins with cramped handwriting and notes" +" on the biology of Mi-Go and other musings. It's hard to understand and " +"quite gruesome in some places and written in a shorthand or cipher in " +"others." +msgstr "" + +#. ~ Description for {'str': "children's book"} +#: lang/json/BOOK_from_json.py +msgid "" +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the sky grew " +"dark and the aliens arrived." +msgstr "" + +#. ~ Description for {'str': 'TIME magazine'} +#. ~ Description for {'str': 'US Weekly', 'str_pl': 'US Weeklies'} +#: lang/json/BOOK_from_json.py +msgid "" +"Current events concerning a bunch of people who're all dead now - or working" +" for them." +msgstr "" + +#. ~ Description for {'str': 'Zombie Survival Guide', 'str_pl': 'copies of +#. Zombie Survival Guide'} +#: lang/json/BOOK_from_json.py +msgid "" +"While this seems like it would be at least partially useful in this " +"situation, the sheer amount of speculative fiction present makes it " +"practically useless. What the hell is a mi-go? Aren't triffids from some " +"ancient movie?" msgstr "" #: lang/json/BOOK_from_json.py @@ -30812,87 +31885,34 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Weapons of Asgard" -msgid_plural "copies of The Weapons of Asgard" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'The Weapons of Asgard', 'str_pl': 'copies of The -#. Weapons of Asgard'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is about creating replicas of the weapons used by the Norse Gods, " -"such as the well-known Mjölnir. It is well illustrated with lots of " -"pictures." -msgstr "" -"Este libro es sobre crear réplicas de las armas utilizadas por los Dioses " -"Nórdicos, como el famoso martillo Mjölnir. Está bien ilustrado con muchas " -"imágenes." - -#: lang/json/BOOK_from_json.py -msgid "Hacking Robots for Fun & Profit" -msgid_plural "copies of Hacking Robots for Fun & Profit" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Hacking Robots for Fun & Profit', 'str_pl': -#. 'copies of Hacking Robots for Fun & Profit'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book on illegally obtaining, reprogramming, and modifying robots. It has " -"lots of helpful step-by-step guides and example blueprints." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Popular Robotics" -msgid_plural "issues of Popular Robotics" +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Popular Robotics', 'str_pl': 'issues of Popular -#. Robotics'} -#: lang/json/BOOK_from_json.py -msgid "A magazine about building and altering your own robots." -msgstr "Es una revista sobre cómo construir y modificar tus propios robots." - -#: lang/json/BOOK_from_json.py -msgid "Artillery and Field Gunnery" -msgid_plural "copies of Artillery and Field Gunnery" -msgstr[0] "Artillería y Armamento de Campo" -msgstr[1] "copias de Artillería y Armamento de Campo" - -#. ~ Description for {'str': 'Artillery and Field Gunnery', 'str_pl': 'copies -#. of Artillery and Field Gunnery'} +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', +#. 'str_pl': 'copies of In the Beginning… Was the Command Line'} #: lang/json/BOOK_from_json.py msgid "" -"A textbook on the history of modern artillery, with a number of " -"illustrations and excerpts from various field manuals. A competent " -"handloader or mechanic might find additional uses for the more technical " -"parts of the text." +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." msgstr "" -"Es un manual de la historia de la artillería moderna, con varias " -"ilustraciones y fragmentos de distintos manuales de campo. Aquellos " -"competentes artilleros o mecánicos pueden encontrar más usos en las partes " -"técnicas del texto." #: lang/json/BOOK_from_json.py -msgid "Principles of Postmortem Mind Control" -msgid_plural "copies of Principles of Postmortem Mind Control" +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Principles of Postmortem Mind Control', -#. 'str_pl': 'copies of Principles of Postmortem Mind Control'} +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': +#. 'copies of Principles of Compiler Design'} #: lang/json/BOOK_from_json.py msgid "" -"A thick book containing research notes of a mad scientist. It describes " -"various methods of reanimating and controlling the dead. There's a lot of " -"gory details and technical language mixed in, so it's not easy to read." +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." msgstr "" -"Un libro grueso que contiene notas de investigación de científicos locos. " -"Describe varios métodos para reanimar y controlar a los muertos. Tiene " -"muchos detalles sangrientos y lenguaje técnico mezclado, así que no es muy " -"fácil de leer." #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -31230,8 +32250,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "glycerol" msgid_plural "glycerol" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "glicerol" +msgstr[1] "glicerol" #. ~ Description for {'str_sp': 'glycerol'} #: lang/json/COMESTIBLE_from_json.py @@ -31642,6 +32662,8 @@ msgid "" "A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" " drink of choice." msgstr "" +"Es una mezcla de zumo de naranja y vodka. El trago favorito del mecánico " +"borracho subrepticio." #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -31829,6 +32851,8 @@ msgid "" "A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" +"Es una cerveza sabrosa y sustanciosa elaborada por monjes en Bélgica. Mejor " +"tomarla en un cáliz." #: lang/json/COMESTIBLE_from_json.py msgid "imperial stout" @@ -32064,8 +33088,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "martini" msgid_plural "martinis" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "martini" +msgstr[1] "martinis" #. ~ Description for martini #: lang/json/COMESTIBLE_from_json.py @@ -32074,6 +33098,17 @@ msgid "" "Prohibition era." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -32506,6 +33541,7 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for large human stomach +#. ~ Description for large demihuman stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "" @@ -32520,6 +33556,7 @@ msgstr[1] "" #. ~ Description for {'str': 'chunk of human fat', 'str_pl': 'chunks of human #. fat'} +#. ~ Description for chunk of demihuman fat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly harvested from a human body." msgstr "" @@ -32623,8 +33660,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "scrap of mutant meat" msgid_plural "scraps of mutant meat" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pedazo de carne mutante" +msgstr[1] "pedazos de carne mutante" #. ~ Description for {'str': 'scrap of mutant meat', 'str_pl': 'scraps of #. mutant meat'} @@ -32818,6 +33855,14 @@ msgid_plural "jerk jerky" msgstr[0] "cecina de hombre" msgstr[1] "cecinas de hombre" +#. ~ Conditional name for {'str_sp': 'meat jerky'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal jerky" +msgid_plural "talking animal jerky" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'meat jerky'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -32859,6 +33904,13 @@ msgid_plural "smoked sucker" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for smoked meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked Narnian" +msgid_plural "smoked Narnian" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for smoked meat when COMPONENT_ID matches mutant #. ~ Conditional name for canned meat when COMPONENT_ID matches mutant #. ~ Conditional name for salted meat slice when COMPONENT_ID matches mutant @@ -32999,8 +34051,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" msgid_plural "cooked kidneys" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "riñón cocinado" +msgstr[1] "riñones cocinados" #. ~ Description for cooked kidney #: lang/json/COMESTIBLE_from_json.py @@ -33315,8 +34367,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tainted hide" msgid_plural "tainted hides" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pellejo contaminado" +msgstr[1] "pellejos contaminados" #. ~ Description for tainted hide #: lang/json/COMESTIBLE_from_json.py @@ -33343,6 +34395,19 @@ msgstr "" "para almacenarlo y para curtirlo, o te lo puedes comer si estás muy " "desesperado." +#: lang/json/COMESTIBLE_from_json.py +msgid "raw demihuman skin" +msgid_plural "raw demihuman skins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for raw demihuman skin +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A carefully folded raw skin harvested from a demihuman. You can cure it for" +" storage and tanning, or eat it if you're desperate enough." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" msgid_plural "raw pelts" @@ -33363,8 +34428,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tainted pelt" msgid_plural "tainted pelts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pelaje contaminado" +msgstr[1] "pelajes contaminados" #. ~ Description for tainted pelt #: lang/json/COMESTIBLE_from_json.py @@ -33390,6 +34455,9 @@ msgid "" "still has the fur attached. You can cure it for storage and tanning, or eat" " it if you're desperate enough." msgstr "" +"Es un pelaje crudo cuidadosamente doblado de un humano mutante con piel. " +"Todavía tiene la piel pegada. La puedes curar para almacenarla y para " +"curtirla, o te la puedes comer si estás muy desesperado." #: lang/json/COMESTIBLE_from_json.py msgid "seeping heart" @@ -33483,6 +34551,255 @@ msgid "" "blue veins running through it." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman stomach" +msgid_plural "demihuman stomachs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "The stomach of an intelligent demihuman. It is surprisingly durable." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "large demihuman stomach" +msgid_plural "large demihuman stomachs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chunk of demihuman fat" +msgid_plural "chunk of demihuman fats" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman tallow" +msgid_plural "demihuman tallows" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for demihuman tallow +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of cleaned and rendered demihuman fat. It will remain " +"edible for a very long time, and can be used as an ingredient in many foods " +"and projects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman lard" +msgid_plural "demihuman lards" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for demihuman lard +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of dry-rendered demihuman fat. It will remain edible " +"for a very long time, and can be used as an ingredient in many foods and " +"projects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman flesh" +msgid_plural "demihuman fleshs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for demihuman flesh +#: lang/json/COMESTIBLE_from_json.py +msgid "Freshly butchered from a demihuman body." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked mongrel" +msgid_plural "cooked mongrels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for cooked mongrel +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A freshly cooked slice of something close to being a real person. Tastes " +"like long pig." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "boiled demihuman stomach" +msgid_plural "boiled demihuman stomachs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for boiled demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" + +#. ~ Description for {'str': 'boiled demihuman stomach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A small boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cereal" +msgid_plural "cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A generic box of cereal, you shouldn't see this." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace cereal" +msgid_plural "FoodPlace cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'FoodPlace cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A generic box of FoodPlace brand sugary cereal, you shouldn't see this." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Snicker-Snacks cereal" +msgid_plural "Snicker-Snacks cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Snicker-Snacks cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Snicker-Snack cereal. Each tiny \"Snicker-Snack\" is shaped" +" like human food!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Carpenter Crunch cereal" +msgid_plural "Carpenter Crunch cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Carpenter Crunch cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is FoodPlace brand \"Carpenter Crunch\" cereal with the iconic " +"\"Breakfast Beaver\" mascot on the box. It tastes kind of like nails." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Brantastic cereal" +msgid_plural "Brantastic cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Brantastic cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Brantastic\" cereal. An essential part of a complete Bran" +" breakfast." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Sugar Chomps cereal" +msgid_plural "Sugar Chomps cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Sugar Chomps cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Sugar Chomps\" cereal. \"Chocolate Frosted Crunchy Sugar " +"Chomps: 8 essential vitamins packed into that rich, fudgy taste!\"" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Honey Pellet cereal" +msgid_plural "Honey Pellet cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Honey Pellet cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Amorphous Honey Pellet\" cereal. The box promises " +"\"Inconceivable sustenance in tiny morsels of yellow honey.\"" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Fructose Flakes cereal" +msgid_plural "Fructose Flakes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Fructose Flakes cereal', 'str_pl': 'Fructose +#. Flakes'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Fructose Flakes cereal. Fortified with energy enriched " +"FoodSyrup™ that supports life most efficiently." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodios cereal" +msgid_plural "Foodios cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Foodios cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace brand \"Foodios\" cereal. Foodios™ are Foodalicious™!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sugary cereal" +msgid_plural "sugary cereals" +msgstr[0] "cereal azucarado" +msgstr[1] "cereales azucarados" + +#. ~ Description for sugary cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sugary breakfast cereal with marshmallows. It takes you back to your " +"childhood." +msgstr "" +"Son cereales azucarados para el desayuno, con malvaviscos. Te hace volver a " +"tu infancia." + +#: lang/json/COMESTIBLE_from_json.py +msgid "wheat cereal" +msgid_plural "wheat cereal" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'wheat cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " +"your heart." +msgstr "" +"Son cereales de trigo integral. Están sorprendentemente buenos, y según " +"dice, es bueno para tu corazón." + +#: lang/json/COMESTIBLE_from_json.py +msgid "corn cereal" +msgid_plural "corn cereals" +msgstr[0] "cereal de maíz" +msgstr[1] "cereales de maíz" + +#. ~ Description for corn cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "Plain cornflake cereal. They're not that good, but it beats nothing." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "raw milk" msgid_plural "raw milk" @@ -33712,6 +35029,8 @@ msgid "" "Milk some almonds? Not quite, but blend them with water, yes! A dairy-free" " alternative strong in calcium! Rival to soy milk." msgstr "" +"¿Ordeñar almendras? No, pero mezclarlas con agua, ¡sí! Es una alternativa a " +"la leche, rica en calcio. Compite con la leche de soja." #: lang/json/COMESTIBLE_from_json.py msgid "soy milk" @@ -33828,8 +35147,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "coffee substitute" msgid_plural "coffee substitute" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sucedáneo de café" +msgstr[1] "sucedáneo de café" #. ~ Description for {'str_sp': 'coffee substitute'} #: lang/json/COMESTIBLE_from_json.py @@ -33851,6 +35170,9 @@ msgid "" "Toasted, ground chicory root steeped in boiling water. This bitter brew is " "used as a coffee substitute, though it tastes nothing like coffee." msgstr "" +"Son raíces tostadas y molidas de achicoria, sumergidas en agua hirviendo. " +"Esta infusión amarga se utiliza como sustituto del café, aunque no tiene un " +"gusto ni parecido." #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" @@ -33897,10 +35219,8 @@ msgstr[1] "zumos de arándano rojo" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." msgstr "" -"Hecho con verdaderos arándanos rojos de Massachusetts. Delicioso y " -"nutritivo." #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -34080,6 +35400,8 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A healthy beverage made from lotus flowers steeped in boiling water." msgstr "" +"Es una bebida saludable hecha con flores de loto sumergidas en agua " +"hirviendo." #: lang/json/COMESTIBLE_from_json.py msgid "Mexican hot chocolate" @@ -34133,6 +35455,8 @@ msgid "" "Coffee syrup mixed into milk. It's been the state drink of Rhode Island " "since 1993." msgstr "" +"Es una mezcla de café y leche. Ha sido la bebida estatal de Rhode Island " +"desde 1993." #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" @@ -34263,8 +35587,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rehydration drink" msgid_plural "rehydration drinks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bebida hidratante" +msgstr[1] "bebida hidratante" #. ~ Description for rehydration drink #: lang/json/COMESTIBLE_from_json.py @@ -34350,6 +35674,73 @@ msgstr "" "Agua mineral extravagante, tan extravagante que tenerla en la mano te hace " "sentir extravagante." +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -34424,32 +35815,6 @@ msgstr "" "Miel, eso que hacen las abejas. Esta es \"miel de bosque\", la forma líquida" " de la miel. Esta miel no se echa a perder y es buena para la digestión." -#: lang/json/COMESTIBLE_from_json.py -msgid "peanut butter" -msgid_plural "peanut butters" -msgstr[0] "mantequilla de cacahuete" -msgstr[1] "mantequilla de cacahuetes" - -#. ~ Description for peanut butter -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A brown goo that tastes very little like its namesake. It's not bad, but " -"it'll stick to the roof of your mouth." -msgstr "" -"Una crema marrón que no tiene gusto a lo que su nombre indica. No está mal, " -"pero se te va a pegar en el paladar." - -#: lang/json/COMESTIBLE_from_json.py -msgid "imitation peanutbutter" -msgid_plural "imitation peanutbutters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for imitation peanutbutter -#: lang/json/COMESTIBLE_from_json.py -msgid "A thick, nutty brown paste." -msgstr "" - #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" msgid_plural "vinegar" @@ -34538,9 +35903,22 @@ msgstr "Es un nutritivo huevo, puesto por algún pájaro." #: lang/json/COMESTIBLE_from_json.py msgid "chicken egg" msgid_plural "chicken eggs" +msgstr[0] "huevo de gallina" +msgstr[1] "huevos de gallina" + +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" @@ -34662,13 +36040,13 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "roe" msgid_plural "roes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "hueva" +msgstr[1] "huevas" #. ~ Description for roe #: lang/json/COMESTIBLE_from_json.py msgid "Common roe from an unknown fish." -msgstr "" +msgstr "Es una hueva común de algún pez desconocido." #: lang/json/COMESTIBLE_from_json.py msgid "powdered egg" @@ -34702,6 +36080,8 @@ msgstr[1] "huevos hervidos" #: lang/json/COMESTIBLE_from_json.py msgid "A hard-boiled egg, still in its shell. Portable and nutritious!" msgstr "" +"Es un huevo duro hervido, todavía con la cáscara. ¡Transportable y " +"nutritivo!" #: lang/json/COMESTIBLE_from_json.py msgid "pickled egg" @@ -34714,6 +36094,8 @@ msgstr[1] "" msgid "" "A pickled egg. Rather salty, but tastes good and lasts for a long time." msgstr "" +"Es huevo al escabeche. Bastante salado, pero tiene buen sabor y dura mucho " +"tiempo." #: lang/json/COMESTIBLE_from_json.py msgid "milkshake" @@ -34849,7 +36231,7 @@ msgstr[1] "" #. ~ Description for {'str': 'sorbet', 'str_pl': 'sorbet scoops'} #: lang/json/COMESTIBLE_from_json.py msgid "A simple frozen dessert food made from water and fruit juice." -msgstr "" +msgstr "Es un simple postre helado hecho con agua y zumo de frutas." #: lang/json/COMESTIBLE_from_json.py msgid "gelato" @@ -35018,6 +36400,19 @@ msgstr "" "Esta empapada masa de fruta en conserva, ha sido hervida y enlatada en una " "vida anterior. Insulsa, floja y decolorándose." +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -35445,8 +36840,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "irradiated cabbage" msgid_plural "irradiated cabbages" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "repollo irradiado" +msgstr[1] "repollos irradiados" #. ~ Description for irradiated cabbage #: lang/json/COMESTIBLE_from_json.py @@ -36053,32 +37448,6 @@ msgstr "Un poco de caramelo. Sigue siendo malo para tu salud." msgid "Betcha can't eat just one." msgstr "A que no te puedes comer una sola." -#: lang/json/COMESTIBLE_from_json.py -msgid "sugary cereal" -msgid_plural "sugary cereals" -msgstr[0] "cereal azucarado" -msgstr[1] "cereales azucarados" - -#. ~ Description for sugary cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sugary breakfast cereal with marshmallows. It takes you back to your " -"childhood." -msgstr "" -"Son cereales azucarados para el desayuno, con malvaviscos. Te hace volver a " -"tu infancia." - -#: lang/json/COMESTIBLE_from_json.py -msgid "corn cereal" -msgid_plural "corn cereals" -msgstr[0] "cereal de maíz" -msgstr[1] "cereales de maíz" - -#. ~ Description for corn cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "" - #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" @@ -36123,6 +37492,14 @@ msgid_plural "niño nachos" msgstr[0] "nachos niño" msgstr[1] "nachos niño" +#. ~ Conditional name for {'str_sp': 'meat nachos'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos" +msgid_plural "nibelung nachos" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'meat nachos'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -36143,8 +37520,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "meat nachos with cheese" msgid_plural "meat nachos with cheese" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "nachos de carne con queso" +msgstr[1] "nachos de carne con queso" #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG #. matches CANNIBALISM @@ -36154,13 +37531,21 @@ msgid_plural "niño nachos with cheese" msgstr[0] "nachos niño con queso" msgstr[1] "nachos niño con queso" +#. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos with cheese" +msgid_plural "nibelung nachos with cheese" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when #. COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py msgid "cheese and chupacabra nachos" msgid_plural "cheese and chupacabra nachos" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "nachos de queso y chupacabra" +msgstr[1] "nachos de queso y chupacabra" #. ~ Description for {'str_sp': 'meat nachos with cheese'} #: lang/json/COMESTIBLE_from_json.py @@ -36352,8 +37737,8 @@ msgstr "Son aros de cebolla fritos. Crujientes y deliciosos." #: lang/json/COMESTIBLE_from_json.py msgid "uncooked hot dog" msgid_plural "uncooked hot dogs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "perrito caliente sin cocinar" +msgstr[1] "perritos calientes sin cocinar" #. ~ Description for {'str': 'uncooked hot dog'} #: lang/json/COMESTIBLE_from_json.py @@ -36361,6 +37746,8 @@ msgid "" "A heavily processed sausage, commonplace at baseball games before the " "Cataclysm. It would taste much better prepared." msgstr "" +"Es una salchicha muy procesada, era común en los partidos de béisbol antes " +"del Cataclismo. Si estuviera preparada sería mucho más rica." #: lang/json/COMESTIBLE_from_json.py msgid "campfire hot dog" @@ -36418,6 +37805,13 @@ msgid_plural "raw Mannwursts" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for raw sausage when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "raw killbasa" +msgid_plural "raw killbasas" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for raw sausage when COMPONENT_ID matches mutant #. ~ Conditional name for smoked sausage when COMPONENT_ID matches mutant #. ~ Conditional name for cooked sausage when COMPONENT_ID matches mutant @@ -36448,6 +37842,14 @@ msgid_plural "smoked Mannwursts" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for smoked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked killbasa" +msgid_plural "smoked killbasas" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for smoked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." @@ -36468,6 +37870,14 @@ msgid_plural "cooked Mannwursts" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for cooked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked killbasa" +msgid_plural "cooked killbasas" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." @@ -36497,6 +37907,14 @@ msgid_plural "Mannbrats" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "frankenfurter" +msgid_plural "frankenfurters" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str': 'bratwurst'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -36627,6 +38045,14 @@ msgid_plural "cheapskate %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for currywurst when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "confusing %s" +msgid_plural "confusing %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for currywurst when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -36666,6 +38092,15 @@ msgid_plural "amoral %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str': 'aspic'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orwell's %s" +msgid_plural "Orwell's %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for {'str': 'aspic'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -36774,6 +38209,15 @@ msgid_plural "brat %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str_sp': 'bologna'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Tumnis %s" +msgid_plural "Tumnis %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'bologna'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -36865,6 +38309,14 @@ msgid_plural "Mannwurst gravies" msgstr[0] "salsa espesa de Mannwurst" msgstr[1] "salsas espesas de Mannwurst" +#. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage +#. gravies'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "killbasa gravy" +msgid_plural "killbasa gravies" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage #. gravies'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -36897,6 +38349,15 @@ msgid_plural "prepper %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orley %s" +msgid_plural "Orley %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str_sp': 'pemmican'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -36926,9 +38387,17 @@ msgstr[1] "refuerzos para hamburguesas" #. ~ Conditional name for hamburger helper when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgid_plural "hobo helpers" -msgstr[0] "pasta instantánea sabor vagabundo" -msgstr[1] "pastas instantáneas sabor vagabundo" +msgid_plural "hobo helper" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for hamburger helper when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "halfling helper" +msgid_plural "halfling helper" +msgstr[0] "" +msgstr[1] "" #. ~ Conditional name for hamburger helper when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -36974,6 +38443,14 @@ msgid_plural "chilis con cabron" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con +#. carne'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "chili con Sindar" +msgid_plural "chilis con Sindar" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con #. carne'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -37155,7 +38632,14 @@ msgstr[1] "tartas de carne" #. ~ Conditional name for meat pie when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgid_plural "prick pies" +msgid_plural "prick pie" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for meat pie when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal pie" +msgid_plural "talking animal pie" msgstr[0] "" msgstr[1] "" @@ -37181,7 +38665,14 @@ msgstr[1] "pizzas de carne" #. ~ Conditional name for meat pizza when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgid_plural "poser pizzas" +msgid_plural "poser pizza" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for meat pizza when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "protesting pizza" +msgid_plural "protesting pizza" msgstr[0] "" msgstr[1] "" @@ -37243,9 +38734,16 @@ msgstr[1] "latas de carne" #. ~ Conditional name for canned meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" -msgid_plural "soylent slices" -msgstr[0] "locha de soylent" -msgstr[1] "lochas de soylent" +msgid_plural "soylent slice" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for canned meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient slice" +msgid_plural "sapient slice" +msgstr[0] "" +msgstr[1] "" #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py @@ -37265,7 +38763,15 @@ msgstr[1] "rebanadas de carne salada" #. ~ Conditional name for salted meat slice when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slice" -msgid_plural "salted simpleton slices" +msgid_plural "salted simpleton slice" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for salted meat slice when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "salted sapient slice" +msgid_plural "salted sapient slice" msgstr[0] "" msgstr[1] "" @@ -37284,7 +38790,15 @@ msgstr[1] "espagueti a la boloñesa" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" -msgid_plural "scoundrel spaghettis" +msgid_plural "scoundrel spaghetti" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "speaking spaghetti" +msgid_plural "speaking spaghetti" msgstr[0] "" msgstr[1] "" @@ -37316,6 +38830,14 @@ msgid_plural "Luigi %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for lasagne when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Lab %s" +msgid_plural "Lab %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for lasagne when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -37358,6 +38880,15 @@ msgid_plural "chump %s" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for cheeseburger when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "elf %s" +msgid_plural "elf %s" +msgstr[0] "%s élfico" +msgstr[1] "%s élficos" + #. ~ Conditional name for cheeseburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -37382,7 +38913,14 @@ msgstr[1] "hamburguesas" #. ~ Conditional name for hamburger when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgid_plural "bobburgers" +msgid_plural "bobburger" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for hamburger when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "Moreauburger" +msgid_plural "Moreauburger" msgstr[0] "" msgstr[1] "" @@ -37412,6 +38950,13 @@ msgid_plural "manwiches" msgstr[0] "mánguche" msgstr[1] "mánguches" +#. ~ Conditional name for sloppy joe when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "manfriendwich" +msgid_plural "manfriendwiches" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for sloppy joe when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -37438,6 +38983,14 @@ msgstr[1] "tacos" #, python-format msgid "tio %s" msgid_plural "tio %s" +msgstr[0] "tío %s" +msgstr[1] "tíos %s" + +#. ~ Conditional name for taco when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "talking %s" +msgid_plural "talking %s" msgstr[0] "" msgstr[1] "" @@ -37467,7 +39020,15 @@ msgstr[1] "carnes en escabeche" #. ~ Conditional name for pickled meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgid_plural "pickled punks" +msgid_plural "pickled punk" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for pickled meat when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "pickled anthro" +msgid_plural "pickled anthro" msgstr[0] "" msgstr[1] "" @@ -37492,6 +39053,19 @@ msgid_plural "%s, human" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for dehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for rehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for {'str': 'haggis', 'str_pl': 'haggises'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "%s, demihuman" +msgid_plural "%s, demihuman" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -37851,6 +39425,11 @@ msgid_plural "caffeine pills" msgstr[0] "pastilla de cafeína" msgstr[1] "pastillas de cafeína" +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "" + #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -38228,8 +39807,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "(ethanol) filtered high quality crude oil" msgid_plural "(ethanol) filtered high quality crude oil" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "(etanol) petróleo crudo filtrado de alta calidad" +msgstr[1] "(etanol) petróleo crudo filtrado de alta calidad" #. ~ Description for {'str_sp': '(ethanol) filtered high quality crude oil'} #: lang/json/COMESTIBLE_from_json.py @@ -38384,10 +39963,9 @@ msgstr[1] "vacunas para la gripe" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." msgstr "" -"Una vacuna farmacéutica para la gripe, diseñada para vacunaciones en masa. " -"Todavía en su paquete original. Supuestamente, te hace inmune a la gripe." #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -38398,7 +39976,7 @@ msgstr[1] "chicle" #. ~ Description for {'str_sp': 'chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "Bright pink sugar-free chewing gum." -msgstr "" +msgstr "Es chicle sin azúcar de un rosa brillante." #: lang/json/COMESTIBLE_from_json.py msgid "hand-rolled cigarette" @@ -38671,8 +40249,8 @@ msgstr "Jarabe para la tos hecho de amapola mutada. Te va a dar sueño." #: lang/json/COMESTIBLE_from_json.py src/bionics.cpp msgid "Prozac" msgid_plural "Prozac" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Prozac" +msgstr[1] "Prozac" #. ~ Description for {'str_sp': 'Prozac'} #: lang/json/COMESTIBLE_from_json.py @@ -39050,7 +40628,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." +"urges." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -39291,6 +40869,33 @@ msgstr "" "esterilizado con radiación, así que es seguro comerlo. Al ser expuesto al " "ambiente se empezó a poner feo." +#: lang/json/COMESTIBLE_from_json.py +msgid "spinach fettuccine entree" +msgid_plural "spinach fettuccine entrees" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for spinach fettuccine entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The creamy spinach fettuccine entree from an MRE. Sterilized using " +"radiation, so it's safe to eat. Exposed to the atmosphere, it has started " +"to go bad." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "ratatouille entree" +msgid_plural "ratatouille entrees" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for ratatouille entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The ratatouille entree from an MRE. Sterilized using radiation, so it's " +"safe to eat. Exposed to the atmosphere, it has started to go bad." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" msgid_plural "cheese tortellini entrees" @@ -39563,8 +41168,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "abstract iv mutagen flavor" msgid_plural "abstract iv mutagen flavors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sabor abstracto de mutágeno iv" +msgstr[1] "sabores abstractos de mutágeno iv" #. ~ Description for {'str': 'abstract iv mutagen flavor'} #: lang/json/COMESTIBLE_from_json.py @@ -39591,6 +41196,8 @@ msgid "" "A super-concentrated mutagen strongly resembling blood. You need a syringe " "to inject it… if you really want to?" msgstr "" +"Es un mutágeno super-concentrado muy similar a la sangre. Necesitás una " +"jeringa para inyectarlo... si realmente quieres hacerlo." #: lang/json/COMESTIBLE_from_json.py msgid "beast serum" @@ -39760,6 +41367,8 @@ msgid "" "A super-concentrated mutagen that looks like pureed spinach. You need a " "syringe to inject it… if you really want to?" msgstr "" +"Es un mutágeno superconcentrado que parece puré de espinaca. Necesitas una " +"jeringa para inyectarlo... si realmente quieres hacerlo." #: lang/json/COMESTIBLE_from_json.py msgid "raptor serum" @@ -39812,6 +41421,8 @@ msgid "" "A super-concentrated mutagen with pale filaments suspended in it. You need " "a syringe to inject it… if you really want to?" msgstr "" +"Es un mutágeno superconcentrado con filamentos pálidos en suspensión. " +"Necesitás una jeringa para inyectarlo... si realmente quieres hacerlo." #: lang/json/COMESTIBLE_from_json.py msgid "troglobite serum" @@ -39838,6 +41449,8 @@ msgid "" "A super-concentrated mutagen that's the color of honey, and is just as " "thick. You need a syringe to inject it… if you really want to?" msgstr "" +"Es un mutágeno superconcentrado del color de la miel, e igual de espeso. " +"Necesitás una jeringa para inyectarlo... si realmente quieres hacerlo." #: lang/json/COMESTIBLE_from_json.py msgid "mouse serum" @@ -40130,8 +41743,8 @@ msgstr "Es un puñado de frutos secos del árbol del pistacho, sin cáscara." #: lang/json/COMESTIBLE_from_json.py msgid "roasted pistachios" msgid_plural "roasted pistachios" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pistachos tostados" +msgstr[1] "pistachos tostados" #. ~ Description for {'str_sp': 'roasted pistachios'} #: lang/json/COMESTIBLE_from_json.py @@ -40240,7 +41853,7 @@ msgstr[1] "" msgid "" "A handful of raw hard nuts from a walnut tree, their shells have been " "removed." -msgstr "" +msgstr "Es un puñado de nueces crudas y duras de un nogal. Están sin cáscara." #: lang/json/COMESTIBLE_from_json.py msgid "roasted walnuts" @@ -40299,7 +41912,7 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'roasted edamame'} #: lang/json/COMESTIBLE_from_json.py msgid "Roasted edamame, a heart healthy snack." -msgstr "" +msgstr "Es edamame tostado, algo para picar saludable para el corazón." #: lang/json/COMESTIBLE_from_json.py msgid "roasted soy nuts" @@ -40361,6 +41974,43 @@ msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." msgstr "" "Es una deliciosa ambrosía de nuez de pecana. Una bebida digna de los dioses." +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter" +msgid_plural "peanut butters" +msgstr[0] "mantequilla de cacahuete" +msgstr[1] "mantequilla de cacahuetes" + +#. ~ Description for peanut butter +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A brown goo that tastes very little like its namesake. It's not bad, but " +"it'll stick to the roof of your mouth." +msgstr "" +"Una crema marrón que no tiene gusto a lo que su nombre indica. No está mal, " +"pero se te va a pegar en el paladar." + +#: lang/json/COMESTIBLE_from_json.py +msgid "imitation peanutbutter" +msgid_plural "imitation peanutbutters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for imitation peanutbutter +#: lang/json/COMESTIBLE_from_json.py +msgid "A thick, nutty brown paste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter spread" +msgid_plural "peanut butter spreads" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for peanut butter spread +#: lang/json/COMESTIBLE_from_json.py +msgid "Processed peanut butter spread.." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "acorns" msgid_plural "acorns" @@ -40487,8 +42137,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fried brain" msgid_plural "fried brains" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cerebro frito" +msgstr[1] "cerebros fritos" #. ~ Description for fried brain #: lang/json/COMESTIBLE_from_json.py @@ -40645,9 +42295,9 @@ msgstr[1] "jaleas reales" #. ~ Description for {'str': 'royal jelly', 'str_pl': 'royal jellies'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A translucent hexagonal chunk of wax, filled with dense, milky jelly. " -"Though some hold it as a panacea, it doesn't have any medical benefit. " -"Still, it is delicious, and rich with the most beneficial substances the " +"A translucent hexagonal chunk of wax, filled with dense, milky, bitter and " +"acidic-tasting jelly. Though some hold it as a panacea, it doesn't have any" +" medical benefit. Still it is rich with the most beneficial substances the " "hive can produce." msgstr "" @@ -40702,8 +42352,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "yeast" msgid_plural "yeast" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "levadura" +msgstr[1] "levadura" #. ~ Description for {'str_sp': 'yeast'} #: lang/json/COMESTIBLE_from_json.py @@ -40861,8 +42511,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw edamame" msgid_plural "raw edamames" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "edamame crudo" +msgstr[1] "edamames crudos" #. ~ Description for raw edamame #: lang/json/COMESTIBLE_from_json.py @@ -40897,6 +42547,17 @@ msgid "" " and is guaranteed 100% edible!" msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -41008,6 +42669,8 @@ msgid "" "What birds eat. Mainly made of seeds, silage or legumes. It's perfect for " "small birds." msgstr "" +"Es lo que come un pájaro. Más que nada son semillas, forraje y legumbres. Es" +" perfecto para pájaros pequeños." #: lang/json/COMESTIBLE_from_json.py msgid "dog food" @@ -41071,6 +42734,32 @@ msgstr[1] "" msgid "Some nectar. Seeing this item is a bug." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "tea bag" +msgid_plural "tea bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with tea leafs inside. Put it into boiling water to get your " +"cup of tea." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "herbal tea bag" +msgid_plural "herbal tea bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'herbal tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with dried wild herbs inside. Put it into boiling water to " +"make some healthy warm drink." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "protein drink" msgid_plural "protein drinks" @@ -41080,7 +42769,15 @@ msgstr[1] "bebidas de proteína" #. ~ Conditional name for protein drink when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" -msgid_plural "soylent green drinks" +msgid_plural "soylent green drink" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for protein drink when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green drink" +msgid_plural "sapient green drink" msgstr[0] "" msgstr[1] "" @@ -41120,6 +42817,14 @@ msgid_plural "soylent green powder" msgstr[0] "" msgstr[1] "" +#. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green powder" +msgid_plural "sapient green powder" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for {'str_sp': 'protein powder'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -41136,23 +42841,15 @@ msgstr[1] "" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the" -" product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you" -" hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable" +" to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" -"SoyPelusa realizó una exitosa campaña de crowdfunding para esta barra de " -"proteínas. Una persona puede vivir con una de estas barras, tres veces al " -"día, presumiblemente para siempre. Después de que los patrocinadores " -"recibieron su producto, se encontró un solo defecto: la mayoría de los " -"consumidores consideraban que el hambre era preferible al sabor. Los " -"almacenes del producto no se vendieron cuando la empresa se declaró en " -"quiebra, lo que brinda la oportunidad perfecta para que la FEMA los recoja y" -" los almacene en los refugios de evacuación. Ahora, tienes en tus manos un " -"pedazo de la famosa historia del crowdfunding. Que interesante." #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" @@ -41163,7 +42860,15 @@ msgstr[1] "" #. ~ Conditional name for protein shake when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgid_plural "soylent green shakes" +msgid_plural "soylent green shake" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green shake" +msgid_plural "sapient green shake" msgstr[0] "" msgstr[1] "" @@ -41186,7 +42891,15 @@ msgstr[1] "" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgid_plural "fortified soylent green shakes" +msgid_plural "fortified soylent green shake" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for fortified protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "fortified sapient green shake" +msgid_plural "fortified sapient green shake" msgstr[0] "" msgstr[1] "" @@ -41468,8 +43181,8 @@ msgstr "Una fruta grande y muy dulce." #: lang/json/COMESTIBLE_from_json.py msgid "blackberries" msgid_plural "blackberries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zarzamoras" +msgstr[1] "zarzamoras" #. ~ Description for {'str_sp': 'blackberries'} #: lang/json/COMESTIBLE_from_json.py @@ -41668,8 +43381,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cattail stalk" msgid_plural "cattail stalks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tallo de junco" +msgstr[1] "tallos de junco" #. ~ Description for {'str': 'cattail stalk'} #: lang/json/COMESTIBLE_from_json.py @@ -41843,6 +43556,8 @@ msgid "" "Large white tapered root of a horseradish plant. Way too spicy in this " "form, but can be used for making condiments." msgstr "" +"Es la raíz grande y filosa de una planta de rábano. Muy picante en este " +"estado, pero puede ser usada para hacer condimentos." #: lang/json/COMESTIBLE_from_json.py msgid "lettuce" @@ -42133,6 +43848,17 @@ msgid "" "fiddle. Delicious when cooked, but consuming raw can cause food poisoning." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" @@ -42273,6 +43999,14 @@ msgid_plural "slob sandwiches" msgstr[0] "sandwich de vago" msgstr[1] "sandwiches de vago" +#. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat +#. sandwiches'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "satyr sandwich" +msgid_plural "satyr sandwiches" +msgstr[0] "" +msgstr[1] "" + #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when COMPONENT_ID matches mutant #. ~ Conditional name for meat soup when COMPONENT_ID matches mutant @@ -42370,7 +44104,7 @@ msgstr[1] "" #. ~ Description for {'str': 'fish and spinach bagel'} #: lang/json/COMESTIBLE_from_json.py msgid "A delicious fish bagel with spinach and eggs." -msgstr "" +msgstr "Es una deliciosa rosca de pescado con espinaca y huevos." #: lang/json/COMESTIBLE_from_json.py msgid "BLT" @@ -42394,8 +44128,8 @@ msgstr[1] "semillas" #: lang/json/COMESTIBLE_from_json.py msgid "fruit seeds" msgid_plural "fruit seeds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "semillas de fruta" +msgstr[1] "semillas de fruta" #: lang/json/COMESTIBLE_from_json.py msgid "mushroom spores" @@ -42723,7 +44457,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cattail" -msgstr "" +msgstr "junco" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia seeds" @@ -42763,7 +44497,7 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'chicory seeds'} #: lang/json/COMESTIBLE_from_json.py msgid "Some chicory seeds." -msgstr "" +msgstr "Son unas semillas de achicoria." #: lang/json/COMESTIBLE_from_json.py msgid "wild root seeds" @@ -42791,7 +44525,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "decorative plant" -msgstr "" +msgstr "planta decorativa" #: lang/json/COMESTIBLE_from_json.py msgid "cactus seeds" @@ -43093,7 +44827,7 @@ msgstr[1] "semillas de diente de león" #. ~ Description for {'str_sp': 'dandelion seeds'} #: lang/json/COMESTIBLE_from_json.py msgid "Some dandelion seeds." -msgstr "" +msgstr "Son unas semillas de diente de león." #: lang/json/COMESTIBLE_from_json.py lang/json/furniture_from_json.py msgid "dandelion" @@ -43269,6 +45003,23 @@ msgstr "" msgid "chamomile" msgstr "manzanilla" +#: lang/json/COMESTIBLE_from_json.py +msgid "spurge seeds" +msgid_plural "spurge seeds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'spurge seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some spurge seeds." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py +msgid "spurge" +msgid_plural "spurges" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "popcorn seeds" msgid_plural "popcorn seeds" @@ -43302,6 +45053,17 @@ msgstr[1] "" msgid "Some mustard seeds. Could be ground into mustard powder." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -43319,6 +45081,14 @@ msgid_plural "bone broths" msgstr[0] "caldo de hueso" msgstr[1] "caldos de hueso" +#. ~ Conditional name for bone broth when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "demihuman %s" +msgid_plural "demihuman %s" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." @@ -43344,9 +45114,16 @@ msgstr[1] "sopas de carne" #. ~ Conditional name for meat soup when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgid_plural "sap soups" -msgstr[0] "sopa de savia" -msgstr[1] "sopas de savia" +msgid_plural "sap soup" +msgstr[0] "" +msgstr[1] "" + +#. ~ Conditional name for meat soup when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "goblin soup" +msgid_plural "goblin soup" +msgstr[0] "" +msgstr[1] "" #. ~ Description for meat soup #: lang/json/COMESTIBLE_from_json.py @@ -43605,7 +45382,7 @@ msgstr[1] "hierbas silvestres" #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " -"purslane, fireweed, and burdock." +"purslane, and fireweed." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -43635,6 +45412,19 @@ msgstr[1] "" msgid "A fragnant yellow powder. Not edible in this form." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" @@ -43878,7 +45668,7 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'tofu fried rice'} #: lang/json/COMESTIBLE_from_json.py msgid "Delicious tofu fried rice with vegetables. Tasty and very filling." -msgstr "" +msgstr "Es delicioso arroz frito con tofu y verduras. Sabroso y muy atiborra." #: lang/json/COMESTIBLE_from_json.py msgid "tofu stirfry" @@ -44194,8 +45984,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated alien fungus chunk" msgid_plural "dehydrated alien fungus chunks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pedazo de hongo alienígena deshidratado" +msgstr[1] "pedazos de hongo alienígena deshidratados" #. ~ Description for dehydrated alien fungus chunk #: lang/json/COMESTIBLE_from_json.py @@ -44254,19 +46044,17 @@ msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "wheat cereal" -msgid_plural "wheat cereals" -msgstr[0] "cereal de trigo" -msgstr[1] "cereales de trigo" +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for wheat cereal +#. ~ Description for {'str': 'cooked bell pepper'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " -"your heart." +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds" +" are removed." msgstr "" -"Son cereales de trigo integral. Están sorprendentemente buenos, y según " -"dice, es bueno para tu corazón." #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py @@ -44503,7 +46291,6 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for {'str_sp': 'granola'} -#. ~ Description for gluten free granola #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " @@ -45123,8 +46910,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dinosaur egg" msgid_plural "dinosaur eggs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "huevo de dinosaurio" +msgstr[1] "huevos de dinosaurio" #. ~ Description for dinosaur egg #: lang/json/COMESTIBLE_from_json.py @@ -45149,6 +46936,12 @@ msgid_plural "pachycephalosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -45162,11 +46955,17 @@ msgstr[0] "" msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py -msgid "triceratops egg" -msgid_plural "triceratops eggs" +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "triceratops egg" +msgid_plural "triceratops eggs" +msgstr[0] "huevo de triceratops" +msgstr[1] "huevos de triceratops" + #: lang/json/COMESTIBLE_from_json.py msgid "stegosaurus egg" msgid_plural "stegosaurus eggs" @@ -45179,6 +46978,12 @@ msgid_plural "ankylosaurus eggs" msgstr[0] "" msgstr[1] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "" +msgstr[1] "" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -45200,20 +47005,20 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "deinonychus egg" msgid_plural "deinonychus eggs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "huevo de deinonychus" +msgstr[1] "huevos de deinonychus" #: lang/json/COMESTIBLE_from_json.py msgid "utahraptor egg" msgid_plural "utahraptor eggs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "huevo de utahraptor" +msgstr[1] "huevos de utahraptor" #: lang/json/COMESTIBLE_from_json.py msgid "parasaurolophus egg" msgid_plural "parasaurolophus eggs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "huevo de parasaurolophus" +msgstr[1] "huevos de parasaurolophus" #: lang/json/COMESTIBLE_from_json.py msgid "dimorphodon egg" @@ -45230,8 +47035,8 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "potion starter" msgid_plural "potion starters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "poción de inicio" +msgstr[1] "pociones de inicio" #. ~ Description for potion starter #: lang/json/COMESTIBLE_from_json.py @@ -45243,8 +47048,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "superior potion starter" msgid_plural "superior potion starters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "poción superior de inicio" +msgstr[1] "pociones superior de inicio" #. ~ Description for superior potion starter #: lang/json/COMESTIBLE_from_json.py @@ -45309,8 +47114,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mana potion" msgid_plural "mana potions" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "poción de maná" +msgstr[1] "pociones de maná" #: lang/json/COMESTIBLE_from_json.py msgid "greater mana potion" @@ -45467,8 +47272,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "owlbear egg yolk" msgid_plural "owlbear egg yolks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "yema de huevo de oso lechuza" +msgstr[1] "yemas de huevo de oso lechuza" #. ~ Description for owlbear egg yolk #: lang/json/COMESTIBLE_from_json.py @@ -45566,6 +47371,8 @@ msgid "" "A very concentrated form of mana potion. You aren't quite sure of the " "effects this will have…" msgstr "" +"Es una poción de maná muy concentrada. No estás seguro de qué efectos " +"tendrá..." #: lang/json/COMESTIBLE_from_json.py msgid "necco corpse" @@ -45586,6 +47393,8 @@ msgid "" "A handful of squishy, fluffy, puffy, delicious marshmallows. They feel " "oddly warm…" msgstr "" +"Es un puñado de malvaviscos blandos, suaves, inflados y deliciosos. Están " +"extrañamente tibios..." #. ~ Description for {'str_sp': "s'mores"} #: lang/json/COMESTIBLE_from_json.py @@ -45621,6 +47430,8 @@ msgid "" "Bright pink chewing gum. Sugary, sweet, and bad for your teeth. It's oddly" " warm to the touch…" msgstr "" +"Es un chicle rosa brillante. Azucarado, dulce y malo para tus dientes. Es " +"extrañamente tibio al tacto..." #. ~ Description for caffeinated chewing gum #: lang/json/COMESTIBLE_from_json.py @@ -45698,679 +47509,750 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "necrotic head" -msgid_plural "necrotic heads" +msgid "TEST pine nuts" +msgid_plural "TEST pine nuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for necrotic head -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"The severed head of a zombie necromancer. Its eyes still roll in its head " -"and its jaws snap menacingly." -msgstr "" - #: lang/json/COMESTIBLE_from_json.py -msgid "mutagenic glob" -msgid_plural "mutagenic globs" +msgid "test bitter almonds" +msgid_plural "test bitter almonds" msgstr[0] "" msgstr[1] "" -#. ~ Description for mutagenic glob +#. ~ Description for {'str_sp': 'test bitter almonds'} #: lang/json/COMESTIBLE_from_json.py -msgid "A gelatinous glob of mutagen." +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when" +" eaten raw." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "honey" -msgid_plural "honey" -msgstr[0] "miel" -msgstr[1] "mieles" - -#. ~ Description for {'str_sp': 'honey'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Honey, that stuff bees make." -msgstr "Miel, esa cosa que hacen las abejas." - -#: lang/json/COMESTIBLE_from_json.py -msgid "TEST pine nuts" -msgid_plural "TEST pine nuts" +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fish sandwich" -msgid_plural "gluten free fish sandwiches" -msgstr[0] "sandwich de pescado sin gluten" -msgstr[1] "sandwiches de pescado sin gluten" - -#. ~ Description for {'str': 'gluten free fish sandwich', 'str_pl': 'gluten -#. free fish sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free and a delicious fish sandwich." +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable sandwich" -msgid_plural "gluten free vegetable sandwiches" +msgid "test apple" +msgid_plural "test apples" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free vegetable sandwich', 'str_pl': -#. 'gluten free vegetable sandwiches'} +#. ~ Description for {'str': 'test apple'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluen free bread and vegetables, that's it." +msgid "Test apple. May contain worms, but tastes delicious!" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free granola" -msgid_plural "gluten free granolas" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat sandwich" -msgid_plural "gluten free meat sandwiches" +msgid "test liquid" +msgid_plural "test liquid" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free meat sandwich', 'str_pl': 'gluten -#. free meat sandwiches'} +#. ~ Description for {'str_sp': 'test liquid'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free bread and meat, that's it." +msgid "" +"No clue what it's made of, but it's definitely liquid. Only for testing, do" +" not drink!" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free peanut butter sandwich" -msgid_plural "gluten free peanut butter sandwiches" +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free peanut butter sandwich', 'str_pl': -#. 'gluten free peanut butter sandwiches'} +#. ~ Description for tennis ball wine must #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some peanut butter smothered between two pieces of gluten free bread. Not " -"very filling and will stick to the roof of your mouth like glue." +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&J sandwich" -msgid_plural "gluten free PB&J sandwiches" +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free PB&J sandwich', 'str_pl': 'gluten -#. free PB&J sandwiches'} +#. ~ Description for {'str_sp': 'test tennis ball wine'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A delicious peanut butter and jelly gluten free sandwich. It reminds you of" -" the times your mother would make you lunch." +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&H sandwich" -msgid_plural "gluten free PB&H sandwiches" +msgid "test chewing gum" +msgid_plural "test chewing gum" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free PB&H sandwich', 'str_pl': 'gluten -#. free PB&H sandwiches'} +#. ~ Description for {'str_sp': 'test chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some damned fool put honey on this peanut butter sandwich, who in their " -"right mind- oh wait this is pretty good. Gluten free too!" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&M sandwich" -msgid_plural "gluten free PB&M sandwiches" +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free PB&M sandwich', 'str_pl': 'gluten -#. free PB&M sandwiches'} +#. ~ Description for {'str': 'test mutated thumb'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Who knew you could mix maple syrup and peanut butter to create yet another " -"different gluten free sandwich?" +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free hickory nut ambrosia" -msgid_plural "lactose free hickory nut ambrosias" -msgstr[0] "" -msgstr[1] "" +#: lang/json/CONTAINER_from_json.py +msgid "small metal tank" +msgid_plural "small metal tanks" +msgstr[0] "tanque de metal pequeño" +msgstr[1] "tanques de metal pequeños" -#. ~ Description for lactose free hickory nut ambrosia -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " -"made with an alternative to cows milk." +#. ~ Description for small metal tank +#: lang/json/CONTAINER_from_json.py +msgid "A small metal tank for holding gas or liquids. Useful for crafting." msgstr "" -#. ~ Description for cornmeal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"You think this is cornflour… or rice flour… Or something else. However, it" -" certainly is not wheat flour! It is useful for baking though." -msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "internal combustion engine" +msgid_plural "internal combustion engines" +msgstr[0] "" +msgstr[1] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free johnnycake" -msgid_plural "gluten free johnnycakes" +#: lang/json/ENGINE_from_json.py +msgid "base diesel engine" +msgid_plural "base diesel engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free johnnycake -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"We all crave for cake sometimes. This is not perfect, but it is a tasty and" -" nutritious gluten free fried bread treat. " -msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "base gasoline engine" +msgid_plural "base gasoline engines" +msgstr[0] "" +msgstr[1] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pancake" -msgid_plural "gluten free fruit pancakes" +#: lang/json/ENGINE_from_json.py +msgid "base steam engine" +msgid_plural "base steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "1-cylinder engine" +msgid_plural "1-cylinder engines" +msgstr[0] "motor de 1 cilindro" +msgstr[1] "motores de 1 cilindro" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free fruit pancake" -msgid_plural "lactose free fruit pancakes" +#. ~ Description for {'str': '1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A single-cylinder 4-stroke combustion engine." +msgstr "Un motor de combustión de 4 tiempos, de un solo cilindro." + +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgid_plural "large 1-cylinder engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious lactose free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." +"A powerful high-compression single-cylinder 4-stroke combustion engine." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit pancake" -msgid_plural "gluten free lactose free fruit pancakes" +#: lang/json/ENGINE_from_json.py +msgid "small 1-cylinder engine" +msgid_plural "small 1-cylinder engines" +msgstr[0] "motor pequeño de 1 cilindro" +msgstr[1] "motores pequeño de 1 cilindro" + +#. ~ Description for {'str': 'small 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small single-cylinder 2-stroke combustion engine." +msgstr "Un pequeño motor de combustión de un solo cilindro y de 2 tiempos." + +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious pancakes made out of the only things you can still eat." -" But at least it has real maple syrup, made sweeter and healthier with the " -"addition of wholesome fruit." +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate pancake" -msgid_plural "gluten free chocolate pancakes" -msgstr[0] "" -msgstr[1] "" +#: lang/json/ENGINE_from_json.py +msgid "Inline-4 engine" +msgid_plural "Inline-4 engines" +msgstr[0] "motor en línea de 4 cilindros" +msgstr[1] "motores en línea de 4 cilindros" -#. ~ Description for {'str': 'gluten free chocolate pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Inline-4 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small, yet powerful 4-cylinder combustion engine." +msgstr "Un pequeño pero poderoso motor de combustión de 4 cilindros en línea." + +#: lang/json/ENGINE_from_json.py +msgid "I6 diesel engine" +msgid_plural "I6 diesel engines" +msgstr[0] "motor diésel I6" +msgstr[1] "motores diésel I6" + +#. ~ Description for {'str': 'I6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful straight-6 diesel engine." +msgstr "Un poderoso motor diésel de 6 cilindros en línea." + +#: lang/json/ENGINE_from_json.py +msgid "V-twin engine" +msgid_plural "V-twin engines" +msgstr[0] "motor de dos cilindros en V" +msgstr[1] "motores de dos cilindros en V" + +#. ~ Description for {'str': 'V-twin engine'} +#: lang/json/ENGINE_from_json.py +msgid "A 2-cylinder 4-stroke combustion engine." +msgstr "Un motor de combustión de 4 tiempos, de dos cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V6 engine" +msgid_plural "V6 engines" +msgstr[0] "motor V6" +msgstr[1] "motores V6" + +#. ~ Description for {'str': 'V6 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder combustion engine." +msgstr "Un poderoso motor de combustión de 6 cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V6 diesel engine" +msgid_plural "V6 diesel engines" +msgstr[0] "motor diésel V6" +msgstr[1] "motores diésel V6" + +#. ~ Description for {'str': 'V6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder diesel engine." +msgstr "Un poderoso motor diésel de 6 cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V8 engine" +msgid_plural "V8 engines" +msgstr[0] "motor V8" +msgstr[1] "motores V8" + +#. ~ Description for {'str': 'V8 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A large and very powerful 8-cylinder combustion engine." +msgstr "Un gran motor muy poderoso de combustión de 8 cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V8 diesel engine" +msgid_plural "V8 diesel engines" +msgstr[0] "motor diésel V8" +msgstr[1] "motores diésel V8" + +#. ~ Description for {'str': 'V8 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 8-cylinder diesel engine." +msgstr "Un poderoso motor diésel de 8 cilindros." + +#: lang/json/ENGINE_from_json.py +msgid "V12 engine" +msgid_plural "V12 engines" +msgstr[0] "motor V12" +msgstr[1] "motores V12" + +#. ~ Description for {'str': 'V12 engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, with " -"delicious chocolate baked right in." +"A massive and extremely powerful V12 engine, usually built into high end " +"sports cars." msgstr "" +"Un enorme y extremadamente poderoso motor V12, usualmente utilizado por " +"coches deportivos de alta gama." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free French toast" -msgid_plural "gluten free French toasts" +#: lang/json/ENGINE_from_json.py +msgid "V12 diesel engine" +msgid_plural "V12 diesel engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'V12 diesel engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a milk and egg mixture then fried." +"A massive and extremely powerful V12 engine, usually built into heavy " +"trucks." msgstr "" +"Es un motor V12 enorme y extremadamente poderoso, usualmente utilizado en " +"camiones grandes." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free French toast" -msgid_plural "gluten free lactose free French toasts" +#: lang/json/ENGINE_from_json.py +msgid "makeshift steam engine" +msgid_plural "makeshift steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free lactose free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'makeshift steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a lactose free milk and egg mixture " -"then fried. You never thought it was possible, but now you truly feel like " -"a post millennial." +"A small, primitive, steam engine. An integrated boiler burns coal to heat " +"water into steam, driving a reciprocating shaft. A condenser recaptures the" +" water, making this a closed cycle system." msgstr "" +"Es un pequeño y primitivo motor de vapor. Una caldera integrada quema carbón" +" para calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free biscuit" -msgid_plural "gluten free biscuits" +#: lang/json/ENGINE_from_json.py +msgid "small steam engine" +msgid_plural "small steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free biscuit -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Delicious and filling, this home made gluten free biscuit is good, and good " -"for you!" +"A small steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condenser recaptures the water, " +"making this a closed cycle system." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pie" -msgid_plural "gluten free fruit pies" +#: lang/json/ENGINE_from_json.py +msgid "medium steam engine" +msgid_plural "medium steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free fruit pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a sweet fruit filling." +#. ~ Description for {'str': 'medium steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A medium-sized steam engine. An integrated boiler burns coal to heat water " +"into steam, driving a reciprocating shaft. A condenser recaptures the " +"water, making this a closed cycle system." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pie" -msgid_plural "gluten free vegetable pies" +#: lang/json/ENGINE_from_json.py +msgid "1350 hp gas turbine engine" +msgid_plural "1350 hp gas turbine engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free vegetable pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious vegetable filling." +#. ~ Description for {'str': '1350 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A gas turbine engine, usually used for military vehicles. Known for its " +"high rate of fuel consumption." msgstr "" -"Es una deliciosa tarta sin gluten horneada con un delicioso relleno de " -"verduras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pie" -msgid_plural "gluten free meat pies" +#: lang/json/ENGINE_from_json.py +msgid "1900 hp gas turbine engine" +msgid_plural "1900 hp gas turbine engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free meat pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious meat filling." +#. ~ Description for {'str': '1900 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large gas turbine engine, usually used for military helicopters. Known " +"for its high rate of fuel consumption." msgstr "" -"Es una deliciosa tarta sin gluten horneada con un delicioso relleno de " -"carne." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free maple pie" -msgid_plural "gluten free maple pies" -msgstr[0] "" -msgstr[1] "" +#: lang/json/ENGINE_from_json.py +msgid "6000 hp gas turbine engine" +msgid_plural "6000 hp gas turbine engines" +msgstr[0] "motor de turbina de gas 6000 cv" +msgstr[1] "motores de turbina de gas 6000 cv" -#. ~ Description for gluten free maple pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A sweet and delicious baked gluten free pie with pure maple syrup." +#. ~ Description for {'str': '6000 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " +"high rate of fuel consumption." msgstr "" +"Es un motor enorme de turbina de gas, usualmente utilizado en el V-22 " +"Osprey. Es famoso por su alto consumo de combustible." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pizza" -msgid_plural "gluten free vegetable pizzas" +#: lang/json/ENGINE_from_json.py +msgid "large steam engine" +msgid_plural "large steam engines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free vegetable pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " -"crust. Its smell brings back great memories." +"A large steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" +"Es un motor grande de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese pizza" -msgid_plural "gluten free cheese pizzas" -msgstr[0] "" -msgstr[1] "" +#: lang/json/ENGINE_from_json.py +msgid "huge steam engine" +msgid_plural "huge steam engines" +msgstr[0] "motor enorme de vapor" +msgstr[1] "motores enormes de vapor" -#. ~ Description for gluten free cheese pizza -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free pizza with molten cheese on top." +#. ~ Description for {'str': 'huge steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" +"Es un motor enorme de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " +"condensador captura el agua, convirtiendo esto en un sistema cíclico " +"cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pizza" -msgid_plural "gluten free meat pizzas" +#: lang/json/ENGINE_from_json.py +msgid "small steam turbine" +msgid_plural "small steam turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free meat pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A meat gluten free pizza, for all the carnivores out there. Chock full of " -"minced meat and heavily seasoned." +"A small steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -"Es una pizza de carne sin gluten para los carnívoros que andan por ahí. " -"Llena hasta el tope de carne picada y muy condimentada." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheeseburger" -msgid_plural "gluten free cheeseburgers" +#: lang/json/ENGINE_from_json.py +msgid "medium steam turbine" +msgid_plural "medium steam turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free cheeseburger -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of minced meat and cheese with condiments. The apex " -"of pre-Cataclysm culinary achievement." +"A medium sized steam turbine. An integrated boiler burns coal to heat water" +" into steam, driving a spinning turbine. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free hamburger" -msgid_plural "gluten free hamburgers" +#: lang/json/ENGINE_from_json.py +msgid "large steam turbine" +msgid_plural "large steam turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free hamburger -#: lang/json/COMESTIBLE_from_json.py -msgid "A gluten free sandwich of minced meat with condiments." +#. ~ Description for {'str': 'large steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sloppy joe" -msgid_plural "gluten free sloppy joes" +#: lang/json/ENGINE_from_json.py +msgid "huge steam turbine" +msgid_plural "huge steam turbines" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free sloppy joe -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'huge steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich, consisting of ground meat and tomato sauce served on" -" a hamburger bun." +"A huge steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" +"Es una turbina enorme de vapor. Una caldera integrada quema carbón para " +"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" +" captura el agua, convirtiendo esto en un sistema cíclico cerrado." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free BLT" -msgid_plural "gluten free BLTs" +#: lang/json/GENERIC_from_json.py +msgid "fetid goop" +msgid_plural "fetid goops" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free BLT -#: lang/json/COMESTIBLE_from_json.py -msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." +#. ~ Description for {'str': 'fetid goop'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A foul smelling goop. It has a disgusting texture and a powerful smell that" +" overrides every other smell around it." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sweetbread" -msgid_plural "gluten free sweetbreads" -msgstr[0] "" -msgstr[1] "" +#: lang/json/GENERIC_from_json.py +msgid "limestone shard" +msgid_plural "limestone shards" +msgstr[0] "fragmento de caliza" +msgstr[1] "fragmentos de caliza" -#. ~ Description for {'str': 'gluten free sweetbread'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'limestone shard'} +#: lang/json/GENERIC_from_json.py msgid "" -"Delicious and tender organ meats. First boiled, then gluten free breaded " -"crumbs added and fried. They have interesting flavor and unparalleled " -"texture." +"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" +" alkaline properties may yet find some use." msgstr "" -"Es la carne de un órgano delicioso y tierno. Primero hervido y luego " -"empanado sin gluten y frito. Tienen un sabor interesante y una textura " -"inigualable." +"Un pequeño fragmento de caliza. Muy poco sólido y no sirve como arma, pero " +"sus propiedades alcalinas pueden tener alguna utilidad." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese sandwich" -msgid_plural "gluten free cheese sandwiches" -msgstr[0] "" -msgstr[1] "" +#: lang/json/GENERIC_from_json.py +msgid "rock salt" +msgid_plural "rock salt" +msgstr[0] "sal de roca" +msgstr[1] "sal de roca" -#. ~ Description for {'str': 'gluten free cheese sandwich', 'str_pl': 'gluten -#. free cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A simple gluten free cheese sandwich." +#. ~ Description for {'str_sp': 'rock salt'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of rock salt crystals. Could be refined into table salt." msgstr "" +"Es un puñado de cristales de sal de roca. Puede ser refinada para hacer sal " +"de mesa." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free grilled cheese sandwich" -msgid_plural "gluten free grilled cheese sandwiches" +#: lang/json/GENERIC_from_json.py +msgid "rhodonite" +msgid_plural "rhodonite" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free grilled cheese sandwich', 'str_pl': -#. 'gluten free grilled cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'rhodonite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A delicious gluten free grilled cheese sandwich, because everything is " -"better with melted cheese." +"A chunk of rhodonite. It has manganese dioxide covering and going through " +"it in veins, which can be obtained using a chisel." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free deluxe sandwich" -msgid_plural "gluten free deluxe sandwiches" +#: lang/json/GENERIC_from_json.py +msgid "zincite" +msgid_plural "zincite" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free deluxe sandwich', 'str_pl': 'gluten -#. free deluxe sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'zincite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A gluten free sandwich of meat, vegetables, and cheese with condiments. " -"Tasty and nutritious!" +"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " +"reduction with a source of carbon." msgstr "" -"Es un sandwich sin gluten con carne, verduras, queso y condimentos. ¡Sabroso" -" y nutritivo!" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cucumber sandwich" -msgid_plural "gluten free cucumber sandwiches" -msgstr[0] "" -msgstr[1] "" +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" +msgstr[0] "plutonio" +msgstr[1] "plutonio" -#. ~ Description for {'str': 'gluten free cucumber sandwich', 'str_pl': -#. 'gluten free cucumber sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py msgid "" -"A refreshing gluten free cucumber sandwich. Not very filling, but quite " -"tasty." +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free jam sandwich" -msgid_plural "gluten free jam sandwiches" -msgstr[0] "" -msgstr[1] "" +#: lang/json/GENERIC_from_json.py +msgid "hickory root" +msgid_plural "hickory roots" +msgstr[0] "raíz del árbol pacana" +msgstr[1] "raíces del árbol pacana" -#. ~ Description for {'str': 'gluten free jam sandwich', 'str_pl': 'gluten -#. free jam sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free jam sandwich." +#. ~ Description for {'str': 'hickory root'} +#: lang/json/GENERIC_from_json.py +msgid "A root from a hickory tree. It has an earthy smell." +msgstr "Es una raíz de un nogal americano o pacana. Tiene olor a tierra." + +#: lang/json/GENERIC_from_json.py +msgid "hickory nuts" +msgid_plural "hickory nuts" +msgstr[0] "nueces de pecana" +msgstr[1] "nueces de pecana" + +#. ~ Description for {'str_sp': 'hickory nuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hickory tree, still in their shell." msgstr "" +"Es un puñado de nueces duras de pecana o nogal americano, todavía con sus " +"cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free honey sandwich" -msgid_plural "gluten free honey sandwiches" +#: lang/json/GENERIC_from_json.py +msgid "pecans" +msgid_plural "pecans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gluten free honey sandwich', 'str_pl': 'gluten -#. free honey sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free honey sandwich." +#. ~ Description for {'str_sp': 'pecans'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pecan tree, still in their shell." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free boring sandwich" -msgid_plural "gluten free boring sandwiches" -msgstr[0] "" -msgstr[1] "" +#: lang/json/GENERIC_from_json.py +msgid "pistachios" +msgid_plural "pistachios" +msgstr[0] "pistachos" +msgstr[1] "pistachos" -#. ~ Description for {'str': 'gluten free boring sandwich', 'str_pl': 'gluten -#. free boring sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A simple gluten free sauce sandwich. Not very filling but beats eating just" -" the bread… especially if it is the wrong type of bread!" +#. ~ Description for {'str_sp': 'pistachios'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pistachio tree, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del árbol del pistacho, todavía con sus " +"cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free waffle" -msgid_plural "gluten free waffles" +#: lang/json/GENERIC_from_json.py +msgid "almonds" +msgid_plural "almonds" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str_sp': 'almonds'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from an almond tree, still in their shell." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free waffle" -msgid_plural "lactose free waffles" +#: lang/json/GENERIC_from_json.py +msgid "peanuts" +msgid_plural "peanuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Lactose free waffle. It's basically a pancake in hashtag form." -msgstr "" - -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Gluten free and lactose free waffle. It's basically a pancake in hashtag " -"form." +#. ~ Description for {'str_sp': 'peanuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a peanut bush, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del cacahuete, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit waffle" -msgid_plural "gluten free fruit waffles" +#: lang/json/GENERIC_from_json.py +msgid "hazelnuts" +msgid_plural "hazelnuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." +#. ~ Description for {'str_sp': 'hazelnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hazelnut tree, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del avellano, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit waffle" -msgid_plural "gluten free lactose free fruit waffles" +#: lang/json/GENERIC_from_json.py +msgid "chestnuts" +msgid_plural "chestnuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free lactose free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free and lactose free waffles with real maple " -"syrup, made sweeter and healthier with the addition of wholesome fruit." +#. ~ Description for {'str_sp': 'chestnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a chestnut tree, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del castaño, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate waffle" -msgid_plural "gluten free chocolate waffles" +#: lang/json/GENERIC_from_json.py +msgid "walnuts" +msgid_plural "walnuts" msgstr[0] "" msgstr[1] "" -#. ~ Description for gluten free chocolate waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, with " -"delicious chocolate baked right in." +#. ~ Description for {'str_sp': 'walnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a walnut tree, still in their shell." msgstr "" +"Es un puñado de frutos secos duros del nogal, todavía con sus cáscaras." -#: lang/json/COMESTIBLE_from_json.py -msgid "rice milk" -msgid_plural "rice milk" -msgstr[0] "leche de arroz" -msgstr[1] "leches de arroz" +#: lang/json/GENERIC_from_json.py +msgid "steel grille" +msgid_plural "steel grilles" +msgstr[0] "rejilla de acero" +msgstr[1] "rejillas de acero" -#. ~ Description for {'str_sp': 'rice milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'steel grille'} +#: lang/json/GENERIC_from_json.py msgid "" -"Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " -"rapidly." +"This is a metal grille. It can be used as a framework for making a chemical" +" catalyst." msgstr "" +"Esto es una rejilla de acero. Puede ser usada como estructura para hacer un " +"catalizador químico." -#: lang/json/COMESTIBLE_from_json.py -msgid "coconut water" -msgid_plural "coconut water" -msgstr[0] "agua de coco" -msgstr[1] "agua de coco" +#: lang/json/GENERIC_from_json.py +msgid "cobalt-60 pellet" +msgid_plural "cobalt-60 pellets" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str_sp': 'coconut water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'cobalt-60 pellet'} +#: lang/json/GENERIC_from_json.py msgid "" -"Coconut milk, with water added to make it go further. Tastes ok though. " -"Spoils rapidly." +"Radioactive material that used to be a part of some nuclear industry " +"equipment. You are yet to find some use for it." msgstr "" -"Leche de coco, con agua añadida. Sabe muy bien. Se echa a perder " -"rápidamente." -#: lang/json/COMESTIBLE_from_json.py -msgid "jarred coconut milk" -msgid_plural "jarred coconut milk" -msgstr[0] "tarro de leche de coco" -msgstr[1] "tarros de leche de coco" +#: lang/json/GENERIC_from_json.py +msgid "sandbag" +msgid_plural "sandbags" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str_sp': 'jarred coconut milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'sandbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"This deliciously rich coconut cream is a more concentrated, thicker version " -"of the coconut milk." +"This is a canvas sack filled with sand. It can be used to construct simple " +"barricades." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "rice flour" -msgid_plural "rice flour" -msgstr[0] "harina de arroz" -msgstr[1] "harinas de arroz" - -#. ~ Description for {'str_sp': 'rice flour'} -#: lang/json/COMESTIBLE_from_json.py -msgid "This rice flour is useful for baking." -msgstr "Esta harina de arroz es útil para cocinar." - -#: lang/json/COMESTIBLE_from_json.py -msgid "revival serum" -msgid_plural "revival serums" -msgstr[0] "suero de resucitación" -msgstr[1] "sueros de resucitación" +#: lang/json/GENERIC_from_json.py +msgid "earthbag" +msgid_plural "earthbags" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for revival serum -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'earthbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"A potent drug, necessary when performing a revival operation on larger " -"animals (including humans). It induces a violent allergic reactions in " -"living organisms, so using it on yourself is a REALLY bad idea." +"This is a canvas sack filled with soil. It can be used to construct simple " +"barricades." msgstr "" -"Una droga potente, necesaria para realizar la operación de resucitación en " -"animales grandes (incluidos los humanos). Induce reacciones alérgicas " -"violentas en los organismos vivos, así que usarlo en ti mismo es una MALA " -"idea." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "2.5L canteen" msgid_plural "2.5L canteens" msgstr[0] "cantimplora de 2.5L" msgstr[1] "cantimploras de 2.5L" #. ~ Description for {'str': '2.5L canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "" "Una cantimplora grande de plástico, con una capacidad de 2.5 litros y una " "correa para colgarla." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "30 gallon barrel" msgid_plural "30 gallon barrels" msgstr[0] "barril de 110 litros" msgstr[1] "barriles de 110 litros" #. ~ Description for {'str': '30 gallon barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "Un barril grande de plástico con tapa con cierre." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" msgid_plural "steel drums (100L)" msgstr[0] "tanque de acero (100L)" @@ -46378,11 +48260,11 @@ msgstr[1] "tanques de acero (100L)" #. ~ Description for {'str': 'steel drum (100L)', 'str_pl': 'steel drums #. (100L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge steel barrel with a resealable lid." msgstr "Un barril grande de acero con tapa con cierre." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" msgid_plural "steel drums (200L)" msgstr[0] "tanque de acero (200L)" @@ -46390,148 +48272,148 @@ msgstr[1] "tanques de acero (200L)" #. ~ Description for {'str': 'steel drum (200L)', 'str_pl': 'steel drums #. (200L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "Un enorme tambor de acero con tapa con cierre." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas sack" msgid_plural "canvas sacks" msgstr[0] "saco de tela" msgstr[1] "sacos de tela" #. ~ Description for {'str': 'canvas sack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "" "Un saco de tela grande y resistente. Tiene un poco de olor a tierra y " "trabajo pesado." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas bag" msgid_plural "canvas bags" msgstr[0] "bolsa de tela" msgstr[1] "bolsas de tela" #. ~ Description for {'str': 'canvas bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "" "Una pequeña bolsa hecha de tela. Parece que sirve para almacenar hierbas " "secas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bag" msgid_plural "plastic bags" msgstr[0] "bolsa de plástico" msgstr[1] "bolsas de plástico" #. ~ Description for {'str': 'plastic bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "Es una bolsa de plástico pequeña y abierta. Esencialmente, basura." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "zipper bag" msgid_plural "zipper bags" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'zipper bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_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 +#: lang/json/GENERIC_from_json.py msgid "body bag" msgid_plural "body bags" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'body bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large, human size, rectangular bag made of strong plastic, with a zipper " "in the middle. Used to hold a dead body." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "IV bag" msgid_plural "IV bags" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'IV bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass bottle" msgid_plural "glass bottles" msgstr[0] "botella de cristal" msgstr[1] "botellas de cristal" #. ~ Description for {'str': 'glass bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "" "Es una botella de cristal con cierre, que puede contener hasta 750 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bottle" msgid_plural "plastic bottles" msgstr[0] "botella de plástico" msgstr[1] "botellas de plástico" #. ~ Description for {'str': 'plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "" "Es una botella de plástico con cierre que puede contener hasta 500 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condiment bottle" msgid_plural "condiment bottles" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An inverted plastic bottle for condiments. Still sealed from factory, " "preserves content from rot until opened." msgstr "" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An inverted plastic bottle for condiments." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small plastic bottle" msgid_plural "small plastic bottles" msgstr[0] "botella pequeña de plástico" msgstr[1] "botellas pequeñas de plástico" #. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "" "Es una botella de plástico con cierre, que puede contener hasta 250 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large plastic bottle" msgid_plural "large plastic bottles" msgstr[0] "botella de plástico grande" msgstr[1] "botellas de plástico grandes" #. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." @@ -46539,14 +48421,14 @@ msgstr "" "Es una botella de plástico de dos litros que puede contener mucha gaseosa, " "o, por estos días, agua hervida." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay bowl" msgid_plural "clay bowls" msgstr[0] "tazón de arcilla" msgstr[1] "tazones de arcilla" #. ~ Description for {'str': 'clay bowl'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A clay bowl with a waterproofed hide lid. Can be used as a container or as " "a tool. Holds 250 ml of liquid." @@ -46554,14 +48436,14 @@ msgstr "" "Es un tazón de arcilla con una tapa hermética. Se puede usar como recipiente" " o como herramienta. Tiene una capacidad de 250 ml." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "pack" msgid_plural "packs" msgstr[0] "paquete" msgstr[1] "paquetes" #. ~ Description for {'str': 'pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." @@ -46569,7 +48451,7 @@ msgstr "" "ADVERTENCIA DEL DIRECTOR GENERAL DE SALUD PÚBLICA: Fumar Causa Cáncer de " "Pulmón, Enfermedades del Corazón, Enfisema y Puede Perjudicar el Embarazo." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" msgstr[0] "pequeña caja de cartón" @@ -46577,23 +48459,23 @@ msgstr[1] "pequeñas cajas de cartón" #. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "Es una caja pequeña de cartón, de unos 30 cm." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" msgstr[0] "caja de cartón" msgstr[1] "cajas de cartón" #. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "" -#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" msgstr[0] "" @@ -46601,20 +48483,20 @@ msgstr[1] "" #. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A very large cardboard box, the sort children would have loved to hide in, " "when there were still children." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "bucket" msgid_plural "buckets" msgstr[0] "cubo" msgstr[1] "cubos" #. ~ Description for {'str': 'bucket'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " "legs, French fries, animal feed, farm use, tailgating, crafts, planting " @@ -46622,14 +48504,14 @@ msgid "" "item storage or as an ice bucket." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hydration pack" msgid_plural "hydration packs" msgstr[0] "mochila contenedora de agua" msgstr[1] "mochilas contenedoras de agua" #. ~ Description for {'str': 'hydration pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " @@ -46639,25 +48521,25 @@ msgstr "" "espalda. Tiene un bolsillo grande y un pico con tapa para llenarla de " "líquida con una manguera, y permite beber sin usar las manos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum can" msgid_plural "aluminum cans" msgstr[0] "lata de aluminio" msgstr[1] "latas de aluminio" #. ~ Description for {'str': 'aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An aluminum can, like what soda comes in." msgstr "Es una lata de aluminio, como la de los refrescos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened aluminum can" msgid_plural "opened aluminum cans" msgstr[0] "lata abierta de aluminio" msgstr[1] "latas abiertas de aluminio" #. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." @@ -46665,14 +48547,14 @@ msgstr "" "Es una lata de aluminio, como las de los refrescos. Esta ha sido abierto y " "no puede ser cerrado fácilmente." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper carton" msgid_plural "paper cartons" msgstr[0] "cartón de papel" msgstr[1] "cartones de papel" #. ~ Description for {'str': 'paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " It has a threaded cap for easy resealing." @@ -46680,14 +48562,14 @@ msgstr "" "Un cartón de medio galón construido con papel, aluminio y plástico laminado." " Tiene una tapa roscada para un cierre fácil." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened paper carton" msgid_plural "opened paper cartons" msgstr[0] "cartón de papel abierto" msgstr[1] "cartones de papel abiertos" #. ~ Description for {'str': 'opened paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " This one is open and its contents will spoil." @@ -46695,73 +48577,73 @@ msgstr "" "Un cartón de medio galón construido con papel, aluminio y plástico laminado." " Está abierto y su contenido se echará a perder." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" msgstr[0] "bolsa de cerrado al vacío" msgstr[1] "bolsas de cerrado al vacío" #. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "This is a bag of vacuum-packed food." -msgstr "" +msgstr "Es una bolsa de comida cerrada al vacío." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small tin can" msgid_plural "small tin cans" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'small tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small tin can, like what tuna comes in." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small opened tin can" msgid_plural "small opened tin cans" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'small opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small tin can, like what tuna comes in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium tin can" msgid_plural "medium tin cans" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'medium tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A medium tin can, like what soup comes in." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium opened tin can" msgid_plural "medium opened tin cans" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A medium tin can, like what soup comes in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic canteen" msgid_plural "plastic canteens" msgstr[0] "cantimplora de plástico" msgstr[1] "cantimploras de plástico" #. ~ Description for {'str': 'plastic canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." @@ -46769,14 +48651,14 @@ msgstr "" "Una cantimplora de tipo militar con una capacidad de 1.5 litros. Comúnmente " "se lleva colgada en la cadera." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "thermos" msgid_plural "thermoses" msgstr[0] "termo" msgstr[1] "termos" #. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." @@ -46785,14 +48667,14 @@ msgstr "" "temperatura, ayuda a mantener las cosas frías o calientes. Puede contener " "hasta 1L de líquido." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay canister" msgid_plural "clay canisters" msgstr[0] "tarro de arcilla" msgstr[1] "tarros de arcilla" #. ~ Description for {'str': 'clay canister'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." @@ -46800,27 +48682,27 @@ msgstr "" "Es un recipiente frágil de arcilla. Se puede usar para hacer simples " "granadas de impacto o para almacenar líquidos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay hydria" msgid_plural "clay hydrias" msgstr[0] "barrila de arcilla" msgstr[1] "barrilas de arcilla" #. ~ Description for {'str': 'clay hydria'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "" "Un tarro de arcilla de 15 litros con tres mangos para poder ser " "transportarlo y verter el líquido." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large clay pot" msgid_plural "large clay pots" msgstr[0] "pote grande de arcilla" msgstr[1] "potes grandes de arcilla" #. ~ Description for {'str': 'large clay pot'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky and heavy clay pot with a waterproofed hide lid, meant to store " "water, but can carry other liquids in a pinch." @@ -46828,102 +48710,102 @@ msgstr "" "Es un pote grande y pesado de arcilla con una tapa hermética, hecho para " "almacenar agua pero puede llevar otros líquidos si es necesario." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic cup" msgid_plural "plastic cups" msgstr[0] "vaso de plástico" msgstr[1] "vasos de plástico" #. ~ Description for {'str': 'plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup." msgstr "Es un vaso pequeño que en algún momento estuvo sellado al vacío." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened plastic cup" msgid_plural "opened plastic cups" msgstr[0] "vaso abierto de plástico" msgstr[1] "vasos abiertos de plástico" #. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "" "Es un vaso pequeño sellado al vacío en algún momento. Ahora, esencialmente " "basura." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass flask" msgid_plural "glass flasks" msgstr[0] "frasco de cristal" msgstr[1] "frascos de cristal" #. ~ Description for {'str': 'glass flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "" "Es un frasco cónico de laboratorio con una capacidad de 250 ml y un tapón de" " goma." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "test tube" msgid_plural "test tubes" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'test tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "beaker" msgid_plural "beakers" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'beaker'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A tall, narrow glass cylinder with precise markings for measuring fluid " "quantities. An important science tool, it is also useful for anal retentive" " chefs." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "These plastic tubes, with little built in snap-caps, are a great way to " "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 "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hip flask" msgid_plural "hip flasks" msgstr[0] "petaca" msgstr[1] "petacas" #. ~ Description for {'str': 'hip flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." @@ -46931,27 +48813,27 @@ msgstr "" "Es un frasco de metal de 250 ml con una tapa con bisagras. Se usa comúnmente" " para transportar alcohol de manera discreta." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" msgstr[0] "botes de cristal de 3L" msgstr[1] "botes de cristal de 3L" #. ~ Description for {'str': '3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Es una bote de cristal de 3 litros con tapa de metal a rosca. Se usa para " "conservas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed 3L glass jar" msgid_plural "sealed 3L glass jars" msgstr[0] "bote sellado de cristal de 3L" msgstr[1] "botes sellados de cristal de 3L" #. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." @@ -46960,27 +48842,27 @@ msgstr "" "se usa para conservas. Está bien sellada para evitar que su contenido se " "pudra." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass jar" msgid_plural "glass jars" msgstr[0] "bote de cristal" msgstr[1] "botes de cristal" #. ~ Description for {'str': 'glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Es una bote de cristal de medio litro con tapa de metal a rosca. Se usa para" " conservas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed glass jar" msgid_plural "sealed glass jars" msgstr[0] "bote sellado de cristal" msgstr[1] "botes sellados de cristal" #. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half-liter glass jar with a metal screw top lid, used for canning. Sealed" " tightly and will preserve the contents from rot (assuming it was sterile " @@ -46990,14 +48872,14 @@ msgstr "" "se usa para conservas. Si se la sella bien puede conservar su contenido sin " "que se pudra (asumiendo que estaba esterilizada antes del sellado)." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic jerrycan" msgid_plural "plastic jerrycans" msgstr[0] "bidón de plástico" msgstr[1] "bidones de plástico" #. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." @@ -47005,14 +48887,14 @@ msgstr "" "Un bidón voluminoso de plástico, hecho para llevar gasolina, pero puede " "contener otros líquidos si es necesario." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel jerrycan" msgid_plural "steel jerrycans" msgstr[0] "bidón de acero" msgstr[1] "bidones de acero" #. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." @@ -47020,20 +48902,20 @@ msgstr "" "Un bidón de hierro, hecho para llevar gasolina, pero puede contener otros " "líquidos si es necesario." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay jug" msgid_plural "clay jugs" msgstr[0] "jarra de arcilla" msgstr[1] "jarras de arcilla" #. ~ Description for {'str': 'clay jug'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "" "Un recipiente de arcilla con una tapa, usado para almacenar y servir " "líquidos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "gallon jug" msgid_plural "gallon jugs" msgstr[0] "jarro de galón" @@ -47041,20 +48923,20 @@ msgstr[1] "jarros de galón" #. ~ Description for {'str': 'gallon jug'} #. ~ Description for TEST gallon jug -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "" "Un jarro normal de plástico que se usa para la leche, o para los productos " "de limpieza en los hogares. Tiene una capacidad de 3.5 litros." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum keg" msgid_plural "aluminum kegs" msgstr[0] "barril de aluminio" msgstr[1] "barriles de aluminio" #. ~ Description for {'str': 'aluminum keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." @@ -47062,14 +48944,14 @@ msgstr "" "Un barril de aluminio ligero reutilizable, utilizado para el envío de " "cerveza. Tiene una capacidad de 50 litros." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel keg" msgid_plural "steel kegs" msgstr[0] "barril de acero" msgstr[1] "barriles de acero" #. ~ Description for {'str': 'steel keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." @@ -47077,14 +48959,14 @@ msgstr "" "Un barril reutilizable de acero pesado, utilizado para el envío de cerveza." " Tiene una capacidad de 50 litros." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large sealed stomach" msgid_plural "large sealed stomachs" msgstr[0] "estómago grande sellado" msgstr[1] "estómagos grandes sellados" #. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." @@ -47092,7 +48974,7 @@ msgstr "" "El estómago de una criatura grande, limpiado y sellado con hillos. Puede " "contener hasta 3 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (60L)" msgid_plural "metal tanks (60L)" msgstr[0] "tanque de metal (60L)" @@ -47100,33 +48982,33 @@ msgstr[1] "tanques de metal (60L)" #. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks #. (60L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "" "Es un tanque grande de metal que puede contener líquidos. Se usa para " "fabricar otras cosas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (2L)" msgid_plural "metal tanks (2L)" msgstr[0] "tanque de metal (2L)" msgstr[1] "tanques de metal (2L)" #. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "" "Es un tanque chico de metal que puede contener líquidos o gases. Se usa para" " fabricar otras cosas." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" msgstr[0] "cantimplora de madera" msgstr[1] "cantimploras de madera" #. ~ Description for {'str': 'wooden canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A water canteen made from wood, secured by metal bands and sealed with wax " "or pitch. Holds 1.5 liters and has a simple carry strap." @@ -47135,14 +49017,14 @@ msgstr "" " de metal y sellada con cera o alquitrán. Puede contener hasta 1.5 litros y " "tiene una correa para llevarla." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed stomach" msgid_plural "sealed stomachs" msgstr[0] "estómago sellado" msgstr[1] "estómagos sellados" #. ~ Description for {'str': 'sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." @@ -47150,7 +49032,7 @@ msgstr "" "Es el estómago de una criatura, limpiado y sellado con un hilo. Puede " "contener hasta 1.5 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small waterskin" msgid_plural "small waterskins" msgstr[0] "odre pequeño" @@ -47158,7 +49040,7 @@ msgstr[1] "odres pequeños" #. ~ Description for {'str': 'small waterskin'} #. ~ Description for TEST small waterskin -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." @@ -47166,28 +49048,28 @@ msgstr "" "Es una bolsa hermética pequeña de cuero con una correa para colgarla. Tiene " "una capacidad de 1.5 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "waterskin" msgid_plural "waterskins" msgstr[0] "odre" msgstr[1] "odres" #. ~ Description for {'str': 'waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "" "Es una bolsa hermética de cuero con una correa para colgarla. Tiene una " "capacidad de 3 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large waterskin" msgid_plural "large waterskins" msgstr[0] "odre grande" msgstr[1] "odres grandes" #. ~ Description for {'str': 'large waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." @@ -47195,14 +49077,14 @@ msgstr "" "Es una bolsa hermética grande de cuero con una correa para colgarla. Tiene " "una capacidad de 5 litros de agua." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden barrel" msgid_plural "wooden barrels" msgstr[0] "barril de madera" msgstr[1] "barriles de madera" #. ~ Description for {'str': 'wooden barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "Traditionally made of white oak; these vessels are known for delivering " "delicious whiskey to the future. It has a capacity of 100 liters." @@ -47211,91 +49093,104 @@ msgstr "" "conocidos por su capacidad de guardar deliciosos whiskys. Tiene una " "capacidad de 100 litros." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper wrapper" msgid_plural "paper wrappers" msgstr[0] "papel estraza" msgstr[1] "papel estraza" #. ~ Description for {'str': 'paper wrapper'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." msgstr "Es un pedazo de papel estraza. Bueno para encender fuegos." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'wrapper'} +#: lang/json/GENERIC_from_json.py +msgid "" +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." +msgstr "" + +#: lang/json/GENERIC_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" msgstr[0] "vaso de poliestireno extruido" msgstr[1] "vasos de poliestireno extruido" #. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "Es un vasito descartable y barato con tapa plástica y pajita." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic tub" msgid_plural "plastic tubs" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'plastic tub'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'condom'} -#: lang/json/CONTAINER_from_json.py +#: 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/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "balloon" msgid_plural "balloons" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'balloon'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A child's balloon. This could be used as a makeshift water container." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large tin can" msgid_plural "large tin cans" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'large tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. Holds a substantial amount of " "food." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large opened tin can" msgid_plural "large opened tin cans" msgstr[0] "" msgstr[1] "" #. ~ Description for {'str': 'large opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "survival kit box" msgid_plural "survival kit boxes" msgstr[0] "" @@ -47303,896 +49198,291 @@ msgstr[1] "" #. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum box that used to contain a small survival kit. Can hold 1 liter" " of liquid." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "tazón de plástico" -msgstr[1] "tazones de plástico" +#: lang/json/GENERIC_from_json.py +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'plastic bowl'} -#: lang/json/CONTAINER_from_json.py -msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': +#. 'small cardboard boxes of tea bags'} +#: lang/json/GENERIC_from_json.py +msgid "A very small cardboard box with tea brand written on it." msgstr "" -"Un recipiente de plástico con una conveniente tapa de sellado. Contiene 750 " -"ml de líquido." - -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "botella de acero" -msgstr[1] "botellas de acero" -#. ~ Description for {'str': 'steel bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Es una botella de acero inoxidable, que puede contener hasta 750 ml." - -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "botella plegable de plástico" -msgstr[1] "botellas plegables de plástico" +#: lang/json/GENERIC_from_json.py +msgid "microwave generator" +msgid_plural "microwave generators" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'foldable plastic bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +#. ~ Description for {'str': 'microwave generator'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This electrical component is designed to produce microwaves, for use in your" +" microwave." msgstr "" -"Es una botella flexible de plástico, fácil de transportar, que puede " -"contener hasta 500 ml." -#: lang/json/CONTAINER_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" -msgstr[0] "equipo de extracción de sangre" -msgstr[1] "equipos de extracción de sangre" +#: lang/json/GENERIC_from_json.py +msgid "explosively pumped flux compression generator" +msgid_plural "explosively pumped flux compression generators" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'blood draw kit'} -#: lang/json/CONTAINER_from_json.py +#. ~ Description for {'str': 'explosively pumped flux compression generator'} +#: lang/json/GENERIC_from_json.py msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "small metal tank" -msgid_plural "small metal tanks" -msgstr[0] "tanque de metal pequeño" -msgstr[1] "tanques de metal pequeños" - -#. ~ Description for small metal tank -#: lang/json/CONTAINER_from_json.py -msgid "A small metal tank for holding gas or liquids. Useful for crafting." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'hazardous waste drum'} -#: lang/json/CONTAINER_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "garden pot" -msgid_plural "garden pots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for garden pot -#: lang/json/CONTAINER_from_json.py -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 "" - -#: lang/json/CONTAINER_from_json.py -msgid "endless flask" -msgid_plural "endless flasks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "The flask isn't done refilling yet." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "cauldron of purification" -msgid_plural "cauldrons of purification" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons -#. of purification'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This cauldron made of demon spider chitin seems to absorb the light. It " -"will hold 16 liters of material and will absorb poisons from it. It may " -"have other properties that require discovery." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "aluminum foil wrap" -msgid_plural "aluminum foil wraps" -msgstr[0] "envoltorio de papel aluminio" -msgstr[1] "envoltorios de papel aluminio" - -#. ~ Description for aluminum foil wrap -#: lang/json/CONTAINER_from_json.py -msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." -msgstr "" -"Un pedazo medio arrugado de papel aluminio, usado para cocinar y para " -"hornear." - -#: lang/json/CONTAINER_from_json.py -msgid "TEST gallon jug" -msgid_plural "TEST gallon jugs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST small waterskin" -msgid_plural "TEST small waterskins" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous capsule" -msgid_plural "gelatinous capsules" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gelatinous capsule'} -#. ~ Description for {'str': 'gray cocoon'} -#. ~ Description for {'str': 'oozing pod'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"While the blob is very eager to be fed, it's not as enthusiastic about " -"giving up liquids. A few alterations are necessary." -msgstr "" -"Aunque el monstruo masa amorfa gelatinosa está con muchas ganas de que lo " -"alimenten, no lo entusiasma igualmente entregar líquidos. Hay que hacerle " -"unas modificaciones." - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous tank" -msgid_plural "gelatinous tanks" -msgstr[0] "tanque gelatinoso" -msgstr[1] "tanques gelatinosos" - -#: lang/json/CONTAINER_from_json.py -msgid "gray cocoon" -msgid_plural "gray cocoons" -msgstr[0] "capullo gris" -msgstr[1] "capullos grises" - -#: lang/json/CONTAINER_from_json.py -msgid "gray tank" -msgid_plural "gray tanks" -msgstr[0] "tanque gris" -msgstr[1] "tanques grises" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing pod" -msgid_plural "oozing pods" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing tank" -msgid_plural "oozing tanks" -msgstr[0] "tanque supurante" -msgstr[1] "tanques supurantes" - -#: lang/json/ENGINE_from_json.py -msgid "internal combustion engine" -msgid_plural "internal combustion engines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ENGINE_from_json.py -msgid "base diesel engine" -msgid_plural "base diesel engines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ENGINE_from_json.py -msgid "base gasoline engine" -msgid_plural "base gasoline engines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ENGINE_from_json.py -msgid "base steam engine" -msgid_plural "base steam engines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ENGINE_from_json.py -msgid "1-cylinder engine" -msgid_plural "1-cylinder engines" -msgstr[0] "motor de 1 cilindro" -msgstr[1] "motores de 1 cilindro" - -#. ~ Description for {'str': '1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A single-cylinder 4-stroke combustion engine." -msgstr "Un motor de combustión de 4 tiempos, de un solo cilindro." - -#: lang/json/ENGINE_from_json.py -msgid "large 1-cylinder engine" -msgid_plural "large 1-cylinder engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A powerful high-compression single-cylinder 4-stroke combustion engine." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "small 1-cylinder engine" -msgid_plural "small 1-cylinder engines" -msgstr[0] "motor pequeño de 1 cilindro" -msgstr[1] "motores pequeño de 1 cilindro" - -#. ~ Description for {'str': 'small 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "Un pequeño motor de combustión de un solo cilindro y de 2 tiempos." - -#: lang/json/ENGINE_from_json.py -msgid "Inline-4 engine" -msgid_plural "Inline-4 engines" -msgstr[0] "motor en línea de 4 cilindros" -msgstr[1] "motores en línea de 4 cilindros" - -#. ~ Description for {'str': 'Inline-4 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "Un pequeño pero poderoso motor de combustión de 4 cilindros en línea." - -#: lang/json/ENGINE_from_json.py -msgid "I6 diesel engine" -msgid_plural "I6 diesel engines" -msgstr[0] "motor diésel I6" -msgstr[1] "motores diésel I6" - -#. ~ Description for {'str': 'I6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful straight-6 diesel engine." -msgstr "Un poderoso motor diésel de 6 cilindros en línea." - -#: lang/json/ENGINE_from_json.py -msgid "V-twin engine" -msgid_plural "V-twin engines" -msgstr[0] "motor de dos cilindros en V" -msgstr[1] "motores de dos cilindros en V" - -#. ~ Description for {'str': 'V-twin engine'} -#: lang/json/ENGINE_from_json.py -msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "Un motor de combustión de 4 tiempos, de dos cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V6 engine" -msgid_plural "V6 engines" -msgstr[0] "motor V6" -msgstr[1] "motores V6" - -#. ~ Description for {'str': 'V6 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder combustion engine." -msgstr "Un poderoso motor de combustión de 6 cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V6 diesel engine" -msgid_plural "V6 diesel engines" -msgstr[0] "motor diésel V6" -msgstr[1] "motores diésel V6" - -#. ~ Description for {'str': 'V6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder diesel engine." -msgstr "Un poderoso motor diésel de 6 cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V8 engine" -msgid_plural "V8 engines" -msgstr[0] "motor V8" -msgstr[1] "motores V8" - -#. ~ Description for {'str': 'V8 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "Un gran motor muy poderoso de combustión de 8 cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V8 diesel engine" -msgid_plural "V8 diesel engines" -msgstr[0] "motor diésel V8" -msgstr[1] "motores diésel V8" - -#. ~ Description for {'str': 'V8 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 8-cylinder diesel engine." -msgstr "Un poderoso motor diésel de 8 cilindros." - -#: lang/json/ENGINE_from_json.py -msgid "V12 engine" -msgid_plural "V12 engines" -msgstr[0] "motor V12" -msgstr[1] "motores V12" - -#. ~ Description for {'str': 'V12 engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into high end " -"sports cars." -msgstr "" -"Un enorme y extremadamente poderoso motor V12, usualmente utilizado por " -"coches deportivos de alta gama." - -#: lang/json/ENGINE_from_json.py -msgid "V12 diesel engine" -msgid_plural "V12 diesel engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'V12 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into heavy " -"trucks." -msgstr "" -"Es un motor V12 enorme y extremadamente poderoso, usualmente utilizado en " -"camiones grandes." - -#: lang/json/ENGINE_from_json.py -msgid "makeshift steam engine" -msgid_plural "makeshift steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'makeshift steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small, primitive, steam engine. An integrated boiler burns coal to heat " -"water into steam, driving a reciprocating shaft. A condenser recaptures the" -" water, making this a closed cycle system." -msgstr "" -"Es un pequeño y primitivo motor de vapor. Una caldera integrada quema carbón" -" para calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " -"condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "small steam engine" -msgid_plural "small steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condenser recaptures the water, " -"making this a closed cycle system." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "medium steam engine" -msgid_plural "medium steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'medium steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium-sized steam engine. An integrated boiler burns coal to heat water " -"into steam, driving a reciprocating shaft. A condenser recaptures the " -"water, making this a closed cycle system." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "1350 hp gas turbine engine" -msgid_plural "1350 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '1350 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A gas turbine engine, usually used for military vehicles. Known for its " -"high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "1900 hp gas turbine engine" -msgid_plural "1900 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '1900 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large gas turbine engine, usually used for military helicopters. Known " -"for its high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "6000 hp gas turbine engine" -msgid_plural "6000 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': '6000 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " -"high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "large steam engine" -msgid_plural "large steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Es un motor grande de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " -"condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam engine" -msgid_plural "huge steam engines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'huge steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Es un motor enorme de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo un vástago reciprocante. Un " -"condensador captura el agua, convirtiendo esto en un sistema cíclico " -"cerrado." - -#: lang/json/ENGINE_from_json.py -msgid "small steam turbine" -msgid_plural "small steam turbines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'small steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "medium steam turbine" -msgid_plural "medium steam turbines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'medium steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium sized steam turbine. An integrated boiler burns coal to heat water" -" into steam, driving a spinning turbine. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "large steam turbine" -msgid_plural "large steam turbines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'large steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "huge steam turbine" -msgid_plural "huge steam turbines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'huge steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Es una turbina enorme de vapor. Una caldera integrada quema carbón para " -"calentar agua haciendo vapor, moviendo una turbina giratoria. Un condensador" -" captura el agua, convirtiendo esto en un sistema cíclico cerrado." - -#: lang/json/GENERIC_from_json.py -msgid "fetid goop" -msgid_plural "fetid goops" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'fetid goop'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A foul smelling goop. It has a disgusting texture and a powerful smell that" -" overrides every other smell around it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "limestone shard" -msgid_plural "limestone shards" -msgstr[0] "fragmento de caliza" -msgstr[1] "fragmentos de caliza" - -#. ~ Description for {'str': 'limestone shard'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" -" alkaline properties may yet find some use." +"This large device consists mainly of a tube of copper wire surrounding a " +"large copper tube filled with high explosives. When detonated properly, the" +" explosives allow the device to produce large amounts of electrical energy " +"in a very short time." msgstr "" -"Un pequeño fragmento de caliza. Muy poco sólido y no sirve como arma, pero " -"sus propiedades alcalinas pueden tener alguna utilidad." #: lang/json/GENERIC_from_json.py -msgid "rock salt" -msgid_plural "rock salt" -msgstr[0] "sal de roca" -msgstr[1] "sal de roca" +msgid "fake item" +msgid_plural "fake items" +msgstr[0] "objeto falso" +msgstr[1] "objetos falsos" -#. ~ Description for {'str_sp': 'rock salt'} +#. ~ Description for {'str': 'fake item'} #: lang/json/GENERIC_from_json.py -msgid "A handful of rock salt crystals. Could be refined into table salt." -msgstr "" -"Es un puñado de cristales de sal de roca. Puede ser refinada para hacer sal " -"de mesa." +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 "rhodonite" -msgid_plural "rhodonite" +msgid "semi ground grains" +msgid_plural "semi ground grains" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'rhodonite'} +#. ~ Description for {'str_sp': 'semi ground grains'} #: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of rhodonite. It has manganese dioxide covering and going through " -"it in veins, which can be obtained using a chisel." +msgid "A paste of half-finished milled grains, not yet flour." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "zincite" -msgid_plural "zincite" -msgstr[0] "" -msgstr[1] "" +msgid "smoldering embers" +msgid_plural "smoldering embers" +msgstr[0] "brasas ardientes" +msgstr[1] "brasas ardientes" -#. ~ Description for {'str_sp': 'zincite'} +#. ~ Description for {'str_sp': 'smoldering embers'} #: lang/json/GENERIC_from_json.py msgid "" -"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " -"reduction with a source of carbon." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "hickory root" -msgid_plural "hickory roots" -msgstr[0] "raíz del árbol pacana" -msgstr[1] "raíces del árbol pacana" - -#. ~ Description for {'str': 'hickory root'} -#: lang/json/GENERIC_from_json.py -msgid "A root from a hickory tree. It has an earthy smell." -msgstr "Es una raíz de un nogal americano o pacana. Tiene olor a tierra." - -#: lang/json/GENERIC_from_json.py -msgid "hickory nuts" -msgid_plural "hickory nuts" -msgstr[0] "nueces de pecana" -msgstr[1] "nueces de pecana" - -#. ~ Description for {'str_sp': 'hickory nuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hickory tree, still in their shell." -msgstr "" -"Es un puñado de nueces duras de pecana o nogal americano, todavía con sus " -"cáscaras." - -#: lang/json/GENERIC_from_json.py -msgid "pecans" -msgid_plural "pecans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'pecans'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pecan tree, still in their shell." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "pistachios" -msgid_plural "pistachios" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str_sp': 'pistachios'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pistachio tree, still in their shell." +"A handful of smoldering embers emitting smoke. They are fading away even " +"when you look at them." msgstr "" -"Es un puñado de frutos secos duros del árbol del pistacho, todavía con sus " -"cáscaras." +"Es un puñado de brasas ardiente de las que sale humo. Se van apagando." #: lang/json/GENERIC_from_json.py -msgid "almonds" -msgid_plural "almonds" +msgid "Magic 8-Ball" +msgid_plural "Magic 8-Balls" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'almonds'} +#. ~ Description for {'str': 'Magic 8-Ball'} #: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from an almond tree, still in their shell." +msgid "" +"A fortune-telling device from the 1950s. The kind of moral support you " +"didn't know you needed." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "peanuts" -msgid_plural "peanuts" +msgid "deck of cards" +msgid_plural "decks of cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'peanuts'} +#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a peanut bush, still in their shell." +msgid "A deck of 52 playing cards." msgstr "" -"Es un puñado de frutos secos duros del cacahuete, todavía con sus cáscaras." #: lang/json/GENERIC_from_json.py -msgid "hazelnuts" -msgid_plural "hazelnuts" -msgstr[0] "" -msgstr[1] "" +msgid "coin" +msgid_plural "coins" +msgstr[0] "moneda" +msgstr[1] "monedas" -#. ~ Description for {'str_sp': 'hazelnuts'} +#. ~ Description for {'str': 'coin'} #: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hazelnut tree, still in their shell." +msgid "" +"A now-ancient form of currency. Stripped of its original purpose, it now " +"serves, faithfully, flippant Flippists for free." msgstr "" -"Es un puñado de frutos secos duros del avellano, todavía con sus cáscaras." +"Esto ya es parte de una antigua economía. Ya despojada de su propósito " +"original, ahora sirve, fielmente, para el cara o cruz." #: lang/json/GENERIC_from_json.py -msgid "chestnuts" -msgid_plural "chestnuts" +msgid "family photo" +msgid_plural "family photos" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'chestnuts'} +#. ~ Description for {'str': 'family photo'} #: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a chestnut tree, still in their shell." +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 "" #: lang/json/GENERIC_from_json.py -msgid "walnuts" -msgid_plural "walnuts" -msgstr[0] "" -msgstr[1] "" +msgid "chess set" +msgid_plural "chess sets" +msgstr[0] "juego de ajedrez" +msgstr[1] "juegos de ajedrez" -#. ~ Description for {'str_sp': 'walnuts'} +#. ~ Description for {'str': 'chess set'} #: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a walnut tree, still in their shell." +msgid "" +"A wooden box containing all the equipment needed to play a game of chess." msgstr "" -"Es un puñado de frutos secos duros del nogal, todavía con sus cáscaras." #: lang/json/GENERIC_from_json.py -msgid "steel grille" -msgid_plural "steel grilles" -msgstr[0] "rejilla de acero" -msgstr[1] "rejillas de acero" +msgid "checkers set" +msgid_plural "checkers sets" +msgstr[0] "juego de damas" +msgstr[1] "juegos de damas" -#. ~ Description for {'str': 'steel grille'} +#. ~ Description for {'str': 'checkers set'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a metal grille. It can be used as a framework for making a chemical" -" catalyst." +msgid "A wooden box containing a set of round tokens used to play checkers." msgstr "" -"Esto es una rejilla de acero. Puede ser usada como estructura para hacer un " -"catalizador químico." +"Es una caja de madera con un conjunto de fichas circulares utilizadas para " +"jugar a las damas." #: lang/json/GENERIC_from_json.py -msgid "cobalt-60 pellet" -msgid_plural "cobalt-60 pellets" +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'cobalt-60 pellet'} +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of +#. Sorcery cards'} #: lang/json/GENERIC_from_json.py msgid "" -"Radioactive material that used to be a part of some nuclear industry " -"equipment. You are yet to find some use for it." +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." msgstr "" +"Es un conjunto de cartas hechas para jugar a \"Hechicería\". Cada carta " +"tiene una extraña imagen de un monstruo." #: lang/json/GENERIC_from_json.py -msgid "sandbag" -msgid_plural "sandbags" +msgid "Picturesque" +msgid_plural "sets of Picturesque" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'sandbag'} +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a canvas sack filled with sand. It can be used to construct simple " -"barricades." +"A game where one draws an image, and the others attempt to guess what it is." msgstr "" +"Es un juego donde uno dibuja una imagen y los demás deben intentar adivinar " +"qué es." #: lang/json/GENERIC_from_json.py -msgid "earthbag" -msgid_plural "earthbags" +msgid "Capitalism" +msgid_plural "sets of Capitalism" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'earthbag'} +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a canvas sack filled with soil. It can be used to construct simple " -"barricades." +"A game where players traverse around the board buying property and swindling" +" their friends." msgstr "" +"Es un juego donde los jugadores van alrededor del tablero comprando " +"propiedades y estafando a sus amigos." #: lang/json/GENERIC_from_json.py -msgid "microwave generator" -msgid_plural "microwave generators" +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'microwave generator'} +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and +#. Bandits'} #: lang/json/GENERIC_from_json.py msgid "" -"This electrical component is designed to produce microwaves, for use in your" -" microwave." +"A roleplaying game set in the post-apocalypse, so you can pretend to survive" +" the apocalypse while surviving the apocalypse." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "explosively pumped flux compression generator" -msgid_plural "explosively pumped flux compression generators" +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'explosively pumped flux compression generator'} +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} #: lang/json/GENERIC_from_json.py msgid "" -"This large device consists mainly of a tube of copper wire surrounding a " -"large copper tube filled with high explosives. When detonated properly, the" -" explosives allow the device to produce large amounts of electrical energy " -"in a very short time." +"A strategy game featuring a set of tiny figurines of fantasy creatures." msgstr "" +"Es un juego de estrategia con pequeños muñequitos de criaturas fantásticas." #: lang/json/GENERIC_from_json.py -msgid "fake item" -msgid_plural "fake items" -msgstr[0] "objeto falso" -msgstr[1] "objetos falsos" - -#. ~ Description for {'str': 'fake item'} -#: lang/json/GENERIC_from_json.py -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" +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': '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" -msgstr[0] "brasas ardientes" -msgstr[1] "brasas ardientes" - -#. ~ Description for {'str_sp': 'smoldering embers'} +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of +#. Battlehammer 20k'} #: lang/json/GENERIC_from_json.py msgid "" -"A handful of smoldering embers emitting smoke. They are fading away even " -"when you look at them." +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." msgstr "" -"Es un puñado de brasas ardiente de las que sale humo. Se van apagando." +"Es un juego de estrategia con pequeños muñequitos de alienígenas y grotescos" +" marines espaciales." #: lang/json/GENERIC_from_json.py -msgid "Magic 8-Ball" -msgid_plural "Magic 8-Balls" +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Magic 8-Ball'} +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of +#. Settlers of the Ranch'} #: lang/json/GENERIC_from_json.py msgid "" -"A fortune-telling device from the 1950s. The kind of moral support you " -"didn't know you needed." -msgstr "" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/GENERIC_from_json.py -msgid "A deck of 52 playing cards." +"A strategy game where players build settlements and trade for supplies." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "coin" -msgid_plural "coins" -msgstr[0] "" -msgstr[1] "" +msgid "Warships" +msgid_plural "sets of Warships" +msgstr[0] "Buques de Guerra" +msgstr[1] "colección de Buques de Guerra" -#. ~ Description for {'str': 'coin'} +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} #: lang/json/GENERIC_from_json.py msgid "" -"A now-ancient form of currency. Stripped of its original purpose, it now " -"serves, faithfully, flippant Flippists for free." +"A game where players try to guess where the opponent placed their ships on " +"the board." msgstr "" -"Esto ya es parte de una antigua economía. Ya despojada de su propósito " -"original, ahora sirve, fielmente, para el cara o cruz." +"Es un juego donde los jugadores intentan adivinar el lugar donde el oponente" +" a ubicado sus barcos en el tablero." #: lang/json/GENERIC_from_json.py -msgid "family photo" -msgid_plural "family photos" +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'family photo'} +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder +#. Mystery'} #: lang/json/GENERIC_from_json.py -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." +msgid "A game where players try to figure out who murdered the butler." msgstr "" #: lang/json/GENERIC_from_json.py @@ -48887,7 +50177,7 @@ msgstr[1] "televisores" #. ~ Description for {'str': 'television'} #: lang/json/GENERIC_from_json.py msgid "A large LCD television, full of delicious electronics." -msgstr "" +msgstr "Es un televisor LCD grande , lleno de deliciosas piezas electrónicas." #: lang/json/GENERIC_from_json.py msgid "pilot light" @@ -48976,7 +50266,6 @@ msgstr[0] "ojobot roto" msgstr[1] "ojobots rotos" #. ~ Description for {'str': 'broken eyebot'} -#. ~ Description for broken eyebot #: lang/json/GENERIC_from_json.py msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " @@ -49003,8 +50292,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken lab defense bot" msgid_plural "broken lab defense bots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "robot defensor de laboratorio roto" +msgstr[1] "robots defensores de laboratorio rotos" #. ~ Description for {'str': 'broken lab defense bot'} #: lang/json/GENERIC_from_json.py @@ -49096,7 +50385,6 @@ msgstr[0] "minerobot roto" msgstr[1] "minerobots rotos" #. ~ Description for {'str': 'broken miner bot'} -#. ~ Description for broken miner bot #: lang/json/GENERIC_from_json.py msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " @@ -49127,8 +50415,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "broken combat mech" msgid_plural "broken combat mechs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mecha de combate roto" +msgstr[1] "mechas de combate rotos" #: lang/json/GENERIC_from_json.py msgid "broken riot dispatch" @@ -49166,8 +50454,6 @@ msgstr[0] "manhack roto" msgstr[1] "manhacks rotos" #. ~ Description for {'str': 'broken manhack'} -#. ~ Description for broken hack -#. ~ Description for broken manhack #: lang/json/GENERIC_from_json.py msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " @@ -49183,7 +50469,6 @@ msgstr[0] "grana-hack roto" msgstr[1] "grana-hacks rotos" #. ~ Description for {'str': 'broken grenade hack'} -#. ~ Description for broken grenade hack #: lang/json/GENERIC_from_json.py msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " @@ -49199,7 +50484,6 @@ msgstr[0] "minibom-hack roto" msgstr[1] "minibom-hacks rotos" #. ~ Description for {'str': 'broken mininuke hack'} -#. ~ Description for broken mininuke hack #: lang/json/GENERIC_from_json.py msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " @@ -49215,7 +50499,6 @@ msgstr[0] "lacrimo-hack roto" msgstr[1] "lacrimo-hacks rotos" #. ~ Description for {'str': 'broken tear gas hack'} -#. ~ Description for broken tear gas hack #: lang/json/GENERIC_from_json.py msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " @@ -49231,7 +50514,6 @@ msgstr[0] "PEM-hack roto" msgstr[1] "PEM-hacks rotos" #. ~ Description for {'str': 'broken EMP hack'} -#. ~ Description for broken EMP hack #: lang/json/GENERIC_from_json.py msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " @@ -49247,7 +50529,6 @@ msgstr[0] "destello-hack roto" msgstr[1] "destello-hacks rotos" #. ~ Description for {'str': 'broken flashbang hack'} -#. ~ Description for broken flashbang hack #: lang/json/GENERIC_from_json.py msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " @@ -49263,7 +50544,6 @@ msgstr[0] "C4-hack roto" msgstr[1] "C4-hacks rotos" #. ~ Description for {'str': 'broken C-4 hack'} -#. ~ Description for broken C-4 hack #: lang/json/GENERIC_from_json.py msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " @@ -49272,6 +50552,19 @@ msgstr "" "Un C4-hack roto. Ahora que está tirado quieto en el suelo no es tan " "amenazante. Puede ser destripado para recuperar las partes." +#: lang/json/GENERIC_from_json.py +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'broken loudspeaker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "processor board" msgid_plural "processor boards" @@ -49401,8 +50694,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "small high-quality lens" msgid_plural "small high-quality lenses" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lente pequeño de alta calidad" +msgstr[1] "lentes pequeños de alta calidad" #. ~ Description for {'str': 'small high-quality lens', 'str_pl': 'small high- #. quality lenses'} @@ -50022,7 +51315,7 @@ msgstr[1] "" #. ~ Description for {'str': 'peridot'} #: lang/json/GENERIC_from_json.py msgid "A sparkling peridot." -msgstr "" +msgstr "Es un peridoto brillante." #: lang/json/GENERIC_from_json.py msgid "sapphire" @@ -50055,7 +51348,7 @@ msgstr[1] "" #. ~ Description for {'str': 'tourmaline'} #: lang/json/GENERIC_from_json.py msgid "A sparkling tourmaline." -msgstr "" +msgstr "Es una turmalina brillante." #: lang/json/GENERIC_from_json.py msgid "citrine" @@ -50434,21 +51727,6 @@ msgstr "" "Es una lámina de neopreno de tamaño medio. Puede ser utilizada para fabricar" " ropa liviana y elastizada." -#: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" -msgstr[0] "cañón láser TX-5LR" -msgstr[1] "cañones láser TX-5LR" - -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." -msgstr "" -"Un cañón láser que pertenecía a una torreta láser TX-5LR Cerberus. No se " -"puede usar como arma así solo sin las partes necesarias." - #: lang/json/GENERIC_from_json.py msgid "light bulb" msgid_plural "light bulbs" @@ -50638,6 +51916,8 @@ msgid "" "A broken turret. Much less threatening now that it's laid limp on solid " "ground. Could be gutted for parts." msgstr "" +"Es una torreta rota. Mucho menos amenazante ahora que está ahí tirada en el " +"piso. Puede ser desarmada para recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken riot control turret" @@ -50670,12 +51950,6 @@ msgid_plural "broken M2 autonomous CROWS II turrets" msgstr[0] "" msgstr[1] "" -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "torreta láser rota" -msgstr[1] "torretas láseres rotas" - #: lang/json/GENERIC_from_json.py msgid "broken secubot" msgid_plural "broken secubots" @@ -50727,6 +52001,9 @@ msgid "" "A small box filled with tools and items to help you survive in case of an " "emergency. Disassemble to get its content." msgstr "" +"Es una pequeña caja llena de herramientas y objetos que te ayudan a " +"sobrevivir en caso de una emergencia. Hay que desarmarlo para acceder a su " +"contenido." #. ~ Description for {'str': 'survival kit'} #: lang/json/GENERIC_from_json.py @@ -50739,8 +52016,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "plastic dice" msgid_plural "plastic dice" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "dado de plástico" +msgstr[1] "dados de plástico" #. ~ Description for {'str_sp': 'plastic dice'} #: lang/json/GENERIC_from_json.py @@ -50986,12 +52263,6 @@ msgid "" "A tulip bud. Contains some substances commonly produced by a tulip flower." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "spurge" -msgid_plural "spurges" -msgstr[0] "" -msgstr[1] "" - #. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." @@ -51106,6 +52377,8 @@ msgstr[1] "capullos de lila" msgid "" "A lilac bud. Contains some substances commonly produced by a lilac flower." msgstr "" +"Es el capullo de una lila. Contiene algunas sustancias comúnmente producidas" +" por la flor de la lila." #: lang/json/GENERIC_from_json.py msgid "rose bud" @@ -51217,7 +52490,6 @@ msgstr[0] "tribot roto" msgstr[1] "tribots rotos" #. ~ Description for {'str': 'broken tribot'} -#. ~ Description for broken tribot #: lang/json/GENERIC_from_json.py msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" @@ -51285,8 +52557,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "set of spidery legs" msgid_plural "sets of spidery legs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "grupo de piernas arácnidas" +msgstr[1] "grupos de piernas arácnidas" #. ~ Description for {'str': 'set of spidery legs', 'str_pl': 'sets of spidery #. legs'} @@ -51341,6 +52613,27 @@ msgstr "" " extraño, pero parece un poco frágil. Tampoco parece que pueda soportar un " "panel de refuerzo." +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "torreta láser rota" +msgstr[1] "torretas láseres rotas" + +#: lang/json/GENERIC_from_json.py +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" +msgstr[0] "cañón láser TX-5LR" +msgstr[1] "cañones láser TX-5LR" + +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." +msgstr "" +"Un cañón láser que pertenecía a una torreta láser TX-5LR Cerberus. No se " +"puede usar como arma así solo sin las partes necesarias." + #: lang/json/GENERIC_from_json.py msgid "module template" msgid_plural "module templates" @@ -51400,7 +52693,7 @@ msgstr[1] "" #. ~ Description for {'str': 'memory banks module'} #: lang/json/GENERIC_from_json.py msgid "Allows for storage and recovery of information." -msgstr "" +msgstr "Este módulo permite almacenar y recuperar información." #: lang/json/GENERIC_from_json.py msgid "sensor array" @@ -51440,6 +52733,8 @@ msgid "" "This module is responsible for decision-making, it basically runs the AI of " "the robot." msgstr "" +"Este módulo es responsable por la toma de decisiones, básicamente ejecuta la" +" IA del robot." #: lang/json/GENERIC_from_json.py msgid "basic AI core" @@ -51455,8 +52750,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "advanced AI core" msgid_plural "advanced AI cores" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "núcleo avanzado de IA" +msgstr[1] "núcleos avanzados de IA" #. ~ Description for {'str': 'advanced AI core'} #: lang/json/GENERIC_from_json.py @@ -51489,8 +52784,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "set of reverse-jointed legs" msgid_plural "sets of reverse-jointed legs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "grupo de piernas con articulaciones inversas" +msgstr[1] "grupos de piernas con articulaciones inversas" #. ~ Description for {'str': 'set of reverse-jointed legs', 'str_pl': 'sets of #. reverse-jointed legs'} @@ -51544,7 +52839,7 @@ msgstr[1] "" #. arms'} #: lang/json/GENERIC_from_json.py msgid "A set of human-like arms." -msgstr "" +msgstr "Es un grupo de brazos similares a las humanos." #: lang/json/GENERIC_from_json.py msgid "set of small tank tread" @@ -51708,11 +53003,17 @@ msgid "" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "abstract map" -msgid_plural "abstract maps" +msgid "martial art manual" +msgid_plural "martial art manuals" msgstr[0] "" msgstr[1] "" +#: lang/json/GENERIC_from_json.py +msgid "abstract map" +msgid_plural "abstract maps" +msgstr[0] "mapa abstracto" +msgstr[1] "mapas abstractos" + #: lang/json/GENERIC_from_json.py msgid "military operations map" msgid_plural "military operations maps" @@ -52202,12 +53503,6 @@ msgid "" "without shield." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" -msgstr[0] "" -msgstr[1] "" - #: lang/json/GENERIC_from_json.py msgid "juvenile sourdough starter" msgid_plural "juvenile sourdough starters" @@ -52291,6 +53586,19 @@ msgstr "" "Es un hueso de un ser humano. Puede ser usado para hacer cosas, si te " "sientes lo suficientemente morboso." +#: lang/json/GENERIC_from_json.py +msgid "demihuman bone" +msgid_plural "demihuman bones" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'demihuman bone'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "first aid kit" msgid_plural "first aid kits" @@ -52372,9 +53680,10 @@ msgstr[1] "MREs - Alubias & Chile" #. Beans'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." msgstr "" #: lang/json/GENERIC_from_json.py @@ -52500,8 +53809,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "MRE - Chili & Macaroni" msgid_plural "MREs - Chili & Macaroni" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "MRE - Macarrones con chili" +msgstr[1] "MRE - Macarrones con chili" #. ~ Description for {'str': 'MRE - Chili & Macaroni', 'str_pl': 'MREs - Chili #. & Macaroni'} @@ -52546,6 +53855,37 @@ msgstr "" "haberlo sacado de la bolsa sellada. Hay que usarla o desarmarla para obtener" " el contenido." +#: lang/json/GENERIC_from_json.py +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - +#. Spinach Fettuccine'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything" +" a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - +#. Ratatouille'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" msgid_plural "MREs - Cheese Tortellini" @@ -52866,7 +54206,7 @@ msgstr "" #. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py msgid "A dead body, coated in congealed blood." -msgstr "" +msgstr "Es un cadáver cubierto de sangre coagulada." #. ~ Description for {'str': 'corpse'} #: lang/json/GENERIC_from_json.py @@ -53197,6 +54537,9 @@ msgid "" "This tool dries your hair by pushing air through a coil of hot wires. " "Without a functioning power grid, it is a motorized paper weight." msgstr "" +"Esta herramienta te seca el pelo tirando aire a través de una resistencia de" +" cables calientes. Sin una red eléctrica funcionando, es un pisapapeles con " +"motor." #: lang/json/GENERIC_from_json.py msgid "curling iron" @@ -53844,7 +55187,7 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "The side of the mug reads 'World's Greatest Dad'." -msgstr "" +msgstr "En la taza dice 'El Mejor Papá del Mundo'." #: lang/json/GENERIC_from_json.py msgid "The side of the mug reads 'World's Greatest Mom'." @@ -53909,7 +55252,7 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "The side of the mug reads 'CasUaL aLcoHoLiSm'" -msgstr "" +msgstr "En la taza dice 'AlcOhOliSmo ocASIonaL'." #: lang/json/GENERIC_from_json.py msgid "tin plate" @@ -54018,6 +55361,19 @@ msgid "" "looks almost like glass." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "tazón de plástico" +msgstr[1] "tazones de plástico" + +#. ~ Description for {'str': 'plastic bowl'} +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "" +"Un recipiente de plástico con una conveniente tapa de sellado. Contiene 750 " +"ml de líquido." + #: lang/json/GENERIC_from_json.py msgid "kiddie bowl" msgid_plural "kiddie bowls" @@ -54230,8 +55586,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "corkscrew" msgid_plural "corkscrews" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "sacacorchos" +msgstr[1] "sacacorchos" #. ~ Description for {'str': 'corkscrew'} #: lang/json/GENERIC_from_json.py @@ -54333,8 +55689,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "chopsticks" msgid_plural "pairs of chopsticks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "par de palitos chinos" +msgstr[1] "pares de palitos chinos" #. ~ Description for {'str': 'chopsticks', 'str_pl': 'pairs of chopsticks'} #: lang/json/GENERIC_from_json.py @@ -54346,8 +55702,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "ladle" msgid_plural "ladles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cucharón" +msgstr[1] "cucharones" #. ~ Description for {'str': 'ladle'} #: lang/json/GENERIC_from_json.py @@ -54753,6 +56109,19 @@ msgid "" "placed on the ground, this can support one guitar in an upright position." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "plectrum" +msgid_plural "plectra" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "mixer" msgid_plural "mixers" @@ -56003,6 +57372,7 @@ msgstr[0] "palo con punta" msgstr[1] "palos con punta" #. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py msgid "A simple wood pole with one end sharpened." msgstr "Es un simple palo de madera con una punta afilada." @@ -56163,6 +57533,9 @@ msgid "" "blade. With a little difficulty, you could use it administer a solid slap " "from a distance." msgstr "" +"Es una réplica sin filo y medio floja de un arma de asta japonesa con una " +"cuchilla curva. Con un poco de dificultad, podrías usarla para administrar " +"una buen golpe a distancia." #: lang/json/GENERIC_from_json.py msgid "survivor naginata" @@ -56179,6 +57552,12 @@ msgstr "" "Esta robusta vara de acero con una hoja de espada en la punta, es buena " "tanto para cortar como para apuñalar." +#: lang/json/GENERIC_from_json.py +msgid "wooden javelin" +msgid_plural "wooden javelins" +msgstr[0] "jabalina de madera" +msgstr[1] "jabalinas de madera" + #. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -56188,6 +57567,12 @@ msgstr "" "Es una lanza de madera endurecida al fuego, con una punta afilada. El mango " "fue tallado y recubierto para un mejor agarre." +#: lang/json/GENERIC_from_json.py +msgid "iron javelin" +msgid_plural "iron javelins" +msgstr[0] "jabalina de hierro" +msgstr[1] "jabalinas de hierro" + #. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -56700,8 +58085,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "wakizashi" msgid_plural "wakizashi" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "wakizashi" +msgstr[1] "wakizashi" #. ~ Description for {'str_sp': 'wakizashi'} #: lang/json/GENERIC_from_json.py @@ -57299,27 +58684,31 @@ msgstr "" "Es un pedazo de madera astillada que puede ser usada como brochette o leña." #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" -msgstr[0] "palo grueso" -msgstr[1] "palos gruesos" +msgid "stout branch" +msgid_plural "stout branches" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." +msgid "" +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" -msgstr[0] "palo largo" -msgstr[1] "palos largos" +msgid "long stout branch" +msgid_plural "long stout branches" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout +#. branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." msgstr "" #: lang/json/GENERIC_from_json.py @@ -57342,7 +58731,6 @@ msgstr[0] "tablón" msgstr[1] "tablones" #. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" @@ -57396,6 +58784,30 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "botella de acero" +msgstr[1] "botellas de acero" + +#. ~ Description for {'str': 'steel bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Es una botella de acero inoxidable, que puede contener hasta 750 ml." + +#: lang/json/GENERIC_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "botella plegable de plástico" +msgstr[1] "botellas plegables de plástico" + +#. ~ Description for {'str': 'foldable plastic bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Es una botella flexible de plástico, fácil de transportar, que puede " +"contener hasta 500 ml." + #: lang/json/GENERIC_from_json.py msgid "atomic coffee maker" msgid_plural "atomic coffee makers" @@ -57908,8 +59320,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "armed makeshift insecticidal gas canister" msgid_plural "armed makeshift insecticidal gas canisters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "granada de insecticida improvisada activada" +msgstr[1] "granadas de insecticida improvisadas activadas" #. ~ Description for {'str': 'armed makeshift insecticidal gas canister'} #: lang/json/GENERIC_from_json.py @@ -58115,6 +59527,20 @@ msgid "" " cover is closed. Use it to open the cover and show the light." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" +msgstr[0] "equipo de extracción de sangre" +msgstr[1] "equipos de extracción de sangre" + +#. ~ Description for {'str': 'blood draw kit'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" msgid_plural "charcoal kilns" @@ -58874,7 +60300,6 @@ msgstr "" "cámara." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "security camera" msgid_plural "security cameras" msgstr[0] "cámara de seguridad" @@ -58946,7 +60371,6 @@ msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "drive by wire controls" msgid_plural "sets of drive by wire controls" msgstr[0] "controles conducir por cables" @@ -59376,8 +60800,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "reinforced wide-angle headlight" msgid_plural "reinforced wide-angle headlights" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "luz delantera amplia reforzada" +msgstr[1] "luces delanteras amplias reforzadas" #. ~ Description for {'str': 'reinforced wide-angle headlight'} #: lang/json/GENERIC_from_json.py @@ -59621,7 +61045,6 @@ msgstr "" "inteligente." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "stereo system" msgid_plural "stereo systems" msgstr[0] "equipo estéreo" @@ -59983,7 +61406,6 @@ msgid "A leather-covered seat designed to be straddled." msgstr "Un asiento recubierto de cuero, diseñado para sentarse a horcajadas." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "solar panel" msgid_plural "solar panels" msgstr[0] "panel solar" @@ -60018,7 +61440,6 @@ msgstr "" " lo normal. Útil para fabricar un vehículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "upgraded solar panel" msgid_plural "upgraded solar panels" msgstr[0] "panel solar mejorado" @@ -60222,6 +61643,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "This autoclave has been rigged to run off a vehicle power grid." msgstr "" +"Este autoclave ha sido modificado para funcionar con el sistema eléctrico de" +" un vehículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "minifridge" @@ -60259,7 +61682,7 @@ msgstr[1] "" #. ~ Description for {'str': 'dishwasher'} #: lang/json/GENERIC_from_json.py msgid "A very small dishwasher designed for use in vehicles." -msgstr "" +msgstr "Es un lavavajillas chico diseñado para ser usado en vehículos." #: lang/json/GENERIC_from_json.py msgid "refrigerated tank" @@ -60488,6 +61911,9 @@ msgid "" " look like is the core body of the bioweapon. You cannot imagine what you " "could make out of this but maybe someone somewhere does." msgstr "" +"Esta mezcla entre una anémona marina y lo que te parece la boca de un dragón" +" pareciera ser la parte central de una bioarma. No te puedes imaginar qué " +"podrías hacer con esto pero tal vez alguien lo sepa." #: lang/json/GENERIC_from_json.py msgid "broken mi-go turret" @@ -60542,6 +61968,20 @@ msgid "" "sequences embossed on them and RFID chips inside." msgstr "" +#: lang/json/GENERIC_from_json.py +msgctxt "container" +msgid "basin" +msgid_plural "basins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" msgid_plural "vehicle refrigerators" @@ -60631,8 +62071,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "nuclear waste" msgid_plural "nuclear waste" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "desecho nuclear" +msgstr[1] "desecho nuclear" #. ~ Description for {'str_sp': 'nuclear waste'} #: lang/json/GENERIC_from_json.py @@ -60650,6 +62090,17 @@ msgstr[1] "" msgid "A small pellet of fissile material. Handle carefully." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'hazardous waste drum'} +#: lang/json/GENERIC_from_json.py +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "folded atomic butter churn" msgid_plural "folded atomic butter churns" @@ -60696,6 +62147,19 @@ msgstr "" "Un implante dental hecho de titanio puro, usado como remplazo de diente y " "por su compatibilidad biológica y durabilidad." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'hauling space'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to" +" create a very large amount of space for transporting goods." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" msgid_plural "hydraulic gauntlets" @@ -60728,8 +62192,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "titanium bat" msgid_plural "titanium bats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bate de titanio" +msgstr[1] "bates de titanio" #. ~ Description for {'str': 'titanium bat'} #: lang/json/GENERIC_from_json.py @@ -60846,7 +62310,7 @@ msgstr[1] "" #. ~ Description for {'str': 'photonic computation core'} #: lang/json/GENERIC_from_json.py msgid "A monolithic circuit shaped as a glowing cube of crystal." -msgstr "" +msgstr "Es un circuito monolítico con forma de cubo de cristal brillante." #: lang/json/GENERIC_from_json.py msgid "hypergeometric photonics" @@ -60864,8 +62328,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "acausal logic permutator" msgid_plural "acausal logic permutators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "permutador lógico acausal" +msgstr[1] "permutadores lógicos acausales" #. ~ Description for {'str': 'acausal logic permutator'} #: lang/json/GENERIC_from_json.py @@ -61041,6 +62505,8 @@ msgid "" "A thin strand of wire and a clamp, meant to be spliced into the smaller " "nerves of the human body." msgstr "" +"Es un hilo fino de alambre con un gancho, diseñado para ser partido en " +"nervios más pequeños del cuerpo humano." #: lang/json/GENERIC_from_json.py msgid "neural electrode" @@ -61096,19 +62562,6 @@ msgid "" "parts." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to" -" create a very large amount of space for transporting goods." -msgstr "" - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "ultralight frame" msgid_plural "ultralight frames" @@ -61133,6 +62586,84 @@ msgid "" "camera station, steering tools, and electronics controls." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'vehicle shelving'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" +msgstr[0] "matriz solar" +msgstr[1] "matrices solares" + +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires" +" a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" +msgstr[0] "matriz solar mejorada" +msgstr[1] "matrices solares mejoradas" + +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" +msgstr[0] "conjunto de paneles solares mejorados reforzados" +msgstr[1] "conjuntos de paneles solares mejorados reforzados" + +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" msgid_plural "withered plant bundles" @@ -61142,7 +62673,7 @@ msgstr[1] "" #. ~ Description for withered plant bundle #: lang/json/GENERIC_from_json.py msgid "A bundle of plant matter" -msgstr "" +msgstr "Es un manojo de materia vegetal." #: lang/json/GENERIC_from_json.py msgid "CRIT hatchet" @@ -61150,22 +62681,47 @@ msgid_plural "CRIT hatchets" msgstr[0] "" msgstr[1] "" +#. ~ Use action msg for CRIT hatchet. +#: lang/json/GENERIC_from_json.py +msgid "You extend your hatchet" +msgstr "" + #. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer." +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "CRIT axe" +msgid_plural "CRIT axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for CRIT axe. +#: lang/json/GENERIC_from_json.py +msgid "You collapse your axe" +msgstr "" + +#. ~ Description for CRIT axe +#: lang/json/GENERIC_from_json.py +msgid "" +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer" +" when extended." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Blade-work manual" -msgid_plural "C.R.I.T Blade-work manuals" +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'C.R.I.T Blade-work manual'} +#. ~ Description for CRIT Blade-work manual #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Blade-work." +msgid "An advanced military manual on CRIT Blade-work." msgstr "" #: lang/json/GENERIC_from_json.py @@ -61180,14 +62736,14 @@ msgid "An advanced military manual on C.R.I.T Enforcer melee." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T CQB manual" -msgid_plural "C.R.I.T CQB manuals" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'C.R.I.T CQB manual'} +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T general CQB." +msgid "An advanced military manual on CRIT general CQB." msgstr "" #: lang/json/GENERIC_from_json.py @@ -61297,17 +62853,6 @@ msgid "" "upgraded panel. Useful for a vehicle." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "6.54x42mm casing" -msgid_plural "6.54x42mm casings" -msgstr[0] "casquillo 6.54x42mm" -msgstr[1] "casquillos 6.54x42mm" - -#. ~ Description for 6.54x42mm casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 6.54x42 round." -msgstr "Un casquillo de una bala calibre 6.54x42." - #: lang/json/GENERIC_from_json.py msgid "tiny pistol casing" msgid_plural "tiny pistol casings" @@ -61430,491 +62975,38 @@ msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing)" -msgid_plural "garden pots (growing)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (growing)', 'str_pl': 'garden pots -#. (growing)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot growing some tasty, unnameable plants. You shouldn't see this " -"item." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (grown)" -msgid_plural "garden pots (grown)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (grown)', 'str_pl': 'garden pots -#. (grown)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot with some ripe, unnameable plants. You shouldn't see this " -"item." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing tomato)" -msgid_plural "garden pots (growing tomatoes)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing tomato)', 'str_pl': -#. 'garden pots (growing tomatoes)'}. -#: lang/json/GENERIC_from_json.py -msgid "The tomatoes are ready to harvest!" -msgstr "" - -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing tomato)', -#. 'str_pl': 'garden pots (growing tomatoes)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing wheat)', -#. 'str_pl': 'garden pots (growing wheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing hops)', -#. 'str_pl': 'garden pots (growing hops)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing buckwheat)', -#. 'str_pl': 'garden pots (growing buckwheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing broccoli)', -#. 'str_pl': 'garden pots (growing broccoli)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing oats)', -#. 'str_pl': 'garden pots (growing oats)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing barley)', -#. 'str_pl': 'garden pots (growing barley)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing carrot)', -#. 'str_pl': 'garden pots (growing carrots)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cotton)', -#. 'str_pl': 'garden pots (growing cotton)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cabbage)', -#. 'str_pl': 'garden pots (growing cabbage)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cucumber)', -#. 'str_pl': 'garden pots (growing cucumber)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing garlic)', -#. 'str_pl': 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "It isn't done growing yet." -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing tomato)', 'str_pl': 'garden -#. pots (growing tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing tomatoes. Once ripe, it can be activated to " -"prepare them for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe tomato)" -msgid_plural "garden pots (ripe tomatoes)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe tomato)', 'str_pl': 'garden -#. pots (ripe tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with a ripe tomato plant. Disassemble to retrieve the " -"tasty 'matos." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing wheat)" -msgid_plural "garden pots (growing wheat)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing wheat)', 'str_pl': -#. 'garden pots (growing wheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The wheat is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing wheat)', 'str_pl': 'garden -#. pots (growing wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing wheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe wheat)" -msgid_plural "garden pots (ripe wheat)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe wheat)', 'str_pl': 'garden pots -#. (ripe wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with wheat ready to harvest. Disassemble to retrieve " -"it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing hops)" -msgid_plural "garden pots (growing hops)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'}. -#: lang/json/GENERIC_from_json.py -msgid "The hops are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing hops. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe hops)" -msgid_plural "garden pots (ripe hops)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe hops)', 'str_pl': 'garden pots -#. (ripe hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing blooming hops flowers. Disassemble to " -"harvest them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing buckwheat)" -msgid_plural "garden pots (growing buckwheat)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The buckwheat is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing buckwheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe buckwheat)" -msgid_plural "garden pots (ripe buckwheat)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe buckwheat)', 'str_pl': 'garden -#. pots (ripe buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe buckwheat stalks. Disassemble to " -"harvest them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing broccoli)" -msgid_plural "garden pots (growing broccoli)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'}. -#: lang/json/GENERIC_from_json.py -msgid "The broccoli is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing broccoli. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe broccoli)" -msgid_plural "garden pots (ripe broccoli)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe broccoli)', 'str_pl': 'garden -#. pots (ripe broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some fully-grown broccoli. Disassemble to " -"harvest it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing oats)" -msgid_plural "garden pots (growing oats)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'}. -#: lang/json/GENERIC_from_json.py -msgid "The oats are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing oats. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe oats)" -msgid_plural "garden pots (ripe oats)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe oats)', 'str_pl': 'garden pots -#. (ripe oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some golden, fully-grown oats. Disassemble " -"to harvest them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing barley)" -msgid_plural "garden pots (growing barley)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing barley)', 'str_pl': -#. 'garden pots (growing barley)'}. -#: lang/json/GENERIC_from_json.py -msgid "Barley is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing barley)', 'str_pl': 'garden -#. pots (growing barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing barley. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe barley)" -msgid_plural "garden pots (ripe barley)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe barley)', 'str_pl': 'garden -#. pots (ripe barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ready-to-harvest barley. Disassemble " -"to harvest it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing carrot)" -msgid_plural "garden pots (growing carrots)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing carrot)', 'str_pl': -#. 'garden pots (growing carrots)'}. -#: lang/json/GENERIC_from_json.py -msgid "The carrots are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing carrot)', 'str_pl': 'garden -#. pots (growing carrots)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing carrots. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe carrot)" -msgid_plural "garden pots (ripe carrot)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe carrot)', 'str_pl': 'garden -#. pots (ripe carrot)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ripe carrots. Disassemble to harvest " -"them. Store away from rabbits." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cotton)" -msgid_plural "garden pots (growing cotton)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing cotton)', 'str_pl': -#. 'garden pots (growing cotton)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cotton is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing cotton)', 'str_pl': 'garden -#. pots (growing cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cotton. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cotton)" -msgid_plural "garden pots (ripe cotton)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe cotton)', 'str_pl': 'garden -#. pots (ripe cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing white, fluffy cotton bolls ready for the " -"loom. Disassemble to pluck them." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cabbage)" -msgid_plural "garden pots (growing cabbage)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing cabbage)', 'str_pl': -#. 'garden pots (growing cabbage)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cabbages are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing cabbage)', 'str_pl': 'garden -#. pots (growing cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cabbage. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cabbage)" -msgid_plural "garden pots (ripe cabbage)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe cabbage)', 'str_pl': 'garden -#. pots (ripe cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing a big cabbage leaf. Disassemble to harvest " -"it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cucumber)" -msgid_plural "garden pots (growing cucumber)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cucumbers are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cucumber. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cucumber)" -msgid_plural "garden pots (ripe cucumber)" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'garden pot (ripe cucumber)', 'str_pl': 'garden -#. pots (ripe cucumber)'} +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe cucumbers. Disassemble to harvest " -"them." +msgid "This book contains the teaching of the Desert Wind discipline." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing garlic)" -msgid_plural "garden pots (growing garlic)" +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" msgstr[0] "" msgstr[1] "" -#. ~ Use action msg for {'str': 'garden pot (growing garlic)', 'str_pl': -#. 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "The garlic is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing garlic)', 'str_pl': 'garden -#. pots (growing garlic)'} +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing garlic bulbs. Once ripe, it can be activated " -"to prepare it for harvest." +msgid "This book contains the teaching of the Diamond Mind discipline." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe garlic)" -msgid_plural "garden pots (ripe garlic)" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'garden pot (ripe garlic)', 'str_pl': 'garden -#. pots (ripe garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing pungent garlic bulbs. Disassemble to " -"harvest them, or wave it at vampires to scare them." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "roadheader" -msgid_plural "roadheaders" +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" msgstr[0] "" msgstr[1] "" -#. ~ Description for roadheader +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py msgid "" -"A large and heavy jagged metalhead with a lot of spikes for destroying mine " -"walls." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "Balancer" -msgid_plural "Balancers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for Balancer -#: lang/json/GENERIC_from_json.py -msgid "A large and heavy metal bar for balancing a vehicle." +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." msgstr "" #: lang/json/GENERIC_from_json.py @@ -61959,8 +63051,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "magical reading light" msgid_plural "magical reading lights" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "luz mágica de lectura" +msgstr[1] "luces mágicas de lectura" #. ~ Description for magical reading light #: lang/json/GENERIC_from_json.py @@ -61989,8 +63081,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "bulette plate" msgid_plural "bulette plates" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "placa de bulette" +msgstr[1] "placas de bulette" #. ~ Description for bulette plate #: lang/json/GENERIC_from_json.py @@ -62044,8 +63136,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "demon chitin plate" msgid_plural "demon chitin plates" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "placa de quitina demoníaca" +msgstr[1] "placas de quitina demoníaca" #. ~ Description for demon chitin plate #: lang/json/GENERIC_from_json.py @@ -62205,6 +63297,52 @@ msgid "" "smashed for iron." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff" +" you put into it. It takes a few words and hand-waving to take an item out." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "dimensional bag" +msgid_plural "dimensional bags" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/GENERIC_from_json.py +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "lesser staff of the magi" msgid_plural "lesser staves of the magi" @@ -62482,8 +63620,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "broadsword +1" msgid_plural "broadsword +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "espada ancha +1" +msgstr[1] "espadas anchas +1" #: lang/json/GENERIC_from_json.py msgid "broadsword +2" @@ -62578,8 +63716,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "hunting knife +1" msgid_plural "hunting knife +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de caza +1" +msgstr[1] "cuchillos de caza +1" #: lang/json/GENERIC_from_json.py msgid "hunting knife +2" @@ -62608,8 +63746,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "trench knife +2" msgid_plural "trench knife +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cuchillo de trinchera +2" +msgstr[1] "cuchillos de trinchera +2" #: lang/json/GENERIC_from_json.py msgid "kris +1" @@ -62620,8 +63758,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "kris +2" msgid_plural "kris +2s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kris +2" +msgstr[1] "kris +2" #: lang/json/GENERIC_from_json.py msgid "kukri +1" @@ -62698,8 +63836,8 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "wakizashi +1" msgid_plural "wakizashi +1s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "wakizashi +1" +msgstr[1] "wakizashis +1" #: lang/json/GENERIC_from_json.py msgid "wakizashi +2" @@ -62887,6 +64025,22 @@ msgid "" "tips from retracting while in staff configuration. Activate to extend." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "endless flask" +msgid_plural "endless flasks" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" +msgstr "" + +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "The flask isn't done refilling yet." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "magic token" msgid_plural "magic tokens" @@ -63267,7 +64421,7 @@ msgid "" "the edge is impeccable." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Laevateinn" msgid_plural "Laevateinns" msgstr[0] "Laevateinn" @@ -63529,6 +64683,8 @@ msgid "" "A spell that warps your body in alien ways to increase your physical " "abilities and strength." msgstr "" +"Es un hechizo que modifica tu cuerpo en formas alienígenas para incrementar " +"tu fuerza y habilidades físicas." #: lang/json/GENERIC_from_json.py msgid "Scroll of Acidic Spray" @@ -63828,8 +64984,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Rockbolt" msgid_plural "Scrolls of Rockbolt" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Rayo Pétreo" +msgstr[1] "Pergaminos de Rayo Pétreo" #. ~ Description for {'str': 'Scroll of Rockbolt', 'str_pl': 'Scrolls of #. Rockbolt'} @@ -64249,8 +65405,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Bless" msgid_plural "Scrolls of Bless" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bendición" +msgstr[1] "Pergaminos de Bendición" #. ~ Description for {'str': 'Scroll of Bless', 'str_pl': 'Scrolls of Bless'} #. ~ Description for {'str': 'Bless'} @@ -64300,8 +65456,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Manatricity" msgid_plural "Scrolls of Manatricity" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Manatricidad" +msgstr[1] "Pergaminos de Manatricidad" #. ~ Description for {'str': 'Scroll of Manatricity', 'str_pl': 'Scrolls of #. Manatricity'} @@ -64407,8 +65563,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Lightning Blast" msgid_plural "Scrolls of Lightning Blast" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Pergamino de Bomba Eléctrica" +msgstr[1] "Pergaminos de Bomba Eléctrica" #. ~ Description for {'str': 'Scroll of Lightning Blast', 'str_pl': 'Scrolls #. of Lightning Blast'} @@ -64465,13 +65621,13 @@ msgid "" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Overcharge" -msgid_plural "Scrolls of Overcharge" +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'Scroll of Overcharge', 'str_pl': 'Scrolls of -#. Overcharge'} +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': +#. 'Scrolls of Optical Sneeze Beam'} #: lang/json/GENERIC_from_json.py msgid "" "You overcharge your internal batteries to send a semi-directed beam from " @@ -64705,8 +65861,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "A Beginner's Guide to Magic" msgid_plural "copies of A Beginner's Guide to Magic" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Guía de Principiante en Magia" +msgstr[1] "copias de Guía de Principiante en Magia" #. ~ Description for {'str': "A Beginner's Guide to Magic", 'str_pl': "copies #. of A Beginner's Guide to Magic"} @@ -64747,8 +65903,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "A Treatise on Magical Elements" msgid_plural "copies of A Treatise on Magical Elements" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tratado sobre Elementos Mágicos" +msgstr[1] "copias de Tratado sobre Elementos Mágicos" #. ~ Description for {'str': 'A Treatise on Magical Elements', 'str_pl': #. 'copies of A Treatise on Magical Elements'} @@ -64888,6 +66044,8 @@ msgid "" "Your standard wizardy looking spellbook, filled with Magus combat spells. " "You sure lucked out!" msgstr "" +"Es el libro de hechizos estándar, lleno de hechizos de combate Magus. ¡Esto " +"es tener suerte!" #: lang/json/GENERIC_from_json.py msgid "The Tome of the Hollow Earth" @@ -64988,6 +66146,8 @@ msgid "" "This lab reference material book is thick and overflowing with information " "on combining magic with EM radiation." msgstr "" +"Este libro de referencia de laboratorio es grueso y desborda información " +"sobre combinar magia con radiación electromagnética." #: lang/json/GENERIC_from_json.py msgid "Geospatial Systems: The Lie Of Linearity" @@ -65021,6 +66181,34 @@ msgid "" "hopes to discover a more permanent solution." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "cauldron of purification" +msgid_plural "cauldrons of purification" +msgstr[0] "caldera de purificación" +msgstr[1] "calderas de purificación" + +#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons +#. of purification'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This cauldron made of demon spider chitin seems to absorb the light. It " +"will hold 16 liters of material and will absorb poisons from it. It may " +"have other properties that require discovery." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" @@ -65101,1276 +66289,58 @@ msgid "" "much more expensive." msgstr "" -#. ~ Description for broken turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken turret. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." -msgstr "" -"Es como una torreta pero rota. Mucho menos amenazante ahora que está ahí " -"inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken military turret" -msgid_plural "broken military turrets" -msgstr[0] "torreta militar rota" -msgstr[1] "torretas militares rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced turret" -msgid_plural "broken advanced turrets" -msgstr[0] "torreta avanzada rota" -msgstr[1] "torretas avanzadas rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense turret" -msgid_plural "broken defense turrets" -msgstr[0] "torretas defensiva rota" -msgstr[1] "torretas defensivas rotas" - -#. ~ Description for broken defense turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" - -#. ~ Description for broken military turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" - -#. ~ Description for broken advanced turret -#. ~ Description for broken 9mm turret -#. ~ Description for broken riotcontrol turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken 9mm defense turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta 9mm pero rota. Mucho menos amenazante ahora que está ahí " -"inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken 9mm turret" -msgid_plural "broken 9mm turrets" -msgstr[0] "torreta 9mm rota" -msgstr[1] "torretas 9mm rotas" - -#. ~ Description for broken 9mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken shotgun defense turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta escopeta defensiva pero rota. Mucho menos amenazante ahora " -"que está ahí inerte. Puede ser desarmada para recuperar partes." - -#. ~ Description for broken riot control turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control turret. Much less threatening now that it lies limp " -"on solid ground. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol turret" -msgid_plural "broken riotcontrol turrets" -msgstr[0] "torreta antidisturbios rota" -msgstr[1] "torretas antidisturbios rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken 5.56mm turret" -msgid_plural "broken 5.56mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5.56mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken 7.62mm turret" -msgid_plural "broken 7.62mm turrets" -msgstr[0] "torreta 7.62mm rota" -msgstr[1] "torretas 7.62mm rotas" - -#. ~ Description for broken 7.62mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 7.62mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar 7.62mm pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken 50cal turret" -msgid_plural "broken 50cal turrets" -msgstr[0] "torreta 50cal rota" -msgstr[1] "torretas 50cal rotas" - -#. ~ Description for broken 50cal turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 50 caliber turret. Much less threatening now that " -"it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar calibre 50 pero rota. Mucho menos amenazante ahora " -"que está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken 40mm turret" -msgid_plural "broken 40mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken 40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 40mm grenade turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5x50 flechette turret. Much less threatening now " -"that it lies limp on solid ground. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken 8x40mm turret" -msgid_plural "broken 8x40mm turrets" -msgstr[0] "torreta 8x40mm rota" -msgstr[1] "torretas 8x40mm rotas" - -#. ~ Description for broken 8x40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 8x40mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta militar 8.40mm pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken flamethrower turret" -msgid_plural "broken flamethrower turrets" -msgstr[0] "torreta lanzallamas rota" -msgstr[1] "torretas lanzallamas rotas" - -#. ~ Description for broken flamethrower turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade flamethrower turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" - -#. ~ Description for broken laser turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced laser emitter turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada láser pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken acid turret" -msgid_plural "broken acid turrets" -msgstr[0] "torreta de ácido rota" -msgstr[1] "torretas de ácido rotas" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid thrower turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada lanza-ácido pero rota. Mucho menos amenazante ahora " -"que está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken plasma turret" -msgid_plural "broken plasma turrets" -msgstr[0] "torreta plasma rota" -msgstr[1] "torretas plasma rotas" - -#. ~ Description for broken plasma turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced plasma ejector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada plasma pero rota. Mucho menos amenazante ahora que " -"está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken rail gun turret" -msgid_plural "broken rail gun turrets" -msgstr[0] "torreta de cañón de riel rota" -msgstr[1] "torretas de cañón de riel rotas" - -#. ~ Description for broken rail gun turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced rail gun turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada de cañón de riel pero rota. Mucho menos amenazante " -"ahora que está ahí inerte. Puede ser desarmada para recuperar partes." - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid projector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta mejorada proyecta-ácido pero rota. Mucho menos amenazante " -"ahora que está ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken electro turret" -msgid_plural "broken electro turrets" -msgstr[0] "electrotorreta rota" -msgstr[1] "electrotorretas rotas" - -#. ~ Description for broken electro turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced electro caster turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken EMP turret" -msgid_plural "broken EMP turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken EMP turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced EMP generator turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken gaurdin gnome" -msgid_plural "broken gaurdin gnomes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken gaurdin gnome -#: lang/json/GENERIC_from_json.py -msgid "A broken and completely harmless garden gnome." -msgstr "Es un gnomo de jardín roto y completamente inofensivo." - -#: lang/json/GENERIC_from_json.py -msgid "broken hack" -msgid_plural "broken hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot, now dark and motionless. Could be stripped down for parts." -msgstr "" -"Es un ojobot roto, ahora apagado e inmóvil. Puede ser desarmado para " -"recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed eyebot" -msgid_plural "broken disarmed eyebots" -msgstr[0] "ojobot desarmado roto" -msgstr[1] "ojobots desarmados rotos" - -#. ~ Description for broken disarmed eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot. Its integrated weapon module has been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"Es un ojobot roto. Su arma integrada ha sido quitada. Puede ser desarmado " -"para recuperar partes o convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken utility robot" -msgid_plural "broken utility robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken utility robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken utility robot, now limp and unmoving. Could be gutted for parts or" -" crafted into a salvaged robot." -msgstr "" -"Es un robot utilitario roto, ahora inmóvil e inerte. Puede ser desarmado " -"para recuperar partes o convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed skitterbot" -msgid_plural "broken disarmed skitterbots" -msgstr[0] "arañabot desarmado roto" -msgstr[1] "arañabots desarmados rotos" - -#. ~ Description for broken disarmed skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot. Its internal weapon modules have been removed. Could " -"be gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot, now harmless and inert. Could be stripped of integral " -"weapon modules." -msgstr "" -"Es un arañabot roto, ahora inerte e indefenso. Puede ser desarmado para " -"recuperar los módulos de armas." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed defense bot" -msgid_plural "broken disarmed defense bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken disarmed defense bot -#. ~ Description for broken security robot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken security robot -#. ~ Description for broken defense bot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken disarmed military bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken security robot" -msgid_plural "broken security robots" -msgstr[0] "seguribot roto" -msgstr[1] "seguribots rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol robot" -msgid_plural "broken riotcontrol robots" -msgstr[0] "antidisturbot roto" -msgstr[1] "antidisturbots rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken chickenwalker" -msgid_plural "broken chickenwalkers" -msgstr[0] "mecagallina rota" -msgstr[1] "mecagallinas rotas" - -#. ~ Description for broken chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "A broken chickenwalker. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed chickenwalker" -msgid_plural "broken disarmed chickenwalkers" -msgstr[0] "mecagallina desarmada rota" -msgstr[1] "mecagallinas desarmadas rotas" - -#. ~ Description for broken disarmed chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken chickenwalker. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken tank drone -#: lang/json/GENERIC_from_json.py -msgid "A broken tank drone. Could be stripped down for parts." -msgstr "Es un drone tanque roto. Puede ser desarmado para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed tank drone" -msgid_plural "broken disarmed tank drones" -msgstr[0] "drone tanque desarmado roto" -msgstr[1] "drones tanque desarmados rotos" - -#. ~ Description for broken disarmed tank drone -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Could be gutted for parts or recrafted into a salvaged" -" robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "robot component" -msgid_plural "robot components" -msgstr[0] "pieza de robot" -msgstr[1] "piezas de robots" - -#. ~ Description for robot component -#: lang/json/GENERIC_from_json.py -msgid "" -"A component for turrets and robots. It is unuseable in its current state." -msgstr "Una pieza para robots o torretas. No es útil así tal cual." - -#: lang/json/GENERIC_from_json.py -msgid "integral microreactor" -msgid_plural "integral microreactors" -msgstr[0] "microreactor integral" -msgstr[1] "microreactores integrales" - -#. ~ Description for integral microreactor -#: lang/json/GENERIC_from_json.py -msgid "A compact fusion reactor used to power a robot's energy weapons." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "integral flash gun" -msgid_plural "integral flash guns" -msgstr[0] "arma flash integral" -msgstr[1] "armas flash integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral tazer" -msgid_plural "integral tazers" -msgstr[0] "pistola eléctrica integral" -msgstr[1] "pistolas eléctricas integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 9mm firearm" -msgid_plural "integral 9mm firearms" -msgstr[0] "arma 9mm integral" -msgstr[1] "armas 9mm integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 5.56mm firearm" -msgid_plural "integral 5.56mm firearms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 7.62mm firearm" -msgid_plural "integral 7.62mm firearms" -msgstr[0] "arma 7.62mm integral" -msgstr[1] "armas 7.62mm integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral shotgun" -msgid_plural "integral shotguns" -msgstr[0] "escopeta integral" -msgstr[1] "escopetas integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral beanbag launcher" -msgid_plural "integral beanbag launchers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral teargas launcher" -msgid_plural "integral teargas launchers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py -msgid "integral flamethrower" -msgid_plural "integral flamethrowers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "integral flechette firearm" -msgid_plural "integral flechette firearms" -msgstr[0] "arma de dardos perforantes integral" -msgstr[1] "armas de dardos perforantes integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral 8x40mm firearm" -msgid_plural "integral 8x40mm firearms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "integral 50 caliber firearm" -msgid_plural "integral 50 caliber firearms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral grenade launcher" -msgid_plural "integral grenade launchers" -msgstr[0] "lanzagranadas integral" -msgstr[1] "lanzagranadas integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral laser weapon" -msgid_plural "integral laser weapons" -msgstr[0] "arma láser integral" -msgstr[1] "armas láser integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral plasma ejector" -msgid_plural "integral plasma ejectors" -msgstr[0] "eyectaplasma integral" -msgstr[1] "eyectaplasma integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral electromagnetic railgun" -msgid_plural "integral electromagnetic railguns" -msgstr[0] "cañón de riel electromagnético integral" -msgstr[1] "cañones de riel electromagnéticos integrales" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral acid thrower" -msgid_plural "integral acid throwers" -msgstr[0] "lanza-ácido integral" -msgstr[1] "lanza-ácido integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral electro caster" -msgid_plural "integral electro casters" -msgstr[0] "lanza-rayos eléctricos integral" -msgstr[1] "lanza-rayos eléctricos integrales" - -#: lang/json/GENERIC_from_json.py -msgid "integral EMP projector" -msgid_plural "integral EMP projectors" -msgstr[0] "proyector PEM integral" -msgstr[1] "proyectores PEM integrales" - -#. ~ Description for Mjölnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Mjölnir, the hammer of Thor. It is rumored to be able to level" -" mountains with a single blow. It is decorated with gold and silver " -"ornaments." -msgstr "" -"Una réplica de Mjölnir, el martillo de Thor. Un rumor dice que es capaz de " -"aplanar montañas de un solo golpe. Está decorado con adornos de oro y plata." - -#. ~ Description for Gungnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Gungnir, the spear of Odin. It is rumored to be the perfect " -"spear, perfectly hitting any target regardless of the wielder's strength or " -"skill. It is decorated with gold and silver ornaments." -msgstr "" -"Una réplica de Gungnir, la lanza de Odín. Un rumor dice que es la lanza " -"perfecta, siempre acertando perfectamente en el objetivo sin importar la " -"fuerza o habilidad de quien la utiliza. Está decorada con adornos de oro y " -"plata." - -#: lang/json/GENERIC_from_json.py -msgid "broken light auto armor" -msgid_plural "broken light auto armors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken light auto armor -#. ~ Description for broken basic auto armor -#. ~ Description for broken heavy auto armor -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken set of power armor fitted with an AI core for automated use. It " -"cannot be worn or disassembled until re-crafted into an undamaged robot." -msgstr "" -"Es un conjunto roto de armadura de poder, con IA instalada para un uso " -"automático. No puede ser usada o desarmada hasta que sea convertida en un " -"robot ileso." - -#: lang/json/GENERIC_from_json.py -msgid "broken basic auto armor" -msgid_plural "broken basic auto armors" -msgstr[0] "armadura básica automática rota" -msgstr[1] "armaduras básicas automáticas rotas" - -#: lang/json/GENERIC_from_json.py -msgid "broken heavy auto armor" -msgid_plural "broken heavy auto armors" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "dead craftbuddy" -msgid_plural "dead craftbuddies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'dead craftbuddy', 'str_pl': 'dead craftbuddies'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken repair robot, now limp and unmoving. Could be gutted for parts or " -"re-crafted into a functioning pal." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating lantern" -msgid_plural "broken floating lanterns" -msgstr[0] "linterna voladora rota" -msgstr[1] "linternas voladoras rotas" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating lantern, now dark and motionless. Could be gutted for " -"parts." -msgstr "" -"Es una linterna voladora rota, ahora oscura e inmóvil. Puede ser desarmada " -"para recuperar partes." - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "A broken arson hack, now cold and burnt. Could be gutted for parts." -msgstr "" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken distract-o-hack, now silent and still. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken spore hack" -msgid_plural "broken spore hacks" -msgstr[0] "espora-hack roto" -msgstr[1] "espora-hacks rotos" - -#. ~ Description for broken spore hack -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken spore hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken watercannon turret" -msgid_plural "broken watercannon turrets" -msgstr[0] "torreta rota de cañón de agua" -msgstr[1] "torretas rotas de cañón de agua" - -#. ~ Description for broken watercannon turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken watercannon turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Es una torreta rota de cañón de agua. Mucho menos amenazantes ahora que está" -" ahí inerte. Puede ser desarmada para recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating heater" -msgid_plural "broken floating heaters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken floating heater -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating heater, now cold and motionless. Could be stripped down " -"or re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating furnace" -msgid_plural "broken floating furnaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken floating furnace -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating furnace, now cold and motionless. Could bestripped down " -"or re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken burning eye" -msgid_plural "broken burning eyes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken burning eye -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken burning eye, now dark and motionless. Could be stripped down or " -"re-crafted." -msgstr "" -"Es un ojo llameante roto, ahora apagado e inmóvil. Puede ser desarmado para " -"recuperar partes o reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken butler-bot" -msgid_plural "broken butler-bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken butler-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken butler-bot, now silent and mangled. Could be stripped down for " -"parts." -msgstr "" -"Es un mayordobot roto, ahora silencioso y mutilado. Puede ser desarmado para" -" recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken construction robot" -msgid_plural "broken construction robots" -msgstr[0] "robot constructor roto" -msgstr[1] "robots constructores rotos" - -#. ~ Description for broken construction robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken construction robot, now wrecked and immobile. Could be stripped " -"down for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken firefighter robot" -msgid_plural "broken firefighter robots" -msgstr[0] "bomberobot roto" -msgstr[1] "bomberobots rotos" - -#. ~ Description for broken firefighter robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken firefighter robot, now cold and inert. Could be stripped down for " -"parts." -msgstr "" -"Es un bomberobot roto, ahora frío e inerte. Puede ser desarmado para " -"recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken blob breeder" -msgid_plural "broken blob breeders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken blob breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien blobs. Could be stripped down or re-" -"crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken slime breeder" -msgid_plural "broken slime breeders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken slime breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien slimes. Could be stripped down or re-" -"crafted." -msgstr "" -"Es un incubador robótico roto para slimes alienígenas. Puede ser desarmado o" -" reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken digestron" -msgid_plural "broken digestrons" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken digestron -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken acid digestor robot, now cold and unmoving. Could be stripped down" -" or re-crafted." -msgstr "" -"Es un robot roto digestor de ácido, ahora frío e inmóvil. Puede ser " -"desarmado o reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken bee-bot" -msgid_plural "broken bee-bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken bee-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken beehive robot, now still and bee-less. Could be stripped down or " -"re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken medical bot" -msgid_plural "broken medical bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken medical bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot, now crumpled and inert. Could be stripped down for " -"parts." -msgstr "" -"Es un robot médico roto, ahora plegado e inerte. Puede ser desarmado para " -"recuperar partes." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed medical robot" -msgid_plural "broken disarmed medical robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken disarmed medical robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot. Its onboard pharma-crafter and integral surgical " -"tools have been removed. Could be gutted for parts or crafted into a " -"salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken assassin robot" -msgid_plural "broken assassin robots" -msgstr[0] "asesinobot roto" -msgstr[1] "asesinobots rotos" - -#. ~ Description for broken assassin robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken assassin robot, now limp and immobile. Could be stripped down or " -"re-crafted." -msgstr "" -"Es un robot asesino roto, ahora flácido e inmóvil. Puede ser desarmado o " -"reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken elixirator" -msgid_plural "broken elixirators" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken elixirator -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken elixirator, now shattered and lifeless. Could be stripped down or " -"re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken party bot" -msgid_plural "broken party bots" -msgstr[0] "fiestabot roto" -msgstr[1] "fiestabots rotos" - -#. ~ Description for broken party bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken party robot, now wasted and burnt out. Looks like the party's " -"over. Could be stripped down or re-crafted." -msgstr "" -"Es un fiestabot roto, ahora arruinado y quemado. Parece que la fiesta " -"terminó. Puede ser desarmado o reconstruido." - -#: lang/json/GENERIC_from_json.py -msgid "broken insane cyborg" -msgid_plural "broken insane cyborgs" -msgstr[0] "androide demente roto" -msgstr[1] "androides dementes rotos" - -#. ~ Description for broken insane cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be gutted for parts or " -"crafted into a salvaged robot." -msgstr "" -"Es un androide roto, ahora inmóvil e inerte. Puede ser desarmado para " -"recuperar partes o convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken necrotic cyborg" -msgid_plural "broken necrotic cyborgs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken necrotic cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be stripped down or re-" -"crafted into a salvaged robot." -msgstr "" -"Es un androide roto, ahora inmóvil e inerte. Puede ser desarmado o " -"convertido en un robot recuperado." - -#: lang/json/GENERIC_from_json.py -msgid "broken rat snatcher" -msgid_plural "broken rat snatchers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken rat snatcher -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken rat snatcher, now harmless and inert. Could be stripped down or " -"re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken grab-bot" -msgid_plural "broken grab-bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken grab-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken grabber robot, now limp and nonthreatening. Could be stripped down" -" or re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken pest hunter" -msgid_plural "broken pest hunters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken pest hunter -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken pest hunter, now harmless and inert. Could be gutted for parts or " -"re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense bot" -msgid_plural "broken defense bots" -msgstr[0] "robot defensivo roto" -msgstr[1] "robots defensivos rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken junkyard cowboy" -msgid_plural "broken junkyard cowboys" -msgstr[0] "vaquero de basurero roto" -msgstr[1] "vaqueros de basurero rotos" - -#. ~ Description for broken junkyard cowboy -#. ~ Description for broken shortcircuit samurai -#. ~ Description for broken slapdash paladin -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken shortcircuit samurai" -msgid_plural "broken shortcircuit samurais" -msgstr[0] "samurai cortocircuitos roto" -msgstr[1] "samurais cortocircuitos rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken slapdash paladin" -msgid_plural "broken slapdash paladins" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed military bot" -msgid_plural "broken disarmed military bots" -msgstr[0] "robot militar desarmado y roto" -msgstr[1] "robots militares desarmados y rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken military trainer robot" -msgid_plural "broken military trainer robots" -msgstr[0] "militaribot de entrenamiento roto" -msgstr[1] "militaribots de entrenamiento rotos" - -#. ~ Description for broken military trainer robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military trainer robot, shattered and inert. This one is armed " -"with an integrated paintball gun. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military robot" -msgid_plural "broken military robots" -msgstr[0] "robot militar roto" -msgstr[1] "robots militares rotos" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 5.56mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 7.62mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 50 caliber firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 8x40mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flechette gun. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 40mm grenade launcher. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military flame robot" -msgid_plural "broken military flame robots" -msgstr[0] "militaribot flameante roto" -msgstr[1] "militaribots flameantes rotos" - -#. ~ Description for broken military flame robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flamethrower. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-guardian" -msgid_plural "broken robo-guardians" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken robo-guardian -#. ~ Description for broken robo-protector -#. ~ Description for broken robo-defender -#. ~ Description for {'str': 'broken glittering lady', 'str_pl': 'broken -#. glittering ladies'} -#. ~ Description for broken bitter spinster -#. ~ Description for broken fist king -#. ~ Description for broken atomic sultan -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken robote deluxe" -msgid_plural "broken robote deluxes" -msgstr[0] "robot de lujo roto" -msgstr[1] "robots de lujo rotos" - -#. ~ Description for broken robote deluxe -#: lang/json/GENERIC_from_json.py -msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-protector" -msgid_plural "broken robo-protectors" -msgstr[0] "protectorbot roto" -msgstr[1] "protectorbots rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-defender" -msgid_plural "broken robo-defenders" -msgstr[0] "defensorbot roto" -msgstr[1] "defensorbots rotos" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed advanced bot" -msgid_plural "broken disarmed advanced bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken disarmed advanced bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced robot" -msgid_plural "broken advanced robots" -msgstr[0] "robot avanzado roto" -msgstr[1] "robots avanzados rotos" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated laser-" -"emitter. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated plasma-" -"ejector. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated electro-" -"caster. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated EMP " -"projector. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken glittering lady" -msgid_plural "broken glittering ladies" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken bitter spinster" -msgid_plural "broken bitter spinsters" +msgid "TEST plank" +msgid_plural "TEST planks" msgstr[0] "" msgstr[1] "" -#: lang/json/GENERIC_from_json.py -msgid "broken chainsaw horror" -msgid_plural "broken chainsaw horrors" -msgstr[0] "horror motosierra roto" -msgstr[1] "horrores motosierra rotos" - -#. ~ Description for broken chainsaw horror -#. ~ Description for broken screeching terror -#. ~ Description for broken hooked nightmare +#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" -"A broken salvaged robot. Thank God it's finally dead. Could be stripped or" -" recrafted." +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" +" lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken screeching terror" -msgid_plural "broken screeching terrors" +msgid "TEST pipe" +msgid_plural "TEST pipes" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "broken hooked nightmare" -msgid_plural "broken hooked nightmares" +msgid "TEST sheet metal" +msgid_plural "TEST sheet metals" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "broken fist king" -msgid_plural "broken fist kings" +msgid "TEST gallon jug" +msgid_plural "TEST gallon jugs" msgstr[0] "" msgstr[1] "" #: lang/json/GENERIC_from_json.py -msgid "broken atomic sultan" -msgid_plural "broken atomic sultans" +msgid "TEST small waterskin" +msgid_plural "TEST small waterskins" msgstr[0] "" msgstr[1] "" -#. ~ Description for AI core #: lang/json/GENERIC_from_json.py -msgid "A computer module for controlling robots." -msgstr "Es un módulo de computadora para controlar robots." - -#: lang/json/GENERIC_from_json.py -msgid "surgery module" -msgid_plural "surgery modules" -msgstr[0] "módulo de cirugía" -msgstr[1] "módulos de cirugía" - -#. ~ Description for surgery module -#: lang/json/GENERIC_from_json.py -msgid "A microsurgery module for a medical robot." -msgstr "Es un módulo de microcirugía para un robot médico." - -#: lang/json/GENERIC_from_json.py -msgid "pharmaceutical module" -msgid_plural "pharmaceutical modules" -msgstr[0] "módulo farmacéutico" -msgstr[1] "módulos farmacéuticos" - -#. ~ Description for pharmaceutical module -#: lang/json/GENERIC_from_json.py -msgid "A pharmaceutical fabricating module for a medical robot." -msgstr "Es un módulo de fabricación de fármacos, para un robot médico." - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral paintball gun" -msgid_plural "integral paintball guns" +msgid "test balloon" +msgid_plural "test balloons" msgstr[0] "" msgstr[1] "" -#. ~ Description for integral paintball gun -#: lang/json/GENERIC_from_json.py -msgid "" -"A high-powered paintball module used for safely testing robots or training " -"soldiers." -msgstr "" -"Es un módulo de paintball de alta potencia, usado para probar robots o " -"entrenar soldados." - +#. ~ Description for {'str': 'test balloon'} #: lang/json/GENERIC_from_json.py -msgid "robot carrier" -msgid_plural "robot carriers" -msgstr[0] "transportador de robots" -msgstr[1] "transportadores de robots" - -#. ~ Description for robot carrier -#: lang/json/GENERIC_from_json.py -msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large machine in place. It is " -"meant to hold large drones and robots for transport. Use it on a suitable " -"robot to capture, use it on an empty tile to release." +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "TEST plank" -msgid_plural "TEST planks" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "TEST pipe" -msgid_plural "TEST pipes" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "TEST sheet metal" -msgid_plural "TEST sheet metals" +msgid "test pointy stick" +msgid_plural "test pointy sticks" msgstr[0] "" msgstr[1] "" @@ -66408,202 +66378,50 @@ msgid "A well-balanced sword for test purposes" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "a large artillery casing" -msgid_plural "large artillery casings" -msgstr[0] "carcasa de artillería grande" -msgstr[1] "carcasas de artillería grande" - -#: lang/json/GENERIC_from_json.py -msgid "30x113mm autocannon belt linkage" -msgid_plural "30x113mm autocannon belt linkages" -msgstr[0] "cinturón de cañón automático 30x113mm" -msgstr[1] "cinturones de cañón automático 30x113mm" - -#: lang/json/GENERIC_from_json.py -msgid "30mm canister" -msgid_plural "30mm canisters" -msgstr[0] "carcasa 40mm" -msgstr[1] "carcasas 40mm" - -#. ~ Description for 30mm canister -#: lang/json/GENERIC_from_json.py -msgid "A canister from a spent 30mm shell." -msgstr "Una carcasa de un proyectil 30mm usado." - -#: lang/json/GENERIC_from_json.py -msgid "120mm canister" -msgid_plural "120mm canisters" -msgstr[0] "carcasa 120mm" -msgstr[1] "carcasas 120mm" - -#. ~ Description for 120mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 120mm shell, now an expensive paperweight." -msgstr "" -"Una carcasa grande de un proyectil 120mm usado, y que ahora es un " -"pisapapeles carísimo." - -#: lang/json/GENERIC_from_json.py -msgid "155mm canister" -msgid_plural "155mm canisters" -msgstr[0] "carcasa 155mm" -msgstr[1] "carcasas 155mm" - -#. ~ Description for 155mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 155mm shell, now an expensive paperweight." -msgstr "" -"Una carcasa grande de un proyectil 155mm usado, y que ahora es un " -"pisapapeles carísimo." - -#: lang/json/GENERIC_from_json.py -msgid "stabilized portal" -msgid_plural "stabilized portals" -msgstr[0] "portal estabilizado" -msgstr[1] "portales estabilizados" - -#. ~ Description for {'str': 'stabilized portal'} -#: lang/json/GENERIC_from_json.py -msgid "" -"As you gaze into the seemingly infinite depths of this portable hole in " -"reality, a phrase from a time forever gone echoes in your mind. \"There are" -" two things that are infinite: the universe and human kleptomania.\"" -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" +msgid "test box" +msgid_plural "test boxs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'vehicle shelving'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" -msgstr[0] "matriz solar" -msgstr[1] "matrices solares" - -#. ~ Description for {'str': 'solar array'} +#. ~ Description for {'str': 'test box'} #: lang/json/GENERIC_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. However, this comes at the " -"cost of being prohibitively heavy." +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." msgstr "" -"Es una docena de paneles solares puestos en un chasis de varios metros de " -"altura. Mantiene a los paneles a salvo de cualquier amenaza potencial, y " -"mejora su eficiencia debido a que puede seguir al sol. Sin embargo, es " -"imposiblemente pesado." -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" -msgstr[0] "matriz solar mejorada" -msgstr[1] "matrices solares mejoradas" - -#. ~ Description for {'str': 'upgraded solar array'} #: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able to track the sun. However, this comes" -" at the cost of being prohibitively heavy and obstructive." -msgstr "" -"Es una docena de paneles solares mejorados puestos en un chasis de varios " -"metros de altura. Mantiene a los paneles a salvo de cualquier amenaza " -"potencial, y mejora su eficiencia debido a que puede seguir al sol. Sin " -"embargo, es imposiblemente pesado y molesto." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'upgraded reinforced solar array'} +#. ~ Description for test 14 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded reinforced solar panels set on a chassis reaching several " -"meters high. It keeps the fragile panels safely away from any potential " -"threats and improves efficiency due to being able to track the sun. " -"However, this comes at the cost of being prohibitively heavy and " -"obstructive." +msgid "A thin rod exactly 14 cm in length" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "gelectrode" -msgid_plural "gelectrodes" +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'gelectrode'} +#. ~ Description for test 15 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A strange biological anomaly, this blob seems capable of emitting light when" -" electricity is provided to it, from small lamps up to headlights. " -"Unfortunately there is no place to insert a battery, so you'll have to hook " -"it up to a vehicle's power grid. It seems pliable enough to pull apart…" +msgid "A thin rod exactly 15 cm in length" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "amorphous heart" -msgid_plural "amorphous hearts" +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'amorphous heart'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This amorphous mass seems to have finished developing; its advanced internal" -" structures testifying to that. It is capable of locomotion through " -"internal hydraulic pressure, capable of moving substantial loads, and, in an" -" astounding display of intelligence, is capable of manipulating anything " -"it's attached to, whether blob-based or otherwise, through extended " -"pseudopods. You think you might be able to manipulate it, and through it, " -"all its attached parts. Though to do so you'll have to position yourself to" -" be in contact with it; and it appears unnervingly willing to accommodate " -"you…" -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond frame" -msgid_plural "diamond frames" -msgstr[0] "estructura de diamante" -msgstr[1] "estructuras de diamante" - -#. ~ Description for {'str': 'diamond frame'} +#. ~ Description for {'str': 'test nuclear carafe'} #: lang/json/GENERIC_from_json.py msgid "" -"A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " -"weight." -msgstr "" -"Es la brillante y centelleante estructura de diamante de un vehículo. " -"Increíblemente fuerte para lo que pesa." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond plating" -msgid_plural "diamond platings" -msgstr[0] "placa de diamante" -msgstr[1] "placas de diamante" - -#. ~ Description for {'str': 'diamond plating'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A piece of armor plating made of clear diamond. Incredibly strong for its " -"weight." +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." msgstr "" -"Es una pieza de coraza hecha de diamante transparente. Increíblemente fuerte" -" para lo que pesa." #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" @@ -66781,7 +66599,7 @@ msgstr "" #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Containers" -msgstr "" +msgstr "Cosas: Recipientes" #. ~ Description for Loot: Containers #: lang/json/LOOT_ZONE_from_json.py @@ -66826,7 +66644,7 @@ msgstr "" #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Tools" -msgstr "" +msgstr "Cosas: Herramientas" #. ~ Description for Loot: Tools #: lang/json/LOOT_ZONE_from_json.py @@ -66873,7 +66691,7 @@ msgstr "Lugar para libros y revistas." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Mods" -msgstr "" +msgstr "Cosas: Modificaciones" #. ~ Description for Loot: Mods #: lang/json/LOOT_ZONE_from_json.py @@ -67193,6 +67011,9 @@ msgid "" "appliances and power tools. The battery's chemistry means that it has a " "very high capacity, but cannot be recharged." msgstr "" +"Es una batería mediana, con compatibilidad universal con toda clase de " +"electrodomésticos y herramientas. La química que constituye la batería la " +"hace poseer una gran capacidad pero no puede ser recargada." #: lang/json/MAGAZINE_from_json.py msgid "heavy battery" @@ -67355,8 +67176,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMSB40 20x66mm extended magazine" msgid_plural "RMSB40 20x66mm extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido RMSB40 20x66mm" +msgstr[1] "cargadores extendidos RMSB40 20x66mm" #. ~ Description for {'str': 'RMSB40 20x66mm extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -67392,8 +67213,8 @@ msgstr "Es un cargador de disco de una forma inusual, para el American-180." #: lang/json/MAGAZINE_from_json.py msgid ".22 19-round tube loader" msgid_plural ".22 19-round tube loaders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tubo de 19 balas .22" +msgstr[1] "cargadores de tubo de 19 balas .22" #. ~ Description for {'str': '.22 19-round tube loader'} #: lang/json/MAGAZINE_from_json.py @@ -67503,6 +67324,7 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "A compact 5-round box magazine used with the Ruger Mini-14 rifle." msgstr "" +"Es un cargador compacto de caja de 5 balas usado en el rifle Ruger Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 10-round magazine" @@ -67525,6 +67347,7 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "A compact 10-round box magazine used with the Ruger Mini-14 rifle." msgstr "" +"Es un cargador compacto de caja de 10 balas usado en el rifle Ruger Mini-14." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 20-round magazine" @@ -67594,12 +67417,14 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "A compact 20-round box magazine for use with STANAG compatible rifles." msgstr "" +"Es un cargador compacto de caja de 20 balas para usar en rifles compatibles " +"con STANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG 30-round magazine" msgid_plural "STANAG 30-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 30 balas STANAG" +msgstr[1] "cargadores de 30 balas STANAG" #. ~ Description for {'str': 'STANAG 30-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -67611,8 +67436,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "STANAG 40-round magazine" msgid_plural "STANAG 40-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 40 balas STANAG" +msgstr[1] "cargadores de 40 balas STANAG" #. ~ Description for {'str': 'STANAG 40-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -67714,8 +67539,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "G36 30-round magazine" msgid_plural "G36 30-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 30 balas G36" +msgstr[1] "cargadores de 30 balas G36" #. ~ Description for {'str': 'G36 30-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -67775,8 +67600,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "AUG 100-round double drum magazine" msgid_plural "AUG 100-round double drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de doble tambor de 100 balas AUG" +msgstr[1] "cargadores de doble tambor de 100 balas AUG" #. ~ Description for {'str': 'AUG 100-round double drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -67802,8 +67627,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Ruger makeshift magazine" msgid_plural "Ruger makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado Ruger" +msgstr[1] "cargadores improvisados Ruger" #. ~ Description for {'str': 'Ruger makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -67943,8 +67768,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "H&K G3 drum magazine" msgid_plural "H&K G3 drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor H&K G3" +msgstr[1] "cargadores de tambor H&K G3" #. ~ Description for {'str': 'H&K G3 drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -68094,8 +67919,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "HK417 makeshift magazine" msgid_plural "HK417 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado HK417" +msgstr[1] "cargadores improvisados HK417" #. ~ Description for {'str': 'HK417 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -68119,8 +67944,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "AR-10 makeshift magazine" msgid_plural "AR-10 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado AR-10" +msgstr[1] "cargadores improvisados AR-10" #. ~ Description for {'str': 'AR-10 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -68158,8 +67983,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Skorpion Vz. 61 magazine" msgid_plural "Skorpion Vz. 61 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador Skorpion Vz. 61" +msgstr[1] "cargadores Skorpion Vz. 61" #. ~ Description for {'str': 'Skorpion Vz. 61 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -68255,8 +68080,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "FN 1910 magazine" msgid_plural "FN 1910 magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador FN 1910" +msgstr[1] "cargadores FN 1910" #. ~ Description for {'str': 'FN 1910 magazine'} #: lang/json/MAGAZINE_from_json.py @@ -68382,6 +68207,8 @@ msgid "" "An extended 22-round magazine for use with Glock pistols chambered for .40 " "S&W or .357 SIG." msgstr "" +"Es un cargador extendido de 22 balas para pistolas Glock con calibre .40 S&W" +" o .357 SIG." #: lang/json/MAGAZINE_from_json.py msgid "Glock 22 magazine" @@ -68554,10 +68381,8 @@ msgstr[1] "" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." msgstr "" -"Es un cargador de caja estándar de acero de 7 balas para usar en la IMI " -"Desert Eagle." #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 magazine" @@ -68575,8 +68400,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 makeshift magazine" msgid_plural "MAC-10 makeshift magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador improvisado MAC-10" +msgstr[1] "cargadores improvisados MAC-10" #. ~ Description for {'str': 'MAC-10 makeshift magazine'} #: lang/json/MAGAZINE_from_json.py @@ -68601,8 +68426,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Thompson extended magazine" msgid_plural "Thompson extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido Thompson" +msgstr[1] "cargadores extendidos Thompson" #. ~ Description for {'str': 'Thompson extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -68612,8 +68437,8 @@ msgstr "Es un cargador extendido de 30 balas para el subfusil Thompson." #: lang/json/MAGAZINE_from_json.py msgid "Thompson drum magazine" msgid_plural "Thompson drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor Thompson" +msgstr[1] "cargadores de tambor Thompson" #. ~ Description for {'str': 'Thompson drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -69011,8 +68836,8 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "PPSh 71-round drum magazine" msgid_plural "PPSh 71-round drum magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de tambor PPSh de 71 balas " +msgstr[1] "cargadores de tambor PPSh de 71 balas " #. ~ Description for {'str': 'PPSh 71-round drum magazine'} #: lang/json/MAGAZINE_from_json.py @@ -69022,8 +68847,8 @@ msgstr "Es un cargador de tambor de gran capacidad para la PPSh-41." #: lang/json/MAGAZINE_from_json.py msgid "PPSh 35-round magazine" msgid_plural "PPSh 35-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador PPSh de 35 balas" +msgstr[1] "cargadores PPSh de 35 balas" #. ~ Description for {'str': 'PPSh 35-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -69122,19 +68947,6 @@ msgstr "" "Es un cargador de caja de 50 balas para usar en las armas Rivtech de calibre" " 8x40mm sin casquillo." -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "" - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" @@ -69231,8 +69043,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M9 extended magazine" msgid_plural "M9 extended magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador extendido M9" +msgstr[1] "cargadores extendidos M9" #. ~ Description for {'str': 'M9 extended magazine'} #: lang/json/MAGAZINE_from_json.py @@ -69338,8 +69150,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "USP 9mm magazine" msgid_plural "USP 9mm magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador USP 9mm" +msgstr[1] "cargadores USP 9mm" #. ~ Description for {'str': 'USP 9mm magazine'} #: lang/json/MAGAZINE_from_json.py @@ -69404,6 +69216,8 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "A 15 round steel box magazine for the Browning Hi-Power 9x19mm." msgstr "" +"Es un cargador de caja de acero de 15 balas para el Browning Hi-Power " +"9x19mm." #: lang/json/MAGAZINE_from_json.py msgid "P38 magazine" @@ -69441,8 +69255,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "PPQ 9x19mm 17-round magazine" msgid_plural "PPQ 9x19mm 17-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 17 balas PPQ 9x19mm" +msgstr[1] "cargadores de 17 balas PPQ 9x19mm" #. ~ Description for {'str': 'PPQ 9x19mm 17-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -69463,8 +69277,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "C-9 10-round magazine" msgid_plural "C-9 10-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 10 balas C-9" +msgstr[1] "cargadores de 10 balas C-9" #. ~ Description for {'str': 'C-9 10-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -69474,8 +69288,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "C-9 15-round magazine" msgid_plural "C-9 15-round magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de 15 balas C-9" +msgstr[1] "cargadores de 15 balas C-9" #. ~ Description for {'str': 'C-9 15-round magazine'} #: lang/json/MAGAZINE_from_json.py @@ -69588,6 +69402,8 @@ msgid "" "A pressurized 0.5L canister built for use with a small auxiliary " "flamethrower." msgstr "" +"Es un tubo presurizado de medio litro diseñado para alimentar un pequeño " +"lanzallamas." #: lang/json/MAGAZINE_from_json.py msgid "RM450-2 fuel canister" @@ -69607,8 +69423,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RM450-4 fuel canister" msgid_plural "RM450-4 fuel canisters" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tubo de combustible RM450-4" +msgstr[1] "tubos de combustible RM450-4" #. ~ Description for {'str': 'RM450-4 fuel canister'} #: lang/json/MAGAZINE_from_json.py @@ -69852,126 +69668,6 @@ msgstr[1] "" msgid "A bin for holding solid fuel." msgstr "" -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 auto-magazine" -msgid_plural "CW-24 auto-magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CW-24 auto-magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Es un autocargador avanzado para el rifle CW-24. Al igual que los cargadores" -" SVS, utiliza microbótica para cargar los cartuchos." - -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 extended magazine" -msgid_plural "CW-24 extended magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CW-24 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 extended magazine" -msgid_plural "CWD-63 extended magazines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for CWD-63 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." -msgstr "" -"Es un cargador de caja barato de 10 balas para el CWD-63. No es muy " -"confiable." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 magazine" -msgid_plural "CWD-63 magazines" -msgstr[0] "cargador CWD-63" -msgstr[1] "cargadores CWD-63" - -#. ~ Description for CWD-63 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"Since it's created for the .308 round, it doesn't need the curved shape of " -"the original magazine." -msgstr "" -"Como fue creado para la bala .308, no necesita ser de forma curva como el " -"cargador original." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robodrum" -msgid_plural "SVS-24 robodrums" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for SVS-24 robodrum -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 135-round drum magazine. Like the auto-magazine, it loads " -"cartridges using microrobotics." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robomag" -msgid_plural "SVS-24 robomags" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for SVS-24 robomag -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 42-round auto-magazine. Unlike previous generations of " -"magazines, this one uses microrobotics to load cartridges." -msgstr "" -"Es un autocargador avanzado de 42 balas. A diferencia de las generaciones " -"anteriores de cargadores, este utiliza microbótica para cargar los " -"cartuchos." - -#. ~ Description for .454 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 6 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid ".454 8-round speedloader" -msgid_plural ".454 8-round speedloaders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for .454 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 8 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid "Eagle 1776 magazine" -msgid_plural "Eagle 1776 magazines" -msgstr[0] "cargador Eagle 1776" -msgstr[1] "cargadores Eagle 1776" - -#. ~ Description for Eagle 1776 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " -"to the Eagle 1776." -msgstr "" -"Un cargador americano, diseñado para ofrecer 24 cartuchos .44 Magnum para el" -" Eagle 1776." - #: lang/json/MAGAZINE_from_json.py msgid "grenade machine gun belt" msgid_plural "grenade machine gun belts" @@ -70040,8 +69736,8 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "target pistol magazine" msgid_plural "target pistol magazines" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cargador de pistola deportiva" +msgstr[1] "cargadores de pistola deportiva" #. ~ Description for target pistol magazine #: lang/json/MAGAZINE_from_json.py @@ -70170,67 +69866,29 @@ msgid "" msgstr "" #: lang/json/MAGAZINE_from_json.py -msgid "30x113mm ammo belt" -msgid_plural "30x113mm ammo belts" +msgid "test disposable battery" +msgid_plural "test disposable batteries" msgstr[0] "" msgstr[1] "" +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test +#. disposable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "BB hopper" -msgid_plural "BB hoppers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'BB hopper'} -#. ~ Description for {'str': 'pebble hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"small round shot into the weapon's chamber below. It is not very reliable, " -"but quick to reload." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid "bolt hopper" -msgid_plural "bolt hoppers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'bolt hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted crossbow. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"crossbow bolt into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test disposable battery." msgstr "" -"Es un cargador improvisado para una ballesta montada en un vehículo. Es una " -"caja común de metal con unas guías plásticas, un perno de ballesta cae por " -"la gravedad en la recámara del arma. Es medio incómoda de recargar y no es " -"muy confiable." #: lang/json/MAGAZINE_from_json.py -msgid "canister rack" -msgid_plural "canister racks" +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'canister rack'} +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test +#. rechargeable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"heavy canister into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test battery that may be recharged." msgstr "" -#: lang/json/MAGAZINE_from_json.py -msgid "pebble hopper" -msgid_plural "pebble hoppers" -msgstr[0] "" -msgstr[1] "" - #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" msgstr "predeterminado" @@ -70250,29 +69908,27 @@ msgid "Drifts the game away from realism and more towards sci-fi." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "C.R.I.T Expansion Mod" +msgid "Blaze Industries" msgstr "" -#. ~ Description for C.R.I.T Expansion Mod +#. ~ Description for Blaze Industries #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds a plethora of content: professions, guns/mods, WIP enemies, mutations, " -"martial arts, melee weapons, and some QOL changes such as plants from " -"cutting grass." +"Introduces the fictional corporation Blaze Industries, bringing advanced " +"vehicle modification to the consumer." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Craftable Gun Pack" -msgstr "Paquete de Armas Fabricables" +msgid "C.R.I.T Expansion Mod" +msgstr "" -#. ~ Description for Craftable Gun Pack +#. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " -"balance." +"Adds a plethora of content: professions, guns/mods/weapons, WIP mobs, " +"mutations, MA styles, and some QOL innawoods changes. Use the readme to see " +"more details!" msgstr "" -"Agrega más armas que pueden ser fabricadas, y pólvora. ADVERTENCIA: Rompe el" -" balance del juego." #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" @@ -70294,17 +69950,6 @@ msgid "" "occupation. Use other mods at your own risk!" msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Folding Parts pack" -msgstr "Pack de Piezas Plegables" - -#. ~ Description for Folding Parts pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Makes solar panels and several other parts foldable, and adds foldable " -"quarterboards." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" msgstr "DinoMod" @@ -70315,28 +69960,6 @@ msgid "" "Adds dinosaurs. Some rideable, others less friendly. Life will find a way." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Icecoon's Arsenal" -msgstr "Arsenal de Icecoon" - -#. ~ Description for Icecoon's Arsenal -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those gun nuts. Don't have enough near-future firearms in your life? " -"Add this mod today!" -msgstr "" -"Para esos pistoleros cascarrabias. ¿No tienes suficientes armas de fuego " -"futuristas en tu vida? ¡Añade esta modificación hoy!" - -#: lang/json/MOD_INFO_from_json.py -msgid "DeadLeaves' Fictional Guns" -msgstr "Armas Ficticias de DeadLeaves" - -#. ~ Description for DeadLeaves' Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a bunch of rare, fictional weapons." -msgstr "Agrega un montón de armas raras y ficticias." - #: lang/json/MOD_INFO_from_json.py msgid "Fuji's Military Profession Pack" msgstr "" @@ -70389,53 +70012,30 @@ msgid "Fuji Structures mod support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Graphical Overmap More Locations" -msgstr "" - -#. ~ Description for Graphical Overmap More Locations -#: lang/json/MOD_INFO_from_json.py -msgid "More Locations mod support for Graphical Overmap." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Graphical Overmap Urban Development" -msgstr "" - -#. ~ Description for Graphical Overmap Urban Development -#: lang/json/MOD_INFO_from_json.py -msgid "Urban Development mod support for Graphical Overmap." +msgid "Graphical Overmap Magiclysm" msgstr "" +#. ~ Description for Graphical Overmap Magiclysm #: lang/json/MOD_INFO_from_json.py -msgid "Garden Pots" +msgid "Magiclysm support for Graphical Overmap." msgstr "" -#. ~ Description for Garden Pots #: lang/json/MOD_INFO_from_json.py -msgid "" -"Allows you to grow seeds in craftable garden pots that can be carried around" -" as items. Perfect for the nomadic botanist." +msgid "Graphical Overmap More Locations" msgstr "" +#. ~ Description for Graphical Overmap More Locations #: lang/json/MOD_INFO_from_json.py -msgid "Roadheader and other mining vehicles" +msgid "More Locations mod support for Graphical Overmap." msgstr "" -#. ~ Description for Roadheader and other mining vehicles #: lang/json/MOD_INFO_from_json.py -msgid "Adds a few mining vehicles, requires Vehicle Additions Pack." +msgid "Graphical Overmap Urban Development" msgstr "" +#. ~ Description for Graphical Overmap Urban Development #: lang/json/MOD_INFO_from_json.py -msgid "Hydroponics" -msgstr "Hidroponía " - -#. ~ Description for Hydroponics -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds hydroponic units, a furniture which can have crops planted in it for " -"increased yields. Spawn occasionally in labs or basements. Or build your " -"own." +msgid "Urban Development mod support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py @@ -70458,37 +70058,6 @@ msgstr "Magiclysm" msgid "Cataclysm but with magic spells!" msgstr "¡Cataclysm pero con hechizos mágicos!" -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Medieval and Historic Classes and Shields" -msgstr "" - -#. ~ Description for Medieval and Historic Classes and Shields -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Assorted fun classes and shields for the wannabe knight, legionary, and " -"more." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Modular Turrets" -msgstr "Torretas Modulares" - -#. ~ Description for Modular Turrets -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Gives turrets swappable firearm modules, which can be reclaimed from broken " -"robots." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "More Locations" msgstr "Más Lugares" @@ -70502,28 +70071,6 @@ msgstr "" "Agrega edificios con niveles Z y calabozos. Todavía está sin pulir. Antes de" " crear un mundo, puedes borrar subdirectorios para prohibir lugares." -#: lang/json/MOD_INFO_from_json.py -msgid "More Survival Tools" -msgstr "Más Herramientas de Superviv." - -#. ~ Description for More Survival Tools -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those who prefer being innawoods. Adds several tools, various recipes " -"additions/tweaks, plus two new professions." -msgstr "" -"Para los que prefieran permanecer en el bosque. Agrega varias herramientas, " -"recetas y modificaciones, y dos profesiones más." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mundane Zombies" -msgstr "Zombis Mundanos" - -#. ~ Description for Mundane Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all special zombies from the game." -msgstr "Saca del juego todos los zombis especiales." - #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" msgstr "NPCs mutantes" @@ -70548,15 +70095,6 @@ msgid "" "sweet treats." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Mythological Replicas" -msgstr "Réplicas Mitológicas" - -#. ~ Description for Mythological Replicas -#: lang/json/MOD_INFO_from_json.py -msgid "Adds recipes for replicas of mythological weapons." -msgstr "Agrega recetas para réplicas de armas mitológicas." - #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" msgstr "Beta Guardia Nacional" @@ -70568,71 +70106,6 @@ msgid "" "Provide feedback in the thread under 'The Lab'" msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "No Acid Zombies" -msgstr "Sin Zombis Ácidos" - -#. ~ Description for No Acid Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all acid-based zombies from the game." -msgstr "Saca del juego todos los zombis ácidos." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Ants" -msgstr "Sin Hormigas" - -#. ~ Description for No Ants -#: lang/json/MOD_INFO_from_json.py -msgid "Removes ants and anthills from the game" -msgstr "Elimina hormigas y hormigueros del juego" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Bees" -msgstr "Sin Abejas" - -#. ~ Description for No Bees -#: lang/json/MOD_INFO_from_json.py -msgid "Removes bees and beehives from the game" -msgstr "Elimina abejas y colmenas del juego" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Big Zombies" -msgstr "Sin Zombis Gigantes" - -#. ~ Description for No Big Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " -"game." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Explosive Zombies" -msgstr "Sin Zombis Explosivos" - -#. ~ Description for No Explosive Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all explosion-based zombies from the game." -msgstr "Saca del juego todos los zombis que explotan." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Filthy Clothing" -msgstr "Sin Ropa Sucia" - -#. ~ Description for No Filthy Clothing -#: lang/json/MOD_INFO_from_json.py -msgid "Clothes dropped by zombies will be completely clean." -msgstr "La ropa dejada por los zombis esta complementamente limpia." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Flaming Weapons" -msgstr "Sin Armas de Llamas" - -#. ~ Description for No Flaming Weapons -#: lang/json/MOD_INFO_from_json.py -msgid "Removes flaming melee weapons." -msgstr "Saca del juego las armas de llamas de cuerpo a cuerpo." - #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" msgstr "Sin Monstruos Fúngicos" @@ -70642,26 +70115,6 @@ msgstr "Sin Monstruos Fúngicos" msgid "Removes fungal monsters and regions from the game." msgstr "Saca del juego las regiones y los monstruos fúngicos." -#: lang/json/MOD_INFO_from_json.py -msgid "No Medieval Items" -msgstr "Sin Objetos Medievales" - -#. ~ Description for No Medieval Items -#: lang/json/MOD_INFO_from_json.py -msgid "Removes medieval weapons, armors, and specific books." -msgstr "" -"Saca del juego las armas, armaduras y libros específicos, pertenecientes a " -"la edad media." - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Mutagens" -msgstr "Desactivar Mutágenos" - -#. ~ Description for Disable Mutagens -#: lang/json/MOD_INFO_from_json.py -msgid "Removes mutagen items from the game." -msgstr "Saca del juego los mutágenos." - #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" msgstr "Desactivar necesidades de los PNJ" @@ -70671,16 +70124,6 @@ msgstr "Desactivar necesidades de los PNJ" msgid "Makes NPCs not require food, water or rest." msgstr "Hace que los PNJ no necesiten ni comida, ni agua ni descansar." -#: lang/json/MOD_INFO_from_json.py -msgid "No Antique Firearms" -msgstr "Sin Armas de Fuego Antiguas" - -#. ~ Description for No Antique Firearms -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all black powder and pre-Cold War firearms." -msgstr "" -"Elimina todas las armas de polvo negro y las de la era \"Pre-Guerra Fría\"." - #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" msgstr "Sin Estaciones de Tren" @@ -70690,42 +70133,6 @@ msgstr "Sin Estaciones de Tren" msgid "Removes above-ground rail stations from the game." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Religious Texts" -msgstr "Desactivar textos religiosos" - -#. ~ Description for Disable Religious Texts -#: lang/json/MOD_INFO_from_json.py -msgid "Removes religious text items from the game." -msgstr "Saca del juego todos los textos religiosos." - -#: lang/json/MOD_INFO_from_json.py -msgid "Prevent Zombie Revivication" -msgstr "Prevenir Resucitación de Zombis" - -#. ~ Description for Prevent Zombie Revivication -#: lang/json/MOD_INFO_from_json.py -msgid "Disables zombie revival." -msgstr "Desactiva la resucitación de los zombis." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Fictional Guns" -msgstr "Sin Armas Ficticias" - -#. ~ Description for No Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Removes fictional conventional firearms and ammunition." -msgstr "Saca del juego las armas y municiones ficticias." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Survivor Armor" -msgstr "Sin Armaduras de Supervivencia" - -#. ~ Description for No Survivor Armor -#: lang/json/MOD_INFO_from_json.py -msgid "Removes survivor armor." -msgstr "Saca del juego las armaduras de supervivencia." - #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" msgstr "Sin Monstruos" @@ -70738,40 +70145,6 @@ msgstr "" "Saca del juego todos los monstruos excepto los que pertenecen a la categoría" " FAUNA SALVAJE." -#: lang/json/MOD_INFO_from_json.py -msgid "Classic Roguelike Classes" -msgstr "Clases Clásicas de Roguelike" - -#. ~ Description for Classic Roguelike Classes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a set of professions which correspond to classic Roguelike character " -"archetypes." -msgstr "" -"Agrega un conjunto de profesiones que corresponden a los arquetipos clásicos" -" de los personajes de Roguelike." - -#: lang/json/MOD_INFO_from_json.py -msgid "Salvaged Robots" -msgstr "Robots Recuperados" - -#. ~ Description for Salvaged Robots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Expands the types of robots and allows players to jury-rig broken robots " -"into functioning companions." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp -msgid "Sleep Deprivation" -msgstr "Privación de Sueño" - -#. ~ Description for Sleep Deprivation -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Enables sleep deprivation mechanics independently of a player's fatigue." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Skills" msgstr "" @@ -70791,30 +70164,6 @@ msgid "" "Adds mockup items, recipes, and other content for use by automated tests." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Tanks and Other Vehicles" -msgstr "Tanques y Otros Vehículos" - -#. ~ Description for Tanks and Other Vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a few armored fighting vehicles and other such things, requires Vehicle" -" Additions Pack." -msgstr "" -"Agrega algunos vehículos blindados de combate y otras cosas similares. " -"Necesita el Pack de Adiciones Vehiculares." - -#: lang/json/MOD_INFO_from_json.py -msgid "Bens GF recipes" -msgstr "Recetas de Bens GF" - -#. ~ Description for Bens GF recipes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Some simple gluten free and lactose free alternative recipe options. NOT " -"EXHAUSTIVE." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" msgstr "Desarrollo Urbano" @@ -70824,15 +70173,6 @@ msgstr "Desarrollo Urbano" msgid "Holder for suburban and urban buildings." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Zombie Nightvision" -msgstr "Visión Nocturna de Zombis" - -#. ~ Description for Zombie Nightvision -#: lang/json/MOD_INFO_from_json.py -msgid "Gives all zombies perfect nightvision." -msgstr "Le otorga visión nocturna perfecta a todos los zombis." - #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" msgstr "Símbolos de Mapa Alternativos" @@ -70844,19 +70184,6 @@ msgid "" "and use initial letter of their names instead of ^v<>." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Vehicle Additions Pack" -msgstr "Pack de Adiciones Vehiculares" - -#. ~ Description for Vehicle Additions Pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Please see the included PAQ.txt in the mod folder if you encounter any " -"issues." -msgstr "" -"Por favor, leé el PAQ.txt incluido en el directorio del mod se encuentras " -"algún problema." - #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" msgstr "" @@ -70901,74 +70228,6 @@ msgstr "Región Desértica" msgid "A testbed/WIP mod to showcase regional_map_settings JSON changes." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "EZ-Mode Medical" -msgstr "" - -#. ~ Description for EZ-Mode Medical -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Increases broken limb mending speed and the effectiveness of healing items." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Makeshift Items Mod" -msgstr "Mod de Objetos Improvisados" - -#. ~ Description for Makeshift Items Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds more improvised item variants and rebalances existing ones." -msgstr "Añade más variación de objetos improvisados y retoca los existentes." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mapgen Demo" -msgstr "Demo de Generación de mapa" - -#. ~ Description for Mapgen Demo -#: lang/json/MOD_INFO_from_json.py -msgid "Demo for JSONized mapgens (megastore, missile silo)." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Classes and Scenarios Mod" -msgstr "Mod de Clases y Escenarios" - -#. ~ Description for Classes and Scenarios Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds new classes and scenarios while rebalancing some existing ones." -msgstr "" -"Agrega nuevas clases y escenarios y reajusta algunas de las ya existentes." - -#: lang/json/MOD_INFO_from_json.py -msgid "Necromancy" -msgstr "Necromancia" - -#. ~ Description for Necromancy -#: lang/json/MOD_INFO_from_json.py -msgid "Adds the ability to revive creatures as minions." -msgstr "Agrega la habilidad de revivir criaturas para que luchen para ti." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Sci-Fi Equipment" -msgstr "Sin objetos de Ciencia Ficción" - -#. ~ Description for No Sci-Fi Equipment -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes far-future Sci-Fi items such as powered armor and energy weapons." -msgstr "" -"Elimina elementos de ciencia ficción de un futuro lejano como armaduras y " -"armas de energía." - -#: lang/json/MOD_INFO_from_json.py -msgid "Simplified Nutrition" -msgstr "Nutrición simplificada" - -#. ~ Description for Simplified Nutrition -#: lang/json/MOD_INFO_from_json.py -msgid "Disables vitamin requirements." -msgstr "Desactiva los requisitos de vitaminas." - #: lang/json/MOD_INFO_from_json.py msgid "Rural-Only Mapgen" msgstr "" @@ -71185,6 +70444,8 @@ msgid "" "A tiny yellow and brown waterfowl chick, it could be from a number of " "different species." msgstr "" +"Es un pequeño pollito acuático amarillo y marrón, puede ser de cualquiera de" +" las especies que hay." #: lang/json/MONSTER_from_json.py msgid "broken cyborg" @@ -71271,6 +70532,9 @@ msgid "" "A TALON unmanned ground vehicle equipped with an M16A4. It is a small " "tracked UGV with an array of motors and sensors covering its weapon mount." msgstr "" +"Es un vehículo terrestre no tripulado TALON equipado con una M16A4. Es un " +"pequeño UGV rastreado con un conjunto de motores y sensores que cubren la " +"montura del arma." #: lang/json/MONSTER_from_json.py msgid "M202A1 autonomous TALON UGV" @@ -71293,7 +70557,6 @@ msgstr[0] "arañabot" msgstr[1] "arañabots" #. ~ Description for {'str': 'skitterbot'} -#. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py msgid "" "An insectoid robot the size of a small dog, designed for home security. " @@ -71518,7 +70781,7 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'large fish'} #: lang/json/MONSTER_from_json.py msgid "A large fish." -msgstr "" +msgstr "Es un pez... grande." #: lang/json/MONSTER_from_json.py msgid "huge fish" @@ -71780,6 +71043,8 @@ msgstr[1] "mojarras de agallas azules" msgid "" "A bluegill, an invasive species in Japan. Commonly gutted and cooked whole." msgstr "" +"Es un pez conocido como perca sol. Son casi una plaga en Japón. Comúnmente, " +"se los destripa y se los cocina enteros." #: lang/json/MONSTER_from_json.py msgid "redbreast sunfish" @@ -71887,8 +71152,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "white catfish" msgid_plural "white catfish" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "pez gato blanco" +msgstr[1] "peces gato blanco" #. ~ Description for {'str_sp': 'white catfish'} #: lang/json/MONSTER_from_json.py @@ -71908,6 +71173,8 @@ msgid "" "A northern pike. Pike can be a pretty aggressive fish, careful around those" " teeth." msgstr "" +"Es un lucio del norte. Los lucios pueden ser peces muy agresivos, ten " +"cuidado con esos dientes." #: lang/json/MONSTER_from_json.py msgid "pickerel" @@ -72342,15 +71609,15 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal juggernaut" msgid_plural "fungal juggernauts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gigante fúngico" +msgstr[1] "gigantes fúngicos" #. ~ Description for {'str': 'fungal juggernaut'} #: lang/json/MONSTER_from_json.py msgid "" "Fungi bloom from the crevices in the ossified plates of this ponderous bone " -"titan, and it seems even it's eyes are lost to it. A dust of spores lands " -"on the ground with every sluggish stomp of it's heavy legs." +"titan, and it seems even its eyes are lost to it. A dust of spores lands on" +" the ground with every sluggish stomp of its heavy legs." msgstr "" #: lang/json/MONSTER_from_json.py @@ -72396,6 +71663,9 @@ msgid "" " blooming fungi. It is leaving behind a trail of tainted secretions when " "the spider struggles to drag it along the ground." msgstr "" +"El abdomen de esta gigante araña de apariencia enfermiza está cubierto de " +"muchos hongos florecientes. Va dejando un rastro de secreciones contaminadas" +" cada vez que la araña se arrastra con esfuerzo por el suelo." #: lang/json/MONSTER_from_json.py msgid "dark wyrm" @@ -72507,8 +71777,8 @@ msgstr "Es una cucaracha mutante, del tamaño de un perro pequeño." #: lang/json/MONSTER_from_json.py msgid "giant cockroach nymph" msgid_plural "giant cockroach nymphs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "cucaracha ninfa gigante" +msgstr[1] "cucarachas ninfas gigantes" #. ~ Description for {'str': 'giant cockroach nymph'} #: lang/json/MONSTER_from_json.py @@ -72949,7 +72219,7 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "" "An amalgamation of throbbing organs from various creatures have fused " -"together into this lurching, vaguely humanoid shape. It's myriad roughly " +"together into this lurching, vaguely humanoid shape. Its myriad roughly " "formed mouths sussurate in a chorus of sibilant groans and whispers." msgstr "" @@ -72964,7 +72234,7 @@ msgstr[1] "golems de carne" msgid "" "A seeping conglomeration of spasming muscle and organs have fused together " "into this towering caricature of the human form. Various organs fall off of" -" it's hulking body only to be reabsorbed moments later." +" its hulking body only to be reabsorbed moments later." msgstr "" #: lang/json/MONSTER_from_json.py @@ -73116,8 +72386,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shorthair cat" msgid_plural "shorthair cats" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "gato de pelo corto" +msgstr[1] "gatos de pelo corto" #. ~ Description for {'str': 'shorthair cat'} #: lang/json/MONSTER_from_json.py @@ -73155,6 +72425,8 @@ msgid "" "Barely more than a ball of fluff with eyes, this kitten looks like a " "longhair breed." msgstr "" +"Es poco más que una bola de pelusa con ojos, este gatito parece de una raza " +"de pelo largo." #: lang/json/MONSTER_from_json.py msgid "Maine coon cat" @@ -73672,8 +72944,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Chihuahua" msgid_plural "Chihuahuas" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Chihuahua" +msgstr[1] "Chihuahuas" #. ~ Description for {'str': 'Chihuahua'} #: lang/json/MONSTER_from_json.py @@ -73820,6 +73092,8 @@ msgid "" "An agile and sturdy breed that is welcome on any farm, the Australian cattle" " dog is adept at leaping fences and herding livestock." msgstr "" +"Es una raza resistente y ágil, bienvenida en cualquier granja. El perro " +"pastor australiano es capaz de saltar sobre cercos y pastorear ganado." #: lang/json/MONSTER_from_json.py msgid "cattle dog puppy" @@ -74200,8 +73474,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "marloss zealot" msgid_plural "marloss zealots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "fanático del marloss" +msgstr[1] "fanáticos del marloss" #. ~ Description for {'str': 'marloss zealot'} #: lang/json/MONSTER_from_json.py @@ -74831,7 +74105,7 @@ msgid "" "the back of your mind" msgstr "" -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" msgstr[0] "sombra" @@ -74926,6 +74200,12 @@ msgid "" " of its putrid whitish visage is enough to loose prehistoric terrors within " "the darkest recesses of your mind." msgstr "" +"Este es un gigante gusano baboso. Su cabeza chata y pálida chorrea una " +"mucosa aceitosa mientras atraviesa el suelo, buscando a su presa. Su boca " +"rosada se abre y se cierra, revelando largos colmillos con brillantes hilos " +"de saliva, que dejan manchas ardientes donde caen. La mera vista de su " +"pútrido rostro blancuzco es suficiente para liberar horrores prehistóricos " +"en los recovecos más oscuros de tu mente." #: lang/json/MONSTER_from_json.py msgid "vortex" @@ -75174,6 +74454,23 @@ msgid "" "was limited due to a legal dispute." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "torreta láser" +msgstr[1] "torretas láser" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from" +" solar cells embedded in its hull." +msgstr "" +"La TX-5LR Cerberus es una actualización de su predecesores. Posee un sistema" +" de cañón láser rotativo de última generación, con tres cañones que se " +"cargan con las celdas solares que están dispuestas por todo su casco." + #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" @@ -75263,7 +74560,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Lightning arcs from the root pod!" -msgstr "" +msgstr "¡Se ven rayos que salen de las raíces!" #: lang/json/MONSTER_from_json.py msgid "giant frog" @@ -75690,23 +74987,6 @@ msgstr "" " búsqueda y montaje automatizados, lo que lo hace estar constantemente " "buscando objetivos." -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "torreta láser" -msgstr[1] "torretas láser" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from" -" solar cells embedded in its hull." -msgstr "" -"La TX-5LR Cerberus es una actualización de su predecesores. Posee un sistema" -" de cañón láser rotativo de última generación, con tres cañones que se " -"cargan con las celdas solares que están dispuestas por todo su casco." - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" @@ -75756,8 +75036,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "riot control platform" msgid_plural "riot control platforms" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "plataforma antidisturbios" +msgstr[1] "plataformas antidisturbios" #. ~ Description for {'str': 'riot control platform'} #: lang/json/MONSTER_from_json.py @@ -75773,6 +75053,17 @@ msgid "" "so mobile anymore." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "eyebot" msgid_plural "eyebots" @@ -76222,6 +75513,8 @@ msgid "" "This zombie looks beefed and is dressed in the tattered remnants of a " "security uniform." msgstr "" +"Este zombi parece musculoso y está vestido con los restos destrozados de un " +"uniforme de seguridad." #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -76568,37 +75861,6 @@ msgstr "" " cubierto de quistes parece como si pudiera explotar violentamente ante la " "menor perturbación." -#: lang/json/MONSTER_from_json.py -msgid "zombie grenadier" -msgid_plural "zombie grenadiers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'zombie grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear. Its hands " -"constantly fumble at its many pouches." -msgstr "" -"Alguna vez fue un soldado, está vestido de los pies a la cabeza con equipo " -"de combate. Sus manos revuelven constantemente sus múltiples bolsillos." - -#: lang/json/MONSTER_from_json.py -msgid "zombie elite grenadier" -msgid_plural "zombie elite grenadiers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'zombie elite grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear and wearing a MOLLE" -" pack. Its hands quickly open and close its many pouches." -msgstr "" -"Alguna vez fue un soldado, está vestido de los pies a la cabeza con equipo " -"de combate y lleva una mochila MOLLE. Sus manos abren y cierran rápidamente " -"sus múltiples bolsillos." - #: lang/json/MONSTER_from_json.py msgid "crawler" msgid_plural "crawlers" @@ -76986,6 +76248,22 @@ msgstr "" "miedos más profundos de tu psiquis, e incluso el aire a su alrededor para " "más siniestro, de alguna manera más oscuro y más peligroso." +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears" +" and guts teem with unmatched fecundity, as its gaze inspires fear of " +"nothing less than cosmic, inhuman ecstasy." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" @@ -77375,8 +76653,8 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie military pilot" msgid_plural "zombie military pilots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "zombi piloto de ejército" +msgstr[1] "zombis piloto de ejército" #. ~ Description for {'str': 'zombie military pilot'} #: lang/json/MONSTER_from_json.py @@ -77555,6 +76833,50 @@ msgid "" "while maintaining visual contact for other pursuers." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder" +msgid_plural "Schwarz Walders" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Schwarz Walder'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Schwarz Walders were originally developed by a German company as forest " +"rangers for the expanded Black Forest Conservation Area. Shortly afterwards" +" it was determined that they also made excellent long range reconnaissance " +"units that could operate independently indefinitely. Pre-Cataclysm they " +"lived on every continent in a variety of jobs." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder cub" +msgid_plural "Schwarz Walder cubs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Schwarz Walder cub'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A young Schwarz Walder. If one is out here, a very protective parent is " +"likely nearby." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "infeme" +msgid_plural "infemes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'infeme'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The Infeme are uplifted from apes and other near human ancestors. The Zulu " +"word for monkey became the catch-all term for many species of uplifts " +"whether majority chimp, gorilla or baboon. They've probably formed colonies" +" hidden from the Cataclysm." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "headless zombie" msgid_plural "headless zombies" @@ -77584,6 +76906,46 @@ msgid "" " with its grotesquely-swollen hands." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Haunting Forest Walker" +msgid_plural "Haunting Forest Walkers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'Haunting Forest Walker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This towering zombie is covered in wounds and shedding fur. Once it may " +"have prevented forest fires in national parks, now it kills anything it " +"catches." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "rotting grodd" +msgid_plural "rotting grodds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'rotting grodd'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Imagine a gorilla. Now imagine it dead and rotting and somehow looking at " +"you with more hate than you had previously imagined possible." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Ghoulodon" +msgid_plural "Ghoulodons" +msgstr[0] "Ghoulodon" +msgstr[1] "Ghoulodons" + +#. ~ Description for {'str': 'Ghoulodon'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An undead Uplifted Elephant of ginormous size. It still wears its assault " +"grade armor." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Slasher Necromorph" msgid_plural "Slasher Necromorphs" @@ -77970,8 +77332,68 @@ msgstr[1] "" #. ~ Description for {'str': 'stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray cop" +msgid_plural "stray cops" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for stray cop +#: lang/json/MONSTER_from_json.py +msgid "" +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray soldier" +msgid_plural "stray soldiers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray soldier'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former soldier, no doubt deployed to assist with evacuations and drive off" +" the Order, dressed from head to toe in partially crystalized combat armor." +" Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray firefighter" +msgid_plural "stray firefighters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray firefighter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "hungry stray" +msgid_plural "hungry strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'hungry stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An obese former human, body studded with irregular crystal growths deforming" +" its body. It howls in mockery of hunger as it wanders, seeking new meals " +"to add to its bulk." msgstr "" #: lang/json/MONSTER_from_json.py @@ -78000,11 +77422,53 @@ msgstr[1] "" msgid "" "Little more than a moving mound of crystal and meat that occasionally spits " "up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures" -" skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling stray" +msgid_plural "crackling strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'crackling stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A hunched human form, back bristling with a hedge of buzzing blue crystals." +" Its veins visibly glow with some sort of unearthly substance." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "arcing stray" +msgid_plural "arcing strays" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'arcing stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than" +" capable of simply ramming its prey to deliver dangerous electric shocks." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray sprinter" +msgid_plural "stray sprinters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray sprinter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." msgstr "" #: lang/json/MONSTER_from_json.py @@ -78016,23 +77480,25 @@ msgstr[1] "" #. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with" -" tusks of polished stone and fingers tipped with crystal-fused claws." +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" +msgid "stray guardian" +msgid_plural "stray guardians" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray predator'} +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of" -" time before the very shell that protects it weighs it down to the ground." +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated" +" crystal limbs sharpened to dangerous points. It strides about the streets," +" spearing intruders to its domain like some sort of horrid spider from " +"beyond the stars." msgstr "" #: lang/json/MONSTER_from_json.py @@ -78044,38 +77510,37 @@ msgstr[1] "" #. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray titan" -msgid_plural "stray titans" +msgid "stray golem" +msgid_plural "stray golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray titan'} +#. ~ Description for {'str': 'stray golem'} #: lang/json/MONSTER_from_json.py msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its" -" own weight." +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" +msgid "stray titan" +msgid_plural "stray titans" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray husk'} +#. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to" -" alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" #: lang/json/MONSTER_from_json.py @@ -78087,53 +77552,98 @@ msgstr[1] "" #. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray creep" +msgid_plural "stray creeps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray creep'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" +msgid "stray wretch" +msgid_plural "stray wretches" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray tinder'} +#. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray creep" -msgid_plural "stray creeps" +msgid "stray stalker" +msgid_plural "stray stalkers" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray creep'} +#. ~ Description for {'str': 'stray stalker'} #: lang/json/MONSTER_from_json.py msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to" +" its 'family'." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray wretch" -msgid_plural "stray wretches" +msgid "flailing wretch" +msgid_plural "flailing wretchs" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} +#. ~ Description for {'str': 'flailing wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling wretch" +msgid_plural "crackling wretchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'crackling wretch'} #: lang/json/MONSTER_from_json.py msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet" -" at some point, but now it leaps and skitters around like something out of a" -" nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion" -" across its body." +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'stray wretchmother'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." msgstr "" #: lang/json/MONSTER_from_json.py @@ -78146,6 +77656,21 @@ msgstr[1] "" #. 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little" +" bit of organic matter it can find and drawing it to its base." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting +#. crystal masses'} +#: lang/json/MONSTER_from_json.py +msgid "" "A human-sized mound of shimmering blue-purple crystals growing on the base " "of what looks like a mound of foul smelling garbage and organic leftovers. " "Long, thin tendrils appear to grow out of the mound, and are subtly rooting " @@ -78212,7 +77737,7 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "" "A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." +"residual electric energy." msgstr "" #: lang/json/MONSTER_from_json.py @@ -78234,12 +77759,12 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" +msgid "crystal seed" +msgid_plural "crystal seeds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'crystal mite'} +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" "A tiny, multilegged creature that appears to be made of a chunk of crystal." @@ -78248,17 +77773,17 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'engorged crystal mite'} +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into" -" a proper crystal mass." +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." msgstr "" #. ~ Description for {'str': 'C-4 hack'} @@ -78305,17 +77830,15 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." msgstr "" -"Un dinosaurio bípedo del tamaño de un pavo. Sus dientes son pequeños pero " -"afilados." #: lang/json/MONSTER_from_json.py msgid "Gallimimus" msgid_plural "Gallimimus" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gallimimus" +msgstr[1] "Gallimimus" #. ~ Description for {'str_sp': 'Gallimimus'} #: lang/json/MONSTER_from_json.py @@ -78339,6 +77862,19 @@ msgid "" "reptilian ostrich with a round hard-looking domed head." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Camptosaurus" +msgid_plural "Camptosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" msgid_plural "Spinosaurus" @@ -78362,7 +77898,20 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." +msgid "" +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Albertosaurus" +msgid_plural "Albertosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Albertosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" msgstr "" #: lang/json/MONSTER_from_json.py @@ -78388,9 +77937,9 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." msgstr "" -"Un gran dinosaurio cuadrúpedo con placas en su espalda, y una cola con púas." #: lang/json/MONSTER_from_json.py msgid "Ankylosaurus" @@ -78407,6 +77956,20 @@ msgstr "" "Este dinosaurio parece como un quirquincho prehistórico gigante. Su cola " "termina en lo que parece un garrote enorme de hueso con púas." +#: lang/json/MONSTER_from_json.py +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Ceratosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Allosaurus" msgid_plural "Allosaurus" @@ -78431,11 +77994,9 @@ msgstr[1] "Eoraptors" #. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." +"A bipedal dinosaur about the size of a chicken. It darts around quickly and" +" has long arms for grabbing what it desires. It's holding something." msgstr "" -"Un dinosaurio bípedo de tamaño similar al de una gallina. Anda hurgando los " -"matorrales, buscando para comerse pequeños animales y plantas." #: lang/json/MONSTER_from_json.py msgid "Velociraptor" @@ -78467,6 +78028,19 @@ msgstr "" "Un dinosaurio bípedo de tamaño medio cubierto con plumas. En la punta de " "cada pata tiene una garra grande como una hoz." +#: lang/json/MONSTER_from_json.py +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Utahraptor" msgid_plural "Utahraptors" @@ -78518,10 +78092,10 @@ msgstr[1] "" #. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its " +"head." msgstr "" -"Un dinosaurio de tamaño medio con una bilis pegajosa y verde goteándole de " -"los dientes." #: lang/json/MONSTER_from_json.py msgid "greenish yellow hatchling" @@ -78617,14 +78191,28 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "Z-Rex" msgid_plural "Z-Rexes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Z-Rex" +msgstr[1] "Z-Rexes" #. ~ Description for {'str': 'Z-Rex', 'str_pl': 'Z-Rexes'} #: lang/json/MONSTER_from_json.py msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str_sp': 'Z-Deinonychus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "improvised SMG turret" msgid_plural "improvised SMG turrets" @@ -78794,1802 +78382,600 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "clay golem" -msgid_plural "clay golems" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for clay golem -#: lang/json/MONSTER_from_json.py -msgid "" -"A large, humanoid golem made from clay. Its proportions are off and it " -"seems fragile." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "plastic golem" -msgid_plural "plastic golems" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'plastic golem'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Traditionally, making a golem is a months-long process involving hand tools " -"and precision craftsmanship. A stone golem is as much a work of art as it " -"is a magical device. The advent of 3D printing made it easy to get into the" -" golem-making hobby, and plastic golems have soared in popularity." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stone golem" -msgid_plural "stone golems" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for stone golem -#: lang/json/MONSTER_from_json.py -msgid "" -"A large, humanoid golem made from stone. Its fists look similar to rockets." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "iron golem" -msgid_plural "iron golems" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for iron golem -#: lang/json/MONSTER_from_json.py -msgid "" -"A large, humanoid golem made from iron. Some sort of noxious gas seems to " -"be seeping from its mouth." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lizardfolk warrior" -msgid_plural "lizardfolk warriors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lizardfolk warrior -#: lang/json/MONSTER_from_json.py -msgid "" -"A tall, powerful, reptilian humanoid with a muscular tail whose skin is " -"covered in dark gray-green scales. They are tribal and tend to be found in " -"caves and near water, especially in areas inhabited by dragons and wyrms. " -"They aren't particularly hostile, though they don't care for outsiders and " -"are highly dangerous when provoked. While they usually prefer to fight with" -" their greatclubs, they are equally ferocious with their sharp teeth and " -"claws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lizardfolk hunter" -msgid_plural "lizardfolk hunters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lizardfolk hunter -#: lang/json/MONSTER_from_json.py -msgid "" -"The hunter is a smaller lizardfolk than a warrior, but equally as deadly, " -"with their lithe figures and accurate javelin throws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "The hunter hurls a barbed javelin at you!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lizardfolk shaman" -msgid_plural "lizardfolk shamans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lizardfolk shaman -#: lang/json/MONSTER_from_json.py -msgid "" -"Lizardfolk are very intelligent and cunning, but magical ability is a rare " -"quality. Shamans are chosen from the tribe during childhood, when magical " -"abilities mark the fate of the young tribesman. Not much is known about the" -" initiation ritual they must undergo, but few survive the experience. " -"Shamans are druidic spellcasters that can use the forces of nature to battle" -" enemies, as well as summoning assistance when needed." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lizardfolk chieftan" -msgid_plural "lizardfolk chieftans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lizardfolk chieftan -#: lang/json/MONSTER_from_json.py -msgid "" -"Among the lizardfolk, ambition is a rare quality. Chieftans earn their " -"place by exhibiting unusually high levels of ambition, often mistaken by " -"outsiders as excessive, brutal violence. This chief is the largest and " -"strongest member of its tribe and carries a fierce trident to compliment its" -" teeth and claws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "crocodile" -msgid_plural "crocodiles" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for crocodile -#: lang/json/MONSTER_from_json.py -msgid "" -"A once-and-future lizardfolk shaman, this large crocodile no longer has any " -"hint of any humanoid characteristics and looks very, very dangerous." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "owlbear" -msgid_plural "owlbears" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for owlbear -#: lang/json/MONSTER_from_json.py -msgid "" -"The horrible owlbear is probably the result of genetic experimentation by " -"some insane wizard. These creatures inhabit the tangled forest regions of " -"every temperate clime, as well as subterranean labyrinths. They are " -"ravenous eaters, aggressive hunters, and evil tempered at all times. They " -"attack prey on sight and will fight to the death." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "black pudding" -msgid_plural "black puddings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for black pudding -#: lang/json/MONSTER_from_json.py -msgid "" -"Writhing, sticky, black sludge undulates across the ground. A faint " -"sizzling sound comes from the ground beneath it as it lurches toward you." -msgstr "" - -#. ~ Attack message of monster "black pudding"'s spell "None" -#: lang/json/MONSTER_from_json.py -msgid "The black pudding burns %3$s with acid!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "krabgek" -msgid_plural "krabgeks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for krabgek -#: lang/json/MONSTER_from_json.py -msgid "" -"A large baleful eye peers out from the darkness, its gleam hinting at a " -"weird intelligence and unnerving malevolence. The eye oozes some pinkish " -"liquid, and the weirdly humanoid figure is covered in sharp blue-black " -"triangular plates." -msgstr "" - -#. ~ Attack message of monster "krabgek"'s spell "None" -#: lang/json/MONSTER_from_json.py -msgid "The krabgek gazes at %3$s!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "owlbear cub" -msgid_plural "owlbear cubs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py -msgid "bulette" -msgid_plural "bulettes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for bulette -#: lang/json/MONSTER_from_json.py -msgid "" -"The bulette (or landshark) was the result of a mad wizard's experimental " -"cross breeding of a snapping turtle and armadillo with infusions of demons' " -"ichor. They range temperate climates feeding on horses, men, and most other" -" flesh. The stupid bulette is irascible and always hungry, and they fear " -"nothing." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "will-o-wisp" -msgid_plural "will-o-wisps" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for will-o-wisp -#: lang/json/MONSTER_from_json.py -msgid "" -"Will-o’-wisps can be yellow, white, green, or blue. They are easily " -"mistaken for lanterns, especially in the foggy marshes and swamps where they" -" reside." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "troll" -msgid_plural "trolls" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for troll -#: lang/json/MONSTER_from_json.py -msgid "" -"Monstrous, green-skinned humanoid. Trolls are renowned for their thick " -"hides and natural regenerative ability." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stirge" -msgid_plural "stirges" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for stirge -#: lang/json/MONSTER_from_json.py -msgid "" -"This horrid flying creature looks like a cross between a large bat and " -"oversized mosquito." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "shrieker" -msgid_plural "shriekers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for shrieker -#: lang/json/MONSTER_from_json.py -msgid "" -"A shrieker is a human-sized mushroom that emits a piercing screech to drive " -"off creatures that disturb it." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lemure" -msgid_plural "lemures" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lemure -#: lang/json/MONSTER_from_json.py -msgid "" -"A lemure resembles a molten mass of flesh with a vaguely humanoid head and " -"torso." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "automated turret" -msgid_plural "automated turrets" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed defense turret" -msgid_plural "disarmed defense turrets" -msgstr[0] "torreta defensiva desarmada" -msgstr[1] "torretas defensivas desarmadas" - -#. ~ Description for disarmed defense turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-series turret, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. It requires an integrated firearm module to " -"work." -msgstr "" -"La torreta de la serie TX de General Atomics es una pequeña torreta " -"automatizada con forma de pastilla. Utiliza sistemas ATR de última " -"generación para reorientarse dinámicamente hacia sus nuevos amigos y " -"enemigos por igual. Necesita un módulo integrado de arma para funcionar." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed military turret" -msgid_plural "disarmed military turrets" -msgstr[0] "torreta militar desarmada" -msgstr[1] "torretas militares desarmadas" - -#. ~ Description for disarmed military turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX series turret, a military-grade automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. It requires a integrated gun module to operate." -msgstr "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed advanced turret" -msgid_plural "disarmed advanced turrets" -msgstr[0] "torreta mejorada desarmada" -msgstr[1] "torretas mejoradas desarmadas" - -#. ~ Description for disarmed advanced turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-series turret, an advanced automated gun turret using state" -" of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. It requires an integrated gun module to function." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "9mm turret" -msgid_plural "9mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 9mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-1 Guardian, a small, pill-shaped automated gun turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " -"full 360 degrees." -msgstr "" -"La General Atomics TX-1 Guardian es una pequeña torreta automatizada con " -"forma de pastilla. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"subfusil 9mm integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "shotgun turret" -msgid_plural "shotgun turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for shotgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-4 Protector, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 12ga shotgun can swivel a " -"full 360 degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "riot control turret" -msgid_plural "riot control turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1a Warden, a small, pill-shaped automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 40mm teargas launcher can swivel " -"a full 360 degrees." -msgstr "" -"La General Atomics TZ-1a Warden es una pequeña torreta automatizada con " -"forma de pastilla. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"lanzador de gas lacrimógeno de 40mm integrado puede rotar 360 grados." - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1b Pacifier, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 40mm beanbag launcher can " -"swivel a full 360 degrees." -msgstr "" -"La General Atomics TZ-1b Pacifier es una pequeña torreta automatizada con " -"forma de pastilla. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"lanzador de perdigones de goma de 40mm integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "5.56mm turret" -msgid_plural "5.56mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 5.56mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32L Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " -"360 degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "7.62mm turret" -msgid_plural "7.62mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 7.62mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32H Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " -"360 degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "50cal turret" -msgid_plural "50cal turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 50cal turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-13 Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 50 caliber machinegun can " -"swivel a full 360 degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "8x40mm turret" -msgid_plural "8x40mm turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 8x40mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-01A Warden, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " -"full 360 degrees." -msgstr "" -"La torreta TX-01A Warden de Leadworks LLC es una torreta militar " -"automatizada. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su rifle 8x40mm " -"integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "needle turret" -msgid_plural "needle turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for needle turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TN-7 Sentry, a military-grade automated flechette turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 5mm flechette gun can swivel a " -"full 360 degrees." -msgstr "" -"La torreta TN-7 Sentry de Leadworks LLC es una torreta militar automatizada " -"de dardos perforantes. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"arma de dardos perforantes integrada puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "40mm grenade turret" -msgid_plural "40mm grenade turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 40mm grenade turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TG-7 Sentry, a military-grade automated gun turret using" -" state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated 40mm grenade launcher can swivel a full " -"360 degrees." -msgstr "" -"La torreta TG-7 Sentry de Leadworks LLC es una torreta militar automatizada." -" Utiliza sistemas ATR de última generación para reorientarse dinámicamente " -"hacia sus nuevos amigos y enemigos por igual. Su lanzagranadas 40mm " -"integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "flame turret" -msgid_plural "flame turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for flame turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TF-7 Sentry, a military-grade automated flame turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated flamethrower can swivel a full " -"360 degrees." -msgstr "" -"La torreta TF-7 Sentry de Leadworks LLC es una torreta militar automatizada " -"lanzallamas. Utiliza sistemas ATR de última generación para reorientarse " -"dinámicamente hacia sus nuevos amigos y enemigos por igual. Su lanzallamas " -"integrado puede rotar 360 grados." - -#. ~ Description for laser turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-L3 Scintillator, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated laser emitter can swivel a full 360 " -"degrees." -msgstr "" -"La torreta T-L3 Scintillator de DoubleTech es una torreta avanzada " -"automatizada láser. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"emisor láser integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "acid turret" -msgid_plural "acid turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for acid turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-A3 Disintegrator, an advanced automated acid turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated acid thrower can swivel a full 360 " -"degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "plasma turret" -msgid_plural "plasma turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for plasma turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-P3 Scathefire, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated plasma ejector can swivel a full 360 " -"degrees." -msgstr "" -"La torreta T-P3 Scathefire de DoubleTech es una torreta avanzada " -"automatizada láser. Utiliza sistemas ATR de última generación para " -"reorientarse dinámicamente hacia sus nuevos amigos y enemigos por igual. Su " -"eyector de plasma integrado puede rotar 360 grados." - -#: lang/json/MONSTER_from_json.py -msgid "railgun turret" -msgid_plural "railgun turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for railgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-R3 Arbalest, an advanced automated railgun turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated railgun can swivel a full 360 degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "advanced electro turret" -msgid_plural "advanced electro turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for advanced electro turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-E3 Thunderstroke, an advanced automated electro turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated electro caster can swivel a full " -"360 degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "EMP turret" -msgid_plural "EMP turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for EMP turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-EMP3 Corona, an advanced automated EMP turret using state " -"of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. Its electro magnetic pulse generator can swivel a full 360 " -"degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "guardin gnome" -msgid_plural "guardin gnomes" -msgstr[0] "" -msgstr[1] "" - -#. ~ 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 "Un enano de jardín normal y completamente no peligroso." - -#: lang/json/MONSTER_from_json.py -msgid "utility robot" -msgid_plural "utility robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for utility robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of utility robot formerly in use by government " -"agencies, private corporations, and civilians alike." -msgstr "" -"Es uno de los varios modelos de robos utilitarios que eran utilizados por " -"las agencias gubernamentales, corporaciones privadas y también por los " -"civiles." - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and trespassers." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "defense robot" -msgid_plural "defense robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for defense robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is armed with an electric prod and an integrated 9mm firearm." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "security robot" -msgid_plural "security robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an integrated 9mm firearm." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "riotcontrol robot" -msgid_plural "riotcontrol robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for riotcontrol robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod, tear gas sprayer, and integrated" -" 40mm beanbag launcher." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "necco" -msgid_plural "neccos" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'necco'} -#: lang/json/MONSTER_from_json.py -msgid "A giant necco wafer happily jaunting around." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow kid" -msgid_plural "marshmallow kids" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow kid'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A small humanoid made of marsmallow. It bumbles around on its stubby " -"cushioned legs. How cute!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow guy" -msgid_plural "marshmallow guys" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow guy'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A marshmallow humanoid with a smile drawn on its face. It bumbles around, " -"hollow eyes scanning its surrounding seemingly looking for something." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow buff" -msgid_plural "marshmallow buffs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow buff'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A muscular body made of marshmallow, proudly striding towards an unknown " -"goal. Yummy!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow goliath" -msgid_plural "marshmallow goliaths" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow goliath'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A gigantic marshmallow humanoid softly stompind around, frozen smile and big" -" empty eyes carefully scanning its surroundings." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow squire" -msgid_plural "marshmallow squires" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow squire'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A small humanoid made of marsmallow. It wears a plate armor made of " -"chocolate coated crakers and bumbles around on its stubby cushioned legs. " -"How cute!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow knight" -msgid_plural "marshmallow knights" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow knight'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A marshmallow humanoid in full chocolate coated crakers knight armor. It " -"bumbles around, hollow eyes scanning its surrounding seemingly looking for " -"something." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow champion" -msgid_plural "marshmallow champions" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow champion'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Standing tall in its shining armor of chocolate coated crakers this " -"marshmallow is proudly striding towards an unknown goal." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "marshmallow war lord" -msgid_plural "marshmallow war lords" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'marshmallow war lord'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A gigantic humanoid armored with thick plates of chocolate coated crakers. " -"A frozen smile half visible under its heavy helmet it carefully scans its " -"surroundings." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "gummy cub" -msgid_plural "gummy cubs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gummy cub'} -#: lang/json/MONSTER_from_json.py -msgid "A juvenile gummy bear. A cute bear cub made of sugary gum." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "gummy bear" -msgid_plural "gummy bears" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gummy bear'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A big bear made of fruit flavored gelatine, its smooth round shape and its " -"fruity smell make it somehow less scary than its fleshy counterpart." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "cracker kid" -msgid_plural "cracker kids" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'cracker kid'} -#: lang/json/MONSTER_from_json.py -msgid "A small cracker kid running around on its cracker legs." -msgstr "" - -#. ~ Description for {'str': 'cracker'} -#: lang/json/MONSTER_from_json.py -msgid "A full grown cracker running around on its cracker legs." -msgstr "" - -#. ~ Description for {'str': 'cookie'} -#: lang/json/MONSTER_from_json.py -msgid "A small cookie, scuriying around in search for crumbs." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "gum spider" -msgid_plural "gum spiders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gum spider'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A giant piece of gum streched in the shape of a spider. It stands very " -"still in its gum web." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "caffeinated gum spider" -msgid_plural "caffeinated gum spiders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'caffeinated gum spider'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A giant piece of gum streched in the shape of a spider. It moves quickly " -"and aggressively as if under the effect of some stimulant." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "W11B10" -msgid_plural "W11B10s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W11B10 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11B) Infantry 10 Level. Part of Wraitheon's series of one-to-one" -" auxiliaries designed to seamlessly integrate with more traditional forces." -msgstr "" -"Wraitheon (11B) Infantería Nivel 10. Parte de la serie de Wraitheon de " -"auxiliares uno a uno diseñados para integrarse con fuerzas más " -"tradicionales." - -#: lang/json/MONSTER_from_json.py -msgid "W11B10B4" -msgid_plural "W11B10B4s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W11B10B4 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11B) Infantry 20 Level (B4) Sniper. Part of Wraitheon's series " -"of one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces. " -msgstr "" -"Wraitheon (11B) Infantería Nivel 20 (B4) Francotirador. Parte de la serie de" -" Wraitheon de auxiliares uno a uno diseñados para integrarse con fuerzas más" -" tradicionales." - -#: lang/json/MONSTER_from_json.py -msgid "W12B10" -msgid_plural "W12B10s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W12B10 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (12B) Combat Engineer 10 Level. Part of Wraitheon's series of " -"one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "W11H10" -msgid_plural "W11H10s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W11H10 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11H) Anti-Tank Infantry 10 Level. Part of Wraitheon's series of " -"one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" -"Wraitheon (11H) Infantería Anti-Tanque Nivel 10. Parte de la serie de " -"Wraitheon de auxiliares uno a uno diseñados para integrarse con fuerzas más " -"tradicionales." - -#: lang/json/MONSTER_from_json.py -msgid "W12N10" -msgid_plural "W12N10s" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for W12N10 -#: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (12N) Construction Engineer 10 Level. Part of Wraitheon's series " -"of one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "craftbuddy" -msgid_plural "craftbuddies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'craftbuddy', 'str_pl': 'craftbuddies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A mobile crafting station used by workers in mines, on oil rigs, and in " -"other remote locales. In it's active state, the craftbuddy merely follows " -"its user. In it's deactivated state, the craft buddy is useable as a " -"toolbench and multipurpose workstation." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "automated armor" -msgid_plural "automated armors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for automated armor -#: lang/json/MONSTER_from_json.py -msgid "" -"A suit of power armor temporarily controlled by an attached AI-core. " -"Originally intended as a way to retrieve dead or wounded operators from " -"combat, it was more commonly used for transporting the suit itself. The AI " -"is limited, and makes a poor combatant." -msgstr "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "light auto armor" -msgid_plural "light auto armors" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py -msgid "auto armor" -msgid_plural "auto armors" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "heavy auto armor" -msgid_plural "heavy auto armors" -msgstr[0] "armadura pesada automática" -msgstr[1] "armaduras pesadas automáticas" - -#: lang/json/MONSTER_from_json.py -msgid "floating lantern" -msgid_plural "floating lanterns" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating lantern -#: lang/json/MONSTER_from_json.py -msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "distract-o-hack" -msgid_plural "distract-o-hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for distract-o-hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed into a makeshift diversion tactic. Once " -"activated it will light up, produce sound, emit sparks, and move towards " -"hostile targets. Although fragile, the distract-o-hack's erratic movements " -"make it difficult to hit." -msgstr "" -"Es un drone reconvertido para cumplir funciones distractivas. Una vez que " -"está activado prenderá luces, producirá un sonido, emitirá chispas y se " -"moverá hacia el enemigo. Aunque es frágil, el movimiento errático del " -"distract-o-hack lo hace difícil de golpear." - -#: lang/json/MONSTER_from_json.py -msgid "arsonhack" -msgid_plural "arsonhacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for arsonhack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread flame and cause property damage. It's" -" almost as dangerous to its user as it is to the surroundings. The " -"arsonhack cannot be recovered once activated. Only a reckless madman would " -"dare to build this." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "spore hack" -msgid_plural "spore hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for spore hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread alien contaminants. It periodically " -"releases a puff of fungal spores. Who in their right mind would build such " -"a thing?" -msgstr "" -"Es un drone reconvertido para esparcir contaminantes alienígenas. Libera " -"periódicamente una nube de esporas fúngicas. ¿Quién en su sano juicio " -"querría construir esto?" - -#: lang/json/MONSTER_from_json.py -msgid "watercannon turret" -msgid_plural "watercannon turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for watercannon turret -#: lang/json/MONSTER_from_json.py -msgid "" -"A turret equipped with a jury-rigged watercannon in place of a proper " -"firearm. It's highly ineffective but the ammo is cheap." -msgstr "" -"Es una torreta equipada con un cañón de agua medio atado con alambre, en " -"lugar de un arma de en serio. Es bastante inefectiva pero tiene munición " -"barata." - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and tresspassers." -msgstr "" -"Es un pequeño robot aéreo equipado con un conjunto de cámaras y armado con " -"un flash destellante. Ya no forma parte de ninguna seguridad ni de la " -"policía, pero continúa cazando criminales e intrusos." - -#: lang/json/MONSTER_from_json.py -msgid "floating heater" -msgid_plural "floating heaters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating heater -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "floating furnace" -msgid_plural "floating furnaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for floating furnace -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. Warning! " -"Can result in rapid heatstroke!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "burning eye" -msgid_plural "burning eyes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for burning eye -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon. The lack of recoil allows " -"the hovering robot to aim and fire without penalty. It has decent range and" -" damage, but requires an extended recharge time between shots." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "hazmat bot" -msgid_plural "hazmat bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for hazmat bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A utility robot designed for cleaning up waste material in hazardous " -"conditions." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "butler-bot" -msgid_plural "butler-bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for butler-bot -#: lang/json/MONSTER_from_json.py -msgid "A luxury model utility robot for domestic use." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "construction robot" -msgid_plural "construction robots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for construction robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of construction robot formerly in use by government " -"agencies and private corporations. It is equipped with an integrated " -"welder, flashlight, nailgun, and jackhammer." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "firefighter robot" -msgid_plural "firefighter robots" +msgid "goblin warrior" +msgid_plural "goblin warriors" msgstr[0] "" msgstr[1] "" -#. ~ Description for firefighter robot +#. ~ Description for {'str': 'goblin warrior'} #: lang/json/MONSTER_from_json.py msgid "" -"One of the many models of fire-fighting robot formerly in use by local fire " -"departments and emergency services. Designed for entering burning buildings" -" and other situations deemed too dangerous for human firefighters." +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "blob breeder" -msgid_plural "blob breeders" +msgid "goblin slinger" +msgid_plural "goblin slingers" msgstr[0] "" msgstr[1] "" -#. ~ Description for blob breeder +#. ~ Description for {'str': 'goblin slinger'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of living blobs. Why on Earth" -" would you build this?" +"An ugly creature that slings rocks almost as well as it slings insults." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "slime breeder" -msgid_plural "slime breeders" +msgid "goblin chieftain" +msgid_plural "goblin chieftains" msgstr[0] "" msgstr[1] "" -#. ~ Description for slime breeder +#. ~ Description for {'str': 'goblin chieftain'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of friendly blobs." +"An ugly creature that was promoted to chieftain because it figured out which" +" end of the weapon is pointy." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "digestron" -msgid_plural "digestrons" +msgid "clay golem" +msgid_plural "clay golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for digestron +#. ~ Description for clay golem #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. A useful helper for keeping your front lawn clean of debris…" -" or corpses." +"A large, humanoid golem made from clay. Its proportions are off and it " +"seems fragile." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "bee bot" -msgid_plural "bee bots" +msgid "plastic golem" +msgid_plural "plastic golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for bee bot +#. ~ Description for {'str': 'plastic golem'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers honey combs. It protects the insect " -"colony with a mechanical crossbow mounted to its chassis." +"Traditionally, making a golem is a months-long process involving hand tools " +"and precision craftsmanship. A stone golem is as much a work of art as it " +"is a magical device. The advent of 3D printing made it easy to get into the" +" golem-making hobby, and plastic golems have soared in popularity." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "medical robot" -msgid_plural "medical robots" +msgid "stone golem" +msgid_plural "stone golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for medical robot +#. ~ Description for stone golem #: lang/json/MONSTER_from_json.py msgid "" -"A free roaming medical robot capable of administering powerful anesthetics " -"and performing complex surgical operations, usually in that order. Faulty " -"bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." +"A large, humanoid golem made from stone. Its fists look similar to rockets." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "assassination robot" -msgid_plural "assassination robots" +msgid "iron golem" +msgid_plural "iron golems" msgstr[0] "" msgstr[1] "" -#. ~ Description for assassination robot +#. ~ Description for iron golem #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged medical robot repurposed into a murder machine. Its surgical " -"tools have been replaced with a fearsome set of blades, and its hypodermic " -"needle now delivers powerful toxins." +"A large, humanoid golem made from iron. Some sort of noxious gas seems to " +"be seeping from its mouth." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "elixirator" -msgid_plural "elixirators" +msgid "lizardfolk warrior" +msgid_plural "lizardfolk warriors" msgstr[0] "" msgstr[1] "" -#. ~ Description for elixirator +#. ~ Description for lizardfolk warrior #: lang/json/MONSTER_from_json.py msgid "" -"This doesn't work yet. Don't build it… A salvaged medibot with its internal" -" pharma-fabricators repurposed to produce mutagen." +"A tall, powerful, reptilian humanoid with a muscular tail whose skin is " +"covered in dark gray-green scales. They are tribal and tend to be found in " +"caves and near water, especially in areas inhabited by dragons and wyrms. " +"They aren't particularly hostile, though they don't care for outsiders and " +"are highly dangerous when provoked. While they usually prefer to fight with" +" their greatclubs, they are equally ferocious with their sharp teeth and " +"claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "party bot" -msgid_plural "party bots" +msgid "lizardfolk hunter" +msgid_plural "lizardfolk hunters" msgstr[0] "" msgstr[1] "" -#. ~ Description for party bot +#. ~ Description for lizardfolk hunter #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Why on Earth would you build this crazy " -"thing?" +"The hunter is a smaller lizardfolk than a warrior, but equally as deadly, " +"with their lithe figures and accurate javelin throws." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "The hunter hurls a barbed javelin at you!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "rat snatcher" -msgid_plural "rat snatchers" +msgid "lizardfolk shaman" +msgid_plural "lizardfolk shamans" msgstr[0] "" msgstr[1] "" -#. ~ Description for rat snatcher +#. ~ Description for lizardfolk shaman #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot repurposed for hunting small game. It's faster than " -"the original model but far less sturdy." +"Lizardfolk are very intelligent and cunning, but magical ability is a rare " +"quality. Shamans are chosen from the tribe during childhood, when magical " +"abilities mark the fate of the young tribesman. Not much is known about the" +" initiation ritual they must undergo, but few survive the experience. " +"Shamans are druidic spellcasters that can use the forces of nature to battle" +" enemies, as well as summoning assistance when needed." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "grab-bot" -msgid_plural "grab-bots" +msgid "lizardfolk chieftan" +msgid_plural "lizardfolk chieftans" msgstr[0] "" msgstr[1] "" -#. ~ Description for grab-bot +#. ~ Description for lizardfolk chieftan #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " -"meant to work in a pack." +"Among the lizardfolk, ambition is a rare quality. Chieftans earn their " +"place by exhibiting unusually high levels of ambition, often mistaken by " +"outsiders as excessive, brutal violence. This chief is the largest and " +"strongest member of its tribe and carries a fierce trident to compliment its" +" teeth and claws." msgstr "" -"Es un arañabot reconvertido para agarrar e inmovilizar a los enemigos. Está " -"pensado para trabajar en manada." #: lang/json/MONSTER_from_json.py -msgid "pest hunter" -msgid_plural "pest hunters" +msgid "crocodile" +msgid_plural "crocodiles" msgstr[0] "" msgstr[1] "" -#. ~ Description for pest hunter +#. ~ Description for crocodile #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's " -"small size precludes rapid fire, due to recoil, and requires the use of " -"lightweight caseless ammo." +"A once-and-future lizardfolk shaman, this large crocodile no longer has any " +"hint of any humanoid characteristics and looks very, very dangerous." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "insane cyborg" -msgid_plural "insane cyborgs" +msgid "owlbear" +msgid_plural "owlbears" msgstr[0] "" msgstr[1] "" -#. ~ Description for insane cyborg +#. ~ Description for owlbear #: lang/json/MONSTER_from_json.py msgid "" -"A robot body with the head of a human. All kinds of electronic wires and " -"devices are implanted in its head. This cyborg moves erratically and has a " -"confused and deranged look in its eyes." +"The horrible owlbear is probably the result of genetic experimentation by " +"some insane wizard. These creatures inhabit the tangled forest regions of " +"every temperate clime, as well as subterranean labyrinths. They are " +"ravenous eaters, aggressive hunters, and evil tempered at all times. They " +"attack prey on sight and will fight to the death." msgstr "" -"Un cuerpo robótico con la cabeza de un humano. Todo tipo de cables y " -"dispositivos electrónicos están implantados en su cabeza. Este cyborg se " -"mueve erráticamente y tiene una mirada confundida y furiosa." #: lang/json/MONSTER_from_json.py -msgid "necrotic cyborg" -msgid_plural "necrotic cyborgs" +msgid "black pudding" +msgid_plural "black puddings" msgstr[0] "" msgstr[1] "" -#. ~ Description for necrotic cyborg +#. ~ Description for black pudding #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Why on Earth " -"would anyone build such an abomination?" +"Writhing, sticky, black sludge undulates across the ground. A faint " +"sizzling sound comes from the ground beneath it as it lurches toward you." msgstr "" -"Es un androide reconvertido con la cabeza de un zombi nigromante. La cabeza " -"retiene algo de su habilidad para revivir zombis. ¿Por qué carajo alguien " -"querría construir semejante abominación?" -#. ~ Description for security robot +#. ~ Attack message of monster "black pudding"'s spell "None" #: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod and an integrated shotgun." +msgid "The black pudding burns %3$s with acid!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "military robot" -msgid_plural "military robots" +msgid "krabgek" +msgid_plural "krabgeks" msgstr[0] "" msgstr[1] "" -#. ~ Description for military robot +#. ~ Description for krabgek #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5.56mm firearm." +"A large baleful eye peers out from the darkness, its gleam hinting at a " +"weird intelligence and unnerving malevolence. The eye oozes some pinkish " +"liquid, and the weirdly humanoid figure is covered in sharp blue-black " +"triangular plates." msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma 5.56mm integrada." -#. ~ Description for military robot +#. ~ Attack message of monster "krabgek"'s spell "None" #: lang/json/MONSTER_from_json.py -msgid "" -"A military training robot still operating due to its internal power core. " -"This one is armed with a high power paintball gun and a foam baton." +msgid "The krabgek gazes at %3$s!" msgstr "" -#. ~ Description for military robot #: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 7.62mm firearm." -msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma 7.62mm integrada." +msgid "owlbear cub" +msgid_plural "owlbear cubs" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for military robot #: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 50 caliber firearm." -msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma calibre 50 integrada." +msgid "bulette" +msgid_plural "bulettes" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for military robot +#. ~ Description for bulette #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 8mm firearm." +"The bulette (or landshark) was the result of a mad wizard's experimental " +"cross breeding of a snapping turtle and armadillo with infusions of demons' " +"ichor. They range temperate climates feeding on horses, men, and most other" +" flesh. The stupid bulette is irascible and always hungry, and they fear " +"nothing." msgstr "" -#. ~ Description for military robot +#: lang/json/MONSTER_from_json.py +msgid "will-o-wisp" +msgid_plural "will-o-wisps" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for will-o-wisp #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5x50mm flechette gun." +"Will-o’-wisps can be yellow, white, green, or blue. They are easily " +"mistaken for lanterns, especially in the foggy marshes and swamps where they" +" reside." msgstr "" -"Es un robot militar todavía activo debido a su fuente interna de energía. " -"Este está armado con una picana eléctrica y un arma 5.50mm de dardos " -"perforantes integrada." #: lang/json/MONSTER_from_json.py -msgid "grenadier robot" -msgid_plural "grenadier robots" +msgid "troll" +msgid_plural "trolls" msgstr[0] "" msgstr[1] "" -#. ~ Description for grenadier robot +#. ~ Description for troll #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 40mm grenade launcher." +"Monstrous, green-skinned humanoid. Trolls are renowned for their thick " +"hides and natural regenerative ability." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "military flame robot" -msgid_plural "military flame robots" +msgid "stirge" +msgid_plural "stirges" msgstr[0] "" msgstr[1] "" -#. ~ Description for military flame robot +#. ~ Description for stirge #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated flamethrower." +"This horrid flying creature looks like a cross between a large bat and " +"oversized mosquito." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "advanced robot" -msgid_plural "advanced robots" +msgid "shrieker" +msgid_plural "shriekers" msgstr[0] "" msgstr[1] "" -#. ~ Description for advanced robot +#. ~ Description for shrieker #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is armed with a powerful laser-emitter." +"A shrieker is a human-sized mushroom that emits a piercing screech to drive " +"off creatures that disturb it." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "laser-emitting robot" -msgid_plural "laser-emitting robots" +msgid "lemure" +msgid_plural "lemures" msgstr[0] "" msgstr[1] "" -#. ~ Description for laser-emitting robot +#. ~ Description for lemure #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful laser-emitter." +"A lemure resembles a molten mass of flesh with a vaguely humanoid head and " +"torso." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "plasma-ejecting robot" -msgid_plural "plasma-ejecting robots" +msgid "necco" +msgid_plural "neccos" msgstr[0] "" msgstr[1] "" -#. ~ Description for plasma-ejecting robot +#. ~ Description for {'str': 'necco'} #: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful plasma-ejector." +msgid "A giant necco wafer happily jaunting around." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "railgun robot" -msgid_plural "railgun robots" +msgid "marshmallow kid" +msgid_plural "marshmallow kids" msgstr[0] "" msgstr[1] "" -#. ~ Description for railgun robot +#. ~ Description for {'str': 'marshmallow kid'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful railgun." +"A small humanoid made of marsmallow. It bumbles around on its stubby " +"cushioned legs. How cute!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "electro-casting robot" -msgid_plural "electro-casting robots" +msgid "marshmallow guy" +msgid_plural "marshmallow guys" msgstr[0] "" msgstr[1] "" -#. ~ Description for electro-casting robot +#. ~ Description for {'str': 'marshmallow guy'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful electro-caster." +"A marshmallow humanoid with a smile drawn on its face. It bumbles around, " +"hollow eyes scanning its surrounding seemingly looking for something." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "EMP-projecting robot" -msgid_plural "EMP-projecting robots" +msgid "marshmallow buff" +msgid_plural "marshmallow buffs" msgstr[0] "" msgstr[1] "" -#. ~ Description for EMP-projecting robot +#. ~ Description for {'str': 'marshmallow buff'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful EMP-projector." +"A muscular body made of marshmallow, proudly striding towards an unknown " +"goal. Yummy!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "junkyard cowboy" -msgid_plural "junkyard cowboys" +msgid "marshmallow goliath" +msgid_plural "marshmallow goliaths" msgstr[0] "" msgstr[1] "" -#. ~ Description for junkyard cowboy +#. ~ Description for {'str': 'marshmallow goliath'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Due to bootleg targeting software, it can only attack nearby targets." +"A gigantic marshmallow humanoid softly stompind around, frozen smile and big" +" empty eyes carefully scanning its surroundings." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "shortcircuit samurai" -msgid_plural "shortcircuit samurais" +msgid "marshmallow squire" +msgid_plural "marshmallow squires" msgstr[0] "" msgstr[1] "" -#. ~ Description for shortcircuit samurai +#. ~ Description for {'str': 'marshmallow squire'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with two electrified blades. The over-" -"taxed power systems result in somewhat sluggish movement and occasional " -"discharges. Keep a safe distance!" +"A small humanoid made of marsmallow. It wears a plate armor made of " +"chocolate coated crakers and bumbles around on its stubby cushioned legs. " +"How cute!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "slapdash paladin" -msgid_plural "slapdash paladins" +msgid "marshmallow knight" +msgid_plural "marshmallow knights" msgstr[0] "" msgstr[1] "" -#. ~ Description for slapdash paladin +#. ~ Description for {'str': 'marshmallow knight'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. The burning fuel reserves make the robot noisy and " -"smokey." +"A marshmallow humanoid in full chocolate coated crakers knight armor. It " +"bumbles around, hollow eyes scanning its surrounding seemingly looking for " +"something." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robo-guardian" -msgid_plural "robo-guardians" +msgid "marshmallow champion" +msgid_plural "marshmallow champions" msgstr[0] "" msgstr[1] "" -#. ~ Description for robo-guardian +#. ~ Description for {'str': 'marshmallow champion'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Multiple weapons provide a high rate of fire, but jury-rigged sensors limit " -"the effective range and accuracy. It makes for a good close range " -"bodyguard." +"Standing tall in its shining armor of chocolate coated crakers this " +"marshmallow is proudly striding towards an unknown goal." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robote deluxe" -msgid_plural "robote deluxe" +msgid "marshmallow war lord" +msgid_plural "marshmallow war lords" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str_sp': 'robote deluxe'} +#. ~ Description for {'str': 'marshmallow war lord'} #: lang/json/MONSTER_from_json.py msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style." +"A gigantic humanoid armored with thick plates of chocolate coated crakers. " +"A frozen smile half visible under its heavy helmet it carefully scans its " +"surroundings." msgstr "" -"Es un robot con placas de oro y decorado con diamantes, armado con un par de" -" armas 9mm integradas. Es un robot opulento de lujo, adecuado para aquellos " -"que desean sobrevivir al apocalipsis sin perder el estilo." #: lang/json/MONSTER_from_json.py -msgid "robo-protector" -msgid_plural "robo-protectors" +msgid "gummy cub" +msgid_plural "gummy cubs" msgstr[0] "" msgstr[1] "" -#. ~ Description for robo-protector +#. ~ Description for {'str': 'gummy cub'} #: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. The " -"modified firearm is only capable of three round bursts, but range and " -"accuracy are decent. It makes for a solid combat ally." +msgid "A juvenile gummy bear. A cute bear cub made of sugary gum." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robo-defender" -msgid_plural "robo-defenders" +msgid "gummy bear" +msgid_plural "gummy bears" msgstr[0] "" msgstr[1] "" -#. ~ Description for robo-defender +#. ~ Description for {'str': 'gummy bear'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Improved" -" optics provide nightvision and excellent range, but glitchy targeting " -"software requires an extended pause between shots. It makes for a good long" -" range sniper." +"A big bear made of fruit flavored gelatine, its smooth round shape and its " +"fruity smell make it somehow less scary than its fleshy counterpart." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "glittering lady" -msgid_plural "glittering ladies" +msgid "cracker kid" +msgid_plural "cracker kids" msgstr[0] "" msgstr[1] "" -#. ~ Description for {'str': 'glittering lady', 'str_pl': 'glittering ladies'} +#. ~ Description for {'str': 'cracker kid'} #: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It has two integral lasers and emits a steady pulse of blinding flashes. " -"Due to mismatched focusing lenses, the lasers have limited range." +msgid "A small cracker kid running around on its cracker legs." msgstr "" +#. ~ Description for {'str': 'cracker'} #: lang/json/MONSTER_from_json.py -msgid "bitter spinster" -msgid_plural "bitter spinsters" -msgstr[0] "" -msgstr[1] "" +msgid "A full grown cracker running around on its cracker legs." +msgstr "" -#. ~ Description for bitter spinster +#. ~ Description for {'str': 'cookie'} #: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " -"pipes weaken the robot structurally, making it somewhat fragile." +msgid "A small cookie, scuriying around in search for crumbs." msgstr "" -"Es un robot militar transformado en un monstruo cáustico. Un fermentador " -"interno de ácido alimenta un escupidor y rociador. La cantidad de tanques y " -"caños debilitan la estructura del robot, haciéndolo bastante frágil." -#. ~ Description for chicken walker +#: lang/json/MONSTER_from_json.py +msgid "gum spider" +msgid_plural "gum spiders" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'gum spider'} #: lang/json/MONSTER_from_json.py msgid "" -"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a " -"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade " -"launcher, 5.56 anti-personnel gun, and the ability to electrify itself " -"against attackers, it is an effective automated sentry, though production " -"was limited due to a legal dispute." +"A giant piece of gum streched in the shape of a spider. It stands very " +"still in its gum web." msgstr "" -"El Northrup ATSV, un robot enorme, fuertemente armado y blindado que camina " -"en un par de piernas con las articulaciones al revés. Armado con un " -"lanzagranadas 40mm anti-vehículo , un arma 5.56 anti-personal, y la " -"habilidad de electrificarse para defenderse de los atacantes. Es un guardia " -"automatizado eficaz, aunque su producción fue limitada debido a una disputa " -"legal." #: lang/json/MONSTER_from_json.py -msgid "chainsaw horror" -msgid_plural "chainsaw horrors" +msgid "caffeinated gum spider" +msgid_plural "caffeinated gum spiders" msgstr[0] "" msgstr[1] "" -#. ~ Description for chainsaw horror +#. ~ Description for {'str': 'caffeinated gum spider'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"whirring chainsaws. A speaker system has been installed to blast terrifying" -" shrieks of distorted music. No one in their right mind would craft such an" -" awful creature." +"A giant piece of gum streched in the shape of a spider. It moves quickly " +"and aggressively as if under the effect of some stimulant." msgstr "" -"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " -"calaveras y púas. En lugar de sus armas de largo alcance, tiene un conjunto " -"de motosierras zumbantes. Tiene instalado un sistema de altavoces para " -"emitir unos terroríficos chillidos de música distorsionada. Nadie en su sano" -" juicio fabricaría semejante criatura." #: lang/json/MONSTER_from_json.py -msgid "screeching terror" -msgid_plural "screeching terrors" +msgid "W11B10" +msgid_plural "W11B10s" msgstr[0] "" msgstr[1] "" -#. ~ Description for screeching terror +#. ~ Description for W11B10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"piston-driven lances. A speaker system has been installed to blast " -"terrifying shrieks of distorted music. No one in their right mind would " -"craft such a hellish beast." +"Wraitheon (11B) Infantry 10 Level. Part of Wraitheon's series of one-to-one" +" auxiliaries designed to seamlessly integrate with more traditional forces." msgstr "" +"Wraitheon (11B) Infantería Nivel 10. Parte de la serie de Wraitheon de " +"auxiliares uno a uno diseñados para integrarse con fuerzas más " +"tradicionales." #: lang/json/MONSTER_from_json.py -msgid "hooked nightmare" -msgid_plural "hooked nightmares" +msgid "W11B10B4" +msgid_plural "W11B10B4s" msgstr[0] "" msgstr[1] "" -#. ~ Description for hooked nightmare +#. ~ Description for W11B10B4 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"spinning chains terminating in bloody hooks. A speaker system has been " -"installed to blast terrifying shrieks of distorted music. No one in their " -"right mind would craft such a twisted abomination." +"Wraitheon (11B) Infantry 20 Level (B4) Sniper. Part of Wraitheon's series " +"of one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces. " msgstr "" +"Wraitheon (11B) Infantería Nivel 20 (B4) Francotirador. Parte de la serie de" +" Wraitheon de auxiliares uno a uno diseñados para integrarse con fuerzas más" +" tradicionales." -#. ~ Description for Beagle Mini-Tank UGV +#: lang/json/MONSTER_from_json.py +msgid "W12B10" +msgid_plural "W12B10s" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for W12B10 #: lang/json/MONSTER_from_json.py msgid "" -"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an " -"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" -"infantry weapons, it's designed for high-risk urban fighting." +"Wraitheon (12B) Combat Engineer 10 Level. Part of Wraitheon's series of " +"one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "fist king" -msgid_plural "fist kings" +msgid "W11H10" +msgid_plural "W11H10s" msgstr[0] "" msgstr[1] "" -#. ~ Description for fist king +#. ~ Description for W11H10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Although lacking" -" ranged weapons, its armor and strength make it a match for the even the " -"biggest monsters. Only a madman would dare build such a reckless behemoth." +"Wraitheon (11H) Anti-Tank Infantry 10 Level. Part of Wraitheon's series of " +"one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" +"Wraitheon (11H) Infantería Anti-Tanque Nivel 10. Parte de la serie de " +"Wraitheon de auxiliares uno a uno diseñados para integrarse con fuerzas más " +"tradicionales." #: lang/json/MONSTER_from_json.py -msgid "atomic sultan" -msgid_plural "atomic sultans" +msgid "W12N10" +msgid_plural "W12N10s" msgstr[0] "" msgstr[1] "" -#. ~ Description for atomic sultan +#. ~ Description for W12N10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged tankbot refitted with burning hot man-crushers. Although lacking" -" ranged weapons, its armor and strength make it a match for even the biggest" -" foes. Multiple fusion cores give the robot ample power but also cause " -"radioactive gas leaks. Only a lunatic would dare build such a reckless " -"monster." +"Wraitheon (12N) Construction Engineer 10 Level. Part of Wraitheon's series " +"of one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gelatinous mass" -msgid_plural "gelatinous mass" -msgstr[0] "masa gelatinosa" -msgstr[1] "masa gelatinosa" +#: lang/json/MONSTER_from_json.py +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for {'str_sp': 'gelatinous mass'} -#. ~ Description for {'str_sp': 'gray mass'} -#. ~ Description for {'str_sp': 'gelatinous mass'} +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper +#. mummies'} #: lang/json/MONSTER_from_json.py msgid "" -"An escaping noisy blob, catch it before it brings in every zombie for miles!" +"Vaguely humanoid in shape, layered in something resembling toilet paper." msgstr "" -"Es un ruidoso monstruo masa amorfa gelatinosa que se está escapando, " -"¡Atrapalo antes de que atraiga a todos los zombis de la zona!" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gray mass" -msgid_plural "gray mass" -msgstr[0] "masa gris" -msgstr[1] "masa gris" +"Tiene una forma vagamente humanoide, cubierta de capas de algo que parece " +"papel higiénico." #: lang/json/MONSTER_from_json.py msgid "giant scorpion" @@ -80965,6 +79351,19 @@ msgid "" "chitin fitted to a thin mesh. You could put this on a friendly horse." msgstr "" +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "a mammal" msgstr "" @@ -80987,7 +79386,7 @@ msgstr "" #: lang/json/SPECIES_from_json.py msgid "a mutant" -msgstr "" +msgstr "un mutante" #: lang/json/SPECIES_from_json.py msgid "a nether creature" @@ -81061,6 +79460,10 @@ msgstr "una aberración" msgid "a human" msgstr "" +#: lang/json/SPECIES_from_json.py +msgid "an intelligent animal created by man before the Cataclysm" +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "an alien" msgstr "" @@ -81194,7 +79597,7 @@ msgstr "" #. ~ Message for SPELL '{'str': 'Artifact Teleport'}' #: lang/json/SPELL_from_json.py msgid "You teleport!" -msgstr "" +msgstr "¡Te teletransportás!" #: lang/json/SPELL_from_json.py msgid "Artifact Attention" @@ -81696,6 +80099,15 @@ msgstr "" msgid "Holographic Transposition" msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "psi stun" msgstr "" @@ -81735,7 +80147,7 @@ msgstr "" #. ~ Description for psi hallucinate #: lang/json/SPELL_from_json.py msgid "an attack that causes the target to hallucinate for a few turns" -msgstr "" +msgstr "un ataque que causa que el objetivo alucine por algunos turnos" #. ~ Message for SPELL 'psi hallucinate' #: lang/json/SPELL_from_json.py @@ -81853,7 +80265,7 @@ msgstr "" #: lang/json/SPELL_from_json.py msgid "Biomancer Rune" -msgstr "" +msgstr "Runa Biomante" #. ~ Description for {'str': 'Biomancer Rune'} #: lang/json/SPELL_from_json.py @@ -81932,7 +80344,7 @@ msgstr "" #: lang/json/SPELL_from_json.py msgid "Magical Light" -msgstr "" +msgstr "Luz Mágica" #: lang/json/SPELL_from_json.py msgid "Blinding Flash" @@ -81997,7 +80409,7 @@ msgstr "" #: lang/json/SPELL_from_json.py msgid "Spawn Debug Monsters" -msgstr "" +msgstr "Crea Monstruos Debug" #. ~ Description for Spawn Debug Monsters #: lang/json/SPELL_from_json.py @@ -82181,7 +80593,7 @@ msgstr "" #: lang/json/SPELL_from_json.py msgid "Druid Rune" -msgstr "" +msgstr "Runa Druida" #. ~ Description for Druid Rune #: lang/json/SPELL_from_json.py @@ -82783,6 +81195,56 @@ msgid "" "have this spell you probably debugged it in." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "El Suelo es Lava" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" msgid_plural "reactor core expansion devices" @@ -83088,8 +81550,8 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak" msgid_plural "hologram cloaks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "capa holográfica" +msgstr[1] "capas holográficas" #. ~ Description for {'str': 'hologram cloak'} #: lang/json/TOOL_ARMOR_from_json.py @@ -83466,6 +81928,54 @@ msgid "" "open the cover and show the light." msgstr "" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD +#. helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets +#. (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" msgid_plural "RM13 combat armors" @@ -84950,6 +83460,35 @@ msgid_plural "Foodperson masks (on)" msgstr[0] "" msgstr[1] "" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" @@ -85108,9 +83647,9 @@ msgstr[1] "" #. ~ Description for CRIT S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into " -"your spinal cord, this device improves your overall physique and provides " -"basic information on your surroundings." +"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" +" spinal cord, this device improves your overall physique and provides basic " +"information on your surroundings." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -85122,7 +83661,7 @@ msgstr[1] "" #. ~ Use action msg for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD booting up…" +msgid "CRIT HUD booting up…" msgstr "" #. ~ Use action need_charges_msg for {'str': 'CRIT gasmask (off)', 'str_pl': @@ -85135,11 +83674,11 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line " -"electronics and lined with Kevlar for extra protection in order to keep " -"one's head where it should be. Various filters and other high tech wizardry" -" allow for enhanced oxygen intake and safety even under bombardment. It has" -" an integrated HUD and the option to turn it on for more features." +"This is a heavily modified Spec Ops modified gasmask, fitted with top-of-" +"the-line electronics and lined with Kevlar for extra protection in order to " +"keep one's head where it should be. Various filters and other high tech " +"wizardry allow for enhanced oxygen intake and safety even under bombardment." +" It has an integrated HUD and the option to turn it on for more features." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -85151,16 +83690,15 @@ msgstr[1] "" #. ~ Use action msg for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD deactivating." +msgid "CRIT HUD deactivating." msgstr "" #. ~ Description for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " -"draining power for the HUD, low-level nightvision and other protective " -"elements." +"This a heavily modified gasmask. It is currently on and draining power for " +"the HUD, low-level nightvision and other protective elements." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -85172,7 +83710,7 @@ msgstr[1] "" #. ~ Use action msg for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T EM booting up…" +msgid "CRIT EM booting up…" msgstr "" #. ~ Use action need_charges_msg for {'str': 'CRIT EM vest (off)', 'str_pl': @@ -85185,11 +83723,11 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments and reactive servos which protects its wearer and assists in " -"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec" -" Ops for its ease of use and manuverability. Turn it on for suit mode, " -"extra protection and movement." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments and" +" reactive servos which protects its wearer and assists in movement at the " +"cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its " +"ease of use and manuverability. Turn it on for suit mode, extra protection " +"and movement." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -85207,18 +83745,18 @@ msgstr "" #. ~ Use action msg for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T E.M powering off…" +msgid "CRIT EM powering off…" msgstr "" #. ~ Description for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments, reactive servos and a generator which pumps a crystallized liquid" -" that protects its wearer from most heavy combat situations at the cost of " -"extreme power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is" -" currently in suit form and draining your UPS power at high rates." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments, " +"reactive servos and a generator which pumps a crystallized liquid that " +"protects its wearer from most heavy combat situations at the cost of extreme" +" power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " +"currently in suit form and draining your UPS power at high rates." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -85238,8 +83776,8 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -85259,10 +83797,9 @@ msgstr "" #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection. A tactically dim " -"flashlight is attached to the side. This light is currently on and drawing " -"power." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection. A tactically dim flashlight is " +"attached to the side. This light is currently on and drawing power." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -85509,7 +84046,7 @@ msgstr "" #. ~ Description for magic ring #: lang/json/TOOL_ARMOR_from_json.py msgid "A generic gold magic ring." -msgstr "" +msgstr "Es un anillo mágico común de oro." #. ~ Description for magic ring #: lang/json/TOOL_ARMOR_from_json.py @@ -85618,8 +84155,8 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "ring of dexterity +2" msgid_plural "rings of dexterity +2" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "anillo de destreza +2" +msgstr[1] "anillos de destreza +2" #. ~ Description for {'str': 'ring of dexterity +2', 'str_pl': 'rings of #. dexterity +2'} @@ -86488,16 +85025,14 @@ msgstr "Luz" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." +msgid "You flip the switch in the jack o'lantern." msgstr "" #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." +"face. It has a tiny LED light in it. It doesn't provide very much light." msgstr "" #: lang/json/TOOL_from_json.py @@ -86509,7 +85044,7 @@ msgstr[1] "" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." +msgid "The LED winks out inside the lantern." msgstr "" #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack @@ -86517,7 +85052,7 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is lit." +"very much light, but it can run for quite a long time. This lantern is lit." " The face shifts." msgstr "" @@ -86725,6 +85260,8 @@ msgid "" "The tank drone swivels its turret and aims directly at you. Don your brown " "pants!" msgstr "" +"El dron tanque rota su torreta y te apunta directamente. ¡No pintes los " +"pantalones marrón!" #. ~ Description for {'str': 'inactive tank drone'} #: lang/json/TOOL_from_json.py @@ -87191,6 +85728,40 @@ msgstr "" "la propulsión de la segunda a manera una feroz nube de esquirlas mortales. " "La mecha está encendida... ¿por qué todavía la tienes en la mano?" +#: lang/json/TOOL_from_json.py +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "portátil de control" +msgstr[1] "portátiles de control" + +#. ~ Description for {'str': 'control laptop'} +#: lang/json/TOOL_from_json.py +msgid "" +"A modified laptop, now capable of transmitting in the ultra-high frequencies" +" utilized by robots. Activate it to command robots from afar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "inactive laser turret" +msgid_plural "inactive laser turrets" +msgstr[0] "torreta láser inactiva" +msgstr[1] "torretas láser inactivas" + +#. ~ Description for {'str': 'inactive laser turret'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive laser turret. Using this item involves turning it on " +"and placing it on the ground, where it will attach itself. If reprogrammed " +"and rewired successfully the turret will identify you as a friendly, and " +"attack all enemies with its revolving laser cannons. It requires sunlight " +"in order to fire." +msgstr "" +"Es una torreta láser inactiva. Usarla incluye prenderla y ubicarla en el " +"suelo, donde se desplegará sola. Si se la reprograma e instala " +"correctamente, la torreta te identificará como aliado y atacará a todos tus " +"enemigos con sus cañones láser giratorios. Necesita estar expuesta a la luz " +"del sol para disparar." + #: lang/json/TOOL_from_json.py msgid "folded poncho" msgid_plural "folded ponchos" @@ -87361,27 +85932,6 @@ msgstr "" "hack. Tu habilidad en electrónica y computación determinará si la " "reprogramación es exitosa." -#: lang/json/TOOL_from_json.py -msgid "inactive laser turret" -msgid_plural "inactive laser turrets" -msgstr[0] "torreta láser inactiva" -msgstr[1] "torretas láser inactivas" - -#. ~ Description for {'str': 'inactive laser turret'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive laser turret. Using this item involves turning it on " -"and placing it on the ground, where it will attach itself. If reprogrammed " -"and rewired successfully the turret will identify you as a friendly, and " -"attack all enemies with its revolving laser cannons. It requires sunlight " -"in order to fire." -msgstr "" -"Es una torreta láser inactiva. Usarla incluye prenderla y ubicarla en el " -"suelo, donde se desplegará sola. Si se la reprograma e instala " -"correctamente, la torreta te identificará como aliado y atacará a todos tus " -"enemigos con sus cañones láser giratorios. Necesita estar expuesta a la luz " -"del sol para disparar." - #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" @@ -87417,7 +85967,6 @@ msgid "You misprogram the manhack; it's hostile!" msgstr "Fallaste en la programación del manhack. ¡Es hostil!" #. ~ Description for {'str': 'inactive manhack'} -#. ~ Description for inactive hack #: lang/json/TOOL_from_json.py msgid "" "This is an inactive manhack. Manhacks are fist-sized robots that fly " @@ -87819,8 +86368,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive skitterbot" msgid_plural "inactive skitterbots" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "arañabot inactivo" +msgstr[1] "arañabots inactivos" #. ~ Use action friendly_msg for {'str': 'inactive skitterbot'}. #: lang/json/TOOL_from_json.py @@ -87949,6 +86498,26 @@ msgid "" "distraction." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "" + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing" +" it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "clothes hanger" msgid_plural "clothes hangers" @@ -88529,8 +87098,8 @@ msgstr[1] "" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end" -" and sharpened into a cutting tool. Its jagged edge is wicked but fragile." +"A femur or other bone, about 20 cm long, which has been broken at one end " +"and sharpened into a cutting tool. Its jagged edge is wicked but fragile." msgstr "" #: lang/json/TOOL_from_json.py @@ -89030,8 +87599,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "electric chainsaw lajatang (off)" msgid_plural "electric chainsaw lajatangs (off)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "motosierra lajatang eléctrica (apag.)" +msgstr[1] "motosierras lajatang eléctricas (apag.)" #. ~ Description for {'str': 'electric chainsaw lajatang (off)', 'str_pl': #. 'electric chainsaw lajatangs (off)'} @@ -89220,6 +87789,32 @@ msgid "" "but bad for the environment; at least you're recycling it." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "butchering kit" msgid_plural "butchering kits" @@ -89687,13 +88282,11 @@ msgid_plural "fire barrels (200L)" msgstr[0] "" msgstr[1] "" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels #. (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels #. (100L)'} -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +#: lang/json/TOOL_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -89964,19 +88557,6 @@ msgstr[1] "móviles inteligentes - Linternas" msgid "You stop lighting up the screen." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "portátil de control" -msgstr[1] "portátiles de control" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies" -" utilized by robots. Activate it to command robots from afar." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" @@ -90026,7 +88606,6 @@ msgstr[0] "electrohackeador" msgstr[1] "electrohackeadores" #. ~ Description for {'str': 'electrohack'} -#. ~ Description for electrohack #: lang/json/TOOL_from_json.py msgid "" "This device has many ports attached, allowing it to connect to almost any " @@ -90195,11 +88774,13 @@ msgstr[1] "móviles inteligentes" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "Activas la aplicación de linterna." #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "El cargador del móvil inteligente es demasiado bajo." @@ -90356,11 +88937,8 @@ msgstr[1] "equipos de cerrajero" msgid "" "This is a locksmith's set of sturdy steel lock picks and torsion wrenches. " "It is essential for silently and quickly opening locks, provided you have " -"some mechanical skill." +"some lock picking and mechanical skills." msgstr "" -"Es un equipo de cerrajero con ganzúas resistentes de acero y llaves de " -"torsión. Es esencial para abrir cerraduras de manera rápida y silenciosa, " -"suponiendo que tienes alguna habilidad mecánica." #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -90864,7 +89442,6 @@ msgstr[0] "granada PEM activada" msgstr[1] "granadas PEM activadas" #. ~ Description for {'str': 'active EMP grenade'} -#. ~ Description for active EMP grenade #: lang/json/TOOL_from_json.py msgid "" "This EMP grenade is active, and will shortly detonate, creating a large EMP " @@ -92687,6 +91264,8 @@ msgid "" "This is a very sharp knife designed for surgical cutting. Its small, sharp " "blade allows for precision strikes in the hands of the skilled." msgstr "" +"Es un cuchillo muy afilado diseñado para cortes quirúrgicos. Su pequeña hoja" +" afilada permite golpes precisos en las manos de alguien hábil." #: lang/json/TOOL_from_json.py msgid "emergency oxygen pack" @@ -93085,8 +91664,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "dab pen (on)" msgid_plural "dab pens (on)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vaporizador (encendido)" +msgstr[1] "vaporizadores (encendidos)" #. ~ Use action msg for {'str': 'dab pen (on)', 'str_pl': 'dab pens (on)'}. #: lang/json/TOOL_from_json.py @@ -93238,21 +91817,6 @@ msgstr "" "Es una bocina de auto diseñada para ser conectada a un sistema eléctrico de " "auto." -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "placa de kevlar" -msgstr[1] "placas de kevlar" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made" -" of Kevlar." -msgstr "" -"Es una placa de kevlar reforzada. Puede ser usada para reparar objetos que " -"estén hechos de este material." - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" @@ -93590,6 +92154,19 @@ msgstr "" "perímetro. Aunque es bastante grande, no pesa casi nada. El aire parece " "juntarse alrededor de ella." +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" @@ -96971,11 +95548,10 @@ msgstr[1] "" #. knives'} #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked" -" pry bar at the bottom for opening simple things and bashing in heads. " -"Matte black finish helps it avoid flash in dim-light situations and tanto " -"tip allows for light-armor penetration. Blade length allows for decent " -"reach." +"A modified trench knife. Has a knuckleduster guard and a small, hooked pry " +"bar at the bottom. The matte black finish helps it avoid flash in dim-light " +"situations and tanto tip allows for light-armor penetration. Blade length " +"allows for decent reach." msgstr "" #: lang/json/TOOL_from_json.py @@ -97001,9 +95577,9 @@ msgstr[1] "" #. ~ Description for CRIT Reso-blade #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " -"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " -"thrums from within." +"CRIT melee weapon. Alien runes adorn the carbon steel blade. The blade " +"oddly seems to lack sharpness, and yet upon closer oberservation, a hum of " +"energy thrums from within." msgstr "" #: lang/json/TOOL_from_json.py @@ -98028,1124 +96604,6 @@ msgid "" "magical metals into their workable ingot form." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "Dusk" -msgid_plural "Dusks" -msgstr[0] "Dusk" -msgstr[1] "Dusks" - -#. ~ Description for Dusk -#: lang/json/TOOL_from_json.py -msgid "" -"A longsword, made out of a very dark, almost black metal. It seems to hold " -"a greater edge than usual steel blades and feels …more comfortable in the " -"hand. While the blade is made out of this dark metal, the crossguard and " -"the pommel seem to be made out of a brighter material, which feels " -"abnormally cool to the touch." -msgstr "" - -#. ~ Description for disarmed defense turret -#: lang/json/TOOL_from_json.py -msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "" - -#. ~ Description for disarmed military turret -#: lang/json/TOOL_from_json.py -msgid "An automated military turret. It lacks an integrated weapon." -msgstr "" - -#. ~ Description for disarmed advanced turret -#: lang/json/TOOL_from_json.py -msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive 9mm defense turret" -msgid_plural "inactive 9mm defense turrets" -msgstr[0] "torreta defensiva 9mm inactiva" -msgstr[1] "torretas defensivas 9mm inactivas" - -#. ~ Description for inactive 9mm defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 9mm defense turret. Up to 100 standard 9mm rounds will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Es una torreta defensiva inactiva 9mm. Serán cargadas automáticamente hasta " -"100 balas 9mm desde tu inventario a la torreta cuando la actives. Cuando " -"pongas la torreta te va a identificar como aliado con su software IFF " -"avanzado. Consultá el manual de seguridad en caso de mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive shotgun defense turret" -msgid_plural "inactive shotgun defense turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive shotgun defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive shotgun defense turret. Up to 100 standard 12ga shells will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riotcontrol turret. Up to 50 standard 40mm less-than-lethal " -"beanbag canisters will be automatically loaded from your inventory into the " -"turret upon activation. Place the turret and it will ID you as friendly " -"with its advanced IFF software. Consult your safety manual in the event of " -"a malfunction." -msgstr "" - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riot control turret. Up to 50 standard 40mm teargas canisters " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta anti-disturbio inactiva. Serán cargadas automáticamente hasta" -" 50 cartuchos 40mm de gas lacrimógeno desde tu inventario a la torreta " -"cuando la actives. Cuando pongas la torreta te va a identificar como aliado " -"con su software IFF avanzado. Consultá el manual de seguridad en caso de mal" -" funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive 5.56mm military turret" -msgid_plural "inactive 5.56mm military turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive 5.56mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 5.56mm military turret. Up to 100 standard 5.56mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta militar inactiva 5.56mm. Serán cargadas automáticamente hasta" -" 100 balas 5.56mm NATO desde tu inventario a la torreta cuando la actives. " -"Cuando pongas la torreta te va a identificar como aliado con su software IFF" -" avanzado. Consultá el manual de seguridad en caso de mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive 7.62mm military turret" -msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "torreta militar 7.62mm inactiva" -msgstr[1] "torretas militares 7.62mm inactivas" - -#. ~ Description for inactive 7.62mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 7.62mm military turret. Up to 100 standard 7.62mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive 50 caliber military turret" -msgid_plural "inactive 50 caliber military turrets" -msgstr[0] "torreta militar calibre 50 inactiva" -msgstr[1] "torretas militares calibre 50 inactivas" - -#. ~ Description for inactive 50 caliber military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 50 caliber military turret. Up to 100 standard 50 caliber bmg " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military needle turret" -msgid_plural "inactive military needle turrets" -msgstr[0] "torreta militar de clavos inactiva" -msgstr[1] "torretas militares de clavos inactivas" - -#. ~ Description for inactive military needle turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced needle turret. Up to 100 standard 5x50mm flechette " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military 8x40mm turret" -msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "torreta militar 8x40mm inactiva" -msgstr[1] "torretas militares 8x40mm inactivas" - -#. ~ Description for inactive military 8x40mm turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced 8x40mm turret. Up to 100 standard 8x40mm caseless " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Es una torreta avanzada inactiva 8x40mm. Serán cargadas automáticamente " -"hasta 100 balas sin casquillo 8x40mm desde tu inventario a la torreta cuando" -" la actives. Cuando pongas la torreta te va a identificar como aliado con su" -" software IFF avanzado. Consultá el manual de seguridad en caso de mal " -"funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 40mm grenade turret" -msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "torreta militar de granadas 40mm inactiva" -msgstr[1] "torretas militares de granadas 40mm inactivas" - -#. ~ Description for inactive military 40mm grenade turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive military grenade turret. Up to 50 standard 40mm fragmentation " -"grenades will be automatically loaded from your inventory into the turret " -"upon activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military flamethrower turret" -msgid_plural "inactive military flamethrower turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive military flamethrower turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive flame turret. Up to 100 units of napalm will be automatically " -"loaded from your inventory into the turret upon activation. Place the " -"turret and it will ID you as friendly with its advanced IFF software. " -"Consult your safety manual in the event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced laser turret" -msgid_plural "inactive advanced laser turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive advanced laser turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced laser turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Es una torreta láser avanzada inactiva. Poné la torreta y te va a " -"identificar como aliado con su software IFF avanzado. Consultá tu manual de " -"seguridad ante un eventual mal funcionamiento." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced plasma turret" -msgid_plural "inactive advanced plasma turrets" -msgstr[0] "torreta plasma avanzada inactiva" -msgstr[1] "torretas plasma avanzadas inactivas" - -#. ~ Description for inactive advanced plasma turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced plasma turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced railgun turret" -msgid_plural "inactive advanced railgun turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive advanced railgun turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced railgun turret. Up to 50 standard rail projectiles " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced acid turret" -msgid_plural "inactive advanced acid turrets" -msgstr[0] "torreta avanzada ácida inactiva" -msgstr[1] "torretas avanzadas ácidas inactivas" - -#. ~ Description for inactive advanced acid turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced acid turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced EMP turret" -msgid_plural "inactive advanced EMP turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive advanced EMP turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced EMP turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced electro turret" -msgid_plural "inactive advanced electro turrets" -msgstr[0] "electrotorreta mejorada inactiva" -msgstr[1] "electrotorretas mejoradas inactivas" - -#. ~ Description for inactive advanced electro turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced electro turret. Place the turret and it will ID you as" -" friendly with its advanced IFF software. Consult your safety manual in the" -" event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "garden gnome" -msgid_plural "garden gnomes" -msgstr[0] "enano de jardín" -msgstr[1] "enanos de jardín" - -#. ~ Description for garden gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. You can place him in your " -"garden or elsewhere." -msgstr "" -"Un enano de jardín normal y completamente inofensivo. Puedes ponerlo en tu " -"jardín o donde quieras." - -#: lang/json/TOOL_from_json.py -msgid "gaurdin gnome" -msgid_plural "gaurdin gnomes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for gaurdin gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. He holds up to 100 rounds of" -" 9mm ammo." -msgstr "" -"Es un gnomo de jardín totalmente normal e indefenso. Puede tener hasta 100 " -"balas 9 mm." - -#: lang/json/TOOL_from_json.py -msgid "small batch of curdling milk" -msgid_plural "small batches of curdling milk" -msgstr[0] "lote pequeño de leche cuajada" -msgstr[1] "lotes pequeños de leche cuajada" - -#. ~ Use action msg for {'str': 'small batch of curdling milk', 'str_pl': -#. 'small batches of curdling milk'}. -#. ~ Use action msg for {'str': 'batch of curdling milk', 'str_pl': 'batches -#. of curdling milk'}. -#. ~ Use action msg for {'str': 'large batch of curdling milk', 'str_pl': -#. 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "" -"The milk appears to have finished curdling, and is ready for further " -"processing. Checking on it has exposed the mixture to the atmosphere." -msgstr "" -"La leche parece haber terminado de cuajar, y está lista para un proceso " -"posterior. Al haber abierto el odre para mirar el contenido, has expuesto la" -" mezcla a la atmósfera." - -#. ~ Use action not_ready_msg for {'str': 'small batch of curdling milk', -#. 'str_pl': 'small batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'batch of curdling milk', 'str_pl': -#. 'batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'large batch of curdling milk', -#. 'str_pl': 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "The milk is still curdling." -msgstr "La leche todavía se está cuajando." - -#. ~ Description for {'str': 'small batch of curdling milk', 'str_pl': 'small -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed small waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Un pequeño odre sellado lleno con leche que está en pleno proceso de " -"convertirse en una especie de queso. Tiene vinagre y cuajo natural agregado." - -#: lang/json/TOOL_from_json.py -msgid "batch of curdling milk" -msgid_plural "batches of curdling milk" -msgstr[0] "lote de leche cuajada" -msgstr[1] "lotes de leche cuajada" - -#. ~ Description for {'str': 'batch of curdling milk', 'str_pl': 'batches of -#. curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed waterskin filled with milk that is undergoing the process to become" -" a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Un odre sellado lleno con leche que está en pleno proceso de convertirse en " -"una especie de queso. Tiene vinagre y cuajo natural agregado." - -#: lang/json/TOOL_from_json.py -msgid "large batch of curdling milk" -msgid_plural "large batches of curdling milk" -msgstr[0] "lote grande de leche cuajada" -msgstr[1] "lotes grandes de leche cuajada" - -#. ~ Description for {'str': 'large batch of curdling milk', 'str_pl': 'large -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed large waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Un gran odre sellado lleno con leche que está en pleno proceso de " -"convertirse en una especie de queso. Tiene vinagre y cuajo natural agregado." - -#: lang/json/TOOL_from_json.py -msgid "heavy snare kit" -msgid_plural "heavy snare kits" -msgstr[0] "equipo de trampa pesada de lazo" -msgstr[1] "equipos de trampa pesada de lazo" - -#. ~ Use action done_message for heavy snare kit. -#. ~ Use action done_message for light snare kit. -#: lang/json/TOOL_from_json.py -msgid "You set the snare trap." -msgstr "Pones la trampa de lazo." - -#. ~ Description for heavy snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a rope noose and a snare " -"trigger. It requires a tree nearby. It is effective at trapping monsters." -msgstr "" -"Es un equipo para armar una trampa simple que consiste en un nudo corredizo " -"y un disparador de la soga. Tiene que armarse cerca de un árbol. Es eficaz " -"para atrapar monstruos." - -#: lang/json/TOOL_from_json.py -msgid "light snare kit" -msgid_plural "light snare kits" -msgstr[0] "equipo de trampa ligera de lazo" -msgstr[1] "equipos de trampa ligera de lazo" - -#. ~ Description for light snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a string noose and a snare " -"trigger. It requires a young tree nearby. It is effective at trapping and " -"killing some small animals." -msgstr "" -"Es un equipo para armar una trampa simple que consiste en un nudo corredizo " -"y un disparador del hilo. Necesita estar cerca de un árbol joven. Es eficaz " -"para atrapar y matar algunos animales pequeños." - -#: lang/json/TOOL_from_json.py -msgid "snare trigger" -msgid_plural "snare triggers" -msgstr[0] "disparador de trampa de lazo" -msgstr[1] "disparadores de trampa de lazo" - -#. ~ Description for snare trigger -#: lang/json/TOOL_from_json.py -msgid "" -"This is a stick that has been cut into a trigger mechanism for a snare trap." -msgstr "" -"Es un palo que ha sido recortado para funcionar como mecanismo disparador de" -" una trampa de lazo." - -#. ~ Description for Laevateinn -#: lang/json/TOOL_from_json.py -msgid "" -"A replica of Laevateinn, the sword of Freyr. It is rumored to be able to " -"fight by itself. It is decorated with gold and silver ornaments." -msgstr "" -"Es una réplica de Laevateinn, la espada de Frey. Un rumor dice que es capaz " -"de luchar por sí misma. Está decorada con adornos de oro y plata." - -#: lang/json/TOOL_from_json.py -msgid "inactive craftbuddy" -msgid_plural "inactive craftbuddies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'inactive craftbuddy', 'str_pl': 'inactive -#. craftbuddies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A robot crafting assistant. Useable in its current state as a portable " -"workbench, or deployable as a traveling companion." -msgstr "" -"Es un robot asistente de fabricación. En su estado actual se puede usar como" -" una mesa de trabajo portátil, o llevar como un compañero de viaje." - -#. ~ Description for light auto armor -#. ~ Description for basic auto armor -#. ~ Description for heavy auto armor -#: lang/json/TOOL_from_json.py -msgid "" -"A set of light power armor fitted with an AI core for automated use. " -"Activate it to deploy the robot or disassemble it to use as armor." -msgstr "" -"Es un conjunto de armadura de poder ligera, con un núcleo de IA para uso " -"automatizado. Activalo para desplegar el robot, o desarmalo para usarlo como" -" armadura." - -#: lang/json/TOOL_from_json.py -msgid "basic auto armor" -msgid_plural "basic auto armors" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/TOOL_from_json.py -msgid "inactive hack" -msgid_plural "inactive hacks" -msgstr[0] "hack inactivo" -msgstr[1] "hacks inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating lantern" -msgid_plural "inactive floating lanterns" -msgstr[0] "linterna voladora inactiva" -msgstr[1] "linternas voladoras inactivas" - -#. ~ Use action friendly_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "" - -#. ~ Use action hostile_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the lantern." -msgstr "Programaste mal la linterna." - -#. ~ Description for inactive floating lantern -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive floating lantern, a fist-sized robots that flies through the air" -" and illuminates its surroundings with bright LEDs. The lantern is non " -"aggressive and has no means of attack. Activate this item to deploy the " -"salvaged robot." -msgstr "" -"Es una linterna voladora inactiva, un robot del tamaño de un puño que vuela " -"e ilumina los alrededores con potentes leds. La linterna no es agresiva y no" -" tiene manera de atacar. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive distract-o-hack" -msgid_plural "inactive distract-o-hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action friendly_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "¡El distract-o-hack vuela desde tu mano y empieza a chisporrotear!" - -#. ~ Use action hostile_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the distract-o-hack!" -msgstr "¡Programaste mal el distract-o-hack!" - -#. ~ Description for inactive distract-o-hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive distract-o-hack, a fist-sized robot that flies through the air " -"emitting noise, smoke, and sparks. The salvaged robot has no weapons, but " -"will harass hostile targets to draw their attention. Activate this item to " -"deploy the robot. It cannot be recovered once activated." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive arson hack" -msgid_plural "inactive arson hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action friendly_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "The arson hack flies from your hand! Get clear!" -msgstr "¡El incendi-hack vuela desde tu mano! ¡Cuidado!" - -#. ~ Use action hostile_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the arson hack! Run!" -msgstr "" - -#. ~ Description for inactive arson hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive arson hack, a fist-sized robot that flies through the air " -"chaotically spreading deadly fires. The salvaged robot has no weapons, but " -"will emit intermittent bursts of flame as it moves toward hostile targets. " -"Activate this item to deploy the robot. It cannot be recovered once " -"activated." -msgstr "" -"Es un incendi-hack desactivado, un robot del tamaño de un puño que vuela por" -" el aire de manera caótica lanzado llamas mortales. El robot recuperado no " -"tiene armas pero emitirá ráfagas intermitentes de llamas mientras se mueve " -"hacia el enemigo. Al activar este objeto desplegarás el robot. Una vez " -"activado no puede ser recuperado." - -#: lang/json/TOOL_from_json.py -msgid "inactive spore hack" -msgid_plural "inactive spore hacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action friendly_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "The spore hack flies from your hand!" -msgstr "" - -#. ~ Use action hostile_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the spore hack!" -msgstr "¡Programaste mal el espora-hack!" - -#. ~ Description for inactive spore hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive spore hack, a fist-sized robot that flies through the air " -"spreading alien contaminants. The robot will dust hostile targets, and " -"intermittently cover the terrain with puffs of fungal spores. Activate this" -" item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive water turret" -msgid_plural "inactive water turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive water turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive watercannon defense turret. Up to 1000 units of water will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. There is no safety manual." -msgstr "" -"Es una torreta defensiva inactiva de cañón de agua. Serán cargadas hasta " -"1000 unidades de agua automáticamente de tu inventario a la torreta cuando " -"la actives. Cuando pongas la torreta te va a identificar como aliado con su " -"software IFF avanzado. No tiene manual de seguridad." - -#: lang/json/TOOL_from_json.py -msgid "inactive floating heater" -msgid_plural "inactive floating heaters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive floating heater -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space. It is non-aggressive " -"and has no weapons systems. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating furnace" -msgid_plural "inactive floating furnaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive floating furnace -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. It is non-" -"aggressive and has no weapons systems. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive burning eye" -msgid_plural "inactive burning eyes" -msgstr[0] "ojo llameante inactivo" -msgstr[1] "ojos llameantes inactivos" - -#. ~ Description for inactive burning eye -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon which it will use on hostile " -"targets. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive utilibot" -msgid_plural "inactive utilibots" -msgstr[0] "utilitaribot inactivo" -msgstr[1] "utilitaribots inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive blob breeder" -msgid_plural "inactive blob breeders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive blob breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It is non aggressive and has no weapon systems. You can activate " -"this item to deploy the robot and begin the incubation process, but you " -"probably shouldn't." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive slime breeder" -msgid_plural "inactive slime breeders" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive slime breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob, and upgraded to only produce friendly slimes. It is non aggressive " -"and has no weapon systems. You can activate this item to deploy the robot " -"and begin the incubation process." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive digestron" -msgid_plural "inactive digestrons" -msgstr[0] "digestrón inactivo" -msgstr[1] "digestrones inactivos" - -#. ~ Description for inactive digestron -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. It is non aggressive and has no weapon systems. Activate " -"this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive bee-bot" -msgid_plural "inactive bee-bots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive bee-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers segments of fresh honey comb. It protects" -" the insect colony with a mechanical crossbow mounted to its chassis. " -"Activate this item, with wooden bolts in your inventory, to load and deploy " -"the robot." -msgstr "" -"Es un utilitaribot recuperado convertido en una colmena ambulante que " -"periódicamente quita y entrega panales. Protege la colonia con una ballesta " -"mecánica montada en su chasis. Activá este objeto, con pernos de madera en " -"tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive medibot" -msgid_plural "inactive medibots" -msgstr[0] "medibot inactivo" -msgstr[1] "medibots inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive assassin robot" -msgid_plural "inactive assassin robots" -msgstr[0] "asesinobot inactivo" -msgstr[1] "asesinobots inactivos" - -#. ~ Description for inactive assassin robot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. It will attack " -"hostile targets with a set of blades and a toxic needle. Activate this item" -" to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive elixirator" -msgid_plural "inactive elixirators" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive elixirator -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot with its internal pharma-fabricators repurposed to " -"produce mutagen. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive party bot" -msgid_plural "inactive party bots" -msgstr[0] "fiestabot inactivo" -msgstr[1] "fiestabots inactivos" - -#. ~ Description for inactive party bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Activate this item to get the party " -"started." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive rat snatcher" -msgid_plural "inactive rat snatchers" -msgstr[0] "cazarata inactivo" -msgstr[1] "cazaratas inactivos" - -#. ~ Description for inactive rat snatcher -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It attacks targets" -" with pincers and an integrated tazer. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive grab-bot" -msgid_plural "inactive grab-bots" -msgstr[0] "agarrabot inactivo" -msgstr[1] "agarrabots inactivos" - -#. ~ Description for inactive grab-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. " -"Activate this item to deploy the robot." -msgstr "" -"Es un arañabot reconvertido para agarrar e inmovilizar a los enemigos. " -"Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive pest hunter" -msgid_plural "inactive pest hunters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive pest hunter -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " -"this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Es un arañabot reconvertido con un arma 8mm integrada. Activá este objeto, " -"con munición en tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive cyborg" -msgid_plural "inactive cyborgs" -msgstr[0] "androide inactivo" -msgstr[1] "androides inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive necrotic cyborg" -msgid_plural "inactive necrotic cyborgs" -msgstr[0] "androide necrótico inactivo" -msgstr[1] "androides necróticos inactivos" - -#. ~ Description for inactive necrotic cyborg -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Activate this " -"item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive defense robot" -msgid_plural "inactive defense robots" -msgstr[0] "robot defensivo inactivo" -msgstr[1] "robots defensivos inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive junkyard cowboy" -msgid_plural "inactive junkyard cowboys" -msgstr[0] "vaquero de basurero inactivo" -msgstr[1] "vaqueros de basurero inactivos" - -#. ~ Description for inactive junkyard cowboy -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive shortcircuit samurai" -msgid_plural "inactive shortcircuit samurais" -msgstr[0] "samurai cortocircuitos inactivo" -msgstr[1] "samurais cortocircuitos inactivos" - -#. ~ Description for inactive shortcircuit samurai -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with an integrated tazer and two " -"electrified blades. Activate this item to deploy the robot." -msgstr "" -"Es un robot defensivo reconvertido con una pistola eléctrica integrada y dos" -" cuchillas electrificadas. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive slapdash paladin" -msgid_plural "inactive slapdash paladins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive slapdash paladin -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. Activate this item, with gasoline in your inventory, to" -" load and deploy the robot… preferably far from anything flammable" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military robot" -msgid_plural "inactive military robots" -msgstr[0] "militaribot inactivo" -msgstr[1] "militaribots inactivos" - -#. ~ Description for inactive military robot -#: lang/json/TOOL_from_json.py -msgid "" -"An unpowered military robot fitted with an integrated 7.62 firearm and " -"electric prod. Activate this item, with ammo in your inventory, to load and" -" deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-guardian" -msgid_plural "inactive robo-guardians" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive robo-guardian -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive robote deluxe" -msgid_plural "inactive robote deluxes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive robote deluxe -#: lang/json/TOOL_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style. Activate this item, with ammo in your inventory, to " -"load and deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-protector" -msgid_plural "inactive robo-protectors" -msgstr[0] "protectorbot inactivo" -msgstr[1] "protectorbots inactivos" - -#. ~ Description for inactive robo-protector -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Es un militaribot reconvertido con un rifle 5.56mm integrado. Activá este " -"objeto, con munición en tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-defender" -msgid_plural "inactive robo-defenders" -msgstr[0] "defensorbot inactivo" -msgstr[1] "defensorbots inactivos" - -#. ~ Description for inactive robo-defender -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Activate" -" this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Es un militaribot reconvertido con un rifle 50bmg integrado. Activá este " -"objeto, con munición en tu inventario, para cargar y desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced robot" -msgid_plural "inactive advanced robots" -msgstr[0] "robot avanzado inactivo" -msgstr[1] "robots avanzados inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive glittering lady" -msgid_plural "inactive glittering ladies" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'inactive glittering lady', 'str_pl': 'inactive -#. glittering ladies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It attacks hostile targets with its two integral lasers and blinding " -"flashes. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive bitter spinster" -msgid_plural "inactive bitter spinsters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive bitter spinster -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " -"to deploy the robot." -msgstr "" -"Es un robot militar transformado en un monstruo cáustico. Un fermentador " -"interno de ácido alimenta un escupidor y rociador. Activa este objeto para " -"desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive chickenwalker" -msgid_plural "inactive chickenwalkers" -msgstr[0] "mecagallina inactiva" -msgstr[1] "mecagallinas inactivas" - -#: lang/json/TOOL_from_json.py -msgid "inactive chainsaw horror" -msgid_plural "inactive chainsaw horrors" -msgstr[0] "horror motosierra inactivo" -msgstr[1] "horrores motosierra inactivos" - -#. ~ Description for inactive chainsaw horror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of whirring " -"chainsaws and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive screeching terror" -msgid_plural "inactive screeching terrors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive screeching terror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of piston-driven " -"lances and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " -"calaveras y púas. Ataca a sus enemigos con un par de lanzas a pistones y su " -"sistema defensivo de sonido. Activá este objeto para desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive hooked nightmare" -msgid_plural "inactive hooked nightmares" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive hooked nightmare -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of spinning hooks" -" on chains and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Es una mecagallina modificada, hecha un horrorífico monstruo adornado con " -"calaveras y púas. Ataca a sus enemigos con un par de ganchos con cadenas " -"giratorios y su sistema defensivo de sonido. Activá este objeto para " -"desplegar el robot." - -#: lang/json/TOOL_from_json.py -msgid "inactive tankbot" -msgid_plural "inactive tankbots" -msgstr[0] "tanquebot inactivo" -msgstr[1] "tanquebots inactivos" - -#: lang/json/TOOL_from_json.py -msgid "inactive fist king" -msgid_plural "inactive fist kings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for inactive fist king -#. ~ Description for inactive atomic sultan -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Activate this " -"item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive atomic sultan" -msgid_plural "inactive atomic sultans" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/TOOL_from_json.py -msgid "active glowball" -msgid_plural "active glowballs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action msg for active glowball. -#: lang/json/TOOL_from_json.py -msgid "The glowball goes dim." -msgstr "" - -#. ~ Description for active glowball -#: lang/json/TOOL_from_json.py -msgid "A small plastic ball filled with glowing chemicals." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "TEST rag" msgid_plural "TEST rags" @@ -99194,511 +96652,26 @@ msgstr[0] "" msgstr[1] "" #: lang/json/TOOL_from_json.py -msgid "growing blob frame" -msgid_plural "growing blob frames" -msgstr[0] "armazón de monstruo masa amorfa gelatinosa en crecimiento" -msgstr[1] "armazones de monstruo masa amorfa gelatinosa en crecimiento" - -#. ~ Use action msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "" -"You test the frame; It wiggles, and then collapses into an lump of goo." -msgstr "Pruebas el armazón, se contonea y luego colapsa en un montón viscoso." - -#. ~ Use action not_ready_msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "Pruebas el armazón; está muy blando, todavía le falta endurecerse" - -#. ~ Description for {'str': 'growing blob frame'} -#: lang/json/TOOL_from_json.py -msgid "" -"A growing vehicle frame made of bone. It's coated in a thick layer of ooze," -" though there's greater amounts on the bindings. It's not quite tough " -"enough to use." -msgstr "" -"Es una armazón todavía creciendo para vehículo, hecha de hueso. Está " -"cubierta con una capa gruesa de flujo, aunque tiene mayores cantidades en " -"las uniones. No está lo suficientemente dura como para usar." - -#: lang/json/TOOL_from_json.py -msgid "growing keratinous mass" -msgid_plural "growing keratinous mass" -msgstr[0] "masa queratinosa creciendo" -msgstr[1] "masa queratinosa creciendo" - -#. ~ Use action msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action msg for {'str_sp': 'growing ooze'}. -#. ~ Use action msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "The blob balloons to full size." -msgstr "El blobo se infla hasta tomar su tamaño completo." - -#. ~ Use action not_ready_msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing ooze'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "Whatever it's doing, it's not done yet." -msgstr "Sea lo que sea que está haciendo, todavía no terminó." - -#. ~ Description for {'str_sp': 'growing keratinous mass'} -#. ~ Description for {'str_sp': 'growing beaded mass'} -#. ~ Description for {'str_sp': 'growing icy mass'} -#. ~ Description for {'str_sp': 'growing cold mass'} -#. ~ Description for {'str_sp': 'growing hairy mass'} -#. ~ Description for {'str_sp': 'growing gelatinous mass'} -#. ~ Description for {'str_sp': 'growing glowing mass'} -#. ~ Description for {'str_sp': 'growing gray mass'} -#. ~ Description for {'str_sp': 'growing spike-studded mass'} -#. ~ Description for {'str_sp': 'growing gasoline-laced mass'} -#. ~ Description for {'str_sp': 'growing acidic mass'} -#. ~ Description for {'str_sp': 'growing ooze'} -#. ~ Description for {'str_sp': 'growing mass of tendrils'} -#. ~ Description for {'str_sp': 'growing spiked mass'} -#. ~ Description for {'str_sp': 'growing spiny mass'} -#. ~ Description for {'str_sp': 'growing spiky mass'} -#. ~ Description for {'str_sp': 'growing bright mass'} -#. ~ Description for {'str_sp': 'growing viscous mass'} -#. ~ Description for {'str_sp': 'growing warm mass'} -#. ~ Description for {'str_sp': 'growing electrified mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Not quite fully grown, this blob requires nourishment to fully develop." -msgstr "" -"Este monstruo masa amorfa gelatinosa todavía no está totalmente crecido y " -"necesita nutrirse para poder desarrollarse." - -#: lang/json/TOOL_from_json.py -msgid "growing beaded mass" -msgid_plural "growing beaded mass" -msgstr[0] "masa con cuentas creciendo" -msgstr[1] "masa con cuentas creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing icy mass" -msgid_plural "growing icy mass" -msgstr[0] "masa helada creciendo" -msgstr[1] "masa helada creciendo" - -#: lang/json/TOOL_from_json.py -msgid "gelacier" -msgid_plural "gelaciers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gelacier'} -#: lang/json/TOOL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "growing cold mass" -msgid_plural "growing cold mass" -msgstr[0] "masa fría creciendo" -msgstr[1] "masa fría creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing hairy mass" -msgid_plural "growing hairy mass" -msgstr[0] "masa peluda creciendo" -msgstr[1] "masa peluda creciendo" - -#. ~ Use action msg for {'str_sp': 'gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'gray mass'}. -#. ~ Use action msg for {'str_sp': 'oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "You fumble as the blob starts to multiply rapidly!" -msgstr "" -"¡Quedás dubitativo mientras el monstruo masa amorfa gelatinosa empieza a " -"multiplicarse rápidamente!" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An experiment gone horribly right. While the original intent was to combine" -" the structure of a bone frame with the impact absorption of the blob; the " -"blob seems to have completely consumed the bone. Instead, what remains is " -"an amorphous mass of goo with what seems to be numerous thin filaments " -"floating within. With a bit of effort, you can grasp the fibers and stretch" -" the mass into a multitude of shapes. The mass is able to retain the new " -"shape even under force, though the mass yields at your touch. With enough " -"strength, you think you can pull it apart." -msgstr "" -"Es un experimento que salió horriblemente mal. Aunque el intento original " -"fue combinar la estructura de un armazón de hueso con la absorción de " -"impacto de un monstruo masa amorfa gelatinosa; el monstruo masa amorfa " -"gelatinosa parece haber consumido completamente el hueso. Por lo tanto, lo " -"que queda es una masa amorfa y viscosa con lo que parecen ser varios " -"filamentos delgados flotando adentro. Con un poco de esfuerzo, puedes " -"agarrar las fibras y estirar la masa en una variedad de formas. La masa es " -"capaz de mantener su nueva forma incluso siendo forzada, aunque cede cuando " -"la tocas. Con fuerza suficiente, te parece que podrías desarmarla." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gelatinous mass" -msgid_plural "multiplying gelatinous mass" -msgstr[0] "masa gelatinosa multiplicándose" -msgstr[1] "masa gelatinosa multiplicándose" - -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying oozing mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "A blob splits and bounces away!" -msgstr "¡Un monstruo masa amorfa gelatinosa se separa y sale rebotando!" - -#. ~ Description for {'str_sp': 'multiplying gelatinous mass'} -#. ~ Description for {'str_sp': 'multiplying gray mass'} -#. ~ Description for {'str_sp': 'multiplying oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Having been fed, this blob is now rapidly multiplying into other copies of " -"itself; extremely noisy copies! And even worse, it's stuck to your hands " -"until whatever it's doing is done! Catch those blobs before they bring in " -"every zombie for miles!" -msgstr "" -"Luego de ser alimentado, el monstruo masa amorfa gelatinosa ahora se está " -"multiplicando rápidamente formando copias de sí mismo... ¡copias " -"extremadamente ruidosas! Y lo que es peor, se te pega en las manos hasta que" -" termina lo que está haciendo. ¡Atrapa a esos monstruos masa amorfa " -"gelatinosa antes de que atraigan a todos los zombis de la zona!" - -#: lang/json/TOOL_from_json.py -msgid "growing gelatinous mass" -msgid_plural "growing gelatinous mass" -msgstr[0] "masa gelatinosa creciendo" -msgstr[1] "masa gelatinosa creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing glowing mass" -msgid_plural "growing glowing mass" -msgstr[0] "masa reluciente creciendo" -msgstr[1] "masa reluciente creciendo" - -#. ~ Description for {'str_sp': 'gray mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"This internal structures of this creature have developed significantly. " -"While retaining the resilience and malleability of its once simpler form, it" -" has gained the considerable abilities of perception and stimulus response." -" When directly threatened, it is able to shift and alter its microfibers, " -"hardening its membrane to an almost steel-hard shell. You can still pull it" -" apart with enough force. It's also really gray." -msgstr "" -"Las estructuras internas que esta criatura se han desarrollado " -"significativamente. Aunque mantiene la resiliencia y maleabilidad de su " -"anterior forma más simple, ha ganado habilidades considerables de percepción" -" y respuesta a los estímulos. Cuando es amenazada directamente, es capaz de " -"cambiar y alterar sus microfibras, endureciendo su membrana hasta formar una" -" caparazón casi dura como el acero. Igual la puedes desarmar con la " -"suficiente fuerza. Y también es muy gris." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gray mass" -msgid_plural "multiplying gray mass" -msgstr[0] "masa gris multiplicándose" -msgstr[1] "masa gris multiplicándose" - -#: lang/json/TOOL_from_json.py -msgid "growing gray mass" -msgid_plural "growing gray mass" -msgstr[0] "masa gris creciendo" -msgstr[1] "masa gris creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing spike-studded mass" -msgid_plural "growing spike-studded mass" -msgstr[0] "masa llena de púas creciendo" -msgstr[1] "masa llena de púas creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing gasoline-laced mass" -msgid_plural "growing gasoline-laced mass" -msgstr[0] "masa cubierta de gasolina creciendo" -msgstr[1] "masa cubierta de gasolina creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing acidic mass" -msgid_plural "growing acidic mass" -msgstr[0] "masa ácida creciendo" -msgstr[1] "masa ácida creciendo" - -#: lang/json/TOOL_from_json.py -msgid "oozing mass" -msgid_plural "oozing mass" -msgstr[0] "masa supurante" -msgstr[1] "masa supurante" - -#. ~ Description for {'str_sp': 'oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An amorphous mass that has undergone a significant growth. In addition to " -"the increased amount of goo and sinuous filaments, it seems to have started " -"developing other internal structures. Like its smaller counterpart, it can " -"be shaped into various structures; albeit with significantly greater tensile" -" strength due to the increased number of supporting filaments. You believe " -"you can split it apart with enough force." -msgstr "" -"Una masa amorfa que ha experimentado un crecimiento significativo. Además " -"de la creciente cantidad de cosas pegajosas y sinuosos filamentos, parece " -"que han comenzado a desarrollar otras estructuras internas. Como su " -"contraparte más pequeña, puede ser formada en distintas estructuras; aunque " -"con mayor resistencia a la tracción debido a la mayor cantidad de filamentos" -" de apoyo. Crees que se puede dividir aparte con suficiente fuerza." - -#: lang/json/TOOL_from_json.py -msgid "multiplying oozing mass" -msgid_plural "multiplying oozing mass" -msgstr[0] "masa supurante multiplicándose" -msgstr[1] "masa supurante multiplicándose" - -#: lang/json/TOOL_from_json.py -msgid "growing ooze" -msgid_plural "growing ooze" -msgstr[0] "flujo creciendo" -msgstr[1] "flujo creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing mass of tendrils" -msgid_plural "growing mass of tendrils" -msgstr[0] "masa creciendo de zarcillos" -msgstr[1] "masa creciendo de zarcillos" - -#: lang/json/TOOL_from_json.py -msgid "growing spiked mass" -msgid_plural "growing spiked mass" -msgstr[0] "masa con púas creciendo" -msgstr[1] "masa con púas creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing spiny mass" -msgid_plural "growing spiny mass" -msgstr[0] "masa espinosa creciendo" -msgstr[1] "masa espinosa creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing spiky mass" -msgid_plural "growing spiky mass" -msgstr[0] "masa puntiaguda creciendo" -msgstr[1] "masa puntiaguda creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing bright mass" -msgid_plural "growing bright mass" -msgstr[0] "masa brillante creciendo" -msgstr[1] "masa brillante creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing viscous mass" -msgid_plural "growing viscous mass" -msgstr[0] "masa viscosa creciendo" -msgstr[1] "masa viscosa creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing warm mass" -msgid_plural "growing warm mass" -msgstr[0] "masa tibia creciendo" -msgstr[1] "masa tibia creciendo" - -#: lang/json/TOOL_from_json.py -msgid "growing electrified mass" -msgid_plural "growing electrified mass" -msgstr[0] "masa electrificada creciendo" -msgstr[1] "masa electrificada creciendo" - -#: lang/json/TOOL_from_json.py -msgid "diamond cluster" -msgid_plural "diamond clusters" -msgstr[0] "grupo de diamante" -msgstr[1] "grupos de diamante" - -#. ~ Use action msg for {'str': 'diamond cluster'}. -#: lang/json/TOOL_from_json.py -msgid "The cluster comes apart in your hands." -msgstr "El grupo se desarma en tus manos." - -#. ~ Description for {'str': 'diamond cluster'} -#: lang/json/TOOL_from_json.py -msgid "" -"A cluster of artificial crystals that have broken off of a diamond matrix. " -"While the substance usually decays when separated from the catalyst; this " -"cluster seems to be self-sustaining by some unknown mechanism. " -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "diamond matrix" -msgid_plural "diamond matrices" -msgstr[0] "matriz de diamante" -msgstr[1] "matrices de diamante" - -#. ~ Use action msg for {'str': 'diamond matrix', 'str_pl': 'diamond -#. matrices'}. -#: lang/json/TOOL_from_json.py -msgid "" -"Your senses dull as you gaze into the depths of this gemstone's center…" -msgstr "" - -#. ~ Description for {'str': 'diamond matrix', 'str_pl': 'diamond matrices'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sparkling diamond with a dazzling spiral pattern. Small pieces of " -"glittering crystal form on the edges as you hold it." -msgstr "" -"Es un destellante diamante con un espiral deslumbrante. En los bordes se " -"forman unos pequeños pedazos de cristal reluciente cuando lo tienes en la " -"mano." - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex engine" -msgid_plural "vortex engines" -msgstr[0] "motor vórtice" -msgstr[1] "motores vórtice" - -#. ~ Description for {'str': 'vortex engine'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allows it to be attached to a vehicle to render " -"it mobile." -msgstr "" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex generator" -msgid_plural "vortex generators" -msgstr[0] "generador vórtice" -msgstr[1] "generadores vórtice" - -#. ~ Description for {'str': 'vortex generator'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allow it to be hooked up to a battery to store " -"the power generated." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "control chip" -msgid_plural "control chips" -msgstr[0] "chip de control" -msgstr[1] "chips de control" - -#. ~ Description for control chip -#: lang/json/TOOL_from_json.py -msgid "" -"A small device, not bigger than a man's fist. It provides primitive " -"organisms with electric stimulation, reviving them and forcing them to obey " -"your commands. This version only works on blobs." -msgstr "" -"Un pequeño dispositivo, no más grande que un puño humano. Le otorga " -"estimulación eléctrica a los organismos primitivos, reviviéndolos y " -"forzándolos a obedecer tus órdenes. Esta versión solamente funciona en " -"monstruos masa amorfa gelatinosa." - -#: lang/json/TOOL_from_json.py -msgid "dormant blob" -msgid_plural "dormant blobs" -msgstr[0] "monstruo masa amorfa gelatinosa dormido" -msgstr[1] "monstruos masa amorfa gelatinosa dormidos" - -#. ~ Use action friendly_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "The blob becomes active and starts slithering around." -msgstr "" -"El monstruo masa amorfa gelatinosa se pone en actividad y empieza a " -"deslizarse por ahí." - -#. ~ Use action hostile_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "You've made a terrible mistake, the blob is hostile!" -msgstr "" -"¡Cometiste un terrible error, el monstruo masa amorfa gelatinosa es hostil!" - -#. ~ Description for dormant blob -#: lang/json/TOOL_from_json.py -msgid "" -"Several chunks of blob scraps, stuffed with a control chip and sewn back " -"together. A light shock from the UPS started the chip, bringing the blob " -"back to life. Use this item to wake up the blob." -msgstr "" -"Son varios pedazos de restos de monstruo masa amorfa gelatinosa metidos con " -"un chip de control y cosidos entre sí. Un pequeño shock del UPS hizo " -"encender el chip, lo que le dio vida al monstruo masa amorfa gelatinosa. Usa" -" este objeto para despertar el monstruo masa amorfa gelatinosa." - -#: lang/json/TOOL_from_json.py -msgid "dormant minion" -msgid_plural "dormant minions" -msgstr[0] "secuaz dormido" -msgstr[1] "secuaces dormidos" +msgid "test smartphone" +msgid_plural "test smartphones" +msgstr[0] "" +msgstr[1] "" -#. ~ Use action friendly_msg for dormant minion. +#. ~ Description for {'str': 'test smartphone'} #: lang/json/TOOL_from_json.py -msgid "The jabberwock climbs to its feet and shambles around." +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." msgstr "" -#. ~ Use action hostile_msg for dormant minion. #: lang/json/TOOL_from_json.py -msgid "" -"Something has gone wrong; after getting up the jabberwock lumbers toward you" -" menacingly!" -msgstr "" -"¡Algo salió mal, después de despertar al jabberwock empieza a moverse de " -"manera amenazante contra ti!" +msgid "test matchbook" +msgid_plural "test matchbooks" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for dormant minion +#. ~ Description for {'str': 'test matchbook'} #: lang/json/TOOL_from_json.py -msgid "" -"Your very own undead servant. The blob controlling its body is in a state " -"of coma, awaiting your orders. Use this item to wake up the minion." +msgid "Test matches - when you must burn things, for science!" msgstr "" -"Tu muerto viviente, tu sirviente personal. El monstruo masa amorfa " -"gelatinosa que controla su cuerpo está en estado de coma, esperando tus " -"órdenes. Usa este objeto para despertar a este secuaz." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -99900,6 +96873,19 @@ msgstr "" "Una rueda bastante pequeña. Probablemente, sea de uno de esos trasportadores" " personales Segway. No es la gran cosa." +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "" + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" @@ -99949,6 +96935,8 @@ msgid "" "A wide wheel. \\o/ This wide. It's studded to provide better grip off-road" " at the cost of some performance on pavement." msgstr "" +"Es una rueda ancha. Así de ancha \\o/ . Tiene tacos grandes para brindar " +"mejor agarre en todo terreno, pero tiene un menor rendimiento en pavimento." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wooden cart wheel" @@ -99985,197 +96973,66 @@ msgstr[1] "" msgid "A column of mana energy that enables a floating disk to move." msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Rubber Caterpillar Track" -msgid_plural "Rubber Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Rubber Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of hard rubber tracks reinforced by stiff wire " -"held in place by a set of smaller wheels. Similar with what you might see " -"used on light construction vehicles. It's significantly stronger than " -"regular tires due to not being at risk of bursting; but is quite heavy." +#: lang/json/achievement_from_json.py +msgid "One down, billions to go…" msgstr "" -"Es una cadena articulada corta, hecha de caucho duro reforzadas con alambre " -"rígido, y que se mantiene en su lugar por una serie ruedas más pequeñas. " -"Similar a las que viste en los vehículos pequeños usados en las obras de " -"construcción. Es bastante más fuerte que las ruedas normales debido a que no" -" corren riesgo de reventar, pero son bastante pesadas." - -#: lang/json/WHEEL_from_json.py -msgid "Steel Caterpillar Track" -msgid_plural "Steel Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'Steel Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on large construction " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is very heavy." +#: lang/json/achievement_from_json.py +msgid "Rude awakening" msgstr "" -"Es una cadena articulada corta, hecha de acero y que se mantiene en su lugar" -" por una serie ruedas más pequeñas. Similar a las que viste en los vehículos" -" grandes usados en las obras de construcción. Es significativamente más " -"fuerte que las ruedas normales debido a que no corren riesgo de reventar, " -"pero son muy pesadas." -#: lang/json/WHEEL_from_json.py -msgid "Reinforced Caterpillar Track" -msgid_plural "Reinforced Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'Reinforced Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on APCs and armored " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is extremely heavy." +#: lang/json/achievement_from_json.py +msgid "Decamate" msgstr "" -"Es una cadena articulada corta, hecha de acero y que se mantiene en su lugar" -" por una serie ruedas más pequeñas. Similar a las que viste en los vehículos" -" blindados y los APC. Es significativamente más fuerte que las ruedas " -"normales debido a que no corren riesgo de reventar, pero son extremadamente " -"pesadas." - -#: lang/json/WHEEL_from_json.py -msgid "Gelatinous track" -msgid_plural "Gelatinous tracks" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'Gelatinous track'} -#. ~ Description for {'str': 'Oozing track'} -#. ~ Description for {'str': 'Gray track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of tracks created out of some of your monstrosity " -"blob based parts. Similar with what you might see used on light " -"construction vehicles. It's significantly stronger than regular tires due " -"to not being at risk of bursting; but is quite heavy." +#: lang/json/achievement_from_json.py +msgid "Centinel" msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Oozing track" -msgid_plural "Oozing tracks" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "Gray track" -msgid_plural "Gray tracks" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/WHEEL_from_json.py -msgid "gelacier wheel" -msgid_plural "gelacier wheels" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gelacier wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It has formed itself into a wide, crude " -"wheel." +#: lang/json/achievement_from_json.py +msgid "The first day of the rest of their unlives" msgstr "" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gelatinous wheel" -msgid_plural "gelatinous wheels" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for {'str': 'gelatinous wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gelatinous mass with water has resulted in something that appears " -"to be a cross between a wheel, an otherworldly abomination, and one of those" -" old squeezy toys." +#: lang/json/achievement_from_json.py +msgid "Survive for a day and find a safe place to sleep" msgstr "" -"Llenar una masa gelatinosa con agua ha resultado en algo que parece ser una " -"cruza entre una rueda, una abominación de otro mundo y uno de esos juguetes " -"viejos que hacen ruidito cuando los pulsas." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gray wheel" -msgid_plural "gray wheels" -msgstr[0] "" -msgstr[1] "" -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gray mass with water has resulted in something that appears to be " -"a cross between a wheel, an otherworldly abomination, and one of those old " -"squeezy toys." +#: lang/json/achievement_from_json.py +msgid "Thank God it's Friday" msgstr "" -"Llenar una masa gris con agua ha resultado en algo que parece ser una cruza " -"entre una rueda, una abominación de otro mundo y uno de esos juguetes viejos" -" que hacen ruidito cuando los pulsas." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "earthen roller" -msgid_plural "earthen rollers" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a week" +msgstr "" -#. ~ Description for {'str': 'earthen roller'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A large, spherical blob the size of a large truck tire. The outer layer has" -" compacted itself into a solid shell; offering great resilience. Having " -"grown to full size, it seems content to simply sit there." +#: lang/json/achievement_from_json.py +msgid "28 days later" msgstr "" -"Es un gran monstruo masa amorfa gelatinosa esférico, del tamaño de una rueda" -" grande de camión. La capa exterior se ha compactado en una coraza sólida, " -"lo que brinda gran resiliencia. Al haber crecido a su tamaño completo, " -"parece estar contenta de solo quedarse ahí quieta." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "oozing wheel" -msgid_plural "oozing wheels" -msgstr[0] "" -msgstr[1] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a month" +msgstr "" -#. ~ Description for {'str': 'oozing wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling an oozing mass with water has resulted in something that appears to " -"be a cross between a wheel, an otherworldly abomination, and one of those " -"old squeezy toys." +#: lang/json/achievement_from_json.py +msgid "A time to every purpose under heaven" msgstr "" -"Llenar una masa supurante con agua ha resultado en algo que parece ser una " -"cruza entre una rueda, una abominación de otro mundo y uno de esos juguetes " -"viejos que hacen ruidito cuando los pulsas." #: lang/json/achievement_from_json.py -msgid "One down, billions to go…" +msgid "Survive for a season" msgstr "" #: lang/json/achievement_from_json.py -msgid "Rude awakening" +msgid "Brighter days ahead?" msgstr "" #: lang/json/achievement_from_json.py -msgid "The first day of the rest of their unlives" +msgid "Survive for a year" msgstr "" #: lang/json/achievement_from_json.py msgid "Pheidippides was a hack" msgstr "" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." msgstr "" @@ -100184,7 +97041,6 @@ msgstr "" msgid "Please don't fall down at my door" msgstr "" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." msgstr "" @@ -100205,6 +97061,18 @@ msgstr "" msgid "Ain't no valley low enough" msgstr "" +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "reloading" msgstr "" @@ -100333,10 +97201,6 @@ msgstr "" msgid "de-stressing" msgstr "" -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr "" - #: lang/json/activity_type_from_json.py msgid "dropping" msgstr "" @@ -100767,10 +97631,6 @@ msgstr "baterías" msgid "cents" msgstr "centavos" -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "plutonio" - #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" msgstr "postas 12mm" @@ -100895,14 +97755,6 @@ msgstr "" msgid "pulse ammo" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "6.54x42mm" -msgstr "6.54x42mm" - -#: lang/json/ammunition_type_from_json.py -msgid ".20 DREAD Pellets" -msgstr ".20 DREAD Dardos Perforantes" - #: lang/json/ammunition_type_from_json.py msgid "black powder ammo" msgstr "" @@ -100948,41 +97800,9 @@ msgid "mana energy" msgstr "" #: lang/json/ammunition_type_from_json.py -msgid "javelin" -msgstr "jabalina" - -#: lang/json/ammunition_type_from_json.py -msgid "120mm shell" -msgstr "cartucho 120mm" - -#: lang/json/ammunition_type_from_json.py -msgid "155mm shell" -msgstr "cartucho 155mm" - -#: lang/json/ammunition_type_from_json.py -msgid "30x113mm" -msgstr "30x113mm" - -#: lang/json/ammunition_type_from_json.py -msgid "heavy projectiles" -msgstr "proyectiles pesados" - -#: lang/json/ammunition_type_from_json.py -msgid "ballista bolt" -msgstr "perno de ballista" - -#: lang/json/ammunition_type_from_json.py -msgid "bladed disk" -msgstr "disco con cuchillas" - -#: lang/json/ammunition_type_from_json.py -msgid "crystalline shards" +msgid "heady vapours" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "vortex energy" -msgstr "energía de vórtice" - #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" msgstr "Bomba de Adrenalina" @@ -101065,10 +97885,10 @@ msgstr "" "tu boca. Cuando lloras, tienes que escupir o tragarte tus lágrimas." #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" -msgstr "Placas de Aleación - Cabeza" +msgid "Alloy Plating - head" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -101088,10 +97908,10 @@ msgid "" msgstr "" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" -msgstr "Placas de Aleación - Torso" +msgid "Alloy Plating - torso" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -101409,8 +98229,8 @@ msgstr "" #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "EMP Projector" msgid_plural "EMP Projectors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "proyector PEM" +msgstr[1] "proyectores PEM" #. ~ Description for {'str': 'EMP Projector'} #: lang/json/bionic_from_json.py @@ -102604,11 +99424,20 @@ msgid "" "inducing a state of euphoria that notably elevates mood." msgstr "" +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top" +" of your spine. They are all dead now but there is unfortunately a dead man" +" switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Generador de Sobrecarga Iónica" +msgstr[1] "Generadores de Sobrecarga Iónica" #. ~ Description for {'str': 'Blood Power Generator CBM'} #: lang/json/bionic_from_json.py @@ -102935,6 +99764,22 @@ msgstr "Forrarlo con lana" msgid "Destroy wool lining" msgstr "Destruir forro de lana" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "Pacifista" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -103746,6 +100591,10 @@ msgstr "" msgid "Build Cardboard Fort" msgstr "" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "Const.Anillo de Fuego" @@ -103930,30 +100779,10 @@ msgstr "Cortar Árbol en Troncos" msgid "Makeshift Wall" msgstr "Pared improvisada" -#: lang/json/construction_from_json.py -msgid "Build Hydroponics" -msgstr "" - -#: lang/json/construction_from_json.py -msgid "Build Hydroponics Heater" -msgstr "" - #: lang/json/construction_from_json.py msgid "Build Translocator Gate" msgstr "" -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" -msgstr "" -"Cosechar Alimento de monstruo masa amorfa gelatinosa del Pozo de Cadáveres: " -"Destrozar para Cosechar" - -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "" -"Cosechar Alimento de monstruo masa amorfa gelatinosa de Slime: Destrozar " -"para Cosechar" - #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." msgstr "Tienes un extraño sueño con lagartos." @@ -104915,6 +101744,71 @@ msgstr "" msgid "You have transitioned from a dying race to a glorious future." msgstr "" +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded" +" by snow and bitter pelting winds, you feel confident and toasty-warm " +"beneath your shaggy coat." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is" +" restored." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill" +" for anyone or anything to bother trying to attack. And if they do… it'll " +"be the last mistake of their life. Waking up gives you a brief jolt of " +"fear and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one" +" through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "" + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "" @@ -105775,6 +102669,8 @@ msgid "" "You have finally caught up with your lost sleep, and you feel refreshed and " "awake for a change." msgstr "" +"Finalmente, lograste recuperar el sueño perdido, y te sientes fresco y " +"despierto para variar." #: lang/json/effects_from_json.py msgid "Melatonin Supplements" @@ -105792,8 +102688,6 @@ msgid "Stuck in beartrap" msgstr "Atrapado en una trampa para oso" #. ~ Description of effect 'Stuck in beartrap'. -#. ~ Description of effect 'Stuck in a light snare'. -#. ~ Description of effect 'Stuck in a heavy snare'. #: lang/json/effects_from_json.py msgid "You can't move until you get free!" msgstr "¡No te puedes mover hasta que te liberes!" @@ -106156,6 +103050,52 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "Curada de la infección fúngica." +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "" + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, +#. Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly +#. tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "Alucinando" @@ -107237,7 +104177,7 @@ msgstr "Estás llevando un encendedor y no te puedes ocultar bien." #: lang/json/effects_from_json.py msgid "Started recovery" -msgstr "" +msgstr "Empezando a recuperarse" #: lang/json/effects_from_json.py msgid "Recovering" @@ -107538,6 +104478,26 @@ msgstr "" msgid "You're disgusted by the goop." msgstr "" +#: lang/json/effects_from_json.py src/character.cpp +msgid "Full" +msgstr "Lleno" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "" + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "Barriga llena" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "" + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" msgstr "Suplementos de Magnesio" @@ -107562,10 +104522,6 @@ msgid "" "This is a bug if you have it." msgstr "" -#: lang/json/effects_from_json.py src/character.cpp src/character.cpp -msgid "Full" -msgstr "Lleno" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -107938,20 +104894,6 @@ msgstr "" msgid "You feel sluggish and weak, from magically-induced poisoning." msgstr "" -#: lang/json/effects_from_json.py -msgid "Stuck in a light snare" -msgstr "Atrapado en una trampa de lazo" - -#. ~ Apply message for effect(s) 'Stuck in a light snare'. -#. ~ Apply message for effect(s) 'Stuck in a heavy snare'. -#: lang/json/effects_from_json.py -msgid "You are snared!" -msgstr "¡Caíste en una trampa de lazo!" - -#: lang/json/effects_from_json.py -msgid "Stuck in a heavy snare" -msgstr "Atrapado en una trampa pesada de lazo" - #: lang/json/effects_from_json.py msgid "Gummed" msgstr "" @@ -107978,6 +104920,66 @@ msgstr "" msgid "The gum webs constrict your movement." msgstr "" +#: lang/json/effects_from_json.py +msgid "Debugged" +msgstr "" + +#. ~ Description of effect 'Debugged'. +#: lang/json/effects_from_json.py +msgid "" +"You have been debugged!\n" +"Everything is working perfectly now." +msgstr "" + +#. ~ Apply message for effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Diving into your source, you find a rubber duck, and talk it to death." +msgstr "" + +#. ~ Speed name of effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Optimized" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Min-Maxed" +msgstr "" + +#. ~ Description of effect 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "" +"All the benefits of being the worst with none of the drawbacks of being the " +"best!" +msgstr "" + +#. ~ Apply message for effect(s) 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "You feel your internal metrics stretch like a fun-house mirror." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Whoa" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wut?" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wow!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "" +"Everything is just way too intense, man!\n" +"You feel confused and disoriented." +msgstr "" + +#. ~ Apply message for effect(s) 'Whoa, Wut?, Wow!'. +#: lang/json/effects_from_json.py +msgid "!!Intensity intensifies!!" +msgstr "" + #: lang/json/faction_from_json.py msgid "Your Followers" msgstr "Tus Seguidores" @@ -109119,7 +106121,9 @@ msgstr "" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -109137,15 +106141,17 @@ msgstr "filtro de aire central" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." msgstr "" #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them" -" clean and to save people an unpleasant chore. Now, with the power gone and" -" it sitting for a while, it's starting to smell a bit off." +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." msgstr "" #: lang/json/furniture_from_json.py @@ -109154,7 +106160,9 @@ msgstr "secadora" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -109164,9 +106172,8 @@ msgstr "nevera" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." msgstr "" #: lang/json/furniture_from_json.py @@ -109176,7 +106183,10 @@ msgstr "Nevera con puerta de cristal" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without" +" letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." msgstr "" #: lang/json/furniture_from_json.py @@ -109187,13 +106197,15 @@ msgstr "horno industrial" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." +"the air through a building's ventilation system to keep it warm." msgstr "" #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." -msgstr "Podrías lavar tu ropa sucia si hubiera electricidad." +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." +msgstr "" #: lang/json/furniture_from_json.py msgid "oven" @@ -109202,9 +106214,8 @@ msgstr "horno" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." msgstr "" #: lang/json/furniture_from_json.py @@ -109214,8 +106225,9 @@ msgstr "" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -109225,8 +106237,9 @@ msgstr "" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." +"An anvil with a large metal hammer suspended above it in a metal framework." +" If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -109236,8 +106249,10 @@ msgstr "" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -109246,7 +106261,10 @@ msgstr "" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." msgstr "" #: lang/json/furniture_from_json.py @@ -109256,8 +106274,10 @@ msgstr "" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes" +" have all been lost." msgstr "" #: lang/json/furniture_from_json.py @@ -109266,8 +106286,11 @@ msgstr "panel solar montado" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." -msgstr "Un panel solar montado." +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -109280,7 +106303,10 @@ msgstr "barricada de camino" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -109299,7 +106325,9 @@ msgstr "" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -109312,7 +106340,7 @@ msgstr "" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." +msgid "A wall of stacked earthbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -109321,8 +106349,8 @@ msgstr "guardarraíl" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." -msgstr "Antes se utilizaba para organizar el tráfico." +msgid "A simple wooden post to mark the separation between street lanes." +msgstr "" #: lang/json/furniture_from_json.py msgid "sandbag barricade" @@ -109330,7 +106358,9 @@ msgstr "barricada de bolsas de arena" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -109339,7 +106369,7 @@ msgstr "pared de bolsas de arena" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." +msgid "A wall of stacked sandbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -109348,7 +106378,9 @@ msgstr "espejo de pie" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all" +" of the dirt and blood on your clothes, and the weariness in your eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -109362,8 +106394,9 @@ msgstr "espejo de pie roto" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." msgstr "" #: lang/json/furniture_from_json.py @@ -109373,8 +106406,8 @@ msgstr "" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." msgstr "" #: lang/json/furniture_from_json.py @@ -109383,9 +106416,7 @@ msgstr "esposas" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -109399,11 +106430,12 @@ msgstr "estatua" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." msgstr "tomp." @@ -109414,8 +106446,9 @@ msgstr "maniquí" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." msgstr "" #: lang/json/furniture_from_json.py @@ -109424,7 +106457,9 @@ msgstr "" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." msgstr "" #: lang/json/furniture_from_json.py @@ -109433,7 +106468,9 @@ msgstr "" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to" +" hang up clothes to dry in the sunlight." msgstr "" #: lang/json/furniture_from_json.py @@ -109442,7 +106479,9 @@ msgstr "lámpara de suelo" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." msgstr "" #: lang/json/furniture_from_json.py @@ -109458,13 +106497,29 @@ msgstr "" msgid "A decorative wreath for the winter holidays." msgstr "" +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "" + +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +msgid "crunch." +msgstr "crunch." + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." +msgid "" +"A decorative pine tree littered with ornaments for the winter holidays." msgstr "" #: lang/json/furniture_from_json.py @@ -109473,7 +106528,9 @@ msgstr "planta de interior" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried" +" up and died a while ago." msgstr "" #: lang/json/furniture_from_json.py @@ -109482,8 +106539,10 @@ msgstr "planta amarilla de interior" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." -msgstr "Es una variedad de plantas para decorar. Amarillas." +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." +msgstr "" #: lang/json/furniture_from_json.py msgid "harvestable plant" @@ -109492,15 +106551,10 @@ msgstr "planta cosechable" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to" -" harvest the plant appropriately." +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py -msgid "crunch." -msgstr "crunch." - #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py msgid "whish." @@ -109512,7 +106566,7 @@ msgstr "planta madura" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." +msgid "This plant has matured, and will be ready to harvest before long." msgstr "" #: lang/json/furniture_from_json.py @@ -109522,8 +106576,8 @@ msgstr "semilla" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into " -"destiny." +"A freshly planted seed. If properly tended to, it could grow into a healthy" +" plant." msgstr "" #: lang/json/furniture_from_json.py @@ -109532,7 +106586,7 @@ msgstr "brote" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." +msgid "A seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -109551,22 +106605,34 @@ msgid "planter with harvestable plant" msgstr "" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." msgstr "" #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "" @@ -109574,8 +106640,8 @@ msgstr "" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -109585,8 +106651,8 @@ msgstr "capullo de huevo de araña" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." msgstr "" #: lang/json/furniture_from_json.py @@ -109596,15 +106662,16 @@ msgstr "¡splat!" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're" -" seeing this, you're already too close to it." +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." msgstr "" #: lang/json/furniture_from_json.py @@ -109613,7 +106680,9 @@ msgstr "capullo roto de huevo" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." msgstr "" #. ~ Description for swamp gas @@ -109664,9 +106733,8 @@ msgstr "chimenea" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -109687,7 +106755,8 @@ msgstr "cocina de madera" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." msgstr "" #. ~ Description for brazier @@ -109695,6 +106764,20 @@ msgstr "" msgid "A raised metal dish in which to safely burn things." msgstr "" +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "anillo de fuego" @@ -109843,8 +106926,8 @@ msgstr "flor de marloss" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." msgstr "" #: lang/json/furniture_from_json.py @@ -109855,8 +106938,8 @@ msgstr "puf." #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." +"color has been leached from its petals and stem. It gently sways of its own" +" volition, maintaining an unsettling rhythm." msgstr "" #: lang/json/furniture_from_json.py @@ -109867,7 +106950,7 @@ msgstr "masa fúngica" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." +"soft to the touch, but not firm enough to hold any weight." msgstr "" #: lang/json/furniture_from_json.py @@ -109877,7 +106960,8 @@ msgstr "grumo fúngico" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." msgstr "" #: lang/json/furniture_from_json.py @@ -109901,7 +106985,7 @@ msgstr "escalón de piedra" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." +msgid "A slab of heavy stone, with a reasonably flat surface." msgstr "" #: lang/json/furniture_from_json.py @@ -109910,8 +106994,11 @@ msgstr "lápida" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." -msgstr "Ahí abajo están los cadáveres." +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -109925,8 +107012,11 @@ msgstr "tumba" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." -msgstr "Ahí abajo están los cadáveres. Es elegante." +msgid "" +"An upright slab of stone with information engraved on the face about whoever" +" lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -109934,8 +107024,11 @@ msgstr "tumba desgastada" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." -msgstr "Es una lápida gastada." +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." +msgstr "" #: lang/json/furniture_from_json.py msgid "obelisk" @@ -109943,7 +107036,10 @@ msgstr "obelisco" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." msgstr "" #: lang/json/furniture_from_json.py @@ -109958,7 +107054,8 @@ msgstr "ensamblador robótico" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -109968,8 +107065,8 @@ msgstr "mezclador químico" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." +"A large vat with a motorized mixing device for combining large quantities of" +" chemicals." msgstr "" #: lang/json/furniture_from_json.py @@ -109979,9 +107076,9 @@ msgstr "brazo robótico" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -109996,8 +107093,10 @@ msgstr "" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." +"A surgical apparatus used for installation and removal of bionics. The term" +" name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." msgstr "" #: lang/json/furniture_from_json.py @@ -110018,9 +107117,8 @@ msgstr "" #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost " -"anything." +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." msgstr "" #: lang/json/furniture_from_json.py @@ -110034,9 +107132,8 @@ msgstr "" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the " -"inside." +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." msgstr "" #: lang/json/furniture_from_json.py @@ -110070,9 +107167,9 @@ msgstr "" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow" -" bacteria. This is great for microbiology, but terrible for preserving " -"food." +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." msgstr "" #: lang/json/furniture_from_json.py @@ -110082,9 +107179,10 @@ msgstr "" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running" -" water, you could use those attachments to wash harmful chemicals out of " -"your eyes, or to take a pleasant cold shower in a public place." +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." msgstr "" #: lang/json/furniture_from_json.py @@ -110093,7 +107191,9 @@ msgstr "" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." msgstr "" #: lang/json/furniture_from_json.py @@ -110104,9 +107204,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on" +" their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" #: lang/json/furniture_from_json.py @@ -110117,9 +107217,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." msgstr "" #: lang/json/furniture_from_json.py @@ -110129,10 +107229,11 @@ msgstr "" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other" +" advanced sciences, it's not as useful anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -110142,10 +107243,9 @@ msgstr "" #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." msgstr "" #: lang/json/furniture_from_json.py @@ -110155,8 +107255,8 @@ msgstr "" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." msgstr "" #: lang/json/furniture_from_json.py @@ -110166,9 +107266,8 @@ msgstr "" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of" -" radio-opacity." +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." msgstr "" #: lang/json/furniture_from_json.py @@ -110178,9 +107277,8 @@ msgstr "" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't" -" excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." +"A massive tool used to take NMR images of a patient placed inside, providing" +" invaluable medical insight." msgstr "" #: lang/json/furniture_from_json.py @@ -110190,8 +107288,8 @@ msgstr "" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." msgstr "" #: lang/json/furniture_from_json.py @@ -110201,9 +107299,9 @@ msgstr "" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." msgstr "" #: lang/json/furniture_from_json.py @@ -110213,9 +107311,9 @@ msgstr "" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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." +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." msgstr "" #: lang/json/furniture_from_json.py @@ -110225,9 +107323,9 @@ msgstr "" #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." msgstr "" #: lang/json/furniture_from_json.py @@ -110264,7 +107362,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." +"faint light spills from it." msgstr "" #: lang/json/furniture_from_json.py @@ -110280,7 +107378,7 @@ msgstr "" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." +"even waving gently as though underwater." msgstr "" #: lang/json/furniture_from_json.py @@ -110292,7 +107390,7 @@ msgstr "" msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." msgstr "" @@ -110303,9 +107401,9 @@ msgstr "" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." +"A spine resembling moth antennae juts from the ground, swaying gently in the" +" air. Every so often, a cascade of energy arcs along it and discharges into" +" the ceiling." msgstr "" #: lang/json/furniture_from_json.py @@ -110315,8 +107413,8 @@ msgstr "" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases" -" out of injured vessels." +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." msgstr "" #: lang/json/furniture_from_json.py @@ -110375,8 +107473,9 @@ msgstr "bañera" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The" -" plug is intact, so you could use it to store liquids." +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." msgstr "" #: lang/json/furniture_from_json.py @@ -110393,7 +107492,10 @@ msgstr "ducha" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to" +" imagine wasting that much water." msgstr "" #: lang/json/furniture_from_json.py @@ -110403,7 +107505,8 @@ msgstr "lavabo" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." msgstr "" #: lang/json/furniture_from_json.py @@ -110413,8 +107516,10 @@ msgstr "inodoro" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the " +"cleanest." msgstr "" #: lang/json/furniture_from_json.py @@ -110424,15 +107529,16 @@ msgstr "calentador de agua" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." msgstr "" #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." +"This devices effectively sterilizes water, though without a lot of power and" +" proper plumbing, it's only good for parts now." msgstr "" #: lang/json/furniture_from_json.py @@ -110442,8 +107548,10 @@ msgstr "máquina de ejercicio" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." +"A heavy set of weightlifting equipment for strength training, with a pair of" +" heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." msgstr "" #: lang/json/furniture_from_json.py @@ -110453,9 +107561,9 @@ msgstr "máquina lanzapelotas" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various" -" balls for different types of sports. It's only good for parts now if " -"disassembled." +"A simple machine for launching sports balls of various types, with a pair of" +" motorized wheels that, if spun up, would fling the ball at moderate speeds." +" Probably not the most effective ranged weapon against the undead." msgstr "" #: lang/json/furniture_from_json.py @@ -110464,7 +107572,11 @@ msgstr "mesa de billar" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." msgstr "" #: lang/json/furniture_from_json.py @@ -110473,7 +107585,9 @@ msgstr "podio de salida de natación" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." msgstr "" #: lang/json/furniture_from_json.py @@ -110482,8 +107596,13 @@ msgstr "diana" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." -msgstr "Una diana de metal con una forma aproximada de un humano." +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped" +" off." +msgstr "" #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -110492,9 +107611,8 @@ msgstr "máquina de juego" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." msgstr "" #: lang/json/furniture_from_json.py @@ -110504,9 +107622,10 @@ msgstr "pinball" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't" -" go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While" +" inoperable without power, it's still impressive to look at, though probably" +" more useful if disassembled." msgstr "" #: lang/json/furniture_from_json.py @@ -110516,8 +107635,9 @@ msgstr "ergómetro" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." +"An exercise machine with a set of handles and plates meant to emulate rowing" +" a boat. Without power it can't be operated, but it might have useful parts" +" to be scavanged." msgstr "" #: lang/json/furniture_from_json.py @@ -110527,8 +107647,9 @@ msgstr "cinta para correr" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be" -" taken apart for its… parts." +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." msgstr "" #: lang/json/furniture_from_json.py @@ -110538,8 +107659,9 @@ msgstr "bolsa de boxeo grande" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." msgstr "" #: lang/json/furniture_from_json.py @@ -110553,8 +107675,9 @@ msgstr "piano" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." msgstr "" #: lang/json/furniture_from_json.py @@ -110572,9 +107695,9 @@ msgstr "" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things" -" loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." +"An upright wood-panel case of large speakers, built to produce a potentially" +" deafening volume level. While this is a terrible idea to use now, it could" +" hold useful parts." msgstr "" #: lang/json/furniture_from_json.py @@ -110583,7 +107706,10 @@ msgstr "" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." msgstr "" #: lang/json/furniture_from_json.py @@ -110592,13 +107718,22 @@ msgstr "mesa de ruleta" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." -msgstr "Una gran mesa de ruleta rayada." +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "this should never actually show up, it's a pseudo furniture" +msgstr "" #. ~ Description for this should never actually show up, it's a pseudo #. furniture #: lang/json/furniture_from_json.py -msgid "this should never actually show up, it's a pseudo furniture" +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." msgstr "" #: lang/json/furniture_from_json.py @@ -110607,7 +107742,10 @@ msgstr "" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -110620,7 +107758,10 @@ msgstr "" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." msgstr "" #: lang/json/furniture_from_json.py @@ -110629,7 +107770,9 @@ msgstr "" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." msgstr "" #: lang/json/furniture_from_json.py @@ -110638,8 +107781,11 @@ msgstr "Antena de TV" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." -msgstr "La antena de televisión mejoró la recepción de televisores." +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." +msgstr "" #: lang/json/furniture_from_json.py msgid "vent pipe" @@ -110647,7 +107793,9 @@ msgstr "conducto de ventilación" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." msgstr "" #: lang/json/furniture_from_json.py @@ -110657,7 +107805,9 @@ msgstr "turbina de ventilación de techo" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py msgid "" -"The turbine uses wind power to suck hot and humid air out of the attic." +"A rotary wind turbine that will catch the wind and pull out air from inside." +" It is most commonly used for improving air cicrulation, particularly in " +"poorly-ventilated areas like attics." msgstr "" #: lang/json/furniture_from_json.py @@ -110666,7 +107816,10 @@ msgstr "" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable" +" bed." msgstr "" #: lang/json/furniture_from_json.py @@ -110679,7 +107832,10 @@ msgstr "" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the" +" way." msgstr "" #: lang/json/furniture_from_json.py @@ -110688,7 +107844,9 @@ msgstr "banco" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." msgstr "" #: lang/json/furniture_from_json.py @@ -110697,7 +107855,9 @@ msgstr "sillón" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." msgstr "" #: lang/json/furniture_from_json.py @@ -110706,7 +107866,9 @@ msgstr "" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." msgstr "" #: lang/json/furniture_from_json.py @@ -110714,10 +107876,12 @@ msgid "chair" msgstr "silla" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." -msgstr "Siéntate, toma una bebida." +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat" +" a meal properly and almost pretend that things were normal again." +msgstr "" #: lang/json/furniture_from_json.py msgid "sofa" @@ -110725,16 +107889,29 @@ msgstr "sofá" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." msgstr "" #: lang/json/furniture_from_json.py msgid "stool" msgstr "taburete" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "" + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." msgstr "" #: lang/json/furniture_from_json.py @@ -110744,8 +107921,8 @@ msgstr "" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." msgstr "" #: lang/json/furniture_from_json.py @@ -110755,7 +107932,9 @@ msgstr "" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground," +" it's not particularly comfortable." msgstr "" #: lang/json/furniture_from_json.py @@ -110765,8 +107944,8 @@ msgstr "tablón de anuncios" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." msgstr "" #: lang/json/furniture_from_json.py @@ -110775,7 +107954,9 @@ msgstr "cartel" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." msgstr "" #: lang/json/furniture_from_json.py @@ -110785,11 +107966,9 @@ msgstr "señal de advertencia" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." msgstr "" -"Un letrero en forma de triángulo en un anuncio destinado a indicar algo " -"importante o peligroso." #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "bed" @@ -110798,7 +107977,9 @@ msgstr "cama" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -110807,7 +107988,11 @@ msgstr "" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than" +" you'd like to somebody you wouldn't normally want to share a mattress with," +" a bed's a bed." msgstr "" #: lang/json/furniture_from_json.py @@ -110817,8 +108002,8 @@ msgstr "" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place" -" to sleep. Sleeping on it right now wouldn't be great." +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." msgstr "" #: lang/json/furniture_from_json.py @@ -110828,8 +108013,9 @@ msgstr "whack." #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's" -" not quite as comfy as a real bed, but it's pretty close." +"An ordinary mattress left on the floor. While it's not as comfortable as an" +" entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -110840,9 +108026,10 @@ msgstr "¡rrrrip!" #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty " -"close." +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." msgstr "" #: lang/json/furniture_from_json.py @@ -110851,8 +108038,11 @@ msgstr "cama improvisada" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "No es tan cómoda como una cama verdadera, pero es suficiente." +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal" +" bed, albeit with a slightly lumpy mattress. Considering the circumstances," +" it's not too bad at all." +msgstr "" #: lang/json/furniture_from_json.py msgid "straw bed" @@ -110860,7 +108050,9 @@ msgstr "cama de paja" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." msgstr "" #: lang/json/furniture_from_json.py @@ -110869,7 +108061,9 @@ msgstr "" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -110878,7 +108072,10 @@ msgstr "" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden" +" cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -110887,7 +108084,11 @@ msgstr "ataúd" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will" +" likely never receive." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -110901,8 +108102,10 @@ msgstr "ataúd abierto" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." msgstr "" #: lang/json/furniture_from_json.py @@ -110912,8 +108115,9 @@ msgstr "caja" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." msgstr "" #: lang/json/furniture_from_json.py @@ -110922,14 +108126,19 @@ msgstr "caja abierta" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of" +" nails, could be sealed back shut." msgstr "" #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." +"A large box made of a brown paper-based material. Could contain a number of" +" things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect" +" you if you're found." msgstr "" #: lang/json/furniture_from_json.py @@ -110946,7 +108155,9 @@ msgstr "cómoda" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." msgstr "" #: lang/json/furniture_from_json.py @@ -110955,7 +108166,10 @@ msgstr "" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -110970,7 +108184,11 @@ msgstr "caja fuerte de armas" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." msgstr "" #: lang/json/furniture_from_json.py @@ -110983,7 +108201,10 @@ msgstr "caja fuerte trabada de armas" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." msgstr "" #: lang/json/furniture_from_json.py @@ -110992,8 +108213,12 @@ msgstr "caja fuerte electrónica de armas" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" -msgstr "¿Podrás abrirlo para agarrar las armas?" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking" +" system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." +msgstr "" #: lang/json/furniture_from_json.py msgid "locker" @@ -111001,8 +108226,10 @@ msgstr "armario" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." -msgstr "Comúnmente se utiliza para guardar equipamiento u objetos." +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "mailbox" @@ -111011,12 +108238,10 @@ msgstr "buzón" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come" -" for awhile. Doesn't look like it's coming again anytime soon." +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." msgstr "" -"Una caja de metal unida a la parte superior de un poste de madera. La " -"entrega del correo no ha llegado por un tiempo. Parece que no volverá " -"pronto." #: lang/json/furniture_from_json.py msgid "clothing rail" @@ -111024,7 +108249,10 @@ msgstr "" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes." +" Usually used in theater or retail environments, it's easy to use and quick" +" to access." msgstr "" #: lang/json/furniture_from_json.py @@ -111033,8 +108261,10 @@ msgstr "estante" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." -msgstr "Muestra tus objetos." +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." +msgstr "" #: lang/json/furniture_from_json.py msgid "wooden rack" @@ -111042,7 +108272,9 @@ msgstr "" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." msgstr "" #: lang/json/furniture_from_json.py @@ -111051,7 +108283,9 @@ msgstr "perchero" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." msgstr "" #: lang/json/furniture_from_json.py @@ -111060,8 +108294,12 @@ msgstr "papelera de reciclaje" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." -msgstr "Guarda objetos para su reciclado." +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it." +" While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." +msgstr "" #: lang/json/furniture_from_json.py msgid "safe" @@ -111069,13 +108307,18 @@ msgstr "caja fuerte" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." -msgstr "Para guardar objetos. De manera segura." +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." +msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" -msgstr "¿Qué necesita protección como esta?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "open safe" @@ -111083,8 +108326,10 @@ msgstr "caja fuerte abierta" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" -msgstr "¡Coged las armas!" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." +msgstr "" #: lang/json/furniture_from_json.py msgid "trash can" @@ -111092,7 +108337,10 @@ msgstr "cubo de basura" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." msgstr "" #: lang/json/furniture_from_json.py @@ -111101,7 +108349,10 @@ msgstr "armario" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." msgstr "" #: lang/json/furniture_from_json.py @@ -111111,9 +108362,8 @@ msgstr "fichero" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." msgstr "" #: lang/json/furniture_from_json.py @@ -111122,7 +108372,9 @@ msgstr "" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools" +" and materials for easy access to workers." msgstr "" #: lang/json/furniture_from_json.py @@ -111132,8 +108384,7 @@ msgstr "" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." +"A huge, sturdy steel shelf for storing pallets of crates in warehouses." msgstr "" #: lang/json/furniture_from_json.py @@ -111142,7 +108393,9 @@ msgstr "barril de madera" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." msgstr "" #: lang/json/furniture_from_json.py @@ -111151,7 +108404,10 @@ msgstr "vitrina" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." msgstr "" #: lang/json/furniture_from_json.py @@ -111160,8 +108416,12 @@ msgstr "vitrina rota" #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." -msgstr "Para mostrar tus cosas. Aunque te las van a robar." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Would be useful for storing valuable things while still showing them off, " +"if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." +msgstr "" #: lang/json/furniture_from_json.py msgid "standing tank" @@ -111169,7 +108429,8 @@ msgstr "Tanque vertical" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." msgstr "" #: lang/json/furniture_from_json.py @@ -111178,7 +108439,10 @@ msgstr "contenedor" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." msgstr "" #: lang/json/furniture_from_json.py @@ -111187,7 +108451,9 @@ msgstr "" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." msgstr "" #: lang/json/furniture_from_json.py @@ -111672,7 +108938,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "active smoking rack" -msgstr "" +msgstr "soporte para ahumar activo" #. ~ Description for active smoking rack #: lang/json/furniture_from_json.py @@ -112011,68 +109277,6 @@ msgid "" "inducing aroma." msgstr "" -#: lang/json/furniture_from_json.py -msgid "hydroponics unit" -msgstr "" - -#. ~ Description for hydroponics unit -#: lang/json/furniture_from_json.py -msgid "This is a self-contained hydroponics unit used to grow crops indoors." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seed" -msgstr "" - -#. ~ Description for hydroponics unit with seed -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seed" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seedling" -msgstr "" - -#. ~ Description for hydroponics unit with seedling -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seedling" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with mature plant" -msgstr "" - -#. ~ Description for hydroponics unit with mature plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with harvestable plant" -msgstr "" - -#. ~ Description for hydroponics unit with harvestable plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant that is ready for harvest." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics heater" -msgstr "" - -#. ~ Description for hydroponics heater -#: lang/json/furniture_from_json.py -msgid "This is a self-contained heater, used to warm hydroponics units." -msgstr "" - #: lang/json/furniture_from_json.py msgid "Translocator Gate" msgstr "" @@ -112181,15 +109385,20 @@ msgid "" msgstr "" #: lang/json/furniture_from_json.py -msgid "krash!" +msgid "tank trap" msgstr "" +#. ~ Description for fungal mass #: lang/json/furniture_from_json.py -msgid "krak." -msgstr "crak." +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." +msgstr "" +#. ~ Description for fungal clump #: lang/json/furniture_from_json.py -msgid "tank trap" +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." msgstr "" #. ~ 'close' action message of some gate object. @@ -112355,7 +109564,7 @@ msgstr "" #. ~ 'pull' action message of some gate object. #: lang/json/gates_from_json.py msgid "You activate the security bolt release..." -msgstr "" +msgstr "Activas la apertura de pestillos de seguridad..." #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py @@ -112387,13 +109596,13 @@ msgstr[1] "" msgid "Fake gun that fires acid globs." msgstr "" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item_factory.cpp msgid "auto" msgstr "automático" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "rifle" @@ -112404,6 +109613,70 @@ msgid_plural "acid dart guns" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from" +" a double barrel shotgun." +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 +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "escopeta" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] "rifle de caño: .30-06" +msgstr[1] "rifles de caño: .30-06" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" +" strike the single round it holds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "carabina casera" +msgstr[1] "carabinas caseras" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the" +" better homemade weapons." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] "" +msgstr[1] "" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -112525,9 +109798,7 @@ msgstr "" "siglo XXI. Con poco de cinta adhesiva y partes electrónicas, funciona con un" " UPS normal." -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py -#: lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "pistola" @@ -112636,11 +109907,6 @@ msgstr "único" msgid "double" msgstr "doble" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "escopeta" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -112729,6 +109995,42 @@ msgstr "" "un cañón corto, culata y guarda. Puede ser recargada utilizando un cargador " "extraíble y es un arma muy efectiva." +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "AN-94" +msgstr[1] "AN-94" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" +"Planeado para reemplazar a la AK-74, este rifle utiliza un sofisticado " +"mecanismo para demorar el retroceso, y con ráfaga muy rápida de dos balas. " +"Aunque su complejidad evita que sea adoptado por el ejército ruso, ha sido " +"usado entre sus fuerzas especiales." + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "2 rd." + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "cañón láser de mano" +msgstr[1] "cañones láser de mano" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "" +"Un cañón láser que pertenecía a una torreta láser TX-5LR Cerberus, y que ha " +"sido modificado para usar alimentación de UPS para disparar." + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -113088,6 +110390,21 @@ msgid "" "retains the integral bipod, though." msgstr "" +#: lang/json/gun_from_json.py +msgid "FS2000" +msgid_plural "FS2000s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A sleek bullpup carbine designed by FN Herstal, complete with an integrated " +"sight accessory rail. The forward ejecting action and ambidextrous controls" +" make firing comfortable for both left and right-handed shooting. The whole" +" rifle is well sealed from mud and dust for reliability, but this makes it " +"incompatible with many aftermarket magazines." +msgstr "" + #: lang/json/gun_from_json.py msgid "HK416 A5" msgid_plural "HK416 A5s" @@ -113139,6 +110456,19 @@ msgstr "" msgid "burst" msgstr "" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -113201,18 +110531,6 @@ msgid "" "buttstock." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" -" strike the single round it holds." -msgstr "" - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -113276,19 +110594,6 @@ msgstr "" "Es usado por las fuerzas armadas y policiales de muchos países, y tiene poco" " retroceso y mucha precisión." -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "carabina casera" -msgstr[1] "carabinas caseras" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the" -" better homemade weapons." -msgstr "" - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -113441,12 +110746,6 @@ msgstr "" "francotiradores de SWAT y de la Marina de Estados Unidos. Causa mucho daño, " "pero tal vez no sea tan preciso como su competidor, el Browning BLR." -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] "rifle de caño: .30-06" -msgstr[1] "rifles de caño: .30-06" - #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" msgid_plural "Remington ACR .300BLKs" @@ -113593,17 +110892,15 @@ msgstr "" " el hombro, ya que casi nadie es un héroe de película de acción." #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." msgstr "" #: lang/json/gun_from_json.py @@ -114494,10 +111791,10 @@ msgstr "" "culatazo." #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" -msgstr[0] "subfusil Thompson" -msgstr[1] "subfusiles Thompson" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" +msgstr[0] "" +msgstr[1] "" #: lang/json/gun_from_json.py msgid "" @@ -114536,8 +111833,8 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" msgstr[0] "" msgstr[1] "" @@ -114732,8 +112029,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid ".50 caliber rifle" msgid_plural ".50 caliber rifles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "rifle calibre .50" +msgstr[1] "rifles calibre .50" #: lang/json/gun_from_json.py msgid "" @@ -114836,28 +112133,6 @@ msgstr "" "El sucesor del conocido rifle AK-47. Combina la fiabilidad de la serie de " "AK con el cartucho de alta velocidad ligero de 5.45x39mm." -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "AN-94" -msgstr[1] "AN-94" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" -"Planeado para reemplazar a la AK-74, este rifle utiliza un sofisticado " -"mecanismo para demorar el retroceso, y con ráfaga muy rápida de dos balas. " -"Aunque su complejidad evita que sea adoptado por el ejército ruso, ha sido " -"usado entre sus fuerzas especiales." - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "2 rd." - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -115292,20 +112567,6 @@ msgstr "" " poco ideales, con un caño pesada para tener máxima controlabilidad. Acepta " "cargadores de caja y cargadores de tambor RMGD250." -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "revólver RM99" -msgstr[1] "revólveres RM99" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" -" addition to the arsenal of any gunslinger." -msgstr "" -"Aunque algunos lo consideran una exageración, el Rivtech M99 sigue siendo " -"una adición extremadamente poderosa al arsenal de cualquier pistolero." - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -115821,19 +113082,6 @@ msgstr "" "egocéntricos en África, ahora es usada por los descendientes egocéntricos en" " Nueva Inglaterra." -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from" -" a double barrel shotgun." -msgstr "" - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -116013,6 +113261,19 @@ msgid "" "action means this is much less likely to jam." msgstr "" +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -116414,20 +113675,6 @@ msgid "" "quiet and accurate marksman laser rifle." msgstr "" -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "cañón láser de mano" -msgstr[1] "cañones láser de mano" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "" -"Un cañón láser que pertenecía a una torreta láser TX-5LR Cerberus, y que ha " -"sido modificado para usar alimentación de UPS para disparar." - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" @@ -116667,12 +113914,8 @@ msgstr[1] "" msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." +"hunting small game." msgstr "" -"Es una versión modificada de la ballesta clásica, que te permite utilizar " -"piedras como proyectiles en lugar de los tradicionales pernos. " -"Originalmente, fue pensada para cazar animales pequeños. Las personas con " -"más fuerza pueden recargarla mucho más rápido." #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -116698,13 +113941,9 @@ msgstr[1] "ballestas" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." msgstr "" -"Un arma de mano de recarga lenta que lanza pernos. Las personas con más " -"fuerza pueden recargarla mucho más rápido. Los pernos disparados con esta " -"arma tienen una gran probabilidad de no romperse." #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -116880,9 +114119,9 @@ msgstr[1] "hondas" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." +"A leather sling, can launch rocks much further and faster than throwing them" +" by hand." msgstr "" -"Es una honda de cuero, fácil de usar y precisa. Usa guijarros como munición." #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -116897,11 +114136,9 @@ msgstr[1] "tirachinas" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as " -"ammunition." +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." msgstr "" -"Es un tirachinas de madera, fácil de usar y preciso. Usa guijarros como " -"munición." #: lang/json/gun_from_json.py msgid "staff sling" @@ -116911,8 +114148,8 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." msgstr "" #: lang/json/gun_from_json.py @@ -116923,11 +114160,9 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." msgstr "" -"Un tirachinas moderno con un soporte para la muñeca. Es fácil de usar, " -"preciso y bastante potente." #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -117212,8 +114447,7 @@ msgid "" " mid-range versatility of the 9mm with the power of the 12 gauge shotgun. " "To further compliment the CQB aspect, the stock is built to amplify the " "user's force and the rugged construction with tonfa-like grip can handle " -"bashing in enemy heads. An integrated magazine makes it a pain to reload, " -"but keeps your clip from ejecting accidently." +"bashing in enemy heads." msgstr "" #: lang/json/gun_from_json.py @@ -117268,7 +114502,7 @@ msgid "" "Experimental double purpose tool under development in C.R.I.T R&D. It takes" " a regular nail and then enlongates it within a fraction of a second before " "firing it out, upon reaching a target, the fragile stake explodes into " -"shards." +"shards inside the target." msgstr "" #: lang/json/gun_from_json.py @@ -117395,285 +114629,32 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "SVS-24" -msgid_plural "SVS-24" -msgstr[0] "SVS-24" -msgstr[1] "SVS-24" - -#: lang/json/gun_from_json.py -msgid "" -"The Sarafanov Assault Rifle replaced the famous AK family of guns as the " -"service rifle of the Russian Army. It uses the 6.54x42mm cartridge." -msgstr "" -"El rifle de asalto Sarafanov reemplazó la famosa familia de armas AK como el" -" rifle de servicio del Ejército de Rusia. Utiliza cartuchos 6.54x42mm." - -#: lang/json/gun_from_json.py -msgid "SVS-24C" -msgid_plural "SVS-24C" -msgstr[0] "SVS-24C" -msgstr[1] "SVS-24C" - -#: lang/json/gun_from_json.py -msgid "" -"The compact version of the standard SVS-24. It is commonly issued to tank " -"crews or special forces due to its smaller size. The shorter barrel reduces" -" accuracy." -msgstr "" -"Es la versión compacta del estándar SVS-24. Comúnmente se lo asigna a " -"tripulación de tanque o fuerzas especiales debido a su pequeño tamaño. El " -"cañón corto reduce la precisión." - -#: lang/json/gun_from_json.py -msgid "CW-24" -msgid_plural "CW-24" -msgstr[0] "CW-24" -msgstr[1] "CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It was made by Clearwater Arms, Georgia, " -"for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" -" cartridge." -msgstr "" -"Es una versión civil del SVS-24. Fue hecho por Clearwater Arms, Georgia para" -" el mercado estadounidense. Es semi-automática pura, y dispara el débil " -"cartucho 5.45x39mm." - -#: lang/json/gun_from_json.py -msgid "CW-24M" -msgid_plural "CW-24M" -msgstr[0] "CW-24M" -msgstr[1] "CW-24M" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" -" as the SVS-24." -msgstr "" -"Es una versión civil del SVS-24. Esta dispara el mismo cartucho 6.54x42mm " -"que el SVS-24." - -#: lang/json/gun_from_json.py -msgid "CW-24K" -msgid_plural "CW-24K" -msgstr[0] "CW-24K" -msgstr[1] "CW-24K" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the cheaper, but still " -"powerful, 7.62x39mm cartridge." -msgstr "" -"Es una versión civil del SVS-24. Esta dispara el cartucho 7.62x39mm, que es " -"más barato pero poderoso." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24" -msgid_plural "Modified CW-24" -msgstr[0] "CW-24 Modificada" -msgstr[1] "CW-24 Modificadas" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It has a modified receiver and a new " -"crudely crafted full-auto bolt carrier. Don't expect the original " -"reliability." -msgstr "" -"Es una versión civil del SVS-24. Tiene modificado el receptor y un " -"toscamente fabricado conjunto de cerrojo automático. No esperes la " -"fiabilidad del original." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24M" -msgid_plural "Modified CW-24M" -msgstr[0] "CW-24M Modificada" -msgstr[1] "CW-24M Modificadas" - -#: lang/json/gun_from_json.py -msgid "CWD-63" -msgid_plural "CWD-63" -msgstr[0] "CWD-63" -msgstr[1] "CWD-63" - -#: lang/json/gun_from_json.py -msgid "" -"The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " -"rechambered for the .308 round." -msgstr "" -"Es la versión de Clearwater Arms del famoso SVD-63 Dragunov. Esta está " -"modificada para usar las balas .308." - -#: lang/json/gun_from_json.py -msgid "Wrist DREAD" -msgid_plural "Wrist DREAD" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"The miniaturized version of the DREAD MkIX attached to the wrist of the " -"operator. It fires .20 metal pellets at an incredible rate without any " -"flash or noise. It is mainly a defensive weapon." -msgstr "" -"Es la versión miniatura del DREAD MkIX que se pone en la muñeca del " -"operador. Dispara perdigones de metal de .20 a una velocidad increíble sin " -"siquiera hacer luz o ruido. Es más que nada un arma defensiva." - -#: lang/json/gun_from_json.py -msgid "JHEC M128" -msgid_plural "JHEC M128s" -msgstr[0] "JHEC M128" -msgstr[1] "JHEC M128" - -#: lang/json/gun_from_json.py -msgid "" -"The Johnson Heavy Equipment Co. M128 autorevolver; all others fail to " -"measure up. Johnson Heavy Equipment Co. is a subsidiary of D&B " -"Minneapolis." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "Boomlighter 454" -msgid_plural "Boomlighter 454s" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"Handmade by master gunsmiths at D&B Minneapolis, this deadly accurate and " -"powerful pistol packs a punch with precision, power and flair. Comes with a" -" one of a kind integrated flamethrower." -msgstr "" -"Hecho a mano por maestros armeros en D&B Minneapolis, esta pistola mortal, " -"precisa y potente va a pegar con precisión, potencia y estilo. Viene con un " -"tipo de lanzallamas integrado." - -#: lang/json/gun_from_json.py -msgid "gunsword" -msgid_plural "gunswords" -msgstr[0] "espadarma" -msgstr[1] "espadarmas" - -#: lang/json/gun_from_json.py -msgid "" -"A long sharp blade, with two powerful .500 S&W Magnum chambers in the hilt." -" While chambering big rounds, the barrels are so short it slightly reduces " -"outgoing damage." -msgstr "" -"Una cuchilla larga y afilada, con dos poderosas recámaras de .500 S&W Magnum" -" en la empuñadura. Aunque las recámaras son para balas grandes, los cañones " -"son tan cortos que reduce levemente el daño causado." - -#: lang/json/gun_from_json.py -msgid "gunknife" -msgid_plural "gunknives" -msgstr[0] "pistolanavaja" -msgstr[1] "pistolanavajas" - -#: lang/json/gun_from_json.py -msgid "" -"A short but sharp blade, with two powerful .500 S&W Magnum chambers in the " -"grip. While chambering big rounds, the barrels are so short it slightly " -"reduces outgoing damage." -msgstr "" -"Una cuchilla corta pero afilada, con dos poderosas recámaras de .500 S&W " -"Magnum en la empuñadura. Aunque las recámaras son para balas grandes, los " -"cañones son tan cortos que reduce levemente el daño causado." - -#: lang/json/gun_from_json.py -msgid "FiveO handcannon" -msgid_plural "FiveO handcannons" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"Someone crazy thought that the .50 BMG belonged in a pistol. This massive " -"piece of steel proves otherwise. The sheer bulk however does make it quite " -"adept at smashing face." -msgstr "" -"Algún loco pensó que el .50 BMG vendría bien en una pistola. Esta masiva " -"pieza de acero demuestra lo contrario. Sin embargo, el mamotreto es bastante" -" útil para aplastar caras." - -#: lang/json/gun_from_json.py -msgid "M919" -msgid_plural "M919s" -msgstr[0] "M919" -msgstr[1] "M919s" - -#: lang/json/gun_from_json.py -msgid "" -"Manufactured by Sarah and Suhl machine company of Portland, Maine, the M919 " -"submachine gun is the most accurate 9x19mm submachine gun on the market. " -"Intended for police use, it is fitted with an integral grenade launcher." -msgstr "" -"Construido por la compañía Sarah and Suhl de Portland, Maine, el subfusil " -"M919 es la más precisa 9x19mm del mercado. Pensada para ser utilizada por la" -" policía, posee un lanzagranadas integrado." - -#: lang/json/gun_from_json.py -msgid "Eagle 1776" -msgid_plural "Eagle 1776" +msgid "pipe rifle" +msgid_plural "pipe rifles" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"You see before you a marvel of American engineering: a powerful .44 Magnum " -"submachine gun, made from fine parts assembled in America, including an " -"integral grenade launcher. Eagle 1776: From the arsenal of freedom!" +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." msgstr "" -"Contempla esta maravilla de la ingeniería americana: un potente Magnum " -"subfusil de calibre .44, hecho de finas piezas ensambladas en América, " -"incluyendo un lanzagranadas integrado. Eagle 1776: ¡Del arsenal de la " -"libertad!" #: lang/json/gun_from_json.py -msgid "L.T. carbine" -msgid_plural "L.T. carbines" +msgid "survivor carbine" +msgid_plural "survivor carbines" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py msgid "" -"The Lightning Trail carbine was developed for the riot police to quickly " -"blanket an area with lightning clouds. While damaging, it is less lethal " -"than live ammunition." -msgstr "" -"La carabina con luz trazante fue desarrollada para la policía " -"antidisturbios, para poder cubrir rápidamente el área con nubes de rayos. " -"Aunque hace daño, es menos letal que la munición normal." - -#: lang/json/gun_from_json.py -msgid "arc cannon" -msgid_plural "arc cannons" -msgstr[0] "cañón de arco" -msgstr[1] "cañones de arco" - -#: lang/json/gun_from_json.py -msgid "" -"The arc cannon fires bolts of lightning arcing between targets in close " -"proximity to each other. Originally manufactured to fry insects, now it’s " -"been turned up to fry zombies." -msgstr "" -"El cañón de arco dispara rayos de luz en arco, que van entre los objetivos " -"que están próximos entre sí. Originalmente, fue construido para freír " -"insectos, ahora sirve para freír zombis." - -#: lang/json/gun_from_json.py -msgid "M1911 DS" -msgid_plural "M1911 DSs" -msgstr[0] "M1911 DS" -msgstr[1] "M1911 DS" - -#: lang/json/gun_from_json.py -msgid "" -"The M1911 Darkstalker is a very modified M1911, it has a fully integrated " -"crossbow and added rails. Professional looking with a ebony black finish, " -"laced with lime green details. Now they will know why they fear the night." -" Bat hood sold separately." +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than" +" ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." msgstr "" #: lang/json/gun_from_json.py @@ -118033,35 +115014,6 @@ msgid "" "to reload." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than" -" ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -118124,8 +115076,8 @@ msgstr "" #: lang/json/gun_from_json.py msgid "heavy machine gun" msgid_plural "heavy machine guns" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "subfusil pesado" +msgstr[1] "subfusiles pesados" #: lang/json/gun_from_json.py msgid "" @@ -118302,145 +115254,6 @@ msgstr "" msgid "Fake gun that fires barbed javelins." msgstr "" -#: lang/json/gun_from_json.py -msgid "fire lance" -msgid_plural "fire lances" -msgstr[0] "lanza de fuego" -msgstr[1] "lanzas de fuego" - -#: lang/json/gun_from_json.py -msgid "" -"An ancient Chinese spear, with a small tube attached for a charge of " -"gunpowder. While it has an extremely short range, it gives a powerful edge " -"in close combat." -msgstr "" -"Una antigua lanza china, con un pequeño tubo agregado para cargarle pólvora." -" Aunque tiene un alcance extremadamente corto, aporta una ventaja poderosa " -"en el combate de cerca." - -#: lang/json/gun_from_json.py -msgctxt "gun_type_type" -msgid "melee" -msgstr "cuerpo a cuerpo" - -#: lang/json/gun_from_json.py -msgid "base robogun" -msgid_plural "base roboguns" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"This is a pseudo item for monster attacks. If you see this, it's a bug." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "integral 12 gauge shotgun" -msgid_plural "integral 12 gauge shotguns" -msgstr[0] "escopeta 12 gauge integral" -msgstr[1] "escopetas 12 gauge integrales" - -#: lang/json/gun_from_json.py -msgid "integral 50 caliber machinegun" -msgid_plural "integral 50 caliber machineguns" -msgstr[0] "ametralladora calibre 50 integral" -msgstr[1] "ametralladoras calibre 50 integrales" - -#: lang/json/gun_from_json.py -msgid "integral needle gun" -msgid_plural "integral needle guns" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "integral 8mm firearm" -msgid_plural "integral 8mm firearms" -msgstr[0] "arma 8mm integral" -msgstr[1] "armas 8mm integrales" - -#: lang/json/gun_from_json.py -msgid "integral laser emitter" -msgid_plural "integral laser emitters" -msgstr[0] "emisor láser integral" -msgstr[1] "emisores láser integrales" - -#: lang/json/gun_from_json.py -msgid "integral railgun" -msgid_plural "integral railguns" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "integral lightning caster" -msgid_plural "integral lightning casters" -msgstr[0] "lanza-rayos integral" -msgstr[1] "lanza-rayos integrales" - -#: lang/json/gun_from_json.py -msgid "integral EMP generator" -msgid_plural "integral EMP generators" -msgstr[0] "generador PEM integral" -msgstr[1] "generadores PEM integrales" - -#: lang/json/gun_from_json.py -msgid "atlatl" -msgid_plural "atlatls" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A wooden tool for supporting a javelin, to throw it more effectively than by" -" hand." -msgstr "" -"Es una herramienta de madera para apoyar una jabalina, y lanzarla de manera " -"más eficaz que con la mano." - -#: lang/json/gun_from_json.py -msgid "makeshift crossbow" -msgid_plural "makeshift crossbows" -msgstr[0] "ballesta improvisada" -msgstr[1] "ballestas improvisadas" - -#: lang/json/gun_from_json.py -msgid "" -"A simple, handmade crossbow of the Skane style, with a wooden peg that is " -"pushed up from underneath to loose the bowstring. Not as powerful as other " -"crossbow designs, but it is easier to draw the bow back. Bolts fired from " -"this weapon have a good chance of remaining intact for re-use." -msgstr "" -"Es una ballesta simple, hecha a mano, del estilo Skane, con una clavija de " -"madera que es empujada desde abajo para soltar la cuerda. No es tan poderosa" -" como otros diseños de ballesta, pero es fácil de cargar. Los pernos " -"disparados con esta arma tienen una gran probabilidad de no romperse." - -#: lang/json/gun_from_json.py -msgid "" -"This is a replica of the bow possessed by Odin, Ichaival, which is rumored " -"to fire 10 arrows with every pull of the string. It has gold and silver " -"ornaments on it." -msgstr "" -"Es una réplica del arco que pertenecía a Odín, Ichaival. Un rumor dice que " -"dispara 10 flechas por cada vez que se usa. Tiene adornos de oro y plata." - -#: lang/json/gun_from_json.py -msgid "integral nailgun" -msgid_plural "integral nailguns" -msgstr[0] "pistola de clavos integral" -msgstr[1] "pistolas de clavos integrales" - -#: lang/json/gun_from_json.py -msgid "mounted crossbow" -msgid_plural "mounted crossbows" -msgstr[0] "ballesta montada" -msgstr[1] "ballestas montadas" - -#: lang/json/gun_from_json.py -msgid "Vortical plasma beam" -msgid_plural "Vortical plasma beams" -msgstr[0] "" -msgstr[1] "" - #: lang/json/gun_from_json.py msgid "TEST compound bow" msgid_plural "TEST compound bows" @@ -118448,625 +115261,32 @@ msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py -msgid "30mm autocannon" -msgid_plural "30mm autocannons" -msgstr[0] "cañón automático 30mm" -msgstr[1] "cañones automáticos 30mm" - -#: lang/json/gun_from_json.py -msgid "" -"A chain-driven autocannon chambered in 30x113mm, originally designed for " -"aircraft use, but later adapted for armored vehicles. Obviously it needs to" -" be mounted on a vehicle to fire." -msgstr "" -"Es un cañón automático con cadena de transmisión, con calibre 30x113mm, " -"originalmente diseñado para usar en aviones, pero luego adaptado para " -"vehículos blindados. Obviamente, necesita estar montado en un vehículo para " -"ser disparado." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "120mm tank gun" -msgid_plural "120mm tank guns" -msgstr[0] "arma 120mm de tanque" -msgstr[1] "armas 120mm de tanque" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " -"to fire." -msgstr "" -"Un cañón 120mm de un tanque. Obviamente, necesita ser montado en un vehículo" -" para ser disparado." - -#: lang/json/gun_from_json.py -msgid "120mm autoloading tank gun" -msgid_plural "120mm autoloading tank guns" -msgstr[0] "arma autocargadora 120mm de tanque" -msgstr[1] "armas autocargadoras 120mm de tanque" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"Un cañón 120mm de un tanque, con un autocargador de 5 balas. Obviamente, " -"necesita ser montado en un vehículo para ser disparado." - -#: lang/json/gun_from_json.py -msgid "120mm remote weapon system" -msgid_plural "120mm remote weapon systems" -msgstr[0] "sistema remoto de arma 120mm" -msgstr[1] "sistemas remotos de arma 120mm" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon with an advanced autoloader, designed to operate via remote " -"control. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"Un cañón 120mm con un autocargador avanzado, diseñado para ser operado a " -"través de un control remoto. Obviamente, necesita ser montado en un vehículo" -" para ser disparado." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "155mm howitzer" -msgid_plural "155mm howitzers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"Un cañón 155mm diseñado para artillería y tanques pesados. Obviamente, " -"necesita ser montado en un vehículo para ser disparado." - -#: lang/json/gun_from_json.py -msgid "Vehicular ATGM Launcher" -msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "lanzador vehicular ATGM" -msgstr[1] "lanzadores vehiculares ATGM" - -#: lang/json/gun_from_json.py -msgid "" -"A launcher for anti-tank guided missiles. While highly accurate, it isn't " -"fire-and-forget. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"Es un lanzador de misiles anti-tanque guiados. Aunque es muy preciso, no es " -"cuestión de un disparo y listo. Obviamente, necesita ser montado en un " -"vehículo para ser disparado." - -#: lang/json/gun_from_json.py -msgid "slingshot cannon" -msgid_plural "slingshot cannons" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"Essentially several long drawstrings held by two long, reinforced sides and " -"a mechanism attached to a crank to draw and fire it. It's deceptively " -"powerful and surprisingly accurate, but far too large to be used without " -"some sort of stable platform." -msgstr "" -"En esencia, son varias cuerdas elásticas sostenidas por dos costados " -"reforzados y un mecanismo conectado a una palanca para tensar el cañón y " -"disparar. Es engañosamente poderoso y sorpresivamente preciso, pero " -"demasiado grande para ser utilizado sin alguna clase de plataforma estable." - -#: lang/json/gun_from_json.py -msgid "lacerator" -msgid_plural "lacerators" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"This weapon launches serrated metal disks at nearby enemies. It draws its " -"power from a vehicle's engines, and thus must be mounted on such in order to" -" be operated." -msgstr "" -"Este arma lanza discos dentados de metal a sus enemigos cercanos. Usa la " -"energía del motor de un vehículo, y por eso debe ser montado en uno para " -"poder ser usada." - -#: lang/json/gun_from_json.py -msgid "rotary cannon" -msgid_plural "rotary cannons" -msgstr[0] "cañón rotatorio" -msgstr[1] "cañones rotatorios" - -#: lang/json/gun_from_json.py -msgid "" -"This fearsome weapon sports 3 barrels in a cyclic configuration. A " -"specialized mechanism loads the otherwise troublesome rounds; allowing it to" -" be fired in quick succession. However, this renders it incredibly " -"unwieldy, and it must be mounted on a support structure in order to be " -"fired." -msgstr "" -"Esta imponente arma tiene 3 cañones en configuración cíclica. Un mecanismo " -"especializado carga la munición sin problemas, lo que le permite disparar en" -" secuencias rápidas. Sin embargo, esto la vuelve increíblemente incómoda, y " -"tiene que estar montada en una estructura de soporte para ser disparada." - -#: lang/json/gun_from_json.py -msgid "laser cannon" -msgid_plural "laser cannons" -msgstr[0] "cañón láser" -msgstr[1] "cañones láser" - -#: lang/json/gun_from_json.py -msgid "" -"This enhanced laser cannon sacrifices efficiency for destructive power. The" -" increased power requirements require a significant power source and the " -"size of the firing mechanism also requires support." -msgstr "" -"Este cañón láser mejorado sacrifica la eficiencia por poder destructivo. El " -"poder mejorado requiere de una fuente significativa de energía , y el tamaño" -" del mecanismo de disparo requiere de un soporte." - -#: lang/json/gun_from_json.py -msgid "pulse laser" -msgid_plural "pulse lasers" -msgstr[0] "láser de pulso" -msgstr[1] "lásers de pulso" - -#: lang/json/gun_from_json.py -msgid "" -"Augmented damage capability and rapid bursts make this a powerful weapon. " -"The increased power requirements require a significant power source and the " -"firing mechanism also requires a specialized chassis." -msgstr "" -"La capacidad aumentada de daño y las ráfagas rápidas la hacen una poderosa " -"arma. El poder mejorado requiere de una fuente significativa de energía, y " -"el tamaño del mecanismo de disparo requiere de un chasis especial." - -#: lang/json/gun_from_json.py -msgid "turbolaser cannon" -msgid_plural "turbolaser cannons" -msgstr[0] "cañón turboláser" -msgstr[1] "cañones turboláser" - -#: lang/json/gun_from_json.py -msgid "" -"With an augmented emitter and capacitor, this mounted laser is capable of " -"superheating most materials to the point of exploding. The firing mechanism" -" also requires the services of a specialized chassis, and one must be wary " -"of the prodigious power needs of such a weapon." -msgstr "" -"Con emisor y condensador aumentados, este láser montado es capaz de " -"supercalentar la mayoría de los materiales al punto de explotarlos. El " -"mecanismo de disparo requiere los servicios de un chasis especial, y hay que" -" tener cuidado con la prodigiosa energía que necesitan estas armas." - -#: lang/json/gun_from_json.py -msgid "ripper" -msgid_plural "rippers" -msgstr[0] "destripador" -msgstr[1] "destripadores" - -#: lang/json/gun_from_json.py -msgid "" -"This menacing weapon rapidly launches bladed disks that rips through enemies" -" with devastating effect. It draws its power from a vehicle's engines, and " -"thus must be mounted on such in order to be operated." -msgstr "" -"Este amenazante arma lanza rápidamente discos con cuchillas que destrozan a " -"los enemigos con un efecto devastador. Se alimenta con la energía del motor " -"del vehículo, y por eso necesita estar montada para funcionar." - -#: lang/json/gun_from_json.py -msgid "scorpion ballista" -msgid_plural "scorpion ballistae" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A massive tension-operated crossbow. The hand-crank allows one to draw it " -"without the need for heavy labor. It's far too massive to be used on foot, " -"and thus needs to be mounted on a vehicle in order to be operated." -msgstr "" -"Es una masiva ballesta que funciona por tensión. La palanca te permite " -"tensarla sin mucho esfuerzo. Es demasiado grande como para usarla a pie, y " -"por eso necesita estar montada en un vehículo para poder ser usada." - -#: lang/json/gun_from_json.py -msgid "harpoon gun" -msgid_plural "harpoon guns" -msgstr[0] "arma de arpón" -msgstr[1] "armas de arpón" - -#: lang/json/gun_from_json.py -msgid "" -"A tension-operated speargun. A hand-crank lets one draw the strings " -"quickly, but it's too unwieldy to handle without a support of some sort." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "tesla cannon" -msgid_plural "tesla cannons" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"This alteration of the Chain Lightning bionic fires artificial lightning " -"bolts that arc to nearby enemies. It must be attached to a large power " -"source, but it allows for much more powerful bolts." -msgstr "" -"Es una modificación al biónico de Rayos en Cadena. Dispara un rayo " -"artificial que se mueve trazando un arco entre los enemigos cercanos. Debe " -"ser conectado a una fuente grande de energía, pero permite hacer descargas " -"mucho más poderosas." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "biting blob" -msgid_plural "biting blobs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. It has evolved the ability to constantly " -"generate calcified protrusions which are then controlled by sinuous tensile " -"strands. These \"teeth\" can then be used to latch and wound anything " -"unfortunate enough to be nearby. The outer membrane has also become " -"significantly thicker in order to support its more strenuous movement; " -"though it seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel shooter" -msgid_plural "gel shooters" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It trawls the ground for " -"material, which it then strips of nutrition. The remainder is then expelled" -" out at significant velocity towards any nearby threats. The amorphous mass" -" can be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "frost lancer" -msgid_plural "frost lancers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A biological aberration " -"that exists at sub-zero temperatures. After filtering nutrients from the " -"water, it freezes the remainder into an incredibly sharp spear of ice; which" -" it then launches at nearby threats. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "snapping ooze" -msgid_plural "snapping oozes" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A baffling mutation in an " -"already baffling creature, this blob is encased in a thick coat of fur, " -"which serves as a form of protection. In addition, it is capable of " -"projecting rows of calcified sharp fragments in a manner mimicking the jaw " -"of a more recognizable creature. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma. " -"Una mutación incomprensible sucedida a una criatura ya de por sí " -"incomprensible. Este monstruo masa amorfa gelatinosa está cubierto por una " -"piel gruesa, que le sirve de protección. Además, tiene unas filas salientes " -"de fragmentos calcáreas afilados que parecen las mandíbulas de alguna " -"criatura más reconocible. Puede dársele forma a la masa amorfa y adaptado a " -"tu tacto, pero el arma en sí misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "blobsaw" -msgid_plural "blobsaws" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. While its simpler cousins have a limit to " -"the number of keratinous protrusions they can project and control; this blob" -" can utilize hundreds of these sharp fangs to shred anything it detects as a" -" threat into unrecognizable ribbons. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma; " -"hecho para ser puesto sobre un armazón como una barrera. Mientras que sus " -"primos tienen un número limitado de protuberancias queratinosas, pueden " -"controlarlas; este monstruo masa amorfa gelatinosa puede usar cientos de " -"estos colmillos afilados para destrozar en pedacitos irreconocibles " -"cualquier cosa que detecte como una amenaza. Puede dársele forma a esta masa" -" amorfa y adaptada a tu tacto, pero el arma en sí misma está inerte si no es" -" controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fuel puffer" -msgid_plural "fuel puffers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digestion process turns the " -"result incredibly viscous which, when threats come near, is launched; " -"ensnaring anything it hits. The amorphous mass can be shaped and attached " -"at your touch, but the weapon itself is inert without something to control " -"it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma. " -"Es bastante exigente para comer, se alimenta de los químicos que tiene la " -"gasolina. El proceso digestivo produce un resultado increíblemente viscoso " -"que cuando se siente amenazado, es lanzado, atrapando lo que toque. Puede " -"dársele forma a la masa amorfa y adaptado a tu tacto, pero el arma en sí " -"misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "acid puffer" -msgid_plural "acid puffers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, the " -"digestion process produces highly acidic byproducts; which is then expelled " -"at any nearby enemies. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma. " -"Es como un filtro, en el proceso digestivo produce derivados muy ácidos que " -"son lanzados a los enemigos cercanos. Puede dársele forma a la masa amorfa y" -" adaptado a tu tacto, pero el arma en sí misma está inerte si no es " -"controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spiker" -msgid_plural "gel spikers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Capable of calcifying large" -" numbers of fang-like fragments within itself. It hurls groups of these " -"fragments along with a small portion of itself. When it reaches its " -"destination, the detached remains shoot these fragments in all directions, " -"expiring in the process. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma. " -"Es capaz de calcificar grandes cantidades de fragmentos similares a " -"colmillos dentro de sí mismo. Puede lanzar algunos de esos colmillos con " -"partes de su cuerpo. Cuando alcanzan su destino, los pedazos que quedan " -"largan estos fragmentos hacia todos lados. Puede dársele forma a la masa " -"amorfa y adaptado a tu tacto, pero el arma en sí misma está inerte si no es " -"controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spouter" -msgid_plural "gel spouters" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It can suck in water from a" -" vehicle tank, and forcibly expel it in a wide cone. The amorphous mass can" -" be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel lancer" -msgid_plural "gel lancers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Evolving incredible " -"abilities of perception, it is capable of locating and discerning possible " -"threats within a large radius. When a potential threat is located, it fires" -" a small, calcified projectile with incredible speed and accuracy. The " -"amorphous mass can be shaped and attached at your touch, but the weapon " -"itself is inert without something to control it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma. " -"Desarrolló habilidades increíbles de percepción y es capaz de localizar y " -"percibir las posibles amenazas en un radio grande. Cuando encuentra una " -"amenaza, lanza un proyectil pequeño calcificado a una velocidad y precisión " -"increíbles. Puede dársele forma a la masa amorfa y adaptado a tu tacto, pero" -" el arma en sí misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel razor" -msgid_plural "gel razors" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. An enhanced metabolism " -"allows it to calcify large, toothy discs which are then launched towards any" -" nearby threats. The amorphous mass can be shaped and attached at your " -"touch, but the weapon itself is inert without something to control it." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock bulb" -msgid_plural "shock bulbs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Shockingly, it somehow is " -"able to project electricity, which it then discharges at any nearby threats." -" The amorphous mass can be shaped and attached at your touch, but the " -"weapon itself is inert without something to control it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma. " -"Sorprendentemente, de alguna manera es capaz de proyectar electricidad que " -"luego descarga hacia las amenazas cercanas. Puede dársele forma a la masa " -"amorfa y adaptado a tu tacto, pero el arma en sí misma está inerte si no es " -"controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel puffer" -msgid_plural "gel puffers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, it strips " -"any water it processes of nutrients and expels the remainder towards any " -"nearby threats. The process of filter-feeding also makes the remaining " -"liquid viscous, though it also dissipates fairly quickly. The amorphous " -"mass can be shaped and attached at your touch, but the weapon itself is " -"inert without something to control it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma. " -"Es como un filtro, le quita los nutrientes al agua que procesa y expulsa lo " -"que queda hacia las amenazas. El proceso de filtrado y alimentación también " -"vuelve viscoso el líquido resultante, aunque se disipa rápidamente. Puede " -"dársele forma a la masa amorfa y adaptado a tu tacto, pero el arma en sí " -"misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fire puffer" -msgid_plural "fire puffers" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digested material is still " -"highly flammable, and when launched, also activates an ignition gland " -"located on the outer membrane. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Es un monstruo masa amorfa gelatinosa vivo convertido en un arma autónoma. " -"Es bastante exigente para comer, se alimenta de los químicos que tiene la " -"gasolina. El material digerido es altamente inflamable y cuando es lanzado, " -"también activa una glándula de ignición localizada en la membrana exterior. " -"Puede dársele forma a la masa amorfa y adaptado a tu tacto, pero el arma en " -"sí misma está inerte si no es controlada." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "spark blight" -msgid_plural "spark blights" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It is capable of storing " -"energy from sunlight inside itself in the form of electricity. Then, in a " -"truly baffling show of force, projects a highly concentrated stream of " -"electricity towards any possible threats. The amorphous mass can be shaped " -"and attached at your touch, but the weapon itself is inert without something" -" to control it." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond lance" -msgid_plural "diamond lances" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst; thus a pre-" -"shaped lump of carbon is brought into contact with the matrix, immediately " -"crystallized and launched just as quickly. The launcher requires a " -"specialized chassis in order to be brought to bear on its unfortunate " -"targets." -msgstr "" -"Es un arma tan letal como deslumbrante. La matriz de diamante del centro de " -"esta arma funciona como catalizador, cambiando rápidamente los materiales " -"carbónicos en una sustancia cristalina que es casi igual al diamante en su " -"dureza. La sustancia se degrada rápidamente cuando es separada del " -"catalizador, por eso cuando un pedazo de carbón es puesto en contacto con la" -" matriz, inmediatamente cristalizado y lanzado también velozmente. El " -"lanzador necesita un chasis especial para poder ser usado contra sus pobres " -"objetivos." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond nova" -msgid_plural "diamond novae" +msgid "Test Glock" +msgid_plural "Test Glocks" msgstr[0] "" msgstr[1] "" #: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst, and at sizes " -"as large as the projectile used, also rapidly decays when in contact with " -"other matter. Thus the projectile is held and launched by the use of " -"pressurized air from a vortex stone. Upon striking its target, the " -"projectile undergoes explosive decomposition; shattering into a brilliant " -"burst of diamond fragments." +msgid "A handgun for testing, based on the Glock 9mm." msgstr "" -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex accelerator" -msgid_plural "vortex accelerators" +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" msgstr[0] "" msgstr[1] "" -#: lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py msgid "" -"This weapon uses powerful bursts of air to launch sharp fragments at its " -"target at high speed. You'll need some form of platform to mount it on." +"The integrated underbarrel shotgun of a pipe combination gun which holds two" +" shots. It's irremovable." msgstr "" -"Este arma utiliza poderosas ráfagas de aire para lanzar fragmentos afilados " -"hacia sus objetivos, a mucha velocidad. Vas a necesitar alguna clase de " -"plataforma para montarla." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex cannon" -msgid_plural "vortex cannons" -msgstr[0] "" -msgstr[1] "" +"Es una escopeta integrada bajo cañón de un arma combinada de tubo que solo " +"tiene dos disparos. No se puede quitar." -#: lang/json/gun_from_json.py -msgid "" -"Essentially a large pneumatic gun made to hurl sharpened metal rails. " -"Instead of a mechanical system, you've managed to harness the vortex to " -"power this gun. While powerful for its size, you'll need some form of " -"platform to mount it on." -msgstr "" -"Es en esencia una gran arma neumática fabricada para lanzar barras de metal " -"afiladas. En lugar del sistema mecánica, lograste poner el vórtice para " -"alimentar esta arma. Aunque es poderosa para su tamaño, vas a necesitar " -"alguna clase de plataforma para montarla." +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "bajocañón" #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -119351,10 +115571,6 @@ msgstr "" "Este lanzallamas miniatura está hecho para ser adjuntado a casi cualquier " "tipo de arma de fuego, lo que aumenta mucho su capacidad letal." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "bajocañón" - #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" @@ -119731,6 +115947,21 @@ msgid "" "slightly." msgstr "" +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -120342,8 +116573,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "telescopic sight" msgid_plural "telescopic sights" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "mira telescópica" +msgstr[1] "miras telescópicas" #: lang/json/gunmod_from_json.py msgid "" @@ -120508,18 +116739,22 @@ msgstr "" " disparos. No se puede quitar." #: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" +msgid "factory handguard" +msgid_plural "factory handguards" msgstr[0] "" msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two" -" shots. It's irremovable." +"A removable molded grip that comes standard on guns without rails. It's not" +" as efficient as a proper forward grip or bipod at controlling recoil, but " +"it's better than nothing." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "fs2000" msgstr "" -"Es una escopeta integrada bajo cañón de un arma combinada de tubo que solo " -"tiene dos disparos. No se puede quitar." #: lang/json/gunmod_from_json.py msgid "forward grip" @@ -120552,8 +116787,8 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "integrated bayonet" msgid_plural "integrated bayonets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "bayoneta integrada" +msgstr[1] "bayonetas integradas" #: lang/json/gunmod_from_json.py msgid "This is the bayonet integrated in the firearm." @@ -120967,92 +117202,6 @@ msgid "" "powerful, but good enough for tight hallways." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "5.45 caliber conversion kit" -msgid_plural "5.45 caliber conversion kits" -msgstr[0] "kit de conversión del calibre 5.45" -msgstr[1] "kits de conversión del calibre 5.45" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " -"results in slight reductions to recoil." -msgstr "" -"Este equipo es usado para convertir el calibre 6.54 de rifle al 5.45. Esta " -"conversión reduce un poco el retroceso." - -#: lang/json/gunmod_from_json.py -msgid "6.54 caliber conversion kit" -msgid_plural "6.54 caliber conversion kits" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Este equipo es usado para convertir el calibre 5.45 de rifle al 6.54. Esta " -"conversión incrementa el retroceso." - -#: lang/json/gunmod_from_json.py -msgid "7.62 caliber conversion kit" -msgid_plural "7.62 caliber conversion kits" -msgstr[0] "conversivo a calibre 7.62" -msgstr[1] "conversivos a calibre 7.62" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Este equipo es usado para convertir el calibre 6.54 de rifle al 7.62. Esta " -"conversión incrementa el retroceso." - -#: lang/json/gunmod_from_json.py -msgid "Flaregun conversion kit" -msgid_plural "Flaregun conversion kits" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"Replacing several key parts flaregun to convert it to a .40 firearm. The " -"conversion results in reduced accuracy and increased recoil." -msgstr "" -"Reemplazando varias partes fundamentales de una pistola de bengalas, la " -"convierte en un arma .40. Esta conversión reduce la precisión e incrementa " -"el retroceso." - -#: lang/json/gunmod_from_json.py -msgid "" -"This genuine Herostratus flamethrower is ideal for light brush clearing and " -"self-defense." -msgstr "" -"Este auténtico lanzallamas Herostratus es ideal para quemar hierbajos y para" -" autodefenderse." - -#: lang/json/gunmod_from_json.py -msgid "E.M.A.S." -msgid_plural "E.M.A.S.s" -msgstr[0] "E.M.A.S." -msgstr[1] "E.M.A.S." - -#: lang/json/gunmod_from_json.py -msgid "" -"ElectroMagnetic Acceleration System is an array of electromagnets attached " -"to the front of the barrel, accelerating any projectile fired to even higher" -" velocities, increasing damage, recoil and reducing accuracy. It does " -"however drain UPS charges when firing and due to extensive modifications the" -" gun can no longer operate without a UPS." -msgstr "" -"El Sistema de Aceleración ElectroMagnética es un conjunto de electromagnetos" -" adjuntados a la parte frontal del cañón, lo que acelera cualquier proyectil" -" disparado a velocidades mayores, incrementando el daño, el retroceso y " -"reduciendo la precisión. Sin embargo, utiliza cargas de UPS cuando se " -"dispara y debido a las modificaciones extensivas, el arma ya no puede usarse" -" sin un UPS." - #: lang/json/gunmod_from_json.py msgid "underbarrel launcher" msgid_plural "underbarrel launchers" @@ -121151,41 +117300,18 @@ msgid "" msgstr "" #: lang/json/gunmod_from_json.py -msgid "makeshift pistol bayonet" -msgid_plural "makeshift pistol bayonets" -msgstr[0] "pistola con bayoneta improvisada" -msgstr[1] "pistolas con bayoneta improvisadas" - -#: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a bayonet meant for a pistol that consists of a mere " -"spike with some string. It still makes a decent melee weapon in a pinch " -"when attached to a pistol." -msgstr "" -"Una versión improvisada de una bayoneta destinada a una pistola, que " -"consiste en una simple pincho con alguna cadena. Hace tener un arma cuerpo a" -" cuerpo decente durante un apuro cuando está unido a una pistola." - -#: lang/json/gunmod_from_json.py -msgid "makeshift sword bayonet" -msgid_plural "makeshift sword bayonets" -msgstr[0] "bayoneta improvisada de espada" -msgstr[1] "bayonetas improvisadas de espada" +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "" +msgstr[1] "" #: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a sword bayonet that consists of a salvaged blade " -"with some string. It still makes a good melee weapon providing reach " -"attacks when attached to long arm or crossbow." +msgid "Gun suppressor mod for testing." msgstr "" -"Una versión improvisada de una bayoneta que consiste en una hoja de salvado " -"con un trozo de cuerda. Hace tener una buena arma cuerpo a cuerpo " -"proporcionando ataques de alcance cuando se monta en un arma grande o una " -"ballesta." #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" -msgstr "" +msgstr "Destripás y fileteás el pescado" #: lang/json/harvest_from_json.py msgid "You carefully crack open its exoskeleton to get at the flesh beneath" @@ -121204,6 +117330,8 @@ msgid "" "You messily hack apart the hulking mass of fused, rancid flesh, taking note " "of anything that stands out." msgstr "" +"Cortás en pedazos desordenadamente la descomunal masa de carne fusionada y " +"rancia, tomando nota de todo lo que llame la atención." #: lang/json/harvest_from_json.py msgid "" @@ -121225,22 +117353,16 @@ msgid "" "they are something else." msgstr "" -#: lang/json/harvest_from_json.py -msgid "You butcher the fallen zombie and hack off its head" -msgstr "" - #: lang/json/help_from_json.py msgid ": Introduction" msgstr ": Introducción" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future" +" looks pretty grim." msgstr "" -"Cataclysm es un roguelike de supervivencia con un entorno de apocalipsis " -"monstruoso. Has sobrevivido al ataque original, pero el futuro parece " -"bastante sombrío." #: lang/json/help_from_json.py msgid "" @@ -121257,36 +117379,24 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are" +" exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." msgstr "" -"Cataclysm difiere de los roguelikes tradicionales de varias maneras. En " -"lugar de explorar una mazmorra subterránea, con un área limitada en cada " -"nivel, estás explorando un mundo verdaderamente infinito, que se extiende en" -" las cuatro direcciones cardinales. En este roguelike de supervivencia, " -"tendrás que encontrar comida; también necesita mantenerse hidratado y dormir" -" periódicamente. Se basa en el principio del realismo, así que espera todas " -"las dificultades que esperarías en la vida real en una situación de " -"supervivencia, y al menos una docena más de la naturaleza misteriosa y de " -"ciencia ficción del Cataclismo." #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help" +" you survive." msgstr "" -"Aunque Cataclysm tiene más cosas a las que prestar atención que otros " -"roguelikes, la ambientación del juego en un futuro cercano hace que algunas " -"tareas sean más sencillas. Armas de fuego, medicamentos y una amplia " -"variedad de herramientas están disponibles para ayudarte a sobrevivir." #: lang/json/help_from_json.py msgid ": Movement" @@ -123420,7 +119530,7 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Burrow through rock" -msgstr "" +msgstr "Excavar en piedra" #: lang/json/item_action_from_json.py msgid "Use geiger counter" @@ -123494,10 +119604,6 @@ msgstr "Escribir en un objeto" msgid "Cauterize a wound" msgstr "Cauterizar herida" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "Crear zombi esclavo" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "Comenzar cuenta regresiva" @@ -123508,7 +119614,7 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Learn spell" -msgstr "" +msgstr "Aprender hechizo" #: lang/json/item_action_from_json.py msgid "Cast spell" @@ -123541,7 +119647,7 @@ msgstr "Usar" #: lang/json/item_action_from_json.py msgid "Sterilize" -msgstr "" +msgstr "Esterilizar" #: lang/json/item_action_from_json.py src/artifact.cpp msgid "Ring" @@ -123808,7 +119914,7 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Wash items" -msgstr "" +msgstr "Lavar objetos" #: lang/json/item_action_from_json.py msgid "Purify some water" @@ -123822,10 +119928,6 @@ msgstr "Revisar información del clima" msgid "Reload" msgstr "Recargar" -#: lang/json/item_action_from_json.py -msgid "Store/unload ammo" -msgstr "Almacenar/descargar munición" - #: lang/json/item_action_from_json.py msgid "Make some noise" msgstr "Hacer un poco de ruido" @@ -124011,7 +120113,7 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This tastes better while hot." -msgstr "" +msgstr "Esto es mejor mientras está caliente." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -125007,6 +121109,18 @@ msgstr "Cambiar munición" msgid "Switch Firing Mode" msgstr "Cambiar Modo de Disparo" +#: lang/json/keybinding_from_json.py +msgid "Toggle turret lines" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "Alternar Saltar a objetivo" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "Elección" @@ -125039,10 +121153,6 @@ msgstr "Mostrar descripción extendida" msgid "Travel to destination" msgstr "Viajar a destino" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "Alternar Saltar a objetivo" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "Centrar en personaje" @@ -125259,6 +121369,10 @@ msgstr "Moverse mucho abajo" msgid "Toggle category selection mode" msgstr "Alternar Modo de selección de categoría" +#: lang/json/keybinding_from_json.py +msgid "Toggle inventory view to show item categories" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Set item filter" msgstr "Aplicar filtro de objeto" @@ -125484,7 +121598,6 @@ msgid "Disassemble items" msgstr "Desmontar objetos" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "Dormir" @@ -125708,7 +121821,7 @@ msgstr "Gestor de colores" msgid "Active World Mods" msgstr "Activar mods de mundo" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "Cambiar modo de mov. (correr/caminar/agachado)" @@ -126002,6 +122115,30 @@ msgstr "" msgid "Describe terrain" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "Volver" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" msgstr "" @@ -126154,7 +122291,7 @@ msgstr "Establecer modos de torreta" msgid "Nothing" msgstr "Nada" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "Aquí no hay nada interesante." @@ -126163,7 +122300,7 @@ msgstr "Aquí no hay nada interesante." msgid "Crater" msgstr "Cráter" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "Hay un cráter aquí." @@ -126172,7 +122309,7 @@ msgstr "Hay un cráter aquí." msgid "College Kids" msgstr "" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "" @@ -126181,7 +122318,7 @@ msgstr "" msgid "Drug Deal" msgstr "" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "" @@ -126190,7 +122327,7 @@ msgstr "" msgid "Roadworks" msgstr "" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "" @@ -126199,7 +122336,7 @@ msgstr "" msgid "Road Mayhem" msgstr "" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "" @@ -126208,7 +122345,7 @@ msgstr "" msgid "Roadblock (Military)" msgstr "" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "" @@ -126217,7 +122354,7 @@ msgstr "" msgid "Roadblock (Bandits)" msgstr "" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "" @@ -126226,7 +122363,7 @@ msgstr "" msgid "Minefield" msgstr "Campo de minas" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "Hay minas enterradas aquí." @@ -126235,17 +122372,17 @@ msgstr "Hay minas enterradas aquí." msgid "Supply Drop" msgstr "" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "" -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" msgstr "Militar" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "" @@ -126254,7 +122391,7 @@ msgstr "" msgid "Helicopter Crash" msgstr "Helicóptero Estrellado" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "Un helicóptero se estrelló aquí." @@ -126263,7 +122400,7 @@ msgstr "Un helicóptero se estrelló aquí." msgid "Scientists" msgstr "Científicos" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "Aquí hay muchos cuerpos de científicos." @@ -126272,7 +122409,7 @@ msgstr "Aquí hay muchos cuerpos de científicos." msgid "Portal" msgstr "Portal" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "Portal esta aquí." @@ -126281,7 +122418,7 @@ msgstr "Portal esta aquí." msgid "Portal In" msgstr "Portal Entrada" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "Otro portal esta aquí." @@ -126290,7 +122427,7 @@ msgstr "Otro portal esta aquí." msgid "Spider Nest" msgstr "Nido de Araña" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "Nido de Araña esta aquí." @@ -126299,22 +122436,21 @@ msgstr "Nido de Araña esta aquí." msgid "Wasp Nest" msgstr "Avispero" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "Avispero esta aquí." #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "Arañas" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "" @@ -126323,7 +122459,7 @@ msgstr "" msgid "Jabberwock" msgstr "" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "" @@ -126332,7 +122468,7 @@ msgstr "" msgid "Grove" msgstr "" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "" @@ -126341,7 +122477,7 @@ msgstr "" msgid "Shrubberry" msgstr "" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "" @@ -126350,7 +122486,7 @@ msgstr "" msgid "Clearcut" msgstr "" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." msgstr "" @@ -126359,7 +122495,7 @@ msgstr "" msgid "Pond" msgstr "Charco" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "Charco pequeño esta aquí." @@ -126368,7 +122504,7 @@ msgstr "Charco pequeño esta aquí." msgid "Stand of trees" msgstr "" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "" @@ -126377,7 +122513,7 @@ msgstr "" msgid "Tall grass" msgstr "Hierba alta" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "" @@ -126386,7 +122522,7 @@ msgstr "" msgid "Derelict shed" msgstr "" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "" @@ -126395,7 +122531,7 @@ msgstr "" msgid "Clay Deposit" msgstr "" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "" @@ -126404,8 +122540,8 @@ msgstr "" msgid "Dead Vegetation" msgstr "" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "" @@ -126418,8 +122554,8 @@ msgstr "" msgid "Burned Ground" msgstr "Tierra Quemada" -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "" @@ -126432,7 +122568,7 @@ msgstr "" msgid "Marloss Pilgrimage" msgstr "" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "" @@ -126441,7 +122577,7 @@ msgstr "" msgid "Casings" msgstr "Casquillos" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "Aquí hay muchos casquillos gastados." @@ -126450,7 +122586,7 @@ msgstr "Aquí hay muchos casquillos gastados." msgid "Looters" msgstr "" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "" @@ -126459,12 +122595,12 @@ msgstr "" msgid "Corpses" msgstr "" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "" @@ -126473,7 +122609,7 @@ msgstr "" msgid "Dermatik Nest" msgstr "" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "" @@ -126482,7 +122618,7 @@ msgstr "" msgid "Prison Bus" msgstr "Autobús Carcelario" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "Un autobús carcelario." @@ -126491,7 +122627,7 @@ msgstr "Un autobús carcelario." msgid "Mass Grave" msgstr "" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "" @@ -126500,11 +122636,20 @@ msgstr "" msgid "Grave" msgstr "" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "" +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -126521,8 +122666,7 @@ msgid "High Security Consolidated Computerized Bank of the Treasury" msgstr "" #. ~ Computer access denied warning -#: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py src/mapgen.cpp -#: src/mapgen.cpp +#: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "" "ERROR! Access denied! Unauthorized access will be met with lethal force!" msgstr "" @@ -126600,7 +122744,7 @@ msgstr "Propiedad Privada: No Entrar" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Discount Tires" -msgstr "" +msgstr "Descuento en Ruedas" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -127692,7 +123836,7 @@ msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE019 \"Sculptor\" Secure Storage" -msgstr "" +msgstr "PE019 \"Sculptor\" Almacenamiento Seguro" #. ~ Computer name #: lang/json/mapgen_from_json.py @@ -127811,16 +123955,6 @@ msgid "" "years.'" msgstr "" -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Hydroponics Entrance" -msgstr "" - -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Missile Control" -msgstr "Control de misil" - #: lang/json/martial_art_from_json.py msgid "No style" msgstr "Sin estilo" @@ -128027,6 +124161,19 @@ msgstr "" msgid "%s gets ready to brawl." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': +#. 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a time.\n" +"\n" +"+1 Block attempts." +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "Capoeira" @@ -129591,47 +125738,81 @@ msgid "Sojutsu" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Blade-work" +msgid "CRIT Blade-work" msgstr "" -#. ~ Description for martial art 'C.R.I.T Blade-work' +#. ~ Description for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"An offensive style that is centered around rapid slashes and prodding. Each" -" attack landed increases combat ability" +"An offensive style centered around rapid slashes and prodding. Each attack " +"landed increases combat ability but leaves you increasingly vunerable" msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Initiate blade-work." +msgid "You prepare to whittle down your enemies." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py #, python-format msgid "%s initiates blade-work." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Intensity" +msgid "Unwavering Edge" msgstr "" -#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Unwavering Edge' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Additional DMG, and Arpen per stack. Max of 5 stacks" +msgid "" +"Gain minor Accuracy, Cutting and Stabbing Arpen per stack. Greatly reduces " +"dodge skill. 2 stacks max" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Ruthlessness" +msgstr "" + +#. ~ Description of buff 'Ruthlessness' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Additional Stabbing and Cutting damage per stack. Reduces dodge attempts. 4" +" stacks max." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Rending Strikes" msgstr "" +#. ~ Description of buff 'Rending Strikes' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Calculation" +msgid "" +"Additional Armor penetration per stack. Further reduces dodge attempts. 3 " +"stacks max." msgstr "" -#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade- -#. work' +#: lang/json/martial_art_from_json.py +msgid "Calculating Eyes" +msgstr "" + +#. ~ Description of buff 'Calculating Eyes' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"Increased accuracy along with minor cut and stab damage with piercing " -"capability." +"You have been taught how to properly utilize small to medium-sized sharp " +"weaponry. Gain great Cutting and Stabbing Armor Penetration on top of minor " +"Accuracy" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Honed Movements" +msgstr "" + +#. ~ Description of buff 'Honed Movements' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Your skill and handling with sharp weaponry has improved. Gain extra Cutting" +" and Stabbing damage." msgstr "" #: lang/json/martial_art_from_json.py @@ -129658,65 +125839,267 @@ msgid "%s draws a line in the sand." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Buildup" +msgid "Bulwark" msgstr "" -#. ~ Description of buff 'C.R.I.T Buildup' for martial art 'C.R.I.T -#. Enforcement' +#. ~ Description of buff 'Bulwark' for martial art 'C.R.I.T Enforcement' #: lang/json/martial_art_from_json.py -msgid "+0.05 armor and other small bonuses per stack. Max of 10 stacks" +msgid "+0.5 armor and other small bonuses per stack. Max of 2 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Guard" +msgid "Unyielding Front" msgstr "" -#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement' +#. ~ Description of buff 'Unyielding Front' for martial art 'C.R.I.T +#. Enforcement' #: lang/json/martial_art_from_json.py -msgid "+1 armor. STR provides accuracy and minor bash arpen." +msgid "" +"Stand strong in the face of adversity. +1 armor. STR provides accuracy and " +"minor bash arpen." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T CQB" +msgid "CRIT CQB" msgstr "" -#. ~ Description for martial art 'C.R.I.T CQB' +#. ~ Description for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "A style centered around rapid strikes and piercing jabs. Each attack landed" -" adds a plethora of combat bonuses. 25 percent bash damage." +" adds a plethora of combat bonuses." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py -msgid "Initiate CQB." +msgid "You shift your weight for the oncoming fight." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py #, python-format -msgid "%s initiates CQB." +msgid "%s prepares for hand-to-hand battle." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Tenacity" +msgid "Fluid Tenacity" msgstr "" -#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Fluid Tenacity' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "+Atk Speed and other small bonuses based on DEX per stack. Max of 5 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Initiative" +msgid "Tactful Initiative" +msgstr "" + +#. ~ Description of buff 'Tactful Initiative' for martial art 'CRIT CQB' +#: lang/json/martial_art_from_json.py +msgid "" +"You have gained an advantage by always remaing mindful of common weaknesses." +" DEX provides dodge ability, accuracy and armor penetration." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming strikes." +" The complex spinning and slashing of the curved blade incorporated into " +"many Desert Wind maneuvers are in fact carefully honed gestures that evoke " +"the power of fire, if performed correctly and with the proper focus." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" +msgstr "" + +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so" +" that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must" +" inevitably." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "" + +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art +#. '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': +#. 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "" + +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" msgstr "" -#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian +#. Swordsmanship'}' #: lang/json/martial_art_from_json.py +#, no-python-format msgid "" -"DEX provides dodge ability, accuracy and minor cut / stab damage with slight" -" piercing capability. 50 Percent Bash Damage." +"When you perfectly dodge an attack, you can attack rapidly for a short time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." msgstr "" #: lang/json/martial_art_from_json.py @@ -129794,7 +126177,8 @@ msgstr "completamente dañado/a" msgid "Resin" msgstr "" -#: lang/json/material_from_json.py src/veh_interact.cpp +#: lang/json/material_from_json.py lang/json/material_from_json.py +#: src/veh_interact.cpp msgid "dented" msgstr "golpeado/a" @@ -129836,7 +126220,7 @@ msgstr "destruido" #: lang/json/material_from_json.py msgid "Biosilicified Chitin" -msgstr "" +msgstr "Quitina Biosilicificada" #: lang/json/material_from_json.py msgid "chipped" @@ -130015,7 +126399,7 @@ msgid "Junk Food" msgstr "Comida basura" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" +msgid "Foodplace's delicious foodstuff" msgstr "" #: lang/json/material_from_json.py @@ -130023,12 +126407,12 @@ msgid "Kevlar" msgstr "Kevlar" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" +msgid "Layered Kevlar" msgstr "" #: lang/json/material_from_json.py -msgid "scarred" -msgstr "con cicatrices" +msgid "Rigid Kevlar" +msgstr "" #: lang/json/material_from_json.py msgid "Lead" @@ -130156,7 +126540,7 @@ msgstr "Seta" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "Agua" @@ -130228,6 +126612,10 @@ msgstr "" msgid "Graphene Weave" msgstr "" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "con cicatrices" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "" @@ -130790,6 +127178,9 @@ msgid "" "we start rebuilding unless we take measure to stop those who seek to rule " "over us." msgstr "" +"Ya sé que no es urgente pero el mundo va a ser igual de corrupto cuando " +"empecemos a reconstruirlo si no tomamos medidas para frenar a esos que " +"buscan gobernarnos." #: lang/json/mission_def_from_json.py msgid "This shouldn't be hard unless we run into a horde." @@ -133008,6 +129399,8 @@ msgid "" "Now that I've got that motor, I can get my compressor mostly built. I will " "need a tank though." msgstr "" +"Ahora que tengo el motor, casi tengo el compresor entero. Aunque todavía " +"necesito un tanque." #: lang/json/mission_def_from_json.py msgid "" @@ -135716,49 +132109,6 @@ msgid "" " and stumbles." msgstr "" -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes you!" -msgstr "¡El/a %1$s te enceguece!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes at !" -msgstr "¡El %1$s deslumbra a !" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash you, but fails to." -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash , but fails to." -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects you with a syringe!" -msgstr "¡El/a %1$s te clava una jeringa!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects with a syringe!" -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "¡El/a %1$s intenta clavarte algo, pero no logra penetrar tu armadura!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "" -"The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "" -"¡El/a %1$s intenta clavarle algo a , pero no logra penetrar su " -"armadura!" - #: lang/json/morale_type_from_json.py #, no-python-format msgid "Enjoyed %s" @@ -135861,6 +132211,10 @@ msgstr "No le gusta %s" msgid "Ate Human Flesh" msgstr "Comer Carne Humana" +#: lang/json/morale_type_from_json.py +msgid "Ate Demihuman Flesh" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Ate Meat" msgstr "Comer Carne" @@ -136058,6 +132412,111 @@ msgstr "Fracaso" msgid "Debug Morale" msgstr "Moral Debug" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp src/weather.cpp +msgid "W" +msgstr "O" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "Empiezas a andar." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "R" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "Empiezas a correr." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "" + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "Estás muy cansado para correr." + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "" + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "c" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "C" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "Empiezas a agacharte." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "" + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp msgid "Any" @@ -136591,7 +133050,7 @@ msgstr "" #. ~ Mutation class: Chimera iv_sleep_message #: lang/json/mutation_category_from_json.py msgid "With a final *pop*, you go out like a light." -msgstr "" +msgstr "Con un *pop* final, te apagas como una luz." #. ~ Mutation class: Chimera iv_sound_message #: lang/json/mutation_category_from_json.py @@ -137622,7 +134081,6 @@ msgid "Good Hearing" msgstr "Buen Oído" #. ~ Description for {'str': 'Good Hearing'} -#. ~ Description for Good Hearing #: lang/json/mutation_from_json.py msgid "" "Your hearing is better than average, and you can hear distant sounds more " @@ -137673,7 +134131,6 @@ msgid "Indefatigable" msgstr "Incansable" #. ~ Description for {'str': 'Indefatigable'} -#. ~ Description for Indefatigable #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -137724,7 +134181,6 @@ msgid "Fast Healer" msgstr "Sanador/a Veloz" #. ~ Description for {'str': 'Fast Healer'} -#. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" "You heal faster when sleeping and will even recover a small amount of HP " @@ -137776,7 +134232,6 @@ msgid "Pain Resistant" msgstr "Resistente al Dolor" #. ~ Description for {'str': 'Pain Resistant'} -#. ~ Description for Pain Resistant #: lang/json/mutation_from_json.py msgid "You have a high tolerance for pain." msgstr "Tienes una gran tolerancia al dolor." @@ -137786,7 +134241,6 @@ msgid "Night Vision" msgstr "Visión Nocturna" #. ~ Description for {'str': 'Night Vision'} -#. ~ Description for Night Vision #: lang/json/mutation_from_json.py msgid "" "You possess natural night vision, and can see further in the dark than most." @@ -137887,10 +134341,9 @@ msgstr "Mula de Carga" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." msgstr "" -"¡Siempre encuentras un lugarcito para tus cosas! Puedes cargar un 40% más de" -" volumen." #: lang/json/mutation_from_json.py msgid "Strong Back" @@ -137929,9 +134382,9 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale" -" bonus." +"you can't even think about eating without a table or not taking your time. " +"Eating without it frustrates you, but eating like a civilized person gives " +"you a bigger morale bonus." msgstr "" #: lang/json/mutation_from_json.py @@ -137967,7 +134420,6 @@ msgid "Deft" msgstr "Hábil" #. ~ Description for {'str': 'Deft'} -#. ~ Description for Deft #: lang/json/mutation_from_json.py msgid "" "While you're not any better at melee combat, you are better at recovering " @@ -138052,7 +134504,6 @@ msgid "Animal Empathy" msgstr "Empatía Animal" #. ~ Description for {'str': 'Animal Empathy'} -#. ~ Description for Animal Empathy #: lang/json/mutation_from_json.py msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" @@ -138068,7 +134519,6 @@ msgid "Animal Kinship" msgstr "Parentesco animal" #. ~ Description for {'str': 'Animal Kinship'} -#. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py msgid "" "Something about your presence is calming to animals, and they will treat you" @@ -138084,7 +134534,6 @@ msgid "Terrifying" msgstr "Aterrador/a" #. ~ Description for {'str': 'Terrifying'} -#. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " @@ -138182,7 +134631,6 @@ msgid "Light Step" msgstr "Paso ligero" #. ~ Description for {'str': 'Light Step'} -#. ~ Description for Light Step #: lang/json/mutation_from_json.py msgid "" "You make less noise while walking. You're also less likely to set off " @@ -138239,7 +134687,6 @@ msgid "Cannibal" msgstr "Caníbal" #. ~ Description for {'str': 'Cannibal'} -#. ~ Description for Cannibal #: lang/json/mutation_from_json.py msgid "" "For your whole life you've been forbidden from indulging in your peculiar " @@ -138250,6 +134697,17 @@ msgstr "" "el mundo se terminó, ya nadie podrá venir a decirte que no te puedes comer " "una persona." +#: lang/json/mutation_from_json.py +msgid "Strict Humanitarian" +msgstr "" + +#. ~ Description for {'str': 'Strict Humanitarian'} +#: lang/json/mutation_from_json.py +msgid "" +"You'd never eat people, but these things that look vaguely human from " +"elsewhere are definitely not people." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Psychopath" msgstr "Psicópata" @@ -138354,7 +134812,6 @@ msgid "Weak Scent" msgstr "Poco Olor" #. ~ Description for {'str': 'Weak Scent'} -#. ~ Description for Weak Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is quite weak. Animals that track your scent will do so with " @@ -138583,11 +135040,9 @@ msgstr "Desorganizado/a" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." msgstr "" -"Eres terrible para organizar y guardar tus posesiones. Puedes cargar un 40% " -"menos de volumen." #: lang/json/mutation_from_json.py msgid "Illiterate" @@ -138636,7 +135091,6 @@ msgid "Insomniac" msgstr "Insomne" #. ~ Description for {'str': 'Insomniac'} -#. ~ Description for Insomniac #: lang/json/mutation_from_json.py msgid "" "You have a hard time falling asleep, even under the best circumstances!" @@ -138827,7 +135281,6 @@ msgid "Strong Scent" msgstr "Mucho Olor" #. ~ Description for {'str': 'Strong Scent'} -#. ~ Description for Strong Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is particularly strong. It's not offensive to humans, but " @@ -138969,10 +135422,6 @@ msgstr "" "Aprendiz Rápido resulta en un aprendizaje más lento para todas las " "habilidades." -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "Pacifista" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -139010,7 +135459,6 @@ msgid "Weak Stomach" msgstr "Estómago Flojo" #. ~ Description for {'str': 'Weak Stomach'} -#. ~ Description for Weak Stomach #: lang/json/mutation_from_json.py msgid "You are more likely to throw up from food poisoning, alcohol, etc." msgstr "" @@ -139057,7 +135505,6 @@ msgid "Albino" msgstr "Albino/a" #. ~ Description for {'str': 'Albino'} -#. ~ Description for Albino #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " @@ -139070,7 +135517,6 @@ msgid "Flimsy" msgstr "Endeble" #. ~ Description for {'str': 'Flimsy'} -#. ~ Description for Flimsy #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -139134,7 +135580,6 @@ msgid "High Night Vision" msgstr "Visión Nocturna Aguda" #. ~ Description for {'str': 'High Night Vision'} -#. ~ Description for High Night Vision #: lang/json/mutation_from_json.py msgid "" "You can see incredibly well in the dark! Activate to toggle NV-visible " @@ -139330,7 +135775,6 @@ msgid "Regeneration" msgstr "Regeneración" #. ~ Description for {'str': 'Regeneration'} -#. ~ Description for Regeneration #: lang/json/mutation_from_json.py msgid "Your flesh regenerates from wounds incredibly quickly." msgstr "Tu carne se regenera de sus heridas increíblemente rápido." @@ -140170,12 +136614,13 @@ msgid "Mammal Pheromones" msgstr "Feromonas de Mamífero" #. ~ Description for {'str': 'Mammal Pheromones'} -#. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" "Your body produces low-level pheromones which put mammals at ease. They " "will be less likely to attack or flee from you." msgstr "" +"Tu cuerpo produce feromonas de bajo nivel, lo que tranquiliza a los " +"mamíferos. Estos serán menos propensos a atacarte o a huir de ti." #: lang/json/mutation_from_json.py msgid "Disease Immune" @@ -140249,7 +136694,6 @@ msgid "Venomous" msgstr "Venenoso" #. ~ Description for {'str': 'Venomous'} -#. ~ Description for Venomous #: lang/json/mutation_from_json.py msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " @@ -140391,7 +136835,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s kicks %2$s with their hooves" -msgstr "" +msgstr "%1$s patea al %2$s con sus pezuñas" #: lang/json/mutation_from_json.py msgid "Alcohol Metabolism" @@ -140646,7 +137090,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You stab %s with your pointed horns" -msgstr "" +msgstr "Apuñalas al %s con tus cuernos puntiagudos" #: lang/json/mutation_from_json.py #, no-python-format @@ -140664,6 +137108,9 @@ msgid "" "make a weak headbutt attack, but prevent wearing headwear that is not made " "of fabric." msgstr "" +"Tienes unos enormes cuernos, como los de un alce. Te permiten realizar un " +"débil ataque de cabeza, pero evita que puedas usar algo en la cabeza que no " +"esté hecho de tela." #: lang/json/mutation_from_json.py #, no-python-format @@ -141964,6 +138411,9 @@ msgid "" "Your jaw and nose have extended into a wolfish muzzle. It lends itself to " "biting in combat and looks impressive, but prevents wearing mouthgear." msgstr "" +"Tu mandíbula y nariz se extienden formando un hocico como el de un lobo. " +"Viene bien para morder en combate y se ve impresionante, pero te impide usar" +" cosas sobre la boca." #: lang/json/mutation_from_json.py #, no-python-format @@ -142238,7 +138688,6 @@ msgid "Solar Sensitivity" msgstr "Sensibilidad Solar" #. ~ Description for {'str': 'Solar Sensitivity'} -#. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " @@ -142307,6 +138756,9 @@ msgid "" "causing problems with gloves. However, you can swim much faster. Slightly " "decreases wet penalties." msgstr "" +"Tus manos y pies están palmeados, lo que reduce tu Destreza (-1) y te " +"dificulta usar guantes. Sin embargo, puedes nadar mucho más rápido. " +"Disminuye levemente las penalización por estar mojado." #: lang/json/mutation_from_json.py msgid "Paws" @@ -143167,7 +139619,8 @@ msgid "Well, maybe you'll just have to make your own world wide web." msgstr "" "Bueno, tal vez tengas que hacer tu propia telaraña informática mundial." -#: lang/json/mutation_from_json.py lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/mutation_from_json.py +#: lang/json/npc_from_json.py msgid "Survivor" msgstr "Superviviente" @@ -143415,8 +139868,8 @@ msgstr "Piloto de Helicoptero" #. ~ Description for Helicopter Pilot #: lang/json/mutation_from_json.py msgid "" -"You are a trained pilot, you wonder if you will ever have the chance to fly " -"again." +"You are a trained helicopter pilot. This makes you one of the few living " +"people who can operate a helicopter after the Cataclysm." msgstr "" #: lang/json/mutation_from_json.py @@ -143525,11 +139978,10 @@ msgstr "Skater" #. ~ Description for {'str': 'Skater'} #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the Cataclysm," -" and are better at staying on your feet when checked or blocked." +"You are skilled in maneuvering on skates. You suffer less dodging penalties" +" and are less likely to fall down if hit in melee combat while you're " +"wearing rollerskates or rollerblades." msgstr "" -"Pasaste mucho tiempo maniobrando activamente en skates antes del Cataclismo," -" y eres mejor para mantenerlos cuando frenan o bloquean." #: lang/json/mutation_from_json.py msgid "Martial Artist" @@ -143770,10 +140222,10 @@ msgid "Mind the bugs, would you kindly?" msgstr "" #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" -msgstr "Debug de Capacidad de Carga" +msgid "Debug Very Strong Back" +msgstr "" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "" @@ -143901,10 +140353,21 @@ msgid "" " off-limits to you, even if your life depended on it." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "Historia de Superviviente" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -144116,7 +140579,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Mechanical Engineering Expert" -msgstr "" +msgstr "Experto/a en Ingeniería Mecánica" #. ~ Description for {'str': 'Mechanical Engineering Expert'} #: lang/json/mutation_from_json.py @@ -144127,7 +140590,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Software Engineering Training" -msgstr "" +msgstr "Entrenado/a en Ingeniería en Sistemas" #. ~ Description for {'str': 'Software Engineering Training'} #: lang/json/mutation_from_json.py @@ -144135,6 +140598,8 @@ msgid "" "This survivor has some formal training in software engineering, but not much" " experience." msgstr "" +"Este superviviente tiene algo de conocimiento en ingeniería en sistemas, " +"pero no tiene experiencia." #: lang/json/mutation_from_json.py msgid "Software Engineering Expert" @@ -144201,6 +140666,8 @@ msgstr "Formado en Geología" msgid "" "This survivor has some formal training in geology, but not much experience." msgstr "" +"Este superviviente tiene algo de conocimiento en geología, pero no tiene " +"experiencia." #: lang/json/mutation_from_json.py msgid "Geology Expert" @@ -144273,6 +140740,8 @@ msgstr "Experto en Física" msgid "" "This survivor has extensive experience in physics, a PhD or equivalent." msgstr "" +"Este superviviente tiene mucha experiencia en física, un doctorado o algo " +"así." #: lang/json/mutation_from_json.py msgid "Psychology Training" @@ -144313,11 +140782,11 @@ msgstr "Experto/a en Saneamiento" #. ~ Description for {'str': 'Sanitation Expert'} #: lang/json/mutation_from_json.py msgid "This survivor has extensive experience in sanitation." -msgstr "" +msgstr "Este superviviente tiene mucha experiencia en saneamiento." #: lang/json/mutation_from_json.py msgid "Teaching Training" -msgstr "" +msgstr "Entrenado/a en Docencia" #. ~ Description for {'str': 'Teaching Training'} #: lang/json/mutation_from_json.py @@ -144929,14 +141398,14 @@ msgid "Your muscles are quite slow to move. You move 25% slower." msgstr "" #: lang/json/mutation_from_json.py -msgid "C.R.I.T Melee Training" +msgid "CRIT Melee Training" msgstr "" -#. ~ Description for C.R.I.T Melee Training +#. ~ Description for CRIT Melee Training #: lang/json/mutation_from_json.py msgid "" -"You have received defensive training. For every hit you land, gain various " -"miniscule combat bonuses that scale off of your stats." +"You have received CQB training. For every hit you land, gain themed combat " +"bonuses." msgstr "" #: lang/json/mutation_from_json.py @@ -144982,19 +141451,6 @@ msgid "" "Emerge from the grave of the old world, and become the night once again." msgstr "" -#. ~ Description for Pretty -#: lang/json/mutation_from_json.py -msgid "" -"You are a sight to behold. NPCs who care about such things will react more " -"kindly to you." -msgstr "" - -#. ~ Description for Thin-Skinned -#: lang/json/mutation_from_json.py -msgid "Your skin is fragile. Cutting damage is slightly increased for you." -msgstr "" -"Tu piel es frágil. El daño cortante que sufres se incrementa levemente." - #: lang/json/mutation_from_json.py msgid "Forest Guardian" msgstr "" @@ -145038,6 +141494,40 @@ msgstr "" msgid "%1$s tears into %2$s with their blades" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Spurs" +msgstr "" + +#. ~ Description for Spurs +#: lang/json/mutation_from_json.py +msgid "" +"Spurs of bone have erupted all across your arms. A thick, biological " +"secretion oozes out of them promising extra harm to enemies." +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "You ravage %s with your arms" +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "%1$s ravages %2$s with their arm spurs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Persistent Body" +msgstr "" + +#. ~ Description for Persistent Body +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "" +"As you move, the world seems to breath life and energy into your limbs. You " +"simply rarely tire less readily than others. Your maximum stamina is 50% " +"higher than usual." +msgstr "" + #: lang/json/mutation_from_json.py msgid "RP: Combatant" msgstr "" @@ -145104,6 +141594,40 @@ msgstr "" "estás bajo la influencia del alcohol, tu habilidad de cuerpo a cuerpo se " "incrementa considerablemente, especialmente en el combate desarmado." +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "" @@ -145284,6 +141808,38 @@ msgstr "" msgid "Mana Vortex" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "" @@ -145306,11 +141862,6 @@ msgstr "" msgid "Greater Mana Efficiency" msgstr "" -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" msgstr "" @@ -145360,11 +141911,6 @@ msgstr "Tu regeneración de maná natural es más rápida de lo normal." msgid "Greater Mana Regeneration" msgstr "" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "" @@ -145418,13 +141964,6 @@ msgstr "" msgid "Greater Mana Sensitivity" msgstr "" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to" -" tap into more of your reserves." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "" @@ -145519,7 +142058,7 @@ msgstr "Comerciante" #: lang/json/npc_class_from_json.py msgid "I'm collecting gear and selling it." -msgstr "" +msgstr "Estoy juntando equipamiento para venderlo." #: lang/json/npc_class_from_json.py msgid "Ninja" @@ -145779,7 +142318,7 @@ msgstr "Mercenario" #: lang/json/npc_class_from_json.py msgid "Fighting for the all-mighty dollar." -msgstr "" +msgstr "Luchando por el poderoso caballero Don Dinero." #: lang/json/npc_class_from_json.py lang/json/terrain_from_json.py msgid "intercom" @@ -145830,26 +142369,6 @@ msgstr "" msgid "I've been studying the mi-go for years…" msgstr "" -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive" -" it's twilight." -msgstr "" - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "Mutante Lagarto" @@ -146060,6 +142579,26 @@ msgid "" "and I don't plan to keep being one." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive" +" it's twilight." +msgstr "" + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "" @@ -146794,18 +143333,10 @@ msgstr "tienda de coches" msgid "shipwreck" msgstr "barco naufragado" -#: lang/json/overmap_terrain_from_json.py -msgid "razorclaw nest" -msgstr "nido de garrafilada" - #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" msgstr "torre de radio" -#: lang/json/overmap_terrain_from_json.py -msgid "radio tower roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "looted building" msgstr "edificio saqueado" @@ -146818,10 +143349,6 @@ msgstr "área de prueba de rampa" msgid "campsite" msgstr "camping" -#: lang/json/overmap_terrain_from_json.py -msgid "campsites" -msgstr "campings" - #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" msgstr "cabaña sin terminar" @@ -147035,24 +143562,28 @@ msgid "generic_brushland" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "sugar house" +msgid "rural road" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "sugar house roof" +msgid "dirt road" +msgstr "carretera de tierra" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural building" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "rural road" +msgid "sugar house" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "farm field" -msgstr "sembradío" +msgid "sugar house roof" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "farm house" -msgstr "casa de la granja" +msgid "farm field" +msgstr "sembradío" #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" @@ -147070,6 +143601,10 @@ msgstr "" msgid "farm" msgstr "granja" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house" +msgstr "casa de la granja" + #: lang/json/overmap_terrain_from_json.py msgid "grape farm" msgstr "" @@ -147162,10 +143697,6 @@ msgstr "" msgid "chicken coop roof" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" msgstr "cementerio pequeño" @@ -147182,10 +143713,6 @@ msgstr "" msgid "tree farm" msgstr "granja de árboles" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "carretera de tierra" - #: lang/json/overmap_terrain_from_json.py msgid "silos" msgstr "silos" @@ -147206,6 +143733,10 @@ msgstr "" msgid "farm road" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "barn roof" msgstr "" @@ -147318,6 +143849,10 @@ msgstr "tienda de electrónica" msgid "electronics store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "tienda de artículos deportivos" @@ -147350,10 +143885,6 @@ msgstr "" msgid "clothing store" msgstr "tienda de ropa" -#: lang/json/overmap_terrain_from_json.py -msgid "clothing store roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "bookstore" msgstr "librería" @@ -147362,6 +143893,10 @@ msgstr "librería" msgid "bookstore roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "restaurante" @@ -147490,10 +144025,6 @@ msgstr "hotel" msgid "hotel entrance" msgstr "entrada del hotel" -#: lang/json/overmap_terrain_from_json.py -msgid "hotel tower" -msgstr "hotel" - #: lang/json/overmap_terrain_from_json.py msgid "hotel basement" msgstr "sótano del hotel" @@ -147518,10 +144049,6 @@ msgstr "negocio grande de mejoras del hogar" msgid "garage - gas station" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "garage - gas station roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "dispensary" msgstr "" @@ -147691,11 +144218,11 @@ msgid "craft shop" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "craft shop roof" +msgid "craft shop upper roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "craft shop upper roof" +msgid "craft shop roof" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -147780,7 +144307,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" -msgstr "" +msgstr "perrera" #: lang/json/overmap_terrain_from_json.py msgid "animal pound roof" @@ -147806,18 +144333,30 @@ msgstr "" msgid "hunting supply store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "road" -msgstr "calle" +msgid "gaming store" +msgstr "tienda de videojuegos" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "centro de refugiados" +#: lang/json/overmap_terrain_from_json.py +msgid "road" +msgstr "calle" + #: lang/json/overmap_terrain_from_json.py msgid "camp survey" msgstr "" @@ -148070,6 +144609,22 @@ msgstr "molino de acero" msgid "steel mill depot" msgstr "techo de molino de acero" +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "industria ligera" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "science lab" msgstr "laboratorio" @@ -148150,13 +144705,17 @@ msgstr "parking" msgid "mall - entrance" msgstr "supermercado - entrada" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - food court" +msgstr "supermercado - patio de comidas" + #: lang/json/overmap_terrain_from_json.py msgid "mall - food court roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "mall - food court" -msgstr "supermercado - patio de comidas" +msgid "mall - subway station" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mansion" @@ -148267,10 +144826,6 @@ msgstr "comisaría" msgid "church" msgstr "iglesia" -#: lang/json/overmap_terrain_from_json.py -msgid "sewer" -msgstr "cloacas" - #: lang/json/overmap_terrain_from_json.py msgid "sewer?" msgstr "¿cloacas?" @@ -148279,6 +144834,14 @@ msgstr "¿cloacas?" msgid "basement" msgstr "sótano" +#: lang/json/overmap_terrain_from_json.py +msgid "sewer" +msgstr "cloacas" + +#: lang/json/overmap_terrain_from_json.py +msgid "Vault - Passage" +msgstr "Bóveda - Pasaje" + #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" msgstr "Bóveda - Cuartel" @@ -148311,10 +144874,6 @@ msgstr "Bóveda - Entrada" msgid "Vault - Utilities" msgstr "Bóveda - Instalaciones" -#: lang/json/overmap_terrain_from_json.py -msgid "Vault - Passage" -msgstr "Bóveda - Pasaje" - #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" msgstr "Bóveda - Comunicaciones" @@ -148761,16 +145320,16 @@ msgid "marina parking" msgstr "aparcamiento de puerto pequeño" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" -msgstr "dúplex" +msgid "house roof" +msgstr "techo de casa" #: lang/json/overmap_terrain_from_json.py -msgid "apartment tower" -msgstr "edificio de departamentos" +msgid "dense urban" +msgstr "urbanización densa" #: lang/json/overmap_terrain_from_json.py -msgid "homeless camp" -msgstr "campamento de mendigos" +msgid "apartment tower" +msgstr "edificio de departamentos" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" @@ -148780,6 +145339,10 @@ msgstr "" msgid "trailer park roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless camp" +msgstr "campamento de mendigos" + #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" msgstr "" @@ -148788,10 +145351,6 @@ msgstr "" msgid "derelict property" msgstr "propiedad abandonada" -#: lang/json/overmap_terrain_from_json.py -msgid "dense urban" -msgstr "urbanización densa" - #: lang/json/overmap_terrain_from_json.py msgid "river" msgstr "río" @@ -148824,26 +145383,14 @@ msgstr "puente" msgid "roadstop" msgstr "control de carretera" -#: lang/json/overmap_terrain_from_json.py -msgid "roadstop roof" -msgstr "techo de control de carretera" - #: lang/json/overmap_terrain_from_json.py msgid "public washroom" msgstr "baño público" -#: lang/json/overmap_terrain_from_json.py -msgid "public washroom roof" -msgstr "techo de baño público" - #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" msgstr "carrito de la compra al borde de la carretera" -#: lang/json/overmap_terrain_from_json.py -msgid "roadside foodcart roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "ferrocarril" @@ -149020,14 +145567,14 @@ msgstr "cloaca abierta" msgid "small dump" msgstr "vertedero pequeño" -#: lang/json/overmap_terrain_from_json.py -msgid "lake shore" -msgstr "orilla del lago" - #: lang/json/overmap_terrain_from_json.py msgid "lake" msgstr "lago" +#: lang/json/overmap_terrain_from_json.py +msgid "lake shore" +msgstr "orilla del lago" + #: lang/json/overmap_terrain_from_json.py msgid "lake (submerged)" msgstr "" @@ -149077,36 +145624,12 @@ msgid "county mortuary roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "reserva de vida salvaje" - -#: lang/json/overmap_terrain_from_json.py -msgid "diner" +msgid "Dinosaur Exhibit" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "apartamento" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "tienda de videojuegos" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "aeropuerto" - -#: lang/json/overmap_terrain_from_json.py -msgid "light industry" -msgstr "industria ligera" +msgid "wildlife field office" +msgstr "reserva de vida salvaje" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -149120,6 +145643,10 @@ msgstr "bunquer" msgid "scavenger bunker" msgstr "bunquer chatarrero" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "" @@ -149133,7 +145660,6 @@ msgid "used bookstore" msgstr "" #: lang/json/overmap_terrain_from_json.py -#: lang/json/start_location_from_json.py msgid "Swamp" msgstr "Pantano" @@ -149165,10 +145691,6 @@ msgstr "verja" msgid "house basement" msgstr "sótano de casa" -#: lang/json/overmap_terrain_from_json.py -msgid "house roof" -msgstr "techo de casa" - #: lang/json/overmap_terrain_from_json.py msgid "attached garage" msgstr "garaje adjunto" @@ -149223,7 +145745,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "commo building" -msgstr "" +msgstr "edificio de comunicaciones" #: lang/json/overmap_terrain_from_json.py msgid "battalion HQ" @@ -149277,10 +145799,6 @@ msgstr "laboratorio de microbiología" msgid "rocketry lab" msgstr "laboratorio de cohetes" -#: lang/json/overmap_terrain_from_json.py -msgid "robot dispatch center" -msgstr "centro de despacho de robots" - #: lang/json/overmap_terrain_from_json.py msgid "school" msgstr "escuela" @@ -149309,6 +145827,14 @@ msgstr "garajes mecánicos" msgid "megastore entrance" msgstr "entrada de supermercado" +#: lang/json/overmap_terrain_from_json.py +msgid "hotel tower" +msgstr "hotel" + +#: lang/json/overmap_terrain_from_json.py +msgid "razorclaw nest" +msgstr "nido de garrafilada" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "tratamiento de aguas cloacales" @@ -149325,6 +145851,10 @@ msgstr "interfaz" msgid "electric substation" msgstr "subestación eléctrica" +#: lang/json/overmap_terrain_from_json.py +msgid "campsites" +msgstr "campings" + #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" msgstr "cementerio religioso" @@ -149362,13 +145892,10 @@ msgstr "Vagabundo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Las circunstancias te dejaron errante, sin hogar, sin familia, sin amigos. " -"Pero el mundo que conociste se ha ido, y tal vez tus experiencias confiando " -"en ti mismo para sobrevivir podrían ser útiles en este nuevo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149379,13 +145906,10 @@ msgstr "Vagabunda" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Las circunstancias te dejaron errante, sin hogar, sin familia, sin amigos. " -"Pero el mundo que conociste se ha ido, y tal vez tus experiencias confiando " -"en ti misma para sobrevivir podrían ser útiles en este nuevo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149396,13 +145920,10 @@ msgstr "Survivalista Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"Sabías que estaba llegando el fin. Te mejoraste a ti mismo con algunos " -"biónicos básicos, y recibiste entrenamiento de supervivencia. Ahora que el " -"fin ya llegó, es momento de ver si tus esfuerzos sirvieron." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149413,13 +145934,10 @@ msgstr "Survivalista Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"Sabías que estaba llegando el fin. Te mejoraste a ti misma con algunos " -"biónicos básicos, y recibiste entrenamiento de supervivencia. Ahora que el " -"fin ya llegó, es momento de ver si tus esfuerzos sirvieron." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149430,11 +145948,9 @@ msgstr "Superviviente" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" -"Algunos dirán que no tienes ninguna cualidad sobresaliente. Pero " -"sobreviviste, y eso es más de lo que la mayoría ahora puede decir." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149445,11 +145961,9 @@ msgstr "Superviviente" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" -"Algunos dirán que no tienes ninguna cualidad sobresaliente. Pero " -"sobreviviste, y eso es más de lo que la mayoría ahora puede decir." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149460,13 +145974,10 @@ msgstr "Superviviente en Refugio" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" -"Al comienzo del Cataclismo, te refugiaste en un refugio antibombas. Ahora es" -" invierno, y esperas que la colección de habilidades que aprendiste de todos" -" esos libros puedan ayudarte a sobrevivir." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149477,13 +145988,10 @@ msgstr "Superviviente en Refugio" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" -"Al comienzo del Cataclismo, te refugiaste en un refugio antibombas. Ahora es" -" invierno, y esperas que la colección de habilidades que aprendiste de todos" -" esos libros puedan ayudarte a sobrevivir." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149494,13 +146002,10 @@ msgstr "Miliciano Refugiado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" -"Al comienzo del Cataclismo, te refugiaste en un refugio antibombas. Ahora es" -" invierno, y esperas que tus armas y las habilidades que hayas adquirido " -"puedan ayudarte a sobrevivir." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149511,13 +146016,10 @@ msgstr "Miliciana Refugiada" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" -"Al comienzo del Cataclismo, te refugiaste en un refugio antibombas. Ahora es" -" invierno, y esperas que tus armas y las habilidades que hayas adquirido " -"puedan ayudarte a sobrevivir." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149529,12 +146031,9 @@ msgstr "Sastre" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"La sastrería no parece ser la habilidad más útil cuando el mundo ha llegado " -"a su fin. La mayoría de la gente no espera que un simple sastre sobreviva " -"mucho. Esta es tu oportunidad de demostrarles lo contrario." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149546,12 +146045,9 @@ msgstr "Sastre" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"La sastrería no parece ser la habilidad más útil cuando el mundo ha llegado " -"a su fin. La mayoría de la gente no espera que una simple sastre sobreviva " -"mucho. Esta es tu oportunidad de demostrarles lo contrario." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149563,12 +146059,9 @@ msgstr "Chef" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" -"¡Bork bork! Años en la cocina te han hecho bastante voluminoso, pero " -"lograste escaparte de la matanza con un cuchillo de carnicero y solo una " -"pequeña colección de manchas en tu uniforme." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149580,12 +146073,9 @@ msgstr "Chef" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" -"¡Bork bork! Años en la cocina te han hecho bastante voluminosa, pero " -"lograste escaparte de la matanza con un cuchillo de carnicero y solo una " -"pequeña colección de manchas en tu uniforme." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149634,14 +146124,10 @@ msgstr "Técnico de Laboratorio" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Gracias al tiempo que pasaste en el laboratorio, estás familiarizado con los" -" fundamentos de la ciencia conductual. Ahora que se terminó el mundo, solo " -"queda una pregunta: ¿vas a poder deshacer el cataclismo que ayudaste a " -"crear?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149652,14 +146138,10 @@ msgstr "Técnica de Laboratorio" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Gracias al tiempo que pasaste en el laboratorio, estás familiarizada con los" -" fundamentos de la ciencia conductual. Ahora que se terminó el mundo, solo " -"queda una pregunta: ¿vas a poder deshacer el cataclismo que ayudaste a " -"crear?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149670,11 +146152,10 @@ msgstr "Mecánico del hogar" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Aunque nunca te sacaste el carné de conducir, siempre te encantaron los " -"coches. Por lo menos ahora te van a sobrar los materiales." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149685,11 +146166,10 @@ msgstr "Mecánica del hogar" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Aunque nunca te sacaste el carné de conducir, siempre te encantaron los " -"coches. Por lo menos ahora te van a sobrar los materiales." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149703,12 +146183,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"Tienes una perspectiva flexible de las leyes. Los altercados de los que " -"participaste (y evitaste) en bares, y tu impresionante habilidad para eludir" -" las consecuencias de tus actos, te ayudaron a sobrevivir. Pero ¿cuánto " -"tiempo te harán resistir?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149722,12 +146198,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"Tienes una perspectiva flexible de las leyes. Los altercados de los que " -"participaste (y evitaste) en bares, y tu impresionante habilidad para eludir" -" las consecuencias de tus actos, te ayudaron a sobrevivir. Pero ¿cuánto " -"tiempo más te harán resistir?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149738,13 +146210,10 @@ msgstr "Apicultor" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" -"Solías ser un apicultor profesional. Tuviste que abandonar a tus preciosas " -"abejas cuando llegó el Cataclismo, pero al menos lograste agarrar algunos " -"utensilios y miel." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149755,13 +146224,10 @@ msgstr "Apicultora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" -"Solías ser una apicultora profesional. Tuviste que abandonar a tus preciosas" -" abejas cuando llegó el Cataclismo, pero al menos lograste agarrar algunos " -"utensilios y miel." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149772,13 +146238,10 @@ msgstr "Jugador de Baloncesto" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" -"Ibas a jugar tu primer partido importante, pero llegó el Cataclismo. Gracias" -" a tus pies rápidos, estabas entre los pocos afortunados que sobrevivieron y" -" escaparon de las criaturas." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149789,13 +146252,10 @@ msgstr "Jugadora de Baloncesto" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" -"Ibas a jugar tu primer partido importante, pero llegó el Cataclismo. Gracias" -" a tus pies rápidos, estabas entre las pocas afortunadas que sobrevivieron y" -" escaparon de las criaturas." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149806,10 +146266,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -149821,10 +146280,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -149838,13 +146296,9 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"Eras un joven ciclista que prometía tener una carrera brillante por delante " -"antes de que esto pasara. Tal vez ya no vas a poder participar en un grand " -"tour, pero como dice el dicho: La vida es como andar en bicicleta, tienes " -"que seguir moviéndote." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149857,13 +146311,9 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"Eras una joven ciclista que prometía tener una carrera brillante por delante" -" antes de que esto pasara. Tal vez ya no vas a poder participar en un grand " -"tour, pero como dice el dicho: La vida es como andar en bicicleta, tienes " -"que seguir moviéndote." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149874,15 +146324,11 @@ msgstr "Recluta Militar" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Abandonaste la escuela secundaria con un objetivo: unirte al ejército. " -"Finalmente, ingresaste justo a tiempo para que tu entrenamiento se viera " -"interrumpido por una emergencia nacional. Parece que los comandantes te " -"abandonaron en este infierno después de que te perdiste la evacuación." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -149893,15 +146339,11 @@ msgstr "Recluta Militar" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Abandonaste la escuela secundaria con un objetivo: unirte al ejército. " -"Finalmente, ingresaste justo a tiempo para que tu entrenamiento se viera " -"interrumpido por una emergencia nacional. Parece que los comandantes te " -"abandonaron en este infierno después de que te perdiste la evacuación." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -149950,8 +146392,9 @@ msgstr "Mayordomo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -149963,8 +146406,9 @@ msgstr "Sirvienta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -149976,10 +146420,11 @@ msgstr "Cautivo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -149991,10 +146436,11 @@ msgstr "Cautivo" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -150007,14 +146453,10 @@ msgstr "Salvador" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" -"Estabas listo. Entraste decidido a encontrar y rescatar a tus amigos. Pero " -"ahora, mientras caminas por esos corredores extraños, la atmósfera se vuelve" -" pesada y ya no estás tan seguro. Podrías ser el que necesita un rescate " -"ahora." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150026,14 +146468,10 @@ msgstr "Salvadora" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" -"Estabas lista. Entraste decidida a encontrar y rescatar a tus amigos. Pero " -"ahora, mientras caminas por esos corredores extraños, la atmósfera se vuelve" -" pesada y ya no estás tan segura. Podrías ser la que necesita un rescate " -"ahora." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150045,12 +146483,10 @@ msgstr "Médico Residente" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"Después de terminar la facultad de medicina, pudiste hacer poca experiencia " -"práctica. Tienes la esperanza de que será suficiente por si ese viejo " -"proverbio \"Doctor, cúrate a ti mismo\" llegara a ser necesario." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150062,12 +146498,10 @@ msgstr "Médica Residente" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"Después de terminar la facultad de medicina, pudiste hacer poca experiencia " -"práctica. Tienes la esperanza de que será suficiente por si ese viejo " -"proverbio \"Doctor, cúrate a ti mismo\" llegara a ser necesario." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150079,13 +146513,9 @@ msgstr "Mafioso" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"El jefe siempre decía que podía confiar en que resolvieras los trabajos más " -"complicados. Una lástima que no haya podido resolverlo él. Estás " -"familiarizado con un entorno violento, así que casi te sientes en casa con " -"este nuevo mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150097,13 +146527,9 @@ msgstr "Mafiosa" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"El jefe siempre decía que podía confiar en que resolvieras los trabajos más " -"complicados. Una lástima que no haya podido resolverlo él. Estás " -"familiarizada con un entorno violento, así que casi te sientes en casa con " -"este nuevo mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150114,15 +146540,10 @@ msgstr "Guardia de Seguridad" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Un guardia de seguridad con sueldo bajo. Repentinamente las cosas se han " -"vuelto mucho más peligrosas que patrullar para mantener a raya a los " -"ladrones. No tienes ninguna habilidad útil, pero sí tienes equipo útil ya " -"que estabas trabajando cuando todo empezó." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150133,15 +146554,10 @@ msgstr "Guardia de Seguridad" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Una guardia de seguridad con sueldo bajo. Repentinamente las cosas se han " -"vuelto mucho más peligrosas que patrullar para mantener a raya a los " -"ladrones. No tienes ninguna habilidad útil, pero sí tienes equipo útil ya " -"que estabas trabajando cuando todo empezó." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150154,11 +146570,8 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" -"Solías cortar el césped y cortar setos para los ricos. El trabajo por " -"contrato escaseaba incluso antes de que llegaran los zombis, pero ahora no " -"te queda más que tus herramientas y experiencia." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150171,11 +146584,8 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" -"Solías cortar el césped y cortar setos para los ricos. El trabajo por " -"contrato escaseaba incluso antes de que llegaran los zombis, pero ahora no " -"te queda más que tus herramientas y experiencia." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150186,13 +146596,10 @@ msgstr "Auxiliar de enfermería" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" -"Brindabas atención domiciliaria a los ancianos, incluso cuando el mundo " -"entero se desmoronaba a su alrededor. Solo puedes rezar para que no veas a " -"tus antiguos clientes entre los muertos vivientes..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150203,13 +146610,10 @@ msgstr "Auxiliar de enfermería" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" -"Brindabas atención domiciliaria a los ancianos, incluso cuando el mundo " -"entero se desmoronaba a su alrededor. Solo puedes rezar para que no veas a " -"tus antiguos clientes entre los muertos vivientes..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150220,16 +146624,10 @@ msgstr "Survivalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" -"Experto en sobrevivir en la tierra lejos de la civilización, es muy probable" -" que tus habilidades sean útiles teniendo en cuenta que la civilización " -"ahora está llena de monstruos que te quieren ver muerto. Tu equipo es " -"básico, pero versátil, y con tus habilidades, más de lo que necesitas... " -"¡excepto que se acabe tu cantimplora!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150240,16 +146638,10 @@ msgstr "Survivalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" -"Experta en sobrevivir en la tierra lejos de la civilización, es muy probable" -" que tus habilidades sean útiles teniendo en cuenta que la civilización " -"ahora está llena de monstruos que te quieren ver muerta. Tu equipo es " -"básico, pero versátil, y con tus habilidades, más de lo que necesitas... " -"¡excepto que se acabe tu cantimplora!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150260,13 +146652,10 @@ msgstr "Fumador Compulsivo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Todos en el trabajo te conocían como la persona que siempre tenía un " -"cigarrillo o dos en la mano. Ahora, te queda un paquete solo y esperas " -"encontrar pronto más. Empiezas con una fuerte adicción a la nicotina." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150277,13 +146666,10 @@ msgstr "Fumadora Compulsiva" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Todos en el trabajo te conocían como la persona que siempre tenía un " -"cigarrillo o dos en la mano. Ahora, te queda un paquete solo y esperas " -"encontrar pronto más. Empiezas con una fuerte adicción a la nicotina." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150296,11 +146682,8 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"Cocaína. Es, en verdad, una droga tremenda. Desperdiciaste tu dinero en un " -"poco de polvo y antes de que te dieras cuenta estabas prostituyéndote detrás" -" de la farmacia CVS para poder conseguir una línea más." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150313,11 +146696,8 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"Cocaína. Es, en verdad, una droga tremenda. Desperdiciaste tu dinero en un " -"poco de polvo y antes de que te dieras cuenta estabas prostituyéndote detrás" -" de la farmacia CVS para poder conseguir una línea más." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150328,15 +146708,11 @@ msgstr "Vagabundo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"La sociedad te llevó hasta el límite y te puso a deambular, sin casa, sin " -"familia, sin amigos, solo con el consuelo del fondo de una botella. Pero la " -"sociedad ahora no significa nada, y a pesar de toda la mierda que te " -"tiraron, todavía estás en pie. Joder, te vendría bien un trago." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150347,15 +146723,11 @@ msgstr "Vagabunda" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"La sociedad te llevó hasta el límite y te puso a deambular, sin casa, sin " -"familia, sin amigos, solo con el consuelo del fondo de una botella. Pero la " -"sociedad ahora no significa nada, y a pesar de toda la mierda que te " -"tiraron, todavía estás en pie. Joder, te vendría bien un trago." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150366,12 +146738,10 @@ msgstr "Drogadicto" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"No estás muy seguro de lo que pasó, pero todo se fue a la mierda y la única " -"cosa que se te pasa por la cabeza es dónde conseguir un chute más." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150382,12 +146752,10 @@ msgstr "Drogadicta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"No estás muy segura de lo que pasó, pero todo se fue a la mierda y la única " -"cosa que se te pasa por la cabeza es dónde conseguir un chute más." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150399,13 +146767,9 @@ msgstr "Pastillero" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" -"Después de un accidente en tu juventud, te volviste adicto a los opiáceos " -"que tratan tu dolor. Con el cierre de las farmacias y los distribuidores " -"convertidos en muertos vivientes, satisfacer tu problema se vuelve mucho más" -" difícil." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150417,13 +146781,9 @@ msgstr "Pastillera" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" -"Después de un accidente en tu juventud, te volviste adicta a los opiáceos " -"que tratan tu dolor. Con el cierre de las farmacias y los distribuidores " -"convertidos en muertos vivientes, satisfacer tu problema se vuelve mucho más" -" difícil." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150434,8 +146794,9 @@ msgstr "Piloto de Helicóptero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -150447,8 +146808,9 @@ msgstr "Piloto de Helicóptero" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -150461,12 +146823,10 @@ msgstr "Oficial del K9" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" -"Pasaste tu carrera deteniendo a los traficantes de drogas con tu fiel " -"compañero canino. Ahora el mundo ha terminado y nada de eso importa ahora. " -"Pero al menos tienes un amigo fiel." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150478,12 +146838,10 @@ msgstr "Oficial del K9" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" -"Pasaste tu carrera deteniendo a los traficantes de drogas con tu fiel " -"compañero canino. Ahora el mundo ha terminado y nada de eso importa ahora. " -"Pero al menos tienes un amigo fiel." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150494,11 +146852,9 @@ msgstr "Loco de los gatos" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" -"¿Todos están muertos? Bueno, no importa ... ¡tus gatos son todos los amigos " -"que necesitas!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150509,11 +146865,9 @@ msgstr "Loca de los gatos" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" -"¿Todos están muertos? Bueno, no importa ... ¡tus gatos son todos los amigos " -"que necesitas!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150524,16 +146878,11 @@ msgstr "Agente de Policía" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Eras un simple ayudante del comisario en un pueblo chico. Cuando recibiste " -"el llamado, estabas preparado para ir al rescate. Pero inmediatamente eras " -"el que necesitaba rescate. Tuviste suerte de escapar vivo. ¿Quién respetará " -"tu autoridad ahora que el gobierno al que representa esta placa no existe " -"más?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150544,16 +146893,11 @@ msgstr "Agente de Policía" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Eras una simple ayudante del comisario en un pueblo chico. Cuando recibiste " -"el llamado, estabas preparada para ir al rescate. Pero inmediatamente eras " -"la que necesitaba rescate. Tuviste suerte de escapar viva. ¿Quién respetará " -"tu autoridad ahora que el gobierno al que representa esta placa no existe " -"más?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150564,13 +146908,10 @@ msgstr "Detective de Policía" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"Cuando ocurrió el Cataclismo, estabas en el umbral de hacer un gran " -"descubrimiento en tu último caso de homicidio. Ahora el sospechoso está " -"muerto. Todos están muerto. Necesitas un cigarrillo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150581,13 +146922,10 @@ msgstr "Detective de Policía" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"Cuando ocurrió el Cataclismo, estabas en el umbral de hacer un gran " -"descubrimiento en tu último caso de homicidio. Ahora el sospechoso está " -"muerto. Todos están muerto. Necesitas un cigarrillo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150600,13 +146938,9 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Como miembro de la división de elite de la fuerza policial, estás más que " -"adecuadamente entrenado y preparado para sobrevivir la brutal arremetida del" -" apocalipsis. Desafortunadamente, el colapso de la sociedad ahora te puso en" -" otra situación: tienes que pelear simplemente para seguir vivo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150619,13 +146953,9 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Como miembro de la división de elite de la fuerza policial, estás más que " -"adecuadamente entrenada y preparada para sobrevivir la brutal arremetida del" -" apocalipsis. Desafortunadamente, el colapso de la sociedad ahora te puso en" -" otra situación: tienes que pelear simplemente para seguir viva." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150636,15 +146966,11 @@ msgstr "Especialista SWAT CQC" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Miembro de la división de elite de la fuerza policial. Tu entrenamiento en " -"combate en espacios cerrados te ha mantenido vivo hasta ahora. " -"Lamentablemente, el colapso de la sociedad ahora te puso en otra situación: " -"tienes que pelear simplemente para seguir viviendo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150655,15 +146981,11 @@ msgstr "Especialista SWAT CQC" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Miembro de la división de elite de la fuerza policial. Tu entrenamiento en " -"combate en espacios cerrados te ha mantenido viva hasta ahora. " -"Lamentablemente, el colapso de la sociedad ahora te puso en otra situación: " -"tienes que pelear simplemente para seguir viviendo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150675,14 +146997,10 @@ msgstr "Francotirador Policía" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Tu habilidad como tirador preciso te ha sido muy útil en el cumplimiento de " -"tu deber, protegiendo a los inocentes con una sola bala bien ubicada. Ahora," -" la supervivencia está en juego, y no puedes darte el lujo de errar si no " -"quieres terminar siendo la cena de alguien." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150694,14 +147012,10 @@ msgstr "Francotiradora Policía" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Tu habilidad como tiradora precisa te ha sido muy útil en el cumplimiento de" -" tu deber, protegiendo a los inocentes con una sola bala bien ubicada. " -"Ahora, la supervivencia está en juego, y no puedes darte el lujo de errar si" -" no quieres terminar siendo la cena de alguien." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150712,15 +147026,11 @@ msgstr "Agente Antidisturbios" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"Los disturbios eran brutales incluso antes de que los muertos se levantaran " -"y empezaran a devorar a los vivos. En seguida quedó claro que la línea que " -"estabas aguantando iba a ceder - fue solo con un poco de suerte y mucho " -"cabezazo que pudiste escapar a salvo, y lo peor todavía está por suceder." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150731,15 +147041,11 @@ msgstr "Agente Antidisturbios" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"Los disturbios eran brutales incluso antes de que los muertos se levantaran " -"y empezaran a devorar a los vivos. En seguida quedó claro que la línea que " -"estabas aguantando iba a ceder - fue solo con un poco de suerte y mucho " -"cabezazo que pudiste escapar a salvo, y lo peor todavía está por suceder." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150750,14 +147056,10 @@ msgstr "Vendedor de Coches Usados" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Te han acusado de ser una clase de persona que podría vender a su propia " -"madre por un dólar. Siempre te pareció un insulto, tienes mucha experiencia " -"en el trabajo y cobrarías mucho más que un dólar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150768,14 +147070,10 @@ msgstr "Vendedora de Coches Usados" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Te han acusado de ser una clase de persona que podría vender a su propia " -"madre por un dólar. Siempre te pareció un insulto, tienes mucha experiencia " -"en el trabajo y cobrarías mucho más que un dólar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150786,15 +147084,11 @@ msgstr "Arquero Cazador" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"Desde que eras niño te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con un arco. Por eso, si el mundo termina no hay otra cosa " -"que quieras más tener contigo que tu fiel arco. Así que cuando sucedió, te " -"aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150805,15 +147099,11 @@ msgstr "Arquera Cazadora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"Desde que eras niña te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con un arco. Por eso, si el mundo termina no hay otra cosa " -"que quieras más tener contigo que tu fiel arco. Así que cuando sucedió, te " -"aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150824,15 +147114,11 @@ msgstr "Ballestero Cazador" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"Desde que eras niño te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con una ballesta. Por eso, si el mundo termina no hay otra " -"cosa que quieras más tener contigo que tu fiel ballesta. Así que cuando " -"sucedió, te aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150843,15 +147129,11 @@ msgstr "Ballestera Cazadora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"Desde que eras niña te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con una ballesta. Por eso, si el mundo termina no hay otra " -"cosa que quieras más tener contigo que tu fiel ballesta. Así que cuando " -"sucedió, te aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150862,15 +147144,11 @@ msgstr "Cazador con Escopeta" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"Desde que eras niño te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con una escopeta. Por eso, si el mundo termina no hay otra " -"cosa que quieras más tener contigo que tu fiel escopeta. Así que cuando " -"sucedió, te aseguraste de tenerla encima." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150881,15 +147159,11 @@ msgstr "Cazadora con Escopeta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"Desde que eras niña te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con una escopeta. Por eso, si el mundo termina no hay otra " -"cosa que quieras más tener contigo que tu fiel escopeta. Así que cuando " -"sucedió, te aseguraste de tenerla encima." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150900,15 +147174,11 @@ msgstr "Cazador con Rifle" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"Desde que eras niño te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con un rifle. Por eso, si el mundo termina no hay otra cosa" -" que quieras más tener contigo que tu fiel rifle. Así que cuando sucedió, te" -" aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150919,15 +147189,11 @@ msgstr "Cazadora con Rifle" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"Desde que eras niña te encantaba cazar, e inmediatamente te interesó el " -"desafío de cazar con un rifle. Por eso, si el mundo termina no hay otra cosa" -" que quieras más tener contigo que tu fiel rifle. Así que cuando sucedió, te" -" aseguraste de tenerlo encima." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150938,15 +147204,11 @@ msgstr "Manitas" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"Trabajabas en la ferretería y en tu casa hacías todas las reparaciones ti " -"mismo. Ahora miras al horizonte de este mundo en ruinas, y te preguntás si " -"tus escasas habilidades y las pocas provisiones que pudiste agarrar, serán " -"suficientes para ayudarte a reconstruirlo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -150957,15 +147219,11 @@ msgstr "Manitas" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"Trabajabas en la ferretería y en tu casa hacías todas las reparaciones tú " -"misma. Ahora miras al horizonte de este mundo en ruinas, y te preguntas si " -"tus escasas habilidades y las pocas provisiones que pudiste agarrar, serán " -"suficientes para ayudarte a reconstruirlo" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -150976,9 +147234,8 @@ msgstr "Camionero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -150990,9 +147247,8 @@ msgstr "Camionera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -151034,13 +147290,11 @@ msgstr "Mochilero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Te pasaste la vida viajando, haciendo turismo por aquí y por allá, y " -"viviendo de la herencia de tus viejos. Pero ahora ellos ya no están y la " -"única cosa entre tú y la muerte es un camino y tu mochila." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151051,13 +147305,11 @@ msgstr "Mochilera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Te pasaste la vida viajando, haciendo turismo por aquí y por allá, y " -"viviendo de la herencia de tus viejos. Pero ahora ellos ya no están y la " -"única cosa entre tú y la muerte es un camino y tu mochila." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151068,11 +147320,10 @@ msgstr "Cocinero Com. Rápida" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Hace una semana trabajabas en un puesto de comidas rápidas, pero ahora " -"resignificaste eso de comida \"rápida\" corriendo para salvar tu vida." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151083,11 +147334,10 @@ msgstr "Cocinera Com. Rápida" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Hace una semana trabajabas en un puesto de comidas rápidas, pero ahora " -"resignificaste eso de comida \"rápida\" corriendo para salvar tu vida." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151098,16 +147348,9 @@ msgstr "Electricista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" -"Solías trabajar para algunos propietarios de pequeñas empresas que " -"realizaban trabajos eléctricos menores, y resulta que estabas trabajando en " -"uno de esos chistes de un refugio de evacuación cuando se produjo el " -"Cataclismo. Desafortunadamente, no terminaste de cablear nada excepto la " -"computadora, mucho bien que te está haciendo ahora." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151118,16 +147361,9 @@ msgstr "Electricista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" -"Solías trabajar para algunos propietarios de pequeñas empresas que " -"realizaban trabajos eléctricos menores, y resulta que estabas trabajando en " -"uno de esos chistes de un refugio de evacuación cuando se produjo el " -"Cataclismo. Desafortunadamente, no terminaste de cablear nada excepto la " -"computadora, mucho bien que te está haciendo ahora." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151138,14 +147374,11 @@ msgstr "Hacker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"Las píldoras de cafeína y las noches en frente de una pantalla de " -"computadora te han dado habilidades en un área que, a primera vista, parece " -"claramente menos que útil cuando el mundo ha terminado. A menos que consigas" -" encontrar una unidad central militar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151156,14 +147389,11 @@ msgstr "Hacker" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"Las píldoras de cafeína y las noches en frente de una pantalla de " -"computadora te han dado habilidades en un área que, a primera vista, parece " -"claramente menos que útil cuando el mundo ha terminado. A menos que consigas" -" encontrar una unidad central militar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151174,13 +147404,11 @@ msgstr "Estudiante" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Eras un estudiante secundario pero los exámenes que vas a enfrentar ahora " -"tienen mucha más importancia. Tal vez haya algo útil en uno de esos libros " -"que estuviste arrastrando todo el año." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151191,13 +147419,11 @@ msgstr "Estudiante" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Eras una estudiante secundaria pero los exámenes que vas a enfrentar ahora " -"tienen mucha más importancia. Tal vez haya algo útil en uno de esos libros " -"que estuviste arrastrando todo el año." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151208,13 +147434,10 @@ msgstr "Víctima en la Ducha" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" -"¡Estabas en medio de una agradable ducha caliente cuando golpeó el " -"Cataclismo! Apenas lograste escapar con un poco de jabón y la cosa más " -"enormemente útil... una toalla." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151225,13 +147448,10 @@ msgstr "Víctima en la Ducha" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" -"¡Estabas en medio de una agradable ducha caliente cuando golpeó el " -"Cataclismo! Apenas lograste escapar con un poco de jabón y la cosa más " -"enormemente útil... una toalla." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151242,11 +147462,9 @@ msgstr "Motero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Te pasaste la mayor parte de tu vida arriba de una Harley, y es natural que " -"te pases el resto manejando una." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151257,11 +147475,9 @@ msgstr "Motera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Te pasaste la mayor parte de tu vida arriba de una Harley, y es natural que " -"te pases el resto manejando una." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151272,11 +147488,10 @@ msgstr "Bailarín de Salón" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" -"Solías ser bailarín de salón de baile antes del Cataclismo, y ahora usas tus" -" habilidades para salvar tu vida." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151287,11 +147502,10 @@ msgstr "Bailarina de Salón" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" -"Solías ser bailarina de salón de baile antes del Cataclismo, y ahora usas " -"tus habilidades para salvar tu vida." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151302,13 +147516,10 @@ msgstr "Ladrón Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Has realizado muchos asaltos de alta notoriedad, pero tus ganancias no " -"significan nada en este mundo. Lo único que te queda son las herramientas de" -" tu profesión y tu estilo impecable." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151319,13 +147530,10 @@ msgstr "Ladrona Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Has realizado muchos asaltos de alta notoriedad, pero tus ganancias no " -"significan nada en este mundo. Lo único que te queda son las herramientas de" -" tu profesión y tu estilo impecable." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151336,16 +147544,11 @@ msgstr "Paciente Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"Cuando el diagnóstico fue positivo te inscribiste para una serie de cirugías" -" biónicas experimentales que te salvaron la vida. Ahora estás más sano que " -"nunca, gracias a un conjunto de sistemas biónicos alimentados con tus " -"propias funciones metabólicas. Aprovecha al máximo tu segunda oportunidad en" -" la vida." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151356,16 +147559,11 @@ msgstr "Paciente Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"Cuando el diagnóstico fue positivo te inscribiste para una serie de cirugías" -" biónicas experimentales que te salvaron la vida. Ahora estás más sana que " -"nunca, gracias a un conjunto de sistemas biónicos alimentados con tus " -"propias funciones metabólicas. Aprovecha al máximo tu segunda oportunidad en" -" la vida." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151376,12 +147574,9 @@ msgstr "Paciente" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Cuando el diagnóstico fue positivo, estabas dispuesto a luchar para seguir " -"viviendo. Ahora, vas a tener que renovar tus votos de tenacidad en estos " -"nuevos tiempos." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151392,12 +147587,9 @@ msgstr "Paciente" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Cuando el diagnóstico fue positivo, estabas dispuesta a luchar para seguir " -"viviendo. Ahora, vas a tener que renovar tus votos de tenacidad en estos " -"nuevos tiempos." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151409,10 +147601,9 @@ msgstr "Mutante Involuntario" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" -"Eras una conejilla de indias humana, usada por los laboratorios para " -"entender el inmenso poder de las mutaciones." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151424,10 +147615,9 @@ msgstr "Mutante Involuntaria" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" -"Eras una conejilla de indias humana, usada por los laboratorios para " -"entender el inmenso poder de las mutaciones." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151439,13 +147629,9 @@ msgstr "Mutante Voluntario" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"Tus sueños de convertirte en un mutante super-humano a través de " -"alteraciones genéticas pueden haberse quedado un poco cortos, pero ahora que" -" ocurrió el Cataclismo, tú y los científicos están listos para poner tu " -"cuerpo a prueba." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151457,13 +147643,9 @@ msgstr "Mutante Voluntaria" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"Tus sueños de convertirte en una mutante super-humano a través de " -"alteraciones genéticas pueden haberse quedado un poco cortos, pero ahora que" -" ocurrió el Cataclismo, tú y los científicos están listos para poner tu " -"cuerpo a prueba." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151476,12 +147658,9 @@ msgctxt "prof_desc_male" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"Alguna vez fuiste normal. Antes de las pruebas, antes de los procedimientos," -" antes de que ellos te quitaran cada uno de tus signos de humanidad. Ahora, " -"eres más máquina que hombre, pero eso puede ser una ventaja contra los " -"horrores que te esperan." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151494,12 +147673,9 @@ msgctxt "prof_desc_female" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"Alguna vez fuiste normal. Antes de las pruebas, antes de los procedimientos," -" antes de que ellos te quitaran cada uno de tus signos de humanidad. Ahora, " -"eres más máquina que mujer, pero eso puede ser una ventaja contra los " -"horrores que te esperan." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151548,13 +147724,10 @@ msgstr "Atleta Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Es una lástima que haya ocurrido el apocalipsis porque nunca tendrás tu " -"oportunidad de participar en las Ciberolimpiadas. Ahora lo único entre tú y " -"un zombi matándote, es tu extravagante fuerza de cíborg." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151565,13 +147738,10 @@ msgstr "Atleta Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Es una lástima que haya ocurrido el apocalipsis porque nunca tendrás tu " -"oportunidad de participar en las Ciberolimpiadas. Ahora lo único entre tú y " -"un zombi matándote, es tu extravagante fuerza de cíborg." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151582,13 +147752,10 @@ msgstr "Corredor biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" -"Eras ese tipo de deportista que no podía salirse de la pista. Te encanta " -"correr y mejoraste tu cuerpo para hacerlo aún mejor. Ahora hay mucho de qué " -"correr, pero este es tu tipo de juego." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151599,13 +147766,10 @@ msgstr "Corredora biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" -"Eras ese tipo de deportista que no podía salirse de la pista. Te encanta " -"correr y mejoraste tu cuerpo para hacerlo aún mejor. Ahora hay mucho de qué " -"correr, pero este es tu tipo de juego." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151653,12 +147817,9 @@ msgstr "Bombero Biónico" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"Como un bombero renovado de segunda generación, fuiste mejorado " -"cibernéticamente para operar en las emergencias más extremas. El fin del " -"mundo definitivamente cuenta como una situación extrema." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151670,12 +147831,9 @@ msgstr "Bombera Biónica" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"Como una bombera renovada de segunda generación, fuiste mejorada " -"cibernéticamente para operar en las emergencias más extremas. El fin del " -"mundo definitivamente cuenta como una situación extrema." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151686,13 +147844,10 @@ msgstr "Cerebrito Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" -"Antes del apocalipsis trabajabas en una gran corporación internacional como " -"representante y asesor técnico, utilizando el increíble poder de tu mente " -"cibernéticamente mejorada." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151703,13 +147858,10 @@ msgstr "Cerebrito Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" -"Antes del apocalipsis trabajabas en una gran corporación internacional como " -"representante y asesora técnica, utilizando el increíble poder de tu mente " -"cibernéticamente mejorada." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151720,14 +147872,10 @@ msgstr "Soldado Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"Eres el resultado de uno de los últimos programas de investigación militar, " -"el prototipo de un cibersoldado. Todavía estás vivo gracias a tus mejoras, " -"incluso luego de que todos tus camaradas murieron ante los muertos " -"vivientes." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151738,14 +147886,10 @@ msgstr "Soldado Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"Eres el resultado de uno de los últimos programas de investigación militar, " -"el prototipo de una cibersoldado. Todavía estás viva gracias a tus mejoras, " -"incluso luego de que todos tus camaradas murieron ante los muertos " -"vivientes." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151756,13 +147900,11 @@ msgstr "Francotirador Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Tus biónicos, equipo y amplio entrenamiento de campo te permiten derribar " -"objetivos desde distancias inverosímiles, incluso después de semanas de " -"total aislamiento en territorio enemigo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151773,13 +147915,11 @@ msgstr "Francotiradora Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Tus biónicos, equipo y amplio entrenamiento de campo te permiten derribar " -"objetivos desde distancias inverosímiles, incluso después de semanas de " -"total aislamiento en territorio enemigo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151790,15 +147930,11 @@ msgstr "Agente Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Tu cuerpo tiene varios biónicos por valor de millones de dólares, pagados " -"con impuestos públicos. El gobierno te ha convertido en un especialista en " -"infiltración y reconocimiento: tienes visión nocturna, una alarma, " -"capacidades de abrir cerraduras y un módulo de piratería." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151809,15 +147945,11 @@ msgstr "Agente Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Tu cuerpo tiene varios biónicos por valor de millones de dólares, pagados " -"con impuestos públicos. El gobierno te ha convertido en una especialista en " -"infiltración y reconocimiento: tienes visión nocturna, una alarma, " -"capacidades de abrir cerraduras y un módulo de piratería." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151830,11 +147962,8 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"El producto de millones de dólares de investigación clandestina, eres un " -"agente durmiente biónico capaz de atacar silenciosamente tu objetivo " -"manteniendo un aspecto inofensivo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151847,11 +147976,8 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"El producto de millones de dólares de investigación clandestina, eres una " -"agente durmiente biónica capaz de atacar silenciosamente tu objetivo " -"manteniendo un aspecto inofensivo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151862,11 +147988,10 @@ msgstr "Mafioso biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -151878,11 +148003,10 @@ msgstr "Mafiosa biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -151894,13 +148018,10 @@ msgstr "Cíborg Fallido" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Tu cuerpo es un barullo de partes biónicas. Tienes mucha capacidad de " -"energía pero estás lleno de biónicos rotos. Por lo menos, tu suministro de " -"energía a etanol todavía funciona." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151911,13 +148032,10 @@ msgstr "Cíborg Fallida" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Tu cuerpo es un barullo de partes biónicas. Tienes mucha capacidad de " -"energía pero estás llena de biónicos rotos. Por lo menos, tu suministro de " -"energía a etanol todavía funciona." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -151929,16 +148047,8 @@ msgstr "Cíborg Comercial" msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" -"Siempre tenías que tener los mejores y más recientes artilugios y gadgets, " -"así que no es de extrañar que hayas mejorado tu cuerpo junto con tu teléfono" -" inteligente. Solo el tiempo dirá si tu pasión por la electrónica y tu " -"estatus como maravilla de la tecnología biónica serán suficientes para " -"garantizar tu supervivencia después del apocalipsis." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -151950,16 +148060,8 @@ msgstr "Cíborg Comercial" msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" -"Siempre tenías que tener los mejores y más recientes artilugios y gadgets, " -"así que no es de extrañar que hayas mejorado tu cuerpo junto con tu teléfono" -" inteligente. Solo el tiempo dirá si tu pasión por la electrónica y tu " -"estatus como maravilla de la tecnología biónica serán suficientes para " -"garantizar tu supervivencia después del apocalipsis." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152003,12 +148105,9 @@ msgstr "Trampero" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"Te pasaste la mayor parte de tu vida poniendo trampas con tu viejo. Los dos " -"vivieron bien de lo que cazaban y de los tutoriales que hacían. Con suerte, " -"tus habilidades te servirán contra una presa menos convencional." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152020,12 +148119,9 @@ msgstr "Trampera" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"Te pasaste la mayor parte de tu vida poniendo trampas con tu viejo. Los dos " -"vivieron bien de lo que cazaban y de los tutoriales que hacían. Con suerte, " -"tus habilidades te servirán contra una presa menos convencional." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152036,14 +148132,10 @@ msgstr "Herrero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"Estabas en el medio de tus estudios de Trabajo del Metal, en el Espacio de " -"Formación Profesional Superior, cuando el mundo se terminó. Tuviste algunos " -"problemas al salir corriendo de la clase, pero te pudiste llevar las cosas " -"que tenías en ese momento." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152054,14 +148146,10 @@ msgstr "Herrera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"Estabas en el medio de tus estudios de Trabajo del Metal, en el Espacio de " -"Formación Profesional Superior, cuando el mundo se terminó. Tuviste algunos " -"problemas al salir corriendo de la clase, pero te pudiste llevar las cosas " -"que tenías en ese momento." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152074,12 +148162,8 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"Todo lo que siempre quisiste es que la gente se riera. Dejar la escuela para" -" actuar en las fiestas de los chicos era tu sueño hecho realidad, hasta que " -"el mundo se terminó. Ahora, en tu futuro habrá pocos de esos preciosos " -"globos con formas de animales." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152092,12 +148176,8 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"Todo lo que siempre quisiste es que la gente se riera. Dejar la escuela para" -" actuar en las fiestas de los chicos era tu sueño hecho realidad, hasta que " -"el mundo se terminó. Ahora, en tu futuro habrá pocos de esos preciosos " -"globos con formas de animales." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152108,15 +148188,11 @@ msgstr "Sumiso Perdido" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"En las apuradas por buscar refugio, fuiste separado de tu amo por el cruel " -"destino. Ahora estás solo y no tienes nada más que un traje de cuero negro " -"bastante pervertido. Lamentablemente, no existen las palabras de seguridad " -"en el apocalipsis." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152127,15 +148203,11 @@ msgstr "Sumisa Perdida" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"En las apuradas por buscar refugio, fuiste separada de tu amo por el cruel " -"destino. Ahora estás sola y no tienes nada más que un traje de cuero negro " -"bastante pervertido. Lamentablemente, no existen las palabras de seguridad " -"en el apocalipsis." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152180,14 +148252,11 @@ msgstr "Otaku" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Quedarse hasta tarde con tus amigos mirando animé y picando algo te preparó " -"para la principal convención de animé en el noreste. Pero justo era el día " -"del apocalipsis. Por lo menos, estás preparado por si se te rompe el " -"disfraz." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152198,14 +148267,11 @@ msgstr "Otaku" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Quedarse hasta tarde con tus amigos mirando animé y picando algo te preparó " -"para la principal convención de animé en el noreste. Pero justo era el día " -"del apocalipsis. Por lo menos, estás preparada por si se te rompe el " -"disfraz." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152246,11 +148312,9 @@ msgstr "Tío PunkRocker" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"El apocalipsis es tu sueño psicótico hecho realidad. Ahora que ha muerto el " -"sistema, ¡es momento de bailar entre los huesos del mundo!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152261,11 +148325,9 @@ msgstr "Tía PunkRocker" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"El apocalipsis es tu sueño psicótico hecho realidad. Ahora que ha muerto el " -"sistema, ¡es momento de bailar entre los huesos del mundo!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152276,15 +148338,11 @@ msgstr "Bombero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Como socorrista fuiste testigo directo de los horrores desgarradores del " -"apocalipsis. Separado de la mayoría de tu equipo y tu unidad mientras " -"estabas de guardia, te viste obligado a luchar para llegar a un lugar seguro" -" con poco más que tu fiel armadura y tu equipo ignífugo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152295,15 +148353,11 @@ msgstr "Bombera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Como socorrista fuiste testiga directo de los horrores desgarradores del " -"apocalipsis. Separada de la mayoría de tu equipo y tu unidad mientras " -"estabas de guardia, te viste obligada a luchar para llegar a un lugar seguro" -" con poco más que tu fiel armadura y tu equipo ignífugo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152314,11 +148368,9 @@ msgstr "Chico Rudo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" -"Tu banda de ska se separó después de que el batería se hizo zombi. Ahora " -"estás solo en el Cataclismo con algunos cigarrillos y tu reproductor de mp3." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152329,11 +148381,9 @@ msgstr "Chica Ruda" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" -"Tu banda de ska se separó después de que el batería se hizo zombi. Ahora " -"estás sola en el Cataclismo con algunos cigarrillos y tu reproductor de mp3." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152344,11 +148394,9 @@ msgstr "Cartero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Tu habilidad para esquivar perros y juguetes tirados mientras dejas las " -"cartas, te da una ventaja para tu nuevo rol de superviviente." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152359,11 +148407,9 @@ msgstr "Cartera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Tu habilidad para esquivar perros y juguetes tirados mientras dejas las " -"cartas, te da una ventaja para tu nuevo rol de superviviente." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152374,11 +148420,10 @@ msgstr "Convicto" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" -"El cataclismo te dio la oportunidad de escapar, pero la libertad viene con " -"un precio demasiado elevado." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152389,11 +148434,10 @@ msgstr "Convicta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" -"El cataclismo te dio la oportunidad de escapar, pero la libertad viene con " -"un precio demasiado elevado." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152404,13 +148448,10 @@ msgstr "Condenado a muerte" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" -"Eras un asesino en serie listo para caminar la milla verde, pero ahora todos" -" los demás están muertos, y dado que la verdadera muerte solo viene de tus " -"manos, te espera un buen trabajo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152421,13 +148462,10 @@ msgstr "Condenada a muerte" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" -"Eras una asesina en serie listo para caminar la milla verde, pero ahora " -"todos los demás están muertos, y dado que la verdadera muerte solo viene de " -"tus manos, te espera un buen trabajo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152440,7 +148478,7 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -152454,7 +148492,7 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -152494,8 +148532,9 @@ msgstr "Prisionero político" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -152507,8 +148546,9 @@ msgstr "Prisionera política" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -152548,11 +148588,10 @@ msgstr "Ladrón" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Pensaste que esta podía ser tu gran oportunidad. ¿Cuenta como violación a la" -" propiedad privada si los dueños son muertos vivientes?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152563,11 +148602,10 @@ msgstr "Ladrona" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Pensaste que esta podía ser tu gran oportunidad. ¿Cuenta como violación a la" -" propiedad privada si los dueños son muertos vivientes?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152578,15 +148616,9 @@ msgstr "Mercenario Biónico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"A través de una serie de cirugías caras y dolorosas, te convertiste en un " -"arma biónica ambulante. Tus servicios como mercenario estaban disponibles al" -" mejor postor. Ahora que el mundo se terminó, esas mejoras biónicas pueden " -"ser la diferencia entre la vida y la muerte." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152597,15 +148629,9 @@ msgstr "Mercenaria Biónica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"A través de una serie de cirugías caras y dolorosas, te convertiste en un " -"arma biónica ambulante. Tus servicios como mercenaria estaban disponibles al" -" mejor postor. Ahora que el mundo se terminó, esas mejoras biónicas pueden " -"ser la diferencia entre la vida y la muerte." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152618,13 +148644,9 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Hace mucho, tu capricho con las mejoras biónicas te llevó a un mundo oscuro " -"de clínicas biónicas en callejones perdidos y auto-instalaciones de MCB " -"usados. El mundo cambió pero tu hambre posthumana todavía grita por ser " -"satisfecha. ¿Dónde conseguirás ahora ese repuesto biónico?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152637,13 +148659,9 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Hace mucho, tu capricho con las mejoras biónicas te llevó a un mundo oscuro " -"de clínicas biónicas en callejones perdidos y auto-instalaciones de MCB " -"usados. El mundo cambió pero tu hambre posthumana todavía grita por ser " -"satisfecha. ¿Dónde conseguirás ahora ese repuesto biónico?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152655,14 +148673,9 @@ msgstr "Monstruo Biónico" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Totalmente superado por la psicosis inducida por los biónicos, eres un " -"monstruo posthumano deforme que no tenía lugar en la sociedad. Pero ahora, " -"donde antes eras forzado a esconderte en las sombras, encuentras un mundo " -"desolado donde incluso una criatura como tú puede tener su lugar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152674,14 +148687,9 @@ msgstr "Monstruo Biónica" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Totalmente superada por la psicosis inducida por los biónicos, eres un " -"monstruo posthumano deforme que no tenía lugar en la sociedad. Pero ahora, " -"donde antes eras forzada a esconderte en las sombras, encuentras un mundo " -"desolado donde incluso una criatura como tú puede tener su lugar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152692,11 +148700,10 @@ msgstr "Abogado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Ahora en lugar de quejarse por tus honorarios, tus clientes intentan comerte" -" el cerebro. Pero no sabes cuál de las dos cosas es peor." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152707,11 +148714,10 @@ msgstr "Abogada" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Ahora en lugar de quejarse por tus honorarios, tus clientes intentan comerte" -" el cerebro. Pero no sabes cuál de las dos cosas es peor." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152722,15 +148728,10 @@ msgstr "Cura" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Cuando sucedió el apocalipsis, hiciste todo lo que pudiste para proteger " -"fielmente tu parroquia, pero parece que las plegarias no fueron suficientes." -" Ahora que están todos muertos, deberías encontrar algo más tangible para " -"protegerte." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152741,15 +148742,10 @@ msgstr "Diaconisa" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Cuando sucedió el apocalipsis, hiciste todo lo que pudiste para proteger " -"fielmente tu parroquia, pero parece que las plegarias no fueron suficientes." -" Ahora que están todos muertos, deberías encontrar algo más tangible para " -"protegerte." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152795,14 +148791,10 @@ msgstr "Imán" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Antes del apocalipsis, pasabas mucho tiempo en la mezquita local, estudiando" -" las palabras del Profeta y del Corán, y guiando a tu comunidad en la " -"oración. Antes venían de todas partes para escucharte, ahora vienen para " -"comerte el cerebro." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152814,14 +148806,10 @@ msgstr "Mourchida" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Antes del apocalipsis, pasabas mucho tiempo en la mezquita local, estudiando" -" las palabras del Profeta y del Corán, y guiando a tu comunidad en la " -"oración. Antes venían de todas partes para escucharte, ahora vienen para " -"comerte el cerebro." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152897,14 +148885,10 @@ msgstr "Pastor" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"Comprometiste tu vida a difundir la palabra, siempre en el camino, viajando " -"de pueblo en pueblo. Ahora, todo se fue al infierno, ya no puedes hacer tu " -"podcast diario y los muertos vivientes que escuchan tus sermones no parecen " -"particularmente conmovidos." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152916,14 +148900,10 @@ msgstr "Pastora" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"Comprometiste tu vida a difundir la palabra, siempre en el camino, viajando " -"de pueblo en pueblo. Ahora, todo se fue al infierno, ya no puedes hacer tu " -"podcast diario y los muertos vivientes que escuchan tus sermones no parecen " -"particularmente conmovidos." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -152934,11 +148914,9 @@ msgstr "Artista Marcial Novato" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Estabas yendo al dojo para tu primera clase cuando el mundo terminó. Y " -"también tenías ganas de aprender a nadar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -152949,11 +148927,9 @@ msgstr "Artista Marcial Novata" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Estabas yendo al dojo para tu primera clase cuando el mundo terminó. Y " -"también tenías ganas de aprender a nadar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153026,11 +149002,9 @@ msgstr "Boxeador" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Estabas entrenándote para la pelea de tu vida antes de que suceda el " -"Cataclismo. Ahora solamente peleás para mantenerte con vida." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153041,11 +149015,9 @@ msgstr "Boxeadora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Estabas entrenándote para la pelea de tu vida antes de que suceda el " -"Cataclismo. Ahora solamente peleás para mantenerte con vida." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153057,14 +149029,10 @@ msgstr "Repartidor de pizzas" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" -"Estabas entregando la última pizza de la noche al laboratorio local de " -"criogenización cuando llegó el Cataclismo. Al huir al refugio más cercano, " -"te encuentras solo con tu ingenio y un poco de pizza sobrante. ¡Y ni " -"siquiera dejaron propina!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153076,14 +149044,10 @@ msgstr "Repartidora de pizzas" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" -"Estabas entregando la última pizza de la noche al laboratorio local de " -"criogenización cuando llegó el Cataclismo. Al huir al refugio más cercano, " -"te encuentras sola con tu ingenio y un poco de pizza sobrante. ¡Y ni " -"siquiera dejaron propina!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153094,13 +149058,10 @@ msgstr "Arqueólogo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"Mientras ibas hacia el templo perdido siguiendo una pista del diario " -"personal de tu abuelo muerto, el suelo comenzó a temblar descontroladamente." -" Eso te dio una mala sensación, así que te fuiste al refugio más cercano." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153111,13 +149072,10 @@ msgstr "Arqueóloga" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"Mientras ibas hacia el templo perdido siguiendo una pista del diario " -"personal de tu abuelo muerto, el suelo comenzó a temblar descontroladamente." -" Eso te dio una mala sensación, así que te fuiste al refugio más cercano." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153128,13 +149086,10 @@ msgstr "Repartidor de periódicos" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Estabas entregando el diario matutino por tu ruta diaria, cuando el " -"cataclismo ocurrió. Las hordas de muertos vivientes no parecen valorar las " -"noticias, pero al menos tu querida bicicleta todavía funciona." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153145,13 +149100,10 @@ msgstr "Repartidora de periódicos" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Estabas entregando el diario matutino por tu ruta diaria, cuando el " -"cataclismo ocurrió. Las hordas de muertos vivientes no parecen valorar las " -"noticias, pero al menos tu querida bicicleta todavía funciona." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153162,15 +149114,11 @@ msgstr "Jugador Roller Derby" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"Eras un infierno sobre ruedas antes. Ahora el resto del equipo está muerto, " -"y tal vez no hubieras sobrevivido tanto si no fuera por tu afición a la " -"violencia de alta velocidad. Las cosas son desalentadoras. ¿Cuánta vueltas " -"podrás dar alrededor de los muertos vivientes hasta que puedan bloquearte?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153181,15 +149129,11 @@ msgstr "Jugadora Roller Derby" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"Eras un infierno sobre ruedas antes. Ahora el resto del equipo está muerto, " -"y tal vez no hubieras sobrevivido tanto si no fuera por tu afición a la " -"violencia de alta velocidad. Las cosas son desalentadoras. ¿Cuánta vueltas " -"podrás dar alrededor de los muertos vivientes hasta que puedan bloquearte?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153200,13 +149144,10 @@ msgstr "Granjero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" -"Te estabas ganando la vida cultivando, cuando llegó el Cataclismo. Ahora, " -"con tu querida azada y algunas semillas, es hora de reconstruir la Tierra, " -"una planta a la vez." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153217,13 +149158,10 @@ msgstr "Granjera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" -"Te estabas ganando la vida cultivando, cuando llegó el Cataclismo. Ahora, " -"con tu querida azada y algunas semillas, es hora de reconstruir la Tierra, " -"una planta a la vez." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153234,14 +149172,10 @@ msgstr "Guardia Nacional" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"Cuando apareció la epidemia, tu unidad de la Guardia Nacional fue convocada." -" A pesar de tus esfuerzos, no lograste reunirte con el resto de la unidad " -"antes de que todas las comunicaciones se cortaran, y quedaste solo entre los" -" muertos." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153252,14 +149186,10 @@ msgstr "Guardia Nacional" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"Cuando apareció la epidemia, tu unidad de la Guardia Nacional fue convocada." -" A pesar de tus esfuerzos, no lograste reunirte con el resto de la unidad " -"antes de que todas las comunicaciones se cortaran, y quedaste sola entre los" -" muertos." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153271,12 +149201,9 @@ msgstr "Chatarrero Curtido" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" -"Uno de los pocos afortunados que escapó del Cataclismo, te ganaste la vida " -"en las ruinas de otros. Ya sea por la fuerza, astucia o suerte, has obtenido" -" el mejor equipo que pudiste encontrar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153288,12 +149215,9 @@ msgstr "Chatarrera Curtida" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" -"Una de las pocas afortunadas que escapó del Cataclismo, te ganaste la vida " -"en las ruinas de otros. Ya sea por la fuerza, astucia o suerte, has obtenido" -" el mejor equipo que pudiste encontrar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153304,15 +149228,11 @@ msgstr "Militar Rezagado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"Debes haber prestado bastante atención curso de supervivencia durante el " -"campo de entrenamiento básico, si no nunca hubieras vivido lo suficiente " -"para sobrevivir a toda la cadena de comando y verte envuelto en este apuro. " -"La única misión ahora es sobrevivir." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153323,15 +149243,11 @@ msgstr "Militar Rezagada" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"Debes haber prestado bastante atención curso de supervivencia durante el " -"campo de entrenamiento básico, si no nunca hubieras vivido lo suficiente " -"para sobrevivir a toda la cadena de comando y verte envuelta en este apuro. " -"La única misión ahora es sobrevivir." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153342,13 +149258,10 @@ msgstr "Seguridad de Supermercado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Eras seguridad de un supermercado. No tienes ninguna habilidad muy útil más " -"que un entrenamiento básico para tu trabajo. Sin embargo, sí tienes tu " -"confiable pistola eléctrica, tu bastón y tu navaja." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153359,13 +149272,10 @@ msgstr "Seguridad de Supermercado" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Eras seguridad de un supermercado. No tienes ninguna habilidad muy útil más " -"que un entrenamiento básico para tu trabajo. Sin embargo, sí tienes tu " -"confiable pistola eléctrica, tu bastón y tu navaja." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153376,13 +149286,10 @@ msgstr "Naturalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"Has llegado a entenderte muy bien con la Madre Naturaleza a lo largo de " -"muchos años de exilio autoimpuesto en tierras salvajes. El mundo conocido " -"puede haber terminado, pero casi ni notas la diferencia." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153393,13 +149300,10 @@ msgstr "Naturalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"Has llegado a entenderte muy bien con la Madre Naturaleza a lo largo de " -"muchos años de exilio autoimpuesto en tierras salvajes. El mundo conocido " -"puede haber terminado, pero casi ni notas la diferencia." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153410,15 +149314,11 @@ msgstr "Pescador" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Pasaste la mayor parte de tus días pescando en los pantanos, arreglándote " -"con lo que pescabas. Podrías disfrutar del zumbido de los insectos, pero " -"estos se volvieron más grandes y malos. Sus horribles ruidos ahora te " -"asustan, y deseas que a los peces no les haya pasado lo mismo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153429,15 +149329,11 @@ msgstr "Pescadora" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Pasaste la mayor parte de tus días pescando en los pantanos, arreglándote " -"con lo que pescabas. Podrías disfrutar del zumbido de los insectos, pero " -"estos se volvieron más grandes y malos. Sus horribles ruidos ahora te " -"asustan, y deseas que a los peces no les haya pasado lo mismo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153517,12 +149413,9 @@ msgstr "Operador de Drone" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Tuviste un trabajo como programador de máquinas como ahora limpiadores " -"automáticos de calles, robots noticieros y drones de entrega de pizza. Ahora" -" todos los drones llevan armas en lugar de pizza." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153534,12 +149427,9 @@ msgstr "Operadora de Drone" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Tuviste un trabajo como programador de máquinas como ahora limpiadores " -"automáticos de calles, robots noticieros y drones de entrega de pizza. Ahora" -" todos los drones llevan armas en lugar de pizza." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153550,11 +149440,10 @@ msgstr "Skater" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"¡Te encanta el skate! Por lo menos ahora los adultos no te van a andar " -"diciendo por dónde no puedes andar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153565,11 +149454,10 @@ msgstr "Skater" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"¡Te encanta el skate! Por lo menos ahora los adultos no te van a andar " -"diciendo por dónde no puedes andar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153580,15 +149468,11 @@ msgstr "Delincuente Juvenil" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"Nunca te importó lo que los adultos te decían que tenías que hacer, y así es" -" como terminaste pasando la mayoría de los días en la oficina del director. " -"Ahora, la única razón por la que estás vivo es que no necesitas que los " -"adultos te digan lo que hay que hacer. Te podrías haber hecho la rata hoy." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153599,15 +149483,11 @@ msgstr "Delincuente Juvenil" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"Nunca te importó lo que los adultos te decían que tenías que hacer, y así es" -" como terminaste pasando la mayoría de los días en la oficina del director. " -"Ahora, la única razón por la que estás vivo es que no necesitas que los " -"adultos te digan lo que hay que hacer. Te podrías haber hecho la rata hoy." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153659,14 +149539,10 @@ msgstr "Estudiante Biónico" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Tus padres estaban tan obsesionados con asegurarse de que aprobaras con diez" -" cada examen, que te equiparon con biónicos para hacerte más inteligente y " -"que nunca te olvides de nada. Y ahora te enfrentás con el examen más " -"terrible, y vas a tener que aprobarlo, porque si no..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153678,14 +149554,10 @@ msgstr "Estudiante Biónica" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Tus padres estaban tan obsesionados con asegurarse de que aprobaras con diez" -" cada examen, que te equiparon con biónicos para hacerte más inteligente y " -"que nunca te olvides de nada. Y ahora te enfrentás con el examen más " -"terrible, y vas a tener que aprobarlo, porque si no..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153696,12 +149568,10 @@ msgstr "Jugador de Matanza" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Te gustaba jugar a la matanza, donde no poder esquivar la pelota significaba" -" que te quedabas afuera del juego. Ahora, \"matanza\" tiene otro " -"significado, y no poder esquivar es una amenaza para tu vida. No la cagues." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153712,12 +149582,10 @@ msgstr "Jugadora de Matanza" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Te gustaba jugar a la matanza, donde no poder esquivar la pelota significaba" -" que te quedabas afuera del juego. Ahora, \"matanza\" tiene otro " -"significado, y no poder esquivar es una amenaza para tu vida. No la cagues." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153728,15 +149596,10 @@ msgstr "Miembro C.de Ciencia" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"Eras miembro del club de ciencia de la escuela, y ahora estás muy enojado " -"porque la escuela no te dejaba jugar con los químicos más divertidos, los " -"que explotaban. Por lo menos ahora no hay nadie cerca que te diga lo que no " -"puedes tocar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153747,15 +149610,10 @@ msgstr "Miembro C.de Ciencia" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"Eras miembro del club de ciencia de la escuela, y ahora estás muy enojada " -"porque la escuela no te dejaba jugar con los químicos más divertidos, los " -"que explotaban. Por lo menos ahora no hay nadie cerca que te diga lo que no " -"puedes tocar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153767,12 +149625,9 @@ msgstr "Miembro C.Audiovisual" msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"Eras miembro del club audiovisual de la escuela. Estás seguro que hay alguna" -" manera de que utilices tus habilidades técnicas para mantenerte con vida. " -"Todavía no encontraste la manera de hacer un maravilloso rayo de muerte." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153784,12 +149639,9 @@ msgstr "Miembro C.Audiovisual" msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"Eras miembro del club audiovisual de la escuela. Estás segura que hay alguna" -" manera de que utilices tus habilidades técnicas para mantenerte con vida. " -"Todavía no encontraste la manera de hacer un maravilloso rayo de muerte." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153800,13 +149652,10 @@ msgstr "Maestro" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Le estuviste enseñando a los chicos toda tu vida y casi que escuchaban lo " -"que les decías. Sin embargo, los muertos no tienen que hacer ninguna tarea " -"para comerte vivo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153817,13 +149666,10 @@ msgstr "Maestra" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Le estuviste enseñando a los chicos toda tu vida y casi que escuchaban lo " -"que les decías. Sin embargo, los muertos no tienen que hacer ninguna tarea " -"para comerte vivo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153834,15 +149680,10 @@ msgstr "Reportero gráfico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Fuiste un reportero gráfico independiente antes del final. Tienes una " -"oportunidad para ser el primer periodista a cubrir el Apocalipsis, aunque " -"encontrar una editorial parece más difícil de lo habitual. Lograste " -"aferrarte a la cámara, la cual puedes obtener algunas fotos fantásticas." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153853,15 +149694,10 @@ msgstr "Reportera gráfica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Fuiste una reportera gráfica independiente antes del final. Tienes una " -"oportunidad para ser la primera periodista a cubrir el Apocalipsis, aunque " -"encontrar una editorial parece más difícil de lo habitual. Lograste " -"aferrarte a la cámara, la cual puedes obtener algunas fotos fantásticas." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153872,12 +149708,10 @@ msgstr "Profesor de Gimnasia" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Luego de una vida enseñándole a los chicos el arte de los deportes que " -"siempre odiaron, los zombis a tu alrededor se niegan a hacer flexiones de " -"brazos, incluso aunque toques tu silbato." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153888,12 +149722,10 @@ msgstr "Profesora de Gimnasia" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Luego de una vida enseñándole a los chicos el arte de los deportes que " -"siempre odiaron, los zombis a tu alrededor se niegan a hacer flexiones de " -"brazos, incluso aunque toques tu silbato." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153904,16 +149736,10 @@ msgstr "Campista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Siempre disfrutaste salir de excursión y de camping en la naturaleza, antes " -"de que todo se vaya a la mierda. Así que te resultó fácil agarrar tu bolso y" -" salir corriendo cuando sonaron las sirenas. El mundo puede estar en ruinas," -" pero estás preparado para convertir en tu hogar cualquier lugar que " -"encuentres." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153924,16 +149750,10 @@ msgstr "Campista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Siempre disfrutaste salir de excursión y de camping en la naturaleza, antes " -"de que todo se vaya a la mierda. Así que te resultó fácil agarrar tu bolso y" -" salir corriendo cuando sonaron las sirenas. El mundo puede estar en ruinas," -" pero estás preparada para convertir en tu hogar cualquier lugar que " -"encuentres." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153945,11 +149765,8 @@ msgstr "Minero" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"¡Eres un minero, no un menor de edad! Tu cantimplora está seca, tu martillo " -"neumático se quedó sin gasolina, y estás con tus últimas baterías en tu " -"casco de minero..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -153961,11 +149778,8 @@ msgstr "Minera" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"¡Eres una minera, no una menor de edad! Tu cantimplora está seca, tu " -"martillo neumático se quedó sin gasolina, y estás con tus últimas baterías " -"en tu casco de minero..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -153976,8 +149790,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -153989,8 +149804,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -154036,11 +149852,10 @@ msgstr "Turista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Viniste aquí para probar Nueva Inglaterra; ¡Ahora esperas que Nueva " -"Inglaterra no te \"pruebe\" a ti!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154051,11 +149866,10 @@ msgstr "Turista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Viniste aquí para probar Nueva Inglaterra; ¡Ahora esperas que Nueva " -"Inglaterra no te \"pruebe\" a ti!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154066,12 +149880,10 @@ msgstr "Desnudo y asustado" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Estabas fuera grabando un reality show en el bosque, y el reparto de actores" -" y el personal parecían haberse convertido en zombis. Parece que ahora va en" -" serio..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154082,12 +149894,10 @@ msgstr "Desnuda y asustada" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Estabas fuera grabando un reality show en el bosque, y el reparto de actores" -" y el personal parecían haberse convertido en zombis. Parece que ahora va en" -" serio..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154099,9 +149909,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" #: lang/json/professions_from_json.py @@ -154114,9 +149924,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" #: lang/json/professions_from_json.py @@ -154128,15 +149938,11 @@ msgstr "Game Master" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"Intentar arrear gatos hacia un lugar todas las semanas te enseñó algo: " -"usualmente es mejor cortar por lo sano y confiar en tu instinto. Por esa " -"razón, cuando tuviste dos ausentes y los otros dos intentaron comerte, te " -"fuiste. Tal vez puedas encontrar nuevos jugadores en las ruinas del mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154147,15 +149953,11 @@ msgstr "Game Master" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"Intentar arrear gatos hacia un lugar todas las semanas te enseñó algo: " -"usualmente es mejor cortar por lo sano y confiar en tu instinto. Por esa " -"razón, cuando tuviste dos ausentes y los otros dos intentaron comerte, te " -"fuiste. Tal vez puedas encontrar nuevos jugadores en las ruinas del mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154167,10 +149969,9 @@ msgstr "Game Master Biónico" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" #: lang/json/professions_from_json.py @@ -154183,10 +149984,9 @@ msgstr "Game Master Biónico" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" #: lang/json/professions_from_json.py @@ -154198,11 +149998,9 @@ msgstr "Trabajador de zoológico" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Fuiste llamado en tu día libre a alimentar a los animales del zoológico " -"ninguno de tus compañeros de trabajo se presentaron por alguna razón." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154213,11 +150011,9 @@ msgstr "Trabajadora de zoológico" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Fuiste llamado en tu día libre a alimentar a los animales del zoológico " -"ninguno de tus compañeros de trabajo se presentaron por alguna razón." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154228,11 +150024,9 @@ msgstr "Golfista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" -"Decidiste alejarte de la familia por un día, para irte solo a jugar al golf " -"un rato." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154243,11 +150037,9 @@ msgstr "Golfista" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" -"Decidiste alejarte de la familia por un día, para irte solo a jugar al golf " -"un rato." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154286,17 +150078,11 @@ msgstr "Samurái urbano" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "" -"Siempre fuiste una rareza en tu ciudad, con el cabello gracioso, siempre " -"vistiendo lo que parecía un tipo de ropa de baño japonesa. Algunos afirmaban" -" que eras algún tipo de espíritu Shinto visitando. Poco de esto te importa, " -"pero las tiendas dejaron de ofrecer sus servicios y ahora la TV no funciona." -" Esto te desagrada. " #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154307,55 +150093,39 @@ msgstr "Samurái urbano" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "" -"Siempre fuiste una rareza en tu ciudad, con el cabello gracioso, siempre " -"vistiendo lo que parecía un tipo de ropa de baño japonesa. Algunos afirmaban" -" que eras algún tipo de espíritu Shinto visitando. Poco de esto te importa, " -"pero las tiendas dejaron de ofrecer sus servicios y ahora la TV no funciona." -" Esto te desagrada. " #: lang/json/professions_from_json.py msgctxt "profession_male" -msgid "Competetive Fencer" -msgstr "Esgrimidor Competitivo" +msgid "Competitive Fencer" +msgstr "Esgrimidor competitivo" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" -"Tu eras un apasionado esgrimidor, siempre practicando en clubs locales y " -"compitiendo en torneos. Tu estabas en camino a un encuentro cuando el mundo " -"termino. Ahora te encuentras en tu mas importante torneo, todos los árbitros" -" están muertos, y ninguno de tus oponentes siguen las reglas." #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" -msgstr "Esgrimidora Competitiva" +msgid "Competitive Fencer" +msgstr "Esgrimidora competitiva" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" -"Tu eras un apasionada esgrimidora, siempre practicando en clubs locales y " -"compitiendo en torneos. Tu estabas en camino a un encuentro cuando el mundo " -"termino. Ahora te encuentras en tu mas importante torneo, todos los árbitros" -" están muertos, y ninguno de tus oponentes siguen las reglas." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154400,11 +150170,9 @@ msgstr "Ranchero" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" -"Has dedicado gran parte de tu vida a criar vacas o caballos, ahora veremos " -"que pasara." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154415,11 +150183,9 @@ msgstr "Ranchera" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" -"Has dedicado gran parte de tu vida a criar vacas o caballos, ahora veremos " -"que pasara." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154430,13 +150196,10 @@ msgstr "Asistente" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" -"Trabajaste lejos de la atención del publico, asegurándote que las estrellas " -"tuvieran lo que necesitaban y que no hubieran errores. Los riesgos son mas " -"altos estos días pero el show debe continuar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154447,13 +150210,10 @@ msgstr "Asistente" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" -"Trabajaste lejos de la atención del publico, asegurándote que las estrellas " -"tuvieran lo que necesitaban y que no hubieran errores. Los riesgos son mas " -"altos estos días pero el show debe continuar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154464,13 +150224,10 @@ msgstr "Músico " #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" -"Estabas apunto de entrar en el escenario cuando el Cataclismo golpeo. No " -"fuiste capaz de conseguir mucho en el pánico, pero al menos tienes tu " -"guitarra contigo." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154481,13 +150238,10 @@ msgstr "Música " #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" -"Estabas apunto de entrar en el escenario cuando el Cataclismo golpeo. No " -"fuiste capaz de conseguir mucho en el pánico, pero al menos tienes tu " -"guitarra contigo." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154499,11 +150253,8 @@ msgstr "Superviviente Equipado" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" -"En un centro comercial cercano viste descuentos en kits de supervivencia. " -"Compraste uno, no para usarlo solo para tenerlo. Ahora es todo lo que " -"tienes." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154515,11 +150266,8 @@ msgstr "Superviviente Equipada" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" -"En un centro comercial cercano viste unos descuentos en kits de " -"supervivencia. Compraste uno, no para usarlo solo para tenerlo. Ahora es " -"todo lo que tienes." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154532,11 +150280,9 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" -"Hiciste ganancias en exhibiciones y actuaciones del Salvaje Oeste, " -"Impresionando turistas con tu puntería. Pero ese mundo ha muerto, así que " -"tomaste tu fiel revolver y te dirigiste a un mundo de peligro." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154549,11 +150295,9 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" -"Hiciste ganancias en exhibiciones y actuaciones del Salvaje Oeste, " -"Impresionando turistas con tu puntería. Pero ese mundo ha muerto, así que " -"tomaste tu fiel revolver y te dirigiste a un mundo de peligro." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154564,16 +150308,11 @@ msgstr "Chico De Fraternidad" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" -"Estabas viviendo una vida extravagante, gastando el dinero de tus padres sin" -" preocupaciones. Tu estabas en una de tus alocadas fiestas cuando los " -"invitados empezaron a sentirse hambrientos por mucho mas que tus drogas. Aun" -" tienes la oportunidad de usar el ultimo símbolo de una vida tan lujosa -tu " -"auto deportivo- y escapar." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -154584,16 +150323,11 @@ msgstr "Chica De Fraternidad" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" -"Estabas viviendo una vida extravagante, gastando el dinero de tus padres sin" -" preocupaciones. Tu estabas en una de tus alocadas fiestas cuando los " -"invitados empezaron a sentirse hambrientos por mucho mas que tus drogas. Aun" -" tienes la oportunidad de usar el ultimo símbolo de una vida tan lujosa -tu " -"auto deportivo- y escapar." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -154955,6 +150689,40 @@ msgid "" " seems that your combat skills might come useful once again." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" @@ -156067,310 +151835,6 @@ msgid "" "find some other use." msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Brave of the King" -msgstr "Valiente del Rey" - -#. ~ Profession (male Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Es la infantería de elite del antiguo Egipto y guardaespaldas del Faraón. " -"Aunque la armadura no era común debido a las características del desierto, " -"tal equipamiento fue comenzado a usarse durante el período del Nuevo Reino." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Brave of the King" -msgstr "Valiente del Rey" - -#. ~ Profession (female Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Es la infantería de elite del antiguo Egipto y guardaespaldas del Faraón. " -"Aunque la armadura no era común debido a las características del desierto, " -"tal equipamiento fue comenzado a usarse durante el período del Nuevo Reino." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hoplite" -msgstr "Hoplita" - -#. ~ Profession (male Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Es la infantería pesada de las ciudades estado de la antigua Grecia, antes " -"del cambio hacia la falange macedonia. Bien entrenados para el combate en " -"formación pero menos efectivos cuando son superados o están en campo " -"abierto." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hoplite" -msgstr "Hoplita" - -#. ~ Profession (female Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Es la infantería pesada de las ciudades estado de la antigua Grecia, antes " -"del cambio hacia la falange macedonia. Bien entrenados para el combate en " -"formación pero menos efectivos cuando son superados o están en campo " -"abierto." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Legionary" -msgstr "Legionario" - -#. ~ Profession (male Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Es la infantería pesada romana, luego de las reformas militares que " -"estandarizaron el equipamiento de las legiones. Entrenados para actuar en " -"formación con jabalina y espada, y reconocidos por sus fortificaciones en el" -" campo de batalla." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Legionary" -msgstr "Legionaria" - -#. ~ Profession (female Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Es la infantería pesada romana, luego de las reformas militares que " -"estandarizaron el equipamiento de las legiones. Entrenados para actuar en " -"formación con jabalina y espada, y reconocidos por sus fortificaciones en el" -" campo de batalla." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Viking" -msgstr "Vikingo" - -#. ~ Profession (male Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Son los infames piratas del período medieval temprano, exploradores y " -"saqueadores de varios países escandinavos." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Viking" -msgstr "Vikinga" - -#. ~ Profession (female Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Son los infames piratas del período medieval temprano, exploradores y " -"saqueadores de varios países escandinavos." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Man-at-Arms" -msgstr "Hombre de Armas" - -#. ~ Profession (Man-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Es la caballería pesada medieval de varios países de Europa, tanto de sangre" -" noble como sangre común. Mientras que tradicionalmente los caballeros eran " -"hombres de armas, no todo hombre de armas era un caballero." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Woman-at-Arms" -msgstr "Mujer de Armas" - -#. ~ Profession (Woman-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Es la caballería pesada medieval de varios países de Europa, tanto de sangre" -" noble como sangre común. Mientras que tradicionalmente los caballeros eran " -"hombres de armas, no todo hombre de armas era un caballero." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Horse Archer" -msgstr "Arquero a Caballo" - -#. ~ Profession (male Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Es la famosa caballería ligera del Imperio Mongol. Reconocidos por su " -"habilidad como arqueros a caballo." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Horse Archer" -msgstr "Arquera a Caballo" - -#. ~ Profession (female Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Es la famosa caballería ligera del Imperio Mongol. Reconocidos por su " -"habilidad como arqueros a caballo." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Samurai" -msgstr "Samurai" - -#. ~ Profession (male Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Es el guerrero noble del feudo jacolocas. Conocidos originalmente por ser " -"maestros del caballo y el arco, se volvieron famosos por su habilidad con la" -" espada en épocas posteriores." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Samurai" -msgstr "Samurai" - -#. ~ Profession (female Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Es el guerrero noble del feudo jacolocas. Conocidos originalmente por ser " -"maestros del caballo y el arco, se volvieron famosos por su habilidad con la" -" espada en épocas posteriores." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Wanderer" -msgstr "Errante" - -#. ~ Profession (male Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Siempre preferiste la comodidad de estar a cielo abierto, lejos de las " -"complejidades de la vida moderna. Aunque por lo que parece, las cosas han " -"cambiado desde la última vez que estuviste cerca de la civilización." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Wanderer" -msgstr "Errante" - -#. ~ Profession (female Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Siempre preferiste la comodidad de estar a cielo abierto, lejos de las " -"complejidades de la vida moderna. Aunque por lo que parece, las cosas han " -"cambiado desde la última vez que estuviste cerca de la civilización." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Prehistoric Hunter" -msgstr "Cazador Prehistórico" - -#. ~ Profession (male Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Una reliquia prehistórica viviente, fuera de lugar, náufrago en un mundo " -"aterrador y desconocido. La vida como cazador-recolector era difícil, pero " -"por lo menos no tenías que pelear con muertos vivientes y estaba tu familia " -"para apoyarte. Ahora, estás solo." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Prehistoric Hunter" -msgstr "Cazadora Prehistórica" - -#. ~ Profession (female Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Una reliquia prehistórica viviente, fuera de lugar, náufraga en un mundo " -"aterrador y desconocido. La vida como cazadora-recolectora era difícil, pero" -" por lo menos no tenías que pelear con muertos vivientes y estaba tu familia" -" para apoyarte. Ahora, estás sola." - #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sugar Boy" @@ -156397,842 +151861,6 @@ msgid "" "You have your whole life ahead of you and it's gonna be sweet!" msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Fighter" -msgstr "Luchador" - -#. ~ Profession (male Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Un maestro de las armas y las armaduras, y combatiente aterrador de artes " -"marciales. Eres un luchador, forjado en la guerra y templado en el campo de " -"batalla." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Fighter" -msgstr "Luchadora" - -#. ~ Profession (female Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Una maestra de las armas y las armaduras, y combatiente aterradora de artes " -"marciales. Eres un luchadora, forjada en la guerra y templada en el campo de" -" batalla." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Rogue" -msgstr "Ladrón" - -#. ~ Profession (male Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Un pilluelo de la calle experto en prestidigitación y mortal con las " -"espadas; tu eres un truhán, un embaucador ingenioso y un ladrón maestro." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Rogue" -msgstr "Ladrona" - -#. ~ Profession (female Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Un pilluelo de la calle experto en prestidigitación y mortal con las " -"espadas; tu eres un truhán, un embaucador ingenioso y un ladrón maestro." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Barbarian" -msgstr "Bárbaro" - -#. ~ Profession (male Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Un niño de Crom, natural del norte polar. Eres un bárbaro, tan aterrador y " -"formidable como esa tierra indómita a la que llamás hogar." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Barbarian" -msgstr "Bárbara" - -#. ~ Profession (female Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Una niña de Crom, natural del norte polar. Eres una bárbara, tan aterradora " -"y formidable como esa tierra indómita a la que llamás hogar." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Skald" -msgstr "Escaldo" - -#. ~ Profession (male Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Un misterioso trovador y narrador errante, natural de las tierras altas del " -"norte. Eres un escaldo, un bárbaro noble, guardián del conocimiento y " -"portavoz de los espíritus." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Skald" -msgstr "Escalda" - -#. ~ Profession (female Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Una misteriosa trovadora y narradora errante, natural de las tierras altas " -"del norte. Eres una escalda, una bárbara noble, guardiana del conocimiento y" -" portavoz de los espíritus." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Ranger" -msgstr "Guardabosques" - -#. ~ Profession (male Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Uno de los pocos que vaga por el bosque y jamás se pierde. Eres un " -"guardabosques, conocedor de los caminos del bosque y mortífero con un arco." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Ranger" -msgstr "Guardabosques" - -#. ~ Profession (female Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Una de los pocos que vaga por el bosque y jamás se pierde. Eres una " -"guardabosques, conocedora de los caminos del bosque y mortífera con un arco." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Monk" -msgstr "Monje" - -#. ~ Profession (male Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Siervo de una orden exótica de ascetas, eres un monje, un devoto pío con " -"amplio conocimiento en el combate desarmado." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Monk" -msgstr "Monja" - -#. ~ Profession (female Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Sierva de una orden exótica de ascetas, eres una monja, una devota pía con " -"amplio conocimiento en el combate desarmado." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Knight" -msgstr "Caballero" - -#. ~ Profession (male Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Declarado defensor de las tierras, eres un caballero, un guerrero educado y " -"entrenado desde la niñez en el camino del combate honorable." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Knight" -msgstr "Caballera" - -#. ~ Profession (female Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Declarada defensora de las tierras, eres una caballera, una guerrera educada" -" y entrenada desde la niñez en el camino del combate honorable." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Sorcerer" -msgstr "Hechicero" - -#. ~ Profession (Sorcerer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Un sabio estudiante de un antiguo conocimiento olvidado. Eres un mago, un " -"practicante místico de las artes arcanas (biónicas)." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Sorceress" -msgstr "Hechicera" - -#. ~ Profession (Sorceress) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Una sabia estudiante de un antiguo conocimiento olvidado. Eres una maga, una" -" practicante mística de las artes arcanas (biónicas)." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-Hacker" -msgstr "Robo-Hacker" - -#. ~ Profession (male Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Antes del fin, tu pasatiempo era reprogramar ilegalmente y reconvertir " -"robots comerciales, pero nunca pensaste que tu supervivencia iba a depender " -"de eso." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-Hacker" -msgstr "Robo-Hacker" - -#. ~ Profession (female Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Antes del fin, tu pasatiempo era reprogramar ilegalmente y reconvertir " -"robots comerciales, pero nunca pensaste que tu supervivencia iba a depender " -"de eso." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Engineer" -msgstr "Ingeniero en Robótica" - -#. ~ Profession (male Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Engineer" -msgstr "Ingeniero en Robótica" - -#. ~ Profession (female Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Prodigy" -msgstr "" - -#. ~ Profession (male Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Prodigy" -msgstr "" - -#. ~ Profession (female Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robot Adoptee" -msgstr "" - -#. ~ Profession (male Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robot Adoptee" -msgstr "" - -#. ~ Profession (female Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-hunter" -msgstr "" - -#. ~ Profession (male Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Le pagaste al hacker de tu barrio para que te construya un perro cazador " -"robótico. Es casi tan bueno como el real, aunque no responde bien a las " -"caricias." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-hunter" -msgstr "" - -#. ~ Profession (female Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Le pagaste al hacker de tu barrio para que te construya un perro cazador " -"robótico. Es casi tan bueno como el real, aunque no responde bien a las " -"caricias." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (male Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (female Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Seasoned Tourist" -msgstr "Turista de temporada" - -#. ~ Profession (male Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Debido a tu sed de aventura, hambre de buena comida e ingresos disponibles, " -"has podido viajar mucho. Has viajado hasta aquí para probar Nueva " -"Inglaterra; ¡ahora esperas que Nueva Inglaterra no te \"pruebe\" a ti!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Seasoned Tourist" -msgstr "Turista de temporada" - -#. ~ Profession (female Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Debido a tu sed de aventura, hambre de buena comida e ingresos disponibles, " -"has podido viajar mucho. Has viajado hasta aquí para probar Nueva " -"Inglaterra; ¡ahora esperas que Nueva Inglaterra no te \"pruebe\" a ti!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Post-Human Cyborg" -msgstr "Ciborg Poshumano" - -#. ~ Profession (male Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Post-Human Cyborg" -msgstr "Ciborg Poshumana" - -#. ~ Profession (female Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Janitor" -msgstr "Portero" - -#. ~ Profession (male Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Te ganabas la vida limpiando envoltorios de chocolates y sacando los chicles" -" de abajo de las mesas. Ahora lo único que vas a estar limpiando son los " -"cerebros de los muertos." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Janitor" -msgstr "Portera" - -#. ~ Profession (female Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Te ganabas la vida limpiando envoltorios de chocolates y sacando los chicles" -" de abajo de las mesas. Ahora lo único que vas a estar limpiando son los " -"cerebros de los muertos." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Poor Student" -msgstr "Alumno Pobre" - -#. ~ Profession (male Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Vienes de una familia de bajos recursos, siempre se burlaban de tu ropa de " -"segunda mano y de recibir las comidas gratis en la cafetería. Y lo peor, tu " -"roñosa mochila vieja se terminó de romper en el peor momento. Por lo menos, " -"ahora nadie se burla de ti." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Poor Student" -msgstr "Alumna Pobre" - -#. ~ Profession (female Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Vienes de una familia de bajos recursos, siempre se burlaban de tu ropa de " -"segunda mano y de recibir las comidas gratis en la cafetería. Y lo peor, tu " -"roñosa mochila vieja se terminó de romper en el peor momento. Por lo menos, " -"ahora nadie se burla de ti." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Elementary Student" -msgstr "Alumno de Primaria" - -#. ~ Profession (male Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Eres solo un niño, y ahora el mundo se ha convertido en algo salido de tus " -"pesadillas. Los adultos en los que confiabas están todos muertos o son " -"muertos vivientes. ¿Qué vas a hacer?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Elementary Student" -msgstr "Alumna de Primaria" - -#. ~ Profession (female Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Eres solo una niña, y ahora el mundo se ha convertido en algo salido de tus " -"pesadillas. Los adultos en los que confiabas están todos muertos o son " -"muertos vivientes. ¿Qué vas a hacer?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hockey Player" -msgstr "Jugador de Hockey" - -#. ~ Profession (male Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Eras arquero de las ligas menores de hockey antes de que el resto del equipo" -" se convirtiera en zombi. Eres tú y tu indumentaria de hockey contra los " -"muertos vivientes, pero por lo menos ahora no hay árbitros." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hockey Player" -msgstr "Jugadora de Hockey" - -#. ~ Profession (female Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Eras arquera de las ligas menores de hockey antes de que el resto del equipo" -" se convirtiera en zombi. Eres tú y tu indumentaria de hockey contra los " -"muertos vivientes, pero por lo menos ahora no hay árbitros." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Baseball Player" -msgstr "Jugador de Béisbol" - -#. ~ Profession (male Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Baseball Player" -msgstr "Jugadora de Béisbol" - -#. ~ Profession (female Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Football Player" -msgstr "Jugador de F.Americano" - -#. ~ Profession (male Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Eras la estrella del equipo local de fútbol americano, adorado por tus " -"compañeros y por la hinchada. Ahora solo adoran tu cerebro. Todavía tienes " -"puesta tu corpulenta indumentaria de fútbol americano." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Football Player" -msgstr "Jugadora de F.Americano" - -#. ~ Profession (female Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Eras la estrella del equipo local de fútbol americano, adorada por tus " -"compañeros y por la hinchada. Ahora solo adoran tu cerebro. Todavía tienes " -"puesta tu corpulenta indumentaria de fútbol americano." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Preppy Student" -msgstr "Alumno Preuniversitario" - -#. ~ Profession (male Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Tus padres eran gente importante, siempre ocupados, que te querían dar todas" -" las ventajas y te presionaban para que seas \"exitoso\", sea lo que eso " -"signifique. Te hubiera gustado que alguna vez te hayan dejado disfrutar tu " -"infancia, o te hubieran mostrado amor. Ahora no vas a recibir ninguna de " -"esas cosas." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Preppy Student" -msgstr "Alumna Preuniversitaria" - -#. ~ Profession (female Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Tus padres eran gente importante, siempre ocupados, que te querían dar todas" -" las ventajas y te presionaban para que seas \"exitoso\", sea lo que eso " -"signifique. Te hubiera gustado que alguna vez te hayan dejado disfrutar tu " -"infancia, o te hubieran mostrado amor. Ahora no vas a recibir ninguna de " -"esas cosas." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Awakened" -msgstr "Despertada" - -#. ~ Profession (male Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Awakened" -msgstr "Despertada" - -#. ~ Profession (female Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Cyclist" -msgstr "Ciclista Biónica" - -#. ~ Profession (male Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Cyclist" -msgstr "Ciclista Biónica" - -#. ~ Profession (female Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Welder" -msgstr "Soldador" - -#. ~ Profession (male Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Welder" -msgstr "Soldador" - -#. ~ Profession (female Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Primitive Survivalist" -msgstr "" - -#. ~ Profession (male Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Primitive Survivalist" -msgstr "" - -#. ~ Profession (female Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" @@ -157398,7 +152026,7 @@ msgid "LIGHTING" msgstr "ILUMINACIÓN" #. ~ Crafting recipes subcategory of 'ARMOR' category -#: lang/json/recipe_category_from_json.py src/game_inventory.cpp +#: lang/json/recipe_category_from_json.py msgid "STORAGE" msgstr "ALMACENAMIENTO" @@ -159020,6 +153648,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "More housing means that we can support additional specialists." msgstr "" +"Más hogares nos dará la posibilidad de incorporar especialistas adicionales." #: lang/json/recipe_from_json.py msgid "basic southeast tent" @@ -159079,7 +153708,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "We're running out of room and need another living quarters." -msgstr "" +msgstr "Nos estamos quedando sin espacio, necesitamos más dormitorios." #: lang/json/recipe_from_json.py msgid "basic east tent" @@ -161898,7 +156527,7 @@ msgstr "Fabricar: Cadena, Martillo Pilón" #: lang/json/recipe_group_from_json.py msgid " Craft: Nail, Drop Hammer" -msgstr "" +msgstr "Fabricar: Clavo, Martillo Pilón" #: lang/json/recipe_group_from_json.py msgid " Craft: Wire, Drop Hammer" @@ -161910,7 +156539,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Rebar, Drop Hammer" -msgstr "" +msgstr "Fabricar: Varilla Corrugada, Martillo Pilón" #. ~ Name for scenario 'Evacuee' for a male character #: lang/json/scenario_from_json.py @@ -161987,9 +156616,9 @@ msgstr "" #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. -#. ~ Starting location for scenario 'Robots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "In Town" @@ -162139,6 +156768,34 @@ msgstr "" "recibiste el cuidado médico adecuado y ahora la herida se empezó a poner un " "poco verde." +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -162930,19 +157587,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "Almacén de base militar" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -162952,7 +157609,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -162962,7 +157619,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" @@ -163299,132 +157956,6 @@ msgctxt "start_name" msgid "Candy Shop" msgstr "Tienda de caramelos" -#. ~ Name for scenario 'Robots' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Robots" -msgstr "Robots" - -#. ~ Name for scenario 'Robots' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Robots" -msgstr "Robots" - -#. ~ Description for scenario 'Robots' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Durante los disturbios y el caos, te escondiste en un centro de despacho de " -"robots esperando que los robots te protegieran, pero parece que son más " -"peligrosos que los zombis." - -#. ~ Description for scenario 'Robots' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Durante los disturbios y el caos, te escondiste en un centro de despacho de " -"robots esperando que los robots te protegieran, pero parece que son más " -"peligrosos que los zombis." - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Challenge-FEMA Death Camp" -msgstr "Desafío-Campamento de la muerte FEMA" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Challenge-FEMA Death Camp" -msgstr "Desafío-Campamento de la muerte FEMA" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"Eras uno de los muchos miembros de las fuerzas del orden y militares que " -"llamaron para mantener el orden en uno de los campamentos de FEMA. Todo se " -"fue a la mierda rápidamente... herido, infectado, rodeado de fuego, yacido " -"en el suelo... y siguen viniendo..." - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a female -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"Eras una de los muchos miembros de las fuerzas del orden y militares que " -"llamaron para mantener el orden en uno de los campamentos de FEMA. Todo se " -"fue a la mierda rápidamente... herida, infectada, rodeada de fuego, yacida " -"en el suelo... y siguen viniendo..." - -#. ~ Starting location for scenario 'Challenge-FEMA Death Camp'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Fema Camp" -msgstr "Campamento FEMA" - -#. ~ Name for scenario 'Mansion Holdout' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Mansion Holdout" -msgstr "Retenido en la mansión" - -#. ~ Name for scenario 'Mansion Holdout' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Mansion Holdout" -msgstr "Retenida en la mansión" - -#. ~ Description for scenario 'Mansion Holdout' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"Mientras el mundo terminaba, te sentías relativamente seguro dentro de la " -"mansión que has atendido durante años. Ahora los muertos han venido llamando" -" a tu puerta, y tal vez sea hora de irse." - -#. ~ Description for scenario 'Mansion Holdout' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"Mientras el mundo terminaba, te sentías relativamente segura dentro de la " -"mansión que has atendido durante años. Ahora los muertos han venido llamando" -" a tu puerta, y tal vez sea hora de irse." - -#. ~ Starting location for scenario 'Mansion Holdout'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Mansion" -msgstr "Mansión" - #. ~ display string for skill display type 'display_melee' #: lang/json/skill_display_type_from_json.py msgid "Melee skills" @@ -163591,12 +158122,7 @@ msgstr "cocinar" #: lang/json/skill_from_json.py msgid "" "Your skill in combining food ingredients to make other, tastier food items." -" It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." msgstr "" -"Es tu habilidad para combinar ingredientes y hacer una comida más sabrosa. " -"También puede usarse en algunas mezclas químicas y otras tareas más " -"esotéricas." #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -163867,6 +158393,17 @@ msgid "" "chance and decreases time required to successfully pick the lock." msgstr "" +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" + #: lang/json/skill_from_json.py msgid "weapon" msgstr "arma" @@ -165267,7 +159804,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "A screwdriver a day keeps the scurvy away!" -msgstr "" +msgstr "¡Un destornillador por día mantendrá el escorbuto en la lejanía!" #: lang/json/snippet_from_json.py msgid "" @@ -165705,6 +160242,12 @@ msgid "" "Don't. This thorazine seriously clouds your mind. You need to stay sharp." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde" +" of undead!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "" @@ -165769,6 +160312,14 @@ msgstr "" msgid "Wish I could, ." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "" @@ -165801,6 +160352,10 @@ msgstr "" msgid "Not exactly the settlin' type." msgstr "" +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "" + #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -165887,7 +160442,7 @@ msgstr "imbécil" #: lang/json/snippet_from_json.py msgid "jackass" -msgstr "" +msgstr "subnormal" #: lang/json/snippet_from_json.py msgid "moron" @@ -166115,6 +160670,10 @@ msgid "" " ending, just for a while?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "" + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "" @@ -166655,6 +161214,14 @@ msgstr "¡Hey, estoy aquí!" msgid "Hold up a second, will ya?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "No estoy afiliado." @@ -166789,7 +161356,7 @@ msgstr "¡Rápido, !" #: lang/json/snippet_from_json.py msgid "Let's keep going, !" -msgstr "" +msgstr "¡Sigamos avanzando, !" #: lang/json/snippet_from_json.py msgid "Over here!" @@ -168090,7 +162657,7 @@ msgstr "¡! Mirame cómo mato un/a " #: lang/json/snippet_from_json.py msgid "I'm your huckleberry," -msgstr "" +msgstr "Soy como tu Huckleberry Finn, " #: lang/json/snippet_from_json.py msgid "Sorry, but you have to go down," @@ -169099,6 +163666,117 @@ msgstr "" msgid "survivor" msgstr "superviviente" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr "" @@ -174948,7 +169626,7 @@ msgstr "¡Ese/a %1$s no se merece vivir!" #: lang/json/snippet_from_json.py msgid "Hey, you're bleeding." -msgstr "" +msgstr "Ey, estás sangrando." #: lang/json/snippet_from_json.py msgid "Your wound looks pretty bad." @@ -174964,7 +169642,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "You look hurt, did I do that?" -msgstr "" +msgstr "Pareces herido, ¿Te lo hice yo?" #: lang/json/snippet_from_json.py msgid "Are you supposed to be bleeding?" @@ -175040,7 +169718,7 @@ msgstr "Tratá de no abandonarme." #: lang/json/snippet_from_json.py msgid "How many do you think we've killed?" -msgstr "" +msgstr "¿Cuántos te parece que matamos?" #: lang/json/snippet_from_json.py msgid "I'll keep you safe!" @@ -175295,6 +169973,8 @@ msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "fighter." msgstr "" +"Es una planilla para un personaje de Calabozos & Dragones 6ta edición. Esta " +"es para un guerrero." #: lang/json/snippet_from_json.py msgid "" @@ -175602,6 +170282,42 @@ msgid "" "Michael Baker" msgstr "" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "\"ESTAMOS DE ACUERDO EN QUE EL GOBIERNO LO HIZO\"" @@ -176523,11 +171239,9 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" msgstr "" -"\"Voy a establecerme un día. Una gran huerta, un par de amigos/futura " -"familia para pasar tiempo con ellos y mi ejército de esclavos zombis para " -"proteger el lugar.\"" #: lang/json/snippet_from_json.py msgid "" @@ -177461,6 +172175,51 @@ msgstr "" msgid "Dark days are ahead, but is that all?" msgstr "Se avecinan días oscuros, ¿Pero eso es todo?" +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 1: I had a dream and I can vaguely remember seeing a strange " +"truck that had overly round edges, it tooted its horn but instead I heard " +"people screaming, and when I blinked suddenly the truck wasn't just rounded," +" but made of people screaming forever inside a viscous blob.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 2: In last night's dream I was driving a rusty and dusty humvee," +" with my trusty companion using a massive pneumatic weapon to shoot rebar " +"pipes into faceless enemies chasing us. My heart is still pumping, why does" +" it feel like a memory instead of a dream?\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 3: Another dream. This time I dropped a diamond on a sea of " +"charcoal dust, and the diamond begun to shine and make the dust glitter " +"until a shape of a car emerged from the dust made entirely of thick, " +"perfectly angular diamond. A beautiful shape appeared on it, and in a flash" +" of light I was pierced by a glittering lance.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 4: These dreams get weirder. My companion of mine was driving " +"the RV, and I opened the back of the RV and found there was no roof but a " +"whole tray of gargantuan flowers made of solar panels arching toward the sun" +" greedily, light flowing from them into the RV. I stepped back and lost my " +"footing, seeing a strange portal on the side before I fell into a limitless " +"darkness.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 5: My most recent dream was better so here it goes. I was " +"walking in a meadow when a strange stone with a perfect spiral on it fell in" +" front of me. I picked it up and blew on it, and a tornado roared from the " +"stone. In its wake, a car appeared, wickedly shaped and the sound of " +"tornadoes coming from its exhaust- and I rode the wind, hurling thunderbolts" +" at any who got in my way.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "" @@ -178619,6 +173378,53 @@ msgstr "" msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you" +" think they eat cat food?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big" +" lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind" +" of big lizard down there. Probably not a good idea to check." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special" @@ -178626,6 +173432,14 @@ msgid "" "breakthroughs." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -178667,10 +173481,10 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "\"¿Por qué este lugar está jodidamente plagado de lagartos?\"" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" msgstr "" -"\"¡Compañeros hermanos escamosos! Esta noche nos deleitaremos con los monos " -"calvos.\"" #: lang/json/snippet_from_json.py msgid "\"where's some .700 t-rex medicine when you need it?\"" @@ -178685,30 +173499,33 @@ msgstr "" "mariposa?\"" #: lang/json/snippet_from_json.py -msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" +msgid "" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." msgstr "" -"\"Pistola. Espada. Pistola espada. Jodidas bayonetas, esto es muy " -"impresionante.\"" #: lang/json/snippet_from_json.py msgid "" -"\"Not sure if wielding this thing makes me feel like a bodybuilder or a " -"theoretical physicist. Both?\"" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" msgstr "" -"\"No estoy seguro si manejando esta cosa me hace sentir como un culturista o" -" como un físico teórico. ¿O ambos?\"" - -#: lang/json/snippet_from_json.py -msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" -msgstr "\"¡Esto no es el cañón de mano de calibre .50 de tu abuelo!\"" #: lang/json/snippet_from_json.py -msgid "\"Nice pistol! Which trigger fires the flamer?\"" -msgstr "\"¡Buena pistola! ¿Qué disparador dispara el fogonazo?\"" - -#: lang/json/snippet_from_json.py -msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" -msgstr "\"Por qué puñetas he colocado una ballesta en este arma de fuego.\"" +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -178934,14 +173751,6 @@ msgstr "" msgid "chief" msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " -"repeat.\"" -msgstr "" -"«Dispara a los elfos mutantes. Talla los muchos tornillos fuera de sus " -"huesos. Aclara y repite.\"" - #: lang/json/snippet_from_json.py msgid "" "A flyer for some kind of candy. It shows a picture of a gleaming human made" @@ -178949,95 +173758,6 @@ msgid "" "human candy! Are you a real monster? Will you be able to devour it all?\"" msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"\"Tank drone, meet the real deal. See how you handle 120 millimeters of " -"HELL YEAH!\"" -msgstr "" -"\"Zángano de tanque, conoce el verdadero negocio. ¡Mira cómo manejar 120 " -"milímetros de HELL YEAH!\"" - -#: lang/json/snippet_from_json.py -msgid "\"big fucking gun, earplugs are good for your brain\"" -msgstr "\"puta arma, estos tapones para los oídos vienen bien para tu cerebro\"" - -#: lang/json/snippet_from_json.py -msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" -msgstr "" -"\"Tengo un cañón de tanque montado en la bicicleta. Su argumento no es " -"válido.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Next person to call this infantry fighting vehicle a 'tank' is walking " -"home.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Found what used to be an armored platoon. Most tanks have hatches up top," -" not in the back like the new ones they're using.\"" -msgstr "" -"\"Encontré lo que solía ser un pelotón blindado. La mayoría de los tanques " -"tienen escotillas arriba, no en la parte trasera como los nuevos que se " -"están utilizando.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Agh, to See the Spiral in such a Distorted Shape! Manipulated for its " -"Vortex motion! Its Perpetual Grace! Its beauty Tarnished…\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "" -"\"Murió mi amiga, pero al menos la convertí en una torreta monstruo masa " -"amorfa gelatinosa\"." - -#: lang/json/snippet_from_json.py -msgid "" -"\"I have this laser cannon turret on my shopping cart. I push it around and" -" everything dies. I think I'm gonna toss it in the lake-- this just isn't " -"fair anymore.\"" -msgstr "" -"\"Tengo esta torreta de cañones láser en mi carrito de compras. Lo empujo y " -"todo muere alrededor. Creo que lo voy a tirar en el lago, esto no es justo " -"ya.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Day 40. Controls broken-- car's magic reactor makes it goes inexorably " -"forward. Giant rollers on front demolish forest. Maine, here I come.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"my car is a diamond in the rough… literally\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" -msgstr "\"Agregué tantas cosas a mi taxi que al final ardió. Ups.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"If I put one cargo dimension into another cargo dimension, does the " -"universe end?\"" -msgstr "\"Si coloco una dimensión dentro de otra, ¿Sería el fin del universo?\"" - -#: lang/json/snippet_from_json.py -msgid "\"one day, i will be part of car, too\"" -msgstr "\"algún día, seré parte del coche, seguro\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Putta little bitta dynamite and halfa landmine in an old soda can… WHAM!" -" You goin' somewhere.\"" -msgstr "" - #: lang/json/speech_from_json.py msgid "\"Hello?\"" msgstr "\"¿Hola?\"" @@ -180540,17 +175260,57 @@ msgid "\"Our food contains up to 95% real food.\"" msgstr "" #: lang/json/speech_from_json.py -msgid "\"FoodPlace: It's the Calories.\"" +msgid "\"At FoodPlace your excellent value brings nourishment and delight.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"At FoodPlace we have a host of solutions for your food needs!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"♪Eat at FoodPlace. ♫It is a place with food.♪\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is a popular food chain selling food items. What else is there " +"to know?\"" msgstr "" #: lang/json/speech_from_json.py msgid "\"You need food, don't you? Then come with me to FOODPLACE!!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"You need food, don't you? It's time for FoodPlace!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: It's the Calories.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Don’t get caught in the web of unsafe diet.\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"FoodPlace: Edible food is OUR guarantee!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: We bring food to life!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Edible food is one of our main goals!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is the only way to obtain healthy and strong lifecycle " +"choices!!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "Wanna play with me?" msgstr "¿Quieres jugar conmigo?" @@ -181209,7 +175969,7 @@ msgstr "\"Objetivo conseguido.\"" #: lang/json/speech_from_json.py msgid "\"Dispensing product.\"" -msgstr "" +msgstr "\"Dispensando producto.\"" #: lang/json/speech_from_json.py msgid "\"Firing.\"" @@ -181577,7 +176337,7 @@ msgstr "\"Bueno, puedes ir.\"" #: lang/json/speech_from_json.py msgid "\"[sigh] Don't tell anyone about this.\"" -msgstr "" +msgstr "\"[suspiro] No le digas a nadie acerca de esto.\"" #: lang/json/speech_from_json.py msgid "\"Well, I tried. Best of luck!\"" @@ -181691,154 +176451,6 @@ msgstr "" msgid "a semi-musical chirping that echos across the landscape." msgstr "" -#: lang/json/speech_from_json.py -msgid "\"bzzzzzz.\"" -msgstr "\"bzzzzzz.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep.\"" -msgstr "\"Bip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep?\"" -msgstr "\"Bip?\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep!\"" -msgstr "\"Bip!\"" - -#: lang/json/speech_from_json.py -msgid "\"Beeeeep beep.\"" -msgstr "\"Biiiiip bip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Bebebeeeep.\"" -msgstr "\"Bibibiiiip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep boop beep?\"" -msgstr "\"¿Biip boop biip?\"" - -#: lang/json/speech_from_json.py -msgid "\"Beedoo-Beep.\"" -msgstr "\"Bidu-Bip.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep Beep. Whirr.\"" -msgstr "\"Bip Bip. Whirr.\"" - -#: lang/json/speech_from_json.py -msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "\"Vrrrr Hrrrmmm.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whirrrrr-click click.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Boodoobeep beep beep.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "\"Brannnnnnn Brzt Brmmmm.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Brrm Bum Brrm?\"" -msgstr "\"¿Brrm Bum Brrm?\"" - -#: lang/json/speech_from_json.py -msgid "\"Pwweeee Krsht.\"" -msgstr "\"Pwweeee Krsht.\"" - -#: lang/json/speech_from_json.py -msgid "\"Fshkt fshkt. Booop.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "\"Vzt. Vzt. Krshhhhhhhh.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Grrrnd clang whirrrr.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "\"Grrrrrrrnd. Grrrnd.\"" - -#: lang/json/speech_from_json.py -msgid "\"Cla-clang cla-clang!\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Klang!\"" -msgstr "\"¡Klang!\"" - -#: lang/json/speech_from_json.py -msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "\"Bzzzt. Bzzzzt!\"" - -#: lang/json/speech_from_json.py -msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "\"Shwwwrrrrnnnzzz bzzt.\"" - -#: lang/json/speech_from_json.py -msgid "a high pitched alarm." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "a blaring siren." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"CHUG chug chug.\"" -msgstr "\"CHUG chug chug.\"" - -#: lang/json/speech_from_json.py -msgid "\"Creak! Clang clang.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Khr Khr Khr.\"" -msgstr "\"Khr Khr Khr.\"" - -#: lang/json/speech_from_json.py -msgid "a mechanical groaning." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "grinding gears." -msgstr "engranajes chirriantes." - -#: lang/json/speech_from_json.py -msgid "tortured machinery." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"SQUEE!\"" -msgstr "\"SQUIII!\"" - #: lang/json/start_location_from_json.py msgid "Shelter" msgstr "Refugio" @@ -182051,36 +176663,8 @@ msgstr "" msgid "Candy Shop" msgstr "Tienda de caramelos" -#: lang/json/start_location_from_json.py -msgid "Robot Dispatch Center" -msgstr "Centro de Despacho de Robots" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp (entrance)" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "Mansion Entrance" -msgstr "Entrada de la mansión" - -#: lang/json/start_location_from_json.py src/gamemode_defense.cpp -msgid "Mansion" -msgstr "Mansión" - -#: lang/json/start_location_from_json.py -msgid "Electronics Store" -msgstr "Tienda de Electrónica" - -#: lang/json/start_location_from_json.py -msgid "Clothing Store" -msgstr "Tienda de Ropa" - #: lang/json/talk_topic_from_json.py -msgid "You there. Quiet down. Can you hear it? The song?" +msgid "Acolyte." msgstr "" #: lang/json/talk_topic_from_json.py @@ -182088,7 +176672,7 @@ msgid "You're back. Have you come to listen to the song?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Acolyte." +msgid "You there. Quiet down. Can you hear it? The song?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -182236,32 +176820,34 @@ msgid "Yeah, alright." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." +msgid "There are bones to etch, songs to sing. Wish to join me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." +msgid "Do you wish to take on more songs?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." +msgid "Do you believe you can take on the burden of additional bones?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you believe you can take on the burden of additional bones?" +msgid "A song may yet be sung by you, should you wish to." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you wish to take on more songs?" +msgid "There is an additional song you could take on, if you'd like." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There are bones to etch, songs to sing. Wish to join me?" +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That is all for now." +msgid "" +"The song is… quiet for now. Perhaps with time, more notes will be etched in" +" the bones of this world." msgstr "" #: lang/json/talk_topic_from_json.py @@ -182269,9 +176855,7 @@ msgid "An acolyte should not take on too many songs at once." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The song is… quiet for now. Perhaps with time, more notes will be etched in" -" the bones of this world." +msgid "That is all for now." msgstr "" #: lang/json/talk_topic_from_json.py @@ -182343,16 +176927,16 @@ msgstr "" msgid "I see. Very well then." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Only those who bear my mark will prove themselves worthy of my skills." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "You bear my mark, meaning I believe you have potential to learn to truly " "listen to the Song. Yes, I will lend my skills to you, for now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Only those who bear my mark will prove themselves worthy of my skills." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I am glad to hear it. Let's go then." msgstr "" @@ -182566,14 +177150,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, I can perform first aid. You give me some bandages or a bottle of " -"antiseptic, I'll treat your wounds as best I can." +"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " +"or a bottle of antiseptic, I'm get you fixed when I see you hurting." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " -"or a bottle of antiseptic, I'm get you fixed when I see you hurting." +"Yeah, I can perform first aid. You give me some bandages or a bottle of " +"antiseptic, I'll treat your wounds as best I can." msgstr "" #: lang/json/talk_topic_from_json.py @@ -182745,13 +177329,13 @@ msgid "Thanks. I have some things for you to do." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " -"anymore..." +msgid "Hi there, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there, ." +msgid "" +"STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " +"anymore..." msgstr "" #: lang/json/talk_topic_from_json.py @@ -182825,24 +177409,24 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Anything to do before I go to sleep?" -msgstr "¿Algo para hacer antes de que me vaya a dormir?" +msgid "No, just no..." +msgstr "No, solo no..." #: lang/json/talk_topic_from_json.py -msgid "Just few minutes more..." -msgstr "Unos minutitos más..." +msgid "Just let me sleep, !" +msgstr "¡Déjame dormir, !" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." msgstr "Hazlo rápido, quiero irme a dormir." #: lang/json/talk_topic_from_json.py -msgid "Just let me sleep, !" -msgstr "¡Déjame dormir, !" +msgid "Just few minutes more..." +msgstr "Unos minutitos más..." #: lang/json/talk_topic_from_json.py -msgid "No, just no..." -msgstr "No, solo no..." +msgid "Anything to do before I go to sleep?" +msgstr "¿Algo para hacer antes de que me vaya a dormir?" #: lang/json/talk_topic_from_json.py msgid "Wake up!" @@ -182868,11 +177452,11 @@ msgid "no, go back to sleep." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What is it, friend?" +msgid " *pshhhttt* I'm reading you boss, over." msgstr "" #: lang/json/talk_topic_from_json.py -msgid " *pshhhttt* I'm reading you boss, over." +msgid "What is it, friend?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -182956,15 +177540,15 @@ msgid "Let's go." msgstr "Vamos." #: lang/json/talk_topic_from_json.py -msgid "*will engage all enemies." +msgid "*will not engage enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage enemies close enough to attack without moving." +msgid "*will engage nearby enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage distant enemies without moving." +msgid "*will engage weak enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -182972,19 +177556,15 @@ msgid "*will engage enemies you attack." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage weak enemies." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "*will engage nearby enemies." +msgid "*will engage distant enemies without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not engage enemies." +msgid "*will engage enemies close enough to attack without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid " " +msgid "*will engage all enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -182992,7 +177572,7 @@ msgid " OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid " " msgstr "" #: lang/json/talk_topic_from_json.py @@ -183000,7 +177580,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -183008,19 +177588,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -183028,7 +177608,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -183036,13 +177616,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid " What should do?" msgstr "" @@ -183118,7 +177702,8 @@ msgstr "" #: src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/monexamine.cpp src/monexamine.cpp src/npc.cpp -#: src/pickup.cpp src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp +#: src/pickup.cpp src/player.cpp src/player.cpp src/player.cpp +#: src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." msgstr "No importa." @@ -183151,12 +177736,13 @@ msgid "Attack anything you want." msgstr "Ataca todo lo que quieras." #: lang/json/talk_topic_from_json.py -msgid "*will not reserve any power for defense or utility CBMs." +#, no-python-format +msgid "*will reserve 100% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 25% of CBM power for defense or utility CBMs." +msgid "*will reserve 75% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -183166,12 +177752,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 75% of CBM power for defense or utility CBMs." +msgid "*will reserve 25% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py -#, no-python-format -msgid "*will reserve 100% of CBM power for defense or utility CBMs." +msgid "*will not reserve any power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -183211,12 +177796,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 10% of total power." +msgid "*will recharge power CBMs until has 90% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 25% of total power." +msgid "*will recharge power CBMs until has 75% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -183226,12 +177811,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 75% of total power." +msgid "*will recharge power CBMs until has 25% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 90% of total power." +msgid "*will recharge power CBMs until has 10% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -183267,19 +177852,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not bother to aim at all." +msgid "*will aim when it's convenient." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will take time and aim carefully." +msgid "*will only shoot after taking a long time to aim." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will only shoot after taking a long time to aim." +msgid "*will take time and aim carefully." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will aim when it's convenient." +msgid "*will not bother to aim at all." msgstr "" #: lang/json/talk_topic_from_json.py @@ -183323,81 +177908,81 @@ msgid "OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." msgstr "Seguir las mismas reglas que su seguidor." @@ -183570,14 +178155,14 @@ msgstr "" msgid "Sure thing, I'll make my way there." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, this summer heat is hitting me hard, let's take a quick break, how " @@ -183588,10 +178173,6 @@ msgstr "" msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, it's the time of day for a quick break surely! How are you holding " @@ -183599,13 +178180,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, I'm feeling pretty sick… are you doing OK though?" +msgid "Man it's dark out isn't it? what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " -"what's up?" +msgid "Well, I'm feeling pretty sick… are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -183614,6 +178193,12 @@ msgid "" "Anyway, you coping OK, ? " msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " +"what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Now, we've got a moment, I was just thinking it's been a month or so since… " @@ -183685,14 +178270,14 @@ msgstr "Bueno, sin hacer movimientos repentinos..." msgid "Keep your distance!" msgstr "¡Quédate lejos!" -#: lang/json/talk_topic_from_json.py -msgid "This is my territory, ." -msgstr "Este es mi territorio, ." - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is my territory, ." +msgstr "Este es mi territorio, ." + #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." msgstr "Cálmate. No voy a hacerte daño." @@ -183709,14 +178294,14 @@ msgstr "" msgid "&Put hands up." msgstr "&Levanta las manos." -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*suelta_su_arma." - #: lang/json/talk_topic_from_json.py msgid "*drops his weapon." msgstr "*suelta su arma." +#: lang/json/talk_topic_from_json.py +msgid "*drops_her_weapon." +msgstr "*suelta_su_arma." + #: lang/json/talk_topic_from_json.py msgid "Now get out of here" msgstr "Ahora vete de aquí" @@ -183745,14 +178330,6 @@ msgstr "¿Qué pasa?" msgid "I don't care." msgstr "No me importa." -#: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" -msgstr "Tengo un trabajo para ti. ¿Quieres que te cuente?" - -#: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" -msgstr "Tengo otro trabajo para ti. ¿Quieres que te cuente?" - #: lang/json/talk_topic_from_json.py msgid "I have other jobs for you. Want to hear about them?" msgstr "Tengo otros trabajos para ti. ¿Quieres saber de ellos?" @@ -183762,13 +178339,21 @@ msgid "I have more jobs for you. Want to hear about them?" msgstr "Tengo más trabajos para tí. ¿Quieres saber de ellos?" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." -msgstr "No tengo ningún otro trabajo para ti." +msgid "I have another job for you. Want to hear about it?" +msgstr "Tengo otro trabajo para ti. ¿Quieres que te cuente?" + +#: lang/json/talk_topic_from_json.py +msgid "I just have one job for you. Want to hear about it?" +msgstr "Tengo un trabajo para ti. ¿Quieres que te cuente?" #: lang/json/talk_topic_from_json.py msgid "I don't have any jobs for you." msgstr "No tengo ningún trabajo para ti." +#: lang/json/talk_topic_from_json.py +msgid "I don't have any more jobs for you." +msgstr "No tengo ningún otro trabajo para ti." + #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." @@ -183779,16 +178364,16 @@ msgid "Never mind, I'm not interested." msgstr "No importa, no estoy interesado." #: lang/json/talk_topic_from_json.py -msgid "What about it?" -msgstr "¿Qué te parece?" +msgid "You're not working on anything for me now." +msgstr "No estás trabajando en nada para mí ahora." #: lang/json/talk_topic_from_json.py msgid "Which job?" msgstr "¿Cuál trabajo?" #: lang/json/talk_topic_from_json.py -msgid "You're not working on anything for me now." -msgstr "No estás trabajando en nada para mí ahora." +msgid "What about it?" +msgstr "¿Qué te parece?" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" @@ -184005,31 +178590,31 @@ msgid "Thanks!" msgstr "¡Gracias!" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for not telling you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Nothing comes to my mind now. Ask me later perhaps?" +msgid "Focus on the road, mate!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm too tired, let me rest first." -msgstr "Estoy muy cansado/a, dejame descansar un poco." +msgid "I'm too thirsty, give me something to drink." +msgstr "Tengo mucha sed, dame algo para beber." #: lang/json/talk_topic_from_json.py msgid "I'm too hungry, give me something to eat." msgstr "Tengo mucha hambre, dame algo para comer." #: lang/json/talk_topic_from_json.py -msgid "I'm too thirsty, give me something to drink." -msgstr "Tengo mucha sed, dame algo para beber." +msgid "I'm too tired, let me rest first." +msgstr "Estoy muy cansado/a, dejame descansar un poco." #: lang/json/talk_topic_from_json.py -msgid "I must focus on the road!" +msgid "Nothing comes to my mind now. Ask me later perhaps?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Focus on the road, mate!" +msgid "I have some reason for not telling you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I must focus on the road!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -184037,16 +178622,16 @@ msgid "Ah, okay." msgstr "Ah, bueno." #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "¿Por qué tendría que viajar contigo?" +msgid "Not until I get some antibiotics..." +msgstr "Hasta que no tenga algún antibiótico, no..." #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." msgstr "Recién me preguntaste; preguntame de nuevo después." #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Hasta que no tenga algún antibiótico, no..." +msgid "Why should I travel with you?" +msgstr "¿Por qué tendría que viajar contigo?" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." @@ -184137,7 +178722,7 @@ msgid "On second thought, never mind." msgstr "Pensandolo bien, olvidate." #: lang/json/talk_topic_from_json.py -msgid "I have some reason for denying you training." +msgid "I can't train you properly while you're operating a vehicle!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -184145,11 +178730,11 @@ msgid "Give it some time, I'll show you something new later..." msgstr "Dale tiempo, te voy a mostrar algo nuevo después..." #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while I'm operating a vehicle!" +msgid "I have some reason for denying you training." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while you're operating a vehicle!" +msgid "I can't train you properly while I'm operating a vehicle!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -184188,14 +178773,14 @@ msgstr "Prefiero quedarme con eso para mí." msgid "I understand…" msgstr "Entiendo..." -#: lang/json/talk_topic_from_json.py -msgid "Why should I share my equipment with you?" -msgstr "¿Por qué tendría que compartir mi equipo contigo?" - #: lang/json/talk_topic_from_json.py msgid "You just asked me for stuff; ask later." msgstr "Ya me pediste cosas; pregúntame en otro momento." +#: lang/json/talk_topic_from_json.py +msgid "Why should I share my equipment with you?" +msgstr "¿Por qué tendría que compartir mi equipo contigo?" + #: lang/json/talk_topic_from_json.py msgid "Okay, fine." msgstr "Bueno, está bien." @@ -184339,13 +178924,13 @@ msgid "You might be seeing more of me…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " -"I've seen in a long time." +msgid "Hey again. *kzzz*" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey again. *kzzz*" +msgid "" +"I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " +"I've seen in a long time." msgstr "" #: lang/json/talk_topic_from_json.py @@ -184687,7 +179272,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "It's fine, we've got a moment." -msgstr "" +msgstr "Está bien, tenemos un rato." #: lang/json/talk_topic_from_json.py msgid "Good point, let's find a more appropriate place." @@ -185437,15 +180022,15 @@ msgid "This is a low driving test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greeting citizen, what brings you to the FoodLair?" +msgid "Greetings friend, it's nice to see you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Still here? Take your time, it's rough out there." +msgid "So you're back… Explain yourself!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greetings friend, it's nice to see you." +msgid "What sorcery is this?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -185453,11 +180038,11 @@ msgid "Welcome home Foodkid!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What sorcery is this?" +msgid "Still here? Take your time, it's rough out there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So you're back… Explain yourself!" +msgid "Greeting citizen, what brings you to the FoodLair?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -185889,6 +180474,11 @@ msgid "" "went headin' for the hills but we tracked him down. Moose went down like a " "bag o' potatoes, but a real big bag iff'n y'catch m'drift." msgstr "" +"¡Un maldito alce! ¡Viviendo en la estación de guardabosque! Casi destripa a " +"Rusty, pero pudo disparar su calibre 18 y hacerle un agujero en el pellejo. " +"Calibre 18 se fue corriendo por el monte pero pudimos rastrearlo. El alce " +"cayó como un saco de patatas, pero un saco enorme, pillas lo que te quiero " +"decir." #: lang/json/talk_topic_from_json.py msgid "I catch your drift." @@ -186100,7 +180690,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Woah, lucky for you. How did you find out about ?" -msgstr "" +msgstr "Guau, tuviste suerte. ¿Cómo te enteraste de ?" #: lang/json/talk_topic_from_json.py msgid "" @@ -186670,7 +181260,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Tell me about your son." -msgstr "" +msgstr "Cuéntame sobre tu hijo." #: lang/json/talk_topic_from_json.py msgid "So, you went to one of the FEMA camps?" @@ -186775,7 +181365,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What happened on your sick day?" -msgstr "" +msgstr "¿Y qué pasó ese día que no fuiste a trabajar?" #: lang/json/talk_topic_from_json.py msgid "" @@ -186789,7 +181379,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Did you get evacuated?" -msgstr "" +msgstr "¿Y te evacuaron?" #: lang/json/talk_topic_from_json.py msgid "" @@ -186818,6 +181408,10 @@ msgid "" " just busy not dying." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a blur." @@ -186826,8 +181420,7 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke. I'd seen such horrible injuries, and then I… " -", I can't even talk about it." +"shift I… well, I broke." msgstr "" #: lang/json/talk_topic_from_json.py @@ -186838,11 +181431,8 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I just can't talk about that right now. I can't." +"shift I… well, I broke. I'd seen such horrible injuries, and then I… " +", I can't even talk about it." msgstr "" #: lang/json/talk_topic_from_json.py @@ -187178,13 +181768,13 @@ msgstr "Gracias por decirme todo eso. " #: lang/json/talk_topic_from_json.py msgid "" -"My wife made it out with me, but got eaten by one of those plant " +"My husband made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"My husband made it out with me, but got eaten by one of those plant " +"My wife made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" @@ -187243,8 +181833,9 @@ msgid "I'm sorry you lost someone." msgstr "Siento que hayas perdido a alguien." #: lang/json/talk_topic_from_json.py -msgid "Just another tale of love and loss. Not one I like to tell." -msgstr "" +msgid "" +"I said, I don't wanna talk about it. How are you not understanding this?" +msgstr "Dije que no quería hablar de eso. ¿No entiendes?" #: lang/json/talk_topic_from_json.py msgid "" @@ -187253,8 +181844,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I said, I don't wanna talk about it. How are you not understanding this?" +msgid "Just another tale of love and loss. Not one I like to tell." msgstr "" #: lang/json/talk_topic_from_json.py @@ -187279,34 +181869,34 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." +msgid "All right, fine. I had someone. I lost him." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." +msgid "All right, fine. I had someone. I lost her." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" @@ -187349,7 +181939,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "You must have seen some shit on the way there." -msgstr "" +msgstr "Debes haber visto cosas terribles en tu camino." #: lang/json/talk_topic_from_json.py msgid "Did you make it into the house?" @@ -187358,11 +181948,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " +"up part? Like, out of all this? My husband was still alive. He'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirious by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then… well, then I did what you " +"he'd lost a ton of blood, he was delirious by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -187370,11 +181960,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " +"up part? Like, out of all this? My wife was still alive. She'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirious by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then… well, then I did what you " +"she'd lost a ton of blood, she was delirious by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -187480,6 +182070,10 @@ msgid "" "slashing patterns around me. Whatever happened to me, I think it was some " "weird shit." msgstr "" +"Había algunas pistas. Por ejemplo, yo tenía un dolor de cabeza bastante feo " +"que me duró unos días, pero no tenía ni cortes ni golpes. Y había marcas de " +"fuego en los árboles en extrañas formas de corte alrededor mío. Lo que me " +"haya pasado, seguro que fue alguna cosa extraña." #: lang/json/talk_topic_from_json.py msgid "Are you trying to get your memory back then?" @@ -187516,7 +182110,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What happened to you after that?" -msgstr "" +msgstr "¿Y qué te pasó después de eso?" #: lang/json/talk_topic_from_json.py msgid "It can't be healthy to abandon your past like that…" @@ -187776,7 +182370,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "" +msgstr "Perdón por cambiar el tema. ¿Qué me estabas diciendo?" #: lang/json/talk_topic_from_json.py msgid "All right. Here they are." @@ -187804,7 +182398,7 @@ msgstr "Bueno. ¿Qué era lo que me estabas diciendo antes?" #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." -msgstr "" +msgstr "Estuve preso por , pero me escapé. Una buena historia." #: lang/json/talk_topic_from_json.py msgid "So tell me this 'hell of a story'" @@ -187812,7 +182406,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What were you in for?" -msgstr "" +msgstr "¿Y por qué estabas preso?" #: lang/json/talk_topic_from_json.py msgid "" @@ -187849,6 +182443,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Multiple counts of possession. I used to be really hung up on meth." msgstr "" +"Múltiples delitos por posesión. Antes solía estar puesto con metanfetaminas." #: lang/json/talk_topic_from_json.py msgid "" @@ -187912,7 +182507,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What happened to the others that made it?" -msgstr "" +msgstr "¿Y qué pasó con los otros que escaparon?" #: lang/json/talk_topic_from_json.py msgid "" @@ -188016,16 +182611,6 @@ msgid "" "Hell on Earth. I wish I'd paid more attention in Sunday School." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started… cancer. If anything good has " -"come out of all this, it's that I finally see a positive to losing her so " -"young. I'd been shut in for a while anyway. When the news started talking " -"about Chinese bio weapons and sleeper agents, and showing the rioting in " -"Boston and such, I curled up with my canned soup and changed the channel." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I lived alone, on the old family property way out of town. My husband " @@ -188037,6 +182622,16 @@ msgid "" "channel." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started… cancer. If anything good has " +"come out of all this, it's that I finally see a positive to losing her so " +"young. I'd been shut in for a while anyway. When the news started talking " +"about Chinese bio weapons and sleeper agents, and showing the rioting in " +"Boston and such, I curled up with my canned soup and changed the channel." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, it built up a bit. There was that acid rain, it burnt up one of my " @@ -188112,14 +182707,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " -"interested in getting attached. You didn't pay me to be your friend." +"Like I said, you want me to tell you a story, you gotta pony up the whisky." +" A full bottle, mind you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Like I said, you want me to tell you a story, you gotta pony up the whisky." -" A full bottle, mind you." +"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " +"interested in getting attached. You didn't pay me to be your friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188232,7 +182827,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What was working for the Old Guard like?" -msgstr "" +msgstr "¿Y cómo era trabajar para la Vieja Guardia?" #: lang/json/talk_topic_from_json.py msgid "Thanks for that." @@ -188427,15 +183022,6 @@ msgid "" "help, I'd just be another dripping corpse." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " -"peel out of there with her brother - my best man - in his pickup truck as " -"things went bad. So, until I run into them again one way or another, I'm " -"just gonna keep on believing they're out there, doing well. That's more " -"than most of us have." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I have this weird hope. It's probably stupid, but I saw my fiancé " @@ -188446,11 +183032,16 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What were you saying before that?" +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Welcome! You seem new, how can I help you?" +msgid "What were you saying before that?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188473,6 +183064,10 @@ msgstr "¡Bienvenido!" msgid "How's the weather?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Welcome! You seem new, how can I help you?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What is this place?" msgstr "¿Qué es este lugar?" @@ -188559,16 +183154,16 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. If " -"you had found our community earlier, you could have had a higher chance to " -"join. The newest member joined just a few days ago." +"decisions. But as I said, your chances are low, like everyone else's. The " +"newest member joined just a long time ago." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. The " -"newest member joined just a long time ago." +"decisions. But as I said, your chances are low, like everyone else's. If " +"you had found our community earlier, you could have had a higher chance to " +"join. The newest member joined just a few days ago." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188615,15 +183210,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey! What are you doing up here? You are not allowed to come here." +msgid "You're back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You're back." +msgid "So…?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So…?" +msgid "Hey! What are you doing up here? You are not allowed to come here." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188657,15 +183252,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am sorry, but nobody is allowed to take anything from here. We would like" -" to help you, but we already have enough mouths to feed." +"I am afraid you can't. Look, we are running low on our rations, and we " +"don't want to waste even more. Even if you just want to 'borrow' it. Too " +"bad, we could've helped you if you had come here earlier." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am afraid you can't. Look, we are running low on our rations, and we " -"don't want to waste even more. Even if you just want to 'borrow' it. Too " -"bad, we could've helped you if you had come here earlier." +"I am sorry, but nobody is allowed to take anything from here. We would like" +" to help you, but we already have enough mouths to feed." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188708,14 +183303,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That information is a bit private, but you can see for yourself. We have " -"about 20 crates full of non-perishables." +"I don't know anymore. You see, we used to have 20 crates full of non-" +"perishables. That was months ago. We are running out." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I don't know anymore. You see, we used to have 20 crates full of non-" -"perishables. That was months ago. We are running out." +"That information is a bit private, but you can see for yourself. We have " +"about 20 crates full of non-perishables." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188784,11 +183379,11 @@ msgid "That's good to hear." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Pleased to meet you." +msgid "Are you here to protect us?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Are you here to protect us?" +msgid "Pleased to meet you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188845,11 +183440,11 @@ msgid "That's the most hopeful thing I've heard so far." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." +msgid "Same way you got yours, I bet." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Same way you got yours, I bet." +msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188861,19 +183456,19 @@ msgid "You're disgusting." msgstr "Eres desagradable." #: lang/json/talk_topic_from_json.py -msgid "Insulting people who could help you is unlikely to aid survival." +msgid "I'm very sorry to tell you this, but you should look in a mirror." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm very sorry to tell you this, but you should look in a mirror." +msgid "Insulting people who could help you is unlikely to aid survival." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can't believe my eyes. Please get me outta here…" +msgid "Hey, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey, ." +msgid "I can't believe my eyes. Please get me outta here…" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188899,7 +183494,9 @@ msgid "Sounds good, Barry." msgstr "Suena bien, Barry." #: lang/json/talk_topic_from_json.py -msgid "Hello Ma'am, what brings you here?" +msgid "" +"I see that badge, I think you need to keep on walking, straight off this " +"property." msgstr "" #: lang/json/talk_topic_from_json.py @@ -188907,9 +183504,7 @@ msgid "Hello Sir, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need to keep on walking, straight off this " -"property." +msgid "Hello Ma'am, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -188983,16 +183578,16 @@ msgstr "" msgid "Where can I find Chris?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hi, what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I see that badge. You need to leave our land, my relatives have no fondness" " for Marshals." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi, what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hi, Your dad asked me to come find you, said you've been looking for your " @@ -189084,7 +183679,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi, what brings you here?" +msgid "Is that a U.S. Marshal's badge you're wearing?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189092,7 +183687,7 @@ msgid "Hello, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Is that a U.S. Marshal's badge you're wearing?" +msgid "Hi, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189386,11 +183981,11 @@ msgid "That's all for now. I'd best get going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello, We don't see many people these days." +msgid "Leave our property, Marshal." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Leave our property, Marshal." +msgid "Hello, We don't see many people these days." msgstr "" #: lang/json/talk_topic_from_json.py @@ -189589,12 +184184,8 @@ msgid "Tell me about your dad." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Señora, no sé cómo demonios llegó hasta aquí abajo pero si le queda un poco " -"de juicio se iría mientras pueda." +msgid "Marshal, I hope you're here to assist us." +msgstr "Alguacil, espero que esté aquí para ayudarnos." #: lang/json/talk_topic_from_json.py msgid "" @@ -189605,8 +184196,12 @@ msgstr "" "de juicio se iría mientras pueda." #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Alguacil, espero que esté aquí para ayudarnos." +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Señora, no sé cómo demonios llegó hasta aquí abajo pero si le queda un poco " +"de juicio se iría mientras pueda." #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" @@ -189678,16 +184273,16 @@ msgid "Whatever they did it must have worked since we are still alive…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here… you should leave." -msgstr "" +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Alguacil, estoy bastante sorprendido de verlo aquí." #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here… you should leave." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Alguacil, estoy bastante sorprendido de verlo aquí." +msgid "Ma'am you are not authorized to be here… you should leave." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." @@ -189732,6 +184327,23 @@ msgstr "" "de la red de comunicaciones. Esperamos igual que algunos simples mensajes de" " texto puedan ser recibidos." +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Hola, alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Alguacil, me temo que no puedo hablar ahora." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "No estoy a cargo aquí, alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "" +"Se supone que debo dirigir todas las preguntas a mi liderazgo, alguacil." + #: lang/json/talk_topic_from_json.py msgid "Hey, citizen… I'm not sure you belong here." msgstr "" @@ -189744,15 +184356,6 @@ msgstr "Deberías meterte en tus propios asuntos, no hay nada que mirar aquí." msgid "If you need something you'll need to talk to someone else." msgstr "Si necesitas algo vas a tener que hablar con otra persona." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Señora" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Hey señorita, ¿no le parece que estaría más segura si se queda conmigo?" - #: lang/json/talk_topic_from_json.py msgid "Sir." msgstr "Señor." @@ -189762,21 +184365,13 @@ msgid "Dude, if you can hold your own you should look into enlisting." msgstr "Amigo, si puedes controlarte deberías enrolarte." #: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Hola, alguacil." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Alguacil, me temo que no puedo hablar ahora." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "" +msgid "Ma'am" +msgstr "Señora" #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." +msgid "Hey miss, don't you think it would be safer if you stuck with me?" msgstr "" -"Se supone que debo dirigir todas las preguntas a mi liderazgo, alguacil." +"Hey señorita, ¿no le parece que estaría más segura si se queda conmigo?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me…" @@ -189833,13 +184428,14 @@ msgid "I've no use for weaklings. Run. Now." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Please, help me. I need food." -msgstr "Por favor, ayudame. Necesito comida." +msgid "" +"So, any luck with convincing the others to come on your crazy adventure yet?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Please, help me. I need food. Aren't you their sheriff? Can't you help " -"me?" +"I'm sorry to say it after all you've done for me, but… I don't suppose " +"you've got anything to eat?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -189848,14 +184444,13 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm sorry to say it after all you've done for me, but… I don't suppose " -"you've got anything to eat?" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" -msgstr "" +msgid "Please, help me. I need food." +msgstr "Por favor, ayudame. Necesito comida." #: lang/json/talk_topic_from_json.py msgid "" @@ -189874,14 +184469,14 @@ 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." +"here as long as I keep it clean and don't make a fuss, but I'm reduced to " +"begging to survive." 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 reduced to " -"begging to survive." +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." msgstr "" #: lang/json/talk_topic_from_json.py @@ -189979,16 +184574,16 @@ msgid "" "hurry to face that again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " "think you realize how useless I am in this world." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I'm too hungry to make a big decision like that." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." msgstr "" @@ -190034,12 +184629,12 @@ msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"How's things with you? My cardboard collection is getting quite impressive." +msgid "We've done it! We've solved the list!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "We've done it! We've solved the list!" +msgid "" +"How's things with you? My cardboard collection is getting quite impressive." msgstr "" #: lang/json/talk_topic_from_json.py @@ -190071,13 +184666,13 @@ msgid "Do you need something to eat?" msgstr "¿Necesitas algo para comer?" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm real hungry and they put drugs in most of the food. I can see " -"you're not like that." +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." msgstr "" #: lang/json/talk_topic_from_json.py @@ -190119,6 +184714,9 @@ msgid "" "hits the cardboard and can't penetrate. The reflection can stop any further" " damage." msgstr "" +"Porque ahora hay mucho y los zombis le tienen miedo. Me mantiene a salvo. " +"Los rayos beta vienen del punto central del zombi, así que golpea el cartón " +"y no lo puede penetrar. La reflexión puede frenar los daños." #: lang/json/talk_topic_from_json.py msgid "" @@ -190171,15 +184769,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's it! I'm just gonna need a little time to get it all set up. Thanks." -" You've helped me a lot. I'm feeling much more myself with all this to " -"keep me going." +"Well… I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well… I had it all pretty together, but the others have left, and now the " -"masters won't let me build my sanctuary. Can you help me figure them out?" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." msgstr "" #: lang/json/talk_topic_from_json.py @@ -190199,18 +184797,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Don't bother with these assholes." +msgid "Fuck off, dickwaddle." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there, not-asshole. Good to see you again." +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " -"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" -" cranky. We cool?" +msgid "Hey there. Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py @@ -190220,15 +184815,18 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." +msgid "" +"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " +"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" +" cranky. We cool?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgid "Hey there, not-asshole. Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." +msgid "Don't bother with these assholes." msgstr "" #: lang/json/talk_topic_from_json.py @@ -190513,12 +185111,6 @@ msgid "" "that?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I dunno, scientific interest? If you don't bring me anything, no worries. " -"I'm positively swimming in entertainment here, as you can see." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "If you get me a sample, I'll join your crazy camp expedition. Hell, if you " @@ -190527,6 +185119,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -190570,11 +185168,11 @@ msgid "I'll see what I can do." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey, are you a big fan of survival of the fittest?" +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Thanks again for the grub, my friend." +msgid "Hey, are you a big fan of survival of the fittest?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -190595,14 +185193,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " -"Help a poor sickly soul out?" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Oh you know, the usual: sittin' out here until I starve to death, playin' " -"cards with Dave, that kinda thing." +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -190626,12 +185224,12 @@ msgid "Why are you camped out here if they won't let you in?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgid "That's awful kind of you, you really are a wonderful person." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's awful kind of you, you really are a wonderful person." +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." msgstr "" #: lang/json/talk_topic_from_json.py @@ -190905,10 +185503,6 @@ msgstr "" msgid "What's your take on the situation here?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, uh… hi. You look new. I'm Aleesha." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." msgstr "" @@ -190921,13 +185515,17 @@ msgstr "" msgid "Aw hey, look who's back." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Oh, uh… hi. You look new. I'm Aleesha." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi, Aleesha. What's up?" -msgstr "" +msgstr "Hola, Aleesha. ¿Qué tal?" #: lang/json/talk_topic_from_json.py msgid "Hi Aleesha, nice to meet you. I gotta go though." @@ -190938,16 +185536,16 @@ msgid "Hi Aleesha. I can't stay to talk." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm fourteen." -msgstr "No soy un crio. ¿Eh? Tengo catorce." +msgid "I'm not a kid, okay? I'm sixteen." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." msgstr "No soy un chico, eh. Tengo quince." #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm sixteen." -msgstr "" +msgid "I'm not a kid, okay? I'm fourteen." +msgstr "No soy un crio. ¿Eh? Tengo catorce." #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" @@ -190957,14 +185555,6 @@ msgstr "" msgid "Sorry, I didn't mean anything by it. I'll be on my way." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know what's up. I'm not sure what we've even doing here. They say " -"we're supposed to wait until we can be moved to the shelter downstairs, but " -"we've been here days and there's no word on how long we'll be waiting. It's" -" all so stupid, and nobody can tell me anything." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "We're just standing around here waiting, like a bunch of idiots. We're " @@ -190974,6 +185564,14 @@ msgid "" " We can hear them at night." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't know what's up. I'm not sure what we've even doing here. They say " +"we're supposed to wait until we can be moved to the shelter downstairs, but " +"we've been here days and there's no word on how long we'll be waiting. It's" +" all so stupid, and nobody can tell me anything." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You can't just go asking people questions like that nowadays. I'm a " @@ -191011,8 +185609,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." +msgid "Hello again, gorgeous" msgstr "" #: lang/json/talk_topic_from_json.py @@ -191022,7 +185619,8 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello again, gorgeous" +msgid "" +"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191052,33 +185650,33 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Now that you are here, everything. Is there anything Alonso can… *do for " -"you*?" +"Well, it's a lot better now that you're here. Nice to see a familiar face." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well, it's a lot better now that you're here. Nice to see a familiar face." +"Now that you are here, everything. Is there anything Alonso can… *do for " +"you*?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Alonso cannot help himself, in the face of someone so fine as you." +msgid "You know me, I gotta be me, right?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You know me, I gotta be me, right?" +msgid "Alonso cannot help himself, in the face of someone so fine as you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " +"Aw man, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw man, why you gotta be like that? I'm just tryin' to get an air of " +"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" @@ -191107,12 +185705,6 @@ msgstr "" msgid "Thanks. I'd better get going." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Alonso does not wish to talk about the past, only the future. There are " -"dark days ahead, but perhaps together we can bring a little light?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I'm tryin' ta forget, y'know? Don't like thinkin' about the past. Better " @@ -191121,8 +185713,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here in the center, Alonso is a bit lonely. We get a few brave, strong " -"travelers like yourself, though, and seeing them brightens Alonso's day." +"Alonso does not wish to talk about the past, only the future. There are " +"dark days ahead, but perhaps together we can bring a little light?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -191132,7 +185724,9 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, another new face. Hello. I am Boris." +msgid "" +"Here in the center, Alonso is a bit lonely. We get a few brave, strong " +"travelers like yourself, though, and seeing them brightens Alonso's day." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191147,6 +185741,10 @@ msgstr "" msgid "It is good to see you again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Ah, another new face. Hello. I am Boris." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." msgstr "" @@ -191215,6 +185813,13 @@ msgstr "" msgid "I'm sorry. I'd better get going." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, now that you mention it, with the back bay cleared I could probably " +"set up back there and start work. I'll think about it, get back to me " +"later." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "There isn't much to do with a hammer and a saw here indoors, and working " @@ -191225,13 +185830,6 @@ msgid "" "caravans bring food, so they get priority, I can't argue with that." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, now that you mention it, with the back bay cleared I could probably " -"set up back there and start work. I'll think about it, get back to me " -"later." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Everyone agrees this is bad. Sleeping on a cot on the floor, crowded in " @@ -191261,15 +185859,15 @@ msgid "Got any more bread I can trade flour for?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there. I'm Dana, nice to see a new face." +msgid "Hello, nice to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello, nice to see you again." +msgid "It's good to see you're still around." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good to see you're still around." +msgid "Hi there. I'm Dana, nice to see a new face." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191321,10 +185919,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do a bit. I got a sourdough starter going almost as soon as I arrived, " -"and it's making passable bread already. I cooked some up yesterday " -"actually, I could probably trade a loaf of fresh bread for, say, about eight" -" cups of flour." +"Not since I last saw you, sorry. Come by in another day or two and I'll try" +" to keep a loaf set aside for you, but they disappear fast." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191335,8 +185931,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Not since I last saw you, sorry. Come by in another day or two and I'll try" -" to keep a loaf set aside for you, but they disappear fast." +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight" +" cups of flour." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191358,12 +185956,6 @@ msgid "" "that's a lot more than most." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " -"not too bad honestly. Everyone here seems to like it." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Great, here's a loaf of the best damn sourdough bread in the world. I used " @@ -191385,6 +185977,12 @@ msgid "" "now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You seem pretty unhappy about the quality of your bread. Is there something" @@ -191414,6 +186012,10 @@ msgid "" "gonna murder someone soon, mark my words." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Huh. I've made a few friends here, but not so much as I'd stick around here" @@ -191421,10 +186023,6 @@ msgid "" "me. It does sound nice, if they're looking for more workers." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Have you heard anything back from the ranch about jobs yet?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " @@ -191462,13 +186060,13 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well now, good to see another new face! Welcome to the center, friend, I'm " -"Draco." +msgid "Always good to see you, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Always good to see you, friend." +msgid "" +"Well now, good to see another new face! Welcome to the center, friend, I'm " +"Draco." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191705,12 +186303,12 @@ msgid "Well then, I'll leave you here where it's safe." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Man, just imagine what I could do with a new guitar." +msgid "" +"My savior! My patron of the arts! You're always welcome here, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"My savior! My patron of the arts! You're always welcome here, friend." +msgid "Man, just imagine what I could do with a new guitar." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191810,14 +186408,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " -"up some Merch bucks for, say, five joints or joints-worth of the good stuff." +"Yeah, no worries, though. I'm good at the moment. Ask me again later and " +"maybe I'll have scrounged up some more cash for you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, no worries, though. I'm good at the moment. Ask me again later and " -"maybe I'll have scrounged up some more cash for you." +"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " +"up some Merch bucks for, say, five joints or joints-worth of the good stuff." msgstr "" #: lang/json/talk_topic_from_json.py @@ -191868,12 +186466,6 @@ msgstr "" msgid "Is there anything I can do to help you out?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " -"meet new people but there are no beds to share." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "" @@ -191886,6 +186478,12 @@ msgstr "" msgid "Oh, hi." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you too, Fatima. I'm just passing through." msgstr "" @@ -191945,15 +186543,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." +msgid "Well, hello." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, hello." +msgid "Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Good to see you again." +msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192019,17 +186617,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " -"call me Gunny." +msgid "Hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi." +msgid "Hey again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey again." +msgid "" +"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " +"call me Gunny." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192079,12 +186677,12 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." +msgid "Nice to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nice to see you again." +msgid "" +"Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192235,15 +186833,6 @@ msgid "" "like this before somebody snaps." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a bunch of us. We're starting to form a bit of a community. " -"Fatima and I work together a fair bit, and I've been hanging out with Dana, " -"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " -"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " -"What did you want to know?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "For better or worse, we're a community now. Fatima and I work together a " @@ -192256,6 +186845,15 @@ msgid "" "want to know?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" msgstr "" @@ -192321,14 +186919,6 @@ msgid "" "hope that there's a future to be had." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Boris and Garry are married, I guess. They kinda keep to themselves, they " -"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" -" I'm not totally sure. He seems nice enough, but he's a man of few words. " -"I can't get a good bead on them. I've learned not to pry too much though." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I didn't get to know Boris, Garry, and Stan so well for the first while. " @@ -192341,10 +186931,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I really can't get a bead on them. They never really talk to anyone outside" -" of their little family group, they just sit in their own spot and speak " -"Punjabi. They always seem nice, and they do their share, they just don't " -"have any social connection." +"Boris and Garry are married, I guess. They kinda keep to themselves, they " +"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" +" I'm not totally sure. He seems nice enough, but he's a man of few words. " +"I can't get a good bead on them. I've learned not to pry too much though." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192358,14 +186948,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " -"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " -"both seem to want to run the show here, but I try to stay out of those " -"politics and just focus on building stuff. I don't see much good coming of " -"it. Alonso is fine, he's clearly interested in me, and also in every other " -"single woman here. Not my thing, in a group this small. John is a walking " -"stereotype, I imagine there must be more depth to him, but I haven't seen it" -" yet." +"I really can't get a bead on them. They never really talk to anyone outside" +" of their little family group, they just sit in their own spot and speak " +"Punjabi. They always seem nice, and they do their share, they just don't " +"have any social connection." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192382,13 +186968,25 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " +"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " +"both seem to want to run the show here, but I try to stay out of those " +"politics and just focus on building stuff. I don't see much good coming of " +"it. Alonso is fine, he's clearly interested in me, and also in every other " +"single woman here. Not my thing, in a group this small. John is a walking " +"stereotype, I imagine there must be more depth to him, but I haven't seen it" +" yet." msgstr "" #: lang/json/talk_topic_from_json.py msgid "Howdy, pardner." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, John." msgstr "" @@ -192443,11 +187041,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello ma'am. I am Mandeep Singh." +msgid "Hello sir. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello sir. I am Mandeep Singh." +msgid "Hello ma'am. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192490,15 +187088,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." +msgid "Hi there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there." +msgid "Oh, hello there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, hello there." +msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192698,15 +187296,15 @@ msgstr "" msgid "What brings you around here? We don't see a lot of new faces." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "¿Necesitas hablar?" + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Need to talk?" -msgstr "¿Necesitas hablar?" - #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Rhy." msgstr "" @@ -192794,12 +187392,6 @@ msgstr "" msgid "Do you want to talk about your story?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " -"Stan." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hm? Oh, hi." msgstr "" @@ -192808,6 +187400,12 @@ msgstr "" msgid "...Hi." msgstr "...Hola." +#: lang/json/talk_topic_from_json.py +msgid "" +"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " +"Stan." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Stan, hey? Nice to meet you." msgstr "" @@ -192918,13 +187516,13 @@ msgid "Hmm, can we change this shave a little please?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, great. Another new mouth to feed? Just what we need. Well, I'm " -"Vanessa." +msgid "Oh, you're back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, you're back." +msgid "" +"Oh, great. Another new mouth to feed? Just what we need. Well, I'm " +"Vanessa." msgstr "" #: lang/json/talk_topic_from_json.py @@ -192963,14 +187561,6 @@ msgstr "" msgid "Could you give me a haircut?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"You want the sarcastic version, or the really sarcastic version? I'm stuck " -"in a dank shitty brick building with two dozen strangers, the world's dead, " -"and there's not enough food to go around. Why don't you fuckin' figure it " -"out?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I'm stuck in a dank shitty brick building with two dozen strangers, " @@ -192979,6 +187569,14 @@ msgid "" "to keeping my belly full. People like getting a good haircut." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I can see you need one, but last time I used these shears it was to stab a " @@ -193156,15 +187754,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Even once we got things sorted out, there weren't enough beds for everyone, " -"and definitely not enough supplies. These are harsh times. We're doing what" -" we can for those folks… at least they've got shelter." +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do. I don't know what you did to convince them to move out, but our " -"supply chain and I both thank you. I hope it wasn't too unseemly." +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks… at least they've got shelter." msgstr "" #: lang/json/talk_topic_from_json.py @@ -193556,14 +188154,14 @@ msgstr "Mantenete civilizado o te voy a causar dolor." msgid "Just on watch, move along." msgstr "Solo estoy de guardia, circulando." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "Señora, no debería estar viajando por ahí afuera." - #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" msgstr "¿Está complicado ahí afuera, no?" +#: lang/json/talk_topic_from_json.py +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "Señora, no debería estar viajando por ahí afuera." + #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center…" msgstr "" @@ -193592,14 +188190,14 @@ msgstr "" msgid "Well, I'd better be going. Bye." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Bienvenido..." - #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." msgstr "Bienvenido, alguacil..." +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Bienvenido..." + #: lang/json/talk_topic_from_json.py msgid "" "Before you say anything else, we're full. We don't have the space, nor the " @@ -193842,14 +188440,14 @@ msgid "" "attacked by zombie hordes, as you might guess." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "Ciudadano..." - #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Alguacil..." +#: lang/json/talk_topic_from_json.py +msgid "Citizen..." +msgstr "Ciudadano..." + #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" msgstr "¿Podemos comerciar recursos?" @@ -193903,15 +188501,17 @@ msgid "" "We can't. There's nothing we can spare to sell and I've got no budget to " "buy from you. I don't suppose you want to donate?" msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Pareces una persona importante." +"No podemos. No hay nada que nos sobre como para venderlo y no tengo dinero " +"para comprarte nada. Pero si quieres donar algo..." #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "¡Esa placa que tienes es bien brillante!" +#: lang/json/talk_topic_from_json.py +msgid "Heh, you look important." +msgstr "Pareces una persona importante." + #: lang/json/talk_topic_from_json.py msgid "I'm actually new." msgstr "En realidad, soy nuevo." @@ -193985,10 +188585,6 @@ msgid "" "it." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate… mutations. This was an accident." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Same way you got yours, I bet. Keep quiet about it, some people here look " @@ -193997,6 +188593,10 @@ msgstr "" "De la misma manera que conseguiste el tuyo, supongo. No hables mucho, " "algunos de aquí desprecian a las personas como nosotros." +#: lang/json/talk_topic_from_json.py +msgid "Ssh. Some people in here hate… mutations. This was an accident." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" msgstr "Perdón por preguntar." @@ -194023,22 +188623,22 @@ msgid "" "trade?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "¡Que te den!" - #: lang/json/talk_topic_from_json.py msgid "As if you're one to talk. Screw You." msgstr "Mira quién habla. No me jodas." #: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "Ah, me pareció oler a alguien nuevo. ¿Te puedo ayudar en algo?" +msgid "Screw You!" +msgstr "¡Que te den!" #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest… please don't arrest me." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Huh, thought I smelled someone new. Can I help you?" +msgstr "Ah, me pareció oler a alguien nuevo. ¿Te puedo ayudar en algo?" + #: lang/json/talk_topic_from_json.py msgid "You… smelled me?" msgstr "" @@ -194342,16 +188942,6 @@ msgstr "Supongo que eres el jefe." msgid "Glad to have you aboard." msgstr "Me alegra tenerte en el equipo." -#: lang/json/talk_topic_from_json.py -msgid "" -"Hold there. I don't care how you got access to this location, but you are " -"coming no further. Go away." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "We haven't changed our mind. Go away." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" msgstr "" @@ -194432,6 +189022,16 @@ msgstr "" msgid "If/you speak to/understand… you/me. Yes?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "We haven't changed our mind. Go away." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hold there. I don't care how you got access to this location, but you are " +"coming no further. Go away." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Wait! What??" msgstr "" @@ -194701,14 +189301,6 @@ msgstr "" msgid "Keep it civil, merc." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Here to trade, I hope?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Safe travels, scavenger." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Still plenty of outlaws in the roads, perhaps you should tend to your job, " @@ -194724,10 +189316,11 @@ msgid "Oh, a U.S. marshal, how quaint." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"We have been supplying this lab here with food from a few hunting and " -"farming communities nearby. The roads are though and dangerous, but it " -"makes good money, and beats scavenging the cities for scraps." +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -194736,6 +189329,13 @@ msgid "" "fair deal?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Keep safe, then." msgstr "" @@ -194975,16 +189575,16 @@ msgid "I'll talk with them then…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "Buenos días, señora, ¿la puedo ayudar en algo?" +msgid "Can I help you, marshal?" +msgstr "¿Puedo ayudarte, alguacil?" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" msgstr "Buenos días, señor, ¿lo puedo ayudar en algo?" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "¿Puedo ayudarte, alguacil?" +msgid "Morning ma'am, how can I help you?" +msgstr "Buenos días, señora, ¿la puedo ayudar en algo?" #: lang/json/talk_topic_from_json.py msgid "" @@ -195117,14 +189717,14 @@ msgstr "¿Qué tipo de trabajo tienen para mí?" msgid "Not now." msgstr "No ahora." -#: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." -msgstr "Puedo revisar a ti o a tus compañeros si hay alguien herido." - #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." msgstr "Vení después, necesito encargarme de unas cosas antes." +#: lang/json/talk_topic_from_json.py +msgid "I can take a look at you or your companions if you are injured." +msgstr "Puedo revisar a ti o a tus compañeros si hay alguien herido." + #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." msgstr "" @@ -195405,15 +190005,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "New test subjects! I'm so glad you showed up!" +msgid "What did you bring me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What did you bring me?" +msgid "Do you smell something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you smell something?" +msgid "New test subjects! I'm so glad you showed up!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -195489,6 +190089,205 @@ msgstr "" msgid "This is not reassuring." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more" +" fearsome enforcer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided" +" to use tactical nukes and buy time for the retreat." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that" +" were happening in the city, they were beneath me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security" +" notices piled up about routes through the city to avoid. Finally, one day " +"I came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only" +" chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"But they built me with the ability to survive a world beyond imagining." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked" +" for the government or a corporation." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come" +" back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons" +" afraid of mutants." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "" @@ -195581,11 +190380,11 @@ msgid "I must purge this place before I can move on." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Huh? *mumble mumble* … Who are you?" +msgid "Oh, you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, you again." +msgid "Huh? *mumble mumble* … Who are you?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -195597,11 +190396,11 @@ msgid "And leave my tower and all my research? I think not." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you seek power as well?" +msgid "Ah, hello again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, hello again." +msgid "Do you seek power as well?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -196263,7 +191062,7 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid " disarms %s using their whip" -msgstr "" +msgstr " desarma al %s usando su látigo" #: lang/json/technique_from_json.py msgid "Counterattack" @@ -197198,7 +191997,7 @@ msgid " hack at %s with a vicious strike" msgstr " ataca %s con un golpe feroz" #: lang/json/technique_from_json.py -msgid "Deathblow" +msgid "Mordhau" msgstr "" #: lang/json/technique_from_json.py @@ -197870,65 +192669,65 @@ msgid " smashes %s with a pressurized slam" msgstr "" #: lang/json/technique_from_json.py -msgid "Shimmer Flurry" +msgid "Tipped Intent" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a blindingly fast slash at %s" +msgid "You quickly jab your weapon at %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " slashes at %s" -msgstr " raja el/la %s" +msgid " quickly jabs their weapon at %s" +msgstr "" #: lang/json/technique_from_json.py -msgid "Tipped Intent" +msgid "Shimmer Flurry" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You swiftly jab your weapon at %s" +msgid "" +"You release a blindingly fast low slash at %s and topple them off balance" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " swiftly jabs their weapon at %s" +msgid " slashes at %s and shoves them down" msgstr "" #: lang/json/technique_from_json.py -msgid "Decisive Blow" +msgid "Mirage Slash" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a debilitating swipe at %s" +msgid "" +"You hold your blade taut, and then launch a piercing slash on %s's top half" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " releases a debilitating swipe at %s" +msgid " lands a piercing blow on %s's face" msgstr "" #: lang/json/technique_from_json.py -msgid "End Slash" +msgid "The Point" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "" -"You envision the tension of a fully drawn bow and then launch a piercing " -"blow on %s's top half" +msgid "You drive your weapon down into %s's vulnerable center mass" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " lands a piercing blow on %s's face" +msgid " lands a deadly blow on %s's unguarded center mass" msgstr "" #: lang/json/technique_from_json.py -msgid "Harsh Reprimand" +msgid "Reprimand" msgstr "" #: lang/json/technique_from_json.py @@ -197998,17 +192797,17 @@ msgid " swiftly impales their fingers into %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Joint Pain" +msgid "Shifting Feint" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You explosively jab your weapon at %s joints" +msgid "You fake a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " explosively jabs at %s" +msgid " fakes a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py @@ -198032,8 +192831,8 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "" -"You envision a gathering tempest in and then release it's energy on %s's top" -" half" +"You envision a gathering tempest and then release it's energy on %s's top " +"half" msgstr "" #: lang/json/technique_from_json.py @@ -198085,8 +192884,8 @@ msgstr "" #. ~ Description for BERSERK #: lang/json/technique_from_json.py msgid "" -"50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " -"reduces action cost and adds overall damage (S)" +"50% AP cost, 77% DMG, Down (2), STR (SS) greatly reduces AP cost and adds " +"(S) DMG" msgstr "" #: lang/json/technique_from_json.py @@ -198106,8 +192905,8 @@ msgstr "" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py msgid "" -"15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," -" and adds a (A) damage bonus, min 4 melee" +"15% AP cost, 35% DMG, wide arc, STR (SS) reduces AP cost, and adds (A) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -198127,8 +192926,8 @@ msgstr "" #. ~ Description for BISECTION #: lang/json/technique_from_json.py msgid "" -"Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " -"reduces action cost and increases overall (B) damage, min 2 melee" +"Crit!, 35% AP cost, 115% DMG, STR (SS) and DEX (SS) reduces AP cost and PER " +"(B) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -198143,9 +192942,7 @@ msgstr " le da un golpe al %s" #. ~ Description for HOOK #: lang/json/technique_from_json.py -msgid "" -"85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " -"reduces action cost" +msgid "85% AP, 88% DMG, Down (2), STR (C) reduces AP cost" msgstr "" #: lang/json/technique_from_json.py @@ -198160,8 +192957,8 @@ msgstr "" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py msgid "" -"75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " -"and adds a (C) damage bonus, min 4 melee" +"75% AP, 60% DMG, WIDE AOE, STR (S) reduces AP cost, and adds a (C) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -198176,8 +192973,8 @@ msgstr "" #. ~ Description for CHOP #: lang/json/technique_from_json.py msgid "" -"Crit only, 118% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E)" -" reduces action cost and increases overall (B) damage, min 2 melee" +"CRIT!, 118% AP, 125% Cut/Stab, DEX (D) and PER (E) reduces AP cost and adds " +"(B) DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -198192,8 +192989,8 @@ msgstr "" #. ~ Description for SMASH #: lang/json/technique_from_json.py msgid "" -"Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " -"(D) reduces action cost and increases overall (C) damage, min 2 melee" +"CRIT!, 110% AP, 120% Bash, DEX (C) and STR (D) reduces AP cost and adds (C) " +"Arpen, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -198213,8 +193010,7 @@ msgstr "" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py msgid "" -"Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" -" reduces action cost, min melee 1" +"Crit!, 120% AP, 125% damage, Stun (1), STR (A) reduces AP cost, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -198234,8 +193030,8 @@ msgstr "" #. ~ Description for SHOVE #: lang/json/technique_from_json.py msgid "" -"65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " -"(D) and DEX (E) reduce action cost" +"65% AP, REDUCED DMG, knockback (2), stun (1), STR (D) and DEX (E) reduce AP " +"cost" msgstr "" #: lang/json/technique_from_json.py @@ -198255,8 +193051,8 @@ msgstr "" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py msgid "" -"75% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " -"(B) and DEX (C) reduce action cost, min melee 1" +"75% AP, 110% DMG, knockback (3), STR (B) and DEX (C) reduce AP cost, melee " +"(1)" msgstr "" #: lang/json/technique_from_json.py @@ -198270,7 +193066,7 @@ msgstr "" #. ~ Description for TEAR #: lang/json/technique_from_json.py -msgid "Crit only, 110% Cut, 115% Stab, min melee 2" +msgid "CRIT!, 115% Cut/Stab, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -198289,8 +193085,7 @@ msgstr "" #. ~ Description for THRUST #: lang/json/technique_from_json.py -msgid "" -"110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" +msgid "110% Stab DMG, STR (E) and PER (D) adds DMG, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -198310,8 +193105,7 @@ msgstr "" #. ~ Description for LUNGE #: lang/json/technique_from_json.py msgid "" -"Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " -"provides bonus damage, min 2 melee" +"CRIT!, 115% Stab DMG, Strength (D) and Perception (D) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -198331,8 +193125,7 @@ msgstr "" #. ~ Description for PROD #: lang/json/technique_from_json.py msgid "" -"66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " -"DEX (C) reduces action cost, min 3 melee" +"66% AP, 70% Stab DMG, PER (C) adds Arpen, DEX (B) reduces AP cost, melee (3)" msgstr "" #: lang/json/technique_from_json.py @@ -198351,19 +193144,120 @@ msgstr "" #. ~ Description for PROBE #: lang/json/technique_from_json.py +msgid "80% AP, PER (C) adds DMG and Arpen (E), melee (3)" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You probe at %s's openings with your weapon" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " probes their weapon at %s " +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format msgid "" -"80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" -" also provides armor pierce (E), min 3 melee" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You carve an arc through %s and those nearby" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You probe %s's openings" +msgid " carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " probe %s " +msgid "You spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a spin attack against %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleashes a spin attack against %s and those nearby" msgstr "" #: lang/json/technique_from_json.py @@ -199188,6 +194082,8 @@ msgstr "verja de madera cerrada" #: lang/json/terrain_from_json.py msgid "A commercial quality gate made of wood with a latch system." msgstr "" +"Es una verja de calidad comercial hecha de madera con un sistema de " +"cerrojos." #: lang/json/terrain_from_json.py msgid "open wooden gate" @@ -200097,6 +194993,8 @@ msgid "" "A massive tree belonging to the 'Fagus' genus. You could cut it down with " "the right tools." msgstr "" +"Es un enorme árbol perteneciente al género 'Fagus'. Podrías talarlo con las " +"herramientas adecuadas." #: lang/json/terrain_from_json.py msgid "hazelnut tree" @@ -201221,19 +196119,6 @@ msgstr "" "apretarlos hasta formar diferentes formas, que pueden ser usadas en " "fabricaciones." -#: lang/json/terrain_from_json.py -msgid "gasoline pump" -msgstr "surtidor de gasolina" - -#. ~ Description for gasoline pump -#: lang/json/terrain_from_json.py -msgid "" -"Precious GASOLINE. The former world bowed to their petroleum god as it led " -"them to their ruin. There's plenty left over to fuel your inner road " -"warrior. If this gas dispenser doesn't give up the goods for free, you may " -"have to pay at a nearby terminal." -msgstr "" - #: lang/json/terrain_from_json.py msgid "fuel tank" msgstr "" @@ -201252,6 +196137,19 @@ msgstr "" msgid "A broken tank which was filled with gasoline." msgstr "" +#: lang/json/terrain_from_json.py +msgid "gasoline pump" +msgstr "surtidor de gasolina" + +#. ~ Description for gasoline pump +#: lang/json/terrain_from_json.py +msgid "" +"Precious GASOLINE. The former world bowed to their petroleum god as it led " +"them to their ruin. There's plenty left over to fuel your inner road " +"warrior. If this gas dispenser doesn't give up the goods for free, you may " +"have to pay at a nearby terminal." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "surtidor de gasolina roto" @@ -201263,6 +196161,16 @@ msgid "" "the liquid gold." msgstr "" +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "" + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "surtidor diésel" @@ -201508,6 +196416,8 @@ msgid "" "Deep well collecting ground water. Installed water pump allows to draw " "water from it." msgstr "" +"Es un pozo profundo usado para recolectar agua subterránea. Tiene instalada " +"una bomba que permite sacar el agua de este." #: lang/json/terrain_from_json.py msgid "water dispenser" @@ -202876,7 +197786,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "junk metal wall" -msgstr "" +msgstr "pared de chatarra" #. ~ Description for junk metal wall #: lang/json/terrain_from_json.py @@ -203189,6 +198099,8 @@ msgid "" "A smaller window typically found in residential homes. It's open and can be" " crawled through." msgstr "" +"Es una ventana pequeña que comúnmente tienen las casas residenciales. Está " +"abierta y se puede pasar por ahí." #. ~ Description for taped window #: lang/json/terrain_from_json.py @@ -203962,17 +198874,6 @@ msgid "" "much good here though. Perhaps it could be salvaged for other purposes." msgstr "" -#: lang/json/terrain_from_json.py -msgid "LEGACY hydroponics unit" -msgstr "" - -#. ~ Description for LEGACY hydroponics unit -#: lang/json/terrain_from_json.py -msgid "" -"This is a deprecated hydroponics unit. Deconstruct it to receive your " -"materials back." -msgstr "" - #: lang/json/terrain_from_json.py msgid "burnt tree" msgstr "" @@ -204056,7 +198957,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "unusual statue" -msgstr "" +msgstr "estatua extraña" #: lang/json/terrain_from_json.py msgid "containment manual override" @@ -204070,18 +198971,6 @@ msgstr "" msgid "bridge control" msgstr "" -#: lang/json/terrain_from_json.py -msgid "mass of blob feed" -msgstr "masa de alimento para monstruo masa amorfa gelatinosa" - -#: lang/json/terrain_from_json.py -msgid "squish!" -msgstr "¡Squish!" - -#: lang/json/terrain_from_json.py -msgid "mound of blob feed" -msgstr "montículo de alimento para monstruo masa amorfa gelatinosa" - #: lang/json/terrain_from_json.py msgid "singing sand" msgstr "" @@ -204256,6 +199145,10 @@ msgstr "Gato hidráulico" msgid "self jacking" msgstr "" +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "chiseling" msgstr "esculpir" @@ -204274,7 +199167,7 @@ msgstr "Extraer bala" #: lang/json/tool_quality_from_json.py msgid "analysis" -msgstr "" +msgstr "análisis" #: lang/json/tool_quality_from_json.py msgid "concentration" @@ -204463,7 +199356,7 @@ msgstr "" #: lang/json/trap_from_json.py msgid "firewood source" -msgstr "" +msgstr "fuente de leña" #: lang/json/trap_from_json.py msgid "practice target" @@ -204481,14 +199374,6 @@ msgstr "atrapa-lluvia" msgid "magic door" msgstr "" -#: lang/json/trap_from_json.py -msgid "light snare trap" -msgstr "trampa ligera de lazo" - -#: lang/json/trap_from_json.py -msgid "heavy snare trap" -msgstr "trampa pesada de lazo" - #: lang/json/vehicle_from_json.py msgid "work light" msgstr "" @@ -204735,7 +199620,7 @@ msgstr "Coche de policía" #: lang/json/vehicle_from_json.py msgid "Police K9 Unit" -msgstr "" +msgstr "Unidad de Policía K9" #: lang/json/vehicle_from_json.py msgid "Police SUV" @@ -205021,62 +199906,10 @@ msgstr "Coche Atómico" msgid "Flaming Atomic Car" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Roadheader" -msgstr "" - #: lang/json/vehicle_from_json.py msgid "Floating disk" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Robotic Taxi" -msgstr "Taxi Robótico" - -#: lang/json/vehicle_from_json.py -msgid "Armored Robot Carrier" -msgstr "Transporte Blindado de Robots" - -#: lang/json/vehicle_from_json.py -msgid "Atomic Mini-Tank" -msgstr "Mini-Tanque Atómico" - -#: lang/json/vehicle_from_json.py -msgid "Light Tank" -msgstr "Tanque Ligero" - -#: lang/json/vehicle_from_json.py -msgid "Main Battle Tank" -msgstr "Tanque de Combate" - -#: lang/json/vehicle_from_json.py -msgid "Self-Propelled Howitzer" -msgstr "Obús Autopropulsado" - -#: lang/json/vehicle_from_json.py -msgid "Mobile Gun System" -msgstr "Sistema Móvil de Armas" - -#: lang/json/vehicle_from_json.py -msgid "Bandit Bulldozer" -msgstr "Excavadora" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Planter Tractor" -msgstr "Tractor Sembradora Grande" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Plow Tractor" -msgstr "Tractor Arado Grande" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Reaper Tractor" -msgstr "Tractor Cosechadora Grande" - -#: lang/json/vehicle_from_json.py -msgid "Infantry Fighting Vehicle" -msgstr "Vehículo de Infantería de Combate" - #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" msgstr "pistola de fusión montada" @@ -205220,6 +200053,8 @@ msgid "" "A cloth wall. Keeps zombies outside the vehicle and prevents people from " "seeing through it." msgstr "" +"Es una pared de tela. Mantiene a los zombis afuera del vehículo y evita que " +"la gente vea a través de ella." #: lang/json/vehicle_part_from_json.py msgid "cloth quarterpanel" @@ -205336,7 +200171,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "external cargo rack" -msgstr "" +msgstr "estante externo de carga" #. ~ Description for {'str': 'bike rack'} #: lang/json/vehicle_part_from_json.py @@ -205357,6 +200192,12 @@ msgstr "" msgid "A combustion engine. Burns fuel from a tank in the vehicle." 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 for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " @@ -205569,7 +200410,6 @@ msgid "" msgstr "" #. ~ Description for {'str': 'floodlight'} -#. ~ Description for {'str': 'gel floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, circular light that illuminates the area outside the vehicle " @@ -205577,7 +200417,6 @@ msgid "" msgstr "" #. ~ Description for {'str': 'directed floodlight'} -#. ~ Description for {'str': 'gel directed floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, directed light that illuminates a half-circular area outside " @@ -205590,7 +200429,6 @@ msgid "headlight" msgstr "luz delantera" #. ~ Description for {'str': 'headlight'} -#. ~ Description for {'str': 'gel headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a narrow cone outside the vehicle when " @@ -205613,7 +200451,6 @@ msgid "wide angle headlight" msgstr "" #. ~ Description for {'str': 'wide angle headlight'} -#. ~ Description for {'str': 'gel wide angle headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a wide cone outside the vehicle when turned " @@ -205685,6 +200522,10 @@ msgid "" "speed. Extremely fragile and cannot be armored." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -205886,14 +200727,14 @@ msgstr "" msgid "mounted A7 laser rifle" msgstr "rifle láser A7 montado" -#: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted M249" msgstr "M249 montado" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M249S" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted gatling shotgun" msgstr "" @@ -205918,6 +200759,10 @@ msgstr "M240 montada" msgid "mounted M60" msgstr "M60 montada" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" msgstr "lanzagranadas Mark 19 montado" @@ -206332,6 +201177,8 @@ msgid "" "A light weight, advanced carbon fiber rigid sheet that keeps the water out " "of your boat." msgstr "" +"Es una lámina rígida y liviana de fibra de carbono que mantiene el agua " +"fuera de tu bote." #: lang/json/vehicle_part_from_json.py msgid "hand paddles" @@ -206859,7 +201706,7 @@ msgstr "" #. ~ Description for {'str': 'clock'} #: lang/json/vehicle_part_from_json.py msgid "A clock, so you know what time it is." -msgstr "" +msgstr "Es un reloj, así puedes saber la hora." #. ~ Description for {'str': 'leather funnel'} #. ~ Description for {'str': 'birchbark funnel'} @@ -207112,6 +201959,13 @@ msgstr "" msgid "A wooden wheel." msgstr "Una rueda de madera." +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "" @@ -207124,13 +201978,6 @@ msgid "" " makes it fragile." msgstr "" -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "crude plating" msgstr "" @@ -207142,10 +201989,6 @@ msgid "" "protective as proper armor, but it'll do if there's nothing else available." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -207207,101 +202050,6 @@ msgid "" "size." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "folding extra light quarterpanel" -msgstr "cuarto de panel extra-liviano plegable" - -#: lang/json/vehicle_part_from_json.py -msgid "foldable door" -msgstr "puerta plegable" - -#: lang/json/vehicle_part_from_json.py -msgid "superalloy coating" -msgstr "revestimiento de superaleación" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tactical shotgun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted heavy machinegun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted assault rifle" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted light machine gun" -msgstr "subfusil ligero montado" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted automatic grenade launcher" -msgstr "" - -#. ~ Description for Balancer -#: lang/json/vehicle_part_from_json.py -msgid "A large and heavy metal drum for balancing a vehicle." -msgstr "" - -#. ~ Description for roadheader -#: lang/json/vehicle_part_from_json.py -msgid "" -"A large metal jagged metalhead, powered by the vehicle's engines. Use the " -"vehicle controls to turn it on or off. When turned on, it will stop the " -"vehicle unless it has a strong engine. When turned on, it will destroy " -"walls near it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "bulette plating" -msgstr "" - -#. ~ Description for orichalcum frame -#: lang/json/vehicle_part_from_json.py -msgid "" -"An expensive magical metal framework. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mana frame" -msgstr "" - -#. ~ Description for mana frame -#: lang/json/vehicle_part_from_json.py -msgid "A shape of pure mana that can float and carry items." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "robot_carrier" -msgstr "" - -#. ~ Description for robot_carrier -#: lang/json/vehicle_part_from_json.py -msgid "" -"A cargo space for carrying robots. 'e'xamine it to capture a robot next to " -"you, or to release the robot currently contained. When selecting a robot to" -" capture, choose its tile relative to you, not the part." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm tank gun (AL)" -msgstr "arma 120mm de tanque (AC)" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm RWS" -msgstr "120mm RWS" - -#: lang/json/vehicle_part_from_json.py -msgid "ATGM turret" -msgstr "torreta ATGM" - -#: lang/json/vehicle_part_from_json.py -msgid "30mm chaingun" -msgstr "cañón de cadena 30mm" - #: lang/json/vehicle_part_from_json.py msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" @@ -207310,65 +202058,10 @@ msgstr "" "Es una turbina de vapor de combustión externa, con ciclo cerrado. Quema " "carbón de la carbonera del vehículo para producir vapor." -#: lang/json/vehicle_part_from_json.py -msgid "mounted slingshot cannon" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted lacerator" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary cannon" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted pulse laser" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted turbolaser" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted ripper" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted scorpion ballista" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted speargun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tesla cannon" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "cargo shelving" msgstr "" -#. ~ Description for {'str': 'solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. Will recharge the vehicle's " -"electrical power when exposed to the sun." -msgstr "" - -#. ~ Description for {'str': 'upgraded solar array'} -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able track the sun. Will recharge the " -"vehicle's electrical power when exposed to the sun." -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "wiring" msgstr "cableado" @@ -207382,33 +202075,6 @@ msgstr "" "Es un pedazo de cable de cobre resistente, útil para conducir energía de una" " parte del vehículo a otra." -#: lang/json/vehicle_part_from_json.py -msgid "pocket dimension cargo" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "rubber treads" -msgstr "bandas de goma" - -#. ~ Description for {'str': 'rubber treads'} -#. ~ Description for {'str': 'steel treads'} -#. ~ Description for {'str': 'tank treads'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A section of continuous track, the kind mounted on construction vehicles and" -" military fighting vehicles. It acts as a wheel, and the broad surface " -"provides plenty of traction to move heavy vehicles off-road, but at the cost" -" of speed due to the heavy weight." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "steel treads" -msgstr "bandas de acero" - -#: lang/json/vehicle_part_from_json.py -msgid "tank treads" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted TDI Vector" msgstr "" @@ -207629,10 +202295,6 @@ msgstr "" msgid "mounted RM88 battle rifle" msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary speargun" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted Ruger 10/22" msgstr "" @@ -207690,454 +202352,45 @@ msgid "mounted V29 laser" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel panel" -msgstr "panel de gel" - -#: lang/json/vehicle_part_from_json.py -msgid "gray wall" -msgstr "pared de gris" - -#. ~ Description for {'str': 'gray wall'} -#. ~ Description for {'str': 'ooze barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a vehicle wall. Keeps zombies outside the " -"vehicle and prevents people from seeing through it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel quarterpanel" -msgstr "cuarto de panel de gris" - -#. ~ Description for {'str': 'gel quarterpanel'} -#. ~ Description for {'str': 'gray barricade'} -#. ~ Description for {'str': 'ooze screen'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a half-height vehicle wall. Keeps zombies " -"outside the vehicle but allows people to see over it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gray barricade" -msgstr "barricada de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze screen" -msgstr "pantalla de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze barrier" -msgstr "barrera de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "gel framework" -msgstr "armazón de gel" - -#. ~ Description for {'str': 'gel framework'} -#. ~ Description for {'str': 'gray frame'} -#. ~ Description for {'str': 'ooze chassis'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, shaped to provide attachment points for other blobs. Other " -"vehicle components and blobs can be mounted on it. If all the frames and " -"components of a vehicle are foldable or made from blobs, the vehicle can be " -"folding into a small package and picked up as a normal item." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gray frame" -msgstr "estructura de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze chassis" -msgstr "chasis de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living, glowing blob. Having been filled with electrical power, can " -"release it as light of varying strength." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel aisle lights" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel directed floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel wide angle headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ice ram" -msgstr "ariete de hielo" - -#. ~ Description for {'str': 'ice ram'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will absorb damage in a" -" vehicle collision and deliver additional damage to the other object in the " -"collision. It should be mounted on the edge of the vehicle, preferably the " -"front." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "Gelatinous tracks" -msgstr "" - -#. ~ Description for {'str': 'Gelatinous tracks'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A set of continuous, interlocking tracks made out of blob. They can be used" -" in place of wheels, and provide good traction and off-road performance." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "Oozing tracks" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "inert core" -msgstr "núcleo inerte" - -#. ~ Description for {'str': 'inert core'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A sleeping amorphous core, acting as a rotating, universal mount for a " -"weapon. If your hands are empty, you can stand next to a tentacle and " -"'f'ire the weapon by selecting the tile." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "A living blob turned into a heavy vehicle weapon." -msgstr "" - -#. ~ Description for {'str': 'frost lancer'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state and transformed into a heavy" -" vehicle weapon." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ice pack" -msgstr "paquete de hielo" - -#. ~ Description for {'str': 'ice pack'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will keep items stored " -"in it cold, reducing the speed at which food and drink rots." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "icy windshield" -msgstr "parabrisas helado" - -#. ~ Description for {'str': 'icy windshield'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It is transparent, and can" -" be used to see out of the vehicle." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gelacier boat hull" -msgstr "" - -#. ~ Description for {'str': 'gelacier boat hull'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It acts as a boat hull." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel retriever" -msgstr "recogedor de gel" - -#. ~ Description for {'str': 'gel retriever'} -#. ~ Description for {'str': 'gray retriever'} -#. ~ Description for {'str': 'ooze retriever'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed to act as a scoop. Use the vehicle controls to turn " -"it on or off. When turned on, it will scoop up any loose items that it " -"travels over, putting them into the vehicle's storage." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel harness" -msgstr "arnés de gel" - -#. ~ Description for {'str': 'gel harness'} -#. ~ Description for {'str': 'gray harness'} -#. ~ Description for {'str': 'ooze harness'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, reformed as a belt and attached to a seat." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "capsule (10L)" -msgstr "cápsula (10L)" - -#. ~ Description for {'str': 'capsule (10L)'} -#. ~ Description for {'str': 'cocoon (30L)'} -#. ~ Description for {'str': 'pod (20L)'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a storage space for holding liquids. If filled " -"with the appropriate fuel for the vehicle's engine, the engine will " -"automatically draw fuel from the tank when the engine is on. If filled with" -" water, you can access the water from a water faucet, if one is installed in" -" the vehicle. You can also use a rubber hose to siphon liquids out of a " -"tank." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel tank (60L)" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel reinforcement" -msgstr "refuerzo de gel" - -#. ~ Description for {'str': 'gel reinforcement'} -#. ~ Description for {'str': 'gray reinforcement'} -#. ~ Description for {'str': 'ooze reinforcement'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, acting as armor plate." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel roof" -msgstr "techo de gel" - -#. ~ Description for {'str': 'gel roof'} -#. ~ Description for {'str': 'gray roof'} -#. ~ Description for {'str': 'ooze roof'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, placed as roof." +msgid "mounted tactical shotgun" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel seat" -msgstr "asiento de gel" - -#. ~ Description for {'str': 'gel seat'} -#. ~ Description for {'str': 'gray seat'} -#. ~ Description for {'str': 'ooze seat'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a comfy couch. You can sit here." +msgid "mounted heavy machinegun" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel receptacle" -msgstr "receptáculo de gel" - -#. ~ Description for {'str': 'gel receptacle'} -#. ~ Description for {'str': 'gray receptacle'} -#. ~ Description for {'str': 'ooze receptacle'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, shaped into a cargo space." +msgid "mounted assault rifle" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel pouch (under)" -msgstr "estuche de gel (debajo)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel walkway" -msgstr "pasarela de gel" +msgid "mounted light machine gun" +msgstr "subfusil ligero montado" -#. ~ Description for {'str': 'gel walkway'} -#. ~ Description for {'str': 'gray walkway'} -#. ~ Description for {'str': 'ooze walkway'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a walkway." +msgid "mounted automatic grenade launcher" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel hatch" -msgstr "escotilla de gel" - -#. ~ Description for {'str': 'gel hatch'} -#. ~ Description for {'str': 'gray hatch'} -#. ~ Description for {'str': 'ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Has a transparent patch so you can see out" -" of it, even when closed." +msgid "bulette plating" msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "opaque gel hatch" -msgstr "escotilla opaca de gel" - -#. ~ Description for {'str': 'opaque gel hatch'} -#. ~ Description for {'str': 'opaque gray hatch'} -#. ~ Description for {'str': 'opaque ooze hatch'} +#. ~ Description for orichalcum frame #: lang/json/vehicle_part_from_json.py msgid "" -"A living blob, acting as a door. Entirely opaque so you can't see through " -"it when closed." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gray retriever" -msgstr "recogedor de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray harness" -msgstr "arnés de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "cocoon (30L)" -msgstr "capullo (30L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray tank (100L)" -msgstr "tanque gris (100L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray reinforcement" -msgstr "refuerzo de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray roof" -msgstr "techo de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray seat" -msgstr "asiento de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray receptacle" -msgstr "receptáculo de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray pouch (under)" -msgstr "estuche de gris (debajo)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray walkway" -msgstr "pasarela de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "gray hatch" -msgstr "escotilla de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gray hatch" -msgstr "escotilla opaca de gris" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze retriever" -msgstr "recogedor de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze harness" -msgstr "arnés de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "pod (20L)" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze tank (80L)" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze reinforcement" -msgstr "refuerzo de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze roof" -msgstr "techo de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze seat" -msgstr "asiento de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze receptacle" -msgstr "receptáculo de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze pouch (under)" -msgstr "estuche de flujo (debajo)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze walkway" -msgstr "pasarela de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze hatch" -msgstr "escotilla de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque ooze hatch" -msgstr "escotilla opaca de flujo" - -#: lang/json/vehicle_part_from_json.py -msgid "amorphous core" -msgstr "núcleo amorfo" - -#. ~ Description for {'str': 'amorphous core'} -#: lang/json/vehicle_part_from_json.py -msgid "An amorphous mass, the living heart and brain of a blob vehicle." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "snow slider" -msgstr "deslizador de nieve" - -#. ~ Description for {'str': 'snow slider'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, existing in a super-cooled state. It acts as a wheel." -msgstr "" - -#. ~ Description for {'str': 'gelatinous wheel'} -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob. It acts as a wheel." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "diamond barrier" -msgstr "barrera de diamante" - -#. ~ Description for {'str': 'diamond barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "A transparent, solid sheet of self-sustaining crystals." +"An expensive magical metal framework. Other vehicle components can be " +"mounted on it, and it can be attached to other frames to increase the " +"vehicle's size." msgstr "" -#. ~ Description for {'str': 'diamond frame'} #: lang/json/vehicle_part_from_json.py -msgid "" -"A framework of super-strong crystal. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." +msgid "mana frame" msgstr "" -#. ~ Description for {'str': 'diamond plating'} +#. ~ Description for mana frame #: lang/json/vehicle_part_from_json.py -msgid "" -"Transparent crystal armor plate. Will partially protect other components on" -" the same frame from damage." +msgid "A shape of pure mana that can float and carry items." msgstr "" -"Es una placa de cristal transparente. Protege parcialmente otros componentes" -" que estén en el mismo lugar de la estructura." #: lang/json/vitamin_from_json.py msgid "Calcium" @@ -208200,11 +202453,20 @@ msgstr "" msgid "%s/%s " msgstr "" +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "" + #: src/achievement.cpp msgid "" "\n" @@ -208251,10 +202513,6 @@ msgstr "Misc" msgid "Debug" msgstr "Debug" -#: src/action.cpp -msgid "Back" -msgstr "Volver" - #: src/action.cpp msgid "Actions" msgstr "Acciones" @@ -208269,6 +202527,30 @@ msgstr "MENÚ PRINCIPAL" msgid "%s (Direction button)" msgstr "" +#. ~ Sound of a shovel digging a pit at work! +#. ~ Sound of a shovel filling a pit or mound at work! +#: src/activity_actor.cpp src/activity_handlers.cpp +msgid "hsh!" +msgstr "¡hsh!" + +#: src/activity_actor.cpp +msgid "Something crawls out of the coffin!" +msgstr "" + +#: src/activity_actor.cpp +msgid "You finish exhuming a grave." +msgstr "" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging the %s." +msgstr "" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging up %s." +msgstr "Terminás de desenterrar %s." + #: src/activity_actor.cpp msgid "Use electrohack?" msgstr "¿Quieres usar el electrohackeador?" @@ -208293,8 +202575,8 @@ msgstr "¡Te quedaste sin energía!" msgid "You cannot hack this." msgstr "No puedes hackear esto." -#: src/activity_actor.cpp src/activity_handlers.cpp src/computer_session.cpp -#: src/computer_session.cpp src/iuse.cpp src/map.cpp +#: src/activity_actor.cpp src/computer_session.cpp src/computer_session.cpp +#: src/iuse.cpp src/map.cpp msgid "an alarm sound!" msgstr "el sonido de una alarma!" @@ -208323,10 +202605,120 @@ msgstr "¡Activaste el panel!" msgid "The nearby doors unlock." msgstr "" +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "" + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "" + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "El cable rojo siempre enciende el motor, ¿no?" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "" + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "" +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "Con un satisfactorio click, la puerta del alambrado se abre." + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "Con un satisfactorio click, la cerradura de la puerta se abre." + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "" + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "¡Tu intento torpe traba la cerradura!" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "" +"La cerradura no cede a tus intentos de forzarla, y terminas rompiendo tu " +"herramienta." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "" +"La cerradura no cede a tus intentos de forzarla, y terminas dañando tu " +"herramienta." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "La cerradura no cede a tus intentos de forzarla." + +#: src/activity_actor.cpp src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "" + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "¿Dónde quieres usar tu ganzúa?" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "" +"Te metes la ganzúa en la nariz y tus sinusales se abren completamente." + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "Esa puerta no está cerrada con llave." + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "No puedes usar la ganzúa en eso." + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "" + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "" + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "" + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "" + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -208366,10 +202758,12 @@ msgstr "" #: src/activity_handlers.cpp msgid "None of your tools are sharp and precise enough to do that." msgstr "" +"Ninguna de tus herramientas es lo suficientemente afilada y precisa para " +"hacer eso." #: src/activity_handlers.cpp msgid "You could use a better tool, but this will do." -msgstr "" +msgstr "Te vendría bien una herramienta mejor, pero esto puede servir." #: src/activity_handlers.cpp msgid "This tool is great, but you still would like a scalpel." @@ -208394,8 +202788,8 @@ msgstr "" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." msgstr "" #: src/activity_handlers.cpp @@ -208420,7 +202814,7 @@ msgstr "" #: src/activity_handlers.cpp msgid "This corpse is already skinned." -msgstr "" +msgstr "Este cadáver ya está despellejado." #: src/activity_handlers.cpp msgid "This corpse is too small to quarter without damaging." @@ -208682,56 +203076,10 @@ msgstr "No encontraste nada." msgid "The %s runs out of batteries." msgstr "El %s se queda sin batería." -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "Este cable hace que se encienda el motor." - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "Este cable, probablemente encienda el motor." - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "Por descarte, este cable enciende el motor." - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "El cable rojo siempre enciende el motor, ¿no?" - #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "Ya terminaste de recuperar cosas." -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "¡No hay ningún cadáver para convertir en esclavo zombi!" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "" - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie" -" won't be able to attack when it reanimates." -msgstr "" -"Te vas abriendo camino por el cadáver y cortando algunos partes. Crees que " -"el zombi no va a poder atacarte cuando reviva." - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "Cortaste demasiado el cadáver, ahora está hecho puré." - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "" -"Cortas por adentro del cadáver tratando de que quede incapaz de atacar, pero" -" no te parece que lo hayas hecho bien." - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -208884,38 +203232,6 @@ msgstr "¡hissssssssss!" msgid "With a satisfying click, the lock on the safe opens!" msgstr "" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "Con un satisfactorio click, la puerta del alambrado se abre." - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "Con un satisfactorio click, la cerradura de la puerta se abre." - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "¡Tu intento torpe traba la cerradura!" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "" -"La cerradura no cede a tus intentos de forzarla, y terminas rompiendo tu " -"herramienta." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "" -"La cerradura no cede a tus intentos de forzarla, y terminas dañando tu " -"herramienta." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "La cerradura no cede a tus intentos de forzarla." - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "Repetir una vez" @@ -209046,6 +203362,10 @@ msgstr "" msgid "You finish fishing" msgstr "" +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "¡Está demasiado oscuro para leer!" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "Terminaste de leer." @@ -209072,26 +203392,6 @@ msgstr "" msgid "%s finishes chatting with you." msgstr "" -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "" - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "" @@ -209180,10 +203480,6 @@ msgid "" "actually stitching 's wounds." msgstr "" -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "Intentas dormirte pero no puedes…" - #: src/activity_handlers.cpp msgid "" "The Autodoc returns to its resting position after successfully performing " @@ -209311,7 +203607,7 @@ msgstr "Produciste %d tablas." #: src/activity_handlers.cpp #, c-format msgid "You produce %d splinters." -msgstr "" +msgstr "Produjiste %d astillas." #: src/activity_handlers.cpp msgid "You waste a lot of the wood." @@ -209330,30 +203626,6 @@ msgstr "Has terminado de taladrar ." msgid " finishes drilling." msgstr "" -#. ~ Sound of a shovel digging a pit at work! -#. ~ Sound of a shovel filling a pit or mound at work! -#: src/activity_handlers.cpp -msgid "hsh!" -msgstr "¡hsh!" - -#: src/activity_handlers.cpp -msgid "Something crawls out of the coffin!" -msgstr "" - -#: src/activity_handlers.cpp -msgid "You finish exhuming a grave." -msgstr "" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging the %s." -msgstr "" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging up %s." -msgstr "Terminás de desenterrar %s." - #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." @@ -210005,10 +204277,6 @@ msgstr "SE" msgid "South East" msgstr "SurEste" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "O" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "Oeste" @@ -210199,6 +204467,11 @@ msgstr "" msgid "Source area is the same as destination (%s)." msgstr "El área de destino es la misma que el área de origen (%s)." +#: src/advanced_inv.cpp +#, c-format +msgid "You have no space for %s" +msgstr "" + #: src/advanced_inv.cpp msgid "Default layout was saved." msgstr "La disposición por defecto fue guardada." @@ -210227,12 +204500,6 @@ msgstr "El contenedor de origen está vacío." msgid "You can unload only liquids into target container." msgstr "Solamente puedes poner líquidos en el contenedor de destino." -#: src/advanced_inv.cpp -msgid "You can't partially unload liquids from unsealable container." -msgstr "" -"No puedes descargar parcialmente el líquido de un contenedor que no se puede" -" sellar." - #: src/advanced_inv.cpp msgid "You can't pick up a liquid." msgstr "No puedes coger un líquido." @@ -210331,6 +204598,10 @@ msgstr "" msgid "an aura around you" msgstr "" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "" + #: src/armor_layers.cpp #, c-format msgid "" @@ -210416,11 +204687,6 @@ msgstr "Incomodidad:" msgid "Warmth:" msgstr "Abrigo:" -#: src/armor_layers.cpp -#, c-format -msgid "Storage (%s):" -msgstr "Almacenamiento (%s):" - #: src/armor_layers.cpp msgid "Protection" msgstr "Protección" @@ -210433,6 +204699,10 @@ msgstr "Golpe:" msgid "Cut:" msgstr "Corte: " +#: src/armor_layers.cpp +msgid "Ballistic:" +msgstr "" + #: src/armor_layers.cpp msgid "Acid:" msgstr "Ácido:" @@ -210493,16 +204763,6 @@ msgstr "Te ayuda a ver bien abajo del agua." msgid "It can occupy the same space as other things." msgstr "" -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "%s está muy lejos para ordenarse la ropa." - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "¡%s no es tu amigo!" - #: src/armor_layers.cpp msgid "Sort Armor" msgstr "Ordenar Ropa" @@ -210547,6 +204807,16 @@ msgstr "Incomodidad y Abrigo" msgid "Encumbrance" msgstr "Incomodidad" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "%s está muy lejos para ordenarse la ropa." + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "¡%s no es tu amigo!" + #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" @@ -210554,7 +204824,7 @@ msgstr "¿Cambiar lugar de %s?" #: src/armor_layers.cpp msgid "Can't put this on!" -msgstr "" +msgstr "¡No te puedes poner esto!" #: src/armor_layers.cpp msgid "Remove selected armor?" @@ -211487,10 +205757,6 @@ msgstr "¡Eres analfabeto!" msgid "Your eyes won't focus without reading glasses." msgstr "Tus ojos no se pueden enfocar sin tus gafas de leer." -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "¡Está demasiado oscuro para leer!" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "¡Por ahí alguien te podría leer esto, pero eres sordo!" @@ -211804,11 +206070,15 @@ msgstr "" msgid "You train for a while." msgstr "" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp +msgid "It looks like you woke up before your alarm." +msgstr "Parece que te despertaste antes de que suene la alarma." + +#: src/avatar.cpp msgid "It looks like you've slept through your internal alarm…" msgstr "" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp msgid "It looks like you've slept through the alarm…" msgstr "" @@ -211816,6 +206086,11 @@ msgstr "" msgid "You retched, but your stomach is empty." msgstr "Tienes arcadas, pero tu estómago está vacío." +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "Tú (%s)" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "" @@ -211890,59 +206165,12 @@ msgstr "" msgid "Are you sure you want to raise %s? %d points available." msgstr "" -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "" - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "" - -#: src/avatar.cpp -msgid "You start walking." -msgstr "Empiezas a andar." - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "" - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "" - -#: src/avatar.cpp -msgid "You start running." -msgstr "Empiezas a correr." - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "" - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "" - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "Estás muy cansado para correr." - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "" - -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "" - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "Empiezas a agacharte." - -#. ~ %1$s: weapon name, %2$s: holster name +#. ~ %1$s: weapon name +#. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp #, c-format msgctxt "holster" -msgid "Draw %1$s from %2$s?" +msgid "Draw from %1$s?" msgstr "" #: src/avatar.cpp src/monexamine.cpp @@ -211990,11 +206218,11 @@ msgstr "" msgid "Move into the monster to attack." msgstr "" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" msgstr "¡Tu voluntad se reafirma a sí misma, y tú haces lo mismo!" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything…" msgstr "" @@ -212207,11 +206435,6 @@ msgstr "" msgid "This grass is tainted with paint and thus inedible." msgstr "" -#: src/avatar_action.cpp -#, c-format -msgid "You leave the empty %s." -msgstr "Dejas el/la %s vacío/a." - #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "No puedes tirar con eficacia mientras estás dentro de tu caparazón." @@ -212831,10 +207054,6 @@ msgstr "" msgid "Your %s powers down." msgstr "Tu %s se apaga." -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "¡Generador artificial de noche activado!" - #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." @@ -212905,6 +207124,14 @@ msgstr "" msgid "The %s screws up the operation." msgstr "" +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "" + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "" + #: src/bionics.cpp msgid "You prep to begin surgery." msgstr "Te preparás para empezar la cirugía." @@ -213147,6 +207374,8 @@ msgstr "" msgid "" " settles into position, sliding their wrist into the couch's strap." msgstr "" +" se pone en posición, deslizando su muñeca dentro de la correa del " +"sillón." #: src/bionics.cpp msgid "You feel excited as the operation starts." @@ -213659,6 +207888,46 @@ msgstr "litro" msgid "quart" msgstr "cuarto" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "" + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -213960,13 +208229,6 @@ msgstr "" msgid "This %s is too small to wear comfortably! Maybe it could be refitted." msgstr "" -#. ~ %1$s: item name, %2$s: container name -#: src/character.cpp -#, c-format -msgctxt "container" -msgid "You put the %1$s in your %2$s." -msgstr "Pones el/la %1$s en tu %2$s." - #: src/character.cpp msgid "You can't place items here!" msgstr "¡No puedes poner objetos aquí!" @@ -214200,12 +208462,8 @@ msgid "Slaked" msgstr "Sed saciada" #: src/character.cpp -msgid "Engorged" -msgstr "Barriga llena" - -#: src/character.cpp -msgid "Sated" -msgstr "Satisfecho" +msgid "Satisfied" +msgstr "" #: src/character.cpp msgid "Hungry" @@ -214215,21 +208473,21 @@ msgstr "Hambriento" msgid "Very Hungry" msgstr "Muy hambriento/a" -#: src/character.cpp -msgid "Starving!" -msgstr "¡Muriendo de hambre!" - #: src/character.cpp msgid "Near starving" msgstr "Casi muriendo de hambre" +#: src/character.cpp +msgid "Starving!" +msgstr "¡Muriendo de hambre!" + #: src/character.cpp msgid "Famished" msgstr "Famélico" #: src/character.cpp -msgid "Peckish" -msgstr "Hambriento/a" +msgid "ERROR!" +msgstr "" #: src/character.cpp src/npctalk.cpp msgid "Exhausted" @@ -214275,22 +208533,42 @@ msgstr "Estás sintiendo calambres por meterte en este vehículo." msgid "You have a sudden heart attack!" msgstr "¡Sufres un repentino ataque al corazón!" +#: src/character.cpp +msgid " has a sudden heart attack!" +msgstr "" + #: src/character.cpp msgid "Your breathing stops completely." msgstr "Tu respiración se detiene completamente." +#: src/character.cpp +msgid "'s breathing stops completely." +msgstr "" + #: src/character.cpp msgid "Your heart spasms painfully and stops." msgstr "Sientes espasmos dolorosos en tu corazón, y se detiene." +#: src/character.cpp +msgid "'s heart spasms painfully and stops." +msgstr "" + #: src/character.cpp msgid "Your heart spasms and stops." msgstr "Tu corazón sufre espasmos y se detiene." +#: src/character.cpp +msgid "'s heart spasms and stops." +msgstr "" + #: src/character.cpp msgid "Your breathing slows down to a stop." msgstr "" +#: src/character.cpp +msgid "'s breathing slows down to a stop." +msgstr "" + #: src/character.cpp msgid "You have starved to death." msgstr "Te moriste de hambre." @@ -214309,7 +208587,7 @@ msgstr "¡Estás SEDIENTO!" #: src/character.cpp msgid "Your mouth feels so dry…" -msgstr "" +msgstr "Sentís tu boca muy seca..." #: src/character.cpp msgid "Survivor sleep now." @@ -214566,6 +208844,12 @@ msgstr "" msgid "Cancel" msgstr "Cancelar" +#. ~ you filled to the brim with +#: src/character.cpp +#, c-format +msgid "You filled %1$s to the brim with %2$s." +msgstr "" + #: src/character.cpp src/iexamine.cpp #, c-format msgid "You pour %1$s into the %2$s." @@ -214639,7 +208923,7 @@ msgstr "" #: src/character.cpp msgid "Emaciated" -msgstr "" +msgstr "Demacrado" #: src/character.cpp msgid "Spooky Scary Skeleton" @@ -215083,7 +209367,7 @@ msgstr "" msgid "You need a hammering tool to crush up frozen liquids!" msgstr "" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp src/npc.cpp msgid "Wielding: " msgstr "Empuñando: " @@ -215095,11 +209379,6 @@ msgstr "Vistiendo: " msgid "Traits: " msgstr "Rasgos: " -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "Tú (%s)" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." @@ -216282,7 +210561,7 @@ msgid "This is full of dirt after being on the ground." msgstr "" #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/player.cpp +#: src/iuse_actor.cpp src/iuse_actor.cpp msgid "You can't do that while underwater." msgstr "No puedes hacer eso abajo del agua." @@ -216295,7 +210574,7 @@ msgstr "" msgid "You can't drink it while it's frozen." msgstr "No puedes bebértelo/a mientras esté congelado/a." -#: src/consumption.cpp src/player.cpp +#: src/consumption.cpp #, c-format msgid "You need a %s to consume that!" msgstr "¡Necesitas un/a %s para consumir eso!" @@ -216324,10 +210603,18 @@ msgstr "No puedes comer esto." msgid "This is rotten and smells awful!" msgstr "¡Esto está podrido y apesta!" +#: src/consumption.cpp +msgid "The thought of eating demihuman flesh makes you feel sick." +msgstr "" + #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." msgstr "La idea de comer carne humana te provoca nauseas." +#: src/consumption.cpp +msgid "Eating this raw meat probably isn't very healthy." +msgstr "" + #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." msgstr "" @@ -216694,6 +210981,15 @@ msgid_plural " load %1$i charges of %2$s in their %3$s." msgstr[0] "" msgstr[1] "" +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "No tienes ese objeto." + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "No te puedes comer tu %s." + #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" msgstr " (cercano)" @@ -216785,8 +211081,8 @@ msgstr "¡Ya no puedes fabricar eso!" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" msgstr "" #: src/crafting.cpp src/pickup.cpp @@ -217532,6 +211828,11 @@ msgctxt "damage type" msgid "stab" msgstr "apuñalado/a" +#: src/damage.cpp +msgctxt "damage_type" +msgid "bullet" +msgstr "" + #: src/damage.cpp msgctxt "damage type" msgid "heat" @@ -217721,6 +212022,14 @@ msgstr "Probar lista de mapas extra" msgid "Info…" msgstr "Información..." +#: src/debug_menu.cpp +msgid "Enable achievements" +msgstr "" + +#: src/debug_menu.cpp +msgid "Game…" +msgstr "" + #: src/debug_menu.cpp msgid "Teleport - short range" msgstr "Teletransportar - distancia corta" @@ -218166,6 +212475,10 @@ msgstr "Sed" msgid "Fatigue" msgstr "Cansancio" +#: src/debug_menu.cpp +msgid "Sleep Deprivation" +msgstr "Privación de Sueño" + #: src/debug_menu.cpp msgid "Reset all basic needs" msgstr "Reiniciar todas las necesidades básicas" @@ -218550,6 +212863,14 @@ msgstr "¿Establecer turno en? (Un día son %i turnos)" msgid "Enter benchmark length (in milliseconds):" msgstr "Introducir longitud de benchmark (en milisegundos):" +#: src/debug_menu.cpp +msgid "Achievements are already enabled" +msgstr "" + +#: src/debug_menu.cpp +msgid "Achievements enabled" +msgstr "" + #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " @@ -218795,7 +213116,7 @@ msgstr "campo: %s L:%d[%s] A:%d" msgid "trap: %s (%d)" msgstr "trampa: %s (%d)" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "Hay un/a %s ahí. Partes:" @@ -219934,7 +214255,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Searching for materials to upgrade the camp.\n" -msgstr "" +msgstr "Buscando materiales para mejorar el campamento.\n" #: src/faction_camp.cpp msgid "Recover Ally from Gathering" @@ -220229,7 +214550,7 @@ msgstr "" #: src/faction_camp.cpp msgid "You are too close to another camp!" -msgstr "" +msgstr "¡Estás demasiado cerca de otro campamento!" #: src/faction_camp.cpp msgid "" @@ -220282,7 +214603,7 @@ msgstr " Expansión" #: src/faction_camp.cpp msgid "Recover Ally, " -msgstr "" +msgstr "Recuperar Aliado" #: src/faction_camp.cpp #, c-format @@ -221469,6 +215790,11 @@ msgstr "¡El árbol florece en un capullo fúngico!" msgid "You completed the achievement \"%s\"." msgstr "" +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "" + #: src/game.cpp src/options.cpp #, c-format msgid "Loading the tileset failed: %s" @@ -221637,6 +215963,16 @@ msgctxt "action" msgid "disassemble" msgstr "desmontar" +#: src/game.cpp +msgctxt "action" +msgid "insert" +msgstr "Meter" + +#: src/game.cpp +msgctxt "action" +msgid "open" +msgstr "" + #: src/game.cpp msgctxt "action" msgid "unfavorite" @@ -222155,11 +216491,6 @@ msgstr "" msgid "Without extra fuel it will burn for between %s to %s." msgstr "" -#: src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "" - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "" @@ -222194,6 +216525,44 @@ msgstr "No hay nada que recoger cerca." msgid "Peek where?" msgstr "¿Adónde te quieres asomar?" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "minúsculo" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "pequeño" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "mediano" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "grande" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "enorme" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "" + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "Es de tamaño %s." + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "" + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -222235,17 +216604,17 @@ msgstr "No ves." #: src/game.cpp #, c-format -msgid "%s; Impassable" -msgstr "%s; Intransitable" +msgid "Cover: %d%%" +msgstr "" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" -msgstr "%s; Movimiento %d" +msgid "Impassable" +msgstr "" #: src/game.cpp -msgid "Lighting: " -msgstr "Luz: " +#, c-format +msgid "Move cost: %d" +msgstr "" #: src/game.cpp #, c-format @@ -222253,8 +216622,8 @@ msgid "Sign: %s" msgstr "Cartel: %s" #: src/game.cpp -msgid "Sign: ???" -msgstr "Cartel: ???" +msgid "Lighting: " +msgstr "Luz: " #: src/game.cpp #, c-format @@ -222266,16 +216635,15 @@ msgstr "Abajo: %s; Sin apoyo" msgid "Below: %s; Walkable" msgstr "Abajo: %s; Transitable" -#: src/game.cpp -#, c-format -msgid "Coverage: %d%%" -msgstr "Cobertura: %d%%" - #: src/game.cpp #, c-format msgid "Unfinished task: %s, %d%% complete" msgstr "Tarea sin finalizar: %s, %d%% completada" +#: src/game.cpp +msgid "Vehicle: " +msgstr "" + #: src/game.cpp msgid "You cannot see what is inside of it." msgstr "No puedes ver si hay algo adentro." @@ -222662,7 +217030,7 @@ msgstr "¡Necesitas por lo menos un/a %s para recargar el/la %s!" msgid "The %s is already full!" msgstr "¡El %s ya está lleno!" -#: src/game.cpp src/ranged.cpp +#: src/game.cpp #, c-format msgid "You can't reload a %s!" msgstr "¡No puedes recargar un %s!" @@ -223417,8 +217785,40 @@ msgid "Speed %s%d!" msgstr "¡Velocidad %s%d!" #: src/game.cpp -msgid "You slip while climbing and fall down again." -msgstr "Te resbalás mientras trepabas y te caes de nuevo." +msgid "Your skill in parkour makes it easier to climb." +msgstr "" + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "" + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "" + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "" + +#: src/game.cpp +msgid "You slip while climbing and fall down." +msgstr "" #: src/game.cpp msgid "Climbing is impossible in your current state." @@ -223437,6 +217837,11 @@ msgstr "" " Atajos de teclas de objetos asignados: " "%d/%d" +#: src/game_inventory.cpp +#, c-format +msgid "Inventory of %s" +msgstr "" + #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." msgstr "Tu inventario está vacío." @@ -223461,6 +217866,10 @@ msgstr "IMPACTO" msgid "CUT" msgstr "CORTE" +#: src/game_inventory.cpp +msgid "BULLET" +msgstr "" + #: src/game_inventory.cpp msgid "ACID" msgstr "ÁCIDO" @@ -223554,6 +217963,15 @@ msgstr "%.2f%s" msgid "VOLUME" msgstr "VOLUMEN" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "%s" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "FRESCURA" @@ -223609,7 +218027,7 @@ msgstr "mitad de vida útil" #: src/game_inventory.cpp msgid "past midlife" -msgstr "" +msgstr "más de mitad de vida útil" #: src/game_inventory.cpp msgid "getting older" @@ -223786,6 +218204,10 @@ msgstr "CUERPO A CUERPO" msgid "MOVES" msgstr "MOVIMIENTOS" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "" + #: src/game_inventory.cpp msgid "Wield item" msgstr "Empuñar objeto" @@ -223796,21 +218218,26 @@ msgstr "No tienes nada para empuñar." #: src/game_inventory.cpp #, c-format -msgid "You can't put anything into your %s." +msgid "Put item into %s" msgstr "" -#: src/game_inventory.cpp src/iuse_actor.cpp -msgid "Holster item" -msgstr "Enfundar objeto" - #: src/game_inventory.cpp #, c-format msgid "Choose an item to put into your %s" msgstr "" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "" + +#: src/game_inventory.cpp +#, c-format +msgid "Insert items into %s" +msgstr "" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." +msgid "Could not put %s into %s, aborting." msgstr "" #: src/game_inventory.cpp src/iuse.cpp @@ -224091,34 +218518,6 @@ msgstr "¡Tienes que elegir por lo menos un grupo de monstruos!" msgid "Special Zombies" msgstr "Zombis Especiales" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "Zombis" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "Trífidos" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "Robots" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "Subespacio" - -#: src/gamemode_defense.cpp src/handle_action.cpp -msgid "Food" -msgstr "Comida" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "Mercenarios" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "Permitir guardar" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "MODO DEFENSA" @@ -224197,7 +218596,35 @@ msgstr "Es el aumento del premio por cada oleada." msgid "Enemy Selection:" msgstr "Selección de Enemigo:" -#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "Zombis" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "Trífidos" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "Robots" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "Subespacio" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "Comida" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "Mercenarios" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "Permitir guardar" + +#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp src/options.cpp msgid "Custom" msgstr "Personalizado" @@ -224282,6 +218709,10 @@ msgstr "Supermercado" msgid "Bar" msgstr "Bar" +#: src/gamemode_defense.cpp +msgid "Mansion" +msgstr "Mansión" + #: src/gamemode_defense.cpp msgid "One entrance and many rooms. Some medical supplies." msgstr "Una entrada y muchas habitaciones. Hay algunos suministros médicos." @@ -224478,7 +218909,7 @@ msgstr "" #: src/gates.cpp #, c-format msgid "The %s is too big to just nudge out of the way." -msgstr "" +msgstr "El/a %s es demasiado grande como para empujarlo." #: src/gates.cpp msgid "There is too much stuff in the way." @@ -224568,6 +218999,10 @@ msgstr "" msgid "This vehicle doesn't look very airworthy." msgstr "" +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "" + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "" @@ -224953,15 +219388,7 @@ msgid "Change to which movement mode?" msgstr "" #: src/handle_action.cpp -msgid "Run" -msgstr "Correr" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "Caminar" - -#: src/handle_action.cpp -msgid "Crouch" +msgid "Cycle move mode" msgstr "" #: src/handle_action.cpp @@ -225466,6 +219893,10 @@ msgid_plural "Withdraw how much? Max: %d cents. (0 to cancel) " msgstr[0] "" msgstr[1] "" +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "" @@ -226335,7 +220766,7 @@ msgstr "Llenás el %1$s con %2$s." #: src/iexamine.cpp #, c-format msgid "Dispense or dump %s" -msgstr "" +msgstr "Repartir o tirar %s" #: src/iexamine.cpp src/vehicle_use.cpp msgid "Have a drink" @@ -226669,18 +221100,19 @@ msgid "You're illiterate, and can't read the screen." msgstr "Eres analfabeto, no puedes leer la pantalla." #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" +#, c-format +msgid "Failure! No %s pumps found!" msgstr "" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" +#, c-format +msgid "Failure! No %s tank found!" msgstr "" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." msgstr "" -"Esta estación se ha quedado sin combustible. Le pedimos disculpas por las " -"molestias." #: src/iexamine.cpp msgid "Welcome to AutoGas!" @@ -226691,36 +221123,41 @@ msgid "What would you like to do?" msgstr "¿Qué acción quieres realizar?" #: src/iexamine.cpp -msgid "Buy gas." -msgstr "Comprar combustible." +#, c-format +msgid "Buy %s." +msgstr "" #: src/iexamine.cpp msgid "Refund cash." msgstr "Reembolso de dinero." #: src/iexamine.cpp -msgid "Current gas pump: " -msgstr "Surtidor seleccionado:" +#, c-format +msgid "Current %s pump: " +msgstr "" #: src/iexamine.cpp -msgid "Choose a gas pump." -msgstr "Seleccionar surtidor." +#, c-format +msgid "Choose a %s pump." +msgstr "" #: src/iexamine.cpp msgid "Your discount: " msgstr "Descuento de:" #: src/iexamine.cpp -msgid "Your price per gasoline unit: " -msgstr "Precio por unidad de gasolina." +#, c-format +msgid "Your price per %s unit: " +msgstr "" #: src/iexamine.cpp msgid "Hack console." msgstr "Hackear consola." #: src/iexamine.cpp -msgid "Please choose gas pump:" -msgstr "Por favor, selecciona un surtidor:" +#, c-format +msgid "Please choose %s pump:" +msgstr "" #: src/iexamine.cpp msgid "Pump " @@ -226733,7 +221170,7 @@ msgstr "" #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" msgstr "" #: src/iexamine.cpp @@ -226787,8 +221224,8 @@ msgid "You jump over an obstacle." msgstr "" #: src/iexamine.cpp -msgid "You can't climb down there" -msgstr "No puedes bajar trepando por ahí" +msgid "You can't climb down there." +msgstr "" #: src/iexamine.cpp #, c-format @@ -226815,6 +221252,14 @@ msgstr "" msgid "You may have problems climbing back up. Climb down?" msgstr "" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "" + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "" @@ -226844,8 +221289,8 @@ msgstr "" #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate." -" Please move patient to appropriate facility. Exiting." +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." msgstr "" #: src/iexamine.cpp @@ -227399,10 +221844,6 @@ msgstr "Piezas de vehículo" msgid "Traps" msgstr "Trampas" -#: src/init.cpp -msgid "Bionics" -msgstr "Biónicos" - #: src/init.cpp msgid "Terrain" msgstr "Terreno" @@ -227439,6 +221880,10 @@ msgstr "Prototipos de vehículo" msgid "Mapgen weights" msgstr "Pesos en generación de mapa" +#: src/init.cpp +msgid "Behaviors" +msgstr "Comportamientos" + #: src/init.cpp msgid "Monster types" msgstr "Tipos de Monstruos" @@ -227455,6 +221900,10 @@ msgstr "Facciones de monstruos" msgid "Factions" msgstr "Facciones" +#: src/init.cpp +msgid "Move modes" +msgstr "" + #: src/init.cpp msgid "Crafting recipes" msgstr "Recetas de fabricación" @@ -227475,10 +221924,6 @@ msgstr "Clases de PNJ" msgid "Missions" msgstr "Misiones" -#: src/init.cpp -msgid "Behaviors" -msgstr "Comportamientos" - #: src/init.cpp msgid "Harvest lists" msgstr "Listas de cosechas" @@ -227491,8 +221936,8 @@ msgstr "Anatomías" msgid "Mutations" msgstr "Mutaciones" -#: src/init.cpp -msgid "Achivements" +#: src/init.cpp src/scores_ui.cpp +msgid "Achievements" msgstr "" #: src/init.cpp @@ -227551,6 +221996,10 @@ msgstr "Extras de mapa" msgid "Ammunition types" msgstr "Tipos de Munición" +#: src/init.cpp +msgid "Bionics" +msgstr "Biónicos" + #: src/init.cpp msgid "Gates" msgstr "Puertas" @@ -227587,6 +222036,10 @@ msgstr "Tipos de olores" msgid "Scores" msgstr "Puntuaciones" +#: src/init.cpp +msgid "Achivements" +msgstr "" + #: src/init.cpp msgid "Disease types" msgstr "" @@ -227938,7 +222391,7 @@ msgstr "Volumen (%s):" #: src/inventory_ui.cpp msgid "There are no available choices" -msgstr "" +msgstr "No hay opciones disponibles" #: src/inventory_ui.cpp #, c-format @@ -227999,7 +222452,7 @@ msgstr "Necesitas dos objetos para comparar. Usa %s para seleccionarlos." msgid "No items were selected. Use %s to select them." msgstr "No se han seleccionado objetos. Usa %s para seleccionarlos." -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "OBJETOS PARA SOLTAR" @@ -228125,14 +222578,18 @@ msgstr "" msgid "Material: %s" msgstr "Material: %s" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp src/item_pocket.cpp msgid "Volume: " msgstr "Volumen: " -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "Peso: " +#: src/item.cpp +msgid "Length: " +msgstr "" + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -228264,6 +222721,10 @@ msgstr "Estimulante" msgid "Portions: " msgstr "Porciones: " +#: src/item.cpp +msgid "Consume time: " +msgstr "" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "* Consumir este objeto es adictivo." @@ -228522,6 +222983,10 @@ msgstr "Posibilidad de un buen impacto a distancia: " msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr "" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "Tiempo para alcanzar nivel de apuntado: " @@ -228545,6 +223010,10 @@ msgid_plural "Contains %i casings" msgstr[0] "Contiene %i casquillo" msgstr[1] "Contiene %i casquillos" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "" + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -228561,6 +223030,14 @@ msgstr "" "Cuando está agregada a un arma, te permite tener ataques " "de cuerpo a cuerpo con ella." +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "" + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" + #: src/item.cpp msgid "Dispersion modifier: " msgstr "Modificador de dispersión: " @@ -228615,6 +223092,10 @@ msgstr "Protección: Impacto:" msgid "Cut: " msgstr "Corte: " +#: src/item.cpp +msgid "Ballistic: " +msgstr "" + #: src/item.cpp msgid "Acid: " msgstr "Ácido: " @@ -228797,10 +223278,6 @@ msgstr "Incomodidad: " msgid "Encumbrance when full: " msgstr "Incomodidad cuando está llena:" -#: src/item.cpp -msgid "Storage: " -msgstr "Almacenamiento: " - #: src/item.cpp msgid "Weight capacity modifier: " msgstr "Modificador de capacidad de peso:" @@ -228809,6 +223286,10 @@ msgstr "Modificador de capacidad de peso:" msgid "Weight capacity bonus: " msgstr "Bonus de capacidad de peso:" +#: src/item.cpp +msgid "Storage: " +msgstr "Almacenamiento: " + #: src/item.cpp msgid "* This item can be worn with a helmet." msgstr "* Este objeto puede ser usado con un casco." @@ -228819,7 +223300,7 @@ msgstr "* Esta ropa te queda perfecta." #: src/item.cpp msgid "* This clothing fits your large frame perfectly." -msgstr "" +msgstr "* Esta ropa es perfecta para tu cuerpo grande." #: src/item.cpp msgid "* This clothing fits your small frame perfectly." @@ -229029,27 +223510,6 @@ msgstr "Te puede ayudar a descubrir nuevas recetas." msgid "You need to read this book to see its contents." msgstr "Necesitas leer este libro para ver su contenido." -#: src/item.cpp -msgid "This container " -msgstr "Este contenedor " - -#: src/item.cpp -msgid "can be resealed, " -msgstr "puede ser recerrado, " - -#: src/item.cpp -msgid "is watertight, " -msgstr "es hermético, " - -#: src/item.cpp -msgid "prevents spoiling, " -msgstr "" - -#: src/item.cpp -#, c-format -msgid "can store %s %s." -msgstr "puede almacenar %s %s." - #: src/item.cpp #, c-format msgid "Capacity: %dmJ" @@ -229074,7 +223534,6 @@ msgstr "Cargas: %d" msgid "Compatible magazines: " msgstr "" -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -229083,10 +223542,37 @@ msgstr[0] "Máximo de carga de %s." msgstr[1] "Máximo de cargas de %s." #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "Máximo de carga." -msgstr[1] "Máximo de cargas." +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard " +"batteries." +msgstr "" +"* Esta herramienta ha sido modificada para usar un UPS y " +"no es compatible con las baterías comunes." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "" +"* Esta herramienta tiene una celda recargable de energía y " +"no es compatible con las baterías comunes." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" +"* Esta herramienta tiene una celda recargable de energía y " +"puede ser recargada con cualquier estación de recarga compatible " +"con UPS. La puedes cargar con baterías comunes, pero " +"es imposible descargarla." + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "* Esta herramienta funciona con energía biónica." #: src/item.cpp #, c-format @@ -229172,6 +223658,10 @@ msgstr "" msgid "Cut Protection: " msgstr "" +#: src/item.cpp +msgid "Ballistic Protection: " +msgstr "" + #: src/item.cpp msgid "Stat Bonus: " msgstr "" @@ -229268,6 +223758,11 @@ msgid "" "with contents." msgstr "" +#: src/item.cpp +msgid "" +"* This item is not rigid. Its volume increases with contents." +msgstr "" + #: src/item.cpp msgid "* This item does not conduct electricity." msgstr "* Este objeto no conduce la electricidad." @@ -229285,39 +223780,6 @@ msgstr "* Este objeto conduce la electricidad." msgid "* This clothing will give you an allergic reaction." msgstr "* Esta ropa te dará una reacción alérgica." -#: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard " -"batteries." -msgstr "" -"* Esta herramienta ha sido modificada para usar un UPS y " -"no es compatible con las baterías comunes." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." -msgstr "" -"* Esta herramienta tiene una celda recargable de energía y " -"no es compatible con las baterías comunes." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." -msgstr "" -"* Esta herramienta tiene una celda recargable de energía y " -"puede ser recargada con cualquier estación de recarga compatible " -"con UPS. La puedes cargar con baterías comunes, pero " -"es imposible descargarla." - -#: src/item.cpp -msgid "* This tool runs on bionic power." -msgstr "* Esta herramienta funciona con energía biónica." - #: src/item.cpp msgid "" "* This item has been modified to listen to radio signals. It " @@ -229345,19 +223807,6 @@ msgstr "" "* Al activar este objeto con una señal de radio se " "detonará inmediatamente." -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "" -"* Esta arma necesito las dos manos libres para dispararse." - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "* Este mod oscurece lugares del arma base." - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "" - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -229869,16 +224318,6 @@ msgctxt "magazine" msgid "Eject %1$s from %2$s?" msgstr "" -#: src/item.cpp -#, c-format -msgid "You can't mix loads in your %s." -msgstr "No puedes mezclar cargas en tu %s." - -#: src/item.cpp -#, c-format -msgid "That %s isn't water-tight." -msgstr "Ese %s no es hermético." - #: src/item.cpp #, c-format msgid "That %s must be on the ground or held to hold contents!" @@ -229886,11 +224325,6 @@ msgstr "" "¡Ese/a %s tiene que estar en el suelo o agarrado/a para conservar su " "contenido!" -#: src/item.cpp -#, c-format -msgid "You can't seal that %s!" -msgstr "¡No puedes sellar ese %s!" - #: src/item.cpp #, c-format msgid "That %1$s won't hold %2$s." @@ -230031,6 +224465,31 @@ msgstr "No tienes ningún objeto con uso registrado" msgid "Execute which action?" msgstr "¿Qué acción quieres realizar?" +#: src/item_contents.cpp +msgid "is not a container" +msgstr "" + +#: src/item_contents.cpp +msgid "is not rigid" +msgstr "" + +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "" + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr "" + +#: src/item_contents.cpp +#, c-format +msgid "%d Pockets with capacity:" +msgstr "" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" +msgstr "" + #: src/item_factory.cpp msgid "" "Can be activated to increase environmental protection. Will " @@ -230055,6 +224514,179 @@ msgstr "inventario" msgid "inside %s" msgstr "" +#: src/item_pocket.cpp +msgid "sealed" +msgstr "" + +#: src/item_pocket.cpp +msgid "open" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Pocket %d:" +msgstr "" + +#: src/item_pocket.cpp +msgid "Maximum item length: " +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Minimum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Maximum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Base moves to remove item: %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is rigid." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket can contain a liquid." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket can contain a gas." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket will spill if placed into another item or worn." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket protects its contents from fire." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Contained items spoil at %.0f%% their original rate." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Items in this pocket weigh %.0f%% their original weight." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "%s pocket %d" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "pocket %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is empty." +msgstr "Este bolsillo está vacío." + +#: src/item_pocket.cpp +msgid "This pocket is sealed." +msgstr "" + +#: src/item_pocket.cpp +msgid " of " +msgstr " de " + +#: src/item_pocket.cpp +msgid "Contents of this pocket:" +msgstr "" + +#: src/item_pocket.cpp +msgid "only mods can go into mod pocket" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster already contains an item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't contain liquid" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't mix liquid with contained item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't put non liquid into pocket with liquid" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't contain gas" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't mix gas with contained item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't put non gas into pocket with gas" +msgstr "" + +#: src/item_pocket.cpp +msgid "item does not have correct flag" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is not an ammo" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is not the correct ammo type" +msgstr "" + +#: src/item_pocket.cpp +msgid "tried to put too many charges of ammo in item" +msgstr "" + +#: src/item_pocket.cpp +msgid "item too big" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too long" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too small" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too heavy" +msgstr "" + +#: src/item_pocket.cpp +msgid "pocket is holding too much weight" +msgstr "" + +#: src/item_pocket.cpp +msgid "not enough space" +msgstr "" + #: src/itype.h msgid "click." msgstr "click." @@ -230252,6 +224884,12 @@ msgstr "Te sientes fuerte." msgid "You no longer need to fear the flu, at least for some time." msgstr "" +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "" + #: src/iuse.cpp msgid "" "You no longer need to worry about asthma attacks, at least for a while." @@ -231651,12 +226289,12 @@ msgstr "" #: src/iuse.cpp msgid " needs new gas mask filter!" -msgstr "" +msgstr "¡ necesita un filtro nuevo para la máscara de gas!" #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." -msgstr "Tu %s no tiene filtro." +msgid "Your %s doesn't have a filter." +msgstr "" #: src/iuse.cpp #, c-format @@ -231883,7 +226521,7 @@ msgstr "No podés talar eso." #: src/iuse.cpp msgid "Chop which tree trunk?" -msgstr "" +msgstr "¿Qué tronco quieres cortar?" #: src/iuse.cpp msgid "There is no tree trunk to chop nearby." @@ -232719,8 +227357,8 @@ msgstr[1] "" #, c-format msgid "Something is visible in the background: %s." msgid_plural "Some objects are visible in the background: %s." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Se ve algo en el fondo: %s." +msgstr[1] "Se ven algunos objetos en el fondo: %s." #: src/iuse.cpp #, c-format @@ -232775,7 +227413,7 @@ msgstr "" #: src/iuse.cpp msgid "It is sunrise. " -msgstr "" +msgstr "Es al amanecer. " #: src/iuse.cpp msgid "It is sunset. " @@ -232813,7 +227451,7 @@ msgstr "" #: src/iuse.cpp #, c-format msgid "The quality of stored %s image is already maximally detailed." -msgstr "" +msgstr "La calidad de la imagen guardada de %s ya está al máximo detalle." #: src/iuse.cpp #, c-format @@ -233577,6 +228215,7 @@ msgstr "" msgid "" "You use all your strength, but the stick won't break. Perhaps try again?" msgstr "" +"Usas toda tu fuerza pero el palo no se rompe. ¿Quieres probar de nuevo?" #: src/iuse.cpp msgid "You try to break the stick in two, but it shatters into splinters." @@ -233654,7 +228293,7 @@ msgstr "Sí - definitivamente." #: src/iuse.cpp msgid "You may rely on it." -msgstr "" +msgstr "Podías confiar en eso." #: src/iuse.cpp msgid "As I see it, yes." @@ -233686,7 +228325,7 @@ msgstr "" #: src/iuse.cpp msgid "Cannot predict now." -msgstr "" +msgstr "No puedo predecirlo ahora." #: src/iuse.cpp msgid "Concentrate and ask again." @@ -233835,19 +228474,13 @@ msgstr[1] "Cargas %1$d balas %2$s en el %3$s." #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" -msgstr "¡El %s te escanea y comienza a hacer pitidos enojados!" +msgid "You deploy the %s wrong. It is hostile!" +msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "El %s emite un pitido IFF mientras te escanea." - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." +msgid "You deploy the %s." msgstr "" -"Un led parpadeante en la torreta láser parece indicar condiciones bajas de " -"luz." #: src/iuse_actor.cpp msgid "Place npc where?" @@ -233871,34 +228504,6 @@ msgstr "Necesitas alguna fuente de energía para tu %s (un UPS común, sirve)." msgid "There is also a certain bionic that helps with this kind of armor." msgstr "También existe un biónico que te ayuda con esta clase de armadura." -#: src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "" - -#: src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "¿Dónde quieres usar tu ganzúa?" - -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "" -"Te metes la ganzúa en la nariz y tus sinusales se abren completamente." - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "Esa puerta no está cerrada con llave." - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "No puedes usar la ganzúa en eso." - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "" @@ -233943,7 +228548,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Deploy where?" -msgstr "" +msgstr "¿Dónde quieres desplegarlo/a?" #: src/iuse_actor.cpp msgid "You attempt to become one with the furniture. It doesn't work." @@ -234029,10 +228634,6 @@ msgstr "" msgid "At your skill level, it will take around %d minutes to light a fire." msgstr "Con tu habilidad, vas a tardar unos %d minutos para prender un fuego." -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "No tienes ese objeto." - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -234181,43 +228782,6 @@ msgstr "" msgid "You need at least %d charges to cauterize wounds." msgstr "Necesitas por lo menos %d cargas para cauterizar heridas." -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "No hay cadáveres apropiados" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "" -"La idea de cortar en pedazos el cuerpo y dejarlo que se vuelva a levantar y " -"sea un esclavo, es demasiado para que lo puedas soportar en este momento." - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "" -"¿Quieres descuartizar selectivamente al zombi tirado para convertirlo en un " -"esclavo zombi?" - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "Haz el amor, no eZclavos." - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "" - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "" -"Te sientes horrible por mutilar y hacer esclavo el cadáver de una persona." - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "Necesitas al menos un %s." - #: src/iuse_actor.cpp msgid "Hsss" msgstr "Hsss" @@ -234308,6 +228872,10 @@ msgstr "" msgid "Spells Contained:" msgstr "" +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "" + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -234371,31 +228939,11 @@ msgstr "" msgid "This item never fails." msgstr "" -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too big to fit in your %2$s" -msgstr "Tu %1$s es demasiado grande para caber en tu %2$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too small to fit in your %2$s" -msgstr "Tu %1$s es demasiado pequeño para que quepa en tu %2$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too heavy to fit in your %2$s" -msgstr "Tu %1$s es muy pesado para poner en tu %2$s" - #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" msgstr "No te parece que poner tu %1$s en tu %2$s sea una buena idea" -#: src/iuse_actor.cpp -#, c-format -msgid "You can't put your %1$s in your %2$s" -msgstr "No puedes poner tu %1$s en tu %2$s" - #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" @@ -234406,6 +228954,10 @@ msgstr "Enfundas tu %s" msgid "You need to unwield your %s before using it." msgstr "Necesitas dejar de empuñar tu %s antes de usarlo." +#: src/iuse_actor.cpp +msgid "Holster item" +msgstr "Enfundar objeto" + #: src/iuse_actor.cpp #, c-format msgid "Draw %s" @@ -234417,63 +228969,9 @@ msgid "Use %s" msgstr "Usar %s" #: src/iuse_actor.cpp -msgid "Can be activated to store a suitable item." -msgid_plural "Can be activated to store suitable items." -msgstr[0] "" -msgstr[1] "" - -#: src/iuse_actor.cpp -msgid "Num items: " -msgstr "Num objetos:" - -#: src/iuse_actor.cpp -msgid "Item volume: Min: " -msgstr "Volumen objeto: Min:" - -#: src/iuse_actor.cpp -msgid " Max: " -msgstr " Max: " - -#: src/iuse_actor.cpp -msgid "Max item weight: " +msgid "Can be activated to store suitable items." msgstr "" -#: src/iuse_actor.cpp -#, c-format -msgid " %s" -msgstr " %s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to store a single round of " -msgid_plural "Can be activated to store up to %i rounds of " -msgstr[0] "Puede activarse para almacenar una sola bala de" -msgstr[1] "Puede activarse para almacenar hasta %i balas de " - -#: src/iuse_actor.cpp -#, c-format -msgid "No matching ammo for the %1$s" -msgstr "No tienes munición para el/la %1$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "You store the %1$s in your %2$s" -msgstr "Almacenás el %1$s en tu %2$s" - -#: src/iuse_actor.cpp -msgid "Store ammo" -msgstr "Guardar munición" - -#: src/iuse_actor.cpp -#, c-format -msgid "Store ammo in %s" -msgstr "Guardar munición en %s" - -#: src/iuse_actor.cpp src/vehicle_use.cpp -#, c-format -msgid "Unload %s" -msgstr "Descargar %s" - #: src/iuse_actor.cpp #, c-format msgid "Can be used to assemble: %s" @@ -234789,8 +229287,8 @@ msgid "You can't install bionics while mounted." msgstr "" #: src/iuse_actor.cpp -msgid "You can't self-install bionics." -msgstr "No puedes autoinstalarte biónicos." +msgid "You can't self-install this CBM." +msgstr "" #: src/iuse_actor.cpp msgid "You can't install a filthy CBM!" @@ -234892,7 +229390,7 @@ msgstr "¡No ves nada, no puedes coser!" #: src/iuse_actor.cpp msgid "Enhance which clothing?" -msgstr "" +msgstr "¿Qué ropa quieres mejorar?" #: src/iuse_actor.cpp msgid "This can be used to repair or modify other items, not itself." @@ -234937,6 +229435,10 @@ msgstr "" msgid "Cut" msgstr "" +#: src/iuse_actor.cpp +msgid "Ballistic" +msgstr "Balística" + #: src/iuse_actor.cpp msgid "Acid" msgstr "" @@ -234949,10 +229451,6 @@ msgstr "" msgid "Warmth" msgstr "" -#: src/iuse_actor.cpp -msgid "Storage" -msgstr "Almacenamiento" - #: src/iuse_actor.cpp msgid "Are you sure? You will not gain any materials back." msgstr "¿Estás seguro? No vas a recuperar ningún material." @@ -235852,10 +230350,6 @@ msgstr "" msgid "It is SOFTWARE BUG." msgstr "Es un BUG del SOFTWARE." -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "robotencuentragatito v22July2008 - pulsa q para salir." - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "robotencuentragatito v22July2008" @@ -235877,11 +230371,12 @@ msgid ")." msgstr ")." #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if" " they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" #: src/iuse_software_kitten.cpp @@ -235889,8 +230384,14 @@ msgid "Press any key to start." msgstr "Pulsa una tecla para comenzar." #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." -msgstr "Comando no válido: Usas las teclas de dirección o pulsa 'q'." +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "" + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" @@ -236249,7 +230750,7 @@ msgid "Loading" msgstr "Cargando" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" msgstr "" #: src/magic.cpp @@ -236463,6 +230964,12 @@ msgstr "" msgid "Only affects the monsters: %s" msgstr "" +#. ~ amount of damage per second, abbreviated +#: src/magic.cpp +#, c-format +msgid ", %d/sec" +msgstr "" + #: src/magic.cpp src/veh_interact.cpp msgid "Damage" msgstr "Daño" @@ -237441,7 +231948,7 @@ msgstr "" #: src/martialarts.cpp #, c-format msgid "* Will last for %d %s" -msgstr "" +msgstr "* Va a durar por %d %s" #: src/martialarts.cpp #, c-format @@ -239423,6 +233930,34 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "Abriste un templo extraño." +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "" + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -241099,12 +235634,35 @@ msgstr "¡La cabeza del %s explota en una masa de tentáculos que se agitan!" msgid "The %s lashes its tentacle at you!" msgstr "¡El %s te azota con su tentáculo!" +#: src/monattack.cpp +#, c-format +msgid "The %s lashes its tentacle at !" +msgstr "" + #. ~ 1$s is bodypart name, 2$d is damage value. #: src/monattack.cpp #, c-format msgid "Your %1$s is hit for %2$d damage!" msgstr "¡Tu %1$s es golpeado/a por %2$d de daño!" +#. ~ 1$s is bodypart name, 2$d is damage value. +#: src/monattack.cpp +#, c-format +msgid "'s %1$s is hit for %2$d damage!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "" +"The %1$s lashes its tentacle at 's %2$s, but glances off their " +"armor!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s's arms fly out at you, but you dodge!" @@ -241204,6 +235762,10 @@ msgstr "El %s te mira fijamente, y te estremeces." msgid "You feel like you're being watched, it makes you sick." msgstr "Sientes como si te estuvieran mirando, y te hace sentir mal." +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -242284,18 +236846,6 @@ msgstr "" msgid "The %s was destroyed! GAME OVER!" msgstr "¡El %s fue destruido! ¡GAME OVER!" -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its pockets, but there's nothing left in them." -msgstr "Las manos del %s van hacia sus bolsillos, pero ya no queda nada ahí." - -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its remaining pockets, opening them!" -msgstr "¡Las manos del %s van hacia sus últimos bolsillos, y los abre!" - #. ~ %s is the possessive form of the monster's name #: src/mondeath.cpp #, c-format @@ -242342,11 +236892,6 @@ msgstr "" msgid "zombie slave" msgstr "esclavo zombi" -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "Empujar %s" - #: src/monexamine.cpp msgid "Rename" msgstr "Renombrar" @@ -242811,7 +237356,7 @@ msgstr "Pasivo." #: src/monster.cpp msgid "Fleeing!" -msgstr "" +msgstr "¡Huyendo!" #: src/monster.cpp msgid "Tracking." @@ -242821,10 +237366,6 @@ msgstr "Rastreándote." msgid "Ignoring." msgstr "Ignorando." -#: src/monster.cpp -msgid "Zombie slave." -msgstr "Esclavo zombi." - #: src/monster.cpp msgid "Hostile!" msgstr "¡Hostil!" @@ -242902,12 +237443,12 @@ msgid "It is nearly dead!" msgstr "¡Está casi muerto/a!" #: src/monster.cpp -msgid " Difficulty " -msgstr " Dificultad " +msgid "Can see to your current location" +msgstr "" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" -msgstr "¡Consciente de tu presencia!" +#: src/monster.cpp +msgid "Can't see to your current location" +msgstr "" #: src/monster.cpp #, c-format @@ -242957,11 +237498,6 @@ msgstr "Esto es un %s. %s %s" msgid "It is %s." msgstr "Es %s." -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "Es de tamaño %s." - #: src/monster.cpp msgid "an animal" msgstr "un animal" @@ -243312,6 +237848,15 @@ msgstr "Nivel de fatiga:" msgid "Focus trends towards:" msgstr "Enfocar las tendencias hacia:" +#. ~ This should never occur - this is the message when the character swtiches +#. to +#. ~ an invalid move mode or there's not a message for failing to switch to a +#. move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "" + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -243871,8 +238416,8 @@ msgstr "Carga posible: %.1f %s" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" -msgstr "Bonus al daño cpo a cpo: %.1f" +msgid "Bash damage bonus: %.1f" +msgstr "" #: src/newcharacter.cpp msgid "" @@ -244271,6 +238816,10 @@ msgstr "Zombis cerca" msgid "Various limb wounds" msgstr "Varias heridas en los miembros" +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "" + #: src/newcharacter.cpp msgid "No starting NPC" msgstr "Sin PNJ al comienzo" @@ -244287,6 +238836,10 @@ msgstr "" msgid "Age:" msgstr "" +#: src/newcharacter.cpp src/player_display.cpp +msgid "Blood type:" +msgstr "" + #: src/newcharacter.cpp #, c-format msgid "" @@ -244436,6 +238989,18 @@ msgstr "" msgid "Enter height in centimeters. Minimum 145, maximum 200" msgstr "" +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "" + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" +msgstr "" + #: src/newcharacter.cpp msgid "Name of template:" msgstr "Nombre de plantilla:" @@ -244443,6 +239008,8 @@ msgstr "Nombre de plantilla:" #: src/newcharacter.cpp msgid "Keep in mind you may not use special characters like / in filenames" msgstr "" +"Acuérdate que no puedes usar caracteres especiales como / en los nombres de " +"archivo" #: src/newcharacter.cpp msgid "" @@ -244545,13 +239112,12 @@ msgid "%1$s says something but you can't hear it!" msgstr "¡%1$s dice algo pero no lo puedes escuchar!" #: src/npc.cpp -msgid "NPC: " +msgid "Aware of your presence" msgstr "" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" -msgstr "Empuñando un/a %s" +msgid "Unaware of you" +msgstr "" #: src/npc.cpp msgid "Completely untrusting" @@ -244584,7 +239150,7 @@ msgstr "Completamente confiado" #: src/npc.cpp #, c-format msgid " (Trust: %d); " -msgstr "" +msgstr " (Confianza: %d); " #: src/npc.cpp msgid "Thinks you're laughably harmless" @@ -244805,7 +239371,7 @@ msgstr "" #: src/npc.cpp msgid " gets scared!" -msgstr "" +msgstr " se asusta!" #: src/npc.cpp msgid " calms down." @@ -244928,8 +239494,13 @@ msgstr "" #: src/npcmove.cpp #, c-format -msgid "%s %s" -msgstr "%s %s" +msgid " %s, %s" +msgstr "" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" +msgstr "" #: src/npcmove.cpp #, c-format @@ -245780,6 +240351,13 @@ msgstr "Pago:" msgid "Select a follower" msgstr "Elegir un seguidor" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to get information on an item." +msgstr "" + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -245821,11 +240399,6 @@ msgstr "Más >" msgid "Examine which item?" msgstr "¿Cuál examinar?" -#: src/npctrade.cpp -#, c-format -msgid "Trade how many containers with %s [MAX: %d]: " -msgstr "" - #: src/npctrade.cpp #, c-format msgid "Trade how many %s [MAX: %d]: " @@ -245857,16 +240430,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to quit,\n" -"? to get information on an item." -msgstr "" - -#: src/options.cpp -msgid "System language" -msgstr "Idioma del sistema" - #: src/options.cpp msgid "General" msgstr "General" @@ -245887,11 +240450,6 @@ msgstr "Mundo por defecto" msgid "Android" msgstr "Android" -#: src/options.cpp src/overmap_ui.cpp src/ranged.cpp -#, c-format -msgid "%s" -msgstr "%s" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -245937,6 +240495,10 @@ msgstr "Deon" msgid "Basic" msgstr "Básico" +#: src/options.cpp +msgid "System language" +msgstr "Idioma del sistema" + #: src/options.cpp msgid "Default character name" msgstr "Nombre por defecto del personaje" @@ -246482,6 +241044,11 @@ msgstr "" msgid "12h" msgstr "12h" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "Militar" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -247027,18 +241594,16 @@ msgid "Terminal width" msgstr "Ancho de terminal" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." +msgid "Set the size of the terminal along the X axis." msgstr "" -"Establece el tamaño del terminal en el eje X. Requiere reiniciar el juego." #: src/options.cpp msgid "Terminal height" msgstr "Alto de terminal" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." +msgid "Set the size of the terminal along the Y axis." msgstr "" -"Establece el tamaño del terminal en el eje Y. Requiere reiniciar el juego." #: src/options.cpp msgid "Font blending" @@ -247175,15 +241740,14 @@ msgid "Choose the tileset you want to use." msgstr "Qué conjunto de gráficos quieres usar." #: src/options.cpp -msgid "Memory map drawing mode" -msgstr "Modo de dibujo del mapa de memoria" +msgid "Memory map overlay preset" +msgstr "" #: src/options.cpp msgid "" -"Specified the mode in which the memory map is drawn. Requires restart." +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." msgstr "" -"Especifica el modo en que se dibuja el mapa de memoria. Requiere reiniciar " -"el juego." #: src/options.cpp msgid "Darkened" @@ -247193,6 +241757,70 @@ msgstr "Oscurecido" msgid "Sepia" msgstr "Sepia" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "" + #: src/options.cpp msgid "Pixel minimap" msgstr "Minimapa de píxeles" @@ -247422,150 +242050,6 @@ msgstr "2x" msgid "4x" msgstr "4x" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "Distancia visible inicial" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "Determina el alcance visible, lo que es visto al inicio del juego." - -#: src/options.cpp -msgid "Initial stat points" -msgstr "Puntos iniciales de características" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "" -"Son los puntos iniciales disponibles para gastar en características al crear" -" el personaje." - -#: src/options.cpp -msgid "Initial trait points" -msgstr "Puntos iniciales de rasgos" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "" -"Son los puntos iniciales disponibles para gastar en rasgos al crear el " -"personaje." - -#: src/options.cpp -msgid "Initial skill points" -msgstr "Puntos iniciales de habilidades" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "" -"Son los puntos iniciales disponibles para gastar en habilidades al crear el " -"personaje." - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "Puntos máximos de rasgos" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "" -"Los puntos máximos de rasgos que tendrás disponibles cuando crees tu " -"personaje." - -#: src/options.cpp -msgid "Skill training speed" -msgstr "Velocidad de entrenamiento de habilidad" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "" -"Escala la experiencia ganada al practicar habilidades y leer libros. 0,5 es " -"la mitad de lo predeterminado, 2,0 es el doble de rápido, 0,0 desactiva el " -"entrenamiento de habilidades excepto para el entrenamiento mediante PNJs." - -#: src/options.cpp -msgid "Skill rust" -msgstr "Desgaste de habilidad" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" -" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" -"Establece el nivel de desgaste de habilidades. Vainilla: El predeterminado " -"en Cataclysm - Limitado: Limitado al nivel 2 de habilidad - Int: Depende de " -"la Inteligencia - IntLim: Depende de la inteligencia, pero con límites - " -"Desactivado: Ninguno." - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "Vanilla" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "Limitado" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "Int" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "IntLim" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "Apagado" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "Campo visual 3D experimental" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in" -" z-level mode, the vision will extend beyond current z-level. Currently " -"very bugged!" -msgstr "" -"Si desactivado, la visión se limita al nivel-z actual. Si activado y el " -"mundo está en modo nivel-z, la visión se extenderá más allá del nivel-z " -"actual. ¡Tiene muchos fallos de momento!" - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "Alcance vertical del campo de visión 3D" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "" -"Cuántos niveles sube y baja el campo de visión experimental en 3D. La visión" -" en 3D de la altura total del mundo puede ralentizar mucho el juego. Ver " -"menos niveles Z es más rápido." - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "Conversión de codificación de nombre de ruta exp." - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" -" Windows users." -msgstr "" -"Si está activado, los nombres de ruta de archivo serán transcodificados " -"desde la codificación del sistema a UTF-8 cuando se lea, y será " -"transcodificado al revés cuando se escriba. Principalmente para usuarios de " -"CJK Windows." - #: src/options.cpp msgid "Core version data" msgstr "Versión de datos básicos" @@ -247876,6 +242360,150 @@ msgstr "Solo multi-grupos" msgid "No freeform" msgstr "Sin forma libre" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "Distancia visible inicial" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "Determina el alcance visible, lo que es visto al inicio del juego." + +#: src/options.cpp +msgid "Initial stat points" +msgstr "Puntos iniciales de características" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "" +"Son los puntos iniciales disponibles para gastar en características al crear" +" el personaje." + +#: src/options.cpp +msgid "Initial trait points" +msgstr "Puntos iniciales de rasgos" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "" +"Son los puntos iniciales disponibles para gastar en rasgos al crear el " +"personaje." + +#: src/options.cpp +msgid "Initial skill points" +msgstr "Puntos iniciales de habilidades" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "" +"Son los puntos iniciales disponibles para gastar en habilidades al crear el " +"personaje." + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "Puntos máximos de rasgos" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "" +"Los puntos máximos de rasgos que tendrás disponibles cuando crees tu " +"personaje." + +#: src/options.cpp +msgid "Skill training speed" +msgstr "Velocidad de entrenamiento de habilidad" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "" +"Escala la experiencia ganada al practicar habilidades y leer libros. 0,5 es " +"la mitad de lo predeterminado, 2,0 es el doble de rápido, 0,0 desactiva el " +"entrenamiento de habilidades excepto para el entrenamiento mediante PNJs." + +#: src/options.cpp +msgid "Skill rust" +msgstr "Desgaste de habilidad" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" +" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" +"Establece el nivel de desgaste de habilidades. Vainilla: El predeterminado " +"en Cataclysm - Limitado: Limitado al nivel 2 de habilidad - Int: Depende de " +"la Inteligencia - IntLim: Depende de la inteligencia, pero con límites - " +"Desactivado: Ninguno." + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "Vanilla" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "Limitado" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "Int" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "IntLim" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "Apagado" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "Campo visual 3D experimental" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in" +" z-level mode, the vision will extend beyond current z-level. Currently " +"very bugged!" +msgstr "" +"Si desactivado, la visión se limita al nivel-z actual. Si activado y el " +"mundo está en modo nivel-z, la visión se extenderá más allá del nivel-z " +"actual. ¡Tiene muchos fallos de momento!" + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "Alcance vertical del campo de visión 3D" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "" +"Cuántos niveles sube y baja el campo de visión experimental en 3D. La visión" +" en 3D de la altura total del mundo puede ralentizar mucho el juego. Ver " +"menos niveles Z es más rápido." + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "Conversión de codificación de nombre de ruta exp." + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" +" Windows users." +msgstr "" +"Si está activado, los nombres de ruta de archivo serán transcodificados " +"desde la codificación del sistema a UTF-8 cuando se lea, y será " +"transcodificado al revés cuando se escriba. Principalmente para usuarios de " +"CJK Windows." + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "Guardado rápido al pasar a segundo plano" @@ -248408,6 +243036,8 @@ msgid "" "Prerequisite for this option not met!\n" "(%s)" msgstr "" +"¡No se cumple el prerequisito para esta opción!\n" +"(%s)" #: src/options.cpp msgid "Invalid input: not a number" @@ -248437,7 +243067,7 @@ msgstr "%s" #: src/output.cpp msgid "Type part of an item's name to filter it." -msgstr "" +msgstr "Escribe parte del nombre de un objeto para filtrar." #: src/output.cpp msgid "Type part of an item's name to move nearby items to the bottom." @@ -248997,21 +243627,6 @@ msgstr "INT" msgid "PER" msgstr "PER" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "R" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "C" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "W" - #: src/panels.cpp msgid "DEAF" msgstr "SORDO" @@ -249345,8 +243960,8 @@ msgstr "Ponerse %s" #: src/pickup.cpp #, c-format -msgid "Spill %s, then pick up %s" -msgstr "Derrarmar %s, luego coger %s" +msgid "Spill contents of %s, then pick up %s" +msgstr "" #: src/pickup.cpp msgid "" @@ -249383,10 +243998,6 @@ msgstr "¡No puedes recoger un líquido!" msgid "You're overburdened!" msgstr "¡Estás sobrecargado!" -#: src/pickup.cpp -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 "Obtener objetos de la carga del vehículo" @@ -249711,36 +244322,6 @@ msgstr "" msgid "Your power armor disengages." msgstr "Tu armadura de poder se desactiva." -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "¿Quieres beber %s de tus manos?" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "No te puedes comer tu %s." - -#: src/player.cpp -#, c-format -msgid "You are now wielding an empty %s." -msgstr "Ahora estás empuñando un/a %s vacío/a." - -#: src/player.cpp -#, c-format -msgid "You are now wearing an empty %s." -msgstr "Ahora tienes puesto/a un/a %s vacío/a." - -#: src/player.cpp -#, c-format -msgid "You drop the empty %s." -msgstr "Dejaste el/la %s vacío/a." - -#: src/player.cpp -#, c-format -msgid "%c - %d empty %s" -msgstr "%c - %d vacío %s" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -249869,6 +244450,10 @@ msgstr "" msgid "The %s doesn't have any faults to mend." msgstr "El/la %s no tiene niguna falla para arreglar." +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "" + #: src/player.cpp #, c-format msgid "" @@ -249962,11 +244547,6 @@ msgstr "" msgid " can't take that item off." msgstr "" -#: src/player.cpp -#, c-format -msgid "No room in inventory for your %s. Drop it?" -msgstr "No tienes lugar en el inventario para tu %s. ¿Lo dejas en el suelo?" - #: src/player.cpp #, c-format msgid "You take off your %s." @@ -250176,6 +244756,10 @@ msgstr "" msgid "This task is too simple to train your %s beyond %d." msgstr "Esta tarea es demasiado simple para entrenar tu %s más de %d." +#: src/player.cpp +msgid " (empty)" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "¿Qué quieres empuñar?" @@ -250238,8 +244822,8 @@ msgstr "Coste de puntos de movimiento por nadar: %+d\n" #: src/player_display.cpp #, c-format -msgid "Running movement point cost: %+d\n" -msgstr "Coste de puntos de movimiento por correr: %+d\n" +msgid "Movement point cost: %+d\n" +msgstr "" #: src/player_display.cpp #, c-format @@ -250325,6 +244909,10 @@ msgstr "Destreza al lanzar objetos: %+.1f\n" msgid "Reduced gun aim speed: %.1f" msgstr "Velocidad de puntería reducida: %.1f" +#: src/player_display.cpp +msgid "Weight:" +msgstr "Peso:" + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your" @@ -250347,8 +244935,8 @@ msgstr "Carga de peso (%s): %.1f" #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" -msgstr "Daño a melé: %.1f" +msgid "Bash damage: %.1f" +msgstr "" #: src/player_display.cpp msgid "" @@ -250419,10 +245007,6 @@ msgstr "Nivel de detección de trampas: %d" msgid "Aiming penalty: %+d" msgstr "Penalización de apuntado: %+d" -#: src/player_display.cpp -msgid "Weight:" -msgstr "Peso:" - #: src/player_display.cpp msgid "" "Your weight is a general indicator of how much fat your body has stored up, " @@ -250442,6 +245026,20 @@ msgstr "" msgid "This is how old you are." msgstr "" +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" +msgstr "" + #: src/player_display.cpp #, c-format msgid "" @@ -250511,6 +245109,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "Velocidad biónica +%2d%%" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr "" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "[%s]" + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "" + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -250596,18 +245215,6 @@ msgstr "" "La luz del sol te molesta terriblemente.\n" "Fuerza - 4; Destreza - 4; Inteligencia - 4; Percepción - 4" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr "" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr "" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "Cambiar a próxima categoría" @@ -250617,12 +245224,7 @@ msgid "Cycle to previous category" msgstr "Cambiar a categoría anterior" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "Alternar entrenamiento de habilidad" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" +msgid "Toggle skill training / Upgrade stat" msgstr "" #: src/player_hardcoded_effects.cpp @@ -250945,10 +245547,6 @@ msgstr "" "Te sientes muy enfermo, como si hubieras sido envenenado, pero necesitas " "más. Mucho más." -#: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." -msgstr "Te rodean luces brillantes, y te teletransportás." - #: src/player_hardcoded_effects.cpp msgid "You are beset with a vision of a prowling beast." msgstr "Estás acosado con una visión de una bestia rondando." @@ -250957,6 +245555,10 @@ msgstr "Estás acosado con una visión de una bestia rondando." msgid "Your surroundings are permeated with a foul scent." msgstr "Sus alrededores están impregnados de un olor desagradable." +#: src/player_hardcoded_effects.cpp +msgid "Glowing lights surround you, and you teleport." +msgstr "Te rodean luces brillantes, y te teletransportás." + #: src/player_hardcoded_effects.cpp msgid "You pass out." msgstr "Te desmayaste." @@ -251089,6 +245691,10 @@ msgstr "¡La herida en tu %s empieza a sentirse mejor!" msgid "You succumb to the infection." msgstr "Sucumbes a la infección." +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "Intentas dormirte pero no puedes…" + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "Te sientes bien descansado." @@ -251126,10 +245732,6 @@ msgstr "Das vueltas del calor." msgid "It's too hot to sleep." msgstr "Hace demasiado calor para dormir." -#: src/player_hardcoded_effects.cpp -msgid "It looks like you woke up just before your alarm." -msgstr "Parece que te despertaste justo antes de que sonara tu alarma." - #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." msgstr "Tu cronómetro interno se apagó y no has dormido nada." @@ -251304,29 +245906,174 @@ msgid "You feel a surge of euphoria as flames roar out of the %s!" msgstr "¡Sientes un aluvión de euforia viendo las llamas rugiendo en el/a %s!" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "High" -msgstr "Alto" +msgid "Steadiness" +msgstr "Estabilidad" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Medium" -msgstr "Medio" +msgid "Moves" +msgstr "" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Low" -msgstr "Bajo" +msgid "Symbols:" +msgstr "" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "None" -msgstr "Ninguno" +msgid "" +" Great - Normal - " +"Graze - Moves" +msgstr "" + +#: src/ranged.cpp +msgid "Current" +msgstr "" #: src/ranged.cpp #, c-format -msgid "Recoil: %s" -msgstr "Retroceso: %s" +msgid "%s %s:" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "" +"[%s] %s %s: Moves to fire: %d" +msgstr "" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Great" +msgstr "Grande" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Normal" +msgstr "Normal" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Graze" +msgstr "" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Hit" +msgstr "Impacto" + +#: src/ranged.cpp +msgid "Regular" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to aim and fire." +msgstr "[%c] para apuntar y disparar." + +#: src/ranged.cpp +msgid "Careful" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to take careful aim and fire." +msgstr "[%c] para apuntar con cuidado y disparar." + +#: src/ranged.cpp +msgid "Precise" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to take precise aim and fire." +msgstr "[%c] para apuntar con precisión y disparar." + +#: src/ranged.cpp +msgid "Thunk!" +msgstr "¡Thunk!" + +#: src/ranged.cpp +msgid "tz-CRACKck!" +msgstr "¡tz-CRACKck!" + +#: src/ranged.cpp +msgid "Fwoosh!" +msgstr "¡Fwoosh!" + +#: src/ranged.cpp +msgid "whizz!" +msgstr "¡whizz!" + +#: src/ranged.cpp +msgid "thonk!" +msgstr "¡thonk!" + +#: src/ranged.cpp +msgid "Fzzt!" +msgstr "¡Fzzt!" + +#: src/ranged.cpp +msgid "Pew!" +msgstr "¡Pew!" + +#: src/ranged.cpp +msgid "Tsewww!" +msgstr "¡Tsewww!" + +#: src/ranged.cpp +msgid "Kra-kow!" +msgstr "¡Kra-kow!" + +#: src/ranged.cpp +msgid "Bzzt!" +msgstr "¡Bzzt!" + +#: src/ranged.cpp +msgid "Bzap!" +msgstr "¡Bzap!" + +#: src/ranged.cpp +msgid "Bzaapp!" +msgstr "¡Bzaapp!" + +#: src/ranged.cpp +msgid "Kra-koom!" +msgstr "¡Kra-kum!" + +#: src/ranged.cpp +msgid "Brrrip!" +msgstr "¡Brrrip!" + +#: src/ranged.cpp +msgid "plink!" +msgstr "¡plink!" + +#: src/ranged.cpp +msgid "Brrrap!" +msgstr "¡Brrrap!" + +#: src/ranged.cpp +msgid "P-p-p-pow!" +msgstr "¡P-p-p-pow!" + +#: src/ranged.cpp +msgid "blam!" +msgstr "¡blam!" + +#: src/ranged.cpp +msgid "Kaboom!" +msgstr "¡Kaboom!" + +#: src/ranged.cpp +msgid "kerblam!" +msgstr "¡kerblam!" + +#: src/ranged.cpp +#, c-format +msgid "You don't have enough %s to cast this spell" +msgstr "¡No tienes suficiente %s para lanzar este hechizo!" + +#: src/ranged.cpp +#, c-format +msgid "Really attack %s?" +msgstr "¿Seguro? ¿Atacar a %s?" #: src/ranged.cpp #, c-format @@ -251347,14 +246094,6 @@ msgstr "Lanzar a ciegas %s" msgid "Set target" msgstr "Establecer objetivo" -#: src/ranged.cpp -msgid "< [?] show help >" -msgstr "< [?] mostrar ayuda >" - -#: src/ranged.cpp -msgid "Move cursor to target with directional keys" -msgstr "Mueve el cursor con las teclas" - #: src/ranged.cpp msgctxt "[Hotkey] to throw" msgid "to throw" @@ -251376,156 +246115,92 @@ msgid "to fire" msgstr "" #: src/ranged.cpp -#, c-format -msgid "[%s] Cycle targets;" +msgid "[?] show all controls" msgstr "" #: src/ranged.cpp -#, c-format -msgid "[%c] target self; [%c] toggle snap-to-target" -msgstr "[%c] apuntarte; [%c] alternar saltar a objetivo" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to steady your aim. (10 moves)" -msgstr "[%c] para estabilizar tu puntería. (10 movimientos)" - -#: src/ranged.cpp -#, c-format -msgid "%sto aim and fire" -msgstr "%spara apuntar y disparar" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch aiming modes." -msgstr "[%c] para cambiar modos de apuntado." - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch firing modes." -msgstr "[%c] para cambiar modos de disparo." - -#: src/ranged.cpp -#, c-format -msgid "[%c] to reload/switch ammo." -msgstr "[%c] para recargar/cambiar munición." - -#: src/ranged.cpp -msgid "RMB: Fire" +msgid "[?] show help" msgstr "" #: src/ranged.cpp -msgid "Steadiness" -msgstr "Estabilidad" - -#: src/ranged.cpp -msgid "Symbols:" +msgid "Shift view with directional keys" msgstr "" #: src/ranged.cpp -msgid "Current" +msgid "Move cursor with directional keys" msgstr "" #: src/ranged.cpp -#, c-format -msgid "%s %s:" +msgid "Mouse: LMB: Target, Wheel: Cycle," msgstr "" #: src/ranged.cpp -msgid "Moves" +msgid "RMB: Fire" msgstr "" #: src/ranged.cpp #, c-format -msgid "" -"[%s] %s %s: Moves to fire: %d" -msgstr "" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Great" -msgstr "Grande" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Normal" -msgstr "Normal" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Graze" +msgid "[%s] Cycle targets;" msgstr "" #: src/ranged.cpp #, c-format -msgid "Turrets in range: %d" -msgstr "Torretas al alcance: %d" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Hit" -msgstr "Impacto" - -#: src/ranged.cpp -msgid "Regular" +msgid "[%c] %s." msgstr "" #: src/ranged.cpp #, c-format -msgid "[%c] to aim and fire." -msgstr "[%c] para apuntar y disparar." +msgid "[%c] target self; [%c] toggle snap-to-target" +msgstr "[%c] apuntarte; [%c] alternar saltar a objetivo" #: src/ranged.cpp -msgid "Careful" +msgid "to aim and fire." msgstr "" #: src/ranged.cpp #, c-format -msgid "[%c] to take careful aim and fire." -msgstr "[%c] para apuntar con cuidado y disparar." - -#: src/ranged.cpp -msgid "Precise" -msgstr "" +msgid "[%c] to steady your aim. (10 moves)" +msgstr "[%c] para estabilizar tu puntería. (10 movimientos)" #: src/ranged.cpp #, c-format -msgid "[%c] to take precise aim and fire." -msgstr "[%c] para apuntar con precisión y disparar." +msgid "[%c] to switch aiming modes." +msgstr "[%c] para cambiar modos de apuntado." #: src/ranged.cpp -msgid "turrets" -msgstr "torretas" +#, c-format +msgid "[%c] to switch firing modes." +msgstr "[%c] para cambiar modos de disparo." #: src/ranged.cpp #, c-format -msgid "Really attack %s?" -msgstr "¿Seguro? ¿Atacar a %s?" +msgid "[%c] to reload/switch ammo." +msgstr "[%c] para recargar/cambiar munición." #: src/ranged.cpp #, c-format -msgid "Range: %s Elevation: %d" +msgctxt "[Hotkey] Show/Hide turrets' lines of fire" +msgid "[%c] %s lines of fire" msgstr "" #: src/ranged.cpp #, c-format -msgid "Targets: %d" +msgid "Elevation: %d" msgstr "" #: src/ranged.cpp #, c-format -msgid "Range: %s Elevation: %d Targets: %d" +msgid "Targets: %d" msgstr "" #: src/ranged.cpp #, c-format -msgid "Firing mode: %s %s (%d)" -msgstr "Modo de disparo: %s%s (%d)" +msgid "Firing mode: %s%s (%d)" +msgstr "" #: src/ranged.cpp -#, c-format -msgid "Firing mode: %s (%d)" -msgstr "Modo de disparo: %s (%d)" +msgid "OUT OF AMMO" +msgstr "" #: src/ranged.cpp #, c-format @@ -251538,14 +246213,29 @@ msgid "Ammo: %s (%d/%d)" msgstr "Munición: %s (%d/%d)" #: src/ranged.cpp -#, c-format -msgid "%s Delay: %i" -msgstr "%s Retraso: %i" +msgctxt "amount of backward momentum" +msgid "High" +msgstr "Alto" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Medium" +msgstr "Medio" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Low" +msgstr "Bajo" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "None" +msgstr "Ninguno" #: src/ranged.cpp #, c-format -msgid "You don't have enough %s to cast this spell" -msgstr "¡No tienes suficiente %s para lanzar este hechizo!" +msgid "Recoil: %s" +msgstr "Retroceso: %s" #: src/ranged.cpp #, c-format @@ -251567,16 +246257,6 @@ msgstr "Coste: %s %s (Actual: %s)" msgid "0.0 % Failure Chance" msgstr "0.0 % de probabilidad de fallo" -#: src/ranged.cpp -#, c-format -msgid "Range: %d/%d Elevation: %d Targets: %d" -msgstr "Distancia: %d/%d Altitud: %d Objetivos: %d" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d Elevation: %d Targets: %d" -msgstr "Distancia: %d Altitud: %d Objetivos: %d" - #: src/ranged.cpp #, c-format msgid "Effective Spell Radius: %s%s" @@ -251602,84 +246282,14 @@ msgid "Damage: %s" msgstr "Daño: %s" #: src/ranged.cpp -msgid "Thunk!" -msgstr "¡Thunk!" - -#: src/ranged.cpp -msgid "tz-CRACKck!" -msgstr "¡tz-CRACKck!" - -#: src/ranged.cpp -msgid "Fwoosh!" -msgstr "¡Fwoosh!" - -#: src/ranged.cpp -msgid "whizz!" -msgstr "¡whizz!" - -#: src/ranged.cpp -msgid "thonk!" -msgstr "¡thonk!" - -#: src/ranged.cpp -msgid "Fzzt!" -msgstr "¡Fzzt!" - -#: src/ranged.cpp -msgid "Pew!" -msgstr "¡Pew!" - -#: src/ranged.cpp -msgid "Tsewww!" -msgstr "¡Tsewww!" - -#: src/ranged.cpp -msgid "Kra-kow!" -msgstr "¡Kra-kow!" - -#: src/ranged.cpp -msgid "Bzzt!" -msgstr "¡Bzzt!" - -#: src/ranged.cpp -msgid "Bzap!" -msgstr "¡Bzap!" - -#: src/ranged.cpp -msgid "Bzaapp!" -msgstr "¡Bzaapp!" - -#: src/ranged.cpp -msgid "Kra-koom!" -msgstr "¡Kra-kum!" - -#: src/ranged.cpp -msgid "Brrrip!" -msgstr "¡Brrrip!" - -#: src/ranged.cpp -msgid "plink!" -msgstr "¡plink!" - -#: src/ranged.cpp -msgid "Brrrap!" -msgstr "¡Brrrap!" - -#: src/ranged.cpp -msgid "P-p-p-pow!" -msgstr "¡P-p-p-pow!" - -#: src/ranged.cpp -msgid "blam!" -msgstr "¡blam!" - -#: src/ranged.cpp -msgid "Kaboom!" -msgstr "¡Kaboom!" +#, c-format +msgid "%s Delay: %i" +msgstr "%s Retraso: %i" #: src/ranged.cpp -msgid "kerblam!" -msgstr "¡kerblam!" +#, c-format +msgid "Turrets in range: %d/%d" +msgstr "" #: src/recipe.cpp msgid "none" @@ -251922,13 +246532,35 @@ msgid "Limited" msgstr "Algunas" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" +msgid "achievements" +msgstr "" + +#: src/scores_ui.cpp +msgid "conducts" msgstr "" #: src/scores_ui.cpp +msgid "Conducts" +msgstr "" + +#: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "This game has no valid %s.\n" +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "" +"Note that only %s that existed when you started this game and still exist " +"now will appear here." msgstr "" #: src/scores_ui.cpp @@ -251947,6 +246579,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "" + #: src/scores_ui.cpp msgid "SCORES" msgstr "PUNTUACIONES" @@ -252133,7 +246769,7 @@ msgstr "%1$s dice: \"%2$s\"" #: src/suffer.cpp #, c-format msgid "%1$s gets angry!" -msgstr "" +msgstr "¡%1$s se enfada!" #: src/suffer.cpp #, c-format @@ -252327,7 +246963,7 @@ msgstr "Te sientes cansado..." #: src/suffer.cpp msgid "You tiredly rub your eyes." -msgstr "" +msgstr "Te frotas los ojos, cansado/a." #: src/suffer.cpp msgid " tiredly rubs their eyes." @@ -252379,7 +247015,7 @@ msgstr "" #: src/suffer.cpp msgid "You have a distractingly painful headache." -msgstr "" +msgstr "Tienes un dolor de cabeza que te distrae." #: src/suffer.cpp msgid "You feel heartburn and an acid taste in your mouth." @@ -252715,8 +247351,8 @@ msgid "A blade swings out and hacks your torso!" msgstr "¡Una cuchilla aparece y te golpea en el torso!" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" -msgstr "¡Una cuchilla aparece y golpea en el torso a !" +msgid "A blade swings out and hacks 's torso!" +msgstr "" #: src/trapfunc.cpp msgid "Snap!" @@ -253134,6 +247770,14 @@ msgstr "" msgid "Only one %1$s powered engine can be installed." msgstr "Solamente un motor alimentado por %1$s puede ser instalado." +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This part cannot be installed.\n" +msgstr "" + #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." msgstr "Los embudos deben instalarse sobre un tanque." @@ -253285,6 +247929,12 @@ msgstr "" msgid "You can't install parts while driving." msgstr "No puedes instalar piezas mientras estás conduciendo." +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy." +" Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "" @@ -253310,8 +247960,22 @@ msgid "Choose a part here to repair:" msgstr "Elige la pieza para reparar:" #: src/veh_interact.cpp -msgid "This part cannot be repaired" -msgstr "Esta pieza no puede ser reparada" +msgid "This part cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to mend…" @@ -253414,6 +248078,10 @@ msgstr "'{' para desplazar arriba" msgid "'}' to scroll down" msgstr "'}' para desplazar abajo" +#: src/veh_interact.cpp +msgid "This part cannot be uninstalled.\n" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "" @@ -253425,31 +248093,18 @@ msgstr "" #: src/veh_interact.cpp #, c-format msgid "" -"Removing the %1$s will yield:\n" -"> %2$s\n" -msgstr "" -"Al quitar los %1$s podrías conseguir:\n" +"Removing the %1$s may yield:\n" "> %2$s\n" - -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength -#: src/veh_interact.cpp -#, c-format -msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength ( " -"assisted ) %5$i" msgstr "" -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength #: src/veh_interact.cpp #, c-format msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength " -"%5$i" +"Removing the %1$s will yield:\n" +"> %2$s\n" msgstr "" +"Al quitar los %1$s podrías conseguir:\n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is pre-translated reason @@ -253474,6 +248129,12 @@ msgstr "No puedes sacar esa pieza mientras está unida a otra cosa." msgid "Better not remove something while driving." msgstr "No te conviene sacar nada mientras estás conduciendo." +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "" @@ -253595,6 +248256,8 @@ msgid "" "Safe/Top Speed: %3d/%3d " "%s" msgstr "" +"Velocidad Segura/Máxima: " +"%3d/%3d %s" #. ~ /t means per turn #: src/veh_interact.cpp @@ -253867,7 +248530,7 @@ msgstr "¿Quitar qué?" #: src/veh_interact.cpp msgid "The vehicle has no charged plutonium cells." -msgstr "" +msgstr "El vehículo no tiene celdas de plutonio cargadas." #: src/veh_interact.cpp #, c-format @@ -253924,6 +248587,11 @@ msgstr "No cumples los requisitos para desinstalar el %s." msgid "You remove the broken %1$s from the %2$s." msgstr "Sacas el %1$s roto del %2$s." +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -254634,10 +249302,6 @@ msgstr "No encuentras la llave en el/la %s." msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "No encuentras la llave en el/la %s. ¿Quieres intentar puentearlo/a?" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "Puentear" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -255144,6 +249808,11 @@ msgstr "" msgid "Activate the dishwasher (1.5 hours)" msgstr "" +#: src/vehicle_use.cpp +#, c-format +msgid "Unload %s" +msgstr "Descargar %s" + #: src/vehicle_use.cpp msgid "Peek through the closed curtains" msgstr "" @@ -255567,11 +250236,6 @@ msgstr "" msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" msgstr "" -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "%.*s" - #: src/wish.cpp msgid "How many?" msgstr "¿Cuántos?" diff --git a/lang/po/ja.po b/lang/po/ja.po index ee1a92ce9cadf..3666c5de642c6 100644 --- a/lang/po/ja.po +++ b/lang/po/ja.po @@ -32,7 +32,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-01 12:24+0800\n" +"POT-Creation-Date: 2020-06-05 08:37+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Pigmentblue15, 2020\n" "Language-Team: Japanese (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ja/)\n" @@ -83,6 +83,48 @@ msgid "" "battery cells, but can never be unloaded." msgstr "フロート充電式の単電池です。充電池に装填できますが、一度装填すると抜き取れません。" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "ブタン" + +#. ~ Description for {'str_sp': 'butane'} +#: lang/json/AMMO_from_json.py +msgid "A common flammable liquid used in lighters." +msgstr "ライターに使われる一般的な可燃性の液体です。" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" +msgstr[0] "マッチ" + +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "先端が赤くなっている小さな棒です。マッチ箱にこすり付けると火がつきます。" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "酸素" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "医療用の圧縮酸素です。" + #: lang/json/AMMO_from_json.py msgid "aluminum foil" msgid_plural "aluminum foils" @@ -101,11 +143,9 @@ msgid_plural "cents" msgstr[0] "セント" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "このアイテムが見えている場合はバグが発生しています。" +#: lang/json/AMMO_from_json.py +msgid "A unit of currency equivalent to 0.01 US dollars." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -240,8 +280,8 @@ msgstr[0] "石つぶて" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." -msgstr "一掴み分の小石です。スリングまたはスリングショットの弾に適しています。" +msgid "A handful of pebbles, useful as ammunition for slingshots." +msgstr "スリングショットで発射できる一掴み分の小石です。" #: lang/json/AMMO_from_json.py msgid "clay pellet" @@ -250,10 +290,8 @@ msgstr[0] "ペレット(陶器)" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or " -"slingshots." -msgstr "スリングやスリングショットに使用できる、陶器でできた丸い弾薬です。" +msgid "A handful of round projectiles made of clay, useful for slingshots." +msgstr "スリングショットで発射できる一掴み分の陶器でできた丸い弾薬です。" #: lang/json/AMMO_from_json.py msgid "marble" @@ -262,9 +300,8 @@ msgstr[0] "ビー玉" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." -msgstr "一掴み分のガラス玉です。スリングまたはスリングショットの弾に適しています。" +msgid "A handful of glass marbles, useful as ammunition for slingshots." +msgstr "スリングショットで発射できる一掴み分のガラス玉です。" #: lang/json/AMMO_from_json.py msgid "bearings" @@ -273,8 +310,8 @@ msgstr[0] "ベアリングボール" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." -msgstr "一箱分のベアリングボールです。スリングやスリングショットの弾薬として利用できます。" +msgid "A box of ball bearings, useful as ammunition for slingshots." +msgstr "スリングショットで発射できる、一箱分のベアリング球です。" #: lang/json/AMMO_from_json.py msgid "BB" @@ -283,8 +320,10 @@ msgstr[0] "BB弾" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." -msgstr "鋼で作られた一箱分の小さな玉です。この玉はほとんどダメージを与えられません。" +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." +msgstr "エアガンで発射できる、鋼で作られた一箱分の小さな球体です。当たってもほとんどダメージを与えられません。" #: lang/json/AMMO_from_json.py msgid "feather" @@ -525,6 +564,12 @@ msgid "placeholder ammunition" msgid_plural "placeholder ammunitions" msgstr[0] "代替弾薬" +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "このアイテムが見えている場合はバグが発生しています。" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" msgid_plural "charcoal" @@ -563,6 +608,18 @@ msgid "" "and heating." msgstr "可燃性で黒色の、炭素を主成分とする鉱物の塊です。調理や暖房に用いられます。" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -652,11 +709,6 @@ msgstr[0] "釣り餌" msgid "A bait used in traps to lure fish." msgstr "魚をおびき寄せて捕まえるための餌です。" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "酸素" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -2840,9 +2892,9 @@ msgstr[0] "弾薬(.45口径ACP/FMJ)" #: lang/json/AMMO_from_json.py msgid "" ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, " -"the .45 ACP round has been common for almost 150 years." +"the .45 ACP round has been common for over a century." msgstr "" -"弾頭重量約15gの.45口径ACPフルメタルジャケット弾です。高い制止力で知られる.45口径ACP弾は、実用から約150年を経ても世界に普及し続けています。" +"弾頭重量約15gの.45口径ACPフルメタルジャケット弾です。高い制止力で知られる.45口径ACP弾は一世紀以上に渡って広く流通し続けています。" #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -3733,9 +3785,8 @@ msgstr[0] "弾薬(9x19mm/FMJ)" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round" -" for military, law enforcement, and civilian use even after almost 150 " -"years." -msgstr "弾頭重量約7.45gの9x19mmブラスジャケッテッド弾です。実用化から150年を経てもなお、軍や法執行機関、民間で広く用いられています。" +" for military, law enforcement, and civilian use for over a century." +msgstr "弾頭重量約7.45gの9x19mmブラスジャケッテッド弾です。100年以上前から軍や法執行機関、民間で高い人気を誇っています。" #: lang/json/AMMO_from_json.py msgid "9x19mm +P" @@ -5361,9 +5412,9 @@ msgstr[0] "生地(ケブラー)" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." -msgstr "防弾アーマーを作るのに適したケブラー合成繊維の生地です。硬いプレートではないので縫い合わせることができます。" +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." +msgstr "斬撃に強く耐久性のある衣類作りに適した、ケブラー合成繊維のシートです。柔らかい形状のため、縫い合わせることが可能です。" #: lang/json/AMMO_from_json.py msgid "Lycra sheet" @@ -5593,11 +5644,6 @@ msgid "" "fluid. You'd probably best feed it into the bioblaster. " msgstr "脂肪と肉が混じり合った蠢く塊は、刺激性の液体を分泌しているようです。生体銃に装填するのが一番適しています。" -#: lang/json/AMMO_from_json.py -msgid "plutonium cell" -msgid_plural "plutonium cells" -msgstr[0] "原子力電池" - #: lang/json/AMMO_from_json.py msgid "titanium" msgid_plural "titanium" @@ -5681,64 +5727,6 @@ msgid "" msgstr "" "薬莢ごと推進する合金製のホローポイント弾がヘリカルマガジンに入っています。非常に威力が高いわけではありませんが、自然環境に深刻な影響を与えるゴミの心配をせずに敵を攻撃できます。" -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N8" -msgid_plural "6.54x42mm 9N8" -msgstr[0] "弾薬(6.54x42mm/9N8)" - -#. ~ Description for {'str_sp': '6.54x42mm 9N8'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 6.54x42mm cartridge, loaded with a 120 gr. FMJBT bullet. Inspired by the " -"improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " -"rifle cartridge for his new SVS-24 Assault Rifle." -msgstr "" -"弾頭重量約7.8gの6.54x42mmフルメタルジャケット・ボートテール弾です。イギリス製.280口径弾に触発されたアレクサンダー" -"・サラファーノフが新型のSVS-24アサルトライフル用に開発したのが、このライフル弾です。" - -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N12" -msgid_plural "6.54x42mm 9N12" -msgstr[0] "弾薬(6.54x42mm/9N12)" - -#. ~ Description for {'str_sp': '6.54x42mm 9N12'} -#: lang/json/AMMO_from_json.py -msgid "" -"The 6.54x42mm 9N12 has superior armor piercing capabilities thanks to its " -"tungsten carbide core. Tungsten carbide was used in anti-tank rounds of the" -" 20th and 21st century, whenever depleted uranium was unavailable or " -"undesirable." -msgstr "" -"6.54x42mm " -"9N12弾は、炭化タングステンの弾芯を用いることで非常に高い装甲貫通力を実現しました。炭化タングステンは、劣化ウラン弾の利用が望ましくないとされた20世紀から21世紀にかけて対戦車砲弾に使用された素材です。" - -#: lang/json/AMMO_from_json.py -msgid ".20 DREAD Pellet" -msgid_plural ".20 DREAD Pellets" -msgstr[0] "弾薬(.20口径/ドレッドペレット)" - -#. ~ Description for {'str': '.20 DREAD Pellet'} -#: lang/json/AMMO_from_json.py -msgid "" -"These metal pellets are propelled with the help of electromagnets, therefore" -" they do not produce sound, flash or heat signature." -msgstr "この金属ペレットは電磁石の力で推進するため、音、光、熱を発生させることがありません。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 6.54x42mm" -msgid_plural "reloaded 6.54x42mm" -msgstr[0] "弾薬(6.54x42mm(手詰め))" - -#. ~ Description for {'str_sp': 'reloaded 6.54x42mm'} -#: lang/json/AMMO_from_json.py -msgid "" -"Inspired by the improved .280, Alexander Sarafanov himself developed the " -"6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " -"been hand-reloaded." -msgstr "" -".280ウィンチェスター弾に触発されたアレクサンダー・サラファーノフは、自身が開発した新型SVS-" -"24アサルトライフル用の弾丸として6.54x42mmライフル弾を製作しました。この弾丸は手詰めで作られています。" - #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -6357,106 +6345,10 @@ msgid_plural "mana core powers" msgstr[0] "マナ" #. ~ Description for mana core power -#. ~ Description for {'str_sp': 'vortex core'} #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." msgstr "このアイテムが見えている場合はバグが発生しています。" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "fire lance charge" -msgid_plural "fire lance charges" -msgstr[0] "弾薬(火槍)" - -#. ~ Description for fire lance charge -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm. Despite the " -"minimal range, it packs a punch." -msgstr "一般的な銃器よりも火薬をやや多めに使用します。射程は短いですが威力は強烈です。" - -#: lang/json/AMMO_from_json.py -msgid "fire lance shot" -msgid_plural "fire lance shots" -msgstr[0] "弾薬(火槍/散弾)" - -#. ~ Description for fire lance shot -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm, with small " -"pellets as shot. Despite the minimal range, it packs a punch." -msgstr "一般的な銃器よりもやや多い火薬量で小さなペレットを発射します。射程は短いですが威力は強烈です。" - -#: lang/json/AMMO_from_json.py -msgid "lead pellet" -msgid_plural "lead pellets" -msgstr[0] "ペレット(鉛)" - -#. ~ Description for lead pellet -#: lang/json/AMMO_from_json.py -msgid "" -"Hefty round projectiles cast from lead, useful as ammunition for slings." -msgstr "スリング用の、硬くて丸い鉛の弾薬です。" - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" -msgstr[0] "ウッドジャベリン" - -#: lang/json/AMMO_from_json.py -msgid "stone javelin" -msgid_plural "stone javelins" -msgstr[0] "ストーンジャベリン" - -#. ~ Description for stone javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A throwing spear with a stone spearhead. The grip area has also been carved" -" and covered for better grip." -msgstr "石の穂先を付けた投げ槍です。投げやすいように作られています。" - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" -msgstr[0] "アイアンジャベリン" - -#: lang/json/AMMO_from_json.py -msgid "copper javelin" -msgid_plural "copper javelins" -msgstr[0] "カッパージャベリン" - -#. ~ Description for copper javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A copper-tipped throwing spear. The grip area has also been carved and " -"covered for better grip." -msgstr "銅の穂先を付けた投げ槍です。投げやすいように作られています。" - -#: lang/json/AMMO_from_json.py -msgid "40mm EMP grenade" -msgid_plural "40mm EMP grenades" -msgstr[0] "弾薬(40mm擲弾/EMP)" - -#. ~ Description for {'str': '40mm EMP grenade'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" -" capable of damaging robots and some equipment." -msgstr "EMP弾が付属した40mmグレネード弾です。ロボットや一部の電子機器に損傷を与える電磁パルスを放出します。" - -#: lang/json/AMMO_from_json.py -msgid "glowball" -msgid_plural "glowballs" -msgstr[0] "グロウボール" - -#. ~ Description for glowball -#: lang/json/AMMO_from_json.py -msgid "" -"A tube of small glowballs taken off the market due to hazardous chemicals. " -"They deal virtually no damage, but light up on impact. Useful for " -"illuminating an area without lighting up yourself in the process." -msgstr "" -"有害な化学物質を使っていたため発売禁止になったグロウボールです。ぶつけられてもダメージはほとんどありませんが、衝撃を与えると発光します。自分自身は隠れたまま周囲を照らしたい時に便利です。" - #: lang/json/AMMO_from_json.py msgid "TEST rock" msgid_plural "TEST rocks" @@ -6468,458 +6360,51 @@ msgid_plural "TEST small metal sheets" msgstr[0] "小型板金(テスト)" #: lang/json/AMMO_from_json.py -msgid "TEST platinum bit" -msgid_plural "TEST platinum bits" -msgstr[0] "プラチナ片(テスト)" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEDP" -msgid_plural "30x113mm HEDP" -msgstr[0] "弾薬(30x113mm/HEDP)" - -#. ~ Description for {'str_sp': '30x113mm HEDP'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " -"Used primarily against light armored vehicles." -msgstr "30mm機関砲用の対人対装甲両用榴弾です。基本的には軽装甲の車両に対して使用します。" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEI" -msgid_plural "30x113mm HEI" -msgstr[0] "弾薬(30x113mm/HEI)" - -#. ~ Description for {'str_sp': '30x113mm HEI'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round, high explosive incendiary. Designed for use " -"against unarmored vehicles and to suppress infantry." -msgstr "30mm機関砲用の焼夷榴弾です。効率的に無装甲車両を破壊し、速やかに歩兵を制圧できます。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 30x113mm" -msgid_plural "reloaded 30x113mm" -msgstr[0] "弾薬(30x113mm(手詰め))" - -#. ~ Description for {'str_sp': '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 "30mm機関砲用の手詰め弾薬です。信管が置き換えられ、通常の火薬で鉛の弾頭を発射します。純正品と比べると使いにくいものになっています。" - -#. ~ 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対戦車弾です。これを使えばどんな物でも破壊できそうです。" - -#: lang/json/AMMO_from_json.py -msgid "120mm APFSDS" -msgid_plural "120mm APFSDSs" -msgstr[0] "弾薬(120mm/APFSDS)" - -#. ~ Description for 120mm APFSDS -#: lang/json/AMMO_from_json.py -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装弾筒付翼安定徹甲弾(Armor-Piercing Fin-Stabilized Discarding " -"Sabot)の一発です。命中したどんな相手にも最悪の一日をプレゼントできるよう、劣化ウラン弾を採用しています。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 120mm shot" -msgid_plural "reloaded 120mm shots" -msgstr[0] "弾薬(120mm/散弾(手詰め))" - -#. ~ Description for reloaded 120mm shot -#: lang/json/AMMO_from_json.py -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弾です。この種のケースショット弾は生産が終了しており、これは低品質の手詰め弾です。" - -#: lang/json/AMMO_from_json.py -msgid "makeshift 120mm slug" -msgid_plural "makeshift 120mm slugs" -msgstr[0] "弾薬(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 "大きな単発弾入り電気雷管を新たに詰めた、120mm弾です。上手くいけば、強烈なダメージを与えられます。" - -#: lang/json/AMMO_from_json.py -msgid "155mm HEAT" -msgid_plural "155mm HEATs" -msgstr[0] "弾薬(155mm/HEAT)" - -#. ~ Description for 155mm HEAT -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Anti Tank round. More than enough firepower for " -"whatever you could think to point it at." -msgstr "想像以上の高火力をもった155mm対戦車弾です。" - -#: lang/json/AMMO_from_json.py -msgid "155mm frag" -msgid_plural "155mm frags" -msgstr[0] "弾薬(155mm/破片)" - -#. ~ Description for 155mm frag -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Fragmentation round. Designed to give anything near " -"what you hit a really bad day." -msgstr "155mm破砕榴弾です。標的を最低最悪な目に遭わせられるよう設計されています。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm shot" -msgid_plural "reloaded 155mm shots" -msgstr[0] "弾薬(155mm/散弾(手詰め))" - -#. ~ Description for reloaded 155mm shot -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm shell with a new electric primer installed, filled with a huge " -"amount of buckshot. Effectively turns a howitzer into a punt gun on " -"steroids." -msgstr "大量の散弾を詰め直した電気雷管付き155mm弾です。榴弾砲を事実上の超巨大散弾砲へと変貌させます。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm slug" -msgid_plural "reloaded 155mm slugs" -msgstr[0] "弾薬(155mm/単発弾(手詰め))" - -#. ~ Description for reloaded 155mm slug -#: lang/json/AMMO_from_json.py -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弾です。あまり役には立ちませんが、何かに当たりさえすれば役に立ったような気分になります。" - -#: lang/json/AMMO_from_json.py -msgid "small electric primer" -msgid_plural "small electric primers" -msgstr[0] "小型電気雷管" - -#. ~ Description for small electric primer -#: lang/json/AMMO_from_json.py -msgid "Primer for an autocannon shell. Seems to use an electric ignition." -msgstr "機関砲弾用の雷管です。電気点火方式を採用しているようです。" - -#: lang/json/AMMO_from_json.py -msgid "large electric primer" -msgid_plural "large electric primers" -msgstr[0] "大型電気雷管" - -#. ~ Description for large electric primer -#: lang/json/AMMO_from_json.py -msgid "" -"Primer for a tank or artillery shell. Seems to use an electric ignition." -msgstr "戦車砲弾や大砲弾用の雷管です。電気点火方式を採用しているようです。" - -#: lang/json/AMMO_from_json.py -msgid "liquified blob feed" -msgid_plural "liquified blob feed" -msgstr[0] "液化ブロブ飼料" - -#. ~ Description for {'str_sp': 'liquified blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"Liquified blob feed, useful for fueling certain blob based vehicle parts" -msgstr "ブロブを素体とした車両部品に燃料として供給する、液体状のブロブ餌です。" - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "blob feed" -msgid_plural "blob feed" -msgstr[0] "ブロブ飼料" - -#. ~ Description for {'str_sp': 'blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"An amalgam of various types of organic material, contains everything the " -"blob needs to be healthy. You think…" -msgstr "様々な有機物が混ざりあった物体です。ブロブが健康に育つために必要な養分がたっぷり含まれています...たぶん。" - -#: lang/json/AMMO_from_json.py -msgid "IED" -msgid_plural "IEDs" -msgstr[0] "IED" - -#: lang/json/AMMO_from_json.py -msgid "blast canister" -msgid_plural "blast canisters" -msgstr[0] "円筒弾(爆発)" - -#. ~ Description for {'str': 'blast canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a substantial explosive payload." -msgstr "円筒の中に衝撃で引火する爆発物を密封した、即席爆発装置です。かなり大規模な爆発を引き起こします。" - -#: lang/json/AMMO_from_json.py -msgid "Big Bang canister" -msgid_plural "Big Bang canisters" -msgstr[0] "円筒弾(大爆発)" - -#. ~ Description for {'str': 'Big Bang canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a VERY substantial explosive payload." -msgstr "円筒の中に衝撃で引火する爆発物を密封した、即席爆発装置です。非常に大規模な爆発を引き起こします。" - -#: lang/json/AMMO_from_json.py -msgid "fire canister" -msgid_plural "fire canisters" -msgstr[0] "円筒弾(火炎)" - -#. ~ Description for {'str': 'fire canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a small area with deadly flames." -msgstr "円筒の中に爆発物と引火機構を密閉した、即席爆発装置です。専用のランチャーを使い発射することで、殺傷性のある火炎を狭い領域に発生させます。" - -#: lang/json/AMMO_from_json.py -msgid "inferno canister" -msgid_plural "inferno canisters" -msgstr[0] "円筒弾(業火)" - -#. ~ Description for {'str': 'inferno canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a large area with deadly flames." -msgstr "円筒の中に爆発物と引火機構を密閉した、即席爆発装置です。専用のランチャーを使い発射することで、殺傷性のある火炎を広い領域に発生させます。" - -#: lang/json/AMMO_from_json.py -msgid "fragmentation canister" -msgid_plural "fragmentation canisters" -msgstr[0] "円筒弾(破片)" - -#. ~ Description for {'str': 'fragmentation canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to spray the immediate area with deadly shrapnel." -msgstr "" -"円筒の中に爆発物と引火機構を密閉した、即席爆発装置です。専用のランチャーを使い発射することで、殺傷性のある破片を周囲に素早くまき散らします。" - -#. ~ Description for {'str': 'modified mininuke'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device. Intended to be fired from a " -"specialized launcher, its case has been cut down and it has been rigged to " -"explode on impact. While it is now somewhat lighter than before, it can no " -"longer be triggered manually." -msgstr "" -"大幅に改造された携帯用核兵器です。特殊なランチャーから発射する事を想定しており、着弾時にケースを切り落として爆発するように設計されています。多少は軽量化されていますが、手動で起動する事は出来ません。" - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "harpoon" -msgid_plural "harpoons" -msgstr[0] "ハープーン" - -#. ~ Description for {'str': 'harpoon'} -#: lang/json/AMMO_from_json.py -msgid "" -"A large spear carved from wood. This was fashioned specifically to be fired" -" from a compatible weapon; thus unsuitable for melee combat." -msgstr "木材を彫って作った大槍です。専用の武器から発射されるように特別に作られたものであり、近接武器として使うには不向きです。" - -#: lang/json/AMMO_from_json.py -msgid "IED rigged bolt" -msgid_plural "IED rigged bolts" -msgstr[0] "バリスタ用ボルト(IED)" - -#: lang/json/AMMO_from_json.py -msgid "nova bolt" -msgid_plural "nova bolts" -msgstr[0] "バリスタ用ボルト(新星)" - -#. ~ Description for {'str': 'nova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a substantial explosive payload." -msgstr "" -"大きなバリスタ用ボルトの先端に爆発物を充填した、即席爆発装置です。専用のランチャーを使い発射することで、かなり大規模な爆発を引き起こします。" - -#: lang/json/AMMO_from_json.py -msgid "supernova bolt" -msgid_plural "supernova bolts" -msgstr[0] "バリスタ用ボルト(超新星)" - -#. ~ Description for {'str': 'supernova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a very substantial explosive payload." -msgstr "" -"大きなバリスタ用ボルトの先端に爆発物を充填した、即席爆発装置です。専用のランチャーを使い発射することで、非常に大規模な爆発を引き起こします。" - -#: lang/json/AMMO_from_json.py -msgid "searing bolt" -msgid_plural "searing bolts" -msgstr[0] "バリスタ用ボルト(燃焼)" - -#. ~ Description for {'str': 'searing bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a small area with deadly flames." -msgstr "" -"大きなバリスタ用ボルトの先端に爆発物を充填した、即席爆発装置です。専用のランチャーを使い発射することで、殺傷性のある火炎を狭い領域に発生させます。" - -#: lang/json/AMMO_from_json.py -msgid "napalm bolt" -msgid_plural "napalm bolts" -msgstr[0] "バリスタ用ボルト(ナパーム)" - -#. ~ Description for {'str': 'napalm bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a large area with deadly flames." -msgstr "" -"大きなバリスタ用ボルトの先端に爆発物を充填した、即席爆発装置です。専用のランチャーを使い発射することで、殺傷性のある火炎を広い領域に発生させます。" - -#: lang/json/AMMO_from_json.py -msgid "shatter bolt" -msgid_plural "shatter bolts" -msgstr[0] "バリスタ用ボルト(破片)" - -#. ~ Description for {'str': 'shatter bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to spray the immediate area with deadly " -"shrapnel." -msgstr "" -"大きなバリスタ用ボルトの先端に爆発物を充填した、即席爆発装置です。専用のランチャーを使い発射することで、殺傷性のある破片を周囲に素早くまき散らします。" - -#: lang/json/AMMO_from_json.py -msgid "steel ballista bolt" -msgid_plural "steel ballista bolts" -msgstr[0] "バリスタ用ボルト(鋼)" - -#. ~ Description for {'str': 'steel ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A long shaft carved from wood ending in a tip of sharpened metal. It's " -"quite heavy, capable of dealing large amounts of damage, but isn't " -"particularly accurate. Stands a good chance of remaining intact once fired." -msgstr "" -"金属製の鋭利な矢尻が付いた、木製の大型ボルトです。かなり重く、相当の殺傷力がありますが、命中精度は期待できません。放った矢が約7割の確率で地面に残ります。" - -#: lang/json/AMMO_from_json.py -msgid "nuclear bolt" -msgid_plural "nuclear bolts" -msgstr[0] "バリスタ用ボルト(核)" +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" +msgstr[0] "" -#. ~ Description for {'str': 'nuclear bolt'} +#. ~ Description for {'str': 'test wooden broadhead arrow'} #: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device affixed to the end of a large " -"ballista bolt. Its case has been cut down and it has been rigged to explode" -" on impact. It can no longer be triggered manually." +msgid "Test arrow" msgstr "" -"バリスタ用の大きなボルトの先端に改造された携帯用核兵器を取り付けたものです。軽量化され、衝撃で爆発するようになっています。手動で爆発させることはできません。" #: lang/json/AMMO_from_json.py -msgid "wood ballista bolt" -msgid_plural "wood ballista bolts" -msgstr[0] "バリスタ用ボルト(木)" +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" +msgstr[0] "弾薬(9mm/テスト)" -#. ~ Description for {'str': 'wood ballista bolt'} +#. ~ Description for {'str': 'Test 9mm ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"A sharpened bolt carved from wood. It's fairly heavy, capable of dealing " -"large amounts of damage, but isn't particularly accurate. Stands a good " -"chance of remaining intact once fired." -msgstr "鋭利な木製の大型ボルトです。かなり重く、相当の殺傷力がありますが、命中精度は期待できません。放った矢が約8割の確率で地面に残ります。" +msgid "Generic 9mm ammo based on JHP." +msgstr "弾薬(9mm/汎用JHP)" #: lang/json/AMMO_from_json.py -msgid "lead ball" -msgid_plural "lead balls" -msgstr[0] "砲丸" +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" +msgstr[0] "弾薬(.45口径/テスト)" -#. ~ Description for {'str': 'lead ball'} +#. ~ Description for {'str': 'Test .45 ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"A heavy lead ball about 8cm in diameter. Could pack quite a bit of a punch " -"if you had something to launch it." -msgstr "直径約8センチメートルの重い鉛の砲丸です。これを投げつけたらなかなかの威力が出そうです。" +msgid "Test ammo based on the .45 JHP." +msgstr "弾薬(.45口径/テストJHP)" #: lang/json/AMMO_from_json.py -msgid "serrated disc" -msgid_plural "serrated discs" -msgstr[0] "鋸歯ディスク" +msgid "test gas" +msgid_plural "test gas" +msgstr[0] "ガス(テスト)" -#. ~ Description for {'str': 'serrated disc'} +#. ~ Description for {'str_sp': 'test gas'} #: lang/json/AMMO_from_json.py msgid "" -"A metal disc surrounded by serrated edges. It's as menacing as it sounds." -msgstr "鋸歯が付いた金属製の円盤です。見た目に違わぬ恐ろしい力をもっています。 " +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" +msgstr "ガスのような謎の物質です。テスト用ですので、吸い込まないでください。" #: lang/json/AMMO_from_json.py -msgid "metal fragment" -msgid_plural "metal fragments" -msgstr[0] "破片(金属)" - -#. ~ Description for {'str': 'metal fragment'} -#: lang/json/AMMO_from_json.py -msgid "Small slivers of metal. Can't see much use for them." -msgstr "金属製の細長い小さな破片です。使い道はほとんどないでしょう。" - -#: lang/json/AMMO_from_json.py -msgid "glittering carbon" -msgid_plural "glittering carbon" -msgstr[0] "半圧縮カーボン" - -#. ~ Description for {'str_sp': 'glittering carbon'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of carbon are have been compressed into a crystalline " -"structure that is beginning to resemble diamonds." -msgstr "小さな炭素の欠片です。圧縮によってダイヤモンドに似た結晶構造へと変化し始めています。" - -#: lang/json/AMMO_from_json.py -msgid "diamond fragments" -msgid_plural "diamond fragments" -msgstr[0] "破片(ダイヤモンド)" - -#. ~ Description for {'str_sp': 'diamond fragments'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of diamond are formed as a byproduct from the " -"crystallization process of a diamond matrix. While the substance usually " -"decays when separated from the catalyst; these fragments are small enough to" -" remain stable." -msgstr "" -"この小さなダイヤ片は、ダイヤモンド基板によって物質を結晶化する過程で作られた副産物です。一般的に、物質は細かく分離すると脆くなりますが、これらの破片は細かくなっても十分に頑丈です。" - -#: lang/json/AMMO_from_json.py -msgid "vortex core" -msgid_plural "vortex core" -msgstr[0] "渦流コア" +msgid "TEST platinum bit" +msgid_plural "TEST platinum bits" +msgstr[0] "プラチナ片(テスト)" #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" @@ -6985,7 +6470,7 @@ msgstr "ケブラーを革で補強した特製ヘルメットです。着心地 #: lang/json/ARMOR_from_json.py msgid "XL survivor helmet" msgid_plural "XL survivor helmets" -msgstr[0] "サバイバーヘルメット(XL)" +msgstr[0] "XLサバイバーヘルメット" #. ~ Description for {'str': 'XL survivor helmet'} #: lang/json/ARMOR_from_json.py @@ -7039,7 +6524,6 @@ msgstr[0] "モジュール式防弾ベスト(空)" #. 'large grenade pouches'}. #. ~ Use action holster_msg for {'str': 'MBR vest (titanium)', 'str_pl': 'MBR #. vests (titanium)'}. -#. ~ Use action holster_msg for javelin bag. #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You stash your %s." @@ -7170,7 +6654,7 @@ msgstr "適切な箇所で骨を支え固定する道具です。" #: lang/json/ARMOR_from_json.py msgid "arm splint XL" msgid_plural "arm splints XL" -msgstr[0] "添え木(腕/XL)" +msgstr[0] "XL添え木(腕)" #. ~ Description for {'str': 'arm splint XL', 'str_pl': 'arm splints XL'} #: lang/json/ARMOR_from_json.py @@ -7238,7 +6722,7 @@ msgstr[0] "添え木(脚)" #: lang/json/ARMOR_from_json.py msgid "leg splint XL" msgid_plural "leg splints XL" -msgstr[0] "添え木(脚/XL)" +msgstr[0] "XL添え木(脚)" #. ~ Description for {'str': 'leg splint XL', 'str_pl': 'leg splints XL'} #: lang/json/ARMOR_from_json.py @@ -7394,12 +6878,11 @@ msgstr[0] "サバイバーユーティリティベルト" #. 'pairs of knee-high boots'}. #. ~ Use action holster_msg for {'str': 'pair of rollerblades', 'str_pl': #. 'pairs of rollerblades'}. -#. ~ Use action holster_msg for {'str': 'pair of rollerskates', 'str_pl': -#. 'pairs of rollerskates'}. -#. ~ Use action holster_msg for C.R.I.T web belt. +#. ~ Use action holster_msg for CRIT web belt. #. ~ Use action holster_msg for {'str': "technomancer's toolbelt"}. #. ~ Use action holster_msg for {'str': 'hollow cane'}. -#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/ARMOR_from_json.py lang/json/ARMOR_from_json.py +#: lang/json/GENERIC_from_json.py #, no-python-format msgid "You sheath your %s" msgstr "%sを収納しました。" @@ -7407,7 +6890,7 @@ msgstr "%sを収納しました。" #. ~ Use action holster_prompt for {'str': 'survivor utility belt'}. #. ~ Use action holster_prompt for {'str': 'survivor belt'}. #. ~ Use action holster_prompt for {'str': 'hiking backpack'}. -#. ~ Use action holster_prompt for C.R.I.T web belt. +#. ~ Use action holster_prompt for CRIT web belt. #. ~ Use action holster_prompt for {'str': "technomancer's toolbelt"}. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" @@ -7531,7 +7014,6 @@ msgid_plural "javelin bags" msgstr[0] "ジャベリンバッグ" #. ~ Use action holster_prompt for {'str': 'javelin bag'}. -#. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" msgstr "ジャベリンを収納する" @@ -7636,7 +7118,7 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "XL Kevlar vest" msgid_plural "XL Kevlar vests" -msgstr[0] "ケブラーベスト(XL)" +msgstr[0] "XLケブラーベスト" #. ~ Description for {'str': 'XL Kevlar vest'} #: lang/json/ARMOR_from_json.py @@ -7807,6 +7289,19 @@ msgstr[0] "レザーヴァンブレース" msgid "A pair of light leather arm guards, made for archery." msgstr "アーチェリー用に作られた革製の軽量アームガードです。" +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "防刃アームスリーブ" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': +#. 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "親指を通す穴が開いた、防刃性の高いアームスリーブです。チェーンソーから腕を守るために使います。" + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -8275,6 +7770,32 @@ msgstr[0] "コンバットブーツ" msgid "Modern reinforced tactical combat boots. Very durable." msgstr "近代的な強化を施した戦闘用のコンバットブーツです。耐久性に優れています。" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "対爆足部プロテクター" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs +#. of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "鋼鉄とノーメックスで作られた、対爆仕様の装甲付き足部プロテクターです。過圧、破片、衝撃、熱から保護するように設計されています。" + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "トゥキャップ" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "先端部がANSI規格を満たした頑丈なスチールで作られた、つま先を覆うゴム製のオーバーシューズです。" + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -8463,7 +7984,7 @@ msgstr "ケブラーで補強した毛皮製の特製ブーツです。死に直 #: lang/json/ARMOR_from_json.py msgid "pair of XL survivor boots" msgid_plural "pairs of XL survivor boots" -msgstr[0] "サバイバーブーツ(XL)" +msgstr[0] "XLサバイバーブーツ" #. ~ Description for {'str': 'pair of XL survivor boots', 'str_pl': 'pairs of #. XL survivor boots'} @@ -8886,6 +8407,8 @@ msgstr[0] "耐火靴下" #. ~ Description for {'str': 'pair of flame-resistant socks', 'str_pl': 'pairs #. of flame-resistant socks'} +#. ~ Description for {'str': 'pair of XL flame-resistant socks', 'str_pl': +#. 'pairs of XL flame-resistant socks'} #: lang/json/ARMOR_from_json.py msgid "" "A snug fitting pair of stockings made from thin and lightweight Nomex fire-" @@ -8893,6 +8416,11 @@ msgid "" "wear under clothing." msgstr "軽量なノーメックス製でピッチリした薄い耐火靴下です。頑丈な上に通気性もあり、軽くて着心地の良い下着として着用できます。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL flame-resistant socks" +msgid_plural "pairs of XL flame-resistant socks" +msgstr[0] "XL耐火靴下" + #: lang/json/ARMOR_from_json.py msgid "pair of socks" msgid_plural "pairs of socks" @@ -8905,6 +8433,17 @@ msgstr[0] "靴下" msgid "Socks. Put 'em on your feet." msgstr "靴下です。足に身に付けて下さいね。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL socks" +msgid_plural "pairs of XL socks" +msgstr[0] "XL靴下" + +#. ~ Description for {'str': 'pair of XL socks', 'str_pl': 'pairs of XL +#. socks'} +#: lang/json/ARMOR_from_json.py +msgid "Socks. Big ones. Put 'em on your feet." +msgstr "大きな靴下です。足に着用しましょう。" + #: lang/json/ARMOR_from_json.py msgid "pair of ankle socks" msgid_plural "pairs of ankle socks" @@ -8953,6 +8492,19 @@ msgstr[0] "靴下(羊毛)" msgid "Warm socks made of wool." msgstr "羊毛製の暖かい靴下です。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL wool socks" +msgid_plural "pairs of XL wool socks" +msgstr[0] "XL靴下(羊毛)" + +#. ~ Description for {'str': 'pair of XL wool socks', 'str_pl': 'pairs of XL +#. wool socks'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Warm socks made of wool for a larger than you'd previously thought possible " +"human." +msgstr "今まで見たこともない大きなサイズの、ウールで作られた暖かい人間用の靴下です。" + #: lang/json/ARMOR_from_json.py msgid "pair of stockings" msgid_plural "pairs of stockings" @@ -10298,9 +9850,9 @@ msgstr[0] "タクティカルグローブ" #. tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." -msgstr "ケブラーで強化したタクティカルグローブです。一般的に警察や軍隊が使用しています。" +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." +msgstr "難燃性と防刃性に優れたアラミド繊維製のグローブです。一般的には警察や軍隊で使われています。" #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -10344,8 +9896,9 @@ msgstr[0] "防刃グローブ" #. of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." -msgstr "死体を素早く解体したい時に役立つ、防刃性能の高いグローブです。" +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." +msgstr "食肉解体や刃物を使う日常作業に便利な、防刃性能の高いグローブです。" #: lang/json/ARMOR_from_json.py msgid "pair of hand wraps" @@ -10419,7 +9972,7 @@ msgstr "ケブラーで補強した毛皮製の特製グローブです。極限 #: lang/json/ARMOR_from_json.py msgid "pair of XL survivor gloves" msgid_plural "pairs of XL survivor gloves" -msgstr[0] "サバイバーグローブ(XL)" +msgstr[0] "XLサバイバーグローブ" #. ~ Description for {'str': 'pair of XL survivor gloves', 'str_pl': 'pairs of #. XL survivor gloves'} @@ -10511,6 +10064,20 @@ msgstr[0] "ゴルフグローブ" msgid "A thin pair of black leather golfing gloves." msgstr "革製の薄く黒いゴルフグローブです。" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "対爆グローブ" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD +#. gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "ケブラーとノーメックスで作られた、対爆仕様の軽装甲グローブです。破片や熱から保護するように設計されています。" + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -11213,7 +10780,7 @@ msgstr "古代ギリシャ式の兜です。頭部を強固に守ります。大 #: lang/json/ARMOR_from_json.py msgid "XL pot helmet" msgid_plural "XL pot helmets" -msgstr[0] "ポットヘルメット(XL)" +msgstr[0] "XLポットヘルメット" #. ~ Description for {'str': 'XL pot helmet'} #: lang/json/ARMOR_from_json.py @@ -11316,7 +10883,7 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "XL holster" msgid_plural "XL holsters" -msgstr[0] "大型ホルスター" +msgstr[0] "XLホルスター" #. ~ Description for {'str': 'XL holster'} #: lang/json/ARMOR_from_json.py @@ -11406,7 +10973,7 @@ msgstr "毛皮とケブラーで作られた装甲型の特製フードです。 #: lang/json/ARMOR_from_json.py msgid "XL survivor hood" msgid_plural "XL survivor hoods" -msgstr[0] "サバイバーフード(XL)" +msgstr[0] "XLサバイバーフード" #. ~ Description for {'str': 'XL survivor hood'} #: lang/json/ARMOR_from_json.py @@ -15296,6 +14863,21 @@ msgid "" "storage." msgstr "黒い革製のチャップスです。収納容量はありませんが、軽量で耐久性に優れています。" +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "チェーンソーチャップス" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" +"ケブラー製の頑丈なチャップスです。チェーンソーの反動による怪我は命に関わりますが、このチャップスのような保護具を着用しておけば、大腿動脈を守れます。層状のケブラーはチェーンと接触した際に擦り切れ、絡みついて動きを止めます。" + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -15423,6 +15005,34 @@ msgid "" "built to be durable, comfortable, and easy to wear." msgstr "ケブラー装甲を施し小物袋やポケットを取り付けた特製のズボンです。頑丈で着心地が良く、着るのも簡単です。" +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "対爆ズボン" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "ケブラーとノーメックスで作られた、対爆仕様の分厚い装甲付きズボンです。過圧、破片、衝撃、熱から保護するように設計されています。" + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "軽装対爆ズボン" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "" +"ケブラーとノーメックスで作られた、対爆仕様の装甲付きズボンです。有害環境での過圧、破片、衝撃、熱から保護するように設計されています。通常の対爆ズボンよりも軽く、機動性が高くなっています。" + #: lang/json/ARMOR_from_json.py msgid "basketball shorts" msgid_plural "basketball shorts" @@ -15755,6 +15365,8 @@ msgid_plural "pairs of work pants" msgstr[0] "作業用パンツ" #. ~ Description for {'str': 'work pants', 'str_pl': 'pairs of work pants'} +#. ~ Description for {'str': 'XL work pants', 'str_pl': 'pairs of XL work +#. pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." msgstr "灰色の作業用パンツです。" @@ -15799,6 +15411,18 @@ msgstr[0] "バラクラバ" msgid "A warm covering that protects the head and face from the cold." msgstr "顔と頭を覆う防寒具です。" +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "防刃バラクラバ" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "寒さだけでなく斬撃からも顔を守ってくれる防具です。" + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -16150,6 +15774,7 @@ msgstr[0] "戦闘用外骨格" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "パワーアーマーを装着しました。" @@ -16264,7 +15889,7 @@ msgid "" "significant numbers. There is an integrated chemical resistant bodyglove " "that precludes wearing other clothing." msgstr "" -"文明崩壊前に開発された最後の軍事用パワーアーマーです。ハイテクな装甲板をセグメント化し外装とした外骨格は、屋外での実践に投入するために設計されており、大変動の数日前には実際に最前線で活躍していました。残念ながら、広く展開される前に世界が崩壊してしまいました。一体型の耐薬品性グローブが付いており、他の衣類を重ねて着用できません。" +"文明崩壊前に開発された最後の軍事用パワーアーマーです。ハイテクな装甲板をセグメント化し外装とした外骨格は、屋外での実践に投入するために設計されており、大変動の数日前には実際に最前線で活躍していましたが、残念ながら広く展開される前に世界が崩壊してしまいました。より重量級のアーマーと同様に大抵の現代兵器の攻撃に耐え、重量は軽く機動性があり、車両ドアや一般的な出入り口も楽に潜り抜けられます。一体型の耐薬品性グローブが付いており、他の衣類を重ねて着用できません。" #: lang/json/ARMOR_from_json.py msgid "knit cowl" @@ -16675,8 +16300,8 @@ msgstr "ゴルフクラブを収納する" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." -msgstr "折り畳めるスタンドが付いた、背の高い帆布とビニール製のバッグです。背負って着用できるストラップも付いています。" +"has straps to be worn on the back and a slot for an umbrella." +msgstr "折り畳めるスタンドが付いた、帆布とビニール製の背の高いバッグです。背負うためのストラップと、傘を入れるポケットが付いています。" #: lang/json/ARMOR_from_json.py msgid "H&K operational briefcase (empty)" @@ -16967,6 +16592,16 @@ msgstr[0] "多機能ベスト" msgid "A light vest covered in pockets and straps for storage." msgstr "ポケットとストラップが複数付いた軽量のベストです。" +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "デバッグ用ポケットユニバース" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "約384×10^6個のバグを格納できるポケットユニバースです。" + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -17017,7 +16652,7 @@ msgstr "囚人が着ているような半袖の薄いジャンプスーツです #: lang/json/ARMOR_from_json.py msgid "XL jumpsuit" msgid_plural "XL jumpsuits" -msgstr[0] "ジャンプスーツ(XL)" +msgstr[0] "XLジャンプスーツ" #. ~ Description for {'str': 'XL jumpsuit'} #: lang/json/ARMOR_from_json.py @@ -17556,7 +17191,7 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "XL survivor suit" msgid_plural "XL survivor suits" -msgstr[0] "サバイバースーツ(XL)" +msgstr[0] "XLサバイバースーツ" #. ~ Description for {'str': 'XL survivor suit'} #: lang/json/ARMOR_from_json.py @@ -17569,7 +17204,7 @@ msgstr "防弾ベストと補強した革製ジャンプスーツから作られ #: lang/json/ARMOR_from_json.py msgid "XL heavy survivor suit" msgid_plural "XL heavy survivor suits" -msgstr[0] "重量型サバイバースーツ(XL)" +msgstr[0] "XL重量型サバイバースーツ" #. ~ Description for {'str': 'XL heavy survivor suit'} #: lang/json/ARMOR_from_json.py @@ -17965,6 +17600,18 @@ msgid "" " from cuts." msgstr "厚手の革のエプロンです。動き辛くなりますが、斬撃から身を守ってくれます。" +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "防刃エプロン" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from " +"cuts." +msgstr "防刃性に優れたケブラー製のエプロンです。" + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -18506,6 +18153,16 @@ msgstr[0] "ボクサーブリーフ" msgid "The age-old question, boxers or briefs? Your answer? Yes." msgstr "定番の議論だけど、ボクサー派とブリーフ派、どっち?ほう、なるほど。" +#: lang/json/ARMOR_from_json.py +msgid "XL boxer briefs" +msgid_plural "XL boxer briefs" +msgstr[0] "XLボクサーブリーフ" + +#. ~ Description for {'str_sp': 'XL boxer briefs'} +#: lang/json/ARMOR_from_json.py +msgid "The age-old question, boxers or briefs? Your answer? Chonk!" +msgstr "定番の議論だけど、ボクサー派とブリーフ派、どっち?デカけりゃ何でもいいか!" + #: lang/json/ARMOR_from_json.py msgid "boxer shorts" msgid_plural "boxer shorts" @@ -18517,6 +18174,18 @@ msgid "" "Men's boxer shorts. More fashionable than briefs and just as comfortable." msgstr "男性用のボクサーパンツです。ブリーフよりもファッション性の高い物が多く、同様に履き心地にも優れています。" +#: lang/json/ARMOR_from_json.py +msgid "XL boxer shorts" +msgid_plural "XL boxer shorts" +msgstr[0] "XLボクサーパンツ" + +#. ~ Description for {'str_sp': 'XL boxer shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Men's XL boxer shorts. For the very big and tall. More fashionable than " +"briefs and just as comfortable." +msgstr "大きなサイズの男性用ボクサーパンツです。ブリーフよりもファッション性の高い物が多く、同様に履き心地にも優れています。" + #: lang/json/ARMOR_from_json.py msgid "boy shorts" msgid_plural "boy shorts" @@ -18528,6 +18197,18 @@ msgid "" "Female underwear similar to men's boxer shorts, but much more close-fitting." msgstr "男性用のボクサーパンツに類似していますが、それよりも更に肌に密着する女性用の下着です。" +#: lang/json/ARMOR_from_json.py +msgid "XL boy shorts" +msgid_plural "XL boy shorts" +msgstr[0] "XLボーイレッグパンティー" + +#. ~ Description for {'str_sp': 'XL boy shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Female underwear similar to men's boxer shorts, but much more close-fitting." +" This size is made for giants." +msgstr "男性用のボクサーパンツに類似していますが、それよりも更に肌に密着する女性用の下着です。巨人が履けそうなサイズです。" + #: lang/json/ARMOR_from_json.py msgid "bra" msgid_plural "bras" @@ -18648,7 +18329,7 @@ msgstr "足を暖める、着心地の良い毛皮のスリーブです。原始 #: lang/json/ARMOR_from_json.py msgid "pair of XL leg warmers" msgid_plural "pairs of XL leg warmers" -msgstr[0] "レッグウォーマー(XL)" +msgstr[0] "XLレッグウォーマー" #. ~ Description for {'str': 'pair of XL leg warmers', 'str_pl': 'pairs of XL #. leg warmers'} @@ -18723,6 +18404,20 @@ msgid "" msgstr "" "運動や歩行中に肩紐などがずれないように、乳房の補助を重視したナイロン製の丈夫なブラジャーです。一般的には運動時に用いられ、肌に密着するため着心地は快適です。" +#: lang/json/ARMOR_from_json.py +msgid "XL sports bra" +msgid_plural "XL sports bras" +msgstr[0] "XLスポーツブラジャー" + +#. ~ Description for {'str': 'XL sports bra'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A sturdy nylon bra to provide additional support during physical movement. " +"Typically worn when exercising, it clings to the skin and is easy to wear. " +"This one appears to have been made for a massive person." +msgstr "" +"運動や歩行中に肩紐などがずれないように、乳房の補助を重視したナイロン製の丈夫なブラジャーです。一般的には運動時に用いられ、肌に密着するため着心地は快適です。体格が非常に立派な人向けに作られているようです。" + #: lang/json/ARMOR_from_json.py msgid "tank top" msgid_plural "tank tops" @@ -18957,6 +18652,55 @@ msgid "" msgstr "" "センチネルLXの肩に不自然な影のように掛かっていた、ベンタブラック塗料を塗った外套です。軽量で耐久性のあるグラフェン素材が織り込まれており、修復できません。" +#: lang/json/ARMOR_from_json.py +msgid "XL jeans" +msgid_plural "pairs of XL jeans" +msgstr[0] "XLジーンズ" + +#. ~ Description for {'str': 'XL jeans', 'str_pl': 'pairs of XL jeans'} +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue jeans with two deep pockets." +msgstr "2つの深いポケットが付いた青色の大きなジーンズです。" + +#: lang/json/ARMOR_from_json.py +msgid "XL work pants" +msgid_plural "pairs of XL work pants" +msgstr[0] "XL作業用パンツ" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue work pants." +msgstr "青色の大きな作業用パンツです。" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL gray work pants." +msgstr "灰色の大きな作業用パンツです。" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL light-blue work pants." +msgstr "水色の大きな作業用パンツです。" + +#: lang/json/ARMOR_from_json.py +msgid "XL work t-shirt" +msgid_plural "XL work t-shirts" +msgstr[0] "XL作業用Tシャツ" + +#. ~ Description for {'str': 'XL work t-shirt'} +#: lang/json/ARMOR_from_json.py +msgid "A gray XL work t-shirt with a small front pocket." +msgstr "小さな前ポケットが付いた灰色の大きな作業用Tシャツです。" + +#: lang/json/ARMOR_from_json.py +msgid "An XL blue work t-shirt with a small front pocket." +msgstr "小さな前ポケットが付いた青色の大きな作業用Tシャツです。" + +#: lang/json/ARMOR_from_json.py +msgid "An XL gray work t-shirt with a small front pocket." +msgstr "小さな前ポケットが付いた灰色の大きな作業用Tシャツです。" + +#: lang/json/ARMOR_from_json.py +msgid "An XL light-blue work t-shirt with a small front pocket." +msgstr "小さな前ポケットが付いた水色の大きな作業用Tシャツです。" + #: lang/json/ARMOR_from_json.py msgid "Uplifted SWAT armor" msgid_plural "Uplifted SWAT armors" @@ -18987,7 +18731,7 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "XL ESAPI ballistic vest" msgid_plural "XL ESAPI ballistic vests" -msgstr[0] "ESAPI防弾ベスト(XL)" +msgstr[0] "XL-ESAPI防弾ベスト" #. ~ Description for {'str': 'XL ESAPI ballistic vest'} #: lang/json/ARMOR_from_json.py @@ -18997,7 +18741,7 @@ msgstr "ESAPIセラミックアーマープレートを内蔵した特大サイ #: lang/json/ARMOR_from_json.py msgid "pair of XL combat boots" msgid_plural "pair of XL combat boots" -msgstr[0] "コンバットブーツ(XL)" +msgstr[0] "XLコンバットブーツ" #. ~ Description for {'str_sp': 'pair of XL combat boots'} #: lang/json/ARMOR_from_json.py @@ -19007,7 +18751,7 @@ msgstr "近代的な強化を施した、特大サイズの戦闘用コンバッ #: lang/json/ARMOR_from_json.py msgid "pair of XL tactical gloves" msgid_plural "pair of XL tactical gloves" -msgstr[0] "タクティカルグローブ(XL)" +msgstr[0] "XLタクティカルグローブ" #. ~ Description for {'str_sp': 'pair of XL tactical gloves'} #: lang/json/ARMOR_from_json.py @@ -19030,6 +18774,55 @@ msgid "" msgstr "" "補強が施されたケブラー製タクティカルグローブです。3本指の殺人ゾウが着用できる特別製で、通常のタクティカルグローブよりも既に作られています。" +#: lang/json/ARMOR_from_json.py +msgid "XL leather belt" +msgid_plural "XL leather belts" +msgstr[0] "XLレザーベルト" + +#. ~ Description for {'str': 'XL leather belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL leather belt. Useful for making your pair of pants fit if you need " +"really big pants." +msgstr "革製の大きなベルトです。非常に大きなサイズのズボンをきちんと履く時に役立ちます。" + +#: lang/json/ARMOR_from_json.py +msgid "XL police duty belt" +msgid_plural "XL police duty belts" +msgstr[0] "XL警察ベルト" + +#. ~ Description for {'str': 'XL police duty belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL black leather belt used by extremely large uplifted police officers. " +"It has several pouches and a holder for a baton." +msgstr "大柄の警察官が着用する革製の黒い大きなベルトです。いくつかのポーチと警棒を収納するホルダーが付いています。" + +#: lang/json/ARMOR_from_json.py +msgid "XL tactical full helmet" +msgid_plural "XL tactical full helmets" +msgstr[0] "XLタクティカルフルヘルメット" + +#. ~ Description for {'str': 'XL tactical full helmet'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An all-encompassing massive black helmet that covers your entire face and " +"neck, providing excellent protection from all sorts of damage." +msgstr "フルフェイスの黒い大きなヘルメットです。顔全体と首を覆い、あらゆるダメージから身を守ります。" + +#: lang/json/ARMOR_from_json.py +msgid "XL leg ammo pouch" +msgid_plural "XL leg ammo pouches" +msgstr[0] "XL弾倉ポーチ(脚)" + +#. ~ Description for {'str': 'XL leg ammo pouch', 'str_pl': 'XL leg ammo +#. pouches'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL fabric ammo pouch that can be strapped to your leg and capable of " +"holding two magazine close at hand." +msgstr "帯で脚に括り付けるタイプの大きな布製弾倉ポーチです。取り出しやすい位置に弾倉を2つ収納できます。" + #: lang/json/ARMOR_from_json.py msgid "titanium watch" msgid_plural "titanium watches" @@ -19169,6 +18962,21 @@ msgid "" msgstr "" "中世のブリガンダインをモデルに、層状に重ねた布の裏地に板金を貼り付けて自作した防具です。本物ほど防御力は高くありませんが、それでも比較的高い性能です。" +#: lang/json/ARMOR_from_json.py +msgid "CRIT Engineering Suit" +msgid_plural "CRIT Engineering Suits" +msgstr[0] "CRIT研究開発部エンジニアスーツ" + +#. ~ Description for CRIT Engineering Suit +#: lang/json/ARMOR_from_json.py +msgid "" +"An airtight, flexible suit of woven composite fibers complete with segmented" +" plates of armor. A complex system digitizes items in an individual pocket " +"universe for storage while built in joint-torsion ratchets generate the " +"neccessary energy required to power the interface." +msgstr "" +"セグメント化された装甲版を備えた、気密性に優れた柔軟な複合繊維製スーツです。複雑なシステムによってポケットに入れたアイテムをデジタル化して保管し、内蔵された捻れラチェットでインターフェースに供給する電力を発電します。" + #: lang/json/ARMOR_from_json.py msgid "CRIT face mask" msgid_plural "CRIT face masks" @@ -19177,11 +18985,11 @@ msgstr[0] "CRITマスク" #. ~ Description for CRIT face mask #: lang/json/ARMOR_from_json.py msgid "" -"This is the C.R.I.T standard issue face mask, lined with Kevlar for extra " -"protection. A few filters provide decent environmental safety, but it was " -"not intended for extended use. It has a basic integrated HUD." +"A standard issue face mask, lined with Kevlar for extra protection. A few " +"filters provide decent environmental safety, but it was not intended for " +"extended use. It has a basic integrated HUD." msgstr "" -"C.R.I.Tの標準装備のフェイスマスクです。防御力を高めるためにケブラーで裏打ちされています。フィルターによって大気中の危険物質から顔面を保護しますが、長期使用は想定されていません。基本的な一体型HUDが付属しています。" +"標準装備のフェイスマスクです。防御力を高めるためにケブラーで裏打ちされています。フィルターによって大気中の危険物質から顔面を保護しますが、長期使用は想定されていません。基本的な一体型HUDが付属しています。" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT boots" @@ -19192,12 +19000,12 @@ msgstr[0] "CRITブーツ" #. boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and " +"A pair of standard-issue boots. Next-gen gels keep feet comfortable and " "hygienic during long-term missions while absorbing shock and heat from " "outside-sources. Superalloy mesh and rubber offer quite a bit of chemical " "protection as well. Decently heavy though" msgstr "" -"C.R.I.Tの標準装備のブーツです。次世代素材のジェルによって、長期任務中の足を快適かつ衛生的に保ち、外部からの衝撃や熱を吸収します。超合金メッシュとゴム製素材が備わっており化学物質からの保護も期待できますが、非常に重いのが難点です。" +"標準装備のブーツです。次世代素材のジェルによって、長期任務中の足を快適かつ衛生的に保ち、外部からの衝撃や熱を吸収します。超合金メッシュとゴム製素材が備わっており化学物質からの保護も期待できますが、非常に重いのが難点です。" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT LA boots" @@ -19208,12 +19016,12 @@ msgstr[0] "CRIT軽量型ブーツ" #. LA boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor " +"A pair of skeletonized boots. Based off of C.R.I.T boots, the light-armor " "variant was created for missions in warmer climates. The LA boots keep most" " of the old features of the standard issue boots but trade in protection for" " easier movement." msgstr "" -"重量を削減したC.R.I.Tブーツです。通常のブーツを基に温暖気候での任務用に改良されたもので、ほとんどの機能はそのままですが、防御力が低下した代わりにより動きやすい構造になっています。" +"重量を削減したブーツです。通常のC.R.I.Tブーツを基に温暖気候での任務用に改良されたもので、ほとんどの機能はそのままですが、防御力が低下した代わりにより動きやすい構造になっています。" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT fingertip-less gloves" @@ -19224,11 +19032,10 @@ msgstr[0] "CRIT指貫グローブ" #. 'pairs of CRIT fingertip-less gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with " +"A pair of standard-issue gloves. Made with superalloy mesh for those with " "gene-modding and/or mutations while still allowing greater manipulation of " "items and moderate protection." -msgstr "" -"C.R.I.Tの標準装備のグローブです。遺伝子操作者や突然変異者も着用できる超合金メッシュ素材で作られており、指先の操作と適度な防御力を両立しています。" +msgstr "標準装備のグローブです。遺伝子操作者や突然変異者も着用できる超合金メッシュ素材で作られており、指先の操作と適度な防御力を両立しています。" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT fingertip-less liners" @@ -19239,11 +19046,11 @@ msgstr[0] "CRIT指貫ライナーグローブ" #. 'pairs of CRIT fingertip-less liners'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue glove liners. Made with neoprene and rubber mesh for" -" warmth and fingertip-less for those with gene-modding and/or mutations " +"A pair of standard-issue glove liners. Made with neoprene and rubber mesh " +"for warmth and fingertip-less for those with gene-modding and/or mutations " "while still allowing greater manipulation of items and moderate protection." msgstr "" -"C.R.I.Tの標準装備のライナーグローブです。遺伝子操作者や突然変異者も着用できるネオプレンとゴムで作られており、指先の操作と適度な防御力を両立しています。" +"標準装備のライナーグローブです。遺伝子操作者や突然変異者も着用できるネオプレンとゴムで作られており、指先の操作と適度な防御力を両立しています。" #: lang/json/ARMOR_from_json.py msgid "CRIT backpack" @@ -19253,12 +19060,12 @@ msgstr[0] "CRITバックパック" #. ~ Description for CRIT backpack #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this " -"smaller pack strikes a fine balance between storage space and encumbrance " -"and allows a larger weapon to be holstered, drawing and holstering is still " -"rather awkward even with the magnetized clips, but practice helps." +"A standard-issue pack. Based on the MOLLE backpack's design, this smaller " +"pack strikes a fine balance between storage space and encumbrance and allows" +" a larger weapon to be holstered, drawing and holstering is still rather " +"awkward even with the magnetized clips, but practice helps." msgstr "" -"C.R.I.Tの標準装備のバックパックです。MOLLEバックパックの設計を基に作られたこの小型パックは、収納容量と動作性を絶妙なバランスで両立しています。より大型の武器を収納できる磁性クリップ式ホルスターが付いていますが、武器の素早い着脱には練習が必要です。" +"標準装備のバックパックです。MOLLEバックパックの設計を基に作られたこの小型パックは、収納容量と動作性を絶妙なバランスで両立しています。より大型の武器を収納できる磁性クリップ式ホルスターが付いていますが、武器の素早い着脱には練習が必要です。" #: lang/json/ARMOR_from_json.py msgid "CRIT chestrig" @@ -19268,9 +19075,9 @@ msgstr[0] "CRITチェストリグ" #. ~ Description for CRIT chestrig #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" -" with light-armor padding." -msgstr "C.R.I.Tの標準装備のチェストリグです。メッシュ素材で作られており、道具を掛ける複数の輪と軽量装甲パッドが付いています。" +"A slightly modified chestrig, has mesh and MOLLE loops for gear and slots " +"with light-armor padding." +msgstr "標準装備のチェストリグです。メッシュ素材で作られており、道具を掛ける複数の輪と軽量装甲パッドが付いています。" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT leg guards" @@ -19281,19 +19088,18 @@ msgstr[0] "CRITレッグガード" #. CRIT leg guards'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue leg armor. Simple design and durable material allows" -" for easy movement and the padding keeps the legs safe and warm in colder " +"Leg armor for those who fight. Simple design and durable material allows " +"for easy movement and the padding keeps the legs safe and warm in colder " "conditions." -msgstr "" -"C.R.I.Tの標準装備のレッグアーマーです。丈夫な素材で作られたシンプルなデザインは動作を妨げず、内部のパッドによって寒冷地でも脚が冷えません。" +msgstr "標準装備のレッグアーマーです。丈夫な素材で作られたシンプルなデザインは動作を妨げず、内部のパッドによって寒冷地でも脚が冷えません。" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT arm guards" -msgid_plural "pairs of C.R.I.T arm guards" +msgid_plural "pairs of CRIT arm guards" msgstr[0] "CRITアームガード" #. ~ Description for {'str': 'pair of CRIT arm guards', 'str_pl': 'pairs of -#. C.R.I.T arm guards'} +#. CRIT arm guards'} #: lang/json/ARMOR_from_json.py msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " @@ -19309,9 +19115,9 @@ msgstr[0] "CRITウェブベルト" #. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on " -"your hip." -msgstr "C.R.I.Tの標準装備のベルトです。ズボンと武器を腰に固定します。" +"CRIT standard-issue belt. Keeps your trousers up and your weapons on your " +"hip." +msgstr "CRITの標準装備のベルトです。ズボンと武器を腰に固定します。" #: lang/json/ARMOR_from_json.py msgid "CRIT infantry duster" @@ -19327,21 +19133,6 @@ msgid "" msgstr "" "ゴム製の絶縁体を織り込んだ、丈の長い厚手のダスターコートです。やや動き辛いですが、ロボットからの放電攻撃に対してはかなり有効な防具です。収納用のポケットが複数付いています。" -#: lang/json/ARMOR_from_json.py -msgid "CRIT Engineering Suit" -msgid_plural "CRIT Engineering Suits" -msgstr[0] "CRIT研究開発部エンジニアスーツ" - -#. ~ Description for CRIT Engineering Suit -#: lang/json/ARMOR_from_json.py -msgid "" -"An airtight, flexible suit of woven composite fibers complete with segmented" -" plates of armor. A complex system digitizes items in an individual pocket " -"universe for storage while built in joint-torsion ratchets generate the " -"necessary energy required to power the interface." -msgstr "" -"セグメント化された装甲版を備えた、気密性に優れた柔軟な複合繊維製スーツです。複雑なシステムによってポケットに入れたアイテムをデジタル化して保管し、内蔵された捻れラチェットでインターフェースに供給する電力を発電します。" - #: lang/json/ARMOR_from_json.py msgid "CRIT Armored Anomaly Suit" msgid_plural "CRIT Armored Anomaly Suits" @@ -19359,11 +19150,11 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "CRIT drop leg pouch" -msgid_plural "C.R.I.T drop leg pouches" +msgid_plural "CRIT drop leg pouches" msgstr[0] "CRITドロップレッグポーチ" -#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'C.R.I.T drop -#. leg pouches'} +#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'CRIT drop leg +#. pouches'} #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " @@ -19398,7 +19189,7 @@ msgstr[0] "CRIT執行官足部装甲" #. of CRIT Enforcer docks'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of " +"CRIT Enforcer docks. Metal plates vaguely molded into the shape of " "oversized feet which clamp down onto your own footwear keep your feet out of" " harms way. It looks terrible and feels clunky unlike most of C.R.I.T's " "designs, but they do seem to be worth using if you were to be in the middle " @@ -19437,95 +19228,92 @@ msgstr "" "柔軟なケブラー製ボディスーツの上に古く重そうな黒いプレートアーマーを重ねた装備です。最新式の改良を受けた銃装甲は、あらゆる衝撃から着用者を完璧に守るでしょう。まずは、本当に上手く歩けるのか確認した方が良さそうです。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T blouse" -msgid_plural "C.R.I.T blouses" +msgid "CRIT blouse" +msgid_plural "CRIT blouses" msgstr[0] "CRITジャケット" -#. ~ Description for C.R.I.T blouse +#. ~ Description for CRIT blouse #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage." -" Super-flex neoprene keeps one warm in moderately cold weather while a " -"sleek design keeps it from being too flashy. A zipper at the back and front" -" allows for quick donning and doffing." +"A standard-issue military jacket. Durable, lightweight, and has ample " +"storage. Super-flex neoprene keeps one warm in moderately cold weather " +"while a sleek design keeps it from being too flashy. A zipper at the back " +"and front allows for quick donning and doffing." msgstr "" -"C.R.I.Tの標準装備のジャケットです。丈夫で軽量、収納力も十分です。多少の寒い天候でも体温を保てるスーパーフレックスネオプレン素材を使っていますが、派手過ぎないスマートなデザインです。前後にジッパーが付いており、素早く着脱できます。" +"標準装備のジャケットです。丈夫で軽量、収納力も十分です。多少の寒い天候でも体温を保てるスーパーフレックスネオプレン素材を使っていますが、派手過ぎないスマートなデザインです。前後にジッパーが付いており、素早く着脱できます。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T trousers" -msgid_plural "C.R.I.T trousers" -msgstr[0] "CRITボトムス" +msgid "CRIT trousers" +msgid_plural "CRIT trousers" +msgstr[0] "CRITカーゴパンツ" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT trousers'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue trousers. Durable, lightweight and has ample " +"A pair of standard-issue cargo pants. Durable, lightweight and has ample " "storage. Super-flex neoprene keeps one warm in moderately cold weather." -msgstr "" -"C.R.I.Tの標準装備のパンツです。丈夫で軽量、収納力も十分です。多少の寒い天候でも体温を保てるスーパーフレックスネオプレン素材を使っています。" +msgstr "標準装備のカーゴパンツです。丈夫で軽量、収納力も十分です。多少の寒い天候でも体温を保てるスーパーフレックスネオプレン素材を使っています。" + +#: lang/json/ARMOR_from_json.py +msgid "CRIT pants" +msgid_plural "CRIT pants" +msgstr[0] "CRITドレスパンツ" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT pants'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " -"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " -"cold weather." +"A pair of dress pants. A minimalist sleek design makes the pants " +"lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in" +" moderately cold weather." msgstr "" -"C.R.I.Tの標準装備のドレスパンツです。シンプルで洗練されたデザインで、更には軽く、ポケットも付いています。多少の寒い天候でも体温を保てるスーパーフレックスネオプレン素材を使っています。" +"標準装備のドレスパンツです。シンプルで洗練されたデザインで、更には軽く、ポケットも付いています。多少の寒い天候でも体温を保てるスーパーフレックスネオプレン素材を使っています。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T helmet liner" -msgid_plural "C.R.I.T helmet liners" +msgid "CRIT helmet liner" +msgid_plural "CRIT helmet liners" msgstr[0] "CRIT中帽" -#. ~ Description for C.R.I.T helmet liner +#. ~ Description for CRIT helmet liner #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." -msgstr "C.R.I.Tの標準装備の中帽です。頭部を寒さから守ります。" +msgid "A standard-issue helmet liner. Keeps the noggin warm." +msgstr "標準装備の中帽です。頭部を寒さから守ります。" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T shoes" -msgid_plural "pairs of C.R.I.T dress shoes" +msgid "pair of CRIT shoes" +msgid_plural "pairs of CRIT dress shoes" msgstr[0] "CRITドレスシューズ" -#. ~ Description for {'str': 'pair of C.R.I.T shoes', 'str_pl': 'pairs of -#. C.R.I.T dress shoes'} +#. ~ Description for {'str': 'pair of CRIT shoes', 'str_pl': 'pairs of CRIT +#. dress shoes'} #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." msgstr "スマートなドレスシューズです。派手ですが上品です。" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T rec gloves" -msgid_plural "pairs of C.R.I.T rec gloves" +msgid "pair of CRIT rec gloves" +msgid_plural "pairs of CRIT rec gloves" msgstr[0] "CRIT偵察部隊グローブ" -#. ~ Description for {'str': 'pair of C.R.I.T rec gloves', 'str_pl': 'pairs of -#. C.R.I.T rec gloves'} +#. ~ Description for {'str': 'pair of CRIT rec gloves', 'str_pl': 'pairs of +#. CRIT rec gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are" -" made with cotton with a neoprene lining for grip-pads and warmth. " -msgstr "" -"C.R.I.Tの標準装備の偵察部隊用グローブです。肌にフィットする滑らかな布製で、滑り止めと手を冷やさないネオプレン製の裏地が備わっています。" +"A pair of standard-issue rec gloves. Skin-hugging and sleek, these gloves " +"are made with cotton with a neoprene lining for grip-pads and warmth. " +msgstr "標準装備の偵察部隊用グローブです。肌にフィットする滑らかな布製で、滑り止めと手を冷やさないネオプレン製の裏地が備わっています。" -#: lang/json/ARMOR_from_json.py -msgid "C.R.I.T web belt" -msgid_plural "C.R.I.T web belts" -msgstr[0] "CRITウェブベルト" - -#. ~ Description for C.R.I.T web belt +#. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " -"hip." -msgstr "C.R.I.Tの標準装備のベルトです。ズボンと工具を腰に固定します。" +"A standard-issue belt. Keeps your trousers up and your tools on your hip." +msgstr "標準装備のベルトです。ズボンと工具を腰に固定します。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec duster" -msgid_plural "C.R.I.T rec dusters" +msgid "CRIT rec duster" +msgid_plural "CRIT rec dusters" msgstr[0] "CRIT偵察部隊ダスターコート" -#. ~ Description for C.R.I.T rec duster +#. ~ Description for CRIT rec duster #: lang/json/ARMOR_from_json.py msgid "" "A waterproofed full-length duster coat. Made with neoprene, comfort and " @@ -19535,18 +19323,42 @@ msgstr "" "丈の長い防水性のダスターコートです。ネオプレン製の上品かつ現代的なデザインで、快適さと機能性が両立されています。収納用のポケットが複数ついています。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec hat" -msgid_plural "C.R.I.T rec hats" -msgstr[0] "CRIT偵察部隊制帽" +msgid "CRIT rec hat" +msgid_plural "CRIT rec hats" +msgstr[0] "CRIT偵察部隊帽" -#. ~ Description for C.R.I.T rec hat +#. ~ Description for CRIT rec hat #: lang/json/ARMOR_from_json.py msgid "" -"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " +"Functionality meets fashion in this waterproofed CRIT standard issue rec " "cover. Thick enough to provide warmth in colder weather, this hat shares " "the same sleek design of most of C.R.I.T's gear." msgstr "" -"機能性と流行を両立した、防水機能をもつC.R.I.T偵察部隊の標準装備です。寒い季節でも十分暖かく過ごせる厚みがあり、C.R.I.Tの装備特有の洗練されたデザインです。" +"機能性と流行を両立した、防水機能をもつCRITの標準装備の偵察部隊帽です。寒い季節でも十分暖かく過ごせる厚みがあり、C.R.I.Tの装備特有の洗練されたデザインです。" + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber tunic" +msgid_plural "plant fiber tunics" +msgstr[0] "植物繊維チュニック" + +#. ~ Description for plant fiber tunic +#: lang/json/ARMOR_from_json.py +msgid "" +"A loose garment cobbled together from a collection of plant bundles and " +"wound together by makeshift cordage" +msgstr "束にした植物繊維を手製の紐でまとめた、その場しのぎのゆったりとした衣装です。" + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber bracelet" +msgid_plural "plant fiber bracelets" +msgstr[0] "ブレスレット(植物繊維)" + +#. ~ Description for plant fiber bracelet +#: lang/json/ARMOR_from_json.py +msgid "" +"A bracelet wound together by makeshift cordage. Has some cool looking " +"pebbles. " +msgstr "手で編んだ紐で作った簡易的なブレスレットです。お洒落な小石が複数個あしらってあります。" #: lang/json/ARMOR_from_json.py msgid "CRIT canteen" @@ -19556,9 +19368,9 @@ msgstr[0] "CRIT水筒(1.5L)" #. ~ Description for CRIT canteen #: lang/json/ARMOR_from_json.py msgid "" -"A simple, durable steel canteen that can heat up food with built in " -"plutonium heating elements." -msgstr "内蔵されたプルトニウム製発熱体で食品の加熱もできる、シンプルで丈夫な鋼鉄製の水筒です。" +"A durable steel canteen that can heat up food with built in atomic heating " +"elements." +msgstr "内蔵された原子力稼働発熱体で食品の加熱もできる、丈夫な鋼鉄製の水筒です。" #: lang/json/ARMOR_from_json.py msgid "wet bandana" @@ -20133,121 +19945,6 @@ msgid "" "the environment." msgstr "有害な環境から全身を保護する、目に見えない魔法のオーラです。" -#: lang/json/ARMOR_from_json.py -msgid "wooden shield" -msgid_plural "wooden shields" -msgstr[0] "木盾" - -#. ~ Description for wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A crude wooden shield, lacking any metal or leather reinforcement. " -"Lightweight but not very tough." -msgstr "ぞんざいな造りの木製の盾です。金属や革の補強部品は一切使われていません。軽量で、まったく強度に欠けます。" - -#: lang/json/ARMOR_from_json.py -msgid "large wooden shield" -msgid_plural "large wooden shields" -msgstr[0] "大型木盾" - -#. ~ Description for large wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"An ancient style of wooden shield, lacking any metal or leather " -"reinforcement. Bulky, but offers a decent amount of protection." -msgstr "古代様式の大型の木の盾です。金属や革の補強部品は一切使われていません。嵩張りますがそれなりに盾として働き、敵の攻撃を防ぎます。" - -#: lang/json/ARMOR_from_json.py -msgid "heater shield" -msgid_plural "heater shields" -msgstr[0] "ヒーターシールド" - -#. ~ Description for heater shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A medieval style of shield made of wood overlaid with leather, developed " -"from the longer kite shield. Mainly used in tournaments, but still viable " -"in battle." -msgstr "" -"表面を革で覆った木製の盾です。縦に長いカイトシールドが発展してこの形になりました。主に試合で使われましたが、実用品としても十分使える性能を秘めています。" - -#: lang/json/ARMOR_from_json.py -msgid "kite shield" -msgid_plural "kite shields" -msgstr[0] "カイトシールド" - -#. ~ Description for kite shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A classic medieval style of shield, made of wood overlaid with leather, in " -"an elongated teardrop shape. Affords decent protection, but was better " -"suited for cavalry." -msgstr "" -"中世様式の木製の盾です。ほぼ全体を革で覆って補強してあり、縦に長い涙滴型をしています。十分な防御力を発揮しますが、本来は馬上で最も使いやすいように作られています。" - -#: lang/json/ARMOR_from_json.py -msgid "round shield" -msgid_plural "round shields" -msgstr[0] "ラウンドシールド" - -#. ~ Description for round shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple round shield made of wood, with a rim and boss of iron. Made " -"infamous by the Vikings." -msgstr "簡素な円形の盾です。木製ですが、縁の補強と中央の膨らみの部分に鉄が使われています。ヴァイキングの盾として有名です。" - -#: lang/json/ARMOR_from_json.py -msgid "hoplon" -msgid_plural "hoplons" -msgstr[0] "ホプロン" - -#. ~ Description for hoplon -#: lang/json/ARMOR_from_json.py -msgid "" -"A convex round shield from ancient Greece, made of wood reinforced with " -"bronze. Heavy but effective." -msgstr "古代ギリシャの円形の盾です。材質は木と青銅で、全体が緩やかな凸面になっています。重量はありますが実戦的です。" - -#: lang/json/ARMOR_from_json.py -msgid "scutum" -msgid_plural "scuta" -msgstr[0] "スクトゥム" - -#. ~ Description for {'str': 'scutum', 'str_pl': 'scuta'} -#: lang/json/ARMOR_from_json.py -msgid "" -"A rectangular shield from ancient Rome, made of wood and iron. Perfect for " -"fighting in formation, but not ideal for facing zombies alone." -msgstr "" -"古代ローマの長方形の大盾です。木製ながら部分的に鉄が使われており、緩く弯曲しています。陣形を組んで使うなら完璧なのですが、一人でゾンビに立ち向かうなら決して理想的な盾とは言えません。" - -#: lang/json/ARMOR_from_json.py -msgid "buckler" -msgid_plural "bucklers" -msgstr[0] "バックラー" - -#. ~ Description for buckler -#: lang/json/ARMOR_from_json.py -msgid "" -"A small metal shield from the late medieval and renaissance periods. " -"Extremely light and tough, but its small size is as much a hindrance as it " -"is an advantage." -msgstr "" -"中世ルネサンス期の、小さな金属製の盾です。防御面積は小さいものの、非常に頑丈で攻撃を通さず、軽量で取り回しが良いという余りある長所を持ちます。" - -#: lang/json/ARMOR_from_json.py -msgid "hooded hat" -msgid_plural "hooded hats" -msgstr[0] "フード帽" - -#. ~ Description for hooded hat -#: lang/json/ARMOR_from_json.py -msgid "" -"A proper wide-brimmed hat, modified by the addition of a hood sewn to it, to" -" better protect the neck from wind and rain." -msgstr "しっかりとした造りのつば広帽子にフードが縫い付けてあります。首周りを風雨から守ります。" - #: lang/json/ARMOR_from_json.py msgid "TEST pair of socks" msgid_plural "TEST pairs of socks" @@ -20278,6 +19975,26 @@ msgid "TEST briefcase" msgid_plural "TEST briefcases" msgstr[0] "ブリーフケース(テスト)" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "" + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -21937,6 +21654,18 @@ msgid "" msgstr "" "報酬系を担う脳神経の中心に、小型の神経刺激装置を移植します。起動すると電力を消費してドーパミンなどの化学物質を定期的に放出し、多幸状態を引き起こして恐怖を抑制します。" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "頭蓋爆弾" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "背骨と脳幹の間に移植された爆弾です。タイマーが付いていますが、リセットするコードはありません。" + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -21967,6 +21696,23 @@ msgid "" msgstr "" "血液内に蓄積された生得的エネルギーをCBM用の電力に変換する、最新技術を用いた装置です。血液が健康であるほど発電に適しています。100mlの血液を保管できます。" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Crystallized Mana Nose Replacement" +msgid_plural "Crystallized Mana Nose Replacements" +msgstr[0] "CBM: 結晶化マナ製外鼻" + +#. ~ Description for {'str': 'Crystallized Mana Nose Replacement'} +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"A large gem made with crystallized mana and some other stabilizing metals. " +"Comes with a specially designed power pack (installed into the skull) that " +"does not interfere with your mana ley lines. WARNING: for Technomancer use " +"only. By using this spell you are waiving all liability of Frikken Laser " +"Beams Inc. and its subsidiaries." +msgstr "" +"結晶化したマナや安定した金属類を組み合わせた、大粒の宝石です。内なるレイラインを阻害しない特別な作りのマナパック(頭蓋骨埋め込み式)が付属しています。警告:このCBMはテクノマンサー専用装備です。このCBMを利用した呪文を詠唱することにより、詠唱者はFrikken" +" Laser Beams株式会社とその子会社への免責に同意したものとみなします。" + #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" msgid_plural "chicken walker schematics" @@ -22026,293 +21772,409 @@ msgid "" msgstr "この文書の執筆者は、バネ式原子核制御装置について徹底的に研究し、説得力のある提案をしたようです。「否認」のスタンプが押されています。" #: lang/json/BOOK_from_json.py -msgid "Lessons for the Novice Bowhunter" -msgid_plural "copies of Lessons for the Novice Bowhunter" -msgstr[0] "本(学習/狩人初心者に贈る教訓)" +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" +msgstr[0] "汎用ノンフィクション本" -#. ~ Description for {'str': 'Lessons for the Novice Bowhunter', 'str_pl': -#. 'copies of Lessons for the Novice Bowhunter'} +#. ~ Description for Generic Nonfiction Book #: lang/json/BOOK_from_json.py -msgid "" -"This hefty paperback book contains all the information needed for novice " -"archers to get started hunting with a variety of bows and crossbows." -msgstr "この分厚いペーパーバックの本には、弓やクロスボウの初心者が狩りを行うのに必要な情報が網羅されています。" +msgid "template for a manuscript purporting to be factual" +msgstr "ノンフィクション本のテンプレートです。" #: lang/json/BOOK_from_json.py -msgid "Archery for Kids" -msgid_plural "issues of Archery for Kids" -msgstr[0] "本(学習/子供向け弓術)" +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" +msgstr[0] "汎用フィクション本" -#. ~ Description for {'str': 'Archery for Kids', 'str_pl': 'issues of Archery -#. for Kids'} +#. ~ Description for Generic Fiction Book #: lang/json/BOOK_from_json.py -msgid "" -"Will you be able to place the arrow right into the bullseye? It is not that" -" easy, but once you know how it's done, you will have a lot of fun with " -"archery." -msgstr "君は的の中心に矢を当てられますか?もちろん、それは簡単な事ではありません。しかし、弓術を正しく学べば、多くの楽しみが待っていますよ。" +msgid "template for a work of fiction" +msgstr "フィクション本のテンプレートです。" #: lang/json/BOOK_from_json.py -msgid "Zen and the Art of Archery" -msgid_plural "copies of Zen and the Art of Archery" -msgstr[0] "本(学習/禅と弓術)" +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" +msgstr[0] "汎用ハードカバーフィクション本" -#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies -#. of Zen and the Art of Archery'} +#. ~ Description for Generic Hard Bound Fiction Book #: lang/json/BOOK_from_json.py -msgid "" -"This massive book contains a wealth of vital information for the novice " -"archer." -msgstr "弓術を始めたばかりの射手に必要な情報が網羅された分厚い本です。" +msgid "Template for hard bound book of fiction" +msgstr "ハードカバーのフィクション本のテンプレートです。" #: lang/json/BOOK_from_json.py -msgid "car buyer's guide" -msgid_plural "car buyer's guides" -msgstr[0] "本(学習/カーバイヤーズガイド)" +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "ペーパーバック小説" -#. ~ Description for {'str': "car buyer's guide"} +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#: lang/json/BOOK_from_json.py +msgid "An ordinary paperback book. Or is it? It is." +msgstr "一般的なペーパーバック本です。本当に?本当です。" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Book" +msgid_plural "Nonfiction Books" +msgstr[0] "ノンフィクション本" + +#. ~ Description for Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for hard bound nonfiction book" +msgstr "ハードカバーのノンフィクション本のテンプレートです。" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Paperback" +msgid_plural "Nonfiction Paperbacks" +msgstr[0] "ペーパーバックノンフィクション本" + +#. ~ Description for Nonfiction Paperback +#: lang/json/BOOK_from_json.py +msgid "template for a paperback nonfiction book" +msgstr "ペーパーバックのノンフィクション本のテンプレートです。" + +#: lang/json/BOOK_from_json.py +msgid "Homemaking Book" +msgid_plural "Homemaking Books" +msgstr[0] "家庭科本" + +#. ~ Description for Homemaking Book #: lang/json/BOOK_from_json.py msgid "" -"Normally this glossy, ad-filled magazine about cars would be pointless, but " -"it has a series of articles on haggling techniques." -msgstr "普通なら体裁の良い乗用車の広告が満載の雑誌など無価値ですが、この雑誌には交渉技術に関する一連の記事が掲載されています。" +"This is a template for books about homemaking, style, home decor, and home " +"economics." +msgstr "家庭科分野のレシピや室内装飾、家計に関する本のテンプレートです。" #: lang/json/BOOK_from_json.py -msgid "How to Succeed in Business" -msgid_plural "copies of How to Succeed in Business" -msgstr[0] "本(学習/ビジネス成功術)" +msgid "Hardcover Cookbook" +msgid_plural "Hardcover Cookbooks" +msgstr[0] "ハードカバー料理本" -#. ~ Description for {'str': 'How to Succeed in Business', 'str_pl': 'copies -#. of How to Succeed in Business'} +#. ~ Description for Hardcover Cookbook +#. ~ Description for Softcover Cookbook #: lang/json/BOOK_from_json.py -msgid "Useful if you want to get a good deal when purchasing goods." -msgstr "商品を値切って多く仕入れる方法などが書かれた本です。" +msgid "This is a template for books about cooking." +msgstr "料理に関する本のテンプレートです。" #: lang/json/BOOK_from_json.py -msgid "Advanced Economics" -msgid_plural "copies of Advanced Economics" -msgstr[0] "本(学習/上級経済学)" +msgid "Softcover Cookbook" +msgid_plural "Softcover Cookbooks" +msgstr[0] "ソフトカバー料理本" -#. ~ Description for {'str': 'Advanced Economics', 'str_pl': 'copies of -#. Advanced Economics'} #: lang/json/BOOK_from_json.py -msgid "A college textbook on economics." -msgstr "大学で扱う経済についての教科書です。" +msgid "dodge skillbook abstract" +msgid_plural "dodge skillbook abstracts" +msgstr[0] "汎用回避スキル本" +#. ~ Description for dodge skillbook abstract #: lang/json/BOOK_from_json.py -msgid "Batter Up!" -msgid_plural "issues of Batter Up!" -msgstr[0] "本(学習/バッターアップ!)" +msgid "An ordinary book. Or is it? It is." +msgstr "一般的な本です。本当に?本当です。" -#. ~ Description for {'str': 'Batter Up!', 'str_pl': 'issues of Batter Up!'} +#: lang/json/BOOK_from_json.py +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" +msgstr[0] "ハードカバー哲学本" + +#. ~ Description for Hardcover Philosophy +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about philosophy." +msgstr "哲学に関する本のテンプレートです。" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" +msgstr[0] "ソフトカバー哲学本" + +#. ~ Description for Softcover Philosophy. +#: lang/json/BOOK_from_json.py +msgid "This is a template for paperbacks about philosophy." +msgstr "哲学に関するペーパーバック本のテンプレートです。" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" +msgstr[0] "ハードカバースポーツ本" + +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. +#: lang/json/BOOK_from_json.py +msgid "This is a template." +msgstr "こてはテンプレートです。" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "汎用ソフトカバースポーツ本" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "ハードカバースポーツ小説本" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "ソフトカバースポーツ小説本" + +#: lang/json/BOOK_from_json.py +msgid "template for mass produced books on esoteric subjects" +msgid_plural "template for mass produced books on esoteric subjectss" +msgstr[0] "秘伝書テンプレート" + +#. ~ Description for template for mass produced books on esoteric subjects #: lang/json/BOOK_from_json.py msgid "" -"A baseball magazine that focuses on batting tips. There are lots of " -"colorful, full-page photos of skilled athletes demonstrating proper form and" -" technique." +"An ordinary paperback book. Or is it? Is that a glimmer of higher truth?" +msgstr "一般的なペーパーバック本です。本当に?より高度な技術が載っているのでは?" + +#: lang/json/BOOK_from_json.py +msgid "Sweet Providence Romance Novel" +msgid_plural "Sweet Providence Romance Novels" +msgstr[0] "ロマンス小説(Sweet Providence社)" + +#. ~ Description for Sweet Providence Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is a publisher of discount romance paperbacks easily " +"recognized by their blue and yellow cover illustrations. Despite the adult " +"nature of their subject matter, the books tend to be under 250 pages of " +"large print written in a vocabulary consistent with a 4th grade reading " +"level." msgstr "" -"バッティングのヒントが特集されている野球雑誌です。熟練のプロ選手による、適切なフォームと技術の実演が大きなカラー写真でたくさん載っています。" +"Sweet Providence " +"Booksは、青色と黄色の表紙とイラストが特徴的な、ロマンス小説を値引き価格で販売している出版社です。大人向けの内容を謳っているにもかかわらず、250ページ以上の大活字本ばかり出版しており、どのストーリーも小学4年生の読解力に合わせた語彙で書かれています。" #: lang/json/BOOK_from_json.py -msgid "tactical baton defense manual" -msgid_plural "tactical baton defense manuals" -msgstr[0] "本(学習/実践棒術防衛マニュアル)" +msgid "Lorn and Loan Romance Novel" +msgid_plural "Lorn and Loan Romance Novels" +msgstr[0] "ロマンス小説(Lorn and Loan社)" -#. ~ Description for {'str': 'tactical baton defense manual'} +#. ~ Description for Lorn and Loan Romance Novel #: lang/json/BOOK_from_json.py msgid "" -"An informative guide to self-defense using clubs and batons. Aimed at the " -"law enforcement and military market, it is packed with time tested, no-" -"nonsense information and written to be understandable for beginners." +"Lorn and Loan Press marketed romance paperbacks to a variety of alt " +"demographics, especially those with a penchant for eyeliner. The books are " +"billed as \"provocative,\" but words like \"malingering\" and \"turgid\" " +"also come to mind." msgstr "" -"棍棒や警棒を使った自己防衛について書かれた有益なガイドブックです。法執行機関や軍事市場向けの十分な時間を掛けて検証された現実的な情報が豊富に載っており、初心者でも理解しやすいように書かれています。" +"Lorn and Loan " +"Pressは様々な読者の中でも、特にアイライナーに拘りを持っている層に向けてロマンス小説のペーパーバック本を売り出している出版社です。「挑発的」な内容を謳っていますが、実際に読むと「あらすじ詐欺」、「誇大広告」といった言葉が頭に浮かびます。" #: lang/json/BOOK_from_json.py -msgid "SICP" -msgid_plural "copies of SICP" -msgstr[0] "本(学習/計算機プログラムの構造と解釈)" +msgid "Vanilla Romance Novel" +msgid_plural "Vanilla Romance Novels" +msgstr[0] "ロマンス小説(Vanilla社)" -#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#. ~ Description for Vanilla Romance Novel #: lang/json/BOOK_from_json.py msgid "" -"A classic text, \"The Structure and Interpretation of Computer Programs.\" " -"Written with examples in LISP, but applicable to any language." -msgstr "定評のある学習書です。LISPについて書かれていますが、他のコンピュータ言語にも応用できます。" +"Vanilla Media is a mainstream publisher providing romantic literature to " +"everyday readers of taste. These stories contain explicit details only in " +"the odd chapters, and invariably end with a conventionally uplifting moral." +msgstr "" +"Vanilla " +"Mediaは、一般的な趣味を持つ読者に向けて恋愛文学を販売している大手出版社です。奇数章にのみ露骨な描写が含まれており、どの物語も大抵は道徳的なエンディングを迎える点が特徴です。" #: lang/json/BOOK_from_json.py -msgid "Computer Science 301" -msgid_plural "copies of Computer Science 301" -msgstr[0] "本(学習/コンピュータ科学301)" +msgid "The Everyman Library" +msgid_plural "The Everyman Librarys" +msgstr[0] "Everyman Libraryの本" -#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of -#. Computer Science 301'} +#. ~ Description for The Everyman Library #: lang/json/BOOK_from_json.py -msgid "A college textbook on computer science." -msgstr "大学で扱うコンピュータ科学についての教科書です。" +msgid "" +"The Everyman Library is an imprint of Vanilla Media that publishes stories " +"about private eyes, cowboys, quarterbacks, and mobsters." +msgstr "" +"Everyman LibraryはVanilla " +"Media社の傘下にあるレーベルで、私立探偵、カウボーイ、アメフト、マフィアに関する小説を出版しています。" #: lang/json/BOOK_from_json.py -msgid "How to Browse the Web" -msgid_plural "copies of How to Browse the Web" -msgstr[0] "本(学習/インターネット入門)" +msgid "Tween Topics" +msgid_plural "Tween Topicss" +msgstr[0] "Tween Topicsの本" -#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How -#. to Browse the Web'} +#. ~ Description for Tween Topics #: lang/json/BOOK_from_json.py -msgid "Very beginner-level information about computers." -msgstr "コンピュータについての常識レベルの情報が書かれた本です。" +msgid "" +"Tween Topics is an imprint of Vanilla Media that publishes stories that " +"appeal to the youth of today. Or, failing that, the parents of said youth." +msgstr "" +"Tween TopicsはVanilla Media社の傘下にあるレーベルで、現代の若者、あるいはその親をターゲットにした小説を出版しています。" #: lang/json/BOOK_from_json.py -msgid "Computer World" -msgid_plural "issues of Computer World" -msgstr[0] "本(学習/コンピュータワールド)" +msgid "Quiddity Books" +msgid_plural "Quiddity Bookss" +msgstr[0] "Quiddity Books社の本" -#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer -#. World'} +#. ~ Description for Quiddity Books #: lang/json/BOOK_from_json.py msgid "" -"An informative magazine all about computers, both hardware and software." -msgstr "ハードウェアとソフトウェアを含む、全てのコンピュータに関する情報を提供する雑誌です。" +"Quiddity publishes books for young adults. They offer stories about self-" +"discovery, personal identity, and contemporary trends." +msgstr "Quiddity社はヤングアダルト向けの書籍を出版しています。自分探し、アイデンティティ、現代の流行をテーマにした小説を提供しています。" #: lang/json/BOOK_from_json.py -msgid "Computer Science 101" -msgid_plural "copies of Computer Science 101" -msgstr[0] "本(学習/コンピュータ科学101)" +msgid "Satire Template" +msgid_plural "Satire Templates" +msgstr[0] "風刺小説テンプレート" -#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of -#. Computer Science 101'} +#. ~ Description for Satire Template #: lang/json/BOOK_from_json.py -msgid "An entry-level textbook about computers." -msgstr "初学者向けのコンピュータについての学習書です。" +msgid "template for mass produced satirical fiction" +msgstr "市販されている風刺小説のテンプレートです。" #: lang/json/BOOK_from_json.py -msgid "Principles of Advanced Programming" -msgid_plural "copies of Principles of Advanced Programming" -msgstr[0] "本(学習/上級プログラミング原論)" +msgid "Magazine Template" +msgid_plural "Magazine Templates" +msgstr[0] "雑誌テンプレート" -#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': -#. 'copies of Principles of Advanced Programming'} +#. ~ Description for Magazine Template #: lang/json/BOOK_from_json.py -msgid "" -"A heavy textbook dedicated to advanced-level software design, written for " -"several different programming languages." -msgstr "複数のプログラミング言語ごとに、高度なソフトウェア設計手法を説明した専門の教科書です。" +msgid "template for magazine" +msgstr "雑誌のテンプレートです。" #: lang/json/BOOK_from_json.py -msgid "Advanced Physical Chemistry" -msgid_plural "copies of Advanced Physical Chemistry" -msgstr[0] "本(学習/上級物理化学)" +msgid "News Magazine Template" +msgid_plural "News Magazine Templates" +msgstr[0] "時事週刊誌テンプレート" -#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies -#. of Advanced Physical Chemistry'} +#. ~ Description for News Magazine Template #: lang/json/BOOK_from_json.py -msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." -msgstr "無機化学及び有機化学について、発展的な原理が記された大学レベルの教科書です。" +msgid "template for news magazine" +msgstr "時事週刊誌のテンプレートです。" #: lang/json/BOOK_from_json.py -msgid "The Homebrewer's Bible" -msgid_plural "copies of The Homebrewer's Bible" -msgstr[0] "本(学習/自家醸造辞典)" +msgid "readable magazine" +msgid_plural "readable magazines" +msgstr[0] "雑誌" -#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of -#. The Homebrewer's Bible"} #: lang/json/BOOK_from_json.py -msgid "" -"A book full of easy-to-follow recipes and useful advice on homebrewing, " -"malting, and fermenting. It even smells faintly of booze." -msgstr "自家醸造の分かりやすいレシピや、発酵や蒸留に関する役立つアドバイスがたくさん載った本です。ほのかな酒の匂いが染み付いています。" +msgid "archery skill training abstract" +msgid_plural "archery skill training abstracts" +msgstr[0] "汎用弓スキル本" +#. ~ Description for archery skill training abstract #: lang/json/BOOK_from_json.py -msgid "Cooking on a Budget" -msgid_plural "copies of Cooking on a Budget" -msgstr[0] "本(学習/低予算クッキング)" +msgid "template for heavy books that confer archery skill training" +msgstr "弓スキルを鍛える分厚い本のテンプレートです。" -#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of -#. Cooking on a Budget'} +#: lang/json/BOOK_from_json.py +msgid "Lessons for the Novice Bowhunter" +msgid_plural "copies of Lessons for the Novice Bowhunter" +msgstr[0] "本(学習/狩人初心者に贈る教訓)" + +#. ~ Description for {'str': 'Lessons for the Novice Bowhunter', 'str_pl': +#. 'copies of Lessons for the Novice Bowhunter'} #: lang/json/BOOK_from_json.py msgid "" -"A nice cook book that goes beyond recipes and into the chemistry of food." -msgstr "レシピだけではなく食品化学についても載っている、素敵な料理本です。" +"This hefty paperback book contains all the information needed for novice " +"archers to get started hunting with a variety of bows and crossbows." +msgstr "この分厚いペーパーバックの本には、弓やクロスボウの初心者が狩りを行うのに必要な情報が網羅されています。" #: lang/json/BOOK_from_json.py -msgid "To Serve Man" -msgid_plural "copies of To Serve Man" -msgstr[0] "本(学習/人類饗応法)" +msgid "Zen and the Art of Archery" +msgid_plural "copies of Zen and the Art of Archery" +msgstr[0] "本(学習/禅と弓術)" -#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve -#. Man'} +#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies +#. of Zen and the Art of Archery'} #: lang/json/BOOK_from_json.py -msgid "It's… it's a cookbook!" -msgstr "これは...まさか...料理本!?" +msgid "" +"This massive book contains a wealth of vital information for the novice " +"archer." +msgstr "弓術を始めたばかりの射手に必要な情報が網羅された分厚い本です。" #: lang/json/BOOK_from_json.py -msgid "Cucina Italiana" -msgid_plural "copies of Cucina Italiana" -msgstr[0] "本(学習/クッチーナイタリア)" +msgid "Archery for Kids" +msgid_plural "issues of Archery for Kids" +msgstr[0] "本(学習/子供向け弓術)" -#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina -#. Italiana'} +#. ~ Description for {'str': 'Archery for Kids', 'str_pl': 'issues of Archery +#. for Kids'} #: lang/json/BOOK_from_json.py msgid "" -"This cookbook is written in Italian, but handily illustrated with step by " -"step photo instructions." -msgstr "この料理本はイタリア語で書かれていますが、手順が写真によって分かりやすく解説されています。" +"Will you be able to place the arrow right into the bullseye? It is not that" +" easy, but once you know how it's done, you will have a lot of fun with " +"archery." +msgstr "君は的の中心に矢を当てられますか?もちろん、それは簡単な事ではありません。しかし、弓術を正しく学べば、多くの楽しみが待っていますよ。" #: lang/json/BOOK_from_json.py -msgid "Sushi Made Easy" -msgid_plural "copies of Sushi Made Easy" -msgstr[0] "本(学習/簡単な寿司の握り方)" +msgid "car buyer's guide" +msgid_plural "car buyer's guides" +msgstr[0] "本(学習/カーバイヤーズガイド)" -#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi -#. Made Easy'} +#. ~ Description for {'str': "car buyer's guide"} #: lang/json/BOOK_from_json.py msgid "" -"A simple text for the aspiring sushi lover, this easy to read guide is " -"filled with lots of helpful illustrations for everything from basic rice " -"preparation to setting a proper Japanese table." -msgstr "" -"向上心のある寿司愛好家のための基本的なガイドブックです。米の炊き方から日本式のテーブルマナーに至るまで、豊富なイラストによって分かりやすく解説されています。" +"Normally this glossy, ad-filled magazine about cars would be pointless, but " +"it has a series of articles on haggling techniques." +msgstr "普通なら体裁の良い乗用車の広告が満載の雑誌など無価値ですが、この雑誌には交渉技術に関する一連の記事が掲載されています。" #: lang/json/BOOK_from_json.py -msgid "family cookbook" -msgid_plural "family cookbooks" -msgstr[0] "本(学習/家庭のレシピ)" +msgid "How to Succeed in Business" +msgid_plural "copies of How to Succeed in Business" +msgstr[0] "本(学習/ビジネス成功術)" -#. ~ Description for {'str': 'family cookbook'} +#. ~ Description for {'str': 'How to Succeed in Business', 'str_pl': 'copies +#. of How to Succeed in Business'} +#: lang/json/BOOK_from_json.py +msgid "Useful if you want to get a good deal when purchasing goods." +msgstr "商品を値切って多く仕入れる方法などが書かれた本です。" + +#: lang/json/BOOK_from_json.py +msgid "Advanced Economics" +msgid_plural "copies of Advanced Economics" +msgstr[0] "本(学習/上級経済学)" + +#. ~ Description for {'str': 'Advanced Economics', 'str_pl': 'copies of +#. Advanced Economics'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on economics." +msgstr "大学で扱う経済についての教科書です。" + +#: lang/json/BOOK_from_json.py +msgid "Batter Up!" +msgid_plural "issues of Batter Up!" +msgstr[0] "本(学習/バッターアップ!)" + +#. ~ Description for {'str': 'Batter Up!', 'str_pl': 'issues of Batter Up!'} #: lang/json/BOOK_from_json.py msgid "" -"A big binder full of somebody's family recipes. The well-turned pages and " -"creased corners speak volumes of the culinary knowledge contained within. " -"You could probably learn a lot about cooking from studying this domestic " -"artifact." +"A baseball magazine that focuses on batting tips. There are lots of " +"colorful, full-page photos of skilled athletes demonstrating proper form and" +" technique." msgstr "" -"どこかの家の自家製レシピを満載した大きなバインダーです。その何度も捲られたページや皺のよった角が、込められた料理知識の厚みを物語っています。この家庭的な一大著作からは料理に関する多くの知識を得られるでしょう。" +"バッティングのヒントが特集されている野球雑誌です。熟練のプロ選手による、適切なフォームと技術の実演が大きなカラー写真でたくさん載っています。" #: lang/json/BOOK_from_json.py -msgid "Bon Appetit" -msgid_plural "issues of Bon Appetit" -msgstr[0] "本(学習/ボナペティ)" +msgid "tactical baton defense manual" +msgid_plural "tactical baton defense manuals" +msgstr[0] "本(学習/実践棒術防衛マニュアル)" -#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#. ~ Description for {'str': 'tactical baton defense manual'} #: lang/json/BOOK_from_json.py msgid "" -"Exciting recipes and restaurant reviews. Full of handy tips about cooking." -msgstr "美味しそうなレシピやレストランのレビューが書かれた本です。料理の有益なヒントがたくさん載っています。" +"An informative guide to self-defense using clubs and batons. Aimed at the " +"law enforcement and military market, it is packed with time tested, no-" +"nonsense information and written to be understandable for beginners." +msgstr "" +"棍棒や警棒を使った自己防衛について書かれた有益なガイドブックです。法執行機関や軍事市場向けの十分な時間を掛けて検証された現実的な情報が豊富に載っており、初心者でも理解しやすいように書かれています。" #: lang/json/BOOK_from_json.py -msgid "Glamopolitan" -msgid_plural "issues of Glamopolitan" -msgstr[0] "本(学習/グラモポリタン)" +msgid "Advanced Physical Chemistry" +msgid_plural "copies of Advanced Physical Chemistry" +msgstr[0] "本(学習/上級物理化学)" -#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of -#. Glamopolitan'} +#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies +#. of Advanced Physical Chemistry'} #: lang/json/BOOK_from_json.py msgid "" -"This is a full-size glossy women's magazine. There are a few unoriginal " -"recipes and some simple cooking tips somewhere in between the fashion photos" -" and the sex advice columns." -msgstr "紙質の良い規格判の女性誌です。独創性に欠けるレシピと簡単な料理のヒントが、ファッション写真やセックス講座などの記事に紛れて載っています。" +"A university-level textbook on advanced principles of physical chemistry and" +" all its branches: thermochemistry, electrochemistry, solid-state chemistry," +" photochemistry, quantum chemistry et cetera." +msgstr "" #: lang/json/BOOK_from_json.py msgid "The Modern Tanner" @@ -22490,6 +22352,236 @@ msgid "" msgstr "" "様々な技術分野に関連するデータや数式が掲載された、分厚いハードカバー本です。化学や物理に関するデータを熟読するのが好きな人にはうってつけの本です。" +#: lang/json/BOOK_from_json.py +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" +msgstr[0] "本(学習/化学を学ぶ)" + +#. ~ Description for {'str': 'chemistry textbook'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on chemistry." +msgstr "大学で扱う化学についての教科書です。" + +#: lang/json/BOOK_from_json.py +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" +msgstr[0] "本(学習/精油愛好家の手引き)" + +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', +#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" +msgstr "精油や精油の製作に必要な機械の作り方を図を交えて解説している、重厚なハードカバー本です。爆発させないように慎重に作りましょう!" + +#: lang/json/BOOK_from_json.py +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" +msgstr[0] "本(学習/化学兵器の技術と知識)" + +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': +#. 'copies of Art and Science of Chemical Warfare'} +#: lang/json/BOOK_from_json.py +msgid "" +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at" +" times, though the information is top-notch." +msgstr "" +"ここ1世紀における種々の化学兵器の設計、開発、普及と運用、そして防衛について徹底的に解説した技術書です。著者が選んだ写真の中には見るに堪えないものが何枚か混じっていますが、得られる情報は一級品です。" + +#: lang/json/BOOK_from_json.py +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" +msgstr[0] "" + +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments +#. that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science +#. Experiments that Really Work'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book with comprehensive and accurate step-by-step illustrated instructions" +" for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "SICP" +msgid_plural "copies of SICP" +msgstr[0] "本(学習/計算機プログラムの構造と解釈)" + +#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#: lang/json/BOOK_from_json.py +msgid "" +"A classic text, \"The Structure and Interpretation of Computer Programs.\" " +"Written with examples in LISP, but applicable to any language." +msgstr "定評のある学習書です。LISPについて書かれていますが、他のコンピュータ言語にも応用できます。" + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 301" +msgid_plural "copies of Computer Science 301" +msgstr[0] "本(学習/コンピュータ科学301)" + +#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of +#. Computer Science 301'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on computer science." +msgstr "大学で扱うコンピュータ科学についての教科書です。" + +#: lang/json/BOOK_from_json.py +msgid "How to Browse the Web" +msgid_plural "copies of How to Browse the Web" +msgstr[0] "本(学習/インターネット入門)" + +#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How +#. to Browse the Web'} +#: lang/json/BOOK_from_json.py +msgid "Very beginner-level information about computers." +msgstr "コンピュータについての常識レベルの情報が書かれた本です。" + +#: lang/json/BOOK_from_json.py +msgid "Computer World" +msgid_plural "issues of Computer World" +msgstr[0] "本(学習/コンピュータワールド)" + +#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer +#. World'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative magazine all about computers, both hardware and software." +msgstr "ハードウェアとソフトウェアを含む、全てのコンピュータに関する情報を提供する雑誌です。" + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 101" +msgid_plural "copies of Computer Science 101" +msgstr[0] "本(学習/コンピュータ科学101)" + +#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of +#. Computer Science 101'} +#: lang/json/BOOK_from_json.py +msgid "An entry-level textbook about computers." +msgstr "初学者向けのコンピュータについての学習書です。" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Advanced Programming" +msgid_plural "copies of Principles of Advanced Programming" +msgstr[0] "本(学習/上級プログラミング原論)" + +#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': +#. 'copies of Principles of Advanced Programming'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy textbook dedicated to advanced-level software design, written for " +"several different programming languages." +msgstr "複数のプログラミング言語ごとに、高度なソフトウェア設計手法を説明した専門の教科書です。" + +#: lang/json/BOOK_from_json.py +msgid "The Homebrewer's Bible" +msgid_plural "copies of The Homebrewer's Bible" +msgstr[0] "本(学習/自家醸造辞典)" + +#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of +#. The Homebrewer's Bible"} +#: lang/json/BOOK_from_json.py +msgid "" +"A book full of easy-to-follow recipes and useful advice on homebrewing, " +"malting, and fermenting. It even smells faintly of booze." +msgstr "自家醸造の分かりやすいレシピや、発酵や蒸留に関する役立つアドバイスがたくさん載った本です。ほのかな酒の匂いが染み付いています。" + +#: lang/json/BOOK_from_json.py +msgid "Cooking on a Budget" +msgid_plural "copies of Cooking on a Budget" +msgstr[0] "本(学習/低予算クッキング)" + +#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of +#. Cooking on a Budget'} +#: lang/json/BOOK_from_json.py +msgid "" +"A nice cook book that goes beyond recipes and into the chemistry of food." +msgstr "レシピだけではなく食品化学についても載っている、素敵な料理本です。" + +#: lang/json/BOOK_from_json.py +msgid "To Serve Man" +msgid_plural "copies of To Serve Man" +msgstr[0] "本(学習/人類饗応法)" + +#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve +#. Man'} +#: lang/json/BOOK_from_json.py +msgid "It's… it's a cookbook!" +msgstr "これは...まさか...料理本!?" + +#: lang/json/BOOK_from_json.py +msgid "Cucina Italiana" +msgid_plural "copies of Cucina Italiana" +msgstr[0] "本(学習/クッチーナイタリア)" + +#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina +#. Italiana'} +#: lang/json/BOOK_from_json.py +msgid "" +"This cookbook is written in Italian, but handily illustrated with step by " +"step photo instructions." +msgstr "この料理本はイタリア語で書かれていますが、手順が写真によって分かりやすく解説されています。" + +#: lang/json/BOOK_from_json.py +msgid "Sushi Made Easy" +msgid_plural "copies of Sushi Made Easy" +msgstr[0] "本(学習/簡単な寿司の握り方)" + +#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi +#. Made Easy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A simple text for the aspiring sushi lover, this easy to read guide is " +"filled with lots of helpful illustrations for everything from basic rice " +"preparation to setting a proper Japanese table." +msgstr "" +"向上心のある寿司愛好家のための基本的なガイドブックです。米の炊き方から日本式のテーブルマナーに至るまで、豊富なイラストによって分かりやすく解説されています。" + +#: lang/json/BOOK_from_json.py +msgid "family cookbook" +msgid_plural "family cookbooks" +msgstr[0] "本(学習/家庭のレシピ)" + +#. ~ Description for {'str': 'family cookbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A big binder full of somebody's family recipes. The well-turned pages and " +"creased corners speak volumes of the culinary knowledge contained within. " +"You could probably learn a lot about cooking from studying this domestic " +"artifact." +msgstr "" +"どこかの家の自家製レシピを満載した大きなバインダーです。その何度も捲られたページや皺のよった角が、込められた料理知識の厚みを物語っています。この家庭的な一大著作からは料理に関する多くの知識を得られるでしょう。" + +#: lang/json/BOOK_from_json.py +msgid "Bon Appetit" +msgid_plural "issues of Bon Appetit" +msgstr[0] "本(学習/ボナペティ)" + +#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#: lang/json/BOOK_from_json.py +msgid "" +"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +msgstr "美味しそうなレシピやレストランのレビューが書かれた本です。料理の有益なヒントがたくさん載っています。" + +#: lang/json/BOOK_from_json.py +msgid "Glamopolitan" +msgid_plural "issues of Glamopolitan" +msgstr[0] "本(学習/グラモポリタン)" + +#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of +#. Glamopolitan'} +#: lang/json/BOOK_from_json.py +msgid "" +"This is a full-size glossy women's magazine. There are a few unoriginal " +"recipes and some simple cooking tips somewhere in between the fashion photos" +" and the sex advice columns." +msgstr "紙質の良い規格判の女性誌です。独創性に欠けるレシピと簡単な料理のヒントが、ファッション写真やセックス講座などの記事に紛れて載っています。" + #. ~ That would translate out to The Scottish Book of Cookery, or The Scottish #. Cookbook. #: lang/json/BOOK_from_json.py @@ -22502,23 +22594,11 @@ msgstr[0] "本(学習/伝統的なスコットランド料理)" #. 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of" +" people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." msgstr "" -"13世紀のスコットランドの料理書の一部を現代語に翻訳した本です。血みどろの殺し合いをする人々のイラストがレシピに混じって掲載されているため少々読み辛いですが、オートミール、魚、羊の肝臓の新しい利用法に加えて、中世スコットランドの文化や服飾についても考察できそうです。" - -#: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" -msgstr[0] "本(学習/化学を学ぶ)" - -#. ~ Description for {'str': 'chemistry textbook'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." -msgstr "大学で扱う化学についての教科書です。" #: lang/json/BOOK_from_json.py msgid "The Vinegar Maker's Handbook" @@ -22704,16 +22784,16 @@ msgstr "" "料理の手法としての発酵は、大変動以前に再び流行し始めていました。この本には何十種類ものレシピが掲載されており、その中にはもう二度とお目にかかれそうにない食材もたくさんあります。" #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" -msgstr[0] "本(学習/渓から家へ: 家庭蒸留ガイド)" +msgstr[0] "" #. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to -#. home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " -"chapter contains a complete recipe for it's namesake." +"chapter contains a complete recipe for its namesake." msgstr "家庭で蒸留する酒の歴史を記した本です。酒のレシピが網羅されています。" #: lang/json/BOOK_from_json.py @@ -22741,7 +22821,7 @@ msgstr[0] "本(学習/ポケットサバイバルクッキング)" #: lang/json/BOOK_from_json.py msgid "" "The smallest cookbook on the market, marketed exclusively to the " -"outdoorsman. Packs a surprising number of recipes for it's tiny size." +"outdoorsman. Packs a surprising number of recipes for its tiny size." msgstr "野外活動愛好家向けに売られている、ニッチな料理本です。小さな本ですが、驚くべき数のレシピが掲載されています。" #: lang/json/BOOK_from_json.py @@ -22831,6 +22911,21 @@ msgstr[0] "本(学習/晴れ舞台!)" msgid "The Kids' Guide to Acting and Stagecraft." msgstr "演技と作劇法に関する子供向けの入門書です。" +#: lang/json/BOOK_from_json.py +msgid "Treasury of Legends about Western Dancing" +msgid_plural "copies of Western Dancing" +msgstr[0] "本(学習/西部の舞踏伝説)" + +#. ~ Description for {'str': 'Treasury of Legends about Western Dancing', +#. 'str_pl': 'copies of Western Dancing'} +#: lang/json/BOOK_from_json.py +msgid "" +"Written by Emanuel Nogueira, a constabulario and historian of Nuevo Laredo, " +"this massive book details the movements and cultural legacies of a variety " +"of North American folk dances." +msgstr "" +"メキシコはヌエボ・ラレドの警察官であり歴史家でもあるエマヌエル・ノゲイラが著したこの分厚い本は、北アメリカの様々なフォークダンスの動きと文化的価値について詳細に解説しています。" + #: lang/json/BOOK_from_json.py msgid "AAA Guide" msgid_plural "copies of AAA Guide" @@ -23461,22 +23556,6 @@ msgid "" "save lives." msgstr "人命救助の技術に焦点を当て、古代から近代にかけての消防隊の歴史を詳しく記した技術書です。" -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "本(学習/化学兵器の技術と知識)" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': -#. 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at" -" times, though the information is top-notch." -msgstr "" -"ここ1世紀における種々の化学兵器の設計、開発、普及と運用、そして防衛について徹底的に解説した技術書です。著者が選んだ写真の中には見るに堪えないものが何枚か混じっていますが、得られる情報は一級品です。" - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" @@ -23596,20 +23675,6 @@ msgid "" msgstr "" "材料、計測、工具製作、装置、通板などに関する広範囲に渡る内容が、章ごとに表を交えて詳細に記された古典的な便覧です。これは最新版であり、最新の3Dプリント技術についての様々なデータも掲載されています。特定の加工操作をどのように進めるのが最善か知りたいなら、この本のどこかに答えが載っています。" -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "本(学習/精油愛好家の手引き)" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', -#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "精油や精油の製作に必要な機械の作り方を図を交えて解説している、重厚なハードカバー本です。爆発させないように慎重に作りましょう!" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -23889,6 +23954,19 @@ msgstr[0] "本(学習/バイオディーゼル: 再生可能エネルギー資 msgid "A large textbook for college students about biodiesel." msgstr "大学生用の大きな教科書です。バイオディーゼルについて詳しく書かれています。" +#: lang/json/BOOK_from_json.py +msgid "Hot Rod Chassis & Suspension Handbook" +msgid_plural "copies of Hot Rod Handbook" +msgstr[0] "本(学習/ホットなシャシー&サスペンション指南)" + +#. ~ Description for {'str': 'Hot Rod Chassis & Suspension Handbook', +#. 'str_pl': 'copies of Hot Rod Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"By learning the fundamentals of chassis building and suspension design you " +"will gain the critical knowledge needed to hot rod properly." +msgstr "車両のシャシー構築とサスペンション設計の基礎を学ぶことで、ホットロッドに必要な知識を正しく身につけられます。" + #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" msgid_plural "copies of Mechanical Mastery" @@ -23927,16 +24005,6 @@ msgid "" "techniques for close quarters combat encounters." msgstr "近接戦闘を行う際の簡単な戦略と技術について解説された、年季の入ったハードカバー本です。" -#: lang/json/BOOK_from_json.py -msgid "paperback abstract" -msgid_plural "paperback abstracts" -msgstr[0] "汎用ペーパーバック本" - -#. ~ Description for {'str': 'paperback abstract'} -#: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." -msgstr "一般的なペーパーバック本です。本当に?本当です。" - #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" msgid_plural "copies of Zombie Survival Guide" @@ -23961,19 +24029,6 @@ msgid "" "A full flight log for a military aircraft. Nothing of interest stands out." msgstr "軍用航空機のフライト記録です。興味を引くような記述はありません。" -#: lang/json/BOOK_from_json.py -msgid "children's book" -msgid_plural "children's books" -msgstr[0] "本(一般/絵本)" - -#. ~ Description for {'str': "children's book"} -#: lang/json/BOOK_from_json.py -msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the dead walked" -" and the world moved on." -msgstr "子供が読む事を想定した小さな本です。色鮮やかな漫画のキャラクターや優しい物語は、死者が歩き回る今の世界とは別次元のものに思えます。" - #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" msgid_plural "Ranch Prospectus" @@ -24005,157 +24060,6 @@ msgid "" "works by Churchill, Mailer, Eco, and Voltaire." msgstr "チャーチルやメーラー、エーコやヴォルテールなどの作品を含む、世界中の様々な著者のエッセイを集めた資料本です。" -#: lang/json/BOOK_from_json.py -msgid "book of fairy tales" -msgid_plural "books of fairy tales" -msgstr[0] "本(一般/童話)" - -#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy -#. tales'} -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of folklore featuring the usual cast of fairies, " -"goblins, and trolls." -msgstr "妖精やゴブリン、トロールなど良く知られた存在に注目した、民間伝承を集めた楽しい資料本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale is about a wolf who eats so much salted meat she becomes " -"trapped in the butcher's cellar." -msgstr "塩漬け肉を大量に食べるオオカミが肉屋の地下室に閉じ込められる、という内容の童話です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this traditional story of beastly intrigue a clever fox convinces an " -"elderly lion to kill a derogatory wolf." -msgstr "悪巧みする動物についての伝統的な童話です。賢いキツネが老いたライオンに対して、悪評高いオオカミを殺すよう説得します。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is an illustrated fairy tale book about a conversation between a mouse " -"and a cat." -msgstr "ネズミとネコが会話する童話の絵本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of stories featuring \"Goldilocks and The Three " -"Bears\" on the cover." -msgstr "表紙に「ゴルディロックスと3匹のくま」を表す絵が描かれた微笑ましい童話集です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a well illustrated fairy tale about a war between the birds and the " -"beasts, with particulars on the wartime conduct and eventual fate of the " -"bat." -msgstr "鳥と獣の間で起こった戦争中にコウモリがとった行動と末路について記した、有名な童話です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " -"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" -" page." -msgstr "チェロキー族に伝わる神話と伝説が記された「ガラガラヘビの復讐」というタイトルの本です。1ページ目に鉛筆で「285D」と書かれています。" - -#: lang/json/BOOK_from_json.py -msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" -msgstr "特定の地域で伝わっている「ジャックと豆の木」に似た民話が書かれた本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale book is entitled \"Little Red Cap\". It details a red-" -"cloaked child's various encounters with talking wolves." -msgstr "「赤ずきん」というタイトルの本です。赤い頭巾を被った子供が喋るオオカミに出会う話が書かれています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of ghost stories warning about the dangers of stealing from the" -" dead." -msgstr "死者の持ち物を盗むことの危険性について警告する、幽霊についての物語です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"An Irish fairy tale in which a Celtic poet marries a princess who has been " -"cursed with the head of a pig." -msgstr "ケルト族の詩人が呪いで頭をブタに変えられた王女と結婚するという内容の、アイルランドのおとぎ話です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"A book of Italian fairy tales translated into English. The cover features " -"an orange fairy juggling a lemon, a lime, and a tangerine." -msgstr "英語に翻訳されたイタリアの童話の本です。表紙にはレモン、ライム、タンジェリンをお手玉するオレンジ色の妖精が描かれています。" - -#: lang/json/BOOK_from_json.py -msgid "A book of fables about people who change into birds." -msgstr "鳥に変身する人々について記した童話です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This compendium of amusing folk tales about the devil is titled \"Hell's " -"Kettle: Legends of the Devil.\"" -msgstr "悪魔に関する面白い民話を集めた「地獄のやかん: 悪魔の伝説」というタイトルの本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This charming book of Swedish fables is titled, \"The Glass Mountain and the" -" Princess.\"" -msgstr "スウェーデンの童話が記された「ガラスの山と王女」というタイトルのかわいらしい本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a collection of fairy tale stories warning against the consequences " -"of extreme greed." -msgstr "あまりに貪欲過ぎると酷い目に遭うことを警告する童話集です。" - -#: lang/json/BOOK_from_json.py -msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" -msgstr "「どろぼう鍋: アラブ地域の民話」というタイトルの本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a book of legends collected by Traveller Johnny Cassidy in the " -"1960s." -msgstr "1960年代に旅行家のジョニー・キャシディが収集した伝説をまとめた本です。" - -#: lang/json/BOOK_from_json.py -msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" -msgstr "グリム兄弟の「エバのふぞろいの子どもたち」です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of fables expands upon the legend of the Seven Sleepers of " -"Ephesus." -msgstr "エフェソスの七人の眠れる男たちの伝説について書いた本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this fairy tale a strong man frightens an ogre by squeezing water out of " -"a stone." -msgstr "屈強な男が岩から水を絞り出して鬼を怖がらせる童話です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of rustic folk tales bears the title: \"How to Shout Down the " -"Devil.\"" -msgstr "「悪魔の野次り倒し方」というタイトルの、素朴な民話の本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " -"fables about logical errors and foolish misjudgements of the Kadambawa men." -msgstr "「セイロン島の民話」というタイトルの本です。カダムバワに住む男性の論理的な誤りと愚かで間違った判断に関する民話が書かれています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " -"Stories.\"" -msgstr "「醜い名前の少女、および様々な童話」というタイトルの童話集です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " -"suitable for small children." -msgstr "「逃げ出したパンケーキ」というタイトルの、子供向けのひょうきんな童話です。" - #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" msgid_plural "copies of The Hitchhiker's Guide to the Cataclysm" @@ -24169,261 +24073,6 @@ msgid "" "Panic\"." msgstr "表紙には親しみやすい大きな文字で「パニクるな」と書いてあります。" -#: lang/json/BOOK_from_json.py -msgid "Mycenacean Hymns" -msgid_plural "copies of Mycenacean Hymns" -msgstr[0] "本(一般/ミカズ賛歌)" - -#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of -#. Mycenacean Hymns'} -#: lang/json/BOOK_from_json.py -msgid "" -"A vellum book containing the hymns central to Marloss faith. As the verses " -"lead to each other, the text sings of unity and promised paradise." -msgstr "マーロスの信仰の核となる讃美歌などが記された上質皮紙製の書物です。歌詞には聖句が並び、統一と約束された楽園について歌い上げています。" - -#: lang/json/BOOK_from_json.py -msgid "King James Bible" -msgid_plural "copies of King James Bible" -msgstr[0] "本(一般/聖書:欽定訳)" - -#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King -#. James Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, which originated in England " -"in the early 1600s." -msgstr "1600年代の英国が起源の、キリスト教の聖書の英訳版です。" - -#: lang/json/BOOK_from_json.py -msgid "Eastern Orthodox Bible" -msgid_plural "copies of Eastern Orthodox Bible" -msgstr[0] "本(一般/聖書:東方正教会)" - -#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of -#. Eastern Orthodox Bible'} -#: lang/json/BOOK_from_json.py -msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." -msgstr "東方正教の聖書を英訳したものです。" - -#: lang/json/BOOK_from_json.py -msgid "Gideon Bible" -msgid_plural "copies of Gideon Bible" -msgstr[0] "本(一般/聖書:ギデオン)" - -#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon -#. Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, distributed free of charge by" -" Gideons International." -msgstr "英語に翻訳されたキリスト教の聖書は、ギデオンインターナショナルが無料で配布しています。" - -#: lang/json/BOOK_from_json.py -msgid "The Guru Granth Sahib" -msgid_plural "copies of The Guru Granth Sahib" -msgstr[0] "本(一般/グル・グラント・サーヒブ)" - -#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The -#. Guru Granth Sahib'} -#: lang/json/BOOK_from_json.py -msgid "A single-volume copy of the central religious texts of Sikhism." -msgstr "シク教の中心的な宗教書である教典を一冊にまとめたものです。" - -#: lang/json/BOOK_from_json.py -msgid "Hadith" -msgid_plural "copies of Hadith" -msgstr[0] "本(一般/ハディース)" - -#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} -#: lang/json/BOOK_from_json.py -msgid "" -"A Muslim religious text containing an account of the sayings and actions of " -"the prophet Muhammad." -msgstr "預言者ムハンマドの語録や行動指針などが書かれた、イスラム教徒の教本です。" - -#: lang/json/BOOK_from_json.py -msgid "Principia Discordia" -msgid_plural "copies of Principia Discordia" -msgstr[0] "本(一般/プリンキピアディスコルディア)" - -#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of -#. Principia Discordia'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of Discordianism. It seems to " -"primarily concern chaos, and features a card in the back which informs you " -"that you are now a 'genuine and authorized Pope of Discordia'." -msgstr "" -"ディスコルディア崇拝を体現したと言われる書物です。混沌とした印象の本で、裏表紙に付いているカードには「今をもってあなたを正当なるディスコルディアの教主とする」と書かれています。" - -#: lang/json/BOOK_from_json.py -msgid "The Kojiki" -msgid_plural "copies of The Kojiki" -msgstr[0] "本(一般/古事記)" - -#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} -#: lang/json/BOOK_from_json.py -msgid "" -"The oldest extant chronicle of Japan's myths and history, the stories " -"contained in the Kojiki are part of the inspiration behind Shinto practices." -msgstr "日本に現存する最古の書物で、神話と歴史について記されています。この物語は神道の精神的源流になりました。" - -#: lang/json/BOOK_from_json.py -msgid "The Book of Mormon" -msgid_plural "copies of The Book of Mormon" -msgstr[0] "本(一般/モルモン書)" - -#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The -#. Book of Mormon'} -#: lang/json/BOOK_from_json.py -msgid "" -"The sacred text of the Latter Day Saint movement of Christianity, originally" -" published in 1830 by Joseph Smith." -msgstr "1830年にジョセフ・スミス・ジュニアによって創始された、末日聖徒イエス・キリスト教会の聖典です。" - -#: lang/json/BOOK_from_json.py -msgid "The Gospel of the Flying Spaghetti Monster" -msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" -msgstr[0] "本(一般/空飛ぶスパゲッティモンスター教の福音書)" - -#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', -#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of the Church of the Flying Spaghetti " -"Monster. It seems to involve a lot of pirates and some sort of invisible " -"drunken monster made of pasta." -msgstr "" -"空飛ぶスパゲッティモンスター教の主な信条を具体的に綴った福音書です。たくさんの海賊達や、パスタでできた大酒呑みの透明な怪物について書いてあります。" - -#: lang/json/BOOK_from_json.py -msgid "Quran" -msgid_plural "copies of Quran" -msgstr[0] "本(一般/コーラン)" - -#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Muslim book of holy scriptures, with " -"explanatory notes and commentaries to aid in understanding." -msgstr "英訳されたイスラム教の聖書です。理解を助けるための注記と解説が付いています。" - -#: lang/json/BOOK_from_json.py -msgid "Dianetics" -msgid_plural "copies of Dianetics" -msgstr[0] "本(一般/ダイアネティックス)" - -#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is the canonical text of Scientology. Written by a science " -"fiction author, it contains self-improvement techniques and musings on " -"psychology called Dianetics." -msgstr "" -"サイエントロジーの正しき教典です。あるSF作家によって執筆されたもので、ダイアネティックスと呼ばれる自己啓発の技術や心理学的思索について記されています。" - -#: lang/json/BOOK_from_json.py -msgid "The Book of the SubGenius" -msgid_plural "copies of The Book of the SubGenius" -msgstr[0] "本(一般/サブジーニアスの書)" - -#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of -#. The Book of the SubGenius'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book about the Church of the SubGenius. It seems to involve a salesman " -"named J. R. \"Bob\" Dobbs and a concept called 'slack'." -msgstr "サブジーニアス教に関する書籍です。J.R.\"ボブ\"・ドッブスという名のセールスマンと「ぐうたら」と呼ばれる教義について書いてあるようです。" - -#: lang/json/BOOK_from_json.py -msgid "The Sutras of the Buddha" -msgid_plural "copies of The Sutras of the Buddha" -msgstr[0] "本(一般/仏典)" - -#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of -#. The Sutras of the Buddha'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of discourses attributed to the Buddha and his close disciples." -msgstr "ブッダやその弟子達の談話集です。" - -#: lang/json/BOOK_from_json.py -msgid "Talmud" -msgid_plural "copies of Talmud" -msgstr[0] "本(一般/タルムード)" - -#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of Talmud'} -#: lang/json/BOOK_from_json.py -msgid "" -"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " -"Hebrew Bible with teachings and opinions of thousands of rabbis." -msgstr "" -"ラビ・ユダヤ教の中枢的な本の一つです。タルムードは多くの場合ユダヤ人の聖書であると説明され、数千人のラビ達が遺した尊い教示と所信が記されています。" - -#: lang/json/BOOK_from_json.py -msgid "Tanakh" -msgid_plural "copies of Tanakh" -msgstr[0] "本(一般/タナハ)" - -#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single-volume book containing the complete canon of the Jewish Bible." -msgstr "ユダヤ人の完全な規範が書かれた、ユダヤ教の分厚い聖書です。" - -#: lang/json/BOOK_from_json.py -msgid "The Tripitaka" -msgid_plural "copies of The Tripitaka" -msgstr[0] "本(一般/大蔵経)" - -#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The -#. Tripitaka'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Buddhist writings describing their canons of " -"scriptures." -msgstr "仏教の聖なる言葉を集めた聖典です。" - -#: lang/json/BOOK_from_json.py -msgid "The Upanishads" -msgid_plural "copies of The Upanishads" -msgstr[0] "本(一般/ウパニシャッド)" - -#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The -#. Upanishads'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Hindu writings regarding the nature of reality and " -"describing the character and form of human salvation." -msgstr "ヒンドゥーの聖なる言葉を集めた本です。宇宙の真の姿について、人格の評価について、また人の救済のあり方について述べられています。" - -#: lang/json/BOOK_from_json.py -msgid "The Four Vedas" -msgid_plural "copies of The Four Vedas" -msgstr[0] "本(一般/ヴェーダ)" - -#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four -#. Vedas'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single volume containing all four Vedas, which are the oldest scriptures " -"of Hinduism." -msgstr "4部のヴェーダが書かれた、ヒンドゥー教最古の分厚い経典です。" - -#: lang/json/BOOK_from_json.py -msgid "The Satanic Bible" -msgid_plural "copies of The Satanic Bible" -msgstr[0] "本(一般/サタンの聖書)" - -#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The -#. Satanic Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of essays, observations, and rituals published by Anton LaVey " -"in 1969." -msgstr "アントン・ラヴェイが記したエッセイ、観察報告、儀式の解説などを集めた1969年出版の書籍です。" - #: lang/json/BOOK_from_json.py msgid "comic book" msgid_plural "comic books" @@ -24456,6 +24105,19 @@ msgstr[0] "本(一般/TIMEマガジン)" msgid "Current events concerning a bunch of people who're all (un)dead now." msgstr "既に死に絶えた(またはゾンビ化した)人々に関する時事ネタを扱った雑誌です。" +#: lang/json/BOOK_from_json.py +msgid "The Analyst" +msgid_plural "issues of The Analyst" +msgstr[0] "本(一般/ジ・アナリスト)" + +#. ~ Description for {'str': 'The Analyst', 'str_pl': 'issues of The Analyst'} +#: lang/json/BOOK_from_json.py +msgid "" +"This news magazine has been described as \"a kind of Reader's Digest for " +"America's corporate elite.\" These concerns are, of course, behind us now." +msgstr "" +"「アメリカの企業エリートのためのリーダーズ・ダイジェスト」と言われている週刊誌です。記されている問題提起は、当然ながら、すべて解決済みです。" + #: lang/json/BOOK_from_json.py msgid "Playboy" msgid_plural "issues of Playboy" @@ -24570,6 +24232,22 @@ msgid "" msgstr "" "ギャングを取り仕切っていた女が疑念を持たれ、やがて殺害されるストーリーが記された、安価なペーパーバック本です。決して信用を裏切らず、仲間を密告せず、友人を見捨てなかったにもかかわらず、裏社会を牛耳っているという噂が広がり、疑心暗鬼が引き起こされます。" +#: lang/json/BOOK_from_json.py +msgid "Midnight Cop" +msgid_plural "copies of Midnight Cop" +msgstr[0] "本(一般/ミッドナイト・コップ)" + +#. ~ Description for {'str': 'Midnight Cop', 'str_pl': 'copies of Midnight +#. Cop'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this bare-knuckled potboiler, a ruthless police detective schemes to shut" +" down local crime lords by pitting them against each other. When long-" +"simmering resentments finally flare the city learns why they call it \"the " +"dead of night.\"" +msgstr "" +"冷酷な警察官が地元の犯罪者たちを追い詰めようと画策する、何でもありの粗悪な小説です。長年くすぶり続けていた恨みが遂に燃え上がった時、この街は、彼が「ザ・デッド・オブ・ナイト」と呼ばれる理由を知ることになります。" + #: lang/json/BOOK_from_json.py msgid "drama novel" msgid_plural "drama novels" @@ -24643,6 +24321,62 @@ msgid "" "A hardboiled detective tale filled with hard hitting action and intrigue." msgstr "ハードボイルドな探偵が織り成す、過激な格闘戦と陰謀が売りの探偵物語です。" +#: lang/json/BOOK_from_json.py +msgid "Planet of the Murderous Squids that Time Forgot!" +msgid_plural "Planet of the Murderous Squids that Time Forgot!s" +msgstr[0] "本(一般/忘れ去られた殺人イカ惑星!)" + +#. ~ Description for Planet of the Murderous Squids that Time Forgot! +#: lang/json/BOOK_from_json.py +msgid "" +"In this psychedelic adventure novel of cosmic exploration, an elderly " +"assassin discovers a planet too good to be true. Only once it is too late " +"does she discover the harrowing truth at the center of \"The Planet of the " +"Murderous Squids that Time Forgot!\"" +msgstr "" +"年老いた暗殺者が信じがたい惑星を発見する、サイケデリックな宇宙探索アドベンチャー小説です。「忘れ去られた殺人イカ惑星!」のストーリーの核に痛ましい真実が含まれていることが分かったのは、全てが手遅れになってからでした。" + +#: lang/json/BOOK_from_json.py +msgid "The Great Capes of Metropolis" +msgid_plural "The Great Capes of Metropoliss" +msgstr[0] "本(一般/メトロポリスの偉大なるマント)" + +#. ~ Description for The Great Capes of Metropolis +#: lang/json/BOOK_from_json.py +msgid "" +"In this classic pulp paperback of superheroic exploits, a group of masked " +"vigilantes with diverse superpowers learn to work together to defeat the " +"ultimate villain." +msgstr "" +"スーパーヒーローの活躍を描いた、古典的なパルプ小説のペーパーバック本です。素性を隠した自警団のメンバーたちが、究極の悪を倒すために協力して戦うことを学びます。" + +#: lang/json/BOOK_from_json.py +msgid "Yesterday's Murdered" +msgid_plural "Yesterday's Murdereds" +msgstr[0] "本(一般/昨日の殺人)" + +#. ~ Description for Yesterday's Murdered +#: lang/json/BOOK_from_json.py +msgid "" +"In this fast paced pulp noir, a hard-drinking detective with nerves of steel" +" has one last shot at vengeance." +msgstr "テンポの速い犯罪もののパルプ小説です。鋼の精神を持つ飲んだくれの刑事が、最後の復讐の機会を得ます。" + +#: lang/json/BOOK_from_json.py +msgid "Flashgun Condor and the Crimson Criminal" +msgid_plural "Flashgun Condor and the Crimson Criminals" +msgstr[0] "本(一般/フラッシュ・コンドルと真紅の犯罪者)" + +#. ~ Description for Flashgun Condor and the Crimson Criminal +#: lang/json/BOOK_from_json.py +msgid "" +"A hot-blooded photographer who fights crime with film, footage, and fists, " +"Condor is more than a mere shutterbug on the crime beat. But will she be " +"able to unravel a devious deception and bring the \"Crimson Criminal\" to " +"justice?" +msgstr "" +"写真と映像と拳で犯罪に立ち向かう熱血写真家のコンドルは、単なる犯罪専門のアマチュア写真家ではありません。彼女は邪悪な欺瞞を解き明かし、「真紅の犯罪者」を裁くことができるのでしょうか?" + #: lang/json/BOOK_from_json.py msgid "road novel" msgid_plural "road novels" @@ -24665,6 +24399,138 @@ msgstr[0] "本(一般/恋愛小説)" msgid "Drama and mild smut." msgstr "複雑な人間模様と少々のエロスが混在した小説です。" +#: lang/json/BOOK_from_json.py +msgid "Love and Circuses" +msgid_plural "Love and Circusess" +msgstr[0] "本(一般/愛とサーカス)" + +#. ~ Description for Love and Circuses +#: lang/json/BOOK_from_json.py +msgid "" +"The passionate saga of two Boston politicians fiercely battling each other " +"for the mayor's office, and for Lydia's hand in marriage." +msgstr "ボストンの2人の政治家がリディアという女性との結婚や市長職を巡って熾烈な戦いを繰り広げる、情熱的な年代記です。" + +#: lang/json/BOOK_from_json.py +msgid "Cloven Kisses" +msgid_plural "Cloven Kissess" +msgstr[0] "本(一般/引き裂かれたキス)" + +#. ~ Description for Cloven Kisses +#: lang/json/BOOK_from_json.py +msgid "" +"When the devil falls in love with a warlock, his proposal must be infernally" +" wicked. Will hooves, horns, and the scent of sulphur condemn love's flames" +" to hellfire?" +msgstr "悪魔が魔法使いに一目惚れしましたが、邪悪な提案を持ちかけられます。蹄と角と硫黄の香りが、愛の炎を地獄の炎に変えてしまうのでしょうか?" + +#: lang/json/BOOK_from_json.py +msgid "Conquer Me Sweetly" +msgid_plural "Conquer Me Sweetlys" +msgstr[0] "本(一般/甘い征服)" + +#. ~ Description for Conquer Me Sweetly +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is delighted to offer you this romantic tale of " +"delicious dalliances and daring delights." +msgstr "" +"Sweet Providence Booksは、心地良い時間と大胆な悦びをもたらすこのロマンチックな物語をあなたにお届けできたことを嬉しく思います。" + +#: lang/json/BOOK_from_json.py +msgid "Dubliner's Debutante" +msgid_plural "Dubliner's Debutantes" +msgstr[0] "本(一般/ダブリンのお嬢様)" + +#. ~ Description for Dubliner's Debutante +#: lang/json/BOOK_from_json.py +msgid "" +"His love songs were only for me, but I preferred the banjo over bagpipes. " +"How could I ever love a kilted yankee of foreign breeding?" +msgstr "" +"彼のラブソングは私だけのもの。でも私、バグパイプよりバンジョーが気になるのよ。キルトを着たって、外から来たアメリカ人なんか好きにならないんだからね?" + +#: lang/json/BOOK_from_json.py +msgid "Blood Diodes" +msgid_plural "Blood Diodess" +msgstr[0] "本(一般/純血のダイオード)" + +#. ~ Description for Blood Diodes +#: lang/json/BOOK_from_json.py +msgid "" +"He is an automaton, she is a reformed vampire, can love find a way? In this" +" edgy romance by acclaimed author Kea Dekker, heartbreak is just the " +"beginning." +msgstr "" +"男はロボット、女は改心した吸血鬼。そこに愛はあるのか?有名作家、キー・デッカーによるエッジの効いたこのロマンスでは、失恋はただの始まりに過ぎません。" + +#: lang/json/BOOK_from_json.py +msgid "Envying Heaven" +msgid_plural "Envying Heavens" +msgstr[0] "本(一般/嫉妬の空)" + +#. ~ Description for Envying Heaven +#: lang/json/BOOK_from_json.py +msgid "" +"When her fiancee names a star for her Wanda begins to wonder if an " +"astronomer's wife can ever compete with the allure of the cosmos." +msgstr "" +"天文学者である婚約者はワンダのために星に名前を付けました。しかしワンダは、結婚しても宇宙の魅力に自分が負けてしまうのではないか、という不安を抱きます。" + +#: lang/json/BOOK_from_json.py +msgid "Tall, Dark, and Gruesome" +msgid_plural "Tall, Dark, and Gruesomes" +msgstr[0] "本(一般/高く、暗く、無情なもの)" + +#. ~ Description for Tall, Dark, and Gruesome +#: lang/json/BOOK_from_json.py +msgid "" +"Fatima's obsession with the dead threatens to consume her when she falls in " +"love with a restless ghost. In this provocative romp celebrated author Kea " +"Dekker gently lifts the thin veil separating cold bodies from warm. " +msgstr "" +"ファティマは眠れない幽霊と恋に落ち、わが身をかえりみずに執着します。有名作家キー・デッカーは挑戦的なこの娯楽作品によって、冷たい死者と温かい生者を隔てる薄いベールをそっと剥がします。" + +#: lang/json/BOOK_from_json.py +msgid "Along Came a Rider" +msgid_plural "Along Came a Riders" +msgstr[0] "本(一般/騎手の伴侶)" + +#. ~ Description for Along Came a Rider +#: lang/json/BOOK_from_json.py +msgid "" +"When Beth's career as a pro steeplechase jockey threatens to divide her from" +" her lover, Beth has to act fast. Will she ever find a man that can keep up" +" with her racing heart?" +msgstr "" +"障害馬術競技騎手としてのキャリアが恋人と親密になれない原因ではないかと気付き、ベスはすぐに行動を起こしました。競技で鍛えた心臓に耐えられる男は、果たして見つかるのでしょうか?" + +#: lang/json/BOOK_from_json.py +msgid "Rogue's Virtue" +msgid_plural "Rogue's Virtues" +msgstr[0] "本(一般/悪党の美徳)" + +#. ~ Description for Rogue's Virtue +#: lang/json/BOOK_from_json.py +msgid "" +"Can Victoria reform the fugitive from justice who wooed her with false " +"pretenses and true passion?" +msgstr "ヴィクトリアは、偽りの口実と真実の情熱で言い寄ってきた逃亡犯を更生させることができるのでしょうか?" + +#: lang/json/BOOK_from_json.py +msgid "The Death of My Secret Life" +msgid_plural "The Death of My Secret Lifes" +msgstr[0] "本(一般/秘密の人生の終焉)" + +#. ~ Description for The Death of My Secret Life +#: lang/json/BOOK_from_json.py +msgid "" +"Makeda comes out to her family, but she's still got plenty of skeletons in " +"her closet. Best selling authoress Kea Dekker breaks all the rules in this " +"macabre story of love and lies." +msgstr "" +"マケダは同性愛者であることを家族に打ち明けましたが、彼女は他にもたくさんの秘密を持っていました。ベストセラー作家キー・デッカーが、愛と嘘を巡る不気味な物語によってあらゆるセオリーを打ち砕きます。" + #: lang/json/BOOK_from_json.py msgid "samurai novel" msgid_plural "samurai novels" @@ -24690,6 +24556,70 @@ msgid "" "this side of Armageddon makes it seem all the more ridiculous." msgstr "文明崩壊前の政治に関する風刺を綴った小説です。ハルマゲドンが起きた後にそれらを振り返ると、実に馬鹿馬鹿しい気分になります。" +#: lang/json/BOOK_from_json.py +msgid "The House of God" +msgid_plural "The House of Gods" +msgstr[0] "本(一般/神の家)" + +#. ~ Description for The House of God +#: lang/json/BOOK_from_json.py +msgid "" +"Set in a lightly disguised Boston hospital of high repute, Samuel Shem’s " +"novel dives deep into the agony of absurdity." +msgstr "評判の高いボストンの病院を舞台にした、不条理な苦悩に深く切り込むサミュエル・シェムの小説です。" + +#: lang/json/BOOK_from_json.py +msgid "Catch-22" +msgid_plural "Catch-22s" +msgstr[0] "本(一般/キャッチ=22)" + +#. ~ Description for Catch-22 +#: lang/json/BOOK_from_json.py +msgid "" +"There is a short informational forward in this paperback edition of " +"Catch-22. Apparently the original title for Joseph Heller’s excruciatingly " +"brilliant war satire was \"Catch-11.\"" +msgstr "" +"このペーパーバック版「キャッチ=22」には簡単な前書きが載っています。どうやら、ジョセフ・ヘラーが描いた見事な戦争風刺小説の元々のタイトルは「キャッチ=11」だったようです。" + +#: lang/json/BOOK_from_json.py +msgid "The Master and Margarita" +msgid_plural "The Master and Margaritas" +msgstr[0] "本(一般/巨匠とマルガリータ)" + +#. ~ Description for The Master and Margarita +#: lang/json/BOOK_from_json.py +msgid "" +"Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, " +"vampires, a talking cat, and the literary elite of Moscow, this is a satire " +"on Stalinist tyranny written by Mikhail Bulgakov." +msgstr "" +"悪魔、ポンティオ・ピラト、イエス・キリスト、吸血鬼、喋るネコ、文学界のエリートなどが登場する、ミハイル・ブルガーコフが執筆したスターリンによる専制政治の風刺小説です。" + +#: lang/json/BOOK_from_json.py +msgid "A Handful of Dust" +msgid_plural "A Handful of Dusts" +msgstr[0] "本(一般/一握の塵)" + +#. ~ Description for A Handful of Dust +#: lang/json/BOOK_from_json.py +msgid "" +"Laced with cynicism, Evelyn Waugh's \"A Handful of Dust\" satirizes a " +"stratum of characters who have wealth, but lack any other credentials." +msgstr "イーヴリン・ウォーの「一握の塵」は、富以外に何の資質も持たない登場人物のような人々を、皮肉を織り交ぜながら風刺した小説です。" + +#: lang/json/BOOK_from_json.py +msgid "Cat’s Cradle" +msgid_plural "Cat’s Cradles" +msgstr[0] "本(一般/猫のゆりかご)" + +#. ~ Description for Cat’s Cradle +#: lang/json/BOOK_from_json.py +msgid "" +"A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of " +"nuclear destruction isn't much of an influence on human nature." +msgstr "原子爆弾の脅威も人間性にはあまり影響を与えられないことを表現した、カート・ヴォネガットが四番目に発表した小説のペーパーバック版です。" + #: lang/json/BOOK_from_json.py msgid "scifi novel" msgid_plural "scifi novels" @@ -24806,7 +24736,7 @@ msgstr "アイザック・アシモフの「ファウンデーション対帝国 #: lang/json/BOOK_from_json.py msgid "" "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It " -"still has the smell of new books within it's pages." +"still has the smell of new books within its pages." msgstr "フィリップ・K・ディックの「暗闇のスキャナー」です。まだ新品のような匂いが残っています。" #: lang/json/BOOK_from_json.py @@ -25024,20 +24954,6 @@ msgid "" "Douglas Adams." msgstr "ダグラス・アダムズの「銀河ヒッチハイク・ガイド」です。何度も読まれた跡があります。" -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "本(一般/スポーツ小説)" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "" -"3流ボクサーの激動の物語です。現ヘビー級チャンピオンと戦い、人生を変えるチャンスを物にしようとする男の姿が、ペットショップで働くある美少女の心を捉えます。" - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -25095,6 +25011,46 @@ msgid "" msgstr "" "舞台は17世紀、奴隷にされたアイルランド人医師と鎖で繋がれた仲間達が脱走して海賊となり、やがてはロビンフッドのように英雄的に活躍するまでを描いた物語です。" +#: lang/json/BOOK_from_json.py +msgid "The Black Freighter" +msgid_plural "copies of The Black Freighter" +msgstr[0] "本(一般/黒の船)" + +#. ~ Description for {'str': 'The Black Freighter', 'str_pl': 'copies of The +#. Black Freighter'} +#: lang/json/BOOK_from_json.py +msgid "" +"Who watches the watchmen? Pirate Jenny, that's who! This swashbuckling " +"adventure novel will make you feel swell." +msgstr "誰が見張りを見張るのか?それは海賊ジェニー、彼女だ!この剣戟アドベンチャー小説が、あなたを感情の渦に巻き込みます。" + +#: lang/json/BOOK_from_json.py +msgid "Captain Gosgold and the Sea Rovers of Buzzards Bay" +msgid_plural "copies of The Sea Rovers" +msgstr[0] "本(一般/ゴズゴールド船長とバザーズ湾の海賊)" + +#. ~ Description for {'str': 'Captain Gosgold and the Sea Rovers of Buzzards +#. Bay', 'str_pl': 'copies of The Sea Rovers'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lengthy paperback novel describes the ocean exploits of Captain " +"Gosgold. The British consider him an outlaw, but in America he is a " +"patriot." +msgstr "ゴズゴールド船長の大海原での活躍を描いた、長編ペーパーバック小説です。船長はイギリスでは無法者扱いですが、アメリカでは愛国者です。" + +#: lang/json/BOOK_from_json.py +msgid "The Code of the Buccaneer" +msgid_plural "copies of The Buccaneer" +msgstr[0] "本(一般/海賊の掟)" + +#. ~ Description for {'str': 'The Code of the Buccaneer', 'str_pl': 'copies of +#. The Buccaneer'} +#: lang/json/BOOK_from_json.py +msgid "" +"The cover of this paperback pirate story shows a shirtless man and a near " +"shirtless woman. Clearly it is not a dress code." +msgstr "この海賊が登場するペーパーバック本の表紙には、上半身裸の男と服をはだけた女が描かれています。明らかにドレスコードを逸脱しています。" + #: lang/json/BOOK_from_json.py msgid "thriller novel" msgid_plural "thriller novels" @@ -25151,274 +25107,92 @@ msgid "" msgstr "寒村に訪れた主人公のガンマンを、住人たちが村を無法者達から守る用心棒として雇う...という古典的な物語です。" #: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "本(一般/哲学書)" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of -#. philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "認識論と論理に重点を置いた、道徳に関する奥深い論議集です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." -msgstr "ニーチェの「善悪の彼岸」です。表紙はボロボロにくたびれており、角も折れ曲がっています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "マックス・シュティルナーの「唯一者とその所有」をウォルフィ・ラントシュトライヒャーが現代語訳したものです。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." -msgstr "実存主義における重要な著作である、ジャン=ポール・サルトルの「存在と無」です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "ミシェル・フーコーの「狂気の歴史」の大型拡張版です。表紙には印象的なパノプティコン型刑務所が描かれています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "リオタールの「ポストモダンの条件」です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "ジャック・デリダの文書、エッセイ集です。紙は黄ばみ綴りも緩んでいるため、慎重に扱う必要がありそうです。" +msgid "Atwixt a Brace of Cacti" +msgid_plural "Atwixt a Brace of Cactis" +msgstr[0] "本(一般/一対のサボテンの間に)" +#. ~ Description for Atwixt a Brace of Cacti #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." -msgstr "ギー・ドゥボールの「スペクタクルの社会」です。表紙には並んで静かにスクリーンを眺める人々が描かれています。" +"A grizzled clodhopper interviews a mess of rangehands, flummoxing longhorns " +"and tenderfoot alike in a flusteration of jawing." +msgstr "白髪交じりの田舎者が、牧童たちや混乱したテキサス人、顎が悪そうな新参者にインタビューします。" #: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "リュス・イリガライの「性的差異のエチカ」、「ひとつではない女の性」の合本です。" +msgid "Stinky Bart Puts on Starch" +msgid_plural "Stinky Bart Puts on Starchs" +msgstr[0] "本(一般/悪臭バートの歯糞)" +#. ~ Description for Stinky Bart Puts on Starch #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." -msgstr "" -"ボードリヤールの「シミュラークルとシミュレーション」です。表紙にはそれぞれの手に色の付いた錠剤を持つ男性と「現実の砂漠へようこそ」と書かれた見出しが載っています。" +"A local bandit, driven by sadistic impulses, begins offering unlicensed " +"dentistry to brave frontiersmen with few options and fewer teeth." +msgstr "嗜虐的な衝動に駆られた地元の盗賊が、困窮した歯抜けの辺境開拓者たちを相手にした歯科を開業します。" #: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." -" It looks to have been used as a coaster in a past life." -msgstr "サルトルの「実存主義とは何か」のポケット版です。以前はコースターとして使われていたようです。" +msgid "Six Beans in the Wheel" +msgid_plural "Six Beans in the Wheels" +msgstr[0] "本(一般/チャンバーの中の6粒豆)" +#. ~ Description for Six Beans in the Wheel #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." -msgstr "地方の大学から出版された、ピーター・シンガーの「実践の倫理」です。" +"The safety is off in this gun slinging tale of revenge and redemption by " +"acclaimed author El Amor." +msgstr "銃を乱射するこの復讐と贖罪の物語では、セーフティーは常に外れています。著者エル・アモルが自信をもってお届けします。" #: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "コピー用紙を螺旋綴じで製本した、フリーダムクラブの「産業社会とその未来」です。原本は綴じられる前にタイプライターで書かれていたようです。" +msgid "Irons at Calico Queen Annex" +msgid_plural "Irons at Calico Queen Annexs" +msgstr[0] "本(一般/キャリコ・クイーンの銃)" +#. ~ Description for Irons at Calico Queen Annex #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an" -" ominous looking metal tube. Provocative." +"The establishment of a telegraph line into the recently named town of Calico" +" Queen threatens to bring with it the long arm of the law. A trio of " +"enterprising gunfighters hatches a plan to keep Calico Queen wild by looting" +" the supply wagons." msgstr "" -"テッド・カジンスキーの「産業社会とその未来」です。表紙には、配線と不気味な金属管が入った手製の木箱の写真が載っており、非常に挑発的に見えます。" +"電信線が敷設されれば、キャリコ・クイーンと名付けられたばかりの街にも法の力が及びます。野心的な3人の早撃ちの名手が、鉄道を略奪してキャリコ・クイーンを無法地帯に戻す計画を考案します。" #: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "ヘーゲルの弁証法について書かれた小型の読本です。" +msgid "Riot on the Range" +msgid_plural "Riot on the Ranges" +msgstr[0] "本(一般/牧場での反乱)" +#. ~ Description for Riot on the Range #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "ウラジーミル・レーニンの「国家と革命」です。ありがたいことに、英語で書かれています。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "レオン・トロツキーの「マルクス主義の防衛」です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" -" tag on the back cover. It appears to still be active." -msgstr "アビー・ホフマンの「この本を盗め」です。背表紙には稼働中の防犯タグが取り付けてあります。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "ヘンリー・デイヴィッド・ソローの「ウォールデン 森の生活」です。乾燥させた木の葉の栞が挟まっています。" +"Best selling author El Amor paints a visceral study in red with his latest " +"western saga: Riot on the Range." +msgstr "ベストセラー作家エル・アモルが送る西部劇サーガ最新作、「牧場での反乱」です。" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "ジャーメイン・グリアの「去勢された女性」です。子供が赤いクレヨンで目次のページに落書きをしたようです。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "ベルクソンの「形而上学入門」です。" +msgid "Vaquero Sun" +msgid_plural "Vaquero Suns" +msgstr[0] "本(一般/太陽のカウボーイ)" +#. ~ Description for Vaquero Sun #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "ジャック・ラカンの「精神分析の四基本概念」です。" +"Western author El Amor relates the story of a dispossessed young man " +"inspired by a heat stroke delusion to pursue justice against an evil land " +"baron." +msgstr "西部劇小説家エル・アモルが熱中症に罹った際の幻覚に触発されて著した、土地を追放された若者が正義のために悪い金持ちと戦う物語です。" #: lang/json/BOOK_from_json.py -msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "マキャヴェッリの「君主論」です。クェンティン・スキナーによる序文が追加されています。" +msgid "The Vendetta Riders" +msgid_plural "The Vendetta Riderss" +msgstr[0] "本(一般/復讐の騎手)" +#. ~ Description for The Vendetta Riders #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "ラウル・ヴァネーゲムの「若者用処世術概論」です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" -" cover contains an image of a pelican." -msgstr "ヘルベルト・マルクーゼの「解放論の試み」です。表紙にはペリカンが描かれています。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "セーレン・キェルケゴールの「あれか、これか」です。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "プラトンの「洞窟の比喩」です。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "トマス・ホッブズの「リヴァイアサン」です。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "イマヌエル・カントの「純粋理性批判」です。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "デカルトの「哲学の原理」です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " -"Science\" by Friederich Nietzsche." -msgstr "フリードリヒ・ニーチェの「道徳の系譜」、「悦ばしき知識」の合本です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." -msgstr "アルベール・カミュの「シーシュポスの神話」他のエッセイ集です。表紙には、上半身裸の男性が大きな岩を押している姿が描かれています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." -msgstr "セーレン・キェルケゴールの「死にいたる病」です。ページのあちこちにメモが書かれた付箋が貼ってあります。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" -" title, it does not actually appear to be defending terrorism." -msgstr "レオン・トロツキーの「テロリズムと共産主義」です。タイトルとは裏腹に、テロを擁護する内容ではありません。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." -msgstr "ウィリアム・ゴドウィンの「政治的正義」です。分厚い本の中に時代遅れのフレーズがたくさん載っています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this" -" book." -msgstr "ボブ・ブラックの「労働廃絶論 小論集」です。掲載されている中で最も有名なエッセイは「労働廃絶論」でしょう。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" -" like this book has a surprisingly long track record of owners." -msgstr "ピエール・ジョゼフ・プルードンの「所有とは何か」です。この本は驚くほど長く所有されていたようです。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "ピョートル・クロポトキンの「パンの略取」です。表紙には、パンではなく髭もじゃの老哲学者が載っています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" -" might have been printed decades before the Cataclysm since the cover is " -"quite weathered." -msgstr "エミール・シオランの「生誕の災厄」です。表紙はかなり風化しており、大変動が起きる何十年も前に出版されたようです。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "アルトゥル・ショーペンハウアーの「意志と表象としての世界」です。解読不能なメモや落書きが載っています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" -" that the author's real name is Fereidoun M. Esfandiary." -msgstr "FM-2030の「アップウィンガーズ: 未来派宣言」です。著者の本名はフェレイドゥン・M・エスファンダイアリーであるようです。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "フレデリック・バスティアが記した多数のエッセイを一冊にまとめた「バスティア論集」です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." -msgstr "現代のリバタリアニズムに最も影響を与えた本の一つである、ロバート・ノージックの「アナーキー・国家・ユートピア」です。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "ルートヴィヒ・フォン・ミーゼスの「社会主義」です。社会主義について批判的に検討しています。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." -msgstr "初期マルクス・レーニン主義に最も影響を与えた本の一つである、ニコライ・ブハーリンの「共産主義のABC」です。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." -msgstr "ルートヴィヒ・フォン・ミーゼスの「反資本主義の精神構造」です。" +"A wild young man, fast on the draw, who thinks he has nothing to lose, falls" +" in with a group of gun runners." +msgstr "失うものは何もないと考えている無法な若者が、銃を持った集団の一員になります。" #: lang/json/BOOK_from_json.py msgid "phone book" @@ -25478,8 +25252,10 @@ msgstr[0] "本(一般/神父の日記)" #. ~ Description for {'str': "priest's diary", 'str_pl': "priests' diaries"} #: lang/json/BOOK_from_json.py -msgid "A small book filled with journal entries in Latin." -msgstr "ラテン語でびっしりと書かれた小さな日記です。" +msgid "" +"A small book filled with journal entries in Latin. You can read Latin, " +"right?" +msgstr "ラテン語の文書がびっしりと書かれた小さな日記です。ラテン語は、読めますよね?" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -25548,19 +25324,6 @@ msgstr[0] "本(一般/独房での幻視)" msgid "A small book detailing 'visions' a prisoner had on death row." msgstr "死刑囚監房で囚人が身に着けた「幻視」について書かれた小さな本です。" -#: lang/json/BOOK_from_json.py -msgid "Hávamál" -msgid_plural "copies of Hávamál" -msgstr[0] "本(一般/ハヴァマール)" - -#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of several Old Norse poems. The poems contain " -"proverbs and stories attributed to the god Odin, many transcribed from oral " -"history." -msgstr " 古ノルド語の詩集を英語に翻訳したものです。オーディンにまつわることわざや言い伝えが記されています。" - #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" @@ -25976,6 +25739,879 @@ msgid "" msgstr "" "テリー・プラチェットの「ディスクワールド騒動記1」の初版本です。表紙の裏に「クリスへ。きっとできると信じてくれてありがとう。今後ともよろしく。テリー」と手書きしてあります。" +#: lang/json/BOOK_from_json.py +msgid "The Economicon of Dobbs" +msgid_plural "copies of The Economicon" +msgstr[0] "本(一般/ドッブスのエコノミコン)" + +#. ~ Description for {'str': 'The Economicon of Dobbs', 'str_pl': 'copies of +#. The Economicon'} +#: lang/json/BOOK_from_json.py +msgid "" +"These are the prescriptures Pile 18 Disk sg30 File 14. \"Look, small brain " +"of pink earth inside my null-grasping, and she/he receives Logos; and it lay" +" with the Wor.\"" +msgstr "" +"18スタックSG30ファイル14「私の空を保持しているピンク色の地球の小さな頭を見てください、そして彼女/彼はロゴを受け取ります;そして、ワと共にあります。」" + +#: lang/json/BOOK_from_json.py +msgid "The Bobliographon" +msgid_plural "copies of The Bobliographon" +msgstr[0] "本(一般/ボブリオグラフォン)" + +#. ~ Description for {'str': 'The Bobliographon', 'str_pl': 'copies of The +#. Bobliographon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this cheaply published paperback reads: \"These newly-" +"released SubGenius revelations will SHOCK those who think they know Bob! " +"Unpredictables are not alone and possess amazing hidden powers of their own!" +" In a world without slack, a yeti lust revival saunters about. WARNING: Do" +" not fail to pay full price for this book; JHVH-1's wrath knows some " +"bounds.\"" +msgstr "" +"安っぽい紙質のペーパーバック本です。裏表紙には以下のような文章が書かれています。「ボブを知っていると思い込んでいた人にとってはショッキングな内容です!予測不能者は複数人おり、隠された驚くべき力を持っています!ぐうたら無き世界には、性欲を回復させたイエティが徘徊しています。警告:この本を割引価格で購入してはいけません" +"。JHVH-1の怒りにも限界はあります。」" + +#: lang/json/BOOK_from_json.py +msgid "Glimpses of Solomon in Yellow" +msgid_plural "copies of Solomon in Yellow" +msgstr[0] "本(一般/ソロモンの黄光)" + +#. ~ Description for {'str': 'Glimpses of Solomon in Yellow', 'str_pl': +#. 'copies of Solomon in Yellow'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is titled \"Glimpses of Solomon in Yellow; The Initiation " +"Rites of the Starry Wisdom Covenant, by Dr. Enoch Craven.\" It describes " +"not just the investiture of new adherents, but the history and beliefs of " +"the Church of Starry Wisdom. Someone has defaced the sparse citations " +"section by scrawling \"PUPPETS OF ROME!\" over its few pages. The book does" +" not provide any biography for Dr. Craven, let alone academic credentials." +msgstr "" +"「ソロモンの黄光;星の智慧と盟約を結ぶ導入儀式、著:エノク・クレーブン博士」と書かれたペーパーバック本です。新たな信者に向けての入会儀式の紹介だけでなく、星の智慧派教会の歴史や競技が書かれています。何ページかの脚注部分は汚れており、その上部に「ローマの傀儡!」と書き込まれています。この本にはクレーブン博士の学歴はおろか、略歴すらまったく載っていません。" + +#: lang/json/BOOK_from_json.py +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "本(一般/哲学書)" + +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of +#. philosophy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "認識論と論理に重点を置いた、道徳に関する奥深い論議集です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "ニーチェの「善悪の彼岸」です。表紙はボロボロにくたびれており、角も折れ曲がっています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "マックス・シュティルナーの「唯一者とその所有」をウォルフィ・ラントシュトライヒャーが現代語訳したものです。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "ミシェル・フーコーの「狂気の歴史」の大型拡張版です。表紙には印象的なパノプティコン型刑務所が描かれています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "リオタールの「ポストモダンの条件」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "ジャック・デリダの文書、エッセイ集です。紙は黄ばみ綴りも緩んでいるため、慎重に扱う必要がありそうです。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "ギー・ドゥボールの「スペクタクルの社会」です。表紙には並んで静かにスクリーンを眺める人々が描かれています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "リュス・イリガライの「性的差異のエチカ」、「ひとつではない女の性」の合本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." +msgstr "" +"ボードリヤールの「シミュラークルとシミュレーション」です。表紙にはそれぞれの手に色の付いた錠剤を持つ男性と「現実の砂漠へようこそ」と書かれた見出しが載っています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." +" It looks to have been used as a coaster in a past life." +msgstr "サルトルの「実存主義とは何か」のポケット版です。以前はコースターとして使われていたようです。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "地方の大学から出版された、ピーター・シンガーの「実践の倫理」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "コピー用紙を螺旋綴じで製本した、フリーダムクラブの「産業社会とその未来」です。原本は綴じられる前にタイプライターで書かれていたようです。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an" +" ominous looking metal tube. Provocative." +msgstr "" +"テッド・カジンスキーの「産業社会とその未来」です。表紙には、配線と不気味な金属管が入った手製の木箱の写真が載っており、非常に挑発的に見えます。" + +#: lang/json/BOOK_from_json.py +msgid "This is a small reader on Hegel's Dialectics." +msgstr "ヘーゲルの弁証法について書かれた小型の読本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "ウラジーミル・レーニンの「国家と革命」です。ありがたいことに、英語で書かれています。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "レオン・トロツキーの「マルクス主義の防衛」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" +" tag on the back cover. It appears to still be active." +msgstr "アビー・ホフマンの「この本を盗め」です。背表紙には稼働中の防犯タグが取り付けてあります。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "ヘンリー・デイヴィッド・ソローの「ウォールデン 森の生活」です。乾燥させた木の葉の栞が挟まっています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "ジャーメイン・グリアの「去勢された女性」です。子供が赤いクレヨンで目次のページに落書きをしたようです。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "ベルクソンの「形而上学入門」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "ジャック・ラカンの「精神分析の四基本概念」です。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "マキャヴェッリの「君主論」です。クェンティン・スキナーによる序文が追加されています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "ラウル・ヴァネーゲムの「若者用処世術概論」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" +" cover contains an image of a pelican." +msgstr "ヘルベルト・マルクーゼの「解放論の試み」です。表紙にはペリカンが描かれています。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "セーレン・キェルケゴールの「あれか、これか」です。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "プラトンの「洞窟の比喩」です。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "トマス・ホッブズの「リヴァイアサン」です。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "イマヌエル・カントの「純粋理性批判」です。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "デカルトの「哲学の原理」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " +"Science\" by Friederich Nietzsche." +msgstr "フリードリヒ・ニーチェの「道徳の系譜」、「悦ばしき知識」の合本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "アルベール・カミュの「シーシュポスの神話」他のエッセイ集です。表紙には、上半身裸の男性が大きな岩を押している姿が描かれています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "セーレン・キェルケゴールの「死にいたる病」です。ページのあちこちにメモが書かれた付箋が貼ってあります。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" +" title, it does not actually appear to be defending terrorism." +msgstr "レオン・トロツキーの「テロリズムと共産主義」です。タイトルとは裏腹に、テロを擁護する内容ではありません。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "ウィリアム・ゴドウィンの「政治的正義」です。分厚い本の中に時代遅れのフレーズがたくさん載っています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this" +" book." +msgstr "ボブ・ブラックの「労働廃絶論 小論集」です。掲載されている中で最も有名なエッセイは「労働廃絶論」でしょう。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" +" like this book has a surprisingly long track record of owners." +msgstr "ピエール・ジョゼフ・プルードンの「所有とは何か」です。この本は驚くほど長く所有されていたようです。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "ピョートル・クロポトキンの「パンの略取」です。表紙には、パンではなく髭もじゃの老哲学者が載っています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" +" might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "エミール・シオランの「生誕の災厄」です。表紙はかなり風化しており、大変動が起きる何十年も前に出版されたようです。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "アルトゥル・ショーペンハウアーの「意志と表象としての世界」です。解読不能なメモや落書きが載っています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" +" that the author's real name is Fereidoun M. Esfandiary." +msgstr "FM-2030の「アップウィンガーズ: 未来派宣言」です。著者の本名はフェレイドゥン・M・エスファンダイアリーであるようです。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "フレデリック・バスティアが記した多数のエッセイを一冊にまとめた「バスティア論集」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "現代のリバタリアニズムに最も影響を与えた本の一つである、ロバート・ノージックの「アナーキー・国家・ユートピア」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "ルートヴィヒ・フォン・ミーゼスの「社会主義」です。社会主義について批判的に検討しています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "初期マルクス・レーニン主義に最も影響を与えた本の一つである、ニコライ・ブハーリンの「共産主義のABC」です。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "ルートヴィヒ・フォン・ミーゼスの「反資本主義の精神構造」です。" + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "本(一般/形而上学としての様相論理学)" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies +#. of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "実在の本質についての問いに対して論理的な手段を適用することを論じる書籍です。形而上学的な問題を詳細に解説しています。" + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "本(一般/美学:批評論集)" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': +#. 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works," +" and critical analyses on the subject of beauty." +msgstr "このハードカバーの論集には、「美」をテーマにした文章や学術論文、批判的分析などが載っています。" + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "本(一般/情報の哲学)" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': +#. 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe" +" and advance semantic investigations." +msgstr "" +"概念的な本質と情報の基本原理についての批判的な研究を詳述した、大学の教科書です。学生はこの本を読むことで、一般的に意味論的研究を言葉で説明し発展させるために使われる概念的フレームワークを完璧に理解するとされています。" + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "本(一般/存在と無)" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of +#. Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A" +" key work in the existentialist tradition." +msgstr "実存主義における重要作である、ジャン=ポール・サルトルが著した「存在と無」のペーパーバック本です。" + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "本(一般/スポーツ小説)" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "" +"3流ボクサーの激動の物語です。現ヘビー級チャンピオンと戦い、人生を変えるチャンスを物にしようとする男の姿が、ペットショップで働くある美少女の心を捉えます。" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "本(一般/バントの技術)" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The +#. Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating," +" it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" +"バンティング(三角旗)の飾り方を学べると期待している人もいるかもしれませんが、これは野球に関する小説です。決勝戦の試合で、若いスター選手が大リーグも狙えるほどの高い技術を見せつけます。" + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "本(一般/タッチダウン・スペシャル)" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The +#. Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "ピザの配達人が月曜の夜に行われる試合に金を掛けるという内容の、アメリカンフットボールファンにはたまらない小説です。" + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "本(一般/トロフィーの羨望)" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "天才テニスプレイヤーが大成したことを後悔し始めるという内容の、ペーパーバック小説です。" + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "本(一般/セミラフ)" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "プロスポーツ選手からアマチュアレポーターに転身した主人公のユーモラスな冒険を追った小説です。" + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "本(一般/ゴルフ雑食系)" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The +#. Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "恋愛とゴルフがお約束として必ず登場する短編小説集です。" + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "本(一般/ユニフォームの少年)" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "マイナーリーグチームの備品管理者が主人公の、忠誠心と恨みをテーマにしたハードカバー本です。" + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "本(一般/バジェットボール:限られた予算で勝つ)" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': +#. 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "ベニー・ボビンという奇妙な人物の実情と、彼が金満チームであるオーランド・オーズを倒すために非現実的な探求をする実話が記された本です。" + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "本(一般/夏の若者たち)" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The +#. Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "" +"擦り切れたペーパーバック本です。これまでのプロスポーツの歴史上最高のチームとも言われる、ある野球チームの発足当時の様子が詳しく綴られています。" + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "本(一般/バレーボール:一に準備二に準備)" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': +#. 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up" +" your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "" +"「バレーボール:一に準備二に準備」は、試合のレベルアップを目指す人のための図解付きガイドです。フルカラーの写真と図で、ゲームを制するために必要な練習と技能を学べます。" + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "本(一般/ウィリアム・G・モーガン:バレーボールの父)" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', +#. 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" +"妙に小さなサイズのハードカバー本です。98ページしかない本文の中の十数ページには、粒子の粗い白黒写真が載っています。この本を読めば、バレーボールが元々「ミントンネット」と呼ばれていたことや、その発明者の生涯について詳しく学べます。" + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "本(一般/伝説のバイクツーリング)" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike +#. Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" +"「世界の伝説のバイクツーリング」というタイトルの、扱い辛い大型豪華本です。世界中のあらゆる舗装自転車道に関する豊富な情報が記されています。ニューイングランド地域の情報だけは載っていませんが、ここからパタゴニア地方まで自転車を持っていけば問題ありません。" + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "本(一般/ナタレ・エルゴ・スム)" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare +#. Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" +"「我泳ぐ、故に我あり」というラテン語タイトルの、薄いハードバック本です。「水泳の哲学」を掲げ、水泳というスポーツを有名な哲学的表現の数々を使って表現しています。悪い本ではありませんが、ちょっと変わっています。" + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "本(一般/成層圏へ:バスケットボールの進化)" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': +#. 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "「成層圏へ:バスケットボールの進化」は、長期的な社会の変化を背景にプロバスケットボール40年の歴史を描いた本です。" + +#: lang/json/BOOK_from_json.py +msgid "Anything Can Be Beautiful" +msgid_plural "Anything Can Be Beautifuls" +msgstr[0] "本(一般/誰でも美しくなれる)" + +#. ~ Description for Anything Can Be Beautiful +#: lang/json/BOOK_from_json.py +msgid "" +"Stylist, designer, and glitter goddess, Tiffynie Blust looks at the world " +"one mantra in mind: anything can be beautiful." +msgstr "" +"スタイリスト、デザイナー、きらめきの女神であるティフィニー・ブルストは、「誰でも美しくなれる」という格言を心に持って世界を見ていると言います。" + +#: lang/json/BOOK_from_json.py +msgid "The Greatest Rooms of the Century" +msgid_plural "The Greatest Rooms of the Centurys" +msgstr[0] "本(一般/世紀の偉大な部屋)" + +#. ~ Description for The Greatest Rooms of the Century +#: lang/json/BOOK_from_json.py +msgid "" +"A stunning collection of the best living spaces created and commissioned by " +"the most influential people in interior design." +msgstr "インテリアデザイン界で最も影響力のある人々に依頼して作られた最高の生活空間を揃えた、見事な写真集です。" + +#: lang/json/BOOK_from_json.py +msgid "The Hands-On Home" +msgid_plural "The Hands-On Homes" +msgstr[0] "本(一般/自宅で実践)" + +#. ~ Description for The Hands-On Home +#: lang/json/BOOK_from_json.py +msgid "" +"An ecologically-minded take on modern homemaking, this is a practical guide " +"to maximising your time in the kitchen and beyond." +msgstr "エコロジーに配慮した現代の家庭料理の紹介と、キッチンでの時間を最大限に活用するための実用的なガイドが載っています。" + +#: lang/json/BOOK_from_json.py +msgid "Rooms We Love" +msgid_plural "Rooms We Loves" +msgstr[0] "本(一般/私の好きな部屋)" + +#. ~ Description for Rooms We Love +#: lang/json/BOOK_from_json.py +msgid "" +"This is a guide on how to affordably decorate rooms to suit your " +"personality. In the book, we visit rooms inspired by the needs of each " +"homeowner and will see how they transformed their rooms." +msgstr "" +"自分の性格にあわせて自室を簡単に装飾する方法を紹介しています。家主の要望を取り入れて実際に飾った部屋を紹介し、どのように部屋が変身したのかを解説しています。" + +#: lang/json/BOOK_from_json.py +msgid "New York Parties" +msgid_plural "New York Partiess" +msgstr[0] "本(一般/ニューヨーク・パーティー)" + +#. ~ Description for New York Parties +#: lang/json/BOOK_from_json.py +msgid "" +"Visit the homes of savvy tastemakers from the worlds of fashion, finance, " +"and design, with this book of lavish photography." +msgstr "ファッション、金融、デザインの世界で活躍するセンスの良い流行の仕掛人たちの部屋を写した、豪華な写真集です。" + +#: lang/json/BOOK_from_json.py +msgid "Best Signature Outdoor Kitchens" +msgid_plural "Best Signature Outdoor Kitchenss" +msgstr[0] "本(一般/最高のアウトドアキッチン)" + +#. ~ Description for Best Signature Outdoor Kitchens +#: lang/json/BOOK_from_json.py +msgid "" +"Outdoor space is one of the hottest amenities being considered by new and " +"existing homeowners. This book will show you how to turn any deck, patio, " +"or other outside area into a great place to cook." +msgstr "" +"屋外スペースは、新築か中古かにかかわらず住宅所有者が気になる最もホットな設備の一つです。本書では、デッキや中庭などの様々な屋外エリアを調理に最適な場所に改造する方法を紹介します。" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Using Plants to Transform Your Home" +msgid_plural "The Art of Using Plants to Transform Your Homes" +msgstr[0] "本(一般/自宅が変身植物アート)" + +#. ~ Description for The Art of Using Plants to Transform Your Home +#: lang/json/BOOK_from_json.py +msgid "" +"Bring gorgeous greenery into your life with this delightful guide to " +"decorating your living space with a wide variety of plants. Illustrated " +"examples enable you to easily transform every corner of your interior space." +msgstr "" +"様々な植物を使って生活空間を装飾するための楽しいガイドブックです。生活に色々な緑を飾りましょう。イラスト付きで実例が紹介されており、インテリアの隅々まで簡単に変身させることができます。" + +#: lang/json/BOOK_from_json.py +msgid "Woman of Color" +msgid_plural "Woman of Colors" +msgstr[0] "本(一般/ウーマン・オブ・カラー)" + +#. ~ Description for Woman of Color +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of essays and advice on style, beauty, and motherhood." +" Part memoir, part lifestyle guide, this book reflects the author's " +"experience growing up as a woman of color in Brooklyn." +msgstr "" +"ライフスタイル、美容、母性についてのエッセイやアドバイス集です。回顧録でもありライフスタイルガイドでもある本書は、ブルックリンで育った有色人種である著者の経験を反映しています。" + +#: lang/json/BOOK_from_json.py +msgid "10 Cool Things About Being A Ring Bearer" +msgid_plural "10 Cool Things About Being A Ring Bearers" +msgstr[0] "本(一般/リングベアラーになって良かった10の事)" + +#. ~ Description for 10 Cool Things About Being A Ring Bearer +#: lang/json/BOOK_from_json.py +msgid "" +"This book is for the delightful little ring bearer in your wedding. The " +"author depicts the responsibility and the honor in being a ring bearer your " +"little angel will cherish." +msgstr "結婚式のリングベアラーについて書いた本です。著者は、大切な指輪を運ぶ小さな天使の責任と名誉について語っています。" + +#: lang/json/BOOK_from_json.py +msgid "How to Raise a Gentleman: A Civilized Guide to Parenting" +msgid_plural "How to Raise a Gentleman: A Civilized Guide to Parentings" +msgstr[0] "本(一般/紳士の育て方:文明的育児ガイド)" + +#. ~ Description for How to Raise a Gentleman: A Civilized Guide to Parenting +#: lang/json/BOOK_from_json.py +msgid "" +"A revised edition for parents who hope their little boy children will grow " +"up to be the kind of men who know which fork to use, how to treat others, " +"and generally make their parents proud." +msgstr "どの食器を使うべきか、人との接し方はどうすべきかなどが書かれた、男児を誇らしい男に育てたいと考えている親向け書籍の改訂版です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"International Approaches to Securing Radioactive Sources Against Terrorism" +msgid_plural "" +"International Approaches to Securing Radioactive Sources Against Terrorisms" +msgstr[0] "本(一般/放射線物質供給におけるテロ対策に関する国際的取り組み)" + +#. ~ Description for International Approaches to Securing Radioactive Sources +#. Against Terrorism +#: lang/json/BOOK_from_json.py +msgid "" +"This book presents how to enhance cooperation and assistance between " +"countries in support of International Atomic Energy Agency efforts to secure" +" radioactive sources against the threat of terrorism." +msgstr "" +"この本では、テロの脅威に屈することなく放射性物質の供給源を確保するための国際原子力機関の取り組みを支援するための、各国間の協力と援助の強化の方策についてを紹介しています。" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Forensic Psychiatry" +msgid_plural "Principles of Forensic Psychiatrys" +msgstr[0] "本(一般/司法精神医学の本質)" + +#. ~ Description for Principles of Forensic Psychiatry +#: lang/json/BOOK_from_json.py +msgid "" +"This text addresses standards in the assessment and treatment of aggression " +"and violence as well as psychological and neuroimaging assessments." +msgstr "この教科書では、攻撃性と暴力の評価と治療、心理学的および神経画像処理的評価基準を扱っています。" + +#: lang/json/BOOK_from_json.py +msgid "The Guide to Reflective Conflict Resolution" +msgid_plural "The Guide to Reflective Conflict Resolutions" +msgstr[0] "本(一般/内省的紛争解決ガイド)" + +#. ~ Description for The Guide to Reflective Conflict Resolution +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this hardbound book reads: \"Why should professionals care" +" about reflective practice? How do its principles and methods increase " +"competence? What characteristics distinguish reflective practitioners?\"" +msgstr "" +"このハードカバー本の裏表紙には、次のような文章が書かれています。「どうして専門家は内省訓練に関心を持つべきなのでしょうか?どのような原理と手法で効果を高めるのでしょうか?内省訓練者を特徴づけるのは何でしょうか?」" + +#: lang/json/BOOK_from_json.py +msgid "The Oxbridge Handbook of Mood Ailments" +msgid_plural "The Oxbridge Handbook of Mood Ailmentss" +msgstr[0] "本(一般/オックスブリッジ気分障害ハンドブック)" + +#. ~ Description for The Oxbridge Handbook of Mood Ailments +#: lang/json/BOOK_from_json.py +msgid "" +"The Oxbridge Handbook of Mood Ailments provides detailed coverage of the " +"characterization, understanding, and treatment of affective disorders. It " +"provides coverage of unipolar depression, bipolar disorder, and known " +"variants of these illnesses." +msgstr "" +"オックスブリッジ気分障害ハンドブックでは、気分障害の特徴と理解すべき点、治療法を詳細に網羅しています。単極性うつ病、双極性障害を含む気分障害に含まれる障害についても取り扱います。" + +#: lang/json/BOOK_from_json.py +msgid "Phonological Acquisition and Disorders" +msgid_plural "Phonological Acquisition and Disorderss" +msgstr[0] "本(一般/音韻論的習得と障害)" + +#. ~ Description for Phonological Acquisition and Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"Studying the phonologies of children with non-organic speech disorders, this" +" volume details the latest findings in optimality theory, phonological " +"acquisition and disorders. It is intended for linguists and psychologists." +msgstr "" +"非器質性音声障害児童の音韻組織を研究し、最適化理論や音韻論的習得、その生涯に関する最新の知見を詳述します。言語学者や心理学者を対象とした書籍です。" + +#: lang/json/BOOK_from_json.py +msgid "Therapeutic Gardens and Healing Spaces" +msgid_plural "Therapeutic Gardens and Healing Spacess" +msgstr[0] "本(一般/療法庭園と治療空間)" + +#. ~ Description for Therapeutic Gardens and Healing Spaces +#: lang/json/BOOK_from_json.py +msgid "" +"This book addresses how to design therapeutic gardens. It illustrates a " +"variety of landscape designs appropriate for public spaces that promote " +"mental health." +msgstr "この本は療法庭園の設計方法を取り扱っています。心の健康を促進するための、公共空間に適した様々な緑化デザインが取り扱われています。" + +#: lang/json/BOOK_from_json.py +msgid "Advances in Drug Delivery Systems" +msgid_plural "Advances in Drug Delivery Systemss" +msgstr[0] "本(一般/ドラッグデリバリーシステムの進歩)" + +#. ~ Description for Advances in Drug Delivery Systems +#: lang/json/BOOK_from_json.py +msgid "" +"This softcover reprint covers an array of topics in pharmacology. The " +"physicochemical concepts of the refinement of bioresponsive drug delivery " +"are presented in detail alongside a variety of current approaches employed " +"in the development of zero order release systems." +msgstr "" +"薬理学の様々なトピックを網羅しているソフトカバー本の復刻版です。生体応答性ドラッグデリバリーシステムに関する洗練された物理化学的発想が、ゼロ次放出技術の開発に採用されている現在の様々なアプローチと共に提示されています。" + +#: lang/json/BOOK_from_json.py +msgid "Using Art to Treat Eating Disorders" +msgid_plural "Using Art to Treat Eating Disorderss" +msgstr[0] "本(一般/摂食障害治療のためのアート活用)" + +#. ~ Description for Using Art to Treat Eating Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"This is an introductory guide for those wanting to explore the use of art to" +" address eating disorders. Art therapy is a particularly effective " +"therapeutic intervention, as it allows people to express uncomfortable " +"thoughts and feelings nonverbally." +msgstr "" +"摂食障害を治療するためにアートを活用する手法を探求したい人向けの入門書です。アートセラピーは不快な考えや感情を非言語的に表現するのに適しているため、特に効果的な治療方法と言えます。" + +#: lang/json/BOOK_from_json.py +msgid "A Clinical Guide to Video Gamers" +msgid_plural "A Clinical Guide to Video Gamerss" +msgstr[0] "本(一般/ゲーマーのための臨床ガイド)" + +#. ~ Description for A Clinical Guide to Video Gamers +#: lang/json/BOOK_from_json.py +msgid "" +"This scholarly work considers the role that games play in psychological " +"experiences and mental health. Chapters examine the factors that compel " +"individual gamers to select and identify with particular games and " +"characters, as well as the different play styles, genres, and archetypes " +"common in video games." +msgstr "" +"コンピューターゲームの心理的体験やメンタルヘルスに与える役割を考察した学術的な書籍です。個々のゲーマーが特定のゲームやキャラクターを選択したり惹かれたりする要因、各ゲームに共通する様々なプレイスタイル、ジャンル、アーキタイプなどが章立てで検証されています。" + +#: lang/json/BOOK_from_json.py +msgid "Paranoia and the History of Madness" +msgid_plural "Paranoia and the History of Madnesss" +msgstr[0] "本(一般/パラノイアと狂気の歴史)" + +#. ~ Description for Paranoia and the History of Madness +#: lang/json/BOOK_from_json.py +msgid "" +"This book is an analysis of the use and misuse of paranoia throughout " +"history and in contemporary society. The impact of paranoia on societies is" +" explored in detail." +msgstr "" +"歴史上、または現代社会におけるパラノイアという言葉の使われ方や誤用について分析した書籍です。パラノイアが社会に与える影響を詳細に探っています。" + +#: lang/json/BOOK_from_json.py +msgid "Psychoanalysis and Colonialism" +msgid_plural "Psychoanalysis and Colonialisms" +msgstr[0] "本(一般/精神分析と植民地主義)" + +#. ~ Description for Psychoanalysis and Colonialism +#: lang/json/BOOK_from_json.py +msgid "" +"Freud referred to women's sexuality as a \"dark continent\" for " +"psychoanalysis, drawing on colonial use of the same phrase to refer to " +"Africa. This book details how the problematic universalism of " +"psychoanalysis led theorists to reject its relevance for postcolonial " +"critique." +msgstr "" +"フロイトは女性を精神分析の「暗黒大陸」と評しましたが、これはこの言葉がアフリカという意味で植民地時代に使われていたことを引き合いに出したものです。本書では、精神分析における不確かな普遍主義とポストコロニアル理論批判との関連性を、理論家がどのように否定したのかについて詳細に解説しています。" + +#: lang/json/BOOK_from_json.py +msgid "The Psychology of Stalking" +msgid_plural "The Psychology of Stalkings" +msgstr[0] "本(一般/ストーカー行為の心理)" + +#. ~ Description for The Psychology of Stalking +#: lang/json/BOOK_from_json.py +msgid "" +"This book explores stalking from social, psychiatric, psychological and " +"behavioral perspectives. Topics include psychiatric diagnoses, offender-" +"victim typologies, cyberstalking, false victimization syndrome, erotomania, " +"domestic violence, the stalking of public figures, and many other aspects of" +" stalking." +msgstr "" +"本書では、社会学、精神医学、心理学、行動学の観点からストーカー行為を探ります。精神医学的診断、加害者と被害者の類型、ネットストーキング、被害者症候群、恋愛妄想、家庭内暴力、公人のストーカー行為など、様々な側面のトピックが含まれています。" + #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" msgid_plural "issues of Tactical Handgun Digest" @@ -26128,6 +26764,298 @@ msgid "" msgstr "" "伝説の物語を作り上げるために必要なすべてが詰まった、厚手のハードカバー本です。情報がたくさん書かれていますが、目当てのものを見つけるのは骨が折れそうです。" +#: lang/json/BOOK_from_json.py +msgid "Nail Your Law Firm Interview" +msgid_plural "copies of Nail Your Law Firm Interview" +msgstr[0] "本(一般/法律事務所の面接合格術)" + +#. ~ Description for {'str': 'Nail Your Law Firm Interview', 'str_pl': 'copies +#. of Nail Your Law Firm Interview'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lightweight book proclaims itself to be \"the ONLY gold star interview " +"guide for lawyers interviewing in any type of a job interview.\" It was " +"suppsed to help new lawyers find work." +msgstr "「就職を目指す弁護士向け、唯一にして最高のタイプ別面接ガイドブック」と銘打たれた、就職先を探す新人弁護士向けの薄い本です。" + +#: lang/json/BOOK_from_json.py +msgid "holybook abstract" +msgid_plural "holybook abstracts" +msgstr[0] "汎用聖書" + +#. ~ Description for holybook abstract +#: lang/json/BOOK_from_json.py +msgid "theoretically this isn't a book at all" +msgstr "理論上これは本ではありません。" + +#: lang/json/BOOK_from_json.py +msgid "Mycenacean Hymns" +msgid_plural "copies of Mycenacean Hymns" +msgstr[0] "本(一般/ミカズ賛歌)" + +#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of +#. Mycenacean Hymns'} +#: lang/json/BOOK_from_json.py +msgid "" +"A vellum book containing the hymns central to Marloss faith. As the verses " +"lead to each other, the text sings of unity and promised paradise." +msgstr "マーロスの信仰の核となる讃美歌などが記された上質皮紙製の書物です。歌詞には聖句が並び、統一と約束された楽園について歌い上げています。" + +#: lang/json/BOOK_from_json.py +msgid "King James Bible" +msgid_plural "copies of King James Bible" +msgstr[0] "本(一般/聖書:欽定訳)" + +#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King +#. James Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, which originated in England " +"in the early 1600s." +msgstr "1600年代の英国が起源の、キリスト教の聖書の英訳版です。" + +#: lang/json/BOOK_from_json.py +msgid "Eastern Orthodox Bible" +msgid_plural "copies of Eastern Orthodox Bible" +msgstr[0] "本(一般/聖書:東方正教会)" + +#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of +#. Eastern Orthodox Bible'} +#: lang/json/BOOK_from_json.py +msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." +msgstr "東方正教の聖書を英訳したものです。" + +#: lang/json/BOOK_from_json.py +msgid "Gideon Bible" +msgid_plural "copies of Gideon Bible" +msgstr[0] "本(一般/聖書:ギデオン)" + +#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon +#. Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, distributed free of charge by" +" Gideons International." +msgstr "英語に翻訳されたキリスト教の聖書は、ギデオンインターナショナルが無料で配布しています。" + +#: lang/json/BOOK_from_json.py +msgid "The Guru Granth Sahib" +msgid_plural "copies of The Guru Granth Sahib" +msgstr[0] "本(一般/グル・グラント・サーヒブ)" + +#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The +#. Guru Granth Sahib'} +#: lang/json/BOOK_from_json.py +msgid "A single-volume copy of the central religious texts of Sikhism." +msgstr "シク教の中心的な宗教書である教典を一冊にまとめたものです。" + +#: lang/json/BOOK_from_json.py +msgid "Hadith" +msgid_plural "copies of Hadith" +msgstr[0] "本(一般/ハディース)" + +#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} +#: lang/json/BOOK_from_json.py +msgid "" +"A Muslim religious text containing an account of the sayings and actions of " +"the prophet Muhammad." +msgstr "預言者ムハンマドの語録や行動指針などが書かれた、イスラム教徒の教本です。" + +#: lang/json/BOOK_from_json.py +msgid "Principia Discordia" +msgid_plural "copies of Principia Discordia" +msgstr[0] "本(一般/プリンキピアディスコルディア)" + +#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of +#. Principia Discordia'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of Discordianism. It seems to " +"primarily concern chaos, and features a card in the back which informs you " +"that you are now a 'genuine and authorized Pope of Discordia'." +msgstr "" +"ディスコルディア崇拝を体現したと言われる書物です。混沌とした印象の本で、裏表紙に付いているカードには「今をもってあなたを正当なるディスコルディアの教主とする」と書かれています。" + +#: lang/json/BOOK_from_json.py +msgid "The Kojiki" +msgid_plural "copies of The Kojiki" +msgstr[0] "本(一般/古事記)" + +#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} +#: lang/json/BOOK_from_json.py +msgid "" +"The oldest extant chronicle of Japan's myths and history, the stories " +"contained in the Kojiki are part of the inspiration behind Shinto practices." +msgstr "日本に現存する最古の書物で、神話と歴史について記されています。この物語は神道の精神的源流になりました。" + +#: lang/json/BOOK_from_json.py +msgid "The Book of Mormon" +msgid_plural "copies of The Book of Mormon" +msgstr[0] "本(一般/モルモン書)" + +#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The +#. Book of Mormon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The sacred text of the Latter Day Saint movement of Christianity, originally" +" published in 1830 by Joseph Smith." +msgstr "1830年にジョセフ・スミス・ジュニアによって創始された、末日聖徒イエス・キリスト教会の聖典です。" + +#: lang/json/BOOK_from_json.py +msgid "The Gospel of the Flying Spaghetti Monster" +msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" +msgstr[0] "本(一般/空飛ぶスパゲッティモンスター教の福音書)" + +#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', +#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of the Church of the Flying Spaghetti " +"Monster. It seems to involve a lot of pirates and some sort of invisible " +"drunken monster made of pasta." +msgstr "" +"空飛ぶスパゲッティモンスター教の主な信条を具体的に綴った福音書です。たくさんの海賊達や、パスタでできた大酒呑みの透明な怪物について書いてあります。" + +#: lang/json/BOOK_from_json.py +msgid "Quran" +msgid_plural "copies of Quran" +msgstr[0] "本(一般/コーラン)" + +#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Muslim book of holy scriptures, with " +"explanatory notes and commentaries to aid in understanding." +msgstr "英訳されたイスラム教の聖書です。理解を助けるための注記と解説が付いています。" + +#: lang/json/BOOK_from_json.py +msgid "The Satanic Bible" +msgid_plural "copies of The Satanic Bible" +msgstr[0] "本(一般/サタンの聖書)" + +#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The +#. Satanic Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of essays, observations, and rituals published by Anton LaVey " +"in 1969." +msgstr "アントン・ラヴェイが記したエッセイ、観察報告、儀式の解説などを集めた1969年出版の書籍です。" + +#: lang/json/BOOK_from_json.py +msgid "Dianetics" +msgid_plural "copies of Dianetics" +msgstr[0] "本(一般/ダイアネティックス)" + +#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book is the canonical text of Scientology. Written by a science " +"fiction author, it contains self-improvement techniques and musings on " +"psychology called Dianetics." +msgstr "" +"サイエントロジーの正しき教典です。あるSF作家によって執筆されたもので、ダイアネティックスと呼ばれる自己啓発の技術や心理学的思索について記されています。" + +#: lang/json/BOOK_from_json.py +msgid "The Book of the SubGenius" +msgid_plural "copies of The Book of the SubGenius" +msgstr[0] "本(一般/サブジーニアスの書)" + +#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of +#. The Book of the SubGenius'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book about the Church of the SubGenius. It seems to involve a salesman " +"named J. R. \"Bob\" Dobbs and a concept called 'slack'." +msgstr "サブジーニアス教に関する書籍です。J.R.\"ボブ\"・ドッブスという名のセールスマンと「ぐうたら」と呼ばれる教義について書いてあるようです。" + +#: lang/json/BOOK_from_json.py +msgid "The Sutras of the Buddha" +msgid_plural "copies of The Sutras of the Buddha" +msgstr[0] "本(一般/仏典)" + +#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of +#. The Sutras of the Buddha'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of discourses attributed to the Buddha and his close disciples." +msgstr "ブッダやその弟子達の談話集です。" + +#: lang/json/BOOK_from_json.py +msgid "Talmud" +msgid_plural "copies of the Talmud" +msgstr[0] "本(一般/タルムード)" + +#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of the Talmud'} +#: lang/json/BOOK_from_json.py +msgid "" +"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " +"Hebrew Bible with teachings and opinions of thousands of rabbis." +msgstr "" +"ラビ・ユダヤ教の中枢的な本の一つです。タルムードは多くの場合ユダヤ人の聖書であると説明され、数千人のラビ達が遺した尊い教示と所信が記されています。" + +#: lang/json/BOOK_from_json.py +msgid "Tanakh" +msgid_plural "copies of Tanakh" +msgstr[0] "本(一般/タナハ)" + +#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single-volume book containing the complete canon of the Jewish Bible." +msgstr "ユダヤ人の完全な規範が書かれた、ユダヤ教の分厚い聖書です。" + +#: lang/json/BOOK_from_json.py +msgid "The Tripitaka" +msgid_plural "copies of The Tripitaka" +msgstr[0] "本(一般/大蔵経)" + +#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The +#. Tripitaka'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Buddhist writings describing their canons of " +"scriptures." +msgstr "仏教の聖なる言葉を集めた聖典です。" + +#: lang/json/BOOK_from_json.py +msgid "The Upanishads" +msgid_plural "copies of The Upanishads" +msgstr[0] "本(一般/ウパニシャッド)" + +#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The +#. Upanishads'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Hindu writings regarding the nature of reality and " +"describing the character and form of human salvation." +msgstr "ヒンドゥーの聖なる言葉を集めた本です。宇宙の真の姿について、人格の評価について、また人の救済のあり方について述べられています。" + +#: lang/json/BOOK_from_json.py +msgid "The Four Vedas" +msgid_plural "copies of The Four Vedas" +msgstr[0] "本(一般/ヴェーダ)" + +#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four +#. Vedas'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single volume containing all four Vedas, which are the oldest scriptures " +"of Hinduism." +msgstr "4部のヴェーダが書かれた、ヒンドゥー教最古の分厚い経典です。" + +#: lang/json/BOOK_from_json.py +msgid "Hávamál" +msgid_plural "copies of Hávamál" +msgstr[0] "本(一般/ハヴァマール)" + +#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of several Old Norse poems. The poems contain " +"proverbs and stories attributed to the god Odin, many transcribed from oral " +"history." +msgstr " 古ノルド語の詩集を英語に翻訳したものです。オーディンにまつわることわざや言い伝えが記されています。" + #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" msgid_plural "Duelist's Annuals" @@ -26402,6 +27330,20 @@ msgid "" "professional clothing designer." msgstr "プロの服飾デザイナーに必要な情報が網羅されているハードカバーの分厚い本です。" +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of +#. Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -26533,9 +27475,311 @@ msgstr "" "レスリングに関するリング綴じのマニュアルです。安っぽい紙にコピー機で印刷されているようですが、素手格闘に関する有用な知識が多数掲載されています。" #: lang/json/BOOK_from_json.py -msgid "readable magazine" -msgid_plural "readable magazines" -msgstr[0] "雑誌" +msgid "children's book" +msgid_plural "children's books" +msgstr[0] "本(一般/絵本)" + +#. ~ Description for {'str': "children's book"} +#: lang/json/BOOK_from_json.py +msgid "" +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the dead walked" +" and the world moved on." +msgstr "子供が読む事を想定した小さな本です。色鮮やかな漫画のキャラクターや優しい物語は、死者が歩き回る今の世界とは別次元のものに思えます。" + +#: lang/json/BOOK_from_json.py +msgid "book of fairy tales" +msgid_plural "books of fairy tales" +msgstr[0] "本(一般/童話)" + +#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy +#. tales'} +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of folklore featuring the usual cast of fairies, " +"goblins, and trolls." +msgstr "妖精やゴブリン、トロールなど良く知られた存在に注目した、民間伝承を集めた楽しい資料本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale is about a wolf who eats so much salted meat she becomes " +"trapped in the butcher's cellar." +msgstr "塩漬け肉を大量に食べるオオカミが肉屋の地下室に閉じ込められる、という内容の童話です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this traditional story of beastly intrigue a clever fox convinces an " +"elderly lion to kill a derogatory wolf." +msgstr "悪巧みする動物についての伝統的な童話です。賢いキツネが老いたライオンに対して、悪評高いオオカミを殺すよう説得します。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is an illustrated fairy tale book about a conversation between a mouse " +"and a cat." +msgstr "ネズミとネコが会話する童話の絵本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This illustrated fairy tale relates how a city mouse did visit his cousin in" +" the country, and how each regarded the other's quality of life." +msgstr "イラスト付きのおとぎ話の本です。都会のネズミがいとこの家を訪問する過程と、お互いの生活についての考えが描かれています。" + +#: lang/json/BOOK_from_json.py +msgid "A fable in which the jackal wins the day via clever foolishness." +msgstr "ジャッカルが巧妙に馬鹿を演じて勝利する寓話です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A slave mistakenly wanders into a lion's den - thus begins a fable which " +"demonstrates mutual dependence regardless of size or status." +msgstr "誤ってライオンの巣穴に迷い込んでしまった奴隷が、助け合いは大きさや身分に関係ないと説く物語です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of stories featuring \"Goldilocks and The Three " +"Bears\" on the cover." +msgstr "表紙に「ゴルディロックスと3匹のくま」を表す絵が描かれた微笑ましい童話集です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a well illustrated fairy tale about a war between the birds and the " +"beasts, with particulars on the wartime conduct and eventual fate of the " +"bat." +msgstr "鳥と獣の間で起こった戦争中にコウモリがとった行動と末路について記した、有名な童話です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " +"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" +" page." +msgstr "チェロキー族に伝わる神話と伝説が記された「ガラガラヘビの復讐」というタイトルの本です。1ページ目に鉛筆で「285D」と書かれています。" + +#: lang/json/BOOK_from_json.py +msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" +msgstr "特定の地域で伝わっている「ジャックと豆の木」に似た民話が書かれた本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale book is entitled \"Little Red Cap\". It details a red-" +"cloaked child's various encounters with talking wolves." +msgstr "「赤ずきん」というタイトルの本です。赤い頭巾を被った子供が喋るオオカミに出会う話が書かれています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of ghost stories warning about the dangers of stealing from the" +" dead." +msgstr "死者の持ち物を盗むことの危険性について警告する、幽霊についての物語です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"An Irish fairy tale in which a Celtic poet marries a princess who has been " +"cursed with the head of a pig." +msgstr "ケルト族の詩人が呪いで頭をブタに変えられた王女と結婚するという内容の、アイルランドのおとぎ話です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A book of Italian fairy tales translated into English. The cover features " +"an orange fairy juggling a lemon, a lime, and a tangerine." +msgstr "英語に翻訳されたイタリアの童話の本です。表紙にはレモン、ライム、タンジェリンをお手玉するオレンジ色の妖精が描かれています。" + +#: lang/json/BOOK_from_json.py +msgid "A book of fables about people who change into birds." +msgstr "鳥に変身する人々について記した童話です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This compendium of amusing folk tales about the devil is titled \"Hell's " +"Kettle: Legends of the Devil.\"" +msgstr "悪魔に関する面白い民話を集めた「地獄のやかん: 悪魔の伝説」というタイトルの本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This charming book of Swedish fables is titled, \"The Glass Mountain and the" +" Princess.\"" +msgstr "スウェーデンの童話が記された「ガラスの山と王女」というタイトルのかわいらしい本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of fairy tale stories warning against the consequences " +"of extreme greed." +msgstr "あまりに貪欲過ぎると酷い目に遭うことを警告する童話集です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fable book is entitled, \"The Rabbit Herd.\" Inside are woodcut " +"illustrations of a peasant boy playing his flute for a mob of mischievous " +"hares." +msgstr "「ウサギの群れ」というタイトルの寓話集です。農民の少年がやんちゃなウサギたちのために笛を吹いてやる木版画が載っています。" + +#: lang/json/BOOK_from_json.py +msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" +msgstr "「どろぼう鍋: アラブ地域の民話」というタイトルの本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a book of legends collected by Traveller Johnny Cassidy in the " +"1960s." +msgstr "1960年代に旅行家のジョニー・キャシディが収集した伝説をまとめた本です。" + +#: lang/json/BOOK_from_json.py +msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" +msgstr "グリム兄弟の「エバのふぞろいの子どもたち」です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of fables expands upon the legend of the Seven Sleepers of " +"Ephesus." +msgstr "エフェソスの七人の眠れる男たちの伝説について書いた本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this fairy tale a strong man frightens an ogre by squeezing water out of " +"a stone." +msgstr "屈強な男が岩から水を絞り出して鬼を怖がらせる童話です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of rustic folk tales bears the title: \"How to Shout Down the " +"Devil.\"" +msgstr "「悪魔の野次り倒し方」というタイトルの、素朴な民話の本です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " +"fables about logical errors and foolish misjudgements of the Kadambawa men." +msgstr "「セイロン島の民話」というタイトルの本です。カダムバワに住む男性の論理的な誤りと愚かで間違った判断に関する民話が書かれています。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " +"Stories.\"" +msgstr "「醜い名前の少女、および様々な童話」というタイトルの童話集です。" + +#: lang/json/BOOK_from_json.py +msgid "" +"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " +"suitable for small children." +msgstr "「逃げ出したパンケーキ」というタイトルの、子供向けのひょうきんな童話です。" + +#: lang/json/BOOK_from_json.py +msgid "The Adorkable Girl" +msgid_plural "The Adorkable Girls" +msgstr[0] "本(一般/ダサかわガール)" + +#. ~ Description for The Adorkable Girl +#: lang/json/BOOK_from_json.py +msgid "" +"When a therapist's daughter transfers to a new school, she decides to change" +" her personality type. As her social life begins to blossom, can she " +"maintain a healthy boundary between her home life and her public persona?" +msgstr "" +"セラピストの娘が転校をきっかけに性格を変えようと決意する物語です。社会生活は充実してきましたが、家と外でのふるまいを上手く使い分けられるのでしょうか?" + +#: lang/json/BOOK_from_json.py +msgid "Becoming Jackson" +msgid_plural "Becoming Jacksons" +msgstr[0] "本(一般/変身ジャクソン)" + +#. ~ Description for Becoming Jackson +#: lang/json/BOOK_from_json.py +msgid "" +"When Jackson gains the mystical talent to alter his appearance on command, " +"how will he continue to recognize himself in his own mirror?" +msgstr "呪文によって外見を変えられる不思議な能力を手に入れたジャクソン。鏡の中の自分はどんな姿に映るのでしょうか?" + +#: lang/json/BOOK_from_json.py +msgid "Nothing Burned" +msgid_plural "Nothing Burneds" +msgstr[0] "本(一般/もう炎上なんてしない)" + +#. ~ Description for Nothing Burned +#: lang/json/BOOK_from_json.py +msgid "" +"A teenage influencer becomes fast friends with someone who may or may not be" +" an actual demon." +msgstr "10代のインフルエンサーが、本物の悪魔かもしれない人物と友達になってしまいました。" + +#: lang/json/BOOK_from_json.py +msgid "High and Low" +msgid_plural "High and Lows" +msgstr[0] "本(一般/ハイ&ロウ)" + +#. ~ Description for High and Low +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of adolescent fiction, a young gemini discovers that the " +"astrology section of his small town newspaper is eerily preminiscent. His " +"efforts to uncover the oracle reveal more than the stars could have " +"predicted." +msgstr "" +"若者が主人公の青春小説です。ある日ジェミニは、市内新聞の占いコーナーに載っている不気味な予言を発見しました。予言の謎を解明しようとする内に、彼は星が知っている以上のことを明らかにしてしまいます。" + +#: lang/json/BOOK_from_json.py +msgid "Fire When You See My Eyes" +msgid_plural "Fire When You See My Eyess" +msgstr[0] "本(一般/瞳の中の炎)" + +#. ~ Description for Fire When You See My Eyes +#: lang/json/BOOK_from_json.py +msgid "" +"In a cataclysmic future, advanced technology gives parents access to video " +"footage of every moment of their teenage children's lives." +msgstr "遠い未来、高度なテクノロジーによって、保護者は我が子の10代の人生のあらゆる瞬間をビデオとして視聴できるようになりました。" + +#: lang/json/BOOK_from_json.py +msgid "Peanut Butter Bruised" +msgid_plural "Peanut Butter Bruiseds" +msgstr[0] "本(一般/傷だらけのピーナッツバター)" + +#. ~ Description for Peanut Butter Bruised +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of young adult fiction, a woman raised on food stamps falls in " +"love with a young cook. More importantly, she falls in love with the idea " +"of become a professional chef." +msgstr "困窮者向けの食品割引切符で育った女性が、若い料理人に恋をしますが、やがて恋よりもプロの料理人を目指すことを優先したいと考えます。" + +#: lang/json/BOOK_from_json.py +msgid "Ready When You Are" +msgid_plural "Ready When You Ares" +msgstr[0] "本(一般/いつでも準備オーケー)" + +#. ~ Description for Ready When You Are +#: lang/json/BOOK_from_json.py +msgid "" +"When three teenage girls ditch class to drive cross country together they " +"get a strong dose of life lessons on the road. This work of young adult " +"fiction explores how friendships evolve in early adulthood." +msgstr "" +"10代の少女3人がクロスカントリー競技に憧れて授業をサボり、コース上で厳しい人生のレッスンを受けます。成人間近の子供たちの友情の進展を綴ったヤングアダルト小説です。" + +#: lang/json/BOOK_from_json.py +msgid "Study of a Boy" +msgid_plural "Study of a Boys" +msgstr[0] "本(一般/少年の研究)" + +#. ~ Description for Study of a Boy +#: lang/json/BOOK_from_json.py +msgid "" +"A high school sophomore's personal journal is stolen and then leaked on " +"social media. When it goes viral he is forced simultaneously to contend " +"with both fame and betrayal." +msgstr "" +"高校2年生の個人的な日記が盗まれ、ソーシャルメディアに流出しました。被害者の男子生徒は、名声と裏切りの両方に同時に立ち向かうことを余儀なくされます。" + +#: lang/json/BOOK_from_json.py +msgid "Summer Variables" +msgid_plural "Summer Variabless" +msgstr[0] "本(一般/夏の気まぐれ)" + +#. ~ Description for Summer Variables +#: lang/json/BOOK_from_json.py +msgid "" +"In this book written primarily for young adults, a woman's modest summer " +"internship results in an incredible discovery that attracts the attention of" +" unsavory elements." +msgstr "" +"ヤングアダルト向けの小説です。夏にちょっとしたインターンシップに参加したある女性が信じられないような発見をして、悪い注目を浴びてしまいます。" #: lang/json/BOOK_from_json.py msgid "original copy of Housefly" @@ -26690,160 +27934,6 @@ msgid "" msgstr "" "現在のような状況にこそ必要な本に思えますが、内容のほとんどは推論的なフィクションであるため、実際は役に立ちません。ミ=ゴって何?トリフィドって昔の映画に出てきた奴じゃないの?" -#: lang/json/BOOK_from_json.py -msgid "Case #5846, Illegal Gun Modification" -msgid_plural "copies of Case #5846, Illegal Gun Modification" -msgstr[0] "本(学習/事例#5846・銃器違法改造)" - -#. ~ Description for {'str': 'Case #5846, Illegal Gun Modification', 'str_pl': -#. 'copies of Case #5846, Illegal Gun Modification'} -#: lang/json/BOOK_from_json.py -msgid "" -"This file details illegal gun modifications. Maybe you could learn " -"something. At least you don't have to worry about the cops anymore." -msgstr "" -"銃器の違法な改造方法が詳細に書かれています。多分、このファイルで色々なことを学習できるでしょう。安心して下さい、少なくとも、もう警察に怯える必要はないのですから。" - -#: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "ゲームセット(チェス)" - -#. ~ Description for chess set -#: lang/json/BOOK_from_json.py -msgid "" -"A wooden box containing all the equipment needed to play a game of chess." -msgstr "チェスゲームに必要な全ての道具が入った木箱です。" - -#: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "ゲームセット(チェッカー)" - -#. ~ Description for checkers set -#: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." -msgstr "チェッカーに使う丸い駒が入った木箱です。" - -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" -msgstr[0] "ゲームセット(トランプ)" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "ポーカー用の52枚のトランプです。" - -#: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" -msgstr[0] "ゲームセット(ソーサリー)" - -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of -#. Sorcery cards'} -#: lang/json/BOOK_from_json.py -msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." -msgstr "「ソーサリー」というゲームで遊ぶためのカード一式です。各カードには多種多様なモンスターの絵が描かれています。" - -#: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" -msgstr[0] "ゲームセット(ピクチャレスク)" - -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where one draws an image, and the others attempt to guess what it is." -msgstr "一人が絵を描いて、それを見たもう一人が何を描いたのか当てるゲームです。" - -#: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" -msgstr[0] "ゲームセット(キャピタリズム)" - -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players traverse around the board buying property and swindling" -" their friends." -msgstr "盤上の駒を動かして資産を買ったり友人を騙したりして遊ぶゲームです。" - -#: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" -msgstr[0] "ゲームセット(ブロブス&バンディッツ)" - -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and -#. Bandits'} -#: lang/json/BOOK_from_json.py -msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive" -" the apocalypse while surviving the apocalypse." -msgstr "" -"ポストアポカリプスの世界を舞台にしたテーブルトークRPGです。現実の終末世界をサバイバルしながら、ゲーム内でも終末世界のサバイバルごっこを楽しめます。" - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" -msgstr[0] "ゲームセット(バトルハンマー)" - -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of fantasy creatures." -msgstr "ファンタジー世界の生き物を模した小さなフィギュアを使って遊ぶストラテジーゲームです。" - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" -msgstr[0] "ゲームセット(バトルハンマー20k)" - -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of -#. Battlehammer 20k'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." -msgstr "宇宙人やグロテスクなスペースマリーンを模した小さなフィギュアを使って遊ぶストラテジーゲームです。" - -#: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" -msgstr[0] "ゲームセット(大農園の開拓者たち)" - -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of -#. Settlers of the Ranch'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game where players build settlements and trade for supplies." -msgstr "プレイヤー同士が開拓地で資源を売買するストラテジーゲームです。" - -#: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" -msgstr[0] "ゲームセット(レーダー戦術ゲーム)" - -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." -msgstr "対戦相手がどのマスに艦の駒を置いたのか推理するゲームです。" - -#: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" -msgstr[0] "ゲームセット(マーダーミステリー)" - -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder -#. Mystery'} -#: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." -msgstr "執事を殺した犯人を推理するゲームです。" - #: lang/json/BOOK_from_json.py msgid "Black Dragons: Swamp Ruins" msgid_plural "copies of Black Dragons: Swamp Ruins" @@ -26986,74 +28076,32 @@ msgstr "" "Fより」" #: lang/json/BOOK_from_json.py -msgid "The Weapons of Asgard" -msgid_plural "copies of The Weapons of Asgard" -msgstr[0] "本(学習/アスガルドの武器)" - -#. ~ Description for {'str': 'The Weapons of Asgard', 'str_pl': 'copies of The -#. Weapons of Asgard'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is about creating replicas of the weapons used by the Norse Gods, " -"such as the well-known Mjölnir. It is well illustrated with lots of " -"pictures." -msgstr "ミョルニールなどの、北欧神話の神々が用いた武器の作り方が書いてある本です。文章よりイラストと写真のほうが多そうです。" - -#: lang/json/BOOK_from_json.py -msgid "Hacking Robots for Fun & Profit" -msgid_plural "copies of Hacking Robots for Fun & Profit" -msgstr[0] "本(学習/趣味と実益のロボットハック)" - -#. ~ Description for {'str': 'Hacking Robots for Fun & Profit', 'str_pl': -#. 'copies of Hacking Robots for Fun & Profit'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book on illegally obtaining, reprogramming, and modifying robots. It has " -"lots of helpful step-by-step guides and example blueprints." -msgstr "" -"ロボットの不正入手、再プログラミング、改造について記した本です。役に立つステップバイステップ形式のガイドとサンプル用青写真がたくさん付属しています。" - -#: lang/json/BOOK_from_json.py -msgid "Popular Robotics" -msgid_plural "issues of Popular Robotics" -msgstr[0] "本(学習/ポピュラーロボティクス)" - -#. ~ Description for {'str': 'Popular Robotics', 'str_pl': 'issues of Popular -#. Robotics'} -#: lang/json/BOOK_from_json.py -msgid "A magazine about building and altering your own robots." -msgstr "個人でロボットの組立や改造をする人のための雑誌です。" - -#: lang/json/BOOK_from_json.py -msgid "Artillery and Field Gunnery" -msgid_plural "copies of Artillery and Field Gunnery" -msgstr[0] "本(学習/攻囲と野戦の砲術)" +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" +msgstr[0] "" -#. ~ Description for {'str': 'Artillery and Field Gunnery', 'str_pl': 'copies -#. of Artillery and Field Gunnery'} +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', +#. 'str_pl': 'copies of In the Beginning… Was the Command Line'} #: lang/json/BOOK_from_json.py msgid "" -"A textbook on the history of modern artillery, with a number of " -"illustrations and excerpts from various field manuals. A competent " -"handloader or mechanic might find additional uses for the more technical " -"parts of the text." +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." msgstr "" -"近現代の砲術について解説した教本です。いくつかの古典的な戦闘教本から図が引用されています。機械整備や弾薬の手詰めに関する知識があれば、有益な技術的情報を得られるかもしれません。" #: lang/json/BOOK_from_json.py -msgid "Principles of Postmortem Mind Control" -msgid_plural "copies of Principles of Postmortem Mind Control" -msgstr[0] "本(学習/死者を操る方法)" +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" +msgstr[0] "" -#. ~ Description for {'str': 'Principles of Postmortem Mind Control', -#. 'str_pl': 'copies of Principles of Postmortem Mind Control'} +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': +#. 'copies of Principles of Compiler Design'} #: lang/json/BOOK_from_json.py msgid "" -"A thick book containing research notes of a mad scientist. It describes " -"various methods of reanimating and controlling the dead. There's a lot of " -"gory details and technical language mixed in, so it's not easy to read." +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." msgstr "" -"マッドサイエンティストの独自の研究メモが要所に挟まれた分厚い書物です。死者の蘇生から支配まで様々な方法が記されています。細部には目を覆いたくなるような凄惨な描写や専門的な用語が多く、解読は容易ではないでしょう。" #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -28075,6 +29123,16 @@ msgid "" "Prohibition era." msgstr "禁酒法時代から存在する、ジンとドライベルモットで作る人気の高いカクテルです。" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -28444,6 +29502,7 @@ msgid_plural "large human stomachs" msgstr[0] "大きな人間の胃" #. ~ Description for large human stomach +#. ~ Description for large demihuman stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "大きな人型生物の胃袋です。耐久性に優れています。" @@ -28455,6 +29514,7 @@ msgstr[0] "人間の脂肪塊" #. ~ Description for {'str': 'chunk of human fat', 'str_pl': 'chunks of human #. fat'} +#. ~ Description for chunk of demihuman fat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly harvested from a human body." msgstr "人間から採取した脂肪です。" @@ -28722,6 +29782,13 @@ msgid "jerk jerky" msgid_plural "jerk jerky" msgstr[0] "人肉ジャーキー" +#. ~ Conditional name for {'str_sp': 'meat jerky'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal jerky" +msgid_plural "talking animal jerky" +msgstr[0] "亜人肉ジャーキー" + #. ~ Conditional name for {'str_sp': 'meat jerky'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -28757,6 +29824,12 @@ msgid "smoked sucker" msgid_plural "smoked sucker" msgstr[0] "人肉(燻製)" +#. ~ Conditional name for smoked meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked Narnian" +msgid_plural "smoked Narnian" +msgstr[0] "亜人肉(燻製)" + #. ~ Conditional name for smoked meat when COMPONENT_ID matches mutant #. ~ Conditional name for canned meat when COMPONENT_ID matches mutant #. ~ Conditional name for salted meat slice when COMPONENT_ID matches mutant @@ -29172,6 +30245,19 @@ msgid "" msgstr "" "人間から剥ぎ取って丁寧に折り畳んだ生の皮です。保存処理をして鞣せば保管できますが、どうしても空腹で仕方ないというのなら食べてもいいでしょう。" +#: lang/json/COMESTIBLE_from_json.py +msgid "raw demihuman skin" +msgid_plural "raw demihuman skins" +msgstr[0] "亜人皮" + +#. ~ Description for raw demihuman skin +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A carefully folded raw skin harvested from a demihuman. You can cure it for" +" storage and tanning, or eat it if you're desperate enough." +msgstr "" +"亜人から剥ぎ取って丁寧に折り畳んだ生の皮です。保存処理をして鞣せば保管できますが、どうしても空腹で仕方ないというのなら食べてもいいでしょう。" + #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" msgid_plural "raw pelts" @@ -29303,6 +30389,232 @@ msgid "" "blue veins running through it." msgstr "異界の植物から採取された、乾いた樹皮のような丈夫な物質です。わずかに透けており、光を通すと内部を輝く青い脈が通っていることを確認できます。" +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman stomach" +msgid_plural "demihuman stomachs" +msgstr[0] "亜人の胃" + +#. ~ Description for demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "The stomach of an intelligent demihuman. It is surprisingly durable." +msgstr "亜人の胃袋です。耐久性に優れています。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "large demihuman stomach" +msgid_plural "large demihuman stomachs" +msgstr[0] "大きな亜人の胃" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chunk of demihuman fat" +msgid_plural "chunk of demihuman fats" +msgstr[0] "亜人の脂肪塊" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman tallow" +msgid_plural "demihuman tallows" +msgstr[0] "精製亜人脂" + +#. ~ Description for demihuman tallow +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of cleaned and rendered demihuman fat. It will remain " +"edible for a very long time, and can be used as an ingredient in many foods " +"and projects." +msgstr "亜人の脂肪を水と混合し高温で加熱して抽出した、白く滑らかな塊です。非常に長持ちし、多くの食品や道具の材料として利用できます。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman lard" +msgid_plural "demihuman lards" +msgstr[0] "亜人脂" + +#. ~ Description for demihuman lard +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of dry-rendered demihuman fat. It will remain edible " +"for a very long time, and can be used as an ingredient in many foods and " +"projects." +msgstr "亜人の脂肪を高温で加熱して抽出した、白く滑らかな塊です。非常に長持ちし、多くの食品や道具の材料として利用できます。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman flesh" +msgid_plural "demihuman fleshs" +msgstr[0] "亜人肉" + +#. ~ Description for demihuman flesh +#: lang/json/COMESTIBLE_from_json.py +msgid "Freshly butchered from a demihuman body." +msgstr "亜人から切り落とされた肉片です。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked mongrel" +msgid_plural "cooked mongrels" +msgstr[0] "亜人肉(調理済)" + +#. ~ Description for cooked mongrel +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A freshly cooked slice of something close to being a real person. Tastes " +"like long pig." +msgstr "人間に近い生物の新鮮な薄切り肉を調理した物です。人肉の味がします。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "boiled demihuman stomach" +msgid_plural "boiled demihuman stomachs" +msgstr[0] "亜人の胃(湯煮)" + +#. ~ Description for boiled demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "茹でた亜人の胃です。味以外は問題ありません。" + +#. ~ Description for {'str': 'boiled demihuman stomach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A small boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "茹でた小さな亜人の胃です。味以外は問題ありません。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cereal" +msgid_plural "cereal" +msgstr[0] "シリアル" + +#. ~ Description for {'str_sp': 'cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A generic box of cereal, you shouldn't see this." +msgstr "箱に入った汎用シリアルです。見てはいけません。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace cereal" +msgid_plural "FoodPlace cereal" +msgstr[0] "シリアル(フードプレイス)" + +#. ~ Description for {'str_sp': 'FoodPlace cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A generic box of FoodPlace brand sugary cereal, you shouldn't see this." +msgstr "箱に入ったフードプレイスブランドの砂糖入りシリアルです。見てはいけません。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Snicker-Snacks cereal" +msgid_plural "Snicker-Snacks cereal" +msgstr[0] "シリアル(スニッカースナック)" + +#. ~ Description for {'str_sp': 'Snicker-Snacks cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Snicker-Snack cereal. Each tiny \"Snicker-Snack\" is shaped" +" like human food!" +msgstr "フードプレイスブランドのシリアルです。一粒一粒が小さな人型になっています!" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Carpenter Crunch cereal" +msgid_plural "Carpenter Crunch cereal" +msgstr[0] "シリアル(カーペンタークランチ)" + +#. ~ Description for {'str_sp': 'Carpenter Crunch cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is FoodPlace brand \"Carpenter Crunch\" cereal with the iconic " +"\"Breakfast Beaver\" mascot on the box. It tastes kind of like nails." +msgstr "フードプレイスブランドのシリアルです。箱にはマスコットキャラクターの「ブレックファストビーバー」が描かれています。釘のような味です。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Brantastic cereal" +msgid_plural "Brantastic cereal" +msgstr[0] "シリアル(ブランタスティック)" + +#. ~ Description for {'str_sp': 'Brantastic cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Brantastic\" cereal. An essential part of a complete Bran" +" breakfast." +msgstr "フードプレイスブランドのシリアルです。小麦の糠を使った朝食と言えばこれは欠かせません。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Sugar Chomps cereal" +msgid_plural "Sugar Chomps cereal" +msgstr[0] "シリアル(シュガーチョンプス)" + +#. ~ Description for {'str_sp': 'Sugar Chomps cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Sugar Chomps\" cereal. \"Chocolate Frosted Crunchy Sugar " +"Chomps: 8 essential vitamins packed into that rich, fudgy taste!\"" +msgstr "" +"フードプレイスブランドのシリアルです。「チョコがかかってカリカリおいしいシュガーチョンプス:8種類の必須ビタミンが入った濃厚でフワフワな味わい」" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Honey Pellet cereal" +msgid_plural "Honey Pellet cereal" +msgstr[0] "シリアル(ハニーペレット)" + +#. ~ Description for {'str_sp': 'Honey Pellet cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Amorphous Honey Pellet\" cereal. The box promises " +"\"Inconceivable sustenance in tiny morsels of yellow honey.\"" +msgstr "フードプレイスブランドのシリアルです。箱には「一口分の黄色い蜂蜜に驚くほどの栄養」と書かれています。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Fructose Flakes cereal" +msgid_plural "Fructose Flakes" +msgstr[0] "シリアル(フルクトースフレーク)" + +#. ~ Description for {'str': 'Fructose Flakes cereal', 'str_pl': 'Fructose +#. Flakes'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Fructose Flakes cereal. Fortified with energy enriched " +"FoodSyrup™ that supports life most efficiently." +msgstr "フードプレイスブランドのシリアルです。生命活動を最も効率的にサポートするエネルギー濃縮フードシロップ™がかかっています。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodios cereal" +msgid_plural "Foodios cereal" +msgstr[0] "シリアル(フーディオス)" + +#. ~ Description for {'str_sp': 'Foodios cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace brand \"Foodios\" cereal. Foodios™ are Foodalicious™!" +msgstr "フードプレイスブランドのシリアルです。フーディオス™はフーデリシャス™!" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sugary cereal" +msgid_plural "sugary cereals" +msgstr[0] "シリアル(砂糖)" + +#. ~ Description for sugary cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sugary breakfast cereal with marshmallows. It takes you back to your " +"childhood." +msgstr "甘いマシュマロが入った朝食用シリアルです。幼少期の思い出が蘇ります。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "wheat cereal" +msgid_plural "wheat cereal" +msgstr[0] "シリアル(小麦)" + +#. ~ Description for {'str_sp': 'wheat cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " +"your heart." +msgstr "全粒穀シリアルです。非常に美味しく、元気が湧く食事だと宣伝されています。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "corn cereal" +msgid_plural "corn cereals" +msgstr[0] "シリアル(コーン)" + +#. ~ Description for corn cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "Plain cornflake cereal. They're not that good, but it beats nothing." +msgstr "あっさりとしたコーンフレークのシリアルです。さほど美味しくありませんが、何もないよりは良いでしょう。" + #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "raw milk" msgid_plural "raw milk" @@ -29669,8 +30981,8 @@ msgstr[0] "クランベリージュース" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." -msgstr "マサチューセッツ州産のクランベリーから作ったジュースです。栄養価も高く、美味しいです。" +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." +msgstr "マサチューセッツ州産のクランベリーから作ったジュースです。かなり酸っぱいですが、栄養は豊富です。" #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -30051,6 +31363,68 @@ msgstr[0] "ミネラルウォーター" msgid "Fancy mineral water, so fancy it makes you feel fancy just holding it." msgstr "特別なボトルに入った上質な天然水です。上質な水を持っていると、何だか特別な気分になりますね。" +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -30117,29 +31491,6 @@ msgid "" " honey. This honey won't spoil and is good for your digestion." msgstr "蜂蜜はミツバチが作り出す自然の食料です。この蜂蜜は「森の蜂蜜」と呼ばれ、液体の状態を保っています。蜂蜜は腐らず、消化も優れています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "peanut butter" -msgid_plural "peanut butters" -msgstr[0] "ピーナッツバター" - -#. ~ Description for peanut butter -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A brown goo that tastes very little like its namesake. It's not bad, but " -"it'll stick to the roof of your mouth." -msgstr "" -"ねっとりとした硬さのある茶色のペーストです。舐めると確かにピーナッツとバターのような味がします。美味しいのはいいのですが、上顎にべたべたと張り付きます。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "imitation peanutbutter" -msgid_plural "imitation peanutbutters" -msgstr[0] "代用ピーナッツバター" - -#. ~ Description for imitation peanutbutter -#: lang/json/COMESTIBLE_from_json.py -msgid "A thick, nutty brown paste." -msgstr "ナッツの風味豊かな濃厚な茶色いペーストです。" - #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" msgid_plural "vinegar" @@ -30221,6 +31572,18 @@ msgid "chicken egg" msgid_plural "chicken eggs" msgstr[0] "卵(ニワトリ)" +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" +msgstr[0] "" + +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" @@ -30636,6 +31999,18 @@ msgid "" msgstr "" "調理済みの柔らかい果物がぐっちょりと詰まっています。味気なく、ドロドロしていて、色褪せています。果物を食べたぞという気分にはちょっとなれません。" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -31497,28 +32872,6 @@ msgstr "カラメルです。健康にはよくありません。" msgid "Betcha can't eat just one." msgstr "やめられない、止まらない。" -#: lang/json/COMESTIBLE_from_json.py -msgid "sugary cereal" -msgid_plural "sugary cereals" -msgstr[0] "シリアル(砂糖)" - -#. ~ Description for sugary cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sugary breakfast cereal with marshmallows. It takes you back to your " -"childhood." -msgstr "甘いマシュマロが入った朝食用シリアルです。幼少期の思い出が蘇ります。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "corn cereal" -msgid_plural "corn cereals" -msgstr[0] "シリアル(コーン)" - -#. ~ Description for corn cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "あっさりとしたコーンフレークのシリアルです。さほど美味しくありませんが、何もないよりは良いでしょう。" - #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" @@ -31555,6 +32908,13 @@ msgid "niño nachos" msgid_plural "niño nachos" msgstr[0] "ナチョス(人肉)" +#. ~ Conditional name for {'str_sp': 'meat nachos'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos" +msgid_plural "nibelung nachos" +msgstr[0] "ナチョス(亜人肉)" + #. ~ Conditional name for {'str_sp': 'meat nachos'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -31581,6 +32941,13 @@ msgid "niño nachos with cheese" msgid_plural "niño nachos with cheese" msgstr[0] "ナチョス(人肉とチーズ)" +#. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos with cheese" +msgid_plural "nibelung nachos with cheese" +msgstr[0] "ナチョス(亜人肉とチーズ)" + #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when #. COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -31812,6 +33179,12 @@ msgid "raw Mannwurst" msgid_plural "raw Mannwursts" msgstr[0] "生人肉ソーセージ" +#. ~ Conditional name for raw sausage when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "raw killbasa" +msgid_plural "raw killbasas" +msgstr[0] "生亜人肉ソーセージ" + #. ~ Conditional name for raw sausage when COMPONENT_ID matches mutant #. ~ Conditional name for smoked sausage when COMPONENT_ID matches mutant #. ~ Conditional name for cooked sausage when COMPONENT_ID matches mutant @@ -31839,6 +33212,13 @@ msgid "smoked Mannwurst" msgid_plural "smoked Mannwursts" msgstr[0] "人肉ソーセージ(燻製)" +#. ~ Conditional name for smoked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked killbasa" +msgid_plural "smoked killbasas" +msgstr[0] "亜人肉(燻製)" + #. ~ Description for smoked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." @@ -31855,6 +33235,13 @@ msgid "cooked Mannwurst" msgid_plural "cooked Mannwursts" msgstr[0] "人肉ソーセージ(調理済)" +#. ~ Conditional name for cooked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked killbasa" +msgid_plural "cooked killbasas" +msgstr[0] "亜人肉ソーセージ" + #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." @@ -31881,6 +33268,13 @@ msgid "Mannbrat" msgid_plural "Mannbrats" msgstr[0] "人肉ブラートヴォルスト" +#. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "frankenfurter" +msgid_plural "frankenfurters" +msgstr[0] "亜人肉ブラートヴォルスト" + #. ~ Conditional name for {'str': 'bratwurst'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -31988,6 +33382,13 @@ msgid "cheapskate %s" msgid_plural "cheapskate %s" msgstr[0] "人肉%s" +#. ~ Conditional name for currywurst when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "confusing %s" +msgid_plural "confusing %s" +msgstr[0] "亜人肉%s" + #. ~ Conditional name for currywurst when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32021,6 +33422,14 @@ msgid "amoral %s" msgid_plural "amoral %s" msgstr[0] "人肉%s" +#. ~ Conditional name for {'str': 'aspic'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orwell's %s" +msgid_plural "Orwell's %s" +msgstr[0] "亜人肉%s" + #. ~ Description for {'str': 'aspic'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -32116,6 +33525,14 @@ msgid "brat %s" msgid_plural "brat %s" msgstr[0] "人肉%s" +#. ~ Conditional name for {'str_sp': 'bologna'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Tumnis %s" +msgid_plural "Tumnis %s" +msgstr[0] "亜人肉%s" + #. ~ Conditional name for {'str_sp': 'bologna'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -32195,6 +33612,13 @@ msgid "Mannwurst gravy" msgid_plural "Mannwurst gravies" msgstr[0] "人肉ソーセージグレービー" +#. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage +#. gravies'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "killbasa gravy" +msgid_plural "killbasa gravies" +msgstr[0] "亜人肉ソーセージグレービー" + #. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage #. gravies'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32222,6 +33646,14 @@ msgid "prepper %s" msgid_plural "prepper %s" msgstr[0] "人肉%s" +#. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orley %s" +msgid_plural "Orley %s" +msgstr[0] "亜人肉%s" + #. ~ Conditional name for {'str_sp': 'pemmican'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -32246,9 +33678,16 @@ msgstr[0] "ハンバーグヘルパー" #. ~ Conditional name for hamburger helper when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgid_plural "hobo helpers" +msgid_plural "hobo helper" msgstr[0] "人肉ハンバーグヘルパー" +#. ~ Conditional name for hamburger helper when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "halfling helper" +msgid_plural "halfling helper" +msgstr[0] "亜人肉ハンバーグヘルパー" + #. ~ Conditional name for hamburger helper when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32285,6 +33724,13 @@ msgid "chili con cabron" msgid_plural "chilis con cabron" msgstr[0] "チリコン人肉" +#. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con +#. carne'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "chili con Sindar" +msgid_plural "chilis con Sindar" +msgstr[0] "チリコン亜人肉" + #. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con #. carne'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32444,9 +33890,15 @@ msgstr[0] "ミートパイ" #. ~ Conditional name for meat pie when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgid_plural "prick pies" +msgid_plural "prick pie" msgstr[0] "人肉パイ" +#. ~ Conditional name for meat pie when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal pie" +msgid_plural "talking animal pie" +msgstr[0] "亜人肉パイ" + #. ~ Conditional name for meat pie when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32467,9 +33919,15 @@ msgstr[0] "ミートピザ" #. ~ Conditional name for meat pizza when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgid_plural "poser pizzas" +msgid_plural "poser pizza" msgstr[0] "人肉ピザ" +#. ~ Conditional name for meat pizza when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "protesting pizza" +msgid_plural "protesting pizza" +msgstr[0] "亜人肉ピザ" + #. ~ Conditional name for meat pizza when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32521,9 +33979,15 @@ msgstr[0] "肉(保存食)" #. ~ Conditional name for canned meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" -msgid_plural "soylent slices" +msgid_plural "soylent slice" msgstr[0] "薄切り人肉" +#. ~ Conditional name for canned meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient slice" +msgid_plural "sapient slice" +msgstr[0] "薄切り亜人肉" + #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -32539,9 +34003,16 @@ msgstr[0] "薄切り肉(塩漬け)" #. ~ Conditional name for salted meat slice when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slice" -msgid_plural "salted simpleton slices" +msgid_plural "salted simpleton slice" msgstr[0] "薄切り人肉(塩漬け)" +#. ~ Conditional name for salted meat slice when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "salted sapient slice" +msgid_plural "salted sapient slice" +msgstr[0] "薄切り亜人肉(塩漬け)" + #. ~ Description for salted meat slice #: lang/json/COMESTIBLE_from_json.py msgid "Meat slices cured in brine. Salty but tasty in a pinch." @@ -32556,9 +34027,16 @@ msgstr[0] "スパゲッティ(ボロネーゼ)" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" -msgid_plural "scoundrel spaghettis" +msgid_plural "scoundrel spaghetti" msgstr[0] "スパゲッティ(人肉)" +#. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "speaking spaghetti" +msgid_plural "speaking spaghetti" +msgstr[0] "スパゲッティ(亜人肉)" + #. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when COMPONENT_ID #. matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32584,6 +34062,13 @@ msgid "Luigi %s" msgid_plural "Luigi %s" msgstr[0] "人肉%s" +#. ~ Conditional name for lasagne when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Lab %s" +msgid_plural "Lab %s" +msgstr[0] "亜人肉%s" + #. ~ Conditional name for lasagne when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32620,6 +34105,14 @@ msgid "chump %s" msgid_plural "chump %s" msgstr[0] "人肉%s" +#. ~ Conditional name for cheeseburger when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "elf %s" +msgid_plural "elf %s" +msgstr[0] "亜人肉%s" + #. ~ Conditional name for cheeseburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32642,9 +34135,15 @@ msgstr[0] "ハンバーガー" #. ~ Conditional name for hamburger when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgid_plural "bobburgers" +msgid_plural "bobburger" msgstr[0] "人肉バーガー" +#. ~ Conditional name for hamburger when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "Moreauburger" +msgid_plural "Moreauburger" +msgstr[0] "亜人肉バーガー" + #. ~ Conditional name for hamburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32668,6 +34167,12 @@ msgid "manwich" msgid_plural "manwiches" msgstr[0] "サンドイッチ(人肉)" +#. ~ Conditional name for sloppy joe when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "manfriendwich" +msgid_plural "manfriendwiches" +msgstr[0] "亜人肉スラッピー・ジョー" + #. ~ Conditional name for sloppy joe when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32694,6 +34199,13 @@ msgid "tio %s" msgid_plural "tio %s" msgstr[0] "人肉%s" +#. ~ Conditional name for taco when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "talking %s" +msgid_plural "talking %s" +msgstr[0] "亜人肉%s" + #. ~ Conditional name for taco when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32716,9 +34228,16 @@ msgstr[0] "肉(酢漬け)" #. ~ Conditional name for pickled meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgid_plural "pickled punks" +msgid_plural "pickled punk" msgstr[0] "人肉(酢漬け)" +#. ~ Conditional name for pickled meat when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "pickled anthro" +msgid_plural "pickled anthro" +msgstr[0] "亜人肉(酢漬け)" + #. ~ Description for pickled meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -32738,6 +34257,18 @@ msgid "%s, human" msgid_plural "%s, human" msgstr[0] "%s(人肉)" +#. ~ Conditional name for dehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for rehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for {'str': 'haggis', 'str_pl': 'haggises'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "%s, demihuman" +msgid_plural "%s, demihuman" +msgstr[0] "%s(亜人肉)" + #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -33049,6 +34580,11 @@ msgid "caffeine pill" msgid_plural "caffeine pills" msgstr[0] "カフェイン剤" +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "カフェイン剤を摂取しました。" + #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -33531,8 +35067,10 @@ msgstr[0] "インフルエンザワクチン" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." -msgstr "包装された、集団接種用のインフルエンザワクチンです。インフルエンザに対する抗体を獲得できます。" +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." +msgstr "" +"包装された、集団接種用のインフルエンザワクチンです。インフルエンザ流行時に備えて、インフルエンザウイルスに対する抗体を獲得するためのものです。" #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -34090,8 +35628,8 @@ msgstr "胃薬を摂取しました。" #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." -msgstr "胸焼けを和らげ吐き気を鎮める、ドロッとしたピンク色のシロップです。蓋が計量カップを兼ねています。" +"urges." +msgstr "胸焼けを和らげ吐き気を鎮める、ドロリとしたピンク色のシロップです。" #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" @@ -34258,7 +35796,7 @@ msgstr[0] "ビーフシチュー(MRE)" msgid "" "The beef stew entree from an MRE. Sterilized using radiation, so it's safe " "to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "ビーフシチューのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "ビーフシチューMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "chili & macaroni entree" @@ -34270,7 +35808,7 @@ msgstr[0] "チリ&マカロニ(MRE)" msgid "" "The chili & macaroni entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "チリ&マカロニのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "チリ&マカロニMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "vegetarian taco entree" @@ -34282,8 +35820,7 @@ msgstr[0] "ベジタブルタコス(MRE)" msgid "" "The vegetarian taco entree from an MRE. Sterilized using radiation, so it's" " safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"ベジタブルタコスのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "ベジタブルタコスMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "macaroni & marinara entree" @@ -34295,8 +35832,32 @@ msgstr[0] "マカロニマリナーラ(MRE)" msgid "" "The macaroni & marinara entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"マカロニマリナーラのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "マカロニマリナーラMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "spinach fettuccine entree" +msgid_plural "spinach fettuccine entrees" +msgstr[0] "ホウレンソウフェットチーネ(MRE)" + +#. ~ Description for spinach fettuccine entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The creamy spinach fettuccine entree from an MRE. Sterilized using " +"radiation, so it's safe to eat. Exposed to the atmosphere, it has started " +"to go bad." +msgstr "ホウレンソウフェットチーネMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "ratatouille entree" +msgid_plural "ratatouille entrees" +msgstr[0] "ラタトゥイユ(MRE)" + +#. ~ Description for ratatouille entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The ratatouille entree from an MRE. Sterilized using radiation, so it's " +"safe to eat. Exposed to the atmosphere, it has started to go bad." +msgstr "ラタトゥイユMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" @@ -34308,8 +35869,7 @@ msgstr[0] "チーズトルテッリーニ(MRE)" msgid "" "The cheese tortellini entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"チーズトルテッリーニのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "チーズトルテッリーニMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "mushroom fettuccine entree" @@ -34322,7 +35882,7 @@ msgid "" "The mushroom fettuccine entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"マッシュルームフェットチーネのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +"マッシュルームフェットチーネMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "Mexican chicken stew entree" @@ -34334,8 +35894,7 @@ msgstr[0] "メキシカンチキンシチュー(MRE)" msgid "" "The Mexican chicken stew entree from an MRE. Sterilized using radiation, so" " it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"メキシカンチキンシチューのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "メキシカンチキンシチューMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "chicken burrito bowl entree" @@ -34347,8 +35906,7 @@ msgstr[0] "チキンブリートボウル(MRE)" msgid "" "The chicken burrito bowl entree from an MRE. Sterilized using radiation, so" " it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"チキンブリートボウルのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "チキンブリートボウルMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "maple sausage entree" @@ -34360,8 +35918,7 @@ msgstr[0] "メープルソーセージ(MRE)" msgid "" "The maple sausage entree from an MRE. Sterilized using radiation, so it's " "safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"メープルソーセージのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "メープルソーセージMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "ravioli entree" @@ -34373,7 +35930,7 @@ msgstr[0] "ラビオリ(MRE)" msgid "" "The ravioli entree from an MRE. Sterilized using radiation, so it's safe to" " eat. Exposed to the atmosphere, it has started to go bad." -msgstr "ラビオリMREのMREに入っているです。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "ラビオリMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "pepper jack beef entree" @@ -34385,8 +35942,7 @@ msgstr[0] "ペッパージャックビーフ(MRE)" msgid "" "The pepper jack beef entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"ペッパージャックビーフのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "ペッパージャックビーフMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "hash browns & bacon entree" @@ -34398,8 +35954,7 @@ msgstr[0] "ハッシュドポテト&ベーコン(MRE)" msgid "" "The hash browns & bacon entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"ハッシュドポテトベーコンのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "ハッシュドポテトベーコンMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "lemon pepper tuna entree" @@ -34411,8 +35966,7 @@ msgstr[0] "レモンペッパーツナ(MRE)" msgid "" "The lemon pepper tuna entree from an MRE. Sterilized using radiation, so " "it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"レモンペッパーツナのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "レモンペッパーツナMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "asian beef & vegetables entree" @@ -34424,8 +35978,7 @@ msgstr[0] "アジアンビーフ&ベジタブル(MRE)" msgid "" "The asian beef & vegetables entree from an MRE. Sterilized using radiation," " so it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"アジアンビーフ&ベジタブルのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "アジアンビーフ&ベジタブルMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "chicken pesto & pasta entree" @@ -34437,8 +35990,7 @@ msgstr[0] "チキンジェノベーゼパスタ(MRE)" msgid "" "The chicken pesto & pasta entree from an MRE. Sterilized using radiation, " "so it's safe to eat. Exposed to the atmosphere, it has started to go bad." -msgstr "" -"チキンジェノベーゼパスタのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +msgstr "チキンジェノベーゼパスタMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "southwest beef & beans entree" @@ -34451,7 +36003,7 @@ msgid "" "The southwest beef & beans entree from an MRE. Sterilized using radiation, " "so it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "" -"サウスウエストビーフ&ビーンズのMREに入っている主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" +"サウスウエストビーフ&ビーンズMREの主食です。放射線照射で滅菌処理されており、安全に食べられます。空気に触れており、時間が経つと腐敗します。" #: lang/json/COMESTIBLE_from_json.py msgid "frankfurters & beans entree" @@ -35257,6 +36809,39 @@ msgstr[0] "ピーカンナッツアンブロシア" msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." msgstr "美味しいヒッコリーナッツアンブロシアです。神々の飲料です。" +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter" +msgid_plural "peanut butters" +msgstr[0] "ピーナッツバター" + +#. ~ Description for peanut butter +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A brown goo that tastes very little like its namesake. It's not bad, but " +"it'll stick to the roof of your mouth." +msgstr "" +"ねっとりとした硬さのある茶色のペーストです。舐めると確かにピーナッツとバターのような味がします。美味しいのはいいのですが、上顎にべたべたと張り付きます。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "imitation peanutbutter" +msgid_plural "imitation peanutbutters" +msgstr[0] "代用ピーナッツバター" + +#. ~ Description for imitation peanutbutter +#: lang/json/COMESTIBLE_from_json.py +msgid "A thick, nutty brown paste." +msgstr "ナッツの風味豊かな濃厚な茶色いペーストです。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter spread" +msgid_plural "peanut butter spreads" +msgstr[0] "ピーナッツスプレッド" + +#. ~ Description for peanut butter spread +#: lang/json/COMESTIBLE_from_json.py +msgid "Processed peanut butter spread.." +msgstr "固形化したピーナッツバターです。" + #: lang/json/COMESTIBLE_from_json.py msgid "acorns" msgid_plural "acorns" @@ -35504,12 +37089,12 @@ msgstr[0] "ローヤルゼリー" #. ~ Description for {'str': 'royal jelly', 'str_pl': 'royal jellies'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A translucent hexagonal chunk of wax, filled with dense, milky jelly. " -"Though some hold it as a panacea, it doesn't have any medical benefit. " -"Still, it is delicious, and rich with the most beneficial substances the " +"A translucent hexagonal chunk of wax, filled with dense, milky, bitter and " +"acidic-tasting jelly. Though some hold it as a panacea, it doesn't have any" +" medical benefit. Still it is rich with the most beneficial substances the " "hive can produce." msgstr "" -"並んだ半透明の蝋の塊で作られた六角形の穴の中に、濃厚な乳白色のゼリーが入っています。万能薬だと思っている人もいますが、医学的根拠は特にありません。しかし、健康に良い物質が豊富に含まれており美味しい点は本当です。" +"並んだ半透明の蝋の塊で作られた六角形の穴の中に、濃厚な乳白色のゼリーが入っています。万能薬だと思っている人もいますが、医学的根拠は特にありません。しかし、健康に良い物質が豊富に含まれている点は本当です。" #: lang/json/COMESTIBLE_from_json.py msgid "marloss berry" @@ -35725,6 +37310,16 @@ msgid "" " and is guaranteed 100% edible!" msgstr "フードプレイスのベストセラー商品、デリシャスフード™は本物の食材を使って作られており、100%食用に適している事を保証します!" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "デリシャスバー™" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "本物のデリシャス物質がポケットサイズになりました!" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -35874,6 +37469,30 @@ msgstr[0] "花蜜" msgid "Some nectar. Seeing this item is a bug." msgstr "花の蜜です。このアイテムが見えている場合はバグが発生しています。" +#: lang/json/COMESTIBLE_from_json.py +msgid "tea bag" +msgid_plural "tea bags" +msgstr[0] "ティーバッグ" + +#. ~ Description for {'str': 'tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with tea leafs inside. Put it into boiling water to get your " +"cup of tea." +msgstr "中に茶葉が入った紙袋です。沸騰したお湯の中に入れて紅茶を淹れましょう。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "herbal tea bag" +msgid_plural "herbal tea bags" +msgstr[0] "ハーブティーバッグ" + +#. ~ Description for {'str': 'herbal tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with dried wild herbs inside. Put it into boiling water to " +"make some healthy warm drink." +msgstr "中に乾燥ハーブが入った紙袋です。沸騰したお湯の中に入れて健康的なハーブティーを淹れましょう。" + #: lang/json/COMESTIBLE_from_json.py msgid "protein drink" msgid_plural "protein drinks" @@ -35882,9 +37501,16 @@ msgstr[0] "プロテインドリンク" #. ~ Conditional name for protein drink when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" -msgid_plural "soylent green drinks" +msgid_plural "soylent green drink" msgstr[0] "人肉ドリンク" +#. ~ Conditional name for protein drink when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green drink" +msgid_plural "sapient green drink" +msgstr[0] "亜人肉ドリンク" + #. ~ Conditional name for protein drink when COMPONENT_ID matches mutant #. ~ Conditional name for {'str_sp': 'protein powder'} when COMPONENT_ID #. matches mutant @@ -35916,6 +37542,13 @@ msgid "soylent green powder" msgid_plural "soylent green powder" msgstr[0] "人肉パウダー" +#. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green powder" +msgid_plural "sapient green powder" +msgstr[0] "亜人肉パウダー" + #. ~ Description for {'str_sp': 'protein powder'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -35931,15 +37564,16 @@ msgstr[0] "プロテインバー" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the" -" product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you" -" hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable" +" to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" -"SoyPelusa社がクラウドファンディングを募り大成功を収めたプロテインバーです。人間はこのバーを一日3本食べれば永遠に生きられると言われています。出資者が製品を受け取った後で、ある欠陥が見つかりました。食べた者の大多数が、これを食べ続けるくらいなら餓死した方がマシだと感じたのです。その後SoyPelusa社は倒産しましたが、避難所の備蓄食料に丁度いいと考えたFEMAは、売れ残って倉庫に積まれていた製品をすべて買い取りました。そして、この有名なクラウドファンディングの遺産は生存者の手に渡りました。愉快な話ですね。" +"SoyPelusa社がクラウドファンディングを募り大成功を収めた、「ダイズーム」という名のプロテインバーです。人間はこのバーを一日3本食べれば永遠に生きられると言われています。出資者が製品を受け取った後で、ある欠陥が見つかりました。食べた者の大多数が、これを食べ続けるくらいなら餓死した方がマシだと感じたのです。その後SoyPelusa社は倒産しましたが、避難所の備蓄食料に丁度いいと考えたFEMAは、売れ残って倉庫に積まれていた製品をすべて買い取りました。そして、この有名なクラウドファンディングの遺産は生存者の手に渡りました。愉快な話ですね。" #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" @@ -35949,9 +37583,16 @@ msgstr[0] "プロテインシェイク" #. ~ Conditional name for protein shake when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgid_plural "soylent green shakes" +msgid_plural "soylent green shake" msgstr[0] "人肉シェイク" +#. ~ Conditional name for protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green shake" +msgid_plural "sapient green shake" +msgstr[0] "亜人肉シェイク" + #. ~ Description for protein shake #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -35968,9 +37609,16 @@ msgstr[0] "強化プロテインシェイク" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgid_plural "fortified soylent green shakes" +msgid_plural "fortified soylent green shake" msgstr[0] "強化人肉シェイク" +#. ~ Conditional name for fortified protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "fortified sapient green shake" +msgid_plural "fortified sapient green shake" +msgstr[0] "強化亜人肉シェイク" + #. ~ Description for fortified protein shake #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -36794,6 +38442,16 @@ msgid "" msgstr "" "未成熟なシダ植物の穂先です。バイオリンの頭のようにくるっと丸まっています。調理すれば美味しく食べられますが、生食は食中毒のおそれがあります。" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "ピーマン" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "緑色のピーマンです。調理して食べましょう。" + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" @@ -36915,6 +38573,13 @@ msgid "slob sandwich" msgid_plural "slob sandwiches" msgstr[0] "サンドイッチ(人肉)" +#. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat +#. sandwiches'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "satyr sandwich" +msgid_plural "satyr sandwiches" +msgstr[0] "サンドイッチ(亜人肉)" + #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when COMPONENT_ID matches mutant #. ~ Conditional name for meat soup when COMPONENT_ID matches mutant @@ -37810,6 +39475,21 @@ msgstr "カモミールの種です。" msgid "chamomile" msgstr "カモミール" +#: lang/json/COMESTIBLE_from_json.py +msgid "spurge seeds" +msgid_plural "spurge seeds" +msgstr[0] "種(スパージ)" + +#. ~ Description for {'str_sp': 'spurge seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some spurge seeds." +msgstr "スパージの種です。" + +#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py +msgid "spurge" +msgid_plural "spurges" +msgstr[0] "スパージ" + #: lang/json/COMESTIBLE_from_json.py msgid "popcorn seeds" msgid_plural "popcorn seeds" @@ -37840,6 +39520,16 @@ msgstr[0] "種(カラシナ)" msgid "Some mustard seeds. Could be ground into mustard powder." msgstr "カラシナの種です。細かく砕くとマスタードパウダーになります。" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "種(ピーマン)" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "ピーマンの種です。" + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -37855,6 +39545,13 @@ msgid "bone broth" msgid_plural "bone broths" msgstr[0] "だし汁(骨)" +#. ~ Conditional name for bone broth when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "demihuman %s" +msgid_plural "demihuman %s" +msgstr[0] "%s(亜人骨)" + #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." @@ -37878,9 +39575,15 @@ msgstr[0] "肉煮込みスープ" #. ~ Conditional name for meat soup when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgid_plural "sap soups" +msgid_plural "sap soup" msgstr[0] "人肉煮込みスープ" +#. ~ Conditional name for meat soup when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "goblin soup" +msgid_plural "goblin soup" +msgstr[0] "亜人肉煮込みスープ" + #. ~ Description for meat soup #: lang/json/COMESTIBLE_from_json.py msgid "A nutritious and delicious hearty meat soup." @@ -38108,8 +39811,8 @@ msgstr[0] "野草" #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " -"purslane, fireweed, and burdock." -msgstr "スミレ、サッサフラス、ミント、クローバー、スベリヒユ、ヤナギラン、ゴボウなどの食べられる野草を摘んだものです。" +"purslane, and fireweed." +msgstr "スミレにサッサフラス、ミントにクローバー、スベリヒユにヤナギランといった食べられる野草を摘んだものです。" #: lang/json/COMESTIBLE_from_json.py msgid "soy sauce" @@ -38136,6 +39839,18 @@ msgstr[0] "マスタードパウダー" msgid "A fragnant yellow powder. Not edible in this form." msgstr "香りのよい黄色の粉末です。この状態では食べられません。" +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" @@ -38669,16 +40384,16 @@ msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "油でソテーにしたゼンマイです。柔らかく美味です。" #: lang/json/COMESTIBLE_from_json.py -msgid "wheat cereal" -msgid_plural "wheat cereals" -msgstr[0] "シリアル(小麦)" +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" +msgstr[0] "ピーマン(調理済)" -#. ~ Description for wheat cereal +#. ~ Description for {'str': 'cooked bell pepper'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " -"your heart." -msgstr "全粒穀シリアルです。非常に美味しく、元気が湧く食事だと宣伝されています。" +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds" +" are removed." +msgstr "芯を取り除いて調理したピーマンです。生でそのまま食べるよりも断然美味しく食べられます。" #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py @@ -38884,7 +40599,6 @@ msgid_plural "granola" msgstr[0] "グラノーラ" #. ~ Description for {'str_sp': 'granola'} -#. ~ Description for gluten free granola #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " @@ -39489,6 +41203,11 @@ msgid "pachycephalosaurus egg" msgid_plural "pachycephalosaurus eggs" msgstr[0] "卵(パキケファロサウルス)" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -39499,6 +41218,11 @@ msgid "tyrannosaurus egg" msgid_plural "tyrannosaurus eggs" msgstr[0] "卵(ティラノサウルス)" +#: lang/json/COMESTIBLE_from_json.py +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" +msgstr[0] "卵(アルバートサウルス)" + #: lang/json/COMESTIBLE_from_json.py msgid "triceratops egg" msgid_plural "triceratops eggs" @@ -39514,6 +41238,11 @@ msgid "ankylosaurus egg" msgid_plural "ankylosaurus eggs" msgstr[0] "卵(アンキロサウルス)" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -40002,675 +41731,722 @@ msgid "" msgstr "" "我々は現時点では存在しない。少し知恵の働く人間が、デバッグ中に発見したものと推測する。我々が存在を隠している間は、我々に加わることを許可しない。" -#: lang/json/COMESTIBLE_from_json.py -msgid "necrotic head" -msgid_plural "necrotic heads" -msgstr[0] "ゾンビマンサーの頭部" - -#. ~ Description for necrotic head -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"The severed head of a zombie necromancer. Its eyes still roll in its head " -"and its jaws snap menacingly." -msgstr "切り落とされたゾンビマンサーの頭部です。まだ目が開いており、威嚇的に歯を打ち鳴らしています。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "mutagenic glob" -msgid_plural "mutagenic globs" -msgstr[0] "変異原塊" - -#. ~ Description for mutagenic glob -#: lang/json/COMESTIBLE_from_json.py -msgid "A gelatinous glob of mutagen." -msgstr "ゼラチン状に固まった変異原です。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "honey" -msgid_plural "honey" -msgstr[0] "蜂蜜" - -#. ~ Description for {'str_sp': 'honey'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Honey, that stuff bees make." -msgstr "ミツバチが作った蜂蜜です。" - #: lang/json/COMESTIBLE_from_json.py msgid "TEST pine nuts" msgid_plural "TEST pine nuts" msgstr[0] "松の実(テスト)" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fish sandwich" -msgid_plural "gluten free fish sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(魚)" - -#. ~ Description for {'str': 'gluten free fish sandwich', 'str_pl': 'gluten -#. free fish sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free and a delicious fish sandwich." -msgstr "魚を挟んだ美味しいグルテンフリーサンドイッチです。" +msgid "test bitter almonds" +msgid_plural "test bitter almonds" +msgstr[0] "" +#. ~ Description for {'str_sp': 'test bitter almonds'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable sandwich" -msgid_plural "gluten free vegetable sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(野菜)" +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when" +" eaten raw." +msgstr "" -#. ~ Description for {'str': 'gluten free vegetable sandwich', 'str_pl': -#. 'gluten free vegetable sandwiches'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluen free bread and vegetables, that's it." -msgstr "野菜をグルテンフリーパンで挟んだ物、以上だ。" +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" +msgstr[0] "" +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free granola" -msgid_plural "gluten free granolas" -msgstr[0] "グルテンフリーグラノーラ" +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat sandwich" -msgid_plural "gluten free meat sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(肉)" +msgid "test apple" +msgid_plural "test apples" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free meat sandwich', 'str_pl': 'gluten -#. free meat sandwiches'} +#. ~ Description for {'str': 'test apple'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free bread and meat, that's it." -msgstr "肉をグルテンフリーパンで挟んだ物、以上だ。" +msgid "Test apple. May contain worms, but tastes delicious!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free peanut butter sandwich" -msgid_plural "gluten free peanut butter sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(ピーナッツバター)" +msgid "test liquid" +msgid_plural "test liquid" +msgstr[0] "液体(テスト)" -#. ~ Description for {'str': 'gluten free peanut butter sandwich', 'str_pl': -#. 'gluten free peanut butter sandwiches'} +#. ~ Description for {'str_sp': 'test liquid'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some peanut butter smothered between two pieces of gluten free bread. Not " -"very filling and will stick to the roof of your mouth like glue." -msgstr "ピーナッツバターを二枚のグルテンフリーパンで挟んだものです。あまりお腹いっぱいにはなりません。よく糊のように口蓋に貼り付きます。" +"No clue what it's made of, but it's definitely liquid. Only for testing, do" +" not drink!" +msgstr "何からできているのか分かりませんが、液体であることは間違いありません。テスト用ですので、飲まないでください!" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&J sandwich" -msgid_plural "gluten free PB&J sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(PB&J)" +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free PB&J sandwich', 'str_pl': 'gluten -#. free PB&J sandwiches'} +#. ~ Description for tennis ball wine must #: lang/json/COMESTIBLE_from_json.py msgid "" -"A delicious peanut butter and jelly gluten free sandwich. It reminds you of" -" the times your mother would make you lunch." -msgstr "美味しいピーナッツバターとジャムを挟んだグルテンフリーサンドイッチです。お母さんが作ってくれたお弁当を思い出しますね。" +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&H sandwich" -msgid_plural "gluten free PB&H sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(PB&H)" +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free PB&H sandwich', 'str_pl': 'gluten -#. free PB&H sandwiches'} +#. ~ Description for {'str_sp': 'test tennis ball wine'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some damned fool put honey on this peanut butter sandwich, who in their " -"right mind- oh wait this is pretty good. Gluten free too!" -msgstr "どっかの馬鹿がこのピーナッツバターサンドイッチに蜂蜜掛けやがった、ったくどんな神経して…あれ、いけるぞこれ。しかもグルテンフリーだ!" +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&M sandwich" -msgid_plural "gluten free PB&M sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(PB&M)" +msgid "test chewing gum" +msgid_plural "test chewing gum" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free PB&M sandwich', 'str_pl': 'gluten -#. free PB&M sandwiches'} +#. ~ Description for {'str_sp': 'test chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Who knew you could mix maple syrup and peanut butter to create yet another " -"different gluten free sandwich?" -msgstr "メープルシロップとピーナッツバターを混ぜてグルテンフリーサンドイッチにするなんて、いったい誰が考えたんでしょうね?" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "lactose free hickory nut ambrosia" -msgid_plural "lactose free hickory nut ambrosias" -msgstr[0] "ヒッコリーナッツアンブロシア(乳糖不使用)" +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" +msgstr[0] "" -#. ~ Description for lactose free hickory nut ambrosia +#. ~ Description for {'str': 'test mutated thumb'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " -"made with an alternative to cows milk." -msgstr "美味しいピーカンナッツのエキスです。神々の飲料です。牛乳の代用品として使われます。" +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." +msgstr "" -#. ~ Description for cornmeal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"You think this is cornflour… or rice flour… Or something else. However, it" -" certainly is not wheat flour! It is useful for baking though." -msgstr "トウモロコシの粉か...それとも米粉か...そういった類のものです。明らかに小麦粉ではありません!パンなどを焼く際の材料になります。" +#: lang/json/CONTAINER_from_json.py +msgid "small metal tank" +msgid_plural "small metal tanks" +msgstr[0] "小型金属タンク(11.25L)" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free johnnycake" -msgid_plural "gluten free johnnycakes" -msgstr[0] "コーンケーキ(グルテンフリー)" +#. ~ Description for small metal tank +#: lang/json/CONTAINER_from_json.py +msgid "A small metal tank for holding gas or liquids. Useful for crafting." +msgstr "気体や液体を運ぶために使用する小型の金属タンクです。アイテム製作に使います。" -#. ~ Description for gluten free johnnycake -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"We all crave for cake sometimes. This is not perfect, but it is a tasty and" -" nutritious gluten free fried bread treat. " -msgstr "誰にでも時折こういうケーキを無性に食べたくなることがあるものです。美味しくて栄養価の高いグルテンフリーの揚げパンです。" +#: lang/json/ENGINE_from_json.py +msgid "internal combustion engine" +msgid_plural "internal combustion engines" +msgstr[0] "内燃エンジン" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pancake" -msgid_plural "gluten free fruit pancakes" -msgstr[0] "フルーツパンケーキ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "base diesel engine" +msgid_plural "base diesel engines" +msgstr[0] "ディーゼルエンジン(ベース)" -#. ~ Description for {'str': 'gluten free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"本物のメープルシロップを使用した、ふんわりと美味しいグルテンフリーのパンケーキに、果物を加えて、更に美味しく、健康的になるように仕上げました。" +#: lang/json/ENGINE_from_json.py +msgid "base gasoline engine" +msgid_plural "base gasoline engines" +msgstr[0] "ガソリンエンジン(ベース)" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free fruit pancake" -msgid_plural "lactose free fruit pancakes" -msgstr[0] "フルーツパンケーキ(乳糖不使用)" +#: lang/json/ENGINE_from_json.py +msgid "base steam engine" +msgid_plural "base steam engines" +msgstr[0] "蒸気エンジン(ベース)" -#. ~ Description for {'str': 'lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#: lang/json/ENGINE_from_json.py +msgid "1-cylinder engine" +msgid_plural "1-cylinder engines" +msgstr[0] "単気筒エンジン" + +#. ~ Description for {'str': '1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A single-cylinder 4-stroke combustion engine." +msgstr "1気筒4ストロークのエンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgid_plural "large 1-cylinder engines" +msgstr[0] "大型単気筒エンジン" + +#. ~ Description for {'str': 'large 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious lactose free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"本物のメープルシロップを使用した、ふんわりと美味しいラクトースフリーのパンケーキに、果物を加えて、更に美味しく、健康的になるように仕上げました。" +"A powerful high-compression single-cylinder 4-stroke combustion engine." +msgstr "1気筒4ストロークの強力な高圧縮エンジンです。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit pancake" -msgid_plural "gluten free lactose free fruit pancakes" -msgstr[0] "フルーツパンケーキ(グルテン乳糖不使用)" +#: lang/json/ENGINE_from_json.py +msgid "small 1-cylinder engine" +msgid_plural "small 1-cylinder engines" +msgstr[0] "小型単気筒エンジン" -#. ~ Description for {'str': 'gluten free lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small single-cylinder 2-stroke combustion engine." +msgstr "1気筒2ストロークの小型エンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" +msgstr[0] "軽飛行機エンジン" + +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious pancakes made out of the only things you can still eat." -" But at least it has real maple syrup, made sweeter and healthier with the " -"addition of wholesome fruit." -msgstr "" -"本物のメープルシロップを使用した、ふんわりと美味しいグルテン/ラクトースフリーのパンケーキに、果物を加えて、更に美味しく、健康的になるように仕上げました。" +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." +msgstr "定格出力150馬力の、空冷水平対向4気筒エンジンです。一般的には軽飛行機で使われています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate pancake" -msgid_plural "gluten free chocolate pancakes" -msgstr[0] "チョコレートパンケーキ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "Inline-4 engine" +msgid_plural "Inline-4 engines" +msgstr[0] "直列4気筒エンジン" -#. ~ Description for {'str': 'gluten free chocolate pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Inline-4 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small, yet powerful 4-cylinder combustion engine." +msgstr "小型ながら強力な4気筒のエンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "I6 diesel engine" +msgid_plural "I6 diesel engines" +msgstr[0] "直列6気筒ディーゼルエンジン" + +#. ~ Description for {'str': 'I6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful straight-6 diesel engine." +msgstr "強力な直列6気筒のディーゼルエンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "V-twin engine" +msgid_plural "V-twin engines" +msgstr[0] "V型2気筒エンジン" + +#. ~ Description for {'str': 'V-twin engine'} +#: lang/json/ENGINE_from_json.py +msgid "A 2-cylinder 4-stroke combustion engine." +msgstr "2気筒4ストロークのエンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "V6 engine" +msgid_plural "V6 engines" +msgstr[0] "V型6気筒エンジン" + +#. ~ Description for {'str': 'V6 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder combustion engine." +msgstr "強力な6気筒のエンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "V6 diesel engine" +msgid_plural "V6 diesel engines" +msgstr[0] "V型6気筒ディーゼルエンジン" + +#. ~ Description for {'str': 'V6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder diesel engine." +msgstr "強力な6気筒のディーゼルエンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "V8 engine" +msgid_plural "V8 engines" +msgstr[0] "V型8気筒エンジン" + +#. ~ Description for {'str': 'V8 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A large and very powerful 8-cylinder combustion engine." +msgstr "大型で強力な8気筒のエンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "V8 diesel engine" +msgid_plural "V8 diesel engines" +msgstr[0] "V型8気筒ディーゼルエンジン" + +#. ~ Description for {'str': 'V8 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 8-cylinder diesel engine." +msgstr "強力な8気筒のディーゼルエンジンです。" + +#: lang/json/ENGINE_from_json.py +msgid "V12 engine" +msgid_plural "V12 engines" +msgstr[0] "V型12気筒エンジン" + +#. ~ Description for {'str': 'V12 engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, with " -"delicious chocolate baked right in." -msgstr "本物のメープルシロップを使用した、ふんわりと美味しいグルテンフリーのパンケーキに、さらに美味しいチョコレートも加えました。" +"A massive and extremely powerful V12 engine, usually built into high end " +"sports cars." +msgstr "巨大で凄まじく強力なV型12気筒エンジンです。通常は高級スポーツカーに使用されます。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free French toast" -msgid_plural "gluten free French toasts" -msgstr[0] "フレンチトースト(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "V12 diesel engine" +msgid_plural "V12 diesel engines" +msgstr[0] "V型12気筒ディーゼルエンジン" -#. ~ Description for {'str': 'gluten free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'V12 diesel engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a milk and egg mixture then fried." -msgstr "ミルクと卵を混ぜたところにグルテンフリーの薄切りパンを浸けて、それから軽く炒めました。" +"A massive and extremely powerful V12 engine, usually built into heavy " +"trucks." +msgstr "巨大で凄まじく強力なV型12気筒エンジンです。通常は大型トラックに使用されます。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free French toast" -msgid_plural "gluten free lactose free French toasts" -msgstr[0] "フレンチトースト(グルテン乳糖不使用)" +#: lang/json/ENGINE_from_json.py +msgid "makeshift steam engine" +msgid_plural "makeshift steam engines" +msgstr[0] "簡易蒸気エンジン" -#. ~ Description for {'str': 'gluten free lactose free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'makeshift steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a lactose free milk and egg mixture " -"then fried. You never thought it was possible, but now you truly feel like " -"a post millennial." +"A small, primitive, steam engine. An integrated boiler burns coal to heat " +"water into steam, driving a reciprocating shaft. A condenser recaptures the" +" water, making this a closed cycle system." msgstr "" -"ラクトースフリーのミルクと卵を混ぜた物にグルテンフリーの薄切りパンを浸けて、それから軽く炒めました。このような食べ物ができるとは思ってもみませんでした。未来を感じますね。" +"原始的な小型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free biscuit" -msgid_plural "gluten free biscuits" -msgstr[0] "ビスケット(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "small steam engine" +msgid_plural "small steam engines" +msgstr[0] "小型蒸気エンジン" -#. ~ Description for gluten free biscuit -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Delicious and filling, this home made gluten free biscuit is good, and good " -"for you!" -msgstr "味が良く、お腹も満たされる、手作りのグルテンフリービスケットは美味くてヘルシー!" +"A small steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condenser recaptures the water, " +"making this a closed cycle system." +msgstr "" +"小型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pie" -msgid_plural "gluten free fruit pies" -msgstr[0] "フルーツパイ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "medium steam engine" +msgid_plural "medium steam engines" +msgstr[0] "中型蒸気エンジン" -#. ~ Description for gluten free fruit pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a sweet fruit filling." -msgstr "甘い果物が沢山詰まった、美味しそうなグルテンフリーのパイです。" +#. ~ Description for {'str': 'medium steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A medium-sized steam engine. An integrated boiler burns coal to heat water " +"into steam, driving a reciprocating shaft. A condenser recaptures the " +"water, making this a closed cycle system." +msgstr "" +"中型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pie" -msgid_plural "gluten free vegetable pies" -msgstr[0] "ベジタブルパイ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "1350 hp gas turbine engine" +msgid_plural "1350 hp gas turbine engines" +msgstr[0] "ガスタービンエンジン(1350馬力)" -#. ~ Description for gluten free vegetable pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious vegetable filling." -msgstr "美味しい野菜が沢山詰まった、美味しそうなグルテンフリーのパイです。" +#. ~ Description for {'str': '1350 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A gas turbine engine, usually used for military vehicles. Known for its " +"high rate of fuel consumption." +msgstr "通常は軍用車両で使われているガスタービンエンジンです。燃料消費率が高いことで知られています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pie" -msgid_plural "gluten free meat pies" -msgstr[0] "ミートパイ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "1900 hp gas turbine engine" +msgid_plural "1900 hp gas turbine engines" +msgstr[0] "ガスタービンエンジン(1900馬力)" -#. ~ Description for gluten free meat pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious meat filling." -msgstr "美味しい肉が沢山詰まった、美味しそうなグルテンフリーのパイです。" +#. ~ Description for {'str': '1900 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large gas turbine engine, usually used for military helicopters. Known " +"for its high rate of fuel consumption." +msgstr "通常は軍用ヘリコプターで使われている、大型のガスタービンエンジンです。燃料消費率が高いことで知られています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free maple pie" -msgid_plural "gluten free maple pies" -msgstr[0] "メープルパイ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "6000 hp gas turbine engine" +msgid_plural "6000 hp gas turbine engines" +msgstr[0] "ガスタービンエンジン(6000馬力)" -#. ~ Description for gluten free maple pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A sweet and delicious baked gluten free pie with pure maple syrup." -msgstr "メープルシロップをそのまま使った、甘くて美味しいグルテンフリーのパイです。" +#. ~ Description for {'str': '6000 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " +"high rate of fuel consumption." +msgstr "V-22オスプレイで使われている、非常に大型のガスタービンエンジンです。燃料消費率が高いことで知られています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pizza" -msgid_plural "gluten free vegetable pizzas" -msgstr[0] "ベジタブルピザ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "large steam engine" +msgid_plural "large steam engines" +msgstr[0] "大型蒸気エンジン" -#. ~ Description for gluten free vegetable pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " -"crust. Its smell brings back great memories." +"A large steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" -"ベジタリアンも安心して食べられる野菜のグルテンフリーピザです。厚みのあるふわふわの生地に美味しいトマトソースがたっぷりと使われています。どこか懐かしい匂いです。" +"大型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese pizza" -msgid_plural "gluten free cheese pizzas" -msgstr[0] "チーズピザ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "huge steam engine" +msgid_plural "huge steam engines" +msgstr[0] "超大型蒸気エンジン" -#. ~ Description for gluten free cheese pizza -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free pizza with molten cheese on top." -msgstr "美味しいチーズのグルテンフリーピザです。溶けたチーズで生地が見えません。" +#. ~ Description for {'str': 'huge steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "" +"超大型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pizza" -msgid_plural "gluten free meat pizzas" -msgstr[0] "ミートピザ(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "small steam turbine" +msgid_plural "small steam turbines" +msgstr[0] "小型蒸気タービン" -#. ~ Description for gluten free meat pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A meat gluten free pizza, for all the carnivores out there. Chock full of " -"minced meat and heavily seasoned." -msgstr "肉食系には堪らないグルテンフリーのミートピザです。挽肉がたっぷり入っており、濃厚な味わいを楽しめます。" +"A small steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "" +"小型の蒸気タービンです。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がタービンに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheeseburger" -msgid_plural "gluten free cheeseburgers" -msgstr[0] "チーズバーガー(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "medium steam turbine" +msgid_plural "medium steam turbines" +msgstr[0] "中型蒸気タービン" -#. ~ Description for gluten free cheeseburger -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of minced meat and cheese with condiments. The apex " -"of pre-Cataclysm culinary achievement." -msgstr "グルテンフリーのパンに挽肉と野菜と香辛料、更にはチーズを挟んだ料理です。大変動以前の料理界における至高の一品です。" +"A medium sized steam turbine. An integrated boiler burns coal to heat water" +" into steam, driving a spinning turbine. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "" +"中型の蒸気タービンです。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がタービンに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free hamburger" -msgid_plural "gluten free hamburgers" -msgstr[0] "ハンバーガー(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "large steam turbine" +msgid_plural "large steam turbines" +msgstr[0] "大型蒸気タービン" -#. ~ Description for gluten free hamburger -#: lang/json/COMESTIBLE_from_json.py -msgid "A gluten free sandwich of minced meat with condiments." -msgstr "グルテンフリーのパンに、挽肉と野菜と香辛料を挟んだ料理です。" +#. ~ Description for {'str': 'large steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "" +"大型の蒸気タービンです。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がタービンに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sloppy joe" -msgid_plural "gluten free sloppy joes" -msgstr[0] "スラッピー・ジョー(グルテンフリー)" +#: lang/json/ENGINE_from_json.py +msgid "huge steam turbine" +msgid_plural "huge steam turbines" +msgstr[0] "超大型蒸気タービン" -#. ~ Description for gluten free sloppy joe -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'huge steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich, consisting of ground meat and tomato sauce served on" -" a hamburger bun." -msgstr "ひき肉とトマトソースを、ハンバーガー用のグルテンフリーパンで挟んだサンドイッチです。" +"A huge steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "" +"超大型の蒸気タービンです。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がタービンに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free BLT" -msgid_plural "gluten free BLTs" -msgstr[0] "グルテンフリーサンドイッチ(BLT)" +#: lang/json/GENERIC_from_json.py +msgid "fetid goop" +msgid_plural "fetid goops" +msgstr[0] "臭いヘドロ" -#. ~ Description for gluten free BLT -#: lang/json/COMESTIBLE_from_json.py -msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." -msgstr "ベーコン、レタス、トマトを焼いたグルテンフリーパンで挟んだサンドイッチです。" +#. ~ Description for {'str': 'fetid goop'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A foul smelling goop. It has a disgusting texture and a powerful smell that" +" overrides every other smell around it." +msgstr "悪臭を放つヘドロです。見た目も実に気持ち悪く、あらゆる他の匂いをかき消す程の臭気を漂わせています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sweetbread" -msgid_plural "gluten free sweetbreads" -msgstr[0] "シビレのカツレツ(グルテンフリー)" +#: lang/json/GENERIC_from_json.py +msgid "limestone shard" +msgid_plural "limestone shards" +msgstr[0] "石灰岩片" -#. ~ Description for {'str': 'gluten free sweetbread'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'limestone shard'} +#: lang/json/GENERIC_from_json.py msgid "" -"Delicious and tender organ meats. First boiled, then gluten free breaded " -"crumbs added and fried. They have interesting flavor and unparalleled " -"texture." -msgstr "茹でた動物の内臓にグルテンフリーのパン粉をまぶして揚げた、柔らかくて美味しい料理です。奥ゆかしい風味と類を見ない触感を味わえます。" +"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" +" alkaline properties may yet find some use." +msgstr "小さな石灰岩の破片です。かなり薄っぺらいので武器にはなりませんが、アルカリの性質を何かに利用することが出来そうです。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese sandwich" -msgid_plural "gluten free cheese sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(チーズ)" +#: lang/json/GENERIC_from_json.py +msgid "rock salt" +msgid_plural "rock salt" +msgstr[0] "岩塩" -#. ~ Description for {'str': 'gluten free cheese sandwich', 'str_pl': 'gluten -#. free cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A simple gluten free cheese sandwich." -msgstr "チーズを挟んだシンプルなグルテンフリーのサンドイッチです。" +#. ~ Description for {'str_sp': 'rock salt'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of rock salt crystals. Could be refined into table salt." +msgstr "少量の岩塩です。精製して食塩に出来ます。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free grilled cheese sandwich" -msgid_plural "gluten free grilled cheese sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(焼きチーズ)" +#: lang/json/GENERIC_from_json.py +msgid "rhodonite" +msgid_plural "rhodonite" +msgstr[0] "ロードナイト" -#. ~ Description for {'str': 'gluten free grilled cheese sandwich', 'str_pl': -#. 'gluten free grilled cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'rhodonite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A delicious gluten free grilled cheese sandwich, because everything is " -"better with melted cheese." -msgstr "美味しい焼きチーズのグルテンフリーサンドイッチです。こんがりとろけたチーズがぶっかかってりゃあ、大概のものは美味しく頂けるものです。" +"A chunk of rhodonite. It has manganese dioxide covering and going through " +"it in veins, which can be obtained using a chisel." +msgstr "ロードナイトの塊です。二酸化マンガンに覆われており、たがねを使えば削り取れます。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free deluxe sandwich" -msgid_plural "gluten free deluxe sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(DX)" +#: lang/json/GENERIC_from_json.py +msgid "zincite" +msgid_plural "zincite" +msgstr[0] "ジンカイト" -#. ~ Description for {'str': 'gluten free deluxe sandwich', 'str_pl': 'gluten -#. free deluxe sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'zincite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A gluten free sandwich of meat, vegetables, and cheese with condiments. " -"Tasty and nutritious!" -msgstr "肉、野菜、チーズ、そして各種の調味料を挟んだ豪華版グルテンフリーサンドイッチです。味も栄養も抜群です!" +"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " +"reduction with a source of carbon." +msgstr "ジンカイトの塊です。酸化亜鉛に生成してから炭素源で還元すれば、亜鉛に加工できます。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cucumber sandwich" -msgid_plural "gluten free cucumber sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(キュウリ)" +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" +msgstr[0] "プルトニウム" -#. ~ Description for {'str': 'gluten free cucumber sandwich', 'str_pl': -#. 'gluten free cucumber sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py msgid "" -"A refreshing gluten free cucumber sandwich. Not very filling, but quite " -"tasty." -msgstr "爽やかなキュウリのグルテンフリーサンドイッチです。中身はほとんどありませんが、スッキリとした美味しさです。" +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." +msgstr "プルトニウムです。被曝しても平気な体質でないなら、離れた方がいいですよ。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free jam sandwich" -msgid_plural "gluten free jam sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(ジャム)" - -#. ~ Description for {'str': 'gluten free jam sandwich', 'str_pl': 'gluten -#. free jam sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free jam sandwich." -msgstr "ジャムを挟んだ美味しいグルテンフリーのサンドイッチです。" +#: lang/json/GENERIC_from_json.py +msgid "hickory root" +msgid_plural "hickory roots" +msgstr[0] "根(ヒッコリー)" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free honey sandwich" -msgid_plural "gluten free honey sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(蜂蜜)" +#. ~ Description for {'str': 'hickory root'} +#: lang/json/GENERIC_from_json.py +msgid "A root from a hickory tree. It has an earthy smell." +msgstr "ヒッコリーの木の根です。土の匂いがします。" -#. ~ Description for {'str': 'gluten free honey sandwich', 'str_pl': 'gluten -#. free honey sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free honey sandwich." -msgstr "蜂蜜を塗った美味しいグルテンフリーのサンドイッチです。" +#: lang/json/GENERIC_from_json.py +msgid "hickory nuts" +msgid_plural "hickory nuts" +msgstr[0] "ヒッコリーナッツ" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free boring sandwich" -msgid_plural "gluten free boring sandwiches" -msgstr[0] "グルテンフリーサンドイッチ(ソース)" +#. ~ Description for {'str_sp': 'hickory nuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hickory tree, still in their shell." +msgstr "ヒッコリーの木から採取した硬い実です。殻が付いています。" -#. ~ Description for {'str': 'gluten free boring sandwich', 'str_pl': 'gluten -#. free boring sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A simple gluten free sauce sandwich. Not very filling but beats eating just" -" the bread… especially if it is the wrong type of bread!" -msgstr "あまりにもシンプルなソースのグルテンフリーサンドイッチです。物足りませんが、ただパンを貪るよりはいいでしょう。" +#: lang/json/GENERIC_from_json.py +msgid "pecans" +msgid_plural "pecans" +msgstr[0] "ペカン" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free waffle" -msgid_plural "gluten free waffles" -msgstr[0] "ワッフル(グルテンフリー)" +#. ~ Description for {'str_sp': 'pecans'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pecan tree, still in their shell." +msgstr "ペカンの木から採取した硬い実です。殻が付いています。" -#. ~ Description for gluten free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free waffle. It's basically a pancake in hashtag form." -msgstr "一般的な格子模様のグルテンフリーワッフルです。" +#: lang/json/GENERIC_from_json.py +msgid "pistachios" +msgid_plural "pistachios" +msgstr[0] "ピスタチオ" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free waffle" -msgid_plural "lactose free waffles" -msgstr[0] "ワッフル(乳糖不使用)" +#. ~ Description for {'str_sp': 'pistachios'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pistachio tree, still in their shell." +msgstr "ピスタチオの木から採取した硬い実です。殻が付いています。" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Lactose free waffle. It's basically a pancake in hashtag form." -msgstr "一般的な格子模様のラクトースフリーワッフルです。" +#: lang/json/GENERIC_from_json.py +msgid "almonds" +msgid_plural "almonds" +msgstr[0] "アーモンド" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Gluten free and lactose free waffle. It's basically a pancake in hashtag " -"form." -msgstr "一般的な格子模様のグルテン/ラクトースフリーワッフルです。" +#. ~ Description for {'str_sp': 'almonds'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from an almond tree, still in their shell." +msgstr "アーモンドの木から採取した硬い実です。殻が付いています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit waffle" -msgid_plural "gluten free fruit waffles" -msgstr[0] "フルーツワッフル(グルテンフリー)" +#: lang/json/GENERIC_from_json.py +msgid "peanuts" +msgid_plural "peanuts" +msgstr[0] "ピーナッツ" -#. ~ Description for gluten free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "本物のメープルシロップを使用した、カリカリで美味しいグルテンフリーワッフルに、果物を加えて、更に美味しく健康的になるように仕上げました。" +#. ~ Description for {'str_sp': 'peanuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a peanut bush, still in their shell." +msgstr "ラッカセイの茂みから採取した硬い実です。殻が付いています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit waffle" -msgid_plural "gluten free lactose free fruit waffles" -msgstr[0] "フルーツワッフル(グルテン乳糖不使用)" +#: lang/json/GENERIC_from_json.py +msgid "hazelnuts" +msgid_plural "hazelnuts" +msgstr[0] "ヘーゼルナッツ" -#. ~ Description for gluten free lactose free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free and lactose free waffles with real maple " -"syrup, made sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"本物のメープルシロップを使用した、カリカリで美味しいグルテン/ラクトースフリーワッフルに、果物を加えて、更に美味しく健康的になるように仕上げました。" +#. ~ Description for {'str_sp': 'hazelnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hazelnut tree, still in their shell." +msgstr "ハシバミの木から採取した硬い実です。殻が付いています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate waffle" -msgid_plural "gluten free chocolate waffles" -msgstr[0] "チョコレートワッフル(グルテンフリー)" +#: lang/json/GENERIC_from_json.py +msgid "chestnuts" +msgid_plural "chestnuts" +msgstr[0] "クリ" -#. ~ Description for gluten free chocolate waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, with " -"delicious chocolate baked right in." -msgstr "本物のメープルシロップを使用した、カリカリで美味しいグルテンフリーワッフルに、さらに美味しいチョコレートも加えました。" +#. ~ Description for {'str_sp': 'chestnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a chestnut tree, still in their shell." +msgstr "クリの木から採取した硬い実です。殻が付いています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "rice milk" -msgid_plural "rice milk" -msgstr[0] "ライスミルク" +#: lang/json/GENERIC_from_json.py +msgid "walnuts" +msgid_plural "walnuts" +msgstr[0] "クルミ" -#. ~ Description for {'str_sp': 'rice milk'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " -"rapidly." -msgstr "本物の牛乳よりも甘く、バニラアイスのような味がします。腐りやすい飲み物です。" +#. ~ Description for {'str_sp': 'walnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a walnut tree, still in their shell." +msgstr "クルミの木から採取した硬い実です。殻が付いています。" -#: lang/json/COMESTIBLE_from_json.py -msgid "coconut water" -msgid_plural "coconut water" -msgstr[0] "ココナッツジュース" +#: lang/json/GENERIC_from_json.py +msgid "steel grille" +msgid_plural "steel grilles" +msgstr[0] "スチール担体" -#. ~ Description for {'str_sp': 'coconut water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'steel grille'} +#: lang/json/GENERIC_from_json.py msgid "" -"Coconut milk, with water added to make it go further. Tastes ok though. " -"Spoils rapidly." -msgstr "ココナッツジュースを水で薄めて量を増やしたものです。美味しいですが、腐りやすい飲み物です。" +"This is a metal grille. It can be used as a framework for making a chemical" +" catalyst." +msgstr "金属製の網です。化学触媒を行う際の担体として利用できます。" -#: lang/json/COMESTIBLE_from_json.py -msgid "jarred coconut milk" -msgid_plural "jarred coconut milk" -msgstr[0] "濃縮ココナッツミルク" +#: lang/json/GENERIC_from_json.py +msgid "cobalt-60 pellet" +msgid_plural "cobalt-60 pellets" +msgstr[0] "コバルト60ペレット" -#. ~ Description for {'str_sp': 'jarred coconut milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'cobalt-60 pellet'} +#: lang/json/GENERIC_from_json.py msgid "" -"This deliciously rich coconut cream is a more concentrated, thicker version " -"of the coconut milk." -msgstr "ココナッツミルクを濃縮した、美味しく栄養価の高い飲み物です。" +"Radioactive material that used to be a part of some nuclear industry " +"equipment. You are yet to find some use for it." +msgstr "原子力を利用した製品に入っていた放射性物質です。現状では使い道が思い浮かびません。" -#: lang/json/COMESTIBLE_from_json.py -msgid "rice flour" -msgid_plural "rice flour" -msgstr[0] "米粉" +#: lang/json/GENERIC_from_json.py +msgid "sandbag" +msgid_plural "sandbags" +msgstr[0] "砂袋" -#. ~ Description for {'str_sp': 'rice flour'} -#: lang/json/COMESTIBLE_from_json.py -msgid "This rice flour is useful for baking." -msgstr "パンなどを焼く材料になる米粉です。" +#. ~ Description for {'str': 'sandbag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a canvas sack filled with sand. It can be used to construct simple " +"barricades." +msgstr "砂がたっぷり詰まった帆布製の袋です。簡単なバリケードを築く材料になります。" -#: lang/json/COMESTIBLE_from_json.py -msgid "revival serum" -msgid_plural "revival serums" -msgstr[0] "血清(再生)" +#: lang/json/GENERIC_from_json.py +msgid "earthbag" +msgid_plural "earthbags" +msgstr[0] "土嚢" -#. ~ Description for revival serum -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'earthbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"A potent drug, necessary when performing a revival operation on larger " -"animals (including humans). It induces a violent allergic reactions in " -"living organisms, so using it on yourself is a REALLY bad idea." -msgstr "" -"(人間を含む)大型動物を再生させる強力な薬物です。生きている人間に投与すると多大なアレルギー反応を誘発するので、自分で使ってみようなどとは「絶対に」考えないでください。" +"This is a canvas sack filled with soil. It can be used to construct simple " +"barricades." +msgstr "土がたっぷり詰まった帆布製の袋です。簡単なバリケードを築く材料になります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "2.5L canteen" msgid_plural "2.5L canteens" msgstr[0] "水筒(2.5L/プラスチック)" #. ~ Description for {'str': '2.5L canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "プラスチック製の水筒です。2.5Lの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "30 gallon barrel" msgid_plural "30 gallon barrels" msgstr[0] "樽(112.5L/プラスチック)" #. ~ Description for {'str': '30 gallon barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "再密封が可能な、巨大なプラスチック製の樽です。" -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" msgid_plural "steel drums (100L)" msgstr[0] "ドラム缶(100L)" #. ~ Description for {'str': 'steel drum (100L)', 'str_pl': 'steel drums #. (100L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge steel barrel with a resealable lid." msgstr "再密封が可能な、鋼鉄製の大きなドラム缶です。" -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" msgid_plural "steel drums (200L)" msgstr[0] "ドラム缶(200L)" #. ~ Description for {'str': 'steel drum (200L)', 'str_pl': 'steel drums #. (200L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "再密封が可能な、鋼鉄製の非常に大きなドラム缶です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas sack" msgid_plural "canvas sacks" msgstr[0] "帆布袋(大)" #. ~ Description for {'str': 'canvas sack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "キャンバス地の丈夫な袋です。大地と重労働の香りがします。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas bag" msgid_plural "canvas bags" msgstr[0] "帆布袋(小)" #. ~ Description for {'str': 'canvas bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "キャンバス地の小さな袋です。乾燥させたハーブを入れたくなります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bag" msgid_plural "plastic bags" msgstr[0] "ビニール袋" #. ~ Description for {'str': 'plastic bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "開封済みの小さなビニール袋です。ただのゴミですね。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "zipper bag" msgid_plural "zipper bags" msgstr[0] "保存袋" #. ~ Description for {'str': 'zipper bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_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 " @@ -40678,153 +42454,153 @@ msgid "" msgstr "" "典型的な長方形の、安価で小さく柔軟な保存袋です。透明のビニール製で、ジッパーのように機能するスライダーを使って密閉できるようになっています。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "body bag" msgid_plural "body bags" msgstr[0] "遺体袋" #. ~ Description for {'str': 'body bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large, human size, rectangular bag made of strong plastic, with a zipper " "in the middle. Used to hold a dead body." msgstr "中央にジッパーが付いた、人間サイズの長方形の頑丈なビニール製バッグです。遺体を収納するために使います。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "IV bag" msgid_plural "IV bags" msgstr[0] "輸液バッグ(500ml)" #. ~ Description for {'str': 'IV bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "点滴治療で使われる輸液用の密封された小さなビニールバッグです。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass bottle" msgid_plural "glass bottles" msgstr[0] "ガラス瓶(750ml)" #. ~ Description for {'str': 'glass bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "蓋の付いたガラス製の瓶です。750mlの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bottle" msgid_plural "plastic bottles" msgstr[0] "ペットボトル(500ml)" #. ~ Description for {'str': 'plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "蓋の付いたプラスチック製のボトルです。500mlの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condiment bottle" msgid_plural "condiment bottles" msgstr[0] "ソースボトル(500ml)" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An inverted plastic bottle for condiments. Still sealed from factory, " "preserves content from rot until opened." msgstr "逆さにして立てられる、調味料を入れるプラスチック製のボトルです。密封されており、開封しなければ内容物は腐りません。" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An inverted plastic bottle for condiments." msgstr "逆さにして立てられる、調味料を入れるプラスチック製のボトルです。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small plastic bottle" msgid_plural "small plastic bottles" msgstr[0] "ペットボトル(250ml)" #. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "蓋の付いたプラスチック製のボトルです。250mlの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large plastic bottle" msgid_plural "large plastic bottles" msgstr[0] "ペットボトル(2L)" #. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." msgstr "2Lの容量があるペットボトルです。たくさんのソーダ、あるいは飲料水を保存できます。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay bowl" msgid_plural "clay bowls" msgstr[0] "ボウル(250ml/陶器)" #. ~ Description for {'str': 'clay bowl'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A clay bowl with a waterproofed hide lid. Can be used as a container or as " "a tool. Holds 250 ml of liquid." msgstr "水密性のある粗皮の蓋が付いた陶器のボウルです。容器や道具として使えます。250mlの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "pack" msgid_plural "packs" msgstr[0] "タバコ箱" #. ~ Description for {'str': 'pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." msgstr "公衆衛生総監の警告: 喫煙は肺がん、心臓病、肺気腫の原因になり、妊娠を困難にする恐れがあります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" msgstr[0] "段ボール箱S" #. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "小さな段ボール箱です。靴が一足入る程度の寸法です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" msgstr[0] "段ボール箱M" #. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "バナナがちょうど入る程度のサイズの、頑丈な段ボール箱です。荷物の梱包に最適です。" -#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" msgstr[0] "段ボール箱L" #. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A very large cardboard box, the sort children would have loved to hide in, " "when there were still children." msgstr "非常に大きな段ボール箱です。生き残っている子供がいたら、喜んでかくれんぼをしたことでしょう。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "bucket" msgid_plural "buckets" msgstr[0] "バケツ" #. ~ Description for {'str': 'bucket'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " "legs, French fries, animal feed, farm use, tailgating, crafts, planting " @@ -40833,13 +42609,13 @@ msgid "" msgstr "" "ピーナッツ、冷やしたワインやビール、ロブスター、カニの脚、フライドポテト、動物飼料、農産物、工芸品、生花、ギフトセット、果物、適当な道具、氷塊...などを入れられる、亜鉛でメッキがけされたバケツです。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hydration pack" msgid_plural "hydration packs" msgstr[0] "ウォーターパック(2L)" #. ~ Description for {'str': 'hydration pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " @@ -40847,222 +42623,222 @@ msgid "" msgstr "" "スリムで軽く断熱性のある、プラスチック製の背負い袋です。大容量で、飲み口付きのホースが付いているので、手を使わずに中の液体を飲むことができます。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum can" msgid_plural "aluminum cans" msgstr[0] "アルミ缶" #. ~ Description for {'str': 'aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An aluminum can, like what soda comes in." msgstr "アルミニウムの缶です。炭酸系飲料によく使われています。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened aluminum can" msgid_plural "opened aluminum cans" msgstr[0] "開いたアルミ缶" #. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." msgstr "炭酸系飲料によく使われている、アルミニウム製の缶です。既に開いており、再密封は容易ではありません。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper carton" msgid_plural "paper cartons" msgstr[0] "密封紙パック" #. ~ Description for {'str': 'paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " It has a threaded cap for easy resealing." msgstr "紙とアルミニウムをビニールでラミネート加工した紙パックです。キャップが付いているため、簡単に再封できます。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened paper carton" msgid_plural "opened paper cartons" msgstr[0] "紙パック(2L)" #. ~ Description for {'str': 'opened paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " This one is open and its contents will spoil." msgstr "紙とアルミニウムをビニールでラミネート加工した、容量2Lの紙パックです。既に一度開封されており、内容物の腐敗が進行します。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" msgstr[0] "真空パック" #. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "This is a bag of vacuum-packed food." msgstr "食品を真空包装する袋です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small tin can" msgid_plural "small tin cans" msgstr[0] "ブリキ缶S" #. ~ Description for {'str': 'small tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small tin can, like what tuna comes in." msgstr "ツナなどを入れられる、小さなブリキ製の缶です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small opened tin can" msgid_plural "small opened tin cans" msgstr[0] "開いたブリキ缶S" #. ~ Description for {'str': 'small opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small tin can, like what tuna comes in. This one is opened and can't be " "easily sealed." msgstr "ツナなどを入れられる、小さなブリキ製の缶です。既に開いており、再密封は容易ではありません。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium tin can" msgid_plural "medium tin cans" msgstr[0] "ブリキ缶M" #. ~ Description for {'str': 'medium tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A medium tin can, like what soup comes in." msgstr "スープなどを入れられる、中くらいのブリキ製の缶です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium opened tin can" msgid_plural "medium opened tin cans" msgstr[0] "開いたブリキ缶M" #. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A medium tin can, like what soup comes in. This one is opened and can't be " "easily sealed." msgstr "スープなどを入れられる、中くらいのブリキ製の缶です。既に開いており、再密封は容易ではありません。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic canteen" msgid_plural "plastic canteens" msgstr[0] "水筒(1.5L/プラスチック)" #. ~ Description for {'str': 'plastic canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." msgstr "容量1.5Lの軍用水筒です。主に腰回りに装着します。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "thermos" msgid_plural "thermoses" msgstr[0] "魔法瓶(1L)" #. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." msgstr "液体を保温できるサーモス社製の魔法瓶です。1Lの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay canister" msgid_plural "clay canisters" msgstr[0] "円筒容器(250ml/陶器)" #. ~ Description for {'str': 'clay canister'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." msgstr "陶器製の脆い容器です。簡単な手榴弾の製作や液体の貯蔵に使います。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay hydria" msgid_plural "clay hydrias" msgstr[0] "水瓶(15L)" #. ~ Description for {'str': 'clay hydria'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "運んだり注いだりするための持ち手が3つ付いた陶器製の鉢です。15Lの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large clay pot" msgid_plural "large clay pots" msgstr[0] "大型素焼鉢(37.5L)" #. ~ Description for {'str': 'large clay pot'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky and heavy clay pot with a waterproofed hide lid, meant to store " "water, but can carry other liquids in a pinch." msgstr "水を貯めておくのに使う、水密性のある蓋がついた陶器製の鉢です。いざという時には他の液体を入れることもできます。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic cup" msgid_plural "plastic cups" msgstr[0] "使い捨てカップ" #. ~ Description for {'str': 'plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup." msgstr "真空成形で作られた小さなカップです。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened plastic cup" msgid_plural "opened plastic cups" msgstr[0] "開いた使い捨てカップ" #. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "真空成形の小さなカップップです。使い道はなくただのゴミです。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass flask" msgid_plural "glass flasks" msgstr[0] "フラスコ(250ml)" #. ~ Description for {'str': 'glass flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "ゴム栓付きの実験用三角フラスコです。250mlの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "test tube" msgid_plural "test tubes" msgstr[0] "試験管(10ml)" #. ~ Description for {'str': 'test tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "ゴム栓が付属した実験用の10ml試験管です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "beaker" msgid_plural "beakers" msgstr[0] "ビーカー" #. ~ Description for {'str': 'beaker'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "容量250mlの実験用ビーカーです。色々な誇大妄想を注ぎ入れましょう。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" msgstr[0] "メスシリンダー" #. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A tall, narrow glass cylinder with precise markings for measuring fluid " "quantities. An important science tool, it is also useful for anal retentive" @@ -41070,13 +42846,13 @@ msgid "" msgstr "" "液体量を正確に測定する目盛りが付いた、背が高く細いガラス製のシリンダーです。重要な化学実験ツールですが、細かいことにこだわるシェフにとっても有用です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" msgstr[0] "マイクロチューブ(1ml)" #. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "These plastic tubes, with little built in snap-caps, are a great way to " "store a tiny amount of liquid. Great for jello shooters if 1mL is enough " @@ -41084,57 +42860,57 @@ msgid "" msgstr "" "ロック式の非常に小さな蓋が付属している、少量の液体を保存するのに最適なプラスチック製のチューブです。1mlで十分酔える人なら、これで酒を混ぜたゼリーを作るのも良いでしょう。お洒落な人はこの容器を「エピー」と呼んでいます。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hip flask" msgid_plural "hip flasks" msgstr[0] "スキットル(250ml)" #. ~ Description for {'str': 'hip flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." msgstr "ネジで閉める蓋が蝶番で付いた、金属製のスキットルです。主にお酒を持ち歩くためのものです。250mlの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" msgstr[0] "ガラス瓶(3L)" #. ~ Description for {'str': '3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "ネジで閉める蓋が付いた、食料の保存に適したガラス製のビンです。3Lの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed 3L glass jar" msgid_plural "sealed 3L glass jars" msgstr[0] "密封ガラス瓶(3L)" #. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." msgstr "ネジで閉める蓋が付いた、食料の保存に適したガラス製のビンです。3Lの容量があります。しっかりと密封してあり、中身が腐敗するのを防ぎます。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass jar" msgid_plural "glass jars" msgstr[0] "ガラス瓶(500ml)" #. ~ Description for {'str': 'glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "ネジで閉める蓋が付いた、食料の保存に適したガラス製のビンです。500mlの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed glass jar" msgid_plural "sealed glass jars" msgstr[0] "密封ガラス瓶(500ml)" #. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half-liter glass jar with a metal screw top lid, used for canning. Sealed" " tightly and will preserve the contents from rot (assuming it was sterile " @@ -41142,949 +42918,292 @@ msgid "" msgstr "" "ネジで閉める蓋が付いた、食料の保存に適したガラス製のビンです。500mlの容量があります。しっかりと密封してあり、中身が腐敗するのを防ぎます(密封前にちゃんと滅菌できていたら、ですが)。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic jerrycan" msgid_plural "plastic jerrycans" msgstr[0] "ジェリカン(10L/プラスチック)" #. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." msgstr "プラスチック製の大きなジェリカンです。燃料の運搬を想定して作られていますが、必要ならば他の液体を運搬する事も可能です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel jerrycan" msgid_plural "steel jerrycans" msgstr[0] "ジェリカン(20L/鋼)" #. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." msgstr "鋼製の大きなジェリカンです。燃料の運搬を想定して作られていますが、必要ならば他の液体を運搬する事も可能です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay jug" msgid_plural "clay jugs" msgstr[0] "水差し(1L/陶器)" #. ~ Description for {'str': 'clay jug'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "液体を注ぐために使う、蓋が付いた陶器製の容器です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "gallon jug" msgid_plural "gallon jugs" msgstr[0] "ガロンジャグ(3.75L)" #. ~ Description for {'str': 'gallon jug'} #. ~ Description for TEST gallon jug -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "牛乳や家庭用洗剤を入れるプラスチック製の容器です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum keg" msgid_plural "aluminum kegs" msgstr[0] "ビア樽(50L/アルミ)" #. ~ Description for {'str': 'aluminum keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." msgstr "再利用可能なアルミ製の軽いビア樽です。ビールの輸送に使われます。50Lの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel keg" msgid_plural "steel kegs" msgstr[0] "ビア樽(50L/鋼)" #. ~ Description for {'str': 'steel keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." msgstr "再利用可能な鋼鉄製の重いビア樽です。ビールの輸送に使われます。50Lの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large sealed stomach" msgid_plural "large sealed stomachs" msgstr[0] "水筒(3L/大きな胃)" #. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." msgstr "大きな動物の胃を綺麗に洗浄し、紐で密封した水筒です。3Lまで液体が入ります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (60L)" msgid_plural "metal tanks (60L)" msgstr[0] "金属タンク(60L)" #. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks #. (60L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "液体を運ぶために使用する大型の金属タンクです。アイテム製作に使います。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (2L)" msgid_plural "metal tanks (2L)" msgstr[0] "金属タンク(2L)" #. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "気体や液体を運ぶために使用する小型の金属タンクです。アイテム製作に使います。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" msgstr[0] "水筒(1.5L/木)" #. ~ Description for {'str': 'wooden canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A water canteen made from wood, secured by metal bands and sealed with wax " "or pitch. Holds 1.5 liters and has a simple carry strap." msgstr "木製の水筒です。金属製の輪で固定され、蝋や松脂で密封します。1.5Lの容量があり、携帯用の簡素な紐が付いています。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed stomach" msgid_plural "sealed stomachs" msgstr[0] "水筒(1.5L/胃)" #. ~ Description for {'str': 'sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." msgstr "動物の胃を綺麗に洗浄し、紐で密封した水筒です。1.5Lまで液体が入ります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small waterskin" msgid_plural "small waterskins" msgstr[0] "水筒(1.5L/革)" #. ~ Description for {'str': 'small waterskin'} #. ~ Description for TEST small waterskin -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." msgstr "水が漏れないように作られた革製の小さな水筒です。1.5Lまで水が入ります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "waterskin" msgid_plural "waterskins" msgstr[0] "水筒(3L/革)" #. ~ Description for {'str': 'waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "水が漏れないように作られた革製の小さな水筒です。1.5Lまで液体が入ります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large waterskin" msgid_plural "large waterskins" msgstr[0] "水筒(5L/革)" #. ~ Description for {'str': 'large waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." msgstr "水が漏れないように作られた革製の大きな水筒です。5Lまで水が入ります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden barrel" msgid_plural "wooden barrels" msgstr[0] "樽(100L/木)" #. ~ Description for {'str': 'wooden barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "Traditionally made of white oak; these vessels are known for delivering " "delicious whiskey to the future. It has a capacity of 100 liters." msgstr "美味しいウイスキー造りで有名な、ホワイトオーク製の伝統的な容器です。100Lの容量があります。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper wrapper" msgid_plural "paper wrappers" msgstr[0] "包装紙" #. ~ Description for {'str': 'paper wrapper'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." msgstr "紙屑です。火を起こすのにちょうど良さそうです。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "包装紙" + +#. ~ Description for {'str': 'wrapper'} +#: lang/json/GENERIC_from_json.py +msgid "" +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." +msgstr "「SoyPelusaのダイズーム プロテインバー」という文字が誇らしげに印刷されています。" + +#: lang/json/GENERIC_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" msgstr[0] "飲料カップ(500ml)" #. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "プラスチック製の蓋とストローが付いた、安価な使い捨ての飲料カップです。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic tub" msgid_plural "plastic tubs" msgstr[0] "アイスクリームタブ(4.25L)" #. ~ Description for {'str': 'plastic tub'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "一般的にはアイスクリームを保管するために使う、プラスチック製の正方形の箱です。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" msgstr[0] "コンドーム(3.75L)" #. ~ Description for {'str': 'condom'} -#: lang/json/CONTAINER_from_json.py +#: 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/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "balloon" msgid_plural "balloons" msgstr[0] "風船(3.75L)" #. ~ Description for {'str': 'balloon'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A child's balloon. This could be used as a makeshift water container." msgstr "子供が遊ぶための風船です。即席の液体容器として使えます。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large tin can" msgid_plural "large tin cans" msgstr[0] "ブリキ缶L" #. ~ Description for {'str': 'large tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. Holds a substantial amount of " "food." msgstr "豆などを入れられる、大きなブリキ製の缶です。かなりの量の食物を保存できます。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large opened tin can" msgid_plural "large opened tin cans" msgstr[0] "開いたブリキ缶L" #. ~ Description for {'str': 'large opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. This one is opened and can't be " "easily sealed." msgstr "豆などを入れられる、大きなブリキ製の缶です。既に開いており、再密封は容易ではありません。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "survival kit box" msgid_plural "survival kit boxes" msgstr[0] "サバイバルボックス(1L)" #. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum box that used to contain a small survival kit. Can hold 1 liter" " of liquid." msgstr "様々なサバイバルキットが入っていた、1Lの容量があるアルミニウム製の箱です。" -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "ボウル(750ml/プラスチック)" - -#. ~ Description for {'str': 'plastic bowl'} -#: lang/json/CONTAINER_from_json.py -msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." -msgstr "密閉できる便利な蓋が付いたプラスチック製のボウルです。750mlの容量があります。" - -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "水筒(750ml/鋼)" - -#. ~ Description for {'str': 'steel bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "鋼鉄製の水筒です。750mlの容量があります。" - -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "携帯ボトル(500ml)" - -#. ~ Description for {'str': 'foldable plastic bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "軟質プラスチック製のボトルです。500mlの容量があります。" - -#: lang/json/CONTAINER_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" -msgstr[0] "採血キット(250ml)" - -#. ~ Description for {'str': 'blood draw kit'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." -msgstr "サンプル保存用の試験管に血液を吸い上げる医療キットです。自分自身、または足元にある死体に使用します。" - -#: lang/json/CONTAINER_from_json.py -msgid "small metal tank" -msgid_plural "small metal tanks" -msgstr[0] "小型金属タンク(11.25L)" - -#. ~ Description for small metal tank -#: lang/json/CONTAINER_from_json.py -msgid "A small metal tank for holding gas or liquids. Useful for crafting." -msgstr "気体や液体を運ぶために使用する小型の金属タンクです。アイテム製作に使います。" - -#: lang/json/CONTAINER_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" -msgstr[0] "たらい" - -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." -msgstr "中に液体を入れられる、一枚の板金から打ち出して作られた大きく浅いたらいです。水を集めるのに最適です。" - -#: lang/json/CONTAINER_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" -msgstr[0] "有害廃棄物用ドラム缶(200L)" - -#. ~ Description for {'str': 'hazardous waste drum'} -#: lang/json/CONTAINER_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." -msgstr "有害物質を保管することを示す、黄色いドラム缶です。" - -#: lang/json/CONTAINER_from_json.py -msgid "garden pot" -msgid_plural "garden pots" -msgstr[0] "植木鉢(栽培用)" - -#. ~ Description for garden pot -#: lang/json/CONTAINER_from_json.py -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 "植物を栽培できる特殊な鉢です。快適な環境で植物を育てればたくさんの収穫を得られます。種と共に製作することで植え付けを行います。" - -#: lang/json/CONTAINER_from_json.py -msgid "endless flask" -msgid_plural "endless flasks" -msgstr[0] "無限の酒瓶" - -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "酒瓶の中には芳醇なウイスキーが大量に入っています!" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "The flask isn't done refilling yet." -msgstr "酒はまだ充填されていません。" - -#: lang/json/CONTAINER_from_json.py -msgid "cauldron of purification" -msgid_plural "cauldrons of purification" -msgstr[0] "浄化の大釜" - -#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons -#. of purification'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This cauldron made of demon spider chitin seems to absorb the light. It " -"will hold 16 liters of material and will absorb poisons from it. It may " -"have other properties that require discovery." -msgstr "" -"デーモンスパイダーの外骨格で作られた漆黒の大釜です。16L分の食べ物を投入でき、毒を消す効果を持っています。毒の浄化には他の道具が必要な場合もあります。" - -#: lang/json/CONTAINER_from_json.py -msgid "aluminum foil wrap" -msgid_plural "aluminum foil wraps" -msgstr[0] "アルミカットホイル" - -#. ~ Description for aluminum foil wrap -#: lang/json/CONTAINER_from_json.py -msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." -msgstr "若干しわくちゃになっているアルミ箔のシートです。料理やパン作りに使用します。" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST gallon jug" -msgid_plural "TEST gallon jugs" -msgstr[0] "ガロンジャグ(3.75L)(テスト)" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST small waterskin" -msgid_plural "TEST small waterskins" -msgstr[0] "水筒(1.5L/革)(テスト)" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous capsule" -msgid_plural "gelatinous capsules" -msgstr[0] "ゼラチンタンク(10L)" - -#. ~ Description for {'str': 'gelatinous capsule'} -#. ~ Description for {'str': 'gray cocoon'} -#. ~ Description for {'str': 'oozing pod'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"While the blob is very eager to be fed, it's not as enthusiastic about " -"giving up liquids. A few alterations are necessary." -msgstr "ブロブは餌をもらうことに対しては非常に熱心ですが、内部の液体を吐き出す事に関しては消極的です。なにか工夫する必要がありそうです。" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous tank" -msgid_plural "gelatinous tanks" -msgstr[0] "ゼラチンタンク(60L)" - -#: lang/json/CONTAINER_from_json.py -msgid "gray cocoon" -msgid_plural "gray cocoons" -msgstr[0] "グレイタンク(30L)" - -#: lang/json/CONTAINER_from_json.py -msgid "gray tank" -msgid_plural "gray tanks" -msgstr[0] "グレイタンク(100L)" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing pod" -msgid_plural "oozing pods" -msgstr[0] "スライムタンク(20L)" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing tank" -msgid_plural "oozing tanks" -msgstr[0] "スライムタンク(80L)" - -#: lang/json/ENGINE_from_json.py -msgid "internal combustion engine" -msgid_plural "internal combustion engines" -msgstr[0] "内燃エンジン" - -#: lang/json/ENGINE_from_json.py -msgid "base diesel engine" -msgid_plural "base diesel engines" -msgstr[0] "ディーゼルエンジン(ベース)" - -#: lang/json/ENGINE_from_json.py -msgid "base gasoline engine" -msgid_plural "base gasoline engines" -msgstr[0] "ガソリンエンジン(ベース)" - -#: lang/json/ENGINE_from_json.py -msgid "base steam engine" -msgid_plural "base steam engines" -msgstr[0] "蒸気エンジン(ベース)" - -#: lang/json/ENGINE_from_json.py -msgid "1-cylinder engine" -msgid_plural "1-cylinder engines" -msgstr[0] "単気筒エンジン" - -#. ~ Description for {'str': '1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A single-cylinder 4-stroke combustion engine." -msgstr "1気筒4ストロークのエンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "large 1-cylinder engine" -msgid_plural "large 1-cylinder engines" -msgstr[0] "大型単気筒エンジン" - -#. ~ Description for {'str': 'large 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A powerful high-compression single-cylinder 4-stroke combustion engine." -msgstr "1気筒4ストロークの強力な高圧縮エンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "small 1-cylinder engine" -msgid_plural "small 1-cylinder engines" -msgstr[0] "小型単気筒エンジン" - -#. ~ Description for {'str': 'small 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "1気筒2ストロークの小型エンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "Inline-4 engine" -msgid_plural "Inline-4 engines" -msgstr[0] "直列4気筒エンジン" - -#. ~ Description for {'str': 'Inline-4 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "小型ながら強力な4気筒のエンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "I6 diesel engine" -msgid_plural "I6 diesel engines" -msgstr[0] "直列6気筒ディーゼルエンジン" - -#. ~ Description for {'str': 'I6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful straight-6 diesel engine." -msgstr "強力な直列6気筒のディーゼルエンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "V-twin engine" -msgid_plural "V-twin engines" -msgstr[0] "V型2気筒エンジン" - -#. ~ Description for {'str': 'V-twin engine'} -#: lang/json/ENGINE_from_json.py -msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "2気筒4ストロークのエンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "V6 engine" -msgid_plural "V6 engines" -msgstr[0] "V型6気筒エンジン" - -#. ~ Description for {'str': 'V6 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder combustion engine." -msgstr "強力な6気筒のエンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "V6 diesel engine" -msgid_plural "V6 diesel engines" -msgstr[0] "V型6気筒ディーゼルエンジン" - -#. ~ Description for {'str': 'V6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder diesel engine." -msgstr "強力な6気筒のディーゼルエンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "V8 engine" -msgid_plural "V8 engines" -msgstr[0] "V型8気筒エンジン" - -#. ~ Description for {'str': 'V8 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "大型で強力な8気筒のエンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "V8 diesel engine" -msgid_plural "V8 diesel engines" -msgstr[0] "V型8気筒ディーゼルエンジン" - -#. ~ Description for {'str': 'V8 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 8-cylinder diesel engine." -msgstr "強力な8気筒のディーゼルエンジンです。" - -#: lang/json/ENGINE_from_json.py -msgid "V12 engine" -msgid_plural "V12 engines" -msgstr[0] "V型12気筒エンジン" - -#. ~ Description for {'str': 'V12 engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into high end " -"sports cars." -msgstr "巨大で凄まじく強力なV型12気筒エンジンです。通常は高級スポーツカーに使用されます。" - -#: lang/json/ENGINE_from_json.py -msgid "V12 diesel engine" -msgid_plural "V12 diesel engines" -msgstr[0] "V型12気筒ディーゼルエンジン" - -#. ~ Description for {'str': 'V12 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into heavy " -"trucks." -msgstr "巨大で凄まじく強力なV型12気筒エンジンです。通常は大型トラックに使用されます。" - -#: lang/json/ENGINE_from_json.py -msgid "makeshift steam engine" -msgid_plural "makeshift steam engines" -msgstr[0] "簡易蒸気エンジン" - -#. ~ Description for {'str': 'makeshift steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small, primitive, steam engine. An integrated boiler burns coal to heat " -"water into steam, driving a reciprocating shaft. A condenser recaptures the" -" water, making this a closed cycle system." -msgstr "" -"原始的な小型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/ENGINE_from_json.py -msgid "small steam engine" -msgid_plural "small steam engines" -msgstr[0] "小型蒸気エンジン" - -#. ~ Description for {'str': 'small steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condenser recaptures the water, " -"making this a closed cycle system." -msgstr "" -"小型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/ENGINE_from_json.py -msgid "medium steam engine" -msgid_plural "medium steam engines" -msgstr[0] "中型蒸気エンジン" - -#. ~ Description for {'str': 'medium steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium-sized steam engine. An integrated boiler burns coal to heat water " -"into steam, driving a reciprocating shaft. A condenser recaptures the " -"water, making this a closed cycle system." -msgstr "" -"中型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/ENGINE_from_json.py -msgid "1350 hp gas turbine engine" -msgid_plural "1350 hp gas turbine engines" -msgstr[0] "ガスタービンエンジン(1350馬力)" - -#. ~ Description for {'str': '1350 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A gas turbine engine, usually used for military vehicles. Known for its " -"high rate of fuel consumption." -msgstr "通常は軍用車両で使われているガスタービンエンジンです。燃料消費率が高いことで知られています。" - -#: lang/json/ENGINE_from_json.py -msgid "1900 hp gas turbine engine" -msgid_plural "1900 hp gas turbine engines" -msgstr[0] "ガスタービンエンジン(1900馬力)" - -#. ~ Description for {'str': '1900 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large gas turbine engine, usually used for military helicopters. Known " -"for its high rate of fuel consumption." -msgstr "通常は軍用ヘリコプターで使われている、大型のガスタービンエンジンです。燃料消費率が高いことで知られています。" - -#: lang/json/ENGINE_from_json.py -msgid "6000 hp gas turbine engine" -msgid_plural "6000 hp gas turbine engines" -msgstr[0] "ガスタービンエンジン(6000馬力)" - -#. ~ Description for {'str': '6000 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " -"high rate of fuel consumption." -msgstr "V-22オスプレイで使われている、非常に大型のガスタービンエンジンです。燃料消費率が高いことで知られています。" - -#: lang/json/ENGINE_from_json.py -msgid "large steam engine" -msgid_plural "large steam engines" -msgstr[0] "大型蒸気エンジン" - -#. ~ Description for {'str': 'large steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"大型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/ENGINE_from_json.py -msgid "huge steam engine" -msgid_plural "huge steam engines" -msgstr[0] "超大型蒸気エンジン" - -#. ~ Description for {'str': 'huge steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"超大型の蒸気機関です。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がシャフトに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/ENGINE_from_json.py -msgid "small steam turbine" -msgid_plural "small steam turbines" -msgstr[0] "小型蒸気タービン" - -#. ~ Description for {'str': 'small steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"小型の蒸気タービンです。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がタービンに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/ENGINE_from_json.py -msgid "medium steam turbine" -msgid_plural "medium steam turbines" -msgstr[0] "中型蒸気タービン" - -#. ~ Description for {'str': 'medium steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium sized steam turbine. An integrated boiler burns coal to heat water" -" into steam, driving a spinning turbine. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"中型の蒸気タービンです。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がタービンに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/ENGINE_from_json.py -msgid "large steam turbine" -msgid_plural "large steam turbines" -msgstr[0] "大型蒸気タービン" - -#. ~ Description for {'str': 'large steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"大型の蒸気タービンです。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がタービンに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/ENGINE_from_json.py -msgid "huge steam turbine" -msgid_plural "huge steam turbines" -msgstr[0] "超大型蒸気タービン" - -#. ~ Description for {'str': 'huge steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"超大型の蒸気タービンです。一体化したボイラーが石炭を燃焼させて水を加熱し、発生した水蒸気がタービンに動力を与え、その後凝縮器に水を集める密閉サイクルで動作しています。" - -#: lang/json/GENERIC_from_json.py -msgid "fetid goop" -msgid_plural "fetid goops" -msgstr[0] "臭いヘドロ" - -#. ~ Description for {'str': 'fetid goop'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A foul smelling goop. It has a disgusting texture and a powerful smell that" -" overrides every other smell around it." -msgstr "悪臭を放つヘドロです。見た目も実に気持ち悪く、あらゆる他の匂いをかき消す程の臭気を漂わせています。" - -#: lang/json/GENERIC_from_json.py -msgid "limestone shard" -msgid_plural "limestone shards" -msgstr[0] "石灰岩片" - -#. ~ Description for {'str': 'limestone shard'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" -" alkaline properties may yet find some use." -msgstr "小さな石灰岩の破片です。かなり薄っぺらいので武器にはなりませんが、アルカリの性質を何かに利用することが出来そうです。" - -#: lang/json/GENERIC_from_json.py -msgid "rock salt" -msgid_plural "rock salt" -msgstr[0] "岩塩" - -#. ~ Description for {'str_sp': 'rock salt'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of rock salt crystals. Could be refined into table salt." -msgstr "少量の岩塩です。精製して食塩に出来ます。" - -#: lang/json/GENERIC_from_json.py -msgid "rhodonite" -msgid_plural "rhodonite" -msgstr[0] "ロードナイト" - -#. ~ Description for {'str_sp': 'rhodonite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of rhodonite. It has manganese dioxide covering and going through " -"it in veins, which can be obtained using a chisel." -msgstr "ロードナイトの塊です。二酸化マンガンに覆われており、たがねを使えば削り取れます。" - -#: lang/json/GENERIC_from_json.py -msgid "zincite" -msgid_plural "zincite" -msgstr[0] "ジンカイト" - -#. ~ Description for {'str_sp': 'zincite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " -"reduction with a source of carbon." -msgstr "ジンカイトの塊です。酸化亜鉛に生成してから炭素源で還元すれば、亜鉛に加工できます。" - -#: lang/json/GENERIC_from_json.py -msgid "hickory root" -msgid_plural "hickory roots" -msgstr[0] "根(ヒッコリー)" - -#. ~ Description for {'str': 'hickory root'} -#: lang/json/GENERIC_from_json.py -msgid "A root from a hickory tree. It has an earthy smell." -msgstr "ヒッコリーの木の根です。土の匂いがします。" - -#: lang/json/GENERIC_from_json.py -msgid "hickory nuts" -msgid_plural "hickory nuts" -msgstr[0] "ヒッコリーナッツ" - -#. ~ Description for {'str_sp': 'hickory nuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hickory tree, still in their shell." -msgstr "ヒッコリーの木から採取した硬い実です。殻が付いています。" - -#: lang/json/GENERIC_from_json.py -msgid "pecans" -msgid_plural "pecans" -msgstr[0] "ペカン" - -#. ~ Description for {'str_sp': 'pecans'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pecan tree, still in their shell." -msgstr "ペカンの木から採取した硬い実です。殻が付いています。" - -#: lang/json/GENERIC_from_json.py -msgid "pistachios" -msgid_plural "pistachios" -msgstr[0] "ピスタチオ" - -#. ~ Description for {'str_sp': 'pistachios'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pistachio tree, still in their shell." -msgstr "ピスタチオの木から採取した硬い実です。殻が付いています。" - -#: lang/json/GENERIC_from_json.py -msgid "almonds" -msgid_plural "almonds" -msgstr[0] "アーモンド" - -#. ~ Description for {'str_sp': 'almonds'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from an almond tree, still in their shell." -msgstr "アーモンドの木から採取した硬い実です。殻が付いています。" - -#: lang/json/GENERIC_from_json.py -msgid "peanuts" -msgid_plural "peanuts" -msgstr[0] "ピーナッツ" - -#. ~ Description for {'str_sp': 'peanuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a peanut bush, still in their shell." -msgstr "ラッカセイの茂みから採取した硬い実です。殻が付いています。" - -#: lang/json/GENERIC_from_json.py -msgid "hazelnuts" -msgid_plural "hazelnuts" -msgstr[0] "ヘーゼルナッツ" - -#. ~ Description for {'str_sp': 'hazelnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hazelnut tree, still in their shell." -msgstr "ハシバミの木から採取した硬い実です。殻が付いています。" - -#: lang/json/GENERIC_from_json.py -msgid "chestnuts" -msgid_plural "chestnuts" -msgstr[0] "クリ" - -#. ~ Description for {'str_sp': 'chestnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a chestnut tree, still in their shell." -msgstr "クリの木から採取した硬い実です。殻が付いています。" - -#: lang/json/GENERIC_from_json.py -msgid "walnuts" -msgid_plural "walnuts" -msgstr[0] "クルミ" - -#. ~ Description for {'str_sp': 'walnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a walnut tree, still in their shell." -msgstr "クルミの木から採取した硬い実です。殻が付いています。" - -#: lang/json/GENERIC_from_json.py -msgid "steel grille" -msgid_plural "steel grilles" -msgstr[0] "スチール担体" - -#. ~ Description for {'str': 'steel grille'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a metal grille. It can be used as a framework for making a chemical" -" catalyst." -msgstr "金属製の網です。化学触媒を行う際の担体として利用できます。" - -#: lang/json/GENERIC_from_json.py -msgid "cobalt-60 pellet" -msgid_plural "cobalt-60 pellets" -msgstr[0] "コバルト60ペレット" - -#. ~ Description for {'str': 'cobalt-60 pellet'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Radioactive material that used to be a part of some nuclear industry " -"equipment. You are yet to find some use for it." -msgstr "原子力を利用した製品に入っていた放射性物質です。現状では使い道が思い浮かびません。" - -#: lang/json/GENERIC_from_json.py -msgid "sandbag" -msgid_plural "sandbags" -msgstr[0] "砂袋" - -#. ~ Description for {'str': 'sandbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with sand. It can be used to construct simple " -"barricades." -msgstr "砂がたっぷり詰まった帆布製の袋です。簡単なバリケードを築く材料になります。" - #: lang/json/GENERIC_from_json.py -msgid "earthbag" -msgid_plural "earthbags" -msgstr[0] "土嚢" +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" +msgstr[0] "紙箱" -#. ~ Description for {'str': 'earthbag'} +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': +#. 'small cardboard boxes of tea bags'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with soil. It can be used to construct simple " -"barricades." -msgstr "土がたっぷり詰まった帆布製の袋です。簡単なバリケードを築く材料になります。" +msgid "A very small cardboard box with tea brand written on it." +msgstr "紅茶の銘柄が書かれた非常に小さなボール箱です。" #: lang/json/GENERIC_from_json.py msgid "microwave generator" @@ -42157,6 +43276,11 @@ msgid "" "didn't know you needed." msgstr "1950年代に流行った占い装置です。特に必要のない精神的助言を与えてくれます。" +#: lang/json/GENERIC_from_json.py +msgid "deck of cards" +msgid_plural "decks of cards" +msgstr[0] "ゲームセット(トランプ)" + #. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py msgid "A deck of 52 playing cards." @@ -42186,6 +43310,136 @@ msgid "" "like a cleaner, happier version of the person you know." msgstr "キャンプ旅行中に撮影された、にこやかに笑う家族の写真です。両親の内の一人は、今の姿よりずっと清潔で幸せそうに見えます。" +#: lang/json/GENERIC_from_json.py +msgid "chess set" +msgid_plural "chess sets" +msgstr[0] "ゲームセット(チェス)" + +#. ~ Description for {'str': 'chess set'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden box containing all the equipment needed to play a game of chess." +msgstr "チェスゲームに必要な全ての道具が入った木箱です。" + +#: lang/json/GENERIC_from_json.py +msgid "checkers set" +msgid_plural "checkers sets" +msgstr[0] "ゲームセット(チェッカー)" + +#. ~ Description for {'str': 'checkers set'} +#: lang/json/GENERIC_from_json.py +msgid "A wooden box containing a set of round tokens used to play checkers." +msgstr "チェッカーに使う丸い駒が入った木箱です。" + +#: lang/json/GENERIC_from_json.py +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" +msgstr[0] "ゲームセット(ソーサリー)" + +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of +#. Sorcery cards'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." +msgstr "「ソーサリー」というゲームで遊ぶためのカード一式です。各カードには多種多様なモンスターの絵が描かれています。" + +#: lang/json/GENERIC_from_json.py +msgid "Picturesque" +msgid_plural "sets of Picturesque" +msgstr[0] "ゲームセット(ピクチャレスク)" + +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where one draws an image, and the others attempt to guess what it is." +msgstr "一人が絵を描いて、それを見たもう一人が何を描いたのか当てるゲームです。" + +#: lang/json/GENERIC_from_json.py +msgid "Capitalism" +msgid_plural "sets of Capitalism" +msgstr[0] "ゲームセット(キャピタリズム)" + +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players traverse around the board buying property and swindling" +" their friends." +msgstr "盤上の駒を動かして資産を買ったり友人を騙したりして遊ぶゲームです。" + +#: lang/json/GENERIC_from_json.py +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" +msgstr[0] "ゲームセット(ブロブス&バンディッツ)" + +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and +#. Bandits'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A roleplaying game set in the post-apocalypse, so you can pretend to survive" +" the apocalypse while surviving the apocalypse." +msgstr "" +"ポストアポカリプスの世界を舞台にしたテーブルトークRPGです。現実の終末世界をサバイバルしながら、ゲーム内でも終末世界のサバイバルごっこを楽しめます。" + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" +msgstr[0] "ゲームセット(バトルハンマー)" + +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of fantasy creatures." +msgstr "ファンタジー世界の生き物を模した小さなフィギュアを使って遊ぶストラテジーゲームです。" + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" +msgstr[0] "ゲームセット(バトルハンマー20k)" + +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of +#. Battlehammer 20k'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." +msgstr "宇宙人やグロテスクなスペースマリーンを模した小さなフィギュアを使って遊ぶストラテジーゲームです。" + +#: lang/json/GENERIC_from_json.py +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" +msgstr[0] "ゲームセット(大農園の開拓者たち)" + +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of +#. Settlers of the Ranch'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game where players build settlements and trade for supplies." +msgstr "プレイヤー同士が開拓地で資源を売買するストラテジーゲームです。" + +#: lang/json/GENERIC_from_json.py +msgid "Warships" +msgid_plural "sets of Warships" +msgstr[0] "ゲームセット(レーダー戦術ゲーム)" + +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players try to guess where the opponent placed their ships on " +"the board." +msgstr "対戦相手がどのマスに艦の駒を置いたのか推理するゲームです。" + +#: lang/json/GENERIC_from_json.py +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" +msgstr[0] "ゲームセット(マーダーミステリー)" + +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder +#. Mystery'} +#: lang/json/GENERIC_from_json.py +msgid "A game where players try to figure out who murdered the butler." +msgstr "執事を殺した犯人を推理するゲームです。" + #: lang/json/GENERIC_from_json.py msgid "animal" msgid_plural "none" @@ -42852,7 +44106,6 @@ msgid_plural "broken eyebots" msgstr[0] "壊れた監視ロボット" #. ~ Description for {'str': 'broken eyebot'} -#. ~ Description for broken eyebot #: lang/json/GENERIC_from_json.py msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " @@ -42956,7 +44209,6 @@ msgid_plural "broken miner bots" msgstr[0] "壊れた採掘ロボット" #. ~ Description for {'str': 'broken miner bot'} -#. ~ Description for broken miner bot #: lang/json/GENERIC_from_json.py msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " @@ -43019,8 +44271,6 @@ msgid_plural "broken manhacks" msgstr[0] "壊れたマンハック" #. ~ Description for {'str': 'broken manhack'} -#. ~ Description for broken hack -#. ~ Description for broken manhack #: lang/json/GENERIC_from_json.py msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " @@ -43033,7 +44283,6 @@ msgid_plural "broken grenade hacks" msgstr[0] "壊れたマンハック(手榴弾)" #. ~ Description for {'str': 'broken grenade hack'} -#. ~ Description for broken grenade hack #: lang/json/GENERIC_from_json.py msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " @@ -43046,7 +44295,6 @@ msgid_plural "broken mininuke hacks" msgstr[0] "壊れたマンハック(小型原子爆弾)" #. ~ Description for {'str': 'broken mininuke hack'} -#. ~ Description for broken mininuke hack #: lang/json/GENERIC_from_json.py msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " @@ -43059,7 +44307,6 @@ msgid_plural "broken tear gas hacks" msgstr[0] "壊れたマンハック(催涙ガス)" #. ~ Description for {'str': 'broken tear gas hack'} -#. ~ Description for broken tear gas hack #: lang/json/GENERIC_from_json.py msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " @@ -43072,7 +44319,6 @@ msgid_plural "broken EMP hacks" msgstr[0] "壊れたマンハック(EMP)" #. ~ Description for {'str': 'broken EMP hack'} -#. ~ Description for broken EMP hack #: lang/json/GENERIC_from_json.py msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " @@ -43085,7 +44331,6 @@ msgid_plural "broken flashbang hacks" msgstr[0] "壊れたマンハック(閃光弾)" #. ~ Description for {'str': 'broken flashbang hack'} -#. ~ Description for broken flashbang hack #: lang/json/GENERIC_from_json.py msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " @@ -43098,13 +44343,24 @@ msgid_plural "broken C-4 hacks" msgstr[0] "壊れたマンハック(C4爆弾)" #. ~ Description for {'str': 'broken C-4 hack'} -#. ~ Description for broken C-4 hack #: lang/json/GENERIC_from_json.py msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " "ground. Could be gutted for parts." msgstr "壊れたマンハック(C4爆弾)です。地面にごろんと転がっており、もはや脅威ではありません。部品を取り外せそうです。" +#: lang/json/GENERIC_from_json.py +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" +msgstr[0] "壊れた拡声装置" + +#. ~ Description for {'str': 'broken loudspeaker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." +msgstr "もはや何の音も立てない、壊れた拡声装置です。部品を取り外せそうです。" + #: lang/json/GENERIC_from_json.py msgid "processor board" msgid_plural "processor boards" @@ -44113,19 +45369,6 @@ msgid "" "stretchable clothing." msgstr "ほど良い大きさに切り分けられたネオプレンのシートです。軽量で伸縮性に富む衣服の材料になります。" -#: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" -msgstr[0] "TX-5LRレーザーキャノン" - -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." -msgstr "" -"TX-5LRケルベロスレーザーキャノンから取り外された一本の砲身です。作動に必要な部品がいくつも欠けており、このまま武器として使うことはできません。" - #: lang/json/GENERIC_from_json.py msgid "light bulb" msgid_plural "light bulbs" @@ -44321,11 +45564,6 @@ msgid "broken M2 autonomous CROWS II" msgid_plural "broken M2 autonomous CROWS II turrets" msgstr[0] "壊れたタレット(CROWS II/M2)" -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "壊れたレーザータレット" - #: lang/json/GENERIC_from_json.py msgid "broken secubot" msgid_plural "broken secubots" @@ -44600,11 +45838,6 @@ msgid "" "A tulip bud. Contains some substances commonly produced by a tulip flower." msgstr "チューリップの蕾です。チューリップの花と同じ成分が含まれています。" -#: lang/json/GENERIC_from_json.py -msgid "spurge" -msgid_plural "spurges" -msgstr[0] "スパージ" - #. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." @@ -44803,7 +46036,6 @@ msgid_plural "broken tribots" msgstr[0] "壊れた三脚ロボット" #. ~ Description for {'str': 'broken tribot'} -#. ~ Description for broken tribot #: lang/json/GENERIC_from_json.py msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" @@ -44909,6 +46141,24 @@ msgid "" msgstr "" "このソーラーパネルは明らかに最先端技術の結晶であり、莫大な電力を供給するでしょう。ソーラーセルにあたる面は不思議な素材で覆われており、いかにも壊れやすそうに見えます。ガラス板等で補強するのもどうやら無理そうです。" +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "壊れたレーザータレット" + +#: lang/json/GENERIC_from_json.py +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" +msgstr[0] "TX-5LRレーザーキャノン" + +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." +msgstr "" +"TX-5LRケルベロスレーザーキャノンから取り外された一本の砲身です。作動に必要な部品がいくつも欠けており、このまま武器として使うことはできません。" + #: lang/json/GENERIC_from_json.py msgid "module template" msgid_plural "module templates" @@ -45248,6 +46498,11 @@ msgid "" msgstr "" "様々な有名メーカーのIC回路のデータシートが多数記録された、膨大なアーカイブです。このデータが使われている設備がなければデータの回収や再利用も難しいため、限られた者にしか上手く扱えません。" +#: lang/json/GENERIC_from_json.py +msgid "martial art manual" +msgid_plural "martial art manuals" +msgstr[0] "本(武術/武術マニュアル)" + #: lang/json/GENERIC_from_json.py msgid "abstract map" msgid_plural "abstract maps" @@ -45695,11 +46950,6 @@ msgid "" msgstr "" "中世の剣術に関するコンプリートガイドブックです。ドイツとイタリアでのロングソードとサイドソードの使い方の比較や、鎧や盾の有無による戦術の違いが解説されています。" -#: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" -msgstr[0] "本(武術/武術マニュアル)" - #: lang/json/GENERIC_from_json.py msgid "juvenile sourdough starter" msgid_plural "juvenile sourdough starters" @@ -45773,6 +47023,18 @@ msgid "" "feeling sufficiently ghoulish." msgstr "人間の骨です。非常に残酷な者なら、何かの材料として使おうと考えるかもしれません。" +#: lang/json/GENERIC_from_json.py +msgid "demihuman bone" +msgid_plural "demihuman bones" +msgstr[0] "亜人骨" + +#. ~ Description for {'str': 'demihuman bone'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." +msgstr "亜人の骨です。非常に残酷な者なら、何かの材料として使おうと考えるかもしれません。" + #: lang/json/GENERIC_from_json.py msgid "first aid kit" msgid_plural "first aid kits" @@ -45841,11 +47103,12 @@ msgstr[0] "MRE(チリ&ビーンズ)" #. Beans'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." msgstr "" -"空腹の兵士に必要なもの全てを備えた、チリ&ビーンズの「Meal Ready to " +"ベジタリアンの兵士に必要なもの全てを備えた、チリ&ビーンズの「Meal Ready to " "Eat(即席料理)」です。密封された袋から取り出すと腐敗が進行を始めます。使用するか分解して中身を取り出します。" #: lang/json/GENERIC_from_json.py @@ -46020,6 +47283,39 @@ msgstr "" "空腹の兵士に必要なもの全てを備えた、マカロニマリナーラの「Meal Ready to " "Eat(即席料理)」です。密封された袋から取り出すと腐敗が進行を始めます。使用するか分解して中身を取り出します。" +#: lang/json/GENERIC_from_json.py +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" +msgstr[0] "MRE(ホウレンソウフェットチーネ)" + +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - +#. Spinach Fettuccine'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything" +" a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" +"ベジタリアンの兵士に必要なもの全てを備えた、マッシュルームフェットチーネの「Meal Ready to " +"Eat(即席料理)」です。密封された袋から取り出すと腐敗が進行を始めます。使用するか分解して中身を取り出します。" + +#: lang/json/GENERIC_from_json.py +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" +msgstr[0] "MRE(ラタトゥイユ)" + +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - +#. Ratatouille'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" +"ベジタリアンの兵士に必要なもの全てを備えた、ラタトゥイユの「Meal Ready to " +"Eat(即席料理)」です。密封された袋から取り出すと腐敗が進行を始めます。使用するか分解して中身を取り出します。" + #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" msgid_plural "MREs - Cheese Tortellini" @@ -47381,6 +48677,16 @@ msgid "" "looks almost like glass." msgstr "丈夫なプラスチック製のコップです。透明なアクリル製のため、ガラスコップとよく似ています。" +#: lang/json/GENERIC_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "ボウル(750ml/プラスチック)" + +#. ~ Description for {'str': 'plastic bowl'} +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "密閉できる便利な蓋が付いたプラスチック製のボウルです。750mlの容量があります。" + #: lang/json/GENERIC_from_json.py msgid "kiddie bowl" msgid_plural "kiddie bowls" @@ -48055,6 +49361,18 @@ msgid "" "placed on the ground, this can support one guitar in an upright position." msgstr "奇妙な形状の、3本足のアルミ製器具です。立てておくことで、1台のギターを直立状態で支えられます。" +#: lang/json/GENERIC_from_json.py +msgid "plectrum" +msgid_plural "plectra" +msgstr[0] "ピック" + +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." +msgstr "ギターやマンドリンの弦を弾くために使う、先端が尖った平たいプラスチック製の道具です。" + #: lang/json/GENERIC_from_json.py msgid "mixer" msgid_plural "mixers" @@ -49148,6 +50466,7 @@ msgid_plural "pointy sticks" msgstr[0] "尖った棒" #. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py msgid "A simple wood pole with one end sharpened." msgstr "先端を尖らせてある木の棒です。" @@ -49300,6 +50619,11 @@ msgid "" "slashing and stabbing." msgstr "頑丈な鋼鉄製の柄の先端に刃が付いており、斬撃も刺突も上手く繰り出すことができます。" +#: lang/json/GENERIC_from_json.py +msgid "wooden javelin" +msgid_plural "wooden javelins" +msgstr[0] "ウッドジャベリン" + #. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -49307,6 +50631,11 @@ msgid "" "been carved and covered for better grip." msgstr "先端を鋭く尖らせ、火で炙って硬化した木製の槍です。彫り目が入った持ち手には覆いが巻いてあり、より握りやすくなっています。" +#: lang/json/GENERIC_from_json.py +msgid "iron javelin" +msgid_plural "iron javelins" +msgstr[0] "アイアンジャベリン" + #. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -50278,26 +51607,30 @@ msgid "A splintered piece of wood, could be used as a skewer or for kindling." msgstr "裂けて使い物にならなくなった木材です。串や焚き付けとして利用できます。" #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" -msgstr[0] "重棒" +msgid "stout branch" +msgid_plural "stout branches" +msgstr[0] "" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." -msgstr "頑丈で重い棒です。まともな近接武器として使えます。" +msgid "" +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" -msgstr[0] "長棒" +msgid "long stout branch" +msgid_plural "long stout branches" +msgstr[0] "" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout +#. branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." -msgstr "長めの棒です。まともな近接武器として使えますが、分解すれば重棒になります。" +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "long pole" @@ -50317,7 +51650,6 @@ msgid_plural "planks" msgstr[0] "木材" #. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" @@ -50367,6 +51699,26 @@ msgid "" msgstr "" "ベニヤ板やOSB、MDFなどの標準的な4×8材です。重く嵩張りますが、様々な建築物の資材として非常に役立ちます。小さなものを造りたいときは適切な大きさに切断する必要があります。" +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "水筒(750ml/鋼)" + +#. ~ Description for {'str': 'steel bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "鋼鉄製の水筒です。750mlの容量があります。" + +#: lang/json/GENERIC_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "携帯ボトル(500ml)" + +#. ~ Description for {'str': 'foldable plastic bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "軟質プラスチック製のボトルです。500mlの容量があります。" + #: lang/json/GENERIC_from_json.py msgid "atomic coffee maker" msgid_plural "atomic coffee makers" @@ -51023,6 +52375,19 @@ msgid "" msgstr "" "放射性崩壊と低電力LEDの魔法で動き、少なくとも10年は読書に十分な光源として活躍する高級ランプです。大変動前は、防災意識を周囲に見せつける最も高価なアイテムでした。実際に使ってみても、結構いい感じです。カバーは閉じています。使用するとカバーを開けて周囲を照らします。" +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" +msgstr[0] "採血キット(250ml)" + +#. ~ Description for {'str': 'blood draw kit'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." +msgstr "サンプル保存用の試験管に血液を吸い上げる医療キットです。自分自身、または足元にある死体に使用します。" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" msgid_plural "charcoal kilns" @@ -51682,7 +53047,6 @@ msgid "A set of small monitors. Required to view cameras' output." msgstr "小型モニタ一式です。監視カメラが撮っている映像を表示するのに必要です。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "security camera" msgid_plural "security cameras" msgstr[0] "監視カメラ" @@ -51746,7 +53110,6 @@ msgid_plural "electronics control units" msgstr[0] "電子制御ユニット" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "drive by wire controls" msgid_plural "sets of drive by wire controls" msgstr[0] "電子制御スロットル" @@ -52317,7 +53680,6 @@ msgid "" msgstr "車両がバックする際に音を発して後方の歩行者に注意を促す目的で作られた装置ですが、この状況でわざわざ注意を促すのは賢明とは言えません。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "stereo system" msgid_plural "stereo systems" msgstr[0] "ステレオシステム" @@ -52377,22 +53739,22 @@ msgstr "束ねた木材です。装甲の代用品として車両に取り付け #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel plating" msgid_plural "steel plating" -msgstr[0] "平板(鋼)" +msgstr[0] "装甲板(鋼)" #. ~ Description for {'str_sp': 'steel plating'} #: lang/json/GENERIC_from_json.py msgid "A piece of armor plating made of steel." -msgstr "鋼製の平板です。装甲用の部品になります。" +msgstr "鋼鉄で作られた装甲板です。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "superalloy plating" msgid_plural "superalloy plating" -msgstr[0] "平板(超合金)" +msgstr[0] "装甲板(超合金)" #. ~ Description for {'str_sp': 'superalloy plating'} #: lang/json/GENERIC_from_json.py msgid "A piece of armor plating made of sturdy superalloy." -msgstr "超合金製の頑丈な平板です。装甲用の部品になります。" +msgstr "頑丈な超合金で作られた装甲板です。" #: lang/json/GENERIC_from_json.py msgid "superalloy sheet" @@ -52408,28 +53770,28 @@ msgstr "超合金製の頑丈な薄板です。驚異的な硬度と可鍛性を #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "spiked plating" msgid_plural "spiked plating" -msgstr[0] "スパイク付き平板" +msgstr[0] "装甲板(スパイク鋼)" #. ~ Description for {'str_sp': 'spiked plating'} #: lang/json/GENERIC_from_json.py msgid "" "A piece of armor plating made of steel. It is covered with menacing spikes." -msgstr "鋼製の鋭い棘で覆われた平板です。装甲用の部品になります。" +msgstr "鋼鉄で作られた装甲板です。表面は鋭いスパイクで覆われています。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "hard plating" msgid_plural "hard platings" -msgstr[0] "厚い平板" +msgstr[0] "装甲板(厚鋼)" #. ~ Description for {'str': 'hard plating'} #: lang/json/GENERIC_from_json.py msgid "A piece of very thick armor plating made of steel." -msgstr "鋼製の厚い平板です。装甲用の部品になります。" +msgstr "鋼鉄で作られた非常に厚い装甲板です。" #: lang/json/GENERIC_from_json.py msgid "military composite plating" msgid_plural "military composite platings" -msgstr[0] "平板(軍用複合)" +msgstr[0] "装甲板(軍用複合)" #. ~ Description for {'str': 'military composite plating'} #: lang/json/GENERIC_from_json.py @@ -52446,7 +53808,7 @@ msgstr[0] "装甲キット(キチン)" #. ~ Description for {'str': 'chitin armor kit'} #: lang/json/GENERIC_from_json.py msgid "Light chitin plating made for a vehicle." -msgstr "キチン質で作られた軽量装甲です。車両に取り付けます。" +msgstr "車両に取り付けられる、軽量なキチン製装甲です。" #: lang/json/GENERIC_from_json.py msgid "biosilicified chitin armor kit" @@ -52456,7 +53818,7 @@ msgstr[0] "装甲キット(シリコンキチン)" #. ~ Description for {'str': 'biosilicified chitin armor kit'} #: lang/json/GENERIC_from_json.py msgid "Durable silica-coated chitin plating made for a vehicle." -msgstr "シリコン化したキチン質で作られた耐久性の高い装甲です。車両に取り付けます。" +msgstr "車両に取り付けられる、シリコン化したキチン質で作られた耐久性の高い装甲です。" #: lang/json/GENERIC_from_json.py msgid "bone armor kit" @@ -52466,7 +53828,7 @@ msgstr[0] "装甲キット(骨)" #. ~ Description for {'str': 'bone armor kit'} #: lang/json/GENERIC_from_json.py msgid "Bone plating made for a vehicle." -msgstr "骨で作られた装甲です。車両に取り付けます。" +msgstr "車両に取り付けられる、骨で作られた装甲です。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "shredder" @@ -52629,7 +53991,6 @@ msgid "A leather-covered seat designed to be straddled." msgstr "跨るようにデザインされた革張りのシートです。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "solar panel" msgid_plural "solar panels" msgstr[0] "ソーラーパネル" @@ -52657,7 +54018,6 @@ msgstr "" "デリケートなソーラーセルをゾンビやファウルボールの危害から防護すべく、強化ガラスの板で覆ったソーラーパネルです。ほんの少しですが、強化ガラスの影響で通常のソーラーパネルより発電効率が低下しています。車両部品として使います。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "upgraded solar panel" msgid_plural "upgraded solar panels" msgstr[0] "改良型ソーラーパネル" @@ -53132,6 +54492,19 @@ msgid "" msgstr "" "PrepNetと呼ばれる人々は、追跡不可能なネットワーク貨幣を利用した租税回避に深く関わっていました。この硬貨は、表面に乱数列がエンボス加工された、物理的に存在する暗号通貨です。" +#: lang/json/GENERIC_from_json.py +msgctxt "container" +msgid "basin" +msgid_plural "basins" +msgstr[0] "たらい" + +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." +msgstr "中に液体を入れられる、一枚の板金から打ち出して作られた大きく浅いたらいです。水を集めるのに最適です。" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" msgid_plural "vehicle refrigerators" @@ -53236,6 +54609,16 @@ msgstr[0] "核燃料ペレット" msgid "A small pellet of fissile material. Handle carefully." msgstr "ペレット状の核分裂性物質です。取り扱いには気をつけてください。" +#: lang/json/GENERIC_from_json.py +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" +msgstr[0] "有害廃棄物用ドラム缶(200L)" + +#. ~ Description for {'str': 'hazardous waste drum'} +#: lang/json/GENERIC_from_json.py +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "有害物質を保管することを示す、黄色いドラム缶です。" + #: lang/json/GENERIC_from_json.py msgid "folded atomic butter churn" msgid_plural "folded atomic butter churns" @@ -53275,6 +54658,18 @@ msgid "" "bio-compatibility and durability." msgstr "生体への適合性と耐久性に優れた、歯の治療に使われる純チタン製の人工歯です。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" +msgstr[0] "大型カーゴスペース" + +#. ~ Description for {'str': 'hauling space'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to" +" create a very large amount of space for transporting goods." +msgstr "車両の屋根を拡張して非常に広いスペースを確保する、輸送用の巨大な金属製タンクです。" + #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" msgid_plural "hydraulic gauntlets" @@ -53647,18 +55042,6 @@ msgid "" "parts." msgstr "大脳皮質を包み込む人工ニューロン膜です。機械と人間の知性を融合させ、個々のパーツよりもはるかに大きな形態へと至ります。" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" -msgstr[0] "大型カーゴスペース" - -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to" -" create a very large amount of space for transporting goods." -msgstr "車両の屋根を拡張して非常に広いスペースを確保する、輸送用の巨大な金属製タンクです。" - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "ultralight frame" msgid_plural "ultralight frames" @@ -53681,6 +55064,83 @@ msgid "" "camera station, steering tools, and electronics controls." msgstr "カメラ操作、ステアリング、電子制御装置などの機能をもった、軍用車両用の複雑な大型制御装置です。" +#: lang/json/GENERIC_from_json.py +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" +msgstr[0] "車載棚" + +#. ~ Description for {'str': 'vehicle shelving'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." +msgstr "カーゴスペースとして利用できるよう頑丈に結束され、多くの取り付け金具を追加した重量級フレームです。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" +msgstr[0] "ソーラーアレイ" + +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires" +" a jumper cable or similar to pull power from." +msgstr "" +"金属製のポールに搭載された骨組みの上に、原始的な作りのトラッキング機能とモーターを備えた3枚のソーラーパネルが垂直に並んでいます。油圧装置が脆弱、かつ日光を最大限に活用できる表面積が必要なため、既存の車両には取り付けられません。電力を利用するにはジャンパーケーブルなどが必要です。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" +msgstr[0] "装甲ソーラーアレイ" + +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" +"金属製のポールに搭載された骨組みの上に、原始的な作りのトラッキング機能とモーターを備えた3枚の装甲ソーラーパネルが垂直に並んでいます。油圧装置が脆弱、かつ日光を最大限に活用できる表面積が必要なため、既存の車両には取り付けられません。電力を利用するにはジャンパーケーブルなどが必要です。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" +msgstr[0] "改良型ソーラーアレイ" + +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" +"金属製のポールに搭載された骨組みの上に、原始的な作りのトラッキング機能とモーターを備えた3枚の改良型ソーラーパネルが垂直に並んでいます。油圧装置が脆弱、かつ日光を最大限に活用できる表面積が必要なため、既存の車両には取り付けられません。電力を利用するにはジャンパーケーブルなどが必要です。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" +msgstr[0] "改良型装甲ソーラーアレイ" + +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." +msgstr "" +"金属製のポールに搭載された骨組みの上に、原始的な作りのトラッキング機能とモーターを備えた3枚の改良型装甲ソーラーパネルが垂直に並んでいます。油圧装置が脆弱、かつ日光を最大限に活用できる表面積が必要なため、既存の車両には取り付けられません。電力を利用するにはジャンパーケーブルなどが必要です。" + #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" msgid_plural "withered plant bundles" @@ -53696,22 +55156,46 @@ msgid "CRIT hatchet" msgid_plural "CRIT hatchets" msgstr[0] "CRITハチェット" +#. ~ Use action msg for CRIT hatchet. +#: lang/json/GENERIC_from_json.py +msgid "You extend your hatchet" +msgstr "ハチェットを伸ばしました。" + #. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer." -msgstr "非常に鋭く頑丈な、片手で扱えるハチェットです。優れた近接武器ですが、斧やハンマーの代用品としても利用できます。" +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." +msgstr "非常に鋭く頑丈な、片手で扱えるハチェットです。優れた近接武器ですが、伐採にも使え、伸長すればハンマーの代用品にもなります。" + +#: lang/json/GENERIC_from_json.py +msgid "CRIT axe" +msgid_plural "CRIT axes" +msgstr[0] "CRITアックス" +#. ~ Use action msg for CRIT axe. #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Blade-work manual" -msgid_plural "C.R.I.T Blade-work manuals" -msgstr[0] "本(武術/C.R.I.Tナイフ術マニュアル)" +msgid "You collapse your axe" +msgstr "斧を折り畳みました。" -#. ~ Description for {'str': 'C.R.I.T Blade-work manual'} +#. ~ Description for CRIT axe #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Blade-work." -msgstr "C.R.I.Tのナイフ術について記した高度な軍用マニュアルです。" +msgid "" +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer" +" when extended." +msgstr "非常に鋭く頑丈な、柄の長い斧です。一撃が重い近接武器ですが、伐採にも使え、伸長すればハンマーの代用品にもなります。" + +#: lang/json/GENERIC_from_json.py +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" +msgstr[0] "本(武術/CRIT剣術マニュアル)" + +#. ~ Description for CRIT Blade-work manual +#: lang/json/GENERIC_from_json.py +msgid "An advanced military manual on CRIT Blade-work." +msgstr "CRITの剣術について記した高度な軍用マニュアルです。" #: lang/json/GENERIC_from_json.py msgid "C.R.I.T Enforcement manual" @@ -53724,14 +55208,14 @@ msgid "An advanced military manual on C.R.I.T Enforcer melee." msgstr "C.R.I.Tの近接攻撃術について記した高度な軍用マニュアルです。" #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T CQB manual" -msgid_plural "C.R.I.T CQB manuals" -msgstr[0] "本(武術/C.R.I.T CQBマニュアル)" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" +msgstr[0] "本(武術/CRIT CQBマニュアル)" -#. ~ Description for {'str': 'C.R.I.T CQB manual'} +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T general CQB." -msgstr "C.R.I.Tの一般的なCQB技術について記した高度な軍用マニュアルです。" +msgid "An advanced military manual on CRIT general CQB." +msgstr "CRITの一般的なCQB技術について記した高度な軍用マニュアルです。" #: lang/json/GENERIC_from_json.py msgid "broken emissary" @@ -53837,16 +55321,6 @@ msgid "" msgstr "" "デリケートなソーラーセルを宇宙人やファウルボールの危害から防護すべく、強化ガラスの板で覆った改良型ソーラーパネルです。ほんの少しですが、強化ガラスの影響で通常の改良型ソーラーパネルより発電効率が低下しています。車両部品として使います。" -#: lang/json/GENERIC_from_json.py -msgid "6.54x42mm casing" -msgid_plural "6.54x42mm casings" -msgstr[0] "空薬莢(6.54x42mm)" - -#. ~ Description for 6.54x42mm casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 6.54x42 round." -msgstr "6.54x42mmの空薬莢です。" - #: lang/json/GENERIC_from_json.py msgid "tiny pistol casing" msgid_plural "tiny pistol casings" @@ -53955,464 +55429,36 @@ msgid_plural "broken rifle TALON UGVs" msgstr[0] "壊れた無人戦闘車(ライフル)" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing)" -msgid_plural "garden pots (growing)" -msgstr[0] "栽培用植木鉢(成長)" - -#. ~ Description for {'str': 'garden pot (growing)', 'str_pl': 'garden pots -#. (growing)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot growing some tasty, unnameable plants. You shouldn't see this " -"item." -msgstr "何らかの食用植物を栽培中の植木鉢です。このアイテムは通常出現しません。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (grown)" -msgid_plural "garden pots (grown)" -msgstr[0] "栽培用植木鉢(完熟)" - -#. ~ Description for {'str': 'garden pot (grown)', 'str_pl': 'garden pots -#. (grown)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot with some ripe, unnameable plants. You shouldn't see this " -"item." -msgstr "何らかの熟した植物が植わっている植木鉢です。このアイテムは通常出現しません。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing tomato)" -msgid_plural "garden pots (growing tomatoes)" -msgstr[0] "植木鉢(トマト/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing tomato)', 'str_pl': -#. 'garden pots (growing tomatoes)'}. -#: lang/json/GENERIC_from_json.py -msgid "The tomatoes are ready to harvest!" -msgstr "トマトが収穫できる状態まで育ちました!" - -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing tomato)', -#. 'str_pl': 'garden pots (growing tomatoes)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing wheat)', -#. 'str_pl': 'garden pots (growing wheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing hops)', -#. 'str_pl': 'garden pots (growing hops)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing buckwheat)', -#. 'str_pl': 'garden pots (growing buckwheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing broccoli)', -#. 'str_pl': 'garden pots (growing broccoli)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing oats)', -#. 'str_pl': 'garden pots (growing oats)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing barley)', -#. 'str_pl': 'garden pots (growing barley)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing carrot)', -#. 'str_pl': 'garden pots (growing carrots)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cotton)', -#. 'str_pl': 'garden pots (growing cotton)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cabbage)', -#. 'str_pl': 'garden pots (growing cabbage)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cucumber)', -#. 'str_pl': 'garden pots (growing cucumber)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing garlic)', -#. 'str_pl': 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "It isn't done growing yet." -msgstr "まだ完熟していません。" - -#. ~ Description for {'str': 'garden pot (growing tomato)', 'str_pl': 'garden -#. pots (growing tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing tomatoes. Once ripe, it can be activated to " -"prepare them for harvest." -msgstr "トマトが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe tomato)" -msgid_plural "garden pots (ripe tomatoes)" -msgstr[0] "植木鉢(トマト/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe tomato)', 'str_pl': 'garden -#. pots (ripe tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with a ripe tomato plant. Disassemble to retrieve the " -"tasty 'matos." -msgstr "完熟したトマトが植わっている植木鉢です。分解すると美味しいトマトを収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing wheat)" -msgid_plural "garden pots (growing wheat)" -msgstr[0] "植木鉢(小麦/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing wheat)', 'str_pl': -#. 'garden pots (growing wheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The wheat is ready to harvest!" -msgstr "小麦が収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing wheat)', 'str_pl': 'garden -#. pots (growing wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing wheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "小麦が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe wheat)" -msgid_plural "garden pots (ripe wheat)" -msgstr[0] "植木鉢(小麦/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe wheat)', 'str_pl': 'garden pots -#. (ripe wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with wheat ready to harvest. Disassemble to retrieve " -"it." -msgstr "小麦を収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing hops)" -msgid_plural "garden pots (growing hops)" -msgstr[0] "植木鉢(ホップ/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'}. -#: lang/json/GENERIC_from_json.py -msgid "The hops are ready to harvest!" -msgstr "ホップが収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing hops. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "ホップが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe hops)" -msgid_plural "garden pots (ripe hops)" -msgstr[0] "植木鉢(ホップ/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe hops)', 'str_pl': 'garden pots -#. (ripe hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing blooming hops flowers. Disassemble to " -"harvest them." -msgstr "ホップの花を収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing buckwheat)" -msgid_plural "garden pots (growing buckwheat)" -msgstr[0] "植木鉢(蕎麦/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The buckwheat is ready to harvest!" -msgstr "蕎麦が収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing buckwheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "蕎麦が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe buckwheat)" -msgid_plural "garden pots (ripe buckwheat)" -msgstr[0] "植木鉢(蕎麦/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe buckwheat)', 'str_pl': 'garden -#. pots (ripe buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe buckwheat stalks. Disassemble to " -"harvest them." -msgstr "蕎麦を収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing broccoli)" -msgid_plural "garden pots (growing broccoli)" -msgstr[0] "植木鉢(ブロッコリー/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'}. -#: lang/json/GENERIC_from_json.py -msgid "The broccoli is ready to harvest!" -msgstr "ブロッコリーが収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing broccoli. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "ブロッコリーが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe broccoli)" -msgid_plural "garden pots (ripe broccoli)" -msgstr[0] "植木鉢(ブロッコリー/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe broccoli)', 'str_pl': 'garden -#. pots (ripe broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some fully-grown broccoli. Disassemble to " -"harvest it." -msgstr "ブロッコリーを収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing oats)" -msgid_plural "garden pots (growing oats)" -msgstr[0] "植木鉢(燕麦/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'}. -#: lang/json/GENERIC_from_json.py -msgid "The oats are ready to harvest!" -msgstr "燕麦が収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing oats. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "燕麦が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe oats)" -msgid_plural "garden pots (ripe oats)" -msgstr[0] "植木鉢(燕麦/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe oats)', 'str_pl': 'garden pots -#. (ripe oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some golden, fully-grown oats. Disassemble " -"to harvest them." -msgstr "燕麦を収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing barley)" -msgid_plural "garden pots (growing barley)" -msgstr[0] "植木鉢(大麦/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing barley)', 'str_pl': -#. 'garden pots (growing barley)'}. -#: lang/json/GENERIC_from_json.py -msgid "Barley is ready to harvest!" -msgstr "大麦が収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing barley)', 'str_pl': 'garden -#. pots (growing barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing barley. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "大麦が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe barley)" -msgid_plural "garden pots (ripe barley)" -msgstr[0] "植木鉢(大麦/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe barley)', 'str_pl': 'garden -#. pots (ripe barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ready-to-harvest barley. Disassemble " -"to harvest it." -msgstr "大麦を収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing carrot)" -msgid_plural "garden pots (growing carrots)" -msgstr[0] "植木鉢(ニンジン/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing carrot)', 'str_pl': -#. 'garden pots (growing carrots)'}. -#: lang/json/GENERIC_from_json.py -msgid "The carrots are ready to harvest!" -msgstr "ニンジンが収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing carrot)', 'str_pl': 'garden -#. pots (growing carrots)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing carrots. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "ニンジンが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe carrot)" -msgid_plural "garden pots (ripe carrot)" -msgstr[0] "植木鉢(ニンジン/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe carrot)', 'str_pl': 'garden -#. pots (ripe carrot)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ripe carrots. Disassemble to harvest " -"them. Store away from rabbits." -msgstr "ニンジンを収穫する準備が整った植木鉢です。分解すると収穫できます。ウサギに食べられないよう気を付けましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cotton)" -msgid_plural "garden pots (growing cotton)" -msgstr[0] "植木鉢(綿/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing cotton)', 'str_pl': -#. 'garden pots (growing cotton)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cotton is ready to harvest!" -msgstr "綿花が収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing cotton)', 'str_pl': 'garden -#. pots (growing cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cotton. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "綿が植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cotton)" -msgid_plural "garden pots (ripe cotton)" -msgstr[0] "植木鉢(綿/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe cotton)', 'str_pl': 'garden -#. pots (ripe cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing white, fluffy cotton bolls ready for the " -"loom. Disassemble to pluck them." -msgstr "綿を収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cabbage)" -msgid_plural "garden pots (growing cabbage)" -msgstr[0] "植木鉢(キャベツ/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing cabbage)', 'str_pl': -#. 'garden pots (growing cabbage)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cabbages are ready to harvest!" -msgstr "キャベツが収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing cabbage)', 'str_pl': 'garden -#. pots (growing cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cabbage. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "キャベツが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cabbage)" -msgid_plural "garden pots (ripe cabbage)" -msgstr[0] "植木鉢(キャベツ/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe cabbage)', 'str_pl': 'garden -#. pots (ripe cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing a big cabbage leaf. Disassemble to harvest " -"it." -msgstr "キャベツを収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cucumber)" -msgid_plural "garden pots (growing cucumber)" -msgstr[0] "植木鉢(キュウリ/成長)" - -#. ~ Use action msg for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cucumbers are ready to harvest!" -msgstr "キュウリが収穫できる状態まで育ちました!" - -#. ~ Description for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cucumber. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "キュウリが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cucumber)" -msgid_plural "garden pots (ripe cucumber)" -msgstr[0] "植木鉢(キュウリ/完熟)" - -#. ~ Description for {'str': 'garden pot (ripe cucumber)', 'str_pl': 'garden -#. pots (ripe cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe cucumbers. Disassemble to harvest " -"them." -msgstr "キュウリを収穫する準備が整った植木鉢です。分解すると収穫できます。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing garlic)" -msgid_plural "garden pots (growing garlic)" -msgstr[0] "植木鉢(ニンニク/成長)" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" +msgstr[0] "" -#. ~ Use action msg for {'str': 'garden pot (growing garlic)', 'str_pl': -#. 'garden pots (growing garlic)'}. +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "The garlic is ready to harvest!" -msgstr "ニンニクが収穫できる状態まで育ちました!" +msgid "This book contains the teaching of the Desert Wind discipline." +msgstr "" -#. ~ Description for {'str': 'garden pot (growing garlic)', 'str_pl': 'garden -#. pots (growing garlic)'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing garlic bulbs. Once ripe, it can be activated " -"to prepare it for harvest." -msgstr "ニンニクが植わった植木鉢です。成長が完了したら使用して収穫の準備を整えましょう。" +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" +msgstr[0] "" +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe garlic)" -msgid_plural "garden pots (ripe garlic)" -msgstr[0] "植木鉢(ニンニク/完熟)" +msgid "This book contains the teaching of the Diamond Mind discipline." +msgstr "" -#. ~ Description for {'str': 'garden pot (ripe garlic)', 'str_pl': 'garden -#. pots (ripe garlic)'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing pungent garlic bulbs. Disassemble to " -"harvest them, or wave it at vampires to scare them." -msgstr "ニンニクを収穫する準備が整った植木鉢です。分解すると収穫できます。振り回して吸血鬼を追い払いましょう。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "roadheader" -msgid_plural "roadheaders" -msgstr[0] "ボーリングビット" +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" +msgstr[0] "" -#. ~ Description for roadheader +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py msgid "" -"A large and heavy jagged metalhead with a lot of spikes for destroying mine " -"walls." -msgstr "大きく重い金属製の土木機械部品です。無数の鋸刃で坑道の壁を掘削します。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "Balancer" -msgid_plural "Balancers" -msgstr[0] "バランサー" - -#. ~ Description for Balancer -#: lang/json/GENERIC_from_json.py -msgid "A large and heavy metal bar for balancing a vehicle." -msgstr "大きく重い金属棒です。車両のバランスを調整します。" +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Life and Work of Tiger Sauer" @@ -54686,6 +55732,49 @@ msgid "" "smashed for iron." msgstr "壊れた鉄のゴーレムです。叩き壊せば貴重な鉄が入手できます。" +#: lang/json/GENERIC_from_json.py +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" +msgstr[0] "小型次元バッグ" + +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff" +" you put into it. It takes a few words and hand-waving to take an item out." +msgstr "" +"必要以上に多くの物が入るバッグです。荷物を入れても重量は魔法のように軽くなりますが、体積はより大きくなります。ちょっとした言葉と手振りによって、中のアイテムを取り出せます。" + +#: lang/json/GENERIC_from_json.py +msgid "dimensional bag" +msgid_plural "dimensional bags" +msgstr[0] "次元バッグ" + +#: lang/json/GENERIC_from_json.py +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" +msgstr[0] "大型次元バッグ" + +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." +msgstr "工業技術と魔法の技術を組み合わせることで人類の革新の最先端まで達したバッグです。" + +#: lang/json/GENERIC_from_json.py +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" +msgstr[0] "超重力保存ボックス" + +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." +msgstr "重力魔法を使って食品を保存する箱です。かなり重量がありますが収納スペースは広く、中に入っている食品は非常に長持ちします。" + #: lang/json/GENERIC_from_json.py msgid "lesser staff of the magi" msgid_plural "lesser staves of the magi" @@ -55274,6 +56363,21 @@ msgid "" "tips from retracting while in staff configuration. Activate to extend." msgstr "テクノマンサーの技術で強化したバネを使って折り畳めるように改造した可変式の杖です。使用すると杖を折り畳みます。" +#: lang/json/GENERIC_from_json.py +msgid "endless flask" +msgid_plural "endless flasks" +msgstr[0] "無限の酒瓶" + +#. ~ Use action msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" +msgstr "酒瓶の中には芳醇なウイスキーが大量に入っています!" + +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "The flask isn't done refilling yet." +msgstr "酒はまだ充填されていません。" + #: lang/json/GENERIC_from_json.py msgid "magic token" msgid_plural "magic tokens" @@ -55633,7 +56737,7 @@ msgid "" msgstr "" "グラムと呼ばれるシグルズの剣です。伝説のドラゴンであるファフニールを殺した剣であると言われています。かつてレギンの金床を真っ二つに切断したという話も頷ける鋭さです。" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Laevateinn" msgid_plural "Laevateinns" msgstr[0] "レーヴァテイン" @@ -56750,12 +57854,12 @@ msgid "" msgstr "X線を円錐状に照射して、その範囲内を短時間透視できます。" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Overcharge" -msgid_plural "Scrolls of Overcharge" -msgstr[0] "呪文書(オーバーチャージ)" +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" +msgstr[0] "呪文書(オプティカル・スニーズ・ビーム)" -#. ~ Description for {'str': 'Scroll of Overcharge', 'str_pl': 'Scrolls of -#. Overcharge'} +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': +#. 'Scrolls of Optical Sneeze Beam'} #: lang/json/GENERIC_from_json.py msgid "" "You overcharge your internal batteries to send a semi-directed beam from " @@ -57272,6 +58376,33 @@ msgid "" msgstr "" "人間は自己を改善しようとする唯一の生物です。この論文にはより恒久的な解決策の発見を目指して、一時的に様々な能力を高める様々な呪文についての考察が書かれています。" +#: lang/json/GENERIC_from_json.py +msgid "cauldron of purification" +msgid_plural "cauldrons of purification" +msgstr[0] "浄化の大釜" + +#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons +#. of purification'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This cauldron made of demon spider chitin seems to absorb the light. It " +"will hold 16 liters of material and will absorb poisons from it. It may " +"have other properties that require discovery." +msgstr "" +"デーモンスパイダーの外骨格で作られた漆黒の大釜です。16L分の食べ物を投入でき、毒を消す効果を持っています。毒の浄化には他の道具が必要な場合もあります。" + +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" @@ -57347,1118 +58478,53 @@ msgid "" "much more expensive." msgstr "オリハルコン製のフレームです。鋼鉄よりもはるかに頑丈ですが、価格も桁違いです。" -#. ~ Description for broken turret #: lang/json/GENERIC_from_json.py -msgid "" -"A broken turret. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." -msgstr "壊れたタレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken military turret" -msgid_plural "broken military turrets" -msgstr[0] "壊れた軍用タレット" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced turret" -msgid_plural "broken advanced turrets" -msgstr[0] "壊れた改良型タレット" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense turret" -msgid_plural "broken defense turrets" -msgstr[0] "壊れた防衛タレット" - -#. ~ Description for broken defense turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "壊れた9mm防衛タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#. ~ Description for broken military turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "壊れた軍用タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#. ~ Description for broken advanced turret -#. ~ Description for broken 9mm turret -#. ~ Description for broken riotcontrol turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken 9mm defense turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "壊れた9mm弾タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 9mm turret" -msgid_plural "broken 9mm turrets" -msgstr[0] "壊れたタレット(9mm)" - -#. ~ Description for broken 9mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken shotgun defense turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "壊れた9mmタレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#. ~ Description for broken riot control turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control turret. Much less threatening now that it lies limp " -"on solid ground. Could be gutted for parts." -msgstr "壊れた暴動鎮圧タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol turret" -msgid_plural "broken riotcontrol turrets" -msgstr[0] "壊れた暴動鎮圧タレット" - -#: lang/json/GENERIC_from_json.py -msgid "broken 5.56mm turret" -msgid_plural "broken 5.56mm turrets" -msgstr[0] "壊れたタレット(5.56mm)" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5.56mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "壊れた軍用5.56mmタレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 7.62mm turret" -msgid_plural "broken 7.62mm turrets" -msgstr[0] "壊れたタレット(7.62mm)" - -#. ~ Description for broken 7.62mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 7.62mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "壊れた軍用7.62mm弾タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 50cal turret" -msgid_plural "broken 50cal turrets" -msgstr[0] "壊れたタレット(.50口径)" - -#. ~ Description for broken 50cal turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 50 caliber turret. Much less threatening now that " -"it lies limp on solid ground. Could be gutted for parts." -msgstr "壊れた軍用.50口径タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 40mm turret" -msgid_plural "broken 40mm turrets" -msgstr[0] "壊れたタレット(40mm)" - -#. ~ Description for broken 40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 40mm grenade turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "壊れた軍用40mmタレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5x50 flechette turret. Much less threatening now " -"that it lies limp on solid ground. Could be gutted for parts." -msgstr "壊れた軍用5x50mmタレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 8x40mm turret" -msgid_plural "broken 8x40mm turrets" -msgstr[0] "壊れたタレット(8x40mm)" - -#. ~ Description for broken 8x40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 8x40mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "壊れた軍用8x40mmタレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken flamethrower turret" -msgid_plural "broken flamethrower turrets" -msgstr[0] "壊れた火炎放射タレット" - -#. ~ Description for broken flamethrower turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade flamethrower turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "壊れた軍用火炎放射器タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#. ~ Description for broken laser turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced laser emitter turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "レーザー放射装置を搭載した、壊れた改良型タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken acid turret" -msgid_plural "broken acid turrets" -msgstr[0] "壊れた強酸放射タレット" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid thrower turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "強酸放射装置を搭載した、壊れた改良型タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken plasma turret" -msgid_plural "broken plasma turrets" -msgstr[0] "壊れたプラズマタレット" - -#. ~ Description for broken plasma turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced plasma ejector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "プラズマ放射装置を搭載した、壊れた改良型タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken rail gun turret" -msgid_plural "broken rail gun turrets" -msgstr[0] "壊れたレールガンタレット" - -#. ~ Description for broken rail gun turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced rail gun turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "壊れた改良型レールガンタレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid projector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "強酸放射装置を搭載した、壊れた改良型タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken electro turret" -msgid_plural "broken electro turrets" -msgstr[0] "壊れた電撃タレット" - -#. ~ Description for broken electro turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced electro caster turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "電撃発生装置を搭載した、壊れた改良型タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken EMP turret" -msgid_plural "broken EMP turrets" -msgstr[0] "壊れたEMPタレット" - -#. ~ Description for broken EMP turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced EMP generator turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "EMP発生装置を搭載した、壊れた改良型タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken gaurdin gnome" -msgid_plural "broken gaurdin gnomes" -msgstr[0] "壊れたガーディアンノーム" - -#. ~ Description for broken gaurdin gnome -#: lang/json/GENERIC_from_json.py -msgid "A broken and completely harmless garden gnome." -msgstr "壊れて完全に無害化されたガーディアンノームです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken hack" -msgid_plural "broken hacks" -msgstr[0] "壊れたマンハック" - -#. ~ Description for broken eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot, now dark and motionless. Could be stripped down for parts." -msgstr "壊れて完全に動作を停止した監視ロボットです。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed eyebot" -msgid_plural "broken disarmed eyebots" -msgstr[0] "壊れた監視ロボット(武装解除)" - -#. ~ Description for broken disarmed eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot. Its integrated weapon module has been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"壊れた監視ロボットです。内蔵されていた銃器モジュールは取り外してあります。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "broken utility robot" -msgid_plural "broken utility robots" -msgstr[0] "壊れた多機能ロボット" - -#. ~ Description for broken utility robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken utility robot, now limp and unmoving. Could be gutted for parts or" -" crafted into a salvaged robot." -msgstr "壊れてピクリとも動かなくなった多機能ロボットです。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed skitterbot" -msgid_plural "broken disarmed skitterbots" -msgstr[0] "壊れた高速ロボット(武装解除)" - -#. ~ Description for broken disarmed skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot. Its internal weapon modules have been removed. Could " -"be gutted for parts or crafted into a salvaged robot." -msgstr "" -"壊れた高速ロボットです。内蔵されていた銃器モジュールは取り外してあります。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#. ~ Description for broken skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot, now harmless and inert. Could be stripped of integral " -"weapon modules." -msgstr "壊れて完全に動作を停止した高速ロボットです。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed defense bot" -msgid_plural "broken disarmed defense bots" -msgstr[0] "壊れた防衛ロボット(武装解除)" - -#. ~ Description for broken disarmed defense bot -#. ~ Description for broken security robot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken security robot -#. ~ Description for broken defense bot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken disarmed military bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"壊れた防衛ロボットです。内蔵されていた銃器モジュールは取り外してあります。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "broken security robot" -msgid_plural "broken security robots" -msgstr[0] "壊れた警備ロボット" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol robot" -msgid_plural "broken riotcontrol robots" -msgstr[0] "壊れた暴動鎮圧ロボット" - -#: lang/json/GENERIC_from_json.py -msgid "broken chickenwalker" -msgid_plural "broken chickenwalkers" -msgstr[0] "壊れたチキンウォーカー" - -#. ~ Description for broken chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "A broken chickenwalker. Could be stripped for parts." -msgstr "壊れたチキンウォーカーです。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed chickenwalker" -msgid_plural "broken disarmed chickenwalkers" -msgstr[0] "壊れたチキンウォーカー(武装解除)" - -#. ~ Description for broken disarmed chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken chickenwalker. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"壊れたチキンウォーカーです。内蔵されていた銃器モジュールは取り外してあります。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#. ~ Description for broken tank drone -#: lang/json/GENERIC_from_json.py -msgid "A broken tank drone. Could be stripped down for parts." -msgstr "壊れた無人戦車です。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed tank drone" -msgid_plural "broken disarmed tank drones" -msgstr[0] "壊れた無人戦車(武装解除)" - -#. ~ Description for broken disarmed tank drone -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Could be gutted for parts or recrafted into a salvaged" -" robot." -msgstr "壊れた無人戦車です。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "robot component" -msgid_plural "robot components" -msgstr[0] "ロボット部品" - -#. ~ Description for robot component -#: lang/json/GENERIC_from_json.py -msgid "" -"A component for turrets and robots. It is unuseable in its current state." -msgstr "タレットやロボット用の部品です。このままの状態では使用できません。" - -#: lang/json/GENERIC_from_json.py -msgid "integral microreactor" -msgid_plural "integral microreactors" -msgstr[0] "内蔵型マイクロ反応炉" - -#. ~ Description for integral microreactor -#: lang/json/GENERIC_from_json.py -msgid "A compact fusion reactor used to power a robot's energy weapons." -msgstr "ロボットのエネルギー兵器に動力を供給する小型の核融合炉です。" - -#: lang/json/GENERIC_from_json.py -msgid "integral flash gun" -msgid_plural "integral flash guns" -msgstr[0] "内蔵銃器(閃光)" - -#: lang/json/GENERIC_from_json.py -msgid "integral tazer" -msgid_plural "integral tazers" -msgstr[0] "内蔵銃器(テーザー銃)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 9mm firearm" -msgid_plural "integral 9mm firearms" -msgstr[0] "内蔵銃器(9mm)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 5.56mm firearm" -msgid_plural "integral 5.56mm firearms" -msgstr[0] "内蔵銃器(5.56mm)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 7.62mm firearm" -msgid_plural "integral 7.62mm firearms" -msgstr[0] "内蔵銃器(7.62mm)" - -#: lang/json/GENERIC_from_json.py -msgid "integral shotgun" -msgid_plural "integral shotguns" -msgstr[0] "内蔵銃器(ショットガン)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral beanbag launcher" -msgid_plural "integral beanbag launchers" -msgstr[0] "内蔵銃器(ビーンバッグ)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral teargas launcher" -msgid_plural "integral teargas launchers" -msgstr[0] "内蔵銃器(催涙弾)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py -msgid "integral flamethrower" -msgid_plural "integral flamethrowers" -msgstr[0] "内蔵銃器(火炎放射器)" - -#: lang/json/GENERIC_from_json.py -msgid "integral flechette firearm" -msgid_plural "integral flechette firearms" -msgstr[0] "内蔵銃器(矢弾)" - -#: lang/json/GENERIC_from_json.py -msgid "integral 8x40mm firearm" -msgid_plural "integral 8x40mm firearms" -msgstr[0] "内蔵銃器(8x40mm)" - -#: lang/json/GENERIC_from_json.py -msgid "integral 50 caliber firearm" -msgid_plural "integral 50 caliber firearms" -msgstr[0] "内蔵銃器(.50口径)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral grenade launcher" -msgid_plural "integral grenade launchers" -msgstr[0] "内蔵銃器(擲弾)" - -#: lang/json/GENERIC_from_json.py -msgid "integral laser weapon" -msgid_plural "integral laser weapons" -msgstr[0] "内蔵銃器(レーザー)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral plasma ejector" -msgid_plural "integral plasma ejectors" -msgstr[0] "内蔵銃器(プラズマ)" - -#: lang/json/GENERIC_from_json.py -msgid "integral electromagnetic railgun" -msgid_plural "integral electromagnetic railguns" -msgstr[0] "内蔵銃器(レールガン)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral acid thrower" -msgid_plural "integral acid throwers" -msgstr[0] "内蔵銃器(強酸)" - -#: lang/json/GENERIC_from_json.py -msgid "integral electro caster" -msgid_plural "integral electro casters" -msgstr[0] "内蔵銃器(電撃)" - -#: lang/json/GENERIC_from_json.py -msgid "integral EMP projector" -msgid_plural "integral EMP projectors" -msgstr[0] "内蔵銃器(EMP)" - -#. ~ Description for Mjölnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Mjölnir, the hammer of Thor. It is rumored to be able to level" -" mountains with a single blow. It is decorated with gold and silver " -"ornaments." -msgstr "ミョルニールと呼ばれる雷神トールの戦鎚のレプリカです。一振りで山脈を叩き潰して平野に変えると言われています。金や銀の装飾が施されています。" - -#. ~ Description for Gungnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Gungnir, the spear of Odin. It is rumored to be the perfect " -"spear, perfectly hitting any target regardless of the wielder's strength or " -"skill. It is decorated with gold and silver ornaments." -msgstr "" -"グングニルと呼ばれるオーディンの槍のレプリカです。装備した者の力や技量に関係なく、どのような標的にも命中すると言われています。金や銀の装飾が施されています。" - -#: lang/json/GENERIC_from_json.py -msgid "broken light auto armor" -msgid_plural "broken light auto armors" -msgstr[0] "壊れた軽量型オートパワーアーマー" - -#. ~ Description for broken light auto armor -#. ~ Description for broken basic auto armor -#. ~ Description for broken heavy auto armor -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken set of power armor fitted with an AI core for automated use. It " -"cannot be worn or disassembled until re-crafted into an undamaged robot." -msgstr "壊れた状態の、AIコアを備えた自律式パワーアーマーです。損傷を受けていない状態まで修理しないと、分解も着用もできません。" - -#: lang/json/GENERIC_from_json.py -msgid "broken basic auto armor" -msgid_plural "broken basic auto armors" -msgstr[0] "壊れたオートパワーアーマー" - -#: lang/json/GENERIC_from_json.py -msgid "broken heavy auto armor" -msgid_plural "broken heavy auto armors" -msgstr[0] "壊れた重量型オートパワーアーマー" - -#: lang/json/GENERIC_from_json.py -msgid "dead craftbuddy" -msgid_plural "dead craftbuddies" -msgstr[0] "壊れたクラフトバディ" - -#. ~ Description for {'str': 'dead craftbuddy', 'str_pl': 'dead craftbuddies'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken repair robot, now limp and unmoving. Could be gutted for parts or " -"re-crafted into a functioning pal." -msgstr "壊れてピクリとも動かなくなった製作補助ロボットです。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating lantern" -msgid_plural "broken floating lanterns" -msgstr[0] "壊れたマンハック(光源)" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating lantern, now dark and motionless. Could be gutted for " -"parts." -msgstr "壊れて完全に動作を停止したマンハック(光源)です。部品を取り外せそうです。" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "A broken arson hack, now cold and burnt. Could be gutted for parts." -msgstr "壊れて完全に動作を停止したマンハック(火炎)です。部品を取り外せそうです。" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken distract-o-hack, now silent and still. Could be gutted for parts." -msgstr "壊れて完全に動作を停止したマンハック(陽動)です。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken spore hack" -msgid_plural "broken spore hacks" -msgstr[0] "壊れたマンハック(真菌)" - -#. ~ Description for broken spore hack -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken spore hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." -msgstr "壊れたマンハック(真菌)です。地面にごろんと転がっており、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken watercannon turret" -msgid_plural "broken watercannon turrets" -msgstr[0] "壊れた放水タレット" - -#. ~ Description for broken watercannon turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken watercannon turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "壊れた放水タレットです。地面にごろんと転がり、もはや脅威ではありません。部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating heater" -msgid_plural "broken floating heaters" -msgstr[0] "壊れた暖房ロボット" - -#. ~ Description for broken floating heater -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating heater, now cold and motionless. Could be stripped down " -"or re-crafted." -msgstr "壊れて完全に動作を停止した暖房ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating furnace" -msgid_plural "broken floating furnaces" -msgstr[0] "壊れた熱供給ロボット" - -#. ~ Description for broken floating furnace -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating furnace, now cold and motionless. Could bestripped down " -"or re-crafted." -msgstr "壊れて完全に動作を停止した熱供給ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken burning eye" -msgid_plural "broken burning eyes" -msgstr[0] "壊れたレーザーロボット" - -#. ~ Description for broken burning eye -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken burning eye, now dark and motionless. Could be stripped down or " -"re-crafted." -msgstr "壊れて完全に動作を停止したレーザーロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken butler-bot" -msgid_plural "broken butler-bots" -msgstr[0] "壊れた執事ロボット" - -#. ~ Description for broken butler-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken butler-bot, now silent and mangled. Could be stripped down for " -"parts." -msgstr "壊れて完全に動作を停止した執事ロボットです。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken construction robot" -msgid_plural "broken construction robots" -msgstr[0] "壊れた建設作業ロボット" - -#. ~ Description for broken construction robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken construction robot, now wrecked and immobile. Could be stripped " -"down for parts." -msgstr "壊れて完全に動作を停止した建築作業ロボットです。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken firefighter robot" -msgid_plural "broken firefighter robots" -msgstr[0] "壊れた消防ロボット" - -#. ~ Description for broken firefighter robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken firefighter robot, now cold and inert. Could be stripped down for " -"parts." -msgstr "壊れて完全に動作を停止した消防ロボットです。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken blob breeder" -msgid_plural "broken blob breeders" -msgstr[0] "壊れたブロブ生成ロボット" - -#. ~ Description for broken blob breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien blobs. Could be stripped down or re-" -"crafted." -msgstr "壊れて完全に動作を停止したブロブ生成ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken slime breeder" -msgid_plural "broken slime breeders" -msgstr[0] "壊れたスライム生成ロボット" - -#. ~ Description for broken slime breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien slimes. Could be stripped down or re-" -"crafted." -msgstr "壊れて完全に動作を停止したスライム生成ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken digestron" -msgid_plural "broken digestrons" -msgstr[0] "壊れたごみ処理ロボット" - -#. ~ Description for broken digestron -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken acid digestor robot, now cold and unmoving. Could be stripped down" -" or re-crafted." -msgstr "壊れて完全に動作を停止したごみ処理ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken bee-bot" -msgid_plural "broken bee-bots" -msgstr[0] "壊れた養蜂ロボット" - -#. ~ Description for broken bee-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken beehive robot, now still and bee-less. Could be stripped down or " -"re-crafted." -msgstr "壊れて完全に動作を停止した養蜂ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken medical bot" -msgid_plural "broken medical bots" -msgstr[0] "壊れた医療ロボット" - -#. ~ Description for broken medical bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot, now crumpled and inert. Could be stripped down for " -"parts." -msgstr "壊れて完全に動作を停止した医療ロボットです。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed medical robot" -msgid_plural "broken disarmed medical robots" -msgstr[0] "壊れた医療ロボット(武装解除)" - -#. ~ Description for broken disarmed medical robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot. Its onboard pharma-crafter and integral surgical " -"tools have been removed. Could be gutted for parts or crafted into a " -"salvaged robot." -msgstr "" -"壊れた医療ロボットです。内蔵されていた調剤モジュールと手術モジュールは取り外してあります。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "broken assassin robot" -msgid_plural "broken assassin robots" -msgstr[0] "壊れた暗殺ロボット" - -#. ~ Description for broken assassin robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken assassin robot, now limp and immobile. Could be stripped down or " -"re-crafted." -msgstr "壊れて完全に動作を停止した暗殺ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken elixirator" -msgid_plural "broken elixirators" -msgstr[0] "壊れた変異ロボット" - -#. ~ Description for broken elixirator -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken elixirator, now shattered and lifeless. Could be stripped down or " -"re-crafted." -msgstr "壊れて完全に動作を停止した変異ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken party bot" -msgid_plural "broken party bots" -msgstr[0] "壊れたパーティーロボット" - -#. ~ Description for broken party bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken party robot, now wasted and burnt out. Looks like the party's " -"over. Could be stripped down or re-crafted." -msgstr "壊れて完全に燃え尽きたパーティーロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken insane cyborg" -msgid_plural "broken insane cyborgs" -msgstr[0] "壊れた精神異常サイボーグ" - -#. ~ Description for broken insane cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be gutted for parts or " -"crafted into a salvaged robot." -msgstr "壊れてピクリとも動かなくなった精神異常サイボーグです。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "broken necrotic cyborg" -msgid_plural "broken necrotic cyborgs" -msgstr[0] "壊れたサイボーグゾンビ" - -#. ~ Description for broken necrotic cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be stripped down or re-" -"crafted into a salvaged robot." -msgstr "壊れてピクリとも動かなくなったサイボーグです。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "broken rat snatcher" -msgid_plural "broken rat snatchers" -msgstr[0] "壊れた狩猟ロボット" - -#. ~ Description for broken rat snatcher -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken rat snatcher, now harmless and inert. Could be stripped down or " -"re-crafted." -msgstr "壊れて完全に動作を停止した狩猟ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken grab-bot" -msgid_plural "broken grab-bots" -msgstr[0] "壊れた捕獲ロボット" - -#. ~ Description for broken grab-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken grabber robot, now limp and nonthreatening. Could be stripped down" -" or re-crafted." -msgstr "壊れて完全に動作を停止した捕獲ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken pest hunter" -msgid_plural "broken pest hunters" -msgstr[0] "壊れた害獣駆除ロボット" - -#. ~ Description for broken pest hunter -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken pest hunter, now harmless and inert. Could be gutted for parts or " -"re-crafted." -msgstr "壊れて完全に動作を停止した害獣駆除ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense bot" -msgid_plural "broken defense bots" -msgstr[0] "壊れた防衛ロボット" - -#: lang/json/GENERIC_from_json.py -msgid "broken junkyard cowboy" -msgid_plural "broken junkyard cowboys" -msgstr[0] "壊れたジャンク・カウボーイ" - -#. ~ Description for broken junkyard cowboy -#. ~ Description for broken shortcircuit samurai -#. ~ Description for broken slapdash paladin -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." -msgstr "壊れて完全に動作を停止したロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken shortcircuit samurai" -msgid_plural "broken shortcircuit samurais" -msgstr[0] "壊れたロウデン・サムライ" - -#: lang/json/GENERIC_from_json.py -msgid "broken slapdash paladin" -msgid_plural "broken slapdash paladins" -msgstr[0] "壊れたマルコゲ・パラディン" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed military bot" -msgid_plural "broken disarmed military bots" -msgstr[0] "壊れた軍用ロボット(武装解除)" - -#: lang/json/GENERIC_from_json.py -msgid "broken military trainer robot" -msgid_plural "broken military trainer robots" -msgstr[0] "壊れた軍用訓練ロボット" - -#. ~ Description for broken military trainer robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military trainer robot, shattered and inert. This one is armed " -"with an integrated paintball gun. Could be stripped for parts." -msgstr "壊れて動かなくなった軍用訓練ロボットです。内蔵された高出力ペイントボールガンで武装しています。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken military robot" -msgid_plural "broken military robots" -msgstr[0] "壊れた軍用ロボット" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 5.56mm firearm. Could be stripped for parts." -msgstr "壊れて動かなくなった軍用ロボットです。内蔵された5.56mm銃器で武装しています。解体して部品を取り外せそうです。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 7.62mm firearm. Could be stripped for parts." -msgstr "壊れて動かなくなった軍用ロボットです。内蔵された7.62mm銃器で武装しています。解体して部品を取り外せそうです。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 50 caliber firearm. Could be stripped for parts." -msgstr "壊れて動かなくなった軍用ロボットです。内蔵された.50口径銃器で武装しています。解体して部品を取り外せそうです。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 8x40mm firearm. Could be stripped for parts." -msgstr "壊れて動かなくなった軍用ロボットです。内蔵された8x40mm銃器で武装しています。解体して部品を取り外せそうです。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flechette gun. Could be stripped for parts." -msgstr "壊れて動かなくなった軍用ロボットです。内蔵された矢弾を発射する銃器で武装しています。解体して部品を取り外せそうです。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 40mm grenade launcher. Could be stripped for parts." -msgstr "壊れて動かなくなった軍用ロボットです。内蔵された40mmグレネードランチャーで武装しています。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken military flame robot" -msgid_plural "broken military flame robots" -msgstr[0] "壊れた軍用火炎放射ロボット" - -#. ~ Description for broken military flame robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flamethrower. Could be stripped for parts." -msgstr "壊れて動かなくなった軍用ロボットです。内蔵された火炎放射器で武装しています。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-guardian" -msgid_plural "broken robo-guardians" -msgstr[0] "壊れたロボガーディアン" - -#. ~ Description for broken robo-guardian -#. ~ Description for broken robo-protector -#. ~ Description for broken robo-defender -#. ~ Description for {'str': 'broken glittering lady', 'str_pl': 'broken -#. glittering ladies'} -#. ~ Description for broken bitter spinster -#. ~ Description for broken fist king -#. ~ Description for broken atomic sultan -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "壊れたロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken robote deluxe" -msgid_plural "broken robote deluxes" -msgstr[0] "壊れた高級ロボット" - -#. ~ Description for broken robote deluxe -#: lang/json/GENERIC_from_json.py -msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "壊れた高級ロボットです。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-protector" -msgid_plural "broken robo-protectors" -msgstr[0] "壊れたロボプロテクター" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-defender" -msgid_plural "broken robo-defenders" -msgstr[0] "壊れたロボディフェンダー" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed advanced bot" -msgid_plural "broken disarmed advanced bots" -msgstr[0] "壊れた改良型ロボット(武装解除)" +msgid "TEST plank" +msgid_plural "TEST planks" +msgstr[0] "木材(テスト)" -#. ~ Description for broken disarmed advanced bot +#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" -"A broken advanced robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" +" lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." msgstr "" -"壊れた改良型ロボットです。内蔵されていた銃器モジュールは取り外してあります。部品を取り外す、他のロボットの製作材料にするなどの使い道があります。" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced robot" -msgid_plural "broken advanced robots" -msgstr[0] "壊れた改良型ロボット" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated laser-" -"emitter. Could be stripped for parts." -msgstr "壊れた改良型ロボットです。内蔵されたレーザー放射装置で武装しています。解体して部品を取り外せそうです。" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated plasma-" -"ejector. Could be stripped for parts." -msgstr "壊れた改良型ロボットです。内蔵されたプラズマ放射装置で武装しています。解体して部品を取り外せそうです。" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated electro-" -"caster. Could be stripped for parts." -msgstr "壊れた改良型ロボットです。内蔵された電撃発生装置で武装しています。解体して部品を取り外せそうです。" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated EMP " -"projector. Could be stripped for parts." -msgstr "壊れた改良型ロボットです。内蔵されたEMP発生装置で武装しています。解体して部品を取り外せそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken glittering lady" -msgid_plural "broken glittering ladies" -msgstr[0] "壊れたシャイン・レディ" - -#: lang/json/GENERIC_from_json.py -msgid "broken bitter spinster" -msgid_plural "broken bitter spinsters" -msgstr[0] "壊れたビター・オールドレディ" - -#: lang/json/GENERIC_from_json.py -msgid "broken chainsaw horror" -msgid_plural "broken chainsaw horrors" -msgstr[0] "壊れたチェーンソー・ホラー" - -#. ~ Description for broken chainsaw horror -#. ~ Description for broken screeching terror -#. ~ Description for broken hooked nightmare -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken salvaged robot. Thank God it's finally dead. Could be stripped or" -" recrafted." -msgstr "壊れたロボットです。ありがたいことにようやく停止しました。解体するか他の製作に利用できそうです。" - -#: lang/json/GENERIC_from_json.py -msgid "broken screeching terror" -msgid_plural "broken screeching terrors" -msgstr[0] "壊れたスクリーチ・テラー" - -#: lang/json/GENERIC_from_json.py -msgid "broken hooked nightmare" -msgid_plural "broken hooked nightmares" -msgstr[0] "壊れたフック・ナイトメア" #: lang/json/GENERIC_from_json.py -msgid "broken fist king" -msgid_plural "broken fist kings" -msgstr[0] "壊れたフィスト・キング" - -#: lang/json/GENERIC_from_json.py -msgid "broken atomic sultan" -msgid_plural "broken atomic sultans" -msgstr[0] "壊れたアトミック・スルタン" - -#. ~ Description for AI core -#: lang/json/GENERIC_from_json.py -msgid "A computer module for controlling robots." -msgstr "ロボットを制御するコンピュータモジュールです。" - -#: lang/json/GENERIC_from_json.py -msgid "surgery module" -msgid_plural "surgery modules" -msgstr[0] "手術モジュール" - -#. ~ Description for surgery module -#: lang/json/GENERIC_from_json.py -msgid "A microsurgery module for a medical robot." -msgstr "医療ロボット用のマイクロ手術モジュールです。" - -#: lang/json/GENERIC_from_json.py -msgid "pharmaceutical module" -msgid_plural "pharmaceutical modules" -msgstr[0] "調剤モジュール" - -#. ~ Description for pharmaceutical module -#: lang/json/GENERIC_from_json.py -msgid "A pharmaceutical fabricating module for a medical robot." -msgstr "医療ロボット用の製薬調剤モジュールです。" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral paintball gun" -msgid_plural "integral paintball guns" -msgstr[0] "内蔵銃器(ペイントボール)" +msgid "TEST pipe" +msgid_plural "TEST pipes" +msgstr[0] "パイプ(テスト)" -#. ~ Description for integral paintball gun #: lang/json/GENERIC_from_json.py -msgid "" -"A high-powered paintball module used for safely testing robots or training " -"soldiers." -msgstr "ロボットの試験運用や兵士の訓練に使用される、高性能のペイントボール発射装置です。" +msgid "TEST sheet metal" +msgid_plural "TEST sheet metals" +msgstr[0] "板金(テスト)" #: lang/json/GENERIC_from_json.py -msgid "robot carrier" -msgid_plural "robot carriers" -msgstr[0] "ロボット運搬カーゴ" +msgid "TEST gallon jug" +msgid_plural "TEST gallon jugs" +msgstr[0] "ガロンジャグ(3.75L)(テスト)" -#. ~ Description for robot carrier #: lang/json/GENERIC_from_json.py -msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large machine in place. It is " -"meant to hold large drones and robots for transport. Use it on a suitable " -"robot to capture, use it on an empty tile to release." -msgstr "" -"大型機械を固定する部品が備わったキャリーカーゴが、頑丈なフレームに取り付けられています。大型のドローンやロボットを中に入れて輸送するのに使います。使用して捕獲可能なロボットがいる方向を選択すれば捕獲でき、何もいない方向を選択すれば中のロボットを解放できます。" +msgid "TEST small waterskin" +msgid_plural "TEST small waterskins" +msgstr[0] "水筒(1.5L/革)(テスト)" #: lang/json/GENERIC_from_json.py -msgid "TEST plank" -msgid_plural "TEST planks" -msgstr[0] "木材(テスト)" +msgid "test balloon" +msgid_plural "test balloons" +msgstr[0] "風船(テスト)" +#. ~ Description for {'str': 'test balloon'} #: lang/json/GENERIC_from_json.py -msgid "TEST pipe" -msgid_plural "TEST pipes" -msgstr[0] "パイプ(テスト)" +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." +msgstr "伸縮性と水密性があり気密性が高い、完璧なテスト用風船です。" #: lang/json/GENERIC_from_json.py -msgid "TEST sheet metal" -msgid_plural "TEST sheet metals" -msgstr[0] "板金(テスト)" +msgid "test pointy stick" +msgid_plural "test pointy sticks" +msgstr[0] "" #: lang/json/GENERIC_from_json.py msgid "TEST clumsy sword" @@ -58491,177 +58557,46 @@ msgid "A well-balanced sword for test purposes" msgstr "テスト用の素晴らしい剣です。" #: lang/json/GENERIC_from_json.py -msgid "a large artillery casing" -msgid_plural "large artillery casings" -msgstr[0] "空薬莢(砲弾)" +msgid "test box" +msgid_plural "test boxs" +msgstr[0] "箱(テスト)" +#. ~ Description for {'str': 'test box'} #: lang/json/GENERIC_from_json.py -msgid "30x113mm autocannon belt linkage" -msgid_plural "30x113mm autocannon belt linkages" -msgstr[0] "弾帯接続金具(30x113mm/機関砲)" +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." +msgstr "比率が確定していない、シンプルな容積1Lの段ボール箱です。" #: lang/json/GENERIC_from_json.py -msgid "30mm canister" -msgid_plural "30mm canisters" -msgstr[0] "空円筒弾(30mm擲弾)" +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" +msgstr[0] "14cm棒(テスト)" -#. ~ Description for 30mm canister +#. ~ Description for test 14 cm rod #: lang/json/GENERIC_from_json.py -msgid "A canister from a spent 30mm shell." -msgstr "使用済みの30mmグレネード弾です。" +msgid "A thin rod exactly 14 cm in length" +msgstr "長さがちょうど14cmの細い棒です。" #: lang/json/GENERIC_from_json.py -msgid "120mm canister" -msgid_plural "120mm canisters" -msgstr[0] "空円筒弾(120mm擲弾)" +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" +msgstr[0] "15cm棒(テスト)" -#. ~ Description for 120mm canister +#. ~ Description for test 15 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 120mm shell, now an expensive paperweight." -msgstr "使用済みの120mmグレネード弾です。" - -#: lang/json/GENERIC_from_json.py -msgid "155mm canister" -msgid_plural "155mm canisters" -msgstr[0] "空円筒弾(155mm擲弾)" - -#. ~ Description for 155mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 155mm shell, now an expensive paperweight." -msgstr "使用済みの155mmグレネード弾です。" - -#: lang/json/GENERIC_from_json.py -msgid "stabilized portal" -msgid_plural "stabilized portals" -msgstr[0] "安定したポータル" - -#. ~ Description for {'str': 'stabilized portal'} -#: lang/json/GENERIC_from_json.py -msgid "" -"As you gaze into the seemingly infinite depths of this portable hole in " -"reality, a phrase from a time forever gone echoes in your mind. \"There are" -" two things that are infinite: the universe and human kleptomania.\"" -msgstr "ポータルの中の無限の深淵を眺めていると、心の中にある警句が延々とこだまします。「この世に無限のものは二つ、宇宙の広さと人間の盗み癖」" - -#: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" -msgstr[0] "車載棚" - -#. ~ Description for {'str': 'vehicle shelving'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." -msgstr "カーゴスペースとして利用できるよう頑丈に結束され、多くの取り付け金具を追加した重量級フレームです。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" -msgstr[0] "ソーラーアレイ" - -#. ~ Description for {'str': 'solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. However, this comes at the " -"cost of being prohibitively heavy." -msgstr "" -"車台の高い位置に配置する、巨大なソーラーパネルです。壊れやすいソーラーパネルを潜在的な脅威から守り、太陽を追尾する機能によって発電効率を向上させることができますが、非常に重いという欠点もあります。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" -msgstr[0] "改良型ソーラーアレイ" - -#. ~ Description for {'str': 'upgraded solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able to track the sun. However, this comes" -" at the cost of being prohibitively heavy and obstructive." -msgstr "" -"車台の高い位置に配置する、巨大な改良型ソーラーパネルです。壊れやすいソーラーパネルを潜在的な脅威から守り、太陽を追尾する機能によって発電効率を向上させることができますが、非常に重いという欠点もあります。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" -msgstr[0] "改良型装甲ソーラーアレイ" - -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded reinforced solar panels set on a chassis reaching several " -"meters high. It keeps the fragile panels safely away from any potential " -"threats and improves efficiency due to being able to track the sun. " -"However, this comes at the cost of being prohibitively heavy and " -"obstructive." -msgstr "" -"車台の高い位置に配置する、巨大な改良型装甲ソーラーパネルです。壊れやすいソーラーパネルを潜在的な脅威から守り、太陽を追尾する機能によって発電効率を向上させることができますが、非常に重いという欠点もあります。" - -#: lang/json/GENERIC_from_json.py -msgid "gelectrode" -msgid_plural "gelectrodes" -msgstr[0] "ブロブライト" - -#. ~ Description for {'str': 'gelectrode'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A strange biological anomaly, this blob seems capable of emitting light when" -" electricity is provided to it, from small lamps up to headlights. " -"Unfortunately there is no place to insert a battery, so you'll have to hook " -"it up to a vehicle's power grid. It seems pliable enough to pull apart…" -msgstr "" -"奇妙な超常生物であるこのブロブは、電力を救急すると小さなランプやヘッドライトのように発光するようです。残念ながら電池を入れる場所がないため、車両の電源設備に接続して使う必要があります。簡単に引き剥がせそうです..." +msgid "A thin rod exactly 15 cm in length" +msgstr "長さがちょうど15cmの細い棒です。" #: lang/json/GENERIC_from_json.py -msgid "amorphous heart" -msgid_plural "amorphous hearts" -msgstr[0] "ブロブハート" +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" +msgstr[0] "" -#. ~ Description for {'str': 'amorphous heart'} +#. ~ Description for {'str': 'test nuclear carafe'} #: lang/json/GENERIC_from_json.py msgid "" -"This amorphous mass seems to have finished developing; its advanced internal" -" structures testifying to that. It is capable of locomotion through " -"internal hydraulic pressure, capable of moving substantial loads, and, in an" -" astounding display of intelligence, is capable of manipulating anything " -"it's attached to, whether blob-based or otherwise, through extended " -"pseudopods. You think you might be able to manipulate it, and through it, " -"all its attached parts. Though to do so you'll have to position yourself to" -" be in contact with it; and it appears unnervingly willing to accommodate " -"you…" +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." msgstr "" -"この不定形の塊は、高度な内部構造から見て取れるように、完全に成長を終えたようです。内蔵された油圧機構を使うことで積荷を乗せて移動することが可能になり、驚異的な知能の発露によって、接続された全てのシステムを、ブロブ製か否かに関わらず拡張仮足を使って操作できるようになりました。この部品が取り付けられていれば、部品を介して全ての設備を操作できますが、使用者は部品と接触する位置にいる必要があります。ブロブ塊はあまりにも嬉しそうな様子で使用者を包み込むため、思わず不安になります..." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond frame" -msgid_plural "diamond frames" -msgstr[0] "フレーム(ダイヤモンド)" - -#. ~ Description for {'str': 'diamond frame'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " -"weight." -msgstr "鮮やかに輝くダイヤモンド製の車両フレームです。かなりの重さですが、信じられないほど頑丈です。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond plating" -msgid_plural "diamond platings" -msgstr[0] "平板(ダイヤモンド)" - -#. ~ Description for {'str': 'diamond plating'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A piece of armor plating made of clear diamond. Incredibly strong for its " -"weight." -msgstr "傷一つないダイヤモンドで作られた装甲用の平板です。かなりの重さですが、信じられないほど頑丈です。" #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" @@ -60460,8 +60395,8 @@ msgstr[0] "弾倉(.44口径/デザートイーグル)" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." -msgstr "デザートイーグルに対応する、標準仕様7発鋼鉄製箱型弾倉です。" +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 magazine" @@ -60953,18 +60888,6 @@ msgstr[0] "弾倉(8x40mm/RMGB50)" msgid "A 50 round box magazine for use with Rivtech 8x40mm caseless firearms." msgstr "Rivtech社製8x40mm銃器に対応する50発箱型弾倉です。" -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "スピードローダー(8x40mm/RMGS5)" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "8x40mmの弾薬を5発装填できるスピードローダーです。Rivtech社製RM99リボルバーでの装填速度が向上します。" - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" @@ -61592,107 +61515,6 @@ msgstr[0] "燃料箱" msgid "A bin for holding solid fuel." msgstr "固体燃料を貯蔵する容器です。" -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 auto-magazine" -msgid_plural "CW-24 auto-magazines" -msgstr[0] "弾倉(5.45x39mm/CW-24オート)" - -#. ~ Description for CW-24 auto-magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "CW-24ライフル用の先進的な自動装填弾倉です。SVSの弾倉と同様に、マイクロロボット技術を応用して弾薬を装填します。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 extended magazine" -msgid_plural "CW-24 extended magazines" -msgstr[0] "弾倉(5.45x39mm/CW-24/拡張)" - -#. ~ Description for CW-24 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "CW-24ライフル用の容量が拡張された自動装填弾倉です。SVSの弾倉と同様に、マイクロロボット技術を応用して弾薬を装填します。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 extended magazine" -msgid_plural "CWD-63 extended magazines" -msgstr[0] "弾倉(.308口径/CWD-63/拡張)" - -#. ~ Description for CWD-63 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." -msgstr "CWD-63に対応する、安価な10発箱型弾倉です。信頼に足るものではありません。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 magazine" -msgid_plural "CWD-63 magazines" -msgstr[0] "弾倉(.308口径/CWD-63)" - -#. ~ Description for CWD-63 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"Since it's created for the .308 round, it doesn't need the curved shape of " -"the original magazine." -msgstr ".308口径の弾薬用に作られているため、本来の弾倉のように湾曲した形状にする必要はなくなりました。" - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robodrum" -msgid_plural "SVS-24 robodrums" -msgstr[0] "弾倉(6.54x42mm/SVS-24オート/ドラム)" - -#. ~ Description for SVS-24 robodrum -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 135-round drum magazine. Like the auto-magazine, it loads " -"cartridges using microrobotics." -msgstr "最新式の135発ドラム型弾倉です。マイクロロボット技術によって自動的に弾薬を装填します。" - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robomag" -msgid_plural "SVS-24 robomags" -msgstr[0] "弾倉(6.54x42mm/SVS-24オート)" - -#. ~ Description for SVS-24 robomag -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 42-round auto-magazine. Unlike previous generations of " -"magazines, this one uses microrobotics to load cartridges." -msgstr "最新式の42発自動装填弾倉です。旧世代の弾倉とは異なり、マイクロロボット技術によって自動的に弾薬を装填します。" - -#. ~ Description for .454 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 6 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr ".454口径の弾薬を6発装填できるスピードローダーです。互換性のあるリボルバーでの装填速度が向上します。" - -#: lang/json/MAGAZINE_from_json.py -msgid ".454 8-round speedloader" -msgid_plural ".454 8-round speedloaders" -msgstr[0] "スピードローダー(.454口径/8発)" - -#. ~ Description for .454 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 8 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr ".454口径の弾薬を8発装填できるスピードローダーです。互換性のあるリボルバーでの装填速度が向上します。" - -#: lang/json/MAGAZINE_from_json.py -msgid "Eagle 1776 magazine" -msgid_plural "Eagle 1776 magazines" -msgstr[0] "弾倉(.44口径/イーグル1776)" - -#. ~ Description for Eagle 1776 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " -"to the Eagle 1776." -msgstr "イーグル1776に対応する、.44口径マグナム弾を24発装填できる箱型弾倉です。" - #: lang/json/MAGAZINE_from_json.py msgid "grenade machine gun belt" msgid_plural "grenade machine gun belts" @@ -61879,60 +61701,26 @@ msgid "" msgstr "杖に取り付けられる特殊な小型のマナクリスタルです。" #: lang/json/MAGAZINE_from_json.py -msgid "30x113mm ammo belt" -msgid_plural "30x113mm ammo belts" -msgstr[0] "弾帯(30x113mm)" - -#: lang/json/MAGAZINE_from_json.py -msgid "BB hopper" -msgid_plural "BB hoppers" -msgstr[0] "弾薬ホッパー(BB弾)" - -#. ~ Description for {'str': 'BB hopper'} -#. ~ Description for {'str': 'pebble hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"small round shot into the weapon's chamber below. It is not very reliable, " -"but quick to reload." -msgstr "" -"車載銃器用の即席弾倉です。シンプルな金属製の箱に何本かのプラスチック製ガイドレールが備わっており、下部に取り付けた武器の中に小さな丸いBB弾を流し込んで装填します。信頼性はそれほど高くありませんが、簡単に装填できます。" - -#: lang/json/MAGAZINE_from_json.py -msgid "bolt hopper" -msgid_plural "bolt hoppers" -msgstr[0] "弾薬ホッパー(ボルト)" +msgid "test disposable battery" +msgid_plural "test disposable batteries" +msgstr[0] "" -#. ~ Description for {'str': 'bolt hopper'} +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test +#. disposable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted crossbow. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"crossbow bolt into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test disposable battery." msgstr "" -"車載クロスボウ用の即席弾倉です。シンプルな金属製の箱に何本かのプラスチック製ガイドレールが備わっており、下部に取り付けた武器の中にクロスボウ用ボルトを流し込んで装填します。装填し辛く、信頼性も期待できません。" #: lang/json/MAGAZINE_from_json.py -msgid "canister rack" -msgid_plural "canister racks" -msgstr[0] "弾薬箱(円筒弾)" +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" +msgstr[0] "" -#. ~ Description for {'str': 'canister rack'} +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test +#. rechargeable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"heavy canister into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test battery that may be recharged." msgstr "" -"車載銃器用の即席弾倉です。シンプルな金属製の箱に何本かのプラスチック製ガイドレールが備わっており、下部に取り付けた武器の中に大型の円筒弾を流し込んで装填します。装填し辛く、信頼性も期待できません。" - -#: lang/json/MAGAZINE_from_json.py -msgid "pebble hopper" -msgid_plural "pebble hoppers" -msgstr[0] "弾薬ホッパー(石つぶて)" #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" @@ -61953,27 +61741,27 @@ msgid "Drifts the game away from realism and more towards sci-fi." msgstr "非現実的でよりSFらしい要素を追加します。" #: lang/json/MOD_INFO_from_json.py -msgid "C.R.I.T Expansion Mod" -msgstr "追加 - C.R.I.T拡張MOD" +msgid "Blaze Industries" +msgstr "追加 - Blaze Industries" -#. ~ Description for C.R.I.T Expansion Mod +#. ~ Description for Blaze Industries #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds a plethora of content: professions, guns/mods, WIP enemies, mutations, " -"martial arts, melee weapons, and some QOL changes such as plants from " -"cutting grass." -msgstr "職業、銃器、銃器MOD、開発中の敵、変異、戦闘スタイル、近接武器、草刈りなどの行動の変更など、様々な要素を追加します。" +"Introduces the fictional corporation Blaze Industries, bringing advanced " +"vehicle modification to the consumer." +msgstr "架空の企業「Blaze Industries」を追加します。先進的な車両改造が可能になります。" #: lang/json/MOD_INFO_from_json.py -msgid "Craftable Gun Pack" -msgstr "追加 - 製作可能銃器パック" +msgid "C.R.I.T Expansion Mod" +msgstr "追加 - C.R.I.T拡張MOD" -#. ~ Description for Craftable Gun Pack +#. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " -"balance." -msgstr "製作可能な銃器と火薬を追加します。 警告: 導入するとゲームバランスが崩壊します。" +"Adds a plethora of content: professions, guns/mods/weapons, WIP mobs, " +"mutations, MA styles, and some QOL innawoods changes. Use the readme to see " +"more details!" +msgstr "職業、銃器、銃器MOD、開発中の敵、変異、戦闘スタイル、生活様式の変更など、様々な要素を追加します。詳細はreadmeを参照してください。" #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" @@ -61995,17 +61783,6 @@ msgid "" "occupation. Use other mods at your own risk!" msgstr "CataclysmをXCOM2風のエイリアンに占領された世界へ完全に変更します。他のMODとの併用は自己責任で行ってください。" -#: lang/json/MOD_INFO_from_json.py -msgid "Folding Parts pack" -msgstr "変更 - 折り畳み式部品パック" - -#. ~ Description for Folding Parts pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Makes solar panels and several other parts foldable, and adds foldable " -"quarterboards." -msgstr "ソーラーパネルなどの車両部品を折り畳めるように変更し、折り畳めるクォーターボードを追加します。" - #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" msgstr "追加 - 恐竜" @@ -62016,26 +61793,6 @@ msgid "" "Adds dinosaurs. Some rideable, others less friendly. Life will find a way." msgstr "恐竜を追加します。騎乗できる恐竜もれいば、友好的でない恐竜もいます。『生命体は繁殖する道を探す』" -#: lang/json/MOD_INFO_from_json.py -msgid "Icecoon's Arsenal" -msgstr "追加 - Icecoon's 武器パック" - -#. ~ Description for Icecoon's Arsenal -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those gun nuts. Don't have enough near-future firearms in your life? " -"Add this mod today!" -msgstr "銃マニアのためのMODです。日常生活に近未来の銃器が足りない?今すぐこのMODを入れましょう!" - -#: lang/json/MOD_INFO_from_json.py -msgid "DeadLeaves' Fictional Guns" -msgstr "追加 - DeadLeaves' 架空銃器パック" - -#. ~ Description for DeadLeaves' Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a bunch of rare, fictional weapons." -msgstr "希少な架空の武器を追加します。" - #: lang/json/MOD_INFO_from_json.py msgid "Fuji's Military Profession Pack" msgstr "追加 - Fuji's軍職パック" @@ -62087,6 +61844,15 @@ msgstr "変更 - グラフィック対応(Fuji's建物MOD)" msgid "Fuji Structures mod support for Graphical Overmap." msgstr "「変更 - 全体マップグラフィック化」が「追加 - Fuji's建物MOD」に対応するよう変更を加えます。" +#: lang/json/MOD_INFO_from_json.py +msgid "Graphical Overmap Magiclysm" +msgstr "変更 - グラフィック対応(追加 - Magiclysm)" + +#. ~ Description for Graphical Overmap Magiclysm +#: lang/json/MOD_INFO_from_json.py +msgid "Magiclysm support for Graphical Overmap." +msgstr "「変更 - 全体マップグラフィック化」が「追加 - Magiclysm」に対応するよう変更を加えます。" + #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap More Locations" msgstr "変更 - グラフィック対応(追加 - 施設)" @@ -62105,38 +61871,6 @@ msgstr "変更 - グラフィック対応(追加 - 市街地)" msgid "Urban Development mod support for Graphical Overmap." msgstr "「変更 - 全体マップグラフィック化」が「追加 - 市街地」に対応するよう変更を加えます。" -#: lang/json/MOD_INFO_from_json.py -msgid "Garden Pots" -msgstr "追加 - 栽培用植木鉢" - -#. ~ Description for Garden Pots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Allows you to grow seeds in craftable garden pots that can be carried around" -" as items. Perfect for the nomadic botanist." -msgstr "植物の種を植えて育てるための、アイテムとして持ち運べる植木鉢です。放浪の植物学者にうってつけの道具です。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Roadheader and other mining vehicles" -msgstr "追加 - 掘削車両" - -#. ~ Description for Roadheader and other mining vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a few mining vehicles, requires Vehicle Additions Pack." -msgstr "掘削機能をもった車両を追加します。「追加 - 車両パック」の導入が必要です。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Hydroponics" -msgstr "追加 - 水耕栽培" - -#. ~ Description for Hydroponics -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds hydroponic units, a furniture which can have crops planted in it for " -"increased yields. Spawn occasionally in labs or basements. Or build your " -"own." -msgstr "作物の収穫量が増加する水耕栽培装置の地形を追加します。装置は研究所や地下室で時々生成されるほか、製作することも可能です。" - #: lang/json/MOD_INFO_from_json.py msgid "Mythical Martial Arts" msgstr "追加 - 架空の戦闘スタイル" @@ -62157,37 +61891,6 @@ msgstr "追加 - Magiclysm" msgid "Cataclysm but with magic spells!" msgstr "大変動の世界に魔法の呪文を追加します!" -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "変更 - 手動CBM移植" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "CBMを自力で移植できるようになります。「変更 - 安全なオートドク」と併用できます。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Medieval and Historic Classes and Shields" -msgstr "追加 - 中世・歴史的職業・盾" - -#. ~ Description for Medieval and Historic Classes and Shields -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Assorted fun classes and shields for the wannabe knight, legionary, and " -"more." -msgstr "騎士や古代ローマの兵士に憧れる人にお勧めの、職業や盾を追加するMODです。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Modular Turrets" -msgstr "追加 - タレット改造" - -#. ~ Description for Modular Turrets -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Gives turrets swappable firearm modules, which can be reclaimed from broken " -"robots." -msgstr "壊れたロボットから銃器モジュールを回収してタレットに取り付けられるようになります。" - #: lang/json/MOD_INFO_from_json.py msgid "More Locations" msgstr "追加 - 施設" @@ -62200,26 +61903,6 @@ msgid "" msgstr "" "新しい立体構造の建物やダンジョンを追加します。このMODは開発中です。世界を生成する前にサブフォルダを削除すれば、要らない建物を削除できます。" -#: lang/json/MOD_INFO_from_json.py -msgid "More Survival Tools" -msgstr "追加 - サバイバルツール" - -#. ~ Description for More Survival Tools -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those who prefer being innawoods. Adds several tools, various recipes " -"additions/tweaks, plus two new professions." -msgstr "innawoodsが好きな人は是非どうそ。アイテムや様々なレシピの追加/微調整を行い、2種類の新しい職業を追加します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Mundane Zombies" -msgstr "削除 - 特殊ゾンビ" - -#. ~ Description for Mundane Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all special zombies from the game." -msgstr "全ての特殊ゾンビを削除します。" - #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" msgstr "追加 - 変異NPC" @@ -62245,15 +61928,6 @@ msgid "" msgstr "" "大変動の結果、お菓子に命が宿りました。人間の形をした砂糖の塊としてペットのラムネ菓子と一緒に大変動の世界を冒険することも、甘いご褒美を狩りに出掛けることもできます。" -#: lang/json/MOD_INFO_from_json.py -msgid "Mythological Replicas" -msgstr "追加 - 神話武器(レプリカ)" - -#. ~ Description for Mythological Replicas -#: lang/json/MOD_INFO_from_json.py -msgid "Adds recipes for replicas of mythological weapons." -msgstr "神話に登場する伝説の武器のレプリカを追加します。" - #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" msgstr "追加 - 州兵基地(β版)" @@ -62266,71 +61940,6 @@ msgid "" msgstr "" "ゲーム内に州兵の軍事基地を追加するテスト段階のMODです。公式フォーラム内「The Lab」の該当スレッドにフィードバックを提供してください。" -#: lang/json/MOD_INFO_from_json.py -msgid "No Acid Zombies" -msgstr "削除 - 酸系ゾンビ" - -#. ~ Description for No Acid Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all acid-based zombies from the game." -msgstr "全ての酸系ゾンビを削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Ants" -msgstr "削除 - アリ" - -#. ~ Description for No Ants -#: lang/json/MOD_INFO_from_json.py -msgid "Removes ants and anthills from the game" -msgstr "アリとアリ塚を削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Bees" -msgstr "削除 - ハチ" - -#. ~ Description for No Bees -#: lang/json/MOD_INFO_from_json.py -msgid "Removes bees and beehives from the game" -msgstr "ハチとハチの巣を削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Big Zombies" -msgstr "削除 - 大型ゾンビ" - -#. ~ Description for No Big Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " -"game." -msgstr "放電凶獣、巨体ゾンビ、巨体スケルトンを削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Explosive Zombies" -msgstr "削除 - 爆発系ゾンビ" - -#. ~ Description for No Explosive Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all explosion-based zombies from the game." -msgstr "全ての爆発するゾンビを削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Filthy Clothing" -msgstr "削除 - 不潔な着用アイテム" - -#. ~ Description for No Filthy Clothing -#: lang/json/MOD_INFO_from_json.py -msgid "Clothes dropped by zombies will be completely clean." -msgstr "ゾンビが落とす着用アイテムが不潔状態にならなくなります。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Flaming Weapons" -msgstr "削除 - 発火武器" - -#. ~ Description for No Flaming Weapons -#: lang/json/MOD_INFO_from_json.py -msgid "Removes flaming melee weapons." -msgstr "発火する近接武器を削除します。" - #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" msgstr "削除 - 真菌人" @@ -62340,24 +61949,6 @@ msgstr "削除 - 真菌人" msgid "Removes fungal monsters and regions from the game." msgstr "真菌汚染地域と真菌人を削除します。" -#: lang/json/MOD_INFO_from_json.py -msgid "No Medieval Items" -msgstr "削除 - 中世" - -#. ~ Description for No Medieval Items -#: lang/json/MOD_INFO_from_json.py -msgid "Removes medieval weapons, armors, and specific books." -msgstr "中世の武器防具と特定の本を削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Mutagens" -msgstr "削除 - 変異原物質" - -#. ~ Description for Disable Mutagens -#: lang/json/MOD_INFO_from_json.py -msgid "Removes mutagen items from the game." -msgstr "変異原アイテムを削除します。" - #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" msgstr "削除 - NPCの欲求" @@ -62367,15 +61958,6 @@ msgstr "削除 - NPCの欲求" msgid "Makes NPCs not require food, water or rest." msgstr "NPCが飲食や休憩を必要としなくなります。" -#: lang/json/MOD_INFO_from_json.py -msgid "No Antique Firearms" -msgstr "削除 - 旧式銃器" - -#. ~ Description for No Antique Firearms -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all black powder and pre-Cold War firearms." -msgstr "黒色火薬を使用する銃器、冷戦以前の銃器を削除します。" - #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" msgstr "削除 - 鉄道駅" @@ -62385,42 +61967,6 @@ msgstr "削除 - 鉄道駅" msgid "Removes above-ground rail stations from the game." msgstr "地上の鉄道駅を削除します。" -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Religious Texts" -msgstr "削除 - 宗教" - -#. ~ Description for Disable Religious Texts -#: lang/json/MOD_INFO_from_json.py -msgid "Removes religious text items from the game." -msgstr "宗教的なアイテムを削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Prevent Zombie Revivication" -msgstr "削除 - ゾンビの復活" - -#. ~ Description for Prevent Zombie Revivication -#: lang/json/MOD_INFO_from_json.py -msgid "Disables zombie revival." -msgstr "ゾンビの復活を無効化します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Fictional Guns" -msgstr "削除 - 架空銃器" - -#. ~ Description for No Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Removes fictional conventional firearms and ammunition." -msgstr "架空の銃器や弾薬を削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Survivor Armor" -msgstr "削除 - サバイバー防具" - -#. ~ Description for No Survivor Armor -#: lang/json/MOD_INFO_from_json.py -msgid "Removes survivor armor." -msgstr "サバイバー防具を削除します。" - #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" msgstr "削除 - モンスター" @@ -62431,38 +61977,6 @@ msgid "" "Removes all monsters from the game, save for those in the WILDLIFE category." msgstr "野生動物以外の全モンスターを削除します。" -#: lang/json/MOD_INFO_from_json.py -msgid "Classic Roguelike Classes" -msgstr "追加 - 古典的ローグライクの職業" - -#. ~ Description for Classic Roguelike Classes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a set of professions which correspond to classic Roguelike character " -"archetypes." -msgstr "古典的なローグライクに登場する職業セットを追加します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Salvaged Robots" -msgstr "追加 - ロボット改造" - -#. ~ Description for Salvaged Robots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Expands the types of robots and allows players to jury-rig broken robots " -"into functioning companions." -msgstr "ロボットの種類が増加し、壊れたロボットの部品を使った修理や改造が可能になります。" - -#: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp -msgid "Sleep Deprivation" -msgstr "追加 - 眠気" - -#. ~ Description for Sleep Deprivation -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Enables sleep deprivation mechanics independently of a player's fatigue." -msgstr "疲労の値とは無関係に機能する眠気を追加します。" - #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Skills" msgstr "変更 - スキルと連動した能力成長" @@ -62482,28 +61996,6 @@ msgid "" "Adds mockup items, recipes, and other content for use by automated tests." msgstr "自動化テストで使う疑似アイテムやレシピ、その他のコンテンツを追加します。" -#: lang/json/MOD_INFO_from_json.py -msgid "Tanks and Other Vehicles" -msgstr "追加 - 戦車と装甲戦闘車" - -#. ~ Description for Tanks and Other Vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a few armored fighting vehicles and other such things, requires Vehicle" -" Additions Pack." -msgstr "装甲戦闘車とそれに類似した車両を追加します。注:追加 - 車両パックの導入が必要です。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Bens GF recipes" -msgstr "追加 - Bensグルテンフリーレシピ" - -#. ~ Description for Bens GF recipes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Some simple gluten free and lactose free alternative recipe options. NOT " -"EXHAUSTIVE." -msgstr "穀物や牛乳を使用しない料理のレシピを追加します。全てのアイテムには対応していません。" - #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" msgstr "追加 - 市街地" @@ -62513,15 +62005,6 @@ msgstr "追加 - 市街地" msgid "Holder for suburban and urban buildings." msgstr "郊外や都市の建物を追加します。" -#: lang/json/MOD_INFO_from_json.py -msgid "Zombie Nightvision" -msgstr "変更 - ゾンビ暗視化" - -#. ~ Description for Zombie Nightvision -#: lang/json/MOD_INFO_from_json.py -msgid "Gives all zombies perfect nightvision." -msgstr "全てのゾンビに完全な暗視を与えます。" - #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" msgstr "変更 - 全体マップ記号代替" @@ -62533,17 +62016,6 @@ msgid "" "and use initial letter of their names instead of ^v<>." msgstr "全体マップをより見やすくなるように変更します。建物の記号はタイプによって色分けされ、^v<>の代わりに建物名の頭文字が表示されます。" -#: lang/json/MOD_INFO_from_json.py -msgid "Vehicle Additions Pack" -msgstr "追加 - 車両パック" - -#. ~ Description for Vehicle Additions Pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Please see the included PAQ.txt in the mod folder if you encounter any " -"issues." -msgstr "何か問題が発生した場合は、modフォルダ内のPAQ.txtを参照して下さい。" - #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" msgstr "変更 - 生体部品スロット" @@ -62589,71 +62061,6 @@ msgstr "変更 - 砂漠地帯" msgid "A testbed/WIP mod to showcase regional_map_settings JSON changes." msgstr "regional_map_settingsのJSONを変更するテスト用/開発途中のMODです。" -#: lang/json/MOD_INFO_from_json.py -msgid "EZ-Mode Medical" -msgstr "変更 - 医療の難易度低下" - -#. ~ Description for EZ-Mode Medical -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Increases broken limb mending speed and the effectiveness of healing items." -msgstr "骨折した手足の回復が早まり、治療アイテムの効果が強化されます。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Makeshift Items Mod" -msgstr "追加 - 簡易アイテム" - -#. ~ Description for Makeshift Items Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds more improvised item variants and rebalances existing ones." -msgstr "新たに即席アイテムを追加し、既存の即席アイテムのバランスを調整します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Mapgen Demo" -msgstr "変更 - 全体マップ生成デモ" - -#. ~ Description for Mapgen Demo -#: lang/json/MOD_INFO_from_json.py -msgid "Demo for JSONized mapgens (megastore, missile silo)." -msgstr "全体マップ(超大型店、ミサイルサイロ)をjson化したデモMODです。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Classes and Scenarios Mod" -msgstr "追加 - 職業とシナリオ" - -#. ~ Description for Classes and Scenarios Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds new classes and scenarios while rebalancing some existing ones." -msgstr "職業とシナリオを追加・調整します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Necromancy" -msgstr "追加 - 死霊魔術" - -#. ~ Description for Necromancy -#: lang/json/MOD_INFO_from_json.py -msgid "Adds the ability to revive creatures as minions." -msgstr "下僕として生物を蘇生させる機能を追加します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Sci-Fi Equipment" -msgstr "削除 - SF的装備" - -#. ~ Description for No Sci-Fi Equipment -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes far-future Sci-Fi items such as powered armor and energy weapons." -msgstr "パワーアーマーやエネルギー兵器など遠い未来のSF装備を削除します。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Simplified Nutrition" -msgstr "削除 - 栄養システム" - -#. ~ Description for Simplified Nutrition -#: lang/json/MOD_INFO_from_json.py -msgid "Disables vitamin requirements." -msgstr "飲食物から栄養の要件を削除します。" - #: lang/json/MOD_INFO_from_json.py msgid "Rural-Only Mapgen" msgstr "変更 - 農村部限定マップ" @@ -62932,7 +62339,6 @@ msgid_plural "skitterbots" msgstr[0] "高速ロボット" #. ~ Description for {'str': 'skitterbot'} -#. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py msgid "" "An insectoid robot the size of a small dog, designed for home security. " @@ -63870,8 +63276,8 @@ msgstr[0] "真菌巨体スケルトン" #: lang/json/MONSTER_from_json.py msgid "" "Fungi bloom from the crevices in the ossified plates of this ponderous bone " -"titan, and it seems even it's eyes are lost to it. A dust of spores lands " -"on the ground with every sluggish stomp of it's heavy legs." +"titan, and it seems even its eyes are lost to it. A dust of spores lands on" +" the ground with every sluggish stomp of its heavy legs." msgstr "" "巨大な骨の巨人がもつ装甲の割れ目からは真菌の花が咲き、視力も失われているようです。重い足取りでゆっくりと動き回る度に、埃のような胞子が足下に降り注いでいます。" @@ -64371,7 +63777,7 @@ msgstr[0] "さまよう肉人" #: lang/json/MONSTER_from_json.py msgid "" "An amalgamation of throbbing organs from various creatures have fused " -"together into this lurching, vaguely humanoid shape. It's myriad roughly " +"together into this lurching, vaguely humanoid shape. Its myriad roughly " "formed mouths sussurate in a chorus of sibilant groans and whispers." msgstr "脈動する様々な生物の臓器が融合し、ふらふらと歩く人型の肉塊を形作っています。無数の口らしき穴からは、耳障りな呼吸と囁き声が聞こえます。" @@ -64385,7 +63791,7 @@ msgstr[0] "フレッシュゴーレム" msgid "" "A seeping conglomeration of spasming muscle and organs have fused together " "into this towering caricature of the human form. Various organs fall off of" -" it's hulking body only to be reabsorbed moments later." +" its hulking body only to be reabsorbed moments later." msgstr "" "ぴくぴくと動く筋肉や臓器が一つに融合し、人間を模倣したような姿でたたずんでいます。不格好な肉体から様々な臓器が剥がれ落ちては、すぐに再び吸収されています。" @@ -66045,7 +65451,7 @@ msgid "" msgstr "" "猟犬のような姿をした、異界の怪物です。腹をすかせたようにも見える痩せこけた歪な赤い外皮が、奇妙形状のな骨格にへばり付いています。不自然に長い首を前方に伸ばし、頭蓋骨のような形の頭部を地面に近づけて獲物の臭いを嗅いでいます。不可解な力によって隠しきれなかったこの怪物の醜悪さは、心の奥底に沈んでいた古の名状しがたい恐怖を湧き起こします。" -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" msgstr[0] "シャドウ" @@ -66328,6 +65734,21 @@ msgid "" msgstr "" "ノースロップ社のATSVは、逆関節二足歩行式の大型重武装装甲ロボットです。生産当時の目的が法的紛争の解決に限られていたにもかかわらず、対車両40mmグレネードランチャー、対人5.56mm銃で武装しており、機体表面に電撃をまとわせる効果的な防衛機能を有しています。" +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "レーザータレット" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from" +" solar cells embedded in its hull." +msgstr "" +"TX-5LR " +"Cerberusは旧世代機をアップグレードしたものです。3丁の最新式レーザーで武装しており、機体には充填のためのソーラー電池が埋め込まれています。" + #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" @@ -66763,21 +66184,6 @@ msgid "" "continually seeking targets." msgstr "自動捜索AIが組み込まれた、継続的に標的を追い続ける固定型の高出力探照灯です。" -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "レーザータレット" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from" -" solar cells embedded in its hull." -msgstr "" -"TX-5LR " -"Cerberusは旧世代機をアップグレードしたものです。3丁の最新式レーザーで武装しており、機体には充填のためのソーラー電池が埋め込まれています。" - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" @@ -66847,6 +66253,16 @@ msgid "" msgstr "" "無人戦闘車から派生した暴動鎮圧砲座は、人間よりもはるかに正確に致死性の低い弾薬を発射できる新たな半自律武装として大変動の数年前に広く喧伝され、標的の安全を保障しつつ手足を撃って制圧できることを保証していました。この武装はすぐに刑務所と都心部の警察署で採用されましたが、「致死性が低い」と「非致死性」が別物であることを実証しました。大変動が起きる数日前まで、この武装の待機室は稼働していました。自動で射撃を行うのが利点ですが、移動には人間の操縦が必要なため、もはや機動性は失われています。" +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "拡声装置" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "大音量でメッセージを繰り返し伝え続ける、強力な拡声器です。" + #: lang/json/MONSTER_from_json.py msgid "eyebot" msgid_plural "eyebots" @@ -67522,31 +66938,6 @@ msgid "" "disturbances." msgstr "腫瘍に覆われたこのゾンビは、灰色の皮膚が腐敗ガスで破裂しそうなほど膨れ上がっています。少しの衝撃を与えただけでも破裂してしまいそうです。" -#: lang/json/MONSTER_from_json.py -msgid "zombie grenadier" -msgid_plural "zombie grenadiers" -msgstr[0] "擲弾兵ゾンビ" - -#. ~ Description for {'str': 'zombie grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear. Its hands " -"constantly fumble at its many pouches." -msgstr "かつては兵士だったのか、頭から爪先まで戦闘服に身を包んでいます。その手は常に身体中にある沢山の弾薬袋や巾着を探っています。" - -#: lang/json/MONSTER_from_json.py -msgid "zombie elite grenadier" -msgid_plural "zombie elite grenadiers" -msgstr[0] "精鋭擲弾兵ゾンビ" - -#. ~ Description for {'str': 'zombie elite grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear and wearing a MOLLE" -" pack. Its hands quickly open and close its many pouches." -msgstr "" -"かつては兵士だったのか、頭から爪先まで戦闘服に身を包んでおり、MOLLEバックパックを背負っています。素早い手捌きで、身体中にある沢山の弾薬袋や巾着を開け閉めしています。" - #: lang/json/MONSTER_from_json.py msgid "crawler" msgid_plural "crawlers" @@ -67877,6 +67268,22 @@ msgid "" msgstr "" "漆黒の皮膚と赤く光る眼を持つ痩せこけた人間のようなものは、ゆがんだ嘲笑を浮かべています。それを見つめていると何故か苦しい気分になり、精神の奥深くで不安が芽生えます。周囲の空気までもより不吉に、より暗く、危険が増していくようです。" +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "ネクロブーマー" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears" +" and guts teem with unmatched fecundity, as its gaze inspires fear of " +"nothing less than cosmic, inhuman ecstasy." +msgstr "" +"気味の悪い脂肪の塊のようにしか見えない、黒い汁を垂れ流す肥大化したゾンビです。近づいてみると輝く赤い瞳が笑っているようにも見え、その眼差しは宇宙的、非人間的な法悦を呼び起こします。皮膚は傷つき、内蔵がありえない程に膨らんでいます。" + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" @@ -68394,6 +67801,49 @@ msgid "" msgstr "" "高出力スポットライトを備えた、小型のスパイク付き飛行ドローンです。この自動追尾ロボットは元来は追跡者が逃亡者を見失わないよう支援する目的で作られたもので、標的をを執拗に追いかけて苦しめます。" +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder" +msgid_plural "Schwarz Walders" +msgstr[0] "シュヴァルツヴァルト" + +#. ~ Description for {'str': 'Schwarz Walder'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Schwarz Walders were originally developed by a German company as forest " +"rangers for the expanded Black Forest Conservation Area. Shortly afterwards" +" it was determined that they also made excellent long range reconnaissance " +"units that could operate independently indefinitely. Pre-Cataclysm they " +"lived on every continent in a variety of jobs." +msgstr "" +"シュバルツバルトは、元々は拡大する森林保護区のレンジャーとしてドイツの企業が開発した知性クマです。その後まもなく、この企業は時間の制限なしに独立して動作する優れた長距離偵察知性クマを作ったと発表しました。大変動が起こる前は、あらゆる大陸で様々な仕事をしていました。" + +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder cub" +msgid_plural "Schwarz Walder cubs" +msgstr[0] "シュヴァルツヴァルト(幼体)" + +#. ~ Description for {'str': 'Schwarz Walder cub'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A young Schwarz Walder. If one is out here, a very protective parent is " +"likely nearby." +msgstr "小型のシュヴァルツヴァルトです。近くに親がいるはずです。" + +#: lang/json/MONSTER_from_json.py +msgid "infeme" +msgid_plural "infemes" +msgstr[0] "インフェネ" + +#. ~ Description for {'str': 'infeme'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The Infeme are uplifted from apes and other near human ancestors. The Zulu " +"word for monkey became the catch-all term for many species of uplifts " +"whether majority chimp, gorilla or baboon. They've probably formed colonies" +" hidden from the Cataclysm." +msgstr "" +"類人猿などの人間に近い祖先から進化した種です。インフェネはズールー語で、チンパンジーやゴリラ、ヒヒなどを全て含む種類を問わないサルを意味する単語です。コロニーを形成して生活し、大変動を逃れたと考えられます。" + #: lang/json/MONSTER_from_json.py msgid "headless zombie" msgid_plural "headless zombies" @@ -68422,6 +67872,43 @@ msgid "" msgstr "" "この無頭ゾンビは身体が恐ろしい程に発達し、身長は約2.7mに及びます。首から生えた長さ約1.8mの黒く粘つく触手は付近の音を感知して激しく暴れ回り、グロテスクに膨れ上がった腕を悪夢のような素早さで振り回します。" +#: lang/json/MONSTER_from_json.py +msgid "Haunting Forest Walker" +msgid_plural "Haunting Forest Walkers" +msgstr[0] "ゾンビ知性クマ" + +#. ~ Description for {'str': 'Haunting Forest Walker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This towering zombie is covered in wounds and shedding fur. Once it may " +"have prevented forest fires in national parks, now it kills anything it " +"catches." +msgstr "毛皮が禿げた傷だらけの大きなゾンビです。かつては国立公園の山火事を防いでいましたが、今は捕まえた獲物を確実に殺します。" + +#: lang/json/MONSTER_from_json.py +msgid "rotting grodd" +msgid_plural "rotting grodds" +msgstr[0] "ゾンビ知性サル" + +#. ~ Description for {'str': 'rotting grodd'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Imagine a gorilla. Now imagine it dead and rotting and somehow looking at " +"you with more hate than you had previously imagined possible." +msgstr "ゴリラを想像してください。ゴリラが死んで腐敗し、どういう訳か想像以上の憎しみを込めてこちらを睨んでいる状況を想像してください。" + +#: lang/json/MONSTER_from_json.py +msgid "Ghoulodon" +msgid_plural "Ghoulodons" +msgstr[0] "ゾンビマストドン" + +#. ~ Description for {'str': 'Ghoulodon'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An undead Uplifted Elephant of ginormous size. It still wears its assault " +"grade armor." +msgstr "知性をもつ巨大なゾウがゾンビ化したものです。強襲部隊仕様の鎧を身に着けています。" + #: lang/json/MONSTER_from_json.py msgid "Slasher Necromorph" msgid_plural "Slasher Necromorphs" @@ -68805,9 +68292,70 @@ msgstr[0] "改造人間" #. ~ Description for {'str': 'stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." -msgstr "嫌悪すべき性質が前面に出た、人間の変異体です。青紫色の結晶が皮膚から生え、ゆっくりと全身を覆っていきます。" +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." +msgstr "かつての人間としての自己を激しく憎む黒い怪物です。青紫色の結晶が皮膚からまだらに生え、ゆっくりと全身を覆っていきます。" + +#: lang/json/MONSTER_from_json.py +msgid "stray cop" +msgid_plural "stray cops" +msgstr[0] "結晶警官" + +#. ~ Description for stray cop +#: lang/json/MONSTER_from_json.py +msgid "" +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." +msgstr "" +"到着した民間人が避難するのを助けるために配備されたはずの、元法執行官です。最善を尽くしたようですが、不幸なことに敵が多すぎました。頭からつま先まで光沢を放つ鎧をまとっており、一部は結晶で覆われています。" +" " + +#: lang/json/MONSTER_from_json.py +msgid "stray soldier" +msgid_plural "stray soldiers" +msgstr[0] "結晶兵士" + +#. ~ Description for {'str': 'stray soldier'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former soldier, no doubt deployed to assist with evacuations and drive off" +" the Order, dressed from head to toe in partially crystalized combat armor." +" Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." +msgstr "" +"避難を助け、ニューオーダーを追い払うために配備されたはずの、一部が結晶化した戦闘装甲で身を包んだ元兵士です。軍の訓練は敵に対抗できるようなものではありませんでしたが、今は人間を軽く引き裂く力を備えています。" + +#: lang/json/MONSTER_from_json.py +msgid "stray firefighter" +msgid_plural "stray firefighters" +msgstr[0] "結晶消防士" + +#. ~ Description for {'str': 'stray firefighter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." +msgstr "" +"ボロボロの消防装備をまとった元人間です。顔に残ったガスマスクの隙間から、湿った音を立てて息を吐き出しています。かつては地域に貢献していましたが、クリスタルの宿主になってしまいました。" + +#: lang/json/MONSTER_from_json.py +msgid "hungry stray" +msgid_plural "hungry strays" +msgstr[0] "空腹結晶人間" + +#. ~ Description for {'str': 'hungry stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An obese former human, body studded with irregular crystal growths deforming" +" its body. It howls in mockery of hunger as it wanders, seeking new meals " +"to add to its bulk." +msgstr "" +"肥満体の元人間です。不規則な形状の結晶があちこちから生えて身体を歪ませています。空腹をあざ笑うかのように遠吠えを上げながら、更に成長するために新しい食事を求めうろついています。" #: lang/json/MONSTER_from_json.py msgid "stray rockfeeder" @@ -68834,13 +68382,51 @@ msgstr[0] "結晶生命体" msgid "" "Little more than a moving mound of crystal and meat that occasionally spits " "up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures" -" skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling stray" +msgid_plural "crackling strays" +msgstr[0] "" + +#. ~ Description for {'str': 'crackling stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A hunched human form, back bristling with a hedge of buzzing blue crystals." +" Its veins visibly glow with some sort of unearthly substance." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "arcing stray" +msgid_plural "arcing strays" +msgstr[0] "" + +#. ~ Description for {'str': 'arcing stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than" +" capable of simply ramming its prey to deliver dangerous electric shocks." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray sprinter" +msgid_plural "stray sprinters" +msgstr[0] "" + +#. ~ Description for {'str': 'stray sprinter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." msgstr "" -"単なる肉がこびりついた結晶の塊です。時折ヒビや隙間から光り輝く脆い物質を吐き出しながら、難儀そうに動き回っています。外殻の内側には、複雑な器官とその間を飛ぶように動き回る小さな生物が見えます。自重に耐えられなくなって崩壊し、異星人の世界の部品の一つとなるのは時間の問題です。" #: lang/json/MONSTER_from_json.py msgid "stray prowler" @@ -68850,25 +68436,25 @@ msgstr[0] "徘徊結晶人間" #. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with" -" tusks of polished stone and fingers tipped with crystal-fused claws." +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." msgstr "" -"元は突然変異体でしたが、今も凶暴かつ狡猾に動き回ります。磨き抜かれた石の牙で威嚇するかのように口を開き、指先からは結晶と同化した爪が生えています。" #: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" -msgstr[0] "捕食結晶人間" +msgid "stray guardian" +msgid_plural "stray guardians" +msgstr[0] "" -#. ~ Description for {'str': 'stray predator'} +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of" -" time before the very shell that protects it weighs it down to the ground." +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated" +" crystal limbs sharpened to dangerous points. It strides about the streets," +" spearing intruders to its domain like some sort of horrid spider from " +"beyond the stars." msgstr "" -"細身の筋肉と結晶を融合させたこの怪物は、四肢を使って這うように動き回り、危険なほどに尖った手足で侵入者を貫きます。非常に素早く動きますが、外殻の重みに耐えられず潰れるのは時間の問題です。" #: lang/json/MONSTER_from_json.py msgid "stray bruiser" @@ -68878,40 +68464,36 @@ msgstr[0] "頑強結晶人間" #. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." msgstr "" -"ほかの個体よりもはるかに安定して立っており、生きているかのように脈動する分厚い結晶を身にまとっています。かつて人間の手だったものは、ただの棘付き棍棒に成り果てています。" #: lang/json/MONSTER_from_json.py -msgid "stray titan" -msgid_plural "stray titans" -msgstr[0] "結晶巨人" +msgid "stray golem" +msgid_plural "stray golems" +msgstr[0] "" -#. ~ Description for {'str': 'stray titan'} +#. ~ Description for {'str': 'stray golem'} #: lang/json/MONSTER_from_json.py msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its" -" own weight." +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." msgstr "" -"そびえ立つ肉と結晶の融合体です。棍棒のような「手」で邪魔なものをすべて粉砕します。力は非常に強いですが、外殻の重さによって押し潰されるのは時間の問題です。" #: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" -msgstr[0] "焼焦結晶人間" +msgid "stray titan" +msgid_plural "stray titans" +msgstr[0] "結晶巨人" -#. ~ Description for {'str': 'stray husk'} +#. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to" -" alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" -"戦いでボロボロになった人体は、異星人の生物兵器が直撃した後もくすぶり続けています。傷口からは、まるでコンクリートの割れ目から雑草が伸びるように紫色の結晶が芽生えています。" #: lang/json/MONSTER_from_json.py msgid "stray waif" @@ -68921,25 +68503,10 @@ msgstr[0] "幼体結晶人間" #. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." msgstr "" -"全身からまばらに生える結晶の粒がなければ、この小さな生物は普通の子供の姿とほぼ変わりません。異星人が多数の人類に使用した恐ろしい兵器は、残念ながら子供にも優しくはありませんでした。こんな姿になっても、やはり子供を殺すという行為には嫌悪感があります。" - -#: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" -msgstr[0] "焼焦幼体結晶人間" - -#. ~ Description for {'str': 'stray tinder'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." -msgstr "異星人の生物兵器に曝された後も煙を上げ続ける、傷だらけの子供です。生前の特徴がはっきりと分かるので、殺害には嫌悪感が伴います。" #: lang/json/MONSTER_from_json.py msgid "stray creep" @@ -68949,9 +68516,10 @@ msgstr[0] "結晶犬" #. ~ Description for {'str': 'stray creep'} #: lang/json/MONSTER_from_json.py msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." -msgstr "四つん這いではいずり回る、黒焦げになった雑種犬です。異星人の生物兵器を照射されて突然変異したようです。" +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "stray wretch" @@ -68961,13 +68529,67 @@ msgstr[0] "痩身結晶犬" #. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet" -" at some point, but now it leaps and skitters around like something out of a" -" nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion" -" across its body." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray stalker" +msgid_plural "stray stalkers" +msgstr[0] "" + +#. ~ Description for {'str': 'stray stalker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to" +" its 'family'." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "flailing wretch" +msgid_plural "flailing wretchs" +msgstr[0] "" + +#. ~ Description for {'str': 'flailing wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling wretch" +msgid_plural "crackling wretchs" +msgstr[0] "" + +#. ~ Description for {'str': 'crackling wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" +msgstr[0] "" + +#. ~ Description for {'str': 'stray wretchmother'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." msgstr "" -"棘のように凝固した四肢と体毛をもつイヌです。かつてはペットとして飼われていたのかもしれませんが、今は悪夢から生まれた怪物のように飛び跳ねています。" #: lang/json/MONSTER_from_json.py msgid "germinating crystal mass" @@ -68978,6 +68600,20 @@ msgstr[0] "発芽結晶塊" #. 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little" +" bit of organic matter it can find and drawing it to its base." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting +#. crystal masses'} +#: lang/json/MONSTER_from_json.py +msgid "" "A human-sized mound of shimmering blue-purple crystals growing on the base " "of what looks like a mound of foul smelling garbage and organic leftovers. " "Long, thin tendrils appear to grow out of the mound, and are subtly rooting " @@ -69043,8 +68679,8 @@ msgstr[0] "結晶壁" #: lang/json/MONSTER_from_json.py msgid "" "A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." -msgstr "電気エネルギーでかすかに光りパチパチと音を立てる、分厚いブロック状の結晶が積み重なって作られた壁です。" +"residual electric energy." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "crystal mass hive" @@ -69065,11 +68701,11 @@ msgstr "" "拳ほどのサイズの小さな穴がたくさん開いた、高くそびえる青紫色の結晶です。穴からは、気味の悪い泥状の液体が滴り落ちていますが、これは恐らく内部に棲む若い個体のための栄養です。特に気になるのは、その鉱物的な外観が示唆する以上に、微妙に脈動するなど有機的な動きをする点です。視認できる電気エネルギーによって常にパチパチと音を立てており、カミソリのような棒が付いた太くて頑丈な触手で周囲を威嚇しています。ガラスのように濁った岩山の内部では、何かが蠢いています。" #: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" -msgstr[0] "結晶虫" +msgid "crystal seed" +msgid_plural "crystal seeds" +msgstr[0] "" -#. ~ Description for {'str': 'crystal mite'} +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" "A tiny, multilegged creature that appears to be made of a chunk of crystal." @@ -69079,17 +68715,17 @@ msgstr "" "結晶から作られているようにもみえる、小さな多足生物です。足は針金のように細く、有機物の残りカスを食べて成長し、やがては自らのコロニーを作ります。" #: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" -msgstr[0] "成長結晶虫" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" +msgstr[0] "" -#. ~ Description for {'str': 'engorged crystal mite'} +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into" -" a proper crystal mass." -msgstr "ネコほどのサイズまで膨らんだ結晶虫です。蓄積された結晶構造は十分に成長し、やがて特定の結晶塊が発芽します。" +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." +msgstr "" #. ~ Description for {'str': 'C-4 hack'} #: lang/json/MONSTER_from_json.py @@ -69134,9 +68770,9 @@ msgstr[0] "コンプソグナトゥス" #. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." -msgstr "シチメンチョウほどの大きさの二足歩行恐竜です。小さいながらも鋭い爪と牙を持っています。" +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Gallimimus" @@ -69163,6 +68799,18 @@ msgid "" msgstr "" "立った状態で人間と同じぐらいの大きさになる、羽毛を持つ二足歩行恐竜です。頭部は頑丈そうなドーム型をしており、爬虫類版のダチョウのような姿です。" +#: lang/json/MONSTER_from_json.py +msgid "Camptosaurus" +msgid_plural "Camptosaurus" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" msgid_plural "Spinosaurus" @@ -69182,8 +68830,20 @@ msgstr[0] "ティラノサウルス・レックス" #. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." -msgstr "あの牙をごらんなさい!爪は小さいようですね。" +msgid "" +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Albertosaurus" +msgid_plural "Albertosaurus" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Albertosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Triceratops" @@ -69204,8 +68864,9 @@ msgstr[0] "ステゴサウルス" #. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." -msgstr "大型の四足歩行恐竜です。背中に大きな骨質の板がいくつも生えており、尻尾には棘があります。" +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Ankylosaurus" @@ -69219,6 +68880,19 @@ msgid "" "massive spiked club of bone." msgstr "巨大なアルマジロといった風体の恐竜です。尾の先端が棘付き棍棒になっています。" +#: lang/json/MONSTER_from_json.py +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Ceratosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Allosaurus" msgid_plural "Allosaurus" @@ -69239,9 +68913,9 @@ msgstr[0] "エオラプトル" #. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." -msgstr "ニワトリほどの大きさの二足歩行恐竜です。藪の中を漁ってまわり、小動物や植物を食べます。" +"A bipedal dinosaur about the size of a chicken. It darts around quickly and" +" has long arms for grabbing what it desires. It's holding something." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Velociraptor" @@ -69267,6 +68941,18 @@ msgid "" "foot is a large sickle-like claw." msgstr "羽毛を持つ中型の二足歩行恐竜です。両足の先端に鎌のような大きな鉤爪があります。" +#: lang/json/MONSTER_from_json.py +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Utahraptor" msgid_plural "Utahraptors" @@ -69310,8 +68996,10 @@ msgstr[0] "ディロフォサウルス" #. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." -msgstr "中型の恐竜です。牙から緑色のべとつく胆汁がしたたり落ちています。" +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its " +"head." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "greenish yellow hatchling" @@ -69400,6 +69088,19 @@ msgstr[0] "ゾンビティラノサウルス" msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "巨大な牙が生えた、悪臭を放つ傷だらけの筋肉の塊です。" +#: lang/json/MONSTER_from_json.py +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" +msgstr[0] "ゾンビデイノニクス" + +#. ~ Description for {'str_sp': 'Z-Deinonychus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." +msgstr "ボロボロの羽毛と酷く臭う黒い液体で覆われた、フラフラと歩く中型二足歩行恐竜のゾンビです。両足から生えた鎌のような爪を振り回しています。" + #: lang/json/MONSTER_from_json.py msgid "improvised SMG turret" msgid_plural "improvised SMG turrets" @@ -69565,6 +69266,41 @@ msgid "" "like jaws." msgstr "緑色に輝くくぼんだ目と黒い鱗をもった怪物です。頭部は骨張っており、短剣のような牙が並ぶ口元からは酸が滴っています。" +#: lang/json/MONSTER_from_json.py +msgid "goblin warrior" +msgid_plural "goblin warriors" +msgstr[0] "" + +#. ~ Description for {'str': 'goblin warrior'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "goblin slinger" +msgid_plural "goblin slingers" +msgstr[0] "" + +#. ~ Description for {'str': 'goblin slinger'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that slings rocks almost as well as it slings insults." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "goblin chieftain" +msgid_plural "goblin chieftains" +msgstr[0] "" + +#. ~ Description for {'str': 'goblin chieftain'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that was promoted to chieftain because it figured out which" +" end of the weapon is pointy." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "clay golem" msgid_plural "clay golems" @@ -69829,386 +69565,6 @@ msgid "" "torso." msgstr "どことなく人間に似た頭部と胴体をもつ、溶けた肉の塊です。" -#: lang/json/MONSTER_from_json.py -msgid "automated turret" -msgid_plural "automated turrets" -msgstr[0] "タレット(ベース)" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed defense turret" -msgid_plural "disarmed defense turrets" -msgstr[0] "防衛タレット(武装解除)" - -#. ~ Description for disarmed defense turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-series turret, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. It requires an integrated firearm module to " -"work." -msgstr "" -"General " -"Atomics社のTXシリーズは砲弾の形をした小型自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。起動するには内蔵銃器モジュールが必要です。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed military turret" -msgid_plural "disarmed military turrets" -msgstr[0] "軍用タレット(武装解除)" - -#. ~ Description for disarmed military turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX series turret, a military-grade automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. It requires a integrated gun module to operate." -msgstr "" -"Leadworks " -"LLCのTXシリーズは軍用の自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。起動するには内蔵銃器モジュールが必要です。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed advanced turret" -msgid_plural "disarmed advanced turrets" -msgstr[0] "改良型タレット(武装解除)" - -#. ~ Description for disarmed advanced turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-series turret, an advanced automated gun turret using state" -" of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. It requires an integrated gun module to function." -msgstr "" -"DoubleTech社のTシリーズは改良型の自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。起動するには内蔵銃器モジュールが必要です。" - -#: lang/json/MONSTER_from_json.py -msgid "9mm turret" -msgid_plural "9mm turrets" -msgstr[0] "タレット(9mm)" - -#. ~ Description for 9mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-1 Guardian, a small, pill-shaped automated gun turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " -"full 360 degrees." -msgstr "" -"General Atomics社のTX-1 " -"Guardianは砲弾の形をした小型自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型9mmサブマシンガンで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "shotgun turret" -msgid_plural "shotgun turrets" -msgstr[0] "タレット(ショットガン)" - -#. ~ Description for shotgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-4 Protector, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 12ga shotgun can swivel a " -"full 360 degrees." -msgstr "" -"General Atomics社のTX-4 " -"Protectorは砲弾の形をした小型自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型12ゲージショットガンで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "riot control turret" -msgid_plural "riot control turrets" -msgstr[0] "暴動鎮圧タレット" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1a Warden, a small, pill-shaped automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 40mm teargas launcher can swivel " -"a full 360 degrees." -msgstr "" -"General Atomics社のTZ-1a " -"Wardenは砲弾の形をした小型自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型40mm催涙弾ランチャーで武装しています。" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1b Pacifier, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 40mm beanbag launcher can " -"swivel a full 360 degrees." -msgstr "" -"General Atomics社のTZ-1b " -"Pacifierは砲弾の形をした小型自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型40mmビーンバッグ弾ランチャーで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "5.56mm turret" -msgid_plural "5.56mm turrets" -msgstr[0] "タレット(5.56mm)" - -#. ~ Description for 5.56mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32L Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " -"360 degrees." -msgstr "" -"Leadworks LLCのTX-32L " -"Sentryは軍用自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型5.56mmライフルで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "7.62mm turret" -msgid_plural "7.62mm turrets" -msgstr[0] "タレット(7.62mm)" - -#. ~ Description for 7.62mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32H Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " -"360 degrees." -msgstr "" -"Leadworks LLCのTX-32H " -"Sentryは軍用自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型7.62mmライフルで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "50cal turret" -msgid_plural "50cal turrets" -msgstr[0] "タレット(.50口径)" - -#. ~ Description for 50cal turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-13 Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 50 caliber machinegun can " -"swivel a full 360 degrees." -msgstr "" -"Leadworks LLCのTX-13 " -"Sentryは軍用自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型.50口径マシンガンで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "8x40mm turret" -msgid_plural "8x40mm turrets" -msgstr[0] "タレット(8x40mm)" - -#. ~ Description for 8x40mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-01A Warden, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " -"full 360 degrees." -msgstr "" -"Leadworks LLCのTX-01A " -"Wardenは軍用自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型8x40mmライフルで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "needle turret" -msgid_plural "needle turrets" -msgstr[0] "タレット(矢弾)" - -#. ~ Description for needle turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TN-7 Sentry, a military-grade automated flechette turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 5mm flechette gun can swivel a " -"full 360 degrees." -msgstr "" -"Leadworks LLCのTN-7 " -"Sentryは軍用自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型5mmニードルガンで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "40mm grenade turret" -msgid_plural "40mm grenade turrets" -msgstr[0] "タレット(40mm擲弾)" - -#. ~ Description for 40mm grenade turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TG-7 Sentry, a military-grade automated gun turret using" -" state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated 40mm grenade launcher can swivel a full " -"360 degrees." -msgstr "" -"Leadworks LLCのTG-7 " -"Sentryは軍用自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型40mmグレネードランチャーで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "flame turret" -msgid_plural "flame turrets" -msgstr[0] "火炎放射タレット" - -#. ~ Description for flame turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TF-7 Sentry, a military-grade automated flame turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated flamethrower can swivel a full " -"360 degrees." -msgstr "" -"Leadworks LLCのTF-7 " -"Sentryは軍用自動発砲タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型火炎放射器で武装しています。" - -#. ~ Description for laser turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-L3 Scintillator, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated laser emitter can swivel a full 360 " -"degrees." -msgstr "" -"DoubleTech社のT-L3 " -"Scintillatorは改良型自動レーザータレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型レーザー放射装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "acid turret" -msgid_plural "acid turrets" -msgstr[0] "強酸放射タレット" - -#. ~ Description for acid turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-A3 Disintegrator, an advanced automated acid turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated acid thrower can swivel a full 360 " -"degrees." -msgstr "" -"DoubleTech社のT-A3 " -"Disintegratorは改良型自動強酸放射タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型強酸放射装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "plasma turret" -msgid_plural "plasma turrets" -msgstr[0] "プラズマタレット" - -#. ~ Description for plasma turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-P3 Scathefire, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated plasma ejector can swivel a full 360 " -"degrees." -msgstr "" -"DoubleTech社のT-P3 " -"Scathefireは改良型自動プラズマタレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型プラズマ放射装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "railgun turret" -msgid_plural "railgun turrets" -msgstr[0] "レールガンタレット" - -#. ~ Description for railgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-R3 Arbalest, an advanced automated railgun turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated railgun can swivel a full 360 degrees." -msgstr "" -"DoubleTech社のT-R3 " -"Arbalestは改良型自動レールガンタレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型レールガンで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "advanced electro turret" -msgid_plural "advanced electro turrets" -msgstr[0] "改良型電撃タレット" - -#. ~ Description for advanced electro turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-E3 Thunderstroke, an advanced automated electro turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated electro caster can swivel a full " -"360 degrees." -msgstr "" -"DoubleTech社のT-E3 " -"Thunderstrokeは改良型自動電撃タレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型電撃発生装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "EMP turret" -msgid_plural "EMP turrets" -msgstr[0] "EMPタレット" - -#. ~ Description for EMP turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-EMP3 Corona, an advanced automated EMP turret using state " -"of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. Its electro magnetic pulse generator can swivel a full 360 " -"degrees." -msgstr "" -"DoubleTech社のT-EMP3 " -"Coronaは改良型自動EMPタレットです。最新式の自動ターゲット認識技術を利用し、新たな味方や敵を自動的に判別することが可能です。全方位をカバーする内蔵型EMP発生装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "guardin gnome" -msgid_plural "guardin gnomes" -msgstr[0] "ガーディアンノーム" - -#. ~ 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 "完全に無害な普通のガーデンノームです。" - -#: lang/json/MONSTER_from_json.py -msgid "utility robot" -msgid_plural "utility robots" -msgstr[0] "多機能ロボット" - -#. ~ Description for utility robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of utility robot formerly in use by government " -"agencies, private corporations, and civilians alike." -msgstr "大変動以前に政府機関や民間企業、一般市民が使っていた多機能ロボットの一つです。" - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and trespassers." -msgstr "" -"閃光装置で武装した監視用小型飛行ロボットです。もはや警察や警備会社のネットワークとの接続も切れ、犯罪者や不法侵入者を延々と狩り続けています。" - -#: lang/json/MONSTER_from_json.py -msgid "defense robot" -msgid_plural "defense robots" -msgstr[0] "防衛ロボット" - -#. ~ Description for defense robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is armed with an electric prod and an integrated 9mm firearm." -msgstr "内蔵電源で活動を続ける自動防衛ロボットです。内蔵された放電警棒と9mm銃器で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "security robot" -msgid_plural "security robots" -msgstr[0] "警備ロボット" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an integrated 9mm firearm." -msgstr "内蔵電源で活動を続ける自動防衛ロボットです。内蔵された9mm銃器で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "riotcontrol robot" -msgid_plural "riotcontrol robots" -msgstr[0] "暴動鎮圧ロボット" - -#. ~ Description for riotcontrol robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod, tear gas sprayer, and integrated" -" 40mm beanbag launcher." -msgstr "内蔵電源で活動を続ける自動防衛ロボットです。内蔵された放電警棒と催涙弾発射装置、40mmビーンバッグ弾ランチャーで武装しています。" - #: lang/json/MONSTER_from_json.py msgid "necco" msgid_plural "neccos" @@ -70462,779 +69818,16 @@ msgstr "" "12Nのレベル10建設工兵モデルです。1体につき兵士1人を補助する役割を持つレイセオンシリーズは、従来の軍隊と問題なく統合できるよう設計されています。" #: lang/json/MONSTER_from_json.py -msgid "craftbuddy" -msgid_plural "craftbuddies" -msgstr[0] "クラフトバディ" +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" +msgstr[0] "トイレットペーパーミイラ" -#. ~ Description for {'str': 'craftbuddy', 'str_pl': 'craftbuddies'} +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper +#. mummies'} #: lang/json/MONSTER_from_json.py msgid "" -"A mobile crafting station used by workers in mines, on oil rigs, and in " -"other remote locales. In it's active state, the craftbuddy merely follows " -"its user. In it's deactivated state, the craft buddy is useable as a " -"toolbench and multipurpose workstation." -msgstr "" -"鉱山や石油掘削所など、人里離れた場所で労働者が使用する移動式製作設備です。稼働中は持ち主に追従して動きます。停止中は工具スタンド兼多目的作業台として使用できます。" - -#: lang/json/MONSTER_from_json.py -msgid "automated armor" -msgid_plural "automated armors" -msgstr[0] "オートパワーアーマー" - -#. ~ Description for automated armor -#: lang/json/MONSTER_from_json.py -msgid "" -"A suit of power armor temporarily controlled by an attached AI-core. " -"Originally intended as a way to retrieve dead or wounded operators from " -"combat, it was more commonly used for transporting the suit itself. The AI " -"is limited, and makes a poor combatant." -msgstr "" -"内蔵されたAIコアによる限定的な自動制御が可能なパワーアーマーです。元々は死者や負傷者を戦闘から離脱させるために開発されましたが、実際はもっぱらパワーアーマー自体を運搬する目的で使われていました。AIの機能は限定的なため、戦闘目的での運用には向きません。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "light auto armor" -msgid_plural "light auto armors" -msgstr[0] "軽量型オートパワーアーマー" - -#: lang/json/MONSTER_from_json.py -msgid "auto armor" -msgid_plural "auto armors" -msgstr[0] "オートパワーアーマー" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "heavy auto armor" -msgid_plural "heavy auto armors" -msgstr[0] "重量型オートパワーアーマー" - -#: lang/json/MONSTER_from_json.py -msgid "floating lantern" -msgid_plural "floating lanterns" -msgstr[0] "マンハック(光源)" - -#. ~ Description for floating lantern -#: lang/json/MONSTER_from_json.py -msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "移動式の光源に改造されたマンハックです。" - -#: lang/json/MONSTER_from_json.py -msgid "distract-o-hack" -msgid_plural "distract-o-hacks" -msgstr[0] "マンハック(陽動)" - -#. ~ Description for distract-o-hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed into a makeshift diversion tactic. Once " -"activated it will light up, produce sound, emit sparks, and move towards " -"hostile targets. Although fragile, the distract-o-hack's erratic movements " -"make it difficult to hit." -msgstr "" -"一時しのぎの陽動作戦用途に改造したマンハックです。起動すると発光しながら音を出したり火花を散らしたりして、敵に向かっていきます。非常に壊れやすいですが、不規則な動きをするため攻撃が当たりにくくなっています。" - -#: lang/json/MONSTER_from_json.py -msgid "arsonhack" -msgid_plural "arsonhacks" -msgstr[0] "マンハック(火炎)" - -#. ~ Description for arsonhack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread flame and cause property damage. It's" -" almost as dangerous to its user as it is to the surroundings. The " -"arsonhack cannot be recovered once activated. Only a reckless madman would " -"dare to build this." -msgstr "" -"火災を広げて物的損害を引き起こすように改造したマンハックです。使用者やその周囲も危険を伴います。一度起動すると停止できないため、これを作ろうとするのは無謀な狂人くらいのものです。" - -#: lang/json/MONSTER_from_json.py -msgid "spore hack" -msgid_plural "spore hacks" -msgstr[0] "マンハック(真菌)" - -#. ~ Description for spore hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread alien contaminants. It periodically " -"releases a puff of fungal spores. Who in their right mind would build such " -"a thing?" -msgstr "" -"外宇宙の汚染物質を拡散するように改造したマンハックです。定期的に真菌の胞子を放出します。正しい心の持ち主がこんなものを作るわけありませんね?" - -#: lang/json/MONSTER_from_json.py -msgid "watercannon turret" -msgid_plural "watercannon turrets" -msgstr[0] "放水タレット" - -#. ~ Description for watercannon turret -#: lang/json/MONSTER_from_json.py -msgid "" -"A turret equipped with a jury-rigged watercannon in place of a proper " -"firearm. It's highly ineffective but the ammo is cheap." -msgstr "適切な銃器の代わりに放水機構を取り付けたタレットです。まったく効果的ではありませんが、弾薬は安価です。" - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and tresspassers." -msgstr "" -"閃光装置で武装した監視用小型飛行ロボットです。もはや警察や警備会社のネットワークに接続されておらず、犯罪者や不法侵入者を延々と狩り続けています。" - -#: lang/json/MONSTER_from_json.py -msgid "floating heater" -msgid_plural "floating heaters" -msgstr[0] "暖房ロボット" - -#. ~ Description for floating heater -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space." -msgstr "浮遊するヒーターに改造した監視ロボットです。暖気を噴出し続けて密閉された空間を暖めます。" - -#: lang/json/MONSTER_from_json.py -msgid "floating furnace" -msgid_plural "floating furnaces" -msgstr[0] "熱供給ロボット" - -#. ~ Description for floating furnace -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. Warning! " -"Can result in rapid heatstroke!" -msgstr "" -"浮遊するヒーターに改造した監視ロボットです。非常に熱い空気を噴出し続けて密閉された空間を加熱します。警告!急性の熱中症にかかる危険があります!" - -#: lang/json/MONSTER_from_json.py -msgid "burning eye" -msgid_plural "burning eyes" -msgstr[0] "レーザーロボット" - -#. ~ Description for burning eye -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon. The lack of recoil allows " -"the hovering robot to aim and fire without penalty. It has decent range and" -" damage, but requires an extended recharge time between shots." -msgstr "" -"レーザー兵器を取り付けた監視ロボットです。レーザーには反動が無いため、ホバリングするロボットでも照準を正確に合わせて発砲できます。射程距離も威力も十分ですが、発射後は充電にある程度の時間がかかります。" - -#: lang/json/MONSTER_from_json.py -msgid "hazmat bot" -msgid_plural "hazmat bots" -msgstr[0] "除染ロボット" - -#. ~ Description for hazmat bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A utility robot designed for cleaning up waste material in hazardous " -"conditions." -msgstr "危険区域の廃棄物を除染する多目的ロボットです。" - -#: lang/json/MONSTER_from_json.py -msgid "butler-bot" -msgid_plural "butler-bots" -msgstr[0] "執事ロボット" - -#. ~ Description for butler-bot -#: lang/json/MONSTER_from_json.py -msgid "A luxury model utility robot for domestic use." -msgstr "家庭用多目的ロボットの高級モデルです。" - -#: lang/json/MONSTER_from_json.py -msgid "construction robot" -msgid_plural "construction robots" -msgstr[0] "建設作業ロボット" - -#. ~ Description for construction robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of construction robot formerly in use by government " -"agencies and private corporations. It is equipped with an integrated " -"welder, flashlight, nailgun, and jackhammer." -msgstr "" -"大変動以前に政府機関や民間企業が使っていた建設作業ロボットの一つです。溶接機、懐中電灯、ネイルガン、ジャックハンマーなどが搭載されています。" - -#: lang/json/MONSTER_from_json.py -msgid "firefighter robot" -msgid_plural "firefighter robots" -msgstr[0] "消防ロボット" - -#. ~ Description for firefighter robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of fire-fighting robot formerly in use by local fire " -"departments and emergency services. Designed for entering burning buildings" -" and other situations deemed too dangerous for human firefighters." -msgstr "" -"大変動以前に消防署や救急隊が使っていた消防ロボットの一つです。焼け落ちそうな建物など人間の消防士にとって危険な場所で活動できるように設計されています。" - -#: lang/json/MONSTER_from_json.py -msgid "blob breeder" -msgid_plural "blob breeders" -msgstr[0] "ブロブ生成ロボット" - -#. ~ Description for blob breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of living blobs. Why on Earth" -" would you build this?" -msgstr "" -"外宇宙生物であるブロブを生成するように改造した多目的ロボットです。定期的に生きたブロブを排出します。一体どうしてこんなものを作ったのでしょう?" - -#: lang/json/MONSTER_from_json.py -msgid "slime breeder" -msgid_plural "slime breeders" -msgstr[0] "スライム生成ロボット" - -#. ~ Description for slime breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of friendly blobs." -msgstr "外宇宙生物であるブロブを生成するように改造した多目的ロボットです。定期的に友好的なブロブを排出します。" - -#: lang/json/MONSTER_from_json.py -msgid "digestron" -msgid_plural "digestrons" -msgstr[0] "ごみ処理ロボット" - -#. ~ Description for digestron -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. A useful helper for keeping your front lawn clean of debris…" -" or corpses." -msgstr "" -"自動で地面を掃除するように改造した多目的ロボットです。地面に落ちた物を吸い取り、内部の酸性液で溶かします。ゴミ、あるいは死体で汚れた家の芝生を綺麗にするのに役立ちます。" - -#: lang/json/MONSTER_from_json.py -msgid "bee bot" -msgid_plural "bee bots" -msgstr[0] "養蜂ロボット" - -#. ~ Description for bee bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers honey combs. It protects the insect " -"colony with a mechanical crossbow mounted to its chassis." -msgstr "ハチの巣箱を定期的に掃除して巣を採集するように改造した多目的ロボットです。フレームに内蔵されたクロスボウを使ってハチを外敵から守ります。" - -#: lang/json/MONSTER_from_json.py -msgid "medical robot" -msgid_plural "medical robots" -msgstr[0] "医療ロボット" - -#. ~ Description for medical robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A free roaming medical robot capable of administering powerful anesthetics " -"and performing complex surgical operations, usually in that order. Faulty " -"bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." -msgstr "" -"強力な麻酔薬を投与する、複雑な外科手術をするといった指示をこなす、自律式の医療ロボットです。大変動前に生体診断プログラムの不具合が発覚し、多数の訴訟事件に発展しました。" - -#: lang/json/MONSTER_from_json.py -msgid "assassination robot" -msgid_plural "assassination robots" -msgstr[0] "暗殺ロボット" - -#. ~ Description for assassination robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. Its surgical " -"tools have been replaced with a fearsome set of blades, and its hypodermic " -"needle now delivers powerful toxins." -msgstr "殺人機械に改造した医療ロボットです。外科用具は恐ろしい刃に置き換わり、注射器の中身は強力な毒薬に入れ替えられています。" - -#: lang/json/MONSTER_from_json.py -msgid "elixirator" -msgid_plural "elixirators" -msgstr[0] "変異ロボット" - -#. ~ Description for elixirator -#: lang/json/MONSTER_from_json.py -msgid "" -"This doesn't work yet. Don't build it… A salvaged medibot with its internal" -" pharma-fabricators repurposed to produce mutagen." -msgstr "今の所作動していませんが、動かすのは止めておきましょう...変異原製造機構が内蔵された医療ロボットです。" - -#: lang/json/MONSTER_from_json.py -msgid "party bot" -msgid_plural "party bots" -msgstr[0] "パーティーロボット" - -#. ~ Description for party bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Why on Earth would you build this crazy " -"thing?" -msgstr "" -"内部にマリファナを詰め込み、色とりどりの点滅灯で飾り付け、ダンスプログラムを内蔵した医療ロボットです。どうしてこんな狂気の沙汰を作ってしまったのでしょう?" - -#: lang/json/MONSTER_from_json.py -msgid "rat snatcher" -msgid_plural "rat snatchers" -msgstr[0] "狩猟ロボット" - -#. ~ Description for rat snatcher -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It's faster than " -"the original model but far less sturdy." -msgstr "小動物を狩れるように改造した高速ボットです。改造前の状態より素早く、はるかに頑丈です。" - -#: lang/json/MONSTER_from_json.py -msgid "grab-bot" -msgid_plural "grab-bots" -msgstr[0] "捕獲ロボット" - -#. ~ Description for grab-bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " -"meant to work in a pack." -msgstr "敵を掴んで拘束できるように改造した高速ボットです。複数機体で運用するように作られています。" - -#: lang/json/MONSTER_from_json.py -msgid "pest hunter" -msgid_plural "pest hunters" -msgstr[0] "害獣駆除ロボット" - -#. ~ Description for pest hunter -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's " -"small size precludes rapid fire, due to recoil, and requires the use of " -"lightweight caseless ammo." -msgstr "" -"8mm弾を発射する内蔵銃器を取り付けた高速ボットです。サイズが小さく反動が大きいため連続発砲の速度は遅く、弾薬も軽量のケースレス弾を使う必要があります。" - -#: lang/json/MONSTER_from_json.py -msgid "insane cyborg" -msgid_plural "insane cyborgs" -msgstr[0] "精神異常サイボーグ" - -#. ~ Description for insane cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A robot body with the head of a human. All kinds of electronic wires and " -"devices are implanted in its head. This cyborg moves erratically and has a " -"confused and deranged look in its eyes." -msgstr "" -"生きた人間の頭部を備えたロボットです。電子ワイヤーなどの機械類は全て頭部に入っています。このサイボーグは不規則に動き、目には狂気が宿っているようです。" - -#: lang/json/MONSTER_from_json.py -msgid "necrotic cyborg" -msgid_plural "necrotic cyborgs" -msgstr[0] "サイボーグゾンビ" - -#. ~ Description for necrotic cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Why on Earth " -"would anyone build such an abomination?" -msgstr "" -"頭部をゾンビマンサーのものと挿げ替えたサイボーグです。頭部はまだ活動しており、ゾンビを復活させる能力を持っています。一体どこの誰がこんな邪悪なものを作ったのでしょう?" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod and an integrated shotgun." -msgstr "内蔵電源で活動を続ける自動防衛ロボットです。内蔵された放電警棒とショットガンで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "military robot" -msgid_plural "military robots" -msgstr[0] "軍用ロボット" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5.56mm firearm." -msgstr "内蔵電源で活動を続ける軍用ロボットです。内蔵された放電警棒と5.56mm銃器で武装しています。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military training robot still operating due to its internal power core. " -"This one is armed with a high power paintball gun and a foam baton." -msgstr "内蔵電源で活動を続ける軍用ロボットです。内蔵された高出力ペイントボールガンと発光するバトンで武装しています。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 7.62mm firearm." -msgstr "内蔵電源で活動を続ける軍用ロボットです。内蔵された放電警棒と7.62mm銃器で武装しています。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 50 caliber firearm." -msgstr "内蔵電源で活動を続ける軍用ロボットです。内蔵された放電警棒と.50口径銃器で武装しています。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 8mm firearm." -msgstr "内蔵電源で活動を続ける軍用ロボットです。内蔵された放電警棒と8mm銃器で武装しています。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5x50mm flechette gun." -msgstr "内蔵電源で活動を続ける軍用ロボットです。内蔵された放電警棒と5x50mm矢弾銃器で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "grenadier robot" -msgid_plural "grenadier robots" -msgstr[0] "擲弾兵ロボット" - -#. ~ Description for grenadier robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 40mm grenade launcher." -msgstr "内蔵電源で活動を続ける軍用ロボットです。内蔵された放電警棒と40mmグレネードランチャーで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "military flame robot" -msgid_plural "military flame robots" -msgstr[0] "軍用火炎放射ロボット" - -#. ~ Description for military flame robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated flamethrower." -msgstr "内蔵電源で活動を続ける軍用ロボットです。内蔵された放電警棒と火炎放射器で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "advanced robot" -msgid_plural "advanced robots" -msgstr[0] "改良型ロボット" - -#. ~ Description for advanced robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is armed with a powerful laser-emitter." -msgstr "内蔵電源で活動を続ける改良型ロボットです。内蔵された強力なレーザー放射装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "laser-emitting robot" -msgid_plural "laser-emitting robots" -msgstr[0] "レーザーロボット" - -#. ~ Description for laser-emitting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful laser-emitter." -msgstr "内蔵電源で活動を続ける改良型ロボットです。備え付けの強力なレーザー放射装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "plasma-ejecting robot" -msgid_plural "plasma-ejecting robots" -msgstr[0] "プラズマロボット" - -#. ~ Description for plasma-ejecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful plasma-ejector." -msgstr "内蔵電源で活動を続ける改良型ロボットです。備え付けの強力なプラズマ放射装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "railgun robot" -msgid_plural "railgun robots" -msgstr[0] "レールガンロボット" - -#. ~ Description for railgun robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful railgun." -msgstr "内蔵電源で活動を続ける改良型ロボットです。備え付けの強力なレールガンで武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "electro-casting robot" -msgid_plural "electro-casting robots" -msgstr[0] "電撃ロボット" - -#. ~ Description for electro-casting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful electro-caster." -msgstr "内蔵電源で活動を続ける改良型ロボットです。備え付けの強力な電撃発生装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "EMP-projecting robot" -msgid_plural "EMP-projecting robots" -msgstr[0] "EMPロボット" - -#. ~ Description for EMP-projecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful EMP-projector." -msgstr "内蔵電源で活動を続ける改良型ロボットです。備え付けの強力なEMP発生装置で武装しています。" - -#: lang/json/MONSTER_from_json.py -msgid "junkyard cowboy" -msgid_plural "junkyard cowboys" -msgstr[0] "ジャンク・カウボーイ" - -#. ~ Description for junkyard cowboy -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Due to bootleg targeting software, it can only attack nearby targets." -msgstr "ショットガンと2つの丸鋸を取り付けた防御ロボットです。照準ソフトウェアが非正規品のため、近くの標的しか狙えません。" - -#: lang/json/MONSTER_from_json.py -msgid "shortcircuit samurai" -msgid_plural "shortcircuit samurais" -msgstr[0] "ロウデン・サムライ" - -#. ~ Description for shortcircuit samurai -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with two electrified blades. The over-" -"taxed power systems result in somewhat sluggish movement and occasional " -"discharges. Keep a safe distance!" -msgstr "" -"電流が流れる2本の刃を取り付けた防御ロボットです。電力システムに負荷をかけ過ぎたため、やや動きが遅く時々放電します。遠くから見守りましょう!" - -#: lang/json/MONSTER_from_json.py -msgid "slapdash paladin" -msgid_plural "slapdash paladins" -msgstr[0] "マルコゲ・パラディン" - -#. ~ Description for slapdash paladin -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. The burning fuel reserves make the robot noisy and " -"smokey." -msgstr "手製の火炎放射器と熱く熱した鋭い2本の刃を取り付けた防衛ロボットです。内部で燃える燃料のせいで、騒々しい音を立てて煙が立ち上っています。" - -#: lang/json/MONSTER_from_json.py -msgid "robo-guardian" -msgid_plural "robo-guardians" -msgstr[0] "ロボガーディアン" - -#. ~ Description for robo-guardian -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Multiple weapons provide a high rate of fire, but jury-rigged sensors limit " -"the effective range and accuracy. It makes for a good close range " -"bodyguard." -msgstr "" -"2丁の9mm銃器を取り付けた軍用ロボットです。複数の銃器によって隙のない攻撃が可能ですが、応急的に改造したセンサーの有効範囲と精度は高くありません。近距離で戦うボディーガードにぴったりです。" - -#: lang/json/MONSTER_from_json.py -msgid "robote deluxe" -msgid_plural "robote deluxe" -msgstr[0] "高級ロボット" - -#. ~ Description for {'str_sp': 'robote deluxe'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style." -msgstr "" -"ロボットに2丁の9mm銃器を取り付け、金メッキを施しダイヤモンドをちりばめました。大変動の世を贅沢に生き残りたい人に適した、豪勢で高級なロボットです。" - -#: lang/json/MONSTER_from_json.py -msgid "robo-protector" -msgid_plural "robo-protectors" -msgstr[0] "ロボプロテクター" - -#. ~ Description for robo-protector -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. The " -"modified firearm is only capable of three round bursts, but range and " -"accuracy are decent. It makes for a solid combat ally." -msgstr "" -"5.56mmライフルを取り付けた軍用ロボットです。改造によって発射モードは3発バーストのみになっていますが、有効範囲と精度は十分です。戦闘時の頼れる仲間です。" - -#: lang/json/MONSTER_from_json.py -msgid "robo-defender" -msgid_plural "robo-defenders" -msgstr[0] "ロボディフェンダー" - -#. ~ Description for robo-defender -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Improved" -" optics provide nightvision and excellent range, but glitchy targeting " -"software requires an extended pause between shots. It makes for a good long" -" range sniper." -msgstr "" -".50口径BMG弾を発射するライフルを取り付けた軍用ロボットです。光学系を改良して夜間照準と遠距離射撃ができるようになりましたが、照準ソフトウェアに不具合が多く、発射後に長い休止時間が必要です。優れた狙撃兵として共に戦ってくれます。" - -#: lang/json/MONSTER_from_json.py -msgid "glittering lady" -msgid_plural "glittering ladies" -msgstr[0] "シャイン・レディ" - -#. ~ Description for {'str': 'glittering lady', 'str_pl': 'glittering ladies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It has two integral lasers and emits a steady pulse of blinding flashes. " -"Due to mismatched focusing lenses, the lasers have limited range." -msgstr "" -"破滅の輝きをもたらす改造が施された改良型ロボットです。2丁のレーザーガンと閃光発生装置を内蔵しています。焦点の異なるレンズを使っているため、照準距離は短くなっています。" - -#: lang/json/MONSTER_from_json.py -msgid "bitter spinster" -msgid_plural "bitter spinsters" -msgstr[0] "ビター・オールドレディ" - -#. ~ Description for bitter spinster -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " -"pipes weaken the robot structurally, making it somewhat fragile." -msgstr "" -"腐食性の怪物に改造した軍用ロボットです。強酸生成装置で作られた酸を発射、散布する機能が内蔵されています。タンクやパイプが多く取り付けられており、やや脆弱な作りになっています。" - -#. ~ Description for chicken walker -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a " -"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade " -"launcher, 5.56 anti-personnel gun, and the ability to electrify itself " -"against attackers, it is an effective automated sentry, though production " -"was limited due to a legal dispute." -msgstr "" -"ノースロップ社のATSVは、逆関節二足歩行式の大型重武装装甲ロボットです。生産当時の目的が法的紛争の解決に限定されていたにもかかわらず、対車両40mmグレネードランチャー、対人5.56mm銃で武装しており、機体表面に電撃をまとわせる効果的な防衛機能を有しています。" - -#: lang/json/MONSTER_from_json.py -msgid "chainsaw horror" -msgid_plural "chainsaw horrors" -msgstr[0] "チェーンソー・ホラー" - -#. ~ Description for chainsaw horror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"whirring chainsaws. A speaker system has been installed to blast terrifying" -" shrieks of distorted music. No one in their right mind would craft such an" -" awful creature." -msgstr "" -"頭蓋骨やスパイクで装飾を施した恐ろしい改造チキンウォーカーです。銃器の代わりに唸る複数のチェーンソー、そして耳障りな音楽を大音量で鳴らすスピーカーシステムが取り付けてあります。こんな醜い物を作り出す人間が正しい心の持ち主なはずがありません。" - -#: lang/json/MONSTER_from_json.py -msgid "screeching terror" -msgid_plural "screeching terrors" -msgstr[0] "スクリーチ・テラー" - -#. ~ Description for screeching terror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"piston-driven lances. A speaker system has been installed to blast " -"terrifying shrieks of distorted music. No one in their right mind would " -"craft such a hellish beast." -msgstr "" -"頭蓋骨やスパイクで装飾を施した恐ろしい改造チキンウォーカーです。銃器の代わりにピストン駆動の槍、そして耳障りな音楽を大音量で鳴らすスピーカーシステムが取り付けてあります。こんな醜い物を作り出す人間が正しい心の持ち主なはずがありません。" - -#: lang/json/MONSTER_from_json.py -msgid "hooked nightmare" -msgid_plural "hooked nightmares" -msgstr[0] "フック・ナイトメア" - -#. ~ Description for hooked nightmare -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"spinning chains terminating in bloody hooks. A speaker system has been " -"installed to blast terrifying shrieks of distorted music. No one in their " -"right mind would craft such a twisted abomination." -msgstr "" -"頭蓋骨やスパイクで装飾を施した恐ろしい改造チキンウォーカーです。銃器の代わりに複数のフック付きチェーン、そして耳障りな音楽を大音量で鳴らすスピーカーシステムが取り付けてあります。こんな醜い物を作り出す人間が正しい心の持ち主なはずがありません。" - -#. ~ Description for Beagle Mini-Tank UGV -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an " -"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" -"infantry weapons, it's designed for high-risk urban fighting." -msgstr "" -"Beagleは冷蔵庫程の大きさのノースロップ社製小型無人戦車です。対戦車ミサイルランチャー、40mmグレネードランチャー、そして多数の対歩兵兵器を搭載し、危険度の高い市街戦向けに設計されています。" - -#: lang/json/MONSTER_from_json.py -msgid "fist king" -msgid_plural "fist kings" -msgstr[0] "フィスト・キング" - -#. ~ Description for fist king -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Although lacking" -" ranged weapons, its armor and strength make it a match for the even the " -"biggest monsters. Only a madman would dare build such a reckless behemoth." -msgstr "" -"建築物などを粉砕する時に使う強力な空圧式ハンマーを取り付けた無人戦車です。遠距離武器を取り除いたにもかかわらず、巨大な怪物と渡り合うのに十分な強さと頑丈さを備えています。こんな不滅の化け物を作った人間は間違いなく狂っています。" - -#: lang/json/MONSTER_from_json.py -msgid "atomic sultan" -msgid_plural "atomic sultans" -msgstr[0] "アトミック・スルタン" - -#. ~ Description for atomic sultan -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with burning hot man-crushers. Although lacking" -" ranged weapons, its armor and strength make it a match for even the biggest" -" foes. Multiple fusion cores give the robot ample power but also cause " -"radioactive gas leaks. Only a lunatic would dare build such a reckless " -"monster." -msgstr "" -"熱く燃える人間粉砕装置を取り付けた無人戦車です。遠距離武器を取り除いたにもかかわらず、巨大な敵と渡り合うのに十分な強さと頑丈さを備えています。こんな不滅の怪物を作った人間は間違いなく頭のねじが飛んでいます。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gelatinous mass" -msgid_plural "gelatinous mass" -msgstr[0] "ゼラチン塊" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#. ~ Description for {'str_sp': 'gray mass'} -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An escaping noisy blob, catch it before it brings in every zombie for miles!" -msgstr "騒々しく動き回るブロブです。街中のゾンビたちがこれを取り込んでしまう前に、さっさと捕まえましょう!" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gray mass" -msgid_plural "gray mass" -msgstr[0] "グレイ塊" +"Vaguely humanoid in shape, layered in something resembling toilet paper." +msgstr "人型のようにも見える、トイレットペーパーのようなものを巻き付けた怪物です。。" #: lang/json/MONSTER_from_json.py msgid "giant scorpion" @@ -71595,6 +70188,18 @@ msgid "" "chitin fitted to a thin mesh. You could put this on a friendly horse." msgstr "デーモンキチンのメッシュ素材で自作した、それぞれクリニエール、ペイトレール、クルーピエと呼ばれる馬鎧です。友好的なウマに装着できます。" +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "a mammal" msgstr "哺乳類" @@ -71691,6 +70296,10 @@ msgstr "異形" msgid "a human" msgstr "人間" +#: lang/json/SPECIES_from_json.py +msgid "an intelligent animal created by man before the Cataclysm" +msgstr "大変動以前に人の手で創造された知性生物です。" + #: lang/json/SPECIES_from_json.py msgid "an alien" msgstr "異星人" @@ -72326,6 +70935,15 @@ msgstr "ホログラフィック・フラッシュ・エクスプロージョン msgid "Holographic Transposition" msgstr "ホログラフィック・トランスポジション" +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "頭蓋爆弾発動" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." +msgstr "頭蓋爆弾発動に使われる疑似呪文です。致命的なダメージを与えます。" + #: lang/json/SPELL_from_json.py msgid "psi stun" msgstr "気絶攻撃(超能力)" @@ -73417,6 +72035,56 @@ msgid "" "have this spell you probably debugged it in." msgstr "マナ・サイフォン系列の突然変異の呪文効果です。デバッグ中でなければ、この呪文は習得できません。" +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "ビビビビ" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "標的を指差して「ビビビビ」と音を立てました。" + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "ザ・フロア・イズ・ラヴァ" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "床が溶岩になっています!上に登れる椅子やカウンターを探した方が良さそうですね。" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "スポーツ・トレイニング・モンタージュ" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "すごく長い時間がかかることをあっという間にこなして見せる、それがモンタージュ。" + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "キス・ジ・アウィー" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "かつて母親にしてもらったような、痛みを消す優しいキスをします。" + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "サモン・マミー" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "心の中の掃除用具入れから、トイレットペーパーの怪物を呼び出します。" + #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" msgid_plural "reactor core expansion devices" @@ -74039,6 +72707,53 @@ msgid "" msgstr "" "より使いやすく明るい光をもたらす、魔法のような核崩壊の力を使った特製の強化ヘッドランプです。頭やヘルメットに合わせて長さを調節できる留め紐が付いています。使用するとカバーを開けて周囲を照らします。" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "対爆ヘルメット" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "ランプ点灯" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "「照明を点灯します。」" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "「照明が無効です。電力が不足しています。」" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" +"カメラ、双方向無線機、ヘッドランプを搭載した電子シールド付き装甲ヘルメットです。冗長性を持たせるために、音声で作動する機能がついています。過圧、破片、衝撃、熱から保護するように設計されています。" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "対爆ヘルメット(オン)" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD +#. helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "ランプ消灯" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets +#. (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "「照明を消灯します。」" + #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" msgid_plural "RM13 combat armors" @@ -74206,7 +72921,7 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL rebreather mask" msgid_plural "XL rebreather masks" -msgstr[0] "リブリーザーマスク(XL)" +msgstr[0] "XLリブリーザーマスク" #. ~ Description for {'str': 'XL rebreather mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -74221,7 +72936,7 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL rebreather mask (on)" msgid_plural "XL rebreather masks (on)" -msgstr[0] "リブリーザーマスク(XL)(オン)" +msgstr[0] "XLリブリーザーマスク(オン)" #. ~ Description for {'str': 'XL rebreather mask (on)', 'str_pl': 'XL #. rebreather masks (on)'} @@ -74263,7 +72978,7 @@ msgstr "顔と目を覆う完全なガスマスクです。煙や催涙ガス、 #: lang/json/TOOL_ARMOR_from_json.py msgid "XL gas mask" msgid_plural "XL gas masks" -msgstr[0] "ガスマスク(XL)" +msgstr[0] "XLガスマスク" #. ~ Description for {'str': 'XL gas mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -74290,7 +73005,7 @@ msgstr "特製のノーメックス製ガスマスクです。顔と目を覆い #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor firemask" msgid_plural "XL survivor firemasks" -msgstr[0] "サバイバー防火マスク(XL)" +msgstr[0] "XLサバイバー防火マスク" #. ~ Description for {'str': 'XL survivor firemask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -74357,7 +73072,7 @@ msgstr "革で強化した特製のガスマスクです。顔と目を覆い、 #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor mask" msgid_plural "XL survivor masks" -msgstr[0] "サバイバーマスク(XL)" +msgstr[0] "XLサバイバーマスク" #. ~ Description for {'str': 'XL survivor mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -74385,7 +73100,7 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL winter survivor mask" msgid_plural "XL winter survivor masks" -msgstr[0] "サバイバー防寒マスク(XL)" +msgstr[0] "XLサバイバー防寒マスク" #. ~ Description for {'str': 'XL winter survivor mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -74508,12 +73223,12 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor divemask" msgid_plural "XL survivor divemasks" -msgstr[0] "サバイバーダイビングマスク(XL)" +msgstr[0] "XLサバイバーダイビングマスク" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor divemask (on)" msgid_plural "XL survivor divemasks (on)" -msgstr[0] "サバイバーダイビングマスク(XL)(オン)" +msgstr[0] "XLサバイバーダイビングマスク(オン)" #. ~ Description for {'str': 'XL survivor divemask (on)', 'str_pl': 'XL #. survivor divemasks (on)'} @@ -75314,6 +74029,34 @@ msgid "Foodperson mask (on)" msgid_plural "Foodperson masks (on)" msgstr[0] "フードパーソンマスク(オン)" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "対爆ジャケット" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "ケブラーとノーメックスで作られた、対爆仕様の分厚い装甲付きジャケットです。過圧、破片、衝撃、熱から保護するように設計されています。" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "軽装対爆ジャケット" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "" +"ケブラーとノーメックスで作られた、対爆仕様の装甲付きジャケットです。有害環境での過圧、破片、衝撃、熱から保護するように設計されています。通常の対爆ジャケットよりも軽く、機動性が高くなっています。" + #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" @@ -75467,9 +74210,9 @@ msgstr[0] "CRIT標準G.E.A.R" #. ~ Description for CRIT S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into " -"your spinal cord, this device improves your overall physique and provides " -"basic information on your surroundings." +"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" +" spinal cord, this device improves your overall physique and provides basic " +"information on your surroundings." msgstr "" "C.R.I.T標準装備の一般技術援助装備です。使用者の脊髄にこの装置を差しこむことで、全身の運動能力を改善し、基本的な周囲の環境情報を表示します。" @@ -75481,7 +74224,7 @@ msgstr[0] "CRITガスマスク(オフ)" #. ~ Use action msg for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD booting up…" +msgid "CRIT HUD booting up…" msgstr "C.R.I.TのHUDを起動しています..." #. ~ Use action need_charges_msg for {'str': 'CRIT gasmask (off)', 'str_pl': @@ -75494,13 +74237,13 @@ msgstr "電力レベルが低いため起動できません。" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line " -"electronics and lined with Kevlar for extra protection in order to keep " -"one's head where it should be. Various filters and other high tech wizardry" -" allow for enhanced oxygen intake and safety even under bombardment. It has" -" an integrated HUD and the option to turn it on for more features." +"This is a heavily modified Spec Ops modified gasmask, fitted with top-of-" +"the-line electronics and lined with Kevlar for extra protection in order to " +"keep one's head where it should be. Various filters and other high tech " +"wizardry allow for enhanced oxygen intake and safety even under bombardment." +" It has an integrated HUD and the option to turn it on for more features." msgstr "" -"C.R.I.Tの特殊部隊用強化ガスマスクです。最先端の電子機器が内蔵されており、層状のケブラーによって頭部をしっかりと保護します。様々なフィルターなど魔法のようなハイテクによって酸素を安全に供給し、爆発による衝撃からも頭部を保護する性能があります。内蔵HUDや他の機能のオン/オフを切り替えられるようになっています。" +"特殊部隊用の強化ガスマスクです。最先端の電子機器が内蔵されており、層状のケブラーによって頭部をしっかりと保護します。様々なフィルターなど魔法のようなハイテクによって酸素を安全に供給し、爆発による衝撃からも頭部を保護する性能があります。内蔵HUDや他の機能のオン/オフを切り替えられるようになっています。" #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT gasmask (on)" @@ -75510,17 +74253,16 @@ msgstr[0] "CRITガスマスク(オン)" #. ~ Use action msg for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD deactivating." +msgid "CRIT HUD deactivating." msgstr "C.R.I.TのHUDを停止しています。" #. ~ Description for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " -"draining power for the HUD, low-level nightvision and other protective " -"elements." -msgstr "C.R.I.Tの特殊部隊用強化ガスマスクです。現在電力を消費しながら、HUD、低レベルの暗視機能、その他の防護機能を稼働しています。" +"This a heavily modified gasmask. It is currently on and draining power for " +"the HUD, low-level nightvision and other protective elements." +msgstr "強化ガスマスクです。現在電力を消費しながら、HUD、低レベルの暗視機能、その他の防護機能を稼働しています。" #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT EM vest (off)" @@ -75530,7 +74272,7 @@ msgstr[0] "CRIT運動強化ベスト(オフ)" #. ~ Use action msg for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T EM booting up…" +msgid "CRIT EM booting up…" msgstr "C.R.I.Tの運動強化機能を起動しています..." #. ~ Use action need_charges_msg for {'str': 'CRIT EM vest (off)', 'str_pl': @@ -75543,13 +74285,13 @@ msgstr "電力レベルが低いため起動できません..." #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments and reactive servos which protects its wearer and assists in " -"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec" -" Ops for its ease of use and manuverability. Turn it on for suit mode, " -"extra protection and movement." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments and" +" reactive servos which protects its wearer and assists in movement at the " +"cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its " +"ease of use and manuverability. Turn it on for suit mode, extra protection " +"and movement." msgstr "" -"C.R.I.Tの特殊部隊用運動強化ベストは、最先端の繊維素材と反応性サーボモーターが内蔵されており、着用者を保護し、多量の電力を消費して運動能力を強化します。使いやすく操作性も高いため、C.R.I.Tの特殊部隊で一般的に着用されています。保護機能と移動力を高めたい時は使用して電源を入れましょう。" +"特殊部隊用運動強化ベストは、最先端の繊維素材と反応性サーボモーターが内蔵されており、着用者を保護し、多量の電力を消費して運動能力を強化します。使いやすく操作性も高いため、C.R.I.Tの特殊部隊で一般的に着用されています。保護機能と移動力を高めたい時は使用して電源を入れましょう。" #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT EM vest (on)" @@ -75565,20 +74307,20 @@ msgstr "強化機能を停止する" #. ~ Use action msg for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T E.M powering off…" +msgid "CRIT EM powering off…" msgstr "C.R.I.Tの運動強化機能を停止しています..." #. ~ Description for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments, reactive servos and a generator which pumps a crystallized liquid" -" that protects its wearer from most heavy combat situations at the cost of " -"extreme power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is" -" currently in suit form and draining your UPS power at high rates." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments, " +"reactive servos and a generator which pumps a crystallized liquid that " +"protects its wearer from most heavy combat situations at the cost of extreme" +" power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " +"currently in suit form and draining your UPS power at high rates." msgstr "" -"C.R.I.Tの特殊部隊用運動強化ベストは、最先端の繊維素材と反応性サーボモーター、そして液晶圧送ジェネレータが内蔵されており、多量の電力を消費して着用者を最悪の戦闘状況から保護します。C.R.I.Tの特殊部隊で一般的に着用されている装備です。現在は機能を稼働しており、UPSの電力を大量に消費しています。" +"特殊部隊用運動強化ベストは、最先端の繊維素材と反応性サーボモーター、そして液晶圧送ジェネレータが内蔵されており、多量の電力を消費して着用者を最悪の戦闘状況から保護します。C.R.I.Tの特殊部隊で一般的に着用されている装備です。現在は機能を稼働しており、UPSの電力を大量に消費しています。" #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT helmet (off)" @@ -75596,9 +74338,9 @@ msgstr "%sの電源を入れました。" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection." -msgstr "C.R.I.Tの標準装備のヘルメットです。頭部を保護し、首は保温と保護のために絶縁された伸縮する鋼鉄メッシュで覆われています。" +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection." +msgstr "標準装備のヘルメットです。頭部を保護し、首は保温と保護のために絶縁された伸縮する鋼鉄メッシュで覆われています。" #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT helmet (on)" @@ -75616,12 +74358,11 @@ msgstr "%sの電源を切りました。" #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection. A tactically dim " -"flashlight is attached to the side. This light is currently on and drawing " -"power." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection. A tactically dim flashlight is " +"attached to the side. This light is currently on and drawing power." msgstr "" -"C.R.I.Tの標準装備のヘルメットです。頭部を保護し、首は保温と保護のために絶縁された伸縮する鋼鉄メッシュで覆われています。側面に薄暗い懐中電灯が内蔵されています。ライトは現在点灯しており、電力を消費しています。" +"標準装備のヘルメットです。頭部を保護し、首は保温と保護のために絶縁された伸縮する鋼鉄メッシュで覆われています。側面に薄暗い懐中電灯が内蔵されています。ライトは現在点灯しており、電力を消費しています。" #: lang/json/TOOL_ARMOR_from_json.py msgid "magic leather belt" @@ -76757,18 +75498,15 @@ msgstr "点火する" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." -msgstr "ジャック・オ・ランタンに火を灯しました。" +msgid "You flip the switch in the jack o'lantern." +msgstr "ジャック・オ・ランタンのスイッチを入れました。" #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." -msgstr "" -"顔が描かれたカボチャのようなデザインの、プラスチック製ランタンです。内部にろうそくが入っており、燃え尽きても交換できます。光は弱いですが、とても長持ちします。着火にはライターやマッチが必要です。" +"face. It has a tiny LED light in it. It doesn't provide very much light." +msgstr "顔が描かれたカボチャのようなデザインの、プラスチック製ランタンです。中に小さなLEDライトが入っていますが、あまり明るくは光りません。" #: lang/json/TOOL_from_json.py msgid "spooky jack o'lantern" @@ -76778,17 +75516,17 @@ msgstr[0] "ジャック・オ・ランタン(点火)" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." -msgstr "ランタンの中のろうそくの火がふっと消えました。" +msgid "The LED winks out inside the lantern." +msgstr "ランタンの中のLEDライトの明かりがふっと消えました。" #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"} #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is lit." +"very much light, but it can run for quite a long time. This lantern is lit." " The face shifts." -msgstr "カボチャのランタンの中でろうそくが揺らめき、不気味な顔が浮かび上がっています。光は弱いですが、とても長持ちします。" +msgstr "カボチャのランタン内のLEDろうそくが揺らめき、不気味な顔が浮かび上がっています。光は弱いですが、とても長持ちします。" #: lang/json/TOOL_from_json.py msgid "yule wreath" @@ -76961,7 +75699,7 @@ msgid "" "will then identify you as a friendly, roam around or follow you, and attack " "all enemies with a built-in firearm and grenade launcher." msgstr "" -"停止状態のチキンウォーカーです。使用すると所持している手詰めでない5.56mm弾と40mm弾が装填され(弾薬を指定個数だけ装填したい場合は、装填しない分の弾薬を一旦地面に置いて下さい)、起動します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して追従もしくは周囲の探索を開始し、内蔵銃器とグレネードランチャーであらゆる敵を攻撃します。" +"停止状態のチキンウォーカーです。使用すると所持している手詰めでない5.56mm弾と40mm弾が装填され(弾薬を指定個数だけ装填したい場合は、装填しない分の弾薬を一旦地面に置いて下さい)、設置された状態で起動します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して追従もしくは周囲の探索を開始し、内蔵銃器とグレネードランチャーであらゆる敵を攻撃します。" #: lang/json/TOOL_from_json.py msgid "inactive tank drone" @@ -76991,7 +75729,7 @@ msgid "" " will then identify you as a friendly, roam around or follow you, and attack" " all enemies with a built-in firearm and grenade launcher." msgstr "" -"停止状態の小型無人戦車、Beagleです。使用すると所持している手詰めでない5.56mm弾と40mm弾が装填され(弾薬を指定個数だけ装填したい場合は、装填しない分の弾薬を一旦地面に置いて下さい)、起動します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して追従もしくは周囲の探索を開始し、内蔵銃器とグレネードランチャーであらゆる敵を攻撃します。" +"停止状態の小型無人戦車、Beagleです。使用すると所持している手詰めでない5.56mm弾と40mm弾が装填され(弾薬を指定個数だけ装填したい場合は、装填しない分の弾薬を一旦地面に置いて下さい)、設置された状態で起動します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して追従もしくは周囲の探索を開始し、内蔵銃器とグレネードランチャーであらゆる敵を攻撃します。" #: lang/json/TOOL_from_json.py msgid "inactive tripod" @@ -77019,7 +75757,7 @@ msgid "" "an ally, roam around or follow you, and impale hostiles with its spiked " "cable weapons." msgstr "" -"停止状態のホンダ社製Regnalです。使用すると起動して活動を開始します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して追従もしくは周囲の探索を開始し、スパイク付きケーブルで敵対者を攻撃します。" +"停止状態のホンダ社製Regnalです。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して追従もしくは周囲の探索を開始し、スパイク付きケーブルで敵対者を攻撃します。" #: lang/json/TOOL_from_json.py msgid "shishkebab (off)" @@ -77407,6 +76145,34 @@ msgid "" msgstr "" "鉄パイプの中にRDXと飛び散れば致命的な凶器になる砂を混ぜて詰めた邪悪な擲弾です。既に導火線には火が付いていますが、何故手放さないんですか?" +#: lang/json/TOOL_from_json.py +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "携帯型操作端末" + +#. ~ Description for {'str': 'control laptop'} +#: lang/json/TOOL_from_json.py +msgid "" +"A modified laptop, now capable of transmitting in the ultra-high frequencies" +" utilized by robots. Activate it to command robots from afar." +msgstr "ロボットが使っている高周波帯で通信ができるように改造した、携帯型の操作端末です。ロボットを遠隔操作できます。" + +#: lang/json/TOOL_from_json.py +msgid "inactive laser turret" +msgid_plural "inactive laser turrets" +msgstr[0] "レーザータレット(停止)" + +#. ~ Description for {'str': 'inactive laser turret'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive laser turret. Using this item involves turning it on " +"and placing it on the ground, where it will attach itself. If reprogrammed " +"and rewired successfully the turret will identify you as a friendly, and " +"attack all enemies with its revolving laser cannons. It requires sunlight " +"in order to fire." +msgstr "" +"停止状態のタレットです。使用すると起動して指定した場所に設置され、IFFの初期設定が行われます。プログラムの書き換えと設置に成功すると使用者を味方として認識し、接近する全ての敵を回転式レーザー砲で攻撃します。発射するには太陽光が必要です。" + #: lang/json/TOOL_from_json.py msgid "folded poncho" msgid_plural "folded ponchos" @@ -77561,22 +76327,6 @@ msgid "" msgstr "" "停止状態の手榴弾搭載型マンハックです。空中を飛ぶ拳大の自律ロボットで、攻撃目標に向かって飛行し、十分に接近すると手榴弾を起爆します。使用するとプログラムを書き換えて起動します。機械整備およびコンピュータのスキルに応じて、再プログラムの成否が決まります。" -#: lang/json/TOOL_from_json.py -msgid "inactive laser turret" -msgid_plural "inactive laser turrets" -msgstr[0] "レーザータレット(停止)" - -#. ~ Description for {'str': 'inactive laser turret'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive laser turret. Using this item involves turning it on " -"and placing it on the ground, where it will attach itself. If reprogrammed " -"and rewired successfully the turret will identify you as a friendly, and " -"attack all enemies with its revolving laser cannons. It requires sunlight " -"in order to fire." -msgstr "" -"停止状態のタレットです。使用すると起動して指定した場所に設置され、IFFの初期設定が行われます。プログラムの書き換えと設置に成功すると使用者を味方として認識し、接近する全ての敵を回転式レーザー砲で攻撃します。発射するには太陽光が必要です。" - #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" @@ -77611,7 +76361,6 @@ msgid "You misprogram the manhack; it's hostile!" msgstr "マンハックのプログラムに間違いがあったようです!マンハックは敵になりました!" #. ~ Description for {'str': 'inactive manhack'} -#. ~ Description for inactive hack #: lang/json/TOOL_from_json.py msgid "" "This is an inactive manhack. Manhacks are fist-sized robots that fly " @@ -77905,7 +76654,7 @@ msgid "" "police bot will then identify you as law enforcement, roam around or follow " "you, and attempt to detain lawbreakers." msgstr "" -"停止状態の警官ロボットです。使用すると起動して活動を開始します。起動時のプログラムの書き換えと配線に成功すると、使用者を法執行機関の職員として認識して追従もしくは周囲の探索を開始し、法律違反者を拘束しようとします。" +"停止状態の警官ロボットです。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと配線に成功すると、使用者を法執行機関の職員として認識して追従もしくは周囲の探索を開始し、法律違反者を拘束しようとします。" #: lang/json/TOOL_from_json.py msgid "inactive eyebot" @@ -77954,7 +76703,7 @@ msgid "" " ground and turning it on. If reprogrammed and rewired successfully the " "cleaner bot will respond to future commands." msgstr "" -"停止状態の掃除ロボットです。使用すると起動して活動を開始します。起動時のプログラムの書き換えと配線に成功すると、操作を受け付けるようになります。" +"停止状態の掃除ロボットです。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと配線に成功すると、操作を受け付けるようになります。" #: lang/json/TOOL_from_json.py msgid "inactive miner bot" @@ -77978,7 +76727,7 @@ msgid "" "the ground and turning it on. If reprogrammed and rewired successfully the " "miner bot will respond to future commands." msgstr "" -"停止状態の採掘ロボットです。使用すると起動して活動を開始します。起動時のプログラムの書き換えと配線に成功すると、操作を受け付けるようになります。" +"停止状態の採掘ロボットです。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと配線に成功すると、操作を受け付けるようになります。" #: lang/json/TOOL_from_json.py msgid "inactive riot control bot" @@ -78003,7 +76752,7 @@ msgid "" "on the ground and turning it on. If reprogrammed and rewired successfully " "the robot will bring order and peace to the horde." msgstr "" -"停止状態の暴動鎮圧ロボットです。使用すると起動して活動を開始します。起動時のプログラムの書き換えと配線に成功すると、暴徒に秩序と平和をもたらします。" +"停止状態の暴動鎮圧ロボットです。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと配線に成功すると、暴徒に秩序と平和をもたらします。" #: lang/json/TOOL_from_json.py msgid "inactive skitterbot" @@ -78027,7 +76776,7 @@ msgid "" "ground and turning it on. If reprogrammed and rewired successfully the " "robot will race towards enemies and shock them." msgstr "" -"停止状態の高速ロボットです。使用すると起動して活動を開始します。起動時のプログラムの書き換えと設置に成功すると、敵を追いかけテーザー銃を撃ち込みます。" +"停止状態の高速ロボットです。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと設置に成功すると、敵を追いかけテーザー銃を撃ち込みます。" #: lang/json/TOOL_from_json.py msgid "inactive lab defense bot" @@ -78055,7 +76804,7 @@ msgid "" "reprogrammed and rewired successfully the robot will race towards enemies " "and deploy a variety of experimental devices." msgstr "" -"科学研究所から持ち出した停止状態の高速ロボットです。人間サイズのクモのような形をしており、マンハックを放出する機能が備わっています。使用すると起動して活動を開始します。起動時のプログラムの書き換えと設置に成功すると、敵を追いかけ様々な実験的装置を展開します。" +"科学研究所から持ち出した停止状態の高速ロボットです。人間サイズのクモのような形をしており、マンハックを放出する機能が備わっています。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと設置に成功すると、敵を追いかけ様々な実験的装置を展開します。" #: lang/json/TOOL_from_json.py msgid "inactive milspec searchlight" @@ -78082,7 +76831,7 @@ msgid "" "survey the area, and illuminate approaching hostiles. Seems to have an " "unhealthy fascination with you." msgstr "" -"停止状態の軍用自動探照灯です。使用すると起動して活動を開始します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して周囲の敵を照らしますが、敵の注目を集めてしまう可能性があります。" +"停止状態の軍用自動探照灯です。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して周囲の敵を照らしますが、敵の注目を集めてしまう可能性があります。" #: lang/json/TOOL_from_json.py msgid "inactive dispatch" @@ -78137,6 +76886,26 @@ msgid "" msgstr "" "停止状態のノースロップ社製Dispatchです。これは軍用モデルであり、搭載された攻撃用マンハックの小型組立装置と射出装置を駆使して攻撃を行います。使用すると起動しますが、停止中に不可逆スイッチがオンになったため、積極的な攻撃行動はとらず、注意を逸らすことしかできません。" +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "拡声装置(停止)" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "拡声装置が起動し、大音量を再生し始めました。" + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing" +" it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "" +"停止状態の拡声装置です。使用すると起動して設置され、活動を開始します。起動時のプログラムの書き換えと配線に成功すると、録音済みのメッセージを延々と再生します。" + #: lang/json/TOOL_from_json.py msgid "clothes hanger" msgid_plural "clothes hangers" @@ -78646,9 +77415,9 @@ msgstr[0] "簡易ナイフ(骨)" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end" -" and sharpened into a cutting tool. Its jagged edge is wicked but fragile." -msgstr "大腿骨などの全長30cm以上の骨の一端を折って削った、切削工具です。ギザギザの刃は凶悪そうに見えますが簡単に砕けます。" +"A femur or other bone, about 20 cm long, which has been broken at one end " +"and sharpened into a cutting tool. Its jagged edge is wicked but fragile." +msgstr "" #: lang/json/TOOL_from_json.py msgid "baselard" @@ -79228,6 +77997,30 @@ msgid "" msgstr "" "伸縮性の高いライクラ繊維を織り交ぜた合成繊維の端切れです。柔軟かつ丈夫な衣類を仕立てるのに適しています。お洒落ではあるものの自然環境に悪い素材だと言われていますが、少なくとも再利用は可能です。" +#: lang/json/TOOL_from_json.py +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" +msgstr[0] "層状ケブラー板" + +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "ケブラー生地を16層重ねて作った小さな板です。ケブラー製防具の修復に使えます。" + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "硬質ケブラー板" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "ケブラーを圧縮しエポキシなどの接着剤で強化して作った板ですケブラー製アイテムの修復に使えます。" + #: lang/json/TOOL_from_json.py msgid "butchering kit" msgid_plural "butchering kits" @@ -79610,13 +78403,11 @@ msgid "fire barrel (200L)" msgid_plural "fire barrels (200L)" msgstr[0] "ドラム缶ストーブ(200L)" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels #. (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels #. (100L)'} -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +#: lang/json/TOOL_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -79864,18 +78655,6 @@ msgstr[0] "携帯電話(ライト)" msgid "You stop lighting up the screen." msgstr "画面の照明をオフにしました。" -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "携帯型操作端末" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies" -" utilized by robots. Activate it to command robots from afar." -msgstr "ロボットが使っている高周波帯で通信ができるように改造した、携帯型の操作端末です。ロボットを遠隔操作できます。" - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" @@ -79922,7 +78701,6 @@ msgid_plural "electrohacks" msgstr[0] "ハッキング装置" #. ~ Description for {'str': 'electrohack'} -#. ~ Description for electrohack #: lang/json/TOOL_from_json.py msgid "" "This device has many ports attached, allowing it to connect to almost any " @@ -80067,11 +78845,13 @@ msgstr[0] "スマートフォン" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "ライトアプリを有効化しました。" #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "スマートフォンの充電が足りません。" @@ -80217,8 +78997,9 @@ msgstr[0] "精密ロックピック" msgid "" "This is a locksmith's set of sturdy steel lock picks and torsion wrenches. " "It is essential for silently and quickly opening locks, provided you have " -"some mechanical skill." -msgstr "鍵屋が作った出来の良いロックピックです。機械整備スキルがいくらかあるのなら、素早く音を立てずに鍵を開けるのに欠かせない道具です。" +"some lock picking and mechanical skills." +msgstr "" +"鍵屋が作った高品質なロックピックとトーションレンチのセットです。ある程度の機械整備スキルがあるなら、素早く音を立てずに鍵を開けるのに欠かせない道具です。" #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -80665,7 +79446,6 @@ msgid_plural "active EMP grenades" msgstr[0] "EMP手榴弾(起動)" #. ~ Description for {'str': 'active EMP grenade'} -#. ~ Description for active EMP grenade #: lang/json/TOOL_from_json.py msgid "" "This EMP grenade is active, and will shortly detonate, creating a large EMP " @@ -82718,18 +81498,6 @@ msgstr[0] "自動車用クラクション" msgid "This is a car horn meant to be attached to a car's electrical system." msgstr "車の電気系統に接続するタイプのクラクションです。" -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "平板(ケブラー)" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made" -" of Kevlar." -msgstr "ケブラーの板です。ケブラー製アイテムの製作、修復や補強に使えます。" - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" @@ -83029,6 +81797,18 @@ msgid "" "around it." msgstr "渦巻きと小さな穴に全体が覆われた石です。大きさはかなりありますが、重さは感じません。空気が石の周りに凝縮されているように見えます。" +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" @@ -85697,7 +84477,7 @@ msgid "" " then identify you as a friendly, roam around or follow you, and attack all " "enemies with a built-in firearm and grenade launcher." msgstr "" -"停止状態のチキンウォーカーです。使用すると所持している手詰めでない5.56mm弾と40mm弾が装填され(弾薬を指定個数だけ装填したい場合は、装填しない分の弾薬を一旦地面に置いて下さい)、起動します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して追従もしくは周囲の探索を開始し、内蔵銃器とグレネードランチャーであらゆる敵を攻撃します。" +"停止状態のチキンウォーカーです。使用すると所持している手詰めでない5.56mm弾と40mm弾が装填され(弾薬を指定個数だけ装填したい場合は、装填しない分の弾薬を一旦地面に置いて下さい)、設置された状態で起動します。起動時のプログラムの書き換えと配線に成功すると、使用者を味方として認識して追従もしくは周囲の探索を開始し、内蔵銃器とグレネードランチャーであらゆる敵を攻撃します。" #: lang/json/TOOL_from_json.py msgid "inactive sentinel-lx" @@ -86016,13 +84796,12 @@ msgstr[0] "CRIT標準ナイフ" #. knives'} #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked" -" pry bar at the bottom for opening simple things and bashing in heads. " -"Matte black finish helps it avoid flash in dim-light situations and tanto " -"tip allows for light-armor penetration. Blade length allows for decent " -"reach." +"A modified trench knife. Has a knuckleduster guard and a small, hooked pry " +"bar at the bottom. The matte black finish helps it avoid flash in dim-light " +"situations and tanto tip allows for light-armor penetration. Blade length " +"allows for decent reach." msgstr "" -"C.R.I.T標準装備のナイフです。ナックルダスターになるガードと簡単な作りの扉のこじ開けや鈍器代わり使える小型バールが一体となっています。薄暗い環境でライトの反射を防ぐマットブラックで仕上げられており、ナイフの先端は軽装甲であれば貫通できる作りで、敵に十分届く程度の長さがあります。" +"標準装備のナイフです。ナックルダスターになるガードと簡単な作りの扉のこじ開けや鈍器代わり使える小型バールが一体となっています。薄暗い環境でライトの反射を防ぐマットブラックで仕上げられており、ナイフの先端は軽装甲であれば貫通できる作りで、敵に十分届く程度の長さがあります。" #: lang/json/TOOL_from_json.py msgid "pair of CRIT Knuckledusters" @@ -86045,11 +84824,11 @@ msgstr[0] "CRIT強化ブレード" #. ~ Description for CRIT Reso-blade #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " -"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " -"thrums from within." +"CRIT melee weapon. Alien runes adorn the carbon steel blade. The blade " +"oddly seems to lack sharpness, and yet upon closer oberservation, a hum of " +"energy thrums from within." msgstr "" -"C.R.I.Tの近接武器です。見たこともない図案が炭素鋼の刃を覆っています。奇妙なことに刃は鋭いように見えませんが、よく見ると内部から湧き出すエネルギーによって細かく振動しています。" +"CRITの近接武器です。見たこともない図案が炭素鋼の刃を覆っています。奇妙なことに刃は鋭いように見えませんが、よく見ると内部から湧き出すエネルギーによって細かく振動しています。" #: lang/json/TOOL_from_json.py msgid "Dragon Slayer" @@ -87025,1006 +85804,6 @@ msgid "" msgstr "" "魔法の金属を溶かして加工しやすい鋳塊にするための、携帯できる高性能な炉です。デーモンスパイダーのキチンを使って魔術的な強化が施されています。" -#: lang/json/TOOL_from_json.py -msgid "Dusk" -msgid_plural "Dusks" -msgstr[0] "『宵闇』" - -#. ~ Description for Dusk -#: lang/json/TOOL_from_json.py -msgid "" -"A longsword, made out of a very dark, almost black metal. It seems to hold " -"a greater edge than usual steel blades and feels …more comfortable in the " -"hand. While the blade is made out of this dark metal, the crossguard and " -"the pommel seem to be made out of a brighter material, which feels " -"abnormally cool to the touch." -msgstr "" -"闇よりも昏い漆黒の金属で造られた刀身のロングソードです。鋼鉄の剣よりも鋭く強い刃を持ち、何故か...手に馴染みます。十字鍔と柄は明るい色の素材が使われており、触れると異常なほど冷たく感じます。" - -#. ~ Description for disarmed defense turret -#: lang/json/TOOL_from_json.py -msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "自動発砲タレットです。内蔵銃器が抜き取られています。" - -#. ~ Description for disarmed military turret -#: lang/json/TOOL_from_json.py -msgid "An automated military turret. It lacks an integrated weapon." -msgstr "軍用タレットです。内蔵銃器が抜き取られています。" - -#. ~ Description for disarmed advanced turret -#: lang/json/TOOL_from_json.py -msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "改良型タレットです。内蔵銃器が抜き取られています。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 9mm defense turret" -msgid_plural "inactive 9mm defense turrets" -msgstr[0] "タレット(9mm/停止)" - -#. ~ Description for inactive 9mm defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 9mm defense turret. Up to 100 standard 9mm rounds will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"停止している防衛用9mmタレットです。起動すると内部に保管されている最大100発の標準9mm弾薬が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive shotgun defense turret" -msgid_plural "inactive shotgun defense turrets" -msgstr[0] "タレット(ショットガン/停止)" - -#. ~ Description for inactive shotgun defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive shotgun defense turret. Up to 100 standard 12ga shells will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"停止している防衛用ショットガンタレットです。起動すると内部に保管されている最大100発のショットガン用12ゲージ散弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riotcontrol turret. Up to 50 standard 40mm less-than-lethal " -"beanbag canisters will be automatically loaded from your inventory into the " -"turret upon activation. Place the turret and it will ID you as friendly " -"with its advanced IFF software. Consult your safety manual in the event of " -"a malfunction." -msgstr "" -"停止している暴動鎮圧タレットです。起動すると内部に保管されている最大50発の非致死性40mmビーンバッグ弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riot control turret. Up to 50 standard 40mm teargas canisters " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"停止している暴動鎮圧タレットです。起動すると内部に保管されている最大50発の40mm催涙擲弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 5.56mm military turret" -msgid_plural "inactive 5.56mm military turrets" -msgstr[0] "軍用タレット(5.56mm/停止)" - -#. ~ Description for inactive 5.56mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 5.56mm military turret. Up to 100 standard 5.56mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"停止している軍用5.56mmタレットです。起動すると内部に保管されている最大100発の標準5.56mmNATO弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 7.62mm military turret" -msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "軍用タレット(7.62mm/停止)" - -#. ~ Description for inactive 7.62mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 7.62mm military turret. Up to 100 standard 7.62mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"停止している軍用7.62mmタレットです。起動すると内部に保管されている最大100発の標準7.62mmNATO弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 50 caliber military turret" -msgid_plural "inactive 50 caliber military turrets" -msgstr[0] "軍用タレット(.50口径/停止)" - -#. ~ Description for inactive 50 caliber military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 50 caliber military turret. Up to 100 standard 50 caliber bmg " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"停止している軍用.50口径タレットです。起動すると内部に保管されている最大100発の標準.50口径BMG弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military needle turret" -msgid_plural "inactive military needle turrets" -msgstr[0] "軍用タレット(矢弾/停止)" - -#. ~ Description for inactive military needle turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced needle turret. Up to 100 standard 5x50mm flechette " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"停止している軍用矢弾タレットです。起動すると内部に保管されている最大100発の5x50mm矢弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military 8x40mm turret" -msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "軍用タレット(8x40mm/停止)" - -#. ~ Description for inactive military 8x40mm turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced 8x40mm turret. Up to 100 standard 8x40mm caseless " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"停止している軍用8x40mmタレットです。起動すると内部に保管されている最大100発の8x40mmケースレス弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military 40mm grenade turret" -msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "軍用タレット(40mm擲弾/停止)" - -#. ~ Description for inactive military 40mm grenade turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive military grenade turret. Up to 50 standard 40mm fragmentation " -"grenades will be automatically loaded from your inventory into the turret " -"upon activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"停止している軍用擲弾タレットです。起動すると内部に保管されている最大50発の40mm破片擲弾が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military flamethrower turret" -msgid_plural "inactive military flamethrower turrets" -msgstr[0] "軍用火炎放射タレット(停止)" - -#. ~ Description for inactive military flamethrower turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive flame turret. Up to 100 units of napalm will be automatically " -"loaded from your inventory into the turret upon activation. Place the " -"turret and it will ID you as friendly with its advanced IFF software. " -"Consult your safety manual in the event of a malfunction." -msgstr "" -"停止している火炎放射タレットです。起動すると内部に保管されている最大100単位のナパームが自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced laser turret" -msgid_plural "inactive advanced laser turrets" -msgstr[0] "レーザータレット(停止)" - -#. ~ Description for inactive advanced laser turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced laser turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"停止している改良型レーザータレットです。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced plasma turret" -msgid_plural "inactive advanced plasma turrets" -msgstr[0] "プラズマタレット(停止)" - -#. ~ Description for inactive advanced plasma turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced plasma turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"停止している改良型プラズマタレットです。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced railgun turret" -msgid_plural "inactive advanced railgun turrets" -msgstr[0] "レールガンタレット(停止)" - -#. ~ Description for inactive advanced railgun turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced railgun turret. Up to 50 standard rail projectiles " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"停止している改良型レールガンタレットです。起動すると内部に保管されている最大50発のレールが自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced acid turret" -msgid_plural "inactive advanced acid turrets" -msgstr[0] "改良型強酸放射タレット(停止)" - -#. ~ Description for inactive advanced acid turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced acid turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"停止している改良型強酸放射タレットです。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced EMP turret" -msgid_plural "inactive advanced EMP turrets" -msgstr[0] "改良型EMPタレット(停止)" - -#. ~ Description for inactive advanced EMP turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced EMP turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"停止している改良型EMPタレットです。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced electro turret" -msgid_plural "inactive advanced electro turrets" -msgstr[0] "改良型電撃タレット(停止)" - -#. ~ Description for inactive advanced electro turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced electro turret. Place the turret and it will ID you as" -" friendly with its advanced IFF software. Consult your safety manual in the" -" event of a malfunction." -msgstr "" -"停止している改良型電撃タレットです。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "garden gnome" -msgid_plural "garden gnomes" -msgstr[0] "ガーデンノーム" - -#. ~ Description for garden gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. You can place him in your " -"garden or elsewhere." -msgstr "完全に無害な普通のガーデンノームです。自宅の庭などに設置できます。" - -#: lang/json/TOOL_from_json.py -msgid "gaurdin gnome" -msgid_plural "gaurdin gnomes" -msgstr[0] "ガーディアンノーム" - -#. ~ Description for gaurdin gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. He holds up to 100 rounds of" -" 9mm ammo." -msgstr "完全に無害な普通のガーディアンノームです。9mm弾薬を100発装填できます。" - -#: lang/json/TOOL_from_json.py -msgid "small batch of curdling milk" -msgid_plural "small batches of curdling milk" -msgstr[0] "凝乳(小)" - -#. ~ Use action msg for {'str': 'small batch of curdling milk', 'str_pl': -#. 'small batches of curdling milk'}. -#. ~ Use action msg for {'str': 'batch of curdling milk', 'str_pl': 'batches -#. of curdling milk'}. -#. ~ Use action msg for {'str': 'large batch of curdling milk', 'str_pl': -#. 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "" -"The milk appears to have finished curdling, and is ready for further " -"processing. Checking on it has exposed the mixture to the atmosphere." -msgstr "凝結が終わりました。次の工程に進めることができます。この腐敗しやすい混合物は既に空気に触れています。注意が必要です。" - -#. ~ Use action not_ready_msg for {'str': 'small batch of curdling milk', -#. 'str_pl': 'small batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'batch of curdling milk', 'str_pl': -#. 'batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'large batch of curdling milk', -#. 'str_pl': 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "The milk is still curdling." -msgstr "まだ凝結が終わっていません。" - -#. ~ Description for {'str': 'small batch of curdling milk', 'str_pl': 'small -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed small waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "乳を詰めて密封した小さな革の水筒です。酢と天然レンネットを加えて凝結を進行させています。凝結が終わるとチーズの原型である凝乳になります。" - -#: lang/json/TOOL_from_json.py -msgid "batch of curdling milk" -msgid_plural "batches of curdling milk" -msgstr[0] "凝乳(中)" - -#. ~ Description for {'str': 'batch of curdling milk', 'str_pl': 'batches of -#. curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed waterskin filled with milk that is undergoing the process to become" -" a crude form of cheese, having had vinegar and natural rennet added." -msgstr "乳を詰めて密封した革の水筒です。酢と天然レンネットを加えて凝結を進行させています。凝結が終わるとチーズの原型である凝乳になります。" - -#: lang/json/TOOL_from_json.py -msgid "large batch of curdling milk" -msgid_plural "large batches of curdling milk" -msgstr[0] "凝乳(大)" - -#. ~ Description for {'str': 'large batch of curdling milk', 'str_pl': 'large -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed large waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "乳を詰めて密封した大きな革の水筒です。酢と天然レンネットを加えて凝結を進行させています。凝結が終わるとチーズの原型である凝乳になります。" - -#: lang/json/TOOL_from_json.py -msgid "heavy snare kit" -msgid_plural "heavy snare kits" -msgstr[0] "強化くくり罠" - -#. ~ Use action done_message for heavy snare kit. -#. ~ Use action done_message for light snare kit. -#: lang/json/TOOL_from_json.py -msgid "You set the snare trap." -msgstr "くくり罠を設置しました。" - -#. ~ Description for heavy snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a rope noose and a snare " -"trigger. It requires a tree nearby. It is effective at trapping monsters." -msgstr "輪縄とスネアトリガーで構成されている罠の一式です。設置場所の近くに木が必要です。効果的に対象を捕獲できます。" - -#: lang/json/TOOL_from_json.py -msgid "light snare kit" -msgid_plural "light snare kits" -msgstr[0] "くくり罠" - -#. ~ Description for light snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a string noose and a snare " -"trigger. It requires a young tree nearby. It is effective at trapping and " -"killing some small animals." -msgstr "輪縄とスネアトリガーで構成されている罠の一式です。設置場所の近くに若木が必要です。効果的に対象を捕獲(小動物であれば殺害)できます。" - -#: lang/json/TOOL_from_json.py -msgid "snare trigger" -msgid_plural "snare triggers" -msgstr[0] "スネアトリガー" - -#. ~ Description for snare trigger -#: lang/json/TOOL_from_json.py -msgid "" -"This is a stick that has been cut into a trigger mechanism for a snare trap." -msgstr "くくり罠として機能するように木を削った物です。" - -#. ~ Description for Laevateinn -#: lang/json/TOOL_from_json.py -msgid "" -"A replica of Laevateinn, the sword of Freyr. It is rumored to be able to " -"fight by itself. It is decorated with gold and silver ornaments." -msgstr "レーヴァテインと呼ばれる女神フレイヤの剣のレプリカです。手を離れても勝手に戦うと言われています。金や銀の装飾が施されています。" - -#: lang/json/TOOL_from_json.py -msgid "inactive craftbuddy" -msgid_plural "inactive craftbuddies" -msgstr[0] "クラフトバディ(停止)" - -#. ~ Description for {'str': 'inactive craftbuddy', 'str_pl': 'inactive -#. craftbuddies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A robot crafting assistant. Useable in its current state as a portable " -"workbench, or deployable as a traveling companion." -msgstr "製作支援ロボットです。現在の状態では持ち運び可能な作業台として使用でき、起動すれば自動的に追従します。" - -#. ~ Description for light auto armor -#. ~ Description for basic auto armor -#. ~ Description for heavy auto armor -#: lang/json/TOOL_from_json.py -msgid "" -"A set of light power armor fitted with an AI core for automated use. " -"Activate it to deploy the robot or disassemble it to use as armor." -msgstr "AIコアを備えた自律式パワーアーマーです。使用すると起動してロボットとして配備され、分解すれば防具として着用できます。" - -#: lang/json/TOOL_from_json.py -msgid "basic auto armor" -msgid_plural "basic auto armors" -msgstr[0] "オートパワーアーマー" - -#: lang/json/TOOL_from_json.py -msgid "inactive hack" -msgid_plural "inactive hacks" -msgstr[0] "マンハック(停止)" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating lantern" -msgid_plural "inactive floating lanterns" -msgstr[0] "マンハック(光源/停止)" - -#. ~ Use action friendly_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "マンハック(光源)が飛び立ち、周辺を監視し始めました!" - -#. ~ Use action hostile_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the lantern." -msgstr "マンハック(照明)のプログラムに間違いがあったようです。" - -#. ~ Description for inactive floating lantern -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive floating lantern, a fist-sized robots that flies through the air" -" and illuminates its surroundings with bright LEDs. The lantern is non " -"aggressive and has no means of attack. Activate this item to deploy the " -"salvaged robot." -msgstr "" -"空中を浮遊しながら周囲を明るいLEDライトで照らす、起動していない拳大のロボットです。このロボットは攻撃的ではなく、こちらから攻撃する意味もありません。使用するとロボットが起動し飛び立ちます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive distract-o-hack" -msgid_plural "inactive distract-o-hacks" -msgstr[0] "マンハック(陽動/停止)" - -#. ~ Use action friendly_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "マンハック(陽動)はが飛び立ち、火花を散らしました!" - -#. ~ Use action hostile_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the distract-o-hack!" -msgstr "マンハック(陽動)のプログラムに間違いがあったようです。" - -#. ~ Description for inactive distract-o-hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive distract-o-hack, a fist-sized robot that flies through the air " -"emitting noise, smoke, and sparks. The salvaged robot has no weapons, but " -"will harass hostile targets to draw their attention. Activate this item to " -"deploy the robot. It cannot be recovered once activated." -msgstr "" -"不規則に飛び回りながら騒音や煙や火花をまき散らす、起動していない拳大のロボットです。このロボットに武器は搭載されていませんが、稼働すると敵の注意を惹くように動きます。使用するとロボットが起動しますが、一度起動すると再度停止できません。" - -#: lang/json/TOOL_from_json.py -msgid "inactive arson hack" -msgid_plural "inactive arson hacks" -msgstr[0] "マンハック(火炎/停止)" - -#. ~ Use action friendly_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "The arson hack flies from your hand! Get clear!" -msgstr "マンハック(火災)が飛び立ちました!この場から離れましょう!" - -#. ~ Use action hostile_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the arson hack! Run!" -msgstr "マンハック(火炎)のプログラムに間違いがあったようです!逃げましょう!" - -#. ~ Description for inactive arson hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive arson hack, a fist-sized robot that flies through the air " -"chaotically spreading deadly fires. The salvaged robot has no weapons, but " -"will emit intermittent bursts of flame as it moves toward hostile targets. " -"Activate this item to deploy the robot. It cannot be recovered once " -"activated." -msgstr "" -"飛び回りながら周囲を燃やし尽くす、起動していない拳大のロボットです。このロボットに武器は搭載されていませんが、稼働すると炎をまき散らしながら敵に向かっていきます。使用するとロボットが起動しますが、一度起動すると再度停止できません。" - -#: lang/json/TOOL_from_json.py -msgid "inactive spore hack" -msgid_plural "inactive spore hacks" -msgstr[0] "マンハック(真菌/停止)" - -#. ~ Use action friendly_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "The spore hack flies from your hand!" -msgstr "マンハック(真菌)が飛び立ちました!" - -#. ~ Use action hostile_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the spore hack!" -msgstr "マンハック(真菌)のプログラムに間違いがあったようです!" - -#. ~ Description for inactive spore hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive spore hack, a fist-sized robot that flies through the air " -"spreading alien contaminants. The robot will dust hostile targets, and " -"intermittently cover the terrain with puffs of fungal spores. Activate this" -" item to deploy the robot." -msgstr "" -"飛び回りながら外宇宙の物質をまき散らす、起動していない拳大のロボットです。このロボットは断続的に胞子を発生させながら飛行し、敵対的な標的に胞子を噴きつけます。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive water turret" -msgid_plural "inactive water turrets" -msgstr[0] "タレット(放水/停止)" - -#. ~ Description for inactive water turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive watercannon defense turret. Up to 1000 units of water will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. There is no safety manual." -msgstr "" -"停止している放水タレットです。起動すると内部に保管されている最大1000単位の水が自動的に装填されます。タレットを設置するとIFFソフトウェアの初期設定が行われ、設置者を味方として登録します。誤作動があった場合は安全マニュアルを参照してください。" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating heater" -msgid_plural "inactive floating heaters" -msgstr[0] "暖房ロボット(停止)" - -#. ~ Description for inactive floating heater -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space. It is non-aggressive " -"and has no weapons systems. Activate this item to deploy the robot." -msgstr "" -"浮遊するヒーターに改造した停止中の監視ロボットです。暖気を噴出し続けて密閉された空間を暖めます。積極的に敵を攻撃することはなく、武器も搭載していません。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating furnace" -msgid_plural "inactive floating furnaces" -msgstr[0] "熱供給ロボット(停止)" - -#. ~ Description for inactive floating furnace -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. It is non-" -"aggressive and has no weapons systems. Activate this item to deploy the " -"robot." -msgstr "" -"浮遊するヒーターに改造した停止中の監視ロボットです。非常に熱い空気を噴出し続けて密閉された空間を加熱します。積極的に敵を攻撃することはなく、武器も搭載していません。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive burning eye" -msgid_plural "inactive burning eyes" -msgstr[0] "レーザーロボット(停止)" - -#. ~ Description for inactive burning eye -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon which it will use on hostile " -"targets. Activate this item to deploy the robot." -msgstr "敵対的な標的に対して使うレーザー銃を搭載した監視ロボットです。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive utilibot" -msgid_plural "inactive utilibots" -msgstr[0] "多目的ロボット(停止)" - -#: lang/json/TOOL_from_json.py -msgid "inactive blob breeder" -msgid_plural "inactive blob breeders" -msgstr[0] "ブロブ生成ロボット(停止)" - -#. ~ Description for inactive blob breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It is non aggressive and has no weapon systems. You can activate " -"this item to deploy the robot and begin the incubation process, but you " -"probably shouldn't." -msgstr "" -"外宇宙生物であるブロブを生成するように改造した多目的ロボットです。積極的に敵を攻撃することはなく、武器も搭載していません。使用するとロボットが起動して生成プロセスを開始しますが、止めておいた方が良さそうです。" - -#: lang/json/TOOL_from_json.py -msgid "inactive slime breeder" -msgid_plural "inactive slime breeders" -msgstr[0] "スライム生成ロボット(停止)" - -#. ~ Description for inactive slime breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob, and upgraded to only produce friendly slimes. It is non aggressive " -"and has no weapon systems. You can activate this item to deploy the robot " -"and begin the incubation process." -msgstr "" -"外宇宙生物であるブロブを生成するように改造した多目的ロボットを、友好的なスライムを生成するように改良したモデルです。積極的に敵を攻撃することはなく、武器も搭載していません。使用するとロボットが起動して生成プロセスを開始します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive digestron" -msgid_plural "inactive digestrons" -msgstr[0] "ごみ処理ロボット(停止)" - -#. ~ Description for inactive digestron -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. It is non aggressive and has no weapon systems. Activate " -"this item to deploy the robot." -msgstr "" -"自動で地面を掃除するように改造した多目的ロボットです。地面に落ちた物を吸い取り、内部の酸性液で溶かします。積極的に敵を攻撃することはなく、武器も搭載していません。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive bee-bot" -msgid_plural "inactive bee-bots" -msgstr[0] "養蜂ロボット(停止)" - -#. ~ Description for inactive bee-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers segments of fresh honey comb. It protects" -" the insect colony with a mechanical crossbow mounted to its chassis. " -"Activate this item, with wooden bolts in your inventory, to load and deploy " -"the robot." -msgstr "" -"ハチの巣箱を定期的に掃除して巣を採集するように改造した多目的ロボットです。フレームに内蔵されたクロスボウを使ってハチを外敵から守ります。ボルト(木)を所持した状態で起動すると、ロボットが起動しボルトが装填されます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive medibot" -msgid_plural "inactive medibots" -msgstr[0] "医療ロボット(停止)" - -#: lang/json/TOOL_from_json.py -msgid "inactive assassin robot" -msgid_plural "inactive assassin robots" -msgstr[0] "暗殺ロボット(停止)" - -#. ~ Description for inactive assassin robot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. It will attack " -"hostile targets with a set of blades and a toxic needle. Activate this item" -" to deploy the robot." -msgstr "殺人機械に改造した医療ロボットです。刃と毒針を使って敵対的な標的を攻撃します。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive elixirator" -msgid_plural "inactive elixirators" -msgstr[0] "変異ロボット(停止)" - -#. ~ Description for inactive elixirator -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot with its internal pharma-fabricators repurposed to " -"produce mutagen. Activate this item to deploy the robot." -msgstr "変異原製造機構が内蔵された医療ロボットです。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive party bot" -msgid_plural "inactive party bots" -msgstr[0] "パーティーロボット(停止)" - -#. ~ Description for inactive party bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Activate this item to get the party " -"started." -msgstr "内部にマリファナを詰め込み、色とりどりの点滅灯で飾り付け、ダンスプログラムを内蔵した医療ロボットです。使用するとパーティーが始まります。" - -#: lang/json/TOOL_from_json.py -msgid "inactive rat snatcher" -msgid_plural "inactive rat snatchers" -msgstr[0] "狩猟ロボット(停止)" - -#. ~ Description for inactive rat snatcher -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It attacks targets" -" with pincers and an integrated tazer. Activate this item to deploy the " -"robot." -msgstr "小動物を狩れるように改造した高速ボットです。ハサミのような武器と内蔵されたテーザー銃で標的を攻撃します。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive grab-bot" -msgid_plural "inactive grab-bots" -msgstr[0] "捕獲ロボット(停止)" - -#. ~ Description for inactive grab-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. " -"Activate this item to deploy the robot." -msgstr "敵を掴んで拘束できるように改造した高速ボットです。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive pest hunter" -msgid_plural "inactive pest hunters" -msgstr[0] "害獣駆除ロボット(停止)" - -#. ~ Description for inactive pest hunter -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " -"this item, with ammo in your inventory, to load and deploy the robot." -msgstr "8mm弾を発射する内蔵銃器を取り付けた高速ボットです。弾薬を所持した状態で使用すると、ロボットが起動して弾薬が装填されます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive cyborg" -msgid_plural "inactive cyborgs" -msgstr[0] "サイボーグ(停止)" - -#: lang/json/TOOL_from_json.py -msgid "inactive necrotic cyborg" -msgid_plural "inactive necrotic cyborgs" -msgstr[0] "サイボーグゾンビ(停止)" - -#. ~ Description for inactive necrotic cyborg -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Activate this " -"item to deploy the robot." -msgstr "" -"頭部をゾンビマンサーのものと挿げ替えたサイボーグです。頭部はまだ活動しており、ゾンビを復活させる能力を持っています。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive defense robot" -msgid_plural "inactive defense robots" -msgstr[0] "防衛ロボット(停止)" - -#: lang/json/TOOL_from_json.py -msgid "inactive junkyard cowboy" -msgid_plural "inactive junkyard cowboys" -msgstr[0] "ジャンク・カウボーイ(停止)" - -#. ~ Description for inactive junkyard cowboy -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "ショットガンと2つの丸鋸を取り付けた防御ロボットです。弾薬を所持した状態で使用すると、ロボットが起動して弾薬が装填されます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive shortcircuit samurai" -msgid_plural "inactive shortcircuit samurais" -msgstr[0] "ロウデン・サムライ(停止)" - -#. ~ Description for inactive shortcircuit samurai -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with an integrated tazer and two " -"electrified blades. Activate this item to deploy the robot." -msgstr "電流が流れる2本の刃を取り付けた防御ロボットです。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive slapdash paladin" -msgid_plural "inactive slapdash paladins" -msgstr[0] "マルコゲ・パラディン(停止)" - -#. ~ Description for inactive slapdash paladin -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. Activate this item, with gasoline in your inventory, to" -" load and deploy the robot… preferably far from anything flammable" -msgstr "" -"手製の火炎放射器と熱く熱した鋭い2本の刃を取り付けた防衛ロボットです。ガソリンを所持した状態で使用すると、ロボットが起動して弾薬が装填されますが...可燃性物質から離れた場所で起動した方が良さそうです。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military robot" -msgid_plural "inactive military robots" -msgstr[0] "軍用ロボット(停止)" - -#. ~ Description for inactive military robot -#: lang/json/TOOL_from_json.py -msgid "" -"An unpowered military robot fitted with an integrated 7.62 firearm and " -"electric prod. Activate this item, with ammo in your inventory, to load and" -" deploy the robot." -msgstr "7.62mm銃器を内蔵した停止中の軍用ロボットです。弾薬を所持した状態で使用すると、ロボットが起動して弾薬が装填されます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-guardian" -msgid_plural "inactive robo-guardians" -msgstr[0] "ロボガーディアン(停止)" - -#. ~ Description for inactive robo-guardian -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "2丁の9mm銃器を取り付けた軍用ロボットです。弾薬を所持した状態で使用すると、ロボットが起動して弾薬が装填されます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive robote deluxe" -msgid_plural "inactive robote deluxes" -msgstr[0] "高級ロボット(停止)" - -#. ~ Description for inactive robote deluxe -#: lang/json/TOOL_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style. Activate this item, with ammo in your inventory, to " -"load and deploy the robot." -msgstr "" -"ロボットに2丁の9mm銃器を取り付け、金メッキを施しダイヤモンドをちりばめました。大変動の世を贅沢に生き残りたい人に適した、豪勢で高級なロボットです。弾薬を所持した状態で使用すると、ロボットが起動して弾薬が装填されます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-protector" -msgid_plural "inactive robo-protectors" -msgstr[0] "ロボプロテクター(停止)" - -#. ~ Description for inactive robo-protector -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "5.56mmライフルを取り付けた軍用ロボットです。弾薬を所持した状態で使用すると、ロボットが起動して弾薬が装填されます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-defender" -msgid_plural "inactive robo-defenders" -msgstr[0] "ロボディフェンダー(停止)" - -#. ~ Description for inactive robo-defender -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Activate" -" this item, with ammo in your inventory, to load and deploy the robot." -msgstr ".50口径BMG弾を発射するライフルを取り付けた軍用ロボットです。弾薬を所持した状態で使用すると、ロボットが起動して弾薬が装填されます。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced robot" -msgid_plural "inactive advanced robots" -msgstr[0] "改良型ロボット(停止)" - -#: lang/json/TOOL_from_json.py -msgid "inactive glittering lady" -msgid_plural "inactive glittering ladies" -msgstr[0] "シャイン・レディ(停止)" - -#. ~ Description for {'str': 'inactive glittering lady', 'str_pl': 'inactive -#. glittering ladies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It attacks hostile targets with its two integral lasers and blinding " -"flashes. Activate this item to deploy the robot." -msgstr "" -"破滅の輝きをもたらす改造が施された改良型ロボットです。2丁のレーザーガンと閃光発生装置で敵対的な標的を攻撃します。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive bitter spinster" -msgid_plural "inactive bitter spinsters" -msgstr[0] "ビター・オールドレディ(停止)" - -#. ~ Description for inactive bitter spinster -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " -"to deploy the robot." -msgstr "腐食性の怪物に改造した軍用ロボットです。強酸生成装置で作られた酸を発射、散布する機能が内蔵されています。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive chickenwalker" -msgid_plural "inactive chickenwalkers" -msgstr[0] "チキンウォーカー(停止)" - -#: lang/json/TOOL_from_json.py -msgid "inactive chainsaw horror" -msgid_plural "inactive chainsaw horrors" -msgstr[0] "チェーンソー・ホラー(停止)" - -#. ~ Description for inactive chainsaw horror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of whirring " -"chainsaws and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"頭蓋骨やスパイクで装飾を施した恐ろしい改造チキンウォーカーです。唸る複数のチェーンソーと耳障りな大音量で敵対的な標的を攻撃します。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive screeching terror" -msgid_plural "inactive screeching terrors" -msgstr[0] "スクリーチ・テラー(停止)" - -#. ~ Description for inactive screeching terror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of piston-driven " -"lances and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"頭蓋骨やスパイクで装飾を施した恐ろしい改造チキンウォーカーです。ピストン駆動する2本の槍と耳障りな大音量で敵対的な標的を攻撃します。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive hooked nightmare" -msgid_plural "inactive hooked nightmares" -msgstr[0] "フック・ナイトメア(停止)" - -#. ~ Description for inactive hooked nightmare -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of spinning hooks" -" on chains and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"頭蓋骨やスパイクで装飾を施した恐ろしい改造チキンウォーカーです。複数のフック付きチェーンと耳障りな大音量で敵対的な標的を攻撃します。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive tankbot" -msgid_plural "inactive tankbots" -msgstr[0] "無人戦車(停止)" - -#: lang/json/TOOL_from_json.py -msgid "inactive fist king" -msgid_plural "inactive fist kings" -msgstr[0] "フィスト・キング(停止)" - -#. ~ Description for inactive fist king -#. ~ Description for inactive atomic sultan -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Activate this " -"item to deploy the robot." -msgstr "建築物などを粉砕する時に使う強力な空圧式ハンマーを取り付けた無人戦車です。使用するとロボットが起動します。" - -#: lang/json/TOOL_from_json.py -msgid "inactive atomic sultan" -msgid_plural "inactive atomic sultans" -msgstr[0] "アトミック・スルタン(停止)" - -#: lang/json/TOOL_from_json.py -msgid "active glowball" -msgid_plural "active glowballs" -msgstr[0] "グロウボール(起動)" - -#. ~ Use action msg for active glowball. -#: lang/json/TOOL_from_json.py -msgid "The glowball goes dim." -msgstr "グロウボールの光が消えました。" - -#. ~ Description for active glowball -#: lang/json/TOOL_from_json.py -msgid "A small plastic ball filled with glowing chemicals." -msgstr "光を放つ化学物質が入ったプラスチック製の小さなボールです。" - #: lang/json/TOOL_from_json.py msgid "TEST rag" msgid_plural "TEST rags" @@ -88066,435 +85845,24 @@ msgid_plural "TEST scissor jacks" msgstr[0] "シザースジャッキ(テスト)" #: lang/json/TOOL_from_json.py -msgid "growing blob frame" -msgid_plural "growing blob frames" -msgstr[0] "ブロブフレーム(成長)" - -#. ~ Use action msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "" -"You test the frame; It wiggles, and then collapses into an lump of goo." -msgstr "フレームの強度を調べました。小刻みに震えた後、ドロドロに崩れてしまいました。" - -#. ~ Use action not_ready_msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "フレームの強度を調べました。簡単に崩れてしまったので、まだ強度が足りないようです。" - -#. ~ Description for {'str': 'growing blob frame'} -#: lang/json/TOOL_from_json.py -msgid "" -"A growing vehicle frame made of bone. It's coated in a thick layer of ooze," -" though there's greater amounts on the bindings. It's not quite tough " -"enough to use." -msgstr "" -"骨で作られた、成長する車両フレームです。零れ落ちそうなほど沢山の泥のような物質で全体が厚く覆われています。まだ車両フレームとして使えるほど頑丈ではありません。" - -#: lang/json/TOOL_from_json.py -msgid "growing keratinous mass" -msgid_plural "growing keratinous mass" -msgstr[0] "角質塊(成長)" - -#. ~ Use action msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action msg for {'str_sp': 'growing ooze'}. -#. ~ Use action msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "The blob balloons to full size." -msgstr "ブロブは最大まで膨れ上がりました。" - -#. ~ Use action not_ready_msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing ooze'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "Whatever it's doing, it's not done yet." -msgstr "何をしているのかはともかく、まだ終わっていないようです。" - -#. ~ Description for {'str_sp': 'growing keratinous mass'} -#. ~ Description for {'str_sp': 'growing beaded mass'} -#. ~ Description for {'str_sp': 'growing icy mass'} -#. ~ Description for {'str_sp': 'growing cold mass'} -#. ~ Description for {'str_sp': 'growing hairy mass'} -#. ~ Description for {'str_sp': 'growing gelatinous mass'} -#. ~ Description for {'str_sp': 'growing glowing mass'} -#. ~ Description for {'str_sp': 'growing gray mass'} -#. ~ Description for {'str_sp': 'growing spike-studded mass'} -#. ~ Description for {'str_sp': 'growing gasoline-laced mass'} -#. ~ Description for {'str_sp': 'growing acidic mass'} -#. ~ Description for {'str_sp': 'growing ooze'} -#. ~ Description for {'str_sp': 'growing mass of tendrils'} -#. ~ Description for {'str_sp': 'growing spiked mass'} -#. ~ Description for {'str_sp': 'growing spiny mass'} -#. ~ Description for {'str_sp': 'growing spiky mass'} -#. ~ Description for {'str_sp': 'growing bright mass'} -#. ~ Description for {'str_sp': 'growing viscous mass'} -#. ~ Description for {'str_sp': 'growing warm mass'} -#. ~ Description for {'str_sp': 'growing electrified mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Not quite fully grown, this blob requires nourishment to fully develop." -msgstr "まだ完全には成長しきっていないようです。もっと養分が必要です。" - -#: lang/json/TOOL_from_json.py -msgid "growing beaded mass" -msgid_plural "growing beaded mass" -msgstr[0] "数珠状塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing icy mass" -msgid_plural "growing icy mass" -msgstr[0] "氷結塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "gelacier" -msgid_plural "gelaciers" -msgstr[0] "アイスブロブ" - -#. ~ Description for {'str': 'gelacier'} -#: lang/json/TOOL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It seems pliable enough to pull apart…" -msgstr "" -"生物学的に見ても奇妙な事ですが、このブロブの体内は過冷却状態であるにもかかわらず、低密度の流体として凍らずに従来通りの伸縮性を保持しています。定期的に霜の欠片が剥がれ落ちています。簡単に引き剥がせそうです..." - -#: lang/json/TOOL_from_json.py -msgid "growing cold mass" -msgid_plural "growing cold mass" -msgstr[0] "低温塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing hairy mass" -msgid_plural "growing hairy mass" -msgstr[0] "毛様塊(成長)" - -#. ~ Use action msg for {'str_sp': 'gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'gray mass'}. -#. ~ Use action msg for {'str_sp': 'oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "You fumble as the blob starts to multiply rapidly!" -msgstr "何かをしくじって、ブロブが急激に増殖し始めました!" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An experiment gone horribly right. While the original intent was to combine" -" the structure of a bone frame with the impact absorption of the blob; the " -"blob seems to have completely consumed the bone. Instead, what remains is " -"an amorphous mass of goo with what seems to be numerous thin filaments " -"floating within. With a bit of effort, you can grasp the fibers and stretch" -" the mass into a multitude of shapes. The mass is able to retain the new " -"shape even under force, though the mass yields at your touch. With enough " -"strength, you think you can pull it apart." -msgstr "" -"実験は大成功です。当初は骨製フレームにブロブの衝撃吸収力を組み合わせることを意図していましたが、ブロブが骨を完全に消化してしまったようです。その一方で、不定形の塊の内部には多数の細い糸のような物体が浮いています。少し力を加えるだけで、繊維質を掴んでフレームを自由な形に伸ばすことができます。変化した形状はそのまま維持され、触ると自然に押し戻されます。強い力を加えれば、バラバラに引き離すこともできそうです。" - -#: lang/json/TOOL_from_json.py -msgid "multiplying gelatinous mass" -msgid_plural "multiplying gelatinous mass" -msgstr[0] "ゼラチン塊(増殖)" - -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying oozing mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "A blob splits and bounces away!" -msgstr "ブロブがちぎれて飛んでいきました!" - -#. ~ Description for {'str_sp': 'multiplying gelatinous mass'} -#. ~ Description for {'str_sp': 'multiplying gray mass'} -#. ~ Description for {'str_sp': 'multiplying oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Having been fed, this blob is now rapidly multiplying into other copies of " -"itself; extremely noisy copies! And even worse, it's stuck to your hands " -"until whatever it's doing is done! Catch those blobs before they bring in " -"every zombie for miles!" -msgstr "" -"このブロブは、今も自身のコピーをネズミ算式に供給し続けています。なんて騒がしいんでしょう!さらに悪いことに、何とかして増殖を止めなければ、ブロブが手にこびりついてきます!街中のゾンビが取り込んでしまう前に、全てのブロブを捕まえましょう!" - -#: lang/json/TOOL_from_json.py -msgid "growing gelatinous mass" -msgid_plural "growing gelatinous mass" -msgstr[0] "ゼラチン塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing glowing mass" -msgid_plural "growing glowing mass" -msgstr[0] "発光塊(成長)" - -#. ~ Description for {'str_sp': 'gray mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"This internal structures of this creature have developed significantly. " -"While retaining the resilience and malleability of its once simpler form, it" -" has gained the considerable abilities of perception and stimulus response." -" When directly threatened, it is able to shift and alter its microfibers, " -"hardening its membrane to an almost steel-hard shell. You can still pull it" -" apart with enough force. It's also really gray." -msgstr "" -"この生物は内部構造が大幅に進化しました。一見単純な形状ながら弾力性と柔軟性を備え、知覚と刺激に対する応答を見せる能力も持っています。危険が迫ると体内のマイクロファイバーを変化させて、皮膜をまるで鋼のように硬い殻へと作り替えます。十分に強い力を加えれば分離することは可能です。体全体が灰色になっています。" - -#: lang/json/TOOL_from_json.py -msgid "multiplying gray mass" -msgid_plural "multiplying gray mass" -msgstr[0] "グレイ塊(増殖)" - -#: lang/json/TOOL_from_json.py -msgid "growing gray mass" -msgid_plural "growing gray mass" -msgstr[0] "グレイ塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing spike-studded mass" -msgid_plural "growing spike-studded mass" -msgstr[0] "棘状塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing gasoline-laced mass" -msgid_plural "growing gasoline-laced mass" -msgstr[0] "ガソリン混入塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing acidic mass" -msgid_plural "growing acidic mass" -msgstr[0] "酸性塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "oozing mass" -msgid_plural "oozing mass" -msgstr[0] "スライム塊" - -#. ~ Description for {'str_sp': 'oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An amorphous mass that has undergone a significant growth. In addition to " -"the increased amount of goo and sinuous filaments, it seems to have started " -"developing other internal structures. Like its smaller counterpart, it can " -"be shaped into various structures; albeit with significantly greater tensile" -" strength due to the increased number of supporting filaments. You believe " -"you can split it apart with enough force." -msgstr "" -"大きな進化を遂げた不定形の塊です。粘質としなやかな繊維質に加え、他にも何か体内に作り出そうとしているようです。より小さい固体同様、様々な構造に成形することができます。内部を支える繊維質によって伸長に対する強度が著しく上がったとはいえ、十分に強い力をかければ分離することはできるに違いありません。" - -#: lang/json/TOOL_from_json.py -msgid "multiplying oozing mass" -msgid_plural "multiplying oozing mass" -msgstr[0] "スライム塊(増殖)" - -#: lang/json/TOOL_from_json.py -msgid "growing ooze" -msgid_plural "growing ooze" -msgstr[0] "スライム塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing mass of tendrils" -msgid_plural "growing mass of tendrils" -msgstr[0] "蔦状塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing spiked mass" -msgid_plural "growing spiked mass" -msgstr[0] "先鋭塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing spiny mass" -msgid_plural "growing spiny mass" -msgstr[0] "突起塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing spiky mass" -msgid_plural "growing spiky mass" -msgstr[0] "釘状塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing bright mass" -msgid_plural "growing bright mass" -msgstr[0] "光輝塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing viscous mass" -msgid_plural "growing viscous mass" -msgstr[0] "粘着質塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing warm mass" -msgid_plural "growing warm mass" -msgstr[0] "温熱塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "growing electrified mass" -msgid_plural "growing electrified mass" -msgstr[0] "帯電塊(成長)" - -#: lang/json/TOOL_from_json.py -msgid "diamond cluster" -msgid_plural "diamond clusters" -msgstr[0] "ダイヤモンド塊" - -#. ~ Use action msg for {'str': 'diamond cluster'}. -#: lang/json/TOOL_from_json.py -msgid "The cluster comes apart in your hands." -msgstr "塊は手の中でバラバラになりました。" - -#. ~ Description for {'str': 'diamond cluster'} -#: lang/json/TOOL_from_json.py -msgid "" -"A cluster of artificial crystals that have broken off of a diamond matrix. " -"While the substance usually decays when separated from the catalyst; this " -"cluster seems to be self-sustaining by some unknown mechanism. " -msgstr "ダイヤモンド基板から外れた人工結晶の塊です。通常触媒から分離した物質は劣化しますが、この塊は何か未知の原理によって形状を保っています。" - -#: lang/json/TOOL_from_json.py -msgid "diamond matrix" -msgid_plural "diamond matrices" -msgstr[0] "ダイヤモンド基板" - -#. ~ Use action msg for {'str': 'diamond matrix', 'str_pl': 'diamond -#. matrices'}. -#: lang/json/TOOL_from_json.py -msgid "" -"Your senses dull as you gaze into the depths of this gemstone's center…" -msgstr "この宝石の中心部を覗き込むと、感覚が鈍るような気がします..." - -#. ~ Description for {'str': 'diamond matrix', 'str_pl': 'diamond matrices'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sparkling diamond with a dazzling spiral pattern. Small pieces of " -"glittering crystal form on the edges as you hold it." -msgstr "きらびやかなダイヤモンドが螺旋模様に並んでいます。手に持っている部分はキラキラ光る結晶の小片で縁取られています。" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex engine" -msgid_plural "vortex engines" -msgstr[0] "渦流エンジン" - -#. ~ Description for {'str': 'vortex engine'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allows it to be attached to a vehicle to render " -"it mobile." -msgstr "" -"簡単に言えば、箱に入った竜巻です。何の変哲もないこの容器の中に入っているのは、人間の技術革新の集大成としてのクリーンエネルギー、あるいは、地球上の文明を一掃してしまう大量破壊兵器、どちらとも言えるでしょう。容器の外部に付いた機構によって車両に取り付けて動力とすることが可能です。" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex generator" -msgid_plural "vortex generators" -msgstr[0] "発電機(渦流)" +msgid "test smartphone" +msgid_plural "test smartphones" +msgstr[0] "" -#. ~ Description for {'str': 'vortex generator'} +#. ~ Description for {'str': 'test smartphone'} #: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allow it to be hooked up to a battery to store " -"the power generated." +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." msgstr "" -"簡単に言えば、箱に入った竜巻です。何の変哲もないこの容器の中に入っているのは、人間の技術革新の集大成としてのクリーンエネルギー、あるいは、地球上の文明を一掃してしまう大量破壊兵器、どちらとも言えるでしょう。容器の外部に付いた機構により車両用バッテリーに取り付けることが可能です。" #: lang/json/TOOL_from_json.py -msgid "control chip" -msgid_plural "control chips" -msgstr[0] "制御チップ" +msgid "test matchbook" +msgid_plural "test matchbooks" +msgstr[0] "" -#. ~ Description for control chip +#. ~ Description for {'str': 'test matchbook'} #: lang/json/TOOL_from_json.py -msgid "" -"A small device, not bigger than a man's fist. It provides primitive " -"organisms with electric stimulation, reviving them and forcing them to obey " -"your commands. This version only works on blobs." +msgid "Test matches - when you must burn things, for science!" msgstr "" -"成人男性の拳サイズの装置です。電気刺激によって原始的な生物に活力を与え、強制的に制御します。この装置のバージョンではブロブのみに作用するようです。" - -#: lang/json/TOOL_from_json.py -msgid "dormant blob" -msgid_plural "dormant blobs" -msgstr[0] "ブロブ(休眠)" - -#. ~ Use action friendly_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "The blob becomes active and starts slithering around." -msgstr "ブロブは目覚め、辺りをずるずると這いまわりだしました。" - -#. ~ Use action hostile_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "You've made a terrible mistake, the blob is hostile!" -msgstr "致命的なミスを犯してしまったようです。ブロブは敵対的になりました!" - -#. ~ Description for dormant blob -#: lang/json/TOOL_from_json.py -msgid "" -"Several chunks of blob scraps, stuffed with a control chip and sewn back " -"together. A light shock from the UPS started the chip, bringing the blob " -"back to life. Use this item to wake up the blob." -msgstr "" -"制御チップを付けてひとつに縫い合わせたブロブの破片です。UPSで起動させたチップによって軽い刺激を与えることで、ブロブが蘇生する仕組みです。使用することでブロブを目覚めさせます。" - -#: lang/json/TOOL_from_json.py -msgid "dormant minion" -msgid_plural "dormant minions" -msgstr[0] "下僕(休眠)" - -#. ~ Use action friendly_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "The jabberwock climbs to its feet and shambles around." -msgstr "ジャバウォックは起き上がり、よろよろと歩きだしました。" - -#. ~ Use action hostile_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "" -"Something has gone wrong; after getting up the jabberwock lumbers toward you" -" menacingly!" -msgstr "何か間違えたようです。ジャバウォックは起き上がると、威嚇するようにあなたの方に向かってきました。" - -#. ~ Description for dormant minion -#: lang/json/TOOL_from_json.py -msgid "" -"Your very own undead servant. The blob controlling its body is in a state " -"of coma, awaiting your orders. Use this item to wake up the minion." -msgstr "あなただけのゾンビの下僕です。その体を操っているブロブは休眠状態であなたの命令を待っています。使用することで下僕を目覚めさせます。" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -88673,6 +86041,18 @@ msgid "" "very menacing." msgstr "かなり小型のホイールです。恐らくはセグウェイに使われていた物でしょう。" +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "スケートウィール" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "パンクな姿勢を感じさせる、非常に小さなプラスチック製の車輪です。これはローラースケート用に作られたものです。" + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" @@ -88751,164 +86131,66 @@ msgstr[0] "マナホイール" msgid "A column of mana energy that enables a floating disk to move." msgstr "浮遊円盤の移動を司るエネルギーの塊です。" -#: lang/json/WHEEL_from_json.py -msgid "Rubber Caterpillar Track" -msgid_plural "Rubber Caterpillar Tracks" -msgstr[0] "キャタピラ(ゴム)" - -#. ~ Description for {'str': 'Rubber Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of hard rubber tracks reinforced by stiff wire " -"held in place by a set of smaller wheels. Similar with what you might see " -"used on light construction vehicles. It's significantly stronger than " -"regular tires due to not being at risk of bursting; but is quite heavy." -msgstr "" -"短い強化硬質ゴムの履帯を繋げたものが、連動して回転する小さなタイヤによって固定されています。小型の建設車両に付いているキャタピラと同じもののようです。パンクする危険性が無く、通常のタイヤより丈夫ですが、その分重量は重くなっています。" - -#: lang/json/WHEEL_from_json.py -msgid "Steel Caterpillar Track" -msgid_plural "Steel Caterpillar Tracks" -msgstr[0] "キャタピラ(鋼)" - -#. ~ Description for {'str': 'Steel Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on large construction " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is very heavy." -msgstr "" -"短い鋼鉄製の履帯を繋げたものが、連動して回転する小さなタイヤによって固定されています。大型の建設車両に付いているキャタピラと同じもののようです。パンクする危険性が無く、通常のタイヤよりずっと丈夫ですが、その分重量はかなり重くなっています。" - -#: lang/json/WHEEL_from_json.py -msgid "Reinforced Caterpillar Track" -msgid_plural "Reinforced Caterpillar Tracks" -msgstr[0] "強化キャタピラ(鋼)" - -#. ~ Description for {'str': 'Reinforced Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on APCs and armored " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is extremely heavy." -msgstr "" -"短い鋼鉄製の履帯を繋げたものが、連動して回転する小さなタイヤによって固定されています。装甲人員運搬車や装甲車両に付いているキャタピラと同じもののようです。パンクする危険性が無く、通常のタイヤよりはるかに丈夫ですが、その分重量は非常に重くなっています。" - -#: lang/json/WHEEL_from_json.py -msgid "Gelatinous track" -msgid_plural "Gelatinous tracks" -msgstr[0] "キャタピラ(ゼラチン)" - -#. ~ Description for {'str': 'Gelatinous track'} -#. ~ Description for {'str': 'Oozing track'} -#. ~ Description for {'str': 'Gray track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of tracks created out of some of your monstrosity " -"blob based parts. Similar with what you might see used on light " -"construction vehicles. It's significantly stronger than regular tires due " -"to not being at risk of bursting; but is quite heavy." -msgstr "" -"奇怪なブロブから作られた部品を繋げて履帯にしたものです。小型の建設車両に付いているキャタピラと同じもののようです。パンクする危険性が無く、通常のタイヤより丈夫ですが、その分重量は重くなっています。" - -#: lang/json/WHEEL_from_json.py -msgid "Oozing track" -msgid_plural "Oozing tracks" -msgstr[0] "キャタピラ(スライム)" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "Gray track" -msgid_plural "Gray tracks" -msgstr[0] "キャタピラ(グレイ)" +#: lang/json/achievement_from_json.py +msgid "One down, billions to go…" +msgstr "ひとまず一体、残りは膨大..." -#: lang/json/WHEEL_from_json.py -msgid "gelacier wheel" -msgid_plural "gelacier wheels" -msgstr[0] "アイスブロブホイール" +#: lang/json/achievement_from_json.py +msgid "Rude awakening" +msgstr "不都合な現実" -#. ~ Description for {'str': 'gelacier wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It has formed itself into a wide, crude " -"wheel." -msgstr "" -"生物学的に見ても奇妙な事ですが、このブロブの体内は過冷却状態であるにもかかわらず、低密度の流体として凍らずに従来通りの伸縮性を保持しています。定期的に霜の欠片が剥がれ落ちています。引き離せるほど柔らかくなっているようです。幅の広い粗末なホイールの形になっています。" +#: lang/json/achievement_from_json.py +msgid "Decamate" +msgstr "一人十殺" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gelatinous wheel" -msgid_plural "gelatinous wheels" -msgstr[0] "ゼラチンホイール" +#: lang/json/achievement_from_json.py +msgid "Centinel" +msgstr "センチネル" -#. ~ Description for {'str': 'gelatinous wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gelatinous mass with water has resulted in something that appears " -"to be a cross between a wheel, an otherworldly abomination, and one of those" -" old squeezy toys." -msgstr "ゼラチン塊に水を充填したものは、ホイールと異界の化け物と古いゴム製のおもちゃを掛け合わせたような見た目です。" +#: lang/json/achievement_from_json.py +msgid "The first day of the rest of their unlives" +msgstr "死人の余生一日目" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gray wheel" -msgid_plural "gray wheels" -msgstr[0] "グレイホイール" +#: lang/json/achievement_from_json.py +msgid "Survive for a day and find a safe place to sleep" +msgstr "一日生き延びて安全な寝床を見つけました。" -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gray mass with water has resulted in something that appears to be " -"a cross between a wheel, an otherworldly abomination, and one of those old " -"squeezy toys." -msgstr "灰色塊に水を充填したものは、ホイールと異界の化け物と古いゴム製のおもちゃを掛け合わせたような見た目です。" +#: lang/json/achievement_from_json.py +msgid "Thank God it's Friday" +msgstr "花の金曜日" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "earthen roller" -msgid_plural "earthen rollers" -msgstr[0] "ブロブローラー" +#: lang/json/achievement_from_json.py +msgid "Survive for a week" +msgstr "一週間生き延びました。" -#. ~ Description for {'str': 'earthen roller'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A large, spherical blob the size of a large truck tire. The outer layer has" -" compacted itself into a solid shell; offering great resilience. Having " -"grown to full size, it seems content to simply sit there." -msgstr "" -"トラックのタイヤ程ある大きな球状ブロブです。外側は硬い殻のように固まっており、とてつもない損傷回復力を持っています。最大まで成長しており、満足げにじっとしています。" +#: lang/json/achievement_from_json.py +msgid "28 days later" +msgstr "28日後..." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "oozing wheel" -msgid_plural "oozing wheels" -msgstr[0] "スライムホイール" +#: lang/json/achievement_from_json.py +msgid "Survive for a month" +msgstr "一か月間生き延びました。" -#. ~ Description for {'str': 'oozing wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling an oozing mass with water has resulted in something that appears to " -"be a cross between a wheel, an otherworldly abomination, and one of those " -"old squeezy toys." -msgstr "スライム塊に水を充填したものは、ホイールと異界の化け物と古いゴム製のおもちゃを掛け合わせたような見た目です。" +#: lang/json/achievement_from_json.py +msgid "A time to every purpose under heaven" +msgstr "天が下の万の事には期あり" #: lang/json/achievement_from_json.py -msgid "One down, billions to go…" -msgstr "ひとまず一体、残りは膨大..." +msgid "Survive for a season" +msgstr "一季節を生き延びました。" #: lang/json/achievement_from_json.py -msgid "Rude awakening" -msgstr "不都合な現実" +msgid "Brighter days ahead?" +msgstr "光明の未来に向かって?" #: lang/json/achievement_from_json.py -msgid "The first day of the rest of their unlives" -msgstr "死人の余生一日目" +msgid "Survive for a year" +msgstr "一年間生き延びました。" #: lang/json/achievement_from_json.py msgid "Pheidippides was a hack" msgstr "新世界のフィリッピデス" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." msgstr "マラソン...にもうちょっと足した距離を走りました。" @@ -88917,7 +86199,6 @@ msgstr "マラソン...にもうちょっと足した距離を走りました。 msgid "Please don't fall down at my door" msgstr "家の前で倒れ込まないで" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." msgstr "500マイル(約805km)以上歩きました。" @@ -88938,6 +86219,18 @@ msgstr "どんな山も越えられる" msgid "Ain't no valley low enough" msgstr "どんな谷も越えられる" +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "reloading" msgstr "装填" @@ -89066,10 +86359,6 @@ msgstr "加温" msgid "de-stressing" msgstr " ストレス解消" -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr " 組織切断" - #: lang/json/activity_type_from_json.py msgid "dropping" msgstr " 投下" @@ -89499,10 +86788,6 @@ msgstr "電池" msgid "cents" msgstr "セント" -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "原子力電池" - #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" msgstr "12mm単発弾" @@ -89627,14 +86912,6 @@ msgstr "紙筒弾" msgid "pulse ammo" msgstr "パルス弾" -#: lang/json/ammunition_type_from_json.py -msgid "6.54x42mm" -msgstr "6.54x42mm弾" - -#: lang/json/ammunition_type_from_json.py -msgid ".20 DREAD Pellets" -msgstr ".20口径ドレッドペレット" - #: lang/json/ammunition_type_from_json.py msgid "black powder ammo" msgstr "弾薬(黒色火薬)" @@ -89680,40 +86957,8 @@ msgid "mana energy" msgstr "マナ" #: lang/json/ammunition_type_from_json.py -msgid "javelin" -msgstr "ジャベリン" - -#: lang/json/ammunition_type_from_json.py -msgid "120mm shell" -msgstr "120mm弾" - -#: lang/json/ammunition_type_from_json.py -msgid "155mm shell" -msgstr "155mm弾" - -#: lang/json/ammunition_type_from_json.py -msgid "30x113mm" -msgstr "30x113mm弾" - -#: lang/json/ammunition_type_from_json.py -msgid "heavy projectiles" -msgstr "重発射体" - -#: lang/json/ammunition_type_from_json.py -msgid "ballista bolt" -msgstr "ボルト" - -#: lang/json/ammunition_type_from_json.py -msgid "bladed disk" -msgstr "ディスク" - -#: lang/json/ammunition_type_from_json.py -msgid "crystalline shards" -msgstr "結晶片" - -#: lang/json/ammunition_type_from_json.py -msgid "vortex energy" -msgstr "渦流エネルギー" +msgid "heady vapours" +msgstr "" #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" @@ -89786,10 +87031,10 @@ msgid "" msgstr "外科手術によって眼窩を頑丈な保護レンズで完全に覆い、涙管を口内に繋ぎます。涙が出たときは、口から吐き出すか飲み込むしかありません。" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" +msgid "Alloy Plating - head" msgstr "合金装甲 - 頭部" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -89809,10 +87054,10 @@ msgid "" msgstr "脚部の肉を合金の装甲に置換します。受動的な防御力を提供するほか、CBM格闘術に組み合わせて使用できます。 " #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" +msgid "Alloy Plating - torso" msgstr "合金装甲 - 胴体" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -91224,6 +88469,16 @@ msgid "" msgstr "" "小型のドーパミン刺激装置が脳の腹側被蓋野全体に移植されています。装置は電力を消費して一定間隔で作動します。報酬系を刺激する化学物質やホルモンを脳内に放出し、気分を高めて多幸状態を引き起こします。" +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top" +" of your spine. They are all dead now but there is unfortunately a dead man" +" switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" +"脊椎の上部に爆弾を移植され、働かされていましたが、卑劣な設置者たちは全員死んでしまいました。残念ながら、30日ごとにコードを入力しないと爆発して死んでしまいます。早くコードを見つける必要があります。" + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" @@ -91554,6 +88809,22 @@ msgstr "裏地(羊毛)を縫う" msgid "Destroy wool lining" msgstr "裏地(羊毛)を取り除く" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "平和主義" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -92361,6 +89632,10 @@ msgstr "枕の砦を設置する" msgid "Build Cardboard Fort" msgstr "段ボールハウスを設置する" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "石かまどを設置する" @@ -92545,26 +89820,10 @@ msgstr "丸太を切り出す" msgid "Makeshift Wall" msgstr "簡易壁" -#: lang/json/construction_from_json.py -msgid "Build Hydroponics" -msgstr "水耕栽培装置を設置する" - -#: lang/json/construction_from_json.py -msgid "Build Hydroponics Heater" -msgstr "水耕栽培ヒーターを建設する" - #: lang/json/construction_from_json.py msgid "Build Translocator Gate" msgstr "転移ゲートを設置する" -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" -msgstr "死体穴をブロブの餌場にする" - -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "粘液をブロブの餌場にする" - #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." msgstr "トカゲに関する奇妙な夢を見ました。" @@ -93418,6 +90677,77 @@ msgstr "星々が待っています。火の戦車の準備もできています msgid "You have transitioned from a dying race to a glorious future." msgstr "瀕死の種族を捨て、輝かしい未来への道を選びました。" +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "古代の冷たいツンドラ地帯で、重々しい威嚇の声をあげながら太く丸い足で地面を踏み鳴らす、奇妙な夢を見ました。" + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "夢の中で不思議な、だるく重い感覚を味わいました。" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded" +" by snow and bitter pelting winds, you feel confident and toasty-warm " +"beneath your shaggy coat." +msgstr "" +"重い頭を揺さぶり、大きく澄んだ褐色の瞳の周りに張り付いた雪や氷を振り払う夢を見ました。身体は軽く、口の両端には何か余分な部位が突き出しています。雪に覆われ、激しい風に晒されていますが、毛むくじゃらのコートの中は暖かく快適で、安心感があります。" + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" +"萎れた土色の毛皮を着て、過酷な凍った白い海を渡る夢を見ました。辺りを見回すと、あらゆる角度から見たゾウの顔が映っています。それ以外は...何も分かりません。" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is" +" restored." +msgstr "" +"気だるさに耐えているいつも通りの時間が、えんじ色の鼻面に映える白く眩しい歯によって遮られた夢を見ました。瞬く間に激しい怒りが全身を巡り、激しくいななく...よりも素早く、口の両端から生えた重い槍のような牙を攻撃者に突き立てました。攻撃者は横たわり、骨は砕け、氷の白が真っ赤に染まり、湯気を立てました。そして、再び平穏が訪れました。" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill" +" for anyone or anything to bother trying to attack. And if they do… it'll " +"be the last mistake of their life. Waking up gives you a brief jolt of " +"fear and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" +"ゆっくりと、忍耐強く、次の目標、そのまた次の目標へと、焦らずに世界中を駆け抜ける夢を見ました。殺すには手ごわすぎるその図体のため、わざわざ攻撃しようとする者は誰もいません。例え誰かが襲い掛かったとしても...それが人生最後の過ちになるでしょう。目が覚めると、一瞬の恐怖と不快感が衝撃となって精神を襲いました。何故なら、人間の身体は夢の中の強力な肉体に比べてとても弱く、壊れやすく、不適当だと感じるからです。" + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" +"夢の中の思考は鈍く、結論に達するまでしばらく時間がかかるかもしれません。でも、急いで何の得があるのでしょう?何を急いでいるのでしょうか?あなたの血は古のものです。その血統は、知恵を付けた生物が尖った棒を掲げ、我こそが上位種であると叫ぶ蛮勇を持つ以前の時代にまで遡ります。あなたは巨大で強力な存在です。あなたに逆らうものは全て倒れます。今、あなたは...世界のあらゆる時間を我が物としました。" + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one" +" through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "" +"荒涼とした世界に鳴き声を轟かせ、隠れ家を探しています。牙を持つ仲間がそばにいない暮らしはあまりに寂しすぎます。もしかすると...家族を作った方が良いのかもしれません。" + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "影に関する奇妙な夢を見ました。" @@ -94241,8 +91571,6 @@ msgid "Stuck in beartrap" msgstr "トラバサミに挟まれた" #. ~ Description of effect 'Stuck in beartrap'. -#. ~ Description of effect 'Stuck in a light snare'. -#. ~ Description of effect 'Stuck in a heavy snare'. #: lang/json/effects_from_json.py msgid "You can't move until you get free!" msgstr "罠を外すまで動けません!" @@ -94600,6 +91928,52 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "真菌感染症が治りました。" +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "精神接触" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "心の中に奇妙な情景がチラチラと浮かび、混乱しています。" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "不穏なイメージが心に溢れ、圧倒されています。" + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "精神侵食" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "周囲の様子を理解できません..." + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "精神汚染" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "何が現実で何が幻なのか、まったく分かりません..." + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, +#. Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "現実感が歪んでいます!" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly +#. tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "精神汚染" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "幻覚" @@ -95965,6 +93339,26 @@ msgstr "ヘドロが肌をゆっくりと伝う感覚は不快で、悪臭で息 msgid "You're disgusted by the goop." msgstr "ヘドロに塗れて不快な気分です。" +#: lang/json/effects_from_json.py src/character.cpp +msgid "Full" +msgstr "満腹 *" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "空腹が満たされ、少しだるさを感じます。" + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "満腹 ***" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "胃が張り裂けそうです。食べ過ぎましたね。" + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" msgstr "マグネシウム剤" @@ -95987,10 +93381,6 @@ msgid "" "This is a bug if you have it." msgstr "特定の会話でNPCが怒った時のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" -#: lang/json/effects_from_json.py src/character.cpp src/character.cpp -msgid "Full" -msgstr "満腹 *" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -96363,20 +93753,6 @@ msgstr "生体毒" msgid "You feel sluggish and weak, from magically-induced poisoning." msgstr "呪文詠唱によって中毒にかかり、身体の動きが鈍り弱体化しました。" -#: lang/json/effects_from_json.py -msgid "Stuck in a light snare" -msgstr "くくり罠" - -#. ~ Apply message for effect(s) 'Stuck in a light snare'. -#. ~ Apply message for effect(s) 'Stuck in a heavy snare'. -#: lang/json/effects_from_json.py -msgid "You are snared!" -msgstr "罠に掛かっています!" - -#: lang/json/effects_from_json.py -msgid "Stuck in a heavy snare" -msgstr "強化くくり罠" - #: lang/json/effects_from_json.py msgid "Gummed" msgstr "ガムまみれ" @@ -96403,6 +93779,70 @@ msgstr "身体中ガムまみれです!" msgid "The gum webs constrict your movement." msgstr "ガムの網が絡まって上手く動けません。" +#: lang/json/effects_from_json.py +msgid "Debugged" +msgstr "デバッグ" + +#. ~ Description of effect 'Debugged'. +#: lang/json/effects_from_json.py +msgid "" +"You have been debugged!\n" +"Everything is working perfectly now." +msgstr "" +"デバッグを行いました!\n" +"全てが完璧に動作しています。" + +#. ~ Apply message for effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Diving into your source, you find a rubber duck, and talk it to death." +msgstr "ソース内に飛び込み、ラバーダックに死ぬほど話しかけました。" + +#. ~ Speed name of effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Optimized" +msgstr "最適化" + +#: lang/json/effects_from_json.py +msgid "Min-Maxed" +msgstr "ミニマックス" + +#. ~ Description of effect 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "" +"All the benefits of being the worst with none of the drawbacks of being the " +"best!" +msgstr "最悪であることに利点はなく、最良であることに欠点はありません!" + +#. ~ Apply message for effect(s) 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "You feel your internal metrics stretch like a fun-house mirror." +msgstr "体内のの測定基準がびっくりハウスの鏡のように引き延ばされました。" + +#: lang/json/effects_from_json.py +msgid "Whoa" +msgstr "おっと" + +#: lang/json/effects_from_json.py +msgid "Wut?" +msgstr "えっ" + +#: lang/json/effects_from_json.py +msgid "Wow!" +msgstr "うわー!" + +#: lang/json/effects_from_json.py +msgid "" +"Everything is just way too intense, man!\n" +"You feel confused and disoriented." +msgstr "" +"何もかもが激しすぎます!\n" +"混乱し、まごついています。" + +#. ~ Apply message for effect(s) 'Whoa, Wut?, Wow!'. +#: lang/json/effects_from_json.py +msgid "!!Intensity intensifies!!" +msgstr "[激化]" + #: lang/json/faction_from_json.py msgid "Your Followers" msgstr "あなたの仲間" @@ -97530,8 +94970,10 @@ msgstr "室外機" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." -msgstr "広い区画を冷却するための、金属製の大きな装置です。" +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." +msgstr "金属で覆われた、大きな箱型機械です。一般的には、広い室内を冷やすために使われます。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -97548,16 +94990,19 @@ msgstr "空気清浄装置" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" -msgstr "埃やダニ、煙などを取り除きます!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." +msgstr "通過する空気中の埃、煙、ダニなどの汚染物質を除去するために使う、大きな人工膜です。" #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them" -" clean and to save people an unpleasant chore. Now, with the power gone and" -" it sitting for a while, it's starting to smell a bit off." -msgstr "汚れた皿にお湯と洗剤を吹きかけて洗い、不快な雑用を肩代わりしてくれる金属製の箱です。停電してから時間が経過し、少し臭いが漂い始めています。" +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." +msgstr "" +"お湯と石鹸を使って食器類を効率的に洗浄する、大きな箱型機械です。しばらく使っていなかったようで、何かが腐ったような臭いが中から漂ってきます。" #: lang/json/furniture_from_json.py msgid "dryer" @@ -97565,8 +95010,10 @@ msgstr "乾燥機" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." -msgstr "「あなたの服を乾かそう!」停電していなければ可能だったでしょう。" +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." +msgstr "洗濯を終えた大量の衣類を素早く乾燥させるために使う、一般的な家電製品です。" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "refrigerator" @@ -97575,10 +95022,9 @@ msgstr "冷蔵庫" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." -msgstr "偉大な電気の力で食べ物を凍らせましょう!おっと、停電中でしたね。しかし、扉を開けない限りは、中はしばらく冷えています。" +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." +msgstr "背の高い金属製の保存容器です。電力が供給されていれば生鮮食品などを凍らせて長く保存することができます。" #: lang/json/furniture_from_json.py msgid "glass door fridge" @@ -97587,8 +95033,12 @@ msgstr "冷蔵ショーケース" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" -msgstr "わあ!冷凍庫を開かなくても中身が分かるし、稼働していないことも分かるぞ!" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without" +" letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." +msgstr "" +"厚いガラス板のドアを備えた、現代的な冷蔵庫です。大抵は、更に断熱性を高めるためガラスに特殊な加工が施されています。冷気を逃がさずに中身を確認できるのは些細な利点ですが、腐敗までの貴重な時間を節約できます。" #: lang/json/furniture_from_json.py msgid "furnace" @@ -97598,13 +95048,15 @@ msgstr "暖房炉" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." -msgstr "内部のファンを回して、建物に設置された送風管に暖かい風を送って部屋を暖める、ガス駆動のセントラルヒーティング装置です。" +"the air through a building's ventilation system to keep it warm." +msgstr "建物の換気システムに空気を送り込んで温度を保つ内部ファンを備えた、ガス駆動の強制給気式セントラルヒーティング装置です。" #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." -msgstr "電気が通っていれば汚れた服を洗えるのですが。" +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." +msgstr "石鹸と大量の水を使って手間をかけずに衣類をまとめて洗う、ずんぐりとした形の大型機械です。" #: lang/json/furniture_from_json.py msgid "oven" @@ -97613,11 +95065,9 @@ msgstr "オーブン" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." -msgstr "" -"電気の力で暖房や調理をする設備です。稼働するようには見えませんが、部品は問題なく利用できそうです。非常時には中で安全に焚き火ができそうです。" +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." +msgstr "一般的には食品の加熱や調理に使われる、標準的な対流式オーブンです。既に機能していませんが、内部で安全に火を焚くことができます。" #: lang/json/furniture_from_json.py msgid "blacksmith bellows" @@ -97626,9 +95076,10 @@ msgstr "ふいご" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." -msgstr "炉に空気を供給して火力と温度を高める装置です。稼働するようには見えませんが、部品は問題なく利用できそうです。" +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." +msgstr "炉に空気を送り込んで火力を強めて高温を維持する、鍛冶屋が使う古風な装置です。今の状態では役に立ちませんが、部品は使えそうです。" #: lang/json/furniture_from_json.py msgid "blacksmith drop hammer" @@ -97637,9 +95088,11 @@ msgstr "ドロップハンマー" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." -msgstr "金属製品の高速生産に必要な装置です。稼働するようには見えませんが、部品は問題なく利用できそうです。" +"An anvil with a large metal hammer suspended above it in a metal framework." +" If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." +msgstr "" +"大きな金属製のハンマーを吊り下げた金属製の骨組みと金床のセットです。今は部品しか役に立ちませんが、もし機能していれば、柔らかい金属板を成形するのに便利だったことでしょう。" #: lang/json/furniture_from_json.py msgid "document shredder" @@ -97648,9 +95101,12 @@ msgstr "シュレッダー" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." -msgstr "政府の機密事項以外にも、単に個人情報を漏らしたくない時にも使えます。" +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." +msgstr "" +"大きな籠が付いたシンプルな電子機械です。気密性の高い情報が載っている紙文書を効率的に破棄するために作られました。個人情報の漏洩や企業スパイも、この状況では問題にならないでしょうね。" #: lang/json/furniture_from_json.py msgid "server stack" @@ -97658,8 +95114,12 @@ msgstr "サーバー" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." -msgstr "積み重なったコンピュータの集合体です。電源はすべて切れています。" +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." +msgstr "" +"情報の保存と発信に特化した大型サーバーラックです。特定の情報を探す作業にはほとんど役に立ちませんが、内部に接続されたノートパソコンは、取り外せば今も使えそうです。" #: lang/json/furniture_from_json.py msgid "large satellite dish" @@ -97668,9 +95128,12 @@ msgstr "大型衛星放送受信アンテナ" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." -msgstr "上空のどこかで人工衛星が回り続けており、もはや受信する人類のいなくなった地球に信号を送り続けています。" +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes" +" have all been lost." +msgstr "" +"衛星からの信号を受信するための簡単な電子機器を備えた、大きな凹型金属パネルです。地球上を周回する数百代の高価な機械は永久に機能し続けるでしょうが、それらの持つ様々な目的はすべて失われています。" #: lang/json/furniture_from_json.py msgid "mounted solar panel" @@ -97678,8 +95141,11 @@ msgstr "ソーラーパネル" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." -msgstr "設置されたソーラーパネルです。" +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." +msgstr "太陽光を電気に変えて利用する太陽光発電機のセットです。大変動の前から有用でしたが、今はどんな生存者にとってもかけがえのない貴重な装置です。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -97692,8 +95158,12 @@ msgstr "道路バリケード" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." -msgstr "道を封鎖するバリケードです。" +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." +msgstr "" +"道路の通行を遮断するために使われる、大きな木製の封鎖板です。視認性を高めるための反射テープが貼り付けてあります。その名前にもかかわらず、運転中の車を止めることはほとんど不可能です。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp @@ -97711,8 +95181,10 @@ msgstr "土嚢バリケード" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." -msgstr "一般的には銃弾を防ぐために使われる土嚢のバリケードです。" +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." +msgstr "土嚢を積み重ねて作った低い壁です。一般的に弾丸避けや水を押しとどめるために使われます。" #: lang/json/furniture_from_json.py msgid "rrrip!" @@ -97724,8 +95196,8 @@ msgstr "壁(土嚢)" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." -msgstr "土嚢の壁です。" +msgid "A wall of stacked earthbags, a bit taller than an average adult." +msgstr "土嚢を積み重ねて作った、平均的な成人の身長よりも高い壁です。" #: lang/json/furniture_from_json.py msgid "lane guard" @@ -97733,8 +95205,8 @@ msgstr "レーンガード" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." -msgstr "交通安全を守るために使われていました。" +msgid "A simple wooden post to mark the separation between street lanes." +msgstr "道路上の車線の区切りを示す、シンプルな木製の支柱です。" #: lang/json/furniture_from_json.py msgid "sandbag barricade" @@ -97742,8 +95214,10 @@ msgstr "砂袋バリケード" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." -msgstr "一般的には銃弾を防ぐために使われる砂袋のバリケードです。" +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." +msgstr "砂袋を積み重ねて作った低い壁です。一般的に弾丸避けや水を押しとどめるために使われます。" #: lang/json/furniture_from_json.py msgid "sandbag wall" @@ -97751,8 +95225,8 @@ msgstr "壁(砂袋)" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." -msgstr "砂袋の壁です。" +msgid "A wall of stacked sandbags, a bit taller than an average adult." +msgstr "砂袋を積み重ねて作った、平均的な成人の身長よりも高い壁です。" #: lang/json/furniture_from_json.py msgid "standing mirror" @@ -97760,8 +95234,10 @@ msgstr "全身鏡" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" -msgstr "今日もビシっと...これは...血?" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all" +" of the dirt and blood on your clothes, and the weariness in your eyes." +msgstr "滑らかな金属フレームにはめ込まれた全身鏡です。服の汚れや血の跡、目の疲れがよく見えます。" #: lang/json/furniture_from_json.py msgid "glass breaking" @@ -97774,9 +95250,10 @@ msgstr "壊れた全身鏡" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." -msgstr "割れたりひびが入ったりしていなければ、身だしなみを確かめられたのですが。" +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." +msgstr "鏡の大部分が欠けてしまった、全身鏡用の金属フレームです。残っているのは、鋭く危険な砕けた鏡の破片だけです。" #: lang/json/furniture_from_json.py msgid "bitts" @@ -97785,9 +95262,9 @@ msgstr "係船柱" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." -msgstr "埠頭や桟橋、岸壁などに設置されている一対の鉄杭です。係留索やロープ、大綱などを繋ぐために使います。" +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." +msgstr "埠頭や桟橋、岸壁などに垂直に設置されている一対の鉄杭です。係留索やロープなどを繋ぐために使います。" #: lang/json/furniture_from_json.py msgid "manacles" @@ -97795,10 +95272,8 @@ msgstr "手枷" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." -msgstr "農奴を地下牢に繋ぎましょう。後は鎖の付いた鉄球があれば完璧です。" +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." +msgstr "壁や床に重い鎖で固定された金属製の手錠です。" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py @@ -97811,11 +95286,12 @@ msgstr "彫像" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." -msgstr "石造りの彫像です。" +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." +msgstr "時代を超えた芸術作品が丁寧に刻まれた、巨大な石の塊です。" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." msgstr "ゴツン。" @@ -97826,9 +95302,11 @@ msgstr "マネキン人形" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" -msgstr "服を着せて、話し掛けましょう。咎める人は誰もいませんよ?あれ...これ今動いた?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." +msgstr "" +"一般的には店舗で服を展示したり、仕立屋が服をデザインする際に使われる、等身大の木像です。今起きているあらゆる現象を考えると、何故か不安な気持ちになります。" #: lang/json/furniture_from_json.py msgid "birdbath" @@ -97836,8 +95314,10 @@ msgstr "バードバス" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." -msgstr "セメント製の装飾用バードバスと台座です。" +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." +msgstr "台座に取り付けられた広い石の鉢です。通常は雨水で満たされており、鳥が遊んだり水浴びをしたりするための置物です。" #: lang/json/furniture_from_json.py msgid "rotary clothes dryer line" @@ -97845,8 +95325,10 @@ msgstr "物干しパラソル" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." -msgstr "傘型に張り巡らせた物干しロープが支柱の上に広がっています。" +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to" +" hang up clothes to dry in the sunlight." +msgstr "大きな回転するフレームを中央の金属製の棒が支えています。衣類を干して日光で乾燥させるために使う装置です。" #: lang/json/furniture_from_json.py msgid "floor lamp" @@ -97854,8 +95336,10 @@ msgstr "フロアランプ" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." -msgstr "電気コードが付いた、部屋を照らす背の高いランプです。" +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." +msgstr "金属製の棒の上にライトが取り付けられています。コンセントに電気が来ていれば室内を照らします。" #: lang/json/furniture_from_json.py msgid "bonk!" @@ -97870,14 +95354,30 @@ msgstr "クリスマスリース" msgid "A decorative wreath for the winter holidays." msgstr "冬の祭日に飾るリースです。" +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "" + +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +msgid "crunch." +msgstr "バリッ。" + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "クリスマスツリー" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." -msgstr "冬の祭日のために飾り付けた木です。" +msgid "" +"A decorative pine tree littered with ornaments for the winter holidays." +msgstr "冬の祭日のために飾り付けた松の枝です。" #: lang/json/furniture_from_json.py msgid "indoor plant" @@ -97885,8 +95385,10 @@ msgstr "観葉植物" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." -msgstr "装飾として置かれた植物です。" +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried" +" up and died a while ago." +msgstr "室内で使われる観賞用の小さな鉢植えです。植物はしばらく前に枯れてしまったようです。" #: lang/json/furniture_from_json.py msgid "yellow indoor plant" @@ -97894,8 +95396,10 @@ msgstr "枯れた観葉植物" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." -msgstr "装飾として置かれた植物です。枯れて黄色くなっています。" +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." +msgstr "黄色い花を咲かせていた観葉植物です。いつの間にか枯れてしまったようです。" #: lang/json/furniture_from_json.py msgid "harvestable plant" @@ -97904,14 +95408,9 @@ msgstr "収穫できる植物" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to" -" harvest the plant appropriately." -msgstr "この植物は収穫の準備が整いました。近くに寄って調べることで、適切な収穫方法が分かります。" - -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py -msgid "crunch." -msgstr "バリッ。" +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." +msgstr "この植物は完全に成熟しており、収穫する準備が整っています。調べることで収穫できます。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -97920,12 +95419,12 @@ msgstr "ガサガサ。" #: lang/json/furniture_from_json.py msgid "mature plant" -msgstr "成熟した植物" +msgstr "成長した植物" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." -msgstr "この植物は順調に成長しています。" +msgid "This plant has matured, and will be ready to harvest before long." +msgstr "この植物は成長しており、もうすぐ収穫できるようになります。" #: lang/json/furniture_from_json.py msgid "seed" @@ -97934,9 +95433,9 @@ msgstr "種" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into " -"destiny." -msgstr "小さな種が植わっています。小さな行動という運命の種は、いつの日か大きな未来に育ちます。" +"A freshly planted seed. If properly tended to, it could grow into a healthy" +" plant." +msgstr "小さな種が植わっています。きちんと世話をすれば、上手く成長するかもしれません。" #: lang/json/furniture_from_json.py msgid "seedling" @@ -97944,8 +95443,8 @@ msgstr "苗木" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." -msgstr "この植物は芽を出したばかりです。" +msgid "A seed that has just begun to sprout its first roots." +msgstr "発芽したばかりの種です。" #: lang/json/furniture_from_json.py msgid "planter" @@ -97963,22 +95462,34 @@ msgid "planter with harvestable plant" msgstr "プランター(完熟)" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" -msgstr "排水性を高めるすのこが付いた、土が入った状態の園芸用プランターです。既に作物が植わっています。" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." +msgstr "排水性を高めるすのこが付いた、土が入った状態の園芸用プランターです。植物は完全に成熟しており、調べることで収穫できます。" #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "プランター(成長)" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "排水性を高めるすのこが付いた、土が入った状態の園芸用プランターです。植物は成長しており、もうすく収穫できるようになります。" + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "プランター(播種)" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "排水性を高めるすのこが付いた、土が入った状態の園芸用プランターです。種が植わっており、注意深く世話をすれば成長します。" + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "プランター(発芽)" @@ -97986,9 +95497,9 @@ msgstr "プランター(発芽)" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" -msgstr "排水性を高めるすのこが付いた、土が入った状態の園芸用プランターです。作物が芽を出しています。" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." +msgstr "排水性を高めるすのこが付いた、土が入った状態の園芸用プランターです。発芽したばかりの種が植わっています。" #: lang/json/furniture_from_json.py msgid "spider egg sack" @@ -97997,9 +95508,9 @@ msgstr "卵塊(クモ)" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." -msgstr "非常に大きなオフホワイトの卵塊です。内部で何かが蠢いており、少し嫌な予感がします。" +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." +msgstr "大きなオフホワイトの卵の集合体です。近寄ってみると、わずかに動く中身が見えます。気持ち悪いですね。" #: lang/json/furniture_from_json.py msgid "splat!" @@ -98008,16 +95519,18 @@ msgstr "ピシャッ!" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." -msgstr "球根のような形状のクモのタマゴです。内部で何かが蠢いており、非常に嫌な予感がします。" +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." +msgstr "球根のような形状の、クモが産んだ大きなオフホワイトの卵の集合体です。近寄ってみると、わずかに動く中身が見えます。本当に気持ち悪いですね。" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're" -" seeing this, you're already too close to it." -msgstr "とんでもなく大きな卵塊です。中で何かが蠢いていますが、それが目視できるなら離れた方が良さそうです。" +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." +msgstr "" +"一粒が人間の拳よりも大きなサイズの、クモが産んだ巨大な卵の集合体です。内部で動き回っているのがよく見えます。本当に気持ち悪いですね。見ているだけで鳥肌が立ちます。" #: lang/json/furniture_from_json.py msgid "ruptured egg sack" @@ -98025,8 +95538,10 @@ msgstr "卵塊(破裂)" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." -msgstr "非常に不快な姿です。クモの部位の一部が殻から飛び出ています。" +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." +msgstr "気味の悪い巨大な卵塊が破裂して残った殻です。巨大なクモの幼体が飛び出していったかと思うと、それだけでぞっとしますね。" #. ~ Description for swamp gas #: lang/json/furniture_from_json.py @@ -98076,10 +95591,9 @@ msgstr "暖炉" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." -msgstr "あぁ。例え世界がめちゃくちゃになっても、火の傍に座っていると安らぎますね。かつてはテレビでもこんな番組を年末にやっていたものです。" +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." +msgstr "室内で安全に火を起こすために使う、一般的な家具です。煙を屋外に排出するための煙突が付いています。火をつけたまま放置するのは危険です。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -98099,14 +95613,29 @@ msgstr "薪ストーブ" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." -msgstr "暖房や調理ができる薪ストーブです。焚火よりもはるかに効率的です。" +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." +msgstr "薪を燃料にして火をおこす、シンプルな金属製のストーブです。調理や過熱に適しており、室内でも安全に使えます。" #. ~ Description for brazier #: lang/json/furniture_from_json.py msgid "A raised metal dish in which to safely burn things." msgstr "安全に物を燃やすための、脚が付いた金属製の皿です。" +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "内部で安全に火を起こせる巨大なドラム缶です。側面には空気供給用の穴が複数開いています。" + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "内部で安全に火を起こせる大きなドラム缶です。側面には空気供給用の穴が複数開いています。" + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "石かまど" @@ -98256,9 +95785,10 @@ msgstr "花(マーロス)" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" -msgstr "真菌花とよく似ていますが、根元が鮮やかな青緑に色づいています。濃厚な香りを放っていますが...なんだか美味しそうですね?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." +msgstr "" +"真菌花とよく似ていますが、根元が鮮やかな青緑に色づいています。濃厚な香りを放っていますが...なんだか美味しそうですね?妙に魅惑的な強い香りを放っています。" #: lang/json/furniture_from_json.py msgid "poof." @@ -98268,9 +95798,9 @@ msgstr "ポフッ。" #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." -msgstr "逞しい灰色の巻髭が生い茂る、花弁や茎が色づいた真菌花です。意思をもって穏やかに揺れています。" +"color has been leached from its petals and stem. It gently sways of its own" +" volition, maintaining an unsettling rhythm." +msgstr "巻髭状に伸びた灰色の菌糸が生い茂り、花弁や茎が色づいた真菌花です。意思をもって、不規則にゆっくりと揺れています。" #: lang/json/furniture_from_json.py msgid "fungal mass" @@ -98280,8 +95810,8 @@ msgstr "真菌の塊" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." -msgstr "菌糸で作られた太い縄が密集しています。柔らかな触り心地ですが、踏みしめると足が沈むため、移動は困難です。" +"soft to the touch, but not firm enough to hold any weight." +msgstr "菌糸で作られた太い縄が地面を完全に覆っています。柔らかな触り心地ですが、踏みしめられるほど丈夫ではありません。" #: lang/json/furniture_from_json.py msgid "fungal clump" @@ -98290,8 +95820,9 @@ msgstr "真菌の群生" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." -msgstr "地球外の菌糸と茎がしっかりと混じりあい、まるで茂みのように固まっています。" +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." +msgstr "地球外の菌糸と茎がしっかりと混ざり合い、折り重なって、茂みのように固まっています。" #: lang/json/furniture_from_json.py msgid "fungal tangle" @@ -98314,8 +95845,8 @@ msgstr "石板" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." -msgstr "頑丈な石で作られた平坦な厚板です。" +msgid "A slab of heavy stone, with a reasonably flat surface." +msgstr "表面がほぼ平らな重い石の厚板です。" #: lang/json/furniture_from_json.py msgid "headstone" @@ -98323,8 +95854,12 @@ msgstr "墓石" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." -msgstr "遺体を守っています。" +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" +"下に埋葬された故人の情報が刻んである、大きな石板です。大変動によって失われた数えきれない損失をもったいぶって記録したものに過ぎませんが、人生最後のまっとうな安息の場所は、奇妙な安らぎを与えてくれます。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -98338,8 +95873,12 @@ msgstr "墓碑" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." -msgstr "遺体を守っています。墓石より豪華です。" +msgid "" +"An upright slab of stone with information engraved on the face about whoever" +" lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" +"下に埋葬された故人の情報が刻んである、直立した石板です。大変動によって失われた数えきれない損失をもったいぶって記録したものに過ぎませんが、人生最後のまっとうな安息の場所は、奇妙な安らぎを与えてくれます。" #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -98347,8 +95886,12 @@ msgstr "古い墓碑" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." -msgstr "年季の入った墓石です。" +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." +msgstr "" +"老朽化して浸食が進み、碑文が判読できないほど破損してしまった墓石です。この混乱が始まる前に死んでここに埋葬された人物は、十分に幸運だったと思えます。" #: lang/json/furniture_from_json.py msgid "obelisk" @@ -98356,8 +95899,11 @@ msgstr "オベリスク" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." -msgstr "立派な記念碑です。" +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." +msgstr "文字が彫られたプレートが台座にはめ込んである、立派な彫像です。まともな死を願いながら亡くなったかつての重要人物を敬いたい気分になります。" #: lang/json/furniture_from_json.py msgid "thunk!" @@ -98371,8 +95917,10 @@ msgstr "機械式組立装置" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." -msgstr "先端に工具が取り付けられた、耐久性に優れ様々な用途をもつ組み立てライン用ロボットアームです。" +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." +msgstr "" +"組み立てラインでの作業に適した、先端に工具が付いている耐久性と汎用性の高いロボットアームです。既に専門的な用途は失われてしまいましたが、分解すれば有用な部品が多数手に入ります。" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "chemical mixer" @@ -98381,9 +95929,9 @@ msgstr "化学物質撹拌機" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." -msgstr "化学物質を正しい比率と温度で大量に混合するときに使う、業務用の機械です。" +"A large vat with a motorized mixing device for combining large quantities of" +" chemicals." +msgstr "電動攪拌装置を備えた、大量の薬品を混合する大型の桶です。" #: lang/json/furniture_from_json.py msgid "robotic arm" @@ -98392,11 +95940,10 @@ msgstr "ロボットアーム" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." -msgstr "" -"自動化!科学!工業!より良い労働力!このロボットアームは全てを満たします。電源があればの話ですが。外装を取り外して分解すれば、電子機器を入手できます。" +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." +msgstr "組み立てラインでの作業に適した、特殊な設計ではない汎用的な自動ロボットアームです。現在は機能していませんが、部品は役に立つかもしれません。" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py @@ -98410,9 +95957,12 @@ msgstr "オートドクMk.XI" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." -msgstr "CBMの移植と除去に使う外科装置です。技能を持った者にしか操作できません。" +"A surgical apparatus used for installation and removal of bionics. The term" +" name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." +msgstr "" +"生体部品の移植と除去に使われる手術装置です。「オートドク」という名前で誤解されがちですが、事前にプログラムを書き込まなければ動作しません。専門知識なしで起動させないように警告するラベルがたくさん貼ってあります。" #: lang/json/furniture_from_json.py msgid "Autodoc operation couch" @@ -98429,10 +95979,9 @@ msgstr "豪勢な赤いベッドですが、真上にある医療機器のせい #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost " -"anything." -msgstr "非常にハイテクな洗濯機や食器洗浄機のようなものです。ほぼすべての病原体などが死滅する温度まで内部の温度を高めます。" +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." +msgstr "高温で内容物を蒸して完全に滅菌することで、あらゆる汚染物質を無力化できる装置です。" #: lang/json/furniture_from_json.py msgid "filled autoclave" @@ -98445,11 +95994,9 @@ msgstr "超低温フリーザー" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the " -"inside." -msgstr "" -"寒い程度の温度では適切に保管できない実験サンプル用の冷却装置です。内部の温度は-80度に保たれます。ここでは決して冷えた金属を舐めないでください。" +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." +msgstr "中を-80℃に保つことができる特殊な冷凍庫です。大抵はデリケートな化学試料の保管に使われます。" #: lang/json/furniture_from_json.py msgid "lab workbench" @@ -98482,10 +96029,10 @@ msgstr "振盪培養器" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow" -" bacteria. This is great for microbiology, but terrible for preserving " -"food." -msgstr "バクテリアの培養に適した温度を保ちながら培養液を混合する設備です。微生物の研究には最適ですが、食品の保存にはまるで向きません。" +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." +msgstr "バクテリアの培養に適した温度を保ちながら培養液を混合する設備です。今の状況でたくさんのバクテリアが必要になることはなさそうです。" #: lang/json/furniture_from_json.py msgid "emergency wash station" @@ -98494,11 +96041,12 @@ msgstr "緊急洗浄装置" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running" -" water, you could use those attachments to wash harmful chemicals out of " -"your eyes, or to take a pleasant cold shower in a public place." +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." msgstr "" -"支柱に奇妙なノズルと部品がたくさん取り付けられています。もし流水があれば、目についた有害な化学物質を洗い流したり、人目をはばからずに冷たくて気持ちいいシャワーを浴びたりできたのかもしれません。" +"大きな取っ手と一対のノズルが付いた、鮮やかな色の流し台です。目に付着した汚染物質を素早く除去するための特殊な設計になっており、目がよく見えなくても簡単に使えます。噴出する水を飲まないように警告する大きめの注意書きが貼り付けてあります。" #: lang/json/furniture_from_json.py msgid "IV pole" @@ -98506,8 +96054,10 @@ msgstr "点滴スタンド" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." -msgstr "キャスター付きの棒の上部に、何本かのフックが付いています。" +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." +msgstr "点滴バッグを吊るすために使う、小さな車輪が付いた背の高い金属柱です。無人で点滴を投与できます。" #: lang/json/furniture_from_json.py msgid "high performance liquid chromatographer" @@ -98517,11 +96067,11 @@ msgstr "高速液体クロマトグラフィー" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on" +" their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" -"この最先端の機械は、電力と経験豊富な使用者さえ用意できれば、チューブ内の固体媒質の親和性に基づいて液相または水相で化学物質を分離することが可能です。" +"この非常に便利な最先端の機械は、電力と経験豊富な使用者さえ用意できれば、チューブ内の固体媒質の親和性に基づいて液相または水相で化学物質を分離できます。少なくとも、貼られたラベルにはそう書いてあります。" #: lang/json/furniture_from_json.py msgid "gas chromatographer" @@ -98531,10 +96081,11 @@ msgstr "ガスクロマトグラフィー" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." -msgstr "この最先端の機械は、電力と経験豊富な使用者さえ用意できれば、チューブ内の固体媒質の親和性に基づいて気相で化学物質を分離することが可能です。" +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." +msgstr "" +"この最先端の機械は、電力と経験豊富な使用者さえ用意できれば、チューブ内の固体媒質の親和性に基づいて気相で化学物質を分離できます。少なくとも、貼られたラベルにはそう書いてあります。" #: lang/json/furniture_from_json.py msgid "mass spectrometer" @@ -98543,11 +96094,13 @@ msgstr "質量分析計" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." -msgstr "内部に電界発生装置を備えており、イオン化粒子を電荷対質量比に基づいて正確に分離して検出することで、衝突する粒子の正確な質量を測定します。" +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other" +" advanced sciences, it's not as useful anymore." +msgstr "" +"この大きな白い箱の内部には電界発生装置が備わっており、イオン化粒子を電荷対質量比に基づいて正確に分離して検出することで、衝突する粒子の正確な質量を測定します。化学分析などの最先端科学の世界では貴重な装置でしたが、今の状況ではあまり役に立ちません。" #: lang/json/furniture_from_json.py msgid "nuclear magnetic resonance spectrometer" @@ -98556,12 +96109,11 @@ msgstr "核磁気共鳴分光計" #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." msgstr "" -"SFに登場しそうな巨大な電磁石です。原理はよく分かりませんが、分子結合だか何だかを共鳴させて、化学物質の奥深い働きを観測できます!ところで磁力って何だ?" +"磁場が核スピンにどのような影響を与えるかを観察するために使われる、測定器を入念に調整した巨大電磁石です。化学構造の発見と研究においては一般的な機械です。" #: lang/json/furniture_from_json.py msgid "electron microscope" @@ -98570,9 +96122,9 @@ msgstr "電子顕微鏡" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." -msgstr "電子の反射を利用して非常に小さな物質を観察する巨大な装置です。虫などを拡大してみると驚くべき姿が観察できます。" +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." +msgstr "きわめて小さなスケールで試料を詳しく検査するための大型観測機械です。" #: lang/json/furniture_from_json.py msgid "CT scanner" @@ -98581,10 +96133,9 @@ msgstr "CTスキャナー" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of" -" radio-opacity." -msgstr "素早く何枚ものレントゲン写真を撮影できる、巨大なドーナツ状の機械です。放射線不透過性をもつ物質が体内にあると非常に面白い画像を写せます。" +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." +msgstr "360度の方向から数百枚のX線画像を撮影する巨大な機械です。健康診断などでよく使われています。" #: lang/json/furniture_from_json.py msgid "MRI machine" @@ -98593,11 +96144,9 @@ msgstr "MRI装置" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't" -" excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." +"A massive tool used to take NMR images of a patient placed inside, providing" +" invaluable medical insight." msgstr "" -"これは「核磁気共鳴画像装置(NMR)」だろうという指摘もありますが、「核」なんて名前の付く大きな機械の小さな穴に入りたがる人はほぼおらず、MRIと呼ばれるようになりました。" #: lang/json/furniture_from_json.py msgid "scanner bed" @@ -98606,9 +96155,9 @@ msgstr "検査用ベッド" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." -msgstr "人間を画像装置などの小さな穴に入れるための、狭くて居心地の悪いベッドです。" +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." +msgstr "人間を医療用の画像診断装置に入れるための、狭くて平たい、率直に言えば寝心地の悪いベッドです。" #: lang/json/furniture_from_json.py msgid "anesthetic machine" @@ -98617,10 +96166,11 @@ msgstr "麻酔器" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." -msgstr "麻酔を手術に適したレベルに調整し続けるのは困難です。この機械は適切な比率で麻酔薬と酸素を配合して患者に供給し、麻酔科医の仕事を助けます。" +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." +msgstr "" +"患者の麻酔レベルを正確に測り維持するための、様々なタンク、チューブ、測定装置を備えた大型機械です。理想的には患者が眠っているか痛みを感じないこと、少なくとも生きていることを確認するために使われます。" #: lang/json/furniture_from_json.py msgid "dialysis machine" @@ -98629,11 +96179,11 @@ msgstr "透析機" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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." +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." msgstr "" -"機能しなくなった人間の腎機能を代替する巨大で不便な機械です!電力と大量の物資、そして訓練された操作者さえ用意できていれば、この大変動の世界で非常に役立ったかもしれません。" +"腎機能障害患者の血液を汲み上げて濾過する大型機械です。CBMを移植できる人から見れば時代遅れのガラクタですが、必要としている人にとっては命綱です。" #: lang/json/furniture_from_json.py msgid "medical ventilator" @@ -98642,10 +96192,10 @@ msgstr "人工呼吸器" #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." -msgstr "生きるか死ぬかの瀬戸際で諦めきれない時は、人工呼吸器の出番です。見た目は単なる台車に載った二つの箱です。" +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." +msgstr "呼吸不全に陥った患者に対して、一時的に肺へ空気を循環させるために用いる、車輪付きの大きな箱型装置です。" #: lang/json/furniture_from_json.py msgid "privacy curtain" @@ -98681,8 +96231,8 @@ msgstr "輝く触手" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." -msgstr "かすかに光るしなやかな巻髭が足下から伸び、ゆっくりと揺れています。" +"faint light spills from it." +msgstr "" #: lang/json/furniture_from_json.py msgid "splorch!" @@ -98697,8 +96247,8 @@ msgstr "揺らめく触手" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." -msgstr "多肉質の白い瘤が地面から生え、その中央から複数の触手が伸びています。触手は静かに揺れており、その姿はまるでイソギンチャクです。" +"even waving gently as though underwater." +msgstr "" #: lang/json/furniture_from_json.py msgid "gasping tube" @@ -98709,10 +96259,9 @@ msgstr "震える肉柱" msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." msgstr "" -"地面からから天井まで伸びた、緑色のヒトデのようにも見える多肉質の柱です。中央には口のような噴出孔が連なっており、そこから悪臭を放つガスを噴き出します。" #: lang/json/furniture_from_json.py msgid "twitching frond" @@ -98721,10 +96270,10 @@ msgstr "引きつる肉葉" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." -msgstr "ガの触覚のような突起が地面から生え、風に乗って穏やかに揺れています。時折電撃の渦が発生しては立ち昇っていきます。" +"A spine resembling moth antennae juts from the ground, swaying gently in the" +" air. Every so often, a cascade of energy arcs along it and discharges into" +" the ceiling." +msgstr "" #: lang/json/furniture_from_json.py msgid "scarred lump" @@ -98733,9 +96282,9 @@ msgstr "裂けた肉腫" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases" -" out of injured vessels." -msgstr "正体不明の、痙攣する異界の肉塊です。表面の血管が裂け、傷口から奇妙なガスを放出しています。" +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." +msgstr "" #: lang/json/furniture_from_json.py msgid "slimy pod" @@ -98795,9 +96344,10 @@ msgstr "浴槽" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The" -" plug is intact, so you could use it to store liquids." -msgstr "水道が無事なら中に横たわって気持ちよく風呂に入れるのですが。栓が付いているので、中に液体を溜めておけます。" +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." +msgstr "" #: lang/json/furniture_from_json.py msgid "porcelain breaking!" @@ -98813,8 +96363,11 @@ msgstr "シャワー" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." -msgstr "水さえ出れば体を綺麗にできるのですが。" +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to" +" imagine wasting that much water." +msgstr "" #: lang/json/furniture_from_json.py msgid "sink" @@ -98823,8 +96376,9 @@ msgstr "流し台" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." -msgstr "非常時には物資になります。水道が止まっているため、基本的には役に立ちません。" +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." +msgstr "" #: lang/json/furniture_from_json.py msgid "toilet" @@ -98833,9 +96387,11 @@ msgstr "便器" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." -msgstr "磁器製の便器です。非常時にはタンクからは水を補給できます。" +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the " +"cleanest." +msgstr "" #: lang/json/furniture_from_json.py msgid "water heater" @@ -98844,16 +96400,17 @@ msgstr "給湯器" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." -msgstr "断熱性の金属タンクに入った水を、小さなガスの炎で一定の温度に保つ装置です。" +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." +msgstr "" #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." -msgstr "そういったことを気にする人にとっては、水に溶けているイオンを除去して綺麗にする装置です。" +"This devices effectively sterilizes water, though without a lot of power and" +" proper plumbing, it's only good for parts now." +msgstr "" #: lang/json/furniture_from_json.py msgid "exercise machine" @@ -98862,9 +96419,11 @@ msgstr "運動器具" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." -msgstr "普通だったらエクササイズに使いますが、普段から十分に命を懸けて走っています。" +"A heavy set of weightlifting equipment for strength training, with a pair of" +" heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." +msgstr "" #: lang/json/furniture_from_json.py msgid "ball machine" @@ -98873,10 +96432,10 @@ msgstr "ボールマシン" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various" -" balls for different types of sports. It's only good for parts now if " -"disassembled." -msgstr "様々なスポーツで使うボールを送り出していた機械ですが、今は動きません。分解して部品を利用する以外に使い道はありません。" +"A simple machine for launching sports balls of various types, with a pair of" +" motorized wheels that, if spun up, would fling the ball at moderate speeds." +" Probably not the most effective ranged weapon against the undead." +msgstr "" #: lang/json/furniture_from_json.py msgid "pool table" @@ -98884,8 +96443,12 @@ msgstr "ビリヤード台" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." -msgstr "美しいビリヤード台です。遊び方が学べれば良かったのですが。" +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." +msgstr "" #: lang/json/furniture_from_json.py msgid "diving block" @@ -98893,8 +96456,10 @@ msgstr "飛び込み台" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" -msgstr "飛んで!飛んで!飛び込め!" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." +msgstr "" #: lang/json/furniture_from_json.py msgid "target" @@ -98902,8 +96467,13 @@ msgstr "標的" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." -msgstr "人間のような形をした、金属製の射撃用標的です。" +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped" +" off." +msgstr "" #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -98912,11 +96482,9 @@ msgstr "アーケード筐体" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." msgstr "" -"バカげたゲームで遊び、バカげた景品をもらおうなんて、なんてバカげたコンセプトでしょう。今や電源も入っておらず、ただのバカとしか言いようがありません。" #: lang/json/furniture_from_json.py msgid "pinball machine" @@ -98925,11 +96493,11 @@ msgstr "ピンボールマシン" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't" -" go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While" +" inoperable without power, it's still impressive to look at, though probably" +" more useful if disassembled." msgstr "" -"20世紀で最も過小評価されたゲームです。ボールが穴に落ちないようにボタンを操作して遊びます。電気がないため稼働していないようです。分解すれば様々な電子部品を入手できます。" #: lang/json/furniture_from_json.py msgid "ergometer" @@ -98938,9 +96506,10 @@ msgstr "エルゴメーター" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." -msgstr "ボートを漕ぐ運動を行う器具です。電力が来ておらず、トレーニングの役には立ちませんが、内部には使える電子部品が入っているかもしれません。" +"An exercise machine with a set of handles and plates meant to emulate rowing" +" a boat. Without power it can't be operated, but it might have useful parts" +" to be scavanged." +msgstr "" #: lang/json/furniture_from_json.py msgid "treadmill" @@ -98949,9 +96518,10 @@ msgstr "ランニングマシーン" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be" -" taken apart for its… parts." -msgstr "足の筋肉を鍛えるために使います。停電時に使うのは困難ですが...部品が欲しいなら分解しましょう。" +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." +msgstr "" #: lang/json/furniture_from_json.py msgid "heavy punching bag" @@ -98960,9 +96530,10 @@ msgstr "サンドバッグ" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" -msgstr "パンチ、パンチ!腕を鍛えましょう!反撃してこない点が長所です!" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." +msgstr "" #: lang/json/furniture_from_json.py msgid "whud." @@ -98975,9 +96546,10 @@ msgstr "ピアノ" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." -msgstr "コントラストが鮮やかな古いピアノです。これを置くだけで部屋が上品になります。分解したいのなら構いませんが...野蛮な人ですね。" +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." +msgstr "" #: lang/json/furniture_from_json.py msgid "a suffering piano!" @@ -98994,11 +96566,10 @@ msgstr "スピーカーキャビネット" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things" -" loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." +"An upright wood-panel case of large speakers, built to produce a potentially" +" deafening volume level. While this is a terrible idea to use now, it could" +" hold useful parts." msgstr "" -"様々な音を増幅する、12インチスピーカーを搭載したキャビネットです。今の状態では本来の目的を果たせませんが、分解すれば様々な電子部品を入手できます。" #: lang/json/furniture_from_json.py msgid "dancing pole" @@ -99006,8 +96577,11 @@ msgstr "ダンスポール" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." -msgstr "ダンスに用いる背の高い金属製のポールが床と天井に固定されています。" +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." +msgstr "" #: lang/json/furniture_from_json.py msgid "roulette table" @@ -99015,23 +96589,35 @@ msgstr "ルーレットテーブル" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." -msgstr "損傷した大きなルーレットテーブルです。" +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." +msgstr "" -#. ~ Description for this should never actually show up, it's a pseudo -#. furniture #: lang/json/furniture_from_json.py msgid "this should never actually show up, it's a pseudo furniture" msgstr "実際に表示されない疑似的な設置物です。" +#. ~ Description for this should never actually show up, it's a pseudo +#. furniture +#: lang/json/furniture_from_json.py +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cell phone signal booster" msgstr "携帯電話信号ブースター" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." -msgstr "携帯電話信号ブースターです。内蔵部品は役立つかもしれません。" +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." +msgstr "" #: lang/json/furniture_from_json.py msgid "womp!" @@ -99043,8 +96629,11 @@ msgstr "衛星放送受信アンテナ" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." -msgstr "家庭用の小さな衛星放送受信アンテナです。" +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." +msgstr "" #: lang/json/furniture_from_json.py msgid "chimney crown" @@ -99052,8 +96641,10 @@ msgstr "煙突トップ" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." -msgstr "煤けた煙突の頂上部です。" +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." +msgstr "" #: lang/json/furniture_from_json.py msgid "TV antenna" @@ -99061,8 +96652,11 @@ msgstr "テレビアンテナ" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." -msgstr "テレビの受信状況を改善するアンテナです。" +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." +msgstr "" #: lang/json/furniture_from_json.py msgid "vent pipe" @@ -99070,8 +96664,10 @@ msgstr "通気管" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." -msgstr "建物内の空気や悪臭を排出する通気管です。" +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." +msgstr "" #: lang/json/furniture_from_json.py msgid "roof turbine vent" @@ -99080,8 +96676,10 @@ msgstr "屋根換気口" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py msgid "" -"The turbine uses wind power to suck hot and humid air out of the attic." -msgstr "風力を利用してタービンが回転し、屋根裏に溜まった高温多湿の空気を排出します。" +"A rotary wind turbine that will catch the wind and pull out air from inside." +" It is most commonly used for improving air cicrulation, particularly in " +"poorly-ventilated areas like attics." +msgstr "" #: lang/json/furniture_from_json.py msgid "bale of hay" @@ -99089,8 +96687,11 @@ msgstr "干し草の山" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." -msgstr "束ねられた干し草です。非常時にはベッドとして使えます。" +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable" +" bed." +msgstr "" #: lang/json/furniture_from_json.py msgid "whish!" @@ -99102,8 +96703,11 @@ msgstr "木くずの山" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." -msgstr "細かい木くずの山です。シャベルを使用して取り除けます。" +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the" +" way." +msgstr "" #: lang/json/furniture_from_json.py msgid "bench" @@ -99111,8 +96715,10 @@ msgstr "ベンチ" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." -msgstr "浮浪者のための風通しのいいベッドです。自己責任で使ってください。" +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." +msgstr "" #: lang/json/furniture_from_json.py msgid "arm chair" @@ -99120,8 +96726,10 @@ msgstr "肘掛け椅子" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." -msgstr "座り心地はかなり快適です。" +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." +msgstr "" #: lang/json/furniture_from_json.py msgid "airplane seat" @@ -99129,18 +96737,22 @@ msgstr "航空機の座席" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." -msgstr "シートベルトを備えた航空機の座席です。" +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." +msgstr "" #: lang/json/furniture_from_json.py msgid "chair" msgstr "椅子" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." -msgstr "ここに座って一杯やりましょうか。" +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat" +" a meal properly and almost pretend that things were normal again." +msgstr "" #: lang/json/furniture_from_json.py msgid "sofa" @@ -99148,17 +96760,30 @@ msgstr "ソファー" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" -msgstr "寝ころんでも座ってもいい!最高!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." +msgstr "" #: lang/json/furniture_from_json.py msgid "stool" msgstr "スツール" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "" + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." -msgstr "ここに座って一杯やりましょうか。折り畳んで持ち運べます。" +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." +msgstr "" #: lang/json/furniture_from_json.py msgid "log stool" @@ -99167,9 +96792,9 @@ msgstr "丸太椅子" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." -msgstr "丸太の角を軽く丸めただけの、非常に単純な作りの椅子です。" +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." +msgstr "" #: lang/json/furniture_from_json.py msgid "deck chair" @@ -99178,8 +96803,10 @@ msgstr "デッキチェア" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." -msgstr "日光浴のための快適なデッキチェアです。これを使えるほど暇な時間があればいいのですが。" +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground," +" it's not particularly comfortable." +msgstr "" #: lang/json/furniture_from_json.py msgid "bulletin board" @@ -99188,9 +96815,9 @@ msgstr "掲示板" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." -msgstr "様々な情報が張り出された、大きなコルクボードの掲示板です。他の生存者が読めるように、メモが何枚か貼り付けてあります。" +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." +msgstr "" #: lang/json/furniture_from_json.py msgid "sign" @@ -99198,8 +96825,10 @@ msgstr "看板" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." -msgstr "読みましょう。情報が書いてあります。" +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." +msgstr "" #: lang/json/furniture_from_json.py msgid "warning sign" @@ -99208,9 +96837,9 @@ msgstr "警戒標識" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." -msgstr "柱の上の三角形の標識は、何か重要なものや危険を示しています。" +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." +msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "bed" @@ -99219,8 +96848,10 @@ msgstr "ベッド" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." -msgstr "この状況では贅沢品とも言えるベッドです。かなり快適に眠れそうです。" +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." +msgstr "" #: lang/json/furniture_from_json.py msgid "bunk bed" @@ -99228,8 +96859,12 @@ msgstr "二段ベッド" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." -msgstr "2人分のマットレスを備えた木製の二段ベッドです。" +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than" +" you'd like to somebody you wouldn't normally want to share a mattress with," +" a bed's a bed." +msgstr "" #: lang/json/furniture_from_json.py msgid "bed frame" @@ -99238,9 +96873,9 @@ msgstr "ベッドフレーム" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place" -" to sleep. Sleeping on it right now wouldn't be great." -msgstr "空のベッドフレームです。マットレスを設置すれば、眠るのに最適な場所になります。このままの状態で寝るのは快適とは言えません。" +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." +msgstr "" #: lang/json/furniture_from_json.py msgid "whack." @@ -99249,9 +96884,10 @@ msgstr "バシッ。" #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's" -" not quite as comfy as a real bed, but it's pretty close." -msgstr "マットレスが床に敷いてあり、よく眠れそうです。本物のベッドほど快適ではありませんが、ほぼ同じようなものです。" +"An ordinary mattress left on the floor. While it's not as comfortable as an" +" entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py src/map.cpp @@ -99261,10 +96897,11 @@ msgstr "ビリビリビリ!" #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty " -"close." -msgstr "羽毛が入ったマットレスが床に敷いてあり、よく眠れそうです。本物のベッドほど快適ではありませんが、ほぼ同じようなものです。" +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." +msgstr "" #: lang/json/furniture_from_json.py msgid "makeshift bed" @@ -99272,8 +96909,11 @@ msgstr "簡易ベッド" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "本物のベッドほど快適ではありませんが、十分眠れます。" +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal" +" bed, albeit with a slightly lumpy mattress. Considering the circumstances," +" it's not too bad at all." +msgstr "" #: lang/json/furniture_from_json.py msgid "straw bed" @@ -99281,8 +96921,10 @@ msgstr "藁ベッド" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." -msgstr "寝ころぶと少しむずむずします。" +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." +msgstr "" #: lang/json/furniture_from_json.py msgid "bookcase" @@ -99290,8 +96932,10 @@ msgstr "本棚" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" -msgstr "本を保管します。いやいや。本なんて読む奴いるのか?" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "entertainment center" @@ -99299,8 +96943,11 @@ msgstr "AVラック" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." -msgstr "AV機器や収集した書籍などを置く棚です。" +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden" +" cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "coffin" @@ -99308,8 +96955,12 @@ msgstr "棺" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." -msgstr "大変動で命を落とした数多の遺体が眠っています。" +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will" +" likely never receive." +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "wham!" @@ -99322,9 +96973,11 @@ msgstr "開いた棺" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." -msgstr "いつの日かこの中に入る時に、見るに堪えない姿になっていないことを祈りましょう。" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." +msgstr "" #: lang/json/furniture_from_json.py msgid "crate" @@ -99333,9 +96986,10 @@ msgstr "木箱" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." -msgstr "中身は何でしょう?こじ開けて見てみましょう!叩き壊しても空けられますが、中身が壊れてしまうかもしれません。" +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." +msgstr "" #: lang/json/furniture_from_json.py msgid "open crate" @@ -99343,15 +96997,20 @@ msgstr "開いた木箱" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" -msgstr "何が出るかな?覗いてみよう!" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of" +" nails, could be sealed back shut." +msgstr "" #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." -msgstr "大きな段ボール箱です。物の保管や隠れ場所として利用できます。" +"A large box made of a brown paper-based material. Could contain a number of" +" things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect" +" you if you're found." +msgstr "" #: lang/json/furniture_from_json.py msgid "crumple!" @@ -99367,8 +97026,10 @@ msgstr "衣装棚" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." -msgstr "着飾ってゾンビプロムなどの様々なイベントに参加しましょう。" +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." +msgstr "" #: lang/json/furniture_from_json.py msgid "glass front cabinet" @@ -99376,8 +97037,11 @@ msgstr "ガラス棚" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." -msgstr "透明なガラス窓が付いた背の高い収納家具です。" +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -99391,8 +97055,12 @@ msgstr "銃保管庫" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." -msgstr "ワァオー。ピカピカ。" +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "screeching metal!" @@ -99404,8 +97072,11 @@ msgstr "銃保管庫(鍵詰まり)" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." -msgstr "銃は入っていましたか?知りようがありません。鍵穴が詰まっています。" +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." +msgstr "" #: lang/json/furniture_from_json.py msgid "electronic gun safe" @@ -99413,8 +97084,12 @@ msgstr "銃保管庫(電子錠)" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" -msgstr "ハッキング解錠に成功して銃をゲットできるかな?" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking" +" system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." +msgstr "" #: lang/json/furniture_from_json.py msgid "locker" @@ -99422,8 +97097,10 @@ msgstr "ロッカー" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." -msgstr "通常は備品などを保管するのに使います。" +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "mailbox" @@ -99432,9 +97109,10 @@ msgstr "郵便受け" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come" -" for awhile. Doesn't look like it's coming again anytime soon." -msgstr "木製の柱の上に金属製の箱が乗っています。郵便はここしばらく配達されていないようです。この先も配達されるとは思えません。" +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." +msgstr "" #: lang/json/furniture_from_json.py msgid "clothing rail" @@ -99442,8 +97120,11 @@ msgstr "ハンガーレール" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." -msgstr "衣類用ハンガーを掛けるためのレールです。" +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes." +" Usually used in theater or retail environments, it's easy to use and quick" +" to access." +msgstr "" #: lang/json/furniture_from_json.py msgid "display rack" @@ -99451,8 +97132,10 @@ msgstr "棚(金属)" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." -msgstr "物品を陳列しましょう。" +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." +msgstr "" #: lang/json/furniture_from_json.py msgid "wooden rack" @@ -99460,8 +97143,10 @@ msgstr "棚(木)" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." -msgstr "シンプルな木製の棚です。物品を陳列しましょう。" +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." +msgstr "" #: lang/json/furniture_from_json.py msgid "coat rack" @@ -99469,8 +97154,10 @@ msgstr "コート掛け" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." -msgstr "上着と帽子を掛けておくフックが付いた台です。" +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." +msgstr "" #: lang/json/furniture_from_json.py msgid "recycle bin" @@ -99478,8 +97165,12 @@ msgstr "リサイクルゴミ箱" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." -msgstr "リサイクル用のアイテムを入れておきます。" +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it." +" While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." +msgstr "" #: lang/json/furniture_from_json.py msgid "safe" @@ -99487,13 +97178,18 @@ msgstr "金庫" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." -msgstr "物品を保管します。安全確実。" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." +msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" -msgstr "どうしてこんなもの保管してたんだ?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "open safe" @@ -99501,8 +97197,10 @@ msgstr "開いた金庫" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" -msgstr "銃を取れ!" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." +msgstr "" #: lang/json/furniture_from_json.py msgid "trash can" @@ -99510,8 +97208,11 @@ msgstr "ゴミ箱" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." -msgstr "ある人にとってはゴミでも、他の誰かにとってはディナーです。" +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." +msgstr "" #: lang/json/furniture_from_json.py msgid "wardrobe" @@ -99519,8 +97220,11 @@ msgstr "ワードローブ" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." -msgstr "一般的な背の高いクローゼットです。" +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." +msgstr "" #: lang/json/furniture_from_json.py msgid "filing cabinet" @@ -99529,11 +97233,9 @@ msgstr "ファイルキャビネット" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." msgstr "" -"ファイル保管用の頑丈な金属製キャビネットと引き出しです。重要書類を保管する際は鍵を掛けられます。運が良ければ、近くに鍵があるかもしれません。" #: lang/json/furniture_from_json.py msgid "utility shelf" @@ -99541,8 +97243,10 @@ msgstr "収納棚" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." -msgstr "プラスチックと金属で作られたシンプルで頑丈な棚です。" +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools" +" and materials for easy access to workers." +msgstr "" #: lang/json/furniture_from_json.py msgid "warehouse shelf" @@ -99551,9 +97255,8 @@ msgstr "倉庫棚" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." -msgstr "パレットや木箱を保管するための、金属製の大きく頑丈な棚です。" +"A huge, sturdy steel shelf for storing pallets of crates in warehouses." +msgstr "" #: lang/json/furniture_from_json.py msgid "wooden keg" @@ -99561,8 +97264,10 @@ msgstr "ビア樽(木)" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." -msgstr "大部分が木で作られたビア樽です。中には液体、できれば酒を入れましょう。" +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." +msgstr "" #: lang/json/furniture_from_json.py msgid "display case" @@ -99570,8 +97275,11 @@ msgstr "陳列ケース" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." -msgstr "装飾的かつ安全に物品を陳列しましょう。" +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." +msgstr "" #: lang/json/furniture_from_json.py msgid "broken display case" @@ -99579,8 +97287,12 @@ msgstr "壊れた陳列ケース" #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." -msgstr "物品を陳列しましょう。盗難確実。" +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Would be useful for storing valuable things while still showing them off, " +"if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." +msgstr "" #: lang/json/furniture_from_json.py msgid "standing tank" @@ -99588,8 +97300,9 @@ msgstr "スタンディングタンク" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." -msgstr "液体の保管に便利な大型の自立式金属タンクです。" +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." +msgstr "" #: lang/json/furniture_from_json.py msgid "dumpster" @@ -99597,8 +97310,11 @@ msgstr "大型ごみ箱" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." -msgstr "ゴミを捨てる場所です。もう誰も収集してくれません。臭いに気を付けましょう。" +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." +msgstr "" #: lang/json/furniture_from_json.py msgid "butter churn" @@ -99606,8 +97322,10 @@ msgstr "バター撹拌機" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." -msgstr "ペダルを踏んで駆動するバター撹拌機です。" +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." +msgstr "" #: lang/json/furniture_from_json.py msgid "counter" @@ -100420,68 +98138,6 @@ msgid "" msgstr "" "好みの環境に定着した、侵略者によって地球に持ち込まれた外来種です。葉はくねくねと歪んでおり、赤い花弁以外は従来のケシというよりも、ジャングルで育つ低木のようです。しかし眠気を催す強い香りを発する特徴があるため、ケシと呼ばれています。" -#: lang/json/furniture_from_json.py -msgid "hydroponics unit" -msgstr "水耕栽培装置" - -#. ~ Description for hydroponics unit -#: lang/json/furniture_from_json.py -msgid "This is a self-contained hydroponics unit used to grow crops indoors." -msgstr "屋内で野菜を栽培できる独立式の水耕栽培装置です。" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seed" -msgstr "水耕栽培装置(播種)" - -#. ~ Description for hydroponics unit with seed -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seed" -msgstr "屋内で野菜を栽培できる独立式の水耕栽培装置です。種が植わっています。" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seedling" -msgstr "水耕栽培装置(発芽)" - -#. ~ Description for hydroponics unit with seedling -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seedling" -msgstr "屋内で野菜を栽培できる独立式の水耕栽培装置です。小さな芽が育っています。" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with mature plant" -msgstr "水耕栽培装置(成長)" - -#. ~ Description for hydroponics unit with mature plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant." -msgstr "屋内で野菜を栽培できる独立式の水耕栽培装置です。植物がぐんぐん育っています。" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with harvestable plant" -msgstr "水耕栽培装置(完熟)" - -#. ~ Description for hydroponics unit with harvestable plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant that is ready for harvest." -msgstr "屋内で野菜を栽培できる独立式の水耕栽培装置です。完全に成熟し、収穫の準備が整いました。" - -#: lang/json/furniture_from_json.py -msgid "hydroponics heater" -msgstr "水耕栽培用ヒーター" - -#. ~ Description for hydroponics heater -#: lang/json/furniture_from_json.py -msgid "This is a self-contained heater, used to warm hydroponics units." -msgstr "水耕栽培ユニットを暖めるための自己完結型のヒーターです。" - #: lang/json/furniture_from_json.py msgid "Translocator Gate" msgstr "転移ゲート" @@ -100594,16 +98250,21 @@ msgstr "" "炎を好む巨大な赤いクモのキチン質を使って作られた炉です。アルメンタムの熱に耐えられる特別製であり、魔法の金属を溶かして加工しやすい鋳塊にすることができます。" #: lang/json/furniture_from_json.py -msgid "krash!" -msgstr "ガシャン!" +msgid "tank trap" +msgstr "対戦車障害物" +#. ~ Description for fungal mass #: lang/json/furniture_from_json.py -msgid "krak." -msgstr "カツン。" +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." +msgstr "菌糸で作られた太い縄が密集しています。柔らかな触り心地ですが、踏みしめると足が沈むため、移動は困難です。" +#. ~ Description for fungal clump #: lang/json/furniture_from_json.py -msgid "tank trap" -msgstr "対戦車障害物" +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +msgstr "地球外の菌糸と茎がしっかりと混じりあい、まるで茂みのように固まっています。" #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py @@ -100799,13 +98460,13 @@ msgstr[0] "酸の矢" msgid "Fake gun that fires acid globs." msgstr "酸溜まりを発射する疑似アイテムです。" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item_factory.cpp msgid "auto" 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 +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "ライフル" @@ -100815,6 +98476,68 @@ msgid "acid dart gun" msgid_plural "acid dart guns" msgstr[0] "酸の銃" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "ショットガン(.30-06口径/複合パイプ銃)" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from" +" a double barrel shotgun." +msgstr "" +"銃身が3つ連なった自家製の銃器です。.30-06口径弾を装填する銃身が1つあり、残り2つの銃身には散弾を装填します。二連ショットガンから取り外した部品とパイプから作られています。" + +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "ショットガン" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] "ライフル(.30-06口径/パイプ銃)" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" +" strike the single round it holds." +msgstr "簡素な自家製ライフルです。単発式で、パイプと銃床を組み合わせたフレームに引き金と撃鉄が付いています。" + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "ライフル(.308口径/手製ヘビーカービン)" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" +"自家製のレバーアクションライフルです。パイプと木材を使った原始的な設計ですが、G3と互換性のある弾倉や強力な.308口径弾を使用するあたりに工夫と努力が窺えます。" + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "ライフル(.223口径/手製カービン)" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the" +" better homemade weapons." +msgstr "" +"銃身が短縮された、手製にしては完成度の高いレバーアクション式カービン銃です。着脱式の自作弾倉やSTANAG規格互換弾倉に対応しており、自家製兵器の中では優れた部類だと言えます。" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] "ライフル(.223口径/パイプ銃)" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -100915,9 +98638,7 @@ msgid "" msgstr "" "21世紀半ばに開発されたV29レーザーピストルをベースにして自作した銃器です。有り体に言えばダクトテープと電子部品の塊です。一般的なUPSで作動します。" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py -#: lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "ハンドガン" @@ -101014,11 +98735,6 @@ msgstr "シングル" msgid "double" msgstr "ダブル" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "ショットガン" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -101085,6 +98801,37 @@ msgid "" msgstr "" "銃身を短くするなど大幅な改造を加え、銃床とハンドガードを取り付けたネイルガンです。弾倉を装填することができ、元よりも非常に使い勝手の良い武器になっています。" +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "ライフル(5.45x39mm/AN-94)" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" +"AK-" +"74の後継となる予定のライフルです。高度に洗練された基本設計の中に独自の反動吸収機構や超高速2点射機構など野心的なアイデアが盛り込まれています。その複雑さが忌避されたためかロシア軍での制式採用は未だに実現していませんが、一部の特殊部隊には既に配備されています。" + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "2点バースト" + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "ライフル(携帯式レーザーキャノン)" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "" +"TX-5LRケルベロスレーザー砲から取り外された一本の砲身に手を加え、銃器として単体で作動するようにしたものです。作動にはUPSが必要です。" + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -101396,6 +99143,21 @@ msgid "" msgstr "" "最近まではフランス軍でしか使われていなかった、ブルパップ・アサルトライフルです。80年代後半にアメリカに輸入された、発射速度で知られているFAMASのセミオート専用モデルであり、一体型の二脚が付属しています。" +#: lang/json/gun_from_json.py +msgid "FS2000" +msgid_plural "FS2000s" +msgstr[0] "ライフル(.223口径/FS2000)" + +#: lang/json/gun_from_json.py +msgid "" +"A sleek bullpup carbine designed by FN Herstal, complete with an integrated " +"sight accessory rail. The forward ejecting action and ambidextrous controls" +" make firing comfortable for both left and right-handed shooting. The whole" +" rifle is well sealed from mud and dust for reliability, but this makes it " +"incompatible with many aftermarket magazines." +msgstr "" +"FNハースタル社がデザインした、洗練されたブルパップカービンです。前方に排莢され左右どちらでも構えられるデザインにより、左利きでも右利きでも快適に射撃できます。泥や埃が入るのを防ぐためライフル全体が密閉されているため信頼性は高いですが、その分様々な互換弾倉との相性が悪くなっています。" + #: lang/json/gun_from_json.py msgid "HK416 A5" msgid_plural "HK416 A5s" @@ -101437,6 +99199,19 @@ msgstr "" msgid "burst" msgstr "バースト" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "ライフル(.223口径/M249S)" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" +"射撃競技者やコレクター向けに製造された、M249マシンガンの民間向けセミオートモデルです。民生品には珍しい、弾帯を使って装填できる点が特徴です。" + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -101494,17 +99269,6 @@ msgstr "" "オリンピックアームズ社が90年代に製造した、AR-15から派生したピストルです。AR-" "15との主な違いは、コイルスプリングを銃の上部に移すことで、しっかりとした銃床の必要性をなくした点です。" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] "ライフル(.223口径/パイプ銃)" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" -" strike the single round it holds." -msgstr "簡素な自家製ライフルです。単発式で、パイプと銃床を組み合わせたフレームに引き金と撃鉄が付いています。" - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -101555,19 +99319,6 @@ msgid "" "low recoil and high accuracy." msgstr "独特の形状で知られるオーストリア製ブルパップ・アサルトライフルです。多くの国の軍隊や警察で採用されており、低い反動と高い精度が好評です。" -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "ライフル(.223口径/手製カービン)" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the" -" better homemade weapons." -msgstr "" -"銃身が短縮された、手製にしては完成度の高いレバーアクション式カービン銃です。着脱式の自作弾倉やSTANAG規格互換弾倉に対応しており、自家製兵器の中では優れた部類だと言えます。" - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -101690,11 +99441,6 @@ msgid "" msgstr "" "非常に人気のある頑丈な狩猟/狙撃用ライフルで、この銃を原型とするM24と共に世界中の軍や警察でも使われているレミントン社のベストセラーです。殺傷力に優れますがブローニングBLRと比較すると精度でわずかに劣るかもしれません。" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] "ライフル(.30-06口径/パイプ銃)" - #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" msgid_plural "Remington ACR .300BLKs" @@ -101822,18 +99568,15 @@ msgstr "" ".300口径のM1918及びM1919の後継として開発された汎用マシンガンです。肩付けや腰溜めで撃つには重く、非常に制御が困難です。なかなかアクション映画の主人公みたいにはいきませんね。" #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" -msgstr[0] "ライフル(.308口径/手製ヘビーカービン)" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" +msgstr[0] "ライフル(.308口径/M60セミオート)" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." -msgstr "" -"自家製のレバーアクションライフルです。パイプと木材を使った原始的な設計ですが、G3と互換性のある弾倉や強力な.308口径弾を使用するあたりに工夫と努力が窺えます。" +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "M60マシンガンの民間向けセミオートモデルです。民生品には珍しく、弾帯を使って装填できます。" #: lang/json/gun_from_json.py msgid "Savage 111F" @@ -102627,9 +100370,9 @@ msgid "" msgstr "一見して鉄屑を溶接したものと分かる、大型で重い拳銃です。醜さは.45口径の反動に耐えるためのものです。衝撃に備えましょう。" #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" -msgstr[0] "サブマシンガン(.45口径/トンプソン)" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" +msgstr[0] "サブマシンガン(.45口径/トンプソンM1928A1)" #: lang/json/gun_from_json.py msgid "" @@ -102664,9 +100407,9 @@ msgstr "" "USPシリーズの導入、戦域で.45ACP弾を補給する兵站の問題などが重なり、このデカブツはアメリカ特殊作戦軍の武器庫で眠る運命を辿りました。USPと同様に信頼性の高い銃ですが、これをホルスターに入れるのは戦車に核爆弾を積むようなものです。" #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" -msgstr[0] "ハンドガン(.45口径/ワルサーPPQ ACP)" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" +msgstr[0] "ハンドガン(.45口径/ワルサーPPQ 45)" #: lang/json/gun_from_json.py msgid "" @@ -102947,25 +100690,6 @@ msgid "" " the AK series with the high-velocity, lightweight 5.45x39mm cartridge." msgstr "有名なAK-47ライフルの後継となる銃です。AKシリーズの信頼性はそのままに、弾速が速く軽量な5.45x39mm弾を使用できます。" -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "ライフル(5.45x39mm/AN-94)" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" -"AK-" -"74の後継となる予定のライフルです。高度に洗練された基本設計の中に独自の反動吸収機構や超高速2点射機構など野心的なアイデアが盛り込まれています。その複雑さが忌避されたためかロシア軍での制式採用は未だに実現していませんが、一部の特殊部隊には既に配備されています。" - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "2点バースト" - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -103320,17 +101044,6 @@ msgid "" msgstr "" "元々は軍隊向けに開発されていたRivtech社製バトルライフルです。耐久性と火力に優れ、あらゆる環境において容易に持ち運ぶことができます。反動を制御するためのガスポート付きヘビーバレルが組み込まれています。500発箱型弾倉のRMXB500、または250発ドラム型弾倉のRMD250に対応します。" -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "ハンドガン(8x40mm/RM99リボルバー)" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" -" addition to the arsenal of any gunslinger." -msgstr "天下に轟く破壊力。圧倒的な威力を誇るRivtech M99は全てのガンスリンガーの武器庫に加わる資格を持った一丁です。" - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -103796,19 +101509,6 @@ msgid "" msgstr "" ".30-06口径の銃身と2つの散弾用滑腔銃身を併せ持った、中折式の複合銃です。かつて自己中心的なハンター達がアフリカで振り回していた銃を、自己中心的な子孫達がニューイングランドで振り回しています。" -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "ショットガン(.30-06口径/複合パイプ銃)" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from" -" a double barrel shotgun." -msgstr "" -"銃身が3つ連なった自家製の銃器です。.30-06口径弾を装填する銃身が1つあり、残り2つの銃身には散弾を装填します。二連ショットガンから取り外した部品とパイプから作られています。" - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -103961,6 +101661,18 @@ msgid "" msgstr "" "手作りの布製弾帯で弾薬を供給する、6つの銃身をもつ電動ガトリングショットガンです。適切に固定してもなお獣のように扱い辛く、銃身が複数あるため照準も困難です。駆動部が外側に取り付けられているため、弾詰まりの可能性は低くなっています。" +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -104336,18 +102048,6 @@ msgid "" "quiet and accurate marksman laser rifle." msgstr "RMES外骨格メックスーツ用の内蔵型銃器システムである、静音性と精密性に優れた狙撃用レーザーライフルです。" -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "ライフル(携帯式レーザーキャノン)" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "" -"TX-5LRケルベロスレーザー砲から取り外された一本の砲身に手を加え、銃器として単体で作動するようにしたものです。作動にはUPSが必要です。" - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" @@ -104549,9 +102249,8 @@ msgstr[0] "バレットクロスボウ" msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." -msgstr "" -"旧式のクロスボウを改造して、矢の代わりに石つぶてを発射できるようにしたものです。基本的には小動物を狩るために使います。筋力が高いほど素速く装填できます。" +"hunting small game." +msgstr "旧来のクロスボウを改造して、矢の代わりに石つぶてを発射できるようにしたものです。基本的には小動物を狩るために使います。" #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -104573,11 +102272,9 @@ msgstr[0] "クロスボウ" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." -msgstr "" -"機械式の弓です。引き金を引いてボルトを発射し、装填に時間がかかります。筋力が高いほど素速く装填することができます。放たれたボルトは消滅しなければ再利用が可能です。" +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." +msgstr "機械式の弓です。時間をかけてボルトを装填し、引き金を引いて発射します。放たれたボルトは消滅しなければ再利用が可能です。" #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -104722,8 +102419,9 @@ msgstr[0] "スリング" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." -msgstr "扱いやすく狙いを定めやすい、革製のスリングです。弾薬として石つぶてを使います。" +"A leather sling, can launch rocks much further and faster than throwing them" +" by hand." +msgstr "革製のスリングです。手を使うよりもはるかに高い速度で遠くへ石を投げつけられます。" #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -104737,9 +102435,9 @@ msgstr[0] "スリングショット" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as " -"ammunition." -msgstr "扱いやすく狙いも定めやすい、木製のスリングショットです。弾薬として石つぶてを使います。" +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." +msgstr "Y字型の木の棒の先端に伸縮性の高い紐を張った投擲武器です。小石などの小さな物体を高速で発射します。" #: lang/json/gun_from_json.py msgid "staff sling" @@ -104748,9 +102446,9 @@ msgstr[0] "投石杖" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." -msgstr "扱いやすく狙いを定めやすい、杖に取り付けた革製のスリングです。弾薬として石を使います。" +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." +msgstr "鞭を打つような動きで石を発射する杖です。非常に高速度で遠くへ石を投げつけられます。" #: lang/json/gun_from_json.py msgid "brace slingshot" @@ -104759,9 +102457,9 @@ msgstr[0] "ブレーススリングショット" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." -msgstr "手首に支えが伸びた現代式のスリングショットです。扱いやすく、高精度かつ強力です。" +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." +msgstr "手首固定具が付いた現代的なスリングショットです。小さな弾丸を発射し、単純な作りの木製スリングショットより若干高いダメージを与えられます。" #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -105011,10 +102709,9 @@ msgid "" " mid-range versatility of the 9mm with the power of the 12 gauge shotgun. " "To further compliment the CQB aspect, the stock is built to amplify the " "user's force and the rugged construction with tonfa-like grip can handle " -"bashing in enemy heads. An integrated magazine makes it a pain to reload, " -"but keeps your clip from ejecting accidently." +"bashing in enemy heads." msgstr "" -"中距離で汎用性が高い9mm弾と威力の高い散弾を組み合わせた、シンプルな軍用複合銃です。CQBの戦法を補完するため、銃床は使用者の力を増幅するトンファーのようなグリップが付いた形状になっており、敵の頭をぶん殴れるほど頑丈です。内蔵型の弾倉は弾薬を装填し辛い構造ですが、クリップが誤って外れてしまう事故を防ぎます。" +"中距離で汎用性が高い9mm弾と威力の高い散弾を組み合わせた、シンプルな軍用複合銃です。CQBの戦法を補完するため、銃床は使用者の力を増幅するトンファーのようなグリップが付いた形状になっており、敵の頭をぶん殴れるほど頑丈です。" #: lang/json/gun_from_json.py msgid "CRIT Fire Glove" @@ -105065,9 +102762,9 @@ msgid "" "Experimental double purpose tool under development in C.R.I.T R&D. It takes" " a regular nail and then enlongates it within a fraction of a second before " "firing it out, upon reaching a target, the fragile stake explodes into " -"shards." +"shards inside the target." msgstr "" -"C.R.I.T研究開発部が開発中の、2つの用途をもった工具です。通常の釘を発射する直前に長く引き伸ばします。壊れやすい材質の木材などは粉々になってしまいます。" +"C.R.I.T研究開発部が開発中の、2つの用途をもった工具です。通常の釘を発射する直前に長く引き伸ばすことで、命中すると壊れやすくなった釘が標的の体内で破片となって散らばります。" #: lang/json/gun_from_json.py msgid "Line Gun" @@ -105185,243 +102882,33 @@ msgid "" msgstr "設計が古いため現代銃器には劣りますが、それでもかなり高水準の威力を発揮します。熟練したガンナーであれば、弾薬も簡単に自作できます。" #: lang/json/gun_from_json.py -msgid "SVS-24" -msgid_plural "SVS-24" -msgstr[0] "ライフル(6.54x42mm/SVS-24)" - -#: lang/json/gun_from_json.py -msgid "" -"The Sarafanov Assault Rifle replaced the famous AK family of guns as the " -"service rifle of the Russian Army. It uses the 6.54x42mm cartridge." -msgstr "" -"AKシリーズの後継としてロシア連邦が制式採用したサラファーノフ・アサルトライフルの標準型...を、Clearwater " -"Arms社がコピー生産したモデルです。設計者であるアレクサンダー・サラファーノフはかつてアメリカで試作されたXM-" -"32に着想を得たと語っています。6.54x42mm弾を使用します。" - -#: lang/json/gun_from_json.py -msgid "SVS-24C" -msgid_plural "SVS-24C" -msgstr[0] "ライフル(6.54x42mm/SVS-24C)" - -#: lang/json/gun_from_json.py -msgid "" -"The compact version of the standard SVS-24. It is commonly issued to tank " -"crews or special forces due to its smaller size. The shorter barrel reduces" -" accuracy." -msgstr "戦車兵や特殊部隊向けに改修された、SVS-24のコンパクトモデルです。銃身が短くなっているためやや精度が下がっています。" - -#: lang/json/gun_from_json.py -msgid "CW-24" -msgid_plural "CW-24" -msgstr[0] "ライフル(5.45x39mm/CW-24)" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It was made by Clearwater Arms, Georgia, " -"for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" -" cartridge." -msgstr "" -"Clearwater Arms社がアメリカ国内向けに販売している、SVS-" -"24の民間モデルです。純然たるセミオートライフルで、威力を落とした5.45x39mm弾を使用します。" - -#: lang/json/gun_from_json.py -msgid "CW-24M" -msgid_plural "CW-24M" -msgstr[0] "ライフル(6.54x42mm/CW-24M)" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" -" as the SVS-24." -msgstr "SVS-24の民間モデルです。通常のSVS-24と同じく6.54x42mm弾を使用します。" - -#: lang/json/gun_from_json.py -msgid "CW-24K" -msgid_plural "CW-24K" -msgstr[0] "ライフル(7.62x39mm/CW-24K)" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the cheaper, but still " -"powerful, 7.62x39mm cartridge." -msgstr "SVS-24の民間モデルです。安価ながらも十分な威力を持つ7.62x39mm弾を使用します。" - -#: lang/json/gun_from_json.py -msgid "Modified CW-24" -msgid_plural "Modified CW-24" -msgstr[0] "ライフル(5.45x39mm/改造CW-24)" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It has a modified receiver and a new " -"crudely crafted full-auto bolt carrier. Don't expect the original " -"reliability." -msgstr "" -"SVS-24の民間モデルです。レシーバーに改造が加えられており、信頼性に欠ける自作のフルオート機構が組み込まれています。これでオリジナルのSVS-" -"24と同じなったとは思わないほうがいいでしょう。" - -#: lang/json/gun_from_json.py -msgid "Modified CW-24M" -msgid_plural "Modified CW-24M" -msgstr[0] "ライフル(6.54x42mm/改造CW-24M)" - -#: lang/json/gun_from_json.py -msgid "CWD-63" -msgid_plural "CWD-63" -msgstr[0] "ライフル(.308口径/CWD-63)" - -#: lang/json/gun_from_json.py -msgid "" -"The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " -"rechambered for the .308 round." -msgstr "ロシア製SVD-63ドラグノフの、Cleawater Arms社独自改修バージョンです。.308口径の弾薬を使用します。" - -#: lang/json/gun_from_json.py -msgid "Wrist DREAD" -msgid_plural "Wrist DREAD" -msgstr[0] "サブマシンガン(ドレッドペレット/リストドレッド)" - -#: lang/json/gun_from_json.py -msgid "" -"The miniaturized version of the DREAD MkIX attached to the wrist of the " -"operator. It fires .20 metal pellets at an incredible rate without any " -"flash or noise. It is mainly a defensive weapon." -msgstr "" -"ドレッドMk.IXの縮小版で、手首に装着する補助的な個人防御兵器です。騒音や閃光を発することなく、.20口径の金属ペレットを驚異的な高回転で連射します。" - -#: lang/json/gun_from_json.py -msgid "JHEC M128" -msgid_plural "JHEC M128s" -msgstr[0] "ハンドガン(.454口径/JHEC M128)" - -#: lang/json/gun_from_json.py -msgid "" -"The Johnson Heavy Equipment Co. M128 autorevolver; all others fail to " -"measure up. Johnson Heavy Equipment Co. is a subsidiary of D&B " -"Minneapolis." -msgstr "" -"Johnson Heavy Equipment社のM128オートリボルバーは、何もかもが期待外れです。Johnson Heavy " -"Equipment社はD&B Minneapolisの子会社です。" - -#: lang/json/gun_from_json.py -msgid "Boomlighter 454" -msgid_plural "Boomlighter 454s" -msgstr[0] "ハンドガン(.454口径/ブームライター)" - -#: lang/json/gun_from_json.py -msgid "" -"Handmade by master gunsmiths at D&B Minneapolis, this deadly accurate and " -"powerful pistol packs a punch with precision, power and flair. Comes with a" -" one of a kind integrated flamethrower." -msgstr "" -"D&B " -"Minneapolisに所属する鉄砲鍛冶の親方が手作りした非常に緻密かつ強力なこのピストルは、非常に優れた精度、威力、センスを備えています。この銃には一体型の火炎放射器が付属しています。" - -#: lang/json/gun_from_json.py -msgid "gunsword" -msgid_plural "gunswords" -msgstr[0] "ハンドガン(.50口径/ガンソード)" - -#: lang/json/gun_from_json.py -msgid "" -"A long sharp blade, with two powerful .500 S&W Magnum chambers in the hilt." -" While chambering big rounds, the barrels are so short it slightly reduces " -"outgoing damage." -msgstr "" -"長く鋭利な剣の柄に、強力な.50口径S&W弾を2発装填できるようになっています。大口径の弾薬を使っていますが、銃身が短いため威力は多少低下します。" - -#: lang/json/gun_from_json.py -msgid "gunknife" -msgid_plural "gunknives" -msgstr[0] "ハンドガン(.50口径/ガンナイフ)" - -#: lang/json/gun_from_json.py -msgid "" -"A short but sharp blade, with two powerful .500 S&W Magnum chambers in the " -"grip. While chambering big rounds, the barrels are so short it slightly " -"reduces outgoing damage." -msgstr "" -"短く鋭利なナイフの持ち手に、強力な.50口径S&W弾を2発装填できるようになっています。大口径の弾薬を使っていますが、銃身が短いため威力は多少低下します。" - -#: lang/json/gun_from_json.py -msgid "FiveO handcannon" -msgid_plural "FiveO handcannons" -msgstr[0] "ハンドガン(.50口径/FiveOハンドキャノン)" - -#: lang/json/gun_from_json.py -msgid "" -"Someone crazy thought that the .50 BMG belonged in a pistol. This massive " -"piece of steel proves otherwise. The sheer bulk however does make it quite " -"adept at smashing face." -msgstr "" -".50口径BMG弾は拳銃弾に属するという考えは馬鹿げていますが、この巨大な鋼鉄の塊はそうではないことを証明しています。そのあまりにも嵩張る代物は、誰かの顔面に叩きつける用途にうってつけです。" - -#: lang/json/gun_from_json.py -msgid "M919" -msgid_plural "M919s" -msgstr[0] "サブマシンガン(9mm/M919)" - -#: lang/json/gun_from_json.py -msgid "" -"Manufactured by Sarah and Suhl machine company of Portland, Maine, the M919 " -"submachine gun is the most accurate 9x19mm submachine gun on the market. " -"Intended for police use, it is fitted with an integral grenade launcher." -msgstr "" -"メーン州ポートランドのSarah and " -"Suhl社で製造されたM919は、市販されている中では最も精密な9x19mmサブマシンガンです。警察の運用を意図し、一体型のグレネードランチャーが装着されています。" - -#: lang/json/gun_from_json.py -msgid "Eagle 1776" -msgid_plural "Eagle 1776" -msgstr[0] "サブマシンガン(.44口径/イーグル1776)" - -#: lang/json/gun_from_json.py -msgid "" -"You see before you a marvel of American engineering: a powerful .44 Magnum " -"submachine gun, made from fine parts assembled in America, including an " -"integral grenade launcher. Eagle 1776: From the arsenal of freedom!" -msgstr "" -"アメリカ驚異の工学技術をご照覧あれ。この強力な.44口径マグナム弾を用いるサブマシンガンは細かな部品からアメリカ国内で組み立てられており、一体型のグレネードランチャーが取り付けてあります。イーグル1776、自由の兵器庫から生まれた銃!" - -#: lang/json/gun_from_json.py -msgid "L.T. carbine" -msgid_plural "L.T. carbines" -msgstr[0] "サブマシンガン(L.T.カービン)" - -#: lang/json/gun_from_json.py -msgid "" -"The Lightning Trail carbine was developed for the riot police to quickly " -"blanket an area with lightning clouds. While damaging, it is less lethal " -"than live ammunition." -msgstr "" -"ライトニング・トレイル・カービンは暴動鎮圧用途に開発された銃で、起動すると一区画を大規模な電撃で素早く覆いつくします。殺傷力は実弾に比べて致命的に劣ります。" - -#: lang/json/gun_from_json.py -msgid "arc cannon" -msgid_plural "arc cannons" -msgstr[0] "ライフル(アーク放電砲)" +msgid "pipe rifle" +msgid_plural "pipe rifles" +msgstr[0] "ライフル(ライフル弾/パイプ銃)" #: lang/json/gun_from_json.py msgid "" -"The arc cannon fires bolts of lightning arcing between targets in close " -"proximity to each other. Originally manufactured to fry insects, now it’s " -"been turned up to fry zombies." +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." msgstr "" -"密集した標的に連鎖する電撃を発射する、アーク放電砲です。素早い昆虫への対策として開発されましたが、今では素早いゾンビ達に向けて用いられています。" +"頑丈なパイプに薬室を設けて強化した銃です。1発の標準的なライフル弾を装填し、単純な仕組みで発射します。抜取装置がないため装填には時間がかかり、構造に問題点が多いことから信頼性と寿命も期待できません。" #: lang/json/gun_from_json.py -msgid "M1911 DS" -msgid_plural "M1911 DSs" -msgstr[0] "ハンドガン(.45口径/M1911 DS)" +msgid "survivor carbine" +msgid_plural "survivor carbines" +msgstr[0] "ライフル(ライフル弾/サバイバーカービン)" #: lang/json/gun_from_json.py msgid "" -"The M1911 Darkstalker is a very modified M1911, it has a fully integrated " -"crossbow and added rails. Professional looking with a ebony black finish, " -"laced with lime green details. Now they will know why they fear the night." -" Bat hood sold separately." +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than" +" ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." msgstr "" -"M1911ダークストーカーはM1911を大幅に改造した銃で、クロスボウと完全に一体化し、MODを取り付けられるレールが付属しています。エボニーブラックで仕上げられた表面にライムグリーンで細かな装飾が施されており、熟練の技を感じさせます。これで奴らも夜の恐ろしさを真に理解するでしょう。コウモリスーツは別売です。" +"標準的なライフル弾に対応した、粗い作りのカービン銃です。サービスライフル用の弾倉を装填でき、基本的なレバーアクションシステムで発射します。問題点が多い構造と高圧力のため、理想的な耐久性と信頼性は得られませんが、手入れを怠らなければ長期運用も可能なはずです。" #: lang/json/gun_from_json.py msgid "antique pistol" @@ -105780,35 +103267,6 @@ msgid "" msgstr "" "ライトマシンガンは、部隊の戦術の要である抑制射撃に使われる手ごわい銃です。弾帯によって数百発の弾薬を装填でき、頑丈な作りは長時間の連続射撃にも耐えられます。サービスライフルほどの精密射撃はできませんが、ある程度の距離内であればかなり高威力の射撃が可能です。装填に時間がかかるのが欠点です。" -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "ライフル(ライフル弾/パイプ銃)" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" -"頑丈なパイプに薬室を設けて強化した銃です。1発の標準的なライフル弾を装填し、単純な仕組みで発射します。抜取装置がないため装填には時間がかかり、構造に問題点が多いことから信頼性と寿命も期待できません。" - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "ライフル(ライフル弾/サバイバーカービン)" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than" -" ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" -"標準的なライフル弾に対応した、粗い作りのカービン銃です。サービスライフル用の弾倉を装填でき、基本的なレバーアクションシステムで発射します。問題点が多い構造と高圧力のため、理想的な耐久性と信頼性は得られませんが、手入れを怠らなければ長期運用も可能なはずです。" - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -106047,619 +103505,34 @@ msgstr "頑丈で柔軟な木に凝った装飾が施された、魔法の力を msgid "Fake gun that fires barbed javelins." msgstr "棘付きジャベリンを発射する疑似アイテムです。" -#: lang/json/gun_from_json.py -msgid "fire lance" -msgid_plural "fire lances" -msgstr[0] "火槍" - -#: lang/json/gun_from_json.py -msgid "" -"An ancient Chinese spear, with a small tube attached for a charge of " -"gunpowder. While it has an extremely short range, it gives a powerful edge " -"in close combat." -msgstr "火薬を充填するための細い筒が付いた古代中国の槍です。射程は非常に短いですが、近接戦闘で強力なダメージを与えます。" - -#: lang/json/gun_from_json.py -msgctxt "gun_type_type" -msgid "melee" -msgstr "近接戦闘" - -#: lang/json/gun_from_json.py -msgid "base robogun" -msgid_plural "base roboguns" -msgstr[0] "ロボット用銃器(ベース)" - -#: lang/json/gun_from_json.py -msgid "" -"This is a pseudo item for monster attacks. If you see this, it's a bug." -msgstr "これはモンスターが攻撃をする際の疑似アイテムです。このアイテムが見えている場合はバグが発生しています。" - -#: lang/json/gun_from_json.py -msgid "integral 12 gauge shotgun" -msgid_plural "integral 12 gauge shotguns" -msgstr[0] "内蔵銃器(ショットガン)" - -#: lang/json/gun_from_json.py -msgid "integral 50 caliber machinegun" -msgid_plural "integral 50 caliber machineguns" -msgstr[0] "内蔵銃器(.50口径マシンガン)" - -#: lang/json/gun_from_json.py -msgid "integral needle gun" -msgid_plural "integral needle guns" -msgstr[0] "内蔵銃器(矢弾)" - -#: lang/json/gun_from_json.py -msgid "integral 8mm firearm" -msgid_plural "integral 8mm firearms" -msgstr[0] "内蔵銃器(8mm)" - -#: lang/json/gun_from_json.py -msgid "integral laser emitter" -msgid_plural "integral laser emitters" -msgstr[0] "内蔵銃器(レーザー)" - -#: lang/json/gun_from_json.py -msgid "integral railgun" -msgid_plural "integral railguns" -msgstr[0] "内蔵銃器(レールガン)" - -#: lang/json/gun_from_json.py -msgid "integral lightning caster" -msgid_plural "integral lightning casters" -msgstr[0] "内蔵銃器(電撃)" - -#: lang/json/gun_from_json.py -msgid "integral EMP generator" -msgid_plural "integral EMP generators" -msgstr[0] "内蔵銃器(EMP)" - -#: lang/json/gun_from_json.py -msgid "atlatl" -msgid_plural "atlatls" -msgstr[0] "アトラトル" - -#: lang/json/gun_from_json.py -msgid "" -"A wooden tool for supporting a javelin, to throw it more effectively than by" -" hand." -msgstr "ジャベリンを補助する手持ちの投槍器です。これを使えば素手よりもずっと効率的な投擲が可能です。" - -#: lang/json/gun_from_json.py -msgid "makeshift crossbow" -msgid_plural "makeshift crossbows" -msgstr[0] "簡易クロスボウ" - -#: lang/json/gun_from_json.py -msgid "" -"A simple, handmade crossbow of the Skane style, with a wooden peg that is " -"pushed up from underneath to loose the bowstring. Not as powerful as other " -"crossbow designs, but it is easier to draw the bow back. Bolts fired from " -"this weapon have a good chance of remaining intact for re-use." -msgstr "" -"バネで木製の杭を押し上げて発射する機構の、シンプルな自作クロスボウです。他のクロスボウほど威力は高くない構造ですが、簡単に装填できます。放たれた矢は消滅しなければ再利用が可能です。" - -#: lang/json/gun_from_json.py -msgid "" -"This is a replica of the bow possessed by Odin, Ichaival, which is rumored " -"to fire 10 arrows with every pull of the string. It has gold and silver " -"ornaments on it." -msgstr "イチイバルと呼ばれるオーディンの弓のレプリカです。一度に10の矢を放つと言われています。金や銀の装飾が施されています。" - -#: lang/json/gun_from_json.py -msgid "integral nailgun" -msgid_plural "integral nailguns" -msgstr[0] "内蔵銃器(ネイルガン)" - -#: lang/json/gun_from_json.py -msgid "mounted crossbow" -msgid_plural "mounted crossbows" -msgstr[0] "搭載型クロスボウ" - -#: lang/json/gun_from_json.py -msgid "Vortical plasma beam" -msgid_plural "Vortical plasma beams" -msgstr[0] "プラズマ渦ビーム" - #: lang/json/gun_from_json.py msgid "TEST compound bow" msgid_plural "TEST compound bows" msgstr[0] "コンパウンドボウ(テスト)" #: lang/json/gun_from_json.py -msgid "30mm autocannon" -msgid_plural "30mm autocannons" -msgstr[0] "ライフル(30mm/機関砲)" - -#: lang/json/gun_from_json.py -msgid "" -"A chain-driven autocannon chambered in 30x113mm, originally designed for " -"aircraft use, but later adapted for armored vehicles. Obviously it needs to" -" be mounted on a vehicle to fire." -msgstr "" -"元々は航空機用に設計され、その後装甲車両に取り付けられるよう改造された、30x113mm弾を使用するチェーン駆動の機関砲です。使用するにはどう見ても車両に搭載する必要があります。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "120mm tank gun" -msgid_plural "120mm tank guns" -msgstr[0] "ランチャー(120mm/戦車砲)" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " -"to fire." -msgstr "戦車用の120mm大砲です。使用するにはどう見ても車両に搭載する必要があります。" - -#: lang/json/gun_from_json.py -msgid "120mm autoloading tank gun" -msgid_plural "120mm autoloading tank guns" -msgstr[0] "ランチャー(120mm/自動装填戦車砲)" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "5発分の自動装填機構が付いた、戦車用の120mm大砲です。使用するにはどう見ても車両に搭載する必要があります。" - -#: lang/json/gun_from_json.py -msgid "120mm remote weapon system" -msgid_plural "120mm remote weapon systems" -msgstr[0] "ランチャー(120mm/無人戦車砲)" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon with an advanced autoloader, designed to operate via remote " -"control. Obviously it needs to be mounted on a vehicle to fire." -msgstr "遠隔制御で動作する自動装填機構を備えた、戦車用の120mm大砲です。使用するにはどう見ても車両に搭載する必要があります。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "155mm howitzer" -msgid_plural "155mm howitzers" -msgstr[0] "ランチャー(155mm/榴弾砲)" - -#: lang/json/gun_from_json.py -msgid "" -"A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "砲兵や重戦車が使用する155mm大砲です。使用するにはどう見ても車両に搭載する必要があります。" - -#: lang/json/gun_from_json.py -msgid "Vehicular ATGM Launcher" -msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "ランチャー(搭載型対戦車誘導ミサイル)" - -#: lang/json/gun_from_json.py -msgid "" -"A launcher for anti-tank guided missiles. While highly accurate, it isn't " -"fire-and-forget. Obviously it needs to be mounted on a vehicle to fire." -msgstr "対戦車誘導ミサイルランチャーです。射撃はかなり正確ですが、自動追尾機能はありません。使用するにはどう見ても車両に搭載する必要があります。" - -#: lang/json/gun_from_json.py -msgid "slingshot cannon" -msgid_plural "slingshot cannons" -msgstr[0] "スリングショット砲" - -#: lang/json/gun_from_json.py -msgid "" -"Essentially several long drawstrings held by two long, reinforced sides and " -"a mechanism attached to a crank to draw and fire it. It's deceptively " -"powerful and surprisingly accurate, but far too large to be used without " -"some sort of stable platform." -msgstr "" -"何本かの長い紐が2本の補強レールにまたがっている単純な構造の兵器です。手回しクランクによって紐を引き、弾薬を発射します。非常に強力かつ正確な射撃が可能ですが、しっかりした銃座なしで使うには大きすぎます。" - -#: lang/json/gun_from_json.py -msgid "lacerator" -msgid_plural "lacerators" -msgstr[0] "ハンドガン(ディスク/レイスレイター)" - -#: lang/json/gun_from_json.py -msgid "" -"This weapon launches serrated metal disks at nearby enemies. It draws its " -"power from a vehicle's engines, and thus must be mounted on such in order to" -" be operated." -msgstr "" -"敵に対して鋸歯が付いた金属製の円盤を発射する武器です。使用するには操作用のシステムに設置し、車両のエンジンから電力を供給する必要があります。" - -#: lang/json/gun_from_json.py -msgid "rotary cannon" -msgid_plural "rotary cannons" -msgstr[0] "ランチャー(紙製薬莢/回転式大砲)" - -#: lang/json/gun_from_json.py -msgid "" -"This fearsome weapon sports 3 barrels in a cyclic configuration. A " -"specialized mechanism loads the otherwise troublesome rounds; allowing it to" -" be fired in quick succession. However, this renders it incredibly " -"unwieldy, and it must be mounted on a support structure in order to be " -"fired." -msgstr "" -"3つの銃身が環状構造で並ぶ恐ろしい武器です。特殊な弾倉による装填のため非常に時間が掛かりますが、連続して発砲することが可能です。改良によって非常に取り回し難くなったために、使用するには固定用の台が必要です" - -#: lang/json/gun_from_json.py -msgid "laser cannon" -msgid_plural "laser cannons" -msgstr[0] "ライフル(レーザー砲)" - -#: lang/json/gun_from_json.py -msgid "" -"This enhanced laser cannon sacrifices efficiency for destructive power. The" -" increased power requirements require a significant power source and the " -"size of the firing mechanism also requires support." -msgstr "効率を犠牲にして破壊力を高めたレーザー砲です。発射するにはかなり多くの電力と、大きな発射機構を固定するための台が必要です。" - -#: lang/json/gun_from_json.py -msgid "pulse laser" -msgid_plural "pulse lasers" -msgstr[0] "ライフル(パルスレーザー)" - -#: lang/json/gun_from_json.py -msgid "" -"Augmented damage capability and rapid bursts make this a powerful weapon. " -"The increased power requirements require a significant power source and the " -"firing mechanism also requires a specialized chassis." -msgstr "破壊力とバースト速度を増強した強力な武器です。大量の電力を消費し、発射機構を特殊な台に設置する必要があります。" - -#: lang/json/gun_from_json.py -msgid "turbolaser cannon" -msgid_plural "turbolaser cannons" -msgstr[0] "ライフル(ターボレーザー砲)" - -#: lang/json/gun_from_json.py -msgid "" -"With an augmented emitter and capacitor, this mounted laser is capable of " -"superheating most materials to the point of exploding. The firing mechanism" -" also requires the services of a specialized chassis, and one must be wary " -"of the prodigious power needs of such a weapon." -msgstr "" -"出力装置と蓄電装置を増強することによって、ほとんどの物体を加熱し爆発させることができる車載兵器です。搭載には専用の車台が必要で、電力も大量に消費することに気を付けなければなりません。" - -#: lang/json/gun_from_json.py -msgid "ripper" -msgid_plural "rippers" -msgstr[0] "ランチャー(ディスク/リッパー)" - -#: lang/json/gun_from_json.py -msgid "" -"This menacing weapon rapidly launches bladed disks that rips through enemies" -" with devastating effect. It draws its power from a vehicle's engines, and " -"thus must be mounted on such in order to be operated." -msgstr "" -"刃が付いた円盤を発射し、敵を切り刻んで致命傷を与える恐ろしい兵器です。使用するには操作用のシステムに設置し、車両のエンジンから電力を供給する必要があります。" - -#: lang/json/gun_from_json.py -msgid "scorpion ballista" -msgid_plural "scorpion ballistae" -msgstr[0] "スコーピオンバリスタ" - -#: lang/json/gun_from_json.py -msgid "" -"A massive tension-operated crossbow. The hand-crank allows one to draw it " -"without the need for heavy labor. It's far too massive to be used on foot, " -"and thus needs to be mounted on a vehicle in order to be operated." -msgstr "" -"巨大な巻き上げ式クロスボウです。ハンドクランクによって苦労することなく弓を引くことができますが、手で持って使用するにはあまりに大きすぎるため、車両に搭載する必要があります。" - -#: lang/json/gun_from_json.py -msgid "harpoon gun" -msgid_plural "harpoon guns" -msgstr[0] "ハープーンガン" - -#: lang/json/gun_from_json.py -msgid "" -"A tension-operated speargun. A hand-crank lets one draw the strings " -"quickly, but it's too unwieldy to handle without a support of some sort." -msgstr "" -"この巻き上げ式スピアガンには手回しクランクが付いており、素早い装填が可能です。そのままでは扱いが難しいため、固定用の台に設置する必要があります。" - -#: lang/json/gun_from_json.py -msgid "tesla cannon" -msgid_plural "tesla cannons" -msgstr[0] "ライフル(テスラキャノン)" - -#: lang/json/gun_from_json.py -msgid "" -"This alteration of the Chain Lightning bionic fires artificial lightning " -"bolts that arc to nearby enemies. It must be attached to a large power " -"source, but it allows for much more powerful bolts." -msgstr "" -"チェインライトニング発生装置によって近くの敵へ人工雷撃を繰り出します。強力な電撃を発生させるため、大規模な電源に接続されている必要があります。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "biting blob" -msgid_plural "biting blobs" -msgstr[0] "バイティングブロブ" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. It has evolved the ability to constantly " -"generate calcified protrusions which are then controlled by sinuous tensile " -"strands. These \"teeth\" can then be used to latch and wound anything " -"unfortunate enough to be nearby. The outer membrane has also become " -"significantly thicker in order to support its more strenuous movement; " -"though it seems pliable enough to pull apart…" -msgstr "" -"生きたブロブがバリアのようにフレーム全体に貼りつき、自律式の武器に変化したものです。角質のような突起を生成する能力を持ち、突起はうねうねと伸び縮みする房によって操作されています。この「歯」は不運な獲物を引っ掛けて近くまで巻き取ります。外膜は激しい動きに耐えられるよう分厚くなっています。簡単に引き剥がせそうです..." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel shooter" -msgid_plural "gel shooters" -msgstr[0] "ジェルシューター" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It trawls the ground for " -"material, which it then strips of nutrition. The remainder is then expelled" -" out at significant velocity towards any nearby threats. The amorphous mass" -" can be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it. It seems pliable enough to pull apart…" -msgstr "" -"生きたブロブが自律式の武器に変化したものです。このブロブの一部分は地面に落ちた物体を底引き網のように掬い、栄養分にしています。残りのブロブは近くにいる任意の脅威に対して高速で射出されます。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。引き剥がせるほど柔らかくなっているようです..." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "frost lancer" -msgid_plural "frost lancers" -msgstr[0] "フロストランサー" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A biological aberration " -"that exists at sub-zero temperatures. After filtering nutrients from the " -"water, it freezes the remainder into an incredibly sharp spear of ice; which" -" it then launches at nearby threats. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。氷点下で生存できる、生物学の枠を超えた生物です。栄養素をろ過した後の水を凍らせ、信じられないほど鋭い槍を形成し、近くにいる脅威に向かって射出します。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "snapping ooze" -msgid_plural "snapping oozes" -msgstr[0] "スナッピングブロブ" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A baffling mutation in an " -"already baffling creature, this blob is encased in a thick coat of fur, " -"which serves as a form of protection. In addition, it is capable of " -"projecting rows of calcified sharp fragments in a manner mimicking the jaw " -"of a more recognizable creature. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。既に不可解な生き物であるブロブが更に不可解な突然変異を起こし、装甲として機能する熱い毛皮のコートに覆われています。また、生物の顎を模倣したような、鋭い歯列のような角質を作り出し、射出することができます。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "blobsaw" -msgid_plural "blobsaws" -msgstr[0] "ブロブソー" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. While its simpler cousins have a limit to " -"the number of keratinous protrusions they can project and control; this blob" -" can utilize hundreds of these sharp fangs to shred anything it detects as a" -" threat into unrecognizable ribbons. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。このブロブはバリアのようにフレーム全体に貼り付いており、角質でできた突起を複数作り出して発射します。さらには数百本の鋭い牙を使い、脅威と認識したものを千切りにして処理します。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fuel puffer" -msgid_plural "fuel puffers" -msgstr[0] "ガソリンブロブ" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digestion process turns the " -"result incredibly viscous which, when threats come near, is launched; " -"ensnaring anything it hits. The amorphous mass can be shaped and attached " -"at your touch, but the weapon itself is inert without something to control " -"it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。このブロブはかなり食べ物にうるさく、ガソリンに含まれる化学物質を好みます。消化する過程でガソリンを非常に粘性の高い物質に変化させ、近くにいる脅威に向けて射出して動けなくします。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "acid puffer" -msgid_plural "acid puffers" -msgstr[0] "アシッドブロブ" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, the " -"digestion process produces highly acidic byproducts; which is then expelled " -"at any nearby enemies. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。このブロブは消化する過程で強酸性の副産物を生成し、近くにいる任意の脅威に向かって吐きかけます。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spiker" -msgid_plural "gel spikers" -msgstr[0] "ジェルスパイカー" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Capable of calcifying large" -" numbers of fang-like fragments within itself. It hurls groups of these " -"fragments along with a small portion of itself. When it reaches its " -"destination, the detached remains shoot these fragments in all directions, " -"expiring in the process. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。体内に牙のような形をした角質の破片を大量に生成し、体の一部と共に射出する能力を持っています。発射体は標的に当たると飛び散って辺りに広がります。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spouter" -msgid_plural "gel spouters" -msgstr[0] "ジェルスパウター" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It can suck in water from a" -" vehicle tank, and forcibly expel it in a wide cone. The amorphous mass can" -" be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。車両のタンクに入った水を吸引し、力強く広角散布します。このブロブ塊はしっかりと形作られており手で取り付けることができますが、武装自体は制御システムなしでは動きません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel lancer" -msgid_plural "gel lancers" -msgstr[0] "ジェルランサー" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Evolving incredible " -"abilities of perception, it is capable of locating and discerning possible " -"threats within a large radius. When a potential threat is located, it fires" -" a small, calcified projectile with incredible speed and accuracy. The " -"amorphous mass can be shaped and attached at your touch, but the weapon " -"itself is inert without something to control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。知覚が驚くべき進化を遂げ、広範囲の探査と索敵が可能になりました。潜在的な脅威を発見すると精密に狙いをつけ、小さな角質を超高速で発射します。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel razor" -msgid_plural "gel razors" -msgstr[0] "ジェルレイザー" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. An enhanced metabolism " -"allows it to calcify large, toothy discs which are then launched towards any" -" nearby threats. The amorphous mass can be shaped and attached at your " -"touch, but the weapon itself is inert without something to control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。代謝が強化され、大きな角質を生成できるようになり、ギザギザのディスクを近くの脅威に向けて射出します。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock bulb" -msgid_plural "shock bulbs" -msgstr[0] "ショックブロブ" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Shockingly, it somehow is " -"able to project electricity, which it then discharges at any nearby threats." -" The amorphous mass can be shaped and attached at your touch, but the " -"weapon itself is inert without something to control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。どういう原理かは不明ですが、知覚の脅威に対して、なんと、電撃を放出する能力を持っています。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel puffer" -msgid_plural "gel puffers" -msgstr[0] "ウォーターブロブ" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, it strips " -"any water it processes of nutrients and expels the remainder towards any " -"nearby threats. The process of filter-feeding also makes the remaining " -"liquid viscous, though it also dissipates fairly quickly. The amorphous " -"mass can be shaped and attached at your touch, but the weapon itself is " -"inert without something to control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。栄養素をろ過した後の水を、近くの脅威に向けて放出します。養分を吸収した残りの液体は粘性を増し、放出されると広範囲に勢いよく飛び散ります。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fire puffer" -msgid_plural "fire puffers" -msgstr[0] "ファイアブロブ" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digested material is still " -"highly flammable, and when launched, also activates an ignition gland " -"located on the outer membrane. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。このブロブはかなり食べ物にうるさく、ガソリンに含まれる化学物質を好みます。消化した残りの物質には高い可燃性が残っており、放出すると同時に外膜上にある腺を活性化させ、点火します。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "spark blight" -msgid_plural "spark blights" -msgstr[0] "スパークブロブ" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It is capable of storing " -"energy from sunlight inside itself in the form of electricity. Then, in a " -"truly baffling show of force, projects a highly concentrated stream of " -"electricity towards any possible threats. The amorphous mass can be shaped " -"and attached at your touch, but the weapon itself is inert without something" -" to control it." -msgstr "" -"生きたブロブが自律式の武器に変化したものです。太陽光のエネルギーを電気に変換して体内に貯蔵する能力があり、不思議な力によって高度に圧縮した電撃を任意の脅威に向けて発射します。この不定形の部品は車両に手で取り付けることができますが、武装自体は制御装置がないと稼働しません。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond lance" -msgid_plural "diamond lances" -msgstr[0] "ダイヤモンドランス" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst; thus a pre-" -"shaped lump of carbon is brought into contact with the matrix, immediately " -"crystallized and launched just as quickly. The launcher requires a " -"specialized chassis in order to be brought to bear on its unfortunate " -"targets." -msgstr "" -"眩く光る致命的な武器です。武器の芯に使われているダイヤモンド基板は触媒として作用し、重炭素素材をダイヤモンドと同等の硬度を持つ結晶へと急激に変化させますが、触媒から分離すると急速に劣化します。この原理によって、鈍い炭素の塊は基板と反応して素早く結晶化し、発射されます。不幸な標的を貫く力に耐えるためには、特別な車台が必要です。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond nova" -msgid_plural "diamond novae" -msgstr[0] "ランチャー(ダイヤモンドノヴァ)" +msgid "Test Glock" +msgid_plural "Test Glocks" +msgstr[0] "" #: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst, and at sizes " -"as large as the projectile used, also rapidly decays when in contact with " -"other matter. Thus the projectile is held and launched by the use of " -"pressurized air from a vortex stone. Upon striking its target, the " -"projectile undergoes explosive decomposition; shattering into a brilliant " -"burst of diamond fragments." +msgid "A handgun for testing, based on the Glock 9mm." msgstr "" -"眩く光る致命的な武器です。武器の芯に使われているダイヤモンド基板は基板として作用し、重炭素素材をダイヤモンドと同等の硬度を持つ結晶へと急激に変化させますが、触媒から分離する、もしくはある程度大きな発射体の場合は同程度の大きさの物体と接触すると、急速に劣化します。この原理によって、発射体は渦流石から放出された圧縮空気を利用して発射されます。標的に命中した発射体は爆発して分解し、美しいダイヤモンド片をまき散らします。" -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex accelerator" -msgid_plural "vortex accelerators" -msgstr[0] "ライフル(BB弾/渦流加速砲)" +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" +msgstr[0] "複合銃用パイプショットガン" -#: lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py msgid "" -"This weapon uses powerful bursts of air to launch sharp fragments at its " -"target at high speed. You'll need some form of platform to mount it on." -msgstr "この武器は強力な空気の爆発を利用して、目標に向けて高速で鋭い破片を発射します。使用するには特定の形状をした台に設置する必要があります" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex cannon" -msgid_plural "vortex cannons" -msgstr[0] "ランチャー(レール/渦流砲)" +"The integrated underbarrel shotgun of a pipe combination gun which holds two" +" shots. It's irremovable." +msgstr "銃のアンダーバレルに装着して複合パイプ銃に改造するための、二連ショットガンです。この部品は銃から取り外せません。" -#: lang/json/gun_from_json.py -msgid "" -"Essentially a large pneumatic gun made to hurl sharpened metal rails. " -"Instead of a mechanical system, you've managed to harness the vortex to " -"power this gun. While powerful for its size, you'll need some form of " -"platform to mount it on." -msgstr "" -"先の尖った金属レールを発射するために作られた、本質的には大きな空気銃と言える武器です。電力供給が必要な機械系統の代わりに、渦流を銃の動力として利用できます。サイズが大きいため強力ですが、使用するには特定の形状をした台に設置する必要があります" +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "アンダーバレル" #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -106890,10 +103763,6 @@ msgid "" "any sort of firearm, greatly expanding its lethality." msgstr "大抵の銃器に取り付けられる、特製の小型火炎放射器です。殺傷能力を大幅に拡張します。" -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "アンダーバレル" - #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" @@ -107234,6 +104103,21 @@ msgstr "" "ピンにT字型のフラップが付いたU字型の金属部品です。AR-" "15ライフルのレシーバー下部に取り付けると、セミオート/フルオート射撃の切替が可能になります。手製のシアーは実際のフルオート部品よりも低品質なため、精度と信頼性がわずかに低下します。" +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "ライフル(.300口径BLK/AR-15)" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "ライフル(.223口径/ARピストル)" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "ライフル(.223口径/OA-93)" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -107931,15 +104815,22 @@ msgid "" msgstr "銃のアンダーバレルに装着して複合銃に改造するための、二連ショットガンです。この部品は銃から取り外せません。" #: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" -msgstr[0] "複合銃用パイプショットガン" +msgid "factory handguard" +msgid_plural "factory handguards" +msgstr[0] "標準ハンドガード" #: lang/json/gunmod_from_json.py msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two" -" shots. It's irremovable." -msgstr "銃のアンダーバレルに装着して複合パイプ銃に改造するための、二連ショットガンです。この部品は銃から取り外せません。" +"A removable molded grip that comes standard on guns without rails. It's not" +" as efficient as a proper forward grip or bipod at controlling recoil, but " +"it's better than nothing." +msgstr "" +"レールの無い銃に標準装備されている、取り外し可能な成型グリップです。ちゃんとしたフォワードグリップや二脚ほど効率的な反動制御装備ではありませんが、何もしないよりはマシでしょう。" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "fs2000" +msgstr "FS2000" #: lang/json/gunmod_from_json.py msgid "forward grip" @@ -108341,71 +105232,6 @@ msgid "" "powerful, but good enough for tight hallways." msgstr "銃器の側面に取り付ける小型の懐中電灯です。それほど明るくはありませんが、狭い通路で使うには十分です。" -#: lang/json/gunmod_from_json.py -msgid "5.45 caliber conversion kit" -msgid_plural "5.45 caliber conversion kits" -msgstr[0] "変換キット(5.45mm)" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " -"results in slight reductions to recoil." -msgstr "6.54mmライフルを5.45mm弾対応に変換するキットです。わずかに反動が減少します。" - -#: lang/json/gunmod_from_json.py -msgid "6.54 caliber conversion kit" -msgid_plural "6.54 caliber conversion kits" -msgstr[0] "変換キット(6.54mm)" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " -"results in increased recoil." -msgstr "5.45mmライフルを6.54mm弾対応に変換するキットです。反動が増加します。" - -#: lang/json/gunmod_from_json.py -msgid "7.62 caliber conversion kit" -msgid_plural "7.62 caliber conversion kits" -msgstr[0] "変換キット(7.62mm)" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " -"results in increased recoil." -msgstr "6.54mmライフルを7.62mm弾対応に変換するキットです。反動が増加します。" - -#: lang/json/gunmod_from_json.py -msgid "Flaregun conversion kit" -msgid_plural "Flaregun conversion kits" -msgstr[0] "変換キット(信号拳銃)" - -#: lang/json/gunmod_from_json.py -msgid "" -"Replacing several key parts flaregun to convert it to a .40 firearm. The " -"conversion results in reduced accuracy and increased recoil." -msgstr "信号拳銃を.40口径弾対応に変換する部品です。変換すると精度が下がり、反動が増大します。" - -#: lang/json/gunmod_from_json.py -msgid "" -"This genuine Herostratus flamethrower is ideal for light brush clearing and " -"self-defense." -msgstr "この本格的な火炎放射器は辺りの掃除や自己防衛にぴったりです。" - -#: lang/json/gunmod_from_json.py -msgid "E.M.A.S." -msgid_plural "E.M.A.S.s" -msgstr[0] "電磁加速システム" - -#: lang/json/gunmod_from_json.py -msgid "" -"ElectroMagnetic Acceleration System is an array of electromagnets attached " -"to the front of the barrel, accelerating any projectile fired to even higher" -" velocities, increasing damage, recoil and reducing accuracy. It does " -"however drain UPS charges when firing and due to extensive modifications the" -" gun can no longer operate without a UPS." -msgstr "" -"銃身の先端に取り付ける電磁装置の一種です。銃口から発射された飛翔体に対して電磁的な一押しを加え、初速を向上させることで威力と反動が増大し、精度が下がります。発射時にUPSの電力を使用するよう大規模な改造を加えるため、取り付けた銃はUPSが無ければ動作しなくなります。" - #: lang/json/gunmod_from_json.py msgid "underbarrel launcher" msgid_plural "underbarrel launchers" @@ -108500,30 +105326,13 @@ msgid "" msgstr "アイアンサイトを取り外し、マナクリスタルで作った光学式ブルードットサイトを搭載します。精度が向上し、重量が増加します。" #: lang/json/gunmod_from_json.py -msgid "makeshift pistol bayonet" -msgid_plural "makeshift pistol bayonets" -msgstr[0] "ハンドガン用簡易銃剣" - -#: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a bayonet meant for a pistol that consists of a mere " -"spike with some string. It still makes a decent melee weapon in a pinch " -"when attached to a pistol." -msgstr "" -"ただのスパイクと何本かの紐で作られた、その場しのぎのハンドガン用銃剣です。ハンドガンに取り付けておけば、ピンチの際に まともな近接武器として使えます。" - -#: lang/json/gunmod_from_json.py -msgid "makeshift sword bayonet" -msgid_plural "makeshift sword bayonets" -msgstr[0] "簡易長銃剣" +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "" #: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a sword bayonet that consists of a salvaged blade " -"with some string. It still makes a good melee weapon providing reach " -"attacks when attached to long arm or crossbow." +msgid "Gun suppressor mod for testing." msgstr "" -"他から抜き取った刃と何本かの紐で作られた、その場しのぎの銃剣です。このままでも丁度いい近接武器になりますが、銃クロスボウやに取り付けておけば、遠い間合いから攻撃できる近接武器になります。" #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" @@ -108565,20 +105374,16 @@ msgid "" "they are something else." msgstr "かつては人間だったのでしょう...教団が何をしたのかは分かりませんが、人外へと変わり果てています。" -#: lang/json/harvest_from_json.py -msgid "You butcher the fallen zombie and hack off its head" -msgstr "動かなくなったゾンビを解体し、頭部を切り落としました。" - #: lang/json/help_from_json.py msgid ": Introduction" msgstr ": はじめに" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future" +" looks pretty grim." msgstr "" -"Cataclysmはモンスターが蔓延る終末世界を舞台にしたサバイバルローグライクゲームです。あなたは混乱の中をまずは何とか生き延びましたが、先の見通しが立たない状態です。" #: lang/json/help_from_json.py msgid "" @@ -108591,25 +105396,24 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are" +" exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." msgstr "" -"Cataclysmが従来のローグライクと異なる点はいくつかあります。階層に限りのあるダンジョンには潜らず、東西南北に無限に広がる世界を探索します。サバイバル要素をもつローグライクのため、食料の確保や水分補給、定期的な睡眠も必要です。リアリズムの原則に基づいているため、サバイバル生活で起こりうるあらゆる困難を予測しておくべきですが、大変動によってもたらされた超自然的・空想科学的な現象がもたらす困難はその比ではありません。" #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help" +" you survive." msgstr "" -"Cataclysmは他のローグライクよりも多くの作業を必要とします。しかしこのゲームは近未来の設定なので、いくつかの作業自体は容易に行えます。銃器や薬物など、多種多様なアイテムは全て利用でき、文明崩壊後の世界を生き延びるのに役立つでしょう。" #: lang/json/help_from_json.py msgid ": Movement" @@ -110350,10 +107154,6 @@ msgstr "字を書く" msgid "Cauterize a wound" msgstr "傷を焼灼する" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "奴隷ゾンビを作る" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "秒読みを始める" @@ -110678,10 +107478,6 @@ msgstr "気象情報を確認する" msgid "Reload" msgstr "装填" -#: lang/json/item_action_from_json.py -msgid "Store/unload ammo" -msgstr "弾薬を収納/抜き取る" - #: lang/json/item_action_from_json.py msgid "Make some noise" msgstr "音を出す" @@ -111756,7 +108552,7 @@ msgstr "次の目標" #: lang/json/keybinding_from_json.py src/ranged.cpp msgid "Aim" -msgstr "照準調整" +msgstr "実行" #: lang/json/keybinding_from_json.py msgid "Aimed Shot" @@ -111782,6 +108578,18 @@ msgstr "弾薬切替" msgid "Switch Firing Mode" msgstr "射撃モード切替" +#: lang/json/keybinding_from_json.py +msgid "Toggle turret lines" +msgstr "切替/タレット射線表示" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "切替/照準地点追尾" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "切替/画面移動・照準移動" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "選択" @@ -111814,10 +108622,6 @@ msgstr "更に説明を表示" msgid "Travel to destination" msgstr "選択中の地点へ移動する" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "切替/照準地点追尾" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "キャラクターを中央表示" @@ -112034,6 +108838,10 @@ msgstr "下へ大移動" msgid "Toggle category selection mode" msgstr "切替/分類選択モード" +#: lang/json/keybinding_from_json.py +msgid "Toggle inventory view to show item categories" +msgstr "切替/所持品カテゴリ表示" + #: lang/json/keybinding_from_json.py msgid "Set item filter" msgstr "アイテムフィルタ設定" @@ -112259,7 +109067,6 @@ msgid "Disassemble items" msgstr "アイテムを分解する" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "睡眠" @@ -112483,7 +109290,7 @@ msgstr "色設定" msgid "Active World Mods" msgstr "MOD確認" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "切替/移動方法(駆足/歩行/屈む)" @@ -112777,6 +109584,30 @@ msgstr "説明/設置物" msgid "Describe terrain" msgstr "説明/地形" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "リスト切替" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "戻る" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "次ページ" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "アイテム調査" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "取引キャンセル" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "職業名変更" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" msgstr "電子機器類を操作する" @@ -112911,15 +109742,15 @@ msgstr "設定/タレット射撃モード" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim turrets manually" -msgstr "照準を合わせる/手動" +msgstr "照準/手動タレット" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim automatic turrets" -msgstr "照準を合わせる/自動タレット" +msgstr "照準/自動タレット" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim individual turret" -msgstr "照準を合わせる/個別タレット" +msgstr "照準/タレット選択" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Set turret targeting modes" @@ -112929,7 +109760,7 @@ msgstr "設定/タレット照準モード" msgid "Nothing" msgstr "無効" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "興味深いものは特にありません。" @@ -112938,7 +109769,7 @@ msgstr "興味深いものは特にありません。" msgid "Crater" msgstr "クレーター" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "クレーターがあります。" @@ -112947,7 +109778,7 @@ msgstr "クレーターがあります。" msgid "College Kids" msgstr "大学生" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "複数の大学生の死体があります。" @@ -112956,7 +109787,7 @@ msgstr "複数の大学生の死体があります。" msgid "Drug Deal" msgstr "麻薬売人" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "複数の麻薬売人の死体があります。" @@ -112965,7 +109796,7 @@ msgstr "複数の麻薬売人の死体があります。" msgid "Roadworks" msgstr "道路工事" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "道路工事をしています。" @@ -112974,7 +109805,7 @@ msgstr "道路工事をしています。" msgid "Road Mayhem" msgstr "自動車事故" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "自動車事故が起きています。" @@ -112983,7 +109814,7 @@ msgstr "自動車事故が起きています。" msgid "Roadblock (Military)" msgstr "バリケード(軍事)" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "軍によってバリケードが設置されています。" @@ -112992,7 +109823,7 @@ msgstr "軍によってバリケードが設置されています。" msgid "Roadblock (Bandits)" msgstr "バリケード(盗賊)" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "盗賊団によってバリケードが設置されています。" @@ -113001,7 +109832,7 @@ msgstr "盗賊団によってバリケードが設置されています。" msgid "Minefield" msgstr "地雷原" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "地雷が点在しています。" @@ -113010,17 +109841,17 @@ msgstr "地雷が点在しています。" msgid "Supply Drop" msgstr "投下物資" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "複数の物資が投下されています。" -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" msgstr "軍隊式" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "複数の兵士の死体があります。" @@ -113029,7 +109860,7 @@ msgstr "複数の兵士の死体があります。" msgid "Helicopter Crash" msgstr "ヘリコプター墜落" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "ヘリコプターが墜落しています。" @@ -113038,7 +109869,7 @@ msgstr "ヘリコプターが墜落しています。" msgid "Scientists" msgstr "科学者" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "複数の科学者の死体があります。" @@ -113047,7 +109878,7 @@ msgstr "複数の科学者の死体があります。" msgid "Portal" msgstr "ポータル" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "ポータルがあります。" @@ -113056,7 +109887,7 @@ msgstr "ポータルがあります。" msgid "Portal In" msgstr "ポータル流入" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "ポータルから異界の環境が漏れ出しています。" @@ -113065,7 +109896,7 @@ msgstr "ポータルから異界の環境が漏れ出しています。" msgid "Spider Nest" msgstr "クモの巣" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "クモの巣があります。" @@ -113074,22 +109905,21 @@ msgstr "クモの巣があります。" msgid "Wasp Nest" msgstr "スズメバチの巣" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "スズメバチの巣があります。" #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "クモ" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "クモの糸で覆われています。付近にクモがいるかもしれません。" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "付近に食人鬼がいます。" @@ -113098,7 +109928,7 @@ msgstr "付近に食人鬼がいます。" msgid "Jabberwock" msgstr "ジャバウォック" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "付近にジャバウォックがいます。" @@ -113107,7 +109937,7 @@ msgstr "付近にジャバウォックがいます。" msgid "Grove" msgstr "樹木密集地" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "特定の種類の木がまとまって生えています。" @@ -113116,7 +109946,7 @@ msgstr "特定の種類の木がまとまって生えています。" msgid "Shrubberry" msgstr "低木密集地" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "特定の種類の低木がまとまって生えています。" @@ -113125,7 +109955,7 @@ msgstr "特定の種類の低木がまとまって生えています。" msgid "Clearcut" msgstr "伐採跡" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." msgstr "ほとんどの木々が伐採されています。" @@ -113134,7 +109964,7 @@ msgstr "ほとんどの木々が伐採されています。" msgid "Pond" msgstr "池" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "小さな池があります。" @@ -113143,7 +109973,7 @@ msgstr "小さな池があります。" msgid "Stand of trees" msgstr "並木" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "並び立つ樹木です。" @@ -113152,7 +109982,7 @@ msgstr "並び立つ樹木です。" msgid "Tall grass" msgstr "草むら" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "背の高い草が生い茂っています。" @@ -113161,7 +109991,7 @@ msgstr "背の高い草が生い茂っています。" msgid "Derelict shed" msgstr "廃屋" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "倒壊しかかった小屋です。" @@ -113170,7 +110000,7 @@ msgstr "倒壊しかかった小屋です。" msgid "Clay Deposit" msgstr "粘土層" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "粘土が地表に露出しています。" @@ -113179,8 +110009,8 @@ msgstr "粘土が地表に露出しています。" msgid "Dead Vegetation" msgstr "荒地" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "植物が生えていない土地です。" @@ -113193,8 +110023,8 @@ msgstr "狭い荒地" msgid "Burned Ground" msgstr "焦土" -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "植物が焼失した土地です。" @@ -113207,7 +110037,7 @@ msgstr "狭い焦土" msgid "Marloss Pilgrimage" msgstr "マーロスの巡礼地" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "マーロスの巡礼地があります。" @@ -113216,7 +110046,7 @@ msgstr "マーロスの巡礼地があります。" msgid "Casings" msgstr "空薬莢" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "複数の空薬莢が落ちています。" @@ -113225,7 +110055,7 @@ msgstr "複数の空薬莢が落ちています。" msgid "Looters" msgstr "略奪者" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "数人の略奪者が集まっています。" @@ -113234,12 +110064,12 @@ msgstr "数人の略奪者が集まっています。" msgid "Corpses" msgstr "死体" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "大変動で失われた数多の命のうちの何人かです。" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "スズメバチの巣です。" @@ -113248,7 +110078,7 @@ msgstr "スズメバチの巣です。" msgid "Dermatik Nest" msgstr "寄生バチの巣" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "寄生バチの巣です。" @@ -113257,7 +110087,7 @@ msgstr "寄生バチの巣です。" msgid "Prison Bus" msgstr "護送車" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "護送車です。" @@ -113266,7 +110096,7 @@ msgstr "護送車です。" msgid "Mass Grave" msgstr "集団墓地" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "集団墓地です。" @@ -113275,11 +110105,20 @@ msgstr "集団墓地です。" msgid "Grave" msgstr "墓地" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "墓地です。" +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "ゾンビトラップ" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "ゾンビを嵌めるための罠です。" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -113296,8 +110135,7 @@ msgid "High Security Consolidated Computerized Bank of the Treasury" msgstr "財務省管轄高セキュリティ統合電子バンク" #. ~ Computer access denied warning -#: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py src/mapgen.cpp -#: src/mapgen.cpp +#: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "" "ERROR! Access denied! Unauthorized access will be met with lethal force!" msgstr "エラー!アクセスが拒否されました!不正アクセスが検知されたため殺傷兵器を呼び出しています!" @@ -114595,16 +111433,6 @@ msgid "" "years.'" msgstr "ウィートリー・ファミリー墓守サービス社です。ニューイングランドで300年の歴史があります。" -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Hydroponics Entrance" -msgstr "水耕栽培管理端末" - -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Missile Control" -msgstr "ミサイル制御" - #: lang/json/martial_art_from_json.py msgid "No style" msgstr "なし" @@ -114819,6 +111647,19 @@ msgstr "歯を噛み締めて戦いに備えました。" msgid "%s gets ready to brawl." msgstr "%sは乱闘の態勢を整えました。" +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': +#. 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a time.\n" +"\n" +"+1 Block attempts." +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "カポエイラ" @@ -116608,48 +113449,82 @@ msgid "Sojutsu" msgstr "槍術" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Blade-work" -msgstr "C.R.I.Tナイフ術" +msgid "CRIT Blade-work" +msgstr "CRIT剣術" -#. ~ Description for martial art 'C.R.I.T Blade-work' +#. ~ Description for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"An offensive style that is centered around rapid slashes and prodding. Each" -" attack landed increases combat ability" +"An offensive style centered around rapid slashes and prodding. Each attack " +"landed increases combat ability but leaves you increasingly vunerable" msgstr "素早い一撃と突きを中心とした攻撃的な戦闘スタイルです。攻撃が命中する度に戦闘能力が向上します。" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Initiate blade-work." -msgstr "武器を構えました。" +msgid "You prepare to whittle down your enemies." +msgstr "敵を切り刻む準備を整えました。" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py #, python-format msgid "%s initiates blade-work." msgstr "%sは武器を構えました。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Intensity" -msgstr "C.R.I.T猛攻" +msgid "Unwavering Edge" +msgstr "揺るぎない刃" + +#. ~ Description of buff 'Unwavering Edge' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Gain minor Accuracy, Cutting and Stabbing Arpen per stack. Greatly reduces " +"dodge skill. 2 stacks max" +msgstr "蓄積毎に命中精度微増、斬撃・刺突攻撃力増加。回避スキル大幅減少。最大蓄積数2" + +#: lang/json/martial_art_from_json.py +msgid "Ruthlessness" +msgstr "無慈悲な刃" + +#. ~ Description of buff 'Ruthlessness' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Additional Stabbing and Cutting damage per stack. Reduces dodge attempts. 4" +" stacks max." +msgstr "蓄積毎に斬撃・刺突攻撃力増加。回避試行回数減少。最大蓄積数4" + +#: lang/json/martial_art_from_json.py +msgid "Rending Strikes" +msgstr "引き裂く刃" -#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Rending Strikes' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Additional DMG, and Arpen per stack. Max of 5 stacks" -msgstr "追加ダメージ・貫通ボーナス蓄積、最大蓄積数5。" +msgid "" +"Additional Armor penetration per stack. Further reduces dodge attempts. 3 " +"stacks max." +msgstr "蓄積毎に装甲貫通力増加。回避試行回数大幅に減少。最大蓄積数3" + +#: lang/json/martial_art_from_json.py +msgid "Calculating Eyes" +msgstr "抜かりない眼" + +#. ~ Description of buff 'Calculating Eyes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"You have been taught how to properly utilize small to medium-sized sharp " +"weaponry. Gain great Cutting and Stabbing Armor Penetration on top of minor " +"Accuracy" +msgstr "小~中型の斬撃武器の正しい活用法を学びました。命中精度が少し上昇し、斬撃攻撃力と装甲貫通力が大幅に上昇します。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Calculation" -msgstr "C.R.I.T精密攻撃" +msgid "Honed Movements" +msgstr "研ぎ澄まされた動き" -#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Honed Movements' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"Increased accuracy along with minor cut and stab damage with piercing " -"capability." -msgstr "攻撃を貫通させる技術を身に着け、斬撃/刺突与ダメージが上昇し、命中精度が向上します。" +"Your skill and handling with sharp weaponry has improved. Gain extra Cutting" +" and Stabbing damage." +msgstr "斬撃武器を扱う技能が向上しました。斬撃・刺突攻撃のダメージ量が上昇します。" #: lang/json/martial_art_from_json.py msgid "C.R.I.T Enforcement" @@ -116676,66 +113551,268 @@ msgid "%s draws a line in the sand." msgstr "%sは地面に一線を引き、戦線を定めました。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Buildup" -msgstr "C.R.I.T増強" +msgid "Bulwark" +msgstr "強固な砦" -#. ~ Description of buff 'C.R.I.T Buildup' for martial art 'C.R.I.T -#. Enforcement' +#. ~ Description of buff 'Bulwark' for martial art 'C.R.I.T Enforcement' #: lang/json/martial_art_from_json.py -msgid "+0.05 armor and other small bonuses per stack. Max of 10 stacks" -msgstr "防御力+0.05、その他ボーナス効果蓄積。最大蓄積数10。" +msgid "+0.5 armor and other small bonuses per stack. Max of 2 stacks" +msgstr "防御力+0.5その他ボーナス効果蓄積。最大蓄積数3" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Guard" -msgstr "C.R.I.T防御" +msgid "Unyielding Front" +msgstr "不屈の前線" -#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement' +#. ~ Description of buff 'Unyielding Front' for martial art 'C.R.I.T +#. Enforcement' #: lang/json/martial_art_from_json.py -msgid "+1 armor. STR provides accuracy and minor bash arpen." -msgstr "防御力+1。筋力に対応した命中精度、打撃与ダメージ、貫通力の向上。" +msgid "" +"Stand strong in the face of adversity. +1 armor. STR provides accuracy and " +"minor bash arpen." +msgstr "逆境に直面しても立ち続けます。防御力+1。筋力に対応した命中精度上昇、打撃攻撃力微増。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T CQB" -msgstr "C.R.I.T CQB" +msgid "CRIT CQB" +msgstr "CRIT CQB" -#. ~ Description for martial art 'C.R.I.T CQB' +#. ~ Description for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "A style centered around rapid strikes and piercing jabs. Each attack landed" -" adds a plethora of combat bonuses. 25 percent bash damage." -msgstr "素早い攻撃と激しい突きを中心とした戦闘スタイルです。攻撃が命中する度に打撃与ダメージが25%上昇し、戦闘ボーナス効果が付与されます。" +" adds a plethora of combat bonuses." +msgstr "素早い攻撃と激しい突きを中心とした戦闘スタイルです。攻撃が命中する度にボーナス効果が付与されます。" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py -msgid "Initiate CQB." -msgstr "CQBを開始しました。" +msgid "You shift your weight for the oncoming fight." +msgstr "迫りくる戦いに備えて重心を調整しました。" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py #, python-format -msgid "%s initiates CQB." -msgstr "%sはCQBを開始しました。" +msgid "%s prepares for hand-to-hand battle." +msgstr "%sは取っ組み合って戦う準備を整えました。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Tenacity" -msgstr "C.R.I.T持久戦" +msgid "Fluid Tenacity" +msgstr "流水の構え" -#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Fluid Tenacity' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "+Atk Speed and other small bonuses based on DEX per stack. Max of 5 stacks" msgstr "器用に対応した攻撃速度上昇、その他ボーナス効果蓄積。最大蓄積数5。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Initiative" -msgstr "C.R.I.T先制" +msgid "Tactful Initiative" +msgstr "戦術的牽制" + +#. ~ Description of buff 'Tactful Initiative' for martial art 'CRIT CQB' +#: lang/json/martial_art_from_json.py +msgid "" +"You have gained an advantage by always remaing mindful of common weaknesses." +" DEX provides dodge ability, accuracy and armor penetration." +msgstr "弱点を常に意識しておくことで優位性を保ちます。器用に対応して回避上昇と装甲貫通力が上昇します。" + +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming strikes." +" The complex spinning and slashing of the curved blade incorporated into " +"many Desert Wind maneuvers are in fact carefully honed gestures that evoke " +"the power of fire, if performed correctly and with the proper focus." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" +msgstr "" + +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so" +" that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must" +" inevitably." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "" + +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art +#. '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': +#. 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "" -#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian +#. Swordsmanship'}' #: lang/json/martial_art_from_json.py +#, no-python-format msgid "" -"DEX provides dodge ability, accuracy and minor cut / stab damage with slight" -" piercing capability. 50 Percent Bash Damage." -msgstr "器用に対応した回避能力、低確率貫通効果付きの正確かつ低威力な斬撃/刺突攻撃。打撃与ダメージ50%上昇。" +"Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" +msgstr "" + +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"When you perfectly dodge an attack, you can attack rapidly for a short time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Panzer Kunst" @@ -116820,7 +113897,8 @@ msgstr "完全に傷んだ" msgid "Resin" msgstr "樹脂" -#: lang/json/material_from_json.py src/veh_interact.cpp +#: lang/json/material_from_json.py lang/json/material_from_json.py +#: src/veh_interact.cpp msgid "dented" msgstr "凹んだ" @@ -117041,7 +114119,7 @@ msgid "Junk Food" msgstr "ジャンクフード" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" +msgid "Foodplace's delicious foodstuff" msgstr "デリシャス物質" #: lang/json/material_from_json.py @@ -117049,12 +114127,12 @@ msgid "Kevlar" msgstr "ケブラー" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" -msgstr "硬質ケブラー" +msgid "Layered Kevlar" +msgstr "層状ケブラー" #: lang/json/material_from_json.py -msgid "scarred" -msgstr "傷跡の付いた" +msgid "Rigid Kevlar" +msgstr "硬質ケブラー" #: lang/json/material_from_json.py msgid "Lead" @@ -117182,7 +114260,7 @@ msgstr "キノコ" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "水" @@ -117254,6 +114332,10 @@ msgstr "チタン" msgid "Graphene Weave" msgstr "グラフェン" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "傷跡の付いた" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "魔法の皮" @@ -122732,47 +119814,6 @@ msgid "" " and stumbles." msgstr "%1$sはグレートクラブでの%2$sを叩き潰そうとしましたが、狙いが外れてふらつきました。" -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes you!" -msgstr "%1$sが眩い光で照らしました!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes at !" -msgstr "%1$sがを眩い光で照らしました!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash you, but fails to." -msgstr "%1$sは眩い光で照らそうとして失敗しました。" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash , but fails to." -msgstr "%1$sはを眩い光で照らそうとして失敗しました。" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects you with a syringe!" -msgstr "%1$sが注射器を刺しました!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects with a syringe!" -msgstr "%1$sがに注射器を刺しました!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "%1$sが注射器を刺そうとしましたが、装甲に阻まれて失敗しました!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "" -"The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "%1$sがに注射器を刺そうとしましたが、装甲に阻まれて失敗しました!" - #: lang/json/morale_type_from_json.py #, no-python-format msgid "Enjoyed %s" @@ -122875,6 +119916,10 @@ msgstr "%sは嫌い" msgid "Ate Human Flesh" msgstr "人肉を食べた" +#: lang/json/morale_type_from_json.py +msgid "Ate Demihuman Flesh" +msgstr "亜人の肉を食べた" + #: lang/json/morale_type_from_json.py msgid "Ate Meat" msgstr "肉を食べた" @@ -123072,6 +120117,111 @@ msgstr "失敗" msgid "Debug Morale" msgstr "意欲デバッグ" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp src/weather.cpp +msgid "W" +msgstr "西" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "立ち上がって歩き始めました。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "動物に刺激を与えて少しだけ速度を上げました。 " + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "メックの脚部出力を少し上げました。" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "走" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "走り始めました。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "動物に刺激を与えて速度を上げました。" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "メックの脚部サーボの出力を最大にしました。" + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "疲れ過ぎて走れません。" + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "動物が疲れているため速度を上げられません。" + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "c" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "C" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "屈んで歩き始めました。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "動物をなだめて速度を落としました。" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "メックの脚部サーボの出力を最小にしました。" + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp msgid "Any" @@ -124621,7 +121771,6 @@ msgid "Good Hearing" msgstr "優れた聴覚" #. ~ Description for {'str': 'Good Hearing'} -#. ~ Description for Good Hearing #: lang/json/mutation_from_json.py msgid "" "Your hearing is better than average, and you can hear distant sounds more " @@ -124666,7 +121815,6 @@ msgid "Indefatigable" msgstr "不屈" #. ~ Description for {'str': 'Indefatigable'} -#. ~ Description for Indefatigable #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -124710,7 +121858,6 @@ msgid "Fast Healer" msgstr "高速治癒" #. ~ Description for {'str': 'Fast Healer'} -#. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" "You heal faster when sleeping and will even recover a small amount of HP " @@ -124754,7 +121901,6 @@ msgid "Pain Resistant" msgstr "痛覚耐性" #. ~ Description for {'str': 'Pain Resistant'} -#. ~ Description for Pain Resistant #: lang/json/mutation_from_json.py msgid "You have a high tolerance for pain." msgstr "苦痛に耐性があります。" @@ -124764,7 +121910,6 @@ msgid "Night Vision" msgstr "夜目" #. ~ Description for {'str': 'Night Vision'} -#. ~ Description for Night Vision #: lang/json/mutation_from_json.py msgid "" "You possess natural night vision, and can see further in the dark than most." @@ -124854,8 +121999,9 @@ msgstr "整理上手" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." -msgstr "整理整頓が得意です。所持容量に40%のボーナスを得ます。" +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." +msgstr "" #: lang/json/mutation_from_json.py msgid "Strong Back" @@ -124889,11 +122035,11 @@ msgstr "厳格な食事作法" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale" -" bonus." +"you can't even think about eating without a table or not taking your time. " +"Eating without it frustrates you, but eating like a civilized person gives " +"you a bigger morale bonus." msgstr "" -"幼い頃から適切なテーブルマナーを叩きこまれました。今でもテーブルを使わずに食べるなんて考えられません。テーブルなしで食事をすると意欲が下がりますが、文明人らしい食事作法によって意欲に大きなボーナスが得られます。" +"幼い頃から正しいテーブルマナーを叩きこまれました。今でもテーブルを使わずに食べるなんて考えられません。テーブルなしで食事をすると意欲が下がりますが、文明人らしい食事作法によって意欲に大きなボーナスが得られます。" #: lang/json/mutation_from_json.py msgid "Strong Stomach" @@ -124923,7 +122069,6 @@ msgid "Deft" msgstr "器用" #. ~ Description for {'str': 'Deft'} -#. ~ Description for Deft #: lang/json/mutation_from_json.py msgid "" "While you're not any better at melee combat, you are better at recovering " @@ -124996,7 +122141,6 @@ msgid "Animal Empathy" msgstr "動物共感" #. ~ Description for {'str': 'Animal Empathy'} -#. ~ Description for Animal Empathy #: lang/json/mutation_from_json.py msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" @@ -125009,7 +122153,6 @@ msgid "Animal Kinship" msgstr "動物親近" #. ~ Description for {'str': 'Animal Kinship'} -#. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py msgid "" "Something about your presence is calming to animals, and they will treat you" @@ -125023,7 +122166,6 @@ msgid "Terrifying" msgstr "畏怖" #. ~ Description for {'str': 'Terrifying'} -#. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " @@ -125108,7 +122250,6 @@ msgid "Light Step" msgstr "忍び足" #. ~ Description for {'str': 'Light Step'} -#. ~ Description for Light Step #: lang/json/mutation_from_json.py msgid "" "You make less noise while walking. You're also less likely to set off " @@ -125155,7 +122296,6 @@ msgid "Cannibal" msgstr "食人嗜好" #. ~ Description for {'str': 'Cannibal'} -#. ~ Description for Cannibal #: lang/json/mutation_from_json.py msgid "" "For your whole life you've been forbidden from indulging in your peculiar " @@ -125163,6 +122303,17 @@ msgid "" "tell you that you can't eat people." msgstr "かつては禁忌でしたが、今や世界は破滅しています。人肉食の禁止なんて言い出す奴はくそくらえです。" +#: lang/json/mutation_from_json.py +msgid "Strict Humanitarian" +msgstr "厳密な人道主義" + +#. ~ Description for {'str': 'Strict Humanitarian'} +#: lang/json/mutation_from_json.py +msgid "" +"You'd never eat people, but these things that look vaguely human from " +"elsewhere are definitely not people." +msgstr "人間を食べようとは思いません。しかし、なんとなく人間に見えるこれらの生物は、絶対に人間ではありません。" + #: lang/json/mutation_from_json.py msgid "Psychopath" msgstr "サイコパス" @@ -125250,7 +122401,6 @@ msgid "Weak Scent" msgstr "体臭が薄い" #. ~ Description for {'str': 'Weak Scent'} -#. ~ Description for Weak Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is quite weak. Animals that track your scent will do so with " @@ -125443,9 +122593,9 @@ msgstr "整頓下手" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." -msgstr "持ち物を整理整頓するのが苦手です。所持容量が40%減少します。" +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." +msgstr "" #: lang/json/mutation_from_json.py msgid "Illiterate" @@ -125489,7 +122639,6 @@ msgid "Insomniac" msgstr "不眠症" #. ~ Description for {'str': 'Insomniac'} -#. ~ Description for Insomniac #: lang/json/mutation_from_json.py msgid "" "You have a hard time falling asleep, even under the best circumstances!" @@ -125668,7 +122817,6 @@ msgid "Strong Scent" msgstr "体臭が強い" #. ~ Description for {'str': 'Strong Scent'} -#. ~ Description for Strong Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is particularly strong. It's not offensive to humans, but " @@ -125787,10 +122935,6 @@ msgid "" msgstr "" "単一のスキルに拘り、他のスキルを疎かにします。最も高いスキル以外は成長速度が半減します。「呑み込みが早い」と同時に取得すると、全ての技能の成長速度が低下します。" -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "平和主義" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -125824,7 +122968,6 @@ msgid "Weak Stomach" msgstr "胃弱" #. ~ Description for {'str': 'Weak Stomach'} -#. ~ Description for Weak Stomach #: lang/json/mutation_from_json.py msgid "You are more likely to throw up from food poisoning, alcohol, etc." msgstr "過食や酒による嘔吐確率が上昇します。" @@ -125867,7 +123010,6 @@ msgid "Albino" msgstr "アルビノ" #. ~ Description for {'str': 'Albino'} -#. ~ Description for Albino #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " @@ -125880,7 +123022,6 @@ msgid "Flimsy" msgstr "貧弱" #. ~ Description for {'str': 'Flimsy'} -#. ~ Description for Flimsy #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -125937,7 +123078,6 @@ msgid "High Night Vision" msgstr "高い暗視能力" #. ~ Description for {'str': 'High Night Vision'} -#. ~ Description for High Night Vision #: lang/json/mutation_from_json.py msgid "" "You can see incredibly well in the dark! Activate to toggle NV-visible " @@ -126104,7 +123244,6 @@ msgid "Regeneration" msgstr "再生力" #. ~ Description for {'str': 'Regeneration'} -#. ~ Description for Regeneration #: lang/json/mutation_from_json.py msgid "Your flesh regenerates from wounds incredibly quickly." msgstr "身体が信じられない速度で傷を再生します。" @@ -126862,7 +124001,6 @@ msgid "Mammal Pheromones" msgstr "フェロモン(哺乳類)" #. ~ Description for {'str': 'Mammal Pheromones'} -#. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" "Your body produces low-level pheromones which put mammals at ease. They " @@ -126933,7 +124071,6 @@ msgid "Venomous" msgstr "毒液分泌" #. ~ Description for {'str': 'Venomous'} -#. ~ Description for Venomous #: lang/json/mutation_from_json.py msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " @@ -128760,7 +125897,6 @@ msgid "Solar Sensitivity" msgstr "色素性乾皮" #. ~ Description for {'str': 'Solar Sensitivity'} -#. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " @@ -129588,7 +126724,8 @@ msgstr "クモ" msgid "Well, maybe you'll just have to make your own world wide web." msgstr "あなただけのワールド・ワイド・ウェブを構築しましょうか。" -#: lang/json/mutation_from_json.py lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/mutation_from_json.py +#: lang/json/npc_from_json.py msgid "Survivor" msgstr "サバイバー" @@ -129825,9 +126962,9 @@ msgstr "ヘリコプター操縦士" #. ~ Description for Helicopter Pilot #: lang/json/mutation_from_json.py msgid "" -"You are a trained pilot, you wonder if you will ever have the chance to fly " -"again." -msgstr "訓練を受けたパイロットですが、今後空飛ぶ乗り物を操縦する機会は来ないような気がしています。" +"You are a trained helicopter pilot. This makes you one of the few living " +"people who can operate a helicopter after the Cataclysm." +msgstr "訓練を受けたヘリコプターの操縦士です。大変動後にヘリコプターを操縦できる貴重な生きた人間です。" #: lang/json/mutation_from_json.py msgid "SWAT Officer" @@ -129924,9 +127061,10 @@ msgstr "スケート選手" #. ~ Description for {'str': 'Skater'} #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the Cataclysm," -" and are better at staying on your feet when checked or blocked." -msgstr "大変動以前はひたすらスケートの特訓に明け暮れていました。接触やコースアウトを気にする必要が無くなったのは良いことです。" +"You are skilled in maneuvering on skates. You suffer less dodging penalties" +" and are less likely to fall down if hit in melee combat while you're " +"wearing rollerskates or rollerblades." +msgstr "スケートが得意です。ローラースケートやローラーブレード着用時に近接攻撃が命中した場合、回避されるペナルティと転倒する可能性が軽減されます。" #: lang/json/mutation_from_json.py msgid "Martial Artist" @@ -130152,10 +127290,10 @@ msgid "Mind the bugs, would you kindly?" msgstr "「恐縮だが」、バグに用心しておいてくれないか?" #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" -msgstr "運搬制限解除(デバッグ専用)" +msgid "Debug Very Strong Back" +msgstr "" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "体重の15倍ほどもあるバグをあごに引っ掛けて持ち運びましょう。" @@ -130275,10 +127413,21 @@ msgid "" " off-limits to you, even if your life depended on it." msgstr "個人的な好みなのか子供時代のトラウマなのか不明ですが、たとえ生活に必要な場合であっても決して乗り物で移動しません。" +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "サバイバーストーリー" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -131285,15 +128434,15 @@ msgid "Your muscles are quite slow to move. You move 25% slower." msgstr "重すぎる筋肉が動きをかなり鈍らせます。移動速度が25%低下します。" #: lang/json/mutation_from_json.py -msgid "C.R.I.T Melee Training" -msgstr "C.R.I.T武器鍛錬" +msgid "CRIT Melee Training" +msgstr "CRIT武器鍛錬" -#. ~ Description for C.R.I.T Melee Training +#. ~ Description for CRIT Melee Training #: lang/json/mutation_from_json.py msgid "" -"You have received defensive training. For every hit you land, gain various " -"miniscule combat bonuses that scale off of your stats." -msgstr "防御を中心とした戦闘訓練を受けました。攻撃が命中する度に、能力値に応じて様々な戦闘ボーナスを得られます。" +"You have received CQB training. For every hit you land, gain themed combat " +"bonuses." +msgstr "CQBの訓練を受けています。攻撃が命中する度に、様々な戦闘ボーナスを得られます。" #: lang/json/mutation_from_json.py msgid "Shadow Meld" @@ -131338,18 +128487,6 @@ msgid "" "Emerge from the grave of the old world, and become the night once again." msgstr "旧世界の墓場から抜け出し、再び夜そのものとなりました。" -#. ~ Description for Pretty -#: lang/json/mutation_from_json.py -msgid "" -"You are a sight to behold. NPCs who care about such things will react more " -"kindly to you." -msgstr "目を惹く容貌です。容姿に関心のあるNPCが良い反応を返します。" - -#. ~ Description for Thin-Skinned -#: lang/json/mutation_from_json.py -msgid "Your skin is fragile. Cutting damage is slightly increased for you." -msgstr "皮膚が薄く、斬撃によって受けるダメージが少し増加します。" - #: lang/json/mutation_from_json.py msgid "Forest Guardian" msgstr "森の守護者" @@ -131393,6 +128530,41 @@ msgstr "%sを刃で引き裂きました。" msgid "%1$s tears into %2$s with their blades" msgstr "%1$sは%2$sを刃で引き裂きました。" +#: lang/json/mutation_from_json.py +msgid "Spurs" +msgstr "骨の棘" + +#. ~ Description for Spurs +#: lang/json/mutation_from_json.py +msgid "" +"Spurs of bone have erupted all across your arms. A thick, biological " +"secretion oozes out of them promising extra harm to enemies." +msgstr "腕のあちこちから骨の棘が生えており、そこから濃厚な分泌物が染み出しています。敵に追加ダメージを与えられます。" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "You ravage %s with your arms" +msgstr "腕の棘で%sを傷つけました。" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "%1$s ravages %2$s with their arm spurs" +msgstr "%1$sは腕の棘で%2$sを傷つけました。" + +#: lang/json/mutation_from_json.py +msgid "Persistent Body" +msgstr "永続的肉体" + +#. ~ Description for Persistent Body +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "" +"As you move, the world seems to breath life and energy into your limbs. You " +"simply rarely tire less readily than others. Your maximum stamina is 50% " +"higher than usual." +msgstr "" +"生きているだけで世界が手足にエネルギーを吹き込んでくれます。一般的な人間に比べてほとんど疲労が溜まりません。最大スタミナが50%増加します。" + #: lang/json/mutation_from_json.py msgid "RP: Combatant" msgstr "RP: 戦闘員" @@ -131459,6 +128631,40 @@ msgid "" "unarmed combat." msgstr "酔って戦う古代拳法を知らぬ間に身に付けました!アルコールの効果を受けている間、近接攻撃、特に素手攻撃のスキルが上昇します。" +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "魔法使い" @@ -131646,6 +128852,38 @@ msgstr "マナ吸収" msgid "Mana Vortex" msgstr "マナの旋風" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "体内に溜めておけるマナの量が平均より大幅に高くなっています。" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "マナの回復速度が通常より大幅に上昇します。" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "利用できるマナの量が体内に貯蔵している分より大幅に増加します。" + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "マナ貯蔵力上昇(レベル1)" @@ -131668,11 +128906,6 @@ msgstr "体内に溜めておけるマナの量が平均より高くなってい msgid "Greater Mana Efficiency" msgstr "マナ貯蔵力上昇(レベル3)" -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "体内に溜めておけるマナの量が平均より大幅に高くなっています。" - #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" msgstr "マナ貯蔵力低下(レベル1)" @@ -131722,11 +128955,6 @@ msgstr "マナの回復速度が通常より上昇します。" msgid "Greater Mana Regeneration" msgstr "マナ回復力上昇(レベル3)" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "マナの回復速度が通常より大幅に上昇します。" - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "マナ回復力低下(レベル1)" @@ -131780,13 +129008,6 @@ msgstr "利用できるマナの量が体内に貯蔵している分より増加 msgid "Greater Mana Sensitivity" msgstr "マナ効率上昇(レベル3)" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to" -" tap into more of your reserves." -msgstr "利用できるマナの量が体内に貯蔵している分より大幅に増加します。" - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "マナ効率低下(レベル1)" @@ -132191,26 +129412,6 @@ msgstr "ミ=ゴ愛好家" msgid "I've been studying the mi-go for years…" msgstr "何年もミ=ゴの研究を続けている..." -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "ハイブ ガンガー" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "私は全世界を敵に回して生き抜いてきた。今の状況も似たようなものだ。" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "起業暗殺部隊員" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive" -" it's twilight." -msgstr "旧世界では裏の仕事で生計を立ててきた。この黄昏の時代もきっと生き抜けるさ。" - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "トカゲ変異体" @@ -132421,6 +129622,26 @@ msgid "" "and I don't plan to keep being one." msgstr "ラプトルの変異原を探しているんだ...この世界はもはや人間のものではないし、私も人間であり続けるつもりはないよ。" +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "ハイブ ガンガー" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "私は全世界を敵に回して生き抜いてきた。今の状況も似たようなものだ。" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "起業暗殺部隊員" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive" +" it's twilight." +msgstr "旧世界では裏の仕事で生計を立ててきた。この黄昏の時代もきっと生き抜けるさ。" + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "知性マストドン" @@ -133166,18 +130387,10 @@ msgstr "駐車スペース" msgid "shipwreck" msgstr "難破船" -#: lang/json/overmap_terrain_from_json.py -msgid "razorclaw nest" -msgstr "レイザークロウの巣" - #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" msgstr "電波塔" -#: lang/json/overmap_terrain_from_json.py -msgid "radio tower roof" -msgstr "電波塔(屋上)" - #: lang/json/overmap_terrain_from_json.py msgid "looted building" msgstr "略奪された建物" @@ -133190,10 +130403,6 @@ msgstr "試験炉" msgid "campsite" msgstr "キャンプ地" -#: lang/json/overmap_terrain_from_json.py -msgid "campsites" -msgstr "キャンプ地" - #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" msgstr "山小屋(未完成)" @@ -133406,6 +130615,18 @@ msgstr "一般_廃品置き場" msgid "generic_brushland" msgstr "一般_低木地" +#: lang/json/overmap_terrain_from_json.py +msgid "rural road" +msgstr "郊外道路" + +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "未舗装道路" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural building" +msgstr "農村建築物" + #: lang/json/overmap_terrain_from_json.py msgid "sugar house" msgstr "製糖所" @@ -133414,18 +130635,10 @@ msgstr "製糖所" msgid "sugar house roof" msgstr "製糖所(屋上)" -#: lang/json/overmap_terrain_from_json.py -msgid "rural road" -msgstr "郊外道路" - #: lang/json/overmap_terrain_from_json.py msgid "farm field" msgstr "農地" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house" -msgstr "農場家屋" - #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" msgstr "農場家屋(屋上)" @@ -133442,6 +130655,10 @@ msgstr "納屋(屋上)" msgid "farm" msgstr "農場" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house" +msgstr "農場家屋" + #: lang/json/overmap_terrain_from_json.py msgid "grape farm" msgstr "ブドウ農園" @@ -133534,10 +130751,6 @@ msgstr "鶏舎" msgid "chicken coop roof" msgstr "鶏舎(屋上)" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" -msgstr "農場家屋(2階)" - #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" msgstr "小規模墓地" @@ -133554,10 +130767,6 @@ msgstr "密造所(屋上)" msgid "tree farm" msgstr "林業地" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "未舗装道路" - #: lang/json/overmap_terrain_from_json.py msgid "silos" msgstr "サイロ" @@ -133578,6 +130787,10 @@ msgstr "郊外家屋(屋上)" msgid "farm road" msgstr "農道" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house 2nd floor" +msgstr "農場家屋(2階)" + #: lang/json/overmap_terrain_from_json.py msgid "barn roof" msgstr "納屋(屋上)" @@ -133690,6 +130903,10 @@ msgstr "電器店" msgid "electronics store roof" msgstr "電器店(屋上)" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "スポーツ用品店" @@ -133722,10 +130939,6 @@ msgstr "銃砲店(2階)" msgid "clothing store" msgstr "衣料品店" -#: lang/json/overmap_terrain_from_json.py -msgid "clothing store roof" -msgstr "衣料品店(屋上)" - #: lang/json/overmap_terrain_from_json.py msgid "bookstore" msgstr "書店" @@ -133734,6 +130947,10 @@ msgstr "書店" msgid "bookstore roof" msgstr "書店(屋上)" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "ダイナー" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "レストラン" @@ -133862,10 +131079,6 @@ msgstr "ホテル" msgid "hotel entrance" msgstr "ホテル(入口)" -#: lang/json/overmap_terrain_from_json.py -msgid "hotel tower" -msgstr "ホテル" - #: lang/json/overmap_terrain_from_json.py msgid "hotel basement" msgstr "ホテル(地下室)" @@ -133890,10 +131103,6 @@ msgstr "大型ホームセンター" msgid "garage - gas station" msgstr "ガソリンスタンド(車両整備工場)" -#: lang/json/overmap_terrain_from_json.py -msgid "garage - gas station roof" -msgstr "車両整備工場(屋上)" - #: lang/json/overmap_terrain_from_json.py msgid "dispensary" msgstr "医療大麻販売店" @@ -134062,14 +131271,14 @@ msgstr "園芸店(屋上)" msgid "craft shop" msgstr "工芸品店" -#: lang/json/overmap_terrain_from_json.py -msgid "craft shop roof" -msgstr "工芸品店(屋上)" - #: lang/json/overmap_terrain_from_json.py msgid "craft shop upper roof" msgstr "工芸品店(上屋根)" +#: lang/json/overmap_terrain_from_json.py +msgid "craft shop roof" +msgstr "工芸品店(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "craft shop 2nd floor" msgstr "工芸品店(2階)" @@ -134178,18 +131387,30 @@ msgstr "狩猟用品店" msgid "hunting supply store roof" msgstr "狩猟用品店(屋上)" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "アウトドアショップ" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "商業街区" #: lang/json/overmap_terrain_from_json.py -msgid "road" -msgstr "道路" +msgid "gaming store" +msgstr "ゲームショップ" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "ゲームショップ(屋上)" #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "避難センター" +#: lang/json/overmap_terrain_from_json.py +msgid "road" +msgstr "道路" + #: lang/json/overmap_terrain_from_json.py msgid "camp survey" msgstr "拠点予定地" @@ -134442,6 +131663,22 @@ msgstr "製鉄所" msgid "steel mill depot" msgstr "製鉄所(車両基地)" +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "軽工場" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "science lab" msgstr "科学研究所" @@ -134522,13 +131759,17 @@ msgstr "駐車場" msgid "mall - entrance" msgstr "モール - 入口" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - food court" +msgstr "モール - 飲食エリア" + #: lang/json/overmap_terrain_from_json.py msgid "mall - food court roof" msgstr "モール - 飲食エリア(屋上)" #: lang/json/overmap_terrain_from_json.py -msgid "mall - food court" -msgstr "モール - 飲食エリア" +msgid "mall - subway station" +msgstr "地下鉄駅(モール)" #: lang/json/overmap_terrain_from_json.py msgid "mansion" @@ -134639,10 +131880,6 @@ msgstr "警察署" msgid "church" msgstr "教会" -#: lang/json/overmap_terrain_from_json.py -msgid "sewer" -msgstr "下水道" - #: lang/json/overmap_terrain_from_json.py msgid "sewer?" msgstr "下水道?" @@ -134651,6 +131888,14 @@ msgstr "下水道?" msgid "basement" msgstr "地下室" +#: lang/json/overmap_terrain_from_json.py +msgid "sewer" +msgstr "下水道" + +#: lang/json/overmap_terrain_from_json.py +msgid "Vault - Passage" +msgstr "VAULT - 通路" + #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" msgstr "VAULT - 兵舎" @@ -134683,10 +131928,6 @@ msgstr "VAULT - 入口" msgid "Vault - Utilities" msgstr "VAULT - 水道設備" -#: lang/json/overmap_terrain_from_json.py -msgid "Vault - Passage" -msgstr "VAULT - 通路" - #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" msgstr "VAULT - 通信施設" @@ -135133,16 +132374,16 @@ msgid "marina parking" msgstr "マリーナ(駐車場)" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" -msgstr "二世帯家屋" +msgid "house roof" +msgstr "家屋(屋上)" #: lang/json/overmap_terrain_from_json.py -msgid "apartment tower" -msgstr "アパート" +msgid "dense urban" +msgstr "複合施設" #: lang/json/overmap_terrain_from_json.py -msgid "homeless camp" -msgstr "ホームレスキャンプ" +msgid "apartment tower" +msgstr "アパート" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" @@ -135152,6 +132393,10 @@ msgstr "トレーラーパーク" msgid "trailer park roof" msgstr "トレーラーパーク(屋上)" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless camp" +msgstr "ホームレスキャンプ" + #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" msgstr "住宅用地" @@ -135160,10 +132405,6 @@ msgstr "住宅用地" msgid "derelict property" msgstr "放棄地" -#: lang/json/overmap_terrain_from_json.py -msgid "dense urban" -msgstr "複合施設" - #: lang/json/overmap_terrain_from_json.py msgid "river" msgstr "河川" @@ -135196,26 +132437,14 @@ msgstr "橋" msgid "roadstop" msgstr "休憩所" -#: lang/json/overmap_terrain_from_json.py -msgid "roadstop roof" -msgstr "休憩所(屋上)" - #: lang/json/overmap_terrain_from_json.py msgid "public washroom" msgstr "公衆トイレ" -#: lang/json/overmap_terrain_from_json.py -msgid "public washroom roof" -msgstr "公衆トイレ(屋上)" - #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" msgstr "軽食店" -#: lang/json/overmap_terrain_from_json.py -msgid "roadside foodcart roof" -msgstr "軽食店(屋上)" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "鉄道線路" @@ -135392,14 +132621,14 @@ msgstr "下水工事区域" msgid "small dump" msgstr "ごみ捨て場" -#: lang/json/overmap_terrain_from_json.py -msgid "lake shore" -msgstr "湖岸" - #: lang/json/overmap_terrain_from_json.py msgid "lake" msgstr "湖" +#: lang/json/overmap_terrain_from_json.py +msgid "lake shore" +msgstr "湖岸" + #: lang/json/overmap_terrain_from_json.py msgid "lake (submerged)" msgstr "水中" @@ -135449,36 +132678,12 @@ msgid "county mortuary roof" msgstr "州立葬儀場(屋上)" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "鳥獣保護センター" - -#: lang/json/overmap_terrain_from_json.py -msgid "diner" -msgstr "ダイナー" - -#: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "アパート" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" -msgstr "自動車販売店" - -#: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "アウトドアショップ" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "ゲームショップ" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "空港" +msgid "Dinosaur Exhibit" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "light industry" -msgstr "軽工場" +msgid "wildlife field office" +msgstr "鳥獣保護センター" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -135492,6 +132697,10 @@ msgstr "掩体壕" msgid "scavenger bunker" msgstr "スカベンジャーの拠点" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "魔法専門店" @@ -135505,7 +132714,6 @@ msgid "used bookstore" msgstr "中古書店" #: lang/json/overmap_terrain_from_json.py -#: lang/json/start_location_from_json.py msgid "Swamp" msgstr "湿地" @@ -135537,10 +132745,6 @@ msgstr "門" msgid "house basement" msgstr "家屋(地下室)" -#: lang/json/overmap_terrain_from_json.py -msgid "house roof" -msgstr "家屋(屋上)" - #: lang/json/overmap_terrain_from_json.py msgid "attached garage" msgstr "車庫" @@ -135649,10 +132853,6 @@ msgstr "微生物学研究所" msgid "rocketry lab" msgstr "ロケット研究所" -#: lang/json/overmap_terrain_from_json.py -msgid "robot dispatch center" -msgstr "ロボット派遣センター" - #: lang/json/overmap_terrain_from_json.py msgid "school" msgstr "学校" @@ -135681,6 +132881,14 @@ msgstr "整備工場" msgid "megastore entrance" msgstr "超大型店(入口)" +#: lang/json/overmap_terrain_from_json.py +msgid "hotel tower" +msgstr "ホテル" + +#: lang/json/overmap_terrain_from_json.py +msgid "razorclaw nest" +msgstr "レイザークロウの巣" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "下水処理施設" @@ -135697,6 +132905,10 @@ msgstr "通信基地局" msgid "electric substation" msgstr "変電所" +#: lang/json/overmap_terrain_from_json.py +msgid "campsites" +msgstr "キャンプ地" + #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" msgstr "墓地" @@ -135734,11 +132946,11 @@ msgstr "放浪者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"相変わらず家も家族も友人も持たずに彷徨っていますが、よく知る世界までも失ってしまいました。他人に頼らず生きてきた今までの経験が、新たな世界で役立つかもしれません。" +"何らかの事情があって、世界を一人きりで放浪していました。今の状況では、元の暮らしに戻りたくても戻れません。旅で培った自活の経験は、この新世界でもきっと役に立ちます。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135749,11 +132961,11 @@ msgstr "放浪者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"相変わらず家も家族も友人も持たずに彷徨っていますが、よく知る世界までも失ってしまいました。他人に頼らず生きてきた今までの経験が、新たな世界で役立つかもしれません。" +"何らかの事情があって、世界を一人きりで放浪していました。今の状況では、元の暮らしに戻りたくても戻れません。旅で培った自活の経験は、この新世界でもきっと役に立ちます。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135764,11 +132976,11 @@ msgstr "サイボーグ(プレッパー)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"終末の訪れを予期していました。その日の為に生存に必要なスキルを訓練し、有用そうなCBMも装着しておきました。災厄の日が訪れた今こそ、その努力が報われるかどうかが試されるのです。" +"終末の到来を予期していました。基本的な生体部品を移植して自己強化に励み、広範囲に渡るサバイバル訓練も受けました。災厄の日が訪れた今、努力の成果が試されます。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135779,11 +132991,11 @@ msgstr "サイボーグ(プレッパー)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"終末の訪れを予期していました。その日の為に生存に必要なスキルを訓練し、有用そうなCBMも装着しておきました。災厄の日が訪れた今こそ、その努力が報われるかどうかが試されるのです。" +"終末の到来を予期していました。基本的な生体部品を移植して自己強化に励み、広範囲に渡るサバイバル訓練も受けました。災厄の日が訪れた今、努力の成果が試されます。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135794,9 +133006,9 @@ msgstr "生存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." -msgstr "人々は「君は何も特徴がないね」と答えるでしょう。しかし、この大変動を無事に生き延びました。それこそが今語れる全てです。" +msgstr "特筆すべき事がないと言われることもあります。しかしこの状況では、これまで無事に生き延びてきたことこそが、一番の誇りです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135807,9 +133019,9 @@ msgstr "生存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." -msgstr "人々は「君は何も特徴がないね」と答えるでしょう。しかし、この大変動を無事に生き延びました。それこそが今語れる全てです。" +msgstr "特筆すべき事がないと言われることもあります。しかしこの状況では、これまで無事に生き延びてきたことこそが、一番の誇りです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135820,11 +133032,11 @@ msgstr "避難した生存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" -"大変動の日、シェルターに避難しました。それからというもの、雑多に物を掻き集め、様々な本から生存術を学び、冬が訪れました。これまでの備えによって、今後生き延びられるかが決まります。" +"大変動の日は、防空壕に避難していました。ここ数か月間は缶詰を食べ、本を読み、地下室で道具の修理などをして過ごしていましたが、やがて冬が訪れました。地表の世界と向き合う時です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135835,11 +133047,11 @@ msgstr "避難した生存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" -"大変動の日、シェルターに避難しました。それからというもの、雑多に物を掻き集め、様々な本から生存術を学び、冬が訪れました。これまでの備えによって、今後生き延びられるかが決まります。" +"大変動の日は、防空壕に避難していました。ここ数か月間は缶詰を食べ、本を読み、地下室で道具の修理などをして過ごしていましたが、やがて冬が訪れました。地表の世界と向き合う時です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135850,10 +133062,11 @@ msgstr "避難した州兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." -msgstr "大変動の日、シェルターに避難しました。やがて冬が訪れました。今までに学んだ技術と銃は生存の助けになるはずです。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." +msgstr "" +"大変動の日は、銃のコレクションを持って防空壕に避難していました。ここ数か月間は缶詰を食べ、射撃の練習をして過ごしていましたが、やがて冬が訪れました。地表の世界と向き合う時です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135864,10 +133077,11 @@ msgstr "避難した州兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." -msgstr "大変動の日、シェルターに避難しました。やがて冬が訪れました。今までに学んだ技術と銃は生存の助けになるはずです。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." +msgstr "" +"大変動の日は、銃のコレクションを持って防空壕に避難していました。ここ数か月間は缶詰を食べ、射撃の練習をして過ごしていましたが、やがて冬が訪れました。地表の世界と向き合う時です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135879,10 +133093,10 @@ msgstr "仕立て屋" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"文明が崩壊すれば、仕立て屋の持つ技術は何の役にも立たず、仕立て屋が生き延びるなんて不可能だと大半の人々が思っているでしょう。今こそ、その間違いを正す絶好の機会です。" +"文明が崩壊すれば、仕立屋の持つ技術は何の役にも立たず、仕立屋が生き延びるなんて不可能だと大半の人々が思っているでしょう。今こそ、その間違いを正す絶好の機会です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135894,10 +133108,10 @@ msgstr "仕立て屋" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"文明が崩壊すれば、仕立て屋の持つ技術は何の役にも立たず、仕立て屋が生き延びるなんて不可能だと大半の人々が思っているでしょう。今こそ、その間違いを正す絶好の機会です。" +"文明が崩壊すれば、仕立屋の持つ技術は何の役にも立たず、仕立屋が生き延びるなんて不可能だと大半の人々が思っているでしょう。今こそ、その間違いを正す絶好の機会です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135909,11 +133123,11 @@ msgstr "シェフ" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" "Bork " -"bork!普段から大きな肉を解体しているお陰でしょうか。ブッチャーナイフを振り回した結果、コック服にいくつか染みを増やしただけで厨房から逃げ出せました。" +"bork!普段から大きな肉を解体しているお陰でしょうか。使い慣れたブッチャーナイフを振り回した結果、コック服にいくつか染みを増やしただけで厨房から逃げ出せました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135925,11 +133139,11 @@ msgstr "シェフ" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" "Bork " -"bork!普段から大きな肉を解体しているお陰でしょうか。ブッチャーナイフを振り回した結果、コック服にいくつか染みを増やしただけで厨房から逃げ出せました。" +"bork!普段から大きな肉を解体しているお陰でしょうか。使い慣れたブッチャーナイフを振り回した結果、コック服にいくつか染みを増やしただけで厨房から逃げ出せました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135972,11 +133186,11 @@ msgstr "研究所の技術者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"研究所で働いていたお陰で、大抵の科学に関する知識には精通しています。世界は破滅してしまいましたが、ある疑問が浮かびました。大変動の発生にはあなたも加担していた訳ですが、果たして元に戻すことが可能なのでしょうか?" +"研究所での長年の研究と努力のお陰で、科学に関する基本的な疑問には答えられます。ここでひとつ疑問が浮かびました。同僚が加担した大変動の発生により壊れた世界は、果たして元に戻るのでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135987,11 +133201,11 @@ msgstr "研究所の技術者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"研究所で働いていたお陰で、大抵の科学に関する知識には精通しています。世界は破滅してしまいましたが、ある疑問が浮かびました。大変動の発生にはあなたも加担していた訳ですが、果たして元に戻すことが可能なのでしょうか?" +"研究所での長年の研究と努力のお陰で、科学に関する基本的な疑問には答えられます。ここでひとつ疑問が浮かびました。同僚が加担した大変動の発生により壊れた世界は、果たして元に戻るのでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136002,9 +133216,11 @@ msgstr "日曜メカニック" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." -msgstr "免許証は持っていませんが、車を愛する1人です。今となっては部品の入手に困る事もないでしょう。" +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." +msgstr "" +"とにかく車が大好きで、ボンネットを開いて車を修理する楽しみに勝るものはありませんでした。便利な工具はいつも手元にありますし、少なくともこの状況で車の部品に不自由することはありません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136015,9 +133231,11 @@ msgstr "日曜メカニック" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." -msgstr "免許証は持っていませんが、車を愛する1人です。今となっては部品の入手に困る事もないでしょう。" +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." +msgstr "" +"とにかく車が大好きで、ボンネットを開いて車を修理する楽しみに勝るものはありませんでした。便利な工具はいつも手元にありますし、少なくともこの状況で車の部品に不自由することはありません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136031,9 +133249,9 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"街のならず者です。酒の席での喧嘩で戦い方と避け方を覚え、法に触れる卑怯な手も使ってきました。そして今、それら全ては生き延びる為のスキルとなりました。さあ、どれだけ持ち堪えられるでしょうか?" +"街のならず者です。酒の席での喧嘩で戦い方と避け方を覚え、法に触れる卑怯な手も使ってきました。そして今、それら全ては生き延びるための技能となりました。さあ、どれだけ持ち堪えられるでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136047,9 +133265,9 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"街のならず者です。酒の席での喧嘩で戦い方と避け方を覚え、法に触れる卑怯な手も使ってきました。そして今、それら全ては生き延びる為のスキルとなりました。さあ、どれだけ持ち堪えられるでしょうか?" +"街のならず者です。酒の席での喧嘩で戦い方と避け方を覚え、法に触れる卑怯な手も使ってきました。そして今、それら全ては生き延びるための技能となりました。さあ、どれだけ持ち堪えられるでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136060,10 +133278,11 @@ msgstr "養蜂家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." -msgstr "プロの養蜂家です。残念ながら大変動のせいでハチたちを手放すハメになりましたが、いくつかの道具と蜂蜜だけは持って逃げ出せました。" +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." +msgstr "" +"プロの養蜂家として、巣箱を作ったり、管理したりして過ごしていました。残念ながら大変動のせいでハチたちを手放すハメになりましたが、いくつかの道具と蜂蜜だけは持って逃げ出せました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136074,10 +133293,11 @@ msgstr "養蜂家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." -msgstr "プロの養蜂家です。残念ながら大変動のせいでハチたちを手放すハメになりましたが、いくつかの道具と蜂蜜だけは持って逃げ出せました。" +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." +msgstr "" +"プロの養蜂家として、巣箱を作ったり、管理したりして過ごしていました。残念ながら大変動のせいでハチたちを手放すハメになりましたが、いくつかの道具と蜂蜜だけは持って逃げ出せました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136088,10 +133308,11 @@ msgstr "バスケットボール選手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." -msgstr "デビュー戦を控えていましたが、その前に大変動に見舞われてしまいました。優れた足のお陰で辛くも逃げ延びられたのです。" +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." +msgstr "" +"初めての大舞台は、ゾンビがコートを襲撃したため突然中止になりました。足が速く反射神経が良かったため、生きてスタジアムから脱出できた幸運な数人の中の一人になりました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136102,10 +133323,11 @@ msgstr "バスケットボール選手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." -msgstr "デビュー戦を控えていましたが、その前に大変動に見舞われてしまいました。優れた足のお陰で辛くも逃げ延びられたのです。" +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." +msgstr "" +"初めての大舞台は、ゾンビがコートを襲撃したため突然中止になりました。足が速く反射神経が良かったため、生きてスタジアムから脱出できた幸運な数人の中の一人になりました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136116,12 +133338,11 @@ msgstr "真のフードパーソン" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" -"真のフードパーソンです。ただのマスコットだと思っている人もいますが、実は違います。自分自身がフードパーソンです。マスクが顔そのものです。この世界と無意識の中間に立つ唯一の存在です。" +"真のフードパーソンです。ただのマスコットだと思っている人もいますが、実は違います。フードパーソンとは自分のことです。マスクが顔そのものです。この世界と忘却の中間に立つ唯一の存在です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136132,12 +133353,11 @@ msgstr "真のフードパーソン" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" -"真のフードパーソンです。ただのマスコットだと思っている人もいますが、実は違います。自分自身がフードパーソンです。マスクが顔そのものです。この世界と無意識の中間に立つ唯一の存在です。" +"真のフードパーソンです。ただのマスコットだと思っている人もいますが、実は違います。フードパーソンとは自分のことです。マスクが顔そのものです。この世界と忘却の中間に立つ唯一の存在です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136150,10 +133370,10 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"若くして将来を嘱望された自転車乗りでした。こうなっては最早グランツールに参加する事も無いでしょうが、諺にもあります。「人生とは自転車のようなものだ。倒れないようにするには走らなければならない」と。" +"若くして将来を嘱望された自転車乗りでした。こうなっては最早グランツールに参加することも無いでしょうが、諺にもあります。「人生とは自転車のようなものだ。倒れないようにするには走らなければならない」と。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136166,10 +133386,10 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"若くして将来を嘱望された自転車乗りでした。こうなっては最早グランツールに参加する事も無いでしょうが、諺にもあります。「人生とは自転車のようなものだ。倒れないようにするには走らなければならない」と。" +"若くして将来を嘱望された自転車乗りでした。こうなっては最早グランツールに参加することも無いでしょうが、諺にもあります。「人生とは自転車のようなものだ。倒れないようにするには走らなければならない」と。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136180,12 +133400,12 @@ msgstr "新兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"軍に入る為に高校を中退しました。未だ訓練の途上でしたが国家非常事態宣言に伴って緊急招集され、新兵となったのです。唯一言えるのは、放棄命令と共にこの地獄で見捨てられたという事です。" +"軍に入隊することが長年の夢でした。ようやく夢を叶えたちょうどその時、何らかの国家緊急事態によって訓練が中断されました。唯一分かるのは、放棄命令が下され、この地獄で見捨てられたという事です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136196,12 +133416,12 @@ msgstr "新兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"軍に入る為に高校を中退しました。未だ訓練の途上でしたが国家非常事態宣言に伴って緊急招集され、新兵となったのです。唯一言えるのは、放棄命令と共にこの地獄で見捨てられたという事です。" +"軍に入隊することが長年の夢でした。ようやく夢を叶えたちょうどその時、何らかの国家緊急事態によって訓練が中断されました。唯一分かるのは、放棄命令が下され、この地獄で見捨てられたという事です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136244,9 +133464,11 @@ msgstr "執事" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." -msgstr "大きなお屋敷で働いていましたが、大変動の日の後、雇い主一家は自分だけを除け者にして、どことも知れぬ場所へ長期旅行に出かけてしまいました。" +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." +msgstr "" +"裕福な家庭で家事を手伝うために雇われていました。事態が悪化すると、雇い主一家は当然のように家族旅行と称してどこかへ逃げ出しました。自力で運命を切り拓くしかありません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136257,9 +133479,11 @@ msgstr "メイド" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." -msgstr "大きなお屋敷で働いていましたが、大変動の日の後、雇い主一家は自分だけを除け者にして、どことも知れぬ場所へ長期旅行に出かけてしまいました。" +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." +msgstr "" +"裕福な家庭で家事を手伝うために雇われていました。事態が悪化すると、雇い主一家は当然のように家族旅行と称してどこかへ逃げ出しました。自力で運命を切り拓くしかありません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136270,12 +133494,13 @@ msgstr "捕虜" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" -"街中の化け物共から逃れるために彷徨っていると、宵闇の中から叫び声が聞こえました。思わず立ち止まると、突然頭に焼けつくような痛みを感じ、目の前が真っ暗になりました。しばらくして目を覚ましましたが...ここは本当に地球でしょうか?" +"街中の化け物共から逃れるために彷徨っていると、暗闇の中から声が聞こえました。友好的な人間だと信じて追いかけましたが、突然頭に焼けつくような痛みを感じ、目の前が真っ暗になりました。しばらくして目を覚ましましたが...ここは本当に地球上でしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136286,12 +133511,13 @@ msgstr "捕虜" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" -"街中の化け物共から逃れるために彷徨っていると、宵闇の中から叫び声が聞こえました。思わず立ち止まると、突然頭に焼けつくような痛みを感じ、目の前が真っ暗になりました。しばらくして目を覚ましましたが...ここは本当に地球でしょうか?" +"街中の化け物共から逃れるために彷徨っていると、暗闇の中から声が聞こえました。友好的な人間だと信じて追いかけましたが、突然頭に焼けつくような痛みを感じ、目の前が真っ暗になりました。しばらくして目を覚ましましたが...ここは本当に地球上でしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136303,11 +133529,11 @@ msgstr "救助者" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" -"準備はできています。友人を見つけ出し、救助しようと決めました。しかし、奇妙な回廊を進むほどに周囲の空気は淀み、段々と決意も揺らぎ始めています。既に救助を求める側になってしまったのかもしれません。" +"準備はできています。友人を見つけ出し、救助しようと決めました。奇妙な回廊を進むほどに周囲の空気は淀み、決意も揺らぎ始めています。既に救助を求める側になってしまったのかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136319,11 +133545,11 @@ msgstr "救助者" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" -"準備はできています。友人を見つけ出し、救助しようと決めました。しかし、奇妙な回廊を進むほどに周囲の空気は淀み、段々と決意も揺らぎ始めています。既に救助を求める側になってしまったのかもしれません。" +"準備はできています。友人を見つけ出し、救助しようと決めました。奇妙な回廊を進むほどに周囲の空気は淀み、決意も揺らぎ始めています。既に救助を求める側になってしまったのかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136335,9 +133561,11 @@ msgstr "専門医学実習生" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." -msgstr "医大を出たばかりの実習生です。医師としての経験は無いに等しくとも、今は古い格言である「医師よ自らを癒やせ」を自分に言い聞かせています。" +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." +msgstr "" +"医大を出たばかりの実習生です。実践経験はほとんどありませんが、ほんの少しだけの応急処置用品が残っています。「医師よ自らを癒やせ」という格言が、文字通りの意味であれば良いのですが。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136349,9 +133577,11 @@ msgstr "専門医学実習生" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." -msgstr "医大を出たばかりの実習生です。医師としての経験は無いに等しくとも、今は古い格言である「医師よ自らを癒やせ」を自分に言い聞かせています。" +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." +msgstr "" +"医大を出たばかりの実習生です。実践経験はほとんどありませんが、ほんの少しだけの応急処置用品が残っています。「医師よ自らを癒やせ」という格言が、文字通りの意味であれば良いのですが。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136363,10 +133593,10 @@ msgstr "ギャング" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"ボスは言いました、どんな困難な仕事でもお前になら任せられると。あの方に恥をかかせる訳にはいきません。暴力の世界で生きてきた者にとって、この新世界は慣れ親しんだものなのですから。" +"ボスはいつも、どんな困難な仕事でもお前になら任せられると言っていました。期待を裏切る訳にはいきません。暴力の世界で生きてきた者にとって、この新世界は慣れ親しんだものなのですから。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136378,10 +133608,10 @@ msgstr "ギャング" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"ボスは言いました、どんな困難な仕事でもお前になら任せられると。あの方に恥をかかせる訳にはいきません。暴力の世界で生きてきた者にとって、この新世界は慣れ親しんだものなのですから。" +"ボスはいつも、どんな困難な仕事でもお前になら任せられると言っていました。期待を裏切る訳にはいきません。暴力の世界で生きてきた者にとって、この新世界は慣れ親しんだものなのですから。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136392,12 +133622,11 @@ msgstr "警備員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"屋外を巡回して泥棒予備軍を追い払うよりはるかに危険な仕事を任される、低賃金で雇われた警備員です。役立つスキルは何もありませんが、当時の治安は悪化の一途を辿っていたため、役立つ道具が支給されています。" +"監視カメラを見たり廊下を巡回したりする、給料も安く退屈な仕事をしていたはずが、急に危険な状況に立たされました。便利な装備を持ってはいますが、今まで一度も使ったことがありません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136408,12 +133637,11 @@ msgstr "警備員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"屋外を巡回して泥棒予備軍を追い払うよりはるかに危険な仕事を任される、低賃金で雇われた警備員です。役立つスキルは何もありませんが、当時の治安は悪化の一途を辿っていたため、役立つ道具が支給されています。" +"監視カメラを見たり廊下を巡回したりする、給料も安く退屈な仕事をしていたはずが、急に危険な状況に立たされました。便利な装備を持ってはいますが、今まで一度も使ったことがありません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136426,7 +133654,7 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" "裕福な家庭の芝や生垣を整える仕事をしていました。ゾンビがやってくる前から仕事は減ってきていましたが、今や道具と専門知識以外何も残っていません。" @@ -136441,7 +133669,7 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" "裕福な家庭の芝や生垣を整える仕事をしていました。ゾンビがやってくる前から仕事は減ってきていましたが、今や道具と専門知識以外何も残っていません。" @@ -136454,9 +133682,9 @@ msgstr "介護士" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" "高齢者の在宅ケアに携わっていましたが、世界はどこもかしこも滅茶苦茶になってしまいました。以前の顧客が歩く死者の群れに紛れていないことを祈るしかありません..." @@ -136469,9 +133697,9 @@ msgstr "介護士" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" "高齢者の在宅ケアに携わっていましたが、世界はどこもかしこも滅茶苦茶になってしまいました。以前の顧客が歩く死者の群れに紛れていないことを祈るしかありません..." @@ -136484,12 +133712,11 @@ msgstr "サバイバー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" -"文明から離れた土地でサバイバル技術を磨いてきました。知識はどれも基礎的なものですが、幅広い分野を修めています。死を求めて彷徨う化物達が溢れだした今、その技術は非常に役立ちますが...まずは、空になった水筒をどうにかする必要がありそうです。" +"文明から遠く離れた土地では、大変動後の生活も以前と似たようなものです。違う点があるとすれば、狂暴なモンスターが突如現れたことでしょうか。持っている装備は基本的なものですが、汎用性に富んでいます...まずは空になった水筒をなんとかしましょう!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136500,12 +133727,11 @@ msgstr "サバイバー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" -"文明から離れた土地でサバイバル技術を磨いてきました。知識はどれも基礎的なものですが、幅広い分野を修めています。死を求めて彷徨う化物達が溢れだした今、その技術は非常に役立ちますが...まずは、空になった水筒をどうにかする必要がありそうです。" +"文明から遠く離れた土地では、大変動後の生活も以前と似たようなものです。違う点があるとすれば、狂暴なモンスターが突如現れたことでしょうか。持っている装備は基本的なものですが、汎用性に富んでいます...まずは空になった水筒をなんとかしましょう!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136516,11 +133742,11 @@ msgstr "ヘビースモーカー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"職場ではいつもタバコを何箱も持ち歩いている人だと知られていました。しかし、今や手元に残っているのは1箱のみです。次のタバコを早く見つけなければなりません。ニコチン依存症を患っています。" +"頻繁に外に出てタバコ休憩をしていることについて、同僚はいつも文句を言っていました。しかし、酷い事態に巻き込まれた今の状況で、その習慣が命を救うことになりました。手持ちのタバコが最後のひと箱です。強いニコチン依存症を患っています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136531,11 +133757,11 @@ msgstr "ヘビースモーカー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"職場ではいつもタバコを何箱も持ち歩いている人だと知られていました。しかし、今や手元に残っているのは1箱のみです。次のタバコを早く見つけなければなりません。ニコチン依存症を患っています。" +"頻繁に外に出てタバコ休憩をしていることについて、同僚はいつも文句を言っていました。しかし、酷い事態に巻き込まれた今の状況で、その習慣が命を救うことになりました。手持ちのタバコが最後のひと箱です。強いニコチン依存症を患っています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136548,9 +133774,9 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"コカイン、それは実にヤバい薬です。白い粉にかなりのお金を注ぎ込んでいる内に、いつの間にか地元の薬屋チェーン店裏で取引する程になってしまいました。コカイン依存症を患っています。" +"コカイン、それは実にヤバい薬です。白い粉にかなりのお金を注ぎ込んでいる内に、いつの間にか地元のドラッグストアの裏手で取り引きをする程になっていました。次のブツはどこで手に入れればいいのでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136563,9 +133789,9 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"コカイン、それは実にヤバい薬です。白い粉にかなりのお金を注ぎ込んでいる内に、いつの間にか地元の薬屋チェーン店裏で取引までする程になってしまいました。コカイン依存症を患っています。" +"コカイン、それは実にヤバい薬です。白い粉にかなりのお金を注ぎ込んでいる内に、いつの間にか地元のドラッグストアの裏手で取り引きをする程になっていました。次のブツはどこで手に入れればいいのでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136576,12 +133802,11 @@ msgstr "浮浪者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"社会の爪弾き者です。住居も家族も友人も持たず、ただ酒瓶だけが心を慰めてくれます。しかし最早社会なんてものには何の価値もありません。目の前にはあらゆる物がガラクタとして投げ出されているのです。クソッタレ、とりあえず酒を探そう。アルコール依存症を患っています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136592,12 +133817,11 @@ msgstr "浮浪者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"社会の爪弾き者です。住居も家族も友人も持たず、ただ酒瓶だけが心を慰めてくれます。しかし最早社会なんてものには何の価値もありません。目の前にはあらゆる物がガラクタとして投げ出されているのです。クソッタレ、とりあえず酒を探そう。アルコール依存症を患っています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136608,11 +133832,10 @@ msgstr "薬物中毒者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"何が起こったか全く理解していません。頭にあるのは「ああ、次にキメるクスリを早く探さないと」という事だけです。アンフェタミン依存症を患っています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136623,11 +133846,10 @@ msgstr "薬物中毒者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"何が起こったか全く理解していません。頭にあるのは「ああ、次にキメるクスリを早く探さないと」という事だけです。アンフェタミン依存症を患っています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136639,10 +133861,9 @@ msgstr "アヘン中毒者" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" -"若い頃のちょっとした事がきっかけで、鎮痛用のアヘンにハマりました。薬局は閉鎖され、売人もゾンビになってしまったので、この苦しみを鎮めることは更に難しくなりました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136654,10 +133875,9 @@ msgstr "アヘン中毒者" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" -"若い頃のちょっとした事がきっかけで、鎮痛用のアヘンにハマりました。薬局は閉鎖され、売人もゾンビになってしまったので、この苦しみを鎮めることは更に難しくなりました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136668,10 +133888,10 @@ msgstr "ヘリコプター操縦士" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" -"会社員や観光客をヘリポートからヘリポートへ運んで生計を立てていました。大変動によって地上に閉じ込められてしまいましたが、まだ空に呼ばれているような気がします..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136682,10 +133902,10 @@ msgstr "ヘリコプター操縦士" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" -"会社員や観光客をヘリポートからヘリポートへ運んで生計を立てていました。大変動によって地上に閉じ込められてしまいましたが、まだ空に呼ばれているような気がします..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136697,10 +133917,10 @@ msgstr "警察犬訓練士" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" -"忠犬と協力して麻薬密輸業者を逮捕する仕事に人生を捧げていました。世界が崩壊し、もはやそんな仕事はなくなりました。しかし少なくとも、傍らには忠実な友がいます。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136712,10 +133932,10 @@ msgstr "警察犬訓練士" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" -"忠犬と協力して麻薬密輸業者を逮捕する仕事に人生を捧げていました。世界が崩壊し、もはやそんな仕事はなくなりました。しかし少なくとも、傍らには忠実な友がいます。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136726,9 +133946,9 @@ msgstr "愛猫家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" -msgstr "誰もが死んでしまったのでしょうか?いいえ、気にする必要はありません...ネコさえいれば、他の友達は不要です!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136739,9 +133959,9 @@ msgstr "愛猫家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" -msgstr "誰もが死んでしまったのでしょうか?いいえ、気にする必要はありません...ネコさえいれば、他の友達は不要です!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136752,13 +133972,11 @@ msgstr "警察官" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"通報を受け、救援の為に小さな町へ向かいました。しかしながら、直に自分達も救援を待つ身になってしまいました。その状況を脱出できたのはただの幸運でしかありません。もはや警察バッジに何の意味があるでしょうか?" -" それを尊敬する者もおらず、後ろ盾となる政府の威光も届かないのですから。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136769,13 +133987,11 @@ msgstr "警察官" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"通報を受け、救援の為に小さな町へ向かいました。しかしながら、直に自分達も救援を待つ身になってしまいました。その状況を脱出できたのはただの幸運でしかありません。もはや警察バッジに何の意味があるでしょうか?" -" それを尊敬する者もおらず、後ろ盾となる政府の威光も届かないのですから。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136786,11 +134002,10 @@ msgstr "刑事" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"大変動の日はある殺人事件の捜査中に重要な手掛かりを掴んだ所でした。しかし今やその容疑者は死に、誰も彼もが死にました。ニコチン依存症を患っています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136801,11 +134016,10 @@ msgstr "刑事" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"大変動の日はある殺人事件の捜査中に重要な手掛かりを掴んだ所でした。しかし今やその容疑者は死に、誰も彼もが死にました。ニコチン依存症を患っています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136818,10 +134032,9 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"警察の精鋭部隊の一員として凶悪犯罪や暴動などに対処する訓練を受けてきました。しかしながら、今回発生した事件は暴動の枠を超えたものでした。今は単純に生き残る為に戦っています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136834,10 +134047,9 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"警察の精鋭部隊の一員として凶悪犯罪や暴動などに対処する訓練を受けてきました。しかしながら、今回発生した事件は暴動の枠を超えたものでした。今は単純に生き残る為に戦っています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136848,12 +134060,11 @@ msgstr "SWAT精鋭隊員(CQC)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"警察の精鋭部隊の一員として凶悪犯罪や暴動などに対処する訓練を受けてきました。取り分け近接格闘の技術に秀でており、その実力によって今日まで命を永らえて来ました。しかしながら、今回発生した事件は暴動の枠を超えたものでした。今は単純に生き残る為に戦っています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136864,12 +134075,11 @@ msgstr "SWAT精鋭隊員(CQC)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"警察の精鋭部隊の一員として凶悪犯罪や暴動などに対処する訓練を受けてきました。取り分け近接格闘の技術に秀でており、その実力によって今日まで命を永らえて来ました。しかしながら、今回発生した事件は暴動の枠を超えたものでした。今は単純に生き残る為に戦っています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136881,11 +134091,10 @@ msgstr "警察官(狙撃手)" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"研ぎ澄まされた精密射撃の技で任務を果たしてきました。たとえ単身だろうと敵を狙い撃ち、無辜の市民を守り抜いて見せましょう。ただし仲間が居ない以上、狙いを外す余裕はありません。再装填を終える前に誰かの夕飯にされてしまうでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136897,11 +134106,10 @@ msgstr "警察官(狙撃手)" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"研ぎ澄まされた精密射撃の技で任務を果たしてきました。たとえ単身だろうと敵を狙い撃ち、無辜の市民を守り抜いて見せましょう。ただし仲間が居ない以上、狙いを外す余裕はありません。再装填を終える前に誰かの夕飯にされてしまうでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136912,12 +134120,11 @@ msgstr "暴動鎮圧部隊員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"暴徒は元来粗野な連中ですが、死んだそれが起き上がって生者をむさぼり始めました。防御線の崩壊が決定的になったその時、数えきれないほど頭を殴りつけられながらも、運よく安全な場所に逃げ込めました。最悪の事態が起こるのはこれからです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136928,12 +134135,11 @@ msgstr "暴動鎮圧部隊員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"暴徒は元来粗野な連中ですが、死んだそれが起き上がって生者をむさぼり始めました。防御線の崩壊が決定的になったその時、数えきれないほど頭を殴りつけられながらも、運よく安全な場所に逃げ込めました。最悪の事態が起こるのはこれからです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136944,12 +134150,10 @@ msgstr "中古車販売員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"金の為なら母親を売る事も厭わない人間だという非難の声を浴びてきました。しかし、そんな自分を捨てる時が来たのです。そして辺りを走り回りました、金以外の物を掻き集める為に。さあ、行きましょう!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136960,12 +134164,10 @@ msgstr "中古車販売員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"金の為なら母親を売る事も厭わない人間だという非難の声を浴びてきました。しかし、そんな自分を捨てる時が来たのです。そして辺りを走り回りました、金以外の物を掻き集める為に。さあ、行きましょう!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136976,12 +134178,11 @@ msgstr "狩人(弓)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"幼少の頃から狩りを愛し、弓を愛していました。そして文明が崩壊した今、弓以上に信頼できるものなどある筈もありません。今こそそれを確かめる時です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136992,12 +134193,11 @@ msgstr "狩人(弓)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"幼少の頃から狩りを愛し、弓を愛していました。そして文明が崩壊した今、弓以上に信頼できるものなどある筈もありません。今こそそれを確かめる時です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137008,12 +134208,11 @@ msgstr "狩人(クロスボウ)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"幼少の頃から狩りを愛し、クロスボウを愛していました。そして文明が崩壊した今、クロスボウ以上に信頼できるものなどある筈もありません。今こそそれを確かめる時です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137024,12 +134223,11 @@ msgstr "狩人(クロスボウ)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"幼少の頃から狩りを愛し、クロスボウを愛していました。そして文明が崩壊した今、クロスボウ以上に信頼できるものなどある筈もありません。今こそそれを確かめる時です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137040,12 +134238,11 @@ msgstr "狩人(ショットガン)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"幼少の頃から狩りを愛し、ショットガンを愛していました。そして文明が崩壊した今、ショットガン以上に信頼できるものなどある筈もありません。今こそそれを確かめる時です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137056,12 +134253,11 @@ msgstr "狩人(ショットガン)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"幼少の頃から狩りを愛し、ショットガンを愛していました。そして文明が崩壊した今、ショットガン以上に信頼できるものなどある筈もありません。今こそそれを確かめる時です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137072,12 +134268,11 @@ msgstr "狩人(ライフル)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"幼少の頃から狩りを愛し、ライフルを愛していました。そして文明が崩壊した今、ライフル以上に信頼できるものなどある筈もありません。今こそそれを確かめる時です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137088,12 +134283,11 @@ msgstr "狩人(ライフル)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"幼少の頃から狩りを愛し、ライフルを愛していました。そして文明が崩壊した今、ライフル以上に信頼できるものなどある筈もありません。今こそそれを確かめる時です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137104,12 +134298,11 @@ msgstr "便利屋" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"金物屋で働き、多くの家を修復してきました。今、目の前に広がるのは廃墟と化した街並みだけです。未熟な腕と手元に残るわずかな資材を手に、果たして、この荒廃した世界を修復できるのでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137120,12 +134313,11 @@ msgstr "便利屋" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"金物屋で働き、多くの家を修復してきました。今、目の前に広がるのは廃墟と化した街並みだけです。未熟な腕と手元に残るわずかな資材を手に、果たして、この荒廃した世界を修復できるのでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137136,10 +134328,9 @@ msgstr "トラック運転手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." -msgstr "大型車を運転していれば暴動が起きても安全だと思っていました。安心できる場所はもはやトラックの運転席しか残されていません。" +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137150,10 +134341,9 @@ msgstr "トラック運転手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." -msgstr "大型車を運転していれば暴動が起きても安全だと思っていました。安心できる場所はもはやトラックの運転席しか残されていません。" +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137190,11 +134380,11 @@ msgstr "バックパッカー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"両親の資金を頼りに、世界中を観光したり放浪していました。しかし、今となっては頼みの綱が無くなり、あるのは目の前に広がる道路とバックパックだけです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137205,11 +134395,11 @@ msgstr "バックパッカー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"両親の資金を頼りに、世界中を観光したり放浪していました。しかし、今となっては頼みの綱が無くなり、あるのは目の前に広がる道路とバックパックだけです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137220,10 +134410,10 @@ msgstr "ファーストフード調理師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"1週間前にファーストフード店で働き始めました。そして、つい先ほど「早く食べる」という言葉の真の意味を理解した所です。今は命懸けで走っています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137234,10 +134424,10 @@ msgstr "ファーストフード調理師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"1週間前にファーストフード店で働き始めました。そして、つい先ほど「早く食べる」という言葉の真の意味を理解した所です。今は命懸けで走っています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137248,12 +134438,9 @@ msgstr "電気技師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" -"安っぽいオーナーの下でちっぽけな電気工事をしていました。しかし今日は違います、シェルターの配線という大きな仕事を任せられたのです。ところが正に作業の最中に災害が襲ってくるなんて、出来の悪い冗談のようです。残念ながらコンピュータの配線は1つしか終わりませんでした。今となってはどうでも良い事でしょうが。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137264,12 +134451,9 @@ msgstr "電気技師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" -"安っぽいオーナーの下でちっぽけな電気工事をしていました。しかし今日は違います、シェルターの配線という大きな仕事を任せられたのです。ところが正に作業の最中に災害が襲ってくるなんて、出来の悪い冗談のようです。残念ながらコンピュータの配線は1つしか終わりませんでした。今となってはどうでも良い事でしょうが。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137280,11 +134464,11 @@ msgstr "ハッカー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"カフェイン剤を友に、モニターの中の世界で夜通し全能感に浸っていました。今や世界は崩壊し、無力感に苛まれています。もっとも、軍のメインフレームでも発見できれば話は別ですが。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137295,11 +134479,11 @@ msgstr "ハッカー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"カフェイン剤を友に、モニターの中の世界で夜通し全能感に浸っていました。今や世界は崩壊し、無力感に苛まれています。もっとも、軍のメインフレームでも発見できれば話は別ですが。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137310,11 +134494,11 @@ msgstr "高校生" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"高校生でした。しかし今、直面している問題には学校のテスト以上に大きな物が賭かっています。普段から持ち歩いている本の中に役立ちそうな物もあるかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137325,11 +134509,11 @@ msgstr "高校生" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"高校生でした。しかし今、直面している問題には学校のテスト以上に大きな物が賭かっています。普段から持ち歩いている本の中に役立ちそうな物もあるかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137340,10 +134524,10 @@ msgstr "入浴中に被害にあった人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." -msgstr "熱いシャワーを浴びている最中、大変動が起こりました!石鹸とその場にあった最も役立ちそうな物...タオルをとっさに掴み、逃げ出しました。" +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137354,10 +134538,10 @@ msgstr "入浴中に被害にあった人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." -msgstr "熱いシャワーを浴びている最中、大変動が起こりました!石鹸とその場にあった最も役立ちそうな物...タオルをとっさに掴み、逃げ出しました。" +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137368,9 +134552,9 @@ msgstr "暴走族" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." -msgstr "人生はバイクと共にありました。これからの人生もバイクと共に過ごすのは当然のことです。" +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137381,9 +134565,9 @@ msgstr "暴走族" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." -msgstr "人生はバイクと共にありました。これからの人生もバイクと共に過ごすのは当然のことです。" +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137394,9 +134578,10 @@ msgstr "社交ダンサー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." -msgstr "大変動が起きるまでは社交ダンスのダンサーでした。得意な踊りを生かして何とか生き延びましょう。" +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137407,9 +134592,10 @@ msgstr "社交ダンサー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." -msgstr "大変動が起きるまでは社交ダンスのダンサーでした。得意な踊りを生かして何とか生き延びましょう。" +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137420,11 +134606,10 @@ msgstr "サイボーグ(泥棒)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"幾度も世間の注目を集めた泥棒でした。しかしこの世界ではそれに何の意味もありません。優秀な仕事道具、少しの宝、そして完全無欠のスタイル。これらが残された全てです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137435,11 +134620,10 @@ msgstr "サイボーグ(泥棒)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"幾度も世間の注目を集めた泥棒でした。しかしこの世界ではそれに何の意味もありません。優秀な仕事道具、少しの宝、そして完全無欠のスタイル。これらが残された全てです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137450,12 +134634,11 @@ msgstr "サイボーグ(病人)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"機械化手術の被験者となる事で一命を取り留めました。自身の代謝機能によって給電されるCBMのお陰で、前より健康的な生活を送れるのです。第二の人生を最大限に活用しましょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137466,12 +134649,11 @@ msgstr "サイボーグ(病人)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"機械化手術の被験者となる事で一命を取り留めました。自身の代謝機能によって給電されるCBMのお陰で、前より健康的な生活を送れるのです。第二の人生を最大限に活用しましょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137482,9 +134664,9 @@ msgstr "患者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." -msgstr "生きる為に病魔と戦う事を誓いました。しかし...どうやらその誓いを立て直さなければならないようです。" +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137495,9 +134677,9 @@ msgstr "患者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." -msgstr "生きる為に病魔と戦う事を誓いました。しかし...どうやらその誓いを立て直さなければならないようです。" +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137509,8 +134691,9 @@ msgstr "突然変異者(不本意)" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." -msgstr "突然変異の計り知れない力を解明するという目的の下、研究員から人間モルモットとして扱われていました。" +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137522,8 +134705,9 @@ msgstr "突然変異者(不本意)" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." -msgstr "突然変異の計り知れない力を解明するという目的の下、研究員から人間モルモットとして扱われていました。" +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137535,10 +134719,9 @@ msgstr "突然変異者(志願)" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"超人になる夢がありました。現在の技術ではそうは行かないと知りつつも被験者に志願したのです。大変動の日、それはちょうど新しい身体を手に入れた日でした。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137550,10 +134733,9 @@ msgstr "突然変異者(志願)" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"超人になる夢がありました。現在の技術ではそうは行かないと知りつつも被験者に志願したのです。大変動の日、それはちょうど新しい身体を手に入れた日でした。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137566,9 +134748,9 @@ msgctxt "prof_desc_male" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"元々は正常な状態でした。しかし、テスト前に、プログラム処理の完了前に、全ての人間性の痕跡を剥ぎ取られてしまいました。今やほとんどただの機械でしかありませんが、恐怖に対しては優位性を証明できます。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137581,9 +134763,9 @@ msgctxt "prof_desc_female" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"元々は正常な状態でした。しかし、テスト前に、プログラム処理の完了前に、全ての人間性の痕跡を剥ぎ取られてしまいました。今やほとんどただの機械でしかありませんが、恐怖に対しては優位性を証明できます。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137628,11 +134810,10 @@ msgstr "サイボーグ(運動選手)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"まったくもって残念です、こんな事がなければサイバーオリンピック出場は決まっていたでしょうに。今や残された競技といえば、サイボーグの力とゾンビのどちらが勝っているのか、それを決める殺し合いだけなのですから。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137643,11 +134824,10 @@ msgstr "サイボーグ(運動選手)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"まったくもって残念です、こんな事がなければサイバーオリンピック出場は決まっていたでしょうに。今や残された競技といえば、サイボーグの力とゾンビのどちらが勝っているのか、それを決める殺し合いだけなのですから。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137658,11 +134838,10 @@ msgstr "サイボーグ(ランナー)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" -"決して一線を退くことのない運動選手です。走ることをこよなく愛し、もっと走り続けるために自身の身体を改造しました。今やるべきことは山ほどありますが、全て競技みたいなものです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137673,11 +134852,10 @@ msgstr "サイボーグ(ランナー)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" -"決して一線を退くことのない運動選手です。走ることをこよなく愛し、もっと走り続けるために自身の身体を改造しました。今やるべきことは山ほどありますが、全て競技みたいなものです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137719,10 +134897,9 @@ msgstr "サイボーグ(消防士)" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"第二世代の機械化消防士です。君達は人工頭脳のオペレートによって災害状況を把握し、迅速な行動が可能なのです。当然ながら今回発生した災厄は超弩級の災害と言えるでしょう。さあ、出動です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137734,10 +134911,9 @@ msgstr "サイボーグ(消防士)" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"第二世代の機械化消防士です。君達は人工頭脳のオペレートによって災害状況を把握し、迅速な行動が可能なのです。当然ながら今回発生した災厄は超弩級の災害と言えるでしょう。さあ、出動です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137748,10 +134924,10 @@ msgstr "サイボーグ(科学者)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." -msgstr "災厄の日以前、大企業の技術顧問をやっていました。機械化によって高められた知性は得難い物だったのです。" +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137762,10 +134938,10 @@ msgstr "サイボーグ(科学者)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." -msgstr "災厄の日以前、大企業の技術顧問をやっていました。機械化によって高められた知性は得難い物だったのです。" +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137776,11 +134952,10 @@ msgstr "サイボーグ(兵士)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"軍の研究によって生み出された最新兵器、プロトタイプの機械化兵士です。戦友たちが次々とゾンビ化していく中、生き残れたのは機械の体のお陰なのです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137791,11 +134966,10 @@ msgstr "サイボーグ(兵士)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"軍の研究によって生み出された最新兵器、プロトタイプの機械化兵士です。戦友たちが次々とゾンビ化していく中、生き残れたのは機械の体のお陰なのです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137806,11 +134980,11 @@ msgstr "サイボーグ(狙撃手)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"身体に埋め込まれたCBM、数々の装備、そして広範な訓練によって、敵地での数週間に渡る単独行動の後でも超遠距離からターゲットを狙撃する事ができるほどの能力を備えています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137821,11 +134995,11 @@ msgstr "サイボーグ(狙撃手)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"身体に埋め込まれたCBM、数々の装備、そして広範な訓練によって、敵地での数週間に渡る単独行動の後でも超遠距離からターゲットを狙撃する事ができるほどの能力を備えています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137836,12 +135010,11 @@ msgstr "サイボーグ(諜報員)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"身体には何百万ドルもの税金が投入されています。暗視装置に、危険察知用の生体アラーム、ピッキングとハッキングのツール...政府は君を諜報のスペシャリストへと改造したのです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137852,12 +135025,11 @@ msgstr "サイボーグ(諜報員)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"身体には何百万ドルもの税金が投入されています。暗視装置に、危険察知用の生体アラーム、ピッキングとハッキングのツール...政府は君を諜報のスペシャリストへと改造したのです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137870,9 +135042,8 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"身体には何百万ドルもの秘密資金が投入されています。見た目からは全く判りませんが、ターゲットを秘密裏に排除する為の仕込み刀など、様々な装置を埋め込まれた工作員です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137885,9 +135056,8 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"身体には何百万ドルもの秘密資金が投入されています。見た目からは全く判りませんが、ターゲットを秘密裏に排除する為の仕込み刀など、様々な装置を埋め込まれた工作員です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137898,13 +135068,11 @@ msgstr "サイボーグ(ギャング)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" -"才能を見込まれてボスのお気に入りとなり、仕事の助けとなる「基本的な」身体強化と市場で手に入る中で最高の機材を与えられました。渇望していた自由を一通り謳歌した後でふと、これから生き延びるための技術を磨く必要性に気づきました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137915,13 +135083,11 @@ msgstr "サイボーグ(ギャング)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" -"才能を見込まれてボスのお気に入りとなり、仕事の助けとなる「基本的な」身体強化と市場で手に入る中で最高の機材を与えられました。渇望していた自由を一通り謳歌した後でふと、これから生き延びるための技術を磨く必要性に気づきました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137932,11 +135098,10 @@ msgstr "サイボーグ(失敗作)" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"身体に埋め込まれたCBMはポンコツです。大容量の蓄電装置を搭載していても、電力を供給されるべきCBMが壊れていては何の意味もありません。まともに動くのはエタノール燃焼発電システムだけです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137947,11 +135112,10 @@ msgstr "サイボーグ(失敗作)" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"身体に埋め込まれたCBMはポンコツです。大容量の蓄電装置を搭載していても、電力を供給されるべきCBMが壊れていては何の意味もありません。まともに動くのはエタノール燃焼発電システムだけです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137963,12 +135127,8 @@ msgstr "サイボーグ(市販品)" msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" -"常に最先端のCBMを移植し続けてきました。スマートフォンの機種変更と似たようなものですから、何も奇妙ではありませんね?電子工学に対する情熱と生物工学技術の粋が滅びた世界でどれほど通用するのか、いずれ分かるときが来るでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137980,12 +135140,8 @@ msgstr "サイボーグ(市販品)" msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" -"常に最先端のCBMを移植し続けてきました。スマートフォンの機種変更と似たようなものですから、何も奇妙ではありませんね?電子工学に対する情熱と生物工学技術の粋が滅びた世界でどれほど通用するのか、いずれ分かるときが来るでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138023,10 +135179,9 @@ msgstr "罠猟師" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"父親と共に罠猟師をしていました。罠によって生計を立てられるように訓練を受けてきたのです。そのスキルを上手く使えばこの災厄を乗り切る事も可能でしょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138038,10 +135193,9 @@ msgstr "罠猟師" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"父親と共に罠猟師をしていました。罠によって生計を立てられるように訓練を受けてきたのです。そのスキルを上手く使えばこの災厄を乗り切る事も可能でしょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138052,11 +135206,10 @@ msgstr "鍛冶場" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"災厄の日、専門学校で金属加工の実習を行っていました。実習が終わったその時、この事件に遭遇したのです。何とかその実習に使っていた道具を持って逃げ出しました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138067,11 +135220,10 @@ msgstr "鍛冶場" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"災厄の日、専門学校で金属加工の実習を行っていました。実習が終わったその時、この事件に遭遇したのです。何とかその実習に使っていた道具を持って逃げ出しました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138084,9 +135236,8 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"全人類を笑顔にすることを望んでいました。学校を中退した後、誕生会などで子供達を笑顔にする...文明が崩壊するまでは夢は実現できると信じていました。しかし、今となっては貴重な動物型の風船が手元に残るのみとなってしまいました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138099,9 +135250,8 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"全人類を笑顔にすることを望んでいました。学校を中退した後、誕生会などで子供達を笑顔にする...文明が崩壊するまでは夢は実現できると信じていました。しかし、今となっては貴重な動物型の風船が手元に残るのみとなってしまいました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138112,11 +135262,11 @@ msgstr "性奴隷" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." -msgstr "過酷な運命によってご主人様と分かたれてしまいました。今、持っているのは黒革のボンテージだけです。生憎、この災厄にセーフワードは無いのです。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138127,12 +135277,11 @@ msgstr "性奴隷" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"過酷な運命によってご主人様と分かたれてしまいました。今、持っているのは黒革のボンデージスーツだけです。生憎、この災厄にセーフワードは無いのです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138171,11 +135320,11 @@ msgstr "オタク" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"昨夜は夜遅くまでスナックを片手にアニメを見て、今日のイベントを楽しみにしていました。しかし訪れたのは災厄の日。この日の為に用意したコスチュームは引き裂かれてしまいました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138186,11 +135335,11 @@ msgstr "オタク" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"昨夜は夜遅くまでスナックを片手にアニメを見て、今日のイベントを楽しみにしていました。しかし訪れたのは災厄の日。この日の為に用意したコスチュームは引き裂かれてしまいました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138227,9 +135376,9 @@ msgstr "パンクロックの伊達男" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" -msgstr "災厄によって狂った夢が叶いました。政府は崩壊し、骨達がパーティする世界が来たのです!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138240,9 +135389,9 @@ msgstr "パンクロックの少女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" -msgstr "災厄によって狂った夢が叶いました。政府は崩壊し、骨達がパーティする世界が来たのです!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138253,12 +135402,11 @@ msgstr "消防士" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"ファーストレスポンダーとして災厄の衝撃的な恐怖を直接目撃しました。ほとんどの装備と連絡手段から引き離され、信頼するハリガンバールと身を守る消防服で戦う事を余儀なくされました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138269,12 +135417,11 @@ msgstr "消防士" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"ファーストレスポンダーとして災厄の衝撃的な恐怖を直接目撃しました。ほとんどの装備と連絡手段から引き離され、信頼するハリガンバールと身を守る消防服で戦う事を余儀なくされました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138285,9 +135432,9 @@ msgstr "不良少年" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." -msgstr "所属していたスカバンドはドラマーがゾンビになった後に解散しました。現在、数本の煙草とMP3プレーヤーを持ちながら、孤独に佇んでいます。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138298,9 +135445,9 @@ msgstr "不良少女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." -msgstr "所属していたスカバンドはドラマーがゾンビになった後に解散しました。現在、数本の煙草とMP3プレーヤーを持ちながら、孤独に佇んでいます。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138311,9 +135458,9 @@ msgstr "郵便配達員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." -msgstr "郵便配達で磨いた飛び出す犬や子供が投げた玩具を回避するテクは、生き残りに役立つエッジの効いたスキルとして活躍するでしょう。" +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138324,9 +135471,9 @@ msgstr "郵便配達員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." -msgstr "郵便配達で磨いた飛び出す犬や子供が投げた玩具を回避するテクは、生き残りに役立つエッジの効いたスキルとして活躍するでしょう。" +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138337,9 +135484,10 @@ msgstr "囚人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." -msgstr "大変動は脱獄の機会を与えてくれました。しかし、自由の対価はとてつもなく高騰していたのです。" +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138350,9 +135498,10 @@ msgstr "囚人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." -msgstr "大変動は脱獄の機会を与えてくれました。しかし、自由の対価はとてつもなく高騰していたのです。" +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138363,10 +135512,10 @@ msgstr "死刑囚" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." -msgstr "電気椅子への行進を待つ連続殺人犯でした。今や誰もが死んでおり、真の死を与えてやれるのは自分以外にいません。仕事に取り掛かりましょう。" +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138377,10 +135526,10 @@ msgstr "死刑囚" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." -msgstr "電気椅子への行進を待つ連続殺人犯でした。今や誰もが死んでおり、真の死を与えてやれるのは自分以外にいません。仕事に取り掛かりましょう。" +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138393,9 +135542,8 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" -"会社の口座から資金をほんのちょっぴり拝借するための天才的な計画を立てていましたが、計画は失敗し、逮捕されてしまいました。そして今、刑務所なんて辛い場所で生き抜けるのかと揶揄してきた奴らは全員死に絶えました。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138408,9 +135556,8 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" -"会社の口座から資金をほんのちょっぴり拝借するための天才的な計画を立てていましたが、計画は失敗し、逮捕されてしまいました。そして今、刑務所なんて辛い場所で生き抜けるのかと揶揄してきた奴らは全員死に絶えました。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138451,10 +135598,10 @@ msgstr "政治犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" -"研究所で何が起きていたのかを明らかにするという、正義の計画を立てていました。軽犯罪で告発さえされなければ、大変動は起こらなかったのかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138465,10 +135612,10 @@ msgstr "政治犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" -"研究所で何が起きていたのかを明らかにするという、正義の計画を立てていました。軽犯罪で告発さえされなければ、大変動は起こらなかったのかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138507,9 +135654,10 @@ msgstr "空き巣" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" -msgstr "良い時代になったものです。ゾンビになった住人の家に押し入るのは不法侵入なのでしょうか?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138520,9 +135668,10 @@ msgstr "空き巣" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" -msgstr "良い時代になったものです。ゾンビになった住人の家に押し入るのは不法侵入なのでしょうか?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138533,12 +135682,9 @@ msgstr "機械少年" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"激痛と大金を代償とした手術により、生きた武器になりました。それによって得た最高ランクの傭兵として活動できる程の力は、終末の今では生と死を分かつものになっています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138549,12 +135695,9 @@ msgstr "機械少女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"激痛と大金を代償とした手術により、生きた武器になりました。それによって得た最高ランクの傭兵として活動できる程の力は、終末の今では生と死を分かつものになっています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138567,10 +135710,9 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"CBMに憧れ、裏路地の怪しげな生体工学クリニックを訪れ、中古品をセルフインストールする事で欲求を満たしている内にすっかり中毒になってしまいました。世界が進歩した今も、人類の限界を超えるという欲望は未だ満たされていません。どこに行けば治せるのでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138583,10 +135725,9 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"CBMに憧れ、裏路地の怪しげな生体工学クリニックを訪れ、中古品をセルフインストールする事で欲求を満たしている内にすっかり中毒になってしまいました。世界が進歩した今も、人の限界を超えるという欲望は未だ満たされていません。どこに行けば治せるのでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138598,11 +135739,9 @@ msgstr "サイボーグ(怪物)" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"生体工学が生んだ精神異常者、人の限界を超えた怪物です。社会から排斥され身を隠す事を余儀なくされていましたが、この災厄の世界では自分のような化け物でも居場所を見つけられるかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138614,12 +135753,9 @@ msgstr "サイボーグ(怪物)" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"生体工学が生んだ精神異常者、人の限界を超えた怪物です。社会から排斥され身を隠す事を余儀なくされていましたが、この災厄の世界では自分のような化け物でも居場所を見つけられるかもしれません。" -" " #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138630,9 +135766,10 @@ msgstr "弁護士" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." -msgstr "先程、クライアントが料金への不満を言う代わりに脳を喰らおうとしてきました。しかし、もうその行為を裁判に持ち込む事もできません。" +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138643,9 +135780,10 @@ msgstr "弁護士" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." -msgstr "先程、クライアントが料金への不満を言う代わりに脳を喰らおうとしてきました。しかし、もうその行為を裁判に持ち込む事もできません。" +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138656,12 +135794,10 @@ msgstr "司祭" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"黙示録の日が訪れた時、教区内を守る為に自分の出来うる全てを誠実にこなしましたが、祈りは天には届かなかったようです。死者となった者達から身を守る為に、多くの具体的な何かを実行に移す必要があるでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138672,12 +135808,10 @@ msgstr "司祭" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"黙示録の日が訪れた時、教区内を守る為に自分の出来うる全てを誠実にこなしましたが、祈りは天には届かなかったようです。死者となった者達から身を守る為に、多くの具体的な何かを実行に移す必要があるでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138719,11 +135853,10 @@ msgstr "イマーム" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"黙示録の日が訪れる前は、預言者の声を聞き、コーランを熟読し、地域社会を平和に導く為に、地元のモスクで祈りを捧げる日々を過ごしていました。かつては遠方から信者達が話を聞きに来てくれましたが、今では脳味噌を食べにやってくる者ばかりです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138735,11 +135868,10 @@ msgstr "イマーム" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"黙示録の日が訪れる前は、預言者の声を聞き、コーランを熟読し、地域社会を平和に導く為に、地元のモスクで祈りを捧げる日々を過ごしていました。かつては遠方から信者達が話を聞きに来てくれましたが、今では脳味噌を食べにやってくる者ばかりです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138807,11 +135939,10 @@ msgstr "伝道者" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"町から町へ、常に歩み続け、善き教えを広める事に人生を捧げてきました。さて、何もかもが地獄の底に堕ちた今、今日の分のポッドキャスト配信は出来ませんし、死者に説教を聞かせてみたところで、その心が動く事はまず無いでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138823,11 +135954,10 @@ msgstr "伝道者" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"町から町へ、常に歩み続け、善き教えを広める事に人生を捧げてきました。さて、何もかもが地獄の底に堕ちた今、今日の分のポッドキャスト配信は出来ませんし、死者に説教を聞かせてみたところで、その心が動く事はまず無いでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138838,9 +135968,9 @@ msgstr "武道家見習い" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." -msgstr "災厄の日、最初のレッスンを受ける為に道場に向かう途中でした。今は泳ぎ方も習うべきだったと後悔しています。" +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138851,9 +135981,9 @@ msgstr "武道家見習い" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." -msgstr "災厄の日、最初のレッスンを受ける為に道場に向かう途中でした。今は泳ぎ方も習うべきだったと後悔しています。" +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138916,9 +136046,9 @@ msgstr "ボクサー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." -msgstr "大変動が起こるまでは、戦いとそのためのトレーニングに人生を捧げてきました。これからは、自分自身が生き残るためだけに戦います。" +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138929,9 +136059,9 @@ msgstr "ボクサー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." -msgstr "大変動が起こるまでは、戦いとそのためのトレーニングに人生を捧げてきました。これからは、自分自身が生き残るためだけに戦います。" +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138943,11 +136073,10 @@ msgstr "宅配ピザ屋" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" -"大変動が来た時、地元の低温物理学の研究所にこの夜最後のピザを届けに行く所でした。最寄りの避難所に逃げる事になりましたが、役立ちそうなものはピザの残りと自らの機転ぐらいしかありません。あの客、チップすら払わないなんて!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138959,11 +136088,10 @@ msgstr "宅配ピザ屋" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" -"大変動が来た時、地元の低温物理学の研究所にこの夜最後のピザを届けに行く所でした。最寄りの避難所に逃げる事になりましたが、役立ちそうなものはピザの残りと自らの機転ぐらいしかありません。あの客、チップすら払わないなんて!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138974,11 +136102,10 @@ msgstr "考古学者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"死んだ祖父の日記を手掛かりに、長らく忘れ去られていた寺院を探索していました。道中で突然地面が大きく揺れ始めたため、直感的に危険と判断して探索を切り上げ、最寄りの避難所に向かったのです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138989,11 +136116,10 @@ msgstr "考古学者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"死んだ祖父の日記を手掛かりに、長らく忘れ去られていた寺院を探索していました。道中で突然地面が大きく揺れ始めたため、直感的に危険と判断して探索を切り上げ、最寄りの避難所に向かったのです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139004,11 +136130,10 @@ msgstr "新聞配達の少年" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"大変動が襲った時、いつも通りのルートで朝刊を配達していました。どうやらアンデッドの大群は最新の新聞には無関心なようですが、信頼する自転車は役に立ってくれる事でしょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139019,11 +136144,10 @@ msgstr "新聞配達の少女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"大変動が襲った時、いつも通りのルートで朝刊を配達していました。どうやらアンデッドの大群は最新の新聞には無関心なようですが、信頼する自転車は役に立ってくれる事でしょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139034,12 +136158,11 @@ msgstr "ローラーゲーム選手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"災厄の日、ローラースケートでかっ飛ばす準備だけは万端でした。スピード狂の気質が無ければ、他のチームメイトのように死んでいたかもしれません。どうやら状況はかなり厳しいようです。一度捕まればそこまで、死者達を周回しながらいつまでレースを続けられるでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139050,12 +136173,11 @@ msgstr "ローラーゲーム選手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"災厄の日、ローラースケートでかっ飛ばす準備だけは万端でした。スピード狂の気質が無ければ、他のチームメイトのように死んでいたかもしれません。どうやら状況はかなり厳しいようです。一度捕まればそこまで、死者達を周回しながらいつまでレースを続けられるでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139066,11 +136188,10 @@ msgstr "農家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" -"大変動以前、作物を育てて生計を立てていました。今は使い慣れた鍬といくつかの種を持っています。その一つ一つが大地を再生する種になるかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139081,11 +136202,10 @@ msgstr "農家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" -"大変動以前、作物を育てて生計を立てていました。今は使い慣れた鍬といくつかの種を持っています。その一つ一つが大地を再生する種になるかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139096,11 +136216,10 @@ msgstr "州兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"爆発的な感染が確認されたとき、所属する州軍部隊に招集が掛かりました。最善の努力を尽くしたにもかかわらず、部隊の仲間と合流する前に通信が沈黙し、そして今、死者どもの真ん中で孤立しています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139111,11 +136230,10 @@ msgstr "州兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"爆発的な感染が確認されたとき、所属する州軍部隊に招集が掛かりました。最善の努力を尽くしたにもかかわらず、部隊の仲間と合流する前に通信が沈黙し、そして今、死者どもの真ん中で孤立しています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139127,11 +136245,9 @@ msgstr "熟練のスカベンジャー" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" -"大変動を免れた数少ない幸運な人々の中の1人です。どこかしらの廃屋に逃げ込みました。力か悪知恵か、或いは幸運によるものか、最高にイカした装備を持って、ここに立っています。" -" " #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139143,11 +136259,9 @@ msgstr "熟練のスカベンジャー" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" -"大変動を免れた数少ない幸運な人々の中の1人です。どこかしらの廃屋に逃げ込みました。力か悪知恵か、或いは幸運によるものか、最高にイカした装備を持って、ここに立っています。" -" " #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139158,12 +136272,11 @@ msgstr "残留軍人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"ブートキャンプでのサバイバル訓練を真面目に受けておくべきでした。さもなくば、然るべき命令を下してくれる指揮系統よりも長生きするべきではありませんでした。窮地にある事を理解した今、唯一の任務は生き延びる事です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139174,12 +136287,11 @@ msgstr "残留軍人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"ブートキャンプでのサバイバル訓練を真面目に受けておくべきでした。さもなくば、然るべき命令を下してくれる指揮系統よりも長生きするべきではありませんでした。窮地にある事を理解した今、唯一の任務は生き延びる事です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139190,10 +136302,10 @@ msgstr "モールの警備員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." -msgstr "ショッピングモールの警備員です。特別なスキルは持っていませんが、支給品の警棒とテーザー銃とポケットナイフを持っています。" +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139204,10 +136316,10 @@ msgstr "モールの警備員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." -msgstr "ショッピングモールの警備員です。特別なスキルは持っていませんが、支給品の警棒とテーザー銃とポケットナイフを持っています。" +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139218,11 +136330,10 @@ msgstr "自然主義者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"原野にその身を投げ出して幾年月、いつしか母なる大自然を真に理解できるようになっていました。世界が終わり、人類は見捨てられたらしいのですが、今のところ何が変わったのかよく分かりません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139233,11 +136344,10 @@ msgstr "自然主義者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"原野にその身を投げ出して幾年月、いつしか母なる大自然を真に理解できるようになっていました。世界が終わり、人類は見捨てられたらしいのですが、今のところ何が変わったのかよく分かりません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139248,13 +136358,11 @@ msgstr "釣り人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"沼地で釣りをして平穏に日々をやりくりしていました。かつては虫達のざわめきは心地良いものでしたが、その音は次第に大きく、下劣になってきて" -"、今では恐ろしげな騒音に怯えるばかりです-魚はあんな風になってないといいなぁ。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139265,13 +136373,11 @@ msgstr "釣り人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"沼地で釣りをして平穏に日々をやりくりしていました。かつては虫達のざわめきは心地良いものでしたが、その音は次第に大きく、下劣になってきて" -"、今では恐ろしげな騒音に怯えるばかりです-魚はあんな風になってないといいなぁ。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139343,10 +136449,9 @@ msgstr "無人ロボット技師" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"無人道路清掃機、ニュースボット、ピザ配達ドローンなどをプログラミングする仕事に就いていました。今、ドローンたちはピザの代わりに銃を抱えています。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139358,10 +136463,9 @@ msgstr "無人ロボット技師" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"無人道路清掃機、ニュースボット、ピザ配達ドローンなどをプログラミングする仕事に就いていました。今、ドローンたちはピザの代わりに銃を抱えています。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139372,9 +136476,10 @@ msgstr "スケート少年" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." -msgstr "ローラーブレード大好き!世界は終わりましたが、少なくとも大人たちに遊び場を指図されることはもうありません。" +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139385,9 +136490,10 @@ msgstr "スケート少女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." -msgstr "ローラーブレード大好き!世界は終わりましたが、少なくとも大人たちに遊び場を指図されることはもうありません。" +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139398,12 +136504,11 @@ msgstr "非行少年" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"大人どもが言うああしろこうしろなんて気にもとめない。だから毎日のように校長室へ呼び出されていた。さて、こうやって生きてるってことは、やっぱり大人どもの指図なんて要らなかったってことだけど、やれやれ、サボりゃよかったな、今日。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139414,12 +136519,11 @@ msgstr "非行少女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"大人どもが言うああしろこうしろなんて気にもとめない。だから毎日のように校長室へ呼び出されていた。さて、こうやって生きてるってことは、やっぱり大人どもの指図なんて要らなかったってことだけど、やれやれ、サボりゃよかったな、今日。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139463,11 +136567,10 @@ msgstr "サイボーグ(学生)" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"我が子にあらゆるテストで満点を取らせる事に執念を燃やす両親のもとに生まれました。CBMで完全武装した頭脳は抜群の処理能力を誇り、一度覚えた事は永遠に忘れません。今、目の前に広がる最も悲惨なテストをいつものように解こうとしていますが、果たして今回も満点を取れるでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139479,11 +136582,10 @@ msgstr "サイボーグ(学生)" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"我が子にあらゆるテストで満点を取らせる事に執念を燃やす両親のもとに生まれました。CBMで完全武装した頭脳は抜群の処理能力を誇り、一度覚えた事は永遠に忘れません。今、目の前に広がる最も悲惨なテストをいつものように解こうとしていますが、果たして今回も満点を取れるでしょうか?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139494,9 +136596,10 @@ msgstr "ドッジボール選手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." -msgstr "ドッジボールが好きです。ドッジボールでは、ボールを避けそこなったらアウトです。今、生命の危機を避けそこないつつあります。避けろ。" +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139507,9 +136610,10 @@ msgstr "ドッジボール選手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." -msgstr "ドッジボールが好きです。ドッジボールでは、ボールを避けそこなったらアウトです。今、生命の危機を避けそこないつつあります。避けろ。" +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139520,12 +136624,10 @@ msgstr "科学部員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"学校では科学部員でした。丁度、本当に楽しい爆発の化学は学校の部活動では実験させて貰えないと知った時のような気分ですが、少なくとも今、周りにそれを止める者はいません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139536,12 +136638,10 @@ msgstr "科学部員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"学校では科学部員でした。丁度、本当に楽しい爆発の化学は学校の部活動では実験させて貰えないと知った時のような気分ですが、少なくとも今、周りにそれを止める者はいません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139553,10 +136653,9 @@ msgstr "A/V部員" msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"学校ではA/V部に所属していました。身に付けた機械弄りのスキルは生存の助けになるでしょう。ただ、今はまだスーパー殺人光線銃の作り方が分からないのです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139568,10 +136667,9 @@ msgstr "A/V部員" msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"学校ではA/V部に所属していました。身に付けた機械弄りのスキルは生存の助けになるでしょう。ただ、今はまだスーパー殺人光線銃の作り方が分からないのです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139582,11 +136680,10 @@ msgstr "教師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"人生の大部分を教師として生きてきました。今までに教えたどの子供も概ね良き生徒でしたが、今や彼らの目的は恩師を生きたまま食うことであって、宿題の作文を書いてくることはもうありません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139597,11 +136694,10 @@ msgstr "教師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"人生の大部分を教師として生きてきました。今までに教えたどの子供も概ね良き生徒でしたが、今や彼らの目的は恩師を生きたまま食うことであって、宿題の作文を書いてくることはもうありません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139612,12 +136708,10 @@ msgstr "報道写真家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"この世の終わりが来るまではフリーのカメラマンでした。この惨状を一番に報道するチャンスが訪れましたが、取り扱ってくれる新聞社を探すのは普段より難しそうです。カメラは何とか手放さずにいたので、上手くいけば素晴らしい写真が撮れそうです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139628,12 +136722,10 @@ msgstr "報道写真家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"この世の終わりが来るまではフリーのカメラマンでした。この惨状を一番に報道するチャンスが訪れましたが、取り扱ってくれる新聞社を探すのは普段より難しそうです。カメラは何とか手放さずにいたので、上手くいけば素晴らしい写真が撮れそうです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139644,10 +136736,10 @@ msgstr "体育教師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"大抵の教師は小さい子供の群れに体育を教えるとうんざりした気分になりますが、ゾンビ達もまた、胸のホイッスルをいくら吹いたところで素直に言う事を聞いてはくれないようです。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139658,10 +136750,10 @@ msgstr "体育教師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"大抵の教師は小さい子供の群れに体育を教えるとうんざりした気分になりますが、ゾンビ達もまた、胸のホイッスルをいくら吹いたところで素直に言う事を聞いてはくれないようです。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139672,12 +136764,10 @@ msgstr "キャンパー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"大変動以前は暇さえあれば原野に繰り出してハイキングやキャンプを楽しんでいました。おかげでサイレンが鳴ったその時、反射的に必要なものが入った鞄を掴んで家を飛び出していました。世界はこんなことになってしまいましたが、あなたの場合どんな場所でも我が家となりえるでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139688,12 +136778,10 @@ msgstr "キャンパー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"大変動以前は暇さえあれば原野に繰り出してハイキングやキャンプを楽しんでいました。おかげでサイレンが鳴ったその時、反射的に必要なものが入った鞄を掴んで家を飛び出していました。世界はこんなことになってしまいましたが、あなたの場合どんな場所でも我が家となりえるでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139705,9 +136793,8 @@ msgstr "鉱山作業員" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"鉱山作業員、つまりは一流の鉱夫って奴ですね!まあ、水筒はカラで、愛用のジャックハンマーはガス欠、おまけにライト付きヘルメットの電池はこれで最後ですが..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139719,9 +136806,8 @@ msgstr "鉱山作業員" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"鉱山作業員、つまりは一流の鉱夫って奴ですね!まあ、水筒はカラで、愛用のジャックハンマーはガス欠、おまけにライト付きヘルメットの電池はこれで最後ですが..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139732,9 +136818,10 @@ msgstr "解体工事専門家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " -msgstr "事が起こる以前は、夢だった爆破解体を仕事にして、人生を楽しんでいました。これからはフルタイムで爆破解体が楽しめそうです。" +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139745,9 +136832,10 @@ msgstr "解体工事専門家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " -msgstr "事が起こる以前は、夢だった爆破解体を仕事にして、人生を楽しんでいました。これからはフルタイムで爆破解体が楽しめそうです。" +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139788,9 +136876,10 @@ msgstr "旅行家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" -msgstr "ニューイングランドを味わうためにここに来ましたが、いまやニューイングランドに味わい尽くされないよう祈るしかありません!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139801,9 +136890,10 @@ msgstr "旅行家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" -msgstr "ニューイングランドを味わうためにここに来ましたが、いまやニューイングランドに味わい尽くされないよう祈るしかありません!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139814,9 +136904,10 @@ msgstr "ザ・ネイキッド" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." -msgstr "森の中でリアリティ番組を撮影していました。出演者もスタッフも全員ゾンビに変身したようですが、ずいぶんリアルな作りですね..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139827,9 +136918,10 @@ msgstr "ザ・ネイキッド" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." -msgstr "森の中でリアリティ番組を撮影していました。出演者もスタッフも全員ゾンビに変身したようですが、ずいぶんリアルな作りですね..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139841,11 +136933,10 @@ msgstr "CBM移植専門家" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"CBM技術が初めて登場して間もなく関連職に就き、日々をCBM移植の監督に費やしてきました。世界でも数少ないオートドクを調整できる生きた人間として、そのスキルが滅びた世界でも役立つかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139857,11 +136948,10 @@ msgstr "CBM移植専門家" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"CBM技術が初めて登場して間もなく関連職に就き、日々をCBM移植の監督に費やしてきました。世界でも数少ないオートドクを調整できる生きた人間として、そのスキルが滅びた世界でも役立つかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139872,12 +136962,11 @@ msgstr "ゲームマスター" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"好き勝手言うメンバー達をまとめようと毎週四苦八苦している内に、ある考えが浮かびました。損な役回りはもう止めて、思うままに行動すべきです。そういう訳で、2人のドタキャン、更に2人のゾンビ化も放り出して逃げてきました。崩壊する世界のどこかで、きっと新たなプレイヤーも見つかるでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139888,12 +136977,11 @@ msgstr "ゲームマスター" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"好き勝手言うメンバー達をまとめようと毎週四苦八苦している内に、ある考えが浮かびました。損な役回りはもう止めて、思うままに行動すべきです。そういう訳で、2人のドタキャン、更に2人のゾンビ化も放り出して逃げてきました。崩壊する世界のどこかで、きっと新たなプレイヤーも見つかるでしょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139905,12 +136993,10 @@ msgstr "サイボーグ(GM)" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"運、それとも意志の力でしょうか。莫大な富を得て、世界中にいるごく親しい友人たちとのゲームを主宰していました。プレイヤーをコテンパンにする力を得られるならと、より知能を高めるために生体部品を移植し、ルールブックを全て暗記しました。知識がこの状況を乗り切る助けになることを祈りましょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139922,12 +137008,10 @@ msgstr "サイボーグ(GM)" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"運、それとも意志の力でしょうか。莫大な富を得て、世界中にいるごく親しい友人たちとのゲームを主宰していました。プレイヤーをコテンパンにする力を得られるならと、より知能を高めるために生体部品を移植し、ルールブックを全て暗記しました。知識がこの状況を乗り切る助けになることを祈りましょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139938,9 +137022,9 @@ msgstr "飼育係" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." -msgstr "休日に呼び出され、動物園での餌やりの仕事に駆り出されました。どういう訳か、同僚たちは誰一人出勤してきませんでした。" +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139951,9 +137035,9 @@ msgstr "飼育係" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." -msgstr "休日に呼び出され、動物園での餌やりの仕事に駆り出されました。どういう訳か、同僚たちは誰一人出勤してきませんでした。" +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139964,9 +137048,9 @@ msgstr "ゴルファー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." -msgstr "日がな一日孤独にゴルフの練習をするために、家族の元を離れることにしました。" +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139977,9 +137061,9 @@ msgstr "ゴルファー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." -msgstr "日がな一日孤独にゴルフの練習をするために、家族の元を離れることにしました。" +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140020,13 +137104,11 @@ msgstr "都市の侍" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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" @@ -140037,45 +137119,39 @@ msgstr "都市の侍" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "Competetive Fencer" +msgid "Competitive Fencer" msgstr "フェンシング選手" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" -"毎日地元の同好会で練習し、トーナメントにも出場する熱心なフェンシング選手でした。同好会での試合に出る準備をしていたその時、世界が崩壊しました。史上最大のトーナメントの開幕です。審判は皆死んでおり、対戦相手は誰もルールに従いません。" #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" +msgid "Competitive Fencer" msgstr "フェンシング選手" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" -"毎日地元の同好会で練習し、トーナメントにも出場する熱心なフェンシング選手でした。同好会での試合に出る準備をしていたその時、世界が崩壊しました。史上最大のトーナメントの開幕です。審判は皆死んでおり、対戦相手は誰もルールに従いません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140116,9 +137192,9 @@ msgstr "牧場主" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." -msgstr "人生の大半をウシやウマと共に過ごしてきました。これから先はどのように過ごしましょうか。" +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -140129,9 +137205,9 @@ msgstr "牧場主" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." -msgstr "人生の大半をウシやウマと共に過ごしてきました。これから先はどのように過ごしましょうか。" +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140142,11 +137218,10 @@ msgstr "ローディー" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" -"脚光を浴びることのない舞台裏で、アーティストの要望を聞き入れ、イベントが円滑に進むよう働いていました。出資金はどんどん増えていきますが、ショーを止めるわけにはいきません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -140157,11 +137232,10 @@ msgstr "ローディー" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" -"脚光を浴びることのない舞台裏で、アーティストの要望を聞き入れ、イベントが円滑に進むよう働いていました。出資金はどんどん増えていきますが、ショーを止めるわけにはいきません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140172,11 +137246,10 @@ msgstr "ミュージシャン" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" -"ステージでパフォーマンスをしている最中に大変動が訪れました。混乱の中で持ち出せたものはわずかですが、少なくとも大事なギターは手元にあります。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -140187,11 +137260,10 @@ msgstr "ミュージシャン" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" -"ステージでパフォーマンスをしている最中に大変動が訪れました。混乱の中で持ち出せたものはわずかですが、少なくとも大事なギターは手元にあります。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140203,9 +137275,8 @@ msgstr "サバイバルキット購入者" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" -"地元のショッピングモールでサバイバルキットを安く買えるというチラシを見て、実際には使わないと思いつつも取りあえず購入しました。それが、今あなたが所持している唯一の物です。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -140217,9 +137288,8 @@ msgstr "サバイバルキット購入者" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" -"地元のショッピングモールでサバイバルキットを安く買えるというチラシを見て、実際には使わないと思いつつも取りあえず購入しました。それが、今あなたが所持している唯一の物です。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140232,9 +137302,9 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" -"西部劇のイベントやショーに出演し、観光客に射撃術を披露することで生計を立てていましたが、世界は崩壊しました。信頼できる6連発銃を手に、昼夜を問わない決闘の世界へ足を踏み入れましょう。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -140247,9 +137317,9 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" -"西部劇のイベントやショーに出演し、観光客に射撃術を披露することで生計を立てていましたが、世界は崩壊しました。信頼できる6連発銃を手に、昼夜を問わない決闘の世界へ足を踏み入れましょう。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140260,12 +137330,11 @@ msgstr "フラタニティ会員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" -"親の金を湯水のように使い、贅沢な生活をしていました。いつも通りドラッグパーティーに参加していましたが、持ってきたヤクよりも新鮮な人肉を目当てにゲスト達が押し寄せました。まだ残っている贅沢な生活のシンボル、スポーツカーを使えば、遠くへ逃げられるかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -140276,12 +137345,11 @@ msgstr "ソロリティ会員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" -"親の金を湯水のように使い、贅沢な生活をしていました。いつも通りドラッグパーティーに参加していましたが、持ってきたヤクよりも新鮮な人肉を目当てにゲスト達が押し寄せました。まだ残っている贅沢な生活のシンボル、スポーツカーを使えば、遠くへ逃げられるかもしれません。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140647,6 +137715,40 @@ msgid "" msgstr "" "人間、ゾウ、マストドンのDNAを組み合わせて計画的に生み出された、知性をもつゾウ型生物兵器です。血気盛んな親戚たちとは異なり、強制的な服務期間を終えると平和的な引退を求め、完全な市民権と同等の権利を得ました。しかし、今や世界は地平線の彼方まで破壊されています。戦闘能力が再び役に立つ時が来ました。" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" @@ -141775,270 +138877,6 @@ msgid "" "find some other use." msgstr "テストでズルをするために使っていた魔法は、大変動の世界で他の用途に役立つかもしれません。" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Brave of the King" -msgstr "ファラオ勇士隊" - -#. ~ Profession (male Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"古代エジプトでファラオを守った精鋭近衛戦士です。古来、砂漠という環境で本格的な防具を身に付けることは一般的ではありませんでしたが、新王国時代になると盛んに使われるようになりました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Brave of the King" -msgstr "ファラオ勇士隊" - -#. ~ Profession (female Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"古代エジプトでファラオを守った精鋭近衛戦士です。古来、砂漠という環境で本格的な防具を身に付けることは一般的ではありませんでしたが、新王国時代になると盛んに使われるようになりました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hoplite" -msgstr "ホプリテス" - -#. ~ Profession (male Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"古代ギリシャ都市国家群の重装歩兵です。槍と盾を持ち、ファランクス密集陣形を組んで蛮族を蹴散らしました。後にマケドニアでは全長6mにもなるサリッサという大長槍が使われました。密集陣形を組んで戦えるよう高度に訓練されていましたが、方陣の側背面は脆弱で、ひとたび崩壊すれば立て直しが困難な点は他の歩兵と同じでした。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hoplite" -msgstr "ホプリテス" - -#. ~ Profession (female Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"古代ギリシャ都市国家群の重装歩兵です。槍と盾を持ち、ファランクス密集陣形を組んで蛮族を蹴散らしました。後にマケドニアでは全長6mにもなるサリッサという大長槍が使われました。密集陣形を組んで戦えるよう高度に訓練されていましたが、方陣の側背面は脆弱で、ひとたび崩壊すれば立て直しが困難な点は他の歩兵と同じでした。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Legionary" -msgstr "ローマ軍団兵" - -#. ~ Profession (male Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"古代ローマの重装歩兵です。マリウスの軍制改革以後、統一された装備と戦術でローマの敵と戦いました。ホプリテスと同じように大型の盾を持って密集陣形を組む重装歩兵ですが、こちらは投槍で先制攻撃をした後、剣を抜いて接近戦に持ち込みます。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Legionary" -msgstr "ローマ軍団兵" - -#. ~ Profession (female Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"古代ローマの重装歩兵です。マリウスの軍制改革以後、統一された装備と戦術でローマの敵と戦いました。ホプリテスと同じように大型の盾を持って密集陣形を組む重装歩兵ですが、こちらは投槍で先制攻撃をした後、剣を抜いて接近戦に持ち込みます。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Viking" -msgstr "ヴァイキング" - -#. ~ Profession (male Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"中世の北欧、スカンジナビア地域を根城として各地を荒らし回った悪名高い海賊です。しかし彼らの本質は略奪者であると同時に優れた冒険者や交易商人でもありました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Viking" -msgstr "ヴァイキング" - -#. ~ Profession (female Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"中世の北欧、スカンジナビア地域を根城として各地を荒らし回った悪名高い海賊です。しかし彼らの本質は略奪者であると同時に優れた冒険者や交易商人でもありました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Man-at-Arms" -msgstr "重騎兵" - -#. ~ Profession (Man-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"中世ヨーロッパでは、様々な国の出身者が生まれの貴賤に関係なく重騎兵を務めていました。伝統的に騎士の大半は武装した男でしたが、武装した男なら誰でも騎士になれたというわけではありませんでした。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Woman-at-Arms" -msgstr "重騎兵" - -#. ~ Profession (Woman-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"中世ヨーロッパでは、様々な国の出身者が生まれの貴賤に関係なく重騎兵を務めていました。伝統的に騎士の大半は武装した男でしたが、武装した男なら誰でも騎士になれたというわけではありませんでした。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Horse Archer" -msgstr "弓騎兵" - -#. ~ Profession (male Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "歴史に名高いモンゴル帝国の軽騎兵です。馬上での弓の扱いに関して彼らの右に出る者はありません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Horse Archer" -msgstr "弓騎兵" - -#. ~ Profession (female Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "歴史に名高いモンゴル帝国の軽騎兵です。馬上での弓の扱いに関して彼らの右に出る者はありません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Samurai" -msgstr "侍" - -#. ~ Profession (male Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"封建時代の日本の高貴なる戦士です。元々は大弓と馬の扱いに長ける比較的重装の弓騎兵でしたが、時代が下るにしたがって次第に剣技がその象徴になっていきました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Samurai" -msgstr "侍" - -#. ~ Profession (female Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"封建時代の日本の高貴なる戦士です。元々は大弓と馬の扱いに長ける比較的重装の弓騎兵でしたが、時代が下るにしたがって次第に剣技がその象徴になっていきました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Wanderer" -msgstr "放浪者" - -#. ~ Profession (male Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"現代文明社会の複雑さを嫌い、ただ開けた空の下に安らぎと充足を覚えます。しかしどうやら、以前接触した時と比べて、文明社会に何らかの変化があったようです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Wanderer" -msgstr "放浪者" - -#. ~ Profession (female Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"現代文明社会の複雑さを嫌い、ただ開けた空の下に安らぎと充足を覚えます。しかしどうやら、以前接触した時と比べて、文明社会に何らかの変化があったようです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Prehistoric Hunter" -msgstr "先史時代の狩人" - -#. ~ Profession (male Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"およそ見知らぬ恐ろしい世界に投げ出されてしまった、なんとも場違いな先史時代の住人です。狩猟と採集で生きることは確かに困難でしたが、動く死体と戦う必要はありませんでしたし、隣には一族の仲間がいました。さて、一人暮らしを始めましょうか。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Prehistoric Hunter" -msgstr "先史時代の狩人" - -#. ~ Profession (female Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"およそ見知らぬ恐ろしい世界に投げ出されてしまった、なんとも場違いな先史時代の住人です。狩猟と採集で生きることは確かに困難でしたが、動く死体と戦う必要はありませんでしたし、隣には一族の仲間がいました。さて、一人暮らしを始めましょうか。" - #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sugar Boy" @@ -142065,772 +138903,6 @@ msgid "" "You have your whole life ahead of you and it's gonna be sweet!" msgstr "どういうわけか命を与えられた、人型のキャンディーです。長く甘い人生が始まりました!" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Fighter" -msgstr "戦士" - -#. ~ Profession (male Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "武器と防具の扱いと脅威の戦闘術に熟練しています。戦場で鍛えられ、実戦で磨かれた生粋の戦士なのです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Fighter" -msgstr "戦士" - -#. ~ Profession (female Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "武器と防具の扱いと脅威の戦闘術に熟練しています。戦場で鍛えられ、実戦で磨かれた生粋の戦士なのです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Rogue" -msgstr "盗賊" - -#. ~ Profession (male Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "裏路地で磨いた手癖と急所を狙うスキルに熟練しています。ローグであり、トリックスターであり、マスターシーフなのです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Rogue" -msgstr "盗賊" - -#. ~ Profession (female Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "裏路地で磨いた手癖と急所を狙うスキルに熟練しています。ローグであり、トリックスターであり、マスターシーフなのです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Barbarian" -msgstr "蛮人" - -#. ~ Profession (male Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"クロム神の信徒、厳しい北国で生まれたバーバリアンです。強さと恐ろしさ、そして何より荒々しさを象徴するものとして故郷でその名を轟かせていました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Barbarian" -msgstr "蛮人" - -#. ~ Profession (female Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"クロム神の信徒、厳しい北国で生まれたバーバリアンです。強さと恐ろしさ、そして何より荒々しさを象徴するものとして故郷でその名を轟かせていました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Skald" -msgstr "吟遊詩人" - -#. ~ Profession (male Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "北方はハイランドより旅をして来た、神秘的なさすらいの吟遊詩人です。気高きバーバリアン文化の伝承者であり、魂の語り手です。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Skald" -msgstr "吟遊詩人" - -#. ~ Profession (female Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "北方はハイランドより旅をして来た、神秘的なさすらいの吟遊詩人です。気高きバーバリアン文化の伝承者であり、魂の語り手です。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Ranger" -msgstr "レンジャー" - -#. ~ Profession (male Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "森の知識に長け、弓の扱いに熟練したレンジャーです。見たこともないような土地に迷い込みましたが、その叡智を発揮すれば何の問題もありません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Ranger" -msgstr "レンジャー" - -#. ~ Profession (female Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "森の知識に長け、弓の扱いに熟練したレンジャーです。見たこともないような土地に迷い込みましたが、その叡智を発揮すれば何の問題もありません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Monk" -msgstr "修行僧" - -#. ~ Profession (male Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "異国の神に仕える修行僧です。ただ敬虔な信徒であるだけではなく、戦いに役立つ豊富な知識を持ち、無手による戦闘術に熟練しています。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Monk" -msgstr "修行僧" - -#. ~ Profession (female Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "異国の神に仕える修行僧です。ただ敬虔な信徒であるだけではなく、戦いに役立つ豊富な知識を持ち、無手による戦闘術に熟練しています。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Knight" -msgstr "騎士" - -#. ~ Profession (male Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "祖国の守護を誓い剣を捧げた騎士です。子供の頃より戦闘術の訓練を受け、そして何よりも名誉をある戦いをと教育を受けた戦士なのです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Knight" -msgstr "騎士" - -#. ~ Profession (female Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "祖国の守護を誓い剣を捧げた騎士です。子供の頃より戦闘術の訓練を受け、そして何よりも名誉をある戦いをと教育を受けた戦士なのです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Sorcerer" -msgstr "魔術師" - -#. ~ Profession (Sorcerer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "秘められた古代知識の学び手にして担い手、魔術師です。神秘の業たる秘術呪文を(CBMという形で)行使できます。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Sorceress" -msgstr "魔女" - -#. ~ Profession (Sorceress) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "秘められた古代知識の学び手にして担い手、魔女です。神秘の業たる秘術呪文を(CBMという形で)行使できます。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-Hacker" -msgstr "ロボットハッカー" - -#. ~ Profession (male Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "市販のロボットのプログラムを違法に上書きして再利用するのが趣味でしたが、こんな技能が今後の生死に関わるなって考えもしませんでした。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-Hacker" -msgstr "ロボットハッカー" - -#. ~ Profession (female Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "市販のロボットのプログラムを違法に上書きして再利用するのが趣味でしたが、こんな技能が今後の生死に関わるなって考えもしませんでした。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Engineer" -msgstr "ロボット技術者" - -#. ~ Profession (male Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"ロボット製造工場の下っ端技術者でした。経営陣はマンハックに火炎放射器を搭載するなんて「不必要」だの「危険すぎる」だのと文句を言っていましたが、今や導入を止める者は誰もいません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Engineer" -msgstr "ロボット技術者" - -#. ~ Profession (female Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"ロボット製造工場の下っ端技術者でした。経営陣はマンハックに火炎放射器を搭載するなんて「不必要」だの「危険すぎる」だのと文句を言っていましたが、今や導入を止める者は誰もいません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Prodigy" -msgstr "天才ロボット技術者" - -#. ~ Profession (male Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "はんだごてを初めて握った頃からロボットを造り続けてきました。世界の終わりが訪れても止めるつもりはありません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Prodigy" -msgstr "天才ロボット技術者" - -#. ~ Profession (female Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "はんだごてを初めて握った頃からロボットを造り続けてきました。世界の終わりが訪れても止めるつもりはありません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robot Adoptee" -msgstr "ロボットの主人" - -#. ~ Profession (male Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "暴動が起きた時、どこからともなく現れた軍用ロボットに救出されました。もしかしたら、自分は重要人物なのかもしれません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robot Adoptee" -msgstr "ロボットの主人" - -#. ~ Profession (female Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "暴動が起きた時、どこからともなく現れた軍用ロボットに救出されました。もしかしたら、自分は重要人物なのかもしれません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-hunter" -msgstr "狩人(ロボット)" - -#. ~ Profession (male Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "地元のハッカーに依頼して、ロボット猟犬を造ってもらいました。本物の猟犬と同等の性能ですが、愛玩動物として扱うには今一つです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-hunter" -msgstr "狩人(ロボット)" - -#. ~ Profession (female Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "地元のハッカーに依頼して、ロボット猟犬を造ってもらいました。本物の猟犬と同等の性能ですが、愛玩動物として扱うには今一つです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Special Operator" -msgstr "サイボーグ(特殊部隊)" - -#. ~ Profession (male Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"生体部品による身体増強の安全性が認められた際に、極秘の強化兵プログラムに選ばれました。一部の改造を経た段階で既に一流の特殊部隊のような動きが可能でしたが、新たな改造によって、人間や人外相手に様々な格闘戦術をとれるようになりました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Special Operator" -msgstr "サイボーグ(特殊部隊)" - -#. ~ Profession (female Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"生体部品による身体増強の安全性が認められた際に、極秘の強化兵プログラムに選ばれました。一部の改造を経た段階で既に一流の特殊部隊のような動きが可能でしたが、新たな改造によって、人間や人外相手に様々な格闘戦術をとれるようになりました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Seasoned Tourist" -msgstr "熟練の旅行家" - -#. ~ Profession (male Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"冒険への渇望、美食への渇望、そして貯金を消費するために様々な土地を旅行してきました。今回はニューイングランドを味わうためにここに来ましたが、いまやニューイングランドに味わい尽くされないよう祈るしかありません!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Seasoned Tourist" -msgstr "熟練の旅行家" - -#. ~ Profession (female Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"冒険への渇望、美食への渇望、そして貯金を消費するために様々な土地を旅行してきました。今回はニューイングランドを味わうためにここに来ましたが、いまやニューイングランドに味わい尽くされないよう祈るしかありません!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Post-Human Cyborg" -msgstr "サイボーグ(超人類)" - -#. ~ Profession (male Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "裕福な超人間主義者として、未来を創り出すために身体強化技術の最前線に身を置いていました。今やあなたこそが人類進化の歩く標本です。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Post-Human Cyborg" -msgstr "サイボーグ(超人類)" - -#. ~ Profession (female Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "裕福な超人間主義者として、未来を創り出すために身体強化技術の最前線に身を置いていました。今やあなたこそが人類進化の歩く標本です。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Janitor" -msgstr "用務員" - -#. ~ Profession (male Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"チョコレートの包み紙を片付けたり、テーブルの裏の固まったガムを剥ぎ取ることで生計を立てていました。今掃除すべきものはひとつ、死人の脳みそです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Janitor" -msgstr "用務員" - -#. ~ Profession (female Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"チョコレートの包み紙を片付けたり、テーブルの裏の固まったガムを剥ぎ取ることで生計を立てていました。今掃除すべきものはひとつ、死人の脳みそです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Poor Student" -msgstr "貧乏な学生" - -#. ~ Profession (male Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"低所得の家庭に生まれました。学校ではいつもみすぼらしい古着を指差され、貧乏人に無料で与えられる給食を笑われながら食べていました。挙句には使い古しのバックパックが最悪のタイミングでばらばらに壊れましたが、幸運にも今それを笑う者はもういません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Poor Student" -msgstr "貧乏な学生" - -#. ~ Profession (female Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"低所得の家庭に生まれました。学校ではいつもみすぼらしい古着を指差され、貧乏人に無料で与えられる給食を笑われながら食べていました。挙句には使い古しのバックパックが最悪のタイミングでばらばらに壊れましたが、幸運にも今それを笑う者はもういません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Elementary Student" -msgstr "小学生" - -#. ~ Profession (male Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"あなたはまだ子供です。現実世界が悪夢そのものになってしまいました。頼れる大人達は皆死んだかゾンビになってしまいました。これからいったいどうすればいいの?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Elementary Student" -msgstr "小学生" - -#. ~ Profession (female Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"あなたはまだ子供です。現実世界が悪夢そのものになってしまいました。頼れる大人達は皆死んだかゾンビになってしまいました。これからいったいどうすればいいの?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hockey Player" -msgstr "アイスホッケー選手" - -#. ~ Profession (male Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"マイナーリーグのホッケーチームでキーパーをしていました。チームの大半がゾンビ化するまでは。もはやホッケーの道具はゾンビと戦う為にあるのでしょう、当然クロスチェックしても反則は取られないのですから。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hockey Player" -msgstr "アイスホッケー選手" - -#. ~ Profession (female Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"マイナーリーグのホッケーチームでキーパーをしていました。チームの大半がゾンビ化するまでは。もはやホッケーの道具はゾンビと戦う為にあるのでしょう、当然クロスチェックしても反則は取られないのですから。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Baseball Player" -msgstr "野球選手" - -#. ~ Profession (male Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" -"マイナーリーグの野球選手でした。ちょうど打順が回ってきた所で大変動に巻き込まれたので、道具を持って逃げ出せました。何イニング生き残れるでしょうか?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Baseball Player" -msgstr "野球選手" - -#. ~ Profession (female Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" -"マイナーリーグの野球選手でした。ちょうど打順が回ってきた所で大変動に巻き込まれたので、道具を持って逃げ出せました。何イニング生き残れるでしょうか?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Football Player" -msgstr "フットボール選手" - -#. ~ Profession (male Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"地元アメフトチームのスタープレイヤーでした。そして今でも、ファンだった奴らが群がろうと距離を詰めてくるのです。アメフトの嵩張る装備を身に着けています。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Football Player" -msgstr "フットボール選手" - -#. ~ Profession (female Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"地元アメフトチームのスタープレイヤーでした。そして今でも、ファンだった奴らが群がろうと距離を詰めてくるのです。アメフトの嵩張る装備を身に着けています。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Preppy Student" -msgstr "私立高校生" - -#. ~ Profession (male Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"常に忙しかった両親は社会的に重要な人物でした。子供にありとあらゆる優位性を授け「成功」へと押しやる為に、常に躍起になっていました。それにどんな意味があったのかは今や分かりません。本当に必要だったものは、平凡な幼児期か、親らしい愛か、とにかくどちらか片方が欠乏していた事は確かです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Preppy Student" -msgstr "私立高校生" - -#. ~ Profession (female Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"常に忙しかった両親は社会的に重要な人物でした。子供にありとあらゆる優位性を授け「成功」へと押しやる為に、常に躍起になっていました。それにどんな意味があったのかは今や分かりません。本当に必要だったものは、平凡な幼児期か、親らしい愛か、とにかくどちらか片方が欠乏していた事は確かです。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Awakened" -msgstr "目覚めた人" - -#. ~ Profession (male Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "夜中に騒音で目覚めました。懐中電灯だけ持って外を調べに行き、大変動に出くわしました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Awakened" -msgstr "目覚めた人" - -#. ~ Profession (female Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "夜中に騒音で目覚めました。懐中電灯だけ持って外を調べに行き、大変動に出くわしました。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Cyclist" -msgstr "サイボーグ(自転車乗り)" - -#. ~ Profession (male Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" -"サイバーオリンピックのサイクリング種目に出場するためのトレーニングと補強が、大変動から逃れるのに役立ちました。果たして永遠に走り続けられるでしょうか?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Cyclist" -msgstr "サイボーグ(自転車乗り)" - -#. ~ Profession (female Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" -"サイバーオリンピックのサイクリング種目に出場するためのトレーニングと補強が、大変動から逃れるのに役立ちました。果たして永遠に走り続けられるでしょうか?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Welder" -msgstr "溶接工" - -#. ~ Profession (male Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "大変動が起こる前は海外企業の溶接工として働いていました。ことが起こったのはちょうど帰宅の最中でした。手元には最低限の工具が揃っています。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Welder" -msgstr "溶接工" - -#. ~ Profession (female Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "大変動が起こる前は海外企業の溶接工として働いていました。ことが起こったのはちょうど帰宅の最中でした。手元には最低限の工具が揃っています。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Primitive Survivalist" -msgstr "原始生活者" - -#. ~ Profession (male Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" -"運命の日がいつかやってくると予測して、文明の利器を使わず自分自身のスキルを磨き、森の恵みを受けて過ごしながらその日に備えていました。先祖たちが何の科学技術もなしに生き伸びたのだから、できないはずがありません。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Primitive Survivalist" -msgstr "原始生活者" - -#. ~ Profession (female Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" -"運命の日がいつかやってくると予測して、文明の利器を使わず自分自身のスキルを磨き、森の恵みを受けて過ごしながらその日に備えていました。先祖たちが何の科学技術もなしに生き伸びたのだから、できないはずがありません。" - #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" @@ -142996,7 +139068,7 @@ msgid "LIGHTING" msgstr "光源" #. ~ Crafting recipes subcategory of 'ARMOR' category -#: lang/json/recipe_category_from_json.py src/game_inventory.cpp +#: lang/json/recipe_category_from_json.py msgid "STORAGE" msgstr "収納" @@ -147544,9 +143616,9 @@ msgstr "意固地、無知、それとも単なる不運が原因か。逃げ遅 #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. -#. ~ Starting location for scenario 'Robots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "In Town" @@ -147676,6 +143748,34 @@ msgid "" "didn't get proper medical care, and now the wound has started turning green." msgstr "パニックと混沌の中を避難している時に、何かに噛まれてしまいました!適切な治療が受けられないまま、傷口が緑色に変色し始めています。" +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -148409,19 +144509,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "軍事基地内倉庫" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "イカれたパーティー" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "イカれたパーティー" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -148432,7 +144532,7 @@ msgid "" msgstr "" "プライベートな別荘だったにもかかわらず野蛮なパーティーに警察が乗り込んで来た時は、こんなに酷い事態になるとは思ってもみませんでした。警官と喧嘩を始めたゲストを止めようとしたときにようやく、ただの喧嘩ではなく飢えによる暴走だと気づきました。" -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -148443,7 +144543,7 @@ msgid "" msgstr "" "プライベートな別荘だったにもかかわらず野蛮なパーティーに警察が乗り込んで来た時は、こんなに酷い事態になるとは思ってもみませんでした。警官と喧嘩を始めたゲストを止めようとしたときにようやく、ただの喧嘩ではなく飢えによる暴走だと気づきました。" -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" @@ -148784,118 +144884,6 @@ msgctxt "start_name" msgid "Candy Shop" msgstr "菓子店" -#. ~ Name for scenario 'Robots' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Robots" -msgstr "ロボット" - -#. ~ Name for scenario 'Robots' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Robots" -msgstr "ロボット" - -#. ~ Description for scenario 'Robots' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"暴動と混乱の中、ロボットが守ってくれることを期待してロボット派遣センターに隠れましたが、ロボットはゾンビよりずっと危険だということが実証されそうです。" - -#. ~ Description for scenario 'Robots' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"暴動と混乱の中、ロボットが守ってくれることを期待してロボット派遣センターに隠れましたが、ロボットはゾンビよりずっと危険だということが実証されそうです。" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Challenge-FEMA Death Camp" -msgstr "挑戦 - 死のFEMAキャンプ" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Challenge-FEMA Death Camp" -msgstr "挑戦 - 死のFEMAキャンプ" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"あなたは他の法執行機関同様、FEMAキャンプ内の治安維持のために招集された軍人です。全てが一瞬のうちに起こりました...負傷、感染症、辺りを取り囲む火...こちらに向かってくる奴ら..." - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a female -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"あなたは他の法執行機関同様、FEMAキャンプ内の治安維持のために招集された軍人です。全てが一瞬のうちに起こりました...負傷、感染症、辺りを取り囲む火...こちらに向かってくる奴ら..." - -#. ~ Starting location for scenario 'Challenge-FEMA Death Camp'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Fema Camp" -msgstr "FEMAキャンプ" - -#. ~ Name for scenario 'Mansion Holdout' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Mansion Holdout" -msgstr "籠城" - -#. ~ Name for scenario 'Mansion Holdout' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Mansion Holdout" -msgstr "籠城" - -#. ~ Description for scenario 'Mansion Holdout' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"世界の終わりが訪れた時、あなたは長年住み慣れた屋敷の中が一番安全だと考えました。先程から死者が玄関の扉をノックしています。そろそろ出発するべきかもしれません。" - -#. ~ Description for scenario 'Mansion Holdout' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"世界の終わりが訪れた時、あなたは長年住み慣れた屋敷の中が一番安全だと考えました。先程から死者が玄関の扉をノックしています。そろそろ出発するべきかもしれません。" - -#. ~ Starting location for scenario 'Mansion Holdout'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Mansion" -msgstr "大邸宅" - #. ~ display string for skill display type 'display_melee' #: lang/json/skill_display_type_from_json.py msgid "Melee skills" @@ -149035,9 +145023,7 @@ msgstr "料理" #: lang/json/skill_from_json.py msgid "" "Your skill in combining food ingredients to make other, tastier food items." -" It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." -msgstr "食品の調理及び化学薬品の調合をする為のスキルです。高レベルになると、より美味しい料理や複雑な化学薬品を作れます。" +msgstr "" #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -149265,6 +145251,17 @@ msgid "" msgstr "" "シンプルなピンタンブラー錠から複雑なディスクタンブラー錠まで、物理的な鍵を必要とするあらゆる種類の錠前をピッキングするスキルです。レベルが高いほど解錠確率が増加し、作業時間が短縮されます。" +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" + #: lang/json/skill_from_json.py msgid "weapon" msgstr "武器" @@ -150872,6 +146869,12 @@ msgid "" "Don't. This thorazine seriously clouds your mind. You need to stay sharp." msgstr "やめろ。ソラジンは心を曇らせる。心を鋭く保つんだ。" +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde" +" of undead!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "ピンクタブレット!大好きなんだ!" @@ -150936,6 +146939,14 @@ msgstr "ごめん。悪いけどそれはできないよ。" msgid "Wish I could, ." msgstr "それができたらいいんだけどね、。" +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "止めておこう、そんな気分じゃない。" @@ -150968,6 +146979,10 @@ msgstr "残念ながら、役には立てないな。" msgid "Not exactly the settlin' type." msgstr "一つの場所に腰を落ち着けるタイプじゃないんだ。" +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "" + #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -151281,6 +147296,10 @@ msgid "" " ending, just for a while?" msgstr "雑談中にビールを空ければ...しばらくの間は世界の崩壊について考えずにいられそうじゃないか?" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "" + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "ああ、もちろん、。そろそろ一息入れたかったんだ。調子はどう?" @@ -151821,6 +147840,14 @@ msgstr "おい、ここだ!" msgid "Hold up a second, will ya?" msgstr "ちょっと待って、聞こえてる?" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "私は一匹狼だ。" @@ -154264,6 +150291,117 @@ msgstr "愛しい我が子" msgid "survivor" msgstr "生存者" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr "は遠距離武器を使います。" @@ -161047,6 +157185,42 @@ msgid "" msgstr "" "私はベーカー将軍だ。本日、最高司令官から新たな指令を含む最高機密文書を受け取った。指令にはICBMの目標地点とされる座標が書かれていた。私の部下が座標を解読すると、国内のある地点を指していることが判明した。司令官に再確認を要請したが、しばらくすると同じ座標を受け取ったので、この命令が当初考えていた妙な誤りではないと分かった。政府の上層部が何を考えているのか知らないが、私は自国の罪なき人々を爆撃しようとは思わない。開戦目前ということもあり、命令違反者は間違いなく処刑されるだろう。私が追いつめられるのも時間の問題だ。つまるところ、私は既に死んでいる。誰かがこれを読んでくれるだろうか。妻のジェーンとマイケルJr.に愛している、そしてすまないと伝えてほしい。マイケル・ベーカー将軍" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "おい、脳たりんども!" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "おい、馬鹿ども!" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "おい、ばかども!" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "おい、動く死人ども!" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "おい、ゾンビども!" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "こっちに来い!" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "これは罠だ!" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "ゾンビじゃない奴は近づくなよ!" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "ゾンビじゃない奴は早くここから逃げろ!" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "「我々が正しかった。政府はやり遂げた」" @@ -161837,8 +158011,9 @@ msgstr "「えいえんにいきられるわたしのきのこあかちゃんう #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" -msgstr "「いつかは落ち着いて暮らしたい。素敵な広い果樹園、友達や将来家族になる人と過ごす日々、そして周囲を見張るゾンビの奴隷兵たち」" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" +msgstr "「いつかは落ち着いて暮らしたい。素敵な広い果樹園、友達や将来家族になる人と過ごす日々、そして安全を保障する立派な要塞。」" #: lang/json/snippet_from_json.py msgid "" @@ -162376,7 +158551,7 @@ msgid "" "powered weapons) have a range, which is added on top of the ammo's range " "when firing." msgstr "" -"銃を拾いました。銃は強力な武器ですが、弾薬を必要とします。銃には様々な特性があります。弾薬により威力を調整できます。分散率は命中精度に影響します。セミオートマチックと連射に切り替え可能な銃もあります。弓などは筋力が射程距離に加算されます。" +"銃を拾いました!銃は非常に強力な武器ですが、弾薬を必要とします。銃には様々な特性があります。大抵の銃は、使う弾薬によって与えられるダメージが変動します。命中精度の算出に用いられる分散の値も、弾薬によって決まります。銃の中にはセミオートのものや、バースト射撃が可能なものがあります。一部の小型遠距離武器(主に弓などの筋力を必要とするもの)には射程距離が設定されており、この値に弾薬の射程の値を足したものが実際の射程距離です。" #: lang/json/snippet_from_json.py msgid "" @@ -162387,7 +158562,7 @@ msgid "" "value will reduce this effect. The Range is the maximum range the ammo can " "achieve, and the dispersion affects its chance to hit." msgstr "" -"銃の弾薬を拾いました。弾薬には様々な性質があります。威力の値は普通に命中した時に与える最大ダメージを示し、クリティカルやヘッドショット時はさらにダメージを与えます。装甲が高く銃のダメージを減少させるモンスターやNPCもいますが、貫通の値が高いと装甲を貫けます。射程距離は弾薬の最大射程を表し、分散率は命中精度に影響します。" +"銃の弾薬を拾いました。弾薬には様々な性質があります。威力の値は普通に命中した時に与える最大ダメージを示し、クリティカルやヘッドショット時はさらにダメージを与えます。装甲が高く銃のダメージを減少させるモンスターやNPCもいますが、弾薬に設定されている貫通の値が高いと装甲の影響を減らせます。射程距離は弾薬の最大射程を表し、分散率は命中精度に影響します。" #: lang/json/snippet_from_json.py msgid "" @@ -162575,6 +158750,61 @@ msgstr "「私はこんな世界など望んでいない。CDまで略奪され msgid "Dark days are ahead, but is that all?" msgstr "「この先には暗黒の未来が待っている。しかし、果たしてそれだけだろうか?」" +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 1: I had a dream and I can vaguely remember seeing a strange " +"truck that had overly round edges, it tooted its horn but instead I heard " +"people screaming, and when I blinked suddenly the truck wasn't just rounded," +" but made of people screaming forever inside a viscous blob.\"" +msgstr "" +"「夢日記1: " +"夢を見たことはぼんやりと覚えている。丸みを帯びたトラックがクラクションを鳴らすと、人々の叫び声が聞こえた。まばたきをすると、突然トラックの丸みが取れて、素材がネバネバした物体の中で叫び続ける人々に変化した。」" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 2: In last night's dream I was driving a rusty and dusty humvee," +" with my trusty companion using a massive pneumatic weapon to shoot rebar " +"pipes into faceless enemies chasing us. My heart is still pumping, why does" +" it feel like a memory instead of a dream?\"" +msgstr "" +"「夢日記2: " +"昨晩の夢の中では、錆びた埃っぽい軍用車両を運転していた。信頼できる仲間と共に、巨大な空圧兵器を使い、追いかけてくる顔の見えない敵に対して鉄筋を撃ち込んでいた。今も心臓が早鐘を打っている。夢ではなく実際の記憶のように感じるのは何故だ?」" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 3: Another dream. This time I dropped a diamond on a sea of " +"charcoal dust, and the diamond begun to shine and make the dust glitter " +"until a shape of a car emerged from the dust made entirely of thick, " +"perfectly angular diamond. A beautiful shape appeared on it, and in a flash" +" of light I was pierced by a glittering lance.\"" +msgstr "" +"「夢日記3: " +"また別の夢だ。カーボン粉末の海にダイヤモンドを落とした。ダイヤモンドは輝き始め、粉の中から厚みのあるダイヤモンド製の車が浮かんできた。その車の上に何か美しい尖った物体が現れ、閃光が走ったかと思うと、そのきらびやかな槍に突き刺された。」" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 4: These dreams get weirder. My companion of mine was driving " +"the RV, and I opened the back of the RV and found there was no roof but a " +"whole tray of gargantuan flowers made of solar panels arching toward the sun" +" greedily, light flowing from them into the RV. I stepped back and lost my " +"footing, seeing a strange portal on the side before I fell into a limitless " +"darkness.\"" +msgstr "" +"「夢日記4: " +"一段と奇妙な夢だ。同行者が運転するキャンピングカーに乗っていた。後部へのドアを開けてみると、屋根がなく、ソーラーパネルで作られた車内いっぱいまで広がる巨大な花が太陽を精一杯その身に受けており、その花から車へと光が流れ込んでいた。」" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 5: My most recent dream was better so here it goes. I was " +"walking in a meadow when a strange stone with a perfect spiral on it fell in" +" front of me. I picked it up and blew on it, and a tornado roared from the " +"stone. In its wake, a car appeared, wickedly shaped and the sound of " +"tornadoes coming from its exhaust- and I rode the wind, hurling thunderbolts" +" at any who got in my way.\"" +msgstr "" +"「夢日記5: " +"直近の夢が良かったので紹介する。草原を歩いていると、歪みのない螺旋模様が描かれた奇妙な石が目の前に落ちてきた。拾って埃を吹き払うと、石の上部には竜巻が轟いていた。その後、邪悪な形の車が現れた。排気音は竜巻のようだった。私は風に乗って、邪魔者に雷を落とした。」" + #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "ケヴィンがリアリズムを追求するあまりゲームを破壊か?衝撃の事実が明らかに" @@ -163799,6 +160029,53 @@ msgstr "「ニューイングランドにいる「抵抗組織」が少なけれ msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "「久しぶり、だよね?また会えてよかった。」" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you" +" think they eat cat food?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big" +" lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind" +" of big lizard down there. Probably not a good idea to check." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special" @@ -163807,6 +160084,14 @@ msgid "" msgstr "" "来訪者に関する研究は順調に進んでいる。ラプトルのDNAは、医学的なブレイクスルーに繋がる可能性のある新種のタンパク質鎖を持っており、特に興味深い。" +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -163846,8 +160131,10 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "「どうしてここでクソトカゲが這いまわってるんだ?」" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" -msgstr "「親愛なる鱗の兄弟たちよ!今夜は無毛のサルどもを大いに味わおう」" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"where's some .700 t-rex medicine when you need it?\"" @@ -163859,27 +160146,34 @@ msgid "" "butterfly?\"" msgstr "「道に迷っている間に、バタフライ効果か何かで大変なことが起こったのか?」" -#: lang/json/snippet_from_json.py -msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" -msgstr "「ガン。ソード。ガンソード。銃剣を取り付けるのはいい考えだ」" - #: lang/json/snippet_from_json.py msgid "" -"\"Not sure if wielding this thing makes me feel like a bodybuilder or a " -"theoretical physicist. Both?\"" -msgstr "「これを振り回してると、自分がボディービルダーか物理学者になったような変な気分だ。いや両方か?」" - -#: lang/json/snippet_from_json.py -msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" -msgstr "「これは祖父の時代の.50口径デザートイーグルとは違う!」" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." +msgstr "" #: lang/json/snippet_from_json.py -msgid "\"Nice pistol! Which trigger fires the flamer?\"" -msgstr "「良いピストルだ!どこを動かして発砲するんだろう?」" +msgid "" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" +msgstr "" #: lang/json/snippet_from_json.py -msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" -msgstr "「一体なんだってこのハンドガンの上にはクロスボウがくっ付いてるんだ」" +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -164105,12 +160399,6 @@ msgstr "若造" msgid "chief" msgstr "ボス" -#: lang/json/snippet_from_json.py -msgid "" -"\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " -"repeat.\"" -msgstr "「エルフを撃つ。奴らの骨でもっと矢を作る。以下繰り返し」" - #: lang/json/snippet_from_json.py msgid "" "A flyer for some kind of candy. It shows a picture of a gleaming human made" @@ -164119,87 +160407,6 @@ msgid "" msgstr "" "キャンディーか何かのチラシです。恐ろしげにあなたを見つめる、滑らかな飴で作られた人間が描かれています。「シュガーキン(砂糖の血族)は史上初の等身大ヒューマンキャンディーです!あなたは真のモンスターですか?これを食べ尽くすことが出来ますか?」" -#: lang/json/snippet_from_json.py -msgid "" -"\"Tank drone, meet the real deal. See how you handle 120 millimeters of " -"HELL YEAH!\"" -msgstr "「ホンモノの、無人戦車に出くわした。120mmの砲弾を何とかする方法を誰か教えてくれよクソが!」" - -#: lang/json/snippet_from_json.py -msgid "\"big fucking gun, earplugs are good for your brain\"" -msgstr "「クソデカい銃を使うなら、脳みそを守るためにも耳栓を用意しておけ」" - -#: lang/json/snippet_from_json.py -msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" -msgstr "「こっちは戦車砲を載せた自転車を持ってるんだ。話し合おうったって無駄さ」" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Next person to call this infantry fighting vehicle a 'tank' is walking " -"home.\"" -msgstr "「次にこの歩兵戦闘車のことを『戦車』と言った奴は歩いて帰ってもらうぞ」" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Found what used to be an armored platoon. Most tanks have hatches up top," -" not in the back like the new ones they're using.\"" -msgstr "「武装小隊の編成に必要なものが見つかった。大抵の戦車はハッチが頭上に付いているが、この新しい奴はハッチが背面にある」" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Agh, to See the Spiral in such a Distorted Shape! Manipulated for its " -"Vortex motion! Its Perpetual Grace! Its beauty Tarnished…\"" -msgstr "「ああ、このらせん状に歪んだ形を見ろよ!これが過流の力!永遠の恵みだ!美しい色合い...」" - -#: lang/json/snippet_from_json.py -msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "「友達は死んでしまったが、私がブロブタレットにしてあげた」" - -#: lang/json/snippet_from_json.py -msgid "" -"\"I have this laser cannon turret on my shopping cart. I push it around and" -" everything dies. I think I'm gonna toss it in the lake-- this just isn't " -"fair anymore.\"" -msgstr "" -"「ショッピングカートにレーザー砲タレットを搭載した。これを押しているだけで誰もが死ぬ。この車両は湖に沈めようと思う--" -"なんだかフェアじゃない気がするから」" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Day 40. Controls broken-- car's magic reactor makes it goes inexorably " -"forward. Giant rollers on front demolish forest. Maine, here I come.\"" -msgstr "" -"「40日目。制御装置が壊れた車--" -"これに魔法の反応炉を取り付けると問題なく動くようになった。前面の巨大ローラーが森の木々をなぎ倒していく。待ってろよ、メーン州」" - -#: lang/json/snippet_from_json.py -msgid "\"my car is a diamond in the rough… literally\"" -msgstr "「私の車はダイヤモンドの原石だ...文字通りの意味で」" - -#: lang/json/snippet_from_json.py -msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" -msgstr "「M249タレットが挨拶した。タレットって生きてるの?もう駄目だ、誰か会話して!」" - -#: lang/json/snippet_from_json.py -msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" -msgstr "「タクシーに色々なものを山ほど搭載していたら、ついに火を噴いた。やっちまった」" - -#: lang/json/snippet_from_json.py -msgid "" -"\"If I put one cargo dimension into another cargo dimension, does the " -"universe end?\"" -msgstr "「四次元カーゴの中に四次元カーゴを入れたら、宇宙が滅亡するのか?」" - -#: lang/json/snippet_from_json.py -msgid "\"one day, i will be part of car, too\"" -msgstr "「いつか、私も車両の一部品になるのだろうか」" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Putta little bitta dynamite and halfa landmine in an old soda can… WHAM!" -" You goin' somewhere.\"" -msgstr "「ダイナマイトをちょいと、あと地雷を半分、そんでもって飲み終わったソーダの缶...ドカン!どっかへ飛んでっちまうよ」" - #: lang/json/speech_from_json.py msgid "\"Hello?\"" msgstr "「やぁ?」" @@ -165683,17 +161890,57 @@ msgid "\"Our food contains up to 95% real food.\"" msgstr "「お出しする食べ物の95%が本物です」" #: lang/json/speech_from_json.py -msgid "\"FoodPlace: It's the Calories.\"" -msgstr "「フードプレイス、カロリーの殿堂」" +msgid "\"At FoodPlace your excellent value brings nourishment and delight.\"" +msgstr "「フードプレイスでは、あなたの優れた評価が栄養と喜びをもたらします。」" + +#: lang/json/speech_from_json.py +msgid "\"At FoodPlace we have a host of solutions for your food needs!\"" +msgstr "「フードプレイスでは、あなたの食のニーズに合わせたソリューションをご提供しています!」" + +#: lang/json/speech_from_json.py +msgid "\"♪Eat at FoodPlace. ♫It is a place with food.♪\"" +msgstr "「♪フードプレイスで食べよう♫食べ物がある場所♪」" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is a popular food chain selling food items. What else is there " +"to know?\"" +msgstr "「フードプレイスは食品を販売する人気食料品チェーン店です。他に説明は要りませんね?」" #: lang/json/speech_from_json.py msgid "\"You need food, don't you? Then come with me to FOODPLACE!!\"" msgstr "「なにか食べたい?それなら一緒にフードプレイスへ行こうよ!!」" +#: lang/json/speech_from_json.py +msgid "\"You need food, don't you? It's time for FoodPlace!\"" +msgstr "「食べ物が必要?それなら、フードプレイスの時間だ!」" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: It's the Calories.\"" +msgstr "「フードプレイス、カロリーの殿堂」" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Don’t get caught in the web of unsafe diet.\"" +msgstr "「フードプレイス: 危険なダイエットの罠にかかってはいけません。」" + #: lang/json/speech_from_json.py msgid "\"FoodPlace: Edible food is OUR guarantee!\"" msgstr "「フードプレイス、本物の味!」" +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: We bring food to life!\"" +msgstr "「フードプレイス: 食に命を吹き込む!」" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Edible food is one of our main goals!\"" +msgstr "「フードプレイス: 食べられる食品こそが私たちの大きな目標!」" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is the only way to obtain healthy and strong lifecycle " +"choices!!\"" +msgstr "「フードプレイスは、健康で強力な人生を手に入れる唯一の方法です!」" + #: lang/json/speech_from_json.py msgid "Wanna play with me?" msgstr "わたしと一緒に遊ばない?" @@ -166822,154 +163069,6 @@ msgstr "[耳に残る唸るような機械音]" msgid "a semi-musical chirping that echos across the landscape." msgstr "[周囲に響き渡るまるで音楽のようにも聞こえるさえずり]" -#: lang/json/speech_from_json.py -msgid "\"bzzzzzz.\"" -msgstr "「ブブブブブ」" - -#: lang/json/speech_from_json.py -msgid "\"Beep.\"" -msgstr "「ビーッ」" - -#: lang/json/speech_from_json.py -msgid "\"Beep?\"" -msgstr "「ビーッ?」" - -#: lang/json/speech_from_json.py -msgid "\"Beep!\"" -msgstr "「ビーッ!」" - -#: lang/json/speech_from_json.py -msgid "\"Beeeeep beep.\"" -msgstr "「ビィーッビッ」" - -#: lang/json/speech_from_json.py -msgid "\"Bebebeeeep.\"" -msgstr "「ビビビィーッ」" - -#: lang/json/speech_from_json.py -msgid "\"Beep boop beep?\"" -msgstr "「ビーブービー?」" - -#: lang/json/speech_from_json.py -msgid "\"Beedoo-Beep.\"" -msgstr "「ビーブー、ビー」" - -#: lang/json/speech_from_json.py -msgid "\"Beep Beep. Whirr.\"" -msgstr "「ビーッビーッ、ウィーン」" - -#: lang/json/speech_from_json.py -msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "「ブルルル、ウィーン」" - -#: lang/json/speech_from_json.py -msgid "\"Whirrrrr-click click.\"" -msgstr "「ウィーン、カチカチッ」" - -#: lang/json/speech_from_json.py -msgid "\"Boodoobeep beep beep.\"" -msgstr "「ブーブービーッ、ビーッビーッ」" - -#: lang/json/speech_from_json.py -msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "「ブロロロロ、バチッ、ブルルルル」" - -#: lang/json/speech_from_json.py -msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "「ウィーン、ブブブ、ブブブ」" - -#: lang/json/speech_from_json.py -msgid "\"Brrm Bum Brrm?\"" -msgstr "「ゴゥンゴゥンゴゥン?」" - -#: lang/json/speech_from_json.py -msgid "\"Pwweeee Krsht.\"" -msgstr "「プシュゥーカチャッ」" - -#: lang/json/speech_from_json.py -msgid "\"Fshkt fshkt. Booop.\"" -msgstr "「カシャッカシャッ、ブゥー」" - -#: lang/json/speech_from_json.py -msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "「ブン、ブン、カタタタタタ」" - -#: lang/json/speech_from_json.py -msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "「ピィーーウゥーー、ビビーッ」" - -#: lang/json/speech_from_json.py -msgid "\"Grrrnd clang whirrrr.\"" -msgstr "「ゴゴゴゴッガン、ウィーン」" - -#: lang/json/speech_from_json.py -msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "「ゴゴゴゴゴ、ゴゴゴ」" - -#: lang/json/speech_from_json.py -msgid "\"Cla-clang cla-clang!\"" -msgstr "「カカッコン、カカッコン!」" - -#: lang/json/speech_from_json.py -msgid "\"Klang!\"" -msgstr "「カシャン!」" - -#: lang/json/speech_from_json.py -msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "「ブゥー、ブゥゥー!」" - -#: lang/json/speech_from_json.py -msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "「ビビーッ、ブゥゥゥン」" - -#: lang/json/speech_from_json.py -msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "「ポゥーン、カカ、カカカ」" - -#: lang/json/speech_from_json.py -msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "「カチッ、カチカチッ、ブゥゥン」" - -#: lang/json/speech_from_json.py -msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "「プシュゥーー、ガッ」" - -#: lang/json/speech_from_json.py -msgid "a high pitched alarm." -msgstr "[甲高いアラーム音]" - -#: lang/json/speech_from_json.py -msgid "a blaring siren." -msgstr "[大きなサイレン音]" - -#: lang/json/speech_from_json.py -msgid "\"CHUG chug chug.\"" -msgstr "「シュッ、シュッ、シュッ」" - -#: lang/json/speech_from_json.py -msgid "\"Creak! Clang clang.\"" -msgstr "「ガチッ!ゴゥンゴゥン」" - -#: lang/json/speech_from_json.py -msgid "\"Khr Khr Khr.\"" -msgstr "「チッ、チッ、チッ」" - -#: lang/json/speech_from_json.py -msgid "a mechanical groaning." -msgstr "[機械の駆動音]" - -#: lang/json/speech_from_json.py -msgid "grinding gears." -msgstr "[物を削るような音]" - -#: lang/json/speech_from_json.py -msgid "tortured machinery." -msgstr "[痛々しい機械音]" - -#: lang/json/speech_from_json.py -msgid "\"SQUEE!\"" -msgstr "「ピキー!」" - #: lang/json/start_location_from_json.py msgid "Shelter" msgstr "シェルター" @@ -167182,45 +163281,17 @@ msgstr "湖畔の隠れ家" msgid "Candy Shop" msgstr "菓子店" -#: lang/json/start_location_from_json.py -msgid "Robot Dispatch Center" -msgstr "ロボット派遣センター" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp (entrance)" -msgstr "FEMAキャンプ(入口)" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp" -msgstr "FEMAキャンプ" - -#: lang/json/start_location_from_json.py -msgid "Mansion Entrance" -msgstr "大邸宅(玄関)" - -#: lang/json/start_location_from_json.py src/gamemode_defense.cpp -msgid "Mansion" -msgstr "大邸宅" - -#: lang/json/start_location_from_json.py -msgid "Electronics Store" -msgstr "電器店" - -#: lang/json/start_location_from_json.py -msgid "Clothing Store" -msgstr "衣料品店" - #: lang/json/talk_topic_from_json.py -msgid "You there. Quiet down. Can you hear it? The song?" -msgstr "そこのお前。静かに。この歌が聞こえるか?" +msgid "Acolyte." +msgstr "修行者よ。" #: lang/json/talk_topic_from_json.py msgid "You're back. Have you come to listen to the song?" msgstr "戻ってきたな。歌を聞きに来たのか?" #: lang/json/talk_topic_from_json.py -msgid "Acolyte." -msgstr "修行者よ。" +msgid "You there. Quiet down. Can you hear it? The song?" +msgstr "そこのお前。静かに。この歌が聞こえるか?" #: lang/json/talk_topic_from_json.py msgid "What? What do you mean? What song?" @@ -167373,37 +163444,29 @@ msgid "Yeah, alright." msgstr "ああ、そりゃいいや。" #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." -msgstr "もっと知りたいのなら、役に立つかもしれない骨について心当たりがある。" - -#: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." -msgstr "必要があれば、もっと歌を用意しよう。" +msgid "There are bones to etch, songs to sing. Wish to join me?" +msgstr "彫る骨と、奏でる歌がある。我らに加わるか?" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." -msgstr "お前が望むなら、歌うこともできるだろう。" +msgid "Do you wish to take on more songs?" +msgstr "これ以上の歌を引き受けられると思っているのか?" #: lang/json/talk_topic_from_json.py msgid "Do you believe you can take on the burden of additional bones?" msgstr "これ以上の骨をお前に負担させられると思っているのか?" #: lang/json/talk_topic_from_json.py -msgid "Do you wish to take on more songs?" -msgstr "これ以上の歌を引き受けられると思っているのか?" - -#: lang/json/talk_topic_from_json.py -msgid "There are bones to etch, songs to sing. Wish to join me?" -msgstr "彫る骨と、奏でる歌がある。我らに加わるか?" +msgid "A song may yet be sung by you, should you wish to." +msgstr "お前が望むなら、歌うこともできるだろう。" #: lang/json/talk_topic_from_json.py -msgid "That is all for now." -msgstr "今は話すことはない。" +msgid "There is an additional song you could take on, if you'd like." +msgstr "必要があれば、もっと歌を用意しよう。" #: lang/json/talk_topic_from_json.py -msgid "An acolyte should not take on too many songs at once." -msgstr "修行者は一度に多くの歌を歌うべきではない。" +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." +msgstr "もっと知りたいのなら、役に立つかもしれない骨について心当たりがある。" #: lang/json/talk_topic_from_json.py msgid "" @@ -167411,6 +163474,14 @@ msgid "" " the bones of this world." msgstr "歌は...今のところ聞こえないな。恐らく時間が経てば、この世界の骨にもっと多くの記録が刻まれることだろう。" +#: lang/json/talk_topic_from_json.py +msgid "An acolyte should not take on too many songs at once." +msgstr "修行者は一度に多くの歌を歌うべきではない。" + +#: lang/json/talk_topic_from_json.py +msgid "That is all for now." +msgstr "今は話すことはない。" + #: lang/json/talk_topic_from_json.py msgid "I see." msgstr "なるほどね。" @@ -167482,16 +163553,16 @@ msgstr "悟りへの道はお前自身で歩め。私の助けはお前の歩み msgid "I see. Very well then." msgstr "なるほど。よく分かったよ。" -#: lang/json/talk_topic_from_json.py -msgid "Only those who bear my mark will prove themselves worthy of my skills." -msgstr "私の力を示せるのは、私が印を与えた者だけだ。" - #: lang/json/talk_topic_from_json.py msgid "" "You bear my mark, meaning I believe you have potential to learn to truly " "listen to the Song. Yes, I will lend my skills to you, for now." msgstr "私はお前に印を与えた。つまり、お前が歌を聞く方法を学び取れるかもしれないという事だ。そうだな、私の力を貸し与えよう。" +#: lang/json/talk_topic_from_json.py +msgid "Only those who bear my mark will prove themselves worthy of my skills." +msgstr "私の力を示せるのは、私が印を与えた者だけだ。" + #: lang/json/talk_topic_from_json.py msgid "I am glad to hear it. Let's go then." msgstr "そう言ってもらえると嬉しいよ。さあ行こう。" @@ -167732,18 +163803,18 @@ msgstr "" " それと、私たちは友達だから、何の断りも入れずに私の所持品を持っていっても大丈夫だ。\n" " 他には、そうだな、空腹だったり喉が乾いた時に食べ物を所持していたら、美味しくいただくよ。CBMの充電が切れて、ちょうどいい燃料を所持している場合も同じだ。だから、渡すものは事前に確認した方がいいかもな?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I can perform first aid. You give me some bandages or a bottle of " -"antiseptic, I'll treat your wounds as best I can." -msgstr "私は医者だよ!包帯や消毒薬を渡しておいてくれ。もし君がケガをしたらできる限り処置するよ。" - #: lang/json/talk_topic_from_json.py msgid "" "Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " "or a bottle of antiseptic, I'm get you fixed when I see you hurting." msgstr "私は医者だよ!外傷の治療法は知っているさ。包帯や消毒薬を渡しておいてくれ。もし君がケガをしたら処置してあげよう。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I can perform first aid. You give me some bandages or a bottle of " +"antiseptic, I'll treat your wounds as best I can." +msgstr "私は医者だよ!包帯や消毒薬を渡しておいてくれ。もし君がケガをしたらできる限り処置するよ。" + #: lang/json/talk_topic_from_json.py msgid "" " But remember, I like you, but I like me more - so I'm going to use those " @@ -167957,16 +164028,16 @@ msgstr "説明してくれてありがとう。他にも知りたいことがあ msgid "Thanks. I have some things for you to do." msgstr "ありがとう。他の話をしよう。" +#: lang/json/talk_topic_from_json.py +msgid "Hi there, ." +msgstr "やあ、。" + #: lang/json/talk_topic_from_json.py msgid "" "STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " "anymore..." msgstr "止まれ、両手を上にあげろ!ああ、驚かせてしまったな...もう法律なんて無いのに..." -#: lang/json/talk_topic_from_json.py -msgid "Hi there, ." -msgstr "やあ、。" - #: lang/json/talk_topic_from_json.py msgid "What are you doing here?" msgstr "ここで何をしているんだ?" @@ -168040,24 +164111,24 @@ msgstr "" "ああ、私のように街で立て籠もってる奴がいる。何度か取引をしたが...たまに知らない放浪者も来て、自分が置き去りにしたものより良い商品がないかとチェックしているな。" #: lang/json/talk_topic_from_json.py -msgid "Anything to do before I go to sleep?" -msgstr "寝入る前にやっておくことでもあるのか?" +msgid "No, just no..." +msgstr "やめろ、おい やめろ..." #: lang/json/talk_topic_from_json.py -msgid "Just few minutes more..." -msgstr "あと5分..." +msgid "Just let me sleep, !" +msgstr "眠らせてくれよ、 !" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." msgstr "まだ眠いんだ、すぐにでも寝直したいよ。" #: lang/json/talk_topic_from_json.py -msgid "Just let me sleep, !" -msgstr "眠らせてくれよ、 !" +msgid "Just few minutes more..." +msgstr "あと5分..." #: lang/json/talk_topic_from_json.py -msgid "No, just no..." -msgstr "やめろ、おい やめろ..." +msgid "Anything to do before I go to sleep?" +msgstr "寝入る前にやっておくことでもあるのか?" #: lang/json/talk_topic_from_json.py msgid "Wake up!" @@ -168083,14 +164154,14 @@ msgstr "はい、起こしてください!" msgid "no, 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 " *pshhhttt* I'm reading you boss, over." msgstr "...ザザザザ...ちゃんと聞こえているよ、どうぞ。" +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "何だい、友よ?" + #: lang/json/talk_topic_from_json.py msgid "I want to give you some commands for combat." msgstr "戦闘時の指示を出したい。" @@ -168172,93 +164243,93 @@ msgid "Let's go." msgstr "行こう。" #: lang/json/talk_topic_from_json.py -msgid "*will engage all enemies." -msgstr "*は全ての敵を攻撃します。" +msgid "*will not engage enemies." +msgstr "*は敵を攻撃しません。" #: lang/json/talk_topic_from_json.py -msgid "*will engage enemies close enough to attack without moving." -msgstr "*は移動せずに付近の敵を攻撃します。" +msgid "*will engage nearby enemies." +msgstr "*は付近の敵を攻撃します。" #: lang/json/talk_topic_from_json.py -msgid "*will engage distant enemies without moving." -msgstr "*は移動せずに遠距離武器で敵を攻撃します。" +msgid "*will engage weak enemies." +msgstr "*は弱い敵を攻撃します。" #: lang/json/talk_topic_from_json.py msgid "*will engage enemies you attack." msgstr "*はあなたが攻撃した敵を攻撃します。" #: lang/json/talk_topic_from_json.py -msgid "*will engage weak enemies." -msgstr "*は弱い敵を攻撃します。" - -#: lang/json/talk_topic_from_json.py -msgid "*will engage nearby enemies." -msgstr "*は付近の敵を攻撃します。" +msgid "*will engage distant enemies without moving." +msgstr "*は移動せずに遠距離武器で敵を攻撃します。" #: lang/json/talk_topic_from_json.py -msgid "*will not engage enemies." -msgstr "*は敵を攻撃しません。" +msgid "*will engage enemies close enough to attack without moving." +msgstr "*は移動せずに付近の敵を攻撃します。" #: lang/json/talk_topic_from_json.py -msgid " " -msgstr " " +msgid "*will engage all enemies." +msgstr "*は全ての敵を攻撃します。" #: lang/json/talk_topic_from_json.py msgid " OVERRIDE: " msgstr " 上書き: " #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid " " +msgstr " " #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid " What should do?" msgstr "に出す指示を選択" @@ -168334,7 +164405,8 @@ msgstr "後ろに下がるな。私の移動の邪魔になる地点へ移動す #: src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/monexamine.cpp src/monexamine.cpp src/npc.cpp -#: src/pickup.cpp src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp +#: src/pickup.cpp src/player.cpp src/player.cpp src/player.cpp +#: src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." msgstr "何でもない。" @@ -168367,13 +164439,14 @@ msgid "Attack anything you want." msgstr "自由に敵を攻撃してくれ。" #: lang/json/talk_topic_from_json.py -msgid "*will not reserve any power for defense or utility CBMs." -msgstr "*は電力を防御または多目的CBMのために温存しません。" +#, no-python-format +msgid "*will reserve 100% of CBM power for defense or utility CBMs." +msgstr "*は総電力の100%を防御または多目的CBMのために温存します。" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 25% of CBM power for defense or utility CBMs." -msgstr "*は総電力の25%を防御または多目的CBMのために温存します。" +msgid "*will reserve 75% of CBM power for defense or utility CBMs." +msgstr "*は総電力の75%を防御または多目的CBMのために温存します。" #: lang/json/talk_topic_from_json.py #, no-python-format @@ -168382,13 +164455,12 @@ msgstr "*は総電力の50%を防御または多目的CBMのために温存し #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 75% of CBM power for defense or utility CBMs." -msgstr "*は総電力の75%を防御または多目的CBMのために温存します。" +msgid "*will reserve 25% of CBM power for defense or utility CBMs." +msgstr "*は総電力の25%を防御または多目的CBMのために温存します。" #: lang/json/talk_topic_from_json.py -#, no-python-format -msgid "*will reserve 100% of CBM power for defense or utility CBMs." -msgstr "*は総電力の100%を防御または多目的CBMのために温存します。" +msgid "*will not reserve any power for defense or utility CBMs." +msgstr "*は電力を防御または多目的CBMのために温存しません。" #: lang/json/talk_topic_from_json.py msgid "" @@ -168427,13 +164499,13 @@ msgstr "攻撃用CBMをどんどん使用しろ。防御や多目的CBMのため #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 10% of total power." -msgstr "*はの総電力が10%を切ったら充電を開始します。" +msgid "*will recharge power CBMs until has 90% of total power." +msgstr "*はの総電力が90%を切ったら充電を開始します。" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 25% of total power." -msgstr "*はの総電力が25%を切ったら充電を開始します。" +msgid "*will recharge power CBMs until has 75% of total power." +msgstr "*はの総電力が75%を切ったら充電を開始します。" #: lang/json/talk_topic_from_json.py #, no-python-format @@ -168442,13 +164514,13 @@ msgstr "*はの総電力が50%を切ったら充電を開始します #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 75% of total power." -msgstr "*はの総電力が75%を切ったら充電を開始します。" +msgid "*will recharge power CBMs until has 25% of total power." +msgstr "*はの総電力が25%を切ったら充電を開始します。" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 90% of total power." -msgstr "*はの総電力が90%を切ったら充電を開始します。" +msgid "*will recharge power CBMs until has 10% of total power." +msgstr "*はの総電力が10%を切ったら充電を開始します。" #: lang/json/talk_topic_from_json.py msgid " When should consume supplies to recharge power CBMs?" @@ -168483,20 +164555,20 @@ msgid "" msgstr "物資が底を尽きそうだ。総電力の10%を切ったら充電を始めろ。" #: lang/json/talk_topic_from_json.py -msgid "*will not bother to aim at all." -msgstr "*は照準を合わせずに射撃します。" - -#: lang/json/talk_topic_from_json.py -msgid "*will take time and aim carefully." -msgstr "*は慎重に照準を合わせてから射撃します。" +msgid "*will aim when it's convenient." +msgstr "*は適度に照準を合わせてから射撃します。" #: lang/json/talk_topic_from_json.py msgid "*will only shoot after taking a long time to aim." msgstr "*は完璧に照準を合わせてから射撃します。" #: lang/json/talk_topic_from_json.py -msgid "*will aim when it's convenient." -msgstr "*は適度に照準を合わせてから射撃します。" +msgid "*will take time and aim carefully." +msgstr "*は慎重に照準を合わせてから射撃します。" + +#: lang/json/talk_topic_from_json.py +msgid "*will not bother to aim at all." +msgstr "*は照準を合わせずに射撃します。" #: lang/json/talk_topic_from_json.py msgid " How should aim?" @@ -168539,81 +164611,81 @@ msgid "OVERRIDE: " msgstr "上書き: " #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." msgstr "この同行者と同じ規則に従ってくれ。" @@ -168786,14 +164858,14 @@ msgstr "...ザザザザ...了解、指定された場所へ向かう、どうぞ msgid "Sure thing, I'll make my way there." msgstr "分かった、指定された場所へ向かう。" -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, this summer heat is hitting me hard, let's take a quick break, how " @@ -168804,10 +164876,6 @@ msgstr "ああ、この暑さに私も参っていたんだ。ちょっと休憩 msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "いいよ。話していれば凍えずに済むからな。最近どう?" -#: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" -msgstr "まだ日は落ちていないようだな?調子はどう?" - #: lang/json/talk_topic_from_json.py msgid "" "Well, it's the time of day for a quick break surely! How are you holding " @@ -168815,14 +164883,12 @@ msgid "" msgstr "そうだな、そろそろ息抜きの時間だ!最近調子はどう?" #: lang/json/talk_topic_from_json.py -msgid "Well, I'm feeling pretty sick… are you doing OK though?" -msgstr "その、今はかなり体調が悪いんだけど...それでもやるのか?" +msgid "Man it's dark out isn't it? what's up?" +msgstr "まだ日は落ちていないようだな?調子はどう?" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " -"what's up?" -msgstr "よし、すこし休憩しよう。ああ、そうだ、頼みを聞いてくれてありがとう。それで...調子はどう?" +msgid "Well, I'm feeling pretty sick… are you doing OK though?" +msgstr "その、今はかなり体調が悪いんだけど...それでもやるのか?" #: lang/json/talk_topic_from_json.py msgid "" @@ -168830,6 +164896,12 @@ msgid "" "Anyway, you coping OK, ? " msgstr "よし、そうだな、私の依頼をたくさん引き受けてくれてありがとう!それで、の調子はどう?" +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " +"what's up?" +msgstr "よし、すこし休憩しよう。ああ、そうだ、頼みを聞いてくれてありがとう。それで...調子はどう?" + #: lang/json/talk_topic_from_json.py msgid "" "Now, we've got a moment, I was just thinking it's been a month or so since… " @@ -168901,14 +164973,14 @@ msgstr "よし、急に動いたりはするなよ..." msgid "Keep your distance!" msgstr "近寄るな!" -#: lang/json/talk_topic_from_json.py -msgid "This is my territory, ." -msgstr "ここはうちのシマだ、。" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is my territory, ." +msgstr "ここはうちのシマだ、。" + #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." msgstr "落ち着けよ。君を傷付けるつもりはないよ。" @@ -168926,11 +164998,11 @@ msgid "&Put hands up." msgstr "手を挙げる。" #: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." +msgid "*drops his weapon." msgstr "は武器を捨てました。" #: lang/json/talk_topic_from_json.py -msgid "*drops his weapon." +msgid "*drops_her_weapon." msgstr "は武器を捨てました。" #: lang/json/talk_topic_from_json.py @@ -168961,14 +165033,6 @@ msgstr "どうした?" msgid "I don't care." msgstr "どうでもいいね。" -#: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" -msgstr "1つ頼みたい事があるんだ。聞いてくれるか?" - -#: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" -msgstr "一つ頼みたい事があるんだ。聞いてくれるか?" - #: lang/json/talk_topic_from_json.py msgid "I have other jobs for you. Want to hear about them?" msgstr "一つ頼みたい事があるんだ。聞いてくれるか?" @@ -168978,13 +165042,21 @@ msgid "I have more jobs for you. Want to hear about them?" msgstr "他にも頼みたい事があるんだ。聞いてくれるか?" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." -msgstr "頼みたい事はそれだけだ。" +msgid "I have another job for you. Want to hear about it?" +msgstr "一つ頼みたい事があるんだ。聞いてくれるか?" + +#: lang/json/talk_topic_from_json.py +msgid "I just have one job for you. Want to hear about it?" +msgstr "1つ頼みたい事があるんだ。聞いてくれるか?" #: lang/json/talk_topic_from_json.py msgid "I don't have any jobs for you." msgstr "特に頼みたい事はないね。" +#: lang/json/talk_topic_from_json.py +msgid "I don't have any more jobs for you." +msgstr "頼みたい事はそれだけだ。" + #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." @@ -168995,16 +165067,16 @@ msgid "Never mind, I'm not interested." msgstr "いいや、興味ないね。" #: lang/json/talk_topic_from_json.py -msgid "What about it?" -msgstr "何だ?" +msgid "You're not working on anything for me now." +msgstr "頼んでいる仕事は今のところ何もないよ。" #: lang/json/talk_topic_from_json.py msgid "Which job?" msgstr "どの依頼の話だ?" #: lang/json/talk_topic_from_json.py -msgid "You're not working on anything for me now." -msgstr "頼んでいる仕事は今のところ何もないよ。" +msgid "What about it?" +msgstr "何だ?" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" @@ -169215,48 +165287,48 @@ msgid "Thanks!" msgstr "ありがとう!" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for not telling you." -msgstr "ちょっと理由があって話せないんだ。" +msgid "Focus on the road, mate!" +msgstr "相棒、運転に集中してくれ!" #: lang/json/talk_topic_from_json.py -msgid "Nothing comes to my mind now. Ask me later perhaps?" -msgstr "今は何も思いつかないな。後でまた聞いてくれる?" +msgid "I'm too thirsty, give me something to drink." +msgstr "すごく喉が渇いたよ。何か飲みたいな。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm too hungry, give me something to eat." +msgstr "すごくお腹が空いたよ。何か食べたいな。" #: lang/json/talk_topic_from_json.py msgid "I'm too tired, let me rest first." msgstr "すごく疲れたよ。休ませてほしいな。" #: lang/json/talk_topic_from_json.py -msgid "I'm too hungry, give me something to eat." -msgstr "すごくお腹が空いたよ。何か食べたいな。" +msgid "Nothing comes to my mind now. Ask me later perhaps?" +msgstr "今は何も思いつかないな。後でまた聞いてくれる?" #: lang/json/talk_topic_from_json.py -msgid "I'm too thirsty, give me something to drink." -msgstr "すごく喉が渇いたよ。何か飲みたいな。" +msgid "I have some reason for not telling you." +msgstr "ちょっと理由があって話せないんだ。" #: lang/json/talk_topic_from_json.py msgid "I must focus on the road!" msgstr "運転に集中させてくれ!" -#: lang/json/talk_topic_from_json.py -msgid "Focus on the road, mate!" -msgstr "相棒、運転に集中してくれ!" - #: lang/json/talk_topic_from_json.py msgid "Ah, okay." msgstr "あぁ、分かった。" #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "何故、君と一緒に旅をする必要があるんだ?" +msgid "Not until I get some antibiotics..." +msgstr "抗生物質さえあれば..." #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." msgstr "さっき言ったはずだけど...またいつか誘ってくれよ。" #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "抗生物質さえあれば..." +msgid "Why should I travel with you?" +msgstr "何故、君と一緒に旅をする必要があるんだ?" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." @@ -169347,19 +165419,19 @@ msgid "On second thought, never mind." msgstr "ただの思い付きだ、気にしないでくれ。" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for denying you training." -msgstr "ちょっと理由があって訓練はできないんだ。" +msgid "I can't train you properly while you're operating a vehicle!" +msgstr "車両を運転している間は、ちゃんと訓練できないよ!" #: lang/json/talk_topic_from_json.py msgid "Give it some time, I'll show you something new later..." msgstr "少し時間をくれないか。後で話をしよう。" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while I'm operating a vehicle!" -msgstr "車両を運転している間は、ちゃんと訓練できないよ!" +msgid "I have some reason for denying you training." +msgstr "ちょっと理由があって訓練はできないんだ。" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while you're operating a vehicle!" +msgid "I can't train you properly while I'm operating a vehicle!" msgstr "車両を運転している間は、ちゃんと訓練できないよ!" #: lang/json/talk_topic_from_json.py @@ -169398,14 +165470,14 @@ msgstr "自分について語りたくはないんだ。" msgid "I understand…" msgstr "そうか..." -#: lang/json/talk_topic_from_json.py -msgid "Why should I share my equipment with you?" -msgstr "どうして持ち物をあげないといけないんだ?" - #: lang/json/talk_topic_from_json.py msgid "You just asked me for stuff; ask later." msgstr "今はもう何もないんだ。また今度にしてくれ。" +#: lang/json/talk_topic_from_json.py +msgid "Why should I share my equipment with you?" +msgstr "どうして持ち物をあげないといけないんだ?" + #: lang/json/talk_topic_from_json.py msgid "Okay, fine." msgstr "そうだな、分かったよ。" @@ -169548,16 +165620,16 @@ msgstr "これからもよろしく頼むよ!" msgid "You might be seeing more of me…" msgstr "これからもよろしく..." +#: lang/json/talk_topic_from_json.py +msgid "Hey again. *kzzz*" +msgstr "また会ったな。*ザザザザ*" + #: lang/json/talk_topic_from_json.py msgid "" "I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " "I've seen in a long time." msgstr "ワ...私は自由だ。*ザザザザ* 自由なんだ!*ブブブ* 久しぶりに人と会えたよ。" -#: lang/json/talk_topic_from_json.py -msgid "Hey again. *kzzz*" -msgstr "また会ったな。*ザザザザ*" - #: lang/json/talk_topic_from_json.py msgid "Hey. Let's chat for a second." msgstr "やあ。少し話をしようか。" @@ -170710,28 +166782,28 @@ msgid "This is a low driving test response." msgstr "運転(スキルレベル低)のテスト用返答です。" #: lang/json/talk_topic_from_json.py -msgid "Greeting citizen, what brings you to the FoodLair?" -msgstr "ごきげんよう、どうやってフードパーソンの隠れ家にたどり着いたのかな?" +msgid "Greetings friend, it's nice to see you." +msgstr "やあ、友よ。会えて嬉しいよ。" #: lang/json/talk_topic_from_json.py -msgid "Still here? Take your time, it's rough out there." -msgstr "まだいたの?ごゆっくり。外は危ないからね。" +msgid "So you're back… Explain yourself!" +msgstr "戻ってきたな...説明してもらおうか!" #: lang/json/talk_topic_from_json.py -msgid "Greetings friend, it's nice to see you." -msgstr "やあ、友よ。会えて嬉しいよ。" +msgid "What sorcery is this?" +msgstr "これはどんな魔法なんだ?" #: lang/json/talk_topic_from_json.py msgid "Welcome home Foodkid!" msgstr "おかえりなさい、フードキッド!" #: lang/json/talk_topic_from_json.py -msgid "What sorcery is this?" -msgstr "これはどんな魔法なんだ?" +msgid "Still here? Take your time, it's rough out there." +msgstr "まだいたの?ごゆっくり。外は危ないからね。" #: lang/json/talk_topic_from_json.py -msgid "So you're back… Explain yourself!" -msgstr "戻ってきたな...説明してもらおうか!" +msgid "Greeting citizen, what brings you to the FoodLair?" +msgstr "ごきげんよう、どうやってフードパーソンの隠れ家にたどり着いたのかな?" #: lang/json/talk_topic_from_json.py msgid "Greetings… Foodperson?" @@ -172138,6 +168210,10 @@ msgid "" msgstr "" "軍隊さ。軍人がやってきて、私の土地を徴発して前進基地を作り、私にはFEMAキャンプへ避難するよう求めたんだ。私は何も言い返さなかった。私は父の古い狩猟用ライフルを持っていたけど、相手は最新装備だからね。軍人の一人が、FEMAキャンプはアウシュビッツだなんて冗談を言っているのを聞いた。私は移送車両から逃げ出して、姉が住んでいる北部へ向かったんだ。理屈の上では、まだ北部へ進めていると思うんだけど、正直なところ、今は生き延びるのに必死なんだ。" +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "無理だ。今は話せないよ。" + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a blur." @@ -172146,10 +168222,9 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke. I'd seen such horrible injuries, and then I… " -", I can't even talk about it." +"shift I… well, I broke." msgstr "" -"事が起こった時、私は病院で働いていたんだ。まだ記憶がぼんやりしているな。死んだ患者が蘇るなんて突拍子もない報告が届いたりしたが、それ以外はいつも通り仕事をしていたよ。でも事態は終わりに向かって急転したんだ。中国から攻撃されたと思った。前から噂はあったからな。患者たちは正気を失っていて、全身が銃創や咬傷まみれだった。シフトの中ほどで、私は...そう、壊れた。今までに見たこともないような怪我ばかりだったし、それに...!これ以上は話せないよ。" +"事が起こった時、私は病院で働いていたんだ。まだ記憶がぼんやりしているな。死んだ患者が蘇るなんて突拍子もない報告が届いたりしたが、それ以外はいつも通り仕事をしていたよ。でも事態は終わりに向かって急転したんだ。中国から攻撃されたと思った。前から噂はあったからな。患者たちは正気を失っていて、全身が銃創や咬傷まみれだった。シフトの中頃で、私は...そう、壊れてしまったんだ。" #: lang/json/talk_topic_from_json.py msgid "" @@ -172159,13 +168234,10 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke." +"shift I… well, I broke. I'd seen such horrible injuries, and then I… " +", I can't even talk about it." msgstr "" -"事が起こった時、私は病院で働いていたんだ。まだ記憶がぼんやりしているな。死んだ患者が蘇るなんて突拍子もない報告が届いたりしたが、それ以外はいつも通り仕事をしていたよ。でも事態は終わりに向かって急転したんだ。中国から攻撃されたと思った。前から噂はあったからな。患者たちは正気を失っていて、全身が銃創や咬傷まみれだった。シフトの中頃で、私は...そう、壊れてしまったんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "I just can't talk about that right now. I can't." -msgstr "無理だ。今は話せないよ。" +"事が起こった時、私は病院で働いていたんだ。まだ記憶がぼんやりしているな。死んだ患者が蘇るなんて突拍子もない報告が届いたりしたが、それ以外はいつも通り仕事をしていたよ。でも事態は終わりに向かって急転したんだ。中国から攻撃されたと思った。前から噂はあったからな。患者たちは正気を失っていて、全身が銃創や咬傷まみれだった。シフトの中ほどで、私は...そう、壊れた。今までに見たこともないような怪我ばかりだったし、それに...!これ以上は話せないよ。" #: lang/json/talk_topic_from_json.py msgid "It might help to get it off your chest." @@ -172521,17 +168593,17 @@ msgstr "詳しく教えてくれてありがとう。" #: lang/json/talk_topic_from_json.py msgid "" -"My wife made it out with me, but got eaten by one of those plant " +"My husband made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"妻は私と共に避難していたんだけど、君に会う数日前に、、植物のような化け物に食われたよ。あんなに衝撃を受けたのは生まれて初めてだ。" +"夫は私と共に避難していたんだけど、君に会う数日前に、、植物のような化け物に食われたよ。あんなに衝撃を受けたのは生まれて初めてだ。" #: lang/json/talk_topic_from_json.py msgid "" -"My husband made it out with me, but got eaten by one of those plant " +"My wife made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"夫は私と共に避難していたんだけど、君に会う数日前に、、植物のような化け物に食われたよ。あんなに衝撃を受けたのは生まれて初めてだ。" +"妻は私と共に避難していたんだけど、君に会う数日前に、、植物のような化け物に食われたよ。あんなに衝撃を受けたのは生まれて初めてだ。" #: lang/json/talk_topic_from_json.py msgid "I'm sorry to hear it." @@ -172592,8 +168664,9 @@ msgid "I'm sorry you lost someone." msgstr "人を亡くしていたんだったな、すまない。" #: lang/json/talk_topic_from_json.py -msgid "Just another tale of love and loss. Not one I like to tell." -msgstr "ありきたりな愛と喪失の物語だよ。その話はしたくないんだ。" +msgid "" +"I said, I don't wanna talk about it. How are you not understanding this?" +msgstr "言ったよな、話したくないって。どうして分かってくれないんだ?" #: lang/json/talk_topic_from_json.py msgid "" @@ -172602,9 +168675,8 @@ msgid "" msgstr "さっきも言ったが、これは話だ。でも、語ったからと言って私が死ぬことはないだろう。" #: lang/json/talk_topic_from_json.py -msgid "" -"I said, I don't wanna talk about it. How are you not understanding this?" -msgstr "言ったよな、話したくないって。どうして分かってくれないんだ?" +msgid "Just another tale of love and loss. Not one I like to tell." +msgstr "ありきたりな愛と喪失の物語だよ。その話はしたくないんだ。" #: lang/json/talk_topic_from_json.py msgid "You said you lost someone." @@ -172627,39 +168699,39 @@ msgid "" "Oh, . This doesn't have anything to do with you, or with us." msgstr "おい、。この話は君や私たちの協力とは関係ないだろう。" -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "分かった、話すよ。大事な女がいた。そいつを失った。" - #: lang/json/talk_topic_from_json.py msgid "All right, fine. I had someone. I lost him." msgstr "分かった、話すよ。大事な男がいた。そいつを失った。" +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "分かった、話すよ。大事な女がいた。そいつを失った。" + #: lang/json/talk_topic_from_json.py msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -"爆弾が投下されて地表が地獄になった時、彼女は家にいて、私は仕事中だった。家に帰ろうとしたけど、市街地は交戦区域になっていた。得体のしれない怪物が通りをのろのろ進み、車を破壊していた。軍隊はそいつらを止めようとしていたが、十字砲火で市民も被害を受けた。巻き添えの被害者が蘇り、敵の群れに加わった。妻を家に残していなかったら、私もすぐに逃げただろう。できる限りの事はしたが、手遅れだった。結局、、私は生き残った。" +"爆弾が投下されて地表が地獄になった時、彼は家にいて、私は仕事中だった。家に帰ろうとしたけど、市街地は交戦区域になっていた。得体のしれない怪物が通りをのろのろ進み、車を破壊していた。軍隊はそいつらを止めようとしていたが、十字砲火で市民も被害を受けた。巻き添えの被害者が蘇り、敵の群れに加わった。夫を家に残していなかったら、私もすぐに逃げただろう。できる限りの事はしたが、手遅れだった。結局、、私は生き残った。" #: lang/json/talk_topic_from_json.py msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -"爆弾が投下されて地表が地獄になった時、彼は家にいて、私は仕事中だった。家に帰ろうとしたけど、市街地は交戦区域になっていた。得体のしれない怪物が通りをのろのろ進み、車を破壊していた。軍隊はそいつらを止めようとしていたが、十字砲火で市民も被害を受けた。巻き添えの被害者が蘇り、敵の群れに加わった。夫を家に残していなかったら、私もすぐに逃げただろう。できる限りの事はしたが、手遅れだった。結局、、私は生き残った。" +"爆弾が投下されて地表が地獄になった時、彼女は家にいて、私は仕事中だった。家に帰ろうとしたけど、市街地は交戦区域になっていた。得体のしれない怪物が通りをのろのろ進み、車を破壊していた。軍隊はそいつらを止めようとしていたが、十字砲火で市民も被害を受けた。巻き添えの被害者が蘇り、敵の群れに加わった。妻を家に残していなかったら、私もすぐに逃げただろう。できる限りの事はしたが、手遅れだった。結局、、私は生き残った。" #: lang/json/talk_topic_from_json.py msgid "You must have seen some shit." @@ -172711,28 +168783,28 @@ msgstr "家の中には入ったのか?" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " +"up part? Like, out of all this? My husband was still alive. He'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirious by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then… well, then I did what you " +"he'd lost a ton of blood, he was delirious by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" -"ああ。入る隙を見つけるのに数時間粘ったよ。どんな酷いことがあったか知りたいか?全部話そうか?妻は生きていた。地下室で、倒壊した床の下敷きになったままでね。酷い失血だった。私が見つけた時には既にもうろうとしていた。救出は無理だったから、彼女に食べ物と水をあげて、ずっと一緒にいた。死ぬときまで手を握っていた。それから...うん、今の状況で、死者に対してやっておかないといけない処置をした。思い出になりそうな品をいくつか拾って、そこでの出来事は決して振り返らないと決めたんだ。" +"ああ。入る隙を見つけるのに数時間粘ったよ。どんな酷いことがあったか知りたいか?全部話そうか?夫は生きていた。地下室で、倒壊した床の下敷きになったままでね。酷い失血だった。私が見つけた時には既にもうろうとしていた。救出は無理だったから、彼に食べ物と水をあげて、ずっと一緒にいた。死ぬときまで手を握っていた。それから...うん、今の状況で、死者に対してやっておかないといけない処置をした。思い出になりそうな品をいくつか拾って、そこでの出来事は決して振り返らないと決めたんだ。" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " +"up part? Like, out of all this? My wife was still alive. She'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirious by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then… well, then I did what you " +"she'd lost a ton of blood, she was delirious by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" -"ああ。入る隙を見つけるのに数時間粘ったよ。どんな酷いことがあったか知りたいか?全部話そうか?夫は生きていた。地下室で、倒壊した床の下敷きになったままでね。酷い失血だった。私が見つけた時には既にもうろうとしていた。救出は無理だったから、彼に食べ物と水をあげて、ずっと一緒にいた。死ぬときまで手を握っていた。それから...うん、今の状況で、死者に対してやっておかないといけない処置をした。思い出になりそうな品をいくつか拾って、そこでの出来事は決して振り返らないと決めたんだ。" +"ああ。入る隙を見つけるのに数時間粘ったよ。どんな酷いことがあったか知りたいか?全部話そうか?妻は生きていた。地下室で、倒壊した床の下敷きになったままでね。酷い失血だった。私が見つけた時には既にもうろうとしていた。救出は無理だったから、彼女に食べ物と水をあげて、ずっと一緒にいた。死ぬときまで手を握っていた。それから...うん、今の状況で、死者に対してやっておかないといけない処置をした。思い出になりそうな品をいくつか拾って、そこでの出来事は決して振り返らないと決めたんだ。" #: lang/json/talk_topic_from_json.py msgid "" @@ -173402,17 +169474,6 @@ msgid "" msgstr "" "他のみんなと同じさ。神様から目を背けて、その代償を支払ってるところだよ。携挙が訪れたけど、私は取り残された。そして今、地上の地獄を彷徨っているんだ。もっと真面目に日曜学校へ行っておけばよかったな。" -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started… cancer. If anything good has " -"come out of all this, it's that I finally see a positive to losing her so " -"young. I'd been shut in for a while anyway. When the news started talking " -"about Chinese bio weapons and sleeper agents, and showing the rioting in " -"Boston and such, I curled up with my canned soup and changed the channel." -msgstr "" -"私は郊外の古い家に一人で住んでいたんだ。妻は、こんなことが起こる1か月くらい前に死んだ...ガンだった。結果的にそれが最善だったのだとしても、彼女はあまりにも早く旅立ってしまった。そういうことがあって、私はしばらく引きこもっていたんだ。テレビのニュースでは中国の生体兵器や潜伏スパイ、ボストンや各地で起こる暴動の話題が流れていたけど、チャンネルを変えて、缶詰のスープを抱えながら縮こまっていた。" - #: lang/json/talk_topic_from_json.py msgid "" "I lived alone, on the old family property way out of town. My husband " @@ -173425,6 +169486,17 @@ msgid "" msgstr "" "私は郊外の古い家に一人で住んでいたんだ。夫は、こんなことが起こる1か月くらい前に死んだ...ガンだった。結果的にそれが最善だったのだとしても、彼はあまりにも早く旅立ってしまった。そういうことがあって、私はしばらく引きこもっていたんだ。テレビのニュースでは中国の生体兵器や潜伏スパイ、ボストンや各地で起こる暴動の話題が流れていたけど、チャンネルを変えて、缶詰のスープを抱えながら縮こまっていた。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started… cancer. If anything good has " +"come out of all this, it's that I finally see a positive to losing her so " +"young. I'd been shut in for a while anyway. When the news started talking " +"about Chinese bio weapons and sleeper agents, and showing the rioting in " +"Boston and such, I curled up with my canned soup and changed the channel." +msgstr "" +"私は郊外の古い家に一人で住んでいたんだ。妻は、こんなことが起こる1か月くらい前に死んだ...ガンだった。結果的にそれが最善だったのだとしても、彼女はあまりにも早く旅立ってしまった。そういうことがあって、私はしばらく引きこもっていたんだ。テレビのニュースでは中国の生体兵器や潜伏スパイ、ボストンや各地で起こる暴動の話題が流れていたけど、チャンネルを変えて、缶詰のスープを抱えながら縮こまっていた。" + #: lang/json/talk_topic_from_json.py msgid "" "Well, it built up a bit. There was that acid rain, it burnt up one of my " @@ -173503,18 +169575,18 @@ msgstr "バックは気の毒だったな。" msgid "I'm sorry about Buck. " msgstr "バックは気の毒だったな。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " -"interested in getting attached. You didn't pay me to be your friend." -msgstr "よく聞け。もうこの話は終わりだ。私はお前のために働く、文句ないだろ?馴れ合いはごめんだ。友人になるために金を払ったわけじゃないだろう。" - #: lang/json/talk_topic_from_json.py msgid "" "Like I said, you want me to tell you a story, you gotta pony up the whisky." " A full bottle, mind you." msgstr "さっき言った通り、話をしてほしいなら、ウイスキーを奢るんだな。ひと瓶すべてだ、頼んだよ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " +"interested in getting attached. You didn't pay me to be your friend." +msgstr "よく聞け。もうこの話は終わりだ。私はお前のために働く、文句ないだろ?馴れ合いはごめんだ。友人になるために金を払ったわけじゃないだろう。" + #: lang/json/talk_topic_from_json.py msgid "" "I'm not looking for a friend, but I've paid my dues and earned my way. You " @@ -173833,16 +169905,6 @@ msgid "" msgstr "" "それを見た後、私はUターンして逃げ出したんだ。前にゾンビ映画で見たからね。家に帰って荷物をまとめて、事態がさらに悪化する前に街を出たよ。その時は自分がひどい臆病者だと思ったけど、他人を助けるために残っても、自分が死体の仲間入りするだけだからね。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " -"peel out of there with her brother - my best man - in his pickup truck as " -"things went bad. So, until I run into them again one way or another, I'm " -"just gonna keep on believing they're out there, doing well. That's more " -"than most of us have." -msgstr "" -"まぁ、変な話だけど希望が消えてないからね。馬鹿げた話だけど、婚約者と彼女の兄が教会から軽トラックで逃げ出すのを確かに見たんだ。だから、機会があればまた会えると信じて、それまで生き延びようと思ってる。これが大きな希望になっているんだ。" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I have this weird hope. It's probably stupid, but I saw my fiancé " @@ -173854,12 +169916,18 @@ msgstr "" "まぁ、変な話だけど希望が消えてないからね。馬鹿げた話だけど、婚約者と彼の姉が教会から軽トラックで逃げ出すのを確かに見たんだ。だから、機会があればまた会えると信じて、それまで生き延びようと思ってる。これが大きな希望になっているんだ。" #: lang/json/talk_topic_from_json.py -msgid "What were you saying before that?" -msgstr "前の話をもう一度聞かせてもらえないかな?" +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"まぁ、変な話だけど希望が消えてないからね。馬鹿げた話だけど、婚約者と彼女の兄が教会から軽トラックで逃げ出すのを確かに見たんだ。だから、機会があればまた会えると信じて、それまで生き延びようと思ってる。これが大きな希望になっているんだ。" #: lang/json/talk_topic_from_json.py -msgid "Welcome! You seem new, how can I help you?" -msgstr "ようこそ!見ない顔だが、何か用か?" +msgid "What were you saying before that?" +msgstr "前の話をもう一度聞かせてもらえないかな?" #: lang/json/talk_topic_from_json.py msgid "Hey there." @@ -173881,6 +169949,10 @@ msgstr "ようこそ?" msgid "How's the weather?" msgstr "今日の天気はどうだろうな?" +#: lang/json/talk_topic_from_json.py +msgid "Welcome! You seem new, how can I help you?" +msgstr "ようこそ!見ない顔だが、何か用か?" + #: lang/json/talk_topic_from_json.py msgid "What is this place?" msgstr "この場所は何?" @@ -173968,19 +170040,19 @@ msgstr "聞いてみただけだ。" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. If " -"you had found our community earlier, you could have had a higher chance to " -"join. The newest member joined just a few days ago." +"decisions. But as I said, your chances are low, like everyone else's. The " +"newest member joined just a long time ago." msgstr "" -"まずはリーダーのヘレナに聞いてくれ。是非を決めるのは彼女だ。でも、可能性は低いと思うよ。もっと早くここへ来ていたら、今よりチャンスがあったのに。数日前に新人が入ったばかりなんだ。" +"まずはリーダーのヘレナに聞いてくれ。是非を決めるのは彼女だ。でも、可能性は低いと思うよ。もっと早くここへ来ていたら、今よりチャンスがあったのに。ほんの少し前に新人が入ったばかりなんだ。" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. The " -"newest member joined just a long time ago." +"decisions. But as I said, your chances are low, like everyone else's. If " +"you had found our community earlier, you could have had a higher chance to " +"join. The newest member joined just a few days ago." msgstr "" -"まずはリーダーのヘレナに聞いてくれ。是非を決めるのは彼女だ。でも、可能性は低いと思うよ。もっと早くここへ来ていたら、今よりチャンスがあったのに。ほんの少し前に新人が入ったばかりなんだ。" +"まずはリーダーのヘレナに聞いてくれ。是非を決めるのは彼女だ。でも、可能性は低いと思うよ。もっと早くここへ来ていたら、今よりチャンスがあったのに。数日前に新人が入ったばかりなんだ。" #: lang/json/talk_topic_from_json.py msgid "" @@ -174029,10 +170101,6 @@ msgid "" msgstr "" "聖画カードを通貨として使っているんだ。前に作られたもので、裏面にここのコミュニティの名前が書いてある。旧世界のドルよりはるかに便利だよ。ドル紙幣はここでは焚き付けにしかならないね。" -#: lang/json/talk_topic_from_json.py -msgid "Hey! What are you doing up here? You are not allowed to come here." -msgstr "おい!何をしているんだ?ここは立ち入り禁止だ。" - #: lang/json/talk_topic_from_json.py msgid "You're back." msgstr "また来たのか。" @@ -174041,6 +170109,10 @@ msgstr "また来たのか。" msgid "So…?" msgstr "何だ...?" +#: lang/json/talk_topic_from_json.py +msgid "Hey! What are you doing up here? You are not allowed to come here." +msgstr "おい!何をしているんだ?ここは立ち入り禁止だ。" + #: lang/json/talk_topic_from_json.py msgid "How much food do you have in storage?" msgstr "貯蔵庫にはどれくらいの食料があるんだ?" @@ -174070,12 +170142,6 @@ msgstr "備蓄を貸してもらえないか?" msgid "Has anyone stolen from here?" msgstr "食料を盗む人間がいるのか?" -#: lang/json/talk_topic_from_json.py -msgid "" -"I am sorry, but nobody is allowed to take anything from here. We would like" -" to help you, but we already have enough mouths to feed." -msgstr "悪いけど、ここから分けてやることはできないよ。助けたいのは山々だけど、ここの住人の分しか確保できていないんだ。" - #: lang/json/talk_topic_from_json.py msgid "" "I am afraid you can't. Look, we are running low on our rations, and we " @@ -174084,6 +170150,12 @@ msgid "" msgstr "" "悪いけど無理だよ。見ての通り食料不足で、浪費はできない。単に「貸す」だけでもな。もう少し早くここへ来ていたら、助けられたかもしれないんだけどな。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I am sorry, but nobody is allowed to take anything from here. We would like" +" to help you, but we already have enough mouths to feed." +msgstr "悪いけど、ここから分けてやることはできないよ。助けたいのは山々だけど、ここの住人の分しか確保できていないんだ。" + #: lang/json/talk_topic_from_json.py msgid "I have money." msgstr "金なら払う。" @@ -174122,18 +170194,18 @@ msgstr "申し訳ないが、君の家族を助けることはできない。こ msgid "I think I'll be going." msgstr "そろそろ行くよ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"That information is a bit private, but you can see for yourself. We have " -"about 20 crates full of non-perishables." -msgstr "それは教えられないが、自分で見てみたらいい。木箱が約20個、中には生鮮食品がたっぷり入ってる。" - #: lang/json/talk_topic_from_json.py msgid "" "I don't know anymore. You see, we used to have 20 crates full of non-" "perishables. That was months ago. We are running out." msgstr "さあね。かつては木箱20個分の生鮮食品があったんだけどな。もう数か月前の話さ。食料は不足している。" +#: lang/json/talk_topic_from_json.py +msgid "" +"That information is a bit private, but you can see for yourself. We have " +"about 20 crates full of non-perishables." +msgstr "それは教えられないが、自分で見てみたらいい。木箱が約20個、中には生鮮食品がたっぷり入ってる。" + #: lang/json/talk_topic_from_json.py msgid "Where did all this food come from?" msgstr "この食べ物はどこから調達したんだ?" @@ -174202,14 +170274,14 @@ msgstr "" msgid "That's good to hear." msgstr "それは良かった。" -#: lang/json/talk_topic_from_json.py -msgid "Pleased to meet you." -msgstr "お目にかかれて嬉しいよ。" - #: lang/json/talk_topic_from_json.py msgid "Are you here to protect us?" msgstr "私たちを守ってくれるのか?" +#: lang/json/talk_topic_from_json.py +msgid "Pleased to meet you." +msgstr "お目にかかれて嬉しいよ。" + #: lang/json/talk_topic_from_json.py msgid "I'm just trying to get by." msgstr "何とかやっているよ。" @@ -174263,14 +170335,14 @@ msgstr "ウサギの飼い方を100人の人に教えれば、教わった人が msgid "That's the most hopeful thing I've heard so far." msgstr "希望が湧いてくる話だ。" -#: lang/json/talk_topic_from_json.py -msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." -msgstr "遺伝子の問題だろうか?それとも被曝?悪い水を飲んだから?ウサギっぽくなってしまったよ。" - #: lang/json/talk_topic_from_json.py msgid "Same way you got yours, I bet." msgstr "君と同じく、私も賭けをしたのさ。" +#: lang/json/talk_topic_from_json.py +msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." +msgstr "遺伝子の問題だろうか?それとも被曝?悪い水を飲んだから?ウサギっぽくなってしまったよ。" + #: lang/json/talk_topic_from_json.py msgid "So it goes." msgstr "そういうものか。" @@ -174279,22 +170351,22 @@ msgstr "そういうものか。" msgid "You're disgusting." msgstr "気持ち悪いな。" -#: lang/json/talk_topic_from_json.py -msgid "Insulting people who could help you is unlikely to aid survival." -msgstr "助けられる人から侮辱されては、助けようとも思えないな。" - #: lang/json/talk_topic_from_json.py msgid "I'm very sorry to tell you this, but you should look in a mirror." msgstr "悪いけど、鏡を見てみた方が良いんじゃないか。" #: lang/json/talk_topic_from_json.py -msgid "I can't believe my eyes. Please get me outta here…" -msgstr "幻覚じゃないよな。ここから出してくれ..." +msgid "Insulting people who could help you is unlikely to aid survival." +msgstr "助けられる人から侮辱されては、助けようとも思えないな。" #: lang/json/talk_topic_from_json.py msgid "Hey, ." msgstr "やあ、。" +#: lang/json/talk_topic_from_json.py +msgid "I can't believe my eyes. Please get me outta here…" +msgstr "幻覚じゃないよな。ここから出してくれ..." + #: lang/json/talk_topic_from_json.py msgid "I've come to take you home, lets go." msgstr "あなたを家に連れ帰りに来たんだ、行こう。" @@ -174318,18 +170390,18 @@ msgid "Sounds good, Barry." msgstr "それもそうだな、バリー。" #: lang/json/talk_topic_from_json.py -msgid "Hello Ma'am, what brings you here?" -msgstr "やあお客さん、何しに来たんだ?" +msgid "" +"I see that badge, I think you need to keep on walking, straight off this " +"property." +msgstr "バッジを着けているな。ここの土地には入らず、そのまま去った方がいい。" #: lang/json/talk_topic_from_json.py msgid "Hello Sir, what brings you here?" msgstr "やあお客さん、何しに来たんだ?" #: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need to keep on walking, straight off this " -"property." -msgstr "バッジを着けているな。ここの土地には入らず、そのまま去った方がいい。" +msgid "Hello Ma'am, what brings you here?" +msgstr "やあお客さん、何しに来たんだ?" #: lang/json/talk_topic_from_json.py msgid "Yeah, I'm a Marshal, what are you going to do about it?" @@ -174404,16 +170476,16 @@ msgstr "鍛冶場は稼働しているのか?" msgid "Where can I find Chris?" msgstr "クリスにはどこで会える?" -#: lang/json/talk_topic_from_json.py -msgid "Hi, what's up?" -msgstr "やあ、調子はどう?" - #: lang/json/talk_topic_from_json.py msgid "" "I see that badge. You need to leave our land, my relatives have no fondness" " for Marshals." msgstr "バッジを着けているな。この土地から出て行った方がいい。うちの家族は執行官が嫌いなんだ。" +#: lang/json/talk_topic_from_json.py +msgid "Hi, what's up?" +msgstr "やあ、調子はどう?" + #: lang/json/talk_topic_from_json.py msgid "" "Hi, Your dad asked me to come find you, said you've been looking for your " @@ -174510,16 +170582,16 @@ msgid "" msgstr "さっきルークから聞いたんだけど、世界の崩壊について興味深い考えを持っているようだな。" #: lang/json/talk_topic_from_json.py -msgid "Hi, what brings you here?" -msgstr "やあ、何しに来たんだ?" +msgid "Is that a U.S. Marshal's badge you're wearing?" +msgstr "あなたが着けているのは、合衆国執行官のバッジ?" #: lang/json/talk_topic_from_json.py msgid "Hello, what brings you here?" msgstr "ごきげんよう、何しに来たんだ?" #: lang/json/talk_topic_from_json.py -msgid "Is that a U.S. Marshal's badge you're wearing?" -msgstr "あなたが着けているのは、合衆国執行官のバッジ?" +msgid "Hi, what brings you here?" +msgstr "やあ、何しに来たんだ?" #: lang/json/talk_topic_from_json.py msgid "Yes, I'm a marshal." @@ -174821,14 +170893,14 @@ msgstr "これで全部だ。他のことを聞いてもいいか?" msgid "That's all for now. I'd best get going." msgstr "これで全部だ。そろそろ行くよ。" -#: lang/json/talk_topic_from_json.py -msgid "Hello, We don't see many people these days." -msgstr "ごきげんよう、最近はあまり人を見かけないな。" - #: lang/json/talk_topic_from_json.py msgid "Leave our property, Marshal." msgstr "執行官、うちの土地から出て行け。" +#: lang/json/talk_topic_from_json.py +msgid "Hello, We don't see many people these days." +msgstr "ごきげんよう、最近はあまり人を見かけないな。" + #: lang/json/talk_topic_from_json.py msgid "Hi, it looks like you are doing well here." msgstr "やあ、ここで上手くやっているようだな。" @@ -175030,10 +171102,8 @@ msgid "Tell me about your dad." msgstr "あなたの父について聞きたい。" #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "執行官、どうやってここまで来たのか知らんが、身動きが取れるうちにここを脱出した方がいいぞ。" +msgid "Marshal, I hope you're here to assist us." +msgstr "執行官、手伝いに来てくれたんだな。" #: lang/json/talk_topic_from_json.py msgid "" @@ -175042,8 +171112,10 @@ msgid "" msgstr "執行官、どうやってここまで来たのか知らんが、身動きが取れるうちにここを脱出した方がいいぞ。" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "執行官、手伝いに来てくれたんだな。" +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "執行官、どうやってここまで来たのか知らんが、身動きが取れるうちにここを脱出した方がいいぞ。" #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" @@ -175106,16 +171178,16 @@ msgid "Whatever they did it must have worked since we are still alive…" msgstr "何にせよ彼らはそうせざるを得ない。我々が生きているんだからな..." #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here… you should leave." -msgstr "あなたにここでの指揮権は無い... 他に行く場所があるのでは?" +msgid "Marshal, I'm rather surprised to see you here." +msgstr "執行官、こんなところで会うとは驚いた。" #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here… you should leave." msgstr "あなたにここでの指揮権は無い... 他に行く場所があるのでは?" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "執行官、こんなところで会うとは驚いた。" +msgid "Ma'am you are not authorized to be here… you should leave." +msgstr "あなたにここでの指揮権は無い... 他に行く場所があるのでは?" #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." @@ -175152,6 +171224,22 @@ msgid "" msgstr "" "大尉が使いを送ってくれるのを待っていた。これが目当ての品だ。このままでは周波数しか分からないし、通信内容のほとんどはここの設備を修理するか交換しないと解読できない。万が一施設を放棄しなければならなくなった時、連邦の機密を守り完全な通信網を保つための手続きとして、暗号化装置は破壊されるんだ。ほんの少しでもメッセージ内容を取り出せれば良いのだが。" +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "やあ、執行官。" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "執行官、悪いですが今はお話できません。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "私はここの担当者ではないよ、執行官。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "ご質問は上の者にどうぞ、執行官。" + #: lang/json/talk_topic_from_json.py msgid "Hey, citizen… I'm not sure you belong here." msgstr "よう... ここで何してるんだ。" @@ -175164,14 +171252,6 @@ msgstr "こっちをジロジロ見るな。ここには何も無いよ。" msgid "If you need something you'll need to talk to someone else." msgstr "何が欲しいのか知らんが他を当たりな。" -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "お嬢さん。" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "お嬢さん、俺と一緒に居たほうが安全だとは思わないか?" - #: lang/json/talk_topic_from_json.py msgid "Sir." msgstr "よお旦那。" @@ -175181,20 +171261,12 @@ msgid "Dude, if you can hold your own you should look into enlisting." msgstr "お前、自分の能力に自信があるなら、新人採用の担当を探してみたらどうだ。" #: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "やあ、執行官。" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "執行官、悪いですが今はお話できません。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "私はここの担当者ではないよ、執行官。" +msgid "Ma'am" +msgstr "お嬢さん。" #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "ご質問は上の者にどうぞ、執行官。" +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "お嬢さん、俺と一緒に居たほうが安全だとは思わないか?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me…" @@ -175251,14 +171323,15 @@ msgid "I've no use for weaklings. Run. Now." msgstr "弱者は不要だ。さっさと逃げろ。" #: lang/json/talk_topic_from_json.py -msgid "Please, help me. I need food." -msgstr "頼む、助けてくれ。食料が必要なんだ。" +msgid "" +"So, any luck with convincing the others to come on your crazy adventure yet?" +msgstr "他の人も説得して、愉快な仲間に加えられたか?" #: lang/json/talk_topic_from_json.py msgid "" -"Please, help me. I need food. Aren't you their sheriff? Can't you help " -"me?" -msgstr "頼む、助けてくれ。食料が必要なんだ。執行官なんだろう?手伝ってもらえないか?" +"I'm sorry to say it after all you've done for me, but… I don't suppose " +"you've got anything to eat?" +msgstr "こんな事を言ってしまうのは申し訳ないが...あなたが十分な食料を持っているとは思えないな?" #: lang/json/talk_topic_from_json.py msgid "Thank you again. I really appreciate the food." @@ -175266,14 +171339,13 @@ msgstr "いつもありがとう。本当に感謝しているよ。" #: lang/json/talk_topic_from_json.py msgid "" -"I'm sorry to say it after all you've done for me, but… I don't suppose " -"you've got anything to eat?" -msgstr "こんな事を言ってしまうのは申し訳ないが...あなたが十分な食料を持っているとは思えないな?" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "頼む、助けてくれ。食料が必要なんだ。執行官なんだろう?手伝ってもらえないか?" #: lang/json/talk_topic_from_json.py -msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" -msgstr "他の人も説得して、愉快な仲間に加えられたか?" +msgid "Please, help me. I need food." +msgstr "頼む、助けてくれ。食料が必要なんだ。" #: lang/json/talk_topic_from_json.py msgid "" @@ -175292,16 +171364,16 @@ 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 "" -"中に入れてもらえないんだ。もう満員だって言われてさ。ここを汚さず大騒ぎしないなら、寝泊りしていいとは言われたんだ。でも、ものすごくお腹が空いてるんだよ。" +"here as long as I keep it clean and don't make a fuss, but I'm reduced to " +"begging to survive." +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 reduced to " -"begging to survive." -msgstr "中には入れてもらえないよ。もう満員だそうだ。きちんと清潔にして騒ぎを起こさないことを条件に、ここで寝泊まりを許されているんだ。" +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "" +"中に入れてもらえないんだ。もう満員だって言われてさ。ここを汚さず大騒ぎしないなら、寝泊りしていいとは言われたんだ。でも、ものすごくお腹が空いてるんだよ。" #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" @@ -175403,16 +171475,16 @@ msgid "" msgstr "" "親切な申し出はありがたいが、また危険な目に遭うよりは、ここでチャンスを待ち続けていたいんだ。の光景が忘れられない、あんなのはもうたくさんだ。" -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "悪いけど、腹が減っていて正常な判断ができそうにないよ。" - #: lang/json/talk_topic_from_json.py msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " "think you realize how useless I am in this world." msgstr "ありがたい申し出だけど、私はきっと旅を続けられない。私がどれだけ役立たずなのか分かっていないようだな。" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I'm too hungry to make a big decision like that." +msgstr "悪いけど、腹が減っていて正常な判断ができそうにないよ。" + #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." msgstr "安全は保障する。目的地までちゃんと連れて行くよ。" @@ -175459,15 +171531,15 @@ msgstr "わかったよ!さあ行こう。" msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "段ボールの事は話したっけ?君、段ボール持ってる?" +#: lang/json/talk_topic_from_json.py +msgid "We've done it! We've solved the list!" +msgstr "やった!リストが全部埋まった!" + #: lang/json/talk_topic_from_json.py msgid "" "How's things with you? My cardboard collection is getting quite impressive." msgstr "調子はどう?私の段ボールコレクションはかなり良い感じだよ。" -#: lang/json/talk_topic_from_json.py -msgid "We've done it! We've solved the list!" -msgstr "やった!リストが全部埋まった!" - #: lang/json/talk_topic_from_json.py msgid "About that shopping list of yours…" msgstr "あなたの買い物リストについて..." @@ -175496,16 +171568,16 @@ msgstr "その恐竜の着ぐるみは何かの冗談か?" msgid "Do you need something to eat?" msgstr "何か食べる物が必要か?" +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "それはありがたい。ぜひいただくよ。いいね、すごく良い。" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, I'm real hungry and they put drugs in most of the food. I can see " "you're not like that." msgstr "ああ、すごくお腹が空いていたけど、奴らは大抵の食べ物に毒を入れているからな。君はそんなことしないって信じているよ。" -#: lang/json/talk_topic_from_json.py -msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." -msgstr "それはありがたい。ぜひいただくよ。いいね、すごく良い。" - #: lang/json/talk_topic_from_json.py msgid "Actually can I ask you something else?" msgstr "他のことを聞いてもいいか?" @@ -175597,13 +171669,6 @@ msgid "" "have shields up, to protect ourselves." msgstr "君は私の格好について尋ねてきたが、私は君の格好について尋ねたりしない。私たちは時に、自分自身を守るために隠れなければならないんだ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"That's it! I'm just gonna need a little time to get it all set up. Thanks." -" You've helped me a lot. I'm feeling much more myself with all this to " -"keep me going." -msgstr "いい質問だ!組み立て終わるまで少し時間がかかる。ありがとう。君は何度も私を助けてくれた。お陰で、ここで生き延びられそうだ。" - #: lang/json/talk_topic_from_json.py msgid "" "Well… I had it all pretty together, but the others have left, and now the " @@ -175611,6 +171676,13 @@ msgid "" msgstr "" "そうだな...欲しいものは全部揃ったが、他の人は去ってしまったし、ここに聖域を作ることは禁止されたんだ。私が安らげる場所を探すのを手伝ってくれないか?" +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "いい質問だ!組み立て終わるまで少し時間がかかる。ありがとう。君は何度も私を助けてくれた。お陰で、ここで生き延びられそうだ。" + #: lang/json/talk_topic_from_json.py msgid "" "Why don't you leave this place? Come with me, I could use some help out " @@ -175628,20 +171700,16 @@ msgid "" msgstr "嫌だ!せっかく準備が整ったのに。ここを出て行かないよ、まだその時じゃない。全部揃ったんだ!" #: lang/json/talk_topic_from_json.py -msgid "Don't bother with these assholes." -msgstr "そこのろくでなし共は放っておけ。" +msgid "Fuck off, dickwaddle." +msgstr "失せろ、クソったれ。" #: lang/json/talk_topic_from_json.py -msgid "Hey there, not-asshole. Good to see you again." -msgstr "やぁ、クソったれじゃない奴。また会えて嬉しいよ。" +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgstr "よぉ。ここのバス停からあんたのテント街に引っ越したがる奴は見つかったか?" #: lang/json/talk_topic_from_json.py -msgid "" -"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " -"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" -" cranky. We cool?" -msgstr "" -"おい、前はキレてしまって申し訳ない。あんたはクソったれかも知れんが、誤解があったのかもしれない。血糖値がどん底なんだ。キレやすくなってる。分かったか?" +msgid "Hey there. Good to see you again." +msgstr "やあ、また会えて嬉しいよ。" #: lang/json/talk_topic_from_json.py msgid "" @@ -175650,16 +171718,20 @@ msgid "" msgstr "気をつけろ、また腹が減ってきた。自分の行動に責任が持てそうにない状況だ。" #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." -msgstr "やあ、また会えて嬉しいよ。" +msgid "" +"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " +"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" +" cranky. We cool?" +msgstr "" +"おい、前はキレてしまって申し訳ない。あんたはクソったれかも知れんが、誤解があったのかもしれない。血糖値がどん底なんだ。キレやすくなってる。分かったか?" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" -msgstr "よぉ。ここのバス停からあんたのテント街に引っ越したがる奴は見つかったか?" +msgid "Hey there, not-asshole. Good to see you again." +msgstr "やぁ、クソったれじゃない奴。また会えて嬉しいよ。" #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." -msgstr "失せろ、クソったれ。" +msgid "Don't bother with these assholes." +msgstr "そこのろくでなし共は放っておけ。" #: lang/json/talk_topic_from_json.py msgid "What's up?" @@ -175959,12 +172031,6 @@ msgid "" "that?" msgstr "危険だ。そんなリスクを冒しても、何の得もないだろう?" -#: lang/json/talk_topic_from_json.py -msgid "" -"I dunno, scientific interest? If you don't bring me anything, no worries. " -"I'm positively swimming in entertainment here, as you can see." -msgstr "さあね、科学的関心が満たされることか?別に何も持ってこなくても、私は困らない。見ての通り、ここらには興味深いものがたくさんあるからな。" - #: lang/json/talk_topic_from_json.py msgid "" "If you get me a sample, I'll join your crazy camp expedition. Hell, if you " @@ -175974,6 +172040,12 @@ msgid "" msgstr "" "もし組織片を持ってきたら、あんたの愉快なキャンプ遠征隊に参加するよ。それと、ゾンビのことを調べる研究室の建設も手伝おう。多分大丈夫だとは思うが、危険だと思ったら、胞子を形成しない個体を選んだ方がいい。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "さあね、科学的関心が満たされることか?別に何も持ってこなくても、私は困らない。見ての通り、ここらには興味深いものがたくさんあるからな。" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "ちょうど真菌の組織片を持っていたんだ。" @@ -176022,14 +172094,14 @@ msgstr "良いね。行こう。イカレたキノコをもっと観察したい msgid "I'll see what I can do." msgstr "できる限りのことをやってみるよ。" -#: lang/json/talk_topic_from_json.py -msgid "Hey, are you a big fan of survival of the fittest?" -msgstr "よぉ、適者生存って言葉は好きか?" - #: lang/json/talk_topic_from_json.py msgid "Thanks again for the grub, my friend." msgstr "友よ、食べ物をまた持ってきてくれて助かるよ。" +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "よぉ、適者生存って言葉は好きか?" + #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" msgstr "どうしてそんな事を聞くんだ?" @@ -176046,18 +172118,18 @@ msgstr "ごきげんよう、調子はどう?" msgid "Nice to see you. I gotta be going though." msgstr "ごきげんよう。悪いけどもう行くよ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " -"Help a poor sickly soul out?" -msgstr "私は自分が適者じゃないと分かっているから、餓死するまでここでじっとしてるんだ。貧しく病弱な人間を助けてもらえないか?" - #: lang/json/talk_topic_from_json.py msgid "" "Oh you know, the usual: sittin' out here until I starve to death, playin' " "cards with Dave, that kinda thing." msgstr "ああ、いつも通りさ。死にたくなるまでここに座って、デイブとトランプで遊ぶんだ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "私は自分が適者じゃないと分かっているから、餓死するまでここでじっとしてるんだ。貧しく病弱な人間を助けてもらえないか?" + #: lang/json/talk_topic_from_json.py msgid "I could maybe help you out… want something to eat?" msgstr "助けになればいいんだけど...何か食べる物が必要か?" @@ -176078,15 +172150,15 @@ msgstr "体調が悪いのに、どうやってここまで来たんだ?" msgid "Why are you camped out here if they won't let you in?" msgstr "中に入れてもらえないにしても、どうしてここで寝泊りしているんだ?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "それは素晴らしい提案だ。本当に親切な人だな。" + #: lang/json/talk_topic_from_json.py msgid "" "Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." msgstr "おいおい!本当に親切な人だな?気持ちだけで十分だよ。" -#: lang/json/talk_topic_from_json.py -msgid "That's awful kind of you, you really are a wonderful person." -msgstr "それは素晴らしい提案だ。本当に親切な人だな。" - #: lang/json/talk_topic_from_json.py msgid "" "It's good to know there are still people like you in the world, it really " @@ -176370,10 +172442,6 @@ msgstr "そうだな。行こう。" msgid "What's your take on the situation here?" msgstr "ここでの境遇はどうだ?" -#: lang/json/talk_topic_from_json.py -msgid "Oh, uh… hi. You look new. I'm Aleesha." -msgstr "あっ、えぇと...こんにちは。はじめまして。私はアリーシャ。" - #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." msgstr "ああ、また会ったね。" @@ -176386,6 +172454,10 @@ msgstr "わぁ、よく無事に戻ってきたね!" msgid "Aw hey, look who's back." msgstr "やあ、また会えたね。" +#: lang/json/talk_topic_from_json.py +msgid "Oh, uh… hi. You look new. I'm Aleesha." +msgstr "あっ、えぇと...こんにちは。はじめまして。私はアリーシャ。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" msgstr "ごきげんよう、お嬢ちゃん。調子はどう?" @@ -176403,16 +172475,16 @@ msgid "Hi Aleesha. I can't stay to talk." msgstr "やあアリーシャ。話は後にしよう。" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm fourteen." -msgstr "お嬢ちゃんは止めてくれる?もう14歳なんだから。" +msgid "I'm not a kid, okay? I'm sixteen." +msgstr "お嬢ちゃんは止めてくれる?もう16歳なんだから。" #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." msgstr "お嬢ちゃんは止めてくれる?もう15歳なんだから。" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm sixteen." -msgstr "お嬢ちゃんは止めてくれる?もう16歳なんだから。" +msgid "I'm not a kid, okay? I'm fourteen." +msgstr "お嬢ちゃんは止めてくれる?もう14歳なんだから。" #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" @@ -176422,15 +172494,6 @@ msgstr "ごめん、悪気はなかったんだ。調子はどう?" msgid "Sorry, I didn't mean anything by it. I'll be on my way." msgstr "ごめん、悪気はなかったんだ。そろそろ行くよ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know what's up. I'm not sure what we've even doing here. They say " -"we're supposed to wait until we can be moved to the shelter downstairs, but " -"we've been here days and there's no word on how long we'll be waiting. It's" -" all so stupid, and nobody can tell me anything." -msgstr "" -"調子なんて分からないよ。ここで何をしてるのかもよく分からない。下の階の避難場所に移動できるまで待てって言われたけど、もう何日もここにいるし、どれだけ待てばいいのかも言われてない。全部ばかみたい、誰も何も教えてくれない。" - #: lang/json/talk_topic_from_json.py msgid "" "We're just standing around here waiting, like a bunch of idiots. We're " @@ -176441,6 +172504,15 @@ msgid "" msgstr "" "ここでバカみたいにぼんやり立ってるだけだよ。下の階の避難所に行けるのをもう1か月以上も待ってる。信じられない。こんな所で何してるんだろう。全部の本を読んじゃったし、外にはゾンビがいるから出られない。夜になると奴らの声が聞こえるんだ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't know what's up. I'm not sure what we've even doing here. They say " +"we're supposed to wait until we can be moved to the shelter downstairs, but " +"we've been here days and there's no word on how long we'll be waiting. It's" +" all so stupid, and nobody can tell me anything." +msgstr "" +"調子なんて分からないよ。ここで何をしてるのかもよく分からない。下の階の避難場所に移動できるまで待てって言われたけど、もう何日もここにいるし、どれだけ待てばいいのかも言われてない。全部ばかみたい、誰も何も教えてくれない。" + #: lang/json/talk_topic_from_json.py msgid "" "You can't just go asking people questions like that nowadays. I'm a " @@ -176481,9 +172553,8 @@ msgid "" msgstr "[感覚10] どうしたんだ?発音も話し方もどこか変じゃないか?" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." -msgstr "ああ、何と麗しいレディだろう、お会いできて光栄です。皆は私をアロンソと呼んでいるよ。" +msgid "Hello again, gorgeous" +msgstr "また会ったね、お洒落さん。" #: lang/json/talk_topic_from_json.py msgid "" @@ -176492,8 +172563,9 @@ msgid "" msgstr "何てことだ、私のように強くハンサムな人間が他にもいたとは。皆は私をアロンソと呼んでいるよ。" #: lang/json/talk_topic_from_json.py -msgid "Hello again, gorgeous" -msgstr "また会ったね、お洒落さん。" +msgid "" +"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." +msgstr "ああ、何と麗しいレディだろう、お会いできて光栄です。皆は私をアロンソと呼んでいるよ。" #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Alonso." @@ -176520,6 +172592,11 @@ msgstr "こちらこそ。本当に嬉しいよ。センターでの生活はと msgid "Actually I'm just heading out." msgstr "そろそろ行くよ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it's a lot better now that you're here. Nice to see a familiar face." +msgstr "うん、あなたが来てからは調子が良くなってきた。また会えて嬉しいよ。" + #: lang/json/talk_topic_from_json.py msgid "" "Now that you are here, everything. Is there anything Alonso can… *do for " @@ -176527,21 +172604,16 @@ msgid "" msgstr "今、あなたがここにいる、それが全てだ。*君のためになること*...それ以外アロンソにできることはないよ?" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, it's a lot better now that you're here. Nice to see a familiar face." -msgstr "うん、あなたが来てからは調子が良くなってきた。また会えて嬉しいよ。" +msgid "You know me, I gotta be me, right?" +msgstr "私と君とは顔見知りだ。今更そんな話か?" #: lang/json/talk_topic_from_json.py msgid "Alonso cannot help himself, in the face of someone so fine as you." msgstr "アロンソは、君のような素敵な人の前では体が言う事を聞かないんだ。" -#: lang/json/talk_topic_from_json.py -msgid "You know me, I gotta be me, right?" -msgstr "私と君とは顔見知りだ。今更そんな話か?" - #: lang/json/talk_topic_from_json.py msgid "" -"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " +"Aw man, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" @@ -176549,7 +172621,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw man, why you gotta be like that? I'm just tryin' to get an air of " +"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" @@ -176579,13 +172651,6 @@ msgstr "よし。お望みとあらば、ブルックリンから来た男にな msgid "Thanks. I'd better get going." msgstr "ありがとう。もう行くよ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Alonso does not wish to talk about the past, only the future. There are " -"dark days ahead, but perhaps together we can bring a little light?" -msgstr "" -"アロンソは過去について話さない。未来の事だけを話す。これから先も暗い日々が待ち受けているだろうが、一緒に居れば少しでも光明が見えてくると思わないか?" - #: lang/json/talk_topic_from_json.py msgid "" "I'm tryin' ta forget, y'know? Don't like thinkin' about the past. Better " @@ -176594,9 +172659,10 @@ msgstr "そんな話は忘れた方がいいだろう?過去について考え #: lang/json/talk_topic_from_json.py msgid "" -"Here in the center, Alonso is a bit lonely. We get a few brave, strong " -"travelers like yourself, though, and seeing them brightens Alonso's day." -msgstr "センターの中では、アロンソは少し孤独だ。君のような勇敢で強い旅人に会えると、アロンソの心も晴れる。" +"Alonso does not wish to talk about the past, only the future. There are " +"dark days ahead, but perhaps together we can bring a little light?" +msgstr "" +"アロンソは過去について話さない。未来の事だけを話す。これから先も暗い日々が待ち受けているだろうが、一緒に居れば少しでも光明が見えてくると思わないか?" #: lang/json/talk_topic_from_json.py msgid "" @@ -176605,8 +172671,10 @@ msgid "" msgstr "これから良くなっていくだろう。ここには友人もいないが、君のような旅人に会うことで私の心も晴れるんだ。" #: lang/json/talk_topic_from_json.py -msgid "Ah, another new face. Hello. I am Boris." -msgstr "あぁ、また見ない顔だ。こんにちは。私の名はボリスだ。" +msgid "" +"Here in the center, Alonso is a bit lonely. We get a few brave, strong " +"travelers like yourself, though, and seeing them brightens Alonso's day." +msgstr "センターの中では、アロンソは少し孤独だ。君のような勇敢で強い旅人に会えると、アロンソの心も晴れる。" #: lang/json/talk_topic_from_json.py msgid "Well, well. I'm glad you are back." @@ -176620,6 +172688,10 @@ msgstr "また会ったな、友よ。" msgid "It is good to see you again." msgstr "また会えて良かったよ。" +#: lang/json/talk_topic_from_json.py +msgid "Ah, another new face. Hello. I am Boris." +msgstr "あぁ、また見ない顔だ。こんにちは。私の名はボリスだ。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." msgstr "はじめまして、ボリス。" @@ -176690,6 +172762,13 @@ msgstr "悪いけど、前の話をもう一度聞かせてもらえる?" msgid "I'm sorry. I'd better get going." msgstr "辛いことを尋ねて悪かった。もう行くよ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, now that you mention it, with the back bay cleared I could probably " +"set up back there and start work. I'll think about it, get back to me " +"later." +msgstr "ああ、その話なら、センターの裏手の区画が片付いたら私も仕事を始められるらしい。計画は立てておくから、準備ができたらまた話そう。" + #: lang/json/talk_topic_from_json.py msgid "" "There isn't much to do with a hammer and a saw here indoors, and working " @@ -176701,13 +172780,6 @@ msgid "" msgstr "" "屋内ではハンマーやのこぎりを使った作業はあまりない。屋外での作業は危険だ。家具を動かせるほど広いスペースを確保できれば、目隠し用の壁を設置できそうだな。貯蔵庫にちょっとした店を開こうとしたんだけど、荷物の積み下ろしをする場所が欲しいって隊商が言うものだから、そちらを優先したんだ。隊商は食料を運んでくるのだから優遇すべきだし、口出しはできないよ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, now that you mention it, with the back bay cleared I could probably " -"set up back there and start work. I'll think about it, get back to me " -"later." -msgstr "ああ、その話なら、センターの裏手の区画が片付いたら私も仕事を始められるらしい。計画は立てておくから、準備ができたらまた話そう。" - #: lang/json/talk_topic_from_json.py msgid "" "Everyone agrees this is bad. Sleeping on a cot on the floor, crowded in " @@ -176737,10 +172809,6 @@ msgstr "探してほしいと言っていたサワー種スターターについ msgid "Got any more bread I can trade flour for?" msgstr "穀粉とパンを交換してもらえないか?" -#: lang/json/talk_topic_from_json.py -msgid "Hi there. I'm Dana, nice to see a new face." -msgstr "こんにちは、私はダナ。よろしくね、新入りさん。" - #: lang/json/talk_topic_from_json.py msgid "Hello, nice to see you again." msgstr "こんにちは、また会えて嬉しいよ。" @@ -176749,6 +172817,10 @@ msgstr "こんにちは、また会えて嬉しいよ。" msgid "It's good to see you're still around." msgstr "君がまだ生きていて安心したよ。" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. I'm Dana, nice to see a new face." +msgstr "こんにちは、私はダナ。よろしくね、新入りさん。" + #: lang/json/talk_topic_from_json.py msgid "Dana, hey? Nice to meet you." msgstr "やあ、ダナ。会えて嬉しいよ。" @@ -176799,12 +172871,9 @@ msgstr "それは辛かっただろうな。" #: lang/json/talk_topic_from_json.py msgid "" -"I do a bit. I got a sourdough starter going almost as soon as I arrived, " -"and it's making passable bread already. I cooked some up yesterday " -"actually, I could probably trade a loaf of fresh bread for, say, about eight" -" cups of flour." -msgstr "" -"たまにね。到着してすぐサワー種スターターを手に入れて、まずまずのパンを焼いているよ。昨日もパンを焼いてみたんだ。8袋分の穀粉を持ってきてくれたら、焼き立てのパンと交換してあげよう。" +"Not since I last saw you, sorry. Come by in another day or two and I'll try" +" to keep a loaf set aside for you, but they disappear fast." +msgstr "悪いけど、まだ出来上がっていないんだ。ちゃんと取っておくけど、腐りやすいものだから1日か2日経ったらまた来てくれ。" #: lang/json/talk_topic_from_json.py msgid "" @@ -176814,9 +172883,12 @@ msgstr "8袋分の穀粉を持ってきてくれたら、パンと交換する #: lang/json/talk_topic_from_json.py msgid "" -"Not since I last saw you, sorry. Come by in another day or two and I'll try" -" to keep a loaf set aside for you, but they disappear fast." -msgstr "悪いけど、まだ出来上がっていないんだ。ちゃんと取っておくけど、腐りやすいものだから1日か2日経ったらまた来てくれ。" +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight" +" cups of flour." +msgstr "" +"たまにね。到着してすぐサワー種スターターを手に入れて、まずまずのパンを焼いているよ。昨日もパンを焼いてみたんだ。8袋分の穀粉を持ってきてくれたら、焼き立てのパンと交換してあげよう。" #: lang/json/talk_topic_from_json.py msgid "That sounds like a great deal, here's some flour for you." @@ -176838,12 +172910,6 @@ msgid "" msgstr "" "そう言ってくれると気が休まるよ。私は先に進めるよう精一杯頑張っている...辛いことだけど、世界規模で起きてることを考えれば、まだマシか。パブロと私は今も一緒に過ごせる。本当にありがたいことさ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " -"not too bad honestly. Everyone here seems to like it." -msgstr "ありがとう。うちの地元で有名な、未成熟のサワードウで作ったパンだ。正直、まあまあって感じの味だな。ここの人たちは気に入ってるみたい。" - #: lang/json/talk_topic_from_json.py msgid "" "Great, here's a loaf of the best damn sourdough bread in the world. I used " @@ -176866,6 +172932,12 @@ msgid "" "now." msgstr "世界で一番素晴らしいパンだ。あなたも私と同じくらい上機嫌になれることを願っているよ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "ありがとう。うちの地元で有名な、未成熟のサワードウで作ったパンだ。正直、まあまあって感じの味だな。ここの人たちは気に入ってるみたい。" + #: lang/json/talk_topic_from_json.py msgid "" "You seem pretty unhappy about the quality of your bread. Is there something" @@ -176897,6 +172969,10 @@ msgid "" msgstr "" "空気が張り詰めてるよ。望んで集まったわけじゃないから、実際に生活してみると気に入らない事もある。ジェニーとファティマは好きだし3人で仲良く過ごせることは嬉しいけど、狭いスペースに赤の他人が詰め込まれてるストレスが消えるわけじゃない。見てな、そのうち殺し合いでも起きるんじゃないかな。" +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "農園から戻ってきた人から仕事について聞いたか?" + #: lang/json/talk_topic_from_json.py msgid "" "Huh. I've made a few friends here, but not so much as I'd stick around here" @@ -176905,10 +172981,6 @@ msgid "" msgstr "" "ああ。ここで何人か友達はできたけど、下の階の誰かが死んで代わりに私が入れることを願ってばかりじゃ将来の展望もないし、ずっと居座ることもないね。労働者を募集してるなら、手を上げてみようかな。" -#: lang/json/talk_topic_from_json.py -msgid "Have you heard anything back from the ranch about jobs yet?" -msgstr "農園から戻ってきた人から仕事について聞いたか?" - #: lang/json/talk_topic_from_json.py msgid "" "I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " @@ -176947,16 +173019,16 @@ msgid "" msgstr "" "パブロは私より先に決断したんだ。実は、子供を作ろうと思っててね?こんな状況で常識外れかもしれないけど、一度決めたことは変えないよ。もしあなたの作る拠点に医者や医療施設があるなら、私が実際にまた妊娠できた時は、そちらに移住を申し込もうかと思っているんだ。" +#: lang/json/talk_topic_from_json.py +msgid "Always good to see you, friend." +msgstr "友よ、また会えて嬉しいぞ。" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, good to see another new face! Welcome to the center, friend, I'm " "Draco." msgstr "おや、新人に会えて嬉しいぞ!友よ、センターへようこそ。私はドラコだ。" -#: lang/json/talk_topic_from_json.py -msgid "Always good to see you, friend." -msgstr "友よ、また会えて嬉しいぞ。" - #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Draco." msgstr "はじめまして、ドラコ。" @@ -177197,15 +173269,15 @@ msgstr "何か手伝おうか?" msgid "Well then, I'll leave you here where it's safe." msgstr "それなら、安全なところに居続ければいい。" -#: lang/json/talk_topic_from_json.py -msgid "Man, just imagine what I could do with a new guitar." -msgstr "なぁ、新しいギターがあればどんな楽しいことが起こるか想像してみなよ。" - #: lang/json/talk_topic_from_json.py msgid "" "My savior! My patron of the arts! You're always welcome here, friend." msgstr "我が救世主よ!我が芸術のパトロンよ!いつでも歓迎するよ。" +#: lang/json/talk_topic_from_json.py +msgid "Man, just imagine what I could do with a new guitar." +msgstr "なぁ、新しいギターがあればどんな楽しいことが起こるか想像してみなよ。" + #: lang/json/talk_topic_from_json.py msgid "Let's talk about getting you that guitar." msgstr "ギターが欲しいって事について話そう。" @@ -177303,18 +173375,18 @@ msgstr "手伝おう。" msgid "Find somebody else, dude." msgstr "他の人を当たることにするよ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " -"up some Merch bucks for, say, five joints or joints-worth of the good stuff." -msgstr "素晴らしい!今日はツイてるな。さてと。取り引きできるのは...ジョイント5個かそれと同等のブツを渡してくれたら、マーチをいくらか支払おう。" - #: lang/json/talk_topic_from_json.py msgid "" "Yeah, no worries, though. I'm good at the moment. Ask me again later and " "maybe I'll have scrounged up some more cash for you." msgstr "ああ、でも心配しないで。今のところは大丈夫だ。もう少し資金を集めておくから、後でまた来てくれ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " +"up some Merch bucks for, say, five joints or joints-worth of the good stuff." +msgstr "素晴らしい!今日はツイてるな。さてと。取り引きできるのは...ジョイント5個かそれと同等のブツを渡してくれたら、マーチをいくらか支払おう。" + #: lang/json/talk_topic_from_json.py msgid "You have yourself a deal. Here's the marijuana." msgstr "よし乗った。マリファナを渡すよ。" @@ -177363,12 +173435,6 @@ msgstr "どうやってこのセンターにたどり着いたんだ?" msgid "Is there anything I can do to help you out?" msgstr "何か手伝えることはあるか?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " -"meet new people but there are no beds to share." -msgstr "おっ、よぉ、新顔だな。私はファティマだ。ここには立ち寄っただけだよな?新たな出会いは嬉しいけど、ベッドはもうないよ。" - #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "また会ったな。" @@ -177381,6 +173447,12 @@ msgstr "無事なようで安心したよ。" msgid "Oh, hi." msgstr "おや、どうも。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "おっ、よぉ、新顔だな。私はファティマだ。ここには立ち寄っただけだよな?新たな出会いは嬉しいけど、ベッドはもうないよ。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you too, Fatima. I'm just passing through." msgstr "こちらこそよろしく、ファティマ。私はただの通りすがりだ。" @@ -177447,10 +173519,6 @@ msgid "" msgstr "" "緊張してる。自分の技能を活かせる仕事が見つかるか、静かに祈る場所があれば、もう少し穏やかに過ごせるんだけどね。公共のスペースで祈るのはちょっと照れ臭いんだ。ジェニーが私の技能を役立てられるプロジェクトがあるって話してくれたけど、外に出るのはどうしても緊張するな。" -#: lang/json/talk_topic_from_json.py -msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." -msgstr "やあ、やあ。私はギャリー、ギャリー・ビルヌーブだ。" - #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "ああ、こんにちは。" @@ -177459,6 +173527,10 @@ msgstr "ああ、こんにちは。" msgid "Good to see you again." msgstr "また会えて嬉しいよ。" +#: lang/json/talk_topic_from_json.py +msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." +msgstr "やあ、やあ。私はギャリー、ギャリー・ビルヌーブだ。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Garry." msgstr "はじめまして、ギャリー。" @@ -177524,12 +173596,6 @@ msgid "" msgstr "" "緊張した空気だが、よく分からない。スタンとボリスと私の3人で固まっているからね。他の人達とも交流した方が良いとは思うんだけどね。センターでの滞在は一時的なものだと思っていたが、もっと長く過ごすことになる気がしてきているんだ。まぁ、長生きできればの話だけど。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " -"call me Gunny." -msgstr "おや、こんにちは。初めて会う人だな。私はグニート、皆からはガニーと呼ばれているよ。" - #: lang/json/talk_topic_from_json.py msgid "Hi." msgstr "やあ。" @@ -177538,6 +173604,12 @@ msgstr "やあ。" msgid "Hey again." msgstr "やあ、また会ったな。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " +"call me Gunny." +msgstr "おや、こんにちは。初めて会う人だな。私はグニート、皆からはガニーと呼ばれているよ。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Gunny." msgstr "はじめまして、ガニー。" @@ -177586,15 +173658,15 @@ msgid "" msgstr "" "ここに閉じ込められてる、そうとしか言いようがないよ。ターバンを巻いて内輪で仲良くしてる私たちには、誰も話しかけようとしない。複数で固まってるから、大丈夫だと思ってるんだろうね。パパも同じ考え。ママは決めかねてる感じかな。" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you again." +msgstr "また会えて嬉しいよ。" + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." msgstr "こんにちは。あなたと喋るのは初めてかな。私はジェニー、ジェニー・フォセッテだ。" -#: lang/json/talk_topic_from_json.py -msgid "Nice to see you again." -msgstr "また会えて嬉しいよ。" - #: lang/json/talk_topic_from_json.py msgid "Nice meeting you. What are you doing on that computer?" msgstr "初めまして。ノートPCで何をしているんだ?" @@ -177753,16 +173825,6 @@ msgid "" msgstr "" "状況は悪くなってる。何か月もここにいるけど、何も変わらないし、改善していない。外に出られないし、十分な食料もないし、お互いに話もしない。どれだけこの状態で過ごせるのか、いつ誰かが耐えきれなくなるのか、私には分からないよ。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a bunch of us. We're starting to form a bit of a community. " -"Fatima and I work together a fair bit, and I've been hanging out with Dana, " -"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " -"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " -"What did you want to know?" -msgstr "" -"うーん、仲良くはなってきたかな。共同体ができ始めた気がする。ファティマとはよく仕事をするし、ダナ、ドラコ、アリーシャとは一緒に過ごすことが多いね。ボリシェンコ一家やシン一家の人たち、ヴァネッサ、ホェン、ライサーは良く知らないけど、話くらいはするかな。何か知りたいことはある?" - #: lang/json/talk_topic_from_json.py msgid "" "For better or worse, we're a community now. Fatima and I work together a " @@ -177776,6 +173838,16 @@ msgid "" msgstr "" "良くも悪くも、共同体が出来上がってきたよ。ファティマとは頻繁に仕事をするようになったし、ダナ、ドラコ、アリーシャとは友達になった。もちろんダナのご主人のペドロもね。ボリシェンコ一家は、この混乱で心に傷を負ってるみたい。ここにいる皆がそうだけどね。シン一家とも交流はあるけど、家族だけで過ごしてることが多いかな。ヴァネッサとは目も合わせないけど、今もここにいてくれて嬉しいと思ってる。ホェンとライサーは聞こえよがしにどちらがリーダーに相応しいか言い争ってる。何か聞きたいことはある?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" +"うーん、仲良くはなってきたかな。共同体ができ始めた気がする。ファティマとはよく仕事をするし、ダナ、ドラコ、アリーシャとは一緒に過ごすことが多いね。ボリシェンコ一家やシン一家の人たち、ヴァネッサ、ホェン、ライサーは良く知らないけど、話くらいはするかな。何か知りたいことはある?" + #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" msgstr "自由商人について教えて?" @@ -177844,15 +173916,6 @@ msgid "" msgstr "" "ええと、ダナはの直後に、バスの横転事故に遭って、自分自身は運よく生還できたけど赤ちゃんを亡くされたの。彼女とペドロのここでの暮らしは大変なものだったと思うよ。意気投合して友人になれたのは、私にとってもすごく嬉しい事だった。ご主人のペドロは今も塞ぎ込んでる。ペドロは無口だけど良い人だし、打ち解けるとすごく陽気な人だよ。ドラコは気難しい意地悪爺さんだけど、実際はそんなにいい年じゃなくて、あと20年は生きるだろうね。気難しい人は嫌いじゃないよ。音楽の好みも似てるし。アリーシャは素敵な子。皆と仲良くなってたけど、彼女と一番仲が良いのは私かダナかな。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Boris and Garry are married, I guess. They kinda keep to themselves, they " -"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" -" I'm not totally sure. He seems nice enough, but he's a man of few words. " -"I can't get a good bead on them. I've learned not to pry too much though." -msgstr "" -"ボリスとギャリーは確か結婚してたと思う。3人はいつも一緒にいて、何と言うか、ちょっと孤立してるみたいだな。スタンとボリスは兄弟だと思うけど、はっきりとは分からないや。良い人だとは思うけど、口数は少ないね。3人のことはよく分からない。無暗に詮索しない方がいいと思ってるよ。" - #: lang/json/talk_topic_from_json.py msgid "" "I didn't get to know Boris, Garry, and Stan so well for the first while. " @@ -177866,12 +173929,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I really can't get a bead on them. They never really talk to anyone outside" -" of their little family group, they just sit in their own spot and speak " -"Punjabi. They always seem nice, and they do their share, they just don't " -"have any social connection." +"Boris and Garry are married, I guess. They kinda keep to themselves, they " +"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" +" I'm not totally sure. He seems nice enough, but he's a man of few words. " +"I can't get a good bead on them. I've learned not to pry too much though." msgstr "" -"あの一家とは全然親しくなれないんだ。家族以外の人間としっかり話すことは決してないし、いつも定位置に座ってパンジャーブ語で会話している。いつも楽しそうにしているし、与えられた仕事はこなすけど、社会的な繋がりはないんだよね。" +"ボリスとギャリーは確か結婚してたと思う。3人はいつも一緒にいて、何と言うか、ちょっと孤立してるみたいだな。スタンとボリスは兄弟だと思うけど、はっきりとは分からないや。良い人だとは思うけど、口数は少ないね。3人のことはよく分からない。無暗に詮索しない方がいいと思ってるよ。" #: lang/json/talk_topic_from_json.py msgid "" @@ -177885,16 +173948,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " -"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " -"both seem to want to run the show here, but I try to stay out of those " -"politics and just focus on building stuff. I don't see much good coming of " -"it. Alonso is fine, he's clearly interested in me, and also in every other " -"single woman here. Not my thing, in a group this small. John is a walking " -"stereotype, I imagine there must be more depth to him, but I haven't seen it" -" yet." +"I really can't get a bead on them. They never really talk to anyone outside" +" of their little family group, they just sit in their own spot and speak " +"Punjabi. They always seem nice, and they do their share, they just don't " +"have any social connection." msgstr "" -"ヴァネッサは...そう、良い人、だと思う。私をキレさせることはあるけど、一緒に生活してるんだから、あまり苛つかないように気を付けてる。ホェンとライサーはここの運営をやりたがってるみたいだけど、私は政治的な話に関わらず建築資材の事だけ考えるようにしてる。政治の話で何かが改善するとは思えないからね。アロンソは良い人だけど、明らかに私に好意を寄せてる。ここにいる他のあらゆる独身女性にも。こんな小さな集団だと、ちょっと遠慮したいね。ジョンは偏見の塊。彼にも色々あるんだとは思うけど、まだ詳しくは知らないな。" +"あの一家とは全然親しくなれないんだ。家族以外の人間としっかり話すことは決してないし、いつも定位置に座ってパンジャーブ語で会話している。いつも楽しそうにしているし、与えられた仕事はこなすけど、社会的な繋がりはないんだよね。" #: lang/json/talk_topic_from_json.py msgid "" @@ -177911,13 +173970,26 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." -msgstr "やぁ友よ。私はクレメンス、ジョン・クレメンスだ。くたびれたカウボーイさ。" +"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " +"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " +"both seem to want to run the show here, but I try to stay out of those " +"politics and just focus on building stuff. I don't see much good coming of " +"it. Alonso is fine, he's clearly interested in me, and also in every other " +"single woman here. Not my thing, in a group this small. John is a walking " +"stereotype, I imagine there must be more depth to him, but I haven't seen it" +" yet." +msgstr "" +"ヴァネッサは...そう、良い人、だと思う。私をキレさせることはあるけど、一緒に生活してるんだから、あまり苛つかないように気を付けてる。ホェンとライサーはここの運営をやりたがってるみたいだけど、私は政治的な話に関わらず建築資材の事だけ考えるようにしてる。政治の話で何かが改善するとは思えないからね。アロンソは良い人だけど、明らかに私に好意を寄せてる。ここにいる他のあらゆる独身女性にも。こんな小さな集団だと、ちょっと遠慮したいね。ジョンは偏見の塊。彼にも色々あるんだとは思うけど、まだ詳しくは知らないな。" #: lang/json/talk_topic_from_json.py msgid "Howdy, pardner." msgstr "やぁ友よ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +msgstr "やぁ友よ。私はクレメンス、ジョン・クレメンスだ。くたびれたカウボーイさ。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, John." msgstr "はじめまして、ジョン。" @@ -177974,11 +174046,11 @@ msgstr "" "人間ってのは、青空を見られない日がずっと続くと嫌になってくるもんだ。牛舎のウシみたいに窮屈で...自由に駆け回れる牧草地が必要だ、言ってる意味分かるだろ。このままだと、空気が緊張するばかりだ。" #: lang/json/talk_topic_from_json.py -msgid "Hello ma'am. I am Mandeep Singh." +msgid "Hello sir. I am Mandeep Singh." msgstr "こんにちは。私はマンディープ・シンです。" #: lang/json/talk_topic_from_json.py -msgid "Hello sir. I am Mandeep Singh." +msgid "Hello ma'am. I am Mandeep Singh." msgstr "こんにちは。私はマンディープ・シンです。" #: lang/json/talk_topic_from_json.py @@ -178022,10 +174094,6 @@ msgid "" msgstr "" "何とも言えないね。ここに幸福な人はいない。私とその家族が無傷で危機を脱したことに不満を感じている者すらいる。そんな雰囲気になっているから、ここで親友を作り辛いんだろうな。" -#: lang/json/talk_topic_from_json.py -msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." -msgstr "あら!見ない顔ね。失礼、私はマンガルプリートです。" - #: lang/json/talk_topic_from_json.py msgid "Hi there." msgstr "やあ。" @@ -178034,6 +174102,10 @@ msgstr "やあ。" msgid "Oh, hello there." msgstr "おっ、やあ。" +#: lang/json/talk_topic_from_json.py +msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." +msgstr "あら!見ない顔ね。失礼、私はマンガルプリートです。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Mangalpreet." msgstr "はじめまして、マンガルプリート。" @@ -178239,15 +174311,15 @@ msgstr "" msgid "What brings you around here? We don't see a lot of new faces." msgstr "どうやってここへ来たんだ?新顔なんて珍しいな。" +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "話す必要があるのか?" + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." msgstr "やあ。初めて会う人だな。私はライサー、皆からはライと呼ばれているよ。" -#: lang/json/talk_topic_from_json.py -msgid "Need to talk?" -msgstr "話す必要があるのか?" - #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Rhy." msgstr "はじめまして、ライ。" @@ -178340,12 +174412,6 @@ msgstr "" msgid "Do you want to talk about your story?" msgstr "あなたの話を聞かせてもらえるか?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " -"Stan." -msgstr "こんにちは。すまない、前から知り合いだったとしても、まったく覚えていないんだ。私の名前はスタンだ。" - #: lang/json/talk_topic_from_json.py msgid "Hm? Oh, hi." msgstr "うん?おや、どうも。" @@ -178354,6 +174420,12 @@ msgstr "うん?おや、どうも。" msgid "...Hi." msgstr "...やあ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " +"Stan." +msgstr "こんにちは。すまない、前から知り合いだったとしても、まったく覚えていないんだ。私の名前はスタンだ。" + #: lang/json/talk_topic_from_json.py msgid "Stan, hey? Nice to meet you." msgstr "スタンっていうのか?会えて嬉しいよ。" @@ -178467,16 +174539,16 @@ msgstr "ううん、ちょっと髪型をかえてもらえるかな?" msgid "Hmm, can we change this shave a little please?" msgstr "ううん、ちょっと顔剃りをしてもらえるかな?" +#: lang/json/talk_topic_from_json.py +msgid "Oh, you're back." +msgstr "ああ、戻ってきたのか。" + #: lang/json/talk_topic_from_json.py msgid "" "Oh, great. Another new mouth to feed? Just what we need. Well, I'm " "Vanessa." msgstr "おいおい。また新入りが飯を求めてやって来たのか?こっちもギリギリなんだよ。ああ、私はヴァネッサ。" -#: lang/json/talk_topic_from_json.py -msgid "Oh, you're back." -msgstr "ああ、戻ってきたのか。" - #: lang/json/talk_topic_from_json.py msgid "I'm not a new mouth to feed, but nice to meet you too." msgstr "食料が目的ではないが、会えて嬉しいよ。" @@ -178513,15 +174585,6 @@ msgstr "このふざけた状態になる前の話はしたくないんだ。慰 msgid "Could you give me a haircut?" msgstr "散髪してもらえるかな?" -#: lang/json/talk_topic_from_json.py -msgid "" -"You want the sarcastic version, or the really sarcastic version? I'm stuck " -"in a dank shitty brick building with two dozen strangers, the world's dead, " -"and there's not enough food to go around. Why don't you fuckin' figure it " -"out?" -msgstr "" -"皮肉を込めた言い方と、皮肉をたっぷり込めた言い方、どっちがいい?私は2ダースもの見知らぬ人が住むレンガ造りの劣悪な建物で立ち往生しており、世界中で死人がうろつき、周りに十分な食料はない。このクソな状況を理解できないの?" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I'm stuck in a dank shitty brick building with two dozen strangers, " @@ -178531,6 +174594,15 @@ msgid "" msgstr "" "さてと、私は2ダースもの見知らぬ人が住むレンガ造りの劣悪な建物で立ち往生しており、世界中で死人がうろつき、周りに十分な食料はない。少なくとも私は忙しく働いていられるし、マーチに余裕が出たら十分な食料も確保できる。人間は散髪が好きだからね。" +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" +"皮肉を込めた言い方と、皮肉をたっぷり込めた言い方、どっちがいい?私は2ダースもの見知らぬ人が住むレンガ造りの劣悪な建物で立ち往生しており、世界中で死人がうろつき、周りに十分な食料はない。このクソな状況を理解できないの?" + #: lang/json/talk_topic_from_json.py msgid "" "I can see you need one, but last time I used these shears it was to stab a " @@ -178714,6 +174786,12 @@ msgid "" msgstr "" "ああ、状況は厳しい。ここへ最初に来たときは監督者が誰もおらず、私たちが世話できる以上の人員を受け入れることになった。事態がいくらか収集して我々が小さなグループを形成した頃には、落ち着く場所も確保できない避難民たちが全員階上で順番を待っていた。多少の空間は用意したが、理想には程遠い。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "そうしよう。どんな手を使って彼らに退去を認めさせたのか知らないが、自由商人も私自身も、感謝しているよ。" + #: lang/json/talk_topic_from_json.py msgid "" "Even once we got things sorted out, there weren't enough beds for everyone, " @@ -178722,12 +174800,6 @@ msgid "" msgstr "" "いくら事態が片付いても、全員分のベッドも足りないし、物資も不十分だ。耐えるしかない。私たちもできる限りのことはしている...少なくとも避難場所は提供した。" -#: lang/json/talk_topic_from_json.py -msgid "" -"I do. I don't know what you did to convince them to move out, but our " -"supply chain and I both thank you. I hope it wasn't too unseemly." -msgstr "そうしよう。どんな手を使って彼らに退去を認めさせたのか知らないが、自由商人も私自身も、感謝しているよ。" - #: lang/json/talk_topic_from_json.py msgid "" "Well, there's the downstairs section, we can't fit more people down there so" @@ -179086,14 +175158,14 @@ msgstr "痛い目に遭うのが嫌なら大人しくしていろ。" msgid "Just on watch, move along." msgstr "見張りをしてるだけだ、どっか行け。" -#: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "お嬢さん、外をうろつくは止めた方が身の為だよ。" - #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" msgstr "外は大混乱のようだな?" +#: lang/json/talk_topic_from_json.py +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "お嬢さん、外をうろつくは止めた方が身の為だよ。" + #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center…" msgstr "ここが避難センターだと聞いたんだが..." @@ -179122,14 +175194,14 @@ msgstr "人手が必要なようだな..." msgid "Well, I'd better be going. Bye." msgstr "ええと、そろそろ行くよ。さようなら。" -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "ようこそ..." - #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." msgstr "ようこそ、執行官..." +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "ようこそ..." + #: lang/json/talk_topic_from_json.py msgid "" "Before you say anything else, we're full. We don't have the space, nor the " @@ -179370,14 +175442,14 @@ msgid "" msgstr "" "残念ながら、無理だ。農園へ行った人の大部分は上階で待機していた避難民だ。安全な寝床を待つよりもリスクが少ないからな。地下から出ていったのはほんの少しだし、元から混雑した状態だったからな。もっとたくさんの人が太陽や新鮮な空気、重労働を求めて牧場に向かってくれるといいが...知ってるだろうが、みんなゾンビの大群に襲われるのが怖いんだ。" -#: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "市民..." - #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "執行官..." +#: lang/json/talk_topic_from_json.py +msgid "Citizen..." +msgstr "市民..." + #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" msgstr "物資の取引はできる?" @@ -179435,14 +175507,14 @@ msgid "" "buy from you. I don't suppose you want to donate?" msgstr "できないよ。物を売れるほど余裕はないし、何かを買う予算もない。寄付だったら受け付けてるよ?" -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "ふん、ただ者ではないらしいな。" - #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "ピカピカのバッジを手に入れたようだな!" +#: lang/json/talk_topic_from_json.py +msgid "Heh, you look important." +msgstr "ふん、ただ者ではないらしいな。" + #: lang/json/talk_topic_from_json.py msgid "I'm actually new." msgstr "新入りだ。" @@ -179514,16 +175586,16 @@ msgid "" msgstr "" "さあね。仕事を手伝える人間なら大丈夫なんじゃないか。でも今じゃ確実なことなんて一つもないからな。人によって言うことは違う。例えばそこの商人、売り物がないなら出て行けという態度だったが...そうじゃない奴もいるようだ。" -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate… mutations. This was an accident." -msgstr "シー。ここの連中の中にはよく思っていないやつもいるんだ... 変異をな。これは事故だったんだ。" - #: lang/json/talk_topic_from_json.py msgid "" "Same way you got yours, I bet. Keep quiet about it, some people here look " "down on people like us." msgstr "君と同じ、自業自得ってやつさ。このことは口外するなよ、ここの連中の中には我々のような人間を見下す者もいる。" +#: lang/json/talk_topic_from_json.py +msgid "Ssh. Some people in here hate… mutations. This was an accident." +msgstr "シー。ここの連中の中にはよく思っていないやつもいるんだ... 変異をな。これは事故だったんだ。" + #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" msgstr "悪いことを尋ねてしまったな。" @@ -179551,22 +175623,22 @@ msgid "" "trade?" msgstr "調達してきてくれた硝酸アンモニウムを使って、いいものを作ったんだ。取り引きするか?" -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "くたばりやがれ!" - #: lang/json/talk_topic_from_json.py msgid "As if you're one to talk. Screw You." msgstr "口のきき方を考えろ。くたばれ。" #: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "はん、新入り臭いのがいるな。何か助けが必要か?" +msgid "Screw You!" +msgstr "くたばりやがれ!" #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest… please don't arrest me." msgstr "なんか豚くせぇな。冗談だよ...逮捕しないでくれ。" +#: lang/json/talk_topic_from_json.py +msgid "Huh, thought I smelled someone new. Can I help you?" +msgstr "はん、新入り臭いのがいるな。何か助けが必要か?" + #: lang/json/talk_topic_from_json.py msgid "You… smelled me?" msgstr "...臭うかい?" @@ -179849,16 +175921,6 @@ msgstr "よろしい、あんたがボスだ。" msgid "Glad to have you aboard." msgstr "よろしくな。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Hold there. I don't care how you got access to this location, but you are " -"coming no further. Go away." -msgstr "動くな。どうやってここに入ったのか知らないが、それ以上近づくな。帰ってくれ。" - -#: lang/json/talk_topic_from_json.py -msgid "We haven't changed our mind. Go away." -msgstr "考えは変わらない。帰ってくれ。" - #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" msgstr "なんだ、何か用か?" @@ -179939,6 +176001,16 @@ msgstr "もう一回言って?" msgid "If/you speak to/understand… you/me. Yes?" msgstr "もし...あなたの話...理解する...あなた...わたし。分かる?" +#: lang/json/talk_topic_from_json.py +msgid "We haven't changed our mind. Go away." +msgstr "考えは変わらない。帰ってくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hold there. I don't care how you got access to this location, but you are " +"coming no further. Go away." +msgstr "動くな。どうやってここに入ったのか知らないが、それ以上近づくな。帰ってくれ。" + #: lang/json/talk_topic_from_json.py msgid "Wait! What??" msgstr "待って!何だって??" @@ -180220,14 +176292,6 @@ msgstr "悪いけど、そんな暇はないんだ。" msgid "Keep it civil, merc." msgstr "大人しくしていろよ。" -#: lang/json/talk_topic_from_json.py -msgid "Here to trade, I hope?" -msgstr "取り引きするかい?" - -#: lang/json/talk_topic_from_json.py -msgid "Safe travels, scavenger." -msgstr "お気を付けて、スカベンジャー。" - #: lang/json/talk_topic_from_json.py msgid "" "Still plenty of outlaws in the roads, perhaps you should tend to your job, " @@ -180243,12 +176307,12 @@ msgid "Oh, a U.S. marshal, how quaint." msgstr "ああ、連邦執行官か。乙だねぇ。" #: lang/json/talk_topic_from_json.py -msgid "" -"We have been supplying this lab here with food from a few hunting and " -"farming communities nearby. The roads are though and dangerous, but it " -"makes good money, and beats scavenging the cities for scraps." -msgstr "" -"私たちは、研究所の近くにあるハンターや農家のコミュニティから食料の供給を受けてきた。路上は危険だが、金になる物はあるし、都市部でガラクタを集めて回るよりもいい。" +msgid "Here to trade, I hope?" +msgstr "取り引きするかい?" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "お気を付けて、スカベンジャー。" #: lang/json/talk_topic_from_json.py msgid "" @@ -180256,6 +176320,14 @@ msgid "" "fair deal?" msgstr "私は私の仕事を続け、あなたはあなたの仕事を続ける。執行官、これは公正な取り引きでしょう?" +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" +"私たちは、研究所の近くにあるハンターや農家のコミュニティから食料の供給を受けてきた。路上は危険だが、金になる物はあるし、都市部でガラクタを集めて回るよりもいい。" + #: lang/json/talk_topic_from_json.py msgid "Keep safe, then." msgstr "では、おたっしゃで。" @@ -180474,16 +176546,16 @@ msgid "I'll talk with them then…" msgstr "じゃあ彼らと話してみるよ..." #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "どうも、お嬢さん。何か用かい?" +msgid "Can I help you, marshal?" +msgstr "御用ですか? 執行官。" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" msgstr "どうも、旦那。何か用かい?" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "御用ですか? 執行官。" +msgid "Morning ma'am, how can I help you?" +msgstr "どうも、お嬢さん。何か用かい?" #: lang/json/talk_topic_from_json.py msgid "" @@ -180590,14 +176662,14 @@ msgstr "何か頼みたい仕事はあるか?" msgid "Not now." msgstr "今はいい。" -#: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." -msgstr "あなたやお仲間が怪我をしているなら私が診るよ。" - #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." msgstr "出直してくれるか、今は手が離せないんだ。" +#: lang/json/talk_topic_from_json.py +msgid "I can take a look at you or your companions if you are injured." +msgstr "あなたやお仲間が怪我をしているなら私が診るよ。" + #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." msgstr "[$200, 30分] 手当てしてくれ。" @@ -180868,10 +176940,6 @@ msgid "" msgstr "" "ここでは取り引きに暗号通貨を使う。私たちは大変動前から電子的な通貨を作っていて、将来的には仮想通貨を流通させるつもりだったんだ。今使ってるこれは物理的な硬貨、一種のジョークだ。いつの日か、インターネットを取り戻してみせるよ。" -#: lang/json/talk_topic_from_json.py -msgid "New test subjects! I'm so glad you showed up!" -msgstr "新たな被験体か!来てくれて嬉しいよ!" - #: lang/json/talk_topic_from_json.py msgid "What did you bring me?" msgstr "何か持ってきたのか?" @@ -180880,6 +176948,10 @@ msgstr "何か持ってきたのか?" msgid "Do you smell something?" msgstr "妙な臭いがするな?" +#: lang/json/talk_topic_from_json.py +msgid "New test subjects! I'm so glad you showed up!" +msgstr "新たな被験体か!来てくれて嬉しいよ!" + #: lang/json/talk_topic_from_json.py msgid "How did you get here?" msgstr "どうやってここに来たんだ?" @@ -180953,6 +177025,208 @@ msgstr "自分の研究室を用意してもらって以来、研究を非常に msgid "This is not reassuring." msgstr "それはそれで心配だ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more" +" fearsome enforcer." +msgstr "私は企業連合から金をもらって、実験的な手術を受けたんだ。より恐ろしい兵隊になるためにね。" + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "どんな経緯でここへ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "遺伝子改造手術を受けた人のうち半数が死んだ。でも、今は総人口の90%が死んでるんだろう?" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "もっと話を聞かせてもらえないか?" + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "常軌を逸した者だけが生き残るってことだ。" + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "その後どうなったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided" +" to use tactical nukes and buy time for the retreat." +msgstr "政府は都市地下層区画を救うのを諦め、撤退の時間を稼ぐために戦術核を使うことが決まったんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "ゾンビ共がうろつく街に大穴が空いて、そこから脱出できた。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "すべての選択には結果が伴う。でも、それが生き残る唯一の方法なら、どんな結果でも受け止められるよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "何か大変な事が起きてすべてが壊れたとき、私は原子炉で働いていた。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "数十万人の死を回避するため、私は同僚と共に格納容器の圧力を急激に上昇させた。" + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "どうせ他の労働者は全員死んでるだろうな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that" +" were happening in the city, they were beneath me." +msgstr "" +"昔は良かった。私は財閥系企業で働いていたんだ。尊敬されていたし、進んで協力してくれる者も多かった。街で起きている変化なんて、下層民にしか関係ないと無視していたよ。" + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "それで、何が起きた?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security" +" notices piled up about routes through the city to avoid. Finally, one day " +"I came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" +"ある日、箱型のドローンがゆっくりとオフィスに入ってきて、街中の道路についてのセキュリティ通知を山ほど残していった。数日後に私が出社したとき、暴動のような音が近づいてきた。何か巨大な、動物のような吠え声が聞こえてきたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only" +" chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" +"そして次の日、警備員と研究員が地下の研究所から上がってきて、残っていたスタッフを呼び集めた。これが生き残る唯一の道だと言っていた。そして私たちに銃を突きつけ、注射を打ち始めたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "大変動が起きる前は、バイオハッカーをやっていた。医薬品や違法薬物、商標登録されたバイオ製品の密輸なんかをして生計を立てていたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "エイリアンの幹細胞を移植されていたんだ。気付いたときの驚きったらなかったね。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "そのお陰で生き延びられたんだ。変異しないという選択肢もあったんだろうか?" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "私は金持ちの話し相手として造られた存在だ。" + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "富と金を持っている人間でも、命は助からなかったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"But they built me with the ability to survive a world beyond imagining." +msgstr "でも金持ちのお陰で、世界を生き抜く素晴らしい能力を手に入れることができた。" + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "では、どうしてここに?" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "保養地では、私のような知性生物がたくさん造られたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "大変動が来たとき、人里離れた土地に私たちだけの村を作るべきだったな。" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "結局は、そうなったんだけどね。ハハ。" + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "どうしてそうしなかったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "私は医者がいる島で育った。" + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "私にはたくさんの兄弟姉妹がいた。" + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "私たちはその医者を食べた。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "動物園が、私の原種と人間である研究者とを繋ぐように私をデザインしたんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "大変動が起きたとき、私は動物園にいた。多くの動物が感染していた。" + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "ゾンベアーは破壊的な恐ろしい怪物だ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked" +" for the government or a corporation." +msgstr "私は民兵の秘密作戦部隊の一員だった。勤め先が国だったのか企業だったのか、未だに分からないな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "私のチームは射撃任務で研究所に送られた。そこで見た者は、今も脳裏に焼き付いているよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come" +" back." +msgstr "他にも生き残りはいるかもしれないが、正直疑わしいな。ゾンビになっていないことを祈ってるよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "私は培養槽で育った、たぶん男だ。マクベスで言えばマクダフだな。旧世界の産物さ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons" +" afraid of mutants." +msgstr "今では、私が人間かどうか判定する人自体が少ないね。中には変異体を恐れるバカもいるが。" + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "そして、自分が行くべき道を選んだってわけ。" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "やぁ、スカベンジャー。" @@ -181045,14 +177319,14 @@ msgstr "祝福あれ。平穏を妨げるものは一掃しよう。" msgid "I must purge this place before I can move on." msgstr "他の場所へ行く前に、この場所を清めなければ。" -#: lang/json/talk_topic_from_json.py -msgid "Huh? *mumble mumble* … Who are you?" -msgstr "あ?*モゴモゴ*...誰だ?" - #: lang/json/talk_topic_from_json.py msgid "Oh, you again." msgstr "ああ、またお前か。" +#: lang/json/talk_topic_from_json.py +msgid "Huh? *mumble mumble* … Who are you?" +msgstr "あ?*モゴモゴ*...誰だ?" + #: lang/json/talk_topic_from_json.py msgid "I'm busy, what is it?" msgstr "忙しいのだ、何か用か?" @@ -181061,14 +177335,14 @@ msgstr "忙しいのだ、何か用か?" msgid "And leave my tower and all my research? I think not." msgstr "我が塔と我が研究を置いてか?そうはいかない。" -#: lang/json/talk_topic_from_json.py -msgid "Do you seek power as well?" -msgstr "君も力を求めているのか?" - #: lang/json/talk_topic_from_json.py msgid "Ah, hello again." msgstr "ああ、また会ったな。" +#: lang/json/talk_topic_from_json.py +msgid "Do you seek power as well?" +msgstr "君も力を求めているのか?" + #: lang/json/talk_topic_from_json.py msgid "Yes, yes… *electrical crackling* Isn't it beautiful?" msgstr "やあ、やあ...*電気が爆ぜる音*...美しいだろう?" @@ -182660,8 +178934,8 @@ msgid " hack at %s with a vicious strike" msgstr "は%sに勢いよく切り込みました。" #: lang/json/technique_from_json.py -msgid "Deathblow" -msgstr "致命の一撃" +msgid "Mordhau" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -183332,65 +179606,65 @@ msgid " smashes %s with a pressurized slam" msgstr "は圧縮空気と共に拳を%sに叩き込みました。" #: lang/json/technique_from_json.py -msgid "Shimmer Flurry" -msgstr "疾風斬" +msgid "Tipped Intent" +msgstr "関節突き" #: lang/json/technique_from_json.py #, python-format -msgid "You release a blindingly fast slash at %s" -msgstr "目にも止まらぬ斬撃を%sに繰り出しました。" +msgid "You quickly jab your weapon at %s" +msgstr "武器で%sを素早く突きました。" #: lang/json/technique_from_json.py #, python-format -msgid " slashes at %s" -msgstr "は目にも止まらぬ斬撃を%sに繰り出しました。" +msgid " quickly jabs their weapon at %s" +msgstr "は武器で%sを素早く突きました。" #: lang/json/technique_from_json.py -msgid "Tipped Intent" -msgstr "関節突き" +msgid "Shimmer Flurry" +msgstr "疾風斬" #: lang/json/technique_from_json.py #, python-format -msgid "You swiftly jab your weapon at %s" -msgstr "武器で%sを素早く突きました。" +msgid "" +"You release a blindingly fast low slash at %s and topple them off balance" +msgstr "目にも止まらぬ地面すれすれの斬撃を%sに放ち、転倒させました。" #: lang/json/technique_from_json.py #, python-format -msgid " swiftly jabs their weapon at %s" -msgstr "は武器で%sを素早く突きました。" +msgid " slashes at %s and shoves them down" +msgstr "は目にも止まらぬ斬撃を%sに放ち、転倒させました。" #: lang/json/technique_from_json.py -msgid "Decisive Blow" -msgstr "一点突破" +msgid "Mirage Slash" +msgstr "陽炎斬り" #: lang/json/technique_from_json.py #, python-format -msgid "You release a debilitating swipe at %s" -msgstr "目にも止まらぬ猛攻を%sに繰り出しました。" +msgid "" +"You hold your blade taut, and then launch a piercing slash on %s's top half" +msgstr "刃を引き絞り、%sの上半身を貫く鮮烈な斬撃を繰り出しました。" #: lang/json/technique_from_json.py #, python-format -msgid " releases a debilitating swipe at %s" -msgstr "は目にも止まらぬ猛攻を%sに繰り出しました。" +msgid " lands a piercing blow on %s's face" +msgstr "は%sの顔面に鋭い刺突を繰り出しました。" #: lang/json/technique_from_json.py -msgid "End Slash" -msgstr "会心斬" +msgid "The Point" +msgstr "急所打ち" #: lang/json/technique_from_json.py #, python-format -msgid "" -"You envision the tension of a fully drawn bow and then launch a piercing " -"blow on %s's top half" -msgstr "張り詰めた弓の緊張が解き放たれる様を想起させる刺突を%sの上半身に繰り出しました。" +msgid "You drive your weapon down into %s's vulnerable center mass" +msgstr "武器を%sの中心部の急所に打ち込みました。" #: lang/json/technique_from_json.py #, python-format -msgid " lands a piercing blow on %s's face" -msgstr "は%sの顔面に鋭い刺突を繰り出しました。" +msgid " lands a deadly blow on %s's unguarded center mass" +msgstr "は守りが薄い%sの中心部に致命的な打撃を繰り出しました。" #: lang/json/technique_from_json.py -msgid "Harsh Reprimand" +msgid "Reprimand" msgstr "急所狙い" #: lang/json/technique_from_json.py @@ -183460,18 +179734,18 @@ msgid " swiftly impales their fingers into %s" msgstr "は%sの関節に素早く指を突き刺しました。" #: lang/json/technique_from_json.py -msgid "Joint Pain" -msgstr "関節狙い" +msgid "Shifting Feint" +msgstr "シフトフェイント" #: lang/json/technique_from_json.py #, python-format -msgid "You explosively jab your weapon at %s joints" -msgstr "%sの関節に武器を思い切り叩きつけました。" +msgid "You fake a quick strike toward %s" +msgstr "%sめがけて素早いフェイントを繰り出しました。" #: lang/json/technique_from_json.py #, python-format -msgid " explosively jabs at %s" -msgstr "は%sを思い切り叩きました。" +msgid " fakes a quick strike toward %s" +msgstr "は%sめがけて素早いフェイントを繰り出しました。" #: lang/json/technique_from_json.py msgid "Rapid Jab" @@ -183494,8 +179768,8 @@ msgstr "狙い撃ち" #: lang/json/technique_from_json.py #, python-format msgid "" -"You envision a gathering tempest in and then release it's energy on %s's top" -" half" +"You envision a gathering tempest and then release it's energy on %s's top " +"half" msgstr "掌から嵐が解き放たれるイメージを思い描きながら、%sの上半身に攻撃を繰り出しました。" #: lang/json/technique_from_json.py @@ -183547,10 +179821,9 @@ msgstr "狂化" #. ~ Description for BERSERK #: lang/json/technique_from_json.py msgid "" -"50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " -"reduces action cost and adds overall damage (S)" -msgstr "" -"行動コスト50%、与ダメージ: 打撃77%/斬撃77%/刺突77%、効果: 2ターン転倒、筋力(SS+)依存で行動コスト大幅減少、追加ダメージ(S)" +"50% AP cost, 77% DMG, Down (2), STR (SS) greatly reduces AP cost and adds " +"(S) DMG" +msgstr "行動コスト50%、与ダメージ77%(2)、筋力(SS)依存で行動コスト大幅減少と追加ダメージ(S)" #: lang/json/technique_from_json.py #, python-format @@ -183569,9 +179842,9 @@ msgstr "一掃" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py msgid "" -"15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," -" and adds a (A) damage bonus, min 4 melee" -msgstr "行動コスト15%、与ダメージ35%、円状に攻撃、筋力(SS+)依存で行動コスト減少、与ダメージボーナス(A)(近接戦闘4)" +"15% AP cost, 35% DMG, wide arc, STR (SS) reduces AP cost, and adds (A) DMG, " +"melee (4)" +msgstr "行動コスト15%、与ダメージ35%、筋力(SS)依存で行動コスト減少と追加ダメージ(A)、近接戦闘(4)" #: lang/json/technique_from_json.py #, python-format @@ -183590,11 +179863,10 @@ msgstr "一刀両断" #. ~ Description for BISECTION #: lang/json/technique_from_json.py msgid "" -"Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " -"reduces action cost and increases overall (B) damage, min 2 melee" +"Crit!, 35% AP cost, 115% DMG, STR (SS) and DEX (SS) reduces AP cost and PER " +"(B) adds DMG, melee (2)" msgstr "" -"会心時のみ発動、行動コスト35%、与ダメージ: " -"打撃105%/刺突105%/斬撃125%、器用(D)感覚(E)依存で行動コスト減少と与ダメージ増加(B)(近接戦闘2)" +"会心攻撃、行動コスト35%、与ダメージ115%、筋力(SS)と器用(SS)依存で行動コスト減少、感覚(B)依存で追加ダメージ、近接戦闘(2)" #: lang/json/technique_from_json.py #, python-format @@ -183608,10 +179880,8 @@ msgstr "の唐竹割りが%sに命中しました。" #. ~ Description for HOOK #: lang/json/technique_from_json.py -msgid "" -"85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " -"reduces action cost" -msgstr "行動コスト85%、与ダメージ: 打撃66%/斬撃76%/刺突86%、効果: 2ターン転倒、筋力(C)依存で行動コスト大幅減少" +msgid "85% AP, 88% DMG, Down (2), STR (C) reduces AP cost" +msgstr "行動コスト85%、与ダメージ: 88%(2)、筋力(C)依存で行動コスト減少" #: lang/json/technique_from_json.py #, python-format @@ -183625,9 +179895,9 @@ msgstr "慣性攻撃" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py msgid "" -"75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " -"and adds a (C) damage bonus, min 4 melee" -msgstr "行動コスト75%、与ダメージ60%、円状に攻撃、筋力(S)依存で行動コスト減少、与ダメージボーナス(C)(近接戦闘4)" +"75% AP, 60% DMG, WIDE AOE, STR (S) reduces AP cost, and adds a (C) DMG, " +"melee (4)" +msgstr "行動コスト75%、与ダメージ60%、範囲攻撃、筋力(S)依存で行動コスト減少と追加ダメージ(C)、近接戦闘(4)" #: lang/json/technique_from_json.py #, python-format @@ -183641,11 +179911,10 @@ msgstr "チョップ" #. ~ Description for CHOP #: lang/json/technique_from_json.py msgid "" -"Crit only, 118% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E)" -" reduces action cost and increases overall (B) damage, min 2 melee" +"CRIT!, 118% AP, 125% Cut/Stab, DEX (D) and PER (E) reduces AP cost and adds " +"(B) DMG, melee (2)" msgstr "" -"会心時のみ発動、行動コスト118%、与ダメージ: " -"打撃105%/刺突105%/斬撃125%、器用(D)感覚(E)依存で行動コスト減少と与ダメージ増加(B)(近接戦闘2)" +"会心攻撃、行動コスト125%、与ダメージ:斬撃/刺突125%、器用(D)と感覚(E)依存で行動コスト減少と追加ダメージ(B)、近接戦闘(2)" #: lang/json/technique_from_json.py #, python-format @@ -183659,11 +179928,9 @@ msgstr "粉砕" #. ~ Description for SMASH #: lang/json/technique_from_json.py msgid "" -"Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " -"(D) reduces action cost and increases overall (C) damage, min 2 melee" -msgstr "" -"会心時のみ発動、行動コスト110%、与ダメージ: " -"打撃120%/刺突105%/斬撃110%、器用(C)筋力(D)依存で行動コスト減少と全体(C)与ダメージ増加(近接戦闘2)" +"CRIT!, 110% AP, 120% Bash, DEX (C) and STR (D) reduces AP cost and adds (C) " +"Arpen, melee (2)" +msgstr "会心攻撃、行動コスト110%、与ダメージ:打撃120%、器用(C)と筋力(D)依存で行動コスト減少と貫通ボーナス(C)、近接戦闘(2)" #: lang/json/technique_from_json.py #, python-format @@ -183682,9 +179949,8 @@ msgstr "アッパーカット" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py msgid "" -"Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" -" reduces action cost, min melee 1" -msgstr "会心時のみ発動、行動コスト120%、与ダメージ125%、効果: 1.5ターン気絶、筋力(A)依存で行動コスト減少(近接戦闘1)" +"Crit!, 120% AP, 125% damage, Stun (1), STR (A) reduces AP cost, melee (1)" +msgstr "会心攻撃、行動コスト120%、与ダメージ125%、気絶(1)、筋力(A)依存で行動コスト減少、近接戦闘(1)" #: lang/json/technique_from_json.py #, python-format @@ -183703,9 +179969,9 @@ msgstr "体当たり" #. ~ Description for SHOVE #: lang/json/technique_from_json.py msgid "" -"65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " -"(D) and DEX (E) reduce action cost" -msgstr "行動コスト65%、与ダメージ大幅減少、効果: 2タイル吹き飛ばし/1ターン気絶、筋力(D)器用(E)依存で行動コスト減少" +"65% AP, REDUCED DMG, knockback (2), stun (1), STR (D) and DEX (E) reduce AP " +"cost" +msgstr "行動コスト65%、与ダメージ減少、吹き飛ばし(2)、気絶(1)、筋力(D)と器用(E)依存で行動コスト減少" #: lang/json/technique_from_json.py #, python-format @@ -183724,10 +179990,9 @@ msgstr "突き出し" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py msgid "" -"75% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " -"(B) and DEX (C) reduce action cost, min melee 1" -msgstr "" -"行動コスト75%、与ダメージ: 斬撃0%/打撃110%/刺突110%、効果: 2タイル吹き飛ばし、筋力(B)器用(C)依存で行動コスト減少(近接戦闘1)" +"75% AP, 110% DMG, knockback (3), STR (B) and DEX (C) reduce AP cost, melee " +"(1)" +msgstr "行動コスト75%、与ダメージ110%、吹き飛ばし(3)、筋力(B)と器用(C)依存で行動コスト減少、近接戦闘(1)" #: lang/json/technique_from_json.py #, python-format @@ -183740,8 +180005,8 @@ msgstr "轢断" #. ~ Description for TEAR #: lang/json/technique_from_json.py -msgid "Crit only, 110% Cut, 115% Stab, min melee 2" -msgstr "会心時のみ発動、与ダメージ: 斬撃110%/刺突115%(近接戦闘2)" +msgid "CRIT!, 115% Cut/Stab, melee (2)" +msgstr "会心攻撃、与ダメージ: 斬撃/刺突115%、近接戦闘(2)" #: lang/json/technique_from_json.py #, python-format @@ -183759,9 +180024,8 @@ msgstr "直突" #. ~ Description for THRUST #: lang/json/technique_from_json.py -msgid "" -"110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" -msgstr "与ダメージ: 刺突110%、筋力(E)感覚(D)依存で与ダメージボーナス(近接戦闘1)" +msgid "110% Stab DMG, STR (E) and PER (D) adds DMG, melee (1)" +msgstr "与ダメージ: 刺突110%、筋力(E)と感覚(D)依存で追加ダメージ、近接戦闘(1)" #: lang/json/technique_from_json.py #, python-format @@ -183780,9 +180044,8 @@ msgstr "穿孔" #. ~ Description for LUNGE #: lang/json/technique_from_json.py msgid "" -"Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " -"provides bonus damage, min 2 melee" -msgstr "会心時のみ発動、与ダメージ: 刺突115%、筋力(D)感覚(D)依存で与ダメージボーナス(近接戦闘2)" +"CRIT!, 115% Stab DMG, Strength (D) and Perception (D) adds DMG, melee (2)" +msgstr "会心攻撃、与ダメージ: 刺突115%、筋力(D)と感覚(D)依存で追加ダメージ、近接戦闘(2)" #: lang/json/technique_from_json.py #, python-format @@ -183801,9 +180064,8 @@ msgstr "牽制突き" #. ~ Description for PROD #: lang/json/technique_from_json.py msgid "" -"66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " -"DEX (C) reduces action cost, min 3 melee" -msgstr "行動コスト66%、与ダメージ: 刺突70%、筋力(E)感覚(C)依存で与ダメージボーナス、器用(C)依存で行動コスト減少(近接戦闘3)" +"66% AP, 70% Stab DMG, PER (C) adds Arpen, DEX (B) reduces AP cost, melee (3)" +msgstr "行動コスト66%、与ダメージ: 刺突70%、感覚(C)依存で貫通ボーナス、器用(B)依存で行動コスト減少、近接戦闘(3)" #: lang/json/technique_from_json.py #, python-format @@ -183821,20 +180083,121 @@ msgstr "小手調べ" #. ~ Description for PROBE #: lang/json/technique_from_json.py +msgid "80% AP, PER (C) adds DMG and Arpen (E), melee (3)" +msgstr "行動コスト80%、感覚(C)依存で追加ダメージと貫通ボーナス(E)、近接戦闘(3)" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You probe at %s's openings with your weapon" +msgstr "武器で%sの急所を狙いました。" + +#: lang/json/technique_from_json.py +#, python-format +msgid " probes their weapon at %s " +msgstr "は武器で%sの急所を狙いました。" + +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format msgid "" -"80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" -" also provides armor pierce (E), min 3 melee" -msgstr "行動コスト80%、与ダメージ: 刺突75%、筋力(C)感覚(C)依存で与ダメージボーナスと装甲貫通(E)(近接戦闘3)" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" +msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You probe %s's openings" -msgstr "%sの急所を探るように突きを繰り出しました。" +msgid "You carve an arc through %s and those nearby" +msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " probe %s " -msgstr "は%sを探るように突きました。" +msgid " carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a spin attack against %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleashes a spin attack against %s and those nearby" +msgstr "" #: lang/json/technique_from_json.py msgid "Ausstoß" @@ -186614,20 +182977,6 @@ msgid "" "press them into basic shapes, ready for further crafting." msgstr "様々な金属製のアイテムを取り込み、製作に利用できる基本的な形状に圧縮する装置です。" -#: lang/json/terrain_from_json.py -msgid "gasoline pump" -msgstr "給油ポンプ" - -#. ~ Description for gasoline pump -#: lang/json/terrain_from_json.py -msgid "" -"Precious GASOLINE. The former world bowed to their petroleum god as it led " -"them to their ruin. There's plenty left over to fuel your inner road " -"warrior. If this gas dispenser doesn't give up the goods for free, you may " -"have to pay at a nearby terminal." -msgstr "" -"ガソリンは貴重です。この神殿に導いてくれた旧世界のガソリンの神に跪きましょう。仲間の道路戦士に燃料を供給できるだけの十分な量が残っています。この装置が無料で燃料を提供してくれない場合は、付近の端末で料金を支払う必要があります。" - #: lang/json/terrain_from_json.py msgid "fuel tank" msgstr "燃料タンク" @@ -186646,6 +182995,20 @@ msgstr "壊れた燃料タンク" msgid "A broken tank which was filled with gasoline." msgstr "ガソリンを満載した壊れたタンクです。" +#: lang/json/terrain_from_json.py +msgid "gasoline pump" +msgstr "給油ポンプ" + +#. ~ Description for gasoline pump +#: lang/json/terrain_from_json.py +msgid "" +"Precious GASOLINE. The former world bowed to their petroleum god as it led " +"them to their ruin. There's plenty left over to fuel your inner road " +"warrior. If this gas dispenser doesn't give up the goods for free, you may " +"have to pay at a nearby terminal." +msgstr "" +"ガソリンは貴重です。この神殿に導いてくれた旧世界のガソリンの神に跪きましょう。仲間の道路戦士に燃料を供給できるだけの十分な量が残っています。この装置が無料で燃料を提供してくれない場合は、付近の端末で料金を支払う必要があります。" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "破壊された給油ポンプ" @@ -186657,6 +183020,16 @@ msgid "" "the liquid gold." msgstr "危ない!給油ポンプは壊れており、価値ある液体を汲み出せない状態です。" +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "" + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "ディーゼルポンプ" @@ -189326,17 +185699,6 @@ msgid "" msgstr "" "この大掛かりな装置は「大気中の電荷」を利用して発電します。少なくともお目見えした際のニュースではそのように説明されていました。エルトン・モーセク氏を中心とするプロジェクト・ブルーボックスによって開発され、ほぼ無限に近い電力を生成できることが分かると、すぐに政府が飛びつきました。ここではあまり役に立ちませんが、分解して取れた部品は他の用途に使えそうです。" -#: lang/json/terrain_from_json.py -msgid "LEGACY hydroponics unit" -msgstr "水耕栽培装置(廃止)" - -#. ~ Description for LEGACY hydroponics unit -#: lang/json/terrain_from_json.py -msgid "" -"This is a deprecated hydroponics unit. Deconstruct it to receive your " -"materials back." -msgstr "使われなくなった水耕栽培装置です。分解すると素材を入手できます。" - #: lang/json/terrain_from_json.py msgid "burnt tree" msgstr "焼けた木" @@ -189434,18 +185796,6 @@ msgstr "かんぬき解除装置" msgid "bridge control" msgstr "橋梁制御装置" -#: lang/json/terrain_from_json.py -msgid "mass of blob feed" -msgstr "ブロブの餌山" - -#: lang/json/terrain_from_json.py -msgid "squish!" -msgstr "グシャッ!" - -#: lang/json/terrain_from_json.py -msgid "mound of blob feed" -msgstr "ブロブの餌場" - #: lang/json/terrain_from_json.py msgid "singing sand" msgstr "鳴き砂" @@ -189620,6 +185970,10 @@ msgstr "持ち上げ" msgid "self jacking" msgstr "持ち上げ(セルフ)" +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "chiseling" msgstr "彫刻" @@ -189746,7 +186100,7 @@ msgstr "トラバサミ(地中)" #: lang/json/trap_from_json.py msgid "spiked board" -msgstr "棘が付いた板" +msgstr "パネル(スパイク)" #: lang/json/trap_from_json.py msgid "caltrops" @@ -189845,14 +186199,6 @@ msgstr "集水シート" msgid "magic door" msgstr "魔法のドア" -#: lang/json/trap_from_json.py -msgid "light snare trap" -msgstr "くくり罠" - -#: lang/json/trap_from_json.py -msgid "heavy snare trap" -msgstr "強化くくり罠" - #: lang/json/vehicle_from_json.py msgid "work light" msgstr "作業灯" @@ -190385,62 +186731,10 @@ msgstr "アトミックカー" msgid "Flaming Atomic Car" msgstr "武装アトミックカー" -#: lang/json/vehicle_from_json.py -msgid "Roadheader" -msgstr "自由断面掘削機" - #: lang/json/vehicle_from_json.py msgid "Floating disk" msgstr "浮遊円盤" -#: lang/json/vehicle_from_json.py -msgid "Robotic Taxi" -msgstr "無人タクシー" - -#: lang/json/vehicle_from_json.py -msgid "Armored Robot Carrier" -msgstr "装甲ロボット運搬車" - -#: lang/json/vehicle_from_json.py -msgid "Atomic Mini-Tank" -msgstr "原子力豆戦車" - -#: lang/json/vehicle_from_json.py -msgid "Light Tank" -msgstr "軽戦車" - -#: lang/json/vehicle_from_json.py -msgid "Main Battle Tank" -msgstr "主力戦車" - -#: lang/json/vehicle_from_json.py -msgid "Self-Propelled Howitzer" -msgstr "自走榴弾砲" - -#: lang/json/vehicle_from_json.py -msgid "Mobile Gun System" -msgstr "機動砲システム" - -#: lang/json/vehicle_from_json.py -msgid "Bandit Bulldozer" -msgstr "武装ブルドーザー" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Planter Tractor" -msgstr "播種用大型トラクター" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Plow Tractor" -msgstr "耕耘用大型トラクター" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Reaper Tractor" -msgstr "刈取用大型トラクター" - -#: lang/json/vehicle_from_json.py -msgid "Infantry Fighting Vehicle" -msgstr "歩兵戦闘車" - #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" msgstr "車載/フュージョンガン" @@ -190493,7 +186787,7 @@ msgstr "頑丈な金属製ホイールです。" #: lang/json/vehicle_part_from_json.py msgid "bone plating" -msgstr "平板(骨)" +msgstr "装甲板(骨)" #: lang/json/vehicle_part_from_json.py msgid "mounted mininuke launcher" @@ -190562,7 +186856,7 @@ msgstr "交換式蓄電池" #: lang/json/vehicle_part_from_json.py msgid "board" -msgstr "板" +msgstr "パネル" #. ~ Description for {'str': 'board'} #: lang/json/vehicle_part_from_json.py @@ -190573,7 +186867,7 @@ msgstr "金属製の壁です。ゾンビが車内に入るのを防ぎ、視界 #: lang/json/vehicle_part_from_json.py msgid "cloth board" -msgstr "板(布)" +msgstr "パネル(布)" #. ~ Description for {'str': 'cloth board'} #: lang/json/vehicle_part_from_json.py @@ -190606,7 +186900,7 @@ msgstr "通常の半分の高さの、金属製の壁です。ゾンビが車内 #: lang/json/vehicle_part_from_json.py msgid "stow board" -msgstr "ストウボード" +msgstr "収納付きパネル" #. ~ Description for {'str': 'stow board'} #: lang/json/vehicle_part_from_json.py @@ -190617,11 +186911,11 @@ msgstr "積載スペースを備えた金属製の壁です。ゾンビが車内 #: lang/json/vehicle_part_from_json.py msgid "heavy duty stow board" -msgstr "ストウボード(高耐久)" +msgstr "収納付きパネル(高耐久)" #: lang/json/vehicle_part_from_json.py msgid "heavy duty board" -msgstr "板(高耐久)" +msgstr "パネル(高耐久)" #. ~ Description for {'str': 'heavy duty board'} #: lang/json/vehicle_part_from_json.py @@ -190643,7 +186937,7 @@ msgstr "通常の半分の高さの、頑丈な金属製の壁です。ゾンビ #: lang/json/vehicle_part_from_json.py msgid "wooden board" -msgstr "板(木)" +msgstr "パネル(木)" #. ~ Description for {'str': 'wooden board'} #: lang/json/vehicle_part_from_json.py @@ -190715,6 +187009,12 @@ msgstr "スペアタイヤが外付けのキャリアに格納されています msgid "A combustion engine. Burns fuel from a tank in the vehicle." msgstr "燃焼機関です。車両のタンクに入った燃料を燃焼させます。" +#: lang/json/vehicle_part_from_json.py +msgid "" +"A combustion engine for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "航空機に搭載される燃焼機関です。車両のタンクに入ったガソリンや航空ガソリンを燃焼させます。" + #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " @@ -190919,7 +187219,6 @@ msgstr "" "決して止まることのない核分裂反応を利用した、電力内蔵型のほのかな照明です。電源を入れると車内の一区画を照らしますが、アイテム製作ができるほど明るくはありません。" #. ~ Description for {'str': 'floodlight'} -#. ~ Description for {'str': 'gel floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, circular light that illuminates the area outside the vehicle " @@ -190927,7 +187226,6 @@ msgid "" msgstr "電源を入れると車外を明るく照らす、広角ライトです。" #. ~ Description for {'str': 'directed floodlight'} -#. ~ Description for {'str': 'gel directed floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, directed light that illuminates a half-circular area outside " @@ -190940,7 +187238,6 @@ msgid "headlight" msgstr "ヘッドライト" #. ~ Description for {'str': 'headlight'} -#. ~ Description for {'str': 'gel headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a narrow cone outside the vehicle when " @@ -190965,7 +187262,6 @@ msgid "wide angle headlight" msgstr "広角ヘッドライト" #. ~ Description for {'str': 'wide angle headlight'} -#. ~ Description for {'str': 'gel wide angle headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a wide cone outside the vehicle when turned " @@ -191031,6 +187327,10 @@ msgid "" msgstr "" "太陽光に当てると車両の電力をゆっくりと充電する、超高性能のソーラーパネルです。曇りの時も、非常に時間は掛かりますが充電は行われます。非常に壊れやすいため、装甲としては役に立ちません。" +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "車載/ケルベロスレーザー砲" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -191230,14 +187530,14 @@ msgstr "車載/PPA-5プラズマガン" msgid "mounted A7 laser rifle" msgstr "車載/A7レーザー" -#: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" -msgstr "車載/ケルベロスレーザー砲" - #: lang/json/vehicle_part_from_json.py msgid "mounted M249" msgstr "車載/M249" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M249S" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted gatling shotgun" msgstr "車載/ガトリング砲" @@ -191262,6 +187562,10 @@ msgstr "車載/M240" msgid "mounted M60" msgstr "車載/M60" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" msgstr "車載/マーク19" @@ -192114,11 +188418,11 @@ msgstr "木製の屋根です。" #: lang/json/vehicle_part_from_json.py msgid "chitin plating" -msgstr "平板(キチン)" +msgstr "装甲板(キチン)" #: lang/json/vehicle_part_from_json.py msgid "biosilicified chitin plating" -msgstr "平板(シリコンキチン)" +msgstr "装甲板(シリコンキチン)" #: lang/json/vehicle_part_from_json.py msgid "door motor" @@ -192431,6 +188735,13 @@ msgstr "より強い牽引性能とオフロード走行性能を備えた、幅 msgid "A wooden wheel." msgstr "木製のホイールです。" +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "大量輸送が可能なトラックのトレーラー用のカーゴスペースです。" + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "簡易カーゴ" @@ -192443,16 +188754,9 @@ msgid "" " makes it fragile." msgstr "盆状に変形した板金を車両の下部に溶接しただけのカーゴです。たくさんの荷物が載りますが、作りが粗雑なため破損しやすいです。" -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "大量輸送が可能なトラックのトレーラー用のカーゴスペースです。" - #: lang/json/vehicle_part_from_json.py msgid "crude plating" -msgstr "平板(粗製)" +msgstr "装甲板(粗製)" #. ~ Description for {'str': 'crude plating'} #: lang/json/vehicle_part_from_json.py @@ -192461,10 +188765,6 @@ msgid "" "protective as proper armor, but it'll do if there's nothing else available." msgstr "装甲として車両に溶接された板金です。薄いため本物の装甲ほどは役に立ちませんが、何も取り付けないよりはましです。" -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "車載/レーザー砲" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -192528,170 +188828,16 @@ msgid "" "size." msgstr "非常に軽いチタン製フレームです。この上に他の車両部品を設置できます。隣にフレームを更に取り付けて、車両のサイズを広げることも可能です。" -#: lang/json/vehicle_part_from_json.py -msgid "folding extra light quarterpanel" -msgstr "折り畳み式超軽量クォーターパネル" - -#: lang/json/vehicle_part_from_json.py -msgid "foldable door" -msgstr "折り畳みドア" - -#: lang/json/vehicle_part_from_json.py -msgid "superalloy coating" -msgstr "超合金コーティング" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tactical shotgun" -msgstr "車載/タクティカルショットガン" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted heavy machinegun" -msgstr "車載/ヘビーマシンガン" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted assault rifle" -msgstr "車載/アサルトライフル" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted light machine gun" -msgstr "車載/ライトマシンガン" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted automatic grenade launcher" -msgstr "車載/オートグレネードランチャー" - -#. ~ Description for Balancer -#: lang/json/vehicle_part_from_json.py -msgid "A large and heavy metal drum for balancing a vehicle." -msgstr "大きく重いドラム缶です。車両のバランスを調整します。" - -#. ~ Description for roadheader -#: lang/json/vehicle_part_from_json.py -msgid "" -"A large metal jagged metalhead, powered by the vehicle's engines. Use the " -"vehicle controls to turn it on or off. When turned on, it will stop the " -"vehicle unless it has a strong engine. When turned on, it will destroy " -"walls near it." -msgstr "" -"車両のエンジンによって駆動する棘が付いた金属製の大型装置です。車両制御装置を使うと、電源のオンオフを切り替えられます。オンにすると付近の壁を破壊しますが、エンジンの性能が悪いと車両は停止してしまいます。" - -#: lang/json/vehicle_part_from_json.py -msgid "bulette plating" -msgstr "平板(ブレイ)" - -#. ~ Description for orichalcum frame -#: lang/json/vehicle_part_from_json.py -msgid "" -"An expensive magical metal framework. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." -msgstr "高価な魔法の金属製のフレームです。この上に他の車両部品を設置できます。隣にフレームを更に取り付けて、車両のサイズを広げることも可能です。" - -#: lang/json/vehicle_part_from_json.py -msgid "mana frame" -msgstr "フレーム(マナ)" - -#. ~ Description for mana frame -#: lang/json/vehicle_part_from_json.py -msgid "A shape of pure mana that can float and carry items." -msgstr "純粋なマナで作られており、空中に浮かんでアイテムを運搬できます。" - -#: lang/json/vehicle_part_from_json.py -msgid "robot_carrier" -msgstr "ロボット運搬カーゴ" - -#. ~ Description for robot_carrier -#: lang/json/vehicle_part_from_json.py -msgid "" -"A cargo space for carrying robots. 'e'xamine it to capture a robot next to " -"you, or to release the robot currently contained. When selecting a robot to" -" capture, choose its tile relative to you, not the part." -msgstr "" -"ロボットを運搬するためのカーゴスペースです。調べる(e)ことで自分の周囲のタイルのロボットを搬入するか、中に入っているロボットを搬出できます。ロボットを搬入する時は、カーゴが設置されたタイルの周囲ではなく、自分自身の周囲のタイルを選択します。" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm tank gun (AL)" -msgstr "ランチャー(120mm/自動装填戦車砲)" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm RWS" -msgstr "砲塔(120mm/無人砲塔)" - -#: lang/json/vehicle_part_from_json.py -msgid "ATGM turret" -msgstr "タレット(対戦車誘導ミサイル)" - -#: lang/json/vehicle_part_from_json.py -msgid "30mm chaingun" -msgstr "ライフル(30mm/機関砲)" - #: lang/json/vehicle_part_from_json.py msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" " in the vehicle to produce steam." msgstr "外燃機関の一種である、密閉サイクルで動作する蒸気タービンです。車両の燃料箱に入った石炭を燃料にして蒸気を発生させます。" -#: lang/json/vehicle_part_from_json.py -msgid "mounted slingshot cannon" -msgstr "車載/スリングショット砲" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted lacerator" -msgstr "車載/レイスレイター" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary cannon" -msgstr "車載/ガトリング砲" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted pulse laser" -msgstr "車載/パルスレーザー" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted turbolaser" -msgstr "車載/ターボレーザー砲" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted ripper" -msgstr "車載/リッパー" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted scorpion ballista" -msgstr "車載/スコーピオンバリスタ" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted speargun" -msgstr "車載/スピアガン" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tesla cannon" -msgstr "車載/テスラキャノン" - #: lang/json/vehicle_part_from_json.py msgid "cargo shelving" msgstr "車載棚" -#. ~ Description for {'str': 'solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. Will recharge the vehicle's " -"electrical power when exposed to the sun." -msgstr "" -"車台の高い位置に配置する、巨大なソーラーパネルです。壊れやすいソーラーパネルを潜在的な脅威から守り、太陽を追尾する機能によって発電効率が向上しています。太陽光に晒している間、車両の電力を充電します。" - -#. ~ Description for {'str': 'upgraded solar array'} -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able track the sun. Will recharge the " -"vehicle's electrical power when exposed to the sun." -msgstr "" -"車台の高い位置に配置する、巨大な改良型ソーラーパネルです。壊れやすいソーラーパネルを潜在的な脅威から守り、太陽を追尾する機能によって発電効率が向上しています。太陽光に晒している間、車両の電力を充電します。" - #: lang/json/vehicle_part_from_json.py msgid "wiring" msgstr "配線" @@ -192703,34 +188849,6 @@ msgid "" "of a vehicle to another part." msgstr "丈夫な銅線です。車両の部品間で電力をやり取りする際に利用できます。" -#: lang/json/vehicle_part_from_json.py -msgid "pocket dimension cargo" -msgstr "四次元カーゴ" - -#: lang/json/vehicle_part_from_json.py -msgid "rubber treads" -msgstr "キャタピラ(ゴム)" - -#. ~ Description for {'str': 'rubber treads'} -#. ~ Description for {'str': 'steel treads'} -#. ~ Description for {'str': 'tank treads'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A section of continuous track, the kind mounted on construction vehicles and" -" military fighting vehicles. It acts as a wheel, and the broad surface " -"provides plenty of traction to move heavy vehicles off-road, but at the cost" -" of speed due to the heavy weight." -msgstr "" -"建設重機や軍用戦闘車両に搭載されている、無限軌道の部品です。ホイールとして機能し、接地面が広いため重い車両を動かすのに十分な牽引力を発揮しますが、重量があるため速度は出せません。" - -#: lang/json/vehicle_part_from_json.py -msgid "steel treads" -msgstr "キャタピラ(鋼)" - -#: lang/json/vehicle_part_from_json.py -msgid "tank treads" -msgstr "キャタピラ(戦車用)" - #: lang/json/vehicle_part_from_json.py msgid "mounted TDI Vector" msgstr "車載/TDIベクター" @@ -192951,10 +189069,6 @@ msgstr "車載/RM802" msgid "mounted RM88 battle rifle" msgstr "車載/RM88" -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary speargun" -msgstr "車載/回転式スピアガン" - #: lang/json/vehicle_part_from_json.py msgid "mounted Ruger 10/22" msgstr "車載/ルガー10-22" @@ -193012,458 +189126,45 @@ msgid "mounted V29 laser" msgstr "車載/V29レーザー" #: lang/json/vehicle_part_from_json.py -msgid "gel panel" -msgstr "板(ジェル)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray wall" -msgstr "壁(グレイ)" - -#. ~ Description for {'str': 'gray wall'} -#. ~ Description for {'str': 'ooze barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a vehicle wall. Keeps zombies outside the " -"vehicle and prevents people from seeing through it." -msgstr "車両の壁として機能する、生きたブロブです。ゾンビが車内に入るのを防ぎ、視界を遮ります。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel quarterpanel" -msgstr "クォーターパネル(ジェル)" - -#. ~ Description for {'str': 'gel quarterpanel'} -#. ~ Description for {'str': 'gray barricade'} -#. ~ Description for {'str': 'ooze screen'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a half-height vehicle wall. Keeps zombies " -"outside the vehicle but allows people to see over it." -msgstr "通常の半分の高さの壁として機能する、生きたブロブです。ゾンビが車内に入るのを防ぎ、視界を遮ります。" - -#: lang/json/vehicle_part_from_json.py -msgid "gray barricade" -msgstr "障壁(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze screen" -msgstr "間仕切り(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze barrier" -msgstr "障壁(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel framework" -msgstr "フレーム(ジェル)" - -#. ~ Description for {'str': 'gel framework'} -#. ~ Description for {'str': 'gray frame'} -#. ~ Description for {'str': 'ooze chassis'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, shaped to provide attachment points for other blobs. Other " -"vehicle components and blobs can be mounted on it. If all the frames and " -"components of a vehicle are foldable or made from blobs, the vehicle can be " -"folding into a small package and picked up as a normal item." -msgstr "" -"他のブロブと繋げられるアタッチメントが備わった、生きているブロブです。この上に他の車両部品を設置できます。車両を構成する全てのフレームと車両部品が折畳可能である場合、車両を小さく折り畳み、通常のアイテムと同じように持ち運ぶことができます。" - -#: lang/json/vehicle_part_from_json.py -msgid "gray frame" -msgstr "フレーム(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze chassis" -msgstr "車台(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living, glowing blob. Having been filled with electrical power, can " -"release it as light of varying strength." -msgstr "" -"光を発する生きたブロブです。電力を蓄えて他の車両部品に供給する、蓄電池のような機能を持っています。体内に電気を蓄えており、明るさが変化する光を放出しています。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel aisle lights" -msgstr "ブロブ通路灯" - -#: lang/json/vehicle_part_from_json.py -msgid "gel floodlight" -msgstr "ブロブ投光照明" - -#: lang/json/vehicle_part_from_json.py -msgid "gel directed floodlight" -msgstr "指向性ブロブ投光照明" - -#: lang/json/vehicle_part_from_json.py -msgid "gel headlight" -msgstr "ブロブヘッドライト" - -#: lang/json/vehicle_part_from_json.py -msgid "gel wide angle headlight" -msgstr "広角ブロブヘッドライト" - -#: lang/json/vehicle_part_from_json.py -msgid "ice ram" -msgstr "衝角(氷)" - -#. ~ Description for {'str': 'ice ram'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will absorb damage in a" -" vehicle collision and deliver additional damage to the other object in the " -"collision. It should be mounted on the edge of the vehicle, preferably the " -"front." -msgstr "" -"過冷却状態の生きたブロブです。車両が衝突した際に衝撃を軽減し、逆に衝突した対象に損傷を与えます。車両の端、できれば前面に取り付けるのが効果的です。" - -#: lang/json/vehicle_part_from_json.py -msgid "Gelatinous tracks" -msgstr "キャタピラ(ゼラチン)" - -#. ~ Description for {'str': 'Gelatinous tracks'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A set of continuous, interlocking tracks made out of blob. They can be used" -" in place of wheels, and provide good traction and off-road performance." -msgstr "ブロブで作られた無限軌道です。ホイールの代わりとして利用でき、強い牽引力とオフロード走破性を備えています。" - -#: lang/json/vehicle_part_from_json.py -msgid "Oozing tracks" -msgstr "キャタピラ(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "inert core" -msgstr "不活性コア" - -#. ~ Description for {'str': 'inert core'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A sleeping amorphous core, acting as a rotating, universal mount for a " -"weapon. If your hands are empty, you can stand next to a tentacle and " -"'f'ire the weapon by selecting the tile." -msgstr "" -"銃器用の回転式タレット台として機能する不活性コアです。素手の状態でこの触手の周囲に立って発射(f)すると、選択した地点に銃器を発射できます。" - -#: lang/json/vehicle_part_from_json.py -msgid "A living blob turned into a heavy vehicle weapon." -msgstr "生きているブロブが、車両用の大型銃器に変化したものです。" - -#. ~ Description for {'str': 'frost lancer'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state and transformed into a heavy" -" vehicle weapon." -msgstr "過冷却状態の生きたブロブが、車両用の大型銃器に変化したものです。" - -#: lang/json/vehicle_part_from_json.py -msgid "ice pack" -msgstr "氷結ボックス" - -#. ~ Description for {'str': 'ice pack'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will keep items stored " -"in it cold, reducing the speed at which food and drink rots." -msgstr "過冷却状態の生きたブロブです。内部に入れたアイテムを冷やし、飲食物の腐敗速度を低下させます。" - -#: lang/json/vehicle_part_from_json.py -msgid "icy windshield" -msgstr "氷結ガラス" - -#. ~ Description for {'str': 'icy windshield'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It is transparent, and can" -" be used to see out of the vehicle." -msgstr "過冷却状態の生きたブロブです。身体が透明なので、視線を遮りません。" - -#: lang/json/vehicle_part_from_json.py -msgid "gelacier boat hull" -msgstr "船体(ゼラチン)" - -#. ~ Description for {'str': 'gelacier boat hull'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It acts as a boat hull." -msgstr "過冷却状態の生きたブロブです。船体として機能します。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel retriever" -msgstr "回収装置(ジェル)" - -#. ~ Description for {'str': 'gel retriever'} -#. ~ Description for {'str': 'gray retriever'} -#. ~ Description for {'str': 'ooze retriever'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed to act as a scoop. Use the vehicle controls to turn " -"it on or off. When turned on, it will scoop up any loose items that it " -"travels over, putting them into the vehicle's storage." -msgstr "" -"スコップのような形に変化した、生きているブロブです。車両制御装置を使うと、オンオフを切り替えられます。オンにすると走行経路上のアイテムを掬い上げ、車内の積載スペースに保管します。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel harness" -msgstr "シートベルト(ジェル)" - -#. ~ Description for {'str': 'gel harness'} -#. ~ Description for {'str': 'gray harness'} -#. ~ Description for {'str': 'ooze harness'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, reformed as a belt and attached to a seat." -msgstr "生きているブロブをベルト状に変形し、シートに取り付けたものです。" - -#: lang/json/vehicle_part_from_json.py -msgid "capsule (10L)" -msgstr "ブロブカプセル(10L)" - -#. ~ Description for {'str': 'capsule (10L)'} -#. ~ Description for {'str': 'cocoon (30L)'} -#. ~ Description for {'str': 'pod (20L)'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a storage space for holding liquids. If filled " -"with the appropriate fuel for the vehicle's engine, the engine will " -"automatically draw fuel from the tank when the engine is on. If filled with" -" water, you can access the water from a water faucet, if one is installed in" -" the vehicle. You can also use a rubber hose to siphon liquids out of a " -"tank." -msgstr "" -"液体を貯蔵するための容器の形に変形した、生きているブロブです。車両のエンジンに対応した燃料が充填されていれば、エンジンが始動するとタンク内の燃料を自動で消費します。水が充填されている場合は、車内に設置した蛇口を使えば水を出すことができます。ゴムホースを使用すればタンクから液体を排出することができます。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel tank (60L)" -msgstr "ゼラチンタンク(60L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel reinforcement" -msgstr "補強材(ジェル)" - -#. ~ Description for {'str': 'gel reinforcement'} -#. ~ Description for {'str': 'gray reinforcement'} -#. ~ Description for {'str': 'ooze reinforcement'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, acting as armor plate." -msgstr "装甲板として機能する、生きたブロブです。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel roof" -msgstr "屋根(ジェル)" - -#. ~ Description for {'str': 'gel roof'} -#. ~ Description for {'str': 'gray roof'} -#. ~ Description for {'str': 'ooze roof'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, placed as roof." -msgstr "屋根として機能する、生きたブロブです。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel seat" -msgstr "座席(ジェル)" - -#. ~ Description for {'str': 'gel seat'} -#. ~ Description for {'str': 'gray seat'} -#. ~ Description for {'str': 'ooze seat'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a comfy couch. You can sit here." -msgstr "生きているブロブを、居心地の良いソファの形に変形したものです。座席として利用できます。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel receptacle" -msgstr "カーゴスペース(ジェル)" - -#. ~ Description for {'str': 'gel receptacle'} -#. ~ Description for {'str': 'gray receptacle'} -#. ~ Description for {'str': 'ooze receptacle'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, shaped into a cargo space." -msgstr "カーゴスペースとして機能する、生きたブロブです。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel pouch (under)" -msgstr "ポーチ(ジェル/下部)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel walkway" -msgstr "通路(ジェル)" - -#. ~ Description for {'str': 'gel walkway'} -#. ~ Description for {'str': 'gray walkway'} -#. ~ Description for {'str': 'ooze walkway'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a walkway." -msgstr "通路として機能する、生きたブロブです。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel hatch" -msgstr "ハッチ(ジェル)" - -#. ~ Description for {'str': 'gel hatch'} -#. ~ Description for {'str': 'gray hatch'} -#. ~ Description for {'str': 'ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Has a transparent patch so you can see out" -" of it, even when closed." -msgstr "ドアとして機能する、生きたブロブです。窓があるため、閉じていても視界を遮りません。" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gel hatch" -msgstr "不透明ハッチ(ジェル)" - -#. ~ Description for {'str': 'opaque gel hatch'} -#. ~ Description for {'str': 'opaque gray hatch'} -#. ~ Description for {'str': 'opaque ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Entirely opaque so you can't see through " -"it when closed." -msgstr "ドアとして機能する、生きたブロブです。堅牢な造りのため、閉じると視界を遮ります。" - -#: lang/json/vehicle_part_from_json.py -msgid "gray retriever" -msgstr "回収装置(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray harness" -msgstr "シートベルト(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "cocoon (30L)" -msgstr "グレイタンク(30L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray tank (100L)" -msgstr "グレイタンク(100L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray reinforcement" -msgstr "補強材(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray roof" -msgstr "屋根(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray seat" -msgstr "座席(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray receptacle" -msgstr "カーゴスペース(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray pouch (under)" -msgstr "ポーチ(グレイ/下部)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray walkway" -msgstr "通路(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray hatch" -msgstr "ハッチ(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gray hatch" -msgstr "不透明ハッチ(グレイ)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze retriever" -msgstr "回収装置(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze harness" -msgstr "シートベルト(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "pod (20L)" -msgstr "ブロブポッド(20L)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze tank (80L)" -msgstr "スライムタンク(80L)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze reinforcement" -msgstr "補強材(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze roof" -msgstr "屋根(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze seat" -msgstr "座席(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze receptacle" -msgstr "カーゴスペース(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze pouch (under)" -msgstr "ポーチ(スライム/下部)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze walkway" -msgstr "通路(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze hatch" -msgstr "ハッチ(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque ooze hatch" -msgstr "不透明ハッチ(スライム)" - -#: lang/json/vehicle_part_from_json.py -msgid "amorphous core" -msgstr "ブロブコア" - -#. ~ Description for {'str': 'amorphous core'} -#: lang/json/vehicle_part_from_json.py -msgid "An amorphous mass, the living heart and brain of a blob vehicle." -msgstr "生きているブロブ車両の心臓と脳の役割を果たしている、不定形の塊です。" +msgid "mounted tactical shotgun" +msgstr "車載/タクティカルショットガン" #: lang/json/vehicle_part_from_json.py -msgid "snow slider" -msgstr "氷結そり板" +msgid "mounted heavy machinegun" +msgstr "車載/ヘビーマシンガン" -#. ~ Description for {'str': 'snow slider'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, existing in a super-cooled state. It acts as a wheel." -msgstr "過冷却状態の生きたブロブです。ホイールとして機能します。" +msgid "mounted assault rifle" +msgstr "車載/アサルトライフル" -#. ~ Description for {'str': 'gelatinous wheel'} -#. ~ Description for {'str': 'gray wheel'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob. It acts as a wheel." -msgstr "ホイールとして機能する、生きたブロブです。" +msgid "mounted light machine gun" +msgstr "車載/ライトマシンガン" #: lang/json/vehicle_part_from_json.py -msgid "diamond barrier" -msgstr "障壁(ダイヤモンド)" +msgid "mounted automatic grenade launcher" +msgstr "車載/オートグレネードランチャー" -#. ~ Description for {'str': 'diamond barrier'} #: lang/json/vehicle_part_from_json.py -msgid "A transparent, solid sheet of self-sustaining crystals." -msgstr "透明な結晶で作られた、自立する硬い板です。" +msgid "bulette plating" +msgstr "装甲板(ブレイ)" -#. ~ Description for {'str': 'diamond frame'} +#. ~ Description for orichalcum frame #: lang/json/vehicle_part_from_json.py msgid "" -"A framework of super-strong crystal. Other vehicle components can be " +"An expensive magical metal framework. Other vehicle components can be " "mounted on it, and it can be attached to other frames to increase the " "vehicle's size." -msgstr "上に他の車両部品を設置できるフレームです。隣接する位置にフレームを取り付けて、車両のサイズを広げることも可能です。" +msgstr "高価な魔法の金属製のフレームです。この上に他の車両部品を設置できます。隣にフレームを更に取り付けて、車両のサイズを広げることも可能です。" -#. ~ Description for {'str': 'diamond plating'} #: lang/json/vehicle_part_from_json.py -msgid "" -"Transparent crystal armor plate. Will partially protect other components on" -" the same frame from damage." -msgstr "透明な結晶体で作られた装甲板です。同じフレームに設置された他の車両部品の損傷を抑えます。" +msgid "mana frame" +msgstr "フレーム(マナ)" + +#. ~ Description for mana frame +#: lang/json/vehicle_part_from_json.py +msgid "A shape of pure mana that can float and carry items." +msgstr "純粋なマナで作られており、空中に浮かんでアイテムを運搬できます。" #: lang/json/vitamin_from_json.py msgid "Calcium" @@ -193526,11 +189227,20 @@ msgstr "判定タイミング: " msgid "%s/%s " msgstr "%s/%s " +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "%sに達成" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "" + #: src/achievement.cpp msgid "" "\n" @@ -193579,10 +189289,6 @@ msgstr "その他" msgid "Debug" msgstr "デバッグ" -#: src/action.cpp -msgid "Back" -msgstr "戻る" - #: src/action.cpp msgid "Actions" msgstr "行動" @@ -193597,6 +189303,30 @@ msgstr "メインメニュー" msgid "%s (Direction button)" msgstr "%s (方向キー)" +#. ~ Sound of a shovel digging a pit at work! +#. ~ Sound of a shovel filling a pit or mound at work! +#: src/activity_actor.cpp src/activity_handlers.cpp +msgid "hsh!" +msgstr "ザクッ!" + +#: src/activity_actor.cpp +msgid "Something crawls out of the coffin!" +msgstr "棺の中から何かが這い出しました!" + +#: src/activity_actor.cpp +msgid "You finish exhuming a grave." +msgstr "墓穴を完全に掘り返しました。" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging the %s." +msgstr "%sを掘り終えました。" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging up %s." +msgstr "%sを掘り終えました。" + #: src/activity_actor.cpp msgid "Use electrohack?" msgstr "ハッキング装置を使用しますか?" @@ -193621,8 +189351,8 @@ msgstr "放電しました!" msgid "You cannot hack this." msgstr "これはハッキングできません。" -#: src/activity_actor.cpp src/activity_handlers.cpp src/computer_session.cpp -#: src/computer_session.cpp src/iuse.cpp src/map.cpp +#: src/activity_actor.cpp src/computer_session.cpp src/computer_session.cpp +#: src/iuse.cpp src/map.cpp msgid "an alarm sound!" msgstr "[大きなアラーム音]" @@ -193650,10 +189380,118 @@ msgstr "パネルを有効化しました!" msgid "The nearby doors unlock." msgstr "付近のドアのロックが解除されました。" +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "" + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "" + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "エンジンを始動するのは赤のケーブルに決まっているじゃないか、えっ違うの?" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "" + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "移動中は自動拾得が中断されます。" +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "カチッと音がして、フェンスゲートが開きました。" + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "カチッと音がして、ドアの鍵が開きました。" + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "ドアがゆっくりと開きました..." + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "無様にも鍵穴を詰まらせてしまいました!" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "解錠に失敗し、道具を完全に壊してしまいました。" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "解錠に失敗し、道具を少し壊してしまいました。" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "上手く鍵を開けられませんでした。" + +#: src/activity_actor.cpp src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "騎乗中にその行動はできません。" + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "付近にピッキングする対象がありません。" + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "どこにロックピックを使用しますか?" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "鼻をほじりました。鼻の穴がドアのように開きました。" + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" +"友達を選ぶことはできますし、\n" +"自分の鼻をほじることもできますが、\n" +"友達の鼻をほじることはできませんよ" + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "ドアに鍵は掛かっていません。" + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "それはピッキングできません。" + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "" + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "寝返りを打ちました..." + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "" + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "なかなか寝付けません。睡眠を続けますか?" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "睡眠を中断して起き上がる" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "睡眠" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "睡眠(以降の中断警告を無視)" + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -193721,9 +189559,10 @@ msgstr "死体を解体するためには吊るす必要があります。ロー #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." -msgstr "大型の死体を完全に解体するには、設置された状態の食肉処理ラックか食肉用フック、もしくはロープ(9m)と木が必要です。" +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." +msgstr "" +"大型の死体を完全に解体するには、死体を吊るす必要があります。設置された状態の食肉処理ラックか食肉用フックかクレーン、もしくは所持状態のロープ(9m)と木が必要です。" #: src/activity_handlers.cpp msgid "" @@ -193993,52 +189832,10 @@ msgstr "何も見つかりませんでした。" msgid "The %s runs out of batteries." msgstr "%sの電池を使い果たしました。" -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "エンジンを始動するケーブルを見つけました。" - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "エンジンを始動するケーブルのようなものを見つけました。" - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "エンジンを始動するケーブルだと消去法で判断したものを見つけました。" - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "エンジンを始動するのは赤のケーブルに決まっているじゃないか、えっ違うの?" - #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "回収を終えました。" -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "奴隷ゾンビに作り替える死体がありません!" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "復活しても襲ってこないよう入念に筋肉と腱を切り刻み、危険な部位を取り除きました。" - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie" -" won't be able to attack when it reanimates." -msgstr "死体を切り刻み、一部の部位を取り除きました。これで復活しても襲ってはこないでしょう。" - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "死体を切り刻み過ぎて、完全に潰れてしまいました。" - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "戦闘能力を奪うべく、死体を切ってみました。これでいいのかな。" - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -194184,34 +189981,6 @@ msgstr "シューーーーーーッ!" msgid "With a satisfying click, the lock on the safe opens!" msgstr "カチッと音がして、金庫の鍵が開きました!" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "カチッと音がして、フェンスゲートが開きました。" - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "カチッと音がして、ドアの鍵が開きました。" - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "ドアがゆっくりと開きました..." - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "無様にも鍵穴を詰まらせてしまいました!" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "解錠に失敗し、道具を完全に壊してしまいました。" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "解錠に失敗し、道具を少し壊してしまいました。" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "上手く鍵を開けられませんでした。" - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "一度だけ" @@ -194342,6 +190111,10 @@ msgstr "何かが針にかかったようです!" msgid "You finish fishing" msgstr "釣りを終えました。" +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "暗すぎて読めません!" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "読み終えました。" @@ -194368,26 +190141,6 @@ msgstr "待機を終えました。気分がすっきりしました。" msgid "%s finishes chatting with you." msgstr "%sは雑談を終えました。" -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "寝返りを打ちました..." - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "なかなか寝付けません。睡眠を続けますか?" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "睡眠を中断して起き上がる" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "睡眠" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "睡眠(以降の中断警告を無視)" - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "オートドクは破滅的な失敗を犯しました。" @@ -194476,10 +190229,6 @@ msgid "" "actually stitching 's wounds." msgstr "オートドクは残りのプログラムに従って不規則に動いただけで、実際にはの傷跡を縫合しませんでした。" -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "なかなか寝付けません..." - #: src/activity_handlers.cpp msgid "" "The Autodoc returns to its resting position after successfully performing " @@ -194626,30 +190375,6 @@ msgstr "穿孔を終えました。" msgid " finishes drilling." msgstr "は穿孔を終えました。" -#. ~ Sound of a shovel digging a pit at work! -#. ~ Sound of a shovel filling a pit or mound at work! -#: src/activity_handlers.cpp -msgid "hsh!" -msgstr "ザクッ!" - -#: src/activity_handlers.cpp -msgid "Something crawls out of the coffin!" -msgstr "棺の中から何かが這い出しました!" - -#: src/activity_handlers.cpp -msgid "You finish exhuming a grave." -msgstr "墓穴を完全に掘り返しました。" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging the %s." -msgstr "%sを掘り終えました。" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging up %s." -msgstr "%sを掘り終えました。" - #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." @@ -195280,10 +191005,6 @@ msgstr "南東" msgid "South East" msgstr "南東" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "西" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "西" @@ -195474,6 +191195,11 @@ msgstr "< [%s] キー割当 >" msgid "Source area is the same as destination (%s)." msgstr "元の位置と選択した位置が同じです(%s)。" +#: src/advanced_inv.cpp +#, c-format +msgid "You have no space for %s" +msgstr "%sの収納場所がありません。" + #: src/advanced_inv.cpp msgid "Default layout was saved." msgstr "デフォルトの配置が保存されました。" @@ -195502,10 +191228,6 @@ msgstr "容器は空です。" msgid "You can unload only liquids into target container." msgstr "選択した容器から液体だけを抜き取ります。" -#: src/advanced_inv.cpp -msgid "You can't partially unload liquids from unsealable container." -msgstr "再密封した容器からは液体を抜き取れません。" - #: src/advanced_inv.cpp msgid "You can't pick up a liquid." msgstr "液体は拾えません。" @@ -195604,6 +191326,10 @@ msgstr "帯" msgid "an aura around you" msgstr "オーラ(外)" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "未設定層" + #: src/armor_layers.cpp #, c-format msgid "" @@ -195675,11 +191401,6 @@ msgstr "動作制限: " msgid "Warmth:" msgstr "暖かさ: " -#: src/armor_layers.cpp -#, c-format -msgid "Storage (%s):" -msgstr "収納容積(%s): " - #: src/armor_layers.cpp msgid "Protection" msgstr "防御" @@ -195692,6 +191413,10 @@ msgstr "耐打: " msgid "Cut:" msgstr "耐斬: " +#: src/armor_layers.cpp +msgid "Ballistic:" +msgstr "防弾:" + #: src/armor_layers.cpp msgid "Acid:" msgstr "耐酸:" @@ -195752,16 +191477,6 @@ msgstr "水中で視界を確保できます。" msgid "It can occupy the same space as other things." msgstr "他のアイテムと同じように存在するものとして扱われます。" -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "%sの着用品を並べ替えるには遠すぎます。" - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "%sは友好的ではありません!" - #: src/armor_layers.cpp msgid "Sort Armor" msgstr "着用品を並べ替える" @@ -195807,6 +191522,16 @@ msgstr "動作制限と暖かさ" msgid "Encumbrance" msgstr "動作制限" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "%sの着用品を並べ替えるには遠すぎます。" + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "%sは友好的ではありません!" + #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" @@ -196768,10 +192493,6 @@ msgstr "字が読めません!" msgid "Your eyes won't focus without reading glasses." msgstr "老眼鏡がないため焦点が合いません。" -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "暗すぎて読めません!" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "読み上げてもらうことはできますが、耳が聞こえません!" @@ -197083,11 +192804,15 @@ msgstr "もう一度やり直しました。きっと鍛錬の成果が出るは msgid "You train for a while." msgstr "しばらくの間鍛錬を続けました。" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp +msgid "It looks like you woke up before your alarm." +msgstr "アラームが鳴る前に目が覚めました。" + +#: src/avatar.cpp msgid "It looks like you've slept through your internal alarm…" msgstr "体内アラームに気づかず眠り続けたようです..." -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp msgid "It looks like you've slept through the alarm…" msgstr "アラームに気づかず眠り続けたようです..." @@ -197095,6 +192820,11 @@ msgstr "アラームに気づかず眠り続けたようです..." msgid "You retched, but your stomach is empty." msgstr "嘔吐しようとしましたが、胃の中は空っぽです。" +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "あなた(%s)" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "本が見つかりません!読書を中止しました。" @@ -197169,60 +192899,13 @@ msgstr "無効な能力値" msgid "Are you sure you want to raise %s? %d points available." msgstr "%sを上昇させますか?利用可能なポイント: %d" -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "メックの脚部出力を少し上げました。" - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "動物に刺激を与えて少しだけ速度を上げました。 " - -#: src/avatar.cpp -msgid "You start walking." -msgstr "立ち上がって歩き始めました。" - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "メックの脚部サーボの出力を最大にしました。" - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "動物に刺激を与えて速度を上げました。" - -#: src/avatar.cpp -msgid "You start running." -msgstr "走り始めました。" - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "動物が疲れているため速度を上げられません。" - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "走るにはちゃんと動く両脚が必要です。" - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "疲れ過ぎて走れません。" - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "メックの脚部サーボの出力を最小にしました。" - -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "動物をなだめて速度を落としました。" - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "屈んで歩き始めました。" - -#. ~ %1$s: weapon name, %2$s: holster name +#. ~ %1$s: weapon name +#. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp #, c-format msgctxt "holster" -msgid "Draw %1$s from %2$s?" -msgstr "%1$sを%2$sから抜き取りますか?" +msgid "Draw from %1$s?" +msgstr "%1$sから抜き取りますか?" #: src/avatar.cpp src/monexamine.cpp #, c-format @@ -197267,11 +192950,11 @@ msgstr "経路にモンスターが存在します。自動移動を中止しま msgid "Move into the monster to attack." msgstr "攻撃するには攻撃対象がいる方向に移動してください。" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" msgstr "気力を振り絞って身体を動かしました!" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything…" msgstr "誰かを攻撃しようとは思えません..." @@ -197482,11 +193165,6 @@ msgstr "葉が枯れており食べるのに適しません。" msgid "This grass is tainted with paint and thus inedible." msgstr "この葉は塗料で汚染されていて食べられません。" -#: src/avatar_action.cpp -#, c-format -msgid "You leave the empty %s." -msgstr "空の%sを置きました。" - #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "殻の中から投擲はできません。" @@ -198104,10 +193782,6 @@ msgstr "の%sを自動起動するのに十分な燃料がありませ msgid "Your %s powers down." msgstr "%sは電力を失いました。" -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "人工暗闇発生装置を起動しました!" - #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." @@ -198178,6 +193852,14 @@ msgstr "操作に失敗しました。" msgid "The %s screws up the operation." msgstr "%sは手術中にドジを踏みました。" +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "移植手術をするための麻酔が足りません。" + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "移植手術を行うために必要な素材がありません。" + #: src/bionics.cpp msgid "You prep to begin surgery." msgstr "手術の準備をしました。" @@ -198920,6 +194602,46 @@ msgstr "リットル" msgid "quart" msgstr "クォート" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "km" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "m" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "cm" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "mm" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "in." + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "mi" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "yd" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "ft" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -199221,13 +194943,6 @@ msgstr "%sは大きすぎて快適に着用できません!サイズを調整 msgid "This %s is too small to wear comfortably! Maybe it could be refitted." msgstr "%sは小さすぎて快適に着用できません!サイズを調整できそうです。" -#. ~ %1$s: item name, %2$s: container name -#: src/character.cpp -#, c-format -msgctxt "container" -msgid "You put the %1$s in your %2$s." -msgstr "%1$sを%2$sに入れました。" - #: src/character.cpp msgid "You can't place items here!" msgstr "ここにはアイテムを置けません!" @@ -199461,12 +195176,8 @@ msgid "Slaked" msgstr "潤喉 *" #: src/character.cpp -msgid "Engorged" -msgstr "満腹 ***" - -#: src/character.cpp -msgid "Sated" -msgstr "満腹 **" +msgid "Satisfied" +msgstr "" #: src/character.cpp msgid "Hungry" @@ -199476,21 +195187,21 @@ msgstr "空腹 *" msgid "Very Hungry" msgstr "空腹 **" -#: src/character.cpp -msgid "Starving!" -msgstr "飢餓!" - #: src/character.cpp msgid "Near starving" msgstr "空腹 ****" +#: src/character.cpp +msgid "Starving!" +msgstr "飢餓!" + #: src/character.cpp msgid "Famished" msgstr "空腹 ***" #: src/character.cpp -msgid "Peckish" -msgstr "食事可能" +msgid "ERROR!" +msgstr "" #: src/character.cpp src/npctalk.cpp msgid "Exhausted" @@ -199536,22 +195247,42 @@ msgstr "小さい車両に体を詰め込んでいるため、全身が締め上 msgid "You have a sudden heart attack!" msgstr "急に心臓発作を起こしました!" +#: src/character.cpp +msgid " has a sudden heart attack!" +msgstr "は急に心臓発作を起こしました!" + #: src/character.cpp msgid "Your breathing stops completely." msgstr "呼吸が完全に停止しました。" +#: src/character.cpp +msgid "'s breathing stops completely." +msgstr "の呼吸が完全に停止しました。" + #: src/character.cpp msgid "Your heart spasms painfully and stops." msgstr "心臓が激痛を伴いながら痙攣を起こし、停止しました。" +#: src/character.cpp +msgid "'s heart spasms painfully and stops." +msgstr "心臓が激痛を伴いながら痙攣を起こし、停止しました。" + #: src/character.cpp msgid "Your heart spasms and stops." msgstr "心臓が痙攣を起こして停止しました。" +#: src/character.cpp +msgid "'s heart spasms and stops." +msgstr "の心臓が痙攣を起こして停止しました。" + #: src/character.cpp msgid "Your breathing slows down to a stop." msgstr "呼吸がだんだんと遅くなり、やがて止まりました。" +#: src/character.cpp +msgid "'s breathing slows down to a stop." +msgstr "の呼吸がだんだんと遅くなり、やがて止まりました。" + #: src/character.cpp msgid "You have starved to death." msgstr "餓死しました。" @@ -199825,6 +195556,12 @@ msgstr "このアイテムが役に立ちそうな部位がありません。" msgid "Cancel" msgstr "取消" +#. ~ you filled to the brim with +#: src/character.cpp +#, c-format +msgid "You filled %1$s to the brim with %2$s." +msgstr "%1$sを%2$sで満たしました。" + #: src/character.cpp src/iexamine.cpp #, c-format msgid "You pour %1$s into the %2$s." @@ -200331,7 +196068,7 @@ msgstr "%sを砕いてかき集めました。" msgid "You need a hammering tool to crush up frozen liquids!" msgstr "凍った液体を砕くためには鍛造性能のある工具が必要です!" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp src/npc.cpp msgid "Wielding: " msgstr "装備: " @@ -200343,11 +196080,6 @@ msgstr "着用: " msgid "Traits: " msgstr "特質: " -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "あなた(%s)" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." @@ -201553,7 +197285,7 @@ msgid "This is full of dirt after being on the ground." msgstr "地面に置いたアイテムが汚れています。" #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/player.cpp +#: src/iuse_actor.cpp src/iuse_actor.cpp msgid "You can't do that while underwater." msgstr "水中でその行動はできません。" @@ -201565,7 +197297,7 @@ msgstr "凍結しています。食べる前に解凍する必要があります msgid "You can't drink it while it's frozen." msgstr "凍っている飲み物は飲めません。" -#: src/consumption.cpp src/player.cpp +#: src/consumption.cpp #, c-format msgid "You need a %s to consume that!" msgstr "これを摂取するには%sが必要です。" @@ -201594,10 +197326,18 @@ msgstr "これは食べられません。" msgid "This is rotten and smells awful!" msgstr "腐っており酷い悪臭がします!" +#: src/consumption.cpp +msgid "The thought of eating demihuman flesh makes you feel sick." +msgstr "亜人の肉を食べると考えただけで気分が悪くなります。" + #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." msgstr "人肉を食べると考えただけで気分が悪くなります。" +#: src/consumption.cpp +msgid "Eating this raw meat probably isn't very healthy." +msgstr "生肉を食べるのは健康的ではない気がします。" + #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." msgstr "吐き気が続いており、何か食べても吐いてしまうでしょう。" @@ -201952,6 +197692,15 @@ msgid " load %1$i charge of %2$s in their %3$s." msgid_plural " load %1$i charges of %2$s in their %3$s." msgstr[0] "は%1$iの%2$sを%3$sに充填しました。" +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "そのアイテムを所持していません。" + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "%sを食べられません。" + #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" msgstr " (周囲)" @@ -202046,9 +197795,9 @@ msgstr "材料を使い果たしました。" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" -msgstr "%sを保管できないため、すぐに消費しないと流れ出してしまいます!続けますか?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" +msgstr "" #: src/crafting.cpp src/pickup.cpp #, c-format @@ -202815,6 +198564,11 @@ msgctxt "damage type" msgid "stab" msgstr "刺突" +#: src/damage.cpp +msgctxt "damage_type" +msgid "bullet" +msgstr "銃弾" + #: src/damage.cpp msgctxt "damage type" msgid "heat" @@ -203001,6 +198755,14 @@ msgstr "テスト - 特殊地形一覧" msgid "Info…" msgstr "情報..." +#: src/debug_menu.cpp +msgid "Enable achievements" +msgstr "有効化 - 実績" + +#: src/debug_menu.cpp +msgid "Game…" +msgstr "ゲーム..." + #: src/debug_menu.cpp msgid "Teleport - short range" msgstr "短距離" @@ -203447,6 +199209,10 @@ msgstr "口渇" msgid "Fatigue" msgstr "疲労" +#: src/debug_menu.cpp +msgid "Sleep Deprivation" +msgstr "追加 - 眠気" + #: src/debug_menu.cpp msgid "Reset all basic needs" msgstr "基本欲求を全てリセット" @@ -203831,6 +199597,14 @@ msgstr "ターンを設定(1日は%iターン)" msgid "Enter benchmark length (in milliseconds):" msgstr "ベンチマーク時間を入力(ミリ秒): " +#: src/debug_menu.cpp +msgid "Achievements are already enabled" +msgstr "実績は既に有効化されています。" + +#: src/debug_menu.cpp +msgid "Achievements enabled" +msgstr "実績が有効化されました。" + #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " @@ -204073,7 +199847,7 @@ msgstr "地形効果: %s L:%d[%s] A:%d" msgid "trap: %s (%d)" msgstr "罠: %s(%d)" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "%s / 部品:" @@ -206998,6 +202772,11 @@ msgstr "木から突然真菌の花が咲きました!" msgid "You completed the achievement \"%s\"." msgstr "実績「%s」を取得しました。" +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "" + #: src/game.cpp src/options.cpp #, c-format msgid "Loading the tileset failed: %s" @@ -207167,6 +202946,16 @@ msgctxt "action" msgid "disassemble" msgstr "分解" +#: src/game.cpp +msgctxt "action" +msgid "insert" +msgstr "挿入" + +#: src/game.cpp +msgctxt "action" +msgid "open" +msgstr "開ける" + #: src/game.cpp msgctxt "action" msgid "unfavorite" @@ -207685,11 +203474,6 @@ msgstr "焚き木を追加しなくても%sは燃え続けそうです。" msgid "Without extra fuel it will burn for between %s to %s." msgstr "焚き木を追加しなくても%sから%sは燃え続けそうです。" -#: src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "騎乗中にその行動はできません。" - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "騎乗中は車両を操作できません。" @@ -207724,6 +203508,44 @@ msgstr "付近に拾得する対象がありません。" msgid "Peek where?" msgstr "どこを覗きますか?" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "超小型" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "小型" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "中型" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "大型" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "超大型" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "何らかの熱源が見えます。" + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "%s" + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "そこに何かがいるように感じます。" + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -207765,17 +203587,17 @@ msgstr "視界外" #: src/game.cpp #, c-format -msgid "%s; Impassable" -msgstr "%s; 通行不可" +msgid "Cover: %d%%" +msgstr "" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" -msgstr "%s; 移動コスト %d" +msgid "Impassable" +msgstr "" #: src/game.cpp -msgid "Lighting: " -msgstr "光量: " +#, c-format +msgid "Move cost: %d" +msgstr "" #: src/game.cpp #, c-format @@ -207783,8 +203605,8 @@ msgid "Sign: %s" msgstr "看板: %s" #: src/game.cpp -msgid "Sign: ???" -msgstr "看板: ???" +msgid "Lighting: " +msgstr "光量: " #: src/game.cpp #, c-format @@ -207796,16 +203618,15 @@ msgstr "下層: %s; 歩行不可" msgid "Below: %s; Walkable" msgstr "下層: %s; 歩行可能" -#: src/game.cpp -#, c-format -msgid "Coverage: %d%%" -msgstr "潜伏: %d%%" - #: src/game.cpp #, c-format msgid "Unfinished task: %s, %d%% complete" msgstr "未完成のタスク: %s(%d%%)" +#: src/game.cpp +msgid "Vehicle: " +msgstr "" + #: src/game.cpp msgid "You cannot see what is inside of it." msgstr "内側は見えません。" @@ -208197,7 +204018,7 @@ msgstr "%sに装填するには最低でも1つの%sが必要です!" msgid "The %s is already full!" msgstr "%sにはこれ以上装填できません!" -#: src/game.cpp src/ranged.cpp +#: src/game.cpp #, c-format msgid "You can't reload a %s!" msgstr "%sには装填できません!" @@ -208939,8 +204760,40 @@ msgid "Speed %s%d!" msgstr "速度 %s%d! " #: src/game.cpp -msgid "You slip while climbing and fall down again." -msgstr "登る途中で滑って落ちました。" +msgid "Your skill in parkour makes it easier to climb." +msgstr "" + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "" + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "" + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "" + +#: src/game.cpp +msgid "You slip while climbing and fall down." +msgstr "" #: src/game.cpp msgid "Climbing is impossible in your current state." @@ -208958,6 +204811,11 @@ msgid "" msgstr "" "アイテムに割当済みのキー: %d/%d" +#: src/game_inventory.cpp +#, c-format +msgid "Inventory of %s" +msgstr "%sの所持品" + #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." msgstr "所持品がありません。" @@ -208982,6 +204840,10 @@ msgstr "打撃" msgid "CUT" msgstr "斬撃" +#: src/game_inventory.cpp +msgid "BULLET" +msgstr "弾薬" + #: src/game_inventory.cpp msgid "ACID" msgstr "耐酸" @@ -209075,6 +204937,15 @@ msgstr "%.2f%s" msgid "VOLUME" msgstr "体積" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "%s" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "消費時間" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "鮮度" @@ -209306,6 +205177,10 @@ msgstr "近接命中" msgid "MOVES" msgstr "コスト" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "" + #: src/game_inventory.cpp msgid "Wield item" msgstr "装備するアイテムを選択" @@ -209316,22 +205191,27 @@ msgstr "装備するアイテムがありません。" #: src/game_inventory.cpp #, c-format -msgid "You can't put anything into your %s." -msgstr "%sには何も収納できません。" - -#: src/game_inventory.cpp src/iuse_actor.cpp -msgid "Holster item" -msgstr "道具を収納する" +msgid "Put item into %s" +msgstr "アイテムを%sに収納する" #: src/game_inventory.cpp #, c-format msgid "Choose an item to put into your %s" msgstr "%sに収納するアイテムを選択" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "収納アイテム" + +#: src/game_inventory.cpp +#, c-format +msgid "Insert items into %s" +msgstr "%sに収納するアイテム" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." -msgstr "%sに収納できるアイテムがありません。" +msgid "Could not put %s into %s, aborting." +msgstr "%sを%sに収納できませんでした。行動を中止します。" #: src/game_inventory.cpp src/iuse.cpp msgid "Cut up what?" @@ -209369,7 +205249,7 @@ msgstr "落とすアイテムを選択" #: src/game_inventory.cpp msgid "To drop x items, type a number before selecting." -msgstr "特定個数のアイテムを落とすには、数字を入力した後にアイテムを選択。" +msgstr "特定個数のアイテムを落とすには、選択前に個数を数字で入力します。" #: src/game_inventory.cpp msgid "You have nothing to drop." @@ -209613,34 +205493,6 @@ msgstr "最低1つはモンスターの群れを選ばなくてはいけませ msgid "Special Zombies" msgstr "特殊ゾンビ" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "ゾンビ" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "トリフィド" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "ロボット" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "亜空間" - -#: src/gamemode_defense.cpp src/handle_action.cpp -msgid "Food" -msgstr "食料" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "傭兵" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "保存許可" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "防衛モード" @@ -209717,7 +205569,35 @@ msgstr "各ウェーブの資金増加量。" msgid "Enemy Selection:" msgstr "敵の選択: " -#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "ゾンビ" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "トリフィド" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "ロボット" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "亜空間" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "食料" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "傭兵" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "保存許可" + +#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp src/options.cpp msgid "Custom" msgstr "カスタム" @@ -209801,6 +205681,10 @@ msgstr "超大型店" msgid "Bar" msgstr "酒場" +#: src/gamemode_defense.cpp +msgid "Mansion" +msgstr "大邸宅" + #: src/gamemode_defense.cpp msgid "One entrance and many rooms. Some medical supplies." msgstr "入口は一か所だが部屋数は多い。一部の医療用品が置いてある。" @@ -210087,6 +205971,10 @@ msgstr "車両を飛ばす方法が分かりません。" msgid "This vehicle doesn't look very airworthy." msgstr "この車両は飛び辛そうです。" +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "" + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "車両を下降させました。" @@ -210472,16 +206360,8 @@ msgid "Change to which movement mode?" msgstr "移動モードを選択" #: src/handle_action.cpp -msgid "Run" -msgstr "駆足" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "歩行" - -#: src/handle_action.cpp -msgid "Crouch" -msgstr "屈む" +msgid "Cycle move mode" +msgstr "" #: src/handle_action.cpp msgid "You don't know any spells to cast." @@ -210976,6 +206856,10 @@ msgid "Withdraw how much? Max: %d cent. (0 to cancel) " msgid_plural "Withdraw how much? Max: %d cents. (0 to cancel) " msgstr[0] "引出金額を入力 最大: %dセント(0で取消) " +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "自動販売機には何も入っていません。" @@ -212149,16 +208033,19 @@ msgid "You're illiterate, and can't read the screen." msgstr "文盲なので、画面に表示された文章を読めません。" #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" -msgstr "失敗しました!給油ポンプが見当たりません!" +#, c-format +msgid "Failure! No %s pumps found!" +msgstr "" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" -msgstr "失敗しました!ガスタンクが見当たりません!" +#, c-format +msgid "Failure! No %s tank found!" +msgstr "" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." -msgstr "このステーションには燃料の在庫が不足しています。ご不便をお掛けして申し訳御座いません。" +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." +msgstr "" #: src/iexamine.cpp msgid "Welcome to AutoGas!" @@ -212169,36 +208056,41 @@ msgid "What would you like to do?" msgstr "御用は何ですか?" #: src/iexamine.cpp -msgid "Buy gas." -msgstr "ガソリンの購入" +#, c-format +msgid "Buy %s." +msgstr "" #: src/iexamine.cpp msgid "Refund cash." msgstr "現金の払い戻し" #: src/iexamine.cpp -msgid "Current gas pump: " -msgstr "現在のガソリンポンプ: " +#, c-format +msgid "Current %s pump: " +msgstr "" #: src/iexamine.cpp -msgid "Choose a gas pump." -msgstr "ガソリンポンプの変更" +#, c-format +msgid "Choose a %s pump." +msgstr "" #: src/iexamine.cpp msgid "Your discount: " msgstr "割引: " #: src/iexamine.cpp -msgid "Your price per gasoline unit: " -msgstr "ガソリン価格(単位): " +#, c-format +msgid "Your price per %s unit: " +msgstr "" #: src/iexamine.cpp msgid "Hack console." msgstr "コンソールをハッキングしました。" #: src/iexamine.cpp -msgid "Please choose gas pump:" -msgstr "ガソリンポンプの選択: " +#, c-format +msgid "Please choose %s pump:" +msgstr "" #: src/iexamine.cpp msgid "Pump " @@ -212210,8 +208102,8 @@ msgstr "お金が足りません、キャッシュカードにお金を補充し #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" -msgstr "ガソリンを何リットル購入しますか?最大: %dL(0で取消) " +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" +msgstr "" #: src/iexamine.cpp msgid "Glug Glug Glug" @@ -212264,8 +208156,8 @@ msgid "You jump over an obstacle." msgstr "地形を飛び越えました。" #: src/iexamine.cpp -msgid "You can't climb down there" -msgstr "ここは降りられません。" +msgid "You can't climb down there." +msgstr "" #: src/iexamine.cpp #, c-format @@ -212291,6 +208183,14 @@ msgstr "一度降りても簡単に引き返せそうです。降りますか? msgid "You may have problems climbing back up. Climb down?" msgstr "一度降りると恐らく引き返すのは困難です。降りますか?" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "" + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "後ろに引き返しました。" @@ -212321,9 +208221,9 @@ msgstr "患者は死亡しています。続行するには死体を除去して #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate." -" Please move patient to appropriate facility. Exiting." -msgstr "生体レベル評価エラー: 完全機械化済。オートドクMk.XIは未対応です。患者を適切な装置に移してください。操作を終了します。" +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." +msgstr "" #: src/iexamine.cpp msgid "Autodoc Mk. XI. Status: Online. Please choose operation." @@ -212875,10 +208775,6 @@ msgstr "車両部品" msgid "Traps" msgstr "罠" -#: src/init.cpp -msgid "Bionics" -msgstr "生体部品" - #: src/init.cpp msgid "Terrain" msgstr "地形" @@ -212915,6 +208811,10 @@ msgstr "車両原型" msgid "Mapgen weights" msgstr "区域生成荷重" +#: src/init.cpp +msgid "Behaviors" +msgstr "態度" + #: src/init.cpp msgid "Monster types" msgstr "モンスタータイプ" @@ -212931,6 +208831,10 @@ msgstr "モンスター派閥" msgid "Factions" msgstr "派閥" +#: src/init.cpp +msgid "Move modes" +msgstr "" + #: src/init.cpp msgid "Crafting recipes" msgstr "製作レシピ" @@ -212951,10 +208855,6 @@ msgstr "NPC種別" msgid "Missions" msgstr "依頼" -#: src/init.cpp -msgid "Behaviors" -msgstr "態度" - #: src/init.cpp msgid "Harvest lists" msgstr "採取リスト" @@ -212967,8 +208867,8 @@ msgstr "解体" msgid "Mutations" msgstr "変異" -#: src/init.cpp -msgid "Achivements" +#: src/init.cpp src/scores_ui.cpp +msgid "Achievements" msgstr "実績" #: src/init.cpp @@ -213027,6 +208927,10 @@ msgstr "特殊地形" msgid "Ammunition types" msgstr "弾薬タイプ" +#: src/init.cpp +msgid "Bionics" +msgstr "生体部品" + #: src/init.cpp msgid "Gates" msgstr "門" @@ -213063,6 +208967,10 @@ msgstr "匂いの種類" msgid "Scores" msgstr "スコア" +#: src/init.cpp +msgid "Achivements" +msgstr "実績" + #: src/init.cpp msgid "Disease types" msgstr "疾患タイプ" @@ -213471,7 +209379,7 @@ msgstr "比較するには2つのアイテムを選択する必要がありま msgid "No items were selected. Use %s to select them." msgstr "アイテムが選択されていません。%sでアイテムを選択してください。" -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "落とすアイテム" @@ -213591,14 +209499,18 @@ msgstr "VS 混合" msgid "Material: %s" msgstr "素材: %s" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp src/item_pocket.cpp msgid "Volume: " msgstr "容積: " -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "重量: " +#: src/item.cpp +msgid "Length: " +msgstr "長さ: " + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -213730,6 +209642,10 @@ msgstr "興奮" msgid "Portions: " msgstr "分量: " +#: src/item.cpp +msgid "Consume time: " +msgstr "" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "* このアイテムを摂取し続けると依存症になります。" @@ -213872,7 +209788,7 @@ msgstr "貫通力: " #: src/item.cpp msgid "Range: " -msgstr "射程距離: " +msgstr "射程: " #: src/item.cpp msgid "Dispersion: " @@ -213907,7 +209823,7 @@ msgstr "この弾薬は発火します。" #: src/item.cpp msgid "" "Weapon is not loaded, so stats below assume the default ammo: " -msgstr "弾薬未装填(既定の弾薬での数値): " +msgstr "弾薬未装填(既定弾薬): " #: src/item.cpp msgid "Ranged damage: " @@ -213975,6 +209891,10 @@ msgstr "適正射程: " msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr "" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "照準時間: " @@ -213997,6 +209917,10 @@ msgid "Contains %i casing" msgid_plural "Contains %i casings" msgstr[0] "%i個の空薬莢が内部に残存" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "" + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -214009,6 +209933,14 @@ msgid "" "attacks with it." msgstr "銃器に取り付けると遠い間合いから攻撃可能になります。" +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "" + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" + #: src/item.cpp msgid "Dispersion modifier: " msgstr "分散修正: " @@ -214063,6 +209995,10 @@ msgstr "防御: 打撃: " msgid "Cut: " msgstr " 斬撃: " +#: src/item.cpp +msgid "Ballistic: " +msgstr "防弾: " + #: src/item.cpp msgid "Acid: " msgstr "耐酸: " @@ -214245,10 +210181,6 @@ msgstr "動作制限: " msgid "Encumbrance when full: " msgstr "最大動作制限: " -#: src/item.cpp -msgid "Storage: " -msgstr "収納容積: " - #: src/item.cpp msgid "Weight capacity modifier: " msgstr "所持重量変更: " @@ -214257,6 +210189,10 @@ msgstr "所持重量変更: " msgid "Weight capacity bonus: " msgstr "所持重量ボーナス: " +#: src/item.cpp +msgid "Storage: " +msgstr "収納容積: " + #: src/item.cpp msgid "* This item can be worn with a helmet." msgstr "* このアイテムはヘルメットと同時に着用可能です。" @@ -214463,27 +210399,6 @@ msgstr "より多くのレシピを考え出すのに役立つ可 msgid "You need to read this book to see its contents." msgstr "内容を見るには、この本を読む必要があります。" -#: src/item.cpp -msgid "This container " -msgstr "この容器は" - -#: src/item.cpp -msgid "can be resealed, " -msgstr "再密封が可能で、" - -#: src/item.cpp -msgid "is watertight, " -msgstr "水密性があり、" - -#: src/item.cpp -msgid "prevents spoiling, " -msgstr "鮮度を保つ機能を持ち、" - -#: src/item.cpp -#, c-format -msgid "can store %s %s." -msgstr "最大 %s %sの容積があります。" - #: src/item.cpp #, c-format msgid "Capacity: %dmJ" @@ -214508,7 +210423,6 @@ msgstr "装填量: %d" msgid "Compatible magazines: " msgstr "互換弾倉: " -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -214516,9 +210430,35 @@ msgid_plural "Maximum charges of %s." msgstr[0] "%sを最大充填可能。" #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "最大まで充填可能。" +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard " +"batteries." +msgstr "" +"* " +"この道具はUPSで作動するよう改造されています。通常の電池とは互換性がありません。" + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "" +"* " +"この道具は充電して駆動するように改造されています。通常の電池とは互換性がありません。" + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" +"* " +"この道具は充電して駆動するよう改造されており、UPS互換充電ステーションで充電できます。通常の電池でも充電できますが、一度入れた電池は取り出せません。" + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "* この道具はCBM電力で作動します。" #: src/item.cpp #, c-format @@ -214603,6 +210543,10 @@ msgstr "打撃耐性: " msgid "Cut Protection: " msgstr "斬撃耐性: " +#: src/item.cpp +msgid "Ballistic Protection: " +msgstr "防弾: " + #: src/item.cpp msgid "Stat Bonus: " msgstr "能力値ボーナス: " @@ -214697,6 +210641,11 @@ msgid "" "with contents." msgstr "* このアイテムは柔軟です。内容物に応じて体積や動作制限が変化します。" +#: src/item.cpp +msgid "" +"* This item is not rigid. Its volume increases with contents." +msgstr "* このアイテムは柔軟です。内容物に応じて体積が変化します。" + #: src/item.cpp msgid "* This item does not conduct electricity." msgstr "* このアイテムは絶縁体です。" @@ -214714,37 +210663,6 @@ msgstr "* このアイテムは導電体です。" msgid "* This clothing will give you an allergic reaction." msgstr "* この衣類を着用するとアレルギー反応を起こします。" -#: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard " -"batteries." -msgstr "" -"* " -"この道具はUPSで作動するよう改造されています。通常の電池とは互換性がありません。" - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." -msgstr "" -"* " -"この道具は充電して駆動するように改造されています。通常の電池とは互換性がありません。" - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." -msgstr "" -"* " -"この道具は充電して駆動するよう改造されており、UPS互換充電ステーションで充電できます。通常の電池でも充電できますが、一度入れた電池は取り出せません。" - -#: src/item.cpp -msgid "* This tool runs on bionic power." -msgstr "* この道具はCBM電力で作動します。" - #: src/item.cpp msgid "" "* This item has been modified to listen to radio signals. It " @@ -214766,18 +210684,6 @@ msgid "" "detonate it immediately." msgstr "* このアイテムを無線信号で起動すると即座に爆発します。" -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "* この銃器の発射には両手を空けておく必要があります。" - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "* このMODは取り付けた銃器の照準速度を低下させます。" - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "* このMODは弾薬を発射すると摩耗することがあります。" - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -215275,26 +211181,11 @@ msgctxt "magazine" msgid "Eject %1$s from %2$s?" msgstr "%1$sを%2$sから取り出しますか?" -#: src/item.cpp -#, c-format -msgid "You can't mix loads in your %s." -msgstr "%sに別の物を混合して装填できません。" - -#: src/item.cpp -#, c-format -msgid "That %s isn't water-tight." -msgstr "%sは防水ではありません。" - #: src/item.cpp #, c-format msgid "That %s must be on the ground or held to hold contents!" msgstr "内容物を保存するには、%sを所持しているか地面に置いておく必要があります。" -#: src/item.cpp -#, c-format -msgid "You can't seal that %s!" -msgstr "%sは密封できません!" - #: src/item.cpp #, c-format msgid "That %1$s won't hold %2$s." @@ -215433,6 +211324,31 @@ msgstr "動作を実行できるアイテムを何も持っていません。" msgid "Execute which action?" msgstr "どの動作を実行しますか?" +#: src/item_contents.cpp +msgid "is not a container" +msgstr "は容器ではない" + +#: src/item_contents.cpp +msgid "is not rigid" +msgstr "には剛性がない" + +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "" + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr "" + +#: src/item_contents.cpp +#, c-format +msgid "%d Pockets with capacity:" +msgstr "" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" +msgstr "" + #: src/item_factory.cpp msgid "" "Can be activated to increase environmental protection. Will " @@ -215457,6 +211373,179 @@ msgstr "所持品" msgid "inside %s" msgstr "%sの内部" +#: src/item_pocket.cpp +msgid "sealed" +msgstr "密封" + +#: src/item_pocket.cpp +msgid "open" +msgstr "開封" + +#: src/item_pocket.cpp +#, c-format +msgid "Pocket %d:" +msgstr "ポケット%d:" + +#: src/item_pocket.cpp +msgid "Maximum item length: " +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Minimum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Maximum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Base moves to remove item: %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is rigid." +msgstr "このポケットは剛性があります。" + +#: src/item_pocket.cpp +msgid "This pocket can contain a liquid." +msgstr "このポケットは液体収納可能です。" + +#: src/item_pocket.cpp +msgid "This pocket can contain a gas." +msgstr "このポケットはガス収納可能です。" + +#: src/item_pocket.cpp +msgid "This pocket will spill if placed into another item or worn." +msgstr "このポケットは他のアイテムへの収納や着用によって漏出してしまいます。" + +#: src/item_pocket.cpp +msgid "This pocket protects its contents from fire." +msgstr "このポケットは内容物の焼損を防ぐ機能があります。" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Contained items spoil at %.0f%% their original rate." +msgstr "収納されたアイテムは元の%.0f%%の速度で腐敗が進行します。" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Items in this pocket weigh %.0f%% their original weight." +msgstr "収納されたアイテムは元の重量の%.0f%%です。" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "%s pocket %d" +msgstr "%sポケット%d" + +#: src/item_pocket.cpp +#, c-format +msgid "pocket %d" +msgstr "ポケット%d" + +#: src/item_pocket.cpp +msgid "This pocket is empty." +msgstr "このポケットは空です。" + +#: src/item_pocket.cpp +msgid "This pocket is sealed." +msgstr "このポケットは密封されています。" + +#: src/item_pocket.cpp +msgid " of " +msgstr "x" + +#: src/item_pocket.cpp +msgid "Contents of this pocket:" +msgstr "内容物:" + +#: src/item_pocket.cpp +msgid "only mods can go into mod pocket" +msgstr "MOD以外は収納できない" + +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster already contains an item" +msgstr "アイテム収納済" + +#: src/item_pocket.cpp +msgid "can't contain liquid" +msgstr "液体は収納できない" + +#: src/item_pocket.cpp +msgid "can't mix liquid with contained item" +msgstr "アイテムと他の液体は同時に収納できない" + +#: src/item_pocket.cpp +msgid "can't put non liquid into pocket with liquid" +msgstr "液体と他のアイテムは同時に収納できない" + +#: src/item_pocket.cpp +msgid "can't contain gas" +msgstr "ガスは収納できない" + +#: src/item_pocket.cpp +msgid "can't mix gas with contained item" +msgstr "ガスと他のアイテムは同時に収納できない" + +#: src/item_pocket.cpp +msgid "can't put non gas into pocket with gas" +msgstr "ガスと他のアイテムは同時に収納できない" + +#: src/item_pocket.cpp +msgid "item does not have correct flag" +msgstr "正しいフラグがない" + +#: src/item_pocket.cpp +msgid "item is not an ammo" +msgstr "これは弾薬ではない" + +#: src/item_pocket.cpp +msgid "item is not the correct ammo type" +msgstr "適切な弾薬タイプではない" + +#: src/item_pocket.cpp +msgid "tried to put too many charges of ammo in item" +msgstr "弾薬はこれ以上収納できない" + +#: src/item_pocket.cpp +msgid "item too big" +msgstr "体積が大きすぎる" + +#: src/item_pocket.cpp +msgid "item is too long" +msgstr "長すぎる" + +#: src/item_pocket.cpp +msgid "item is too small" +msgstr "体積が小さすぎる" + +#: src/item_pocket.cpp +msgid "item is too heavy" +msgstr "重すぎる" + +#: src/item_pocket.cpp +msgid "pocket is holding too much weight" +msgstr "総重量が重すぎる" + +#: src/item_pocket.cpp +msgid "not enough space" +msgstr "容積が足りない" + #: src/itype.h msgid "click." msgstr "カチッ。" @@ -215650,6 +211739,12 @@ msgstr "身体が丈夫になった気がします。" msgid "You no longer need to fear the flu, at least for some time." msgstr "少なくともしばらくの間は、インフルエンザの心配はなくなりました。" +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "パッケージに記載されている有効期限がかなり古いことに気付きました。もう効果がないかもしれません。" + #: src/iuse.cpp msgid "" "You no longer need to worry about asthma attacks, at least for a while." @@ -217033,8 +213128,8 @@ msgstr "は新たなマスクフィルターを必要としています #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." -msgstr "%sにマスクフィルターが装填されていません。" +msgid "Your %s doesn't have a filter." +msgstr "" #: src/iuse.cpp #, c-format @@ -219180,17 +215275,13 @@ msgstr[0] "%1$dの%2$sを%3$sに装填しました。" #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" -msgstr "%sはあなたをスキャンすると激しい警告音を発しました!" +msgid "You deploy the %s wrong. It is hostile!" +msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "%sはあなたをスキャンしてビーッという音を発しました。IFFの設定が完了したようです。" - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." -msgstr "レーザータレットのLED投光照明が光量を下げました。" +msgid "You deploy the %s." +msgstr "" #: src/iuse_actor.cpp msgid "Place npc where?" @@ -219214,36 +215305,6 @@ msgstr "充電済みのUPS等で%sに電力を供給する必要があります msgid "There is also a certain bionic that helps with this kind of armor." msgstr "この種のアーマーを運用するにあたって、一部の生体部品も助けになるでしょう。" -#: src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "付近にピッキングする対象がありません。" - -#: src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "どこにロックピックを使用しますか?" - -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "鼻をほじりました。鼻の穴がドアのように開きました。" - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" -"友達を選ぶことはできますし、\n" -"自分の鼻をほじることもできますが、\n" -"友達の鼻をほじることはできませんよ" - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "ドアに鍵は掛かっていません。" - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "それはピッキングできません。" - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "製作場所" @@ -219372,10 +215433,6 @@ msgstr "天候が変わらなければ、点火におよそ%d分かかります msgid "At your skill level, it will take around %d minutes to light a fire." msgstr "現在のスキルレベルでは点火に約%d分かかります。" -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "そのアイテムを所持していません。" - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -219521,38 +215578,6 @@ msgstr "自分を焼灼するには火(装填量4以上)が必要です。" msgid "You need at least %d charges to cauterize wounds." msgstr "傷を焼灼するには%dの装填量が必要です。" -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "適した死体がありません" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "死体を刻んで奴隷として立ち上がらせるのは、今のところ難しすぎるようです。" - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "無力化して奴隷ゾンビにする死体を選択" - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "生まれました!かわいい奴隷ゾンビですよ。" - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "まあなんだ、ぐちゃぐちゃの挽き肉にするよりは、建設的な作業ですね..." - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "誰かの死体を切り分けて奴隷にするなんて、恐ろしいことをしているような気がしました。" - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "1以上の%sスキルが必要です。" - #: src/iuse_actor.cpp msgid "Hsss" msgstr "シュー" @@ -219643,6 +215668,10 @@ msgstr "複数の呪文を習得できます。" msgid "Spells Contained:" msgstr "呪文: " +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "" + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -219706,31 +215735,11 @@ msgstr "このアイテムは%1$s(レベル%2$i)を詠唱します。" msgid "This item never fails." msgstr "このアイテムの機能は絶対に失敗しません。" -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too big to fit in your %2$s" -msgstr "%1$sは%2$sに対して大きすぎます。" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too small to fit in your %2$s" -msgstr "%1$sは%2$sに対して小さすぎます。" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too heavy to fit in your %2$s" -msgstr "%1$sは%2$sに対して重すぎます。" - #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" msgstr "%1$sを%2$sに収納するのはあまり良い考えとは思えません。" -#: src/iuse_actor.cpp -#, c-format -msgid "You can't put your %1$s in your %2$s" -msgstr "%1$sを%2$sに装着することはできません。" - #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" @@ -219741,6 +215750,10 @@ msgstr "%sをホルスターに収めました。" msgid "You need to unwield your %s before using it." msgstr "%sを使用する前に装備状態を解除する必要があります。" +#: src/iuse_actor.cpp +msgid "Holster item" +msgstr "道具を収納する" + #: src/iuse_actor.cpp #, c-format msgid "Draw %s" @@ -219752,60 +215765,8 @@ msgid "Use %s" msgstr "%sを使用する" #: src/iuse_actor.cpp -msgid "Can be activated to store a suitable item." -msgid_plural "Can be activated to store suitable items." -msgstr[0] "使用して適切なアイテムを収納できます。" - -#: src/iuse_actor.cpp -msgid "Num items: " -msgstr "アイテム数: " - -#: src/iuse_actor.cpp -msgid "Item volume: Min: " -msgstr "容積: 最小: " - -#: src/iuse_actor.cpp -msgid " Max: " -msgstr "最大: " - -#: src/iuse_actor.cpp -msgid "Max item weight: " -msgstr "最大収納重量: " - -#: src/iuse_actor.cpp -#, c-format -msgid " %s" -msgstr " %s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to store a single round of " -msgid_plural "Can be activated to store up to %i rounds of " -msgstr[0] "対応弾薬: %i発の" - -#: src/iuse_actor.cpp -#, c-format -msgid "No matching ammo for the %1$s" -msgstr "%1$sに対応した弾薬が無い" - -#: src/iuse_actor.cpp -#, c-format -msgid "You store the %1$s in your %2$s" -msgstr "%1$sを%2$sに収納しました" - -#: src/iuse_actor.cpp -msgid "Store ammo" -msgstr "弾薬収納" - -#: src/iuse_actor.cpp -#, c-format -msgid "Store ammo in %s" -msgstr "%sに弾薬を収納する" - -#: src/iuse_actor.cpp src/vehicle_use.cpp -#, c-format -msgid "Unload %s" -msgstr "%sから弾薬を抜き取る" +msgid "Can be activated to store suitable items." +msgstr "使用して適切なアイテムを収納できます。" #: src/iuse_actor.cpp #, c-format @@ -220120,8 +216081,8 @@ msgid "You can't install bionics while mounted." msgstr "騎乗中に生体部品の埋め込みはできません。" #: src/iuse_actor.cpp -msgid "You can't self-install bionics." -msgstr "CBMを自力で移植できません。" +msgid "You can't self-install this CBM." +msgstr "このCBMは自力で移植できません。" #: src/iuse_actor.cpp msgid "You can't install a filthy CBM!" @@ -220266,6 +216227,10 @@ msgstr "耐打" msgid "Cut" msgstr "耐斬" +#: src/iuse_actor.cpp +msgid "Ballistic" +msgstr "防弾" + #: src/iuse_actor.cpp msgid "Acid" msgstr "耐酸" @@ -220278,10 +216243,6 @@ msgstr "耐火" msgid "Warmth" msgstr "暖かさ" -#: src/iuse_actor.cpp -msgid "Storage" -msgstr "収納" - #: src/iuse_actor.cpp msgid "Are you sure? You will not gain any materials back." msgstr "使った素材は戻ってきません。よろしいですか?" @@ -221159,10 +217120,6 @@ msgstr "ヘラジカという名の純粋悪です。逃げましょう!" msgid "It is SOFTWARE BUG." msgstr "ソフトウェアのバグです。" -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "robotfindskitten v22 2008/07 - [q] 終了" - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "robotfindskitten v22 2008/07" @@ -221183,21 +217140,27 @@ msgid ")." msgstr ")。" #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if" " they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" -"ゲームの目的は子猫を見つけることです。しかし様々な子猫以外の存在がこのゲームを複雑にしています。ロボットはそれが子猫であるか否か、触れなければ判別できません。ロボットが子猫を見つけたらゲームクリアです。途中で終了する場合は'q'キーか'Q'キーもしくは'Esc'キーを押してください。" #: src/iuse_software_kitten.cpp msgid "Press any key to start." msgstr "始めるには何かキーを押して下さい。" #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." -msgstr "無効なコマンド:方向キーを使うか[q]を押して下さい。" +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "" + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" @@ -221558,8 +217521,8 @@ msgid "Loading" msgstr "ロード中" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" -msgstr "エラー:エネルギー文字列が無効です。デフォルト設定NONE" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" +msgstr "" #: src/magic.cpp msgid "ERROR: Invalid damage type string. Defaulting to none" @@ -221781,6 +217744,12 @@ msgstr "対象" msgid "Only affects the monsters: %s" msgstr "モンスターにのみ影響: %s" +#. ~ amount of damage per second, abbreviated +#: src/magic.cpp +#, c-format +msgid ", %d/sec" +msgstr "、%d/秒" + #: src/magic.cpp src/veh_interact.cpp msgid "Damage" msgstr "与ダメージ" @@ -222612,7 +218581,7 @@ msgstr "共鳴連鎖を開始" #: src/mapgen.cpp msgid "Bionic access" -msgstr "生体部品利用" +msgstr "生体部品管理端末" #: src/mapgen.cpp msgid "Open Chambers" @@ -224719,6 +220688,34 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "奇妙な神殿の入り口を開きました。" +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "" + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -226489,12 +222486,35 @@ msgstr "%sの頭部が破裂し、大量の触手が渦を巻いています!" msgid "The %s lashes its tentacle at you!" msgstr "%sが触手を叩きつけました!" +#: src/monattack.cpp +#, c-format +msgid "The %s lashes its tentacle at !" +msgstr "%sがに触手を叩きつけました!" + #. ~ 1$s is bodypart name, 2$d is damage value. #: src/monattack.cpp #, c-format msgid "Your %1$s is hit for %2$d damage!" msgstr "攻撃が%1$sに%2$dのダメージを与えました!" +#. ~ 1$s is bodypart name, 2$d is damage value. +#: src/monattack.cpp +#, c-format +msgid "'s %1$s is hit for %2$d damage!" +msgstr "の攻撃が%1$sに%2$dのダメージを与えました!" + +#: src/monattack.cpp +#, c-format +msgid "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" +msgstr "%1$sの触手による攻撃が%2$sに当たりましたが、装甲によって逸らされました!" + +#: src/monattack.cpp +#, c-format +msgid "" +"The %1$s lashes its tentacle at 's %2$s, but glances off their " +"armor!" +msgstr "%1$sの触手による攻撃がの%2$sに当たりましたが、装甲によって逸らされました!" + #: src/monattack.cpp #, c-format msgid "The %s's arms fly out at you, but you dodge!" @@ -226594,6 +222614,10 @@ msgstr "%sに見つめられています。全身に震えが走りました。" msgid "You feel like you're being watched, it makes you sick." msgstr "見られている気がします。嫌な気分です。" +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -227629,18 +223653,6 @@ msgstr "%sの眼に宿っていた光が消え失せると、手にした武器 msgid "The %s was destroyed! GAME OVER!" msgstr "%sが破壊されました!ゲームオーバー!" -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its pockets, but there's nothing left in them." -msgstr "%sの手がポケットに飛び込みましたが、取られるものがありませんでした。" - -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its remaining pockets, opening them!" -msgstr "%sはポケットを探り、おもむろに中身を取り出しました!" - #. ~ %s is the possessive form of the monster's name #: src/mondeath.cpp #, c-format @@ -227683,11 +223695,6 @@ msgstr "視認できない敵からの射撃を検出し、撃ち返しモード msgid "zombie slave" msgstr "奴隷ゾンビ" -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "%sを押し退ける" - #: src/monexamine.cpp msgid "Rename" msgstr "改名する" @@ -228165,10 +224172,6 @@ msgstr "追跡" msgid "Ignoring." msgstr "無視" -#: src/monster.cpp -msgid "Zombie slave." -msgstr "奴隷" - #: src/monster.cpp msgid "Hostile!" msgstr "敵対!" @@ -228195,7 +224198,7 @@ msgstr "厚い皮" #: src/monster.cpp msgid "armor plating" -msgstr "装甲板" +msgstr "装甲" #: src/monster.cpp msgid "dense jelly mass" @@ -228246,12 +224249,12 @@ msgid "It is nearly dead!" msgstr "瀕死" #: src/monster.cpp -msgid " Difficulty " -msgstr "強さ" +msgid "Can see to your current location" +msgstr "" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" -msgstr "あなたを知覚しています!" +#: src/monster.cpp +msgid "Can't see to your current location" +msgstr "" #: src/monster.cpp #, c-format @@ -228301,11 +224304,6 @@ msgstr "これは%sです。%s%sです。" msgid "It is %s." msgstr "%s" -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "%s" - #: src/monster.cpp msgid "an animal" msgstr "動物" @@ -228655,6 +224653,15 @@ msgstr "疲労:" msgid "Focus trends towards:" msgstr "変動:" +#. ~ This should never occur - this is the message when the character swtiches +#. to +#. ~ an invalid move mode or there's not a message for failing to switch to a +#. move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "" + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -229216,8 +225223,8 @@ msgstr "所持重量上限: %.1f %s" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" -msgstr "近接攻撃力ボーナス: %.1f" +msgid "Bash damage bonus: %.1f" +msgstr "" #: src/newcharacter.cpp msgid "" @@ -229604,6 +225611,10 @@ msgstr "開始/ゾンビの傍" msgid "Various limb wounds" msgstr "開始/手足の負傷" +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "" + #: src/newcharacter.cpp msgid "No starting NPC" msgstr "開始地点NPCなし" @@ -229620,6 +225631,10 @@ msgstr "身長:" msgid "Age:" msgstr "年齢:" +#: src/newcharacter.cpp src/player_display.cpp +msgid "Blood type:" +msgstr "" + #: src/newcharacter.cpp #, c-format msgid "" @@ -229769,6 +225784,18 @@ msgstr "年齢を入力してください。(16~55)" msgid "Enter height in centimeters. Minimum 145, maximum 200" msgstr "身長を入力してください。(145~200)" +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "" + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" +msgstr "" + #: src/newcharacter.cpp msgid "Name of template:" msgstr "テンプレート名: " @@ -229878,13 +225905,12 @@ msgid "%1$s says something but you can't hear it!" msgstr "%1$sが何か言っていますが聴こえません!" #: src/npc.cpp -msgid "NPC: " -msgstr "NPC: " +msgid "Aware of your presence" +msgstr "" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" -msgstr "装備: %s" +msgid "Unaware of you" +msgstr "" #: src/npc.cpp msgid "Completely untrusting" @@ -230259,8 +226285,13 @@ msgstr "双方向無線機から%sの声が聞こえました。「指定され #: src/npcmove.cpp #, c-format -msgid "%s %s" -msgstr "%s%s" +msgid " %s, %s" +msgstr "" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" +msgstr "" #: src/npcmove.cpp #, c-format @@ -231117,6 +227148,15 @@ msgstr "支給: " msgid "Select a follower" msgstr "同行者を選択" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to get information on an item." +msgstr "" +"%s との取引\n" +"%sでリスト切り替え、文字キーで選択、%sで決定、%sで終了、%sでアイテムの情報を取得。" + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -231156,12 +227196,7 @@ msgstr "次ページ >" #: src/npctrade.cpp msgid "Examine which item?" -msgstr "アイテム調査" - -#: src/npctrade.cpp -#, c-format -msgid "Trade how many containers with %s [MAX: %d]: " -msgstr "取引する%sの個数 [最大: %d]: " +msgstr "調査するアイテムを選択" #: src/npctrade.cpp #, c-format @@ -231197,18 +227232,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "いいね!取り引き成立かな?" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to quit,\n" -"? to get information on an item." -msgstr "" -"TABでリスト切り替え、文字キーで選択、Enterで決定、Escで終了、\n" -"?でアイテムの情報を取得。" - -#: src/options.cpp -msgid "System language" -msgstr "システム言語" - #: src/options.cpp msgid "General" msgstr "全般" @@ -231229,11 +227252,6 @@ msgstr "世界生成" msgid "Android" msgstr "Android" -#: src/options.cpp src/overmap_ui.cpp src/ranged.cpp -#, c-format -msgid "%s" -msgstr "%s" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -231279,6 +227297,10 @@ msgstr "Deon's" msgid "Basic" msgstr "基本" +#: src/options.cpp +msgid "System language" +msgstr "システム言語" + #: src/options.cpp msgid "Default character name" msgstr "初期設定/キャラクター名" @@ -231767,6 +227789,11 @@ msgstr "" msgid "12h" msgstr "12h" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "軍隊式" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -232252,16 +228279,16 @@ msgid "Terminal width" msgstr "画面サイズ/横幅" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." -msgstr "ゲーム画面の横幅を設定します。反映には再起動が必要です。" +msgid "Set the size of the terminal along the X axis." +msgstr "" #: src/options.cpp msgid "Terminal height" msgstr "画面サイズ/縦幅" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." -msgstr "ゲーム画面の縦幅を設定します。反映には再起動が必要です。" +msgid "Set the size of the terminal along the Y axis." +msgstr "" #: src/options.cpp msgid "Font blending" @@ -232383,13 +228410,14 @@ msgid "Choose the tileset you want to use." msgstr "使用したいタイルセットを選択します。" #: src/options.cpp -msgid "Memory map drawing mode" -msgstr "記憶マップ/描画モード" +msgid "Memory map overlay preset" +msgstr "" #: src/options.cpp msgid "" -"Specified the mode in which the memory map is drawn. Requires restart." -msgstr "記憶マップの描画モードを指定します。反映には再起動が必要です。" +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." +msgstr "" #: src/options.cpp msgid "Darkened" @@ -232399,6 +228427,70 @@ msgstr "白黒" msgid "Sepia" msgstr "セピア" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "" + #: src/options.cpp msgid "Pixel minimap" msgstr "ミニマップ/表示" @@ -232606,134 +228698,6 @@ msgstr "2x" msgid "4x" msgstr "4x" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "初期視界範囲" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "ゲーム開始時の視界の広さを決定します。" - -#: src/options.cpp -msgid "Initial stat points" -msgstr "初期ポイント/能力値" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "キャラクター作成時の能力値に割り振る初期ポイントを設定します。" - -#: src/options.cpp -msgid "Initial trait points" -msgstr "初期ポイント/特質" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "キャラクター作成時の特質に割り振る初期ポイントを設定します。" - -#: src/options.cpp -msgid "Initial skill points" -msgstr "初期ポイント/スキル" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "キャラクター作成時のスキルに割り振る初期ポイントを設定します。" - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "特質ポイント最大値" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "キャラクター作成時に取得できる特質の最大値を設定します。" - -#: src/options.cpp -msgid "Skill training speed" -msgstr "スキル/成長速度" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "" -"鍛錬や学習で得られるスキル経験値の倍率を設定します。0.5 で半分の速度に、2.0 で倍速になります。0.0 " -"にするとNPCから教わる以外ではスキルが上昇しなくなります。" - -#: src/options.cpp -msgid "Skill rust" -msgstr "スキル/劣化" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" -" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" -"時間経過によるスキルレベル低下を設定します。通常: ターン経過依存\n" -"下限: 2レベルまで低下。 - 知性: 知性依存。 - 知性下限: 知性依存+下限\n" -"無効: 低下無し。" - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "通常" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "下限" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "知性" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "知性下限" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "無効" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "実験/3D視界" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in" -" z-level mode, the vision will extend beyond current z-level. Currently " -"very bugged!" -msgstr "" -"falseにすると、視界は自分が居る階層に限定されます。z軸テストを有効にしたうえでtrueにすると視界がより拡張されます。現時点はバグを含んでいます!" - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "視野のZ軸拡張" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "" -"実験的な上下方向の視界範囲を設定します(数値分の上下階層に視界が届きます)。視野のZ軸拡張を有効化すると、ゲームの処理速度が大幅に低下する可能性があります。数値が低いほど処理速度は上昇します。" - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "実験/パス名変換" - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" -" Windows users." -msgstr "" -"Trueにすると、読み込み時にファイルのパス名がUTF-" -"8に変換され、書き込み時に再変換されます。主にWindowsで中国語/日本語/韓国語を表示するユーザー向けの設定です。" - #: src/options.cpp msgid "Core version data" msgstr "コアバージョンデータ" @@ -233013,6 +228977,134 @@ msgstr "ポイント分離のみ" msgid "No freeform" msgstr "フリー禁止" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "初期視界範囲" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "ゲーム開始時の視界の広さを決定します。" + +#: src/options.cpp +msgid "Initial stat points" +msgstr "初期ポイント/能力値" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "キャラクター作成時の能力値に割り振る初期ポイントを設定します。" + +#: src/options.cpp +msgid "Initial trait points" +msgstr "初期ポイント/特質" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "キャラクター作成時の特質に割り振る初期ポイントを設定します。" + +#: src/options.cpp +msgid "Initial skill points" +msgstr "初期ポイント/スキル" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "キャラクター作成時のスキルに割り振る初期ポイントを設定します。" + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "特質ポイント最大値" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "キャラクター作成時に取得できる特質の最大値を設定します。" + +#: src/options.cpp +msgid "Skill training speed" +msgstr "スキル/成長速度" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "" +"鍛錬や学習で得られるスキル経験値の倍率を設定します。0.5 で半分の速度に、2.0 で倍速になります。0.0 " +"にするとNPCから教わる以外ではスキルが上昇しなくなります。" + +#: src/options.cpp +msgid "Skill rust" +msgstr "スキル/劣化" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" +" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" +"時間経過によるスキルレベル低下を設定します。通常: ターン経過依存\n" +"下限: 2レベルまで低下。 - 知性: 知性依存。 - 知性下限: 知性依存+下限\n" +"無効: 低下無し。" + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "通常" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "下限" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "知性" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "知性下限" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "無効" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "実験/3D視界" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in" +" z-level mode, the vision will extend beyond current z-level. Currently " +"very bugged!" +msgstr "" +"falseにすると、視界は自分が居る階層に限定されます。z軸テストを有効にしたうえでtrueにすると視界がより拡張されます。現時点はバグを含んでいます!" + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "視野のZ軸拡張" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "" +"実験的な上下方向の視界範囲を設定します(数値分の上下階層に視界が届きます)。視野のZ軸拡張を有効化すると、ゲームの処理速度が大幅に低下する可能性があります。数値が低いほど処理速度は上昇します。" + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "実験/パス名変換" + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" +" Windows users." +msgstr "" +"Trueにすると、読み込み時にファイルのパス名がUTF-" +"8に変換され、書き込み時に再変換されます。主にWindowsで中国語/日本語/韓国語を表示するユーザー向けの設定です。" + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "ロストフォーカス時クイックセーブ" @@ -234046,21 +230138,6 @@ msgstr "知性" msgid "PER" msgstr "感覚" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "走" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "屈" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "歩" - #: src/panels.cpp msgid "DEAF" msgstr "難聴" @@ -234394,8 +230471,8 @@ msgstr "%sを着用する" #: src/pickup.cpp #, c-format -msgid "Spill %s, then pick up %s" -msgstr "%sを取り出した状態で、%sを入手する" +msgid "Spill contents of %s, then pick up %s" +msgstr "%sの内容物を取り出してから%sを拾得する" #: src/pickup.cpp msgid "" @@ -234430,10 +230507,6 @@ msgstr "液体は拾えません!" msgid "You're overburdened!" msgstr "荷物で押し潰されそうです!" -#: src/pickup.cpp -msgid "You struggle to carry such a large volume!" -msgstr "荷物の体積が大きすぎて運ぶのに苦労しています!" - #: src/pickup.cpp msgid "Get items from vehicle cargo" msgstr "車両からアイテムを拾得する" @@ -234754,36 +230827,6 @@ msgstr "擬装が明滅して姿を現しました。" msgid "Your power armor disengages." msgstr "パワーアーマーと分離しました。" -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "%sを手で掬って飲みますか?" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "%sを食べられません。" - -#: src/player.cpp -#, c-format -msgid "You are now wielding an empty %s." -msgstr "空の%sを装備しています。" - -#: src/player.cpp -#, c-format -msgid "You are now wearing an empty %s." -msgstr "空の%sを着用しています。" - -#: src/player.cpp -#, c-format -msgid "You drop the empty %s." -msgstr "空の%sを落としました。" - -#: src/player.cpp -#, c-format -msgid "%c - %d empty %s" -msgstr "%c - %d 空の%s" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -234909,6 +230952,10 @@ msgstr "%sに直すべき故障は見当たりません。" msgid "The %s doesn't have any faults to mend." msgstr "%sに修理すべき故障は見当たりません。" +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "" + #: src/player.cpp #, c-format msgid "" @@ -234997,11 +231044,6 @@ msgstr "このアイテムは脱げません。" msgid " can't take that item off." msgstr "はこのアイテムを脱げません。" -#: src/player.cpp -#, c-format -msgid "No room in inventory for your %s. Drop it?" -msgstr "%sを所持する容量が足りません。その場に置きますか?" - #: src/player.cpp #, c-format msgid "You take off your %s." @@ -235208,6 +231250,10 @@ msgstr "このレベルの%s作業が簡単になってきたと感じていま msgid "This task is too simple to train your %s beyond %d." msgstr "この作業は%sスキルをレベル%d以上に上昇させるには簡単過ぎます。" +#: src/player.cpp +msgid " (empty)" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "何を装備しますか?" @@ -235270,8 +231316,8 @@ msgstr "水泳コスト: %+d\n" #: src/player_display.cpp #, c-format -msgid "Running movement point cost: %+d\n" -msgstr "駆足コスト: %+d\n" +msgid "Movement point cost: %+d\n" +msgstr "" #: src/player_display.cpp #, c-format @@ -235353,6 +231399,10 @@ msgstr "アイテム投擲時の器用: %+.1f\n" msgid "Reduced gun aim speed: %.1f" msgstr "照準速度低下: %.1f" +#: src/player_display.cpp +msgid "Weight:" +msgstr "体重:" + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your" @@ -235372,8 +231422,8 @@ msgstr "所持重量上限(%s):%.1f" #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" -msgstr "近接与ダメージ: %.1f" +msgid "Bash damage: %.1f" +msgstr "" #: src/player_display.cpp msgid "" @@ -235434,10 +231484,6 @@ msgstr "罠探知レベル:%d" msgid "Aiming penalty: %+d" msgstr "照準補正:%+d" -#: src/player_display.cpp -msgid "Weight:" -msgstr "体重:" - #: src/player_display.cpp msgid "" "Your weight is a general indicator of how much fat your body has stored up, " @@ -235454,6 +231500,20 @@ msgstr "身長です。単なる背の高さです。" msgid "This is how old you are." msgstr "年齢です。" +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" +msgstr "" + #: src/player_display.cpp #, c-format msgid "" @@ -235524,6 +231584,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "CBM加速 +%2d%%" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr " %1$s | %2$s | %3$s" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr " %1$s | %2$s" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "[%s]" + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "職業名: " + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -235609,18 +231690,6 @@ msgstr "" "日光によって皮膚に重度の炎症が起きています。\n" "筋力 -4 / 器用 -4 / 知性 -4 / 感覚 -4" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr " %1$s | %2$s | %3$s" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr " %1$s | %2$s" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "次の分類に切替" @@ -235630,13 +231699,8 @@ msgid "Cycle to previous category" msgstr "前の分類に切替" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "切替/スキル鍛錬" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" -msgstr "[%s]" +msgid "Toggle skill training / Upgrade stat" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You feel nauseous." @@ -235952,10 +232016,6 @@ msgid "" "more." msgstr "毒に冒されたような最悪の体調ですが、もっと欲しいと思っています。もっと、もっとです。" -#: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." -msgstr "眩い光に包まれ、瞬間移動しました。" - #: src/player_hardcoded_effects.cpp msgid "You are beset with a vision of a prowling beast." msgstr "周囲をうろつく獣の幻影に悩まされています。" @@ -235964,6 +232024,10 @@ msgstr "周囲をうろつく獣の幻影に悩まされています。" msgid "Your surroundings are permeated with a foul scent." msgstr "周囲に嫌な臭いが充満しています。" +#: src/player_hardcoded_effects.cpp +msgid "Glowing lights surround you, and you teleport." +msgstr "眩い光に包まれ、瞬間移動しました。" + #: src/player_hardcoded_effects.cpp msgid "You pass out." msgstr "気絶しました。" @@ -236089,6 +232153,10 @@ msgstr "%sの傷が少しずつ良くなってきました!" msgid "You succumb to the infection." msgstr "身体が感染症に屈しました。" +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "なかなか寝付けません..." + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "十分に休憩しました。" @@ -236124,10 +232192,6 @@ msgstr "暑くて寝返りを打っています。" msgid "It's too hot to sleep." msgstr "暑すぎて眠れません。" -#: src/player_hardcoded_effects.cpp -msgid "It looks like you woke up just before your alarm." -msgstr "アラームが作動する前に目が覚めたようです。" - #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." msgstr "一睡もしないうちに体内精密時計が起床を促しました。" @@ -236299,138 +232363,35 @@ msgstr "%sの射撃モードを手動で切り替えました。" msgid "You feel a surge of euphoria as flames roar out of the %s!" msgstr "%sから炎が噴き出すと同時に、強い高揚感が沸き起こりました。" -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "High" -msgstr "高" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Medium" -msgstr "中" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Low" -msgstr "低" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "None" -msgstr "無" - -#: src/ranged.cpp -#, c-format -msgid "Recoil: %s" -msgstr "反動: %s" - -#: src/ranged.cpp -#, c-format -msgid "Firing %s" -msgstr "射撃 %s" - -#: src/ranged.cpp -#, c-format -msgid "Throwing %s" -msgstr "投擲 %s" - -#: src/ranged.cpp -#, c-format -msgid "Blind throwing %s" -msgstr "投擲 %s" - -#: src/ranged.cpp -msgid "Set target" -msgstr "目標を設定" - -#: src/ranged.cpp -msgid "< [?] show help >" -msgstr "< [?] ヘルプ >" - -#: src/ranged.cpp -msgid "Move cursor to target with directional keys" -msgstr "方向キーで目標を決定" - -#: src/ranged.cpp -msgctxt "[Hotkey] to throw" -msgid "to throw" -msgstr "で投擲" - -#: src/ranged.cpp -msgctxt "[Hotkey] to attack" -msgid "to attack" -msgstr "で攻撃" - -#: src/ranged.cpp -msgctxt "[Hotkey] to cast the spell" -msgid "to cast" -msgstr "で呪文詠唱" - -#: src/ranged.cpp -msgctxt "[Hotkey] to fire" -msgid "to fire" -msgstr "で発射" - -#: src/ranged.cpp -#, c-format -msgid "[%s] Cycle targets;" -msgstr "[%s] 目標切替;" - -#: src/ranged.cpp -#, c-format -msgid "[%c] target self; [%c] toggle snap-to-target" -msgstr "[%c] 照準を中央へ / [%c] 画面の中心を切換" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to steady your aim. (10 moves)" -msgstr "[%c] 照準調整(行動コスト10)" - -#: src/ranged.cpp -#, c-format -msgid "%sto aim and fire" -msgstr "%sで狙って撃つ" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch aiming modes." -msgstr "[%c] 照準モード切替" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch firing modes." -msgstr "[%c] 射撃モード切替" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to reload/switch ammo." -msgstr "[%c] 装填/弾薬切替" - -#: src/ranged.cpp -msgid "RMB: Fire" -msgstr "右クリック: 発射" - #: src/ranged.cpp msgid "Steadiness" msgstr "安定性" +#: src/ranged.cpp +msgid "Moves" +msgstr "コスト" + #: src/ranged.cpp msgid "Symbols:" msgstr "凡例:" +#: src/ranged.cpp +msgid "" +" Great - Normal - " +"Graze - Moves" +msgstr "" +" 致命 - 通常 - " +"掠り - コスト" + #: src/ranged.cpp msgid "Current" -msgstr "現在" +msgstr "射撃" #: src/ranged.cpp #, c-format msgid "%s %s:" msgstr "%s %s:" -#: src/ranged.cpp -msgid "Moves" -msgstr "コスト" - #: src/ranged.cpp #, c-format msgid "" @@ -236452,11 +232413,6 @@ msgctxt "aim_confidence" msgid "Graze" msgstr "掠り" -#: src/ranged.cpp -#, c-format -msgid "Turrets in range: %d" -msgstr "タレット射程: %d" - #: src/ranged.cpp msgctxt "aim_confidence" msgid "Hit" @@ -236489,114 +232445,6 @@ msgstr "狙撃(レベル3)" msgid "[%c] to take precise aim and fire." msgstr "[%c] 狙撃(レベル3)" -#: src/ranged.cpp -msgid "turrets" -msgstr "タレット" - -#: src/ranged.cpp -#, c-format -msgid "Really attack %s?" -msgstr "本当に%sを攻撃しますか?" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d" -msgstr "射程距離: %s 高低差: %d" - -#: src/ranged.cpp -#, c-format -msgid "Targets: %d" -msgstr "目標: %d" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d Targets: %d" -msgstr "射程距離: %s 高低差: %d 目標: %d" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s %s (%d)" -msgstr "射撃モード: %s %s (%d)" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s (%d)" -msgstr "射撃モード: %s (%d)" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s" -msgstr "弾薬: %s" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s (%d/%d)" -msgstr "弾薬: %s (%d/%d)" - -#: src/ranged.cpp -#, c-format -msgid "%s Delay: %i" -msgstr "%s コスト: %i" - -#: src/ranged.cpp -#, c-format -msgid "You don't have enough %s to cast this spell" -msgstr "この呪文を唱えるのに十分な%sがありません。" - -#: src/ranged.cpp -#, c-format -msgid "Casting: %s (Level %u)" -msgstr "詠唱: %s(レベル%u)" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s" -msgstr "消費: %s%s" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s (Current: %s)" -msgstr "消費: %s%s(現在: %s)" - -#: src/ranged.cpp -#, c-format -msgid "0.0 % Failure Chance" -msgstr "0.0 % 失敗" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d/%d Elevation: %d Targets: %d" -msgstr "射程距離: %d/%d 高低差: %d 標的: %d" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d Elevation: %d Targets: %d" -msgstr "射程距離: %d 高低差: %d 標的: %d" - -#: src/ranged.cpp -#, c-format -msgid "Effective Spell Radius: %s%s" -msgstr "呪文有効範囲: %s%s" - -#: src/ranged.cpp -msgid " WARNING! IN RANGE" -msgstr "警告!射程範囲内です" - -#: src/ranged.cpp -#, c-format -msgid "Cone Arc: %s degrees" -msgstr "円錐頂角: %s度" - -#: src/ranged.cpp -#, c-format -msgid "Line width: %s" -msgstr "線幅: %s" - -#: src/ranged.cpp -#, c-format -msgid "Damage: %s" -msgstr "ダメージ: %s" - #: src/ranged.cpp msgid "Thunk!" msgstr "ドン!" @@ -236677,6 +232525,232 @@ msgstr "ドドーン!" msgid "kerblam!" msgstr "ダァン!" +#: src/ranged.cpp +#, c-format +msgid "You don't have enough %s to cast this spell" +msgstr "この呪文を唱えるのに十分な%sがありません。" + +#: src/ranged.cpp +#, c-format +msgid "Really attack %s?" +msgstr "本当に%sを攻撃しますか?" + +#: src/ranged.cpp +#, c-format +msgid "Firing %s" +msgstr "射撃 %s" + +#: src/ranged.cpp +#, c-format +msgid "Throwing %s" +msgstr "投擲 %s" + +#: src/ranged.cpp +#, c-format +msgid "Blind throwing %s" +msgstr "投擲 %s" + +#: src/ranged.cpp +msgid "Set target" +msgstr "目標を設定" + +#: src/ranged.cpp +msgctxt "[Hotkey] to throw" +msgid "to throw" +msgstr "で投擲" + +#: src/ranged.cpp +msgctxt "[Hotkey] to attack" +msgid "to attack" +msgstr "で攻撃" + +#: src/ranged.cpp +msgctxt "[Hotkey] to cast the spell" +msgid "to cast" +msgstr "で呪文詠唱" + +#: src/ranged.cpp +msgctxt "[Hotkey] to fire" +msgid "to fire" +msgstr "で発射" + +#: src/ranged.cpp +msgid "[?] show all controls" +msgstr "[?] ヘルプ" + +#: src/ranged.cpp +msgid "[?] show help" +msgstr "[?] ヘルプ" + +#: src/ranged.cpp +msgid "Shift view with directional keys" +msgstr "方向キーで視点移動" + +#: src/ranged.cpp +msgid "Move cursor with directional keys" +msgstr "方向キーでカーソル移動" + +#: src/ranged.cpp +msgid "Mouse: LMB: Target, Wheel: Cycle," +msgstr "左クリック:標的選択、ホイール:標的切替、" + +#: src/ranged.cpp +msgid "RMB: Fire" +msgstr "右クリック: 発射" + +#: src/ranged.cpp +#, c-format +msgid "[%s] Cycle targets;" +msgstr "[%s] 目標切替;" + +#: src/ranged.cpp +#, c-format +msgid "[%c] %s." +msgstr "[%c] %s。" + +#: src/ranged.cpp +#, c-format +msgid "[%c] target self; [%c] toggle snap-to-target" +msgstr "[%c] 照準を中央へ / [%c] 画面の中心を切換" + +#: src/ranged.cpp +msgid "to aim and fire." +msgstr "狙撃(レベル1)" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to steady your aim. (10 moves)" +msgstr "[%c] 照準調整(行動コスト10)" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch aiming modes." +msgstr "[%c] 照準モード切替" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch firing modes." +msgstr "[%c] 射撃モード切替" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to reload/switch ammo." +msgstr "[%c] 装填/弾薬切替" + +#: src/ranged.cpp +#, c-format +msgctxt "[Hotkey] Show/Hide turrets' lines of fire" +msgid "[%c] %s lines of fire" +msgstr "[%c] 射線%s" + +#: src/ranged.cpp +#, c-format +msgid "Elevation: %d" +msgstr "高低差: %d" + +#: src/ranged.cpp +#, c-format +msgid "Targets: %d" +msgstr "目標: %d" + +#: src/ranged.cpp +#, c-format +msgid "Firing mode: %s%s (%d)" +msgstr "射撃モード: %s%s (%d)" + +#: src/ranged.cpp +msgid "OUT OF AMMO" +msgstr "弾薬切れ" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s" +msgstr "弾薬: %s" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s (%d/%d)" +msgstr "弾薬: %s (%d/%d)" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "High" +msgstr "高" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Medium" +msgstr "中" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Low" +msgstr "低" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "None" +msgstr "無" + +#: src/ranged.cpp +#, c-format +msgid "Recoil: %s" +msgstr "反動: %s" + +#: src/ranged.cpp +#, c-format +msgid "Casting: %s (Level %u)" +msgstr "詠唱: %s(レベル%u)" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s" +msgstr "消費: %s%s" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s (Current: %s)" +msgstr "消費: %s%s(現在: %s)" + +#: src/ranged.cpp +#, c-format +msgid "0.0 % Failure Chance" +msgstr "0.0 % 失敗" + +#: src/ranged.cpp +#, c-format +msgid "Effective Spell Radius: %s%s" +msgstr "呪文有効範囲: %s%s" + +#: src/ranged.cpp +msgid " WARNING! IN RANGE" +msgstr "警告!射程範囲内です" + +#: src/ranged.cpp +#, c-format +msgid "Cone Arc: %s degrees" +msgstr "円錐頂角: %s度" + +#: src/ranged.cpp +#, c-format +msgid "Line width: %s" +msgstr "線幅: %s" + +#: src/ranged.cpp +#, c-format +msgid "Damage: %s" +msgstr "ダメージ: %s" + +#: src/ranged.cpp +#, c-format +msgid "%s Delay: %i" +msgstr "%s コスト: %i" + +#: src/ranged.cpp +#, c-format +msgid "Turrets in range: %d/%d" +msgstr "タレット射程: %d/%d" + #: src/recipe.cpp msgid "none" msgstr "なし" @@ -236920,14 +232994,36 @@ msgid "Limited" msgstr "限定" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" -msgstr "有効な実績がありません。\n" +msgid "achievements" +msgstr "" + +#: src/scores_ui.cpp +msgid "conducts" +msgstr "" + +#: src/scores_ui.cpp +msgid "Conducts" +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "" +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "This game has no valid %s.\n" +msgstr "" #: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." -msgstr "ゲーム開始時に存在し今も存在する実績のみが表示されます。" +"Note that only %s that existed when you started this game and still exist " +"now will appear here." +msgstr "" #: src/scores_ui.cpp msgid "This game has no valid scores.\n" @@ -236945,6 +233041,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "実績" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "" + #: src/scores_ui.cpp msgid "SCORES" msgstr "スコア" @@ -237709,7 +233809,7 @@ msgid "A blade swings out and hacks your torso!" msgstr "刃が弧を描きながら動き、胴体を切り裂きました!" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" +msgid "A blade swings out and hacks 's torso!" msgstr "刃が弧を描きながら動き、の胴体を切り裂きました!" #: src/trapfunc.cpp @@ -238120,6 +234220,14 @@ msgstr "この車両の所有者は%sであるため、ラベル付けできま msgid "Only one %1$s powered engine can be installed." msgstr "%1$sを動力とするエンジンは1台しか取り付けられません。" +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "この車両はこの方法では改造できません。\n" + +#: src/veh_interact.cpp +msgid "This part cannot be installed.\n" +msgstr "この部品は取り付けられません。\n" + #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." msgstr "漏斗はタンクの上に設置する必要があります。" @@ -238271,6 +234379,12 @@ msgstr "暗すぎて見えません..." msgid "You can't install parts while driving." msgstr "運転中は部品を取り付けられません。" +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy." +" Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "この部品を取り付けると、車両が折り畳めなくなります。続けますか?" @@ -238296,8 +234410,22 @@ msgid "Choose a part here to repair:" msgstr "修復する部品を選択: " #: src/veh_interact.cpp -msgid "This part cannot be repaired" -msgstr "この部品は修復できません" +msgid "This part cannot be repaired.\n" +msgstr "この部品は修復できません\n" + +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "この車両は修復できません\n" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to mend…" @@ -238400,6 +234528,10 @@ msgstr "'{'でスクロールアップ" msgid "'}' to scroll down" msgstr "'}'でスクロールダウン" +#: src/veh_interact.cpp +msgid "This part cannot be uninstalled.\n" +msgstr "この部品は取り外せません。\n" + #: src/veh_interact.cpp #, c-format msgid "" @@ -238409,33 +234541,18 @@ msgstr "故障した%1$s取外で得られるアイテム: 各種 #: src/veh_interact.cpp #, c-format msgid "" -"Removing the %1$s will yield:\n" +"Removing the %1$s may yield:\n" "> %2$s\n" msgstr "" -"%1$s取外で得られるアイテム:\n" -"> %2$s\n" -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength #: src/veh_interact.cpp #, c-format msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength ( " -"assisted ) %5$i" -msgstr "" -"> %1$s%2$s %3$iのアイテム または %4$s筋力(協力)%5$i" - -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength -#: src/veh_interact.cpp -#, c-format -msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength " -"%5$i" +"Removing the %1$s will yield:\n" +"> %2$s\n" msgstr "" -"> %1$s%2$s %3$iのアイテム または %4$s筋力 %5$i" +"%1$s取外で得られるアイテム:\n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is pre-translated reason @@ -238460,6 +234577,12 @@ msgstr "他の部品が邪魔で、この部品を取り外せません。" msgid "Better not remove something while driving." msgstr "運転中には何も取り外さない方が良いでしょう。" +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "車両には抜き取れる液体燃料が残っていません。" @@ -238912,6 +235035,11 @@ msgstr "%sを取り外す要件を満たしていません。" msgid "You remove the broken %1$s from the %2$s." msgstr "壊れた%1$sを%2$sから取り外しました。" +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -239620,10 +235748,6 @@ msgstr "%sのキーが見つかりませんでした。" msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "%sのキーが見つかりませんでした。配線を繋いでエンジンをかけますか?" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "配線を繋いでエンジンをかける" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -240128,6 +236252,11 @@ msgstr "食器洗浄機を停止する" msgid "Activate the dishwasher (1.5 hours)" msgstr "食器洗浄機を起動する(1時間30分)" +#: src/vehicle_use.cpp +#, c-format +msgid "Unload %s" +msgstr "%sから弾薬を抜き取る" + #: src/vehicle_use.cpp msgid "Peek through the closed curtains" msgstr "カーテンの隙間から覗く" @@ -240553,11 +236682,6 @@ msgstr "(フラグ)" msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" msgstr "[%s]検索、[f]容器、[F]フラグ、[E]全て、[%s]終了" -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "%.*s" - #: src/wish.cpp msgid "How many?" msgstr "数量" diff --git a/lang/po/pl.po b/lang/po/pl.po index e5d7bf79e9eb5..3cd83606a175b 100644 --- a/lang/po/pl.po +++ b/lang/po/pl.po @@ -2,7 +2,6 @@ # Translators: # Przemek Orechwa , 2018 # Wojciech K , 2018 -# Millennium Falcon , 2018 # Radomir Kozłowski , 2018 # Faalagorn, 2019 # Artur Gromek , 2019 @@ -11,13 +10,14 @@ # Brett Dong , 2020 # Unibel , 2020 # Chris Bittner , 2020 +# Millennium Falcon , 2020 # Aleksander Sienkiewicz , 2020 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-01 12:24+0800\n" +"POT-Creation-Date: 2020-06-05 08:37+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Aleksander Sienkiewicz , 2020\n" "Language-Team: Polish (https://www.transifex.com/cataclysm-dda-translators/teams/2217/pl/)\n" @@ -86,6 +86,60 @@ msgstr "" "Ładunek baterii wolny jak elektron. Można nim naładować akumulatorki, ale " "nie można ich wyładować." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'butane'} +#: lang/json/AMMO_from_json.py +msgid "A common flammable liquid used in lighters." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "tlen" +msgstr[1] "cząsteczki tlenu" +msgstr[2] "cząsteczek tlenu" +msgstr[3] "cząsteczek tlenu" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "aluminum foil" msgid_plural "aluminum foils" @@ -112,11 +166,9 @@ msgstr[2] "centów" msgstr[3] "centów" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "JEŻELI TO WIDZISZ TO NAPOTKAŁEŚ BŁĄD." +#: lang/json/AMMO_from_json.py +msgid "A unit of currency equivalent to 0.01 US dollars." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -217,10 +269,10 @@ msgstr "Te cienkie kawałki papieru służą do zwijania papierosów." #: lang/json/AMMO_from_json.py msgid "copper wire" msgid_plural "copper wires" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "miedziany drut" +msgstr[1] "miedziane druty" +msgstr[2] "miedzianych drutów" +msgstr[3] "miedzianych drutów" #. ~ Description for {'str': 'copper wire'} #: lang/json/AMMO_from_json.py @@ -281,10 +333,10 @@ msgstr[3] "rozwodniona zawiesina plutonu" #: lang/json/AMMO_from_json.py lang/json/snippet_from_json.py msgid "rock" msgid_plural "rocks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "kamień" +msgstr[1] "kamienie" +msgstr[2] "kamieni" +msgstr[3] "kamieni" #. ~ Description for {'str': 'rock'} #. ~ Description for TEST rock @@ -299,29 +351,27 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "pebble" msgid_plural "pebbles" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "kamyk" +msgstr[1] "kamyki" +msgstr[2] "kamyków" +msgstr[3] "kamyków" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." +msgid "A handful of pebbles, useful as ammunition for slingshots." msgstr "Garść kamyków. Przydatne jako amunicja do procy." #: lang/json/AMMO_from_json.py msgid "clay pellet" msgid_plural "clay pellets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "gliniany pellet" +msgstr[1] "gliniane pellety" +msgstr[2] "glinianych pelletów" +msgstr[3] "glinianych pelletów" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or " -"slingshots." +msgid "A handful of round projectiles made of clay, useful for slingshots." msgstr "Garść okrągłych pocisków do procy zrobionych z gliny." #: lang/json/AMMO_from_json.py @@ -334,9 +384,8 @@ msgstr[3] "" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." -msgstr "Garść szklanych kulek. Posłużyć mogą jako amunicja do procy." +msgid "A handful of glass marbles, useful as ammunition for slingshots." +msgstr "" #: lang/json/AMMO_from_json.py msgid "bearings" @@ -348,9 +397,8 @@ msgstr[3] "łożyska kulkowe" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." +msgid "A box of ball bearings, useful as ammunition for slingshots." msgstr "" -"Paczka kulek do łożysk kulkowych, nadających się na amunicję do procy." #: lang/json/AMMO_from_json.py msgid "BB" @@ -362,9 +410,10 @@ msgstr[3] "" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." msgstr "" -"Pudełko małych, stalowych kulek. Praktycznie nie zadają żadnych obrażeń." #: lang/json/AMMO_from_json.py msgid "feather" @@ -701,6 +750,12 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "JEŻELI TO WIDZISZ TO NAPOTKAŁEŚ BŁĄD." + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" msgid_plural "charcoal" @@ -754,6 +809,21 @@ msgstr "" "Palne, czarne kawałki materiału opartego na węglu, często używane do " "gotowania i ogrzewania." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -875,14 +945,6 @@ msgstr[3] "" msgid "A bait used in traps to lure fish." msgstr "Przynęta używana w pułapkach do zwabiania ryb." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "tlen" -msgstr[1] "cząsteczki tlenu" -msgstr[2] "cząsteczek tlenu" -msgstr[3] "cząsteczek tlenu" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -3913,10 +3975,8 @@ msgstr[3] "" #: lang/json/AMMO_from_json.py msgid "" ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, " -"the .45 ACP round has been common for almost 150 years." +"the .45 ACP round has been common for over a century." msgstr "" -"Amunicja kalibru .45 z 230 gr pełnopłaszczowymi pociskami. Kaliber ceniony " -"za moc obalającą, który jest popularny od niemal 150 lat." #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -5116,11 +5176,8 @@ msgstr[3] "" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round" -" for military, law enforcement, and civilian use even after almost 150 " -"years." +" for military, law enforcement, and civilian use for over a century." msgstr "" -"Amunicja kal. 9x19mm z 115gr pociskami w płaszczu. Popularne naboje w " -"wojsku, służbach porządkowych i na rynku cywilnym przez ponad 150 lat." #: lang/json/AMMO_from_json.py msgid "9x19mm +P" @@ -7315,8 +7372,8 @@ msgstr[3] "" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." msgstr "" #: lang/json/AMMO_from_json.py @@ -7607,14 +7664,6 @@ msgid "" "fluid. You'd probably best feed it into the bioblaster. " msgstr "" -#: lang/json/AMMO_from_json.py -msgid "plutonium cell" -msgid_plural "plutonium cells" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - #: lang/json/AMMO_from_json.py msgid "titanium" msgid_plural "titanium" @@ -7711,81 +7760,6 @@ msgid "" "without the worry of having a stray shot seriously damaging the environment." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N8" -msgid_plural "6.54x42mm 9N8" -msgstr[0] "6.54x42mm 9N8" -msgstr[1] "6.54x42mm 9N8" -msgstr[2] "6.54x42mm 9N8" -msgstr[3] "6.54x42mm 9N8" - -#. ~ Description for {'str_sp': '6.54x42mm 9N8'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 6.54x42mm cartridge, loaded with a 120 gr. FMJBT bullet. Inspired by the " -"improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " -"rifle cartridge for his new SVS-24 Assault Rifle." -msgstr "" -"Amunicja kalibru 6,54 x 42 mm ze 120 gr pełnopłaszczowym pociskiem o " -"łódkowatym zakończeniu. Zainspirowany brytyjskim .280 Aleksander Sarafanow " -"samodzielnie opracował nabój 6,54 x 42 mm do swego nowego karabinu " -"szturmowego SWS-24." - -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N12" -msgid_plural "6.54x42mm 9N12" -msgstr[0] "6.54x42mm 9N12" -msgstr[1] "6.54x42mm 9N12" -msgstr[2] "6.54x42mm 9N12" -msgstr[3] "6.54x42mm 9N12" - -#. ~ Description for {'str_sp': '6.54x42mm 9N12'} -#: lang/json/AMMO_from_json.py -msgid "" -"The 6.54x42mm 9N12 has superior armor piercing capabilities thanks to its " -"tungsten carbide core. Tungsten carbide was used in anti-tank rounds of the" -" 20th and 21st century, whenever depleted uranium was unavailable or " -"undesirable." -msgstr "" -"Nabój 6.54x42mm 9N12 zapewnia doskonałą przebijalność pancerza dzięki " -"rdzeniu z węglika wolframu. Materiał ten był używany w pociskach " -"przeciwczołgowych 20-go i 21-go wieku." - -#: lang/json/AMMO_from_json.py -msgid ".20 DREAD Pellet" -msgid_plural ".20 DREAD Pellets" -msgstr[0] "Śrut .20 DREAD" -msgstr[1] "Śrut .20 DREAD" -msgstr[2] "Śrut .20 DREAD" -msgstr[3] "Śrut .20 DREAD" - -#. ~ Description for {'str': '.20 DREAD Pellet'} -#: lang/json/AMMO_from_json.py -msgid "" -"These metal pellets are propelled with the help of electromagnets, therefore" -" they do not produce sound, flash or heat signature." -msgstr "" -"Metalowe pellety tego pocisku śrutowego napędzane są elektromagnetycznie, " -"nie wytwarzając dźwięku, błysku ani sygnatury cieplnej." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 6.54x42mm" -msgid_plural "reloaded 6.54x42mm" -msgstr[0] "zregenerowany 6.54x42mm" -msgstr[1] "zregenerowany 6.54x42mm" -msgstr[2] "zregenerowany 6.54x42mm" -msgstr[3] "zregenerowany 6.54x42mm" - -#. ~ Description for {'str_sp': 'reloaded 6.54x42mm'} -#: lang/json/AMMO_from_json.py -msgid "" -"Inspired by the improved .280, Alexander Sarafanov himself developed the " -"6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " -"been hand-reloaded." -msgstr "" -"Zainspirowany .280 Aleksander Sarafanov samodzielnie opracował nabój " -"6.54x42mm do swego nowego karabinu szturmowego SVS-24. Ręcznie regenerowane." - #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -8586,146 +8560,10 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for mana core power -#. ~ Description for {'str_sp': 'vortex core'} #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." msgstr "Jeśli to widzisz, jest to błąd." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "fire lance charge" -msgid_plural "fire lance charges" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for fire lance charge -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm. Despite the " -"minimal range, it packs a punch." -msgstr "" -"Trochę więcej niż zwykły ładunek prochowy podstawowej broni. Pomimo " -"minimalnego zasięgu potrafi dać kopa." - -#: lang/json/AMMO_from_json.py -msgid "fire lance shot" -msgid_plural "fire lance shots" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for fire lance shot -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm, with small " -"pellets as shot. Despite the minimal range, it packs a punch." -msgstr "" -"Trochę więcej niż zwykły ładunek prochowy podstawowej broni z dodatkiem " -"małych pelletów. Pomimo minimalnego zasięgu potrafi dać kopa." - -#: lang/json/AMMO_from_json.py -msgid "lead pellet" -msgid_plural "lead pellets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for lead pellet -#: lang/json/AMMO_from_json.py -msgid "" -"Hefty round projectiles cast from lead, useful as ammunition for slings." -msgstr "Masywne okrągłe pociski do procy wytłoczone z ołowiu." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" -msgstr[0] "drewniany oszczep" -msgstr[1] "drewniany oszczep" -msgstr[2] "drewniany oszczep" -msgstr[3] "drewniany oszczep" - -#: lang/json/AMMO_from_json.py -msgid "stone javelin" -msgid_plural "stone javelins" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for stone javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A throwing spear with a stone spearhead. The grip area has also been carved" -" and covered for better grip." -msgstr "" -"Włócznia do rzucania z kamiennym grotem. Uchwyt także został wydrążony i " -"pokryty skórą dla lepszego chwytu." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" -msgstr[0] "żelazny oszczep" -msgstr[1] "żelazny oszczep" -msgstr[2] "żelazny oszczep" -msgstr[3] "żelazny oszczep" - -#: lang/json/AMMO_from_json.py -msgid "copper javelin" -msgid_plural "copper javelins" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for copper javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A copper-tipped throwing spear. The grip area has also been carved and " -"covered for better grip." -msgstr "" -"Włócznia do rzucania z miedzianym grotem. Uchwyt także został wydrążony i " -"pokryty skórą dla lepszego chwytu." - -#: lang/json/AMMO_from_json.py -msgid "40mm EMP grenade" -msgid_plural "40mm EMP grenades" -msgstr[0] "40 mm granat EMP" -msgstr[1] "40 mm granaty EMP" -msgstr[2] "40 mm granatów EMP" -msgstr[3] "40 mm granatu EMP" - -#. ~ Description for {'str': '40mm EMP grenade'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" -" capable of damaging robots and some equipment." -msgstr "" -"40 mm granat z ładunkiem EMP. Uwolni impuls elektromagnetyczny zdolny do " -"uszkodzenia robotów i niektórego elektronicznego wyposażenia." - -#: lang/json/AMMO_from_json.py -msgid "glowball" -msgid_plural "glowballs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for glowball -#: lang/json/AMMO_from_json.py -msgid "" -"A tube of small glowballs taken off the market due to hazardous chemicals. " -"They deal virtually no damage, but light up on impact. Useful for " -"illuminating an area without lighting up yourself in the process." -msgstr "" -"Tuba z małymi świecikulami wycofanymi ze sprzedaży z uwagi na toksyczne " -"związki chemiczne. Praktycznie nie zadają obrażeń, ale zapalają się po " -"uderzeniu. Użyteczne do oświetlenia obszaru bez jednoczesnego podświetlenia " -"własnej osoby przy okazji." - #: lang/json/AMMO_from_json.py msgid "TEST rock" msgid_plural "TEST rocks" @@ -8743,646 +8581,67 @@ msgstr[2] "" msgstr[3] "" #: lang/json/AMMO_from_json.py -msgid "TEST platinum bit" -msgid_plural "TEST platinum bits" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEDP" -msgid_plural "30x113mm HEDP" -msgstr[0] "30x113mm HEDP" -msgstr[1] "30x113mm HEDP" -msgstr[2] "30x113mm HEDP" -msgstr[3] "30x113mm HEDP" - -#. ~ Description for {'str_sp': '30x113mm HEDP'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " -"Used primarily against light armored vehicles." -msgstr "" -"Nabój do działka automatycznego kalibru 30x113mm używający eksplodujących " -"pocisków podwójnego przeznaczenia. Używany przede wszystkim przeciwko lekko " -"opancerzonym pojazdom." - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEI" -msgid_plural "30x113mm HEI" -msgstr[0] "30x113mm HEI" -msgstr[1] "30x113mm HEI" -msgstr[2] "30x113mm HEI" -msgstr[3] "30x113mm HEI" - -#. ~ Description for {'str_sp': '30x113mm HEI'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round, high explosive incendiary. Designed for use " -"against unarmored vehicles and to suppress infantry." -msgstr "" -"Nabój do działka automatycznego kalibru 30x113mm używający wybuchowych " -"zapalających pocisków. Używany przede wszystkim przeciwko nieopancerzonym " -"pojazdom i zaporowo przeciwko piechocie." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 30x113mm" -msgid_plural "reloaded 30x113mm" -msgstr[0] "zregenerowany 30x113mm" -msgstr[1] "zregenerowany 30x113mm" -msgstr[2] "zregenerowany 30x113mm" -msgstr[3] "zregenerowany 30x113mm" - -#. ~ Description for {'str_sp': '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 "" -"Zregenerowany nabój do działka automatycznego kalibru 30x113mm z wymienioną " -"spłonką i podstawowym ołowianym pociskiem. Nie tak skuteczny jak prawdziwy." - -#. ~ 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 pocisk przeciwczołgowy z zintegrowanym ładunkiem wybuchowym. Przebija " -"do dwóch stóp (60 cm) betonu." - -#: lang/json/AMMO_from_json.py -msgid "120mm APFSDS" -msgid_plural "120mm APFSDSs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for 120mm APFSDS -#: lang/json/AMMO_from_json.py -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 "" -"120 milimetrowy przeciwpancerny pocisk podkalibrowy stabilizowany brzechwowo" -" z odrzucanym sabotem. Używa rdzenia ze zubożonego uranu by zepsuć dzień " -"czemukolwiek w co trafi." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 120mm shot" -msgid_plural "reloaded 120mm shots" +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for reloaded 120mm shot +#. ~ Description for {'str': 'test wooden broadhead arrow'} #: lang/json/AMMO_from_json.py -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." +msgid "Test arrow" msgstr "" -"Pocisk 120mm z nową elektryczną spłonką, wypełniony dużą ilością śrutu. W " -"praktyce podobny do nieprodukowanego już pocisku kartaczowego, ale niższej " -"jakości." #: lang/json/AMMO_from_json.py -msgid "makeshift 120mm slug" -msgid_plural "makeshift 120mm slugs" +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for makeshift 120mm slug +#. ~ Description for {'str': 'Test 9mm ammo'} #: 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." +msgid "Generic 9mm ammo based on JHP." msgstr "" -"Pocisk 120mm z nową elektryczną spłonką, wypełniony dużą ręcznie robioną " -"kulą. Daleki od ideału, ale daje kopa." #: lang/json/AMMO_from_json.py -msgid "155mm HEAT" -msgid_plural "155mm HEATs" +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for 155mm HEAT +#. ~ Description for {'str': 'Test .45 ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Anti Tank round. More than enough firepower for " -"whatever you could think to point it at." +msgid "Test ammo based on the .45 JHP." msgstr "" -"!55 milimetrowy eksplodujący pocisk przeciwczołgowy. Więcej siły ognia niż " -"potrzeba przeciwko czemukolwiek w co mógłbyś go wymierzyć." #: lang/json/AMMO_from_json.py -msgid "155mm frag" -msgid_plural "155mm frags" +msgid "test gas" +msgid_plural "test gas" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for 155mm frag +#. ~ Description for {'str_sp': 'test gas'} #: lang/json/AMMO_from_json.py msgid "" -"A 155mm High Explosive Fragmentation round. Designed to give anything near " -"what you hit a really bad day." +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" msgstr "" -"Pocisk 155 mm wybuchowy, odłamkowy. Opracowany by zepsuł dzień wszystkiemu w" -" pobliżu miejsca trafienia." #: lang/json/AMMO_from_json.py -msgid "reloaded 155mm shot" -msgid_plural "reloaded 155mm shots" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for reloaded 155mm shot -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm shell with a new electric primer installed, filled with a huge " -"amount of buckshot. Effectively turns a howitzer into a punt gun on " -"steroids." -msgstr "" -"Pocisk 155mm z nową elektryczną spłonką, wypełniony olbrzymią ilością śrutu." -" W praktyce zmienia haubicę w gigantyczną strzelbę na sterydach." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm slug" -msgid_plural "reloaded 155mm slugs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for reloaded 155mm slug -#: lang/json/AMMO_from_json.py -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 "" -"Pocisk 155mm z nową elektryczną spłonką, wypełniony dużą ręcznie robioną " -"kulą. Zmniejszona efektywność w tym przypadku nie oznacza, że cel nie " -"poczuje trafienia." - -#: lang/json/AMMO_from_json.py -msgid "small electric primer" -msgid_plural "small electric primers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for small electric primer -#: lang/json/AMMO_from_json.py -msgid "Primer for an autocannon shell. Seems to use an electric ignition." -msgstr "" -"Spłonka do naboju do działa automatycznego. Używa elektrycznego zapłonu." - -#: lang/json/AMMO_from_json.py -msgid "large electric primer" -msgid_plural "large electric primers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for large electric primer -#: lang/json/AMMO_from_json.py -msgid "" -"Primer for a tank or artillery shell. Seems to use an electric ignition." -msgstr "" -"Spłonka do naboju czołgowego lub artyleryjskiego. Używa elektrycznego " -"zapłonu." - -#: lang/json/AMMO_from_json.py -msgid "liquified blob feed" -msgid_plural "liquified blob feed" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'liquified blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"Liquified blob feed, useful for fueling certain blob based vehicle parts" -msgstr "" -"Upłynniony pokarm glutów, użyteczny do napędzania pewnych opartych na " -"galaretach częściach pojazdów." - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "blob feed" -msgid_plural "blob feed" -msgstr[0] "pokarm dla gluta" -msgstr[1] "pokarm dla gluta" -msgstr[2] "pokarm dla gluta" -msgstr[3] "pokarm dla gluta" - -#. ~ Description for {'str_sp': 'blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"An amalgam of various types of organic material, contains everything the " -"blob needs to be healthy. You think…" -msgstr "" - -#: lang/json/AMMO_from_json.py -msgid "IED" -msgid_plural "IEDs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/AMMO_from_json.py -msgid "blast canister" -msgid_plural "blast canisters" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'blast canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a substantial explosive payload." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, detonującym przy zderzeniu. Zawiera silny ładunek wybuchowy." - -#: lang/json/AMMO_from_json.py -msgid "Big Bang canister" -msgid_plural "Big Bang canisters" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Big Bang canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a VERY substantial explosive payload." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, detonującym przy zderzeniu. Zawiera BARDZO silny ładunek " -"wybuchowy." - -#: lang/json/AMMO_from_json.py -msgid "fire canister" -msgid_plural "fire canisters" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'fire canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a small area with deadly flames." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, detonującym przy zderzeniu. Przeznaczony do wystrzeliwania ze " -"specjalnej wyrzutni. Zawiera ładunek zapalający zdolny pokryć mały obszar " -"płomieniami." - -#: lang/json/AMMO_from_json.py -msgid "inferno canister" -msgid_plural "inferno canisters" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'inferno canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a large area with deadly flames." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, detonującym przy zderzeniu. Przeznaczony do wystrzeliwania ze " -"specjalnej wyrzutni. Zawiera ładunek zapalający zdolny pokryć duży obszar " -"płomieniami." - -#: lang/json/AMMO_from_json.py -msgid "fragmentation canister" -msgid_plural "fragmentation canisters" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'fragmentation canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to spray the immediate area with deadly shrapnel." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, detonującym przy zderzeniu. Przeznaczony do wystrzeliwania ze " -"specjalnej wyrzutni. Zawiera ładunek odłamków zasypujących okolicę wybuchu." - -#. ~ Description for {'str': 'modified mininuke'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device. Intended to be fired from a " -"specialized launcher, its case has been cut down and it has been rigged to " -"explode on impact. While it is now somewhat lighter than before, it can no " -"longer be triggered manually." -msgstr "" -"Walizkowy ładunek jądrowy znacznie zmodyfikowany w celu dostosowania go do " -"użycia w wyspecjalizowanej wyrzutni. Wycięto go z pierwotnej obudowy i " -"zamontowano zapalnik uderzeniowy. Nie można już ręcznie ustawić jego " -"detonacji." - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "harpoon" -msgid_plural "harpoons" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'harpoon'} -#: lang/json/AMMO_from_json.py -msgid "" -"A large spear carved from wood. This was fashioned specifically to be fired" -" from a compatible weapon; thus unsuitable for melee combat." -msgstr "" -"Duża włócznia wystrugana z drewna. Została specjalnie zaprojektowana, aby " -"wystrzeliwać ją z odpowiedniej broni, więc jest bezużyteczna w walce wręcz." - -#: lang/json/AMMO_from_json.py -msgid "IED rigged bolt" -msgid_plural "IED rigged bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/AMMO_from_json.py -msgid "nova bolt" -msgid_plural "nova bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'nova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a substantial explosive payload." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, przymocowanym do dużego bełtu balisty. Przygotowane do " -"wystrzelenia ze specjalnej wyrzutni. Zawiera silny ładunek wybuchowy." - -#: lang/json/AMMO_from_json.py -msgid "supernova bolt" -msgid_plural "supernova bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'supernova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a very substantial explosive payload." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, przymocowanym do dużego bełtu balisty. Przygotowane do " -"wystrzelenia ze specjalnej wyrzutni. Zawiera znaczną ilość silnego ładunku " -"wybuchowego." - -#: lang/json/AMMO_from_json.py -msgid "searing bolt" -msgid_plural "searing bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'searing bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a small area with deadly flames." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, przymocowanym do dużego bełtu balisty. Przeznaczony do " -"wystrzeliwania ze specjalnej wyrzutni. Zawiera ładunek zapalający zdolny " -"pokryć mały obszar płomieniami." - -#: lang/json/AMMO_from_json.py -msgid "napalm bolt" -msgid_plural "napalm bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'napalm bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a large area with deadly flames." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, przymocowanym do dużego bełtu balisty. Przeznaczony do " -"wystrzeliwania ze specjalnej wyrzutni. Zawiera ładunek zapalający zdolny " -"pokryć duży obszar płomieniami." - -#: lang/json/AMMO_from_json.py -msgid "shatter bolt" -msgid_plural "shatter bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'shatter bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to spray the immediate area with deadly " -"shrapnel." -msgstr "" -"Improwizowany ładunek wybuchowy złożony z pojemnika wypełnionego materiałem " -"wybuchowym, przymocowanym do dużego bełtu balisty. Przeznaczony do " -"wystrzeliwania ze specjalnej wyrzutni. Przeznaczony do zasypania pobliskiego" -" obszaru śmiercionośnymi szrapnelami." - -#: lang/json/AMMO_from_json.py -msgid "steel ballista bolt" -msgid_plural "steel ballista bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'steel ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A long shaft carved from wood ending in a tip of sharpened metal. It's " -"quite heavy, capable of dealing large amounts of damage, but isn't " -"particularly accurate. Stands a good chance of remaining intact once fired." -msgstr "" -"Długi drewniany bełt zakończony zaostrzonym metalem. Jest całkiem celny, " -"może zadawać spore obrażenia, ale nie jest zbyt celny. Ma dobrą szansę na " -"pozostanie w jednym kawałku po wystrzeleniu." - -#: lang/json/AMMO_from_json.py -msgid "nuclear bolt" -msgid_plural "nuclear bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'nuclear bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device affixed to the end of a large " -"ballista bolt. Its case has been cut down and it has been rigged to explode" -" on impact. It can no longer be triggered manually." -msgstr "" -"Znacznie zmodyfikowany walizkowy ładunek jądrowy zamocowany na dużym bełcie " -"balisty. Wycięto go z pierwotnej obudowy i zamontowano zapalnik uderzeniowy." -" Nie można już ręcznie ustawić jego detonacji." - -#: lang/json/AMMO_from_json.py -msgid "wood ballista bolt" -msgid_plural "wood ballista bolts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'wood ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A sharpened bolt carved from wood. It's fairly heavy, capable of dealing " -"large amounts of damage, but isn't particularly accurate. Stands a good " -"chance of remaining intact once fired." -msgstr "" -"Zaostrzony drewniany bełt. Jest dość ciężki i może zadawać spore obrażenia, " -"ale nie jest zbyt celny. Ma dobrą szansę na pozostanie w jednym kawałku po " -"wystrzeleniu." - -#: lang/json/AMMO_from_json.py -msgid "lead ball" -msgid_plural "lead balls" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'lead ball'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy lead ball about 8cm in diameter. Could pack quite a bit of a punch " -"if you had something to launch it." -msgstr "" -"Ciężka ołowiana kula o średnicy 8 cm. Dałaby niezłego kopa jeżeli by ją z " -"czegoś wystrzelić." - -#: lang/json/AMMO_from_json.py -msgid "serrated disc" -msgid_plural "serrated discs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'serrated disc'} -#: lang/json/AMMO_from_json.py -msgid "" -"A metal disc surrounded by serrated edges. It's as menacing as it sounds." -msgstr "" -"Metalowy dysk o ostrej ząbkowanej krawędzi. Jest tak groźny na jaki wygląda." - -#: lang/json/AMMO_from_json.py -msgid "metal fragment" -msgid_plural "metal fragments" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'metal fragment'} -#: lang/json/AMMO_from_json.py -msgid "Small slivers of metal. Can't see much use for them." -msgstr "Małe strzępy metalu. Nie widzisz dla nich zbyt wielu zastosowań." - -#: lang/json/AMMO_from_json.py -msgid "glittering carbon" -msgid_plural "glittering carbon" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'glittering carbon'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of carbon are have been compressed into a crystalline " -"structure that is beginning to resemble diamonds." -msgstr "" - -#: lang/json/AMMO_from_json.py -msgid "diamond fragments" -msgid_plural "diamond fragments" +msgid "TEST platinum bit" +msgid_plural "TEST platinum bits" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str_sp': 'diamond fragments'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of diamond are formed as a byproduct from the " -"crystallization process of a diamond matrix. While the substance usually " -"decays when separated from the catalyst; these fragments are small enough to" -" remain stable." -msgstr "" -"Te małe fragmenty diamentów formują się jako produkt uboczny procesu " -"krystalizacji matrycy diamentowej. Substancja zwykle ulega degradacji po " -"oddzieleniu katalizatora, ale te fragmenty są na tyle małe, że pozostały " -"stabilne." - -#: lang/json/AMMO_from_json.py -msgid "vortex core" -msgid_plural "vortex core" -msgstr[0] "rdzeń wiru" -msgstr[1] "rdzeń wiru" -msgstr[2] "rdzeń wiru" -msgstr[3] "rdzeń wiru" - #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" msgid_plural "pairs of bone arm guards" @@ -9537,7 +8796,6 @@ msgstr[3] "modularna kamizelka kuloodporna (pusta)" #. 'large grenade pouches'}. #. ~ Use action holster_msg for {'str': 'MBR vest (titanium)', 'str_pl': 'MBR #. vests (titanium)'}. -#. ~ Use action holster_msg for javelin bag. #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You stash your %s." @@ -9967,12 +9225,11 @@ msgstr[3] "uprząż biodrowa ocalonych" #. 'pairs of knee-high boots'}. #. ~ Use action holster_msg for {'str': 'pair of rollerblades', 'str_pl': #. 'pairs of rollerblades'}. -#. ~ Use action holster_msg for {'str': 'pair of rollerskates', 'str_pl': -#. 'pairs of rollerskates'}. -#. ~ Use action holster_msg for C.R.I.T web belt. +#. ~ Use action holster_msg for CRIT web belt. #. ~ Use action holster_msg for {'str': "technomancer's toolbelt"}. #. ~ Use action holster_msg for {'str': 'hollow cane'}. -#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/ARMOR_from_json.py lang/json/ARMOR_from_json.py +#: lang/json/GENERIC_from_json.py #, no-python-format msgid "You sheath your %s" msgstr "Chowasz swój %s do pochwy" @@ -9980,7 +9237,7 @@ msgstr "Chowasz swój %s do pochwy" #. ~ Use action holster_prompt for {'str': 'survivor utility belt'}. #. ~ Use action holster_prompt for {'str': 'survivor belt'}. #. ~ Use action holster_prompt for {'str': 'hiking backpack'}. -#. ~ Use action holster_prompt for C.R.I.T web belt. +#. ~ Use action holster_prompt for CRIT web belt. #. ~ Use action holster_prompt for {'str': "technomancer's toolbelt"}. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" @@ -10131,7 +9388,6 @@ msgstr[2] "torba na oszczepy" msgstr[3] "torba na oszczepy" #. ~ Use action holster_prompt for {'str': 'javelin bag'}. -#. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" msgstr "Włóż oszczepy" @@ -10502,6 +9758,22 @@ msgid "A pair of light leather arm guards, made for archery." msgstr "" "Para lekkich skórzanych ochraniaczy na ręce, zrobionych dla łuczników." +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': +#. 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -11102,6 +10374,38 @@ msgstr[3] "buty bojowe" msgid "Modern reinforced tactical combat boots. Very durable." msgstr "Współczesne wzmacniane taktyczne buty wojskowe. Bardzo wytrzymałe." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs +#. of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -11900,6 +11204,8 @@ msgstr[3] "ognioodporne skarpety" #. ~ Description for {'str': 'pair of flame-resistant socks', 'str_pl': 'pairs #. of flame-resistant socks'} +#. ~ Description for {'str': 'pair of XL flame-resistant socks', 'str_pl': +#. 'pairs of XL flame-resistant socks'} #: lang/json/ARMOR_from_json.py msgid "" "A snug fitting pair of stockings made from thin and lightweight Nomex fire-" @@ -11910,6 +11216,14 @@ msgstr "" "Wytrzymałe lecz oddychające. Są na tyle lekkie i wygodne, że można je nosić " "pod ubraniem." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL flame-resistant socks" +msgid_plural "pairs of XL flame-resistant socks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/ARMOR_from_json.py msgid "pair of socks" msgid_plural "pairs of socks" @@ -11925,6 +11239,20 @@ msgstr[3] "para skarpet" msgid "Socks. Put 'em on your feet." msgstr "Skarpety. Załóż je na stopy." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL socks" +msgid_plural "pairs of XL socks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'pair of XL socks', 'str_pl': 'pairs of XL +#. socks'} +#: lang/json/ARMOR_from_json.py +msgid "Socks. Big ones. Put 'em on your feet." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of ankle socks" msgid_plural "pairs of ankle socks" @@ -11988,6 +11316,22 @@ msgstr[3] "para wełnianych skarpet" msgid "Warm socks made of wool." msgstr "Ciepłe skarpety z wełnianej włóczki." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL wool socks" +msgid_plural "pairs of XL wool socks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'pair of XL wool socks', 'str_pl': 'pairs of XL +#. wool socks'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Warm socks made of wool for a larger than you'd previously thought possible " +"human." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of stockings" msgid_plural "pairs of stockings" @@ -13822,11 +13166,9 @@ msgstr[3] "taktyczne rękawice" #. tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." msgstr "" -"Para wzmocnionych kevlarem rękawic używanych w siłach policyjnych i w " -"wojsku." #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -13882,7 +13224,8 @@ msgstr[3] "" #. of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." msgstr "" #: lang/json/ARMOR_from_json.py @@ -14110,6 +13453,23 @@ msgstr[3] "par rękawic golfowych" msgid "A thin pair of black leather golfing gloves." msgstr "Cienka para czarnych skórzanych rękawic golfowych." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD +#. gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -20300,6 +19660,23 @@ msgid "" msgstr "" "Para czarnych skórzanych nogawic. Bardzo wytrzymałe, ale nie mają kieszeni." +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -20470,6 +19847,39 @@ msgid "" "built to be durable, comfortable, and easy to wear." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "basketball shorts" msgid_plural "basketball shorts" @@ -20923,6 +20333,8 @@ msgstr[2] "spodni roboczych" msgstr[3] "spodni roboczych" #. ~ Description for {'str': 'work pants', 'str_pl': 'pairs of work pants'} +#. ~ Description for {'str': 'XL work pants', 'str_pl': 'pairs of XL work +#. pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." msgstr "Para szarych spodni roboczych." @@ -20978,6 +20390,21 @@ msgstr[3] "kominiarka" msgid "A warm covering that protects the head and face from the cold." msgstr "Ocieplane okrycie głowy i twarzy chroniące przed mrozem." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -21426,6 +20853,7 @@ msgstr[3] "" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "Twój pancerz uruchamia się." @@ -22075,10 +21503,8 @@ msgstr "Schowaj kij golfowy" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." +"has straps to be worn on the back and a slot for an umbrella." msgstr "" -"Wysoki płócienny i plastikowy worek z rozkładanymi nóżkami, używany do " -"golfu. Ma nawet paski do noszenia na plecach." #: lang/json/ARMOR_from_json.py msgid "H&K operational briefcase (empty)" @@ -22208,10 +21634,10 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "petpack" msgid_plural "petpacks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "torba na zwierzę" +msgstr[1] "torby na zwierzę" +msgstr[2] "torb na zwierzę" +msgstr[3] "torb na zwierzę" #. ~ Description for {'str': 'petpack'} #: lang/json/ARMOR_from_json.py @@ -22441,15 +21867,15 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "travelpack" msgid_plural "travelpacks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "plecak wycieczkowy" +msgstr[1] "plecaki wycieczkowe" +msgstr[2] "plecaków wycieczkowych" +msgstr[3] "plecaków wycieczkowych" #. ~ Description for {'str': 'travelpack'} #: lang/json/ARMOR_from_json.py msgid "A hiking pack used for short trips." -msgstr "" +msgstr "Plecak używany do krótkich wycieczek." #: lang/json/ARMOR_from_json.py msgid "utility vest" @@ -22466,6 +21892,19 @@ msgstr "" "Lekka kamizelka obszyta paskami i kieszeniami na narzędzia i inne " "przedmioty." +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -23797,6 +23236,21 @@ msgid "" " from cuts." msgstr "Fartuch z grubej skóry. Niewygodny, ale dobrze chroni przed cięciami." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from " +"cuts." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -24480,6 +23934,19 @@ msgstr[3] "slipki bokserki" msgid "The age-old question, boxers or briefs? Your answer? Yes." msgstr "Wiekowe pytanie: bokserki czy slipki? Twoja odpowiedź? Tak." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer briefs" +msgid_plural "XL boxer briefs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'XL boxer briefs'} +#: lang/json/ARMOR_from_json.py +msgid "The age-old question, boxers or briefs? Your answer? Chonk!" +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "boxer shorts" msgid_plural "boxer shorts" @@ -24494,6 +23961,21 @@ msgid "" "Men's boxer shorts. More fashionable than briefs and just as comfortable." msgstr "Męskie bokserki. Bardziej modne niż slipki, ale równie wygodne." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer shorts" +msgid_plural "XL boxer shorts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'XL boxer shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Men's XL boxer shorts. For the very big and tall. More fashionable than " +"briefs and just as comfortable." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "boy shorts" msgid_plural "boy shorts" @@ -24510,6 +23992,21 @@ msgstr "" "Kobieca bielizna inspirowana męskimi bokserkami, ale dużo bardziej " "przylegająca." +#: lang/json/ARMOR_from_json.py +msgid "XL boy shorts" +msgid_plural "XL boy shorts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'XL boy shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Female underwear similar to men's boxer shorts, but much more close-fitting." +" This size is made for giants." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bra" msgid_plural "bras" @@ -24776,6 +24273,22 @@ msgstr "" "Mocny nylonowy stanik zapewniający chwyt potrzeby podczas zwiększonego " "ruchu. Zwykle noszony podczas ćwiczeń fizycznych i łatwy do założenia." +#: lang/json/ARMOR_from_json.py +msgid "XL sports bra" +msgid_plural "XL sports bras" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'XL sports bra'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A sturdy nylon bra to provide additional support during physical movement. " +"Typically worn when exercising, it clings to the skin and is easy to wear. " +"This one appears to have been made for a massive person." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "tank top" msgid_plural "tank tops" @@ -25080,6 +24593,64 @@ msgid "" "but cannot be repaired" msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL jeans" +msgid_plural "pairs of XL jeans" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'XL jeans', 'str_pl': 'pairs of XL jeans'} +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue jeans with two deep pockets." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL work pants" +msgid_plural "pairs of XL work pants" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL gray work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL light-blue work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL work t-shirt" +msgid_plural "XL work t-shirts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'XL work t-shirt'} +#: lang/json/ARMOR_from_json.py +msgid "A gray XL work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL blue work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL gray work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL light-blue work t-shirt with a small front pocket." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Uplifted SWAT armor" msgid_plural "Uplifted SWAT armors" @@ -25168,6 +24739,67 @@ msgid "" "tactical gloves." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL leather belt" +msgid_plural "XL leather belts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'XL leather belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL leather belt. Useful for making your pair of pants fit if you need " +"really big pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL police duty belt" +msgid_plural "XL police duty belts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'XL police duty belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL black leather belt used by extremely large uplifted police officers. " +"It has several pouches and a holder for a baton." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL tactical full helmet" +msgid_plural "XL tactical full helmets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'XL tactical full helmet'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An all-encompassing massive black helmet that covers your entire face and " +"neck, providing excellent protection from all sorts of damage." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL leg ammo pouch" +msgid_plural "XL leg ammo pouches" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'XL leg ammo pouch', 'str_pl': 'XL leg ammo +#. pouches'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL fabric ammo pouch that can be strapped to your leg and capable of " +"holding two magazine close at hand." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "titanium watch" msgid_plural "titanium watches" @@ -25345,6 +24977,23 @@ msgid "" "armor, it'll still keep you relatively safe." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "CRIT Engineering Suit" +msgid_plural "CRIT Engineering Suits" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for CRIT Engineering Suit +#: lang/json/ARMOR_from_json.py +msgid "" +"An airtight, flexible suit of woven composite fibers complete with segmented" +" plates of armor. A complex system digitizes items in an individual pocket " +"universe for storage while built in joint-torsion ratchets generate the " +"neccessary energy required to power the interface." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "CRIT face mask" msgid_plural "CRIT face masks" @@ -25356,9 +25005,9 @@ msgstr[3] "" #. ~ Description for CRIT face mask #: lang/json/ARMOR_from_json.py msgid "" -"This is the C.R.I.T standard issue face mask, lined with Kevlar for extra " -"protection. A few filters provide decent environmental safety, but it was " -"not intended for extended use. It has a basic integrated HUD." +"A standard issue face mask, lined with Kevlar for extra protection. A few " +"filters provide decent environmental safety, but it was not intended for " +"extended use. It has a basic integrated HUD." msgstr "" #: lang/json/ARMOR_from_json.py @@ -25373,7 +25022,7 @@ msgstr[3] "" #. boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and " +"A pair of standard-issue boots. Next-gen gels keep feet comfortable and " "hygienic during long-term missions while absorbing shock and heat from " "outside-sources. Superalloy mesh and rubber offer quite a bit of chemical " "protection as well. Decently heavy though" @@ -25391,7 +25040,7 @@ msgstr[3] "" #. LA boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor " +"A pair of skeletonized boots. Based off of C.R.I.T boots, the light-armor " "variant was created for missions in warmer climates. The LA boots keep most" " of the old features of the standard issue boots but trade in protection for" " easier movement." @@ -25409,7 +25058,7 @@ msgstr[3] "" #. 'pairs of CRIT fingertip-less gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with " +"A pair of standard-issue gloves. Made with superalloy mesh for those with " "gene-modding and/or mutations while still allowing greater manipulation of " "items and moderate protection." msgstr "" @@ -25426,8 +25075,8 @@ msgstr[3] "" #. 'pairs of CRIT fingertip-less liners'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue glove liners. Made with neoprene and rubber mesh for" -" warmth and fingertip-less for those with gene-modding and/or mutations " +"A pair of standard-issue glove liners. Made with neoprene and rubber mesh " +"for warmth and fingertip-less for those with gene-modding and/or mutations " "while still allowing greater manipulation of items and moderate protection." msgstr "" @@ -25442,10 +25091,10 @@ msgstr[3] "" #. ~ Description for CRIT backpack #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this " -"smaller pack strikes a fine balance between storage space and encumbrance " -"and allows a larger weapon to be holstered, drawing and holstering is still " -"rather awkward even with the magnetized clips, but practice helps." +"A standard-issue pack. Based on the MOLLE backpack's design, this smaller " +"pack strikes a fine balance between storage space and encumbrance and allows" +" a larger weapon to be holstered, drawing and holstering is still rather " +"awkward even with the magnetized clips, but practice helps." msgstr "" #: lang/json/ARMOR_from_json.py @@ -25459,8 +25108,8 @@ msgstr[3] "" #. ~ Description for CRIT chestrig #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" -" with light-armor padding." +"A slightly modified chestrig, has mesh and MOLLE loops for gear and slots " +"with light-armor padding." msgstr "" #: lang/json/ARMOR_from_json.py @@ -25475,21 +25124,21 @@ msgstr[3] "" #. CRIT leg guards'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue leg armor. Simple design and durable material allows" -" for easy movement and the padding keeps the legs safe and warm in colder " +"Leg armor for those who fight. Simple design and durable material allows " +"for easy movement and the padding keeps the legs safe and warm in colder " "conditions." msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT arm guards" -msgid_plural "pairs of C.R.I.T arm guards" +msgid_plural "pairs of CRIT arm guards" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'pair of CRIT arm guards', 'str_pl': 'pairs of -#. C.R.I.T arm guards'} +#. CRIT arm guards'} #: lang/json/ARMOR_from_json.py msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " @@ -25508,8 +25157,8 @@ msgstr[3] "" #. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on " -"your hip." +"CRIT standard-issue belt. Keeps your trousers up and your weapons on your " +"hip." msgstr "" #: lang/json/ARMOR_from_json.py @@ -25528,23 +25177,6 @@ msgid "" "discharges from the robots. Has several pockets for storage." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "CRIT Engineering Suit" -msgid_plural "CRIT Engineering Suits" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for CRIT Engineering Suit -#: lang/json/ARMOR_from_json.py -msgid "" -"An airtight, flexible suit of woven composite fibers complete with segmented" -" plates of armor. A complex system digitizes items in an individual pocket " -"universe for storage while built in joint-torsion ratchets generate the " -"necessary energy required to power the interface." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "CRIT Armored Anomaly Suit" msgid_plural "CRIT Armored Anomaly Suits" @@ -25564,14 +25196,14 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "CRIT drop leg pouch" -msgid_plural "C.R.I.T drop leg pouches" +msgid_plural "CRIT drop leg pouches" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'C.R.I.T drop -#. leg pouches'} +#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'CRIT drop leg +#. pouches'} #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " @@ -25611,7 +25243,7 @@ msgstr[3] "" #. of CRIT Enforcer docks'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of " +"CRIT Enforcer docks. Metal plates vaguely molded into the shape of " "oversized feet which clamp down onto your own footwear keep your feet out of" " harms way. It looks terrible and feels clunky unlike most of C.R.I.T's " "designs, but they do seem to be worth using if you were to be in the middle " @@ -25653,133 +25285,162 @@ msgid "" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T blouse" -msgid_plural "C.R.I.T blouses" +msgid "CRIT blouse" +msgid_plural "CRIT blouses" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for C.R.I.T blouse +#. ~ Description for CRIT blouse #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage." -" Super-flex neoprene keeps one warm in moderately cold weather while a " -"sleek design keeps it from being too flashy. A zipper at the back and front" -" allows for quick donning and doffing." +"A standard-issue military jacket. Durable, lightweight, and has ample " +"storage. Super-flex neoprene keeps one warm in moderately cold weather " +"while a sleek design keeps it from being too flashy. A zipper at the back " +"and front allows for quick donning and doffing." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T trousers" -msgid_plural "C.R.I.T trousers" +msgid "CRIT trousers" +msgid_plural "CRIT trousers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT trousers'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue trousers. Durable, lightweight and has ample " +"A pair of standard-issue cargo pants. Durable, lightweight and has ample " "storage. Super-flex neoprene keeps one warm in moderately cold weather." msgstr "" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#: lang/json/ARMOR_from_json.py +msgid "CRIT pants" +msgid_plural "CRIT pants" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'CRIT pants'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " -"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " -"cold weather." +"A pair of dress pants. A minimalist sleek design makes the pants " +"lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in" +" moderately cold weather." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T helmet liner" -msgid_plural "C.R.I.T helmet liners" +msgid "CRIT helmet liner" +msgid_plural "CRIT helmet liners" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for C.R.I.T helmet liner +#. ~ Description for CRIT helmet liner #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." +msgid "A standard-issue helmet liner. Keeps the noggin warm." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T shoes" -msgid_plural "pairs of C.R.I.T dress shoes" +msgid "pair of CRIT shoes" +msgid_plural "pairs of CRIT dress shoes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'pair of C.R.I.T shoes', 'str_pl': 'pairs of -#. C.R.I.T dress shoes'} +#. ~ Description for {'str': 'pair of CRIT shoes', 'str_pl': 'pairs of CRIT +#. dress shoes'} #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T rec gloves" -msgid_plural "pairs of C.R.I.T rec gloves" +msgid "pair of CRIT rec gloves" +msgid_plural "pairs of CRIT rec gloves" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'pair of C.R.I.T rec gloves', 'str_pl': 'pairs of -#. C.R.I.T rec gloves'} +#. ~ Description for {'str': 'pair of CRIT rec gloves', 'str_pl': 'pairs of +#. CRIT rec gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are" -" made with cotton with a neoprene lining for grip-pads and warmth. " +"A pair of standard-issue rec gloves. Skin-hugging and sleek, these gloves " +"are made with cotton with a neoprene lining for grip-pads and warmth. " msgstr "" +#. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T web belt" -msgid_plural "C.R.I.T web belts" +msgid "" +"A standard-issue belt. Keeps your trousers up and your tools on your hip." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "CRIT rec duster" +msgid_plural "CRIT rec dusters" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for C.R.I.T web belt +#. ~ Description for CRIT rec duster #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " -"hip." +"A waterproofed full-length duster coat. Made with neoprene, comfort and " +"functionality meet together to form a fancy but sleek contemporary design. " +"It has several pockets for storage." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec duster" -msgid_plural "C.R.I.T rec dusters" +msgid "CRIT rec hat" +msgid_plural "CRIT rec hats" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for C.R.I.T rec duster +#. ~ Description for CRIT rec hat #: lang/json/ARMOR_from_json.py msgid "" -"A waterproofed full-length duster coat. Made with neoprene, comfort and " -"functionality meet together to form a fancy but sleek contemporary design. " -"It has several pockets for storage." +"Functionality meets fashion in this waterproofed CRIT standard issue rec " +"cover. Thick enough to provide warmth in colder weather, this hat shares " +"the same sleek design of most of C.R.I.T's gear." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec hat" -msgid_plural "C.R.I.T rec hats" +msgid "plant fiber tunic" +msgid_plural "plant fiber tunics" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for C.R.I.T rec hat +#. ~ Description for plant fiber tunic #: lang/json/ARMOR_from_json.py msgid "" -"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " -"cover. Thick enough to provide warmth in colder weather, this hat shares " -"the same sleek design of most of C.R.I.T's gear." +"A loose garment cobbled together from a collection of plant bundles and " +"wound together by makeshift cordage" +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber bracelet" +msgid_plural "plant fiber bracelets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for plant fiber bracelet +#: lang/json/ARMOR_from_json.py +msgid "" +"A bracelet wound together by makeshift cordage. Has some cool looking " +"pebbles. " msgstr "" #: lang/json/ARMOR_from_json.py @@ -25793,8 +25454,8 @@ msgstr[3] "" #. ~ Description for CRIT canteen #: lang/json/ARMOR_from_json.py msgid "" -"A simple, durable steel canteen that can heat up food with built in " -"plutonium heating elements." +"A durable steel canteen that can heat up food with built in atomic heating " +"elements." msgstr "" #: lang/json/ARMOR_from_json.py @@ -26507,165 +26168,6 @@ msgid "" "the environment." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "wooden shield" -msgid_plural "wooden shields" -msgstr[0] "drewniana tarcza" -msgstr[1] "drewniana tarcza" -msgstr[2] "drewniana tarcza" -msgstr[3] "drewniana tarcza" - -#. ~ Description for wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A crude wooden shield, lacking any metal or leather reinforcement. " -"Lightweight but not very tough." -msgstr "" -"Prosta drewniana tarcza, której brakuje metalowych lub skórzanych wzmocnień." -" Lekka lecz niezbyt odporna." - -#: lang/json/ARMOR_from_json.py -msgid "large wooden shield" -msgid_plural "large wooden shields" -msgstr[0] "duża drewniana tarcza" -msgstr[1] "duża drewniana tarcza" -msgstr[2] "duża drewniana tarcza" -msgstr[3] "duża drewniana tarcza" - -#. ~ Description for large wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"An ancient style of wooden shield, lacking any metal or leather " -"reinforcement. Bulky, but offers a decent amount of protection." -msgstr "" -"Drewniana tarcza w starożytnym stylu, której brakuje metalowych lub " -"skórzanych wzmocnień. Masywna, ale zapewnia przyzwoitą ochronę." - -#: lang/json/ARMOR_from_json.py -msgid "heater shield" -msgid_plural "heater shields" -msgstr[0] "tarcza rycerska" -msgstr[1] "tarcza rycerska" -msgstr[2] "tarcza rycerska" -msgstr[3] "tarcza rycerska" - -#. ~ Description for heater shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A medieval style of shield made of wood overlaid with leather, developed " -"from the longer kite shield. Mainly used in tournaments, but still viable " -"in battle." -msgstr "" -"Tarcza w średniowiecznym stylu zrobiona z drewna obciągniętego skórą, " -"opracowana na bazie dłuższej tarczy normandzkiej. Używana głównie w " -"turniejach, ale nadal skuteczna w walce." - -#: lang/json/ARMOR_from_json.py -msgid "kite shield" -msgid_plural "kite shields" -msgstr[0] "tarcza normandzka" -msgstr[1] "tarcza normandzka" -msgstr[2] "tarcza normandzka" -msgstr[3] "tarcza normandzka" - -#. ~ Description for kite shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A classic medieval style of shield, made of wood overlaid with leather, in " -"an elongated teardrop shape. Affords decent protection, but was better " -"suited for cavalry." -msgstr "" -"Klasyczna średniowieczna tarcza, zrobiona z drewna obciągniętego skórą, w " -"kształcie migdała. Zapewnia przyzwoitą ochronę, ale lepiej odpowiada dla " -"kawalerii." - -#: lang/json/ARMOR_from_json.py -msgid "round shield" -msgid_plural "round shields" -msgstr[0] "okrągła tarcza" -msgstr[1] "okrągła tarcza" -msgstr[2] "okrągła tarcza" -msgstr[3] "okrągła tarcza" - -#. ~ Description for round shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple round shield made of wood, with a rim and boss of iron. Made " -"infamous by the Vikings." -msgstr "" -"Prosta okrągła tarcza, zrobiona z drewna z metalowym brzegiem i umbo. Okryta" -" złą sławą przez wikingów." - -#: lang/json/ARMOR_from_json.py -msgid "hoplon" -msgid_plural "hoplons" -msgstr[0] "hoplon" -msgstr[1] "hoplon" -msgstr[2] "hoplon" -msgstr[3] "hoplon" - -#. ~ Description for hoplon -#: lang/json/ARMOR_from_json.py -msgid "" -"A convex round shield from ancient Greece, made of wood reinforced with " -"bronze. Heavy but effective." -msgstr "" -"Wypukła okrągła tarcza ze starożytnej Grecji noszona przez hoplitów, " -"zrobiona z drewna zbrojonego brązem. Ciężka ale skuteczna." - -#: lang/json/ARMOR_from_json.py -msgid "scutum" -msgid_plural "scuta" -msgstr[0] "scutum" -msgstr[1] "scutum" -msgstr[2] "scutum" -msgstr[3] "scutum" - -#. ~ Description for {'str': 'scutum', 'str_pl': 'scuta'} -#: lang/json/ARMOR_from_json.py -msgid "" -"A rectangular shield from ancient Rome, made of wood and iron. Perfect for " -"fighting in formation, but not ideal for facing zombies alone." -msgstr "" -"Prostokątna tarcza ze starożytnego Rzymu, zrobiona z drewna i żelaza. " -"Doskonała w walce w formacji zbrojnej, ale niezbyt dobra do samotnych starć " -"z zombi." - -#: lang/json/ARMOR_from_json.py -msgid "buckler" -msgid_plural "bucklers" -msgstr[0] "puklerz" -msgstr[1] "puklerz" -msgstr[2] "puklerz" -msgstr[3] "puklerz" - -#. ~ Description for buckler -#: lang/json/ARMOR_from_json.py -msgid "" -"A small metal shield from the late medieval and renaissance periods. " -"Extremely light and tough, but its small size is as much a hindrance as it " -"is an advantage." -msgstr "" -"Mała metalowa tarcza z późnego średniowiecza i renesansu. Bardzo lekka i " -"twarda, ale jej mały rozmiar jest większym utrapieniem niż zaletą." - -#: lang/json/ARMOR_from_json.py -msgid "hooded hat" -msgid_plural "hooded hats" -msgstr[0] "kapelusz z kołnierzem" -msgstr[1] "kapelusz z kołnierzem" -msgstr[2] "kapelusz z kołnierzem" -msgstr[3] "kapelusz z kołnierzem" - -#. ~ Description for hooded hat -#: lang/json/ARMOR_from_json.py -msgid "" -"A proper wide-brimmed hat, modified by the addition of a hood sewn to it, to" -" better protect the neck from wind and rain." -msgstr "" -"Prawdziwy kapelusz z szerokim rondem, zmodyfikowany przed doszycie kołnierza" -" dla lepszej ochrony szyi przed wiatrem i deszczem." - #: lang/json/ARMOR_from_json.py msgid "TEST pair of socks" msgid_plural "TEST pairs of socks" @@ -26714,6 +26216,32 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "" + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -28767,6 +28295,21 @@ msgstr "" "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 lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "" + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -28805,6 +28348,24 @@ msgid "" " the better. It can hold up to 100 mL of blood." msgstr "" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Crystallized Mana Nose Replacement" +msgid_plural "Crystallized Mana Nose Replacements" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Crystallized Mana Nose Replacement'} +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"A large gem made with crystallized mana and some other stabilizing metals. " +"Comes with a specially designed power pack (installed into the skull) that " +"does not interfere with your mana ley lines. WARNING: for Technomancer use " +"only. By using this spell you are waiving all liability of Frikken Laser " +"Beams Inc. and its subsidiaries." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" msgid_plural "chicken walker schematics" @@ -28875,6 +28436,370 @@ msgstr "" "stawiają bardzo przekonujące tezy dla opracowania sprężynowo napędzanych " "pocisków jądrowych. Ostemplowano \"ODRZUCONO\"" +#: lang/json/BOOK_from_json.py +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Generic Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a manuscript purporting to be factual" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Generic Fiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a work of fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Generic Hard Bound Fiction Book +#: lang/json/BOOK_from_json.py +msgid "Template for hard bound book of fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#: lang/json/BOOK_from_json.py +msgid "An ordinary paperback book. Or is it? It is." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Book" +msgid_plural "Nonfiction Books" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for hard bound nonfiction book" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Paperback" +msgid_plural "Nonfiction Paperbacks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Nonfiction Paperback +#: lang/json/BOOK_from_json.py +msgid "template for a paperback nonfiction book" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Homemaking Book" +msgid_plural "Homemaking Books" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Homemaking Book +#: lang/json/BOOK_from_json.py +msgid "" +"This is a template for books about homemaking, style, home decor, and home " +"economics." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Cookbook" +msgid_plural "Hardcover Cookbooks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Hardcover Cookbook +#. ~ Description for Softcover Cookbook +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about cooking." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Cookbook" +msgid_plural "Softcover Cookbooks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/BOOK_from_json.py +msgid "dodge skillbook abstract" +msgid_plural "dodge skillbook abstracts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for dodge skillbook abstract +#: lang/json/BOOK_from_json.py +msgid "An ordinary book. Or is it? It is." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Hardcover Philosophy +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about philosophy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Softcover Philosophy. +#: lang/json/BOOK_from_json.py +msgid "This is a template for paperbacks about philosophy." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. +#: lang/json/BOOK_from_json.py +msgid "This is a template." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/BOOK_from_json.py +msgid "template for mass produced books on esoteric subjects" +msgid_plural "template for mass produced books on esoteric subjectss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for template for mass produced books on esoteric subjects +#: lang/json/BOOK_from_json.py +msgid "" +"An ordinary paperback book. Or is it? Is that a glimmer of higher truth?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Sweet Providence Romance Novel" +msgid_plural "Sweet Providence Romance Novels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Sweet Providence Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is a publisher of discount romance paperbacks easily " +"recognized by their blue and yellow cover illustrations. Despite the adult " +"nature of their subject matter, the books tend to be under 250 pages of " +"large print written in a vocabulary consistent with a 4th grade reading " +"level." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Lorn and Loan Romance Novel" +msgid_plural "Lorn and Loan Romance Novels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Lorn and Loan Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Lorn and Loan Press marketed romance paperbacks to a variety of alt " +"demographics, especially those with a penchant for eyeliner. The books are " +"billed as \"provocative,\" but words like \"malingering\" and \"turgid\" " +"also come to mind." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Vanilla Romance Novel" +msgid_plural "Vanilla Romance Novels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Vanilla Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Vanilla Media is a mainstream publisher providing romantic literature to " +"everyday readers of taste. These stories contain explicit details only in " +"the odd chapters, and invariably end with a conventionally uplifting moral." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Everyman Library" +msgid_plural "The Everyman Librarys" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Everyman Library +#: lang/json/BOOK_from_json.py +msgid "" +"The Everyman Library is an imprint of Vanilla Media that publishes stories " +"about private eyes, cowboys, quarterbacks, and mobsters." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Tween Topics" +msgid_plural "Tween Topicss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Tween Topics +#: lang/json/BOOK_from_json.py +msgid "" +"Tween Topics is an imprint of Vanilla Media that publishes stories that " +"appeal to the youth of today. Or, failing that, the parents of said youth." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Quiddity Books" +msgid_plural "Quiddity Bookss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Quiddity Books +#: lang/json/BOOK_from_json.py +msgid "" +"Quiddity publishes books for young adults. They offer stories about self-" +"discovery, personal identity, and contemporary trends." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Satire Template" +msgid_plural "Satire Templates" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Satire Template +#: lang/json/BOOK_from_json.py +msgid "template for mass produced satirical fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Magazine Template" +msgid_plural "Magazine Templates" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "News Magazine Template" +msgid_plural "News Magazine Templates" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for News Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for news magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "readable magazine" +msgid_plural "readable magazines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/BOOK_from_json.py +msgid "archery skill training abstract" +msgid_plural "archery skill training abstracts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for archery skill training abstract +#: lang/json/BOOK_from_json.py +msgid "template for heavy books that confer archery skill training" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Lessons for the Novice Bowhunter" msgid_plural "copies of Lessons for the Novice Bowhunter" @@ -28893,6 +28818,22 @@ msgstr "" "Opasłe kieszonkowe wydanie zawiera całą wiedzę niezbędną początkującym w " "rozpoczęciu łowieckiej przygody z łukiem lub kuszą." +#: lang/json/BOOK_from_json.py +msgid "Zen and the Art of Archery" +msgid_plural "copies of Zen and the Art of Archery" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies +#. of Zen and the Art of Archery'} +#: lang/json/BOOK_from_json.py +msgid "" +"This massive book contains a wealth of vital information for the novice " +"archer." +msgstr "Ta masywna książka to studnia wiedzy dla początkującego łucznika." + #: lang/json/BOOK_from_json.py msgid "Archery for Kids" msgid_plural "issues of Archery for Kids" @@ -28913,22 +28854,6 @@ msgstr "" "ale gdy będziesz wiedział jak tego dokonać, łucznictwo sprawi ci wiele " "frajdy. " -#: lang/json/BOOK_from_json.py -msgid "Zen and the Art of Archery" -msgid_plural "copies of Zen and the Art of Archery" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies -#. of Zen and the Art of Archery'} -#: lang/json/BOOK_from_json.py -msgid "" -"This massive book contains a wealth of vital information for the novice " -"archer." -msgstr "Ta masywna książka to studnia wiedzy dla początkującego łucznika." - #: lang/json/BOOK_from_json.py msgid "car buyer's guide" msgid_plural "car buyer's guides" @@ -29014,100 +28939,6 @@ msgstr "" "sprawdzonymi, nie zmyślonymi informacjami, streszczonymi w przystępnej dla " "początkujących formie." -#: lang/json/BOOK_from_json.py -msgid "SICP" -msgid_plural "copies of SICP" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} -#: lang/json/BOOK_from_json.py -msgid "" -"A classic text, \"The Structure and Interpretation of Computer Programs.\" " -"Written with examples in LISP, but applicable to any language." -msgstr "" -"Klasyczny tekst o programowaniu, z przykładami w LISP, ale do wykorzystania " -"w dowolnym języku programowania." - -#: lang/json/BOOK_from_json.py -msgid "Computer Science 301" -msgid_plural "copies of Computer Science 301" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of -#. Computer Science 301'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on computer science." -msgstr "Podręcznik komputerowy koledżu." - -#: lang/json/BOOK_from_json.py -msgid "How to Browse the Web" -msgid_plural "copies of How to Browse the Web" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How -#. to Browse the Web'} -#: lang/json/BOOK_from_json.py -msgid "Very beginner-level information about computers." -msgstr "Podstawowe informacje dla rozpoczynających przygodę z komputerami." - -#: lang/json/BOOK_from_json.py -msgid "Computer World" -msgid_plural "issues of Computer World" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer -#. World'} -#: lang/json/BOOK_from_json.py -msgid "" -"An informative magazine all about computers, both hardware and software." -msgstr "" -"Pouczający magazyn o komputerach w ogólności, zarówno w temacie hardware " -"jaki i software." - -#: lang/json/BOOK_from_json.py -msgid "Computer Science 101" -msgid_plural "copies of Computer Science 101" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of -#. Computer Science 101'} -#: lang/json/BOOK_from_json.py -msgid "An entry-level textbook about computers." -msgstr "Poradnik dla wkraczających w świat komputerów." - -#: lang/json/BOOK_from_json.py -msgid "Principles of Advanced Programming" -msgid_plural "copies of Principles of Advanced Programming" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': -#. 'copies of Principles of Advanced Programming'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy textbook dedicated to advanced-level software design, written for " -"several different programming languages." -msgstr "" -"Ciężki podręcznik poświęcony zaawansowanym poziomom projektowania " -"oprogramowania, napisany dla kilku różnych języków programowania." - #: lang/json/BOOK_from_json.py msgid "Advanced Physical Chemistry" msgid_plural "copies of Advanced Physical Chemistry" @@ -29120,154 +28951,10 @@ msgstr[3] "" #. of Advanced Physical Chemistry'} #: lang/json/BOOK_from_json.py msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." -msgstr "" -"Uniwersytecki skrypt o zaawansowanych zasadach chemii organicznej i " -"nieorganicznej." - -#: lang/json/BOOK_from_json.py -msgid "The Homebrewer's Bible" -msgid_plural "copies of The Homebrewer's Bible" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of -#. The Homebrewer's Bible"} -#: lang/json/BOOK_from_json.py -msgid "" -"A book full of easy-to-follow recipes and useful advice on homebrewing, " -"malting, and fermenting. It even smells faintly of booze." -msgstr "" -"Książka z łatwymi do zastosowania przepisami i użytecznymi radami o domowym " -"piwowarstwie, zacierze i fermentowaniu. Nawet lekko cuchnie piwem." - -#: lang/json/BOOK_from_json.py -msgid "Cooking on a Budget" -msgid_plural "copies of Cooking on a Budget" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of -#. Cooking on a Budget'} -#: lang/json/BOOK_from_json.py -msgid "" -"A nice cook book that goes beyond recipes and into the chemistry of food." -msgstr "" -"Przyjemna książeczka kucharska, która wykracza poza same przepisy w sferę " -"chemii żywności." - -#: lang/json/BOOK_from_json.py -msgid "To Serve Man" -msgid_plural "copies of To Serve Man" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve -#. Man'} -#: lang/json/BOOK_from_json.py -msgid "It's… it's a cookbook!" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Cucina Italiana" -msgid_plural "copies of Cucina Italiana" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina -#. Italiana'} -#: lang/json/BOOK_from_json.py -msgid "" -"This cookbook is written in Italian, but handily illustrated with step by " -"step photo instructions." -msgstr "" -"Ten podręcznik kuchni włoskiej jest napisany po włosku, ale zawiera pomocne " -"obrazki wszystkich etapów przygotowania potraw." - -#: lang/json/BOOK_from_json.py -msgid "Sushi Made Easy" -msgid_plural "copies of Sushi Made Easy" -msgstr[0] "kopia Łatwe Sushi" -msgstr[1] "kopia Łatwe Sushi" -msgstr[2] "kopia Łatwe Sushi" -msgstr[3] "kopia Łatwe Sushi" - -#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi -#. Made Easy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A simple text for the aspiring sushi lover, this easy to read guide is " -"filled with lots of helpful illustrations for everything from basic rice " -"preparation to setting a proper Japanese table." -msgstr "" -"Prosty tekst dla aspirującego miłośnika sushi, będący przewodnikiem z " -"wieloma pomocnymi ilustracjami po wszystkim w temacie, od gotowania ryżu po " -"zastawianie japońskiego stołu." - -#: lang/json/BOOK_from_json.py -msgid "family cookbook" -msgid_plural "family cookbooks" -msgstr[0] "domowa książka kuchenna" -msgstr[1] "domowa książka kuchenna" -msgstr[2] "domowa książka kuchenna" -msgstr[3] "domowa książka kuchenna" - -#. ~ Description for {'str': 'family cookbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A big binder full of somebody's family recipes. The well-turned pages and " -"creased corners speak volumes of the culinary knowledge contained within. " -"You could probably learn a lot about cooking from studying this domestic " -"artifact." -msgstr "" -"Segregator pełny czyichś domowych przepisów. Poplamione strony i poobrywane " -"rogi mówią wiele o kulinarnej wiedzy w nim zawartej. Prawdopodobnie możesz " -"się wiele nauczyć z tego domowego artefaktu." - -#: lang/json/BOOK_from_json.py -msgid "Bon Appetit" -msgid_plural "issues of Bon Appetit" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} -#: lang/json/BOOK_from_json.py -msgid "" -"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +"A university-level textbook on advanced principles of physical chemistry and" +" all its branches: thermochemistry, electrochemistry, solid-state chemistry," +" photochemistry, quantum chemistry et cetera." msgstr "" -"Ekscytujące przepisy kulinarne i recenzje restauracji. Garść cennych porad o" -" gotowaniu." - -#: lang/json/BOOK_from_json.py -msgid "Glamopolitan" -msgid_plural "issues of Glamopolitan" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of -#. Glamopolitan'} -#: lang/json/BOOK_from_json.py -msgid "" -"This is a full-size glossy women's magazine. There are a few unoriginal " -"recipes and some simple cooking tips somewhere in between the fashion photos" -" and the sex advice columns." -msgstr "" -"Pełnowymiarowy błyszczący magazyn dla kobiet. Zawiera kilka nieoryginalnych " -"przepisów kuchennych wepchniętych pomiędzy zdjęciami z modą i kolumną z " -"poradami łóżkowymi." #: lang/json/BOOK_from_json.py msgid "The Modern Tanner" @@ -29500,6 +29187,314 @@ msgstr "" "przeglądać tabele danych chemicznych i fizycznych, jest to książka dla " "ciebie." +#: lang/json/BOOK_from_json.py +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" +msgstr[0] "podręcznik z chemii" +msgstr[1] "podręcznik z chemii" +msgstr[2] "podręcznik z chemii" +msgstr[3] "podręcznik z chemii" + +#. ~ Description for {'str': 'chemistry textbook'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on chemistry." +msgstr "Podręcznik chemii z koledżu." + +#: lang/json/BOOK_from_json.py +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', +#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': +#. 'copies of Art and Science of Chemical Warfare'} +#: lang/json/BOOK_from_json.py +msgid "" +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at" +" times, though the information is top-notch." +msgstr "" +"Ten dogłębny tekst o technicznym charakterze o projektowaniu, rozwoju, " +"unieszkodliwianiu, i obronie przed różnymi broniami chemicznymi stosowanymi " +"przez wieki. Zastosowany przez autora wybór zdjęć sprawia, że czasami " +"ciężko się go czyta, ale sam tekst to pierwsza klasa." + +#: lang/json/BOOK_from_json.py +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments +#. that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science +#. Experiments that Really Work'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book with comprehensive and accurate step-by-step illustrated instructions" +" for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "SICP" +msgid_plural "copies of SICP" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#: lang/json/BOOK_from_json.py +msgid "" +"A classic text, \"The Structure and Interpretation of Computer Programs.\" " +"Written with examples in LISP, but applicable to any language." +msgstr "" +"Klasyczny tekst o programowaniu, z przykładami w LISP, ale do wykorzystania " +"w dowolnym języku programowania." + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 301" +msgid_plural "copies of Computer Science 301" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of +#. Computer Science 301'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on computer science." +msgstr "Podręcznik komputerowy koledżu." + +#: lang/json/BOOK_from_json.py +msgid "How to Browse the Web" +msgid_plural "copies of How to Browse the Web" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How +#. to Browse the Web'} +#: lang/json/BOOK_from_json.py +msgid "Very beginner-level information about computers." +msgstr "Podstawowe informacje dla rozpoczynających przygodę z komputerami." + +#: lang/json/BOOK_from_json.py +msgid "Computer World" +msgid_plural "issues of Computer World" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer +#. World'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative magazine all about computers, both hardware and software." +msgstr "" +"Pouczający magazyn o komputerach w ogólności, zarówno w temacie hardware " +"jaki i software." + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 101" +msgid_plural "copies of Computer Science 101" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of +#. Computer Science 101'} +#: lang/json/BOOK_from_json.py +msgid "An entry-level textbook about computers." +msgstr "Poradnik dla wkraczających w świat komputerów." + +#: lang/json/BOOK_from_json.py +msgid "Principles of Advanced Programming" +msgid_plural "copies of Principles of Advanced Programming" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': +#. 'copies of Principles of Advanced Programming'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy textbook dedicated to advanced-level software design, written for " +"several different programming languages." +msgstr "" +"Ciężki podręcznik poświęcony zaawansowanym poziomom projektowania " +"oprogramowania, napisany dla kilku różnych języków programowania." + +#: lang/json/BOOK_from_json.py +msgid "The Homebrewer's Bible" +msgid_plural "copies of The Homebrewer's Bible" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of +#. The Homebrewer's Bible"} +#: lang/json/BOOK_from_json.py +msgid "" +"A book full of easy-to-follow recipes and useful advice on homebrewing, " +"malting, and fermenting. It even smells faintly of booze." +msgstr "" +"Książka z łatwymi do zastosowania przepisami i użytecznymi radami o domowym " +"piwowarstwie, zacierze i fermentowaniu. Nawet lekko cuchnie piwem." + +#: lang/json/BOOK_from_json.py +msgid "Cooking on a Budget" +msgid_plural "copies of Cooking on a Budget" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of +#. Cooking on a Budget'} +#: lang/json/BOOK_from_json.py +msgid "" +"A nice cook book that goes beyond recipes and into the chemistry of food." +msgstr "" +"Przyjemna książeczka kucharska, która wykracza poza same przepisy w sferę " +"chemii żywności." + +#: lang/json/BOOK_from_json.py +msgid "To Serve Man" +msgid_plural "copies of To Serve Man" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve +#. Man'} +#: lang/json/BOOK_from_json.py +msgid "It's… it's a cookbook!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cucina Italiana" +msgid_plural "copies of Cucina Italiana" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina +#. Italiana'} +#: lang/json/BOOK_from_json.py +msgid "" +"This cookbook is written in Italian, but handily illustrated with step by " +"step photo instructions." +msgstr "" +"Ten podręcznik kuchni włoskiej jest napisany po włosku, ale zawiera pomocne " +"obrazki wszystkich etapów przygotowania potraw." + +#: lang/json/BOOK_from_json.py +msgid "Sushi Made Easy" +msgid_plural "copies of Sushi Made Easy" +msgstr[0] "kopia Łatwe Sushi" +msgstr[1] "kopia Łatwe Sushi" +msgstr[2] "kopia Łatwe Sushi" +msgstr[3] "kopia Łatwe Sushi" + +#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi +#. Made Easy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A simple text for the aspiring sushi lover, this easy to read guide is " +"filled with lots of helpful illustrations for everything from basic rice " +"preparation to setting a proper Japanese table." +msgstr "" +"Prosty tekst dla aspirującego miłośnika sushi, będący przewodnikiem z " +"wieloma pomocnymi ilustracjami po wszystkim w temacie, od gotowania ryżu po " +"zastawianie japońskiego stołu." + +#: lang/json/BOOK_from_json.py +msgid "family cookbook" +msgid_plural "family cookbooks" +msgstr[0] "domowa książka kuchenna" +msgstr[1] "domowa książka kuchenna" +msgstr[2] "domowa książka kuchenna" +msgstr[3] "domowa książka kuchenna" + +#. ~ Description for {'str': 'family cookbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A big binder full of somebody's family recipes. The well-turned pages and " +"creased corners speak volumes of the culinary knowledge contained within. " +"You could probably learn a lot about cooking from studying this domestic " +"artifact." +msgstr "" +"Segregator pełny czyichś domowych przepisów. Poplamione strony i poobrywane " +"rogi mówią wiele o kulinarnej wiedzy w nim zawartej. Prawdopodobnie możesz " +"się wiele nauczyć z tego domowego artefaktu." + +#: lang/json/BOOK_from_json.py +msgid "Bon Appetit" +msgid_plural "issues of Bon Appetit" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#: lang/json/BOOK_from_json.py +msgid "" +"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +msgstr "" +"Ekscytujące przepisy kulinarne i recenzje restauracji. Garść cennych porad o" +" gotowaniu." + +#: lang/json/BOOK_from_json.py +msgid "Glamopolitan" +msgid_plural "issues of Glamopolitan" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of +#. Glamopolitan'} +#: lang/json/BOOK_from_json.py +msgid "" +"This is a full-size glossy women's magazine. There are a few unoriginal " +"recipes and some simple cooking tips somewhere in between the fashion photos" +" and the sex advice columns." +msgstr "" +"Pełnowymiarowy błyszczący magazyn dla kobiet. Zawiera kilka nieoryginalnych " +"przepisów kuchennych wepchniętych pomiędzy zdjęciami z modą i kolumną z " +"poradami łóżkowymi." + #. ~ That would translate out to The Scottish Book of Cookery, or The Scottish #. Cookbook. #: lang/json/BOOK_from_json.py @@ -29515,30 +29510,11 @@ msgstr[3] "kopia Szkockiej Książki Kucharskiej" #. 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of" +" people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." msgstr "" -"Częściowo przetłumaczona książka kucharska z trzynastowiecznej Szkocji. Choć" -" dość trudna w czytaniu, między innymi z uwagi na sporą ilość ilustracji " -"dźgających się wzajemnie ludzi, przemieszanych z przepisami. Daje jednak " -"wgląd w kulturę i modę średniowiecznej Szkocji, jak i w kilka nowych " -"zastosowań owsianki, ryb i owczej wątroby." - -#: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" -msgstr[0] "podręcznik z chemii" -msgstr[1] "podręcznik z chemii" -msgstr[2] "podręcznik z chemii" -msgstr[3] "podręcznik z chemii" - -#. ~ Description for {'str': 'chemistry textbook'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." -msgstr "Podręcznik chemii z koledżu." #: lang/json/BOOK_from_json.py msgid "The Vinegar Maker's Handbook" @@ -29755,7 +29731,7 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" msgstr[0] "" msgstr[1] "" @@ -29763,11 +29739,11 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to -#. home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " -"chapter contains a complete recipe for it's namesake." +"chapter contains a complete recipe for its namesake." msgstr "" #: lang/json/BOOK_from_json.py @@ -29800,7 +29776,7 @@ msgstr[3] "" #: lang/json/BOOK_from_json.py msgid "" "The smallest cookbook on the market, marketed exclusively to the " -"outdoorsman. Packs a surprising number of recipes for it's tiny size." +"outdoorsman. Packs a surprising number of recipes for its tiny size." msgstr "" #: lang/json/BOOK_from_json.py @@ -29918,6 +29894,23 @@ msgstr[3] "" msgid "The Kids' Guide to Acting and Stagecraft." msgstr "Poradnik Dla Dzieci W Sztuce i Występach Scenicznych." +#: lang/json/BOOK_from_json.py +msgid "Treasury of Legends about Western Dancing" +msgid_plural "copies of Western Dancing" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Treasury of Legends about Western Dancing', +#. 'str_pl': 'copies of Western Dancing'} +#: lang/json/BOOK_from_json.py +msgid "" +"Written by Emanuel Nogueira, a constabulario and historian of Nuevo Laredo, " +"this massive book details the movements and cultural legacies of a variety " +"of North American folk dances." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "AAA Guide" msgid_plural "copies of AAA Guide" @@ -30734,28 +30727,6 @@ msgstr "" " czasów starożytnych po współczesne, z nastawieniem na technologie służące " "ochronie życia." -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': -#. 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at" -" times, though the information is top-notch." -msgstr "" -"Ten dogłębny tekst o technicznym charakterze o projektowaniu, rozwoju, " -"unieszkodliwianiu, i obronie przed różnymi broniami chemicznymi stosowanymi " -"przez wieki. Zastosowany przez autora wybór zdjęć sprawia, że czasami " -"ciężko się go czyta, ale sam tekst to pierwsza klasa." - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" @@ -30914,23 +30885,6 @@ msgid "" "machining operation, the answer lies somewhere in these pages." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', -#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -31292,6 +31246,22 @@ msgstr[3] "" msgid "A large textbook for college students about biodiesel." msgstr "Duży podręcznik dla uczniów koledżu o bio-dieslu." +#: lang/json/BOOK_from_json.py +msgid "Hot Rod Chassis & Suspension Handbook" +msgid_plural "copies of Hot Rod Handbook" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Hot Rod Chassis & Suspension Handbook', +#. 'str_pl': 'copies of Hot Rod Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"By learning the fundamentals of chassis building and suspension design you " +"will gain the critical knowledge needed to hot rod properly." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" msgid_plural "copies of Mechanical Mastery" @@ -31347,19 +31317,6 @@ msgstr "" "techniki walki i rozgrywania spotkań w zamkniętych i ograniczonych " "przestrzeniach." -#: lang/json/BOOK_from_json.py -msgid "paperback abstract" -msgid_plural "paperback abstracts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'paperback abstract'} -#: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" msgid_plural "copies of Zombie Survival Guide" @@ -31393,24 +31350,6 @@ msgid "" msgstr "" "Pełny log lotu wojskowego samolotu. Nic nietypowego nie rzuca się w oczy." -#: lang/json/BOOK_from_json.py -msgid "children's book" -msgid_plural "children's books" -msgstr[0] "książka dla dzieci" -msgstr[1] "książka dla dzieci" -msgstr[2] "książka dla dzieci" -msgstr[3] "książka dla dzieci" - -#. ~ Description for {'str': "children's book"} -#: lang/json/BOOK_from_json.py -msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the dead walked" -" and the world moved on." -msgstr "" -"Mała książeczka dla mały czytelników. Kolorowe bajkowe opowieści tu zawarte " -"należą do innych czasów, zanim martwi powstali i świat nie ruszył z podstaw." - #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" msgid_plural "Ranch Prospectus" @@ -31452,162 +31391,6 @@ msgstr "" "Zbiór esejów różnego autorstwa z całego świata, w tym prace Churchil'a, " "Mallera, Eco i Woltera." -#: lang/json/BOOK_from_json.py -msgid "book of fairy tales" -msgid_plural "books of fairy tales" -msgstr[0] "książka mitów i opowieści" -msgstr[1] "książka mitów i opowieści" -msgstr[2] "książka mitów i opowieści" -msgstr[3] "książka mitów i opowieści" - -#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy -#. tales'} -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of folklore featuring the usual cast of fairies, " -"goblins, and trolls." -msgstr "" -"Olśniewająca kolekcja folkloru i podań opisująca popularną menażerię wróżek," -" krasnoludków i trolli." - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale is about a wolf who eats so much salted meat she becomes " -"trapped in the butcher's cellar." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this traditional story of beastly intrigue a clever fox convinces an " -"elderly lion to kill a derogatory wolf." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is an illustrated fairy tale book about a conversation between a mouse " -"and a cat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of stories featuring \"Goldilocks and The Three " -"Bears\" on the cover." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a well illustrated fairy tale about a war between the birds and the " -"beasts, with particulars on the wartime conduct and eventual fate of the " -"bat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " -"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" -" page." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale book is entitled \"Little Red Cap\". It details a red-" -"cloaked child's various encounters with talking wolves." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of ghost stories warning about the dangers of stealing from the" -" dead." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"An Irish fairy tale in which a Celtic poet marries a princess who has been " -"cursed with the head of a pig." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A book of Italian fairy tales translated into English. The cover features " -"an orange fairy juggling a lemon, a lime, and a tangerine." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "A book of fables about people who change into birds." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This compendium of amusing folk tales about the devil is titled \"Hell's " -"Kettle: Legends of the Devil.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This charming book of Swedish fables is titled, \"The Glass Mountain and the" -" Princess.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a collection of fairy tale stories warning against the consequences " -"of extreme greed." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a book of legends collected by Traveller Johnny Cassidy in the " -"1960s." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of fables expands upon the legend of the Seven Sleepers of " -"Ephesus." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this fairy tale a strong man frightens an ogre by squeezing water out of " -"a stone." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of rustic folk tales bears the title: \"How to Shout Down the " -"Devil.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " -"fables about logical errors and foolish misjudgements of the Kadambawa men." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " -"Stories.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " -"suitable for small children." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" msgid_plural "copies of The Hitchhiker's Guide to the Cataclysm" @@ -31624,348 +31407,6 @@ msgid "" "Panic\"." msgstr "Na okładce wypisano ładnymi wielkimi literami \"NIE PANIKUJ\"." -#: lang/json/BOOK_from_json.py -msgid "Mycenacean Hymns" -msgid_plural "copies of Mycenacean Hymns" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of -#. Mycenacean Hymns'} -#: lang/json/BOOK_from_json.py -msgid "" -"A vellum book containing the hymns central to Marloss faith. As the verses " -"lead to each other, the text sings of unity and promised paradise." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "King James Bible" -msgid_plural "copies of King James Bible" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King -#. James Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, which originated in England " -"in the early 1600s." -msgstr "" -"Angielskie tłumaczenie chrześcijańskiej Biblii, pochodzące z Anglii z " -"początków 17-go wieku." - -#: lang/json/BOOK_from_json.py -msgid "Eastern Orthodox Bible" -msgid_plural "copies of Eastern Orthodox Bible" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of -#. Eastern Orthodox Bible'} -#: lang/json/BOOK_from_json.py -msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." -msgstr "Egzemplarz angielskiej wersji językowej Biblii Obrządków Wschodnich." - -#: lang/json/BOOK_from_json.py -msgid "Gideon Bible" -msgid_plural "copies of Gideon Bible" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon -#. Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, distributed free of charge by" -" Gideons International." -msgstr "" -"Angielskie tłumaczenie Biblii, rozprowadzane nieodpłatnie przez prawosławne " -"Międzynarodowe Stowarzyszenie Gedeonitów" - -#: lang/json/BOOK_from_json.py -msgid "The Guru Granth Sahib" -msgid_plural "copies of The Guru Granth Sahib" -msgstr[0] "kopia Sri Guru Granth Sahib" -msgstr[1] "kopia Sri Guru Granth Sahib" -msgstr[2] "kopia Sri Guru Granth Sahib" -msgstr[3] "kopia Sri Guru Granth Sahib" - -#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The -#. Guru Granth Sahib'} -#: lang/json/BOOK_from_json.py -msgid "A single-volume copy of the central religious texts of Sikhism." -msgstr "Pojedyncza księga z kopią centralnego tekstu religijnego sikhizmu." - -#: lang/json/BOOK_from_json.py -msgid "Hadith" -msgid_plural "copies of Hadith" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} -#: lang/json/BOOK_from_json.py -msgid "" -"A Muslim religious text containing an account of the sayings and actions of " -"the prophet Muhammad." -msgstr "" -"Muzułmański tekst religijny o przypowieściach i działaniach proroka " -"Mahometa." - -#: lang/json/BOOK_from_json.py -msgid "Principia Discordia" -msgid_plural "copies of Principia Discordia" -msgstr[0] "kopia Principia Discordia" -msgstr[1] "kopia Principia Discordia" -msgstr[2] "kopia Principia Discordia" -msgstr[3] "kopia Principia Discordia" - -#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of -#. Principia Discordia'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of Discordianism. It seems to " -"primarily concern chaos, and features a card in the back which informs you " -"that you are now a 'genuine and authorized Pope of Discordia'." -msgstr "" -"Książka oddająca główne założenia wiary dyskordianizmu. Wygląda to na teorię" -" chaosu, i zawiera kartę na końcu która informuje wszem i wobec, że jesteś " -"teraz niepodważalnym i zatwierdzonym papieżem dyskordii." - -#: lang/json/BOOK_from_json.py -msgid "The Kojiki" -msgid_plural "copies of The Kojiki" -msgstr[0] "kopia Kojiki" -msgstr[1] "kopia Kojiki" -msgstr[2] "kopia Kojiki" -msgstr[3] "kopia Kojiki" - -#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} -#: lang/json/BOOK_from_json.py -msgid "" -"The oldest extant chronicle of Japan's myths and history, the stories " -"contained in the Kojiki are part of the inspiration behind Shinto practices." -msgstr "" -"Najstarsza historyczna kronika Japońskich mitów i historii. Zawarte w niej " -"opowieści są częściowo inspiracją stojącą za praktykami szintoizmu." - -#: lang/json/BOOK_from_json.py -msgid "The Book of Mormon" -msgid_plural "copies of The Book of Mormon" -msgstr[0] "kopia Księgi Mormona" -msgstr[1] "kopia Księgi Mormona" -msgstr[2] "kopia Księgi Mormona" -msgstr[3] "kopia Księgi Mormona" - -#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The -#. Book of Mormon'} -#: lang/json/BOOK_from_json.py -msgid "" -"The sacred text of the Latter Day Saint movement of Christianity, originally" -" published in 1830 by Joseph Smith." -msgstr "" -"Święty tekst ruchu Świętych w Dniach Ostatnich, pierwotnie opublikowany w " -"1830 przez Josepha Smitha." - -#: lang/json/BOOK_from_json.py -msgid "The Gospel of the Flying Spaghetti Monster" -msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" -msgstr[0] "kopia Psalmu o Latającym Potworze Spaghetti" -msgstr[1] "kopia Psalmu o Latającym Potworze Spaghetti" -msgstr[2] "kopia Psalmu o Latającym Potworze Spaghetti" -msgstr[3] "kopia Psalmu o Latającym Potworze Spaghetti" - -#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', -#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of the Church of the Flying Spaghetti " -"Monster. It seems to involve a lot of pirates and some sort of invisible " -"drunken monster made of pasta." -msgstr "" -"Książka która oddaje ducha wierzeń Kościoła Latającego Potwora Spaghetti, " -"czyli pastafarian. Wygląda na to że zawiera dużo piratów i jakiegoś " -"niewidzialnego pijanego potwora z makaronu. Z klopsikami." - -#: lang/json/BOOK_from_json.py -msgid "Quran" -msgid_plural "copies of Quran" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Muslim book of holy scriptures, with " -"explanatory notes and commentaries to aid in understanding." -msgstr "" -"Angielskie tłumaczenie świętych ksiąg muzułmańskich, z przypisami i " -"komentarzem wspomagającym zrozumienie." - -#: lang/json/BOOK_from_json.py -msgid "Dianetics" -msgid_plural "copies of Dianetics" -msgstr[0] "kopia Dianetyki" -msgstr[1] "kopia Dianetyki" -msgstr[2] "kopia Dianetyki" -msgstr[3] "kopia Dianetyki" - -#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is the canonical text of Scientology. Written by a science " -"fiction author, it contains self-improvement techniques and musings on " -"psychology called Dianetics." -msgstr "" -"Ta książka to kanoniczny tekst scjentologów. Napisana przez autora science " -"fiction, zawiera techniki samodoskonalenia się i wynurzenia o psychologi " -"zwane dianetyką." - -#: lang/json/BOOK_from_json.py -msgid "The Book of the SubGenius" -msgid_plural "copies of The Book of the SubGenius" -msgstr[0] "kopia Księgi SubGeniuszu" -msgstr[1] "kopia Księgi SubGeniuszu" -msgstr[2] "kopia Księgi SubGeniuszu" -msgstr[3] "kopia Księgi SubGeniuszu" - -#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of -#. The Book of the SubGenius'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book about the Church of the SubGenius. It seems to involve a salesman " -"named J. R. \"Bob\" Dobbs and a concept called 'slack'." -msgstr "" -"Książka o Kościele SubGeniuszu. Wygląda na to że zawiera sprzedawcę o " -"nazwisku J.R. \"Bob\" Dobbs i koncepcji \"slack'a\"." - -#: lang/json/BOOK_from_json.py -msgid "The Sutras of the Buddha" -msgid_plural "copies of The Sutras of the Buddha" -msgstr[0] "kopia Sutry Buddy" -msgstr[1] "kopia Sutry Buddy" -msgstr[2] "kopia Sutry Buddy" -msgstr[3] "kopia Sutry Buddy" - -#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of -#. The Sutras of the Buddha'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of discourses attributed to the Buddha and his close disciples." -msgstr "Kolekcja dyskursów poświęconych Buddzie i jego bliskim uczniom." - -#: lang/json/BOOK_from_json.py -msgid "Talmud" -msgid_plural "copies of Talmud" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of Talmud'} -#: lang/json/BOOK_from_json.py -msgid "" -"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " -"Hebrew Bible with teachings and opinions of thousands of rabbis." -msgstr "" -"Jeden z centralnych tekstów rabinicznego judaizmu, Talmud rozszerza Biblię " -"Hebrajską o nauki i opinie tysięcy rabbich." - -#: lang/json/BOOK_from_json.py -msgid "Tanakh" -msgid_plural "copies of Tanakh" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single-volume book containing the complete canon of the Jewish Bible." -msgstr "Jednoczęściowe wydanie zawierające kanon Biblii żydowskiej." - -#: lang/json/BOOK_from_json.py -msgid "The Tripitaka" -msgid_plural "copies of The Tripitaka" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The -#. Tripitaka'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Buddhist writings describing their canons of " -"scriptures." -msgstr "" -"Tipitaka zwana Trójkoszem to kolekcja świętych tekstów buddyjskich " -"opisujących ich kanon i zapiski." - -#: lang/json/BOOK_from_json.py -msgid "The Upanishads" -msgid_plural "copies of The Upanishads" -msgstr[0] "kopia Upaniszad" -msgstr[1] "kopia Upaniszad" -msgstr[2] "kopia Upaniszad" -msgstr[3] "kopia Upaniszad" - -#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The -#. Upanishads'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Hindu writings regarding the nature of reality and " -"describing the character and form of human salvation." -msgstr "" -"Kolekcja świętych tekstów Hinduizmu o naturze rzeczywistości i opisach " -"charakteru i formy ludzkiego zbawienia." - -#: lang/json/BOOK_from_json.py -msgid "The Four Vedas" -msgid_plural "copies of The Four Vedas" -msgstr[0] "kopia Cztery Wedy" -msgstr[1] "kopia Cztery Wedy" -msgstr[2] "kopia Cztery Wedy" -msgstr[3] "kopia Cztery Wedy" - -#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four -#. Vedas'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single volume containing all four Vedas, which are the oldest scriptures " -"of Hinduism." -msgstr "" -"Pojedynczy wolumen zawierający wszystkie cztery Wedy, najstarsze zapiski " -"Hinduizmu." - -#: lang/json/BOOK_from_json.py -msgid "The Satanic Bible" -msgid_plural "copies of The Satanic Bible" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The -#. Satanic Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of essays, observations, and rituals published by Anton LaVey " -"in 1969." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "comic book" msgid_plural "comic books" @@ -32010,6 +31451,21 @@ msgid "Current events concerning a bunch of people who're all (un)dead now." msgstr "" "Bieżące wydarzenia z udziałem ważnych ludzi, którzy już wszyscy (nie)umarli." +#: lang/json/BOOK_from_json.py +msgid "The Analyst" +msgid_plural "issues of The Analyst" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Analyst', 'str_pl': 'issues of The Analyst'} +#: lang/json/BOOK_from_json.py +msgid "" +"This news magazine has been described as \"a kind of Reader's Digest for " +"America's corporate elite.\" These concerns are, of course, behind us now." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Playboy" msgid_plural "issues of Playboy" @@ -32163,6 +31619,24 @@ msgid "" "the underworld is eroded by rumor and paranoia." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "Midnight Cop" +msgid_plural "copies of Midnight Cop" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Midnight Cop', 'str_pl': 'copies of Midnight +#. Cop'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this bare-knuckled potboiler, a ruthless police detective schemes to shut" +" down local crime lords by pitting them against each other. When long-" +"simmering resentments finally flare the city learns why they call it \"the " +"dead of night.\"" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "drama novel" msgid_plural "drama novels" @@ -32263,6 +31737,71 @@ msgstr "" "Historia w gorącej wodzie kąpanego detektywa, który intrygę rozbija celnym " "ciosem swojej pięści. Masa akcji." +#: lang/json/BOOK_from_json.py +msgid "Planet of the Murderous Squids that Time Forgot!" +msgid_plural "Planet of the Murderous Squids that Time Forgot!s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Planet of the Murderous Squids that Time Forgot! +#: lang/json/BOOK_from_json.py +msgid "" +"In this psychedelic adventure novel of cosmic exploration, an elderly " +"assassin discovers a planet too good to be true. Only once it is too late " +"does she discover the harrowing truth at the center of \"The Planet of the " +"Murderous Squids that Time Forgot!\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Great Capes of Metropolis" +msgid_plural "The Great Capes of Metropoliss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Great Capes of Metropolis +#: lang/json/BOOK_from_json.py +msgid "" +"In this classic pulp paperback of superheroic exploits, a group of masked " +"vigilantes with diverse superpowers learn to work together to defeat the " +"ultimate villain." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Yesterday's Murdered" +msgid_plural "Yesterday's Murdereds" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Yesterday's Murdered +#: lang/json/BOOK_from_json.py +msgid "" +"In this fast paced pulp noir, a hard-drinking detective with nerves of steel" +" has one last shot at vengeance." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Flashgun Condor and the Crimson Criminal" +msgid_plural "Flashgun Condor and the Crimson Criminals" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Flashgun Condor and the Crimson Criminal +#: lang/json/BOOK_from_json.py +msgid "" +"A hot-blooded photographer who fights crime with film, footage, and fists, " +"Condor is more than a mere shutterbug on the crime beat. But will she be " +"able to unravel a devious deception and bring the \"Crimson Criminal\" to " +"justice?" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "road novel" msgid_plural "road novels" @@ -32293,6 +31832,161 @@ msgstr[3] "powieść romantyczna" msgid "Drama and mild smut." msgstr "Dramat i lekka erotyka." +#: lang/json/BOOK_from_json.py +msgid "Love and Circuses" +msgid_plural "Love and Circusess" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Love and Circuses +#: lang/json/BOOK_from_json.py +msgid "" +"The passionate saga of two Boston politicians fiercely battling each other " +"for the mayor's office, and for Lydia's hand in marriage." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cloven Kisses" +msgid_plural "Cloven Kissess" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Cloven Kisses +#: lang/json/BOOK_from_json.py +msgid "" +"When the devil falls in love with a warlock, his proposal must be infernally" +" wicked. Will hooves, horns, and the scent of sulphur condemn love's flames" +" to hellfire?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Conquer Me Sweetly" +msgid_plural "Conquer Me Sweetlys" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Conquer Me Sweetly +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is delighted to offer you this romantic tale of " +"delicious dalliances and daring delights." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dubliner's Debutante" +msgid_plural "Dubliner's Debutantes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Dubliner's Debutante +#: lang/json/BOOK_from_json.py +msgid "" +"His love songs were only for me, but I preferred the banjo over bagpipes. " +"How could I ever love a kilted yankee of foreign breeding?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Blood Diodes" +msgid_plural "Blood Diodess" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Blood Diodes +#: lang/json/BOOK_from_json.py +msgid "" +"He is an automaton, she is a reformed vampire, can love find a way? In this" +" edgy romance by acclaimed author Kea Dekker, heartbreak is just the " +"beginning." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Envying Heaven" +msgid_plural "Envying Heavens" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Envying Heaven +#: lang/json/BOOK_from_json.py +msgid "" +"When her fiancee names a star for her Wanda begins to wonder if an " +"astronomer's wife can ever compete with the allure of the cosmos." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Tall, Dark, and Gruesome" +msgid_plural "Tall, Dark, and Gruesomes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Tall, Dark, and Gruesome +#: lang/json/BOOK_from_json.py +msgid "" +"Fatima's obsession with the dead threatens to consume her when she falls in " +"love with a restless ghost. In this provocative romp celebrated author Kea " +"Dekker gently lifts the thin veil separating cold bodies from warm. " +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Along Came a Rider" +msgid_plural "Along Came a Riders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Along Came a Rider +#: lang/json/BOOK_from_json.py +msgid "" +"When Beth's career as a pro steeplechase jockey threatens to divide her from" +" her lover, Beth has to act fast. Will she ever find a man that can keep up" +" with her racing heart?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Rogue's Virtue" +msgid_plural "Rogue's Virtues" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Rogue's Virtue +#: lang/json/BOOK_from_json.py +msgid "" +"Can Victoria reform the fugitive from justice who wooed her with false " +"pretenses and true passion?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Death of My Secret Life" +msgid_plural "The Death of My Secret Lifes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Death of My Secret Life +#: lang/json/BOOK_from_json.py +msgid "" +"Makeda comes out to her family, but she's still got plenty of skeletons in " +"her closet. Best selling authoress Kea Dekker breaks all the rules in this " +"macabre story of love and lies." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "samurai novel" msgid_plural "samurai novels" @@ -32329,6 +32023,83 @@ msgstr "" "Polityczna satyra z przedapokaliptycznego świata. Patrząc wstecz z tej " "strony Armageddonu czyni ją jeszcze bardziej absurdalną." +#: lang/json/BOOK_from_json.py +msgid "The House of God" +msgid_plural "The House of Gods" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The House of God +#: lang/json/BOOK_from_json.py +msgid "" +"Set in a lightly disguised Boston hospital of high repute, Samuel Shem’s " +"novel dives deep into the agony of absurdity." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Catch-22" +msgid_plural "Catch-22s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Catch-22 +#: lang/json/BOOK_from_json.py +msgid "" +"There is a short informational forward in this paperback edition of " +"Catch-22. Apparently the original title for Joseph Heller’s excruciatingly " +"brilliant war satire was \"Catch-11.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Master and Margarita" +msgid_plural "The Master and Margaritas" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Master and Margarita +#: lang/json/BOOK_from_json.py +msgid "" +"Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, " +"vampires, a talking cat, and the literary elite of Moscow, this is a satire " +"on Stalinist tyranny written by Mikhail Bulgakov." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Handful of Dust" +msgid_plural "A Handful of Dusts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for A Handful of Dust +#: lang/json/BOOK_from_json.py +msgid "" +"Laced with cynicism, Evelyn Waugh's \"A Handful of Dust\" satirizes a " +"stratum of characters who have wealth, but lack any other credentials." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cat’s Cradle" +msgid_plural "Cat’s Cradles" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Cat’s Cradle +#: lang/json/BOOK_from_json.py +msgid "" +"A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of " +"nuclear destruction isn't much of an influence on human nature." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "scifi novel" msgid_plural "scifi novels" @@ -32437,7 +32208,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "" "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It " -"still has the smell of new books within it's pages." +"still has the smell of new books within its pages." msgstr "" #: lang/json/BOOK_from_json.py @@ -32656,25 +32427,6 @@ msgid "" "Douglas Adams." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "powieść sportowa" -msgstr[1] "powieść sportowa" -msgstr[2] "powieść sportowa" -msgstr[3] "powieść sportowa" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "" -"Dramatyczna opowieść o lokalnym bokserze, który otrzymuje rzadką możliwość " -"walki z czempionem wagi ciężkiej, i ją wykorzystuje by polepszyć swe życie i" -" zaimponować ślicznotce ze sklepu ze zwierzętami." - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -32746,6 +32498,55 @@ msgstr "" " o tym jak z towarzyszami niedoli umykają przeznaczeniu i stają się piratami" " w stylu Robin Hooda." +#: lang/json/BOOK_from_json.py +msgid "The Black Freighter" +msgid_plural "copies of The Black Freighter" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Black Freighter', 'str_pl': 'copies of The +#. Black Freighter'} +#: lang/json/BOOK_from_json.py +msgid "" +"Who watches the watchmen? Pirate Jenny, that's who! This swashbuckling " +"adventure novel will make you feel swell." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Captain Gosgold and the Sea Rovers of Buzzards Bay" +msgid_plural "copies of The Sea Rovers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Captain Gosgold and the Sea Rovers of Buzzards +#. Bay', 'str_pl': 'copies of The Sea Rovers'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lengthy paperback novel describes the ocean exploits of Captain " +"Gosgold. The British consider him an outlaw, but in America he is a " +"patriot." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Code of the Buccaneer" +msgid_plural "copies of The Buccaneer" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Code of the Buccaneer', 'str_pl': 'copies of +#. The Buccaneer'} +#: lang/json/BOOK_from_json.py +msgid "" +"The cover of this paperback pirate story shows a shirtless man and a near " +"shirtless woman. Clearly it is not a dress code." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "thriller novel" msgid_plural "thriller novels" @@ -32822,275 +32623,111 @@ msgstr "" "maruderów." #: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "książka o filozofii" -msgstr[1] "książka o filozofii" -msgstr[2] "książka o filozofii" -msgstr[3] "książka o filozofii" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of -#. philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "" -"Głęboka dyskusja o moralności z naciskiem na teorię poznania i logikę." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." -" It looks to have been used as a coaster in a past life." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an" -" ominous looking metal tube. Provocative." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" -" tag on the back cover. It appears to still be active." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" -" cover contains an image of a pelican." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " -"Science\" by Friederich Nietzsche." -msgstr "" +msgid "Atwixt a Brace of Cacti" +msgid_plural "Atwixt a Brace of Cactis" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +#. ~ Description for Atwixt a Brace of Cacti #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." +"A grizzled clodhopper interviews a mess of rangehands, flummoxing longhorns " +"and tenderfoot alike in a flusteration of jawing." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." -msgstr "" +msgid "Stinky Bart Puts on Starch" +msgid_plural "Stinky Bart Puts on Starchs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +#. ~ Description for Stinky Bart Puts on Starch #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" -" title, it does not actually appear to be defending terrorism." +"A local bandit, driven by sadistic impulses, begins offering unlicensed " +"dentistry to brave frontiersmen with few options and fewer teeth." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." -msgstr "" +msgid "Six Beans in the Wheel" +msgid_plural "Six Beans in the Wheels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +#. ~ Description for Six Beans in the Wheel #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this" -" book." +"The safety is off in this gun slinging tale of revenge and redemption by " +"acclaimed author El Amor." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" -" like this book has a surprisingly long track record of owners." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "" +msgid "Irons at Calico Queen Annex" +msgid_plural "Irons at Calico Queen Annexs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +#. ~ Description for Irons at Calico Queen Annex #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" -" might have been printed decades before the Cataclysm since the cover is " -"quite weathered." +"The establishment of a telegraph line into the recently named town of Calico" +" Queen threatens to bring with it the long arm of the law. A trio of " +"enterprising gunfighters hatches a plan to keep Calico Queen wild by looting" +" the supply wagons." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "" +msgid "Riot on the Range" +msgid_plural "Riot on the Ranges" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +#. ~ Description for Riot on the Range #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" -" that the author's real name is Fereidoun M. Esfandiary." +"Best selling author El Amor paints a visceral study in red with his latest " +"western saga: Riot on the Range." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "" +msgid "Vaquero Sun" +msgid_plural "Vaquero Suns" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +#. ~ Description for Vaquero Sun #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." +"Western author El Amor relates the story of a dispossessed young man " +"inspired by a heat stroke delusion to pursue justice against an evil land " +"baron." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "" +msgid "The Vendetta Riders" +msgid_plural "The Vendetta Riderss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +#. ~ Description for The Vendetta Riders #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +"A wild young man, fast on the draw, who thinks he has nothing to lose, falls" +" in with a group of gun runners." msgstr "" #: lang/json/BOOK_from_json.py @@ -33173,8 +32810,10 @@ msgstr[3] "" #. ~ Description for {'str': "priest's diary", 'str_pl': "priests' diaries"} #: lang/json/BOOK_from_json.py -msgid "A small book filled with journal entries in Latin." -msgstr "Mała książeczka z pamiętnikiem spisanym po łacinie." +msgid "" +"A small book filled with journal entries in Latin. You can read Latin, " +"right?" +msgstr "" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -33266,25 +32905,6 @@ msgstr[3] "" msgid "A small book detailing 'visions' a prisoner had on death row." msgstr "Mała książka opisująca wizje których doznał więzień w celi śmierci." -#: lang/json/BOOK_from_json.py -msgid "Hávamál" -msgid_plural "copies of Hávamál" -msgstr[0] "kopia Hávamál" -msgstr[1] "kopia Hávamál" -msgstr[2] "kopia Hávamál" -msgstr[3] "kopia Hávamál" - -#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of several Old Norse poems. The poems contain " -"proverbs and stories attributed to the god Odin, many transcribed from oral " -"history." -msgstr "" -"Angielskie tłumaczenie kilkunastu staronordyckich poematów. Wiersze " -"zawierają przysłowia i opowieści przypisywane bogu Odynowi, z których wiele " -"to zapisy ustnych przekazów." - #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" @@ -33723,6 +33343,986 @@ msgstr "" "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 "The Economicon of Dobbs" +msgid_plural "copies of The Economicon" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Economicon of Dobbs', 'str_pl': 'copies of +#. The Economicon'} +#: lang/json/BOOK_from_json.py +msgid "" +"These are the prescriptures Pile 18 Disk sg30 File 14. \"Look, small brain " +"of pink earth inside my null-grasping, and she/he receives Logos; and it lay" +" with the Wor.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Bobliographon" +msgid_plural "copies of The Bobliographon" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Bobliographon', 'str_pl': 'copies of The +#. Bobliographon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this cheaply published paperback reads: \"These newly-" +"released SubGenius revelations will SHOCK those who think they know Bob! " +"Unpredictables are not alone and possess amazing hidden powers of their own!" +" In a world without slack, a yeti lust revival saunters about. WARNING: Do" +" not fail to pay full price for this book; JHVH-1's wrath knows some " +"bounds.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Glimpses of Solomon in Yellow" +msgid_plural "copies of Solomon in Yellow" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Glimpses of Solomon in Yellow', 'str_pl': +#. 'copies of Solomon in Yellow'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is titled \"Glimpses of Solomon in Yellow; The Initiation " +"Rites of the Starry Wisdom Covenant, by Dr. Enoch Craven.\" It describes " +"not just the investiture of new adherents, but the history and beliefs of " +"the Church of Starry Wisdom. Someone has defaced the sparse citations " +"section by scrawling \"PUPPETS OF ROME!\" over its few pages. The book does" +" not provide any biography for Dr. Craven, let alone academic credentials." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "książka o filozofii" +msgstr[1] "książka o filozofii" +msgstr[2] "książka o filozofii" +msgstr[3] "książka o filozofii" + +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of +#. philosophy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "" +"Głęboka dyskusja o moralności z naciskiem na teorię poznania i logikę." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." +" It looks to have been used as a coaster in a past life." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an" +" ominous looking metal tube. Provocative." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a small reader on Hegel's Dialectics." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" +" tag on the back cover. It appears to still be active." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" +" cover contains an image of a pelican." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " +"Science\" by Friederich Nietzsche." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" +" title, it does not actually appear to be defending terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this" +" book." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" +" like this book has a surprisingly long track record of owners." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" +" might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" +" that the author's real name is Fereidoun M. Esfandiary." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies +#. of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': +#. 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works," +" and critical analyses on the subject of beauty." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': +#. 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe" +" and advance semantic investigations." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of +#. Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A" +" key work in the existentialist tradition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "powieść sportowa" +msgstr[1] "powieść sportowa" +msgstr[2] "powieść sportowa" +msgstr[3] "powieść sportowa" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "" +"Dramatyczna opowieść o lokalnym bokserze, który otrzymuje rzadką możliwość " +"walki z czempionem wagi ciężkiej, i ją wykorzystuje by polepszyć swe życie i" +" zaimponować ślicznotce ze sklepu ze zwierzętami." + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The +#. Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating," +" it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The +#. Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The +#. Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': +#. 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The +#. Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': +#. 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up" +" your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', +#. 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike +#. Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare +#. Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': +#. 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Anything Can Be Beautiful" +msgid_plural "Anything Can Be Beautifuls" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Anything Can Be Beautiful +#: lang/json/BOOK_from_json.py +msgid "" +"Stylist, designer, and glitter goddess, Tiffynie Blust looks at the world " +"one mantra in mind: anything can be beautiful." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Greatest Rooms of the Century" +msgid_plural "The Greatest Rooms of the Centurys" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Greatest Rooms of the Century +#: lang/json/BOOK_from_json.py +msgid "" +"A stunning collection of the best living spaces created and commissioned by " +"the most influential people in interior design." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Hands-On Home" +msgid_plural "The Hands-On Homes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Hands-On Home +#: lang/json/BOOK_from_json.py +msgid "" +"An ecologically-minded take on modern homemaking, this is a practical guide " +"to maximising your time in the kitchen and beyond." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Rooms We Love" +msgid_plural "Rooms We Loves" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Rooms We Love +#: lang/json/BOOK_from_json.py +msgid "" +"This is a guide on how to affordably decorate rooms to suit your " +"personality. In the book, we visit rooms inspired by the needs of each " +"homeowner and will see how they transformed their rooms." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "New York Parties" +msgid_plural "New York Partiess" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for New York Parties +#: lang/json/BOOK_from_json.py +msgid "" +"Visit the homes of savvy tastemakers from the worlds of fashion, finance, " +"and design, with this book of lavish photography." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Best Signature Outdoor Kitchens" +msgid_plural "Best Signature Outdoor Kitchenss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Best Signature Outdoor Kitchens +#: lang/json/BOOK_from_json.py +msgid "" +"Outdoor space is one of the hottest amenities being considered by new and " +"existing homeowners. This book will show you how to turn any deck, patio, " +"or other outside area into a great place to cook." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Using Plants to Transform Your Home" +msgid_plural "The Art of Using Plants to Transform Your Homes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Art of Using Plants to Transform Your Home +#: lang/json/BOOK_from_json.py +msgid "" +"Bring gorgeous greenery into your life with this delightful guide to " +"decorating your living space with a wide variety of plants. Illustrated " +"examples enable you to easily transform every corner of your interior space." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Woman of Color" +msgid_plural "Woman of Colors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Woman of Color +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of essays and advice on style, beauty, and motherhood." +" Part memoir, part lifestyle guide, this book reflects the author's " +"experience growing up as a woman of color in Brooklyn." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "10 Cool Things About Being A Ring Bearer" +msgid_plural "10 Cool Things About Being A Ring Bearers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for 10 Cool Things About Being A Ring Bearer +#: lang/json/BOOK_from_json.py +msgid "" +"This book is for the delightful little ring bearer in your wedding. The " +"author depicts the responsibility and the honor in being a ring bearer your " +"little angel will cherish." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "How to Raise a Gentleman: A Civilized Guide to Parenting" +msgid_plural "How to Raise a Gentleman: A Civilized Guide to Parentings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for How to Raise a Gentleman: A Civilized Guide to Parenting +#: lang/json/BOOK_from_json.py +msgid "" +"A revised edition for parents who hope their little boy children will grow " +"up to be the kind of men who know which fork to use, how to treat others, " +"and generally make their parents proud." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"International Approaches to Securing Radioactive Sources Against Terrorism" +msgid_plural "" +"International Approaches to Securing Radioactive Sources Against Terrorisms" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for International Approaches to Securing Radioactive Sources +#. Against Terrorism +#: lang/json/BOOK_from_json.py +msgid "" +"This book presents how to enhance cooperation and assistance between " +"countries in support of International Atomic Energy Agency efforts to secure" +" radioactive sources against the threat of terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Forensic Psychiatry" +msgid_plural "Principles of Forensic Psychiatrys" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Principles of Forensic Psychiatry +#: lang/json/BOOK_from_json.py +msgid "" +"This text addresses standards in the assessment and treatment of aggression " +"and violence as well as psychological and neuroimaging assessments." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Guide to Reflective Conflict Resolution" +msgid_plural "The Guide to Reflective Conflict Resolutions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Guide to Reflective Conflict Resolution +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this hardbound book reads: \"Why should professionals care" +" about reflective practice? How do its principles and methods increase " +"competence? What characteristics distinguish reflective practitioners?\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Oxbridge Handbook of Mood Ailments" +msgid_plural "The Oxbridge Handbook of Mood Ailmentss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Oxbridge Handbook of Mood Ailments +#: lang/json/BOOK_from_json.py +msgid "" +"The Oxbridge Handbook of Mood Ailments provides detailed coverage of the " +"characterization, understanding, and treatment of affective disorders. It " +"provides coverage of unipolar depression, bipolar disorder, and known " +"variants of these illnesses." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Phonological Acquisition and Disorders" +msgid_plural "Phonological Acquisition and Disorderss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Phonological Acquisition and Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"Studying the phonologies of children with non-organic speech disorders, this" +" volume details the latest findings in optimality theory, phonological " +"acquisition and disorders. It is intended for linguists and psychologists." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Therapeutic Gardens and Healing Spaces" +msgid_plural "Therapeutic Gardens and Healing Spacess" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Therapeutic Gardens and Healing Spaces +#: lang/json/BOOK_from_json.py +msgid "" +"This book addresses how to design therapeutic gardens. It illustrates a " +"variety of landscape designs appropriate for public spaces that promote " +"mental health." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Advances in Drug Delivery Systems" +msgid_plural "Advances in Drug Delivery Systemss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Advances in Drug Delivery Systems +#: lang/json/BOOK_from_json.py +msgid "" +"This softcover reprint covers an array of topics in pharmacology. The " +"physicochemical concepts of the refinement of bioresponsive drug delivery " +"are presented in detail alongside a variety of current approaches employed " +"in the development of zero order release systems." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Using Art to Treat Eating Disorders" +msgid_plural "Using Art to Treat Eating Disorderss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Using Art to Treat Eating Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"This is an introductory guide for those wanting to explore the use of art to" +" address eating disorders. Art therapy is a particularly effective " +"therapeutic intervention, as it allows people to express uncomfortable " +"thoughts and feelings nonverbally." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Clinical Guide to Video Gamers" +msgid_plural "A Clinical Guide to Video Gamerss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for A Clinical Guide to Video Gamers +#: lang/json/BOOK_from_json.py +msgid "" +"This scholarly work considers the role that games play in psychological " +"experiences and mental health. Chapters examine the factors that compel " +"individual gamers to select and identify with particular games and " +"characters, as well as the different play styles, genres, and archetypes " +"common in video games." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Paranoia and the History of Madness" +msgid_plural "Paranoia and the History of Madnesss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Paranoia and the History of Madness +#: lang/json/BOOK_from_json.py +msgid "" +"This book is an analysis of the use and misuse of paranoia throughout " +"history and in contemporary society. The impact of paranoia on societies is" +" explored in detail." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Psychoanalysis and Colonialism" +msgid_plural "Psychoanalysis and Colonialisms" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Psychoanalysis and Colonialism +#: lang/json/BOOK_from_json.py +msgid "" +"Freud referred to women's sexuality as a \"dark continent\" for " +"psychoanalysis, drawing on colonial use of the same phrase to refer to " +"Africa. This book details how the problematic universalism of " +"psychoanalysis led theorists to reject its relevance for postcolonial " +"critique." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Psychology of Stalking" +msgid_plural "The Psychology of Stalkings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Psychology of Stalking +#: lang/json/BOOK_from_json.py +msgid "" +"This book explores stalking from social, psychiatric, psychological and " +"behavioral perspectives. Topics include psychiatric diagnoses, offender-" +"victim typologies, cyberstalking, false victimization syndrome, erotomania, " +"domestic violence, the stalking of public figures, and many other aspects of" +" stalking." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" msgid_plural "issues of Tactical Handgun Digest" @@ -33931,6 +34531,397 @@ msgstr "" "legendarnych opowieści. Jest pełen informacji, ale znalezienie rzeczy " "których konkretnie poszukujesz może być wyzwaniem." +#: lang/json/BOOK_from_json.py +msgid "Nail Your Law Firm Interview" +msgid_plural "copies of Nail Your Law Firm Interview" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Nail Your Law Firm Interview', 'str_pl': 'copies +#. of Nail Your Law Firm Interview'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lightweight book proclaims itself to be \"the ONLY gold star interview " +"guide for lawyers interviewing in any type of a job interview.\" It was " +"suppsed to help new lawyers find work." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "holybook abstract" +msgid_plural "holybook abstracts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for holybook abstract +#: lang/json/BOOK_from_json.py +msgid "theoretically this isn't a book at all" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Mycenacean Hymns" +msgid_plural "copies of Mycenacean Hymns" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of +#. Mycenacean Hymns'} +#: lang/json/BOOK_from_json.py +msgid "" +"A vellum book containing the hymns central to Marloss faith. As the verses " +"lead to each other, the text sings of unity and promised paradise." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "King James Bible" +msgid_plural "copies of King James Bible" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King +#. James Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, which originated in England " +"in the early 1600s." +msgstr "" +"Angielskie tłumaczenie chrześcijańskiej Biblii, pochodzące z Anglii z " +"początków 17-go wieku." + +#: lang/json/BOOK_from_json.py +msgid "Eastern Orthodox Bible" +msgid_plural "copies of Eastern Orthodox Bible" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of +#. Eastern Orthodox Bible'} +#: lang/json/BOOK_from_json.py +msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." +msgstr "Egzemplarz angielskiej wersji językowej Biblii Obrządków Wschodnich." + +#: lang/json/BOOK_from_json.py +msgid "Gideon Bible" +msgid_plural "copies of Gideon Bible" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon +#. Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, distributed free of charge by" +" Gideons International." +msgstr "" +"Angielskie tłumaczenie Biblii, rozprowadzane nieodpłatnie przez prawosławne " +"Międzynarodowe Stowarzyszenie Gedeonitów" + +#: lang/json/BOOK_from_json.py +msgid "The Guru Granth Sahib" +msgid_plural "copies of The Guru Granth Sahib" +msgstr[0] "kopia Sri Guru Granth Sahib" +msgstr[1] "kopia Sri Guru Granth Sahib" +msgstr[2] "kopia Sri Guru Granth Sahib" +msgstr[3] "kopia Sri Guru Granth Sahib" + +#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The +#. Guru Granth Sahib'} +#: lang/json/BOOK_from_json.py +msgid "A single-volume copy of the central religious texts of Sikhism." +msgstr "Pojedyncza księga z kopią centralnego tekstu religijnego sikhizmu." + +#: lang/json/BOOK_from_json.py +msgid "Hadith" +msgid_plural "copies of Hadith" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} +#: lang/json/BOOK_from_json.py +msgid "" +"A Muslim religious text containing an account of the sayings and actions of " +"the prophet Muhammad." +msgstr "" +"Muzułmański tekst religijny o przypowieściach i działaniach proroka " +"Mahometa." + +#: lang/json/BOOK_from_json.py +msgid "Principia Discordia" +msgid_plural "copies of Principia Discordia" +msgstr[0] "kopia Principia Discordia" +msgstr[1] "kopia Principia Discordia" +msgstr[2] "kopia Principia Discordia" +msgstr[3] "kopia Principia Discordia" + +#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of +#. Principia Discordia'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of Discordianism. It seems to " +"primarily concern chaos, and features a card in the back which informs you " +"that you are now a 'genuine and authorized Pope of Discordia'." +msgstr "" +"Książka oddająca główne założenia wiary dyskordianizmu. Wygląda to na teorię" +" chaosu, i zawiera kartę na końcu która informuje wszem i wobec, że jesteś " +"teraz niepodważalnym i zatwierdzonym papieżem dyskordii." + +#: lang/json/BOOK_from_json.py +msgid "The Kojiki" +msgid_plural "copies of The Kojiki" +msgstr[0] "kopia Kojiki" +msgstr[1] "kopia Kojiki" +msgstr[2] "kopia Kojiki" +msgstr[3] "kopia Kojiki" + +#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} +#: lang/json/BOOK_from_json.py +msgid "" +"The oldest extant chronicle of Japan's myths and history, the stories " +"contained in the Kojiki are part of the inspiration behind Shinto practices." +msgstr "" +"Najstarsza historyczna kronika Japońskich mitów i historii. Zawarte w niej " +"opowieści są częściowo inspiracją stojącą za praktykami szintoizmu." + +#: lang/json/BOOK_from_json.py +msgid "The Book of Mormon" +msgid_plural "copies of The Book of Mormon" +msgstr[0] "kopia Księgi Mormona" +msgstr[1] "kopia Księgi Mormona" +msgstr[2] "kopia Księgi Mormona" +msgstr[3] "kopia Księgi Mormona" + +#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The +#. Book of Mormon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The sacred text of the Latter Day Saint movement of Christianity, originally" +" published in 1830 by Joseph Smith." +msgstr "" +"Święty tekst ruchu Świętych w Dniach Ostatnich, pierwotnie opublikowany w " +"1830 przez Josepha Smitha." + +#: lang/json/BOOK_from_json.py +msgid "The Gospel of the Flying Spaghetti Monster" +msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" +msgstr[0] "kopia Psalmu o Latającym Potworze Spaghetti" +msgstr[1] "kopia Psalmu o Latającym Potworze Spaghetti" +msgstr[2] "kopia Psalmu o Latającym Potworze Spaghetti" +msgstr[3] "kopia Psalmu o Latającym Potworze Spaghetti" + +#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', +#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of the Church of the Flying Spaghetti " +"Monster. It seems to involve a lot of pirates and some sort of invisible " +"drunken monster made of pasta." +msgstr "" +"Książka która oddaje ducha wierzeń Kościoła Latającego Potwora Spaghetti, " +"czyli pastafarian. Wygląda na to że zawiera dużo piratów i jakiegoś " +"niewidzialnego pijanego potwora z makaronu. Z klopsikami." + +#: lang/json/BOOK_from_json.py +msgid "Quran" +msgid_plural "copies of Quran" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Muslim book of holy scriptures, with " +"explanatory notes and commentaries to aid in understanding." +msgstr "" +"Angielskie tłumaczenie świętych ksiąg muzułmańskich, z przypisami i " +"komentarzem wspomagającym zrozumienie." + +#: lang/json/BOOK_from_json.py +msgid "The Satanic Bible" +msgid_plural "copies of The Satanic Bible" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The +#. Satanic Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of essays, observations, and rituals published by Anton LaVey " +"in 1969." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dianetics" +msgid_plural "copies of Dianetics" +msgstr[0] "kopia Dianetyki" +msgstr[1] "kopia Dianetyki" +msgstr[2] "kopia Dianetyki" +msgstr[3] "kopia Dianetyki" + +#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book is the canonical text of Scientology. Written by a science " +"fiction author, it contains self-improvement techniques and musings on " +"psychology called Dianetics." +msgstr "" +"Ta książka to kanoniczny tekst scjentologów. Napisana przez autora science " +"fiction, zawiera techniki samodoskonalenia się i wynurzenia o psychologi " +"zwane dianetyką." + +#: lang/json/BOOK_from_json.py +msgid "The Book of the SubGenius" +msgid_plural "copies of The Book of the SubGenius" +msgstr[0] "kopia Księgi SubGeniuszu" +msgstr[1] "kopia Księgi SubGeniuszu" +msgstr[2] "kopia Księgi SubGeniuszu" +msgstr[3] "kopia Księgi SubGeniuszu" + +#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of +#. The Book of the SubGenius'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book about the Church of the SubGenius. It seems to involve a salesman " +"named J. R. \"Bob\" Dobbs and a concept called 'slack'." +msgstr "" +"Książka o Kościele SubGeniuszu. Wygląda na to że zawiera sprzedawcę o " +"nazwisku J.R. \"Bob\" Dobbs i koncepcji \"slack'a\"." + +#: lang/json/BOOK_from_json.py +msgid "The Sutras of the Buddha" +msgid_plural "copies of The Sutras of the Buddha" +msgstr[0] "kopia Sutry Buddy" +msgstr[1] "kopia Sutry Buddy" +msgstr[2] "kopia Sutry Buddy" +msgstr[3] "kopia Sutry Buddy" + +#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of +#. The Sutras of the Buddha'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of discourses attributed to the Buddha and his close disciples." +msgstr "Kolekcja dyskursów poświęconych Buddzie i jego bliskim uczniom." + +#: lang/json/BOOK_from_json.py +msgid "Talmud" +msgid_plural "copies of the Talmud" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of the Talmud'} +#: lang/json/BOOK_from_json.py +msgid "" +"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " +"Hebrew Bible with teachings and opinions of thousands of rabbis." +msgstr "" +"Jeden z centralnych tekstów rabinicznego judaizmu, Talmud rozszerza Biblię " +"Hebrajską o nauki i opinie tysięcy rabbich." + +#: lang/json/BOOK_from_json.py +msgid "Tanakh" +msgid_plural "copies of Tanakh" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single-volume book containing the complete canon of the Jewish Bible." +msgstr "Jednoczęściowe wydanie zawierające kanon Biblii żydowskiej." + +#: lang/json/BOOK_from_json.py +msgid "The Tripitaka" +msgid_plural "copies of The Tripitaka" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The +#. Tripitaka'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Buddhist writings describing their canons of " +"scriptures." +msgstr "" +"Tipitaka zwana Trójkoszem to kolekcja świętych tekstów buddyjskich " +"opisujących ich kanon i zapiski." + +#: lang/json/BOOK_from_json.py +msgid "The Upanishads" +msgid_plural "copies of The Upanishads" +msgstr[0] "kopia Upaniszad" +msgstr[1] "kopia Upaniszad" +msgstr[2] "kopia Upaniszad" +msgstr[3] "kopia Upaniszad" + +#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The +#. Upanishads'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Hindu writings regarding the nature of reality and " +"describing the character and form of human salvation." +msgstr "" +"Kolekcja świętych tekstów Hinduizmu o naturze rzeczywistości i opisach " +"charakteru i formy ludzkiego zbawienia." + +#: lang/json/BOOK_from_json.py +msgid "The Four Vedas" +msgid_plural "copies of The Four Vedas" +msgstr[0] "kopia Cztery Wedy" +msgstr[1] "kopia Cztery Wedy" +msgstr[2] "kopia Cztery Wedy" +msgstr[3] "kopia Cztery Wedy" + +#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four +#. Vedas'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single volume containing all four Vedas, which are the oldest scriptures " +"of Hinduism." +msgstr "" +"Pojedynczy wolumen zawierający wszystkie cztery Wedy, najstarsze zapiski " +"Hinduizmu." + +#: lang/json/BOOK_from_json.py +msgid "Hávamál" +msgid_plural "copies of Hávamál" +msgstr[0] "kopia Hávamál" +msgstr[1] "kopia Hávamál" +msgstr[2] "kopia Hávamál" +msgstr[3] "kopia Hávamál" + +#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of several Old Norse poems. The poems contain " +"proverbs and stories attributed to the god Odin, many transcribed from oral " +"history." +msgstr "" +"Angielskie tłumaczenie kilkunastu staronordyckich poematów. Wiersze " +"zawierają przysłowia i opowieści przypisywane bogu Odynowi, z których wiele " +"to zapisy ustnych przekazów." + #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" msgid_plural "Duelist's Annuals" @@ -34302,6 +35293,23 @@ msgstr "" "Masywna encyklopedia branżowa w twardej oprawie z mrowiem informacji dla " "profesjonalnych krawców i projektantów mody." +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of +#. Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -34477,13 +35485,344 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "readable magazine" -msgid_plural "readable magazines" +msgid "children's book" +msgid_plural "children's books" +msgstr[0] "książka dla dzieci" +msgstr[1] "książka dla dzieci" +msgstr[2] "książka dla dzieci" +msgstr[3] "książka dla dzieci" + +#. ~ Description for {'str': "children's book"} +#: lang/json/BOOK_from_json.py +msgid "" +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the dead walked" +" and the world moved on." +msgstr "" +"Mała książeczka dla mały czytelników. Kolorowe bajkowe opowieści tu zawarte " +"należą do innych czasów, zanim martwi powstali i świat nie ruszył z podstaw." + +#: lang/json/BOOK_from_json.py +msgid "book of fairy tales" +msgid_plural "books of fairy tales" +msgstr[0] "książka mitów i opowieści" +msgstr[1] "książka mitów i opowieści" +msgstr[2] "książka mitów i opowieści" +msgstr[3] "książka mitów i opowieści" + +#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy +#. tales'} +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of folklore featuring the usual cast of fairies, " +"goblins, and trolls." +msgstr "" +"Olśniewająca kolekcja folkloru i podań opisująca popularną menażerię wróżek," +" krasnoludków i trolli." + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale is about a wolf who eats so much salted meat she becomes " +"trapped in the butcher's cellar." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this traditional story of beastly intrigue a clever fox convinces an " +"elderly lion to kill a derogatory wolf." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is an illustrated fairy tale book about a conversation between a mouse " +"and a cat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This illustrated fairy tale relates how a city mouse did visit his cousin in" +" the country, and how each regarded the other's quality of life." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A fable in which the jackal wins the day via clever foolishness." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A slave mistakenly wanders into a lion's den - thus begins a fable which " +"demonstrates mutual dependence regardless of size or status." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of stories featuring \"Goldilocks and The Three " +"Bears\" on the cover." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a well illustrated fairy tale about a war between the birds and the " +"beasts, with particulars on the wartime conduct and eventual fate of the " +"bat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " +"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" +" page." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale book is entitled \"Little Red Cap\". It details a red-" +"cloaked child's various encounters with talking wolves." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of ghost stories warning about the dangers of stealing from the" +" dead." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"An Irish fairy tale in which a Celtic poet marries a princess who has been " +"cursed with the head of a pig." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A book of Italian fairy tales translated into English. The cover features " +"an orange fairy juggling a lemon, a lime, and a tangerine." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A book of fables about people who change into birds." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This compendium of amusing folk tales about the devil is titled \"Hell's " +"Kettle: Legends of the Devil.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This charming book of Swedish fables is titled, \"The Glass Mountain and the" +" Princess.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of fairy tale stories warning against the consequences " +"of extreme greed." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fable book is entitled, \"The Rabbit Herd.\" Inside are woodcut " +"illustrations of a peasant boy playing his flute for a mob of mischievous " +"hares." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a book of legends collected by Traveller Johnny Cassidy in the " +"1960s." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of fables expands upon the legend of the Seven Sleepers of " +"Ephesus." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this fairy tale a strong man frightens an ogre by squeezing water out of " +"a stone." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of rustic folk tales bears the title: \"How to Shout Down the " +"Devil.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " +"fables about logical errors and foolish misjudgements of the Kadambawa men." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " +"Stories.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " +"suitable for small children." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Adorkable Girl" +msgid_plural "The Adorkable Girls" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Adorkable Girl +#: lang/json/BOOK_from_json.py +msgid "" +"When a therapist's daughter transfers to a new school, she decides to change" +" her personality type. As her social life begins to blossom, can she " +"maintain a healthy boundary between her home life and her public persona?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Becoming Jackson" +msgid_plural "Becoming Jacksons" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Becoming Jackson +#: lang/json/BOOK_from_json.py +msgid "" +"When Jackson gains the mystical talent to alter his appearance on command, " +"how will he continue to recognize himself in his own mirror?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nothing Burned" +msgid_plural "Nothing Burneds" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Nothing Burned +#: lang/json/BOOK_from_json.py +msgid "" +"A teenage influencer becomes fast friends with someone who may or may not be" +" an actual demon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "High and Low" +msgid_plural "High and Lows" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for High and Low +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of adolescent fiction, a young gemini discovers that the " +"astrology section of his small town newspaper is eerily preminiscent. His " +"efforts to uncover the oracle reveal more than the stars could have " +"predicted." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Fire When You See My Eyes" +msgid_plural "Fire When You See My Eyess" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Fire When You See My Eyes +#: lang/json/BOOK_from_json.py +msgid "" +"In a cataclysmic future, advanced technology gives parents access to video " +"footage of every moment of their teenage children's lives." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Peanut Butter Bruised" +msgid_plural "Peanut Butter Bruiseds" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Peanut Butter Bruised +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of young adult fiction, a woman raised on food stamps falls in " +"love with a young cook. More importantly, she falls in love with the idea " +"of become a professional chef." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Ready When You Are" +msgid_plural "Ready When You Ares" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Ready When You Are +#: lang/json/BOOK_from_json.py +msgid "" +"When three teenage girls ditch class to drive cross country together they " +"get a strong dose of life lessons on the road. This work of young adult " +"fiction explores how friendships evolve in early adulthood." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Study of a Boy" +msgid_plural "Study of a Boys" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Study of a Boy +#: lang/json/BOOK_from_json.py +msgid "" +"A high school sophomore's personal journal is stolen and then leaked on " +"social media. When it goes viral he is forced simultaneously to contend " +"with both fame and betrayal." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Summer Variables" +msgid_plural "Summer Variabless" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Summer Variables +#: lang/json/BOOK_from_json.py +msgid "" +"In this book written primarily for young adults, a woman's modest summer " +"internship results in an incredible discovery that attracts the attention of" +" unsavory elements." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "original copy of Housefly" msgid_plural "original copies of Housefly" @@ -34656,210 +35995,6 @@ msgid "" "ancient movie?" msgstr "" -#: lang/json/BOOK_from_json.py -msgid "Case #5846, Illegal Gun Modification" -msgid_plural "copies of Case #5846, Illegal Gun Modification" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Case #5846, Illegal Gun Modification', 'str_pl': -#. 'copies of Case #5846, Illegal Gun Modification'} -#: lang/json/BOOK_from_json.py -msgid "" -"This file details illegal gun modifications. Maybe you could learn " -"something. At least you don't have to worry about the cops anymore." -msgstr "" -"Ten materiał dowodowy opisuje niezgodne z prawem modyfikacje broni. Może " -"czegoś się z tego nauczysz, skoro o policję nie musisz się już martwić." - -#: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "szachy" -msgstr[1] "szachy" -msgstr[2] "szachy" -msgstr[3] "szachy" - -#. ~ Description for chess set -#: lang/json/BOOK_from_json.py -msgid "" -"A wooden box containing all the equipment needed to play a game of chess." -msgstr "Drewniane pudło zawierające wszystko co potrzeba do gry w szachy." - -#: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "warcaby" -msgstr[1] "warcaby" -msgstr[2] "warcaby" -msgstr[3] "warcaby" - -#. ~ Description for checkers set -#: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." -msgstr "Drewniane pudło zawierające wszystko co potrzeba do gry w warcaby." - -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" -msgstr[0] "talia kart" -msgstr[1] "talie kart" -msgstr[2] "talie kart" -msgstr[3] "talii kart" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "Zestaw 52 kard do gry w pokera." - -#: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" -msgstr[0] "talia kart Magia" -msgstr[1] "talie kart Magia" -msgstr[2] "talie kart Magia" -msgstr[3] "talie kart Magia" - -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of -#. Sorcery cards'} -#: lang/json/BOOK_from_json.py -msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." -msgstr "" -"Talia kart do gry w \"Magię\". Każda karta ma zabawny obrazek jakiegoś " -"potwora." - -#: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where one draws an image, and the others attempt to guess what it is." -msgstr "Gra, w której rysuje się obrazek, a inni próbują zgadnąć, co to jest." - -#: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players traverse around the board buying property and swindling" -" their friends." -msgstr "" -"Gra, w której gracze przemierzają planszę kupując nieruchomości i przekupują" -" swoich przyjaciół." - -#: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and -#. Bandits'} -#: lang/json/BOOK_from_json.py -msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive" -" the apocalypse while surviving the apocalypse." -msgstr "" -"Gra fabularna osadzona w post-apokalipsie. Możesz więc udawać, że przeżyłeś " -"apokalipsę, w trakcie przeżywania apokalipsy." - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of fantasy creatures." -msgstr "" -"Gra strategiczna z zestawem maleńkich figurek fantastycznych stworzeń." - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of -#. Battlehammer 20k'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." -msgstr "" -"Gra strategiczna z zestawem maleńkich figurek kosmitów i groteskowych " -"kosmicznych marines." - -#: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of -#. Settlers of the Ranch'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game where players build settlements and trade for supplies." -msgstr "Gra strategiczna, w której gracze budują osady i handlują ze sobą." - -#: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." -msgstr "" -"Gra, w której gracze próbują odgadnąć, gdzie przeciwnik umieścił swoje " -"statki na planszy." - -#: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder -#. Mystery'} -#: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." -msgstr "Gra, w której gracze próbują dowiedzieć się, kto zamordował lokaja." - #: lang/json/BOOK_from_json.py msgid "Black Dragons: Swamp Ruins" msgid_plural "copies of Black Dragons: Swamp Ruins" @@ -35022,94 +36157,38 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Weapons of Asgard" -msgid_plural "copies of The Weapons of Asgard" +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'The Weapons of Asgard', 'str_pl': 'copies of The -#. Weapons of Asgard'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is about creating replicas of the weapons used by the Norse Gods, " -"such as the well-known Mjölnir. It is well illustrated with lots of " -"pictures." -msgstr "" -"Książka ta traktuje o tworzeniu replik broni używanych przez bogów z " -"mitologii nordyckiej, takich jak sławny Mjölnir. Ma wiele ilustracji." - -#: lang/json/BOOK_from_json.py -msgid "Hacking Robots for Fun & Profit" -msgid_plural "copies of Hacking Robots for Fun & Profit" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Hacking Robots for Fun & Profit', 'str_pl': -#. 'copies of Hacking Robots for Fun & Profit'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book on illegally obtaining, reprogramming, and modifying robots. It has " -"lots of helpful step-by-step guides and example blueprints." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "Popular Robotics" -msgid_plural "issues of Popular Robotics" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Popular Robotics', 'str_pl': 'issues of Popular -#. Robotics'} -#: lang/json/BOOK_from_json.py -msgid "A magazine about building and altering your own robots." -msgstr "Magazyn o budowaniu i przebudowywaniu własnych robotów." - -#: lang/json/BOOK_from_json.py -msgid "Artillery and Field Gunnery" -msgid_plural "copies of Artillery and Field Gunnery" -msgstr[0] "kopia Artylerii i Armat Polowych" -msgstr[1] "kopia Artylerii i Armat Polowych" -msgstr[2] "kopia Artylerii i Armat Polowych" -msgstr[3] "kopia Artylerii i Armat Polowych" - -#. ~ Description for {'str': 'Artillery and Field Gunnery', 'str_pl': 'copies -#. of Artillery and Field Gunnery'} +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', +#. 'str_pl': 'copies of In the Beginning… Was the Command Line'} #: lang/json/BOOK_from_json.py msgid "" -"A textbook on the history of modern artillery, with a number of " -"illustrations and excerpts from various field manuals. A competent " -"handloader or mechanic might find additional uses for the more technical " -"parts of the text." +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." msgstr "" -"Podręcznik współczesnej artylerii, z licznymi ilustracjami i odpisami z " -"różnych podręczników polowych. Kompetentny mechanik lub ładowacz może " -"znaleźć dodatkowy użytek w bardziej technicznych częściach skryptu." #: lang/json/BOOK_from_json.py -msgid "Principles of Postmortem Mind Control" -msgid_plural "copies of Principles of Postmortem Mind Control" +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'Principles of Postmortem Mind Control', -#. 'str_pl': 'copies of Principles of Postmortem Mind Control'} +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': +#. 'copies of Principles of Compiler Design'} #: lang/json/BOOK_from_json.py msgid "" -"A thick book containing research notes of a mad scientist. It describes " -"various methods of reanimating and controlling the dead. There's a lot of " -"gory details and technical language mixed in, so it's not easy to read." +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." msgstr "" -"Gruba księga zawierająca notatki z badań szalonego naukowca. Opisuje liczne " -"metody reanimacji i kontroli zmarłych. Jest tu wiele krwawych kawałków " -"pomieszanych z językiem technicznym, więc nie jest łatwa do przyswojenia." #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -36494,6 +37573,19 @@ msgid "" "Prohibition era." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -36992,6 +38084,7 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for large human stomach +#. ~ Description for large demihuman stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "Żołądek dużego humanoida. Zadziwiająco odporny." @@ -37006,6 +38099,7 @@ msgstr[3] "" #. ~ Description for {'str': 'chunk of human fat', 'str_pl': 'chunks of human #. fat'} +#. ~ Description for chunk of demihuman fat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly harvested from a human body." msgstr "" @@ -37355,6 +38449,16 @@ msgstr[1] "suszony mięśniak" msgstr[2] "suszony mięśniak" msgstr[3] "suszony mięśniak" +#. ~ Conditional name for {'str_sp': 'meat jerky'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal jerky" +msgid_plural "talking animal jerky" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str_sp': 'meat jerky'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -37404,6 +38508,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for smoked meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked Narnian" +msgid_plural "smoked Narnian" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for smoked meat when COMPONENT_ID matches mutant #. ~ Conditional name for canned meat when COMPONENT_ID matches mutant #. ~ Conditional name for salted meat slice when COMPONENT_ID matches mutant @@ -37959,6 +39072,21 @@ msgstr "" "Ostrożnie zwinięta surowa skóra zdjęta z człowieka. Możesz ją zakonserwować " "do przechowania lub garbowania, lub zjeść jeżeli jesteś mocno zdesperowany." +#: lang/json/COMESTIBLE_from_json.py +msgid "raw demihuman skin" +msgid_plural "raw demihuman skins" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for raw demihuman skin +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A carefully folded raw skin harvested from a demihuman. You can cure it for" +" storage and tanning, or eat it if you're desperate enough." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" msgid_plural "raw pelts" @@ -38120,6 +39248,294 @@ msgid "" "blue veins running through it." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman stomach" +msgid_plural "demihuman stomachs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "The stomach of an intelligent demihuman. It is surprisingly durable." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "large demihuman stomach" +msgid_plural "large demihuman stomachs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chunk of demihuman fat" +msgid_plural "chunk of demihuman fats" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman tallow" +msgid_plural "demihuman tallows" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for demihuman tallow +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of cleaned and rendered demihuman fat. It will remain " +"edible for a very long time, and can be used as an ingredient in many foods " +"and projects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman lard" +msgid_plural "demihuman lards" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for demihuman lard +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of dry-rendered demihuman fat. It will remain edible " +"for a very long time, and can be used as an ingredient in many foods and " +"projects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman flesh" +msgid_plural "demihuman fleshs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for demihuman flesh +#: lang/json/COMESTIBLE_from_json.py +msgid "Freshly butchered from a demihuman body." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked mongrel" +msgid_plural "cooked mongrels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for cooked mongrel +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A freshly cooked slice of something close to being a real person. Tastes " +"like long pig." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "boiled demihuman stomach" +msgid_plural "boiled demihuman stomachs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for boiled demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" + +#. ~ Description for {'str': 'boiled demihuman stomach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A small boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cereal" +msgid_plural "cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A generic box of cereal, you shouldn't see this." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace cereal" +msgid_plural "FoodPlace cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'FoodPlace cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A generic box of FoodPlace brand sugary cereal, you shouldn't see this." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Snicker-Snacks cereal" +msgid_plural "Snicker-Snacks cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'Snicker-Snacks cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Snicker-Snack cereal. Each tiny \"Snicker-Snack\" is shaped" +" like human food!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Carpenter Crunch cereal" +msgid_plural "Carpenter Crunch cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'Carpenter Crunch cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is FoodPlace brand \"Carpenter Crunch\" cereal with the iconic " +"\"Breakfast Beaver\" mascot on the box. It tastes kind of like nails." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Brantastic cereal" +msgid_plural "Brantastic cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'Brantastic cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Brantastic\" cereal. An essential part of a complete Bran" +" breakfast." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Sugar Chomps cereal" +msgid_plural "Sugar Chomps cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'Sugar Chomps cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Sugar Chomps\" cereal. \"Chocolate Frosted Crunchy Sugar " +"Chomps: 8 essential vitamins packed into that rich, fudgy taste!\"" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Honey Pellet cereal" +msgid_plural "Honey Pellet cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'Honey Pellet cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Amorphous Honey Pellet\" cereal. The box promises " +"\"Inconceivable sustenance in tiny morsels of yellow honey.\"" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Fructose Flakes cereal" +msgid_plural "Fructose Flakes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Fructose Flakes cereal', 'str_pl': 'Fructose +#. Flakes'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Fructose Flakes cereal. Fortified with energy enriched " +"FoodSyrup™ that supports life most efficiently." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodios cereal" +msgid_plural "Foodios cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'Foodios cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace brand \"Foodios\" cereal. Foodios™ are Foodalicious™!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sugary cereal" +msgid_plural "sugary cereals" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for sugary cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sugary breakfast cereal with marshmallows. It takes you back to your " +"childhood." +msgstr "" +"Słodzone cukrem płatki z ziarna z pełnego przemiału. Przypominają " +"dzieciństwo." + +#: lang/json/COMESTIBLE_from_json.py +msgid "wheat cereal" +msgid_plural "wheat cereal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'wheat cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " +"your heart." +msgstr "" +"Płatki śniadaniowe z pszenicy z pełnego przemiału. Smaczne i dobre na serce." + +#: lang/json/COMESTIBLE_from_json.py +msgid "corn cereal" +msgid_plural "corn cereals" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for corn cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "Plain cornflake cereal. They're not that good, but it beats nothing." +msgstr "Zwykłe płatki kukurydziane. Nie są najlepsze, ale lepsze niż nic." + #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "raw milk" msgid_plural "raw milk" @@ -38603,8 +40019,8 @@ msgstr[3] "" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." -msgstr "Zrobiony z prawdziwych żurawin z Massachusetts. Pyszny i zdrowy." +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -39013,10 +40429,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rehydration drink" msgid_plural "rehydration drinks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "napój nawadniający" +msgstr[1] "napoje nawadniające" +msgstr[2] "napoi nawadniających" +msgstr[3] "napoi nawadniających" #. ~ Description for rehydration drink #: lang/json/COMESTIBLE_from_json.py @@ -39024,6 +40440,8 @@ msgid "" "A basic oral rehydration therapy drink. It will rehydrate you faster than " "water, but it tastes kind of strange." msgstr "" +"Ten napój świetnie sprawuje się przy leczeniu odwodnienia. Nawodni cię " +"szybciej niż woda, ale ma za to niezbyt przyjemny smak." #: lang/json/COMESTIBLE_from_json.py msgid "sweet water" @@ -39115,6 +40533,83 @@ msgstr "" "Fantazyjna woda mineralna, tak bardzo wyszukana, że czujesz się " "ekstrawagancki od samego trzymania." +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -39204,36 +40699,6 @@ msgstr "" "Miód, produkowany przez pszczoły. Ten tutaj to odmiana leśna, w postaci " "płynnej. Nie psuje się i jest dobry dla układu trawiennego." -#: lang/json/COMESTIBLE_from_json.py -msgid "peanut butter" -msgid_plural "peanut butters" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for peanut butter -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A brown goo that tastes very little like its namesake. It's not bad, but " -"it'll stick to the roof of your mouth." -msgstr "" -"Brązowa breja, która nie smakuje tak jak się nazywa. Nie jest zła, ale klei " -"się do podniebienia." - -#: lang/json/COMESTIBLE_from_json.py -msgid "imitation peanutbutter" -msgid_plural "imitation peanutbutters" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for imitation peanutbutter -#: lang/json/COMESTIBLE_from_json.py -msgid "A thick, nutty brown paste." -msgstr "Gęsta, brązowa orzechowa pasta." - #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" msgid_plural "vinegar" @@ -39328,10 +40793,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bird egg" msgid_plural "bird eggs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "ptasie jajo" +msgstr[1] "ptasie jaja" +msgstr[2] "ptasich jaj" +msgstr[3] "ptasich jaj" #. ~ Description for {'str': 'bird egg'} #: lang/json/COMESTIBLE_from_json.py @@ -39341,18 +40806,33 @@ msgstr "Pożywne jajo zniesione przez ptaka." #: lang/json/COMESTIBLE_from_json.py msgid "chicken egg" msgid_plural "chicken eggs" +msgstr[0] "kurze jajo" +msgstr[1] "kurze jaja" +msgstr[2] "kurzych jaj" +msgstr[3] "kurzych jaj" + +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "jajo kuropatwy" +msgstr[1] "jaja kuropatwy" +msgstr[2] "jaj kuropatwy" +msgstr[3] "jaj kuropatwy" #: lang/json/COMESTIBLE_from_json.py msgid "crow egg" @@ -39913,6 +41393,21 @@ msgstr "" "Ta nasiąknięta masa zakonserwowanych owoców była ugotowania i zapuszkowana w" " poprzednim życiu. Bez smaku, odbarwiona i rozmiękła." +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -41092,36 +42587,6 @@ msgstr "Nieco karmelu. Niezbyt zdrowy." msgid "Betcha can't eat just one." msgstr "Założę się, że nie poprzestaniesz na jednym." -#: lang/json/COMESTIBLE_from_json.py -msgid "sugary cereal" -msgid_plural "sugary cereals" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for sugary cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sugary breakfast cereal with marshmallows. It takes you back to your " -"childhood." -msgstr "" -"Słodzone cukrem płatki z ziarna z pełnego przemiału. Przypominają " -"dzieciństwo." - -#: lang/json/COMESTIBLE_from_json.py -msgid "corn cereal" -msgid_plural "corn cereals" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for corn cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "Zwykłe płatki kukurydziane. Nie są najlepsze, ale lepsze niż nic." - #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" @@ -41174,6 +42639,16 @@ msgstr[1] "niño nachos" msgstr[2] "niño nachos" msgstr[3] "niño nachos" +#. ~ Conditional name for {'str_sp': 'meat nachos'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos" +msgid_plural "nibelung nachos" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str_sp': 'meat nachos'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -41211,6 +42686,16 @@ msgstr[1] "niño nachos z serem" msgstr[2] "niño nachos z serem" msgstr[3] "niño nachos z serem" +#. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos with cheese" +msgid_plural "nibelung nachos with cheese" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when #. COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -41518,6 +43003,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for raw sausage when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "raw killbasa" +msgid_plural "raw killbasas" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for raw sausage when COMPONENT_ID matches mutant #. ~ Conditional name for smoked sausage when COMPONENT_ID matches mutant #. ~ Conditional name for cooked sausage when COMPONENT_ID matches mutant @@ -41554,6 +43048,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for smoked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked killbasa" +msgid_plural "smoked killbasas" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Description for smoked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." @@ -41576,6 +43080,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for cooked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked killbasa" +msgid_plural "cooked killbasas" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." @@ -41611,6 +43125,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "frankenfurter" +msgid_plural "frankenfurters" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str': 'bratwurst'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -41763,6 +43287,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for currywurst when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "confusing %s" +msgid_plural "confusing %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for currywurst when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -41808,6 +43342,17 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for {'str': 'aspic'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orwell's %s" +msgid_plural "Orwell's %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Description for {'str': 'aspic'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -41942,6 +43487,17 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for {'str_sp': 'bologna'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Tumnis %s" +msgid_plural "Tumnis %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str_sp': 'bologna'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -42050,6 +43606,16 @@ msgstr[1] "ludzka gulaszowa" msgstr[2] "ludzka gulaszowa" msgstr[3] "ludzka gulaszowa" +#. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage +#. gravies'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "killbasa gravy" +msgid_plural "killbasa gravies" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage #. gravies'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -42088,6 +43654,17 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orley %s" +msgid_plural "Orley %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str_sp': 'pemmican'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -42121,7 +43698,17 @@ msgstr[3] "" #. ~ Conditional name for hamburger helper when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgid_plural "hobo helpers" +msgid_plural "hobo helper" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for hamburger helper when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "halfling helper" +msgid_plural "halfling helper" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -42177,6 +43764,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con +#. carne'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "chili con Sindar" +msgid_plural "chilis con Sindar" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con #. carne'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -42391,7 +43988,16 @@ msgstr[3] "" #. ~ Conditional name for meat pie when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgid_plural "prick pies" +msgid_plural "prick pie" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for meat pie when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal pie" +msgid_plural "talking animal pie" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -42423,7 +44029,16 @@ msgstr[3] "" #. ~ Conditional name for meat pizza when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgid_plural "poser pizzas" +msgid_plural "poser pizza" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for meat pizza when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "protesting pizza" +msgid_plural "protesting pizza" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -42497,11 +44112,20 @@ msgstr[3] "" #. ~ Conditional name for canned meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" -msgid_plural "soylent slices" -msgstr[0] "plastry pożywki" -msgstr[1] "plastry pożywki" -msgstr[2] "plastry pożywki" -msgstr[3] "plastry pożywki" +msgid_plural "soylent slice" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for canned meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient slice" +msgid_plural "sapient slice" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py @@ -42523,7 +44147,17 @@ msgstr[3] "" #. ~ Conditional name for salted meat slice when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slice" -msgid_plural "salted simpleton slices" +msgid_plural "salted simpleton slice" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for salted meat slice when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "salted sapient slice" +msgid_plural "salted sapient slice" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -42546,7 +44180,17 @@ msgstr[3] "spaghetti bolognese" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" -msgid_plural "scoundrel spaghettis" +msgid_plural "scoundrel spaghetti" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "speaking spaghetti" +msgid_plural "speaking spaghetti" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -42586,6 +44230,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for lasagne when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Lab %s" +msgid_plural "Lab %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for lasagne when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -42636,6 +44290,17 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for cheeseburger when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "elf %s" +msgid_plural "elf %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for cheeseburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -42664,7 +44329,16 @@ msgstr[3] "" #. ~ Conditional name for hamburger when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgid_plural "bobburgers" +msgid_plural "bobburger" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for hamburger when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "Moreauburger" +msgid_plural "Moreauburger" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -42702,6 +44376,15 @@ msgstr[1] "kanapka z trepka" msgstr[2] "kanapka z trepka" msgstr[3] "kanapka z trepka" +#. ~ Conditional name for sloppy joe when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "manfriendwich" +msgid_plural "manfriendwiches" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for sloppy joe when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -42739,6 +44422,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for taco when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "talking %s" +msgid_plural "talking %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for taco when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -42769,7 +44462,17 @@ msgstr[3] "" #. ~ Conditional name for pickled meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgid_plural "pickled punks" +msgid_plural "pickled punk" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for pickled meat when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "pickled anthro" +msgid_plural "pickled anthro" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -42801,6 +44504,21 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for dehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for rehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for {'str': 'haggis', 'str_pl': 'haggises'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "%s, demihuman" +msgid_plural "%s, demihuman" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -43216,6 +44934,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "" + #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -43813,10 +45536,9 @@ msgstr[3] "" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." msgstr "" -"Farmaceutyczna szczepionka przeciw grypie do masowych szczepień, nadal w " -"opakowaniu. Twierdzi, że zapewnia odporność na grypę." #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -44559,10 +46281,8 @@ msgstr "Zażywasz syrop na zgagę." #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." +"urges." msgstr "" -"Kremowo-różowy syrop na zgagę, który uśmierza wzburzony żołądek i uspokaja " -"odruch wymiotny. Ma odkręcaną nakrętkę, która służy też za dozownik." #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" @@ -44844,6 +46564,37 @@ msgstr "" "więc można jeść bez obaw. Wystawiony na działanie powietrza zaczyna się " "psuć." +#: lang/json/COMESTIBLE_from_json.py +msgid "spinach fettuccine entree" +msgid_plural "spinach fettuccine entrees" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for spinach fettuccine entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The creamy spinach fettuccine entree from an MRE. Sterilized using " +"radiation, so it's safe to eat. Exposed to the atmosphere, it has started " +"to go bad." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "ratatouille entree" +msgid_plural "ratatouille entrees" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for ratatouille entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The ratatouille entree from an MRE. Sterilized using radiation, so it's " +"safe to eat. Exposed to the atmosphere, it has started to go bad." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" msgid_plural "cheese tortellini entrees" @@ -46131,6 +47882,49 @@ msgstr[3] "" msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." msgstr "Przepyszna ambrozja z orzechów orzesznika. Napój godny bogów." +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter" +msgid_plural "peanut butters" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for peanut butter +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A brown goo that tastes very little like its namesake. It's not bad, but " +"it'll stick to the roof of your mouth." +msgstr "" +"Brązowa breja, która nie smakuje tak jak się nazywa. Nie jest zła, ale klei " +"się do podniebienia." + +#: lang/json/COMESTIBLE_from_json.py +msgid "imitation peanutbutter" +msgid_plural "imitation peanutbutters" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for imitation peanutbutter +#: lang/json/COMESTIBLE_from_json.py +msgid "A thick, nutty brown paste." +msgstr "Gęsta, brązowa orzechowa pasta." + +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter spread" +msgid_plural "peanut butter spreads" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for peanut butter spread +#: lang/json/COMESTIBLE_from_json.py +msgid "Processed peanut butter spread.." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "acorns" msgid_plural "acorns" @@ -46464,9 +48258,9 @@ msgstr[3] "mleczko pszczele" #. ~ Description for {'str': 'royal jelly', 'str_pl': 'royal jellies'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A translucent hexagonal chunk of wax, filled with dense, milky jelly. " -"Though some hold it as a panacea, it doesn't have any medical benefit. " -"Still, it is delicious, and rich with the most beneficial substances the " +"A translucent hexagonal chunk of wax, filled with dense, milky, bitter and " +"acidic-tasting jelly. Though some hold it as a panacea, it doesn't have any" +" medical benefit. Still it is rich with the most beneficial substances the " "hive can produce." msgstr "" @@ -46753,6 +48547,19 @@ msgid "" " and is guaranteed 100% edible!" msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -46951,6 +48758,36 @@ msgstr[3] "" msgid "Some nectar. Seeing this item is a bug." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "tea bag" +msgid_plural "tea bags" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with tea leafs inside. Put it into boiling water to get your " +"cup of tea." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "herbal tea bag" +msgid_plural "herbal tea bags" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'herbal tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with dried wild herbs inside. Put it into boiling water to " +"make some healthy warm drink." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "protein drink" msgid_plural "protein drinks" @@ -46962,11 +48799,21 @@ msgstr[3] "" #. ~ Conditional name for protein drink when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" -msgid_plural "soylent green drinks" -msgstr[0] "drink zielonej pożywki" -msgstr[1] "drink zielonej pożywki" -msgstr[2] "drink zielonej pożywki" -msgstr[3] "drink zielonej pożywki" +msgid_plural "soylent green drink" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for protein drink when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green drink" +msgid_plural "sapient green drink" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. ~ Conditional name for protein drink when COMPONENT_ID matches mutant #. ~ Conditional name for {'str_sp': 'protein powder'} when COMPONENT_ID @@ -47010,6 +48857,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green powder" +msgid_plural "sapient green powder" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Description for {'str_sp': 'protein powder'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -47030,13 +48887,14 @@ msgstr[3] "" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the" -" product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you" -" hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable" +" to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -47050,7 +48908,17 @@ msgstr[3] "" #. ~ Conditional name for protein shake when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgid_plural "soylent green shakes" +msgid_plural "soylent green shake" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green shake" +msgid_plural "sapient green shake" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -47076,7 +48944,17 @@ msgstr[3] "" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgid_plural "fortified soylent green shakes" +msgid_plural "fortified soylent green shake" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for fortified protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "fortified sapient green shake" +msgid_plural "fortified sapient green shake" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -48182,6 +50060,19 @@ msgid "" "fiddle. Delicious when cooked, but consuming raw can cause food poisoning." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" @@ -48340,6 +50231,16 @@ msgstr[1] "kanapka z mięśniaka" msgstr[2] "kanapka z mięśniaka" msgstr[3] "kanapka z mięśniaka" +#. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat +#. sandwiches'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "satyr sandwich" +msgid_plural "satyr sandwiches" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when COMPONENT_ID matches mutant #. ~ Conditional name for meat soup when COMPONENT_ID matches mutant @@ -49487,6 +51388,27 @@ msgstr "" msgid "chamomile" msgstr "rumianek" +#: lang/json/COMESTIBLE_from_json.py +msgid "spurge seeds" +msgid_plural "spurge seeds" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'spurge seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some spurge seeds." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py +msgid "spurge" +msgid_plural "spurges" +msgstr[0] "wilczomlecz" +msgstr[1] "wilczomlecze" +msgstr[2] "wilczomleczy" +msgstr[3] "wilczomlecze" + #: lang/json/COMESTIBLE_from_json.py msgid "popcorn seeds" msgid_plural "popcorn seeds" @@ -49526,6 +51448,19 @@ msgstr[3] "" msgid "Some mustard seeds. Could be ground into mustard powder." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -49547,6 +51482,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Conditional name for bone broth when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "demihuman %s" +msgid_plural "demihuman %s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." @@ -49576,7 +51521,16 @@ msgstr[3] "" #. ~ Conditional name for meat soup when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgid_plural "sap soups" +msgid_plural "sap soup" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Conditional name for meat soup when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "goblin soup" +msgid_plural "goblin soup" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -49883,10 +51837,8 @@ msgstr[3] "dzikie zioła" #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " -"purslane, fireweed, and burdock." +"purslane, and fireweed." msgstr "" -"Smakowita kolekcja dziko rosnących ziół zawierająca fiołek, wawrzyn, miętę, " -"koniczynę, wierzbówkę i łopian." #: lang/json/COMESTIBLE_from_json.py msgid "soy sauce" @@ -49919,6 +51871,21 @@ msgstr[3] "" msgid "A fragnant yellow powder. Not edible in this form." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" @@ -50625,20 +52592,19 @@ msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "wheat cereal" -msgid_plural "wheat cereals" +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for wheat cereal +#. ~ Description for {'str': 'cooked bell pepper'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " -"your heart." +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds" +" are removed." msgstr "" -"Płatki śniadaniowe z pszenicy z pełnego przemiału. Smaczne i dobre na serce." #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py @@ -50911,7 +52877,6 @@ msgstr[2] "muesli" msgstr[3] "muesli" #. ~ Description for {'str_sp': 'granola'} -#. ~ Description for gluten free granola #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " @@ -51667,6 +53632,14 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -51683,6 +53656,14 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/COMESTIBLE_from_json.py msgid "triceratops egg" msgid_plural "triceratops eggs" @@ -51707,6 +53688,14 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -52306,784 +54295,846 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "necrotic head" -msgid_plural "necrotic heads" +msgid "TEST pine nuts" +msgid_plural "TEST pine nuts" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for necrotic head -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"The severed head of a zombie necromancer. Its eyes still roll in its head " -"and its jaws snap menacingly." -msgstr "" -"Odcięta głowa nekromanty zombi. Jego oczy nadal obracają się w głowie, a " -"szczęka kłapie złowieszczo." - #: lang/json/COMESTIBLE_from_json.py -msgid "mutagenic glob" -msgid_plural "mutagenic globs" +msgid "test bitter almonds" +msgid_plural "test bitter almonds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for mutagenic glob -#: lang/json/COMESTIBLE_from_json.py -msgid "A gelatinous glob of mutagen." -msgstr "Żelatynowa globula mutagenu." - -#: lang/json/COMESTIBLE_from_json.py -msgid "honey" -msgid_plural "honey" -msgstr[0] "miód" -msgstr[1] "miód" -msgstr[2] "miód" -msgstr[3] "miody" - -#. ~ Description for {'str_sp': 'honey'} +#. ~ Description for {'str_sp': 'test bitter almonds'} #: lang/json/COMESTIBLE_from_json.py -msgid "Honey, that stuff bees make." -msgstr "Miód, taki jaki robią pszczoły." +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when" +" eaten raw." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "TEST pine nuts" -msgid_plural "TEST pine nuts" +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fish sandwich" -msgid_plural "gluten free fish sandwiches" -msgstr[0] "bezglutenowa kanapka rybna" -msgstr[1] "bezglutenowe kanapki rybne" -msgstr[2] "bezglutenowych kanapek rybnych" -msgstr[3] "bezglutenowych kanapek rybnych" - -#. ~ Description for {'str': 'gluten free fish sandwich', 'str_pl': 'gluten -#. free fish sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free and a delicious fish sandwich." -msgstr "Bezglutenowa i pyszna kanapka z rybą." - -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable sandwich" -msgid_plural "gluten free vegetable sandwiches" -msgstr[0] "bezglutenowa kanapka z warzywami" -msgstr[1] "bezglutenowe kanapki z warzywami" -msgstr[2] "bezglutenowych kanapek z warzywami" -msgstr[3] "bezglutenowej kanapki z warzywami" - -#. ~ Description for {'str': 'gluten free vegetable sandwich', 'str_pl': -#. 'gluten free vegetable sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluen free bread and vegetables, that's it." -msgstr "Bezglutenowy chleb i warzywa, nic ponadto." +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free granola" -msgid_plural "gluten free granolas" +msgid "test apple" +msgid_plural "test apples" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for {'str': 'test apple'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat sandwich" -msgid_plural "gluten free meat sandwiches" -msgstr[0] "bezglutenowa kanapka z mięsem" -msgstr[1] "bezglutenowe kanapki z mięsem" -msgstr[2] "bezglutenowych kanapek z mięsem" -msgstr[3] "bezglutenowych kanapek z mięsem" - -#. ~ Description for {'str': 'gluten free meat sandwich', 'str_pl': 'gluten -#. free meat sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free bread and meat, that's it." -msgstr "Bezglutenowy chleb z mięsem i tyle." +msgid "Test apple. May contain worms, but tastes delicious!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free peanut butter sandwich" -msgid_plural "gluten free peanut butter sandwiches" -msgstr[0] "bezglutenowa kanapka z masłem orzechowym" -msgstr[1] "bezglutenowe kanapki z masłem orzechowym" -msgstr[2] "bezglutenowych kanapek z masłem orzechowym" -msgstr[3] "bezglutenowych kanapek z masłem orzechowym" +msgid "test liquid" +msgid_plural "test liquid" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free peanut butter sandwich', 'str_pl': -#. 'gluten free peanut butter sandwiches'} +#. ~ Description for {'str_sp': 'test liquid'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some peanut butter smothered between two pieces of gluten free bread. Not " -"very filling and will stick to the roof of your mouth like glue." +"No clue what it's made of, but it's definitely liquid. Only for testing, do" +" not drink!" msgstr "" -"Dwie pajdy bezglutenowego chleba przedzielone grubą warstwa masła " -"orzechowego. Niezbyt sycące i klei się do podniebienia jak butapren." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&J sandwich" -msgid_plural "gluten free PB&J sandwiches" -msgstr[0] "bezglutenowa kanapka z masłem orzechowym i dżemem" -msgstr[1] "bezglutenowe kanapki z masłem orzechowym i dżemem" -msgstr[2] "bezglutenowych kanapek z masłem orzechowym i dżemem" -msgstr[3] "bezglutenowych kanapek z masłem orzechowym i dżemem" +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free PB&J sandwich', 'str_pl': 'gluten -#. free PB&J sandwiches'} +#. ~ Description for tennis ball wine must #: lang/json/COMESTIBLE_from_json.py msgid "" -"A delicious peanut butter and jelly gluten free sandwich. It reminds you of" -" the times your mother would make you lunch." +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." msgstr "" -"Pyszna bezglutenowa kanapka z masłem orzechowym i dżemem. Kiedy to ostatnio " -"mama robiła ci kanapki..." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&H sandwich" -msgid_plural "gluten free PB&H sandwiches" -msgstr[0] "bezglutenowa kanapka z masłem orzechowym i miodem" -msgstr[1] "bezglutenowe kanapki z masłem orzechowym i miodem" -msgstr[2] "bezglutenowych kanapek z masłem orzechowym i miodem" -msgstr[3] "bezglutenowych kanapek z masłem orzechowym i miodem" +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free PB&H sandwich', 'str_pl': 'gluten -#. free PB&H sandwiches'} +#. ~ Description for {'str_sp': 'test tennis ball wine'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some damned fool put honey on this peanut butter sandwich, who in their " -"right mind- oh wait this is pretty good. Gluten free too!" +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&M sandwich" -msgid_plural "gluten free PB&M sandwiches" -msgstr[0] "bezglutenowa kanapka z masłem orzechowym i syropem" -msgstr[1] "bezglutenowe kanapki z masłem orzechowym i syropem" -msgstr[2] "bezglutenowych kanapek z masłem orzechowym i syropem" -msgstr[3] "bezglutenowych kanapek z masłem orzechowym i syropem" +msgid "test chewing gum" +msgid_plural "test chewing gum" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free PB&M sandwich', 'str_pl': 'gluten -#. free PB&M sandwiches'} +#. ~ Description for {'str_sp': 'test chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Who knew you could mix maple syrup and peanut butter to create yet another " -"different gluten free sandwich?" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." msgstr "" -"Kto by pomyślał że można wymieszać masło orzechowe i syrop klonowy żeby " -"stworzyć kolejny wariant słodkiej bezglutenowej kanapki?" #: lang/json/COMESTIBLE_from_json.py -msgid "lactose free hickory nut ambrosia" -msgid_plural "lactose free hickory nut ambrosias" +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for lactose free hickory nut ambrosia +#. ~ Description for {'str': 'test mutated thumb'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " -"made with an alternative to cows milk." +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." msgstr "" -#. ~ Description for cornmeal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"You think this is cornflour… or rice flour… Or something else. However, it" -" certainly is not wheat flour! It is useful for baking though." +#: lang/json/CONTAINER_from_json.py +msgid "small metal tank" +msgid_plural "small metal tanks" +msgstr[0] "mały metalowy zbiornik" +msgstr[1] "mały metalowy zbiornik" +msgstr[2] "mały metalowy zbiornik" +msgstr[3] "mały metalowy zbiornik" + +#. ~ Description for small metal tank +#: lang/json/CONTAINER_from_json.py +msgid "A small metal tank for holding gas or liquids. Useful for crafting." msgstr "" +"Mały metalowy zbiornik na gaz lub płyny. Użyteczny w wytwarzaniu " +"przedmiotów." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free johnnycake" -msgid_plural "gluten free johnnycakes" +#: lang/json/ENGINE_from_json.py +msgid "internal combustion engine" +msgid_plural "internal combustion engines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free johnnycake -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"We all crave for cake sometimes. This is not perfect, but it is a tasty and" -" nutritious gluten free fried bread treat. " -msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "base diesel engine" +msgid_plural "base diesel engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pancake" -msgid_plural "gluten free fruit pancakes" -msgstr[0] "bezglutenowy naleśnik z owocami" -msgstr[1] "bezglutenowe naleśniki z owocami" -msgstr[2] "bezglutenowych naleśników z owocami" -msgstr[3] "bezglutenowych naleśników z owocami" +#: lang/json/ENGINE_from_json.py +msgid "base gasoline engine" +msgid_plural "base gasoline engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"Puszyste bezglutenowe naleśniki z prawdziwym syropem klonowym, wypełnione " -"słodkimi i zdrowymi kawałkami owoców." +#: lang/json/ENGINE_from_json.py +msgid "base steam engine" +msgid_plural "base steam engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free fruit pancake" -msgid_plural "lactose free fruit pancakes" -msgstr[0] "naleśnik z owocami bez laktozy" -msgstr[1] "naleśniki z owocami bez laktozy" -msgstr[2] "naleśników z owocami bez laktozy" -msgstr[3] "naleśników z owocami bez laktozy" +#: lang/json/ENGINE_from_json.py +msgid "1-cylinder engine" +msgid_plural "1-cylinder engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': '1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A single-cylinder 4-stroke combustion engine." +msgstr "Jednocylindrowy, czterosuwowy silnik spalinowy." + +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgid_plural "large 1-cylinder engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'large 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious lactose free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." +"A powerful high-compression single-cylinder 4-stroke combustion engine." msgstr "" -"Puszyste naleśniki bez laktozy z prawdziwym syropem klonowym, wypełnione " -"słodkimi i zdrowymi kawałkami owoców." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit pancake" -msgid_plural "gluten free lactose free fruit pancakes" -msgstr[0] "bezglutenowy naleśnik bez laktozy z owocami" -msgstr[1] "bezglutenowe naleśniki bez laktozy z owocami" -msgstr[2] "bezglutenowych naleśników bez laktozy z owocami" -msgstr[3] "bezglutenowych naleśników bez laktozy z owocami" +#: lang/json/ENGINE_from_json.py +msgid "small 1-cylinder engine" +msgid_plural "small 1-cylinder engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small single-cylinder 2-stroke combustion engine." +msgstr "Mały jednocylindrowy, dwusuwowy silnik spalinowy." + +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious pancakes made out of the only things you can still eat." -" But at least it has real maple syrup, made sweeter and healthier with the " -"addition of wholesome fruit." +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate pancake" -msgid_plural "gluten free chocolate pancakes" -msgstr[0] "bezglutenowy naleśnik z czekoladą" -msgstr[1] "bezglutenowe naleśniki z czekoladą" -msgstr[2] "bezglutenowych naleśników z czekoladą" -msgstr[3] "bezglutenowych naleśników z czekoladą" +#: lang/json/ENGINE_from_json.py +msgid "Inline-4 engine" +msgid_plural "Inline-4 engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free chocolate pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Inline-4 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small, yet powerful 4-cylinder combustion engine." +msgstr "Mały, ale silny, czterocylindrowy silnik spalinowy." + +#: lang/json/ENGINE_from_json.py +msgid "I6 diesel engine" +msgid_plural "I6 diesel engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'I6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful straight-6 diesel engine." +msgstr "Silny sześciocylindrowy liniowy silnik diesla." + +#: lang/json/ENGINE_from_json.py +msgid "V-twin engine" +msgid_plural "V-twin engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'V-twin engine'} +#: lang/json/ENGINE_from_json.py +msgid "A 2-cylinder 4-stroke combustion engine." +msgstr "Dwucylindrowy, czterosuwowy silnik spalinowy." + +#: lang/json/ENGINE_from_json.py +msgid "V6 engine" +msgid_plural "V6 engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'V6 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder combustion engine." +msgstr "Sześciocylindrowy silny silnik spalinowy." + +#: lang/json/ENGINE_from_json.py +msgid "V6 diesel engine" +msgid_plural "V6 diesel engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'V6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder diesel engine." +msgstr "Sześciocylindrowy silny silnik diesla." + +#: lang/json/ENGINE_from_json.py +msgid "V8 engine" +msgid_plural "V8 engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'V8 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A large and very powerful 8-cylinder combustion engine." +msgstr "Duży i bardzo mocny 8-cylindrowy silnik spalinowy." + +#: lang/json/ENGINE_from_json.py +msgid "V8 diesel engine" +msgid_plural "V8 diesel engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'V8 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 8-cylinder diesel engine." +msgstr "Silny 8-cylindrowy silnik diesla." + +#: lang/json/ENGINE_from_json.py +msgid "V12 engine" +msgid_plural "V12 engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'V12 engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, with " -"delicious chocolate baked right in." +"A massive and extremely powerful V12 engine, usually built into high end " +"sports cars." msgstr "" -"Puszyste bezglutenowe naleśniki z prawdziwym syropem klonowym, wypełnione " -"stopioną czekoladą." +"Ogromny i bardzo mocny 12-cylindrowy silnik, w który zaopatrywane są " +"zaawansowane samochody sportowe." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free French toast" -msgid_plural "gluten free French toasts" -msgstr[0] "bezglutenowy francuski tost" -msgstr[1] "bezglutenowe francuskie tosty" -msgstr[2] "bezglutenowych francuskich tostów" -msgstr[3] "bezglutenowych francuskich tostów" +#: lang/json/ENGINE_from_json.py +msgid "V12 diesel engine" +msgid_plural "V12 diesel engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'V12 diesel engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a milk and egg mixture then fried." +"A massive and extremely powerful V12 engine, usually built into heavy " +"trucks." msgstr "" -"Kawałki bezglutenowego chleba moczone w mieszaninie jaj z mlekiem i " -"następnie smażone." +"Ogromny i bardzo mocny 12-cylindrowy silnik, w który zwykle zaopatrywane są " +"ciężkie ciężarówki." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free French toast" -msgid_plural "gluten free lactose free French toasts" -msgstr[0] "bezglutenowy francuski tost bez laktozy" -msgstr[1] "bezglutenowe francuskie tosty bez laktozy" -msgstr[2] "bezglutenowych francuskich tostów bez laktozy" -msgstr[3] "bezglutenowych francuskich tostów bez laktozy" +#: lang/json/ENGINE_from_json.py +msgid "makeshift steam engine" +msgid_plural "makeshift steam engines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free lactose free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'makeshift steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a lactose free milk and egg mixture " -"then fried. You never thought it was possible, but now you truly feel like " -"a post millennial." +"A small, primitive, steam engine. An integrated boiler burns coal to heat " +"water into steam, driving a reciprocating shaft. A condenser recaptures the" +" water, making this a closed cycle system." msgstr "" +"Mały, prymitywny silnik parowy. Zintegrowany kocioł spala węgiel by " +"podgrzewać wodę aż zacznie parować, napędzając tłok. Kondensor odzyskuje " +"wodę, tworząc zamknięty system obiegu." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free biscuit" -msgid_plural "gluten free biscuits" +#: lang/json/ENGINE_from_json.py +msgid "small steam engine" +msgid_plural "small steam engines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free biscuit -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Delicious and filling, this home made gluten free biscuit is good, and good " -"for you!" +"A small steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condenser recaptures the water, " +"making this a closed cycle system." msgstr "" -"Doskonałe bezglutenowe domowe herbatniki. Bardzo smaczne, co cię cieszy." +"Mały silnik parowy. Zintegrowany kocioł spala węgiel by podgrzewać wodę aż " +"zacznie parować, napędzając tłok. Kondensor odzyskuje wodę, tworząc " +"zamknięty system obiegu." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pie" -msgid_plural "gluten free fruit pies" +#: lang/json/ENGINE_from_json.py +msgid "medium steam engine" +msgid_plural "medium steam engines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free fruit pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a sweet fruit filling." -msgstr "Przepyszne upieczone bezglutenowe ciasto z owocowym nadzieniem." +#. ~ Description for {'str': 'medium steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A medium-sized steam engine. An integrated boiler burns coal to heat water " +"into steam, driving a reciprocating shaft. A condenser recaptures the " +"water, making this a closed cycle system." +msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pie" -msgid_plural "gluten free vegetable pies" +#: lang/json/ENGINE_from_json.py +msgid "1350 hp gas turbine engine" +msgid_plural "1350 hp gas turbine engines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free vegetable pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious vegetable filling." +#. ~ Description for {'str': '1350 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A gas turbine engine, usually used for military vehicles. Known for its " +"high rate of fuel consumption." msgstr "" -"Doskonały pieczony bezglutenowy placek z pysznym nadzieniem warzywnym." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pie" -msgid_plural "gluten free meat pies" +#: lang/json/ENGINE_from_json.py +msgid "1900 hp gas turbine engine" +msgid_plural "1900 hp gas turbine engines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free meat pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious meat filling." +#. ~ Description for {'str': '1900 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large gas turbine engine, usually used for military helicopters. Known " +"for its high rate of fuel consumption." msgstr "" -"Bezglutenowy pasztecik z mięsem, czyli upieczone ciasto z mięsnym " -"nadzieniem." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free maple pie" -msgid_plural "gluten free maple pies" +#: lang/json/ENGINE_from_json.py +msgid "6000 hp gas turbine engine" +msgid_plural "6000 hp gas turbine engines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free maple pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A sweet and delicious baked gluten free pie with pure maple syrup." +#. ~ Description for {'str': '6000 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " +"high rate of fuel consumption." msgstr "" -"Przepyszny słodki bezglutenowy placek pieczony z czystym syropem klonowym." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pizza" -msgid_plural "gluten free vegetable pizzas" +#: lang/json/ENGINE_from_json.py +msgid "large steam engine" +msgid_plural "large steam engines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free vegetable pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " -"crust. Its smell brings back great memories." +"A large steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" -"Bezglutenowa pizza wegetariańska, z doskonałym sosem pomidorowym i puszystym" -" ciastem. Zapach przywołuje piękne wspomnienia." +"Duży silnik parowy. Zintegrowany kocioł spala węgiel by podgrzewać wodę aż " +"zacznie parować, napędzając tłok. Kondensor odzyskuje wodę, tworząc " +"zamknięty system obiegu." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese pizza" -msgid_plural "gluten free cheese pizzas" +#: lang/json/ENGINE_from_json.py +msgid "huge steam engine" +msgid_plural "huge steam engines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free cheese pizza -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free pizza with molten cheese on top." -msgstr "Doskonała bezglutenowa pizza z roztopionym serem na wierzchu." +#. ~ Description for {'str': 'huge steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "" +"Ogromny silnik parowy. Zintegrowany kocioł spala węgiel by podgrzewać wodę " +"aż zacznie parować, napędzając tłok. Kondensor odzyskuje wodę, tworząc " +"zamknięty system obiegu." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pizza" -msgid_plural "gluten free meat pizzas" +#: lang/json/ENGINE_from_json.py +msgid "small steam turbine" +msgid_plural "small steam turbines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free meat pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A meat gluten free pizza, for all the carnivores out there. Chock full of " -"minced meat and heavily seasoned." +"A small steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -"Mięsna bezglutenowa pizza, specjalnie dla mięsożercy. Wypchana mielonym " -"mięsem i mocno doprawiona." +"Mała turbina parowa. Zintegrowany kocioł spala węgiel by podgrzewać wodę aż " +"zacznie parować, napędzając wibrującą turbinę. Kondensor odzyskuje wodę, " +"tworząc zamknięty system obiegu." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheeseburger" -msgid_plural "gluten free cheeseburgers" +#: lang/json/ENGINE_from_json.py +msgid "medium steam turbine" +msgid_plural "medium steam turbines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free cheeseburger -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of minced meat and cheese with condiments. The apex " -"of pre-Cataclysm culinary achievement." +"A medium sized steam turbine. An integrated boiler burns coal to heat water" +" into steam, driving a spinning turbine. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" +"Średnich rozmiarów turbina parowa. Zintegrowany kocioł spala węgiel by " +"podgrzewać wodę aż zacznie parować, napędzając wibrującą turbinę. Kondensor " +"odzyskuje wodę, tworząc zamknięty system obiegu." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free hamburger" -msgid_plural "gluten free hamburgers" +#: lang/json/ENGINE_from_json.py +msgid "large steam turbine" +msgid_plural "large steam turbines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free hamburger -#: lang/json/COMESTIBLE_from_json.py -msgid "A gluten free sandwich of minced meat with condiments." -msgstr "Bezglutenowa kanapka z mielonym mięsem i przyprawami." +#. ~ Description for {'str': 'large steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "" +"Duża turbina parowa. Zintegrowany kocioł spala węgiel by podgrzewać wodę aż " +"zacznie parować, napędzając wibrującą turbinę. Kondensor odzyskuje wodę, " +"tworząc zamknięty system obiegu." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sloppy joe" -msgid_plural "gluten free sloppy joes" +#: lang/json/ENGINE_from_json.py +msgid "huge steam turbine" +msgid_plural "huge steam turbines" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free sloppy joe -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'huge steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich, consisting of ground meat and tomato sauce served on" -" a hamburger bun." +"A huge steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -"Bezglutenowa kanapka z luźnej mielonej wołowiny smażonej z cebulą i sosem " -"pomidorowym, podawanej w bułce do hamburgerów." +"Ogromna turbina parowa. Zintegrowany kocioł spala węgiel by podgrzewać wodę " +"aż zacznie parować, napędzając wibrującą turbinę. Kondensor odzyskuje wodę, " +"tworząc zamknięty system obiegu." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free BLT" -msgid_plural "gluten free BLTs" +#: lang/json/GENERIC_from_json.py +msgid "fetid goop" +msgid_plural "fetid goops" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free BLT -#: lang/json/COMESTIBLE_from_json.py -msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." -msgstr "Boczek, sałata i pomidor na bezglutenowym chlebie tostowym." +#. ~ Description for {'str': 'fetid goop'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A foul smelling goop. It has a disgusting texture and a powerful smell that" +" overrides every other smell around it." +msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sweetbread" -msgid_plural "gluten free sweetbreads" -msgstr[0] "bezglutenowa nerkówka" -msgstr[1] "bezglutenowe nerkówki" -msgstr[2] "bezglutenowych nerkówek" -msgstr[3] "bezglutenowych nerkówek" +#: lang/json/GENERIC_from_json.py +msgid "limestone shard" +msgid_plural "limestone shards" +msgstr[0] "odłamki wapienia" +msgstr[1] "odłamki wapienia" +msgstr[2] "odłamki wapienia" +msgstr[3] "odłamki wapienia" -#. ~ Description for {'str': 'gluten free sweetbread'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'limestone shard'} +#: lang/json/GENERIC_from_json.py msgid "" -"Delicious and tender organ meats. First boiled, then gluten free breaded " -"crumbs added and fried. They have interesting flavor and unparalleled " -"texture." +"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" +" alkaline properties may yet find some use." msgstr "" -"Delikatna i smaczna potrawa z nerek lub organów wewnętrznych. Wpierw " -"gotowane, następnie smażone w bezglutenowej panierce. Mają interesujący " -"zapach i niezrównaną teksturę." +"Mały odłamek wapienia. Dość kruchy i nieprzydatny jako broń, ale jego " +"alkaliczne właściwości mogą być użyteczne." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese sandwich" -msgid_plural "gluten free cheese sandwiches" -msgstr[0] "bezglutenowa kanapka z serem" -msgstr[1] "bezglutenowe kanapki z serem" -msgstr[2] "bezglutenowych kanapek z serem" -msgstr[3] "bezglutenowych kanapek z serem" +#: lang/json/GENERIC_from_json.py +msgid "rock salt" +msgid_plural "rock salt" +msgstr[0] "sól kamienna" +msgstr[1] "sól kamienna" +msgstr[2] "sól kamienna" +msgstr[3] "sól kamienna" -#. ~ Description for {'str': 'gluten free cheese sandwich', 'str_pl': 'gluten -#. free cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A simple gluten free cheese sandwich." -msgstr "Prosta bezglutenowa kanapka z serem." +#. ~ Description for {'str_sp': 'rock salt'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of rock salt crystals. Could be refined into table salt." +msgstr "Garść kryształów soli kamiennej. Można przetworzyć w sól kuchenną." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free grilled cheese sandwich" -msgid_plural "gluten free grilled cheese sandwiches" -msgstr[0] "bezglutenowa kanapka z grilowanym serem" -msgstr[1] "bezglutenowe kanapki z grilowanym serem" -msgstr[2] "bezglutenowych kanapek z grilowanym serem" -msgstr[3] "bezglutenowych kanapek z grilowanym serem" +#: lang/json/GENERIC_from_json.py +msgid "rhodonite" +msgid_plural "rhodonite" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free grilled cheese sandwich', 'str_pl': -#. 'gluten free grilled cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'rhodonite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A delicious gluten free grilled cheese sandwich, because everything is " -"better with melted cheese." +"A chunk of rhodonite. It has manganese dioxide covering and going through " +"it in veins, which can be obtained using a chisel." msgstr "" -"Pyszna bezglutenowa kanapka z grilowanym serem, ponieważ wszystko jest " -"smaczniejsze z roztopionym serem." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free deluxe sandwich" -msgid_plural "gluten free deluxe sandwiches" -msgstr[0] "bezglutenowa kanapka delux" -msgstr[1] "bezglutenowe kanapki delux" -msgstr[2] "bezglutenowych kanapek delux" -msgstr[3] "bezglutenowych kanapek delux" +#: lang/json/GENERIC_from_json.py +msgid "zincite" +msgid_plural "zincite" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free deluxe sandwich', 'str_pl': 'gluten -#. free deluxe sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'zincite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A gluten free sandwich of meat, vegetables, and cheese with condiments. " -"Tasty and nutritious!" +"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " +"reduction with a source of carbon." msgstr "" -"Bezglutenowa kanapka z mięsem, warzywami, serem i przyprawami. Pożywna i " -"smaczna." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cucumber sandwich" -msgid_plural "gluten free cucumber sandwiches" -msgstr[0] "bezglutenowa kanapka z ogórkiem" -msgstr[1] "bezglutenowe kanapki z ogórkiem" -msgstr[2] "bezglutenowych kanapek z ogórkiem" -msgstr[3] "bezglutenowych kanapek z ogórkiem" +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free cucumber sandwich', 'str_pl': -#. 'gluten free cucumber sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py msgid "" -"A refreshing gluten free cucumber sandwich. Not very filling, but quite " -"tasty." +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." msgstr "" -"Odświeżająca bezglutenowa kanapka z ogórkiem. Niezbyt sycąca, ale nawet " -"smaczna." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free jam sandwich" -msgid_plural "gluten free jam sandwiches" -msgstr[0] "bezglutenowa kanapka z dżemem" -msgstr[1] "bezglutenowe kanapki z dżemem" -msgstr[2] "bezglutenowych kanapek z dżemem" -msgstr[3] "bezglutenowych kanapek z dżemem" +#: lang/json/GENERIC_from_json.py +msgid "hickory root" +msgid_plural "hickory roots" +msgstr[0] "korzeń orzesznika" +msgstr[1] "korzeń orzesznika" +msgstr[2] "korzeń orzesznika" +msgstr[3] "korzeń orzesznika" -#. ~ Description for {'str': 'gluten free jam sandwich', 'str_pl': 'gluten -#. free jam sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free jam sandwich." -msgstr "Pyszna bezglutenowa kanapka posmarowana dżemem." +#. ~ Description for {'str': 'hickory root'} +#: lang/json/GENERIC_from_json.py +msgid "A root from a hickory tree. It has an earthy smell." +msgstr "Korzeń drzewa orzesznika. Pachnie ziemią." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free honey sandwich" -msgid_plural "gluten free honey sandwiches" -msgstr[0] "bezglutenowa kanapka z miodem" -msgstr[1] "bezglutenowe kanapki z miodem" -msgstr[2] "bezglutenowych kanapek z miodem" -msgstr[3] "bezglutenowych kanapek z miodem" +#: lang/json/GENERIC_from_json.py +msgid "hickory nuts" +msgid_plural "hickory nuts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free honey sandwich', 'str_pl': 'gluten -#. free honey sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free honey sandwich." -msgstr "Pyszna bezglutenowa kanapka posmarowana miodem." +#. ~ Description for {'str_sp': 'hickory nuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hickory tree, still in their shell." +msgstr "" +"Garść surowych twardych orzechów z drzewa orzesznika, nadal w skorupach." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free boring sandwich" -msgid_plural "gluten free boring sandwiches" -msgstr[0] "nudna bezglutenowa kanapka" -msgstr[1] "nudne bezglutenowe kanapki" -msgstr[2] "nudnych bezglutenowych kanapek" -msgstr[3] "nudnych bezglutenowych kanapek" +#: lang/json/GENERIC_from_json.py +msgid "pecans" +msgid_plural "pecans" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'gluten free boring sandwich', 'str_pl': 'gluten -#. free boring sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A simple gluten free sauce sandwich. Not very filling but beats eating just" -" the bread… especially if it is the wrong type of bread!" -msgstr "" +#. ~ Description for {'str_sp': 'pecans'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pecan tree, still in their shell." +msgstr "Garść twardych orzechów pecan, wciąż w skorupce." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free waffle" -msgid_plural "gluten free waffles" +#: lang/json/GENERIC_from_json.py +msgid "pistachios" +msgid_plural "pistachios" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str_sp': 'pistachios'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pistachio tree, still in their shell." msgstr "" +"Garść surowych twardych orzechów z drzewa pistacjowego, nadal w skorupach." -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free waffle" -msgid_plural "lactose free waffles" +#: lang/json/GENERIC_from_json.py +msgid "almonds" +msgid_plural "almonds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Lactose free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str_sp': 'almonds'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from an almond tree, still in their shell." msgstr "" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Gluten free and lactose free waffle. It's basically a pancake in hashtag " -"form." +#: lang/json/GENERIC_from_json.py +msgid "peanuts" +msgid_plural "peanuts" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str_sp': 'peanuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a peanut bush, still in their shell." msgstr "" +"Garść surowych twardych orzechów z krzewu orzachy podziemnej rodzącej " +"orzeszki ziemne, nadal w skorupach." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit waffle" -msgid_plural "gluten free fruit waffles" +#: lang/json/GENERIC_from_json.py +msgid "hazelnuts" +msgid_plural "hazelnuts" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"Chrupiące pyszne bezglutenowe gofry z syropem klonowym obsypane kawałkami " -"owoców." +#. ~ Description for {'str_sp': 'hazelnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hazelnut tree, still in their shell." +msgstr "Garść twardych orzechów laskowych, wciąż w skorupce." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit waffle" -msgid_plural "gluten free lactose free fruit waffles" +#: lang/json/GENERIC_from_json.py +msgid "chestnuts" +msgid_plural "chestnuts" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free lactose free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free and lactose free waffles with real maple " -"syrup, made sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"Chrupiące pyszne bezglutenowe gofry bez laktozy z syropem klonowym obsypane " -"kawałkami owoców." +#. ~ Description for {'str_sp': 'chestnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a chestnut tree, still in their shell." +msgstr "Garść twardych kasztanów, wciąż w skorupce." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate waffle" -msgid_plural "gluten free chocolate waffles" +#: lang/json/GENERIC_from_json.py +msgid "walnuts" +msgid_plural "walnuts" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for gluten free chocolate waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, with " -"delicious chocolate baked right in." -msgstr "" -"Chrupiące pyszne bezglutenowe gofry z syropem klonowym polane roztopioną " -"czekoladą." +#. ~ Description for {'str_sp': 'walnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a walnut tree, still in their shell." +msgstr "Garść twardych orzechów włoskich, wciąż w skorupce." -#: lang/json/COMESTIBLE_from_json.py -msgid "rice milk" -msgid_plural "rice milk" -msgstr[0] "mleko ryżowe" -msgstr[1] "mleka ryżowe" -msgstr[2] "mlek ryżowych" -msgstr[3] "mlek ryżowych" +#: lang/json/GENERIC_from_json.py +msgid "steel grille" +msgid_plural "steel grilles" +msgstr[0] "stalowy grill" +msgstr[1] "stalowy grill" +msgstr[2] "stalowy grill" +msgstr[3] "stalowy grill" -#. ~ Description for {'str_sp': 'rice milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'steel grille'} +#: lang/json/GENERIC_from_json.py msgid "" -"Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " -"rapidly." +"This is a metal grille. It can be used as a framework for making a chemical" +" catalyst." msgstr "" +"To metalowy grill. Może być użyty jako struktura do produkcji chemicznego " +"katalizatora." -#: lang/json/COMESTIBLE_from_json.py -msgid "coconut water" -msgid_plural "coconut water" -msgstr[0] "woda kokosowa" -msgstr[1] "wody kokosowe" -msgstr[2] "wód kokosowych" -msgstr[3] "wód kokosowych" +#: lang/json/GENERIC_from_json.py +msgid "cobalt-60 pellet" +msgid_plural "cobalt-60 pellets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str_sp': 'coconut water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'cobalt-60 pellet'} +#: lang/json/GENERIC_from_json.py msgid "" -"Coconut milk, with water added to make it go further. Tastes ok though. " -"Spoils rapidly." +"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/COMESTIBLE_from_json.py -msgid "jarred coconut milk" -msgid_plural "jarred coconut milk" -msgstr[0] "mleko kokosowe w słoiku" -msgstr[1] "mleka kokosowe w słoiku" -msgstr[2] "mlek kokosowych w słoiku" -msgstr[3] "mlek kokosowych w słoiku" +#: lang/json/GENERIC_from_json.py +msgid "sandbag" +msgid_plural "sandbags" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str_sp': 'jarred coconut milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'sandbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"This deliciously rich coconut cream is a more concentrated, thicker version " -"of the coconut milk." +"This is a canvas sack filled with sand. It can be used to construct simple " +"barricades." msgstr "" -"Ten przepyszny krem kokosowy jest bardziej skondensowaną, gęstszą wersją " -"mleka kokosowego." - -#: lang/json/COMESTIBLE_from_json.py -msgid "rice flour" -msgid_plural "rice flour" -msgstr[0] "mąka ryżowa" -msgstr[1] "mąki ryżowe" -msgstr[2] "mąk ryżowych" -msgstr[3] "mąk ryżowych" - -#. ~ Description for {'str_sp': 'rice flour'} -#: lang/json/COMESTIBLE_from_json.py -msgid "This rice flour is useful for baking." -msgstr "Ta mąka ryżowa nadaje się do pieczenia." -#: lang/json/COMESTIBLE_from_json.py -msgid "revival serum" -msgid_plural "revival serums" +#: lang/json/GENERIC_from_json.py +msgid "earthbag" +msgid_plural "earthbags" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for revival serum -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'earthbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"A potent drug, necessary when performing a revival operation on larger " -"animals (including humans). It induces a violent allergic reactions in " -"living organisms, so using it on yourself is a REALLY bad idea." +"This is a canvas sack filled with soil. It can be used to construct simple " +"barricades." msgstr "" -"Silny narkotyk, niezbędny w dokonywaniu operacji ożywiania większych " -"zwierząt (w tym ludzi). Powoduje silną reakcję alergiczną w żywych " -"organizmach, więc używanie go na sobie jest NAPRAWDĘ złym pomysłem." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "2.5L canteen" msgid_plural "2.5L canteens" msgstr[0] "2.5L menażka" @@ -53092,14 +55143,14 @@ msgstr[2] "2.5L menażka" msgstr[3] "2.5L menażka" #. ~ Description for {'str': '2.5L canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "" "Duża plastikowa menażka z paskiem do noszenia, która pomieści 2,5 litra " "wody." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "30 gallon barrel" msgid_plural "30 gallon barrels" msgstr[0] "30 galonowa beczka" @@ -53108,11 +55159,11 @@ msgstr[2] "30 galonowa beczka" msgstr[3] "30 galonowa beczka" #. ~ Description for {'str': '30 gallon barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "Wielka plastikowa beczka z zamykanym wieczkiem." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" msgid_plural "steel drums (100L)" msgstr[0] "stalowa baryłka (100L)" @@ -53122,11 +55173,11 @@ msgstr[3] "stalowa baryłka (100L)" #. ~ Description for {'str': 'steel drum (100L)', 'str_pl': 'steel drums #. (100L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge steel barrel with a resealable lid." msgstr "Wielka stalowa baryłka z zamykanym wieczkiem." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" msgid_plural "steel drums (200L)" msgstr[0] "stalowa baryłka (200L)" @@ -53136,11 +55187,11 @@ msgstr[3] "stalowa baryłka (200L)" #. ~ Description for {'str': 'steel drum (200L)', 'str_pl': 'steel drums #. (200L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "Masywna stalowa baryłka z zamykanym wieczkiem." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas sack" msgid_plural "canvas sacks" msgstr[0] "płócienny worek" @@ -53149,12 +55200,12 @@ msgstr[2] "płócienny worek" msgstr[3] "płócienny worek" #. ~ Description for {'str': 'canvas sack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "Duży mocny worek z płótna. Pachnie ziemią i ciężką pracą." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas bag" msgid_plural "canvas bags" msgstr[0] "płócienna torba" @@ -53163,12 +55214,12 @@ msgstr[2] "płócienna torba" msgstr[3] "płócienna torba" #. ~ Description for {'str': 'canvas bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "" "Mała torba z płótna. Wygląda na dobre miejsce na trzymanie suszonych ziół." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bag" msgid_plural "plastic bags" msgstr[0] "plastikowa torba" @@ -53177,11 +55228,11 @@ msgstr[2] "plastikowa torba" msgstr[3] "plastikowa torba" #. ~ Description for {'str': 'plastic bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "Mała, otwarta plastikowa torba. W zasadzie śmieć." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "zipper bag" msgid_plural "zipper bags" msgstr[0] "" @@ -53190,14 +55241,14 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'zipper bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_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 +#: lang/json/GENERIC_from_json.py msgid "body bag" msgid_plural "body bags" msgstr[0] "worek na ciało" @@ -53206,7 +55257,7 @@ msgstr[2] "worki na ciała" msgstr[3] "worki na ciała" #. ~ Description for {'str': 'body bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large, human size, rectangular bag made of strong plastic, with a zipper " "in the middle. Used to hold a dead body." @@ -53215,7 +55266,7 @@ msgstr "" "plastiku, z zamkiem błyskawicznym pośrodku. Używany do przechowywania " "martwego ciała." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "IV bag" msgid_plural "IV bags" msgstr[0] "" @@ -53224,11 +55275,11 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'IV bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass bottle" msgid_plural "glass bottles" msgstr[0] "szklana butelka" @@ -53237,11 +55288,11 @@ msgstr[2] "szklane butelki" msgstr[3] "szklane butelki" #. ~ Description for {'str': 'glass bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "Zamykana szklana butelka, która pomieści 750 ml płynu." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bottle" msgid_plural "plastic bottles" msgstr[0] "plastikowa butelka" @@ -53250,11 +55301,11 @@ msgstr[2] "plastikowe butelki" msgstr[3] "plastikowe butelki" #. ~ Description for {'str': 'plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "Zamykana plastikowa butelka, która pomieści 500 ml płynu." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condiment bottle" msgid_plural "condiment bottles" msgstr[0] "" @@ -53263,18 +55314,18 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An inverted plastic bottle for condiments. Still sealed from factory, " "preserves content from rot until opened." msgstr "" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An inverted plastic bottle for condiments." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small plastic bottle" msgid_plural "small plastic bottles" msgstr[0] "mała plastikowa butelka" @@ -53283,11 +55334,11 @@ msgstr[2] "małe plastikowe butelki" msgstr[3] "małe plastikowe butelki" #. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "Zamykana plastikowa butelka, która pomieści 250 ml płynu." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large plastic bottle" msgid_plural "large plastic bottles" msgstr[0] "duża plastikowa butelka" @@ -53296,7 +55347,7 @@ msgstr[2] "duże plastikowe butelki" msgstr[3] "duże plastikowe butelki" #. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." @@ -53304,7 +55355,7 @@ msgstr "" "To dwulitrowa plastikowa butelka, w której zmieści się dużo koli, lub " "obecnie, przegotowanej wody." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay bowl" msgid_plural "clay bowls" msgstr[0] "gliniana miska" @@ -53313,7 +55364,7 @@ msgstr[2] "gliniana miska" msgstr[3] "gliniana miska" #. ~ Description for {'str': 'clay bowl'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A clay bowl with a waterproofed hide lid. Can be used as a container or as " "a tool. Holds 250 ml of liquid." @@ -53321,7 +55372,7 @@ msgstr "" "Gliniana miska z wodoodporną skórzaną pokrywką. Może być używana jako " "pojemnik lub narzędzie. Mieści 250 ml płynu." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "pack" msgid_plural "packs" msgstr[0] "paczka" @@ -53330,7 +55381,7 @@ msgstr[2] "paczka" msgstr[3] "paczka" #. ~ Description for {'str': 'pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." @@ -53338,7 +55389,7 @@ msgstr "" "NACZELNY CHIRURG OSTRZEGA: Palenie powoduje raka płuc, choroby serca, " "rozedmę płuc i komplikacje porodowe." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" msgstr[0] "" @@ -53348,11 +55399,11 @@ msgstr[3] "" #. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "Małe pudło kartonowe. Nie większe niż stopa w każdym wymiarze." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" msgstr[0] "pudło kartonowe" @@ -53361,12 +55412,12 @@ msgstr[2] "pudło kartonowe" msgstr[3] "pudło kartonowe" #. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "" -#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" msgstr[0] "" @@ -53376,7 +55427,7 @@ msgstr[3] "" #. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A very large cardboard box, the sort children would have loved to hide in, " "when there were still children." @@ -53384,7 +55435,7 @@ msgstr "" "Bardzo duże kartonowe pudełko, w którym dzieci chętnie się chowały, gdy były" " jeszcze dzieci." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "bucket" msgid_plural "buckets" msgstr[0] "wiadro" @@ -53393,7 +55444,7 @@ msgstr[2] "wiadro" msgstr[3] "wiadro" #. ~ Description for {'str': 'bucket'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " "legs, French fries, animal feed, farm use, tailgating, crafts, planting " @@ -53405,7 +55456,7 @@ msgstr "" "wytwarzania, sadzenia, na koszyk z prezentami, owocami, ziołami, lub innymi " "drobnymi rzeczami, takoż jako wiadro z lodem." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hydration pack" msgid_plural "hydration packs" msgstr[0] "bukłak na plecy" @@ -53414,7 +55465,7 @@ msgstr[2] "bukłak na plecy" msgstr[3] "bukłak na plecy" #. ~ Description for {'str': 'hydration pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " @@ -53424,7 +55475,7 @@ msgstr "" "kieszeń i zamykany ustnik do napełniania płynami, oraz wężyk pozwalający " "noszącemu go na picie bez używania rąk." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum can" msgid_plural "aluminum cans" msgstr[0] "puszka aluminiowa" @@ -53433,11 +55484,11 @@ msgstr[2] "puszka aluminiowa" msgstr[3] "puszka aluminiowa" #. ~ Description for {'str': 'aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An aluminum can, like what soda comes in." msgstr "Aluminiowa puszka, taka w której sprzedaje się napoje, np. kolę." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened aluminum can" msgid_plural "opened aluminum cans" msgstr[0] "otwarta puszka aluminiowa" @@ -53446,7 +55497,7 @@ msgstr[2] "otwarta puszka aluminiowa" msgstr[3] "otwarta puszka aluminiowa" #. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." @@ -53454,7 +55505,7 @@ msgstr "" "Aluminiowa puszka, taka w której sprzedaje się napoje, np. kolę. Ta jest " "otwarta i nie da się jej łatwo zamknąć." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper carton" msgid_plural "paper cartons" msgstr[0] "" @@ -53463,13 +55514,13 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " It has a threaded cap for easy resealing." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened paper carton" msgid_plural "opened paper cartons" msgstr[0] "" @@ -53478,13 +55529,13 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'opened paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " This one is open and its contents will spoil." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" msgstr[0] "opakowanie próżniowe" @@ -53493,11 +55544,11 @@ msgstr[2] "opakowań próżniowych" msgstr[3] "opakowania próżniowe" #. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "This is a bag of vacuum-packed food." msgstr "Torba zapakowanego próżniowo jedzenia." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small tin can" msgid_plural "small tin cans" msgstr[0] "" @@ -53506,11 +55557,11 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'small tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small tin can, like what tuna comes in." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small opened tin can" msgid_plural "small opened tin cans" msgstr[0] "" @@ -53519,13 +55570,13 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'small opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small tin can, like what tuna comes in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium tin can" msgid_plural "medium tin cans" msgstr[0] "" @@ -53534,11 +55585,11 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'medium tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A medium tin can, like what soup comes in." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium opened tin can" msgid_plural "medium opened tin cans" msgstr[0] "" @@ -53547,13 +55598,13 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A medium tin can, like what soup comes in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic canteen" msgid_plural "plastic canteens" msgstr[0] "plastikowa manierka" @@ -53562,7 +55613,7 @@ msgstr[2] "plastikowa manierka" msgstr[3] "plastikowa manierka" #. ~ Description for {'str': 'plastic canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." @@ -53570,7 +55621,7 @@ msgstr "" "Manierka na wodę w stylu wojskowym, z pojemnością 1,5L. Zwykle noszona na " "biodrze." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "thermos" msgid_plural "thermoses" msgstr[0] "termos" @@ -53579,7 +55630,7 @@ msgstr[2] "termos" msgstr[3] "termosy" #. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." @@ -53587,7 +55638,7 @@ msgstr "" "Próżniowa butelka maki Termos. Zbudowana by utrzymywać temperaturę, pomaga w" " utrzymaniu ciepła bądź zimna. Pomieści litr płynu." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay canister" msgid_plural "clay canisters" msgstr[0] "gliniany kanister" @@ -53596,7 +55647,7 @@ msgstr[2] "gliniany kanister" msgstr[3] "gliniany kanister" #. ~ Description for {'str': 'clay canister'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." @@ -53604,7 +55655,7 @@ msgstr "" "Kruchy gliniany pojemnik. Może być wykorzystany jako prymitywny granat " "uderzeniowy lub pojemnik na płyny." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay hydria" msgid_plural "clay hydrias" msgstr[0] "gliniana hydria" @@ -53613,13 +55664,13 @@ msgstr[2] "gliniana hydria" msgstr[3] "gliniana hydria" #. ~ Description for {'str': 'clay hydria'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "" "Odmiana amfory. 15-litrowa gliniana waza z trzema uchwytami do przenoszenia " "i rozlewania." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large clay pot" msgid_plural "large clay pots" msgstr[0] "duży gliniany dzban" @@ -53628,7 +55679,7 @@ msgstr[2] "duży gliniany dzban" msgstr[3] "duży gliniany dzban" #. ~ Description for {'str': 'large clay pot'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky and heavy clay pot with a waterproofed hide lid, meant to store " "water, but can carry other liquids in a pinch." @@ -53636,7 +55687,7 @@ msgstr "" "Masywny i ciężki gliniany dzban z wodoszczelną pokrywką, przeznaczony do " "trzymania w nim wody, ale nadaje się również do innych płynnych substancji." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic cup" msgid_plural "plastic cups" msgstr[0] "plastikowy kubek" @@ -53645,11 +55696,11 @@ msgstr[2] "plastikowy kubek" msgstr[3] "plastikowy kubek" #. ~ Description for {'str': 'plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup." msgstr "Mały, formowany próżniowo kubek." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened plastic cup" msgid_plural "opened plastic cups" msgstr[0] "otwarty plastikowy kubek" @@ -53658,11 +55709,11 @@ msgstr[2] "otwarty plastikowy kubek" msgstr[3] "otwarty plastikowy kubek" #. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "Mały, formowany próżniowo kubek. W zasadzie śmieć." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass flask" msgid_plural "glass flasks" msgstr[0] "szklana kolba" @@ -53671,11 +55722,11 @@ msgstr[2] "szklana kolba" msgstr[3] "szklana kolba" #. ~ Description for {'str': 'glass flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "250 mililitrowa stożkowa kolba laboratoryjna, z gumowym czopem." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "test tube" msgid_plural "test tubes" msgstr[0] "próbówka" @@ -53684,12 +55735,12 @@ msgstr[2] "próbówki" msgstr[3] "próbówki" #. ~ Description for {'str': 'test tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "" "Cylindryczna próbówka laboratoryjna o pojemności 10 ml, z gumowym czopem." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "beaker" msgid_plural "beakers" msgstr[0] "zlewka" @@ -53698,12 +55749,12 @@ msgstr[2] "zlewki" msgstr[3] "zlewki" #. ~ Description for {'str': 'beaker'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" msgstr[0] "cylinder miarowy" @@ -53712,14 +55763,14 @@ msgstr[2] "cylindrów miarowych" msgstr[3] "cylindrów miarowych" #. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A tall, narrow glass cylinder with precise markings for measuring fluid " "quantities. An important science tool, it is also useful for anal retentive" " chefs." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" msgstr[0] "probówka do mikrowirówki" @@ -53728,14 +55779,14 @@ msgstr[2] "probówek do mikrowirówki" msgstr[3] "probówek do mikrowirówki" #. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "These plastic tubes, with little built in snap-caps, are a great way to " "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 "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hip flask" msgid_plural "hip flasks" msgstr[0] "piersiówka" @@ -53744,7 +55795,7 @@ msgstr[2] "piersiówka" msgstr[3] "piersiówka" #. ~ Description for {'str': 'hip flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." @@ -53752,7 +55803,7 @@ msgstr "" "250 mililitrowa metalowa piersiówka z nakrętką na zaczepie. Popularny " "pojemnik do dyskretnego noszenia alkoholu." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" msgstr[0] "3L szklany słój" @@ -53761,13 +55812,13 @@ msgstr[2] "3L szklany słój" msgstr[3] "3L szklany słój" #. ~ Description for {'str': '3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Trzylitrowy szklany słój z metalową nakrętką. Świetny by w nim coś " "zapuszkować." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed 3L glass jar" msgid_plural "sealed 3L glass jars" msgstr[0] "zamknięty 3L szklany słój" @@ -53776,7 +55827,7 @@ msgstr[2] "zamknięty 3L szklany słój" msgstr[3] "zamknięty 3L szklany słój" #. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." @@ -53784,7 +55835,7 @@ msgstr "" "Trzylitrowy szklany słój z metalową nakrętką. Mocno zakręcony chroni " "zawartość przed zepsuciem." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass jar" msgid_plural "glass jars" msgstr[0] "szklany słoik" @@ -53793,13 +55844,13 @@ msgstr[2] "szklany słoik" msgstr[3] "szklany słoik" #. ~ Description for {'str': 'glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Półlitrowy szklany słoik z metalową nakrętką. Świetny by w nim coś " "zapuszkować." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed glass jar" msgid_plural "sealed glass jars" msgstr[0] "zamknięty szklany słoik" @@ -53808,7 +55859,7 @@ msgstr[2] "zamknięty szklany słoik" msgstr[3] "zamknięty szklany słoik" #. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half-liter glass jar with a metal screw top lid, used for canning. Sealed" " tightly and will preserve the contents from rot (assuming it was sterile " @@ -53817,7 +55868,7 @@ msgstr "" "Półlitrowy szklany słoik z metalową nakrętką. Mocno zakręcony chroni " "zawartość przed zepsuciem (o ile był sterylny przed zamknięciem)." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic jerrycan" msgid_plural "plastic jerrycans" msgstr[0] "plastikowy kanister" @@ -53826,7 +55877,7 @@ msgstr[2] "plastikowy kanister" msgstr[3] "plastikowy kanister" #. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." @@ -53834,7 +55885,7 @@ msgstr "" "Duży plastikowy kanister, przeznaczony do przenoszenia paliwa, ale nada się " "i do innych płynów." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel jerrycan" msgid_plural "steel jerrycans" msgstr[0] "stalowy kanister" @@ -53843,7 +55894,7 @@ msgstr[2] "stalowy kanister" msgstr[3] "stalowy kanister" #. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." @@ -53851,7 +55902,7 @@ msgstr "" "Duży stalowy kanister, przeznaczony do przenoszenia paliwa, ale nada się i " "do innych płynów." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay jug" msgid_plural "clay jugs" msgstr[0] "gliniany dzbanek" @@ -53860,12 +55911,12 @@ msgstr[2] "gliniany dzbanek" msgstr[3] "gliniany dzbanek" #. ~ Description for {'str': 'clay jug'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "" "Gliniany pojemnik na płyny z pokrywką, do przechowywania i rozlewania." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "gallon jug" msgid_plural "gallon jugs" msgstr[0] "galonowa butla" @@ -53875,13 +55926,13 @@ msgstr[3] "galonowa butla" #. ~ Description for {'str': 'gallon jug'} #. ~ Description for TEST gallon jug -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "" "Standardowa plastikowa butla o pojemności galona, na mleko lub chemię " "domowego użytku." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum keg" msgid_plural "aluminum kegs" msgstr[0] "aluminiowy keg" @@ -53890,7 +55941,7 @@ msgstr[2] "aluminiowy keg" msgstr[3] "aluminiowy keg" #. ~ Description for {'str': 'aluminum keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." @@ -53898,7 +55949,7 @@ msgstr "" "Wielokrotnego użytku lekki aluminiowy keg, służący do transportu piwa. Ma " "pojemność 50 litrów." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel keg" msgid_plural "steel kegs" msgstr[0] "stalowy keg" @@ -53907,7 +55958,7 @@ msgstr[2] "stalowy keg" msgstr[3] "stalowy keg" #. ~ Description for {'str': 'steel keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." @@ -53915,7 +55966,7 @@ msgstr "" "Wielokrotnego użytku ciężki stalowy keg, służący do transportu piwa. Ma " "pojemność 50 litrów." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large sealed stomach" msgid_plural "large sealed stomachs" msgstr[0] "duży zaszyty żołądek" @@ -53924,14 +55975,14 @@ msgstr[2] "duży zaszyty żołądek" msgstr[3] "duży zaszyty żołądek" #. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." msgstr "" "Żołądek dużego stworzenia, oczyszczony i zaszyty nićmi. Mieści 3 litry wody." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (60L)" msgid_plural "metal tanks (60L)" msgstr[0] "metalowy zbiornik (60L)" @@ -53941,11 +55992,11 @@ msgstr[3] "metalowy zbiornik (60L)" #. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks #. (60L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "Duży metalowy zbiornik na płyny. Użyteczny w wytwarzaniu przedmiotów." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (2L)" msgid_plural "metal tanks (2L)" msgstr[0] "metalowy zbiornik (2L)" @@ -53954,13 +56005,13 @@ msgstr[2] "metalowy zbiornik (2L)" msgstr[3] "metalowy zbiornik (2L)" #. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "" "Mały metalowy zbiornik na gaz lub płyny. Użyteczny w wytwarzaniu " "przedmiotów." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" msgstr[0] "drewniana menażka" @@ -53969,7 +56020,7 @@ msgstr[2] "drewniana menażka" msgstr[3] "drewniana menażka" #. ~ Description for {'str': 'wooden canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A water canteen made from wood, secured by metal bands and sealed with wax " "or pitch. Holds 1.5 liters and has a simple carry strap." @@ -53978,7 +56029,7 @@ msgstr "" "zamknięta woskiem lub lepikiem. Ma pojemność 1,5 litra i zaopatrzona jest w " "prosty sznurek." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed stomach" msgid_plural "sealed stomachs" msgstr[0] "zaszyty żołądek" @@ -53987,7 +56038,7 @@ msgstr[2] "zaszyty żołądek" msgstr[3] "zaszyty żołądek" #. ~ Description for {'str': 'sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." @@ -53995,7 +56046,7 @@ msgstr "" "Żołądek jakiegoś stworzenia, oczyszczony i zaszyty nićmi. Mieści 1,5 litra " "wody." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small waterskin" msgid_plural "small waterskins" msgstr[0] "mały bukłak" @@ -54005,7 +56056,7 @@ msgstr[3] "mały bukłak" #. ~ Description for {'str': 'small waterskin'} #. ~ Description for TEST small waterskin -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." @@ -54013,7 +56064,7 @@ msgstr "" "Mały wodoszczelny skórzany pojemnik z paskiem do noszenia, mieszczący 1,5 " "litra wody." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "waterskin" msgid_plural "waterskins" msgstr[0] "bukłak" @@ -54022,14 +56073,14 @@ msgstr[2] "bukłak" msgstr[3] "bukłak" #. ~ Description for {'str': 'waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "" "Wodoszczelny skórzany pojemnik z paskiem do noszenia, mieszczący 3 litry " "wody." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large waterskin" msgid_plural "large waterskins" msgstr[0] "duży bukłak" @@ -54038,7 +56089,7 @@ msgstr[2] "duży bukłak" msgstr[3] "duży bukłak" #. ~ Description for {'str': 'large waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." @@ -54046,7 +56097,7 @@ msgstr "" "Duży wodoszczelny skórzany pojemnik z paskiem do noszenia, mieszczący 5 " "litrów wody." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden barrel" msgid_plural "wooden barrels" msgstr[0] "drewniana beczka" @@ -54055,7 +56106,7 @@ msgstr[2] "drewniana beczka" msgstr[3] "drewniana beczka" #. ~ Description for {'str': 'wooden barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "Traditionally made of white oak; these vessels are known for delivering " "delicious whiskey to the future. It has a capacity of 100 liters." @@ -54063,7 +56114,7 @@ msgstr "" "Tradycyjnie wytwarzane z białej dębiny, beczki te przenosiły w przyszłość " "doskonałą whiskey. Ma pojemność 100 litrów." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper wrapper" msgid_plural "paper wrappers" msgstr[0] "papier pakowy" @@ -54072,13 +56123,28 @@ msgstr[2] "papier pakowy" msgstr[3] "papier pakowy" #. ~ Description for {'str': 'paper wrapper'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." msgstr "" "Kawałek papieru pakowego do zawijania, np. mięsa u rzeźnika. Dobre na " "podpałkę." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'wrapper'} +#: lang/json/GENERIC_from_json.py +msgid "" +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." +msgstr "" + +#: lang/json/GENERIC_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" msgstr[0] "styropianowy kubek" @@ -54087,11 +56153,11 @@ msgstr[2] "styropianowych kubków" msgstr[3] "styropianowego kubka" #. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "Tani, jednorazowy kubek z plastikowym wieczkiem i słomką," -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic tub" msgid_plural "plastic tubs" msgstr[0] "plastikowe opakowanie" @@ -54100,12 +56166,12 @@ msgstr[2] "plastikowych opakowań" msgstr[3] "plastikowego opakowania" #. ~ Description for {'str': 'plastic tub'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "" "Duże, kwadratowe, plastikowe wiaderko, przeważnie używane do noszenia lodów." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" msgstr[0] "kondom" @@ -54114,14 +56180,14 @@ msgstr[2] "kondomów" msgstr[3] "kondomów" #. ~ Description for {'str': 'condom'} -#: lang/json/CONTAINER_from_json.py +#: 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/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "balloon" msgid_plural "balloons" msgstr[0] "" @@ -54130,11 +56196,11 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'balloon'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A child's balloon. This could be used as a makeshift water container." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large tin can" msgid_plural "large tin cans" msgstr[0] "" @@ -54143,13 +56209,13 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'large tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. Holds a substantial amount of " "food." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large opened tin can" msgid_plural "large opened tin cans" msgstr[0] "" @@ -54158,13 +56224,13 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for {'str': 'large opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "survival kit box" msgid_plural "survival kit boxes" msgstr[0] "" @@ -54174,925 +56240,24 @@ msgstr[3] "" #. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum box that used to contain a small survival kit. Can hold 1 liter" " of liquid." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "plastikowa miska" -msgstr[1] "plastikowa miska" -msgstr[2] "plastikowa miska" -msgstr[3] "plastikowa miska" - -#. ~ Description for {'str': '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 "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "stalowa butelka" -msgstr[1] "stalowa butelka" -msgstr[2] "stalowa butelka" -msgstr[3] "stalowa butelka" - -#. ~ Description for {'str': 'steel bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Butelka z nierdzewnej stali, która pomieści 750 ml płynu." - -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "składana plastikowa butelka" -msgstr[1] "składana plastikowa butelka" -msgstr[2] "składana plastikowa butelka" -msgstr[3] "składana plastikowa butelka" - -#. ~ Description for {'str': 'foldable plastic bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Elastyczna plastikowa butelka dla łatwego składowania, mieści pół litra " -"płynu." - -#: lang/json/CONTAINER_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" -msgstr[0] "zestaw do pobierania krwi" -msgstr[1] "zestaw do pobierania krwi" -msgstr[2] "zestaw do pobierania krwi" -msgstr[3] "zestaw do pobierania krwi" - -#. ~ Description for {'str': 'blood draw kit'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." -msgstr "" -"Zestaw do pobierania krwi z próbówką na próbkę krwi. Użyj, by pobrać krew " -"swoją lub z ciała nad którym stoisz." - -#: lang/json/CONTAINER_from_json.py -msgid "small metal tank" -msgid_plural "small metal tanks" -msgstr[0] "mały metalowy zbiornik" -msgstr[1] "mały metalowy zbiornik" -msgstr[2] "mały metalowy zbiornik" -msgstr[3] "mały metalowy zbiornik" - -#. ~ Description for small metal tank -#: lang/json/CONTAINER_from_json.py -msgid "A small metal tank for holding gas or liquids. Useful for crafting." -msgstr "" -"Mały metalowy zbiornik na gaz lub płyny. Użyteczny w wytwarzaniu " -"przedmiotów." - -#: lang/json/CONTAINER_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" -msgstr[0] "beczka na niebezpieczne odpady" -msgstr[1] "beczki na niebezpieczne odpady" -msgstr[2] "beczki na niebezpieczne odpady" -msgstr[3] "beczki na niebezpieczne odpady" - -#. ~ Description for {'str': 'hazardous waste drum'} -#: lang/json/CONTAINER_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." -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] "doniczka ogrodowa" -msgstr[1] "doniczki ogrodowe" -msgstr[2] "doniczek ogrodowych" -msgstr[3] "doniczek ogrodowych" - -#. ~ Description for garden pot -#: lang/json/CONTAINER_from_json.py -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 "endless flask" -msgid_plural "endless flasks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "The flask isn't done refilling yet." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "cauldron of purification" -msgid_plural "cauldrons of purification" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons -#. of purification'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This cauldron made of demon spider chitin seems to absorb the light. It " -"will hold 16 liters of material and will absorb poisons from it. It may " -"have other properties that require discovery." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "aluminum foil wrap" -msgid_plural "aluminum foil wraps" -msgstr[0] "folia aluminiowa" -msgstr[1] "folia aluminiowa" -msgstr[2] "folia aluminiowa" -msgstr[3] "folia aluminiowa" - -#. ~ Description for aluminum foil wrap -#: lang/json/CONTAINER_from_json.py -msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." -msgstr "" -"Lekko pogięty arkusz folii aluminiowej używanej do pieczenia i gotowania." - -#: lang/json/CONTAINER_from_json.py -msgid "TEST gallon jug" -msgid_plural "TEST gallon jugs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST small waterskin" -msgid_plural "TEST small waterskins" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous capsule" -msgid_plural "gelatinous capsules" -msgstr[0] "żelatynowa kapsuła" -msgstr[1] "żelatynowe kapsuły" -msgstr[2] "żelatynowe kapsuły" -msgstr[3] "żelatynowe kapsuły" - -#. ~ Description for {'str': 'gelatinous capsule'} -#. ~ Description for {'str': 'gray cocoon'} -#. ~ Description for {'str': 'oozing pod'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"While the blob is very eager to be fed, it's not as enthusiastic about " -"giving up liquids. A few alterations are necessary." -msgstr "" -"Choć glut jest bardzo chętny by go karmić, to do oddawania płynów nie " -"podchodzi z entuzjazmem. Kilka poprawek będzie koniecznych." - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous tank" -msgid_plural "gelatinous tanks" -msgstr[0] "żelatynowy zbiornik" -msgstr[1] "żelatynowy zbiornik" -msgstr[2] "żelatynowy zbiornik" -msgstr[3] "żelatynowy zbiornik" - -#: lang/json/CONTAINER_from_json.py -msgid "gray cocoon" -msgid_plural "gray cocoons" -msgstr[0] "szary kokon" -msgstr[1] "szare kokony" -msgstr[2] "szare kokony" -msgstr[3] "szare kokony" - -#: lang/json/CONTAINER_from_json.py -msgid "gray tank" -msgid_plural "gray tanks" -msgstr[0] "szary zbiornik" -msgstr[1] "szary zbiornik" -msgstr[2] "szary zbiornik" -msgstr[3] "szary zbiornik" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing pod" -msgid_plural "oozing pods" -msgstr[0] "cieknący strąk" -msgstr[1] "cieknące strąki" -msgstr[2] "cieknące strąki" -msgstr[3] "cieknące strąki" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing tank" -msgid_plural "oozing tanks" -msgstr[0] "cieknący zbiornik" -msgstr[1] "cieknący zbiornik" -msgstr[2] "cieknący zbiornik" -msgstr[3] "cieknący zbiornik" - -#: lang/json/ENGINE_from_json.py -msgid "internal combustion engine" -msgid_plural "internal combustion engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/ENGINE_from_json.py -msgid "base diesel engine" -msgid_plural "base diesel engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/ENGINE_from_json.py -msgid "base gasoline engine" -msgid_plural "base gasoline engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/ENGINE_from_json.py -msgid "base steam engine" -msgid_plural "base steam engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/ENGINE_from_json.py -msgid "1-cylinder engine" -msgid_plural "1-cylinder engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': '1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A single-cylinder 4-stroke combustion engine." -msgstr "Jednocylindrowy, czterosuwowy silnik spalinowy." - -#: lang/json/ENGINE_from_json.py -msgid "large 1-cylinder engine" -msgid_plural "large 1-cylinder engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'large 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A powerful high-compression single-cylinder 4-stroke combustion engine." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "small 1-cylinder engine" -msgid_plural "small 1-cylinder engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'small 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "Mały jednocylindrowy, dwusuwowy silnik spalinowy." - -#: lang/json/ENGINE_from_json.py -msgid "Inline-4 engine" -msgid_plural "Inline-4 engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Inline-4 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "Mały, ale silny, czterocylindrowy silnik spalinowy." - -#: lang/json/ENGINE_from_json.py -msgid "I6 diesel engine" -msgid_plural "I6 diesel engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'I6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful straight-6 diesel engine." -msgstr "Silny sześciocylindrowy liniowy silnik diesla." - -#: lang/json/ENGINE_from_json.py -msgid "V-twin engine" -msgid_plural "V-twin engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'V-twin engine'} -#: lang/json/ENGINE_from_json.py -msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "Dwucylindrowy, czterosuwowy silnik spalinowy." - -#: lang/json/ENGINE_from_json.py -msgid "V6 engine" -msgid_plural "V6 engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'V6 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder combustion engine." -msgstr "Sześciocylindrowy silny silnik spalinowy." - -#: lang/json/ENGINE_from_json.py -msgid "V6 diesel engine" -msgid_plural "V6 diesel engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'V6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder diesel engine." -msgstr "Sześciocylindrowy silny silnik diesla." - -#: lang/json/ENGINE_from_json.py -msgid "V8 engine" -msgid_plural "V8 engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'V8 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "Duży i bardzo mocny 8-cylindrowy silnik spalinowy." - -#: lang/json/ENGINE_from_json.py -msgid "V8 diesel engine" -msgid_plural "V8 diesel engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'V8 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 8-cylinder diesel engine." -msgstr "Silny 8-cylindrowy silnik diesla." - -#: lang/json/ENGINE_from_json.py -msgid "V12 engine" -msgid_plural "V12 engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'V12 engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into high end " -"sports cars." -msgstr "" -"Ogromny i bardzo mocny 12-cylindrowy silnik, w który zaopatrywane są " -"zaawansowane samochody sportowe." - -#: lang/json/ENGINE_from_json.py -msgid "V12 diesel engine" -msgid_plural "V12 diesel engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'V12 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into heavy " -"trucks." -msgstr "" -"Ogromny i bardzo mocny 12-cylindrowy silnik, w który zwykle zaopatrywane są " -"ciężkie ciężarówki." - -#: lang/json/ENGINE_from_json.py -msgid "makeshift steam engine" -msgid_plural "makeshift steam engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'makeshift steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small, primitive, steam engine. An integrated boiler burns coal to heat " -"water into steam, driving a reciprocating shaft. A condenser recaptures the" -" water, making this a closed cycle system." -msgstr "" -"Mały, prymitywny silnik parowy. Zintegrowany kocioł spala węgiel by " -"podgrzewać wodę aż zacznie parować, napędzając tłok. Kondensor odzyskuje " -"wodę, tworząc zamknięty system obiegu." - -#: lang/json/ENGINE_from_json.py -msgid "small steam engine" -msgid_plural "small steam engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'small steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condenser recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Mały silnik parowy. Zintegrowany kocioł spala węgiel by podgrzewać wodę aż " -"zacznie parować, napędzając tłok. Kondensor odzyskuje wodę, tworząc " -"zamknięty system obiegu." - -#: lang/json/ENGINE_from_json.py -msgid "medium steam engine" -msgid_plural "medium steam engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'medium steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium-sized steam engine. An integrated boiler burns coal to heat water " -"into steam, driving a reciprocating shaft. A condenser recaptures the " -"water, making this a closed cycle system." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "1350 hp gas turbine engine" -msgid_plural "1350 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': '1350 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A gas turbine engine, usually used for military vehicles. Known for its " -"high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "1900 hp gas turbine engine" -msgid_plural "1900 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': '1900 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large gas turbine engine, usually used for military helicopters. Known " -"for its high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "6000 hp gas turbine engine" -msgid_plural "6000 hp gas turbine engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': '6000 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " -"high rate of fuel consumption." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "large steam engine" -msgid_plural "large steam engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'large steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Duży silnik parowy. Zintegrowany kocioł spala węgiel by podgrzewać wodę aż " -"zacznie parować, napędzając tłok. Kondensor odzyskuje wodę, tworząc " -"zamknięty system obiegu." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam engine" -msgid_plural "huge steam engines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'huge steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Ogromny silnik parowy. Zintegrowany kocioł spala węgiel by podgrzewać wodę " -"aż zacznie parować, napędzając tłok. Kondensor odzyskuje wodę, tworząc " -"zamknięty system obiegu." - -#: lang/json/ENGINE_from_json.py -msgid "small steam turbine" -msgid_plural "small steam turbines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'small steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Mała turbina parowa. Zintegrowany kocioł spala węgiel by podgrzewać wodę aż " -"zacznie parować, napędzając wibrującą turbinę. Kondensor odzyskuje wodę, " -"tworząc zamknięty system obiegu." - -#: lang/json/ENGINE_from_json.py -msgid "medium steam turbine" -msgid_plural "medium steam turbines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'medium steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium sized steam turbine. An integrated boiler burns coal to heat water" -" into steam, driving a spinning turbine. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Średnich rozmiarów turbina parowa. Zintegrowany kocioł spala węgiel by " -"podgrzewać wodę aż zacznie parować, napędzając wibrującą turbinę. Kondensor " -"odzyskuje wodę, tworząc zamknięty system obiegu." - -#: lang/json/ENGINE_from_json.py -msgid "large steam turbine" -msgid_plural "large steam turbines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'large steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Duża turbina parowa. Zintegrowany kocioł spala węgiel by podgrzewać wodę aż " -"zacznie parować, napędzając wibrującą turbinę. Kondensor odzyskuje wodę, " -"tworząc zamknięty system obiegu." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam turbine" -msgid_plural "huge steam turbines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'huge steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Ogromna turbina parowa. Zintegrowany kocioł spala węgiel by podgrzewać wodę " -"aż zacznie parować, napędzając wibrującą turbinę. Kondensor odzyskuje wodę, " -"tworząc zamknięty system obiegu." - -#: lang/json/GENERIC_from_json.py -msgid "fetid goop" -msgid_plural "fetid goops" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'fetid goop'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A foul smelling goop. It has a disgusting texture and a powerful smell that" -" overrides every other smell around it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "limestone shard" -msgid_plural "limestone shards" -msgstr[0] "odłamki wapienia" -msgstr[1] "odłamki wapienia" -msgstr[2] "odłamki wapienia" -msgstr[3] "odłamki wapienia" - -#. ~ Description for {'str': 'limestone shard'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" -" alkaline properties may yet find some use." -msgstr "" -"Mały odłamek wapienia. Dość kruchy i nieprzydatny jako broń, ale jego " -"alkaliczne właściwości mogą być użyteczne." - -#: lang/json/GENERIC_from_json.py -msgid "rock salt" -msgid_plural "rock salt" -msgstr[0] "sól kamienna" -msgstr[1] "sól kamienna" -msgstr[2] "sól kamienna" -msgstr[3] "sól kamienna" - -#. ~ Description for {'str_sp': 'rock salt'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of rock salt crystals. Could be refined into table salt." -msgstr "Garść kryształów soli kamiennej. Można przetworzyć w sól kuchenną." - -#: lang/json/GENERIC_from_json.py -msgid "rhodonite" -msgid_plural "rhodonite" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'rhodonite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of rhodonite. It has manganese dioxide covering and going through " -"it in veins, which can be obtained using a chisel." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "zincite" -msgid_plural "zincite" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'zincite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " -"reduction with a source of carbon." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "hickory root" -msgid_plural "hickory roots" -msgstr[0] "korzeń orzesznika" -msgstr[1] "korzeń orzesznika" -msgstr[2] "korzeń orzesznika" -msgstr[3] "korzeń orzesznika" - -#. ~ Description for {'str': 'hickory root'} -#: lang/json/GENERIC_from_json.py -msgid "A root from a hickory tree. It has an earthy smell." -msgstr "Korzeń drzewa orzesznika. Pachnie ziemią." - -#: lang/json/GENERIC_from_json.py -msgid "hickory nuts" -msgid_plural "hickory nuts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'hickory nuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hickory tree, still in their shell." -msgstr "" -"Garść surowych twardych orzechów z drzewa orzesznika, nadal w skorupach." - -#: lang/json/GENERIC_from_json.py -msgid "pecans" -msgid_plural "pecans" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'pecans'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pecan tree, still in their shell." -msgstr "Garść twardych orzechów pecan, wciąż w skorupce." - -#: lang/json/GENERIC_from_json.py -msgid "pistachios" -msgid_plural "pistachios" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'pistachios'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pistachio tree, still in their shell." -msgstr "" -"Garść surowych twardych orzechów z drzewa pistacjowego, nadal w skorupach." - -#: lang/json/GENERIC_from_json.py -msgid "almonds" -msgid_plural "almonds" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'almonds'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from an almond tree, still in their shell." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "peanuts" -msgid_plural "peanuts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'peanuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a peanut bush, still in their shell." -msgstr "" -"Garść surowych twardych orzechów z krzewu orzachy podziemnej rodzącej " -"orzeszki ziemne, nadal w skorupach." - -#: lang/json/GENERIC_from_json.py -msgid "hazelnuts" -msgid_plural "hazelnuts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'hazelnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hazelnut tree, still in their shell." -msgstr "Garść twardych orzechów laskowych, wciąż w skorupce." - -#: lang/json/GENERIC_from_json.py -msgid "chestnuts" -msgid_plural "chestnuts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'chestnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a chestnut tree, still in their shell." -msgstr "Garść twardych kasztanów, wciąż w skorupce." - -#: lang/json/GENERIC_from_json.py -msgid "walnuts" -msgid_plural "walnuts" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'walnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a walnut tree, still in their shell." -msgstr "Garść twardych orzechów włoskich, wciąż w skorupce." - -#: lang/json/GENERIC_from_json.py -msgid "steel grille" -msgid_plural "steel grilles" -msgstr[0] "stalowy grill" -msgstr[1] "stalowy grill" -msgstr[2] "stalowy grill" -msgstr[3] "stalowy grill" - -#. ~ Description for {'str': 'steel grille'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a metal grille. It can be used as a framework for making a chemical" -" catalyst." -msgstr "" -"To metalowy grill. Może być użyty jako struktura do produkcji chemicznego " -"katalizatora." - -#: lang/json/GENERIC_from_json.py -msgid "cobalt-60 pellet" -msgid_plural "cobalt-60 pellets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'cobalt-60 pellet'} -#: lang/json/GENERIC_from_json.py -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 "sandbag" -msgid_plural "sandbags" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'sandbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with sand. It can be used to construct simple " -"barricades." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "earthbag" -msgid_plural "earthbags" +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'earthbag'} +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': +#. 'small cardboard boxes of tea bags'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with soil. It can be used to construct simple " -"barricades." +msgid "A very small cardboard box with tea brand written on it." msgstr "" #: lang/json/GENERIC_from_json.py @@ -55187,6 +56352,14 @@ msgstr "" "Przyrząd przepowiadający przyszłość z lat 50. XX wieku. Rodzaj wsparcia " "moralnego. Nie pomyślałbyś, że będziesz tego potrzebował." +#: lang/json/GENERIC_from_json.py +msgid "deck of cards" +msgid_plural "decks of cards" +msgstr[0] "talia kart" +msgstr[1] "talie kart" +msgstr[2] "talie kart" +msgstr[3] "talii kart" + #. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py msgid "A deck of 52 playing cards." @@ -55226,6 +56399,179 @@ 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 "chess set" +msgid_plural "chess sets" +msgstr[0] "szachy" +msgstr[1] "szachy" +msgstr[2] "szachy" +msgstr[3] "szachy" + +#. ~ Description for {'str': 'chess set'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden box containing all the equipment needed to play a game of chess." +msgstr "Drewniane pudło zawierające wszystko co potrzeba do gry w szachy." + +#: lang/json/GENERIC_from_json.py +msgid "checkers set" +msgid_plural "checkers sets" +msgstr[0] "warcaby" +msgstr[1] "warcaby" +msgstr[2] "warcaby" +msgstr[3] "warcaby" + +#. ~ Description for {'str': 'checkers set'} +#: lang/json/GENERIC_from_json.py +msgid "A wooden box containing a set of round tokens used to play checkers." +msgstr "Drewniane pudło zawierające wszystko co potrzeba do gry w warcaby." + +#: lang/json/GENERIC_from_json.py +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" +msgstr[0] "talia kart Magia" +msgstr[1] "talie kart Magia" +msgstr[2] "talie kart Magia" +msgstr[3] "talie kart Magia" + +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of +#. Sorcery cards'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." +msgstr "" +"Talia kart do gry w \"Magię\". Każda karta ma zabawny obrazek jakiegoś " +"potwora." + +#: lang/json/GENERIC_from_json.py +msgid "Picturesque" +msgid_plural "sets of Picturesque" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where one draws an image, and the others attempt to guess what it is." +msgstr "Gra, w której rysuje się obrazek, a inni próbują zgadnąć, co to jest." + +#: lang/json/GENERIC_from_json.py +msgid "Capitalism" +msgid_plural "sets of Capitalism" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players traverse around the board buying property and swindling" +" their friends." +msgstr "" +"Gra, w której gracze przemierzają planszę kupując nieruchomości i przekupują" +" swoich przyjaciół." + +#: lang/json/GENERIC_from_json.py +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and +#. Bandits'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A roleplaying game set in the post-apocalypse, so you can pretend to survive" +" the apocalypse while surviving the apocalypse." +msgstr "" +"Gra fabularna osadzona w post-apokalipsie. Możesz więc udawać, że przeżyłeś " +"apokalipsę, w trakcie przeżywania apokalipsy." + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of fantasy creatures." +msgstr "" +"Gra strategiczna z zestawem maleńkich figurek fantastycznych stworzeń." + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of +#. Battlehammer 20k'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." +msgstr "" +"Gra strategiczna z zestawem maleńkich figurek kosmitów i groteskowych " +"kosmicznych marines." + +#: lang/json/GENERIC_from_json.py +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of +#. Settlers of the Ranch'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game where players build settlements and trade for supplies." +msgstr "Gra strategiczna, w której gracze budują osady i handlują ze sobą." + +#: lang/json/GENERIC_from_json.py +msgid "Warships" +msgid_plural "sets of Warships" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players try to guess where the opponent placed their ships on " +"the board." +msgstr "" +"Gra, w której gracze próbują odgadnąć, gdzie przeciwnik umieścił swoje " +"statki na planszy." + +#: lang/json/GENERIC_from_json.py +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder +#. Mystery'} +#: lang/json/GENERIC_from_json.py +msgid "A game where players try to figure out who murdered the butler." +msgstr "Gra, w której gracze próbują dowiedzieć się, kto zamordował lokaja." + #: lang/json/GENERIC_from_json.py msgid "animal" msgid_plural "none" @@ -56131,7 +57477,6 @@ msgstr[2] "zepsuty okobot" msgstr[3] "zepsuty okobot" #. ~ Description for {'str': 'broken eyebot'} -#. ~ Description for broken eyebot #: lang/json/GENERIC_from_json.py msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " @@ -56267,7 +57612,6 @@ msgstr[2] "zepsuty bot górniczy" msgstr[3] "zepsuty bot górniczy" #. ~ Description for {'str': 'broken miner bot'} -#. ~ Description for broken miner bot #: lang/json/GENERIC_from_json.py msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " @@ -56349,8 +57693,6 @@ msgstr[2] "zepsuty młynek" msgstr[3] "zepsuty młynek" #. ~ Description for {'str': 'broken manhack'} -#. ~ Description for broken hack -#. ~ Description for broken manhack #: lang/json/GENERIC_from_json.py msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " @@ -56368,7 +57710,6 @@ msgstr[2] "zepsuty młynek-granat" msgstr[3] "zepsuty młynek-granat" #. ~ Description for {'str': 'broken grenade hack'} -#. ~ Description for broken grenade hack #: lang/json/GENERIC_from_json.py msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " @@ -56386,7 +57727,6 @@ msgstr[2] "zepsuty młynek miniatomówka" msgstr[3] "zepsuty młynek miniatomówka" #. ~ Description for {'str': 'broken mininuke hack'} -#. ~ Description for broken mininuke hack #: lang/json/GENERIC_from_json.py msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " @@ -56404,7 +57744,6 @@ msgstr[2] "zepsuty młynek gazem łzawiącym" msgstr[3] "zepsuty młynek gazem łzawiącym" #. ~ Description for {'str': 'broken tear gas hack'} -#. ~ Description for broken tear gas hack #: lang/json/GENERIC_from_json.py msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " @@ -56422,7 +57761,6 @@ msgstr[2] "zepsuty młynek EMP" msgstr[3] "zepsuty młynek EMP" #. ~ Description for {'str': 'broken EMP hack'} -#. ~ Description for broken EMP hack #: lang/json/GENERIC_from_json.py msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " @@ -56440,7 +57778,6 @@ msgstr[2] "zepsuty młynek ogłuszający" msgstr[3] "zepsuty młynek ogłuszający" #. ~ Description for {'str': 'broken flashbang hack'} -#. ~ Description for broken flashbang hack #: lang/json/GENERIC_from_json.py msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " @@ -56458,7 +57795,6 @@ msgstr[2] "zepsuty młynek C-4" msgstr[3] "zepsuty młynek C-4" #. ~ Description for {'str': 'broken C-4 hack'} -#. ~ Description for broken C-4 hack #: lang/json/GENERIC_from_json.py msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " @@ -56467,6 +57803,21 @@ msgstr "" "Zepsuty młynek C-4. O wiele mniej groźny teraz, gdy leży bez ruchu na ziemi." " Można wypruć z niego części." +#: lang/json/GENERIC_from_json.py +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'broken loudspeaker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "processor board" msgid_plural "processor boards" @@ -57798,23 +59149,6 @@ msgstr "" "Średniego rozmiaru arkusz neoprenu. Można go wykorzystać do produkcji " "lekkich i rozciągliwych ubrań." -#: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" -msgstr[0] "Działo Laserowe TX-5LR" -msgstr[1] "Działo Laserowe TX-5LR" -msgstr[2] "Działo Laserowe TX-5LR" -msgstr[3] "Działo Laserowe TX-5LR" - -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." -msgstr "" -"Działo laserowe wymontowane z lufy wieżyczki laserowej TX-5LR Cerberus. " -"Użyteczne jako samodzielna broń, bez potrzebnych części." - #: lang/json/GENERIC_from_json.py msgid "light bulb" msgid_plural "light bulbs" @@ -58073,14 +59407,6 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "zepsuta wieżyczka laserowa" -msgstr[1] "zepsuta wieżyczka laserowa" -msgstr[2] "zepsuta wieżyczka laserowa" -msgstr[3] "zepsuta wieżyczka laserowa" - #: lang/json/GENERIC_from_json.py msgid "broken secubot" msgid_plural "broken secubots" @@ -58431,14 +59757,6 @@ msgstr "" "Pąk tulipana. Zawiera trochę substancji powszechnie wydzielanych przez kwiat" " tulipana." -#: lang/json/GENERIC_from_json.py -msgid "spurge" -msgid_plural "spurges" -msgstr[0] "wilczomlecz" -msgstr[1] "wilczomlecze" -msgstr[2] "wilczomleczy" -msgstr[3] "wilczomlecze" - #. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." @@ -58698,7 +60016,6 @@ msgstr[2] "zepsuty tribot" msgstr[3] "zepsuty tribot" #. ~ Description for {'str': 'broken tribot'} -#. ~ Description for broken tribot #: lang/json/GENERIC_from_json.py msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" @@ -58837,6 +60154,31 @@ msgstr "" "kruchą. Wygląda też na to, że nie będzie w stanie utrzymać dodatkowej " "warstwy ochronnego pokrycia." +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "zepsuta wieżyczka laserowa" +msgstr[1] "zepsuta wieżyczka laserowa" +msgstr[2] "zepsuta wieżyczka laserowa" +msgstr[3] "zepsuta wieżyczka laserowa" + +#: lang/json/GENERIC_from_json.py +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" +msgstr[0] "Działo Laserowe TX-5LR" +msgstr[1] "Działo Laserowe TX-5LR" +msgstr[2] "Działo Laserowe TX-5LR" +msgstr[3] "Działo Laserowe TX-5LR" + +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." +msgstr "" +"Działo laserowe wymontowane z lufy wieżyczki laserowej TX-5LR Cerberus. " +"Użyteczne jako samodzielna broń, bez potrzebnych części." + #: lang/json/GENERIC_from_json.py msgid "module template" msgid_plural "module templates" @@ -59266,6 +60608,14 @@ msgid "" "to salvage and reuse these components without them." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "martial art manual" +msgid_plural "martial art manuals" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lang/json/GENERIC_from_json.py msgid "abstract map" msgid_plural "abstract maps" @@ -59837,14 +61187,6 @@ msgid "" "without shield." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - #: lang/json/GENERIC_from_json.py msgid "juvenile sourdough starter" msgid_plural "juvenile sourdough starters" @@ -59942,6 +61284,21 @@ msgstr "" "Kość człowieka. Można jej użyć do stworzenia czegoś, jeśli czujesz się " "wystarczająco upiornie." +#: lang/json/GENERIC_from_json.py +msgid "demihuman bone" +msgid_plural "demihuman bones" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'demihuman bone'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "first aid kit" msgid_plural "first aid kits" @@ -60035,14 +61392,11 @@ msgstr[3] "MRE - Fasola z Chili" #. Beans'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." msgstr "" -"Gotowe do spożycia racje żywnościowe z daniem głównym - fasolą z chili i " -"wszystkim czego potrzebuje głodny żołnierz. Zawartość zacznie się psuć po " -"wyciągnięciu z tego szczelnego opakowania. Aktywuj lub rozłóż by dostać się " -"do składników." #: lang/json/GENERIC_from_json.py msgid "MRE - BBQ Beef" @@ -60271,6 +61625,41 @@ msgstr "" "się psuć po wyciągnięciu z tego szczelnego opakowania. Aktywuj lub rozłóż by" " dostać się do składników." +#: lang/json/GENERIC_from_json.py +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - +#. Spinach Fettuccine'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything" +" a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - +#. Ratatouille'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" msgid_plural "MREs - Cheese Tortellini" @@ -61972,6 +63361,19 @@ msgid "" "looks almost like glass." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "plastikowa miska" +msgstr[1] "plastikowa miska" +msgstr[2] "plastikowa miska" +msgstr[3] "plastikowa miska" + +#. ~ Description for {'str': 'plastic bowl'} +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "kiddie bowl" msgid_plural "kiddie bowls" @@ -62199,6 +63601,8 @@ msgstr[3] "plastikowych słomek" #: lang/json/GENERIC_from_json.py msgid "A plastic straw, for drinking things and making litter" msgstr "" +"Plastikowa rurka. Zazwyczaj przeznaczona do picia przez nią napoi, i " +"tworzenia gór śmieci." #: lang/json/GENERIC_from_json.py msgid "corkscrew" @@ -62213,6 +63617,8 @@ msgstr[3] "" msgid "" "Many a pleasant date has been ruined by forgetting this important tool." msgstr "" +"Wiele przyjemnych spotkań zostało zrujnowanych przez brak tego ważnego " +"narzędzia." #: lang/json/GENERIC_from_json.py msgid "vegetable peeler" @@ -62228,6 +63634,8 @@ msgid "" "This is a simple tool for peeling the outer skin off fruit and veggies " "without stabbing yourself." msgstr "" +"Nieskomplikowane narzędzie do obierania warzyw i owoców ze skórki bez " +"strachu o własne palce." #: lang/json/GENERIC_from_json.py msgid "bottle opener" @@ -62241,44 +63649,50 @@ msgstr[3] "" #: lang/json/GENERIC_from_json.py msgid "A simple lever for popping open bottles." msgstr "" +"Proste narzędzie korzystające z potęgi dźwigni do otwierania butelek z " +"kapslami." #: lang/json/GENERIC_from_json.py msgid "" "This bottle opener is shaped like a zombie head, the mouth pops open the " "bottle." msgstr "" +"Ten otwieracz jest w kształcie głowy zombie. Do otwierania butelek używa się" +" ust zombie." #: lang/json/GENERIC_from_json.py msgid "This bottle opener is shaped like a lightsaber." -msgstr "" +msgstr "Ten otwieracz jest w kształcie miecza świetlnego." #: lang/json/GENERIC_from_json.py msgid "This bottle opener is shaped like a revolver." -msgstr "" +msgstr "Ten otwieracz jest w kształcie rewolwera." #: 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 "" +msgstr "Ten otwieracz ma wygrawerowane słowa \"Umrę zanim oddam ci moje piwo\"." #: lang/json/GENERIC_from_json.py msgid "" "This bottle opener is emblazoned with a logo for an HVAC contracting " "company." msgstr "" +"Ten otwieracz jest opatrzony logiem firmy zajmującej się ciepłownictwem, " +"gazownictwem, ogrzewaniem i wentylacją." #: lang/json/GENERIC_from_json.py msgid "This bottle opener reads 'Corporate Team Building Exercise 1999'." -msgstr "" +msgstr "Na tym otwieraczu jest napisane: \"Zajęcia z Budowania Zespołu 1999\"" #: lang/json/GENERIC_from_json.py msgid "This bottle opener reads 'I'd rather be drinking whiskey'." -msgstr "" +msgstr "Na tym otwieraczu jest napisane \"Wolałbym pić whiskey\"" #: lang/json/GENERIC_from_json.py msgid "This bottle opener is shaped like a phaser." -msgstr "" +msgstr "Ten otwieracz jest w kształcie pistoleta laserowego." #: lang/json/GENERIC_from_json.py msgid "This novelty bottle opener is designed to look like a hobo clown." @@ -62298,6 +63712,8 @@ 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 "" +"Bękart hybryda łyżki i widelca. Posiada funkcje i zastosowanie obu, w " +"jeszcze bardziej denerwującej formie." #: lang/json/GENERIC_from_json.py msgid "foon" @@ -62326,6 +63742,9 @@ msgid "" "One of the most popular eating utensils in the world. Does double duty as a" " way of dealing with especially fragile vampires." msgstr "" +"Jeden z najbardziej popularnych przyrządów do jedzenia na świecie. Ma " +"również dodatkową funkcję radzenia sobie ze szczególnie wrażliwymi " +"wampirami." #: lang/json/GENERIC_from_json.py msgid "ladle" @@ -62338,7 +63757,7 @@ msgstr[3] "" #. ~ Description for {'str': 'ladle'} #: lang/json/GENERIC_from_json.py msgid "When you need to scoop some soup, this is the utensil for you." -msgstr "" +msgstr "Jeśli chcesz zebrać nieco zupy, to jest narzędzie dla ciebie." #: lang/json/GENERIC_from_json.py msgid "whisk" @@ -62353,6 +63772,8 @@ msgstr[3] "" msgid "" "Also known as a 'wire whip', this is a less effective weapon than it sounds." msgstr "" +"Najzwyklejsza trzepaczka wykonana z kawałków zawiniętego drutu spojonych " +"rączką. Nadaje się jako broń przeciw białkom jajka." #: lang/json/GENERIC_from_json.py msgid "potato masher" @@ -62368,6 +63789,8 @@ msgid "" "This tool can mash potatoes and soft root vegetables; it cannot do the " "twist." msgstr "" +"To narzędzie może zrobić pastę z ziemniaków i podobnych im miękkich warzyw. " +"Nie działa na odwrót/" #: lang/json/GENERIC_from_json.py msgid "garlic press" @@ -62381,6 +63804,7 @@ msgstr[3] "" #: lang/json/GENERIC_from_json.py msgid "This tool can squash a clove or two of garlic into a fine paste." msgstr "" +"To narzędzie może zmiażdżyć ząbek czy dwa ząbki czosnku na klarowną pastę." #: lang/json/GENERIC_from_json.py msgid "can opener" @@ -62394,6 +63818,8 @@ msgstr[3] "" #: lang/json/GENERIC_from_json.py msgid "It's not hard to open cans without this, but it's way messier." msgstr "" +"Da się otworzyć puszkę bez tego narzędzia, chociaż jest to nieporównywalnie " +"trudniejsze." #: lang/json/GENERIC_from_json.py msgid "carving fork" @@ -62409,6 +63835,8 @@ 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 "" +"Wygląda jak małe widły albo jak bardzo duży widelec. Służy głównie do " +"przytrzymywania mięsa podczas krojenia go na kawałki." #: lang/json/GENERIC_from_json.py msgid "spatula" @@ -62422,7 +63850,7 @@ msgstr[3] "" #: lang/json/GENERIC_from_json.py msgid "" "A rubber scraper for making sure you get every last scrap of cookie dough." -msgstr "" +msgstr "Gumowa szpatułka, służy głównie do wygrzebywania ciasta z miski." #: lang/json/GENERIC_from_json.py msgid "rolling pin" @@ -62439,6 +63867,9 @@ msgid "" " the ends. This timeless kitchen tool also doubles as a very effective " "club." msgstr "" +"Gruby kawałek drewna w kształcie walca. Wygładzony, z rączkami u obu " +"podstaw, ponadczasowe narzędzie kuchenne które w czasach Kataklizmu sprawi " +"się również do bicia nieumarłych po łbach." #: lang/json/GENERIC_from_json.py msgid "pot" @@ -62465,7 +63896,7 @@ msgstr[3] "żeliwnych garnków" #: lang/json/GENERIC_from_json.py msgid "" "This hefty black pot is made from cast iron and coated in a sturdy enamel." -msgstr "" +msgstr "Solidny, ciężki garnek odlewany z żelaza i pokryty emalią." #: lang/json/GENERIC_from_json.py msgid "copper pot" @@ -62498,6 +63929,8 @@ msgid "" "A ceramic pot made for both cooking and serving, particularly one-pot " "dinners." msgstr "" +"Ceramiczne naczynie przeznaczone głównie do gotowania i serwowania " +"jednogarnkowych dań." #: lang/json/GENERIC_from_json.py msgid "stock pot" @@ -62513,6 +63946,8 @@ msgid "" "A large pot for making soup stocks. You could fit a whole turkey in there, " "with a bit of shoving." msgstr "" +"Duży garnek przeznaczony do gotowania wywarów. Jeśli byś się postarał, " +"mógłbyś tu zmieścić całego indyka." #: lang/json/GENERIC_from_json.py msgid "canning pot" @@ -62565,7 +64000,7 @@ msgstr[3] "stalowych patelni" #: lang/json/GENERIC_from_json.py msgid "" "A steel frying pan. Makes a decent melee weapon, and is used for cooking." -msgstr "" +msgstr "Stalowa patelnia. Może posłużyć za niezłą broń białą." #: lang/json/GENERIC_from_json.py msgid "copper frying pan" @@ -62581,6 +64016,7 @@ msgid "" "A copper frying pan, coated in a thin layer of tin. Makes a decent melee " "weapon, and is used for cooking." msgstr "" +"Miedziana patelnia pokryta cienką warstwą cyny. Całkiem niezła broń biała." #: lang/json/GENERIC_from_json.py msgid "makeshift pot" @@ -62629,7 +64065,7 @@ msgstr[3] "" #. ~ Description for {'str': 'kettle'} #: lang/json/GENERIC_from_json.py msgid "A stovetop kettle for boiling water." -msgstr "" +msgstr "Czajnik na kuchnię służący do gotowania wody." #: lang/json/GENERIC_from_json.py msgid "mesh colander" @@ -62645,6 +64081,8 @@ msgid "" "A stainless steel mesh colander, for washing rice, vegetables or straining " "liquid off from noodles or other foods." msgstr "" +"Durszlak z siatki ze stali nierdzewnej. Można w nim myć ryż, warzywa, albo " +"odsączać wodę z makaronów albo innego jedzenia." #: lang/json/GENERIC_from_json.py msgid "splatter guard" @@ -62675,6 +64113,8 @@ msgid "" "A large flat piece of wood for chopping vegetables on without ruining your " "knife or your countertop." msgstr "" +"Duży, płaski kawałek drewna, na którym z dużą wygodą kroi się warzywa bez " +"niszczenia blatu ostrzem noża." #: lang/json/GENERIC_from_json.py msgid "meal tray" @@ -62690,6 +64130,8 @@ msgid "" "A stainless steel tray used for serving food in cafeterias, mess halls, or " "similar places." msgstr "" +"Taca ze stali nierdzewnej. Służy głównie do serwowania jedzenia w " +"kafeteriach, jadłodajniach, i tym podobnych miejscach." #: lang/json/GENERIC_from_json.py msgid "XLR cable" @@ -62799,6 +64241,21 @@ msgid "" "placed on the ground, this can support one guitar in an upright position." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "plectrum" +msgid_plural "plectra" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "mixer" msgid_plural "mixers" @@ -64214,6 +65671,7 @@ msgstr[2] "zaostrzony kij" msgstr[3] "zaostrzony kij" #. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py msgid "A simple wood pole with one end sharpened." msgstr "Prosty kij drewniany z zaostrzonym końcem." @@ -64414,6 +65872,14 @@ msgstr "" "Ten solidny stalowy pręt z ostrzem miecza na końcu jest równie dobry w " "cięciu jak i w pchnięciach." +#: lang/json/GENERIC_from_json.py +msgid "wooden javelin" +msgid_plural "wooden javelins" +msgstr[0] "drewniany oszczep" +msgstr[1] "drewniany oszczep" +msgstr[2] "drewniany oszczep" +msgstr[3] "drewniany oszczep" + #. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -64423,6 +65889,14 @@ msgstr "" "Utwardzona ogniem drewniana włócznia zaostrzona w szpic. Uchwyt wydrążono i " "pokryto dla lepszego chwytu." +#: lang/json/GENERIC_from_json.py +msgid "iron javelin" +msgid_plural "iron javelins" +msgstr[0] "żelazny oszczep" +msgstr[1] "żelazny oszczep" +msgstr[2] "żelazny oszczep" +msgstr[3] "żelazny oszczep" + #. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -65576,6 +67050,12 @@ msgid "" "This is intended to be worn in a ballistic vest and can withstand several " "high energy rifle rounds before breaking." msgstr "" +"Wieloboczna ceramiczna płyta balistyczna z nieznacznie wklęsłym profilem. " +"Wewnętrzna powierzchnia jest pokryta z Polietylenem o Wysokiej Gęstości i " +"oznaczona jako \"GÓRA\", podczas gdy zewnętrzna strona oznaczona jest " +"napisem \"STRONA UDERZENIA\". Jest przeznaczona do ubierania w kamizelce " +"kuloodpornej i jest w stanie wytrzymać kilka pocisków dużego kalibru zanim " +"rozpadnie się na kawałki." #: lang/json/GENERIC_from_json.py msgid "ESBI ballistic plate" @@ -65593,6 +67073,10 @@ msgid "" "worn in the sides of a plate carrier and can withstand several high energy " "rifle rounds before breaking." msgstr "" +"Wieloboczna ceramiczna płyta balistyczna z nieznacznie wklęsłym profilem. " +"Zewnętrzna strona oznaczona jest napisem \"STRONA UDERZENIA\". Jest " +"przeznaczona do ubierania na bokach kamizelki kuloodpornej i jest w stanie " +"wytrzymać kilka pocisków dużego kalibru zanim rozpadnie się na kawałki." #: lang/json/GENERIC_from_json.py msgid "grenade launcher buttstock" @@ -65677,34 +67161,36 @@ msgstr "" "Kawałek rozszczepionego drewna, może być użyty jako rożen lub na podpałkę." #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" -msgstr[0] "gruby konar" -msgstr[1] "gruby konar" -msgstr[2] "gruby konar" -msgstr[3] "gruby konar" +msgid "stout branch" +msgid_plural "stout branches" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." -msgstr "Twardy, ciężki kij. Przyzwoita broń biała." +msgid "" +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" -msgstr[0] "długi kij" -msgstr[1] "długie kije" -msgstr[2] "długie kije" -msgstr[3] "długie kije" +msgid "long stout branch" +msgid_plural "long stout branches" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout +#. branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." msgstr "" -"Długi kij. Przyzwoita broń, i można go przełamać w dwa patyki do wytworzenia" -" czegoś." #: lang/json/GENERIC_from_json.py msgid "long pole" @@ -65730,7 +67216,6 @@ msgstr[2] "deski" msgstr[3] "deski" #. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" @@ -65800,6 +67285,34 @@ msgstr "" "nadaje się w pracach konstrukcyjnych. Jednakże do prac mniejszego kalibru " "lepiej nadawałaby się docięta do mniejszego rozmiaru." +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "stalowa butelka" +msgstr[1] "stalowa butelka" +msgstr[2] "stalowa butelka" +msgstr[3] "stalowa butelka" + +#. ~ Description for {'str': 'steel bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Butelka z nierdzewnej stali, która pomieści 750 ml płynu." + +#: lang/json/GENERIC_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "składana plastikowa butelka" +msgstr[1] "składana plastikowa butelka" +msgstr[2] "składana plastikowa butelka" +msgstr[3] "składana plastikowa butelka" + +#. ~ Description for {'str': 'foldable plastic bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Elastyczna plastikowa butelka dla łatwego składowania, mieści pół litra " +"płynu." + #: lang/json/GENERIC_from_json.py msgid "atomic coffee maker" msgid_plural "atomic coffee makers" @@ -66620,6 +68133,24 @@ msgid "" " cover is closed. Use it to open the cover and show the light." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" +msgstr[0] "zestaw do pobierania krwi" +msgstr[1] "zestaw do pobierania krwi" +msgstr[2] "zestaw do pobierania krwi" +msgstr[3] "zestaw do pobierania krwi" + +#. ~ Description for {'str': 'blood draw kit'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." +msgstr "" +"Zestaw do pobierania krwi z próbówką na próbkę krwi. Użyj, by pobrać krew " +"swoją lub z ciała nad którym stoisz." + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" msgid_plural "charcoal kilns" @@ -67488,7 +69019,6 @@ msgid "A set of small monitors. Required to view cameras' output." msgstr "Zestaw małych monitorów potrzebny do wyświetlania widoku z kamer." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "security camera" msgid_plural "security cameras" msgstr[0] "kamera bezpieczeństwa" @@ -67578,7 +69108,6 @@ msgstr[2] "elektroniczny układ kontroli" msgstr[3] "elektroniczny układ kontroli" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "drive by wire controls" msgid_plural "sets of drive by wire controls" msgstr[0] "elektroniczny układ sterowania" @@ -68361,7 +69890,6 @@ msgstr "" "nierozważne." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "stereo system" msgid_plural "stereo systems" msgstr[0] "system stereo" @@ -68784,7 +70312,6 @@ msgid "A leather-covered seat designed to be straddled." msgstr "Pokryte skórą siedzenie na którym siedzi się okrakiem." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "solar panel" msgid_plural "solar panels" msgstr[0] "ogniwo słoneczne" @@ -68823,7 +70350,6 @@ msgstr "" "panelu. Użyteczne w pojazdach." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "upgraded solar panel" msgid_plural "upgraded solar panels" msgstr[0] "ulepszone ogniwo słoneczne" @@ -69439,6 +70965,22 @@ msgid "" "sequences embossed on them and RFID chips inside." msgstr "" +#: lang/json/GENERIC_from_json.py +msgctxt "container" +msgid "basin" +msgid_plural "basins" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." +msgstr "" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" msgid_plural "vehicle refrigerators" @@ -69568,6 +71110,19 @@ msgstr[3] "atomowe pellety paliwowe" msgid "A small pellet of fissile material. Handle carefully." msgstr "Mały pellet rozszczepialnego materiału. Operuj nim ostrożnie." +#: lang/json/GENERIC_from_json.py +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" +msgstr[0] "beczka na niebezpieczne odpady" +msgstr[1] "beczki na niebezpieczne odpady" +msgstr[2] "beczki na niebezpieczne odpady" +msgstr[3] "beczki na niebezpieczne odpady" + +#. ~ Description for {'str': 'hazardous waste drum'} +#: lang/json/GENERIC_from_json.py +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "Żółta beczka służąca do przechowywania niebezpiecznych substancji." + #: lang/json/GENERIC_from_json.py msgid "folded atomic butter churn" msgid_plural "folded atomic butter churns" @@ -69620,6 +71175,21 @@ msgstr "" "Implant dentystyczny zrobiony z czystego tytanu, używanego do uzupełnienia " "ubytków ze względu na swoją wytrzymałość i biokompatybilność." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'hauling space'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to" +" create a very large amount of space for transporting goods." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" msgid_plural "hydraulic gauntlets" @@ -70089,21 +71659,6 @@ msgid "" "parts." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to" -" create a very large amount of space for transporting goods." -msgstr "" - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "ultralight frame" msgid_plural "ultralight frames" @@ -70133,893 +71688,492 @@ msgid "" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "withered plant bundle" -msgid_plural "withered plant bundles" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for withered plant bundle -#: lang/json/GENERIC_from_json.py -msgid "A bundle of plant matter" -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "CRIT hatchet" -msgid_plural "CRIT hatchets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for CRIT hatchet -#: lang/json/GENERIC_from_json.py -msgid "" -"An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Blade-work manual" -msgid_plural "C.R.I.T Blade-work manuals" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'C.R.I.T Blade-work manual'} -#: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Blade-work." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Enforcement manual" -msgid_plural "C.R.I.T Enforcement manuals" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'C.R.I.T Enforcement manual'} -#: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Enforcer melee." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "C.R.I.T CQB manual" -msgid_plural "C.R.I.T CQB manuals" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'C.R.I.T CQB manual'} -#: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T general CQB." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken emissary" -msgid_plural "broken emissaries" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'broken emissary', 'str_pl': 'broken emissaries'} -#: lang/json/GENERIC_from_json.py -msgid "" -"The massive body of a collapsed emissary. Still a bit intimidating, perhaps" -" knowing the damage it can cause. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken emissary of war" -msgid_plural "broken emissaries of war" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'broken emissary of war', 'str_pl': 'broken -#. emissaries of war'} -#: lang/json/GENERIC_from_json.py -msgid "" -"The massive body of a collapsed emissary of war. Still a bit intimidating, " -"perhaps knowing the damage it can cause. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken emissary of flame" -msgid_plural "broken emissaries of flame" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'broken emissary of flame', 'str_pl': 'broken -#. emissaries of flame'} -#: lang/json/GENERIC_from_json.py -msgid "" -"The massive body of a collapsed emissary of flame. Still a bit " -"intimidating, perhaps knowing the damage it can cause. Could be gutted for " -"parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken surveillance drone" -msgid_plural "broken surveillance drones" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'broken surveillance drone'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken drone. Much less threatening now that it isn't shining its light " -"everywhere. Could be gutted for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken seeker drone" -msgid_plural "broken seeker drones" +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'broken seeker drone'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken drone. Much less threatening now that it isn't prodding you with " -"its tools. Could be gutted for parts." -msgstr "" - -#. ~ Description for {'str': 'toilet brush', 'str_pl': 'toilet brushes'} -#: lang/json/GENERIC_from_json.py -msgid "" -"The aliens that have invaded Earth cannot be intimidated or humiliated - at " -"least not meaningfully - so this stiff brush is only useful for scouring " -"toilet bowls." -msgstr "" - -#. ~ Description for basketball -#: lang/json/GENERIC_from_json.py -msgid "A high-quality indoor basketball. You could throw it at your enemies." -msgstr "" - -#. ~ Description for {'str': 'newspaper page'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A single sheet of newspaper broadsheet. Most of the information on there is" -" terribly trivial, or out of date, but one thing catches your eye briefly - " -"some things from before the Cataclysm, and some even after." -msgstr "" - -#. ~ Description for {'str': 'reinforced solar panel'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A solar panel that has been covered with a pane of reinforced glass to " -"protect the delicate solar cells from aliens or errant baseballs. The glass" -" causes this panel to produce slightly less power than a normal panel. " -"Useful for a vehicle." -msgstr "" - -#. ~ Description for {'str': 'upgraded reinforced solar panel'} +#. ~ Description for {'str': 'vehicle shelving'} #: lang/json/GENERIC_from_json.py msgid "" -"An upgraded solar panel that has been covered with a pane of reinforced " -"glass to protect the delicate solar cells from aliens or errant baseballs. " -"The glass causes this panel to produce slightly less power than a normal " -"upgraded panel. Useful for a vehicle." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "6.54x42mm casing" -msgid_plural "6.54x42mm casings" -msgstr[0] "łuska 6.54x42mm" -msgstr[1] "łuski 6.54x42mm" -msgstr[2] "łuski 6.54x42mm" -msgstr[3] "łuski 6.54x42mm" - -#. ~ Description for 6.54x42mm casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 6.54x42 round." -msgstr "Pusta łuska z naboju 6.54x42mm." - -#: lang/json/GENERIC_from_json.py -msgid "tiny pistol casing" -msgid_plural "tiny pistol casings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for tiny pistol casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a tiny pistol round." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "pistol casing" -msgid_plural "pistol casings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'pistol casing'} -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a standard pistol round." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "magnum pistol casing" -msgid_plural "magnum pistol casings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'magnum pistol casing'} -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a magnum pistol round." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "rifle casing" -msgid_plural "rifle casings" -msgstr[0] "łuska amunicji do karabinów" -msgstr[1] "łuska amunicji do karabinów" -msgstr[2] "łuska amunicji do karabinów" -msgstr[3] "łuska amunicji do karabinów" - -#. ~ Description for {'str': 'rifle casing'} -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a rifle round." -msgstr "Pusta łuska amunicji do karabinów." - -#: lang/json/GENERIC_from_json.py -msgid "huge rifle casing" -msgid_plural "huge rifle casings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'huge rifle casing'} -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a huge rifle round." +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "shotshell hull" -msgid_plural "shotshell hulls" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" +msgstr[0] "zestaw paneli słonecznych" +msgstr[1] "zestaw paneli słonecznych" +msgstr[2] "zestaw paneli słonecznych" +msgstr[3] "zestaw paneli słonecznych" -#. ~ Description for shotshell hull -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"A shotshell's casing, a plastic tube with a brass casehead, commonly " -"referred to as a hull." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "grenade casing" -msgid_plural "grenade casings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'grenade casing'} -#: lang/json/GENERIC_from_json.py -msgid "A large casing from a grenade round." +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires" +" a jumper cable or similar to pull power from." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "rifle belt linkage" -msgid_plural "rifle belt linkages" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/GENERIC_from_json.py -msgid "grenade belt linkage" -msgid_plural "grenade belt linkages" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/GENERIC_from_json.py -msgid "heavy machinegun belt linkage" -msgid_plural "heavy machinegun belt linkages" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken CROWS II" -msgid_plural "broken CROWS IIs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken CROWS II Heavy" -msgid_plural "broken CROWS II Heavys" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken launcher TALON UGV" -msgid_plural "broken launcher TALON UGVs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken rifle TALON UGV" -msgid_plural "broken rifle TALON UGVs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing)" -msgid_plural "garden pots (growing)" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (growing)', 'str_pl': 'garden pots -#. (growing)'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"A garden pot growing some tasty, unnameable plants. You shouldn't see this " -"item." +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "garden pot (grown)" -msgid_plural "garden pots (grown)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" +msgstr[0] "ulepszony zestaw paneli słonecznych" +msgstr[1] "ulepszony zestaw paneli słonecznych" +msgstr[2] "ulepszony zestaw paneli słonecznych" +msgstr[3] "ulepszony zestaw paneli słonecznych" -#. ~ Description for {'str': 'garden pot (grown)', 'str_pl': 'garden pots -#. (grown)'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"A garden pot with some ripe, unnameable plants. You shouldn't see this " -"item." +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing tomato)" -msgid_plural "garden pots (growing tomatoes)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Use action msg for {'str': 'garden pot (growing tomato)', 'str_pl': -#. 'garden pots (growing tomatoes)'}. -#: lang/json/GENERIC_from_json.py -msgid "The tomatoes are ready to harvest!" -msgstr "Pomidory są gotowe do zbioru!" - -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing tomato)', -#. 'str_pl': 'garden pots (growing tomatoes)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing wheat)', -#. 'str_pl': 'garden pots (growing wheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing hops)', -#. 'str_pl': 'garden pots (growing hops)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing buckwheat)', -#. 'str_pl': 'garden pots (growing buckwheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing broccoli)', -#. 'str_pl': 'garden pots (growing broccoli)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing oats)', -#. 'str_pl': 'garden pots (growing oats)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing barley)', -#. 'str_pl': 'garden pots (growing barley)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing carrot)', -#. 'str_pl': 'garden pots (growing carrots)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cotton)', -#. 'str_pl': 'garden pots (growing cotton)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cabbage)', -#. 'str_pl': 'garden pots (growing cabbage)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cucumber)', -#. 'str_pl': 'garden pots (growing cucumber)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing garlic)', -#. 'str_pl': 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "It isn't done growing yet." -msgstr "Jeszcze nie skończyło rosnąć." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" +msgstr[0] "ulepszone wzmocnione panele słoneczne" +msgstr[1] "ulepszone wzmocnione panele słoneczne" +msgstr[2] "ulepszone wzmocnione panele słoneczne" +msgstr[3] "ulepszone wzmocnione panele słoneczne" -#. ~ Description for {'str': 'garden pot (growing tomato)', 'str_pl': 'garden -#. pots (growing tomatoes)'} -#: lang/json/GENERIC_from_json.py +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "" -"This is a garden pot growing tomatoes. Once ripe, it can be activated to " -"prepare them for harvest." +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe tomato)" -msgid_plural "garden pots (ripe tomatoes)" +msgid "withered plant bundle" +msgid_plural "withered plant bundles" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe tomato)', 'str_pl': 'garden -#. pots (ripe tomatoes)'} +#. ~ Description for withered plant bundle #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with a ripe tomato plant. Disassemble to retrieve the " -"tasty 'matos." +msgid "A bundle of plant matter" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing wheat)" -msgid_plural "garden pots (growing wheat)" +msgid "CRIT hatchet" +msgid_plural "CRIT hatchets" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing wheat)', 'str_pl': -#. 'garden pots (growing wheat)'}. +#. ~ Use action msg for CRIT hatchet. #: lang/json/GENERIC_from_json.py -msgid "The wheat is ready to harvest!" +msgid "You extend your hatchet" msgstr "" -#. ~ Description for {'str': 'garden pot (growing wheat)', 'str_pl': 'garden -#. pots (growing wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing wheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe wheat)" -msgid_plural "garden pots (ripe wheat)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'garden pot (ripe wheat)', 'str_pl': 'garden pots -#. (ripe wheat)'} +#. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot with wheat ready to harvest. Disassemble to retrieve " -"it." +"An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing hops)" -msgid_plural "garden pots (growing hops)" +msgid "CRIT axe" +msgid_plural "CRIT axes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'}. +#. ~ Use action msg for CRIT axe. #: lang/json/GENERIC_from_json.py -msgid "The hops are ready to harvest!" +msgid "You collapse your axe" msgstr "" -#. ~ Description for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'} +#. ~ Description for CRIT axe #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot growing hops. Once ripe, it can be activated to " -"prepare it for harvest." +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer" +" when extended." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe hops)" -msgid_plural "garden pots (ripe hops)" +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe hops)', 'str_pl': 'garden pots -#. (ripe hops)'} +#. ~ Description for CRIT Blade-work manual #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing blooming hops flowers. Disassemble to " -"harvest them." +msgid "An advanced military manual on CRIT Blade-work." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing buckwheat)" -msgid_plural "garden pots (growing buckwheat)" +msgid "C.R.I.T Enforcement manual" +msgid_plural "C.R.I.T Enforcement manuals" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The buckwheat is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'} +#. ~ Description for {'str': 'C.R.I.T Enforcement manual'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing buckwheat. Once ripe, it can be activated to " -"prepare it for harvest." +msgid "An advanced military manual on C.R.I.T Enforcer melee." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe buckwheat)" -msgid_plural "garden pots (ripe buckwheat)" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe buckwheat)', 'str_pl': 'garden -#. pots (ripe buckwheat)'} +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe buckwheat stalks. Disassemble to " -"harvest them." +msgid "An advanced military manual on CRIT general CQB." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing broccoli)" -msgid_plural "garden pots (growing broccoli)" +msgid "broken emissary" +msgid_plural "broken emissaries" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'}. -#: lang/json/GENERIC_from_json.py -msgid "The broccoli is ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'} +#. ~ Description for {'str': 'broken emissary', 'str_pl': 'broken emissaries'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot growing broccoli. Once ripe, it can be activated to " -"prepare it for harvest." +"The massive body of a collapsed emissary. Still a bit intimidating, perhaps" +" knowing the damage it can cause. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe broccoli)" -msgid_plural "garden pots (ripe broccoli)" +msgid "broken emissary of war" +msgid_plural "broken emissaries of war" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe broccoli)', 'str_pl': 'garden -#. pots (ripe broccoli)'} +#. ~ Description for {'str': 'broken emissary of war', 'str_pl': 'broken +#. emissaries of war'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot containing some fully-grown broccoli. Disassemble to " -"harvest it." +"The massive body of a collapsed emissary of war. Still a bit intimidating, " +"perhaps knowing the damage it can cause. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing oats)" -msgid_plural "garden pots (growing oats)" +msgid "broken emissary of flame" +msgid_plural "broken emissaries of flame" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'}. -#: lang/json/GENERIC_from_json.py -msgid "The oats are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'} +#. ~ Description for {'str': 'broken emissary of flame', 'str_pl': 'broken +#. emissaries of flame'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot growing oats. Once ripe, it can be activated to " -"prepare it for harvest." +"The massive body of a collapsed emissary of flame. Still a bit " +"intimidating, perhaps knowing the damage it can cause. Could be gutted for " +"parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe oats)" -msgid_plural "garden pots (ripe oats)" +msgid "broken surveillance drone" +msgid_plural "broken surveillance drones" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe oats)', 'str_pl': 'garden pots -#. (ripe oats)'} +#. ~ Description for {'str': 'broken surveillance drone'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot containing some golden, fully-grown oats. Disassemble " -"to harvest them." +"A broken drone. Much less threatening now that it isn't shining its light " +"everywhere. Could be gutted for parts." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing barley)" -msgid_plural "garden pots (growing barley)" +msgid "broken seeker drone" +msgid_plural "broken seeker drones" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing barley)', 'str_pl': -#. 'garden pots (growing barley)'}. +#. ~ Description for {'str': 'broken seeker drone'} #: lang/json/GENERIC_from_json.py -msgid "Barley is ready to harvest!" -msgstr "Jęczmień jest gotowy do zbiorów!" +msgid "" +"A broken drone. Much less threatening now that it isn't prodding you with " +"its tools. Could be gutted for parts." +msgstr "" -#. ~ Description for {'str': 'garden pot (growing barley)', 'str_pl': 'garden -#. pots (growing barley)'} +#. ~ Description for {'str': 'toilet brush', 'str_pl': 'toilet brushes'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot growing barley. Once ripe, it can be activated to " -"prepare it for harvest." +"The aliens that have invaded Earth cannot be intimidated or humiliated - at " +"least not meaningfully - so this stiff brush is only useful for scouring " +"toilet bowls." msgstr "" +#. ~ Description for basketball #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe barley)" -msgid_plural "garden pots (ripe barley)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "A high-quality indoor basketball. You could throw it at your enemies." +msgstr "" + +#. ~ Description for {'str': 'newspaper page'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A single sheet of newspaper broadsheet. Most of the information on there is" +" terribly trivial, or out of date, but one thing catches your eye briefly - " +"some things from before the Cataclysm, and some even after." +msgstr "" -#. ~ Description for {'str': 'garden pot (ripe barley)', 'str_pl': 'garden -#. pots (ripe barley)'} +#. ~ Description for {'str': 'reinforced solar panel'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot containing some ready-to-harvest barley. Disassemble " -"to harvest it." +"A solar panel that has been covered with a pane of reinforced glass to " +"protect the delicate solar cells from aliens or errant baseballs. The glass" +" causes this panel to produce slightly less power than a normal panel. " +"Useful for a vehicle." msgstr "" +#. ~ Description for {'str': 'upgraded reinforced solar panel'} #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing carrot)" -msgid_plural "garden pots (growing carrots)" +msgid "" +"An upgraded solar panel that has been covered with a pane of reinforced " +"glass to protect the delicate solar cells from aliens or errant baseballs. " +"The glass causes this panel to produce slightly less power than a normal " +"upgraded panel. Useful for a vehicle." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "tiny pistol casing" +msgid_plural "tiny pistol casings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing carrot)', 'str_pl': -#. 'garden pots (growing carrots)'}. -#: lang/json/GENERIC_from_json.py -msgid "The carrots are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing carrot)', 'str_pl': 'garden -#. pots (growing carrots)'} +#. ~ Description for tiny pistol casing #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing carrots. Once ripe, it can be activated to " -"prepare it for harvest." +msgid "An empty casing from a tiny pistol round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe carrot)" -msgid_plural "garden pots (ripe carrot)" +msgid "pistol casing" +msgid_plural "pistol casings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe carrot)', 'str_pl': 'garden -#. pots (ripe carrot)'} +#. ~ Description for {'str': 'pistol casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ripe carrots. Disassemble to harvest " -"them. Store away from rabbits." +msgid "An empty casing from a standard pistol round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cotton)" -msgid_plural "garden pots (growing cotton)" +msgid "magnum pistol casing" +msgid_plural "magnum pistol casings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing cotton)', 'str_pl': -#. 'garden pots (growing cotton)'}. +#. ~ Description for {'str': 'magnum pistol casing'} #: lang/json/GENERIC_from_json.py -msgid "The cotton is ready to harvest!" +msgid "An empty casing from a magnum pistol round." msgstr "" -#. ~ Description for {'str': 'garden pot (growing cotton)', 'str_pl': 'garden -#. pots (growing cotton)'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cotton. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" +msgid "rifle casing" +msgid_plural "rifle casings" +msgstr[0] "łuska amunicji do karabinów" +msgstr[1] "łuska amunicji do karabinów" +msgstr[2] "łuska amunicji do karabinów" +msgstr[3] "łuska amunicji do karabinów" + +#. ~ Description for {'str': 'rifle casing'} +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a rifle round." +msgstr "Pusta łuska amunicji do karabinów." #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cotton)" -msgid_plural "garden pots (ripe cotton)" +msgid "huge rifle casing" +msgid_plural "huge rifle casings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe cotton)', 'str_pl': 'garden -#. pots (ripe cotton)'} +#. ~ Description for {'str': 'huge rifle casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing white, fluffy cotton bolls ready for the " -"loom. Disassemble to pluck them." +msgid "An empty casing from a huge rifle round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cabbage)" -msgid_plural "garden pots (growing cabbage)" +msgid "shotshell hull" +msgid_plural "shotshell hulls" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing cabbage)', 'str_pl': -#. 'garden pots (growing cabbage)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cabbages are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing cabbage)', 'str_pl': 'garden -#. pots (growing cabbage)'} +#. ~ Description for shotshell hull #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot growing cabbage. Once ripe, it can be activated to " -"prepare it for harvest." +"A shotshell's casing, a plastic tube with a brass casehead, commonly " +"referred to as a hull." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cabbage)" -msgid_plural "garden pots (ripe cabbage)" +msgid "grenade casing" +msgid_plural "grenade casings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe cabbage)', 'str_pl': 'garden -#. pots (ripe cabbage)'} +#. ~ Description for {'str': 'grenade casing'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing a big cabbage leaf. Disassemble to harvest " -"it." +msgid "A large casing from a grenade round." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cucumber)" -msgid_plural "garden pots (growing cucumber)" +msgid "rifle belt linkage" +msgid_plural "rifle belt linkages" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'}. #: lang/json/GENERIC_from_json.py -msgid "The cucumbers are ready to harvest!" -msgstr "" - -#. ~ Description for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cucumber. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" +msgid "grenade belt linkage" +msgid_plural "grenade belt linkages" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cucumber)" -msgid_plural "garden pots (ripe cucumber)" +msgid "heavy machinegun belt linkage" +msgid_plural "heavy machinegun belt linkages" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe cucumber)', 'str_pl': 'garden -#. pots (ripe cucumber)'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe cucumbers. Disassemble to harvest " -"them." -msgstr "" +msgid "broken CROWS II" +msgid_plural "broken CROWS IIs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing garlic)" -msgid_plural "garden pots (growing garlic)" +msgid "broken CROWS II Heavy" +msgid_plural "broken CROWS II Heavys" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Use action msg for {'str': 'garden pot (growing garlic)', 'str_pl': -#. 'garden pots (growing garlic)'}. #: lang/json/GENERIC_from_json.py -msgid "The garlic is ready to harvest!" -msgstr "" +msgid "broken launcher TALON UGV" +msgid_plural "broken launcher TALON UGVs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'garden pot (growing garlic)', 'str_pl': 'garden -#. pots (growing garlic)'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing garlic bulbs. Once ripe, it can be activated " -"to prepare it for harvest." -msgstr "" +msgid "broken rifle TALON UGV" +msgid_plural "broken rifle TALON UGVs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe garlic)" -msgid_plural "garden pots (ripe garlic)" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'garden pot (ripe garlic)', 'str_pl': 'garden -#. pots (ripe garlic)'} +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing pungent garlic bulbs. Disassemble to " -"harvest them, or wave it at vampires to scare them." +msgid "This book contains the teaching of the Desert Wind discipline." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "roadheader" -msgid_plural "roadheaders" +#: lang/json/GENERIC_from_json.py +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for roadheader +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "" -"A large and heavy jagged metalhead with a lot of spikes for destroying mine " -"walls." +msgid "This book contains the teaching of the Diamond Mind discipline." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "Balancer" -msgid_plural "Balancers" +#: lang/json/GENERIC_from_json.py +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for Balancer +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py -msgid "A large and heavy metal bar for balancing a vehicle." +msgid "" +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." msgstr "" #: lang/json/GENERIC_from_json.py @@ -71352,6 +72506,60 @@ msgid "" "smashed for iron." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff" +" you put into it. It takes a few words and hand-waving to take an item out." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "dimensional bag" +msgid_plural "dimensional bags" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/GENERIC_from_json.py +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "lesser staff of the magi" msgid_plural "lesser staves of the magi" @@ -72224,6 +73432,24 @@ msgid "" "tips from retracting while in staff configuration. Activate to extend." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "endless flask" +msgid_plural "endless flasks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Use action msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" +msgstr "" + +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "The flask isn't done refilling yet." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "magic token" msgid_plural "magic tokens" @@ -72654,7 +73880,7 @@ msgid "" "the edge is impeccable." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Laevateinn" msgid_plural "Laevateinns" msgstr[0] "Laevateinn" @@ -74020,15 +75246,15 @@ msgid "" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Overcharge" -msgid_plural "Scrolls of Overcharge" +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'Scroll of Overcharge', 'str_pl': 'Scrolls of -#. Overcharge'} +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': +#. 'Scrolls of Optical Sneeze Beam'} #: lang/json/GENERIC_from_json.py msgid "" "You overcharge your internal batteries to send a semi-directed beam from " @@ -74654,6 +75880,38 @@ msgid "" "hopes to discover a more permanent solution." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "cauldron of purification" +msgid_plural "cauldrons of purification" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons +#. of purification'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This cauldron made of demon spider chitin seems to absorb the light. It " +"will hold 16 liters of material and will absorb poisons from it. It may " +"have other properties that require discovery." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" @@ -74746,1541 +76004,70 @@ msgid "" "much more expensive." msgstr "" -#. ~ Description for broken turret #: lang/json/GENERIC_from_json.py -msgid "" -"A broken turret. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka. Znacznie mniej groźna teraz gdy leży nieruchomo na ziemi." -" Można ją wybebeszyć w poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken military turret" -msgid_plural "broken military turrets" -msgstr[0] "zepsuta wieżyczka wojskowa" -msgstr[1] "zepsuta wieżyczka wojskowa" -msgstr[2] "zepsuta wieżyczka wojskowa" -msgstr[3] "zepsuta wieżyczka wojskowa" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced turret" -msgid_plural "broken advanced turrets" -msgstr[0] "zepsuta zaawansowana wieżyczka" -msgstr[1] "zepsuta zaawansowana wieżyczka" -msgstr[2] "zepsuta zaawansowana wieżyczka" -msgstr[3] "zepsuta zaawansowana wieżyczka" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense turret" -msgid_plural "broken defense turrets" -msgstr[0] "zepsuta wieżyczka obronna" -msgstr[1] "zepsuta wieżyczka obronna" -msgstr[2] "zepsuta wieżyczka obronna" -msgstr[3] "zepsuta wieżyczka obronna" - -#. ~ Description for broken defense turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka obronna. Znacznie mniej groźna teraz gdy leży nieruchomo " -"na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#. ~ Description for broken military turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wojskowa. Znacznie mniej groźna teraz gdy leży nieruchomo " -"na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#. ~ Description for broken advanced turret -#. ~ Description for broken 9mm turret -#. ~ Description for broken riotcontrol turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken 9mm defense turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka obronna kalibru 9 mm. Znacznie mniej groźna teraz gdy leży" -" nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken 9mm turret" -msgid_plural "broken 9mm turrets" -msgstr[0] "zepsuta wieżyczka 9 mm" -msgstr[1] "zepsuta wieżyczka 9 mm" -msgstr[2] "zepsuta wieżyczka 9 mm" -msgstr[3] "zepsuta wieżyczka 9 mm" - -#. ~ Description for broken 9mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken shotgun defense turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka obronna ze strzelbą. Znacznie mniej groźna teraz gdy leży " -"nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#. ~ Description for broken riot control turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control turret. Much less threatening now that it lies limp " -"on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka kontroli tłumu. Znacznie mniej groźna teraz gdy leży " -"nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol turret" -msgid_plural "broken riotcontrol turrets" -msgstr[0] "zepsuta wieżyczka kontroli tłumu" -msgstr[1] "zepsuta wieżyczka kontroli tłumu" -msgstr[2] "zepsuta wieżyczka kontroli tłumu" -msgstr[3] "zepsuta wieżyczka kontroli tłumu" - -#: lang/json/GENERIC_from_json.py -msgid "broken 5.56mm turret" -msgid_plural "broken 5.56mm turrets" -msgstr[0] "zepsuta wieżyczka 5.56 mm" -msgstr[1] "zepsuta wieżyczka 5.56 mm" -msgstr[2] "zepsuta wieżyczka 5.56 mm" -msgstr[3] "zepsuta wieżyczka 5.56 mm" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5.56mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wojskowa kalibru 5.56 mm. Znacznie mniej groźna teraz gdy " -"leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken 7.62mm turret" -msgid_plural "broken 7.62mm turrets" -msgstr[0] "zepsuta wieżyczka 7.62 mm" -msgstr[1] "zepsuta wieżyczka 7.62 mm" -msgstr[2] "zepsuta wieżyczka 7.62 mm" -msgstr[3] "zepsuta wieżyczka 7.62 mm" - -#. ~ Description for broken 7.62mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 7.62mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wojskowa kalibru 7.62 mm. Znacznie mniej groźna teraz gdy " -"leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken 50cal turret" -msgid_plural "broken 50cal turrets" -msgstr[0] "zepsuta wieżyczka kal 50" -msgstr[1] "zepsuta wieżyczka kal 50" -msgstr[2] "zepsuta wieżyczka kal 50" -msgstr[3] "zepsuta wieżyczka kal 50" - -#. ~ Description for broken 50cal turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 50 caliber turret. Much less threatening now that " -"it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wojskowa kalibru 50. Znacznie mniej groźna teraz gdy leży " -"nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken 40mm turret" -msgid_plural "broken 40mm turrets" -msgstr[0] "zepsuta wieżyczka 40 mm" -msgstr[1] "zepsuta wieżyczka 40 mm" -msgstr[2] "zepsuta wieżyczka 40 mm" -msgstr[3] "zepsuta wieżyczka 40 mm" - -#. ~ Description for broken 40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 40mm grenade turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wojskowa z granatnikiem kalibru 40 mm. Znacznie mniej " -"groźna teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w " -"poszukiwaniu części." - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5x50 flechette turret. Much less threatening now " -"that it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wojskowa strzałkowa kalibru 5x50. Znacznie mniej groźna " -"teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken 8x40mm turret" -msgid_plural "broken 8x40mm turrets" -msgstr[0] "zepsuta wieżyczka 8x40 mm" -msgstr[1] "zepsuta wieżyczka 8x40 mm" -msgstr[2] "zepsuta wieżyczka 8x40 mm" -msgstr[3] "zepsuta wieżyczka 8x40 mm" - -#. ~ Description for broken 8x40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 8x40mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wojskowa kalibru 8x40 mm. Znacznie mniej groźna teraz gdy " -"leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken flamethrower turret" -msgid_plural "broken flamethrower turrets" -msgstr[0] "zepsuta wieżyczka miotacz ognia" -msgstr[1] "zepsuta wieżyczka miotacz ognia" -msgstr[2] "zepsuta wieżyczka miotacz ognia" -msgstr[3] "zepsuta wieżyczka miotacz ognia" - -#. ~ Description for broken flamethrower turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade flamethrower turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wojskowa z miotaczem ognia. Znacznie mniej groźna teraz " -"gdy leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#. ~ Description for broken laser turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced laser emitter turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta zaawansowana wieżyczka z emiterem laserowym. Znacznie mniej groźna " -"teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken acid turret" -msgid_plural "broken acid turrets" -msgstr[0] "zepsuta wieżyczka kwasowa" -msgstr[1] "zepsuta wieżyczka kwasowa" -msgstr[2] "zepsuta wieżyczka kwasowa" -msgstr[3] "zepsuta wieżyczka kwasowa" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid thrower turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta zaawansowana wieżyczka z miotaczem kwasu. Znacznie mniej groźna " -"teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken plasma turret" -msgid_plural "broken plasma turrets" -msgstr[0] "zepsuta wieżyczka plazmowa" -msgstr[1] "zepsuta wieżyczka plazmowa" -msgstr[2] "zepsuta wieżyczka plazmowa" -msgstr[3] "zepsuta wieżyczka plazmowa" - -#. ~ Description for broken plasma turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced plasma ejector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta zaawansowana wieżyczka z miotaczem plazmy. Znacznie mniej groźna " -"teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken rail gun turret" -msgid_plural "broken rail gun turrets" -msgstr[0] "zepsuta wieżyczka miotacz szynowy" -msgstr[1] "zepsuta wieżyczka miotacz szynowy" -msgstr[2] "zepsuta wieżyczka miotacz szynowy" -msgstr[3] "zepsuta wieżyczka miotacz szynowy" - -#. ~ Description for broken rail gun turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced rail gun turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta zaawansowana wieżyczka z motaczem szynowym. Znacznie mniej groźna " -"teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu " -"części." - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid projector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta zaawansowana wieżyczka z miotaczem kwasu. Znacznie mniej groźna " -"teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken electro turret" -msgid_plural "broken electro turrets" -msgstr[0] "zepsuta wieżyczka elektromiotacz" -msgstr[1] "zepsuta wieżyczka elektromiotacz" -msgstr[2] "zepsuta wieżyczka elektromiotacz" -msgstr[3] "zepsuta wieżyczka elektromiotacz" - -#. ~ Description for broken electro turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced electro caster turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta zaawansowana wieżyczka z emiterem łuku elektrycznego. Znacznie mniej" -" groźna teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w " -"poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken EMP turret" -msgid_plural "broken EMP turrets" -msgstr[0] "zepsuta wieżyczka EMP" -msgstr[1] "zepsuta wieżyczka EMP" -msgstr[2] "zepsuta wieżyczka EMP" -msgstr[3] "zepsuta wieżyczka EMP" - -#. ~ Description for broken EMP turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced EMP generator turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta zaawansowana wieżyczka z generatorem EMP. Znacznie mniej groźna " -"teraz gdy leży nieruchomo na ziemi. Można ją wybebeszyć w poszukiwaniu " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken gaurdin gnome" -msgid_plural "broken gaurdin gnomes" -msgstr[0] "zepsuty gnom strażnik" -msgstr[1] "zepsuty gnom strażnik" -msgstr[2] "zepsuty gnom strażnik" -msgstr[3] "zepsuty gnom strażnik" - -#. ~ Description for broken gaurdin gnome -#: lang/json/GENERIC_from_json.py -msgid "A broken and completely harmless garden gnome." -msgstr "Zepsuty zwykły i całkowicie niegroźny gnom ogrodowy." - -#: lang/json/GENERIC_from_json.py -msgid "broken hack" -msgid_plural "broken hacks" -msgstr[0] "zepsuty młynek" -msgstr[1] "zepsuty młynek" -msgstr[2] "zepsuty młynek" -msgstr[3] "zepsuty młynek" - -#. ~ Description for broken eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot, now dark and motionless. Could be stripped down for parts." -msgstr "Zepsuty okobot, wygaszony i nieruchomy. Można go rozebrać na części." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed eyebot" -msgid_plural "broken disarmed eyebots" -msgstr[0] "zepsuty rozbrojony okobot" -msgstr[1] "zepsuty rozbrojony okobot" -msgstr[2] "zepsuty rozbrojony okobot" -msgstr[3] "zepsuty rozbrojony okobot" - -#. ~ Description for broken disarmed eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot. Its integrated weapon module has been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"Zepsuty okobot. Jego zintegrowany moduł broni został wymontowany. Może być " -"rozebrany na części albo przerobiony na robota z odzysku." - -#: lang/json/GENERIC_from_json.py -msgid "broken utility robot" -msgid_plural "broken utility robots" -msgstr[0] "zepsuty robot użytkowy" -msgstr[1] "zepsuty robot użytkowy" -msgstr[2] "zepsuty robot użytkowy" -msgstr[3] "zepsuty robot użytkowy" - -#. ~ Description for broken utility robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken utility robot, now limp and unmoving. Could be gutted for parts or" -" crafted into a salvaged robot." -msgstr "" -"Zepsuty robot użytkowy, oklapły i nieruchomy. Może być rozebrany na części " -"albo przerobiony na robota z odzysku." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed skitterbot" -msgid_plural "broken disarmed skitterbots" -msgstr[0] "zepsuty rozbrojony smyrgobot" -msgstr[1] "zepsuty rozbrojony smyrgobot" -msgstr[2] "zepsuty rozbrojony smyrgobot" -msgstr[3] "zepsuty rozbrojony smyrgobot" - -#. ~ Description for broken disarmed skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot. Its internal weapon modules have been removed. Could " -"be gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot, now harmless and inert. Could be stripped of integral " -"weapon modules." -msgstr "" -"Zepsuty smyrgobot, teraz niegroźny i nieruchomy. Można wymontować z niego " -"zintegrowane moduły uzbrojenia." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed defense bot" -msgid_plural "broken disarmed defense bots" -msgstr[0] "zepsuty rozbrojony bot obronny" -msgstr[1] "zepsuty rozbrojony bot obronny" -msgstr[2] "zepsuty rozbrojony bot obronny" -msgstr[3] "zepsuty rozbrojony bot obronny" - -#. ~ Description for broken disarmed defense bot -#. ~ Description for broken security robot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken security robot -#. ~ Description for broken defense bot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken disarmed military bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken security robot" -msgid_plural "broken security robots" -msgstr[0] "zepsuty robot ochrony" -msgstr[1] "zepsuty robot ochrony" -msgstr[2] "zepsuty robot ochrony" -msgstr[3] "zepsuty robot ochrony" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol robot" -msgid_plural "broken riotcontrol robots" -msgstr[0] "zepsuty robot kontroli tłumu" -msgstr[1] "zepsuty robot kontroli tłumu" -msgstr[2] "zepsuty robot kontroli tłumu" -msgstr[3] "zepsuty robot kontroli tłumu" - -#: lang/json/GENERIC_from_json.py -msgid "broken chickenwalker" -msgid_plural "broken chickenwalkers" -msgstr[0] "zepsuty kurzy kroczarz" -msgstr[1] "zepsuty kurzy kroczarz" -msgstr[2] "zepsuty kurzy kroczarz" -msgstr[3] "zepsuty kurzy kroczarz" - -#. ~ Description for broken chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "A broken chickenwalker. Could be stripped for parts." -msgstr "Zepsuty kurzy kroczarz. Może być rozebrany na części." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed chickenwalker" -msgid_plural "broken disarmed chickenwalkers" -msgstr[0] "zepsuty rozbrojony kurzy kroczarz" -msgstr[1] "zepsuty rozbrojony kurzy kroczarz" -msgstr[2] "zepsuty rozbrojony kurzy kroczarz" -msgstr[3] "zepsuty rozbrojony kurzy kroczarz" - -#. ~ Description for broken disarmed chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken chickenwalker. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken tank drone -#: lang/json/GENERIC_from_json.py -msgid "A broken tank drone. Could be stripped down for parts." -msgstr "Zepsuty czołg samobieżny. Można go rozebrać na części." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed tank drone" -msgid_plural "broken disarmed tank drones" -msgstr[0] "zepsuty rozbrojony czołg samobieżny" -msgstr[1] "zepsuty rozbrojony czołg samobieżny" -msgstr[2] "zepsuty rozbrojony czołg samobieżny" -msgstr[3] "zepsuty rozbrojony czołg samobieżny" - -#. ~ Description for broken disarmed tank drone -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Could be gutted for parts or recrafted into a salvaged" -" robot." -msgstr "" -"Zepsuty czołg samobieżny. Może być rozebrany na części albo przerobiony na " -"robota z odzysku." - -#: lang/json/GENERIC_from_json.py -msgid "robot component" -msgid_plural "robot components" -msgstr[0] "części robotów" -msgstr[1] "części robotów" -msgstr[2] "części robotów" -msgstr[3] "części robotów" - -#. ~ Description for robot component -#: lang/json/GENERIC_from_json.py -msgid "" -"A component for turrets and robots. It is unuseable in its current state." -msgstr "" -"Komponent do wieżyczek i robotów. Nie nadaje się do użytku w obecnym stanie." - -#: lang/json/GENERIC_from_json.py -msgid "integral microreactor" -msgid_plural "integral microreactors" -msgstr[0] "zintegrowany mikroreaktor" -msgstr[1] "zintegrowany mikroreaktor" -msgstr[2] "zintegrowany mikroreaktor" -msgstr[3] "zintegrowany mikroreaktor" - -#. ~ Description for integral microreactor -#: lang/json/GENERIC_from_json.py -msgid "A compact fusion reactor used to power a robot's energy weapons." -msgstr "" -"Kompaktowy reaktor fuzyjny używany do zasilania broni energetycznej robota." - -#: lang/json/GENERIC_from_json.py -msgid "integral flash gun" -msgid_plural "integral flash guns" -msgstr[0] "zintegrowany flesz" -msgstr[1] "zintegrowany flesz" -msgstr[2] "zintegrowany flesz" -msgstr[3] "zintegrowany flesz" - -#: lang/json/GENERIC_from_json.py -msgid "integral tazer" -msgid_plural "integral tazers" -msgstr[0] "zintegrowany paralizator" -msgstr[1] "zintegrowany paralizator" -msgstr[2] "zintegrowany paralizator" -msgstr[3] "zintegrowany paralizator" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 9mm firearm" -msgid_plural "integral 9mm firearms" -msgstr[0] "Zintegrowana broń 9mm" -msgstr[1] "Zintegrowana broń 9mm" -msgstr[2] "Zintegrowana broń 9mm" -msgstr[3] "Zintegrowana broń 9mm" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 5.56mm firearm" -msgid_plural "integral 5.56mm firearms" -msgstr[0] "zintegrowana broń 5.56mm" -msgstr[1] "zintegrowana broń 5.56mm" -msgstr[2] "zintegrowana broń 5.56mm" -msgstr[3] "zintegrowana broń 5.56mm" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 7.62mm firearm" -msgid_plural "integral 7.62mm firearms" -msgstr[0] "zintegrowana broń 7.62mm" -msgstr[1] "zintegrowana broń 7.62mm" -msgstr[2] "zintegrowana broń 7.62mm" -msgstr[3] "zintegrowana broń 7.62mm" - -#: lang/json/GENERIC_from_json.py -msgid "integral shotgun" -msgid_plural "integral shotguns" -msgstr[0] "zintegrowana strzelba" -msgstr[1] "zintegrowana strzelba" -msgstr[2] "zintegrowana strzelba" -msgstr[3] "zintegrowana strzelba" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral beanbag launcher" -msgid_plural "integral beanbag launchers" -msgstr[0] "zintegrowany miotacz woreczków grochu" -msgstr[1] "zintegrowany miotacz woreczków grochu" -msgstr[2] "zintegrowany miotacz woreczków grochu" -msgstr[3] "zintegrowany miotacz woreczków grochu" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral teargas launcher" -msgid_plural "integral teargas launchers" -msgstr[0] "zintegrowany miotacz gazu łzawiącego" -msgstr[1] "zintegrowany miotacz gazu łzawiącego" -msgstr[2] "zintegrowany miotacz gazu łzawiącego" -msgstr[3] "zintegrowany miotacz gazu łzawiącego" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py -msgid "integral flamethrower" -msgid_plural "integral flamethrowers" -msgstr[0] "zintegrowany miotacz ognia" -msgstr[1] "zintegrowany miotacz ognia" -msgstr[2] "zintegrowany miotacz ognia" -msgstr[3] "zintegrowany miotacz ognia" - -#: lang/json/GENERIC_from_json.py -msgid "integral flechette firearm" -msgid_plural "integral flechette firearms" -msgstr[0] "zintegrowana broń strzałkowa" -msgstr[1] "zintegrowana broń strzałkowa" -msgstr[2] "zintegrowana broń strzałkowa" -msgstr[3] "zintegrowana broń strzałkowa" - -#: lang/json/GENERIC_from_json.py -msgid "integral 8x40mm firearm" -msgid_plural "integral 8x40mm firearms" -msgstr[0] "zintegrowana broń 8x40mm" -msgstr[1] "zintegrowana broń 8x40mm" -msgstr[2] "zintegrowana broń 8x40mm" -msgstr[3] "zintegrowana broń 8x40mm" - -#: lang/json/GENERIC_from_json.py -msgid "integral 50 caliber firearm" -msgid_plural "integral 50 caliber firearms" -msgstr[0] "zintegrowana broń kalibru 50" -msgstr[1] "zintegrowana broń kalibru 50" -msgstr[2] "zintegrowana broń kalibru 50" -msgstr[3] "zintegrowana broń kalibru 50" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral grenade launcher" -msgid_plural "integral grenade launchers" -msgstr[0] "zintegrowany granatnik" -msgstr[1] "zintegrowany granatnik" -msgstr[2] "zintegrowany granatnik" -msgstr[3] "zintegrowany granatnik" - -#: lang/json/GENERIC_from_json.py -msgid "integral laser weapon" -msgid_plural "integral laser weapons" -msgstr[0] "zintegrowana broń laserowa" -msgstr[1] "zintegrowana broń laserowa" -msgstr[2] "zintegrowana broń laserowa" -msgstr[3] "zintegrowana broń laserowa" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral plasma ejector" -msgid_plural "integral plasma ejectors" -msgstr[0] "zintegrowany miotacz plazmy" -msgstr[1] "zintegrowany miotacz plazmy" -msgstr[2] "zintegrowany miotacz plazmy" -msgstr[3] "zintegrowany miotacz plazmy" - -#: lang/json/GENERIC_from_json.py -msgid "integral electromagnetic railgun" -msgid_plural "integral electromagnetic railguns" -msgstr[0] "zintegrowany elektromagnetyczny miotacz szynowy" -msgstr[1] "zintegrowany elektromagnetyczny miotacz szynowy" -msgstr[2] "zintegrowany elektromagnetyczny miotacz szynowy" -msgstr[3] "zintegrowany elektromagnetyczny miotacz szynowy" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral acid thrower" -msgid_plural "integral acid throwers" -msgstr[0] "zintegrowany miotacz kwasu" -msgstr[1] "zintegrowany miotacz kwasu" -msgstr[2] "zintegrowany miotacz kwasu" -msgstr[3] "zintegrowany miotacz kwasu" - -#: lang/json/GENERIC_from_json.py -msgid "integral electro caster" -msgid_plural "integral electro casters" -msgstr[0] "zintegrowany miotacz piorunów" -msgstr[1] "zintegrowany miotacz piorunów" -msgstr[2] "zintegrowany miotacz piorunów" -msgstr[3] "zintegrowany miotacz piorunów" - -#: lang/json/GENERIC_from_json.py -msgid "integral EMP projector" -msgid_plural "integral EMP projectors" -msgstr[0] "zintegrowany generator EMP" -msgstr[1] "zintegrowany generator EMP" -msgstr[2] "zintegrowany generator EMP" -msgstr[3] "zintegrowany generator EMP" - -#. ~ Description for Mjölnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Mjölnir, the hammer of Thor. It is rumored to be able to level" -" mountains with a single blow. It is decorated with gold and silver " -"ornaments." -msgstr "" -"Replika Mjölnir'a, młota Thora. Legenda głosi że zrównuje z ziemią góry " -"jednym ciosem. Jest udekorowany złotymi i srebrnymi ornamentami." - -#. ~ Description for Gungnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Gungnir, the spear of Odin. It is rumored to be the perfect " -"spear, perfectly hitting any target regardless of the wielder's strength or " -"skill. It is decorated with gold and silver ornaments." -msgstr "" -"Replika Gungnir'a, włóczni Odyna. Legenda głosi że to włócznia idealna, " -"doskonale celna wobec dowolnych celów, niezależnie od siły czy umiejętności " -"nią władającego. Jest udekorowany złotymi i srebrnymi ornamentami.  " - -#: lang/json/GENERIC_from_json.py -msgid "broken light auto armor" -msgid_plural "broken light auto armors" -msgstr[0] "zniszczony lekki autonomiczny pancerz wspomagany" -msgstr[1] "zniszczony lekki autonomiczny pancerz wspomagany" -msgstr[2] "zniszczony lekki autonomiczny pancerz wspomagany" -msgstr[3] "zniszczony lekki autonomiczny pancerz wspomagany" - -#. ~ Description for broken light auto armor -#. ~ Description for broken basic auto armor -#. ~ Description for broken heavy auto armor -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken set of power armor fitted with an AI core for automated use. It " -"cannot be worn or disassembled until re-crafted into an undamaged robot." -msgstr "" -"Zniszczony zestaw pancerza wspomaganej wyposażonej w rdzeń sztucznej " -"inteligencji do autonomicznego działania. Nie można go nosić ani rozłożyć " -"zanim nie zostanie przerobiony w nieuszkodzonego robota." - -#: lang/json/GENERIC_from_json.py -msgid "broken basic auto armor" -msgid_plural "broken basic auto armors" -msgstr[0] "zniszczony podstawowy autonomiczny pancerz wspomagany" -msgstr[1] "zniszczony podstawowy autonomiczny pancerz wspomagany" -msgstr[2] "zniszczony podstawowy autonomiczny pancerz wspomagany" -msgstr[3] "zniszczony podstawowy autonomiczny pancerz wspomagany" - -#: lang/json/GENERIC_from_json.py -msgid "broken heavy auto armor" -msgid_plural "broken heavy auto armors" -msgstr[0] "zniszczony ciężki autonomiczny pancerz wspomagany" -msgstr[1] "zniszczony ciężki autonomiczny pancerz wspomagany" -msgstr[2] "zniszczony ciężki autonomiczny pancerz wspomagany" -msgstr[3] "zniszczony ciężki autonomiczny pancerz wspomagany" - -#: lang/json/GENERIC_from_json.py -msgid "dead craftbuddy" -msgid_plural "dead craftbuddies" +msgid "TEST plank" +msgid_plural "TEST planks" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'dead craftbuddy', 'str_pl': 'dead craftbuddies'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken repair robot, now limp and unmoving. Could be gutted for parts or " -"re-crafted into a functioning pal." -msgstr "" -"Zepsuty robot naprawczy, oklapły i nieruchomy. Może być rozebrany na części " -"albo przerobiony na działającego pomocnika." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating lantern" -msgid_plural "broken floating lanterns" -msgstr[0] "zepsuta dryfująca latarnia" -msgstr[1] "zepsuta dryfująca latarnia" -msgstr[2] "zepsuta dryfująca latarnia" -msgstr[3] "zepsuta dryfująca latarnia" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating lantern, now dark and motionless. Could be gutted for " -"parts." -msgstr "" -"Zepsuta dryfująca latarnia, wygaszona i nieruchoma. Można ją rozebrać na " -"części." - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "A broken arson hack, now cold and burnt. Could be gutted for parts." -msgstr "" -"Zepsuty młynek podpalacz, obecnie zimny i wypalony. Można wypruć z niego " -"części." - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken distract-o-hack, now silent and still. Could be gutted for parts." -msgstr "" -"Zepsuty młynek wabik, obecnie cichy i nieruchomy. Można wypruć z niego " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken spore hack" -msgid_plural "broken spore hacks" -msgstr[0] "zepsuty młynek zapylacz" -msgstr[1] "zepsuty młynek zapylacz" -msgstr[2] "zepsuty młynek zapylacz" -msgstr[3] "zepsuty młynek zapylacz" - -#. ~ Description for broken spore hack -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken spore hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." -msgstr "" -"Zepsuty młynek-zapylacz. O wiele mniej groźny teraz, gdy leży bez ruchu na " -"ziemi. Można wypruć z niego części." - -#: lang/json/GENERIC_from_json.py -msgid "broken watercannon turret" -msgid_plural "broken watercannon turrets" -msgstr[0] "zepsuta wieżyczka wodna" -msgstr[1] "zepsuta wieżyczka wodna" -msgstr[2] "zepsuta wieżyczka wodna" -msgstr[3] "zepsuta wieżyczka wodna" - -#. ~ Description for broken watercannon turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken watercannon turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Zepsuta wieżyczka wodna. Znacznie mniej groźna teraz gdy leży nieruchomo na " -"ziemi. Można ją wybebeszyć w poszukiwaniu części." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating heater" -msgid_plural "broken floating heaters" -msgstr[0] "zepsuty dryfujący grzejnik" -msgstr[1] "zepsuty dryfujący grzejnik" -msgstr[2] "zepsuty dryfujący grzejnik" -msgstr[3] "zepsuty dryfujący grzejnik" - -#. ~ Description for broken floating heater -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating heater, now cold and motionless. Could be stripped down " -"or re-crafted." -msgstr "" -"Zepsuty dryfujący grzejnik, teraz zimny i nieruchomy. Można go rozebrać na " -"części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating furnace" -msgid_plural "broken floating furnaces" -msgstr[0] "zepsuty dryfujący piec" -msgstr[1] "zepsuty dryfujący piec" -msgstr[2] "zepsuty dryfujący piec" -msgstr[3] "zepsuty dryfujący piec" - -#. ~ Description for broken floating furnace -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating furnace, now cold and motionless. Could bestripped down " -"or re-crafted." -msgstr "" -"Zepsuty dryfujący piec, teraz zimny i nieruchomy. Można go rozebrać na " -"części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken burning eye" -msgid_plural "broken burning eyes" -msgstr[0] "zepsute palące oko" -msgstr[1] "zepsute palące oko" -msgstr[2] "zepsute palące oko" -msgstr[3] "zepsute palące oko" - -#. ~ Description for broken burning eye -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken burning eye, now dark and motionless. Could be stripped down or " -"re-crafted." -msgstr "" -"Zepsute palące oko, teraz zimne i nieruchome. Można go rozebrać na części " -"lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken butler-bot" -msgid_plural "broken butler-bots" -msgstr[0] "zepsuty bot-lokaj" -msgstr[1] "zepsuty bot-lokaj" -msgstr[2] "zepsuty bot-lokaj" -msgstr[3] "zepsuty bot-lokaj" - -#. ~ Description for broken butler-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken butler-bot, now silent and mangled. Could be stripped down for " -"parts." -msgstr "" -"Zepsuty bot-lokaj, teraz cichy i pognieciony. Można go rozebrać na części." - -#: lang/json/GENERIC_from_json.py -msgid "broken construction robot" -msgid_plural "broken construction robots" -msgstr[0] "zepsuty robot budowlany" -msgstr[1] "zepsuty robot budowlany" -msgstr[2] "zepsuty robot budowlany" -msgstr[3] "zepsuty robot budowlany" - -#. ~ Description for broken construction robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken construction robot, now wrecked and immobile. Could be stripped " -"down for parts." -msgstr "" -"Zepsuty robot budowlany, teraz rozbity i nieruchomy. Można go rozebrać na " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken firefighter robot" -msgid_plural "broken firefighter robots" -msgstr[0] "zepsuty robot strażak" -msgstr[1] "zepsuty robot strażak" -msgstr[2] "zepsuty robot strażak" -msgstr[3] "zepsuty robot strażak" - -#. ~ Description for broken firefighter robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken firefighter robot, now cold and inert. Could be stripped down for " -"parts." -msgstr "" -"Zepsuty robot strażak, teraz zimny i nieruchomy. Można go rozebrać na " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken blob breeder" -msgid_plural "broken blob breeders" -msgstr[0] "zepsuty hodowca glutów" -msgstr[1] "zepsuty hodowca glutów" -msgstr[2] "zepsuty hodowca glutów" -msgstr[3] "zepsuty hodowca glutów" - -#. ~ Description for broken blob breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien blobs. Could be stripped down or re-" -"crafted." -msgstr "" -"Zepsuty robotyczny inkubator na obce gluty. Może być rozebrany na części " -"albo odtworzony." - -#: lang/json/GENERIC_from_json.py -msgid "broken slime breeder" -msgid_plural "broken slime breeders" -msgstr[0] "zepsuty hodowca śluzów" -msgstr[1] "zepsuty hodowca śluzów" -msgstr[2] "zepsuty hodowca śluzów" -msgstr[3] "zepsuty hodowca śluzów" - -#. ~ Description for broken slime breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien slimes. Could be stripped down or re-" -"crafted." -msgstr "" -"Zepsuty robotyczny inkubator na obce śluzy. Może być rozebrany na części " -"albo odtworzony." - -#: lang/json/GENERIC_from_json.py -msgid "broken digestron" -msgid_plural "broken digestrons" -msgstr[0] "zepsuty przeżuwacz" -msgstr[1] "zepsuty przeżuwacz" -msgstr[2] "zepsuty przeżuwacz" -msgstr[3] "zepsuty przeżuwacz" - -#. ~ Description for broken digestron -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken acid digestor robot, now cold and unmoving. Could be stripped down" -" or re-crafted." -msgstr "" -"Zepsuty robot przeżuwacz, teraz zimny i nieruchomy. Można go rozebrać na " -"części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken bee-bot" -msgid_plural "broken bee-bots" -msgstr[0] "zepsuty bot-pszczelarz" -msgstr[1] "zepsuty bot-pszczelarz" -msgstr[2] "zepsuty bot-pszczelarz" -msgstr[3] "zepsuty bot-pszczelarz" - -#. ~ Description for broken bee-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken beehive robot, now still and bee-less. Could be stripped down or " -"re-crafted." -msgstr "" -"Zepsuty robot pszczelarz, teraz nieruchomy i bez pszczół. Można go rozebrać " -"na części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken medical bot" -msgid_plural "broken medical bots" -msgstr[0] "zepsuty bot medyczny" -msgstr[1] "zepsuty bot medyczny" -msgstr[2] "zepsuty bot medyczny" -msgstr[3] "zepsuty bot medyczny" - -#. ~ Description for broken medical bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot, now crumpled and inert. Could be stripped down for " -"parts." -msgstr "" -"Zepsuty robot medyczny, teraz zmięty i nieruchomy. Można go rozebrać na " -"części." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed medical robot" -msgid_plural "broken disarmed medical robots" -msgstr[0] "zepsuty rozbrojony bot medyczny" -msgstr[1] "zepsuty rozbrojony bot medyczny" -msgstr[2] "zepsuty rozbrojony bot medyczny" -msgstr[3] "zepsuty rozbrojony bot medyczny" - -#. ~ Description for broken disarmed medical robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot. Its onboard pharma-crafter and integral surgical " -"tools have been removed. Could be gutted for parts or crafted into a " -"salvaged robot." -msgstr "" -"Zepsuty robot medyczny. Jego zintegrowany moduł farmaceutyczny i " -"zintegrowane narzędzia chirurgiczne zostały wymontowane. Może być rozebrany " -"na części albo przerobiony na robota z odzysku." - -#: lang/json/GENERIC_from_json.py -msgid "broken assassin robot" -msgid_plural "broken assassin robots" -msgstr[0] "zepsuty robot zabójca" -msgstr[1] "zepsuty robot zabójca" -msgstr[2] "zepsuty robot zabójca" -msgstr[3] "zepsuty robot zabójca" - -#. ~ Description for broken assassin robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken assassin robot, now limp and immobile. Could be stripped down or " -"re-crafted." -msgstr "" -"Zepsuty robot zabójca, teraz kulawy i nieruchomy. Można go rozebrać na " -"części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken elixirator" -msgid_plural "broken elixirators" -msgstr[0] "zepsuty eliksirator" -msgstr[1] "zepsuty eliksirator" -msgstr[2] "zepsuty eliksirator" -msgstr[3] "zepsuty eliksirator" - -#. ~ Description for broken elixirator -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken elixirator, now shattered and lifeless. Could be stripped down or " -"re-crafted." -msgstr "" -"Zepsuty eliksirator, teraz rozbity i nieruchomy. Można go rozebrać na części" -" lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken party bot" -msgid_plural "broken party bots" -msgstr[0] "zepsuty robot imprezowicz" -msgstr[1] "zepsuty robot imprezowicz" -msgstr[2] "zepsuty robot imprezowicz" -msgstr[3] "zepsuty robot imprezowicz" - -#. ~ Description for broken party bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken party robot, now wasted and burnt out. Looks like the party's " -"over. Could be stripped down or re-crafted." -msgstr "" -"Zepsuty robot imprezowicz, teraz wypalony i zniszczony. Koniec imprezy. " -"Można go rozebrać na części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken insane cyborg" -msgid_plural "broken insane cyborgs" -msgstr[0] "zniszczony szalony cyborg" -msgstr[1] "zniszczony szalony cyborg" -msgstr[2] "zniszczony szalony cyborg" -msgstr[3] "zniszczony szalony cyborg" - -#. ~ Description for broken insane cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be gutted for parts or " -"crafted into a salvaged robot." -msgstr "" -"Zepsuty cyborg, kulawy i nieruchomy. Może być wypruty na części albo " -"przerobiony na robota z odzysku." - -#: lang/json/GENERIC_from_json.py -msgid "broken necrotic cyborg" -msgid_plural "broken necrotic cyborgs" -msgstr[0] "zepsuty nekrotyczny cyborg" -msgstr[1] "zepsuty nekrotyczny cyborg" -msgstr[2] "zepsuty nekrotyczny cyborg" -msgstr[3] "zepsuty nekrotyczny cyborg" - -#. ~ Description for broken necrotic cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be stripped down or re-" -"crafted into a salvaged robot." -msgstr "" -"Zepsuty cyborg, kulawy i nieruchomy. Może być wypruty na części albo " -"przerobiony na robota z odzysku." - -#: lang/json/GENERIC_from_json.py -msgid "broken rat snatcher" -msgid_plural "broken rat snatchers" -msgstr[0] "zepsuty szczurołap" -msgstr[1] "zepsuty szczurołap" -msgstr[2] "zepsuty szczurołap" -msgstr[3] "zepsuty szczurołap" - -#. ~ Description for broken rat snatcher -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken rat snatcher, now harmless and inert. Could be stripped down or " -"re-crafted." -msgstr "" -"Zepsuty szczurołap, teraz bezbronny i nieruchomy. Można go rozebrać na " -"części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken grab-bot" -msgid_plural "broken grab-bots" -msgstr[0] "zepsuty bot chwytacz" -msgstr[1] "zepsuty bot chwytacz" -msgstr[2] "zepsuty bot chwytacz" -msgstr[3] "zepsuty bot chwytacz" - -#. ~ Description for broken grab-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken grabber robot, now limp and nonthreatening. Could be stripped down" -" or re-crafted." -msgstr "" -"Zepsuty robot chwytacz, teraz kulawy i niegroźny. Można go rozebrać na " -"części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken pest hunter" -msgid_plural "broken pest hunters" -msgstr[0] "zepsuty łowca szkodników" -msgstr[1] "zepsuty łowca szkodników" -msgstr[2] "zepsuty łowca szkodników" -msgstr[3] "zepsuty łowca szkodników" - -#. ~ Description for broken pest hunter -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken pest hunter, now harmless and inert. Could be gutted for parts or " -"re-crafted." -msgstr "" -"Zepsuty łowca szkodników, teraz bezbronny i nieruchomy. Można go rozebrać na" -" części lub odtworzyć." - -#: lang/json/GENERIC_from_json.py -msgid "broken defense bot" -msgid_plural "broken defense bots" -msgstr[0] "zepsuty bot obronny" -msgstr[1] "zepsuty bot obronny" -msgstr[2] "zepsuty bot obronny" -msgstr[3] "zepsuty bot obronny" - -#: lang/json/GENERIC_from_json.py -msgid "broken junkyard cowboy" -msgid_plural "broken junkyard cowboys" -msgstr[0] "zepsuty kowboj ze złomowiska" -msgstr[1] "zepsuty kowboj ze złomowiska" -msgstr[2] "zepsuty kowboj ze złomowiska" -msgstr[3] "zepsuty kowboj ze złomowiska" - -#. ~ Description for broken junkyard cowboy -#. ~ Description for broken shortcircuit samurai -#. ~ Description for broken slapdash paladin -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken shortcircuit samurai" -msgid_plural "broken shortcircuit samurais" -msgstr[0] "zepsuty samuraj krótkie spięcie" -msgstr[1] "zepsuty samuraj krótkie spięcie" -msgstr[2] "zepsuty samuraj krótkie spięcie" -msgstr[3] "zepsuty samuraj krótkie spięcie" - -#: lang/json/GENERIC_from_json.py -msgid "broken slapdash paladin" -msgid_plural "broken slapdash paladins" -msgstr[0] "zepsuty niedbały paladyn" -msgstr[1] "zepsuty niedbały paladyn" -msgstr[2] "zepsuty niedbały paladyn" -msgstr[3] "zepsuty niedbały paladyn" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed military bot" -msgid_plural "broken disarmed military bots" -msgstr[0] "zepsuty rozbrojony bot wojskowy" -msgstr[1] "zepsuty rozbrojony bot wojskowy" -msgstr[2] "zepsuty rozbrojony bot wojskowy" -msgstr[3] "zepsuty rozbrojony bot wojskowy" - -#: lang/json/GENERIC_from_json.py -msgid "broken military trainer robot" -msgid_plural "broken military trainer robots" -msgstr[0] "zepsuty wojskowy robot treningowy" -msgstr[1] "zepsuty wojskowy robot treningowy" -msgstr[2] "zepsuty wojskowy robot treningowy" -msgstr[3] "zepsuty wojskowy robot treningowy" - -#. ~ Description for broken military trainer robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military trainer robot, shattered and inert. This one is armed " -"with an integrated paintball gun. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military robot" -msgid_plural "broken military robots" -msgstr[0] "zepsuty robot wojskowy" -msgstr[1] "zepsuty robot wojskowy" -msgstr[2] "zepsuty robot wojskowy" -msgstr[3] "zepsuty robot wojskowy" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 5.56mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 7.62mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 50 caliber firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 8x40mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flechette gun. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 40mm grenade launcher. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military flame robot" -msgid_plural "broken military flame robots" -msgstr[0] "zepsuty ognisty robot wojskowy" -msgstr[1] "zepsuty ognisty robot wojskowy" -msgstr[2] "zepsuty ognisty robot wojskowy" -msgstr[3] "zepsuty ognisty robot wojskowy" - -#. ~ Description for broken military flame robot +#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flamethrower. Could be stripped for parts." +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" +" lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "broken robo-guardian" -msgid_plural "broken robo-guardians" +msgid "TEST pipe" +msgid_plural "TEST pipes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for broken robo-guardian -#. ~ Description for broken robo-protector -#. ~ Description for broken robo-defender -#. ~ Description for {'str': 'broken glittering lady', 'str_pl': 'broken -#. glittering ladies'} -#. ~ Description for broken bitter spinster -#. ~ Description for broken fist king -#. ~ Description for broken atomic sultan -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "" -"Zniszczony robot z odzysku. Może być rozebrany na części ale przerobiony." - -#: lang/json/GENERIC_from_json.py -msgid "broken robote deluxe" -msgid_plural "broken robote deluxes" -msgstr[0] "zepsuty robot deluxe" -msgstr[1] "zepsuty robot deluxe" -msgstr[2] "zepsuty robot deluxe" -msgstr[3] "zepsuty robot deluxe" - -#. ~ Description for broken robote deluxe -#: lang/json/GENERIC_from_json.py -msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-protector" -msgid_plural "broken robo-protectors" -msgstr[0] "zepsuty robo-ochroniarz" -msgstr[1] "zepsuty robo-ochroniarz" -msgstr[2] "zepsuty robo-ochroniarz" -msgstr[3] "zepsuty robo-ochroniarz" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-defender" -msgid_plural "broken robo-defenders" -msgstr[0] "zepsuty robo-obrońca" -msgstr[1] "zepsuty robo-obrońca" -msgstr[2] "zepsuty robo-obrońca" -msgstr[3] "zepsuty robo-obrońca" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed advanced bot" -msgid_plural "broken disarmed advanced bots" -msgstr[0] "zepsuty rozbrojony zaawansowany bot" -msgstr[1] "zepsuty rozbrojony zaawansowany bot" -msgstr[2] "zepsuty rozbrojony zaawansowany bot" -msgstr[3] "zepsuty rozbrojony zaawansowany bot" - -#. ~ Description for broken disarmed advanced bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced robot" -msgid_plural "broken advanced robots" -msgstr[0] "zepsuty zaawansowany robot" -msgstr[1] "zepsuty zaawansowany robot" -msgstr[2] "zepsuty zaawansowany robot" -msgstr[3] "zepsuty zaawansowany robot" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated laser-" -"emitter. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated plasma-" -"ejector. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated electro-" -"caster. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated EMP " -"projector. Could be stripped for parts." -msgstr "" - #: lang/json/GENERIC_from_json.py -msgid "broken glittering lady" -msgid_plural "broken glittering ladies" +msgid "TEST sheet metal" +msgid_plural "TEST sheet metals" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: lang/json/GENERIC_from_json.py -msgid "broken bitter spinster" -msgid_plural "broken bitter spinsters" -msgstr[0] "zepsuty kwaśny wirnik" -msgstr[1] "zepsuty kwaśny wirnik" -msgstr[2] "zepsuty kwaśny wirnik" -msgstr[3] "zepsuty kwaśny wirnik" - -#: lang/json/GENERIC_from_json.py -msgid "broken chainsaw horror" -msgid_plural "broken chainsaw horrors" -msgstr[0] "zepsuty pilarz z horroru" -msgstr[1] "zepsuty pilarz z horroru" -msgstr[2] "zepsuty pilarz z horroru" -msgstr[3] "zepsuty pilarz z horroru" - -#. ~ Description for broken chainsaw horror -#. ~ Description for broken screeching terror -#. ~ Description for broken hooked nightmare -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken salvaged robot. Thank God it's finally dead. Could be stripped or" -" recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken screeching terror" -msgid_plural "broken screeching terrors" -msgstr[0] "zepsuty piszczący terror" -msgstr[1] "zepsuty piszczący terror" -msgstr[2] "zepsuty piszczący terror" -msgstr[3] "zepsuty piszczący terror" - -#: lang/json/GENERIC_from_json.py -msgid "broken hooked nightmare" -msgid_plural "broken hooked nightmares" -msgstr[0] "zepsuty hakowaty koszmar" -msgstr[1] "zepsuty hakowaty koszmar" -msgstr[2] "zepsuty hakowaty koszmar" -msgstr[3] "zepsuty hakowaty koszmar" - -#: lang/json/GENERIC_from_json.py -msgid "broken fist king" -msgid_plural "broken fist kings" -msgstr[0] "zniszczony król pięści" -msgstr[1] "zniszczony król pięści" -msgstr[2] "zniszczony król pięści" -msgstr[3] "zniszczony król pięści" - -#: lang/json/GENERIC_from_json.py -msgid "broken atomic sultan" -msgid_plural "broken atomic sultans" -msgstr[0] "zniszczony atomowy sułtan" -msgstr[1] "zniszczony atomowy sułtan" -msgstr[2] "zniszczony atomowy sułtan" -msgstr[3] "zniszczony atomowy sułtan" - -#. ~ Description for AI core -#: lang/json/GENERIC_from_json.py -msgid "A computer module for controlling robots." -msgstr "Moduł komputerowy SI do kontroli robotów." - -#: lang/json/GENERIC_from_json.py -msgid "surgery module" -msgid_plural "surgery modules" -msgstr[0] "moduł chirurgiczny" -msgstr[1] "moduł chirurgiczny" -msgstr[2] "moduł chirurgiczny" -msgstr[3] "moduł chirurgiczny" - -#. ~ Description for surgery module -#: lang/json/GENERIC_from_json.py -msgid "A microsurgery module for a medical robot." -msgstr "Moduł mikrochirurgiczny dla robotów medycznych." - -#: lang/json/GENERIC_from_json.py -msgid "pharmaceutical module" -msgid_plural "pharmaceutical modules" -msgstr[0] "moduł farmaceutyczny" -msgstr[1] "moduł farmaceutyczny" -msgstr[2] "moduł farmaceutyczny" -msgstr[3] "moduł farmaceutyczny" - -#. ~ Description for pharmaceutical module -#: lang/json/GENERIC_from_json.py -msgid "A pharmaceutical fabricating module for a medical robot." -msgstr "Moduł syntezy farmaceutyków dla robotów medycznych." - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral paintball gun" -msgid_plural "integral paintball guns" -msgstr[0] "zintegrowany paintball" -msgstr[1] "zintegrowany paintball" -msgstr[2] "zintegrowany paintball" -msgstr[3] "zintegrowany paintball" - -#. ~ Description for integral paintball gun -#: lang/json/GENERIC_from_json.py -msgid "" -"A high-powered paintball module used for safely testing robots or training " -"soldiers." -msgstr "" -"Wysokiej mocy moduł paintball'a używany do bezpiecznego testowania robotów " -"lub treningu żołnierzy. " - -#: lang/json/GENERIC_from_json.py -msgid "robot carrier" -msgid_plural "robot carriers" -msgstr[0] "transporter robotów" -msgstr[1] "transporter robotów" -msgstr[2] "transporter robotów" -msgstr[3] "transporter robotów" - -#. ~ Description for robot carrier -#: lang/json/GENERIC_from_json.py -msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large machine in place. It is " -"meant to hold large drones and robots for transport. Use it on a suitable " -"robot to capture, use it on an empty tile to release." -msgstr "" -"Ciężka rama z napinaczami i uchwytami montażowymi na ładunek, z dodatkowymi " -"relingami pozwalającymi transportować duże maszyny, drony i roboty. Użyj na " -"stosownym robocie lub robocie, by je schwytać, następnie użyj na pustym " -"miejscu by wypuścić." +msgid "TEST gallon jug" +msgid_plural "TEST gallon jugs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/GENERIC_from_json.py -msgid "TEST plank" -msgid_plural "TEST planks" +msgid "TEST small waterskin" +msgid_plural "TEST small waterskins" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: lang/json/GENERIC_from_json.py -msgid "TEST pipe" -msgid_plural "TEST pipes" +msgid "test balloon" +msgid_plural "test balloons" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for {'str': 'test balloon'} #: lang/json/GENERIC_from_json.py -msgid "TEST sheet metal" -msgid_plural "TEST sheet metals" +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "test pointy stick" +msgid_plural "test pointy sticks" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -76326,234 +76113,58 @@ msgid "A well-balanced sword for test purposes" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "a large artillery casing" -msgid_plural "large artillery casings" -msgstr[0] "duża łuska artyleryjska" -msgstr[1] "duża łuska artyleryjska" -msgstr[2] "duża łuska artyleryjska" -msgstr[3] "duża łuska artyleryjska" - -#: lang/json/GENERIC_from_json.py -msgid "30x113mm autocannon belt linkage" -msgid_plural "30x113mm autocannon belt linkages" -msgstr[0] "połączenia do pasa amunicyjnego autodziała 30x113mm" -msgstr[1] "połączenia do pasa amunicyjnego autodziała 30x113mm" -msgstr[2] "połączenia do pasa amunicyjnego autodziała 30x113mm" -msgstr[3] "połączenia do pasa amunicyjnego autodziała 30x113mm" - -#: lang/json/GENERIC_from_json.py -msgid "30mm canister" -msgid_plural "30mm canisters" -msgstr[0] "łuska 30mm" -msgstr[1] "łuska 30mm" -msgstr[2] "łuska 30mm" -msgstr[3] "łuska 30mm" - -#. ~ Description for 30mm canister -#: lang/json/GENERIC_from_json.py -msgid "A canister from a spent 30mm shell." -msgstr "Pusta łuska z wykorzystanej amunicji 30mm." - -#: lang/json/GENERIC_from_json.py -msgid "120mm canister" -msgid_plural "120mm canisters" -msgstr[0] "łuska 120mm" -msgstr[1] "łuska 120mm" -msgstr[2] "łuska 120mm" -msgstr[3] "łuska 120mm" - -#. ~ Description for 120mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 120mm shell, now an expensive paperweight." -msgstr "" -"Duża łuska ze zużytej amunicji 120mm, obecnie drogi przycisk do papieru." - -#: lang/json/GENERIC_from_json.py -msgid "155mm canister" -msgid_plural "155mm canisters" -msgstr[0] "łuska 155mm" -msgstr[1] "łuska 155mm" -msgstr[2] "łuska 155mm" -msgstr[3] "łuska 155mm" - -#. ~ Description for 155mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 155mm shell, now an expensive paperweight." -msgstr "" -"Duża łuska ze zużytej amunicji 155mm, obecnie drogi przycisk do papieru." - -#: lang/json/GENERIC_from_json.py -msgid "stabilized portal" -msgid_plural "stabilized portals" -msgstr[0] "ustabilizowany portal" -msgstr[1] "ustabilizowany portal" -msgstr[2] "ustabilizowany portal" -msgstr[3] "ustabilizowany portal" - -#. ~ Description for {'str': 'stabilized portal'} -#: lang/json/GENERIC_from_json.py -msgid "" -"As you gaze into the seemingly infinite depths of this portable hole in " -"reality, a phrase from a time forever gone echoes in your mind. \"There are" -" two things that are infinite: the universe and human kleptomania.\"" -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" +msgid "test box" +msgid_plural "test boxs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'vehicle shelving'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." -msgstr "" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" -msgstr[0] "zestaw paneli słonecznych" -msgstr[1] "zestaw paneli słonecznych" -msgstr[2] "zestaw paneli słonecznych" -msgstr[3] "zestaw paneli słonecznych" - -#. ~ Description for {'str': 'solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. However, this comes at the " -"cost of being prohibitively heavy." -msgstr "" -"Tuzin paneli słonecznych zestawionych na stelażu sięgającym kilka metrów " -"wzwyż. Utrzymuje kruche panele bezpiecznie z dala od potencjalnych zagrożeń " -"i zwiększa ich efektywność dzięki możliwości podążania za słońcem. Jednak " -"odbywa się to za cenę ograniczeń z uwagi na wielką wagę. " - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" -msgstr[0] "ulepszony zestaw paneli słonecznych" -msgstr[1] "ulepszony zestaw paneli słonecznych" -msgstr[2] "ulepszony zestaw paneli słonecznych" -msgstr[3] "ulepszony zestaw paneli słonecznych" - -#. ~ Description for {'str': 'upgraded solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able to track the sun. However, this comes" -" at the cost of being prohibitively heavy and obstructive." -msgstr "" -"Tuzin ulepszonych paneli słonecznych zestawionych na stelażu sięgającym " -"kilka metrów wzwyż. Utrzymuje kruche panele bezpiecznie z dala od " -"potencjalnych zagrożeń i zwiększa ich efektywność dzięki możliwości " -"podążania za słońcem. Jednak odbywa się to za cenę ograniczeń z uwagi na " -"wielką wagę i blokowanie przestrzeni." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" -msgstr[0] "ulepszone wzmocnione panele słoneczne" -msgstr[1] "ulepszone wzmocnione panele słoneczne" -msgstr[2] "ulepszone wzmocnione panele słoneczne" -msgstr[3] "ulepszone wzmocnione panele słoneczne" - -#. ~ Description for {'str': 'upgraded reinforced solar array'} +#. ~ Description for {'str': 'test box'} #: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded reinforced solar panels set on a chassis reaching several " -"meters high. It keeps the fragile panels safely away from any potential " -"threats and improves efficiency due to being able to track the sun. " -"However, this comes at the cost of being prohibitively heavy and " -"obstructive." +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." msgstr "" -"Tuzin ulepszonych wzmocnionych paneli słonecznych zestawionych na stelażu " -"sięgającym kilka metrów wzwyż. Utrzymuje kruche panele bezpiecznie z dala od" -" potencjalnych zagrożeń i zwiększa ich efektywność dzięki możliwości " -"podążania za słońcem. Jednak odbywa się to za cenę ograniczeń z uwagi na " -"wielką wagę i blokowanie przestrzeni." #: lang/json/GENERIC_from_json.py -msgid "gelectrode" -msgid_plural "gelectrodes" +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'gelectrode'} +#. ~ Description for test 14 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A strange biological anomaly, this blob seems capable of emitting light when" -" electricity is provided to it, from small lamps up to headlights. " -"Unfortunately there is no place to insert a battery, so you'll have to hook " -"it up to a vehicle's power grid. It seems pliable enough to pull apart…" +msgid "A thin rod exactly 14 cm in length" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "amorphous heart" -msgid_plural "amorphous hearts" -msgstr[0] "amorficzne serce" -msgstr[1] "amorficzne serce" -msgstr[2] "amorficzne serce" -msgstr[3] "amorficzne serce" +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'amorphous heart'} +#. ~ Description for test 15 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"This amorphous mass seems to have finished developing; its advanced internal" -" structures testifying to that. It is capable of locomotion through " -"internal hydraulic pressure, capable of moving substantial loads, and, in an" -" astounding display of intelligence, is capable of manipulating anything " -"it's attached to, whether blob-based or otherwise, through extended " -"pseudopods. You think you might be able to manipulate it, and through it, " -"all its attached parts. Though to do so you'll have to position yourself to" -" be in contact with it; and it appears unnervingly willing to accommodate " -"you…" +msgid "A thin rod exactly 15 cm in length" msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond frame" -msgid_plural "diamond frames" -msgstr[0] "diamentowa rama" -msgstr[1] "diamentowa rama" -msgstr[2] "diamentowa rama" -msgstr[3] "diamentowa rama" - -#. ~ Description for {'str': 'diamond frame'} #: lang/json/GENERIC_from_json.py -msgid "" -"A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " -"weight." -msgstr "" -"Błyszcząca brylantowo diamentowa rama pojazdu. Niewiarygodnie wytrzymała jak" -" na swoją wagę." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond plating" -msgid_plural "diamond platings" -msgstr[0] "diamentowe opancerzenie" -msgstr[1] "diamentowe opancerzenie" -msgstr[2] "diamentowe opancerzenie" -msgstr[3] "diamentowe opancerzenie" +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'diamond plating'} +#. ~ Description for {'str': 'test nuclear carafe'} #: lang/json/GENERIC_from_json.py msgid "" -"A piece of armor plating made of clear diamond. Incredibly strong for its " -"weight." +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." msgstr "" -"Płyty pancerne z czystego diamentu. Niewiarygodnie wytrzymałe jak na swoją " -"wagę." #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" @@ -78717,9 +78328,8 @@ msgstr[3] "" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." msgstr "" -"Standardowy 7-strzałowy stalowy magazynek pudełkowy do IMI Desert Eagle." #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 magazine" @@ -79357,21 +78967,6 @@ msgstr[3] "" msgid "A 50 round box magazine for use with Rivtech 8x40mm caseless firearms." msgstr "50 nabojowy pudełkowy magazynek do bezłuskowej broni Rivtech 8x40mm." -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "" - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" @@ -80194,144 +79789,6 @@ msgstr[3] "" msgid "A bin for holding solid fuel." msgstr "Kosz na paliwo stałe." -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 auto-magazine" -msgid_plural "CW-24 auto-magazines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for CW-24 auto-magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Zaawansowany automagazynek do karabinu CW-24. Podobnie do magazynku SVS " -"używa mikrorobotyki do załadowania pocisków." - -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 extended magazine" -msgid_plural "CW-24 extended magazines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for CW-24 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Rozszerzony automagazynek do karabinu CW-24. Podobnie do magazynku SVS używa" -" mikrorobotyki do załadowania pocisków." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 extended magazine" -msgid_plural "CWD-63 extended magazines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for CWD-63 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." -msgstr "" -"Tani 10-nabojowy magazynek pudełkowy do CWD-63. Nie jest tak niezawodny." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 magazine" -msgid_plural "CWD-63 magazines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for CWD-63 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"Since it's created for the .308 round, it doesn't need the curved shape of " -"the original magazine." -msgstr "" -"Ponieważ jest zaprojektowany do naboju .308, nie potrzebuje zakrzywionego " -"kształtu oryginalnego magazynka." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robodrum" -msgid_plural "SVS-24 robodrums" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for SVS-24 robodrum -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 135-round drum magazine. Like the auto-magazine, it loads " -"cartridges using microrobotics." -msgstr "" -"Zaawansowany 135-nabojowy magazynek bębnowy. Podobnie do auto-magazynka, " -"ładuje pociski za pomocą mikrorobotyki." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robomag" -msgid_plural "SVS-24 robomags" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for SVS-24 robomag -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 42-round auto-magazine. Unlike previous generations of " -"magazines, this one uses microrobotics to load cartridges." -msgstr "" -"Zaawansowany 42-nabojowy auto-magazynek. W przeciwieństwie do poprzedniej " -"generacji magazynków, ten ładuje pociski z użyciem mikrorobotyki." - -#. ~ Description for .454 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 6 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid ".454 8-round speedloader" -msgid_plural ".454 8-round speedloaders" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for .454 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 8 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid "Eagle 1776 magazine" -msgid_plural "Eagle 1776 magazines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Eagle 1776 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " -"to the Eagle 1776." -msgstr "" -"Amerykańskiej produkcji magazynek pudełkowy, zasilający pistolet Eagle 1776 " -"w 24 naboje .44 Magnum." - #: lang/json/MAGAZINE_from_json.py msgid "grenade machine gun belt" msgid_plural "grenade machine gun belts" @@ -80562,84 +80019,32 @@ msgid "" msgstr "" #: lang/json/MAGAZINE_from_json.py -msgid "30x113mm ammo belt" -msgid_plural "30x113mm ammo belts" +msgid "test disposable battery" +msgid_plural "test disposable batteries" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test +#. disposable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "BB hopper" -msgid_plural "BB hoppers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'BB hopper'} -#. ~ Description for {'str': 'pebble hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"small round shot into the weapon's chamber below. It is not very reliable, " -"but quick to reload." -msgstr "" -"Improwizowany magazynek do montowanej w pojeździe broni. To prosta metalowa " -"skrzynka z plastikowymi prowadnicami, które tworzą operowany grawitacyjnie " -"podajnik wrzucający małe pociski do zamka broni umieszczonej poniżej. Nie " -"jest przesadnie niezawodny, ale szybko się przeładowuje." - -#: lang/json/MAGAZINE_from_json.py -msgid "bolt hopper" -msgid_plural "bolt hoppers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'bolt hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted crossbow. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"crossbow bolt into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test disposable battery." msgstr "" -"Improwizowany magazynek do montowanej w pojeździe kuszy. To prosta metalowa " -"skrzynka z plastikowymi prowadnicami, które tworzą operowany grawitacyjnie " -"podajnik wrzucający bełty do kuszy umieszczonej poniżej. Nie jest przesadnie" -" niezawodny, i niezręcznie się go przeładowuje." #: lang/json/MAGAZINE_from_json.py -msgid "canister rack" -msgid_plural "canister racks" +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'canister rack'} +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test +#. rechargeable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"heavy canister into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test battery that may be recharged." msgstr "" -"Improwizowany magazynek do montowanej w pojeździe broni. To prosta metalowa " -"skrzynka z plastikowymi prowadnicami, które tworzą operowany grawitacyjnie " -"podajnik wrzucający ciężkie kanistry do broni umieszczonej poniżej. Nie jest" -" przesadnie niezawodny i niezręcznie się go przeładowuje." - -#: lang/json/MAGAZINE_from_json.py -msgid "pebble hopper" -msgid_plural "pebble hoppers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" @@ -80660,29 +80065,27 @@ msgid "Drifts the game away from realism and more towards sci-fi." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "C.R.I.T Expansion Mod" +msgid "Blaze Industries" msgstr "" -#. ~ Description for C.R.I.T Expansion Mod +#. ~ Description for Blaze Industries #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds a plethora of content: professions, guns/mods, WIP enemies, mutations, " -"martial arts, melee weapons, and some QOL changes such as plants from " -"cutting grass." +"Introduces the fictional corporation Blaze Industries, bringing advanced " +"vehicle modification to the consumer." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Craftable Gun Pack" -msgstr "Pakiet Broni do Wytworzenia" +msgid "C.R.I.T Expansion Mod" +msgstr "" -#. ~ Description for Craftable Gun Pack +#. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " -"balance." +"Adds a plethora of content: professions, guns/mods/weapons, WIP mobs, " +"mutations, MA styles, and some QOL innawoods changes. Use the readme to see " +"more details!" msgstr "" -"Dodaje więcej broni, które można zmontować i proch strzelniczy. UWAGA: " -"niszczy zamierzony balans." #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" @@ -80704,19 +80107,6 @@ msgid "" "occupation. Use other mods at your own risk!" msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Folding Parts pack" -msgstr "Pakiet Składanych Części" - -#. ~ Description for Folding Parts pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Makes solar panels and several other parts foldable, and adds foldable " -"quarterboards." -msgstr "" -"Czyni panele słoneczne i kilka innych części składanymi i dodaje składane " -"ćwierćpanele." - #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" msgstr "DinoMod" @@ -80727,28 +80117,6 @@ msgid "" "Adds dinosaurs. Some rideable, others less friendly. Life will find a way." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Icecoon's Arsenal" -msgstr "Arsenał Icecoon'a" - -#. ~ Description for Icecoon's Arsenal -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those gun nuts. Don't have enough near-future firearms in your life? " -"Add this mod today!" -msgstr "" -"Dla maniaków broni. Za mało broni z niedalekiej przyszłości w twoim życiu? " -"Dodaj ten mod już dziś!" - -#: lang/json/MOD_INFO_from_json.py -msgid "DeadLeaves' Fictional Guns" -msgstr "Fikcyjna Broń DeadLeaves'a" - -#. ~ Description for DeadLeaves' Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a bunch of rare, fictional weapons." -msgstr "Dodaje zestaw rzadkich, wymyślonych broni." - #: lang/json/MOD_INFO_from_json.py msgid "Fuji's Military Profession Pack" msgstr "" @@ -80803,55 +80171,30 @@ msgid "Fuji Structures mod support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Graphical Overmap More Locations" +msgid "Graphical Overmap Magiclysm" msgstr "" -#. ~ Description for Graphical Overmap More Locations +#. ~ Description for Graphical Overmap Magiclysm #: lang/json/MOD_INFO_from_json.py -msgid "More Locations mod support for Graphical Overmap." +msgid "Magiclysm support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Graphical Overmap Urban Development" -msgstr "" - -#. ~ Description for Graphical Overmap Urban Development -#: lang/json/MOD_INFO_from_json.py -msgid "Urban Development mod support for Graphical Overmap." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Garden Pots" -msgstr "Doniczki ogrodowe" - -#. ~ Description for Garden Pots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Allows you to grow seeds in craftable garden pots that can be carried around" -" as items. Perfect for the nomadic botanist." +msgid "Graphical Overmap More Locations" 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." +#. ~ Description for Graphical Overmap More Locations #: lang/json/MOD_INFO_from_json.py -msgid "Roadheader and other mining vehicles" +msgid "More Locations mod support for Graphical Overmap." msgstr "" -#. ~ Description for Roadheader and other mining vehicles #: lang/json/MOD_INFO_from_json.py -msgid "Adds a few mining vehicles, requires Vehicle Additions Pack." +msgid "Graphical Overmap Urban Development" msgstr "" +#. ~ Description for Graphical Overmap Urban Development #: lang/json/MOD_INFO_from_json.py -msgid "Hydroponics" -msgstr "Hydroponika" - -#. ~ Description for Hydroponics -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds hydroponic units, a furniture which can have crops planted in it for " -"increased yields. Spawn occasionally in labs or basements. Or build your " -"own." +msgid "Urban Development mod support for Graphical Overmap." msgstr "" #: lang/json/MOD_INFO_from_json.py @@ -80876,40 +80219,6 @@ msgstr "" msgid "Cataclysm but with magic spells!" msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "Ręczna Instalacja Implantów Bionicznych" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "" -"Pozawala KZB być instalowane ręcznie. Współgra dobrze z Bezpieczny Autodok." - -#: lang/json/MOD_INFO_from_json.py -msgid "Medieval and Historic Classes and Shields" -msgstr "" - -#. ~ Description for Medieval and Historic Classes and Shields -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Assorted fun classes and shields for the wannabe knight, legionary, and " -"more." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Modular Turrets" -msgstr "Modularne Wieżyczki" - -#. ~ Description for Modular Turrets -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Gives turrets swappable firearm modules, which can be reclaimed from broken " -"robots." -msgstr "" -"Daje wieżyczkom wymienialne moduły broni, które można pozyskać z zepsutych " -"robotów." - #: lang/json/MOD_INFO_from_json.py msgid "More Locations" msgstr "Więcej Lokacji" @@ -80923,28 +80232,6 @@ msgstr "" "Dodaje nowe Z-poziomowe budynki i lochy. Nadal niedoszlifowane. Przed " "generacją świata, możesz usunąć podfoldery, by wykosić niechciane lokacje." -#: lang/json/MOD_INFO_from_json.py -msgid "More Survival Tools" -msgstr "Więcej Narzędzi Surwiwalowych" - -#. ~ Description for More Survival Tools -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those who prefer being innawoods. Adds several tools, various recipes " -"additions/tweaks, plus two new professions." -msgstr "" -"Dla ludzi lasu. Dodaje trochę narzędzi, przepisów i podrasowań, oraz dwie " -"nowe profesje." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mundane Zombies" -msgstr "Normalne Zombie" - -#. ~ Description for Mundane Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all special zombies from the game." -msgstr "Usuwa wszelkie specjalne zombie z gry." - #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" msgstr "Zmutowani NPC" @@ -80969,15 +80256,6 @@ msgid "" "sweet treats." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Mythological Replicas" -msgstr "Mitologiczne Repliki" - -#. ~ Description for Mythological Replicas -#: lang/json/MOD_INFO_from_json.py -msgid "Adds recipes for replicas of mythological weapons." -msgstr "Dodaje przepisy na repliki mitologicznych broni." - #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" msgstr "Beta Obozu Straży Narodowej" @@ -80991,72 +80269,6 @@ msgstr "" "Pomóż testować obóz straży narodowej, zanim zostanie włączony do podstawowej" " gry. Opisz wrażenia w wątku w sekcji 'The Lab'." -#: lang/json/MOD_INFO_from_json.py -msgid "No Acid Zombies" -msgstr "Bez Kwasowych Zombie" - -#. ~ Description for No Acid Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all acid-based zombies from the game." -msgstr "Usuwa z gry zombie oparte na kwasie." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Ants" -msgstr "Bez Mrówek" - -#. ~ Description for No Ants -#: lang/json/MOD_INFO_from_json.py -msgid "Removes ants and anthills from the game" -msgstr "Usuwa mrówki i mrowiska z gry" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Bees" -msgstr "Bez Pszczół" - -#. ~ Description for No Bees -#: lang/json/MOD_INFO_from_json.py -msgid "Removes bees and beehives from the game" -msgstr "Usuwa pszczoły i ule z gry" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Big Zombies" -msgstr "Bez Wielkich Zombie" - -#. ~ Description for No Big Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " -"game." -msgstr "" -"Usuwa elektrycznych brutali, olbrzymy zombie, i szkieletowe olbrzymy z gry." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Explosive Zombies" -msgstr "Bez Wybuchowych Zombie" - -#. ~ Description for No Explosive Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all explosion-based zombies from the game." -msgstr "Usuwa z gry zombie wybuchających." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Filthy Clothing" -msgstr "Brak brudnych ubrań" - -#. ~ Description for No Filthy Clothing -#: lang/json/MOD_INFO_from_json.py -msgid "Clothes dropped by zombies will be completely clean." -msgstr "Ubrania upuszczane przez zombie będą całkowicie czyste." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Flaming Weapons" -msgstr "Bez Broni Ognistej" - -#. ~ Description for No Flaming Weapons -#: lang/json/MOD_INFO_from_json.py -msgid "Removes flaming melee weapons." -msgstr "Usuwa płonącą broń do walki wręcz." - #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" msgstr "Bez Grzybowych Potworów" @@ -81066,24 +80278,6 @@ msgstr "Bez Grzybowych Potworów" msgid "Removes fungal monsters and regions from the game." msgstr "Usuwa grzybowe potwory i regiony z gry." -#: lang/json/MOD_INFO_from_json.py -msgid "No Medieval Items" -msgstr "Bez Średniowiecznych Przedmiotów" - -#. ~ Description for No Medieval Items -#: lang/json/MOD_INFO_from_json.py -msgid "Removes medieval weapons, armors, and specific books." -msgstr "Usuwa średniowieczne bronie, zbroje i specyficzne książki." - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Mutagens" -msgstr "Wyłącz Mutageny" - -#. ~ Description for Disable Mutagens -#: lang/json/MOD_INFO_from_json.py -msgid "Removes mutagen items from the game." -msgstr "Usuwa przedmioty mutagenne z gry." - #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" msgstr "Wyłącz Potrzeby NPC'ów" @@ -81093,16 +80287,6 @@ msgstr "Wyłącz Potrzeby NPC'ów" msgid "Makes NPCs not require food, water or rest." msgstr "Sprawia że NPC nie potrzebują jedzenia, wody i odpoczynku." -#: lang/json/MOD_INFO_from_json.py -msgid "No Antique Firearms" -msgstr "Bez Antycznych Broni Palnych" - -#. ~ Description for No Antique Firearms -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all black powder and pre-Cold War firearms." -msgstr "" -"Usuwa wszelkie czarno-prochowe i pochodące sprzed Zimnej Wojny bronie palne." - #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" msgstr "" @@ -81112,42 +80296,6 @@ msgstr "" msgid "Removes above-ground rail stations from the game." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Religious Texts" -msgstr "Wyłącz Teksty Religijne" - -#. ~ Description for Disable Religious Texts -#: lang/json/MOD_INFO_from_json.py -msgid "Removes religious text items from the game." -msgstr "Usuwa religijne pisma z gry." - -#: lang/json/MOD_INFO_from_json.py -msgid "Prevent Zombie Revivication" -msgstr "Zapobiegaj Ożywieniu Zombi" - -#. ~ Description for Prevent Zombie Revivication -#: lang/json/MOD_INFO_from_json.py -msgid "Disables zombie revival." -msgstr "Wyłącza ożywianie zombie." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Fictional Guns" -msgstr "Bez Fikcyjnych Broni" - -#. ~ Description for No Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Removes fictional conventional firearms and ammunition." -msgstr "Usuwa konwencjonalną fikcyjną broń palną i amunicję." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Survivor Armor" -msgstr "Bez Zbroi Ocalonych" - -#. ~ Description for No Survivor Armor -#: lang/json/MOD_INFO_from_json.py -msgid "Removes survivor armor." -msgstr "Usuwa zbroje ocalonych." - #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" msgstr "Bez Potworów" @@ -81159,42 +80307,6 @@ msgid "" msgstr "" "Usuwa wszystkie potwory z gry, oprócz tych z kategorii 'dzikie zwierzęta'." -#: lang/json/MOD_INFO_from_json.py -msgid "Classic Roguelike Classes" -msgstr "Klasyczne Klasy i Profesje" - -#. ~ Description for Classic Roguelike Classes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a set of professions which correspond to classic Roguelike character " -"archetypes." -msgstr "" -"Dodaje zestaw profesji korespondujących z typowymi postaciami gier " -"awanturniczych." - -#: lang/json/MOD_INFO_from_json.py -msgid "Salvaged Robots" -msgstr "Roboty Z Odzysku" - -#. ~ Description for Salvaged Robots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Expands the types of robots and allows players to jury-rig broken robots " -"into functioning companions." -msgstr "" -"Rozszerza typy robotów i pozwala graczom na improwizowane przeróbki " -"zepsutych robotów w funkcjonalnych kompanów." - -#: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp -msgid "Sleep Deprivation" -msgstr "Niedobór Snu" - -#. ~ Description for Sleep Deprivation -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Enables sleep deprivation mechanics independently of a player's fatigue." -msgstr "Włącza mechanikę deprywacji snu niezależnej od zmęczenia gracza." - #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Skills" msgstr "" @@ -81214,30 +80326,6 @@ msgid "" "Adds mockup items, recipes, and other content for use by automated tests." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Tanks and Other Vehicles" -msgstr "Czołgi i Inne Pojazdy" - -#. ~ Description for Tanks and Other Vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a few armored fighting vehicles and other such things, requires Vehicle" -" Additions Pack." -msgstr "" -"Dodaje kilka opancerzonych pojazdów bojowych, itp. Wymaga Zestawu " -"Dodatkowych Pojazdów." - -#: lang/json/MOD_INFO_from_json.py -msgid "Bens GF recipes" -msgstr "Bezglutenowe przepisy Bena" - -#. ~ Description for Bens GF recipes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Some simple gluten free and lactose free alternative recipe options. NOT " -"EXHAUSTIVE." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" msgstr "Rozwój Urbanistyczny" @@ -81247,15 +80335,6 @@ msgstr "Rozwój Urbanistyczny" msgid "Holder for suburban and urban buildings." msgstr "Miejsce dla nisko- i wysoko-zurbanizowanych terenów (budynków)." -#: lang/json/MOD_INFO_from_json.py -msgid "Zombie Nightvision" -msgstr "Noktowizja Zombie" - -#. ~ Description for Zombie Nightvision -#: lang/json/MOD_INFO_from_json.py -msgid "Gives all zombies perfect nightvision." -msgstr "Daje wszystkim zombie doskonałą noktowizję." - #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" msgstr "Alternatywne Klucze Mapy" @@ -81267,19 +80346,6 @@ msgid "" "and use initial letter of their names instead of ^v<>." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Vehicle Additions Pack" -msgstr "Zestaw Dodatkowych Pojazdów" - -#. ~ Description for Vehicle Additions Pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Please see the included PAQ.txt in the mod folder if you encounter any " -"issues." -msgstr "" -"Sprawdź załączony plik PAQ.txt w folderze z modem jeśli napotkasz " -"jakiekolwiek problemy." - #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" msgstr "" @@ -81324,74 +80390,6 @@ msgstr "" msgid "A testbed/WIP mod to showcase regional_map_settings JSON changes." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "EZ-Mode Medical" -msgstr "" - -#. ~ Description for EZ-Mode Medical -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Increases broken limb mending speed and the effectiveness of healing items." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Makeshift Items Mod" -msgstr "Mod Prowizorycznych Przedmiotów" - -#. ~ Description for Makeshift Items Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds more improvised item variants and rebalances existing ones." -msgstr "" -"Dodaje więcej improwizowanych przedmiotów i zmienia balans istniejących." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mapgen Demo" -msgstr "Mapgen Demo" - -#. ~ Description for Mapgen Demo -#: lang/json/MOD_INFO_from_json.py -msgid "Demo for JSONized mapgens (megastore, missile silo)." -msgstr "" - -#: lang/json/MOD_INFO_from_json.py -msgid "Classes and Scenarios Mod" -msgstr "Zawody i Scenariusze" - -#. ~ Description for Classes and Scenarios Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds new classes and scenarios while rebalancing some existing ones." -msgstr "Dodaje nowe zawody i scenariusze i zmienia balans istniejących." - -#: lang/json/MOD_INFO_from_json.py -msgid "Necromancy" -msgstr "Nekromancja" - -#. ~ Description for Necromancy -#: lang/json/MOD_INFO_from_json.py -msgid "Adds the ability to revive creatures as minions." -msgstr "Dodaje zdolność ożywiania stworzeń jako sług." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Sci-Fi Equipment" -msgstr "Bez Ekwipunku S-F" - -#. ~ Description for No Sci-Fi Equipment -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes far-future Sci-Fi items such as powered armor and energy weapons." -msgstr "" -"Usuwa przedmioty Sci-Fi z dalekiej przyszłości takie jak zbroje wspomagane i" -" broń energetyczna." - -#: lang/json/MOD_INFO_from_json.py -msgid "Simplified Nutrition" -msgstr "Uproszczone Żywienie" - -#. ~ Description for Simplified Nutrition -#: lang/json/MOD_INFO_from_json.py -msgid "Disables vitamin requirements." -msgstr "Wyłącza zapotrzebowanie na witaminy." - #: lang/json/MOD_INFO_from_json.py msgid "Rural-Only Mapgen" msgstr "" @@ -81754,13 +80752,12 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skitterbot" msgid_plural "skitterbots" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "smyrgobot" +msgstr[1] "smyrgoboty" +msgstr[2] "smyrgobotów" +msgstr[3] "smyrgobotów" #. ~ Description for {'str': 'skitterbot'} -#. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py msgid "" "An insectoid robot the size of a small dog, designed for home security. " @@ -81792,10 +80789,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "prototype robot" msgid_plural "prototype robots" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "robot prototyp" +msgstr[1] "roboty prototypy" +msgstr[2] "robotów prototypów" +msgstr[3] "robotów prototypów" #. ~ Description for {'str': 'prototype robot'} #: lang/json/MONSTER_from_json.py @@ -82987,8 +81984,8 @@ msgstr[3] "grzybiczych molochów" #: lang/json/MONSTER_from_json.py msgid "" "Fungi bloom from the crevices in the ossified plates of this ponderous bone " -"titan, and it seems even it's eyes are lost to it. A dust of spores lands " -"on the ground with every sluggish stomp of it's heavy legs." +"titan, and it seems even its eyes are lost to it. A dust of spores lands on" +" the ground with every sluggish stomp of its heavy legs." msgstr "" #: lang/json/MONSTER_from_json.py @@ -83680,7 +82677,7 @@ msgstr[3] "" #: lang/json/MONSTER_from_json.py msgid "" "An amalgamation of throbbing organs from various creatures have fused " -"together into this lurching, vaguely humanoid shape. It's myriad roughly " +"together into this lurching, vaguely humanoid shape. Its myriad roughly " "formed mouths sussurate in a chorus of sibilant groans and whispers." msgstr "" @@ -83697,7 +82694,7 @@ msgstr[3] "" msgid "" "A seeping conglomeration of spasming muscle and organs have fused together " "into this towering caricature of the human form. Various organs fall off of" -" it's hulking body only to be reabsorbed moments later." +" its hulking body only to be reabsorbed moments later." msgstr "" #: lang/json/MONSTER_from_json.py @@ -85860,7 +84857,7 @@ msgstr "" "się prawie migotać w twoich zmysłach w sposób który obudza starożytne " "bezimienne strachy w głębi twojego umysłu." -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" msgstr[0] "" @@ -86251,6 +85248,25 @@ msgid "" "was limited due to a legal dispute." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from" +" solar cells embedded in its hull." +msgstr "" +"Wieżyczka TX-5LP Cerber to ulepszona wersja swojej poprzedniczki. " +"Zaopatrzona w najwyższej klasy trójlufowy system obrotowych działek " +"laserowych zasilanych z ogniw słonecznych wbudowanych w jej szkielet." + #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" @@ -86830,25 +85846,6 @@ msgstr "" "Trzy lampy szperacze wysokiej mocy na podstawie, ze sztuczną inteligencją do" " automatyzacji poszukiwań, które stale wyszukują cel." -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from" -" solar cells embedded in its hull." -msgstr "" -"Wieżyczka TX-5LP Cerber to ulepszona wersja swojej poprzedniczki. " -"Zaopatrzona w najwyższej klasy trójlufowy system obrotowych działek " -"laserowych zasilanych z ogniw słonecznych wbudowanych w jej szkielet." - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" @@ -86923,6 +85920,19 @@ msgid "" "so mobile anymore." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "eyebot" msgid_plural "eyebots" @@ -87756,10 +86766,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "boomer" msgid_plural "boomers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "wybuchacz" +msgstr[1] "wybuchacze" +msgstr[2] "wybuchaczy" +msgstr[3] "wybuchaczy" #. ~ Description for {'str': 'boomer'} #: lang/json/MONSTER_from_json.py @@ -87773,10 +86783,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "huge boomer" msgid_plural "huge boomers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "wielki wybuchacz" +msgstr[1] "wielkich wybuchaczy" +msgstr[2] "wielkich wybuchaczy" +msgstr[3] "wielkich wybuchaczy" #. ~ Description for {'str': 'huge boomer'} #: lang/json/MONSTER_from_json.py @@ -87821,41 +86831,6 @@ msgstr "" "pokrytego cystami zombie, że wygląda jakby w każdej chwili miał gwałtownie " "wybuchnąć przy najdrobniejszym naruszeniu." -#: lang/json/MONSTER_from_json.py -msgid "zombie grenadier" -msgid_plural "zombie grenadiers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'zombie grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear. Its hands " -"constantly fumble at its many pouches." -msgstr "" -"Niegdysiejszy żołnierz, ubrany od stóp do głów w wyposażenie bojowe. Jego " -"dłonie nieustannie obmacują liczne kieszenie jego ubioru." - -#: lang/json/MONSTER_from_json.py -msgid "zombie elite grenadier" -msgid_plural "zombie elite grenadiers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'zombie elite grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear and wearing a MOLLE" -" pack. Its hands quickly open and close its many pouches." -msgstr "" -"Niegdysiejszy żołnierz, ubrany od stóp do głów w wyposażenie bojowe i " -"noszący plecak MOLLE. Jego dłonie nieustannie otwierają i zamykają liczne " -"kieszenie jego ubioru." - #: lang/json/MONSTER_from_json.py msgid "crawler" msgid_plural "crawlers" @@ -88289,6 +87264,24 @@ msgstr "" "powietrze wydaje się być złowieszcze, jakby ciemniejsze i bardziej " "niebezpieczne." +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears" +" and guts teem with unmatched fecundity, as its gaze inspires fear of " +"nothing less than cosmic, inhuman ecstasy." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" @@ -88952,3540 +87945,2455 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "headless zombie" -msgid_plural "headless zombies" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'headless zombie'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Despite lacking a head, this zombie appears to have not gotten the memo, and" -" shambles aimlessly around without functioning senses. Black ooze pulses " -"out of its neck, and it stumbles around listlessly." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "headless horror" -msgid_plural "headless horrors" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'headless horror'} -#: lang/json/MONSTER_from_json.py -msgid "" -"This headless zombie has swollen to frightening proportions, towering almost" -" nine feet tall. Six-foot-long feelers of black ooze blindly wave from its " -"neck, violently twitching at nearby sounds, and it moves at terrifying speed" -" with its grotesquely-swollen hands." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Slasher Necromorph" -msgid_plural "Slasher Necromorphs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Slasher Necromorph -#: lang/json/MONSTER_from_json.py -msgid "" -"A horrifically twisted human body. Two massive, bladed appendages have " -"burst through its shoulders where they are poised above its head as it " -"stalks about with terrifying purpose." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Weak Slasher Necromorph" -msgid_plural "Weak Slasher Necromorphs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Weak Slasher Necromorph -#: lang/json/MONSTER_from_json.py -msgid "" -"A horrifically mutilated human body. Two scrawny blades have freshly " -"bursted through its hand to deal with prey and the haunting visage of a " -"jawless maw and a gaping wound in its forehead sends chills down your spine." -" The awkward steps it takes slows it down greatly." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Waster Necromorph" -msgid_plural "Waster Necromorphs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Waster Necromorph -#: lang/json/MONSTER_from_json.py -msgid "" -"Clad in heavy assault gear, an eerie light green glows beneath its helmet " -"from sunken eye sockets and a gaping mouth. Strange blade like points have " -"burst out of its arms making it a formidable force to be reckoned with." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Leaper Necromorph" -msgid_plural "Leaper Necromorphs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Leaper Necromorph -#: lang/json/MONSTER_from_json.py -msgid "" -"This once-human body is barely recognizable, scrambling about on its abdomen" -" as it leaps forward with immense arm strength. With elongated fangs that " -"are can easily mutilate your flesh, the grotesque face roars incessantly. " -"The lower body has fused together into one giant tail with a barbed spike." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Twitcher Necromorph" -msgid_plural "Twitcher Necromorphs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Twitcher Necromorph -#: lang/json/MONSTER_from_json.py -msgid "" -"With narrow blades coming out of its hands, this corpse spasmically dashes " -"to-and-fro with surprising speed. It carries itself quite steadily when " -"idle, further observation shows that the person before this husk was a " -"C.R.I.T S-I G.E.A.R operator." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Pack Necromorph" -msgid_plural "Pack Necromorphs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Pack Necromorph -#: lang/json/MONSTER_from_json.py -msgid "" -"A shrieking mutated child zombie. The face is is mainly blank with eyes " -"swollen shut and a torn-open mouth with flaps of flesh hanging to the side." -" A pair of seemingly purposeless appendages sprout from its shoulders " -"before ending in its arms. Its small hands end in sharp claws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Puker Necromorph" -msgid_plural "Puker Necromorphs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Puker Necromorph -#: lang/json/MONSTER_from_json.py -msgid "" -"A rather mutilated corpse covered in gaping sores. Hanging arms with hands " -"that have long corroded away reveal jagged edges that could easily pierce " -"into your flesh. A sticky, frothing yellow sludge flows from its exposed " -"internal organs to its unhinged jaw where it drips, hissing as it eats " -"through material." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Animate Arm" -msgid_plural "Animate Arms" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Animate Arm -#: lang/json/MONSTER_from_json.py -msgid "" -"A dismembered arm that slowly crawls forward. Occasionally, tentacles " -"sprout out from the wound and lash about wildly." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Dullahan" -msgid_plural "Dullahans" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for Dullahan -#: lang/json/MONSTER_from_json.py -msgid "" -"A headless humanoid that slowly sways. Ornate and functional armor adorn " -"this dreadful corpse which carries itself with an unerringly terrible " -"steadiness. A long tentacle has sprouted out of its right arm which " -"occasionally flails about wildly." -msgstr "" - -#. ~ Description for {'str': 'shocker zombie'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A human body with pale blue flesh, crackling with electrical energy. It " -"seems eager to tell you something." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "mr skeltal" -msgid_plural "mr skeltals" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'mr skeltal'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Devoid entirely of flesh and organs, this walking skeleton rattles you to " -"the bone. In its bony hand, it holds a pristine trumpet, unmarred by the " -"end of the world." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "minion of skeltal" -msgid_plural "minions of skeltal" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'minion of skeltal', 'str_pl': 'minions of -#. skeltal'} -#: lang/json/MONSTER_from_json.py -msgid "A lesser skeleton, raised by the forlorn dooting of a trumpet." -msgstr "Pomniejszy szkielet, przyzwany samotnym trąbieniem trąbki." - -#: lang/json/MONSTER_from_json.py -msgid "Smoky bear" -msgid_plural "Smoky bears" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Smoky bear'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A smoking husk is all that remains of this once proud bear. Its black eyes " -"gaze at you with malice… and hunger." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "emissary" -msgid_plural "emissaries" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'emissary', 'str_pl': 'emissaries'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A towering, metallic creature with a stunningly beautiful design and " -"brilliantly shining etchings, standing atop three segmented legs. The " -"tentacles that drift off of its central chassis are tipped with strange " -"looking devices as it strides slowly across the shatterd landscape. This " -"one seems less aggressive than those seen on the frontlines of the Arrival, " -"studying its surroundings and probing things in the environment with a " -"variety of internal tools. A sickeningly sweet gas hangs around it." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "The emissary emits a stream of sedative gas!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "emissary of pestilence" -msgid_plural "emissaries of pestilence" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'emissary of pestilence', 'str_pl': 'emissaries -#. of pestilence'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A towering, stories-tall metallic creature standing atop three long legs " -"connected to a central chassis. It would be stunningly beautiful with its " -"glowing golden inlays and celestial design, were it not for the gas that " -"pours from its tentacle-mounted guns that despoils the landscape and makes " -"your skin prickle just looking at its toxic, likely radioactive, glory. Its" -" hums hauntingly as it moves and booming footsteps often heralded trouble to" -" come during the Arrival, now is no different." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Putrid gas rolls across the landscape!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "emissary of flame" -msgid_plural "emissaries of flame" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'emissary of flame', 'str_pl': 'emissaries of -#. flame'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Like all emissaries, this breathtaking metallic creature stands atop three " -"long legs, with many more segmented tentacles eminating from its central " -"chassis and a glowing halo about its head. This one is far more terrifying " -"though, its claim to fame being some sort of high-intensity energy cannon, " -"capable of rending whatever it touches asunder in an explosive burst of " -"plasma and flame. Its unique chirping and booming footsteps often heralded " -"trouble to come during the Arrival, and now is no different." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Sound returns as the emissary's cannon roars to life!!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "order surveillance drone" -msgid_plural "order surveillance drones" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'order surveillance drone'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A small, sleek, white-plated robot with the golden insignia of the Order " -"stamped on it. Capable of limited flight, it hovers about the ruins of the " -"former world, onboard cameras and spotlights impartial witness to the chaos " -"around it. Who knows might be watching on the other side…" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "order seeker drone" -msgid_plural "order seeker drones" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'order seeker drone'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A small, sleek, white-plated robot with the golden insignia of the Order " -"stamped on it. Capable of limited flight, it hovers about the ruins of the " -"former world, using a suite of rather sharp looking retractable tools, a " -"bright camera flash, and integrated 'arms' to manipulate the world around it" -" with surprising dexterity and procure samples. It seems to watch you " -"closely…" -msgstr "" - -#. ~ Attack message of monster "{'str': 'order seeker drone'}"'s spell "None" -#: lang/json/MONSTER_from_json.py -msgid "%1$s blinds %3$s with its integrated camera!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "sewer lurker" -msgid_plural "sewer lurkers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'sewer lurker'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A dripping creature, a writhing mass of tentacles attached to a gnashing " -"maw, this thing seems to have found its home among trash and sewage. It is " -"an ambush predator, prefering to lurk just beneath the cloudy water before " -"something comes close enough to snag with its long tentacles." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "lurker" -msgid_plural "lurkers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'lurker'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A long, serpentine body, dark and murky just like the waters it inhabits. " -"Tendrils trail behind it, vestigial now given the innumerable teeth gnashing" -" in its mouth. It prefers to lurk just below the surface, drifting and " -"still like an unassuming piece of floatsam until something gets too close." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "moss lizard" -msgid_plural "moss lizards" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for moss lizard -#: lang/json/MONSTER_from_json.py -msgid "" -"A cow-sized reptoid, covered in what appears to be a thick layer of mossy " -"vegetation and rocks. It trudges about the landscape on sturdy legs, " -"foraging whatever flora it can reach with sharp little teeth. It doesn't " -"seem to mind you too much." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "pack lizard" -msgid_plural "pack lizards" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for pack lizard -#: lang/json/MONSTER_from_json.py -msgid "" -"A slim reptoid about the size of a big dog, with a thick mane of what looks " -"like rather pretty orange-blue 'feathers' around its head. Frond-like " -"protrustions grow from the top of its head down to the base of its tail, " -"glowing faintly when in the presence of other members of its pack." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "wisp" -msgid_plural "wisp" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'wisp'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A small, fist sized critter that looks like a floating slug with " -"bioluminescent markings, capable of limited flight through utilization of " -"membrenous, winglike protrustions and the secretion of a faint white mist. " -"It is most commonly found around zipping around flowers, fruits, and other " -"sugary substances in small, communal groups. It regards you with curiosity," -" occasionally flashing its markings at you as if trying to communicate." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "bileworm" -msgid_plural "bileworms" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'bileworm'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A huge creature that smells like death, befitting its preferred diet of " -"carrion and other rotting organic material, though it may attack live prey " -"if it is hungry. Its favorite tactic is dissolving its food with its highly" -" acidic vomit, and then consuming the resulting liquified remains. It is " -"capable of both burrowing and limited land travel, with the help of a " -"multitude of stocky appendages that surround its mouth." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray" -msgid_plural "strays" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray rockfeeder" -msgid_plural "stray rockfeeders" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray rockfeeder'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A swollen and mishappen body pierced from the inside by growths of rocks, " -"the lower half of its face nothing a distended jaw full of gnashing, " -"crystalline teeth. It lets out bloodcurdling howls of pain and constantly " -"drips a foul smelling slurry of rocky sludge and bile." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray crystaltender" -msgid_plural "stray crystaltenders" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray crystaltender'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Little more than a moving mound of crystal and meat that occasionally spits " -"up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures" -" skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray prowler" -msgid_plural "stray prowlers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray prowler'} -#: lang/json/MONSTER_from_json.py -msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with" -" tusks of polished stone and fingers tipped with crystal-fused claws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray predator'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of" -" time before the very shell that protects it weighs it down to the ground." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray bruiser" -msgid_plural "stray bruisers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray bruiser'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray titan" -msgid_plural "stray titans" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray titan'} -#: lang/json/MONSTER_from_json.py -msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its" -" own weight." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray husk'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to" -" alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray waif" -msgid_plural "stray waifs" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray waif'} -#: lang/json/MONSTER_from_json.py -msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray tinder'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray creep" -msgid_plural "stray creeps" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray creep'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "stray wretch" -msgid_plural "stray wretches" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} -#: lang/json/MONSTER_from_json.py -msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet" -" at some point, but now it leaps and skitters around like something out of a" -" nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion" -" across its body." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "germinating crystal mass" -msgid_plural "germinating crystal masses" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'germinating crystal mass', 'str_pl': -#. 'germinating crystal masses'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A human-sized mound of shimmering blue-purple crystals growing on the base " -"of what looks like a mound of foul smelling garbage and organic leftovers. " -"Long, thin tendrils appear to grow out of the mound, and are subtly rooting " -"down into the ground below it, boring through dirt and concrete alike. It " -"crackles weakly with electrical energy. If you look closely, it almost " -"looks like something wet and meaty is squirming just inside the inner shell " -"of crystals…" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "resonant crystal mass" -msgid_plural "resonant crystal masses" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'resonant crystal mass', 'str_pl': 'resonant -#. crystal masses'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A set of rail thin crystals growing haphazardly from a mound of rock and " -"composted organic matter, fastened in place by thick strands of bizzare " -"alien material. The buzzing of natural energy playing among the tines seems" -" culminate into an almost musical sound. While pleasant at a distance, this" -" can devolve to a deafening high pitched whine when it feels threatened." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "flailing crystal mass" -msgid_plural "flailing crystal masses" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'flailing crystal mass', 'str_pl': 'flailing -#. crystal masses'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A tall, singular crystal, growing out of a sizable pile of debris that has " -"sprouted a multitude of thin, whiplike tendrils that constantly snake around" -" it like feelers. It frequently grabs nearby objects and drags them into " -"the pile beneath it, as if hoarding." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "energized crystal mass" -msgid_plural "energized crystal masses" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'energized crystal mass', 'str_pl': 'energized -#. crystal masses'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A crooked, fiercely glowing blue-purple crystal that visibly discharges " -"electricity into the surrounding environment without any particular intent." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "crystal mass wall" -msgid_plural "crystal mass walls" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'crystal mass wall'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "crystal mass hive" -msgid_plural "crystal mass hives" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'crystal mass hive'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A towering mass of blue-purple crystal chunks coverd in small, fist-sized " -"holes, from which drips a disgusting, faintly glowing rock slurry - perhaps " -"a nutrient mix for its young. After all, it seems to subtly pulsate, as if " -"more organic than its mineral appearance would suggest. The air around it " -"perpetually crackles with palpable energy and menaces with a set of thick, " -"meaty tendrils with razor-like barbs, with something else just as unseemly " -"writhing just beneath the murky surface of the glassy 'rocks'." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'crystal mite'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A tiny, multilegged creature that appears to be made of a chunk of crystal." -" It skitters around on wire-like legs, eating bits of organic leftovers to " -"gain mass in hopes of one day seeding a crystal colony of its own." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'engorged crystal mite'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into" -" a proper crystal mass." -msgstr "" - -#. ~ Description for {'str': 'C-4 hack'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated kamikaze drone, this small flying robot appears to have some " -"C-4 inside." -msgstr "" - -#. ~ Description for {'str': 'flashbang hack'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated kamikaze drone, this small flying robot appears to have a " -"flashbang inside." -msgstr "" - -#. ~ Description for {'str': 'tear gas hack'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated kamikaze drone, this small flying robot appears to have a tear " -"gas canister inside." -msgstr "" - -#. ~ Description for {'str': 'grenade hack'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated kamikaze drone, this small flying robot appears to have a " -"grenade inside." -msgstr "" - -#. ~ Description for {'str': 'manhack'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated anti-personnel drone, a small flying robot surrounded by " -"whirring blades." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Compsognathus" -msgid_plural "Compsognathus" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'Compsognathus'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." -msgstr "" -"Dwunożny dinozaur rozmiaru indyka. Jego zęby i szpony są małe lecz ostre." - -#: lang/json/MONSTER_from_json.py -msgid "Gallimimus" -msgid_plural "Gallimimus" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'Gallimimus'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A feathered bipedal dinosaur, standing as tall as a human. It looks " -"somewhat like a reptilian ostrich." -msgstr "" -"Upierzony dwunożny dinozaur, wysokości równej człowieczej. Wygląda nieco jak" -" gadzia wersja strusia." - -#: lang/json/MONSTER_from_json.py -msgid "Pachycephalosaurus" -msgid_plural "Pachycephalosaurus" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'Pachycephalosaurus'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A feathered bipedal dinosaur, standing as tall as a human. It looks like a " -"reptilian ostrich with a round hard-looking domed head." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Spinosaurus" -msgid_plural "Spinosaurus" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'Spinosaurus'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A huge dinosaur about the size of a small house, with a ferocious crocodile-" -"like head and a sail on its back." -msgstr "" -"Wielki dinozaur rozmiaru małego konia, ze straszliwymi krokodylopodobną " -"głową i żaglem na plecach." - -#: lang/json/MONSTER_from_json.py -msgid "Tyrannosaurus rex" -msgid_plural "Tyrannosaurus rex" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'Tyrannosaurus rex'} -#: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "Triceratops" -msgid_plural "Triceratops" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'Triceratops'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A massive rhino-like dinosaur with a bony crest from which three large horns" -" emerge." -msgstr "" -"Masywny podobny do nosorożca dinozaur z kościstym grzebieniem z którego " -"wystają trzy duże rogi." - -#: lang/json/MONSTER_from_json.py -msgid "Stegosaurus" -msgid_plural "Stegosaurus" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'Stegosaurus'} -#: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." -msgstr "Duży czworonożny dinozaur z płytami na plecach, i kolczastym ogonem." - -#: lang/json/MONSTER_from_json.py -msgid "Ankylosaurus" -msgid_plural "Ankylosaurus" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str_sp': 'Ankylosaurus'} -#: lang/json/MONSTER_from_json.py -msgid "" -"This dinosaur looks like a giant prehistoric armadillo. Its tail ends in a " -"massive spiked club of bone." -msgstr "" -"Dinozaur przypominający wielkiego prehistorycznego pancernika. Jego ogon " -"zakończony jest masywną kolczastą pałką kostną." - -#: lang/json/MONSTER_from_json.py -msgid "Allosaurus" -msgid_plural "Allosaurus" +msgid "Schwarz Walder" +msgid_plural "Schwarz Walders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str_sp': 'Allosaurus'} +#. ~ Description for {'str': 'Schwarz Walder'} #: lang/json/MONSTER_from_json.py msgid "" -"A large predatory bipedal dinosaur, with tiger-like stripes on its broad " -"back." +"Schwarz Walders were originally developed by a German company as forest " +"rangers for the expanded Black Forest Conservation Area. Shortly afterwards" +" it was determined that they also made excellent long range reconnaissance " +"units that could operate independently indefinitely. Pre-Cataclysm they " +"lived on every continent in a variety of jobs." msgstr "" -"Duży drapieżny dwunożny dinozaur, z tygrysimi pasami na szerokich plecach." #: lang/json/MONSTER_from_json.py -msgid "Eoraptor" -msgid_plural "Eoraptors" +msgid "Schwarz Walder cub" +msgid_plural "Schwarz Walder cubs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'Eoraptor'} +#. ~ Description for {'str': 'Schwarz Walder cub'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." +"A young Schwarz Walder. If one is out here, a very protective parent is " +"likely nearby." msgstr "" -"Dwunożny dinozaur wielkości kurczaka. Przeczesuje podszycie w poszukiwaniu " -"małych zwierząt i roślin." #: lang/json/MONSTER_from_json.py -msgid "Velociraptor" -msgid_plural "Velociraptors" +msgid "infeme" +msgid_plural "infemes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'Velociraptor'} +#. ~ Description for {'str': 'infeme'} #: lang/json/MONSTER_from_json.py msgid "" -"A small bipedal dinosaur covered with feathers. Small, hooked claws emerge " -"from its feet and hands." +"The Infeme are uplifted from apes and other near human ancestors. The Zulu " +"word for monkey became the catch-all term for many species of uplifts " +"whether majority chimp, gorilla or baboon. They've probably formed colonies" +" hidden from the Cataclysm." msgstr "" -"Mały dwunożny dinozaur pokryty piórami. Małe hakowate szpony wystają mu z " -"nóg i łap." #: lang/json/MONSTER_from_json.py -msgid "Deinonychus" -msgid_plural "Deinonychus" +msgid "headless zombie" +msgid_plural "headless zombies" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str_sp': 'Deinonychus'} +#. ~ Description for {'str': 'headless zombie'} #: lang/json/MONSTER_from_json.py msgid "" -"A medium-sized bipedal dinosaur covered with feathers. At the end of each " -"foot is a large sickle-like claw." +"Despite lacking a head, this zombie appears to have not gotten the memo, and" +" shambles aimlessly around without functioning senses. Black ooze pulses " +"out of its neck, and it stumbles around listlessly." msgstr "" -"Średnich rozmiarów dwunożny opierzony dinozaur. Na końcu każdej stopy ma " -"sierpowaty szpon." #: lang/json/MONSTER_from_json.py -msgid "Utahraptor" -msgid_plural "Utahraptors" +msgid "headless horror" +msgid_plural "headless horrors" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'Utahraptor'} +#. ~ Description for {'str': 'headless horror'} #: lang/json/MONSTER_from_json.py msgid "" -"A large bipedal dinosaur with feathered arms, a long tail, and scythe-like " -"claws." -msgstr "" -"Duży dwunożny dinozaur z opierzonymi ramionami, długim ogonem, i " -"sierpowatymi pazurami." +"This headless zombie has swollen to frightening proportions, towering almost" +" nine feet tall. Six-foot-long feelers of black ooze blindly wave from its " +"neck, violently twitching at nearby sounds, and it moves at terrifying speed" +" with its grotesquely-swollen hands." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "Parasaurolophus" -msgid_plural "Parasaurolophus" +msgid "Haunting Forest Walker" +msgid_plural "Haunting Forest Walkers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str_sp': 'Parasaurolophus'} +#. ~ Description for {'str': 'Haunting Forest Walker'} #: lang/json/MONSTER_from_json.py msgid "" -"A huge mottled dinosaur with a blunt head crest. It contentedly strips " -"leaves from a nearby shrub." +"This towering zombie is covered in wounds and shedding fur. Once it may " +"have prevented forest fires in national parks, now it kills anything it " +"catches." msgstr "" -"Wielki cętkowany dinozaur z tępym grzebieniem na głowie. Bezustannie " -"oskubuje z liści pobliskie krzewy." #: lang/json/MONSTER_from_json.py -msgid "Dimorphodon" -msgid_plural "Dimorphodon" +msgid "rotting grodd" +msgid_plural "rotting grodds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str_sp': 'Dimorphodon'} +#. ~ Description for {'str': 'rotting grodd'} #: lang/json/MONSTER_from_json.py msgid "" -"A feathered flying reptile over three feet long, with short wings and a big " -"colorful beak." +"Imagine a gorilla. Now imagine it dead and rotting and somehow looking at " +"you with more hate than you had previously imagined possible." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "Dilophosaurus" -msgid_plural "Dilophosaurus" +msgid "Ghoulodon" +msgid_plural "Ghoulodons" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str_sp': 'Dilophosaurus'} +#. ~ Description for {'str': 'Ghoulodon'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." +msgid "" +"An undead Uplifted Elephant of ginormous size. It still wears its assault " +"grade armor." msgstr "" -"Średni dinozaur z niezdrowo wyglądającą zieloną żółcią kapiącą mu spomiędzy " -"zębów." #: lang/json/MONSTER_from_json.py -msgid "greenish yellow hatchling" -msgid_plural "greenish yellow hatchlings" +msgid "Slasher Necromorph" +msgid_plural "Slasher Necromorphs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for greenish yellow hatchling +#. ~ Description for Slasher Necromorph #: lang/json/MONSTER_from_json.py msgid "" -"A tiny dinosaur hatchling with huge shiny eyes, it could be from a number of" -" different species." +"A horrifically twisted human body. Two massive, bladed appendages have " +"burst through its shoulders where they are poised above its head as it " +"stalks about with terrifying purpose." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "light green and yellow hatchling" -msgid_plural "light green and yellow hatchlings" +msgid "Weak Slasher Necromorph" +msgid_plural "Weak Slasher Necromorphs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Weak Slasher Necromorph #: lang/json/MONSTER_from_json.py -msgid "red and white hatchling" -msgid_plural "red and white hatchlings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "" +"A horrifically mutilated human body. Two scrawny blades have freshly " +"bursted through its hand to deal with prey and the haunting visage of a " +"jawless maw and a gaping wound in its forehead sends chills down your spine." +" The awkward steps it takes slows it down greatly." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "light red and white hatchling" -msgid_plural "light red and white hatchlings" +msgid "Waster Necromorph" +msgid_plural "Waster Necromorphs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Waster Necromorph #: lang/json/MONSTER_from_json.py -msgid "light green and magenta hatchling" -msgid_plural "light green and magenta hatchlings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "" +"Clad in heavy assault gear, an eerie light green glows beneath its helmet " +"from sunken eye sockets and a gaping mouth. Strange blade like points have " +"burst out of its arms making it a formidable force to be reckoned with." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "green and magenta hatchling" -msgid_plural "green and magenta hatchlings" +msgid "Leaper Necromorph" +msgid_plural "Leaper Necromorphs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Leaper Necromorph #: lang/json/MONSTER_from_json.py -msgid "brown and magenta hatchling" -msgid_plural "brown and magenta hatchlings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "" +"This once-human body is barely recognizable, scrambling about on its abdomen" +" as it leaps forward with immense arm strength. With elongated fangs that " +"are can easily mutilate your flesh, the grotesque face roars incessantly. " +"The lower body has fused together into one giant tail with a barbed spike." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "brown and white hatchling" -msgid_plural "brown and white hatchlings" +msgid "Twitcher Necromorph" +msgid_plural "Twitcher Necromorphs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Twitcher Necromorph #: lang/json/MONSTER_from_json.py -msgid "dark gray and yellow hatchling" -msgid_plural "dark gray and yellow hatchlings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "" +"With narrow blades coming out of its hands, this corpse spasmically dashes " +"to-and-fro with surprising speed. It carries itself quite steadily when " +"idle, further observation shows that the person before this husk was a " +"C.R.I.T S-I G.E.A.R operator." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "red and green hatchling" -msgid_plural "red and green hatchlings" +msgid "Pack Necromorph" +msgid_plural "Pack Necromorphs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Pack Necromorph #: lang/json/MONSTER_from_json.py -msgid "dark gray and white hatchling" -msgid_plural "dark gray and white hatchlings" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "" +"A shrieking mutated child zombie. The face is is mainly blank with eyes " +"swollen shut and a torn-open mouth with flaps of flesh hanging to the side." +" A pair of seemingly purposeless appendages sprout from its shoulders " +"before ending in its arms. Its small hands end in sharp claws." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "dark gray and magenta hatchling" -msgid_plural "dark gray and magenta hatchlings" +msgid "Puker Necromorph" +msgid_plural "Puker Necromorphs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Puker Necromorph #: lang/json/MONSTER_from_json.py -msgid "light gray and yellow hatchling" -msgid_plural "light gray and yellow hatchlings" +msgid "" +"A rather mutilated corpse covered in gaping sores. Hanging arms with hands " +"that have long corroded away reveal jagged edges that could easily pierce " +"into your flesh. A sticky, frothing yellow sludge flows from its exposed " +"internal organs to its unhinged jaw where it drips, hissing as it eats " +"through material." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Animate Arm" +msgid_plural "Animate Arms" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Animate Arm #: lang/json/MONSTER_from_json.py -msgid "magenta and green hatchling" -msgid_plural "magenta and green hatchlings" +msgid "" +"A dismembered arm that slowly crawls forward. Occasionally, tentacles " +"sprout out from the wound and lash about wildly." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Dullahan" +msgid_plural "Dullahans" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for Dullahan #: lang/json/MONSTER_from_json.py -msgid "Z-Rex" -msgid_plural "Z-Rexes" +msgid "" +"A headless humanoid that slowly sways. Ornate and functional armor adorn " +"this dreadful corpse which carries itself with an unerringly terrible " +"steadiness. A long tentacle has sprouted out of its right arm which " +"occasionally flails about wildly." +msgstr "" + +#. ~ Description for {'str': 'shocker zombie'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A human body with pale blue flesh, crackling with electrical energy. It " +"seems eager to tell you something." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "mr skeltal" +msgid_plural "mr skeltals" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'Z-Rex', 'str_pl': 'Z-Rexes'} +#. ~ Description for {'str': 'mr skeltal'} #: lang/json/MONSTER_from_json.py -msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." +msgid "" +"Devoid entirely of flesh and organs, this walking skeleton rattles you to " +"the bone. In its bony hand, it holds a pristine trumpet, unmarred by the " +"end of the world." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "improvised SMG turret" -msgid_plural "improvised SMG turrets" +msgid "minion of skeltal" +msgid_plural "minions of skeltal" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "CROWS II, heavy machinegun" -msgid_plural "CROWS II, heavy machineguns" +#. ~ Description for {'str': 'minion of skeltal', 'str_pl': 'minions of +#. skeltal'} +#: lang/json/MONSTER_from_json.py +msgid "A lesser skeleton, raised by the forlorn dooting of a trumpet." +msgstr "Pomniejszy szkielet, przyzwany samotnym trąbieniem trąbki." + +#: lang/json/MONSTER_from_json.py +msgid "Smoky bear" +msgid_plural "Smoky bears" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'CROWS II, heavy machinegun'} +#. ~ Description for {'str': 'Smoky bear'} #: lang/json/MONSTER_from_json.py msgid "" -"A remote weapon system derived from the M153 CROWS II and enhanced with " -"autonomous operation software. Thousands of these were deployed by the US " -"military before the Cataclysm and they were valued for their use in engaging" -" anything up to light vehicles at long range without exposing the operator." -" This one is fitted with a heavy machinegun." +"A smoking husk is all that remains of this once proud bear. Its black eyes " +"gaze at you with malice… and hunger." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "CROWS II, light machinegun" -msgid_plural "CROWS II, light machineguns" +msgid "emissary" +msgid_plural "emissaries" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'CROWS II, light machinegun'} +#. ~ Description for {'str': 'emissary', 'str_pl': 'emissaries'} #: lang/json/MONSTER_from_json.py msgid "" -"A remote weapon system derived from the M153 CROWS II and enhanced with " -"autonomous operation software. Thousands of these were deployed by the US " -"military before the Cataclysm and they were valued for their use in engaging" -" infantry without exposing the operator. This one is fitted with a light " -"machine gun." +"A towering, metallic creature with a stunningly beautiful design and " +"brilliantly shining etchings, standing atop three segmented legs. The " +"tentacles that drift off of its central chassis are tipped with strange " +"looking devices as it strides slowly across the shatterd landscape. This " +"one seems less aggressive than those seen on the frontlines of the Arrival, " +"studying its surroundings and probing things in the environment with a " +"variety of internal tools. A sickeningly sweet gas hangs around it." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "autonomous rifle TALON UGV" -msgid_plural "autonomous rifle TALON UGVs" +msgid "The emissary emits a stream of sedative gas!" +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "emissary of pestilence" +msgid_plural "emissaries of pestilence" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'autonomous rifle TALON UGV'} +#. ~ Description for {'str': 'emissary of pestilence', 'str_pl': 'emissaries +#. of pestilence'} #: lang/json/MONSTER_from_json.py msgid "" -"A TALON unmanned ground vehicle equipped with a standard assault rifle. It " -"is a small tracked UGV with an array of motors and sensors covering its " -"weapon mount." +"A towering, stories-tall metallic creature standing atop three long legs " +"connected to a central chassis. It would be stunningly beautiful with its " +"glowing golden inlays and celestial design, were it not for the gas that " +"pours from its tentacle-mounted guns that despoils the landscape and makes " +"your skin prickle just looking at its toxic, likely radioactive, glory. Its" +" hums hauntingly as it moves and booming footsteps often heralded trouble to" +" come during the Arrival, now is no different." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "autonomous launcher TALON UGV" -msgid_plural "autonomous launcher TALON UGVs" +msgid "Putrid gas rolls across the landscape!" +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "emissary of flame" +msgid_plural "emissaries of flame" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'autonomous launcher TALON UGV'} +#. ~ Description for {'str': 'emissary of flame', 'str_pl': 'emissaries of +#. flame'} #: lang/json/MONSTER_from_json.py msgid "" -"A TALON unmanned ground vehicle equipped with a revolver grenade launcher. " -"It is a small tracked UGV with an array of motors and sensors covering its " -"weapon mount." +"Like all emissaries, this breathtaking metallic creature stands atop three " +"long legs, with many more segmented tentacles eminating from its central " +"chassis and a glowing halo about its head. This one is far more terrifying " +"though, its claim to fame being some sort of high-intensity energy cannon, " +"capable of rending whatever it touches asunder in an explosive burst of " +"plasma and flame. Its unique chirping and booming footsteps often heralded " +"trouble to come during the Arrival, and now is no different." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "animated blade" -msgid_plural "animated blades" +msgid "Sound returns as the emissary's cannon roars to life!!" +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "order surveillance drone" +msgid_plural "order surveillance drones" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for animated blade +#. ~ Description for {'str': 'order surveillance drone'} #: lang/json/MONSTER_from_json.py msgid "" -"A conjured glowing longsword that darts and dodges around, slicing and " -"cutting your foes into small pieces." +"A small, sleek, white-plated robot with the golden insignia of the Order " +"stamped on it. Capable of limited flight, it hovers about the ruins of the " +"former world, onboard cameras and spotlights impartial witness to the chaos " +"around it. Who knows might be watching on the other side…" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "demon spiderling" -msgid_plural "demon spiderlings" +msgid "order seeker drone" +msgid_plural "order seeker drones" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for demon spiderling +#. ~ Description for {'str': 'order seeker drone'} #: lang/json/MONSTER_from_json.py msgid "" -"Despite it being the size of a small dog, you can tell this is a very young " -"spider. Its red color is why you gave it this name; you have never seen " -"this creature before the Cataclysm. It is quick, and its large fangs drip " -"with venom." +"A small, sleek, white-plated robot with the golden insignia of the Order " +"stamped on it. Capable of limited flight, it hovers about the ruins of the " +"former world, using a suite of rather sharp looking retractable tools, a " +"bright camera flash, and integrated 'arms' to manipulate the world around it" +" with surprising dexterity and procure samples. It seems to watch you " +"closely…" msgstr "" +#. ~ Attack message of monster "{'str': 'order seeker drone'}"'s spell "None" #: lang/json/MONSTER_from_json.py -msgid "demon spider" -msgid_plural "demon spiders" +msgid "%1$s blinds %3$s with its integrated camera!" +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "sewer lurker" +msgid_plural "sewer lurkers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for demon spider +#. ~ Description for {'str': 'sewer lurker'} #: lang/json/MONSTER_from_json.py msgid "" -"This spider is the size of a car. Its huge compound eyes seem to be " -"infinite pools of blackness that seem to suck the light out of the air. Its" -" maroon carapace is studded with wicked-looking spikes that drip with some " -"kind of viscious black liquid that sizzles when it touches the ground." +"A dripping creature, a writhing mass of tentacles attached to a gnashing " +"maw, this thing seems to have found its home among trash and sewage. It is " +"an ambush predator, prefering to lurk just beneath the cloudy water before " +"something comes close enough to snag with its long tentacles." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "demon spider queen" -msgid_plural "demon spider queens" +msgid "lurker" +msgid_plural "lurkers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for demon spider queen +#. ~ Description for {'str': 'lurker'} #: lang/json/MONSTER_from_json.py msgid "" -"This gigantic spider is the size of a moving van: you have no idea how it " -"manages to stay together, much less move with that bulk. Its abdomen is " -"huge and swollen-looking, and an evil intelligence burns in its eyes even as" -" magic crackles around its chitinous barbs." +"A long, serpentine body, dark and murky just like the waters it inhabits. " +"Tendrils trail behind it, vestigial now given the innumerable teeth gnashing" +" in its mouth. It prefers to lurk just below the surface, drifting and " +"still like an unassuming piece of floatsam until something gets too close." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "black dragon wyrmling" -msgid_plural "black dragon wyrmlings" +msgid "moss lizard" +msgid_plural "moss lizards" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for black dragon wyrmling +#. ~ Description for moss lizard #: lang/json/MONSTER_from_json.py msgid "" -"This is a small black dragon, less than five years old. Its scales are " -"glossy, and its horns barely peek out of its head. Even from one so young, " -"you see the glint of sadism in its eyes." +"A cow-sized reptoid, covered in what appears to be a thick layer of mossy " +"vegetation and rocks. It trudges about the landscape on sturdy legs, " +"foraging whatever flora it can reach with sharp little teeth. It doesn't " +"seem to mind you too much." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "young black dragon" -msgid_plural "young black dragons" +msgid "pack lizard" +msgid_plural "pack lizards" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for young black dragon +#. ~ Description for pack lizard #: lang/json/MONSTER_from_json.py msgid "" -"This black dragon appears to still be in the early stages of life. Its eyes" -" have just started to sink in its sockets, and its curved, segmented horns " -"have just begun to darken at the tips. You can tell just by looking at it, " -"this creature is evil to its very core. Even though this dragon is not " -"fully grown, it is the size of a full-grown bull." +"A slim reptoid about the size of a big dog, with a thick mane of what looks " +"like rather pretty orange-blue 'feathers' around its head. Frond-like " +"protrustions grow from the top of its head down to the base of its tail, " +"glowing faintly when in the presence of other members of its pack." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "adult black dragon" -msgid_plural "adult black dragons" +msgid "wisp" +msgid_plural "wisp" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for adult black dragon +#. ~ Description for {'str_sp': 'wisp'} #: lang/json/MONSTER_from_json.py msgid "" -"A black-scaled monstrosity with deep-set eye sockets glowing green with " -"evil. Its face and skull appear skeletal, and acid drips from its dagger-" -"like jaws." +"A small, fist sized critter that looks like a floating slug with " +"bioluminescent markings, capable of limited flight through utilization of " +"membrenous, winglike protrustions and the secretion of a faint white mist. " +"It is most commonly found around zipping around flowers, fruits, and other " +"sugary substances in small, communal groups. It regards you with curiosity," +" occasionally flashing its markings at you as if trying to communicate." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "clay golem" -msgid_plural "clay golems" +msgid "bileworm" +msgid_plural "bileworms" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for clay golem +#. ~ Description for {'str': 'bileworm'} #: lang/json/MONSTER_from_json.py msgid "" -"A large, humanoid golem made from clay. Its proportions are off and it " -"seems fragile." +"A huge creature that smells like death, befitting its preferred diet of " +"carrion and other rotting organic material, though it may attack live prey " +"if it is hungry. Its favorite tactic is dissolving its food with its highly" +" acidic vomit, and then consuming the resulting liquified remains. It is " +"capable of both burrowing and limited land travel, with the help of a " +"multitude of stocky appendages that surround its mouth." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "plastic golem" -msgid_plural "plastic golems" +msgid "stray" +msgid_plural "strays" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'plastic golem'} +#. ~ Description for {'str': 'stray'} #: lang/json/MONSTER_from_json.py msgid "" -"Traditionally, making a golem is a months-long process involving hand tools " -"and precision craftsmanship. A stone golem is as much a work of art as it " -"is a magical device. The advent of 3D printing made it easy to get into the" -" golem-making hobby, and plastic golems have soared in popularity." +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stone golem" -msgid_plural "stone golems" +msgid "stray cop" +msgid_plural "stray cops" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for stone golem +#. ~ Description for stray cop #: lang/json/MONSTER_from_json.py msgid "" -"A large, humanoid golem made from stone. Its fists look similar to rockets." +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "iron golem" -msgid_plural "iron golems" +msgid "stray soldier" +msgid_plural "stray soldiers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for iron golem +#. ~ Description for {'str': 'stray soldier'} #: lang/json/MONSTER_from_json.py msgid "" -"A large, humanoid golem made from iron. Some sort of noxious gas seems to " -"be seeping from its mouth." +"A former soldier, no doubt deployed to assist with evacuations and drive off" +" the Order, dressed from head to toe in partially crystalized combat armor." +" Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "lizardfolk warrior" -msgid_plural "lizardfolk warriors" +msgid "stray firefighter" +msgid_plural "stray firefighters" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for lizardfolk warrior +#. ~ Description for {'str': 'stray firefighter'} #: lang/json/MONSTER_from_json.py msgid "" -"A tall, powerful, reptilian humanoid with a muscular tail whose skin is " -"covered in dark gray-green scales. They are tribal and tend to be found in " -"caves and near water, especially in areas inhabited by dragons and wyrms. " -"They aren't particularly hostile, though they don't care for outsiders and " -"are highly dangerous when provoked. While they usually prefer to fight with" -" their greatclubs, they are equally ferocious with their sharp teeth and " -"claws." +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "lizardfolk hunter" -msgid_plural "lizardfolk hunters" +msgid "hungry stray" +msgid_plural "hungry strays" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for lizardfolk hunter +#. ~ Description for {'str': 'hungry stray'} #: lang/json/MONSTER_from_json.py msgid "" -"The hunter is a smaller lizardfolk than a warrior, but equally as deadly, " -"with their lithe figures and accurate javelin throws." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "The hunter hurls a barbed javelin at you!" +"An obese former human, body studded with irregular crystal growths deforming" +" its body. It howls in mockery of hunger as it wanders, seeking new meals " +"to add to its bulk." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "lizardfolk shaman" -msgid_plural "lizardfolk shamans" +msgid "stray rockfeeder" +msgid_plural "stray rockfeeders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for lizardfolk shaman +#. ~ Description for {'str': 'stray rockfeeder'} #: lang/json/MONSTER_from_json.py msgid "" -"Lizardfolk are very intelligent and cunning, but magical ability is a rare " -"quality. Shamans are chosen from the tribe during childhood, when magical " -"abilities mark the fate of the young tribesman. Not much is known about the" -" initiation ritual they must undergo, but few survive the experience. " -"Shamans are druidic spellcasters that can use the forces of nature to battle" -" enemies, as well as summoning assistance when needed." +"A swollen and mishappen body pierced from the inside by growths of rocks, " +"the lower half of its face nothing a distended jaw full of gnashing, " +"crystalline teeth. It lets out bloodcurdling howls of pain and constantly " +"drips a foul smelling slurry of rocky sludge and bile." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "lizardfolk chieftan" -msgid_plural "lizardfolk chieftans" +msgid "stray crystaltender" +msgid_plural "stray crystaltenders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for lizardfolk chieftan +#. ~ Description for {'str': 'stray crystaltender'} #: lang/json/MONSTER_from_json.py msgid "" -"Among the lizardfolk, ambition is a rare quality. Chieftans earn their " -"place by exhibiting unusually high levels of ambition, often mistaken by " -"outsiders as excessive, brutal violence. This chief is the largest and " -"strongest member of its tribe and carries a fierce trident to compliment its" -" teeth and claws." +"Little more than a moving mound of crystal and meat that occasionally spits " +"up a tide of glowing, rocky gruel from its many cracks and crevices, this " +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "crocodile" -msgid_plural "crocodiles" +msgid "crackling stray" +msgid_plural "crackling strays" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for crocodile +#. ~ Description for {'str': 'crackling stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A once-and-future lizardfolk shaman, this large crocodile no longer has any " -"hint of any humanoid characteristics and looks very, very dangerous." +"A hunched human form, back bristling with a hedge of buzzing blue crystals." +" Its veins visibly glow with some sort of unearthly substance." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "owlbear" -msgid_plural "owlbears" +msgid "arcing stray" +msgid_plural "arcing strays" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for owlbear +#. ~ Description for {'str': 'arcing stray'} #: lang/json/MONSTER_from_json.py msgid "" -"The horrible owlbear is probably the result of genetic experimentation by " -"some insane wizard. These creatures inhabit the tangled forest regions of " -"every temperate clime, as well as subterranean labyrinths. They are " -"ravenous eaters, aggressive hunters, and evil tempered at all times. They " -"attack prey on sight and will fight to the death." +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than" +" capable of simply ramming its prey to deliver dangerous electric shocks." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "black pudding" -msgid_plural "black puddings" +msgid "stray sprinter" +msgid_plural "stray sprinters" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for black pudding +#. ~ Description for {'str': 'stray sprinter'} #: lang/json/MONSTER_from_json.py msgid "" -"Writhing, sticky, black sludge undulates across the ground. A faint " -"sizzling sound comes from the ground beneath it as it lurches toward you." -msgstr "" - -#. ~ Attack message of monster "black pudding"'s spell "None" -#: lang/json/MONSTER_from_json.py -msgid "The black pudding burns %3$s with acid!" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "krabgek" -msgid_plural "krabgeks" +msgid "stray prowler" +msgid_plural "stray prowlers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for krabgek +#. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"A large baleful eye peers out from the darkness, its gleam hinting at a " -"weird intelligence and unnerving malevolence. The eye oozes some pinkish " -"liquid, and the weirdly humanoid figure is covered in sharp blue-black " -"triangular plates." -msgstr "" - -#. ~ Attack message of monster "krabgek"'s spell "None" -#: lang/json/MONSTER_from_json.py -msgid "The krabgek gazes at %3$s!" +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "owlbear cub" -msgid_plural "owlbear cubs" +msgid "stray guardian" +msgid_plural "stray guardians" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py -msgid "bulette" -msgid_plural "bulettes" +msgid "" +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated" +" crystal limbs sharpened to dangerous points. It strides about the streets," +" spearing intruders to its domain like some sort of horrid spider from " +"beyond the stars." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray bruiser" +msgid_plural "stray bruisers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for bulette +#. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"The bulette (or landshark) was the result of a mad wizard's experimental " -"cross breeding of a snapping turtle and armadillo with infusions of demons' " -"ichor. They range temperate climates feeding on horses, men, and most other" -" flesh. The stupid bulette is irascible and always hungry, and they fear " -"nothing." +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "will-o-wisp" -msgid_plural "will-o-wisps" +msgid "stray golem" +msgid_plural "stray golems" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for will-o-wisp +#. ~ Description for {'str': 'stray golem'} #: lang/json/MONSTER_from_json.py msgid "" -"Will-o’-wisps can be yellow, white, green, or blue. They are easily " -"mistaken for lanterns, especially in the foggy marshes and swamps where they" -" reside." +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "troll" -msgid_plural "trolls" +msgid "stray titan" +msgid_plural "stray titans" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for troll +#. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"Monstrous, green-skinned humanoid. Trolls are renowned for their thick " -"hides and natural regenerative ability." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stirge" -msgid_plural "stirges" +msgid "stray waif" +msgid_plural "stray waifs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for stirge +#. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"This horrid flying creature looks like a cross between a large bat and " -"oversized mosquito." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "shrieker" -msgid_plural "shriekers" +msgid "stray creep" +msgid_plural "stray creeps" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for shrieker +#. ~ Description for {'str': 'stray creep'} #: lang/json/MONSTER_from_json.py msgid "" -"A shrieker is a human-sized mushroom that emits a piercing screech to drive " -"off creatures that disturb it." +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "lemure" -msgid_plural "lemures" +msgid "stray wretch" +msgid_plural "stray wretches" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for lemure +#. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"A lemure resembles a molten mass of flesh with a vaguely humanoid head and " -"torso." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "automated turret" -msgid_plural "automated turrets" +msgid "stray stalker" +msgid_plural "stray stalkers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed defense turret" -msgid_plural "disarmed defense turrets" -msgstr[0] "rozbrojona wieżyczka obronna" -msgstr[1] "rozbrojona wieżyczka obronna" -msgstr[2] "rozbrojona wieżyczka obronna" -msgstr[3] "rozbrojona wieżyczka obronna" - -#. ~ Description for disarmed defense turret +#. ~ Description for {'str': 'stray stalker'} #: lang/json/MONSTER_from_json.py msgid "" -"The General Atomics TX-series turret, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. It requires an integrated firearm module to " -"work." +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to" +" its 'family'." msgstr "" -"General Atomics seria-TX, mała, uformowana w kształt pigułki automatyczna " -"wieżyczka bojowa używająca najwyższej klasy systemów ATR do dynamicznego " -"reorientowania się do nowych przyjaciół i wrogów. Wymaga zintegrowanego " -"modułu broni do pracy." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed military turret" -msgid_plural "disarmed military turrets" -msgstr[0] "rozbrojona wieżyczka wojskowa" -msgstr[1] "rozbrojona wieżyczka wojskowa" -msgstr[2] "rozbrojona wieżyczka wojskowa" -msgstr[3] "rozbrojona wieżyczka wojskowa" -#. ~ Description for disarmed military turret #: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX series turret, a military-grade automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. It requires a integrated gun module to operate." -msgstr "" -"Leadworks LLC seria TX, to wojskowa automatyczna wieżyczka bojowa używająca " -"najwyższej klasy systemów ATR do dynamicznego reorientowania się do nowych " -"przyjaciół i wrogów. Wymaga zintegrowanego modułu broni do działania." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed advanced turret" -msgid_plural "disarmed advanced turrets" -msgstr[0] "rozbrojona zaawansowana wieżyczka" -msgstr[1] "rozbrojona zaawansowana wieżyczka" -msgstr[2] "rozbrojona zaawansowana wieżyczka" -msgstr[3] "rozbrojona zaawansowana wieżyczka" +msgid "flailing wretch" +msgid_plural "flailing wretchs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for disarmed advanced turret +#. ~ Description for {'str': 'flailing wretch'} #: lang/json/MONSTER_from_json.py msgid "" -"The DoubleTech T-series turret, an advanced automated gun turret using state" -" of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. It requires an integrated gun module to function." +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." msgstr "" -"DoubleTech seria T, to zaawansowana automatyczna wieżyczka bojowa używająca " -"najwyższej klasy systemów ATR do dynamicznego reorientowania się do nowych " -"przyjaciół i wrogów. Wymaga zintegrowanego modułu broni do działania." #: lang/json/MONSTER_from_json.py -msgid "9mm turret" -msgid_plural "9mm turrets" +msgid "crackling wretch" +msgid_plural "crackling wretchs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for 9mm turret +#. ~ Description for {'str': 'crackling wretch'} #: lang/json/MONSTER_from_json.py msgid "" -"The General Atomics TX-1 Guardian, a small, pill-shaped automated gun turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " -"full 360 degrees." +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." msgstr "" -"General Atomics TX-1 Guardian, mała, uformowana w kształt pigułki " -"automatyczna wieżyczka bojowa używająca najwyższej klasy systemów ATR do " -"dynamicznego reorientowania się do nowych przyjaciół i wrogów. Jej " -"zintegrowany PM 9 mm może obracać się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "shotgun turret" -msgid_plural "shotgun turrets" +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for shotgun turret +#. ~ Description for {'str': 'stray wretchmother'} #: lang/json/MONSTER_from_json.py msgid "" -"The General Atomics TX-4 Protector, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 12ga shotgun can swivel a " -"full 360 degrees." +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." msgstr "" -"General Atomics TX-4 Protector, mała, uformowana w kształt pigułki " -"automatyczna wieżyczka bojowa używająca najwyższej klasy systemów ATR do " -"dynamicznego reorientowania się do nowych przyjaciół i wrogów. Jej " -"zintegrowana strzelba 12-tka może obracać się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "riot control turret" -msgid_plural "riot control turrets" +msgid "germinating crystal mass" +msgid_plural "germinating crystal masses" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for riot control turret +#. ~ Description for {'str': 'germinating crystal mass', 'str_pl': +#. 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" -"The General Atomics TZ-1a Warden, a small, pill-shaped automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 40mm teargas launcher can swivel " -"a full 360 degrees." +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little" +" bit of organic matter it can find and drawing it to its base." msgstr "" -"General Atomics TX-1a Warden, mała, uformowana w kształt pigułki " -"automatyczna wieżyczka bojowa używająca najwyższej klasy systemów ATR do " -"dynamicznego reorientowania się do nowych przyjaciół i wrogów. Jej " -"zintegrowana wyrzutnia gazu łzawiącego 40 mm może obracać się o pełne 360 " -"stopni." -#. ~ Description for riot control turret +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting +#. crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" -"The General Atomics TZ-1b Pacifier, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 40mm beanbag launcher can " -"swivel a full 360 degrees." +"A human-sized mound of shimmering blue-purple crystals growing on the base " +"of what looks like a mound of foul smelling garbage and organic leftovers. " +"Long, thin tendrils appear to grow out of the mound, and are subtly rooting " +"down into the ground below it, boring through dirt and concrete alike. It " +"crackles weakly with electrical energy. If you look closely, it almost " +"looks like something wet and meaty is squirming just inside the inner shell " +"of crystals…" msgstr "" -"General Atomics TX-1b Pacifier, mała, uformowana w kształt pigułki " -"automatyczna wieżyczka bojowa używająca najwyższej klasy systemów ATR do " -"dynamicznego reorientowania się do nowych przyjaciół i wrogów. Jej " -"zintegrowana wyrzutnia woreczków z grochem 40 mm może obracać się o pełne " -"360 stopni." #: lang/json/MONSTER_from_json.py -msgid "5.56mm turret" -msgid_plural "5.56mm turrets" +msgid "resonant crystal mass" +msgid_plural "resonant crystal masses" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for 5.56mm turret +#. ~ Description for {'str': 'resonant crystal mass', 'str_pl': 'resonant +#. crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" -"The Leadworks LLC's TX-32L Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " -"360 degrees." +"A set of rail thin crystals growing haphazardly from a mound of rock and " +"composted organic matter, fastened in place by thick strands of bizzare " +"alien material. The buzzing of natural energy playing among the tines seems" +" culminate into an almost musical sound. While pleasant at a distance, this" +" can devolve to a deafening high pitched whine when it feels threatened." msgstr "" -"Leadworks LLC TX-32L Sentry, to wojskowa automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany karabin 5.56 mm może obracać" -" się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "7.62mm turret" -msgid_plural "7.62mm turrets" +msgid "flailing crystal mass" +msgid_plural "flailing crystal masses" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for 7.62mm turret +#. ~ Description for {'str': 'flailing crystal mass', 'str_pl': 'flailing +#. crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" -"The Leadworks LLC's TX-32H Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " -"360 degrees." +"A tall, singular crystal, growing out of a sizable pile of debris that has " +"sprouted a multitude of thin, whiplike tendrils that constantly snake around" +" it like feelers. It frequently grabs nearby objects and drags them into " +"the pile beneath it, as if hoarding." msgstr "" -"Leadworks LLC TX-32H Sentry, to wojskowa automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany karabin 7.62 mm może obracać" -" się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "50cal turret" -msgid_plural "50cal turrets" +msgid "energized crystal mass" +msgid_plural "energized crystal masses" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for 50cal turret +#. ~ Description for {'str': 'energized crystal mass', 'str_pl': 'energized +#. crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" -"The Leadworks LLC's TX-13 Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 50 caliber machinegun can " -"swivel a full 360 degrees." +"A crooked, fiercely glowing blue-purple crystal that visibly discharges " +"electricity into the surrounding environment without any particular intent." msgstr "" -"Leadworks LLC TX-13 Sentry, to wojskowa automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany karabin maszynowy kalibru 50" -" może obracać się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "8x40mm turret" -msgid_plural "8x40mm turrets" +msgid "crystal mass wall" +msgid_plural "crystal mass walls" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for 8x40mm turret +#. ~ Description for {'str': 'crystal mass wall'} #: lang/json/MONSTER_from_json.py msgid "" -"The Leadworks LLC's TX-01A Warden, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " -"full 360 degrees." +"A massive wall of thick, blocky crystals that glow faintly and crackle with " +"residual electric energy." msgstr "" -"Leadworks LLC TX-01A Warden, to wojskowa automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany karabin 8x40 mm może obracać" -" się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "needle turret" -msgid_plural "needle turrets" +msgid "crystal mass hive" +msgid_plural "crystal mass hives" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for needle turret +#. ~ Description for {'str': 'crystal mass hive'} #: lang/json/MONSTER_from_json.py msgid "" -"The Leadworks LLC's TN-7 Sentry, a military-grade automated flechette turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 5mm flechette gun can swivel a " -"full 360 degrees." +"A towering mass of blue-purple crystal chunks coverd in small, fist-sized " +"holes, from which drips a disgusting, faintly glowing rock slurry - perhaps " +"a nutrient mix for its young. After all, it seems to subtly pulsate, as if " +"more organic than its mineral appearance would suggest. The air around it " +"perpetually crackles with palpable energy and menaces with a set of thick, " +"meaty tendrils with razor-like barbs, with something else just as unseemly " +"writhing just beneath the murky surface of the glassy 'rocks'." msgstr "" -"Leadworks LLC TN-7 Sentry, to wojskowa automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany miotacz strzałek 5 mm może " -"obracać się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "40mm grenade turret" -msgid_plural "40mm grenade turrets" +msgid "crystal seed" +msgid_plural "crystal seeds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for 40mm grenade turret +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"The Leadworks LLC's TG-7 Sentry, a military-grade automated gun turret using" -" state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated 40mm grenade launcher can swivel a full " -"360 degrees." +"A tiny, multilegged creature that appears to be made of a chunk of crystal." +" It skitters around on wire-like legs, eating bits of organic leftovers to " +"gain mass in hopes of one day seeding a crystal colony of its own." msgstr "" -"Leadworks LLC TG-7 Sentry, to wojskowa automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany granatnik 40 mm może obracać" -" się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "flame turret" -msgid_plural "flame turrets" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for flame turret +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"The Leadworks LLC's TF-7 Sentry, a military-grade automated flame turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated flamethrower can swivel a full " -"360 degrees." +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." msgstr "" -"Leadworks LLC TF-7 Sentry, to wojskowa automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany miotacz ognia może obracać " -"się o pełne 360 stopni." -#. ~ Description for laser turret +#. ~ Description for {'str': 'C-4 hack'} #: lang/json/MONSTER_from_json.py msgid "" -"The DoubleTech T-L3 Scintillator, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated laser emitter can swivel a full 360 " -"degrees." +"An automated kamikaze drone, this small flying robot appears to have some " +"C-4 inside." msgstr "" -"DoubleTech T-L3 Spopielacz, to zaawansowana automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany emiter laserowy może obracać" -" się o pełne 360 stopni." +#. ~ Description for {'str': 'flashbang hack'} #: lang/json/MONSTER_from_json.py -msgid "acid turret" -msgid_plural "acid turrets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "" +"An automated kamikaze drone, this small flying robot appears to have a " +"flashbang inside." +msgstr "" -#. ~ Description for acid turret +#. ~ Description for {'str': 'tear gas hack'} #: lang/json/MONSTER_from_json.py msgid "" -"The DoubleTech T-A3 Disintegrator, an advanced automated acid turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated acid thrower can swivel a full 360 " -"degrees." +"An automated kamikaze drone, this small flying robot appears to have a tear " +"gas canister inside." msgstr "" -"DoubleTech T-A3 Dezintegrator, to zaawansowana automatyczna wieżyczka bojowa" -" używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany miotacz kwasu może obracać " -"się o pełne 360 stopni." +#. ~ Description for {'str': 'grenade hack'} #: lang/json/MONSTER_from_json.py -msgid "plasma turret" -msgid_plural "plasma turrets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "" +"An automated kamikaze drone, this small flying robot appears to have a " +"grenade inside." +msgstr "" -#. ~ Description for plasma turret +#. ~ Description for {'str': 'manhack'} #: lang/json/MONSTER_from_json.py msgid "" -"The DoubleTech T-P3 Scathefire, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated plasma ejector can swivel a full 360 " -"degrees." +"An automated anti-personnel drone, a small flying robot surrounded by " +"whirring blades." msgstr "" -"DoubleTech T-P3 Przypalacz, to zaawansowana automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany miotacz plazmy może obracać " -"się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "railgun turret" -msgid_plural "railgun turrets" +msgid "Compsognathus" +msgid_plural "Compsognathus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for railgun turret +#. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"The DoubleTech T-R3 Arbalest, an advanced automated railgun turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated railgun can swivel a full 360 degrees." +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." msgstr "" -"DoubleTech T-R3 Katapulta, to zaawansowana automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowane elektromagnetyczne działo " -"szynowe może obracać się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "advanced electro turret" -msgid_plural "advanced electro turrets" +msgid "Gallimimus" +msgid_plural "Gallimimus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for advanced electro turret +#. ~ Description for {'str_sp': 'Gallimimus'} #: lang/json/MONSTER_from_json.py msgid "" -"The DoubleTech T-E3 Thunderstroke, an advanced automated electro turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated electro caster can swivel a full " -"360 degrees." +"A feathered bipedal dinosaur, standing as tall as a human. It looks " +"somewhat like a reptilian ostrich." msgstr "" -"DoubleTech T-E3 Perun, to zaawansowana automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany miotacz łuku elektrycznego " -"może obracać się o pełne 360 stopni." +"Upierzony dwunożny dinozaur, wysokości równej człowieczej. Wygląda nieco jak" +" gadzia wersja strusia." #: lang/json/MONSTER_from_json.py -msgid "EMP turret" -msgid_plural "EMP turrets" +msgid "Pachycephalosaurus" +msgid_plural "Pachycephalosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for EMP turret +#. ~ Description for {'str_sp': 'Pachycephalosaurus'} #: lang/json/MONSTER_from_json.py msgid "" -"The DoubleTech T-EMP3 Corona, an advanced automated EMP turret using state " -"of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. Its electro magnetic pulse generator can swivel a full 360 " -"degrees." +"A feathered bipedal dinosaur, standing as tall as a human. It looks like a " +"reptilian ostrich with a round hard-looking domed head." msgstr "" -"DoubleTech T-EMP3 Korona, to zaawansowana automatyczna wieżyczka bojowa " -"używająca najwyższej klasy systemów ATR do dynamicznego reorientowania się " -"do nowych przyjaciół i wrogów. Jej zintegrowany generator impulsów " -"elektromagnetycznych może obracać się o pełne 360 stopni." #: lang/json/MONSTER_from_json.py -msgid "guardin gnome" -msgid_plural "guardin gnomes" +msgid "Camptosaurus" +msgid_plural "Camptosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ 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 "Zwykły i całkowicie niegroźny gnom ogrodowy." +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "utility robot" -msgid_plural "utility robots" +msgid "Spinosaurus" +msgid_plural "Spinosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for utility robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of utility robot formerly in use by government " -"agencies, private corporations, and civilians alike." -msgstr "" -"Jeden z wielu robotów użytkowych wykorzystywanych przez zarówno przez " -"agencje rządowe, prywatne korporacje jak i cywilów." - -#. ~ Description for eyebot +#. ~ Description for {'str_sp': 'Spinosaurus'} #: lang/json/MONSTER_from_json.py msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and trespassers." +"A huge dinosaur about the size of a small house, with a ferocious crocodile-" +"like head and a sail on its back." msgstr "" -"Mały latający robot wyposażony w zestaw kamer i uzbrojony w oślepiający " -"flesz. Nie jest już w łączności z policją lub systemem bezpieczeństwa, ale " -"wciąż w nieustannej pogoni za przestępcami i włamywaczami." +"Wielki dinozaur rozmiaru małego konia, ze straszliwymi krokodylopodobną " +"głową i żaglem na plecach." #: lang/json/MONSTER_from_json.py -msgid "defense robot" -msgid_plural "defense robots" +msgid "Tyrannosaurus rex" +msgid_plural "Tyrannosaurus rex" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for defense robot +#. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is armed with an electric prod and an integrated 9mm firearm." +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "security robot" -msgid_plural "security robots" +msgid "Albertosaurus" +msgid_plural "Albertosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for security robot +#. ~ Description for {'str_sp': 'Albertosaurus'} #: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an integrated 9mm firearm." +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "riotcontrol robot" -msgid_plural "riotcontrol robots" +msgid "Triceratops" +msgid_plural "Triceratops" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for riotcontrol robot +#. ~ Description for {'str_sp': 'Triceratops'} #: lang/json/MONSTER_from_json.py msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod, tear gas sprayer, and integrated" -" 40mm beanbag launcher." +"A massive rhino-like dinosaur with a bony crest from which three large horns" +" emerge." msgstr "" +"Masywny podobny do nosorożca dinozaur z kościstym grzebieniem z którego " +"wystają trzy duże rogi." #: lang/json/MONSTER_from_json.py -msgid "necco" -msgid_plural "neccos" +msgid "Stegosaurus" +msgid_plural "Stegosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'necco'} +#. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A giant necco wafer happily jaunting around." +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "marshmallow kid" -msgid_plural "marshmallow kids" +msgid "Ankylosaurus" +msgid_plural "Ankylosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'marshmallow kid'} +#. ~ Description for {'str_sp': 'Ankylosaurus'} #: lang/json/MONSTER_from_json.py msgid "" -"A small humanoid made of marsmallow. It bumbles around on its stubby " -"cushioned legs. How cute!" +"This dinosaur looks like a giant prehistoric armadillo. Its tail ends in a " +"massive spiked club of bone." msgstr "" +"Dinozaur przypominający wielkiego prehistorycznego pancernika. Jego ogon " +"zakończony jest masywną kolczastą pałką kostną." #: lang/json/MONSTER_from_json.py -msgid "marshmallow guy" -msgid_plural "marshmallow guys" +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'marshmallow guy'} +#. ~ Description for {'str_sp': 'Ceratosaurus'} #: lang/json/MONSTER_from_json.py msgid "" -"A marshmallow humanoid with a smile drawn on its face. It bumbles around, " -"hollow eyes scanning its surrounding seemingly looking for something." +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "marshmallow buff" -msgid_plural "marshmallow buffs" +msgid "Allosaurus" +msgid_plural "Allosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'marshmallow buff'} +#. ~ Description for {'str_sp': 'Allosaurus'} #: lang/json/MONSTER_from_json.py msgid "" -"A muscular body made of marshmallow, proudly striding towards an unknown " -"goal. Yummy!" +"A large predatory bipedal dinosaur, with tiger-like stripes on its broad " +"back." msgstr "" +"Duży drapieżny dwunożny dinozaur, z tygrysimi pasami na szerokich plecach." #: lang/json/MONSTER_from_json.py -msgid "marshmallow goliath" -msgid_plural "marshmallow goliaths" +msgid "Eoraptor" +msgid_plural "Eoraptors" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'marshmallow goliath'} +#. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic marshmallow humanoid softly stompind around, frozen smile and big" -" empty eyes carefully scanning its surroundings." +"A bipedal dinosaur about the size of a chicken. It darts around quickly and" +" has long arms for grabbing what it desires. It's holding something." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "marshmallow squire" -msgid_plural "marshmallow squires" +msgid "Velociraptor" +msgid_plural "Velociraptors" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'marshmallow squire'} +#. ~ Description for {'str': 'Velociraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A small humanoid made of marsmallow. It wears a plate armor made of " -"chocolate coated crakers and bumbles around on its stubby cushioned legs. " -"How cute!" +"A small bipedal dinosaur covered with feathers. Small, hooked claws emerge " +"from its feet and hands." msgstr "" +"Mały dwunożny dinozaur pokryty piórami. Małe hakowate szpony wystają mu z " +"nóg i łap." #: lang/json/MONSTER_from_json.py -msgid "marshmallow knight" -msgid_plural "marshmallow knights" +msgid "Deinonychus" +msgid_plural "Deinonychus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'marshmallow knight'} +#. ~ Description for {'str_sp': 'Deinonychus'} #: lang/json/MONSTER_from_json.py msgid "" -"A marshmallow humanoid in full chocolate coated crakers knight armor. It " -"bumbles around, hollow eyes scanning its surrounding seemingly looking for " -"something." +"A medium-sized bipedal dinosaur covered with feathers. At the end of each " +"foot is a large sickle-like claw." msgstr "" +"Średnich rozmiarów dwunożny opierzony dinozaur. Na końcu każdej stopy ma " +"sierpowaty szpon." #: lang/json/MONSTER_from_json.py -msgid "marshmallow champion" -msgid_plural "marshmallow champions" +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'marshmallow champion'} +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing tall in its shining armor of chocolate coated crakers this " -"marshmallow is proudly striding towards an unknown goal." +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "marshmallow war lord" -msgid_plural "marshmallow war lords" +msgid "Utahraptor" +msgid_plural "Utahraptors" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'marshmallow war lord'} +#. ~ Description for {'str': 'Utahraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic humanoid armored with thick plates of chocolate coated crakers. " -"A frozen smile half visible under its heavy helmet it carefully scans its " -"surroundings." +"A large bipedal dinosaur with feathered arms, a long tail, and scythe-like " +"claws." msgstr "" +"Duży dwunożny dinozaur z opierzonymi ramionami, długim ogonem, i " +"sierpowatymi pazurami." #: lang/json/MONSTER_from_json.py -msgid "gummy cub" -msgid_plural "gummy cubs" +msgid "Parasaurolophus" +msgid_plural "Parasaurolophus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'gummy cub'} +#. ~ Description for {'str_sp': 'Parasaurolophus'} #: lang/json/MONSTER_from_json.py -msgid "A juvenile gummy bear. A cute bear cub made of sugary gum." +msgid "" +"A huge mottled dinosaur with a blunt head crest. It contentedly strips " +"leaves from a nearby shrub." msgstr "" +"Wielki cętkowany dinozaur z tępym grzebieniem na głowie. Bezustannie " +"oskubuje z liści pobliskie krzewy." #: lang/json/MONSTER_from_json.py -msgid "gummy bear" -msgid_plural "gummy bears" +msgid "Dimorphodon" +msgid_plural "Dimorphodon" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'gummy bear'} +#. ~ Description for {'str_sp': 'Dimorphodon'} #: lang/json/MONSTER_from_json.py msgid "" -"A big bear made of fruit flavored gelatine, its smooth round shape and its " -"fruity smell make it somehow less scary than its fleshy counterpart." +"A feathered flying reptile over three feet long, with short wings and a big " +"colorful beak." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "cracker kid" -msgid_plural "cracker kids" +msgid "Dilophosaurus" +msgid_plural "Dilophosaurus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'cracker kid'} +#. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A small cracker kid running around on its cracker legs." +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its " +"head." msgstr "" -#. ~ Description for {'str': 'cracker'} #: lang/json/MONSTER_from_json.py -msgid "A full grown cracker running around on its cracker legs." -msgstr "" +msgid "greenish yellow hatchling" +msgid_plural "greenish yellow hatchlings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str': 'cookie'} +#. ~ Description for greenish yellow hatchling #: lang/json/MONSTER_from_json.py -msgid "A small cookie, scuriying around in search for crumbs." +msgid "" +"A tiny dinosaur hatchling with huge shiny eyes, it could be from a number of" +" different species." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "gum spider" -msgid_plural "gum spiders" +msgid "light green and yellow hatchling" +msgid_plural "light green and yellow hatchlings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'gum spider'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A giant piece of gum streched in the shape of a spider. It stands very " -"still in its gum web." -msgstr "" - #: lang/json/MONSTER_from_json.py -msgid "caffeinated gum spider" -msgid_plural "caffeinated gum spiders" +msgid "red and white hatchling" +msgid_plural "red and white hatchlings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'caffeinated gum spider'} #: lang/json/MONSTER_from_json.py -msgid "" -"A giant piece of gum streched in the shape of a spider. It moves quickly " -"and aggressively as if under the effect of some stimulant." -msgstr "" +msgid "light red and white hatchling" +msgid_plural "light red and white hatchlings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/MONSTER_from_json.py -msgid "W11B10" -msgid_plural "W11B10s" +msgid "light green and magenta hatchling" +msgid_plural "light green and magenta hatchlings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for W11B10 #: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11B) Infantry 10 Level. Part of Wraitheon's series of one-to-one" -" auxiliaries designed to seamlessly integrate with more traditional forces." -msgstr "" -"Wraitheon (11B) Piechota 10 Poziomu. Jeden z serii wojsk pomocniczych jeden " -"do jednego produkcji Wraitheon, opracowany do płynnego zintegrowania z " -"bardziej tradycyjnymi siłami zbrojnymi." +msgid "green and magenta hatchling" +msgid_plural "green and magenta hatchlings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/MONSTER_from_json.py -msgid "W11B10B4" -msgid_plural "W11B10B4s" +msgid "brown and magenta hatchling" +msgid_plural "brown and magenta hatchlings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for W11B10B4 #: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11B) Infantry 20 Level (B4) Sniper. Part of Wraitheon's series " -"of one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces. " -msgstr "" -"Wraitheon (11B) Snajper 20 Poziomu. Jeden z serii wojsk pomocniczych jeden " -"do jednego produkcji Wraitheon, opracowany do płynnego zintegrowania z " -"bardziej tradycyjnymi siłami zbrojnymi." +msgid "brown and white hatchling" +msgid_plural "brown and white hatchlings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/MONSTER_from_json.py -msgid "W12B10" -msgid_plural "W12B10s" +msgid "dark gray and yellow hatchling" +msgid_plural "dark gray and yellow hatchlings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for W12B10 #: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (12B) Combat Engineer 10 Level. Part of Wraitheon's series of " -"one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" -"Wraitheon (11B) Inżynier Bojowy 10 Poziomu. Jeden z serii wojsk pomocniczych" -" jeden do jednego produkcji Wraitheon, opracowany do płynnego zintegrowania " -"z bardziej tradycyjnymi siłami zbrojnymi." +msgid "red and green hatchling" +msgid_plural "red and green hatchlings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/MONSTER_from_json.py -msgid "W11H10" -msgid_plural "W11H10s" +msgid "dark gray and white hatchling" +msgid_plural "dark gray and white hatchlings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for W11H10 #: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (11H) Anti-Tank Infantry 10 Level. Part of Wraitheon's series of " -"one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" -"Wraitheon (11B) Piechota Przeciwczołgowa 10 Poziomu. Jeden z serii wojsk " -"pomocniczych jeden do jednego produkcji Wraitheon, opracowany do płynnego " -"zintegrowania z bardziej tradycyjnymi siłami zbrojnymi." +msgid "dark gray and magenta hatchling" +msgid_plural "dark gray and magenta hatchlings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/MONSTER_from_json.py -msgid "W12N10" -msgid_plural "W12N10s" +msgid "light gray and yellow hatchling" +msgid_plural "light gray and yellow hatchlings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for W12N10 #: lang/json/MONSTER_from_json.py -msgid "" -"Wraitheon (12N) Construction Engineer 10 Level. Part of Wraitheon's series " -"of one-to-one auxiliaries designed to seamlessly integrate with more " -"traditional forces." -msgstr "" -"Wraitheon (11B) Inżynier Budowniczy 10 Poziomu. Jeden z serii wojsk " -"pomocniczych jeden do jednego produkcji Wraitheon, opracowany do płynnego " -"zintegrowania z bardziej tradycyjnymi siłami zbrojnymi." +msgid "magenta and green hatchling" +msgid_plural "magenta and green hatchlings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/MONSTER_from_json.py -msgid "craftbuddy" -msgid_plural "craftbuddies" +msgid "Z-Rex" +msgid_plural "Z-Rexes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'craftbuddy', 'str_pl': 'craftbuddies'} +#. ~ Description for {'str': 'Z-Rex', 'str_pl': 'Z-Rexes'} #: lang/json/MONSTER_from_json.py -msgid "" -"A mobile crafting station used by workers in mines, on oil rigs, and in " -"other remote locales. In it's active state, the craftbuddy merely follows " -"its user. In it's deactivated state, the craft buddy is useable as a " -"toolbench and multipurpose workstation." +msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "" -"Mobilna stacja robocza używana przez górników w kopalniach, na platformach " -"wiertniczych i w innych odległych miejscach. W aktywnym trybie po prostu " -"podąża za użytkownikiem. Zdezaktywowany służy jako narzędziownia i stacja " -"robocza do szerokich zastosowań." #: lang/json/MONSTER_from_json.py -msgid "automated armor" -msgid_plural "automated armors" +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for automated armor +#. ~ Description for {'str_sp': 'Z-Deinonychus'} #: lang/json/MONSTER_from_json.py msgid "" -"A suit of power armor temporarily controlled by an attached AI-core. " -"Originally intended as a way to retrieve dead or wounded operators from " -"combat, it was more commonly used for transporting the suit itself. The AI " -"is limited, and makes a poor combatant." +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." msgstr "" -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "light auto armor" -msgid_plural "light auto armors" -msgstr[0] "lekki autonomiczny pancerz wspomagany" -msgstr[1] "lekki autonomiczny pancerz wspomagany" -msgstr[2] "lekki autonomiczny pancerz wspomagany" -msgstr[3] "lekki autonomiczny pancerz wspomagany" - #: lang/json/MONSTER_from_json.py -msgid "auto armor" -msgid_plural "auto armors" +msgid "improvised SMG turret" +msgid_plural "improvised SMG turrets" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "heavy auto armor" -msgid_plural "heavy auto armors" -msgstr[0] "ciężki autonomiczny pancerz wspomagany" -msgstr[1] "ciężki autonomiczny pancerz wspomagany" -msgstr[2] "ciężki autonomiczny pancerz wspomagany" -msgstr[3] "ciężki autonomiczny pancerz wspomagany" - -#: lang/json/MONSTER_from_json.py -msgid "floating lantern" -msgid_plural "floating lanterns" +msgid "CROWS II, heavy machinegun" +msgid_plural "CROWS II, heavy machineguns" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for floating lantern +#. ~ Description for {'str': 'CROWS II, heavy machinegun'} #: lang/json/MONSTER_from_json.py -msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "Odratowany ze złomu dron przerobiony na mobilne źródło światła." +msgid "" +"A remote weapon system derived from the M153 CROWS II and enhanced with " +"autonomous operation software. Thousands of these were deployed by the US " +"military before the Cataclysm and they were valued for their use in engaging" +" anything up to light vehicles at long range without exposing the operator." +" This one is fitted with a heavy machinegun." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "distract-o-hack" -msgid_plural "distract-o-hacks" +msgid "CROWS II, light machinegun" +msgid_plural "CROWS II, light machineguns" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for distract-o-hack +#. ~ Description for {'str': 'CROWS II, light machinegun'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged drone repurposed into a makeshift diversion tactic. Once " -"activated it will light up, produce sound, emit sparks, and move towards " -"hostile targets. Although fragile, the distract-o-hack's erratic movements " -"make it difficult to hit." +"A remote weapon system derived from the M153 CROWS II and enhanced with " +"autonomous operation software. Thousands of these were deployed by the US " +"military before the Cataclysm and they were valued for their use in engaging" +" infantry without exposing the operator. This one is fitted with a light " +"machine gun." msgstr "" -"Odratowany ze złomu dron przerobiony do taktyk dywersyjnych. Aktywowany " -"będzie emitował światło, wydawał dźwięki, iskrzył, i poruszał się w kierunku" -" wrogich celów. Młynek-wabik, choc wrażliwy, porusza się nieprzewidywalnym " -"torem przez co ciężko go trafić." #: lang/json/MONSTER_from_json.py -msgid "arsonhack" -msgid_plural "arsonhacks" +msgid "autonomous rifle TALON UGV" +msgid_plural "autonomous rifle TALON UGVs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for arsonhack +#. ~ Description for {'str': 'autonomous rifle TALON UGV'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged drone repurposed to spread flame and cause property damage. It's" -" almost as dangerous to its user as it is to the surroundings. The " -"arsonhack cannot be recovered once activated. Only a reckless madman would " -"dare to build this." +"A TALON unmanned ground vehicle equipped with a standard assault rifle. It " +"is a small tracked UGV with an array of motors and sensors covering its " +"weapon mount." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "spore hack" -msgid_plural "spore hacks" +msgid "autonomous launcher TALON UGV" +msgid_plural "autonomous launcher TALON UGVs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for spore hack +#. ~ Description for {'str': 'autonomous launcher TALON UGV'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged drone repurposed to spread alien contaminants. It periodically " -"releases a puff of fungal spores. Who in their right mind would build such " -"a thing?" +"A TALON unmanned ground vehicle equipped with a revolver grenade launcher. " +"It is a small tracked UGV with an array of motors and sensors covering its " +"weapon mount." msgstr "" -"Odratowany ze złomu dron przerobiony by rozpylał obce skażenie. Cyklicznie " -"uwalnia chmurę zarodników. Kto przy zdrowych zmysłach zbudowałby coś " -"takiego?" #: lang/json/MONSTER_from_json.py -msgid "watercannon turret" -msgid_plural "watercannon turrets" +msgid "animated blade" +msgid_plural "animated blades" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for watercannon turret +#. ~ Description for animated blade #: lang/json/MONSTER_from_json.py msgid "" -"A turret equipped with a jury-rigged watercannon in place of a proper " -"firearm. It's highly ineffective but the ammo is cheap." +"A conjured glowing longsword that darts and dodges around, slicing and " +"cutting your foes into small pieces." msgstr "" -"Wieżyczka wyposażona w prowizoryczne działko wodne w miejscu właściwej " -"broni. Jest wysoce nieskuteczna ale przynajmniej amunicja jest tania." -#. ~ Description for eyebot +#: lang/json/MONSTER_from_json.py +msgid "demon spiderling" +msgid_plural "demon spiderlings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for demon spiderling #: lang/json/MONSTER_from_json.py msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and tresspassers." +"Despite it being the size of a small dog, you can tell this is a very young " +"spider. Its red color is why you gave it this name; you have never seen " +"this creature before the Cataclysm. It is quick, and its large fangs drip " +"with venom." msgstr "" -"Mały latający robot wyposażony w zestaw kamer i uzbrojony w oślepiający " -"flesz. Nie jest już w łączności z policją lub systemem bezpieczeństwa, ale " -"wciąż w nieustannej pogoni za przestępcami i włamywaczami." #: lang/json/MONSTER_from_json.py -msgid "floating heater" -msgid_plural "floating heaters" +msgid "demon spider" +msgid_plural "demon spiders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for floating heater +#. ~ Description for demon spider #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space." +"This spider is the size of a car. Its huge compound eyes seem to be " +"infinite pools of blackness that seem to suck the light out of the air. Its" +" maroon carapace is studded with wicked-looking spikes that drip with some " +"kind of viscious black liquid that sizzles when it touches the ground." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "floating furnace" -msgid_plural "floating furnaces" +msgid "demon spider queen" +msgid_plural "demon spider queens" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for floating furnace +#. ~ Description for demon spider queen #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. Warning! " -"Can result in rapid heatstroke!" +"This gigantic spider is the size of a moving van: you have no idea how it " +"manages to stay together, much less move with that bulk. Its abdomen is " +"huge and swollen-looking, and an evil intelligence burns in its eyes even as" +" magic crackles around its chitinous barbs." msgstr "" -"Odzyskany ze złomu okobot przerobiony na latający grzejnik. Emituje stały " -"strumień niebezpiecznie gorącego powietrza, które rozgrzeje zamkniętą " -"przestrzeń. Uwaga! Może skutkować nagłym udarem cieplnym!" #: lang/json/MONSTER_from_json.py -msgid "burning eye" -msgid_plural "burning eyes" +msgid "black dragon wyrmling" +msgid_plural "black dragon wyrmlings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for burning eye +#. ~ Description for black dragon wyrmling #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged eyebot refitted with a laser weapon. The lack of recoil allows " -"the hovering robot to aim and fire without penalty. It has decent range and" -" damage, but requires an extended recharge time between shots." +"This is a small black dragon, less than five years old. Its scales are " +"glossy, and its horns barely peek out of its head. Even from one so young, " +"you see the glint of sadism in its eyes." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "hazmat bot" -msgid_plural "hazmat bots" +msgid "young black dragon" +msgid_plural "young black dragons" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for hazmat bot +#. ~ Description for young black dragon #: lang/json/MONSTER_from_json.py msgid "" -"A utility robot designed for cleaning up waste material in hazardous " -"conditions." +"This black dragon appears to still be in the early stages of life. Its eyes" +" have just started to sink in its sockets, and its curved, segmented horns " +"have just begun to darken at the tips. You can tell just by looking at it, " +"this creature is evil to its very core. Even though this dragon is not " +"fully grown, it is the size of a full-grown bull." msgstr "" -"Robot użytkowy zaprojektowany do czyszczenia niebezpiecznych odpadów w " -"warunkach podwyższonego ryzyka." #: lang/json/MONSTER_from_json.py -msgid "butler-bot" -msgid_plural "butler-bots" +msgid "adult black dragon" +msgid_plural "adult black dragons" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for butler-bot +#. ~ Description for adult black dragon #: lang/json/MONSTER_from_json.py -msgid "A luxury model utility robot for domestic use." -msgstr "Luksusowy model robota użytkowego do użytku domowego." +msgid "" +"A black-scaled monstrosity with deep-set eye sockets glowing green with " +"evil. Its face and skull appear skeletal, and acid drips from its dagger-" +"like jaws." +msgstr "" #: lang/json/MONSTER_from_json.py -msgid "construction robot" -msgid_plural "construction robots" +msgid "goblin warrior" +msgid_plural "goblin warriors" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for construction robot +#. ~ Description for {'str': 'goblin warrior'} #: lang/json/MONSTER_from_json.py msgid "" -"One of the many models of construction robot formerly in use by government " -"agencies and private corporations. It is equipped with an integrated " -"welder, flashlight, nailgun, and jackhammer." +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "firefighter robot" -msgid_plural "firefighter robots" +msgid "goblin slinger" +msgid_plural "goblin slingers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for firefighter robot +#. ~ Description for {'str': 'goblin slinger'} #: lang/json/MONSTER_from_json.py msgid "" -"One of the many models of fire-fighting robot formerly in use by local fire " -"departments and emergency services. Designed for entering burning buildings" -" and other situations deemed too dangerous for human firefighters." +"An ugly creature that slings rocks almost as well as it slings insults." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "blob breeder" -msgid_plural "blob breeders" +msgid "goblin chieftain" +msgid_plural "goblin chieftains" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for blob breeder +#. ~ Description for {'str': 'goblin chieftain'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of living blobs. Why on Earth" -" would you build this?" +"An ugly creature that was promoted to chieftain because it figured out which" +" end of the weapon is pointy." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "slime breeder" -msgid_plural "slime breeders" +msgid "clay golem" +msgid_plural "clay golems" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for slime breeder +#. ~ Description for clay golem #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of friendly blobs." +"A large, humanoid golem made from clay. Its proportions are off and it " +"seems fragile." msgstr "" -"Robot użytkowy z odzysku zmieniony w mobilny inkubator obcych glutów. Będzie" -" nieregularnie wypuszczał grupę przyjaznych glutów." #: lang/json/MONSTER_from_json.py -msgid "digestron" -msgid_plural "digestrons" +msgid "plastic golem" +msgid_plural "plastic golems" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for digestron +#. ~ Description for {'str': 'plastic golem'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. A useful helper for keeping your front lawn clean of debris…" -" or corpses." +"Traditionally, making a golem is a months-long process involving hand tools " +"and precision craftsmanship. A stone golem is as much a work of art as it " +"is a magical device. The advent of 3D printing made it easy to get into the" +" golem-making hobby, and plastic golems have soared in popularity." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "bee bot" -msgid_plural "bee bots" +msgid "stone golem" +msgid_plural "stone golems" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for bee bot +#. ~ Description for stone golem #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers honey combs. It protects the insect " -"colony with a mechanical crossbow mounted to its chassis." +"A large, humanoid golem made from stone. Its fists look similar to rockets." msgstr "" -"Robot użytkowy z odzysku przerobiony na wędrowny ul pszczeli, który okresowo" -" przetwarza i dostarcza plastry miodu. Chroni swoją kolonię insektów kuszą " -"mechaniczną zamontowaną w korpusie." #: lang/json/MONSTER_from_json.py -msgid "medical robot" -msgid_plural "medical robots" +msgid "iron golem" +msgid_plural "iron golems" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for medical robot +#. ~ Description for iron golem #: lang/json/MONSTER_from_json.py msgid "" -"A free roaming medical robot capable of administering powerful anesthetics " -"and performing complex surgical operations, usually in that order. Faulty " -"bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." +"A large, humanoid golem made from iron. Some sort of noxious gas seems to " +"be seeping from its mouth." msgstr "" -"Swobodny robot medyczny zdolny do podania silnych anestetyków i " -"przeprowadzania skomplikowanych zabiegów chirurgicznych, zwykle w tej " -"kolejności. Wadliwe programy bio-diagnostyczne spowodowały liczne pozwy " -"sądowe przed Kataklizmem." #: lang/json/MONSTER_from_json.py -msgid "assassination robot" -msgid_plural "assassination robots" +msgid "lizardfolk warrior" +msgid_plural "lizardfolk warriors" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for assassination robot +#. ~ Description for lizardfolk warrior #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged medical robot repurposed into a murder machine. Its surgical " -"tools have been replaced with a fearsome set of blades, and its hypodermic " -"needle now delivers powerful toxins." +"A tall, powerful, reptilian humanoid with a muscular tail whose skin is " +"covered in dark gray-green scales. They are tribal and tend to be found in " +"caves and near water, especially in areas inhabited by dragons and wyrms. " +"They aren't particularly hostile, though they don't care for outsiders and " +"are highly dangerous when provoked. While they usually prefer to fight with" +" their greatclubs, they are equally ferocious with their sharp teeth and " +"claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "elixirator" -msgid_plural "elixirators" +msgid "lizardfolk hunter" +msgid_plural "lizardfolk hunters" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for elixirator +#. ~ Description for lizardfolk hunter #: lang/json/MONSTER_from_json.py msgid "" -"This doesn't work yet. Don't build it… A salvaged medibot with its internal" -" pharma-fabricators repurposed to produce mutagen." +"The hunter is a smaller lizardfolk than a warrior, but equally as deadly, " +"with their lithe figures and accurate javelin throws." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "The hunter hurls a barbed javelin at you!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "party bot" -msgid_plural "party bots" +msgid "lizardfolk shaman" +msgid_plural "lizardfolk shamans" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for party bot +#. ~ Description for lizardfolk shaman #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Why on Earth would you build this crazy " -"thing?" +"Lizardfolk are very intelligent and cunning, but magical ability is a rare " +"quality. Shamans are chosen from the tribe during childhood, when magical " +"abilities mark the fate of the young tribesman. Not much is known about the" +" initiation ritual they must undergo, but few survive the experience. " +"Shamans are druidic spellcasters that can use the forces of nature to battle" +" enemies, as well as summoning assistance when needed." msgstr "" -"Robot medyczny z odzysku napchany marihuaną, pokryty wielokolorowymi " -"migającymi światełkami i zaprogramowany do tańca. Po jakie licho miałbyś " -"budować tą zwariowaną rzecz?" #: lang/json/MONSTER_from_json.py -msgid "rat snatcher" -msgid_plural "rat snatchers" +msgid "lizardfolk chieftan" +msgid_plural "lizardfolk chieftans" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for rat snatcher +#. ~ Description for lizardfolk chieftan #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot repurposed for hunting small game. It's faster than " -"the original model but far less sturdy." +"Among the lizardfolk, ambition is a rare quality. Chieftans earn their " +"place by exhibiting unusually high levels of ambition, often mistaken by " +"outsiders as excessive, brutal violence. This chief is the largest and " +"strongest member of its tribe and carries a fierce trident to compliment its" +" teeth and claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "grab-bot" -msgid_plural "grab-bots" +msgid "crocodile" +msgid_plural "crocodiles" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for grab-bot +#. ~ Description for crocodile #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " -"meant to work in a pack." +"A once-and-future lizardfolk shaman, this large crocodile no longer has any " +"hint of any humanoid characteristics and looks very, very dangerous." msgstr "" -"Bot smyrgacz z odzysku przerobiony do chwytania i unieruchamiania wrogów. " -"Przeznaczony do działania w grupie." #: lang/json/MONSTER_from_json.py -msgid "pest hunter" -msgid_plural "pest hunters" +msgid "owlbear" +msgid_plural "owlbears" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for pest hunter +#. ~ Description for owlbear #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's " -"small size precludes rapid fire, due to recoil, and requires the use of " -"lightweight caseless ammo." +"The horrible owlbear is probably the result of genetic experimentation by " +"some insane wizard. These creatures inhabit the tangled forest regions of " +"every temperate clime, as well as subterranean labyrinths. They are " +"ravenous eaters, aggressive hunters, and evil tempered at all times. They " +"attack prey on sight and will fight to the death." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "insane cyborg" -msgid_plural "insane cyborgs" +msgid "black pudding" +msgid_plural "black puddings" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for insane cyborg +#. ~ Description for black pudding #: lang/json/MONSTER_from_json.py msgid "" -"A robot body with the head of a human. All kinds of electronic wires and " -"devices are implanted in its head. This cyborg moves erratically and has a " -"confused and deranged look in its eyes." +"Writhing, sticky, black sludge undulates across the ground. A faint " +"sizzling sound comes from the ground beneath it as it lurches toward you." +msgstr "" + +#. ~ Attack message of monster "black pudding"'s spell "None" +#: lang/json/MONSTER_from_json.py +msgid "The black pudding burns %3$s with acid!" msgstr "" -"Robotyczne ciało z ludzką głową, w której implantowane są różne kable " -"elektryczne i urządzenia. Ten cyborg porusza się nieregularnie a w oczach ma" -" zdezorientowany, obłąkany błysk." #: lang/json/MONSTER_from_json.py -msgid "necrotic cyborg" -msgid_plural "necrotic cyborgs" +msgid "krabgek" +msgid_plural "krabgeks" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for necrotic cyborg +#. ~ Description for krabgek #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Why on Earth " -"would anyone build such an abomination?" +"A large baleful eye peers out from the darkness, its gleam hinting at a " +"weird intelligence and unnerving malevolence. The eye oozes some pinkish " +"liquid, and the weirdly humanoid figure is covered in sharp blue-black " +"triangular plates." msgstr "" -"Cyborg z odzysku na którym osadzono głowę nekromanty zombie. Ożywiona głowa " -"zachowała nieco zdolności do ożywiania zombie. Po jakie licho miałbyś " -"budować takie wynaturzenie?" -#. ~ Description for security robot +#. ~ Attack message of monster "krabgek"'s spell "None" #: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod and an integrated shotgun." +msgid "The krabgek gazes at %3$s!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "military robot" -msgid_plural "military robots" +msgid "owlbear cub" +msgid_plural "owlbear cubs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for military robot #: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5.56mm firearm." -msgstr "" -"Robot wojskowy nadal aktywny dzięki wewnętrznemu rdzeniowi zasilania. Ten " -"jest wyposażony w elektryczną pałkę i zintegrowaną broń kalibru 5,56 mm." +msgid "bulette" +msgid_plural "bulettes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for military robot +#. ~ Description for bulette #: lang/json/MONSTER_from_json.py msgid "" -"A military training robot still operating due to its internal power core. " -"This one is armed with a high power paintball gun and a foam baton." +"The bulette (or landshark) was the result of a mad wizard's experimental " +"cross breeding of a snapping turtle and armadillo with infusions of demons' " +"ichor. They range temperate climates feeding on horses, men, and most other" +" flesh. The stupid bulette is irascible and always hungry, and they fear " +"nothing." msgstr "" -"Treningowy robot wojskowy nadal aktywny dzięki wewnętrznemu rdzeniowi " -"zasilania. Ten jest wyposażony w wysokiej mocy paintball i piankową pałkę." -#. ~ Description for military robot #: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 7.62mm firearm." -msgstr "" -"Robot wojskowy nadal aktywny dzięki wewnętrznemu rdzeniowi zasilania. Ten " -"jest wyposażony w elektryczną pałkę i zintegrowaną broń kalibru 7,62 mm." +msgid "will-o-wisp" +msgid_plural "will-o-wisps" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for military robot +#. ~ Description for will-o-wisp #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 50 caliber firearm." +"Will-o’-wisps can be yellow, white, green, or blue. They are easily " +"mistaken for lanterns, especially in the foggy marshes and swamps where they" +" reside." msgstr "" -"Robot wojskowy nadal aktywny dzięki wewnętrznemu rdzeniowi zasilania. Ten " -"jest wyposażony w elektryczną pałkę i zintegrowaną broń kalibru 50." -#. ~ Description for military robot #: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 8mm firearm." -msgstr "" -"Zautomatyzowany robot obronny nadal aktywny dzięki wewnętrznemu źródłu " -"zasilania. Ten jest wyposażony w elektryczną pałkę i zintegrowaną broń " -"kalibru 8 mm." +msgid "troll" +msgid_plural "trolls" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for military robot +#. ~ Description for troll #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5x50mm flechette gun." +"Monstrous, green-skinned humanoid. Trolls are renowned for their thick " +"hides and natural regenerative ability." msgstr "" -"Zautomatyzowany robot obronny nadal aktywny dzięki wewnętrznemu źródłu " -"zasilania. Ten jest wyposażony w elektryczną pałkę i zintegrowaną broń " -"strzałkową kalibru 5x50 mm." #: lang/json/MONSTER_from_json.py -msgid "grenadier robot" -msgid_plural "grenadier robots" +msgid "stirge" +msgid_plural "stirges" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for grenadier robot +#. ~ Description for stirge #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 40mm grenade launcher." +"This horrid flying creature looks like a cross between a large bat and " +"oversized mosquito." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "military flame robot" -msgid_plural "military flame robots" +msgid "shrieker" +msgid_plural "shriekers" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for military flame robot +#. ~ Description for shrieker #: lang/json/MONSTER_from_json.py msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated flamethrower." +"A shrieker is a human-sized mushroom that emits a piercing screech to drive " +"off creatures that disturb it." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "advanced robot" -msgid_plural "advanced robots" +msgid "lemure" +msgid_plural "lemures" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for advanced robot +#. ~ Description for lemure #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is armed with a powerful laser-emitter." +"A lemure resembles a molten mass of flesh with a vaguely humanoid head and " +"torso." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "laser-emitting robot" -msgid_plural "laser-emitting robots" +msgid "necco" +msgid_plural "neccos" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for laser-emitting robot +#. ~ Description for {'str': 'necco'} #: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful laser-emitter." +msgid "A giant necco wafer happily jaunting around." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "plasma-ejecting robot" -msgid_plural "plasma-ejecting robots" +msgid "marshmallow kid" +msgid_plural "marshmallow kids" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for plasma-ejecting robot +#. ~ Description for {'str': 'marshmallow kid'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful plasma-ejector." +"A small humanoid made of marsmallow. It bumbles around on its stubby " +"cushioned legs. How cute!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "railgun robot" -msgid_plural "railgun robots" +msgid "marshmallow guy" +msgid_plural "marshmallow guys" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for railgun robot +#. ~ Description for {'str': 'marshmallow guy'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful railgun." +"A marshmallow humanoid with a smile drawn on its face. It bumbles around, " +"hollow eyes scanning its surrounding seemingly looking for something." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "electro-casting robot" -msgid_plural "electro-casting robots" +msgid "marshmallow buff" +msgid_plural "marshmallow buffs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for electro-casting robot +#. ~ Description for {'str': 'marshmallow buff'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful electro-caster." +"A muscular body made of marshmallow, proudly striding towards an unknown " +"goal. Yummy!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "EMP-projecting robot" -msgid_plural "EMP-projecting robots" +msgid "marshmallow goliath" +msgid_plural "marshmallow goliaths" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for EMP-projecting robot +#. ~ Description for {'str': 'marshmallow goliath'} #: lang/json/MONSTER_from_json.py msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful EMP-projector." +"A gigantic marshmallow humanoid softly stompind around, frozen smile and big" +" empty eyes carefully scanning its surroundings." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "junkyard cowboy" -msgid_plural "junkyard cowboys" +msgid "marshmallow squire" +msgid_plural "marshmallow squires" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for junkyard cowboy +#. ~ Description for {'str': 'marshmallow squire'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Due to bootleg targeting software, it can only attack nearby targets." +"A small humanoid made of marsmallow. It wears a plate armor made of " +"chocolate coated crakers and bumbles around on its stubby cushioned legs. " +"How cute!" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "shortcircuit samurai" -msgid_plural "shortcircuit samurais" +msgid "marshmallow knight" +msgid_plural "marshmallow knights" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for shortcircuit samurai +#. ~ Description for {'str': 'marshmallow knight'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with two electrified blades. The over-" -"taxed power systems result in somewhat sluggish movement and occasional " -"discharges. Keep a safe distance!" +"A marshmallow humanoid in full chocolate coated crakers knight armor. It " +"bumbles around, hollow eyes scanning its surrounding seemingly looking for " +"something." msgstr "" -"Robot obronny z odzysku wyposażony w dwa naelektryzowane ostrza. Przeciążone" -" systemy zasilania powodują pewną ociężałość ruchów i sporadyczne " -"wyładowania elektryczne. Trzymaj się na dystans!" #: lang/json/MONSTER_from_json.py -msgid "slapdash paladin" -msgid_plural "slapdash paladins" +msgid "marshmallow champion" +msgid_plural "marshmallow champions" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for slapdash paladin +#. ~ Description for {'str': 'marshmallow champion'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. The burning fuel reserves make the robot noisy and " -"smokey." +"Standing tall in its shining armor of chocolate coated crakers this " +"marshmallow is proudly striding towards an unknown goal." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robo-guardian" -msgid_plural "robo-guardians" +msgid "marshmallow war lord" +msgid_plural "marshmallow war lords" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for robo-guardian +#. ~ Description for {'str': 'marshmallow war lord'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Multiple weapons provide a high rate of fire, but jury-rigged sensors limit " -"the effective range and accuracy. It makes for a good close range " -"bodyguard." +"A gigantic humanoid armored with thick plates of chocolate coated crakers. " +"A frozen smile half visible under its heavy helmet it carefully scans its " +"surroundings." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robote deluxe" -msgid_plural "robote deluxe" +msgid "gummy cub" +msgid_plural "gummy cubs" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str_sp': 'robote deluxe'} +#. ~ Description for {'str': 'gummy cub'} #: lang/json/MONSTER_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style." +msgid "A juvenile gummy bear. A cute bear cub made of sugary gum." msgstr "" -"Nabity diamentami i kryty złotem robot uzbrojony w parę broni kalibru 9 mm. " -"Wystawny luksusowy robot dla tych, którzy życzą sobie przeżyć apokalipsę w " -"wysokim stylu." #: lang/json/MONSTER_from_json.py -msgid "robo-protector" -msgid_plural "robo-protectors" +msgid "gummy bear" +msgid_plural "gummy bears" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for robo-protector +#. ~ Description for {'str': 'gummy bear'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. The " -"modified firearm is only capable of three round bursts, but range and " -"accuracy are decent. It makes for a solid combat ally." +"A big bear made of fruit flavored gelatine, its smooth round shape and its " +"fruity smell make it somehow less scary than its fleshy counterpart." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "robo-defender" -msgid_plural "robo-defenders" +msgid "cracker kid" +msgid_plural "cracker kids" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for robo-defender +#. ~ Description for {'str': 'cracker kid'} #: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Improved" -" optics provide nightvision and excellent range, but glitchy targeting " -"software requires an extended pause between shots. It makes for a good long" -" range sniper." +msgid "A small cracker kid running around on its cracker legs." +msgstr "" + +#. ~ Description for {'str': 'cracker'} +#: lang/json/MONSTER_from_json.py +msgid "A full grown cracker running around on its cracker legs." msgstr "" +#. ~ Description for {'str': 'cookie'} #: lang/json/MONSTER_from_json.py -msgid "glittering lady" -msgid_plural "glittering ladies" +msgid "A small cookie, scuriying around in search for crumbs." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "gum spider" +msgid_plural "gum spiders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for {'str': 'glittering lady', 'str_pl': 'glittering ladies'} +#. ~ Description for {'str': 'gum spider'} #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It has two integral lasers and emits a steady pulse of blinding flashes. " -"Due to mismatched focusing lenses, the lasers have limited range." +"A giant piece of gum streched in the shape of a spider. It stands very " +"still in its gum web." msgstr "" -"Zaawansowany robot z odzysku zmieniony w błyskającą latarnię destrukcji. Ma " -"dwa zintegrowane lasery i emituje regularny impulsy oślepiających fleszy. " -"Przez źle dobrane soczewki ogniskujące lasery mają ograniczony zasięg." #: lang/json/MONSTER_from_json.py -msgid "bitter spinster" -msgid_plural "bitter spinsters" +msgid "caffeinated gum spider" +msgid_plural "caffeinated gum spiders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for bitter spinster -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " -"pipes weaken the robot structurally, making it somewhat fragile." -msgstr "" -"Robot wojskowy z odzysku przerobiony na kaustycznego potwora. Wewnętrzna " -"kadź fermentacyjna kwasu zasila miotacz globul i sprej. Mnogość zbiorników i" -" rur osłabia strukturalnie robota, przez co jest dość delikatny." - -#. ~ Description for chicken walker +#. ~ Description for {'str': 'caffeinated gum spider'} #: lang/json/MONSTER_from_json.py msgid "" -"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a " -"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade " -"launcher, 5.56 anti-personnel gun, and the ability to electrify itself " -"against attackers, it is an effective automated sentry, though production " -"was limited due to a legal dispute." +"A giant piece of gum streched in the shape of a spider. It moves quickly " +"and aggressively as if under the effect of some stimulant." msgstr "" -"Northrup ATSV, masywny, silnie uzbrojony i opancerzony robot kroczący na " -"nogach z wstecznie skierowanymi stawami kolanowymi. Uzbrojony w 40mm " -"wyrzutnię granatów przeciw pojazdom, karabin 5.56mm przeciw piechocie, oraz " -"posiadający zdolność zelektryfikowania się przeciwko atakującym. Jest " -"efektywnym automatycznym strażnikiem, choć jego produkcję ograniczyły " -"dysputy prawne." #: lang/json/MONSTER_from_json.py -msgid "chainsaw horror" -msgid_plural "chainsaw horrors" +msgid "W11B10" +msgid_plural "W11B10s" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for chainsaw horror +#. ~ Description for W11B10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"whirring chainsaws. A speaker system has been installed to blast terrifying" -" shrieks of distorted music. No one in their right mind would craft such an" -" awful creature." +"Wraitheon (11B) Infantry 10 Level. Part of Wraitheon's series of one-to-one" +" auxiliaries designed to seamlessly integrate with more traditional forces." msgstr "" -"Kurzy kroczarz z odzysku przerobiony w straszliwego potwora odzianego w " -"czaszki i kolce. Broń dalekiego zasięgu zamieniono w zestaw warczących pił " -"mechanicznych. System głośników zainstalowany w korpusie ryczy " -"zniekształconą muzyką. Nikt o zdrowym rozsądku nie stworzyłby tej " -"potworności." +"Wraitheon (11B) Piechota 10 Poziomu. Jeden z serii wojsk pomocniczych jeden " +"do jednego produkcji Wraitheon, opracowany do płynnego zintegrowania z " +"bardziej tradycyjnymi siłami zbrojnymi." #: lang/json/MONSTER_from_json.py -msgid "screeching terror" -msgid_plural "screeching terrors" +msgid "W11B10B4" +msgid_plural "W11B10B4s" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for screeching terror +#. ~ Description for W11B10B4 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"piston-driven lances. A speaker system has been installed to blast " -"terrifying shrieks of distorted music. No one in their right mind would " -"craft such a hellish beast." +"Wraitheon (11B) Infantry 20 Level (B4) Sniper. Part of Wraitheon's series " +"of one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces. " msgstr "" +"Wraitheon (11B) Snajper 20 Poziomu. Jeden z serii wojsk pomocniczych jeden " +"do jednego produkcji Wraitheon, opracowany do płynnego zintegrowania z " +"bardziej tradycyjnymi siłami zbrojnymi." #: lang/json/MONSTER_from_json.py -msgid "hooked nightmare" -msgid_plural "hooked nightmares" +msgid "W12B10" +msgid_plural "W12B10s" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for hooked nightmare -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"spinning chains terminating in bloody hooks. A speaker system has been " -"installed to blast terrifying shrieks of distorted music. No one in their " -"right mind would craft such a twisted abomination." -msgstr "" - -#. ~ Description for Beagle Mini-Tank UGV +#. ~ Description for W12B10 #: lang/json/MONSTER_from_json.py msgid "" -"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an " -"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" -"infantry weapons, it's designed for high-risk urban fighting." +"Wraitheon (12B) Combat Engineer 10 Level. Part of Wraitheon's series of " +"one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" -"The Northrup Beagle to samobieżny autonomiczny mini-czołg wielkości lodówki " -"do walk w terenie zurbanizowanym. Uzbrojony w wyrzutnię przeciwczołgowych " -"rakiet, granatnik 40 mm i liczną broń przeciwpiechotną. Opracowany do walk " -"wysokiego ryzyka w terenie zabudowanym." +"Wraitheon (11B) Inżynier Bojowy 10 Poziomu. Jeden z serii wojsk pomocniczych" +" jeden do jednego produkcji Wraitheon, opracowany do płynnego zintegrowania " +"z bardziej tradycyjnymi siłami zbrojnymi." #: lang/json/MONSTER_from_json.py -msgid "fist king" -msgid_plural "fist kings" +msgid "W11H10" +msgid_plural "W11H10s" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for fist king +#. ~ Description for W11H10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Although lacking" -" ranged weapons, its armor and strength make it a match for the even the " -"biggest monsters. Only a madman would dare build such a reckless behemoth." +"Wraitheon (11H) Anti-Tank Infantry 10 Level. Part of Wraitheon's series of " +"one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" -"Dron czołgowy z odzysku wyposażony w parę potężnych pneumatycznych młotów, " -"których używa do miażdżenia wszystkiego na swojej drodze, w tym budynków. " -"Mimo braku broni dystansowych, jego zbroja i siła sprawiają że jest godnym " -"przeciwnikiem nawet największych potworów. Tylko szaleniec zbudowałby " -"takiego Behemota szos." +"Wraitheon (11B) Piechota Przeciwczołgowa 10 Poziomu. Jeden z serii wojsk " +"pomocniczych jeden do jednego produkcji Wraitheon, opracowany do płynnego " +"zintegrowania z bardziej tradycyjnymi siłami zbrojnymi." #: lang/json/MONSTER_from_json.py -msgid "atomic sultan" -msgid_plural "atomic sultans" +msgid "W12N10" +msgid_plural "W12N10s" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for atomic sultan +#. ~ Description for W12N10 #: lang/json/MONSTER_from_json.py msgid "" -"A salvaged tankbot refitted with burning hot man-crushers. Although lacking" -" ranged weapons, its armor and strength make it a match for even the biggest" -" foes. Multiple fusion cores give the robot ample power but also cause " -"radioactive gas leaks. Only a lunatic would dare build such a reckless " -"monster." +"Wraitheon (12N) Construction Engineer 10 Level. Part of Wraitheon's series " +"of one-to-one auxiliaries designed to seamlessly integrate with more " +"traditional forces." msgstr "" -"Dron czołgowy z odzysku wyposażony w rozgrzaną do czerwoności zgniatarkę. " -"Mnogie rdzenie fuzyjne zapewniają robotowi dużą moc ale powodują wycieki " -"radioaktywnego gazu. Mimo braku broni dystansowych, jego zbroja i siła " -"sprawiają, że jest godnym przeciwnikiem nawet największych potworów. Tylko " -"szaleniec zbudowałby takiego Behemota szos." +"Wraitheon (11B) Inżynier Budowniczy 10 Poziomu. Jeden z serii wojsk " +"pomocniczych jeden do jednego produkcji Wraitheon, opracowany do płynnego " +"zintegrowania z bardziej tradycyjnymi siłami zbrojnymi." -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gelatinous mass" -msgid_plural "gelatinous mass" -msgstr[0] "żelatynowa masa" -msgstr[1] "żelatynowa masa" -msgstr[2] "żelatynowa masa" -msgstr[3] "żelatynowa masa" +#: lang/json/MONSTER_from_json.py +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for {'str_sp': 'gelatinous mass'} -#. ~ Description for {'str_sp': 'gray mass'} -#. ~ Description for {'str_sp': 'gelatinous mass'} +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper +#. mummies'} #: lang/json/MONSTER_from_json.py msgid "" -"An escaping noisy blob, catch it before it brings in every zombie for miles!" +"Vaguely humanoid in shape, layered in something resembling toilet paper." msgstr "" -"Uciekający głośny glut. Złap go zanim sprowadzi ci na kark każdego zombie z " -"odległości trzech kilometrów!" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gray mass" -msgid_plural "gray mass" -msgstr[0] "szara masa" -msgstr[1] "szara masa" -msgstr[2] "szara masa" -msgstr[3] "szara masa" #: lang/json/MONSTER_from_json.py msgid "giant scorpion" @@ -92909,6 +90817,21 @@ msgid "" "chitin fitted to a thin mesh. You could put this on a friendly horse." msgstr "" +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "a mammal" msgstr "" @@ -93005,6 +90928,10 @@ msgstr "wynaturzenie" msgid "a human" msgstr "" +#: lang/json/SPECIES_from_json.py +msgid "an intelligent animal created by man before the Cataclysm" +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "an alien" msgstr "" @@ -93640,6 +91567,15 @@ msgstr "" msgid "Holographic Transposition" msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "psi stun" msgstr "" @@ -94729,6 +92665,56 @@ msgid "" "have this spell you probably debugged it in." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" msgid_plural "reactor core expansion devices" @@ -95476,6 +93462,58 @@ msgid "" "open the cover and show the light." msgstr "" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD +#. helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets +#. (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" msgid_plural "RM13 combat armors" @@ -97144,6 +95182,39 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" @@ -97324,9 +95395,9 @@ msgstr[3] "" #. ~ Description for CRIT S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into " -"your spinal cord, this device improves your overall physique and provides " -"basic information on your surroundings." +"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" +" spinal cord, this device improves your overall physique and provides basic " +"information on your surroundings." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -97340,7 +95411,7 @@ msgstr[3] "" #. ~ Use action msg for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD booting up…" +msgid "CRIT HUD booting up…" msgstr "" #. ~ Use action need_charges_msg for {'str': 'CRIT gasmask (off)', 'str_pl': @@ -97353,11 +95424,11 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line " -"electronics and lined with Kevlar for extra protection in order to keep " -"one's head where it should be. Various filters and other high tech wizardry" -" allow for enhanced oxygen intake and safety even under bombardment. It has" -" an integrated HUD and the option to turn it on for more features." +"This is a heavily modified Spec Ops modified gasmask, fitted with top-of-" +"the-line electronics and lined with Kevlar for extra protection in order to " +"keep one's head where it should be. Various filters and other high tech " +"wizardry allow for enhanced oxygen intake and safety even under bombardment." +" It has an integrated HUD and the option to turn it on for more features." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -97371,16 +95442,15 @@ msgstr[3] "" #. ~ Use action msg for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD deactivating." +msgid "CRIT HUD deactivating." msgstr "" #. ~ Description for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " -"draining power for the HUD, low-level nightvision and other protective " -"elements." +"This a heavily modified gasmask. It is currently on and draining power for " +"the HUD, low-level nightvision and other protective elements." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -97394,7 +95464,7 @@ msgstr[3] "" #. ~ Use action msg for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T EM booting up…" +msgid "CRIT EM booting up…" msgstr "" #. ~ Use action need_charges_msg for {'str': 'CRIT EM vest (off)', 'str_pl': @@ -97407,11 +95477,11 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments and reactive servos which protects its wearer and assists in " -"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec" -" Ops for its ease of use and manuverability. Turn it on for suit mode, " -"extra protection and movement." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments and" +" reactive servos which protects its wearer and assists in movement at the " +"cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its " +"ease of use and manuverability. Turn it on for suit mode, extra protection " +"and movement." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -97431,18 +95501,18 @@ msgstr "" #. ~ Use action msg for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T E.M powering off…" +msgid "CRIT EM powering off…" msgstr "" #. ~ Description for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments, reactive servos and a generator which pumps a crystallized liquid" -" that protects its wearer from most heavy combat situations at the cost of " -"extreme power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is" -" currently in suit form and draining your UPS power at high rates." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments, " +"reactive servos and a generator which pumps a crystallized liquid that " +"protects its wearer from most heavy combat situations at the cost of extreme" +" power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " +"currently in suit form and draining your UPS power at high rates." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -97464,8 +95534,8 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -97487,10 +95557,9 @@ msgstr "Wyłączasz %s." #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection. A tactically dim " -"flashlight is attached to the side. This light is currently on and drawing " -"power." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection. A tactically dim flashlight is " +"attached to the side. This light is currently on and drawing power." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -98890,16 +96959,14 @@ msgstr "Lekkie" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." +msgid "You flip the switch in the jack o'lantern." msgstr "" #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." +"face. It has a tiny LED light in it. It doesn't provide very much light." msgstr "" #: lang/json/TOOL_from_json.py @@ -98913,7 +96980,7 @@ msgstr[3] "" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." +msgid "The LED winks out inside the lantern." msgstr "" #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack @@ -98921,7 +96988,7 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is lit." +"very much light, but it can run for quite a long time. This lantern is lit." " The face shifts." msgstr "" @@ -99631,194 +97698,19 @@ msgstr "" " czemu wciąż ją trzymasz?" #: lang/json/TOOL_from_json.py -msgid "folded poncho" -msgid_plural "folded ponchos" -msgstr[0] "zwinięte ponczo" -msgstr[1] "zwinięte ponczo" -msgstr[2] "zwinięte ponczo" -msgstr[3] "zwinięte ponczo" - -#. ~ Description for {'str': 'folded poncho'} -#: lang/json/TOOL_from_json.py -msgid "" -"A folded lightweight plastic rain poncho with a hood. Use it to unfold for " -"use." -msgstr "" -"Złożone lekkie plastikowe przeciwdeszczowe ponczo z kapturem. Użyj by " -"rozłożyć do użycia." - -#: lang/json/TOOL_from_json.py -msgid "folded emergency blanket" -msgid_plural "folded emergency blankets" -msgstr[0] "zwinięty koc ratunkowy" -msgstr[1] "zwinięty koc ratunkowy" -msgstr[2] "zwinięty koc ratunkowy" -msgstr[3] "zwinięty koc ratunkowy" - -#. ~ Description for {'str': 'folded emergency blanket'} -#: lang/json/TOOL_from_json.py -msgid "" -"A folded blanket made of space-age materials that covers your most important" -" body parts. Use it to unfold for use." -msgstr "" -"Złożony koc zrobiony z materiałów ery kosmicznej zakrywający najważniejsze " -"części ciała. Użyj by rozwinąć do używania." - -#: lang/json/TOOL_from_json.py -msgid "inactive EMP hack" -msgid_plural "inactive EMP hacks" -msgstr[0] "nieaktywny młynek EMP" -msgstr[1] "nieaktywny młynek EMP" -msgstr[2] "nieaktywny młynek EMP" -msgstr[3] "nieaktywny młynek EMP" - -#. ~ Use action friendly_msg for {'str': 'inactive EMP hack'}. -#: lang/json/TOOL_from_json.py -msgid "The EMP hack flies from your hand and surveys the area!" -msgstr "Młynek EMP wylatuje ci z ręki i bada otoczenie!" - -#. ~ Use action hostile_msg for {'str': 'inactive EMP hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the EMP hack; take cover!" -msgstr "Błędnie programujesz młynek EMP; padnij!" - -#. ~ Description for {'str': 'inactive EMP hack'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive EMP hack. EMP hacks are fist-sized robots that fly " -"through the air. This one contains an EMP grenade and attacks by flying at " -"its target and detonating. Use this item to reprogram and release the EMP " -"hack. Electronics and computer skill determines if the targeting matrix is " -"reprogrammed successfully." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive C-4 hack" -msgid_plural "inactive C-4 hacks" -msgstr[0] "nieaktywny młynek C-4" -msgstr[1] "nieaktywny młynek C-4" -msgstr[2] "nieaktywny młynek C-4" -msgstr[3] "nieaktywny młynek C-4" - -#. ~ Use action friendly_msg for {'str': 'inactive C-4 hack'}. -#: lang/json/TOOL_from_json.py -msgid "The C-4 hack flies from your hand and surveys the area!" -msgstr "Młynek C-4 wylatuje ci z ręki i bada otoczenie!" - -#. ~ Use action hostile_msg for {'str': 'inactive C-4 hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the C-4 hack; take cover!" -msgstr "Błędnie programujesz młynek C-4; padnij!" - -#. ~ Description for {'str': 'inactive C-4 hack'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive C-4 hack. C-4 hacks are fist-sized robots that fly " -"through the air. This one contains some C-4 and attacks by flying at its " -"target and detonating. Use this item to reprogram and activate the C-4 " -"hack. Electronics and computer skill determines if the targeting matrix is " -"reprogrammed successfully." -msgstr "" -"To nieaktywny młynek C-4. Młynki to latające drony wielkości pięści. Ten " -"wyposażono w ładunek C-4, którym atakuje samobójczym lotem i detonując go u " -"celu. Aktywuj by przeprogramować młynek. Umiejętności elektroniczne i " -"komputerowe zdeterminują sukces w przeprogramowaniu matrycy celowniczej." - -#: lang/json/TOOL_from_json.py -msgid "inactive flashbang hack" -msgid_plural "inactive flashbang hacks" -msgstr[0] "nieaktywny młynek ogłuszający" -msgstr[1] "nieaktywny młynek ogłuszający" -msgstr[2] "nieaktywny młynek ogłuszający" -msgstr[3] "nieaktywny młynek ogłuszający" - -#. ~ Use action friendly_msg for {'str': 'inactive flashbang hack'}. -#: lang/json/TOOL_from_json.py -msgid "The flashbang hack flies from your hand and surveys the area!" -msgstr "Młynek ogłuszający wylatuje ci z ręki i bada otoczenie!" - -#. ~ Use action hostile_msg for {'str': 'inactive flashbang hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the flashbang hack; take cover!" -msgstr "Błędnie programujesz młynek ogłuszający; padnij!" - -#. ~ Description for {'str': 'inactive flashbang hack'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive flashbang hack. Flashbang hacks are fist-sized robots " -"that fly through the air. This one contains a flashbang and attacks by " -"flying at its target and detonating. Use this item to reprogram and " -"activate the flashbang hack. Electronics and computer skill determines if " -"the targeting matrix is reprogrammed successfully." -msgstr "" -"To nieaktywny młynek EMP. Młynki to latające drony wielkości pięści. Ten " -"wyposażono w granat EMP, którym atakuje samobójczym lotem i detonując go u " -"celu. Aktywuj by przeprogramować młynek. Umiejętności elektroniczne i " -"komputerowe zdeterminują sukces w przeprogramowaniu matrycy celowniczej." - -#: lang/json/TOOL_from_json.py -msgid "inactive tear gas hack" -msgid_plural "inactive tear gas hacks" -msgstr[0] "nieaktywny młynek z gazem łzawiącym" -msgstr[1] "nieaktywny młynek z gazem łzawiącym" -msgstr[2] "nieaktywny młynek z gazem łzawiącym" -msgstr[3] "nieaktywny młynek z gazem łzawiącym" - -#. ~ Use action friendly_msg for {'str': 'inactive tear gas hack'}. -#: lang/json/TOOL_from_json.py -msgid "The tear gas hack flies from your hand and surveys the area!" -msgstr "Młynek z gazem łzawiącym wylatuje ci z ręki i bada otoczenie!" - -#. ~ Use action hostile_msg for {'str': 'inactive tear gas hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the tear gas hack; take cover!" -msgstr "Błędnie programujesz młynek z gazem łzawiącym; padnij!" - -#. ~ Description for {'str': 'inactive tear gas hack'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive tear gas hack. Tear gas hacks are fist-sized robots " -"that fly through the air. This one contains a tear gas canister and attacks" -" by flying at its target and releasing tear gas. Use this item to reprogram" -" and activate the tear gas hack. Electronics and computer skill determines " -"if the targeting matrix is reprogrammed successfully." -msgstr "" -"To nieaktywny młynek C-4. Młynki to latające drony wielkości pięści. Ten " -"wyposażono w ładunek C-4, którym atakuje samobójczym lotem i detonując go u " -"celu. Aktywuj by przeprogramować młynek. Umiejętności elektroniczne i " -"komputerowe zdeterminują sukces w przeprogramowaniu matrycy celowniczej." - -#: lang/json/TOOL_from_json.py -msgid "inactive grenade hack" -msgid_plural "inactive grenade hacks" -msgstr[0] "nieaktywny młynek-granat" -msgstr[1] "nieaktywny młynek-granat" -msgstr[2] "nieaktywny młynek-granat" -msgstr[3] "nieaktywny młynek-granat" - -#. ~ Use action friendly_msg for {'str': 'inactive grenade hack'}. -#: lang/json/TOOL_from_json.py -msgid "The grenade hack flies from your hand and surveys the area!" -msgstr "Młynek-granat wylatuje ci z ręki i bada otoczenie!" - -#. ~ Use action hostile_msg for {'str': 'inactive grenade hack'}. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the grenade hack; take cover!" -msgstr "Błędnie programujesz młynek-granat; padnij!" +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "laptop kontroli" +msgstr[1] "laptop kontroli" +msgstr[2] "laptop kontroli" +msgstr[3] "laptop kontroli" -#. ~ Description for {'str': 'inactive grenade hack'} +#. ~ Description for {'str': 'control laptop'} #: lang/json/TOOL_from_json.py msgid "" -"This is an inactive grenade hack. Grenade hacks are fist-sized robots that " -"fly through the air. This one contains a grenade and attacks by flying at " -"its target and detonating. Use this item to reprogram and activate the " -"grenade hack. Electronics and computer skill determines if the targeting " -"matrix is reprogrammed successfully." +"A modified laptop, now capable of transmitting in the ultra-high frequencies" +" utilized by robots. Activate it to command robots from afar." msgstr "" -"To nieaktywny młynek-granat. Młynki to latające drony wielkości pięści. Ten " -"wyposażono w granat, którym atakuje samobójczym lotem i detonując go u celu." -" Aktywuj by przeprogramować młynek. Umiejętności elektroniczne i komputerowe" -" zdeterminują sukces w przeprogramowaniu matrycy celowniczej." #: lang/json/TOOL_from_json.py msgid "inactive laser turret" @@ -99843,6 +97735,196 @@ msgstr "" "atakować wrogów w zasięgu jej obrotowych działek laserowych. Wymaga światła " "słonecznego do strzelania." +#: lang/json/TOOL_from_json.py +msgid "folded poncho" +msgid_plural "folded ponchos" +msgstr[0] "zwinięte ponczo" +msgstr[1] "zwinięte ponczo" +msgstr[2] "zwinięte ponczo" +msgstr[3] "zwinięte ponczo" + +#. ~ Description for {'str': 'folded poncho'} +#: lang/json/TOOL_from_json.py +msgid "" +"A folded lightweight plastic rain poncho with a hood. Use it to unfold for " +"use." +msgstr "" +"Złożone lekkie plastikowe przeciwdeszczowe ponczo z kapturem. Użyj by " +"rozłożyć do użycia." + +#: lang/json/TOOL_from_json.py +msgid "folded emergency blanket" +msgid_plural "folded emergency blankets" +msgstr[0] "zwinięty koc ratunkowy" +msgstr[1] "zwinięty koc ratunkowy" +msgstr[2] "zwinięty koc ratunkowy" +msgstr[3] "zwinięty koc ratunkowy" + +#. ~ Description for {'str': 'folded emergency blanket'} +#: lang/json/TOOL_from_json.py +msgid "" +"A folded blanket made of space-age materials that covers your most important" +" body parts. Use it to unfold for use." +msgstr "" +"Złożony koc zrobiony z materiałów ery kosmicznej zakrywający najważniejsze " +"części ciała. Użyj by rozwinąć do używania." + +#: lang/json/TOOL_from_json.py +msgid "inactive EMP hack" +msgid_plural "inactive EMP hacks" +msgstr[0] "nieaktywny młynek EMP" +msgstr[1] "nieaktywny młynek EMP" +msgstr[2] "nieaktywny młynek EMP" +msgstr[3] "nieaktywny młynek EMP" + +#. ~ Use action friendly_msg for {'str': 'inactive EMP hack'}. +#: lang/json/TOOL_from_json.py +msgid "The EMP hack flies from your hand and surveys the area!" +msgstr "Młynek EMP wylatuje ci z ręki i bada otoczenie!" + +#. ~ Use action hostile_msg for {'str': 'inactive EMP hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the EMP hack; take cover!" +msgstr "Błędnie programujesz młynek EMP; padnij!" + +#. ~ Description for {'str': 'inactive EMP hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive EMP hack. EMP hacks are fist-sized robots that fly " +"through the air. This one contains an EMP grenade and attacks by flying at " +"its target and detonating. Use this item to reprogram and release the EMP " +"hack. Electronics and computer skill determines if the targeting matrix is " +"reprogrammed successfully." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "inactive C-4 hack" +msgid_plural "inactive C-4 hacks" +msgstr[0] "nieaktywny młynek C-4" +msgstr[1] "nieaktywny młynek C-4" +msgstr[2] "nieaktywny młynek C-4" +msgstr[3] "nieaktywny młynek C-4" + +#. ~ Use action friendly_msg for {'str': 'inactive C-4 hack'}. +#: lang/json/TOOL_from_json.py +msgid "The C-4 hack flies from your hand and surveys the area!" +msgstr "Młynek C-4 wylatuje ci z ręki i bada otoczenie!" + +#. ~ Use action hostile_msg for {'str': 'inactive C-4 hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the C-4 hack; take cover!" +msgstr "Błędnie programujesz młynek C-4; padnij!" + +#. ~ Description for {'str': 'inactive C-4 hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive C-4 hack. C-4 hacks are fist-sized robots that fly " +"through the air. This one contains some C-4 and attacks by flying at its " +"target and detonating. Use this item to reprogram and activate the C-4 " +"hack. Electronics and computer skill determines if the targeting matrix is " +"reprogrammed successfully." +msgstr "" +"To nieaktywny młynek C-4. Młynki to latające drony wielkości pięści. Ten " +"wyposażono w ładunek C-4, którym atakuje samobójczym lotem i detonując go u " +"celu. Aktywuj by przeprogramować młynek. Umiejętności elektroniczne i " +"komputerowe zdeterminują sukces w przeprogramowaniu matrycy celowniczej." + +#: lang/json/TOOL_from_json.py +msgid "inactive flashbang hack" +msgid_plural "inactive flashbang hacks" +msgstr[0] "nieaktywny młynek ogłuszający" +msgstr[1] "nieaktywny młynek ogłuszający" +msgstr[2] "nieaktywny młynek ogłuszający" +msgstr[3] "nieaktywny młynek ogłuszający" + +#. ~ Use action friendly_msg for {'str': 'inactive flashbang hack'}. +#: lang/json/TOOL_from_json.py +msgid "The flashbang hack flies from your hand and surveys the area!" +msgstr "Młynek ogłuszający wylatuje ci z ręki i bada otoczenie!" + +#. ~ Use action hostile_msg for {'str': 'inactive flashbang hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the flashbang hack; take cover!" +msgstr "Błędnie programujesz młynek ogłuszający; padnij!" + +#. ~ Description for {'str': 'inactive flashbang hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive flashbang hack. Flashbang hacks are fist-sized robots " +"that fly through the air. This one contains a flashbang and attacks by " +"flying at its target and detonating. Use this item to reprogram and " +"activate the flashbang hack. Electronics and computer skill determines if " +"the targeting matrix is reprogrammed successfully." +msgstr "" +"To nieaktywny młynek EMP. Młynki to latające drony wielkości pięści. Ten " +"wyposażono w granat EMP, którym atakuje samobójczym lotem i detonując go u " +"celu. Aktywuj by przeprogramować młynek. Umiejętności elektroniczne i " +"komputerowe zdeterminują sukces w przeprogramowaniu matrycy celowniczej." + +#: lang/json/TOOL_from_json.py +msgid "inactive tear gas hack" +msgid_plural "inactive tear gas hacks" +msgstr[0] "nieaktywny młynek z gazem łzawiącym" +msgstr[1] "nieaktywny młynek z gazem łzawiącym" +msgstr[2] "nieaktywny młynek z gazem łzawiącym" +msgstr[3] "nieaktywny młynek z gazem łzawiącym" + +#. ~ Use action friendly_msg for {'str': 'inactive tear gas hack'}. +#: lang/json/TOOL_from_json.py +msgid "The tear gas hack flies from your hand and surveys the area!" +msgstr "Młynek z gazem łzawiącym wylatuje ci z ręki i bada otoczenie!" + +#. ~ Use action hostile_msg for {'str': 'inactive tear gas hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the tear gas hack; take cover!" +msgstr "Błędnie programujesz młynek z gazem łzawiącym; padnij!" + +#. ~ Description for {'str': 'inactive tear gas hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive tear gas hack. Tear gas hacks are fist-sized robots " +"that fly through the air. This one contains a tear gas canister and attacks" +" by flying at its target and releasing tear gas. Use this item to reprogram" +" and activate the tear gas hack. Electronics and computer skill determines " +"if the targeting matrix is reprogrammed successfully." +msgstr "" +"To nieaktywny młynek C-4. Młynki to latające drony wielkości pięści. Ten " +"wyposażono w ładunek C-4, którym atakuje samobójczym lotem i detonując go u " +"celu. Aktywuj by przeprogramować młynek. Umiejętności elektroniczne i " +"komputerowe zdeterminują sukces w przeprogramowaniu matrycy celowniczej." + +#: lang/json/TOOL_from_json.py +msgid "inactive grenade hack" +msgid_plural "inactive grenade hacks" +msgstr[0] "nieaktywny młynek-granat" +msgstr[1] "nieaktywny młynek-granat" +msgstr[2] "nieaktywny młynek-granat" +msgstr[3] "nieaktywny młynek-granat" + +#. ~ Use action friendly_msg for {'str': 'inactive grenade hack'}. +#: lang/json/TOOL_from_json.py +msgid "The grenade hack flies from your hand and surveys the area!" +msgstr "Młynek-granat wylatuje ci z ręki i bada otoczenie!" + +#. ~ Use action hostile_msg for {'str': 'inactive grenade hack'}. +#: lang/json/TOOL_from_json.py +msgid "You misprogram the grenade hack; take cover!" +msgstr "Błędnie programujesz młynek-granat; padnij!" + +#. ~ Description for {'str': 'inactive grenade hack'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive grenade hack. Grenade hacks are fist-sized robots that " +"fly through the air. This one contains a grenade and attacks by flying at " +"its target and detonating. Use this item to reprogram and activate the " +"grenade hack. Electronics and computer skill determines if the targeting " +"matrix is reprogrammed successfully." +msgstr "" +"To nieaktywny młynek-granat. Młynki to latające drony wielkości pięści. Ten " +"wyposażono w granat, którym atakuje samobójczym lotem i detonując go u celu." +" Aktywuj by przeprogramować młynek. Umiejętności elektroniczne i komputerowe" +" zdeterminują sukces w przeprogramowaniu matrycy celowniczej." + #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" @@ -99882,7 +97964,6 @@ msgid "You misprogram the manhack; it's hostile!" msgstr "Błędnie programujesz młynek; jest wrogi!" #. ~ Description for {'str': 'inactive manhack'} -#. ~ Description for inactive hack #: lang/json/TOOL_from_json.py msgid "" "This is an inactive manhack. Manhacks are fist-sized robots that fly " @@ -100465,6 +98546,28 @@ msgid "" "distraction." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "" + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing" +" it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "clothes hanger" msgid_plural "clothes hangers" @@ -101128,8 +99231,8 @@ msgstr[3] "" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end" -" and sharpened into a cutting tool. Its jagged edge is wicked but fragile." +"A femur or other bone, about 20 cm long, which has been broken at one end " +"and sharpened into a cutting tool. Its jagged edge is wicked but fragile." msgstr "" #: lang/json/TOOL_from_json.py @@ -101876,6 +99979,36 @@ msgid "" "but bad for the environment; at least you're recycling it." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "butchering kit" msgid_plural "butchering kits" @@ -102404,13 +100537,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels #. (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels #. (100L)'} -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +#: lang/json/TOOL_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -102722,21 +100853,6 @@ msgstr[3] "komórka- latarka" msgid "You stop lighting up the screen." msgstr "Przestajesz podświetlać ekran." -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "laptop kontroli" -msgstr[1] "laptop kontroli" -msgstr[2] "laptop kontroli" -msgstr[3] "laptop kontroli" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies" -" utilized by robots. Activate it to command robots from afar." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" @@ -102794,7 +100910,6 @@ msgstr[2] "elektrowytrych" msgstr[3] "elektrowytrych" #. ~ Description for {'str': 'electrohack'} -#. ~ Description for electrohack #: lang/json/TOOL_from_json.py msgid "" "This device has many ports attached, allowing it to connect to almost any " @@ -102982,11 +101097,13 @@ msgstr[3] "smartfony" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "Aktywujesz aplikację latarki." #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "Poziom naładowania smartfona jest zbyt niski." @@ -103167,11 +101284,8 @@ msgstr[3] "zestaw wytrychów" msgid "" "This is a locksmith's set of sturdy steel lock picks and torsion wrenches. " "It is essential for silently and quickly opening locks, provided you have " -"some mechanical skill." +"some lock picking and mechanical skills." msgstr "" -"To zestaw ślusarski twardych stalowych wytrychów i narzędzi do podważania. " -"Jest niezbędny do cichego i szybkiego otwierania zamków, o ile masz nieco " -"zdolności mechanicznych." #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -103712,7 +101826,6 @@ msgstr[2] "aktywny granat EMP" msgstr[3] "aktywny granat EMP" #. ~ Description for {'str': 'active EMP grenade'} -#. ~ Description for active EMP grenade #: lang/json/TOOL_from_json.py msgid "" "This EMP grenade is active, and will shortly detonate, creating a large EMP " @@ -106334,23 +104447,6 @@ msgid "This is a car horn meant to be attached to a car's electrical system." msgstr "" "Klakson samochodowy który montuje się do systemu elektrycznego pojazdu." -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "płyta kevlarowa" -msgstr[1] "płyta kevlarowa" -msgstr[2] "płyta kevlarowa" -msgstr[3] "płyta kevlarowa" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made" -" of Kevlar." -msgstr "" -"Płyta ze wzmocnionego kevlaru. Może być wykorzystana do naprawy przedmiotów " -"zrobionych z kevlaru." - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" @@ -106732,6 +104828,21 @@ msgstr "" "To kamień pokryty spiralami, i dziurami na obwodzie. Choć dość duży, waży " "tyle co nic. Powietrze zdaje się gromadzić wokół niego." +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" @@ -110529,11 +108640,10 @@ msgstr[3] "" #. knives'} #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked" -" pry bar at the bottom for opening simple things and bashing in heads. " -"Matte black finish helps it avoid flash in dim-light situations and tanto " -"tip allows for light-armor penetration. Blade length allows for decent " -"reach." +"A modified trench knife. Has a knuckleduster guard and a small, hooked pry " +"bar at the bottom. The matte black finish helps it avoid flash in dim-light " +"situations and tanto tip allows for light-armor penetration. Blade length " +"allows for decent reach." msgstr "" #: lang/json/TOOL_from_json.py @@ -110563,9 +108673,9 @@ msgstr[3] "" #. ~ Description for CRIT Reso-blade #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " -"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " -"thrums from within." +"CRIT melee weapon. Alien runes adorn the carbon steel blade. The blade " +"oddly seems to lack sharpness, and yet upon closer oberservation, a hum of " +"energy thrums from within." msgstr "" #: lang/json/TOOL_from_json.py @@ -111738,1335 +109848,6 @@ msgid "" "magical metals into their workable ingot form." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "Dusk" -msgid_plural "Dusks" -msgstr[0] "Zmierzch" -msgstr[1] "Zmierzch" -msgstr[2] "Zmierzch" -msgstr[3] "Zmierzch" - -#. ~ Description for Dusk -#: lang/json/TOOL_from_json.py -msgid "" -"A longsword, made out of a very dark, almost black metal. It seems to hold " -"a greater edge than usual steel blades and feels …more comfortable in the " -"hand. While the blade is made out of this dark metal, the crossguard and " -"the pommel seem to be made out of a brighter material, which feels " -"abnormally cool to the touch." -msgstr "" - -#. ~ Description for disarmed defense turret -#: lang/json/TOOL_from_json.py -msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "Automatyczna wieżyczka obronna. Brakuje jej zintegrowanej broni." - -#. ~ Description for disarmed military turret -#: lang/json/TOOL_from_json.py -msgid "An automated military turret. It lacks an integrated weapon." -msgstr "Automatyczna wieżyczka wojskowa. Brakuje jej zintegrowanej broni." - -#. ~ Description for disarmed advanced turret -#: lang/json/TOOL_from_json.py -msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "Automatyczna zaawansowana wieżyczka. Brakuje jej zintegrowanej broni." - -#: lang/json/TOOL_from_json.py -msgid "inactive 9mm defense turret" -msgid_plural "inactive 9mm defense turrets" -msgstr[0] "nieaktywna wieżyczka obronna 9 mm" -msgstr[1] "nieaktywna wieżyczka obronna 9 mm" -msgstr[2] "nieaktywna wieżyczka obronna 9 mm" -msgstr[3] "nieaktywna wieżyczka obronna 9 mm" - -#. ~ Description for inactive 9mm defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 9mm defense turret. Up to 100 standard 9mm rounds will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Nieaktywna wieżyczka obronna 9mm. Maksymalnie 100 standardowych pocisków 9 " -"mm zostanie automatycznie załadowane z twego ekwipunku do wieżyczki w czasie" -" aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela swoim " -"zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję bezpieczeństwa w " -"razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive shotgun defense turret" -msgid_plural "inactive shotgun defense turrets" -msgstr[0] "nieaktywna wieżyczka obronna strzelba" -msgstr[1] "nieaktywna wieżyczka obronna strzelba" -msgstr[2] "nieaktywna wieżyczka obronna strzelba" -msgstr[3] "nieaktywna wieżyczka obronna strzelba" - -#. ~ Description for inactive shotgun defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive shotgun defense turret. Up to 100 standard 12ga shells will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Nieaktywna wieżyczka obronna strzelba. Maksymalnie 100 standardowych " -"pocisków 9 mm zostanie automatycznie załadowane z twego ekwipunku do " -"wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " -"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " -"bezpieczeństwa w razie awarii." - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riotcontrol turret. Up to 50 standard 40mm less-than-lethal " -"beanbag canisters will be automatically loaded from your inventory into the " -"turret upon activation. Place the turret and it will ID you as friendly " -"with its advanced IFF software. Consult your safety manual in the event of " -"a malfunction." -msgstr "" -"Nieaktywna wieżyczka kontroli tłumów. Maksymalnie 50 niezabójczych woreczków" -" z grochem zostanie automatycznie załadowane z twego ekwipunku do wieżyczki " -"w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela " -"swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " -"bezpieczeństwa w razie awarii." - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riot control turret. Up to 50 standard 40mm teargas canisters " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Nieaktywna wieżyczka kontroli tłumów. Maksymalnie 50 kanistrów z gazem " -"łzawiącym 40 mm zostanie automatycznie załadowane z twego ekwipunku do " -"wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " -"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " -"bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive 5.56mm military turret" -msgid_plural "inactive 5.56mm military turrets" -msgstr[0] "nieaktywna wieżyczka wojskowa 5,56 mm" -msgstr[1] "nieaktywna wieżyczka wojskowa 5,56 mm" -msgstr[2] "nieaktywna wieżyczka wojskowa 5,56 mm" -msgstr[3] "nieaktywna wieżyczka wojskowa 5,56 mm" - -#. ~ Description for inactive 5.56mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 5.56mm military turret. Up to 100 standard 5.56mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Nieaktywna wieżyczka wojskowa 5,56 mm. Maksymalnie 100 standardowych " -"pocisków 5,56 mm NATO zostanie automatycznie załadowane z twego ekwipunku do" -" wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " -"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " -"bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive 7.62mm military turret" -msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "nieaktywna wieżyczka wojskowa 7,62 mm" -msgstr[1] "nieaktywna wieżyczka wojskowa 7,62 mm" -msgstr[2] "nieaktywna wieżyczka wojskowa 7,62 mm" -msgstr[3] "nieaktywna wieżyczka wojskowa 7,62 mm" - -#. ~ Description for inactive 7.62mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 7.62mm military turret. Up to 100 standard 7.62mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Nieaktywna wieżyczka wojskowa 7,62 mm. Maksymalnie 100 standardowych " -"pocisków 7,62 mm NATO zostanie automatycznie załadowane z twego ekwipunku do" -" wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " -"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " -"bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive 50 caliber military turret" -msgid_plural "inactive 50 caliber military turrets" -msgstr[0] "nieaktywna wieżyczka wojskowa kal 50" -msgstr[1] "nieaktywna wieżyczka wojskowa kal 50" -msgstr[2] "nieaktywna wieżyczka wojskowa kal 50" -msgstr[3] "nieaktywna wieżyczka wojskowa kal 50" - -#. ~ Description for inactive 50 caliber military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 50 caliber military turret. Up to 100 standard 50 caliber bmg " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Nieaktywna wieżyczka wojskowa kal 50. Maksymalnie 100 standardowych pocisków" -" kal 50 zostanie automatycznie załadowane z twego ekwipunku do wieżyczki w " -"czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela " -"swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " -"bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive military needle turret" -msgid_plural "inactive military needle turrets" -msgstr[0] "nieaktywna wieżyczka wojskowa igłacz" -msgstr[1] "nieaktywna wieżyczka wojskowa igłacz" -msgstr[2] "nieaktywna wieżyczka wojskowa igłacz" -msgstr[3] "nieaktywna wieżyczka wojskowa igłacz" - -#. ~ Description for inactive military needle turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced needle turret. Up to 100 standard 5x50mm flechette " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Nieaktywna zaawansowana wieżyczka igłacz. Maksymalnie 100 standardowych " -"pocisków strzałkowych 5x50 mm zostanie automatycznie załadowane z twego " -"ekwipunku do wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje " -"cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " -"instrukcję bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 8x40mm turret" -msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "nieaktywna wieżyczka wojskowa 8x40 mm" -msgstr[1] "nieaktywna wieżyczka wojskowa 8x40 mm" -msgstr[2] "nieaktywna wieżyczka wojskowa 8x40 mm" -msgstr[3] "nieaktywna wieżyczka wojskowa 8x40 mm" - -#. ~ Description for inactive military 8x40mm turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced 8x40mm turret. Up to 100 standard 8x40mm caseless " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Nieaktywna zaawansowana wieżyczka 8x40 mm. Maksymalnie 100 standardowych " -"pocisków 8x40 mm zostanie automatycznie załadowane z twego ekwipunku do " -"wieżyczki w czasie aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako " -"przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję " -"bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 40mm grenade turret" -msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "nieaktywna wieżyczka wojskowa granatnik 40 mm" -msgstr[1] "nieaktywna wieżyczka wojskowa granatnik 40 mm" -msgstr[2] "nieaktywna wieżyczka wojskowa granatnik 40 mm" -msgstr[3] "nieaktywna wieżyczka wojskowa granatnik 40 mm" - -#. ~ Description for inactive military 40mm grenade turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive military grenade turret. Up to 50 standard 40mm fragmentation " -"grenades will be automatically loaded from your inventory into the turret " -"upon activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military flamethrower turret" -msgid_plural "inactive military flamethrower turrets" -msgstr[0] "nieaktywna wieżyczka wojskowa miotacz ognia" -msgstr[1] "nieaktywna wieżyczka wojskowa miotacz ognia" -msgstr[2] "nieaktywna wieżyczka wojskowa miotacz ognia" -msgstr[3] "nieaktywna wieżyczka wojskowa miotacz ognia" - -#. ~ Description for inactive military flamethrower turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive flame turret. Up to 100 units of napalm will be automatically " -"loaded from your inventory into the turret upon activation. Place the " -"turret and it will ID you as friendly with its advanced IFF software. " -"Consult your safety manual in the event of a malfunction." -msgstr "" -"Nieaktywna wieżyczka miotacz ognia. Maksymalnie 100 jednostek napalmu " -"zostanie automatycznie załadowane z twego ekwipunku do wieżyczki w czasie " -"aktywacji. Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela swoim " -"zaawansowanym oprogramowaniem IFF. Przeczytaj instrukcję bezpieczeństwa w " -"razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced laser turret" -msgid_plural "inactive advanced laser turrets" -msgstr[0] "nieaktywna zaawansowana wieżyczka laserowa" -msgstr[1] "nieaktywna zaawansowana wieżyczka laserowa" -msgstr[2] "nieaktywna zaawansowana wieżyczka laserowa" -msgstr[3] "nieaktywna zaawansowana wieżyczka laserowa" - -#. ~ Description for inactive advanced laser turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced laser turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Nieaktywna zaawansowana wieżyczka laserowa. Umieść wieżyczkę a zidentyfikuje" -" cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " -"instrukcję bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced plasma turret" -msgid_plural "inactive advanced plasma turrets" -msgstr[0] "nieaktywna zaawansowana wieżyczka plazmowa" -msgstr[1] "nieaktywna zaawansowana wieżyczka plazmowa" -msgstr[2] "nieaktywna zaawansowana wieżyczka plazmowa" -msgstr[3] "nieaktywna zaawansowana wieżyczka plazmowa" - -#. ~ Description for inactive advanced plasma turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced plasma turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Nieaktywna zaawansowana wieżyczka plazmowa. Umieść wieżyczkę a zidentyfikuje" -" cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. Przeczytaj " -"instrukcję bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced railgun turret" -msgid_plural "inactive advanced railgun turrets" -msgstr[0] "nieaktywna zaawansowana wieżyczka szynowa" -msgstr[1] "nieaktywna zaawansowana wieżyczka szynowa" -msgstr[2] "nieaktywna zaawansowana wieżyczka szynowa" -msgstr[3] "nieaktywna zaawansowana wieżyczka szynowa" - -#. ~ Description for inactive advanced railgun turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced railgun turret. Up to 50 standard rail projectiles " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced acid turret" -msgid_plural "inactive advanced acid turrets" -msgstr[0] "nieaktywna zaawansowana wieżyczka kwasowa" -msgstr[1] "nieaktywna zaawansowana wieżyczka kwasowa" -msgstr[2] "nieaktywna zaawansowana wieżyczka kwasowa" -msgstr[3] "nieaktywna zaawansowana wieżyczka kwasowa" - -#. ~ Description for inactive advanced acid turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced acid turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced EMP turret" -msgid_plural "inactive advanced EMP turrets" -msgstr[0] "nieaktywna zaawansowana wieżyczka EMP" -msgstr[1] "nieaktywna zaawansowana wieżyczka EMP" -msgstr[2] "nieaktywna zaawansowana wieżyczka EMP" -msgstr[3] "nieaktywna zaawansowana wieżyczka EMP" - -#. ~ Description for inactive advanced EMP turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced EMP turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced electro turret" -msgid_plural "inactive advanced electro turrets" -msgstr[0] "nieaktywna zaawansowana wieżyczka elektryczna" -msgstr[1] "nieaktywna zaawansowana wieżyczka elektryczna" -msgstr[2] "nieaktywna zaawansowana wieżyczka elektryczna" -msgstr[3] "nieaktywna zaawansowana wieżyczka elektryczna" - -#. ~ Description for inactive advanced electro turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced electro turret. Place the turret and it will ID you as" -" friendly with its advanced IFF software. Consult your safety manual in the" -" event of a malfunction." -msgstr "" -"Nieaktywna zaawansowana wieżyczka elektryczna. Umieść wieżyczkę a " -"zidentyfikuje cię jako przyjaciela swoim zaawansowanym oprogramowaniem IFF. " -"Przeczytaj instrukcję bezpieczeństwa w razie awarii." - -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "garden gnome" -msgid_plural "garden gnomes" -msgstr[0] "gnom ogrodowy" -msgstr[1] "gnom ogrodowy" -msgstr[2] "gnom ogrodowy" -msgstr[3] "gnom ogrodowy" - -#. ~ Description for garden gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. You can place him in your " -"garden or elsewhere." -msgstr "" -"Zwykły i całkowicie niegroźny gnom ogrodowy. Można go umieścić w ogrodzie " -"lub gdzie indziej." - -#: lang/json/TOOL_from_json.py -msgid "gaurdin gnome" -msgid_plural "gaurdin gnomes" -msgstr[0] "gnom strażnik" -msgstr[1] "gnom strażnik" -msgstr[2] "gnom strażnik" -msgstr[3] "gnom strażnik" - -#. ~ Description for gaurdin gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. He holds up to 100 rounds of" -" 9mm ammo." -msgstr "" -"Zwykły i całkowicie niegroźny gnom ogrodowy. Przechowuje do 100 pocisków " -"kalibru 9 mm." - -#: lang/json/TOOL_from_json.py -msgid "small batch of curdling milk" -msgid_plural "small batches of curdling milk" -msgstr[0] "mała porcja zsiadłego mleka" -msgstr[1] "mała porcja zsiadłego mleka" -msgstr[2] "mała porcja zsiadłego mleka" -msgstr[3] "mała porcja zsiadłego mleka" - -#. ~ Use action msg for {'str': 'small batch of curdling milk', 'str_pl': -#. 'small batches of curdling milk'}. -#. ~ Use action msg for {'str': 'batch of curdling milk', 'str_pl': 'batches -#. of curdling milk'}. -#. ~ Use action msg for {'str': 'large batch of curdling milk', 'str_pl': -#. 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "" -"The milk appears to have finished curdling, and is ready for further " -"processing. Checking on it has exposed the mixture to the atmosphere." -msgstr "" -"Mleko wygląda na w pełni zsiadłe, i gotowe do dalszej obróbki. Sprawdzenie " -"wystawiło je na działanie powietrza." - -#. ~ Use action not_ready_msg for {'str': 'small batch of curdling milk', -#. 'str_pl': 'small batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'batch of curdling milk', 'str_pl': -#. 'batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'large batch of curdling milk', -#. 'str_pl': 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "The milk is still curdling." -msgstr "Mleko nadal się zsiada." - -#. ~ Description for {'str': 'small batch of curdling milk', 'str_pl': 'small -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed small waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Mały zamknięty bukłak wypełniony mlekiem które przechodzi proces do zostania" -" toporną formą sera, przez dodanie octu lub podpuszczki." - -#: lang/json/TOOL_from_json.py -msgid "batch of curdling milk" -msgid_plural "batches of curdling milk" -msgstr[0] "porcja zsiadłego mleka" -msgstr[1] "porcja zsiadłego mleka" -msgstr[2] "porcja zsiadłego mleka" -msgstr[3] "porcja zsiadłego mleka" - -#. ~ Description for {'str': 'batch of curdling milk', 'str_pl': 'batches of -#. curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed waterskin filled with milk that is undergoing the process to become" -" a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Zamknięty bukłak wypełniony mlekiem które przechodzi proces do zostania " -"toporną formą sera, przez dodanie octu lub podpuszczki." - -#: lang/json/TOOL_from_json.py -msgid "large batch of curdling milk" -msgid_plural "large batches of curdling milk" -msgstr[0] "duża porcja zsiadłego mleka" -msgstr[1] "duża porcja zsiadłego mleka" -msgstr[2] "duża porcja zsiadłego mleka" -msgstr[3] "duża porcja zsiadłego mleka" - -#. ~ Description for {'str': 'large batch of curdling milk', 'str_pl': 'large -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed large waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Duży zamknięty bukłak wypełniony mlekiem które przechodzi proces do zostania" -" toporną formą sera, przez dodanie octu lub podpuszczki." - -#: lang/json/TOOL_from_json.py -msgid "heavy snare kit" -msgid_plural "heavy snare kits" -msgstr[0] "ciężkie wnyki" -msgstr[1] "ciężkie wnyki" -msgstr[2] "ciężkie wnyki" -msgstr[3] "ciężkie wnyki" - -#. ~ Use action done_message for heavy snare kit. -#. ~ Use action done_message for light snare kit. -#: lang/json/TOOL_from_json.py -msgid "You set the snare trap." -msgstr "Zastawiasz wnyki." - -#. ~ Description for heavy snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a rope noose and a snare " -"trigger. It requires a tree nearby. It is effective at trapping monsters." -msgstr "" -"To zestaw wnyków składający się z liny z pętlą i wyzwalacza pułapki. Wymaga " -"drzewa w pobliżu. Efektywna w chwytaniu potworów." - -#: lang/json/TOOL_from_json.py -msgid "light snare kit" -msgid_plural "light snare kits" -msgstr[0] "lekkie wnyki" -msgstr[1] "lekkie wnyki" -msgstr[2] "lekkie wnyki" -msgstr[3] "lekkie wnyki" - -#. ~ Description for light snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a string noose and a snare " -"trigger. It requires a young tree nearby. It is effective at trapping and " -"killing some small animals." -msgstr "" -"To zestaw wnyków składający się z nici z pętlą i wyzwalacza pułapki. Wymaga " -"drzewa w pobliżu. Efektywna w chwytaniu i zabijaniu małych zwierząt." - -#: lang/json/TOOL_from_json.py -msgid "snare trigger" -msgid_plural "snare triggers" -msgstr[0] "wyzwalacz do wnyków" -msgstr[1] "wyzwalacz do wnyków" -msgstr[2] "wyzwalacz do wnyków" -msgstr[3] "wyzwalacz do wnyków" - -#. ~ Description for snare trigger -#: lang/json/TOOL_from_json.py -msgid "" -"This is a stick that has been cut into a trigger mechanism for a snare trap." -msgstr "To patyk, który wycięto by służył jako mechanizm zwalniający wnyki." - -#. ~ Description for Laevateinn -#: lang/json/TOOL_from_json.py -msgid "" -"A replica of Laevateinn, the sword of Freyr. It is rumored to be able to " -"fight by itself. It is decorated with gold and silver ornaments." -msgstr "" -"Replika Laevateinn, miecza Freyra. Legenda głosi że potrafi walczyć sam. " -"Ozdabiają go złote i srebrne ornamenty." - -#: lang/json/TOOL_from_json.py -msgid "inactive craftbuddy" -msgid_plural "inactive craftbuddies" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'inactive craftbuddy', 'str_pl': 'inactive -#. craftbuddies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A robot crafting assistant. Useable in its current state as a portable " -"workbench, or deployable as a traveling companion." -msgstr "" -"Robotyczny pomocnik rzemieślnika. Użyteczny w tej formie jako mobilny stół " -"roboczy, i można go rozstawić jako towarzysza podróży." - -#. ~ Description for light auto armor -#. ~ Description for basic auto armor -#. ~ Description for heavy auto armor -#: lang/json/TOOL_from_json.py -msgid "" -"A set of light power armor fitted with an AI core for automated use. " -"Activate it to deploy the robot or disassemble it to use as armor." -msgstr "" -"Zestaw pancerza wspomaganego wyposażonego w rdzeń sztucznej inteligencji do " -"autonomicznego działania. Aktywuj by uruchomić robota lub rozłóż by użyć " -"jako pancerza." - -#: lang/json/TOOL_from_json.py -msgid "basic auto armor" -msgid_plural "basic auto armors" -msgstr[0] "podstawowy autonomiczny pancerz wspomagany" -msgstr[1] "podstawowy autonomiczny pancerz wspomagany" -msgstr[2] "podstawowy autonomiczny pancerz wspomagany" -msgstr[3] "podstawowy autonomiczny pancerz wspomagany" - -#: lang/json/TOOL_from_json.py -msgid "inactive hack" -msgid_plural "inactive hacks" -msgstr[0] "nieaktywny młynek" -msgstr[1] "nieaktywny młynek" -msgstr[2] "nieaktywny młynek" -msgstr[3] "nieaktywny młynek" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating lantern" -msgid_plural "inactive floating lanterns" -msgstr[0] "nieaktywna dryfująca latarnia" -msgstr[1] "nieaktywna dryfująca latarnia" -msgstr[2] "nieaktywna dryfująca latarnia" -msgstr[3] "nieaktywna dryfująca latarnia" - -#. ~ Use action friendly_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "Dryfująca latarnia wylatuje ci z ręki i oświetla otoczenie!" - -#. ~ Use action hostile_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the lantern." -msgstr "Błędnie programujesz latarnię." - -#. ~ Description for inactive floating lantern -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive floating lantern, a fist-sized robots that flies through the air" -" and illuminates its surroundings with bright LEDs. The lantern is non " -"aggressive and has no means of attack. Activate this item to deploy the " -"salvaged robot." -msgstr "" -"Nieaktywna dryfująca latarnia, robot rozmiaru pięści latający w powietrzu i " -"rozświetlający otoczenie jasnymi lampami LED. Latarnia nie jest agresywna i " -"nie ma środków by atakować. Aktywuj ten przedmiot by wypuścić robota z " -"odzysku." - -#: lang/json/TOOL_from_json.py -msgid "inactive distract-o-hack" -msgid_plural "inactive distract-o-hacks" -msgstr[0] "nieaktywny młynek-wabik" -msgstr[1] "nieaktywny młynek-wabik" -msgstr[2] "nieaktywny młynek-wabik" -msgstr[3] "nieaktywny młynek-wabik" - -#. ~ Use action friendly_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "Młynek wabik wylatuje ci z ręki i zaczyna iskrzyć!" - -#. ~ Use action hostile_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the distract-o-hack!" -msgstr "Błędnie programujesz młynek-wabik!" - -#. ~ Description for inactive distract-o-hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive distract-o-hack, a fist-sized robot that flies through the air " -"emitting noise, smoke, and sparks. The salvaged robot has no weapons, but " -"will harass hostile targets to draw their attention. Activate this item to " -"deploy the robot. It cannot be recovered once activated." -msgstr "" -"Niekatywny młynek-wabik, robot rozmiaru pięści latający w powietrzu, " -"wydający dźwięki, dymiący i iskrzący. Robot z odzysku nie posiada broni, ale" -" będzie nękał wrogów, by skupić na sobie ich uwagę. Aktywuj ten przedmiot by" -" wypuścić robota z odzysku. Nie może być odzyskany po aktywacji." - -#: lang/json/TOOL_from_json.py -msgid "inactive arson hack" -msgid_plural "inactive arson hacks" -msgstr[0] "nieaktywny młynek podpalacz" -msgstr[1] "nieaktywny młynek podpalacz" -msgstr[2] "nieaktywny młynek podpalacz" -msgstr[3] "nieaktywny młynek podpalacz" - -#. ~ Use action friendly_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "The arson hack flies from your hand! Get clear!" -msgstr "Młynek podpalacz wylatuje ci z ręki! Z drogi!" - -#. ~ Use action hostile_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the arson hack! Run!" -msgstr "" - -#. ~ Description for inactive arson hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive arson hack, a fist-sized robot that flies through the air " -"chaotically spreading deadly fires. The salvaged robot has no weapons, but " -"will emit intermittent bursts of flame as it moves toward hostile targets. " -"Activate this item to deploy the robot. It cannot be recovered once " -"activated." -msgstr "" -"Niekatywny młynek-podpalacz, robot rozmiaru pięści latający w powietrzu, " -"chaotycznie rozpraszający ogień. Robot z odzysku nie posiada broni, ale " -"będzie rozprzestrzeniał ogień lecąc w kierunku wrogów. Aktywuj ten przedmiot" -" by wypuścić robota z odzysku. Nie może być odzyskany po aktywacji." - -#: lang/json/TOOL_from_json.py -msgid "inactive spore hack" -msgid_plural "inactive spore hacks" -msgstr[0] "nieaktywny młynek zapylacz" -msgstr[1] "nieaktywny młynek zapylacz" -msgstr[2] "nieaktywny młynek zapylacz" -msgstr[3] "nieaktywny młynek zapylacz" - -#. ~ Use action friendly_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "The spore hack flies from your hand!" -msgstr "Młynek zapylacz wylatuje ci z ręki!" - -#. ~ Use action hostile_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the spore hack!" -msgstr "Błędnie programujesz młynek-zapylacz!" - -#. ~ Description for inactive spore hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive spore hack, a fist-sized robot that flies through the air " -"spreading alien contaminants. The robot will dust hostile targets, and " -"intermittently cover the terrain with puffs of fungal spores. Activate this" -" item to deploy the robot." -msgstr "" -"Nieaktywny młynek-zapylacz, robot rozmiaru pięści latający w powietrzu, " -"rozpraszając obce skażenie. Robot będzie zapylał wrogie cele i sporadycznie " -"pokrywał teren chmurami grzybiczych zarodników. Aktywuj ten przedmiot by " -"wypuścić robota z odzysku. Nie może być odzyskany po aktywacji." - -#: lang/json/TOOL_from_json.py -msgid "inactive water turret" -msgid_plural "inactive water turrets" -msgstr[0] "nieaktywna wieżyczka wodna" -msgstr[1] "nieaktywna wieżyczka wodna" -msgstr[2] "nieaktywna wieżyczka wodna" -msgstr[3] "nieaktywna wieżyczka wodna" - -#. ~ Description for inactive water turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive watercannon defense turret. Up to 1000 units of water will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. There is no safety manual." -msgstr "" -"Nieaktywna wodna wieżyczka obronna. Maksymalnie 1000 jednostek wody zostanie" -" automatycznie załadowane z twego ekwipunku do wieżyczki w czasie aktywacji." -" Umieść wieżyczkę a zidentyfikuje cię jako przyjaciela swoim zaawansowanym " -"oprogramowaniem IFF. Instrukcji bezpieczeństwa brak." - -#: lang/json/TOOL_from_json.py -msgid "inactive floating heater" -msgid_plural "inactive floating heaters" -msgstr[0] "nieaktywny dryfujący grzejnik" -msgstr[1] "nieaktywny dryfujący grzejnik" -msgstr[2] "nieaktywny dryfujący grzejnik" -msgstr[3] "nieaktywny dryfujący grzejnik" - -#. ~ Description for inactive floating heater -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space. It is non-aggressive " -"and has no weapons systems. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating furnace" -msgid_plural "inactive floating furnaces" -msgstr[0] "nieaktywny dryfujący piec" -msgstr[1] "nieaktywny dryfujący piec" -msgstr[2] "nieaktywny dryfujący piec" -msgstr[3] "nieaktywny dryfujący piec" - -#. ~ Description for inactive floating furnace -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. It is non-" -"aggressive and has no weapons systems. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive burning eye" -msgid_plural "inactive burning eyes" -msgstr[0] "nieaktywne palące oko" -msgstr[1] "nieaktywne palące oko" -msgstr[2] "nieaktywne palące oko" -msgstr[3] "nieaktywne palące oko" - -#. ~ Description for inactive burning eye -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon which it will use on hostile " -"targets. Activate this item to deploy the robot." -msgstr "" -"Odzyskany ze złomu okobot wyposażony w laser, którym razi wrogów. Aktywuj by" -" uruchomić." - -#: lang/json/TOOL_from_json.py -msgid "inactive utilibot" -msgid_plural "inactive utilibots" -msgstr[0] "nieaktywny robot użytkowy" -msgstr[1] "nieaktywny robot użytkowy" -msgstr[2] "nieaktywny robot użytkowy" -msgstr[3] "nieaktywny robot użytkowy" - -#: lang/json/TOOL_from_json.py -msgid "inactive blob breeder" -msgid_plural "inactive blob breeders" -msgstr[0] "nieaktywny hodowca glutów" -msgstr[1] "nieaktywny hodowca glutów" -msgstr[2] "nieaktywny hodowca glutów" -msgstr[3] "nieaktywny hodowca glutów" - -#. ~ Description for inactive blob breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It is non aggressive and has no weapon systems. You can activate " -"this item to deploy the robot and begin the incubation process, but you " -"probably shouldn't." -msgstr "" -"Robot użytkowy z odzysku zmieniony w mobilny inkubator obcych glutów. Nie " -"jest agresywny i jest nieuzbrojony. Aktywuj by uruchomić i rozpocząć " -"inkubację, choć może nie powinieneś." - -#: lang/json/TOOL_from_json.py -msgid "inactive slime breeder" -msgid_plural "inactive slime breeders" -msgstr[0] "nieaktywny hodowca śluzów" -msgstr[1] "nieaktywny hodowca śluzów" -msgstr[2] "nieaktywny hodowca śluzów" -msgstr[3] "nieaktywny hodowca śluzów" - -#. ~ Description for inactive slime breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob, and upgraded to only produce friendly slimes. It is non aggressive " -"and has no weapon systems. You can activate this item to deploy the robot " -"and begin the incubation process." -msgstr "" -"Robot użytkowy z odzysku zmieniony w mobilny inkubator obcych glutów, i " -"ulepszony by produkować tylko przyjazne gluty. Nie jest agresywny i jest " -"nieuzbrojony. Aktywuj by uruchomić i rozpocząć inkubację." - -#: lang/json/TOOL_from_json.py -msgid "inactive digestron" -msgid_plural "inactive digestrons" -msgstr[0] "nieaktywny przeżuwacz" -msgstr[1] "nieaktywny przeżuwacz" -msgstr[2] "nieaktywny przeżuwacz" -msgstr[3] "nieaktywny przeżuwacz" - -#. ~ Description for inactive digestron -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. It is non aggressive and has no weapon systems. Activate " -"this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive bee-bot" -msgid_plural "inactive bee-bots" -msgstr[0] "nieaktywny bot-pszczelarz" -msgstr[1] "nieaktywny bot-pszczelarz" -msgstr[2] "nieaktywny bot-pszczelarz" -msgstr[3] "nieaktywny bot-pszczelarz" - -#. ~ Description for inactive bee-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers segments of fresh honey comb. It protects" -" the insect colony with a mechanical crossbow mounted to its chassis. " -"Activate this item, with wooden bolts in your inventory, to load and deploy " -"the robot." -msgstr "" -"Robot użytkowy z odzysku przerobiony na wędrowny ul pszczeli, który okresowo" -" przetwarza i dostarcza plastry miodu. Chroni swoją kolonię insektów kuszą " -"mechaniczną zamontowaną w korpusie. Aktywuj mając bełty w ekwipunku, by " -"załadować i uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive medibot" -msgid_plural "inactive medibots" -msgstr[0] "nieaktywny robot medyczny" -msgstr[1] "nieaktywny robot medyczny" -msgstr[2] "nieaktywny robot medyczny" -msgstr[3] "nieaktywny robot medyczny" - -#: lang/json/TOOL_from_json.py -msgid "inactive assassin robot" -msgid_plural "inactive assassin robots" -msgstr[0] "nieaktywny robot zabójca" -msgstr[1] "nieaktywny robot zabójca" -msgstr[2] "nieaktywny robot zabójca" -msgstr[3] "nieaktywny robot zabójca" - -#. ~ Description for inactive assassin robot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. It will attack " -"hostile targets with a set of blades and a toxic needle. Activate this item" -" to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive elixirator" -msgid_plural "inactive elixirators" -msgstr[0] "nieaktywny eliksirator" -msgstr[1] "nieaktywny eliksirator" -msgstr[2] "nieaktywny eliksirator" -msgstr[3] "nieaktywny eliksirator" - -#. ~ Description for inactive elixirator -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot with its internal pharma-fabricators repurposed to " -"produce mutagen. Activate this item to deploy the robot." -msgstr "" -"Robot medyczny z odzysku z syntezatorem farmaceutyków przebudowanym do " -"produkcji mutagenów. Aktywuj by uruchomić." - -#: lang/json/TOOL_from_json.py -msgid "inactive party bot" -msgid_plural "inactive party bots" -msgstr[0] "nieaktywny robot imprezowicz" -msgstr[1] "nieaktywny robot imprezowicz" -msgstr[2] "nieaktywny robot imprezowicz" -msgstr[3] "nieaktywny robot imprezowicz" - -#. ~ Description for inactive party bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Activate this item to get the party " -"started." -msgstr "" -"Robot medyczny z odzysku napchany marihuaną, pokryty wielokolorowymi " -"migającymi światełkami i zaprogramowany do tańca. Aktywuj by zacząć imprezę." - -#: lang/json/TOOL_from_json.py -msgid "inactive rat snatcher" -msgid_plural "inactive rat snatchers" -msgstr[0] "nieaktywny szczurołap" -msgstr[1] "nieaktywny szczurołap" -msgstr[2] "nieaktywny szczurołap" -msgstr[3] "nieaktywny szczurołap" - -#. ~ Description for inactive rat snatcher -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It attacks targets" -" with pincers and an integrated tazer. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive grab-bot" -msgid_plural "inactive grab-bots" -msgstr[0] "nieaktywny robot chwytacz" -msgstr[1] "nieaktywny robot chwytacz" -msgstr[2] "nieaktywny robot chwytacz" -msgstr[3] "nieaktywny robot chwytacz" - -#. ~ Description for inactive grab-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. " -"Activate this item to deploy the robot." -msgstr "" -"Bot smyrgacz z odzysku przerobiony do chwytania i unieruchamiania wrogów. " -"Aktywuj by uruchomić." - -#: lang/json/TOOL_from_json.py -msgid "inactive pest hunter" -msgid_plural "inactive pest hunters" -msgstr[0] "nieaktywny łowca szkodników" -msgstr[1] "nieaktywny łowca szkodników" -msgstr[2] "nieaktywny łowca szkodników" -msgstr[3] "nieaktywny łowca szkodników" - -#. ~ Description for inactive pest hunter -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " -"this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Bot smyrgacz z odzysku wyposażony w zintegrowaną broń kalibru 8 mm. Aktywuj " -"mając amunicję w ekwipunku by przeładować i uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive cyborg" -msgid_plural "inactive cyborgs" -msgstr[0] "nieaktywny cyborg" -msgstr[1] "nieaktywny cyborg" -msgstr[2] "nieaktywny cyborg" -msgstr[3] "nieaktywny cyborg" - -#: lang/json/TOOL_from_json.py -msgid "inactive necrotic cyborg" -msgid_plural "inactive necrotic cyborgs" -msgstr[0] "nieaktywny nekrotyczny cyborg" -msgstr[1] "nieaktywny nekrotyczny cyborg" -msgstr[2] "nieaktywny nekrotyczny cyborg" -msgstr[3] "nieaktywny nekrotyczny cyborg" - -#. ~ Description for inactive necrotic cyborg -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Activate this " -"item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive defense robot" -msgid_plural "inactive defense robots" -msgstr[0] "nieaktywny robot obronny" -msgstr[1] "nieaktywny robot obronny" -msgstr[2] "nieaktywny robot obronny" -msgstr[3] "nieaktywny robot obronny" - -#: lang/json/TOOL_from_json.py -msgid "inactive junkyard cowboy" -msgid_plural "inactive junkyard cowboys" -msgstr[0] "nieaktywny kowboj ze złomowiska" -msgstr[1] "nieaktywny kowboj ze złomowiska" -msgstr[2] "nieaktywny kowboj ze złomowiska" -msgstr[3] "nieaktywny kowboj ze złomowiska" - -#. ~ Description for inactive junkyard cowboy -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Robot obronny z odzysku wyposażony w strzelbę i dwie piły tarczowe. Aktywuj " -"mając amunicję w ekwipunku by przeładować i uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive shortcircuit samurai" -msgid_plural "inactive shortcircuit samurais" -msgstr[0] "nieaktywny samuraj krótkie spięcie" -msgstr[1] "nieaktywny samuraj krótkie spięcie" -msgstr[2] "nieaktywny samuraj krótkie spięcie" -msgstr[3] "nieaktywny samuraj krótkie spięcie" - -#. ~ Description for inactive shortcircuit samurai -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with an integrated tazer and two " -"electrified blades. Activate this item to deploy the robot." -msgstr "" -"Robot obronny z odzysku wyposażony w Zintegrowany taser i dwa " -"zelektryfikowane ostrza. Aktywuj by uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive slapdash paladin" -msgid_plural "inactive slapdash paladins" -msgstr[0] "nieaktywny niedbały paladyn" -msgstr[1] "nieaktywny niedbały paladyn" -msgstr[2] "nieaktywny niedbały paladyn" -msgstr[3] "nieaktywny niedbały paladyn" - -#. ~ Description for inactive slapdash paladin -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. Activate this item, with gasoline in your inventory, to" -" load and deploy the robot… preferably far from anything flammable" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military robot" -msgid_plural "inactive military robots" -msgstr[0] "nieaktywny robot wojskowy" -msgstr[1] "nieaktywny robot wojskowy" -msgstr[2] "nieaktywny robot wojskowy" -msgstr[3] "nieaktywny robot wojskowy" - -#. ~ Description for inactive military robot -#: lang/json/TOOL_from_json.py -msgid "" -"An unpowered military robot fitted with an integrated 7.62 firearm and " -"electric prod. Activate this item, with ammo in your inventory, to load and" -" deploy the robot." -msgstr "" -"Robot wojskowy z odzysku wyposażony w zintegrowany karabin kalibru 7,62 mm i" -" zelektryfikowaną pałkę. Aktywuj mając amunicję w ekwipunku by przeładować i" -" uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-guardian" -msgid_plural "inactive robo-guardians" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for inactive robo-guardian -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Robot wojskowy z odzysku wyposażony w zestaw zintegrowanych broni kalibru 9 " -"mm. Aktywuj mając amunicję w ekwipunku by przeładować i uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive robote deluxe" -msgid_plural "inactive robote deluxes" -msgstr[0] "nieaktywny robot deluxe" -msgstr[1] "nieaktywny robot deluxe" -msgstr[2] "nieaktywny robot deluxe" -msgstr[3] "nieaktywny robot deluxe" - -#. ~ Description for inactive robote deluxe -#: lang/json/TOOL_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style. Activate this item, with ammo in your inventory, to " -"load and deploy the robot." -msgstr "" -"Nabity diamentami i kryty złotem robot uzbrojony w parę broni kalibru 9 mm. " -"Wystawny luksusowy robot dla tych, którzy życzą sobie przeżyć apokalipsę w " -"wysokim stylu. Aktywuj mając amunicję w ekwipunku by przeładować i uruchomić" -" robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-protector" -msgid_plural "inactive robo-protectors" -msgstr[0] "nieaktywny robo-ochroniarz" -msgstr[1] "nieaktywny robo-ochroniarz" -msgstr[2] "nieaktywny robo-ochroniarz" -msgstr[3] "nieaktywny robo-ochroniarz" - -#. ~ Description for inactive robo-protector -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Robot wojskowy z odzysku wyposażony w zintegrowany karabin kalibru 5,56 mm. " -"Zmodyfikowana broń jest zdolna do strzelania seriami po trzy pociski, ale ma" -" przyzwoity zasięg i celność. Nadaj się na solidnego sojusznika w walce." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-defender" -msgid_plural "inactive robo-defenders" -msgstr[0] "nieaktywny robo-obrońca" -msgstr[1] "nieaktywny robo-obrońca" -msgstr[2] "nieaktywny robo-obrońca" -msgstr[3] "nieaktywny robo-obrońca" - -#. ~ Description for inactive robo-defender -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Activate" -" this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Robot wojskowy z odzysku wyposażony w zintegrowany karabin kalibru 50. " -"Aktywuj mając amunicję w ekwipunku by przeładować i uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced robot" -msgid_plural "inactive advanced robots" -msgstr[0] "nieaktywny zaawansowany robot" -msgstr[1] "nieaktywny zaawansowany robot" -msgstr[2] "nieaktywny zaawansowany robot" -msgstr[3] "nieaktywny zaawansowany robot" - -#: lang/json/TOOL_from_json.py -msgid "inactive glittering lady" -msgid_plural "inactive glittering ladies" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'inactive glittering lady', 'str_pl': 'inactive -#. glittering ladies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It attacks hostile targets with its two integral lasers and blinding " -"flashes. Activate this item to deploy the robot." -msgstr "" -"Zaawansowany robot z odzysku zmieniony w błyskającą latarnię destrukcji. " -"Atakuje cele dwoma zintegrowanymi laserami i oślepiającymi fleszami. Aktywuj" -" by uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive bitter spinster" -msgid_plural "inactive bitter spinsters" -msgstr[0] "nieaktywny kwaśny wirnik" -msgstr[1] "nieaktywny kwaśny wirnik" -msgstr[2] "nieaktywny kwaśny wirnik" -msgstr[3] "nieaktywny kwaśny wirnik" - -#. ~ Description for inactive bitter spinster -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " -"to deploy the robot." -msgstr "" -"Robot wojskowy z odzysku przerobiony na kaustycznego potwora. Wewnętrzna " -"kadź fermentacyjna kwasu zasila miotacz globul i sprej. Aktywuj by uruchomić" -" robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive chickenwalker" -msgid_plural "inactive chickenwalkers" -msgstr[0] "nieaktywny kurzy kroczarz" -msgstr[1] "nieaktywny kurzy kroczarz" -msgstr[2] "nieaktywny kurzy kroczarz" -msgstr[3] "nieaktywny kurzy kroczarz" - -#: lang/json/TOOL_from_json.py -msgid "inactive chainsaw horror" -msgid_plural "inactive chainsaw horrors" -msgstr[0] "nieaktywny pilarz z horroru" -msgstr[1] "nieaktywny pilarz z horroru" -msgstr[2] "nieaktywny pilarz z horroru" -msgstr[3] "nieaktywny pilarz z horroru" - -#. ~ Description for inactive chainsaw horror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of whirring " -"chainsaws and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Kurzy kroczarz z odzysku przerobiony w straszliwego potwora odzianego w " -"czaszki i kolce. Atakuje wrogów zestawem warczących pił mechanicznych i " -"ogłuszającą muzyką. Aktywuj by uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive screeching terror" -msgid_plural "inactive screeching terrors" -msgstr[0] "nieaktywny piszczący terror" -msgstr[1] "nieaktywny piszczący terror" -msgstr[2] "nieaktywny piszczący terror" -msgstr[3] "nieaktywny piszczący terror" - -#. ~ Description for inactive screeching terror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of piston-driven " -"lances and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Kurzy kroczarz z odzysku przerobiony w straszliwego potwora odzianego w " -"czaszki i kolce. Atakuje wrogów parą lanc poruszanych tłokami i ogłuszającą " -"muzyką. Aktywuj by uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive hooked nightmare" -msgid_plural "inactive hooked nightmares" -msgstr[0] "nieaktywny hakowaty koszmar" -msgstr[1] "nieaktywny hakowaty koszmar" -msgstr[2] "nieaktywny hakowaty koszmar" -msgstr[3] "nieaktywny hakowaty koszmar" - -#. ~ Description for inactive hooked nightmare -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of spinning hooks" -" on chains and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Kurzy kroczarz z odzysku przerobiony w straszliwego potwora odzianego w " -"czaszki i kolce. Atakuje wrogów zestawem haków na wirujących łańcuchach i " -"ogłuszającą muzyką. Aktywuj by uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive tankbot" -msgid_plural "inactive tankbots" -msgstr[0] "nieaktywny dron czołgowy" -msgstr[1] "nieaktywny dron czołgowy" -msgstr[2] "nieaktywny dron czołgowy" -msgstr[3] "nieaktywny dron czołgowy" - -#: lang/json/TOOL_from_json.py -msgid "inactive fist king" -msgid_plural "inactive fist kings" -msgstr[0] "nieaktywny król pięści" -msgstr[1] "nieaktywny król pięści" -msgstr[2] "nieaktywny król pięści" -msgstr[3] "nieaktywny król pięści" - -#. ~ Description for inactive fist king -#. ~ Description for inactive atomic sultan -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Activate this " -"item to deploy the robot." -msgstr "" -"Dron czołgowy z odzysku wyposażony w parę potężnych pneumatycznych młotów, " -"których używa do miażdżenia wszystkiego na swojej drodze, w tym budynków. " -"Aktywuj ten przedmiot by uruchomić robota." - -#: lang/json/TOOL_from_json.py -msgid "inactive atomic sultan" -msgid_plural "inactive atomic sultans" -msgstr[0] "nieaktywny atomowy sułtan" -msgstr[1] "nieaktywny atomowy sułtan" -msgstr[2] "nieaktywny atomowy sułtan" -msgstr[3] "nieaktywny atomowy sułtan" - -#: lang/json/TOOL_from_json.py -msgid "active glowball" -msgid_plural "active glowballs" -msgstr[0] "aktywna świecikula" -msgstr[1] "aktywne świecikule" -msgstr[2] "aktywne świecikule" -msgstr[3] "aktywne świecikule" - -#. ~ Use action msg for active glowball. -#: lang/json/TOOL_from_json.py -msgid "The glowball goes dim." -msgstr "Świecikula gaśnie." - -#. ~ Description for active glowball -#: lang/json/TOOL_from_json.py -msgid "A small plastic ball filled with glowing chemicals." -msgstr "Mała plastikowa kula wypełniona świecącymi chemikaliami." - #: lang/json/TOOL_from_json.py msgid "TEST rag" msgid_plural "TEST rags" @@ -113129,565 +109910,30 @@ msgstr[2] "" msgstr[3] "" #: lang/json/TOOL_from_json.py -msgid "growing blob frame" -msgid_plural "growing blob frames" -msgstr[0] "rosnąca rama z gluta" -msgstr[1] "rosnąca rama z gluta" -msgstr[2] "rosnąca rama z gluta" -msgstr[3] "rosnąca rama z gluta" - -#. ~ Use action msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "" -"You test the frame; It wiggles, and then collapses into an lump of goo." -msgstr "Testujesz ramę. Podryguje, i zapada się w kupę śluzu." - -#. ~ Use action not_ready_msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "" -"Testujesz ramę. Poddaje się łatwo; nie jest jeszcze wystarczająco " -"wytrzymała." - -#. ~ Description for {'str': 'growing blob frame'} -#: lang/json/TOOL_from_json.py -msgid "" -"A growing vehicle frame made of bone. It's coated in a thick layer of ooze," -" though there's greater amounts on the bindings. It's not quite tough " -"enough to use." -msgstr "" -"Rosnąca rama pojazdu zrobiona z kości. Jest pokryta gęstą warstwą śluzu, " -"którego jest więcej na łączeniach. Nie jest jeszcze wystarczająco wytrzymała" -" by jej użyć." - -#: lang/json/TOOL_from_json.py -msgid "growing keratinous mass" -msgid_plural "growing keratinous mass" -msgstr[0] "rosnąca masa keratynowa" -msgstr[1] "rosnąca masa keratynowa" -msgstr[2] "rosnąca masa keratynowa" -msgstr[3] "rosnąca masa keratynowa" - -#. ~ Use action msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action msg for {'str_sp': 'growing ooze'}. -#. ~ Use action msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "The blob balloons to full size." -msgstr "Glut wydyma się do pełnego rozmiaru." - -#. ~ Use action not_ready_msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing ooze'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "Whatever it's doing, it's not done yet." -msgstr "Cokolwiek robi, jeszcze nie skończył." - -#. ~ Description for {'str_sp': 'growing keratinous mass'} -#. ~ Description for {'str_sp': 'growing beaded mass'} -#. ~ Description for {'str_sp': 'growing icy mass'} -#. ~ Description for {'str_sp': 'growing cold mass'} -#. ~ Description for {'str_sp': 'growing hairy mass'} -#. ~ Description for {'str_sp': 'growing gelatinous mass'} -#. ~ Description for {'str_sp': 'growing glowing mass'} -#. ~ Description for {'str_sp': 'growing gray mass'} -#. ~ Description for {'str_sp': 'growing spike-studded mass'} -#. ~ Description for {'str_sp': 'growing gasoline-laced mass'} -#. ~ Description for {'str_sp': 'growing acidic mass'} -#. ~ Description for {'str_sp': 'growing ooze'} -#. ~ Description for {'str_sp': 'growing mass of tendrils'} -#. ~ Description for {'str_sp': 'growing spiked mass'} -#. ~ Description for {'str_sp': 'growing spiny mass'} -#. ~ Description for {'str_sp': 'growing spiky mass'} -#. ~ Description for {'str_sp': 'growing bright mass'} -#. ~ Description for {'str_sp': 'growing viscous mass'} -#. ~ Description for {'str_sp': 'growing warm mass'} -#. ~ Description for {'str_sp': 'growing electrified mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Not quite fully grown, this blob requires nourishment to fully develop." -msgstr "" -"Jeszcze nie dość wyrośnięty; ten glut potrzebuje pożywienia by się w pełni " -"rozwinąć." - -#: lang/json/TOOL_from_json.py -msgid "growing beaded mass" -msgid_plural "growing beaded mass" -msgstr[0] "rosnąca masa paciorkowa" -msgstr[1] "rosnąca masa paciorkowa" -msgstr[2] "rosnąca masa paciorkowa" -msgstr[3] "rosnąca masa paciorkowa" - -#: lang/json/TOOL_from_json.py -msgid "growing icy mass" -msgid_plural "growing icy mass" -msgstr[0] "rosnąca masa lodowa" -msgstr[1] "rosnąca masa lodowa" -msgstr[2] "rosnąca masa lodowa" -msgstr[3] "rosnąca masa lodowa" - -#: lang/json/TOOL_from_json.py -msgid "gelacier" -msgid_plural "gelaciers" -msgstr[0] "żelacier" -msgstr[1] "żelaciery" -msgstr[2] "żelacierów" -msgstr[3] "żelaciera" - -#. ~ Description for {'str': 'gelacier'} -#: lang/json/TOOL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "growing cold mass" -msgid_plural "growing cold mass" -msgstr[0] "rosnąca zimna masa " -msgstr[1] "rosnąca zimna masa " -msgstr[2] "rosnąca zimna masa " -msgstr[3] "rosnąca zimna masa " - -#: lang/json/TOOL_from_json.py -msgid "growing hairy mass" -msgid_plural "growing hairy mass" -msgstr[0] "rosnąca włochata masa" -msgstr[1] "rosnąca włochata masa" -msgstr[2] "rosnąca włochata masa" -msgstr[3] "rosnąca włochata masa" - -#. ~ Use action msg for {'str_sp': 'gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'gray mass'}. -#. ~ Use action msg for {'str_sp': 'oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "You fumble as the blob starts to multiply rapidly!" -msgstr "Szarpiesz się gdy glut zaczyna gwałtownie się dzielić!" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An experiment gone horribly right. While the original intent was to combine" -" the structure of a bone frame with the impact absorption of the blob; the " -"blob seems to have completely consumed the bone. Instead, what remains is " -"an amorphous mass of goo with what seems to be numerous thin filaments " -"floating within. With a bit of effort, you can grasp the fibers and stretch" -" the mass into a multitude of shapes. The mass is able to retain the new " -"shape even under force, though the mass yields at your touch. With enough " -"strength, you think you can pull it apart." -msgstr "" -"Eksperyment, który poszedł okropnie dobrze. Oryginalną intencją było " -"połączenie struktury kostnej ramy z odpornością na uderzenia gluta, ale glut" -" całkowicie skonsumował kość. W to miejsce pozostała amorficzna masa śluzu z" -" czymś co wygląda na liczne cienkie włókna unoszące się w jego wnętrzu. Z " -"odrobiną wysiłku, możesz uchwycić włókna i rozciągnąć masę w mnogość " -"kształtów. Masa jest zdolna utrzymać nowy kształt nawet pod wpływem siły, " -"choć ustępuje pod dotykiem twoich dłoni. Sądzisz, że z dostateczną siłą " -"możesz ją rozdzielić." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gelatinous mass" -msgid_plural "multiplying gelatinous mass" -msgstr[0] "dzieląca się żelatynowa masa" -msgstr[1] "dzieląca się żelatynowa masa" -msgstr[2] "dzieląca się żelatynowa masa" -msgstr[3] "dzieląca się żelatynowa masa" - -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying oozing mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "A blob splits and bounces away!" -msgstr "Glut dzieli się i odskakuje!" - -#. ~ Description for {'str_sp': 'multiplying gelatinous mass'} -#. ~ Description for {'str_sp': 'multiplying gray mass'} -#. ~ Description for {'str_sp': 'multiplying oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Having been fed, this blob is now rapidly multiplying into other copies of " -"itself; extremely noisy copies! And even worse, it's stuck to your hands " -"until whatever it's doing is done! Catch those blobs before they bring in " -"every zombie for miles!" -msgstr "" -"Nakarmiony, ten glut dzieli się gwałtownie w kopie samego siebie; bardzo " -"głośne kopie! I co gorsza jest przylepiony do twoich rąk zanim nie skończy " -"robić tego co robi! Złap te gluty zanim ściągną tu każdego zombiaka w " -"okolicy." - -#: lang/json/TOOL_from_json.py -msgid "growing gelatinous mass" -msgid_plural "growing gelatinous mass" -msgstr[0] "rosnąca żelatynowa masa" -msgstr[1] "rosnąca żelatynowa masa" -msgstr[2] "rosnąca żelatynowa masa" -msgstr[3] "rosnąca żelatynowa masa" - -#: lang/json/TOOL_from_json.py -msgid "growing glowing mass" -msgid_plural "growing glowing mass" -msgstr[0] "rosnąca świecąca masa" -msgstr[1] "rosnąca świecąca masa" -msgstr[2] "rosnąca świecąca masa" -msgstr[3] "rosnąca świecąca masa" - -#. ~ Description for {'str_sp': 'gray mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"This internal structures of this creature have developed significantly. " -"While retaining the resilience and malleability of its once simpler form, it" -" has gained the considerable abilities of perception and stimulus response." -" When directly threatened, it is able to shift and alter its microfibers, " -"hardening its membrane to an almost steel-hard shell. You can still pull it" -" apart with enough force. It's also really gray." -msgstr "" -"Wewnętrzne struktury tego stworzenia rozwinęły się znacznie. Zachowując " -"odporność i kowalność swojej prostszej formy, zyskało znaczne zdolności " -"postrzegania i reakcji na bodźce. Gdy bezpośrednio zagrożone, potrafi " -"przesunąć i zmienić swoje mikrowłókna, utwardzając swoją membranę w niemal " -"stalowej wytrzymałości skorupę. Nadal możesz je rozdzielić gdy użyjesz siły." -" Ponadto jest naprawdę szara." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gray mass" -msgid_plural "multiplying gray mass" -msgstr[0] "dzieląca się szara masa" -msgstr[1] "dzieląca się szara masa" -msgstr[2] "dzieląca się szara masa" -msgstr[3] "dzieląca się szara masa" - -#: lang/json/TOOL_from_json.py -msgid "growing gray mass" -msgid_plural "growing gray mass" -msgstr[0] "rosnąca szara masa" -msgstr[1] "rosnąca szara masa" -msgstr[2] "rosnąca szara masa" -msgstr[3] "rosnąca szara masa" - -#: lang/json/TOOL_from_json.py -msgid "growing spike-studded mass" -msgid_plural "growing spike-studded mass" -msgstr[0] "rosnąca kolczasta masa" -msgstr[1] "rosnąca kolczasta masa" -msgstr[2] "rosnąca kolczasta masa" -msgstr[3] "rosnąca kolczasta masa" - -#: lang/json/TOOL_from_json.py -msgid "growing gasoline-laced mass" -msgid_plural "growing gasoline-laced mass" -msgstr[0] "rosnąca wzmocniona benzyną masa" -msgstr[1] "rosnąca wzmocniona benzyną masa" -msgstr[2] "rosnąca wzmocniona benzyną masa" -msgstr[3] "rosnąca wzmocniona benzyną masa" - -#: lang/json/TOOL_from_json.py -msgid "growing acidic mass" -msgid_plural "growing acidic mass" -msgstr[0] "rosnąca kwasowa masa" -msgstr[1] "rosnąca kwasowa masa" -msgstr[2] "rosnąca kwasowa masa" -msgstr[3] "rosnąca kwasowa masa" - -#: lang/json/TOOL_from_json.py -msgid "oozing mass" -msgid_plural "oozing mass" -msgstr[0] "cieknąca masa" -msgstr[1] "cieknąca masa" -msgstr[2] "cieknąca masa" -msgstr[3] "cieknąca masa" - -#. ~ Description for {'str_sp': 'oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An amorphous mass that has undergone a significant growth. In addition to " -"the increased amount of goo and sinuous filaments, it seems to have started " -"developing other internal structures. Like its smaller counterpart, it can " -"be shaped into various structures; albeit with significantly greater tensile" -" strength due to the increased number of supporting filaments. You believe " -"you can split it apart with enough force." -msgstr "" -"Amorficzna masa, która przeszła znaczy wzrost. W dodatku do zwiększonej " -"ilości śluzu i włóknistych ścięgien, rozpoczęła wzrost wewnętrznych " -"struktur. Jak jej mniejszy odpowiednik może być kształtowana w różne " -"struktury, choć wymaga to znacznie większej siły ciągnienia z uwagi na " -"większą liczbę podtrzymujących włókien. Sądzisz że możesz ją rozerwać " -"stosując odpowiednią siłę." - -#: lang/json/TOOL_from_json.py -msgid "multiplying oozing mass" -msgid_plural "multiplying oozing mass" -msgstr[0] "dzieląca się cieknąca masa" -msgstr[1] "dzieląca się cieknąca masa" -msgstr[2] "dzieląca się cieknąca masa" -msgstr[3] "dzieląca się cieknąca masa" - -#: lang/json/TOOL_from_json.py -msgid "growing ooze" -msgid_plural "growing ooze" -msgstr[0] "rosnący śluz" -msgstr[1] "rosnący śluz" -msgstr[2] "rosnący śluz" -msgstr[3] "rosnący śluz" - -#: lang/json/TOOL_from_json.py -msgid "growing mass of tendrils" -msgid_plural "growing mass of tendrils" -msgstr[0] "rosnąca masa wici" -msgstr[1] "rosnąca masa wici" -msgstr[2] "rosnąca masa wici" -msgstr[3] "rosnąca masa wici" - -#: lang/json/TOOL_from_json.py -msgid "growing spiked mass" -msgid_plural "growing spiked mass" -msgstr[0] "rosnąca kolcowana masa " -msgstr[1] "rosnąca kolcowana masa " -msgstr[2] "rosnąca kolcowana masa " -msgstr[3] "rosnąca kolcowana masa " - -#: lang/json/TOOL_from_json.py -msgid "growing spiny mass" -msgid_plural "growing spiny mass" -msgstr[0] "rosnąca ciernista masa" -msgstr[1] "rosnąca ciernista masa" -msgstr[2] "rosnąca ciernista masa" -msgstr[3] "rosnąca ciernista masa" - -#: lang/json/TOOL_from_json.py -msgid "growing spiky mass" -msgid_plural "growing spiky mass" -msgstr[0] "rosnąca cierniowa masa" -msgstr[1] "rosnąca cierniowa masa" -msgstr[2] "rosnąca cierniowa masa" -msgstr[3] "rosnąca cierniowa masa" - -#: lang/json/TOOL_from_json.py -msgid "growing bright mass" -msgid_plural "growing bright mass" -msgstr[0] "rosnąca jasna masa" -msgstr[1] "rosnąca jasna masa" -msgstr[2] "rosnąca jasna masa" -msgstr[3] "rosnąca jasna masa" - -#: lang/json/TOOL_from_json.py -msgid "growing viscous mass" -msgid_plural "growing viscous mass" -msgstr[0] "rosnąca lepka masa" -msgstr[1] "rosnąca lepka masa" -msgstr[2] "rosnąca lepka masa" -msgstr[3] "rosnąca lepka masa" - -#: lang/json/TOOL_from_json.py -msgid "growing warm mass" -msgid_plural "growing warm mass" -msgstr[0] "rosnąca ciepła masa" -msgstr[1] "rosnąca ciepła masa" -msgstr[2] "rosnąca ciepła masa" -msgstr[3] "rosnąca ciepła masa" - -#: lang/json/TOOL_from_json.py -msgid "growing electrified mass" -msgid_plural "growing electrified mass" -msgstr[0] "rosnąca elektryczna masa" -msgstr[1] "rosnąca elektryczna masa" -msgstr[2] "rosnąca elektryczna masa" -msgstr[3] "rosnąca elektryczna masa" - -#: lang/json/TOOL_from_json.py -msgid "diamond cluster" -msgid_plural "diamond clusters" -msgstr[0] "zbitek diamentów" -msgstr[1] "zbitek diamentów" -msgstr[2] "zbitek diamentów" -msgstr[3] "zbitek diamentów" - -#. ~ Use action msg for {'str': 'diamond cluster'}. -#: lang/json/TOOL_from_json.py -msgid "The cluster comes apart in your hands." -msgstr "Zbitek rozpada się w twoich dłoniach." - -#. ~ Description for {'str': 'diamond cluster'} -#: lang/json/TOOL_from_json.py -msgid "" -"A cluster of artificial crystals that have broken off of a diamond matrix. " -"While the substance usually decays when separated from the catalyst; this " -"cluster seems to be self-sustaining by some unknown mechanism. " -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "diamond matrix" -msgid_plural "diamond matrices" -msgstr[0] "diamentowa matryca" -msgstr[1] "diamentowa matryca" -msgstr[2] "diamentowa matryca" -msgstr[3] "diamentowa matryca" - -#. ~ Use action msg for {'str': 'diamond matrix', 'str_pl': 'diamond -#. matrices'}. -#: lang/json/TOOL_from_json.py -msgid "" -"Your senses dull as you gaze into the depths of this gemstone's center…" -msgstr "" - -#. ~ Description for {'str': 'diamond matrix', 'str_pl': 'diamond matrices'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sparkling diamond with a dazzling spiral pattern. Small pieces of " -"glittering crystal form on the edges as you hold it." -msgstr "" -"Błyszczący diament z oszałamiającym spiralnym wzorem. Małe kawałki " -"błyszczącego kryształu formują się na brzegach gdy go trzymasz." - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex engine" -msgid_plural "vortex engines" -msgstr[0] "silnik wiru" -msgstr[1] "silnik wiru" -msgstr[2] "silnik wiru" -msgstr[3] "silnik wiru" - -#. ~ Description for {'str': 'vortex engine'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allows it to be attached to a vehicle to render " -"it mobile." -msgstr "" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex generator" -msgid_plural "vortex generators" -msgstr[0] "generator wiru" -msgstr[1] "generator wiru" -msgstr[2] "generator wiru" -msgstr[3] "generator wiru" - -#. ~ Description for {'str': 'vortex generator'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allow it to be hooked up to a battery to store " -"the power generated." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "control chip" -msgid_plural "control chips" -msgstr[0] "czip kontrolny" -msgstr[1] "czip kontrolny" -msgstr[2] "czip kontrolny" -msgstr[3] "czip kontrolny" - -#. ~ Description for control chip -#: lang/json/TOOL_from_json.py -msgid "" -"A small device, not bigger than a man's fist. It provides primitive " -"organisms with electric stimulation, reviving them and forcing them to obey " -"your commands. This version only works on blobs." -msgstr "" -"Małe urządzenie nie większe niż pięść. Zapewnia elektrostymulację " -"prymitywnych organizmów, ożywiając je i zmuszając do posłuszeństwa twoim " -"rozkazom. Ta wersja działa tylko na gluty." - -#: lang/json/TOOL_from_json.py -msgid "dormant blob" -msgid_plural "dormant blobs" -msgstr[0] "uśpiony glut" -msgstr[1] "uśpiony glut" -msgstr[2] "uśpiony glut" -msgstr[3] "uśpiony glut" - -#. ~ Use action friendly_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "The blob becomes active and starts slithering around." -msgstr "Glut ożywia się i zaczyna pełzać dookoła." - -#. ~ Use action hostile_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "You've made a terrible mistake, the blob is hostile!" -msgstr "Popełniłeś okropny błąd, glut jest wrogi!" +msgid "test smartphone" +msgid_plural "test smartphones" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for dormant blob +#. ~ Description for {'str': 'test smartphone'} #: lang/json/TOOL_from_json.py -msgid "" -"Several chunks of blob scraps, stuffed with a control chip and sewn back " -"together. A light shock from the UPS started the chip, bringing the blob " -"back to life. Use this item to wake up the blob." +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." msgstr "" -"Kilka strzępów gluta, napchanych czipem kontrolnym i zszytych z powrotem " -"razem. Lekki impuls elektryczny z UPS'a uruchomił czip, ożywiając gluta z " -"powrotem do życia. Użyj by obudzić gluta." - -#: lang/json/TOOL_from_json.py -msgid "dormant minion" -msgid_plural "dormant minions" -msgstr[0] "uśpiony sługa" -msgstr[1] "uśpiony sługa" -msgstr[2] "uśpiony sługa" -msgstr[3] "uśpiony sługa" -#. ~ Use action friendly_msg for dormant minion. #: lang/json/TOOL_from_json.py -msgid "The jabberwock climbs to its feet and shambles around." -msgstr "Żaberzwłok wstaje na nogi i włóczy się wokoło." - -#. ~ Use action hostile_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "" -"Something has gone wrong; after getting up the jabberwock lumbers toward you" -" menacingly!" -msgstr "Coś poszło nie tak; po wstaniu żaberzwłok rzuca się na ciebie!" +msgid "test matchbook" +msgid_plural "test matchbooks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#. ~ Description for dormant minion +#. ~ Description for {'str': 'test matchbook'} #: lang/json/TOOL_from_json.py -msgid "" -"Your very own undead servant. The blob controlling its body is in a state " -"of coma, awaiting your orders. Use this item to wake up the minion." +msgid "Test matches - when you must burn things, for science!" msgstr "" -"Twój własny sługa zombie. Glut kontrolujący jego ciało jest w stanie " -"śpiączki, oczekując na twoje rozkazy. Użyj by obudzić sługę." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -113921,6 +110167,21 @@ msgstr "" "Dość małe koło. Prawdopodobnie z tych tak zwanych Segway'i. Nie jest zbyt " "onieśmielające." +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "" + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" @@ -114021,225 +110282,66 @@ msgstr[3] "" msgid "A column of mana energy that enables a floating disk to move." msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Rubber Caterpillar Track" -msgid_plural "Rubber Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Rubber Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of hard rubber tracks reinforced by stiff wire " -"held in place by a set of smaller wheels. Similar with what you might see " -"used on light construction vehicles. It's significantly stronger than " -"regular tires due to not being at risk of bursting; but is quite heavy." +#: lang/json/achievement_from_json.py +msgid "One down, billions to go…" msgstr "" -"Krótki zestaw zachodzących na siebie gumowych elementów wzmocnionych " -"sztywnym drutem, utrzymywanych na miejscu zestawem małych kółek. Podobna do " -"tego co możesz zobaczyć na lekkim sprzęcie budowlanym. Jest znacząco " -"silniejsza od kół, gdyż nie ma ryzyka przebicia, ale jest dość ciężka." -#: lang/json/WHEEL_from_json.py -msgid "Steel Caterpillar Track" -msgid_plural "Steel Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Steel Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on large construction " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is very heavy." +#: lang/json/achievement_from_json.py +msgid "Rude awakening" msgstr "" -"Krótki zestaw zachodzących na siebie ukształtowanych stalowych elementów, " -"utrzymywanych na miejscu zestawem małych kółek. Podobna do tego co możesz " -"zobaczyć na ciężkim sprzęcie budowlanym. Jest znacząco silniejsza od kół, " -"gdyż nie ma ryzyka przebicia, ale jest bardzo ciężka." -#: lang/json/WHEEL_from_json.py -msgid "Reinforced Caterpillar Track" -msgid_plural "Reinforced Caterpillar Tracks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Reinforced Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on APCs and armored " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is extremely heavy." +#: lang/json/achievement_from_json.py +msgid "Decamate" msgstr "" -"Krótki zestaw zachodzących na siebie ukształtowanych stalowych elementów, " -"utrzymywanych na miejscu zestawem małych kółek. Podobna do tego co możesz " -"zobaczyć na transporterach opancerzonych i innych pojazdach pancernych. Jest" -" znacząco silniejsza od kół, gdyż nie ma ryzyka przebicia, ale jest " -"ekstremalnie ciężka." -#: lang/json/WHEEL_from_json.py -msgid "Gelatinous track" -msgid_plural "Gelatinous tracks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#. ~ Description for {'str': 'Gelatinous track'} -#. ~ Description for {'str': 'Oozing track'} -#. ~ Description for {'str': 'Gray track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of tracks created out of some of your monstrosity " -"blob based parts. Similar with what you might see used on light " -"construction vehicles. It's significantly stronger than regular tires due " -"to not being at risk of bursting; but is quite heavy." +#: lang/json/achievement_from_json.py +msgid "Centinel" msgstr "" -"Krótki zestaw zachodzących na siebie elementów zrobionych z twoich " -"żelatynowych potwornych części. Podobna do tego co możesz zobaczyć na lekkim" -" sprzęcie budowlanym. Jest znacząco silniejsza od kół, gdyż nie ma ryzyka " -"przebicia, ale jest dość ciężka." - -#: lang/json/WHEEL_from_json.py -msgid "Oozing track" -msgid_plural "Oozing tracks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "Gray track" -msgid_plural "Gray tracks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/WHEEL_from_json.py -msgid "gelacier wheel" -msgid_plural "gelacier wheels" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -#. ~ Description for {'str': 'gelacier wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It has formed itself into a wide, crude " -"wheel." +#: lang/json/achievement_from_json.py +msgid "The first day of the rest of their unlives" msgstr "" -"Biologiczna zagadka. Wewnętrzne struktury tego gluta funkcjonują w zbiorniku" -" płynu niskiej gęstości który pozostaje płynny pomimo bycia w super-" -"schłodzonym stanie. Ponadto nadal zachowuje kowalność swoich wcześniejszych " -"form. Fragmenty szronu stale się od niego odłupują. Uformowało się w " -"szerokie, toporne koło." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gelatinous wheel" -msgid_plural "gelatinous wheels" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -#. ~ Description for {'str': 'gelatinous wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gelatinous mass with water has resulted in something that appears " -"to be a cross between a wheel, an otherworldly abomination, and one of those" -" old squeezy toys." +#: lang/json/achievement_from_json.py +msgid "Survive for a day and find a safe place to sleep" msgstr "" -"Wypełnienie żelatynowej masy wodą dało w rezultacie coś co wygląda na " -"połączenie koła, nieziemskiego odrażającego potwora i jednej z tych zabawek " -"do ugniatania." - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gray wheel" -msgid_plural "gray wheels" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gray mass with water has resulted in something that appears to be " -"a cross between a wheel, an otherworldly abomination, and one of those old " -"squeezy toys." +#: lang/json/achievement_from_json.py +msgid "Thank God it's Friday" msgstr "" -"Wypełnienie szarej masy wodą dało w rezultacie coś co wygląda na połączenie " -"koła, nieziemskiego odrażającego potwora i jednej z tych zabawek do " -"ugniatania." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "earthen roller" -msgid_plural "earthen rollers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a week" +msgstr "" -#. ~ Description for {'str': 'earthen roller'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A large, spherical blob the size of a large truck tire. The outer layer has" -" compacted itself into a solid shell; offering great resilience. Having " -"grown to full size, it seems content to simply sit there." +#: lang/json/achievement_from_json.py +msgid "28 days later" msgstr "" -"Duży sferyczny glut wielkości koła ciężarówki. Zewnętrzna warstwa skurczyła " -"się w twardą skorupę, dając świetną wytrzymałość. Po pełnym wyrośnięciu " -"wygląda na zadowolonego z samego siedzenia." -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "oozing wheel" -msgid_plural "oozing wheels" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a month" +msgstr "" -#. ~ Description for {'str': 'oozing wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling an oozing mass with water has resulted in something that appears to " -"be a cross between a wheel, an otherworldly abomination, and one of those " -"old squeezy toys." +#: lang/json/achievement_from_json.py +msgid "A time to every purpose under heaven" msgstr "" -"Wypełnienie cieknącej masy wodą dało w rezultacie coś co wygląda na " -"połączenie koła, nieziemskiego odrażającego potwora i jednej z tych zabawek " -"do ugniatania." #: lang/json/achievement_from_json.py -msgid "One down, billions to go…" +msgid "Survive for a season" msgstr "" #: lang/json/achievement_from_json.py -msgid "Rude awakening" +msgid "Brighter days ahead?" msgstr "" #: lang/json/achievement_from_json.py -msgid "The first day of the rest of their unlives" +msgid "Survive for a year" msgstr "" #: lang/json/achievement_from_json.py msgid "Pheidippides was a hack" msgstr "" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." msgstr "" @@ -114248,7 +110350,6 @@ msgstr "" msgid "Please don't fall down at my door" msgstr "" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." msgstr "" @@ -114269,6 +110370,18 @@ msgstr "" msgid "Ain't no valley low enough" msgstr "" +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "reloading" msgstr "przeładowuje" @@ -114397,10 +110510,6 @@ msgstr "" msgid "de-stressing" msgstr "odstresowuje" -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr "tnie tkanki" - #: lang/json/activity_type_from_json.py msgid "dropping" msgstr "upuszcza" @@ -114833,10 +110942,6 @@ msgstr "baterie" msgid "cents" msgstr "centy" -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "pluton" - #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" msgstr "12mm kule" @@ -114961,14 +111066,6 @@ msgstr "" msgid "pulse ammo" msgstr "amunicja pulsacyjna" -#: lang/json/ammunition_type_from_json.py -msgid "6.54x42mm" -msgstr "6.54x42mm" - -#: lang/json/ammunition_type_from_json.py -msgid ".20 DREAD Pellets" -msgstr "Śrut .20 DREAD" - #: lang/json/ammunition_type_from_json.py msgid "black powder ammo" msgstr "" @@ -115014,41 +111111,9 @@ msgid "mana energy" msgstr "" #: lang/json/ammunition_type_from_json.py -msgid "javelin" -msgstr "oszczep" - -#: lang/json/ammunition_type_from_json.py -msgid "120mm shell" -msgstr "120mm pocisk artyleryjski" - -#: lang/json/ammunition_type_from_json.py -msgid "155mm shell" -msgstr "155mm pocisk artyleryjski" - -#: lang/json/ammunition_type_from_json.py -msgid "30x113mm" -msgstr "30x113mm" - -#: lang/json/ammunition_type_from_json.py -msgid "heavy projectiles" -msgstr "ciężkie pociski" - -#: lang/json/ammunition_type_from_json.py -msgid "ballista bolt" -msgstr "bełt do balisty" - -#: lang/json/ammunition_type_from_json.py -msgid "bladed disk" -msgstr "zaostrzony dysk" - -#: lang/json/ammunition_type_from_json.py -msgid "crystalline shards" +msgid "heady vapours" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "vortex energy" -msgstr "energia wiru" - #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" msgstr "Pompa Adrenaliny" @@ -115135,10 +111200,10 @@ msgstr "" "lub wypluwać łzy." #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" -msgstr "Opancerzenie Głowy" +msgid "Alloy Plating - head" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -115158,10 +111223,10 @@ msgid "" msgstr "" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" -msgstr "Opancerzenie Torsu" +msgid "Alloy Plating - torso" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -116740,6 +112805,15 @@ msgid "" "inducing a state of euphoria that notably elevates mood." msgstr "" +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top" +" of your spine. They are all dead now but there is unfortunately a dead man" +" switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" @@ -117073,6 +113147,22 @@ msgstr "Wszyj wełniane podbicie" msgid "Destroy wool lining" msgstr "Zniszcz wełniane podbicie" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "Pacyfista" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -117894,6 +113984,10 @@ msgstr "Zbuduj Poduszkowy Fort" msgid "Build Cardboard Fort" msgstr "Zbuduj Kartonowy Fort" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "Zbuduj Ognisty Krąg" @@ -118082,26 +114176,10 @@ msgstr "Porąb Pień Drzewa W Kłody" msgid "Makeshift Wall" msgstr "Prowizoryczna Ściana" -#: lang/json/construction_from_json.py -msgid "Build Hydroponics" -msgstr "Zbuduj Hydroponikę" - -#: lang/json/construction_from_json.py -msgid "Build Hydroponics Heater" -msgstr "" - #: lang/json/construction_from_json.py msgid "Build Translocator Gate" msgstr "" -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" -msgstr "Zbierz Paszę Dla Glutów z Dołu Trupów: Uderz by Zbierać" - -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "Zbierz Paszę Dla Glutów z Gluta: Uderz by Zbierać" - #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." msgstr "Masz dziwny sen o jaszczurach." @@ -119008,6 +115086,71 @@ msgstr "" msgid "You have transitioned from a dying race to a glorious future." msgstr "" +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded" +" by snow and bitter pelting winds, you feel confident and toasty-warm " +"beneath your shaggy coat." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is" +" restored." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill" +" for anyone or anything to bother trying to attack. And if they do… it'll " +"be the last mistake of their life. Waking up gives you a brief jolt of " +"fear and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one" +" through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "" + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "Masz dziwny sen o cieniach." @@ -119884,8 +116027,6 @@ msgid "Stuck in beartrap" msgstr "Złapany w pułapkę na niedźwiedzia" #. ~ Description of effect 'Stuck in beartrap'. -#. ~ Description of effect 'Stuck in a light snare'. -#. ~ Description of effect 'Stuck in a heavy snare'. #: lang/json/effects_from_json.py msgid "You can't move until you get free!" msgstr "Nie możesz się ruszasz puki się nie uwolnisz!" @@ -120244,6 +116385,52 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "Wyleczyłaś grzybiczna infekcję." +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "" + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, +#. Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly +#. tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "Halucynacje" @@ -121639,6 +117826,26 @@ msgstr "" msgid "You're disgusted by the goop." msgstr "" +#: lang/json/effects_from_json.py src/character.cpp +msgid "Full" +msgstr "Najedzony" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "" + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "Obżarty" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "" + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" msgstr "Suplementy Magnezu" @@ -121663,10 +117870,6 @@ msgstr "" "Znacznik SI używany gdy obrazisz NPC specyficzną opcją dialogową. Jeśli go " "masz to błąd." -#: lang/json/effects_from_json.py src/character.cpp src/character.cpp -msgid "Full" -msgstr "Najedzony" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -122039,20 +118242,6 @@ msgstr "" msgid "You feel sluggish and weak, from magically-induced poisoning." msgstr "" -#: lang/json/effects_from_json.py -msgid "Stuck in a light snare" -msgstr "Złapany w lekkie wnyki" - -#. ~ Apply message for effect(s) 'Stuck in a light snare'. -#. ~ Apply message for effect(s) 'Stuck in a heavy snare'. -#: lang/json/effects_from_json.py -msgid "You are snared!" -msgstr "Wpadasz we wnyki!" - -#: lang/json/effects_from_json.py -msgid "Stuck in a heavy snare" -msgstr "Złapany w ciężkie wnyki" - #: lang/json/effects_from_json.py msgid "Gummed" msgstr "" @@ -122079,6 +118268,66 @@ msgstr "" msgid "The gum webs constrict your movement." msgstr "" +#: lang/json/effects_from_json.py +msgid "Debugged" +msgstr "" + +#. ~ Description of effect 'Debugged'. +#: lang/json/effects_from_json.py +msgid "" +"You have been debugged!\n" +"Everything is working perfectly now." +msgstr "" + +#. ~ Apply message for effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Diving into your source, you find a rubber duck, and talk it to death." +msgstr "" + +#. ~ Speed name of effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Optimized" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Min-Maxed" +msgstr "" + +#. ~ Description of effect 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "" +"All the benefits of being the worst with none of the drawbacks of being the " +"best!" +msgstr "" + +#. ~ Apply message for effect(s) 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "You feel your internal metrics stretch like a fun-house mirror." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Whoa" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wut?" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wow!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "" +"Everything is just way too intense, man!\n" +"You feel confused and disoriented." +msgstr "" + +#. ~ Apply message for effect(s) 'Whoa, Wut?, Wow!'. +#: lang/json/effects_from_json.py +msgid "!!Intensity intensifies!!" +msgstr "" + #: lang/json/faction_from_json.py msgid "Your Followers" msgstr "Twoi Towarzysze" @@ -123220,7 +119469,9 @@ msgstr "" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -123238,15 +119489,17 @@ msgstr "główny filtr powietrza" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." msgstr "" #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them" -" clean and to save people an unpleasant chore. Now, with the power gone and" -" it sitting for a while, it's starting to smell a bit off." +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." msgstr "" #: lang/json/furniture_from_json.py @@ -123255,7 +119508,9 @@ msgstr "suszarka" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -123265,9 +119520,8 @@ msgstr "lodówka" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." msgstr "" #: lang/json/furniture_from_json.py @@ -123277,7 +119531,10 @@ msgstr "lodówka ze szklanymi drzwiami" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without" +" letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." msgstr "" #: lang/json/furniture_from_json.py @@ -123288,13 +119545,15 @@ msgstr "piec" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." +"the air through a building's ventilation system to keep it warm." msgstr "" #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." -msgstr "Mógłbyś wyprać swoje rzeczy gdyby jeszcze w gniazdkach był prąd." +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." +msgstr "" #: lang/json/furniture_from_json.py msgid "oven" @@ -123303,13 +119562,9 @@ msgstr "kuchenka" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." msgstr "" -"Używany do podgrzewania i gotowania żywności z użyciem prądu elektrycznego. " -"Nie działa najwyraźniej, ale nadal ma wszystkie części. W środku można " -"bezpiecznie rozpalić ogień, jeśli musisz." #: lang/json/furniture_from_json.py msgid "blacksmith bellows" @@ -123318,8 +119573,9 @@ msgstr "" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -123329,8 +119585,9 @@ msgstr "" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." +"An anvil with a large metal hammer suspended above it in a metal framework." +" If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -123340,8 +119597,10 @@ msgstr "niszczarka dokumentów" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -123350,7 +119609,10 @@ msgstr "" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." msgstr "" #: lang/json/furniture_from_json.py @@ -123360,11 +119622,11 @@ msgstr "duży dysk satelitarny" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes" +" have all been lost." msgstr "" -"Gdzieś tam są jeszcze satelity, orbitujące i robiące swoje, wysyłające " -"sygnały do Ziemi, która już nie słucha." #: lang/json/furniture_from_json.py msgid "mounted solar panel" @@ -123372,7 +119634,10 @@ msgstr "" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -123386,8 +119651,11 @@ msgstr "barykada drogowa" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." -msgstr "Barykada drogowa. Do blokowania dróg." +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp @@ -123405,8 +119673,10 @@ msgstr "barykada z worków z ziemią" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." -msgstr "Barykada z worków z ziemią, zwykle używana do blokowania kul." +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." +msgstr "" #: lang/json/furniture_from_json.py msgid "rrrip!" @@ -123418,8 +119688,8 @@ msgstr "ściana z worków z ziemią" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." -msgstr "Ściana z worków z ziemią." +msgid "A wall of stacked earthbags, a bit taller than an average adult." +msgstr "" #: lang/json/furniture_from_json.py msgid "lane guard" @@ -123427,8 +119697,8 @@ msgstr "rozdzielacz linii" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." -msgstr "Było używane do utrzymania ruchu kołowego." +msgid "A simple wooden post to mark the separation between street lanes." +msgstr "" #: lang/json/furniture_from_json.py msgid "sandbag barricade" @@ -123436,8 +119706,10 @@ msgstr "barykada z worków z piaskiem" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." -msgstr "Barykada z worków z piaskiem, zwykle używana do blokowania kul." +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." +msgstr "" #: lang/json/furniture_from_json.py msgid "sandbag wall" @@ -123445,8 +119717,8 @@ msgstr "ściana z worków z piaskiem" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." -msgstr "Ściana z worków z piaskiem." +msgid "A wall of stacked sandbags, a bit taller than an average adult." +msgstr "" #: lang/json/furniture_from_json.py msgid "standing mirror" @@ -123454,7 +119726,9 @@ msgstr "stojące lustro" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all" +" of the dirt and blood on your clothes, and the weariness in your eyes." msgstr "" #: lang/json/furniture_from_json.py @@ -123468,11 +119742,10 @@ msgstr "stłuczone stojące lustro" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." msgstr "" -"Mógłbyś się sobie przyjrzeć gdyby lustra nie pokrywała sieć pęknięć i " -"szczerb. " #: lang/json/furniture_from_json.py msgid "bitts" @@ -123481,8 +119754,8 @@ msgstr "" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." msgstr "" #: lang/json/furniture_from_json.py @@ -123491,9 +119764,7 @@ msgstr "kajdany" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -123507,11 +119778,12 @@ msgstr "posąg" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." msgstr "thump." @@ -123522,8 +119794,9 @@ msgstr "manekin" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." msgstr "" #: lang/json/furniture_from_json.py @@ -123532,8 +119805,10 @@ msgstr "ptasi brodzik" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." -msgstr "Dekoracyjny ptasi brodzik na piedestale." +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." +msgstr "" #: lang/json/furniture_from_json.py msgid "rotary clothes dryer line" @@ -123541,7 +119816,9 @@ msgstr "" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to" +" hang up clothes to dry in the sunlight." msgstr "" #: lang/json/furniture_from_json.py @@ -123550,7 +119827,9 @@ msgstr "" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." msgstr "" #: lang/json/furniture_from_json.py @@ -123566,13 +119845,29 @@ msgstr "" msgid "A decorative wreath for the winter holidays." msgstr "" +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "" + +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +msgid "crunch." +msgstr "kruncz." + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." +msgid "" +"A decorative pine tree littered with ornaments for the winter holidays." msgstr "" #: lang/json/furniture_from_json.py @@ -123581,8 +119876,10 @@ msgstr "roślina domowa" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." -msgstr "Różne roślinki, używane do dekoracji. " +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried" +" up and died a while ago." +msgstr "" #: lang/json/furniture_from_json.py msgid "yellow indoor plant" @@ -123590,8 +119887,10 @@ msgstr "żółta roślina domowa" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." -msgstr "Różne roślinki, używane do dekoracji. Pożółkłe." +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." +msgstr "" #: lang/json/furniture_from_json.py msgid "harvestable plant" @@ -123600,15 +119899,10 @@ msgstr "roślina gotowa do zbiorów" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to" -" harvest the plant appropriately." +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py -msgid "crunch." -msgstr "kruncz." - #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py msgid "whish." @@ -123620,7 +119914,7 @@ msgstr "dojrzała roślina" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." +msgid "This plant has matured, and will be ready to harvest before long." msgstr "" #: lang/json/furniture_from_json.py @@ -123630,8 +119924,8 @@ msgstr "nasiono" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into " -"destiny." +"A freshly planted seed. If properly tended to, it could grow into a healthy" +" plant." msgstr "" #: lang/json/furniture_from_json.py @@ -123640,7 +119934,7 @@ msgstr "sadzonka" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." +msgid "A seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -123659,22 +119953,34 @@ msgid "planter with harvestable plant" msgstr "" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." msgstr "" #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "" @@ -123682,8 +119988,8 @@ msgstr "" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -123693,8 +119999,8 @@ msgstr "torba pajęczych jaj" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." msgstr "" #: lang/json/furniture_from_json.py @@ -123704,15 +120010,16 @@ msgstr "splat!" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're" -" seeing this, you're already too close to it." +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." msgstr "" #: lang/json/furniture_from_json.py @@ -123721,7 +120028,9 @@ msgstr "rozerwana torba pajęczych jaj" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." msgstr "" #. ~ Description for swamp gas @@ -123772,12 +120081,9 @@ msgstr "palenisko" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." msgstr "" -"Ah, relaksująca nasiadówka przy ogniu gdy świat w okół popada w ruinę. " -"Bliżej Końca taka usługa była też dostępna na telewizor." #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -123797,16 +120103,29 @@ msgstr "piecyk koza" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." msgstr "" -"Kuchenka na drewno do podgrzewania i gotowania. Bardziej efektywna od " -"otwartego ognia." #. ~ Description for brazier #: lang/json/furniture_from_json.py msgid "A raised metal dish in which to safely burn things." msgstr "" +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "pierścień ognia" @@ -123959,8 +120278,8 @@ msgstr "kwiat marloss" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." msgstr "" #: lang/json/furniture_from_json.py @@ -123971,8 +120290,8 @@ msgstr "puff." #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." +"color has been leached from its petals and stem. It gently sways of its own" +" volition, maintaining an unsettling rhythm." msgstr "" #: lang/json/furniture_from_json.py @@ -123983,7 +120302,7 @@ msgstr "grzybiczna masa" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." +"soft to the touch, but not firm enough to hold any weight." msgstr "" #: lang/json/furniture_from_json.py @@ -123993,10 +120312,9 @@ msgstr "grzybiczna kępa" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." msgstr "" -"Obca pleśń i łodygi mieszają się tutaj ściśle, tworząc rodzaj grzybiczego " -"krzaku." #: lang/json/furniture_from_json.py msgid "fungal tangle" @@ -124019,7 +120337,7 @@ msgstr "kamienna płyta" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." +msgid "A slab of heavy stone, with a reasonably flat surface." msgstr "" #: lang/json/furniture_from_json.py @@ -124028,8 +120346,11 @@ msgstr "nagrobek" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." -msgstr "Przechowuje ciała." +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -124043,8 +120364,11 @@ msgstr "płyta nagrobna" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." -msgstr "Przechowuje ciała. Bardziej wytworne." +msgid "" +"An upright slab of stone with information engraved on the face about whoever" +" lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -124052,8 +120376,11 @@ msgstr "zniszczona płyta nagrobna" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." -msgstr "Zatarty nagrobek." +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." +msgstr "" #: lang/json/furniture_from_json.py msgid "obelisk" @@ -124061,7 +120388,10 @@ msgstr "obelisk" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." msgstr "" #: lang/json/furniture_from_json.py @@ -124076,7 +120406,8 @@ msgstr "robotyczny monter" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -124086,8 +120417,8 @@ msgstr "mieszalnik chemiczny" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." +"A large vat with a motorized mixing device for combining large quantities of" +" chemicals." msgstr "" #: lang/json/furniture_from_json.py @@ -124097,9 +120428,9 @@ msgstr "robotyczne ramię" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -124114,8 +120445,10 @@ msgstr "Autodok Mk. XI" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." +"A surgical apparatus used for installation and removal of bionics. The term" +" name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." msgstr "" #: lang/json/furniture_from_json.py @@ -124135,9 +120468,8 @@ msgstr "" #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost " -"anything." +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." msgstr "" #: lang/json/furniture_from_json.py @@ -124151,9 +120483,8 @@ msgstr "" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the " -"inside." +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." msgstr "" #: lang/json/furniture_from_json.py @@ -124187,9 +120518,9 @@ msgstr "" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow" -" bacteria. This is great for microbiology, but terrible for preserving " -"food." +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." msgstr "" #: lang/json/furniture_from_json.py @@ -124199,9 +120530,10 @@ msgstr "" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running" -" water, you could use those attachments to wash harmful chemicals out of " -"your eyes, or to take a pleasant cold shower in a public place." +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." msgstr "" #: lang/json/furniture_from_json.py @@ -124210,7 +120542,9 @@ msgstr "" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." msgstr "" #: lang/json/furniture_from_json.py @@ -124221,9 +120555,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on" +" their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" #: lang/json/furniture_from_json.py @@ -124234,9 +120568,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." msgstr "" #: lang/json/furniture_from_json.py @@ -124246,10 +120580,11 @@ msgstr "" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other" +" advanced sciences, it's not as useful anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -124259,10 +120594,9 @@ msgstr "" #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." msgstr "" #: lang/json/furniture_from_json.py @@ -124272,8 +120606,8 @@ msgstr "" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." msgstr "" #: lang/json/furniture_from_json.py @@ -124283,9 +120617,8 @@ msgstr "" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of" -" radio-opacity." +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." msgstr "" #: lang/json/furniture_from_json.py @@ -124295,9 +120628,8 @@ msgstr "" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't" -" excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." +"A massive tool used to take NMR images of a patient placed inside, providing" +" invaluable medical insight." msgstr "" #: lang/json/furniture_from_json.py @@ -124307,8 +120639,8 @@ msgstr "" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." msgstr "" #: lang/json/furniture_from_json.py @@ -124318,9 +120650,9 @@ msgstr "" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." msgstr "" #: lang/json/furniture_from_json.py @@ -124330,9 +120662,9 @@ msgstr "" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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." +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." msgstr "" #: lang/json/furniture_from_json.py @@ -124342,9 +120674,9 @@ msgstr "" #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." msgstr "" #: lang/json/furniture_from_json.py @@ -124381,7 +120713,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." +"faint light spills from it." msgstr "" #: lang/json/furniture_from_json.py @@ -124397,7 +120729,7 @@ msgstr "" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." +"even waving gently as though underwater." msgstr "" #: lang/json/furniture_from_json.py @@ -124409,7 +120741,7 @@ msgstr "" msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." msgstr "" @@ -124420,9 +120752,9 @@ msgstr "" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." +"A spine resembling moth antennae juts from the ground, swaying gently in the" +" air. Every so often, a cascade of energy arcs along it and discharges into" +" the ceiling." msgstr "" #: lang/json/furniture_from_json.py @@ -124432,8 +120764,8 @@ msgstr "" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases" -" out of injured vessels." +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." msgstr "" #: lang/json/furniture_from_json.py @@ -124492,8 +120824,9 @@ msgstr "wanna" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The" -" plug is intact, so you could use it to store liquids." +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." msgstr "" #: lang/json/furniture_from_json.py @@ -124510,8 +120843,11 @@ msgstr "prysznic" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." -msgstr "Mógłbyś się tu umyć gdyby była bieżąca woda." +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to" +" imagine wasting that much water." +msgstr "" #: lang/json/furniture_from_json.py msgid "sink" @@ -124520,9 +120856,9 @@ msgstr "zlew" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." msgstr "" -"W potrzebie miejsce ulgi. Nie ma bieżącej wody, praktycznie bezużyteczny." #: lang/json/furniture_from_json.py msgid "toilet" @@ -124531,10 +120867,11 @@ msgstr "toaleta" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the " +"cleanest." msgstr "" -"Porcelanowy tron. W potrzebie źródło wody ze zbiornika, oraz miejsce ulgi." #: lang/json/furniture_from_json.py msgid "water heater" @@ -124543,15 +120880,16 @@ msgstr "bojler" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." msgstr "" #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." +"This devices effectively sterilizes water, though without a lot of power and" +" proper plumbing, it's only good for parts now." msgstr "" #: lang/json/furniture_from_json.py @@ -124561,11 +120899,11 @@ msgstr "maszyna do ćwiczeń" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." +"A heavy set of weightlifting equipment for strength training, with a pair of" +" heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." msgstr "" -"Zwykle używane do, cóż, ćwiczeń. Masz tego pod dostatkiem ratując życie " -"uciekając." #: lang/json/furniture_from_json.py msgid "ball machine" @@ -124574,9 +120912,9 @@ msgstr "maszyna z piłkami" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various" -" balls for different types of sports. It's only good for parts now if " -"disassembled." +"A simple machine for launching sports balls of various types, with a pair of" +" motorized wheels that, if spun up, would fling the ball at moderate speeds." +" Probably not the most effective ranged weapon against the undead." msgstr "" #: lang/json/furniture_from_json.py @@ -124585,8 +120923,12 @@ msgstr "stół bilardowy" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." -msgstr "Niezły stół do bilarda. Żałujesz że nie nauczyłeś się grać." +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." +msgstr "" #: lang/json/furniture_from_json.py msgid "diving block" @@ -124594,8 +120936,10 @@ msgstr "podest do nurkowania" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" -msgstr "Skacz! Skacz! Nurkuj!" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." +msgstr "" #: lang/json/furniture_from_json.py msgid "target" @@ -124603,8 +120947,13 @@ msgstr "tarcza celownicza" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." -msgstr "Metalowa tarcza celownicza z grubsza w kształcie człowieka." +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped" +" off." +msgstr "" #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -124613,9 +120962,8 @@ msgstr "maszyna do gier" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." msgstr "" #: lang/json/furniture_from_json.py @@ -124625,9 +120973,10 @@ msgstr "flipper" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't" -" go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While" +" inoperable without power, it's still impressive to look at, though probably" +" more useful if disassembled." msgstr "" #: lang/json/furniture_from_json.py @@ -124637,8 +120986,9 @@ msgstr "ergometr" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." +"An exercise machine with a set of handles and plates meant to emulate rowing" +" a boat. Without power it can't be operated, but it might have useful parts" +" to be scavanged." msgstr "" #: lang/json/furniture_from_json.py @@ -124648,8 +120998,9 @@ msgstr "bieżnia" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be" -" taken apart for its… parts." +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." msgstr "" #: lang/json/furniture_from_json.py @@ -124659,8 +121010,9 @@ msgstr "ciężki worek treningowy" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." msgstr "" #: lang/json/furniture_from_json.py @@ -124674,8 +121026,9 @@ msgstr "pianino" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." msgstr "" #: lang/json/furniture_from_json.py @@ -124693,9 +121046,9 @@ msgstr "" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things" -" loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." +"An upright wood-panel case of large speakers, built to produce a potentially" +" deafening volume level. While this is a terrible idea to use now, it could" +" hold useful parts." msgstr "" #: lang/json/furniture_from_json.py @@ -124704,7 +121057,10 @@ msgstr "" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." msgstr "" #: lang/json/furniture_from_json.py @@ -124713,13 +121069,22 @@ msgstr "" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "this should never actually show up, it's a pseudo furniture" msgstr "" #. ~ Description for this should never actually show up, it's a pseudo #. furniture #: lang/json/furniture_from_json.py -msgid "this should never actually show up, it's a pseudo furniture" +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." msgstr "" #: lang/json/furniture_from_json.py @@ -124728,7 +121093,10 @@ msgstr "" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." msgstr "" #: lang/json/furniture_from_json.py @@ -124741,7 +121109,10 @@ msgstr "" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." msgstr "" #: lang/json/furniture_from_json.py @@ -124750,7 +121121,9 @@ msgstr "" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." msgstr "" #: lang/json/furniture_from_json.py @@ -124759,7 +121132,10 @@ msgstr "" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." msgstr "" #: lang/json/furniture_from_json.py @@ -124768,7 +121144,9 @@ msgstr "" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." msgstr "" #: lang/json/furniture_from_json.py @@ -124778,7 +121156,9 @@ msgstr "" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py msgid "" -"The turbine uses wind power to suck hot and humid air out of the attic." +"A rotary wind turbine that will catch the wind and pull out air from inside." +" It is most commonly used for improving air cicrulation, particularly in " +"poorly-ventilated areas like attics." msgstr "" #: lang/json/furniture_from_json.py @@ -124787,8 +121167,11 @@ msgstr "" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." -msgstr "Bela siana. Możesz na niej spać jeśli jesteś zdesperowany." +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable" +" bed." +msgstr "" #: lang/json/furniture_from_json.py msgid "whish!" @@ -124800,8 +121183,11 @@ msgstr "stos drewnianych wiórów" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." -msgstr "Stos wiórów z drewna. Możesz je przerzucić z pomocą szpadla." +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the" +" way." +msgstr "" #: lang/json/furniture_from_json.py msgid "bench" @@ -124809,8 +121195,10 @@ msgstr "ławka" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." -msgstr "Łóżko żula. Przewiewne. Używasz na własną odpowiedzialność." +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." +msgstr "" #: lang/json/furniture_from_json.py msgid "arm chair" @@ -124818,8 +121206,10 @@ msgstr "fotel" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." -msgstr "Wygodniejsza forma siadania." +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." +msgstr "" #: lang/json/furniture_from_json.py msgid "airplane seat" @@ -124827,7 +121217,9 @@ msgstr "" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." msgstr "" #: lang/json/furniture_from_json.py @@ -124835,10 +121227,12 @@ msgid "chair" msgstr "krzesło" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." -msgstr "Usiądź, napij się." +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat" +" a meal properly and almost pretend that things were normal again." +msgstr "" #: lang/json/furniture_from_json.py msgid "sofa" @@ -124846,16 +121240,29 @@ msgstr "sofa" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" -msgstr "Połóż się LUB usiądź! Doskonale!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." +msgstr "" #: lang/json/furniture_from_json.py msgid "stool" msgstr "taboret" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "" + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." msgstr "" #: lang/json/furniture_from_json.py @@ -124865,8 +121272,8 @@ msgstr "" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." msgstr "" #: lang/json/furniture_from_json.py @@ -124876,7 +121283,9 @@ msgstr "" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground," +" it's not particularly comfortable." msgstr "" #: lang/json/furniture_from_json.py @@ -124886,8 +121295,8 @@ msgstr "słup ogłoszeniowy" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." msgstr "" #: lang/json/furniture_from_json.py @@ -124896,8 +121305,10 @@ msgstr "znak" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." -msgstr "Przeczytaj to. Ostrzeżenia przed tobą." +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." +msgstr "" #: lang/json/furniture_from_json.py msgid "warning sign" @@ -124906,9 +121317,9 @@ msgstr "znak ostrzegawczy" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." -msgstr "Trójkątny znak na słupku, który ostrzega lub wskazuje coś ważnego." +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." +msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "bed" @@ -124917,8 +121328,10 @@ msgstr "łóżko" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." -msgstr "To łóżko. Luksus w tych czasach. Bardzo wygodne do spania." +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." +msgstr "" #: lang/json/furniture_from_json.py msgid "bunk bed" @@ -124926,7 +121339,11 @@ msgstr "" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than" +" you'd like to somebody you wouldn't normally want to share a mattress with," +" a bed's a bed." msgstr "" #: lang/json/furniture_from_json.py @@ -124936,11 +121353,9 @@ msgstr "rama łóżka" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place" -" to sleep. Sleeping on it right now wouldn't be great." +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." msgstr "" -"Pusta rama łóżka. Zaopatrzona w materac byłaby dobrym miejscem do spania. " -"Spanie na nie obecnie to nie najlepszy pomysł." #: lang/json/furniture_from_json.py msgid "whack." @@ -124949,11 +121364,10 @@ msgstr "łup." #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's" -" not quite as comfy as a real bed, but it's pretty close." +"An ordinary mattress left on the floor. While it's not as comfortable as an" +" entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." msgstr "" -"Komfortowy materac rzucono na podłogę by tu spać. Nie tak komfortowy jak " -"łóżko, ale całkiem blisko mu do niego." #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py src/map.cpp @@ -124963,9 +121377,10 @@ msgstr "rrrrip!" #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty " -"close." +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." msgstr "" #: lang/json/furniture_from_json.py @@ -124974,8 +121389,11 @@ msgstr "prowizoryczne łóżko" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "Nie tak dobre jak prawdziwe łóżko, ale się nada." +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal" +" bed, albeit with a slightly lumpy mattress. Considering the circumstances," +" it's not too bad at all." +msgstr "" #: lang/json/furniture_from_json.py msgid "straw bed" @@ -124983,8 +121401,10 @@ msgstr "siennik" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." -msgstr "Trochę swędzi gdy się na nim kładziesz." +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." +msgstr "" #: lang/json/furniture_from_json.py msgid "bookcase" @@ -124992,7 +121412,9 @@ msgstr "" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -125001,7 +121423,10 @@ msgstr "" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden" +" cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -125010,7 +121435,11 @@ msgstr "trumna" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will" +" likely never receive." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -125024,8 +121453,10 @@ msgstr "otwarta trumna" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." msgstr "" #: lang/json/furniture_from_json.py @@ -125035,8 +121466,9 @@ msgstr "skrzynka" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." msgstr "" #: lang/json/furniture_from_json.py @@ -125045,14 +121477,19 @@ msgstr "otwarta skrzynka" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" -msgstr "Co jest w środku? Zajrzyj!" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of" +" nails, could be sealed back shut." +msgstr "" #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." +"A large box made of a brown paper-based material. Could contain a number of" +" things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect" +" you if you're found." msgstr "" #: lang/json/furniture_from_json.py @@ -125069,7 +121506,9 @@ msgstr "komoda" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." msgstr "" #: lang/json/furniture_from_json.py @@ -125078,7 +121517,10 @@ msgstr "" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -125093,8 +121535,12 @@ msgstr "sejf na broń" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." -msgstr "Ooohhh. Błyszczące." +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "screeching metal!" @@ -125106,8 +121552,11 @@ msgstr "zacięty sejf na broń" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." -msgstr "Czy w środku jest broń? Nie sprawdzisz. Zacięło się." +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." +msgstr "" #: lang/json/furniture_from_json.py msgid "electronic gun safe" @@ -125115,8 +121564,12 @@ msgstr "elektroniczny sejf na broń" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" -msgstr "Czy możesz to zhakować by dostać się do broni?" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking" +" system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." +msgstr "" #: lang/json/furniture_from_json.py msgid "locker" @@ -125124,8 +121577,10 @@ msgstr "schowek" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." -msgstr "Zwykle używane do składowania sprzętu i przedmiotów." +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "mailbox" @@ -125134,11 +121589,10 @@ msgstr "skrzynka na listy" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come" -" for awhile. Doesn't look like it's coming again anytime soon." +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." msgstr "" -"Metalowa skrzynka zamontowana na drewnianym słupku. Listonosza już długo tu " -"nie było. I chyba nieprędko się pojawi." #: lang/json/furniture_from_json.py msgid "clothing rail" @@ -125146,7 +121600,10 @@ msgstr "" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes." +" Usually used in theater or retail environments, it's easy to use and quick" +" to access." msgstr "" #: lang/json/furniture_from_json.py @@ -125155,8 +121612,10 @@ msgstr "gablota" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." -msgstr "Zaprezentuj swoje przedmioty." +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." +msgstr "" #: lang/json/furniture_from_json.py msgid "wooden rack" @@ -125164,7 +121623,9 @@ msgstr "" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." msgstr "" #: lang/json/furniture_from_json.py @@ -125173,8 +121634,10 @@ msgstr "wieszak na ubrania" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." -msgstr "Wieszak z hakami do wieszania płaszczy i kapeluszy." +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." +msgstr "" #: lang/json/furniture_from_json.py msgid "recycle bin" @@ -125182,8 +121645,12 @@ msgstr "kosz do segregacji odpadów" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." -msgstr "Mieści śmieci posegregowane do recyklingu." +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it." +" While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." +msgstr "" #: lang/json/furniture_from_json.py msgid "safe" @@ -125191,13 +121658,18 @@ msgstr "sejf" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." -msgstr "Przechowuje przedmioty. Bezpiecznie." +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." +msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" -msgstr "Kto potrzebuje takiego bezpieczeństwa?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "open safe" @@ -125205,8 +121677,10 @@ msgstr "otwarty sejf" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" -msgstr "Chwyć za broń!" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." +msgstr "" #: lang/json/furniture_from_json.py msgid "trash can" @@ -125214,8 +121688,11 @@ msgstr "kosz na śmieci" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." -msgstr "Śmieci dla jednego, obiad dla drugiego." +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." +msgstr "" #: lang/json/furniture_from_json.py msgid "wardrobe" @@ -125223,7 +121700,10 @@ msgstr "szafa" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." msgstr "" #: lang/json/furniture_from_json.py @@ -125233,9 +121713,8 @@ msgstr "szafka aktowa" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." msgstr "" #: lang/json/furniture_from_json.py @@ -125244,7 +121723,9 @@ msgstr "" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools" +" and materials for easy access to workers." msgstr "" #: lang/json/furniture_from_json.py @@ -125254,11 +121735,8 @@ msgstr "szafka magazynowa" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." +"A huge, sturdy steel shelf for storing pallets of crates in warehouses." msgstr "" -"Duża, wytrzymała szafka zrobiona z metalu; do składowania palet i skrzyń w " -"magazynach." #: lang/json/furniture_from_json.py msgid "wooden keg" @@ -125266,8 +121744,10 @@ msgstr "drewniany keg" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." -msgstr "Keg wykonany z drewna. Trzyma się w nim napoje, najlepiej alkoholowe." +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." +msgstr "" #: lang/json/furniture_from_json.py msgid "display case" @@ -125275,8 +121755,11 @@ msgstr "gablotka" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." -msgstr "Pokazuj swój sprzęt modnie i bezpiecznie." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." +msgstr "" #: lang/json/furniture_from_json.py msgid "broken display case" @@ -125284,8 +121767,12 @@ msgstr "rozbita gablotka" #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." -msgstr "Zaprezentuj swoje przedmioty. Zostaną ukradzione." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Would be useful for storing valuable things while still showing them off, " +"if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." +msgstr "" #: lang/json/furniture_from_json.py msgid "standing tank" @@ -125293,9 +121780,9 @@ msgstr "pionowy zbiornik" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." msgstr "" -"Duży wolno stojący metalowy zbiornik, użyteczny do przechowywania cieczy." #: lang/json/furniture_from_json.py msgid "dumpster" @@ -125303,10 +121790,11 @@ msgstr "pojemnik na śmieci" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." msgstr "" -"Pojemnik przeznaczony do trzymania w nim śmieci. Mimo, że żadna śmieciarka " -"nigdy po nie nie przyjedzie." #: lang/json/furniture_from_json.py msgid "butter churn" @@ -125314,10 +121802,10 @@ msgstr "ubijak do masła" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." msgstr "" -"Napędzany siłą nóg ubijak do masła. Gdyby dodać do niego koła, mógłby " -"uchodzić za rower." #: lang/json/furniture_from_json.py msgid "counter" @@ -126166,68 +122654,6 @@ msgid "" "inducing aroma." msgstr "" -#: lang/json/furniture_from_json.py -msgid "hydroponics unit" -msgstr "" - -#. ~ Description for hydroponics unit -#: lang/json/furniture_from_json.py -msgid "This is a self-contained hydroponics unit used to grow crops indoors." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seed" -msgstr "" - -#. ~ Description for hydroponics unit with seed -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seed" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seedling" -msgstr "" - -#. ~ Description for hydroponics unit with seedling -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seedling" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with mature plant" -msgstr "" - -#. ~ Description for hydroponics unit with mature plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with harvestable plant" -msgstr "" - -#. ~ Description for hydroponics unit with harvestable plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant that is ready for harvest." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics heater" -msgstr "" - -#. ~ Description for hydroponics heater -#: lang/json/furniture_from_json.py -msgid "This is a self-contained heater, used to warm hydroponics units." -msgstr "" - #: lang/json/furniture_from_json.py msgid "Translocator Gate" msgstr "" @@ -126336,16 +122762,23 @@ msgid "" msgstr "" #: lang/json/furniture_from_json.py -msgid "krash!" -msgstr "krash!" +msgid "tank trap" +msgstr "zapora przeciwczołgowa" +#. ~ Description for fungal mass #: lang/json/furniture_from_json.py -msgid "krak." -msgstr "krak." +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." +msgstr "" +#. ~ Description for fungal clump #: lang/json/furniture_from_json.py -msgid "tank trap" -msgstr "zapora przeciwczołgowa" +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +msgstr "" +"Obca pleśń i łodygi mieszają się tutaj ściśle, tworząc rodzaj grzybiczego " +"krzaku." #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py @@ -126544,13 +122977,13 @@ msgstr[3] "" msgid "Fake gun that fires acid globs." msgstr "Fałszywa spluwa strzelająca globulkami kwasu." -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item_factory.cpp msgid "auto" msgstr "automatyczny" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "karabin" @@ -126563,6 +122996,83 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "rurowa spluwa kombinowana" +msgstr[1] "rurowa spluwa kombinowana" +msgstr[2] "rurowa spluwa kombinowana" +msgstr[3] "rurowa spluwa kombinowana" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from" +" a double barrel shotgun." +msgstr "" +"Ręcznie produkowana trzylufowa broń palna z jedną lufa w kalibrze .30-06 i " +"pozostałymi dwiema na naboje do strzelby. Jest zrobiona z rur i części " +"skanibalizowanych z dwururki." + +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "strzelba" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] "karabin rurowy: .30-06" +msgstr[1] "karabin rurowy: .30-06" +msgstr[2] "karabin rurowy: .30-06" +msgstr[3] "karabin rurowy: .30-06" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" +" strike the single round it holds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "domowy karabinek" +msgstr[1] "domowe karabinki" +msgstr[2] "domowych karabinków" +msgstr[3] "domowego karabinku" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the" +" better homemade weapons." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] "karabin rurowy: .223" +msgstr[1] "karabin rurowy: .223" +msgstr[2] "karabin rurowy: .223" +msgstr[3] "karabin rurowy: .223" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -126704,9 +123214,7 @@ msgstr "" "wynalezionego w połowie 21-go wieku. Jest niewiele więcej niż elektroniką " "oklejoną taśma montażową, pracującą na zasilaniu z UPS-a." -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py -#: lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "pistolet" @@ -126831,11 +123339,6 @@ msgstr "pojedynczy" msgid "double" msgstr "podwójny" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "strzelba" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -126933,6 +123436,46 @@ msgstr "" "kolbę i osłonę dłoni. Może być ładowany wymiennymi magazynkami i jest " "znacznie efektywniejszą bronią." +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "AN-94" +msgstr[1] "AN-94" +msgstr[2] "AN-94" +msgstr[3] "AN-94" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" +"W zamiarze miał zastąpienie AK-47. Karabin używa wyrafinowanego mechanizmu " +"opóźniającego odrzut, oraz dwustrzałową serię. Mimo, że jego złożoność nie " +"pozwoliła mu wejść na wyposażenie rosyjskiej armii, to był wykorzystywany " +"przez wojska specjalne." + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "2 st." + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "ręczne działo laserowe" +msgstr[1] "ręczne działo laserowe" +msgstr[2] "ręczne działo laserowe" +msgstr[3] "ręczne działo laserowe" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "" +"Działo laserowe wymontowane z lufy wieżyczki laserowej TX-5LR Cerberus, " +"zmodyfikowane by używać do strzałów zasilania z UPS-a." + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -127367,6 +123910,23 @@ msgid "" "retains the integral bipod, though." msgstr "" +#: lang/json/gun_from_json.py +msgid "FS2000" +msgid_plural "FS2000s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A sleek bullpup carbine designed by FN Herstal, complete with an integrated " +"sight accessory rail. The forward ejecting action and ambidextrous controls" +" make firing comfortable for both left and right-handed shooting. The whole" +" rifle is well sealed from mud and dust for reliability, but this makes it " +"incompatible with many aftermarket magazines." +msgstr "" + #: lang/json/gun_from_json.py msgid "HK416 A5" msgid_plural "HK416 A5s" @@ -127423,6 +123983,21 @@ msgstr "" msgid "burst" msgstr "" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -127492,20 +124067,6 @@ msgid "" "buttstock." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] "karabin rurowy: .223" -msgstr[1] "karabin rurowy: .223" -msgstr[2] "karabin rurowy: .223" -msgstr[3] "karabin rurowy: .223" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" -" strike the single round it holds." -msgstr "" - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -127577,21 +124138,6 @@ msgstr "" "siłach zbrojnych i policji wielu krajów. Znany z niskiego odrzutu i wysokiej" " celności." -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "domowy karabinek" -msgstr[1] "domowe karabinki" -msgstr[2] "domowych karabinków" -msgstr[3] "domowego karabinku" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the" -" better homemade weapons." -msgstr "" - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -127760,14 +124306,6 @@ msgstr "" "oddziałach SWAT i snajperów marines. Zadaje duże obrażenia, ale być może nie" " tak celny jak konkurencyjny Browning BLR." -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] "karabin rurowy: .30-06" -msgstr[1] "karabin rurowy: .30-06" -msgstr[2] "karabin rurowy: .30-06" -msgstr[3] "karabin rurowy: .30-06" - #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" msgid_plural "Remington ACR .300BLKs" @@ -127935,8 +124473,8 @@ msgstr "" "akcji." #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -127944,10 +124482,8 @@ msgstr[3] "" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." msgstr "" #: lang/json/gun_from_json.py @@ -128964,12 +125500,12 @@ msgstr "" " których używa mają niezłego kopa. Uwaga na odrzut." #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" -msgstr[0] "pistolet maszynowy Thompson" -msgstr[1] "pistolet maszynowy Thompson" -msgstr[2] "pistolet maszynowy Thompson" -msgstr[3] "pistolet maszynowy Thompson" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/gun_from_json.py msgid "" @@ -129012,8 +125548,8 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -129353,30 +125889,6 @@ msgstr "" "Sukcesor doskonale znanego AK-47. Łączy niezawodność serii AK z lekką i " "szybką amunicją 5.45x39mm." -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "AN-94" -msgstr[1] "AN-94" -msgstr[2] "AN-94" -msgstr[3] "AN-94" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" -"W zamiarze miał zastąpienie AK-47. Karabin używa wyrafinowanego mechanizmu " -"opóźniającego odrzut, oraz dwustrzałową serię. Mimo, że jego złożoność nie " -"pozwoliła mu wejść na wyposażenie rosyjskiej armii, to był wykorzystywany " -"przez wojska specjalne." - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "2 st." - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -129859,22 +126371,6 @@ msgstr "" "ciężką lufą z otworami ograniczającymi odrzut. Akceptuje magazynki pudełkowe" " i bębnowe RMGD250." -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "rewolwer RM99" -msgstr[1] "rewolwer RM99" -msgstr[2] "rewolwer RM99" -msgstr[3] "rewolwer RM99" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" -" addition to the arsenal of any gunslinger." -msgstr "" -"Uznany za posiadający nadmiar mocy Rivtech M99 jest przesadnie silnym " -"nabytkiem do arsenału każdego strzelca." - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -130466,24 +126962,6 @@ msgstr "" "lufami strzelby. Historycznie używana przez myśliwych egomaniaków w Afryce, " "a obecnie przez ich spadkobierców egomaniaków w Nowej Anglii." -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "rurowa spluwa kombinowana" -msgstr[1] "rurowa spluwa kombinowana" -msgstr[2] "rurowa spluwa kombinowana" -msgstr[3] "rurowa spluwa kombinowana" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from" -" a double barrel shotgun." -msgstr "" -"Ręcznie produkowana trzylufowa broń palna z jedną lufa w kalibrze .30-06 i " -"pozostałymi dwiema na naboje do strzelby. Jest zrobiona z rur i części " -"skanibalizowanych z dwururki." - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -130685,6 +127163,21 @@ msgid "" "action means this is much less likely to jam." msgstr "" +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -131138,22 +127631,6 @@ msgid "" "quiet and accurate marksman laser rifle." msgstr "" -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "ręczne działo laserowe" -msgstr[1] "ręczne działo laserowe" -msgstr[2] "ręczne działo laserowe" -msgstr[3] "ręczne działo laserowe" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "" -"Działo laserowe wymontowane z lufy wieżyczki laserowej TX-5LR Cerberus, " -"zmodyfikowane by używać do strzałów zasilania z UPS-a." - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" @@ -131433,11 +127910,8 @@ msgstr[3] "kusza do kul" msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." +"hunting small game." msgstr "" -"Zmodyfikowana wersja klasycznej kuszy która używa kamieni do miotania, " -"zamiast tradycyjnych bełtów. Pierwotnie do polowania na małą zwierzynę. " -"Silniejsi ludzie przeładują ją szybciej." #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -131468,13 +127942,9 @@ msgstr[3] "kusza" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." msgstr "" -"Broń ręczna wystrzeliwująca bełty, którą wolno się ładuje. Silniejsze osoby " -"mogą ją załadować szybciej. Strzały z niej wystrzelone mają dobrą szansę " -"pozostanie w jednym kawałku i mogą być ponownie użyte." #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -131676,8 +128146,9 @@ msgstr[3] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." -msgstr "Skórzana proca, łatwa w użyciu i celna. Używa kamyków jako amunicji." +"A leather sling, can launch rocks much further and faster than throwing them" +" by hand." +msgstr "" #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -131694,9 +128165,9 @@ msgstr[3] "proca na kiju" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as " -"ammunition." -msgstr "Drewniana proca, łatwa w użyciu i celna. Używa kamyków jako amunicji." +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." +msgstr "" #: lang/json/gun_from_json.py msgid "staff sling" @@ -131708,8 +128179,8 @@ msgstr[3] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." msgstr "" #: lang/json/gun_from_json.py @@ -131722,11 +128193,9 @@ msgstr[3] "proca z oparciem" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." msgstr "" -"Współczesna proca opierająca się dodatkowo na nadgarstku, łatwa w użyciu, " -"celna i dość silna." #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -132052,8 +128521,7 @@ msgid "" " mid-range versatility of the 9mm with the power of the 12 gauge shotgun. " "To further compliment the CQB aspect, the stock is built to amplify the " "user's force and the rugged construction with tonfa-like grip can handle " -"bashing in enemy heads. An integrated magazine makes it a pain to reload, " -"but keeps your clip from ejecting accidently." +"bashing in enemy heads." msgstr "" #: lang/json/gun_from_json.py @@ -132116,7 +128584,7 @@ msgid "" "Experimental double purpose tool under development in C.R.I.T R&D. It takes" " a regular nail and then enlongates it within a fraction of a second before " "firing it out, upon reaching a target, the fragile stake explodes into " -"shards." +"shards inside the target." msgstr "" #: lang/json/gun_from_json.py @@ -132259,272 +128727,8 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "SVS-24" -msgid_plural "SVS-24" -msgstr[0] "SVS-24" -msgstr[1] "SVS-24" -msgstr[2] "SVS-24" -msgstr[3] "SVS-24" - -#: lang/json/gun_from_json.py -msgid "" -"The Sarafanov Assault Rifle replaced the famous AK family of guns as the " -"service rifle of the Russian Army. It uses the 6.54x42mm cartridge." -msgstr "" -"Karabin szturmowy Sarafanowa zastąpił słynną rodzinę karabinów AK, jak broń " -"na wyposażeniu wojska rosyjskiego. Używa amunicji 6.54x42mm." - -#: lang/json/gun_from_json.py -msgid "SVS-24C" -msgid_plural "SVS-24C" -msgstr[0] "SVS-24C" -msgstr[1] "SVS-24C" -msgstr[2] "SVS-24C" -msgstr[3] "SVS-24C" - -#: lang/json/gun_from_json.py -msgid "" -"The compact version of the standard SVS-24. It is commonly issued to tank " -"crews or special forces due to its smaller size. The shorter barrel reduces" -" accuracy." -msgstr "" -"Kompaktowa wersja standardowego SVS-24. Jest na wyposażeniu załóg czołgu i " -"sił specjalnych z uwagi na mały rozmiar. Krótsza lufa zmniejsza celność." - -#: lang/json/gun_from_json.py -msgid "CW-24" -msgid_plural "CW-24" -msgstr[0] "CW-24" -msgstr[1] "CW-24" -msgstr[2] "CW-24" -msgstr[3] "CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It was made by Clearwater Arms, Georgia, " -"for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" -" cartridge." -msgstr "" -"Cywilna wersja SVS-24. Wyprodukowana przez Clearwater Arms z Georgii na " -"rynek Ameryki Północnej. Jest wyłącznie półautomatyczny i strzela słabszą " -"amunicją 5.45x39mm." - -#: lang/json/gun_from_json.py -msgid "CW-24M" -msgid_plural "CW-24M" -msgstr[0] "CW-24M" -msgstr[1] "CW-24M" -msgstr[2] "CW-24M" -msgstr[3] "CW-24M" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" -" as the SVS-24." -msgstr "" -"Cywilna wersja SVS-24. Ta wersja strzela taką samą amunicją 6.54x42mm jak " -"SVS-24." - -#: lang/json/gun_from_json.py -msgid "CW-24K" -msgid_plural "CW-24K" -msgstr[0] "CW-24K" -msgstr[1] "CW-24K" -msgstr[2] "CW-24K" -msgstr[3] "CW-24K" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the cheaper, but still " -"powerful, 7.62x39mm cartridge." -msgstr "" -"Cywilna wersja SVS-24. Ta wersja strzela tańszą lecz nadal silną amunicją " -"7.62x39mm." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24" -msgid_plural "Modified CW-24" -msgstr[0] "Zmodyfikowany CW-24" -msgstr[1] "Zmodyfikowany CW-24" -msgstr[2] "Zmodyfikowany CW-24" -msgstr[3] "Zmodyfikowany CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It has a modified receiver and a new " -"crudely crafted full-auto bolt carrier. Don't expect the original " -"reliability." -msgstr "" -"Cywilna wersja SVS-24. Zmodyfikowano zamek i wstawiono toporny mechanizm " -"automatycznego strzału. Nie oczekuj oryginalnej wytrzymałości." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24M" -msgid_plural "Modified CW-24M" -msgstr[0] "Zmodyfikowany CW-24M" -msgstr[1] "Zmodyfikowany CW-24M" -msgstr[2] "Zmodyfikowany CW-24M" -msgstr[3] "Zmodyfikowany CW-24M" - -#: lang/json/gun_from_json.py -msgid "CWD-63" -msgid_plural "CWD-63" -msgstr[0] "CWD-63" -msgstr[1] "CWD-63" -msgstr[2] "CWD-63" -msgstr[3] "CWD-63" - -#: lang/json/gun_from_json.py -msgid "" -"The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " -"rechambered for the .308 round." -msgstr "" -"Produkowana przez Clearwater Arms wersja słynnego SVD-63 Dragunov. Ta używa " -"naboi kalibru .308." - -#: lang/json/gun_from_json.py -msgid "Wrist DREAD" -msgid_plural "Wrist DREAD" -msgstr[0] "nadgarstkowy DREAD" -msgstr[1] "nadgarstkowy DREAD" -msgstr[2] "nadgarstkowy DREAD" -msgstr[3] "nadgarstkowy DREAD" - -#: lang/json/gun_from_json.py -msgid "" -"The miniaturized version of the DREAD MkIX attached to the wrist of the " -"operator. It fires .20 metal pellets at an incredible rate without any " -"flash or noise. It is mainly a defensive weapon." -msgstr "" -"Zminiaturyzowana wersja DREAD Mk. IX przyłączana do nadgarstka operatora. " -"Strzela metalowymi peletami .20 z niesamowitą prędkością bez błysku i " -"hałasu. To głównie broń do obrony." - -#: lang/json/gun_from_json.py -msgid "JHEC M128" -msgid_plural "JHEC M128s" -msgstr[0] "JHEC M128" -msgstr[1] "JHEC M128" -msgstr[2] "JHEC M128" -msgstr[3] "JHEC M128" - -#: lang/json/gun_from_json.py -msgid "" -"The Johnson Heavy Equipment Co. M128 autorevolver; all others fail to " -"measure up. Johnson Heavy Equipment Co. is a subsidiary of D&B " -"Minneapolis." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "Boomlighter 454" -msgid_plural "Boomlighter 454s" -msgstr[0] "Boomlighter 454" -msgstr[1] "Boomlighter 454" -msgstr[2] "Boomlighter 454" -msgstr[3] "Boomlighter 454" - -#: lang/json/gun_from_json.py -msgid "" -"Handmade by master gunsmiths at D&B Minneapolis, this deadly accurate and " -"powerful pistol packs a punch with precision, power and flair. Comes with a" -" one of a kind integrated flamethrower." -msgstr "" -"Ręcznie robiony przez mistrzów rusznikarzy z D&B Minneapolis, ten zabójczo " -"celny i silny pistolet daje kopa z precyzją, siłą i jakością. W zestawie z " -"jedynym w swoim rodzaju zintegrowanym miotaczem ognia." - -#: lang/json/gun_from_json.py -msgid "gunsword" -msgid_plural "gunswords" -msgstr[0] "miecz-pistolet" -msgstr[1] "miecz-pistolet" -msgstr[2] "miecz-pistolet" -msgstr[3] "miecz-pistolet" - -#: lang/json/gun_from_json.py -msgid "" -"A long sharp blade, with two powerful .500 S&W Magnum chambers in the hilt." -" While chambering big rounds, the barrels are so short it slightly reduces " -"outgoing damage." -msgstr "" -"Długie ostre ostrze z dwiema mocnymi komorami na .500 S&W Magnum w rączce. " -"Mimo dużych naboi, lufy są na tyle krótkie, że nieco redukują obrażenia." - -#: lang/json/gun_from_json.py -msgid "gunknife" -msgid_plural "gunknives" -msgstr[0] "nóż-pistolet" -msgstr[1] "nóż-pistolet" -msgstr[2] "nóż-pistolet" -msgstr[3] "nóż-pistolet" - -#: lang/json/gun_from_json.py -msgid "" -"A short but sharp blade, with two powerful .500 S&W Magnum chambers in the " -"grip. While chambering big rounds, the barrels are so short it slightly " -"reduces outgoing damage." -msgstr "" -"Krótkie, lecz ostre ostrze z dwiema mocnymi komorami na .500 S&W Magnum w " -"rączce. Mimo dużych naboi, lufy są na tyle krótkie, że nieco redukują " -"obrażenia." - -#: lang/json/gun_from_json.py -msgid "FiveO handcannon" -msgid_plural "FiveO handcannons" -msgstr[0] "ręczne działo PięćZero" -msgstr[1] "ręczne działo PięćZero" -msgstr[2] "ręczne działo PięćZero" -msgstr[3] "ręczne działo PięćZero" - -#: lang/json/gun_from_json.py -msgid "" -"Someone crazy thought that the .50 BMG belonged in a pistol. This massive " -"piece of steel proves otherwise. The sheer bulk however does make it quite " -"adept at smashing face." -msgstr "" -"Jakiś wariat pomyślał, że nabój .50 BMG nadaje się do pistoletu. Ten " -"masywny kawał stali pokazuje, że nie bardzo. Sama masa powoduje że nadaje " -"się do zdefasonowania twarzy." - -#: lang/json/gun_from_json.py -msgid "M919" -msgid_plural "M919s" -msgstr[0] "M919" -msgstr[1] "M919" -msgstr[2] "M919" -msgstr[3] "M919" - -#: lang/json/gun_from_json.py -msgid "" -"Manufactured by Sarah and Suhl machine company of Portland, Maine, the M919 " -"submachine gun is the most accurate 9x19mm submachine gun on the market. " -"Intended for police use, it is fitted with an integral grenade launcher." -msgstr "" -"Produkowany przez fabrykę maszyn Sarah and Suhl z Portland, Maine, pistolet " -"maszynowy M919 to najbardziej celny PM 9x19mm na rynku. W zamierzeniach był " -"przeznaczony dla policji i jest wyposażony w zintegrowany granatnik." - -#: lang/json/gun_from_json.py -msgid "Eagle 1776" -msgid_plural "Eagle 1776" -msgstr[0] "Eagle 1776" -msgstr[1] "Eagle 1776" -msgstr[2] "Eagle 1776" -msgstr[3] "Eagle 1776" - -#: lang/json/gun_from_json.py -msgid "" -"You see before you a marvel of American engineering: a powerful .44 Magnum " -"submachine gun, made from fine parts assembled in America, including an " -"integral grenade launcher. Eagle 1776: From the arsenal of freedom!" -msgstr "" -"Przed sobą masz cud amerykańskiej inżynierii: pistolet maszynowy na potężne " -"naboje .44 Magnum, zrobiony z doskonałych części wyprodukowanych w Ameryce, " -"i zawierający zintegrowany granatnik. Eagle 1776: Z arsenału wolności!" - -#: lang/json/gun_from_json.py -msgid "L.T. carbine" -msgid_plural "L.T. carbines" +msgid "pipe rifle" +msgid_plural "pipe rifles" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -132532,51 +128736,28 @@ msgstr[3] "" #: lang/json/gun_from_json.py msgid "" -"The Lightning Trail carbine was developed for the riot police to quickly " -"blanket an area with lightning clouds. While damaging, it is less lethal " -"than live ammunition." -msgstr "" -"Karabinek Lightning Trail został opracowany dla policji zwalczającej " -"zamieszki, by szybko pokryć teren elektrycznymi chmurami. Choć zadaje " -"obrażenia, jest mniej śmiertelny niż ostra amunicja." - -#: lang/json/gun_from_json.py -msgid "arc cannon" -msgid_plural "arc cannons" -msgstr[0] "działo łukowe" -msgstr[1] "działo łukowe" -msgstr[2] "działo łukowe" -msgstr[3] "działo łukowe" - -#: lang/json/gun_from_json.py -msgid "" -"The arc cannon fires bolts of lightning arcing between targets in close " -"proximity to each other. Originally manufactured to fry insects, now it’s " -"been turned up to fry zombies." +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." msgstr "" -"Działo łukowe strzela błyskawicami tworzącymi łuki elektryczne pomiędzy " -"blisko stojącymi celami. Pierwotnie opracowany do smażenia owadów, teraz " -"został podkręcony by smażyć zombie." #: lang/json/gun_from_json.py -msgid "M1911 DS" -msgid_plural "M1911 DSs" -msgstr[0] "M1911 DS" -msgstr[1] "M1911 DS" -msgstr[2] "M1911 DS" -msgstr[3] "M1911 DS" +msgid "survivor carbine" +msgid_plural "survivor carbines" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/gun_from_json.py msgid "" -"The M1911 Darkstalker is a very modified M1911, it has a fully integrated " -"crossbow and added rails. Professional looking with a ebony black finish, " -"laced with lime green details. Now they will know why they fear the night." -" Bat hood sold separately." +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than" +" ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." msgstr "" -"M1911 Darkstalker to mocno zmodyfikowany M1911, ze zintegrowaną kuszą i " -"dodanymi szynami montażowymi. Wygląda profesjonalnie z czarnym wykończeniem " -"i zielonymi wykończeniami. Teraz będą wiedzieć dlaczego boją się nocy. " -"Kaptur nietoperza sprzedawany jest osobno." #: lang/json/gun_from_json.py msgid "antique pistol" @@ -132983,39 +129164,6 @@ msgid "" "to reload." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than" -" ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -133288,176 +129436,6 @@ msgstr "" msgid "Fake gun that fires barbed javelins." msgstr "" -#: lang/json/gun_from_json.py -msgid "fire lance" -msgid_plural "fire lances" -msgstr[0] "ognista lanca" -msgstr[1] "ognista lanca" -msgstr[2] "ognista lanca" -msgstr[3] "ognista lanca" - -#: lang/json/gun_from_json.py -msgid "" -"An ancient Chinese spear, with a small tube attached for a charge of " -"gunpowder. While it has an extremely short range, it gives a powerful edge " -"in close combat." -msgstr "" -"Starożytna chińska włócznia z dołączonym małym cylindrem na proch " -"strzelniczy. Choć działa na niezwykle krótki dystans, to zapewnia znaczną " -"przewagę w walce." - -#: lang/json/gun_from_json.py -msgctxt "gun_type_type" -msgid "melee" -msgstr "walka wręcz bronią" - -#: lang/json/gun_from_json.py -msgid "base robogun" -msgid_plural "base roboguns" -msgstr[0] "bazowy robokarabin" -msgstr[1] "bazowy robokarabin" -msgstr[2] "bazowy robokarabin" -msgstr[3] "bazowy robokarabin" - -#: lang/json/gun_from_json.py -msgid "" -"This is a pseudo item for monster attacks. If you see this, it's a bug." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "integral 12 gauge shotgun" -msgid_plural "integral 12 gauge shotguns" -msgstr[0] "Zintegrowana strzelba 12 mm" -msgstr[1] "Zintegrowana strzelba 12 mm" -msgstr[2] "Zintegrowana strzelba 12 mm" -msgstr[3] "Zintegrowana strzelba 12 mm" - -#: lang/json/gun_from_json.py -msgid "integral 50 caliber machinegun" -msgid_plural "integral 50 caliber machineguns" -msgstr[0] "Zintegrowany karabin maszynowy kaliber 50" -msgstr[1] "Zintegrowany karabin maszynowy kaliber 50" -msgstr[2] "Zintegrowany karabin maszynowy kaliber 50" -msgstr[3] "Zintegrowany karabin maszynowy kaliber 50" - -#: lang/json/gun_from_json.py -msgid "integral needle gun" -msgid_plural "integral needle guns" -msgstr[0] "Zintegrowany igłacz" -msgstr[1] "Zintegrowany igłacz" -msgstr[2] "Zintegrowany igłacz" -msgstr[3] "Zintegrowany igłacz" - -#: lang/json/gun_from_json.py -msgid "integral 8mm firearm" -msgid_plural "integral 8mm firearms" -msgstr[0] "Zintegrowana broń 8mm" -msgstr[1] "Zintegrowana broń 8mm" -msgstr[2] "Zintegrowana broń 8mm" -msgstr[3] "Zintegrowana broń 8mm" - -#: lang/json/gun_from_json.py -msgid "integral laser emitter" -msgid_plural "integral laser emitters" -msgstr[0] "Zintegrowany emiter laserowy" -msgstr[1] "Zintegrowany emiter laserowy" -msgstr[2] "Zintegrowany emiter laserowy" -msgstr[3] "Zintegrowany emiter laserowy" - -#: lang/json/gun_from_json.py -msgid "integral railgun" -msgid_plural "integral railguns" -msgstr[0] "Zintegrowany miotacz szynowy" -msgstr[1] "Zintegrowany miotacz szynowy" -msgstr[2] "Zintegrowany miotacz szynowy" -msgstr[3] "Zintegrowany miotacz szynowy" - -#: lang/json/gun_from_json.py -msgid "integral lightning caster" -msgid_plural "integral lightning casters" -msgstr[0] "Zintegrowany miotacz piorunów" -msgstr[1] "Zintegrowany miotacz piorunów" -msgstr[2] "Zintegrowany miotacz piorunów" -msgstr[3] "Zintegrowany miotacz piorunów" - -#: lang/json/gun_from_json.py -msgid "integral EMP generator" -msgid_plural "integral EMP generators" -msgstr[0] "Zintegrowany generator EMP" -msgstr[1] "Zintegrowany generator EMP" -msgstr[2] "Zintegrowany generator EMP" -msgstr[3] "Zintegrowany generator EMP" - -#: lang/json/gun_from_json.py -msgid "atlatl" -msgid_plural "atlatls" -msgstr[0] "atlatl" -msgstr[1] "atlatl" -msgstr[2] "atlatl" -msgstr[3] "atlatl" - -#: lang/json/gun_from_json.py -msgid "" -"A wooden tool for supporting a javelin, to throw it more effectively than by" -" hand." -msgstr "" -"Drewniany przyrząd do miotania oszczepów znacznie efektywniej niż wprost z " -"ręki." - -#: lang/json/gun_from_json.py -msgid "makeshift crossbow" -msgid_plural "makeshift crossbows" -msgstr[0] "improwizowana kusza" -msgstr[1] "improwizowana kusza" -msgstr[2] "improwizowana kusza" -msgstr[3] "improwizowana kusza" - -#: lang/json/gun_from_json.py -msgid "" -"A simple, handmade crossbow of the Skane style, with a wooden peg that is " -"pushed up from underneath to loose the bowstring. Not as powerful as other " -"crossbow designs, but it is easier to draw the bow back. Bolts fired from " -"this weapon have a good chance of remaining intact for re-use." -msgstr "" -"Prosta ręcznie zrobiona kusza w stylu skandynawskim, z drewnianym korkiem " -"wypychanym od spodu w celu zwolnienia cięciwy. Nie tak potężna jak inne " -"modele, lecz łatwiejsza do naciągnięcia. Strzały z niej wystrzelone mają " -"dobrą szansę pozostanie w jednym kawałku i mogą być ponownie użyte." - -#: lang/json/gun_from_json.py -msgid "" -"This is a replica of the bow possessed by Odin, Ichaival, which is rumored " -"to fire 10 arrows with every pull of the string. It has gold and silver " -"ornaments on it." -msgstr "" -"To replika łuku będącego własnością Odyna. Ichaival wg legendy wystrzeliwał " -"10 strzał za każdym naciągnięciem cięciwy. Posiada złote i srebrne " -"ornamenty." - -#: lang/json/gun_from_json.py -msgid "integral nailgun" -msgid_plural "integral nailguns" -msgstr[0] "Zintegrowany pistolet na gwoździe" -msgstr[1] "Zintegrowany pistolet na gwoździe" -msgstr[2] "Zintegrowany pistolet na gwoździe" -msgstr[3] "Zintegrowany pistolet na gwoździe" - -#: lang/json/gun_from_json.py -msgid "mounted crossbow" -msgid_plural "mounted crossbows" -msgstr[0] "zamontowana kusza" -msgstr[1] "zamontowana kusza" -msgstr[2] "zamontowana kusza" -msgstr[3] "zamontowana kusza" - -#: lang/json/gun_from_json.py -msgid "Vortical plasma beam" -msgid_plural "Vortical plasma beams" -msgstr[0] "wirowy miotacz plazmy" -msgstr[1] "wirowy miotacz plazmy" -msgstr[2] "wirowy miotacz plazmy" -msgstr[3] "wirowy miotacz plazmy" - #: lang/json/gun_from_json.py msgid "TEST compound bow" msgid_plural "TEST compound bows" @@ -133467,720 +129445,36 @@ msgstr[2] "" msgstr[3] "" #: lang/json/gun_from_json.py -msgid "30mm autocannon" -msgid_plural "30mm autocannons" -msgstr[0] "autodziało 30mm" -msgstr[1] "autodziało 30mm" -msgstr[2] "autodziało 30mm" -msgstr[3] "autodziało 30mm" - -#: lang/json/gun_from_json.py -msgid "" -"A chain-driven autocannon chambered in 30x113mm, originally designed for " -"aircraft use, but later adapted for armored vehicles. Obviously it needs to" -" be mounted on a vehicle to fire." -msgstr "" -"Łańcuchowe działo automatyczne w kalibrze 30x113mm, pierwotnie " -"zaprojektowane do samolotów, a później zaadoptowane do pojazdów " -"opancerzonych. Z oczywistych względów musi być zamontowane na pojeździe by " -"strzelać." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "120mm tank gun" -msgid_plural "120mm tank guns" -msgstr[0] "120mm armata czołgowa" -msgstr[1] "120mm armata czołgowa" -msgstr[2] "120mm armata czołgowa" -msgstr[3] "120mm armata czołgowa" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " -"to fire." -msgstr "" -"120mm armata z czołgu. Z oczywistych względów wymaga montażu na pojeździe." - -#: lang/json/gun_from_json.py -msgid "120mm autoloading tank gun" -msgid_plural "120mm autoloading tank guns" -msgstr[0] "120mm samoładująca armata czołgowa " -msgstr[1] "120mm samoładująca armata czołgowa " -msgstr[2] "120mm samoładująca armata czołgowa " -msgstr[3] "120mm samoładująca armata czołgowa " - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"120mm armata z czołgu z automatyczna ładownicą na 5 pocisków. Z oczywistych " -"względów wymaga montażu na pojeździe." - -#: lang/json/gun_from_json.py -msgid "120mm remote weapon system" -msgid_plural "120mm remote weapon systems" -msgstr[0] "120mm zdalny system obronny" -msgstr[1] "120mm zdalny system obronny" -msgstr[2] "120mm zdalny system obronny" -msgstr[3] "120mm zdalny system obronny" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon with an advanced autoloader, designed to operate via remote " -"control. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"120mm działo z zaawansowaną ładownicą, zaprojektowane do zdalnego " -"sterowania. Z oczywistych względów wymaga montażu na pojeździe." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "155mm howitzer" -msgid_plural "155mm howitzers" -msgstr[0] "155mm działo artyleryjskie" -msgstr[1] "155mm działo artyleryjskie" -msgstr[2] "155mm działo artyleryjskie" -msgstr[3] "155mm działo artyleryjskie" - -#: lang/json/gun_from_json.py -msgid "" -"A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"155mm działo zaprojektowane do stacjonarnej i mobilnej artylerii. Z " -"oczywistych względów wymaga montażu na pojeździe." - -#: lang/json/gun_from_json.py -msgid "Vehicular ATGM Launcher" -msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "Zmotoryzowana wyrzutnia ATGM" -msgstr[1] "Zmotoryzowana wyrzutnia ATGM" -msgstr[2] "Zmotoryzowana wyrzutnia ATGM" -msgstr[3] "Zmotoryzowana wyrzutnia ATGM" - -#: lang/json/gun_from_json.py -msgid "" -"A launcher for anti-tank guided missiles. While highly accurate, it isn't " -"fire-and-forget. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"Wyrzutnia przeciwczołgowych sterowanych rakiet. Celna, ale nie jest typu " -"wystrzel-i-zapomnij. Z oczywistych względów wymaga montażu na pojeździe." - -#: lang/json/gun_from_json.py -msgid "slingshot cannon" -msgid_plural "slingshot cannons" -msgstr[0] "działo-proca" -msgstr[1] "działo-proca" -msgstr[2] "działo-proca" -msgstr[3] "działo-proca" - -#: lang/json/gun_from_json.py -msgid "" -"Essentially several long drawstrings held by two long, reinforced sides and " -"a mechanism attached to a crank to draw and fire it. It's deceptively " -"powerful and surprisingly accurate, but far too large to be used without " -"some sort of stable platform." -msgstr "" -"W zasadzie jest to kilka długich rozciągliwych rzemieni utrzymywanych na " -"dwóch długich wzmacnianych bokach, z dołączonym mechanizmem naciągowym i " -"spustowym. Zaskakująco zabójcza i celna, ale zbyt duża by używać jej bez " -"stabilnej podstawy montażowej." - -#: lang/json/gun_from_json.py -msgid "lacerator" -msgid_plural "lacerators" -msgstr[0] "okaleczacz" -msgstr[1] "okaleczacz" -msgstr[2] "okaleczacz" -msgstr[3] "okaleczacz" - -#: lang/json/gun_from_json.py -msgid "" -"This weapon launches serrated metal disks at nearby enemies. It draws its " -"power from a vehicle's engines, and thus must be mounted on such in order to" -" be operated." -msgstr "" -"Ta broń miota we wrogów ząbkowane metalowe dyski. Czerpie swą moc z silników" -" pojazdów, musi zatem być montowana na jakimś, by działać." - -#: lang/json/gun_from_json.py -msgid "rotary cannon" -msgid_plural "rotary cannons" -msgstr[0] "obrotowe działko" -msgstr[1] "obrotowe działko" -msgstr[2] "obrotowe działko" -msgstr[3] "obrotowe działko" - -#: lang/json/gun_from_json.py -msgid "" -"This fearsome weapon sports 3 barrels in a cyclic configuration. A " -"specialized mechanism loads the otherwise troublesome rounds; allowing it to" -" be fired in quick succession. However, this renders it incredibly " -"unwieldy, and it must be mounted on a support structure in order to be " -"fired." -msgstr "" -"Ta przerażająca broń posiada trzy obrotowe lufy. Wyspecjalizowany mechanizm " -"zasila je w naboje które trudno byłoby ładować ręcznie, pozwalając na wysoką" -" szybkostrzelność. To czyni ją bardzo nieporęczną i musi być zamontowana na " -"podstawie by jej używać." - -#: lang/json/gun_from_json.py -msgid "laser cannon" -msgid_plural "laser cannons" -msgstr[0] "działo laserowe" -msgstr[1] "działo laserowe" -msgstr[2] "działo laserowe" -msgstr[3] "działo laserowe" - -#: lang/json/gun_from_json.py -msgid "" -"This enhanced laser cannon sacrifices efficiency for destructive power. The" -" increased power requirements require a significant power source and the " -"size of the firing mechanism also requires support." -msgstr "" -"To wzmocnione działo laserowe poświęca efektywność dla mocy niszczącej. " -"Zwiększone zapotrzebowanie na moc zasilającą wymaga znacznego źródła mocy, a" -" rozmiar mechanizmu strzelającego wymaga podparcia." - -#: lang/json/gun_from_json.py -msgid "pulse laser" -msgid_plural "pulse lasers" -msgstr[0] "laser pulsacyjny" -msgstr[1] "laser pulsacyjny" -msgstr[2] "laser pulsacyjny" -msgstr[3] "laser pulsacyjny" - -#: lang/json/gun_from_json.py -msgid "" -"Augmented damage capability and rapid bursts make this a powerful weapon. " -"The increased power requirements require a significant power source and the " -"firing mechanism also requires a specialized chassis." -msgstr "" -"Wzmocniona siła rażenia i szybkie serie czynią z niego potężną broń. " -"Zwiększone zapotrzebowanie na moc zasilającą wymaga znacznego źródła mocy, a" -" mechanizm strzelającego wymaga specjalnej obudowy." - -#: lang/json/gun_from_json.py -msgid "turbolaser cannon" -msgid_plural "turbolaser cannons" -msgstr[0] "działo turbolaserowe" -msgstr[1] "działo turbolaserowe" -msgstr[2] "działo turbolaserowe" -msgstr[3] "działo turbolaserowe" - -#: lang/json/gun_from_json.py -msgid "" -"With an augmented emitter and capacitor, this mounted laser is capable of " -"superheating most materials to the point of exploding. The firing mechanism" -" also requires the services of a specialized chassis, and one must be wary " -"of the prodigious power needs of such a weapon." -msgstr "" -"Ze wzmocnionym emiterem i kondensatorem, to montowane działo laserowe może " -"przegrzać większość materiałów do punktu wybuchu. Mechanizm strzelający " -"wymaga specjalnej obudowy, i należy wziąć pod uwagę kolosalne " -"zapotrzebowanie mocy tej broni." - -#: lang/json/gun_from_json.py -msgid "ripper" -msgid_plural "rippers" -msgstr[0] "rozrywacz" -msgstr[1] "rozrywacz" -msgstr[2] "rozrywacz" -msgstr[3] "rozrywacz" - -#: lang/json/gun_from_json.py -msgid "" -"This menacing weapon rapidly launches bladed disks that rips through enemies" -" with devastating effect. It draws its power from a vehicle's engines, and " -"thus must be mounted on such in order to be operated." -msgstr "" -"Ta straszliwa broń gwałtownie miota we wrogów ząbkowane metalowe dyski, " -"rozrywające wrogów z dewastującą siłą. Czerpie moc z silników pojazdów, musi" -" zatem być na jakimś zamontowana, by działać." - -#: lang/json/gun_from_json.py -msgid "scorpion ballista" -msgid_plural "scorpion ballistae" +msgid "Test Glock" +msgid_plural "Test Glocks" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: lang/json/gun_from_json.py -msgid "" -"A massive tension-operated crossbow. The hand-crank allows one to draw it " -"without the need for heavy labor. It's far too massive to be used on foot, " -"and thus needs to be mounted on a vehicle in order to be operated." -msgstr "" -"Masywna kusza używająca ręcznego naciągu, który jednocześnie nie wymaga " -"wielkiego wysiłku i pracy. Zbyt duża by używać jej na nogach, i musi być " -"zamontowana na pojeździe." - -#: lang/json/gun_from_json.py -msgid "harpoon gun" -msgid_plural "harpoon guns" -msgstr[0] "miotacz harpunów" -msgstr[1] "miotacz harpunów" -msgstr[2] "miotacz harpunów" -msgstr[3] "miotacz harpunów" - -#: lang/json/gun_from_json.py -msgid "" -"A tension-operated speargun. A hand-crank lets one draw the strings " -"quickly, but it's too unwieldy to handle without a support of some sort." -msgstr "" -"Napędzany naciągiem miotacz harpunów. Ręczny mechanizm naciągowy pozwala " -"szybko naciągnąć cięciwy, ale jego rozmiar czyni go zbyt nieporęcznym by " -"używać bez podstawy." - -#: lang/json/gun_from_json.py -msgid "tesla cannon" -msgid_plural "tesla cannons" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/gun_from_json.py -msgid "" -"This alteration of the Chain Lightning bionic fires artificial lightning " -"bolts that arc to nearby enemies. It must be attached to a large power " -"source, but it allows for much more powerful bolts." -msgstr "" -"Ta odmiana bioniki miotającej łuki elektryczne także miota pioruny, które " -"rozdzielając się rażąc pobliskich wrogów. Musi być podpięty pod silne źródło" -" zasilania, ale pozwala to na znacznie silniejsze pioruny." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "biting blob" -msgid_plural "biting blobs" -msgstr[0] "gryzący glut" -msgstr[1] "gryzący glut" -msgstr[2] "gryzący glut" -msgstr[3] "gryzący glut" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. It has evolved the ability to constantly " -"generate calcified protrusions which are then controlled by sinuous tensile " -"strands. These \"teeth\" can then be used to latch and wound anything " -"unfortunate enough to be nearby. The outer membrane has also become " -"significantly thicker in order to support its more strenuous movement; " -"though it seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel shooter" -msgid_plural "gel shooters" -msgstr[0] "żelostrzał" -msgstr[1] "żelostrzał" -msgstr[2] "żelostrzał" -msgstr[3] "żelostrzał" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It trawls the ground for " -"material, which it then strips of nutrition. The remainder is then expelled" -" out at significant velocity towards any nearby threats. The amorphous mass" -" can be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it. It seems pliable enough to pull apart…" -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Przeszukuje ziemię w poszukiwaniu " -"materiału, który odziera ze składników odżywczych. Pozostałości są " -"wystrzeliwane ze znaczną prędkością w kierunku pobliskich zagrożeń. " -"Amorficzna masa może być kształtowana i przyłączana dotykiem, ale broń jest " -"bierna sama z siebie bez czegoś co, by ją kontrolowało. Wygląda na tyle " -"ciągliwe, by ją rozdzielić." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "frost lancer" -msgid_plural "frost lancers" -msgstr[0] "mroźny lansjer" -msgstr[1] "mroźny lansjer" -msgstr[2] "mroźny lansjer" -msgstr[3] "mroźny lansjer" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A biological aberration " -"that exists at sub-zero temperatures. After filtering nutrients from the " -"water, it freezes the remainder into an incredibly sharp spear of ice; which" -" it then launches at nearby threats. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." +msgid "A handgun for testing, based on the Glock 9mm." msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Biologiczne dziwactwo żyjące w " -"temperaturze poniżej zera. Po odfiltrowaniu składników z wody zamraża ją w " -"oszczep który wystrzeliwuje w w kierunku pobliskich zagrożeń. Amorficzna " -"masa może być kształtowana i przyłączana dotykiem, ale broń jest bierna sama" -" z siebie bez czegoś co by ją kontrolowało. Wygląda na tyle ciągliwe by ją " -"rozdzielić." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "snapping ooze" -msgid_plural "snapping oozes" -msgstr[0] "glut kłapacz" -msgstr[1] "glut kłapacz" -msgstr[2] "glut kłapacz" -msgstr[3] "glut kłapacz" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A baffling mutation in an " -"already baffling creature, this blob is encased in a thick coat of fur, " -"which serves as a form of protection. In addition, it is capable of " -"projecting rows of calcified sharp fragments in a manner mimicking the jaw " -"of a more recognizable creature. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Zaskakująca mutacja w zaskakującym " -"stworzeniu. Ten glut otoczony jest grubą warstwą futra służącego za pancerz." -" W dodatku potrafi wysunąć rzędy zwapniałych ostrych fragmentów w sposób " -"przypominający paszcze bardziej rozpoznawalnych stworzeń. Amorficzna masa " -"może być kształtowana i przyłączana dotykiem, ale broń jest bierna sama z " -"siebie bez czegoś co by ją kontrolowało." -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "blobsaw" -msgid_plural "blobsaws" -msgstr[0] "glut piła" -msgstr[1] "glut piła" -msgstr[2] "glut piła" -msgstr[3] "glut piła" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. While its simpler cousins have a limit to " -"the number of keratinous protrusions they can project and control; this blob" -" can utilize hundreds of these sharp fangs to shred anything it detects as a" -" threat into unrecognizable ribbons. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń; zaprojektowany do rozciągnięcia na " -"ramie jako bariera. Podczas gdy jego prostsi kuzyni posiadają limit liczby " -"keratynowych wypustek które mogą wytworzyć i kontrolować, ten glut może mieć" -" ich setki i używa ich by rozedrzeć na nierozpoznawalne strzępy wszystko co " -"rozpozna jako zagrożenie. Amorficzna masa może być kształtowana i " -"przyłączana dotykiem, ale broń jest bierna sama z siebie bez czegoś co by ją" -" kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fuel puffer" -msgid_plural "fuel puffers" -msgstr[0] "paliwowa purchawka" -msgstr[1] "paliwowa purchawka" -msgstr[2] "paliwowa purchawka" -msgstr[3] "paliwowa purchawka" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digestion process turns the " -"result incredibly viscous which, when threats come near, is launched; " -"ensnaring anything it hits. The amorphous mass can be shaped and attached " -"at your touch, but the weapon itself is inert without something to control " -"it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Raczej wybredny żarłok żywiący się " -"chemią zawartą w benzynie. Proces trawienny zmienia paliwo w lepką smołę, " -"która jest wystrzeliwana gdy zbliża się zagrożenie, usidlając wszystko w co " -"trafi. Amorficzna masa może być kształtowana i przyłączana dotykiem, ale " -"broń jest bierna sama z siebie bez czegoś co by ją kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "acid puffer" -msgid_plural "acid puffers" -msgstr[0] "kwasowa purchawka" -msgstr[1] "kwasowa purchawka" -msgstr[2] "kwasowa purchawka" -msgstr[3] "kwasowa purchawka" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, the " -"digestion process produces highly acidic byproducts; which is then expelled " -"at any nearby enemies. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Flirtujący wszystkożerca, który w " -"procesie trawiennym wytwarza wysoce kwasowe produkty uboczne, które " -"następnie wyrzuca na pobliskich wrogów. Amorficzna masa może być " -"kształtowana i przyłączana dotykiem, ale broń jest bierna sama z siebie bez " -"czegoś co by ją kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spiker" -msgid_plural "gel spikers" -msgstr[0] "żelowy kolcarz" -msgstr[1] "żelowy kolcarz" -msgstr[2] "żelowy kolcarz" -msgstr[3] "żelowy kolcarz" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Capable of calcifying large" -" numbers of fang-like fragments within itself. It hurls groups of these " -"fragments along with a small portion of itself. When it reaches its " -"destination, the detached remains shoot these fragments in all directions, " -"expiring in the process. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Zdolny do wytworzenia wewnątrz " -"siebie znacznych ilości zwapniałych zębatych fragmentów, które następnie " -"ciągnie za sobą wraz z małym fragmentem siebie. Gdy osiągnie miejsce " -"docelowe, odłączone resztki wybuchają we wszystkich kierunkach, znikając " -"jednocześnie. Amorficzna masa może być kształtowana i przyłączana dotykiem, " -"ale broń jest bierna sama z siebie bez czegoś co by ją kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spouter" -msgid_plural "gel spouters" -msgstr[0] "żelowy tryskacz" -msgstr[1] "żelowe tryskacze" -msgstr[2] "żelowych tryskaczy" -msgstr[3] "żelowego tryskacza" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It can suck in water from a" -" vehicle tank, and forcibly expel it in a wide cone. The amorphous mass can" -" be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it." -msgstr "" -"Żyjący glut zmieniony w autonomiczną broń. Może ssać wodę ze zbiornika " -"pojazdu i siłą wyrzucać ją w szerokim stożku. Amorficzna masa może zostać " -"ukształtowana i mocowana za dotknięciem, ale broń sama w sobie nie nie robi " -"bez czegoś co będzie ją kontrolować." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel lancer" -msgid_plural "gel lancers" -msgstr[0] "żelowy lansjer" -msgstr[1] "żelowy lansjer" -msgstr[2] "żelowy lansjer" -msgstr[3] "żelowy lansjer" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Evolving incredible " -"abilities of perception, it is capable of locating and discerning possible " -"threats within a large radius. When a potential threat is located, it fires" -" a small, calcified projectile with incredible speed and accuracy. The " -"amorphous mass can be shaped and attached at your touch, but the weapon " -"itself is inert without something to control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Wyewoluował niezwykłą percepcję i " -"jest zdolny zlokalizować i rozpoznać potencjalne zagrożenia w dużym " -"promieniu. Po zlokalizowaniu zagrożenia wystrzeliwuje mały zwapniały pocisk " -"z wielką siłą i celnością. Amorficzna masa może być kształtowana i " -"przyłączana dotykiem, ale broń jest bierna sama z siebie bez czegoś co by ją" -" kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel razor" -msgid_plural "gel razors" -msgstr[0] "żelowa brzytwa" -msgstr[1] "żelowa brzytwa" -msgstr[2] "żelowa brzytwa" -msgstr[3] "żelowa brzytwa" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. An enhanced metabolism " -"allows it to calcify large, toothy discs which are then launched towards any" -" nearby threats. The amorphous mass can be shaped and attached at your " -"touch, but the weapon itself is inert without something to control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Ulepszony metabolizm pozwala mu na " -"zwapnienie dużych zębatych dysków którymi miota w kierunku pobliskich " -"zagrożeń. Amorficzna masa może być kształtowana i przyłączana dotykiem, ale " -"broń jest bierna sama z siebie bez czegoś co by ją kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock bulb" -msgid_plural "shock bulbs" -msgstr[0] "szokowa kula" -msgstr[1] "szokowa kula" -msgstr[2] "szokowa kula" -msgstr[3] "szokowa kula" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Shockingly, it somehow is " -"able to project electricity, which it then discharges at any nearby threats." -" The amorphous mass can be shaped and attached at your touch, but the " -"weapon itself is inert without something to control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Szokujące, że jakoś potrafi " -"emitować elektryczność, którą razi pobliskie zagrożenia. Amorficzna masa " -"może być kształtowana i przyłączana dotykiem, ale broń jest bierna sama z " -"siebie bez czegoś co by ją kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel puffer" -msgid_plural "gel puffers" -msgstr[0] "żelowa purchawka" -msgstr[1] "żelowa purchawka" -msgstr[2] "żelowa purchawka" -msgstr[3] "żelowa purchawka" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, it strips " -"any water it processes of nutrients and expels the remainder towards any " -"nearby threats. The process of filter-feeding also makes the remaining " -"liquid viscous, though it also dissipates fairly quickly. The amorphous " -"mass can be shaped and attached at your touch, but the weapon itself is " -"inert without something to control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Flirtujący wszystkożerca, który " -"odsącza z wody składniki odżywcze, a resztę wypluwa w kierunku pobliskich " -"zagrożeń. Proces filtracji żywienia ponadto powoduje lepkość pozostającego " -"płynu, który jednak szybko się ulatania. Amorficzna masa może być " -"kształtowana i przyłączana dotykiem, ale broń jest bierna sama z siebie bez " -"czegoś co by ją kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fire puffer" -msgid_plural "fire puffers" -msgstr[0] "ognista purchawka" -msgstr[1] "ognista purchawka" -msgstr[2] "ognista purchawka" -msgstr[3] "ognista purchawka" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digested material is still " -"highly flammable, and when launched, also activates an ignition gland " -"located on the outer membrane. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Raczej wybredny żarłok żywiący się " -"chemią zawartą w benzynie. Strawiony materiał jest nadal wysoce palny i " -"wypluty uruchamia gruczoł zapłonu na zewnętrznej membranie. Amorficzna masa " -"może być kształtowana i przyłączana dotykiem, ale broń jest bierna sama z " -"siebie bez czegoś co by ją kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "spark blight" -msgid_plural "spark blights" -msgstr[0] "iskrząca plaga" -msgstr[1] "iskrząca plaga" -msgstr[2] "iskrząca plaga" -msgstr[3] "iskrząca plaga" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It is capable of storing " -"energy from sunlight inside itself in the form of electricity. Then, in a " -"truly baffling show of force, projects a highly concentrated stream of " -"electricity towards any possible threats. The amorphous mass can be shaped " -"and attached at your touch, but the weapon itself is inert without something" -" to control it." -msgstr "" -"Żywy glut zmieniony w autonomiczną broń. Jest zdolny gromadzić energię " -"słoneczna w postaci elektryczności w swoim ciele. Następnie w zaskakującym " -"pokazie siły miota wysoce skoncentrowane strumienie elektryczne w kierunku " -"potencjalnych zagrożeń. Amorficzna masa może być kształtowana i przyłączana " -"dotykiem, ale broń jest bierna sama z siebie bez czegoś co by ją " -"kontrolowało." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond lance" -msgid_plural "diamond lances" -msgstr[0] "diamentowa lanca" -msgstr[1] "diamentowa lanca" -msgstr[2] "diamentowa lanca" -msgstr[3] "diamentowa lanca" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst; thus a pre-" -"shaped lump of carbon is brought into contact with the matrix, immediately " -"crystallized and launched just as quickly. The launcher requires a " -"specialized chassis in order to be brought to bear on its unfortunate " -"targets." -msgstr "" -"Broń równie imponująca jak zabójcza. Diamentowa matryca w centrum służy za " -"katalizator, gwałtownie zmieniając oparte na węglu materiały w krystaliczną " -"substancję która jest prawie równa diamentom w twardości. Substancja " -"gwałtownie rozkłada się gdy oderwana do katalizatora. Zatem wstępnie " -"ukształtowana masa węgla jest łączona z matrycą, gdzie natychmiast " -"krystalizuje się i jest wystrzeliwana równie szybko. Wyrzutnia wymaga " -"specjalnej obudowy by można jej użyć do ostrzeliwania niefortunnych celów." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond nova" -msgid_plural "diamond novae" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst, and at sizes " -"as large as the projectile used, also rapidly decays when in contact with " -"other matter. Thus the projectile is held and launched by the use of " -"pressurized air from a vortex stone. Upon striking its target, the " -"projectile undergoes explosive decomposition; shattering into a brilliant " -"burst of diamond fragments." -msgstr "" -"Broń równie imponująca jak zabójcza. Diamentowa matryca w centrum służy za " -"katalizator, gwałtownie zmieniając oparte na węglu materiały w krystaliczną " -"substancję która jest prawie równa diamentom w twardości. Substancja " -"gwałtownie rozkłada się gdy oderwana do katalizatora, a przy rozmiarze tak " -"dużym jak używane pociski, take rozkłada się w kontakcie z inną materią. Z " -"uwagi na to pocisk jest wystrzeliwany sprężonym powietrzem z kamienia wiru. " -"Po trafieniu pocisk przechodzi proces wybuchowego rozkładu, rozpryskując się" -" w połyskliwą chmurę diamentowych odłamków." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex accelerator" -msgid_plural "vortex accelerators" -msgstr[0] "akcelerator wiru" -msgstr[1] "akcelerator wiru" -msgstr[2] "akcelerator wiru" -msgstr[3] "akcelerator wiru" +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" +msgstr[0] "strzelba rurowa spluwy kombinowanej" +msgstr[1] "strzelba rurowa spluwy kombinowanej" +msgstr[2] "strzelba rurowa spluwy kombinowanej" +msgstr[3] "strzelba rurowa spluwy kombinowanej" -#: lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py msgid "" -"This weapon uses powerful bursts of air to launch sharp fragments at its " -"target at high speed. You'll need some form of platform to mount it on." +"The integrated underbarrel shotgun of a pipe combination gun which holds two" +" shots. It's irremovable." msgstr "" -"Ta broń wykorzystuje potężne podmuchy powietrza do wystrzeliwania ostrych " -"odłamków z wielką prędkością w kierunku celów. Potrzebujesz platformy, na " -"której możesz ją zamontować." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex cannon" -msgid_plural "vortex cannons" -msgstr[0] "działo wiru" -msgstr[1] "działo wiru" -msgstr[2] "działo wiru" -msgstr[3] "działo wiru" +"Zintegrowana podlufowa strzelba rurowa broni kombinowanej, która mieści dwa " +"naboje. Jest nieusuwalna." -#: lang/json/gun_from_json.py -msgid "" -"Essentially a large pneumatic gun made to hurl sharpened metal rails. " -"Instead of a mechanical system, you've managed to harness the vortex to " -"power this gun. While powerful for its size, you'll need some form of " -"platform to mount it on." -msgstr "" -"W zasadzie jest to duża broń pneumatyczna do miotania zaostrzonych " -"metalowych szyn. W miejsce mechanicznych systemów, zdołałeś zaprząc wir do " -"napędzania tej broni. Choć potężna jak na swój rozmiar, ale potrzeba ją " -"zamocować na jakiejś platformie." +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "podlufowe" #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -134503,10 +129797,6 @@ msgstr "" "Ten produkowany na zamówienie miniaturowy miotacz ognia można przyłączyć do " "niema każdej broni palnej, znacznie zwiększając jej zabójczość." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "podlufowe" - #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" @@ -134931,6 +130221,21 @@ msgstr "" "tak dobrej jak fabryczne części trybu automatycznego, więc precyzja i " "niezawodność nieco ucierpią." +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -135820,20 +131125,24 @@ msgstr "" "Jest nieusuwalna." #: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" -msgstr[0] "strzelba rurowa spluwy kombinowanej" -msgstr[1] "strzelba rurowa spluwy kombinowanej" -msgstr[2] "strzelba rurowa spluwy kombinowanej" -msgstr[3] "strzelba rurowa spluwy kombinowanej" +msgid "factory handguard" +msgid_plural "factory handguards" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/gunmod_from_json.py msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two" -" shots. It's irremovable." +"A removable molded grip that comes standard on guns without rails. It's not" +" as efficient as a proper forward grip or bipod at controlling recoil, but " +"it's better than nothing." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "fs2000" msgstr "" -"Zintegrowana podlufowa strzelba rurowa broni kombinowanej, która mieści dwa " -"naboje. Jest nieusuwalna." #: lang/json/gunmod_from_json.py msgid "forward grip" @@ -136350,100 +131659,6 @@ msgid "" "powerful, but good enough for tight hallways." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "5.45 caliber conversion kit" -msgid_plural "5.45 caliber conversion kits" -msgstr[0] "zestaw do konwersji 5.45" -msgstr[1] "zestaw do konwersji 5.45" -msgstr[2] "zestaw do konwersji 5.45" -msgstr[3] "zestaw do konwersji 5.45" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " -"results in slight reductions to recoil." -msgstr "" -"Ten zestaw konwertuje karabin kalibru 6.54 na kaliber 5.45. Konwersja " -"skutkuje nieco zmniejszonym odrzutem." - -#: lang/json/gunmod_from_json.py -msgid "6.54 caliber conversion kit" -msgid_plural "6.54 caliber conversion kits" -msgstr[0] "zestaw do konwersji 6.54" -msgstr[1] "zestaw do konwersji 6.54" -msgstr[2] "zestaw do konwersji 6.54" -msgstr[3] "zestaw do konwersji 6.54" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Ten zestaw konwertuje karabin kalibru 5.45 na kaliber 6.54. Konwersja " -"skutkuje nieco zwiększonym odrzutem." - -#: lang/json/gunmod_from_json.py -msgid "7.62 caliber conversion kit" -msgid_plural "7.62 caliber conversion kits" -msgstr[0] "zestaw do konwersji 7.62" -msgstr[1] "zestaw do konwersji 7.62" -msgstr[2] "zestaw do konwersji 7.62" -msgstr[3] "zestaw do konwersji 7.62" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Ten zestaw konwertuje karabin kalibru 6.54 na kaliber 7.62. Konwersja " -"skutkuje zwiększonym odrzutem." - -#: lang/json/gunmod_from_json.py -msgid "Flaregun conversion kit" -msgid_plural "Flaregun conversion kits" -msgstr[0] "zestaw do konwersji pistoletu na flary" -msgstr[1] "zestaw do konwersji pistoletu na flary" -msgstr[2] "zestaw do konwersji pistoletu na flary" -msgstr[3] "zestaw do konwersji pistoletu na flary" - -#: lang/json/gunmod_from_json.py -msgid "" -"Replacing several key parts flaregun to convert it to a .40 firearm. The " -"conversion results in reduced accuracy and increased recoil." -msgstr "" -"Wymieniając kilka kluczowych części pistoletu na flary przystosowuje go do " -"amunicji 40mm. Konwersja skutkuje redukcją celności i zwiększonym odrzutem." - -#: lang/json/gunmod_from_json.py -msgid "" -"This genuine Herostratus flamethrower is ideal for light brush clearing and " -"self-defense." -msgstr "" -"Ten oryginalny miotacz ognia Herostratus jest idealny do oczyszczania " -"krzaków i samoobrony." - -#: lang/json/gunmod_from_json.py -msgid "E.M.A.S." -msgid_plural "E.M.A.S.s" -msgstr[0] "E.M.A.S." -msgstr[1] "E.M.A.S." -msgstr[2] "E.M.A.S." -msgstr[3] "E.M.A.S." - -#: lang/json/gunmod_from_json.py -msgid "" -"ElectroMagnetic Acceleration System is an array of electromagnets attached " -"to the front of the barrel, accelerating any projectile fired to even higher" -" velocities, increasing damage, recoil and reducing accuracy. It does " -"however drain UPS charges when firing and due to extensive modifications the" -" gun can no longer operate without a UPS." -msgstr "" -"ElektroMagnetyczny System Akceleracji to matryca elektromagnesów dołączana " -"do frontu lufy, przyspieszająca każdy wystrzeliwany pocisk do nawet " -"większych prędkości, zwiększając siłę rażenia, odrzut i zmniejszając " -"celność. Jednakże zużywa ładunki z UPS-a podczas strzelania a z uwagi na " -"rozległość modyfikacji broń nie będzie działać bez UPS'a." - #: lang/json/gunmod_from_json.py msgid "underbarrel launcher" msgid_plural "underbarrel launchers" @@ -136558,40 +131773,16 @@ msgid "" msgstr "" #: lang/json/gunmod_from_json.py -msgid "makeshift pistol bayonet" -msgid_plural "makeshift pistol bayonets" -msgstr[0] "prowizoryczny bagnet pistoletowy" -msgstr[1] "prowizoryczny bagnet pistoletowy" -msgstr[2] "prowizoryczny bagnet pistoletowy" -msgstr[3] "prowizoryczny bagnet pistoletowy" - -#: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a bayonet meant for a pistol that consists of a mere " -"spike with some string. It still makes a decent melee weapon in a pinch " -"when attached to a pistol." -msgstr "" -"Improwizowana wersja bagnetu, złożona jedynie z ostrego pręta i kawałka " -"sznurka. To nadal niezła broń do walki wręcz w potrzebie gdy przyłączona do " -"pistoletu." - -#: lang/json/gunmod_from_json.py -msgid "makeshift sword bayonet" -msgid_plural "makeshift sword bayonets" -msgstr[0] "improwizowany bagnet-miecz" -msgstr[1] "improwizowany bagnet-miecz" -msgstr[2] "improwizowany bagnet-miecz" -msgstr[3] "improwizowany bagnet-miecz" +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a sword bayonet that consists of a salvaged blade " -"with some string. It still makes a good melee weapon providing reach " -"attacks when attached to long arm or crossbow." +msgid "Gun suppressor mod for testing." msgstr "" -"Improwizowana wersja długiego bagnetu, złożona jedynie z odzyskanego ostrza " -"i kawałka sznurka. To nadal niezła broń do walki wręcz zapewniająca ataki " -"zasięgowe gdy przyłączona do broni długiej lub kuszy." #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" @@ -136637,18 +131828,15 @@ msgid "" "they are something else." msgstr "" -#: lang/json/harvest_from_json.py -msgid "You butcher the fallen zombie and hack off its head" -msgstr "Rozcinasz padłego zombie i odcinasz mu głowe." - #: lang/json/help_from_json.py msgid ": Introduction" msgstr ": Wstęp" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future" +" looks pretty grim." msgstr "" #: lang/json/help_from_json.py @@ -136661,11 +131849,12 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are" +" exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." @@ -136673,15 +131862,11 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help" +" you survive." msgstr "" -"Podczas gdy Kataklizm ma znacznie więcej rzeczy na które należy zwracać " -"uwagę niż inne roguelike-i, to miejsce akcji osadzone w niedalekiej " -"przyszłości czyni pewne rzeczy łatwiejszymi. Broń palna, leki i szeroki " -"zestaw narzędzi są ci dostępne jako pomoc w przetrwaniu." #: lang/json/help_from_json.py msgid ": Movement" @@ -138355,10 +133540,6 @@ msgstr "Pisz na przedmiocie" msgid "Cauterize a wound" msgstr "Kauteryzuj ranę" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "Stwórz niewolnika zombie" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "Rozpocznij odliczanie" @@ -138683,10 +133864,6 @@ msgstr "Sprawdź informacje pogodowe" msgid "Reload" msgstr "Przeładuj" -#: lang/json/item_action_from_json.py -msgid "Store/unload ammo" -msgstr "Składuj/rozładuj amunicję" - #: lang/json/item_action_from_json.py msgid "Make some noise" msgstr "Narób hałasu" @@ -139890,6 +135067,18 @@ msgstr "Przełącz amunicję" msgid "Switch Firing Mode" msgstr "Przełącz Tryb Strzelania" +#: lang/json/keybinding_from_json.py +msgid "Toggle turret lines" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "Przełącz Przyciąganie do Celu" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "Wybierz" @@ -139922,10 +135111,6 @@ msgstr "Pokaż rozszerzony opis" msgid "Travel to destination" msgstr "Podróżuj do celu" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "Przełącz Przyciąganie do Celu" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "Wycentruj na postaci" @@ -140142,6 +135327,10 @@ msgstr "Dalekie przesunięcie w dół" msgid "Toggle category selection mode" msgstr "Przełącz tryb wyboru kategorii" +#: lang/json/keybinding_from_json.py +msgid "Toggle inventory view to show item categories" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Set item filter" msgstr "Ustaw filtr przedmiotów" @@ -140367,7 +135556,6 @@ msgid "Disassemble items" msgstr "Rozmontuj Przedmioty" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "Śpij" @@ -140591,7 +135779,7 @@ msgstr "Menadżer kolorów" msgid "Active World Mods" msgstr "Aktywne Mody Świata" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "" @@ -140885,6 +136073,30 @@ msgstr "" msgid "Describe terrain" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "Powrót" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" msgstr "Kontroluj wiele elektronik" @@ -141037,7 +136249,7 @@ msgstr "Ustaw tryb celowania wieżyczek" msgid "Nothing" msgstr "Nic" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "" @@ -141046,7 +136258,7 @@ msgstr "" msgid "Crater" msgstr "" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "" @@ -141055,7 +136267,7 @@ msgstr "" msgid "College Kids" msgstr "" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "" @@ -141064,7 +136276,7 @@ msgstr "" msgid "Drug Deal" msgstr "" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "" @@ -141073,7 +136285,7 @@ msgstr "" msgid "Roadworks" msgstr "" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "" @@ -141082,7 +136294,7 @@ msgstr "" msgid "Road Mayhem" msgstr "" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "" @@ -141091,7 +136303,7 @@ msgstr "" msgid "Roadblock (Military)" msgstr "" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "" @@ -141100,7 +136312,7 @@ msgstr "" msgid "Roadblock (Bandits)" msgstr "" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "" @@ -141109,7 +136321,7 @@ msgstr "" msgid "Minefield" msgstr "" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "" @@ -141118,17 +136330,17 @@ msgstr "" msgid "Supply Drop" msgstr "" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "" -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" msgstr "Wojskowy" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "" @@ -141137,7 +136349,7 @@ msgstr "" msgid "Helicopter Crash" msgstr "Rozbity Helikopter" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "" @@ -141146,7 +136358,7 @@ msgstr "" msgid "Scientists" msgstr "" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "" @@ -141155,7 +136367,7 @@ msgstr "" msgid "Portal" msgstr "" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "" @@ -141164,7 +136376,7 @@ msgstr "" msgid "Portal In" msgstr "" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "" @@ -141173,7 +136385,7 @@ msgstr "" msgid "Spider Nest" msgstr "" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "" @@ -141182,22 +136394,21 @@ msgstr "" msgid "Wasp Nest" msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "" #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "Pająki" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "" @@ -141206,7 +136417,7 @@ msgstr "" msgid "Jabberwock" msgstr "" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "" @@ -141215,7 +136426,7 @@ msgstr "" msgid "Grove" msgstr "" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "" @@ -141224,7 +136435,7 @@ msgstr "" msgid "Shrubberry" msgstr "" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "" @@ -141233,7 +136444,7 @@ msgstr "" msgid "Clearcut" msgstr "" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." msgstr "" @@ -141242,7 +136453,7 @@ msgstr "" msgid "Pond" msgstr "" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "" @@ -141251,7 +136462,7 @@ msgstr "" msgid "Stand of trees" msgstr "" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "" @@ -141260,7 +136471,7 @@ msgstr "" msgid "Tall grass" msgstr "" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "" @@ -141269,7 +136480,7 @@ msgstr "" msgid "Derelict shed" msgstr "" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "" @@ -141278,7 +136489,7 @@ msgstr "" msgid "Clay Deposit" msgstr "" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "" @@ -141287,8 +136498,8 @@ msgstr "" msgid "Dead Vegetation" msgstr "" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "" @@ -141301,8 +136512,8 @@ msgstr "" msgid "Burned Ground" msgstr "" -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "" @@ -141315,7 +136526,7 @@ msgstr "" msgid "Marloss Pilgrimage" msgstr "" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "" @@ -141324,7 +136535,7 @@ msgstr "" msgid "Casings" msgstr "" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "" @@ -141333,7 +136544,7 @@ msgstr "" msgid "Looters" msgstr "" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "" @@ -141342,12 +136553,12 @@ msgstr "" msgid "Corpses" msgstr "" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "" @@ -141356,7 +136567,7 @@ msgstr "" msgid "Dermatik Nest" msgstr "" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "" @@ -141365,7 +136576,7 @@ msgstr "" msgid "Prison Bus" msgstr "" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "" @@ -141374,7 +136585,7 @@ msgstr "" msgid "Mass Grave" msgstr "" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "" @@ -141383,11 +136594,20 @@ msgstr "" msgid "Grave" msgstr "" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "" +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -141405,8 +136625,7 @@ msgstr "" "Skonsolidowany Skomputeryzowany Bank Skarbowy Wysokiego Bezpieczeństwa" #. ~ Computer access denied warning -#: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py src/mapgen.cpp -#: src/mapgen.cpp +#: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "" "ERROR! Access denied! Unauthorized access will be met with lethal force!" msgstr "" @@ -142709,16 +137928,6 @@ msgid "" "years.'" msgstr "" -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Hydroponics Entrance" -msgstr "Wejście Hydroponiki" - -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Missile Control" -msgstr "Sterowanie Rakiet" - #: lang/json/martial_art_from_json.py msgid "No style" msgstr "Brak stylu" @@ -142915,6 +138124,19 @@ msgstr "" msgid "%s gets ready to brawl." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': +#. 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a time.\n" +"\n" +"+1 Block attempts." +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "Capoeira" @@ -144486,47 +139708,81 @@ msgid "Sojutsu" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Blade-work" +msgid "CRIT Blade-work" msgstr "" -#. ~ Description for martial art 'C.R.I.T Blade-work' +#. ~ Description for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"An offensive style that is centered around rapid slashes and prodding. Each" -" attack landed increases combat ability" +"An offensive style centered around rapid slashes and prodding. Each attack " +"landed increases combat ability but leaves you increasingly vunerable" msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Initiate blade-work." +msgid "You prepare to whittle down your enemies." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py #, python-format msgid "%s initiates blade-work." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Intensity" +msgid "Unwavering Edge" msgstr "" -#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Unwavering Edge' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Additional DMG, and Arpen per stack. Max of 5 stacks" +msgid "" +"Gain minor Accuracy, Cutting and Stabbing Arpen per stack. Greatly reduces " +"dodge skill. 2 stacks max" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Calculation" +msgid "Ruthlessness" msgstr "" -#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Ruthlessness' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"Increased accuracy along with minor cut and stab damage with piercing " -"capability." +"Additional Stabbing and Cutting damage per stack. Reduces dodge attempts. 4" +" stacks max." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Rending Strikes" +msgstr "" + +#. ~ Description of buff 'Rending Strikes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Additional Armor penetration per stack. Further reduces dodge attempts. 3 " +"stacks max." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Calculating Eyes" +msgstr "" + +#. ~ Description of buff 'Calculating Eyes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"You have been taught how to properly utilize small to medium-sized sharp " +"weaponry. Gain great Cutting and Stabbing Armor Penetration on top of minor " +"Accuracy" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Honed Movements" +msgstr "" + +#. ~ Description of buff 'Honed Movements' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Your skill and handling with sharp weaponry has improved. Gain extra Cutting" +" and Stabbing damage." msgstr "" #: lang/json/martial_art_from_json.py @@ -144553,65 +139809,267 @@ msgid "%s draws a line in the sand." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Buildup" +msgid "Bulwark" msgstr "" -#. ~ Description of buff 'C.R.I.T Buildup' for martial art 'C.R.I.T -#. Enforcement' +#. ~ Description of buff 'Bulwark' for martial art 'C.R.I.T Enforcement' #: lang/json/martial_art_from_json.py -msgid "+0.05 armor and other small bonuses per stack. Max of 10 stacks" +msgid "+0.5 armor and other small bonuses per stack. Max of 2 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Guard" +msgid "Unyielding Front" msgstr "" -#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement' +#. ~ Description of buff 'Unyielding Front' for martial art 'C.R.I.T +#. Enforcement' #: lang/json/martial_art_from_json.py -msgid "+1 armor. STR provides accuracy and minor bash arpen." +msgid "" +"Stand strong in the face of adversity. +1 armor. STR provides accuracy and " +"minor bash arpen." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T CQB" +msgid "CRIT CQB" msgstr "" -#. ~ Description for martial art 'C.R.I.T CQB' +#. ~ Description for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "A style centered around rapid strikes and piercing jabs. Each attack landed" -" adds a plethora of combat bonuses. 25 percent bash damage." +" adds a plethora of combat bonuses." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py -msgid "Initiate CQB." +msgid "You shift your weight for the oncoming fight." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py #, python-format -msgid "%s initiates CQB." +msgid "%s prepares for hand-to-hand battle." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Tenacity" +msgid "Fluid Tenacity" msgstr "" -#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Fluid Tenacity' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "+Atk Speed and other small bonuses based on DEX per stack. Max of 5 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Initiative" +msgid "Tactful Initiative" +msgstr "" + +#. ~ Description of buff 'Tactful Initiative' for martial art 'CRIT CQB' +#: lang/json/martial_art_from_json.py +msgid "" +"You have gained an advantage by always remaing mindful of common weaknesses." +" DEX provides dodge ability, accuracy and armor penetration." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming strikes." +" The complex spinning and slashing of the curved blade incorporated into " +"many Desert Wind maneuvers are in fact carefully honed gestures that evoke " +"the power of fire, if performed correctly and with the proper focus." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" +msgstr "" + +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" msgstr "" -#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB' +#. ~ Description for martial art '{'str': 'Diamond Mind'}' #: lang/json/martial_art_from_json.py msgid "" -"DEX provides dodge ability, accuracy and minor cut / stab damage with slight" -" piercing capability. 50 Percent Bash Damage." +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so" +" that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must" +" inevitably." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "" + +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art +#. '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': +#. 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "" + +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" +msgstr "" + +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"When you perfectly dodge an attack, you can attack rapidly for a short time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." msgstr "" #: lang/json/martial_art_from_json.py @@ -144689,7 +140147,8 @@ msgstr "poważnie uszkodzony" msgid "Resin" msgstr "" -#: lang/json/material_from_json.py src/veh_interact.cpp +#: lang/json/material_from_json.py lang/json/material_from_json.py +#: src/veh_interact.cpp msgid "dented" msgstr "zarysowany" @@ -144910,7 +140369,7 @@ msgid "Junk Food" msgstr "Śmieciowe Żarcie" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" +msgid "Foodplace's delicious foodstuff" msgstr "" #: lang/json/material_from_json.py @@ -144918,12 +140377,12 @@ msgid "Kevlar" msgstr "Kevlar" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" +msgid "Layered Kevlar" msgstr "" #: lang/json/material_from_json.py -msgid "scarred" -msgstr "pobliźniony" +msgid "Rigid Kevlar" +msgstr "" #: lang/json/material_from_json.py msgid "Lead" @@ -145051,7 +140510,7 @@ msgstr "Grzyb" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "Woda" @@ -145123,6 +140582,10 @@ msgstr "Tytan" msgid "Graphene Weave" msgstr "" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "pobliźniony" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "" @@ -150913,47 +146376,6 @@ msgid "" " and stumbles." msgstr "" -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes you!" -msgstr "%1$s oślepia cię błyskiem!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes at !" -msgstr "%1$s oślepia błyskiem !" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash you, but fails to." -msgstr "%1$s próbuje oślepić cię błyskiem, ale nieskutecznie." - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash , but fails to." -msgstr "%1$s próbuje oślepić błyskiem , ale nieskutecznie." - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects you with a syringe!" -msgstr "%1$s wstrzykuje ci coś ze strzykawki!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects with a syringe!" -msgstr "%1$s wstrzykuje coś ze strzykawki!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "%1$s próbuje ci coś wstrzyknąć, ale nie przebija zbroi!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "" -"The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "%1$s próbuje coś wstrzyknąć , ale nie przebija zbroi!" - #: lang/json/morale_type_from_json.py #, no-python-format msgid "Enjoyed %s" @@ -151056,6 +146478,10 @@ msgstr "Nie smakował ci %s" msgid "Ate Human Flesh" msgstr "Zjadłeś ludzkie mięso" +#: lang/json/morale_type_from_json.py +msgid "Ate Demihuman Flesh" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Ate Meat" msgstr "Zjadłeś mięso" @@ -151253,6 +146679,111 @@ msgstr "Porażka" msgid "Debug Morale" msgstr "Debuguj Morale" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp src/weather.cpp +msgid "W" +msgstr "I" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "Zaczynasz chodzić." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "B" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "Zaczynasz biec." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "" + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "Jesteś zbyt zmęczony by biec." + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "" + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "c" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "Ł" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "Zaczynasz iść przykucnięty." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "" + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp msgid "Any" @@ -152811,7 +148342,6 @@ msgid "Good Hearing" msgstr "Dobry Słuch" #. ~ Description for {'str': 'Good Hearing'} -#. ~ Description for Good Hearing #: lang/json/mutation_from_json.py msgid "" "Your hearing is better than average, and you can hear distant sounds more " @@ -152860,7 +148390,6 @@ msgid "Indefatigable" msgstr "Niewyczerpany" #. ~ Description for {'str': 'Indefatigable'} -#. ~ Description for Indefatigable #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -152910,7 +148439,6 @@ msgid "Fast Healer" msgstr "Szybkie Leczenie" #. ~ Description for {'str': 'Fast Healer'} -#. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" "You heal faster when sleeping and will even recover a small amount of HP " @@ -152958,7 +148486,6 @@ msgid "Pain Resistant" msgstr "Odporny na Ból" #. ~ Description for {'str': 'Pain Resistant'} -#. ~ Description for Pain Resistant #: lang/json/mutation_from_json.py msgid "You have a high tolerance for pain." msgstr "Masz wysoką tolerancję na ból." @@ -152968,7 +148495,6 @@ msgid "Night Vision" msgstr "Kocie Oczy" #. ~ Description for {'str': 'Night Vision'} -#. ~ Description for Night Vision #: lang/json/mutation_from_json.py msgid "" "You possess natural night vision, and can see further in the dark than most." @@ -153064,10 +148590,9 @@ msgstr "Wół Pociągowy" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." msgstr "" -"Potrafisz znaleźć miejsce na wszystko! Możesz nieść przedmioty o łącznej " -"objętości o 40% większej." #: lang/json/mutation_from_json.py msgid "Strong Back" @@ -153106,14 +148631,10 @@ msgstr "Surowe Zasady przy Stole" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale" -" bonus." +"you can't even think about eating without a table or not taking your time. " +"Eating without it 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" @@ -153148,7 +148669,6 @@ msgid "Deft" msgstr "Zwinny" #. ~ Description for {'str': 'Deft'} -#. ~ Description for Deft #: lang/json/mutation_from_json.py msgid "" "While you're not any better at melee combat, you are better at recovering " @@ -153234,7 +148754,6 @@ msgid "Animal Empathy" msgstr "Zwierzęca Empatia" #. ~ Description for {'str': 'Animal Empathy'} -#. ~ Description for Animal Empathy #: lang/json/mutation_from_json.py msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" @@ -153249,7 +148768,6 @@ msgid "Animal Kinship" msgstr "Więź ze Zwierzętami" #. ~ Description for {'str': 'Animal Kinship'} -#. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py msgid "" "Something about your presence is calming to animals, and they will treat you" @@ -153262,7 +148780,6 @@ msgid "Terrifying" msgstr "Przerażający" #. ~ Description for {'str': 'Terrifying'} -#. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " @@ -153358,7 +148875,6 @@ msgid "Light Step" msgstr "Lekki Chód" #. ~ Description for {'str': 'Light Step'} -#. ~ Description for Light Step #: lang/json/mutation_from_json.py msgid "" "You make less noise while walking. You're also less likely to set off " @@ -153415,7 +148931,6 @@ msgid "Cannibal" msgstr "Kanibal" #. ~ Description for {'str': 'Cannibal'} -#. ~ Description for Cannibal #: lang/json/mutation_from_json.py msgid "" "For your whole life you've been forbidden from indulging in your peculiar " @@ -153426,6 +148941,17 @@ msgstr "" "Teraz, gdy świat się skończył, niech cię licho porwie gdybyś pozwolił komuś " "mówić, że nie możesz jeść ludzi." +#: lang/json/mutation_from_json.py +msgid "Strict Humanitarian" +msgstr "" + +#. ~ Description for {'str': 'Strict Humanitarian'} +#: lang/json/mutation_from_json.py +msgid "" +"You'd never eat people, but these things that look vaguely human from " +"elsewhere are definitely not people." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Psychopath" msgstr "Psychopata" @@ -153519,7 +149045,6 @@ msgid "Weak Scent" msgstr "Słaby Zapach" #. ~ Description for {'str': 'Weak Scent'} -#. ~ Description for Weak Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is quite weak. Animals that track your scent will do so with " @@ -153738,11 +149263,9 @@ msgstr "Niezorganizowany" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." msgstr "" -"Jesteś beznadziejny w organizowaniu i pakowaniu swoich rzeczy. Możesz nieść " -"przedmioty o 40% mniejszej łącznej objętości." #: lang/json/mutation_from_json.py msgid "Illiterate" @@ -153791,7 +149314,6 @@ msgid "Insomniac" msgstr "Bezsenność" #. ~ Description for {'str': 'Insomniac'} -#. ~ Description for Insomniac #: lang/json/mutation_from_json.py msgid "" "You have a hard time falling asleep, even under the best circumstances!" @@ -153981,7 +149503,6 @@ msgid "Strong Scent" msgstr "Silny Odór" #. ~ Description for {'str': 'Strong Scent'} -#. ~ Description for Strong Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is particularly strong. It's not offensive to humans, but " @@ -154118,10 +149639,6 @@ msgstr "" " że cecha ta w powiązaniu z cechą Szybkouk spowoduje wolniejsze tempo nauki " "wszystkich umiejętności." -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "Pacyfista" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -154160,7 +149677,6 @@ msgid "Weak Stomach" msgstr "Słaby Żołądek" #. ~ Description for {'str': 'Weak Stomach'} -#. ~ Description for Weak Stomach #: lang/json/mutation_from_json.py msgid "You are more likely to throw up from food poisoning, alcohol, etc." msgstr "" @@ -154209,7 +149725,6 @@ msgid "Albino" msgstr "Albinos" #. ~ Description for {'str': 'Albino'} -#. ~ Description for Albino #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " @@ -154225,7 +149740,6 @@ msgid "Flimsy" msgstr "Kruchy" #. ~ Description for {'str': 'Flimsy'} -#. ~ Description for Flimsy #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -154291,7 +149805,6 @@ msgid "High Night Vision" msgstr "Ulepszone Kocie Oczy" #. ~ Description for {'str': 'High Night Vision'} -#. ~ Description for High Night Vision #: lang/json/mutation_from_json.py msgid "" "You can see incredibly well in the dark! Activate to toggle NV-visible " @@ -154488,7 +150001,6 @@ msgid "Regeneration" msgstr "Regeneracja" #. ~ Description for {'str': 'Regeneration'} -#. ~ Description for Regeneration #: lang/json/mutation_from_json.py msgid "Your flesh regenerates from wounds incredibly quickly." msgstr "Twoje ciało niezwykle szybko regeneruje się z zadanych ran." @@ -155339,7 +150851,6 @@ msgid "Mammal Pheromones" msgstr "Ssacze Feromony" #. ~ Description for {'str': 'Mammal Pheromones'} -#. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" "Your body produces low-level pheromones which put mammals at ease. They " @@ -155424,7 +150935,6 @@ msgid "Venomous" msgstr "Jadowity" #. ~ Description for {'str': 'Venomous'} -#. ~ Description for Venomous #: lang/json/mutation_from_json.py msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " @@ -157484,7 +152994,6 @@ msgid "Solar Sensitivity" msgstr "Wrażliwość na Słońce" #. ~ Description for {'str': 'Solar Sensitivity'} -#. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " @@ -158426,7 +153935,8 @@ msgstr "Arachnid" msgid "Well, maybe you'll just have to make your own world wide web." msgstr "Cóż, może czas upleść sieć wielką jak kiedyś sieć internetowa." -#: lang/json/mutation_from_json.py lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/mutation_from_json.py +#: lang/json/npc_from_json.py msgid "Survivor" msgstr "Ocalony" @@ -158699,8 +154209,8 @@ msgstr "" #. ~ Description for Helicopter Pilot #: lang/json/mutation_from_json.py msgid "" -"You are a trained pilot, you wonder if you will ever have the chance to fly " -"again." +"You are a trained helicopter pilot. This makes you one of the few living " +"people who can operate a helicopter after the Cataclysm." msgstr "" #: lang/json/mutation_from_json.py @@ -158812,11 +154322,10 @@ msgstr "Skejter" #. ~ Description for {'str': 'Skater'} #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the Cataclysm," -" and are better at staying on your feet when checked or blocked." +"You are skilled in maneuvering on skates. You suffer less dodging penalties" +" and are less likely to fall down if hit in melee combat while you're " +"wearing rollerskates or rollerblades." msgstr "" -"Spędzałeś wiele czasu aktywnie manewrując na wrotkach przed Kataklizmem, i " -"jesteś lepszy w utrzymywaniu się na nogach będąc podciętym lub zablokowanym." #: lang/json/mutation_from_json.py msgid "Martial Artist" @@ -159057,10 +154566,10 @@ msgid "Mind the bugs, would you kindly?" msgstr "Myśl o bugach, jeśli łaska?" #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" -msgstr "Zdebugowana Pojemność Noszenia" +msgid "Debug Very Strong Back" +msgstr "" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "" @@ -159189,10 +154698,21 @@ msgid "" " off-limits to you, even if your life depended on it." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "Historia Ocalonego" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -160248,7 +155768,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Giant Thirst" -msgstr "" +msgstr "Olbrzymie Pragnienie" #. ~ Description for Ponderous #: lang/json/mutation_from_json.py @@ -160269,14 +155789,14 @@ msgid "Your muscles are quite slow to move. You move 25% slower." msgstr "" #: lang/json/mutation_from_json.py -msgid "C.R.I.T Melee Training" +msgid "CRIT Melee Training" msgstr "" -#. ~ Description for C.R.I.T Melee Training +#. ~ Description for CRIT Melee Training #: lang/json/mutation_from_json.py msgid "" -"You have received defensive training. For every hit you land, gain various " -"miniscule combat bonuses that scale off of your stats." +"You have received CQB training. For every hit you land, gain themed combat " +"bonuses." msgstr "" #: lang/json/mutation_from_json.py @@ -160322,20 +155842,6 @@ msgid "" "Emerge from the grave of the old world, and become the night once again." msgstr "" -#. ~ Description for Pretty -#: lang/json/mutation_from_json.py -msgid "" -"You are a sight to behold. NPCs who care about such things will react more " -"kindly to you." -msgstr "" -"Ależ z ciebie widok. NPC-e którzy zwracają na to uwagę, będą dla ciebie " -"łaskawsi." - -#. ~ Description for Thin-Skinned -#: lang/json/mutation_from_json.py -msgid "Your skin is fragile. Cutting damage is slightly increased for you." -msgstr "Twoja skóra jest wrażliwa. Otrzymujesz więcej obrażeń od ran ciętych." - #: lang/json/mutation_from_json.py msgid "Forest Guardian" msgstr "" @@ -160379,6 +155885,40 @@ msgstr "" msgid "%1$s tears into %2$s with their blades" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Spurs" +msgstr "" + +#. ~ Description for Spurs +#: lang/json/mutation_from_json.py +msgid "" +"Spurs of bone have erupted all across your arms. A thick, biological " +"secretion oozes out of them promising extra harm to enemies." +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "You ravage %s with your arms" +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "%1$s ravages %2$s with their arm spurs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Persistent Body" +msgstr "" + +#. ~ Description for Persistent Body +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "" +"As you move, the world seems to breath life and energy into your limbs. You " +"simply rarely tire less readily than others. Your maximum stamina is 50% " +"higher than usual." +msgstr "" + #: lang/json/mutation_from_json.py msgid "RP: Combatant" msgstr "" @@ -160445,6 +155985,40 @@ msgstr "" " wpływem alkoholu twoja zdolność walka wręcz zauważalnie rośnie, w " "szczególności umiejętność walki nieuzbrojonym." +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "" @@ -160625,6 +156199,38 @@ msgstr "" msgid "Mana Vortex" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "" @@ -160647,11 +156253,6 @@ msgstr "" msgid "Greater Mana Efficiency" msgstr "" -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" msgstr "" @@ -160701,11 +156302,6 @@ msgstr "" msgid "Greater Mana Regeneration" msgstr "" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "" @@ -160759,13 +156355,6 @@ msgstr "" msgid "Greater Mana Sensitivity" msgstr "" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to" -" tap into more of your reserves." -msgstr "" - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "" @@ -161170,26 +156759,6 @@ msgstr "" msgid "I've been studying the mi-go for years…" msgstr "" -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive" -" it's twilight." -msgstr "" - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "Jaszczurzy Mutant" @@ -161400,6 +156969,26 @@ msgid "" "and I don't plan to keep being one." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive" +" it's twilight." +msgstr "" + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "" @@ -162170,18 +157759,10 @@ msgstr "komis samochodowy" msgid "shipwreck" msgstr "wrak statku" -#: lang/json/overmap_terrain_from_json.py -msgid "razorclaw nest" -msgstr "gniazdo żyletoszpona" - #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" msgstr "wieża radiowa" -#: lang/json/overmap_terrain_from_json.py -msgid "radio tower roof" -msgstr "dach wieży radiowej" - #: lang/json/overmap_terrain_from_json.py msgid "looted building" msgstr "ograbiony budynek" @@ -162194,10 +157775,6 @@ msgstr "rampa testowa" msgid "campsite" msgstr "obozowisko" -#: lang/json/overmap_terrain_from_json.py -msgid "campsites" -msgstr "obozowiska" - #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" msgstr "niedokończona chata" @@ -162410,6 +157987,18 @@ msgstr "generic_junkyard" msgid "generic_brushland" msgstr "generic_brushland" +#: lang/json/overmap_terrain_from_json.py +msgid "rural road" +msgstr "wiejska droga" + +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "droga polna" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural building" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sugar house" msgstr "kabina cukrowa" @@ -162418,18 +158007,10 @@ msgstr "kabina cukrowa" msgid "sugar house roof" msgstr "dach kabiny cukrowej" -#: lang/json/overmap_terrain_from_json.py -msgid "rural road" -msgstr "wiejska droga" - #: lang/json/overmap_terrain_from_json.py msgid "farm field" msgstr "pole uprawne" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house" -msgstr "gospodarstwo rolnicze" - #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" msgstr "dach gospodarstwa rolniczego" @@ -162446,6 +158027,10 @@ msgstr "dach obory farmerskiej" msgid "farm" msgstr "farma" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house" +msgstr "gospodarstwo rolnicze" + #: lang/json/overmap_terrain_from_json.py msgid "grape farm" msgstr "sad winorośli" @@ -162538,10 +158123,6 @@ msgstr "kurnik" msgid "chicken coop roof" msgstr "dach kurnika" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" -msgstr "gospodarstwo rolnicze 2-gie piętro" - #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" msgstr "mały cmentarz" @@ -162558,10 +158139,6 @@ msgstr "dach bimbrowni" msgid "tree farm" msgstr "szkółka leśna" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "droga polna" - #: lang/json/overmap_terrain_from_json.py msgid "silos" msgstr "silos" @@ -162582,6 +158159,10 @@ msgstr "dach domu wiejskiego" msgid "farm road" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house 2nd floor" +msgstr "gospodarstwo rolnicze 2-gie piętro" + #: lang/json/overmap_terrain_from_json.py msgid "barn roof" msgstr "dach obory" @@ -162694,6 +158275,10 @@ msgstr "sklep elektroniczny" msgid "electronics store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "sklep sportowy" @@ -162726,10 +158311,6 @@ msgstr "2-gie piętro sklepu z bronią" msgid "clothing store" msgstr "sklep z ubraniami" -#: lang/json/overmap_terrain_from_json.py -msgid "clothing store roof" -msgstr "dach sklepu z ubraniami" - #: lang/json/overmap_terrain_from_json.py msgid "bookstore" msgstr "księgarnia" @@ -162738,6 +158319,10 @@ msgstr "księgarnia" msgid "bookstore roof" msgstr "dach księgarni" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "jadłodajnia" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "restauracja" @@ -162866,10 +158451,6 @@ msgstr "hotel" msgid "hotel entrance" msgstr "hol hotelowy" -#: lang/json/overmap_terrain_from_json.py -msgid "hotel tower" -msgstr "hotel piętrowy" - #: lang/json/overmap_terrain_from_json.py msgid "hotel basement" msgstr "piwnice hotelu" @@ -162894,10 +158475,6 @@ msgstr "hipermarket budowalny" msgid "garage - gas station" msgstr "garaż - stacja paliw" -#: lang/json/overmap_terrain_from_json.py -msgid "garage - gas station roof" -msgstr "dach - garaż - stacja paliw" - #: lang/json/overmap_terrain_from_json.py msgid "dispensary" msgstr "ambulatorium" @@ -163066,14 +158643,14 @@ msgstr "dach - zaopatrzenie ogrodnictwa" msgid "craft shop" msgstr "sklep rzemieślniczy" -#: lang/json/overmap_terrain_from_json.py -msgid "craft shop roof" -msgstr "dach sklepu rzemieślniczego" - #: lang/json/overmap_terrain_from_json.py msgid "craft shop upper roof" msgstr "wyższy dach sklepu rzemieślniczego" +#: lang/json/overmap_terrain_from_json.py +msgid "craft shop roof" +msgstr "dach sklepu rzemieślniczego" + #: lang/json/overmap_terrain_from_json.py msgid "craft shop 2nd floor" msgstr "2-gie piętro sklepu rzemieślniczego" @@ -163182,18 +158759,30 @@ msgstr "" msgid "hunting supply store roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "sklep dla ludzi lasu" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "road" -msgstr "droga" +msgid "gaming store" +msgstr "sklep z grami" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "centrum uchodźców" +#: lang/json/overmap_terrain_from_json.py +msgid "road" +msgstr "droga" + #: lang/json/overmap_terrain_from_json.py msgid "camp survey" msgstr "zarys obozowiska" @@ -163446,6 +159035,22 @@ msgstr "huta" msgid "steel mill depot" msgstr "magazyn huty" +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "przemysł lekki" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "science lab" msgstr "laboratorium naukowe" @@ -163526,13 +159131,17 @@ msgstr "parcela" msgid "mall - entrance" msgstr "centrum handlowe - wejście" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - food court" +msgstr "centrum handlowe - gastronomia" + #: lang/json/overmap_terrain_from_json.py msgid "mall - food court roof" msgstr "dach - centrum handlowe - gastronomia" #: lang/json/overmap_terrain_from_json.py -msgid "mall - food court" -msgstr "centrum handlowe - gastronomia" +msgid "mall - subway station" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mansion" @@ -163643,10 +159252,6 @@ msgstr "posterunek policji" msgid "church" msgstr "kościół" -#: lang/json/overmap_terrain_from_json.py -msgid "sewer" -msgstr "ściek" - #: lang/json/overmap_terrain_from_json.py msgid "sewer?" msgstr "ściek?" @@ -163655,6 +159260,14 @@ msgstr "ściek?" msgid "basement" msgstr "piwnica" +#: lang/json/overmap_terrain_from_json.py +msgid "sewer" +msgstr "ściek" + +#: lang/json/overmap_terrain_from_json.py +msgid "Vault - Passage" +msgstr "Krypta - Przejście" + #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" msgstr "Krypta - Koszary" @@ -163687,10 +159300,6 @@ msgstr "Krypta - Wejście" msgid "Vault - Utilities" msgstr "Krypta - Użytkowe" -#: lang/json/overmap_terrain_from_json.py -msgid "Vault - Passage" -msgstr "Krypta - Przejście" - #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" msgstr "Krypta - Łączność" @@ -164137,16 +159746,16 @@ msgid "marina parking" msgstr "przystań - parking" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" -msgstr "bliźniak" +msgid "house roof" +msgstr "dach domu" #: lang/json/overmap_terrain_from_json.py -msgid "apartment tower" -msgstr "apartamentowiec" +msgid "dense urban" +msgstr "gęsto zurbanizowany" #: lang/json/overmap_terrain_from_json.py -msgid "homeless camp" -msgstr "obozowisko bezdomnych" +msgid "apartment tower" +msgstr "apartamentowiec" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" @@ -164156,6 +159765,10 @@ msgstr "park przyczep" msgid "trailer park roof" msgstr "dach - park przyczep" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless camp" +msgstr "obozowisko bezdomnych" + #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" msgstr "pusta działka mieszkalna" @@ -164164,10 +159777,6 @@ msgstr "pusta działka mieszkalna" msgid "derelict property" msgstr "opuszczona posiadłość" -#: lang/json/overmap_terrain_from_json.py -msgid "dense urban" -msgstr "gęsto zurbanizowany" - #: lang/json/overmap_terrain_from_json.py msgid "river" msgstr "rzeka" @@ -164200,26 +159809,14 @@ msgstr "most" msgid "roadstop" msgstr "przystanek przy drodze" -#: lang/json/overmap_terrain_from_json.py -msgid "roadstop roof" -msgstr "dach - przystanek przy drodze" - #: lang/json/overmap_terrain_from_json.py msgid "public washroom" msgstr "łaźnia publiczna" -#: lang/json/overmap_terrain_from_json.py -msgid "public washroom roof" -msgstr "dach - łaźnia publiczna" - #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" msgstr "przydrożne stoisko z żywnością" -#: lang/json/overmap_terrain_from_json.py -msgid "roadside foodcart roof" -msgstr "dach - przydrożne stoisko z żywnością" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "tory kolejowe" @@ -164396,14 +159993,14 @@ msgstr "otwarty ściek" msgid "small dump" msgstr "małe wysypisko" -#: lang/json/overmap_terrain_from_json.py -msgid "lake shore" -msgstr "brzeg jeziora" - #: lang/json/overmap_terrain_from_json.py msgid "lake" msgstr "jezioro" +#: lang/json/overmap_terrain_from_json.py +msgid "lake shore" +msgstr "brzeg jeziora" + #: lang/json/overmap_terrain_from_json.py msgid "lake (submerged)" msgstr "" @@ -164453,36 +160050,12 @@ msgid "county mortuary roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "polowe biuro obserwacji fauny i flory" - -#: lang/json/overmap_terrain_from_json.py -msgid "diner" -msgstr "jadłodajnia" - -#: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "apartament" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" -msgstr "przedstawicielstwo handlowe" - -#: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "sklep dla ludzi lasu" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "sklep z grami" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "lotnisko" +msgid "Dinosaur Exhibit" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "light industry" -msgstr "przemysł lekki" +msgid "wildlife field office" +msgstr "polowe biuro obserwacji fauny i flory" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -164496,6 +160069,10 @@ msgstr "bunkier" msgid "scavenger bunker" msgstr "bunkier ocalonych" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "sklep magiczny" @@ -164509,7 +160086,6 @@ msgid "used bookstore" msgstr "antykwariat" #: lang/json/overmap_terrain_from_json.py -#: lang/json/start_location_from_json.py msgid "Swamp" msgstr "bagno" @@ -164541,10 +160117,6 @@ msgstr "brama" msgid "house basement" msgstr "piwnica domu" -#: lang/json/overmap_terrain_from_json.py -msgid "house roof" -msgstr "dach domu" - #: lang/json/overmap_terrain_from_json.py msgid "attached garage" msgstr "garaż przydomowy" @@ -164653,10 +160225,6 @@ msgstr "laboratorium mikrobiologiczne" msgid "rocketry lab" msgstr "laboratorium rakietowe" -#: lang/json/overmap_terrain_from_json.py -msgid "robot dispatch center" -msgstr "centrum sterowania robotami" - #: lang/json/overmap_terrain_from_json.py msgid "school" msgstr "szkoła" @@ -164685,6 +160253,14 @@ msgstr "garaż mechaników" msgid "megastore entrance" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "hotel tower" +msgstr "hotel piętrowy" + +#: lang/json/overmap_terrain_from_json.py +msgid "razorclaw nest" +msgstr "gniazdo żyletoszpona" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "oczyszczalnia ścieków" @@ -164701,6 +160277,10 @@ msgstr "interfejs" msgid "electric substation" msgstr "podstacja elektryczna" +#: lang/json/overmap_terrain_from_json.py +msgid "campsites" +msgstr "obozowiska" + #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" msgstr "cmentarz wyznaniowy" @@ -164738,13 +160318,10 @@ msgstr "Wagabunda" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Okoliczności zmusiły cię do wędrówki, bez domu, rodziny i przyjaciół. Ale " -"świat, który znałeś już odszedł, wiec twoje doświadczenia w opieraniu się na" -" sobie samym by przetrwać mogą nadać się w tym nowym świecie." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -164755,13 +160332,10 @@ msgstr "Wagabunda" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Okoliczności zmusiły cię do wędrówki, bez domu, rodziny i przyjaciół. Ale " -"świat, który znałaś już odszedł, wiec twoje doświadczenia w opieraniu się na" -" sobie samym by przetrwać mogą nadać się w tym nowym świecie." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -164772,13 +160346,10 @@ msgstr "Bioniczny Uprzedzony" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"Wiedziałeś że koniec jest bliski. Ulepszyłeś się podstawową bioniką i " -"trenowałeś sztukę przetrwania. Teraz koniec nastał, i czas sprawdzić czy " -"twoje wysiłki zdały egzamin." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -164789,13 +160360,10 @@ msgstr "Bioniczna Uprzedzona" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" -"Wiedziałaś, że koniec jest bliski. Ulepszyłaś się podstawową bioniką i " -"trenowałaś sztukę przetrwania. Teraz koniec nastał, i czas sprawdzić czy " -"twoje wysiłki zdały egzamin." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -164806,11 +160374,9 @@ msgstr "Ocalony" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" -"Niektórzy powiedzieli, że nie ma w tobie nic nadzwyczajnego. Ale ocalałeś, a" -" to więcej niż większość mogłaby powiedzieć o sobie." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -164821,11 +160387,9 @@ msgstr "Ocalona" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" -"Niektórzy powiedzieli, że nie ma w tobie nic nadzwyczajnego. Ale ocalałaś, a" -" to więcej niż większość mogłaby powiedzieć o sobie." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -164836,9 +160400,9 @@ msgstr "Ocalony ze Schronu" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -164850,9 +160414,9 @@ msgstr "Ocalona ze Schronu" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -164864,9 +160428,9 @@ msgstr "Ukryty Rezerwista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -164878,9 +160442,9 @@ msgstr "Ukryta Rezerwistka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" #: lang/json/professions_from_json.py @@ -164893,12 +160457,9 @@ msgstr "Krawiec" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"Krawiectwo może nie wygląda na najlepszą umiejętność na koniec świata. " -"Większość ludzi nie spodziewałaby się, że zwykły krawiec przeżyje długo. To " -"twoja szansa, żeby udowodnić im że się mylą." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -164910,12 +160471,9 @@ msgstr "Krawcowa" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"Krawiectwo może nie wygląda na najlepszą umiejętność na koniec świata. " -"Większość ludzi nie spodziewałaby się, że zwykła krawcowa przeżyje długo. To" -" twoja szansa, żeby udowodnić im że się mylą." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -164927,12 +160485,9 @@ msgstr "Kucharz" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" -"Lata w kuchni sprawiły, że nosisz potężne cielsko, ale zdołałeś umknąć jatce" -" z nożem kuchennym i tylko niewielką kolekcją plam na twoim kucharskim " -"mundurze." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -164944,12 +160499,9 @@ msgstr "Kucharka" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" -"Lata w kuchni sprawiły, że nosisz potężne cielsko, ale zdołałaś umknąć jatce" -" z nożem kuchennym i tylko niewielką kolekcją plam na twoim kucharskim " -"mundurze." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -164990,13 +160542,10 @@ msgstr "Technik Laboratoryjny" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Dzięki czasowi spędzonemu w laboratorium jesteś obeznany z podstawami badań " -"naukowych. Teraz gdy świat się skończył, pozostało już tylko jedno pytanie: " -"Czy możesz odwrócić Kataklizm który pomogłeś stworzyć?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165007,13 +160556,10 @@ msgstr "Technik Laboratoryjny" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Dzięki czasowi spędzonemu w laboratorium jesteś obeznana z podstawami badań " -"naukowych. Teraz gdy świat się skończył, pozostało już tylko jedno pytanie: " -"Czy możesz odwrócić Kataklizm który pomogłaś stworzyć?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165024,11 +160570,10 @@ msgstr "Domowy Mechanik" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Choć nigdy nie dorobiłeś się prawa jazdy, zawsze kochałeś samochody. " -"Przynajmniej teraz już nigdy nie będzie ci brakowało części." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165039,11 +160584,10 @@ msgstr "Domowa Mechanik" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Choć nigdy nie dorobiłaś się prawa jazdy, zawsze kochałaś samochody. " -"Przynajmniej teraz już nigdy nie będzie ci brakowało części." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165057,12 +160601,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"Twoje elastyczne podejście do prawa, szamotaniny w których brałeś udział " -"(lub których uniknąłeś) w barach, i twoja zdolność wywijania się z " -"konsekwencji twoich czynów - wszystkie te zdolności pomogły ci przetrwać. " -"Tylko jak długo jeszcze ci pomogą?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165076,12 +160616,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" -"Twoje elastyczne podejście do prawa, szamotaniny w których brałaś udział " -"(lub których uniknęłaś) w barach, i twoja zdolność wywijania się z " -"konsekwencji twoich czynów - wszystkie te zdolności pomogły ci przetrwać. " -"Tylko jak długo jeszcze ci pomogą?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165092,9 +160628,9 @@ msgstr "Pszczelarz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" #: lang/json/professions_from_json.py @@ -165106,9 +160642,9 @@ msgstr "Pszczelarka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" #: lang/json/professions_from_json.py @@ -165120,9 +160656,9 @@ msgstr "Koszykarz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" #: lang/json/professions_from_json.py @@ -165134,9 +160670,9 @@ msgstr "Koszykarka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" #: lang/json/professions_from_json.py @@ -165148,10 +160684,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -165163,10 +160698,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" #: lang/json/professions_from_json.py @@ -165180,12 +160714,9 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"Byłeś obiecującym kolarzem z błyskotliwą karierą przed tobą zanim to " -"wszystko się stało. Pewnie już nie weźmiesz udziału w Grand Tour, ale jak to" -" mówią: życie jest jak jazda na rowerze, trzeba pedałować dalej." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165198,12 +160729,9 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"Byłeś obiecującą kolarką z błyskotliwą karierą przed tobą zanim to wszystko " -"się stało. Pewnie już nie weźmiesz udziału w Grand Tour, ale jak to mówią: " -"życie jest jak jazda na rowerze, trzeba pedałować dalej." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165214,15 +160742,11 @@ msgstr "Poborowy" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Porzuciłeś szkołę średnią w jednym celu: żeby zaciągnąć się do wojska. Gdy " -"wreszcie się dostałeś, twoje szkolenie przerwał stan wyjątkowy. Na tyle na " -"ile się orientujesz, dowództwo porzuciło cię w tej dziurze gdy spóźniłeś się" -" do punktu ewakuacji." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165233,15 +160757,11 @@ msgstr "Poborowa" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Porzuciłaś szkołę średnią w jednym celu: żeby zaciągnąć się do wojska. Gdy " -"wreszcie się dostałaś, twoje szkolenie przerwał stan wyjątkowy. Na tyle na " -"ile się orientujesz, dowództwo porzuciło cię w tej dziurze gdy spóźniłaś się" -" do punktu ewakuacji." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165290,8 +160810,9 @@ msgstr "Lokaj" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -165303,8 +160824,9 @@ msgstr "Pokojówka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" #: lang/json/professions_from_json.py @@ -165316,10 +160838,11 @@ msgstr "Jeniec" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -165331,10 +160854,11 @@ msgstr "Jeniec" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -165347,9 +160871,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -165362,9 +160886,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -165377,12 +160901,10 @@ msgstr "Lekarz Rezydent" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"Prosto po szkole medycznej nie masz zbyt wiele praktycznego doświadczenia. " -"Masz tylko nadzieję, że na tyle gdyby stare powiedzonko 'lekarzu, ulecz się " -"sam' okazało się prorocze." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165394,12 +160916,10 @@ msgstr "Lekarka Rezydent" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"Prosto po szkole medycznej nie masz zbyt wiele praktycznego doświadczenia. " -"Masz tylko nadzieję, że na tyle gdyby stare powiedzonko 'lekarzu, ulecz się " -"sam' okazało się prorocze." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165411,12 +160931,9 @@ msgstr "Gangster" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"Szef zawsze powtarzał, że może na tobie polegać w załatwianiu trudnych " -"zadań. Szkoda, że sam tym razem nie podołał. Przemoc to dla ciebie nie " -"pierwszyzna, więc w nowym świecie czujesz się prawie jak w domu." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165428,12 +160945,9 @@ msgstr "Gangster" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"Szef zawsze powtarzał, że może na tobie polegać w załatwianiu trudnych " -"zadań. Szkoda, że sam tym razem nie podołał. Przemoc to dla ciebie nie " -"pierwszyzna, więc w nowym świecie czujesz się prawie jak w domu." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165444,15 +160958,10 @@ msgstr "Ochroniarz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Nisko płatna praca ochroniarza stała się nagle znacznie bardziej " -"niebezpieczna w porównaniu z patrolowaniem okolicy w poszukiwaniu złodziei. " -"Nie masz zbyt przydatnych umiejętności, ale masz trochę przydatnego sprzętu " -"jako ze byłeś w pracy gdy sprawy wzięły w łeb." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165463,15 +160972,10 @@ msgstr "Ochroniarz" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Nisko płatna praca ochroniarza stała się nagle znacznie bardziej " -"niebezpieczna w porównaniu z patrolowaniem okolicy w poszukiwaniu złodziei. " -"Nie masz zbyt przydatnych umiejętności, ale masz trochę przydatnego sprzętu " -"jako ze byłaś w pracy gdy sprawy wzięły w łeb." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165484,7 +160988,7 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" #: lang/json/professions_from_json.py @@ -165498,7 +161002,7 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" #: lang/json/professions_from_json.py @@ -165510,9 +161014,9 @@ msgstr "Asystent Pielęgniarski" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" #: lang/json/professions_from_json.py @@ -165524,9 +161028,9 @@ msgstr "Asystent Pielęgniarski" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" #: lang/json/professions_from_json.py @@ -165538,10 +161042,9 @@ msgstr "Surwiwalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" #: lang/json/professions_from_json.py @@ -165553,10 +161056,9 @@ msgstr "Surwiwalistka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" #: lang/json/professions_from_json.py @@ -165568,13 +161070,10 @@ msgstr "Nałogowy Palacz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Wszyscy w pracy znali cię z trzymania papierosa lub dwóch w rękach. Teraz " -"została ci jedna paczka, i masz nadzieję że znajdziesz więcej. Zaczynasz z " -"silnym uzależnieniem od nikotyny." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165585,13 +161084,10 @@ msgstr "Nałogowa Palaczka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Wszyscy w pracy znali cię z trzymania papierosa lub dwóch w rękach. Teraz " -"została ci jedna paczka, i masz nadzieję że znajdziesz więcej. Zaczynasz z " -"silnym uzależnieniem od nikotyny." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165604,11 +161100,8 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"Kokaina. To prawdziwie diabelski narkotyk. Wyprułeś się z forsy na trochę " -"pyłu i zanim się spostrzegłeś zacząłeś odgrywać sztuczki przy lokalnej " -"aptece by dostać kolejną działkę." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165621,11 +161114,8 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" -"Kokaina. To prawdziwie diabelski narkotyk. Wyprułaś się z forsy na trochę " -"pyłu i zanim się spostrzegłaś zacząłaś odgrywać sztuczki przy lokalnej " -"aptece by dostać kolejną działkę." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165636,16 +161126,11 @@ msgstr "Menel" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"Społeczeństwo zepchnęło cię na margines i posłało na wędrówkę, bez domu, bez" -" rodziny, bez przyjaciół, aż mogłeś znaleźć ukojenie tylko na dnie butelki. " -"Ale społeczeństwo nic już teraz nie znaczy, a mimo całego tego gówna, które " -"trafiało w ciebie przez lata, nadal stoisz na nogach. Do diabła, napiłbyś " -"się czegoś." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165656,16 +161141,11 @@ msgstr "Menelka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"Społeczeństwo zepchnęło cię na margines i posłało na wędrówkę, bez domu, bez" -" rodziny, bez przyjaciół, aż mogłaś znaleźć ukojenie tylko na dnie butelki. " -"Ale społeczeństwo nic już teraz nie znaczy, a mimo całego tego gówna, które " -"trafiało w ciebie przez lata, nadal stoisz na nogach. Do diabła, napiłabyś " -"się czegoś." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165676,12 +161156,10 @@ msgstr "Narkoman" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"Nie wiesz do końca co się stało, ale wszytko poszło w diabły, a jedyne co " -"przelatuje ci przez głowę to skąd wziąć następną działkę mety." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165692,12 +161170,10 @@ msgstr "Narkomanka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"Nie wiesz do końca co się stało, ale wszytko poszło w diabły, a jedyne co " -"przelatuje ci przez głowę to skąd wziąć następną działkę mety." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165709,8 +161185,8 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" #: lang/json/professions_from_json.py @@ -165723,8 +161199,8 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" #: lang/json/professions_from_json.py @@ -165736,8 +161212,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -165749,8 +161226,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -165763,8 +161241,9 @@ msgstr "Oficer z Psem" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -165777,8 +161256,9 @@ msgstr "Oficer z Psem" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -165790,12 +161270,9 @@ msgstr "Kociarz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" -"Wszyscy są martwi? Nie zwróciłeś nawet uwagi kiedy nadszedł kataklizm. " -"Zresztą, nie ma to teraz znaczenia... twoje koty są najlepszymi przyjaciółmi" -" jakich mógłbyś sobie wymarzyć." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165806,12 +161283,9 @@ msgstr "Kociara" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" msgstr "" -"Wszyscy są martwi? Nie zwróciłaś nawet uwagi kiedy nadszedł kataklizm. " -"Zresztą, nie ma to teraz znaczenia... twoje koty są najlepszymi przyjaciółmi" -" jakich mogłabyś sobie wymarzyć." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165822,15 +161296,11 @@ msgstr "Policjant" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Byłeś gliną w małym miasteczku gdy otrzymałeś wezwanie i ruszyłeś z pomocą. " -"Z tym, że wkrótce to ty potrzebowałeś pomocy - i cud że uszedłeś z życiem. " -"Kto teraz będzie respektował twoją władzę skoro rząd, który reprezentuje " -"twoja odznaka może już nawet nie istnieje." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165841,15 +161311,11 @@ msgstr "Policjantka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Byłaś gliną w małym miasteczku gdy otrzymałaś wezwanie i ruszyłaś z pomocą. " -"Z tym, że wkrótce to ty potrzebowałaś pomocy - i cud że uszłaś z życiem. Kto" -" teraz będzie respektował twoją władzę skoro rząd, który reprezentuje twoja " -"odznaka może już nawet nie istnieje." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165860,13 +161326,10 @@ msgstr "Detektyw Policyjny" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"Byłeś na skraju ważnego odkrycia w sprawie ostatniego morderstwa, gdy " -"uderzył Kataklizm. Teraz podejrzany jest martwy. Wszyscy są martwi. " -"Potrzebujesz papierosa." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165877,13 +161340,10 @@ msgstr "Detektyw Policyjny" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" -"Byłaś na skraju ważnego odkrycia w sprawie ostatniego morderstwa, gdy " -"uderzył Kataklizm. Teraz podejrzany jest martwy. Wszyscy są martwi. " -"Potrzebujesz papierosa." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165896,13 +161356,9 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Jako członek elitarnej jednostki policyjnej jesteś bardziej niż adekwatnie " -"wytrenowany by przetrwać brutalny najazd apokalipsy. Niestety rozpad " -"społeczeństwa sprowadził cię do takiego stanu rzeczy, że walczysz teraz po " -"prostu po to aby przeżyć." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165915,13 +161371,9 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Jako członek elitarnej jednostki policyjnej jesteś bardziej niż adekwatnie " -"wytrenowana by przetrwać brutalny najazd apokalipsy. Niestety rozpad " -"społeczeństwa sprowadził cię do takiego stanu rzeczy, że walczysz teraz po " -"prostu po to aby przeżyć." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165932,15 +161384,11 @@ msgstr "Specjalista Walki Bezpośredniej SWAT" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Jako członek elitarnej jednostki policyjnej twoje umiejętności w walce " -"bezpośredniej pozwoliły ci do tej pory zachować życie. Niestety rozpad " -"społeczeństwa sprowadził cię do takiego stanu rzeczy, że walczysz teraz po " -"prostu po to aby przeżyć.  " #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165951,15 +161399,11 @@ msgstr "Specjalistka Walki Bezpośredniej SWAT" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Jako członek elitarnej jednostki policyjnej twoje umiejętności w walce " -"bezpośredniej pozwoliły ci do tej pory zachować życie. Niestety rozpad " -"społeczeństwa sprowadził cię do takiego stanu rzeczy, że walczysz teraz po " -"prostu po to aby przeżyć." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -165971,14 +161415,10 @@ msgstr "Policyjny Snajper" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Twoje umiejętności strzeleckie dobrze ci służyły na służbie, chroniąc " -"cywilów za pomocą dobrze wymierzonych kul. Teraz gdy stawką jest " -"przetrwanie, nie możesz spudłować, jeśli nie chcesz wylądować na czyimś " -"talerzu." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -165990,14 +161430,10 @@ msgstr "Policyjna Snajperka" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Twoje umiejętności strzeleckie dobrze ci służyły na służbie, chroniąc " -"cywilów za pomocą dobrze wymierzonych kul. Teraz gdy stawką jest " -"przetrwanie, nie możesz spudłować, jeśli nie chcesz wylądować na czyimś " -"talerzu." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166008,15 +161444,11 @@ msgstr "Oficer Kontroli Tłumów" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"Zamieszki były brutalne, i to zanim martwi powstali by pożerać żywych. " -"Wkrótce stało się jasne że linia której broniłeś nie utrzyma się, i tylko " -"dzięki odrobinie szczęścia i dużej ilości rozbitych łbów wyszedłeś z tego w " -"jednym kawałku, a najgorsze dopiero przed tobą." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166027,15 +161459,11 @@ msgstr "Oficer Kontroli Tłumów" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" -"Zamieszki były brutalne, i to zanim martwi powstali by pożerać żywych. " -"Wkrótce stało się jasne że linia, której broniłaś nie utrzyma się, i tylko " -"dzięki odrobinie szczęścia i dużej ilości rozbitych łbów wyszłaś z tego w " -"jednym kawałku, a najgorsze dopiero przed tobą." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166046,14 +161474,10 @@ msgstr "Sprzedawca Używanych Samochodów" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Oskarżano cię o bycie osobą, która sprzeda własną matkę za dolara. Zawsze " -"cię to obrażało - siedzisz w tej robocie nie dzień ani dwa, więc zażądałbyś " -"dużo więcej forsy niż dolara - i byś ją dostał!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166064,14 +161488,10 @@ msgstr "Sprzedawczyni Używanych Samochodów" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Oskarżano cię o bycie osobą, która sprzeda własną matkę za dolara. Zawsze " -"cię to obrażało - siedzisz w tej robocie nie dzień ani dwa, więc zażądałabyś" -" dużo więcej forsy niż dolara - i byś ją dostała!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166082,15 +161502,11 @@ msgstr "Myśliwy Łucznik" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"Od dziecka kochałeś polować, a wkrótce potem polubiłeś wyzwanie jakie niesie" -" myślistwo z łukiem. Dlatego, gdyby świat się skończył nie chciałbyś mieć " -"niczego innego przy swoim boku niż twój wysłużony łuk. Gdy więc się " -"skończył, był pierwszą rzeczą którą ze sobą wziąłeś." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166101,15 +161517,11 @@ msgstr "Myśliwy Łuczniczka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"Od dziecka kochałaś polować, a wkrótce potem polubiłaś wyzwanie jakie niesie" -" myślistwo z łukiem. Dlatego, gdyby świat się skończył nie chciałabyś mieć " -"niczego innego przy swoim boku niż twój wysłużony łuk. Gdy więc się " -"skończył, był pierwszą rzeczą którą ze sobą wzięłaś." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166120,15 +161532,11 @@ msgstr "Myśliwy Kusznik" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"Od dziecka kochałeś polować, a wkrótce potem polubiłeś wyzwanie jakie niesie" -" myślistwo z kuszą. Dlatego, gdyby świat się skończył nie chciałbyś mieć " -"niczego innego przy swoim boku niż twoja wysłużona kusza. Gdy więc się " -"skończył, była pierwszą rzeczą którą ze sobą wziąłeś." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166139,15 +161547,11 @@ msgstr "Myśliwy Kuszniczka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"Od dziecka kochałaś polować, a wkrótce potem polubiłaś wyzwanie jakie niesie" -" myślistwo z kuszą. Dlatego, gdyby świat się skończył nie chciałabyś mieć " -"niczego innego przy swoim boku niż twoja wysłużona kusza. Gdy więc się " -"skończył, była pierwszą rzeczą którą ze sobą wzięłaś." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166158,15 +161562,11 @@ msgstr "Myśliwy Pasjonat Strzelb" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"Od dziecka kochałeś polować, a wkrótce potem polubiłeś wyzwanie jakie niesie" -" myślistwo ze strzelbą. Dlatego, gdyby świat się skończył nie chciałbyś mieć" -" niczego innego przy swoim boku niż twoja wysłużona strzelba. Gdy więc się " -"skończył, była pierwszą rzeczą którą ze sobą wziąłeś." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166177,15 +161577,11 @@ msgstr "Myśliwy Pasjonatka Strzelb" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"Od dziecka kochałaś polować, a wkrótce potem polubiłaś wyzwanie jakie niesie" -" myślistwo ze strzelbą. Dlatego, gdyby świat się skończył nie chciałabyś " -"mieć niczego innego przy swoim boku niż twoja wysłużona strzelba. Gdy więc " -"się skończył, była pierwszą rzeczą którą ze sobą wzięłaś." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166196,15 +161592,11 @@ msgstr "Myśliwy Pasjonat Sztucerów" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"Od dziecka kochałeś polować, a wkrótce potem polubiłeś wyzwanie jakie niesie" -" myślistwo ze sztucerem. Dlatego, gdyby świat się skończył nie chciałbyś " -"mieć niczego innego przy swoim boku niż twój wysłużony sztucer. Gdy więc się" -" skończył, był pierwszą rzeczą którą ze sobą wziąłeś." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166215,15 +161607,11 @@ msgstr "Myśliwy Pasjonatka Sztucerów" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"Od dziecka kochałaś polować, a wkrótce potem polubiłaś wyzwanie jakie niesie" -" myślistwo ze sztucerem. Dlatego, gdyby świat się skończył nie chciałabyś " -"mieć niczego innego przy swoim boku niż twój wysłużony sztucer. Gdy więc się" -" skończył, był pierwszą rzeczą którą ze sobą wzięłaś." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166234,15 +161622,11 @@ msgstr "Złota Rączka" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"Pracowałeś w lokalnym sklepie metalowym, i przeprowadzałeś sam wiele " -"domowych renowacji i przeróbek. Teraz patrzysz na horyzont zrujnowanego " -"świata, i myślisz - czy twoje ubogie umiejętności i garść wyposażenia, które" -" wziąłeś przed wyjściem, wystarczą by go odbudować?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166253,15 +161637,11 @@ msgstr "Złota Rączka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"Pracowałaś w lokalnym sklepie metalowym, i przeprowadzałaś sama wiele " -"domowych renowacji i przeróbek. Teraz patrzysz na horyzont zrujnowanego " -"świata, i myślisz - czy twoje ubogie umiejętności i garść wyposażenia, które" -" wzięłaś przed wyjściem, wystarczą by go odbudować?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166272,9 +161652,8 @@ msgstr "Kierowca ciężarówki" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -166286,9 +161665,8 @@ msgstr "Kierowczyni ciężarówki" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -166330,13 +161708,11 @@ msgstr "Plecakowy Turysta" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Żyłeś w podróży, zwiedzając to tu to tam, finansując się z funduszu " -"powierniczego rodziców. Ale teraz już ich nie ma, a jedyną rzeczą stojącą " -"pomiędzy tobą a śmiercią to otwarta droga i plecak." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166347,13 +161723,11 @@ msgstr "Plecakowa Turystka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Żyłaś w podróży, zwiedzając to tu to tam, finansując się z funduszu " -"powierniczego rodziców. Ale teraz już ich nie ma, a jedyną rzeczą stojącą " -"pomiędzy tobą a śmiercią to otwarta droga i plecak." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166364,11 +161738,10 @@ msgstr "Kucharz Fast Foodów" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Jeszcze przed tygodniem pracowałeś w wymyślnej sieciówce z szybkim żarciem, " -"a teraz znaczenie \"szybkiego\" żarcia pokazujesz uciekając przed śmiercią." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166379,11 +161752,10 @@ msgstr "Kucharka Fast Foodów" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Jeszcze przed tygodniem pracowałaś w wymyślnej sieciówce z szybkim żarciem, " -"a teraz znaczenie \"szybkiego\" żarcia pokazujesz uciekając przed śmiercią." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166394,10 +161766,8 @@ msgstr "Elektryk" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" #: lang/json/professions_from_json.py @@ -166409,10 +161779,8 @@ msgstr "Elektryk" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" #: lang/json/professions_from_json.py @@ -166424,13 +161792,11 @@ msgstr "Haker Komputerowy" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"Pigułki z kofeiną i nocki przy kompie dały ci umiejętności w obszarze, który" -" - nie oszukujmy się - jest zasadniczo mniej niż przydatny gdy świat się " -"skończył. Chyba że znajdziesz serwer wojskowy." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166441,13 +161807,11 @@ msgstr "Haker Komputerowy" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" -"Pigułki z kofeiną i nocki przy kompie dały ci umiejętności w obszarze, który" -" - nie oszukujmy się - jest zasadniczo mniej niż przydatny gdy świat się " -"skończył. Chyba że znajdziesz serwer wojskowy." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166458,13 +161822,11 @@ msgstr "Uczeń" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Byłeś uczniem liceum, ale od egzaminów, które teraz musisz zdać znacznie " -"więcej zależy. Może nawet znajdziesz coś użytecznego w tych książkach, które" -" targałeś ze sobą oba semestry." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166475,13 +161837,11 @@ msgstr "Uczennica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Byłaś uczniem liceum, ale od egzaminów, które teraz musisz zdać znacznie " -"więcej zależy. Może nawet znajdziesz coś użytecznego w tych książkach, które" -" targałaś ze sobą oba semestry." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166492,9 +161852,9 @@ msgstr "Ofiara Prysznica" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" #: lang/json/professions_from_json.py @@ -166506,9 +161866,9 @@ msgstr "Ofiara Prysznica" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" #: lang/json/professions_from_json.py @@ -166520,11 +161880,9 @@ msgstr "Motocyklista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Spędziłeś większość życia na Harleyu więc to naturalne, że spędzisz resztę " -"jadąc na jednym z nich." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166535,11 +161893,9 @@ msgstr "Motocyklistka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Spędziłaś większość życia na Harleyu więc to naturalne, że spędzisz resztę " -"jadąc na jednym z nich." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166550,8 +161906,9 @@ msgstr "Tancerz Towarzyski" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" #: lang/json/professions_from_json.py @@ -166563,8 +161920,9 @@ msgstr "Tancerka Towarzyska" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" #: lang/json/professions_from_json.py @@ -166576,13 +161934,10 @@ msgstr "Bioniczny Złodziej" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Przeprowadziłeś wiele wyspecjalizowanych skoków, ale twoje zdobycze nic nie " -"znaczą w tym świecie. Wszystko co ci pozostało to twoje narzędzia i " -"nieskazitelny styl." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166593,13 +161948,10 @@ msgstr "Bioniczna Złodziejka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Przeprowadziłaś wiele wyspecjalizowanych skoków, ale twoje zdobycze nic nie " -"znaczą w tym świecie. Wszystko co ci pozostało to twoje narzędzia i " -"nieskazitelny styl." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166610,16 +161962,11 @@ msgstr "Bioniczny Pacjent" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"Gdy diagnoza okazała się pozytywna zapisałeś się na serie eksperymentalnych " -"bionicznych operacji chirurgicznych, które ocaliły ci życie. Teraz jesteś " -"zdrowszy niż kiedykolwiek przedtem, dzięki zestawowi bionicznych części " -"zasilanych twoimi funkcjami metabolicznymi. Czas wykorzystać ile się da z " -"drugiej szansy w życiu." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166630,16 +161977,11 @@ msgstr "Bioniczna Pacjentka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"Gdy diagnoza okazała się pozytywna zapisałaś się na serie eksperymentalnych " -"bionicznych operacji chirurgicznych, które ocaliły ci życie. Teraz jesteś " -"zdrowsza niż kiedykolwiek przedtem, dzięki zestawowi bionicznych części " -"zasilanych twoimi funkcjami metabolicznymi. Czas wykorzystać ile się da z " -"drugiej szansy w życiu." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166650,11 +161992,9 @@ msgstr "Pacjent" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Gdy diagnoza okazała się pozytywna, miałeś wolę życia by walczyć dalej. " -"Teraz musisz odnowić swoje przysięgi nieustępliwości w nowym świecie." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166665,11 +162005,9 @@ msgstr "Pacjentka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Gdy diagnoza okazała się pozytywna, miałaś wolę życia by walczyć dalej. " -"Teraz musisz odnowić swoje przysięgi nieustępliwości w nowym świecie." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166681,10 +162019,9 @@ msgstr "Niechętny Mutant" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" -"Byłeś ludzką świnką morską, używaną przez techników laboratoryjnych by " -"zrozumieć wielką siłę mutacji." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166696,10 +162033,9 @@ msgstr "Niechętna Mutantka" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" -"Byłaś ludzką świnką morską, używaną przez techników laboratoryjnych by " -"zrozumieć wielką siłę mutacji." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166711,12 +162047,9 @@ msgstr "Mutant Ochotnik" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"Twoje sny o zostaniu super-człowiekiem mutantem poprzez manipulację " -"genetyczną trochę nie spełniły twoich oczekiwań, ale gdy uderzył Kataklizm, " -"ty i naukowcy byliście gotowi wydać twoje nowe ciało na próbę." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166728,12 +162061,9 @@ msgstr "Mutantka Ochotnik" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" -"Twoje sny o zostaniu super-człowiekiem mutantem poprzez manipulację " -"genetyczną trochę nie spełniły twoich oczekiwań, ale gdy uderzył Kataklizm, " -"ty i naukowcy byliście gotowi wydać twoje nowe ciało na próbę." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166746,12 +162076,9 @@ msgctxt "prof_desc_male" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"Kiedyś byłeś normalny. Przed testami, przed procedurami, przed tym jak " -"odarto cię z zewnętrznych przejawów człowieczeństwa. Teraz jesteś bardziej " -"maszyną niż człowiekiem, ale to może być zaletą w obliczu czekających cię " -"koszmarów." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166764,12 +162091,9 @@ msgctxt "prof_desc_female" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"Kiedyś byłaś normalna. Przed testami, przed procedurami, przed tym jak " -"odarto cię z zewnętrznych przejawów człowieczeństwa. Teraz jesteś bardziej " -"maszyną niż człowiekiem, ale to może być zaletą w obliczu czekających cię " -"koszmarów." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166820,13 +162144,10 @@ msgstr "Bioniczny Atleta" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Jaka szkoda ze wydarzyła się apokalipsa; przepadła ci szansa na udział w " -"Cyberolimpiadzie. Teraz jedyną rzeczą stojącą pomiędzy tobą a śmiercią w " -"ramionach zombie jest twoja szalona cybernetyczna siła." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166837,13 +162158,10 @@ msgstr "Bioniczna Atletka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Jaka szkoda ze wydarzyła się apokalipsa; przepadła ci szansa na udział w " -"Cyberolimpiadzie. Teraz jedyną rzeczą stojącą pomiędzy tobą a śmiercią w " -"ramionach zombie jest twoja szalona cybernetyczna siła." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166854,14 +162172,10 @@ msgstr "Bioniczny Biegacz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" -"Byłeś takim typem sportowca, który nie mógł przestać ćwiczyć. Uwielbiasz " -"biegać i poprawiłeś swoje ciało, aby robić to jeszcze lepiej. Teraz masz " -"wiele okazji do uciekania przez zagrożeniem , ale to przecież twoja " -"specjalność." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166872,14 +162186,10 @@ msgstr "Bioniczny Biegacz" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" -"Byłaś takim typem sportowca, który nie mógł przestać ćwiczyć. Uwielbiasz " -"biegać i poprawiłaś swoje ciało, aby robić to jeszcze lepiej. Teraz masz " -"wiele okazji do uciekania przez zagrożeniem , ale to przecież twoja " -"specjalność." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166925,12 +162235,9 @@ msgstr "Bioniczny Strażak" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"Jako ulepszony cybernetycznie strażak drugiej generacji, wszczepy pozwalają " -"ci działać w najbardziej skrajnych sytuacjach alarmowych. Koniec świata " -"zdecydowanie zalicza się do skrajnych sytuacji alarmowych." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166942,12 +162249,9 @@ msgstr "Bioniczna Strażak" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" -"Jako ulepszona cybernetycznie pani strażak drugiej generacji, wszczepy " -"pozwalają ci działać w najbardziej skrajnych sytuacjach alarmowych. Koniec " -"świata zdecydowanie zalicza się do skrajnych sytuacji alarmowych." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166958,13 +162262,10 @@ msgstr "Bioniczny Naukowiec" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" -"Przed apokalipsą byłeś zatrudniony przez dużą międzynarodową korporację jako" -" przedstawiciel i doradca techniczny, używając do tego niezwykłej mocy " -"swojego cybernetycznie ulepszonego umysłu." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -166975,13 +162276,10 @@ msgstr "Bioniczna Naukowiec" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" -"Przed apokalipsą byłaś zatrudniony przez dużą międzynarodową korporację jako" -" przedstawicielka i doradczyni techniczna, używając do tego niezwykłej mocy " -"swojego cybernetycznie ulepszonego umysłu." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -166992,14 +162290,10 @@ msgstr "Bioniczny Żołnierz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"Jesteś produktem jednego z najnowszych w pełni opracowanych wojskowych " -"programów badawczych, prototypowym cybernetycznym żołnierzem. Wciąż żyjesz " -"dzięki swoim wszczepom, nawet gdy twoi towarzysze polegli w walce z " -"nieumarłymi." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167010,14 +162304,10 @@ msgstr "Bioniczna Żołnierka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" -"Jesteś produktem jednego z najnowszych w pełni opracowanych wojskowych " -"programów badawczych, prototypową cybernetyczną żołnierką. Wciąż żyjesz " -"dzięki swoim wszczepom, nawet gdy twoi towarzysze polegli w walce z " -"nieumarłymi." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167028,13 +162318,11 @@ msgstr "Bioniczny Snajper" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Twoja bionika, wyposażenie, i długie treningi polowe pozwalają ci kłaść cele" -" z niewiarygodnych odległości, nawet po tygodniach pełnej izolacji na wrogim" -" terytorium." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167045,13 +162333,11 @@ msgstr "Bioniczna Snajperka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Twoja bionika, wyposażenie, i długie treningi polowe pozwalają ci kłaść cele" -" z niewiarygodnych odległości, nawet po tygodniach pełnej izolacji na wrogim" -" terytorium." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167062,15 +162348,11 @@ msgstr "Bioniczny Agent" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Twoje ciało nosi kilka bionicznych wszczepów wartych miliony dolarów, " -"opłaconych z publicznych pieniędzy. Rząd zmienił cię w specjalistę od " -"infiltracji i rozpoznania: masz noktowizję, alarm, zdolności ślusarskie i " -"moduł hakerski." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167081,15 +162363,11 @@ msgstr "Bioniczna Agentka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Twoje ciało nosi kilka bionicznych wszczepów wartych miliony dolarów, " -"opłaconych z publicznych pieniędzy. Rząd zmienił cię w specjalistkę od " -"infiltracji i rozpoznania: masz noktowizję, alarm, zdolności ślusarskie i " -"moduł hakerski." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167102,11 +162380,8 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"Jako produkt tajnych badań naukowych za miliony dolarów, jesteś bionicznym " -"uśpionym agentem, zdolnym po cichu zlikwidować swój cel zachowując " -"niepozorny wygląd." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167119,11 +162394,8 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" -"Jako produkt tajnych badań naukowych za miliony dolarów, jesteś bioniczną " -"uśpioną agentką, zdolną po cichu zlikwidować swój cel zachowując niepozorny " -"wygląd." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167134,17 +162406,11 @@ msgstr "Bioniczny Gangster" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" -"Byłeś ulubieńcem szefa, ich protegowanym; zawsze liczyli na ciebie przy " -"najtrudniejszych robotach. Widząc twój potencjał zainwestowali w " -"\"podstawowe\" ulepszenia i najlepszy sprzęt na rynku by lepiej wspomagał " -"cię w robocie. Po tym jak cieszyłeś się pewnym okresem swobody robiąc to co " -"chcesz, teraz będziesz potrzebować tych umiejętności by przetrwać." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167155,17 +162421,11 @@ msgstr "Bioniczny Gangster" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" -"Byłaś ulubieńcem szefa, ich protegowaną; zawsze liczyli na ciebie przy " -"najtrudniejszych robotach. Widząc twój potencjał zainwestowali w " -"\"podstawowe\" ulepszenia i najlepszy sprzęt na rynku by lepiej wspomagał " -"cię w robocie. Po tym jak cieszyłaś się pewnym okresem swobody robiąc to co " -"chcesz, teraz będziesz potrzebować tych umiejętności by przetrwać." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167176,13 +162436,10 @@ msgstr "Nieudany Cyborg" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Twoje ciało to złomowisko bionicznych części. Masz znaczne rezerwy mocy, ale" -" wypełniają cię popsute części bioniczne. Przynajmniej twoje zasilanie na " -"etanol wciąż działa." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167193,13 +162450,10 @@ msgstr "Nieudana Cyborg" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Twoje ciało to złomowisko bionicznych części. Masz znaczne rezerwy mocy, ale" -" wypełniają cię popsute części bioniczne. Przynajmniej twoje zasilanie na " -"etanol wciąż działa." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167211,10 +162465,7 @@ msgstr "Komercyjny Cyborg" msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" #: lang/json/professions_from_json.py @@ -167227,10 +162478,7 @@ msgstr "Komercyjna Cyborg" msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" #: lang/json/professions_from_json.py @@ -167273,12 +162521,9 @@ msgstr "Traper" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"Większość życia spędziłeś z ojcem na traperstwie. Oboje mieliście przyzwoite" -" życie ze sprzedaży zdobyczy i poradników traperstwa. Oby twoje umiejętności" -" przydały się przeciwko mniej konwencjonalnej zwierzynie." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167290,12 +162535,9 @@ msgstr "Traperka" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" -"Większość życia spędziłaś z ojcem na traperstwie. Oboje mieliście przyzwoite" -" życie ze sprzedaży zdobyczy i poradników traperstwa. Oby twoje umiejętności" -" przydały się przeciwko mniej konwencjonalnej zwierzynie." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167306,13 +162548,10 @@ msgstr "Kowal" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"Przechodziłeś przez program kowalstwa zorganizowany przez lokalny koledż, " -"gdy skończył się świat. Kłopoty zaczęły się po wyjściu z zajęć, ale nie " -"straciłeś sprzętu który miałeś wtedy przy sobie." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167323,13 +162562,10 @@ msgstr "Kowalka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"Przechodziłaś przez program kowalstwa zorganizowany przez lokalny koledż, " -"gdy skończył się świat. Kłopoty zaczęły się po wyjściu z zajęć, ale nie " -"straciłaś sprzętu który miałeś wtedy przy sobie." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167342,12 +162578,8 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"Wszystkiego czego w życiu chciałeś to wywoływać śmiech na twarzach ludzi. " -"Wypadnięcie ze szkoły i uczestnictwo w imprezach dla dzieci było spełnieniem" -" marzeń, aż świat się skończył. W twojej przyszłości jest kilka cennych " -"balonowych zwierząt." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167360,12 +162592,8 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" -"Wszystkiego czego w życiu chciałaś to wywoływać śmiech na twarzach ludzi. " -"Wypadnięcie ze szkoły i uczestnictwo w imprezach dla dzieci było spełnieniem" -" marzeń, aż świat się skończył. W twojej przyszłości jest kilka cennych " -"balonowych zwierząt." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167376,15 +162604,11 @@ msgstr "Zagubiony Poddany" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"We wczesnej fazy ucieczki ku bezpiecznym schronieniom zły los rozdzielił cię" -" z mistrzem. Jesteś teraz sam na własną rękę, nie mając nic przy sobie " -"oprócz skórzanego perwersyjnego kombinezonu. Niestety nie ma bezpiecznych " -"słów podczas apokalipsy." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167395,15 +162619,11 @@ msgstr "Zagubiona Poddana" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"We wczesnej fazy ucieczki ku bezpiecznym schronieniom zły los rozdzielił cię" -" z mistrzem. Jesteś teraz sama na własną rękę, nie mając nic przy sobie " -"oprócz skórzanego perwersyjnego kombinezonu. Niestety nie ma bezpiecznych " -"słów podczas apokalipsy." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167448,14 +162668,11 @@ msgstr "Otaku" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Późne noce z kolegami na oglądaniu anime i jedzeniu przekąsek przygotowały " -"cię do głównego konwentu anime na Północnym Wschodzie. Tylko że akurat " -"przypadał na dzień apokalipsy. Przynajmniej byłeś przygotowany na wypadek " -"gdyby kostium ci się podarł." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167466,14 +162683,11 @@ msgstr "Otaku" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Późne noce z koleżankami na oglądaniu anime i jedzeniu przekąsek " -"przygotowały cię do głównego konwentu anime na Północnym Wschodzie. Tylko że" -" akurat przypadał na dzień apokalipsy. Przynajmniej byłaś przygotowana na " -"wypadek gdyby kostium ci się podarł." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167510,11 +162724,9 @@ msgstr "Koleś od Punk Rocka" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"Apokalipsa to spełnienie twoich psychotycznych snów. Teraz gdy system w " -"końcu leży, czas poimprezować na kościach świata!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167525,11 +162737,9 @@ msgstr "Laska od Punk Rocka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"Apokalipsa to spełnienie twoich psychotycznych snów. Teraz gdy system w " -"końcu leży, czas poimprezować na kościach świata!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167540,16 +162750,11 @@ msgstr "Strażak" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Jako członek grupy pierwszego reagowania widziałeś na własne oczy " -"wykręcające flaki koszmary apokalipsy. Oddzielony podczas wezwania od " -"większości wyposażenia i twojej jednostki, byłeś zmuszony wywalczyć sobie " -"drogę ku bezpiecznemu miejscu z użyciem zaufanego żelastwa i stroju " -"gaśniczego do obrony." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167560,16 +162765,11 @@ msgstr "Strażak" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Jako członek grupy pierwszego reagowania widziałeś na własne oczy " -"wykręcające flaki koszmary apokalipsy. Oddzielony podczas wezwania od " -"większości wyposażenia i twojej jednostki, byłeś zmuszony wywalczyć sobie " -"drogę ku bezpiecznemu miejscu z użyciem zaufanego żelastwa i stroju " -"gaśniczego do obrony." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167580,7 +162780,7 @@ msgstr "Niegrzeczny Chłopiec" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -167593,7 +162793,7 @@ msgstr "Niegrzeczna Dziewczynka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -167606,11 +162806,9 @@ msgstr "Listonosz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Twoje umiejętności unikania psów i porzuconych zabawek podczas doręczania " -"poczty dają ci przewagę w nowej roli ocalałego." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167621,11 +162819,9 @@ msgstr "Listonoszka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Twoje umiejętności unikania psów i porzuconych zabawek podczas doręczania " -"poczty dają ci przewagę w nowej roli ocalałej." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167636,8 +162832,9 @@ msgstr "Skazany" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -167649,8 +162846,9 @@ msgstr "Skazana" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -167662,13 +162860,10 @@ msgstr "Skazaniec Z Celi Śmierci" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so 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" @@ -167679,13 +162874,10 @@ msgstr "Skazaniec Z Celi Śmierci" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so 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" @@ -167698,12 +162890,8 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" -"Wpadłeś na genialny plan uszczknięcia nieco fortuny jaką dysponowało " -"przedsiębiorstwo w którym pracowałeś. Koniec końców plan miał parę dziur, a " -"ty skończyłeś w kajdanach. Mówili ci że jesteś zbyt miękki na więzienie, ale" -" udało ci się ich przeżyć." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167716,12 +162904,8 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" -"Wpadłaś na genialny plan uszczknięcia nieco fortuny jaką dysponowało " -"przedsiębiorstwo w którym pracowałaś. Koniec końców plan miał parę dziur, a " -"ty skończyłaś w kajdanach. Mówili ci że jesteś zbyt miękka na więzienie, ale" -" udało ci się ich przeżyć." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167766,11 +162950,10 @@ msgstr "Więzień polityczny" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" -"Odkrycie prawdy o utajnionych laboratoriach było szczytnym celem Wiesz że " -"mógłbyś zapobiec Kataklizmowi gdyby nie ta skorumpowana władza." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167781,11 +162964,10 @@ msgstr "Więźniarka polityczna" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" -"Odkrycie prawdy o utajnionych laboratoriach było szczytnym celem Wiesz że " -"mogłabyś zapobiec Kataklizmowi gdyby nie ta skorumpowana władza." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167824,11 +163006,10 @@ msgstr "Włamywacz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Myślałeś, że to będzie twój szczęśliwy włam. Czy to się liczy jako kradzież " -"z włamaniem, jeśli całe miasto to nieumarli?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167839,11 +163020,10 @@ msgstr "Włamywaczka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Myślałaś, że to będzie twój szczęśliwy włam. Czy to się liczy jako kradzież " -"z włamaniem, jeśli całe miasto to nieumarli?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167854,15 +163034,9 @@ msgstr "Chłopiec Żyleta" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"Przez serie bolesnych i drogich zabiegów chirurgicznych stałeś się chodzącą " -"bronią, oferując swoje najemnicze usługi licytującym najwyższe ceny. Teraz, " -"gdy świat się skończył, te wszczepy mogą być tą cienką linią pomiędzy życiem" -" a śmiercią." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167873,15 +163047,9 @@ msgstr "Dziewczyna Żyleta" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"Przez serie bolesnych i drogich zabiegów chirurgicznych stałaś się chodzącą " -"bronią, oferując swoje najemnicze usługi licytującym najwyższe ceny. Teraz, " -"gdy świat się skończył, te wszczepy mogą być tą cienką linią pomiędzy życiem" -" a śmiercią." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167894,14 +163062,9 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Dawno temu twoje trwające całe życie zauroczenie bionicznymi ulepszeniami " -"zaprowadziły cię w szarą strefę szemranych klinik z ciemnych alejek i " -"ręcznie instalowanych wszczepów z drugiej ręki. Świat poszedł naprzód, ale " -"twój post-ludzki głód nadal pragnie być zaspokojony. Gdzie teraz zdobędziesz" -" swoją kolejną bioniczną 'działkę'?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167914,14 +163077,9 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Dawno temu twoje trwające całe życie zauroczenie bionicznymi ulepszeniami " -"zaprowadziły cię w szarą strefę szemranych klinik z ciemnych alejek i " -"ręcznie instalowanych wszczepów z drugiej ręki. Świat poszedł naprzód, ale " -"twój post-ludzki głód nadal pragnie być zaspokojony. Gdzie teraz zdobędziesz" -" swoją kolejną bioniczną 'działkę'?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167933,15 +163091,9 @@ msgstr "Bioniczny Potwór" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Całkowicie pochłonięty bionicznie nakręconą psychozą, stałeś się " -"zdeformowanym post-ludzkim potworem, dla którego nie ma miejsca w " -"społeczeństwie. Ale teraz, ty, który byłeś zmuszony kryć się w cieniu, " -"odnajdujesz w tym spustoszeniu świat, w którym nawet stworzenie takie jak ty" -" znajdzie swoją niszę." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167953,15 +163105,9 @@ msgstr "Bioniczny Potwór" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Całkowicie pochłonięta bionicznie nakręconą psychozą, stałaś się " -"zdeformowanym post-ludzkim potworem, dla którego nie ma miejsca w " -"społeczeństwie. Ale teraz, ty, która byłaś zmuszona kryć się w cieniu, " -"odnajdujesz w tym spustoszeniu świat, w którym nawet stworzenie takie jak ty" -" znajdzie swoją niszę." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -167972,11 +163118,10 @@ msgstr "Prawnik" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Teraz zamiast narzekać na paskarskie ceny, twoi klienci próbują wyjeść ci " -"mózg. Nie możesz się zdecydować co jest gorsze." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -167987,11 +163132,10 @@ msgstr "Prawniczka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Teraz zamiast narzekać na paskarskie ceny, twoi klienci próbują wyjeść ci " -"mózg. Nie możesz się zdecydować co jest gorsze." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168002,14 +163146,10 @@ msgstr "Kapłan" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Gdy uderzyła apokalipsa, robiłeś co w twojej mocy by chronić wiernych twojej" -" parafii, ale wygląda na to że modły nie wystarczyły. Teraz gdy wszyscy nie " -"żyją, powinieneś prawdopodobnie znaleźć coś bardziej namacalnego do obrony." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168020,14 +163160,10 @@ msgstr "Kapłanka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Gdy uderzyła apokalipsa, robiłaś co w twojej mocy by chronić wiernych twojej" -" parafii, ale wygląda na to że modły nie wystarczyły. Teraz gdy wszyscy nie " -"żyją, powinnaś prawdopodobnie znaleźć coś bardziej namacalnego do obrony." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168073,14 +163209,10 @@ msgstr "Imam" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Spędzałeś wiele czasu sprzed apokalipsy w miejscowym meczecie, studiując " -"słowa Proroka i Koranu, i prowadząc swoją społeczność w modlitwach. Wtedy " -"przybywali zewsząd by słuchać twoich słów, teraz przybywają by wyżreć ci " -"mózg." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168092,14 +163224,10 @@ msgstr "Morchidat" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Spędzałaś wiele czasu sprzed apokalipsy w miejscowym meczecie, studiując " -"słowa Proroka i Koranu, i prowadząc swoją społeczność w modlitwach. Wtedy " -"przybywali zewsząd by słuchać twoich słów, teraz przybywają by wyżreć ci " -"mózg." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168171,13 +163299,10 @@ msgstr "Kaznodzieja" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"Poświęciłeś życie by głosić dobrą nowinę, zawsze w drodze, z miasta do " -"miasta. Teraz wszystko poszło do diabła, nie możesz prowadzić swojej " -"codziennej audycji, a zombie nie są zbytnio poruszeni twoimi kazaniami. " #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168189,13 +163314,10 @@ msgstr "Kaznodziejka" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"Poświęciłaś życie by głosić dobrą nowinę, zawsze w drodze, z miasta do " -"miasta. Teraz wszystko poszło do diabła, nie możesz prowadzić swojej " -"codziennej audycji, a zombie nie są zbytnio poruszeni twoimi kazaniami." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168206,11 +163328,9 @@ msgstr "Nowicjusz Sztuk Walki" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Byłeś w drodze do dojo na swoją pierwszą lekcję, a tu skończył się świat. A " -"tak bardzo chciałeś nauczyć się także pływać." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168221,11 +163341,9 @@ msgstr "Nowicjuszka Sztuk Walki" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Byłaś w drodze do dojo na swoją pierwszą lekcję, a tu skończył się świat. A " -"tak bardzo chciałaś nauczyć się także pływać." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168296,11 +163414,9 @@ msgstr "Bokser" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Trenowałeś do walki życia przed nastaniem Kataklizmu. Teraz walczysz tylko o" -" przetrwanie." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168311,11 +163427,9 @@ msgstr "Bokserka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Trenowałaś do walki życia przed nastaniem Kataklizmu. Teraz walczysz tylko o" -" przetrwanie." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168327,9 +163441,9 @@ msgstr "Dostarczyciel Pizzy" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -168342,9 +163456,9 @@ msgstr "Dostarczycielka Pizzy" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -168356,13 +163470,10 @@ msgstr "Archeolog" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"W drodze do zaginionej świątyni po śladach z pamiętnika świętej pamięci " -"dziadka, zatrzęsła się ziemia. Mając złe przeczucia udałeś się do " -"najbliższego schronu. " #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168373,13 +163484,10 @@ msgstr "Archeolożka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" -"W drodze do zaginionej świątyni po śladach z pamiętnika świętej pamięci " -"dziadka, zatrzęsła się ziemia. Mając złe przeczucia udałaś się do " -"najbliższego schronu." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168390,13 +163498,10 @@ msgstr "Gazeciarz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Doręczałeś poranne gazety wzdłuż twojej stałej trasy, gdy Kataklizm uderzył." -" Hordy nieumarłych nie cenią świeżych wiadomości, ale przynajmniej twój " -"zaufany rower jest nadal na chodzie." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168407,13 +163512,10 @@ msgstr "Gazeciarka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Doręczałaś poranne gazety wzdłuż twojej stałej trasy, gdy Kataklizm uderzył." -" Hordy nieumarłych nie cenią świeżych wiadomości, ale przynajmniej twój " -"zaufany rower jest nadal na chodzie." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168424,15 +163526,11 @@ msgstr "Zawodnik Roller Derby" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"Przed apokalipsą byłeś piekłem na kółkach. Teraz reszta drużyny nie żyje, a " -"ty nie przeżyłbyś tak długo gdyby nie twoje zamiłowanie do wysokich " -"szybkości i przemocy. Rzeczy mają się źle; ile jeszcze okrążeń wokół " -"nieumarłych zanim zblokują cię na dobre?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168443,15 +163541,11 @@ msgstr "Zawodniczka Roller Derby" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"Przed apokalipsą byłaś piekłem na kółkach. Teraz reszta drużyny nie żyje, a " -"ty nie przeżyłabyś tak długo gdyby nie twoje zamiłowanie do wysokich " -"szybkości i przemocy. Rzeczy mają się źle; ile jeszcze okrążeń wokół " -"nieumarłych zanim zblokują cię na dobre?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168462,9 +163556,9 @@ msgstr "Rolnik" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -168476,9 +163570,9 @@ msgstr "Rolnik" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -168490,13 +163584,10 @@ msgstr "Gwardzista Gwardii Narodowej" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"Twoją jednostkę Gwardii Narodowej zmobilizowano gdy rozprzestrzeniła się " -"epidemia. Pomimo najlepszych wysiłków, nie zdołałeś się z nimi połączyć " -"zanim ustała komunikacja i znalazłeś się pośród martwych." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168507,13 +163598,10 @@ msgstr "Gwardzistka Gwardii Narodowej" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"Twoją jednostkę Gwardii Narodowej zmobilizowano gdy rozprzestrzeniła się " -"epidemia. Pomimo najlepszych wysiłków, nie zdołałaś się z nimi połączyć " -"zanim ustała komunikacja i znalazłaś się pośród martwych." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168525,8 +163613,8 @@ msgstr "Zatwardziały Szabrownik" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -168539,8 +163627,8 @@ msgstr "Zatwardziała Szabrowniczka" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -168552,15 +163640,11 @@ msgstr "Wytrwały Żołnierz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"Musiałeś być nad wyraz uważny na szkoleniu surwiwalowym na obozie " -"szkoleniowym, bo jak inaczej zdołałbyś przetrwać dłużej niż cały łańcuch " -"dowodzenia, by znaleźć się w tym trudnym położeniu? Jedyna misja teraz to " -"przeżyć." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168571,15 +163655,11 @@ msgstr "Wytrwała Żołnierka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"Musiałaś być nad wyraz uważna na szkoleniu surwiwalowym na obozie " -"szkoleniowym, bo jak inaczej zdołałabyś przetrwać dłużej niż cały łańcuch " -"dowodzenia, by znaleźć się w tym trudnym położeniu? Jedyna misja teraz to " -"przeżyć." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168590,13 +163670,10 @@ msgstr "Ochroniarz Centrum Handlowego" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Byłeś ochroniarzem w centrum handlowym. Nie masz przydatnych umiejętności, " -"oprócz podstawowego treningu do pracy. Masz za to zaufany taser, pałkę i " -"kieszonkowy nóż." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168607,13 +163684,10 @@ msgstr "Ochroniarz Centrum Handlowego" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Byłaś ochroniarzem w centrum handlowym. Nie masz przydatnych umiejętności, " -"oprócz podstawowego treningu do pracy. Masz za to zaufany taser, pałkę i " -"kieszonkowy nóż." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168624,13 +163698,10 @@ msgstr "Naturalista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"Doszedłeś do zrozumienia Matki Natury przez długie lata dobrowolnego " -"wygnania w dzicz. Świat jaki znał twój zapomniany gatunek mógł przestać " -"istnieć, ale ty ledwo zauważasz różnicę." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168641,13 +163712,10 @@ msgstr "Naturalistka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" -"Doszłaś do zrozumienia Matki Natury przez długie lata dobrowolnego wygnania " -"w dzicz. Świat jaki znał twój zapomniany gatunek mógł przestać istnieć, ale " -"ty ledwo zauważasz różnicę." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168658,15 +163726,11 @@ msgstr "Wędkarz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Spędzałeś większość swych dni po prostu wędkując na bagnach i po cichu żyjąc" -" ze zdobyczy. Radowało cię bzyczenie owadów, ale te urosły i stały się " -"groźniejsze. Teraz ich okropne dźwięki powodują u ciebie strach - masz " -"nadzieje żeby ryby nie okazały się równie paskudne." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168677,15 +163741,11 @@ msgstr "Wędkarka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Spędzałaś większość swych dni po prostu wędkując na bagnach i po cichu żyjąc" -" ze zdobyczy. Radowało cię bzyczenie owadów, ale te urosły i stały się " -"groźniejsze. Teraz ich okropne dźwięki powodują u ciebie strach - masz " -"nadzieje żeby ryby nie okazały się równie paskudne." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168761,11 +163821,9 @@ msgstr "Operator Dronów" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Pracowałeś jako programista maszyn takich jak automatyczne zamiatacze ulic, " -"i drony dostarczające pizzę. Teraz wszystkie drony noszą broń zamiast pizzy." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168777,12 +163835,9 @@ msgstr "Operatorka Dronów" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Pracowałaś jako programistka maszyn takich jak automatyczne zamiatacze ulic," -" i drony dostarczające pizzę. Teraz wszystkie drony noszą broń zamiast " -"pizzy." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168793,11 +163848,10 @@ msgstr "Skejt" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"Uwielbiasz jeździć na desce! Przynajmniej teraz dorośli nie mówią ci gdzie " -"nie wolno jeździć." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168808,11 +163862,10 @@ msgstr "Skejterka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"Uwielbiasz jeździć na desce! Przynajmniej teraz dorośli nie mówią ci gdzie " -"nie wolno jeździć." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168823,15 +163876,11 @@ msgstr "Młodociany Delikwent" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"Nie obchodziło cię nigdy co każą dorośli, i dzięki temu spędzałeś całe dnie " -"w gabinecie dyrektora. Teraz okazuje się że brak potrzeby słuchania " -"dorosłych mówiących ci co masz robić jest jedynym powodem dla którego " -"żyjesz. Stary, trzeba było dziś pójść na wagary." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168842,15 +163891,11 @@ msgstr "Młodociana Delikwentka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"Nie obchodziło cię nigdy co każą dorośli, i dzięki temu spędzałaś całe dnie " -"w gabinecie dyrektora. Teraz okazuje się że brak potrzeby słuchania " -"dorosłych mówiących ci co masz robić jest jedynym powodem dla którego " -"żyjesz. Stary, trzeba było dziś pójść na wagary." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168892,14 +163937,10 @@ msgstr "Bioniczny Uczeń" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Twoi rodzice mieli taką obsesję na punkcie zaliczenia przez ciebie każdego " -"testu na maksimum, że wyposażyli cię w bionikę by zrobić cię mądrzejszym i " -"zapewnić doskonałą pamięć. I teraz gdy zdajesz najtrudniejszy dotąd test, " -"lepiej byś odniósł sukces, bo jak nie..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168911,14 +163952,10 @@ msgstr "Bioniczna Uczennica" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Twoi rodzice mieli taką obsesję na punkcie zaliczenia przez ciebie każdego " -"testu na maksimum, że wyposażyli cię w bionikę by uczynić cię mądrzejszą i " -"zapewnić doskonałą pamięć. I teraz gdy zdajesz najtrudniejszy dotąd test, " -"lepiej byś odniosła sukces, bo jak nie..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168929,11 +163966,10 @@ msgstr "Zawodnik Zbijaka" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Lubiłeś grę w dwa ognie, w której jak nie uniknąłeś piłki odpadałeś. Teraz " -"gdy nie unikniesz, umierasz. Lepiej się więc nie pośliznąć." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168944,11 +163980,10 @@ msgstr "Zawodniczka Zbijaka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Lubiłaś grę w dwa ognie, w której jak nie uniknęłaś piłki odpadałaś. Teraz " -"gdy nie unikniesz, umierasz. Lepiej się więc nie pośliznąć." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168959,14 +163994,10 @@ msgstr "Członek Klubu Naukowego" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"Byłeś członkiem klubu naukowego w liceum, i nadal jesteś wściekły, że szkoła" -" nie pozwalała ci na zabawę z naprawdę świetnymi chemikaliami, które robiły " -"boom! Przynajmniej teraz nie ma nikogo, kto by ci zabronił." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -168977,14 +164008,10 @@ msgstr "Członkini Klubu Naukowego" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"Byłaś członkiem klubu naukowego w liceum, i nadal jesteś wściekła, że szkoła" -" nie pozwalała ci na zabawę z naprawdę świetnymi chemikaliami, które robiły " -"boom! Przynajmniej teraz nie ma nikogo, kto by ci zabronił." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -168996,12 +164023,9 @@ msgstr "Członek Klubu A/V" msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"Byłeś członkiem szkolnego klubu audio wideo. Jesteś pewien, że jest sposób " -"aby twoje umiejętności techniczne pomogły ci przeżyć. Nie wymyśliłeś tylko " -"jeszcze jak zrobić wspaniały promień śmierci." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169013,12 +164037,9 @@ msgstr "Członkini Klubu A/V" msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" -"Byłaś członkiem szkolnego klubu audio wideo. Jesteś pewna, że jest sposób " -"aby twoje umiejętności techniczne pomogły ci przeżyć. Nie wymyśliłaś tylko " -"jeszcze jak zrobić wspaniały promień śmierci." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169029,12 +164050,10 @@ msgstr "Nauczyciel" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Uczyłeś dzieciaki całe swoje życie, i zasadniczo słuchały się ciebie. " -"Jednakże zombie nie postawisz do kąta za próbę zjedzenia cię żywcem." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169045,12 +164064,10 @@ msgstr "Nauczycielka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Uczyłaś dzieciaki całe swoje życie, i zasadniczo słuchały się ciebie. " -"Jednakże zombie nie postawisz do kąta za próbę zjedzenia cię żywcem." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169061,15 +164078,10 @@ msgstr "Fotoreporter" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Przed końcem byłeś fotoreporterem, wolnym strzelcem. Masz szansę być " -"pierwszym dziennikarzem, który udokumentuje apokalipsę, choć znalezienie " -"wydawcy może okazać się większym wyzwaniem niż dotąd. Udało ci się zachować " -"aparat, więc masz nadzieję na zrobienie kilku fantastycznych fotek." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169080,15 +164092,10 @@ msgstr "Fotoreporterka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Przed końcem byłaś fotoreporterką, wolnym strzelcem. Masz szansę być " -"pierwszą dziennikarką, która udokumentuje apokalipsę, choć znalezienie " -"wydawcy może okazać się większym wyzwaniem niż dotąd. Udało ci się zachować " -"aparat, więc masz nadzieję na zrobienie kilku fantastycznych fotek." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169099,11 +164106,10 @@ msgstr "Wuefista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Po karierze uczenia dzieci wszystkich możliwych sportów, których i tak nie " -"cierpiały, teraz to zombie odmawiają robienia okrążeń, nawet pomimo gwizdka." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169114,11 +164120,10 @@ msgstr "Wuefistka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Po karierze uczenia dzieci wszystkich możliwych sportów, których i tak nie " -"cierpiały, teraz to zombie odmawiają robienia okrążeń, nawet pomimo gwizdka." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169129,15 +164134,10 @@ msgstr "Obozowicz" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Zawsze lubiłeś wędrówki piesze i obozowanie w dziczy, zanim wszystko się " -"rozpadło, więc bez zastanowienia wziąłeś plecak i uciekłeś gdy zawyły " -"syreny. Świat może być w ruinie, ale ty zawsze zorganizujesz sobie dom " -"gdziekolwiek się znajdziesz." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169148,15 +164148,10 @@ msgstr "Obozowiczka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Zawsze lubiłaś wędrówki piesze i obozowanie w dziczy, zanim wszystko się " -"rozpadło, więc bez zastanowienia wzięłaś plecak i uciekłaś gdy zawyły " -"syreny. Świat może być w ruinie, ale ty zawsze zorganizujesz sobie dom " -"gdziekolwiek się znajdziesz." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169168,11 +164163,8 @@ msgstr "Górnik" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"Jesteś górnikiem nie góralem! Twoja menażka jest pusta, młot pneumatyczny " -"nie ma zasilania, i jedziesz na ostatniej parze baterii do swojego kasku " -"górniczego..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169184,11 +164176,8 @@ msgstr "Górniczka" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" -"Jesteś górniczką nie góralką! Twoja menażka jest pusta, młot pneumatyczny " -"nie ma zasilania, i jedziesz na ostatniej parze baterii do swojego kasku " -"górniczego..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169199,8 +164188,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -169212,8 +164202,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -169259,11 +164250,10 @@ msgstr "Turysta" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Przybyłeś tu posmakować Nowej Anglii; teraz masz nadzieję, że Nowa Anglia " -"nie posmakuje ciebie!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169274,11 +164264,10 @@ msgstr "Turystka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Przybyłaś tu posmakować Nowej Anglii; teraz masz nadzieję, że Nowa Anglia " -"nie posmakuje ciebie!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169289,12 +164278,10 @@ msgstr "Nagi i Przerażony" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Byłeś w dzikim lesie filmując reality show do telewizji gdy obsada i obsługa" -" najwyraźniej pozmieniała się w zombie. Teraz to już nie show a czysta " -"rzeczywistość..." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169305,12 +164292,10 @@ msgstr "Naga i Przerażona" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Byłaś w dzikim lesie filmując reality show do telewizji gdy obsada i obsługa" -" najwyraźniej pozmieniała się w zombie. Teraz to już nie show a czysta " -"rzeczywistość..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169322,14 +164307,10 @@ msgstr "Technik Augmentacji" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"Gdy pojawiły się bioniki byłeś jednym z pierwszych, którzy podążyli tą " -"ścieżką kariery, i spędzałeś dnie doglądając ich instalacji. Jako jeden z " -"niewielu nie-zombiech potrafiących skalibrować Autodoka, twoje umiejętności " -"mogą się przydać teraz przy końcu świata." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169341,14 +164322,10 @@ msgstr "Technik Augmentacji" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"Gdy pojawiły się bioniki byłaś jedną z pierwszych, którzy podążyli tą " -"ścieżką kariery, i spędzałaś dnie doglądając ich instalacji. Jako jedna z " -"niewielu nie-zombiech potrafiących skalibrować Autodoka, twoje umiejętności " -"mogą się przydać teraz przy końcu świata." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169359,16 +164336,11 @@ msgstr "Mistrz Gry" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"Próbując zaganiać koty do jednego miejsca każdego tygodnia nauczyło cię " -"czegoś: zazwyczaj lepiej jest ograniczać straty i ufać swoim zmysłom. " -"Dlatego, jeśli dwa razy nikt nie przyszedł a kolejnych dwóch chciało cię " -"zjeść, dałeś sobie siana. Może znajdziesz nowych graczy w zgliszczach nowego" -" świata." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169379,16 +164351,11 @@ msgstr "Mistrz Gry" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"Próbując zaganiać koty do jednego miejsca każdego tygodnia nauczyło cię " -"czegoś: zazwyczaj lepiej jest ograniczać straty i ufać swoim zmysłom. " -"Dlatego, jeśli dwa razy nikt nie przyszedł a kolejnych dwóch chciało cię " -"zjeść, dałaś sobie siana. Może znajdziesz nowych graczy w zgliszczach nowego" -" świata." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169400,16 +164367,10 @@ msgstr "Bioniczny Mistrz Gry" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"Doszedłeś do dużego majątku, poprzez szczęście lub spadek, i prowadziłeś gry" -" dla ludzi którzy większość świata znali tylko z widzenia. Mogłeś sobie " -"pozwolić żeby rozpieścić twoich graczy i to właśnie zrobiłeś. Zainwestowałeś" -" w bionikę żeby uczynić cię bystrzejszym i zapamiętałeś cały podręcznik. " -"Miejmy nadzieję, że wiedza teraz ci się przyda." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169421,16 +164382,10 @@ msgstr "Bioniczny Mistrz Gry" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"Doszłaś do dużego majątku, poprzez szczęście lub spadek, i prowadziłaś gry " -"dla ludzi którzy większość świata znali tylko z widzenia. Mogłaś sobie " -"pozwolić żeby rozpieścić twoich graczy i to właśnie zrobiłaś. Zainwestowałaś" -" w bionikę żeby uczynić cię bystrzejszym i zapamiętałaś cały podręcznik. " -"Miejmy nadzieję, że wiedza teraz ci się przyda." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169441,12 +164396,9 @@ msgstr "Opiekun Zoo" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Byłeś wezwany jak miałeś dzień wolny by nakarmić zwierzęta w zoo, ponieważ " -"żaden z twoich współpracowników nie pojawił w pracy się z tych czy innych " -"powodów." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169457,12 +164409,9 @@ msgstr "Opiekunka Zoo" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Byłaś wezwana jak miałaś dzień wolny by nakarmić zwierzęta w zoo, ponieważ " -"żaden z twoich współpracowników nie pojawił w pracy się z tych czy innych " -"powodów." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169473,11 +164422,9 @@ msgstr "Golfista" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" -"Zdecydowałeś, by wyjechać od rodziny na cały dzień by samemu pograć trochę w" -" golfa." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -169488,11 +164435,9 @@ msgstr "Golfistka" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" -"Zdecydowałaś, by wyjechać od rodziny na cały dzień by samej pograć trochę w " -"golfa." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -169539,11 +164484,10 @@ msgstr "" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 @@ -169555,41 +164499,38 @@ msgstr "" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "Competetive Fencer" +msgid "Competitive Fencer" msgstr "" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" +msgid "Competitive Fencer" msgstr "" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py @@ -169629,8 +164570,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" #: lang/json/professions_from_json.py @@ -169642,8 +164583,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" #: lang/json/professions_from_json.py @@ -169655,9 +164596,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" #: lang/json/professions_from_json.py @@ -169669,9 +164610,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" #: lang/json/professions_from_json.py @@ -169683,9 +164624,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" #: lang/json/professions_from_json.py @@ -169697,9 +164638,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" #: lang/json/professions_from_json.py @@ -169712,7 +164653,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -169725,7 +164666,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -169739,7 +164680,8 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -169753,7 +164695,8 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -169765,10 +164708,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -169780,10 +164723,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -170128,6 +165071,40 @@ msgid "" " seems that your combat skills might come useful once again." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" @@ -171214,306 +166191,6 @@ msgid "" "find some other use." msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Brave of the King" -msgstr "Odważny Króla" - -#. ~ Profession (male Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Elitarna piechota starożytnego Egiptu i ochroniarze Faraona. Choć zbroje " -"były rzadkie z uwagi na pustynne warunki, takie wyposażenie było w użyciu za" -" czasów Nowego Królestwa." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Brave of the King" -msgstr "Odważna Króla" - -#. ~ Profession (female Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Elitarna piechota starożytnego Egiptu i ochroniarze Faraona. Choć zbroje " -"były rzadkie z uwagi na pustynne warunki, takie wyposażenie było w użyciu za" -" czasów Nowego Królestwa." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hoplite" -msgstr "Hoplita" - -#. ~ Profession (male Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Ciężka piechota starożytnej Grecji i miast-państw, sprzed przesunięciem w " -"kierunku macedońskiej falangi. Dobrze wyćwiczeni w walce w formacji, ale " -"mniej efektywni gdy wymanewrowani lub na spękanej ziemi." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hoplite" -msgstr "Hoplita" - -#. ~ Profession (female Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Ciężka piechota starożytnej Grecji i miast-państw, sprzed przesunięciem w " -"kierunku macedońskiej falangi. Dobrze wyćwiczeni w walce w formacji, ale " -"mniej efektywni gdy wymanewrowani lub na spękanej ziemi." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Legionary" -msgstr "Legionista" - -#. ~ Profession (male Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Ciężka piechota starożytnego Rzymu, po reformach wojskowych i standaryzacji " -"wyposażenia legionów. Uczeni walki w formacjach z oszczepem i mieczem, znani" -" też z fortyfikacji polowych." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Legionary" -msgstr "Legionistka" - -#. ~ Profession (female Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Ciężka piechota starożytnego Rzymu, po reformach wojskowych i standaryzacji " -"wyposażenia legionów. Uczeni walki w formacjach z oszczepem i mieczem, znani" -" też z fortyfikacji polowych." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Viking" -msgstr "Wiking" - -#. ~ Profession (male Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Złej sławy piraci wczesnego średniowiecza, najeźdźcy i odkrywcy z różnych " -"krajów skandynawskich." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Viking" -msgstr "Wiking" - -#. ~ Profession (female Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Złej sławy piraci wczesnego średniowiecza, najeźdźcy i odkrywcy z różnych " -"krajów skandynawskich." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Man-at-Arms" -msgstr "Pospolite Ruszenie" - -#. ~ Profession (Man-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Średniowieczna kawaleria z różnych części Europy, zarówno ze szlachty jak i " -"z gminu. Podczas gdy rycerze mogli być w pospolitym ruszeniu, nie każdy z " -"pospolitego ruszenia był rycerzem." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Woman-at-Arms" -msgstr "Pospolite Ruszenie" - -#. ~ Profession (Woman-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Średniowieczna kawaleria z różnych części Europy, zarówno ze szlachty jak i " -"z gminu. Podczas gdy rycerze mogli być w pospolitym ruszeniu, nie każdy z " -"pospolitego ruszenia był rycerzem." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Horse Archer" -msgstr "Konny Łucznik" - -#. ~ Profession (male Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Sławna lekka kawaleria imperium mongolskiego. Najbardziej znana z " -"umiejętności konnego strzelania z łuku." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Horse Archer" -msgstr "Konna Łuczniczka" - -#. ~ Profession (female Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Sławna lekka kawaleria imperium mongolskiego. Najbardziej znana z " -"umiejętności konnego strzelania z łuku." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Samurai" -msgstr "Samurajowie" - -#. ~ Profession (male Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Szlacheccy wojownicy feudalnej Japonii. Oryginalnie znani z jeździectwa " -"konnego i łucznictwa, stali się sławni z umiejętności szermierczych w " -"późniejszych erach." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Samurai" -msgstr "Samurajowie" - -#. ~ Profession (female Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Szlacheccy wojownicy feudalnej Japonii. Oryginalnie znani z jeździectwa " -"konnego i łucznictwa, stali się sławni z umiejętności szermierczych w " -"późniejszych erach." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Wanderer" -msgstr "Włóczykij" - -#. ~ Profession (male Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Zawsze wolałeś komfort otwartego nieba, z dala od złożoności nowoczesnego " -"życia. Choć wygląda na to, że sprawy się nieco pozmieniały od czasu kiedy " -"ostatnio zbliżyłeś się do cywilizacji." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Wanderer" -msgstr "Włóczykij" - -#. ~ Profession (female Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Zawsze wolałaś komfort otwartego nieba, z dala od złożoności nowoczesnego " -"życia. Choć wygląda na to, że sprawy się nieco pozmieniały od czasu kiedy " -"ostatnio zbliżyłaś się do cywilizacji." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Prehistoric Hunter" -msgstr "Prehistoryczny Łowca" - -#. ~ Profession (male Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Relikt prehistorii nie na swoim miejscu, zagubiony w nieznanym przerażającym" -" świecie. Życie jako zbieracz łowca było trudne, ale przynajmniej nie " -"walczyłeś z nieumarłymi, i miałeś swoich ludzi z plemienia przy sobie. Tutaj" -" jesteś sam." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Prehistoric Hunter" -msgstr "Prehistoryczna Łowczyni" - -#. ~ Profession (female Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Relikt prehistorii nie na swoim miejscu, zagubiona w nieznanym przerażającym" -" świecie. Życie jako zbieracz łowca było trudne, ale przynajmniej nie " -"walczyłaś z nieumarłymi, i miałaś swoich ludzi z plemienia przy sobie. Tutaj" -" jesteś sama." - #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sugar Boy" @@ -171540,862 +166217,6 @@ msgid "" "You have your whole life ahead of you and it's gonna be sweet!" msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Fighter" -msgstr "Wojownik" - -#. ~ Profession (male Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Mistrz broni i zbroi, i zaciekły wojownik w walce wręcz. Jesteś wojownikiem," -" wykutym w boju i zahartowanym na polu bitwy." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Fighter" -msgstr "Wojowniczka" - -#. ~ Profession (female Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Mistrzyni broni i zbroi, i zaciekła wojowniczka w walce wręcz. Jesteś " -"wojowniczką, wykutą w boju i zahartowaną na polu bitwy." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Rogue" -msgstr "Łotrzyk" - -#. ~ Profession (male Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Urwis z ulicy wyćwiczony w zwinnych sztuczkach, i zabójczy z ostrzem. Jesteś" -" łotrzykiem, pomysłowym kuglarzem, i mistrzem złodziejstwa." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Rogue" -msgstr "Łotrzyk" - -#. ~ Profession (female Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Urwis z ulicy, wyćwiczona w zwinnych sztuczkach, i zabójcza z ostrzem. " -"Jesteś łotrzykiem, pomysłową kuglarką, i mistrzem złodziejstwa." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Barbarian" -msgstr "Barbarzyńca" - -#. ~ Profession (male Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Dziecię Croma z dalekiej północy; jesteś barbarzyńcą, tak straszliwym i " -"zabójczym jak kraina, z której się wywodzisz." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Barbarian" -msgstr "Barbarzyńca" - -#. ~ Profession (female Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Dziecię Croma z dalekiej północy; jesteś barbarzyńcą, tak straszliwym i " -"zabójczym jak kraina, z której się wywodzisz." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Skald" -msgstr "Skald" - -#. ~ Profession (male Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Tajemniczy wędrujący minstrel i gawędziarz z północnych gór. Jesteś skaldem," -" szlachetnym barbarzyńskim przechowującym wiedzę i mówcą z duchami." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Skald" -msgstr "Skald" - -#. ~ Profession (female Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Tajemnicza wędrujący minstrel i gawędziarka z północnych gór. Jesteś " -"skaldem, szlachetną barbarzynką przechowującą wiedzę i mówiącą z duchami." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Ranger" -msgstr "Obieżyświat" - -#. ~ Profession (male Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Jeden z nielicznych wędrujących, co nigdy się nie gubią. Jesteś " -"obieżyświatem, posiadającym mądrość lasu, i zabójczym z łukiem." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Ranger" -msgstr "Obieżyświat" - -#. ~ Profession (female Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Jedna z nielicznych wędrujących, co nigdy się nie gubią. Jesteś " -"obieżyświatem, posiadającą mądrość lasu, i zabójczą z łukiem." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Monk" -msgstr "Mnich" - -#. ~ Profession (male Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Sługa egzotycznego zakonu ascetyków. Jesteś mnichem, pobożnym wyznawcą z " -"dużą wiedzą o walce bez broni." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Monk" -msgstr "Mniszka" - -#. ~ Profession (female Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Sługa egzotycznego zakonu ascetyków. Jesteś mniszką, pobożną wyznawczynią z " -"dużą wiedzą o walce bez broni." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Knight" -msgstr "Rycerz" - -#. ~ Profession (male Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Zaprzysiężony obrońca ziemi. Jesteś rycerzem, wykształconym wojownikiem od " -"dziecka uczonym dróg honorowej walki." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Knight" -msgstr "Rycerz" - -#. ~ Profession (female Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Zaprzysiężony obrończyni ziemi. Jesteś rycerzem, wykształconą wojowniczką od" -" dziecka uczoną dróg honorowej walki." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Sorcerer" -msgstr "Czarnoksiężnik" - -#. ~ Profession (Sorcerer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Mądry uczeń pradawnej zakazanej wiedzy. Jesteś czarodziejem, praktykiem " -"mistycznych (bionicznych) sztuk." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Sorceress" -msgstr "Czarodziejka" - -#. ~ Profession (Sorceress) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Mądra uczennica pradawnej zakazanej wiedzy. Jesteś czarodziejką, praktykiem " -"mistycznych (bionicznych) sztuk." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-Hacker" -msgstr "Robo-Haker" - -#. ~ Profession (male Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Przed końcem, twoim hobby było nielegalne przeprogramowywanie komercyjnych " -"robotów, ale nigdy nie sądziłeś, że twoje przetrwanie może od tego zależeć." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-Hacker" -msgstr "Robo-Haker" - -#. ~ Profession (female Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Przed końcem, twoim hobby było nielegalne przeprogramowywanie komercyjnych " -"robotów, ale nigdy nie sądziłaś, że twoje przetrwanie może od tego zależeć." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Engineer" -msgstr "Inżynier Robotyk" - -#. ~ Profession (male Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"Byłeś inżynierem niskiego poziomu w wytwórni robotów. Zarząd powtarzał ci, " -"że montowanie miotaczy ognia na młynkach jest \"niepotrzebne\" i \"zbyt " -"niebezpieczne\", ale teraz nic cię nie powstrzymuje." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Engineer" -msgstr "Inżynier Robotyk" - -#. ~ Profession (female Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"Byłaś inżynierem niskiego poziomu w wytwórni robotów. Zarząd powtarzał ci, " -"że montowanie miotaczy ognia na młynkach jest \"niepotrzebne\" i \"zbyt " -"niebezpieczne\", ale teraz nic cię nie powstrzymuje." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Prodigy" -msgstr "Geniusz Robotyki" - -#. ~ Profession (male Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" -"Budowałeś roboty, od kiedy tylko mogłeś utrzymać w ręku lutownicę, i nie " -"zamierzasz pozwolić by koniec świata stanął temu na przeszkodzie." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Prodigy" -msgstr "Geniusz Robotyki" - -#. ~ Profession (female Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" -"Budowałaś roboty, od kiedy tylko mogłeś utrzymać w ręku lutownicę, i nie " -"zamierzasz pozwolić by koniec świata stanął temu na przeszkodzie." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robot Adoptee" -msgstr "Adoptowany przez Robota" - -#. ~ Profession (male Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" -"Podczas zamieszek robot wojskowy przybył ci znikąd na ratunek. Może myśli, " -"że jesteś kimś ważnym, kto wie." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robot Adoptee" -msgstr "Adoptowana przez Robota" - -#. ~ Profession (female Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" -"Podczas zamieszek robot wojskowy przybył ci znikąd na ratunek. Może myśli, " -"że jesteś kimś ważnym, kto wie." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-hunter" -msgstr "Zrobotyzowany Myśliwy" - -#. ~ Profession (male Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Zapłaciłeś lokalnemu hakerowi by zbudował ci psa-robota do polowań. Jest " -"niemal tak dobry jak prawdziwy, ale nie lubi być głaskany." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-hunter" -msgstr "Zrobotyzowany Myśliwy" - -#. ~ Profession (female Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Zapłaciłaś lokalnemu hakerowi by zbudował ci psa-robota do polowań. Jest " -"niemal tak dobry jak prawdziwy, ale nie lubi być głaskany." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (male Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"Gdy bioniczne wszczepy dowiodły swego bezpieczeństwa, zostałeś wybrany do " -"ściśle tajnego programu ulepszania żołnierzy. Jakby bycie jednym z " -"najlepszych w siłach specjalnych przed procedurą nie wystarczało, to teraz " -"twoje ulepszenia pozwolą ci poradzić sobie w każdej sytuacji bojowej, czy to" -" ludzkiej, czy nie." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (female Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"Gdy bioniczne wszczepy dowiodły swego bezpieczeństwa, zostałeś wybrany do " -"ściśle tajnego programu ulepszania żołnierzy. Jakby bycie jednym z " -"najlepszych w siłach specjalnych przed procedurą nie wystarczało, to teraz " -"twoje ulepszenia pozwolą ci poradzić sobie w każdej sytuacji bojowej, czy to" -" ludzkiej, czy nie." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Seasoned Tourist" -msgstr "Zaprawiony Turysta" - -#. ~ Profession (male Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Przez twoje pragnienie podróży i pociąg od dobrego jedzenia, a także z uwagi" -" na zbywającą ci forsę, miałeś możliwość intensywnego podróżowania. " -"Przybyłeś tu spróbować smaków Nowej Anglii i teraz masz nadzieję że Nowa " -"Anglia nie posmakuje ciebie!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Seasoned Tourist" -msgstr "Zaprawiona Turystka" - -#. ~ Profession (female Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Przez twoje pragnienie podróży i pociąg od dobrego jedzenia, a także z uwagi" -" na zbywającą ci forsę, miałaś możliwość intensywnego podróżowania. " -"Przybyłaś tu spróbować smaków Nowej Anglii i teraz masz nadzieję, że Nowa " -"Anglia nie posmakuje ciebie!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Post-Human Cyborg" -msgstr "Post-Ludzki Cyborg" - -#. ~ Profession (male Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" -"Jako bogaty trans-humanista zdecydowałeś postawić się na froncie technologi " -"wspomagającej i przybliżyć przyszłość. Jesteś teraz chodzącym przykładem " -"tego co ludzkość może osiągnąć." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Post-Human Cyborg" -msgstr "Post-Ludzki Cyborg" - -#. ~ Profession (female Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" -"Jako bogaty trans-humanista zdecydowałeś postawić się na froncie technologi " -"wspomagającej i przybliżyć przyszłość. Jesteś teraz chodzącym przykładem " -"tego co ludzkość może osiągnąć." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Janitor" -msgstr "Woźny" - -#. ~ Profession (male Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Zarabiałeś na życie z zamiatania papierków po czekoladzie i zdrapywania gum " -"do żucia spod stolików. Teraz jedyne co zamiatasz to mózgi umarlaków." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Janitor" -msgstr "Woźna" - -#. ~ Profession (female Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Zarabiałaś na życie z zamiatania papierków po czekoladzie i zdrapywania gum " -"do żucia spod stolików. Teraz jedyne co zamiatasz to mózgi umarlaków." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Poor Student" -msgstr "Ubogi Uczeń" - -#. ~ Profession (male Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Pochodzisz z ubogiej rodziny, i byłeś dręczony z powodu starych ubrań po " -"rodzeństwie, i żywieniu się darmowymi posiłkami w kafeterii. Co gorsza twój " -"podniszczony stary plecak rozpadł się w najgorszym momencie. Przynajmniej " -"teraz nikt cię nie dręczy." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Poor Student" -msgstr "Uboga Uczennica" - -#. ~ Profession (female Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Pochodzisz z ubogiej rodziny, i byłaś dręczona z powodu starych ubrań po " -"rodzeństwie, i żywieniu się darmowymi posiłkami w kafeterii. Co gorsza twój " -"podniszczony stary plecak rozpadł się w najgorszym momencie. Przynajmniej " -"teraz nikt cię nie dręczy." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Elementary Student" -msgstr "Uczeń Podstawówki" - -#. ~ Profession (male Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Jesteś tylko dzieciakiem, a teraz świat zmienił się w jeden z twoich " -"koszmarów. Dorośli, na których polegałeś, są teraz martwi - lub nieumarli. " -"Co ty teraz zrobisz?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Elementary Student" -msgstr "Uczennica Podstawówki" - -#. ~ Profession (female Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Jesteś tylko dzieciakiem, a teraz świat zmienił się w jeden z twoich " -"koszmarów. Dorośli, na których polegałaś, są teraz martwi - lub nieumarli. " -"Co ty teraz zrobisz?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hockey Player" -msgstr "Hokeista" - -#. ~ Profession (male Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Byłeś hokeistą bramkarzem w pośledniej lidze zanim twoi koledzy z drużyny " -"zamienili się w zombie. Teraz jesteś tylko ty i twój sprzęt do hokeja " -"przeciwko nieumarłym, ale teraz możesz ich odpychać kijem." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hockey Player" -msgstr "Hokeistka" - -#. ~ Profession (female Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Byłeś hokeistką bramkarką w pośledniej lidze zanim twoje koleżanki z drużyny" -" zamieniły się w zombie. Teraz jesteś tylko ty i twój sprzęt do hokeja " -"przeciwko nieumarłym, ale teraz możesz ich odpychać kijem." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Baseball Player" -msgstr "Baseballista" - -#. ~ Profession (male Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Baseball Player" -msgstr "Baseballistka" - -#. ~ Profession (female Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Football Player" -msgstr "Futbolista " - -#. ~ Profession (male Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Byłeś gwiazdą lokalnej drużyny futbolowej, uwielbianym przez kolegów i " -"fanów. Teraz co najwyżej uwielbiają twój mózg. Nadal masz na sobie " -"ochraniacze futbolowe." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Football Player" -msgstr "Futbolistka" - -#. ~ Profession (female Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Byłaś gwiazdą lokalnej drużyny futbolowej, uwielbianą przez kolegów i fanów." -" Teraz co najwyżej uwielbiają twój mózg. Nadal masz na sobie ochraniacze " -"futbolowe." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Preppy Student" -msgstr "Wymuskany Uczeń" - -#. ~ Profession (male Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Twoi rodzice to ważni, zapracowani ludzie, którzy chcieli byś miał każdą " -"przewagę i pchali cię na drogę 'sukcesu', cokolwiek to miało znaczyć. Gdyby " -"tylko dali ci cieszyć się z dzieciństwa lub okazali ci swoją miłość. Teraz " -"już z pewnością nie zaznasz żadnej z tych rzeczy." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Preppy Student" -msgstr "Wymuskana Uczennica" - -#. ~ Profession (female Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Twoi rodzice to ważni, zapracowani ludzie, którzy chcieli byś miała każdą " -"przewagę i pchali cię na drogę 'sukcesu', cokolwiek to miało znaczyć. Gdyby " -"tylko dali ci cieszyć się z dzieciństwa lub okazali ci swoją miłość. Teraz " -"już z pewnością nie zaznasz żadnej z tych rzeczy." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Awakened" -msgstr "Obudzony" - -#. ~ Profession (male Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Awakened" -msgstr "Obudzona" - -#. ~ Profession (female Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Cyclist" -msgstr "Bioniczny Cyklista" - -#. ~ Profession (male Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Cyclist" -msgstr "Bioniczna Cyklistka" - -#. ~ Profession (female Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Welder" -msgstr "Spawacz" - -#. ~ Profession (male Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Welder" -msgstr "Spawacz" - -#. ~ Profession (female Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Primitive Survivalist" -msgstr "Prymitywny Surwiwalista" - -#. ~ Profession (male Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Primitive Survivalist" -msgstr "Prymitywna Surwiwalistka" - -#. ~ Profession (female Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" @@ -172561,7 +166382,7 @@ msgid "LIGHTING" msgstr "OŚWIETLENIE" #. ~ Crafting recipes subcategory of 'ARMOR' category -#: lang/json/recipe_category_from_json.py src/game_inventory.cpp +#: lang/json/recipe_category_from_json.py msgid "STORAGE" msgstr "SKŁADOWANIE" @@ -172686,262 +166507,318 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "We should survey the base site and set up a bulletin board." msgstr "" +"Powinniśmy znaleźć odpowiednie miejsce na nasz obóz i ustawić tablicę " +"ogłoszeń." #: lang/json/recipe_from_json.py msgid "basic survey" -msgstr "" +msgstr "badanie miejsca na obóz" #: lang/json/recipe_from_json.py msgid "We should survey the roof top and set up a bulletin board." -msgstr "" +msgstr "Powinniśmy zbadać szczyt dachu i ustawić tablicę ogłoszeń." #: lang/json/recipe_from_json.py msgid "" "Now that we have some cover, we should build a fireplace in the northeast " "shack." msgstr "" +"Teraz, kiedy mamy już jakiś dach nad głową, powinniśmy wyznaczyć palenisko w" +" szopie na północnym-wschodzie." #: lang/json/recipe_from_json.py msgid "northeast fireplace" -msgstr "" +msgstr "ognisko, północny-wschód" #: lang/json/recipe_from_json.py msgid "" "Now that we have some cover, we should set up a brazier in the northeast " "shack." msgstr "" +"Teraz, kiedy mamy już jakiś dach nad głową, powinniśmy ustawić koksownik w " +"szopie na północnym-wschodzie." #: lang/json/recipe_from_json.py msgid "northeast brazier" -msgstr "" +msgstr "koksownik, północny-wschód" #: lang/json/recipe_from_json.py msgid "" "Now that we have some cover, we should build a stove in the northeast shack." msgstr "" +"Teraz, kiedy mamy już jakiś dach nad głową, powinniśmy zbudować piec w " +"szopie na północnym-wschodzie." #: lang/json/recipe_from_json.py msgid "northeast stove" -msgstr "" +msgstr "piec, północny wschód" #: lang/json/recipe_from_json.py msgid "A straw bed in the northeast shack will make sleeping easier." msgstr "" +"Powinniśmy przygotować jakieś miejsce do spania. Pora ustawić słomiane łóżko" +" w szopie na północnym wschodzie." #: lang/json/recipe_from_json.py msgid "northeast straw bed" -msgstr "" +msgstr "słomiane łóżko, północny wschód" #: lang/json/recipe_from_json.py msgid "" "A proper bed in the northeast shack will give one of us a place to sleep " "soundly." msgstr "" +"Porządne, prawdziwe łóżko w szopie na północnym wschodzie obozu pozwoli na " +"lepsze zażycie snu." #: lang/json/recipe_from_json.py msgid "northeast bed" -msgstr "" +msgstr "łóżko, północny wschód" #: lang/json/recipe_from_json.py msgid "Another straw bed in the northeast shack will make sleeping easier." -msgstr "" +msgstr "Może to pora aby dodać kolejne słomiane łóżko?" #: lang/json/recipe_from_json.py msgid "" "Another proper bed in the northeast shack will give one of us a place to " "sleep soundly." msgstr "" +"Najwyższy czas ustawić kolejne łóżko w szopie na północnym wschodzie obozu." #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the east tent will allow us to house two more people" " and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w namiocie we wschodniej części obozu " +"pozwoli nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "east straw beds" -msgstr "" +msgstr "słomiane łóżka, wschód" #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the east tent will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary łóżek w namiocie we wschodniej części obozu pozwoli nam dać " +"dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "east beds" -msgstr "" +msgstr "łożka, wschód" #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the east room will allow us to house two more people" " and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w pokoju we wschodniej części obozu pozwoli" +" nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the east room will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary łóżek w pokoju we wschodniej części obozu pozwoli nam dać " +"dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the southeast tent will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w namiocie w południowo-wschodniej części " +"obozu pozwoli nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "southeast straw beds" -msgstr "" +msgstr "słomiane łóżka, południowy wschód" #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the southeast tent will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary łóżek w namiocie we wschodniej części obozu pozwoli nam dać " +"dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "southeast beds" -msgstr "" +msgstr "łóżka, południowy wschód" #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the southeast room will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w pokoju w południowo-wschodniej części " +"obozu pozwoli nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the southeast room will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary łóżek w pokoju w południowo-wschodniej części obozu pozwoli " +"nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the northwest building will allow us to house two " "more people and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w budynku w południowo-zachodniej części " +"obozu pozwoli nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "northwest straw beds" -msgstr "" +msgstr "słomiane łóżka, północny zachód" #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the northwest building will allow us to house two " "more people and expand the camp." msgstr "" +"Ustawienie pary łóżek w budynku w południowo-zachodniej części obozu pozwoli" +" nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "northwest beds" -msgstr "" +msgstr "łóżka, południowy zachód" #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the west tent will allow us to house two more people" " and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w namiocie w zachodniej części obozu " +"pozwoli nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "west straw beds" -msgstr "" +msgstr "zachód, słomiane łóżka" #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the west tent will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary łóżek w namiocie w zachodniej części obozu pozwoli nam dać " +"dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "west beds" -msgstr "" +msgstr "zachód, łóżka" #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the west room will allow us to house two more people" " and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w pokoju w zachodniej części obozu pozwoli " +"nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the west room will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary łóżek w pokoju w zachodniej części obozu pozwoli nam dać " +"dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the southwest tent will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w namiocie w południowo-zachodniej części " +"obozu pozwoli nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "southwest straw beds" -msgstr "" +msgstr "słomiane łóżka, południowy zachód" #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the southwest tent will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary łóżek w namiocie w południowo-zachodniej części obozu " +"pozwoli nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "southwest beds" -msgstr "" +msgstr "łóżka, południowy zachó" #: lang/json/recipe_from_json.py msgid "" "A pair of straw beds in the southwest room will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary słomianych łóżek w pokoju w południowo-zachodniej części " +"obozu pozwoli nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "" "A pair of proper beds in the southwest room will allow us to house two more " "people and expand the camp." msgstr "" +"Ustawienie pary łóżek w pokoju w południowo-zachodniej części obozu pozwoli " +"nam dać dach nad głową dwójce kolonistów." #: lang/json/recipe_from_json.py msgid "" "A fireplace, counter, and some pots and pans in the central building will " "allow us to cook simple recipes and organize hunting expeditions." msgstr "" +"Palenisko, lada i parę garnków w południowej części budynku głównego pozwoli" +" nam na zorganizowanie prostej kuchni. Dzięki temu wyżywimy naszych ludzi i " +"będziemy mogli organizować wyprawy łowieckie." #: lang/json/recipe_from_json.py msgid "central fireplace" -msgstr "" +msgstr "palenisko, centrum" #: lang/json/recipe_from_json.py msgid "" "We need a butchery rack to maximize the harvest from our hunting and " "trapping efforts." msgstr "" +"Dla sprawniejszej obróbki zwierząt powinniśmy ustawić wieszak rzeźniczy." #: lang/json/recipe_from_json.py msgid "central butchery rack" -msgstr "" +msgstr "wieszak rzeźniczy, centrum" #: lang/json/recipe_from_json.py msgid "" "A tool rack in the central building will give us a place to store tools." -msgstr "" +msgstr "Półka na narzędzia umożliwi nam sprawne zorganizowanie miejsca pracy." #: lang/json/recipe_from_json.py msgid "central tool rack" -msgstr "" +msgstr "półka na narzędzia, centrum" #: lang/json/recipe_from_json.py msgid "" "Setting up some tables and chairs will make the central building into a " "dining area, and we can also use them as a workspace to organize the camp." msgstr "" +"Ludzie mają dość jedzenia na ziemi. Powinniśmy ustawić stoły i krzesła w " +"centrum naszego obozu, i wyznaczyć tam jadalnię. Przy okazji posłuży to jako" +" dobre miejsce do zbiórek i organizacji pracy." #: lang/json/recipe_from_json.py msgid "central dining hall" -msgstr "" +msgstr "hala jadalna, środek" #: lang/json/recipe_from_json.py msgid "south dining hall" -msgstr "" +msgstr "hala jadalna, południe" #: lang/json/recipe_from_json.py msgid "" @@ -172949,64 +166826,74 @@ msgid "" "central building will allow us to cook simple recipes and organize hunting " "expeditions. The stove will be more efficient than a fireplace." msgstr "" +"Piec, lada i parę garnków w południowej części budynku głównego pozwoli nam " +"na zorganizowanie prostej kuchni. Dzięki temu wyżywimy naszych ludzi i " +"będziemy mogli organizować wyprawy łowieckie. Piec sprawi się tu lepiej niż " +"ognisko." #: lang/json/recipe_from_json.py msgid "south wood stove" -msgstr "" +msgstr "palenisko, południe" #: lang/json/recipe_from_json.py msgid "Digging a well will give us easy access to water." -msgstr "" +msgstr "Jeśli wykopiemy studnię to zyskamy łatwy dostęp do świeżej wody." #: lang/json/recipe_from_json.py msgid "north water well" -msgstr "" +msgstr "studnia, północ" #: lang/json/recipe_from_json.py msgid "Digging a root cellar will give us a way to preserve food." -msgstr "" +msgstr "Jeśli wykopiemy piwnicę, to nasze jedzenie będzie się wolniej psuć." #: lang/json/recipe_from_json.py msgid "north root cellar" -msgstr "" +msgstr "piwnica, północ" #: lang/json/recipe_from_json.py msgid "We could build a radio tower to improve the range of our radios." -msgstr "" +msgstr "Możemy zbudować wieżę radiową żeby wzmocnić nasz sygnał." #: lang/json/recipe_from_json.py msgid "north radio tower" -msgstr "" +msgstr "wieża radiowa, północ" #: lang/json/recipe_from_json.py msgid "" "Adding a console to control the radio tower will help with recruiting more " "survivors." msgstr "" +"Jeśli dodamy konsolę komunikacyjną do naszej wieży radiowej, to będziemy " +"mieli szansę zrekrutować więcej osób." #: lang/json/recipe_from_json.py msgid "north radio console" -msgstr "" +msgstr "konsola komunikacyjna, północ" #: lang/json/recipe_from_json.py msgid "" "Digging a trench along the north edge of the camp would provide some defense" " and generate building materials." msgstr "" +"Wykopanie fosy wzdłuż północnej granicy naszego obozu zapewni nam lepszą " +"obronność i trochę materiałów budowlanych." #: lang/json/recipe_from_json.py msgid "north trench" -msgstr "" +msgstr "fosa, północ" #: lang/json/recipe_from_json.py msgid "" "Digging a trench along the south edge of the camp would provide some defense" " and generate building materials." msgstr "" +"Wykopanie fosy wzdłuż południowej granicy naszego obozu zapewni nam lepszą " +"obronność i trochę materiałów budowlanych." #: lang/json/recipe_from_json.py msgid "south trench" -msgstr "" +msgstr "fosa, południe" #: lang/json/recipe_from_json.py msgid "" @@ -173015,10 +166902,12 @@ msgid "" "along the east side of the camp, we would only need to dig the trench long " "enough to reach the buildings." msgstr "" +"Wykopanie fosy wzdłuż północno-wschodniej granicy naszego obozu zapewni nam " +"lepszą obronność i trochę materiałów budowlanych." #: lang/json/recipe_from_json.py msgid "northeast trench" -msgstr "" +msgstr "fosa, północny wschód" #: lang/json/recipe_from_json.py msgid "" @@ -173027,10 +166916,12 @@ msgid "" "along the west side of the camp, we would only need to dig the trench long " "enough to reach the buildings." msgstr "" +"Wykopanie fosy wzdłuż północno-zachodniej granicy naszego obozu zapewni nam " +"lepszą obronność i trochę materiałów budowlanych." #: lang/json/recipe_from_json.py msgid "northwest trench" -msgstr "" +msgstr "fosa, północny zachód" #: lang/json/recipe_from_json.py msgid "" @@ -173039,10 +166930,12 @@ msgid "" "along the east side of the camp, we would only need to dig the trench long " "enough to reach the buildings." msgstr "" +"Wykopanie fosy wzdłuż południowo-wschodniej granicy naszego obozu zapewni " +"nam lepszą obronność i trochę materiałów budowlanych." #: lang/json/recipe_from_json.py msgid "southeast trench" -msgstr "" +msgstr "fosa, południowy wschód" #: lang/json/recipe_from_json.py msgid "" @@ -173051,10 +166944,12 @@ msgid "" "along the west side of the camp, we would only need to dig the trench long " "enough to reach the buildings." msgstr "" +"Wykopanie fosy wzdłuż południowo-zachodniej granicy naszego obozu zapewni " +"nam lepszą obronność i trochę materiałów budowlanych." #: lang/json/recipe_from_json.py msgid "southwest trench" -msgstr "" +msgstr "fosa, południowy zachód" #: lang/json/recipe_from_json.py msgid "" @@ -173062,10 +166957,12 @@ msgid "" "and generate building materials. We'll need to run the trench the length of" " the camp if we don't have solid buildings all along the east side." msgstr "" +"Wykopanie fosy wzdłuż wschodniej granicy naszego obozu zapewni nam lepszą " +"obronność i trochę materiałów budowlanych." #: lang/json/recipe_from_json.py msgid "east trench" -msgstr "" +msgstr "fosa, zachód" #: lang/json/recipe_from_json.py msgid "" @@ -173073,211 +166970,261 @@ msgid "" "and generate building materials. We'll need to run the trench the length of" " the camp if we don't have solid buildings all along the west side." msgstr "" +"Wykopanie fosy wzdłuż południowo-zachodniej granicy naszego obozu zapewni " +"nam lepszą obronność i trochę materiałów budowlanych." #: lang/json/recipe_from_json.py msgid "west trench" -msgstr "" +msgstr "fosa, zachód" #: lang/json/recipe_from_json.py msgid "" "We need some shelter, so build half of a metal shack with a metal roof on " "the northeast side of the camp" msgstr "" +"Potrzebujemy schronienia. Zbudujmy przynajmniej połowę szopy z metalu w " +"północno-wschodniej części obozu" #: lang/json/recipe_from_json.py msgid "northeast shack" -msgstr "" +msgstr "szopa, północny wschód" #: lang/json/recipe_from_json.py msgid "" "We should use metal to expand the shelter so we have space for another bed." msgstr "" +"Powinniśmy dalej pracować nad powiększeniem naszego schronienia. " +"Potrzebujemy więcej metalu." #: lang/json/recipe_from_json.py msgid "expand northeast shack" -msgstr "" +msgstr "poszerz szopę na północnym wschodnie" #: lang/json/recipe_from_json.py msgid "We should use metal to finish the northeast shack." -msgstr "" +msgstr "Powinniśmy dokończyć budowę szopy w północno-wschodniej części obozu." #: lang/json/recipe_from_json.py msgid "finish northeast shack" -msgstr "" +msgstr "dokończ szopę na północnym-wschodzie" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by putting up a metal building on the east " "side, which we can also use as part of the central building." msgstr "" +"Potrzebujemy więcej dachu nad głową. Zbudujmy kolejną metalową szopę we " +"wschodniej części obozu. Jednocześnie może nam ona posłużyć za budynek " +"główny." #: lang/json/recipe_from_json.py msgid "east shack" -msgstr "" +msgstr "szopa, wschód" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by adding a metal room on the east side, which " "we can also use as part of the central building." msgstr "" +"Możemy zapewnić większą ilość łóżek przez dobudowanie metalowego pokoju we " +"wschodniej części obozu. W planach mamy traktować to jako część konstrukcji " +"budynku głównego." #: lang/json/recipe_from_json.py msgid "east room" -msgstr "" +msgstr "pokój, wschód" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by putting up a metal building on the southeast" " side, which we can also use as part of the central building." msgstr "" +"Jeżeli postawimy budynek w południowo-wschodniej części obozu to zyskamy " +"parę kolejnych łóżek." #: lang/json/recipe_from_json.py msgid "southeast shack" -msgstr "" +msgstr "szopa, południowy-wschód" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by adding a metal room on the southeast side, " "which we can also use as part of the central building." msgstr "" +"Możemy zapewnić większą ilość łóżek przez dobudowanie metalowego pokoju w " +"południowo-wschodniej części obozu. W planach mamy traktować to jako część " +"konstrukcji budynku głównego." #: lang/json/recipe_from_json.py msgid "southeast room" -msgstr "" +msgstr "pokój, południowy-wschód" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by putting up a metal building on the northwest" " side, which we can also use as part of the central building." msgstr "" +"Jeżeli postawimy budynek w północno-zachodniej części obozu to zyskamy parę " +"kolejnych łóżek." #: lang/json/recipe_from_json.py msgid "northwest shack" -msgstr "" +msgstr "szopa, północny-zachód" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by putting up a metal building on the west " "side, which we can also use as part of the central building." msgstr "" +"Jeżeli postawimy budynek w zachodniej części obozu to zyskamy parę kolejnych" +" łóżek." #: lang/json/recipe_from_json.py msgid "west shack" -msgstr "" +msgstr "szopa, zachód" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by adding a metal room on the west side, which " "we can also use as part of the central building." msgstr "" +"Możemy zapewnić większą ilość łóżek przez dobudowanie metalowego pokoju w " +"zachodniej części obozu. W planach mamy traktować to jako część konstrukcji " +"budynku głównego." #: lang/json/recipe_from_json.py msgid "west room" -msgstr "" +msgstr "pomieszczenie zachodnie" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by putting up a metal building on the southwest" " side, which we can also use as part of the central building." msgstr "" +"Jeżeli postawimy budynek w południowo-zachodniej części obozu to zyskamy " +"parę kolejnych łóżek." #: lang/json/recipe_from_json.py msgid "southwest shack" -msgstr "" +msgstr "szopa, południowy-zachód" #: lang/json/recipe_from_json.py msgid "" "We should expand our housing by adding a metal room on the southwest side, " "which we can also use as part of the central building." msgstr "" +"Możemy zapewnić większą ilość łóżek przez dobudowanie metalowego pokoju w " +"południowo-zachodniej części obozu. W planach mamy traktować to jako część " +"konstrukcji budynku głównego." #: lang/json/recipe_from_json.py msgid "southwest room" -msgstr "" +msgstr "pokój, południowy-zachód" #: lang/json/recipe_from_json.py msgid "" "A central building can act as a kitchen and dining hall. We should build " "the northeast quarter of one from metal." msgstr "" +"Budynek główny może służyć nam za kuchnię i jadalnię. Potrzebujemy metalu do" +" zbudowania północno-wschodniej ćwierci." #: lang/json/recipe_from_json.py msgid "central building NE corner" -msgstr "" +msgstr "budynek główny, północno-wschodni róg" #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build out " "from the east room with metal." msgstr "" +"Budynek główny może służyć za centrum naszej działalności i jadalnię. " +"Przebudujmy pomieszczenie na wschodzie do tego celu." #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build the " "northwest quarter of one from metal." msgstr "" +"Budynek główny może służyć za centrum naszej działalności i jadalnię. " +"Potrzebujemy metalu do zbudowania północno-zachodniej ćwierci." #: lang/json/recipe_from_json.py msgid "central building NW corner" -msgstr "" +msgstr "budynek główny, północno-zachodni róg" #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build out " "from the west room with metal." msgstr "" +"Budynek główny może służyć nam za centrum działalności i jadalnię. " +"Przebudujmy pomieszczenie na zachodzie do tego celu." #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build " "between the east and west rooms with metal." msgstr "" +"Budynek główny może służyć nam za centrum działalności i jadalnię. " +"Potrzebujemy metalu do połączenia wschodniego pomieszczenia z zachodnim." #: lang/json/recipe_from_json.py msgid "central building north half" -msgstr "" +msgstr "budynek główny, środek północnej strony" #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build the " "southeast quarter of one from metal." msgstr "" +"Budynek główny może służyć za centrum naszej działalności i jadalnię. " +"Potrzebujemy metalu do zbudowania południowo-wschodniej ćwierci." #: lang/json/recipe_from_json.py msgid "central building SE corner" -msgstr "" +msgstr "budynek główny, południowo-wschodni róg" #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build out " "from the southeast room with metal." msgstr "" +"Budynek główny może służyć nam za centrum działalności i jadalnię. " +"Przebudujmy pomieszczenie na południowym wschodzie do tego celu." #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build the " "southwest quarter of one from metal." msgstr "" +"Budynek główny może służyć za centrum naszej działalności i jadalnię. " +"Potrzebujemy metalu do zbudowania południowo-zachodniej ćwierci." #: lang/json/recipe_from_json.py msgid "central building SW corner" -msgstr "" +msgstr "budynek główny, południowo-zachodni róg" #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build out " "from the southwest room with metal." msgstr "" +"Budynek główny może służyć nam za centrum działalności i jadalnię. " +"Przebudujmy pomieszczenie na południowym zachodzie do tego celu." #: lang/json/recipe_from_json.py msgid "" "A central building can act as a core and dining hall. We should build " "between the southeast and southwest rooms with metal." msgstr "" +"Budynek główny może służyć nam za centrum działalności i jadalnię. " +"Potrzebujemy metalu do połączenia południowo-wschodniego pomieszczenia z " +"południowo-zachodnim." #: lang/json/recipe_from_json.py msgid "central building south half" -msgstr "" +msgstr "budynek główny, środek południowej strony" #: lang/json/recipe_from_json.py msgid "" @@ -173556,7 +167503,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "east tent" -msgstr "" +msgstr "namiot, wschód" #: lang/json/recipe_from_json.py msgid "" @@ -173567,7 +167514,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "southeast tent" -msgstr "" +msgstr "namiot, południowy wschód" #: lang/json/recipe_from_json.py msgid "" @@ -173578,7 +167525,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "northwest tent" -msgstr "" +msgstr "namiot, północny zachód" #: lang/json/recipe_from_json.py msgid "" @@ -173588,7 +167535,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "west tent" -msgstr "" +msgstr "namiot, zachód" #: lang/json/recipe_from_json.py msgid "" @@ -173599,7 +167546,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "southwest tent" -msgstr "" +msgstr "namiot, południowy zachód" #: lang/json/recipe_from_json.py msgid "" @@ -173869,7 +167816,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "prepare the kitchen area" -msgstr "" +msgstr "przygotuj teren pod kuchnię" #: lang/json/recipe_from_json.py msgid "" @@ -173879,7 +167826,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "build a well" -msgstr "" +msgstr "zbuduj studnię" #: lang/json/recipe_from_json.py msgid "" @@ -173889,7 +167836,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "build a radio tower and console" -msgstr "" +msgstr "zbuduj wieżę radiową i konsolę komunikacyjną" #: lang/json/recipe_from_json.py msgid "" @@ -173915,7 +167862,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "build a privacy fence" -msgstr "" +msgstr "zbuduj ogrodzenie" #: lang/json/recipe_from_json.py msgid "" @@ -173925,7 +167872,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "build a fireplace" -msgstr "" +msgstr "zbuduj palenisko" #: lang/json/recipe_from_json.py msgid "" @@ -173935,7 +167882,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "build a brazier" -msgstr "" +msgstr "zbuduj kotlarz" #: lang/json/recipe_from_json.py msgid "" @@ -173945,11 +167892,13 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "build a wood stove" -msgstr "" +msgstr "zbuduj drewniane palenisko" #: lang/json/recipe_from_json.py msgid "Let's build some smokers and a charcoal kiln for food preservation." msgstr "" +"Zbudujmy wędzarnię i wypalarnię węgla drzewnego. Musimy mieć jakieś miejsce " +"do wędzenia żywności. " #: lang/json/recipe_from_json.py msgid "build smoking racks and charcoal kiln" @@ -173957,27 +167906,28 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "Let's make a butchery area." -msgstr "" +msgstr "Wyznaczmy miejsce na rzeźnię." #: lang/json/recipe_from_json.py msgid "build butchery area" -msgstr "" +msgstr "wyznacz miejsce na rzeźnię" #: lang/json/recipe_from_json.py msgid "Let's add a vat for fermenting." -msgstr "" +msgstr "Przyda nam się kadź do fermentacji." #: lang/json/recipe_from_json.py msgid "build fermenting vats" -msgstr "" +msgstr "zbuduj kadź fermentacyjną" #: lang/json/recipe_from_json.py msgid "Let's gather some tools so we can work on cars." msgstr "" +"Jeśli mamy pracować nad samochodami, to musimy zebrać do tego narzędzia." #: lang/json/recipe_from_json.py msgid "add tools for garage" -msgstr "" +msgstr "zbierz narzędzia do garażu" #: lang/json/recipe_from_json.py msgid "Let's expand our living areas, we'll use that far vehicle bay." @@ -173985,47 +167935,47 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "build the living quarters walls" -msgstr "" +msgstr "zbuduj ściany dla kwater mieszkalnych" #: lang/json/recipe_from_json.py msgid "Let's furnish the southwest bedroom." -msgstr "" +msgstr "Pora wyposażyć południowo-zachodnią sypialnię." #: lang/json/recipe_from_json.py msgid "furnish the SW bedroom" -msgstr "" +msgstr "Wyposaż południowo-zachodnią sypialnię" #: lang/json/recipe_from_json.py msgid "Let's furnish the northwest bedroom." -msgstr "" +msgstr "Pora wyposażyć północno-zachodnią sypialnię." #: lang/json/recipe_from_json.py msgid "furnish the NW bedroom" -msgstr "" +msgstr "Wyposaż północno-zachodnią sypialnię" #: lang/json/recipe_from_json.py msgid "Let's furnish the southeast bedroom." -msgstr "" +msgstr "Pora wyposażyć południowo-wschodnią sypialnię." #: lang/json/recipe_from_json.py msgid "furnish the SE bedroom" -msgstr "" +msgstr "Wyposaż południowo-wschodnią sypialnię" #: lang/json/recipe_from_json.py msgid "Let's furnish the northeast bedroom." -msgstr "" +msgstr "Pora wyposażyć północno-wschodnią sypialnię." #: lang/json/recipe_from_json.py msgid "furnish the NE bedroom" -msgstr "" +msgstr "Wyposaż północno-wschodnią sypialnię" #: lang/json/recipe_from_json.py msgid "Let's furnish the common area." -msgstr "" +msgstr "Pora wyposażyć pomieszczenie socjalne." #: lang/json/recipe_from_json.py msgid "furnish the common area furniture" -msgstr "" +msgstr "wyposaż pomieszczenie socjalne" #: lang/json/recipe_from_json.py msgid "Let's build a fabrication workshop." @@ -177170,9 +171120,9 @@ msgstr "" #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. -#. ~ Starting location for scenario 'Robots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "In Town" @@ -177306,6 +171256,34 @@ msgstr "" "W chaosie i panice ewakuacji, coś cię ugryzło! Nie otrzymałaś właściwej " "pomocy medycznej, i teraz twoja rana zaczęła zielenieć." +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -178027,19 +172005,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -178049,7 +172027,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -178059,7 +172037,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" @@ -178388,116 +172366,6 @@ msgctxt "start_name" msgid "Candy Shop" msgstr "" -#. ~ Name for scenario 'Robots' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Robots" -msgstr "Roboty" - -#. ~ Name for scenario 'Robots' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Robots" -msgstr "Roboty" - -#. ~ Description for scenario 'Robots' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Podczas zamieszek i chaosu ukryłeś się w centrum dowodzenia robotami licząc " -"na ich ochronę, ale mogą się okazać bardziej niebezpieczne od zombie." - -#. ~ Description for scenario 'Robots' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Podczas zamieszek i chaosu ukryłaś się w centrum dowodzenia robotami licząc " -"na ich ochronę, ale mogą się okazać bardziej niebezpieczne od zombie." - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Challenge-FEMA Death Camp" -msgstr "Wyzwanie - Obóz Śmierci FEMA" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Challenge-FEMA Death Camp" -msgstr "Wyzwanie - Obóz Śmierci FEMA" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a female -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" - -#. ~ Starting location for scenario 'Challenge-FEMA Death Camp'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Fema Camp" -msgstr "obóz FEMA" - -#. ~ Name for scenario 'Mansion Holdout' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Mansion Holdout" -msgstr "Zabunkrowany w Posiadłości" - -#. ~ Name for scenario 'Mansion Holdout' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Mansion Holdout" -msgstr "Zabunkrowana w Posiadłości" - -#. ~ Description for scenario 'Mansion Holdout' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" - -#. ~ Description for scenario 'Mansion Holdout' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" - -#. ~ Starting location for scenario 'Mansion Holdout'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Mansion" -msgstr "rezydencja" - #. ~ display string for skill display type 'display_melee' #: lang/json/skill_display_type_from_json.py msgid "Melee skills" @@ -178664,12 +172532,7 @@ msgstr "gotowanie" #: lang/json/skill_from_json.py msgid "" "Your skill in combining food ingredients to make other, tastier food items." -" It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." msgstr "" -"Twoja umiejętność łączenia składników żywnościowych do zrobienia innych " -"smaczniejszych potraw. Może być też użyta w tworzeniu pewnych mikstur " -"chemicznych i innych bardziej ezoterycznych sprawach." #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -178930,7 +172793,7 @@ msgstr "" #: lang/json/skill_from_json.py msgid "lock picking" -msgstr "" +msgstr "otwieranie zamków" #. ~ Description for {'str': 'lock picking'} #: lang/json/skill_from_json.py @@ -178940,6 +172803,17 @@ msgid "" "chance and decreases time required to successfully pick the lock." msgstr "" +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" + #: lang/json/skill_from_json.py msgid "weapon" msgstr "broń" @@ -179092,6 +172966,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Wounds heal over time. Bandages and antiseptic speeds that up." msgstr "" +"Rany goją się z czasem. Bandażowanie i dezynfekcja przyspieszają ten proces" #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." @@ -179177,7 +173052,7 @@ msgstr "Palisz się? Zatrzymaj się i czekaj by się ugasić." #: lang/json/snippet_from_json.py msgid "Routine kills. Stay alert! Don't let your guard down." -msgstr "" +msgstr "Rutyna zabija. Bądź uważny! Nie opuszczaj gardy." #: lang/json/snippet_from_json.py msgid "" @@ -179292,7 +173167,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "A survivor saved is a friend earned. Most of the time…" -msgstr "" +msgstr "Ocalony towarzysz to przyjaciel w biedzie. W większości przypadków..." #: lang/json/snippet_from_json.py msgid "" @@ -179380,6 +173255,7 @@ msgstr "Nie bądź zbyt chciwy. Łup nie ma znaczenia gdy jesteś martwy." #: lang/json/snippet_from_json.py msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." msgstr "" +"Podłoga jest zbyt niewygodna aby na niej spać? Spróbuj zebrać kupkę z liści." #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" @@ -179454,7 +173330,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Please don't feed the wildlife." -msgstr "" +msgstr "Prosimy nie dokarmiać dzikich zwierząt." #: lang/json/snippet_from_json.py msgid "No Overnight Camping." @@ -179488,6 +173364,8 @@ msgstr "" msgid "" "Squirrels really ain't such a bad snack if you don't blast them all to hell." msgstr "" +"Wiewiórki nie są wcale taką złą przekąską, jeśli tylko użyjesz odpowiednio " +"małego kalibru i cokolwiek z niej zostanie." #: lang/json/snippet_from_json.py msgid "" @@ -179516,16 +173394,20 @@ msgid "" "If you see a big mob of zombies coming, RUN! Trying to fight them all is " "impossible unless you have a big tactical advantage." msgstr "" +"Jak widzisz nadchodzący tłum zombie - UCIEKAJ! Walka ze wszystkimi na raz to" +" samobójstwo, chyba że masz znaczną przewagę taktyczną." #: lang/json/snippet_from_json.py msgid "" "If you see a big mob of zombies coming, you better run. Trying to fight " "them all is suicide!" msgstr "" +"Jak widzisz nadchodzący tłum zombie - UCIEKAJ! Walka ze wszystkimi na raz to" +" samobójstwo, chyba że masz znaczną przewagę taktyczną." #: lang/json/snippet_from_json.py msgid "When you see a swarm of zombies coming it's time to run!" -msgstr "" +msgstr "Kiedy widzisz zbliżający się tłum zombie, pora uciekać." #: lang/json/snippet_from_json.py msgid "" @@ -179565,6 +173447,10 @@ msgid "" "them. But I've seen zombies vomiting puddles of acid, and I'd hate to have " "my feet melt off, so I'd consider having a pair of those." msgstr "" +"Gumowe buty nie są tak twarde w boju jak buty wojskowe, poza tym trochę cię " +"spowalniają, ale widziałem zombie które dosłownie wymiotowały kwasem. Raczej" +" nie chciałbyś żeby twoje stopy się roztopiły. Na twoim miejscu rozważyłbym " +"noszenie ze sobą jednej pary takich butów." #: lang/json/snippet_from_json.py msgid "" @@ -179572,6 +173458,9 @@ msgid "" "from walls and stuff when they do… the electricity can travel along solid " "surfaces." msgstr "" +"Jest taki typ zombie który strzela piorunami! Trzymaj się z dala od ścian i " +"takich tam kiedy to robią... elektryczność potrafi wędrować po twardej " +"powierzchni." #: lang/json/snippet_from_json.py msgid "" @@ -179597,6 +173486,8 @@ msgid "" "with their bone plates are the worst. Don't bother shooting at them with " "lower-caliber guns, the bullet will bounce right off!" msgstr "" +"Zombie brutale i zombie olbrzymy to naprawdę twarde sztuki. Odpuść sobie " +"strzelanie do nich z broni małokalibrowej, bo kule odbiją się od nich!" #: lang/json/snippet_from_json.py msgid "" @@ -179612,6 +173503,8 @@ msgid "" " that it's hard to make a good hit. And those big ones are hard as nails " "too." msgstr "" +"Szkielety to trudny cel. Są tak chude i dziurawe że kule w nie wystrzelone w" +" większości po prostu przelatują bokiem." #: lang/json/snippet_from_json.py msgid "" @@ -179619,6 +173512,8 @@ msgid "" "ones can walk in through a wall. At least they can't smell you, unlike " "zombies, so if you turn your light off at night you can sneak right past." msgstr "" +"Szkielety są zbyt delikatne by przebić się przez drzwi lub okna. Nie mogą " +"cię też wywęszyć, więc jak zgasisz światło w nocy to może się prześliźniesz." #: lang/json/snippet_from_json.py msgid "" @@ -179626,12 +173521,17 @@ msgid "" "scratch marks. You've got to shatter those bones with a hammer or " "something." msgstr "" +"Nie walcz ze szkieletem ostrzami... tylko go porysujesz. Rozbij jego kości " +"młotem albo czymś podobnym." #: lang/json/snippet_from_json.py msgid "" "It's a good idea to butcher corpses if you have the time. I've seen these " "weird zombies bring their friends back from the dead!" msgstr "" +"Dobrym pomysłem jest wypatroszenie ciał jak masz na to czas, nawet jak nie " +"planujesz ich zjadać. Widziałem takie dziwne zombie przywołujące do życia " +"swoich poległych kompanów." #: lang/json/snippet_from_json.py msgid "" @@ -179639,12 +173539,17 @@ msgid "" "suddenly woke up to trees and vines growing right up through the floor and " "walls! He said it was some kind of huge tree beast…" msgstr "" +"Mam kolegę który spał w chacie głęboko w lesie, gdy obudził się otoczony " +"drzewami i lianami wyrastającymi z podłogi i ścian! Mówił, że to był jakaś " +"drzewna bestia, która to spowodowała..." #: lang/json/snippet_from_json.py msgid "" "Oh man, have you gone down into the old subway systems? I'd be careful… " "there's these things down there that are like zombies, but tougher." msgstr "" +"Kolego, a schodziłeś kiedyś do starego metra? Byłbym ostrożny... są tam " +"takie tak jakby zombie, ale twardsze." #: lang/json/snippet_from_json.py msgid "" @@ -179669,6 +173574,8 @@ msgid "" "faction's controlling them--maybe the military. All I know is, I don't want" " them taking my picture…" msgstr "" +"Widziałeś te oczoboty? Trudno powiedzieć, ale jakaś grupa je kontroluje, " +"może wojsko. Jedno co wiem, to że nie chcę, żeby mnie sfotografowały." #: lang/json/snippet_from_json.py msgid "" @@ -179684,12 +173591,16 @@ msgid "" "then pop up to stab ya. Still, you're safe from them if you stay on " "pavement…" msgstr "" +"To rzadkość, ale kretoboty to paskudne rzeczy. Przekopują ziemię, i wyskakuj" +" by cię dziabnąć. Ale na chodniku będziesz bezpieczny..." #: lang/json/snippet_from_json.py msgid "" "Don't fire your gun if you can help it - the noise attracts monsters. If " "you could get a silencer, or make one, it would give you some advantage." msgstr "" +"Nie strzelaj z broni jak nie musisz - hałas zaalarmuje i przyciągnie " +"potwory!" #: lang/json/snippet_from_json.py msgid "" @@ -179704,6 +173615,8 @@ msgid "" "Zombies are pretty dumb… heck, most monsters are! If you can get a fire " "going between you and them, they'll just run straight through it." msgstr "" +"Zombie są dość głupie... do diabła, większość potworów jest głupia! Nawet " +"wejdą w ogień jeśli dzieli cię on od nich." #: lang/json/snippet_from_json.py msgid "" @@ -179768,6 +173681,9 @@ msgid "" "down a zombie brute with one! Of course, if you can find a katana, that " "might be even better…" msgstr "" +"Jako dobrą broń do walki wręcz polecam maczetę. Nic jej nie zastąpi. " +"Widziałem gościa który powalił nią zombie brutala. Oczywiście jakbyś znalazł" +" katanę, to już wkraczasz do innej ligi..." #: lang/json/snippet_from_json.py msgid "" @@ -179775,6 +173691,8 @@ msgid "" "stick isn't the sturdiest construction. At least you can strap the spike " "back on when it comes off." msgstr "" +"Włócznia z noża jest dobrą bronią w ostateczności, ale kolec przywiązany do " +"patyka nie jest czymś na czym można długo polegać." #: lang/json/snippet_from_json.py msgid "" @@ -179782,6 +173700,9 @@ msgid "" " over someone's head, the shattering glass will hurt them extra. Of course," " it might hurt your hands, too…" msgstr "" +"Wiesz, szklana butelka w potrzebie to też niezła broń. Jak rozbijesz ją " +"komuś na głowie to szkło go też nieźle poharata. Oczywiści twoje ręce też " +"mogą się poranić..." #: lang/json/snippet_from_json.py msgid "" @@ -179814,12 +173735,16 @@ msgid "" "bow. Those larger ones need significant muscle power, but they hit hard, " "and are silent." msgstr "" +"Jeśli masz dostatecznie dużo siły, to rozważ skonstruowanie sobie łuku. Te " +"większe wymagają znacząco więcej siły, ale uderzają mocno i są ciche." #: lang/json/snippet_from_json.py msgid "" "I hid in a dumpster once or twice. I may smell bad, but I'm not dead, as " "they say." msgstr "" +"Raz czy dwa byłem zmuszony ukryć się w śmietniku. Może i długo po tym " +"śmierdziałem, ale przynajmniej nie jestem umarlakiem." #: lang/json/snippet_from_json.py msgid "" @@ -179873,6 +173798,9 @@ msgid "" "the perfect weapon: quiet, accurate, and deadly. But I've never found one, " "and I bet ammo is wicked scarce…" msgstr "" +"Widziałem kilku kolesi latających z pistoletami laserowymi. Wydawały się " +"bronią doskonałą... cicha, celną, i zabójczą. Ale nigdy takiego nie " +"znalazłem, i założę się że amunicja jest diabelnie rzadka..." #: lang/json/snippet_from_json.py msgid "" @@ -179895,7 +173823,7 @@ msgstr "" msgid "" "I wish I could still use those rollerblades. I would be so fast. But I " "took an arrow to the knee, and all that." -msgstr "" +msgstr "Załuję że nie mogę już używać rolek. Były takie szybkie..." #: lang/json/snippet_from_json.py msgid "" @@ -179910,6 +173838,8 @@ msgid "" "There's basically no reason not to wear safety glasses… nothing is worse " "than taking a hit to the eyes and getting blinded for a few seconds." msgstr "" +"Nie ma żadnego powodu dla którego nie miałbyś nosić okularów ochronnych... " +"nie ma nic gorszego jak dostać po oczach i nic nie widzieć przez parę chwil." #: lang/json/snippet_from_json.py msgid "" @@ -179945,6 +173875,9 @@ msgid "" "If you have to fight a zombie at close range, don't wear one, or at least " "drop it on the ground before the fight." msgstr "" +"Plecaki pozwalają nieść masę sprzętu, ale też solidnie krępują ruchy. Jak " +"walczysz pięściami, nie noś ich, albo przynajmniej zrzuć je na ziemię przed " +"walką." #: lang/json/snippet_from_json.py msgid "" @@ -179968,18 +173901,25 @@ msgid "" "that way. Bandages are plenty and you can make makeshift ones easily, so " "there is no reason not to." msgstr "" +"Pierwsza Pomoc 101 dla ciebie. Zawsze bandażuj rany - w ten sposób szybciej " +"je wyleczysz. Bandaże są łatwe do zrobienia i do znalezienia, dlatego też " +"nie ma żadnego powodu żeby nie zadbać o swoje rany." #: lang/json/snippet_from_json.py msgid "" "I can bandage you if you are wounded, so give me some spare bandages, if you" " have any." msgstr "" +"Możesz mi dać parę zbędnych bandaży żebym mógł ci zrobić opatrunek jeśli " +"będziesz zraniony." #: lang/json/snippet_from_json.py msgid "" "If you have extra antiseptic, use it to disinfect your wounds, even if they " "aren't infected. They will recover faster that way." msgstr "" +"Jeśli masz trochę płynu do dezynfekcji, użyj go żeby oczyścić swoje rany " +"nawet jeśli nie są zarażone. W ten sposób szybciej się zregenerują." #: lang/json/snippet_from_json.py msgid "" @@ -180029,6 +173969,9 @@ msgid "" " all around your camp. If it's more than one night, you might want to put " "broken glass or sticks inside the pits for better effect." msgstr "" +"Jak spędzasz noc w niebezpiecznym miejscu weź szpadel i wykop dziury wokół " +"obozu. Jeśli spędzasz tam więcej niż jedną noc, to wrzuć do dołu potłuczone " +"szkło i zaostrzone kijki dla lepszego efektu." #: lang/json/snippet_from_json.py msgid "" @@ -180109,12 +174052,16 @@ msgid "" "If you're not particularly agile it might be good not to mess with Molotovs " "or grenades. Accidents involving these sort of items tend to be grievous." msgstr "" +"Jak jesteś słaby lub niezdarny odpuść sobie Mołotowy i granaty. Rzucanie ich" +" sobie pod stopy zamiast w dal źle się skończy." #: lang/json/snippet_from_json.py msgid "" "If you're wandering in the wilderness, or following a road, keep an eye out " "for wild strawberries, blueberries and other gifts of nature." msgstr "" +"Jak przemierzasz dzicz, lub idziesz wzdłuż drogi, rozglądaj się za dzikimi " +"truskawkami albo jagodami." #: lang/json/snippet_from_json.py msgid "" @@ -180147,6 +174094,9 @@ msgid "" "swim. Just make sure you drop as much stuff as possible first, and maybe " "strip naked, or you'll sink like a rock." msgstr "" +"Jak musisz uciec, możesz rzucić się wpław przez rzekę. Większość potworów " +"nie potrafi pływać. Tylko zostaw na brzegu tyle sprzętu ile możesz, a " +"najlepiej płyń nago, inaczej pójdziesz na dno jak kamień." #: lang/json/snippet_from_json.py msgid "" @@ -180154,6 +174104,8 @@ msgid "" " medication, food, books, and more. People kept all the odd things around, " "especially in basements." msgstr "" +"Domy to zdumiewająco dobre miejsca do szukania różnych dóbr, ubrań, leków, " +"żarcia, książek, a nawet innych rzeczy." #: lang/json/snippet_from_json.py msgid "" @@ -180168,6 +174120,9 @@ msgid "" "It's not like in the movies; shooting a gas pump won't make it explode. But" " it WILL make it leak all over the place, which is a definite fire hazard." msgstr "" +"To nie tak jak na filmach że jak strzelisz w dystrybutor paliwa to " +"wybuchnie. Ale zacznie przeciekać i benzyna rozleje się wokół, a to już " +"poważne zagrożenie pożarowe." #: lang/json/snippet_from_json.py msgid "" @@ -180190,6 +174145,8 @@ msgid "" "Load up on canned goods if you ever find a grocery store. Cans never go " "bad!" msgstr "" +"Jak kiedyś znajdziesz sklep spożywczy, to bierz każde puszkowane żarcie " +"jakie możesz znaleźć. Puchy nigdy się nie terminują." #: lang/json/snippet_from_json.py msgid "" @@ -180212,6 +174169,8 @@ msgid "" "Most gun stores follow pretty similar layouts. The restricted stuff - SMGs," " assault rifles, and most importantly ammo - are always behind the counter." msgstr "" +"Większość sklepów z bronią ma podobny układ. Broń z ograniczeniami--PMy, " +"karabiny szturmowe i co najważniejsze amunicja--są zawsze za ladą." #: lang/json/snippet_from_json.py msgid "" @@ -180219,6 +174178,9 @@ msgid "" " Walls on four sides, far from the store's entrance, a corridor for easy " "defense… it's perfect!" msgstr "" +"Spędziłem wiele nocy w przebieralniach na tyłach sklepów z ubraniami. Ściany" +" z czterech stron, z dala od wejścia do sklepu, ciasny korytarz dla łatwej " +"obrony... Perfekcyjna miejscówa!" #: lang/json/snippet_from_json.py msgid "" @@ -180234,6 +174196,9 @@ msgid "" "scary mix. And the sheer thought of being sprayed with bullets by a turret " "is giving me the shivers." msgstr "" +"Chciałbym kiedyś zrobić rajd na bunkier wojskowy, ale odstraszają mnie te " +"wszystkie opancerzone truposze. Poza tym środek jest naszpikowany działkami." +" Brr, mam ciarki na samą myśl." #: lang/json/snippet_from_json.py msgid "" @@ -180298,18 +174263,25 @@ msgid "" "Hungrier than usual? Natural oils can help. Not tasty at all, but who " "cares when eating your leg is the second option?" msgstr "" +"Jesteś bardziej głodny niż zwykle? Naturalne olejki mogą pomóc. Nie są może " +"zbyt smaczne, ale jeśli alternatywą jest zjedzenie własnej nogi, smak jest " +"kwestią drugorzędną." #: lang/json/snippet_from_json.py msgid "" "Terrain can turn the tide of a battle. Make sure you use it against your " "enemies, lest it be used against you." msgstr "" +"Otoczenie może odwrócić przebieg bitwy, więc użyj go przeciwko swoim wrogom," +" w przeciwnym razie zostanie użyte przeciwko tobie." #: lang/json/snippet_from_json.py msgid "" "Folks that passed by the mine said something about foul smell. If you plan " "a visit there consider taking a gas mask with you." msgstr "" +"Ludzie, którzy przechodzili obok kopalni mówili coś o paskudnym zapachu. " +"Jeśli planujesz tam wizytę rozważ wzięcie ze sobą maski gazowej." #: lang/json/snippet_from_json.py msgid "Knowledge is power. Seriously, just pick up a book." @@ -180317,18 +174289,21 @@ msgstr "Wiedza to potęga. Serio, po prostu weź jakąś książkę." #: lang/json/snippet_from_json.py msgid "Knowledge is power. And books are power you can read." -msgstr "" +msgstr "Wiedza to potęga. A książki to potęga którą możesz czytać." #: lang/json/snippet_from_json.py msgid "" "Knowledge is power. But not every book you find contains true knowledge." msgstr "" +"Wiedza to potęga, ale nie każda książka którą znajdziesz ma w sobie prawdę." #: lang/json/snippet_from_json.py msgid "" "Some days are full of sadness. Reading can help, if you have the right " "book." msgstr "" +"Niektóre dni są pełne smutku. Czytanie może pomóc, jeśli tylko masz " +"odpowiednią książkę." #: lang/json/snippet_from_json.py msgid "" @@ -180379,6 +174354,8 @@ msgid "" "They said: go solar, save the environment and yourself. Well… there is no " "environment to save now, but one can still save thyself I guess." msgstr "" +"Mówili: idź w solary, ocalisz klimat i siebie samego. Cóż.... klimatu już " +"nie ma co ratować, ale można chyba jeszcze uratować siebie." #: lang/json/snippet_from_json.py msgid "" @@ -180401,12 +174378,16 @@ msgid "" "So, methinks: if you could convince the cop-bots that you are their " "superior…" msgstr "" +"Tak sobie myślę: gdyby tak przekonać jakoś boty policyjne że jesteś ich " +"przełożonym..." #: lang/json/snippet_from_json.py msgid "" "You'd be surprised how many items can be disassembled into their components." " A guy around here, McSomething whatever his name is, is a master at this." msgstr "" +"Zdziwiłbyś się jak wiele rzeczy da się rozebrać na części składowe. Jest tu " +"taki gość, MvCośtam, który jest w tym mistrzem." #: lang/json/snippet_from_json.py msgid "" @@ -180414,6 +174395,9 @@ msgid "" "cauterize a wound with it, but as many people died as lived from that " "treatment, so I guess it's a last resort." msgstr "" +"Lutownica może być najlepszym przyjacielem aspirującego mechanika. Można nią" +" też kauteryzować rany, ale ponieważ tyle samo ludzi umarło od tego co " +"przeżyło, sądzę że to raczej ostatnia deska ratunku." #: lang/json/snippet_from_json.py msgid "" @@ -180431,6 +174415,9 @@ msgid "" "heart for learning cooking I guess I'd be able to diversify my food without " "sacrificing its shelf life." msgstr "" +"Przejadło mi się wędzone mięso, ale cholernie długo jest zdatne do spożycia." +" Gdybym tylko miał serce do nauki kucharstwa pewnie zdołałbym zróżnicować " +"dietę nie bojąc się że wszystko mi zgnije." #: lang/json/snippet_from_json.py msgid "" @@ -180448,6 +174435,9 @@ msgid "" "space for loot. He was known as Joe then and he rightfully earned his " "nickname as the first tombstone 'owner' around this place." msgstr "" +"Pan Nagrobek zawsze mawiał: nie bierz nic ze sobą na rajdy, trzymaj miejsce " +"na łup. Zwał się wtedy Joe i w pełni zasłużył na przydomek jako pierwszy " +"właściciel nagrobka w tych stronach." #: lang/json/snippet_from_json.py msgid "" @@ -180463,6 +174453,10 @@ msgid "" " sorry ass away from the horde, with nothing more but some white powder I " "got from that zombie. Saved me that time." msgstr "" +"Byłem przeciwny narkotykom dopóki niemal zostałem zabity przez zombie i " +"wlekłem swój żałosny tyłek z dala od hordy, nie mając przy sobie nic oprócz " +"garści białego proszku z kieszeni tego zombiaka. Uratowało mi to wtedy " +"życie." #: lang/json/snippet_from_json.py msgid "" @@ -180491,12 +174485,16 @@ msgstr "Nie używaj wyrzutni w ciasnych korytarzach, możesz spudłować." msgid "" "Met a mad chemist once. She made a battery from a potato… or was it lemon?" msgstr "" +"Spotkałem kiedyś szaloną chemiczkę. Widziałem jak zrobiła baterię z " +"ziemniaka... a może z cytryny? Nie pamiętam już." #: lang/json/snippet_from_json.py msgid "" "Met a mad chemist once. She made a battery from a potato, and then nobody " "was willing to eat the potato." msgstr "" +"Spotkałem kiedyś szaloną chemiczkę. Zrobiła baterię z ziemniaka, a potem " +"nikt nie chciał tego ziemniaka zjeść." #: lang/json/snippet_from_json.py msgid "" @@ -180505,6 +174503,11 @@ msgid "" "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" +"Brutalność policji pokazuje się nawet po końcu świata - teraz jest tylko " +"trochę bardziej mechaniczna. Gliny są martwe, ale ich roboty latają sobie po" +" okolicy zupełnie bezkarnie. Jeśli cię aresztują to kto wymierzy ci " +"sprawiedliwość, zombie sędzia? Wsadzą cię do zombie więzienia? No pewnie, " +"podziękuję za taką przyjemność." #: lang/json/snippet_from_json.py msgid "" @@ -180512,6 +174515,8 @@ msgid "" "I prefer asking: are? *smash* you? *smash* dead? *smash* yet? *smash " "smash smash*" msgstr "" +"Już jest martwe? Jak można stwierdzić że teraz jest martwe skoro wcześniej " +"też było martwe i chodziło. Przyłóż mu jeszcze parę razy, tak dla pewności." #: lang/json/snippet_from_json.py msgid "" @@ -180528,6 +174533,9 @@ msgid "" "stethoscopes. What are they trying to achieve? I use paper money to start " "fires now." msgstr "" +"Słyszałem o gangu który nazywa się Doktorkowie. Wiesz dlaczego? Bo używają " +"stetoskopów do okradania banków. Banków! Ja papierowych pieniędzy używam " +"teraz do rozpalania ogniska - a im po co są niby potrzebne?" #: lang/json/snippet_from_json.py msgid "" @@ -180535,6 +174543,9 @@ msgid "" "head, but it's harder for the dead to get you there. Get a tent, a rollmat," " a sleeping bag and you're set." msgstr "" +"Jeśli nie masz innej opcji, to możesz zaszyć się na dachu. Może i deszcz " +"pada ci na głowę, ale za to umarlakom jest trudniej się do ciebie dostać. " +"Weź sobie namiot, karimatę, śpiwór, i jesteś ustawiony." #: lang/json/snippet_from_json.py msgid "" @@ -180542,12 +174553,20 @@ msgid "" "didn't work, because it was a chihuahua, and it was eaten by a rottweiler. " "Should have put some Kevlar on it like those Z9. Oh well…" msgstr "" +"Kiedyś próbowałem założyć mojemu psu torbę, żeby mógł za mnie nosić niektóre" +" rzeczy. Wyszło kiepsko. To był chihuahua i zjadł go rottweiler. Powinienem " +"założyć mu zbroję z kevlaru, wiesz, tak jak te Z9 które się czasem szwendają" +" po okolicy. No cóż..." #: lang/json/snippet_from_json.py msgid "" "Stuff from zombies is filthy but perfectly fine otherwise. Using soap or " "other detergents won't hurt you. Quick wash and you're equipped for days." msgstr "" +"Rzeczy zdarte z umarlaków są brudne i ohydne, ale oprócz tego całkiem w " +"porządku. Gdybyś znalazł trochę mydła albo innych detergentów, to może " +"mógłbyś z nich zmyć ten śluz, kawałki zgniłego mięsa i odór rozkładającego " +"się ciała." #: lang/json/snippet_from_json.py msgid "" @@ -180556,12 +174575,18 @@ msgid "" " Make a pointy stick or a cudgel, and work from there. The end of the " "world is not the end, it seems." msgstr "" +"Cywilizacja cofnęła się w rozwoju, więc wyciągajmy lekcje z przeszłości. Nie" +" masz lodówki? - w piwnicach jest chłodno, wykop sobie jedną. Nie masz " +"broni? Zaostrz kijek albo zrób sobie pałkę i spróbuj coś z tego " +"wykombinować. Koniec świata nie jest ostateczny." #: lang/json/snippet_from_json.py msgid "" "Hey, if you happen to find a set of two two-way radios, give one to me and " "we will be able to talk while being away from each other." msgstr "" +"Hej, jeśli znajdziesz dwa funkcjonujące radia to możesz dać jedno mi. Jak " +"coś się stanie to możemy wtedy złapać ze sobą kontakt." #: lang/json/snippet_from_json.py msgid "" @@ -180569,18 +174594,26 @@ msgid "" "Maybe even towards the ocean. Or make an amphibious vehicle that could " "drive on land too. That would be useful." msgstr "" +"Gdybym miał odpowiednie umiejętności, zbudowałbym sobie łódź i popłynął wraz" +" z nurtem rzeki, może nawet do oceanu. O, albo zrobiłbym sobie amfibię która" +" mogłaby i pływać i jeździć po lądzie - to by było niezłe." #: lang/json/snippet_from_json.py msgid "" "I sink like a rock in water, but I once used a scuba tank to cross a river " "that had no bridge nearby." msgstr "" +"Kompletnie nie potrafię pływać, ale kiedyś użyłem maski płetwonurka żeby " +"przemierzyć rzekę nad którą był zniszczony most." #: lang/json/snippet_from_json.py msgid "" "Can you imagine? I've heard of people digging graves for loot. Whole " "cities lay dead for the taking and they dig graves! Madness!" msgstr "" +"Słyszałem że niektórzy podczas Kataklizmu rozkopują groby i szukają tam " +"błyskotek. Rozumiesz? Całe miasta są pełne rzeczy które tylko czekają na " +"zabranie, a oni kopią w ziemi! Szaleńcy!" #: lang/json/snippet_from_json.py msgid "" @@ -180588,6 +174621,10 @@ msgid "" " that set the bones in place. I'd hate to break a limb in this apocalypse, " "but it's something to remember. You never know." msgstr "" +"Parę lat temu złamałem nogę i wylądowałem w szpitalu. Mają tam świetne " +"maszyny które szybko poukładały mi wszystkie kości na miejsce. Nie chciałbym" +" złamać sobie czegoś podczas apokalipsy, ale lepiej wiedzieć gdzie możesz " +"znaleźć takie cudeńka. Nigdy nie wiesz co się przytrafi." #: lang/json/snippet_from_json.py msgid "" @@ -180595,42 +174632,59 @@ msgid "" " Making a base of our own. A bastion of hope in the apocalypse. Think of " "it." msgstr "" +"Ty, ja i jeszcze jedna para rąk do pomocy, i moglibyśmy gdzieś osiąść na stałe. Ciepłe miejsce które moglibyśmy nazwać domem. Pomyśl tylko dla ilu ludzi moglibyśmy być obietnicą normalności w tym szaleństwie.\n" +"Wybacz, rozmarzyłem się." #: lang/json/snippet_from_json.py msgid "" "Hey if you are leading, just tell me what to do. You want me to shoot, go " "melee, use grenades? I can adjust to your style of fighting." msgstr "" +"Hej, skoro ustaliliśmy że ty tu rządzisz, to powiedz mi co mam robić. Mam " +"strzelać, walczyć wręcz, bronią białą, rzucać granatami... Jestem elastyczny" +" w tym zakresie, mogę się dostosować." #: lang/json/snippet_from_json.py msgid "" "Everything seems to mutate nowadays. Even survivors. I wonder if I would " "look good with bunny ears? Would I hear better?" msgstr "" +"Wszystko teraz mutuje, nawet inni przetrwańcy. Myślisz że pasowałyby mi " +"królicze uszy? Cholera, może bym wtedy lepiej słyszał." #: lang/json/snippet_from_json.py msgid "" "Everything seems to mutate nowadays. Even survivors. Do you think I'd " "still look good if I had piranha teeth?" msgstr "" +"Wszystko teraz mutuje, nawet inni przetrwańcy. Myślisz że pasowałyby mi zęby" +" jak u piranii? Miałem takie marzenie jak byłem mały." #: lang/json/snippet_from_json.py msgid "" "Everything seems to mutate nowadays. Even survivors. You think I'd look " "good with thorns growing from my face?" msgstr "" +"Wszystko teraz mutuje, nawet inni przetrwańcy. Myślisz że pasowałby mi " +"wielki róg rosnący na głowie?" #: lang/json/snippet_from_json.py msgid "" "Everything seems to mutate nowadays. Even survivors. If my eyeballs began " "shooting lasers do you think I would still be able see?" msgstr "" +"Wszystko teraz mutuje, nawet inni przetrwańcy. Ale by było zajebiście jakbym" +" strzelał z oczu laserami. - Czekaj, czy byłbym wtedy w stanie normalnie " +"widzieć?" #: lang/json/snippet_from_json.py msgid "" "Everything seems to mutate nowadays. Even survivors. I wonder how I would " "look with antlers? Hats would be out of the question…" msgstr "" +"Wszystko teraz mutuje, nawet inni przetrwańcy. Zawsze chciałem mieć jelenie " +"rogi, myślisz że dobrze bym w nich wyglądał? Chociaż... jak tak teraz myślę " +"to ciężko byłoby mi dobrać czapkę." #: lang/json/snippet_from_json.py msgid "" @@ -180638,12 +174692,19 @@ msgid "" " water and food. Keep a cooking device to melt what is frozen, and a " "thermos for the liquids." msgstr "" +"Zima jest okrutną panią. Potrzebujesz ognia żeby ogrzać siebie, swoje picie " +"i jedzenie. Trzeba ze sobą nosić coś do gotowania, żeby rozmrozić zmarznięte" +" jedzenie jak zgłodniejesz. No, i nie zapominaj o termosie. Ciężko pić lód." #: lang/json/snippet_from_json.py msgid "" "There is not much gas left for the vehicles. If I'd plan for the long run, " "I'd consider learning about steam engines, or maybe making biodiesel." msgstr "" +"W porzuconych samochodach nie zostało dużo paliwa. Niektóre baki są " +"uszkodzone i cieknie z nich paliwo. Jeśli planujesz korzystać z samochodu " +"trochę dłużej, to na twoim miejscu planowałbym przejście na silniki parowe " +"albo wytwarzanie biodiesel'a." #: lang/json/snippet_from_json.py msgid "" @@ -180652,6 +174713,10 @@ msgid "" "found. Or worse - perhaps you don't know that you don't want to find them " "either, if you catch my drift." msgstr "" +"Gdzieś zasłyszałem że niektóre miasta ewakuowano do miejsc których nie ma na" +" żadnej z map. Ciężko byłoby je teraz znaleźć: może nikt nie chce żeby były " +"znalezione. A może być jeszcze gorzej - możesz nie wiedzieć że nie chcesz " +"ich znaleźć, jeśli łapiesz co mówię." #: lang/json/snippet_from_json.py msgid "" @@ -180659,6 +174724,9 @@ msgid "" " to her back. Zipping around, hardly wearing no clothes, smashing cannibals" " in the face with a baseball bat. Don't that beat all?" msgstr "" +"Słyszałem o kobiecie jeżdżącej na wrotkach z gaśnicą przyczepioną do pleców." +" Podobno jeździ praktycznie bez ubrań, napieprzając tych zgniłych kanibali " +"po mordach kijem baseballowym. Niezłe, co?" #: lang/json/snippet_from_json.py msgid "" @@ -180667,6 +174735,11 @@ msgid "" "Much to be said, but half an hour later, he was still alive. Guess you can " "take a punch being a walking tin can." msgstr "" +"Dobra, powiem teraz coś dziwnego. Zanim się spotkaliśmy to widziałem " +"rycerza. Nie musisz mi wierzyć, ja wiem co widziałem. Gościu w pełnej zbroi " +"średniowiecznej, otoczony przez zombiaki. I słuchaj tutaj - ja patrzę, mija " +"pół godziny, a koleś jest dalej żywy, a dookoła niego jakieś trzy tuziny " +"trupów. Ogarniasz? Może też byśmy sobie załatwili takie żelazne puszki." #: lang/json/snippet_from_json.py msgid "" @@ -180674,6 +174747,9 @@ msgid "" "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" +"Jeśli łapiesz trochę elektronikę to możesz spróbować zrobić emiter hałasu z " +"gadającej lalki albo czegokolwiek co ma głośnik. Po co? Żeby umarlaki poszły" +" w tym kierunku." #: lang/json/snippet_from_json.py msgid "" @@ -180682,12 +174758,20 @@ msgid "" "carcass in the air, and a good knife. If you're in a forest you may use a " "tree and a rope. Big game might require a saw too." msgstr "" +"Miałem znajomego który był myśliwym i pokazał mi kiedyś jak odpowiednio " +"oprawiać zwierzynę. Potrzebujesz płaskiej, czystej powierzchni, jakiegoś " +"stołu czy coś podobnego; wieszaka na powieszenie zwłok w powietrzu; i dobry " +"nóż. Jeśli jesteś w lesie i masz ze sobą linę to możesz powiesić zwłoki na " +"drzewie. Do obróbki naprawdę grubego zwierza możesz potrzebować jakiejś " +"piły." #: lang/json/snippet_from_json.py msgid "" "A friend of mine was a hunter and told me, that if you field dress a corpse," " it will stay fresh a bit longer." msgstr "" +"Miałem znajomego który był myśliwym i powiedział mi że martwy zwierz " +"pozostanie świeży na dłużej jeśli wyjmiesz z niego organy." #: lang/json/snippet_from_json.py msgid "" @@ -180695,6 +174779,10 @@ msgid "" "expect. It's nothing compared to the old meteorology and satellite " "pictures, but at least you may know if you need the umbrella." msgstr "" +"Zanim pójdziesz na wyprawę - spójrz na niebo. Będziesz wiedział czego " +"spodziewać się po pogodzie. Jest to nic w porównaniu ze starą meteorologią i" +" zdjęciami satelitarnymi, ale przynajmniej będziesz wiedział czy nie musisz " +"zabrać ze sobą parasola." #: lang/json/snippet_from_json.py msgid "" @@ -180702,6 +174790,9 @@ msgid "" "minefield or a road block can make you feel sorry in an instant. I've even " "seen a tank once. I ran away like never before." msgstr "" +"Uważaj na drogach. Łatwo się nimi podróżuje, ale czasem można na nich wpaść " +"na pole minowe albo blokady drogowe. Raz widziałem czołg - nigdy tak szybko " +"nie spieprzałem." #: lang/json/snippet_from_json.py msgid "" @@ -180711,12 +174802,19 @@ msgid "" " a difference. And pick a spot well, even a chair or a bench is better than" " a cold ground." msgstr "" +"Wiem że może to być trudne w tych czasach, ale spróbuj się wysypiać. " +"Niedobór snu wiąże się z wieloma nieprzyjemnymi konsekwencjami. Znajdź jakąś" +" poduszkę, koc, cokolwiek - nada się nawet kupka ubrań albo stary miś. " +"Lepiej jest spać na krześle albo na ławce niż na gołej ziemi." #: lang/json/snippet_from_json.py msgid "" "There's no rule against wearing more than one set of pants. Well, I mean, " "there probably is, but nothing stopping you from breaking it!" msgstr "" +"Nie ma żadnej zasady mówiącej o zakazie ubierania więcej niż jednej pary " +"spodni na raz! To znaczy... może i jakaś jest, ale nic nie zatrzyma cię " +"przed złamaniem jej." #: lang/json/snippet_from_json.py msgid "" @@ -180724,6 +174822,10 @@ msgid "" "behind a corner. The less smart one involves getting shot while throwing in" " the open and being torn apart by the resulting explosion." msgstr "" +"Są dwa sposoby rzucania granatów - pierwszy to rzucanie granatu zza rogu " +"albo zza osłony, to jest mądry sposób. Drugi, mniej mądry sposób, obejmuje " +"stanie na środku pola i bycie postrzelonym przez przeciwnika, a następnie " +"rozerwanym przez następującą eksplozję z granatu który ci wypadł." #: lang/json/snippet_from_json.py msgid "I hate thorazine!" @@ -180743,7 +174845,7 @@ msgstr "Thorazyna to trucizna." #: lang/json/snippet_from_json.py msgid "Thorazine? I wouldn't if I were you." -msgstr "" +msgstr "Thorazyna? Nie brałbym tego na twoim miejscu." #: lang/json/snippet_from_json.py msgid "You don't need thorazine, it's limiting you." @@ -180760,6 +174862,12 @@ msgstr "" "Nie. Ta thorazyna nieźle zaćmi ci w głowie. Potrzebujesz tej ostrości " "myślenia." +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde" +" of undead!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "Różowe tabletki. Uwielbiam je!" @@ -180824,6 +174932,14 @@ msgstr "Wybacz . Obawiam się, że nie mogę tego zrobić." msgid "Wish I could, ." msgstr "Chciałbym móc to zrobić, ." +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "Nie dzięki, sądzę, że odpuszczę." @@ -180838,7 +174954,7 @@ msgstr "Mam lepsze rzeczy do roboty." #: lang/json/snippet_from_json.py msgid "I'll pass; it's too much work." -msgstr "" +msgstr "Odpuszczę; to za dużo roboty." #: lang/json/snippet_from_json.py msgid "Who put you in charge of what I do?" @@ -180851,12 +174967,16 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I'm afraid I can't help you there." -msgstr "" +msgstr "Obawiam się że nie mogę ci w tym pomóc." #: lang/json/snippet_from_json.py msgid "Not exactly the settlin' type." msgstr "Niezbyt układny charakter." +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "" + #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -181135,7 +175255,7 @@ msgstr "Wiesz że brak wody zabija szybciej niż czegokolwiek innego?" #: lang/json/snippet_from_json.py msgid "I can't remember the last time I was this thirsty." -msgstr "" +msgstr "Nie pamiętam kiedy po raz ostatni aż tak chciało mi się pić." #: lang/json/snippet_from_json.py msgid "I'd kill for a sip of water right now." @@ -181180,6 +175300,10 @@ msgstr "" "Jak tu sobie gadamy, to co powiesz żebyśmy otworzyli sobie po piwku i przez " "chwilę... udawali, że świat się nie kończy?" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "" + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "" @@ -181723,6 +175847,14 @@ msgstr "Hej, tutaj jestem!" msgid "Hold up a second, will ya?" msgstr "Zaczekaj sekundę, możesz?" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "Jestem niezrzeszony." @@ -182476,7 +176608,7 @@ msgstr "Hej, powinniśmy porozmawiać, ?" #: lang/json/snippet_from_json.py msgid "Hey, can we talk for a bit?" -msgstr "" +msgstr "Hej, możemy przez chwilę porozmawiać?" #: lang/json/snippet_from_json.py msgid "! Wait up!" @@ -182684,17 +176816,17 @@ msgstr "Mam cię dość, spadaj." #: lang/json/snippet_from_json.py msgid "you're a poster child for abortions" -msgstr "" +msgstr "jesteś chodzącym argumentem przemawiającym za aborcją" #: lang/json/snippet_from_json.py msgid "" "how the fuck you've survived this far is beyond me, you " "" -msgstr "" +msgstr "jakim kurwa cudem przeżyłeś do tej pory?! " #: lang/json/snippet_from_json.py msgid "you're the reason the gene pool needs a lifeguard" -msgstr "" +msgstr "jesteś przykładem na to, że pula genów ludzkich potrzebuje przesiewu" #: lang/json/snippet_from_json.py msgid "Can I get out and walk? This vehicle is too small." @@ -182827,7 +176959,7 @@ msgstr "Uważaj! Widzę" #: lang/json/snippet_from_json.py msgid "Run! It's a" -msgstr "" +msgstr "Uciekaj, to" #: lang/json/snippet_from_json.py msgid ", a" @@ -183183,11 +177315,11 @@ msgstr "Ty i ja," #: lang/json/snippet_from_json.py msgid "I will kill you to death," -msgstr "" +msgstr "Zabiję cię na śmierć," #: lang/json/snippet_from_json.py msgid "You're going down," -msgstr "" +msgstr "Już po tobie," #: lang/json/snippet_from_json.py msgid "! I'm gonna kill you," @@ -183215,7 +177347,7 @@ msgstr "Czas umierać," #: lang/json/snippet_from_json.py msgid "Say your prayers," -msgstr "" +msgstr "Zmów pacierz," #: lang/json/snippet_from_json.py msgid "!" @@ -183312,11 +177444,11 @@ msgstr "Kto to powiedział?" #: lang/json/snippet_from_json.py msgid "Did someone say something?" -msgstr "" +msgstr "Czy ktoś coś mówił?" #: lang/json/snippet_from_json.py msgid "What made that noise?" -msgstr "" +msgstr "Słyszałeś ten hałas?" #: lang/json/snippet_from_json.py msgid "What was that?" @@ -183324,7 +177456,7 @@ msgstr "Co to było?" #: lang/json/snippet_from_json.py msgid "Huh? Is someone there?" -msgstr "" +msgstr "Huh? Ktoś tutaj jest?" #: lang/json/snippet_from_json.py msgid "Who goes there?" @@ -183352,7 +177484,7 @@ msgstr "Czy tam coś jest?" #: lang/json/snippet_from_json.py msgid "Sounds like something bad's going on." -msgstr "" +msgstr "Słyszysz? Dzieje się coś złego." #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" @@ -183380,7 +177512,7 @@ msgstr "Przysiągłbym, że słyszałem" #: lang/json/snippet_from_json.py msgid "I could have sworn I just heard" -msgstr "" +msgstr "Mógłbym przysiąc że właśnie usłyszałem " #: lang/json/snippet_from_json.py msgid "Got it!" @@ -183424,7 +177556,7 @@ msgstr "Można zrobić." #: lang/json/snippet_from_json.py msgid "Acknowledged." -msgstr "" +msgstr "Zrozumiano." #: lang/json/snippet_from_json.py lang/json/talk_topic_from_json.py #: lang/json/talk_topic_from_json.py @@ -183461,7 +177593,7 @@ msgstr "Stary, to pachnie jak niezły towar!" #: lang/json/snippet_from_json.py msgid "Is that marijuana you're smoking?" -msgstr "" +msgstr "Czy ty właśnie palisz maryśkę?" #: lang/json/snippet_from_json.py msgid "Hey, don't bogart the joint!" @@ -183545,7 +177677,7 @@ msgstr "Ugh, to śmierdzi jakby zjełczało!" #: lang/json/snippet_from_json.py msgid "Why are you smoking crack cocaine?" -msgstr "" +msgstr "Dlaczego palisz krak?" #: lang/json/snippet_from_json.py msgid "" @@ -183553,20 +177685,20 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I need some batteries to power my CBMs." -msgstr "" +msgstr "Potrzebuję jakichś baterii do zasilenia moich KZB." #: lang/json/snippet_from_json.py msgid "I can't recharge my CBMs without some batteries." -msgstr "" +msgstr "Nie mogę naładować swoich KZB bez jakichś baterii." #: lang/json/snippet_from_json.py msgid "Hey, , can I get some batteries here? I need to recharge." -msgstr "" +msgstr "Hej, , mogę dostać jakieś baterie? Muszę się naładować." #: lang/json/snippet_from_json.py msgid "" "Internal batteries running low. How many batteries can you spare right now?" -msgstr "" +msgstr "Baterie mi padają. Masz czym poratować?" #: lang/json/snippet_from_json.py msgid "" @@ -183679,27 +177811,27 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the Cataclysm." -msgstr "" +msgstr "Powiedz mi jak przeżyłeś Kataklizm." #: lang/json/snippet_from_json.py msgid "How did you survive the Cataclysm?" -msgstr "" +msgstr "Jak przeżyłeś Kataklizm?" #: lang/json/snippet_from_json.py msgid "What was the Cataclysm like for you?" -msgstr "" +msgstr "Kataklizm mocno dał ci w dupę?" #: lang/json/snippet_from_json.py msgid "How did you make it through the initial chaos?" -msgstr "" +msgstr "Jak przeżyłeś początkowy chaos?" #: lang/json/snippet_from_json.py msgid "Tell me how you survived the initial wave of the Cataclysm." -msgstr "" +msgstr "Powiedz mi, jak przeżyłeś pierwszą falę Kataklizmu?" #: lang/json/snippet_from_json.py msgid "Was it rough surviving thus far?" -msgstr "" +msgstr "Ciężko było przetrwać tak długo?" #: lang/json/snippet_from_json.py lang/json/talk_topic_from_json.py #: lang/json/talk_topic_from_json.py @@ -183716,11 +177848,11 @@ msgstr "Chciałbym zapytać cię o coś innego." #: lang/json/snippet_from_json.py msgid "Moving on…" -msgstr "" +msgstr "Mniejsza z tym..." #: lang/json/snippet_from_json.py msgid "Anyway…" -msgstr "" +msgstr "Tak czy siak..." #: lang/json/snippet_from_json.py msgid "We should probably get going." @@ -183736,27 +177868,27 @@ msgstr "Ruszajmy." #: lang/json/snippet_from_json.py msgid "Time's a-wasting. Let's head out." -msgstr "" +msgstr "Zegar tyka. Ruszajmy już." #: lang/json/snippet_from_json.py msgid "Come on. We got stuff to do." -msgstr "" +msgstr "Chodź, mamy masę rzeczy do zrobienia." #: lang/json/snippet_from_json.py msgid "Let's hit the road." -msgstr "" +msgstr "Ruszajmy już." #: lang/json/snippet_from_json.py msgid "We'll pick this up another time. Let's go." -msgstr "" +msgstr "Pogadamy o tym innym razem. Ruszajmy już." #: lang/json/snippet_from_json.py msgid "Let's put a pin in this chat for now." -msgstr "" +msgstr "Kiedyś wrócimy do tej rozmowy." #: lang/json/snippet_from_json.py msgid "Talk to you later." -msgstr "" +msgstr "Potem pogadamy." #: lang/json/snippet_from_json.py msgid "shitty" @@ -183805,11 +177937,11 @@ msgstr "popieprzony" #: lang/json/snippet_from_json.py msgid "lousy" -msgstr "" +msgstr "parszywiec" #: lang/json/snippet_from_json.py msgid "deplorable" -msgstr "" +msgstr "żałosny" #: lang/json/snippet_from_json.py msgid "stupid" @@ -183841,11 +177973,11 @@ msgstr "bezmózgi" #: lang/json/snippet_from_json.py msgid "brain-dead" -msgstr "" +msgstr "debil" #: lang/json/snippet_from_json.py msgid "imbecilic" -msgstr "" +msgstr "imbecyl" #: lang/json/snippet_from_json.py msgid "Z" @@ -183877,11 +178009,11 @@ msgstr "nieumarłych" #: lang/json/snippet_from_json.py msgid "a living corpse" -msgstr "" +msgstr "chodzące zwłoki" #: lang/json/snippet_from_json.py msgid "zed" -msgstr "" +msgstr "zombiak" #: lang/json/snippet_from_json.py msgid "zombies" @@ -183901,19 +178033,19 @@ msgstr "nieumarły" #: lang/json/snippet_from_json.py msgid "shamblers" -msgstr "" +msgstr "włóczący nogami" #: lang/json/snippet_from_json.py msgid "walkers" -msgstr "" +msgstr "szwędacz" #: lang/json/snippet_from_json.py msgid "goo-pukers" -msgstr "" +msgstr "mazio-rzygacz" #: lang/json/snippet_from_json.py msgid "zeds" -msgstr "" +msgstr "zombiaki" #: lang/json/snippet_from_json.py msgid "monster" @@ -183957,19 +178089,19 @@ msgstr "rzecz ze strasznego filmu" #: lang/json/snippet_from_json.py msgid " thing" -msgstr "" +msgstr "rzecz" #: lang/json/snippet_from_json.py msgid "whatever-the-fuck that is" -msgstr "" +msgstr "cokolwiek to kurwa jest" #: lang/json/snippet_from_json.py msgid "eldritch horror" -msgstr "" +msgstr "horror eldritch" #: lang/json/snippet_from_json.py msgid "the Cataclysm" -msgstr "" +msgstr "Kataklizm" #: lang/json/snippet_from_json.py msgid "the apocalypse" @@ -184038,19 +178170,19 @@ msgstr "!" #: lang/json/snippet_from_json.py msgid "Retreat! Retreat!" -msgstr "" +msgstr "Odwrót! Odwrót!" #: lang/json/snippet_from_json.py msgid "Book it!" -msgstr "" +msgstr "No dawaj!" #: lang/json/snippet_from_json.py msgid "Leg it!" -msgstr "" +msgstr "Spieprzamy!" #: lang/json/snippet_from_json.py msgid "Thank fuck for all the cardio!" -msgstr "" +msgstr "Zajebiście się cieszę że ćwiczyłem przed Kataklizmem." #: lang/json/snippet_from_json.py msgid "I can't outrun it! I'm going to kill it!" @@ -184062,15 +178194,15 @@ msgstr "! Zgiń w końcu Ty ! Ja chcę żyć!" #: lang/json/snippet_from_json.py msgid "My feet failed me! Arms, don't fail me!" -msgstr "" +msgstr "Moje stopy mnie zawiodły! Ręce chociaż wy mnie nie zawiedźcie!" #: lang/json/snippet_from_json.py msgid "Can't run! Have to fight!" -msgstr "" +msgstr "Nie można uciec! Trzeba walczyć!" #: lang/json/snippet_from_json.py msgid "If I die, I'm taking you all with me!" -msgstr "" +msgstr "Jeśli umrę to zabiorę was ze sobą do piekła!" #: lang/json/snippet_from_json.py msgid "Call the fire department! Wait, they're dead! Run away!" @@ -184086,92 +178218,211 @@ msgstr "Zgaś ten ogień! Zgaś to!" #: lang/json/snippet_from_json.py msgid "Fire bad! !" -msgstr "" +msgstr "Ogień zły! !" #: lang/json/snippet_from_json.py msgid "We need to put this fire out!" -msgstr "" +msgstr "Musimy ugasić ten ogień!" #: lang/json/snippet_from_json.py msgid "Somebody get some water!" -msgstr "" +msgstr "Niech ktoś przyniesie tu wodę!" #: lang/json/snippet_from_json.py msgid "Fire, fire, FIRE!" -msgstr "" +msgstr "Ogień, ogień, OGIEŃ!" #: lang/json/snippet_from_json.py msgid "Get an extinguisher!" -msgstr "" +msgstr "Znajdź gaśnicę!" #: lang/json/snippet_from_json.py msgid "Danger hot!" -msgstr "" +msgstr "Tu jest zbyt gorąco!" #: lang/json/snippet_from_json.py msgid "I've done so much for you, and you can't even keep me fed!" msgstr "" +"Ja tyle dla ciebie zrobiłem, a ty nawet nie potrafisz podzielić się ze mną " +"jedzeniem!" #: lang/json/snippet_from_json.py msgid "You are the worst person in the world!" -msgstr "" +msgstr "Jesteś najgorszą osobą na tym świecie!" #: lang/json/snippet_from_json.py msgid "Why are you such a horrible leader?" -msgstr "" +msgstr "Dlaczego jesteś tak okropnym przywódcą?" #: lang/json/snippet_from_json.py msgid "I trusted you, and you can't even provide food!" -msgstr "" +msgstr "Zaufałem Ci, a Ty nawet nie potrafisz zapewnić jedzenia!" #: lang/json/snippet_from_json.py msgid "" "I don't have to take this abuse from you, there are plenty of people to " "abuse me!" msgstr "" +"Nie będę tolerował od ciebie takich obelg. Znam wiele innych osób które " +"mogłyby mnie dręczyć." #: lang/json/snippet_from_json.py msgid "You said you would keep me safe, and you haven't!" -msgstr "" +msgstr "Obiecałeś że będę przy tobie bezpieczny! Kłamałeś." #: lang/json/snippet_from_json.py msgid "" "There's only a couple hundred people left in the world, and I relied on the " "dumbest one!" msgstr "" +"Na tym świecie zostało pewnie jakieś parę setek osób. Ja musiałem zaufać " +"akurat tej najbardziej idiotycznej." #: lang/json/snippet_from_json.py msgid "You're a monster!" -msgstr "" +msgstr "Jesteś potworem!" #: lang/json/snippet_from_json.py msgid "You call this safe? You're crazy and incompetent!" msgstr "" +"Nazywasz to bezpieczeństwem? Jesteś szalony, nieodpowiedzialny i " +"niekompetentny!" #: lang/json/snippet_from_json.py msgid "That was the last straw! I'm not following your orders anymore!" -msgstr "" +msgstr "Tego już za wiele! Pora się pożegnać." #: lang/json/snippet_from_json.py msgid "child" -msgstr "" +msgstr "dziecko" #: lang/json/snippet_from_json.py msgid "my child" -msgstr "" +msgstr "moje dziecko" #: lang/json/snippet_from_json.py msgid "dear" -msgstr "" +msgstr "droga" #: lang/json/snippet_from_json.py msgid "my dear" -msgstr "" +msgstr "moja droga" #: lang/json/snippet_from_json.py msgid "survivor" msgstr "ocalony" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr " będzie używać broni dystansowej." @@ -184251,61 +178502,71 @@ msgstr " nie będzie tykać ciał zombi." #: lang/json/snippet_from_json.py msgid " will close doors after passing through." -msgstr "" +msgstr "będzie zamykał za sobą drzwi" #: lang/json/snippet_from_json.py msgid " will not close doors." -msgstr "" +msgstr "nie będzie zamykał za sobą drzwi" #: lang/json/snippet_from_json.py msgid " will follow you closely even when threatened." msgstr "" +"będzie blisko za tobą podążał, nawet jeśli będzie pozostawał w " +"stanie zagrożenia." #: lang/json/snippet_from_json.py msgid " will move freely as needed." msgstr "" +"będzie miał swobodę zachowywania dystansu, jeśli będzie miał taką" +" potrzebę." #: lang/json/snippet_from_json.py msgid " will follow you at about two paces." -msgstr "" +msgstr "będzie za tobą podążał na odległość około dwóch kroków." #: lang/json/snippet_from_json.py msgid " will follow you at about four paces." -msgstr "" +msgstr "będzie za tobą podążał na odległość około czterech kroków." #: lang/json/snippet_from_json.py msgid " will not go places that require opening a door." msgstr "" +"nie będzie wchodził do miejsc do których wejście wymaga otwarcia " +"drzwi." #: lang/json/snippet_from_json.py msgid " will open doors to reach a destination." msgstr "" +"będzie otwierał przed sobą drzwi jeśli będzie chciał wejść do " +"pomieszczenia." #: lang/json/snippet_from_json.py msgid "" " will hold the line by not moving into doorways or obstructions " "adjacent to you." msgstr "" +"będzie trzymał linię frontu, nie wchodząc na przejścia lub " +"przeszkody przy których ty stoisz." #: lang/json/snippet_from_json.py msgid " will move freely to attack enemies." -msgstr "" +msgstr "zachowa swobodę ruchu przy atakowaniu przeciwników." #: lang/json/snippet_from_json.py msgid " will not investigate noises." -msgstr "" +msgstr "będzie sprawdzał źródła hałasu." #: lang/json/snippet_from_json.py msgid " will investigate noises from unseen places." -msgstr "" +msgstr "będzie sprawdzał źródła hałasu z niewidocznych miejsc." #: lang/json/snippet_from_json.py msgid " will not engage enemies if avoidable." -msgstr "" +msgstr "nie będzie rozpoczynał walki jeśli może jej uniknąć." #: lang/json/snippet_from_json.py msgid " will follow normal engagement rules." -msgstr "" +msgstr "będzie podążał zwykłymi zasadami zawiązywania walki." #: lang/json/snippet_from_json.py msgid "" @@ -190785,6 +185046,42 @@ msgid "" "Michael Baker" msgstr "" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "TO PUŁAPKA!" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "JEŚLI NIE JESTEŚ ZOMBIAKIEM, NIE PODCHODŹ!" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "JEŚLI NIE JESTEŚ ZOMBIAKIEM, UCIEKAJ!" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "\"MIELIŚMY RACJĘ ŻE TO WINA RZĄDU\"" @@ -191725,11 +186022,9 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" msgstr "" -"\"Kiedyś osiądę w jednym miejscu. Wielki sad, kilku przyjaciół, przyszła " -"rodzina by spędzać czas z nimi, i armia niewolników zombie chroniąca to " -"miejsce.\"" #: lang/json/snippet_from_json.py msgid "" @@ -192656,6 +186951,51 @@ msgstr "To nie jest świat jaki wybrałem. Nawet moje płyty CD zabrali!..." msgid "Dark days are ahead, but is that all?" msgstr "Przed nami mroczne dni, ale czy to wszystko?" +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 1: I had a dream and I can vaguely remember seeing a strange " +"truck that had overly round edges, it tooted its horn but instead I heard " +"people screaming, and when I blinked suddenly the truck wasn't just rounded," +" but made of people screaming forever inside a viscous blob.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 2: In last night's dream I was driving a rusty and dusty humvee," +" with my trusty companion using a massive pneumatic weapon to shoot rebar " +"pipes into faceless enemies chasing us. My heart is still pumping, why does" +" it feel like a memory instead of a dream?\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 3: Another dream. This time I dropped a diamond on a sea of " +"charcoal dust, and the diamond begun to shine and make the dust glitter " +"until a shape of a car emerged from the dust made entirely of thick, " +"perfectly angular diamond. A beautiful shape appeared on it, and in a flash" +" of light I was pierced by a glittering lance.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 4: These dreams get weirder. My companion of mine was driving " +"the RV, and I opened the back of the RV and found there was no roof but a " +"whole tray of gargantuan flowers made of solar panels arching toward the sun" +" greedily, light flowing from them into the RV. I stepped back and lost my " +"footing, seeing a strange portal on the side before I fell into a limitless " +"darkness.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 5: My most recent dream was better so here it goes. I was " +"walking in a meadow when a strange stone with a perfect spiral on it fell in" +" front of me. I picked it up and blew on it, and a tornado roared from the " +"stone. In its wake, a car appeared, wickedly shaped and the sound of " +"tornadoes coming from its exhaust- and I rode the wind, hurling thunderbolts" +" at any who got in my way.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "" @@ -192947,11 +187287,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "THAT'S NO RESCUE BUS" -msgstr "" +msgstr "to nie jest BUS RATUNKOWY" #: lang/json/snippet_from_json.py msgid "LAST STOP" -msgstr "" +msgstr "OSTATNI PRZYSTANEK" #: lang/json/snippet_from_json.py msgid "" @@ -193813,6 +188153,53 @@ msgstr "" msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you" +" think they eat cat food?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big" +" lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind" +" of big lizard down there. Probably not a good idea to check." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special" @@ -193820,6 +188207,14 @@ msgid "" "breakthroughs." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -193861,8 +188256,10 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "\"Czemu to miejsce dosłownie oblazły pieprzone jaszczurki?\"" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" -msgstr "\"Bracia łuskowaci! Dziś ucztujemy na bezwłosych małpach.\"" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"where's some .700 t-rex medicine when you need it?\"" @@ -193875,30 +188272,33 @@ msgid "" msgstr "\"Więc tak się dzieje jak zejdziesz ze szlaku i nadepniesz na motyla?\"" #: lang/json/snippet_from_json.py -msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" +msgid "" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." msgstr "" -"\"Spluwa. Miecz. Mieczospluwa. Chrzanić bagnety, to o wiele bardziej " -"kapitalne.\"" #: lang/json/snippet_from_json.py msgid "" -"\"Not sure if wielding this thing makes me feel like a bodybuilder or a " -"theoretical physicist. Both?\"" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" msgstr "" -"\"Nie jestem pewien czy noszenie tego czyni mnie bardziej podobnego do " -"kulturysty czy do fizyka teoretycznego. Do obu?\"" #: lang/json/snippet_from_json.py -msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" -msgstr "\"To nie jest .50 cal działo ręcznie twojego dziadka!\"" - -#: lang/json/snippet_from_json.py -msgid "\"Nice pistol! Which trigger fires the flamer?\"" -msgstr "\"Fajny pistolet! Który cyngiel odpala miotacz płomieni?\"" - -#: lang/json/snippet_from_json.py -msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" -msgstr "\"Czemu do chuja strzeliłem kuszę na tym pistolecie.\"" +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -194126,14 +188526,6 @@ msgstr "chłopaku" msgid "chief" msgstr "szefuniu" -#: lang/json/snippet_from_json.py -msgid "" -"\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " -"repeat.\"" -msgstr "" -"\"Strzelaj do elfich mutantów. Wystrugaj bełty z ich kości. Spluń i " -"powtórz.\"" - #: lang/json/snippet_from_json.py msgid "" "A flyer for some kind of candy. It shows a picture of a gleaming human made" @@ -194141,98 +188533,6 @@ msgid "" "human candy! Are you a real monster? Will you be able to devour it all?\"" msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"\"Tank drone, meet the real deal. See how you handle 120 millimeters of " -"HELL YEAH!\"" -msgstr "" -"\"Czołg-dron, spotkaj prawdziwą rzecz. Zobaczymy jak poradzisz sobie ze 120 " -"milimetrami PIEKŁA O TAK!\"" - -#: lang/json/snippet_from_json.py -msgid "\"big fucking gun, earplugs are good for your brain\"" -msgstr "\"wielka cholerna spluwa, zatyczki do uszu są dobre dla twojego mózgu\"" - -#: lang/json/snippet_from_json.py -msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" -msgstr "" -"\"Mam działo czołgowe zamontowane na rowerze. Twoje argumenty nie mają racji" -" bytu.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Next person to call this infantry fighting vehicle a 'tank' is walking " -"home.\"" -msgstr "" -"\"Następna osoba która nazwie ten transporter opancerzony czołgiem wraca do " -"domu na piechotę.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Found what used to be an armored platoon. Most tanks have hatches up top," -" not in the back like the new ones they're using.\"" -msgstr "" -"\"Znalazłem to co było kiedyś plutonem pancernym. Większość czołgów ma włazy" -" na górze, a nie z tyłu jak te nowe których używają.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Agh, to See the Spiral in such a Distorted Shape! Manipulated for its " -"Vortex motion! Its Perpetual Grace! Its beauty Tarnished…\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "" -"\"Moja przyjaciółka umarła, ale przynajmniej zmieniłem ją w gluto-" -"wieżyczkę.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"I have this laser cannon turret on my shopping cart. I push it around and" -" everything dies. I think I'm gonna toss it in the lake-- this just isn't " -"fair anymore.\"" -msgstr "" -"\"Mam tu działko laserowe na moim wózku sklepowy. Pcham go dookoła i " -"wszystko umiera. Myślę, że chyba wrzucę ją do jeziora - to już nie jest " -"uczciwe.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Day 40. Controls broken-- car's magic reactor makes it goes inexorably " -"forward. Giant rollers on front demolish forest. Maine, here I come.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"my car is a diamond in the rough… literally\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" -msgstr "\"Dodałem tyle rzeczy do mojego taxi ze poszło z dymem. Whoops.\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"If I put one cargo dimension into another cargo dimension, does the " -"universe end?\"" -msgstr "" -"\"Jeśli umieszczę wymiar ładunkowy w innym wymiarze ładunkowym, to czy " -"wszechświat się skończy?\"" - -#: lang/json/snippet_from_json.py -msgid "\"one day, i will be part of car, too\"" -msgstr "\"pewnego dnia ja też będę częścią samochodu\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Putta little bitta dynamite and halfa landmine in an old soda can… WHAM!" -" You goin' somewhere.\"" -msgstr "" - #: lang/json/speech_from_json.py msgid "\"Hello?\"" msgstr "\"Halo?\"" @@ -195723,17 +190023,57 @@ msgid "\"Our food contains up to 95% real food.\"" msgstr "" #: lang/json/speech_from_json.py -msgid "\"FoodPlace: It's the Calories.\"" +msgid "\"At FoodPlace your excellent value brings nourishment and delight.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"At FoodPlace we have a host of solutions for your food needs!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"♪Eat at FoodPlace. ♫It is a place with food.♪\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is a popular food chain selling food items. What else is there " +"to know?\"" msgstr "" #: lang/json/speech_from_json.py msgid "\"You need food, don't you? Then come with me to FOODPLACE!!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"You need food, don't you? It's time for FoodPlace!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: It's the Calories.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Don’t get caught in the web of unsafe diet.\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"FoodPlace: Edible food is OUR guarantee!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: We bring food to life!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Edible food is one of our main goals!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is the only way to obtain healthy and strong lifecycle " +"choices!!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "Wanna play with me?" msgstr "Chcesz się ze mną pobawić?" @@ -196893,154 +191233,6 @@ msgstr "" msgid "a semi-musical chirping that echos across the landscape." msgstr "" -#: lang/json/speech_from_json.py -msgid "\"bzzzzzz.\"" -msgstr "\"bzzzzzz.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep.\"" -msgstr "\"Beep.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep?\"" -msgstr "\"Beep?\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep!\"" -msgstr "\"Beep!\"" - -#: lang/json/speech_from_json.py -msgid "\"Beeeeep beep.\"" -msgstr "\"Beeeeep beep.\"" - -#: lang/json/speech_from_json.py -msgid "\"Bebebeeeep.\"" -msgstr "\"Bebebeeeep.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep boop beep?\"" -msgstr "\"Beep boop beep?\"" - -#: lang/json/speech_from_json.py -msgid "\"Beedoo-Beep.\"" -msgstr "\"Beedoo-Beep.\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep Beep. Whirr.\"" -msgstr "\"Beep Beep. Whirr.\"" - -#: lang/json/speech_from_json.py -msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "\"Vrrrr Hrrrmmm.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whirrrrr-click click.\"" -msgstr "\"Whirrrrr-click click.\"" - -#: lang/json/speech_from_json.py -msgid "\"Boodoobeep beep beep.\"" -msgstr "\"Boodoobeep beep beep.\"" - -#: lang/json/speech_from_json.py -msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "\"Brannnnnnn Brzt Brmmmm.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "\"Whshoooo. Brzzzt. Brzzzt.\"" - -#: lang/json/speech_from_json.py -msgid "\"Brrm Bum Brrm?\"" -msgstr "\"Brrm Bum Brrm?\"" - -#: lang/json/speech_from_json.py -msgid "\"Pwweeee Krsht.\"" -msgstr "\"Pwweeee Krsht.\"" - -#: lang/json/speech_from_json.py -msgid "\"Fshkt fshkt. Booop.\"" -msgstr "\"Fshkt fshkt. Booop.\"" - -#: lang/json/speech_from_json.py -msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "\"Vzt. Vzt. Krshhhhhhhh.\"" - -#: lang/json/speech_from_json.py -msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "\"Whhheeee-oooo. Bedeep.\"" - -#: lang/json/speech_from_json.py -msgid "\"Grrrnd clang whirrrr.\"" -msgstr "\"Grrrnd clang whirrrr.\"" - -#: lang/json/speech_from_json.py -msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "\"Grrrrrrrnd. Grrrnd.\"" - -#: lang/json/speech_from_json.py -msgid "\"Cla-clang cla-clang!\"" -msgstr "\"Kla-klang kla-klang!\"" - -#: lang/json/speech_from_json.py -msgid "\"Klang!\"" -msgstr "\"Klang!\"" - -#: lang/json/speech_from_json.py -msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "\"Bzzzt. Bzzzzt!\"" - -#: lang/json/speech_from_json.py -msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "\"Shwwwrrrrnnnzzz bzzt.\"" - -#: lang/json/speech_from_json.py -msgid "a high pitched alarm." -msgstr "wysoko-tonowy alarm." - -#: lang/json/speech_from_json.py -msgid "a blaring siren." -msgstr "ogłuszającą syrenę." - -#: lang/json/speech_from_json.py -msgid "\"CHUG chug chug.\"" -msgstr "\"CHUG chug chug.\"" - -#: lang/json/speech_from_json.py -msgid "\"Creak! Clang clang.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Khr Khr Khr.\"" -msgstr "\"Khr Khr Khr.\"" - -#: lang/json/speech_from_json.py -msgid "a mechanical groaning." -msgstr "mechaniczny skrzypienia." - -#: lang/json/speech_from_json.py -msgid "grinding gears." -msgstr "zgrzyt kół zębatych." - -#: lang/json/speech_from_json.py -msgid "tortured machinery." -msgstr "torturowaną maszynerię." - -#: lang/json/speech_from_json.py -msgid "\"SQUEE!\"" -msgstr "\"SQUEE!\"" - #: lang/json/start_location_from_json.py msgid "Shelter" msgstr "Schron" @@ -197253,36 +191445,8 @@ msgstr "" msgid "Candy Shop" msgstr "" -#: lang/json/start_location_from_json.py -msgid "Robot Dispatch Center" -msgstr "Centrum Sterowania Robotami" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp (entrance)" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "Mansion Entrance" -msgstr "Wejście Rezydencji" - -#: lang/json/start_location_from_json.py src/gamemode_defense.cpp -msgid "Mansion" -msgstr "rezydencja" - -#: lang/json/start_location_from_json.py -msgid "Electronics Store" -msgstr "Sklep Z Elektroniką" - -#: lang/json/start_location_from_json.py -msgid "Clothing Store" -msgstr "Sklep z Ubraniami" - #: lang/json/talk_topic_from_json.py -msgid "You there. Quiet down. Can you hear it? The song?" +msgid "Acolyte." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197290,7 +191454,7 @@ msgid "You're back. Have you come to listen to the song?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Acolyte." +msgid "You there. Quiet down. Can you hear it? The song?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -197438,32 +191602,34 @@ msgid "Yeah, alright." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." +msgid "There are bones to etch, songs to sing. Wish to join me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." +msgid "Do you wish to take on more songs?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." +msgid "Do you believe you can take on the burden of additional bones?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you believe you can take on the burden of additional bones?" +msgid "A song may yet be sung by you, should you wish to." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you wish to take on more songs?" +msgid "There is an additional song you could take on, if you'd like." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There are bones to etch, songs to sing. Wish to join me?" +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That is all for now." +msgid "" +"The song is… quiet for now. Perhaps with time, more notes will be etched in" +" the bones of this world." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197471,9 +191637,7 @@ msgid "An acolyte should not take on too many songs at once." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The song is… quiet for now. Perhaps with time, more notes will be etched in" -" the bones of this world." +msgid "That is all for now." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197545,16 +191709,16 @@ msgstr "" msgid "I see. Very well then." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Only those who bear my mark will prove themselves worthy of my skills." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "You bear my mark, meaning I believe you have potential to learn to truly " "listen to the Song. Yes, I will lend my skills to you, for now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Only those who bear my mark will prove themselves worthy of my skills." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I am glad to hear it. Let's go then." msgstr "" @@ -197784,14 +191948,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, I can perform first aid. You give me some bandages or a bottle of " -"antiseptic, I'll treat your wounds as best I can." +"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " +"or a bottle of antiseptic, I'm get you fixed when I see you hurting." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " -"or a bottle of antiseptic, I'm get you fixed when I see you hurting." +"Yeah, I can perform first aid. You give me some bandages or a bottle of " +"antiseptic, I'll treat your wounds as best I can." msgstr "" #: lang/json/talk_topic_from_json.py @@ -197966,16 +192130,16 @@ msgstr "" msgid "Thanks. I have some things for you to do." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi there, ." +msgstr "Cześć, ." + #: lang/json/talk_topic_from_json.py msgid "" "STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " "anymore..." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hi there, ." -msgstr "Cześć, ." - #: lang/json/talk_topic_from_json.py msgid "What are you doing here?" msgstr "Co tu robisz?" @@ -198047,24 +192211,24 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Anything to do before I go to sleep?" -msgstr "Jeszcze coś do zrobienia zanim pójdę spać?" +msgid "No, just no..." +msgstr "Nie, po prostu nie..." #: lang/json/talk_topic_from_json.py -msgid "Just few minutes more..." -msgstr "Jeszcze kilka minut..." +msgid "Just let me sleep, !" +msgstr "Po prostu pozwól mi spać, !" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." msgstr "Tylko szybko, chcę spać." #: lang/json/talk_topic_from_json.py -msgid "Just let me sleep, !" -msgstr "Po prostu pozwól mi spać, !" +msgid "Just few minutes more..." +msgstr "Jeszcze kilka minut..." #: lang/json/talk_topic_from_json.py -msgid "No, just no..." -msgstr "Nie, po prostu nie..." +msgid "Anything to do before I go to sleep?" +msgstr "Jeszcze coś do zrobienia zanim pójdę spać?" #: lang/json/talk_topic_from_json.py msgid "Wake up!" @@ -198089,14 +192253,14 @@ msgstr "" msgid "no, go back to sleep." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "What is it, friend?" -msgstr "O co chodzi, przyjacielu?" - #: lang/json/talk_topic_from_json.py msgid " *pshhhttt* I'm reading you boss, over." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "O co chodzi, przyjacielu?" + #: lang/json/talk_topic_from_json.py msgid "I want to give you some commands for combat." msgstr "Chcę dać ci kilka poleceń do walki." @@ -198178,15 +192342,15 @@ msgid "Let's go." msgstr "Idziemy." #: lang/json/talk_topic_from_json.py -msgid "*will engage all enemies." +msgid "*will not engage enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage enemies close enough to attack without moving." +msgid "*will engage nearby enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage distant enemies without moving." +msgid "*will engage weak enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198194,19 +192358,15 @@ msgid "*will engage enemies you attack." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage weak enemies." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "*will engage nearby enemies." +msgid "*will engage distant enemies without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not engage enemies." +msgid "*will engage enemies close enough to attack without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid " " +msgid "*will engage all enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198214,7 +192374,7 @@ msgid " OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid " " msgstr "" #: lang/json/talk_topic_from_json.py @@ -198222,7 +192382,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198230,19 +192390,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198250,7 +192410,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198258,13 +192418,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid " What should do?" msgstr "" @@ -198340,7 +192504,8 @@ msgstr "" #: src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/monexamine.cpp src/monexamine.cpp src/npc.cpp -#: src/pickup.cpp src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp +#: src/pickup.cpp src/player.cpp src/player.cpp src/player.cpp +#: src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." msgstr "Nieważne." @@ -198373,12 +192538,13 @@ msgid "Attack anything you want." msgstr "Atakuj co chcesz." #: lang/json/talk_topic_from_json.py -msgid "*will not reserve any power for defense or utility CBMs." +#, no-python-format +msgid "*will reserve 100% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 25% of CBM power for defense or utility CBMs." +msgid "*will reserve 75% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198388,12 +192554,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 75% of CBM power for defense or utility CBMs." +msgid "*will reserve 25% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py -#, no-python-format -msgid "*will reserve 100% of CBM power for defense or utility CBMs." +msgid "*will not reserve any power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198433,12 +192598,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 10% of total power." +msgid "*will recharge power CBMs until has 90% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 25% of total power." +msgid "*will recharge power CBMs until has 75% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198448,12 +192613,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 75% of total power." +msgid "*will recharge power CBMs until has 25% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 90% of total power." +msgid "*will recharge power CBMs until has 10% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198489,19 +192654,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not bother to aim at all." +msgid "*will aim when it's convenient." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will take time and aim carefully." +msgid "*will only shoot after taking a long time to aim." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will only shoot after taking a long time to aim." +msgid "*will take time and aim carefully." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will aim when it's convenient." +msgid "*will not bother to aim at all." msgstr "" #: lang/json/talk_topic_from_json.py @@ -198545,7 +192710,7 @@ msgid "OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198553,11 +192718,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198565,7 +192726,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198573,7 +192734,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198581,7 +192742,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198589,7 +192750,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198597,7 +192758,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198605,7 +192766,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198613,13 +192774,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." msgstr "Stosuj takie zasady jak ten tutaj towarzysz." @@ -198792,14 +192957,14 @@ msgstr "" msgid "Sure thing, I'll make my way there." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, this summer heat is hitting me hard, let's take a quick break, how " @@ -198812,10 +192977,6 @@ msgstr "" msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "Ok, może to pozwoli mi nie zamarznąć w tą pogodę, co słychać?" -#: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, it's the time of day for a quick break surely! How are you holding " @@ -198823,13 +192984,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, I'm feeling pretty sick… are you doing OK though?" +msgid "Man it's dark out isn't it? what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " -"what's up?" +msgid "Well, I'm feeling pretty sick… are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -198838,6 +192997,12 @@ msgid "" "Anyway, you coping OK, ? " msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " +"what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Now, we've got a moment, I was just thinking it's been a month or so since… " @@ -198909,14 +193074,14 @@ msgstr "Okej, żadnych gwałtownych ruchów..." msgid "Keep your distance!" msgstr "Trzymaj dystans!" -#: lang/json/talk_topic_from_json.py -msgid "This is my territory, ." -msgstr "To moje terytorium, ." - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is my territory, ." +msgstr "To moje terytorium, ." + #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." msgstr "Uspokój się. Nie zrobię ci krzywdy." @@ -198933,14 +193098,14 @@ msgstr "" msgid "&Put hands up." msgstr "&Podnieś ręce." -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*upuszcza jej broń." - #: lang/json/talk_topic_from_json.py msgid "*drops his weapon." msgstr "*upuszcza jego broń." +#: lang/json/talk_topic_from_json.py +msgid "*drops_her_weapon." +msgstr "*upuszcza jej broń." + #: lang/json/talk_topic_from_json.py msgid "Now get out of here" msgstr "A teraz wypad stąd" @@ -198969,14 +193134,6 @@ msgstr "Co się dzieje?" msgid "I don't care." msgstr "Nie obchodzi mnie to." -#: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" -msgstr "Mam tylko jedną robotę. Chcesz posłuchać?" - -#: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" -msgstr "Mam kolejną robotę dla ciebie. Chcesz o niej usłyszeć?" - #: lang/json/talk_topic_from_json.py msgid "I have other jobs for you. Want to hear about them?" msgstr "Mam inne zadania dla ciebie. Chcesz o nich usłyszeć?" @@ -198986,13 +193143,21 @@ msgid "I have more jobs for you. Want to hear about them?" msgstr "Mam kolejne zadania dla ciebie. Chcesz o nich usłyszeć?" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." -msgstr "Nie mam już więcej prac dla ciebie." +msgid "I have another job for you. Want to hear about it?" +msgstr "Mam kolejną robotę dla ciebie. Chcesz o niej usłyszeć?" + +#: lang/json/talk_topic_from_json.py +msgid "I just have one job for you. Want to hear about it?" +msgstr "Mam tylko jedną robotę. Chcesz posłuchać?" #: lang/json/talk_topic_from_json.py msgid "I don't have any jobs for you." msgstr "Nie mam żadnych prac dla ciebie." +#: lang/json/talk_topic_from_json.py +msgid "I don't have any more jobs for you." +msgstr "Nie mam już więcej prac dla ciebie." + #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." @@ -199003,16 +193168,16 @@ msgid "Never mind, I'm not interested." msgstr "Nieważne, nie jestem zainteresowany." #: lang/json/talk_topic_from_json.py -msgid "What about it?" -msgstr "Co ty na to?" +msgid "You're not working on anything for me now." +msgstr "Nie pracujesz teraz nad żadnym moim zleceniem." #: lang/json/talk_topic_from_json.py msgid "Which job?" msgstr "Która praca?" #: lang/json/talk_topic_from_json.py -msgid "You're not working on anything for me now." -msgstr "Nie pracujesz teraz nad żadnym moim zleceniem." +msgid "What about it?" +msgstr "Co ty na to?" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" @@ -199231,48 +193396,48 @@ msgid "Thanks!" msgstr "Dzięki!" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for not telling you." -msgstr "Mam swoje powody by ci nie mówić." +msgid "Focus on the road, mate!" +msgstr "Skup się na drodze, kolego!" #: lang/json/talk_topic_from_json.py -msgid "Nothing comes to my mind now. Ask me later perhaps?" -msgstr "" +msgid "I'm too thirsty, give me something to drink." +msgstr "Pragnienie mnie męczy, daj mi coś do picia." + +#: lang/json/talk_topic_from_json.py +msgid "I'm too hungry, give me something to eat." +msgstr "Żołądek mnie ssie, daj mi coś do jedzenia." #: lang/json/talk_topic_from_json.py msgid "I'm too tired, let me rest first." msgstr "Jestem zbyt zmęczony, pozwól mi wpierw odpocząć." #: lang/json/talk_topic_from_json.py -msgid "I'm too hungry, give me something to eat." -msgstr "Żołądek mnie ssie, daj mi coś do jedzenia." +msgid "Nothing comes to my mind now. Ask me later perhaps?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm too thirsty, give me something to drink." -msgstr "Pragnienie mnie męczy, daj mi coś do picia." +msgid "I have some reason for not telling you." +msgstr "Mam swoje powody by ci nie mówić." #: lang/json/talk_topic_from_json.py msgid "I must focus on the road!" msgstr "Muszę się skupić na drodze!" -#: lang/json/talk_topic_from_json.py -msgid "Focus on the road, mate!" -msgstr "Skup się na drodze, kolego!" - #: lang/json/talk_topic_from_json.py msgid "Ah, okay." msgstr "Oh, okej." #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "Czemu mam z tobą podróżować?" +msgid "Not until I get some antibiotics..." +msgstr "Nie, dopóki nie dostanę antybiotyków..." #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." msgstr "Niedawno mnie o to pytałeś. Poproś później." #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Nie, dopóki nie dostanę antybiotyków..." +msgid "Why should I travel with you?" +msgstr "Czemu mam z tobą podróżować?" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." @@ -199363,20 +193528,20 @@ msgid "On second thought, never mind." msgstr "Po zastanowieniu się, jednak nieważne." #: lang/json/talk_topic_from_json.py -msgid "I have some reason for denying you training." -msgstr "Mam swoje powody, by odmówić ci szkolenia." +msgid "I can't train you properly while you're operating a vehicle!" +msgstr "Nie jestem w stanie cię trenować gdy prowadzisz pojazd!" #: lang/json/talk_topic_from_json.py msgid "Give it some time, I'll show you something new later..." msgstr "Odczekaj trochę, później pokażę ci cos nowego..." #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while I'm operating a vehicle!" -msgstr "Nie jestem w stanie cię trenować gdy prowadzę pojazd!" +msgid "I have some reason for denying you training." +msgstr "Mam swoje powody, by odmówić ci szkolenia." #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while you're operating a vehicle!" -msgstr "Nie jestem w stanie cię trenować gdy prowadzisz pojazd!" +msgid "I can't train you properly while I'm operating a vehicle!" +msgstr "Nie jestem w stanie cię trenować gdy prowadzę pojazd!" #: lang/json/talk_topic_from_json.py msgid "Not a bloody chance, I'm going to get left behind!" @@ -199414,14 +193579,14 @@ msgstr "Wolę zachować to dla siebie." msgid "I understand…" msgstr "Rozumiem..." -#: lang/json/talk_topic_from_json.py -msgid "Why should I share my equipment with you?" -msgstr "Czemu mam się dzielić ekwipunkiem?" - #: lang/json/talk_topic_from_json.py msgid "You just asked me for stuff; ask later." msgstr "Dopiero mnie pytałeś o sprzęt. Zapytaj później." +#: lang/json/talk_topic_from_json.py +msgid "Why should I share my equipment with you?" +msgstr "Czemu mam się dzielić ekwipunkiem?" + #: lang/json/talk_topic_from_json.py msgid "Okay, fine." msgstr "Okej, w porządku." @@ -199564,16 +193729,16 @@ msgstr "Miło było robić interesy!" msgid "You might be seeing more of me…" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hey again. *kzzz*" +msgstr "Witaj ponownie. *ksss*" + #: lang/json/talk_topic_from_json.py msgid "" "I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " "I've seen in a long time." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hey again. *kzzz*" -msgstr "Witaj ponownie. *ksss*" - #: lang/json/talk_topic_from_json.py msgid "Hey. Let's chat for a second." msgstr "" @@ -200664,15 +194829,15 @@ msgid "This is a low driving test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greeting citizen, what brings you to the FoodLair?" +msgid "Greetings friend, it's nice to see you." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Still here? Take your time, it's rough out there." +msgid "So you're back… Explain yourself!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greetings friend, it's nice to see you." +msgid "What sorcery is this?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -200680,11 +194845,11 @@ msgid "Welcome home Foodkid!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What sorcery is this?" +msgid "Still here? Take your time, it's rough out there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So you're back… Explain yourself!" +msgid "Greeting citizen, what brings you to the FoodLair?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -202293,6 +196458,10 @@ msgid "" " just busy not dying." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "Nie mogę na razie o tym mówić. Nie potrafię." + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a blur." @@ -202301,8 +196470,7 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke. I'd seen such horrible injuries, and then I… " -", I can't even talk about it." +"shift I… well, I broke." msgstr "" #: lang/json/talk_topic_from_json.py @@ -202313,13 +196481,10 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke." +"shift I… well, I broke. I'd seen such horrible injuries, and then I… " +", I can't even talk about it." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "I just can't talk about that right now. I can't." -msgstr "Nie mogę na razie o tym mówić. Nie potrafię." - #: lang/json/talk_topic_from_json.py msgid "It might help to get it off your chest." msgstr "Mogę pomóc zdjąć to z twoich barków." @@ -202715,21 +196880,21 @@ msgstr "Dziękuję, że mi to powiedziałeś. " #: lang/json/talk_topic_from_json.py msgid "" -"My wife made it out with me, but got eaten by one of those plant " +"My husband made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"Moja żona zdołała uciec ze mną, ale pożarł ją jeden z tych " -"roślinnych potworów kilka dni przed tym jak cię spotkałem. To nie był dla " -"mnie najlepszy rok." +"Mój mąż zdołał uciec ze mną, ale pożarł go jeden z tych roślinnych " +"potworów kilka dni przed tym jak cię spotkałem. To nie był dla mnie " +"najlepszy rok." #: lang/json/talk_topic_from_json.py msgid "" -"My husband made it out with me, but got eaten by one of those plant " +"My wife made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"Mój mąż zdołał uciec ze mną, ale pożarł go jeden z tych roślinnych " -"potworów kilka dni przed tym jak cię spotkałem. To nie był dla mnie " -"najlepszy rok." +"Moja żona zdołała uciec ze mną, ale pożarł ją jeden z tych " +"roślinnych potworów kilka dni przed tym jak cię spotkałem. To nie był dla " +"mnie najlepszy rok." #: lang/json/talk_topic_from_json.py msgid "I'm sorry to hear it." @@ -202789,10 +196954,9 @@ msgid "I'm sorry you lost someone." msgstr "Przykro mi że kogoś straciłeś." #: lang/json/talk_topic_from_json.py -msgid "Just another tale of love and loss. Not one I like to tell." -msgstr "" -"To tylko kolejna bajka o miłości i stracie. Nic nad czym lubiłbym " -"się rozwodzić." +msgid "" +"I said, I don't wanna talk about it. How are you not understanding this?" +msgstr "Powiedziałem, nie chcę o tym mówić. Czemu tego nie rozumiesz?" #: lang/json/talk_topic_from_json.py msgid "" @@ -202803,9 +196967,10 @@ msgstr "" "jeszcze raz ją opowiem." #: lang/json/talk_topic_from_json.py -msgid "" -"I said, I don't wanna talk about it. How are you not understanding this?" -msgstr "Powiedziałem, nie chcę o tym mówić. Czemu tego nie rozumiesz?" +msgid "Just another tale of love and loss. Not one I like to tell." +msgstr "" +"To tylko kolejna bajka o miłości i stracie. Nic nad czym lubiłbym " +"się rozwodzić." #: lang/json/talk_topic_from_json.py msgid "You said you lost someone." @@ -202828,51 +196993,51 @@ msgid "" "Oh, . This doesn't have anything to do with you, or with us." msgstr "Oh, . To nie ma nic wspólnego z tobą, ani z nami." -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "W porządku. Miałem kogoś. I ją straciłem." - #: lang/json/talk_topic_from_json.py msgid "All right, fine. I had someone. I lost him." msgstr "W porządku. Miałam kogoś. I jego straciłam." +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "W porządku. Miałem kogoś. I ją straciłem." + #: lang/json/talk_topic_from_json.py msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -"Była w domu gdy bomby spadły i świat poszedł w diabły. Byłem w pracy. " -"Starałem się dostać do naszego domu, ale miasto zmieniło się w strefę wojny." +"Był w domu gdy bomby spadły i świat poszedł w diabły. Byłam w pracy. " +"Starałam się dostać do naszego domu, ale miasto zmieniło się w strefę wojny." " Rzeczy, których nie potrafię opisać latały po ulicach, miażdżąc ludzi i " "samochody. Żołnierze próbowali je zatrzymać, ale trafiali w krzyżowym ogniu " "cywili na równi ze wszystkim innym. Po czym straty w cywilach powstały by " -"przyłączyć się do wrogów. Gdyby nie moja żona, po prostu bym odszedł, ale " -"robiłem co mogłem i się prześliznąłem. Cudem uszedłem z życiem." +"przyłączyć się do wrogów. Gdyby nie mój mąż, po prostu bym odeszła, ale " +"robiłam co mogłam i się prześliznęłam. Cudem uszłam z życiem." #: lang/json/talk_topic_from_json.py msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -"Był w domu gdy bomby spadły i świat poszedł w diabły. Byłam w pracy. " -"Starałam się dostać do naszego domu, ale miasto zmieniło się w strefę wojny." +"Była w domu gdy bomby spadły i świat poszedł w diabły. Byłem w pracy. " +"Starałem się dostać do naszego domu, ale miasto zmieniło się w strefę wojny." " Rzeczy, których nie potrafię opisać latały po ulicach, miażdżąc ludzi i " "samochody. Żołnierze próbowali je zatrzymać, ale trafiali w krzyżowym ogniu " "cywili na równi ze wszystkim innym. Po czym straty w cywilach powstały by " -"przyłączyć się do wrogów. Gdyby nie mój mąż, po prostu bym odeszła, ale " -"robiłam co mogłam i się prześliznęłam. Cudem uszłam z życiem." +"przyłączyć się do wrogów. Gdyby nie moja żona, po prostu bym odszedł, ale " +"robiłem co mogłem i się prześliznąłem. Cudem uszedłem z życiem." #: lang/json/talk_topic_from_json.py msgid "You must have seen some shit." @@ -202942,11 +197107,11 @@ msgstr "Dostałeś się do wnętrza domu?" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " +"up part? Like, out of all this? My husband was still alive. He'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirious by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then… well, then I did what you " +"he'd lost a ton of blood, he was delirious by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -202954,11 +197119,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " +"up part? Like, out of all this? My wife was still alive. She'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirious by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then… well, then I did what you " +"she'd lost a ton of blood, she was delirious by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -203729,16 +197894,6 @@ msgstr "" "wiernych nadeszło, a ja zostałem w tyle. Więc teraz, jak sądzę, kroczę przez" " piekło na ziemi. Szkoda, że nie słuchałem na szkółce niedzielnej." -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started… cancer. If anything good has " -"come out of all this, it's that I finally see a positive to losing her so " -"young. I'd been shut in for a while anyway. When the news started talking " -"about Chinese bio weapons and sleeper agents, and showing the rioting in " -"Boston and such, I curled up with my canned soup and changed the channel." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I lived alone, on the old family property way out of town. My husband " @@ -203750,6 +197905,16 @@ msgid "" "channel." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started… cancer. If anything good has " +"come out of all this, it's that I finally see a positive to losing her so " +"young. I'd been shut in for a while anyway. When the news started talking " +"about Chinese bio weapons and sleeper agents, and showing the rioting in " +"Boston and such, I curled up with my canned soup and changed the channel." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, it built up a bit. There was that acid rain, it burnt up one of my " @@ -203845,14 +198010,6 @@ msgstr "Przykro mi z powodu Buck'a. " msgid "I'm sorry about Buck. " msgstr "Przykro mi z powodu Buck'a. " -#: lang/json/talk_topic_from_json.py -msgid "" -"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " -"interested in getting attached. You didn't pay me to be your friend." -msgstr "" -"Słuchaj. Krótka piłka. Pracuję dla ciebie, ok? Nie jestem zainteresowany by " -"się przywiązywać. Nie zapłaciłeś mi za bycie twoim przyjacielem." - #: lang/json/talk_topic_from_json.py msgid "" "Like I said, you want me to tell you a story, you gotta pony up the whisky." @@ -203861,6 +198018,14 @@ msgstr "" "Jak już mówiłem, chcesz posłuchać ode mnie historii, stawiasz whiskey. Pełna" " butelka, przypominam." +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " +"interested in getting attached. You didn't pay me to be your friend." +msgstr "" +"Słuchaj. Krótka piłka. Pracuję dla ciebie, ok? Nie jestem zainteresowany by " +"się przywiązywać. Nie zapłaciłeś mi za bycie twoim przyjacielem." + #: lang/json/talk_topic_from_json.py msgid "" "I'm not looking for a friend, but I've paid my dues and earned my way. You " @@ -204244,20 +198409,6 @@ msgstr "" " jestem tchórzem, ale teraz wiem ze gdybym został byłbym kolejnym cieknącym " "trupem." -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " -"peel out of there with her brother - my best man - in his pickup truck as " -"things went bad. So, until I run into them again one way or another, I'm " -"just gonna keep on believing they're out there, doing well. That's more " -"than most of us have." -msgstr "" -"Cóż, mam taką dziwną nadzieję. Pewnie to głupota, ale widziałem narzeczoną " -"zwiewająca stamtąd z jej bratem - a moim świadkiem - w tym pickupie gdy " -"sprawy wymknęły się spod kontroli. Więc, zanim nie wpadnę na nich tak czy " -"inaczej, będę nadal wierzyć, że gdzieś tam są, i im się wiedzie. To więcej " -"niż na co większość z nasz może liczyć." - #: lang/json/talk_topic_from_json.py msgid "" "Well, I have this weird hope. It's probably stupid, but I saw my fiancé " @@ -204273,12 +198424,22 @@ msgstr "" "niż na co większość z nasz może liczyć." #: lang/json/talk_topic_from_json.py -msgid "What were you saying before that?" -msgstr "O czym to mówiłeś wcześniej?" +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"Cóż, mam taką dziwną nadzieję. Pewnie to głupota, ale widziałem narzeczoną " +"zwiewająca stamtąd z jej bratem - a moim świadkiem - w tym pickupie gdy " +"sprawy wymknęły się spod kontroli. Więc, zanim nie wpadnę na nich tak czy " +"inaczej, będę nadal wierzyć, że gdzieś tam są, i im się wiedzie. To więcej " +"niż na co większość z nasz może liczyć." #: lang/json/talk_topic_from_json.py -msgid "Welcome! You seem new, how can I help you?" -msgstr "" +msgid "What were you saying before that?" +msgstr "O czym to mówiłeś wcześniej?" #: lang/json/talk_topic_from_json.py msgid "Hey there." @@ -204300,6 +198461,10 @@ msgstr "" msgid "How's the weather?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Welcome! You seem new, how can I help you?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What is this place?" msgstr "Co to za miejsce?" @@ -204386,16 +198551,16 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. If " -"you had found our community earlier, you could have had a higher chance to " -"join. The newest member joined just a few days ago." +"decisions. But as I said, your chances are low, like everyone else's. The " +"newest member joined just a long time ago." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. The " -"newest member joined just a long time ago." +"decisions. But as I said, your chances are low, like everyone else's. If " +"you had found our community earlier, you could have had a higher chance to " +"join. The newest member joined just a few days ago." msgstr "" #: lang/json/talk_topic_from_json.py @@ -204442,15 +198607,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey! What are you doing up here? You are not allowed to come here." +msgid "You're back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You're back." +msgid "So…?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So…?" +msgid "Hey! What are you doing up here? You are not allowed to come here." msgstr "" #: lang/json/talk_topic_from_json.py @@ -204484,15 +198649,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am sorry, but nobody is allowed to take anything from here. We would like" -" to help you, but we already have enough mouths to feed." +"I am afraid you can't. Look, we are running low on our rations, and we " +"don't want to waste even more. Even if you just want to 'borrow' it. Too " +"bad, we could've helped you if you had come here earlier." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am afraid you can't. Look, we are running low on our rations, and we " -"don't want to waste even more. Even if you just want to 'borrow' it. Too " -"bad, we could've helped you if you had come here earlier." +"I am sorry, but nobody is allowed to take anything from here. We would like" +" to help you, but we already have enough mouths to feed." msgstr "" #: lang/json/talk_topic_from_json.py @@ -204535,14 +198700,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That information is a bit private, but you can see for yourself. We have " -"about 20 crates full of non-perishables." +"I don't know anymore. You see, we used to have 20 crates full of non-" +"perishables. That was months ago. We are running out." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I don't know anymore. You see, we used to have 20 crates full of non-" -"perishables. That was months ago. We are running out." +"That information is a bit private, but you can see for yourself. We have " +"about 20 crates full of non-perishables." msgstr "" #: lang/json/talk_topic_from_json.py @@ -204611,11 +198776,11 @@ msgid "That's good to hear." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Pleased to meet you." +msgid "Are you here to protect us?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Are you here to protect us?" +msgid "Pleased to meet you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -204672,11 +198837,11 @@ msgid "That's the most hopeful thing I've heard so far." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." +msgid "Same way you got yours, I bet." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Same way you got yours, I bet." +msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -204688,19 +198853,19 @@ msgid "You're disgusting." msgstr "Jesteś obrzydliwy." #: lang/json/talk_topic_from_json.py -msgid "Insulting people who could help you is unlikely to aid survival." +msgid "I'm very sorry to tell you this, but you should look in a mirror." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm very sorry to tell you this, but you should look in a mirror." +msgid "Insulting people who could help you is unlikely to aid survival." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can't believe my eyes. Please get me outta here…" +msgid "Hey, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey, ." +msgid "I can't believe my eyes. Please get me outta here…" msgstr "" #: lang/json/talk_topic_from_json.py @@ -204726,7 +198891,9 @@ msgid "Sounds good, Barry." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello Ma'am, what brings you here?" +msgid "" +"I see that badge, I think you need to keep on walking, straight off this " +"property." msgstr "" #: lang/json/talk_topic_from_json.py @@ -204734,9 +198901,7 @@ msgid "Hello Sir, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need to keep on walking, straight off this " -"property." +msgid "Hello Ma'am, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -204810,16 +198975,16 @@ msgstr "" msgid "Where can I find Chris?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hi, what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I see that badge. You need to leave our land, my relatives have no fondness" " for Marshals." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi, what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hi, Your dad asked me to come find you, said you've been looking for your " @@ -204911,7 +199076,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi, what brings you here?" +msgid "Is that a U.S. Marshal's badge you're wearing?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -204919,7 +199084,7 @@ msgid "Hello, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Is that a U.S. Marshal's badge you're wearing?" +msgid "Hi, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -205213,11 +199378,11 @@ msgid "That's all for now. I'd best get going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello, We don't see many people these days." +msgid "Leave our property, Marshal." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Leave our property, Marshal." +msgid "Hello, We don't see many people these days." msgstr "" #: lang/json/talk_topic_from_json.py @@ -205416,12 +199581,8 @@ msgid "Tell me about your dad." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Psze Pani, nie wiem jak u licha się tu Pani dostała ale jeśli ma Pani choć " -"trochę oleju w głowie to zabierze się Pani stąd puki może." +msgid "Marshal, I hope you're here to assist us." +msgstr "Marszalu, mam nadzieję że jesteś tu by nas wesprzeć." #: lang/json/talk_topic_from_json.py msgid "" @@ -205432,8 +199593,12 @@ msgstr "" "oleju w głowie to zabierze się Pan stąd puki może." #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Marszalu, mam nadzieję że jesteś tu by nas wesprzeć." +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Psze Pani, nie wiem jak u licha się tu Pani dostała ale jeśli ma Pani choć " +"trochę oleju w głowie to zabierze się Pani stąd puki może." #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" @@ -205511,16 +199676,16 @@ msgid "Whatever they did it must have worked since we are still alive…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here… you should leave." -msgstr "" +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Marszalu, jestem poniekąd zdziwiony twoją tu obecnością." #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here… you should leave." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Marszalu, jestem poniekąd zdziwiony twoją tu obecnością." +msgid "Ma'am you are not authorized to be here… you should leave." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." @@ -205563,6 +199728,22 @@ msgstr "" "zapewnić integralność systemów łączności. Liczymy na to, że nadawanie " "czystym tekstem będzie mimo tego uchwytne." +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Witaj marszalu." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Marszalu, obawiam się że nie mogę teraz rozmawiać." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "Ja tu nie dowodzę, marszalu." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "Mam polecenie odsyłać wszelkie pytania do mojego dowództwa, marszalu." + #: lang/json/talk_topic_from_json.py msgid "Hey, citizen… I'm not sure you belong here." msgstr "" @@ -205575,16 +199756,6 @@ msgstr "Powinieneś pilnować własnego nosa, nic tu nie ma do oglądania." msgid "If you need something you'll need to talk to someone else." msgstr "Jak czegoś chcesz to pogadaj z kimś innym." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Pani." - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Hej panienko, nie sądzisz że będzie bezpieczniej jak się będziesz trzymać ze" -" mną?" - #: lang/json/talk_topic_from_json.py msgid "Sir." msgstr "Sir." @@ -205594,20 +199765,14 @@ msgid "Dude, if you can hold your own you should look into enlisting." msgstr "Koleś, jak dajesz radę ogarniać, to powinieneś się zaciągnąć." #: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Witaj marszalu." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Marszalu, obawiam się że nie mogę teraz rozmawiać." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "Ja tu nie dowodzę, marszalu." +msgid "Ma'am" +msgstr "Pani." #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "Mam polecenie odsyłać wszelkie pytania do mojego dowództwa, marszalu." +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" +"Hej panienko, nie sądzisz że będzie bezpieczniej jak się będziesz trzymać ze" +" mną?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me…" @@ -205664,16 +199829,15 @@ msgid "I've no use for weaklings. Run. Now." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Please, help me. I need food." -msgstr "Proszę pomóż mi, potrzebuję żywności." +msgid "" +"So, any luck with convincing the others to come on your crazy adventure yet?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Please, help me. I need food. Aren't you their sheriff? Can't you help " -"me?" +"I'm sorry to say it after all you've done for me, but… I don't suppose " +"you've got anything to eat?" msgstr "" -"Proszę, pomóż mi. Potrzebuję pożywienia. Nie jesteś aby ich szeryfem? Nie " -"możesz mi pomóc?" #: lang/json/talk_topic_from_json.py msgid "Thank you again. I really appreciate the food." @@ -205681,14 +199845,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm sorry to say it after all you've done for me, but… I don't suppose " -"you've got anything to eat?" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" msgstr "" +"Proszę, pomóż mi. Potrzebuję pożywienia. Nie jesteś aby ich szeryfem? Nie " +"możesz mi pomóc?" #: lang/json/talk_topic_from_json.py -msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" -msgstr "" +msgid "Please, help me. I need food." +msgstr "Proszę pomóż mi, potrzebuję żywności." #: lang/json/talk_topic_from_json.py msgid "" @@ -205707,17 +199872,17 @@ msgstr "Odejdź ode mnie." #: 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." +"here as long as I keep it clean and don't make a fuss, but I'm reduced to " +"begging to survive." msgstr "" -"Oni mnie nie wpuszczą. Mówią że już są zapełnieni. Wolno mi tu obozować, " -"jeśli po sobie sprzątam i nie robię problemów, ale jestem tak głodny." #: 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 reduced to " -"begging to survive." +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." msgstr "" +"Oni mnie nie wpuszczą. Mówią że już są zapełnieni. Wolno mi tu obozować, " +"jeśli po sobie sprzątam i nie robię problemów, ale jestem tak głodny." #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" @@ -205821,16 +199986,16 @@ msgid "" "hurry to face that again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " "think you realize how useless I am in this world." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I'm too hungry to make a big decision like that." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." msgstr "" @@ -205876,12 +200041,12 @@ msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "Czy mówiłem ci już o kartonie przyjacielu? Czy masz może jakiś?" #: lang/json/talk_topic_from_json.py -msgid "" -"How's things with you? My cardboard collection is getting quite impressive." +msgid "We've done it! We've solved the list!" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "We've done it! We've solved the list!" +msgid "" +"How's things with you? My cardboard collection is getting quite impressive." msgstr "" #: lang/json/talk_topic_from_json.py @@ -205913,13 +200078,13 @@ msgid "Do you need something to eat?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'm real hungry and they put drugs in most of the food. I can see " -"you're not like that." +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." msgstr "" #: lang/json/talk_topic_from_json.py @@ -206020,15 +200185,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's it! I'm just gonna need a little time to get it all set up. Thanks." -" You've helped me a lot. I'm feeling much more myself with all this to " -"keep me going." +"Well… I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well… I had it all pretty together, but the others have left, and now the " -"masters won't let me build my sanctuary. Can you help me figure them out?" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." msgstr "" #: lang/json/talk_topic_from_json.py @@ -206048,18 +200213,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Don't bother with these assholes." -msgstr "Nie przejmuje się tymi dupkami." +msgid "Fuck off, dickwaddle." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there, not-asshole. Good to see you again." +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " -"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" -" cranky. We cool?" +msgid "Hey there. Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py @@ -206069,16 +200231,19 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." +msgid "" +"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " +"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" +" cranky. We cool?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgid "Hey there, not-asshole. Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." -msgstr "" +msgid "Don't bother with these assholes." +msgstr "Nie przejmuje się tymi dupkami." #: lang/json/talk_topic_from_json.py msgid "What's up?" @@ -206391,12 +200556,6 @@ msgid "" "that?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I dunno, scientific interest? If you don't bring me anything, no worries. " -"I'm positively swimming in entertainment here, as you can see." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "If you get me a sample, I'll join your crazy camp expedition. Hell, if you " @@ -206405,6 +200564,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "Tak się składa, że mam teraz przy sobie kawałek grzybów." @@ -206447,14 +200612,14 @@ msgstr "" msgid "I'll see what I can do." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hey, are you a big fan of survival of the fittest?" -msgstr "Hej, jesteś wielkim fanem przeżycia najlepszych?" - #: lang/json/talk_topic_from_json.py msgid "Thanks again for the grub, my friend." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "Hej, jesteś wielkim fanem przeżycia najlepszych?" + #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" msgstr "Czemu pytasz?" @@ -206473,17 +200638,17 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " -"Help a poor sickly soul out?" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." msgstr "" -"Bo ja, to pewne, do najlepszych nie należę, więc posiedzę tu aż umrę z " -"głodu. Pomożesz biednej duszy w potrzebie?" #: lang/json/talk_topic_from_json.py msgid "" -"Oh you know, the usual: sittin' out here until I starve to death, playin' " -"cards with Dave, that kinda thing." +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" msgstr "" +"Bo ja, to pewne, do najlepszych nie należę, więc posiedzę tu aż umrę z " +"głodu. Pomożesz biednej duszy w potrzebie?" #: lang/json/talk_topic_from_json.py msgid "I could maybe help you out… want something to eat?" @@ -206506,12 +200671,12 @@ msgid "Why are you camped out here if they won't let you in?" msgstr "Czemu tu obozujesz skoro cię nie wpuszczą?" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgid "That's awful kind of you, you really are a wonderful person." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's awful kind of you, you really are a wonderful person." +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." msgstr "" #: lang/json/talk_topic_from_json.py @@ -206798,10 +200963,6 @@ msgstr "" msgid "What's your take on the situation here?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, uh… hi. You look new. I'm Aleesha." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." msgstr "O, hej, to znowu ty." @@ -206814,6 +200975,10 @@ msgstr "" msgid "Aw hey, look who's back." msgstr "Hej, zobacz, kto wrócił." +#: lang/json/talk_topic_from_json.py +msgid "Oh, uh… hi. You look new. I'm Aleesha." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" msgstr "Miło mi cię poznać, dzieciaku. Co tam?" @@ -206831,16 +200996,16 @@ msgid "Hi Aleesha. I can't stay to talk." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm fourteen." -msgstr "Nie jestem dzieckiem, okej? Mam czternaście lat." +msgid "I'm not a kid, okay? I'm sixteen." +msgstr "Nie jestem dzieckiem, okej? Mam szesnaście lat." #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." msgstr "Nie jestem dzieckiem, okej? Mam piętnaście lat." #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm sixteen." -msgstr "Nie jestem dzieckiem, okej? Mam szesnaście lat." +msgid "I'm not a kid, okay? I'm fourteen." +msgstr "Nie jestem dzieckiem, okej? Mam czternaście lat." #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" @@ -206850,18 +201015,6 @@ msgstr "Wybacz, nie chciałem cię urazić. Co tam?" msgid "Sorry, I didn't mean anything by it. I'll be on my way." msgstr "Wybacz, nie chciałem cię urazić. Zbieram się w drogę." -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know what's up. I'm not sure what we've even doing here. They say " -"we're supposed to wait until we can be moved to the shelter downstairs, but " -"we've been here days and there's no word on how long we'll be waiting. It's" -" all so stupid, and nobody can tell me anything." -msgstr "" -"Nie wiem co tam. Nie jestem nawet pewien co my tutaj robimy. Oni mówią, że " -"powinniśmy czekać zanim będziemy mogli być przeniesieni do schronu na dole, " -"ale jesteśmy tu już od dni i nie było słowa ile to jeszcze będzie trwać. To " -"wszystko takie głupie i nikt mi nic nie mówi." - #: lang/json/talk_topic_from_json.py msgid "" "We're just standing around here waiting, like a bunch of idiots. We're " @@ -206875,6 +201028,18 @@ msgstr "" " że to się wydarzy. Nie wiem co tu robimy. Przeczytałem wszystkie książki, a" " na zewnątrz są zombie więc utknęliśmy tutaj. Słychać je w nocy." +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't know what's up. I'm not sure what we've even doing here. They say " +"we're supposed to wait until we can be moved to the shelter downstairs, but " +"we've been here days and there's no word on how long we'll be waiting. It's" +" all so stupid, and nobody can tell me anything." +msgstr "" +"Nie wiem co tam. Nie jestem nawet pewien co my tutaj robimy. Oni mówią, że " +"powinniśmy czekać zanim będziemy mogli być przeniesieni do schronu na dole, " +"ale jesteśmy tu już od dni i nie było słowa ile to jeszcze będzie trwać. To " +"wszystko takie głupie i nikt mi nic nie mówi." + #: lang/json/talk_topic_from_json.py msgid "" "You can't just go asking people questions like that nowadays. I'm a " @@ -206912,8 +201077,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." +msgid "Hello again, gorgeous" msgstr "" #: lang/json/talk_topic_from_json.py @@ -206923,7 +201087,8 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello again, gorgeous" +msgid "" +"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." msgstr "" #: lang/json/talk_topic_from_json.py @@ -206953,33 +201118,33 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Now that you are here, everything. Is there anything Alonso can… *do for " -"you*?" +"Well, it's a lot better now that you're here. Nice to see a familiar face." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well, it's a lot better now that you're here. Nice to see a familiar face." +"Now that you are here, everything. Is there anything Alonso can… *do for " +"you*?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Alonso cannot help himself, in the face of someone so fine as you." +msgid "You know me, I gotta be me, right?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You know me, I gotta be me, right?" +msgid "Alonso cannot help himself, in the face of someone so fine as you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " +"Aw man, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw man, why you gotta be like that? I'm just tryin' to get an air of " +"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" @@ -207008,12 +201173,6 @@ msgstr "" msgid "Thanks. I'd better get going." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Alonso does not wish to talk about the past, only the future. There are " -"dark days ahead, but perhaps together we can bring a little light?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I'm tryin' ta forget, y'know? Don't like thinkin' about the past. Better " @@ -207022,8 +201181,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here in the center, Alonso is a bit lonely. We get a few brave, strong " -"travelers like yourself, though, and seeing them brightens Alonso's day." +"Alonso does not wish to talk about the past, only the future. There are " +"dark days ahead, but perhaps together we can bring a little light?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -207033,8 +201192,10 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, another new face. Hello. I am Boris." -msgstr "Ach, kolejna nowa twarz. Cześć. Jestem Boris." +msgid "" +"Here in the center, Alonso is a bit lonely. We get a few brave, strong " +"travelers like yourself, though, and seeing them brightens Alonso's day." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, well. I'm glad you are back." @@ -207048,6 +201209,10 @@ msgstr "Witaj ponownie, przyjacielu." msgid "It is good to see you again." msgstr "Miło znów cię widzieć." +#: lang/json/talk_topic_from_json.py +msgid "Ah, another new face. Hello. I am Boris." +msgstr "Ach, kolejna nowa twarz. Cześć. Jestem Boris." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." msgstr "" @@ -207119,6 +201284,13 @@ msgstr "Przykro mi. Co mówiłeś wcześniej?" msgid "I'm sorry. I'd better get going." msgstr "Przykro mi. Lepiej już pójdę." +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, now that you mention it, with the back bay cleared I could probably " +"set up back there and start work. I'll think about it, get back to me " +"later." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "There isn't much to do with a hammer and a saw here indoors, and working " @@ -207129,13 +201301,6 @@ msgid "" "caravans bring food, so they get priority, I can't argue with that." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, now that you mention it, with the back bay cleared I could probably " -"set up back there and start work. I'll think about it, get back to me " -"later." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Everyone agrees this is bad. Sleeping on a cot on the floor, crowded in " @@ -207166,10 +201331,6 @@ msgstr "" msgid "Got any more bread I can trade flour for?" msgstr "Masz jeszcze chleb, za który mogę wymienić mąkę?" -#: lang/json/talk_topic_from_json.py -msgid "Hi there. I'm Dana, nice to see a new face." -msgstr "Witaj. Jestem Dana, miło widzieć nową twarz." - #: lang/json/talk_topic_from_json.py msgid "Hello, nice to see you again." msgstr "Cześć, miło znów cię widzieć." @@ -207178,6 +201339,10 @@ msgstr "Cześć, miło znów cię widzieć." msgid "It's good to see you're still around." msgstr "Dobrze widzieć, że nadal jesteś tutaj." +#: lang/json/talk_topic_from_json.py +msgid "Hi there. I'm Dana, nice to see a new face." +msgstr "Witaj. Jestem Dana, miło widzieć nową twarz." + #: lang/json/talk_topic_from_json.py msgid "Dana, hey? Nice to meet you." msgstr "Boris, czy tak? Miło cię poznać." @@ -207227,10 +201392,8 @@ msgstr "Przykro mi z powodu twojej straty." #: lang/json/talk_topic_from_json.py msgid "" -"I do a bit. I got a sourdough starter going almost as soon as I arrived, " -"and it's making passable bread already. I cooked some up yesterday " -"actually, I could probably trade a loaf of fresh bread for, say, about eight" -" cups of flour." +"Not since I last saw you, sorry. Come by in another day or two and I'll try" +" to keep a loaf set aside for you, but they disappear fast." msgstr "" #: lang/json/talk_topic_from_json.py @@ -207241,8 +201404,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Not since I last saw you, sorry. Come by in another day or two and I'll try" -" to keep a loaf set aside for you, but they disappear fast." +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight" +" cups of flour." msgstr "" #: lang/json/talk_topic_from_json.py @@ -207264,14 +201429,6 @@ msgid "" "that's a lot more than most." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " -"not too bad honestly. Everyone here seems to like it." -msgstr "" -"Świetnie, oto bochenek z mojego lokalnego, mało dojrzałego zakwasu. Szczerze" -" mówiąc, nie jest taki zły. Wydaje się, że wszystkim tu się podoba." - #: lang/json/talk_topic_from_json.py msgid "" "Great, here's a loaf of the best damn sourdough bread in the world. I used " @@ -207295,6 +201452,14 @@ msgstr "" "Mam nadzieję, że podoba ci się tak samo jak mi, to teraz najlepszy cholerny " "chleb na świecie." +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "" +"Świetnie, oto bochenek z mojego lokalnego, mało dojrzałego zakwasu. Szczerze" +" mówiąc, nie jest taki zły. Wydaje się, że wszystkim tu się podoba." + #: lang/json/talk_topic_from_json.py msgid "" "You seem pretty unhappy about the quality of your bread. Is there something" @@ -207324,6 +201489,10 @@ msgid "" "gonna murder someone soon, mark my words." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Huh. I've made a few friends here, but not so much as I'd stick around here" @@ -207331,10 +201500,6 @@ msgid "" "me. It does sound nice, if they're looking for more workers." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Have you heard anything back from the ranch about jobs yet?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " @@ -207372,13 +201537,13 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well now, good to see another new face! Welcome to the center, friend, I'm " -"Draco." +msgid "Always good to see you, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Always good to see you, friend." +msgid "" +"Well now, good to see another new face! Welcome to the center, friend, I'm " +"Draco." msgstr "" #: lang/json/talk_topic_from_json.py @@ -207620,12 +201785,12 @@ msgid "Well then, I'll leave you here where it's safe." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Man, just imagine what I could do with a new guitar." +msgid "" +"My savior! My patron of the arts! You're always welcome here, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"My savior! My patron of the arts! You're always welcome here, friend." +msgid "Man, just imagine what I could do with a new guitar." msgstr "" #: lang/json/talk_topic_from_json.py @@ -207735,14 +201900,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " -"up some Merch bucks for, say, five joints or joints-worth of the good stuff." +"Yeah, no worries, though. I'm good at the moment. Ask me again later and " +"maybe I'll have scrounged up some more cash for you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, no worries, though. I'm good at the moment. Ask me again later and " -"maybe I'll have scrounged up some more cash for you." +"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " +"up some Merch bucks for, say, five joints or joints-worth of the good stuff." msgstr "" #: lang/json/talk_topic_from_json.py @@ -207793,12 +201958,6 @@ msgstr "" msgid "Is there anything I can do to help you out?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " -"meet new people but there are no beds to share." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "Witaj ponownie." @@ -207811,6 +201970,12 @@ msgstr "" msgid "Oh, hi." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you too, Fatima. I'm just passing through." msgstr "" @@ -207872,10 +202037,6 @@ msgid "" " I'm pretty nervous about going outside." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." -msgstr "Hej. Witaj. Jestem Garry, Garry Villeneuve." - #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "Cóż, witaj." @@ -207884,6 +202045,10 @@ msgstr "Cóż, witaj." msgid "Good to see you again." msgstr "Dobrze Cię znowu widzieć." +#: lang/json/talk_topic_from_json.py +msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." +msgstr "Hej. Witaj. Jestem Garry, Garry Villeneuve." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Garry." msgstr "Miło mi cię poznać, Garry." @@ -207946,12 +202111,6 @@ msgid "" "look like we'll be here for the long term. If we live that long." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " -"call me Gunny." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hi." msgstr "Cześć." @@ -207960,6 +202119,12 @@ msgstr "Cześć." msgid "Hey again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " +"call me Gunny." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Gunny." msgstr "" @@ -208006,15 +202171,15 @@ msgid "" " I think my mom's on the fence." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you again." +msgstr "Miło znów cię widzieć." + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." msgstr "Cześć. Nie widziałam cię tu wcześniej. Jestem Jenny. Jenny Forcette." -#: lang/json/talk_topic_from_json.py -msgid "Nice to see you again." -msgstr "Miło znów cię widzieć." - #: lang/json/talk_topic_from_json.py msgid "Nice meeting you. What are you doing on that computer?" msgstr "Miło poznać. Co robisz na tym komputerze?" @@ -208204,19 +202369,6 @@ msgstr "" "jedzenia, i towarzystwa sobie nie dobieraliśmy. Nie wiem jak długo to się " "utrzyma zanim komuś odbije." -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a bunch of us. We're starting to form a bit of a community. " -"Fatima and I work together a fair bit, and I've been hanging out with Dana, " -"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " -"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " -"What did you want to know?" -msgstr "" -"Cóż, cała nasza hałastra. Zaczynamy formować drobną społeczność. Fatima i " -"jak pracujemy od czasu do czasu razem, i przebywam często z Daną, Draco i " -"Aleeshą. Nie znam zbyt dobrze bandy Boryszenków, Singhów, Vanessy, Uyena ani" -" Rhyzy, ale rozmawiamy czasami. Co chciałbyś wiedzieć?" - #: lang/json/talk_topic_from_json.py msgid "" "For better or worse, we're a community now. Fatima and I work together a " @@ -208236,6 +202388,19 @@ msgstr "" "Uyen i Rhyzea ciągle marudzą o decyzjach przywództwa, jakby sami mieli coś " "do powiedzenia. Co chciałbyś wiedzieć?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" +"Cóż, cała nasza hałastra. Zaczynamy formować drobną społeczność. Fatima i " +"jak pracujemy od czasu do czasu razem, i przebywam często z Daną, Draco i " +"Aleeshą. Nie znam zbyt dobrze bandy Boryszenków, Singhów, Vanessy, Uyena ani" +" Rhyzy, ale rozmawiamy czasami. Co chciałbyś wiedzieć?" + #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" msgstr "Co mi możesz powiedzieć o Wolnych Kupcach?" @@ -208305,19 +202470,6 @@ msgid "" "hope that there's a future to be had." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Boris and Garry are married, I guess. They kinda keep to themselves, they " -"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" -" I'm not totally sure. He seems nice enough, but he's a man of few words. " -"I can't get a good bead on them. I've learned not to pry too much though." -msgstr "" -"Borys i Garry są małżeństwem jak sądzę. Zwykle trzymają się razem, " -"powiedziałabym że odnoszą się do wszystkich z rezerwą. Stan jest chyba " -"bratem Borysa, ale nie jestem tego pewna. Wydaje się być miły, ale nie jest " -"zbyt gadatliwy. Nie potrafię wyrobić sobie o nich opinii. Nauczyłam się nie " -"wsadzać nosa nie w swoje sprawy." - #: lang/json/talk_topic_from_json.py msgid "" "I didn't get to know Boris, Garry, and Stan so well for the first while. " @@ -208336,15 +202488,16 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I really can't get a bead on them. They never really talk to anyone outside" -" of their little family group, they just sit in their own spot and speak " -"Punjabi. They always seem nice, and they do their share, they just don't " -"have any social connection." +"Boris and Garry are married, I guess. They kinda keep to themselves, they " +"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" +" I'm not totally sure. He seems nice enough, but he's a man of few words. " +"I can't get a good bead on them. I've learned not to pry too much though." msgstr "" -"Nie potrafię wyrobić sobie o nich opinii. Nigdy nie rozmawiają z nikim spoza" -" swojej grupy rodzinnej, siedzą sobie na swoim miejscu i rozmawiają w " -"Punjabi. Zawsze wydają się mili, i odpracowują swoją działkę, ale nie nie " -"nawiązują żadnych więzi." +"Borys i Garry są małżeństwem jak sądzę. Zwykle trzymają się razem, " +"powiedziałabym że odnoszą się do wszystkich z rezerwą. Stan jest chyba " +"bratem Borysa, ale nie jestem tego pewna. Wydaje się być miły, ale nie jest " +"zbyt gadatliwy. Nie potrafię wyrobić sobie o nich opinii. Nauczyłam się nie " +"wsadzać nosa nie w swoje sprawy." #: lang/json/talk_topic_from_json.py msgid "" @@ -208357,15 +202510,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " -"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " -"both seem to want to run the show here, but I try to stay out of those " -"politics and just focus on building stuff. I don't see much good coming of " -"it. Alonso is fine, he's clearly interested in me, and also in every other " -"single woman here. Not my thing, in a group this small. John is a walking " -"stereotype, I imagine there must be more depth to him, but I haven't seen it" -" yet." +"I really can't get a bead on them. They never really talk to anyone outside" +" of their little family group, they just sit in their own spot and speak " +"Punjabi. They always seem nice, and they do their share, they just don't " +"have any social connection." msgstr "" +"Nie potrafię wyrobić sobie o nich opinii. Nigdy nie rozmawiają z nikim spoza" +" swojej grupy rodzinnej, siedzą sobie na swoim miejscu i rozmawiają w " +"Punjabi. Zawsze wydają się mili, i odpracowują swoją działkę, ale nie nie " +"nawiązują żadnych więzi." #: lang/json/talk_topic_from_json.py msgid "" @@ -208381,13 +202534,25 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " +"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " +"both seem to want to run the show here, but I try to stay out of those " +"politics and just focus on building stuff. I don't see much good coming of " +"it. Alonso is fine, he's clearly interested in me, and also in every other " +"single woman here. Not my thing, in a group this small. John is a walking " +"stereotype, I imagine there must be more depth to him, but I haven't seen it" +" yet." msgstr "" #: lang/json/talk_topic_from_json.py msgid "Howdy, pardner." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, John." msgstr "" @@ -208442,11 +202607,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello ma'am. I am Mandeep Singh." +msgid "Hello sir. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello sir. I am Mandeep Singh." +msgid "Hello ma'am. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py @@ -208489,15 +202654,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." +msgid "Hi there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there." +msgid "Oh, hello there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, hello there." +msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." msgstr "" #: lang/json/talk_topic_from_json.py @@ -208702,12 +202867,12 @@ msgid "What brings you around here? We don't see a lot of new faces." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgid "Need to talk?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Need to talk?" +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." msgstr "" #: lang/json/talk_topic_from_json.py @@ -208798,17 +202963,17 @@ msgid "Do you want to talk about your story?" msgstr "Chcesz porozmawiać o swojej historii?" #: lang/json/talk_topic_from_json.py -msgid "" -"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " -"Stan." +msgid "Hm? Oh, hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hm? Oh, hi." +msgid "...Hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "...Hi." +msgid "" +"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " +"Stan." msgstr "" #: lang/json/talk_topic_from_json.py @@ -208926,6 +203091,10 @@ msgstr "" msgid "Hmm, can we change this shave a little please?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Oh, you're back." +msgstr "Oh, jesteś z powrotem. " + #: lang/json/talk_topic_from_json.py msgid "" "Oh, great. Another new mouth to feed? Just what we need. Well, I'm " @@ -208934,10 +203103,6 @@ msgstr "" "O, wspaniale. Kolejna nowa gęba do karmienia? Wszystko czego potrzebujemy. " "Cóż, ja jestem Vanessa." -#: lang/json/talk_topic_from_json.py -msgid "Oh, you're back." -msgstr "Oh, jesteś z powrotem. " - #: lang/json/talk_topic_from_json.py msgid "I'm not a new mouth to feed, but nice to meet you too." msgstr "Nie jestem nową gębą do karmienia, ale ciebie też miło poznać." @@ -208979,14 +203144,6 @@ msgstr "" msgid "Could you give me a haircut?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"You want the sarcastic version, or the really sarcastic version? I'm stuck " -"in a dank shitty brick building with two dozen strangers, the world's dead, " -"and there's not enough food to go around. Why don't you fuckin' figure it " -"out?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I'm stuck in a dank shitty brick building with two dozen strangers, " @@ -208995,6 +203152,14 @@ msgid "" "to keeping my belly full. People like getting a good haircut." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I can see you need one, but last time I used these shears it was to stab a " @@ -209034,53 +203199,55 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm here to deliver some food supplies." -msgstr "" +msgstr "Miałem dostarczyć tu trochę zapasów." #: lang/json/talk_topic_from_json.py msgid "Are you able to buy some canning supplies?" -msgstr "" +msgstr "Jesteś w stanie kupić trochę rzeczy do puszkowania?" #: lang/json/talk_topic_from_json.py msgid "I was told you had work for me?" -msgstr "" +msgstr "Podobno masz dla mnie jakieś zajęcie." #: lang/json/talk_topic_from_json.py msgid "What's the deal with this written-on paper money you guys use?" msgstr "" +"O co wam chodzi z tymi zapisanymi kawałkami papieru których używacie do " +"handlu?" #: lang/json/talk_topic_from_json.py msgid "The refugees stuck up here seem a bit disgruntled." -msgstr "" +msgstr "Uchodźcy którzy tu utknęli wyglądają na nieco niezadowolonych" #: lang/json/talk_topic_from_json.py msgid "Do you know about those beggars in the lobby?" -msgstr "" +msgstr "Wiesz coś o tych żebrakach z lobby?" #: lang/json/talk_topic_from_json.py msgid "What's the deal with the closed-off areas of the building?" -msgstr "" +msgstr "O co chodzi z tymi zamkniętymi pomieszczeniami?" #: lang/json/talk_topic_from_json.py msgid "" "What are you going to do with that back bay area now that I've cleaned it " "out for you?" -msgstr "" +msgstr "Co zrobicie z z tym kawałkiem przestrzeni który dla was oczyściłem?" #: lang/json/talk_topic_from_json.py msgid "Tell me more about that ranch of yours." -msgstr "" +msgstr "Opowiedz mi więcej o swoim ranczu." #: lang/json/talk_topic_from_json.py msgid "I'd better get going. Bye!" -msgstr "" +msgstr "Pora na mnie. Do zobaczenia!" #: lang/json/talk_topic_from_json.py msgid "What can I help you with?" -msgstr "" +msgstr "W czym ci mogę pomóc?" #: lang/json/talk_topic_from_json.py msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." -msgstr "" +msgstr "Tak, mogę kupić teraz słoiki o pojemności 500mL albo 3L." #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -209137,11 +203304,13 @@ msgstr "Czy chcesz kupić coś jeszcze?" #: lang/json/talk_topic_from_json.py msgid "Very well… let's talk about something else." -msgstr "" +msgstr "No dobrze, porozmawiajmy o czymś innym." #: lang/json/talk_topic_from_json.py msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." msgstr "" +"Wybacz, ale nie jestem tutaj żeby zdobyć nowych przyjaciół. Mam coś do " +"zrobienia." #: lang/json/talk_topic_from_json.py msgid "" @@ -209173,15 +203342,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Even once we got things sorted out, there weren't enough beds for everyone, " -"and definitely not enough supplies. These are harsh times. We're doing what" -" we can for those folks… at least they've got shelter." +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do. I don't know what you did to convince them to move out, but our " -"supply chain and I both thank you. I hope it wasn't too unseemly." +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks… at least they've got shelter." msgstr "" #: lang/json/talk_topic_from_json.py @@ -209211,7 +203380,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks, can I ask you something else?" -msgstr "" +msgstr "Dzięki, mogę spytać o coś innego?" #: lang/json/talk_topic_from_json.py msgid "" @@ -209480,7 +203649,7 @@ msgstr "Widziałeś kogoś kto mógłby mieć coś do ukrycia?" #: lang/json/talk_topic_from_json.py msgid "Bye…" -msgstr "" +msgstr "Do zobaczenia..." #: lang/json/talk_topic_from_json.py msgid "" @@ -209496,7 +203665,7 @@ msgstr "Trzymaj głowę nisko i zejdź mi z drogi." #: lang/json/talk_topic_from_json.py msgid "OK…" -msgstr "" +msgstr "Ok..." #: lang/json/talk_topic_from_json.py msgid "Like what?" @@ -209504,7 +203673,7 @@ msgstr "Jak co na przykład?" #: lang/json/talk_topic_from_json.py msgid "I'm not sure…" -msgstr "" +msgstr "Nie jestem pewien..." #: lang/json/talk_topic_from_json.py msgid "Like they could be working for someone else?" @@ -209524,7 +203693,7 @@ msgstr "Masz coś do ukrycia?" #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean to offend you…" -msgstr "" +msgstr "Przepraszam, nie chciałem cię obrazić..." #: lang/json/talk_topic_from_json.py msgid "" @@ -209570,17 +203739,17 @@ msgstr "Zachowuj się, bo inaczej przyprowadzę cię do porządku." msgid "Just on watch, move along." msgstr "Tylko stróżuję, ruszaj dalej." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "Psze pani, naprawdę nie powinna pani podróżować tam na zewnątrz." - #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" msgstr "Ostro tam na zewnątrz, nie?" +#: lang/json/talk_topic_from_json.py +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "Psze pani, naprawdę nie powinna pani podróżować tam na zewnątrz." + #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center…" -msgstr "" +msgstr "Podobno to miejsce jest obozem dla uchodźców..." #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join your group?" @@ -209588,11 +203757,11 @@ msgstr "Jest jakiś sposób abym mógł dołączyć do waszej grupy?" #: lang/json/talk_topic_from_json.py msgid "What's with these beggars?" -msgstr "" +msgstr "O co chodzi z tymi żebrakami?" #: lang/json/talk_topic_from_json.py msgid "I took care of your beggar problem." -msgstr "" +msgstr "Rozwiązałem twój problem z żebrakami." #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" @@ -209600,20 +203769,20 @@ msgstr "Co mogę zrobić dla centrum?" #: lang/json/talk_topic_from_json.py msgid "I figured you might be looking for some help…" -msgstr "" +msgstr "Wydawało mi się że możesz szukać pomocy..." #: lang/json/talk_topic_from_json.py msgid "Well, I'd better be going. Bye." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Witaj..." +msgstr "Pora na mnie. Do zobaczenia!" #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." msgstr "Witaj marszalu..." +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Witaj..." + #: lang/json/talk_topic_from_json.py msgid "" "Before you say anything else, we're full. We don't have the space, nor the " @@ -209860,14 +204029,14 @@ msgid "" "attacked by zombie hordes, as you might guess." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "Obywatelu..." - #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Marszalu..." +#: lang/json/talk_topic_from_json.py +msgid "Citizen..." +msgstr "Obywatelu..." + #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" msgstr "Czy mogę pohandlować i kupić zapasy?" @@ -209935,14 +204104,14 @@ msgstr "" "Nie możemy. Nie mamy nic co moglibyśmy poświęcić na sprzedaż, a ja nie mam " "budżetu by kupować od ciebie. Zgaduję że na darowiznę się nie łapię?" -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Heh, wyglądasz na kogoś ważnego." - #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "Nosisz zaprawdę błyszczącą odznakę!" +#: lang/json/talk_topic_from_json.py +msgid "Heh, you look important." +msgstr "Heh, wyglądasz na kogoś ważnego." + #: lang/json/talk_topic_from_json.py msgid "I'm actually new." msgstr "Jestem tu tak naprawdę nowy." @@ -210016,10 +204185,6 @@ msgid "" "it." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate… mutations. This was an accident." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Same way you got yours, I bet. Keep quiet about it, some people here look " @@ -210028,6 +204193,10 @@ msgstr "" "Założę się, że tak samo jak ty zdobyłeś swoją. Nie rozgłaszaj tego, " "niektórzy tutaj nie lubią tu takich jak my." +#: lang/json/talk_topic_from_json.py +msgid "Ssh. Some people in here hate… mutations. This was an accident." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" msgstr "Wybacz że pytam" @@ -210054,22 +204223,22 @@ msgid "" "trade?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "Pieprz się!" - #: lang/json/talk_topic_from_json.py msgid "As if you're one to talk. Screw You." msgstr "Tak jakbyś miał coś do gadania. Pieprz się." #: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "Huh, tak myślałem że wyczuwam kogoś nowego. W czym pomóc?" +msgid "Screw You!" +msgstr "Pieprz się!" #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest… please don't arrest me." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Huh, thought I smelled someone new. Can I help you?" +msgstr "Huh, tak myślałem że wyczuwam kogoś nowego. W czym pomóc?" + #: lang/json/talk_topic_from_json.py msgid "You… smelled me?" msgstr "" @@ -210382,16 +204551,6 @@ msgstr "Wygląda na to że jesteś szefem." msgid "Glad to have you aboard." msgstr "Cieszę się że mam cię na pokładzie." -#: lang/json/talk_topic_from_json.py -msgid "" -"Hold there. I don't care how you got access to this location, but you are " -"coming no further. Go away." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "We haven't changed our mind. Go away." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" msgstr "" @@ -210472,6 +204631,16 @@ msgstr "" msgid "If/you speak to/understand… you/me. Yes?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "We haven't changed our mind. Go away." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hold there. I don't care how you got access to this location, but you are " +"coming no further. Go away." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Wait! What??" msgstr "" @@ -210741,14 +204910,6 @@ msgstr "" msgid "Keep it civil, merc." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Here to trade, I hope?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Safe travels, scavenger." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Still plenty of outlaws in the roads, perhaps you should tend to your job, " @@ -210764,10 +204925,11 @@ msgid "Oh, a U.S. marshal, how quaint." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"We have been supplying this lab here with food from a few hunting and " -"farming communities nearby. The roads are though and dangerous, but it " -"makes good money, and beats scavenging the cities for scraps." +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." msgstr "" #: lang/json/talk_topic_from_json.py @@ -210776,6 +204938,13 @@ msgid "" "fair deal?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Keep safe, then." msgstr "" @@ -211013,16 +205182,16 @@ msgid "I'll talk with them then…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "Dobry, psze pani, w czym mogę pomóc?" +msgid "Can I help you, marshal?" +msgstr "Mogę ci pomóc marszalu?" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" msgstr "Dobry, sir, w czym mogę pomóc?" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "Mogę ci pomóc marszalu?" +msgid "Morning ma'am, how can I help you?" +msgstr "Dobry, psze pani, w czym mogę pomóc?" #: lang/json/talk_topic_from_json.py msgid "" @@ -211151,14 +205320,14 @@ msgstr "Jakie rodzaje prac macie tu dla mnie?" msgid "Not now." msgstr "Nie teraz." -#: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." -msgstr "Mogę zerknąć na ciebie lub twoich towarzyszy jeżeli jesteście ranni." - #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." msgstr "Przyjdź później, najpierw muszę się zająć paroma rzeczami." +#: lang/json/talk_topic_from_json.py +msgid "I can take a look at you or your companions if you are injured." +msgstr "Mogę zerknąć na ciebie lub twoich towarzyszy jeżeli jesteście ranni." + #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." msgstr "[$200, 30m] Musisz mnie połatać." @@ -211442,15 +205611,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "New test subjects! I'm so glad you showed up!" +msgid "What did you bring me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What did you bring me?" +msgid "Do you smell something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you smell something?" +msgid "New test subjects! I'm so glad you showed up!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -211526,6 +205695,205 @@ msgstr "" msgid "This is not reassuring." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more" +" fearsome enforcer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided" +" to use tactical nukes and buy time for the retreat." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that" +" were happening in the city, they were beneath me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security" +" notices piled up about routes through the city to avoid. Finally, one day " +"I came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only" +" chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"But they built me with the ability to survive a world beyond imagining." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked" +" for the government or a corporation." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come" +" back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons" +" afraid of mutants." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "Hejka, zbieraczu." @@ -211625,11 +205993,11 @@ msgid "I must purge this place before I can move on." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Huh? *mumble mumble* … Who are you?" +msgid "Oh, you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, you again." +msgid "Huh? *mumble mumble* … Who are you?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -211641,11 +206009,11 @@ msgid "And leave my tower and all my research? I think not." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you seek power as well?" +msgid "Ah, hello again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, hello again." +msgid "Do you seek power as well?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -213239,7 +207607,7 @@ msgid " hack at %s with a vicious strike" msgstr " rąbie %s bezwzględnym uderzeniem" #: lang/json/technique_from_json.py -msgid "Deathblow" +msgid "Mordhau" msgstr "" #: lang/json/technique_from_json.py @@ -213911,65 +208279,65 @@ msgid " smashes %s with a pressurized slam" msgstr "" #: lang/json/technique_from_json.py -msgid "Shimmer Flurry" +msgid "Tipped Intent" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a blindingly fast slash at %s" +msgid "You quickly jab your weapon at %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " slashes at %s" +msgid " quickly jabs their weapon at %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Tipped Intent" +msgid "Shimmer Flurry" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You swiftly jab your weapon at %s" +msgid "" +"You release a blindingly fast low slash at %s and topple them off balance" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " swiftly jabs their weapon at %s" +msgid " slashes at %s and shoves them down" msgstr "" #: lang/json/technique_from_json.py -msgid "Decisive Blow" +msgid "Mirage Slash" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a debilitating swipe at %s" +msgid "" +"You hold your blade taut, and then launch a piercing slash on %s's top half" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " releases a debilitating swipe at %s" +msgid " lands a piercing blow on %s's face" msgstr "" #: lang/json/technique_from_json.py -msgid "End Slash" +msgid "The Point" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "" -"You envision the tension of a fully drawn bow and then launch a piercing " -"blow on %s's top half" +msgid "You drive your weapon down into %s's vulnerable center mass" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " lands a piercing blow on %s's face" +msgid " lands a deadly blow on %s's unguarded center mass" msgstr "" #: lang/json/technique_from_json.py -msgid "Harsh Reprimand" +msgid "Reprimand" msgstr "" #: lang/json/technique_from_json.py @@ -214039,17 +208407,17 @@ msgid " swiftly impales their fingers into %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Joint Pain" +msgid "Shifting Feint" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You explosively jab your weapon at %s joints" +msgid "You fake a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " explosively jabs at %s" +msgid " fakes a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py @@ -214073,8 +208441,8 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "" -"You envision a gathering tempest in and then release it's energy on %s's top" -" half" +"You envision a gathering tempest and then release it's energy on %s's top " +"half" msgstr "" #: lang/json/technique_from_json.py @@ -214126,8 +208494,8 @@ msgstr "" #. ~ Description for BERSERK #: lang/json/technique_from_json.py msgid "" -"50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " -"reduces action cost and adds overall damage (S)" +"50% AP cost, 77% DMG, Down (2), STR (SS) greatly reduces AP cost and adds " +"(S) DMG" msgstr "" #: lang/json/technique_from_json.py @@ -214147,8 +208515,8 @@ msgstr "" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py msgid "" -"15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," -" and adds a (A) damage bonus, min 4 melee" +"15% AP cost, 35% DMG, wide arc, STR (SS) reduces AP cost, and adds (A) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -214168,8 +208536,8 @@ msgstr "" #. ~ Description for BISECTION #: lang/json/technique_from_json.py msgid "" -"Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " -"reduces action cost and increases overall (B) damage, min 2 melee" +"Crit!, 35% AP cost, 115% DMG, STR (SS) and DEX (SS) reduces AP cost and PER " +"(B) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -214184,9 +208552,7 @@ msgstr " rąbie %s" #. ~ Description for HOOK #: lang/json/technique_from_json.py -msgid "" -"85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " -"reduces action cost" +msgid "85% AP, 88% DMG, Down (2), STR (C) reduces AP cost" msgstr "" #: lang/json/technique_from_json.py @@ -214201,8 +208567,8 @@ msgstr "" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py msgid "" -"75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " -"and adds a (C) damage bonus, min 4 melee" +"75% AP, 60% DMG, WIDE AOE, STR (S) reduces AP cost, and adds a (C) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -214217,8 +208583,8 @@ msgstr "" #. ~ Description for CHOP #: lang/json/technique_from_json.py msgid "" -"Crit only, 118% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E)" -" reduces action cost and increases overall (B) damage, min 2 melee" +"CRIT!, 118% AP, 125% Cut/Stab, DEX (D) and PER (E) reduces AP cost and adds " +"(B) DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -214233,8 +208599,8 @@ msgstr "" #. ~ Description for SMASH #: lang/json/technique_from_json.py msgid "" -"Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " -"(D) reduces action cost and increases overall (C) damage, min 2 melee" +"CRIT!, 110% AP, 120% Bash, DEX (C) and STR (D) reduces AP cost and adds (C) " +"Arpen, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -214254,8 +208620,7 @@ msgstr "" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py msgid "" -"Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" -" reduces action cost, min melee 1" +"Crit!, 120% AP, 125% damage, Stun (1), STR (A) reduces AP cost, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -214275,8 +208640,8 @@ msgstr "" #. ~ Description for SHOVE #: lang/json/technique_from_json.py msgid "" -"65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " -"(D) and DEX (E) reduce action cost" +"65% AP, REDUCED DMG, knockback (2), stun (1), STR (D) and DEX (E) reduce AP " +"cost" msgstr "" #: lang/json/technique_from_json.py @@ -214296,8 +208661,8 @@ msgstr "" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py msgid "" -"75% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " -"(B) and DEX (C) reduce action cost, min melee 1" +"75% AP, 110% DMG, knockback (3), STR (B) and DEX (C) reduce AP cost, melee " +"(1)" msgstr "" #: lang/json/technique_from_json.py @@ -214311,7 +208676,7 @@ msgstr "" #. ~ Description for TEAR #: lang/json/technique_from_json.py -msgid "Crit only, 110% Cut, 115% Stab, min melee 2" +msgid "CRIT!, 115% Cut/Stab, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -214330,8 +208695,7 @@ msgstr "" #. ~ Description for THRUST #: lang/json/technique_from_json.py -msgid "" -"110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" +msgid "110% Stab DMG, STR (E) and PER (D) adds DMG, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -214351,8 +208715,7 @@ msgstr "" #. ~ Description for LUNGE #: lang/json/technique_from_json.py msgid "" -"Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " -"provides bonus damage, min 2 melee" +"CRIT!, 115% Stab DMG, Strength (D) and Perception (D) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -214372,8 +208735,7 @@ msgstr "" #. ~ Description for PROD #: lang/json/technique_from_json.py msgid "" -"66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " -"DEX (C) reduces action cost, min 3 melee" +"66% AP, 70% Stab DMG, PER (C) adds Arpen, DEX (B) reduces AP cost, melee (3)" msgstr "" #: lang/json/technique_from_json.py @@ -214392,19 +208754,120 @@ msgstr "" #. ~ Description for PROBE #: lang/json/technique_from_json.py +msgid "80% AP, PER (C) adds DMG and Arpen (E), melee (3)" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You probe at %s's openings with your weapon" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " probes their weapon at %s " +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format msgid "" -"80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" -" also provides armor pierce (E), min 3 melee" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You probe %s's openings" +msgid "You unleash a spin attack against %s and those nearby" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " probe %s " +msgid " unleashes a spin attack against %s and those nearby" msgstr "" #: lang/json/technique_from_json.py @@ -217435,19 +211898,6 @@ msgstr "" "Hydrauliczna zgniatarka, która przerabia rzeczy zrobione z różnych metali, i" " wytłacza z nich podstawowe formy, gotowe do dalszej obróbki." -#: lang/json/terrain_from_json.py -msgid "gasoline pump" -msgstr "dystrybutor benzyny" - -#. ~ Description for gasoline pump -#: lang/json/terrain_from_json.py -msgid "" -"Precious GASOLINE. The former world bowed to their petroleum god as it led " -"them to their ruin. There's plenty left over to fuel your inner road " -"warrior. If this gas dispenser doesn't give up the goods for free, you may " -"have to pay at a nearby terminal." -msgstr "" - #: lang/json/terrain_from_json.py msgid "fuel tank" msgstr "" @@ -217466,6 +211916,19 @@ msgstr "" msgid "A broken tank which was filled with gasoline." msgstr "" +#: lang/json/terrain_from_json.py +msgid "gasoline pump" +msgstr "dystrybutor benzyny" + +#. ~ Description for gasoline pump +#: lang/json/terrain_from_json.py +msgid "" +"Precious GASOLINE. The former world bowed to their petroleum god as it led " +"them to their ruin. There's plenty left over to fuel your inner road " +"warrior. If this gas dispenser doesn't give up the goods for free, you may " +"have to pay at a nearby terminal." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "rozbity dystrybutor benzyny" @@ -217477,6 +211940,16 @@ msgid "" "the liquid gold." msgstr "" +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "" + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "pompa diesla" @@ -220277,17 +214750,6 @@ msgid "" "much good here though. Perhaps it could be salvaged for other purposes." msgstr "" -#: lang/json/terrain_from_json.py -msgid "LEGACY hydroponics unit" -msgstr "" - -#. ~ Description for LEGACY hydroponics unit -#: lang/json/terrain_from_json.py -msgid "" -"This is a deprecated hydroponics unit. Deconstruct it to receive your " -"materials back." -msgstr "" - #: lang/json/terrain_from_json.py msgid "burnt tree" msgstr "" @@ -220385,18 +214847,6 @@ msgstr "zwolnienie bolców bezpieczeństwa" msgid "bridge control" msgstr "kontrola mostu" -#: lang/json/terrain_from_json.py -msgid "mass of blob feed" -msgstr "masa pokarmu dla gluta" - -#: lang/json/terrain_from_json.py -msgid "squish!" -msgstr "squish!" - -#: lang/json/terrain_from_json.py -msgid "mound of blob feed" -msgstr "kopiec pokarmu dla gluta" - #: lang/json/terrain_from_json.py msgid "singing sand" msgstr "" @@ -220571,6 +215021,10 @@ msgstr "lewarujący" msgid "self jacking" msgstr "samo-lewarujący" +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "chiseling" msgstr "dłutujący" @@ -220796,14 +215250,6 @@ msgstr "deszczołap" msgid "magic door" msgstr "" -#: lang/json/trap_from_json.py -msgid "light snare trap" -msgstr "lekka pułapka linowa" - -#: lang/json/trap_from_json.py -msgid "heavy snare trap" -msgstr "ciężka pułapka linowa" - #: lang/json/vehicle_from_json.py msgid "work light" msgstr "światło robocze" @@ -221336,62 +215782,10 @@ msgstr "Atomowy Samochód" msgid "Flaming Atomic Car" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Roadheader" -msgstr "" - #: lang/json/vehicle_from_json.py msgid "Floating disk" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Robotic Taxi" -msgstr "Zrobotyzowane Taxi" - -#: lang/json/vehicle_from_json.py -msgid "Armored Robot Carrier" -msgstr "Opancerzony Transporter Robotów" - -#: lang/json/vehicle_from_json.py -msgid "Atomic Mini-Tank" -msgstr "Atomowy Mini-Czołg" - -#: lang/json/vehicle_from_json.py -msgid "Light Tank" -msgstr "Lekki Czołg" - -#: lang/json/vehicle_from_json.py -msgid "Main Battle Tank" -msgstr "Czołg Bojowy" - -#: lang/json/vehicle_from_json.py -msgid "Self-Propelled Howitzer" -msgstr "Samobieżne Działo Artyleryjskie" - -#: lang/json/vehicle_from_json.py -msgid "Mobile Gun System" -msgstr "Mobilna Platforma Bojowa" - -#: lang/json/vehicle_from_json.py -msgid "Bandit Bulldozer" -msgstr "Bandycki Buldożer" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Planter Tractor" -msgstr "Ciężki Traktor Sadownik" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Plow Tractor" -msgstr "Ciężki Traktor Pług" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Reaper Tractor" -msgstr "Ciężki Kombajn" - -#: lang/json/vehicle_from_json.py -msgid "Infantry Fighting Vehicle" -msgstr "Wóz Bojowy Piechoty" - #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" msgstr "zamontowany blaster fuzyjny" @@ -221701,6 +216095,12 @@ msgstr "" msgid "A combustion engine. Burns fuel from a tank in the vehicle." msgstr "Silnik spalinowy. Spala paliwo ze zbiornika w pojeździe." +#: lang/json/vehicle_part_from_json.py +msgid "" +"A combustion engine for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " @@ -221942,7 +216342,6 @@ msgstr "" "do rzemiosła." #. ~ Description for {'str': 'floodlight'} -#. ~ Description for {'str': 'gel floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, circular light that illuminates the area outside the vehicle " @@ -221952,7 +216351,6 @@ msgstr "" "jest włączone." #. ~ Description for {'str': 'directed floodlight'} -#. ~ Description for {'str': 'gel directed floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, directed light that illuminates a half-circular area outside " @@ -221965,7 +216363,6 @@ msgid "headlight" msgstr "reflektor" #. ~ Description for {'str': 'headlight'} -#. ~ Description for {'str': 'gel headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a narrow cone outside the vehicle when " @@ -221991,7 +216388,6 @@ msgid "wide angle headlight" msgstr "szerokokątny reflektor samochodowy" #. ~ Description for {'str': 'wide angle headlight'} -#. ~ Description for {'str': 'gel wide angle headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a wide cone outside the vehicle when turned " @@ -222067,6 +216463,10 @@ msgstr "" "elektryczną pojazdu jeśli będzie wystawiony na słońce. Zachmurzenie spowolni" " proces. Niezwykle wrażliwy i nie może być wzmocniony szkłem." +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -222281,14 +216681,14 @@ msgstr "" msgid "mounted A7 laser rifle" msgstr "zamontowany karabin laserowy A7" -#: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted M249" msgstr "zamontowany M249" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M249S" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted gatling shotgun" msgstr "" @@ -222313,6 +216713,10 @@ msgstr "zamontowany M240" msgid "mounted M60" msgstr "zamontowany M60" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" msgstr "zamontowana wyrzutnia granatów Mark 19" @@ -223597,6 +218001,13 @@ msgstr "" msgid "A wooden wheel." msgstr "Drewniane koło." +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "koryto ładunkowe" @@ -223612,13 +218023,6 @@ msgstr "" "się pod nim. Mimo że pomieści sporo rzeczy, tandetne wykonanie, sprawia że " "jest kruche." -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "crude plating" msgstr "" @@ -223630,10 +218034,6 @@ msgid "" "protective as proper armor, but it'll do if there's nothing else available." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -223697,104 +218097,6 @@ msgid "" "size." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "folding extra light quarterpanel" -msgstr "składana ekstra lekka karoseria " - -#: lang/json/vehicle_part_from_json.py -msgid "foldable door" -msgstr "składane drzwi" - -#: lang/json/vehicle_part_from_json.py -msgid "superalloy coating" -msgstr "pokrycie z superstopu" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tactical shotgun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted heavy machinegun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted assault rifle" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted light machine gun" -msgstr "zamontowany lekki karabin maszynowy" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted automatic grenade launcher" -msgstr "" - -#. ~ Description for Balancer -#: lang/json/vehicle_part_from_json.py -msgid "A large and heavy metal drum for balancing a vehicle." -msgstr "" - -#. ~ Description for roadheader -#: lang/json/vehicle_part_from_json.py -msgid "" -"A large metal jagged metalhead, powered by the vehicle's engines. Use the " -"vehicle controls to turn it on or off. When turned on, it will stop the " -"vehicle unless it has a strong engine. When turned on, it will destroy " -"walls near it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "bulette plating" -msgstr "" - -#. ~ Description for orichalcum frame -#: lang/json/vehicle_part_from_json.py -msgid "" -"An expensive magical metal framework. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mana frame" -msgstr "" - -#. ~ Description for mana frame -#: lang/json/vehicle_part_from_json.py -msgid "A shape of pure mana that can float and carry items." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "robot_carrier" -msgstr "nośnik robotów" - -#. ~ Description for robot_carrier -#: lang/json/vehicle_part_from_json.py -msgid "" -"A cargo space for carrying robots. 'e'xamine it to capture a robot next to " -"you, or to release the robot currently contained. When selecting a robot to" -" capture, choose its tile relative to you, not the part." -msgstr "" -"Przestrzeń ładunkowa do przewozu robotów. Zbadaj 'e' by umieścić w niej " -"pobliskiego robota, lub wypuścić robota w niej przebywającego. Wybierając " -"robota do umieszczenia wybierz pole w relacji do siebie, nie do klatki." - -#: lang/json/vehicle_part_from_json.py -msgid "120mm tank gun (AL)" -msgstr "120mm armata czołgowa (Samoładujące)" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm RWS" -msgstr "120mm RWS" - -#: lang/json/vehicle_part_from_json.py -msgid "ATGM turret" -msgstr "wieżyczka ATGM" - -#: lang/json/vehicle_part_from_json.py -msgid "30mm chaingun" -msgstr "30mm działko obrotowe" - #: lang/json/vehicle_part_from_json.py msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" @@ -223803,74 +218105,10 @@ msgstr "" "Turbina parowa, zamkniętego obiegu, zewnętrznego spalania. Spala węgiel z " "komórki w pojeździe by produkować parę." -#: lang/json/vehicle_part_from_json.py -msgid "mounted slingshot cannon" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted lacerator" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary cannon" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted pulse laser" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted turbolaser" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted ripper" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted scorpion ballista" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted speargun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tesla cannon" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "cargo shelving" msgstr "" -#. ~ Description for {'str': 'solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. Will recharge the vehicle's " -"electrical power when exposed to the sun." -msgstr "" -"Tuzin paneli słonecznych zestawionych na stelażu sięgającym kilka metrów " -"wzwyż. Utrzymuje kruche panele bezpiecznie z dala od potencjalnych zagrożeń " -"i zwiększa ich efektywność dzięki możliwości podążania za słońcem. " -"Wystawione na słońce będą odnawiać zasoby mocy elektrycznej pojazdu." - -#. ~ Description for {'str': 'upgraded solar array'} -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able track the sun. Will recharge the " -"vehicle's electrical power when exposed to the sun." -msgstr "" -"Tuzin ulepszonych paneli słonecznych zestawionych na stelażu sięgającym " -"kilka metrów wzwyż. Utrzymuje kruche panele bezpiecznie z dala od " -"potencjalnych zagrożeń i zwiększa ich efektywność dzięki możliwości " -"podążania za słońcem. Wystawione na słońce będą odnawiać zasoby mocy " -"elektrycznej pojazdu." - #: lang/json/vehicle_part_from_json.py msgid "wiring" msgstr "okablowanie" @@ -223884,37 +218122,6 @@ msgstr "" "Zwój grubego drutu miedzianego, użytecznego do przepinania napięcia z jednej" " części pojazdu do drugiej," -#: lang/json/vehicle_part_from_json.py -msgid "pocket dimension cargo" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "rubber treads" -msgstr "gumowe gąsienice" - -#. ~ Description for {'str': 'rubber treads'} -#. ~ Description for {'str': 'steel treads'} -#. ~ Description for {'str': 'tank treads'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A section of continuous track, the kind mounted on construction vehicles and" -" military fighting vehicles. It acts as a wheel, and the broad surface " -"provides plenty of traction to move heavy vehicles off-road, but at the cost" -" of speed due to the heavy weight." -msgstr "" -"Zestaw gąsienic z rodzaju montowanych na pojazdach budowlanych i wojskowych " -"pojazdach bojowych. Działają jak koła, a szeroka powierzchnia zapewnia " -"przyczepność niezbędną do poruszania się ciężkich pojazdów poza drogami, ale" -" kosztem szybkości z uwagi na wysoką wagę." - -#: lang/json/vehicle_part_from_json.py -msgid "steel treads" -msgstr "stalowe gąsienice" - -#: lang/json/vehicle_part_from_json.py -msgid "tank treads" -msgstr "czołgowe gąsienice" - #: lang/json/vehicle_part_from_json.py msgid "mounted TDI Vector" msgstr "" @@ -224135,10 +218342,6 @@ msgstr "" msgid "mounted RM88 battle rifle" msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary speargun" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted Ruger 10/22" msgstr "" @@ -224196,490 +218399,45 @@ msgid "mounted V29 laser" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel panel" -msgstr "żelowy panel" - -#: lang/json/vehicle_part_from_json.py -msgid "gray wall" -msgstr "szara ściana" - -#. ~ Description for {'str': 'gray wall'} -#. ~ Description for {'str': 'ooze barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a vehicle wall. Keeps zombies outside the " -"vehicle and prevents people from seeing through it." -msgstr "" -"Żywy glut uformowany w ścianę pojazdu. Zatrzymuje zombie na zewnątrz i " -"zapobiega spoglądaniu do środka." - -#: lang/json/vehicle_part_from_json.py -msgid "gel quarterpanel" -msgstr "żelowy ćwierćpanel" - -#. ~ Description for {'str': 'gel quarterpanel'} -#. ~ Description for {'str': 'gray barricade'} -#. ~ Description for {'str': 'ooze screen'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a half-height vehicle wall. Keeps zombies " -"outside the vehicle but allows people to see over it." -msgstr "" -"Żywy glut uformowany w połowiczna ścianę pojazdu. Zatrzymuje zombie na " -"zewnątrz ale pozwala zajrzeć ponad nią." - -#: lang/json/vehicle_part_from_json.py -msgid "gray barricade" -msgstr "szara barykada" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze screen" -msgstr "śluzowy ekran" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze barrier" -msgstr "śluzowa bariera" - -#: lang/json/vehicle_part_from_json.py -msgid "gel framework" -msgstr "rama żelowa" - -#. ~ Description for {'str': 'gel framework'} -#. ~ Description for {'str': 'gray frame'} -#. ~ Description for {'str': 'ooze chassis'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, shaped to provide attachment points for other blobs. Other " -"vehicle components and blobs can be mounted on it. If all the frames and " -"components of a vehicle are foldable or made from blobs, the vehicle can be " -"folding into a small package and picked up as a normal item." -msgstr "" -"Żyjący glut, ukształtowany by zapewnić punkty zaczepienia dla innych glutów." -" Inne komponenty samochodowe i gluty mogą być na niej montowane. Jeżeli " -"wszystkie ramy i części pojazdu są składane lub zrobione z glutów, pojazd " -"można złożyć w małą paczkę i podnieść jak zwykły przedmiot." - -#: lang/json/vehicle_part_from_json.py -msgid "gray frame" -msgstr "szara rama" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze chassis" -msgstr "śluzowa obudowa" - -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living, glowing blob. Having been filled with electrical power, can " -"release it as light of varying strength." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel aisle lights" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel directed floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel wide angle headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ice ram" -msgstr "lodołamacz" - -#. ~ Description for {'str': 'ice ram'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will absorb damage in a" -" vehicle collision and deliver additional damage to the other object in the " -"collision. It should be mounted on the edge of the vehicle, preferably the " -"front." -msgstr "" -"Żywy glut, egzystujący w super-schłodzonym stanie. Zaabsorbuje uszkodzenia " -"podczas kolizji i zada dodatkowe uszkodzenia obiektowi, z którym nastąpiła " -"kolizja. Powinien być montowany na brzegu pojazdu, najlepiej na froncie." - -#: lang/json/vehicle_part_from_json.py -msgid "Gelatinous tracks" -msgstr "" - -#. ~ Description for {'str': 'Gelatinous tracks'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A set of continuous, interlocking tracks made out of blob. They can be used" -" in place of wheels, and provide good traction and off-road performance." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "Oozing tracks" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "inert core" -msgstr "bezwładny rdzeń" - -#. ~ Description for {'str': 'inert core'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A sleeping amorphous core, acting as a rotating, universal mount for a " -"weapon. If your hands are empty, you can stand next to a tentacle and " -"'f'ire the weapon by selecting the tile." -msgstr "" -"Uśpiony amorficzny rdzeń, służący jako obrotowy, uniwersalny punkt montażowy" -" broni. Gdy masz puste dłonie możesz stać obok macki i strzelać 'f' z broni " -"wybierając pole." - -#: lang/json/vehicle_part_from_json.py -msgid "A living blob turned into a heavy vehicle weapon." -msgstr "Żywy glut zamieniony w ciężką broń pokładową." - -#. ~ Description for {'str': 'frost lancer'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state and transformed into a heavy" -" vehicle weapon." -msgstr "" -"Żywy glut, egzystujący w super-schłodzonym stanie i zmieniony w ciężką broń " -"pokładowa." - -#: lang/json/vehicle_part_from_json.py -msgid "ice pack" -msgstr "pakiet lodowy" - -#. ~ Description for {'str': 'ice pack'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will keep items stored " -"in it cold, reducing the speed at which food and drink rots." -msgstr "" -"Żywy glut, egzystujący w super-schłodzonym stanie. Będzie utrzymywał " -"pożywienie w chłodzie redukując tempo psucia się żywności." - -#: lang/json/vehicle_part_from_json.py -msgid "icy windshield" -msgstr "zamrożona szyba" - -#. ~ Description for {'str': 'icy windshield'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It is transparent, and can" -" be used to see out of the vehicle." -msgstr "" -"Żywy glut, egzystujący w super-schłodzonym stanie. Jest przezroczysty i może" -" być użyty do spoglądania na zewnątrz pojazdu." - -#: lang/json/vehicle_part_from_json.py -msgid "gelacier boat hull" +msgid "mounted tactical shotgun" msgstr "" -#. ~ Description for {'str': 'gelacier boat hull'} #: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It acts as a boat hull." +msgid "mounted heavy machinegun" msgstr "" -"Żywy glut, egzystujący w super-schłodzonym stanie. Służy za burtę łodzi." - -#: lang/json/vehicle_part_from_json.py -msgid "gel retriever" -msgstr "czerpak żelu" -#. ~ Description for {'str': 'gel retriever'} -#. ~ Description for {'str': 'gray retriever'} -#. ~ Description for {'str': 'ooze retriever'} #: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed to act as a scoop. Use the vehicle controls to turn " -"it on or off. When turned on, it will scoop up any loose items that it " -"travels over, putting them into the vehicle's storage." +msgid "mounted assault rifle" msgstr "" -"Żywy glut uformowany by działał jak zbierak. Użyj elementów sterujących " -"pojazdem by go włączyć lub wyłączyć. Włączony zbiera luźne przedmioty nad " -"którymi się znajdzie umieszczając je w przestrzeni bagażowej pojazdu." #: lang/json/vehicle_part_from_json.py -msgid "gel harness" -msgstr "uprząż żelowa" - -#. ~ Description for {'str': 'gel harness'} -#. ~ Description for {'str': 'gray harness'} -#. ~ Description for {'str': 'ooze harness'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, reformed as a belt and attached to a seat." -msgstr "Żywy glut, uformowany w pas bezpieczeństwa i przyłączony do fotela." - -#: lang/json/vehicle_part_from_json.py -msgid "capsule (10L)" -msgstr "kapsuła (10L)" +msgid "mounted light machine gun" +msgstr "zamontowany lekki karabin maszynowy" -#. ~ Description for {'str': 'capsule (10L)'} -#. ~ Description for {'str': 'cocoon (30L)'} -#. ~ Description for {'str': 'pod (20L)'} #: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a storage space for holding liquids. If filled " -"with the appropriate fuel for the vehicle's engine, the engine will " -"automatically draw fuel from the tank when the engine is on. If filled with" -" water, you can access the water from a water faucet, if one is installed in" -" the vehicle. You can also use a rubber hose to siphon liquids out of a " -"tank." +msgid "mounted automatic grenade launcher" msgstr "" -"Żywy glut uformowany w zbiornik do przechowywania płynów. Napełniony " -"właściwym paliwem do silnika pojazdu sprawi, że silnik automatycznie " -"pobierze niezbędne mu paliwo gdy będzie włączony. Po napełnienia wodą, " -"możesz jej używać instalując w pojeździe kran. Możesz też użyć gumowego węża" -" do syfonowania płynów ze zbiorników." - -#: lang/json/vehicle_part_from_json.py -msgid "gel tank (60L)" -msgstr "żelowy zbiornik (60L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel reinforcement" -msgstr "żelowe wzmocnienie" - -#. ~ Description for {'str': 'gel reinforcement'} -#. ~ Description for {'str': 'gray reinforcement'} -#. ~ Description for {'str': 'ooze reinforcement'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, acting as armor plate." -msgstr "Żywy glut, funkcjonujący jako opancerzenie." - -#: lang/json/vehicle_part_from_json.py -msgid "gel roof" -msgstr "żelowy dach" - -#. ~ Description for {'str': 'gel roof'} -#. ~ Description for {'str': 'gray roof'} -#. ~ Description for {'str': 'ooze roof'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, placed as roof." -msgstr "Żywy glut, funkcjonujący jako dach." - -#: lang/json/vehicle_part_from_json.py -msgid "gel seat" -msgstr "żelowe siedzenie" - -#. ~ Description for {'str': 'gel seat'} -#. ~ Description for {'str': 'gray seat'} -#. ~ Description for {'str': 'ooze seat'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a comfy couch. You can sit here." -msgstr "Żywy glut, ukształtowany na komfortowy fotel. Możesz tu usiąść." - -#: lang/json/vehicle_part_from_json.py -msgid "gel receptacle" -msgstr "żelowe naczynie" - -#. ~ Description for {'str': 'gel receptacle'} -#. ~ Description for {'str': 'gray receptacle'} -#. ~ Description for {'str': 'ooze receptacle'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, shaped into a cargo space." -msgstr "Żywy glut, ukształtowany na przestrzeń ładunkową." - -#: lang/json/vehicle_part_from_json.py -msgid "gel pouch (under)" -msgstr "żelowa sakwa (spodnia)" #: lang/json/vehicle_part_from_json.py -msgid "gel walkway" -msgstr "żelowe przejście" - -#. ~ Description for {'str': 'gel walkway'} -#. ~ Description for {'str': 'gray walkway'} -#. ~ Description for {'str': 'ooze walkway'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a walkway." -msgstr "Żywy glut, uformowany w przejście." - -#: lang/json/vehicle_part_from_json.py -msgid "gel hatch" -msgstr "żelowy właz" - -#. ~ Description for {'str': 'gel hatch'} -#. ~ Description for {'str': 'gray hatch'} -#. ~ Description for {'str': 'ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Has a transparent patch so you can see out" -" of it, even when closed." +msgid "bulette plating" msgstr "" -"Żywy glut, służący jako drzwi. Ma przejrzysta łatę przez którą można " -"wyglądać na zewnątrz nawet gdy są zamknięte." - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gel hatch" -msgstr "matowy żelowy właz" -#. ~ Description for {'str': 'opaque gel hatch'} -#. ~ Description for {'str': 'opaque gray hatch'} -#. ~ Description for {'str': 'opaque ooze hatch'} +#. ~ Description for orichalcum frame #: lang/json/vehicle_part_from_json.py msgid "" -"A living blob, acting as a door. Entirely opaque so you can't see through " -"it when closed." +"An expensive magical metal framework. Other vehicle components can be " +"mounted on it, and it can be attached to other frames to increase the " +"vehicle's size." msgstr "" -"Żywy glut, służący jako drzwi. Całkowicie nieprzezroczyste, więc nie można " -"przez nie widzieć gdy są zamknięte." - -#: lang/json/vehicle_part_from_json.py -msgid "gray retriever" -msgstr "szary czerpak" - -#: lang/json/vehicle_part_from_json.py -msgid "gray harness" -msgstr "szara uprząż" - -#: lang/json/vehicle_part_from_json.py -msgid "cocoon (30L)" -msgstr "kokon (30L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray tank (100L)" -msgstr "szary zbiornik (100L)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray reinforcement" -msgstr "szare wzmocnienie" - -#: lang/json/vehicle_part_from_json.py -msgid "gray roof" -msgstr "szary dach" - -#: lang/json/vehicle_part_from_json.py -msgid "gray seat" -msgstr "szare siedzenie" - -#: lang/json/vehicle_part_from_json.py -msgid "gray receptacle" -msgstr "szare naczynie" - -#: lang/json/vehicle_part_from_json.py -msgid "gray pouch (under)" -msgstr "szara sakwa (spodnia)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray walkway" -msgstr "szare przejście" - -#: lang/json/vehicle_part_from_json.py -msgid "gray hatch" -msgstr "szary właz" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gray hatch" -msgstr "matowy szary właz" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze retriever" -msgstr "śluzowy czerpak" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze harness" -msgstr "uprząż śluzowa" - -#: lang/json/vehicle_part_from_json.py -msgid "pod (20L)" -msgstr "łupina (20L)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze tank (80L)" -msgstr "zbiornik szlamu (80L)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze reinforcement" -msgstr "śluzowe wzmocnienie" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze roof" -msgstr "śluzowy dach" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze seat" -msgstr "śluzowe siedzenie" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze receptacle" -msgstr "śluzowe naczynie" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze pouch (under)" -msgstr "śluzowa sakwa (spodnia)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze walkway" -msgstr "śluzowe przejście" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze hatch" -msgstr "śluzowy właz" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque ooze hatch" -msgstr "matowy śluzowy właz" - -#: lang/json/vehicle_part_from_json.py -msgid "amorphous core" -msgstr "amorficzny rdzeń" - -#. ~ Description for {'str': 'amorphous core'} -#: lang/json/vehicle_part_from_json.py -msgid "An amorphous mass, the living heart and brain of a blob vehicle." -msgstr "Amorficzna masa, żyjące serce i mózg pojazdu gluta." - -#: lang/json/vehicle_part_from_json.py -msgid "snow slider" -msgstr "płoza śnieżna" - -#. ~ Description for {'str': 'snow slider'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, existing in a super-cooled state. It acts as a wheel." -msgstr "Żywy glut, egzystujący w super-schłodzonym stanie. Służy za koło." - -#. ~ Description for {'str': 'gelatinous wheel'} -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob. It acts as a wheel." -msgstr "Żywy glut. Służy jako koło." - -#: lang/json/vehicle_part_from_json.py -msgid "diamond barrier" -msgstr "diamentowa bariera" -#. ~ Description for {'str': 'diamond barrier'} #: lang/json/vehicle_part_from_json.py -msgid "A transparent, solid sheet of self-sustaining crystals." -msgstr "Przezroczysta jednolita tafla samopodtrzymujących się kryształów." - -#. ~ Description for {'str': 'diamond frame'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A framework of super-strong crystal. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." +msgid "mana frame" msgstr "" -"Rama z super-wytrzymałego kryształu. Inne komponenty pojazdu mogą być na " -"niej montowane, i można ją łączyć z innymi ramami zwiększając rozmiar " -"pojazdu." -#. ~ Description for {'str': 'diamond plating'} +#. ~ Description for mana frame #: lang/json/vehicle_part_from_json.py -msgid "" -"Transparent crystal armor plate. Will partially protect other components on" -" the same frame from damage." +msgid "A shape of pure mana that can float and carry items." msgstr "" -"Przezroczyste kryształowe opancerzenie. Częściowo ochroni inne komponenty na" -" tej samej ramie przed uszkodzeniami." #: lang/json/vitamin_from_json.py msgid "Calcium" @@ -224742,11 +218500,20 @@ msgstr "" msgid "%s/%s " msgstr "" +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "" + #: src/achievement.cpp msgid "" "\n" @@ -224793,10 +218560,6 @@ msgstr "Różne" msgid "Debug" msgstr "Debugowanie" -#: src/action.cpp -msgid "Back" -msgstr "Powrót" - #: src/action.cpp msgid "Actions" msgstr "Akcje" @@ -224811,6 +218574,30 @@ msgstr "GŁÓWNE MENU" msgid "%s (Direction button)" msgstr "" +#. ~ Sound of a shovel digging a pit at work! +#. ~ Sound of a shovel filling a pit or mound at work! +#: src/activity_actor.cpp src/activity_handlers.cpp +msgid "hsh!" +msgstr "hsh!" + +#: src/activity_actor.cpp +msgid "Something crawls out of the coffin!" +msgstr "Coś wypełzło z trumny!" + +#: src/activity_actor.cpp +msgid "You finish exhuming a grave." +msgstr "Kończysz ekshumować grób." + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging the %s." +msgstr "Kończysz wykopywanie %s." + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging up %s." +msgstr "Kończysz kopanie %s." + #: src/activity_actor.cpp msgid "Use electrohack?" msgstr "Użyć elektrowytrycha?" @@ -224835,8 +218622,8 @@ msgstr "Twoja moc się wyczerpała!" msgid "You cannot hack this." msgstr "" -#: src/activity_actor.cpp src/activity_handlers.cpp src/computer_session.cpp -#: src/computer_session.cpp src/iuse.cpp src/map.cpp +#: src/activity_actor.cpp src/computer_session.cpp src/computer_session.cpp +#: src/iuse.cpp src/map.cpp msgid "an alarm sound!" msgstr "dźwięk alarmu!" @@ -224865,10 +218652,115 @@ msgstr "Aktywujesz panel!" msgid "The nearby doors unlock." msgstr "" +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "" + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "" + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "Czerwony kabel zawsze odpala silnik, czyż nie?" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "" + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "" +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "Z satysfakcjonującym kliknięciem, brama z siatki otwiera się." + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "Z satysfakcjonującym kliknięciem, zamek w drzwiach otwiera się." + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "" + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "Twoje niezdarne próby spowodowały zacięcie zamka!" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "Zamek opiera się próbom włamania, i niszczysz swoje narzędzie." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "Zamek opiera się próbom włamania, i uszkadzasz swoje narzędzie." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "Zamek opiera się próbom włamania." + +#: src/activity_actor.cpp src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "" + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "Użyć wytrycha gdzie?" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "Dłubiesz w nosie i udrażniasz zatoki." + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "Te drzwi nie są zamknięte." + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "Tego nie możesz wyważyć wytrychem." + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "" + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "" + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "" + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "" + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -224939,8 +218831,8 @@ msgstr "" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." msgstr "" #: src/activity_handlers.cpp @@ -225239,58 +219131,10 @@ msgstr "Nic nie znalazłeś." msgid "The %s runs out of batteries." msgstr "W %s wyczerpują się baterie." -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "Ten kabel odpali silnik." - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "Ten kabel prawdopodobnie odpali silnik." - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "Drogą eliminacji, ten kabel odpali silnik." - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "Czerwony kabel zawsze odpala silnik, czyż nie?" - #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "Kończysz odzyskiwanie." -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "Nie ma tu ciała, które mógłbyś zmienić w niewolnika zombie!" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "" -"Tniesz mięśnie i ścięgna, i usuwasz części ciała, dopóki nie jesteś pewien, " -"że zombie nie będzie w stanie cię zaatakować gdy się zreanimuje." - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie" -" won't be able to attack when it reanimates." -msgstr "" -"Rąbiesz ciało i odcinasz niektóre części. Myślisz, że zombie nie będzie w " -"stanie cię zaatakować gdy się zreanimuje." - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "Zbyt mocno rozcinasz ciało, i teraz jest zmienione w miazgę." - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "" -"Tniesz ciało w zamierzeniu spacyfikowania go, ale chyba zrobiłeś to " -"niewłaściwie." - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -225452,34 +219296,6 @@ msgstr "hissssssssss!" msgid "With a satisfying click, the lock on the safe opens!" msgstr "Z satysfakcjonującym kliknięciem, zamek na sejfie otwiera się!" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "Z satysfakcjonującym kliknięciem, brama z siatki otwiera się." - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "Z satysfakcjonującym kliknięciem, zamek w drzwiach otwiera się." - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "Twoje niezdarne próby spowodowały zacięcie zamka!" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "Zamek opiera się próbom włamania, i niszczysz swoje narzędzie." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "Zamek opiera się próbom włamania, i uszkadzasz swoje narzędzie." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "Zamek opiera się próbom włamania." - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "Powtórz raz" @@ -225610,6 +219426,10 @@ msgstr "" msgid "You finish fishing" msgstr "" +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "Jest zbyt ciemno żeby czytać!" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "Kończysz czytać." @@ -225636,26 +219456,6 @@ msgstr "" msgid "%s finishes chatting with you." msgstr "%s kończy rozmawiać z tobą." -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "" - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "" - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "" @@ -225744,10 +219544,6 @@ msgid "" "actually stitching 's wounds." msgstr "" -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "" - #: src/activity_handlers.cpp msgid "" "The Autodoc returns to its resting position after successfully performing " @@ -225894,30 +219690,6 @@ msgstr "Kończysz wiercenie." msgid " finishes drilling." msgstr "" -#. ~ Sound of a shovel digging a pit at work! -#. ~ Sound of a shovel filling a pit or mound at work! -#: src/activity_handlers.cpp -msgid "hsh!" -msgstr "hsh!" - -#: src/activity_handlers.cpp -msgid "Something crawls out of the coffin!" -msgstr "Coś wypełzło z trumny!" - -#: src/activity_handlers.cpp -msgid "You finish exhuming a grave." -msgstr "Kończysz ekshumować grób." - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging the %s." -msgstr "Kończysz wykopywanie %s." - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging up %s." -msgstr "Kończysz kopanie %s." - #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." @@ -226585,10 +220357,6 @@ msgstr "PołWsch" msgid "South East" msgstr "Południowy Wschód" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "I" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "Zachód" @@ -226779,6 +220547,11 @@ msgstr "" msgid "Source area is the same as destination (%s)." msgstr "Obszar źródłowy jest ten sam co docelowy (%s)." +#: src/advanced_inv.cpp +#, c-format +msgid "You have no space for %s" +msgstr "" + #: src/advanced_inv.cpp msgid "Default layout was saved." msgstr "Domyślne rozmieszczenie zostało zapisane." @@ -226807,10 +220580,6 @@ msgstr "Źródłowy pojemnik jest pusty." msgid "You can unload only liquids into target container." msgstr "Możesz tylko wlewać płyny do docelowego pojemnika." -#: src/advanced_inv.cpp -msgid "You can't partially unload liquids from unsealable container." -msgstr "Nie możesz częściowo wylać płyn z niezamykanego pojemnika." - #: src/advanced_inv.cpp msgid "You can't pick up a liquid." msgstr "Nie możesz podnieść płynu." @@ -226909,6 +220678,10 @@ msgstr "przypasane do ciebie" msgid "an aura around you" msgstr "" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "" + #: src/armor_layers.cpp #, c-format msgid "" @@ -227012,11 +220785,6 @@ msgstr "Skrępowanie:" msgid "Warmth:" msgstr "Ciepło:" -#: src/armor_layers.cpp -#, c-format -msgid "Storage (%s):" -msgstr "Pojemność (%s):" - #: src/armor_layers.cpp msgid "Protection" msgstr "Ochrona" @@ -227029,6 +220797,10 @@ msgstr "Miażdżone:" msgid "Cut:" msgstr "Cięte:" +#: src/armor_layers.cpp +msgid "Ballistic:" +msgstr "" + #: src/armor_layers.cpp msgid "Acid:" msgstr "" @@ -227089,16 +220861,6 @@ msgstr "Pomoże ci lepiej widzieć pod wodą." msgid "It can occupy the same space as other things." msgstr "" -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "%s jest zbyt daleko do sortowania ubioru." - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "%s nie jest przyjazny!" - #: src/armor_layers.cpp msgid "Sort Armor" msgstr "Sortuj Ubiór" @@ -227143,6 +220905,16 @@ msgstr "Skrępowanie i Ciepło" msgid "Encumbrance" msgstr "Skrępowanie" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "%s jest zbyt daleko do sortowania ubioru." + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "%s nie jest przyjazny!" + #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" @@ -228083,10 +221855,6 @@ msgstr "Jesteś niepiśmienny!" msgid "Your eyes won't focus without reading glasses." msgstr "Litery rozmywają się tobie przed oczami bez okularów do czytania." -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "Jest zbyt ciemno żeby czytać!" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "Może ktoś mógłby ci to przeczytać, ale jesteś głuchy!" @@ -228404,11 +222172,15 @@ msgstr "" msgid "You train for a while." msgstr "" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp +msgid "It looks like you woke up before your alarm." +msgstr "Wygląda na to że obudziłeś się przed budzikiem." + +#: src/avatar.cpp msgid "It looks like you've slept through your internal alarm…" msgstr "" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp msgid "It looks like you've slept through the alarm…" msgstr "" @@ -228416,6 +222188,11 @@ msgstr "" msgid "You retched, but your stomach is empty." msgstr "Masz odruch wymiotny, ale twój żołądek jest pusty." +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "Ty (%s)" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "" @@ -228490,59 +222267,12 @@ msgstr "" msgid "Are you sure you want to raise %s? %d points available." msgstr "" -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "" - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "" - -#: src/avatar.cpp -msgid "You start walking." -msgstr "Zaczynasz chodzić." - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "" - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "" - -#: src/avatar.cpp -msgid "You start running." -msgstr "Zaczynasz biec." - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "" - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "" - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "Jesteś zbyt zmęczony by biec." - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "" - -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "" - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "Zaczynasz iść przykucnięty." - -#. ~ %1$s: weapon name, %2$s: holster name +#. ~ %1$s: weapon name +#. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp #, c-format msgctxt "holster" -msgid "Draw %1$s from %2$s?" +msgid "Draw from %1$s?" msgstr "" #: src/avatar.cpp src/monexamine.cpp @@ -228590,11 +222320,11 @@ msgstr "" msgid "Move into the monster to attack." msgstr "" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" msgstr "Toja siła woli ujawnia się, i ty także!" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything…" msgstr "" @@ -228807,11 +222537,6 @@ msgstr "Ta trawa jest martwa i zbyt zniszczona by się na niej paść." msgid "This grass is tainted with paint and thus inedible." msgstr "Ta trawa jest skażona farbą, a zatem niejadalna." -#: src/avatar_action.cpp -#, c-format -msgid "You leave the empty %s." -msgstr "Pozostawiasz pusty %s." - #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "Nie możesz efektywnie rzucać gdy jesteś w swojej skorupie." @@ -229424,10 +223149,6 @@ msgstr "" msgid "Your %s powers down." msgstr "Twój %s wyłącza się." -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "Generator sztucznej nocy jest aktywny!" - #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." @@ -229498,6 +223219,14 @@ msgstr "Operacja nie powiodła się." msgid "The %s screws up the operation." msgstr "" +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "" + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "" + #: src/bionics.cpp msgid "You prep to begin surgery." msgstr "Przygotowujesz rozpoczęcie operacji chirurgicznej." @@ -230288,6 +224017,46 @@ msgstr "litr" msgid "quart" msgstr "kwarta" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "" + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -230590,13 +224359,6 @@ msgstr "" msgid "This %s is too small to wear comfortably! Maybe it could be refitted." msgstr "" -#. ~ %1$s: item name, %2$s: container name -#: src/character.cpp -#, c-format -msgctxt "container" -msgid "You put the %1$s in your %2$s." -msgstr "" - #: src/character.cpp msgid "You can't place items here!" msgstr "Nie możesz umieścić tam przedmiotów!" @@ -230832,12 +224594,8 @@ msgid "Slaked" msgstr "Zaspokojony" #: src/character.cpp -msgid "Engorged" -msgstr "Obżarty" - -#: src/character.cpp -msgid "Sated" -msgstr "Napchany" +msgid "Satisfied" +msgstr "" #: src/character.cpp msgid "Hungry" @@ -230847,21 +224605,21 @@ msgstr "Głodny" msgid "Very Hungry" msgstr "Bardzo Głodny" -#: src/character.cpp -msgid "Starving!" -msgstr "Głodujesz" - #: src/character.cpp msgid "Near starving" msgstr "Niemal głodujesz" +#: src/character.cpp +msgid "Starving!" +msgstr "Głodujesz" + #: src/character.cpp msgid "Famished" msgstr "Wygłodniały" #: src/character.cpp -msgid "Peckish" -msgstr "Głodnawy" +msgid "ERROR!" +msgstr "" #: src/character.cpp src/npctalk.cpp msgid "Exhausted" @@ -230907,22 +224665,42 @@ msgstr "Masz skurcze z tego upychania się w pojeździe." msgid "You have a sudden heart attack!" msgstr "Masz nagły atak serca!" +#: src/character.cpp +msgid " has a sudden heart attack!" +msgstr "" + #: src/character.cpp msgid "Your breathing stops completely." msgstr "Twój oddech całkowicie ustał." +#: src/character.cpp +msgid "'s breathing stops completely." +msgstr "" + #: src/character.cpp msgid "Your heart spasms painfully and stops." msgstr "Serce ci skacze boleśnie i przestaje bić." +#: src/character.cpp +msgid "'s heart spasms painfully and stops." +msgstr "" + #: src/character.cpp msgid "Your heart spasms and stops." msgstr "Serce ci skacze i przestaje bić." +#: src/character.cpp +msgid "'s heart spasms and stops." +msgstr "" + #: src/character.cpp msgid "Your breathing slows down to a stop." msgstr "" +#: src/character.cpp +msgid "'s breathing slows down to a stop." +msgstr "" + #: src/character.cpp msgid "You have starved to death." msgstr "Umierasz z powodu głodu." @@ -231203,6 +224981,12 @@ msgstr "Żadna kończyna nie skorzysta z tego." msgid "Cancel" msgstr "Anuluj" +#. ~ you filled to the brim with +#: src/character.cpp +#, c-format +msgid "You filled %1$s to the brim with %2$s." +msgstr "" + #: src/character.cpp src/iexamine.cpp #, c-format msgid "You pour %1$s into the %2$s." @@ -231724,7 +225508,7 @@ msgstr "" msgid "You need a hammering tool to crush up frozen liquids!" msgstr "" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp src/npc.cpp msgid "Wielding: " msgstr "Dzierży:" @@ -231736,11 +225520,6 @@ msgstr "Nosi:" msgid "Traits: " msgstr "Cechy:" -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "Ty (%s)" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." @@ -232972,7 +226751,7 @@ msgid "This is full of dirt after being on the ground." msgstr "Jest pełny brudu po tym jak był na ziemi." #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/player.cpp +#: src/iuse_actor.cpp src/iuse_actor.cpp msgid "You can't do that while underwater." msgstr "Nie możesz tego robić pod wodą." @@ -232985,7 +226764,7 @@ msgstr "" msgid "You can't drink it while it's frozen." msgstr "Nie możesz tego pić dopóki jest zamarznięte." -#: src/consumption.cpp src/player.cpp +#: src/consumption.cpp #, c-format msgid "You need a %s to consume that!" msgstr "Potrzebujesz %s żeby to skonsumować!" @@ -233014,10 +226793,18 @@ msgstr "Nie możesz zjeść tego." msgid "This is rotten and smells awful!" msgstr "To jest zgniłe i śmierdzi paskudnie." +#: src/consumption.cpp +msgid "The thought of eating demihuman flesh makes you feel sick." +msgstr "" + #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." msgstr "Myśl o zjedzeniu ludzkiego mięsa przyprawia cie o mdłości." +#: src/consumption.cpp +msgid "Eating this raw meat probably isn't very healthy." +msgstr "" + #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." msgstr "Nadal mdli cię i chyba to znów wszystko wyrzygasz." @@ -233400,6 +227187,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "Nie masz tego przedmiotu." + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "Nie możesz zjeść swojego %s." + #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" msgstr "(pobliski)" @@ -233498,11 +227294,9 @@ msgstr "Już nie możesz już wytwarzać tego!" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" msgstr "" -"Nie masz pojemnika na %s i będziesz musiał to wylać albo wypić jak tylko " -"będzie gotowe! Kontynuować?" #: src/crafting.cpp src/pickup.cpp #, c-format @@ -234260,6 +228054,11 @@ msgctxt "damage type" msgid "stab" msgstr "kłute" +#: src/damage.cpp +msgctxt "damage_type" +msgid "bullet" +msgstr "" + #: src/damage.cpp msgctxt "damage type" msgid "heat" @@ -234448,6 +228247,14 @@ msgstr "" msgid "Info…" msgstr "Info…" +#: src/debug_menu.cpp +msgid "Enable achievements" +msgstr "" + +#: src/debug_menu.cpp +msgid "Game…" +msgstr "" + #: src/debug_menu.cpp msgid "Teleport - short range" msgstr "Teleportacja - Krótki Zasięg" @@ -234892,6 +228699,10 @@ msgstr "Pragnienie" msgid "Fatigue" msgstr "Zmęczenie" +#: src/debug_menu.cpp +msgid "Sleep Deprivation" +msgstr "Niedobór Snu" + #: src/debug_menu.cpp msgid "Reset all basic needs" msgstr "Zresetuj wszystkie podstawowe potrzeby" @@ -235279,6 +229090,14 @@ msgstr "" msgid "Enter benchmark length (in milliseconds):" msgstr "Wprowadź czas benchmarku (w milisekundach):" +#: src/debug_menu.cpp +msgid "Achievements are already enabled" +msgstr "" + +#: src/debug_menu.cpp +msgid "Achievements enabled" +msgstr "" + #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " @@ -235521,7 +229340,7 @@ msgstr "" msgid "trap: %s (%d)" msgstr "pułapka: %s (%d)" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "" @@ -236472,45 +230291,45 @@ msgstr "Naciśnij enter by rozmawiać z tym towarzyszem" #: src/faction.cpp msgid "traveling to: " -msgstr "" +msgstr "podróżowanie do: " #: src/faction.cpp #, c-format msgid "traveling to: (%d, %d)" -msgstr "" +msgstr "podróżowanie do: (%d, %d)" #: src/faction.cpp msgid "Current Mission: " -msgstr "" +msgstr "Obecna Misja: " #: src/faction.cpp msgid "Direction: Nearby" -msgstr "" +msgstr "Kierunek: Pobliski" #: src/faction.cpp #, c-format msgid "Location: (%d, %d), at camp: %s" -msgstr "" +msgstr "Lokacja: (%d, %d), w obozie: %s" #: src/faction.cpp msgid "Within radio range" -msgstr "" +msgstr "W zasięgu radiowym" #: src/faction.cpp msgid "Not within radio range" -msgstr "" +msgstr "Poza zasięgiem radiowym" #: src/faction.cpp msgid "You do not have a radio" -msgstr "" +msgstr "Nie masz radia" #: src/faction.cpp msgid "Follower does not have a radio" -msgstr "" +msgstr "Towarzysz nie ma ma radia" #: src/faction.cpp msgid "Both you and follower need a radio" -msgstr "" +msgstr "Zarówno ty i towarzysz potrzebuje radia" #: src/faction.cpp msgid "Within interaction range" @@ -236522,7 +230341,7 @@ msgstr "" #: src/faction.cpp msgid "Status: " -msgstr "" +msgstr "Status: " #: src/faction.cpp msgid "In Combat!" @@ -236554,28 +230373,28 @@ msgstr "" #: src/faction.cpp msgid "Condition: " -msgstr "" +msgstr "Warunek: " #: src/faction.cpp msgctxt "needs" msgid "Nominal" -msgstr "" +msgstr "Nominalny" #: src/faction.cpp msgid "Hunger: " -msgstr "" +msgstr "Głód: " #: src/faction.cpp msgid "Thirst: " -msgstr "" +msgstr "Pragnienie: " #: src/faction.cpp msgid "Fatigue: " -msgstr "" +msgstr "Zmęczenie: " #: src/faction.cpp msgid "Best other skills: " -msgstr "" +msgstr "Najlepsze inne umiejętności: " #: src/faction.cpp #, c-format @@ -236645,11 +230464,11 @@ msgstr "(Gotowe) Wytwarzanie" #: src/faction_camp.cpp msgid "Traveling" -msgstr "" +msgstr "Podróżowanie" #: src/faction_camp.cpp msgid "Busy traveling!\n" -msgstr "" +msgstr "Zajęci podróżowaniem!\n" #: src/faction_camp.cpp msgid "Recall ally from traveling" @@ -238205,6 +232024,11 @@ msgstr "Drzewo rozkwita w grzybiczym wykwicie!" msgid "You completed the achievement \"%s\"." msgstr "" +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "" + #: src/game.cpp src/options.cpp #, c-format msgid "Loading the tileset failed: %s" @@ -238369,6 +232193,16 @@ msgctxt "action" msgid "disassemble" msgstr "rozłóż" +#: src/game.cpp +msgctxt "action" +msgid "insert" +msgstr "" + +#: src/game.cpp +msgctxt "action" +msgid "open" +msgstr "" + #: src/game.cpp msgctxt "action" msgid "unfavorite" @@ -238898,11 +232732,6 @@ msgstr "" msgid "Without extra fuel it will burn for between %s to %s." msgstr "" -#: src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "" - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "" @@ -238937,6 +232766,44 @@ msgstr "" msgid "Peek where?" msgstr "Zerknąć gdzie?" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "malutki" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "mały" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "średni" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "duży" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "wielki" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "" + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "Jego rozmiar jest %s." + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "" + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -238978,17 +232845,17 @@ msgstr "Niewidoczne." #: src/game.cpp #, c-format -msgid "%s; Impassable" -msgstr "%s; Nieprzekraczalne" +msgid "Cover: %d%%" +msgstr "" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" -msgstr "%s; Koszt ruchu %d" +msgid "Impassable" +msgstr "" #: src/game.cpp -msgid "Lighting: " -msgstr "Światło:" +#, c-format +msgid "Move cost: %d" +msgstr "" #: src/game.cpp #, c-format @@ -238996,8 +232863,8 @@ msgid "Sign: %s" msgstr "Znak: %s" #: src/game.cpp -msgid "Sign: ???" -msgstr "Znak: ???" +msgid "Lighting: " +msgstr "Światło:" #: src/game.cpp #, c-format @@ -239011,12 +232878,11 @@ msgstr "Poniżej: %s; Przechodnie" #: src/game.cpp #, c-format -msgid "Coverage: %d%%" -msgstr "Pokrycie: %d%%" +msgid "Unfinished task: %s, %d%% complete" +msgstr "" #: src/game.cpp -#, c-format -msgid "Unfinished task: %s, %d%% complete" +msgid "Vehicle: " msgstr "" #: src/game.cpp @@ -239428,7 +233294,7 @@ msgstr "Potrzebujesz co najmniej jeden %s by przeładować %s!" msgid "The %s is already full!" msgstr "%s jest już pełny!" -#: src/game.cpp src/ranged.cpp +#: src/game.cpp #, c-format msgid "You can't reload a %s!" msgstr "Nie możesz przeładować %s!" @@ -240191,8 +234057,40 @@ msgid "Speed %s%d!" msgstr "" #: src/game.cpp -msgid "You slip while climbing and fall down again." -msgstr "Poślizgujesz się przy wspinaczce i upadasz." +msgid "Your skill in parkour makes it easier to climb." +msgstr "" + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "" + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "" + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "" + +#: src/game.cpp +msgid "You slip while climbing and fall down." +msgstr "" #: src/game.cpp msgid "Climbing is impossible in your current state." @@ -240211,6 +234109,11 @@ msgstr "" "Przypisane klawisze przedmiotów: " "%d/%d" +#: src/game_inventory.cpp +#, c-format +msgid "Inventory of %s" +msgstr "" + #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." msgstr "Twój ekwipunek jest pusty." @@ -240235,6 +234138,10 @@ msgstr "MIAŻDŻĄCE" msgid "CUT" msgstr "CIĘTE" +#: src/game_inventory.cpp +msgid "BULLET" +msgstr "" + #: src/game_inventory.cpp msgid "ACID" msgstr "KWAS" @@ -240328,6 +234235,15 @@ msgstr "" msgid "VOLUME" msgstr "" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "%s" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "ŚWIEŻOŚĆ" @@ -240562,6 +234478,10 @@ msgstr "WRĘCZ" msgid "MOVES" msgstr "RUCHY" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "" + #: src/game_inventory.cpp msgid "Wield item" msgstr "Dzierż przedmiot" @@ -240572,21 +234492,26 @@ msgstr "Nie masz niczego do trzymania w dłoniach." #: src/game_inventory.cpp #, c-format -msgid "You can't put anything into your %s." -msgstr "Nie możesz włożyć niczego do %s." - -#: src/game_inventory.cpp src/iuse_actor.cpp -msgid "Holster item" -msgstr "Włóż do kabury" +msgid "Put item into %s" +msgstr "" #: src/game_inventory.cpp #, c-format msgid "Choose an item to put into your %s" msgstr "" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "" + +#: src/game_inventory.cpp +#, c-format +msgid "Insert items into %s" +msgstr "" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." +msgid "Could not put %s into %s, aborting." msgstr "" #: src/game_inventory.cpp src/iuse.cpp @@ -240867,34 +234792,6 @@ msgstr "Musisz wybrać co najmniej jedną grupę potworów!" msgid "Special Zombies" msgstr "Specjalne Zombie" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "Zombie" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "Tryffidy" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "Roboty" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "Podprzestrzeń" - -#: src/gamemode_defense.cpp src/handle_action.cpp -msgid "Food" -msgstr "Pożywienie" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "Najemnicy" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "TRYB OBRONY" @@ -240971,7 +234868,35 @@ msgstr "Przyrost wartości nagrody za każdą koleją falę." msgid "Enemy Selection:" msgstr "Wybór Wroga:" -#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "Zombie" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "Tryffidy" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "Roboty" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "Podprzestrzeń" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "Pożywienie" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "Najemnicy" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "" + +#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp src/options.cpp msgid "Custom" msgstr "Niestandardowy" @@ -241055,6 +234980,10 @@ msgstr "Hipermarket" msgid "Bar" msgstr "Bar" +#: src/gamemode_defense.cpp +msgid "Mansion" +msgstr "rezydencja" + #: src/gamemode_defense.cpp msgid "One entrance and many rooms. Some medical supplies." msgstr "Jedno wejście i wiele pokoi. Nieco zapasów medycznych." @@ -241342,6 +235271,10 @@ msgstr "" msgid "This vehicle doesn't look very airworthy." msgstr "" +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "" + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "" @@ -241727,16 +235660,8 @@ msgid "Change to which movement mode?" msgstr "Przejść w który tryb ruchu?" #: src/handle_action.cpp -msgid "Run" -msgstr "Bieganie" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "Chodzenie" - -#: src/handle_action.cpp -msgid "Crouch" -msgstr "Skradanie" +msgid "Cycle move mode" +msgstr "" #: src/handle_action.cpp msgid "You don't know any spells to cast." @@ -242241,6 +236166,10 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "" @@ -243441,16 +237370,19 @@ msgid "You're illiterate, and can't read the screen." msgstr "Jesteś niepiśmienny, i nie potrafisz czytać z ekranu." #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" -msgstr "Porażka! Nie znaleziono pomp paliwa!" +#, c-format +msgid "Failure! No %s pumps found!" +msgstr "" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" -msgstr "Porażka! Nie znaleziono zbiornika paliwa!" +#, c-format +msgid "Failure! No %s tank found!" +msgstr "" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." -msgstr "Ta stacja nie ma paliwa. Przepraszamy za niedogodności." +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." +msgstr "" #: src/iexamine.cpp msgid "Welcome to AutoGas!" @@ -243461,36 +237393,41 @@ msgid "What would you like to do?" msgstr "Co chciałbyś zrobić?" #: src/iexamine.cpp -msgid "Buy gas." -msgstr "Kup paliwo." +#, c-format +msgid "Buy %s." +msgstr "" #: src/iexamine.cpp msgid "Refund cash." msgstr "Zwrot gotówki." #: src/iexamine.cpp -msgid "Current gas pump: " -msgstr "Obecna pompa paliwa:" +#, c-format +msgid "Current %s pump: " +msgstr "" #: src/iexamine.cpp -msgid "Choose a gas pump." -msgstr "Wybierz pompę paliwa." +#, c-format +msgid "Choose a %s pump." +msgstr "" #: src/iexamine.cpp msgid "Your discount: " msgstr "Twoja zniżka" #: src/iexamine.cpp -msgid "Your price per gasoline unit: " -msgstr "Twoja cena za jednostkę benzyny:" +#, c-format +msgid "Your price per %s unit: " +msgstr "" #: src/iexamine.cpp msgid "Hack console." msgstr "Zhakuj konsolę." #: src/iexamine.cpp -msgid "Please choose gas pump:" -msgstr "Wybierz pompę paliwa:" +#, c-format +msgid "Please choose %s pump:" +msgstr "" #: src/iexamine.cpp msgid "Pump " @@ -243503,8 +237440,8 @@ msgstr "" #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" -msgstr "Ile litrów benzyny kupić? Max: %d L. (0 by anulować)" +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" +msgstr "" #: src/iexamine.cpp msgid "Glug Glug Glug" @@ -243557,8 +237494,8 @@ msgid "You jump over an obstacle." msgstr "Przeskakujesz nad przeszkodą." #: src/iexamine.cpp -msgid "You can't climb down there" -msgstr "Nie możesz zejść na dół" +msgid "You can't climb down there." +msgstr "" #: src/iexamine.cpp #, c-format @@ -243589,6 +237526,14 @@ msgstr "" msgid "You may have problems climbing back up. Climb down?" msgstr "Możesz mieć problemy ze wspięciem się z powrotem w górę. Zejść w dół?" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "" + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "Zdecydowałeś oddalić się od gzymsu." @@ -243621,8 +237566,8 @@ msgstr "Pacjent umarł. Usuń zwłoki by kontynuować. Zamykanie." #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate." -" Please move patient to appropriate facility. Exiting." +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." msgstr "" #: src/iexamine.cpp @@ -244191,10 +238136,6 @@ msgstr "Części pojazdów" msgid "Traps" msgstr "Pułapki" -#: src/init.cpp -msgid "Bionics" -msgstr "Bioniki" - #: src/init.cpp msgid "Terrain" msgstr "Teren" @@ -244231,6 +238172,10 @@ msgstr "Prototypy pojazdów" msgid "Mapgen weights" msgstr "Wagi generatora map" +#: src/init.cpp +msgid "Behaviors" +msgstr "" + #: src/init.cpp msgid "Monster types" msgstr "Typy potworów" @@ -244247,6 +238192,10 @@ msgstr "Frakcje potworów" msgid "Factions" msgstr "" +#: src/init.cpp +msgid "Move modes" +msgstr "" + #: src/init.cpp msgid "Crafting recipes" msgstr "Receptury rzemieślnicze" @@ -244267,10 +238216,6 @@ msgstr "Klasy NPC" msgid "Missions" msgstr "Misje" -#: src/init.cpp -msgid "Behaviors" -msgstr "" - #: src/init.cpp msgid "Harvest lists" msgstr "Listy żniw" @@ -244283,8 +238228,8 @@ msgstr "Anatomie" msgid "Mutations" msgstr "Mutacje" -#: src/init.cpp -msgid "Achivements" +#: src/init.cpp src/scores_ui.cpp +msgid "Achievements" msgstr "" #: src/init.cpp @@ -244343,6 +238288,10 @@ msgstr "" msgid "Ammunition types" msgstr "Typy amunicji" +#: src/init.cpp +msgid "Bionics" +msgstr "Bioniki" + #: src/init.cpp msgid "Gates" msgstr "Bramy" @@ -244379,6 +238328,10 @@ msgstr "" msgid "Scores" msgstr "" +#: src/init.cpp +msgid "Achivements" +msgstr "" + #: src/init.cpp msgid "Disease types" msgstr "" @@ -244791,7 +238744,7 @@ msgstr "Potrzebujesz dwóch przedmiotów do porównania. Użyj %s by je wybrać. msgid "No items were selected. Use %s to select them." msgstr "Nie wybrano przedmiotów. Użyj %s by je wybrać." -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "PRZEDMIOTY DO UPUSZCZENIA" @@ -244926,14 +238879,18 @@ msgstr "" msgid "Material: %s" msgstr "Materiał: %s" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp src/item_pocket.cpp msgid "Volume: " msgstr "" -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "Waga: " +#: src/item.cpp +msgid "Length: " +msgstr "" + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -245065,6 +239022,10 @@ msgstr "Pobudzony" msgid "Portions: " msgstr "Porcje: " +#: src/item.cpp +msgid "Consume time: " +msgstr "" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "* Konsumowanie tej rzeczy jest uzależniające." @@ -245326,6 +239287,10 @@ msgstr "Wyrównana szansa dobrego trafienia w odległości:" msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr "" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "Czas do osiągnięcia poziomu wycelowania:" @@ -245351,6 +239316,10 @@ msgstr[1] "Mieści %i łusek" msgstr[2] "Mieści %i łusek" msgstr[3] "Mieści %i łusek" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "" + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -245367,6 +239336,14 @@ msgstr "" "Po przyłączeniu do broni palnej, pozwala wykonywać nim " "zasięgowe ataki wręcz." +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "" + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" + #: src/item.cpp msgid "Dispersion modifier: " msgstr "Modyfikator rozrzutu: " @@ -245421,6 +239398,10 @@ msgstr "Ochrona: Miażdżone: " msgid "Cut: " msgstr "Cięte: " +#: src/item.cpp +msgid "Ballistic: " +msgstr "" + #: src/item.cpp msgid "Acid: " msgstr "Kwas: " @@ -245605,10 +239586,6 @@ msgstr "Skrępowanie: " msgid "Encumbrance when full: " msgstr "Skrępowanie gdy pełny:" -#: src/item.cpp -msgid "Storage: " -msgstr "Pojemność: " - #: src/item.cpp msgid "Weight capacity modifier: " msgstr "Modyfikator pojemności wagi: " @@ -245617,6 +239594,10 @@ msgstr "Modyfikator pojemności wagi: " msgid "Weight capacity bonus: " msgstr "Bonus pojemności wagi: " +#: src/item.cpp +msgid "Storage: " +msgstr "Pojemność: " + #: src/item.cpp msgid "* This item can be worn with a helmet." msgstr "* Ten przedmiot może być noszony wraz z hełmem." @@ -245855,27 +239836,6 @@ msgstr "Może pomóc ci w rozpracowaniu kilku kolejnych przepisów. msgid "You need to read this book to see its contents." msgstr "Musisz przeczytać tą książkę by sprawdzić jej zawartość." -#: src/item.cpp -msgid "This container " -msgstr "Ten pojemnik" - -#: src/item.cpp -msgid "can be resealed, " -msgstr "może być ponownie uszczelniony," - -#: src/item.cpp -msgid "is watertight, " -msgstr "jest wodoszczelnym" - -#: src/item.cpp -msgid "prevents spoiling, " -msgstr "" - -#: src/item.cpp -#, c-format -msgid "can store %s %s." -msgstr "może przechować%s%s." - #: src/item.cpp #, c-format msgid "Capacity: %dmJ" @@ -245900,7 +239860,6 @@ msgstr "Ładunki: %d" msgid "Compatible magazines: " msgstr "" -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -245911,12 +239870,37 @@ msgstr[2] "Maksimum ładunków z %s." msgstr[3] "Maksimum ładunków z %s." #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "Maksimum ładunek." -msgstr[1] "Maksimum ładunków." -msgstr[2] "Maksimum ładunków." -msgstr[3] "Maksimum ładunków." +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard " +"batteries." +msgstr "" +"* To narzędzie zmodyfikowano do używania uniwersalnego systemu " +"zasilania UPS i nie jest kompatybilne z " +"standardowymi bateriami." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "" +"* To narzędzie ma ładowalne ogniwo mocy i nie jest " +"kompatybilne z standardowymi bateriami." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" +"* To narzędzie ma ładowalne ogniwo mocy i może być ładowane w " +"każdej kompatybilnej z UPS stacji ładującej. Możesz je " +"naładować zwykłymi bateriami, ale rozładowanie jest niemożliwe." + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "" #: src/item.cpp #, c-format @@ -246002,6 +239986,10 @@ msgstr "" msgid "Cut Protection: " msgstr "" +#: src/item.cpp +msgid "Ballistic Protection: " +msgstr "" + #: src/item.cpp msgid "Stat Bonus: " msgstr "" @@ -246100,6 +240088,11 @@ msgid "" "with contents." msgstr "" +#: src/item.cpp +msgid "" +"* This item is not rigid. Its volume increases with contents." +msgstr "" + #: src/item.cpp msgid "* This item does not conduct electricity." msgstr "* Ten przedmiot nie przewodzi prądu elektrycznego." @@ -246119,39 +240112,6 @@ msgstr "* Ten przedmiot przewodzi prąd elektryczny." msgid "* This clothing will give you an allergic reaction." msgstr "* Ta odzież może wywołać reakcję alergiczną." -#: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard " -"batteries." -msgstr "" -"* To narzędzie zmodyfikowano do używania uniwersalnego systemu " -"zasilania UPS i nie jest kompatybilne z " -"standardowymi bateriami." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." -msgstr "" -"* To narzędzie ma ładowalne ogniwo mocy i nie jest " -"kompatybilne z standardowymi bateriami." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." -msgstr "" -"* To narzędzie ma ładowalne ogniwo mocy i może być ładowane w " -"każdej kompatybilnej z UPS stacji ładującej. Możesz je " -"naładować zwykłymi bateriami, ale rozładowanie jest niemożliwe." - -#: src/item.cpp -msgid "* This tool runs on bionic power." -msgstr "" - #: src/item.cpp msgid "" "* This item has been modified to listen to radio signals. It " @@ -246177,18 +240137,6 @@ msgstr "" "* Aktywowanie tego przedmiotu sygnałem radiowym spowoduje jego " "natychmiastową detonację." -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "* Ta broń wymaga obu wolnych rąk do strzelania." - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "* Ten mod zasłania celownik podstawowy broni." - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "" - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -246378,10 +240326,10 @@ msgstr "" msgctxt "item name" msgid "%1$s with %2$zd item" msgid_plural "%1$s with %2$zd items" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%1$s z %2$zd przedmiotem" +msgstr[1] "%1$s z %2$zd przedmiotem" +msgstr[2] "%1$s z %2$zd przedmiotami" +msgstr[3] "%1$s z %2$zd przedmiotami" #: src/item.cpp msgid " (poisonous)" @@ -246698,26 +240646,11 @@ msgctxt "magazine" msgid "Eject %1$s from %2$s?" msgstr "" -#: src/item.cpp -#, c-format -msgid "You can't mix loads in your %s." -msgstr "Nie możesz mieszać ładunków w twoim %s." - -#: src/item.cpp -#, c-format -msgid "That %s isn't water-tight." -msgstr "Ten %s nie jest wodoodporny." - #: src/item.cpp #, c-format msgid "That %s must be on the ground or held to hold contents!" msgstr "Ten %s musi być na ziemi lub być trzymany by utrzymać zawartość!" -#: src/item.cpp -#, c-format -msgid "You can't seal that %s!" -msgstr "Nie możesz zamknąć tego %s!" - #: src/item.cpp #, c-format msgid "That %1$s won't hold %2$s." @@ -246862,6 +240795,31 @@ msgstr "Nie masz żadnych przedmiotów z zarejestrowanymi użyciami" msgid "Execute which action?" msgstr "Wykonać jaką akcję?" +#: src/item_contents.cpp +msgid "is not a container" +msgstr "" + +#: src/item_contents.cpp +msgid "is not rigid" +msgstr "" + +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "" + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr "" + +#: src/item_contents.cpp +#, c-format +msgid "%d Pockets with capacity:" +msgstr "" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" +msgstr "" + #: src/item_factory.cpp msgid "" "Can be activated to increase environmental protection. Will " @@ -246889,6 +240847,179 @@ msgstr "ekwipunek" msgid "inside %s" msgstr "" +#: src/item_pocket.cpp +msgid "sealed" +msgstr "" + +#: src/item_pocket.cpp +msgid "open" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Pocket %d:" +msgstr "" + +#: src/item_pocket.cpp +msgid "Maximum item length: " +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Minimum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Maximum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Base moves to remove item: %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is rigid." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket can contain a liquid." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket can contain a gas." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket will spill if placed into another item or worn." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket protects its contents from fire." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Contained items spoil at %.0f%% their original rate." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Items in this pocket weigh %.0f%% their original weight." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "%s pocket %d" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "pocket %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is empty." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is sealed." +msgstr "" + +#: src/item_pocket.cpp +msgid " of " +msgstr " z " + +#: src/item_pocket.cpp +msgid "Contents of this pocket:" +msgstr "" + +#: src/item_pocket.cpp +msgid "only mods can go into mod pocket" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster already contains an item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't contain liquid" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't mix liquid with contained item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't put non liquid into pocket with liquid" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't contain gas" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't mix gas with contained item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't put non gas into pocket with gas" +msgstr "" + +#: src/item_pocket.cpp +msgid "item does not have correct flag" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is not an ammo" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is not the correct ammo type" +msgstr "" + +#: src/item_pocket.cpp +msgid "tried to put too many charges of ammo in item" +msgstr "" + +#: src/item_pocket.cpp +msgid "item too big" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too long" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too small" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too heavy" +msgstr "" + +#: src/item_pocket.cpp +msgid "pocket is holding too much weight" +msgstr "" + +#: src/item_pocket.cpp +msgid "not enough space" +msgstr "" + #: src/itype.h msgid "click." msgstr "klik." @@ -247085,6 +241216,12 @@ msgstr "Czujesz się mocny." msgid "You no longer need to fear the flu, at least for some time." msgstr "" +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "" + #: src/iuse.cpp msgid "" "You no longer need to worry about asthma attacks, at least for a while." @@ -248490,8 +242627,8 @@ msgstr " potrzebuje nowego filtra do maski przeciwgazowej!" #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." -msgstr "Twój %s nie ma filtra." +msgid "Your %s doesn't have a filter." +msgstr "" #: src/iuse.cpp #, c-format @@ -250680,19 +244817,13 @@ msgstr[3] "Ładujesz %1$d x %2$s naboi do %3$s." #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" -msgstr "%s skanuje cię i wydaje groźne piszczące dźwięki!" +msgid "You deploy the %s wrong. It is hostile!" +msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "%s emituje piśnięcie \"Swój/Wróg\" gdy cię skanuje." - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." +msgid "You deploy the %s." msgstr "" -"Migająca dioda na wieżyczce laserowej wydaje się wskazywać niski poziom " -"światła." #: src/iuse_actor.cpp msgid "Place npc where?" @@ -250716,33 +244847,6 @@ msgstr "Potrzebujesz źródła zasilania do %s (zwykły UPS wystarczy)." msgid "There is also a certain bionic that helps with this kind of armor." msgstr "Jest też pewna bionika która współpracuje z tym rodzajem zbroi." -#: src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "" - -#: src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "Użyć wytrycha gdzie?" - -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "Dłubiesz w nosie i udrażniasz zatoki." - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "Te drzwi nie są zamknięte." - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "Tego nie możesz wyważyć wytrychem." - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "" @@ -250873,10 +244977,6 @@ msgstr "" msgid "At your skill level, it will take around %d minutes to light a fire." msgstr "Z twoimi umiejętnościami, rozpalenie ognia zajmie około %d minut." -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "Nie masz tego przedmiotu." - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -251029,42 +245129,6 @@ msgstr "" msgid "You need at least %d charges to cauterize wounds." msgstr "Potrzebujesz co najmniej %d ładunków żeby kauteryzować rany." -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "Brak odpowiednich ciał" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "" -"Perspektywa pocięcia ciała i pozwolenie mu na powstanie jako niewolnik to " -"dla ciebie zbyt dużo do przyjęcia na tą chwilę." - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "Selektywnie potnij ciało padłego zombie w niewolnika zombie?" - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "Czyń miłość nie zniewolę." - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "" - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "" -"Czujesz się paskudnie w związku z okaleczeniem i zniewoleniem czyjegoś " -"ciała." - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "potrzebujesz przynajmniej %s 1." - #: src/iuse_actor.cpp msgid "Hsss" msgstr "Hsss" @@ -251155,6 +245219,10 @@ msgstr "" msgid "Spells Contained:" msgstr "" +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "" + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -251218,31 +245286,11 @@ msgstr "" msgid "This item never fails." msgstr "" -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too big to fit in your %2$s" -msgstr "Twój %1$s jest zbyt duży by zmieścić się w twoim %2$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too small to fit in your %2$s" -msgstr "Twój %1$s jest zbyt mały by zmieścić się w twoim %2$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too heavy to fit in your %2$s" -msgstr "Twój %1$s jest zbyt ciężki by zmieścić się w twoim %2$s" - #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" msgstr "Nie sądzisz, że włożenie %1$s do twojego %2$s to dobry pomysł" -#: src/iuse_actor.cpp -#, c-format -msgid "You can't put your %1$s in your %2$s" -msgstr "Nie możesz włożyć swojego %1$s w swój %2$s" - #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" @@ -251253,6 +245301,10 @@ msgstr "Wkładasz twój %s do kabury" msgid "You need to unwield your %s before using it." msgstr "Musisz odłożyć swój %s zanim go użyjesz." +#: src/iuse_actor.cpp +msgid "Holster item" +msgstr "Włóż do kabury" + #: src/iuse_actor.cpp #, c-format msgid "Draw %s" @@ -251264,66 +245316,8 @@ msgid "Use %s" msgstr "Użyj %s" #: src/iuse_actor.cpp -msgid "Can be activated to store a suitable item." -msgid_plural "Can be activated to store suitable items." -msgstr[0] "Może być aktywowany by przechować właściwy przedmiot." -msgstr[1] "Może być aktywowany by przechować właściwe przedmioty." -msgstr[2] "Może być aktywowany by przechować właściwe przedmioty." -msgstr[3] "Może być aktywowany by przechować właściwe przedmioty." - -#: src/iuse_actor.cpp -msgid "Num items: " -msgstr "Liczba rzeczy:" - -#: src/iuse_actor.cpp -msgid "Item volume: Min: " -msgstr "Objętość rzeczy: Min:" - -#: src/iuse_actor.cpp -msgid " Max: " -msgstr " Max:" - -#: src/iuse_actor.cpp -msgid "Max item weight: " -msgstr "Maksymalna waga przedmiotu: " - -#: src/iuse_actor.cpp -#, c-format -msgid " %s" -msgstr " %s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to store a single round of " -msgid_plural "Can be activated to store up to %i rounds of " -msgstr[0] "Może być aktywowany by przechować pojedynczy nabój " -msgstr[1] "Może być aktywowany by przechować do %i naboi " -msgstr[2] "Może być aktywowany by przechować do %i naboi " -msgstr[3] "Może być aktywowany by przechować do %i naboi " - -#: src/iuse_actor.cpp -#, c-format -msgid "No matching ammo for the %1$s" -msgstr "Brak pasującej amunicji do %1$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "You store the %1$s in your %2$s" -msgstr "Przechowujesz %1$s w swoim %2$s" - -#: src/iuse_actor.cpp -msgid "Store ammo" -msgstr "Przechowaj amunicję" - -#: src/iuse_actor.cpp -#, c-format -msgid "Store ammo in %s" -msgstr "Przechowaj amunicję w %s" - -#: src/iuse_actor.cpp src/vehicle_use.cpp -#, c-format -msgid "Unload %s" -msgstr "Rozładuj %s" +msgid "Can be activated to store suitable items." +msgstr "Może być aktywowany by przechować właściwe przedmioty." #: src/iuse_actor.cpp #, c-format @@ -251639,8 +245633,8 @@ msgid "You can't install bionics while mounted." msgstr "Nie możesz instalować części w trakcie jazdy wierzchem." #: src/iuse_actor.cpp -msgid "You can't self-install bionics." -msgstr "Nie możesz własnoręcznie instalować bionik." +msgid "You can't self-install this CBM." +msgstr "" #: src/iuse_actor.cpp msgid "You can't install a filthy CBM!" @@ -251790,19 +245784,19 @@ msgid "Cut" msgstr "" #: src/iuse_actor.cpp -msgid "Acid" +msgid "Ballistic" msgstr "" #: src/iuse_actor.cpp -msgid "Fire" +msgid "Acid" msgstr "" #: src/iuse_actor.cpp -msgid "Warmth" +msgid "Fire" msgstr "" #: src/iuse_actor.cpp -msgid "Storage" +msgid "Warmth" msgstr "" #: src/iuse_actor.cpp @@ -252705,10 +246699,6 @@ msgstr "To łoś, czysta esencja zła. Powinieneś \"UCIEKAĆ!\"" msgid "It is SOFTWARE BUG." msgstr "To BŁĄD PROGRAMU." -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "robotszukakoteczka v22Lipiec2008 - naciśnij q by wyjść." - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "robotszukakoteczka v22Lipiec2008" @@ -252730,24 +246720,27 @@ msgid ")." msgstr ")." #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if" " they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" -"Twoim zadaniem jest znaleźć koteczka. Zadanie komplikuje istnienie wielu " -"rzeczy nie będących koteczkiem. Robot musi dotknąć rzeczy by uznać czy jest " -"ona koteczkiem czy nie. Gra kończy się gdy robot znajduje koteczka. " -"Alternatywnie możesz skończyć grę naciskając 'q', 'Q' lub 'Esc'." #: src/iuse_software_kitten.cpp msgid "Press any key to start." msgstr "Naciśnij dowolny klawisz by rozpocząć." #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." -msgstr "Niewłaściwa komenda: Użyj klawiszy kierunkowych lub naciśnij 'q'." +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "" + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" @@ -253106,7 +247099,7 @@ msgid "Loading" msgstr "Wczytywanie" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" msgstr "" #: src/magic.cpp @@ -253320,6 +247313,12 @@ msgstr "" msgid "Only affects the monsters: %s" msgstr "" +#. ~ amount of damage per second, abbreviated +#: src/magic.cpp +#, c-format +msgid ", %d/sec" +msgstr "" + #: src/magic.cpp src/veh_interact.cpp msgid "Damage" msgstr "Uszkoszenia" @@ -256284,6 +250283,34 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "Otworzyłaś dziwną świątynię." +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "" + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -257949,12 +251976,35 @@ msgstr "Głowa %s eksploduje w masę wijących się macek!" msgid "The %s lashes its tentacle at you!" msgstr "%s smaga macką w twoim kierunku!" +#: src/monattack.cpp +#, c-format +msgid "The %s lashes its tentacle at !" +msgstr "" + #. ~ 1$s is bodypart name, 2$d is damage value. #: src/monattack.cpp #, c-format msgid "Your %1$s is hit for %2$d damage!" msgstr "Twoja %1$s jest trafiona za %2$d obrażeń!" +#. ~ 1$s is bodypart name, 2$d is damage value. +#: src/monattack.cpp +#, c-format +msgid "'s %1$s is hit for %2$d damage!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "" +"The %1$s lashes its tentacle at 's %2$s, but glances off their " +"armor!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s's arms fly out at you, but you dodge!" @@ -258054,6 +252104,10 @@ msgstr "%s gapi się na ciebie, i przechodzą cię dreszcze." msgid "You feel like you're being watched, it makes you sick." msgstr "Czujesz się obserwowany, co sprawia że jest ci niedobrze." +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -259116,18 +253170,6 @@ msgstr "Gdy ognie gasną w oczach %s, twoja broń wydaje się błyszczeć jaśni msgid "The %s was destroyed! GAME OVER!" msgstr "%s został zniszczony! KONIEC GRY!" -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its pockets, but there's nothing left in them." -msgstr "Ręce %s sięgają do kieszeni, ale nic w nich nie zostało." - -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its remaining pockets, opening them!" -msgstr "Ręce %s sięgają do pozostałych kieszeni, otwierając je!" - #. ~ %s is the possessive form of the monster's name #: src/mondeath.cpp #, c-format @@ -259170,11 +253212,6 @@ msgstr "" msgid "zombie slave" msgstr "niewolnik zombie" -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "Popchnij %s" - #: src/monexamine.cpp msgid "Rename" msgstr "Zmień nazwę" @@ -259652,10 +253689,6 @@ msgstr "Tropi." msgid "Ignoring." msgstr "Ignoruje." -#: src/monster.cpp -msgid "Zombie slave." -msgstr "Niewolnik zombie." - #: src/monster.cpp msgid "Hostile!" msgstr "Wrogi!" @@ -259733,11 +253766,11 @@ msgid "It is nearly dead!" msgstr "Jest niemal martwe!" #: src/monster.cpp -msgid " Difficulty " -msgstr " Trudność " +msgid "Can see to your current location" +msgstr "" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" +#: src/monster.cpp +msgid "Can't see to your current location" msgstr "" #: src/monster.cpp @@ -259788,11 +253821,6 @@ msgstr "TO jest %s. %s %s" msgid "It is %s." msgstr "Jest %s." -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "Jego rozmiar jest %s." - #: src/monster.cpp msgid "an animal" msgstr "zwierzę" @@ -260142,6 +254170,15 @@ msgstr "" msgid "Focus trends towards:" msgstr "Skupienie dąży do:" +#. ~ This should never occur - this is the message when the character swtiches +#. to +#. ~ an invalid move mode or there's not a message for failing to switch to a +#. move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "" + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -260703,8 +254740,8 @@ msgstr "Udźwig: %.1f %s" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" -msgstr "Bonus do walki wręcz: %.1f" +msgid "Bash damage bonus: %.1f" +msgstr "" #: src/newcharacter.cpp msgid "" @@ -261120,6 +255157,10 @@ msgstr "Zombie w pobliżu" msgid "Various limb wounds" msgstr "Różne rany kończyn" +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "" + #: src/newcharacter.cpp msgid "No starting NPC" msgstr "Brak startowych NPC" @@ -261130,10 +255171,14 @@ msgstr "Szukaj po nazwie scenariusza." #: src/newcharacter.cpp src/player_display.cpp msgid "Height:" -msgstr "" +msgstr "Wzrost:" #: src/newcharacter.cpp src/player_display.cpp msgid "Age:" +msgstr "Wiek:" + +#: src/newcharacter.cpp src/player_display.cpp +msgid "Blood type:" msgstr "" #: src/newcharacter.cpp @@ -261280,6 +255325,18 @@ msgstr "" #: src/newcharacter.cpp msgid "Enter height in centimeters. Minimum 145, maximum 200" +msgstr "Wpisz wzrost w centrymetrach. Minimum 145, maksimum 200" + +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "" + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" msgstr "" #: src/newcharacter.cpp @@ -261395,13 +255452,12 @@ msgid "%1$s says something but you can't hear it!" msgstr "%1$s mówi coś ale nie słyszysz tego!" #: src/npc.cpp -msgid "NPC: " +msgid "Aware of your presence" msgstr "" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" -msgstr "Dzierży %s" +msgid "Unaware of you" +msgstr "" #: src/npc.cpp msgid "Completely untrusting" @@ -261779,8 +255835,13 @@ msgstr "" #: src/npcmove.cpp #, c-format -msgid "%s %s" -msgstr "%s %s" +msgid " %s, %s" +msgstr "" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" +msgstr "" #: src/npcmove.cpp #, c-format @@ -262644,6 +256705,13 @@ msgstr "Zapłać:" msgid "Select a follower" msgstr "Wybierz towarzysza" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to get information on an item." +msgstr "" + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -262685,11 +256753,6 @@ msgstr "Więcej >" msgid "Examine which item?" msgstr "Obejrzeć który przedmiot?" -#: src/npctrade.cpp -#, c-format -msgid "Trade how many containers with %s [MAX: %d]: " -msgstr "" - #: src/npctrade.cpp #, c-format msgid "Trade how many %s [MAX: %d]: " @@ -262721,16 +256784,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to quit,\n" -"? to get information on an item." -msgstr "" - -#: src/options.cpp -msgid "System language" -msgstr "Język systemowy" - #: src/options.cpp msgid "General" msgstr "Ogólne" @@ -262751,11 +256804,6 @@ msgstr "Domyślne świata" msgid "Android" msgstr "Android" -#: src/options.cpp src/overmap_ui.cpp src/ranged.cpp -#, c-format -msgid "%s" -msgstr "%s" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -262801,6 +256849,10 @@ msgstr "Deona" msgid "Basic" msgstr "Podstawowe" +#: src/options.cpp +msgid "System language" +msgstr "Język systemowy" + #: src/options.cpp msgid "Default character name" msgstr "Domyślna nazwa postaci" @@ -263326,6 +257378,11 @@ msgstr "" msgid "12h" msgstr "12h" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "Wojskowy" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -263837,16 +257894,16 @@ msgid "Terminal width" msgstr "Szerokość terminalu" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." -msgstr "Ustawia wielkość terminalu wzdłuż osi X. Wymaga restartu gry." +msgid "Set the size of the terminal along the X axis." +msgstr "" #: src/options.cpp msgid "Terminal height" msgstr "Wysokość terminalu" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." -msgstr "Ustawia wielkość terminalu wzdłuż osi Y. Wymaga restartu gry." +msgid "Set the size of the terminal along the Y axis." +msgstr "" #: src/options.cpp msgid "Font blending" @@ -263968,12 +258025,13 @@ msgid "Choose the tileset you want to use." msgstr "Wybiera nakładkę graficzną, której chcesz użyć." #: src/options.cpp -msgid "Memory map drawing mode" +msgid "Memory map overlay preset" msgstr "" #: src/options.cpp msgid "" -"Specified the mode in which the memory map is drawn. Requires restart." +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." msgstr "" #: src/options.cpp @@ -263984,6 +258042,70 @@ msgstr "" msgid "Sepia" msgstr "" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "" + #: src/options.cpp msgid "Pixel minimap" msgstr "Pikselowa minimapa" @@ -264203,139 +258325,6 @@ msgstr "2x" msgid "4x" msgstr "4x" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "Dystans początkowej widoczności" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "Określa rozmiar obszaru znanego na początku gry." - -#: src/options.cpp -msgid "Initial stat points" -msgstr "Początkowe punkty statystyk" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "" -"Liczba punków dostępna w generatorze do wydania na statystyki postaci." - -#: src/options.cpp -msgid "Initial trait points" -msgstr "Początkowe punkty cech" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "Liczba punków dostępna w generatorze do wydania na cechy postaci." - -#: src/options.cpp -msgid "Initial skill points" -msgstr "Początkowe punkty umiejętności" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "" -"Liczba punków dostępna w generatorze do wydania na umiejętności postaci." - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "Maksymalne punkty cech" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "Maksymalna liczba punktów cech do wydania w generatorze postaci." - -#: src/options.cpp -msgid "Skill training speed" -msgstr "Tempo nauki umiejętności" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "" -"Skaluje doświadczenie pozyskane z praktykowania umiejętności i czytania " -"książek. 0.5 to połowa normy, 2.0 to podwójna norma, 0.0 wyłącza naukę " -"umiejętności z wyjątkiem treningów u NPC." - -#: src/options.cpp -msgid "Skill rust" -msgstr "Rdzewienie umiejętności" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" -" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" -"Ustawienie poziomu zapominania umiejętności. Standard: Oryginalny Cataclysm," -" Ograniczone: ograniczone na 2 poziomie umiejętności. Inteligencja: zależne " -"od inteligencji. Ogranicz Inteligencją: zależne od inteligencji i " -"ograniczone. Wyłączone: brak." - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "Standard" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "Ograniczone" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "Inteligencja" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "Ogranicz Inteligencją" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "Wyłączone" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "Eksperymentalne pole widzenia 3D" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in" -" z-level mode, the vision will extend beyond current z-level. Currently " -"very bugged!" -msgstr "" -"Wyłączone: Wzrok jest ograniczony do obecnego z-poziomu. Włączone: jeśli " -"świat jest w trybie z-poziomów, wzrok rozszerzy się poza obecny z-poziom. " -"Obecnie mocno zbugowane." - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "" - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "Eksperymentalna konwersja nazw ścieżek plików" - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" -" Windows users." -msgstr "" -"Zaznaczone: ścieżki plików będą przepisywane z systemowych na UTF-8 przy " -"czytaniu i wstecz przy zapisywaniu. Głównie dla użytkowników CJK Windows." - #: src/options.cpp msgid "Core version data" msgstr "Data wersji rdzenia" @@ -264641,6 +258630,139 @@ msgstr "Wyłącznie wiele pul" msgid "No freeform" msgstr "Bez stylu wolnego" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "Dystans początkowej widoczności" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "Określa rozmiar obszaru znanego na początku gry." + +#: src/options.cpp +msgid "Initial stat points" +msgstr "Początkowe punkty statystyk" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "" +"Liczba punków dostępna w generatorze do wydania na statystyki postaci." + +#: src/options.cpp +msgid "Initial trait points" +msgstr "Początkowe punkty cech" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "Liczba punków dostępna w generatorze do wydania na cechy postaci." + +#: src/options.cpp +msgid "Initial skill points" +msgstr "Początkowe punkty umiejętności" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "" +"Liczba punków dostępna w generatorze do wydania na umiejętności postaci." + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "Maksymalne punkty cech" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "Maksymalna liczba punktów cech do wydania w generatorze postaci." + +#: src/options.cpp +msgid "Skill training speed" +msgstr "Tempo nauki umiejętności" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "" +"Skaluje doświadczenie pozyskane z praktykowania umiejętności i czytania " +"książek. 0.5 to połowa normy, 2.0 to podwójna norma, 0.0 wyłącza naukę " +"umiejętności z wyjątkiem treningów u NPC." + +#: src/options.cpp +msgid "Skill rust" +msgstr "Rdzewienie umiejętności" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" +" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" +"Ustawienie poziomu zapominania umiejętności. Standard: Oryginalny Cataclysm," +" Ograniczone: ograniczone na 2 poziomie umiejętności. Inteligencja: zależne " +"od inteligencji. Ogranicz Inteligencją: zależne od inteligencji i " +"ograniczone. Wyłączone: brak." + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "Standard" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "Ograniczone" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "Inteligencja" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "Ogranicz Inteligencją" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "Wyłączone" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "Eksperymentalne pole widzenia 3D" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in" +" z-level mode, the vision will extend beyond current z-level. Currently " +"very bugged!" +msgstr "" +"Wyłączone: Wzrok jest ograniczony do obecnego z-poziomu. Włączone: jeśli " +"świat jest w trybie z-poziomów, wzrok rozszerzy się poza obecny z-poziom. " +"Obecnie mocno zbugowane." + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "" + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "Eksperymentalna konwersja nazw ścieżek plików" + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" +" Windows users." +msgstr "" +"Zaznaczone: ścieżki plików będą przepisywane z systemowych na UTF-8 przy " +"czytaniu i wstecz przy zapisywaniu. Głównie dla użytkowników CJK Windows." + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "Szybki zapis gdy appka traci fokus." @@ -265731,21 +259853,6 @@ msgstr "INT" msgid "PER" msgstr "PER" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "B" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "Ł" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "I" - #: src/panels.cpp msgid "DEAF" msgstr "GŁUCH" @@ -265864,11 +259971,11 @@ msgstr "Styl:" #: src/panels.cpp msgid "Hunger:" -msgstr "" +msgstr "Głód:" #: src/panels.cpp msgid "Thirst:" -msgstr "" +msgstr "Pragnienie:" #: src/panels.cpp msgid "Heat :" @@ -266079,8 +260186,8 @@ msgstr "Założ %s" #: src/pickup.cpp #, c-format -msgid "Spill %s, then pick up %s" -msgstr "Wylej %s, po czym weź %s" +msgid "Spill contents of %s, then pick up %s" +msgstr "" #: src/pickup.cpp msgid "" @@ -266115,10 +260222,6 @@ msgstr "Nie możesz podnieść płynu!" msgid "You're overburdened!" msgstr "Jesteś przeciążony!" -#: src/pickup.cpp -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" @@ -266441,36 +260544,6 @@ msgstr "" msgid "Your power armor disengages." msgstr "Twój pancerz wspomagany rozłącza się." -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "Wypić %s prosto z rąk?" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "Nie możesz zjeść swojego %s." - -#: src/player.cpp -#, c-format -msgid "You are now wielding an empty %s." -msgstr "Spawasz teraz pusty %s." - -#: src/player.cpp -#, c-format -msgid "You are now wearing an empty %s." -msgstr "Spawasz teraz pusty %s." - -#: src/player.cpp -#, c-format -msgid "You drop the empty %s." -msgstr "Upuszczasz pusty %s." - -#: src/player.cpp -#, c-format -msgid "%c - %d empty %s" -msgstr "%c - %d pusty %s" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -266598,6 +260671,10 @@ msgstr "Ten %s nie ma uszkodzeń do przełączenia." msgid "The %s doesn't have any faults to mend." msgstr "Ten %s nie ma uszkodzeń do naprawienia." +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "" + #: src/player.cpp #, c-format msgid "" @@ -266687,11 +260764,6 @@ msgstr "" msgid " can't take that item off." msgstr "" -#: src/player.cpp -#, c-format -msgid "No room in inventory for your %s. Drop it?" -msgstr "Nie masz miejsca w ekwipunku na %s. Upuścisz?" - #: src/player.cpp #, c-format msgid "You take off your %s." @@ -266901,6 +260973,10 @@ msgstr "Czujesz że zadania w %s tego poziomu stają się trywialne." msgid "This task is too simple to train your %s beyond %d." msgstr "Ta czynności jest zbyt prosta by trenować %s powyżej %d." +#: src/player.cpp +msgid " (empty)" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "Trzymać co?" @@ -266963,7 +261039,7 @@ msgstr "" #: src/player_display.cpp #, c-format -msgid "Running movement point cost: %+d\n" +msgid "Movement point cost: %+d\n" msgstr "" #: src/player_display.cpp @@ -267042,6 +261118,10 @@ msgstr "" msgid "Reduced gun aim speed: %.1f" msgstr "" +#: src/player_display.cpp +msgid "Weight:" +msgstr "Waga: " + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your" @@ -267063,8 +261143,8 @@ msgstr "Noszony ciężar (%s): %.1f" #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" -msgstr "Obrażenia wręcz: %.1f" +msgid "Bash damage: %.1f" +msgstr "" #: src/player_display.cpp msgid "" @@ -267132,10 +261212,6 @@ msgstr "" msgid "Aiming penalty: %+d" msgstr "" -#: src/player_display.cpp -msgid "Weight:" -msgstr "Waga: " - #: src/player_display.cpp msgid "" "Your weight is a general indicator of how much fat your body has stored up, " @@ -267145,12 +261221,26 @@ msgstr "" #: src/player_display.cpp msgid "Your height. Simply how tall you are." -msgstr "" +msgstr "Twój wzrost. Po prostu jak wysoki jesteś." #: src/player_display.cpp msgid "This is how old you are." msgstr "" +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" +msgstr "" + #: src/player_display.cpp #, c-format msgid "" @@ -267182,7 +261272,7 @@ msgstr "Ból -%2d%%" #, c-format msgctxt "speed penalty" msgid "Thirst -%2d%%" -msgstr "" +msgstr "Pragnienie -%2d%%" #: src/player_display.cpp msgid "Underfed" @@ -267220,6 +261310,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr "" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "" + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "" + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -267301,18 +261412,6 @@ msgstr "" "Słońce strasznie cię podrażniło.\n" "Siła -2; Zręczność -2; Inteligencja -2; Percepcja -2" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr "" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr "" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "Przewiń do kolejnej kategorii" @@ -267322,12 +261421,7 @@ msgid "Cycle to previous category" msgstr "Przewiń do poprzedniej kategorii" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "Przełącz trenowanie umiejętności" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" +msgid "Toggle skill training / Upgrade stat" msgstr "" #: src/player_hardcoded_effects.cpp @@ -267649,10 +261743,6 @@ msgstr "" "Czujesz się bardzo chory, jakbyś był otruty, ale potrzebujesz więcej. Dużo " "więcej." -#: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." -msgstr "Otaczają cię światła i teleportujesz się." - #: src/player_hardcoded_effects.cpp msgid "You are beset with a vision of a prowling beast." msgstr "" @@ -267661,6 +261751,10 @@ msgstr "" msgid "Your surroundings are permeated with a foul scent." msgstr "" +#: src/player_hardcoded_effects.cpp +msgid "Glowing lights surround you, and you teleport." +msgstr "Otaczają cię światła i teleportujesz się." + #: src/player_hardcoded_effects.cpp msgid "You pass out." msgstr "Tracisz przytomność." @@ -267796,6 +261890,10 @@ msgstr "Twoja rana %s ma się lepiej!" msgid "You succumb to the infection." msgstr "Poddajesz się infekcji." +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "" + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "Jesteś dobrze wypoczęty." @@ -267832,10 +261930,6 @@ msgstr "Przewracasz się z prawa na lewo z gorąca." msgid "It's too hot to sleep." msgstr "Jest za gorąco na sen." -#: src/player_hardcoded_effects.cpp -msgid "It looks like you woke up just before your alarm." -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." msgstr "Twój wewnętrzny zegar się wzbudził, a nie przespałeś ani chwili." @@ -268008,29 +262102,174 @@ msgid "You feel a surge of euphoria as flames roar out of the %s!" msgstr "Czujesz przypływ euforii gdy płomienie spowijają %s!" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "High" -msgstr "Wysoki" +msgid "Steadiness" +msgstr "Stabilność" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Medium" -msgstr "Średni" +msgid "Moves" +msgstr "" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Low" -msgstr "Niski" +msgid "Symbols:" +msgstr "" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "None" -msgstr "Brak" +msgid "" +" Great - Normal - " +"Graze - Moves" +msgstr "" + +#: src/ranged.cpp +msgid "Current" +msgstr "" #: src/ranged.cpp #, c-format -msgid "Recoil: %s" -msgstr "Odrzut: %s" +msgid "%s %s:" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "" +"[%s] %s %s: Moves to fire: %d" +msgstr "" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Great" +msgstr "Wspaniali" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Normal" +msgstr "Normalny" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Graze" +msgstr "Draśnięcie" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Hit" +msgstr "Trafienie" + +#: src/ranged.cpp +msgid "Regular" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to aim and fire." +msgstr "[%c] by wymierzyć i strzelić." + +#: src/ranged.cpp +msgid "Careful" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to take careful aim and fire." +msgstr "[%c] by dokładnie wymierzyć i strzelić." + +#: src/ranged.cpp +msgid "Precise" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to take precise aim and fire." +msgstr "[%c] by precyzyjnie wymierzyć i strzelić." + +#: src/ranged.cpp +msgid "Thunk!" +msgstr "Thunk!" + +#: src/ranged.cpp +msgid "tz-CRACKck!" +msgstr "tz-KRAKk!" + +#: src/ranged.cpp +msgid "Fwoosh!" +msgstr "Fuszzzz!" + +#: src/ranged.cpp +msgid "whizz!" +msgstr "whizz!" + +#: src/ranged.cpp +msgid "thonk!" +msgstr "thonk!" + +#: src/ranged.cpp +msgid "Fzzt!" +msgstr "Fzzt!" + +#: src/ranged.cpp +msgid "Pew!" +msgstr "Pew!" + +#: src/ranged.cpp +msgid "Tsewww!" +msgstr "Tsewww!" + +#: src/ranged.cpp +msgid "Kra-kow!" +msgstr "Kra-kow!" + +#: src/ranged.cpp +msgid "Bzzt!" +msgstr "Bzzt!" + +#: src/ranged.cpp +msgid "Bzap!" +msgstr "Bzap!" + +#: src/ranged.cpp +msgid "Bzaapp!" +msgstr "Bzaapp!" + +#: src/ranged.cpp +msgid "Kra-koom!" +msgstr "Kra-koom!" + +#: src/ranged.cpp +msgid "Brrrip!" +msgstr "Brrrip!" + +#: src/ranged.cpp +msgid "plink!" +msgstr "plink!" + +#: src/ranged.cpp +msgid "Brrrap!" +msgstr "Brrrap!" + +#: src/ranged.cpp +msgid "P-p-p-pow!" +msgstr "P-p-p-pow!" + +#: src/ranged.cpp +msgid "blam!" +msgstr "blam!" + +#: src/ranged.cpp +msgid "Kaboom!" +msgstr "Kaboom!!" + +#: src/ranged.cpp +msgid "kerblam!" +msgstr "kerblam!" + +#: src/ranged.cpp +#, c-format +msgid "You don't have enough %s to cast this spell" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "Really attack %s?" +msgstr "Na pewno zaatakować %s?" #: src/ranged.cpp #, c-format @@ -268051,14 +262290,6 @@ msgstr "Ślepe rzucanie %s" msgid "Set target" msgstr "Ustaw cel" -#: src/ranged.cpp -msgid "< [?] show help >" -msgstr "< [?] pokaż pomoc >" - -#: src/ranged.cpp -msgid "Move cursor to target with directional keys" -msgstr "Przesuń kursor na cel strzałkami" - #: src/ranged.cpp msgctxt "[Hotkey] to throw" msgid "to throw" @@ -268080,156 +262311,92 @@ msgid "to fire" msgstr "" #: src/ranged.cpp -#, c-format -msgid "[%s] Cycle targets;" +msgid "[?] show all controls" msgstr "" #: src/ranged.cpp -#, c-format -msgid "[%c] target self; [%c] toggle snap-to-target" -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)" +msgid "[?] show help" msgstr "" #: src/ranged.cpp -#, c-format -msgid "%sto aim and fire" +msgid "Shift view with directional keys" msgstr "" #: src/ranged.cpp -#, c-format -msgid "[%c] to switch aiming modes." -msgstr "[%c] by zmienić tryb celowania." - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch firing modes." -msgstr "[%c] by zmienić tryb strzelania. " - -#: src/ranged.cpp -#, c-format -msgid "[%c] to reload/switch ammo." -msgstr "[%c] by przeładować/zmienić amunicję." - -#: src/ranged.cpp -msgid "RMB: Fire" +msgid "Move cursor with directional keys" msgstr "" #: src/ranged.cpp -msgid "Steadiness" -msgstr "Stabilność" - -#: src/ranged.cpp -msgid "Symbols:" +msgid "Mouse: LMB: Target, Wheel: Cycle," msgstr "" #: src/ranged.cpp -msgid "Current" +msgid "RMB: Fire" msgstr "" #: src/ranged.cpp #, c-format -msgid "%s %s:" -msgstr "" - -#: src/ranged.cpp -msgid "Moves" +msgid "[%s] Cycle targets;" msgstr "" #: src/ranged.cpp #, c-format -msgid "" -"[%s] %s %s: Moves to fire: %d" +msgid "[%c] %s." msgstr "" -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Great" -msgstr "Wspaniali" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Normal" -msgstr "Normalny" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Graze" -msgstr "Draśnięcie" - #: src/ranged.cpp #, c-format -msgid "Turrets in range: %d" -msgstr "Wieżyczki w zasięgu: %d" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Hit" -msgstr "Trafienie" +msgid "[%c] target self; [%c] toggle snap-to-target" +msgstr "[%c] wyceluj w siebie; [%c] przełącz przyciąganie do celu" #: src/ranged.cpp -msgid "Regular" +msgid "to aim and fire." msgstr "" #: src/ranged.cpp #, c-format -msgid "[%c] to aim and fire." -msgstr "[%c] by wymierzyć i strzelić." - -#: src/ranged.cpp -msgid "Careful" +msgid "[%c] to steady your aim. (10 moves)" msgstr "" #: src/ranged.cpp #, c-format -msgid "[%c] to take careful aim and fire." -msgstr "[%c] by dokładnie wymierzyć i strzelić." - -#: src/ranged.cpp -msgid "Precise" -msgstr "" +msgid "[%c] to switch aiming modes." +msgstr "[%c] by zmienić tryb celowania." #: src/ranged.cpp #, c-format -msgid "[%c] to take precise aim and fire." -msgstr "[%c] by precyzyjnie wymierzyć i strzelić." - -#: src/ranged.cpp -msgid "turrets" -msgstr "" +msgid "[%c] to switch firing modes." +msgstr "[%c] by zmienić tryb strzelania. " #: src/ranged.cpp #, c-format -msgid "Really attack %s?" -msgstr "Na pewno zaatakować %s?" +msgid "[%c] to reload/switch ammo." +msgstr "[%c] by przeładować/zmienić amunicję." #: src/ranged.cpp #, c-format -msgid "Range: %s Elevation: %d" +msgctxt "[Hotkey] Show/Hide turrets' lines of fire" +msgid "[%c] %s lines of fire" msgstr "" #: src/ranged.cpp #, c-format -msgid "Targets: %d" +msgid "Elevation: %d" msgstr "" #: src/ranged.cpp #, c-format -msgid "Range: %s Elevation: %d Targets: %d" +msgid "Targets: %d" msgstr "" #: src/ranged.cpp #, c-format -msgid "Firing mode: %s %s (%d)" -msgstr "Tryb strzelania: %s %s (%d)" +msgid "Firing mode: %s%s (%d)" +msgstr "" #: src/ranged.cpp -#, c-format -msgid "Firing mode: %s (%d)" -msgstr "Tryb strzelania: %s (%d)" +msgid "OUT OF AMMO" +msgstr "" #: src/ranged.cpp #, c-format @@ -268242,43 +262409,48 @@ msgid "Ammo: %s (%d/%d)" msgstr "" #: src/ranged.cpp -#, c-format -msgid "%s Delay: %i" -msgstr "%s Opóźnienie: %i" +msgctxt "amount of backward momentum" +msgid "High" +msgstr "Wysoki" #: src/ranged.cpp -#, c-format -msgid "You don't have enough %s to cast this spell" -msgstr "" +msgctxt "amount of backward momentum" +msgid "Medium" +msgstr "Średni" #: src/ranged.cpp -#, c-format -msgid "Casting: %s (Level %u)" -msgstr "" +msgctxt "amount of backward momentum" +msgid "Low" +msgstr "Niski" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "None" +msgstr "Brak" #: src/ranged.cpp #, c-format -msgid "Cost: %s %s" -msgstr "" +msgid "Recoil: %s" +msgstr "Odrzut: %s" #: src/ranged.cpp #, c-format -msgid "Cost: %s %s (Current: %s)" +msgid "Casting: %s (Level %u)" msgstr "" #: src/ranged.cpp #, c-format -msgid "0.0 % Failure Chance" +msgid "Cost: %s %s" msgstr "" #: src/ranged.cpp #, c-format -msgid "Range: %d/%d Elevation: %d Targets: %d" +msgid "Cost: %s %s (Current: %s)" msgstr "" #: src/ranged.cpp #, c-format -msgid "Range: %d Elevation: %d Targets: %d" +msgid "0.0 % Failure Chance" msgstr "" #: src/ranged.cpp @@ -268306,84 +262478,14 @@ msgid "Damage: %s" msgstr "" #: src/ranged.cpp -msgid "Thunk!" -msgstr "Thunk!" - -#: src/ranged.cpp -msgid "tz-CRACKck!" -msgstr "tz-KRAKk!" - -#: src/ranged.cpp -msgid "Fwoosh!" -msgstr "Fuszzzz!" - -#: src/ranged.cpp -msgid "whizz!" -msgstr "whizz!" - -#: src/ranged.cpp -msgid "thonk!" -msgstr "thonk!" - -#: src/ranged.cpp -msgid "Fzzt!" -msgstr "Fzzt!" - -#: src/ranged.cpp -msgid "Pew!" -msgstr "Pew!" - -#: src/ranged.cpp -msgid "Tsewww!" -msgstr "Tsewww!" - -#: src/ranged.cpp -msgid "Kra-kow!" -msgstr "Kra-kow!" - -#: src/ranged.cpp -msgid "Bzzt!" -msgstr "Bzzt!" - -#: src/ranged.cpp -msgid "Bzap!" -msgstr "Bzap!" - -#: src/ranged.cpp -msgid "Bzaapp!" -msgstr "Bzaapp!" - -#: src/ranged.cpp -msgid "Kra-koom!" -msgstr "Kra-koom!" - -#: src/ranged.cpp -msgid "Brrrip!" -msgstr "Brrrip!" - -#: src/ranged.cpp -msgid "plink!" -msgstr "plink!" - -#: src/ranged.cpp -msgid "Brrrap!" -msgstr "Brrrap!" - -#: src/ranged.cpp -msgid "P-p-p-pow!" -msgstr "P-p-p-pow!" - -#: src/ranged.cpp -msgid "blam!" -msgstr "blam!" - -#: src/ranged.cpp -msgid "Kaboom!" -msgstr "Kaboom!!" +#, c-format +msgid "%s Delay: %i" +msgstr "%s Opóźnienie: %i" #: src/ranged.cpp -msgid "kerblam!" -msgstr "kerblam!" +#, c-format +msgid "Turrets in range: %d/%d" +msgstr "" #: src/recipe.cpp msgid "none" @@ -268643,13 +262745,35 @@ msgid "Limited" msgstr "Ograniczone" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" +msgid "achievements" +msgstr "" + +#: src/scores_ui.cpp +msgid "conducts" msgstr "" #: src/scores_ui.cpp +msgid "Conducts" +msgstr "" + +#: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "This game has no valid %s.\n" +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "" +"Note that only %s that existed when you started this game and still exist " +"now will appear here." msgstr "" #: src/scores_ui.cpp @@ -268666,6 +262790,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "" + #: src/scores_ui.cpp msgid "SCORES" msgstr "" @@ -269453,8 +263581,8 @@ msgid "A blade swings out and hacks your torso!" msgstr "Ostrze przeszywa powietrze i tnie twoją pierś!" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" -msgstr "Ostrze przeszywa powietrze i tnie pierś !" +msgid "A blade swings out and hacks 's torso!" +msgstr "" #: src/trapfunc.cpp msgid "Snap!" @@ -269881,6 +264009,14 @@ msgstr "" msgid "Only one %1$s powered engine can be installed." msgstr "Może zostać zamontowany tylko jeden silnik napędzany %1$s." +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This part cannot be installed.\n" +msgstr "" + #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." msgstr "Lejki muszą zostać zainstalowane nad zbiornikiem." @@ -270032,6 +264168,12 @@ msgstr "" msgid "You can't install parts while driving." msgstr "Nie możesz instalować części w trakcie jazdy." +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy." +" Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "" @@ -270057,8 +264199,22 @@ msgid "Choose a part here to repair:" msgstr "Wybierz część do zreperowania w tym miejscu:" #: src/veh_interact.cpp -msgid "This part cannot be repaired" -msgstr "Ta cześć nie może być naprawiona" +msgid "This part cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to mend…" @@ -270161,6 +264317,10 @@ msgstr "'{' by przewinąć w górę" msgid "'}' to scroll down" msgstr "'}' by przewinąć w dół" +#: src/veh_interact.cpp +msgid "This part cannot be uninstalled.\n" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "" @@ -270172,33 +264332,18 @@ msgstr "" #: src/veh_interact.cpp #, c-format msgid "" -"Removing the %1$s will yield:\n" +"Removing the %1$s may yield:\n" "> %2$s\n" msgstr "" -" Usunięcie %1$s da w rezultacie: \n" -"> %2$s\n" - -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength -#: src/veh_interact.cpp -#, c-format -msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength ( " -"assisted ) %5$i" -msgstr "" -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength #: src/veh_interact.cpp #, c-format msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength " -"%5$i" +"Removing the %1$s will yield:\n" +"> %2$s\n" msgstr "" -"> %1$s1 narzędzie z %2$s %3$i LUB %4$ssiły " -"%5$i" +" Usunięcie %1$s da w rezultacie: \n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is pre-translated reason @@ -270223,6 +264368,12 @@ msgstr "Nie możesz usunąć części dopóki coś jest do niej zamontowane." msgid "Better not remove something while driving." msgstr "Lepiej niczego nie usuwać w czasie jazdy." +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "Ten pojazd nie ma już płynnego paliwa do spuszczenia." @@ -270676,6 +264827,11 @@ msgstr "Nie spełniasz wymogów by wymontować %s." msgid "You remove the broken %1$s from the %2$s." msgstr "Wymontowujesz zepsute %1$s z %2$s." +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -271384,10 +265540,6 @@ msgstr "Nie znajdujesz kluczyków w %s." msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "Nie znajdujesz kluczyków w %s. Spróbujesz odpalić na krótkie spięcie?" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "Krótkie spięcie" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -271905,6 +266057,11 @@ msgstr "Wyłącz zmywarkę" msgid "Activate the dishwasher (1.5 hours)" msgstr "Włącz zmywarkę (1,5 godziny)" +#: src/vehicle_use.cpp +#, c-format +msgid "Unload %s" +msgstr "Rozładuj %s" + #: src/vehicle_use.cpp msgid "Peek through the closed curtains" msgstr "Zerknij przez zasłonięte zasłony" @@ -272330,11 +266487,6 @@ msgstr "(oflagowane)" msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" msgstr "" -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "%.*s" - #: src/wish.cpp msgid "How many?" msgstr "How many?" diff --git a/lang/po/ru.po b/lang/po/ru.po index 53e7f78cae59c..04f9ab766410a 100644 --- a/lang/po/ru.po +++ b/lang/po/ru.po @@ -1,6 +1,7 @@ # # Translators: # Артем Анисимов , 2018 +# Tymur Valiiev , 2018 # Daniil Bolotov, 2018 # Daniel , 2018 # Kio Ned , 2018 @@ -19,12 +20,13 @@ # Yury "natovan" Natovich , 2018 # Zander Thompson , 2018 # Violent Tormentor , 2018 -# Tymur Valiiev , 2019 +# Oleksii Filonenko , 2018 # Максим <2.6makc@gmail.com>, 2019 # Sergey Kolotushkin , 2019 # 937a53dc1cf06a77002f0793318e425d, 2019 # Stepan Kashuba , 2019 # muWander , 2019 +# Ivan Vlasov , 2019 # Unknown Unknown , 2019 # Валентин Литовченко , 2019 # Darketed , 2019 @@ -36,40 +38,38 @@ # Fran faов , 2019 # Александр , 2019 # Artem Baranov , 2019 -# Chor Hung , 2019 -# Oleksii Filonenko , 2019 +# Jose , 2019 # Darkon Rabbit, 2019 # Anton Dumov , 2019 # Aquilo, 2019 # Anon Anon , 2019 # Alexandr Epaneshnikov , 2019 -# Victor_U , 2019 # Brett Dong , 2019 # TechCat , 2019 # Макс , 2020 -# Jose , 2020 # Woratiklis, 2020 -# korick3 korick3 , 2020 -# WX , 2020 # Zhar the Mad , 2020 # Artem Kirienko , 2020 -# Alexey Mostovoy , 2020 -# Midas , 2020 -# Timofey Kostenko , 2020 # 8street, 2020 -# Михаил Семенчин , 2020 -# Arex , 2020 # Vlasov Vitaly , 2020 -# Антон Бурмистров <22.valiant@gmail.com>, 2020 -# Ivan Vlasov , 2020 # Ivan Ivanov, 2020 +# Midas , 2020 +# Михаил Семенчин , 2020 +# Timofey Kostenko , 2020 +# 000000 0000000 , 2020 +# Victor_U , 2020 +# Alexey Mostovoy , 2020 +# korick3 korick3 , 2020 +# WX , 2020 +# Антон Бурмистров <22.valiant@gmail.com>, 2020 +# Arex , 2020 # CountAlex, 2020 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-01 12:24+0800\n" +"POT-Creation-Date: 2020-06-05 08:37+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: CountAlex, 2020\n" "Language-Team: Russian (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ru/)\n" @@ -137,6 +137,62 @@ msgstr "" "Свободный заряд батареек. Его можно поместить в перезаряжаемые батарейки, но" " достать обратно не выйдет." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "бутан" +msgstr[1] "бутан" +msgstr[2] "бутан" +msgstr[3] "бутан" + +#. ~ Description for {'str_sp': 'butane'} +#: lang/json/AMMO_from_json.py +msgid "A common flammable liquid used in lighters." +msgstr "Горючая жидкость, обычно использующаяся в зажигалках." + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "пиротехническая смесь" +msgstr[1] "пиротехническая смесь" +msgstr[2] "пиротехническая смесь" +msgstr[3] "пиротехническая смесь" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "Пиротехническая смесь, используемая в сигнальных зарядах." + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" +msgstr[0] "спичка" +msgstr[1] "спички" +msgstr[2] "спичек" +msgstr[3] "спички" + +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "" +"Маленькая деревянная палочка с красным наконечником. Проведите по боку " +"коробка спичек, чтобы зажечью" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "кислород" +msgstr[1] "кислород" +msgstr[2] "кислород" +msgstr[3] "кислород" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "Медицинский кислород под давлением." + #: lang/json/AMMO_from_json.py msgid "aluminum foil" msgid_plural "aluminum foils" @@ -163,11 +219,9 @@ msgstr[2] "центов" msgstr[3] "центы" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "ЕСЛИ ВЫ ВИДИТЕ ЭТО, ЗНАЧИТ ЭТО БАГ." +#: lang/json/AMMO_from_json.py +msgid "A unit of currency equivalent to 0.01 US dollars." +msgstr "Единица валюты, эквивалентная 0,01 доллара США." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -354,9 +408,8 @@ msgstr[3] "галька" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." -msgstr "" -"Горсть гальки, используется в качестве боеприпасов для пращи или рогатки." +msgid "A handful of pebbles, useful as ammunition for slingshots." +msgstr "Горстка гальки, используется в качестве боеприпасов для рогатки." #: lang/json/AMMO_from_json.py msgid "clay pellet" @@ -368,12 +421,10 @@ msgstr[3] "глиняные пульки" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or " -"slingshots." +msgid "A handful of round projectiles made of clay, useful for slingshots." msgstr "" -"Горсть глиняных шариков, которые можно использовать в качестве боеприпасов " -"для пращи или рогатки." +"Горстка глиняных шариков, которые можно использовать в качестве боеприпасов " +"для рогатки." #: lang/json/AMMO_from_json.py msgid "marble" @@ -385,11 +436,9 @@ msgstr[3] "шарики" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." +msgid "A handful of glass marbles, useful as ammunition for slingshots." msgstr "" -"Горсть стеклянных шариков, которые можно использовать в качестве боеприпасов" -" для пращи или рогатки." +"Горстка стеклянных шариков, используется в качестве боеприпасов для рогатки." #: lang/json/AMMO_from_json.py msgid "bearings" @@ -401,10 +450,9 @@ msgstr[3] "подшипники" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." +msgid "A box of ball bearings, useful as ammunition for slingshots." msgstr "" -"Коробка шарикоподшипников, используются в качестве боеприпасов для пращи или" -" рогатки." +"Коробка шарикоподшипников, используются в качестве боеприпасов для рогатки." #: lang/json/AMMO_from_json.py msgid "BB" @@ -416,7 +464,9 @@ msgstr[3] "стальные пульки" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." msgstr "" "Коробка с маленькими стальными шариками (4,5 мм) для пневматики. Они " "практически не наносят повреждений." @@ -755,6 +805,12 @@ msgstr[1] "абстрактных боеприпаса" msgstr[2] "абстрактных боеприпасов" msgstr[3] "абстрактные боеприпасы" +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "ЕСЛИ ВЫ ВИДИТЕ ЭТО, ЗНАЧИТ ЭТО БАГ." + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" msgid_plural "charcoal" @@ -809,6 +865,23 @@ msgstr "" "Чёрные куски горючего материала на основе углерода, обычно применяемые при " "готовке и для обогрева." +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "сальбутамол" +msgstr[1] "сальбутамол" +msgstr[2] "сальбутамол" +msgstr[3] "сальбутамол" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "" +"Бронхолитическое средство, расслабляющее мышцы дыхательных путей и " +"увеличивающее приток воздуха к легким." + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -931,14 +1004,6 @@ msgstr[3] "наживки" msgid "A bait used in traps to lure fish." msgstr "Приманка, используется в ловушках для рыбы." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "кислород" -msgstr[1] "кислород" -msgstr[2] "кислород" -msgstr[3] "кислород" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -4044,11 +4109,11 @@ msgstr[3] "патроны .45 ACP ОП" #: lang/json/AMMO_from_json.py msgid "" ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, " -"the .45 ACP round has been common for almost 150 years." +"the .45 ACP round has been common for over a century." msgstr "" "Патроны калибра .45 ACP с 230-грановой оболочечной пулей. Известные " -"благодаря своей останавливающей силе, эти патроны используются уже почти 150" -" лет." +"благодаря своей останавливающей силе, эти патроны используются уже больше " +"столетия." #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -5326,11 +5391,10 @@ msgstr[3] "патроны 9x19mm ОП" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round" -" for military, law enforcement, and civilian use even after almost 150 " -"years." +" for military, law enforcement, and civilian use for over a century." msgstr "" "Оболочечные патроны калибра 9х19 мм с 115-грановой пулей. Популярны среди " -"военных, полицейских и гражданских пользователей уже почти 150 лет." +"военных, полицейских и гражданских пользователей уже больше столетия." #: lang/json/AMMO_from_json.py msgid "9x19mm +P" @@ -7615,11 +7679,11 @@ msgstr[3] "листы кевлара" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." msgstr "" -"Лист из кевларовой синтетической ткани, пригодный для изготовления " -"пуленепробиваемой брони. В этом виде, в отличие от жестких пластин, его " +"Лист из кевларовой синтетической ткани, пригодный для изготовления прочной, " +"стойкой к порезам одежды. В этом виде, в отличие от жестких пластин, его " "можно прошивать." #: lang/json/AMMO_from_json.py @@ -7938,14 +8002,6 @@ msgstr "" "Этот извивающийся нарост смолы и плоти, по-видимому, выделяет едкую " "жидкость. Возможно, вам лучше всего вставить его в биобластер." -#: lang/json/AMMO_from_json.py -msgid "plutonium cell" -msgid_plural "plutonium cells" -msgstr[0] "плутониевая ячейка" -msgstr[1] "плутониевые ячейки" -msgstr[2] "плутониевых ячеек" -msgstr[3] "плутониевые ячейки" - #: lang/json/AMMO_from_json.py msgid "titanium" msgid_plural "titanium" @@ -8060,83 +8116,6 @@ msgstr "" "убойная, вдобавок не нужно беспокоиться, что шальной выстрел нанесёт урон " "окружению." -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N8" -msgid_plural "6.54x42mm 9N8" -msgstr[0] "патрон 6,54x42 мм 9Н8" -msgstr[1] "патрона 6,54x42 мм 9Н8" -msgstr[2] "патронов 6,54x42 мм 9Н8" -msgstr[3] "патроны 6,54x42 мм 9Н8" - -#. ~ Description for {'str_sp': '6.54x42mm 9N8'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 6.54x42mm cartridge, loaded with a 120 gr. FMJBT bullet. Inspired by the " -"improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " -"rifle cartridge for his new SVS-24 Assault Rifle." -msgstr "" -"Патрон 6,54х42 мм с 120-грановой пулей с цельнометаллической оболочкой, " -"имеющей задний конус. Вдохновлённый улучшенным британским калибром .280, " -"Александр Сарафанов лично разработал этот патрон для своей новой штурмовой " -"винтовки SVS-24." - -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N12" -msgid_plural "6.54x42mm 9N12" -msgstr[0] "патрон 6,54x42 мм 9Н12" -msgstr[1] "патрона 6,54x42 мм 9Н12" -msgstr[2] "патронов 6,54x42 мм 9Н12" -msgstr[3] "патроны 6,54x42 мм 9Н12" - -#. ~ Description for {'str_sp': '6.54x42mm 9N12'} -#: lang/json/AMMO_from_json.py -msgid "" -"The 6.54x42mm 9N12 has superior armor piercing capabilities thanks to its " -"tungsten carbide core. Tungsten carbide was used in anti-tank rounds of the" -" 20th and 21st century, whenever depleted uranium was unavailable or " -"undesirable." -msgstr "" -"Патрон 6,54x42 мм 9Н12 имеет превосходную бронебойность, благодаря " -"сердечнику из карбида вольфрама, который использовался в противотанковых " -"патронах 20-го и 21-го веков, когда обеднённый уран был недоступен или " -"нежелателен." - -#: lang/json/AMMO_from_json.py -msgid ".20 DREAD Pellet" -msgid_plural ".20 DREAD Pellets" -msgstr[0] "пуля .20 ТРЕПЕТ" -msgstr[1] "пули .20 ТРЕПЕТ" -msgstr[2] "пуль .20 ТРЕПЕТ" -msgstr[3] "пули .20 ТРЕПЕТ" - -#. ~ Description for {'str': '.20 DREAD Pellet'} -#: lang/json/AMMO_from_json.py -msgid "" -"These metal pellets are propelled with the help of electromagnets, therefore" -" they do not produce sound, flash or heat signature." -msgstr "" -"Эти металлические пули приводятся в движение с помощью электромагнитов, " -"поэтому они не оставляют звук, вспышку или тепловой след." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 6.54x42mm" -msgid_plural "reloaded 6.54x42mm" -msgstr[0] "переснаряжённый патрон 6,54x42 мм" -msgstr[1] "переснаряжённых патрона 6,54x42 мм" -msgstr[2] "переснаряжённых патронов 6,54x42 мм" -msgstr[3] "переснаряжённые патроны 6,54x42 мм" - -#. ~ Description for {'str_sp': 'reloaded 6.54x42mm'} -#: lang/json/AMMO_from_json.py -msgid "" -"Inspired by the improved .280, Alexander Sarafanov himself developed the " -"6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " -"been hand-reloaded." -msgstr "" -"Вдохновлённый улучшенным патроном .280, Александр Сарафанов лично разработал" -" патрон 6,54x42 мм для своей новой штурмовой винтовки SVS-24. Эти патроны " -"переснаряжены." - #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -9054,147 +9033,10 @@ msgstr[2] "базовая мощность маны" msgstr[3] "базовая мощность маны" #. ~ Description for mana core power -#. ~ Description for {'str_sp': 'vortex core'} #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." msgstr "Если вы это видите, то это баг." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "fire lance charge" -msgid_plural "fire lance charges" -msgstr[0] "заряд для «огненного копья»" -msgstr[1] "заряда для «огненного копья»" -msgstr[2] "зарядов для «огненного копья»" -msgstr[3] "заряды для «огненного копья»" - -#. ~ Description for fire lance charge -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm. Despite the " -"minimal range, it packs a punch." -msgstr "" -"Заряд пороха для простого огнестрельного оружия. Несмотря на минимальную " -"дальность, он в состоянии нанести урон." - -#: lang/json/AMMO_from_json.py -msgid "fire lance shot" -msgid_plural "fire lance shots" -msgstr[0] "дробь для «огненного копья»" -msgstr[1] "дробь для «огненного копья»" -msgstr[2] "дробь для «огненного копья»" -msgstr[3] "дробь для «огненного копья»" - -#. ~ Description for fire lance shot -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm, with small " -"pellets as shot. Despite the minimal range, it packs a punch." -msgstr "" -"Заряд пороха с маленькими шариками в роли дроби для простого огнестрельного " -"оружия. Несмотря на минимальную дальность, он в состоянии нанести урон." - -#: lang/json/AMMO_from_json.py -msgid "lead pellet" -msgid_plural "lead pellets" -msgstr[0] "свинцовая пулька" -msgstr[1] "свинцовые пульки" -msgstr[2] "свинцовых пулек" -msgstr[3] "свинцовые пульки" - -#. ~ Description for lead pellet -#: lang/json/AMMO_from_json.py -msgid "" -"Hefty round projectiles cast from lead, useful as ammunition for slings." -msgstr "" -"Тяжёлые свинцовые шарики, используются в качестве боеприпасов для пращи." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" -msgstr[0] "деревянный дротик" -msgstr[1] "деревянных дротика" -msgstr[2] "деревянных дротиков" -msgstr[3] "деревянные дротики" - -#: lang/json/AMMO_from_json.py -msgid "stone javelin" -msgid_plural "stone javelins" -msgstr[0] "каменная сулица" -msgstr[1] "каменные сулицы" -msgstr[2] "каменных сулиц" -msgstr[3] "каменные сулицы" - -#. ~ Description for stone javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A throwing spear with a stone spearhead. The grip area has also been carved" -" and covered for better grip." -msgstr "" -"Метательное копьё с каменным наконечником. Область хвата выполнена с " -"насечкой и обмоткой для более уверенного удержания копья." - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" -msgstr[0] "железная сулица" -msgstr[1] "железные сулицы" -msgstr[2] "железных сулиц" -msgstr[3] "железные сулицы" - -#: lang/json/AMMO_from_json.py -msgid "copper javelin" -msgid_plural "copper javelins" -msgstr[0] "медная сулица" -msgstr[1] "медные сулицы" -msgstr[2] "медных сулиц" -msgstr[3] "медные сулицы" - -#. ~ Description for copper javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A copper-tipped throwing spear. The grip area has also been carved and " -"covered for better grip." -msgstr "" -"Метательное копьё с медным наконечником. Область хвата выполнена с насечкой " -"и обмоткой для более уверенного удержания копья." - -#: lang/json/AMMO_from_json.py -msgid "40mm EMP grenade" -msgid_plural "40mm EMP grenades" -msgstr[0] "граната 40 мм (ЭМИ)" -msgstr[1] "гранаты 40 мм (ЭМИ)" -msgstr[2] "гранат 40 мм (ЭМИ)" -msgstr[3] "гранаты 40 мм (ЭМИ)" - -#. ~ Description for {'str': '40mm EMP grenade'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" -" capable of damaging robots and some equipment." -msgstr "" -"40-мм граната с ЭМИ-зарядом. Вызывает электромагнитный импульс, способный " -"нанести повреждения роботам и оборудованию." - -#: lang/json/AMMO_from_json.py -msgid "glowball" -msgid_plural "glowballs" -msgstr[0] "светящийся шарик" -msgstr[1] "светящихся шарики" -msgstr[2] "светящихся шариков" -msgstr[3] "светящиеся шарики" - -#. ~ Description for glowball -#: lang/json/AMMO_from_json.py -msgid "" -"A tube of small glowballs taken off the market due to hazardous chemicals. " -"They deal virtually no damage, but light up on impact. Useful for " -"illuminating an area without lighting up yourself in the process." -msgstr "" -"Трубка с маленькими светящимися шариками, изъятая из продажи из-за опасных " -"химических веществ. Они практически не наносят повреждений, но начинают " -"светиться при ударе. Полезно для освещения области без засвечивая себя в " -"процессе." - #: lang/json/AMMO_from_json.py msgid "TEST rock" msgid_plural "TEST rocks" @@ -9212,651 +9054,67 @@ msgstr[2] "ТЕСТОВЫХ маленьких металлических лис msgstr[3] "ТЕСТОВЫЕ маленькие металлические листы" #: lang/json/AMMO_from_json.py -msgid "TEST platinum bit" -msgid_plural "TEST platinum bits" -msgstr[0] "ТЕСТОВЫЙ кусочек платины" -msgstr[1] "ТЕСТОВЫХ кусочка платины" -msgstr[2] "ТЕСТОВЫХ кусочков платины" -msgstr[3] "ТЕСТОВЫе кусочки платины" +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" +msgstr[0] "тестовая деревянная стрела (широкий наконечник)" +msgstr[1] "тестовые деревянные стрелы (широкий наконечник)" +msgstr[2] "тестовых деревянных стрел (широкий наконечник)" +msgstr[3] "тестовые деревянные стрелы (широкий наконечник)" +#. ~ Description for {'str': 'test wooden broadhead arrow'} #: lang/json/AMMO_from_json.py -msgid "30x113mm HEDP" -msgid_plural "30x113mm HEDP" -msgstr[0] "снаряд 30x113 мм ФСДН" -msgstr[1] "снаряда 30x113 мм ФСДН" -msgstr[2] "снарядов 30x113 мм ФСДН" -msgstr[3] "снаряды 30x113 мм ФСДН" - -#. ~ Description for {'str_sp': '30x113mm HEDP'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " -"Used primarily against light armored vehicles." -msgstr "" -"30x113-мм фугасный снаряд двойного назначения для автоматической пушки. " -"Используется в основном против лёгкой бронетехники." +msgid "Test arrow" +msgstr "Стрела для отладки." #: lang/json/AMMO_from_json.py -msgid "30x113mm HEI" -msgid_plural "30x113mm HEI" -msgstr[0] "снаряд 30x113 мм ФЗС" -msgstr[1] "снаряда 30x113 мм ФЗС" -msgstr[2] "снарядов 30x113 мм ФЗС" -msgstr[3] "снаряды 30x113 мм ФЗС" - -#. ~ Description for {'str_sp': '30x113mm HEI'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round, high explosive incendiary. Designed for use " -"against unarmored vehicles and to suppress infantry." -msgstr "" -"30x113-мм фугасный зажигательный снаряд для автоматической пушки. " -"Предназначен для использования против небронированных транспортных средств и" -" подавления пехоты." +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" +msgstr[0] "Тестовый патрон 9мм" +msgstr[1] "Тестовых патрона 9мм" +msgstr[2] "Тестовых патронов 9мм" +msgstr[3] "Тестовые патроны 9мм" +#. ~ Description for {'str': 'Test 9mm ammo'} #: lang/json/AMMO_from_json.py -msgid "reloaded 30x113mm" -msgid_plural "reloaded 30x113mm" -msgstr[0] "переснаряжённый снаряд 30x113 мм" -msgstr[1] "переснаряжённых снаряда 30x113 мм" -msgstr[2] "переснаряжённых снарядов 30x113 мм" -msgstr[3] "переснаряжённые снаряды 30x113 мм" - -#. ~ Description for {'str_sp': '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 "" -"30x113-мм свинцовый снаряд для автоматической пушки с заменённым капсюлем. " -"Не столь эффективен, как заводской." - -#. ~ 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 "" -"120-мм кумулятивный противотанковый снаряд. Может испортить день кому " -"угодно." - -#: lang/json/AMMO_from_json.py -msgid "120mm APFSDS" -msgid_plural "120mm APFSDSs" -msgstr[0] "снаряд 120 мм ОБПС" -msgstr[1] "снаряда 120 мм ОБПС" -msgstr[2] "снарядов 120 мм ОБПС" -msgstr[3] "снаряды 120 мм ОБПС" - -#. ~ Description for 120mm APFSDS -#: lang/json/AMMO_from_json.py -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 "" -"120-мм оперённый бронебойный подкалиберный снаряд. Содержит обеднённый уран," -" чтобы при попадании точно испортить цели настроение." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 120mm shot" -msgid_plural "reloaded 120mm shots" -msgstr[0] "снаряд 120 мм (картечь, переснаряжённый)" -msgstr[1] "снаряда 120 мм (картечь, переснаряжённый)" -msgstr[2] "снарядов 120 мм (картечь, переснаряжённый)" -msgstr[3] "снаряды 120 мм (картечь, переснаряжённый)" - -#. ~ Description for reloaded 120mm shot -#: lang/json/AMMO_from_json.py -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 "" -"120-мм снаряд с новым электрическим капсюлем и большим количеством картечи. " -"Почти не отличается от более не производимых картечных снарядов, но более " -"низкого качества." - -#: lang/json/AMMO_from_json.py -msgid "makeshift 120mm slug" -msgid_plural "makeshift 120mm slugs" -msgstr[0] "снаряд 120 мм (кустарный)" -msgstr[1] "снаряда 120 мм (кустарный)" -msgstr[2] "снарядов 120 мм (кустарный)" -msgstr[3] "снаряды 120 мм (кустарный)" - -#. ~ 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 "" -"120-мм снаряд с новым электрическим капсюлем. Хоть и далеко не идеал, но " -"вполне хорошо бьет." - -#: lang/json/AMMO_from_json.py -msgid "155mm HEAT" -msgid_plural "155mm HEATs" -msgstr[0] "снаряд 155 мм (кумулятивный)" -msgstr[1] "снаряда 155 мм (кумулятивный)" -msgstr[2] "снарядов 155 мм (кумулятивный)" -msgstr[3] "снаряды 155 мм (кумулятивный)" - -#. ~ Description for 155mm HEAT -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Anti Tank round. More than enough firepower for " -"whatever you could think to point it at." -msgstr "" -"155-мм кумулятивный противотанковый снаряд. Мощи достаточно, чтобы пробить " -"всё, во что вы вам придет в голову прицелиться." - -#: lang/json/AMMO_from_json.py -msgid "155mm frag" -msgid_plural "155mm frags" -msgstr[0] "снаряд 155 мм (осколочный)" -msgstr[1] "снаряда 155 мм (осколочный)" -msgstr[2] "снарядов 155 мм (осколочный)" -msgstr[3] "снаряды 155 мм (осколочный)" - -#. ~ Description for 155mm frag -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Fragmentation round. Designed to give anything near " -"what you hit a really bad day." -msgstr "" -"155-мм осколочно-фугасный снаряд. Разработан чтобы прописать любому, кто " -"попадет под раздачу, пилюлю боли." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm shot" -msgid_plural "reloaded 155mm shots" -msgstr[0] "снаряд 155 мм (картечь, переснаряжённый)" -msgstr[1] "снаряда 155 мм (картечь, переснаряжённый)" -msgstr[2] "снарядов 155 мм (картечь, переснаряжённый)" -msgstr[3] "снаряды 155 мм (картечь, переснаряжённый)" - -#. ~ Description for reloaded 155mm shot -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm shell with a new electric primer installed, filled with a huge " -"amount of buckshot. Effectively turns a howitzer into a punt gun on " -"steroids." -msgstr "" -"155-мм снаряд с новым электрическим капсюлем и большим количеством картечи. " -"Фактически превращает гаубицу в крупнокалиберный дробовик на стероидах." - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm slug" -msgid_plural "reloaded 155mm slugs" -msgstr[0] "снаряд 155 мм (переснаряжённый)" -msgstr[1] "снаряда 155 мм (переснаряжённый)" -msgstr[2] "снарядов 155 мм (переснаряжённый)" -msgstr[3] "снаряды 155 мм (переснаряжённый)" - -#. ~ Description for reloaded 155mm slug -#: lang/json/AMMO_from_json.py -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 "" -"155-мм самодельный снаряд с новым электрическим капсюлем. Несмотря на " -"меньшую эффективность, любое попадание будет болезненнно." - -#: lang/json/AMMO_from_json.py -msgid "small electric primer" -msgid_plural "small electric primers" -msgstr[0] "малый электрический капсюль" -msgstr[1] "малых электрических капсюля" -msgstr[2] "малых электрических капсюлей" -msgstr[3] "малые электрические капсюли" - -#. ~ Description for small electric primer -#: lang/json/AMMO_from_json.py -msgid "Primer for an autocannon shell. Seems to use an electric ignition." -msgstr "" -"Капсюль для снаряда автоматической пушки. Похоже, использует электрическое " -"зажигание." - -#: lang/json/AMMO_from_json.py -msgid "large electric primer" -msgid_plural "large electric primers" -msgstr[0] "большой электрический капсюль" -msgstr[1] "больших электрических капсюля" -msgstr[2] "больших электрических капсюлей" -msgstr[3] "большие электрические капсюли" - -#. ~ Description for large electric primer -#: lang/json/AMMO_from_json.py -msgid "" -"Primer for a tank or artillery shell. Seems to use an electric ignition." -msgstr "" -"Капсюль для снаряда танка или артиллерийской установки. Похоже, использует " -"электрическое зажигание." - -#: lang/json/AMMO_from_json.py -msgid "liquified blob feed" -msgid_plural "liquified blob feed" -msgstr[0] "жидкий корм для сгустка" -msgstr[1] "жидкий корм для сгустка" -msgstr[2] "жидкий корм для сгустка" -msgstr[3] "жидкий корм для сгустка" - -#. ~ Description for {'str_sp': 'liquified blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"Liquified blob feed, useful for fueling certain blob based vehicle parts" -msgstr "" -"Жидкая питательная смесь для сгустков, содержит всё необходимое для " -"обеспечения питанием частей транспортного средства, сделанных из сгустков." - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "blob feed" -msgid_plural "blob feed" -msgstr[0] "корм для сгустка" -msgstr[1] "корм для сгустка" -msgstr[2] "корм для сгустка" -msgstr[3] "корм для сгустка" - -#. ~ Description for {'str_sp': 'blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"An amalgam of various types of organic material, contains everything the " -"blob needs to be healthy. You think…" -msgstr "" -"Эта смесь различных органических веществ содержит всё необходимое для " -"здоровья сгустка слизи. Вы надеетесь, что так…" - -#: lang/json/AMMO_from_json.py -msgid "IED" -msgid_plural "IEDs" -msgstr[0] "СВУ" -msgstr[1] "СВУ" -msgstr[2] "СВУ" -msgstr[3] "СВУ" - -#: lang/json/AMMO_from_json.py -msgid "blast canister" -msgid_plural "blast canisters" -msgstr[0] "разрывная боеголовка" -msgstr[1] "разрывные боеголовки" -msgstr[2] "разрывных боеголовок" -msgstr[3] "разрывные боеголовки" - -#. ~ Description for {'str': 'blast canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a substantial explosive payload." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, детонирующей при ударе. Несёт большой заряд " -"взрывчатого вещества." - -#: lang/json/AMMO_from_json.py -msgid "Big Bang canister" -msgid_plural "Big Bang canisters" -msgstr[0] "боеголовка «Большой Взрыв»" -msgstr[1] "боеголовки «Большой Взрыв»" -msgstr[2] "боеголовок «Большой Взрыв»" -msgstr[3] "боеголовки «Большой Взрыв»" - -#. ~ Description for {'str': 'Big Bang canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a VERY substantial explosive payload." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, детонирующей при ударе. Несёт ОЧЕНЬ большой " -"заряд взрывчатого вещества." - -#: lang/json/AMMO_from_json.py -msgid "fire canister" -msgid_plural "fire canisters" -msgstr[0] "зажигательная боеголовка" -msgstr[1] "зажигательные боеголовки" -msgstr[2] "зажигательных боеголовок" -msgstr[3] "зажигательные боеголовки" - -#. ~ Description for {'str': 'fire canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a small area with deadly flames." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, детонирующей при ударе. Стрельба ведётся из " -"специализированного устройства. Разработано для поражения небольшой области " -"смертельным пламенем." - -#: lang/json/AMMO_from_json.py -msgid "inferno canister" -msgid_plural "inferno canisters" -msgstr[0] "боеголовка «Инферно»" -msgstr[1] "боеголовки «Инферно»" -msgstr[2] "боеголовок «Инферно»" -msgstr[3] "боеголовки «Инферно»" - -#. ~ Description for {'str': 'inferno canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a large area with deadly flames." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, детонирующей при ударе. Стрельба ведётся из " -"специализированного устройства. Разработано для поражения большой области " -"смертельным пламенем." +msgid "Generic 9mm ammo based on JHP." +msgstr "Абстрактный 9мм ЭП боеприпас." #: lang/json/AMMO_from_json.py -msgid "fragmentation canister" -msgid_plural "fragmentation canisters" -msgstr[0] "осколочная боеголовка" -msgstr[1] "осколочные боеголовки" -msgstr[2] "осколочных боеголовок" -msgstr[3] "осколочные боеголовки" - -#. ~ Description for {'str': 'fragmentation canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to spray the immediate area with deadly shrapnel." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, детонирующей при ударе. Стрельба ведётся из " -"специализированного устройства. Разработано для поражения прилегающей зоны " -"смертельными осколками." +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" +msgstr[0] "Тестовый патрон .45" +msgstr[1] "Тестовых патрона .45" +msgstr[2] "Тестовых патронов .45" +msgstr[3] "Тестовые патроны .45" -#. ~ Description for {'str': 'modified mininuke'} +#. ~ Description for {'str': 'Test .45 ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device. Intended to be fired from a " -"specialized launcher, its case has been cut down and it has been rigged to " -"explode on impact. While it is now somewhat lighter than before, it can no " -"longer be triggered manually." -msgstr "" -"Тотальная модификация ядерной мини-бомбы. Целью модификации являлась " -"адаптация к метанию посредством специализированного устройства. Внешняя " -"оболочка удалена, добавлено устройство, инициирующее подрыв при ударе. Масса" -" меньше, но уже нельзя инициировать подрыв вручную." +msgid "Test ammo based on the .45 JHP." +msgstr "Тестовый боеприпас .45 ЭП ." -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "harpoon" -msgid_plural "harpoons" -msgstr[0] "гарпун" -msgstr[1] "гарпуна" -msgstr[2] "гарпунов" -msgstr[3] "гарпуны" - -#. ~ Description for {'str': 'harpoon'} #: lang/json/AMMO_from_json.py -msgid "" -"A large spear carved from wood. This was fashioned specifically to be fired" -" from a compatible weapon; thus unsuitable for melee combat." -msgstr "" -"Большое деревянное копьё. Оно предназначено для метания из определённого " -"типа оружия, поэтому непригодно для ближнего боя." +msgid "test gas" +msgid_plural "test gas" +msgstr[0] "тестовый газ" +msgstr[1] "тестовый газ" +msgstr[2] "тестовый газ" +msgstr[3] "тестовый газ" -#: lang/json/AMMO_from_json.py -msgid "IED rigged bolt" -msgid_plural "IED rigged bolts" -msgstr[0] "болт с СВУ " -msgstr[1] "болта с СВУ " -msgstr[2] "болтов с СВУ " -msgstr[3] "болты с СВУ " - -#: lang/json/AMMO_from_json.py -msgid "nova bolt" -msgid_plural "nova bolts" -msgstr[0] "нова-болт" -msgstr[1] "нова-болта" -msgstr[2] "нова-болтов" -msgstr[3] "нова-болты" - -#. ~ Description for {'str': 'nova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a substantial explosive payload." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, закреплённое на конце большого осадного " -"болта. Стрельба ведётся из специализированного устройства. Несёт мощный " -"заряд взрывчатого вещества." - -#: lang/json/AMMO_from_json.py -msgid "supernova bolt" -msgid_plural "supernova bolts" -msgstr[0] "сверхнова-болт" -msgstr[1] "сверхнова-болта" -msgstr[2] "сверхнова-болтов" -msgstr[3] "сверхнова-болты" - -#. ~ Description for {'str': 'supernova bolt'} +#. ~ Description for {'str_sp': 'test gas'} #: lang/json/AMMO_from_json.py msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a very substantial explosive payload." +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, закреплённое на конце большого осадного " -"болта. Стрельба ведётся из специализированного устройства. Несёт очень " -"мощный заряд взрывчатого вещества." +"Загадочная газообразная субстанция. Не вдыхать, только для тестирования!" #: lang/json/AMMO_from_json.py -msgid "searing bolt" -msgid_plural "searing bolts" -msgstr[0] "огненный болт" -msgstr[1] "огненных болта" -msgstr[2] "огненных болтов" -msgstr[3] "огненные болты" - -#. ~ Description for {'str': 'searing bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a small area with deadly flames." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, закреплённое на конце большого осадного " -"болта. Стрельба ведётся из специализированного устройства. Предназначено для" -" поражения небольшой области смертельным пламенем." - -#: lang/json/AMMO_from_json.py -msgid "napalm bolt" -msgid_plural "napalm bolts" -msgstr[0] "напалмовый болт" -msgstr[1] "напалмовых болта" -msgstr[2] "напалмовых болтов" -msgstr[3] "напалмовые болты" - -#. ~ Description for {'str': 'napalm bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a large area with deadly flames." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, закреплённое на конце большого осадного " -"болта. Стрельба ведётся из специализированного устройства. Предназначено для" -" поражения большой области смертельным пламенем." - -#: lang/json/AMMO_from_json.py -msgid "shatter bolt" -msgid_plural "shatter bolts" -msgstr[0] "осколочный болт" -msgstr[1] "осколочных болта" -msgstr[2] "осколочных болтов" -msgstr[3] "осколочные болты" - -#. ~ Description for {'str': 'shatter bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to spray the immediate area with deadly " -"shrapnel." -msgstr "" -"Самодельное взрывное устройство, состоящее из герметичной ёмкости, " -"заполненной поражающей смесью, закреплённое на конце большого осадного " -"болта. Стрельба ведётся из специализированного устройства. Предназначено для" -" обстреливания прилегающей зоны смертельными осколками." - -#: lang/json/AMMO_from_json.py -msgid "steel ballista bolt" -msgid_plural "steel ballista bolts" -msgstr[0] "стальной болт для баллисты" -msgstr[1] "стальных болта для баллисты" -msgstr[2] "стальных болтов для баллисты" -msgstr[3] "стальные болты для баллисты" - -#. ~ Description for {'str': 'steel ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A long shaft carved from wood ending in a tip of sharpened metal. It's " -"quite heavy, capable of dealing large amounts of damage, but isn't " -"particularly accurate. Stands a good chance of remaining intact once fired." -msgstr "" -"Длинное деревянное древко, с наконечником из заострённого металла. Оно " -"довольно тяжёлое и способно нанести большой урон, но не особо точное. Имеет " -"хороший шанс уцелеть после выстрела." - -#: lang/json/AMMO_from_json.py -msgid "nuclear bolt" -msgid_plural "nuclear bolts" -msgstr[0] "ядерный болт" -msgstr[1] "ядерных болта" -msgstr[2] "ядерных болтов" -msgstr[3] "ядерные болты" - -#. ~ Description for {'str': 'nuclear bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device affixed to the end of a large " -"ballista bolt. Its case has been cut down and it has been rigged to explode" -" on impact. It can no longer be triggered manually." -msgstr "" -"Тотально модифицированная ядерная мини-бомба, закреплённая на конце большого" -" осадного болта. Внешняя оболочка удалена, добавлено устройство, " -"инициирующее подрыв при ударе. Подрыв вручную больше невозможен." - -#: lang/json/AMMO_from_json.py -msgid "wood ballista bolt" -msgid_plural "wood ballista bolts" -msgstr[0] "деревянный болт для баллисты" -msgstr[1] "деревянных болта для баллисты" -msgstr[2] "деревянных болтов для баллисты" -msgstr[3] "деревянные болты для баллисты" - -#. ~ Description for {'str': 'wood ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A sharpened bolt carved from wood. It's fairly heavy, capable of dealing " -"large amounts of damage, but isn't particularly accurate. Stands a good " -"chance of remaining intact once fired." -msgstr "" -"Заострённый болт для баллисты, вырезанный из дерева. Он довольно тяжёл и " -"способен нанести большой урон, но не особо точен. Имеет хороший шанс уцелеть" -" после выстрела." - -#: lang/json/AMMO_from_json.py -msgid "lead ball" -msgid_plural "lead balls" -msgstr[0] "свинцовый шар" -msgstr[1] "свинцовых шара" -msgstr[2] "свинцовых шаров" -msgstr[3] "свинцовые шары" - -#. ~ Description for {'str': 'lead ball'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy lead ball about 8cm in diameter. Could pack quite a bit of a punch " -"if you had something to launch it." -msgstr "" -"Тяжёлый свинцовый шар примерно 8 см в диаметре. Может нанести довольно " -"сильный удар, если у вас есть чем метнуть его." - -#: lang/json/AMMO_from_json.py -msgid "serrated disc" -msgid_plural "serrated discs" -msgstr[0] "зазубренный диск" -msgstr[1] "зазубренных диска" -msgstr[2] "зазубренных дисков" -msgstr[3] "зазубренные диски" - -#. ~ Description for {'str': 'serrated disc'} -#: lang/json/AMMO_from_json.py -msgid "" -"A metal disc surrounded by serrated edges. It's as menacing as it sounds." -msgstr "" -"Металлический диск с зазубренными краями. Выглядит так же угрожающе, как и " -"звучит." - -#: lang/json/AMMO_from_json.py -msgid "metal fragment" -msgid_plural "metal fragments" -msgstr[0] "металлический осколок" -msgstr[1] "металлических осколка" -msgstr[2] "металлических осколков" -msgstr[3] "металлические осколки" - -#. ~ Description for {'str': 'metal fragment'} -#: lang/json/AMMO_from_json.py -msgid "Small slivers of metal. Can't see much use for them." -msgstr "Маленькие осколки металла. Непонятно, как их можно использовать." - -#: lang/json/AMMO_from_json.py -msgid "glittering carbon" -msgid_plural "glittering carbon" -msgstr[0] "блестящие фрагменты углерода" -msgstr[1] "блестящие фрагменты углерода" -msgstr[2] "блестящие фрагменты углерода" -msgstr[3] "блестящие фрагменты углерода" - -#. ~ Description for {'str_sp': 'glittering carbon'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of carbon are have been compressed into a crystalline " -"structure that is beginning to resemble diamonds." -msgstr "" -"Маленькие кусочки углерода, спрессованные в кристаллическую форму, " -"начинающую походить на алмаз." - -#: lang/json/AMMO_from_json.py -msgid "diamond fragments" -msgid_plural "diamond fragments" -msgstr[0] "осколки алмаза" -msgstr[1] "осколки алмаза" -msgstr[2] "осколки алмаза" -msgstr[3] "осколки алмаза" - -#. ~ Description for {'str_sp': 'diamond fragments'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of diamond are formed as a byproduct from the " -"crystallization process of a diamond matrix. While the substance usually " -"decays when separated from the catalyst; these fragments are small enough to" -" remain stable." -msgstr "" -"Небольшие алмазные осколки, образующиеся в качестве побочного продукта " -"процесса кристаллизации на алмазной матрице. После удаления катализатора эти" -" частицы обычно распадаются, так как слишком малы, чтобы оставаться " -"стабильными." - -#: lang/json/AMMO_from_json.py -msgid "vortex core" -msgid_plural "vortex core" -msgstr[0] "вихревое ядро" -msgstr[1] "вихревых ядра" -msgstr[2] "вихревых ядер" -msgstr[3] "вихревые ядра" +msgid "TEST platinum bit" +msgid_plural "TEST platinum bits" +msgstr[0] "ТЕСТОВЫЙ кусочек платины" +msgstr[1] "ТЕСТОВЫХ кусочка платины" +msgstr[2] "ТЕСТОВЫХ кусочков платины" +msgstr[3] "ТЕСТОВЫе кусочки платины" #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" @@ -10012,7 +9270,6 @@ msgstr[3] "МПС жилеты (пусто)" #. 'large grenade pouches'}. #. ~ Use action holster_msg for {'str': 'MBR vest (titanium)', 'str_pl': 'MBR #. vests (titanium)'}. -#. ~ Use action holster_msg for javelin bag. #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You stash your %s." @@ -10455,12 +9712,11 @@ msgstr[3] "многоцелевые пояса выживальщика" #. 'pairs of knee-high boots'}. #. ~ Use action holster_msg for {'str': 'pair of rollerblades', 'str_pl': #. 'pairs of rollerblades'}. -#. ~ Use action holster_msg for {'str': 'pair of rollerskates', 'str_pl': -#. 'pairs of rollerskates'}. -#. ~ Use action holster_msg for C.R.I.T web belt. +#. ~ Use action holster_msg for CRIT web belt. #. ~ Use action holster_msg for {'str': "technomancer's toolbelt"}. #. ~ Use action holster_msg for {'str': 'hollow cane'}. -#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/ARMOR_from_json.py lang/json/ARMOR_from_json.py +#: lang/json/GENERIC_from_json.py #, no-python-format msgid "You sheath your %s" msgstr "Вы убираете %s." @@ -10468,7 +9724,7 @@ msgstr "Вы убираете %s." #. ~ Use action holster_prompt for {'str': 'survivor utility belt'}. #. ~ Use action holster_prompt for {'str': 'survivor belt'}. #. ~ Use action holster_prompt for {'str': 'hiking backpack'}. -#. ~ Use action holster_prompt for C.R.I.T web belt. +#. ~ Use action holster_prompt for CRIT web belt. #. ~ Use action holster_prompt for {'str': "technomancer's toolbelt"}. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" @@ -10629,7 +9885,6 @@ msgstr[2] "сумок для дротиков" msgstr[3] "сумки для дротиков" #. ~ Use action holster_prompt for {'str': 'javelin bag'}. -#. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" msgstr "Убрать дротики" @@ -11006,6 +10261,24 @@ msgid "A pair of light leather arm guards, made for archery." msgstr "" "Пара лёгких кожаных накладок на руки для защиты во время стрельбы из лука." +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "пара порезостойких рукавов" +msgstr[1] "пары порезостойких рукавов" +msgstr[2] "пар порезостойких рукавов" +msgstr[3] "пары порезостойких рукавов" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': +#. 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "" +"Пара порезостойких рукавов с дырками под большие пальцы. Обычно используется" +" в качестве защитного снаряжения при работе с бензопилой." + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -11627,6 +10900,41 @@ msgstr[3] "пары армейских ботинок" msgid "Modern reinforced tactical combat boots. Very durable." msgstr "Современные усиленные тактические армейские ботинки. Очень крепкие." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "пара ножных протекторов для разминирования" +msgstr[1] "пары ножных протекторов для разминирования" +msgstr[2] "пар ножных протекторов для разминирования" +msgstr[3] "пары ножных протекторов для разминирования" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs +#. of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" +"Бронированные протекторы для ног из стали и номекса для работ по " +"обезвреживанию взрывоопасных боеприпасов. Они разработаны для защиты от " +"ударной волны, осколков, высокого давления и жара." + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "пара резиновых ботов" +msgstr[1] "пары резиновых ботов" +msgstr[2] "пар резиновых ботов" +msgstr[3] "пары резиновых ботов" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "Резиновые боты для защиты ног со стальными набойками, прямо по ГОСТу." + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -12438,6 +11746,8 @@ msgstr[3] "пары огнеупорных носков" #. ~ Description for {'str': 'pair of flame-resistant socks', 'str_pl': 'pairs #. of flame-resistant socks'} +#. ~ Description for {'str': 'pair of XL flame-resistant socks', 'str_pl': +#. 'pairs of XL flame-resistant socks'} #: lang/json/ARMOR_from_json.py msgid "" "A snug fitting pair of stockings made from thin and lightweight Nomex fire-" @@ -12447,6 +11757,14 @@ msgstr "" "Облегающие носки из тонкого и лёгкого номекса, огнеупорной ткани. Плотные, " "но всё ещё дышащие, они лёгкие и их удобно носить под одеждой." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL flame-resistant socks" +msgid_plural "pairs of XL flame-resistant socks" +msgstr[0] "пара огнеупорных носков XL" +msgstr[1] "пара огнеупорных носков XL" +msgstr[2] "пара огнеупорных носков XL" +msgstr[3] "пары огнеупорных носков XL" + #: lang/json/ARMOR_from_json.py msgid "pair of socks" msgid_plural "pairs of socks" @@ -12462,6 +11780,20 @@ msgstr[3] "пары носков" msgid "Socks. Put 'em on your feet." msgstr "Носки. Надень их на ноги." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL socks" +msgid_plural "pairs of XL socks" +msgstr[0] "пара носков XL" +msgstr[1] "пара носков XL" +msgstr[2] "пара носков XL" +msgstr[3] "пары носков XL" + +#. ~ Description for {'str': 'pair of XL socks', 'str_pl': 'pairs of XL +#. socks'} +#: lang/json/ARMOR_from_json.py +msgid "Socks. Big ones. Put 'em on your feet." +msgstr "Носки. Большие. Надень их на ноги." + #: lang/json/ARMOR_from_json.py msgid "pair of ankle socks" msgid_plural "pairs of ankle socks" @@ -12527,6 +11859,23 @@ msgstr[3] "пары шерстяных носков" msgid "Warm socks made of wool." msgstr "Тёплые носки из шерсти." +#: lang/json/ARMOR_from_json.py +msgid "pair of XL wool socks" +msgid_plural "pairs of XL wool socks" +msgstr[0] "пара шерстяных носков XL" +msgstr[1] "пара шерстяных носков XL" +msgstr[2] "пара шерстяных носков XL" +msgstr[3] "пары шерстяных носков XL" + +#. ~ Description for {'str': 'pair of XL wool socks', 'str_pl': 'pairs of XL +#. wool socks'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Warm socks made of wool for a larger than you'd previously thought possible " +"human." +msgstr "" +"Тёплые шерстяные носки для большего, чем вы бы могли представить, человека" + #: lang/json/ARMOR_from_json.py msgid "pair of stockings" msgid_plural "pairs of stockings" @@ -14368,11 +13717,11 @@ msgstr[3] "пары тактических перчаток" #. tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." msgstr "" -"Пара укреплённых кевларовых тактических перчаток. Обычно используются " -"полицейскими и военными." +"Пара жаростойких, устойчивых к порезам перчаток из арамида. Обычно " +"используются полицейскими и военными." #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -14428,8 +13777,11 @@ msgstr[3] "пары порезостойких перчаток" #. of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." -msgstr "Пара порезостойких перчаток, полезны при быстрой разделке туш." +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." +msgstr "" +"Пара порезостойких перчаток, полезны для быстрой разделки туш или работы с " +"инструментами для разрезания." #: lang/json/ARMOR_from_json.py msgid "pair of hand wraps" @@ -14653,6 +14005,25 @@ msgstr[3] "пары перчаток для гольфа" msgid "A thin pair of black leather golfing gloves." msgstr "Чёрные перчатки для гольфа из тонкой кожи." +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "пара перчаток для разминирования" +msgstr[1] "пары перчаток для разминирования" +msgstr[2] "пар перчаток для разминирования" +msgstr[3] "пары перчаток для разминирования" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD +#. gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "" +"Легкие перчатки из кевлара и номекса для работ по обезвреживанию " +"взрывоопасных боеприпасов. Они разработаны для защиты от осколков и жара." + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -21313,6 +20684,27 @@ msgstr "" "Пара кожаных чапов, ковбойских чехлов поверх штанов. Очень прочные и лёгкие," " но в них нет карманов." +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "чапсы для бензопилы" +msgstr[1] "пары чапсов для бензопилы" +msgstr[2] "пар чапсов для бензопилы" +msgstr[3] "пары чапсов для бензопилы" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" +"Пара прочных чапсов из кевлара. Отскок бензопилы может привести к " +"смертельному ранению; защитное снаряжение вроде этих чапсов создано для " +"защиты ваших бедренных артерий. Слоеный кевлар должен порваться при контакте" +" с цепью и замотать ее, заставив инструмент остановиться." + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -21483,6 +20875,45 @@ msgstr "" "Укреплённые кевларом штаны со множеством карманов и отделений. Сделаны очень" " прочными и удобными для ношения." +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "штаны для разминирования" +msgstr[1] "пары штанов для разминирования" +msgstr[2] "пар штанов для разминирования" +msgstr[3] "пары штанов для разминирования" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" +"Толстые бронированные штаны из кевлара и номекса для работ по " +"обезвреживанию взрывоопасных боеприпасов. Они разработаны для защиты от " +"ударной волны, осколков, высокого давления и жара." + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "пара легких штанов для разминирования" +msgstr[1] "пары легких штанов для разминирования" +msgstr[2] "пар легких штанов для разминирования" +msgstr[3] "пары легких штанов для разминирования" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "" +"Бронированные штаны из кевлара и номекса для защиты от ударной волны, " +"осколков, высокого давления и жара. Они легче стандартных штанов для " +"разминирования для большей манёвренности." + #: lang/json/ARMOR_from_json.py msgid "basketball shorts" msgid_plural "basketball shorts" @@ -21930,6 +21361,8 @@ msgstr[2] "пар рабочих штанов" msgstr[3] "рабочие штаны" #. ~ Description for {'str': 'work pants', 'str_pl': 'pairs of work pants'} +#. ~ Description for {'str': 'XL work pants', 'str_pl': 'pairs of XL work +#. pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." msgstr "Серые рабочие штаны." @@ -21983,6 +21416,21 @@ msgstr[3] "балаклавы" msgid "A warm covering that protects the head and face from the cold." msgstr "Тёплое покрытие, которое защищает голову и лицо от холода." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "порезостойкая балаклава" +msgstr[1] "порезостойкие балаклавы" +msgstr[2] "порезостойких балаклав" +msgstr[3] "порезостойкие балаклавы" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "Тёплое покрытие, которое защищает голову и лицо от порезов и холода." + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -22442,6 +21890,7 @@ msgstr[3] "боевые экзоскелеты" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "Ваша силовая броня активирована." @@ -23137,11 +22586,11 @@ msgstr "Убрать клюшку для гольфа" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." +"has straps to be worn on the back and a slot for an umbrella." msgstr "" "Длинная сумка из ткани и пластика с выдвижными ножками, в которой обычно " "переносят клюшки для гольфа. У неё есть лямки, чтобы можно было носить на " -"спине." +"спине, и отсек под зонтик." #: lang/json/ARMOR_from_json.py msgid "H&K operational briefcase (empty)" @@ -23539,6 +22988,19 @@ msgstr[3] "разгрузочные жилеты" msgid "A light vest covered in pockets and straps for storage." msgstr "Лёгкий разгрузочный жилет с множеством карманов." +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "отладочная карманная вселенная" +msgstr[1] "отладочные карманные вселенные" +msgstr[2] "отладочных карманных вселенных" +msgstr[3] "отладочные карманные вселенные" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "Карманная вселенная. Может вместить примерно 384 * 10^6 багов." + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -24918,6 +24380,21 @@ msgstr "" "Фартук, изготовленный из толстой кожи. Громоздкий, но зато обеспечивает " "прекрасную защиту от порезов." +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "порезостойкий фартук" +msgstr[1] "порезостойких фартука" +msgstr[2] "порезостойких фартуков" +msgstr[3] "порезостойкие фартуки" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from " +"cuts." +msgstr "Фартук из кевлара. Обеспечивает прекрасную защиту от порезов." + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -25626,6 +25103,19 @@ msgstr[3] "боксёрские брифы" msgid "The age-old question, boxers or briefs? Your answer? Yes." msgstr "Извечный вопрос: боксёры или брифы? Твой ответ — да." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer briefs" +msgid_plural "XL boxer briefs" +msgstr[0] "боксёрские брифы XL" +msgstr[1] "боксёрских брифов XL" +msgstr[2] "боксёрских брифов XL" +msgstr[3] "боксёрские брифы XL" + +#. ~ Description for {'str_sp': 'XL boxer briefs'} +#: lang/json/ARMOR_from_json.py +msgid "The age-old question, boxers or briefs? Your answer? Chonk!" +msgstr "Извечный вопрос: боксёры или брифы? Твой ответ — да, и побольше!" + #: lang/json/ARMOR_from_json.py msgid "boxer shorts" msgid_plural "boxer shorts" @@ -25640,6 +25130,23 @@ msgid "" "Men's boxer shorts. More fashionable than briefs and just as comfortable." msgstr "Мужские трусы-боксеры. Моднее плавок и очень удобные." +#: lang/json/ARMOR_from_json.py +msgid "XL boxer shorts" +msgid_plural "XL boxer shorts" +msgstr[0] "трусы-боксеры" +msgstr[1] "трусов-боксеров" +msgstr[2] "трусов-боксеров" +msgstr[3] "трусы-боксеры" + +#. ~ Description for {'str_sp': 'XL boxer shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Men's XL boxer shorts. For the very big and tall. More fashionable than " +"briefs and just as comfortable." +msgstr "" +"Мужские трусы-боксеры для самого крупного телосложения. Моднее плавок и " +"очень удобные." + #: lang/json/ARMOR_from_json.py msgid "boy shorts" msgid_plural "boy shorts" @@ -25656,6 +25163,23 @@ msgstr "" "Женское нижнее бельё, аналогичное мужским трусам-боксёрам, только более " "обтягивающее." +#: lang/json/ARMOR_from_json.py +msgid "XL boy shorts" +msgid_plural "XL boy shorts" +msgstr[0] "трусы-шорты" +msgstr[1] "трусов-шорт" +msgstr[2] "трусов-шорт" +msgstr[3] "трусы-шорты" + +#. ~ Description for {'str_sp': 'XL boy shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Female underwear similar to men's boxer shorts, but much more close-fitting." +" This size is made for giants." +msgstr "" +"Женское нижнее бельё, аналогичное мужским трусам-боксёрам, только более " +"обтягивающее. Эти подойдут по размеру великану." + #: lang/json/ARMOR_from_json.py msgid "bra" msgid_plural "bras" @@ -25926,6 +25450,26 @@ msgstr "" "время физических упражнений. Обычно надевается во время тренировок, плотно " "обтягивает тело и не затрудняет движения." +#: lang/json/ARMOR_from_json.py +msgid "XL sports bra" +msgid_plural "XL sports bras" +msgstr[0] "спортивный лифчик XL" +msgstr[1] "спортивных лифчика XL" +msgstr[2] "спортивных лифчиков XL" +msgstr[3] "спортивные лифчики XL" + +#. ~ Description for {'str': 'XL sports bra'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A sturdy nylon bra to provide additional support during physical movement. " +"Typically worn when exercising, it clings to the skin and is easy to wear. " +"This one appears to have been made for a massive person." +msgstr "" +"Прочный нейлоновый бюстгальтер для обеспечения дополнительной поддержки во " +"время физических упражнений. Обычно надевается во время тренировок, плотно " +"обтягивает тело и не затрудняет движения. Этот предназначен для особенно " +"крупного телосложения." + #: lang/json/ARMOR_from_json.py msgid "tank top" msgid_plural "tank tops" @@ -26243,6 +25787,64 @@ msgstr "" " неестественная тень. Будучи сделанной из тканого графена, он легок и " "прочен, но не подлежит починке." +#: lang/json/ARMOR_from_json.py +msgid "XL jeans" +msgid_plural "pairs of XL jeans" +msgstr[0] "джинсы XL" +msgstr[1] "джинсы XL" +msgstr[2] "джинсы XL" +msgstr[3] "пара джинс XL" + +#. ~ Description for {'str': 'XL jeans', 'str_pl': 'pairs of XL jeans'} +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue jeans with two deep pockets." +msgstr "Очень большие синие джинсы с двумя глубокими карманами." + +#: lang/json/ARMOR_from_json.py +msgid "XL work pants" +msgid_plural "pairs of XL work pants" +msgstr[0] "рабочие штаны XL" +msgstr[1] "рабочих штанов XL" +msgstr[2] "рабочих штанов XL" +msgstr[3] "рабочие штаны XL" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue work pants." +msgstr "Очень большие синие рабочие штаны." + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL gray work pants." +msgstr "Очень большие серые рабочие штаны." + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL light-blue work pants." +msgstr "Очень большие голубые рабочие штаны." + +#: lang/json/ARMOR_from_json.py +msgid "XL work t-shirt" +msgid_plural "XL work t-shirts" +msgstr[0] "рабочая футболка XL" +msgstr[1] "рабочие футболки XL" +msgstr[2] "рабочих футболок XL" +msgstr[3] "рабочие футболки XL" + +#. ~ Description for {'str': 'XL work t-shirt'} +#: lang/json/ARMOR_from_json.py +msgid "A gray XL work t-shirt with a small front pocket." +msgstr "Очень большая серая рабочая футболка с маленьким передним карманом." + +#: lang/json/ARMOR_from_json.py +msgid "An XL blue work t-shirt with a small front pocket." +msgstr "Очень большая синяя рабочая футболка с маленьким передним карманом." + +#: lang/json/ARMOR_from_json.py +msgid "An XL gray work t-shirt with a small front pocket." +msgstr "Очень большая серая рабочая футболка с маленьким передним карманом." + +#: lang/json/ARMOR_from_json.py +msgid "An XL light-blue work t-shirt with a small front pocket." +msgstr "Очень большая голубая рабочая футболка с маленьким передним карманом." + #: lang/json/ARMOR_from_json.py msgid "Uplifted SWAT armor" msgid_plural "Uplifted SWAT armors" @@ -26345,6 +25947,76 @@ msgstr "" "ношения трехпалыми Смертедонтами. Тоньше, чем обычные тактические перчатки " "большого размера." +#: lang/json/ARMOR_from_json.py +msgid "XL leather belt" +msgid_plural "XL leather belts" +msgstr[0] "кожаный ремень XL" +msgstr[1] "кожаных ремня XL" +msgstr[2] "кожаных ремней XL" +msgstr[3] "кожаные ремни XL" + +#. ~ Description for {'str': 'XL leather belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL leather belt. Useful for making your pair of pants fit if you need " +"really big pants." +msgstr "" +"Очень большой кожаный ремень. Затянутый в очень большие штаны, он подгоняет " +"их по фигуре." + +#: lang/json/ARMOR_from_json.py +msgid "XL police duty belt" +msgid_plural "XL police duty belts" +msgstr[0] "пояс полицейского XL" +msgstr[1] "пояса полицейского XL" +msgstr[2] "поясов полицейского XL" +msgstr[3] "пояса полицейского XL" + +#. ~ Description for {'str': 'XL police duty belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL black leather belt used by extremely large uplifted police officers. " +"It has several pouches and a holder for a baton." +msgstr "" +"Очень большой черный кожаный пояс, используемый возвышенными офицерами " +"полиции особо крупного телосложения. На поясе есть кармашки и держатель для " +"полицейской дубинки." + +#: lang/json/ARMOR_from_json.py +msgid "XL tactical full helmet" +msgid_plural "XL tactical full helmets" +msgstr[0] "закрытый тактический шлем XL" +msgstr[1] "закрытых тактических шлема XL" +msgstr[2] "закрытых тактических шлемов XL" +msgstr[3] "закрытые тактические шлемы XL" + +#. ~ Description for {'str': 'XL tactical full helmet'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An all-encompassing massive black helmet that covers your entire face and " +"neck, providing excellent protection from all sorts of damage." +msgstr "" +"Огромный чёрный шлем, который полностью закрывает вашу голову, включая лицо " +"и шею, обеспечивая превосходную защиту от всех видов повреждений." + +#: lang/json/ARMOR_from_json.py +msgid "XL leg ammo pouch" +msgid_plural "XL leg ammo pouches" +msgstr[0] "подсумок для боеприпасов XL" +msgstr[1] "подсумка для боеприпасов XL" +msgstr[2] "подсумков для боеприпасов XL" +msgstr[3] "подсумки для боеприпасов XL" + +#. ~ Description for {'str': 'XL leg ammo pouch', 'str_pl': 'XL leg ammo +#. pouches'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL fabric ammo pouch that can be strapped to your leg and capable of " +"holding two magazine close at hand." +msgstr "" +"Тканевый подсумок для патронов, крепящийся на ногу, в котором можно хранить " +"два магазина для быстрого доступа. Можно надеть на очень большую ногу." + #: lang/json/ARMOR_from_json.py msgid "titanium watch" msgid_plural "titanium watches" @@ -26541,6 +26213,27 @@ msgstr "" "прикреплёнными с внутренней стороны. Не так хорош, как настоящий доспех, но," " тем не менее, защищает относительно неплохо." +#: lang/json/ARMOR_from_json.py +msgid "CRIT Engineering Suit" +msgid_plural "CRIT Engineering Suits" +msgstr[0] "инженерный костюм К.Р.И.Т" +msgstr[1] "инженерных костюма К.Р.И.Т" +msgstr[2] "инженерных костюмов К.Р.И.Т" +msgstr[3] "инженерные костюмы К.Р.И.Т" + +#. ~ Description for CRIT Engineering Suit +#: lang/json/ARMOR_from_json.py +msgid "" +"An airtight, flexible suit of woven composite fibers complete with segmented" +" plates of armor. A complex system digitizes items in an individual pocket " +"universe for storage while built in joint-torsion ratchets generate the " +"neccessary energy required to power the interface." +msgstr "" +"Воздухонепроницаемый гибкий костюм из композитных волокон и сегментированных" +" бронепластин. Сложная система оцифровывает предметы и помещает их в личную " +"карманную вселенную для хранения, а встроенные суставные храповики " +"генерируют энергию для питания интерфейса." + #: lang/json/ARMOR_from_json.py msgid "CRIT face mask" msgid_plural "CRIT face masks" @@ -26552,14 +26245,13 @@ msgstr[3] "маски К.Р.И.Т" #. ~ Description for CRIT face mask #: lang/json/ARMOR_from_json.py msgid "" -"This is the C.R.I.T standard issue face mask, lined with Kevlar for extra " -"protection. A few filters provide decent environmental safety, but it was " -"not intended for extended use. It has a basic integrated HUD." +"A standard issue face mask, lined with Kevlar for extra protection. A few " +"filters provide decent environmental safety, but it was not intended for " +"extended use. It has a basic integrated HUD." msgstr "" -"Стандартная маска К.Р.И.Т с покрытием из кевлара для дополнительной защиты. " -"Фильтры обеспечивают приемлемую защиту от окружающей среды, но не " -"предназначены для длительного использования. Имеется простой встроенный " -"интерфейс." +"Стандартная защитная маска с дополнительным покрытием из кевлара. Фильтры " +"обеспечивают приемлемую защиту от окружающей среды, но не предназначены для " +"длительного использования. Имеется простой встроенный интерфейс." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT boots" @@ -26573,15 +26265,15 @@ msgstr[3] "пары ботинок К.Р.И.Т" #. boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and " +"A pair of standard-issue boots. Next-gen gels keep feet comfortable and " "hygienic during long-term missions while absorbing shock and heat from " "outside-sources. Superalloy mesh and rubber offer quite a bit of chemical " "protection as well. Decently heavy though" msgstr "" -"Стандартные ботинки К.Р.И.Т. Высокотехнологичный гель обеспечивает комфорт и" -" гигиену ступней во время длительных миссий, в то же время защищая от ударов" -" и жары извне. Сетка из суперсплава и резина защищают ещё и от химических " -"веществ. Однако ботинки довольно тяжёлые." +"Стандартные ботинки. Высокотехнологичный гель обеспечивает комфорт и гигиену" +" ступней во время длительных миссий, в то же время защищая от ударов и жары " +"извне. Сетка из суперсплава и резина защищают ещё и от химических веществ. " +"Однако ботинки довольно тяжёлые." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT LA boots" @@ -26595,14 +26287,14 @@ msgstr[3] "пары легких ботинок К.Р.И.Т" #. LA boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor " +"A pair of skeletonized boots. Based off of C.R.I.T boots, the light-armor " "variant was created for missions in warmer climates. The LA boots keep most" " of the old features of the standard issue boots but trade in protection for" " easier movement." msgstr "" -"Облегчённые ботинки К.Р.И.Т на основе стандартных. Этот вариант разработан " -"для миссий в тёплом климате. Такие ботинки во многом схожи со стандартными, " -"но легче за счёт уменьшенной защиты." +"Пара облёгченных ботинков К.Р.И.Т. на основе стандартных, созданных для " +"миссий в тёплом климате. Такие ботинки во многом схожи со стандартными, но " +"легче за счёт уменьшенной защиты." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT fingertip-less gloves" @@ -26616,11 +26308,11 @@ msgstr[3] "пары перчаток без пальцев К.Р.И.Т" #. 'pairs of CRIT fingertip-less gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with " +"A pair of standard-issue gloves. Made with superalloy mesh for those with " "gene-modding and/or mutations while still allowing greater manipulation of " "items and moderate protection." msgstr "" -"Стандартные перчатки К.Р.И.Т с сеткой из суперсплава. Предназначены для " +"Стандартные перчатки с сеткой из суперсплава. Предназначены для " "генномодифицированных солдат и/или мутантов. Обеспечивают удобное обращение " "с предметами и умеренную защиту." @@ -26636,13 +26328,13 @@ msgstr[3] "пары перчаток-подкладок К.Р.И.Т без па #. 'pairs of CRIT fingertip-less liners'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue glove liners. Made with neoprene and rubber mesh for" -" warmth and fingertip-less for those with gene-modding and/or mutations " +"A pair of standard-issue glove liners. Made with neoprene and rubber mesh " +"for warmth and fingertip-less for those with gene-modding and/or mutations " "while still allowing greater manipulation of items and moderate protection." msgstr "" -"Стандартные перчатки К.Р.И.Т из неопрена и резиновой сетки для утепления. " -"Перчатки без пальцев предназначены для генномодифицированных солдат или " -"мутантов. Обеспечивают удобное обращение с предметами и умеренную защиту." +"Стандартные перчатки из неопрена и резиновой сетки для утепления. Перчатки " +"без пальцев предназначены для генномодифицированных солдат или мутантов. " +"Обеспечивают удобное обращение с предметами и умеренную защиту." #: lang/json/ARMOR_from_json.py msgid "CRIT backpack" @@ -26655,15 +26347,15 @@ msgstr[3] "рюкзаки К.Р.И.Т" #. ~ Description for CRIT backpack #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this " -"smaller pack strikes a fine balance between storage space and encumbrance " -"and allows a larger weapon to be holstered, drawing and holstering is still " -"rather awkward even with the magnetized clips, but practice helps." +"A standard-issue pack. Based on the MOLLE backpack's design, this smaller " +"pack strikes a fine balance between storage space and encumbrance and allows" +" a larger weapon to be holstered, drawing and holstering is still rather " +"awkward even with the magnetized clips, but practice helps." msgstr "" -"Стандартный рюкзак К.Р.И.Т. Он разработан на основе рюкзака MOLLE, но меньше" -" по размеру и сочетает вместимость и удобство ношения, а также включает " -"кобуру для большого оружия. Вытаскивать и вкладывать оружие довольно " -"неудобно даже с магнитными клипсами, но всё приходит с опытом." +"Стандартный рюкзак. Он разработан на основе рюкзака MOLLE, но меньше по " +"размеру и сочетает вместимость и удобство ношения, а также включает кобуру " +"для большого оружия. Вытаскивать и вкладывать оружие довольно неудобно даже " +"с магнитными клипсами, но всё приходит с опытом." #: lang/json/ARMOR_from_json.py msgid "CRIT chestrig" @@ -26676,11 +26368,11 @@ msgstr[3] "нагрудники К.Р.И.Т" #. ~ Description for CRIT chestrig #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" -" with light-armor padding." +"A slightly modified chestrig, has mesh and MOLLE loops for gear and slots " +"with light-armor padding." msgstr "" -"Стандартный нагрудник К.Р.И.Т, у него есть сетка и петли для крепления " -"снаряжения, а также отсеки для лёгких бронепластин." +"Немного модифицированный стандартный нагрудник, у него есть сетка и петли " +"для крепления снаряжения, а также отсеки для лёгких бронепластин." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT leg guards" @@ -26694,23 +26386,23 @@ msgstr[3] "пары поножей К.Р.И.Т" #. CRIT leg guards'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue leg armor. Simple design and durable material allows" -" for easy movement and the padding keeps the legs safe and warm in colder " +"Leg armor for those who fight. Simple design and durable material allows " +"for easy movement and the padding keeps the legs safe and warm in colder " "conditions." msgstr "" -"Стандартные поножи К.Р.И.Т, простые и прочные. Не сковывают движений, а " +"Стандартные боевые поножи, простые и прочные. Не сковывают движений, а " "подкладка сохраняет тепло в холодных условиях." #: lang/json/ARMOR_from_json.py msgid "pair of CRIT arm guards" -msgid_plural "pairs of C.R.I.T arm guards" -msgstr[0] "пара наручей К.Р.И.Т" -msgstr[1] "пары наручей К.Р.И.Т" -msgstr[2] "пар наручей К.Р.И.Т" -msgstr[3] "пары наручей К.Р.И.Т" +msgid_plural "pairs of CRIT arm guards" +msgstr[0] "пара наручей К.Р.И.Т." +msgstr[1] "пары наручей К.Р.И.Т." +msgstr[2] "пар наручей К.Р.И.Т." +msgstr[3] "пары наручей К.Р.И.Т." #. ~ Description for {'str': 'pair of CRIT arm guards', 'str_pl': 'pairs of -#. C.R.I.T arm guards'} +#. CRIT arm guards'} #: lang/json/ARMOR_from_json.py msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " @@ -26731,9 +26423,9 @@ msgstr[3] "пояса К.Р.И.Т" #. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on " -"your hip." -msgstr "Стандартный пояс К.Р.И.Т, чтобы придерживать штаны и хранить оружие." +"CRIT standard-issue belt. Keeps your trousers up and your weapons on your " +"hip." +msgstr "Стандартный пояс К.Р.И.Т., чтобы придерживать штаны и хранить оружие." #: lang/json/ARMOR_from_json.py msgid "CRIT infantry duster" @@ -26753,27 +26445,6 @@ msgstr "" "Толстый пыльник с резиновой изоляцией. Немного неудобный, но защитит от " "любого противопехотного электрического разряда. Есть несколько карманов." -#: lang/json/ARMOR_from_json.py -msgid "CRIT Engineering Suit" -msgid_plural "CRIT Engineering Suits" -msgstr[0] "инженерный костюм К.Р.И.Т" -msgstr[1] "инженерных костюма К.Р.И.Т" -msgstr[2] "инженерных костюмов К.Р.И.Т" -msgstr[3] "инженерные костюмы К.Р.И.Т" - -#. ~ Description for CRIT Engineering Suit -#: lang/json/ARMOR_from_json.py -msgid "" -"An airtight, flexible suit of woven composite fibers complete with segmented" -" plates of armor. A complex system digitizes items in an individual pocket " -"universe for storage while built in joint-torsion ratchets generate the " -"necessary energy required to power the interface." -msgstr "" -"Воздухонепроницаемый гибкий костюм из композитных волокон и сегментированных" -" бронепластин. Сложная система оцифровывает предметы и помещает их в личную " -"карманную вселенную для хранения, а встроенные суставные храповики " -"генерируют энергию для питания интерфейса." - #: lang/json/ARMOR_from_json.py msgid "CRIT Armored Anomaly Suit" msgid_plural "CRIT Armored Anomaly Suits" @@ -26798,14 +26469,14 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "CRIT drop leg pouch" -msgid_plural "C.R.I.T drop leg pouches" -msgstr[0] "пара набедренных подсумков К.Р.И.Т" -msgstr[1] "пары набедренных подсумков К.Р.И.Т" -msgstr[2] "пар набедренных подсумков К.Р.И.Т" -msgstr[3] "пары набедренных подсумков К.Р.И.Т" +msgid_plural "CRIT drop leg pouches" +msgstr[0] "пара набедренных подсумков К.Р.И.Т." +msgstr[1] "пары набедренных подсумков К.Р.И.Т." +msgstr[2] "пар набедренных подсумков К.Р.И.Т." +msgstr[3] "пары набедренных подсумков К.Р.И.Т." -#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'C.R.I.T drop -#. leg pouches'} +#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'CRIT drop leg +#. pouches'} #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " @@ -26852,16 +26523,16 @@ msgstr[3] "пары ножных накладок К.Р.И.Т" #. of CRIT Enforcer docks'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of " +"CRIT Enforcer docks. Metal plates vaguely molded into the shape of " "oversized feet which clamp down onto your own footwear keep your feet out of" " harms way. It looks terrible and feels clunky unlike most of C.R.I.T's " "designs, but they do seem to be worth using if you were to be in the middle " "of a warzone." msgstr "" "Металлические пластины, грубо изогнутые по форме огромных стоп. " -"Пристёгиваются к обычной обуви и защищают ноги от повреждений. В отличие от " -"большей части снаряжения К.Р.И.Т. они неудобные и выглядят безобразно, но " -"очень полезны в горячих точках." +"Пристёгиваются к обычной обуви и защищают ноги от повреждений. Они неудобные" +" и выглядят безобразно, в отличие от большинства снаряжения К.Р.И.Т., но " +"очень пригодятся посреди поля боя." #: lang/json/ARMOR_from_json.py msgid "CRIT Soldier Suit" @@ -26906,123 +26577,123 @@ msgstr "" "действительно сумеете в ней ходить." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T blouse" -msgid_plural "C.R.I.T blouses" -msgstr[0] "блузка К.Р.И.Т" -msgstr[1] "блузки К.Р.И.Т" -msgstr[2] "блузок К.Р.И.Т" -msgstr[3] "блузки К.Р.И.Т" +msgid "CRIT blouse" +msgid_plural "CRIT blouses" +msgstr[0] "блузка К.Р.И.Т." +msgstr[1] "блузки К.Р.И.Т." +msgstr[2] "блузок К.Р.И.Т." +msgstr[3] "блузки К.Р.И.Т." -#. ~ Description for C.R.I.T blouse +#. ~ Description for CRIT blouse #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage." -" Super-flex neoprene keeps one warm in moderately cold weather while a " -"sleek design keeps it from being too flashy. A zipper at the back and front" -" allows for quick donning and doffing." +"A standard-issue military jacket. Durable, lightweight, and has ample " +"storage. Super-flex neoprene keeps one warm in moderately cold weather " +"while a sleek design keeps it from being too flashy. A zipper at the back " +"and front allows for quick donning and doffing." msgstr "" -"Стандартная блузка К.Р.И.Т. Прочная, лёгкая и с широкими карманами. " +"Стандартная армейская куртка. Прочная, лёгкая и с широкими карманами. " "Супергибкий неопрен согревает в холодную погоду, а благодаря обтекаемому " "дизайну блузка не слишком броская. Спереди и сзади есть застёжки-молнии, " "чтобы быстро надеть или снять её." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T trousers" -msgid_plural "C.R.I.T trousers" -msgstr[0] "штаны К.Р.И.Т" -msgstr[1] "штанов К.Р.И.Т" -msgstr[2] "штанов К.Р.И.Т" -msgstr[3] "штаны К.Р.И.Т" +msgid "CRIT trousers" +msgid_plural "CRIT trousers" +msgstr[0] "штаны К.Р.И.Т." +msgstr[1] "пар штанов К.Р.И.Т." +msgstr[2] "пар штанов К.Р.И.Т." +msgstr[3] "штаны К.Р.И.Т." -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT trousers'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue trousers. Durable, lightweight and has ample " +"A pair of standard-issue cargo pants. Durable, lightweight and has ample " "storage. Super-flex neoprene keeps one warm in moderately cold weather." msgstr "" -"Стандартные штаны К.Р.И.Т. Прочные, лёгкие и с широкими карманами. " -"Супергибкий неопрен согревает в холодную погоду." +"Стандартные армейские штаны с карманами. Прочные, лёгкие и с широкими " +"карманами. Супергибкий неопрен согревает в холодную погоду." -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#: lang/json/ARMOR_from_json.py +msgid "CRIT pants" +msgid_plural "CRIT pants" +msgstr[0] "брюки К.Р.И.Т." +msgstr[1] "пар брюк К.Р.И.Т." +msgstr[2] "пар брюк К.Р.И.Т." +msgstr[3] "брюки К.Р.И.Т." + +#. ~ Description for {'str_sp': 'CRIT pants'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " -"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " -"cold weather." +"A pair of dress pants. A minimalist sleek design makes the pants " +"lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in" +" moderately cold weather." msgstr "" -"Брюки К.Р.И.Т. Благодаря минималистичному обтекаемому дизайну очень лёгкие и" -" с карманами. Супергибкий неопрен согревает в холодную погоду." +"Пара классических брюк. Минималистический обтекаемый дизайн делает брюки " +"легкими и предлагает широкие карманы. Супергибкий неопрен сохраняет тепло в " +"умеренно холодной погоде." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T helmet liner" -msgid_plural "C.R.I.T helmet liners" -msgstr[0] "подшлемник К.Р.И.Т" -msgstr[1] "подшлемника К.Р.И.Т" -msgstr[2] "подшлемников К.Р.И.Т" -msgstr[3] "подшлемники К.Р.И.Т" +msgid "CRIT helmet liner" +msgid_plural "CRIT helmet liners" +msgstr[0] "подшлемник К.Р.И.Т." +msgstr[1] "подшлемника К.Р.И.Т." +msgstr[2] "подшлемников К.Р.И.Т." +msgstr[3] "подшлемники К.Р.И.Т." -#. ~ Description for C.R.I.T helmet liner +#. ~ Description for CRIT helmet liner #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." -msgstr "Стандартный подшлемник К.Р.И.Т. Хранит котелок в тепле." +msgid "A standard-issue helmet liner. Keeps the noggin warm." +msgstr "Стандартный подшлемник. Хранит котелок в тепле." #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T shoes" -msgid_plural "pairs of C.R.I.T dress shoes" -msgstr[0] "пара туфель К.Р.И.Т" -msgstr[1] "пары туфель К.Р.И.Т" -msgstr[2] "пар туфель К.Р.И.Т" -msgstr[3] "пары туфель К.Р.И.Т" +msgid "pair of CRIT shoes" +msgid_plural "pairs of CRIT dress shoes" +msgstr[0] "пара туфель К.Р.И.Т." +msgstr[1] "пары туфель К.Р.И.Т." +msgstr[2] "пар туфель К.Р.И.Т." +msgstr[3] "пары туфель К.Р.И.Т." -#. ~ Description for {'str': 'pair of C.R.I.T shoes', 'str_pl': 'pairs of -#. C.R.I.T dress shoes'} +#. ~ Description for {'str': 'pair of CRIT shoes', 'str_pl': 'pairs of CRIT +#. dress shoes'} #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." msgstr "Изящная пара туфель, приятных на вид." #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T rec gloves" -msgid_plural "pairs of C.R.I.T rec gloves" -msgstr[0] "пара перчаток разведчика К.Р.И.Т" -msgstr[1] "пары перчаток разведчика К.Р.И.Т" -msgstr[2] "пар перчаток разведчика К.Р.И.Т" -msgstr[3] "пары перчаток разведчика К.Р.И.Т" +msgid "pair of CRIT rec gloves" +msgid_plural "pairs of CRIT rec gloves" +msgstr[0] "пара перчаток разведчика К.Р.И.Т." +msgstr[1] "пары перчаток разведчика К.Р.И.Т." +msgstr[2] "пар перчаток разведчика К.Р.И.Т." +msgstr[3] "пары перчаток разведчика К.Р.И.Т." -#. ~ Description for {'str': 'pair of C.R.I.T rec gloves', 'str_pl': 'pairs of -#. C.R.I.T rec gloves'} +#. ~ Description for {'str': 'pair of CRIT rec gloves', 'str_pl': 'pairs of +#. CRIT rec gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are" -" made with cotton with a neoprene lining for grip-pads and warmth. " +"A pair of standard-issue rec gloves. Skin-hugging and sleek, these gloves " +"are made with cotton with a neoprene lining for grip-pads and warmth. " msgstr "" -"Стандартные перчатки разведчика К.Р.И.Т. Эти облегающие обтекаемые перчатки " +"Пара стандартных перчаток разведчика. Эти облегающие обтекаемые перчатки " "сделаны из хлопка с неопреновой подкладкой для теплоты и удобства." -#: lang/json/ARMOR_from_json.py -msgid "C.R.I.T web belt" -msgid_plural "C.R.I.T web belts" -msgstr[0] "пояс К.Р.И.Т" -msgstr[1] "пояса К.Р.И.Т" -msgstr[2] "поясов К.Р.И.Т" -msgstr[3] "пояса К.Р.И.Т" - -#. ~ Description for C.R.I.T web belt +#. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " -"hip." +"A standard-issue belt. Keeps your trousers up and your tools on your hip." msgstr "" -"Стандартный пояс К.Р.И.Т, чтобы придерживать штаны и хранить инструменты." +"Стандартный армейский пояс, чтобы придерживать штаны и хранить инструменты." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec duster" -msgid_plural "C.R.I.T rec dusters" -msgstr[0] "пыльник разведчика К.Р.И.Т" -msgstr[1] "пыльника разведчика К.Р.И.Т" -msgstr[2] "пыльников разведчика К.Р.И.Т" -msgstr[3] "пыльники разведчика К.Р.И.Т" +msgid "CRIT rec duster" +msgid_plural "CRIT rec dusters" +msgstr[0] "пыльник разведчика К.Р.И.Т." +msgstr[1] "пыльника разведчика К.Р.И.Т." +msgstr[2] "пыльников разведчика К.Р.И.Т." +msgstr[3] "пыльники разведчика К.Р.И.Т." -#. ~ Description for C.R.I.T rec duster +#. ~ Description for CRIT rec duster #: lang/json/ARMOR_from_json.py msgid "" "A waterproofed full-length duster coat. Made with neoprene, comfort and " @@ -27033,24 +26704,57 @@ msgstr "" "обтекаемой форме. Есть несколько карманов." #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec hat" -msgid_plural "C.R.I.T rec hats" -msgstr[0] "шапка разведчика К.Р.И.Т" -msgstr[1] "шапки разведчика К.Р.И.Т" -msgstr[2] "шапок разведчика К.Р.И.Т" -msgstr[3] "шапки разведчика К.Р.И.Т" +msgid "CRIT rec hat" +msgid_plural "CRIT rec hats" +msgstr[0] "шапка разведчика К.Р.И.Т." +msgstr[1] "шапки разведчика К.Р.И.Т." +msgstr[2] "шапок разведчика К.Р.И.Т." +msgstr[3] "шапки разведчика К.Р.И.Т." -#. ~ Description for C.R.I.T rec hat +#. ~ Description for CRIT rec hat #: lang/json/ARMOR_from_json.py msgid "" -"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " +"Functionality meets fashion in this waterproofed CRIT standard issue rec " "cover. Thick enough to provide warmth in colder weather, this hat shares " "the same sleek design of most of C.R.I.T's gear." msgstr "" -"Стандартная водонепроницаемая шапка разведчика К.Р.И.Т, изящная и " +"Стандартная водонепроницаемая шапка разведчика К.Р.И.Т., изящная и " "функциональная, достаточно толстая, чтобы защитить от непогоды. Выполнена в " "том же обтекаемом стиле, что и остальное снаряжение К.Р.И.Т." +#: lang/json/ARMOR_from_json.py +msgid "plant fiber tunic" +msgid_plural "plant fiber tunics" +msgstr[0] "плетёная туника" +msgstr[1] "плетёные туники" +msgstr[2] "плетёных туник" +msgstr[3] "плетёные туники" + +#. ~ Description for plant fiber tunic +#: lang/json/ARMOR_from_json.py +msgid "" +"A loose garment cobbled together from a collection of plant bundles and " +"wound together by makeshift cordage" +msgstr "" +"Свободное одеяние, сплетенное из скрученных пучков растений и завязанное " +"самодельной бечевкой." + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber bracelet" +msgid_plural "plant fiber bracelets" +msgstr[0] "плетёный браслет" +msgstr[1] "плетёных браслета" +msgstr[2] "плетёных браслетов" +msgstr[3] "плетёные браслеты" + +#. ~ Description for plant fiber bracelet +#: lang/json/ARMOR_from_json.py +msgid "" +"A bracelet wound together by makeshift cordage. Has some cool looking " +"pebbles. " +msgstr "" +"Браслет, сплетенный из самодельной бечевки с парой симпатичных камушков." + #: lang/json/ARMOR_from_json.py msgid "CRIT canteen" msgid_plural "CRIT canteens" @@ -27062,11 +26766,11 @@ msgstr[3] "фляги К.Р.И.Т" #. ~ Description for CRIT canteen #: lang/json/ARMOR_from_json.py msgid "" -"A simple, durable steel canteen that can heat up food with built in " -"plutonium heating elements." +"A durable steel canteen that can heat up food with built in atomic heating " +"elements." msgstr "" -"Простая прочная стальная фляга, способная подогревать пищу благодаря " -"встроенным плутониевым элементам." +"Прочная стальная фляга, способная подогревать пищу благодаря встроенным " +"атомным элементам." #: lang/json/ARMOR_from_json.py msgid "wet bandana" @@ -27856,165 +27560,6 @@ msgstr "" "Полностью покрывающий вас невидимый слой магической ауры, защищающий от " "воздействия окружающей среды." -#: lang/json/ARMOR_from_json.py -msgid "wooden shield" -msgid_plural "wooden shields" -msgstr[0] "деревянный щит" -msgstr[1] "деревянных щита" -msgstr[2] "деревянных щитов" -msgstr[3] "деревянные щиты" - -#. ~ Description for wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A crude wooden shield, lacking any metal or leather reinforcement. " -"Lightweight but not very tough." -msgstr "" -"Грубый деревянный щит без какого-либо укрепления кожей или металлом. Лёгкий," -" но не очень прочный." - -#: lang/json/ARMOR_from_json.py -msgid "large wooden shield" -msgid_plural "large wooden shields" -msgstr[0] "большой деревянный щит" -msgstr[1] "больших деревянных щитов" -msgstr[2] "больших деревянных щитов" -msgstr[3] "большие деревянные щиты" - -#. ~ Description for large wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"An ancient style of wooden shield, lacking any metal or leather " -"reinforcement. Bulky, but offers a decent amount of protection." -msgstr "" -"Античный деревянный щит без какого-либо укрепления кожей или металлом. " -"Громоздкий, но обеспечивает достойную защиту." - -#: lang/json/ARMOR_from_json.py -msgid "heater shield" -msgid_plural "heater shields" -msgstr[0] "треугольный щит" -msgstr[1] "треугольных щита" -msgstr[2] "треугольных щитов" -msgstr[3] "треугольные щиты" - -#. ~ Description for heater shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A medieval style of shield made of wood overlaid with leather, developed " -"from the longer kite shield. Mainly used in tournaments, but still viable " -"in battle." -msgstr "" -"Средневековый щит из дерева, покрытого кожей, разработан на основе длинного " -"каплевидного щита. В основном используется на турнирах, но вполне может " -"сгодиться и в бою." - -#: lang/json/ARMOR_from_json.py -msgid "kite shield" -msgid_plural "kite shields" -msgstr[0] "каплевидный щит" -msgstr[1] "каплевидных щита" -msgstr[2] "каплевидных щитов" -msgstr[3] "каплевидные щиты" - -#. ~ Description for kite shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A classic medieval style of shield, made of wood overlaid with leather, in " -"an elongated teardrop shape. Affords decent protection, but was better " -"suited for cavalry." -msgstr "" -"Классический средневековый щит удлинённой каплевидной формы, сделанный из " -"дерева, обитого кожей. Обеспечивает достойную защиту, но лучше подходит для " -"кавалерии." - -#: lang/json/ARMOR_from_json.py -msgid "round shield" -msgid_plural "round shields" -msgstr[0] "круглый щит" -msgstr[1] "круглых щита" -msgstr[2] "круглых щитов" -msgstr[3] "круглый щит" - -#. ~ Description for round shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple round shield made of wood, with a rim and boss of iron. Made " -"infamous by the Vikings." -msgstr "" -"Простой круглый щит из дерева с ободом и умбоном из железа. В точности как у" -" викингов." - -#: lang/json/ARMOR_from_json.py -msgid "hoplon" -msgid_plural "hoplons" -msgstr[0] "гоплон" -msgstr[1] "гоплона" -msgstr[2] "гоплонов" -msgstr[3] "гоплон" - -#. ~ Description for hoplon -#: lang/json/ARMOR_from_json.py -msgid "" -"A convex round shield from ancient Greece, made of wood reinforced with " -"bronze. Heavy but effective." -msgstr "" -"Круглый выпуклый щит из Греции, сделанный из дерева, усиленного бронзой. " -"Тяжёлый, но эффективный." - -#: lang/json/ARMOR_from_json.py -msgid "scutum" -msgid_plural "scuta" -msgstr[0] "скутум" -msgstr[1] "скутума" -msgstr[2] "скутумов" -msgstr[3] "скутумы" - -#. ~ Description for {'str': 'scutum', 'str_pl': 'scuta'} -#: lang/json/ARMOR_from_json.py -msgid "" -"A rectangular shield from ancient Rome, made of wood and iron. Perfect for " -"fighting in formation, but not ideal for facing zombies alone." -msgstr "" -"Прямоугольный щит из древнего Рима, сделанный из дерева и железа. Отлично " -"подходит для сражения в строю, но не идеален при встрече с зомби в одиночку." - -#: lang/json/ARMOR_from_json.py -msgid "buckler" -msgid_plural "bucklers" -msgstr[0] "баклер" -msgstr[1] "баклера" -msgstr[2] "баклеров" -msgstr[3] "баклеры" - -#. ~ Description for buckler -#: lang/json/ARMOR_from_json.py -msgid "" -"A small metal shield from the late medieval and renaissance periods. " -"Extremely light and tough, but its small size is as much a hindrance as it " -"is an advantage." -msgstr "" -"Маленький металлический щит из позднего средневековья и эпохи ренессанса. " -"Очень лёгкий и прочный, но его малый размер не только преимущество, но и " -"недостаток." - -#: lang/json/ARMOR_from_json.py -msgid "hooded hat" -msgid_plural "hooded hats" -msgstr[0] "шляпа с капюшоном" -msgstr[1] "шляпы с капюшоном" -msgstr[2] "шляп с капюшоном" -msgstr[3] "шляпы с капюшоном" - -#. ~ Description for hooded hat -#: lang/json/ARMOR_from_json.py -msgid "" -"A proper wide-brimmed hat, modified by the addition of a hood sewn to it, to" -" better protect the neck from wind and rain." -msgstr "" -"Приличная широкополая шляпа с пришитым капюшоном для лучшей защиты шеи от " -"ветра и дождя." - #: lang/json/ARMOR_from_json.py msgid "TEST pair of socks" msgid_plural "TEST pairs of socks" @@ -28063,6 +27608,32 @@ msgstr[1] "ТЕСТОВЫХ портфеля" msgstr[2] "ТЕСТОВЫХ портфелей" msgstr[3] "ТЕСТОВЫЕ портфели" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "тестовый колчан" +msgstr[1] "тестовых колчана" +msgstr[2] "тестовых колчанов" +msgstr[3] "тестовые колчаны" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "Колчан Тестирования, вмещающий 20 стрел или арбалетных болтов." + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "тестовая силовая броня" +msgstr[1] "тестовая силовая броня" +msgstr[2] "тестовая силовая броня" +msgstr[3] "тестовая силовая броня" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "Прототип силовой брони для отладки." + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -30384,6 +29955,23 @@ msgstr "" "При наличии бионической энергии он периодически выпускает порцию дофамина и " "других химикатов, вызывая чувство эйфории и подавляя страх." +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "Черепная бомба" +msgstr[1] "Черепные бомбы" +msgstr[2] "Черепных бомб" +msgstr[3] "Черепные бомбы" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "" +"Бомба, установленная там, где спинной мозг переходит в головной. На ней " +"установлен таймер обратного отсчета, и у вас нет кода деактивации." + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -30425,6 +30013,30 @@ msgstr "" "превращать внутреннюю энергию крови в бионическую энергию. Чем крепче кровь," " тем лучше. Вмещает до 100 мл крови." +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Crystallized Mana Nose Replacement" +msgid_plural "Crystallized Mana Nose Replacements" +msgstr[0] "нос из кристаллизованной маны" +msgstr[1] "носа из кристаллизованной маны" +msgstr[2] "носов из кристаллизованной маны" +msgstr[3] "носы из кристаллизованной маны" + +#. ~ Description for {'str': 'Crystallized Mana Nose Replacement'} +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"A large gem made with crystallized mana and some other stabilizing metals. " +"Comes with a specially designed power pack (installed into the skull) that " +"does not interfere with your mana ley lines. WARNING: for Technomancer use " +"only. By using this spell you are waiving all liability of Frikken Laser " +"Beams Inc. and its subsidiaries." +msgstr "" +"Большой драгоценный камень из кристаллизованной маны и стабилизирующих " +"металлов. В комплекте идет специальный источник питания для установки в " +"череп, позволяющий предотвратить интерференцию с лей-линиями. " +"ПРЕДУПРЕЖДЕНИЕ: только для техномансеров. Используя данное заклинание, вы " +"снимаете всю ответственность с корпорации ЛазерПиуПиу Инкорпорейтед и ее " +"дочерних предприятий." + #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" msgid_plural "chicken walker schematics" @@ -30504,6 +30116,391 @@ msgstr "" "представили очень убедительные доводы в пользу идеи использования пружинных " "ядерных боеголовок. На обложке стоит штамп «ОТКЛОНЕНО»." +#: lang/json/BOOK_from_json.py +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" +msgstr[0] "абстрактная документальная книга" +msgstr[1] "абстрактные документальные книги" +msgstr[2] "абстрактных документальных книг" +msgstr[3] "абстрактные документальные книги" + +#. ~ Description for Generic Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a manuscript purporting to be factual" +msgstr "Шаблон для документальной или научно-популярной книги." + +#: lang/json/BOOK_from_json.py +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" +msgstr[0] "абстрактная недокументальная книга" +msgstr[1] "абстрактные недокументальные книги" +msgstr[2] "абстрактных недокументальных книг" +msgstr[3] "абстрактные недокументальные книги" + +#. ~ Description for Generic Fiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a work of fiction" +msgstr "Шаблон для недокументальной книги." + +#: lang/json/BOOK_from_json.py +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" +msgstr[0] "абстрактная недокументальная книга в твердой обложке" +msgstr[1] "абстрактные недокументальные книги в твердой обложке" +msgstr[2] "абстрактных недокументальных книг в твердой обложке" +msgstr[3] "абстрактные недокументальные книги в твердой обложке" + +#. ~ Description for Generic Hard Bound Fiction Book +#: lang/json/BOOK_from_json.py +msgid "Template for hard bound book of fiction" +msgstr "Шаблон для недокументальной книги в твердой обложке." + +#: lang/json/BOOK_from_json.py +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "книга в мягкой обложке" +msgstr[1] "книги в мягкой обложке" +msgstr[2] "книг в мягкой обложке" +msgstr[3] "книги в мягкой обложке" + +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#: lang/json/BOOK_from_json.py +msgid "An ordinary paperback book. Or is it? It is." +msgstr "Обычный бульварный роман. Или нет? Определенно да." + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Book" +msgid_plural "Nonfiction Books" +msgstr[0] "документальная книга" +msgstr[1] "документальные книги" +msgstr[2] "документальных книг" +msgstr[3] "документальные книги" + +#. ~ Description for Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for hard bound nonfiction book" +msgstr "Шаблон для документальной книги в твердой обложке." + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Paperback" +msgid_plural "Nonfiction Paperbacks" +msgstr[0] "документальная книга с мягкой обложкой" +msgstr[1] "документальные книги с мягкой обложкой" +msgstr[2] "документальных книг с мягкой обложкой" +msgstr[3] "документальные книги с мягкой обложкой" + +#. ~ Description for Nonfiction Paperback +#: lang/json/BOOK_from_json.py +msgid "template for a paperback nonfiction book" +msgstr "Шаблон для документальной книги в мягкой обложке." + +#: lang/json/BOOK_from_json.py +msgid "Homemaking Book" +msgid_plural "Homemaking Books" +msgstr[0] "книга по домоводству" +msgstr[1] "книги по домоводству" +msgstr[2] "книг по домоводству" +msgstr[3] "книги по домоводству" + +#. ~ Description for Homemaking Book +#: lang/json/BOOK_from_json.py +msgid "" +"This is a template for books about homemaking, style, home decor, and home " +"economics." +msgstr "" +"Шаблон для книг по домоводству, стилю, интерьеру и ведению семейного " +"бюджета." + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Cookbook" +msgid_plural "Hardcover Cookbooks" +msgstr[0] "кулинарная книга в твердой обложке" +msgstr[1] "кулинарные книги в твердой обложке" +msgstr[2] "кулинарных книг в твердой обложке" +msgstr[3] "кулинарные книги в твердой обложке" + +#. ~ Description for Hardcover Cookbook +#. ~ Description for Softcover Cookbook +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about cooking." +msgstr "Шаблон для кулинарных книг." + +#: lang/json/BOOK_from_json.py +msgid "Softcover Cookbook" +msgid_plural "Softcover Cookbooks" +msgstr[0] "кулинарная книга в мягкой обложке" +msgstr[1] "кулинарные книги в мягкой обложке" +msgstr[2] "кулинарных книг в мягкой обложке" +msgstr[3] "кулинарные книги в мягкой обложке" + +#: lang/json/BOOK_from_json.py +msgid "dodge skillbook abstract" +msgid_plural "dodge skillbook abstracts" +msgstr[0] "абстрактный учебник уклонения" +msgstr[1] "абстрактных учебника уклонения" +msgstr[2] "абстрактных учебников уклонения" +msgstr[3] "абстрактные учебники уклонения" + +#. ~ Description for dodge skillbook abstract +#: lang/json/BOOK_from_json.py +msgid "An ordinary book. Or is it? It is." +msgstr "Обычная книжка. Или нет? Определенно да." + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" +msgstr[0] "философская книга в твердой обложке" +msgstr[1] "философские книги в твердой обложке" +msgstr[2] "философских книг в твердой обложке" +msgstr[3] "философские книги в твердой обложке" + +#. ~ Description for Hardcover Philosophy +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about philosophy." +msgstr "Шаблон для книг о философии." + +#: lang/json/BOOK_from_json.py +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" +msgstr[0] "философская книга в мягкой обложке" +msgstr[1] "философские книги в мягкой обложке" +msgstr[2] "философских книг в мягкой обложке" +msgstr[3] "философские книги в мягкой обложке" + +#. ~ Description for Softcover Philosophy. +#: lang/json/BOOK_from_json.py +msgid "This is a template for paperbacks about philosophy." +msgstr "Шаблон для книг о философии в мягкой обложке." + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" +msgstr[0] "абстрактная документальная книга о спорте" +msgstr[1] "абстрактные документальные книги о спорте" +msgstr[2] "абстрактных документальных книг о спорте" +msgstr[3] "абстрактные документальные книги о спорте" + +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. +#: lang/json/BOOK_from_json.py +msgid "This is a template." +msgstr "Это шаблон." + +#: lang/json/BOOK_from_json.py +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "абстрактная документальная книга о спорте в мягкой обложке" +msgstr[1] "абстрактные документальные книги о спорте в мягкой обложке" +msgstr[2] "абстрактных документальных книг о спорте в мягкой обложке" +msgstr[3] "абстрактные документальные книги о спорте в мягкой обложке" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "абстрактная недокументальная книга о спорте в твердой обложке" +msgstr[1] "абстрактные недокументальные книги о спорте в твердой обложке" +msgstr[2] "абстрактных недокументальных книг о спорте в твердой обложке" +msgstr[3] "абстрактные недокументальные книги о спорте в твердой обложке" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "абстрактная недокументальная книга о спорте в мягкой обложке" +msgstr[1] "абстрактные недокументальные книги о спорте в мягкой обложке" +msgstr[2] "абстрактных недокументальных книг о спорте в мягкой обложке" +msgstr[3] "абстрактные недокументальные книги о спорте в мягкой обложке" + +#: lang/json/BOOK_from_json.py +msgid "template for mass produced books on esoteric subjects" +msgid_plural "template for mass produced books on esoteric subjectss" +msgstr[0] "шаблон для печатных книг по эзотерике" +msgstr[1] "шаблона для печатных книг по эзотерике" +msgstr[2] "шаблонов для печатных книг по эзотерике" +msgstr[3] "шаблоны для печатных книг по эзотерике" + +#. ~ Description for template for mass produced books on esoteric subjects +#: lang/json/BOOK_from_json.py +msgid "" +"An ordinary paperback book. Or is it? Is that a glimmer of higher truth?" +msgstr "" +"Обычная книжка в мягкой обложке. Или нет? Или же это отсвет высшей истины?" + +#: lang/json/BOOK_from_json.py +msgid "Sweet Providence Romance Novel" +msgid_plural "Sweet Providence Romance Novels" +msgstr[0] "любовный роман от Sweet Providence" +msgstr[1] "любовных романа от Sweet Providence" +msgstr[2] "любовных романов от Sweet Providence" +msgstr[3] "любовные романы от Sweet Providence" + +#. ~ Description for Sweet Providence Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is a publisher of discount romance paperbacks easily " +"recognized by their blue and yellow cover illustrations. Despite the adult " +"nature of their subject matter, the books tend to be under 250 pages of " +"large print written in a vocabulary consistent with a 4th grade reading " +"level." +msgstr "" +"Sweet Providence Books - издатель, публикующий дешевые романы в мягкой " +"обложке, легко узнаваемые по сине-желтой цветовой схеме иллюстраций. " +"Несмотря на взрослые темы книг, сами они длиной не больше 250 страниц " +"крупным шрифтом со словарным набором четвероклассника." + +#: lang/json/BOOK_from_json.py +msgid "Lorn and Loan Romance Novel" +msgid_plural "Lorn and Loan Romance Novels" +msgstr[0] "любовный роман от Lorn and Loan Press" +msgstr[1] "любовных романа от Lorn and Loan Press" +msgstr[2] "любовных романов от Lorn and Loan Press" +msgstr[3] "любовные романы от Lorn and Loan Press" + +#. ~ Description for Lorn and Loan Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Lorn and Loan Press marketed romance paperbacks to a variety of alt " +"demographics, especially those with a penchant for eyeliner. The books are " +"billed as \"provocative,\" but words like \"malingering\" and \"turgid\" " +"also come to mind." +msgstr "" +"Lorn and Loan Press - издатель любовных романов, ориентированных на " +"специфические демографические группы, прежде всего те, что злоупотребляют " +"подводкой для глаз. Книги рекламируются как «провокационные», но еще в " +"голову приходят такие слова как «претенциозные» и «напыщенные»." + +#: lang/json/BOOK_from_json.py +msgid "Vanilla Romance Novel" +msgid_plural "Vanilla Romance Novels" +msgstr[0] "любовный роман от Vanilla Media" +msgstr[1] "любовных романа от Vanilla Media" +msgstr[2] "любовных романов от Vanilla Media" +msgstr[3] "любовные романы от Vanilla Media" + +#. ~ Description for Vanilla Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Vanilla Media is a mainstream publisher providing romantic literature to " +"everyday readers of taste. These stories contain explicit details only in " +"the odd chapters, and invariably end with a conventionally uplifting moral." +msgstr "" +"Vanilla Media - крупный издатель, публикующий романтическую литературу на " +"любой вкус. В их историях нечто неприличное попадается крайне редко, а " +"каждая книга заканчивается общественно приемлемым морализаторским " +"воодушевлением." + +#: lang/json/BOOK_from_json.py +msgid "The Everyman Library" +msgid_plural "The Everyman Librarys" +msgstr[0] "книга от Everyman Library" +msgstr[1] "книги от Everyman Library" +msgstr[2] "книг от Everyman Library" +msgstr[3] "книги от Everyman Library" + +#. ~ Description for The Everyman Library +#: lang/json/BOOK_from_json.py +msgid "" +"The Everyman Library is an imprint of Vanilla Media that publishes stories " +"about private eyes, cowboys, quarterbacks, and mobsters." +msgstr "" +"Everyman Library - подразделение Vanilla Media, публикующее истории о " +"частных детективах, ковбоях, футболистах и преступниках." + +#: lang/json/BOOK_from_json.py +msgid "Tween Topics" +msgid_plural "Tween Topicss" +msgstr[0] "книга от Tween Topics" +msgstr[1] "книги от Tween Topics" +msgstr[2] "книг от Tween Topics" +msgstr[3] "книги от Tween Topics" + +#. ~ Description for Tween Topics +#: lang/json/BOOK_from_json.py +msgid "" +"Tween Topics is an imprint of Vanilla Media that publishes stories that " +"appeal to the youth of today. Or, failing that, the parents of said youth." +msgstr "" +"Tween Topics - подразделение Vanilla Media, публикующее книги для " +"подростков, или, в крайнем случае, для их родителей." + +#: lang/json/BOOK_from_json.py +msgid "Quiddity Books" +msgid_plural "Quiddity Bookss" +msgstr[0] "книга от Quiddity" +msgstr[1] "книги от Quiddity" +msgstr[2] "книг от Quiddity" +msgstr[3] "книги от Quiddity" + +#. ~ Description for Quiddity Books +#: lang/json/BOOK_from_json.py +msgid "" +"Quiddity publishes books for young adults. They offer stories about self-" +"discovery, personal identity, and contemporary trends." +msgstr "" +"Издательство Quiddity публикует книги для молодых взрослых. Они в основном " +"предлагают повести о поисках себя, значении личности и современных трендах." + +#: lang/json/BOOK_from_json.py +msgid "Satire Template" +msgid_plural "Satire Templates" +msgstr[0] "шаблон сатиры" +msgstr[1] "шаблона сатиры" +msgstr[2] "шаблонов сатиры" +msgstr[3] "шаблоны сатиры" + +#. ~ Description for Satire Template +#: lang/json/BOOK_from_json.py +msgid "template for mass produced satirical fiction" +msgstr "Шаблон для печатных сатирических книг." + +#: lang/json/BOOK_from_json.py +msgid "Magazine Template" +msgid_plural "Magazine Templates" +msgstr[0] "шаблон журнала" +msgstr[1] "шаблона журнала" +msgstr[2] "шаблонов журнала" +msgstr[3] "шаблоны журнала" + +#. ~ Description for Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for magazine" +msgstr "Шаблон для журналов." + +#: lang/json/BOOK_from_json.py +msgid "News Magazine Template" +msgid_plural "News Magazine Templates" +msgstr[0] "шаблон новостного журнала" +msgstr[1] "шаблона новостного журнала" +msgstr[2] "шаблонов новостного журнала" +msgstr[3] "шаблоны новостного журнала" + +#. ~ Description for News Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for news magazine" +msgstr "Шаблон для новостного журнала." + +#: lang/json/BOOK_from_json.py +msgid "readable magazine" +msgid_plural "readable magazines" +msgstr[0] "интересный журнал" +msgstr[1] "интересных журнала" +msgstr[2] "интересных журналов" +msgstr[3] "интересные журналы" + +#: lang/json/BOOK_from_json.py +msgid "archery skill training abstract" +msgid_plural "archery skill training abstracts" +msgstr[0] "абстрактный учебник стрельбы из лука" +msgstr[1] "абстрактных учебника стрельбы из лука" +msgstr[2] "абстрактных учебников стрельбы из лука" +msgstr[3] "абстрактные учебники стрельбы из лука" + +#. ~ Description for archery skill training abstract +#: lang/json/BOOK_from_json.py +msgid "template for heavy books that confer archery skill training" +msgstr "Шаблон для толстых книг, посвященных обучению стрельбе из лука." + #: lang/json/BOOK_from_json.py msgid "Lessons for the Novice Bowhunter" msgid_plural "copies of Lessons for the Novice Bowhunter" @@ -30523,6 +30520,24 @@ msgstr "" "начинающих лучников. Полезна начинающиму охотнику, использующему лук или " "арбалет." +#: lang/json/BOOK_from_json.py +msgid "Zen and the Art of Archery" +msgid_plural "copies of Zen and the Art of Archery" +msgstr[0] "«Дзен и искусство стрельбы из лука» " +msgstr[1] "книги «Дзен и искусство стрельбы из лука»" +msgstr[2] "книг «Дзен и искусство стрельбы из лука»" +msgstr[3] "книги «Дзен и искусство стрельбы из лука»" + +#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies +#. of Zen and the Art of Archery'} +#: lang/json/BOOK_from_json.py +msgid "" +"This massive book contains a wealth of vital information for the novice " +"archer." +msgstr "" +"Массивная книга, содержащая много полезной информации для начинающего " +"лучника." + #: lang/json/BOOK_from_json.py msgid "Archery for Kids" msgid_plural "issues of Archery for Kids" @@ -30543,24 +30558,6 @@ msgstr "" " узнаете, как это делается, вы будете хорошо проводить время, стреляя из " "лука." -#: lang/json/BOOK_from_json.py -msgid "Zen and the Art of Archery" -msgid_plural "copies of Zen and the Art of Archery" -msgstr[0] "«Дзен и искусство стрельбы из лука» " -msgstr[1] "книги «Дзен и искусство стрельбы из лука»" -msgstr[2] "книг «Дзен и искусство стрельбы из лука»" -msgstr[3] "книги «Дзен и искусство стрельбы из лука»" - -#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies -#. of Zen and the Art of Archery'} -#: lang/json/BOOK_from_json.py -msgid "" -"This massive book contains a wealth of vital information for the novice " -"archer." -msgstr "" -"Массивная книга, содержащая много полезной информации для начинающего " -"лучника." - #: lang/json/BOOK_from_json.py msgid "car buyer's guide" msgid_plural "car buyer's guides" @@ -30648,100 +30645,6 @@ msgstr "" "персонала. Содержит проверенную временем актуальную информацию. Написано " "так, чтобы быть понятным новичкам." -#: lang/json/BOOK_from_json.py -msgid "SICP" -msgid_plural "copies of SICP" -msgstr[0] "«Структура и интерпретация компьютерных программ»" -msgstr[1] "книги «Структура и интерпретация компьютерных программ»" -msgstr[2] "книг «Структура и интерпретация компьютерных программ»" -msgstr[3] "книги «Структура и интерпретация компьютерных программ»" - -#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} -#: lang/json/BOOK_from_json.py -msgid "" -"A classic text, \"The Structure and Interpretation of Computer Programs.\" " -"Written with examples in LISP, but applicable to any language." -msgstr "" -"Классика, «Структура и интерпретация компьютерных программ». Содержит " -"примеры на LISP, но принципы применимы к любому другому языку." - -#: lang/json/BOOK_from_json.py -msgid "Computer Science 301" -msgid_plural "copies of Computer Science 301" -msgstr[0] "«Продвинутая информатика» " -msgstr[1] "книги «Продвинутая информатика»" -msgstr[2] "книг «Продвинутая информатика»" -msgstr[3] "книги «Продвинутая информатика»" - -#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of -#. Computer Science 301'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on computer science." -msgstr "Учебник по информатике, предназначенный для колледжа." - -#: lang/json/BOOK_from_json.py -msgid "How to Browse the Web" -msgid_plural "copies of How to Browse the Web" -msgstr[0] "«Интернет: руководство для чайников»" -msgstr[1] "книги «Интернет: руководство для чайников»" -msgstr[2] "книг «Интернет: руководство для чайников»" -msgstr[3] "книги «Интернет: руководство для чайников»" - -#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How -#. to Browse the Web'} -#: lang/json/BOOK_from_json.py -msgid "Very beginner-level information about computers." -msgstr "Информация начального уровня о компьютерах." - -#: lang/json/BOOK_from_json.py -msgid "Computer World" -msgid_plural "issues of Computer World" -msgstr[0] "«Компьютерный мир»" -msgstr[1] "журнала «Компьютерный мир»" -msgstr[2] "журналов «Компьютерный мир»" -msgstr[3] "журналы «Компьютерный мир»" - -#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer -#. World'} -#: lang/json/BOOK_from_json.py -msgid "" -"An informative magazine all about computers, both hardware and software." -msgstr "" -"Информационный журнал о компьютерах, их программном и аппаратном " -"обеспечении." - -#: lang/json/BOOK_from_json.py -msgid "Computer Science 101" -msgid_plural "copies of Computer Science 101" -msgstr[0] "«Информатика для начинающих» " -msgstr[1] "книги «Информатика для начинающих»" -msgstr[2] "книг «Информатика для начинающих»" -msgstr[3] "книги «Информатика для начинающих»" - -#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of -#. Computer Science 101'} -#: lang/json/BOOK_from_json.py -msgid "An entry-level textbook about computers." -msgstr "Учебник начального уровня о компьютерах." - -#: lang/json/BOOK_from_json.py -msgid "Principles of Advanced Programming" -msgid_plural "copies of Principles of Advanced Programming" -msgstr[0] "«Принципы продвинутого программирования»" -msgstr[1] "книги «Принципы продвинутого программирования»" -msgstr[2] "книг «Принципы продвинутого программирования»" -msgstr[3] "книги «Принципы продвинутого программирования»" - -#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': -#. 'copies of Principles of Advanced Programming'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy textbook dedicated to advanced-level software design, written for " -"several different programming languages." -msgstr "" -"Тяжёлый учебник, посвящённый продвинутому программированию, с примерами для " -"разных языков программирования." - #: lang/json/BOOK_from_json.py msgid "Advanced Physical Chemistry" msgid_plural "copies of Advanced Physical Chemistry" @@ -30754,150 +30657,13 @@ msgstr[3] "книги «Углублённая физическая химия» #. of Advanced Physical Chemistry'} #: lang/json/BOOK_from_json.py msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." -msgstr "" -"Университетский учебник по продвинутой органической и неорганической химии." - -#: lang/json/BOOK_from_json.py -msgid "The Homebrewer's Bible" -msgid_plural "copies of The Homebrewer's Bible" -msgstr[0] "«Библия пивовара»" -msgstr[1] "книги «Библия пивовара»" -msgstr[2] "книг «Библия пивовара»" -msgstr[3] "книги «Библия пивовара»" - -#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of -#. The Homebrewer's Bible"} -#: lang/json/BOOK_from_json.py -msgid "" -"A book full of easy-to-follow recipes and useful advice on homebrewing, " -"malting, and fermenting. It even smells faintly of booze." -msgstr "" -"Книга полна пошаговыми рецептами и полезными советами по пивоварению, " -"соложению и ферментации. От неё даже слегка пахнет выпивкой." - -#: lang/json/BOOK_from_json.py -msgid "Cooking on a Budget" -msgid_plural "copies of Cooking on a Budget" -msgstr[0] "«Бюджетная еда»" -msgstr[1] "книги «Бюджетная еда»" -msgstr[2] "книг «Бюджетная еда»" -msgstr[3] "книги «Бюджетная еда»" - -#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of -#. Cooking on a Budget'} -#: lang/json/BOOK_from_json.py -msgid "" -"A nice cook book that goes beyond recipes and into the chemistry of food." -msgstr "Отличная кулинарная книга, на грани кулинарии и химии." - -#: lang/json/BOOK_from_json.py -msgid "To Serve Man" -msgid_plural "copies of To Serve Man" -msgstr[0] "«Как приготовить человека»" -msgstr[1] "книги «Как приготовить человека»" -msgstr[2] "книг «Как приготовить человека»" -msgstr[3] "книги «Как приготовить человека»" - -#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve -#. Man'} -#: lang/json/BOOK_from_json.py -msgid "It's… it's a cookbook!" -msgstr "Это… Это — поваренная книга!" - -#: lang/json/BOOK_from_json.py -msgid "Cucina Italiana" -msgid_plural "copies of Cucina Italiana" -msgstr[0] "«Итальянская кухня» " -msgstr[1] "книги «Итальянская кухня»" -msgstr[2] "книг «Итальянская кухня»" -msgstr[3] "книги «Итальянская кухня»" - -#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina -#. Italiana'} -#: lang/json/BOOK_from_json.py -msgid "" -"This cookbook is written in Italian, but handily illustrated with step by " -"step photo instructions." -msgstr "" -"Эта поваренная книга написана на итальянском языке, но удобно иллюстрирована" -" пошаговыми фото-инструкциями." - -#: lang/json/BOOK_from_json.py -msgid "Sushi Made Easy" -msgid_plural "copies of Sushi Made Easy" -msgstr[0] "«Суши — это просто»" -msgstr[1] "копии «Суши — это просто»" -msgstr[2] "копий «Суши — это просто»" -msgstr[3] "копии «Суши — это просто»" - -#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi -#. Made Easy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A simple text for the aspiring sushi lover, this easy to read guide is " -"filled with lots of helpful illustrations for everything from basic rice " -"preparation to setting a proper Japanese table." -msgstr "" -"Простой текст для начинающих любителей суши. Это лёгкое для чтения " -"руководство наполнено большим количеством полезных иллюстраций для всего, от" -" основной готовки риса до правильной сервировки японского стола." - -#: lang/json/BOOK_from_json.py -msgid "family cookbook" -msgid_plural "family cookbooks" -msgstr[0] "семейные рецепты" -msgstr[1] "семейных рецептов" -msgstr[2] "семейных рецептов" -msgstr[3] "семейные рецепты" - -#. ~ Description for {'str': 'family cookbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A big binder full of somebody's family recipes. The well-turned pages and " -"creased corners speak volumes of the culinary knowledge contained within. " -"You could probably learn a lot about cooking from studying this domestic " -"artifact." +"A university-level textbook on advanced principles of physical chemistry and" +" all its branches: thermochemistry, electrochemistry, solid-state chemistry," +" photochemistry, quantum chemistry et cetera." msgstr "" -"Толстая папка с семейными рецептами. Избранные страницы и уголки-закладки " -"яснее слов говорят о содержащихся в нём кулинарном знании. Вы можете много " -"узнать о готовке, изучая этот семейный раритет." - -#: lang/json/BOOK_from_json.py -msgid "Bon Appetit" -msgid_plural "issues of Bon Appetit" -msgstr[0] "«Приятного аппетита»" -msgstr[1] "выпуски журнала «Приятного аппетита»" -msgstr[2] "выпусков журнала «Приятного аппетита»" -msgstr[3] "выпуски журнала «Приятного аппетита»" - -#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} -#: lang/json/BOOK_from_json.py -msgid "" -"Exciting recipes and restaurant reviews. Full of handy tips about cooking." -msgstr "" -"Захватывающие рецепты и обзоры ресторанов. Много полезных советов по " -"приготовлению пищи." - -#: lang/json/BOOK_from_json.py -msgid "Glamopolitan" -msgid_plural "issues of Glamopolitan" -msgstr[0] "«Гламополитен»" -msgstr[1] "выпуски журнала «Гламополитен»" -msgstr[2] "выпусков журнала «Гламополитен»" -msgstr[3] "выпуски журнала «Гламополитен»" - -#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of -#. Glamopolitan'} -#: lang/json/BOOK_from_json.py -msgid "" -"This is a full-size glossy women's magazine. There are a few unoriginal " -"recipes and some simple cooking tips somewhere in between the fashion photos" -" and the sex advice columns." -msgstr "" -"Глянцевый журнал для женщин. Содержит банальные и простые рецепты блюд, " -"вперемешку с фотографиями модниц и советами в сексуальной сфере." +"Книга университетского уровня по продвинутым принципам физической химии с " +"подробными разделами по ее тематикам: термохимия, электрохимия, химия " +"твердых тел, фотохимия, квантовая химия и так далее." #: lang/json/BOOK_from_json.py msgid "The Modern Tanner" @@ -30939,10 +30705,10 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "lab journal-Dionne" msgid_plural "lab journals-Dionne" -msgstr[0] "лабораторный журнал: Дайон" -msgstr[1] "лабораторных журнала: Дайон" -msgstr[2] "лабораторных журналов: Дайон" -msgstr[3] "лабораторные журналы: Дайон" +msgstr[0] "лабораторный журнал: Дайонн" +msgstr[1] "лабораторных журнала: Дайонн" +msgstr[2] "лабораторных журналов: Дайонн" +msgstr[3] "лабораторные журналы: Дайонн" #. ~ Description for {'str': 'lab journal-Dionne', 'str_pl': 'lab journals- #. Dionne'} @@ -31141,6 +30907,316 @@ msgstr "" "многим техническим дисциплинам. Если вам по душе рассматривать таблицы " "данных по химии и физике, это книга для вас." +#: lang/json/BOOK_from_json.py +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" +msgstr[0] "учебник химии" +msgstr[1] "учебника химии" +msgstr[2] "учебников химии" +msgstr[3] "учебники химии" + +#. ~ Description for {'str': 'chemistry textbook'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on chemistry." +msgstr "Учебник по химии, предназначенный для колледжа." + +#: lang/json/BOOK_from_json.py +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" +msgstr[0] "«Справочник по эфирным маслам»" +msgstr[1] "книги «Справочник по эфирным маслам»" +msgstr[2] "книг «Справочник по эфирным маслам»" +msgstr[3] "книги «Справочник по эфирным маслам»" + +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', +#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" +msgstr "" +"Тяжелая книга в твердом переплете, описывающая процессы получения эфирных " +"масел со схемами необходимого оборудования. Удачи, и не взорви себя!" + +#: lang/json/BOOK_from_json.py +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" +msgstr[0] "«Искусство и наука химической войны»" +msgstr[1] "книги «Искусство и наука химической войны»" +msgstr[2] "книг «Искусство и наука химической войны»" +msgstr[3] "книги «Искусство и наука химической войны»" + +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': +#. 'copies of Art and Science of Chemical Warfare'} +#: lang/json/BOOK_from_json.py +msgid "" +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at" +" times, though the information is top-notch." +msgstr "" +"Исчерпывающий технический текст, охватывающий проектирование, разработку, " +"распространение и защиту от различного химического оружия на протяжении " +"веков. Информация очень полезная, но фотографии, выбранные автором, " +"временами затрудняют чтение." + +#: lang/json/BOOK_from_json.py +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" +msgstr[0] "«Химия для детей: крутые и зрелищные эксперименты»" +msgstr[1] "книги «Химия для детей: крутые и зрелищные эксперименты»" +msgstr[2] "книг «Химия для детей: крутые и зрелищные эксперименты»" +msgstr[3] "книги «Химия для детей: крутые и зрелищные эксперименты»" + +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments +#. that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science +#. Experiments that Really Work'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book with comprehensive and accurate step-by-step illustrated instructions" +" for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." +msgstr "" +"Книга с подробными и точными пошаговыми инструкциями многих научных " +"экспериментов для юных исследователей и всех, кто хочет окунуться в " +"удивительный мир химии." + +#: lang/json/BOOK_from_json.py +msgid "SICP" +msgid_plural "copies of SICP" +msgstr[0] "«Структура и интерпретация компьютерных программ»" +msgstr[1] "книги «Структура и интерпретация компьютерных программ»" +msgstr[2] "книг «Структура и интерпретация компьютерных программ»" +msgstr[3] "книги «Структура и интерпретация компьютерных программ»" + +#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#: lang/json/BOOK_from_json.py +msgid "" +"A classic text, \"The Structure and Interpretation of Computer Programs.\" " +"Written with examples in LISP, but applicable to any language." +msgstr "" +"Классика, «Структура и интерпретация компьютерных программ». Содержит " +"примеры на LISP, но принципы применимы к любому другому языку." + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 301" +msgid_plural "copies of Computer Science 301" +msgstr[0] "«Продвинутая информатика» " +msgstr[1] "книги «Продвинутая информатика»" +msgstr[2] "книг «Продвинутая информатика»" +msgstr[3] "книги «Продвинутая информатика»" + +#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of +#. Computer Science 301'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on computer science." +msgstr "Учебник по информатике, предназначенный для колледжа." + +#: lang/json/BOOK_from_json.py +msgid "How to Browse the Web" +msgid_plural "copies of How to Browse the Web" +msgstr[0] "«Интернет: руководство для чайников»" +msgstr[1] "книги «Интернет: руководство для чайников»" +msgstr[2] "книг «Интернет: руководство для чайников»" +msgstr[3] "книги «Интернет: руководство для чайников»" + +#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How +#. to Browse the Web'} +#: lang/json/BOOK_from_json.py +msgid "Very beginner-level information about computers." +msgstr "Информация начального уровня о компьютерах." + +#: lang/json/BOOK_from_json.py +msgid "Computer World" +msgid_plural "issues of Computer World" +msgstr[0] "«Компьютерный мир»" +msgstr[1] "журнала «Компьютерный мир»" +msgstr[2] "журналов «Компьютерный мир»" +msgstr[3] "журналы «Компьютерный мир»" + +#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer +#. World'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative magazine all about computers, both hardware and software." +msgstr "" +"Информационный журнал о компьютерах, их программном и аппаратном " +"обеспечении." + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 101" +msgid_plural "copies of Computer Science 101" +msgstr[0] "«Информатика для начинающих» " +msgstr[1] "книги «Информатика для начинающих»" +msgstr[2] "книг «Информатика для начинающих»" +msgstr[3] "книги «Информатика для начинающих»" + +#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of +#. Computer Science 101'} +#: lang/json/BOOK_from_json.py +msgid "An entry-level textbook about computers." +msgstr "Учебник начального уровня о компьютерах." + +#: lang/json/BOOK_from_json.py +msgid "Principles of Advanced Programming" +msgid_plural "copies of Principles of Advanced Programming" +msgstr[0] "«Принципы продвинутого программирования»" +msgstr[1] "книги «Принципы продвинутого программирования»" +msgstr[2] "книг «Принципы продвинутого программирования»" +msgstr[3] "книги «Принципы продвинутого программирования»" + +#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': +#. 'copies of Principles of Advanced Programming'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy textbook dedicated to advanced-level software design, written for " +"several different programming languages." +msgstr "" +"Тяжёлый учебник, посвящённый продвинутому программированию, с примерами для " +"разных языков программирования." + +#: lang/json/BOOK_from_json.py +msgid "The Homebrewer's Bible" +msgid_plural "copies of The Homebrewer's Bible" +msgstr[0] "«Библия пивовара»" +msgstr[1] "книги «Библия пивовара»" +msgstr[2] "книг «Библия пивовара»" +msgstr[3] "книги «Библия пивовара»" + +#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of +#. The Homebrewer's Bible"} +#: lang/json/BOOK_from_json.py +msgid "" +"A book full of easy-to-follow recipes and useful advice on homebrewing, " +"malting, and fermenting. It even smells faintly of booze." +msgstr "" +"Книга полна пошаговыми рецептами и полезными советами по пивоварению, " +"соложению и ферментации. От неё даже слегка пахнет выпивкой." + +#: lang/json/BOOK_from_json.py +msgid "Cooking on a Budget" +msgid_plural "copies of Cooking on a Budget" +msgstr[0] "«Бюджетная еда»" +msgstr[1] "книги «Бюджетная еда»" +msgstr[2] "книг «Бюджетная еда»" +msgstr[3] "книги «Бюджетная еда»" + +#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of +#. Cooking on a Budget'} +#: lang/json/BOOK_from_json.py +msgid "" +"A nice cook book that goes beyond recipes and into the chemistry of food." +msgstr "Отличная кулинарная книга, на грани кулинарии и химии." + +#: lang/json/BOOK_from_json.py +msgid "To Serve Man" +msgid_plural "copies of To Serve Man" +msgstr[0] "«Как приготовить человека»" +msgstr[1] "книги «Как приготовить человека»" +msgstr[2] "книг «Как приготовить человека»" +msgstr[3] "книги «Как приготовить человека»" + +#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve +#. Man'} +#: lang/json/BOOK_from_json.py +msgid "It's… it's a cookbook!" +msgstr "Это… Это — поваренная книга!" + +#: lang/json/BOOK_from_json.py +msgid "Cucina Italiana" +msgid_plural "copies of Cucina Italiana" +msgstr[0] "«Итальянская кухня» " +msgstr[1] "книги «Итальянская кухня»" +msgstr[2] "книг «Итальянская кухня»" +msgstr[3] "книги «Итальянская кухня»" + +#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina +#. Italiana'} +#: lang/json/BOOK_from_json.py +msgid "" +"This cookbook is written in Italian, but handily illustrated with step by " +"step photo instructions." +msgstr "" +"Эта поваренная книга написана на итальянском языке, но удобно иллюстрирована" +" пошаговыми фото-инструкциями." + +#: lang/json/BOOK_from_json.py +msgid "Sushi Made Easy" +msgid_plural "copies of Sushi Made Easy" +msgstr[0] "«Суши — это просто»" +msgstr[1] "копии «Суши — это просто»" +msgstr[2] "копий «Суши — это просто»" +msgstr[3] "копии «Суши — это просто»" + +#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi +#. Made Easy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A simple text for the aspiring sushi lover, this easy to read guide is " +"filled with lots of helpful illustrations for everything from basic rice " +"preparation to setting a proper Japanese table." +msgstr "" +"Простой текст для начинающих любителей суши. Это лёгкое для чтения " +"руководство наполнено большим количеством полезных иллюстраций для всего, от" +" основной готовки риса до правильной сервировки японского стола." + +#: lang/json/BOOK_from_json.py +msgid "family cookbook" +msgid_plural "family cookbooks" +msgstr[0] "семейные рецепты" +msgstr[1] "семейных рецептов" +msgstr[2] "семейных рецептов" +msgstr[3] "семейные рецепты" + +#. ~ Description for {'str': 'family cookbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A big binder full of somebody's family recipes. The well-turned pages and " +"creased corners speak volumes of the culinary knowledge contained within. " +"You could probably learn a lot about cooking from studying this domestic " +"artifact." +msgstr "" +"Толстая папка с семейными рецептами. Избранные страницы и уголки-закладки " +"яснее слов говорят о содержащихся в нём кулинарном знании. Вы можете много " +"узнать о готовке, изучая этот семейный раритет." + +#: lang/json/BOOK_from_json.py +msgid "Bon Appetit" +msgid_plural "issues of Bon Appetit" +msgstr[0] "«Приятного аппетита»" +msgstr[1] "выпуски журнала «Приятного аппетита»" +msgstr[2] "выпусков журнала «Приятного аппетита»" +msgstr[3] "выпуски журнала «Приятного аппетита»" + +#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#: lang/json/BOOK_from_json.py +msgid "" +"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +msgstr "" +"Захватывающие рецепты и обзоры ресторанов. Много полезных советов по " +"приготовлению пищи." + +#: lang/json/BOOK_from_json.py +msgid "Glamopolitan" +msgid_plural "issues of Glamopolitan" +msgstr[0] "«Гламополитен»" +msgstr[1] "выпуски журнала «Гламополитен»" +msgstr[2] "выпусков журнала «Гламополитен»" +msgstr[3] "выпуски журнала «Гламополитен»" + +#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of +#. Glamopolitan'} +#: lang/json/BOOK_from_json.py +msgid "" +"This is a full-size glossy women's magazine. There are a few unoriginal " +"recipes and some simple cooking tips somewhere in between the fashion photos" +" and the sex advice columns." +msgstr "" +"Глянцевый журнал для женщин. Содержит банальные и простые рецепты блюд, " +"вперемешку с фотографиями модниц и советами в сексуальной сфере." + #. ~ That would translate out to The Scottish Book of Cookery, or The Scottish #. Cookbook. #: lang/json/BOOK_from_json.py @@ -31156,30 +31232,16 @@ msgstr[3] "шотландские поваренные книги" #. 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of" +" people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." msgstr "" -"Наполовину переведённая поваренная книга родом из Шотландии тринадцатого " +"Наполовину переведённая поваренная книга родом из Шотландии шестнадцатого " "века. Хотя читать её довольно тяжело, так как в ней присутствуют неприятные " -"картинки людей, тыкающих друг в друга клинками, вперемешку с рецептами, она " -"даёт представление о культуре и образе жизни в средневековой Шотландии, а " -"также новые способы употребления овсянки, рыбы и овечьей печени." - -#: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" -msgstr[0] "учебник химии" -msgstr[1] "учебника химии" -msgstr[2] "учебников химии" -msgstr[3] "учебники химии" - -#. ~ Description for {'str': 'chemistry textbook'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." -msgstr "Учебник по химии, предназначенный для колледжа." +"картинки людей, тыкающих друг в друга клинками, вперемешку со спорами о " +"«настоящем шотландце», она даёт представление о культуре и образе жизни в " +"средневековой Шотландии, а также кухне и кулинарии того времени." #: lang/json/BOOK_from_json.py msgid "The Vinegar Maker's Handbook" @@ -31431,26 +31493,26 @@ msgstr "" " которых вы уже никогда не найдете ингредиенты." #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" msgstr[0] "" "«Из пламени в бутылку: справочник по дистилляции в домашних условиях»" msgstr[1] "" -"копии «Из пламени в бутылку: справочник по дистилляции в домашних условиях»" +"книги «Из пламени в бутылку: справочник по дистилляции в домашних условиях»" msgstr[2] "" -"копий «Из пламени в бутылку: справочник по дистилляции в домашних условиях»" +"книг «Из пламени в бутылку: справочник по дистилляции в домашних условиях»" msgstr[3] "" -"копии «Из пламени в бутылку: справочник по дистилляции в домашних условиях»" +"книги «Из пламени в бутылку: справочник по дистилляции в домашних условиях»" #. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to -#. home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " -"chapter contains a complete recipe for it's namesake." +"chapter contains a complete recipe for its namesake." msgstr "" -"Книга, содержащая историю развития дистилляции алкоголя в домашних условиях " -"и разбитая на главы о напитках. Каждая глава также содержит рецепт " +"Книга, содержащая историю дистилляции алкоголя в домашних условиях и " +"разбитая на главы о напитках. Каждая глава также содержит рецепт " "изготовления напитка, описанного в ней." #: lang/json/BOOK_from_json.py @@ -31487,7 +31549,7 @@ msgstr[3] "копии «Карманная книга рецептов для д #: lang/json/BOOK_from_json.py msgid "" "The smallest cookbook on the market, marketed exclusively to the " -"outdoorsman. Packs a surprising number of recipes for it's tiny size." +"outdoorsman. Packs a surprising number of recipes for its tiny size." msgstr "" "Самая маленькая книга рецептов, предназначенная для любителей вылазок на " "природу. Вмещает впечатляющее количество рецептов, несмотря на небольшой " @@ -31609,6 +31671,26 @@ msgstr[3] "книги «Ни пуха, ни пера»" msgid "The Kids' Guide to Acting and Stagecraft." msgstr "Руководство по актёрскому мастерству для детей." +#: lang/json/BOOK_from_json.py +msgid "Treasury of Legends about Western Dancing" +msgid_plural "copies of Western Dancing" +msgstr[0] "«Сокровищница легенд о танцах западных народностей»" +msgstr[1] "книги «Сокровищница легенд о танцах западных народностей»" +msgstr[2] "книг «Сокровищница легенд о танцах западных народностей»" +msgstr[3] "книги «Сокровищница легенд о танцах западных народностей»" + +#. ~ Description for {'str': 'Treasury of Legends about Western Dancing', +#. 'str_pl': 'copies of Western Dancing'} +#: lang/json/BOOK_from_json.py +msgid "" +"Written by Emanuel Nogueira, a constabulario and historian of Nuevo Laredo, " +"this massive book details the movements and cultural legacies of a variety " +"of North American folk dances." +msgstr "" +"Книга за авторством Эммануэля Ногуэйра, полицейского и историка из Нуэво-" +"Ларедо. В этой толстой книге описано огромное количество танцев народностей " +"Северной Америки с движениями и культурным значением." + #: lang/json/BOOK_from_json.py msgid "AAA Guide" msgid_plural "copies of AAA Guide" @@ -32049,10 +32131,10 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "riot control bot schematics" msgid_plural "riot control bot schematics" -msgstr[0] "чертежи робота осназа" -msgstr[1] "чертежа робота осназа" -msgstr[2] "чертежей робота осназа" -msgstr[3] "чертежи робота осназа" +msgstr[0] "чертежи робота подавления беспорядков" +msgstr[1] "чертежа робота подавления беспорядков" +msgstr[2] "чертежей робота подавления беспорядков" +msgstr[3] "чертежи робота подавления беспорядков" #. ~ Description for {'str_sp': 'riot control bot schematics'} #: lang/json/BOOK_from_json.py @@ -32061,8 +32143,9 @@ msgid "" "bot. Most of this is useless to you, but you could use the assembly plans " "to re-assemble the robot from salvaged parts." msgstr "" -"Схемы сборки, указания и технические рисунки для робота осназа. Многое для " -"вас бесполезно, но вы смогли бы пересобрать робота из запчастей." +"Схемы сборки, указания и технические рисунки для робота подавления " +"беспорядков. Многое для вас бесполезно, но вы смогли бы пересобрать робота " +"из запчастей." #: lang/json/BOOK_from_json.py msgid "lab defense bot schematics" @@ -32452,28 +32535,6 @@ msgstr "" "Подробный технический труд, описывающий историю пожаротушения от древних " "времён до современности. Упор делается на технологии спасения жизней." -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "«Искусство и наука химической войны»" -msgstr[1] "книги «Искусство и наука химической войны»" -msgstr[2] "книг «Искусство и наука химической войны»" -msgstr[3] "книги «Искусство и наука химической войны»" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': -#. 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at" -" times, though the information is top-notch." -msgstr "" -"Исчерпывающий технический текст, охватывающий проектирование, разработку, " -"распространение и защиту от различного химического оружия на протяжении " -"веков. Информация очень полезная, но фотографии, выбранные автором, " -"временами затрудняют чтение." - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" @@ -32637,25 +32698,6 @@ msgstr "" "лучше всего провести какую-нибудь машинную обработку, ищите ответ где-то " "среди этих страниц." -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "«Справочник по эфирным маслам»" -msgstr[1] "книги «Справочник по эфирным маслам»" -msgstr[2] "книг «Справочник по эфирным маслам»" -msgstr[3] "книги «Справочник по эфирным маслам»" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', -#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "" -"Тяжелая книга в твердом переплете, описывающая процессы получения эфирных " -"масел со схемами необходимого оборудования. Удачи, и не взорви себя!" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -33038,6 +33080,24 @@ msgstr[3] "книги «Биодизель: возобновляемое топ msgid "A large textbook for college students about biodiesel." msgstr "Большой учебник о биодизеле для студентов колледжей." +#: lang/json/BOOK_from_json.py +msgid "Hot Rod Chassis & Suspension Handbook" +msgid_plural "copies of Hot Rod Handbook" +msgstr[0] "Руководство по созданию шасси и подвески хот-рода" +msgstr[1] "Руководства по созданию шасси и подвески хот-рода" +msgstr[2] "Руководств по созданию шасси и подвески хот-рода" +msgstr[3] "Руководства по созданию шасси и подвески хот-рода" + +#. ~ Description for {'str': 'Hot Rod Chassis & Suspension Handbook', +#. 'str_pl': 'copies of Hot Rod Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"By learning the fundamentals of chassis building and suspension design you " +"will gain the critical knowledge needed to hot rod properly." +msgstr "" +"Изучив основы создания шасси и подвески, вы узнаете, как создать правильный " +"хот род." + #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" msgid_plural "copies of Mechanical Mastery" @@ -33091,19 +33151,6 @@ msgstr "" "Замусоленная книга в твёрдом переплёте, которая иллюстрирует простую " "стратегию и приёмы ближнего боя." -#: lang/json/BOOK_from_json.py -msgid "paperback abstract" -msgid_plural "paperback abstracts" -msgstr[0] "абстрактный бульварный роман" -msgstr[1] "абстрактных бульварных романа" -msgstr[2] "абстрактных бульварных романов" -msgstr[3] "абстрактные бульварные романы" - -#. ~ Description for {'str': 'paperback abstract'} -#: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." -msgstr "Обычный бульварный роман. Или нет? Определенно да." - #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" msgid_plural "copies of Zombie Survival Guide" @@ -33139,25 +33186,6 @@ msgstr "" "Заполненный штурманский журнал с военного самолёта. Не представляет особой " "ценности." -#: lang/json/BOOK_from_json.py -msgid "children's book" -msgid_plural "children's books" -msgstr[0] "детская книжка" -msgstr[1] "детские книжки" -msgstr[2] "детских книжек" -msgstr[3] "детские книжки" - -#. ~ Description for {'str': "children's book"} -#: lang/json/BOOK_from_json.py -msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the dead walked" -" and the world moved on." -msgstr "" -"Маленькая книжка для маленьких читателей. Колоритные персонажи мультфильмов " -"и увлекательные истории из прежнего мира, до того, как смерть начала своё " -"шествие." - #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" msgid_plural "Ranch Prospectus" @@ -33201,190 +33229,6 @@ msgstr "" "Собрание эссе разных авторов со всего мира, включая произведения Черчиля, " "Мейлера, Эко и Вольтера." -#: lang/json/BOOK_from_json.py -msgid "book of fairy tales" -msgid_plural "books of fairy tales" -msgstr[0] "книга сказок" -msgstr[1] "книги сказок" -msgstr[2] "книг сказок" -msgstr[3] "книги сказок" - -#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy -#. tales'} -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of folklore featuring the usual cast of fairies, " -"goblins, and trolls." -msgstr "Забавная коллекция фольклора про фей, гоблинов и троллей." - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale is about a wolf who eats so much salted meat she becomes " -"trapped in the butcher's cellar." -msgstr "" -"Это сказка о волчице, съевшей столько засоленного мяса, что она застряла в " -"погребе мясника." - -#: lang/json/BOOK_from_json.py -msgid "" -"In this traditional story of beastly intrigue a clever fox convinces an " -"elderly lion to kill a derogatory wolf." -msgstr "" -"В этой традиционной сказке о звериных интригах хитрый лис убеждает " -"премудрого льва убить злого волка." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is an illustrated fairy tale book about a conversation between a mouse " -"and a cat." -msgstr "Это иллюстрированная детская книга о разговоре между мышью и котом." - -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of stories featuring \"Goldilocks and The Three " -"Bears\" on the cover." -msgstr "" -"Занимательный сборник историй, включающий сказку «Златовласка и три " -"медведя»." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a well illustrated fairy tale about a war between the birds and the " -"beasts, with particulars on the wartime conduct and eventual fate of the " -"bat." -msgstr "" -"Это красочно проиллюстрированная сказка о войне между птицами и зверями с " -"акцентом на поведении в военное время и окончательной судьбе летучей мыши." - -#: lang/json/BOOK_from_json.py -msgid "" -"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " -"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" -" page." -msgstr "" -"Эта книга озаглавлена «Возмездие гремучей змеи» и является сборником мифов и" -" легенд Чероки. На титульной странице карандашом написано «285D»." - -#: lang/json/BOOK_from_json.py -msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" -msgstr "Местный вариант сказки «Джек и бобовый стебель»" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale book is entitled \"Little Red Cap\". It details a red-" -"cloaked child's various encounters with talking wolves." -msgstr "" -"Сказка «Красная шапочка. Она описывает похождения девочки и ее встречу с " -"говорящими волками." - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of ghost stories warning about the dangers of stealing from the" -" dead." -msgstr "" -"Сборник историй о призраках, предупреждающий об опасностях воровства у " -"мертвых." - -#: lang/json/BOOK_from_json.py -msgid "" -"An Irish fairy tale in which a Celtic poet marries a princess who has been " -"cursed with the head of a pig." -msgstr "" -"Ирландская народная сказка, в которой кельтский поэт женится на принцессе, " -"проклятой иметь голову свиньи." - -#: lang/json/BOOK_from_json.py -msgid "" -"A book of Italian fairy tales translated into English. The cover features " -"an orange fairy juggling a lemon, a lime, and a tangerine." -msgstr "" -"Книга итальянских сказок, переведенных на английский. На обложке оранжевая " -"фея жонглирует лимоном, лаймом и мандарином." - -#: lang/json/BOOK_from_json.py -msgid "A book of fables about people who change into birds." -msgstr "Книга басен о людях, превратившихся в птиц." - -#: lang/json/BOOK_from_json.py -msgid "" -"This compendium of amusing folk tales about the devil is titled \"Hell's " -"Kettle: Legends of the Devil.\"" -msgstr "" -"Этот сборник забавных народных сказок о дьяволе называется «Адский чайничек:" -" легенды о дьяволе»." - -#: lang/json/BOOK_from_json.py -msgid "" -"This charming book of Swedish fables is titled, \"The Glass Mountain and the" -" Princess.\"" -msgstr "" -"Очаровательная книга шведских сказок называется «Принцесса на Стеклянной " -"горе»." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a collection of fairy tale stories warning against the consequences " -"of extreme greed." -msgstr "Сборник сказок, предупреждающих о последствиях крайней жадности." - -#: lang/json/BOOK_from_json.py -msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" -msgstr "" -"Книга под названием «Вороватый котелок: народные сказки арабской культуры»." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a book of legends collected by Traveller Johnny Cassidy in the " -"1960s." -msgstr "" -"Это книга легенд, собранная путешественником Джонни Кэссиди в 1960-х годах." - -#: lang/json/BOOK_from_json.py -msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" -msgstr "Книга братьев Гримм под названием «Неравные дети Евы»." - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of fables expands upon the legend of the Seven Sleepers of " -"Ephesus." -msgstr "Эта книга сказок основана на легенде о семи отроках Эфесских." - -#: lang/json/BOOK_from_json.py -msgid "" -"In this fairy tale a strong man frightens an ogre by squeezing water out of " -"a stone." -msgstr "В этой сказке силач пугает тролля, выдавив воду из камня." - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of rustic folk tales bears the title: \"How to Shout Down the " -"Devil.\"" -msgstr "" -"Эта книга деревенских народных сказок носит название: «Как перекричать " -"дьявола»." - -#: lang/json/BOOK_from_json.py -msgid "" -"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " -"fables about logical errors and foolish misjudgements of the Kadambawa men." -msgstr "" -"Название этой книги - «Деревенские народные сказки Цейлона». Она включает в " -"себя басни о логических ошибках и глупых заблуждениях людей Кадамбава." - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " -"Stories.\"" -msgstr "Книга народных сказок «Девушка с уродливым именем и другие истории»." - -#: lang/json/BOOK_from_json.py -msgid "" -"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " -"suitable for small children." -msgstr "" -"Сборник простеньких народных сказок, озаглавленный «Бегущий блинчик», " -"подходит для маленьких детей." - #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" msgid_plural "copies of The Hitchhiker's Guide to the Cataclysm" @@ -33403,354 +33247,6 @@ msgstr "" "На обложке большими и приятными для глаз буквами написаны слова «Без " "паники»." -#: lang/json/BOOK_from_json.py -msgid "Mycenacean Hymns" -msgid_plural "copies of Mycenacean Hymns" -msgstr[0] "«Грибные Гимны»" -msgstr[1] "книги «Грибные Гимны»" -msgstr[2] "книг «Грибные Гимны»" -msgstr[3] "книги «Грибные Гимны»" - -#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of -#. Mycenacean Hymns'} -#: lang/json/BOOK_from_json.py -msgid "" -"A vellum book containing the hymns central to Marloss faith. As the verses " -"lead to each other, the text sings of unity and promised paradise." -msgstr "" -"Пергаментная книга с религиозными песнопениями, посвящёнными вере в Микус. " -"Стихи идут один за одним, воспевая единение и обещая рай." - -#: lang/json/BOOK_from_json.py -msgid "King James Bible" -msgid_plural "copies of King James Bible" -msgstr[0] "Библия короля Джеймса " -msgstr[1] "копии Библии короля Джеймса " -msgstr[2] "копий Библии короля Джеймса " -msgstr[3] "копии Библии короля Джеймса " - -#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King -#. James Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, which originated in England " -"in the early 1600s." -msgstr "" -"Английский перевод христианской библии, возраст которой датируется началом " -"16 века." - -#: lang/json/BOOK_from_json.py -msgid "Eastern Orthodox Bible" -msgid_plural "copies of Eastern Orthodox Bible" -msgstr[0] "Православная Библия " -msgstr[1] "копии Православной Библии" -msgstr[2] "копий Православной Библии" -msgstr[3] "копии Православной Библии" - -#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of -#. Eastern Orthodox Bible'} -#: lang/json/BOOK_from_json.py -msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." -msgstr "Английская копия православной версии Библии." - -#: lang/json/BOOK_from_json.py -msgid "Gideon Bible" -msgid_plural "copies of Gideon Bible" -msgstr[0] "Библия Гидеона" -msgstr[1] "копии Библии Гидеона" -msgstr[2] "копий Библии Гидеона" -msgstr[3] "копии Библии Гидеона" - -#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon -#. Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, distributed free of charge by" -" Gideons International." -msgstr "" -"Английский перевод христианской библии, распространяемый бесплатно " -"Ассоциацией Евангельских Христиан Гидеон." - -#: lang/json/BOOK_from_json.py -msgid "The Guru Granth Sahib" -msgid_plural "copies of The Guru Granth Sahib" -msgstr[0] "«Гуру Грантх Сахиб»" -msgstr[1] "копии Гуру Грантх Сахиб" -msgstr[2] "копий Гуру Грантх Сахиб" -msgstr[3] "копии Гуру Грантх Сахиб" - -#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The -#. Guru Granth Sahib'} -#: lang/json/BOOK_from_json.py -msgid "A single-volume copy of the central religious texts of Sikhism." -msgstr "Сборник основных религиозных текстов сикхизма." - -#: lang/json/BOOK_from_json.py -msgid "Hadith" -msgid_plural "copies of Hadith" -msgstr[0] "Хадис" -msgstr[1] "копии Хадиса" -msgstr[2] "копий Хадиса" -msgstr[3] "копии Хадиса" - -#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} -#: lang/json/BOOK_from_json.py -msgid "" -"A Muslim religious text containing an account of the sayings and actions of " -"the prophet Muhammad." -msgstr "" -"Мусульманский религиозный текст, содержащий предания о поступках и " -"изречениях пророка Мухаммеда." - -#: lang/json/BOOK_from_json.py -msgid "Principia Discordia" -msgid_plural "copies of Principia Discordia" -msgstr[0] "Принципия Дискордия" -msgstr[1] "копии Принципия Дискордия" -msgstr[2] "копий Принципия Дискордия" -msgstr[3] "копии Принципия Дискордия" - -#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of -#. Principia Discordia'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of Discordianism. It seems to " -"primarily concern chaos, and features a card in the back which informs you " -"that you are now a 'genuine and authorized Pope of Discordia'." -msgstr "" -"Книга, содержащая в себе основные понятия дискордианизма. Похоже, в первую " -"очередь она касается хаоса. На обратной стороне имеется карточка, " -"уверяющая, что вы теперь «истинный и уполномоченный Папа церкви " -"Дискордианизма»." - -#: lang/json/BOOK_from_json.py -msgid "The Kojiki" -msgid_plural "copies of The Kojiki" -msgstr[0] "Кодзики" -msgstr[1] "копии Кодзики" -msgstr[2] "копий Кодзики" -msgstr[3] "копии Кодзики" - -#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} -#: lang/json/BOOK_from_json.py -msgid "" -"The oldest extant chronicle of Japan's myths and history, the stories " -"contained in the Kojiki are part of the inspiration behind Shinto practices." -msgstr "" -"Старейшая из сохранившихся хроник мифов и истории Японии. Рассказы, " -"содержащиеся в Кодзики, являются источником вдохновения для практик " -"синтоистов." - -#: lang/json/BOOK_from_json.py -msgid "The Book of Mormon" -msgid_plural "copies of The Book of Mormon" -msgstr[0] "«Книга Мормона»" -msgstr[1] "копии «Книга Мормона»" -msgstr[2] "копий «Книга Мормона»" -msgstr[3] "копии «Книга Мормона»" - -#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The -#. Book of Mormon'} -#: lang/json/BOOK_from_json.py -msgid "" -"The sacred text of the Latter Day Saint movement of Christianity, originally" -" published in 1830 by Joseph Smith." -msgstr "" -"Священный текст движения Святых Последних Дней в христианстве, впервые " -"опубликован в 1830 году Джозефом Смитом." - -#: lang/json/BOOK_from_json.py -msgid "The Gospel of the Flying Spaghetti Monster" -msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" -msgstr[0] "«Евангелие о Летающем Макаронном Монстре»" -msgstr[1] "копии «Евангелие о Летающем Макаронном Монстре»" -msgstr[2] "копий «Евангелие о Летающем Макаронном Монстре»" -msgstr[3] "копии «Евангелие о Летающем Макаронном Монстре»" - -#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', -#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of the Church of the Flying Spaghetti " -"Monster. It seems to involve a lot of pirates and some sort of invisible " -"drunken monster made of pasta." -msgstr "" -"Книга, которая воплощает в себе основные убеждения церкви Летающего " -"Макаронного Монстра. В ней рассказывается о множестве пиратов и некоторых " -"видах невидимых пьяных монстров из лапши." - -#: lang/json/BOOK_from_json.py -msgid "Quran" -msgid_plural "copies of Quran" -msgstr[0] "Коран" -msgstr[1] "копии Корана" -msgstr[2] "копий Корана" -msgstr[3] "копии Корана" - -#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Muslim book of holy scriptures, with " -"explanatory notes and commentaries to aid in understanding." -msgstr "" -"Английский перевод мусульманской книги священного писания, с пояснениями и " -"комментариями для более лёгкого понимания." - -#: lang/json/BOOK_from_json.py -msgid "Dianetics" -msgid_plural "copies of Dianetics" -msgstr[0] "«Дианетика»" -msgstr[1] "копии «Дианетика»" -msgstr[2] "копий «Дианетика»" -msgstr[3] "копии «Дианетика»" - -#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is the canonical text of Scientology. Written by a science " -"fiction author, it contains self-improvement techniques and musings on " -"psychology called Dianetics." -msgstr "" -"Эта книга содержит канонический текст о Саентологии. Написана автором-" -"фантастом и содержит описание методов самосовершенствования и размышления о " -"науке под названием Дианетика." - -#: lang/json/BOOK_from_json.py -msgid "The Book of the SubGenius" -msgid_plural "copies of The Book of the SubGenius" -msgstr[0] "«Книга НедоМудреца»" -msgstr[1] "копии «Книга НедоМудреца»" -msgstr[2] "копий «Книга НедоМудреца»" -msgstr[3] "копии «Книга НедоМудреца»" - -#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of -#. The Book of the SubGenius'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book about the Church of the SubGenius. It seems to involve a salesman " -"named J. R. \"Bob\" Dobbs and a concept called 'slack'." -msgstr "" -"Книга о Церкви НедоМудреца. Кажется, речь идёт о продавце по имени Дж. Р. " -"«Боб» Роббс и концепции под названием «халява»." - -#: lang/json/BOOK_from_json.py -msgid "The Sutras of the Buddha" -msgid_plural "copies of The Sutras of the Buddha" -msgstr[0] "Сутры Будды" -msgstr[1] "копии Сутр Будды" -msgstr[2] "копий Сутр Будды" -msgstr[3] "копии Сутр Будды" - -#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of -#. The Sutras of the Buddha'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of discourses attributed to the Buddha and his close disciples." -msgstr "Сборник рассуждений, приписываемых Будде и его ближайшим ученикам." - -#: lang/json/BOOK_from_json.py -msgid "Talmud" -msgid_plural "copies of Talmud" -msgstr[0] "Талмуд" -msgstr[1] "копии Талмуда" -msgstr[2] "копий Талмуда" -msgstr[3] "копии Талмуда" - -#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of Talmud'} -#: lang/json/BOOK_from_json.py -msgid "" -"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " -"Hebrew Bible with teachings and opinions of thousands of rabbis." -msgstr "" -"Один из основных текстов раввинского иудаизма. В талмуде описываются события" -" из еврейской библии с учениями и мнениями тысяч раввинов." - -#: lang/json/BOOK_from_json.py -msgid "Tanakh" -msgid_plural "copies of Tanakh" -msgstr[0] "Танах" -msgstr[1] "копии Танаха" -msgstr[2] "копий Танаха" -msgstr[3] "копии Танаха" - -#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single-volume book containing the complete canon of the Jewish Bible." -msgstr "Однотомная книга, содержащая полный канон еврейской библии." - -#: lang/json/BOOK_from_json.py -msgid "The Tripitaka" -msgid_plural "copies of The Tripitaka" -msgstr[0] "«Трипитака»" -msgstr[1] "копии «Трипитака»" -msgstr[2] "копий «Трипитака»" -msgstr[3] "копии «Трипитака»" - -#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The -#. Tripitaka'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Buddhist writings describing their canons of " -"scriptures." -msgstr "" -"Собрание священных буддийских писаний, описывающих буддистские каноны." - -#: lang/json/BOOK_from_json.py -msgid "The Upanishads" -msgid_plural "copies of The Upanishads" -msgstr[0] "«Упанишады»" -msgstr[1] "копии «Упанишады»" -msgstr[2] "копий «Упанишады»" -msgstr[3] "копии «Упанишады»" - -#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The -#. Upanishads'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Hindu writings regarding the nature of reality and " -"describing the character and form of human salvation." -msgstr "" -"Сборник древнеиндийских трактатов религиозно-философского характера. В них " -"рассказывается о природе реальности и описываются характер и форма " -"человеческого спасения." - -#: lang/json/BOOK_from_json.py -msgid "The Four Vedas" -msgid_plural "copies of The Four Vedas" -msgstr[0] "«Четыре Веды»" -msgstr[1] "копии «Четыре Веды»" -msgstr[2] "копий «Четыре Веды»" -msgstr[3] "копии «Четыре Веды»" - -#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four -#. Vedas'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single volume containing all four Vedas, which are the oldest scriptures " -"of Hinduism." -msgstr "" -"Сборник, состоящий из всех четырёх Вед, самых древних священных писаний " -"индуизма." - -#: lang/json/BOOK_from_json.py -msgid "The Satanic Bible" -msgid_plural "copies of The Satanic Bible" -msgstr[0] "«Сатанинская Библия»" -msgstr[1] "книги «Сатанинская Библия»" -msgstr[2] "книг «Сатанинская Библия»" -msgstr[3] "книги «Сатанинская Библия»" - -#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The -#. Satanic Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of essays, observations, and rituals published by Anton LaVey " -"in 1969." -msgstr "" -"Сборник эссе, измышлений и ритуалов, опубликованных Антоном ЛаВеем в 1969 " -"году." - #: lang/json/BOOK_from_json.py msgid "comic book" msgid_plural "comic books" @@ -33793,6 +33289,23 @@ msgstr[3] "журналы «TIME»" msgid "Current events concerning a bunch of people who're all (un)dead now." msgstr "События, связанные с различными людьми. Все они стали нежитью." +#: lang/json/BOOK_from_json.py +msgid "The Analyst" +msgid_plural "issues of The Analyst" +msgstr[0] "«Аналитик»" +msgstr[1] "выпуска «Аналитика»" +msgstr[2] "выпусков «Аналитика»" +msgstr[3] "выпуски «Аналитика»" + +#. ~ Description for {'str': 'The Analyst', 'str_pl': 'issues of The Analyst'} +#: lang/json/BOOK_from_json.py +msgid "" +"This news magazine has been described as \"a kind of Reader's Digest for " +"America's corporate elite.\" These concerns are, of course, behind us now." +msgstr "" +"Журнал, описанный критиками как «Reader's Digest для корпоративной элиты " +"Америки». Теперь проблемы подобного масштаба остались в прошлом." + #: lang/json/BOOK_from_json.py msgid "Playboy" msgid_plural "issues of Playboy" @@ -33949,6 +33462,29 @@ msgstr "" "никогда не бросает друзей в беде. Тем не менее, контроль над преступным " "миром разрушается под гнетом слухов и паранойи." +#: lang/json/BOOK_from_json.py +msgid "Midnight Cop" +msgid_plural "copies of Midnight Cop" +msgstr[0] "«Полночный коп»" +msgstr[1] "книги «Полночный коп»" +msgstr[2] "книг «Полночный коп»" +msgstr[3] "книги «Полночный коп»" + +#. ~ Description for {'str': 'Midnight Cop', 'str_pl': 'copies of Midnight +#. Cop'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this bare-knuckled potboiler, a ruthless police detective schemes to shut" +" down local crime lords by pitting them against each other. When long-" +"simmering resentments finally flare the city learns why they call it \"the " +"dead of night.\"" +msgstr "" +"В этом безвкусной писанине вы можете узнать о истории героя, безжалостного " +"полицейского детектива, задумавшего свергнуть местных криминальных воротил, " +"столкнув их лбами. Когда тщательно подогреваемая ненависть перерастет в " +"открытое насилие, город наконец узнает, почему полночь зовется «часом " +"мертвых»." + #: lang/json/BOOK_from_json.py msgid "drama novel" msgid_plural "drama novels" @@ -34049,6 +33585,85 @@ msgstr "" "Круто завинченная детективная история, с быстро развивающимся сюжетом и " "интригами." +#: lang/json/BOOK_from_json.py +msgid "Planet of the Murderous Squids that Time Forgot!" +msgid_plural "Planet of the Murderous Squids that Time Forgot!s" +msgstr[0] "«Забытая временем планета кальмаров-убийц!»" +msgstr[1] "книги «Забытая временем планета кальмаров-убийц!»" +msgstr[2] "книг «Забытая временем планета кальмаров-убийц!»" +msgstr[3] "книги «Забытая временем планета кальмаров-убийц!»" + +#. ~ Description for Planet of the Murderous Squids that Time Forgot! +#: lang/json/BOOK_from_json.py +msgid "" +"In this psychedelic adventure novel of cosmic exploration, an elderly " +"assassin discovers a planet too good to be true. Only once it is too late " +"does she discover the harrowing truth at the center of \"The Planet of the " +"Murderous Squids that Time Forgot!\"" +msgstr "" +"Психоделическая повесть о пожилой наемной убийце, исследующей космос и " +"находящей планету, слишком прекрасную, чтобы быть настоящей. Слишком поздно " +"она узнает ужасный секрет в самом центре Забытой временем планеты кальмаров-" +"убийц." + +#: lang/json/BOOK_from_json.py +msgid "The Great Capes of Metropolis" +msgid_plural "The Great Capes of Metropoliss" +msgstr[0] "«Великие герои Метрополиса»" +msgstr[1] "книги «Великие герои Метрополиса»" +msgstr[2] "книг «Великие герои Метрополиса»" +msgstr[3] "книги «Великие герои Метрополиса»" + +#. ~ Description for The Great Capes of Metropolis +#: lang/json/BOOK_from_json.py +msgid "" +"In this classic pulp paperback of superheroic exploits, a group of masked " +"vigilantes with diverse superpowers learn to work together to defeat the " +"ultimate villain." +msgstr "" +"Классическая бульварная книга о супергероях, повествующая о группе мстителей" +" в масках, обладающих различными суперсилами и вынужденных объединиться, " +"чтобы остановить самого главного злодея." + +#: lang/json/BOOK_from_json.py +msgid "Yesterday's Murdered" +msgid_plural "Yesterday's Murdereds" +msgstr[0] "«Вчера убито»" +msgstr[1] "книги «Вчера убито»" +msgstr[2] "книг «Вчера убито»" +msgstr[3] "книги «Вчера убито»" + +#. ~ Description for Yesterday's Murdered +#: lang/json/BOOK_from_json.py +msgid "" +"In this fast paced pulp noir, a hard-drinking detective with nerves of steel" +" has one last shot at vengeance." +msgstr "" +"Бульварный нуарный роман с быстрым темпом повествования о злоупотребляющем " +"алкоголем детективе со стальными нервами, у которого остался последний шанс " +"свершить возмездие." + +#: lang/json/BOOK_from_json.py +msgid "Flashgun Condor and the Crimson Criminal" +msgid_plural "Flashgun Condor and the Crimson Criminals" +msgstr[0] "«Вспышка Кондор и Красные Бандиты»" +msgstr[1] "книги «Вспышка Кондор и Красные Бандиты»" +msgstr[2] "книг «Вспышка Кондор и Красные Бандиты»" +msgstr[3] "книги «Вспышка Кондор и Красные Бандиты»" + +#. ~ Description for Flashgun Condor and the Crimson Criminal +#: lang/json/BOOK_from_json.py +msgid "" +"A hot-blooded photographer who fights crime with film, footage, and fists, " +"Condor is more than a mere shutterbug on the crime beat. But will she be " +"able to unravel a devious deception and bring the \"Crimson Criminal\" to " +"justice?" +msgstr "" +"Вспыльчивый фотограф, борющаяся с преступностью с помощью фотоаппарата и " +"кулаков, Кондор - не просто фотограф-любитель в водовороте преступности. Но " +"сможет ли она раскрыть ужасный обман и предать Красных Бандитов в руки " +"правосудия?" + #: lang/json/BOOK_from_json.py msgid "road novel" msgid_plural "road novels" @@ -34079,6 +33694,186 @@ msgstr[3] "любовные романы" msgid "Drama and mild smut." msgstr "Драма и лёгкие непристойности." +#: lang/json/BOOK_from_json.py +msgid "Love and Circuses" +msgid_plural "Love and Circusess" +msgstr[0] "«Любовь и цирки»" +msgstr[1] "книги «Любовь и цирки»" +msgstr[2] "книг «Любовь и цирки»" +msgstr[3] "книги «Любовь и цирки»" + +#. ~ Description for Love and Circuses +#: lang/json/BOOK_from_json.py +msgid "" +"The passionate saga of two Boston politicians fiercely battling each other " +"for the mayor's office, and for Lydia's hand in marriage." +msgstr "" +"Сага о страсти, вращающаяся вокруг двух бостонских политиков, борющихся за " +"место мэра и за руку и сердце их избранницы Лидии." + +#: lang/json/BOOK_from_json.py +msgid "Cloven Kisses" +msgid_plural "Cloven Kissess" +msgstr[0] "«Поцелуи с раздвоенным языком»" +msgstr[1] "книги «Поцелуи с раздвоенным языком»" +msgstr[2] "книг «Поцелуи с раздвоенным языком»" +msgstr[3] "книги «Поцелуи с раздвоенным языком»" + +#. ~ Description for Cloven Kisses +#: lang/json/BOOK_from_json.py +msgid "" +"When the devil falls in love with a warlock, his proposal must be infernally" +" wicked. Will hooves, horns, and the scent of sulphur condemn love's flames" +" to hellfire?" +msgstr "" +"Когда дьявол влюбляется в чернокнижницу, его предложение неизбежно будет " +"исполнено дьявольской хитрости. Смогут ли рога, копыта и запах серы " +"превратить огонь любви в адское пламя?" + +#: lang/json/BOOK_from_json.py +msgid "Conquer Me Sweetly" +msgid_plural "Conquer Me Sweetlys" +msgstr[0] "«Покори меня сладко»" +msgstr[1] "книги «Покори меня сладко»" +msgstr[2] "книг «Покори меня сладко»" +msgstr[3] "книги «Покори меня сладко»" + +#. ~ Description for Conquer Me Sweetly +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is delighted to offer you this romantic tale of " +"delicious dalliances and daring delights." +msgstr "" +"Издательство Sweet Providence Books счастливо представить вам романтическую " +"повесть о сладком флирте и смелых желаниях." + +#: lang/json/BOOK_from_json.py +msgid "Dubliner's Debutante" +msgid_plural "Dubliner's Debutantes" +msgstr[0] "«Дублинский дебютант»" +msgstr[1] "книги «Дублинский дебютант»" +msgstr[2] "книг «Дублинский дебютант»" +msgstr[3] "книги «Дублинский дебютант»" + +#. ~ Description for Dubliner's Debutante +#: lang/json/BOOK_from_json.py +msgid "" +"His love songs were only for me, but I preferred the banjo over bagpipes. " +"How could I ever love a kilted yankee of foreign breeding?" +msgstr "" +"Его любовные песни звучали только для меня, но я предпочла волынке банджо. " +"Как можно влюбиться в заморского янки, одетого в килт?" + +#: lang/json/BOOK_from_json.py +msgid "Blood Diodes" +msgid_plural "Blood Diodess" +msgstr[0] "«Кровавые диоды»" +msgstr[1] "книги «Кровавые диоды»" +msgstr[2] "книг «Кровавые диоды»" +msgstr[3] "книги «Кровавые диоды»" + +#. ~ Description for Blood Diodes +#: lang/json/BOOK_from_json.py +msgid "" +"He is an automaton, she is a reformed vampire, can love find a way? In this" +" edgy romance by acclaimed author Kea Dekker, heartbreak is just the " +"beginning." +msgstr "" +"Он - автоматон, она - перевоспитавшийся вампир, сможет ли между ними " +"разгореться любовь? В этом провокационном романе от Кеа Деккер разбитое " +"сердце - лишь начало истории." + +#: lang/json/BOOK_from_json.py +msgid "Envying Heaven" +msgid_plural "Envying Heavens" +msgstr[0] "«Зависть к небу»" +msgstr[1] "книги «Зависть к небу»" +msgstr[2] "книг «Зависть к небу»" +msgstr[3] "книги «Зависть к небу»" + +#. ~ Description for Envying Heaven +#: lang/json/BOOK_from_json.py +msgid "" +"When her fiancee names a star for her Wanda begins to wonder if an " +"astronomer's wife can ever compete with the allure of the cosmos." +msgstr "" +"Когда жених называет звезду в ее честь, Ванда начинает задумываться, сможет " +"ли жена астронома когда-нибудь соперничать с очарованием космоса." + +#: lang/json/BOOK_from_json.py +msgid "Tall, Dark, and Gruesome" +msgid_plural "Tall, Dark, and Gruesomes" +msgstr[0] "«Высокий, темный и ужасный»" +msgstr[1] "книги «Высокий, темный и ужасный»" +msgstr[2] "книг «Высокий, темный и ужасный»" +msgstr[3] "книги «Высокий, темный и ужасный»" + +#. ~ Description for Tall, Dark, and Gruesome +#: lang/json/BOOK_from_json.py +msgid "" +"Fatima's obsession with the dead threatens to consume her when she falls in " +"love with a restless ghost. In this provocative romp celebrated author Kea " +"Dekker gently lifts the thin veil separating cold bodies from warm. " +msgstr "" +"Одержимость Фатимы мертвыми грозит поглотить ее, когда она влюбляется в " +"беспокойного призрака. В этой провокационной драме прославленный автор Кеа " +"Деккер осторожно поднимает тонкую вуаль, отделяющую холодные тела от теплых." + +#: lang/json/BOOK_from_json.py +msgid "Along Came a Rider" +msgid_plural "Along Came a Riders" +msgstr[0] "«И прибыл всадник»" +msgstr[1] "книги «И прибыл всадник»" +msgstr[2] "книг «И прибыл всадник»" +msgstr[3] "книги «И прибыл всадник»" + +#. ~ Description for Along Came a Rider +#: lang/json/BOOK_from_json.py +msgid "" +"When Beth's career as a pro steeplechase jockey threatens to divide her from" +" her lover, Beth has to act fast. Will she ever find a man that can keep up" +" with her racing heart?" +msgstr "" +"Когда карьера Бет в роли профессионального жокея в барьерных скачках " +"угрожает ее отношениям с любимым, у нее не остается времени для раздумий. " +"Сможет ли она найти мужчину, который сумеет угнаться за ее мчащимся сердцем?" + +#: lang/json/BOOK_from_json.py +msgid "Rogue's Virtue" +msgid_plural "Rogue's Virtues" +msgstr[0] "«Добродетель негодяя»" +msgstr[1] "книги «Добродетель негодяя»" +msgstr[2] "книг «Добродетель негодяя»" +msgstr[3] "книги «Добродетель негодяя»" + +#. ~ Description for Rogue's Virtue +#: lang/json/BOOK_from_json.py +msgid "" +"Can Victoria reform the fugitive from justice who wooed her with false " +"pretenses and true passion?" +msgstr "" +"Сможет ли Виктория исправить беглого преступника, соблазнившего ее ложными " +"обещаниями и настоящими чувствами?" + +#: lang/json/BOOK_from_json.py +msgid "The Death of My Secret Life" +msgid_plural "The Death of My Secret Lifes" +msgstr[0] "«Смерть моей тайной жизни»" +msgstr[1] "книги «Смерть моей тайной жизни»" +msgstr[2] "книг «Смерть моей тайной жизни»" +msgstr[3] "книги «Смерть моей тайной жизни»" + +#. ~ Description for The Death of My Secret Life +#: lang/json/BOOK_from_json.py +msgid "" +"Makeda comes out to her family, but she's still got plenty of skeletons in " +"her closet. Best selling authoress Kea Dekker breaks all the rules in this " +"macabre story of love and lies." +msgstr "" +"Македа раскрывает своей семье тайну своей ориентации, но у нее остается " +"немало других скелетов в шкафу. Автор многих хитов Кеа Деккер нарушает все " +"правила в этой мрачной истории любви и обмана." + #: lang/json/BOOK_from_json.py msgid "samurai novel" msgid_plural "samurai novels" @@ -34114,6 +33909,95 @@ msgstr "" "Политическая сатира из до-апокалиптического мира. После Армагеддона кажется " "ещё смешнее." +#: lang/json/BOOK_from_json.py +msgid "The House of God" +msgid_plural "The House of Gods" +msgstr[0] "«Дом божий»" +msgstr[1] "книги «Дом божий»" +msgstr[2] "книг «Дом божий»" +msgstr[3] "книги «Дом божий»" + +#. ~ Description for The House of God +#: lang/json/BOOK_from_json.py +msgid "" +"Set in a lightly disguised Boston hospital of high repute, Samuel Shem’s " +"novel dives deep into the agony of absurdity." +msgstr "" +"Сатирическая повесть Самуила Шема о бостонской больнице с хорошей " +"репутацией, погружающейся в агонию абсурда." + +#: lang/json/BOOK_from_json.py +msgid "Catch-22" +msgid_plural "Catch-22s" +msgstr[0] "«Уловка-22»" +msgstr[1] "книги «Уловка-22»" +msgstr[2] "книг «Уловка-22»" +msgstr[3] "книги «Уловка-22»" + +#. ~ Description for Catch-22 +#: lang/json/BOOK_from_json.py +msgid "" +"There is a short informational forward in this paperback edition of " +"Catch-22. Apparently the original title for Joseph Heller’s excruciatingly " +"brilliant war satire was \"Catch-11.\"" +msgstr "" +"Издание книги «Уловка-22» в мягкой обложке. Коротко изложен факт - Джозеф " +"Хеллер хотел назвать свое блестящее сатирическое произведение «Уловка-11»." + +#: lang/json/BOOK_from_json.py +msgid "The Master and Margarita" +msgid_plural "The Master and Margaritas" +msgstr[0] "«Мастер и Маргарита»" +msgstr[1] "книги «Мастер и Маргарита»" +msgstr[2] "книг «Мастер и Маргарита»" +msgstr[3] "книги «Мастер и Маргарита»" + +#. ~ Description for The Master and Margarita +#: lang/json/BOOK_from_json.py +msgid "" +"Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, " +"vampires, a talking cat, and the literary elite of Moscow, this is a satire " +"on Stalinist tyranny written by Mikhail Bulgakov." +msgstr "" +"Сатира на сталинскую тиранию за авторством Михаила Булгакова, среди " +"персонажей - Сатана, Понтий Пилат, Иисус Христос, вампиры, говорящий кот и " +"литературная элита Москвы." + +#: lang/json/BOOK_from_json.py +msgid "A Handful of Dust" +msgid_plural "A Handful of Dusts" +msgstr[0] "«Пригоршня праха»" +msgstr[1] "книги «Пригоршня праха»" +msgstr[2] "книг «Пригоршня праха»" +msgstr[3] "книги «Пригоршня праха»" + +#. ~ Description for A Handful of Dust +#: lang/json/BOOK_from_json.py +msgid "" +"Laced with cynicism, Evelyn Waugh's \"A Handful of Dust\" satirizes a " +"stratum of characters who have wealth, but lack any other credentials." +msgstr "" +"Наполненная цинизмом книга Ивлин Во, сатиричное повествование о персонажах, " +"владеющих богатством, но ничего из себя не представляющих." + +#: lang/json/BOOK_from_json.py +msgid "Cat’s Cradle" +msgid_plural "Cat’s Cradles" +msgstr[0] "«Колыбель для кошки»" +msgstr[1] "книги «Колыбель для кошки»" +msgstr[2] "книг «Колыбель для кошки»" +msgstr[3] "книги «Колыбель для кошки»" + +#. ~ Description for Cat’s Cradle +#: lang/json/BOOK_from_json.py +msgid "" +"A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of " +"nuclear destruction isn't much of an influence on human nature." +msgstr "" +"Издание четвертого романа Курта Воннегута в мягкой обложке. Повествует о " +"том, что даже угроза полного ядерного уничтожения не может повлиять на " +"человеческую природу." + #: lang/json/BOOK_from_json.py msgid "scifi novel" msgid_plural "scifi novels" @@ -34241,7 +34125,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "" "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It " -"still has the smell of new books within it's pages." +"still has the smell of new books within its pages." msgstr "" "Совершенно новенький экземпляр «Помутнения» Филипа К. Дика. Страницы всё ещё" " пахнут свеженапечатанной книгой." @@ -34484,25 +34368,6 @@ msgid "" "Douglas Adams." msgstr "Потрёпанный экземпляр «Автостопом по галактике» Дугласа Адамса." -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "спортивный роман" -msgstr[1] "спортивных романа" -msgstr[2] "спортивных романов" -msgstr[3] "спортивные романы" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "" -"Драматический рассказ о малоизвестном боксёре, которому выпадает редкий шанс" -" сразиться с чемпионом в тяжёлом весе и значительно улучшить свою жизнь, " -"попутно завоевав сердце девушки, работающей в зоомагазине." - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -34580,6 +34445,62 @@ msgstr "" "ирландский врач и его товарищи по заточению совершают побег и становятся " "благородными пиратами." +#: lang/json/BOOK_from_json.py +msgid "The Black Freighter" +msgid_plural "copies of The Black Freighter" +msgstr[0] "«Черная шхуна»" +msgstr[1] "книги «Черная шхуна»" +msgstr[2] "книг «Черная шхуна»" +msgstr[3] "книги «Черная шхуна»" + +#. ~ Description for {'str': 'The Black Freighter', 'str_pl': 'copies of The +#. Black Freighter'} +#: lang/json/BOOK_from_json.py +msgid "" +"Who watches the watchmen? Pirate Jenny, that's who! This swashbuckling " +"adventure novel will make you feel swell." +msgstr "" +"Кто сторожит сторожей? Пиратка Дженни, вот кто! Эта история о пиратах " +"наполнит вас чувством качки." + +#: lang/json/BOOK_from_json.py +msgid "Captain Gosgold and the Sea Rovers of Buzzards Bay" +msgid_plural "copies of The Sea Rovers" +msgstr[0] "«Капитан Гозгольд и мореходы Залива Стервятника»" +msgstr[1] "книги «Капитан Гозгольд и мореходы Залива Стервятника»" +msgstr[2] "книг «Капитан Гозгольд и мореходы Залива Стервятника»" +msgstr[3] "книги «Капитан Гозгольд и мореходы Залива Стервятника»" + +#. ~ Description for {'str': 'Captain Gosgold and the Sea Rovers of Buzzards +#. Bay', 'str_pl': 'copies of The Sea Rovers'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lengthy paperback novel describes the ocean exploits of Captain " +"Gosgold. The British consider him an outlaw, but in America he is a " +"patriot." +msgstr "" +"Толстая книжка с мягкой обложкой, описывающая приключения капитана Гозгольда" +" среди океана. Британцы считают его предателем, для американцев же он " +"патриот." + +#: lang/json/BOOK_from_json.py +msgid "The Code of the Buccaneer" +msgid_plural "copies of The Buccaneer" +msgstr[0] "«Кодекс буканьера»" +msgstr[1] "книги «Кодекс буканьера»" +msgstr[2] "книг «Кодекс буканьера»" +msgstr[3] "книги «Кодекс буканьера»" + +#. ~ Description for {'str': 'The Code of the Buccaneer', 'str_pl': 'copies of +#. The Buccaneer'} +#: lang/json/BOOK_from_json.py +msgid "" +"The cover of this paperback pirate story shows a shirtless man and a near " +"shirtless woman. Clearly it is not a dress code." +msgstr "" +"На обложке книге изображены мужчина без рубашки и женщина почти без рубашки." +" Вряд ли в кодексе есть дресс-код." + #: lang/json/BOOK_from_json.py msgid "thriller novel" msgid_plural "thriller novels" @@ -34656,330 +34577,131 @@ msgstr "" "преступников." #: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "книга по философии" -msgstr[1] "книги по философии" -msgstr[2] "книг по философии" -msgstr[3] "книги по философии" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of -#. philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "Глубокие рассуждения о морали с уклоном в эпистемологию и логику." - +msgid "Atwixt a Brace of Cacti" +msgid_plural "Atwixt a Brace of Cactis" +msgstr[0] "«Посреди объятия кактусов»" +msgstr[1] "книги «Посреди объятия кактусов»" +msgstr[2] "книг «Посреди объятия кактусов»" +msgstr[3] "книги «Посреди объятия кактусов»" + +#. ~ Description for Atwixt a Brace of Cacti #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." +"A grizzled clodhopper interviews a mess of rangehands, flummoxing longhorns " +"and tenderfoot alike in a flusteration of jawing." msgstr "" -"Экземпляр «По ту сторону добра и зла» Ницше в мятой и потрёпанной обложке." +"История пожилого дуралея, общающегося с многоликими работниками ранчо, " +"пугливыми толсторогами и недавно приехавшими на фронтир странниками, " +"изложенная крайне цветастым языком." #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "" -"«Единственный и его собственность» Макс Штирнера в современном переводе " -"Вольфи Ландстрейхера." - +msgid "Stinky Bart Puts on Starch" +msgid_plural "Stinky Bart Puts on Starchs" +msgstr[0] "«Вонючка Барт в крахмальном воротничке»" +msgstr[1] "книги «Вонючка Барт в крахмальном воротничке»" +msgstr[2] "книг «Вонючка Барт в крахмальном воротничке»" +msgstr[3] "книги «Вонючка Барт в крахмальном воротничке»" + +#. ~ Description for Stinky Bart Puts on Starch #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." +"A local bandit, driven by sadistic impulses, begins offering unlicensed " +"dentistry to brave frontiersmen with few options and fewer teeth." msgstr "" -"«Бытие и ничто» Жан-Поля Сартра, ключевая работа в традиции " -"экзистенциалистов." +"Местный преступник, движимый садизмом, предлагает свои нелицензированные " +"услуги дантиста храбрым жителям фронтира, у которых осталось мало вариантов " +"и еще меньше зубов." #: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "" -"Большое расширенное издание «Безумия и неразумия» Мишеля Фуко. На обложке " -"красочно нарисована тюрьма-паноптикум." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "«Состояние Постмодерна» Жана-Франсуа Лиотара." - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "" -"Сборник текстов и очерков Жака Деррида. Его страницы дряхлые и пожелтевшие —" -" вам, вероятно, следует обращаться с ними осторожно." - +msgid "Six Beans in the Wheel" +msgid_plural "Six Beans in the Wheels" +msgstr[0] "«Шесть патронов в барабане»" +msgstr[1] "книги «Шесть патронов в барабане»" +msgstr[2] "книг «Шесть патронов в барабане»" +msgstr[3] "книги «Шесть патронов в барабане»" + +#. ~ Description for Six Beans in the Wheel #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." +"The safety is off in this gun slinging tale of revenge and redemption by " +"acclaimed author El Amor." msgstr "" -"«Общество спектакля» Ги Дебора. На обложке изображены ряды людей, безмятежно" -" смотрящих на экран." +"Повесть о стрелках Дикого Запада, о мести и искуплении от признанного автора" +" Эль Амор." #: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "«Этика полового различия» и «Пол, который не одинок» Люси Иригарей." - +msgid "Irons at Calico Queen Annex" +msgid_plural "Irons at Calico Queen Annexs" +msgstr[0] "«Стволы в пригороде Калико Квин»" +msgstr[1] "книги «Стволы в пригороде Калико Квин»" +msgstr[2] "книг «Стволы в пригороде Калико Квин»" +msgstr[3] "книги «Стволы в пригороде Калико Квин»" + +#. ~ Description for Irons at Calico Queen Annex #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." +"The establishment of a telegraph line into the recently named town of Calico" +" Queen threatens to bring with it the long arm of the law. A trio of " +"enterprising gunfighters hatches a plan to keep Calico Queen wild by looting" +" the supply wagons." msgstr "" -"«Симулякры и симуляция» Бодрийяра. На обложке изображён человек, держащий по" -" разноцветной таблетке в каждой руке со слоганом «Добро пожаловать в Пустыню" -" Реальности». Вам кажется, вы видели этот фильм." +"Недавно проведенная телеграфная линия грозит появлением длинной руки закона " +"в свежеиспеченном городке Калико Квин. Трио предприимчивых стрелков " +"придумывает план обеспечения независимости города - и он включает в себя " +"грабежи дилижансов." #: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." -" It looks to have been used as a coaster in a past life." -msgstr "" -"Маленькая карманная версия «Экзистенциализма и гуманизма» Сартра. Похоже, в " -"прошлой жизни она служила подставкой под кружку." - +msgid "Riot on the Range" +msgid_plural "Riot on the Ranges" +msgstr[0] "«Бунт на границе»" +msgstr[1] "книги «Бунт на границе»" +msgstr[2] "книг «Бунт на границе»" +msgstr[3] "книги «Бунт на границе»" + +#. ~ Description for Riot on the Range #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." +"Best selling author El Amor paints a visceral study in red with his latest " +"western saga: Riot on the Range." msgstr "" -"«Практическая этика» Питера Сингера. Отпечатано в местном университете." +"Автор бестселлеров Эль Амор со своим этюдом в кровавых тонах - новая книга в" +" духе Дикого Запада «Бунт на границе»." #: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "" -"Отксерокопированная книга на пружинке — «Индустриальное общество и его " -"будущее» от «Клуба Свободы». Похоже, оригинал был напечатан на пишущей " -"машинке." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an" -" ominous looking metal tube. Provocative." -msgstr "" -"«Индустриальное общество и его будущее» Теодора Казински. На обложке " -"изображён грубый деревянный ящик с проводами и зловещей металлической " -"трубой. Провокационно." - -#: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "Маленький томик диалектики Гегеля." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "«Государство и революция» Владимира Ленина. К счастью, на английском." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "«В защиту марксизма» Льва Троцкого." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" -" tag on the back cover. It appears to still be active." -msgstr "" -"«Укради эту книгу» Эбби Хоффмана. На задней обложке есть магнитная бирка. " -"Похоже, она ещё работает." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "" -"«Уолден, или Жизнь в лесу» под авторством Генри Дэвида Торо. Между страниц " -"заложен высушенный сдавленный листочек." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "" -"«Женщина-евнух» Жермен Грир. Какой-то ребёнок изрисовал красным карандашом " -"страницу с содержанием." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "«Введение в метафизику» Бергсона." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "«Четыре основные понятия психоанализа» Жака Лакана." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "Экземпляр «Государя» Макиавелли. Включает вступление К. Скиннера." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "«Революция повседневной жизни» Рауля Ванейгема." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" -" cover contains an image of a pelican." -msgstr "" -"Карманный экземпляр «Эссе об освобождении» Герберта Маркузе. На обложке " -"нарисован пеликан." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "«Или-или» Сёрена Кьеркегора." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "«Миф о пещере» Платона." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "«Левиафан» Томаса Хоббса." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "«Критика чистого разума» Иммануила Канта." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "«Первоначала философии» Декарта." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " -"Science\" by Friederich Nietzsche." -msgstr "Собрание из «К генеалогии морали» и «Весёлой науки» Фридриха Ницше." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." -msgstr "" -"«Миф о Сизифе» за авторством Альберта Камю. На обложке нарисованы " -"полуобнажённый мужчина и огромный валун." - +msgid "Vaquero Sun" +msgid_plural "Vaquero Suns" +msgstr[0] "«Солнце вакеро»" +msgstr[1] "книги «Солнце вакеро»" +msgstr[2] "книг «Солнце вакеро»" +msgstr[3] "книги «Солнце вакеро»" + +#. ~ Description for Vaquero Sun #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." +"Western author El Amor relates the story of a dispossessed young man " +"inspired by a heat stroke delusion to pursue justice against an evil land " +"baron." msgstr "" -"«Болезнь к смерти» Сёрена Кьеркегора. На страницах полно липучек с " -"записками." +"История за авторством Эль Амор об обездоленном молодом человеке, который в " +"бреду от теплового удара нашел в себе силу бороться за справедливость против" +" злого земельного барона." #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" -" title, it does not actually appear to be defending terrorism." -msgstr "" -"«В защиту терроризма» Льва Троцкого. Несмотря на название, терроризм в книге" -" не защищают." - +msgid "The Vendetta Riders" +msgid_plural "The Vendetta Riderss" +msgstr[0] "«Всадники Вендетты»" +msgstr[1] "книги «Всадники Вендетты»" +msgstr[2] "книг «Всадники Вендетты»" +msgstr[3] "книги «Всадники Вендетты»" + +#. ~ Description for The Vendetta Riders #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." +"A wild young man, fast on the draw, who thinks he has nothing to lose, falls" +" in with a group of gun runners." msgstr "" -"«Исследование о политической справедливости» Уильяма Голдвина. Толстая книга" -" в старомодных выражениях." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this" -" book." -msgstr "" -"«Упразднение работы и другие сочинения» Боба Блэка. Похоже, «Упразднение " -"работы» — самое знаменитое сочинение в этой книге." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" -" like this book has a surprisingly long track record of owners." -msgstr "" -"«Что такое собственность?» Пьер-Жозефа Прудона. Судя по всему, это книга " -"сменила удивительно много владельцев." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "" -"«Хлеб и воля» Петра Кропоткина. На обложке вместо хлеба изображён пожилой " -"философ с роскошной бородой." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" -" might have been printed decades before the Cataclysm since the cover is " -"quite weathered." -msgstr "" -"«Несчастье родиться» Эмиля Чорана. Должно быть, эту книгу напечатали за " -"десятилетия до Катаклизма — её обложка довольно истрепалась." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "" -"«Мир как воля и представление» Артура Шопенгауэра. Среди страниц несколько " -"неразборчивых записей и каракулей." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" -" that the author's real name is Fereidoun M. Esfandiary." -msgstr "" -"«Манифест футурологов» за авторством FM-2030. Похоже, настоящее имя автора —" -" Ферейдун М. Эсфендиари." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "«Сборник Бастиа», большой сборник сочинений Фредерика Бастиа." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." -msgstr "" -"«Анархия, государство и утопия» Роберта Нозика, одна из самых влиятельных " -"книг современного либертарианства." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "«Социализм» Людвига фон Мизеса, обзор и критика социализма." - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." -msgstr "" -"«Азбука коммунизма» Николая Бухарина, одна из самых влиятельных книг раннего" -" марксизма-ленинизма." - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." -msgstr "«Антикапиталистический менталитет» Людвига фон Мизеса." +"Необузданный молодой человек с быстрой рукой, считающий, что ему нечего " +"терять, связывается с оружейными контрабандистами." #: lang/json/BOOK_from_json.py msgid "phone book" @@ -35062,8 +34784,12 @@ msgstr[3] "дневники священника" #. ~ Description for {'str': "priest's diary", 'str_pl': "priests' diaries"} #: lang/json/BOOK_from_json.py -msgid "A small book filled with journal entries in Latin." -msgstr "Маленькая книга, заполненная журнальными записями на латыни." +msgid "" +"A small book filled with journal entries in Latin. You can read Latin, " +"right?" +msgstr "" +"Маленькая книга, заполненная журнальными записями на латыни. Вы ведь знаете " +"латынь, да?" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -35158,25 +34884,6 @@ msgstr "" "Маленькая книга, детализирующая «наблюдения» за заключённым, находящемся в " "камере смертников." -#: lang/json/BOOK_from_json.py -msgid "Hávamál" -msgid_plural "copies of Hávamál" -msgstr[0] "«Хавамал»" -msgstr[1] "копии «Хавамала»" -msgstr[2] "копий «Хавамала»" -msgstr[3] "копии «Хавамала»" - -#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of several Old Norse poems. The poems contain " -"proverbs and stories attributed to the god Odin, many transcribed from oral " -"history." -msgstr "" -"Перевод на английский язык нескольких древнескандинавских поэм. В поэмах " -"содержатся пословицы и истории, посвящённые богу Одину, многие из которых " -"записаны с устных преданий." - #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" @@ -35660,6 +35367,1179 @@ msgstr "" "написано «Крису, спасибо, что верил, что я смогу сделать это. С наилучшими " "пожеланиями, Терри»." +#: lang/json/BOOK_from_json.py +msgid "The Economicon of Dobbs" +msgid_plural "copies of The Economicon" +msgstr[0] "«Экономикон Доббса»" +msgstr[1] "книги «Экономикон Доббса»" +msgstr[2] "книг «Экономикон Доббса»" +msgstr[3] "книги «Экономикон Доббса»" + +#. ~ Description for {'str': 'The Economicon of Dobbs', 'str_pl': 'copies of +#. The Economicon'} +#: lang/json/BOOK_from_json.py +msgid "" +"These are the prescriptures Pile 18 Disk sg30 File 14. \"Look, small brain " +"of pink earth inside my null-grasping, and she/he receives Logos; and it lay" +" with the Wor.\"" +msgstr "" +"Это предписания из кучи 18 диска сегмента 30, 14 файл. «Узри, крошечный мозг" +" розовой земли внутри моего нулевого хвата, и он/она получает Логос; и лежит" +" он с Вором»." + +#: lang/json/BOOK_from_json.py +msgid "The Bobliographon" +msgid_plural "copies of The Bobliographon" +msgstr[0] "Боблиографон" +msgstr[1] "копии Боблиографона" +msgstr[2] "копий Боблиографона" +msgstr[3] "копии Боблиографона" + +#. ~ Description for {'str': 'The Bobliographon', 'str_pl': 'copies of The +#. Bobliographon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this cheaply published paperback reads: \"These newly-" +"released SubGenius revelations will SHOCK those who think they know Bob! " +"Unpredictables are not alone and possess amazing hidden powers of their own!" +" In a world without slack, a yeti lust revival saunters about. WARNING: Do" +" not fail to pay full price for this book; JHVH-1's wrath knows some " +"bounds.\"" +msgstr "" +"На задней обложке этой непримечательно оформленной книги написано: «Новое " +"издание откровений Недомудреца шокирует любого, кто решил, будто он познал " +"Боба! Неожиданности не единственное, что есть в этой книге, и у них тоже " +"есть скрытый потенциал! В мире без халявы похотливый йети бродит поблизости." +" ПРЕДУПРЕЖДЕНИЕ! Заплатите честную цену за эту книгу, у ИЕГОВЫ-1 есть свое " +"представление о допустимом.»" + +#: lang/json/BOOK_from_json.py +msgid "Glimpses of Solomon in Yellow" +msgid_plural "copies of Solomon in Yellow" +msgstr[0] "«Проблески Соломона в желтом»" +msgstr[1] "книги «Проблески Соломона в желтом»" +msgstr[2] "книг «Проблески Соломона в желтом»" +msgstr[3] "книги «Проблески Соломона в желтом»" + +#. ~ Description for {'str': 'Glimpses of Solomon in Yellow', 'str_pl': +#. 'copies of Solomon in Yellow'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is titled \"Glimpses of Solomon in Yellow; The Initiation " +"Rites of the Starry Wisdom Covenant, by Dr. Enoch Craven.\" It describes " +"not just the investiture of new adherents, but the history and beliefs of " +"the Church of Starry Wisdom. Someone has defaced the sparse citations " +"section by scrawling \"PUPPETS OF ROME!\" over its few pages. The book does" +" not provide any biography for Dr. Craven, let alone academic credentials." +msgstr "" +"Книга в мягкой обложке под названием «Проблески Соломона в желтом; Обряды " +"инициации завета Звездной Мудрости, записанные д-ром Енохом Крейвеном». В " +"ней описаны не только принципы принятия новых адептов, но также история и " +"верования Церкви звёздной мудрости. Кто-то испортил страницы с цитатами, " +"нацарапав «МАРИОНЕТКИ РИМА» на нескольких страницах. В книге ничего не " +"говорится о биографии доктора Крейвена или его научной аккредитации." + +#: lang/json/BOOK_from_json.py +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "книга по философии" +msgstr[1] "книги по философии" +msgstr[2] "книг по философии" +msgstr[3] "книги по философии" + +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of +#. philosophy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "Глубокие рассуждения о морали с уклоном в эпистемологию и логику." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "" +"Экземпляр «По ту сторону добра и зла» Ницше в мятой и потрёпанной обложке." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "" +"«Единственный и его собственность» Макс Штирнера в современном переводе " +"Вольфи Ландстрейхера." + +#: lang/json/BOOK_from_json.py +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "" +"Большое расширенное издание «Безумия и неразумия» Мишеля Фуко. На обложке " +"красочно нарисована тюрьма-паноптикум." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "«Состояние Постмодерна» Жана-Франсуа Лиотара." + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "" +"Сборник текстов и очерков Жака Деррида. Его страницы дряхлые и пожелтевшие —" +" вам, вероятно, следует обращаться с ними осторожно." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "" +"«Общество спектакля» Ги Дебора. На обложке изображены ряды людей, безмятежно" +" смотрящих на экран." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "«Этика полового различия» и «Пол, который не одинок» Люси Иригарей." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." +msgstr "" +"«Симулякры и симуляция» Бодрийяра. На обложке изображён человек, держащий по" +" разноцветной таблетке в каждой руке со слоганом «Добро пожаловать в Пустыню" +" Реальности». Вам кажется, вы видели этот фильм." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." +" It looks to have been used as a coaster in a past life." +msgstr "" +"Маленькая карманная версия «Экзистенциализма и гуманизма» Сартра. Похоже, в " +"прошлой жизни она служила подставкой под кружку." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "" +"«Практическая этика» Питера Сингера. Отпечатано в местном университете." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "" +"Отксерокопированная книга на пружинке — «Индустриальное общество и его " +"будущее» от «Клуба Свободы». Похоже, оригинал был напечатан на пишущей " +"машинке." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an" +" ominous looking metal tube. Provocative." +msgstr "" +"«Индустриальное общество и его будущее» Теодора Казински. На обложке " +"изображён грубый деревянный ящик с проводами и зловещей металлической " +"трубой. Провокационно." + +#: lang/json/BOOK_from_json.py +msgid "This is a small reader on Hegel's Dialectics." +msgstr "Маленький томик диалектики Гегеля." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "«Государство и революция» Владимира Ленина. К счастью, на английском." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "«В защиту марксизма» Льва Троцкого." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" +" tag on the back cover. It appears to still be active." +msgstr "" +"«Укради эту книгу» Эбби Хоффмана. На задней обложке есть магнитная бирка. " +"Похоже, она ещё работает." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "" +"«Уолден, или Жизнь в лесу» под авторством Генри Дэвида Торо. Между страниц " +"заложен высушенный сдавленный листочек." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "" +"«Женщина-евнух» Жермен Грир. Какой-то ребёнок изрисовал красным карандашом " +"страницу с содержанием." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "«Введение в метафизику» Бергсона." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "«Четыре основные понятия психоанализа» Жака Лакана." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "Экземпляр «Государя» Макиавелли. Включает вступление К. Скиннера." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "«Революция повседневной жизни» Рауля Ванейгема." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" +" cover contains an image of a pelican." +msgstr "" +"Карманный экземпляр «Эссе об освобождении» Герберта Маркузе. На обложке " +"нарисован пеликан." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "«Или-или» Сёрена Кьеркегора." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "«Миф о пещере» Платона." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "«Левиафан» Томаса Хоббса." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "«Критика чистого разума» Иммануила Канта." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "«Первоначала философии» Декарта." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " +"Science\" by Friederich Nietzsche." +msgstr "Собрание из «К генеалогии морали» и «Весёлой науки» Фридриха Ницше." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "" +"«Миф о Сизифе» за авторством Альберта Камю. На обложке нарисованы " +"полуобнажённый мужчина и огромный валун." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "" +"«Болезнь к смерти» Сёрена Кьеркегора. На страницах полно липучек с " +"записками." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" +" title, it does not actually appear to be defending terrorism." +msgstr "" +"«В защиту терроризма» Льва Троцкого. Несмотря на название, терроризм в книге" +" не защищают." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "" +"«Исследование о политической справедливости» Уильяма Голдвина. Толстая книга" +" в старомодных выражениях." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this" +" book." +msgstr "" +"«Упразднение работы и другие сочинения» Боба Блэка. Похоже, «Упразднение " +"работы» — самое знаменитое сочинение в этой книге." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" +" like this book has a surprisingly long track record of owners." +msgstr "" +"«Что такое собственность?» Пьер-Жозефа Прудона. Судя по всему, это книга " +"сменила удивительно много владельцев." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "" +"«Хлеб и воля» Петра Кропоткина. На обложке вместо хлеба изображён пожилой " +"философ с роскошной бородой." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" +" might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "" +"«Несчастье родиться» Эмиля Чорана. Должно быть, эту книгу напечатали за " +"десятилетия до Катаклизма — её обложка довольно истрепалась." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "" +"«Мир как воля и представление» Артура Шопенгауэра. Среди страниц несколько " +"неразборчивых записей и каракулей." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" +" that the author's real name is Fereidoun M. Esfandiary." +msgstr "" +"«Манифест футурологов» за авторством FM-2030. Похоже, настоящее имя автора —" +" Ферейдун М. Эсфендиари." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "«Сборник Бастиа», большой сборник сочинений Фредерика Бастиа." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "" +"«Анархия, государство и утопия» Роберта Нозика, одна из самых влиятельных " +"книг современного либертарианства." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "«Социализм» Людвига фон Мизеса, обзор и критика социализма." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "" +"«Азбука коммунизма» Николая Бухарина, одна из самых влиятельных книг раннего" +" марксизма-ленинизма." + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "«Антикапиталистический менталитет» Людвига фон Мизеса." + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "«Модальная логика в метафизике»" +msgstr[1] "книги «Модальная логика в метафизике»" +msgstr[2] "книг «Модальная логика в метафизике»" +msgstr[3] "книги «Модальная логика в метафизике»" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies +#. of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "" +"Трактат о применении логических инструментов для рассмотрения природы " +"реальности. Книга содержит детальные дискуссии о проблемах метафизики." + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "«Эстетика: критическая антология»" +msgstr[1] "книги «Эстетика: критическая антология»" +msgstr[2] "книг «Эстетика: критическая антология»" +msgstr[3] "книги «Эстетика: критическая антология»" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': +#. 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works," +" and critical analyses on the subject of beauty." +msgstr "" +"Книга в твердой обложке с собранием эссе, научных работ и критических " +"анализов природы красоты." + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "«Философия информации»" +msgstr[1] "книги «Философия информации»" +msgstr[2] "книг «Философия информации»" +msgstr[3] "книги «Философия информации»" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': +#. 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe" +" and advance semantic investigations." +msgstr "" +"Университетский текст, подробно описывающий критическое исследование " +"концептуальной природы и основных принципов информации. Студент получит " +"полное понимание принципов, используемых для описания и продвижения " +"семантических исследований." + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "«Бытие и ничто»" +msgstr[1] "книги «Бытие и ничто»" +msgstr[2] "книг «Бытие и ничто»" +msgstr[3] "книги «Бытие и ничто»" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of +#. Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A" +" key work in the existentialist tradition." +msgstr "" +"«Бытие и ничто» Жан-Поля Сартра в мягкой обложке, ключевая работа в традиции" +" экзистенциалистов." + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "спортивный роман" +msgstr[1] "спортивных романа" +msgstr[2] "спортивных романов" +msgstr[3] "спортивные романы" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "" +"Драматический рассказ о малоизвестном боксёре, которому выпадает редкий шанс" +" сразиться с чемпионом в тяжёлом весе и значительно улучшить свою жизнь, " +"попутно завоевав сердце девушки, работающей в зоомагазине." + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "«Искусство банта»" +msgstr[1] "книги «Искусство банта»" +msgstr[2] "книг «Искусство банта»" +msgstr[3] "книги «Искусство банта»" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The +#. Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating," +" it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" +"Можно ожидать от этой книги руководства по украшению дома для вечеринок, но " +"на самом деле это роман о бейсболе. В финальной игре сезона восходящая " +"звезда доказывает себе, что он готов для игры в Высшей лиге." + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "«Особый тачдаун»" +msgstr[1] "книги «Особый тачдаун»" +msgstr[2] "книг «Особый тачдаун»" +msgstr[3] "книги «Особый тачдаун»" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The +#. Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "" +"В этой увлекательной повести о футбольных болельщиках развозчик пиццы " +"принимает отчаянное пари о результате игры в вечер понедельника." + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "«Зависть к трофею»" +msgstr[1] "книги «Зависть к трофею»" +msgstr[2] "книг «Зависть к трофею»" +msgstr[3] "книги «Зависть к трофею»" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "" +"Книга в мягкой обложке, внутри история восходящей звезды тенниса, сожалеющей" +" о собственном успехе." + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "«В высокой траве»" +msgstr[1] "книги «В высокой траве»" +msgstr[2] "книг «В высокой траве»" +msgstr[3] "книги «В высокой траве»" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "" +"Юмористическая повесть о похождениях профессионального атлета, ставшего " +"репортёром-любителем." + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "«Всеядное гольфа»" +msgstr[1] "книги «Всеядное гольфа»" +msgstr[2] "книг «Всеядное гольфа»" +msgstr[3] "книги «Всеядное гольфа»" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The +#. Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "" +"Сборник рассказов в твёрдом переплете, у которых из общего только гольф и " +"любовь." + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "«Мальчик в форме»" +msgstr[1] "книги «Мальчик в форме»" +msgstr[2] "книг «Мальчик в форме»" +msgstr[3] "книги «Мальчик в форме»" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "" +"Книга в твёрдом переплёте о менеджере по обмундированию команды Младшей " +"лиги, раскрывающая темы верности и презрения." + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "«Бюджетбол: как победить в нечестной игре»" +msgstr[1] "книги «Бюджетбол: как победить в нечестной игре»" +msgstr[2] "книг «Бюджетбол: как победить в нечестной игре»" +msgstr[3] "книги «Бюджетбол: как победить в нечестной игре»" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': +#. 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "" +"Бюджетбол - правдивый пересказ истории Бенни Боббина и его донкихотских " +"усилий в попытках победить хорошо финансируемую команду из Орландо." + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "«Летние парни»" +msgstr[1] "книги «Летние парни»" +msgstr[2] "книг «Летние парни»" +msgstr[3] "книги «Летние парни»" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The +#. Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "" +"Потрепанная книга в мягкой обложке, повествующая об истории становления " +"одной из величайших бейсбольных команд за всю историю." + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "«Волейбол: будь готов, всегда готов»" +msgstr[1] "книги «Волейбол: будь готов, всегда готов»" +msgstr[2] "книг «Волейбол: будь готов, всегда готов»" +msgstr[3] "книги «Волейбол: будь готов, всегда готов»" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': +#. 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up" +" your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "" +"«Волейбол: будь готов, всегда готов» - ваш иллюстрированный гид по улучшению" +" навыков. С помощью цветных фото и иллюстраций вы узнаете упражнения и " +"техники, которые позволят вам доминировать на площадке." + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "«Уильям Г. Морган, крёстный отец воллейбола»" +msgstr[1] "книги «Уильям Г. Морган, крёстный отец воллейбола»" +msgstr[2] "книг «Уильям Г. Морган, крёстный отец воллейбола»" +msgstr[3] "книги «Уильям Г. Морган, крёстный отец воллейбола»" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', +#. 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" +"Редкая книжка в твёрдом переплёте толщиной всего в 98 страниц, из которых " +"большая часть - зернистые черно-белые фотографии. Прочтя эту книгу, вы " +"узнаете, что изначально волейбол назывался «минтонет», а ещё немного " +"познакомитесь с её создателем." + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "«Легендарные велосипедные трассы»" +msgstr[1] "книги «Легендарные велосипедные трассы»" +msgstr[2] "книг «Легендарные велосипедные трассы»" +msgstr[3] "книги «Легендарные велосипедные трассы»" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike +#. Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" +"Огромная неподъемная книга под названием «ЛЕГЕНДАРНЫЕ велосипедные трассы по" +" всему миру». В ней детально описано множество проселочных трасс для " +"велосипедной езды по всему миру, за исключением Новой Англии. Но если " +"доедете до Патагонии на велосипеде - она очень вам пригодится." + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "«Плаваю - следовательно, существую»" +msgstr[1] "книги «Плаваю - следовательно, существую»" +msgstr[2] "книг «Плаваю - следовательно, существую»" +msgstr[3] "книги «Плаваю - следовательно, существую»" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare +#. Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" +"Тонкая книга в твёрдом переплёте представляет «Философию плавания», затем " +"игриво связывая множество философских выражений с достижениями пловцов. " +"Нельзя сказать, что это плохая книга, но определенно странная." + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "«Стратосфера: восстание колец»" +msgstr[1] "книги «Стратосфера: восстание колец»" +msgstr[2] "книг «Стратосфера: восстание колец»" +msgstr[3] "книги «Стратосфера: восстание колец»" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': +#. 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "" +"Хроника четырех десятилетий профессионального баскетбола на фоне устойчивых " +"социальных изменений." + +#: lang/json/BOOK_from_json.py +msgid "Anything Can Be Beautiful" +msgid_plural "Anything Can Be Beautifuls" +msgstr[0] "«Красота есть во всем»" +msgstr[1] "книги «Красота есть во всем»" +msgstr[2] "книг «Красота есть во всем»" +msgstr[3] "книги «Красота есть во всем»" + +#. ~ Description for Anything Can Be Beautiful +#: lang/json/BOOK_from_json.py +msgid "" +"Stylist, designer, and glitter goddess, Tiffynie Blust looks at the world " +"one mantra in mind: anything can be beautiful." +msgstr "" +"Стилист, дизайнер и богиня блеска Тиффания Блуст видит весь мир вокруг себя " +"с одной мантрой в уме: красота есть во всем." + +#: lang/json/BOOK_from_json.py +msgid "The Greatest Rooms of the Century" +msgid_plural "The Greatest Rooms of the Centurys" +msgstr[0] "«Лучшие образцы дизайна столетия»" +msgstr[1] "книги «Лучшие образцы дизайна столетия»" +msgstr[2] "книг «Лучшие образцы дизайна столетия»" +msgstr[3] "книги «Лучшие образцы дизайна столетия»" + +#. ~ Description for The Greatest Rooms of the Century +#: lang/json/BOOK_from_json.py +msgid "" +"A stunning collection of the best living spaces created and commissioned by " +"the most influential people in interior design." +msgstr "" +"Потрясающая коллекция лучших жилых помещений, созданная и заказанная самыми " +"влиятельными людьми в дизайне интерьера." + +#: lang/json/BOOK_from_json.py +msgid "The Hands-On Home" +msgid_plural "The Hands-On Homes" +msgstr[0] "«Практичный дом»" +msgstr[1] "книги «Практичный дом»" +msgstr[2] "книг «Практичный дом»" +msgstr[3] "книги «Практичный дом»" + +#. ~ Description for The Hands-On Home +#: lang/json/BOOK_from_json.py +msgid "" +"An ecologically-minded take on modern homemaking, this is a practical guide " +"to maximising your time in the kitchen and beyond." +msgstr "" +"Экологичный подход к современному домоводству, практическое руководство по " +"получению максимума из вашего времени на кухне и не только." + +#: lang/json/BOOK_from_json.py +msgid "Rooms We Love" +msgid_plural "Rooms We Loves" +msgstr[0] "«Комнаты, которые мы любим»" +msgstr[1] "книги «Комнаты, которые мы любим»" +msgstr[2] "книг «Комнаты, которые мы любим»" +msgstr[3] "книги «Комнаты, которые мы любим»" + +#. ~ Description for Rooms We Love +#: lang/json/BOOK_from_json.py +msgid "" +"This is a guide on how to affordably decorate rooms to suit your " +"personality. In the book, we visit rooms inspired by the needs of each " +"homeowner and will see how they transformed their rooms." +msgstr "" +"Руководство по доступному декорированию комнат в соответствии с вашими " +"личными предпочтениями. В книге показаны комнаты, чьи владельцы ощутили " +"вдохновение и изменили их под свои нужды." + +#: lang/json/BOOK_from_json.py +msgid "New York Parties" +msgid_plural "New York Partiess" +msgstr[0] "«Вечеринки Нью-Йорка»" +msgstr[1] "книги «Вечеринки Нью-Йорка»" +msgstr[2] "книг «Вечеринки Нью-Йорка»" +msgstr[3] "книги «Вечеринки Нью-Йорка»" + +#. ~ Description for New York Parties +#: lang/json/BOOK_from_json.py +msgid "" +"Visit the homes of savvy tastemakers from the worlds of fashion, finance, " +"and design, with this book of lavish photography." +msgstr "" +"Посетите дома задающих вкусы людей из мира моды, финансов и дизайна с этой " +"книгой роскошных фотографий." + +#: lang/json/BOOK_from_json.py +msgid "Best Signature Outdoor Kitchens" +msgid_plural "Best Signature Outdoor Kitchenss" +msgstr[0] "«Лучшие Фирменные Наружные Кухни»" +msgstr[1] "книги «Лучшие Фирменные Наружные Кухни»" +msgstr[2] "книг «Лучшие Фирменные Наружные Кухни»" +msgstr[3] "книги «Лучшие Фирменные Наружные Кухни»" + +#. ~ Description for Best Signature Outdoor Kitchens +#: lang/json/BOOK_from_json.py +msgid "" +"Outdoor space is one of the hottest amenities being considered by new and " +"existing homeowners. This book will show you how to turn any deck, patio, " +"or other outside area into a great place to cook." +msgstr "" +"Открытое пространство считается одним из самых важных удобств для новых и " +"существующих домовладельцев. Эта книга покажет вам, как превратить любую " +"террасу, внутренний дворик или иной открытый уголок в отличное место для " +"приготовления пищи." + +#: lang/json/BOOK_from_json.py +msgid "The Art of Using Plants to Transform Your Home" +msgid_plural "The Art of Using Plants to Transform Your Homes" +msgstr[0] "«Искусство планировки для преображения вашего дома»" +msgstr[1] "книги «Искусство планировки для преображения вашего дома»" +msgstr[2] "книг «Искусство планировки для преображения вашего дома»" +msgstr[3] "книги «Искусство планировки для преображения вашего дома»" + +#. ~ Description for The Art of Using Plants to Transform Your Home +#: lang/json/BOOK_from_json.py +msgid "" +"Bring gorgeous greenery into your life with this delightful guide to " +"decorating your living space with a wide variety of plants. Illustrated " +"examples enable you to easily transform every corner of your interior space." +msgstr "" +"Привнесите великолепную зелень в свою жизнь с этим восхитительным " +"руководством по украшению вашего жилого пространства с помощью растений. " +"Иллюстрированные примеры помогут легко трансформировать каждый уголок вашего" +" внутреннего пространства." + +#: lang/json/BOOK_from_json.py +msgid "Woman of Color" +msgid_plural "Woman of Colors" +msgstr[0] "«Цветная женщина»" +msgstr[1] "книги «Цветная женщина»" +msgstr[2] "книг «Цветная женщина»" +msgstr[3] "книги «Цветная женщина»" + +#. ~ Description for Woman of Color +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of essays and advice on style, beauty, and motherhood." +" Part memoir, part lifestyle guide, this book reflects the author's " +"experience growing up as a woman of color in Brooklyn." +msgstr "" +"Сборник эссе, советов по стилю красоте и материнству. Отчасти мемуары, " +"отчасти руководство по стилю жизни, эта книга основана на опыте личном " +"автора - взрослении цветной женщины в Бруклине." + +#: lang/json/BOOK_from_json.py +msgid "10 Cool Things About Being A Ring Bearer" +msgid_plural "10 Cool Things About Being A Ring Bearers" +msgstr[0] "«10 плюсов быть носительницей колец»" +msgstr[1] "книги «10 плюсов быть носительницей колец»" +msgstr[2] "книг «10 плюсов быть носительницей колец»" +msgstr[3] "книги «10 плюсов быть носительницей колец»" + +#. ~ Description for 10 Cool Things About Being A Ring Bearer +#: lang/json/BOOK_from_json.py +msgid "" +"This book is for the delightful little ring bearer in your wedding. The " +"author depicts the responsibility and the honor in being a ring bearer your " +"little angel will cherish." +msgstr "" +"Книга для прекрасной маленькой носительницы колец на вашей свадьбе. Автор " +"рассказывает об ответственности и чести быть носительницей колец, от которых" +" ваш маленький ангел будет в восторге." + +#: lang/json/BOOK_from_json.py +msgid "How to Raise a Gentleman: A Civilized Guide to Parenting" +msgid_plural "How to Raise a Gentleman: A Civilized Guide to Parentings" +msgstr[0] "«Как вырастить джентльмена: культурное руководство для родителей»" +msgstr[1] "" +"книги «Как вырастить джентльмена: культурное руководство для родителей»" +msgstr[2] "" +"книг «Как вырастить джентльмена: культурное руководство для родителей»" +msgstr[3] "" +"книги «Как вырастить джентльмена: культурное руководство для родителей»" + +#. ~ Description for How to Raise a Gentleman: A Civilized Guide to Parenting +#: lang/json/BOOK_from_json.py +msgid "" +"A revised edition for parents who hope their little boy children will grow " +"up to be the kind of men who know which fork to use, how to treat others, " +"and generally make their parents proud." +msgstr "" +"Переиздание для родителей, которые надеются, что их малыш вырастет мужчиной," +" который знает, какая вилка для какого блюда, как относиться к окружающим и " +"вообще как стать гордостью для своих родителей." + +#: lang/json/BOOK_from_json.py +msgid "" +"International Approaches to Securing Radioactive Sources Against Terrorism" +msgid_plural "" +"International Approaches to Securing Radioactive Sources Against Terrorisms" +msgstr[0] "" +"«Международные принципы обеспечения безопасности радиоактивных веществ от " +"терроризма»" +msgstr[1] "" +"книги «Международные принципы обеспечения безопасности радиоактивных веществ" +" от терроризма»" +msgstr[2] "" +"книг «Международные принципы обеспечения безопасности радиоактивных веществ " +"от терроризма»" +msgstr[3] "" +"книги «Международные принципы обеспечения безопасности радиоактивных веществ" +" от терроризма»" + +#. ~ Description for International Approaches to Securing Radioactive Sources +#. Against Terrorism +#: lang/json/BOOK_from_json.py +msgid "" +"This book presents how to enhance cooperation and assistance between " +"countries in support of International Atomic Energy Agency efforts to secure" +" radioactive sources against the threat of terrorism." +msgstr "" +"Книга, описывающая способы усиления кооперации и обеспечения взаимодействия " +"между странами в поддержку международного агентства по ядерной энергетике и " +"его усилий по обеспечению сохранности ядерных материалов от угрозы " +"терроризма." + +#: lang/json/BOOK_from_json.py +msgid "Principles of Forensic Psychiatry" +msgid_plural "Principles of Forensic Psychiatrys" +msgstr[0] "«Основы судебной психиатрии»" +msgstr[1] "книги «Основы судебной психиатрии»" +msgstr[2] "книг «Основы судебной психиатрии»" +msgstr[3] "книги «Основы судебной психиатрии»" + +#. ~ Description for Principles of Forensic Psychiatry +#: lang/json/BOOK_from_json.py +msgid "" +"This text addresses standards in the assessment and treatment of aggression " +"and violence as well as psychological and neuroimaging assessments." +msgstr "" +"Книга, описывающая стандарты оценки и лечения агрессии и жестокости, а также" +" психологической и неврологической экспертизы." + +#: lang/json/BOOK_from_json.py +msgid "The Guide to Reflective Conflict Resolution" +msgid_plural "The Guide to Reflective Conflict Resolutions" +msgstr[0] "«Руководство по рефлективному решению конфликтов»" +msgstr[1] "книги «Руководство по рефлективному решению конфликтов»" +msgstr[2] "книг «Руководство по рефлективному решению конфликтов»" +msgstr[3] "книги «Руководство по рефлективному решению конфликтов»" + +#. ~ Description for The Guide to Reflective Conflict Resolution +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this hardbound book reads: \"Why should professionals care" +" about reflective practice? How do its principles and methods increase " +"competence? What characteristics distinguish reflective practitioners?\"" +msgstr "" +"На задней обложке написано: «Зачем профессионалам нужен рефлективный подход?" +" Как его принципы и методы повышают компетентность? Что характеризует " +"рефлективность участников?»" + +#: lang/json/BOOK_from_json.py +msgid "The Oxbridge Handbook of Mood Ailments" +msgid_plural "The Oxbridge Handbook of Mood Ailmentss" +msgstr[0] "«Оксбриджский справочник аффективных расстройств»" +msgstr[1] "книги «Оксбриджский справочник аффективных расстройств»" +msgstr[2] "книг «Оксбриджский справочник аффективных расстройств»" +msgstr[3] "книги «Оксбриджский справочник аффективных расстройств»" + +#. ~ Description for The Oxbridge Handbook of Mood Ailments +#: lang/json/BOOK_from_json.py +msgid "" +"The Oxbridge Handbook of Mood Ailments provides detailed coverage of the " +"characterization, understanding, and treatment of affective disorders. It " +"provides coverage of unipolar depression, bipolar disorder, and known " +"variants of these illnesses." +msgstr "" +"Оксбриджский справочник по перепадам настроения детально описывает характер," +" лечение и природу аффективных расстройств. Он охватывет униполярную " +"депрессию, биполярное расстройство и известные вариации этих заболеваний." + +#: lang/json/BOOK_from_json.py +msgid "Phonological Acquisition and Disorders" +msgid_plural "Phonological Acquisition and Disorderss" +msgstr[0] "«Фонологические проблемы и расстройства»" +msgstr[1] "книги «Фонологические проблемы и расстройства»" +msgstr[2] "книг «Фонологические проблемы и расстройства»" +msgstr[3] "книги «Фонологические проблемы и расстройства»" + +#. ~ Description for Phonological Acquisition and Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"Studying the phonologies of children with non-organic speech disorders, this" +" volume details the latest findings in optimality theory, phonological " +"acquisition and disorders. It is intended for linguists and psychologists." +msgstr "" +"Справочник, излагающий последние открытия в теории оптимальности, " +"приобретенных фонологических проблемах и расстройствах у детей с " +"неорганическими расстройствами речи. Предназначен для лингвистов и " +"психологов." + +#: lang/json/BOOK_from_json.py +msgid "Therapeutic Gardens and Healing Spaces" +msgid_plural "Therapeutic Gardens and Healing Spacess" +msgstr[0] "«Терапевтические сады и целебные пространства»" +msgstr[1] "книги «Терапевтические сады и целебные пространства»" +msgstr[2] "книг «Терапевтические сады и целебные пространства»" +msgstr[3] "книги «Терапевтические сады и целебные пространства»" + +#. ~ Description for Therapeutic Gardens and Healing Spaces +#: lang/json/BOOK_from_json.py +msgid "" +"This book addresses how to design therapeutic gardens. It illustrates a " +"variety of landscape designs appropriate for public spaces that promote " +"mental health." +msgstr "" +"В этой книге рассказывается, как проектировать лечебные сады. Здесь с " +"иллюстрациями показаны различные ландшафтные проекты, подходящие для " +"общественных мест, способствующие укреплению психического здоровья." + +#: lang/json/BOOK_from_json.py +msgid "Advances in Drug Delivery Systems" +msgid_plural "Advances in Drug Delivery Systemss" +msgstr[0] "«Достижения в направленном транспорте лекарственных веществ»" +msgstr[1] "книги «Достижения в направленном транспорте лекарственных веществ»" +msgstr[2] "книг «Достижения в направленном транспорте лекарственных веществ»" +msgstr[3] "книги «Достижения в направленном транспорте лекарственных веществ»" + +#. ~ Description for Advances in Drug Delivery Systems +#: lang/json/BOOK_from_json.py +msgid "" +"This softcover reprint covers an array of topics in pharmacology. The " +"physicochemical concepts of the refinement of bioresponsive drug delivery " +"are presented in detail alongside a variety of current approaches employed " +"in the development of zero order release systems." +msgstr "" +"Книга в мягком переплете, охватывающая множество тем в фармакологии. " +"Подробно представлены физико-химические принципы улучшения биореактивного " +"транспорта лекарств, а также различные современные подходы, используемые при" +" разработке систем высвобождения нулевого порядка." + +#: lang/json/BOOK_from_json.py +msgid "Using Art to Treat Eating Disorders" +msgid_plural "Using Art to Treat Eating Disorderss" +msgstr[0] "«Арт-терапия в лечении пищевых расстройств»" +msgstr[1] "книги «Арт-терапия в лечении пищевых расстройств»" +msgstr[2] "книг «Арт-терапия в лечении пищевых расстройств»" +msgstr[3] "книги «Арт-терапия в лечении пищевых расстройств»" + +#. ~ Description for Using Art to Treat Eating Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"This is an introductory guide for those wanting to explore the use of art to" +" address eating disorders. Art therapy is a particularly effective " +"therapeutic intervention, as it allows people to express uncomfortable " +"thoughts and feelings nonverbally." +msgstr "" +"Вводное руководство для тех, кто хочет изучить использование искусства для " +"лечения расстройств пищевого поведения. Арт-терапия - это особенно " +"эффективная терапевтическая методика, так как она позволяет людям " +"невербально выражать неприятные мысли и чувства." + +#: lang/json/BOOK_from_json.py +msgid "A Clinical Guide to Video Gamers" +msgid_plural "A Clinical Guide to Video Gamerss" +msgstr[0] "«Клиническое руководство по игрокам в видеоигры»" +msgstr[1] "копии «Клиническое руководство по игрокам в видеоигры»" +msgstr[2] "копий «Клиническое руководство по игрокам в видеоигры»" +msgstr[3] "копии «Клиническое руководство по игрокам в видеоигры»" + +#. ~ Description for A Clinical Guide to Video Gamers +#: lang/json/BOOK_from_json.py +msgid "" +"This scholarly work considers the role that games play in psychological " +"experiences and mental health. Chapters examine the factors that compel " +"individual gamers to select and identify with particular games and " +"characters, as well as the different play styles, genres, and archetypes " +"common in video games." +msgstr "" +"Научная работа, рассматривающая роль, которую играют игры в психологическом " +"опыте и душевном здоровье. Главы изучают факторы, которые влияют на " +"ассоциирование отдельных игроков себя с конкретными играми и персонажами, а " +"также стилями игры, жанрами и архетипами в видеоиграх." + +#: lang/json/BOOK_from_json.py +msgid "Paranoia and the History of Madness" +msgid_plural "Paranoia and the History of Madnesss" +msgstr[0] "«Паранойя и история безумия»" +msgstr[1] "книги «Паранойя и история безумия»" +msgstr[2] "книг «Паранойя и история безумия»" +msgstr[3] "книги «Паранойя и история безумия»" + +#. ~ Description for Paranoia and the History of Madness +#: lang/json/BOOK_from_json.py +msgid "" +"This book is an analysis of the use and misuse of paranoia throughout " +"history and in contemporary society. The impact of paranoia on societies is" +" explored in detail." +msgstr "" +"Книга, представляющая собой анализ использования и злоупотребления паранойей" +" на протяжении всей истории и в современном обществе. В ней подробно " +"исследуется влияние паранойи на общество." + +#: lang/json/BOOK_from_json.py +msgid "Psychoanalysis and Colonialism" +msgid_plural "Psychoanalysis and Colonialisms" +msgstr[0] "«Психоанализ и колониализм»" +msgstr[1] "книги «Психоанализ и колониализм»" +msgstr[2] "книг «Психоанализ и колониализм»" +msgstr[3] "книги «Психоанализ и колониализм»" + +#. ~ Description for Psychoanalysis and Colonialism +#: lang/json/BOOK_from_json.py +msgid "" +"Freud referred to women's sexuality as a \"dark continent\" for " +"psychoanalysis, drawing on colonial use of the same phrase to refer to " +"Africa. This book details how the problematic universalism of " +"psychoanalysis led theorists to reject its relevance for postcolonial " +"critique." +msgstr "" +"Фрейд назвал женскую сексуальность «темным континентом» для психоанализа, " +"опираясь на колониальное использование этой же фразы для обозначения Африки." +" В этой книге подробно рассказывается о том, как проблемный универсализм " +"психоанализа побудил теоретиков отвергнуть его актуальность для " +"постколониальной критики." + +#: lang/json/BOOK_from_json.py +msgid "The Psychology of Stalking" +msgid_plural "The Psychology of Stalkings" +msgstr[0] "«Психология преследования»" +msgstr[1] "книги «Психология преследования»" +msgstr[2] "книг «Психология преследования»" +msgstr[3] "книги «Психология преследования»" + +#. ~ Description for The Psychology of Stalking +#: lang/json/BOOK_from_json.py +msgid "" +"This book explores stalking from social, psychiatric, psychological and " +"behavioral perspectives. Topics include psychiatric diagnoses, offender-" +"victim typologies, cyberstalking, false victimization syndrome, erotomania, " +"domestic violence, the stalking of public figures, and many other aspects of" +" stalking." +msgstr "" +"Книга, рассматривающая преследования с социальной, психиатрической, " +"психологической и поведенческой точки зрения. Тематика включает " +"психиатрические диагнозы, типологии преступник-жертва, кибер-преследование, " +"синдром ложной виктимизации, эротоманию, домашнее насилие, преследование " +"общественных деятелей и многие другие аспекты преследования." + #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" msgid_plural "issues of Tactical Handgun Digest" @@ -35875,6 +36755,406 @@ msgstr "" "легендарных историй. Из-за объёма книги поиск информации в ней может занять " "много времени." +#: lang/json/BOOK_from_json.py +msgid "Nail Your Law Firm Interview" +msgid_plural "copies of Nail Your Law Firm Interview" +msgstr[0] "«Идеальное собеседование для адвоката»" +msgstr[1] "книги «Идеальное собеседование для адвоката»" +msgstr[2] "книг «Идеальное собеседование для адвоката»" +msgstr[3] "книги «Идеальное собеседование для адвоката»" + +#. ~ Description for {'str': 'Nail Your Law Firm Interview', 'str_pl': 'copies +#. of Nail Your Law Firm Interview'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lightweight book proclaims itself to be \"the ONLY gold star interview " +"guide for lawyers interviewing in any type of a job interview.\" It was " +"suppsed to help new lawyers find work." +msgstr "" +"Тонкая книжка, объявляющая себя «ЕДИНСТВЕННЫМ руководством с золотой звездой" +" по прохождению собеседований на работу адвоката в любой области». Похоже, " +"она предназначалась для помощи с поиском работы для адвоката." + +#: lang/json/BOOK_from_json.py +msgid "holybook abstract" +msgid_plural "holybook abstracts" +msgstr[0] "абстрактная священная книга" +msgstr[1] "абстрактные священные книги" +msgstr[2] "абстрактных священных книг" +msgstr[3] "абстрактные священные книги" + +#. ~ Description for holybook abstract +#: lang/json/BOOK_from_json.py +msgid "theoretically this isn't a book at all" +msgstr "Теоретически, это даже и не книга." + +#: lang/json/BOOK_from_json.py +msgid "Mycenacean Hymns" +msgid_plural "copies of Mycenacean Hymns" +msgstr[0] "«Грибные Гимны»" +msgstr[1] "книги «Грибные Гимны»" +msgstr[2] "книг «Грибные Гимны»" +msgstr[3] "книги «Грибные Гимны»" + +#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of +#. Mycenacean Hymns'} +#: lang/json/BOOK_from_json.py +msgid "" +"A vellum book containing the hymns central to Marloss faith. As the verses " +"lead to each other, the text sings of unity and promised paradise." +msgstr "" +"Пергаментная книга с религиозными песнопениями, посвящёнными вере в Микус. " +"Стихи идут один за одним, воспевая единение и обещая рай." + +#: lang/json/BOOK_from_json.py +msgid "King James Bible" +msgid_plural "copies of King James Bible" +msgstr[0] "Библия короля Джеймса " +msgstr[1] "копии Библии короля Джеймса " +msgstr[2] "копий Библии короля Джеймса " +msgstr[3] "копии Библии короля Джеймса " + +#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King +#. James Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, which originated in England " +"in the early 1600s." +msgstr "" +"Английский перевод христианской библии, возраст которой датируется началом " +"16 века." + +#: lang/json/BOOK_from_json.py +msgid "Eastern Orthodox Bible" +msgid_plural "copies of Eastern Orthodox Bible" +msgstr[0] "Православная Библия " +msgstr[1] "копии Православной Библии" +msgstr[2] "копий Православной Библии" +msgstr[3] "копии Православной Библии" + +#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of +#. Eastern Orthodox Bible'} +#: lang/json/BOOK_from_json.py +msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." +msgstr "Английская копия православной версии Библии." + +#: lang/json/BOOK_from_json.py +msgid "Gideon Bible" +msgid_plural "copies of Gideon Bible" +msgstr[0] "Библия Гидеона" +msgstr[1] "копии Библии Гидеона" +msgstr[2] "копий Библии Гидеона" +msgstr[3] "копии Библии Гидеона" + +#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon +#. Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, distributed free of charge by" +" Gideons International." +msgstr "" +"Английский перевод христианской библии, распространяемый бесплатно " +"Ассоциацией Евангельских Христиан Гидеон." + +#: lang/json/BOOK_from_json.py +msgid "The Guru Granth Sahib" +msgid_plural "copies of The Guru Granth Sahib" +msgstr[0] "«Гуру Грантх Сахиб»" +msgstr[1] "копии Гуру Грантх Сахиб" +msgstr[2] "копий Гуру Грантх Сахиб" +msgstr[3] "копии Гуру Грантх Сахиб" + +#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The +#. Guru Granth Sahib'} +#: lang/json/BOOK_from_json.py +msgid "A single-volume copy of the central religious texts of Sikhism." +msgstr "Сборник основных религиозных текстов сикхизма." + +#: lang/json/BOOK_from_json.py +msgid "Hadith" +msgid_plural "copies of Hadith" +msgstr[0] "Хадис" +msgstr[1] "копии Хадиса" +msgstr[2] "копий Хадиса" +msgstr[3] "копии Хадиса" + +#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} +#: lang/json/BOOK_from_json.py +msgid "" +"A Muslim religious text containing an account of the sayings and actions of " +"the prophet Muhammad." +msgstr "" +"Мусульманский религиозный текст, содержащий предания о поступках и " +"изречениях пророка Мухаммеда." + +#: lang/json/BOOK_from_json.py +msgid "Principia Discordia" +msgid_plural "copies of Principia Discordia" +msgstr[0] "Принципия Дискордия" +msgstr[1] "копии Принципия Дискордия" +msgstr[2] "копий Принципия Дискордия" +msgstr[3] "копии Принципия Дискордия" + +#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of +#. Principia Discordia'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of Discordianism. It seems to " +"primarily concern chaos, and features a card in the back which informs you " +"that you are now a 'genuine and authorized Pope of Discordia'." +msgstr "" +"Книга, содержащая в себе основные понятия дискордианизма. Похоже, в первую " +"очередь она касается хаоса. На обратной стороне имеется карточка, " +"уверяющая, что вы теперь «истинный и уполномоченный Папа церкви " +"Дискордианизма»." + +#: lang/json/BOOK_from_json.py +msgid "The Kojiki" +msgid_plural "copies of The Kojiki" +msgstr[0] "Кодзики" +msgstr[1] "копии Кодзики" +msgstr[2] "копий Кодзики" +msgstr[3] "копии Кодзики" + +#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} +#: lang/json/BOOK_from_json.py +msgid "" +"The oldest extant chronicle of Japan's myths and history, the stories " +"contained in the Kojiki are part of the inspiration behind Shinto practices." +msgstr "" +"Старейшая из сохранившихся хроник мифов и истории Японии. Рассказы, " +"содержащиеся в Кодзики, являются источником вдохновения для практик " +"синтоистов." + +#: lang/json/BOOK_from_json.py +msgid "The Book of Mormon" +msgid_plural "copies of The Book of Mormon" +msgstr[0] "«Книга Мормона»" +msgstr[1] "копии «Книга Мормона»" +msgstr[2] "копий «Книга Мормона»" +msgstr[3] "копии «Книга Мормона»" + +#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The +#. Book of Mormon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The sacred text of the Latter Day Saint movement of Christianity, originally" +" published in 1830 by Joseph Smith." +msgstr "" +"Священный текст движения Святых Последних Дней в христианстве, впервые " +"опубликован в 1830 году Джозефом Смитом." + +#: lang/json/BOOK_from_json.py +msgid "The Gospel of the Flying Spaghetti Monster" +msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" +msgstr[0] "«Евангелие о Летающем Макаронном Монстре»" +msgstr[1] "копии «Евангелие о Летающем Макаронном Монстре»" +msgstr[2] "копий «Евангелие о Летающем Макаронном Монстре»" +msgstr[3] "копии «Евангелие о Летающем Макаронном Монстре»" + +#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', +#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of the Church of the Flying Spaghetti " +"Monster. It seems to involve a lot of pirates and some sort of invisible " +"drunken monster made of pasta." +msgstr "" +"Книга, которая воплощает в себе основные убеждения церкви Летающего " +"Макаронного Монстра. В ней рассказывается о множестве пиратов и некоторых " +"видах невидимых пьяных монстров из лапши." + +#: lang/json/BOOK_from_json.py +msgid "Quran" +msgid_plural "copies of Quran" +msgstr[0] "Коран" +msgstr[1] "копии Корана" +msgstr[2] "копий Корана" +msgstr[3] "копии Корана" + +#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Muslim book of holy scriptures, with " +"explanatory notes and commentaries to aid in understanding." +msgstr "" +"Английский перевод мусульманской книги священного писания, с пояснениями и " +"комментариями для более лёгкого понимания." + +#: lang/json/BOOK_from_json.py +msgid "The Satanic Bible" +msgid_plural "copies of The Satanic Bible" +msgstr[0] "«Сатанинская Библия»" +msgstr[1] "книги «Сатанинская Библия»" +msgstr[2] "книг «Сатанинская Библия»" +msgstr[3] "книги «Сатанинская Библия»" + +#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The +#. Satanic Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of essays, observations, and rituals published by Anton LaVey " +"in 1969." +msgstr "" +"Сборник эссе, измышлений и ритуалов, опубликованных Антоном ЛаВеем в 1969 " +"году." + +#: lang/json/BOOK_from_json.py +msgid "Dianetics" +msgid_plural "copies of Dianetics" +msgstr[0] "«Дианетика»" +msgstr[1] "копии «Дианетика»" +msgstr[2] "копий «Дианетика»" +msgstr[3] "копии «Дианетика»" + +#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book is the canonical text of Scientology. Written by a science " +"fiction author, it contains self-improvement techniques and musings on " +"psychology called Dianetics." +msgstr "" +"Эта книга содержит канонический текст о Саентологии. Написана автором-" +"фантастом и содержит описание методов самосовершенствования и размышления о " +"науке под названием Дианетика." + +#: lang/json/BOOK_from_json.py +msgid "The Book of the SubGenius" +msgid_plural "copies of The Book of the SubGenius" +msgstr[0] "«Книга НедоМудреца»" +msgstr[1] "копии «Книга НедоМудреца»" +msgstr[2] "копий «Книга НедоМудреца»" +msgstr[3] "копии «Книга НедоМудреца»" + +#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of +#. The Book of the SubGenius'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book about the Church of the SubGenius. It seems to involve a salesman " +"named J. R. \"Bob\" Dobbs and a concept called 'slack'." +msgstr "" +"Книга о Церкви НедоМудреца. Кажется, речь идёт о продавце по имени Дж. Р. " +"«Боб» Роббс и концепции под названием «халява»." + +#: lang/json/BOOK_from_json.py +msgid "The Sutras of the Buddha" +msgid_plural "copies of The Sutras of the Buddha" +msgstr[0] "Сутры Будды" +msgstr[1] "копии Сутр Будды" +msgstr[2] "копий Сутр Будды" +msgstr[3] "копии Сутр Будды" + +#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of +#. The Sutras of the Buddha'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of discourses attributed to the Buddha and his close disciples." +msgstr "Сборник рассуждений, приписываемых Будде и его ближайшим ученикам." + +#: lang/json/BOOK_from_json.py +msgid "Talmud" +msgid_plural "copies of the Talmud" +msgstr[0] "Талмуд" +msgstr[1] "копии Талмуда" +msgstr[2] "копий Талмуда" +msgstr[3] "копии Талмуда" + +#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of the Talmud'} +#: lang/json/BOOK_from_json.py +msgid "" +"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " +"Hebrew Bible with teachings and opinions of thousands of rabbis." +msgstr "" +"Один из основных текстов раввинского иудаизма. В талмуде описываются события" +" из еврейской библии с учениями и мнениями тысяч раввинов." + +#: lang/json/BOOK_from_json.py +msgid "Tanakh" +msgid_plural "copies of Tanakh" +msgstr[0] "Танах" +msgstr[1] "копии Танаха" +msgstr[2] "копий Танаха" +msgstr[3] "копии Танаха" + +#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single-volume book containing the complete canon of the Jewish Bible." +msgstr "Однотомная книга, содержащая полный канон еврейской библии." + +#: lang/json/BOOK_from_json.py +msgid "The Tripitaka" +msgid_plural "copies of The Tripitaka" +msgstr[0] "«Трипитака»" +msgstr[1] "копии «Трипитака»" +msgstr[2] "копий «Трипитака»" +msgstr[3] "копии «Трипитака»" + +#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The +#. Tripitaka'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Buddhist writings describing their canons of " +"scriptures." +msgstr "" +"Собрание священных буддийских писаний, описывающих буддистские каноны." + +#: lang/json/BOOK_from_json.py +msgid "The Upanishads" +msgid_plural "copies of The Upanishads" +msgstr[0] "«Упанишады»" +msgstr[1] "копии «Упанишады»" +msgstr[2] "копий «Упанишады»" +msgstr[3] "копии «Упанишады»" + +#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The +#. Upanishads'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Hindu writings regarding the nature of reality and " +"describing the character and form of human salvation." +msgstr "" +"Сборник древнеиндийских трактатов религиозно-философского характера. В них " +"рассказывается о природе реальности и описываются характер и форма " +"человеческого спасения." + +#: lang/json/BOOK_from_json.py +msgid "The Four Vedas" +msgid_plural "copies of The Four Vedas" +msgstr[0] "«Четыре Веды»" +msgstr[1] "копии «Четыре Веды»" +msgstr[2] "копий «Четыре Веды»" +msgstr[3] "копии «Четыре Веды»" + +#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four +#. Vedas'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single volume containing all four Vedas, which are the oldest scriptures " +"of Hinduism." +msgstr "" +"Сборник, состоящий из всех четырёх Вед, самых древних священных писаний " +"индуизма." + +#: lang/json/BOOK_from_json.py +msgid "Hávamál" +msgid_plural "copies of Hávamál" +msgstr[0] "«Хавамал»" +msgstr[1] "копии «Хавамала»" +msgstr[2] "копий «Хавамала»" +msgstr[3] "копии «Хавамала»" + +#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of several Old Norse poems. The poems contain " +"proverbs and stories attributed to the god Odin, many transcribed from oral " +"history." +msgstr "" +"Перевод на английский язык нескольких древнескандинавских поэм. В поэмах " +"содержатся пословицы и истории, посвящённые богу Одину, многие из которых " +"записаны с устных преданий." + #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" msgid_plural "Duelist's Annuals" @@ -35909,9 +37189,9 @@ msgstr "Подробное военное руководство по испол msgid "Survival Under Atomic Attack" msgid_plural "copies of Survival Under Atomic Attack" msgstr[0] "«Выживание после ядерной войны»" -msgstr[1] "«Выживание после ядерной войны»" -msgstr[2] "«Выживание после ядерной войны»" -msgstr[3] "«Выживание после ядерной войны»" +msgstr[1] "копии «Выживание после ядерной войны»" +msgstr[2] "копий «Выживание после ядерной войны»" +msgstr[3] "копии «Выживание после ядерной войны»" #. ~ Description for {'str': 'Survival Under Atomic Attack', 'str_pl': 'copies #. of Survival Under Atomic Attack'} @@ -35922,7 +37202,7 @@ msgid "" "wrote this was a terrible writer, and gleaning knowledge from the rants is a" " chore." msgstr "" -"Подробное руководство по выживанию в пустыне и городских условиях после " +"Подробное руководство по выживанию в диких и городских условиях после " "ядерной войны. Хотя оно содержит немало полезной информации, человек, " "написавший её, был ужасным писателем, и выискивать полезную информацию в его" " писанине, состоящей из жалоб, весьма непросто." @@ -35991,7 +37271,7 @@ msgid_plural "copies of Pitching a Tent" msgstr[0] "«Разбиваем палатку»" msgstr[1] "копии «Разбиваем палатку»" msgstr[2] "копий «Разбиваем палатку»" -msgstr[3] "«Разбиваем палатку»" +msgstr[3] "копии «Разбиваем палатку»" #. ~ Description for {'str': 'Pitching a Tent', 'str_pl': 'copies of Pitching #. a Tent'} @@ -36059,10 +37339,10 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Natural Remedies of New England" msgid_plural "copies of Natural Remedies of New England" -msgstr[0] "Природные лекарства Новой Англии" -msgstr[1] "Природные лекарства Новой Англии" -msgstr[2] "Природные лекарства Новой Англии" -msgstr[3] "Природные лекарства Новой Англии" +msgstr[0] "«Природные лекарства Новой Англии»" +msgstr[1] "копии «Природные лекарства Новой Англии»" +msgstr[2] "копий «Природные лекарства Новой Англии»" +msgstr[3] "копии «Природные лекарства Новой Англии»" #. ~ Description for {'str': 'Natural Remedies of New England', 'str_pl': #. 'copies of Natural Remedies of New England'} @@ -36111,7 +37391,7 @@ msgid_plural "Boston AnimeCon magazines" msgstr[0] "журнал «Boston AnimeCon»" msgstr[1] "журнала «Boston AnimeCon»" msgstr[2] "журналов «Boston AnimeCon»" -msgstr[3] "журнал «Boston AnimeCon»" +msgstr[3] "журналы «Boston AnimeCon»" #. ~ Description for {'str': 'Boston AnimeCon magazine'} #: lang/json/BOOK_from_json.py @@ -36249,6 +37529,26 @@ msgstr "" "Большая книга в твёрдой обложке, полная информации для профессиональных " "дизайнеров одежды." +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "шотландская книга о портном деле" +msgstr[1] "шотландские книги о портном деле" +msgstr[2] "шотландских книг о портном деле" +msgstr[3] "шотландские книги о портном деле" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of +#. Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "" +"Перевод гэльской книги из Шотландии. Скучно читать из-за её технического " +"тона, но она дает представление о шотландской культуре и информацию о пошиве" +" одежды." + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -36374,10 +37674,10 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "The Trapper's Companion" msgid_plural "copies of The Trapper's Companion" -msgstr[0] "«Напарник ловчего»" -msgstr[1] "«Напарник ловчего»" -msgstr[2] "«Напарник ловчего»" -msgstr[3] "«Напарник ловчего»" +msgstr[0] "«Помощник ловчего»" +msgstr[1] "книги «Помощник ловчего»" +msgstr[2] "книг «Помощник ловчего»" +msgstr[3] "книги «Помощник ловчего»" #. ~ Description for {'str': "The Trapper's Companion", 'str_pl': "copies of #. The Trapper's Companion"} @@ -36397,7 +37697,7 @@ msgid_plural "Boxing Monthlies" msgstr[0] "журнал о боксе" msgstr[1] "журнала о боксе" msgstr[2] "журналов о боксе" -msgstr[3] "журнал о боксе" +msgstr[3] "журналы о боксе" #. ~ Description for {'str': 'Boxing Monthly', 'str_pl': 'Boxing Monthlies'} #: lang/json/BOOK_from_json.py @@ -36429,63 +37729,456 @@ msgstr "" "советов для боя без оружия." #: lang/json/BOOK_from_json.py -msgid "readable magazine" -msgid_plural "readable magazines" -msgstr[0] "интересный журнал" -msgstr[1] "интересных журнала" -msgstr[2] "интересных журналов" -msgstr[3] "интересные журналы" - -#: lang/json/BOOK_from_json.py -msgid "original copy of Housefly" -msgid_plural "original copies of Housefly" -msgstr[0] "оригинал «Домашней мухи»" -msgstr[1] "оригинала «Домашней мухи»" -msgstr[2] "оригиналов «Домашней мухи»" -msgstr[3] "оригиналы «Домашней мухи»" +msgid "children's book" +msgid_plural "children's books" +msgstr[0] "детская книжка" +msgstr[1] "детские книжки" +msgstr[2] "детских книжек" +msgstr[3] "детские книжки" -#. ~ Description for {'str': 'original copy of Housefly', 'str_pl': 'original -#. copies of Housefly'} +#. ~ Description for {'str': "children's book"} #: lang/json/BOOK_from_json.py msgid "" -"The only copy of Housefly in existence - a long book about three individuals" -" drawn together by fate in the early 1800s to save their English town of " -"Victoria from a mysterious threat. You never got to publish it, but reading" -" it lets you forget the horrors of the Cataclysm, if only for a moment." +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the dead walked" +" and the world moved on." msgstr "" -"Единственный существующий экземпляр «Домашней мухи» — длинной книги про трёх" -" людей, сведённых вместе судьбой в ранних 1800-х ради спасения родного " -"английского городка от неведомой угрозы. Вы так никогда и не опубликовали " -"её, но при чтении вы хотя бы на мгновение забываете про ужасы Катаклизма." +"Маленькая книжка для маленьких читателей. Колоритные персонажи мультфильмов " +"и увлекательные истории из прежнего мира, до того, как смерть начала своё " +"шествие." #: lang/json/BOOK_from_json.py -msgid "USMC M1014 technical manual" -msgid_plural "USMC M1014 technical manuals" -msgstr[0] "техническое руководство КМПС М1014" -msgstr[1] "технических руководства КМПС М1014" -msgstr[2] "технических руководств КМПС М1014" -msgstr[3] "технические руководства КМПС М1014" +msgid "book of fairy tales" +msgid_plural "books of fairy tales" +msgstr[0] "книга сказок" +msgstr[1] "книги сказок" +msgstr[2] "книг сказок" +msgstr[3] "книги сказок" -#. ~ Description for {'str': 'USMC M1014 technical manual'} +#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy +#. tales'} #: lang/json/BOOK_from_json.py msgid "" -"A pocket-sized book printed in 2000 by the United States Marine Corps for " -"official use. It describes the operation, repair, and cleaning of the " -"Benilli M1014 shotgun. Though specific to the M4, it can provide a wealth " -"of information to the trained eye." -msgstr "" -"Карманная книга, напечатанная в 2000 году Корпусом Морской Пехоты США для " -"официального применения. Описывает правила обращения, ремонта и чистки " -"дробовика Benilli M1014. Содержит множество полезной информации для опытного" -" читателя." +"An amusing collection of folklore featuring the usual cast of fairies, " +"goblins, and trolls." +msgstr "Забавная коллекция фольклора про фей, гоблинов и троллей." #: lang/json/BOOK_from_json.py -msgid "Black Powder to Berettas" -msgid_plural "copies of Black Powder to Berettas" +msgid "" +"This fairy tale is about a wolf who eats so much salted meat she becomes " +"trapped in the butcher's cellar." +msgstr "" +"Это сказка о волчице, съевшей столько засоленного мяса, что она застряла в " +"погребе мясника." + +#: lang/json/BOOK_from_json.py +msgid "" +"In this traditional story of beastly intrigue a clever fox convinces an " +"elderly lion to kill a derogatory wolf." +msgstr "" +"В этой традиционной сказке о звериных интригах хитрый лис убеждает " +"премудрого льва убить злого волка." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is an illustrated fairy tale book about a conversation between a mouse " +"and a cat." +msgstr "Это иллюстрированная детская книга о разговоре между мышью и котом." + +#: lang/json/BOOK_from_json.py +msgid "" +"This illustrated fairy tale relates how a city mouse did visit his cousin in" +" the country, and how each regarded the other's quality of life." +msgstr "" +"Сказка с иллюстрациями о городской мышке, приехавшей в гости к кузине в " +"деревню и о том, что они думают о жизни друг друга." + +#: lang/json/BOOK_from_json.py +msgid "A fable in which the jackal wins the day via clever foolishness." +msgstr "" +"Басня, в которой шакал сумел всех перехитрить, по умному притворившись " +"глупым." + +#: lang/json/BOOK_from_json.py +msgid "" +"A slave mistakenly wanders into a lion's den - thus begins a fable which " +"demonstrates mutual dependence regardless of size or status." +msgstr "" +"Басня о рабе, забредшем в логово льва - что приводит к морали, говорящей о " +"взаимозависимости вне зависимости от размера и статуса." + +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of stories featuring \"Goldilocks and The Three " +"Bears\" on the cover." +msgstr "" +"Занимательный сборник историй, включающий сказку «Златовласка и три " +"медведя»." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a well illustrated fairy tale about a war between the birds and the " +"beasts, with particulars on the wartime conduct and eventual fate of the " +"bat." +msgstr "" +"Это красочно проиллюстрированная сказка о войне между птицами и зверями с " +"акцентом на поведении в военное время и окончательной судьбе летучей мыши." + +#: lang/json/BOOK_from_json.py +msgid "" +"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " +"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" +" page." +msgstr "" +"Эта книга озаглавлена «Возмездие гремучей змеи» и является сборником мифов и" +" легенд Чероки. На титульной странице карандашом написано «285D»." + +#: lang/json/BOOK_from_json.py +msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" +msgstr "Местный вариант сказки «Джек и бобовый стебель»" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale book is entitled \"Little Red Cap\". It details a red-" +"cloaked child's various encounters with talking wolves." +msgstr "" +"Сказка «Красная шапочка. Она описывает похождения девочки и ее встречу с " +"говорящими волками." + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of ghost stories warning about the dangers of stealing from the" +" dead." +msgstr "" +"Сборник историй о призраках, предупреждающий об опасностях воровства у " +"мертвых." + +#: lang/json/BOOK_from_json.py +msgid "" +"An Irish fairy tale in which a Celtic poet marries a princess who has been " +"cursed with the head of a pig." +msgstr "" +"Ирландская народная сказка, в которой кельтский поэт женится на принцессе, " +"проклятой иметь голову свиньи." + +#: lang/json/BOOK_from_json.py +msgid "" +"A book of Italian fairy tales translated into English. The cover features " +"an orange fairy juggling a lemon, a lime, and a tangerine." +msgstr "" +"Книга итальянских сказок, переведенных на английский. На обложке оранжевая " +"фея жонглирует лимоном, лаймом и мандарином." + +#: lang/json/BOOK_from_json.py +msgid "A book of fables about people who change into birds." +msgstr "Книга басен о людях, превратившихся в птиц." + +#: lang/json/BOOK_from_json.py +msgid "" +"This compendium of amusing folk tales about the devil is titled \"Hell's " +"Kettle: Legends of the Devil.\"" +msgstr "" +"Этот сборник забавных народных сказок о дьяволе называется «Адский чайничек:" +" легенды о дьяволе»." + +#: lang/json/BOOK_from_json.py +msgid "" +"This charming book of Swedish fables is titled, \"The Glass Mountain and the" +" Princess.\"" +msgstr "" +"Очаровательная книга шведских сказок называется «Принцесса на Стеклянной " +"горе»." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of fairy tale stories warning against the consequences " +"of extreme greed." +msgstr "Сборник сказок, предупреждающих о последствиях крайней жадности." + +#: lang/json/BOOK_from_json.py +msgid "" +"This fable book is entitled, \"The Rabbit Herd.\" Inside are woodcut " +"illustrations of a peasant boy playing his flute for a mob of mischievous " +"hares." +msgstr "" +"Басня называется «Стадо кроликов». Внутри ксилография с изображением " +"крестьянского мальчика, играющего на флейте для группы озорных зайцев." + +#: lang/json/BOOK_from_json.py +msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" +msgstr "" +"Книга под названием «Вороватый котелок: народные сказки арабской культуры»." + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a book of legends collected by Traveller Johnny Cassidy in the " +"1960s." +msgstr "" +"Это книга легенд, собранная путешественником Джонни Кэссиди в 1960-х годах." + +#: lang/json/BOOK_from_json.py +msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" +msgstr "Книга братьев Гримм под названием «Неравные дети Евы»." + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of fables expands upon the legend of the Seven Sleepers of " +"Ephesus." +msgstr "Эта книга сказок основана на легенде о семи отроках Эфесских." + +#: lang/json/BOOK_from_json.py +msgid "" +"In this fairy tale a strong man frightens an ogre by squeezing water out of " +"a stone." +msgstr "В этой сказке силач пугает тролля, выдавив воду из камня." + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of rustic folk tales bears the title: \"How to Shout Down the " +"Devil.\"" +msgstr "" +"Эта книга деревенских народных сказок носит название: «Как перекричать " +"дьявола»." + +#: lang/json/BOOK_from_json.py +msgid "" +"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " +"fables about logical errors and foolish misjudgements of the Kadambawa men." +msgstr "" +"Название этой книги - «Деревенские народные сказки Цейлона». Она включает в " +"себя басни о логических ошибках и глупых заблуждениях людей Кадамбава." + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " +"Stories.\"" +msgstr "Книга народных сказок «Девушка с уродливым именем и другие истории»." + +#: lang/json/BOOK_from_json.py +msgid "" +"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " +"suitable for small children." +msgstr "" +"Сборник простеньких народных сказок, озаглавленный «Бегущий блинчик», " +"подходит для маленьких детей." + +#: lang/json/BOOK_from_json.py +msgid "The Adorkable Girl" +msgid_plural "The Adorkable Girls" +msgstr[0] "«Милая девочка»" +msgstr[1] "книги «Милая девочка»" +msgstr[2] "книг «Милая девочка»" +msgstr[3] "книги «Милая девочка»" + +#. ~ Description for The Adorkable Girl +#: lang/json/BOOK_from_json.py +msgid "" +"When a therapist's daughter transfers to a new school, she decides to change" +" her personality type. As her social life begins to blossom, can she " +"maintain a healthy boundary between her home life and her public persona?" +msgstr "" +"Когда дочь терапевта переходит в новую школу, она решает изменить свой тип " +"личности. Ее социальная жизнь начинает расцветать, сможет ли она " +"поддерживать здоровую границу между своей домашней жизнью и своим публичным " +"образом?" + +#: lang/json/BOOK_from_json.py +msgid "Becoming Jackson" +msgid_plural "Becoming Jacksons" +msgstr[0] "«Стать Джексоном»" +msgstr[1] "книги «Стать Джексоном»" +msgstr[2] "книг «Стать Джексоном»" +msgstr[3] "книги «Стать Джексоном»" + +#. ~ Description for Becoming Jackson +#: lang/json/BOOK_from_json.py +msgid "" +"When Jackson gains the mystical talent to alter his appearance on command, " +"how will he continue to recognize himself in his own mirror?" +msgstr "" +"Джексон получает мистическую способность - менять свою внешность по желанию." +" Сможет ли он узнать свое отражение в зеркале?" + +#: lang/json/BOOK_from_json.py +msgid "Nothing Burned" +msgid_plural "Nothing Burneds" +msgstr[0] "«Сгоревшее ничто»" +msgstr[1] "книги «Сгоревшее ничто»" +msgstr[2] "книг «Сгоревшее ничто»" +msgstr[3] "книги «Сгоревшее ничто»" + +#. ~ Description for Nothing Burned +#: lang/json/BOOK_from_json.py +msgid "" +"A teenage influencer becomes fast friends with someone who may or may not be" +" an actual demon." +msgstr "" +"Известный подросток быстро заводит дружбу с кем-то, кто может оказаться " +"самым настоящим демоном." + +#: lang/json/BOOK_from_json.py +msgid "High and Low" +msgid_plural "High and Lows" +msgstr[0] "«Взлет и падение»" +msgstr[1] "книги «Взлет и падение»" +msgstr[2] "книг «Взлет и падение»" +msgstr[3] "книги «Взлет и падение»" + +#. ~ Description for High and Low +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of adolescent fiction, a young gemini discovers that the " +"astrology section of his small town newspaper is eerily preminiscent. His " +"efforts to uncover the oracle reveal more than the stars could have " +"predicted." +msgstr "" +"В этом произведении юношеской беллетристики молодой близнец обнаруживает, " +"что астрологическая секция газеты в его маленьком городке пугающе точна. Его" +" усилия по поиску оракула раскрывают больше, чем могли предположить звезды." + +#: lang/json/BOOK_from_json.py +msgid "Fire When You See My Eyes" +msgid_plural "Fire When You See My Eyess" +msgstr[0] "«Огонь, когда ты смотришь мне в глаза»" +msgstr[1] "книги «Огонь, когда ты смотришь мне в глаза»" +msgstr[2] "книг «Огонь, когда ты смотришь мне в глаза»" +msgstr[3] "книги «Огонь, когда ты смотришь мне в глаза»" + +#. ~ Description for Fire When You See My Eyes +#: lang/json/BOOK_from_json.py +msgid "" +"In a cataclysmic future, advanced technology gives parents access to video " +"footage of every moment of their teenage children's lives." +msgstr "" +"В катастрофическом будущем продвинутые технологии позволяют родителям " +"увидеть каждый момент, что их дети видели своими глазами." + +#: lang/json/BOOK_from_json.py +msgid "Peanut Butter Bruised" +msgid_plural "Peanut Butter Bruiseds" +msgstr[0] "«Привкус арахисового масла»" +msgstr[1] "книги «Привкус арахисового масла»" +msgstr[2] "книг «Привкус арахисового масла»" +msgstr[3] "книги «Привкус арахисового масла»" + +#. ~ Description for Peanut Butter Bruised +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of young adult fiction, a woman raised on food stamps falls in " +"love with a young cook. More importantly, she falls in love with the idea " +"of become a professional chef." +msgstr "" +"Молодежная книга о девушке, выросшей, питаясь по талонам на еду. Она " +"влюбляется в молодого повара, но что важнее, влюбляется в идею самой стать " +"шеф-поваром." + +#: lang/json/BOOK_from_json.py +msgid "Ready When You Are" +msgid_plural "Ready When You Ares" +msgstr[0] "«По твоему сигналу»" +msgstr[1] "книги «По твоему сигналу»" +msgstr[2] "книг «По твоему сигналу»" +msgstr[3] "книги «По твоему сигналу»" + +#. ~ Description for Ready When You Are +#: lang/json/BOOK_from_json.py +msgid "" +"When three teenage girls ditch class to drive cross country together they " +"get a strong dose of life lessons on the road. This work of young adult " +"fiction explores how friendships evolve in early adulthood." +msgstr "" +"Когда три девочки-подростка решают бросить учебу и проехаться по стране. " +"жизнь преподает им несколько важных уроков. Эта повесть о взрослении " +"раскрывает вопрос развития дружбы во время достижения взросления." + +#: lang/json/BOOK_from_json.py +msgid "Study of a Boy" +msgid_plural "Study of a Boys" +msgstr[0] "«Этюд о юноше»" +msgstr[1] "книги «Этюд о юноше»" +msgstr[2] "книг «Этюд о юноше»" +msgstr[3] "книги «Этюд о юноше»" + +#. ~ Description for Study of a Boy +#: lang/json/BOOK_from_json.py +msgid "" +"A high school sophomore's personal journal is stolen and then leaked on " +"social media. When it goes viral he is forced simultaneously to contend " +"with both fame and betrayal." +msgstr "" +"Кто-то украл личный дневник школьного выпускника и распространил его по всей" +" школе. Теперь ему приходится справляться со своей известностью и " +"предательством." + +#: lang/json/BOOK_from_json.py +msgid "Summer Variables" +msgid_plural "Summer Variabless" +msgstr[0] "«Летние переменные»" +msgstr[1] "книги «Летние переменные»" +msgstr[2] "книг «Летние переменные»" +msgstr[3] "книги «Летние переменные»" + +#. ~ Description for Summer Variables +#: lang/json/BOOK_from_json.py +msgid "" +"In this book written primarily for young adults, a woman's modest summer " +"internship results in an incredible discovery that attracts the attention of" +" unsavory elements." +msgstr "" +"Книга для молодежи, рассказ о скромной летней интернатуре девушки, " +"совершившей невероятное открытие, привлекшее к ней внимание нежелательных " +"элементов." + +#: lang/json/BOOK_from_json.py +msgid "original copy of Housefly" +msgid_plural "original copies of Housefly" +msgstr[0] "оригинал «Домашней мухи»" +msgstr[1] "оригинала «Домашней мухи»" +msgstr[2] "оригиналов «Домашней мухи»" +msgstr[3] "оригиналы «Домашней мухи»" + +#. ~ Description for {'str': 'original copy of Housefly', 'str_pl': 'original +#. copies of Housefly'} +#: lang/json/BOOK_from_json.py +msgid "" +"The only copy of Housefly in existence - a long book about three individuals" +" drawn together by fate in the early 1800s to save their English town of " +"Victoria from a mysterious threat. You never got to publish it, but reading" +" it lets you forget the horrors of the Cataclysm, if only for a moment." +msgstr "" +"Единственный существующий экземпляр «Домашней мухи» — длинной книги про трёх" +" людей, сведённых вместе судьбой в ранних 1800-х ради спасения родного " +"английского городка от неведомой угрозы. Вы так никогда и не опубликовали " +"её, но при чтении вы хотя бы на мгновение забываете про ужасы Катаклизма." + +#: lang/json/BOOK_from_json.py +msgid "USMC M1014 technical manual" +msgid_plural "USMC M1014 technical manuals" +msgstr[0] "техническое руководство КМПС М1014" +msgstr[1] "технических руководства КМПС М1014" +msgstr[2] "технических руководств КМПС М1014" +msgstr[3] "технические руководства КМПС М1014" + +#. ~ Description for {'str': 'USMC M1014 technical manual'} +#: lang/json/BOOK_from_json.py +msgid "" +"A pocket-sized book printed in 2000 by the United States Marine Corps for " +"official use. It describes the operation, repair, and cleaning of the " +"Benilli M1014 shotgun. Though specific to the M4, it can provide a wealth " +"of information to the trained eye." +msgstr "" +"Карманная книга, напечатанная в 2000 году Корпусом Морской Пехоты США для " +"официального применения. Описывает правила обращения, ремонта и чистки " +"дробовика Benilli M1014. Содержит множество полезной информации для опытного" +" читателя." + +#: lang/json/BOOK_from_json.py +msgid "Black Powder to Berettas" +msgid_plural "copies of Black Powder to Berettas" msgstr[0] "«От чёрного пороха до Беретты»" -msgstr[1] "«От чёрного пороха до Беретты»" -msgstr[2] "«От чёрного пороха до Беретты»" -msgstr[3] "«От чёрного пороха до Беретты»" +msgstr[1] "книги «От чёрного пороха до Беретты»" +msgstr[2] "книг «От чёрного пороха до Беретты»" +msgstr[3] "книги «От чёрного пороха до Беретты»" #. ~ Description for {'str': 'Black Powder to Berettas', 'str_pl': 'copies of #. Black Powder to Berettas'} @@ -36507,9 +38200,9 @@ msgstr "" msgid "America's Rifle" msgid_plural "copies of America's Rifle" msgstr[0] "«Американская винтовка»" -msgstr[1] "«Американская винтовка»" -msgstr[2] "«Американская винтовка»" -msgstr[3] "«Американская винтовка»" +msgstr[1] "книги «Американская винтовка»" +msgstr[2] "книг «Американская винтовка»" +msgstr[3] "книги «Американская винтовка»" #. ~ Description for {'str': "America's Rifle", 'str_pl': "copies of America's #. Rifle"} @@ -36529,9 +38222,9 @@ msgstr "" msgid "Jane's Flamethrowers and Firestarters" msgid_plural "copies of Jane's Flamethrowers and Firestarters" msgstr[0] "«Огнемёты и зажигалки Джэйн»" -msgstr[1] "«Огнемёты и зажигалки Джэйн»" -msgstr[2] "«Огнемёты и зажигалки Джэйн»" -msgstr[3] "«Огнемёты и зажигалки Джэйн»" +msgstr[1] "книги «Огнемёты и зажигалки Джэйн»" +msgstr[2] "книг «Огнемёты и зажигалки Джэйн»" +msgstr[3] "книги «Огнемёты и зажигалки Джэйн»" #. ~ Description for {'str': "Jane's Flamethrowers and Firestarters", #. 'str_pl': "copies of Jane's Flamethrowers and Firestarters"} @@ -36583,8 +38276,8 @@ msgid "" msgstr "" "Текст о создании Вознесенных животных, который ссылается на историю о том, " "как разумные животные убивают своего создателя. В этом одни увидели " -"ошеломительный пример плохого вкуса, а другие считали явным проявлением " -"видизма,. В остальном это сухой текст о генетических модификациях." +"ошеломительный пример плохого вкуса, а другие сочли явным проявлением " +"видизма. В остальном это сухой текст о генетических модификациях." #: lang/json/BOOK_from_json.py msgid "Millyficent's Diary" @@ -36643,214 +38336,6 @@ msgstr "" " его практически бесполезным. Что за чертовщина эти ми-го? Разве триффиды не" " выдумка из старого фильма?" -#: lang/json/BOOK_from_json.py -msgid "Case #5846, Illegal Gun Modification" -msgid_plural "copies of Case #5846, Illegal Gun Modification" -msgstr[0] "копия «Дела #5846, Нелегальные оружейные модификации» " -msgstr[1] "копии «Дела #5846, Нелегальные оружейные модификации» " -msgstr[2] "копий «Дела #5846, Нелегальные оружейные модификации» " -msgstr[3] "копии «Дела #5846, Нелегальные оружейные модификации» " - -#. ~ Description for {'str': 'Case #5846, Illegal Gun Modification', 'str_pl': -#. 'copies of Case #5846, Illegal Gun Modification'} -#: lang/json/BOOK_from_json.py -msgid "" -"This file details illegal gun modifications. Maybe you could learn " -"something. At least you don't have to worry about the cops anymore." -msgstr "" -"Эта папка детально описывает нелегальные оружейные модификации. Возможно, вы" -" сможете чему-нибудь научиться. По крайней мере, вам уже не нужно " -"беспокоиться о полицейских." - -#: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "набор шахмат" -msgstr[1] "набора шахмат" -msgstr[2] "наборов шахмат" -msgstr[3] "наборы шахмат" - -#. ~ Description for chess set -#: lang/json/BOOK_from_json.py -msgid "" -"A wooden box containing all the equipment needed to play a game of chess." -msgstr "Деревянная коробка, содержащая всё необходимое для игры в шахматы." - -#: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "набор шашек" -msgstr[1] "набора шашек" -msgstr[2] "наборов шашек" -msgstr[3] "наборы шашек" - -#. ~ Description for checkers set -#: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." -msgstr "Деревянная коробка, содержащая набор круглых фишек для игры в шашки." - -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" -msgstr[0] "колода карт" -msgstr[1] "колоды карт" -msgstr[2] "колод карт" -msgstr[3] "колоды карт" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "Набор из 52 карт для игры в покер." - -#: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" -msgstr[0] "колода карт «Волшебство»" -msgstr[1] "колоды карт «Волшебство»" -msgstr[2] "колод карт «Волшебство»" -msgstr[3] "колоды карт «Волшебство»" - -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of -#. Sorcery cards'} -#: lang/json/BOOK_from_json.py -msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." -msgstr "" -"Набор карт, предназначенных для игры «Волшебство». На каждой карте забавно " -"изображен какой-нибудь монстр." - -#: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" -msgstr[0] "«Угадайка» " -msgstr[1] "копии «Угадайки»" -msgstr[2] "копий «Угадайки» " -msgstr[3] "копии «Угадайки»" - -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where one draws an image, and the others attempt to guess what it is." -msgstr "" -"Игра, в которой один игрок рисует, а остальные пытаются угадать, что " -"изображено." - -#: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" -msgstr[0] "«Монополия»" -msgstr[1] "наборы «Монополии» " -msgstr[2] "наборов «Монополии» " -msgstr[3] "наборы «Монополии» " - -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players traverse around the board buying property and swindling" -" their friends." -msgstr "" -"Игра, в которой игроки перемещаются по игральному полю, покупая недвижимость" -" и пытаясь перехитрить своих друзей." - -#: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" -msgstr[0] "набор игры «Блобы и Бандиты»" -msgstr[1] "наборы игры «Блобы и Бандиты»" -msgstr[2] "наборов игры «Блобы и Бандиты»" -msgstr[3] "наборы игры «Блобы и Бандиты»" - -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and -#. Bandits'} -#: lang/json/BOOK_from_json.py -msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive" -" the apocalypse while surviving the apocalypse." -msgstr "" -"Ролевая игра в сеттинге постапокалипсиса, так что вы можете разыграть " -"выживание в апокалипсисе, пока вы выживаете в апокалипсисе." - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" -msgstr[0] "набор «Батлхаммер»" -msgstr[1] "наборы «Батлхаммер»" -msgstr[2] "наборов «Батлхаммер»" -msgstr[3] "наборы «Батлхаммер»" - -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of fantasy creatures." -msgstr "" -"Стратегическая игра с набором миниатюрных фигурок фэнтезийных существ." - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" -msgstr[0] "набор «Батлхаммер 20000»" -msgstr[1] "набора «Батлхаммер 20000»" -msgstr[2] "наборов «Батлхаммер 20000»" -msgstr[3] "наборы «Батлхаммер 20000»" - -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of -#. Battlehammer 20k'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." -msgstr "" -"Стратегическая игра с набором миниатюрных фигурок космических пришельцев и " -"гротескных морских пехотинцев." - -#: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" -msgstr[0] "набор игры «Поселенцы Ранчо»" -msgstr[1] "наборы игры «Поселенцы Ранчо»" -msgstr[2] "наборов игры «Поселенцы Ранчо»" -msgstr[3] "наборы игры «Поселенцы Ранчо»" - -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of -#. Settlers of the Ranch'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game where players build settlements and trade for supplies." -msgstr "" -"Стратегическая игра, в которой игроки строят поселения и торгуют припасами." - -#: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" -msgstr[0] "набор игры «Морской бой»" -msgstr[1] "наборы игры «Морской бой»" -msgstr[2] "наборов игры «Морской бой»" -msgstr[3] "наборы игры «Морской бой»" - -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." -msgstr "" -"Игра, в которой игроки пытаются угадать, где противник разместил свои " -"корабли на игровой доске." - -#: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" -msgstr[0] "«Загадочное убийство»" -msgstr[1] "набора для игры «Загадочное убийство»" -msgstr[2] "наборов для игры «Загадочное убийство»" -msgstr[3] "наборы для игры «Загадочное убийство»" - -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder -#. Mystery'} -#: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." -msgstr "Игра, в которой игроки пытаются выяснить, кто убил дворецкого." - #: lang/json/BOOK_from_json.py msgid "Black Dragons: Swamp Ruins" msgid_plural "copies of Black Dragons: Swamp Ruins" @@ -36910,10 +38395,10 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Magitek Illustrated" msgid_plural "copies of Magitek Illustrated" -msgstr[0] "Магитек с картинками" -msgstr[1] "Магитека с картинками" -msgstr[2] "Магитека с картинками" -msgstr[3] "Магитек с картинками" +msgstr[0] "Магитек с иллюстрациями" +msgstr[1] "копии Магитека с картинками" +msgstr[2] "копий Магитека с картинками" +msgstr[3] "копии Магитека с картинками" #. ~ Description for {'str': 'Magitek Illustrated', 'str_pl': 'copies of #. Magitek Illustrated'} @@ -36926,8 +38411,8 @@ msgid "" msgstr "" "Книга в мягкой обложке, описывающее искусство сочетания современных " "технологий и магии. На обороте приписка: «Каннит Индастриз не несет " -"ответственности за неисправности или несчастные случаи, причинённые " -"информацией из данной книги»." +"ответственности за неисправности или несчастные случаи, вызванные прочтением" +" данной книги»." #: lang/json/BOOK_from_json.py msgid "The Weapons of Asgard and Beyond" @@ -37038,98 +38523,43 @@ msgstr "" " — Ф.»." #: lang/json/BOOK_from_json.py -msgid "The Weapons of Asgard" -msgid_plural "copies of The Weapons of Asgard" -msgstr[0] "«Оружие Асгарда»" -msgstr[1] "книги «Оружие Асгарда»" -msgstr[2] "книг «Оружие Асгарда»" -msgstr[3] "книги «Оружие Асгарда»" - -#. ~ Description for {'str': 'The Weapons of Asgard', 'str_pl': 'copies of The -#. Weapons of Asgard'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is about creating replicas of the weapons used by the Norse Gods, " -"such as the well-known Mjölnir. It is well illustrated with lots of " -"pictures." -msgstr "" -"В этой книге описывается создание реплик оружия, которое использовали " -"древние скандинавские боги, такиого, как хорошо известный Мьёлнир. Книга " -"наполнена качественными иллюстрациями." - -#: lang/json/BOOK_from_json.py -msgid "Hacking Robots for Fun & Profit" -msgid_plural "copies of Hacking Robots for Fun & Profit" -msgstr[0] "«Взлом роботов для веселья и прибыли»" -msgstr[1] "книги «Взлом роботов для веселья и прибыли»" -msgstr[2] "книг «Взлом роботов для веселья и прибыли»" -msgstr[3] "книги «Взлом роботов для веселья и прибыли»" - -#. ~ Description for {'str': 'Hacking Robots for Fun & Profit', 'str_pl': -#. 'copies of Hacking Robots for Fun & Profit'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book on illegally obtaining, reprogramming, and modifying robots. It has " -"lots of helpful step-by-step guides and example blueprints." -msgstr "" -"Книга о незаконном получении, перепрограммировании и модификации роботов. В " -"ней есть много полезных пошаговых руководств и примеров чертежей." - -#: lang/json/BOOK_from_json.py -msgid "Popular Robotics" -msgid_plural "issues of Popular Robotics" -msgstr[0] "«Популярная робототехника»" -msgstr[1] "журнала «Популярная робототехника»" -msgstr[2] "журналов «Популярная робототехника»" -msgstr[3] "журналы «Популярная робототехника»" - -#. ~ Description for {'str': 'Popular Robotics', 'str_pl': 'issues of Popular -#. Robotics'} -#: lang/json/BOOK_from_json.py -msgid "A magazine about building and altering your own robots." -msgstr "Журнал о создании и изменении собственных роботов." - -#: lang/json/BOOK_from_json.py -msgid "Artillery and Field Gunnery" -msgid_plural "copies of Artillery and Field Gunnery" -msgstr[0] "«Артиллерийское дело и полевая артиллерия»" -msgstr[1] "«Артиллерийское дело и полевая артиллерия»" -msgstr[2] "«Артиллерийское дело и полевая артиллерия»" -msgstr[3] "«Артиллерийское дело и полевая артиллерия»" - -#. ~ Description for {'str': 'Artillery and Field Gunnery', 'str_pl': 'copies -#. of Artillery and Field Gunnery'} +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" +msgstr[0] "«Вначале… была командная строка»" +msgstr[1] "книги «Вначале… была командная строка»" +msgstr[2] "книг «Вначале… была командная строка»" +msgstr[3] "книги «Вначале… была командная строка»" + +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', +#. 'str_pl': 'copies of In the Beginning… Was the Command Line'} #: lang/json/BOOK_from_json.py msgid "" -"A textbook on the history of modern artillery, with a number of " -"illustrations and excerpts from various field manuals. A competent " -"handloader or mechanic might find additional uses for the more technical " -"parts of the text." +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." msgstr "" -"Учебник по истории современной артиллерии с кучей иллюстраций и отрывками из" -" различных руководств по обслуживанию в полевых условиях. Компетентный " -"механик или тот, кто сам снаряжает патроны, может найти для себя полезное в " -"технических разделах текста." +"Юмористическое эссе Нила Стивенсона, написанное в 1999 году, сравнивающее " +"компьютерные операционные системы с автодилерами." #: lang/json/BOOK_from_json.py -msgid "Principles of Postmortem Mind Control" -msgid_plural "copies of Principles of Postmortem Mind Control" -msgstr[0] "«Принципы посмертного контроля разума»" -msgstr[1] "книги «Принципы посмертного контроля разума»" -msgstr[2] "книг «Принципы посмертного контроля разума»" -msgstr[3] "книги «Принципы посмертного контроля разума»" - -#. ~ Description for {'str': 'Principles of Postmortem Mind Control', -#. 'str_pl': 'copies of Principles of Postmortem Mind Control'} +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" +msgstr[0] "«Принципы проектирования компиляторов»" +msgstr[1] "книги «Принципы проектирования компиляторов»" +msgstr[2] "книг «Принципы проектирования компиляторов»" +msgstr[3] "книги «Принципы проектирования компиляторов»" + +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': +#. 'copies of Principles of Compiler Design'} #: lang/json/BOOK_from_json.py msgid "" -"A thick book containing research notes of a mad scientist. It describes " -"various methods of reanimating and controlling the dead. There's a lot of " -"gory details and technical language mixed in, so it's not easy to read." +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." msgstr "" -"Толстая книга, содержащая материалы исследований безумного учёного. В ней " -"описываются различные методы оживления и управления мёртвыми. Её нелегко " -"читать из-за множества кровавых подробностей и технического языка." +"Классическая книга по программированию 1977 года за авторством Альфреда Ахо " +"и Джеффри Ульмана. На обложке рыцарь, вздымающий парсер LALR, метя в " +"метафорического дракона Сложностей Проектирования Компиляторов." #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -37351,8 +38781,8 @@ msgid "" "Water collected during an acid rainstorm. Don't drink it. Boiling it " "concentrates the acid." msgstr "" -"Вода, собранная во время кислотного ливня. Не пейте это. Кипячение " -"концентрирует кислоту." +"Вода, собранная во время кислотного ливня. Не пейте это. Кипячение повысит " +"концентрацию кислоты." #: lang/json/COMESTIBLE_from_json.py msgid "weak acid water" @@ -37452,9 +38882,9 @@ msgstr "" msgid "ether" msgid_plural "ether" msgstr[0] "эфир" -msgstr[1] "эфира" -msgstr[2] "эфиров" -msgstr[3] "эфиры" +msgstr[1] "эфир" +msgstr[2] "эфир" +msgstr[3] "эфир" #. ~ Description for {'str_sp': 'ether'} #: lang/json/COMESTIBLE_from_json.py @@ -37591,9 +39021,9 @@ msgstr "" msgid "acrylamide" msgid_plural "acrylamide" msgstr[0] "акриламид" -msgstr[1] "акриламида" -msgstr[2] "акриламида" -msgstr[3] "акриламида" +msgstr[1] "акриламид" +msgstr[2] "акриламид" +msgstr[3] "акриламид" #. ~ Description for {'str_sp': 'acrylamide'} #: lang/json/COMESTIBLE_from_json.py @@ -38190,7 +39620,7 @@ msgid "" "A lager beer imported from Europe. Best served cold, in a glass - but " "you're not that lucky." msgstr "" -"Лагер, вид пива, импортируемый из Европы. Лучше всего подавать в стакане и " +"Лагер, вид пива, импортируемый из Европы. Обычно подают в стакане и " "холодным, но вам не так везёт." #: lang/json/COMESTIBLE_from_json.py @@ -38207,7 +39637,8 @@ msgid "" "A tasty craft beer. Best served cold, in a glass - but you're not that " "lucky." msgstr "" -"Вкусное пиво. Лучше подавать холодным и в стакане, но вам не так везёт." +"Вкусное крафтовое пиво. Обычно подают в стакане и холодным, но вам не так " +"везёт." #: lang/json/COMESTIBLE_from_json.py msgid "India pale ale" @@ -38223,7 +39654,7 @@ msgid "" "A very flavorful microbrewed beer. Best served cold, in a glass - but " "you're not that lucky." msgstr "" -"Очень ароматное пиво. Лучше подавать холодным и в стакане, но вам не так " +"Очень ароматное пиво. Обычно подают в стакане и холодным, но вам не так " "везёт." #: lang/json/COMESTIBLE_from_json.py @@ -38356,9 +39787,9 @@ msgstr "Очень дешевое смешанное виски." msgid "Canadian whiskey" msgid_plural "Canadian whiskey" msgstr[0] "Канадский виски" -msgstr[1] "Канадского виски" -msgstr[2] "Канадского виски" -msgstr[3] "Канадского виски" +msgstr[1] "Канадский виски" +msgstr[2] "Канадский виски" +msgstr[3] "Канадский виски" #. ~ Description for {'str_sp': 'Canadian whiskey'} #: lang/json/COMESTIBLE_from_json.py @@ -38402,9 +39833,9 @@ msgstr "" msgid "Madeira wine" msgid_plural "Madeira wine" msgstr[0] "вино «Мадейра»" -msgstr[1] "вина «Мадейра»" -msgstr[2] "вина «Мадейра»" -msgstr[3] "вина «Мадейра»" +msgstr[1] "вино «Мадейра»" +msgstr[2] "вино «Мадейра»" +msgstr[3] "вино «Мадейра»" #. ~ Description for {'str_sp': 'Madeira wine'} #: lang/json/COMESTIBLE_from_json.py @@ -38543,6 +39974,19 @@ msgid "" msgstr "" "Популярный коктейль из джина и сухого вермута родом из времён Сухого закона." +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "тыквенный маффин" +msgstr[1] "тыквенных маффина" +msgstr[2] "тыквенных маффинов" +msgstr[3] "тыквенные маффины" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "Печёные кексики с тыквой. Идеально для осенних праздников." + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -38574,8 +40018,8 @@ msgid "" "Healthy and filling, with a sharper taste and thicker crust than yeast-only " "bread." msgstr "" -"Сытный и полезный хлеб с толстой корочкой. Острее на вкус по сравнению с " -"дрожжевым хлебом." +"Сытный и полезный хлеб с толстой корочкой. У него более выраженный вкус по " +"сравнению с дрожжевым хлебом." #: lang/json/COMESTIBLE_from_json.py msgid "flatbread" @@ -38634,8 +40078,8 @@ msgid "corn tortilla" msgid_plural "corn tortillas" msgstr[0] "кукурузная тортилья" msgstr[1] "кукурузные тортильи" -msgstr[2] "кукурузной тортильи" -msgstr[3] "кукурузная тортилья" +msgstr[2] "кукурузной тортилий" +msgstr[3] "кукурузные тортильи" #. ~ Description for corn tortilla #: lang/json/COMESTIBLE_from_json.py @@ -38663,9 +40107,9 @@ msgstr "" msgid "biscuit" msgid_plural "biscuits" msgstr[0] "бисквит" -msgstr[1] "бисквит" -msgstr[2] "бисквит" -msgstr[3] "бисквит" +msgstr[1] "бисквита" +msgstr[2] "бисквитов" +msgstr[3] "бисквиты" #. ~ Description for {'str': 'biscuit'} #: lang/json/COMESTIBLE_from_json.py @@ -38790,10 +40234,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vodka wash" msgid_plural "vodka washes" -msgstr[0] "брага из водки" -msgstr[1] "браги из водки" -msgstr[2] "браг из водки" -msgstr[3] "брага из водки" +msgstr[0] "брага для водки" +msgstr[1] "брага для водки" +msgstr[2] "брага для водки" +msgstr[3] "брага для водки" #. ~ Description for {'str': 'vodka wash', 'str_pl': 'vodka washes'} #: lang/json/COMESTIBLE_from_json.py @@ -38948,10 +40392,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "moonshine wash" msgid_plural "moonshine washes" -msgstr[0] "брага из самогона" -msgstr[1] "браги из самогона" -msgstr[2] "браг из самогона" -msgstr[3] "брага из самогона" +msgstr[0] "брага для самогона" +msgstr[1] "браги для самогона" +msgstr[2] "браги для самогона" +msgstr[3] "брага для самогона" #. ~ Description for {'str': 'moonshine wash', 'str_pl': 'moonshine washes'} #: lang/json/COMESTIBLE_from_json.py @@ -39052,6 +40496,7 @@ msgstr[2] "больших человеческих желудков" msgstr[3] "большие человеческие желудки" #. ~ Description for large human stomach +#. ~ Description for large demihuman stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "Желудок большого человекоподобного существа. Он на удивление крепкий." @@ -39059,16 +40504,17 @@ msgstr "Желудок большого человекоподобного су #: lang/json/COMESTIBLE_from_json.py msgid "chunk of human fat" msgid_plural "chunks of human fat" -msgstr[0] "кусок человечьего сала" -msgstr[1] "куска человечьего сала" -msgstr[2] "кусков человечьего сала" -msgstr[3] "куски человечьего сала" +msgstr[0] "кусок человеческого жира" +msgstr[1] "куска человеческого жира" +msgstr[2] "кусков человеческого жира" +msgstr[3] "куски человеческого жира" #. ~ Description for {'str': 'chunk of human fat', 'str_pl': 'chunks of human #. fat'} +#. ~ Description for chunk of demihuman fat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly harvested from a human body." -msgstr "Свежий кусок сала, срезанный с человека." +msgstr "Свежий кусок жира, срезанный с человека." #: lang/json/COMESTIBLE_from_json.py msgid "human tallow" @@ -39085,9 +40531,9 @@ msgid "" "edible for a very long time, and can be used as an ingredient in many foods " "and projects." msgstr "" -"Гладкий белый кусок очищенного и вытопленного человечьего сала. Он остаётся " -"съедобным очень долгое время, а также его можно использовать в различных " -"рецептах." +"Гладкий белый кусок очищенного и вытопленного человеческого сала. Он " +"остаётся съедобным очень долгое время, а также его можно использовать в " +"различных рецептах." #: lang/json/COMESTIBLE_from_json.py msgid "human lard" @@ -39140,7 +40586,7 @@ msgid_plural "chunks of meat" msgstr[0] "кусок мяса" msgstr[1] "куска мяса" msgstr[2] "кусков мяса" -msgstr[3] "кусок мяса" +msgstr[3] "куски мяса" #. ~ Description for {'str': 'chunk of meat', 'str_pl': 'chunks of meat'} #: lang/json/COMESTIBLE_from_json.py @@ -39161,7 +40607,7 @@ msgstr[3] "мясные обрезки" msgid "" "This is a tiny scrap of edible meat. It's not much, but it'll do in a " "pinch." -msgstr "Немного сьедобного мяса. Не то чтобы очень, но на крайняк сгодится." +msgstr "Немного съедобного мяса. Немного, но на крайний случай сгодится." #: lang/json/COMESTIBLE_from_json.py msgid "chunk of mutant meat" @@ -39204,10 +40650,10 @@ msgid "" "muscle itself. Still, seems digestible at least, if you cook it and remove " "the worst parts." msgstr "" -"Крошечные кусочки мяса мутировавшего животного. Они пахнут несколько странно" -" и в них попадаются волосы и кусочки костей, которые выглядят так, словно " -"они выросли внутри самой мышцы. Тем не менее, они кажутся съедобными, если " -"их приготовить и удалить самые мерзкие части." +"Крошечные кусочки мяса мутировавшего животного. Они пахнут несколько " +"странно, и в них попадаются волосы и кусочки костей, которые выглядят так, " +"словно они выросли внутри самой мышцы. Тем не менее, они кажутся съедобными," +" если их приготовить и удалить самые мерзкие части." #: lang/json/COMESTIBLE_from_json.py msgid "mutant humanoid meat" @@ -39244,8 +40690,8 @@ msgid "" "Cooked meat from a heavily mutated humanoid. Now that the worst bits have " "been picked out, it's probably digestible, if not very appetizing." msgstr "" -"Приготовленное мясо сильно мутировавшего гуманоида. Теперь, когда худшие " -"части удалены, это, вероятно, съедобно, но не очень аппетитно." +"Приготовленное мясо сильно мутировавшего гуманоида. Теперь, когда самые " +"мерзкие части удалены, это, вероятно, съедобно, но не очень аппетитно." #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -39253,7 +40699,7 @@ msgid_plural "butchery refuse" msgstr[0] "отход от разделки" msgstr[1] "отхода от разделки" msgstr[2] "отходов от разделки" -msgstr[3] "отходов от разделки" +msgstr[3] "отходы от разделки" #. ~ Description for {'str_sp': 'butchery refuse'} #: lang/json/COMESTIBLE_from_json.py @@ -39405,7 +40851,7 @@ msgstr[3] "желудки" #. ~ Description for stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a woodland creature. It is surprisingly durable." -msgstr "Желудок лесного животного. Он на удивление крепкий." +msgstr "Желудок дикого животного. Он на удивление крепкий." #: lang/json/COMESTIBLE_from_json.py msgid "large stomach" @@ -39418,7 +40864,7 @@ msgstr[3] "большие желудки" #. ~ Description for large stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large woodland creature. It is surprisingly durable." -msgstr "Желудок большого лесного животного. Он на удивление крепкий." +msgstr "Желудок большого дикого животного. Он на удивление крепкий." #: lang/json/COMESTIBLE_from_json.py msgid "meat jerky" @@ -39438,15 +40884,25 @@ msgstr[1] "вяленой человечины" msgstr[2] "вяленой человечины" msgstr[3] "вяленая человечина" +#. ~ Conditional name for {'str_sp': 'meat jerky'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal jerky" +msgid_plural "talking animal jerky" +msgstr[0] "болтливое вяленое мясо" +msgstr[1] "болтливое вяленое мясо" +msgstr[2] "болтливое вяленое мясо" +msgstr[3] "болтливое вяленое мясо" + #. ~ Conditional name for {'str_sp': 'meat jerky'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py msgid "monster jerky" msgid_plural "monster jerky" msgstr[0] "кусок вяленого мясо монстра" -msgstr[1] "кусков вяленого мясо монстра" +msgstr[1] "куска вяленого мясо монстра" msgstr[2] "кусков вяленого мясо монстра" -msgstr[3] "кусков вяленого мясо монстра" +msgstr[3] "куски вяленого мясо монстра" #. ~ Description for {'str_sp': 'meat jerky'} #: lang/json/COMESTIBLE_from_json.py @@ -39489,6 +40945,15 @@ msgstr[1] "копчёных лоха" msgstr[2] "копчёных лохов" msgstr[3] "копчёные лохи" +#. ~ Conditional name for smoked meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked Narnian" +msgid_plural "smoked Narnian" +msgstr[0] "копченое мясо получеловека" +msgstr[1] "копченое мясо получеловека" +msgstr[2] "копченое мясо получеловека" +msgstr[3] "копченое мясо получеловека" + #. ~ Conditional name for smoked meat when COMPONENT_ID matches mutant #. ~ Conditional name for canned meat when COMPONENT_ID matches mutant #. ~ Conditional name for salted meat slice when COMPONENT_ID matches mutant @@ -39499,10 +40964,10 @@ msgstr[3] "копчёные лохи" #, python-format msgid "%s, mutant" msgid_plural "%s, mutant" -msgstr[0] "%s, мутантное" -msgstr[1] "%s, мутантных" -msgstr[2] "%s, мутантного" -msgstr[3] "%s, мутантное" +msgstr[0] "%s мутанта" +msgstr[1] "%s мутанта" +msgstr[2] "%s мутанта" +msgstr[3] "%s мутанта" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py @@ -39536,7 +41001,7 @@ msgid_plural "pieces of raw lung" msgstr[0] "кусок сырого лёгкого" msgstr[1] "куска сырого лёгкого" msgstr[2] "кусков сырого лёгкого" -msgstr[3] "кусок сырого лёгкого" +msgstr[3] "куски сырого лёгкого" #. ~ Description for {'str': 'piece of raw lung', 'str_pl': 'pieces of raw #. lung'} @@ -39556,7 +41021,7 @@ msgid_plural "cooked pieces of lung" msgstr[0] "кусок приготовленного лёгкого" msgstr[1] "куска приготовленного лёгкого" msgstr[2] "кусков приготовленного лёгкого" -msgstr[3] "кусок приготовленного лёгкого" +msgstr[3] "куски приготовленного лёгкого" #. ~ Description for {'str': 'cooked piece of lung', 'str_pl': 'cooked pieces #. of lung'} @@ -39613,7 +41078,7 @@ msgstr "" msgid "raw brains" msgid_plural "raw brains" msgstr[0] "сырые мозги" -msgstr[1] "сырых мозга" +msgstr[1] "сырых мозгов" msgstr[2] "сырых мозгов" msgstr[3] "сырые мозги" @@ -39626,7 +41091,7 @@ msgstr "Мозг животного. Вы бы не хотели есть это msgid "cooked brains" msgid_plural "cooked brains" msgstr[0] "приготовленные мозги" -msgstr[1] "приготовленных мозга" +msgstr[1] "приготовленных мозгов" msgstr[2] "приготовленных мозгов" msgstr[3] "приготовленные мозги" @@ -39723,7 +41188,7 @@ msgid_plural "chunks of fat" msgstr[0] "кусок жира" msgstr[1] "куска жира" msgstr[2] "кусков жира" -msgstr[3] "кусок жира" +msgstr[3] "куски жира" #. ~ Description for {'str': 'chunk of fat', 'str_pl': 'chunks of fat'} #: lang/json/COMESTIBLE_from_json.py @@ -39774,10 +41239,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chunk of mutant fat" msgid_plural "chunks of mutant fat" -msgstr[0] "кусок мутантного сала" -msgstr[1] "куска мутантного сала" -msgstr[2] "кусков мутантного сала" -msgstr[3] "куски мутантного сала" +msgstr[0] "кусок жира мутанта" +msgstr[1] "куска жира мутанта" +msgstr[2] "кусков жира мутанта" +msgstr[3] "куски жира мутанта" #. ~ Description for {'str': 'chunk of mutant fat', 'str_pl': 'chunks of #. mutant fat'} @@ -39886,7 +41351,7 @@ msgid_plural "chunks of tainted meat" msgstr[0] "кусок заражённого мяса" msgstr[1] "куска заражённого мяса" msgstr[2] "кусков заражённого мяса" -msgstr[3] "кусок заражённого мяса" +msgstr[3] "куски заражённого мяса" #. ~ Description for {'str': 'chunk of tainted meat', 'str_pl': 'chunks of #. tainted meat'} @@ -40070,6 +41535,23 @@ msgstr "" "Аккуратно сложенная сыромятная кожа, снятая с человека. Её можно высушить " "для хранения и дубления, а можно и съесть, если всё совсем плохо." +#: lang/json/COMESTIBLE_from_json.py +msgid "raw demihuman skin" +msgid_plural "raw demihuman skins" +msgstr[0] "сырая кожа получеловека" +msgstr[1] "сырые кожи получеловека" +msgstr[2] "сырых кож получеловека" +msgstr[3] "сырые кожи получеловека" + +#. ~ Description for raw demihuman skin +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A carefully folded raw skin harvested from a demihuman. You can cure it for" +" storage and tanning, or eat it if you're desperate enough." +msgstr "" +"Аккуратно сложенная сыромятная кожа, снятая с получеловека. Её можно " +"высушить для хранения и дубления, а можно и съесть, если всё совсем плохо." + #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" msgid_plural "raw pelts" @@ -40140,8 +41622,8 @@ msgid "" "A thick mass of flesh superficially resembling a mammalian heart, covered in" " dimpled grooves and the size of your fist." msgstr "" -"Плотная масса плоти, смутно напоминающая сердце млекопитающего размером с " -"кулак, покрытая ямками и бороздками." +"Плотная мясистая масса размером с кулак, покрытая ямками и бороздками, " +"смутно напоминающая сердце млекопитающего." #: lang/json/COMESTIBLE_from_json.py msgid "putrid heart" @@ -40160,11 +41642,11 @@ msgid "" "hands. After everything you've seen lately, you can't help but remember old" " sayings about eating the hearts of your enemies…" msgstr "" -"Плотная, огромная масса плоти, внешне напоминающая сердце млекопитающего, " -"покрытая рубчатыми каналами, размером с вашу голову. Оно по-прежнему " -"наполнено, э-э, всем, что заменяет кровь у бармаглота, на вес — тяжёлое. " -"После всего, что вы видели в последнее время, вы не можете не вспомнить " -"старые изречения о том, как есть сердца своих врагов…" +"Плотная мясистая масса размером с вашу голову, внешне напоминающая сердце " +"млекопитающего, покрытая рубчатыми каналами. Оно по-прежнему наполнено, э-э," +" всем, что заменяет кровь у бармаглота, на вес — тяжёлое. После всего, что " +"вы видели в последнее время, вы не можете не вспомнить старые изречения о " +"том, как есть сердца своих врагов…" #: lang/json/COMESTIBLE_from_json.py msgid "desiccated putrid heart" @@ -40215,7 +41697,7 @@ msgstr[3] "цветки пиявочника" #. ~ Use action activation_message for leech flower. #: lang/json/COMESTIBLE_from_json.py msgid "Even a close smell of this alien flower feels deeply intoxicating." -msgstr "Даже запах инопланетного цветка вблизи опьяняет." +msgstr "Даже запах этого инопланетного цветка вблизи опьяняет." #. ~ Description for leech flower #: lang/json/COMESTIBLE_from_json.py @@ -40229,7 +41711,7 @@ msgstr "" "Инопланетную красоту этого цветка сводит на нет его удивительное сходство с " "плотью. То, что вдали кажется лепестками, вблизи оказывается слоистыми " "мембранами пронизанной венами прозрачной плоти, окрашенной синим " -"переливающимся ихором. Даже если он и ядовит, у него приятный целебный " +"переливающимся ихором. Даже если он и ядовит, у него приятный лекарственный " "аромат." #: lang/json/COMESTIBLE_from_json.py @@ -40250,6 +41732,317 @@ msgstr "" "Сухое и грубое подобие коры, собранное с инопланетного растения. Оно слегка " "прозрачно, и на свет можно различить проходящие через него синие вены." +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman stomach" +msgid_plural "demihuman stomachs" +msgstr[0] "желудок получеловека" +msgstr[1] "желудка получеловека" +msgstr[2] "желудков получеловека" +msgstr[3] "желудки получеловека" + +#. ~ Description for demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "The stomach of an intelligent demihuman. It is surprisingly durable." +msgstr "Желудок получеловека. Он на удивление крепкий." + +#: lang/json/COMESTIBLE_from_json.py +msgid "large demihuman stomach" +msgid_plural "large demihuman stomachs" +msgstr[0] "большой желудок получеловека" +msgstr[1] "больших желудка получеловека" +msgstr[2] "больших желудков получеловека" +msgstr[3] "большие желудки получеловека" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chunk of demihuman fat" +msgid_plural "chunk of demihuman fats" +msgstr[0] "кусок получеловечьего жира" +msgstr[1] "куска получеловечьего жира" +msgstr[2] "кусков получеловечьего жира" +msgstr[3] "куски получеловечьего жира" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman tallow" +msgid_plural "demihuman tallows" +msgstr[0] "топлёный жир получеловека" +msgstr[1] "топлёный жир получеловека" +msgstr[2] "топлёный жир получеловека" +msgstr[3] "топлёный жир получеловека" + +#. ~ Description for demihuman tallow +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of cleaned and rendered demihuman fat. It will remain " +"edible for a very long time, and can be used as an ingredient in many foods " +"and projects." +msgstr "" +"Гладкий белый кусок очищенного и вытопленного получеловечьего сала. Он " +"остаётся съедобным очень долгое время, а также его можно использовать в " +"различных рецептах." + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman lard" +msgid_plural "demihuman lards" +msgstr[0] "лярд получеловека" +msgstr[1] "лярд получеловека" +msgstr[2] "лярд получеловека" +msgstr[3] "лярд получеловека" + +#. ~ Description for demihuman lard +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of dry-rendered demihuman fat. It will remain edible " +"for a very long time, and can be used as an ingredient in many foods and " +"projects." +msgstr "" +"Гладкий белый кусок получеловечьего сала сухой вытопки. Он остаётся " +"съедобным очень долгое время, а также его можно использовать в различных " +"рецептах." + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman flesh" +msgid_plural "demihuman fleshs" +msgstr[0] "плоть получеловека" +msgstr[1] "плоть получеловека" +msgstr[2] "плоть получеловека" +msgstr[3] "плоть получеловека" + +#. ~ Description for demihuman flesh +#: lang/json/COMESTIBLE_from_json.py +msgid "Freshly butchered from a demihuman body." +msgstr "Свежий кусок плоти, вырезанной из тела получеловека." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked mongrel" +msgid_plural "cooked mongrels" +msgstr[0] "приготовленная полукровка" +msgstr[1] "приготовленные полукровки" +msgstr[2] "приготовленных полукровок" +msgstr[3] "приготовленные полукровки" + +#. ~ Description for cooked mongrel +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A freshly cooked slice of something close to being a real person. Tastes " +"like long pig." +msgstr "" +"Свежеприготовленный кусочек кого-то похожего на человека. Отдает свинством." + +#: lang/json/COMESTIBLE_from_json.py +msgid "boiled demihuman stomach" +msgid_plural "boiled demihuman stomachs" +msgstr[0] "варёный желудок получеловека" +msgstr[1] "варёных желудка получеловека" +msgstr[2] "варёных желудков получеловека" +msgstr[3] "варёные желудки получеловека" + +#. ~ Description for boiled demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" +"Варёный желудок получеловека, ничего больше. Выглядит как угодно, но только " +"не аппетитно." + +#. ~ Description for {'str': 'boiled demihuman stomach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A small boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" +"Маленький варёный желудок получеловека, ничего больше. Выглядит как угодно, " +"но только не аппетитно." + +#: lang/json/COMESTIBLE_from_json.py +msgid "cereal" +msgid_plural "cereal" +msgstr[0] "хлопья" +msgstr[1] "хлопья" +msgstr[2] "хлопья" +msgstr[3] "хлопья" + +#. ~ Description for {'str_sp': 'cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A generic box of cereal, you shouldn't see this." +msgstr "Абстрактная коробка хлопьев, вы не должны видеть ее." + +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace cereal" +msgid_plural "FoodPlace cereal" +msgstr[0] "хлопья от Сядь-и-поешь" +msgstr[1] "хлопья от Сядь-и-поешь" +msgstr[2] "хлопья от Сядь-и-поешь" +msgstr[3] "хлопья от Сядь-и-поешь" + +#. ~ Description for {'str_sp': 'FoodPlace cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A generic box of FoodPlace brand sugary cereal, you shouldn't see this." +msgstr "Абстрактная коробка хлопьев от Сядь-и-поешь, вы не должны видеть ее." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Snicker-Snacks cereal" +msgid_plural "Snicker-Snacks cereal" +msgstr[0] "хлопья Хрум-Чавк" +msgstr[1] "хлопья Хрум-Чавк" +msgstr[2] "хлопья Хрум-Чавк" +msgstr[3] "хлопья Хрум-Чавк" + +#. ~ Description for {'str_sp': 'Snicker-Snacks cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Snicker-Snack cereal. Each tiny \"Snicker-Snack\" is shaped" +" like human food!" +msgstr "" +"Хлопья Хрум-Чавк от Сядь-и-поешь. Каждая хлопушка Хрум-Чавк имеет форму " +"человеческой еды!" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Carpenter Crunch cereal" +msgid_plural "Carpenter Crunch cereal" +msgstr[0] "хлопья Хруст Плотника" +msgstr[1] "хлопья Хруст Плотника" +msgstr[2] "хлопья Хруст Плотника" +msgstr[3] "хлопья Хруст Плотника" + +#. ~ Description for {'str_sp': 'Carpenter Crunch cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is FoodPlace brand \"Carpenter Crunch\" cereal with the iconic " +"\"Breakfast Beaver\" mascot on the box. It tastes kind of like nails." +msgstr "" +"Хлопья Хруст Плотника от Сядь-и-поешь со знаменитым Бобром Завтраком на " +"упаковке. На вкус отдает гвоздями." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Brantastic cereal" +msgid_plural "Brantastic cereal" +msgstr[0] "Отрубические хлопья" +msgstr[1] "Отрубические хлопья" +msgstr[2] "Отрубические хлопья" +msgstr[3] "Отрубические хлопья" + +#. ~ Description for {'str_sp': 'Brantastic cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Brantastic\" cereal. An essential part of a complete Bran" +" breakfast." +msgstr "" +"Отрубические хлопья от Сядь-и-поешь. Неотъемлемая часть полноценного " +"завтрака из отрубей." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Sugar Chomps cereal" +msgid_plural "Sugar Chomps cereal" +msgstr[0] "хлопья Сахарный Хруст" +msgstr[1] "хлопья Сахарный Хруст" +msgstr[2] "хлопья Сахарный Хруст" +msgstr[3] "хлопья Сахарный Хруст" + +#. ~ Description for {'str_sp': 'Sugar Chomps cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Sugar Chomps\" cereal. \"Chocolate Frosted Crunchy Sugar " +"Chomps: 8 essential vitamins packed into that rich, fudgy taste!\"" +msgstr "" +"Хлопья Сахарный Хруст от Сядь-и-поешь. «Покрытые шоколадом сахарные " +"хрустяшки: 8 главных витаминов с насыщенным и воздушным вкусом!»" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Honey Pellet cereal" +msgid_plural "Honey Pellet cereal" +msgstr[0] "хлопья Медовые Шарики" +msgstr[1] "хлопья Медовые Шарики" +msgstr[2] "хлопья Медовые Шарики" +msgstr[3] "хлопья Медовые Шарики" + +#. ~ Description for {'str_sp': 'Honey Pellet cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Amorphous Honey Pellet\" cereal. The box promises " +"\"Inconceivable sustenance in tiny morsels of yellow honey.\"" +msgstr "" +"Хлопья Аморфные Медовые Шарики от Сядь-и-поешь. Упаковка обещает «Немыслимую" +" питательность в крошечных кусочках желтого меда»." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Fructose Flakes cereal" +msgid_plural "Fructose Flakes" +msgstr[0] "фруктозные хлопья" +msgstr[1] "фруктозные хлопья" +msgstr[2] "фруктозные хлопья" +msgstr[3] "фруктозные хлопья" + +#. ~ Description for {'str': 'Fructose Flakes cereal', 'str_pl': 'Fructose +#. Flakes'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Fructose Flakes cereal. Fortified with energy enriched " +"FoodSyrup™ that supports life most efficiently." +msgstr "" +"Фруктозные хлопья от Сядь-и-поешь. Насыщенные энергией с помощью " +"СъешьСиропа™ для наиболее эффективного жизнеобеспечения." + +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodios cereal" +msgid_plural "Foodios cereal" +msgstr[0] "хлопья Сытик" +msgstr[1] "хлопья Сытик" +msgstr[2] "хлопья Сытик" +msgstr[3] "хлопья Сытик" + +#. ~ Description for {'str_sp': 'Foodios cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace brand \"Foodios\" cereal. Foodios™ are Foodalicious™!" +msgstr "" +"Хлопья Сытик от Сядь-и-поешь. Хлопья Сытик™ - просто воСЫТИКтительные™!" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sugary cereal" +msgid_plural "sugary cereals" +msgstr[0] "сахарные хлопья" +msgstr[1] "сахарные хлопья" +msgstr[2] "сахарные хлопья" +msgstr[3] "сахарные хлопья" + +#. ~ Description for sugary cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sugary breakfast cereal with marshmallows. It takes you back to your " +"childhood." +msgstr "Сахарные хлопья с пастилой. Напоминают о вашем детстве." + +#: lang/json/COMESTIBLE_from_json.py +msgid "wheat cereal" +msgid_plural "wheat cereal" +msgstr[0] "пшеничные хлопья" +msgstr[1] "пшеничные хлопья" +msgstr[2] "пшеничные хлопья" +msgstr[3] "пшеничные хлопья" + +#. ~ Description for {'str_sp': 'wheat cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " +"your heart." +msgstr "" +"Цельнозерновые пшеничные хлопья. Они на удивление вкусные и, как говорят, " +"полезны для вашего сердца." + +#: lang/json/COMESTIBLE_from_json.py +msgid "corn cereal" +msgid_plural "corn cereals" +msgstr[0] "кукурузные хлопья" +msgstr[1] "кукурузные хлопья" +msgstr[2] "кукурузные хлопья" +msgstr[3] "кукурузные хлопья" + +#. ~ Description for corn cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "Plain cornflake cereal. They're not that good, but it beats nothing." +msgstr "Обычные кукурузные хлопья. Не особо вкусные, но лучше, чем ничего." + #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "raw milk" msgid_plural "raw milk" @@ -40467,7 +42260,8 @@ msgstr[3] "сухое молоко" #: lang/json/COMESTIBLE_from_json.py msgid "Dehydrated milk powder. Mix with water to make drinkable milk." msgstr "" -"Сухой молочный порошок. Смешайте с водой, чтобы получить питьевое молоко." +"Сухой молочный порошок. Смешайте с водой, чтобы получить молоко, которое " +"можно пить." #: lang/json/COMESTIBLE_from_json.py msgid "condensed milk" @@ -40497,7 +42291,7 @@ msgstr[3] "жирные сливки" #. ~ Description for {'str_sp': 'heavy cream'} #: lang/json/COMESTIBLE_from_json.py msgid " Cream that has been skimmed from the top of raw milk left to sit." -msgstr "Сливки, снятые с верхней части свежего молока и сжирнённые." +msgstr "Сливки, снятые с верхней части отстоявшегося свежего молока." #: lang/json/COMESTIBLE_from_json.py msgid "apple cider" @@ -40754,8 +42548,8 @@ msgstr[3] "клюквенный сок" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." -msgstr "Сделан из настоящей Массачусетской клюквы. Вкусный и питательный." +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." +msgstr "Сок из настоящей Массачусетской клюквы. Очень кислый, но питательный." #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -41278,6 +43072,95 @@ msgstr "" "Такая классная минеральная вода, что вы чувствуете себя так классно держа её" " в руке." +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "подслащённый кофе" +msgstr[1] "подслащённый кофе" +msgstr[2] "подслащённый кофе" +msgstr[3] "подслащённый кофе" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" +"Утренний ритуал до-апокалиптического мира, созданный из кофейных плодов в " +"результате сложного процесса удаления, обжарки, измельчения и варки семян. " +"Кофе значительно богаче кофеином, чем его конкурент — чай. Подслащён для " +"улучшения вкуса." + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "подслащённый чай" +msgstr[1] "подслащённый чай" +msgstr[2] "подслащённый чай" +msgstr[3] "подслащённый чай" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "" +"Напиток джентльменов, созданный путём заваривания в горячей воде листьев " +"растения камелия китайская. Подслащён для улучшения вкуса." + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "подслащённый чай с молоком" +msgstr[1] "подслащённый чай с молоком" +msgstr[2] "подслащённый чай с молоком" +msgstr[3] "подслащённый чай с молоком" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "Горячий чай с холодным молоком и подсластителем." + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "подслащённый кофезаменитель" +msgstr[1] "подслащённый кофезаменитель" +msgstr[2] "подслащённый кофезаменитель" +msgstr[3] "подслащённый кофезаменитель" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" +"Домашний не-кофе, сделанный из кентуккийского кофейного дерева, прямо как " +"варили в племени Месквоков! На самом деле вовсе не содержит кофеина и очень " +"горький, но на крайний случай сойдёт. Добавленный подсластитель слегка " +"уменьшает горечь." + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "подслащённый кофе с молоком" +msgstr[1] "подслащённый кофе с молоком" +msgstr[2] "подслащённый кофе с молоком" +msgstr[3] "подслащённый кофе с молоком" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "" +"Смесь кофейного сиропа и молока. Официальный государственный напиток Род " +"Айленда с 1993 года. Подслащён для улучшения вкуса." + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -41366,36 +43249,6 @@ msgstr "" "Мёд — штука, которую делают пчёлы. Это «лесной мёд», жидкая форма. Этот мёд " "не пропадает и полезен для пищеварения." -#: lang/json/COMESTIBLE_from_json.py -msgid "peanut butter" -msgid_plural "peanut butters" -msgstr[0] "арахисовое масло" -msgstr[1] "арахисовое масло" -msgstr[2] "арахисовое масло" -msgstr[3] "арахисовое масло" - -#. ~ Description for peanut butter -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A brown goo that tastes very little like its namesake. It's not bad, but " -"it'll stick to the roof of your mouth." -msgstr "" -"Коричневая масса, вкус которой имеет мало общего с названием. Не так уж и " -"плохо, но прилипает к нёбу." - -#: lang/json/COMESTIBLE_from_json.py -msgid "imitation peanutbutter" -msgid_plural "imitation peanutbutters" -msgstr[0] "заменитель арахисового масла" -msgstr[1] "заменитель арахисового масла" -msgstr[2] "заменитель арахисового масла" -msgstr[3] "заменитель арахисового масла" - -#. ~ Description for imitation peanutbutter -#: lang/json/COMESTIBLE_from_json.py -msgid "A thick, nutty brown paste." -msgstr "Густая коричневая ореховая паста." - #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" msgid_plural "vinegar" @@ -41509,6 +43362,23 @@ msgstr[1] "яйца курицы" msgstr[2] "яиц курицы" msgstr[3] "яйца курицы" +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" +msgstr[0] "неоплодотворенное птичье яйцо" +msgstr[1] "неоплодотворенных птичьих яйца" +msgstr[2] "неоплодотворенных птичьих яиц" +msgstr[3] "неоплодотворенные птичьи яйца" + +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "" +"Питательное яйцо, отложенное птицей. Не оплодотворено, скорее всего потому " +"что его сразу забрали на ферме." + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" @@ -41659,7 +43529,7 @@ msgstr[3] "икра" #. ~ Description for roe #: lang/json/COMESTIBLE_from_json.py msgid "Common roe from an unknown fish." -msgstr "Обычная икра от неизвестной рыбы." +msgstr "Обычная икра какой-то рыбы." #: lang/json/COMESTIBLE_from_json.py msgid "powdered egg" @@ -41754,9 +43624,9 @@ msgstr "" msgid "deluxe milkshake" msgid_plural "deluxe milkshakes" msgstr[0] "шикарный молочный коктейль" -msgstr[1] "шикарных молочных коктейля" -msgstr[2] "шикарных молочных коктейлей" -msgstr[3] "шикарные молочные коктейли" +msgstr[1] "шикарный молочный коктейль" +msgstr[2] "шикарный молочный коктейль" +msgstr[3] "шикарный молочный коктейль" #. ~ Description for {'str': 'deluxe milkshake'} #: lang/json/COMESTIBLE_from_json.py @@ -41800,7 +43670,7 @@ msgid "" msgstr "" "Государственные предписания гласят, поскольку это *технически* не мороженое," " вместо этого оно будет называться молочным десертом. Всё ещё вкусно, но " -"вредно для вашего огранизма." +"вредно для вашего организма." #: lang/json/COMESTIBLE_from_json.py msgid "candy ice cream" @@ -41823,7 +43693,7 @@ msgid_plural "fruity ice cream scoops" msgstr[0] "шарик фруктового мороженого" msgstr[1] "шарика фруктового мороженого" msgstr[2] "шариков фруктового мороженого" -msgstr[3] "шарик фруктового мороженого" +msgstr[3] "шарики фруктового мороженого" #. ~ Description for {'str': 'fruity ice cream', 'str_pl': 'fruity ice cream #. scoops'} @@ -41962,10 +43832,10 @@ msgstr "Жёлтые ломтики персиков в лёгком сироп #: lang/json/COMESTIBLE_from_json.py msgid "canned pineapple" msgid_plural "canned pineapples" -msgstr[0] "консервированные кусочки ананаса" -msgstr[1] "консервированные кусочки ананаса" -msgstr[2] "консервированные кусочки ананаса" -msgstr[3] "консервированные кусочки ананаса" +msgstr[0] "консервированный ананас" +msgstr[1] "консервированный ананас" +msgstr[2] "консервированный ананас" +msgstr[3] "консервированный ананас" #. ~ Description for canned pineapple #: lang/json/COMESTIBLE_from_json.py @@ -41975,10 +43845,10 @@ msgstr "Консервированные ананасовые кольца в в #: lang/json/COMESTIBLE_from_json.py msgid "lemonade drink mix" msgid_plural "lemonade drink mix" -msgstr[0] "лимонадный микс" -msgstr[1] "лимонадных микса" -msgstr[2] "лимонадных миксов" -msgstr[3] "лимонадные миксы" +msgstr[0] "лимонадная смесь" +msgstr[1] "лимонадная смесь" +msgstr[2] "лимонадная смесь" +msgstr[3] "лимонадная смесь" #. ~ Description for {'str_sp': 'lemonade drink mix'} #: lang/json/COMESTIBLE_from_json.py @@ -42084,6 +43954,21 @@ msgstr "" "Эта разваренная масса консервированных фруктов была сварена и закатана в " "прошлой жизни. Мягкие и теряющие цвет." +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "тыквенный дрожжевой хлеб" +msgstr[1] "тыквенный дрожжевой хлеб" +msgstr[2] "тыквенный дрожжевой хлеб" +msgstr[3] "тыквенный дрожжевой хлеб" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "Праздничный осенний хлеб золотистого цвета в булочках или ломтиках." + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -42506,9 +44391,9 @@ msgstr "" msgid "irradiated papaya" msgid_plural "irradiated papayas" msgstr[0] "облучённая папайя" -msgstr[1] "облучённых папайи" +msgstr[1] "облучённые папайи" msgstr[2] "облучённых папай" -msgstr[3] "облучённая папайя" +msgstr[3] "облучённые папайи" #. ~ Description for irradiated papaya #: lang/json/COMESTIBLE_from_json.py @@ -42645,7 +44530,7 @@ msgid_plural "irradiated onions" msgstr[0] "облучённый лук" msgstr[1] "облучённых лука" msgstr[2] "облучённого лука" -msgstr[3] "облучённы лук" +msgstr[3] "облучённый лук" #. ~ Description for irradiated onion #: lang/json/COMESTIBLE_from_json.py @@ -42827,7 +44712,7 @@ msgid "" "comes with frosting! Cook it to make it tasty." msgstr "" "Вкусная выпечка с фруктовой начинкой, которую можно разогреть в тостере. В " -"сахарной глазури! Разогретым вкуснее." +"сахарной глазури! Разогретая вкуснее." #: lang/json/COMESTIBLE_from_json.py msgid "toaster pastry" @@ -42935,7 +44820,7 @@ msgstr[3] "крендельки" #. ~ Description for {'str_sp': 'pretzels'} #: lang/json/COMESTIBLE_from_json.py msgid "A salty treat of a snack." -msgstr "Солёное удовольствие от закуски." +msgstr "Вкусная соленая закуска." #: lang/json/COMESTIBLE_from_json.py msgid "chocolate-covered pretzel" @@ -42997,7 +44882,7 @@ msgid_plural "peanut butter candies" msgstr[0] "конфета с арахисовым маслом" msgstr[1] "конфеты с арахисовым маслом" msgstr[2] "конфет с арахисовым маслом" -msgstr[3] "конфета с арахисовым маслом" +msgstr[3] "конфеты с арахисовым маслом" #. ~ Description for {'str': 'peanut butter candy', 'str_pl': 'peanut butter #. candies'} @@ -43009,9 +44894,9 @@ msgstr "Горстка колечек в арахисовом масле… Тв msgid "chocolate candy" msgid_plural "chocolate candies" msgstr[0] "шоколадная конфета" -msgstr[1] "шоколадных конфеты" +msgstr[1] "шоколадные конфеты" msgstr[2] "шоколадных конфет" -msgstr[3] "шоколадная конфета" +msgstr[3] "шоколадные конфеты" #. ~ Description for {'str': 'chocolate candy', 'str_pl': 'chocolate candies'} #: lang/json/COMESTIBLE_from_json.py @@ -43037,7 +44922,7 @@ msgid_plural "powder candy sticks" msgstr[0] "трубочка с конфетным порошком" msgstr[1] "трубочки с конфетным порошком" msgstr[2] "трубочек с конфетным порошком" -msgstr[3] "трубочка с конфетным порошком" +msgstr[3] "трубочки с конфетным порошком" #. ~ Description for {'str_sp': 'powder candy sticks'} #: lang/json/COMESTIBLE_from_json.py @@ -43053,7 +44938,7 @@ msgid_plural "maple syrup candies" msgstr[0] "конфета из кленового сиропа" msgstr[1] "конфеты из кленового сиропа" msgstr[2] "конфет из кленового сиропа" -msgstr[3] "конфета из кленового сиропа" +msgstr[3] "конфеты из кленового сиропа" #. ~ Description for {'str': 'maple syrup candy', 'str_pl': 'maple syrup #. candies'} @@ -43270,34 +45155,6 @@ msgstr "Карамель. Всё так же вредна для ваших зу msgid "Betcha can't eat just one." msgstr "Спорю, не сможешь остановиться на одной." -#: lang/json/COMESTIBLE_from_json.py -msgid "sugary cereal" -msgid_plural "sugary cereals" -msgstr[0] "сахарные хлопья" -msgstr[1] "сахарные хлопья" -msgstr[2] "сахарные хлопья" -msgstr[3] "сахарные хлопья" - -#. ~ Description for sugary cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sugary breakfast cereal with marshmallows. It takes you back to your " -"childhood." -msgstr "Сахарные хлопья с пастилой. Напоминают о вашем детстве." - -#: lang/json/COMESTIBLE_from_json.py -msgid "corn cereal" -msgid_plural "corn cereals" -msgstr[0] "кукурузные хлопья" -msgstr[1] "кукурузные хлопья" -msgstr[2] "кукурузные хлопья" -msgstr[3] "кукурузные хлопья" - -#. ~ Description for corn cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "Обычные кукурузные хлопья. Не особо вкусные, но лучше, чем ничего." - #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" @@ -43321,7 +45178,7 @@ msgid_plural "cheese nachos" msgstr[0] "сырные начос" msgstr[1] "сырных начос" msgstr[2] "сырных начос" -msgstr[3] "сырных начос" +msgstr[3] "сырные начос" #. ~ Description for {'str_sp': 'cheese nachos'} #: lang/json/COMESTIBLE_from_json.py @@ -43350,6 +45207,16 @@ msgstr[1] "начос Нино" msgstr[2] "начос Нино" msgstr[3] "начос Нино" +#. ~ Conditional name for {'str_sp': 'meat nachos'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos" +msgid_plural "nibelung nachos" +msgstr[0] "начос из нибелунга" +msgstr[1] "начос из нибелунга" +msgstr[2] "начос из нибелунга" +msgstr[3] "начос из нибелунга" + #. ~ Conditional name for {'str_sp': 'meat nachos'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -43387,6 +45254,16 @@ msgstr[1] "начос Нино с сыром" msgstr[2] "начос Нино с сыром" msgstr[3] "начос Нино с сыром" +#. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos with cheese" +msgid_plural "nibelung nachos with cheese" +msgstr[0] "начос из нибелунга с сыром" +msgstr[1] "начос из нибелунга с сыром" +msgstr[2] "начос из нибелунга с сыром" +msgstr[3] "начос из нибелунга с сыром" + #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when #. COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -43488,7 +45365,7 @@ msgid_plural "chili dogs" msgstr[0] "чили-дог" msgstr[1] "чили-дога" msgstr[2] "чили-догов" -msgstr[3] "чили-дог" +msgstr[3] "чили-доги" #. ~ Description for {'str_sp': 'chili dogs'} #: lang/json/COMESTIBLE_from_json.py @@ -43501,7 +45378,7 @@ msgid_plural "uncooked corn dogs" msgstr[0] "неготовый корн-дог" msgstr[1] "неготовых корн-дога" msgstr[2] "неготовых корн-догов" -msgstr[3] "неготовый корн-дог" +msgstr[3] "неготовые корн-доги" #. ~ Description for {'str_sp': 'uncooked corn dogs'} #: lang/json/COMESTIBLE_from_json.py @@ -43554,7 +45431,7 @@ msgid_plural "chocolate pancakes" msgstr[0] "блинчик с шоколадом" msgstr[1] "блинчика с шоколадом" msgstr[2] "блинчиков с шоколадом" -msgstr[3] "блинчик с шоколадом" +msgstr[3] "блинчики с шоколадом" #. ~ Description for {'str': 'chocolate pancake'} #: lang/json/COMESTIBLE_from_json.py @@ -43704,6 +45581,15 @@ msgstr[1] "сырые копчиты вурст" msgstr[2] "сырых копчит вурст" msgstr[3] "сырые копчиты вурст" +#. ~ Conditional name for raw sausage when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "raw killbasa" +msgid_plural "raw killbasas" +msgstr[0] "сырая колбаса из беса" +msgstr[1] "сырые колбасы из беса" +msgstr[2] "сырых колбас из беса" +msgstr[3] "сырые колбасы из беса" + #. ~ Conditional name for raw sausage when COMPONENT_ID matches mutant #. ~ Conditional name for smoked sausage when COMPONENT_ID matches mutant #. ~ Conditional name for cooked sausage when COMPONENT_ID matches mutant @@ -43740,6 +45626,16 @@ msgstr[1] "копченные копчиты вурст" msgstr[2] "копченных копчиты вурст" msgstr[3] "копченные копчиты вурст" +#. ~ Conditional name for smoked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked killbasa" +msgid_plural "smoked killbasas" +msgstr[0] "копченая колбаса из беса" +msgstr[1] "копченые колбасы из беса" +msgstr[2] "копченых колбас из беса" +msgstr[3] "копченые колбасы из беса" + #. ~ Description for smoked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." @@ -43762,6 +45658,16 @@ msgstr[1] "приготовленные копчиты вурст" msgstr[2] "приготовленных копчит вурст" msgstr[3] "приготовленные копчиты вурст" +#. ~ Conditional name for cooked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked killbasa" +msgid_plural "cooked killbasas" +msgstr[0] "приготовленная колбаса из беса" +msgstr[1] "приготовленные колбасы из беса" +msgstr[2] "приготовленных колбас из беса" +msgstr[3] "приготовленные колбасы из беса" + #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." @@ -43797,6 +45703,16 @@ msgstr[1] "человекобратвурста" msgstr[2] "человекобратвурстов" msgstr[3] "человекобратвурсты" +#. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "frankenfurter" +msgid_plural "frankenfurters" +msgstr[0] "братвурст из получеловека" +msgstr[1] "братвурста из получеловека" +msgstr[2] "братвурстов из получеловека" +msgstr[3] "братвурсты из получеловека" + #. ~ Conditional name for {'str': 'bratwurst'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -43947,6 +45863,16 @@ msgstr[1] "%s с соусом из жадины" msgstr[2] "%s с соусом из жадины" msgstr[3] "%s с соусом из жадины" +#. ~ Conditional name for currywurst when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "confusing %s" +msgid_plural "confusing %s" +msgstr[0] "%s из получеловека" +msgstr[1] "%s из получеловека" +msgstr[2] "%s из получеловека" +msgstr[3] "%s из получеловека" + #. ~ Conditional name for currywurst when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -43979,9 +45905,9 @@ msgstr[3] "заливное" msgid "abomination %s" msgid_plural "abomination %s" msgstr[0] "мерзостное %s" -msgstr[1] "мерзостных %s" -msgstr[2] "мерзостных %s" -msgstr[3] "мерзостные %s" +msgstr[1] "мерзостное %s" +msgstr[2] "мерзостное %s" +msgstr[3] "мерзостное %s" #. ~ Conditional name for {'str': 'aspic'} when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py @@ -43989,9 +45915,20 @@ msgstr[3] "мерзостные %s" msgid "amoral %s" msgid_plural "amoral %s" msgstr[0] "аморальное %s" -msgstr[1] "аморальных %s" -msgstr[2] "аморальных %s" -msgstr[3] "аморальные %s" +msgstr[1] "аморальное %s" +msgstr[2] "аморальное %s" +msgstr[3] "аморальное %s" + +#. ~ Conditional name for {'str': 'aspic'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orwell's %s" +msgid_plural "Orwell's %s" +msgstr[0] "%s по Оруэллу" +msgstr[1] "%s по Оруэллу" +msgstr[2] "%s по Оруэллу" +msgstr[3] "%s по Оруэллу" #. ~ Description for {'str': 'aspic'} #: lang/json/COMESTIBLE_from_json.py @@ -44006,8 +45943,8 @@ msgstr "" msgid "dehydrated fish" msgid_plural "dehydrated fish" msgstr[0] "сушёная рыба" -msgstr[1] "сушёных рыбы" -msgstr[2] "сушёных рыб" +msgstr[1] "сушёная рыба" +msgstr[2] "сушёная рыба" msgstr[3] "сушёная рыба" #. ~ Description for {'str_sp': 'dehydrated fish'} @@ -44093,10 +46030,10 @@ msgstr[3] "мясная нарезка" #, python-format msgid "loathsome %s" msgid_plural "loathsome %s" -msgstr[0] "отвратительный %s" -msgstr[1] "отвратительных %s" -msgstr[2] "отвратительных %s" -msgstr[3] "отвратительные %s" +msgstr[0] "отвратительная %s" +msgstr[1] "отвратительная %s" +msgstr[2] "отвратительная %s" +msgstr[3] "отвратительная %s" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py @@ -44125,6 +46062,17 @@ msgstr[1] "ублюдочные %s" msgstr[2] "ублюдочных %s" msgstr[3] "ублюдочные %s" +#. ~ Conditional name for {'str_sp': 'bologna'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Tumnis %s" +msgid_plural "Tumnis %s" +msgstr[0] "%s из получеловека" +msgstr[1] "%s из получеловека" +msgstr[2] "%s из получеловека" +msgstr[3] "%s из получеловека" + #. ~ Conditional name for {'str_sp': 'bologna'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -44145,7 +46093,7 @@ msgid "" msgstr "" "Официально известна как болонская колбаса. Это мелко измельченное " "консервированное мясо, которое поставляется в виде круглых ломтиков. Ее имя " -"не Оскар. Вы можете съесть это холодным." +"не Оскар. Ее можно есть это холодной." #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" @@ -44234,16 +46182,26 @@ msgstr[1] "колбасы с подливкой" msgstr[2] "колбасы с подливкой" msgstr[3] "колбаса с подливкой" +#. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage +#. gravies'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "killbasa gravy" +msgid_plural "killbasa gravies" +msgstr[0] "подливка с бесом" +msgstr[1] "подливка с бесом" +msgstr[2] "подливка с бесом" +msgstr[3] "подливка с бесом" + #. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage #. gravies'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format msgid "ghastly %s" msgid_plural "ghastly %s" -msgstr[0] "ужасный %s" -msgstr[1] "ужасных %s" -msgstr[2] "ужасных %s" -msgstr[3] "ужасные %s" +msgstr[0] "ужасная %s" +msgstr[1] "ужасная %s" +msgstr[2] "ужасная %s" +msgstr[3] "ужасная %s" #. ~ Description for {'str': 'sausage gravy', 'str_pl': 'sausage gravies'} #: lang/json/COMESTIBLE_from_json.py @@ -44258,8 +46216,8 @@ msgstr "" msgid "pemmican" msgid_plural "pemmican" msgstr[0] "пеммикан" -msgstr[1] "пеммикана" -msgstr[2] "пеммиканов" +msgstr[1] "пеммикан" +msgstr[2] "пеммикан" msgstr[3] "пеммикан" #. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches CANNIBALISM @@ -44267,10 +46225,21 @@ msgstr[3] "пеммикан" #, python-format msgid "prepper %s" msgid_plural "prepper %s" -msgstr[0] "товарищеский %s" -msgstr[1] "товарищеских %s" -msgstr[2] "товарищеских %s" -msgstr[3] "товарищеские %s" +msgstr[0] "%s из товарища" +msgstr[1] "%s из товарища" +msgstr[2] "%s из товарища" +msgstr[3] "%s из товарища" + +#. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orley %s" +msgid_plural "Orley %s" +msgstr[0] "%s из получеловека" +msgstr[1] "%s из получеловека" +msgstr[2] "%s из получеловека" +msgstr[3] "%s из получеловека" #. ~ Conditional name for {'str_sp': 'pemmican'} when COMPONENT_ID matches #. mutant @@ -44279,9 +46248,9 @@ msgstr[3] "товарищеские %s" msgid "pernicious %s" msgid_plural "pernicious %s" msgstr[0] "пагубный %s" -msgstr[1] "пагубных %s" -msgstr[2] "пагубных %s" -msgstr[3] "пагубные %s" +msgstr[1] "пагубный %s" +msgstr[2] "пагубный %s" +msgstr[3] "пагубный %s" #. ~ Description for {'str_sp': 'pemmican'} #: lang/json/COMESTIBLE_from_json.py @@ -44290,9 +46259,9 @@ msgid "" "food. Composed of meat, tallow, and edible plants, it provides excellent " "nutrition in an easy to carry form." msgstr "" -"Концентрированная смесь жира и белка, используемая как высокопитательная " -"пища. Состоит из мяса, жира и съедобных растений, отличается большой " -"питательностью при малом объёме и весе." +"Концентрированная смесь жира и белка, очень калорийная пища. Состоит из " +"мяса, жира и съедобных растений, отличается большой питательностью при малом" +" объёме и весе." #: lang/json/COMESTIBLE_from_json.py msgid "hamburger helper" @@ -44305,20 +46274,30 @@ msgstr[3] "макароны по-флотски" #. ~ Conditional name for hamburger helper when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgid_plural "hobo helpers" +msgid_plural "hobo helper" msgstr[0] "макароны с человечиной" -msgstr[1] "порции макарон с человечиной" -msgstr[2] "порций макарон с человечиной" -msgstr[3] "порции макарон с человечиной" +msgstr[1] "макароны с человечиной" +msgstr[2] "макароны с человечиной" +msgstr[3] "макароны с человечиной" + +#. ~ Conditional name for hamburger helper when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "halfling helper" +msgid_plural "halfling helper" +msgstr[0] "макароны из хоббита" +msgstr[1] "макароны из хоббита" +msgstr[2] "макароны из хоббита" +msgstr[3] "макароны из хоббита" #. ~ Conditional name for hamburger helper when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format msgid "heinous %s" msgid_plural "heinous %s" -msgstr[0] "отвратительный %s" -msgstr[1] "отвратительных %s" -msgstr[2] "отвратительных %s" +msgstr[0] "отвратительные %s" +msgstr[1] "отвратительные %s" +msgstr[2] "отвратительные %s" msgstr[3] "отвратительные %s" #. ~ Description for hamburger helper @@ -44361,6 +46340,16 @@ msgstr[1] "чили кон каброн" msgstr[2] "чили кон каброн" msgstr[3] "чили кон каброн" +#. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con +#. carne'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "chili con Sindar" +msgid_plural "chilis con Sindar" +msgstr[0] "соус чили с эльфом" +msgstr[1] "соус чили с эльфом" +msgstr[2] "соус чили с эльфом" +msgstr[3] "соус чили с эльфом" + #. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con #. carne'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -44434,9 +46423,9 @@ msgstr "Ярко-белый куриный паштет." msgid "pickled herring" msgid_plural "pickled herring" msgstr[0] "маринованная сельдь" -msgstr[1] "маринованные сельди" -msgstr[2] "маринованной сельди" -msgstr[3] "маринованные сельди" +msgstr[1] "маринованная сельдь" +msgstr[2] "маринованная сельдь" +msgstr[3] "маринованная сельдь" #. ~ Description for {'str_sp': 'pickled herring'} #: lang/json/COMESTIBLE_from_json.py @@ -44469,18 +46458,18 @@ msgstr[3] "клэм-чаудер" msgid "meat chowder" msgid_plural "meat chowders" msgstr[0] "мясной суп" -msgstr[1] "мясных супа" -msgstr[2] "мясных супов" -msgstr[3] "мясные супы" +msgstr[1] "мясной суп" +msgstr[2] "мясной суп" +msgstr[3] "мясной суп" #. ~ Conditional name for clam chowder when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py msgid "monster chowder" msgid_plural "monster chowders" msgstr[0] "суп из монстра" -msgstr[1] "супа из монстра" -msgstr[2] "супов из монстра" -msgstr[3] "супы из монстра" +msgstr[1] "суп из монстра" +msgstr[2] "суп из монстра" +msgstr[3] "суп из монстра" #. ~ Description for clam chowder #: lang/json/COMESTIBLE_from_json.py @@ -44527,10 +46516,10 @@ msgstr[3] "рис с мясом" #: lang/json/COMESTIBLE_from_json.py msgid "mutant fried rice" msgid_plural "mutant fried rice" -msgstr[0] "мутантный жареный рис" -msgstr[1] "мутантный жареный рис" -msgstr[2] "мутантный жареный рис" -msgstr[3] "мутантный жареный рис" +msgstr[0] "рис с жареным мутантом" +msgstr[1] "рис с жареным мутантом" +msgstr[2] "рис с жареным мутантом" +msgstr[3] "рис с жареным мутантом" #. ~ Description for {'str_sp': 'meat fried rice'} #: lang/json/COMESTIBLE_from_json.py @@ -44575,12 +46564,21 @@ msgstr[3] "мясные пироги" #. ~ Conditional name for meat pie when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgid_plural "prick pies" +msgid_plural "prick pie" msgstr[0] "пирог с человечиной" msgstr[1] "пирога с человечиной" msgstr[2] "пирогов с человечиной" msgstr[3] "пироги с человечиной" +#. ~ Conditional name for meat pie when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal pie" +msgid_plural "talking animal pie" +msgstr[0] "пирог из говорливого животного" +msgstr[1] "пирога из говорливого животного" +msgstr[2] "пирогов из говорливого животного" +msgstr[3] "пироги из говорливого животного" + #. ~ Conditional name for meat pie when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -44607,12 +46605,21 @@ msgstr[3] "мясные пиццы" #. ~ Conditional name for meat pizza when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgid_plural "poser pizzas" +msgid_plural "poser pizza" msgstr[0] "пицца с позёром" msgstr[1] "пиццы с позёром" msgstr[2] "пицц с позёром" msgstr[3] "пиццы с позёром" +#. ~ Conditional name for meat pizza when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "protesting pizza" +msgid_plural "protesting pizza" +msgstr[0] "пицца из спорщика" +msgstr[1] "пиццы из спорщика" +msgstr[2] "пицц из спорщика" +msgstr[3] "пиццы из спорщика" + #. ~ Conditional name for meat pizza when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -44658,16 +46665,16 @@ msgstr[3] "шикарный омлет" msgid "\"deluxe\" scrambled eggs" msgid_plural "\"deluxe\" scrambled eggs" msgstr[0] "«шикарный» омлет" -msgstr[1] "«шикарных» омлета" -msgstr[2] "«шикарных» омлетов" -msgstr[3] "«шикарные» омлеты" +msgstr[1] "«шикарный» омлет" +msgstr[2] "«шикарный» омлет" +msgstr[3] "«шикарный» омлет" #. ~ Description for {'str_sp': 'deluxe scrambled eggs'} #: lang/json/COMESTIBLE_from_json.py msgid "" "Fluffy and delicious scrambled eggs made more delicious with the addition of" " other tasty ingredients." -msgstr "Взбитые яйца со вкусными добавками." +msgstr "Взбитые яйца с дополнительными ингредиентами для лучшего вкуса." #: lang/json/COMESTIBLE_from_json.py msgid "canned meat" @@ -44680,11 +46687,20 @@ msgstr[3] "мясные консервы" #. ~ Conditional name for canned meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" -msgid_plural "soylent slices" +msgid_plural "soylent slice" msgstr[0] "ломтик сойлента" msgstr[1] "ломтика сойлента" msgstr[2] "ломтиков сойлента" -msgstr[3] "ломтик сойлента" +msgstr[3] "ломтики сойлента" + +#. ~ Conditional name for canned meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient slice" +msgid_plural "sapient slice" +msgstr[0] "ломтик получеловека" +msgstr[1] "ломтика получеловека" +msgstr[2] "ломтиков получеловека" +msgstr[3] "ломтики получеловека" #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py @@ -44706,11 +46722,21 @@ msgstr[3] "солонина из мяса" #. ~ Conditional name for salted meat slice when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slice" -msgid_plural "salted simpleton slices" -msgstr[0] "солёный кусочек простака" -msgstr[1] "солёные кусочки простака" -msgstr[2] "солёных кусочков простака" -msgstr[3] "солёные кусочки простака" +msgid_plural "salted simpleton slice" +msgstr[0] "солёный ломтик простака" +msgstr[1] "солёных ломтика простака" +msgstr[2] "солёных ломтиков простака" +msgstr[3] "солёные ломтики простака" + +#. ~ Conditional name for salted meat slice when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "salted sapient slice" +msgid_plural "salted sapient slice" +msgstr[0] "солёный кусочек получеловека" +msgstr[1] "солёных кусочка получеловека" +msgstr[2] "солёных кусочков получеловека" +msgstr[3] "солёные кусочки получеловека" #. ~ Description for salted meat slice #: lang/json/COMESTIBLE_from_json.py @@ -44731,27 +46757,37 @@ msgstr[3] "спагетти с соусом болоньезе" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" -msgid_plural "scoundrel spaghettis" +msgid_plural "scoundrel spaghetti" msgstr[0] "спагетти из подлеца" msgstr[1] "спагетти из подлеца" msgstr[2] "спагетти из подлеца" msgstr[3] "спагетти из подлеца" +#. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "speaking spaghetti" +msgid_plural "speaking spaghetti" +msgstr[0] "спагетти из болтуна" +msgstr[1] "спагетти из болтуна" +msgstr[2] "спагетти из болтуна" +msgstr[3] "спагетти из болтуна" + #. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when COMPONENT_ID #. matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format msgid "gnarly %s" msgid_plural "gnarly %s" -msgstr[0] "мессиво из %s" -msgstr[1] "мессиво из %s" -msgstr[2] "мессиво из %s" -msgstr[3] "мессиво из %s" +msgstr[0] "жуткое %s" +msgstr[1] "жуткое %s" +msgstr[2] "жуткое %s" +msgstr[3] "жуткое %s" #. ~ Description for {'str_sp': 'spaghetti bolognese'} #: lang/json/COMESTIBLE_from_json.py msgid "Spaghetti covered with a thick meat sauce. Yum!" -msgstr "Спагетти, покрытые густым мясным соусом. Ням!" +msgstr "Спагетти, залитые густым мясным соусом. Ням!" #: lang/json/COMESTIBLE_from_json.py msgid "lasagne" @@ -44771,6 +46807,16 @@ msgstr[1] "%s с Луиджи" msgstr[2] "%s с Луиджи" msgstr[3] "%s с Луиджи" +#. ~ Conditional name for lasagne when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Lab %s" +msgid_plural "Lab %s" +msgstr[0] "%s из получеловека" +msgstr[1] "%s из получеловека" +msgstr[2] "%s из получеловека" +msgstr[3] "%s из получеловека" + #. ~ Conditional name for lasagne when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -44787,16 +46833,16 @@ msgid "" "A very old type of pasta made with several layers of lasagne sheets " "alternated with cheese, sauces and meats." msgstr "" -"Давно известный вид мучных изделий состоящий из чередующихся слоёв лазаньи, " -"сыра, соуса и мяса." +"Давно известный вид мучных изделий состоящий из чередующихся слоёв листов " +"лазаньи, сыра, соуса и мяса." #: lang/json/COMESTIBLE_from_json.py msgid "fried SPAM" msgid_plural "fried SPAM" msgstr[0] "поджаренная ветчина" -msgstr[1] "поджаренные ветчины" -msgstr[2] "поджаренные ветчины" -msgstr[3] "поджаренные ветчины" +msgstr[1] "поджаренная ветчина" +msgstr[2] "поджаренная ветчина" +msgstr[3] "поджаренная ветчина" #. ~ Description for {'str_sp': 'fried SPAM'} #: lang/json/COMESTIBLE_from_json.py @@ -44821,6 +46867,17 @@ msgstr[1] "%s из головы" msgstr[2] "%s из головы" msgstr[3] "%s из головы" +#. ~ Conditional name for cheeseburger when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "elf %s" +msgid_plural "elf %s" +msgstr[0] "эльфийский %s" +msgstr[1] "эльфийских %s" +msgstr[2] "эльфийских %s" +msgstr[3] "эльфийские %s" + #. ~ Conditional name for cheeseburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -44851,12 +46908,21 @@ msgstr[3] "гамбургеры" #. ~ Conditional name for hamburger when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgid_plural "bobburgers" +msgid_plural "bobburger" msgstr[0] "бургер из Боба" msgstr[1] "бургера из Боба" msgstr[2] "бургеров из Боба" msgstr[3] "бургеры из Боба" +#. ~ Conditional name for hamburger when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "Moreauburger" +msgid_plural "Moreauburger" +msgstr[0] "бургер а-ля доктор Моро" +msgstr[1] "бургера а-ля доктор Моро" +msgstr[2] "бургеров а-ля доктор Моро" +msgstr[3] "бургеры а-ля доктор Моро" + #. ~ Conditional name for hamburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -44889,6 +46955,15 @@ msgstr[1] "манвича" msgstr[2] "манвичей" msgstr[3] "манвич" +#. ~ Conditional name for sloppy joe when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "manfriendwich" +msgid_plural "manfriendwiches" +msgstr[0] "ленивый Фродо" +msgstr[1] "ленивых Фродо" +msgstr[2] "ленивых Фродо" +msgstr[3] "ленивые Фродо" + #. ~ Conditional name for sloppy joe when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -44925,6 +47000,16 @@ msgstr[1] "тио %s" msgstr[2] "тио %s" msgstr[3] "тио %s" +#. ~ Conditional name for taco when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "talking %s" +msgid_plural "talking %s" +msgstr[0] "болтливый %s" +msgstr[1] "болтливый %s" +msgstr[2] "болтливый %s" +msgstr[3] "болтливый %s" + #. ~ Conditional name for taco when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -44955,11 +47040,21 @@ msgstr[3] "маринованное мясо" #. ~ Conditional name for pickled meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgid_plural "pickled punks" -msgstr[0] "маринованная человечина" -msgstr[1] "маринованная человечина" -msgstr[2] "маринованная человечина" -msgstr[3] "маринованная человечина" +msgid_plural "pickled punk" +msgstr[0] "маринованая человечина" +msgstr[1] "маринованая человечина" +msgstr[2] "маринованая человечина" +msgstr[3] "маринованая человечина" + +#. ~ Conditional name for pickled meat when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "pickled anthro" +msgid_plural "pickled anthro" +msgstr[0] "маринованая получеловечина" +msgstr[1] "маринованая получеловечина" +msgstr[2] "маринованая получеловечина" +msgstr[3] "маринованая получеловечина" #. ~ Description for pickled meat #: lang/json/COMESTIBLE_from_json.py @@ -44982,9 +47077,24 @@ msgstr[3] "сушёное мясо" msgid "%s, human" msgid_plural "%s, human" msgstr[0] "%s, человеческое" -msgstr[1] "%s, человеческих" -msgstr[2] "%s, человеческих" -msgstr[3] "%s, человеческие" +msgstr[1] "%s, человеческое" +msgstr[2] "%s, человеческое" +msgstr[3] "%s, человеческое" + +#. ~ Conditional name for dehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for rehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for {'str': 'haggis', 'str_pl': 'haggises'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "%s, demihuman" +msgid_plural "%s, demihuman" +msgstr[0] "%s из получеловека" +msgstr[1] "%s из получеловека" +msgstr[2] "%s из получеловека" +msgstr[3] "%s из получеловека" #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py @@ -45228,7 +47338,7 @@ msgid_plural "syringes of adrenaline" msgstr[0] "шприц с адреналином" msgstr[1] "шприца с адреналином" msgstr[2] "шприцов с адреналином" -msgstr[3] "шприц с адреналином" +msgstr[3] "шприцы с адреналином" #. ~ Description for {'str': 'syringe of adrenaline', 'str_pl': 'syringes of #. adrenaline'} @@ -45412,6 +47522,11 @@ msgstr[1] "кофеин в таблетках" msgstr[2] "кофеин в таблетках" msgstr[3] "кофеин в таблетках" +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "Вы выпиваете таблетку кофеина." + #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -45464,7 +47579,7 @@ msgid_plural "cigarettes" msgstr[0] "сигарета" msgstr[1] "сигареты" msgstr[2] "сигарет" -msgstr[3] "сигарета" +msgstr[3] "сигареты" #. ~ Description for cigarette #: lang/json/COMESTIBLE_from_json.py @@ -45483,7 +47598,7 @@ msgid_plural "cigars" msgstr[0] "сигара" msgstr[1] "сигары" msgstr[2] "сигар" -msgstr[3] "сигара" +msgstr[3] "сигары" #. ~ Description for cigar #: lang/json/COMESTIBLE_from_json.py @@ -45492,7 +47607,7 @@ msgid "" "A gentleman's vice, cigars set the civil man apart from the savage." msgstr "" "Скрученный табачный лист, опасен для здоровья и вызывает зависимость.\n" -"Наличие сигары делает из дикаря джентльмена." +"Наличие сигары отделяет дикаря от джентльмена." #: lang/json/COMESTIBLE_from_json.py msgid "chloroform soaked rag" @@ -45571,10 +47686,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pair of contact lenses" msgid_plural "pairs of contact lenses" -msgstr[0] "контактные линзы" +msgstr[0] "пара контактных линз" msgstr[1] "пары контактных линз" msgstr[2] "пар контактных линз" -msgstr[3] "контактные линзы" +msgstr[3] "пары контактных линз" #. ~ Description for {'str': 'pair of contact lenses', 'str_pl': 'pairs of #. contact lenses'} @@ -46061,10 +48176,12 @@ msgstr[3] "прививки от гриппа" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." msgstr "" -"Фармакологическая прививка от гриппа для массовых вакцинаций, всё ещё " -"запакована. Увеличивает иммунитет к гриппу." +"Фармакологическая прививка от гриппа для массовой вакцинации, всё ещё " +"запакована. Увеличивает иммунитет к штамму гриппа, существовавшему в момент " +"ее создания." #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -46151,7 +48268,7 @@ msgid_plural "joints" msgstr[0] "косячок" msgstr[1] "косячка" msgstr[2] "косячков" -msgstr[3] "косячок" +msgstr[3] "косячки" #. ~ Description for joint #: lang/json/COMESTIBLE_from_json.py @@ -46815,11 +48932,10 @@ msgstr "Вы принимаете препарат от изжоги." #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." +"urges." msgstr "" -"Кремово-розовый сироп от изжоги, смягчающий расстроенные желудки и " -"подавляющий рвотные позывы; откручивающаяся крышечка также служит " -"дозировочной ложкой." +"Кремово-розовый сироп от изжоги, смягчающий расстройство желудка и " +"подавляющий рвотные позывы." #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" @@ -46905,9 +49021,9 @@ msgstr "Общее главное блюдо ИРП, вы не должны ви msgid "chili & beans entree" msgid_plural "chili & beans entrees" msgstr[0] "блюдо ИРП — чили с бобами" -msgstr[1] "блюдо ИРП — чили с бобами" -msgstr[2] "блюдо ИРП — чили с бобами" -msgstr[3] "блюдо ИРП — чили с бобами" +msgstr[1] "блюда ИРП — чили с бобами" +msgstr[2] "блюд ИРП — чили с бобами" +msgstr[3] "блюда ИРП — чили с бобами" #. ~ Description for chili & beans entree #: lang/json/COMESTIBLE_from_json.py @@ -46922,9 +49038,9 @@ msgstr "" msgid "BBQ beef entree" msgid_plural "BBQ beef entrees" msgstr[0] "блюдо ИРП — барбекю из говядины" -msgstr[1] "блюдо ИРП — барбекю из говядины" -msgstr[2] "блюдо ИРП — барбекю из говядины" -msgstr[3] "блюдо ИРП — барбекю из говядины" +msgstr[1] "блюда ИРП — барбекю из говядины" +msgstr[2] "блюд ИРП — барбекю из говядины" +msgstr[3] "блюда ИРП — барбекю из говядины" #. ~ Description for {'str': 'BBQ beef entree'} #: lang/json/COMESTIBLE_from_json.py @@ -46939,9 +49055,9 @@ msgstr "" msgid "chicken noodle entree" msgid_plural "chicken noodle entrees" msgstr[0] "блюдо ИРП — курица с лапшой" -msgstr[1] "блюдо ИРП — курица с лапшой" -msgstr[2] "блюдо ИРП — курица с лапшой" -msgstr[3] "блюдо ИРП — курица с лапшой" +msgstr[1] "блюда ИРП — курица с лапшой" +msgstr[2] "блюд ИРП — курица с лапшой" +msgstr[3] "блюда ИРП — курица с лапшой" #. ~ Description for chicken noodle entree #: lang/json/COMESTIBLE_from_json.py @@ -46956,9 +49072,9 @@ msgstr "" msgid "spaghetti entree" msgid_plural "spaghetti entrees" msgstr[0] "блюдо ИРП — спагетти" -msgstr[1] "блюдо ИРП — спагетти" -msgstr[2] "блюдо ИРП — спагетти" -msgstr[3] "блюдо ИРП — спагетти" +msgstr[1] "блюда ИРП — спагетти" +msgstr[2] "блюд ИРП — спагетти" +msgstr[3] "блюда ИРП — спагетти" #. ~ Description for spaghetti entree #: lang/json/COMESTIBLE_from_json.py @@ -46973,9 +49089,9 @@ msgstr "" msgid "chicken chunks entree" msgid_plural "chicken chunks entrees" msgstr[0] "блюдо ИРП — кусочки курицы" -msgstr[1] "блюдо ИРП — кусочки курицы" -msgstr[2] "блюдо ИРП — кусочки курицы" -msgstr[3] "блюдо ИРП — кусочки курицы" +msgstr[1] "блюда ИРП — кусочки курицы" +msgstr[2] "блюд ИРП — кусочки курицы" +msgstr[3] "блюда ИРП — кусочки курицы" #. ~ Description for chicken chunks entree #: lang/json/COMESTIBLE_from_json.py @@ -46990,9 +49106,9 @@ msgstr "" msgid "beef taco entree" msgid_plural "beef taco entrees" msgstr[0] "блюдо ИРП — тако с говядиной" -msgstr[1] "блюдо ИРП — тако с говядиной" -msgstr[2] "блюдо ИРП — тако с говядиной" -msgstr[3] "блюдо ИРП — тако с говядиной" +msgstr[1] "блюда ИРП — тако с говядиной" +msgstr[2] "блюд ИРП — тако с говядиной" +msgstr[3] "блюда ИРП — тако с говядиной" #. ~ Description for {'str': 'beef taco entree'} #: lang/json/COMESTIBLE_from_json.py @@ -47007,9 +49123,9 @@ msgstr "" msgid "beef brisket entree" msgid_plural "beef brisket entrees" msgstr[0] "блюдо ИРП — говяжья грудинка" -msgstr[1] "блюдо ИРП — говяжья грудинка" -msgstr[2] "блюдо ИРП — говяжья грудинка" -msgstr[3] "блюдо ИРП — говяжья грудинка" +msgstr[1] "блюда ИРП — говяжья грудинка" +msgstr[2] "блюд ИРП — говяжья грудинка" +msgstr[3] "блюда ИРП — говяжья грудинка" #. ~ Description for {'str': 'beef brisket entree'} #: lang/json/COMESTIBLE_from_json.py @@ -47024,9 +49140,9 @@ msgstr "" msgid "meatballs & marinara entree" msgid_plural "meatballs & marinara entrees" msgstr[0] "блюдо ИРП — фрикадельки в соусе маринара" -msgstr[1] "блюдо ИРП — фрикадельки в соусе маринара" -msgstr[2] "блюдо ИРП — фрикадельки в соусе маринара" -msgstr[3] "блюдо ИРП — фрикадельки в соусе маринара" +msgstr[1] "блюда ИРП — фрикадельки в соусе маринара" +msgstr[2] "блюд ИРП — фрикадельки в соусе маринара" +msgstr[3] "блюда ИРП — фрикадельки в соусе маринара" #. ~ Description for meatballs & marinara entree #: lang/json/COMESTIBLE_from_json.py @@ -47042,9 +49158,9 @@ msgstr "" msgid "beef stew entree" msgid_plural "beef stew entrees" msgstr[0] "блюдо ИРП — тушёная говядина" -msgstr[1] "блюдо ИРП — тушёная говядина" +msgstr[1] "блюда ИРП — тушёная говядина" msgstr[2] "блюдо ИРП — тушёная говядина" -msgstr[3] "блюдо ИРП — тушёная говядина" +msgstr[3] "блюда ИРП — тушёная говядина" #. ~ Description for {'str': 'beef stew entree'} #: lang/json/COMESTIBLE_from_json.py @@ -47059,9 +49175,9 @@ msgstr "" msgid "chili & macaroni entree" msgid_plural "chili & macaroni entrees" msgstr[0] "блюдо ИРП — макароны с чили" -msgstr[1] "блюдо ИРП — макароны с чили" -msgstr[2] "блюдо ИРП — макароны с чили" -msgstr[3] "блюдо ИРП — макароны с чили" +msgstr[1] "блюда ИРП — макароны с чили" +msgstr[2] "блюд ИРП — макароны с чили" +msgstr[3] "блюда ИРП — макароны с чили" #. ~ Description for chili & macaroni entree #: lang/json/COMESTIBLE_from_json.py @@ -47076,9 +49192,9 @@ msgstr "" msgid "vegetarian taco entree" msgid_plural "vegetarian taco entrees" msgstr[0] "блюдо ИРП — вегетарианское тако" -msgstr[1] "блюдо ИРП — вегетарианское тако" -msgstr[2] "блюдо ИРП — вегетарианское тако" -msgstr[3] "блюдо ИРП — вегетарианское тако" +msgstr[1] "блюда ИРП — вегетарианское тако" +msgstr[2] "блюд ИРП — вегетарианское тако" +msgstr[3] "блюда ИРП — вегетарианское тако" #. ~ Description for vegetarian taco entree #: lang/json/COMESTIBLE_from_json.py @@ -47093,9 +49209,9 @@ msgstr "" msgid "macaroni & marinara entree" msgid_plural "macaroni & marinara entrees" msgstr[0] "блюдо ИРП — макароны в соусе маринара" -msgstr[1] "блюдо ИРП — макароны в соусе маринара" -msgstr[2] "блюдо ИРП — макароны в соусе маринара" -msgstr[3] "блюдо ИРП — макароны в соусе маринара" +msgstr[1] "блюда ИРП — макароны в соусе маринара" +msgstr[2] "блюд ИРП — макароны в соусе маринара" +msgstr[3] "блюда ИРП — макароны в соусе маринара" #. ~ Description for macaroni & marinara entree #: lang/json/COMESTIBLE_from_json.py @@ -47106,13 +49222,49 @@ msgstr "" "Макароны в соусе маринара, основное блюдо из ИРП. Стерилизовано радиацией, " "так что безопасно для употребления. Оно распаковано и начало портиться." +#: lang/json/COMESTIBLE_from_json.py +msgid "spinach fettuccine entree" +msgid_plural "spinach fettuccine entrees" +msgstr[0] "блюдо ИРП — феттуччини с шпинатом" +msgstr[1] "блюда ИРП — феттуччини с шпинатом" +msgstr[2] "блюд ИРП — феттуччини с шпинатом" +msgstr[3] "блюда ИРП — феттуччини с шпинатом" + +#. ~ Description for spinach fettuccine entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The creamy spinach fettuccine entree from an MRE. Sterilized using " +"radiation, so it's safe to eat. Exposed to the atmosphere, it has started " +"to go bad." +msgstr "" +"Сливочное феттуччини с шпинатом, основное блюдо из ИРП. Стерилизовано " +"радиацией, так что безопасно для употребления. Оно распаковано и начало " +"портиться." + +#: lang/json/COMESTIBLE_from_json.py +msgid "ratatouille entree" +msgid_plural "ratatouille entrees" +msgstr[0] "блюдо ИРП — рататуй" +msgstr[1] "блюда ИРП — рататуй" +msgstr[2] "блюд ИРП — рататуй" +msgstr[3] "блюда ИРП — рататуй" + +#. ~ Description for ratatouille entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The ratatouille entree from an MRE. Sterilized using radiation, so it's " +"safe to eat. Exposed to the atmosphere, it has started to go bad." +msgstr "" +"Рататуй, основное блюдо из ИРП. Стерилизовано радиацией, так что безопасно " +"для употребления. Оно распаковано и начало портиться." + #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" msgid_plural "cheese tortellini entrees" msgstr[0] "блюдо ИРП — тортеллини с сыром" -msgstr[1] "блюдо ИРП — тортеллини с сыром" -msgstr[2] "блюдо ИРП — тортеллини с сыром" -msgstr[3] "блюдо ИРП — тортеллини с сыром" +msgstr[1] "блюда ИРП — тортеллини с сыром" +msgstr[2] "блюд ИРП — тортеллини с сыром" +msgstr[3] "блюда ИРП — тортеллини с сыром" #. ~ Description for cheese tortellini entree #: lang/json/COMESTIBLE_from_json.py @@ -47127,9 +49279,9 @@ msgstr "" msgid "mushroom fettuccine entree" msgid_plural "mushroom fettuccine entrees" msgstr[0] "блюдо ИРП — феттуччини с грибами" -msgstr[1] "блюдо ИРП — феттуччини с грибами" -msgstr[2] "блюдо ИРП — феттуччини с грибами" -msgstr[3] "блюдо ИРП — феттуччини с грибами" +msgstr[1] "блюда ИРП — феттуччини с грибами" +msgstr[2] "блюд ИРП — феттуччини с грибами" +msgstr[3] "блюда ИРП — феттуччини с грибами" #. ~ Description for mushroom fettuccine entree #: lang/json/COMESTIBLE_from_json.py @@ -47144,9 +49296,9 @@ msgstr "" msgid "Mexican chicken stew entree" msgid_plural "Mexican chicken stew entrees" msgstr[0] "блюдо ИРП — курица по-мексикански" -msgstr[1] "блюдо ИРП — курица по-мексикански" -msgstr[2] "блюдо ИРП — курица по-мексикански" -msgstr[3] "блюдо ИРП — курица по-мексикански" +msgstr[1] "блюда ИРП — курица по-мексикански" +msgstr[2] "блюд ИРП — курица по-мексикански" +msgstr[3] "блюда ИРП — курица по-мексикански" #. ~ Description for {'str': 'Mexican chicken stew entree'} #: lang/json/COMESTIBLE_from_json.py @@ -47161,9 +49313,9 @@ msgstr "" msgid "chicken burrito bowl entree" msgid_plural "chicken burrito bowl entrees" msgstr[0] "блюдо ИРП — буррито с курицей" -msgstr[1] "блюдо ИРП — буррито с курицей" -msgstr[2] "блюдо ИРП — буррито с курицей" -msgstr[3] "блюдо ИРП — буррито с курицей" +msgstr[1] "блюда ИРП — буррито с курицей" +msgstr[2] "блюд ИРП — буррито с курицей" +msgstr[3] "блюда ИРП — буррито с курицей" #. ~ Description for chicken burrito bowl entree #: lang/json/COMESTIBLE_from_json.py @@ -47178,9 +49330,9 @@ msgstr "" msgid "maple sausage entree" msgid_plural "maple sausage entrees" msgstr[0] "блюдо ИРП — колбаса с кленовым сиропом" -msgstr[1] "блюдо ИРП — колбаса с кленовым сиропом" -msgstr[2] "блюдо ИРП — колбаса с кленовым сиропом" -msgstr[3] "блюдо ИРП — колбаса с кленовым сиропом" +msgstr[1] "блюда ИРП — колбаса с кленовым сиропом" +msgstr[2] "блюд ИРП — колбаса с кленовым сиропом" +msgstr[3] "блюда ИРП — колбаса с кленовым сиропом" #. ~ Description for maple sausage entree #: lang/json/COMESTIBLE_from_json.py @@ -47195,9 +49347,9 @@ msgstr "" msgid "ravioli entree" msgid_plural "ravioli entrees" msgstr[0] "блюдо ИРП — равиоли" -msgstr[1] "блюдо ИРП — равиоли" -msgstr[2] "блюдо ИРП — равиоли" -msgstr[3] "блюдо ИРП — равиоли" +msgstr[1] "блюда ИРП — равиоли" +msgstr[2] "блюд ИРП — равиоли" +msgstr[3] "блюда ИРП — равиоли" #. ~ Description for ravioli entree #: lang/json/COMESTIBLE_from_json.py @@ -47212,9 +49364,9 @@ msgstr "" msgid "pepper jack beef entree" msgid_plural "pepper jack beef entrees" msgstr[0] "блюдо ИРП — говядина с острым сыром" -msgstr[1] "блюдо ИРП — говядина с острым сыром" -msgstr[2] "блюдо ИРП — говядина с острым сыром" -msgstr[3] "блюдо ИРП — говядина с острым сыром" +msgstr[1] "блюда ИРП — говядина с острым сыром" +msgstr[2] "блюд ИРП — говядина с острым сыром" +msgstr[3] "блюда ИРП — говядина с острым сыром" #. ~ Description for pepper jack beef entree #: lang/json/COMESTIBLE_from_json.py @@ -47229,9 +49381,9 @@ msgstr "" msgid "hash browns & bacon entree" msgid_plural "hash browns & bacon entrees" msgstr[0] "блюдо ИРП — картофель с беконом" -msgstr[1] "блюдо ИРП — картофель с беконом" -msgstr[2] "блюдо ИРП — картофель с беконом" -msgstr[3] "блюдо ИРП — картофель с беконом" +msgstr[1] "блюда ИРП — картофель с беконом" +msgstr[2] "блюд ИРП — картофель с беконом" +msgstr[3] "блюда ИРП — картофель с беконом" #. ~ Description for hash browns & bacon entree #: lang/json/COMESTIBLE_from_json.py @@ -47246,9 +49398,9 @@ msgstr "" msgid "lemon pepper tuna entree" msgid_plural "lemon pepper tuna entrees" msgstr[0] "блюдо ИРП — тунец с лимонным перцем" -msgstr[1] "блюдо ИРП — тунец с лимонным перцем" -msgstr[2] "блюдо ИРП — тунец с лимонным перцем" -msgstr[3] "блюдо ИРП — тунец с лимонным перцем" +msgstr[1] "блюда ИРП — тунец с лимонным перцем" +msgstr[2] "блюд ИРП — тунец с лимонным перцем" +msgstr[3] "блюда ИРП — тунец с лимонным перцем" #. ~ Description for lemon pepper tuna entree #: lang/json/COMESTIBLE_from_json.py @@ -47263,9 +49415,9 @@ msgstr "" msgid "asian beef & vegetables entree" msgid_plural "asian beef & vegetables entrees" msgstr[0] "блюдо ИРП — говядина по-азиатски с овощами" -msgstr[1] "блюдо ИРП — говядина по-азиатски с овощами" -msgstr[2] "блюдо ИРП — говядина по-азиатски с овощами" -msgstr[3] "блюдо ИРП — говядина по-азиатски с овощами" +msgstr[1] "блюда ИРП — говядина по-азиатски с овощами" +msgstr[2] "блюд ИРП — говядина по-азиатски с овощами" +msgstr[3] "блюда ИРП — говядина по-азиатски с овощами" #. ~ Description for {'str': 'asian beef & vegetables entree'} #: lang/json/COMESTIBLE_from_json.py @@ -47281,9 +49433,9 @@ msgstr "" msgid "chicken pesto & pasta entree" msgid_plural "chicken pesto & pasta entrees" msgstr[0] "блюдо ИРП — паста с курицей соусом песто" -msgstr[1] "блюдо ИРП — паста с курицей соусом песто" -msgstr[2] "блюдо ИРП — паста с курицей соусом песто" -msgstr[3] "блюдо ИРП — паста с курицей соусом песто" +msgstr[1] "блюда ИРП — паста с курицей соусом песто" +msgstr[2] "блюд ИРП — паста с курицей соусом песто" +msgstr[3] "блюда ИРП — паста с курицей соусом песто" #. ~ Description for chicken pesto & pasta entree #: lang/json/COMESTIBLE_from_json.py @@ -47299,9 +49451,9 @@ msgstr "" msgid "southwest beef & beans entree" msgid_plural "southwest beef & beans entrees" msgstr[0] "блюдо ИРП — говядина по-юго-западному с бобами" -msgstr[1] "блюдо ИРП — говядина по-юго-западному с бобами" -msgstr[2] "блюдо ИРП — говядина по-юго-западному с бобами" -msgstr[3] "блюдо ИРП — говядина по-юго-западному с бобами" +msgstr[1] "блюда ИРП — говядина по-юго-западному с бобами" +msgstr[2] "блюд ИРП — говядина по-юго-западному с бобами" +msgstr[3] "блюда ИРП — говядина по-юго-западному с бобами" #. ~ Description for southwest beef & beans entree #: lang/json/COMESTIBLE_from_json.py @@ -47317,9 +49469,9 @@ msgstr "" msgid "frankfurters & beans entree" msgid_plural "frankfurters & beans entrees" msgstr[0] "блюдо ИРП — сосиски с бобами" -msgstr[1] "блюдо ИРП — сосиски с бобами" -msgstr[2] "блюдо ИРП — сосиски с бобами" -msgstr[3] "блюдо ИРП — сосиски с бобами" +msgstr[1] "блюда ИРП — сосиски с бобами" +msgstr[2] "блюд ИРП — сосиски с бобами" +msgstr[3] "блюда ИРП — сосиски с бобами" #. ~ Description for frankfurters & beans entree #: lang/json/COMESTIBLE_from_json.py @@ -47460,9 +49612,9 @@ msgstr[3] "мутагенная сыворотка" msgid "alpha serum" msgid_plural "alpha serum" msgstr[0] "сыворотка альфа" -msgstr[1] "сыворотки альфа" -msgstr[2] "сывороток альфа" -msgstr[3] "сыворотки альфа" +msgstr[1] "сыворотка альфа" +msgstr[2] "сыворотка альфа" +msgstr[3] "сыворотка альфа" #. ~ Description for {'str_sp': 'alpha serum'} #: lang/json/COMESTIBLE_from_json.py @@ -47842,10 +49994,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "alpha mutagen" msgid_plural "alpha mutagen" -msgstr[0] "мутаген альфы" -msgstr[1] "мутагена альфы" -msgstr[2] "мутагенов альфы" -msgstr[3] "мутагены альфы" +msgstr[0] "мутаген альфа" +msgstr[1] "мутаген альфа" +msgstr[2] "мутаген альфа" +msgstr[3] "мутаген альфа" #. ~ Description for {'str_sp': 'alpha mutagen'} #. ~ Description for chimera mutagen @@ -48072,7 +50224,7 @@ msgid_plural "misshapen fetuses" msgstr[0] "безобразный зародыш" msgstr[1] "безобразных зародыша" msgstr[2] "безобразных зародышей" -msgstr[3] "безобразный зародыш" +msgstr[3] "безобразные зародыши" #. ~ Description for {'str': 'misshapen fetus', 'str_pl': 'misshapen fetuses'} #: lang/json/COMESTIBLE_from_json.py @@ -48135,9 +50287,9 @@ msgstr "Горсть вкусных хрустящих орехов из сос msgid "junipers" msgid_plural "junipers" msgstr[0] "можжевельник" -msgstr[1] "можжевельника" -msgstr[2] "можжевельника" -msgstr[3] "можжевельники" +msgstr[1] "можжевельник" +msgstr[2] "можжевельник" +msgstr[3] "можжевельник" #. ~ Description for {'str_sp': 'junipers'} #: lang/json/COMESTIBLE_from_json.py @@ -48438,6 +50590,49 @@ msgstr[3] "амброзия из орехов гикори" msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." msgstr "Вкусная амброзия из орехов гикори. Напиток, достойный богов." +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter" +msgid_plural "peanut butters" +msgstr[0] "арахисовое масло" +msgstr[1] "арахисовое масло" +msgstr[2] "арахисовое масло" +msgstr[3] "арахисовое масло" + +#. ~ Description for peanut butter +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A brown goo that tastes very little like its namesake. It's not bad, but " +"it'll stick to the roof of your mouth." +msgstr "" +"Коричневая масса, вкус которой имеет мало общего с названием. Не так уж и " +"плохо, но прилипает к нёбу." + +#: lang/json/COMESTIBLE_from_json.py +msgid "imitation peanutbutter" +msgid_plural "imitation peanutbutters" +msgstr[0] "заменитель арахисового масла" +msgstr[1] "заменитель арахисового масла" +msgstr[2] "заменитель арахисового масла" +msgstr[3] "заменитель арахисового масла" + +#. ~ Description for imitation peanutbutter +#: lang/json/COMESTIBLE_from_json.py +msgid "A thick, nutty brown paste." +msgstr "Густая коричневая ореховая паста." + +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter spread" +msgid_plural "peanut butter spreads" +msgstr[0] "арахисовое масло" +msgstr[1] "арахисовое масло" +msgstr[2] "арахисовое масло" +msgstr[3] "арахисовое масло" + +#. ~ Description for peanut butter spread +#: lang/json/COMESTIBLE_from_json.py +msgid "Processed peanut butter spread.." +msgstr "Переработанное арахисовое масло." + #: lang/json/COMESTIBLE_from_json.py msgid "acorns" msgid_plural "acorns" @@ -48452,8 +50647,8 @@ msgid "" "A handful of acorns, still in their shells. Squirrels like them, but " "they're not very good for you to eat in this state." msgstr "" -"Горстка жёлудей, ещё в скорлупе. Белки их любят, но вам не желательно есть " -"их в этом состоянии." +"Горстка жёлудей, ещё в скорлупе. Белки их любят, но вам лучше не есть их в " +"таком виде." #: lang/json/COMESTIBLE_from_json.py msgid "roasted acorns" @@ -48503,9 +50698,9 @@ msgstr "Хотя это не совсем настоящее фуа-гра, ва msgid "liver & onions" msgid_plural "liver & onions" msgstr[0] "печень с луком" -msgstr[1] "печени с луком" -msgstr[2] "печени с луком" -msgstr[3] "печени с луком" +msgstr[1] "печень с луком" +msgstr[2] "печень с луком" +msgstr[3] "печень с луком" #. ~ Description for {'str_sp': 'liver & onions'} #: lang/json/COMESTIBLE_from_json.py @@ -48558,7 +50753,7 @@ msgid "" "sounds." msgstr "" "Желудок, нарезанный и потушённый в бульоне в течение часа. На вкус лучше чем" -" звучит." +" кажется." #: lang/json/COMESTIBLE_from_json.py msgid "deep-fried tripe" @@ -48572,9 +50767,9 @@ msgstr[3] "потроха во фритюре" msgid "leverpostej" msgid_plural "leverpostej" msgstr[0] "паштет из печени" -msgstr[1] "паштета из печени" -msgstr[2] "паштетов из печени" -msgstr[3] "паштеты из печени" +msgstr[1] "паштет из печени" +msgstr[2] "паштет из печени" +msgstr[3] "паштет из печени" #. ~ Description for {'str_sp': 'leverpostej'} #: lang/json/COMESTIBLE_from_json.py @@ -48777,15 +50972,15 @@ msgstr[3] "маточное молочко пчёл" #. ~ Description for {'str': 'royal jelly', 'str_pl': 'royal jellies'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A translucent hexagonal chunk of wax, filled with dense, milky jelly. " -"Though some hold it as a panacea, it doesn't have any medical benefit. " -"Still, it is delicious, and rich with the most beneficial substances the " +"A translucent hexagonal chunk of wax, filled with dense, milky, bitter and " +"acidic-tasting jelly. Though some hold it as a panacea, it doesn't have any" +" medical benefit. Still it is rich with the most beneficial substances the " "hive can produce." msgstr "" "Полупрозрачный шестиугольный кусок воска, наполненный плотным пчелиным " -"молочком. Хотя многими считается панацеей, на самом деле не имеет никаких " -"особых лечащих свойств. Тем не менее, это вкусно и полно самых полезных " -"веществ, которые может запасти улей." +"молочком с горьким и очень кислым вкусом. Хотя многими считается панацеей, " +"на самом деле не имеет никаких особых лечащих свойств. Тем не менее, оно " +"полно самых полезных веществ, которые может запасти улей." #: lang/json/COMESTIBLE_from_json.py msgid "marloss berry" @@ -48793,7 +50988,7 @@ msgid_plural "marloss berries" msgstr[0] "ягода марло" msgstr[1] "ягоды марло" msgstr[2] "ягод марло" -msgstr[3] "ягода марло" +msgstr[3] "ягоды марло" #. ~ Description for {'str': 'marloss berry', 'str_pl': 'marloss berries'} #: lang/json/COMESTIBLE_from_json.py @@ -49086,6 +51281,19 @@ msgstr "" "Хит от Сядь-и-поешь, Вкусная Еда™ из настоящих продуктов для еды со 100% " "гарантией съедобности!" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "Правильная закуска от Сядь-и-поешь™" +msgstr[1] "Правильная закуска от Сядь-и-поешь™" +msgstr[2] "Правильная закуска от Сядь-и-поешь™" +msgstr[3] "Правильная закуска от Сядь-и-поешь™" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "Настоящая пища, которую можно носить в кармане!" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -49289,6 +51497,40 @@ msgstr[3] "нектар" msgid "Some nectar. Seeing this item is a bug." msgstr "Нектар. Если вы видите это — это баг." +#: lang/json/COMESTIBLE_from_json.py +msgid "tea bag" +msgid_plural "tea bags" +msgstr[0] "чайный пакетик" +msgstr[1] "чайных пакетика" +msgstr[2] "чайных пакетиков" +msgstr[3] "чайные пакетики" + +#. ~ Description for {'str': 'tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with tea leafs inside. Put it into boiling water to get your " +"cup of tea." +msgstr "" +"Бумажный пакетик с чайными листьями. Залейте кипятком, чтобы приготовить " +"чашку чая." + +#: lang/json/COMESTIBLE_from_json.py +msgid "herbal tea bag" +msgid_plural "herbal tea bags" +msgstr[0] "пакетик травяного чая" +msgstr[1] "пакетика травяного чая" +msgstr[2] "пакетиков травяного чая" +msgstr[3] "пакетики травяного чая" + +#. ~ Description for {'str': 'herbal tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with dried wild herbs inside. Put it into boiling water to " +"make some healthy warm drink." +msgstr "" +"Бумажный пакетик с сушеными травами. Залейте кипятком, чтобы приготовить " +"чашку полезного согревающего напитка." + #: lang/json/COMESTIBLE_from_json.py msgid "protein drink" msgid_plural "protein drinks" @@ -49300,12 +51542,22 @@ msgstr[3] "протеиновый напиток" #. ~ Conditional name for protein drink when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" -msgid_plural "soylent green drinks" +msgid_plural "soylent green drink" msgstr[0] "напиток из зелёного сойлента" -msgstr[1] "напитка из зелёного сойлента" -msgstr[2] "напитков из зелёного сойлента" +msgstr[1] "напиток из зелёного сойлента" +msgstr[2] "напиток из зелёного сойлента" msgstr[3] "напиток из зелёного сойлента" +#. ~ Conditional name for protein drink when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green drink" +msgid_plural "sapient green drink" +msgstr[0] "напиток из зеленоватого сойлента" +msgstr[1] "напиток из зеленоватого сойлента" +msgstr[2] "напиток из зеленоватого сойлента" +msgstr[3] "напиток из зеленоватого сойлента" + #. ~ Conditional name for protein drink when COMPONENT_ID matches mutant #. ~ Conditional name for {'str_sp': 'protein powder'} when COMPONENT_ID #. matches mutant @@ -49317,9 +51569,9 @@ msgstr[3] "напиток из зелёного сойлента" msgid "perturbing %s" msgid_plural "perturbing %s" msgstr[0] "возмутительный %s" -msgstr[1] "возмутительных %s" -msgstr[2] "возмутительных %s" -msgstr[3] "возмутительные %s" +msgstr[1] "возмутительный %s" +msgstr[2] "возмутительный %s" +msgstr[3] "возмутительный %s" #. ~ Description for protein drink #: lang/json/COMESTIBLE_from_json.py @@ -49348,6 +51600,16 @@ msgstr[1] "сойлентовый зеленый порошок" msgstr[2] "сойлентовый зеленый порошок" msgstr[3] "сойлентовый зеленый порошок" +#. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green powder" +msgid_plural "sapient green powder" +msgstr[0] "зеленый сойлент" +msgstr[1] "зеленый сойлент" +msgstr[2] "зеленый сойлент" +msgstr[3] "зеленый сойлент" + #. ~ Description for {'str_sp': 'protein powder'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -49368,23 +51630,24 @@ msgstr[3] "белковые рационы" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the" -" product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you" -" hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable" +" to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" -"SoyPelusa провела очень успешную краудфандинговую кампанию для этого " -"протеинового батончика. Человек может жить на одних таких батончиках, " -"употребляя их три раза в день, вероятно, неограниченно долго. После того, " -"как поддержавшие проект получили свой продукт, был обнаружен один " -"недостаток: большинство потребителей предпочли бы голодать чем терпеть этот " -"вкус. Продукт на складах остался не проданным, поскольку компания " -"обанкротилась, предоставив МЧС прекрасную возможность выкупить эти батончики" -" и снабдить ими эвакуационные убежища. Теперь вы держите в руках частичку " -"этой знаменитой краудфандинговой истории. Как захватывающе." +"SoyPelusa провела очень успешную краудфандинговую кампанию для их фирменного" +" протеинового батончика, названного «ДайЗум». Человек может жить на одних " +"таких батончиках, употребляя их три раза в день, вероятно, неограниченно " +"долго. После того, как поддержавшие проект получили свой продукт, был " +"обнаружен один недостаток: большинство потребителей предпочли бы голодать " +"чем терпеть этот вкус. Продукт на складах остался не проданным, поскольку " +"компания обанкротилась, предоставив МЧС прекрасную возможность выкупить эти " +"батончики и снабдить ими эвакуационные убежища. Теперь вы держите в руках " +"частичку этой знаменитой краудфандинговой истории. Как захватывающе." #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" @@ -49397,11 +51660,21 @@ msgstr[3] "протеиновый коктейль" #. ~ Conditional name for protein shake when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgid_plural "soylent green shakes" +msgid_plural "soylent green shake" msgstr[0] "коктейль из зелёного сойлента" -msgstr[1] "коктейля из зелёного сойлента" -msgstr[2] "коктейлей из зелёного сойлента" -msgstr[3] "коктейли из зелёного сойлента" +msgstr[1] "коктейль из зелёного сойлента" +msgstr[2] "коктейль из зелёного сойлента" +msgstr[3] "коктейль из зелёного сойлента" + +#. ~ Conditional name for protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green shake" +msgid_plural "sapient green shake" +msgstr[0] "коктейль из зеленоватого сойлента" +msgstr[1] "коктейль из зеленоватого сойлента" +msgstr[2] "коктейль из зеленоватого сойлента" +msgstr[3] "коктейль из зеленоватого сойлента" #. ~ Description for protein shake #: lang/json/COMESTIBLE_from_json.py @@ -49424,12 +51697,22 @@ msgstr[3] "обогащённый протеиновый коктейль" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgid_plural "fortified soylent green shakes" +msgid_plural "fortified soylent green shake" msgstr[0] "обогащённый коктейль из зелёного сойлента" -msgstr[1] "обогащённых коктейля из зелёного сойлента" -msgstr[2] "обогащённых коктейлей из зелёного сойлента" +msgstr[1] "обогащённый коктейль из зелёного сойлента" +msgstr[2] "обогащённый коктейль из зелёного сойлента" msgstr[3] "обогащённый коктейль из зелёного сойлента" +#. ~ Conditional name for fortified protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "fortified sapient green shake" +msgid_plural "fortified sapient green shake" +msgstr[0] "обогащённый коктейль из зеловатого сойлента" +msgstr[1] "обогащённый коктейль из зеловатого сойлента" +msgstr[2] "обогащённый коктейль из зеловатого сойлента" +msgstr[3] "обогащённый коктейль из зеловатого сойлента" + #. ~ Description for fortified protein shake #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -49499,22 +51782,24 @@ msgstr "Очень кислый цитрус. Можно съесть, если msgid "blueberries" msgid_plural "blueberries" msgstr[0] "голубика" -msgstr[1] "голубики" -msgstr[2] "голубик" -msgstr[3] "голубики" +msgstr[1] "голубика" +msgstr[2] "голубика" +msgstr[3] "голубика" #. ~ Description for {'str_sp': 'blueberries'} #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." -msgstr "Она голубого цвета, но это не значит, что она в печали." +msgstr "" +"Ягоды голубого зрения, полезны для зрения, если вам хочется получше видеть " +"разруху вокруг." #: lang/json/COMESTIBLE_from_json.py msgid "strawberries" msgid_plural "strawberries" msgstr[0] "клубника" -msgstr[1] "клубники" -msgstr[2] "клубничек" -msgstr[3] "клубники" +msgstr[1] "клубника" +msgstr[2] "клубника" +msgstr[3] "клубника" #. ~ Description for {'str_sp': 'strawberries'} #: lang/json/COMESTIBLE_from_json.py @@ -49525,9 +51810,9 @@ msgstr "Сладкая сочная ягода, часто встречаетс msgid "cranberries" msgid_plural "cranberries" msgstr[0] "клюква" -msgstr[1] "клюквы" -msgstr[2] "клюкв" -msgstr[3] "клюквы" +msgstr[1] "клюква" +msgstr[2] "клюква" +msgstr[3] "клюква" #. ~ Description for {'str_sp': 'cranberries'} #: lang/json/COMESTIBLE_from_json.py @@ -49539,8 +51824,8 @@ msgid "raspberries" msgid_plural "raspberries" msgstr[0] "малина" msgstr[1] "малина" -msgstr[2] "малин" -msgstr[3] "малины" +msgstr[2] "малина" +msgstr[3] "малина" #. ~ Description for {'str_sp': 'raspberries'} #: lang/json/COMESTIBLE_from_json.py @@ -49551,9 +51836,9 @@ msgstr "Сладкая красная ягода." msgid "huckleberries" msgid_plural "huckleberries" msgstr[0] "люссакия" -msgstr[1] "люссакии" -msgstr[2] "люссакий" -msgstr[3] "люссакии" +msgstr[1] "люссакия" +msgstr[2] "люссакия" +msgstr[3] "люссакия" #. ~ Description for {'str_sp': 'huckleberries'} #: lang/json/COMESTIBLE_from_json.py @@ -49564,9 +51849,9 @@ msgstr "Люссакию часто путают с черникой." msgid "mulberries" msgid_plural "mulberries" msgstr[0] "шелковица" -msgstr[1] "шелковицы" -msgstr[2] "шелковиц" -msgstr[3] "шелковицы" +msgstr[1] "шелковица" +msgstr[2] "шелковица" +msgstr[3] "шелковица" #. ~ Description for {'str_sp': 'mulberries'} #: lang/json/COMESTIBLE_from_json.py @@ -49582,9 +51867,9 @@ msgstr "" msgid "elderberries" msgid_plural "elderberries" msgstr[0] "бузина" -msgstr[1] "бузины" -msgstr[2] "бузин" -msgstr[3] "бузины" +msgstr[1] "бузина" +msgstr[2] "бузина" +msgstr[3] "бузина" #. ~ Description for {'str_sp': 'elderberries'} #: lang/json/COMESTIBLE_from_json.py @@ -49597,9 +51882,9 @@ msgstr "" msgid "rose hips" msgid_plural "rose hips" msgstr[0] "шиповник" -msgstr[1] "шиповника" -msgstr[2] "шиповников" -msgstr[3] "шиповники" +msgstr[1] "шиповник" +msgstr[2] "шиповник" +msgstr[3] "шиповник" #. ~ Description for {'str_sp': 'rose hips'} #: lang/json/COMESTIBLE_from_json.py @@ -49634,7 +51919,7 @@ msgstr[3] "груши" #. ~ Description for pear #: lang/json/COMESTIBLE_from_json.py msgid "A juicy, bell-shaped pear. Yum!" -msgstr "Сочная колоколообразная груша. Вкусно!" +msgstr "Сочная конусообразная груша. Вкусно!" #: lang/json/COMESTIBLE_from_json.py msgid "grapefruit" @@ -49653,9 +51938,9 @@ msgstr "Цитрус, вкус которого варьируется от ки msgid "cherries" msgid_plural "cherries" msgstr[0] "вишня" -msgstr[1] "вишни" -msgstr[2] "вишень" -msgstr[3] "вишни" +msgstr[1] "вишня" +msgstr[2] "вишня" +msgstr[3] "вишня" #. ~ Description for {'str_sp': 'cherries'} #: lang/json/COMESTIBLE_from_json.py @@ -49680,9 +51965,9 @@ msgstr "Несколько крупных фиолетовых слив. Пол msgid "grapes" msgid_plural "grapes" msgstr[0] "виноград" -msgstr[1] "винограда" -msgstr[2] "виноградин" -msgstr[3] "виноградины" +msgstr[1] "виноград" +msgstr[2] "виноград" +msgstr[3] "виноград" #. ~ Description for {'str_sp': 'grapes'} #: lang/json/COMESTIBLE_from_json.py @@ -49721,7 +52006,7 @@ msgid_plural "peaches" msgstr[0] "персик" msgstr[1] "персика" msgstr[2] "персиков" -msgstr[3] "персик" +msgstr[3] "персики" #. ~ Description for {'str': 'peach', 'str_pl': 'peaches'} #: lang/json/COMESTIBLE_from_json.py @@ -49739,7 +52024,7 @@ msgstr[3] "арбузы" #. ~ Description for watermelon #: lang/json/COMESTIBLE_from_json.py msgid "A fruit, bigger than your head. It is very juicy!" -msgstr "Ягода, которая больше твоей головы. Очень сочная!" +msgstr "Ягода, размер которой больше твоей головы. Очень сочная!" #: lang/json/COMESTIBLE_from_json.py msgid "melon" @@ -49759,8 +52044,8 @@ msgid "blackberries" msgid_plural "blackberries" msgstr[0] "ежевика" msgstr[1] "ежевики" -msgstr[2] "ежевик" -msgstr[3] "ежевики" +msgstr[2] "ежевики" +msgstr[3] "ежевика" #. ~ Description for {'str_sp': 'blackberries'} #: lang/json/COMESTIBLE_from_json.py @@ -50051,7 +52336,7 @@ msgid_plural "chili peppers" msgstr[0] "перец чили" msgstr[1] "перца чили" msgstr[2] "перцев чил" -msgstr[3] "перцы чил" +msgstr[3] "перцы чили" #. ~ Description for chili pepper #: lang/json/COMESTIBLE_from_json.py @@ -50176,7 +52461,7 @@ msgid_plural "hops flowers" msgstr[0] "цветок хмеля" msgstr[1] "цветка хмеля" msgstr[2] "цветков хмеля" -msgstr[3] "цветок хмеля" +msgstr[3] "цветки хмеля" #. ~ Description for {'str': 'hops flower'} #: lang/json/COMESTIBLE_from_json.py @@ -50412,7 +52697,7 @@ msgid_plural "tomatoes" msgstr[0] "томат" msgstr[1] "томата" msgstr[2] "томатов" -msgstr[3] "томат" +msgstr[3] "томаты" #. ~ Description for {'str': 'tomato', 'str_pl': 'tomatoes'} #: lang/json/COMESTIBLE_from_json.py @@ -50478,7 +52763,7 @@ msgid_plural "zucchinis" msgstr[0] "кабачок" msgstr[1] "кабачка" msgstr[2] "кабачки" -msgstr[3] "кабачков" +msgstr[3] "кабачки" #. ~ Description for zucchini #: lang/json/COMESTIBLE_from_json.py @@ -50490,8 +52775,8 @@ msgid "canola" msgid_plural "canolas" msgstr[0] "канола" msgstr[1] "канолы" -msgstr[2] "канол" -msgstr[3] "канолы" +msgstr[2] "канолы" +msgstr[3] "канола" #. ~ Description for canola #: lang/json/COMESTIBLE_from_json.py @@ -50545,13 +52830,26 @@ msgstr "" "Горсть молодых побегов папоротника, свёрнутых спиралью. Очень вкусные, если " "их приготовить, но слегка ядовитые в сыром виде." +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "болгарский перец" +msgstr[1] "болгарских перца" +msgstr[2] "болгарских перцев" +msgstr[3] "болгарские перцы" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "Зеленый болгарский перец. Можно приготовить." + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" msgstr[0] "сэндвич с плавленым сыром" msgstr[1] "сэндвича с плавленым сыром" msgstr[2] "сэндвичей с плавленым сыром" -msgstr[3] "сэндвич с плавленым сыром" +msgstr[3] "сэндвичи с плавленым сыром" #. ~ Description for {'str': 'grilled cheese sandwich', 'str_pl': 'grilled #. cheese sandwiches'} @@ -50569,17 +52867,17 @@ msgid_plural "deluxe sandwiches" msgstr[0] "шикарный сэндвич" msgstr[1] "шикарных сэндвича" msgstr[2] "шикарных сэндвичей" -msgstr[3] "шикарный сэндвич" +msgstr[3] "шикарные сэндвичи" #. ~ Conditional name for {'str': 'deluxe sandwich', 'str_pl': 'deluxe #. sandwiches'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py msgid "\"deluxe\" sandwich" msgid_plural "\"deluxe\" sandwiches" -msgstr[0] "шикарный сэндвич" -msgstr[1] "шикарных сэндвича" -msgstr[2] "шикарных сэндвичей" -msgstr[3] "шикарные сэндвичи" +msgstr[0] "«шикарный» сэндвич" +msgstr[1] "«шикарных» сэндвича" +msgstr[2] "«шикарных» сэндвичей" +msgstr[3] "«шикарные» сэндвичи" #. ~ Description for {'str': 'deluxe sandwich', 'str_pl': 'deluxe sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50594,7 +52892,7 @@ msgid_plural "cucumber sandwiches" msgstr[0] "сэндвич с огурцом" msgstr[1] "сэндвича с огурцом" msgstr[2] "сэндвичей с огурцом" -msgstr[3] "сэндвич с огурцом" +msgstr[3] "сэндвичи с огурцом" #. ~ Description for {'str': 'cucumber sandwich', 'str_pl': 'cucumber #. sandwiches'} @@ -50606,10 +52904,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cheese sandwich" msgid_plural "cheese sandwiches" -msgstr[0] "бутерброд с сыром" -msgstr[1] "бутерброда с сыром" -msgstr[2] "бутербродов с сыром" -msgstr[3] "бутерброд с сыром" +msgstr[0] "сендвич с сыром" +msgstr[1] "сендвича с сыром" +msgstr[2] "сендвичей с сыром" +msgstr[3] "сендвичи с сыром" #. ~ Description for {'str': 'cheese sandwich', 'str_pl': 'cheese sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50622,7 +52920,7 @@ msgid_plural "jam sandwiches" msgstr[0] "сэндвич с джемом" msgstr[1] "сэндвича с джемом" msgstr[2] "сэндвичей с джемом" -msgstr[3] "сэндвич с джемом" +msgstr[3] "сэндвичи с джемом" #. ~ Description for {'str': 'jam sandwich', 'str_pl': 'jam sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50653,7 +52951,7 @@ msgid_plural "honey sandwiches" msgstr[0] "медовый сэндвич" msgstr[1] "медовых сэндвича" msgstr[2] "медовых сэндвичей" -msgstr[3] "медовый сэндвич" +msgstr[3] "медовые сэндвичи" #. ~ Description for {'str': 'honey sandwich', 'str_pl': 'honey sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50666,7 +52964,7 @@ msgid_plural "boring sandwiches" msgstr[0] "«скучный» сэндвич" msgstr[1] "«скучных» сэндвича" msgstr[2] "«скучных» сэндвичей" -msgstr[3] "«скучный» сэндвич" +msgstr[3] "«скучные» сэндвичи" #. ~ Description for {'str': 'boring sandwich', 'str_pl': 'boring sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50682,7 +52980,7 @@ msgid_plural "vegetable sandwiches" msgstr[0] "овощной сэндвич" msgstr[1] "овощных сэндвича" msgstr[2] "овощных сэндвичей" -msgstr[3] "овощной сэндвич" +msgstr[3] "овощные сэндвичи" #. ~ Description for {'str': 'vegetable sandwich', 'str_pl': 'vegetable #. sandwiches'} @@ -50696,7 +52994,7 @@ msgid_plural "meat sandwiches" msgstr[0] "мясной сэндвич" msgstr[1] "мясных сэндвича" msgstr[2] "мясных сэндвичей" -msgstr[3] "мясной сэндвич" +msgstr[3] "мясные сэндвичи" #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when FLAG matches CANNIBALISM @@ -50706,7 +53004,17 @@ msgid_plural "slob sandwiches" msgstr[0] "«ленивый» сэндвич" msgstr[1] "«ленивых» сэндвича" msgstr[2] "«ленивых» сэндвичей" -msgstr[3] "«ленивый» сэндвич" +msgstr[3] "«ленивые» сэндвичи" + +#. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat +#. sandwiches'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "satyr sandwich" +msgid_plural "satyr sandwiches" +msgstr[0] "сэндвич из сатира" +msgstr[1] "сэндвича из сатира" +msgstr[2] "сэндвичей из сатира" +msgstr[3] "сэндвичи из сатира" #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when COMPONENT_ID matches mutant @@ -50731,7 +53039,7 @@ msgid_plural "peanut butter sandwiches" msgstr[0] "сэндвич с арахисовым маслом" msgstr[1] "сэндвича с арахисовым маслом" msgstr[2] "сэндвичей с арахисовым маслом" -msgstr[3] "сэндвич с арахисовым маслом" +msgstr[3] "сэндвичи с арахисовым маслом" #. ~ Description for {'str': 'peanut butter sandwich', 'str_pl': 'peanut #. butter sandwiches'} @@ -50746,10 +53054,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "PB&J sandwich" msgid_plural "PB&J sandwiches" -msgstr[0] "бутерброд с арахисовым маслом и желе" -msgstr[1] "бутерброда с арахисовым маслом и желе" -msgstr[2] "бутербродов с арахисовым маслом и желе" -msgstr[3] "бутерброд с арахисовым маслом и желе" +msgstr[0] "сендвич с арахисовым маслом и желе" +msgstr[1] "сендвича с арахисовым маслом и желе" +msgstr[2] "сендвичей с арахисовым маслом и желе" +msgstr[3] "сендвичи с арахисовым маслом и желе" #. ~ Description for {'str': 'PB&J sandwich', 'str_pl': 'PB&J sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50763,10 +53071,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "PB&H sandwich" msgid_plural "PB&H sandwiches" -msgstr[0] "бутерброд с арахисовым маслом и мёдом" -msgstr[1] "бутерброда с арахисовым маслом и мёдом" -msgstr[2] "бутербродов с арахисовым маслом и мёдом" -msgstr[3] "бутерброд с арахисовым маслом и мёдом" +msgstr[0] "сендвич с арахисовым маслом и мёдом" +msgstr[1] "сендвича с арахисовым маслом и мёдом" +msgstr[2] "сендвичей с арахисовым маслом и мёдом" +msgstr[3] "сендвичи с арахисовым маслом и мёдом" #. ~ Description for {'str': 'PB&H sandwich', 'str_pl': 'PB&H sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50780,10 +53088,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "PB&M sandwich" msgid_plural "PB&M sandwiches" -msgstr[0] "бутерброд с арахисовым маслом и кленовым сиропом" -msgstr[1] "бутерброда с арахисовым маслом и кленовым сиропом" -msgstr[2] "бутербродов с арахисовым маслом и кленовым сиропом" -msgstr[3] "бутерброд с арахисовым маслом и кленовым сиропом" +msgstr[0] "сендвич с арахисовым маслом и кленовым сиропом" +msgstr[1] "сендвича с арахисовым маслом и кленовым сиропом" +msgstr[2] "сендвичей с арахисовым маслом и кленовым сиропом" +msgstr[3] "сендвичи с арахисовым маслом и кленовым сиропом" #. ~ Description for {'str': 'PB&M sandwich', 'str_pl': 'PB&M sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50800,7 +53108,7 @@ msgid_plural "fish sandwiches" msgstr[0] "рыбный сэндвич" msgstr[1] "рыбных сэндвича" msgstr[2] "рыбных сэндвичей" -msgstr[3] "рыбный сэндвич" +msgstr[3] "рыбные сэндвичи" #. ~ Description for {'str': 'fish sandwich', 'str_pl': 'fish sandwiches'} #: lang/json/COMESTIBLE_from_json.py @@ -50853,10 +53161,10 @@ msgstr[3] "семена плодов" #: lang/json/COMESTIBLE_from_json.py msgid "mushroom spores" msgid_plural "mushroom spores" -msgstr[0] "грибная спора" -msgstr[1] "грибных споры" +msgstr[0] "грибные споры" +msgstr[1] "грибных спор" msgstr[2] "грибных спор" -msgstr[3] "грибная спора" +msgstr[3] "грибные споры" #. ~ Description for {'str_sp': 'mushroom spores'} #: lang/json/COMESTIBLE_from_json.py @@ -50869,7 +53177,7 @@ msgid_plural "hop rhizomes" msgstr[0] "корневище хмеля" msgstr[1] "корневища хмеля" msgstr[2] "корневищ хмеля" -msgstr[3] "корневище хмеля" +msgstr[3] "корневища хмеля" #. ~ Description for {'str_sp': 'hop rhizomes'} #: lang/json/COMESTIBLE_from_json.py @@ -51052,7 +53360,7 @@ msgid_plural "roses" msgstr[0] "роза" msgstr[1] "розы" msgstr[2] "роз" -msgstr[3] "роза" +msgstr[3] "розы" #: lang/json/COMESTIBLE_from_json.py msgid "tobacco seeds" @@ -51246,7 +53554,7 @@ msgid_plural "dahlias" msgstr[0] "георгин" msgstr[1] "георгина" msgstr[2] "георгин" -msgstr[3] "георгин" +msgstr[3] "георгины" #: lang/json/COMESTIBLE_from_json.py msgid "salsify seeds" @@ -51396,7 +53704,7 @@ msgid_plural "seed potatoes" msgstr[0] "семя картошки" msgstr[1] "семена картошки" msgstr[2] "семян картошки" -msgstr[3] "семя картошки" +msgstr[3] "семена картошки" #. ~ Description for {'str': 'seed potato', 'str_pl': 'seed potatoes'} #: lang/json/COMESTIBLE_from_json.py @@ -51426,7 +53734,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cannabis" -msgstr "каннабис" +msgstr "конопля" #: lang/json/COMESTIBLE_from_json.py msgid "Marloss seed" @@ -51548,7 +53856,7 @@ msgstr[3] "семена подсолнечника" #. ~ Description for {'str_sp': 'sunflower seeds'} #: lang/json/COMESTIBLE_from_json.py msgid "Some raw sunflower seeds. Could be pressed into oil." -msgstr "Несколько семян подсолнечника. Из них можно сделать масло." +msgstr "Несколько семян подсолнечника. Из них можно выжать масло." #: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py #: lang/json/furniture_from_json.py @@ -51862,6 +54170,27 @@ msgstr "Немного семян ромашки." msgid "chamomile" msgstr "ромашка" +#: lang/json/COMESTIBLE_from_json.py +msgid "spurge seeds" +msgid_plural "spurge seeds" +msgstr[0] "семена молочая" +msgstr[1] "семена молочая" +msgstr[2] "семена молочая" +msgstr[3] "семена молочая" + +#. ~ Description for {'str_sp': 'spurge seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some spurge seeds." +msgstr "Немного семян молочая." + +#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py +msgid "spurge" +msgid_plural "spurges" +msgstr[0] "молочай" +msgstr[1] "молочая" +msgstr[2] "молочаев" +msgstr[3] "молочай" + #: lang/json/COMESTIBLE_from_json.py msgid "popcorn seeds" msgid_plural "popcorn seeds" @@ -51901,6 +54230,19 @@ msgstr[3] "семена горчицы" msgid "Some mustard seeds. Could be ground into mustard powder." msgstr "Немного горчичных зёрен, можно размолоть в горчичный порошок." +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "семена болгарского перца" +msgstr[1] "семена болгарского перца" +msgstr[2] "семена болгарского перца" +msgstr[3] "семена болгарского перца" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "Несколько семян болгарского перца." + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -51922,6 +54264,16 @@ msgstr[1] "костный бульон" msgstr[2] "костный бульон" msgstr[3] "костный бульон" +#. ~ Conditional name for bone broth when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "demihuman %s" +msgid_plural "demihuman %s" +msgstr[0] "%s из получеловека" +msgstr[1] "%s из получеловека" +msgstr[2] "%s из получеловека" +msgstr[3] "%s из получеловека" + #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." @@ -51951,11 +54303,20 @@ msgstr[3] "мясной суп" #. ~ Conditional name for meat soup when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgid_plural "sap soups" -msgstr[0] "суп «из дурака»" -msgstr[1] "супа «из дурака»" -msgstr[2] "супов «из дурака»" -msgstr[3] "супы «из дурака»" +msgid_plural "sap soup" +msgstr[0] "суп из «дурака»" +msgstr[1] "суп из «дурака»" +msgstr[2] "суп из «дурака»" +msgstr[3] "суп из «дурака»" + +#. ~ Conditional name for meat soup when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "goblin soup" +msgid_plural "goblin soup" +msgstr[0] "суп из гоблина" +msgstr[1] "суп из гоблина" +msgstr[2] "суп из гоблина" +msgstr[3] "суп из гоблина" #. ~ Description for meat soup #: lang/json/COMESTIBLE_from_json.py @@ -52024,9 +54385,9 @@ msgstr[3] "солянка" msgid "Mirkwood soup" msgid_plural "Mirkwood soups" msgstr[0] "суп из лихолесья" -msgstr[1] "супа из лихолесья" -msgstr[2] "супов из лихолесья" -msgstr[3] "супы из лихолесья" +msgstr[1] "суп из лихолесья" +msgstr[2] "суп из лихолесья" +msgstr[3] "суп из лихолесья" #. ~ Description for woods soup #: lang/json/COMESTIBLE_from_json.py @@ -52248,7 +54609,7 @@ msgid "" msgstr "" "Нонпарель, посыпка, сахарная крошка — разноцветные шарики, палочки и хлопья " "сахара с крахмалом для украшения мягких кондитерских изделий. Как и сахар, " -"вредны для зубов и не очень вкусные сами по себе." +"вредна для зубов и не очень вкусная сама по себе." #: lang/json/COMESTIBLE_from_json.py msgid "wild herbs" @@ -52262,10 +54623,10 @@ msgstr[3] "дикие травы" #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " -"purslane, fireweed, and burdock." +"purslane, and fireweed." msgstr "" "Вкусный сбор диких трав, включающий в себя фиалку, сассафрас, мяту, клевер, " -"портулак, кипрею и лопух." +"портулак и кипрею." #: lang/json/COMESTIBLE_from_json.py msgid "soy sauce" @@ -52298,13 +54659,30 @@ msgstr[3] "горчичный порошок" msgid "A fragnant yellow powder. Not edible in this form." msgstr "Пахучий желтый порошок. В данной форме не съедобен." +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "искусственный подсластитель" +msgstr[1] "искусственный подсластитель" +msgstr[2] "искусственный подсластитель" +msgstr[3] "искусственный подсластитель" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "" +"Сладкий сахар? Нет, горьковато-сладкий искусственный подсластитель. Нет " +"калорий - нет проблем." + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" -msgstr[0] "приготовленный рогоз" -msgstr[1] "приготовленный рогоз" -msgstr[2] "приготовленный рогоз" -msgstr[3] "приготовленный рогоз" +msgstr[0] "приготовленный стебель рогоза" +msgstr[1] "приготовленных стебля рогоза" +msgstr[2] "приготовленных стеблей рогоза" +msgstr[3] "приготовленные стебли рогоза" #. ~ Description for {'str': 'cooked cattail stalk'} #: lang/json/COMESTIBLE_from_json.py @@ -52329,7 +54707,7 @@ msgid "" "Sticky, gooey carbohydrate paste extracted from plants. Spoils rather " "quickly if not prepared for storage." msgstr "" -"Липкая клейкая углеводная паста, извлечённая из растений. Довольно быстро " +"Липкая клейкая углеводная масса, извлечённая из растений. Довольно быстро " "портится, если не подготовлена для хранения." #: lang/json/COMESTIBLE_from_json.py @@ -52705,8 +55083,8 @@ msgid "" "This mushy pile of vegetable matter was boiled and canned in an earlier " "life. Better eat it before it oozes through your fingers." msgstr "" -"Эта бесформенная овощная масса была сварена и законсервирована ещё в раннем " -"возрасте. Лучше съесть сейчас, пока она не начала вытекать сквозь пальцы." +"Эта бесформенная овощная масса была сварена и законсервирована ранее. Лучше " +"съесть сейчас, пока она не начала вытекать сквозь пальцы." #: lang/json/COMESTIBLE_from_json.py msgid "salted veggy chunk" @@ -53025,21 +55403,20 @@ msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "Побеги папоротника, пассерованные в жире. Нежные и вкусные." #: lang/json/COMESTIBLE_from_json.py -msgid "wheat cereal" -msgid_plural "wheat cereals" -msgstr[0] "пшеничные хлопья" -msgstr[1] "пшеничные хлопья" -msgstr[2] "пшеничные хлопья" -msgstr[3] "пшеничные хлопья" +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" +msgstr[0] "приготовленный болгарский перец" +msgstr[1] "приготовленных болгарских перца" +msgstr[2] "приготовленных болгарских перцев" +msgstr[3] "приготовленные болгарские перцы" -#. ~ Description for wheat cereal +#. ~ Description for {'str': 'cooked bell pepper'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " -"your heart." +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds" +" are removed." msgstr "" -"Цельнозерновая пшеничная крупа. Она на удивление вкусная и, как говорят, " -"полезна для вашего сердца." +"Очищенный и приготовленный болгарский перец. Намного вкуснее без семечек." #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py @@ -53066,10 +55443,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw lasagne pasta" msgid_plural "raw lasagne pasta" -msgstr[0] "сырая лазанья" -msgstr[1] "сырых лазаньи" -msgstr[2] "сырых лазаний" -msgstr[3] "сырые лазаньи" +msgstr[0] "сырой лист лазаньи" +msgstr[1] "сырых листа лазаньи" +msgstr[2] "сырых листов лазаньи" +msgstr[3] "сырые листы лазаньи" #. ~ Description for {'str_sp': 'raw lasagne pasta'} #: lang/json/COMESTIBLE_from_json.py @@ -53148,7 +55525,7 @@ msgid "" "Dry flakes of flattened grain. Tasty and nutritious when cooked, it also " "doubles as food for horses while dry." msgstr "" -"Сухие продолговатые зёрна. В виде каши — вкусно и питательно. В сухом виде " +"Сухие хлопья из зёрен. В виде каши — вкусно и питательно. В сухом виде " "пригодно для питания лошадей." #. ~ Description for {'str_sp': 'oats'} @@ -53177,9 +55554,9 @@ msgstr "" msgid "deluxe cooked oatmeal" msgid_plural "deluxe cooked oatmeal" msgstr[0] "шикарная овсянка" -msgstr[1] "шикарные овсянки" -msgstr[2] "шикарных овсянок" -msgstr[3] "шикарные овсянки" +msgstr[1] "шикарная овсянка" +msgstr[2] "шикарная овсянка" +msgstr[3] "шикарная овсянка" #. ~ Description for {'str_sp': 'deluxe cooked oatmeal'} #: lang/json/COMESTIBLE_from_json.py @@ -53224,7 +55601,7 @@ msgid_plural "French toasts" msgstr[0] "французский тост" msgstr[1] "французских тоста" msgstr[2] "французских тостов" -msgstr[3] "французский тост" +msgstr[3] "французские тосты" #. ~ Description for {'str': 'French toast'} #: lang/json/COMESTIBLE_from_json.py @@ -53309,10 +55686,9 @@ msgid_plural "granola" msgstr[0] "гранола" msgstr[1] "гранолы" msgstr[2] "гранол" -msgstr[3] "гранола" +msgstr[3] "гранолы" #. ~ Description for {'str_sp': 'granola'} -#. ~ Description for gluten free granola #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " @@ -53337,10 +55713,10 @@ msgstr "Сладкий и вкусный пирог с чистым кленов #: lang/json/COMESTIBLE_from_json.py msgid "fast noodles" msgid_plural "fast noodles" -msgstr[0] "доширак" -msgstr[1] "доширака" -msgstr[2] "дошираков" -msgstr[3] "доширак" +msgstr[0] "лапша быстрого приготовления" +msgstr[1] "лапша быстрого приготовления" +msgstr[2] "лапша быстрого приготовления" +msgstr[3] "лапша быстрого приготовления" #. ~ Description for {'str_sp': 'fast noodles'} #: lang/json/COMESTIBLE_from_json.py @@ -53586,8 +55962,8 @@ msgid "" "used to create anesthesia." msgstr "" "Застывшая смешанная с морфином солнечная роса, обладающая стимулирующим и " -"болеутоляющим эффектами. Может быть использована для создания анестезии при " -"наличии необходимых инструментов." +"болеутоляющим эффектами. Может быть использована для анестезии при наличии " +"необходимых инструментов." #: lang/json/COMESTIBLE_from_json.py msgid "sunesthesia" @@ -53612,7 +55988,7 @@ msgid "" msgstr "" "Солнечный гель, смешанный с наркотиками, полностью потерявший стимулирующий " "эффект, но всё так же хорошо устраняющий боль. Может быть использован для " -"анестезии при установке бионик." +"анестезии при установке бионических модулей." #: lang/json/COMESTIBLE_from_json.py msgid "mi-go serum" @@ -53709,7 +56085,7 @@ msgstr[3] "мутаген вампира" #. ~ Description for wendigo mutagen #: lang/json/COMESTIBLE_from_json.py msgid "Mutagen cocktail simply labeled 'C.R.I.T R&D.'" -msgstr "Мутагенная смесь с простой этикеткой «К.Р.И.Т НИОКР»" +msgstr "Мутагенная смесь с простой этикеткой «К.Р.И.Т. НИОКР»" #: lang/json/COMESTIBLE_from_json.py msgid "vampire serum" @@ -53880,10 +56256,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "alien tallow" msgid_plural "alien tallows" -msgstr[0] "сало инопланетянина" -msgstr[1] "сало инопланетянина" -msgstr[2] "сало инопланетянина" -msgstr[3] "сало инопланетянина" +msgstr[0] "топлёный жир инопланетянина" +msgstr[1] "топлёный жир инопланетянина" +msgstr[2] "топлёный жир инопланетянина" +msgstr[3] "топлёный жир инопланетянина" #. ~ Description for alien tallow #: lang/json/COMESTIBLE_from_json.py @@ -54003,10 +56379,10 @@ msgstr[3] "приготовленные обрезки необычного мя #: lang/json/COMESTIBLE_from_json.py msgid "unusual tallow" msgid_plural "unusual tallows" -msgstr[0] "необычное сало" -msgstr[1] "необычное сало" -msgstr[2] "необычное сало" -msgstr[3] "необычное сало" +msgstr[0] "необычный топлёный жир" +msgstr[1] "необычный топлёный жир" +msgstr[2] "необычный топлёный жир" +msgstr[3] "необычный топлёный жир" #. ~ Description for unusual tallow #: lang/json/COMESTIBLE_from_json.py @@ -54047,10 +56423,10 @@ msgstr "Свежий жир, вырезанный из неземного гум #: lang/json/COMESTIBLE_from_json.py msgid "unusual humanoid tallow" msgid_plural "unusual humanoid tallows" -msgstr[0] "сало необычного гуманоида" -msgstr[1] "сало необычного гуманоида" -msgstr[2] "сало необычного гуманоида" -msgstr[3] "сало необычного гуманоида" +msgstr[0] "топлёный жир необычного гуманоида" +msgstr[1] "топлёный жир необычного гуманоида" +msgstr[2] "топлёный жир необычного гуманоида" +msgstr[3] "топлёный жир необычного гуманоида" #. ~ Description for unusual humanoid tallow #: lang/json/COMESTIBLE_from_json.py @@ -54147,6 +56523,14 @@ msgstr[1] "яйца пахицефалозавра" msgstr[2] "яиц пахицефалозавра" msgstr[3] "яйца пахицефалозавра" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "яйцо камптозавра" +msgstr[1] "яйца камптозавра" +msgstr[2] "яиц камптозавра" +msgstr[3] "яйца камптозавра" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -54163,6 +56547,14 @@ msgstr[1] "яйца тираннозавра" msgstr[2] "яиц тираннозавра" msgstr[3] "яйца тираннозавра" +#: lang/json/COMESTIBLE_from_json.py +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" +msgstr[0] "яйцо альбертозавра" +msgstr[1] "яйца альбертозавра" +msgstr[2] "яиц альбертозавра" +msgstr[3] "яйца альбертозавра" + #: lang/json/COMESTIBLE_from_json.py msgid "triceratops egg" msgid_plural "triceratops eggs" @@ -54187,6 +56579,14 @@ msgstr[1] "яйца анкилозавра" msgstr[2] "яиц анкилозавра" msgstr[3] "яйца анкилозавра" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "яйцо цератозавра" +msgstr[1] "яйца цератозавра" +msgstr[2] "яиц цератозавра" +msgstr[3] "яйца цератозавра" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -54317,7 +56717,7 @@ msgid "" "This is the magical essence from a dragon, distilled into a concentrated " "form." msgstr "" -"Это магическая эссенция дракона, дистиллированная в концентрированную форму." +"Магическая эссенция дракона, дистиллированная в концентрированную форму." #: lang/json/COMESTIBLE_from_json.py msgid "raw black dragon hide" @@ -54509,8 +56909,8 @@ msgid "" " heart to dangerous levels. Drinking this in danger or at critical " "condition may be lethal." msgstr "" -"Эта плохо пахнущая жидкость стимулирует регенерацию нежити, ускоряя ваше " -"сердце до опасных значений. Употребление этого в опасности или критическом " +"Эта плохо пахнущая жидкость имитирует регенерацию нежити, ускоряя ваше " +"сердце до опасного уровня. Употребление в опасной ситуации или критическом " "состоянии может быть смертельным." #: lang/json/COMESTIBLE_from_json.py @@ -54530,8 +56930,8 @@ msgid "" "condition may be lethal. Improved infusion techniques lessen the strain of " "the process." msgstr "" -"Эта плохо пахнущая жидкость стимулирует регенерацию нежити, ускоряя ваше " -"сердце до опасных значений. Употребление этого в опасности или критическом " +"Эта плохо пахнущая жидкость имитирует регенерацию нежити, ускоряя ваше " +"сердце до опасного уровня. Употребление в опасной ситуации или критическом " "состоянии может быть смертельным. Улучшенные методы введения уменьшают " "нагрузку процесса." @@ -54589,10 +56989,10 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dragon meat" msgid_plural "dragon meat" -msgstr[0] "Драконье мясо" -msgstr[1] "Драконье мясо" -msgstr[2] "Драконье мясо" -msgstr[3] "Драконье мясо" +msgstr[0] "драконье мясо" +msgstr[1] "драконье мясо" +msgstr[2] "драконье мясо" +msgstr[3] "драконье мясо" #. ~ Description for {'str_sp': 'dragon meat'} #: lang/json/COMESTIBLE_from_json.py @@ -54792,7 +57192,7 @@ msgid_plural "berry-shaped anomalies" msgstr[0] "ягодовидная аномалия" msgstr[1] "ягодовидные аномалии" msgstr[2] "ягодовидных аномалий" -msgstr[3] "ягодовидная аномалия" +msgstr[3] "ягодовидные аномалии" #. ~ Description for {'str': 'berry-shaped anomaly', 'str_pl': 'berry-shaped #. anomalies'} @@ -54808,9 +57208,9 @@ msgstr "" msgid "seed-shaped anomaly" msgid_plural "seed-shaped anomalies" msgstr[0] "семявидная аномалия" -msgstr[1] "семявидных аномалии" +msgstr[1] "семявидные аномалии" msgstr[2] "семявидных аномалий" -msgstr[3] "семявидная аномалия" +msgstr[3] "семявидные аномалии" #. ~ Description for {'str': 'seed-shaped anomaly', 'str_pl': 'seed-shaped #. anomalies'} @@ -54858,49 +57258,6 @@ msgstr "" "чтобы увидеть это сообщение? Мы не разрешаем тебе присоединиться к нам, " "пока нас модифицируют." -#: lang/json/COMESTIBLE_from_json.py -msgid "necrotic head" -msgid_plural "necrotic heads" -msgstr[0] "некротическая голова" -msgstr[1] "некротические головы" -msgstr[2] "некротических голов" -msgstr[3] "некротические головы" - -#. ~ Description for necrotic head -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"The severed head of a zombie necromancer. Its eyes still roll in its head " -"and its jaws snap menacingly." -msgstr "" -"Отрубленная голова зомби-некроманта. Его глаза всё ещё двигаются, а челюсти " -"злобно скалятся." - -#: lang/json/COMESTIBLE_from_json.py -msgid "mutagenic glob" -msgid_plural "mutagenic globs" -msgstr[0] "мутагенный комок" -msgstr[1] "мутагенных комка" -msgstr[2] "мутагенных комков" -msgstr[3] "мутагенные комки" - -#. ~ Description for mutagenic glob -#: lang/json/COMESTIBLE_from_json.py -msgid "A gelatinous glob of mutagen." -msgstr "Желейный комок мутагенов." - -#: lang/json/COMESTIBLE_from_json.py -msgid "honey" -msgid_plural "honey" -msgstr[0] "мёд" -msgstr[1] "мёда" -msgstr[2] "мёда" -msgstr[3] "мёд" - -#. ~ Description for {'str_sp': 'honey'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Honey, that stuff bees make." -msgstr "Мёд. Его делают пчёлы." - #: lang/json/COMESTIBLE_from_json.py msgid "TEST pine nuts" msgid_plural "TEST pine nuts" @@ -54910,856 +57267,972 @@ msgstr[2] "ТЕСТОВЫЕ сосновые орешки" msgstr[3] "ТЕСТОВЫЕ сосновые орешки" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fish sandwich" -msgid_plural "gluten free fish sandwiches" -msgstr[0] "рыбный сэндвич (без глютена)" -msgstr[1] "рыбных сэндвича (без глютена)" -msgstr[2] "рыбных сэндвичей (без глютена)" -msgstr[3] "рыбный сэндвич (без глютена)" +msgid "test bitter almonds" +msgid_plural "test bitter almonds" +msgstr[0] "тестовый горький миндаль" +msgstr[1] "тестовый горький миндаль" +msgstr[2] "тестовый горький миндаль" +msgstr[3] "тестовый горький миндаль" -#. ~ Description for {'str': 'gluten free fish sandwich', 'str_pl': 'gluten -#. free fish sandwiches'} +#. ~ Description for {'str_sp': 'test bitter almonds'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free and a delicious fish sandwich." -msgstr "Вкусный рыбный сэндвич. Не содержит глютен." - -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable sandwich" -msgid_plural "gluten free vegetable sandwiches" -msgstr[0] "овощной сэндвич (без глютена)" -msgstr[1] "овощных сэндвича (без глютена)" -msgstr[2] "овощных сэндвичей (без глютена)" -msgstr[3] "овощной сэндвич (без глютена)" +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when" +" eaten raw." +msgstr "" +"Горсть миндаля с примесью синильной кислоты, может быть ядовито в сыром " +"виде." -#. ~ Description for {'str': 'gluten free vegetable sandwich', 'str_pl': -#. 'gluten free vegetable sandwiches'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluen free bread and vegetables, that's it." -msgstr "Хлеб с овощами, вот и всё. Не содержит глютен." +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" +msgstr[0] "тестовый галлюциногенный мускатный орех" +msgstr[1] "тестовый галлюциногенный мускатный орех" +msgstr[2] "тестовый галлюциногенный мускатный орех" +msgstr[3] "тестовый галлюциногенный мускатный орех" +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free granola" -msgid_plural "gluten free granolas" -msgstr[0] "гранола (без глютена)" -msgstr[1] "гранолы (без глютена)" -msgstr[2] "гранол (без глютена)" -msgstr[3] "гранолы (без глютена)" +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." +msgstr "" +"Из-за большого содержания психоактивного миристицина, высокие дозы " +"мускатного ореха могут вызвать галлюцинации и эйфорию, а также множество " +"неприятных побочных эффектов." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat sandwich" -msgid_plural "gluten free meat sandwiches" -msgstr[0] "мясной сэндвич (без глютена)" -msgstr[1] "мясных сэндвича (без глютена)" -msgstr[2] "мясных сэндвичей (без глютена)" -msgstr[3] "мясной сэндвич (без глютена)" +msgid "test apple" +msgid_plural "test apples" +msgstr[0] "тестовое яблоко" +msgstr[1] "тестовых яблока" +msgstr[2] "тестовых яблок" +msgstr[3] "тестовые яблоки" -#. ~ Description for {'str': 'gluten free meat sandwich', 'str_pl': 'gluten -#. free meat sandwiches'} +#. ~ Description for {'str': 'test apple'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free bread and meat, that's it." -msgstr "Хлеб с мясом, вот и всё. Не содержит глютен." +msgid "Test apple. May contain worms, but tastes delicious!" +msgstr "" +"Яблоко для отладки. Внутри может оказаться червячок, но на вкус что надо!" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free peanut butter sandwich" -msgid_plural "gluten free peanut butter sandwiches" -msgstr[0] "сэндвич с арахисовым маслом (без глютена)" -msgstr[1] "сэндвича с арахисовым маслом (без глютена)" -msgstr[2] "сэндвичей с арахисовым маслом (без глютена)" -msgstr[3] "сэндвич с арахисовым маслом (без глютена)" +msgid "test liquid" +msgid_plural "test liquid" +msgstr[0] "тестовая жидкость" +msgstr[1] "тестовая жидкость" +msgstr[2] "тестовая жидкость" +msgstr[3] "тестовая жидкость" -#. ~ Description for {'str': 'gluten free peanut butter sandwich', 'str_pl': -#. 'gluten free peanut butter sandwiches'} +#. ~ Description for {'str_sp': 'test liquid'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some peanut butter smothered between two pieces of gluten free bread. Not " -"very filling and will stick to the roof of your mouth like glue." +"No clue what it's made of, but it's definitely liquid. Only for testing, do" +" not drink!" msgstr "" -"Немного арахисового масла, размазанного между двумя кусками хлеба. Не очень " -"сытное блюдо, да ещё и прилипнет к вашему нёбу как клей. Не содержит глютен." +"Непонятно, что это, но что-то явно жидкое. Не пить, только для отладки!" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&J sandwich" -msgid_plural "gluten free PB&J sandwiches" -msgstr[0] "бутерброд с арахисовым маслом и желе (без глютена)" -msgstr[1] "бутерброда с арахисовым маслом и желе (без глютена)" -msgstr[2] "бутербродов с арахисовым маслом и желе (без глютена)" -msgstr[3] "бутерброд с арахисовым маслом и желе (без глютена)" +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" +msgstr[0] "муст из мячиков для тенниса" +msgstr[1] "муст из мячиков для тенниса" +msgstr[2] "муст из мячиков для тенниса" +msgstr[3] "муст из мячиков для тенниса" -#. ~ Description for {'str': 'gluten free PB&J sandwich', 'str_pl': 'gluten -#. free PB&J sandwiches'} +#. ~ Description for tennis ball wine must #: lang/json/COMESTIBLE_from_json.py msgid "" -"A delicious peanut butter and jelly gluten free sandwich. It reminds you of" -" the times your mother would make you lunch." +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." msgstr "" -"Вкусный бутерброд с арахисовым маслом и желе. Напоминает о тех временах, " -"когда мама готовила вам завтрак. Не содержит глютен." +"Неферментированное вино из мячиков для тенниса. Тягучий варёный сок из " +"порезанных мячиков для тенниса." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&H sandwich" -msgid_plural "gluten free PB&H sandwiches" -msgstr[0] "бутерброд с арахисовым маслом и мёдом (без глютена)" -msgstr[1] "бутерброда с арахисовым маслом и мёдом (без глютена)" -msgstr[2] "бутербродов с арахисовым маслом и мёдом (без глютена)" -msgstr[3] "бутерброд с арахисовым маслом и мёдом (без глютена)" +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" +msgstr[0] "тестовое вино из мячиков для тенниса" +msgstr[1] "тестовое вино из мячиков для тенниса" +msgstr[2] "тестовое вино из мячиков для тенниса" +msgstr[3] "тестовое вино из мячиков для тенниса" -#. ~ Description for {'str': 'gluten free PB&H sandwich', 'str_pl': 'gluten -#. free PB&H sandwiches'} +#. ~ Description for {'str_sp': 'test tennis ball wine'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some damned fool put honey on this peanut butter sandwich, who in their " -"right mind- oh wait this is pretty good. Gluten free too!" +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." msgstr "" -"Какой-то конченный идиот положил мёд на арахисовое масло, да что он о себе " -"ду… — хотя, довольно вкусно. Не содержит глютен." +"Дешёвая выпивка из забродивших теннисных мячиков. На вкус так, как это " +"звучит." #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&M sandwich" -msgid_plural "gluten free PB&M sandwiches" -msgstr[0] "бутерброд с арахисовым маслом и кленовым сиропом (без глютена)" -msgstr[1] "бутерброда с арахисовым маслом и кленовым сиропом (без глютена)" -msgstr[2] "бутербродов с арахисовым маслом и кленовым сиропом (без глютена)" -msgstr[3] "бутерброд с арахисовым маслом и кленовым сиропом (без глютена)" +msgid "test chewing gum" +msgid_plural "test chewing gum" +msgstr[0] "тестовая жевательная резинка" +msgstr[1] "тестовая жевательная резинка" +msgstr[2] "тестовая жевательная резинка" +msgstr[3] "тестовая жевательная резинка" -#. ~ Description for {'str': 'gluten free PB&M sandwich', 'str_pl': 'gluten -#. free PB&M sandwiches'} +#. ~ Description for {'str_sp': 'test chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Who knew you could mix maple syrup and peanut butter to create yet another " -"different gluten free sandwich?" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." msgstr "" -"Кто же знал, что, смешав кленовый сироп и арахисовое масло, можно получить " -"ещё один тип бутерброда? Не содержит глютен." +"Удивительно бодрящая и утоляющая жажду жевательная резинка с вкусом черники." #: lang/json/COMESTIBLE_from_json.py -msgid "lactose free hickory nut ambrosia" -msgid_plural "lactose free hickory nut ambrosias" -msgstr[0] "амброзия из орехов гикори (без лактозы)" -msgstr[1] "амброзии из орехов гикори (без лактозы)" -msgstr[2] "амброзий из орехов гикори (без лактозы)" -msgstr[3] "амброзии из орехов гикори (без лактозы)" +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" +msgstr[0] "тестовый мутировавший большой палец" +msgstr[1] "тестовых мутировавших больших пальца" +msgstr[2] "тестовых мутировавших больших пальцев" +msgstr[3] "тестовые мутировавшие большие пальцы" -#. ~ Description for lactose free hickory nut ambrosia +#. ~ Description for {'str': 'test mutated thumb'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " -"made with an alternative to cows milk." +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." msgstr "" -"Вкусная амброзия из орехов гикори. Напиток, достойный богов. Изготовлено из" -" альтернативы коровьему молоку." +"Безобразный человеческий большой палец. Съесть его было бы невероятно " +"отвратительно, а ещё это может вызвать мутации." -#. ~ Description for cornmeal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"You think this is cornflour… or rice flour… Or something else. However, it" -" certainly is not wheat flour! It is useful for baking though." +#: lang/json/CONTAINER_from_json.py +msgid "small metal tank" +msgid_plural "small metal tanks" +msgstr[0] "маленький металлический бак" +msgstr[1] "маленьких металлических бака" +msgstr[2] "маленьких металлических баков" +msgstr[3] "маленькие металлические баки" + +#. ~ Description for small metal tank +#: lang/json/CONTAINER_from_json.py +msgid "A small metal tank for holding gas or liquids. Useful for crafting." msgstr "" -"Вы думаете, это кукурузная… Или рисовая мука… Или что-то ещё. Однако, " -"конечно, это не пшеничная мука! Впрочем, годится для выпечки." +"Небольшой металлический резервуар для хранения газа или жидкостей. " +"Используется при создании предметов." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free johnnycake" -msgid_plural "gluten free johnnycakes" -msgstr[0] "кукурузная лепёшка (без глютена)" -msgstr[1] "кукурузные лепёшки (без глютена)" -msgstr[2] "кукурузных лепёшек (без глютена)" -msgstr[3] "кукурузные лепёшки (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "internal combustion engine" +msgid_plural "internal combustion engines" +msgstr[0] "двигатель внутреннего сгорания" +msgstr[1] "двигателя внутреннего сгорания" +msgstr[2] "двигателей внутреннего сгорания" +msgstr[3] "двигатели внутреннего сгорания" -#. ~ Description for gluten free johnnycake -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"We all crave for cake sometimes. This is not perfect, but it is a tasty and" -" nutritious gluten free fried bread treat. " -msgstr "" -"Всем нам иногда хочется пирога. Он не идеален, но это вкусная и питательная " -"обжаренная хлебная лепёшка. Не содержит глютен." +#: lang/json/ENGINE_from_json.py +msgid "base diesel engine" +msgid_plural "base diesel engines" +msgstr[0] "базовый дизельный двигатель" +msgstr[1] "базовых дизельных двигателя" +msgstr[2] "базовых дизельных двигателей" +msgstr[3] "базовые дизельные двигатели" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pancake" -msgid_plural "gluten free fruit pancakes" -msgstr[0] "блинчик с фрукт. начинкой (без глютена)" -msgstr[1] "блинчика с фрукт. начинкой (без глютена)" -msgstr[2] "блинчика с фрукт. начинкой (без глютена)" -msgstr[3] "блинчик с фрукт. начинкой (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "base gasoline engine" +msgid_plural "base gasoline engines" +msgstr[0] "базовый бензиновый двигатель" +msgstr[1] "базовых бензиновых двигателя" +msgstr[2] "базовых бензиновых двигателей" +msgstr[3] "базовые бензиновые двигатели" -#. ~ Description for {'str': 'gluten free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"Пышные вкусные блинчики с кленовым сиропом и фруктовой начинкой. Не содержит" -" глютен." +#: lang/json/ENGINE_from_json.py +msgid "base steam engine" +msgid_plural "base steam engines" +msgstr[0] "базовый паровой двигатель" +msgstr[1] "базовых паровых двигателя" +msgstr[2] "базовых паровых двигателей" +msgstr[3] "базовые паровые двигатели" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free fruit pancake" -msgid_plural "lactose free fruit pancakes" -msgstr[0] "блинчик с фрукт. начинкой (без лактозы)" -msgstr[1] "блинчика с фрукт. начинкой (без лактозы)" -msgstr[2] "блинчиков с фрукт. начинкой (без лактозы)" -msgstr[3] "блинчик с фрукт. начинкой (без лактозы)" +#: lang/json/ENGINE_from_json.py +msgid "1-cylinder engine" +msgid_plural "1-cylinder engines" +msgstr[0] "1-цилиндровый двигатель" +msgstr[1] "1-цилиндровых двигателя" +msgstr[2] "1-цилиндровых двигателей" +msgstr[3] "1-цилиндровые двигатели" -#. ~ Description for {'str': 'lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious lactose free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "" -"Пышные вкусные блинчики с кленовым сиропом и фруктовой начинкой. Не содержит" -" лактозы." +#. ~ Description for {'str': '1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A single-cylinder 4-stroke combustion engine." +msgstr "Одноцилиндровый 4-тактный двигатель внутреннего сгорания." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit pancake" -msgid_plural "gluten free lactose free fruit pancakes" -msgstr[0] "блинчик с фрукт. начинкой (без глютена) (без лактозы)" -msgstr[1] "блинчика с фрукт. начинкой (без глютена) (без лактозы)" -msgstr[2] "блинчика с фрукт. начинкой (без глютена) (без лактозы)" -msgstr[3] "блинчик с фрукт. начинкой (без глютена) (без лактозы)" +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgid_plural "large 1-cylinder engines" +msgstr[0] "большой 1-цилиндровый двигатель" +msgstr[1] "больших 1-цилиндровых двигателя" +msgstr[2] "больших 1-цилиндровых двигателей" +msgstr[3] "большие 1-цилиндровые двигатели" -#. ~ Description for {'str': 'gluten free lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious pancakes made out of the only things you can still eat." -" But at least it has real maple syrup, made sweeter and healthier with the " -"addition of wholesome fruit." +"A powerful high-compression single-cylinder 4-stroke combustion engine." msgstr "" -"Пышные вкусные блинчики, приготовлены из продуктов, которые вы всё ещё " -"можете есть. Но, по крайней мере, с настоящим кленовым сиропом и фруктовой " -"начинкой. Не содержит глютен. Не содержит лактозы." +"Мощный одноцилиндровый 4-тактный двигатель внутреннего сгорания высокого " +"давления." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate pancake" -msgid_plural "gluten free chocolate pancakes" -msgstr[0] "блинчик с шоколадом (без глютена)" -msgstr[1] "блинчика с шоколадом (без глютена)" -msgstr[2] "блинчиков с шоколадом (без глютена)" -msgstr[3] "блинчик с шоколадом (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "small 1-cylinder engine" +msgid_plural "small 1-cylinder engines" +msgstr[0] "малый 1-цилиндровый двигатель" +msgstr[1] "малых 1-цилиндровых двигателя" +msgstr[2] "малых 1-цилиндровых двигателей" +msgstr[3] "малые 1-цилиндровые двигатели" -#. ~ Description for {'str': 'gluten free chocolate pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small single-cylinder 2-stroke combustion engine." +msgstr "Маленький одноцилиндровый 2-тактный двигатель внутреннего сгорания." + +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" +msgstr[0] "легкий летный двигатель" +msgstr[1] "легких летных двигателя" +msgstr[2] "легких летных двигателей" +msgstr[3] "легкие летные двигатели" + +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, with " -"delicious chocolate baked right in." +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." msgstr "" -"Пышные вкусные блинчики с кленовым сиропом и политые сверху вкусным " -"шоколадом. Не содержит глютен." +"Четырехцилиндровый горизонтальный оппозитный двигатель внутреннего сгорания " +"с воздушным охлаждением мощность 150 л.с. Обычно используется в малой " +"авиации." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free French toast" -msgid_plural "gluten free French toasts" -msgstr[0] "французский тост (без глютена)" -msgstr[1] "французских тоста (без глютена)" -msgstr[2] "французских тостов (без глютена)" -msgstr[3] "французский тост (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "Inline-4 engine" +msgid_plural "Inline-4 engines" +msgstr[0] "рядный 4-цилиндровый двигатель" +msgstr[1] "рядных 4-цилиндровых двигателя" +msgstr[2] "рядных 4-цилиндровых двигателей" +msgstr[3] "рядные 4-цилиндровые двигатели" -#. ~ Description for {'str': 'gluten free French toast'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Slices of gluten free bread dipped in a milk and egg mixture then fried." -msgstr "" -"Кусок хлеба, вымоченный в молочно-яичной смеси и затем запечённый. Не " -"содержит глютен." +#. ~ Description for {'str': 'Inline-4 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small, yet powerful 4-cylinder combustion engine." +msgstr "Маленький, но мощный 4-цилиндровый двигатель внутреннего сгорания." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free French toast" -msgid_plural "gluten free lactose free French toasts" -msgstr[0] "французский тост (без глютена) (без лактозы)" -msgstr[1] "французских тоста (без глютена) (без лактозы)" -msgstr[2] "французских тостов (без глютена) (без лактозы)" -msgstr[3] "французский тост (без глютена) (без лактозы)" +#: lang/json/ENGINE_from_json.py +msgid "I6 diesel engine" +msgid_plural "I6 diesel engines" +msgstr[0] "рядный 6-цилиндровый дизельный двигатель" +msgstr[1] "рядных 6-цилиндровых дизельных двигателя" +msgstr[2] "рядных 6-цилиндровых дизельных двигателей" +msgstr[3] "рядные 6-цилиндровые дизельные двигатели" -#. ~ Description for {'str': 'gluten free lactose free French toast'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Slices of gluten free bread dipped in a lactose free milk and egg mixture " -"then fried. You never thought it was possible, but now you truly feel like " -"a post millennial." -msgstr "" -"Кусок хлеба, вымоченный в молочно-яичной смеси и затем запечённый. Вы " -"никогда не думали, что это возможно, но теперь вы действительно чувствуете " -"себя ребёнком. Не содержит глютен. Не содержит лактозы." +#. ~ Description for {'str': 'I6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful straight-6 diesel engine." +msgstr "Мощный 6-цилиндровый дизельный двигатель." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free biscuit" -msgid_plural "gluten free biscuits" -msgstr[0] "печенье (без глютена)" -msgstr[1] "печенья (без глютена)" -msgstr[2] "печенья (без глютена)" -msgstr[3] "печенье (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "V-twin engine" +msgid_plural "V-twin engines" +msgstr[0] "V-образный двигатель" +msgstr[1] "V-образных двигателя" +msgstr[2] "V-образных двигателей" +msgstr[3] "V-образные двигатели" -#. ~ Description for gluten free biscuit -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Delicious and filling, this home made gluten free biscuit is good, and good " -"for you!" -msgstr "" -"Вкусный и питательный бисквит домашнего приготовления. Не содержит глютен." +#. ~ Description for {'str': 'V-twin engine'} +#: lang/json/ENGINE_from_json.py +msgid "A 2-cylinder 4-stroke combustion engine." +msgstr "2-цилиндровый 4-тактный двигатель внутреннего сгорания." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pie" -msgid_plural "gluten free fruit pies" -msgstr[0] "фруктовый пирог (без глютена)" -msgstr[1] "фруктовых пирога (без глютена)" -msgstr[2] "фруктовых пирогов (без глютена)" -msgstr[3] "фруктовые пироги (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "V6 engine" +msgid_plural "V6 engines" +msgstr[0] "шестицилиндровый двигатель" +msgstr[1] "шестицилиндровых двигателя" +msgstr[2] "шестицилиндровых двигателей" +msgstr[3] "шестицилиндровые двигатели" -#. ~ Description for gluten free fruit pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a sweet fruit filling." -msgstr "Вкусная выпечка с фруктовой начинкой. Не содержит глютен." +#. ~ Description for {'str': 'V6 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder combustion engine." +msgstr "Мощный 6-цилиндровый двигатель внутреннего сгорания." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pie" -msgid_plural "gluten free vegetable pies" -msgstr[0] "овощной пирог (без глютена)" -msgstr[1] "овощных пирога (без глютена)" -msgstr[2] "овощных пирогов (без глютена)" -msgstr[3] "овощные пироги (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "V6 diesel engine" +msgid_plural "V6 diesel engines" +msgstr[0] "дизельный двигатель V6" +msgstr[1] "дизельных двигателя V6 " +msgstr[2] "дизельных двигателей V6 " +msgstr[3] "дизельные двигатели V6" -#. ~ Description for gluten free vegetable pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious vegetable filling." -msgstr "Вкусная выпечка со вкусной овощной начинкой. Не содержит глютен." +#. ~ Description for {'str': 'V6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder diesel engine." +msgstr "Мощный 6-цилиндровый дизельный двигатель." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pie" -msgid_plural "gluten free meat pies" -msgstr[0] "мясной пирог (без глютена)" -msgstr[1] "мясных пирога (без глютена)" -msgstr[2] "мясных пирогов (без глютена)" -msgstr[3] "мясные пироги (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "V8 engine" +msgid_plural "V8 engines" +msgstr[0] "двигатель V8" +msgstr[1] "двигателя V8" +msgstr[2] "двигателей V8" +msgstr[3] "двигатели V8" -#. ~ Description for gluten free meat pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious meat filling." -msgstr "Вкусная выпечка с мясной начинкой. Не содержит глютен." +#. ~ Description for {'str': 'V8 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A large and very powerful 8-cylinder combustion engine." +msgstr "Большой и очень мощный 8-цилиндровый двигатель внутреннего сгорания." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free maple pie" -msgid_plural "gluten free maple pies" -msgstr[0] "кленовый пирог (без глютена)" -msgstr[1] "кленовых пирога (без глютена)" -msgstr[2] "кленовых пирогов (без глютена)" -msgstr[3] "кленовые пироги (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "V8 diesel engine" +msgid_plural "V8 diesel engines" +msgstr[0] "дизельный двигатель V8" +msgstr[1] "дизельных двигателя V8" +msgstr[2] "дизельных двигателей V8" +msgstr[3] "дизельные двигатели V8" -#. ~ Description for gluten free maple pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A sweet and delicious baked gluten free pie with pure maple syrup." -msgstr "" -"Сладкий и вкусный пирог с чистым кленовым сиропом. Не содержит глютен." +#. ~ Description for {'str': 'V8 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 8-cylinder diesel engine." +msgstr "Мощный 8-цилиндровый дизельный двигатель." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pizza" -msgid_plural "gluten free vegetable pizzas" -msgstr[0] "овощная пицца (без глютена)" -msgstr[1] "овощные пиццы (без глютена)" -msgstr[2] "овощных пицц (без глютена)" -msgstr[3] "овощные пиццы (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "V12 engine" +msgid_plural "V12 engines" +msgstr[0] "двигатель V12" +msgstr[1] "двигателя V12" +msgstr[2] "двигателей V12" +msgstr[3] "двигатели V12" -#. ~ Description for gluten free vegetable pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'V12 engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " -"crust. Its smell brings back great memories." +"A massive and extremely powerful V12 engine, usually built into high end " +"sports cars." msgstr "" -"Овощная пицца, с восхитительным томатным соусом и воздушной коркой. Её " -"аромат пробуждает замечательные воспоминания. Не содержит глютен." +"Крупный и очень мощный двигатель V12, обычно устанавливаемый на спортмобили " +"высшего класса." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese pizza" -msgid_plural "gluten free cheese pizzas" -msgstr[0] "сырная пицца (без глютена)" -msgstr[1] "сырные пиццы (без глютена)" -msgstr[2] "сырных пицц (без глютена)" -msgstr[3] "сырные пиццы (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "V12 diesel engine" +msgid_plural "V12 diesel engines" +msgstr[0] "дизельный двигатель V12" +msgstr[1] "дизельных двигателя V12" +msgstr[2] "дизельных двигателей V12" +msgstr[3] "дизельные двигатели V12" -#. ~ Description for gluten free cheese pizza -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free pizza with molten cheese on top." -msgstr "Вкусная пицца с корочкой расплавленного сыра. Не содержит глютен." +#. ~ Description for {'str': 'V12 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive and extremely powerful V12 engine, usually built into heavy " +"trucks." +msgstr "" +"Крупный и очень мощный двигатель V12, обычно устанавливаемый на тяжёлые " +"грузовики." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pizza" -msgid_plural "gluten free meat pizzas" -msgstr[0] "мясная пицца (без глютена)" -msgstr[1] "мясные пиццы (без глютена)" -msgstr[2] "мясных пицц (без глютена)" -msgstr[3] "мясные пиццы (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "makeshift steam engine" +msgid_plural "makeshift steam engines" +msgstr[0] "самодельный паровой двигатель" +msgstr[1] "самодельных паровых двигателя" +msgstr[2] "самодельных паровых двигателей" +msgstr[3] "самодельные паровые двигатели" -#. ~ Description for gluten free meat pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'makeshift steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A meat gluten free pizza, for all the carnivores out there. Chock full of " -"minced meat and heavily seasoned." +"A small, primitive, steam engine. An integrated boiler burns coal to heat " +"water into steam, driving a reciprocating shaft. A condenser recaptures the" +" water, making this a closed cycle system." msgstr "" -"Мясная пицца, для настоящих хищников. Содержит много мяса и острых приправ. " -"Не содержит глютен." +"Маленький примитивный паровой двигатель. Уголь сгорает во встроенном котле, " +"превращая воду в пар, который приводит в движение шатун. Затем вода заново " +"собирается в конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheeseburger" -msgid_plural "gluten free cheeseburgers" -msgstr[0] "чизбургер (без глютена)" -msgstr[1] "чизбургера (без глютена)" -msgstr[2] "чизбургеров (без глютена)" -msgstr[3] "чизбургеры (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "small steam engine" +msgid_plural "small steam engines" +msgstr[0] "маленький паровой двигатель" +msgstr[1] "маленьких паровых двигателя" +msgstr[2] "маленьких паровых двигателей" +msgstr[3] "маленькие паровые двигатели" -#. ~ Description for gluten free cheeseburger -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of minced meat and cheese with condiments. The apex " -"of pre-Cataclysm culinary achievement." +"A small steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condenser recaptures the water, " +"making this a closed cycle system." msgstr "" -"Сэндвич из мяса и сыра с приправами. До Катаклизма был вершиной кулинарного " -"искусства. Не содержит глютен." +"Маленький паровой двигатель. Уголь сгорает во встроенном котле, превращая " +"воду в пар, который приводит в движение шатун. Затем вода заново собирается " +"в конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free hamburger" -msgid_plural "gluten free hamburgers" -msgstr[0] "гамбургер (без глютена)" -msgstr[1] "гамбургера (без глютена)" -msgstr[2] "гамбургеров (без глютена)" -msgstr[3] "гамбургеры (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "medium steam engine" +msgid_plural "medium steam engines" +msgstr[0] "средний паровой двигатель" +msgstr[1] "средних паровых двигателя" +msgstr[2] "средних паровых двигателей" +msgstr[3] "средние паровые двигатели" -#. ~ Description for gluten free hamburger -#: lang/json/COMESTIBLE_from_json.py -msgid "A gluten free sandwich of minced meat with condiments." -msgstr "Сэндвич из мяса с приправами. Не содержит глютен." +#. ~ Description for {'str': 'medium steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A medium-sized steam engine. An integrated boiler burns coal to heat water " +"into steam, driving a reciprocating shaft. A condenser recaptures the " +"water, making this a closed cycle system." +msgstr "" +"Средний паровой двигатель. Уголь сгорает во встроенном котле, превращая воду" +" в пар, который приводит в движение шатун. Затем вода заново собирается в " +"конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sloppy joe" -msgid_plural "gluten free sloppy joes" -msgstr[0] "неряха Джо (без глютена)" -msgstr[1] "неряха Джо (без глютена)" -msgstr[2] "неряха Джо (без глютена)" -msgstr[3] "неряха Джо (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "1350 hp gas turbine engine" +msgid_plural "1350 hp gas turbine engines" +msgstr[0] "газотурбинный двигатель в 1350 л.с." +msgstr[1] "газотурбинных двигателя в 1350 л.с." +msgstr[2] "газотурбинных двигателей в 1350 л.с." +msgstr[3] "газотурбинные двигатели в 1350 л.с." -#. ~ Description for gluten free sloppy joe -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': '1350 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich, consisting of ground meat and tomato sauce served on" -" a hamburger bun." +"A gas turbine engine, usually used for military vehicles. Known for its " +"high rate of fuel consumption." msgstr "" -"Сэндвич с говяжьим фаршем и томатным соусом между булочек для гамбургера. Не" -" содержит глютен." +"Газотурбинный двигатель, обычно такие ставили в военную технику. Очень " +"быстро расходует топливо." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free BLT" -msgid_plural "gluten free BLTs" -msgstr[0] "сэндвич БСП (без глютена)" -msgstr[1] "сэндвича БСП (без глютена)" -msgstr[2] "сэндвичей БСП (без глютена)" -msgstr[3] "сэндвичи БСП (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "1900 hp gas turbine engine" +msgid_plural "1900 hp gas turbine engines" +msgstr[0] " газотурбинный двигатель в 1900 л.с." +msgstr[1] "газотурбинных двигателя в 1900 л.с." +msgstr[2] "газотурбинных двигателей в 1900 л.с." +msgstr[3] "газотурбинные двигатели в 1900 л.с." -#. ~ Description for gluten free BLT -#: lang/json/COMESTIBLE_from_json.py -msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." +#. ~ Description for {'str': '1900 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large gas turbine engine, usually used for military helicopters. Known " +"for its high rate of fuel consumption." msgstr "" -"Сэндвич из бекона, салата и помидора меж двух поджаренных кусков хлеба. Не " -"содержит глютен." +"Большой газотурбинный двигатель, обычно такие ставили в военные вертолёты. " +"Очень быстро расходует топливо." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sweetbread" -msgid_plural "gluten free sweetbreads" -msgstr[0] "сладкое мясо (без глютена)" -msgstr[1] "сладкое мясо (без глютена)" -msgstr[2] "сладкое мясо (без глютена)" -msgstr[3] "сладкое мясо (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "6000 hp gas turbine engine" +msgid_plural "6000 hp gas turbine engines" +msgstr[0] "газотурбинный двигатель в 6000 л.с." +msgstr[1] "газотурбинных двигателя в 6000 л.с." +msgstr[2] "газотурбинных двигателей в 6000 л.с." +msgstr[3] "газотурбинные двигатели в 6000 л.с." -#. ~ Description for {'str': 'gluten free sweetbread'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': '6000 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Delicious and tender organ meats. First boiled, then gluten free breaded " -"crumbs added and fried. They have interesting flavor and unparalleled " -"texture." +"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " +"high rate of fuel consumption." msgstr "" -"Вкусные и нежные потроха. Сперва сваренные, потом зажаренные в панировке. " -"Имеют интересный привкус и неповторимую консистенцию. Не содержит глютен." +"Огромный газотурбинный двигатель, обычно такие ставили в V-22 Osprey. Очень " +"быстро расходует топливо." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese sandwich" -msgid_plural "gluten free cheese sandwiches" -msgstr[0] "бутерброд с сыром (без глютена)" -msgstr[1] "бутерброда с сыром (без глютена)" -msgstr[2] "бутербродов с сыром (без глютена)" -msgstr[3] "бутерброд с сыром (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "large steam engine" +msgid_plural "large steam engines" +msgstr[0] "большой паровой двигатель" +msgstr[1] "больших паровых двигателя" +msgstr[2] "больших паровых двигателей" +msgstr[3] "большие паровые двигатели" -#. ~ Description for {'str': 'gluten free cheese sandwich', 'str_pl': 'gluten -#. free cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A simple gluten free cheese sandwich." -msgstr "Простой сэндвич с сыром. Не содержит глютен." +#. ~ Description for {'str': 'large steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "" +"Большой паровой двигатель. Уголь сгорает во встроенном котле, превращая воду" +" в пар, который приводит в движение шатун. Затем вода заново собирается в " +"конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free grilled cheese sandwich" -msgid_plural "gluten free grilled cheese sandwiches" -msgstr[0] "сэндвич с плавленым сыром (без глютена)" -msgstr[1] "сэндвича с плавленым сыром (без глютена)" -msgstr[2] "сэндвичей с плавленым сыром (без глютена)" -msgstr[3] "сэндвич с плавленым сыром (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "huge steam engine" +msgid_plural "huge steam engines" +msgstr[0] "огромный паровой двигатель" +msgstr[1] "огромных паровых двигателя" +msgstr[2] "огромных паровых двигателей" +msgstr[3] "огромные паровые двигатели" -#. ~ Description for {'str': 'gluten free grilled cheese sandwich', 'str_pl': -#. 'gluten free grilled cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'huge steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A delicious gluten free grilled cheese sandwich, because everything is " -"better with melted cheese." +"A huge steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" -"Вкусный сэндвич с плавленным сыром, потому что с плавленым сыром всё " -"становится вкуснее. Не содержит глютен." +"Огромный паровой двигатель. Уголь сгорает во встроенном котле, превращая " +"воду в пар, который приводит в движение шатун. Затем вода заново собирается " +"в конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free deluxe sandwich" -msgid_plural "gluten free deluxe sandwiches" -msgstr[0] "шикарный сэндвич (без глютена)" -msgstr[1] "шикарных сэндвича (без глютена)" -msgstr[2] "шикарных сэндвичей (без глютена)" -msgstr[3] "шикарный сэндвич (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "small steam turbine" +msgid_plural "small steam turbines" +msgstr[0] "маленькая паровая турбина" +msgstr[1] "маленькие паровые турбины" +msgstr[2] "маленьких паровых турбин" +msgstr[3] "маленькие паровые турбины" -#. ~ Description for {'str': 'gluten free deluxe sandwich', 'str_pl': 'gluten -#. free deluxe sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of meat, vegetables, and cheese with condiments. " -"Tasty and nutritious!" +"A small steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." msgstr "" -"Сэндвич из мяса, овощей и сыра с приправами. Вкусно и сытно! Не содержит " -"глютен." +"Маленькая паровая турбина. Уголь сгорает во встроенном котле, превращая воду" +" в пар, который придает вращение турбине. Затем вода заново собирается в " +"конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cucumber sandwich" -msgid_plural "gluten free cucumber sandwiches" -msgstr[0] "сэндвич с огурцом (без глютена)" -msgstr[1] "сэндвича с огурцом (без глютена)" -msgstr[2] "сэндвичей с огурцом (без глютена)" -msgstr[3] "сэндвич с огурцом (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "medium steam turbine" +msgid_plural "medium steam turbines" +msgstr[0] "средняя паровая турбина" +msgstr[1] "средние паровые турбины" +msgstr[2] "средних паровых турбин" +msgstr[3] "средние паровые турбины" -#. ~ Description for {'str': 'gluten free cucumber sandwich', 'str_pl': -#. 'gluten free cucumber sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A refreshing gluten free cucumber sandwich. Not very filling, but quite " -"tasty." +"A medium sized steam turbine. An integrated boiler burns coal to heat water" +" into steam, driving a spinning turbine. A condensor recaptures the water, " +"making this a closed cycle system." msgstr "" -"Освежающий сэндвич с огурцом. Не очень питателен, но довольно вкусный. Не " -"содержит глютен." +"Паровая турбина среднего размера. Уголь сгорает во встроенном котле, " +"превращая воду в пар, который придает вращение турбине. Затем вода заново " +"собирается в конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free jam sandwich" -msgid_plural "gluten free jam sandwiches" -msgstr[0] "сэндвич с джемом (без глютена)" -msgstr[1] "сэндвича с джемом (без глютена)" -msgstr[2] "сэндвичей с джемом (без глютена)" -msgstr[3] "сэндвич с джемом (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "large steam turbine" +msgid_plural "large steam turbines" +msgstr[0] "большая паровая турбина" +msgstr[1] "большие паровые турбины" +msgstr[2] "больших паровых турбин" +msgstr[3] "большие паровые турбины" -#. ~ Description for {'str': 'gluten free jam sandwich', 'str_pl': 'gluten -#. free jam sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free jam sandwich." -msgstr "Вкусный сэндвич с джемом. Не содержит глютен." +#. ~ Description for {'str': 'large steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "" +"Большая паровая турбина. Уголь сгорает во встроенном котле, превращая воду в" +" пар, который придает вращение турбине. Затем вода заново собирается в " +"конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free honey sandwich" -msgid_plural "gluten free honey sandwiches" -msgstr[0] "медовый сэндвич (без глютена)" -msgstr[1] "медовых сэндвича (без глютена)" -msgstr[2] "медовых сэндвичей (без глютена)" -msgstr[3] "медовый сэндвич (без глютена)" +#: lang/json/ENGINE_from_json.py +msgid "huge steam turbine" +msgid_plural "huge steam turbines" +msgstr[0] "огромная паровая турбина" +msgstr[1] "огромные паровые турбины" +msgstr[2] "огромных паровых турбин" +msgstr[3] "огромные паровые турбины" -#. ~ Description for {'str': 'gluten free honey sandwich', 'str_pl': 'gluten -#. free honey sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free honey sandwich." -msgstr "Вкусный сэндвич с мёдом. Не содержит глютен." +#. ~ Description for {'str': 'huge steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "" +"Огромная паровая турбина. Уголь сгорает во встроенном котле, превращая воду " +"в пар, который придает вращение турбине. Затем вода заново собирается в " +"конденсаторе, обеспечивая замкнутый цикл." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free boring sandwich" -msgid_plural "gluten free boring sandwiches" -msgstr[0] "«скучный» сэндвич (без глютена)" -msgstr[1] "«скучных» сэндвича (без глютена)" -msgstr[2] "«скучных» сэндвичей (без глютена)" -msgstr[3] "«скучный» сэндвич (без глютена)" +#: lang/json/GENERIC_from_json.py +msgid "fetid goop" +msgid_plural "fetid goops" +msgstr[0] "горсть зловонной жижи" +msgstr[1] "горсти зловонной жижи" +msgstr[2] "горстей зловонной жижи" +msgstr[3] "горсти зловонной жижи" -#. ~ Description for {'str': 'gluten free boring sandwich', 'str_pl': 'gluten -#. free boring sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'fetid goop'} +#: lang/json/GENERIC_from_json.py msgid "" -"A simple gluten free sauce sandwich. Not very filling but beats eating just" -" the bread… especially if it is the wrong type of bread!" +"A foul smelling goop. It has a disgusting texture and a powerful smell that" +" overrides every other smell around it." msgstr "" -"Простой сэндвич с соусом. Не очень питателен, но это лучше, чем есть просто " -"хлеб… Особенно если это «неправильный» тип хлеба! Не содержит глютен." +"Отвратительно пахнущая жижа. Противная на ощупь и обладает сильным " +"зловонием, перебивающим любые другие запахи." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free waffle" -msgid_plural "gluten free waffles" -msgstr[0] "вафля (без глютена)" -msgstr[1] "вафли (без глютена)" -msgstr[2] "вафель (без глютена)" -msgstr[3] "вафли (без глютена)" +#: lang/json/GENERIC_from_json.py +msgid "limestone shard" +msgid_plural "limestone shards" +msgstr[0] "осколок известняка" +msgstr[1] "осколка известняка" +msgstr[2] "осколков известняка" +msgstr[3] "осколки известняка" -#. ~ Description for gluten free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free waffle. It's basically a pancake in hashtag form." -msgstr "Просто вафельный блинчик с рифлёной поверхностью. Не содержит глютен." +#. ~ Description for {'str': 'limestone shard'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" +" alkaline properties may yet find some use." +msgstr "" +"Маленький осколок известняка. Довольно хрупкий и не пригодится в роли " +"оружия, но его щелочные свойства могут пригодиться." -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free waffle" -msgid_plural "lactose free waffles" -msgstr[0] "вафля (без лактозы)" -msgstr[1] "вафли (без лактозы)" -msgstr[2] "вафель (без лактозы)" -msgstr[3] "вафли (без лактозы)" +#: lang/json/GENERIC_from_json.py +msgid "rock salt" +msgid_plural "rock salt" +msgstr[0] "каменная соль" +msgstr[1] "каменной соли" +msgstr[2] "каменной соли" +msgstr[3] "каменная соль" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Lactose free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str_sp': 'rock salt'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of rock salt crystals. Could be refined into table salt." msgstr "" -"Просто вафельный блинчик с рифлёной поверхностью. Не содержит лактозы." +"Пригоршня кристаллов каменной соли. Можно очистить до поваренной соли." -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "rhodonite" +msgid_plural "rhodonite" +msgstr[0] "родонит" +msgstr[1] "родонита" +msgstr[2] "родонита" +msgstr[3] "родонит" + +#. ~ Description for {'str_sp': 'rhodonite'} +#: lang/json/GENERIC_from_json.py msgid "" -"Gluten free and lactose free waffle. It's basically a pancake in hashtag " -"form." +"A chunk of rhodonite. It has manganese dioxide covering and going through " +"it in veins, which can be obtained using a chisel." msgstr "" -"Просто вафельный блинчик с рифлёной поверхностью. Не содержит глютен. Не " -"содержит лактозы." +"Кусок родонита. Он покрыт диоксидом марганца, ветвящимся внутрь минерала " +"множеством жилок. Их можно извлечь при помощи долота." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit waffle" -msgid_plural "gluten free fruit waffles" -msgstr[0] "фруктовая вафля (без глютена)" -msgstr[1] "фруктовые вафли (без глютена)" -msgstr[2] "фруктовых вафель (без глютена)" -msgstr[3] "фруктовые вафли (без глютена)" +#: lang/json/GENERIC_from_json.py +msgid "zincite" +msgid_plural "zincite" +msgstr[0] "цинкит" +msgstr[1] "цинкитa" +msgstr[2] "цинкитa" +msgstr[3] "цинкит" -#. ~ Description for gluten free fruit waffle -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'zincite'} +#: lang/json/GENERIC_from_json.py msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." +"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " +"reduction with a source of carbon." msgstr "" -"Хрустящие и вкусные вафли с подливкой из кленового сиропа, стали ещё слаще и" -" полезнее после добавления фрукта. Не содержит глютен." +"Кусок цинкита. Может быть переработан в оксид цинка, затем в цинк, " +"восстановлением с помощью источника углерода." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit waffle" -msgid_plural "gluten free lactose free fruit waffles" -msgstr[0] "фруктовая вафля (без глютена) (без лактозы)" -msgstr[1] "фруктовые вафли (без глютена) (без лактозы)" -msgstr[2] "фруктовых вафель (без глютена) (без лактозы)" -msgstr[3] "фруктовые вафли (без глютена) (без лактозы)" +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" +msgstr[0] "плутоний" +msgstr[1] "плутоний" +msgstr[2] "плутоний" +msgstr[3] "плутоний" -#. ~ Description for gluten free lactose free fruit waffle -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py msgid "" -"Crunchy and delicious gluten free and lactose free waffles with real maple " -"syrup, made sweeter and healthier with the addition of wholesome fruit." +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." msgstr "" -"Хрустящие и вкусные вафли с подливкой из кленового сиропа, стали ещё слаще и" -" полезнее после добавления фрукта. Не содержит глютен. Не содержит лактозы." +"Немного плутония. Стоит убраться подальше, если вы не хотите словить дозу " +"радиации." -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate waffle" -msgid_plural "gluten free chocolate waffles" -msgstr[0] "шоколадная вафля (без глютена)" -msgstr[1] "шоколадные вафли (без глютена)" -msgstr[2] "шоколадных вафель (без глютена)" -msgstr[3] "шоколадные вафли (без глютена)" +#: lang/json/GENERIC_from_json.py +msgid "hickory root" +msgid_plural "hickory roots" +msgstr[0] "корень гикори" +msgstr[1] "корня гикори" +msgstr[2] "корней гикори" +msgstr[3] "корни гикори" -#. ~ Description for gluten free chocolate waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, with " -"delicious chocolate baked right in." -msgstr "" -"Вкусные хрустящие вафли с подливкой из кленового сиропа, политые сверху " -"шоколадом. Не содержит глютен." +#. ~ Description for {'str': 'hickory root'} +#: lang/json/GENERIC_from_json.py +msgid "A root from a hickory tree. It has an earthy smell." +msgstr "Корень дерева гикори. Имеет землистый запах." -#: lang/json/COMESTIBLE_from_json.py -msgid "rice milk" -msgid_plural "rice milk" -msgstr[0] "рисовое молоко" -msgstr[1] "рисового молока" -msgstr[2] "рисового молока" -msgstr[3] "рисовое молоко" +#: lang/json/GENERIC_from_json.py +msgid "hickory nuts" +msgid_plural "hickory nuts" +msgstr[0] "орех гикори" +msgstr[1] "ореха гикори" +msgstr[2] "орехов гикори" +msgstr[3] "орехи гикори" -#. ~ Description for {'str_sp': 'rice milk'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " -"rapidly." -msgstr "" -"Слаще, чем цельное коровье молоко, почти похоже на ванильное мороженое. " -"Быстро портится." +#. ~ Description for {'str_sp': 'hickory nuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hickory tree, still in their shell." +msgstr "Горсть твёрдых орехов дерева гикори, по-прежнему в своей скорлупе." -#: lang/json/COMESTIBLE_from_json.py -msgid "coconut water" -msgid_plural "coconut water" -msgstr[0] "кокосовая вода" -msgstr[1] "кокосовой воды" -msgstr[2] "кокосовой воды" -msgstr[3] "кокосовая вода" +#: lang/json/GENERIC_from_json.py +msgid "pecans" +msgid_plural "pecans" +msgstr[0] "орех пекан" +msgstr[1] "ореха пекан" +msgstr[2] "орехов пекан" +msgstr[3] "орехи пекан" -#. ~ Description for {'str_sp': 'coconut water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'pecans'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pecan tree, still in their shell." +msgstr "Горсть твёрдых орехов дерева пекан, всё ещё в скорлупе." + +#: lang/json/GENERIC_from_json.py +msgid "pistachios" +msgid_plural "pistachios" +msgstr[0] "фисташки" +msgstr[1] "фисташки" +msgstr[2] "фисташки" +msgstr[3] "фисташки" + +#. ~ Description for {'str_sp': 'pistachios'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pistachio tree, still in their shell." +msgstr "Горсть твёрдых орехов фисташкового дерева, всё ещё в скорлупе." + +#: lang/json/GENERIC_from_json.py +msgid "almonds" +msgid_plural "almonds" +msgstr[0] "миндаль" +msgstr[1] "миндаль" +msgstr[2] "миндаль" +msgstr[3] "миндаль" + +#. ~ Description for {'str_sp': 'almonds'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from an almond tree, still in their shell." +msgstr "Горсть твёрдых орехов миндального дерева, всё ещё в скорлупе." + +#: lang/json/GENERIC_from_json.py +msgid "peanuts" +msgid_plural "peanuts" +msgstr[0] "арахис" +msgstr[1] "арахис" +msgstr[2] "арахис" +msgstr[3] "арахис" + +#. ~ Description for {'str_sp': 'peanuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a peanut bush, still in their shell." +msgstr "Горсть твёрдых орехов арахисового кустарника, всё ещё в скорлупе." + +#: lang/json/GENERIC_from_json.py +msgid "hazelnuts" +msgid_plural "hazelnuts" +msgstr[0] "фундук" +msgstr[1] "фундук" +msgstr[2] "фундук" +msgstr[3] "фундук" + +#. ~ Description for {'str_sp': 'hazelnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hazelnut tree, still in their shell." +msgstr "Горсть твёрдых орехов лещины, всё ещё в скорлупе." + +#: lang/json/GENERIC_from_json.py +msgid "chestnuts" +msgid_plural "chestnuts" +msgstr[0] "каштан" +msgstr[1] "каштана" +msgstr[2] "каштанов" +msgstr[3] "каштаны" + +#. ~ Description for {'str_sp': 'chestnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a chestnut tree, still in their shell." +msgstr "Горсть твёрдых орехов каштанового дерева, всё ещё в скорлупе." + +#: lang/json/GENERIC_from_json.py +msgid "walnuts" +msgid_plural "walnuts" +msgstr[0] "грецкий орех" +msgstr[1] "грецких ореха" +msgstr[2] "грецких орехов" +msgstr[3] "грецкие орехи" + +#. ~ Description for {'str_sp': 'walnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a walnut tree, still in their shell." +msgstr "Горсть твёрдых грецких орехов, всё ещё в скорлупе." + +#: lang/json/GENERIC_from_json.py +msgid "steel grille" +msgid_plural "steel grilles" +msgstr[0] "стальная решётка" +msgstr[1] "стальных решётки" +msgstr[2] "стальных решёток" +msgstr[3] "стальные решётки" + +#. ~ Description for {'str': 'steel grille'} +#: lang/json/GENERIC_from_json.py msgid "" -"Coconut milk, with water added to make it go further. Tastes ok though. " -"Spoils rapidly." +"This is a metal grille. It can be used as a framework for making a chemical" +" catalyst." msgstr "" -"Кокосовое молочко с добавлением воды, чтобы хватило подольше. Вкус всё тот " -"же. Быстро портится." +"Металлическая решётка, пригодная в качестве основы для изготовления " +"химического катализатора." -#: lang/json/COMESTIBLE_from_json.py -msgid "jarred coconut milk" -msgid_plural "jarred coconut milk" -msgstr[0] "консервированное кокосовое молочко" -msgstr[1] "консервированных кокосовых молочка" -msgstr[2] "консервированных кокосовых молочка" -msgstr[3] "консервированное кокосовое молочко" +#: lang/json/GENERIC_from_json.py +msgid "cobalt-60 pellet" +msgid_plural "cobalt-60 pellets" +msgstr[0] "гранулы кобальта-60" +msgstr[1] "гранулы кобальта-60" +msgstr[2] "гранулы кобальта-60" +msgstr[3] "гранулы кобальта-60" -#. ~ Description for {'str_sp': 'jarred coconut milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'cobalt-60 pellet'} +#: lang/json/GENERIC_from_json.py msgid "" -"This deliciously rich coconut cream is a more concentrated, thicker version " -"of the coconut milk." +"Radioactive material that used to be a part of some nuclear industry " +"equipment. You are yet to find some use for it." msgstr "" -"Этот восхитительно питательный кокосовый крем представляет собой более " -"концентрированный, более густой вариант кокосового молочка." +"Радиоактивный материал, который используется в ядерной индустрии. Вы всё ещё" +" можете найти ему какое-нибудь применение." -#: lang/json/COMESTIBLE_from_json.py -msgid "rice flour" -msgid_plural "rice flour" -msgstr[0] "рисовая мука" -msgstr[1] "рисовые муки" -msgstr[2] "рисовых муки" -msgstr[3] "рисовая мука" +#: lang/json/GENERIC_from_json.py +msgid "sandbag" +msgid_plural "sandbags" +msgstr[0] "мешок с песком" +msgstr[1] "мешка с песком" +msgstr[2] "мешков с песком" +msgstr[3] "мешки с песком" -#. ~ Description for {'str_sp': 'rice flour'} -#: lang/json/COMESTIBLE_from_json.py -msgid "This rice flour is useful for baking." -msgstr "Эта рисовая мука полезна для выпечки." +#. ~ Description for {'str': 'sandbag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a canvas sack filled with sand. It can be used to construct simple " +"barricades." +msgstr "" +"Холщовый мешок, полный песка. Из него можно сложить простое заграждение." -#: lang/json/COMESTIBLE_from_json.py -msgid "revival serum" -msgid_plural "revival serums" -msgstr[0] "сыворотка возрождения" -msgstr[1] "сыворотка возрождения" -msgstr[2] "сыворотка возрождения" -msgstr[3] "сыворотка возрождения" +#: lang/json/GENERIC_from_json.py +msgid "earthbag" +msgid_plural "earthbags" +msgstr[0] "мешок с землёй" +msgstr[1] "мешка с землёй" +msgstr[2] "мешков с землёй" +msgstr[3] "мешки с землёй" -#. ~ Description for revival serum -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'earthbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"A potent drug, necessary when performing a revival operation on larger " -"animals (including humans). It induces a violent allergic reactions in " -"living organisms, so using it on yourself is a REALLY bad idea." +"This is a canvas sack filled with soil. It can be used to construct simple " +"barricades." msgstr "" -"Сильнодействующее лекарство, необходимое при выполнении операции возрождения" -" на крупных животных (включая людей). Оно вызывает бурные аллергические " -"реакции в живых организмах, так что использовать его на себе — это ОЧЕНЬ " -"плохая идея." +"Холщовый мешок, полный земли. Из него можно сложить простое заграждение." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "2.5L canteen" msgid_plural "2.5L canteens" msgstr[0] "2,5-л фляга" msgstr[1] "2,5-л фляги" msgstr[2] "2,5-л фляг" -msgstr[3] "2,5-л фляга" +msgstr[3] "2,5-л фляги" #. ~ Description for {'str': '2.5L canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "" "Большая пластиковая фляга для воды объёмом 2,5 литра с подвесным ремнём." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "30 gallon barrel" msgid_plural "30 gallon barrels" msgstr[0] "бочка на 30 галлонов" msgstr[1] "бочки на 30 галлонов" msgstr[2] "бочек на 30 галлонов" -msgstr[3] "бочка на 30 галлонов" +msgstr[3] "бочки на 30 галлонов" #. ~ Description for {'str': '30 gallon barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "Огромная пластиковая бочка с закрывающейся крышкой." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" msgid_plural "steel drums (100L)" msgstr[0] "стальная бочка (100 л)" msgstr[1] "стальные бочки (100 л)" msgstr[2] "стальных бочек (100 л)" -msgstr[3] "стальная бочка (100 л)" +msgstr[3] "стальные бочки (100 л)" #. ~ Description for {'str': 'steel drum (100L)', 'str_pl': 'steel drums #. (100L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge steel barrel with a resealable lid." msgstr "Огромная стальная бочка с закрывающейся крышкой." -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" msgid_plural "steel drums (200L)" msgstr[0] "стальная бочка (200 л)" msgstr[1] "стальные бочки (200 л)" msgstr[2] "стальных бочек (200 л)" -msgstr[3] "стальная бочка (200 л)" +msgstr[3] "стальные бочки (200 л)" #. ~ Description for {'str': 'steel drum (200L)', 'str_pl': 'steel drums #. (200L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "Массивная стальная бочка с закрывающейся крышкой." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas sack" msgid_plural "canvas sacks" msgstr[0] "брезентовый мешок" msgstr[1] "брезентовых мешка" msgstr[2] "брезентовых мешков" -msgstr[3] "брезентовый мешок" +msgstr[3] "брезентовые мешки" #. ~ Description for {'str': 'canvas sack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "" "Большой и крепкий брезентовый мешок. От него слегка пахнет землёй и тяжёлой " "работой." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas bag" msgid_plural "canvas bags" msgstr[0] "холщовый мешочек" msgstr[1] "холщовых мешочка" msgstr[2] "холщовых мешочков" -msgstr[3] "холщовый мешочек" +msgstr[3] "холщовые мешочки" #. ~ Description for {'str': 'canvas bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "" "Маленький холщовый мешок. Идеально подходит для хранения сушёных трав." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bag" msgid_plural "plastic bags" msgstr[0] "пакет" msgstr[1] "пакета" msgstr[2] "пакетов" -msgstr[3] "пакет" +msgstr[3] "пакеты" #. ~ Description for {'str': 'plastic bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "Небольшой открытый полиэтиленовый пакет. По сути — хлам." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "zipper bag" msgid_plural "zipper bags" msgstr[0] "зиплок" @@ -55768,7 +58241,7 @@ msgstr[2] "зиплоков" msgstr[3] "зиплоки" #. ~ Description for {'str': 'zipper bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_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 " @@ -55778,7 +58251,7 @@ msgstr "" "пластиковый. Его можно закрывать и открывать благодаря замку, похожему на " "застёжку-молнию." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "body bag" msgid_plural "body bags" msgstr[0] "мешок для трупов" @@ -55787,7 +58260,7 @@ msgstr[2] "мешков для трупов" msgstr[3] "мешки для трупов" #. ~ Description for {'str': 'body bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large, human size, rectangular bag made of strong plastic, with a zipper " "in the middle. Used to hold a dead body." @@ -55795,7 +58268,7 @@ msgstr "" "Большой прямоугольный мешок размером с человека, сделанный из прочного " "пластика с застёжкой-молнией посередине. Для хранения мёртвых тел." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "IV bag" msgid_plural "IV bags" msgstr[0] "капельница" @@ -55804,39 +58277,39 @@ msgstr[2] "капельниц" msgstr[3] "капельницы" #. ~ Description for {'str': 'IV bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "" "Небольшая герметичная мягкая пластиковая емкость, используемая для " "внутривенных вливаний." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass bottle" msgid_plural "glass bottles" msgstr[0] "стеклянная бутылка" msgstr[1] "стеклянных бутылки" msgstr[2] "стеклянных бутылок" -msgstr[3] "стеклянная бутылка" +msgstr[3] "стеклянные бутылки" #. ~ Description for {'str': 'glass bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "Закрывающаяся стеклянная бутылка, вмещает 750 мл жидкости." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bottle" msgid_plural "plastic bottles" msgstr[0] "пластиковая бутылка" msgstr[1] "пластиковых бутылки" msgstr[2] "пластиковых бутылок" -msgstr[3] "пластиковая бутылка" +msgstr[3] "пластиковые бутылки" #. ~ Description for {'str': 'plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "Закрывающаяся пластиковая бутылка, вмещает 500 мл жидкости." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condiment bottle" msgid_plural "condiment bottles" msgstr[0] "бутылка для приправ" @@ -55845,7 +58318,7 @@ msgstr[2] "бутылок для приправ" msgstr[3] "бутылки для приправ" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An inverted plastic bottle for condiments. Still sealed from factory, " "preserves content from rot until opened." @@ -55854,11 +58327,11 @@ msgstr "" "Все еще запечатана после изготовления, что предотвращает порчу содержимого." #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An inverted plastic bottle for condiments." msgstr "Перевернутая бутылка для вкусовых добавок." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small plastic bottle" msgid_plural "small plastic bottles" msgstr[0] "небольшая пластиковая бутылка" @@ -55867,11 +58340,11 @@ msgstr[2] "небольших пластиковых бутылок" msgstr[3] "небольшие пластиковых бутылки" #. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "Закрывающаяся пластиковая бутылка, вмещает 250 мл жидкости." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large plastic bottle" msgid_plural "large plastic bottles" msgstr[0] "большая пластиковая бутылка" @@ -55880,7 +58353,7 @@ msgstr[2] "больших пластиковых бутылок" msgstr[3] "большие пластиковые бутылки" #. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." @@ -55888,16 +58361,16 @@ msgstr "" "Двухлитровая пластиковая бутылка, способная вместить много газировки или " "кипячёной воды." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay bowl" msgid_plural "clay bowls" msgstr[0] "глиняная миска" -msgstr[1] "глиняных миски" +msgstr[1] "глиняные миски" msgstr[2] "глиняных мисок" -msgstr[3] "глиняная миска" +msgstr[3] "глиняные миски" #. ~ Description for {'str': 'clay bowl'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A clay bowl with a waterproofed hide lid. Can be used as a container or as " "a tool. Holds 250 ml of liquid." @@ -55905,7 +58378,7 @@ msgstr "" "Глиняная миска с крышкой из водонепроницаемой кожи. Можно использовать в " "качестве контейнера или инструмента. Вмещает 250 мл жидкости." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "pack" msgid_plural "packs" msgstr[0] "пачка сигарет" @@ -55914,7 +58387,7 @@ msgstr[2] "пачек сигарет" msgstr[3] "пачки сигарет" #. ~ Description for {'str': 'pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." @@ -55922,7 +58395,7 @@ msgstr "" "ХИРУРГИ ПРЕДУПРЕЖДАЮТ: курение вызывает рак лёгких, заболевания сердца, " "эмфизему и осложнения беременности." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" msgstr[0] "маленькая картонная коробка" @@ -55932,11 +58405,11 @@ msgstr[3] "маленькие картонные коробки" #. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "Маленькая картонная коробка. Размером не больше фута." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" msgstr[0] "картонная коробка" @@ -55945,14 +58418,14 @@ msgstr[2] "картонных коробок" msgstr[3] "картонные коробки" #. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "" "Прочная картонная коробка размером с упаковку для бананов. Удобно что-то " "хранить." -#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" msgstr[0] "большая картонная коробка" @@ -55962,7 +58435,7 @@ msgstr[3] "большие картонные коробки" #. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A very large cardboard box, the sort children would have loved to hide in, " "when there were still children." @@ -55970,7 +58443,7 @@ msgstr "" "Очень большая картонная коробка, в таких раньше любили прятаться дети, когда" " ещё были дети." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "bucket" msgid_plural "buckets" msgstr[0] "ведро" @@ -55979,7 +58452,7 @@ msgstr[2] "вёдер" msgstr[3] "вёдра" #. ~ Description for {'str': 'bucket'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " "legs, French fries, animal feed, farm use, tailgating, crafts, planting " @@ -55991,7 +58464,7 @@ msgstr "" "нужд, ремёсел, посадки цветов, сбора фруктов и трав, использования в " "качестве контейнера или для хранения льда." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hydration pack" msgid_plural "hydration packs" msgstr[0] "питьевой рюкзак" @@ -56000,7 +58473,7 @@ msgstr[2] "питьевых рюкзаков" msgstr[3] "питьевые рюкзаки" #. ~ Description for {'str': 'hydration pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " @@ -56010,7 +58483,7 @@ msgstr "" "есть большой карман с клапаном для наполнения его жидкостью, а также шланг, " "который позволяет пользователю пить из него без рук." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum can" msgid_plural "aluminum cans" msgstr[0] "алюминиевая банка" @@ -56019,11 +58492,11 @@ msgstr[2] "алюминиевых банок" msgstr[3] "алюминиевые банки" #. ~ Description for {'str': 'aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An aluminum can, like what soda comes in." msgstr "Алюминиевая банка, похожа на банку из-под газировки." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened aluminum can" msgid_plural "opened aluminum cans" msgstr[0] "открытая алюминиевая банка" @@ -56032,7 +58505,7 @@ msgstr[2] "открытых алюминиевых банок" msgstr[3] "открытые алюминиевые банки" #. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." @@ -56040,7 +58513,7 @@ msgstr "" "Алюминиевая банка, похожа на банку из-под газировки. Она вскрыта, и её не " "так-то легко запечатать." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper carton" msgid_plural "paper cartons" msgstr[0] "картонный пакет" @@ -56049,7 +58522,7 @@ msgstr[2] "картонных пакетов" msgstr[3] "картонные пакеты" #. ~ Description for {'str': 'paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " It has a threaded cap for easy resealing." @@ -56057,7 +58530,7 @@ msgstr "" "Двухлитровый коробчатый пакет из картона, алюминия и пластиковой выстилки. " "Имеется резьбовая пробка для лёгкого закрывания." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened paper carton" msgid_plural "opened paper cartons" msgstr[0] "открытый картонный пакет" @@ -56066,7 +58539,7 @@ msgstr[2] "открытых картонных пакетов" msgstr[3] "открытые картонные пакеты" #. ~ Description for {'str': 'opened paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " This one is open and its contents will spoil." @@ -56074,20 +58547,20 @@ msgstr "" "Двухлитровый коробчатый пакет из картона, алюминия и пластиковой выстилки. " "Этот пакет открыт, и его содержимое испортится." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" -msgstr[0] "мешок в вакуумной упаковке" -msgstr[1] "мешков в вакуумной упаковке" -msgstr[2] "мешков в вакуумной упаковке" -msgstr[3] "мешки в вакуумной упаковке" +msgstr[0] "вакуумная упаковка еды" +msgstr[1] "вакуумные упаковки еды" +msgstr[2] "вакуумных упаковок еды" +msgstr[3] "вакуумные упаковки еды" #. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "This is a bag of vacuum-packed food." msgstr "Пакет с герметично упакованной едой." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small tin can" msgid_plural "small tin cans" msgstr[0] "маленькая консервная банка" @@ -56096,11 +58569,11 @@ msgstr[2] "маленьких консервных банок" msgstr[3] "маленькие консервные банки" #. ~ Description for {'str': 'small tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small tin can, like what tuna comes in." msgstr "Маленькая консервная банка, примерно как из под сельди." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small opened tin can" msgid_plural "small opened tin cans" msgstr[0] "открытая маленькая консервная банка" @@ -56109,7 +58582,7 @@ msgstr[2] "открытых маленьких консервных банок" msgstr[3] "открытые маленькие консервные банки" #. ~ Description for {'str': 'small opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small tin can, like what tuna comes in. This one is opened and can't be " "easily sealed." @@ -56117,7 +58590,7 @@ msgstr "" "Жестяная консервная банка, примерно как из под сельди. Она вскрыта, и её не " "так-то легко запечатать." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium tin can" msgid_plural "medium tin cans" msgstr[0] "средняя консервная банка" @@ -56126,11 +58599,11 @@ msgstr[2] "средних консервных банок" msgstr[3] "средние консервные банки" #. ~ Description for {'str': 'medium tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A medium tin can, like what soup comes in." msgstr "Консервная банка средних размеров, примерно такая, как из под супа." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium opened tin can" msgid_plural "medium opened tin cans" msgstr[0] "открытая средняя консервная банка" @@ -56139,7 +58612,7 @@ msgstr[2] "открытых средних консервных банок" msgstr[3] "открытые средние консервные банки" #. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A medium tin can, like what soup comes in. This one is opened and can't be " "easily sealed." @@ -56147,31 +58620,31 @@ msgstr "" "Жестяная консервная банка средних размеров, примерно такая, как из под супа." " Она вскрыта, и её не так-то легко запечатать." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic canteen" msgid_plural "plastic canteens" msgstr[0] "пластиковая фляга" -msgstr[1] "пластиковых фляги" +msgstr[1] "пластиковые фляги" msgstr[2] "пластиковых фляг" -msgstr[3] "пластиковая фляга" +msgstr[3] "пластиковые фляги" #. ~ Description for {'str': 'plastic canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." msgstr "Армейская фляга для воды объёмом 1,5 литра. Обычно носят на бедре." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "thermos" msgid_plural "thermoses" msgstr[0] "термос" msgstr[1] "термоса" msgstr[2] "термосов" -msgstr[3] "термос" +msgstr[3] "термосы" #. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." @@ -56179,16 +58652,16 @@ msgstr "" "Вакуумная колба-термос. Применяется для удержания температуры, помогает " "держать предметы горячими или холодными. Содержит 1 л жидкости." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay canister" msgid_plural "clay canisters" msgstr[0] "глиняный сосуд" msgstr[1] "глиняных сосуда" msgstr[2] "глиняных сосудов" -msgstr[3] "глиняный сосуд" +msgstr[3] "глиняные сосуды" #. ~ Description for {'str': 'clay canister'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." @@ -56196,30 +58669,30 @@ msgstr "" "Хрупкий глиняный сосуд. Его можно использовать, чтобы сделать гранату или " "хранить жидкость." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay hydria" msgid_plural "clay hydrias" msgstr[0] "глиняная гидрия" msgstr[1] "глиняные гидрии" msgstr[2] "глиняных гидрий" -msgstr[3] "глиняная гидрия" +msgstr[3] "глиняные гидрии" #. ~ Description for {'str': 'clay hydria'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "" "15-литровый глиняный горшок с тремя ручками для переноски и разливания." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large clay pot" msgid_plural "large clay pots" msgstr[0] "большой глиняный горшок" msgstr[1] "больших глиняных горшка" msgstr[2] "больших глиняных горшков" -msgstr[3] "большой глиняный горшок" +msgstr[3] "большие глиняные горшки" #. ~ Description for {'str': 'large clay pot'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky and heavy clay pot with a waterproofed hide lid, meant to store " "water, but can carry other liquids in a pinch." @@ -56227,47 +58700,47 @@ msgstr "" "Громоздкий и тяжёлый глиняный горшок с крышкой из водонепроницаемой кожи, " "предназначенный для хранения воды, но может хранить и другие жидкости." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic cup" msgid_plural "plastic cups" msgstr[0] "пластиковый стаканчик" msgstr[1] "пластиковых стаканчика" msgstr[2] "пластиковых стаканчиков" -msgstr[3] "пластиковый стаканчик" +msgstr[3] "пластиковые стаканчики" #. ~ Description for {'str': 'plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup." msgstr "Небольшой одноразовый стаканчик из пластика." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened plastic cup" msgid_plural "opened plastic cups" msgstr[0] "открытый пластиковый стаканчик" msgstr[1] "открытых пластиковых стаканчика" msgstr[2] "открытых пластиковых стаканчиков" -msgstr[3] "открытый пластиковый стаканчик" +msgstr[3] "открытые пластиковые стаканчики" #. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "Небольшой одноразовый стаканчик. По сути — хлам." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass flask" msgid_plural "glass flasks" msgstr[0] "стеклянная колба" -msgstr[1] "стеклянных колбы" +msgstr[1] "стеклянные колбы" msgstr[2] "стеклянных колб" -msgstr[3] "стеклянная колба" +msgstr[3] "стеклянные колбы" #. ~ Description for {'str': 'glass flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "" "Лабораторная колба в форме конуса объёмом 250 мл, имеет резиновую крышку." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "test tube" msgid_plural "test tubes" msgstr[0] "пробирка" @@ -56276,12 +58749,12 @@ msgstr[2] "пробирок" msgstr[3] "пробирки" #. ~ Description for {'str': 'test tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "" "Лабораторная цилиндрическая пробирка объемом 10 мл с резиновой пробкой." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "beaker" msgid_plural "beakers" msgstr[0] "мензурка" @@ -56290,13 +58763,13 @@ msgstr[2] "мензурок" msgstr[3] "мензурки" #. ~ Description for {'str': 'beaker'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "" "Лабораторная мензурка на 250 мл. Фактически, просто стакан с манией величия." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" msgstr[0] "мерный цилиндр" @@ -56305,7 +58778,7 @@ msgstr[2] "мерных цилиндров" msgstr[3] "мерные цилиндры" #. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A tall, narrow glass cylinder with precise markings for measuring fluid " "quantities. An important science tool, it is also useful for anal retentive" @@ -56314,7 +58787,7 @@ msgstr "" "Высокий узкий стеклянный цилиндр с отметками для точного измерения " "количества жидкости. Важный научный инструмент, полезен для перфекционистов." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" msgstr[0] "пробирка для микроцентрифуги" @@ -56323,7 +58796,7 @@ msgstr[2] "пробирок для микроцентрифуги" msgstr[3] "пробирки для микроцентрифуги" #. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "These plastic tubes, with little built in snap-caps, are a great way to " "store a tiny amount of liquid. Great for jello shooters if 1mL is enough " @@ -56333,16 +58806,16 @@ msgstr "" "крошечного количества жидкости. Отлично подойдут для алкогольного желе, если" " вам достаточно 1 мл." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hip flask" msgid_plural "hip flasks" msgstr[0] "фляжка" msgstr[1] "фляжки" msgstr[2] "фляжек" -msgstr[3] "фляжка" +msgstr[3] "фляжки" #. ~ Description for {'str': 'hip flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." @@ -56350,31 +58823,31 @@ msgstr "" "Металлическая фляжка объёмом 250 мл с закручивающейся крышкой. Обычно " "используется для незаметного ношения алкоголя." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" msgstr[0] "3-л стеклянная банка" msgstr[1] "3-л стеклянные банки" msgstr[2] "3-л стеклянных банок" -msgstr[3] "3-л стеклянная банка" +msgstr[3] "3-л стеклянные банки" #. ~ Description for {'str': '3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Трёхлитровая стеклянная банка с металлической крышкой, используется для " "консервации." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed 3L glass jar" msgid_plural "sealed 3L glass jars" msgstr[0] "закатанная 3-л стеклянная банка" msgstr[1] "закатанные 3-л стеклянные банки" msgstr[2] "закатанных 3-л стеклянных банок" -msgstr[3] "закатанная 3-л стеклянная банка" +msgstr[3] "закатанные 3-л стеклянные банки" #. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." @@ -56383,31 +58856,31 @@ msgstr "" "используется при консервировании. Она плотно закатана для предотвращения " "порчи содержимого." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass jar" msgid_plural "glass jars" msgstr[0] "стеклянная банка" -msgstr[1] "стеклянных банки" +msgstr[1] "стеклянные банки" msgstr[2] "стеклянных банок" -msgstr[3] "стеклянная банка" +msgstr[3] "стеклянные банки" #. ~ Description for {'str': 'glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "" "Поллитровая стеклянная банка с металлической крышкой, используется для " "консервации." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed glass jar" msgid_plural "sealed glass jars" msgstr[0] "закатанная стеклянная банка" msgstr[1] "закатанные стеклянные банки" msgstr[2] "закатанных стеклянных банок" -msgstr[3] "закатанная стеклянная банка" +msgstr[3] "закатанные стеклянные банки" #. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half-liter glass jar with a metal screw top lid, used for canning. Sealed" " tightly and will preserve the contents from rot (assuming it was sterile " @@ -56417,16 +58890,16 @@ msgstr "" "используется при консервировании. Она плотно закатана и предохраняет " "содержимое от порчи (при условии, что она была стерильна на момент закатки)." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic jerrycan" msgid_plural "plastic jerrycans" msgstr[0] "пластиковая канистра" -msgstr[1] "пластиковых канистры" +msgstr[1] "пластиковые канистры" msgstr[2] "пластиковых канистр" -msgstr[3] "пластиковая канистра" +msgstr[3] "пластиковые канистры" #. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." @@ -56434,75 +58907,75 @@ msgstr "" "Большая пластиковая канистра, предназначенная для перевозки топлива и других" " жидкостей." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel jerrycan" msgid_plural "steel jerrycans" msgstr[0] "стальная канистра" -msgstr[1] "стальных канистры" +msgstr[1] "стальные канистры" msgstr[2] "стальных канистр" -msgstr[3] "стальная канистра" +msgstr[3] "стальные канистры" #. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." msgstr "" "Стальная канистра, предназначенная для перевозки топлива и других жидкостей." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay jug" msgid_plural "clay jugs" msgstr[0] "глиняный кувшин" msgstr[1] "глиняных кувшина" msgstr[2] "глиняных кувшинов" -msgstr[3] "глиняный кувшин" +msgstr[3] "глиняные кувшины" #. ~ Description for {'str': 'clay jug'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "Глиняный сосуд с крышкой, используется для хранения жидкости." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "gallon jug" msgid_plural "gallon jugs" -msgstr[0] "1-галлонная бутылка" -msgstr[1] "1-галлонные бутылки" -msgstr[2] "1-галлонных бутылок" -msgstr[3] "1-галлонная бутылка" +msgstr[0] "галлонная бутылка" +msgstr[1] "галлонные бутылки" +msgstr[2] "галлонных бутылок" +msgstr[3] "галлонные бутылки" #. ~ Description for {'str': 'gallon jug'} #. ~ Description for TEST gallon jug -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "Стандартный пластиковый бидон для молока и бытовой химии." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum keg" msgid_plural "aluminum kegs" msgstr[0] "алюминиевый бочонок" msgstr[1] "алюминиевых бочонка" msgstr[2] "алюминиевых бочонков" -msgstr[3] "алюминиевый бочонок" +msgstr[3] "алюминиевые бочонки" #. ~ Description for {'str': 'aluminum keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." msgstr "" "Многоразовый лёгкий алюминиевый бочонок для перевозки пива. Объём 50 литров." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel keg" msgid_plural "steel kegs" msgstr[0] "стальной кег" msgstr[1] "стальных кега" msgstr[2] "стальных кегов" -msgstr[3] "стальной кег" +msgstr[3] "стальные кеги" #. ~ Description for {'str': 'steel keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." @@ -56510,16 +58983,16 @@ msgstr "" "Стальной бочонок, используемый для продажи пива. Пригоден для повторного " "использования. Объём 50 литров." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large sealed stomach" msgid_plural "large sealed stomachs" msgstr[0] "большой закрытый желудок" msgstr[1] "больших закрытых желудка" msgstr[2] "больших закрытых желудков" -msgstr[3] "большой закрытый желудок" +msgstr[3] "большие закрытые желудки" #. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." @@ -56527,82 +59000,82 @@ msgstr "" "Большой очищенный желудок животного, закрытый бечёвкой. Вмещает 3 литра " "воды." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (60L)" msgid_plural "metal tanks (60L)" msgstr[0] "металлический бак (60 л)" msgstr[1] "металлических бака (60 л)" msgstr[2] "металлических баков (60 л)" -msgstr[3] "металлический бак (60 л)" +msgstr[3] "металлические баки (60 л)" #. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks #. (60L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "" "Большой металлический резервуар для хранения жидкостей. Используется при " "создании предметов." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (2L)" msgid_plural "metal tanks (2L)" msgstr[0] "металлический бак (2 л)" msgstr[1] "металлических бака (2 л)" msgstr[2] "металлических баков (2 л)" -msgstr[3] "металлический бак (2 л)" +msgstr[3] "металлические баки (2 л)" #. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "" "Небольшой металлический резервуар для газа или жидкостей. Используется при " "создании предметов." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" msgstr[0] "деревянная фляга" -msgstr[1] "деревянных фляги" +msgstr[1] "деревянные фляги" msgstr[2] "деревянных фляг" -msgstr[3] "деревянная фляга" +msgstr[3] "деревянные фляги" #. ~ Description for {'str': 'wooden canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A water canteen made from wood, secured by metal bands and sealed with wax " "or pitch. Holds 1.5 liters and has a simple carry strap." msgstr "" "Фляга для воды, сделанная из древесины, скреплённой металлическими ободками," -" и запечатанная воском или смолой. Вмещает 1,5 литра и имеет простой " -"подвесной ремень." +" и запечатанная воском или смолой. Вмещает 1,5 литра и имеет простенький " +"подвесной ремешок." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed stomach" msgid_plural "sealed stomachs" msgstr[0] "закрытый желудок" msgstr[1] "закрытых желудка" msgstr[2] "закрытых желудков" -msgstr[3] "закрытый желудок" +msgstr[3] "закрытые желудки" #. ~ Description for {'str': 'sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." msgstr "" "Очищенный желудок животного, закрытый бечёвкой. Вмещает 1,5 литра воды." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small waterskin" msgid_plural "small waterskins" msgstr[0] "маленький бурдюк" msgstr[1] "маленьких бурдюка" msgstr[2] "маленьких бурдюков" -msgstr[3] "маленький бурдюк" +msgstr[3] "маленькие бурдюки" #. ~ Description for {'str': 'small waterskin'} #. ~ Description for TEST small waterskin -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." @@ -56610,46 +59083,46 @@ msgstr "" "Маленький герметичный кожаный мешок с подвесным ремнём, вмещает 1,5 литра " "воды." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "waterskin" msgid_plural "waterskins" msgstr[0] "бурдюк" msgstr[1] "бурдюка" msgstr[2] "бурдюков" -msgstr[3] "бурдюк" +msgstr[3] "бурдюки" #. ~ Description for {'str': 'waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "Герметичный кожаный мешок с подвесным ремнём, вмещает 3 литра воды." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large waterskin" msgid_plural "large waterskins" msgstr[0] "большой бурдюк" msgstr[1] "больших бурдюка" msgstr[2] "больших бурдюков" -msgstr[3] "большой бурдюк" +msgstr[3] "большие бурдюки" #. ~ Description for {'str': 'large waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." msgstr "" "Большой герметичный кожаный мешок с подвесным ремнём, вмещает 5 литров воды." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden barrel" msgid_plural "wooden barrels" msgstr[0] "деревянная бочка" -msgstr[1] "деревянных бочки" +msgstr[1] "деревянные бочки" msgstr[2] "деревянных бочек" -msgstr[3] "деревянная бочка" +msgstr[3] "деревянные бочки" #. ~ Description for {'str': 'wooden barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "Traditionally made of white oak; these vessels are known for delivering " "delicious whiskey to the future. It has a capacity of 100 liters." @@ -56658,7 +59131,7 @@ msgstr "" "выдержки в ней виски, что позволяет придать ему особый аромат и вкус. " "Вмещает 100 литров." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper wrapper" msgid_plural "paper wrappers" msgstr[0] "обёрточная бумага" @@ -56667,39 +59140,56 @@ msgstr[2] "обёрточных бумаг" msgstr[3] "обёрточная бумага" #. ~ Description for {'str': 'paper wrapper'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." -msgstr "Обычный обрывок бумаги. Неплох для розжига огня." +msgstr "Обрывок оберточной бумаги. Пригодится для розжига огня." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "обертка" +msgstr[1] "обертки" +msgstr[2] "оберток" +msgstr[3] "обертки" + +#. ~ Description for {'str': 'wrapper'} +#: lang/json/GENERIC_from_json.py +msgid "" +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." +msgstr "" +"«Протеиновый батончик ДайЗум от SoyPelusa» - вот что написано на этой " +"жиронепроницаемой обёртке." + +#: lang/json/GENERIC_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" msgstr[0] "полистирольный стаканчик" msgstr[1] "полистирольных стаканчика" msgstr[2] "полистирольных стаканчиков" -msgstr[3] "полистирольный стаканчик" +msgstr[3] "полистирольные стаканчики" #. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "Дешёвый одноразовый стаканчик с пластиковой крышкой и трубочкой." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic tub" msgid_plural "plastic tubs" msgstr[0] "пластиковое ведёрко" msgstr[1] "пластиковых ведёрка" msgstr[2] "пластиковых ведёрок" -msgstr[3] "пластиковое ведёрко" +msgstr[3] "пластиковые ведёрки" #. ~ Description for {'str': 'plastic tub'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "" "Большое квадратное пластиковое ведро, обычно используется для хранения " "мороженого." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" msgstr[0] "презерватив" @@ -56708,7 +59198,7 @@ msgstr[2] "презерватиов" msgstr[3] "презервативы" #. ~ Description for {'str': 'condom'} -#: lang/json/CONTAINER_from_json.py +#: 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 " @@ -56718,7 +59208,7 @@ msgstr "" "варежка без большого пальца. Годится как импровизированная ёмкость для воды," " но мы всё равно все знаем, для чего он нужен на самом деле." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "balloon" msgid_plural "balloons" msgstr[0] "воздушный шар" @@ -56727,13 +59217,13 @@ msgstr[2] "воздушных шаров" msgstr[3] "воздушные шары" #. ~ Description for {'str': 'balloon'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A child's balloon. This could be used as a makeshift water container." msgstr "" "Детский воздушный шарик. Может быть использован как самодельный контейнер " "для воды." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large tin can" msgid_plural "large tin cans" msgstr[0] "большая консервная банка" @@ -56742,14 +59232,14 @@ msgstr[2] "больших консервных банок" msgstr[3] "большие консервные банки" #. ~ Description for {'str': 'large tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. Holds a substantial amount of " "food." msgstr "" "Большая жестяная банка, в каких хранятся бобы. Вмещает довольно много еды." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large opened tin can" msgid_plural "large opened tin cans" msgstr[0] "открытая большая консервная банка" @@ -56758,7 +59248,7 @@ msgstr[2] "открытых больших консервных банок" msgstr[3] "открытые большие консервные банки" #. ~ Description for {'str': 'large opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. This one is opened and can't be " "easily sealed." @@ -56766,7 +59256,7 @@ msgstr "" "Большая жестяная банка, в каких хранятся бобы. Она вскрыта, и её не так-то " "легко запечатать." -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "survival kit box" msgid_plural "survival kit boxes" msgstr[0] "коробка от набора выживальщика" @@ -56776,7 +59266,7 @@ msgstr[3] "коробки от набора выживальщика" #. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum box that used to contain a small survival kit. Can hold 1 liter" " of liquid." @@ -56784,942 +59274,19 @@ msgstr "" "Алюминиевая коробочка, в которой лежал маленький набор для выживания. " "Вмещает 1 л жидкости." -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "пластиковая чаша" -msgstr[1] "пластиковых чаши" -msgstr[2] "пластиковых чаш" -msgstr[3] "пластиковая чаша" - -#. ~ Description for {'str': 'plastic bowl'} -#: lang/json/CONTAINER_from_json.py -msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." -msgstr "Пластмассовая чаша с удобной крышкой. Вмещает 750 мл жидкости." - -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "стальная бутылка" -msgstr[1] "стальные бутылки" -msgstr[2] "стальных бутылок" -msgstr[3] "стальная бутылка" - -#. ~ Description for {'str': 'steel bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Бутылка из нержавеющей стали, вмещает 750 мл жидкости." - -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "складная пластиковая бутылка" -msgstr[1] "складные пластиковые бутылки" -msgstr[2] "складных пластиковых бутылок" -msgstr[3] "складная пластиковая бутылка" - -#. ~ Description for {'str': 'foldable plastic bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Пластиковая бутылка нежёсткой конструкции для удобного хранения, вмещает 500" -" мл жидкости." - -#: lang/json/CONTAINER_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" -msgstr[0] "набор для взятия крови" -msgstr[1] "набора для взятия крови" -msgstr[2] "наборов для взятия крови" -msgstr[3] "набор для взятия крови" - -#. ~ Description for {'str': 'blood draw kit'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." -msgstr "" -"Набор для взятия крови, включающий герметичную пробирку для отобранных " -"образцов. Активируйте для взятия крови либо у себя, либо из трупа, над " -"которым вы стоите." - -#: lang/json/CONTAINER_from_json.py -msgid "small metal tank" -msgid_plural "small metal tanks" -msgstr[0] "малый металлический бак" -msgstr[1] "малых металлических бака" -msgstr[2] "малых металлических баков" -msgstr[3] "малый металлический бак" - -#. ~ Description for small metal tank -#: lang/json/CONTAINER_from_json.py -msgid "A small metal tank for holding gas or liquids. Useful for crafting." -msgstr "" -"Небольшой металлический резервуар для хранения газа или жидкостей. " -"Используется при создании предметов." - -#: lang/json/CONTAINER_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" -msgstr[0] "водоём" -msgstr[1] "водоёма" -msgstr[2] "водоёмов" -msgstr[3] "водоёмы" - -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." -msgstr "" -"Широкая и неглубокая ёмкость для хранения воды, изготовленная из " -"металлического листа. Идеально подходит для сбора воды." - -#: lang/json/CONTAINER_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" -msgstr[0] "бочка токсичных отходов" -msgstr[1] "бочки токсичных отходов" -msgstr[2] "бочкек токсичных отходов" -msgstr[3] "бочка токсичных отходов" - -#. ~ Description for {'str': 'hazardous waste drum'} -#: lang/json/CONTAINER_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." -msgstr "Жёлтая бочка для хранения опасных токсичных веществ." - -#: lang/json/CONTAINER_from_json.py -msgid "garden pot" -msgid_plural "garden pots" -msgstr[0] "садовый горшок" -msgstr[1] "садовых горшка" -msgstr[2] "садовых горшков" -msgstr[3] "садовые горшки" - -#. ~ Description for garden pot -#: lang/json/CONTAINER_from_json.py -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 "" -"Это специальный горшок для выращивания растений. Поддерживает растения в " -"комфортных для них условиях для получения максимальной урожайности. Для " -"посадки семян нужно выбрать рецепт в меню создания предметов." - -#: lang/json/CONTAINER_from_json.py -msgid "endless flask" -msgid_plural "endless flasks" -msgstr[0] "бесконечная фляга" -msgstr[1] "бесконечные фляги" -msgstr[2] "бесконечных фляг" -msgstr[3] "бесконечные фляги" - -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "Вы открываете флягу и обнаруживаете, что она полна сладчайшего виски!" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "The flask isn't done refilling yet." -msgstr "Фляга ещё не заправлена." - -#: lang/json/CONTAINER_from_json.py -msgid "cauldron of purification" -msgid_plural "cauldrons of purification" -msgstr[0] "котел очищения" -msgstr[1] "котла очищения" -msgstr[2] "котлов очищения" -msgstr[3] "котлы очищения" - -#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons -#. of purification'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This cauldron made of demon spider chitin seems to absorb the light. It " -"will hold 16 liters of material and will absorb poisons from it. It may " -"have other properties that require discovery." -msgstr "" -"Этот котел, сделанный из хитина демона-паука, кажется, поглощает свет. Он " -"вмещает 16 литров материала и поглощает яды из него. Он может иметь другие " -"свойства, которые требуют обнаружения." - -#: lang/json/CONTAINER_from_json.py -msgid "aluminum foil wrap" -msgid_plural "aluminum foil wraps" -msgstr[0] "упаковка алюминиевой фольги" -msgstr[1] "упаковки алюминиевой фольги" -msgstr[2] "упаковок алюминиевой фольги" -msgstr[3] "упаковка алюминиевой фольги" - -#. ~ Description for aluminum foil wrap -#: lang/json/CONTAINER_from_json.py -msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." -msgstr "" -"Наполовину смятый лист алюминиевой фольги, применяемой в приготовлении пищи." - -#: lang/json/CONTAINER_from_json.py -msgid "TEST gallon jug" -msgid_plural "TEST gallon jugs" -msgstr[0] "ТЕСТОВАЯ 4.5л бутылка" -msgstr[1] "ТЕСТОВЫЕ 4.5л бутылки" -msgstr[2] "ТЕСТОВЫХ 4.5л бутылок" -msgstr[3] "ТЕСТОВЫЕ 4.5л бутылки" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST small waterskin" -msgid_plural "TEST small waterskins" -msgstr[0] "ТЕСТОВЫЙ маленький бурдюк" -msgstr[1] "ТЕСТОВЫХ маленьких бурдюка" -msgstr[2] "ТЕСТОВЫХ маленьких бурдюков" -msgstr[3] "ТЕСТОВЫЕ маленькие бурдюки" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous capsule" -msgid_plural "gelatinous capsules" -msgstr[0] "желейная капсула" -msgstr[1] "желейные капсулы" -msgstr[2] "желейных капсул" -msgstr[3] "желейная капсула" - -#. ~ Description for {'str': 'gelatinous capsule'} -#. ~ Description for {'str': 'gray cocoon'} -#. ~ Description for {'str': 'oozing pod'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"While the blob is very eager to be fed, it's not as enthusiastic about " -"giving up liquids. A few alterations are necessary." -msgstr "" -"Пока сгусток очень голоден, он не будет охотно отдавать жидкость. Необходимы" -" некоторые изменения." - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous tank" -msgid_plural "gelatinous tanks" -msgstr[0] "желейный бак" -msgstr[1] "желейных бака" -msgstr[2] "желейных баков" -msgstr[3] "желейный бак" - -#: lang/json/CONTAINER_from_json.py -msgid "gray cocoon" -msgid_plural "gray cocoons" -msgstr[0] "серый кокон" -msgstr[1] "серых кокона" -msgstr[2] "серых коконов" -msgstr[3] "серый кокон" - -#: lang/json/CONTAINER_from_json.py -msgid "gray tank" -msgid_plural "gray tanks" -msgstr[0] "серый бак" -msgstr[1] "серых бака" -msgstr[2] "серых баков" -msgstr[3] "серый бак" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing pod" -msgid_plural "oozing pods" -msgstr[0] "слизевой плод" -msgstr[1] "слизевых плода" -msgstr[2] "слизевых плодов" -msgstr[3] "слизевой плод" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing tank" -msgid_plural "oozing tanks" -msgstr[0] "слизевой бак" -msgstr[1] "слизевых бака" -msgstr[2] "слизевых баков" -msgstr[3] "слизевой бак" - -#: lang/json/ENGINE_from_json.py -msgid "internal combustion engine" -msgid_plural "internal combustion engines" -msgstr[0] "двигатель внутреннего сгорания" -msgstr[1] "двигателя внутреннего сгорания" -msgstr[2] "двигателей внутреннего сгорания" -msgstr[3] "двигатели внутреннего сгорания" - -#: lang/json/ENGINE_from_json.py -msgid "base diesel engine" -msgid_plural "base diesel engines" -msgstr[0] "базовый дизельный двигатель" -msgstr[1] "базовых дизельных двигателя" -msgstr[2] "базовых дизельных двигателей" -msgstr[3] "базовые дизельные двигатели" - -#: lang/json/ENGINE_from_json.py -msgid "base gasoline engine" -msgid_plural "base gasoline engines" -msgstr[0] "базовый бензиновый двигатель" -msgstr[1] "базовых бензиновых двигателя" -msgstr[2] "базовых бензиновых двигателей" -msgstr[3] "базовые бензиновые двигатели" - -#: lang/json/ENGINE_from_json.py -msgid "base steam engine" -msgid_plural "base steam engines" -msgstr[0] "базовый паровой двигатель" -msgstr[1] "базовых паровых двигателя" -msgstr[2] "базовых паровых двигателей" -msgstr[3] "базовые паровые двигатели" - -#: lang/json/ENGINE_from_json.py -msgid "1-cylinder engine" -msgid_plural "1-cylinder engines" -msgstr[0] "1-цилиндровый двигатель" -msgstr[1] "1-цилиндровых двигателя" -msgstr[2] "1-цилиндровых двигателей" -msgstr[3] "1-цилиндровые двигатели" - -#. ~ Description for {'str': '1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A single-cylinder 4-stroke combustion engine." -msgstr "Одноцилиндровый 4-тактный двигатель внутреннего сгорания." - -#: lang/json/ENGINE_from_json.py -msgid "large 1-cylinder engine" -msgid_plural "large 1-cylinder engines" -msgstr[0] "большой 1-цилиндровый двигатель" -msgstr[1] "больших 1-цилиндровых двигателя" -msgstr[2] "больших 1-цилиндровых двигателей" -msgstr[3] "большие 1-цилиндровые двигатели" - -#. ~ Description for {'str': 'large 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A powerful high-compression single-cylinder 4-stroke combustion engine." -msgstr "" -"Мощный одноцилиндровый 4-тактный двигатель внутреннего сгорания высокого " -"давления." - -#: lang/json/ENGINE_from_json.py -msgid "small 1-cylinder engine" -msgid_plural "small 1-cylinder engines" -msgstr[0] "малый 1-цилиндровый двигатель" -msgstr[1] "малых 1-цилиндровых двигателя" -msgstr[2] "малых 1-цилиндровых двигателей" -msgstr[3] "малые 1-цилиндровые двигатели" - -#. ~ Description for {'str': 'small 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "Маленький одноцилиндровый 2-тактный двигатель внутреннего сгорания." - -#: lang/json/ENGINE_from_json.py -msgid "Inline-4 engine" -msgid_plural "Inline-4 engines" -msgstr[0] "рядный 4-цилиндровый двигатель" -msgstr[1] "рядных 4-цилиндровых двигателя" -msgstr[2] "рядных 4-цилиндровых двигателей" -msgstr[3] "рядные 4-цилиндровые двигатели" - -#. ~ Description for {'str': 'Inline-4 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "Маленький, но мощный 4-цилиндровый двигатель внутреннего сгорания." - -#: lang/json/ENGINE_from_json.py -msgid "I6 diesel engine" -msgid_plural "I6 diesel engines" -msgstr[0] "рядный 6-цилиндровый дизельный двигатель" -msgstr[1] "рядных 6-цилиндровых дизельных двигателя" -msgstr[2] "рядных 6-цилиндровых дизельных двигателей" -msgstr[3] "рядные 6-цилиндровые дизельные двигатели" - -#. ~ Description for {'str': 'I6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful straight-6 diesel engine." -msgstr "Мощный 6-цилиндровый дизельный двигатель." - -#: lang/json/ENGINE_from_json.py -msgid "V-twin engine" -msgid_plural "V-twin engines" -msgstr[0] "V-образный двигатель" -msgstr[1] "V-образных двигателя" -msgstr[2] "V-образных двигателей" -msgstr[3] "V-образные двигатели" - -#. ~ Description for {'str': 'V-twin engine'} -#: lang/json/ENGINE_from_json.py -msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "2-цилиндровый 4-тактный двигатель внутреннего сгорания." - -#: lang/json/ENGINE_from_json.py -msgid "V6 engine" -msgid_plural "V6 engines" -msgstr[0] "шестицилиндровый двигатель" -msgstr[1] "шестицилиндровых двигателя" -msgstr[2] "шестицилиндровых двигателей" -msgstr[3] "шестицилиндровые двигатели" - -#. ~ Description for {'str': 'V6 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder combustion engine." -msgstr "Мощный 6-цилиндровый двигатель внутреннего сгорания." - -#: lang/json/ENGINE_from_json.py -msgid "V6 diesel engine" -msgid_plural "V6 diesel engines" -msgstr[0] "дизельный двигатель V6" -msgstr[1] "дизельных двигателя V6 " -msgstr[2] "дизельных двигателей V6 " -msgstr[3] "дизельные двигатели V6" - -#. ~ Description for {'str': 'V6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder diesel engine." -msgstr "Мощный 6-цилиндровый дизельный двигатель." - -#: lang/json/ENGINE_from_json.py -msgid "V8 engine" -msgid_plural "V8 engines" -msgstr[0] "двигатель V8" -msgstr[1] "двигателя V8" -msgstr[2] "двигателей V8" -msgstr[3] "двигатели V8" - -#. ~ Description for {'str': 'V8 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "Большой и очень мощный 8-цилиндровый двигатель внутреннего сгорания." - -#: lang/json/ENGINE_from_json.py -msgid "V8 diesel engine" -msgid_plural "V8 diesel engines" -msgstr[0] "дизельный двигатель V8" -msgstr[1] "дизельных двигателя V8" -msgstr[2] "дизельных двигателей V8" -msgstr[3] "дизельные двигатели V8" - -#. ~ Description for {'str': 'V8 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 8-cylinder diesel engine." -msgstr "Мощный 8-цилиндровый дизельный двигатель." - -#: lang/json/ENGINE_from_json.py -msgid "V12 engine" -msgid_plural "V12 engines" -msgstr[0] "двигатель V12" -msgstr[1] "двигателя V12" -msgstr[2] "двигателей V12" -msgstr[3] "двигатели V12" - -#. ~ Description for {'str': 'V12 engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into high end " -"sports cars." -msgstr "" -"Крупный и очень мощный двигатель V12, обычно устанавливаемый на спортмобили " -"высшего класса." - -#: lang/json/ENGINE_from_json.py -msgid "V12 diesel engine" -msgid_plural "V12 diesel engines" -msgstr[0] "дизельный двигатель V12" -msgstr[1] "дизельных двигателя V12" -msgstr[2] "дизельных двигателей V12" -msgstr[3] "дизельные двигатели V12" - -#. ~ Description for {'str': 'V12 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into heavy " -"trucks." -msgstr "" -"Крупный и очень мощный двигатель V12, обычно устанавливаемый на тяжёлые " -"грузовики." - -#: lang/json/ENGINE_from_json.py -msgid "makeshift steam engine" -msgid_plural "makeshift steam engines" -msgstr[0] "самодельный паровой двигатель" -msgstr[1] "самодельных паровых двигателя" -msgstr[2] "самодельных паровых двигателей" -msgstr[3] "самодельные паровые двигатели" - -#. ~ Description for {'str': 'makeshift steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small, primitive, steam engine. An integrated boiler burns coal to heat " -"water into steam, driving a reciprocating shaft. A condenser recaptures the" -" water, making this a closed cycle system." -msgstr "" -"Маленький примитивный паровой двигатель. Уголь сгорает во встроенном котле, " -"превращая воду в пар, который приводит в движение шатун. Затем вода заново " -"собирается в конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/ENGINE_from_json.py -msgid "small steam engine" -msgid_plural "small steam engines" -msgstr[0] "маленький паровой двигатель" -msgstr[1] "маленьких паровых двигателя" -msgstr[2] "маленьких паровых двигателей" -msgstr[3] "маленькие паровые двигатели" - -#. ~ Description for {'str': 'small steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condenser recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Маленький паровой двигатель. Уголь сгорает во встроенном котле, превращая " -"воду в пар, который приводит в движение шатун. Затем вода заново собирается " -"в конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/ENGINE_from_json.py -msgid "medium steam engine" -msgid_plural "medium steam engines" -msgstr[0] "средний паровой двигатель" -msgstr[1] "средних паровых двигателя" -msgstr[2] "средних паровых двигателей" -msgstr[3] "средние паровые двигатели" - -#. ~ Description for {'str': 'medium steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium-sized steam engine. An integrated boiler burns coal to heat water " -"into steam, driving a reciprocating shaft. A condenser recaptures the " -"water, making this a closed cycle system." -msgstr "" -"Средний паровой двигатель. Уголь сгорает во встроенном котле, превращая воду" -" в пар, который приводит в движение шатун. Затем вода заново собирается в " -"конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/ENGINE_from_json.py -msgid "1350 hp gas turbine engine" -msgid_plural "1350 hp gas turbine engines" -msgstr[0] "1350 л.с. газотурбинный двигатель" -msgstr[1] "1350 л.с. газотурбинных двигателя" -msgstr[2] "1350 л.с. газотурбинных двигателей" -msgstr[3] "1350 л.с. газотурбинные двигатели" - -#. ~ Description for {'str': '1350 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A gas turbine engine, usually used for military vehicles. Known for its " -"high rate of fuel consumption." -msgstr "" -"Газотурбинный двигатель, обычно такие ставили в военную технику. Очень " -"быстро расходует топливо." - -#: lang/json/ENGINE_from_json.py -msgid "1900 hp gas turbine engine" -msgid_plural "1900 hp gas turbine engines" -msgstr[0] "1900 л.с. газотурбинный двигатель" -msgstr[1] "1900 л.с. газотурбинных двигателя" -msgstr[2] "1900 л.с. газотурбинных двигателей" -msgstr[3] "1900 л.с. газотурбинные двигатели" - -#. ~ Description for {'str': '1900 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large gas turbine engine, usually used for military helicopters. Known " -"for its high rate of fuel consumption." -msgstr "" -"Большой газотурбинный двигатель, обычно такие ставили в военные вертолёты. " -"Очень быстро расходует топливо." - -#: lang/json/ENGINE_from_json.py -msgid "6000 hp gas turbine engine" -msgid_plural "6000 hp gas turbine engines" -msgstr[0] "6000 л.с. газотурбинный двигатель" -msgstr[1] "6000 л.с. газотурбинных двигателя" -msgstr[2] "6000 л.с. газотурбинных двигателей" -msgstr[3] "6000 л.с. газотурбинные двигатели" - -#. ~ Description for {'str': '6000 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " -"high rate of fuel consumption." -msgstr "" -"Огромный газотурбинный двигатель, обычно такие ставили в V-22 Osprey. Очень " -"быстро расходует топливо." - -#: lang/json/ENGINE_from_json.py -msgid "large steam engine" -msgid_plural "large steam engines" -msgstr[0] "большой паровой двигатель" -msgstr[1] "больших паровых двигателя" -msgstr[2] "больших паровых двигателей" -msgstr[3] "большие паровые двигатели" - -#. ~ Description for {'str': 'large steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Большой паровой двигатель. Уголь сгорает во встроенном котле, превращая воду" -" в пар, который приводит в движение шатун. Затем вода заново собирается в " -"конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam engine" -msgid_plural "huge steam engines" -msgstr[0] "огромный паровой двигатель" -msgstr[1] "огромных паровых двигателя" -msgstr[2] "огромных паровых двигателей" -msgstr[3] "огромные паровые двигатели" - -#. ~ Description for {'str': 'huge steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Огромный паровой двигатель. Уголь сгорает во встроенном котле, превращая " -"воду в пар, который приводит в движение шатун. Затем вода заново собирается " -"в конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/ENGINE_from_json.py -msgid "small steam turbine" -msgid_plural "small steam turbines" -msgstr[0] "маленькая паровая турбина" -msgstr[1] "маленькие паровые турбины" -msgstr[2] "маленьких паровых турбин" -msgstr[3] "маленькие паровые турбины" - -#. ~ Description for {'str': 'small steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Маленькая паровая турбина. Уголь сгорает во встроенном котле, превращая воду" -" в пар, который придает вращение турбине. Затем вода заново собирается в " -"конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/ENGINE_from_json.py -msgid "medium steam turbine" -msgid_plural "medium steam turbines" -msgstr[0] "средняя паровая турбина" -msgstr[1] "средние паровые турбины" -msgstr[2] "средних паровых турбин" -msgstr[3] "средние паровые турбины" - -#. ~ Description for {'str': 'medium steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium sized steam turbine. An integrated boiler burns coal to heat water" -" into steam, driving a spinning turbine. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "" -"Паровая турбина среднего размера. Уголь сгорает во встроенном котле, " -"превращая воду в пар, который придает вращение турбине. Затем вода заново " -"собирается в конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/ENGINE_from_json.py -msgid "large steam turbine" -msgid_plural "large steam turbines" -msgstr[0] "большая паровая турбина" -msgstr[1] "большие паровые турбины" -msgstr[2] "больших паровых турбин" -msgstr[3] "большие паровые турбины" - -#. ~ Description for {'str': 'large steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Большая паровая турбина. Уголь сгорает во встроенном котле, превращая воду в" -" пар, который придает вращение турбине. Затем вода заново собирается в " -"конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/ENGINE_from_json.py -msgid "huge steam turbine" -msgid_plural "huge steam turbines" -msgstr[0] "огромная паровая турбина" -msgstr[1] "огромные паровые турбины" -msgstr[2] "огромных паровых турбин" -msgstr[3] "огромные паровые турбины" - -#. ~ Description for {'str': 'huge steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "" -"Огромная паровая турбина. Уголь сгорает во встроенном котле, превращая воду " -"в пар, который придает вращение турбине. Затем вода заново собирается в " -"конденсаторе, обеспечивая замкнутый цикл." - -#: lang/json/GENERIC_from_json.py -msgid "fetid goop" -msgid_plural "fetid goops" -msgstr[0] "горсть зловонной жижи" -msgstr[1] "горсти зловонной жижи" -msgstr[2] "горстей зловонной жижи" -msgstr[3] "горсти зловонной жижи" - -#. ~ Description for {'str': 'fetid goop'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A foul smelling goop. It has a disgusting texture and a powerful smell that" -" overrides every other smell around it." -msgstr "" -"Отвратительно пахнущая жижа. Противная на ощупь и обладает сильным " -"зловонием, перебивающим любые другие запахи." - -#: lang/json/GENERIC_from_json.py -msgid "limestone shard" -msgid_plural "limestone shards" -msgstr[0] "осколок известняка" -msgstr[1] "осколка известняка" -msgstr[2] "осколков известняка" -msgstr[3] "осколок известняка" - -#. ~ Description for {'str': 'limestone shard'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" -" alkaline properties may yet find some use." -msgstr "" -"Маленький осколок известняка. Довольно хрупкий и не совсем подходит в роли " -"оружия, но его щелочные свойства могут пригодиться." - -#: lang/json/GENERIC_from_json.py -msgid "rock salt" -msgid_plural "rock salt" -msgstr[0] "каменная соль" -msgstr[1] "каменной соли" -msgstr[2] "каменной соли" -msgstr[3] "каменная соль" - -#. ~ Description for {'str_sp': 'rock salt'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of rock salt crystals. Could be refined into table salt." -msgstr "" -"Пригоршня кристаллов каменной соли. Можно очистить до поваренной соли." - -#: lang/json/GENERIC_from_json.py -msgid "rhodonite" -msgid_plural "rhodonite" -msgstr[0] "родонит" -msgstr[1] "родонита" -msgstr[2] "родонита" -msgstr[3] "родонит" - -#. ~ Description for {'str_sp': 'rhodonite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of rhodonite. It has manganese dioxide covering and going through " -"it in veins, which can be obtained using a chisel." -msgstr "" -"Кусок родонита. Он покрыт диоксидом марганца, ветвящимся внутрь минерала " -"множеством жилок. Их можно извлечь при помощи долота." - -#: lang/json/GENERIC_from_json.py -msgid "zincite" -msgid_plural "zincite" -msgstr[0] "цинкит" -msgstr[1] "цинкитa" -msgstr[2] "цинкитa" -msgstr[3] "цинкит" - -#. ~ Description for {'str_sp': 'zincite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " -"reduction with a source of carbon." -msgstr "" -"Кусок цинкита. Может быть переработан в оксид цинка, затем в цинк, " -"восстановлением с помощью источника углерода." - -#: lang/json/GENERIC_from_json.py -msgid "hickory root" -msgid_plural "hickory roots" -msgstr[0] "корень гикори" -msgstr[1] "корня гикори" -msgstr[2] "корней гикори" -msgstr[3] "корень гикори" - -#. ~ Description for {'str': 'hickory root'} -#: lang/json/GENERIC_from_json.py -msgid "A root from a hickory tree. It has an earthy smell." -msgstr "Корень дерева гикори. Имеет землистый запах." - -#: lang/json/GENERIC_from_json.py -msgid "hickory nuts" -msgid_plural "hickory nuts" -msgstr[0] "орех гикори" -msgstr[1] "ореха гикори" -msgstr[2] "орехов гикори" -msgstr[3] "орехи гикори" - -#. ~ Description for {'str_sp': 'hickory nuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hickory tree, still in their shell." -msgstr "Горсть твёрдых орехов дерева гикори, по-прежнему в своей скорлупе." - -#: lang/json/GENERIC_from_json.py -msgid "pecans" -msgid_plural "pecans" -msgstr[0] "орех пекан" -msgstr[1] "ореха пекан" -msgstr[2] "орехов пекан" -msgstr[3] "орехи пекан" - -#. ~ Description for {'str_sp': 'pecans'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pecan tree, still in their shell." -msgstr "Горсть твёрдых орехов дерева пекан, всё ещё в скорлупе." - -#: lang/json/GENERIC_from_json.py -msgid "pistachios" -msgid_plural "pistachios" -msgstr[0] "фисташки" -msgstr[1] "фисташки" -msgstr[2] "фисташки" -msgstr[3] "фисташки" - -#. ~ Description for {'str_sp': 'pistachios'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pistachio tree, still in their shell." -msgstr "Горсть твёрдых орехов фисташкового дерева, всё ещё в скорлупе." - -#: lang/json/GENERIC_from_json.py -msgid "almonds" -msgid_plural "almonds" -msgstr[0] "миндаль" -msgstr[1] "миндаль" -msgstr[2] "миндаль" -msgstr[3] "миндаль" - -#. ~ Description for {'str_sp': 'almonds'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from an almond tree, still in their shell." -msgstr "Горсть твёрдых орехов миндального дерева, всё ещё в скорлупе." - -#: lang/json/GENERIC_from_json.py -msgid "peanuts" -msgid_plural "peanuts" -msgstr[0] "арахис" -msgstr[1] "арахис" -msgstr[2] "арахис" -msgstr[3] "арахис" - -#. ~ Description for {'str_sp': 'peanuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a peanut bush, still in their shell." -msgstr "Горсть твёрдых орехов арахисового кустарника, всё ещё в скорлупе." - -#: lang/json/GENERIC_from_json.py -msgid "hazelnuts" -msgid_plural "hazelnuts" -msgstr[0] "фундук" -msgstr[1] "фундук" -msgstr[2] "фундук" -msgstr[3] "фундук" - -#. ~ Description for {'str_sp': 'hazelnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hazelnut tree, still in their shell." -msgstr "Горсть твёрдых орехов лещины, всё ещё в скорлупе." - -#: lang/json/GENERIC_from_json.py -msgid "chestnuts" -msgid_plural "chestnuts" -msgstr[0] "каштан" -msgstr[1] "каштана" -msgstr[2] "каштанов" -msgstr[3] "каштаны" - -#. ~ Description for {'str_sp': 'chestnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a chestnut tree, still in their shell." -msgstr "Горсть твёрдых орехов каштанового дерева, всё ещё в скорлупе." - -#: lang/json/GENERIC_from_json.py -msgid "walnuts" -msgid_plural "walnuts" -msgstr[0] "грецкий орех" -msgstr[1] "грецких ореха" -msgstr[2] "грецких орехов" -msgstr[3] "грецкие орехи" - -#. ~ Description for {'str_sp': 'walnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a walnut tree, still in their shell." -msgstr "Горсть твёрдых грецких орехов, всё ещё в скорлупе." - -#: lang/json/GENERIC_from_json.py -msgid "steel grille" -msgid_plural "steel grilles" -msgstr[0] "стальная решётка" -msgstr[1] "стальных решётки" -msgstr[2] "стальных решёток" -msgstr[3] "стальные решётки" - -#. ~ Description for {'str': 'steel grille'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a metal grille. It can be used as a framework for making a chemical" -" catalyst." -msgstr "" -"Металлическая решётка, пригодная в качестве основы для изготовления " -"химического катализатора." - -#: lang/json/GENERIC_from_json.py -msgid "cobalt-60 pellet" -msgid_plural "cobalt-60 pellets" -msgstr[0] "гранулы кобальта-60" -msgstr[1] "гранулы кобальта-60" -msgstr[2] "гранулы кобальта-60" -msgstr[3] "гранулы кобальта-60" - -#. ~ Description for {'str': 'cobalt-60 pellet'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Radioactive material that used to be a part of some nuclear industry " -"equipment. You are yet to find some use for it." -msgstr "" -"Радиоактивный материал, который используется в ядерной индустрии. Вы всё ещё" -" можете найти ему какое-нибудь применение." - -#: lang/json/GENERIC_from_json.py -msgid "sandbag" -msgid_plural "sandbags" -msgstr[0] "мешок с песком" -msgstr[1] "мешка с песком" -msgstr[2] "мешков с песком" -msgstr[3] "мешки с песком" - -#. ~ Description for {'str': 'sandbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with sand. It can be used to construct simple " -"barricades." -msgstr "" -"Холщовый мешок, полный песка. Из него можно сложить простое заграждение." - #: lang/json/GENERIC_from_json.py -msgid "earthbag" -msgid_plural "earthbags" -msgstr[0] "мешок с землёй" -msgstr[1] "мешка с землёй" -msgstr[2] "мешков с землёй" -msgstr[3] "мешки с землёй" +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" +msgstr[0] "маленькая картонная коробка чая" +msgstr[1] "маленькие картонные коробки чая" +msgstr[2] "маленьких картонных коробок чая" +msgstr[3] "маленькие картонные коробки чая" -#. ~ Description for {'str': 'earthbag'} +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': +#. 'small cardboard boxes of tea bags'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with soil. It can be used to construct simple " -"barricades." -msgstr "" -"Холщовый мешок, полный земли. Из него можно сложить простое заграждение." +msgid "A very small cardboard box with tea brand written on it." +msgstr "Маленькая картонная коробка с маркой производителя чая." #: lang/json/GENERIC_from_json.py msgid "microwave generator" @@ -57765,7 +59332,7 @@ msgid_plural "fake items" msgstr[0] "фальшивый предмет" msgstr[1] "фальшивых предмета" msgstr[2] "фальшивых предметов" -msgstr[3] "фальшивый предмет" +msgstr[3] "фальшивые предметы" #. ~ Description for {'str': 'fake item'} #: lang/json/GENERIC_from_json.py @@ -57783,7 +59350,7 @@ msgstr[3] "недомолотое зерно" #. ~ Description for {'str_sp': 'semi ground grains'} #: lang/json/GENERIC_from_json.py msgid "A paste of half-finished milled grains, not yet flour." -msgstr "Масса из недомолотых зерен, все ещё не мука." +msgstr "Масса из частично перемолотых зерен, все ещё не мука." #: lang/json/GENERIC_from_json.py msgid "smoldering embers" @@ -57791,7 +59358,7 @@ msgid_plural "smoldering embers" msgstr[0] "тлеющий уголёк" msgstr[1] "тлеющих угольков" msgstr[2] "тлеющих угольков" -msgstr[3] "тлеющий уголёк" +msgstr[3] "тлеющие угольки" #. ~ Description for {'str_sp': 'smoldering embers'} #: lang/json/GENERIC_from_json.py @@ -57806,7 +59373,7 @@ msgid_plural "Magic 8-Balls" msgstr[0] "магический шар-восьмёрка" msgstr[1] "магических шара-восьмёрки" msgstr[2] "магических шаров-восьмёрок" -msgstr[3] "магический шар-восьмёрка" +msgstr[3] "магические шары-восьмёрки" #. ~ Description for {'str': 'Magic 8-Ball'} #: lang/json/GENERIC_from_json.py @@ -57817,6 +59384,14 @@ msgstr "" "Устройство гадания из 1950-х годов. Такая моральная поддержка, о которой вы " "не знали, что она вам нужна." +#: lang/json/GENERIC_from_json.py +msgid "deck of cards" +msgid_plural "decks of cards" +msgstr[0] "колода карт" +msgstr[1] "колоды карт" +msgstr[2] "колод карт" +msgstr[3] "колоды карт" + #. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py msgid "A deck of 52 playing cards." @@ -57828,7 +59403,7 @@ msgid_plural "coins" msgstr[0] "счастливый четвертак" msgstr[1] "счастливых четвертака" msgstr[2] "счастливых четвертаков" -msgstr[3] "счастливый четвертак" +msgstr[3] "счастливые четвертаки" #. ~ Description for {'str': 'coin'} #: lang/json/GENERIC_from_json.py @@ -57857,6 +59432,182 @@ msgstr "" "Фотография улыбающейся семьи на кемпинге. Одного из людей на фото вы, " "кажется, знаете. Правда тут он выглядит намного более чистым и счастливым." +#: lang/json/GENERIC_from_json.py +msgid "chess set" +msgid_plural "chess sets" +msgstr[0] "набор шахмат" +msgstr[1] "набора шахмат" +msgstr[2] "наборов шахмат" +msgstr[3] "наборы шахмат" + +#. ~ Description for {'str': 'chess set'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden box containing all the equipment needed to play a game of chess." +msgstr "Деревянная коробка, содержащая всё необходимое для игры в шахматы." + +#: lang/json/GENERIC_from_json.py +msgid "checkers set" +msgid_plural "checkers sets" +msgstr[0] "набор шашек" +msgstr[1] "набора шашек" +msgstr[2] "наборов шашек" +msgstr[3] "наборы шашек" + +#. ~ Description for {'str': 'checkers set'} +#: lang/json/GENERIC_from_json.py +msgid "A wooden box containing a set of round tokens used to play checkers." +msgstr "Деревянная коробка, содержащая набор круглых фишек для игры в шашки." + +#: lang/json/GENERIC_from_json.py +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" +msgstr[0] "колода карт «Волшебство»" +msgstr[1] "колоды карт «Волшебство»" +msgstr[2] "колод карт «Волшебство»" +msgstr[3] "колоды карт «Волшебство»" + +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of +#. Sorcery cards'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." +msgstr "" +"Набор карт, предназначенных для игры «Волшебство». На каждой карте забавно " +"изображен какой-нибудь монстр." + +#: lang/json/GENERIC_from_json.py +msgid "Picturesque" +msgid_plural "sets of Picturesque" +msgstr[0] "«Угадайка» " +msgstr[1] "копии «Угадайки»" +msgstr[2] "копий «Угадайки» " +msgstr[3] "копии «Угадайки»" + +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where one draws an image, and the others attempt to guess what it is." +msgstr "" +"Игра, в которой один игрок рисует, а остальные пытаются угадать, что " +"изображено." + +#: lang/json/GENERIC_from_json.py +msgid "Capitalism" +msgid_plural "sets of Capitalism" +msgstr[0] "«Монополия»" +msgstr[1] "наборы «Монополии» " +msgstr[2] "наборов «Монополии» " +msgstr[3] "наборы «Монополии» " + +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players traverse around the board buying property and swindling" +" their friends." +msgstr "" +"Игра, в которой игроки перемещаются по игральному полю, покупая недвижимость" +" и пытаясь перехитрить своих друзей." + +#: lang/json/GENERIC_from_json.py +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" +msgstr[0] "набор игры «Блобы и Бандиты»" +msgstr[1] "наборы игры «Блобы и Бандиты»" +msgstr[2] "наборов игры «Блобы и Бандиты»" +msgstr[3] "наборы игры «Блобы и Бандиты»" + +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and +#. Bandits'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A roleplaying game set in the post-apocalypse, so you can pretend to survive" +" the apocalypse while surviving the apocalypse." +msgstr "" +"Ролевая игра в сеттинге постапокалипсиса, так что вы можете разыграть " +"выживание в апокалипсисе, пока вы выживаете в апокалипсисе." + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" +msgstr[0] "набор «Батлхаммер»" +msgstr[1] "наборы «Батлхаммер»" +msgstr[2] "наборов «Батлхаммер»" +msgstr[3] "наборы «Батлхаммер»" + +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of fantasy creatures." +msgstr "" +"Стратегическая игра с набором миниатюрных фигурок фэнтезийных существ." + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" +msgstr[0] "набор «Батлхаммер 20000»" +msgstr[1] "набора «Батлхаммер 20000»" +msgstr[2] "наборов «Батлхаммер 20000»" +msgstr[3] "наборы «Батлхаммер 20000»" + +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of +#. Battlehammer 20k'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." +msgstr "" +"Стратегическая игра с набором миниатюрных фигурок космических пришельцев и " +"гротескных морских пехотинцев." + +#: lang/json/GENERIC_from_json.py +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" +msgstr[0] "набор игры «Поселенцы Ранчо»" +msgstr[1] "наборы игры «Поселенцы Ранчо»" +msgstr[2] "наборов игры «Поселенцы Ранчо»" +msgstr[3] "наборы игры «Поселенцы Ранчо»" + +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of +#. Settlers of the Ranch'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game where players build settlements and trade for supplies." +msgstr "" +"Стратегическая игра, в которой игроки строят поселения и торгуют припасами." + +#: lang/json/GENERIC_from_json.py +msgid "Warships" +msgid_plural "sets of Warships" +msgstr[0] "набор игры «Морской бой»" +msgstr[1] "наборы игры «Морской бой»" +msgstr[2] "наборов игры «Морской бой»" +msgstr[3] "наборы игры «Морской бой»" + +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players try to guess where the opponent placed their ships on " +"the board." +msgstr "" +"Игра, в которой игроки пытаются угадать, где противник разместил свои " +"корабли на игровой доске." + +#: lang/json/GENERIC_from_json.py +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" +msgstr[0] "«Загадочное убийство»" +msgstr[1] "набора для игры «Загадочное убийство»" +msgstr[2] "наборов для игры «Загадочное убийство»" +msgstr[3] "наборы для игры «Загадочное убийство»" + +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder +#. Mystery'} +#: lang/json/GENERIC_from_json.py +msgid "A game where players try to figure out who murdered the butler." +msgstr "Игра, в которой игроки пытаются выяснить, кто убил дворецкого." + #: lang/json/GENERIC_from_json.py msgid "animal" msgid_plural "none" @@ -57930,7 +59681,7 @@ msgid_plural "files" msgstr[0] "файл" msgstr[1] "файла" msgstr[2] "файлов" -msgstr[3] "файл" +msgstr[3] "файлы" #. ~ Description for {'str': 'file'} #: lang/json/GENERIC_from_json.py @@ -57946,7 +59697,7 @@ msgid "INCIDENT REPORT: IMMERSION-27A" msgid_plural "INCIDENT REPORT: IMMERSION-27As" msgstr[0] "ИНФОРМАЦИОННЫЙ ОТЧЕТ: ПОГРУЖЕНИЕ-27А" msgstr[1] "ИНФОРМАЦИОННЫХ ОТЧЕТА: ПОГРУЖЕНИЕ-27А" -msgstr[2] "ИНФОРМАЦИОННЫХ ОТЧЕТА: ПОГРУЖЕНИЕ-27А" +msgstr[2] "ИНФОРМАЦИОННЫХ ОТЧЕТОВ: ПОГРУЖЕНИЕ-27А" msgstr[3] "ИНФОРМАЦИОННЫЕ ОТЧЕТЫ: ПОГРУЖЕНИЕ-27А" #. ~ Description for {'str': 'INCIDENT REPORT: IMMERSION-27A'} @@ -57998,7 +59749,7 @@ msgid_plural "withered plants" msgstr[0] "увядшее растение" msgstr[1] "увядших растения" msgstr[2] "увядших растений" -msgstr[3] "увядшее растение" +msgstr[3] "увядшие растения" #. ~ Description for {'str': 'withered plant'} #: lang/json/GENERIC_from_json.py @@ -58015,7 +59766,7 @@ msgid_plural "fur pelts" msgstr[0] "шкура" msgstr[1] "шкуры" msgstr[2] "шкур" -msgstr[3] "шкура" +msgstr[3] "шкуры" #. ~ Description for {'str': 'fur pelt'} #: lang/json/GENERIC_from_json.py @@ -58028,7 +59779,7 @@ msgid_plural "faux fur pelts" msgstr[0] "кусок искусственного меха" msgstr[1] "куска искусственного меха" msgstr[2] "кусков искусственного меха" -msgstr[3] "кусок искусственного меха" +msgstr[3] "куски искусственного меха" #. ~ Description for {'str': 'faux fur pelt'} #: lang/json/GENERIC_from_json.py @@ -58043,7 +59794,7 @@ msgid_plural "leather patches" msgstr[0] "кожаный лоскут" msgstr[1] "кожаных лоскута" msgstr[2] "кожаных лоскутов" -msgstr[3] "кожаный лоскут" +msgstr[3] "кожаные лоскуты" #. ~ Description for {'str': 'leather patch', 'str_pl': 'leather patches'} #: lang/json/GENERIC_from_json.py @@ -58058,7 +59809,7 @@ msgid_plural "felt patches" msgstr[0] "лоскут войлока" msgstr[1] "лоскута войлока" msgstr[2] "лоскутов войлока" -msgstr[3] "лоскут войлока" +msgstr[3] "лоскуты войлока" #. ~ Description for {'str': 'felt patch', 'str_pl': 'felt patches'} #: lang/json/GENERIC_from_json.py @@ -58071,7 +59822,7 @@ msgid_plural "Nomex patches" msgstr[0] "лоскут номекса" msgstr[1] "лоскута номекса" msgstr[2] "лоскутов номекса" -msgstr[3] "лоскут номекса" +msgstr[3] "лоскуты номекса" #. ~ Description for {'str': 'Nomex patch', 'str_pl': 'Nomex patches'} #: lang/json/GENERIC_from_json.py @@ -58095,9 +59846,9 @@ msgstr "Тюбик сильного клея. Используется во мн msgid "bone glue" msgid_plural "bone glues" msgstr[0] "костный клей" -msgstr[1] "костного клея" -msgstr[2] "костного клея" -msgstr[3] "костного клея" +msgstr[1] "костный клей" +msgstr[2] "костный клей" +msgstr[3] "костный клей" #. ~ Description for {'str': 'bone glue'} #: lang/json/GENERIC_from_json.py @@ -58127,9 +59878,9 @@ msgstr "Используется для удобрения растений." msgid "steel chain" msgid_plural "steel chains" msgstr[0] "стальная цепь" -msgstr[1] "стальных цепи" +msgstr[1] "стальные цепи" msgstr[2] "стальных цепей" -msgstr[3] "стальная цепь" +msgstr[3] "стальные цепи" #. ~ Description for {'str': 'steel chain'} #: lang/json/GENERIC_from_json.py @@ -58147,7 +59898,7 @@ msgid_plural "chunks of chitin" msgstr[0] "кусок хитина" msgstr[1] "куска хитина" msgstr[2] "кусков хитина" -msgstr[3] "кусок хитина" +msgstr[3] "куски хитина" #. ~ Description for {'str': 'chunk of chitin', 'str_pl': 'chunks of chitin'} #: lang/json/GENERIC_from_json.py @@ -58178,7 +59929,7 @@ msgid_plural "chunks of biosilicified chitin" msgstr[0] "кусок биосилицированного хитина" msgstr[1] "куска биосилицированного хитина" msgstr[2] "кусков биосилицированного хитина" -msgstr[3] "кусок биосилицированного хитина" +msgstr[3] "куски биосилицированного хитина" #. ~ Description for {'str': 'chunk of biosilicified chitin', 'str_pl': #. 'chunks of biosilicified chitin'} @@ -58196,7 +59947,7 @@ msgid_plural "bundles of rags" msgstr[0] "связка тряпок" msgstr[1] "связки тряпок" msgstr[2] "связок тряпок" -msgstr[3] "связка тряпок" +msgstr[3] "связки тряпок" #. ~ Description for {'str': 'bundle of rags', 'str_pl': 'bundles of rags'} #: lang/json/GENERIC_from_json.py @@ -58212,7 +59963,7 @@ msgid_plural "bundles of leather" msgstr[0] "связка кож" msgstr[1] "связки кож" msgstr[2] "связок кож" -msgstr[3] "связка кож" +msgstr[3] "связки кож" #. ~ Description for {'str': 'bundle of leather', 'str_pl': 'bundles of #. leather'} @@ -58230,7 +59981,7 @@ msgid_plural "bundles of felt" msgstr[0] "связка войлока" msgstr[1] "связки войлока" msgstr[2] "связок войлока" -msgstr[3] "связка войлока" +msgstr[3] "связки войлока" #. ~ Description for {'str': 'bundle of felt', 'str_pl': 'bundles of felt'} #: lang/json/GENERIC_from_json.py @@ -58261,7 +60012,7 @@ msgid_plural "biollante buds" msgstr[0] "бутон Биолланте" msgstr[1] "бутона Биолланте" msgstr[2] "бутонов Биолланте" -msgstr[3] "бутон Биолланте" +msgstr[3] "бутоны Биолланте" #. ~ Description for {'str': 'biollante bud'} #: lang/json/GENERIC_from_json.py @@ -58278,7 +60029,7 @@ msgid_plural "empty canisters" msgstr[0] "пустой контейнер" msgstr[1] "пустых контейнера" msgstr[2] "пустых контейнеров" -msgstr[3] "пустой контейнер" +msgstr[3] "пустые контейнеры" #. ~ Description for {'str': 'empty canister'} #: lang/json/GENERIC_from_json.py @@ -58294,7 +60045,7 @@ msgid_plural "petrified eyes" msgstr[0] "окаменелый глаз" msgstr[1] "окаменелых глаза" msgstr[2] "окаменелых глаз" -msgstr[3] "окаменелый глаз" +msgstr[3] "окаменелые глаза" #. ~ Description for {'str': 'petrified eye'} #: lang/json/GENERIC_from_json.py @@ -58308,10 +60059,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "spiral stone" msgid_plural "spiral stones" -msgstr[0] "винтовой камень" -msgstr[1] "винтовых камня" -msgstr[2] "винтовых камней" -msgstr[3] "винтовой камень" +msgstr[0] "спиральный камень" +msgstr[1] "спиральных камня" +msgstr[2] "спиральных камней" +msgstr[3] "спиральные камни" #. ~ Description for {'str': 'spiral stone'} #: lang/json/GENERIC_from_json.py @@ -58330,7 +60081,7 @@ msgid_plural "USB drives" msgstr[0] "USB накопитель" msgstr[1] "USB накопителя" msgstr[2] "USB накопителей" -msgstr[3] "USB накопитель" +msgstr[3] "USB накопители" #. ~ Description for {'str': 'USB drive'} #: lang/json/GENERIC_from_json.py @@ -58360,7 +60111,7 @@ msgid_plural "candlesticks" msgstr[0] "подсвечник" msgstr[1] "подсвечника" msgstr[2] "подсвечников" -msgstr[3] "подсвечник" +msgstr[3] "подсвечники" #. ~ Description for {'str': 'candlestick'} #: lang/json/GENERIC_from_json.py @@ -58374,7 +60125,7 @@ msgid_plural "blades" msgstr[0] "лезвие" msgstr[1] "лезвия" msgstr[2] "лезвий" -msgstr[3] "лезвие" +msgstr[3] "лезвия" #. ~ Description for {'str': 'blade'} #: lang/json/GENERIC_from_json.py @@ -58408,7 +60159,7 @@ msgid_plural "circular sawblades" msgstr[0] "диск циркулярной пилы" msgstr[1] "диска циркулярной пилы" msgstr[2] "дисков циркулярной пилы" -msgstr[3] "диск циркулярной пилы" +msgstr[3] "диски циркулярной пилы" #. ~ Description for {'str': 'circular sawblade'} #: lang/json/GENERIC_from_json.py @@ -58425,7 +60176,7 @@ msgid_plural "tree spiles" msgstr[0] "бурав для дерева" msgstr[1] "бурава для дерева" msgstr[2] "буравов для дерева" -msgstr[3] "бурав для дерева" +msgstr[3] "буравы для дерева" #. ~ Description for {'str': 'tree spile'} #: lang/json/GENERIC_from_json.py @@ -58493,7 +60244,7 @@ msgid_plural "rebars" msgstr[0] "арматура" msgstr[1] "арматуры" msgstr[2] "арматур" -msgstr[3] "арматура" +msgstr[3] "арматуры" #. ~ Description for {'str': 'rebar'} #: lang/json/GENERIC_from_json.py @@ -58538,7 +60289,7 @@ msgid_plural "bone skewers" msgstr[0] "костяной шампур" msgstr[1] "костяных шампура" msgstr[2] "костяных шампуров" -msgstr[3] "костяной шампур" +msgstr[3] "костяные шампуры" #. ~ Description for {'str': 'bone skewer'} #: lang/json/GENERIC_from_json.py @@ -58555,7 +60306,7 @@ msgid_plural "burnt out torches" msgstr[0] "сгоревший факел" msgstr[1] "сгоревших факела" msgstr[2] "сгоревших факелов" -msgstr[3] "сгоревший факел" +msgstr[3] "сгоревшие факела" #. ~ Description for {'str': 'burnt out torch', 'str_pl': 'burnt out torches'} #: lang/json/GENERIC_from_json.py @@ -58571,7 +60322,7 @@ msgid_plural "dead flares" msgstr[0] "потухший осветительный снаряд" msgstr[1] "потухших осветительных снаряда" msgstr[2] "потухших осветительных снарядов" -msgstr[3] "потухший осветительный снаряд" +msgstr[3] "потухшие осветительные снаряды" #. ~ Description for {'str': 'dead flare'} #: lang/json/GENERIC_from_json.py @@ -58584,7 +60335,7 @@ msgid_plural "springs" msgstr[0] "пружина" msgstr[1] "пружины" msgstr[2] "пружин" -msgstr[3] "пружина" +msgstr[3] "пружины" #. ~ Description for {'str': 'spring'} #: lang/json/GENERIC_from_json.py @@ -58598,7 +60349,7 @@ msgid_plural "lawnmowers" msgstr[0] "газонокосилка" msgstr[1] "газонокосилки" msgstr[2] "газонокосилок" -msgstr[3] "газонокосилка" +msgstr[3] "газонокосилки" #. ~ Description for {'str': 'lawnmower'} #: lang/json/GENERIC_from_json.py @@ -58613,9 +60364,9 @@ msgstr "" msgid "damaged tent" msgid_plural "damaged tents" msgstr[0] "повреждённая палатка" -msgstr[1] "повреждённых палатки" +msgstr[1] "повреждённые палатки" msgstr[2] "повреждённых палаток" -msgstr[3] "повреждённая палатка" +msgstr[3] "повреждённые палатки" #. ~ Description for {'str': 'damaged tent'} #: lang/json/GENERIC_from_json.py @@ -58623,16 +60374,16 @@ msgid "" "A small tent, just big enough to fit a person comfortably. This tent is " "broken and cannot be deployed." msgstr "" -"Маленькая палатка на одного человека. Эта палатка сломана и не может быть " -"развёрнута." +"Маленькая палатка на одного человека. Эта палатка повреждена и не может быть" +" установлена." #: lang/json/GENERIC_from_json.py msgid "large damaged tent" msgid_plural "large damaged tents" msgstr[0] "большая повреждённая палатка" -msgstr[1] "больших повреждённых палатки" +msgstr[1] "большие повреждённые палатки" msgstr[2] "больших повреждённых палаток" -msgstr[3] "большая повреждённая палатка" +msgstr[3] "большие повреждённые палатки" #. ~ Description for {'str': 'large damaged tent'} #: lang/json/GENERIC_from_json.py @@ -58641,7 +60392,7 @@ msgid "" "broken and can not be deployed." msgstr "" "Большая палатка на семью, очень громоздкая, но в ней полно свободного места." -" Эта палатка повреждена и не может быть развёрнута." +" Эта палатка повреждена и не может быть установлена." #: lang/json/GENERIC_from_json.py msgid "heating element" @@ -58649,7 +60400,7 @@ msgid_plural "heating elements" msgstr[0] "нагревательный элемент" msgstr[1] "нагревательных элемента" msgstr[2] "нагревательных элементов" -msgstr[3] "нагревательный элемент" +msgstr[3] "нагревательные элементы" #. ~ Description for {'str': 'heating element'} #: lang/json/GENERIC_from_json.py @@ -58680,7 +60431,7 @@ msgid_plural "televisions" msgstr[0] "телевизор" msgstr[1] "телевизора" msgstr[2] "телевизоров" -msgstr[3] "телевизор" +msgstr[3] "телевизоры" #. ~ Description for {'str': 'television'} #: lang/json/GENERIC_from_json.py @@ -58693,7 +60444,7 @@ msgid_plural "pilot lights" msgstr[0] "запальник" msgstr[1] "запальника" msgstr[2] "запальников" -msgstr[3] "запальник" +msgstr[3] "запальники" #. ~ Description for {'str': 'pilot light'} #: lang/json/GENERIC_from_json.py @@ -58743,13 +60494,12 @@ msgid_plural "toasters" msgstr[0] "тостер" msgstr[1] "тостера" msgstr[2] "тостеров" -msgstr[3] "тостер" +msgstr[3] "тостеры" #. ~ Description for {'str': 'toaster'} #: lang/json/GENERIC_from_json.py msgid "A small two slice toaster, not much use as anything but spare parts" -msgstr "" -"Небольшой тостер. Не особо полезен в качестве чего-либо кроме как запчастей." +msgstr "Небольшой тостер. Не особо полезен, разве что разобрать на запчасти." #: lang/json/GENERIC_from_json.py msgid "microwave" @@ -58757,7 +60507,7 @@ msgid_plural "microwaves" msgstr[0] "микроволновка" msgstr[1] "микроволновки" msgstr[2] "микроволновок" -msgstr[3] "микроволновка" +msgstr[3] "микроволновки" #. ~ Description for {'str': 'microwave'} #: lang/json/GENERIC_from_json.py @@ -58774,7 +60524,7 @@ msgid_plural "laptop computers" msgstr[0] "ноутбук" msgstr[1] "ноутбука" msgstr[2] "ноутбуков" -msgstr[3] "ноутбук" +msgstr[3] "ноутбуки" #. ~ Description for {'str': 'laptop computer'} #: lang/json/GENERIC_from_json.py @@ -58787,10 +60537,9 @@ msgid_plural "broken eyebots" msgstr[0] "сломанный глазобот" msgstr[1] "сломанных глазобота" msgstr[2] "сломанных глазоботов" -msgstr[3] "сломанный глазобот" +msgstr[3] "сломанные глазоботы" #. ~ Description for {'str': 'broken eyebot'} -#. ~ Description for broken eyebot #: lang/json/GENERIC_from_json.py msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " @@ -58805,7 +60554,7 @@ msgid_plural "broken skitterbots" msgstr[0] "сломанный робот-жук" msgstr[1] "сломанных робота-жука" msgstr[2] "сломанных роботов-жуков" -msgstr[3] "сломанный робот-жук" +msgstr[3] "сломанные роботы-жуки" #. ~ Description for {'str': 'broken skitterbot'} #: lang/json/GENERIC_from_json.py @@ -58819,10 +60568,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken lab defense bot" msgid_plural "broken lab defense bots" -msgstr[0] "сломанный лабораторный оборонный робот" -msgstr[1] "сломанных лабораторных оборонных робота" -msgstr[2] "сломанных лабораторных оборонных роботов" -msgstr[3] "сломанные лабораторные оборонные роботы" +msgstr[0] "сломанный лабораторный охранный робот" +msgstr[1] "сломанных лабораторных охранных робота" +msgstr[2] "сломанных лабораторных охранных роботов" +msgstr[3] "сломанные лабораторные охранные роботы" #. ~ Description for {'str': 'broken lab defense bot'} #: lang/json/GENERIC_from_json.py @@ -58830,7 +60579,7 @@ msgid "" "A broken lab defense bot, with its casing broken and fluid drained. Could " "be gutted for parts." msgstr "" -"Сломанный лабораторный оборонный робот. Его корпус пробит, а жидкость " +"Сломанный лабораторный охранный робот. Его корпус пробит, а жидкость " "вытекла. Его можно разобрать на запчасти." #: lang/json/GENERIC_from_json.py @@ -58839,7 +60588,7 @@ msgid_plural "broken police bots" msgstr[0] "сломанный робот-полицейский" msgstr[1] "сломанных робота-полицейских" msgstr[2] "сломанных роботов-полицейских" -msgstr[3] "сломанный робот-полицейский" +msgstr[3] "сломанные роботы-полицейские" #. ~ Description for {'str': 'broken police bot'} #: lang/json/GENERIC_from_json.py @@ -58896,10 +60645,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken riot control bot" msgid_plural "broken riot control bots" -msgstr[0] "сломанный робот осназа" -msgstr[1] "сломанных робота осназа" -msgstr[2] "сломанных роботов осназа" -msgstr[3] "сломанный робот осназа" +msgstr[0] "сломанный робот подавления беспорядков" +msgstr[1] "сломанных робота подавления беспорядков" +msgstr[2] "сломанных роботов подавления беспорядков" +msgstr[3] "сломанные роботы подавления беспорядков" #. ~ Description for {'str': 'broken riot control bot'} #: lang/json/GENERIC_from_json.py @@ -58933,10 +60682,9 @@ msgid_plural "broken miner bots" msgstr[0] "сломанный робот-сапёр" msgstr[1] "сломанных робота-сапёра" msgstr[2] "сломанных роботов-сапёров" -msgstr[3] "сломанный робот-сапёр" +msgstr[3] "сломанные роботы-сапёры" #. ~ Description for {'str': 'broken miner bot'} -#. ~ Description for broken miner bot #: lang/json/GENERIC_from_json.py msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " @@ -58979,10 +60727,10 @@ msgstr[3] "сломанные боевые мехи" #: lang/json/GENERIC_from_json.py msgid "broken riot dispatch" msgid_plural "broken riot dispatches" -msgstr[0] "сломанный робот-носитель осназа" -msgstr[1] "сломанных робота-носителя осназа" -msgstr[2] "сломанных роботов-носителей осназа" -msgstr[3] "сломанные роботы-носители осназа" +msgstr[0] "сломанный робот-носитель подавления беспорядков" +msgstr[1] "сломанных робота-носителя подавления беспорядков" +msgstr[2] "сломанных роботов-носителей подавления беспорядков" +msgstr[3] "сломанные роботы-носители подавления беспорядков" #. ~ Description for {'str': 'broken riot dispatch', 'str_pl': 'broken riot #. dispatches'} @@ -58991,8 +60739,9 @@ msgid "" "A broken riot dispatch, with its mesh midsection filled with fried manhacks " "and its motor limp and still. Could be gutted for parts." msgstr "" -"Сломанный робот-носитель осназа, его средняя часть заполнена перегоревшими " -"мэнхаками, мотор тих и неподвижен. Можно разобрать на запчасти." +"Сломанный робот-носитель подавления беспорядков, его средняя часть заполнена" +" перегоревшими мэнхаками, мотор тих и неподвижен. Можно разобрать на " +"запчасти." #: lang/json/GENERIC_from_json.py msgid "broken military dispatch" @@ -59020,11 +60769,9 @@ msgid_plural "broken manhacks" msgstr[0] "сломанный мэнхак" msgstr[1] "сломанных мэнхака" msgstr[2] "сломанных мэнхаков" -msgstr[3] "сломанный мэнхак" +msgstr[3] "сломанные мэнхаки" #. ~ Description for {'str': 'broken manhack'} -#. ~ Description for broken hack -#. ~ Description for broken manhack #: lang/json/GENERIC_from_json.py msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " @@ -59039,10 +60786,9 @@ msgid_plural "broken grenade hacks" msgstr[0] "сломанный дрон-граната" msgstr[1] "сломанных дрона-гранаты" msgstr[2] "сломанных дронов-гранат" -msgstr[3] "сломанный дрон-граната" +msgstr[3] "сломанные дроны-гранаты" #. ~ Description for {'str': 'broken grenade hack'} -#. ~ Description for broken grenade hack #: lang/json/GENERIC_from_json.py msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " @@ -59057,17 +60803,16 @@ msgid_plural "broken mininuke hacks" msgstr[0] "сломанный дрон ядерная мини-бомба" msgstr[1] " сломанных дрона ядерная мини-бомба" msgstr[2] "сломанных дронов ядерная мини-бомба" -msgstr[3] "сломанный дрон ядерная мини-бомба" +msgstr[3] "сломанные дроны ядерные мини-бомбы" #. ~ Description for {'str': 'broken mininuke hack'} -#. ~ Description for broken mininuke hack #: lang/json/GENERIC_from_json.py msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " "be gutted for parts." msgstr "" -"Сломанный дрон ядерная мини-бомба. Даже простой взгляд на обломки вызывает у" -" вас дрожь. Его можно разобрать на запчасти." +"Сломанный дрон с ядерной мини-бомбой. Даже простой взгляд на обломки " +"вызывает у вас дрожь. Его можно разобрать на запчасти." #: lang/json/GENERIC_from_json.py msgid "broken tear gas hack" @@ -59075,17 +60820,16 @@ msgid_plural "broken tear gas hacks" msgstr[0] "сломанный дрон слезоточивая граната" msgstr[1] "сломанных дрона слезоточивая граната" msgstr[2] "сломанных дронов слезоточивая граната" -msgstr[3] "сломанный дрон слезоточивая граната" +msgstr[3] "сломанные дроны слезоточивые гранаты" #. ~ Description for {'str': 'broken tear gas hack'} -#. ~ Description for broken tear gas hack #: lang/json/GENERIC_from_json.py msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " "solid ground. Could be gutted for parts." msgstr "" -"Сломанный дрон слезоточивая граната. Теперь он лежит на земле и мало чем " -"угрожает. Его можно разобрать на запчасти." +"Сломанный дрон со слезоточивой гранатой. Теперь он лежит на земле и мало чем" +" угрожает. Его можно разобрать на запчасти." #: lang/json/GENERIC_from_json.py msgid "broken EMP hack" @@ -59093,17 +60837,16 @@ msgid_plural "broken EMP hacks" msgstr[0] "сломанный дрон ЭМИ-граната" msgstr[1] "сломанных дрона ЭМИ-граната" msgstr[2] "сломанных дронов ЭМИ-граната" -msgstr[3] "сломанный дрон ЭМИ-граната" +msgstr[3] "сломанные дроны ЭМИ-гранаты" #. ~ Description for {'str': 'broken EMP hack'} -#. ~ Description for broken EMP hack #: lang/json/GENERIC_from_json.py msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " "ground. Could be gutted for parts." msgstr "" -"Сломанный дрон ЭМИ-граната. Теперь он лежит на земле и мало чем угрожает. " -"Его можно разобрать на запчасти." +"Сломанный дрон с ЭМИ-гранатой. Теперь он лежит на земле и мало чем угрожает." +" Его можно разобрать на запчасти." #: lang/json/GENERIC_from_json.py msgid "broken flashbang hack" @@ -59111,10 +60854,9 @@ msgid_plural "broken flashbang hacks" msgstr[0] "сломанный дрон светошумовая граната" msgstr[1] "сломанных дрона светошумовая граната" msgstr[2] "сломанных дронов светошумовая граната" -msgstr[3] "сломанный дрон светошумовая граната" +msgstr[3] "сломанные дроны светошумовые гранаты" #. ~ Description for {'str': 'broken flashbang hack'} -#. ~ Description for broken flashbang hack #: lang/json/GENERIC_from_json.py msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " @@ -59129,25 +60871,41 @@ msgid_plural "broken C-4 hacks" msgstr[0] "сломанный дрон С-4" msgstr[1] "сломанных дрона С-4" msgstr[2] "сломанных дронов С-4" -msgstr[3] "сломанный дрон С-4" +msgstr[3] "сломанные дроны С-4" #. ~ Description for {'str': 'broken C-4 hack'} -#. ~ Description for broken C-4 hack #: lang/json/GENERIC_from_json.py msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " "ground. Could be gutted for parts." msgstr "" -"Сломанный дрон С-4. Теперь он лежит на земле и мало чем угрожает. Его можно " -"разобрать на запчасти." +"Сломанный дрон с взрывчаткой С-4. Теперь он лежит на земле и мало чем " +"угрожает. Его можно разобрать на запчасти." + +#: lang/json/GENERIC_from_json.py +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" +msgstr[0] "сломанный громкоговоритель" +msgstr[1] "сломанных громкоговорителя" +msgstr[2] "сломанных громкоговорителей" +msgstr[3] "сломанные громкоговорители" + +#. ~ Description for {'str': 'broken loudspeaker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." +msgstr "" +"Сломанный громкоговоритель. Теперь стало так тихо… Можно разобрать на " +"запчасти." #: lang/json/GENERIC_from_json.py msgid "processor board" msgid_plural "processor boards" msgstr[0] "материнская плата" -msgstr[1] "материнских платы" +msgstr[1] "материнские платы" msgstr[2] "материнских плат" -msgstr[3] "материнская плата" +msgstr[3] "материнские платы" #. ~ Description for {'str': 'processor board'} #: lang/json/GENERIC_from_json.py @@ -59174,7 +60932,7 @@ msgid_plural "power converters" msgstr[0] "преобразователь напряжения" msgstr[1] "преобразователя напряжения" msgstr[2] "преобразователей напряжения" -msgstr[3] "преобразователь напряжения" +msgstr[3] "преобразователи напряжения" #. ~ Description for {'str': 'power converter'} #: lang/json/GENERIC_from_json.py @@ -59187,7 +60945,7 @@ msgid_plural "amplifier circuits" msgstr[0] "усилитель" msgstr[1] "усилителя" msgstr[2] "усилителей" -msgstr[3] "усилитель" +msgstr[3] "усилители" #. ~ Description for {'str': 'amplifier circuit'} #: lang/json/GENERIC_from_json.py @@ -59204,7 +60962,7 @@ msgid_plural "transponder circuits" msgstr[0] "передатчик" msgstr[1] "передатчика" msgstr[2] "передатчиков" -msgstr[3] "передатчик" +msgstr[3] "передатчики" #. ~ Description for {'str': 'transponder circuit'} #: lang/json/GENERIC_from_json.py @@ -59221,7 +60979,7 @@ msgid_plural "signal receivers" msgstr[0] "приёмник" msgstr[1] "приёмника" msgstr[2] "приёмников" -msgstr[3] "приёмник" +msgstr[3] "приёмники" #. ~ Description for {'str': 'signal receiver'} #: lang/json/GENERIC_from_json.py @@ -59229,7 +60987,7 @@ msgid "" "A module designed to receive many forms of signals. Useful for crafting " "communications equipment." msgstr "" -"Схема предназначена для приёма сигнала. Используется для создания " +"Схема, предназначеная для приёма сигнала. Используется для создания " "коммуникационной аппаратуры." #: lang/json/GENERIC_from_json.py @@ -59255,7 +61013,7 @@ msgid_plural "small LCD screens" msgstr[0] "маленький ЖК-дисплей" msgstr[1] "маленьких ЖК-дисплея" msgstr[2] "маленьких ЖК-дисплеев" -msgstr[3] "маленький ЖК-дисплей" +msgstr[3] "маленькие ЖК-дисплей" #. ~ Description for {'str': 'small LCD screen'} #: lang/json/GENERIC_from_json.py @@ -59270,9 +61028,9 @@ msgstr "" msgid "high-quality lens" msgid_plural "high-quality lenses" msgstr[0] "высококачественная линза" -msgstr[1] "высококачественных линзы" +msgstr[1] "высококачественные линзы" msgstr[2] "высококачественных линз" -msgstr[3] "высококачественная линза" +msgstr[3] "высококачественные линзы" #. ~ Description for {'str': 'high-quality lens', 'str_pl': 'high-quality #. lenses'} @@ -59299,8 +61057,8 @@ msgid "" "A small high-quality lens, useful for focusing or diffusing light. Might be" " useful for crafting." msgstr "" -"Малая высококачественная линза, полезная для фокусировки или рассеивания " -"света. Может пригодиться при создании предметов." +"Маленькая высококачественная линза, полезная для фокусировки или рассеивания" +" света. Может пригодиться при создании предметов." #: lang/json/GENERIC_from_json.py msgid "pair of tinted glass" @@ -59308,7 +61066,7 @@ msgid_plural "pairs of tinted glass" msgstr[0] "пара тонированных стекол" msgstr[1] "пары тонированных стекол" msgstr[2] "пар тонированных стекол" -msgstr[3] "пара тонированных стёкол" +msgstr[3] "пары тонированных стекол" #. ~ Description for {'str': 'pair of tinted glass', 'str_pl': 'pairs of #. tinted glass'} @@ -59316,7 +61074,8 @@ msgstr[3] "пара тонированных стёкол" msgid "" "A pair of small darkened glass, like the one that sunglasses are made of." msgstr "" -"Пара маленьких тёмных стёкол. Такие стёкла вставляются в солнечные очки." +"Пара маленьких затемнённых стёкол. Такие стёкла вставляются в солнечные " +"очки." #: lang/json/GENERIC_from_json.py msgid "burnt out bionic" @@ -59334,8 +61093,8 @@ msgid "" "useless." msgstr "" "Полезная в прошлом бионика не выдержала слишком интенсивного использования. " -"Это устройство было разрушено чрезмерным током и теперь абсолютно " -"бесполезно." +"Это устройство было разрушено слишком сильным разрядом тока и теперь " +"абсолютно бесполезно." #: lang/json/GENERIC_from_json.py msgid "nanofabricator template" @@ -59375,7 +61134,7 @@ msgid "" msgstr "" "Высокотехнологичная оптическая система хранения данных с чертежами для " "создания сложной кремниевой фотонной схемы. Когда-то эти данные стоили " -"миллионы, но теперь вряд ли сгодятся на более, чем крутое пресс-папье." +"миллионы, но теперь не более чем крутое пресс-папье." #: lang/json/GENERIC_from_json.py msgid "antenna" @@ -59383,7 +61142,7 @@ msgid_plural "antennas" msgstr[0] "антенна" msgstr[1] "антенны" msgstr[2] "антенн" -msgstr[3] "антенна" +msgstr[3] "антенны" #. ~ Description for {'str': 'antenna'} #: lang/json/GENERIC_from_json.py @@ -59397,7 +61156,7 @@ msgid_plural "micro motors" msgstr[0] "микромотор" msgstr[1] "микромотора" msgstr[2] "микромоторов" -msgstr[3] "микромотор" +msgstr[3] "микромоторы" #. ~ Description for {'str': 'micro motor'} #: lang/json/GENERIC_from_json.py @@ -59412,9 +61171,9 @@ msgstr "" msgid "circuit board" msgid_plural "circuit boards" msgstr[0] "печатная плата" -msgstr[1] "печатных платы" +msgstr[1] "печатные платы" msgstr[2] "печатных плат" -msgstr[3] "печатная плата" +msgstr[3] "печатные платы" #. ~ Description for {'str': 'circuit board'} #: lang/json/GENERIC_from_json.py @@ -59422,7 +61181,7 @@ msgid "" "A printed card that supports and electrically connects electronic components" " on a non-conductive substrate." msgstr "" -"Плата для соединения и монтажа электронных компонентов на токонепроводящей " +"Плата для соединения и монтажа электронных компонентов на изолирующей " "подложке." #: lang/json/GENERIC_from_json.py @@ -59430,7 +61189,7 @@ msgid "electronic scrap" msgid_plural "electronic scraps" msgstr[0] "электронный компонент" msgstr[1] "электронных компонента" -msgstr[2] "электронных компонент" +msgstr[2] "электронных компонентов" msgstr[3] "электронные компоненты" #. ~ Description for {'str': 'electronic scrap'} @@ -59448,7 +61207,7 @@ msgid_plural "radio repeater mods" msgstr[0] "модификация: ретранслятор" msgstr[1] "модификации: ретранслятор" msgstr[2] "модификаций: ретранслятор" -msgstr[3] "модификация: ретранслятор" +msgstr[3] "модификации: ретранслятор" #. ~ Description for {'str': 'radio repeater mod'} #: lang/json/GENERIC_from_json.py @@ -59464,7 +61223,7 @@ msgid_plural "desk fans" msgstr[0] "настольный вентилятор" msgstr[1] "настольных вентилятора" msgstr[2] "настольных вентиляторов" -msgstr[3] "настольный вентилятор" +msgstr[3] "настольные вентиляторы" #. ~ Description for {'str': 'desk fan'} #: lang/json/GENERIC_from_json.py @@ -59479,7 +61238,7 @@ msgid_plural "ceramic armor plates" msgstr[0] "пластина керамической брони" msgstr[1] "пластины керамической брони" msgstr[2] "пластин керамической брони" -msgstr[3] "пластина керамической брони" +msgstr[3] "пластины керамической брони" #. ~ Description for {'str': 'ceramic armor plate'} #: lang/json/GENERIC_from_json.py @@ -59510,9 +61269,9 @@ msgstr "" msgid "blood soaked rag" msgid_plural "blood soaked rags" msgstr[0] "пропитанная кровью тряпка" -msgstr[1] "пропитанных кровью тряпки" +msgstr[1] "пропитанные кровью тряпки" msgstr[2] "пропитанных кровью тряпок" -msgstr[3] "пропитанная кровью тряпка" +msgstr[3] "пропитанные кровью тряпки" #. ~ Description for {'str': 'blood soaked rag'} #: lang/json/GENERIC_from_json.py @@ -59524,10 +61283,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "pipe cleaner" msgid_plural "pipe cleaners" -msgstr[0] "трубочист" -msgstr[1] "трубочиста" -msgstr[2] "трубочистов" -msgstr[3] "трубочисты" +msgstr[0] "шомпол" +msgstr[1] "шомпола" +msgstr[2] "шомполов" +msgstr[3] "шомполы" #. ~ Description for {'str': 'pipe cleaner'} #: lang/json/GENERIC_from_json.py @@ -59559,7 +61318,7 @@ msgid_plural "clockworks" msgstr[0] "часовой механизм" msgstr[1] "часовых механизма" msgstr[2] "часовых механизмов" -msgstr[3] "часовой механизм" +msgstr[3] "часовые механизмы" #. ~ Description for {'str_sp': 'clockworks'} #: lang/json/GENERIC_from_json.py @@ -59572,7 +61331,7 @@ msgid_plural "SD-Memory cards" msgstr[0] "SD-карта" msgstr[1] "SD-карты" msgstr[2] "SD-карт" -msgstr[3] "SD-карта" +msgstr[3] "SD-карты" #. ~ Description for {'str': 'SD-Memory card'} #: lang/json/GENERIC_from_json.py @@ -59585,7 +61344,7 @@ msgid_plural "SD-Memory cards (clean)" msgstr[0] "SD-карта (пусто)" msgstr[1] "SD-карты (пусто)" msgstr[2] "SD-карт (пусто)" -msgstr[3] "SD-карта (пусто)" +msgstr[3] "SD-карты (пусто)" #. ~ Description for {'str': 'SD-Memory card (clean)', 'str_pl': 'SD-Memory #. cards (clean)'} @@ -59603,7 +61362,7 @@ msgid_plural "SD-Memory cards (encrypted)" msgstr[0] "SD-карта (зашифровано)" msgstr[1] "SD-карты (зашифровано)" msgstr[2] "SD-карт (зашифровано)" -msgstr[3] "SD-карта (зашифровано)" +msgstr[3] "SD-карты (зашифровано)" #. ~ Description for {'str': 'SD-Memory card (encrypted)', 'str_pl': 'SD- #. Memory cards (encrypted)'} @@ -59621,7 +61380,7 @@ msgid_plural "Science SD-Memory cards" msgstr[0] "SD-карта с научными данными" msgstr[1] "SD-карты с научными данными" msgstr[2] "SD-карт с научными данными" -msgstr[3] "SD-карта с научными данными" +msgstr[3] "SD-карты с научными данными" #. ~ Description for {'str': 'Science SD-Memory card'} #: lang/json/GENERIC_from_json.py @@ -59638,7 +61397,7 @@ msgid_plural "hand mirrors" msgstr[0] "зеркальце" msgstr[1] "зеркальца" msgstr[2] "зеркалец" -msgstr[3] "зеркальце" +msgstr[3] "зеркальца" #. ~ Description for {'str': 'hand mirror'} #: lang/json/GENERIC_from_json.py @@ -59651,7 +61410,7 @@ msgid_plural "manhole covers" msgstr[0] "крышка люка" msgstr[1] "крышки люка" msgstr[2] "крышек люка" -msgstr[3] "крышка люка" +msgstr[3] "крышки люка" #. ~ Description for {'str': 'manhole cover'} #: lang/json/GENERIC_from_json.py @@ -59666,9 +61425,9 @@ msgstr "" msgid "pine bough" msgid_plural "pine boughs" msgstr[0] "сосновая ветка" -msgstr[1] "сосновых ветки" +msgstr[1] "сосновые ветки" msgstr[2] "сосновых веток" -msgstr[3] "сосновая ветка" +msgstr[3] "сосновые ветки" #. ~ Description for {'str': 'pine bough'} #: lang/json/GENERIC_from_json.py @@ -59682,9 +61441,9 @@ msgstr "" msgid "pinecone" msgid_plural "pinecones" msgstr[0] "сосновая шишка" -msgstr[1] "сосновых шишки" +msgstr[1] "сосновые шишки" msgstr[2] "сосновых шишек" -msgstr[3] "сосновая шишка" +msgstr[3] "сосновые шишки" #. ~ Description for {'str': 'pinecone'} #: lang/json/GENERIC_from_json.py @@ -59701,7 +61460,7 @@ msgid_plural "poppy buds" msgstr[0] "маковый бутон" msgstr[1] "маковых бутона" msgstr[2] "маковых бутонов" -msgstr[3] "маковый бутон" +msgstr[3] "маковые бутоны" #. ~ Description for {'str': 'poppy bud'} #: lang/json/GENERIC_from_json.py @@ -59727,7 +61486,7 @@ msgid_plural "chamomile flowers" msgstr[0] "цветок ромашки" msgstr[1] "цветка ромашки" msgstr[2] "цветков ромашки" -msgstr[3] "цветы ромашки" +msgstr[3] "цветки ромашки" #. ~ Description for {'str_sp': 'chamomile flowers'} #: lang/json/GENERIC_from_json.py @@ -59777,7 +61536,7 @@ msgid_plural "lumps of clay" msgstr[0] "комок глины" msgstr[1] "комка глины" msgstr[2] "комков глины" -msgstr[3] "комок глины" +msgstr[3] "комки глины" #. ~ Description for {'str': 'lump of clay', 'str_pl': 'lumps of clay'} #: lang/json/GENERIC_from_json.py @@ -59790,7 +61549,7 @@ msgid_plural "bricks" msgstr[0] "кирпич" msgstr[1] "кирпича" msgstr[2] "кирпичей" -msgstr[3] "кирпич" +msgstr[3] "кирпичи" #. ~ Description for {'str': 'brick'} #: lang/json/GENERIC_from_json.py @@ -59873,10 +61632,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "tanbark" msgid_plural "tanbark" -msgstr[0] "дубовина" -msgstr[1] "дубовины" -msgstr[2] "дубовин" -msgstr[3] "дубовина" +msgstr[0] "дубовая кора" +msgstr[1] "дубовой коры" +msgstr[2] "дубовой коры" +msgstr[3] "дубовая кора" #. ~ Description for {'str_sp': 'tanbark'} #: lang/json/GENERIC_from_json.py @@ -59917,7 +61676,7 @@ msgid_plural "diamonds" msgstr[0] "алмаз" msgstr[1] "алмаза" msgstr[2] "алмазов" -msgstr[3] "алмаз" +msgstr[3] "алмазы" #. ~ Description for {'str': 'diamond'} #: lang/json/GENERIC_from_json.py @@ -60097,9 +61856,9 @@ msgstr "Сверкающий голубой топаз." msgid "cured hide" msgid_plural "cured hides" msgstr[0] "обработанная шкура" -msgstr[1] "обработанных шкуры" +msgstr[1] "обработанные шкуры" msgstr[2] "обработанных шкур" -msgstr[3] "обработанная шкура" +msgstr[3] "обработанные шкуры" #. ~ Description for {'str': 'cured hide'} #: lang/json/GENERIC_from_json.py @@ -60115,10 +61874,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "tanned hide" msgid_plural "tanned hides" -msgstr[0] "дублёная кожа" -msgstr[1] "дублёные кожи" -msgstr[2] "дублёных кож" -msgstr[3] "дублёная кожа" +msgstr[0] "дублёная шкура" +msgstr[1] "дублёные шкуры" +msgstr[2] "дублёных шкур" +msgstr[3] "дублёные шкуры" #. ~ Description for {'str': 'tanned hide'} #: lang/json/GENERIC_from_json.py @@ -60133,9 +61892,9 @@ msgstr "" msgid "cured pelt" msgid_plural "cured pelts" msgstr[0] "обработанная меховая шкурка" -msgstr[1] "обработанных меховых шкурки" +msgstr[1] "обработанные меховые шкурки" msgstr[2] "обработанных меховых шкурок" -msgstr[3] "обработанная меховая шкурка" +msgstr[3] "обработанные меховые шкурки" #. ~ Description for {'str': 'cured pelt'} #: lang/json/GENERIC_from_json.py @@ -60171,7 +61930,7 @@ msgid_plural "piles of straw" msgstr[0] "кучка сена" msgstr[1] "кучки сена" msgstr[2] "кучек сена" -msgstr[3] "кучка сена" +msgstr[3] "кучки сена" #. ~ Description for {'str': 'pile of straw', 'str_pl': 'piles of straw'} #: lang/json/GENERIC_from_json.py @@ -60186,9 +61945,9 @@ msgstr "" msgid "straw doll" msgid_plural "straw dolls" msgstr[0] "соломенная кукла" -msgstr[1] "соломенных куклы" +msgstr[1] "соломенные куклы" msgstr[2] "соломенных кукол" -msgstr[3] "соломенная кукла" +msgstr[3] "соломенные куклы" #. ~ Description for {'str': 'straw doll'} #: lang/json/GENERIC_from_json.py @@ -60201,7 +61960,7 @@ msgid_plural "pillows" msgstr[0] "подушка" msgstr[1] "подушки" msgstr[2] "подушек" -msgstr[3] "подушка" +msgstr[3] "подушки" #. ~ Description for {'str': 'pillow'} #: lang/json/GENERIC_from_json.py @@ -60214,7 +61973,7 @@ msgid_plural "body pillows" msgstr[0] "дакимакура" msgstr[1] "дакимакуры" msgstr[2] "дакимакур" -msgstr[3] "дакимакура" +msgstr[3] "дакимакуры" #. ~ Description for {'str': 'body pillow'} #: lang/json/GENERIC_from_json.py @@ -60229,9 +61988,9 @@ msgstr "" msgid "down-filled pillow" msgid_plural "down-filled pillows" msgstr[0] "пуховая подушка" -msgstr[1] "пуховых подушки" +msgstr[1] "пуховые подушки" msgstr[2] "пуховых подушек" -msgstr[3] "пуховая подушка" +msgstr[3] "пуховые подушки" #. ~ Description for {'str': 'down-filled pillow'} #: lang/json/GENERIC_from_json.py @@ -60244,7 +62003,7 @@ msgid_plural "teddy bears" msgstr[0] "плюшевый мишка" msgstr[1] "плюшевых мишки" msgstr[2] "плюшевых мишек" -msgstr[3] "плюшевый мишка" +msgstr[3] "плюшевые мишки" #. ~ Description for {'str': 'teddy bear'} #: lang/json/GENERIC_from_json.py @@ -60270,7 +62029,7 @@ msgid_plural "money bundles" msgstr[0] "пачка денег" msgstr[1] "пачки денег" msgstr[2] "пачек денег" -msgstr[3] "пачка денег" +msgstr[3] "пачки денег" #. ~ Description for {'str': 'money bundle'} #: lang/json/GENERIC_from_json.py @@ -60315,7 +62074,7 @@ msgid_plural "cigar butts" msgstr[0] "окурок сигары" msgstr[1] "окурка сигары" msgstr[2] "окурков сигары" -msgstr[3] "окурок сигары" +msgstr[3] "окурки сигары" #. ~ Description for {'str': 'cigar butt'} #: lang/json/GENERIC_from_json.py @@ -60342,7 +62101,7 @@ msgid_plural "cigarette butts" msgstr[0] "окурок сигареты" msgstr[1] "окурка сигареты" msgstr[2] "окурков сигареты" -msgstr[3] "окурок сигареты" +msgstr[3] "окурки сигареты" #. ~ Description for {'str': 'cigarette butt'} #: lang/json/GENERIC_from_json.py @@ -60372,7 +62131,7 @@ msgid_plural "joint roaches" msgstr[0] "скуренный косяк" msgstr[1] "скуренных косяка" msgstr[2] "скуренных косяков" -msgstr[3] "скуренный косяк" +msgstr[3] "скуренные косяки" #. ~ Description for {'str': 'joint roach', 'str_pl': 'joint roaches'} #: lang/json/GENERIC_from_json.py @@ -60426,7 +62185,7 @@ msgid_plural "science ID cards" msgstr[0] "пропуск учёного" msgstr[1] "пропуска учёного" msgstr[2] "пропусков учёного" -msgstr[3] "пропуск учёного" +msgstr[3] "пропуска учёного" #. ~ Description for {'str': 'science ID card'} #: lang/json/GENERIC_from_json.py @@ -60444,7 +62203,7 @@ msgid_plural "military ID cards" msgstr[0] "пропуск военного" msgstr[1] "пропуска военного" msgstr[2] "пропусков военного" -msgstr[3] "пропуск военного" +msgstr[3] "пропуска военного" #. ~ Description for {'str': 'military ID card'} #: lang/json/GENERIC_from_json.py @@ -60474,8 +62233,8 @@ msgid "" msgstr "" "Этот пропуск когда-то принадлежал высококлассному специалисту. На обратной " "стороне есть инструкция-протокол о том, как правильно использовать его. " -"Пропуск является гарантом доступа в определённые места через терминал, если " -"конечно найти куда его вставлять." +"Пропуск может помочь получить доступ в определённые места с помощью " +"терминала, если конечно найти куда его вставлять." #: lang/json/GENERIC_from_json.py msgid "neoprene patch" @@ -60494,30 +62253,13 @@ msgstr "" "Лист неопрена средних размеров. Может быть использован для создания лёгкой и" " растягивающейся одежды." -#: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" -msgstr[0] "лазерная пушка TX-5LR" -msgstr[1] "лазерных пушки TX-5LR" -msgstr[2] "лазерных пушек TX-5LR" -msgstr[3] "лазерная пушка TX-5LR" - -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." -msgstr "" -"Лазерная пушка, снятая с лазерной турели TX-5LR Цербер. Непригодна как " -"оружие без необходимых деталей." - #: lang/json/GENERIC_from_json.py msgid "light bulb" msgid_plural "light bulbs" msgstr[0] "лампочка" msgstr[1] "лампочки" msgstr[2] "лампочек" -msgstr[3] "лампочка" +msgstr[3] "лампочки" #. ~ Description for {'str': 'light bulb'} #: lang/json/GENERIC_from_json.py @@ -60532,7 +62274,7 @@ msgid_plural "clay flower pots" msgstr[0] "глиняный горшок для цветов" msgstr[1] "глиняных горшка для цветов" msgstr[2] "глиняных горшков для цветов" -msgstr[3] "глиняный горшок для цветов" +msgstr[3] "глиняные горшки для цветов" #. ~ Description for {'str': 'clay flower pot'} #: lang/json/GENERIC_from_json.py @@ -60542,10 +62284,10 @@ msgstr "Красивый глиняный горшок, используется #: lang/json/GENERIC_from_json.py msgid "plastic flower pot" msgid_plural "plastic flower pots" -msgstr[0] "пластиковый горшок цветочный" -msgstr[1] "пластиковых горшка цветочных" -msgstr[2] "пластиковых горшков цветочных" -msgstr[3] "пластиковый горшок цветочный" +msgstr[0] "пластиковый горшок для цветов" +msgstr[1] "пластиковых горшка для цветов" +msgstr[2] "пластиковых горшков для цветов" +msgstr[3] "пластиковые горшки для цветов" #. ~ Description for {'str': 'plastic flower pot'} #: lang/json/GENERIC_from_json.py @@ -60555,10 +62297,10 @@ msgstr "Дешёвый пластиковый горшок, использует #: lang/json/GENERIC_from_json.py msgid "fluid preserved brain" msgid_plural "fluid preserved brains" -msgstr[0] "сохранённый мозг" -msgstr[1] "сохранённых мозга" -msgstr[2] "сохранённых мозгов" -msgstr[3] "сохранённые мозги" +msgstr[0] "законсервированный мозг" +msgstr[1] "законсервированных мозга" +msgstr[2] "законсервированных мозгов" +msgstr[3] "законсервированные мозги" #. ~ Description for {'str': 'fluid preserved brain'} #: lang/json/GENERIC_from_json.py @@ -60587,7 +62329,7 @@ msgid_plural "condensor coils" msgstr[0] "конденсатор" msgstr[1] "конденсатора" msgstr[2] "конденсаторов" -msgstr[3] "конденсатор" +msgstr[3] "конденсаторы" #. ~ Description for {'str': 'condensor coil'} #: lang/json/GENERIC_from_json.py @@ -60619,7 +62361,7 @@ msgid_plural "hard steel plates" msgstr[0] "пластина из твёрдой стали" msgstr[1] "пластины из твёрдой стали" msgstr[2] "пластин из твёрдой стали" -msgstr[3] "пластина из твёрдой стали" +msgstr[3] "пластины из твёрдой стали" #. ~ Description for {'str': 'hard steel plate'} #: lang/json/GENERIC_from_json.py @@ -60636,7 +62378,7 @@ msgid_plural "steel plates" msgstr[0] "стальная пластина" msgstr[1] "стальные пластины" msgstr[2] "стальных пластин" -msgstr[3] "стальная пластина" +msgstr[3] "стальные пластины" #. ~ Description for {'str': 'steel plate'} #: lang/json/GENERIC_from_json.py @@ -60731,7 +62473,7 @@ msgid_plural "broken turrets" msgstr[0] "сломанная турель" msgstr[1] "сломанные турели" msgstr[2] "сломанных турелей" -msgstr[3] "сломанная турель" +msgstr[3] "сломанные турели" #. ~ Description for {'str': 'broken turret'} #: lang/json/GENERIC_from_json.py @@ -60745,10 +62487,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken riot control turret" msgid_plural "broken riot control turrets" -msgstr[0] "сломанная турель осназа" -msgstr[1] "сломанные турели осназа" -msgstr[2] "сломанных турелей осназа" -msgstr[3] "сломанная турель осназа" +msgstr[0] "сломанная турель для подавления беспорядков" +msgstr[1] "сломанные турели для подавления беспорядков" +msgstr[2] "сломанных турелей для подавления беспорядков" +msgstr[3] "сломанные турели для подавления беспорядков" #. ~ Description for {'str': 'broken riot control turret'} #: lang/json/GENERIC_from_json.py @@ -60783,14 +62525,6 @@ msgstr[1] "сломанные автономные M2 CROWS II" msgstr[2] "сломанных автономных M2 CROWS II" msgstr[3] "сломанные автономные M2 CROWS II" -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "сломанная лазерная турель" -msgstr[1] "сломанные лазерные турели" -msgstr[2] "сломанных лазерных турелей" -msgstr[3] "сломанная лазерная турель" - #: lang/json/GENERIC_from_json.py msgid "broken secubot" msgid_plural "broken secubots" @@ -60901,9 +62635,9 @@ msgstr "" msgid "flyer" msgid_plural "flyers" msgstr[0] "рекламная листовка" -msgstr[1] "рекламных листовки" +msgstr[1] "рекламные листовки" msgstr[2] "рекламных листовок" -msgstr[3] "рекламная листовка" +msgstr[3] "рекламные листовки" #. ~ Description for {'str': 'flyer'} #: lang/json/GENERIC_from_json.py @@ -60916,7 +62650,7 @@ msgid_plural "survivor's notes" msgstr[0] "записка выжившего" msgstr[1] "записки выжившего" msgstr[2] "записок выжившего" -msgstr[3] "записка выжившего" +msgstr[3] "записки выжившего" #. ~ Description for {'str': "survivor's note"} #. ~ Description for {'str': 'note'} @@ -60945,7 +62679,7 @@ msgid_plural "score cards" msgstr[0] "карточка учёта" msgstr[1] "карточки учёта" msgstr[2] "карточек учёта" -msgstr[3] "карточка учёта" +msgstr[3] "карточки учёта" #. ~ Description for {'str': 'score card'} #: lang/json/GENERIC_from_json.py @@ -60958,7 +62692,7 @@ msgid_plural "newspaper pages" msgstr[0] "газетный лист" msgstr[1] "газетных листа" msgstr[2] "газетных листов" -msgstr[3] "газетный лист" +msgstr[3] "газетные листы" #. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py @@ -60969,9 +62703,8 @@ msgid "" " briefly." msgstr "" "Отдельный лист широкоформатной газеты. Возможно, это один из последних " -"напечатанных выпусков перед сокрушением Новой Англии. Большая часть " -"информации там ужасно банальна или устарела, но одна вещь сразу бросается в " -"глаза." +"напечатанных выпусков перед падением Новой Англии. Большая часть информации " +"там ужасно банальна или устарела, но одна вещь сразу бросается в глаза." #. ~ Description for {'str': 'newspaper page'} #: lang/json/GENERIC_from_json.py @@ -61033,9 +62766,9 @@ msgstr "" msgid "vault leaflet" msgid_plural "vault leaflets" msgstr[0] "рекламная листовка об убежище" -msgstr[1] "рекламных листовки об убежище" +msgstr[1] "рекламные листовки об убежище" msgstr[2] "рекламных листовок об убежище" -msgstr[3] "рекламная листовка об убежище" +msgstr[3] "рекламные листовки об убежище" #. ~ Description for {'str': 'vault leaflet'} #: lang/json/GENERIC_from_json.py @@ -61071,7 +62804,7 @@ msgid "" "\n" "In the event that you have been evacuated under violent circumstances, FEMA recommends taking cover in the shelter's basement until help arrives. Remember: if you leave the shelter, we cannot find you to take you to safety." msgstr "" -"Добро пожаловать в Аварийное убежище для выживания. Мы надеемся, что ваше пребывание здесь будет коротким и комфортным. Предусмотрены аварийное одеяло, куртка повышенной заметности, противогаз, продовольствие и вода на один день, а также аварийная зажигалка и фонарик. В шкафах имеются дополнительные припасы, если на объекте превышена запланированная вместимость. Эти ресурсы проверяются и обновляются МЧС на регулярной основе, но если вы обнаружите, что некоторые предметы отсутствуют, обратитесь к инспектору МЧС при первой же возможности.\n" +"Добро пожаловать в Аварийное убежище для выживания. Мы надеемся, что ваше пребывание здесь будет недолгим и комфортным. Вам предоставляются аварийное одеяло, куртка повышенной заметности, противогаз, продовольствие и вода на один день, а также аварийная зажигалка и фонарик. В шкафах имеются дополнительные припасы, если на объекте превышена запланированная вместимость. Эти ресурсы проверяются и обновляются МЧС на регулярной основе, но если вы обнаружите, что некоторые предметы отсутствуют, обратитесь к инспектору МЧС при первой же возможности.\n" "\n" "Пожалуйста, подождите в убежище, пока не прибудет официальный транспорт для эвакуации, который отвезёт вас домой или, в случае серьезной катастрофы, к ближайшему пункту сбора при эвакуации.\n" "\n" @@ -61083,7 +62816,7 @@ msgid_plural "leaf springs" msgstr[0] "рессора" msgstr[1] "рессоры" msgstr[2] "рессор" -msgstr[3] "рессора" +msgstr[3] "рессоры" #. ~ Description for {'str': 'leaf spring'} #: lang/json/GENERIC_from_json.py @@ -61100,7 +62833,7 @@ msgid_plural "hydrangeas" msgstr[0] "гортензия" msgstr[1] "гортензии" msgstr[2] "гортензий" -msgstr[3] "гортензия" +msgstr[3] "гортензии" #. ~ Description for {'str': 'hydrangea'} #: lang/json/GENERIC_from_json.py @@ -61113,7 +62846,7 @@ msgid_plural "hydrangea buds" msgstr[0] "бутон гортензии" msgstr[1] "бутона гортензии" msgstr[2] "бутонов гортензии" -msgstr[3] "бутон гортензии" +msgstr[3] "бутоны гортензии" #. ~ Description for {'str': 'hydrangea bud'} #: lang/json/GENERIC_from_json.py @@ -61129,7 +62862,7 @@ msgid_plural "tulips" msgstr[0] "тюльпан" msgstr[1] "тюльпана" msgstr[2] "тюльпанов" -msgstr[3] "тюльпан" +msgstr[3] "тюльпаны" #. ~ Description for {'str': 'tulip'} #: lang/json/GENERIC_from_json.py @@ -61142,7 +62875,7 @@ msgid_plural "tulip buds" msgstr[0] "бутон тюльпана" msgstr[1] "бутона тюльпана" msgstr[2] "бутонов тюльпана" -msgstr[3] "бутон тюльпана" +msgstr[3] "бутоны тюльпана" #. ~ Description for {'str': 'tulip bud'} #: lang/json/GENERIC_from_json.py @@ -61151,14 +62884,6 @@ msgid "" msgstr "" "Бутон тюльпана. Содержит некоторые вещества, выделяемые цветком тюльпана." -#: lang/json/GENERIC_from_json.py -msgid "spurge" -msgid_plural "spurges" -msgstr[0] "молочай" -msgstr[1] "молочая" -msgstr[2] "молочаев" -msgstr[3] "молочай" - #. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." @@ -61170,7 +62895,7 @@ msgid_plural "spurge buds" msgstr[0] "бутон молочая" msgstr[1] "бутона молочая" msgstr[2] "бутонов молочая" -msgstr[3] "бутон молочая" +msgstr[3] "бутоны молочая" #. ~ Description for {'str': 'spurge bud'} #: lang/json/GENERIC_from_json.py @@ -61186,7 +62911,7 @@ msgid_plural "black eyed susans" msgstr[0] "черноглазая сюзанна" msgstr[1] "черноглазые сюзанны" msgstr[2] "черноглазых сюзанн" -msgstr[3] "черноглазая сюзанна" +msgstr[3] "черноглазые сюзанны" #. ~ Description for {'str': 'black eyed susan'} #: lang/json/GENERIC_from_json.py @@ -61199,7 +62924,7 @@ msgid_plural "black eyed susan buds" msgstr[0] "бутон черноглазой сюзанны" msgstr[1] "бутона черноглазой сюзанны" msgstr[2] "бутонов черноглазой сюзанны" -msgstr[3] "бутон черноглазой сюзанны" +msgstr[3] "бутоны черноглазой сюзанны" #. ~ Description for {'str': 'black eyed susan bud'} #: lang/json/GENERIC_from_json.py @@ -61229,7 +62954,7 @@ msgid_plural "lily buds" msgstr[0] "бутон лилии" msgstr[1] "бутона лилии" msgstr[2] "бутонов лилии" -msgstr[3] "бутон лилии" +msgstr[3] "бутоны лилии" #. ~ Description for {'str': 'lily bud'} #: lang/json/GENERIC_from_json.py @@ -61256,7 +62981,7 @@ msgid_plural "lotus buds" msgstr[0] "бутон лотоса" msgstr[1] "бутона лотоса" msgstr[2] "бутонов лотоса" -msgstr[3] "бутон лотоса" +msgstr[3] "бутоны лотоса" #. ~ Description for {'str': 'lotus bud'} #: lang/json/GENERIC_from_json.py @@ -61283,7 +63008,7 @@ msgid_plural "lilac buds" msgstr[0] "бутон сирени" msgstr[1] "бутона сирени" msgstr[2] "бутонов сирени" -msgstr[3] "бутон сирени" +msgstr[3] "бутоны сирени" #. ~ Description for {'str': 'lilac bud'} #: lang/json/GENERIC_from_json.py @@ -61297,7 +63022,7 @@ msgid_plural "rose buds" msgstr[0] "бутон розы" msgstr[1] "бутона розы" msgstr[2] "бутонов розы" -msgstr[3] "бутон розы" +msgstr[3] "бутоны розы" #. ~ Description for {'str': 'rose bud'} #: lang/json/GENERIC_from_json.py @@ -61311,7 +63036,7 @@ msgid_plural "dahlia buds" msgstr[0] "бутон георгина" msgstr[1] "бутона георгина" msgstr[2] "бутонов георгин" -msgstr[3] "бутон георгина" +msgstr[3] "бутоны георгина" #. ~ Description for {'str': 'dahlia bud'} #: lang/json/GENERIC_from_json.py @@ -61330,7 +63055,7 @@ msgid_plural "bluebells" msgstr[0] "колокольчик" msgstr[1] "колокольчика" msgstr[2] "колокольчиков" -msgstr[3] "колокольчик" +msgstr[3] "колокольчики" #. ~ Description for {'str': 'bluebell'} #: lang/json/GENERIC_from_json.py @@ -61348,7 +63073,7 @@ msgid_plural "poppy flowers" msgstr[0] "маковый цветок" msgstr[1] "маковых цветка" msgstr[2] "маковых цветков" -msgstr[3] "маковый цветок" +msgstr[3] "маковые цветки" #. ~ Description for {'str': 'poppy flower'} #: lang/json/GENERIC_from_json.py @@ -61361,7 +63086,7 @@ msgid_plural "bluebell buds" msgstr[0] "бутон колокольчика" msgstr[1] "бутона колокольчиков" msgstr[2] "бутонов колокольчиков" -msgstr[3] "бутон колокольчика" +msgstr[3] "бутоны колокольчика" #. ~ Description for {'str': 'bluebell bud'} #: lang/json/GENERIC_from_json.py @@ -61412,10 +63137,9 @@ msgid_plural "broken tribots" msgstr[0] "сломанный трибот" msgstr[1] "сломанных трибота" msgstr[2] "сломанных триботов" -msgstr[3] "сломанный трибот" +msgstr[3] "сломанные триботы" #. ~ Description for {'str': 'broken tribot'} -#. ~ Description for broken tribot #: lang/json/GENERIC_from_json.py msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" @@ -61430,7 +63154,7 @@ msgid_plural "broken tank drones" msgstr[0] "сломанный танкобот" msgstr[1] "сломанных танкобота" msgstr[2] "сломанных танкоботов" -msgstr[3] "сломанный танкобот" +msgstr[3] "сломанные танкоботы" #. ~ Description for {'str': 'broken tank drone'} #: lang/json/GENERIC_from_json.py @@ -61514,7 +63238,7 @@ msgid_plural "stone pots" msgstr[0] "каменный горшок" msgstr[1] "каменных горшка" msgstr[2] "каменных горшков" -msgstr[3] "каменный горшок" +msgstr[3] "каменные горшки" #. ~ Description for {'str': 'stone pot'} #: lang/json/GENERIC_from_json.py @@ -61527,7 +63251,7 @@ msgid_plural "burnt out Louisville Slaughterers" msgstr[0] "выгоревший Луисвильский погромщик" msgstr[1] "выгоревших Луисвильских погромщика" msgstr[2] "выгоревших Луисвильских погромщиков" -msgstr[3] "выгоревший Луисвильский погромщик" +msgstr[3] "выгоревшие Луисвильские погромщики" #. ~ Description for {'str': 'burnt out Louisville Slaughterer'} #: lang/json/GENERIC_from_json.py @@ -61544,9 +63268,9 @@ msgstr "" msgid "quantum solar panel" msgid_plural "quantum solar panels" msgstr[0] "квантовая солнечная панель" -msgstr[1] "квантовых солнечных панели" +msgstr[1] "квантовые солнечные панели" msgstr[2] "квантовых солнечных панелей" -msgstr[3] "квантовая солнечная панель" +msgstr[3] "квантовые солнечные панели" #. ~ Description for quantum solar panel #: lang/json/GENERIC_from_json.py @@ -61556,11 +63280,36 @@ msgid "" "looking material, but the covering looks rather fragile; it doesn't look " "like it could support a reinforcing sheet, either." msgstr "" -"Это солнечная панель, очевидно, продукт передовых технологий. Учитывая, где " +"Это солнечная панель, очевидный продукт передовых технологий. Учитывая, где " "вы её нашли, скорее всего, она может обеспечить БОЛЬШИМ количеством энергии." " Она покрыта материалом странного вида, но это покрытие выглядит довольно " "хрупким. К сожалению, эту панель нельзя укрепить армированным стеклом." +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "сломанная лазерная турель" +msgstr[1] "сломанные лазерные турели" +msgstr[2] "сломанных лазерных турелей" +msgstr[3] "сломанные лазерные турели" + +#: lang/json/GENERIC_from_json.py +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" +msgstr[0] "лазерная пушка TX-5LR" +msgstr[1] "лазерные пушки TX-5LR" +msgstr[2] "лазерных пушек TX-5LR" +msgstr[3] "лазерные пушки TX-5LR" + +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." +msgstr "" +"Лазерная пушка, снятая с лазерной турели TX-5LR Цербер. Непригодна как " +"оружие без необходимых деталей." + #: lang/json/GENERIC_from_json.py msgid "module template" msgid_plural "module templates" @@ -61641,17 +63390,18 @@ msgstr "Позволяет хранить и вызывать информаци #: lang/json/GENERIC_from_json.py msgid "sensor array" msgid_plural "sensor arrays" -msgstr[0] "сенсорная батарея" -msgstr[1] "сенсорных батареи" -msgstr[2] "сенсорных батарей" -msgstr[3] "сенсорные батареи" +msgstr[0] "массив датчиков" +msgstr[1] "массива датчиков" +msgstr[2] "массивов датчиков" +msgstr[3] "массивы датчиков" #. ~ Description for {'str': 'sensor array'} #: lang/json/GENERIC_from_json.py msgid "" "A wide range of sensors meant to give the ability to perceive the " "surrounding world." -msgstr "Разнообразные датчики для возможности воспринимать окружающий мир." +msgstr "" +"Набор разнообразных датчиков для возможности воспринимать окружающий мир." #: lang/json/GENERIC_from_json.py msgid "self monitoring sensors" @@ -61676,7 +63426,7 @@ msgid_plural "AI cores" msgstr[0] "ядро ИИ" msgstr[1] "ядра ИИ" msgstr[2] "ядер ИИ" -msgstr[3] "ядро ИИ" +msgstr[3] "ядра ИИ" #. ~ Description for {'str': 'AI core'} #: lang/json/GENERIC_from_json.py @@ -61722,7 +63472,7 @@ msgstr[3] "системы управления оружием" #. ~ Description for {'str': 'gun operating system'} #: lang/json/GENERIC_from_json.py msgid "This system can operate most conventional weapons." -msgstr "Эта система может управлять большинством обычного оружия." +msgstr "Эта система может управлять большей частью обычного оружия." #: lang/json/GENERIC_from_json.py msgid "set of tiny spidery legs" @@ -61783,10 +63533,10 @@ msgstr "Роторы, способные поднять в воздух мале #: lang/json/GENERIC_from_json.py msgid "set of android legs" msgid_plural "sets of android legs" -msgstr[0] "андроидные ноги" -msgstr[1] "андроидных ног" -msgstr[2] "андроидных ног" -msgstr[3] "андроидные ноги" +msgstr[0] "ноги андроида" +msgstr[1] "набора ног андроида" +msgstr[2] "наборов ног андроида" +msgstr[3] "наборы ног андроида" #. ~ Description for {'str': 'set of android legs', 'str_pl': 'sets of android #. legs'} @@ -61797,10 +63547,10 @@ msgstr "Пара человекоподобных ног." #: lang/json/GENERIC_from_json.py msgid "set of android arms" msgid_plural "sets of android arms" -msgstr[0] "андроидные руки" -msgstr[1] "андроидных рук" -msgstr[2] "андроидных рук" -msgstr[3] "андроидные руки" +msgstr[0] "руки андроида" +msgstr[1] "набора рук андроида" +msgstr[2] "наборов рук андроида" +msgstr[3] "наборы рук андроида" #. ~ Description for {'str': 'set of android arms', 'str_pl': 'sets of android #. arms'} @@ -61967,7 +63717,7 @@ msgstr[3] "данные о движении поездов" #: lang/json/GENERIC_from_json.py msgid "Logistical data on subterranean train routes and schedules." msgstr "" -"Логистические данные по маршрутам движения поездов в подземке и расписанием " +"Логистические данные по маршрутам движения поездов в подземке и расписанию " "времени." #: lang/json/GENERIC_from_json.py @@ -62009,6 +63759,14 @@ msgstr "" "производителей. Вероятно, ценные для правильного человека, поскольку было бы" " трудно восстановить и повторно использовать эти компоненты без них." +#: lang/json/GENERIC_from_json.py +msgid "martial art manual" +msgid_plural "martial art manuals" +msgstr[0] "руководство по боевым искусствам" +msgstr[1] "руководства по боевым искусствам" +msgstr[2] "руководств по боевым искусствам" +msgstr[3] "руководства по боевым искусствам" + #: lang/json/GENERIC_from_json.py msgid "abstract map" msgid_plural "abstract maps" @@ -62023,7 +63781,7 @@ msgid_plural "military operations maps" msgstr[0] "карта военных операций" msgstr[1] "карты военных операций" msgstr[2] "карт военных операций" -msgstr[3] "карта военных операций" +msgstr[3] "карты военных операций" #. ~ Use action message for {'str': 'military operations map'}. #: lang/json/GENERIC_from_json.py @@ -62047,7 +63805,7 @@ msgid_plural "survivor's maps" msgstr[0] "карта выживальщика" msgstr[1] "карты выживальщика" msgstr[2] "карт выживальщика" -msgstr[3] "карта выживальщика" +msgstr[3] "карты выживальщика" #. ~ Use action message for {'str': "survivor's map"}. #: lang/json/GENERIC_from_json.py @@ -62069,9 +63827,9 @@ msgstr "" msgid "road map" msgid_plural "road maps" msgstr[0] "дорожная карта" -msgstr[1] "дорожных карты" +msgstr[1] "дорожные карты" msgstr[2] "дорожных карт" -msgstr[3] "дорожная карта" +msgstr[3] "дорожные карты" #. ~ Use action message for {'str': 'road map'}. #: lang/json/GENERIC_from_json.py @@ -62142,7 +63900,7 @@ msgid_plural "tourist guides" msgstr[0] "туристический путеводитель" msgstr[1] "туристических путеводителя" msgstr[2] "туристических путеводителей" -msgstr[3] "туристический путеводитель" +msgstr[3] "туристические путеводители" #. ~ Use action message for {'str': 'tourist guide'}. #: lang/json/GENERIC_from_json.py @@ -62165,7 +63923,7 @@ msgid_plural "restaurant guides" msgstr[0] "путеводитель по ресторанам" msgstr[1] "путеводителя по ресторанам" msgstr[2] "путеводителей по ресторанам" -msgstr[3] "путеводитель по ресторанам" +msgstr[3] "путеводители по ресторанам" #. ~ Use action message for {'str': 'restaurant guide'}. #: lang/json/GENERIC_from_json.py @@ -62384,7 +64142,7 @@ msgid_plural "The Book of Five Rings" msgstr[0] "Книга Пяти Колец" msgstr[1] "Книги Пяти Колец" msgstr[2] "Книг Пяти Колец" -msgstr[3] "Книга Пяти Колец" +msgstr[3] "Книги Пяти Колец" #. ~ Description for {'str_sp': 'The Book of Five Rings'} #: lang/json/GENERIC_from_json.py @@ -62451,9 +64209,9 @@ msgstr "Подробное руководство по кунг-фу змеи." msgid "Official Taekwondo Training Manual" msgid_plural "Official Taekwondo Training Manual" msgstr[0] "Официальное руководство по тхэквондо" -msgstr[1] "Официальных руководства по тхэквондо" -msgstr[2] "Официальных руководств по тхэквондо" -msgstr[3] "Официальное руководство по тхэквондо" +msgstr[1] "копии Официального руководства по тхэквондо" +msgstr[2] "копий Официального руководства по тхэквондо" +msgstr[3] "копии Официального руководства по тхэквондо" #. ~ Description for {'str_sp': 'Official Taekwondo Training Manual'} #: lang/json/GENERIC_from_json.py @@ -62528,10 +64286,10 @@ msgstr "Подробное руководство по цзуй-цюань." #: lang/json/GENERIC_from_json.py msgid "The Way of the Spear" msgid_plural "The Way of the Spear" -msgstr[0] "Путь Копья" -msgstr[1] "Путь Копья" -msgstr[2] "Путь Копья" -msgstr[3] "Путь Копья" +msgstr[0] "«Путь Копья»" +msgstr[1] "«Путь Копья»" +msgstr[2] "«Путь Копья»" +msgstr[3] "«Путь Копья»" #. ~ Description for {'str_sp': 'The Way of the Spear'} #: lang/json/GENERIC_from_json.py @@ -62541,10 +64299,10 @@ msgstr "Полное руководство по Сёдзюцу." #: lang/json/GENERIC_from_json.py msgid "Beautiful Springtime" msgid_plural "Beautiful Springtime" -msgstr[0] "Прекрасная Весна" -msgstr[1] "Прекрасная Весна" -msgstr[2] "Прекрасная Весна" -msgstr[3] "Прекрасная Весна" +msgstr[0] "«Прекрасная Весна»" +msgstr[1] "«Прекрасная Весна»" +msgstr[2] "«Прекрасная Весна»" +msgstr[3] "«Прекрасная Весна»" #. ~ Description for {'str_sp': 'Beautiful Springtime'} #: lang/json/GENERIC_from_json.py @@ -62574,10 +64332,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Historic European Swordfighting" msgid_plural "Historic European Swordfighting" -msgstr[0] "Историческое европейское фехтование" -msgstr[1] "Историческое европейское фехтование" -msgstr[2] "Историческое европейское фехтование" -msgstr[3] "Историческое европейское фехтование" +msgstr[0] "«Историческое европейское фехтование»" +msgstr[1] "книги «Историческое европейское фехтование»" +msgstr[2] "книг «Историческое европейское фехтование»" +msgstr[3] "книги «Историческое европейское фехтование»" #. ~ Description for {'str_sp': 'Historic European Swordfighting'} #: lang/json/GENERIC_from_json.py @@ -62590,21 +64348,13 @@ msgstr "" "германских и итальянских традиций для длинного меча и шпаги, боя в латах и " "без, с щитом и без щита." -#: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" -msgstr[0] "руководство по боевым искусствам" -msgstr[1] "руководства по боевым искусствам" -msgstr[2] "руководств по боевым искусствам" -msgstr[3] "руководства по боевым искусствам" - #: lang/json/GENERIC_from_json.py msgid "juvenile sourdough starter" msgid_plural "juvenile sourdough starters" -msgstr[0] "молодая хлебная закваска" -msgstr[1] "молодых хлебных закваски" -msgstr[2] "молодых хлебных заквасок" -msgstr[3] "молодые хлебные закваски" +msgstr[0] "созревающая хлебная закваска" +msgstr[1] "созревающая хлебная закваска" +msgstr[2] "созревающая хлебная закваска" +msgstr[3] "созревающая хлебная закваска" #. ~ Use action msg for {'str': 'juvenile sourdough starter'}. #: lang/json/GENERIC_from_json.py @@ -62636,9 +64386,9 @@ msgstr "" msgid "freshly fed sourdough starter" msgid_plural "freshly fed sourdough starters" msgstr[0] "подкормленная хлебная закваска" -msgstr[1] "подкормленные хлебные закваски" -msgstr[2] "подкормленных хлебных заквасок" -msgstr[3] "подкормленные хлебные закваски" +msgstr[1] "подкормленная хлебная закваска" +msgstr[2] "подкормленная хлебная закваска" +msgstr[3] "подкормленная хлебная закваска" #. ~ Use action msg for {'str': 'freshly fed sourdough starter'}. #: lang/json/GENERIC_from_json.py @@ -62684,7 +64434,7 @@ msgid_plural "human bones" msgstr[0] "человеческая кость" msgstr[1] "человеческие кости" msgstr[2] "человеческих костей" -msgstr[3] "человеческая кость" +msgstr[3] "человеческие кости" #. ~ Description for {'str': 'human bone'} #: lang/json/GENERIC_from_json.py @@ -62695,13 +64445,30 @@ msgstr "" "Человеческая кость. Можно использовать для создания предметов, если вы " "достаточно сильно чувствуете себя упырём." +#: lang/json/GENERIC_from_json.py +msgid "demihuman bone" +msgid_plural "demihuman bones" +msgstr[0] "кость получеловека" +msgstr[1] "кости получеловека" +msgstr[2] "костей получеловека" +msgstr[3] "кости получеловека" + +#. ~ Description for {'str': 'demihuman bone'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." +msgstr "" +"Кость получеловека. Можно использовать для создания предметов, если вы " +"всерьез чувствуете себя упырём." + #: lang/json/GENERIC_from_json.py msgid "first aid kit" msgid_plural "first aid kits" msgstr[0] "аптечка" msgstr[1] "аптечки" msgstr[2] "аптечек" -msgstr[3] "аптечка" +msgstr[3] "аптечки" #. ~ Description for {'str': 'first aid kit'} #: lang/json/GENERIC_from_json.py @@ -62711,7 +64478,7 @@ msgid "" "content." msgstr "" "Полный медицинский комплект с бинтами, анестетиками и заживляющими " -"препаратами. Используется для лечения сильных повреждений. Разберите, чтобы " +"препаратами. Используется для лечения серьезных ран. Разберите, чтобы " "получить содержимое." #: lang/json/GENERIC_from_json.py @@ -62746,7 +64513,7 @@ msgid_plural "MREs - Accessory Packs" msgstr[0] "дополнительный пакет ИРП" msgstr[1] "дополнительных пакета ИРП" msgstr[2] "дополнительных пакетов ИРП" -msgstr[3] "дополнительный пакет ИРП" +msgstr[3] "дополнительные пакеты ИРП" #. ~ Description for {'str': 'MRE - Accessory Pack', 'str_pl': 'MREs - #. Accessory Packs'} @@ -62764,7 +64531,7 @@ msgid_plural "MREs - Dessert Packs" msgstr[0] "пакет с десертами ИРП" msgstr[1] "пакета с десертами ИРП" msgstr[2] "пакетов с десертами ИРП" -msgstr[3] "пакет с десертами ИРП" +msgstr[3] "пакеты с десертами ИРП" #. ~ Description for {'str': 'MRE - Dessert Pack', 'str_pl': 'MREs - Dessert #. Packs'} @@ -62788,14 +64555,15 @@ msgstr[3] "ИРП — чили с бобами" #. Beans'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." msgstr "" "Индивидуальный Рацион Питания с главным блюдом — чили с бобами и всем, что " -"только нужно голодному солдату. Содержимое начнёт портиться сразу после " -"извлечения из герметичной упаковки. Активируйте или разберите, чтобы " -"получить содержимое." +"только нужно голодному солдату-вегетарианцу. Содержимое начнёт портиться " +"сразу после извлечения из герметичной упаковки. Активируйте или разберите, " +"чтобы получить содержимое." #: lang/json/GENERIC_from_json.py msgid "MRE - BBQ Beef" @@ -63024,6 +64792,49 @@ msgstr "" "сразу после извлечения из герметичной упаковки. Активируйте или разберите, " "чтобы получить содержимое." +#: lang/json/GENERIC_from_json.py +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" +msgstr[0] "ИРП — феттуччини с шпинатом" +msgstr[1] "ИРП — феттуччини с шпинатом" +msgstr[2] "ИРП — феттуччини с шпинатом" +msgstr[3] "ИРП — феттуччини с шпинатом" + +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - +#. Spinach Fettuccine'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything" +" a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" +"Индивидуальный Рацион Питания с главным блюдом — феттуччини с шпинатом и " +"всем, что только нужно голодному солдату-вегетарианцу. Содержимое начнёт " +"портиться сразу после извлечения из герметичной упаковки. Активируйте или " +"разберите, чтобы получить содержимое." + +#: lang/json/GENERIC_from_json.py +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" +msgstr[0] "ИРП - рататуй" +msgstr[1] "ИРП - рататуй" +msgstr[2] "ИРП - рататуй" +msgstr[3] "ИРП - рататуй" + +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - +#. Ratatouille'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" +"Индивидуальный Рацион Питания с главным блюдом — рататуем и всем, что только" +" нужно голодному солдату-вегетарианцу. Содержимое начнёт портиться сразу " +"после извлечения из герметичной упаковки. Активируйте или разберите, чтобы " +"получить содержимое." + #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" msgid_plural "MREs - Cheese Tortellini" @@ -63301,7 +65112,7 @@ msgid_plural "corpses" msgstr[0] "труп" msgstr[1] "трупа" msgstr[2] "трупов" -msgstr[3] "труп" +msgstr[3] "трупы" #. ~ Conditional name for {'str': 'corpse'} when FLAG matches FIELD_DRESS #. ~ Conditional name for {'str': 'corpse'} when FLAG matches @@ -63462,7 +65273,7 @@ msgid_plural "ammo belt linkages" msgstr[0] "сцепка патронной ленты" msgstr[1] "сцепки патронной ленты" msgstr[2] "сцепок патронной ленты" -msgstr[3] "сцепка патронной ленты" +msgstr[3] "сцепки патронной ленты" #. ~ Description for {'str': 'ammo belt linkage'} #: lang/json/GENERIC_from_json.py @@ -63475,7 +65286,7 @@ msgid_plural ".223 ammo belt linkages" msgstr[0] "сцепка патронной ленты .223" msgstr[1] "сцепки патронной ленты .223" msgstr[2] "сцепок патронной ленты .223" -msgstr[3] "сцепка патронной ленты .223" +msgstr[3] "сцепки патронной ленты .223" #: lang/json/GENERIC_from_json.py msgid ".308 ammo belt linkage" @@ -63483,7 +65294,7 @@ msgid_plural ".308 ammo belt linkages" msgstr[0] "сцепка патронной ленты .308" msgstr[1] "сцепки патронной ленты .308" msgstr[2] "сцепок патронной ленты .308" -msgstr[3] "сцепка патронной ленты .308" +msgstr[3] "сцепки патронной ленты .308" #: lang/json/GENERIC_from_json.py msgid "40mm grenade belt linkage" @@ -63491,7 +65302,7 @@ msgid_plural "40mm grenade belt linkages" msgstr[0] "сцепка гранатной ленты 40 мм" msgstr[1] "сцепки гранатной ленты 40 мм" msgstr[2] "сцепок гранатной ленты 40 мм" -msgstr[3] "сцепка гранатной ленты 40 мм" +msgstr[3] "сцепки гранатной ленты 40 мм" #: lang/json/GENERIC_from_json.py msgid ".50 ammo belt linkage" @@ -63499,7 +65310,7 @@ msgid_plural ".50 ammo belt linkages" msgstr[0] "сцепка патронной ленты .50" msgstr[1] "сцепки патронной ленты .50" msgstr[2] "сцепок патронной ленты .50" -msgstr[3] "сцепка патронной ленты .50" +msgstr[3] "сцепки патронной ленты .50" #: lang/json/GENERIC_from_json.py msgid "generic grooming" @@ -63572,8 +65383,8 @@ msgid "" "A plastic brush with soft bristles for cleaning your teeth. It has a cheap," " blocky handle and is likely meant to be disposable." msgstr "" -"Пластиковая щетка с мягкой щетиной для чистки зубов. Она имеет дешевую " -"сменную ручку и, вероятно, предназначена для одноразового использования." +"Пластиковая щетка с мягкой щетиной для чистки зубов. У нее дешевая угловатая" +" ручка, и она скорее всего одноразовая." #: lang/json/GENERIC_from_json.py msgid "" @@ -63635,15 +65446,15 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "A soft, cushioned hairbrush. The shiny chrome design appears modern." msgstr "" -"Мягенькая приятная расчёска. Выглядит современно,благодаря блестящему " -"хромированному дизайну." +"Мягенькая приятная расчёска. Выглядит современно, благодаря блестящему " +"хромированному оформлению." #: lang/json/GENERIC_from_json.py msgid "" "A tacky kid's hairbrush. The cartoon whale on the handle seems friendly " "enough." msgstr "" -"Аляповатая детская расчёстка. Мультяшный кит на ручке выглядит достаточно " +"Аляповатая детская расчёстка. Мультяшный кит на ручке выглядит очень " "дружелюбным." #: lang/json/GENERIC_from_json.py @@ -63651,7 +65462,7 @@ msgid "hair curler" msgid_plural "hair curlers" msgstr[0] "бигуди" msgstr[1] "бигуди" -msgstr[2] "бигуди" +msgstr[2] "бигудей" msgstr[3] "бигуди" #. ~ Description for {'str': 'hair curler'} @@ -63693,13 +65504,13 @@ msgstr[3] "гребни" #. ~ Description for {'str': 'comb'} #: lang/json/GENERIC_from_json.py msgid "A grooming tool with teeth for straightening your hair." -msgstr "Инструмент с зубцами для ухода за волосами." +msgstr "Инструмент с зубцами для расчесывания и ухода волосами." #: lang/json/GENERIC_from_json.py msgid "" "Somehow, a few teeth have already broken off the end of this otherwise " "pristine comb." -msgstr "У этого, некогда первозданного, гребня отломано несколько зубцов." +msgstr "У этой почти новой расчески отломано несколько зубцов." #: lang/json/GENERIC_from_json.py msgid "" @@ -63784,8 +65595,8 @@ msgid "" "This roll of toilet paper is two-ply and quilted, for vandalizing houses " "more comfortably than ever." msgstr "" -"Это стёганный двухслойный рулон туалетной бумаги. Выглядит очень неуместно в" -" разграбленных домах." +"Это стёганный двухслойный рулон туалетной бумаги. С таким и мародерством " +"заниматься куда комфортней." #: lang/json/GENERIC_from_json.py msgid "" @@ -63865,7 +65676,7 @@ msgid_plural "Casing from ammunition cartridges" msgstr[0] "гильза от патрона" msgstr[1] "гильзы от патронов" msgstr[2] "гильз от патронов" -msgstr[3] "гильза от патрона" +msgstr[3] "гильзы от патронов" #: lang/json/GENERIC_from_json.py msgid ".223 casing" @@ -63873,7 +65684,7 @@ msgid_plural ".223 casings" msgstr[0] "гильза .223" msgstr[1] "гильзы .223" msgstr[2] "гильз .223" -msgstr[3] "гильза .223" +msgstr[3] "гильзы .223" #. ~ Description for {'str': '.223 casing'} #: lang/json/GENERIC_from_json.py @@ -63912,7 +65723,7 @@ msgid_plural ".30-06 casings" msgstr[0] "гильза .30-06" msgstr[1] "гильзы .30-06" msgstr[2] "гильз .30-06" -msgstr[3] "гильза .30-06" +msgstr[3] "гильзы .30-06" #. ~ Description for {'str': '.30-06 casing'} #: lang/json/GENERIC_from_json.py @@ -63938,7 +65749,7 @@ msgid_plural ".300 Win Mag casings" msgstr[0] "гильза .300 Винчестер Магнум" msgstr[1] "гильзы .300 Винчестер Магнум" msgstr[2] "гильз .300 Винчестер Магнум" -msgstr[3] "гильза .300 Винчестер Магнум" +msgstr[3] "гильзы .300 Винчестер Магнум" #. ~ Description for {'str': '.300 Win Mag casing'} #: lang/json/GENERIC_from_json.py @@ -63951,7 +65762,7 @@ msgid_plural ".308 casings" msgstr[0] "гильза .308" msgstr[1] "гильзы .308" msgstr[2] "гильз .308" -msgstr[3] "гильза .308" +msgstr[3] "гильзы .308" #. ~ Description for {'str': '.308 casing'} #: lang/json/GENERIC_from_json.py @@ -63964,7 +65775,7 @@ msgid_plural "7.62x51mm casings" msgstr[0] "гильза 7,62x51 мм" msgstr[1] "гильзы 7,62x51 мм" msgstr[2] "гильз 7,62x51 мм" -msgstr[3] "гильза 7,62x51 мм" +msgstr[3] "гильзы 7,62x51 мм" #. ~ Description for {'str': '7.62x51mm casing'} #: lang/json/GENERIC_from_json.py @@ -63977,7 +65788,7 @@ msgid_plural ".32 ACP casings" msgstr[0] "гильза .32 ACP" msgstr[1] "гильзы .32 ACP" msgstr[2] "гильз .32 ACP" -msgstr[3] "гильза .32 ACP" +msgstr[3] "гильзы .32 ACP" #. ~ Description for {'str': '.32 ACP casing'} #: lang/json/GENERIC_from_json.py @@ -64016,7 +65827,7 @@ msgid_plural ".40 S&W casings" msgstr[0] "гильза .40 S&W" msgstr[1] "гильзы .40 S&W" msgstr[2] "гильз .40 S&W" -msgstr[3] "гильза .40 S&W" +msgstr[3] "гильзы .40 S&W" #. ~ Description for {'str': '.40 S&W casing'} #: lang/json/GENERIC_from_json.py @@ -64091,7 +65902,7 @@ msgid_plural ".44 Magnum casings" msgstr[0] "гильза .44 Магнум" msgstr[1] "гильзы .44 Магнум" msgstr[2] "гильз .44 Магнум" -msgstr[3] "гильза .44 Магнум" +msgstr[3] "гильзы .44 Магнум" #. ~ Description for {'str': '.44 Magnum casing'} #: lang/json/GENERIC_from_json.py @@ -64101,15 +65912,15 @@ msgstr "Пустая гильза от патрона .44 Магнум." #: lang/json/GENERIC_from_json.py msgid ".454 Casull casing" msgid_plural ".454 Casull casings" -msgstr[0] "гильза .454 Казулл" -msgstr[1] "гильзы .454 Казулл" -msgstr[2] "гильз .454 Казулл" -msgstr[3] "гильза .454 Казулл" +msgstr[0] "гильза .454 Casull" +msgstr[1] "гильзы .454 Casull" +msgstr[2] "гильз .454 Casull" +msgstr[3] "гильзы .454 Casull" #. ~ Description for {'str': '.454 Casull casing'} #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .454 Casull round." -msgstr "Пустая гильза от патрона .454 Казулл." +msgstr "Пустая гильза от патрона .454 Casull." #: lang/json/GENERIC_from_json.py msgid ".45 ACP casing" @@ -64117,7 +65928,7 @@ msgid_plural ".45 ACP casings" msgstr[0] "гильза .45 ACP" msgstr[1] "гильзы .45 ACP" msgstr[2] "гильз .45 ACP" -msgstr[3] "гильза .45 ACP" +msgstr[3] "гильзы .45 ACP" #. ~ Description for {'str': '.45 ACP casing'} #: lang/json/GENERIC_from_json.py @@ -64156,7 +65967,7 @@ msgid_plural "4.6x30mm casings" msgstr[0] "гильза 4,6x30 мм" msgstr[1] "гильзы 4,6x30 мм" msgstr[2] "гильз 4,6x30 мм" -msgstr[3] "гильза 4,6x30 мм" +msgstr[3] "гильзы 4,6x30 мм" #. ~ Description for {'str': '4.6x30mm casing'} #: lang/json/GENERIC_from_json.py @@ -64185,7 +65996,7 @@ msgid_plural "5x50mm hulls" msgstr[0] "гильза 5x50 мм" msgstr[1] "гильзы 5x50 мм" msgstr[2] "гильз 5x50 мм" -msgstr[3] "гильза 5x50 мм" +msgstr[3] "гильзы 5x50 мм" #. ~ Description for {'str': '5x50mm hull'} #: lang/json/GENERIC_from_json.py @@ -64198,7 +66009,7 @@ msgid_plural ".500 S&W Magnum casings" msgstr[0] "гильза .500 S&W Магнум" msgstr[1] "гильзы .500 S&W Магнум" msgstr[2] "гильз .500 S&W Магнум" -msgstr[3] "гильза .500 S&W Магнум" +msgstr[3] "гильзы .500 S&W Магнум" #. ~ Description for {'str': '.500 S&W Magnum casing'} #: lang/json/GENERIC_from_json.py @@ -64211,7 +66022,7 @@ msgid_plural ".50 BMG casings" msgstr[0] "гильза .50 BMG" msgstr[1] "гильзы .50 BMG" msgstr[2] "гильз .50 BMG" -msgstr[3] "гильза .50 BMG" +msgstr[3] "гильзы .50 BMG" #. ~ Description for {'str': '.50 BMG casing'} #: lang/json/GENERIC_from_json.py @@ -64228,7 +66039,7 @@ msgid_plural "5.45x39mm casings" msgstr[0] "гильза 5,45x39 мм" msgstr[1] "гильзы 5,45x39 мм" msgstr[2] "гильз 5,45x39 мм" -msgstr[3] "гильза 5,45x39 мм" +msgstr[3] "гильзы 5,45x39 мм" #. ~ Description for {'str': '5.45x39mm casing'} #: lang/json/GENERIC_from_json.py @@ -64241,7 +66052,7 @@ msgid_plural "5.7x28mm casings" msgstr[0] "гильза 5,7x28 мм" msgstr[1] "гильзы 5,7x28 мм" msgstr[2] "гильз 5,7x28 мм" -msgstr[3] "гильза 5,7x28 мм" +msgstr[3] "гильзы 5,7x28 мм" #. ~ Description for {'str': '5.7x28mm casing'} #: lang/json/GENERIC_from_json.py @@ -64254,7 +66065,7 @@ msgid_plural ".700 NX casings" msgstr[0] "гильза .700 NX" msgstr[1] "гильзы .700 NX" msgstr[2] "гильз .700 NX" -msgstr[3] "гильза .700 NX" +msgstr[3] "гильзы .700 NX" #. ~ Description for {'str': '.700 NX casing'} #: lang/json/GENERIC_from_json.py @@ -64271,7 +66082,7 @@ msgid_plural "7.62x54mmR casings" msgstr[0] "гильза 7,62x54 мм R" msgstr[1] "гильзы 7,62x54 мм R" msgstr[2] "гильз 7,62x54 мм R" -msgstr[3] "гильза 7,62x54 мм R" +msgstr[3] "гильзы 7,62x54 мм R" #. ~ Description for {'str': '7.62x54mmR casing'} #: lang/json/GENERIC_from_json.py @@ -64284,7 +66095,7 @@ msgid_plural "7.62x39mm casings" msgstr[0] "гильза 7,62x39 мм" msgstr[1] "гильзы 7,62x39 мм" msgstr[2] "гильз 7,62x39 мм" -msgstr[3] "гильза 7,62x39 мм" +msgstr[3] "гильзы 7,62x39 мм" #. ~ Description for {'str': '7.62x39mm casing'} #: lang/json/GENERIC_from_json.py @@ -64297,7 +66108,7 @@ msgid_plural "7.62x25mm casings" msgstr[0] "гильза 7,62x25 мм" msgstr[1] "гильзы 7,62x25 мм" msgstr[2] "гильз 7,62x25 мм" -msgstr[3] "гильза 7,62x25 мм" +msgstr[3] "гильзы 7,62x25 мм" #. ~ Description for {'str': '7.62x25mm casing'} #: lang/json/GENERIC_from_json.py @@ -64310,7 +66121,7 @@ msgid_plural "9x19mm casings" msgstr[0] "гильза 9х19 мм" msgstr[1] "гильзы 9х19 мм" msgstr[2] "гильз 9х19 мм" -msgstr[3] "гильза 9х19 мм" +msgstr[3] "гильзы 9х19 мм" #. ~ Description for {'str': '9x19mm casing'} #: lang/json/GENERIC_from_json.py @@ -64323,7 +66134,7 @@ msgid_plural ".357 SIG casings" msgstr[0] "гильза .357 SIG" msgstr[1] "гильзы .357 SIG" msgstr[2] "гильз .357 SIG" -msgstr[3] "гильза .357 SIG" +msgstr[3] "гильзы .357 SIG" #. ~ Description for {'str': '.357 SIG casing'} #: lang/json/GENERIC_from_json.py @@ -64349,7 +66160,7 @@ msgid_plural "9x18mm casings" msgstr[0] "гильза 9x18 мм" msgstr[1] "гильзы 9x18 мм" msgstr[2] "гильз 9x18 мм" -msgstr[3] "гильза 9x18 мм" +msgstr[3] "гильзы 9x18 мм" #. ~ Description for {'str': '9x18mm casing'} #: lang/json/GENERIC_from_json.py @@ -64392,7 +66203,7 @@ msgid_plural "shotgun hulls" msgstr[0] "гильза 12 калибра" msgstr[1] "гильзы 12 калибра" msgstr[2] "гильз 12 калибра" -msgstr[3] "гильза 12 калибра" +msgstr[3] "гильзы 12 калибра" #. ~ Description for {'str': 'shotgun hull'} #: lang/json/GENERIC_from_json.py @@ -64428,10 +66239,10 @@ msgstr "Пустая гильза от патрона .300 AAC Blackout." #: lang/json/GENERIC_from_json.py msgid "Merch" msgid_plural "Merchs" -msgstr[0] "Торг" -msgstr[1] "Торга" -msgstr[2] "Торгов" -msgstr[3] "Торги" +msgstr[0] "Мерч" +msgstr[1] "Мерча" +msgstr[2] "Мерчей" +msgstr[3] "Мерчи" #. ~ Description for {'str': 'Merch'} #: lang/json/GENERIC_from_json.py @@ -64556,9 +66367,9 @@ msgstr[3] "обычные кастрюли" msgid "ceramic plate" msgid_plural "ceramic plates" msgstr[0] "керамическая тарелка" -msgstr[1] "керамических тарелки" +msgstr[1] "керамические тарелки" msgstr[2] "керамических тарелок" -msgstr[3] "керамическая тарелка" +msgstr[3] "керамические тарелки" #. ~ Description for {'str': 'ceramic plate'} #: lang/json/GENERIC_from_json.py @@ -64569,9 +66380,9 @@ msgstr "Ничем не примечательная керамическая о msgid "ceramic bowl" msgid_plural "ceramic bowls" msgstr[0] "керамическая миска" -msgstr[1] "керамических миски" +msgstr[1] "керамические миски" msgstr[2] "керамических мисок" -msgstr[3] "керамическая миска" +msgstr[3] "керамические миски" #. ~ Description for {'str': 'ceramic bowl'} #: lang/json/GENERIC_from_json.py @@ -64582,9 +66393,9 @@ msgstr "Совершенно обычная керамическая супов msgid "ceramic cup" msgid_plural "ceramic cups" msgstr[0] "керамическая чашка" -msgstr[1] "керамических чашки" +msgstr[1] "керамические чашки" msgstr[2] "керамических чашек" -msgstr[3] "керамическая чашка" +msgstr[3] "керамические чашки" #. ~ Description for {'str': 'ceramic cup'} #: lang/json/GENERIC_from_json.py @@ -64682,9 +66493,9 @@ msgstr "На боку кружки написано «ПрОсТо АлКоГо msgid "tin plate" msgid_plural "tin plates" msgstr[0] "оловянная тарелка" -msgstr[1] "оловянных тарелки" +msgstr[1] "оловянные тарелки" msgstr[2] "оловянных тарелок" -msgstr[3] "оловянная тарелка" +msgstr[3] "оловянные тарелки" #. ~ Description for {'str': 'tin plate'} #: lang/json/GENERIC_from_json.py @@ -64711,10 +66522,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "pewter bowl" msgid_plural "pewter bowls" -msgstr[0] "оловянная чаша" -msgstr[1] "оловянных чаши" -msgstr[2] "оловянных чаш" -msgstr[3] "оловянная чаша" +msgstr[0] "оловянная миска" +msgstr[1] "оловянные миски" +msgstr[2] "оловянных мисок" +msgstr[3] "оловянные миски" #. ~ Description for {'str': 'pewter bowl'} #: lang/json/GENERIC_from_json.py @@ -64725,9 +66536,9 @@ msgstr "Маленькая оловянная миска без крышки. В msgid "glass plate" msgid_plural "glass plates" msgstr[0] "стеклянная тарелка" -msgstr[1] "стеклянных тарелки" +msgstr[1] "стеклянные тарелки" msgstr[2] "стеклянных тарелок" -msgstr[3] "стеклянная тарелка" +msgstr[3] "стеклянные тарелки" #. ~ Description for {'str': 'glass plate'} #: lang/json/GENERIC_from_json.py @@ -64766,9 +66577,9 @@ msgstr "Бокал на ножке. Чувствуешь себя шикарно msgid "glass bowl" msgid_plural "glass bowls" msgstr[0] "стеклянная чашка" -msgstr[1] "стеклянных чашки" +msgstr[1] "стеклянные чашки" msgstr[2] "стеклянных чашек" -msgstr[3] "стеклянная чашка" +msgstr[3] "стеклянные чашки" #. ~ Description for {'str': 'glass bowl'} #: lang/json/GENERIC_from_json.py @@ -64805,6 +66616,19 @@ msgstr "" "Прочный пластиковый стакан. Он сделан из прозрачного акрила и выглядит почти" " как стеклянный." +#: lang/json/GENERIC_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "пластиковая миска" +msgstr[1] "пластиковые миски" +msgstr[2] "пластиковых мисок" +msgstr[3] "пластиковые миски" + +#. ~ Description for {'str': 'plastic bowl'} +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "Пластмассовая чаша с удобной крышкой. Вмещает 750 мл жидкости." + #: lang/json/GENERIC_from_json.py msgid "kiddie bowl" msgid_plural "kiddie bowls" @@ -64832,7 +66656,7 @@ msgstr "На донышке этой миски нарисован Йода с msgid "" "This bowl is covered in cartoon dogs and a logo that reads 'Paw Patrol'." msgstr "" -"Эта миска разрисована мультяшными собачками и логотипом «Патрульные Лапы»." +"Эта миска разрисована мультяшными собачками и логотипом «Щенячьего патруля»." #: lang/json/GENERIC_from_json.py msgid "" @@ -64903,7 +66727,7 @@ msgid_plural "forks" msgstr[0] "вилка" msgstr[1] "вилки" msgstr[2] "вилок" -msgstr[3] "вилка" +msgstr[3] "вилки" #. ~ Description for {'str': 'fork'} #: lang/json/GENERIC_from_json.py @@ -64935,7 +66759,7 @@ msgid_plural "spoons" msgstr[0] "ложка" msgstr[1] "ложки" msgstr[2] "ложек" -msgstr[3] "ложка" +msgstr[3] "ложки" #. ~ Description for {'str': 'spoon'} #: lang/json/GENERIC_from_json.py @@ -65000,7 +66824,7 @@ msgid_plural "butter knives" msgstr[0] "нож для масла" msgstr[1] "ножа для масла" msgstr[2] "ножей для масла" -msgstr[3] "нож для масла" +msgstr[3] "ножи для масла" #. ~ Description for {'str': 'butter knife', 'str_pl': 'butter knives'} #: lang/json/GENERIC_from_json.py @@ -65137,7 +66961,7 @@ msgid_plural "sporks" msgstr[0] "ложко-вилка" msgstr[1] "ложко-вилки" msgstr[2] "ложко-вилок" -msgstr[3] "ложко-вилка" +msgstr[3] "ложко-вилки" #. ~ Description for {'str': 'spork'} #: lang/json/GENERIC_from_json.py @@ -65154,7 +66978,7 @@ msgid_plural "foons" msgstr[0] "вилко-ложка" msgstr[1] "вилко-ложки" msgstr[2] "вилко-ложек" -msgstr[3] "вилко-ложка" +msgstr[3] "вилко-ложки" #. ~ Description for {'str': 'foon'} #: lang/json/GENERIC_from_json.py @@ -65219,7 +67043,7 @@ msgstr[3] "картофелемялки" msgid "" "This tool can mash potatoes and soft root vegetables; it cannot do the " "twist." -msgstr "Этот инструмент умеет разминать картофель и мягкие корнеплоды." +msgstr "Инструмент для размалывания картофеля и мягких корнеплодов." #: lang/json/GENERIC_from_json.py msgid "garlic press" @@ -65304,7 +67128,7 @@ msgid_plural "pots" msgstr[0] "кастрюля" msgstr[1] "кастрюли" msgstr[2] "кастрюль" -msgstr[3] "кастрюля" +msgstr[3] "кастрюли" #. ~ Description for {'str': 'pot'} #: lang/json/GENERIC_from_json.py @@ -65330,9 +67154,9 @@ msgstr "" msgid "copper pot" msgid_plural "copper pots" msgstr[0] "медная кастрюля" -msgstr[1] "медных кастрюли" +msgstr[1] "медные кастрюли" msgstr[2] "медных кастрюль" -msgstr[3] "медная кастрюля" +msgstr[3] "медные кастрюли" #. ~ Description for {'str': 'copper pot'} #: lang/json/GENERIC_from_json.py @@ -65383,7 +67207,7 @@ msgid_plural "canning pots" msgstr[0] "кастрюля для консервации" msgstr[1] "кастрюли для консервации" msgstr[2] "кастрюль для консервации" -msgstr[3] "кастрюля для консервации" +msgstr[3] "кастрюли для консервации" #. ~ Description for {'str': 'canning pot'} #: lang/json/GENERIC_from_json.py @@ -65453,9 +67277,9 @@ msgstr "" msgid "makeshift pot" msgid_plural "makeshift pots" msgstr[0] "самодельная кастрюля" -msgstr[1] "самодельных кастрюли" +msgstr[1] "самодельные кастрюли" msgstr[2] "самодельных кастрюль" -msgstr[3] "самодельная кастрюля" +msgstr[3] "самодельные кастрюли" #. ~ Description for {'str': 'makeshift pot'} #: lang/json/GENERIC_from_json.py @@ -65470,9 +67294,9 @@ msgstr "" msgid "makeshift copper pot" msgid_plural "makeshift copper pots" msgstr[0] "самодельная медная кастрюля" -msgstr[1] "самодельных медных кастрюли" +msgstr[1] "самодельные медные кастрюли" msgstr[2] "самодельных медных кастрюль" -msgstr[3] "самодельная медная кастрюля" +msgstr[3] "самодельные медные кастрюли" #. ~ Description for {'str': 'makeshift copper pot'} #: lang/json/GENERIC_from_json.py @@ -65499,10 +67323,10 @@ msgstr "Чайник для кухонной плиты. Кипятит воду #: lang/json/GENERIC_from_json.py msgid "mesh colander" msgid_plural "mesh colanders" -msgstr[0] "сетка дуршлаг" -msgstr[1] "сетки дуршлаг" -msgstr[2] "сеток дуршлаг" -msgstr[3] "сетки дуршлаг" +msgstr[0] "дуршлаг" +msgstr[1] "дуршлага" +msgstr[2] "дуршлагов" +msgstr[3] "дуршлаги" #. ~ Description for {'str': 'mesh colander'} #: lang/json/GENERIC_from_json.py @@ -65567,26 +67391,25 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "XLR cable" msgid_plural "XLR cables" -msgstr[0] "кабель XLR " -msgstr[1] "кабель XLR " -msgstr[2] "кабель XLR " -msgstr[3] "кабель XLR " +msgstr[0] "кабель XLR" +msgstr[1] "кабеля XLR" +msgstr[2] "кабелей XLR" +msgstr[3] "кабели XLR" #. ~ Description for {'str': 'XLR cable'} #: lang/json/GENERIC_from_json.py msgid "" "A balanced cable used for sending audio signal. The connectors have three " "prongs." -msgstr "" -"Сбалансированный кабель для передачи аудиосигнала. Разъемы имеют три зубца." +msgstr "Балансный кабель для передачи аудиосигнала. Разъемы имеют три зубца." #: lang/json/GENERIC_from_json.py msgid "speaker cable" msgid_plural "speaker cables" msgstr[0] "кабель для аудиоколонок" -msgstr[1] "кабель для аудиоколонок" -msgstr[2] "кабель для аудиоколонок" -msgstr[3] "кабель для аудиоколонок" +msgstr[1] "кабеля для аудиоколонок" +msgstr[2] "кабелей для аудиоколонок" +msgstr[3] "кабели для аудиоколонок" #. ~ Description for {'str': 'speaker cable'} #: lang/json/GENERIC_from_json.py @@ -65601,9 +67424,9 @@ msgstr "" msgid "instrument cable" msgid_plural "instrument cables" msgstr[0] "звукосъемный кабель" -msgstr[1] "звукосъемный кабель" -msgstr[2] "звукосъемный кабель" -msgstr[3] "звукосъемный кабель" +msgstr[1] "звукосъемных кабеля" +msgstr[2] "звукосъемных кабелей" +msgstr[3] "звукосъемные кабели" #. ~ Description for {'str': 'instrument cable'} #: lang/json/GENERIC_from_json.py @@ -65613,8 +67436,7 @@ msgid "" "each side." msgstr "" "Кабель для снятия звука с инструмента, подключаемый, например, к гитаре и " -"усилителю. Несбалансированный кабель с разъемами папа в 1/4 дюйма на обоих " -"концах." +"усилителю. Небалансный кабель с разъемами папа в 1/4 дюйма на обоих концах." #: lang/json/GENERIC_from_json.py msgid "headphones" @@ -65688,6 +67510,23 @@ msgstr "" "Небольшой кусок алюминиевой фурнитуры странной формы с тремя ножками. На нем" " можно установить одну гитару в вертикальном положении." +#: lang/json/GENERIC_from_json.py +msgid "plectrum" +msgid_plural "plectra" +msgstr[0] "плектр" +msgstr[1] "плектра" +msgstr[2] "плектров" +msgstr[3] "плектры" + +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." +msgstr "" +"Плектр, или медиатор - плоский кусочек пластика с узким концом, используемый" +" для перебора струн при игре на гитаре или мандолине." + #: lang/json/GENERIC_from_json.py msgid "mixer" msgid_plural "mixers" @@ -65712,7 +67551,7 @@ msgid_plural "spare parts" msgstr[0] "расходный материал" msgstr[1] "расходного материала" msgstr[2] "расходных материалов" -msgstr[3] "расходный материал" +msgstr[3] "расходные материалы" #. ~ Description for {'str_sp': 'spare parts'} #: lang/json/GENERIC_from_json.py @@ -65729,7 +67568,7 @@ msgid_plural "drive belts" msgstr[0] "приводной ремень" msgstr[1] "приводных ремня" msgstr[2] "приводных ремней" -msgstr[3] "приводной ремень" +msgstr[3] "приводные ремни" #. ~ Description for {'str': 'drive belt'} #: lang/json/GENERIC_from_json.py @@ -65746,7 +67585,7 @@ msgid_plural "makeshift drive belts" msgstr[0] "самодельный приводной ремень" msgstr[1] "самодельных приводных ремня" msgstr[2] "самодельных приводных ремней" -msgstr[3] "самодельный приводной ремень" +msgstr[3] "самодельные приводные ремни" #. ~ Description for {'str': 'makeshift drive belt'} #: lang/json/GENERIC_from_json.py @@ -65763,7 +67602,7 @@ msgid_plural "air filters" msgstr[0] "воздушный фильтр" msgstr[1] "воздушных фильтра" msgstr[2] "воздушных фильтров" -msgstr[3] "воздушный фильтр" +msgstr[3] "воздушные фильтры" #. ~ Description for {'str': 'air filter'} #: lang/json/GENERIC_from_json.py @@ -65781,7 +67620,7 @@ msgid_plural "makeshift air filters" msgstr[0] "самодельный воздушный фильтр" msgstr[1] "самодельных воздушных фильтра" msgstr[2] "самодельных воздушных фильтров" -msgstr[3] "самодельный воздушный фильтр" +msgstr[3] "самодельные воздушные фильтры" #. ~ Description for {'str': 'makeshift air filter'} #: lang/json/GENERIC_from_json.py @@ -65799,7 +67638,7 @@ msgid_plural "automotive filters" msgstr[0] "топливный фильтр" msgstr[1] "топливных фильтра" msgstr[2] "топливных фильтров" -msgstr[3] "топливный фильтр" +msgstr[3] "топливные фильтры" #. ~ Description for {'str': 'automotive filter'} #: lang/json/GENERIC_from_json.py @@ -65813,7 +67652,7 @@ msgid_plural "makeshift automotive filters" msgstr[0] "самодельный топливный фильтр" msgstr[1] "самодельных топливных фильтра" msgstr[2] "самодельных топливных фильтров" -msgstr[3] "самодельный топливный фильтр" +msgstr[3] "самодельные топливные фильтры" #. ~ Description for {'str': 'makeshift automotive filter'} #: lang/json/GENERIC_from_json.py @@ -65831,7 +67670,7 @@ msgid_plural "glow plugs" msgstr[0] "запальная свеча" msgstr[1] "запальные свечи" msgstr[2] "запальных свечей" -msgstr[3] "запальная свеча" +msgstr[3] "запальные свечи" #. ~ Description for {'str': 'glow plug'} #: lang/json/GENERIC_from_json.py @@ -65848,7 +67687,7 @@ msgid_plural "high-pressure pumps" msgstr[0] "насос высокого давления" msgstr[1] "насоса высокого давления" msgstr[2] "насосов высокого давления" -msgstr[3] "насос высокого давления" +msgstr[3] "насосы высокого давления" #. ~ Description for {'str': 'high-pressure pump'} #: lang/json/GENERIC_from_json.py @@ -65866,7 +67705,7 @@ msgid_plural "mechanical pumps" msgstr[0] "механический насос" msgstr[1] "механических насоса" msgstr[2] "механических насосов" -msgstr[3] "механический насос" +msgstr[3] "механические насосы" #. ~ Description for {'str': 'mechanical pump'} #: lang/json/GENERIC_from_json.py @@ -65930,7 +67769,7 @@ msgid_plural "long strings" msgstr[0] "длинный шнур" msgstr[1] "длинных шнура" msgstr[2] "длинных шнуров" -msgstr[3] "длинный шнур" +msgstr[3] "длинные шнуры" #. ~ Description for {'str': 'long string'} #: lang/json/GENERIC_from_json.py @@ -65941,25 +67780,25 @@ msgstr "Кусок хлопкового шнура длиной примерно msgid "short rope" msgid_plural "short ropes" msgstr[0] "короткая верёвка" -msgstr[1] "коротких верёвки" +msgstr[1] "короткие верёвки" msgstr[2] "коротких верёвок" -msgstr[3] "короткая верёвка" +msgstr[3] "короткие верёвки" #. ~ Description for {'str': 'short rope'} #: lang/json/GENERIC_from_json.py msgid "" "A 6-foot (or about 180 cm) long piece of rope. Too small to be of much use." msgstr "" -"Почти двухметровый (180 см) кусок верёвки. Слишком короткий, чтобы быть " -"очень полезным." +"Почти двухметровый (180 см) кусок верёвки. Слишком короткий для большинства " +"применений." #: lang/json/GENERIC_from_json.py msgid "long rope" msgid_plural "long ropes" msgstr[0] "длинная верёвка" -msgstr[1] "длинных верёвки" +msgstr[1] "длинные верёвки" msgstr[2] "длинных верёвок" -msgstr[3] "длинная верёвка" +msgstr[3] "длинные верёвки" #. ~ Description for {'str': 'long rope'} #: lang/json/GENERIC_from_json.py @@ -65972,9 +67811,9 @@ msgstr "9-метровая длинная верёвка. Полезна для msgid "short vine" msgid_plural "short vines" msgstr[0] "короткая лоза" -msgstr[1] "коротких лозы" +msgstr[1] "короткие лозы" msgstr[2] "коротких лоз" -msgstr[3] "короткая лоза" +msgstr[3] "короткие лозы" #. ~ Description for {'str': 'short vine'} #: lang/json/GENERIC_from_json.py @@ -65988,9 +67827,9 @@ msgstr "" msgid "long vine" msgid_plural "long vines" msgstr[0] "длинная лоза" -msgstr[1] "длинных лозы" +msgstr[1] "длинные лозы" msgstr[2] "длинных лоз" -msgstr[3] "длинная лоза" +msgstr[3] "длинные лозы" #. ~ Description for {'str': 'long vine'} #: lang/json/GENERIC_from_json.py @@ -66017,8 +67856,8 @@ msgid "" "rope." msgstr "" "Почти два метра (180 см) грубой верёвки, сплетённой из натуральных волокон. " -"Её можно успешно использовать, но она не такая крепкая или гибкая, как " -"настоящая верёвка." +"Её можно использовать для большинства задач, но она не такая крепкая или " +"гибкая, как настоящая верёвка." #: lang/json/GENERIC_from_json.py msgid "long cordage rope" @@ -66061,7 +67900,7 @@ msgid_plural "golf tees" msgstr[0] "колышек для мяча" msgstr[1] "колышка для мяча" msgstr[2] "колышков для мяча" -msgstr[3] "колышек для мяча" +msgstr[3] "колышки для мяча" #. ~ Description for {'str': 'golf tee'} #: lang/json/GENERIC_from_json.py @@ -66078,7 +67917,7 @@ msgid_plural "golf balls" msgstr[0] "мяч для гольфа" msgstr[1] "мяча для гольфа" msgstr[2] "мячей для гольфа" -msgstr[3] "мяч для гольфа" +msgstr[3] "мячи для гольфа" #. ~ Description for {'str': 'golf ball'} #: lang/json/GENERIC_from_json.py @@ -66091,7 +67930,7 @@ msgid_plural "pool balls" msgstr[0] "бильярдный шар" msgstr[1] "бильярдных шара" msgstr[2] "бильярдных шаров" -msgstr[3] "бильярдный шар" +msgstr[3] "бильярдные шары" #. ~ Description for {'str': 'pool ball'} #: lang/json/GENERIC_from_json.py @@ -66104,7 +67943,7 @@ msgid_plural "bowling balls" msgstr[0] "шар для боулинга" msgstr[1] "шара для боулинга" msgstr[2] "шаров для боулинга" -msgstr[3] "шар для боулинга" +msgstr[3] "шары для боулинга" #. ~ Description for {'str': 'bowling ball'} #: lang/json/GENERIC_from_json.py @@ -66121,7 +67960,7 @@ msgid_plural "baseballs" msgstr[0] "бейсбольный мяч" msgstr[1] "бейсбольных мяча" msgstr[2] "бейсбольных мячей" -msgstr[3] "бейсбольный мяч" +msgstr[3] "бейсбольные мячи" #. ~ Description for {'str': 'baseball'} #: lang/json/GENERIC_from_json.py @@ -66138,7 +67977,7 @@ msgid_plural "footballs" msgstr[0] "футбольный мяч" msgstr[1] "футбольных мяча" msgstr[2] "футбольных мячей" -msgstr[3] "футбольный мяч" +msgstr[3] "футбольные мячи" #. ~ Description for {'str': 'football'} #: lang/json/GENERIC_from_json.py @@ -66155,7 +67994,7 @@ msgid_plural "basketballs" msgstr[0] "баскетбольный мяч" msgstr[1] "баскетбольных мяча" msgstr[2] "баскетбольных мячей" -msgstr[3] "баскетбольный мяч" +msgstr[3] "баскетбольные мячи" #. ~ Description for {'str': 'basketball'} #: lang/json/GENERIC_from_json.py @@ -66165,10 +68004,10 @@ msgstr "Качественный баскетбольный мяч. Вы мож #: lang/json/GENERIC_from_json.py msgid "volleyball" msgid_plural "volleyballs" -msgstr[0] "мяч для волейбола" -msgstr[1] "мяча для волейбола" -msgstr[2] "мячей для волейбола" -msgstr[3] "мячи для волейбола" +msgstr[0] "волейбольный мяч" +msgstr[1] "волейбольных мяча" +msgstr[2] "волейбольных мячей" +msgstr[3] "волейбольные мячи" #. ~ Description for {'str': 'volleyball'} #: lang/json/GENERIC_from_json.py @@ -66178,10 +68017,10 @@ msgstr "Стандартный волейбольный мяч." #: lang/json/GENERIC_from_json.py msgid "beach volleyball" msgid_plural "volleyballs" -msgstr[0] "мяч для волейбола" -msgstr[1] "мяча для волейбола" -msgstr[2] "мячей для волейбола" -msgstr[3] "мячи для волейбола" +msgstr[0] "мяч для пляжного волейбола" +msgstr[1] "мяча для пляжного волейбола" +msgstr[2] "мячей для пляжного волейбола" +msgstr[3] "мячи для пляжного волейбола" #. ~ Description for {'str': 'beach volleyball', 'str_pl': 'volleyballs'} #: lang/json/GENERIC_from_json.py @@ -66196,9 +68035,9 @@ msgstr "" msgid "hockey puck" msgid_plural "hockey pucks" msgstr[0] "хоккейная шайба" -msgstr[1] "хоккейных шайбы" +msgstr[1] "хоккейные шайбы" msgstr[2] "хоккейных шайб" -msgstr[3] "хоккейная шайба" +msgstr[3] "хоккейные шайбы" #. ~ Description for {'str': 'hockey puck'} #: lang/json/GENERIC_from_json.py @@ -66215,7 +68054,7 @@ msgid_plural "makeshift bayonets" msgstr[0] "самодельный штык" msgstr[1] "самодельных штыка" msgstr[2] "самодельных штыков" -msgstr[3] "самодельных штыка" +msgstr[3] "самодельные штыки" #. ~ Description for {'str': 'makeshift bayonet'} #: lang/json/GENERIC_from_json.py @@ -66267,9 +68106,9 @@ msgstr "" msgid "baseball bat" msgid_plural "baseball bats" msgstr[0] "бейсбольная бита" -msgstr[1] "бейсбольных биты" +msgstr[1] "бейсбольные биты" msgstr[2] "бейсбольных бит" -msgstr[3] "бейсбольная бита" +msgstr[3] "бейсбольные биты" #. ~ Description for {'str': 'baseball bat'} #: lang/json/GENERIC_from_json.py @@ -66280,9 +68119,9 @@ msgstr "Прочная деревянная бита. Великолепное msgid "aluminum bat" msgid_plural "aluminum bats" msgstr[0] "алюминиевая бита" -msgstr[1] "алюминиевых биты" +msgstr[1] "алюминиевые биты" msgstr[2] "алюминиевых бит" -msgstr[3] "алюминиевая бита" +msgstr[3] "алюминиевые биты" #. ~ Description for {'str': 'aluminum bat'} #: lang/json/GENERIC_from_json.py @@ -66314,9 +68153,9 @@ msgstr "" msgid "expandable baton" msgid_plural "expandable batons" msgstr[0] "полицейская дубинка" -msgstr[1] "полицейских дубинки" +msgstr[1] "полицейские дубинки" msgstr[2] "полицейских дубинок" -msgstr[3] "полицейская дубинка" +msgstr[3] "полицейские дубинки" #. ~ Use action menu_text for {'str': 'expandable baton'}. #: lang/json/GENERIC_from_json.py @@ -66341,9 +68180,9 @@ msgstr "" msgid "expandable baton (extended)" msgid_plural "expandable batons (extended)" msgstr[0] "полицейская дубинка (раздвинуто)" -msgstr[1] "полицейских дубинки (раздвинуто)" +msgstr[1] "полицейские дубинки (раздвинуто)" msgstr[2] "полицейских дубинок (раздвинуто)" -msgstr[3] "полицейская дубинка (раздвинуто)" +msgstr[3] "полицейские дубинки (раздвинуто)" #. ~ Use action menu_text for {'str': 'expandable baton (extended)', 'str_pl': #. 'expandable batons (extended)'}. @@ -66374,14 +68213,15 @@ msgid_plural "battle axes" msgstr[0] "боевой топор" msgstr[1] "боевых топора" msgstr[2] "боевых топоров" -msgstr[3] "боевой топор" +msgstr[3] "боевые топоры" #. ~ Description for {'str': 'battle axe'} #: lang/json/GENERIC_from_json.py msgid "" "This is a dull, cheaply made replica of a massive axe designed for warfare." msgstr "" -"Тупая и дешёвая подделка массивного топора, предназначенного для войны." +"Тупая и дешёвая подделка массивного топора, предназначенного для " +"использования в бою." #: lang/json/GENERIC_from_json.py msgid "blackjack" @@ -66402,7 +68242,8 @@ msgid "" msgstr "" "Короткая дубинка для скрытого ношения с грузиком на конце кожаной ручки. Её " "использовали полицейские для оглушения при задержании, хотя удар в голову " -"сильно рискует привести к непоправимому увечью головного мозга или смерти." +"сильно рискует привести к непоправимому повреждению головного мозга или " +"смерти." #: lang/json/GENERIC_from_json.py msgid "bokken" @@ -66410,7 +68251,7 @@ msgid_plural "bokkens" msgstr[0] "боккэн" msgstr[1] "боккэна" msgstr[2] "боккэнов" -msgstr[3] "боккэн" +msgstr[3] "боккэны" #. ~ Description for {'str': 'bokken'} #: lang/json/GENERIC_from_json.py @@ -66447,7 +68288,7 @@ msgid_plural "7-10 Splits" msgstr[0] "сплит 7-10" msgstr[1] "сплита 7-10" msgstr[2] "сплитов 7-10" -msgstr[3] "сплит 7-10" +msgstr[3] "сплиты 7-10" #. ~ Description for {'str': 'The 7-10 Split', 'str_pl': '7-10 Splits'} #: lang/json/GENERIC_from_json.py @@ -66455,8 +68296,8 @@ msgid "" "An improvised weapon, made from two spikes attached to a bowling pin in the " "shape of a 'T'." msgstr "" -"Самодельное оружие в виде буквы «T», сделанное из двух шипов, прикреплённых " -"к широкому концу кегли." +"Самодельное оружие в форме буквы «T», сделанное из двух шипов, прикреплённых" +" к широкому концу кегли." #: lang/json/GENERIC_from_json.py msgid "bowling pin" @@ -66464,7 +68305,7 @@ msgid_plural "bowling pins" msgstr[0] "кегля для боулинга" msgstr[1] "кегли для боулинга" msgstr[2] "кеглей для боулинга" -msgstr[3] "кегля для боулинга" +msgstr[3] "кегли для боулинга" #. ~ Description for {'str': 'bowling pin'} #: lang/json/GENERIC_from_json.py @@ -66478,7 +68319,7 @@ msgid_plural "barbed wire bats" msgstr[0] "бита с колючей проволокой" msgstr[1] "биты с колючей проволокой" msgstr[2] "бит с колючей проволокой" -msgstr[3] "бита с колючей проволокой" +msgstr[3] "биты с колючей проволокой" #. ~ Description for {'str': 'barbed wire bat'} #: lang/json/GENERIC_from_json.py @@ -66493,7 +68334,7 @@ msgid_plural "walking canes" msgstr[0] "трость" msgstr[1] "трости" msgstr[2] "тростей" -msgstr[3] "трость" +msgstr[3] "трости" #. ~ Description for {'str': 'walking cane'} #: lang/json/GENERIC_from_json.py @@ -66511,7 +68352,7 @@ msgid_plural "cudgels" msgstr[0] "дубина" msgstr[1] "дубины" msgstr[2] "дубин" -msgstr[3] "дубина" +msgstr[3] "дубины" #. ~ Description for {'str': 'cudgel'} #: lang/json/GENERIC_from_json.py @@ -66528,7 +68369,7 @@ msgid_plural "makeshift macuahuitls" msgstr[0] "самодельный макауитль" msgstr[1] "самодельных макауитля" msgstr[2] "самодельных макауитлей" -msgstr[3] "самодельный макауитль" +msgstr[3] "самодельные макауитли" #. ~ Description for {'str': 'makeshift macuahuitl'} #: lang/json/GENERIC_from_json.py @@ -66542,10 +68383,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "glass shiv" msgid_plural "glass shivs" -msgstr[0] "стеклянное лезвие" -msgstr[1] "стеклянных лезвия" -msgstr[2] "стеклянных лезвий" -msgstr[3] "стеклянное лезвие" +msgstr[0] "стеклянная заточка" +msgstr[1] "стеклянные заточки" +msgstr[2] "стеклянных заточек" +msgstr[3] "стеклянные заточки" #. ~ Description for {'str': 'glass shiv'} #: lang/json/GENERIC_from_json.py @@ -66559,7 +68400,7 @@ msgid_plural "golf clubs" msgstr[0] "клюшка для гольфа" msgstr[1] "клюшки для гольфа" msgstr[2] "клюшек для гольфа" -msgstr[3] "клюшка для гольфа" +msgstr[3] "клюшки для гольфа" #. ~ Description for {'str': 'golf club'} #: lang/json/GENERIC_from_json.py @@ -66576,7 +68417,7 @@ msgid_plural "sledge hammers" msgstr[0] "кувалда" msgstr[1] "кувалды" msgstr[2] "кувалд" -msgstr[3] "кувалда" +msgstr[3] "кувалды" #. ~ Description for {'str': 'sledge hammer'} #: lang/json/GENERIC_from_json.py @@ -66645,9 +68486,9 @@ msgstr "" msgid "hockey stick" msgid_plural "hockey sticks" msgstr[0] "хоккейная клюшка" -msgstr[1] "хоккейных клюшки" +msgstr[1] "хоккейные клюшки" msgstr[2] "хоккейных клюшек" -msgstr[3] "хоккейная клюшка" +msgstr[3] "хоккейные клюшки" #. ~ Description for {'str': 'hockey stick'} #: lang/json/GENERIC_from_json.py @@ -66664,7 +68505,7 @@ msgid_plural "homewreckers" msgstr[0] "стенолом" msgstr[1] "стенолома" msgstr[2] "стеноломов" -msgstr[3] "стенолом" +msgstr[3] "стеноломы" #. ~ Description for {'str': 'homewrecker'} #: lang/json/GENERIC_from_json.py @@ -66681,7 +68522,7 @@ msgid_plural "ironshod quarterstaves" msgstr[0] "окованный сталью посох" msgstr[1] "окованных сталью посоха" msgstr[2] "окованных сталью посохов" -msgstr[3] "окованный сталью посох" +msgstr[3] "окованные сталью посохи" #. ~ Description for {'str': 'ironshod quarterstaff', 'str_pl': 'ironshod #. quarterstaves'} @@ -66727,7 +68568,7 @@ msgid_plural "maces" msgstr[0] "булава" msgstr[1] "булавы" msgstr[2] "булав" -msgstr[3] "булава" +msgstr[3] "булавы" #. ~ Description for {'str': 'mace'} #: lang/json/GENERIC_from_json.py @@ -66781,7 +68622,7 @@ msgid_plural "Mjölnirs" msgstr[0] "Мьёльнир" msgstr[1] "Мьёльнира" msgstr[2] "Мьёльниров" -msgstr[3] "Мьёльнир" +msgstr[3] "Мьёльниры" #. ~ Description for {'str': 'Mjölnir'} #: lang/json/GENERIC_from_json.py @@ -66806,7 +68647,7 @@ msgid_plural "morningstars" msgstr[0] "моргенштерн" msgstr[1] "моргенштерна" msgstr[2] "моргенштернов" -msgstr[3] "моргенштерн" +msgstr[3] "моргенштерны" #. ~ Description for {'str': 'morningstar'} #: lang/json/GENERIC_from_json.py @@ -66843,7 +68684,7 @@ msgid_plural "nail bats" msgstr[0] "бита с гвоздями" msgstr[1] "биты с гвоздями" msgstr[2] "бит с гвоздями" -msgstr[3] "бита с гвоздями" +msgstr[3] "биты с гвоздями" #. ~ Description for {'str': 'nail bat'} #: lang/json/GENERIC_from_json.py @@ -66860,7 +68701,7 @@ msgid_plural "nailboards" msgstr[0] "доска с гвоздями" msgstr[1] "доски с гвоздями" msgstr[2] "досок с гвоздями" -msgstr[3] "доска с гвоздями" +msgstr[3] "доски с гвоздями" #. ~ Description for {'str': 'nailboard'} #: lang/json/GENERIC_from_json.py @@ -66877,7 +68718,7 @@ msgid_plural "pool cues" msgstr[0] "бильярдный кий" msgstr[1] "бильярдных кия" msgstr[2] "бильярдных киёв" -msgstr[3] "бильярдный кий" +msgstr[3] "бильярдные кии" #. ~ Description for {'str': 'pool cue'} #: lang/json/GENERIC_from_json.py @@ -66894,7 +68735,7 @@ msgid_plural "PR-24 batons (extended)" msgstr[0] "дубинка PR-24 (раздвинуто)" msgstr[1] "дубинки PR-24 (раздвинуто)" msgstr[2] "дубинок PR-24 (раздвинуто)" -msgstr[3] "дубинка PR-24 (раздвинуто)" +msgstr[3] "дубинки PR-24 (раздвинуто)" #. ~ Use action menu_text for {'str': 'PR-24 baton (extended)', 'str_pl': #. 'PR-24 batons (extended)'}. @@ -66916,7 +68757,7 @@ msgid "" "used by law enforcement all over the world. The PR designation is rumored " "to mean Public Relations. Activate to retract." msgstr "" -"Monadnock PR-24 раздвижная лёгкая дубинка с ручкой сбоку, используется " +"Monadnock PR-24 - раздвижная лёгкая дубинка с ручкой сбоку, используется " "правоохранительными органами по всему миру. PR, по слухам, означает связи с " "общественностью (Public Relations). Активируйте, чтобы сложить." @@ -66926,7 +68767,7 @@ msgid_plural "PR-24 batons (retracted)" msgstr[0] "дубинка PR-24 (сложено)" msgstr[1] "дубинки PR-24 (сложено)" msgstr[2] "дубинок PR-24 (сложено)" -msgstr[3] "дубинка PR-24 (сложено)" +msgstr[3] "дубинки PR-24 (сложено)" #. ~ Use action menu_text for {'str': 'PR-24 baton (retracted)', 'str_pl': #. 'PR-24 batons (retracted)'}. @@ -66948,7 +68789,7 @@ msgid "" "used by law enforcement all over the world. The PR designation is rumored " "to mean Public Relations. Activate to extend." msgstr "" -"Monadnock PR-24 раздвижная лёгкая дубинка с ручкой сбоку, используется " +"Monadnock PR-24 - раздвижная лёгкая дубинка с ручкой сбоку, используется " "правоохранительными органами по всему миру. PR, по слухам, означает связи с " "общественностью (Public Relations). Активируйте, чтобы раздвинуть." @@ -66958,7 +68799,7 @@ msgid_plural "quarterstaves" msgstr[0] "посох" msgstr[1] "посоха" msgstr[2] "посохов" -msgstr[3] "посох" +msgstr[3] "посохи" #. ~ Description for {'str': 'quarterstaff', 'str_pl': 'quarterstaves'} #: lang/json/GENERIC_from_json.py @@ -66975,14 +68816,14 @@ msgid_plural "rocks in socks" msgstr[0] "камень в носке" msgstr[1] "камня в носке" msgstr[2] "камней в носке" -msgstr[3] "камень в носке" +msgstr[3] "камни в носке" #. ~ Description for {'str': 'rock in a sock', 'str_pl': 'rocks in socks'} #: lang/json/GENERIC_from_json.py msgid "A pair of nested socks filled with a stone. A true weapon of despair." msgstr "" "Пара носков, вложенных друг в друга, с камнем внутри. Настоящее оружие " -"отчаяния." +"последнего шанса." #: lang/json/GENERIC_from_json.py msgid "plastic shank" @@ -67007,7 +68848,7 @@ msgid_plural "shillelaghs" msgstr[0] "шилейла" msgstr[1] "шилейла" msgstr[2] "шилейла" -msgstr[3] "шилейла" +msgstr[3] "шилейлы" #. ~ Description for {'str': 'shillelagh'} #: lang/json/GENERIC_from_json.py @@ -67026,7 +68867,7 @@ msgid_plural "loaded sticks" msgstr[0] "утяжелённая дубина" msgstr[1] "утяжелённые дубины" msgstr[2] "утяжелённых дубин" -msgstr[3] "утяжелённая дубина" +msgstr[3] "утяжелённые дубины" #. ~ Description for {'str': 'loaded stick'} #: lang/json/GENERIC_from_json.py @@ -67049,9 +68890,9 @@ msgid "" "stick has not been cured in a chimney like a traditional shillelagh but has " "had fake black soot painted on." msgstr "" -"Поддельная шилейла массово производимая как сувенир для туристов. Эта " +"Поддельная шилейла, массово производимая как сувенир для туристов. Эта " "сучковатая палка не вулканизировалась в камине, в отличии от традиционной " -"шилейлы, но имеет поддельную сажу на себе." +"шилейлы, но все же покрыта поддельной сажей." #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -67059,7 +68900,7 @@ msgid_plural "tonfas" msgstr[0] "тонфа" msgstr[1] "тонфы" msgstr[2] "тонф" -msgstr[3] "тонфа" +msgstr[3] "тонфы" #. ~ Description for {'str': 'tonfa'} #: lang/json/GENERIC_from_json.py @@ -67076,9 +68917,9 @@ msgstr "" msgid "wooden tonfa" msgid_plural "wooden tonfas" msgstr[0] "деревянная тонфа" -msgstr[1] "деревянных тонфы" +msgstr[1] "деревянные тонфы" msgstr[2] "деревянных тонф" -msgstr[3] "деревянная тонфа" +msgstr[3] "деревянные тонфы" #. ~ Description for {'str': 'wooden tonfa'} #: lang/json/GENERIC_from_json.py @@ -67097,7 +68938,7 @@ msgid_plural "war hammers" msgstr[0] "боевой молот" msgstr[1] "боевых молота" msgstr[2] "боевых молотов" -msgstr[3] "боевой молот" +msgstr[3] "боевые молоты" #. ~ Description for {'str': 'war hammer'} #: lang/json/GENERIC_from_json.py @@ -67127,7 +68968,7 @@ msgid_plural "monomolecular blades" msgstr[0] "мономолекулярный клинок" msgstr[1] "мономолекулярных клинка" msgstr[2] "мономолекулярных клинков" -msgstr[3] "мономолекулярный клинок" +msgstr[3] "мономолекулярные клинки" #. ~ Description for {'str': 'monomolecular blade'} #: lang/json/GENERIC_from_json.py @@ -67144,7 +68985,7 @@ msgid_plural "bullwhips" msgstr[0] "кнут" msgstr[1] "кнута" msgstr[2] "кнутов" -msgstr[3] "кнут" +msgstr[3] "кнуты" #. ~ Description for {'str': 'bullwhip'} #: lang/json/GENERIC_from_json.py @@ -67179,11 +69020,12 @@ msgstr "" msgid "pointy stick" msgid_plural "pointy sticks" msgstr[0] "заострённая палка" -msgstr[1] "заострённых палки" +msgstr[1] "заострённые палки" msgstr[2] "заострённых палок" -msgstr[3] "заострённая палка" +msgstr[3] "заострённые палки" #. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py msgid "A simple wood pole with one end sharpened." msgstr "Простая деревянная палка, заточенная на одном конце." @@ -67194,7 +69036,7 @@ msgid_plural "wooden spears" msgstr[0] "деревянное копьё" msgstr[1] "деревянных копья" msgstr[2] "деревянных копий" -msgstr[3] "деревянное копьё" +msgstr[3] "деревянные копья" #. ~ Description for {'str': 'wooden spear'} #: lang/json/GENERIC_from_json.py @@ -67207,7 +69049,7 @@ msgid_plural "forked spears" msgstr[0] "вилкообразное копьё" msgstr[1] "вилкообразных копья" msgstr[2] "вилкообразных копий" -msgstr[3] "вилкообразное копьё" +msgstr[3] "вилкообразные копья" #. ~ Description for {'str': 'forked spear'} #: lang/json/GENERIC_from_json.py @@ -67217,7 +69059,8 @@ msgid "" "combat." msgstr "" "Древко с привязанными к нему тремя шипами и удобным хватом. Оно " -"предназначено для ловли оружия, но не выдержит долгого использования в бою." +"предназначено для захвата оружия, но не выдержит долгого использования в " +"бою." #: lang/json/GENERIC_from_json.py msgid "copper spear" @@ -67225,7 +69068,7 @@ msgid_plural "copper spears" msgstr[0] "медное копьё" msgstr[1] "медных копья" msgstr[2] "медных копий" -msgstr[3] "медное копьё" +msgstr[3] "медные копья" #. ~ Description for {'str': 'copper spear'} #: lang/json/GENERIC_from_json.py @@ -67238,7 +69081,7 @@ msgid_plural "steel spears" msgstr[0] "стальное копьё" msgstr[1] "стальных копья" msgstr[2] "стальных копий" -msgstr[3] "стальное копьё" +msgstr[3] "стальные копья" #. ~ Description for {'str': 'steel spear'} #: lang/json/GENERIC_from_json.py @@ -67251,7 +69094,7 @@ msgid_plural "pipe spears" msgstr[0] "самодельное копьё" msgstr[1] "самодельных копья" msgstr[2] "самодельных копий" -msgstr[3] "самодельное копьё" +msgstr[3] "самодельные копья" #. ~ Description for {'str': 'pipe spear'} #: lang/json/GENERIC_from_json.py @@ -67262,9 +69105,9 @@ msgstr "Толстая металлическая палка с острым о msgid "sharpened rebar" msgid_plural "sharpened rebars" msgstr[0] "заострённая арматура" -msgstr[1] "заострённых арматуры" +msgstr[1] "заострённые арматуры" msgstr[2] "заострённых арматур" -msgstr[3] "заострённая арматура" +msgstr[3] "заострённые арматуры" #. ~ Description for {'str': 'sharpened rebar'} #: lang/json/GENERIC_from_json.py @@ -67296,7 +69139,7 @@ msgid_plural "halberds" msgstr[0] "алебарда" msgstr[1] "алебарды" msgstr[2] "алебард" -msgstr[3] "алебарда" +msgstr[3] "алебарды" #. ~ Description for {'str': 'halberd'} #: lang/json/GENERIC_from_json.py @@ -67322,7 +69165,7 @@ msgid_plural "glaives" msgstr[0] "глефа" msgstr[1] "глефы" msgstr[2] "глеф" -msgstr[3] "глефа" +msgstr[3] "глефы" #. ~ Description for {'str': 'glaive'} #: lang/json/GENERIC_from_json.py @@ -67337,7 +69180,7 @@ msgid_plural "naginata" msgstr[0] "нагината" msgstr[1] "нагинаты" msgstr[2] "нагинат" -msgstr[3] "нагината" +msgstr[3] "нагинаты" #. ~ Description for {'str_sp': 'naginata'} #: lang/json/GENERIC_from_json.py @@ -67377,7 +69220,7 @@ msgid_plural "survivor naginata" msgstr[0] "нагината выживальщика" msgstr[1] "нагинаты выживальщика" msgstr[2] "нагинат выживальщика" -msgstr[3] "нагината выживальщика" +msgstr[3] "нагинаты выживальщика" #. ~ Description for {'str_sp': 'survivor naginata'} #: lang/json/GENERIC_from_json.py @@ -67388,6 +69231,14 @@ msgstr "" "Этот прочный стальной шест с мечевыми клинками на конце, им хорошо рубить и " "колоть." +#: lang/json/GENERIC_from_json.py +msgid "wooden javelin" +msgid_plural "wooden javelins" +msgstr[0] "деревянный дротик" +msgstr[1] "деревянных дротика" +msgstr[2] "деревянных дротиков" +msgstr[3] "деревянные дротики" + #. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -67397,6 +69248,14 @@ msgstr "" "Закалённое в огне и заточенное на конце деревянное копьё. Область хвата с " "насечкой и обмоткой для более уверенного удержания копья." +#: lang/json/GENERIC_from_json.py +msgid "iron javelin" +msgid_plural "iron javelins" +msgstr[0] "железная сулица" +msgstr[1] "железные сулицы" +msgstr[2] "железных сулиц" +msgstr[3] "железные сулицы" + #. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -67421,8 +69280,7 @@ msgid "" "This is a medieval weapon consisting of a wood shaft with a fire hardened " "point." msgstr "" -"Это средневековое оружие, состоящее из древка с наконечником из обожженного " -"дерева." +"Это средневековое оружие, состоящее из древка с обожженным наконечником." #: lang/json/GENERIC_from_json.py msgctxt "weapon" @@ -67481,9 +69339,9 @@ msgstr "" msgid "war scythe" msgid_plural "war scythes" msgstr[0] "боевая коса" -msgstr[1] "боевых косы" +msgstr[1] "боевые косы" msgstr[2] "боевых кос" -msgstr[3] "боевая коса" +msgstr[3] "боевые косы" #. ~ Description for {'str': 'war scythe'} #: lang/json/GENERIC_from_json.py @@ -67507,7 +69365,8 @@ msgstr[3] "дори" #: lang/json/GENERIC_from_json.py msgid "A well-made spear with a bronze head, Greek in origin." msgstr "" -"Качественное копьё с бронзовым наконечником древнегреческого происхождения." +"Добротно сделанное копьё с бронзовым наконечником древнегреческого " +"происхождения." #: lang/json/GENERIC_from_json.py msgid "ji" @@ -67534,7 +69393,7 @@ msgid_plural "stone spears" msgstr[0] "каменное копьё" msgstr[1] "каменных копья" msgstr[2] "каменных копий" -msgstr[3] "каменное копьё" +msgstr[3] "каменные копья" #. ~ Description for {'str': 'stone spear'} #: lang/json/GENERIC_from_json.py @@ -67547,7 +69406,7 @@ msgid_plural "2-by-swords" msgstr[0] "меч-доска" msgstr[1] "меч-доски" msgstr[2] "меч-досок" -msgstr[3] "меч-доска" +msgstr[3] "мечи-доски" #. ~ Description for {'str': '2-by-sword'} #: lang/json/GENERIC_from_json.py @@ -67564,7 +69423,7 @@ msgid_plural "nords" msgstr[0] "гвоздемеч" msgstr[1] "гвоздемеча" msgstr[2] "гвоздемечей" -msgstr[3] "гвоздемеч" +msgstr[3] "гвоздемечи" #. ~ Description for {'str': 'nord'} #: lang/json/GENERIC_from_json.py @@ -67583,7 +69442,7 @@ msgid_plural "crude swords" msgstr[0] "грубый меч" msgstr[1] "грубых меча" msgstr[2] "грубых мечей" -msgstr[3] "грубый меч" +msgstr[3] "грубые мечи" #. ~ Description for {'str': 'crude sword'} #: lang/json/GENERIC_from_json.py @@ -67621,7 +69480,7 @@ msgid_plural "scimitars" msgstr[0] "скимитар" msgstr[1] "скимитара" msgstr[2] "скимитаров" -msgstr[3] "скимитар" +msgstr[3] "скимитары" #. ~ Description for {'str': 'scimitar'} #: lang/json/GENERIC_from_json.py @@ -67638,7 +69497,7 @@ msgid_plural "estocs" msgstr[0] "эсток" msgstr[1] "эстока" msgstr[2] "эстоков" -msgstr[3] "эсток" +msgstr[3] "эстоки" #. ~ Description for {'str': 'estoc'} #: lang/json/GENERIC_from_json.py @@ -67679,7 +69538,7 @@ msgid_plural "longswords" msgstr[0] "длинный меч" msgstr[1] "длинных меча" msgstr[2] "длинных мечей" -msgstr[3] "длинный меч" +msgstr[3] "длинные мечи" #. ~ Description for {'str': 'longsword'} #: lang/json/GENERIC_from_json.py @@ -67698,7 +69557,7 @@ msgid_plural "arming swords" msgstr[0] "одноручный меч" msgstr[1] "одноручных меча" msgstr[2] "одноручных мечей" -msgstr[3] "одноручный меч" +msgstr[3] "одноручные мечи" #. ~ Description for {'str': 'arming sword'} #: lang/json/GENERIC_from_json.py @@ -67767,9 +69626,9 @@ msgstr "" msgid "fencing foil" msgid_plural "fencing foils" msgstr[0] "фехтовальная рапира" -msgstr[1] "фехтовальной рапиры" +msgstr[1] "фехтовальные рапиры" msgstr[2] "фехтовальных рапир" -msgstr[3] "фехтовальная рапира" +msgstr[3] "фехтовальные рапиры" #. ~ Description for {'str': 'fencing foil'} #: lang/json/GENERIC_from_json.py @@ -67805,9 +69664,9 @@ msgstr "" msgid "fencing saber" msgid_plural "fencing sabers" msgstr[0] "фехтовальная сабля" -msgstr[1] "фехтовальных сабли" +msgstr[1] "фехтовальные сабли" msgstr[2] "фехтовальных сабель" -msgstr[3] "фехтовальная сабля" +msgstr[3] "фехтовальные сабли" #. ~ Description for {'str': 'fencing saber'} #: lang/json/GENERIC_from_json.py @@ -67878,7 +69737,7 @@ msgid "" msgstr "" "У этой некогда безвредной фехтовальной сабли был грубо заточен скруглённый " "кончик. Хотя ей по-прежнему не хватает режущей кромки, теперь она несколько " -"более смертоносна и всё ещё знакома опытному фехтовальщику." +"более смертоносна и вполне подходит опытному фехтовальщику." #: lang/json/GENERIC_from_json.py msgid "hollow cane" @@ -67915,9 +69774,9 @@ msgstr "Узкий клинок для скрытого ношения внут msgid "cutlass" msgid_plural "cutlasses" msgstr[0] "абордажная сабля" -msgstr[1] "абордажных сабли" +msgstr[1] "абордажные сабли" msgstr[2] "абордажных сабель" -msgstr[3] "абордажная сабля" +msgstr[3] "абордажные сабли" #. ~ Description for {'str': 'cutlass', 'str_pl': 'cutlasses'} #: lang/json/GENERIC_from_json.py @@ -67935,7 +69794,7 @@ msgid_plural "katanas" msgstr[0] "катана" msgstr[1] "катаны" msgstr[2] "катан" -msgstr[3] "катана" +msgstr[3] "катаны" #. ~ Description for {'str': 'katana'} #: lang/json/GENERIC_from_json.py @@ -67949,7 +69808,7 @@ msgid_plural "zweihänders" msgstr[0] "цвайхендер" msgstr[1] "цвайхендера" msgstr[2] "цвайхендеров" -msgstr[3] "цвайхендер" +msgstr[3] "цвайхендеры" #. ~ Description for {'str': 'zweihänder'} #: lang/json/GENERIC_from_json.py @@ -67957,17 +69816,17 @@ msgid "" "This is a dull, cheaply made replica of a huge two-handed sword from " "Germany. It still packs a wallop." msgstr "" -"Не заточенная, дешёвая копия огромного двуручного меча из Германии. Всё ещё " +"Тупая дешёвая копия огромного двуручного меча из Германии. Всё ещё " "представляет опасность." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py msgid "broadsword" msgid_plural "broadswords" -msgstr[0] "палаш" -msgstr[1] "палаша" -msgstr[2] "палашей" -msgstr[3] "палаш" +msgstr[0] "широкий меч" +msgstr[1] "широких меча" +msgstr[2] "широких мечей" +msgstr[3] "широкие мечи" #. ~ Description for {'str': 'broadsword'} #: lang/json/GENERIC_from_json.py @@ -67976,8 +69835,8 @@ msgid "" "the 16th, 17th, and 18th centuries. Called 'broad' to contrast with the " "slimmer rapiers." msgstr "" -"Дешёвая и тупая подделка меча времён Модерна, использовавшегося в 16, 17 и " -"18 веках. Назван «широким», чтобы контрастировать со стройными рапирами." +"Дешёвая и тупая копия меча, использовавшегося в 16, 17 и 18 веках. Назван " +"«широким», чтобы можно было отличать от более тонких рапирам." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "cavalry saber" @@ -67985,7 +69844,7 @@ msgid_plural "cavalry sabers" msgstr[0] "кавалерийская сабля" msgstr[1] "кавалерийские сабли" msgstr[2] "кавалерийских сабель" -msgstr[3] "кавалерийская сабля" +msgstr[3] "кавалерийские сабли" #. ~ Description for {'str': 'cavalry saber'} #: lang/json/GENERIC_from_json.py @@ -68002,7 +69861,7 @@ msgid_plural "rapiers" msgstr[0] "рапира" msgstr[1] "рапиры" msgstr[2] "рапир" -msgstr[3] "рапира" +msgstr[3] "рапиры" #. ~ Description for {'str': 'rapier'} #: lang/json/GENERIC_from_json.py @@ -68039,7 +69898,7 @@ msgid_plural "krises" msgstr[0] "крис" msgstr[1] "криса" msgstr[2] "крисов" -msgstr[3] "крис" +msgstr[3] "крисы" #. ~ Description for {'str': 'kris', 'str_pl': 'krises'} #: lang/json/GENERIC_from_json.py @@ -68055,7 +69914,7 @@ msgid_plural "lajatangs" msgstr[0] "ладжетанг" msgstr[1] "ладжетанга" msgstr[2] "ладжетангов" -msgstr[3] "ладжетанг" +msgstr[3] "ладжетанги" #. ~ Description for {'str': 'lajatang'} #: lang/json/GENERIC_from_json.py @@ -68091,7 +69950,7 @@ msgid_plural "cestuses" msgstr[0] "цестус" msgstr[1] "цестуса" msgstr[2] "цестусов" -msgstr[3] "цестус" +msgstr[3] "цестусы" #. ~ Description for {'str': 'cestus', 'str_pl': 'cestuses'} #: lang/json/GENERIC_from_json.py @@ -68108,7 +69967,7 @@ msgid_plural "pairs of brass knuckles" msgstr[0] "пара латунных кастетов" msgstr[1] "пары латунных кастетов" msgstr[2] "пар латунных кастетов" -msgstr[3] "пара латунных кастетов" +msgstr[3] "пары латунных кастетов" #. ~ Description for {'str': 'pair of brass knuckles', 'str_pl': 'pairs of #. brass knuckles'} @@ -68128,7 +69987,7 @@ msgid_plural "razorbar katars" msgstr[0] "катар с шипами" msgstr[1] "катара с шипами" msgstr[2] "катаров с шипами" -msgstr[3] "катар с шипами" +msgstr[3] "катары с шипами" #. ~ Description for {'str': 'razorbar katar'} #: lang/json/GENERIC_from_json.py @@ -68146,7 +70005,7 @@ msgid_plural "pairs of nail knuckles" msgstr[0] "пара кастетов с гвоздями" msgstr[1] "пары кастетов с гвоздями" msgstr[2] "пар кастетов с гвоздями" -msgstr[3] "пара кастетов с гвоздями" +msgstr[3] "пары кастетов с гвоздями" #. ~ Description for {'str': 'pair of nail knuckles', 'str_pl': 'pairs of nail #. knuckles'} @@ -68164,7 +70023,7 @@ msgid_plural "pairs of steel knuckles" msgstr[0] "пара стальных кастетов" msgstr[1] "пары стальных кастетов" msgstr[2] "пар стальных кастетов" -msgstr[3] "пара стальных кастетов" +msgstr[3] "пары стальных кастетов" #. ~ Description for {'str': 'pair of steel knuckles', 'str_pl': 'pairs of #. steel knuckles'} @@ -68181,10 +70040,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "punch dagger" msgid_plural "punch daggers" -msgstr[0] "стилет" -msgstr[1] "стилета" -msgstr[2] "стилетов" -msgstr[3] "стилет" +msgstr[0] "тычковый нож" +msgstr[1] "тычковых ножа" +msgstr[2] "тычковых ножей" +msgstr[3] "тычковые ножи" #. ~ Description for {'str': 'punch dagger'} #: lang/json/GENERIC_from_json.py @@ -68192,8 +70051,8 @@ msgid "" "A short and sharp double-edged dagger made to be gripped in the palm, with " "the blade protruding between the fingers." msgstr "" -"Короткий обоюдоострый Т-образный кинжал. Его зажимают в руке так, что лезвие" -" оказывается между пальцами." +"Короткий обоюдоострый Т-образный кинжал. Его держат в руке так, чтобы лезвие" +" выступало над пальцами." #: lang/json/GENERIC_from_json.py msgid "explosive arrowhead" @@ -68201,7 +70060,7 @@ msgid_plural "explosive arrowheads" msgstr[0] "наконечник разрывной стрелы" msgstr[1] "наконечника разрывной стрелы" msgstr[2] "наконечников разрывной стрелы" -msgstr[3] "наконечник разрывной стрелы" +msgstr[3] "наконечники разрывной стрелы" #. ~ Description for {'str': 'explosive arrowhead'} #: lang/json/GENERIC_from_json.py @@ -68278,7 +70137,7 @@ msgid_plural "throwing knives" msgstr[0] "метательный нож" msgstr[1] "метательных ножа" msgstr[2] "метательных ножей" -msgstr[3] "метательный нож" +msgstr[3] "метательные ножи" #. ~ Description for {'str': 'throwing knife', 'str_pl': 'throwing knives'} #: lang/json/GENERIC_from_json.py @@ -68315,7 +70174,7 @@ msgid_plural "sheets of glass" msgstr[0] "лист стекла" msgstr[1] "листа стекла" msgstr[2] "листов стекла" -msgstr[3] "лист стекла" +msgstr[3] "листы стекла" #. ~ Use action done_message for {'str': 'sheet of glass', 'str_pl': 'sheets #. of glass'}. @@ -68339,7 +70198,7 @@ msgid_plural "sheets of reinforced glass" msgstr[0] "лист ударопрочного стекла" msgstr[1] "листа ударопрочного стекла" msgstr[2] "листов ударопрочного стекла" -msgstr[3] "лист ударопрочного стекла" +msgstr[3] "листы ударопрочного стекла" #. ~ Description for {'str': 'sheet of reinforced glass', 'str_pl': 'sheets of #. reinforced glass'} @@ -68353,7 +70212,7 @@ msgid_plural "panes of reinforced glass" msgstr[0] "кусок ударопрочного стекла" msgstr[1] "куска ударопрочного стекла" msgstr[2] "кусков ударопрочного стекла" -msgstr[3] "кусок ударопрочного стекла" +msgstr[3] "куски ударопрочного стекла" #. ~ Description for {'str': 'pane of reinforced glass', 'str_pl': 'panes of #. reinforced glass'} @@ -68388,7 +70247,7 @@ msgid_plural "peepholes" msgstr[0] "дверной глазок" msgstr[1] "дверных глазка" msgstr[2] "дверных глазков" -msgstr[3] "дверной глазок" +msgstr[3] "дверные глазки" #. ~ Description for {'str': 'peephole'} #: lang/json/GENERIC_from_json.py @@ -68419,7 +70278,7 @@ msgid_plural "pipes" msgstr[0] "труба" msgstr[1] "трубы" msgstr[2] "труб" -msgstr[3] "труба" +msgstr[3] "трубы" #. ~ Description for {'str': 'pipe'} #. ~ Description for TEST pipe @@ -68436,7 +70295,7 @@ msgid_plural "spikes" msgstr[0] "шип" msgstr[1] "шипа" msgstr[2] "шипов" -msgstr[3] "шип" +msgstr[3] "шипы" #. ~ Description for {'str': 'spike'} #: lang/json/GENERIC_from_json.py @@ -68451,9 +70310,9 @@ msgstr "" msgid "copper tubing" msgid_plural "copper tubings" msgstr[0] "медная трубка" -msgstr[1] "медных трубки" +msgstr[1] "медные трубки" msgstr[2] "медных трубок" -msgstr[3] "медная трубка" +msgstr[3] "медные трубки" #. ~ Description for {'str': 'copper tubing'} #: lang/json/GENERIC_from_json.py @@ -68470,7 +70329,7 @@ msgid_plural "aluminum ingots" msgstr[0] "алюминиевый слиток" msgstr[1] "алюминиевых слитка" msgstr[2] "алюминиевых слитков" -msgstr[3] "алюминиевый слиток" +msgstr[3] "алюминиевые слитки" #. ~ Description for {'str': 'aluminum ingot'} #: lang/json/GENERIC_from_json.py @@ -68482,7 +70341,7 @@ msgstr "" "Маленький алюминиевый слиток, стандартизированный для дальнейшей " "переработки. Он лёгок, но прочен, его можно переплавить в различные формы " "для строительства или же перемолоть в порошок и найти ему более… " -"Высококлассное применение." +"специфическое применение." #: lang/json/GENERIC_from_json.py msgid "scrap copper" @@ -68490,7 +70349,7 @@ msgid_plural "scrap copper" msgstr[0] "обрезок меди" msgstr[1] "обрезка меди" msgstr[2] "обрезков меди" -msgstr[3] "обрезок меди" +msgstr[3] "обрезки меди" #. ~ Description for {'str_sp': 'scrap copper'} #: lang/json/GENERIC_from_json.py @@ -68504,7 +70363,7 @@ msgid_plural "bee stings" msgstr[0] "жало пчелы" msgstr[1] "жала пчелы" msgstr[2] "жал пчелы" -msgstr[3] "жало пчелы" +msgstr[3] "жала пчелы" #. ~ Description for {'str': 'bee sting'} #: lang/json/GENERIC_from_json.py @@ -68519,7 +70378,7 @@ msgid_plural "brooms" msgstr[0] "метла" msgstr[1] "метлы" msgstr[2] "мётел" -msgstr[3] "метла" +msgstr[3] "мётлы" #. ~ Description for {'str': 'broom'} #: lang/json/GENERIC_from_json.py @@ -68535,7 +70394,7 @@ msgid_plural "ceramic shards" msgstr[0] "керамический осколок" msgstr[1] "керамических осколка" msgstr[2] "керамических осколков" -msgstr[3] "керамический осколок" +msgstr[3] "керамические осколки" #. ~ Description for {'str': 'ceramic shard'} #: lang/json/GENERIC_from_json.py @@ -68543,8 +70402,8 @@ msgid "" "A broken ceramic shard. It is heavy and has a somewhat sharp edge, but it's" " too irregular to cut properly." msgstr "" -"Сломанный керамический осколок. Он тяжёл и имеет довольно острые края, но " -"они слишком неровные, чтобы ими можно было успешно резать." +"Сломанный керамический осколок. Тяжелый и имеет довольно острые края, но они" +" слишком неровные, чтобы ими можно было успешно резать." #: lang/json/GENERIC_from_json.py msgid "fungal fighter sting" @@ -68552,7 +70411,7 @@ msgid_plural "fungal fighter stings" msgstr[0] "жало грибо-бойца" msgstr[1] "жала грибо-бойца" msgstr[2] "жал грибо-бойца" -msgstr[3] "жало грибо-бойца" +msgstr[3] "жала грибо-бойца" #. ~ Description for {'str': 'fungal fighter sting'} #: lang/json/GENERIC_from_json.py @@ -68593,7 +70452,7 @@ msgid_plural "sharp rocks" msgstr[0] "острый камень" msgstr[1] "острых камня" msgstr[2] "острых камней" -msgstr[3] "острый камень" +msgstr[3] "острые камни" #. ~ Description for {'str': 'sharp rock'} #: lang/json/GENERIC_from_json.py @@ -68623,8 +70482,8 @@ msgid "" msgstr "" "Многоугольная керамическая пуленепробиваемая пластина со слегка вогнутым " "профилем. Ее внутренняя поверхность покрыта сверхвысокомолекулярным " -"полиэтиленом высокой плотности и помечена надписью 'ВЕРХ', а внешняя сторона" -" помечена надписью 'МЕСТО УДАРА'. Пластина предназначена для вставки в " +"полиэтиленом высокой плотности и помечена надписью «ВЕРХ», а внешняя сторона" +" помечена надписью «МЕСТО УДАРА». Пластина предназначена для вставки в " "бронежилет и может выдержать несколько выстрелов крупного калибра перед тем," " как сломается." @@ -68645,7 +70504,7 @@ msgid "" "rifle rounds before breaking." msgstr "" "Многоугольная керамическая пуленепробиваемая пластина со слегка вогнутым " -"профилем. На внешней стороне сделана надпись 'МЕСТО УДАРА'. Пластина " +"профилем. На внешней стороне сделана надпись «МЕСТО УДАРА». Пластина " "предназначена для вставки в бронежилет и может выдержать несколько выстрелов" " крупного калибра перед тем, как сломается." @@ -68655,7 +70514,7 @@ msgid_plural "grenade launcher buttstocks" msgstr[0] "приклад гранатомёта" msgstr[1] "приклада гранатомёта" msgstr[2] "прикладов гранатомёта" -msgstr[3] "приклад гранатомёта" +msgstr[3] "приклады гранатомёта" #. ~ Description for {'str': 'grenade launcher buttstock'} #: lang/json/GENERIC_from_json.py @@ -68663,8 +70522,8 @@ msgid "" "A collapsible buttstock designed for the M320 grenade launcher. When " "combined with this stock, the M320 can be used as a standalone weapon" msgstr "" -"Складной приклад, предназначен для гранатомёта M320. С прикладом M320 можно " -"использовать как самостоятельное оружие." +"Складной приклад, предназначен для гранатомёта M320. С прикладом гранатомет " +"M320 можно использовать как самостоятельное оружие." #: lang/json/GENERIC_from_json.py msgid "wasp sting" @@ -68672,14 +70531,14 @@ msgid_plural "wasp stings" msgstr[0] "жало осы" msgstr[1] "жала осы" msgstr[2] "жал осы" -msgstr[3] "жало осы" +msgstr[3] "жала осы" #. ~ Description for {'str': 'wasp sting'} #: lang/json/GENERIC_from_json.py msgid "A six-inch stinger from a giant wasp. Makes a poor melee weapon." msgstr "" -"Шестидюймовое жало гигантской осы. Можно использовать в роли оружия ближнего" -" боя низкого уровня." +"Шестидюймовое жало гигантской осы. Можно использовать в качестве " +"импровизированного оружия ближнего боя." #: lang/json/GENERIC_from_json.py msgid "plastic sheet" @@ -68713,7 +70572,7 @@ msgid_plural "logs" msgstr[0] "бревно" msgstr[1] "бревна" msgstr[2] "брёвен" -msgstr[3] "бревно" +msgstr[3] "бревна" #. ~ Description for {'str': 'log'} #: lang/json/GENERIC_from_json.py @@ -68722,50 +70581,59 @@ msgid "" " cut it into planks." msgstr "" "Большой кусок бревна, полученный из ствола дерева. (a)ктивируйте топор или " -"пилу, чтобы распилить ее на доски." +"пилу, чтобы распилить его на доски." #: lang/json/GENERIC_from_json.py msgid "splintered wood" msgid_plural "splintered wood" -msgstr[0] "расколотая древесина" -msgstr[1] "расколотой древесины" -msgstr[2] "расколотой древесины" -msgstr[3] "расколотая древесина" +msgstr[0] "щепка" +msgstr[1] "щепки" +msgstr[2] "щепок" +msgstr[3] "щепки" #. ~ Description for {'str_sp': 'splintered wood'} #: lang/json/GENERIC_from_json.py msgid "A splintered piece of wood, could be used as a skewer or for kindling." -msgstr "Деревянная щепка, которую можно использовать как шампур или поджечь." +msgstr "" +"Деревянная щепка, которую можно использовать как шампур или в качестве " +"растопки." #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" -msgstr[0] "тяжёлая палка" -msgstr[1] "тяжёлые палки" -msgstr[2] "тяжёлых палок" -msgstr[3] "тяжёлая палка" +msgid "stout branch" +msgid_plural "stout branches" +msgstr[0] "прочная ветка" +msgstr[1] "прочные ветки" +msgstr[2] "прочных веток" +msgstr[3] "прочные ветки" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." -msgstr "Крепкая тяжёлая палка. Сгодится как оружие ближнего боя." +msgid "" +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." +msgstr "" +"Приличной длины ветка дерева, размером как раз под ладонь. Сойдет в качестве" +" оружия." #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" -msgstr[0] "длинная палка" -msgstr[1] "длинные палки" -msgstr[2] "длинных палок" -msgstr[3] "длинная палка" +msgid "long stout branch" +msgid_plural "long stout branches" +msgstr[0] "длинная прочная ветка" +msgstr[1] "длинные прочные ветки" +msgstr[2] "длинных прочных веток" +msgstr[3] "длинные прочные ветки" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout +#. branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." msgstr "" -"Длинная палка. Можно использовать в качестве оружия ближнего боя или " -"разломать, чтобы получить тяжёлые палки." +"Прямая ветка дерева длиной около 2,5м, толщиной сантиметров в 5. Можно " +"использовать в качестве оружия ближнего боя или разломать, чтобы получить " +"части поменьше." #: lang/json/GENERIC_from_json.py msgid "long pole" @@ -68782,7 +70650,7 @@ msgid "" "gives fresh meaning to walking softly and carrying a big stick." msgstr "" "Крепкий трёхметровый шест. Можно пользоваться как копьём. Катаклизм придаёт " -"свежий смысл ходить тихо и с большой палкой." +"свежий смысл пословице «Говори мягко, но держи в руках большую дубинку»." #: lang/json/GENERIC_from_json.py msgid "plank" @@ -68790,10 +70658,9 @@ msgid_plural "planks" msgstr[0] "доска" msgstr[1] "доски" msgstr[2] "досок" -msgstr[3] "доска" +msgstr[3] "доски" #. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" @@ -68818,9 +70685,9 @@ msgid "" "very sturdy for construction. You could saw or chop it into smaller pieces," " like planks or panels." msgstr "" -"Здоровенная балка из цельной древесины, таскать её очень тяжело и " -"неудобно,но она сгодится как надёжный элемент в строительстве. Её можно " -"распилить или разрубить на мелкие части вроде досок или листов." +"Здоровенная балка из цельной древесины, таскать её очень тяжело и неудобно, " +"но она сгодится как надёжный элемент в строительстве. Её можно распилить или" +" разрубить на мелкие части вроде досок или листов." #: lang/json/GENERIC_from_json.py msgid "wooden panel" @@ -68862,13 +70729,41 @@ msgstr "" " Тяжёлый и неудобный, но очень полезный в любом строительстве, но вам может " "потребоваться разрезать его для небольших проектов." +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "стальная бутылка" +msgstr[1] "стальные бутылки" +msgstr[2] "стальных бутылок" +msgstr[3] "стальные бутылки" + +#. ~ Description for {'str': 'steel bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Бутылка из нержавеющей стали, вмещает 750 мл жидкости." + +#: lang/json/GENERIC_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "складная пластиковая бутылка" +msgstr[1] "складные пластиковые бутылки" +msgstr[2] "складных пластиковых бутылок" +msgstr[3] "складные пластиковые бутылки" + +#. ~ Description for {'str': 'foldable plastic bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Пластиковая бутылка нежёсткой конструкции для удобного хранения, вмещает 500" +" мл жидкости." + #: lang/json/GENERIC_from_json.py msgid "atomic coffee maker" msgid_plural "atomic coffee makers" msgstr[0] "атомная кофемашина" -msgstr[1] "атомных кофемашины" +msgstr[1] "атомные кофемашины" msgstr[2] "атомных кофемашин" -msgstr[3] "атомная кофемашина" +msgstr[3] "атомные кофемашины" #. ~ Description for {'str': 'atomic coffee maker'} #: lang/json/GENERIC_from_json.py @@ -68891,7 +70786,7 @@ msgid_plural "can sealers" msgstr[0] "закаточная машинка" msgstr[1] "закаточные машинки" msgstr[2] "закаточных машинок" -msgstr[3] "закаточная машинка" +msgstr[3] "закаточные машинки" #. ~ Description for {'str': 'can sealer'} #: lang/json/GENERIC_from_json.py @@ -68908,7 +70803,7 @@ msgid_plural "clay pots" msgstr[0] "глиняный горшок" msgstr[1] "глиняных горшка" msgstr[2] "глиняных горшков" -msgstr[3] "глиняный горшок" +msgstr[3] "глиняные горшки" #. ~ Description for {'str': 'clay pot'} #: lang/json/GENERIC_from_json.py @@ -68919,9 +70814,9 @@ msgstr "Грубый глиняный горшок с крышкой для пр msgid "clay quern" msgid_plural "clay querns" msgstr[0] "глиняная ручная мельница" -msgstr[1] "глиняных ручных мельницы" +msgstr[1] "глиняные ручные мельницы" msgstr[2] "глиняных ручных мельниц" -msgstr[3] "глиняная ручная мельница" +msgstr[3] "глиняные ручные мельницы" #. ~ Description for {'str': 'clay quern'} #: lang/json/GENERIC_from_json.py @@ -68934,7 +70829,7 @@ msgid_plural "clay teapots" msgstr[0] "глиняный чайник" msgstr[1] "глиняных чайника" msgstr[2] "глиняных чайников" -msgstr[3] "глиняный чайник" +msgstr[3] "глиняные чайники" #. ~ Description for {'str': 'clay teapot'} #: lang/json/GENERIC_from_json.py @@ -68947,7 +70842,7 @@ msgid_plural "fermenting eggs jars" msgstr[0] "банка маринующихся яиц" msgstr[1] "банки маринующихся яиц" msgstr[2] "банок маринующихся яиц" -msgstr[3] "банка маринующихся яиц" +msgstr[3] "банки маринующихся яиц" #. ~ Use action msg for {'str': 'fermenting eggs jar'}. #: lang/json/GENERIC_from_json.py @@ -68975,15 +70870,15 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "sealed yeast culture" msgid_plural "sealed yeast culture" -msgstr[0] "закрытая культура дрожжей" -msgstr[1] "закрытых культуры дрожжей" -msgstr[2] "закрытых культур дрожжей" -msgstr[3] "закрытая культура дрожжей" +msgstr[0] "закрытая дрожжевая культура" +msgstr[1] "закрытые дрожжевые культуры" +msgstr[2] "закрытых дрожжевых культур" +msgstr[3] "закрытые дрожжевые культуры" #. ~ Use action msg for {'str_sp': 'sealed yeast culture'}. #: lang/json/GENERIC_from_json.py msgid "You open the flask and harvest the culture." -msgstr "Вы открыли флакон и собрали культуру." +msgstr "Вы открыли флакон и собрали дрожжевую культуру." #. ~ Use action not_ready_msg for {'str_sp': 'sealed yeast culture'}. #: lang/json/GENERIC_from_json.py @@ -69005,7 +70900,7 @@ msgid_plural "sealed jars of eggs" msgstr[0] "закрытая банка (маринованные яйца)" msgstr[1] "закрытые банки (маринованные яйца)" msgstr[2] "закрытых банок (маринованные яйца)" -msgstr[3] "закрытая банка (маринованные яйца)" +msgstr[3] "закрытые банки (маринованные яйца)" #. ~ Use action menu_text for {'str': 'sealed jar of eggs', 'str_pl': 'sealed #. jars of eggs'}. @@ -69043,7 +70938,7 @@ msgid_plural "sealed jars of pickles" msgstr[0] "закрытая банка (маринованные огурчики)" msgstr[1] "закрытые банки (маринованные огурчики)" msgstr[2] "закрытых банок (маринованные огурчики)" -msgstr[3] "закрытая банка (маринованные огурчики)" +msgstr[3] "закрытые банки (маринованные огурчики)" #. ~ Description for {'str': 'sealed jar of pickles', 'str_pl': 'sealed jars #. of pickles'} @@ -69061,7 +70956,7 @@ msgid_plural "sealed jars of sauerkraut" msgstr[0] "закрытая банка (квашёнка)" msgstr[1] "закрытые банки (квашёнка)" msgstr[2] "закрытых банок (квашёнка)" -msgstr[3] "закрытая банка (квашёнка)" +msgstr[3] "закрытые банки (квашёнка)" #. ~ Description for {'str': 'sealed jar of sauerkraut', 'str_pl': 'sealed #. jars of sauerkraut'} @@ -69079,7 +70974,7 @@ msgid_plural "mess tins" msgstr[0] "солдатский котелок" msgstr[1] "солдатских котелка" msgstr[2] "солдатских котелков" -msgstr[3] "солдатский котелок" +msgstr[3] "солдатские котелки" #. ~ Description for {'str': 'mess tin'} #: lang/json/GENERIC_from_json.py @@ -69147,7 +71042,7 @@ msgid_plural "pasta extruders" msgstr[0] "паста-экструдер" msgstr[1] "паста-экструдера" msgstr[2] "паста-экструдеров" -msgstr[3] "паста-экструдер" +msgstr[3] "паста-экструдеры" #. ~ Description for {'str': 'pasta extruder'} #: lang/json/GENERIC_from_json.py @@ -69156,7 +71051,7 @@ msgid "" "with various heads to make various kinds of pasta." msgstr "" "Паста-экструдер, работающий от прокрутки ручки. Удобен для приготовления " -"пасты. В комплекте есть разные насадки для разных видов пасты." +"пасты. В комплекте есть насадки для разных видов пасты." #: lang/json/GENERIC_from_json.py msgid "fermenting pickle jar" @@ -69164,7 +71059,7 @@ msgid_plural "fermenting pickle jars" msgstr[0] "банка маринующихся огурчиков" msgstr[1] "банки маринующихся огурчиков" msgstr[2] "банок маринующихся огурчиков" -msgstr[3] "банка маринующихся огурчиков" +msgstr[3] "банки маринующихся огурчиков" #. ~ Use action msg for {'str': 'fermenting pickle jar'}. #. ~ Use action msg for {'str': 'fermenting sauerkraut jar'}. @@ -69215,7 +71110,7 @@ msgid_plural "fermenting sauerkraut jars" msgstr[0] "банка киснущих овощей" msgstr[1] "банки киснущих овощей" msgstr[2] "банок киснущих овощей" -msgstr[3] "банка киснущих овощей" +msgstr[3] "банки киснущих овощей" #. ~ Use action not_ready_msg for {'str': 'fermenting sauerkraut jar'}. #: lang/json/GENERIC_from_json.py @@ -69268,8 +71163,9 @@ msgid "" msgstr "" "Это не просто ситечко для лапши; это сито для отделения частиц определенных " "размеров. С его помощью можно действительно хорошо просеять муку, удалить " -"пыль и грязь из зерна, или, возможно, провести ситовой анализ для любых " -"инженеров-строителей, которых вы знаете. Это сито сделано из стальной сетки." +"пыль и грязь из зерна, или, возможно, провести ситовой анализ с вашим " +"знакомым инженером-строителем, если такой найдется. Это сито сделано из " +"стальной сетки." #: lang/json/GENERIC_from_json.py msgid "teapot" @@ -69292,7 +71188,7 @@ msgid_plural "waffle irons" msgstr[0] "вафельница" msgstr[1] "вафельницы" msgstr[2] "вафельниц" -msgstr[3] "вафельница" +msgstr[3] "вафельницы" #. ~ Description for {'str': 'waffle iron'} #: lang/json/GENERIC_from_json.py @@ -69379,7 +71275,7 @@ msgid_plural "canister grenades" msgstr[0] "граната" msgstr[1] "гранаты" msgstr[2] "гранат" -msgstr[3] "граната" +msgstr[3] "гранаты" #. ~ Use action message for {'str': 'canister grenade'}. #: lang/json/GENERIC_from_json.py @@ -69393,7 +71289,7 @@ msgid_plural "tear gas grenades" msgstr[0] "слезоточивая граната" msgstr[1] "слезоточивые гранаты" msgstr[2] "слезоточивых гранат" -msgstr[3] "слезоточивая граната" +msgstr[3] "слезоточивые гранаты" #. ~ Description for {'str': 'tear gas grenade'} #: lang/json/GENERIC_from_json.py @@ -69415,7 +71311,7 @@ msgid_plural "armed tear gas canisters" msgstr[0] "слезоточивая граната (активно)" msgstr[1] "слезоточивые гранаты (активно)" msgstr[2] "слезоточивых гранат (активно)" -msgstr[3] "слезоточивая граната (активно)" +msgstr[3] "слезоточивые гранаты (активно)" #. ~ Description for {'str': 'armed tear gas canister'} #: lang/json/GENERIC_from_json.py @@ -69442,8 +71338,7 @@ msgid "" msgstr "" "Граната с раствором инсектицида. Активируйте, чтобы выдернуть чеку и " "перевести гранату в боевое положение. Через пять ходов после активации " -"начнёт выделяться высокотоксичный газ, крайне ядовитый для насекомых форм " -"жизни." +"начнёт выделяться высокотоксичный газ, крайне ядовитый для насекомых." #: lang/json/GENERIC_from_json.py msgid "armed insecticidal gas canister" @@ -69481,7 +71376,7 @@ msgstr "" "Самодельная граната с раствором инсектицида. Активируйте, чтобы выдернуть " "чеку и перевести гранату в боевое положение. Через пять ходов после " "активации начнёт выделяться высокотоксичный газ, крайне ядовитый для " -"насекомых форм жизни." +"насекомых." #: lang/json/GENERIC_from_json.py msgid "armed makeshift insecticidal gas canister" @@ -69504,9 +71399,9 @@ msgstr "" msgid "smoke bomb" msgid_plural "smoke bombs" msgstr[0] "дымовая бомба" -msgstr[1] "дымовых бомбы" +msgstr[1] "дымовые бомбы" msgstr[2] "дымовых бомб" -msgstr[3] "дымовая бомба" +msgstr[3] "дымовые бомбы" #. ~ Description for {'str': 'smoke bomb'} #: lang/json/GENERIC_from_json.py @@ -69528,7 +71423,7 @@ msgid_plural "armed smoke bombs" msgstr[0] "дымовая бомба (активно)" msgstr[1] "дымовые бомбы (активно)" msgstr[2] "дымовых бомб (активно)" -msgstr[3] "дымовая бомба (активно)" +msgstr[3] "дымовые бомбы (активно)" #. ~ Description for {'str': 'armed smoke bomb'} #: lang/json/GENERIC_from_json.py @@ -69558,7 +71453,7 @@ msgid_plural "fishing hooks" msgstr[0] "рыболовный крючок" msgstr[1] "рыболовных крючка" msgstr[2] "рыболовных крючков" -msgstr[3] "рыболовный крючок" +msgstr[3] "рыболовные крючки" #. ~ Description for {'str': 'fishing hook'} #: lang/json/GENERIC_from_json.py @@ -69584,7 +71479,7 @@ msgid_plural "digging sticks" msgstr[0] "землекопалка" msgstr[1] "землекопалки" msgstr[2] "землекопалок" -msgstr[3] "землекопалка" +msgstr[3] "землекопалки" #. ~ Description for {'str': 'digging stick'} #: lang/json/GENERIC_from_json.py @@ -69601,7 +71496,7 @@ msgid_plural "atomic lamps" msgstr[0] "атомная лампа" msgstr[1] "атомные лампы" msgstr[2] "атомных ламп" -msgstr[3] "атомная лампа" +msgstr[3] "атомные лампы" #. ~ Use action menu_text for {'str': 'atomic lamp'}. #. ~ Use action menu_text for {'str': 'atomic reading light'}. @@ -69638,7 +71533,7 @@ msgid_plural "atomic lamps (covered)" msgstr[0] "атомная лампа (закрыто)" msgstr[1] "атомные лампы (закрыто)" msgstr[2] "атомных ламп (закрыто)" -msgstr[3] "атомная лампа (закрыто)" +msgstr[3] "атомные лампы (закрыто)" #. ~ Use action menu_text for {'str': 'atomic lamp (covered)', 'str_pl': #. 'atomic lamps (covered)'}. @@ -69736,13 +71631,32 @@ msgstr "" " мишки, чтобы у очень богатого ребёнка с боязнью темноты был ночник. Крышка " "закрыта. Активируйте, чтобы открыть крышку и выпустить свет." +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" +msgstr[0] "набор для взятия крови" +msgstr[1] "набора для взятия крови" +msgstr[2] "наборов для взятия крови" +msgstr[3] "наборы для взятия крови" + +#. ~ Description for {'str': 'blood draw kit'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." +msgstr "" +"Набор для взятия крови, включающий герметичную пробирку для отобранных " +"образцов. Активируйте для взятия крови либо у себя, либо из трупа, над " +"которым вы стоите." + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" msgid_plural "charcoal kilns" msgstr[0] "углевыжигательная печь" -msgstr[1] "углевыжигательных печи" +msgstr[1] "углевыжигательные печи" msgstr[2] "углевыжигательных печей" -msgstr[3] "углевыжигательная печь" +msgstr[3] "углевыжигательные печи" #. ~ Description for {'str': 'charcoal kiln'} #: lang/json/GENERIC_from_json.py @@ -69760,7 +71674,7 @@ msgid_plural "lit charcoal kilns" msgstr[0] "углевыжигательная печь (горит)" msgstr[1] "углевыжигательные печи (горит)" msgstr[2] "углевыжигательных печей (горит)" -msgstr[3] "углевыжигательная печь (горит)" +msgstr[3] "углевыжигательные печи (горит)" #. ~ Use action msg for {'str': 'lit charcoal kiln'}. #: lang/json/GENERIC_from_json.py @@ -69785,9 +71699,9 @@ msgstr "Печь полна горящего дерева. Отпустите е msgid "grappling hook" msgid_plural "grappling hooks" msgstr[0] "крюк-кошка" -msgstr[1] "крюк-кошки" -msgstr[2] "крюк-кошек" -msgstr[3] "крюк-кошка" +msgstr[1] "крюка-кошки" +msgstr[2] "крюков-кошек" +msgstr[3] "крюки-кошки" #. ~ Description for {'str': 'grappling hook'} #: lang/json/GENERIC_from_json.py @@ -69806,7 +71720,7 @@ msgid_plural "makeshift glaives" msgstr[0] "самодельная глефа" msgstr[1] "самодельные глефы" msgstr[2] "самодельных глеф" -msgstr[3] "самодельная глефа" +msgstr[3] "самодельные глефы" #. ~ Description for {'str': 'makeshift glaive'} #: lang/json/GENERIC_from_json.py @@ -69842,7 +71756,7 @@ msgid_plural "telescoping umbrellas" msgstr[0] "складной зонт" msgstr[1] "складных зонта" msgstr[2] "складных зонтов" -msgstr[3] "складной зонт" +msgstr[3] "складные зонты" #. ~ Description for {'str': 'telescoping umbrella'} #: lang/json/GENERIC_from_json.py @@ -69859,7 +71773,7 @@ msgid_plural "umbrellas" msgstr[0] "зонт" msgstr[1] "зонта" msgstr[2] "зонтов" -msgstr[3] "зонт" +msgstr[3] "зонты" #. ~ Description for {'str': 'umbrella'} #: lang/json/GENERIC_from_json.py @@ -69873,7 +71787,7 @@ msgid_plural "radio car boxes" msgstr[0] "коробка с машинкой на РУ" msgstr[1] "коробки с машинками на РУ" msgstr[2] "коробок с машинками на РУ" -msgstr[3] "коробка с машинкой на РУ" +msgstr[3] "коробки с машинкой на РУ" #. ~ Description for {'str': 'radio car box', 'str_pl': 'radio car boxes'} #: lang/json/GENERIC_from_json.py @@ -70159,7 +72073,7 @@ msgid_plural "razor blades" msgstr[0] "лезвие бритвы" msgstr[1] "лезвия бритвы" msgstr[2] "лезвий бритвы" -msgstr[3] "лезвие бритвы" +msgstr[3] "лезвия бритвы" #. ~ Description for {'str': 'razor blade'} #: lang/json/GENERIC_from_json.py @@ -70172,7 +72086,7 @@ msgid_plural "hatchets" msgstr[0] "топорик" msgstr[1] "топорика" msgstr[2] "топориков" -msgstr[3] "топорик" +msgstr[3] "топорики" #. ~ Description for {'str': 'hatchet'} #: lang/json/GENERIC_from_json.py @@ -70189,7 +72103,7 @@ msgid_plural "pairs of carding paddles" msgstr[0] "чесалка для пряжи" msgstr[1] "пары чесалок для пряжи" msgstr[2] "пар чесалок для пряжи" -msgstr[3] "чесалка для пряжи" +msgstr[3] "чесалки для пряжи" #. ~ Description for {'str': 'carding paddles', 'str_pl': 'pairs of carding #. paddles'} @@ -70207,7 +72121,7 @@ msgid_plural "distaves and spindles" msgstr[0] "прялка с веретеном" msgstr[1] "прялки с веретеном" msgstr[2] "прялок с веретеном" -msgstr[3] "прялка с веретеном" +msgstr[3] "прялки с веретеном" #. ~ Description for {'str': 'distaff and spindle', 'str_pl': 'distaves and #. spindles'} @@ -70222,7 +72136,7 @@ msgid_plural "vehicle alternators" msgstr[0] "автомобильный генератор" msgstr[1] "автомобильных генератора" msgstr[2] "автомобильных генераторов" -msgstr[3] "автомобильный генератор" +msgstr[3] "автомобильные генераторы" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "car alternator" @@ -70230,7 +72144,7 @@ msgid_plural "car alternators" msgstr[0] "автогенератор" msgstr[1] "автогенератора" msgstr[2] "автогенераторов" -msgstr[3] "автогенератор" +msgstr[3] "автогенераторы" #. ~ Description for {'str': 'car alternator'} #: lang/json/GENERIC_from_json.py @@ -70245,7 +72159,7 @@ msgid_plural "motorbike alternators" msgstr[0] "мотогенератор" msgstr[1] "мотогенератора" msgstr[2] "мотогенераторов" -msgstr[3] "мотогенератор" +msgstr[3] "мотогенераторы" #. ~ Description for {'str': 'motorbike alternator'} #: lang/json/GENERIC_from_json.py @@ -70275,7 +72189,7 @@ msgid_plural "truck alternators" msgstr[0] "генератор грузовика" msgstr[1] "генератора грузовика" msgstr[2] "генераторов грузовика" -msgstr[3] "генератор грузовика" +msgstr[3] "генераторы грузовика" #. ~ Description for {'str': 'truck alternator'} #: lang/json/GENERIC_from_json.py @@ -70292,7 +72206,7 @@ msgid_plural "7.5kW generators" msgstr[0] "7,5-кВт генератор" msgstr[1] "7,5-кВт генератора" msgstr[2] "7,5-кВт генераторов" -msgstr[3] "7,5-кВт генератор" +msgstr[3] "7,5-кВт генераторы" #. ~ Description for {'str': '7.5kW generator'} #: lang/json/GENERIC_from_json.py @@ -70309,7 +72223,7 @@ msgid_plural "rebar grates" msgstr[0] "решётка из арматуры" msgstr[1] "решётки из арматуры" msgstr[2] "решёток из арматуры" -msgstr[3] "решётка из арматуры" +msgstr[3] "решётки из арматуры" #. ~ Description for {'str': 'rebar grate'} #: lang/json/GENERIC_from_json.py @@ -70326,7 +72240,7 @@ msgid_plural "shock absorbers" msgstr[0] "амортизатор" msgstr[1] "амортизатора" msgstr[2] "амортизаторов" -msgstr[3] "амортизатор" +msgstr[3] "амортизаторы" #. ~ Description for {'str': 'shock absorber'} #: lang/json/GENERIC_from_json.py @@ -70345,7 +72259,7 @@ msgid_plural "storage battery cases" msgstr[0] "аккумуляторный ящик" msgstr[1] "аккумуляторных ящика" msgstr[2] "аккумуляторных ящиков" -msgstr[3] "аккумуляторный ящик" +msgstr[3] "аккумуляторные ящики" #. ~ Description for {'str': 'storage battery case'} #: lang/json/GENERIC_from_json.py @@ -70442,9 +72356,9 @@ msgstr "Паруса для лодки." msgid "inflatable section" msgid_plural "inflatable section" msgstr[0] "надувная секция" -msgstr[1] "надувных секции" +msgstr[1] "надувные секции" msgstr[2] "надувных секций" -msgstr[3] "надувная секция" +msgstr[3] "надувные секции" #. ~ Description for {'str_sp': 'inflatable section'} #: lang/json/GENERIC_from_json.py @@ -70457,7 +72371,7 @@ msgid_plural "inflatable airbag" msgstr[0] "подушка безопасности" msgstr[1] "подушки безопасности" msgstr[2] "подушек безопасности" -msgstr[3] "подушка безопасности" +msgstr[3] "подушки безопасности" #. ~ Description for {'str_sp': 'inflatable airbag'} #: lang/json/GENERIC_from_json.py @@ -70468,9 +72382,9 @@ msgstr "Подушка безопасности." msgid "wire basket" msgid_plural "wire baskets" msgstr[0] "проволочная корзина" -msgstr[1] "проволочных корзины" +msgstr[1] "проволочные корзины" msgstr[2] "проволочных корзин" -msgstr[3] "проволочная корзина" +msgstr[3] "проволочные корзины" #. ~ Description for {'str': 'wire basket'} #: lang/json/GENERIC_from_json.py @@ -70483,7 +72397,7 @@ msgid_plural "bike racks" msgstr[0] "стойка велосипеда" msgstr[1] "стойки велосипеда" msgstr[2] "стоек велосипеда" -msgstr[3] "стойка велосипеда" +msgstr[3] "стойки велосипеда" #. ~ Description for {'str': 'bike rack'} #: lang/json/GENERIC_from_json.py @@ -70494,7 +72408,7 @@ msgid "" msgstr "" "Набор труб, упоров и ремней, установленных на краю транспорта и используемых" " как опорная стойка для другого транспортного средства для его перевозки. " -"Необходимо установить на транспорте." +"Для использования необходимо установить на транспорте." #: lang/json/GENERIC_from_json.py msgid "cargo lock set" @@ -70502,7 +72416,7 @@ msgid_plural "cargo lock sets" msgstr[0] "замок для ящика" msgstr[1] "замка для ящика" msgstr[2] "замков для ящика" -msgstr[3] "замок для ящика" +msgstr[3] "замки для ящика" #. ~ Description for {'str': 'cargo lock set'} #: lang/json/GENERIC_from_json.py @@ -70514,9 +72428,9 @@ msgstr "" msgid "folding wire basket" msgid_plural "folding wire baskets" msgstr[0] "складывающаяся проволочная корзина" -msgstr[1] "складывающихся проволочных корзины" +msgstr[1] "складывающиеся проволочные корзины" msgstr[2] "складывающихся проволочных корзин" -msgstr[3] "складывающаяся проволочная корзина" +msgstr[3] "складывающиеся проволочные корзины" #. ~ Description for {'str': 'folding wire basket'} #: lang/json/GENERIC_from_json.py @@ -70529,7 +72443,7 @@ msgid_plural "bike baskets" msgstr[0] "велосипедная корзина" msgstr[1] "велосипедные корзины" msgstr[2] "велосипедных корзин" -msgstr[3] "велосипедная корзина" +msgstr[3] "велосипедные корзины" #. ~ Description for {'str': 'bike basket'} #: lang/json/GENERIC_from_json.py @@ -70539,10 +72453,10 @@ msgstr "Небольшая складная корзинка для велоси #: lang/json/GENERIC_from_json.py msgid "cargo carrier" msgid_plural "cargo carriers" -msgstr[0] "грузоперевозчик" -msgstr[1] "грузоперевозчика" -msgstr[2] "грузоперевозчиков" -msgstr[3] "грузоперевозчик" +msgstr[0] "грузовой отсек" +msgstr[1] "грузовых отсека" +msgstr[2] "грузовых отсеков" +msgstr[3] "грузовые отсеки" #. ~ Description for {'str': 'cargo carrier'} #: lang/json/GENERIC_from_json.py @@ -70575,7 +72489,7 @@ msgid_plural "livestock carriers" msgstr[0] "перевозка для скота" msgstr[1] "перевозки для скота" msgstr[2] "перевозок для скота" -msgstr[3] "перевозка для скота" +msgstr[3] "перевозки для скота" #. ~ Description for {'str': 'livestock carrier'} #: lang/json/GENERIC_from_json.py @@ -70614,7 +72528,7 @@ msgid_plural "animal lockers" msgstr[0] "клетка для животных" msgstr[1] "клетки для животных" msgstr[2] "клеток для животных" -msgstr[3] "клетка для животных" +msgstr[3] "клетки для животных" #. ~ Description for {'str': 'animal locker'} #: lang/json/GENERIC_from_json.py @@ -70635,23 +72549,22 @@ msgid_plural "camera displays" msgstr[0] "дисплей камеры" msgstr[1] "дисплея камеры" msgstr[2] "дисплеев камер" -msgstr[3] "дисплей камеры" +msgstr[3] "дисплеи камеры" #. ~ Description for {'str': 'camera display'} #: lang/json/GENERIC_from_json.py msgid "A set of small monitors. Required to view cameras' output." msgstr "" -"Комплект небольших мониторов. Требуется, чтобы можно было увидеть выходные " -"данные камер." +"Комплект небольших мониторов. Требуется, чтобы можно было увидеть " +"изображение с камер." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "security camera" msgid_plural "security cameras" msgstr[0] "камера наблюдения" msgstr[1] "камеры наблюдения" msgstr[2] "камер наблюдения" -msgstr[3] "камера наблюдения" +msgstr[3] "камеры наблюдения" #. ~ Description for {'str': 'security camera'} #: lang/json/GENERIC_from_json.py @@ -70668,7 +72581,7 @@ msgid_plural "sets of vehicle controls" msgstr[0] "система управления" msgstr[1] "системы управления" msgstr[2] "систем управления" -msgstr[3] "система управления" +msgstr[3] "системы управления" #. ~ Description for {'str': 'vehicle controls', 'str_pl': 'sets of vehicle #. controls'} @@ -70684,7 +72597,7 @@ msgid_plural "vehicle tracking devices" msgstr[0] "устройство для отслеживания транспортных средств" msgstr[1] "устройства для отслеживания транспортных средств" msgstr[2] "устройств для отслеживания транспортных средств" -msgstr[3] "устройство для отслеживания транспортных средств" +msgstr[3] "устройства для отслеживания транспортных средств" #. ~ Description for {'str': 'vehicle tracking device'} #: lang/json/GENERIC_from_json.py @@ -70714,7 +72627,7 @@ msgid_plural "dashboards" msgstr[0] "приборная панель" msgstr[1] "приборные панели" msgstr[2] "приборных панелей" -msgstr[3] "приборная панель" +msgstr[3] "приборные панели" #. ~ Description for {'str': 'dashboard'} #. ~ Description for {'str': 'electronics control unit'} @@ -70732,16 +72645,15 @@ msgid_plural "electronics control units" msgstr[0] "блок электронного управления" msgstr[1] "блока электронного управления" msgstr[2] "блоков электронного управления" -msgstr[3] "блок электронного управления" +msgstr[3] "блоки электронного управления" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "drive by wire controls" msgid_plural "sets of drive by wire controls" msgstr[0] "комплект электронного управления автомобилем" msgstr[1] "комплекта электронного управления автомобилем" msgstr[2] "комплектов электронного управления автомобилем" -msgstr[3] "комплект электронного управления автомобилем" +msgstr[3] "комплекты электронного управления автомобилем" #. ~ Description for {'str': 'drive by wire controls', 'str_pl': 'sets of #. drive by wire controls'} @@ -70759,7 +72671,7 @@ msgid_plural "robot driving units" msgstr[0] "система роботизированного вождения" msgstr[1] "системы роботизированного вождения" msgstr[2] "систем роботизированного вождения" -msgstr[3] "система роботизированного вождения" +msgstr[3] "системы роботизированного вождения" #. ~ Description for {'str': 'robot driving unit'} #: lang/json/GENERIC_from_json.py @@ -70794,10 +72706,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "massive engine block" msgid_plural "massive engine blocks" -msgstr[0] "блок массивного двигателя" -msgstr[1] "блока массивного двигателя" -msgstr[2] "блоков массивного двигателя" -msgstr[3] "блок массивного двигателя" +msgstr[0] "блок цилиндров массивного двигателя" +msgstr[1] "блока цилиндров массивного двигателя" +msgstr[2] "блоков цилиндров массивного двигателя" +msgstr[3] "блоки цилиндров массивного двигателя" #. ~ Description for {'str': 'massive engine block'} #: lang/json/GENERIC_from_json.py @@ -70805,16 +72717,16 @@ msgid "" "The beginnings of a massive gas or diesel engine. It's not good for much of" " anything on its own." msgstr "" -"Начало массивного бензинового или дизельного двигателя. Без установки от " +"Основа массивного бензинового или дизельного двигателя. Без установки от " "него мало пользы." #: lang/json/GENERIC_from_json.py msgid "large engine block" msgid_plural "large engine blocks" -msgstr[0] "блок большого двигателя" -msgstr[1] "блока большого двигателя" -msgstr[2] "блоков большого двигателя" -msgstr[3] "блок большого двигателя" +msgstr[0] "блок цилиндров большого двигателя" +msgstr[1] "блока цилиндров большого двигателя" +msgstr[2] "блоков цилиндров большого двигателя" +msgstr[3] "блоки цилиндров большого двигателя" #. ~ Description for {'str': 'large engine block'} #: lang/json/GENERIC_from_json.py @@ -70822,16 +72734,16 @@ msgid "" "The beginnings of a large gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" -"Начало большого бензинового или дизельного двигателя. Без установки от него " +"Основа большого бензинового или дизельного двигателя. Без установки от него " "мало пользы." #: lang/json/GENERIC_from_json.py msgid "medium engine block" msgid_plural "medium engine blocks" -msgstr[0] "блок среднего двигателя" -msgstr[1] "блока среднего двигателя" -msgstr[2] "блоков среднего двигателя" -msgstr[3] "блок среднего двигателя" +msgstr[0] "блок цилиндров среднего двигателя" +msgstr[1] "блока цилиндров среднего двигателя" +msgstr[2] "блоков цилиндров среднего двигателя" +msgstr[3] "блоки цилиндров среднего двигателя" #. ~ Description for {'str': 'medium engine block'} #: lang/json/GENERIC_from_json.py @@ -70839,16 +72751,16 @@ msgid "" "The beginnings of a medium gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" -"Начало среднего бензинового или дизельного двигателя. Без установки от него " +"Основа среднего бензинового или дизельного двигателя. Без установки от него " "мало пользы." #: lang/json/GENERIC_from_json.py msgid "small engine block" msgid_plural "small engine blocks" -msgstr[0] "блок маленького двигателя" -msgstr[1] "блока маленького двигателя" -msgstr[2] "блоков маленького двигателя" -msgstr[3] "блок маленького двигателя" +msgstr[0] "блок цилиндров маленького двигателя" +msgstr[1] "блока цилиндров маленького двигателя" +msgstr[2] "блоков цилиндров маленького двигателя" +msgstr[3] "блок цилиндров маленького двигателя" #. ~ Description for {'str': 'small engine block'} #: lang/json/GENERIC_from_json.py @@ -70856,16 +72768,16 @@ msgid "" "The beginnings of a small gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" -"Начало маленького бензинового или дизельного двигателя. Без установки от " +"Основа маленького бензинового или дизельного двигателя. Без установки от " "него мало пользы." #: lang/json/GENERIC_from_json.py msgid "tiny engine block" msgid_plural "tiny engine blocks" -msgstr[0] "блок миниатюрного двигателя" -msgstr[1] "блока миниатюрного двигателя" -msgstr[2] "блоков миниатюрного двигателя" -msgstr[3] "блок миниатюрного двигателя" +msgstr[0] "блок цилиндров миниатюрного двигателя" +msgstr[1] "блока цилиндров миниатюрного двигателя" +msgstr[2] "блоков цилиндров миниатюрного двигателя" +msgstr[3] "блок цилиндров миниатюрного двигателя" #. ~ Description for {'str': 'tiny engine block'} #: lang/json/GENERIC_from_json.py @@ -70873,7 +72785,7 @@ msgid "" "The beginnings of a tiny gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" -"Начало миниатюрного бензинового или дизельного двигателя. Без установки от " +"Основа миниатюрного бензинового или дизельного двигателя. Без установки от " "него мало пользы." #: lang/json/GENERIC_from_json.py @@ -70882,7 +72794,7 @@ msgid_plural "steel booms" msgstr[0] "подъёмный кран" msgstr[1] "подъёмных крана" msgstr[2] "подъёмных кранов" -msgstr[3] "подъёмный кран" +msgstr[3] "подъёмные краны" #. ~ Description for {'str': 'steel boom'} #: lang/json/GENERIC_from_json.py @@ -70896,10 +72808,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "telescopic cantilever" msgid_plural "telescopic cantilevers" -msgstr[0] "телескопический рычаг" -msgstr[1] "телескопических рычага" -msgstr[2] "телескопических рычагов" -msgstr[3] "телескопический рычаг" +msgstr[0] "телескопический кран" +msgstr[1] "телескопических крана" +msgstr[2] "телескопических кранов" +msgstr[3] "телескопические краны" #. ~ Description for {'str': 'telescopic cantilever'} #: lang/json/GENERIC_from_json.py @@ -70907,7 +72819,7 @@ msgid "" "A small steel telescoping cantilever. If attached to a frame it could be " "used to lift up to 3.5 metric tonnes." msgstr "" -"Маленький стальной телескопический рычаг. Если его прикрепить к корпусу, то " +"Маленький стальной телескопический кран. Если его прикрепить к корпусу, то " "он сможет поднять до 3,5 тонн." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py @@ -70916,7 +72828,7 @@ msgid_plural "pallet lifters" msgstr[0] "подъёмник паллет" msgstr[1] "подъёмника паллет" msgstr[2] "подъёмников паллет" -msgstr[3] "подъёмник паллет" +msgstr[3] "подъёмники паллет" #. ~ Description for {'str': 'pallet lifter'} #: lang/json/GENERIC_from_json.py @@ -70933,7 +72845,7 @@ msgid_plural "rockwheels" msgstr[0] "дисковый резак" msgstr[1] "дисковых резака" msgstr[2] "дисковых резаков" -msgstr[3] "дисковый резак" +msgstr[3] "дисковые резаки" #. ~ Description for {'str': 'rockwheel'} #: lang/json/GENERIC_from_json.py @@ -70947,7 +72859,7 @@ msgid_plural "airjacks" msgstr[0] "пневматический домкрат" msgstr[1] "пневматических домкрата" msgstr[2] "пневматических домкратов" -msgstr[3] "пневматический домкрат" +msgstr[3] "пневматические домкраты" #. ~ Description for {'str': 'airjack'} #. ~ Description for {'str': 'air jack system'} @@ -70965,7 +72877,7 @@ msgid_plural "motorcycle kickstands" msgstr[0] "мотоциклетная подножка" msgstr[1] "мотоциклетные подножки" msgstr[2] "мотоциклетных подножек" -msgstr[3] "мотоциклетная подножка" +msgstr[3] "мотоциклетные подножки" #. ~ Description for {'str': 'motorcycle kickstand'} #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py @@ -70982,7 +72894,7 @@ msgid_plural "vehicle scoops" msgstr[0] "отвал" msgstr[1] "отвала" msgstr[2] "отвалов" -msgstr[3] "отвал" +msgstr[3] "отвалы" #. ~ Description for {'str': 'vehicle scoop'} #: lang/json/GENERIC_from_json.py @@ -70999,7 +72911,7 @@ msgid_plural "seed drills" msgstr[0] "сеялка" msgstr[1] "сеялки" msgstr[2] "сеялок" -msgstr[3] "сеялка" +msgstr[3] "сеялки" #. ~ Description for {'str': 'seed drill'} #: lang/json/GENERIC_from_json.py @@ -71017,7 +72929,7 @@ msgid_plural "reapers" msgstr[0] "жатка" msgstr[1] "жатки" msgstr[2] "жаток" -msgstr[3] "жатка" +msgstr[3] "жатки" #. ~ Description for {'str': 'reaper'} #: lang/json/GENERIC_from_json.py @@ -71034,7 +72946,7 @@ msgid_plural "advanced reapers" msgstr[0] "улучшенная жатка" msgstr[1] "улучшенные жатки" msgstr[2] "улучшенных жаток" -msgstr[3] "улучшенная жатка" +msgstr[3] "улучшенные жатки" #. ~ Description for {'str': 'advanced reaper'} #: lang/json/GENERIC_from_json.py @@ -71049,7 +72961,7 @@ msgid_plural "advanced seed drills" msgstr[0] "улучшенная сеялка" msgstr[1] "улучшенные сеялки" msgstr[2] "улучшенных сеялок" -msgstr[3] "улучшенная сеялка" +msgstr[3] "улучшенные сеялки" #. ~ Description for {'str': 'advanced seed drill'} #: lang/json/GENERIC_from_json.py @@ -71070,7 +72982,7 @@ msgid_plural "plows" msgstr[0] "плуг" msgstr[1] "плуга" msgstr[2] "плугов" -msgstr[3] "плуг" +msgstr[3] "плуги" #. ~ Description for {'str': 'plow'} #: lang/json/GENERIC_from_json.py @@ -71082,9 +72994,9 @@ msgstr "" msgid "foldable-light frame" msgid_plural "foldable-light frames" msgstr[0] "лёгкая складная рама" -msgstr[1] "лёгких складных рамы" +msgstr[1] "лёгкие складные рамы" msgstr[2] "лёгких складных рам" -msgstr[3] "лёгкая складная рама" +msgstr[3] "лёгкие складные рамы" #. ~ Description for {'str': 'foldable-light frame'} #: lang/json/GENERIC_from_json.py @@ -71095,9 +73007,9 @@ msgstr "Небольшая лёгкая складная рама из труб msgid "extra-light frame" msgid_plural "extra-light frames" msgstr[0] "сверхлёгкая рама" -msgstr[1] "сверхлёгких рамы" +msgstr[1] "сверхлёгкие рамы" msgstr[2] "сверхлёгких рам" -msgstr[3] "сверхлёгкая рама" +msgstr[3] "сверхлёгкие рамы" #. ~ Description for {'str': 'extra-light frame'} #: lang/json/GENERIC_from_json.py @@ -71108,9 +73020,9 @@ msgstr "Небольшая лёгкая рама из труб. Использу msgid "steel frame" msgid_plural "steel frames" msgstr[0] "стальная рама" -msgstr[1] "стальных рамы" +msgstr[1] "стальные рамы" msgstr[2] "стальных рам" -msgstr[3] "стальная рама" +msgstr[3] "стальные рамы" #. ~ Description for {'str': 'steel frame'} #: lang/json/GENERIC_from_json.py @@ -71122,9 +73034,9 @@ msgstr "" msgid "heavy duty frame" msgid_plural "heavy duty frames" msgstr[0] "тяжёлая рама" -msgstr[1] "тяжёлых рамы" +msgstr[1] "тяжёлые рамы" msgstr[2] "тяжёлых рам" -msgstr[3] "тяжёлая рама" +msgstr[3] "тяжёлые рамы" #. ~ Description for {'str': 'heavy duty frame'} #: lang/json/GENERIC_from_json.py @@ -71137,9 +73049,9 @@ msgstr "" msgid "wooden frame" msgid_plural "wooden frames" msgstr[0] "деревянная рама" -msgstr[1] "деревянных рамы" +msgstr[1] "деревянные рамы" msgstr[2] "деревянных рам" -msgstr[3] "деревянная рама" +msgstr[3] "деревянные рамы" #. ~ Description for {'str': 'wooden frame'} #: lang/json/GENERIC_from_json.py @@ -71153,7 +73065,7 @@ msgid_plural "foldable wooden frames" msgstr[0] "складная деревянная рама" msgstr[1] "складные деревянные рамы" msgstr[2] "складных деревянных рам" -msgstr[3] "складная деревянная рама" +msgstr[3] "складные деревянные рамы" #. ~ Description for {'str': 'foldable wooden frame'} #: lang/json/GENERIC_from_json.py @@ -71164,9 +73076,9 @@ msgstr "Небольшая складная рама из обрезков де msgid "light wooden frame" msgid_plural "light wooden frames" msgstr[0] "лёгкая деревянная рама" -msgstr[1] "лёгких деревянных рамы" +msgstr[1] "лёгкие деревянные рамы" msgstr[2] "лёгких деревянных рам" -msgstr[3] "лёгкая деревянная рама" +msgstr[3] "лёгкие деревянные рамы" #. ~ Description for {'str': 'light wooden frame'} #: lang/json/GENERIC_from_json.py @@ -71183,7 +73095,7 @@ msgid_plural "car headlights" msgstr[0] "фара" msgstr[1] "фары" msgstr[2] "фар" -msgstr[3] "фара" +msgstr[3] "фары" #. ~ Description for {'str': 'car headlight'} #: lang/json/GENERIC_from_json.py @@ -71256,7 +73168,7 @@ msgid_plural "emergency vehicle lights (red)" msgstr[0] "спецсигнал (красный)" msgstr[1] "спецсигнала (красных)" msgstr[2] "спецсигналов (красных)" -msgstr[3] "спецсигнал (красный)" +msgstr[3] "спецсигналы (красные)" #. ~ Description for {'str': 'emergency vehicle light (red)', 'str_pl': #. 'emergency vehicle lights (red)'} @@ -71274,7 +73186,7 @@ msgid_plural "emergency vehicle lights (blue)" msgstr[0] "спецсигнал (синий)" msgstr[1] "спецсигнала (синих)" msgstr[2] "спецсигналов (синих)" -msgstr[3] "спецсигнал (синий)" +msgstr[3] "спецсигналы (синие)" #. ~ Description for {'str': 'emergency vehicle light (blue)', 'str_pl': #. 'emergency vehicle lights (blue)'} @@ -71289,7 +73201,7 @@ msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "floodlight" msgid_plural "floodlights" -msgstr[0] "прожектор" +msgstr[0] "прожекторы" msgstr[1] "прожектора" msgstr[2] "прожекторов" msgstr[3] "прожектор" @@ -71306,7 +73218,7 @@ msgid_plural "directed floodlights" msgstr[0] "направленный прожектор" msgstr[1] "направленных прожектора" msgstr[2] "направленных прожекторов" -msgstr[3] "направленный прожектор" +msgstr[3] "направленные прожекторы" #. ~ Description for {'str': 'directed floodlight'} #: lang/json/GENERIC_from_json.py @@ -71337,7 +73249,7 @@ msgid_plural "foot cranks" msgstr[0] "велосипедная трансмиссия" msgstr[1] "велосипедные трансмиссии" msgstr[2] "велосипедных трансмиссий" -msgstr[3] "велосипедная трансмиссия" +msgstr[3] "велосипедные трансмиссии" #. ~ Description for {'str': 'foot crank'} #: lang/json/GENERIC_from_json.py @@ -71411,7 +73323,7 @@ msgid_plural "electric motors" msgstr[0] "электродвигатель" msgstr[1] "электродвигателя" msgstr[2] "электродвигателей" -msgstr[3] "электродвигателя" +msgstr[3] "электродвигатели" #. ~ Description for {'str': 'electric motor'} #: lang/json/GENERIC_from_json.py @@ -71424,7 +73336,7 @@ msgid_plural "enhanced electric motors" msgstr[0] "улучшенный электродвигатель" msgstr[1] "улучшенных электродвигателя" msgstr[2] "улучшенных электродвигателей" -msgstr[3] "улучшенных электродвигателя" +msgstr[3] "улучшенные электродвигатели" #. ~ Description for {'str': 'enhanced electric motor'} #: lang/json/GENERIC_from_json.py @@ -71454,7 +73366,7 @@ msgid_plural "large electric motors" msgstr[0] "большой электродвигатель" msgstr[1] "больших электродвигателя" msgstr[2] "больших электродвигателей" -msgstr[3] "больших электродвигателя" +msgstr[3] "большие электродвигатели" #. ~ Description for {'str': 'large electric motor'} #: lang/json/GENERIC_from_json.py @@ -71469,7 +73381,7 @@ msgid_plural "small electric motors" msgstr[0] "малый электродвигатель" msgstr[1] "малых электродвигателя" msgstr[2] "малых электродвигателей" -msgstr[3] "малых электродвигателя" +msgstr[3] "малые электродвигатели" #. ~ Description for {'str': 'small electric motor'} #: lang/json/GENERIC_from_json.py @@ -71482,7 +73394,7 @@ msgid_plural "tiny electric motors" msgstr[0] "миниатюрный электродвигатель" msgstr[1] "миниатюрных электродвигателя" msgstr[2] "миниатюрных электродвигателей" -msgstr[3] "миниатюрный электродвигатель" +msgstr[3] "миниатюрные электродвигатели" #. ~ Description for {'str': 'tiny electric motor'} #: lang/json/GENERIC_from_json.py @@ -71495,7 +73407,7 @@ msgid_plural "mufflers" msgstr[0] "автоглушитель" msgstr[1] "автоглушителя" msgstr[2] "автоглушителей" -msgstr[3] "автоглушитель" +msgstr[3] "автоглушители" #. ~ Description for {'str': 'muffler'} #: lang/json/GENERIC_from_json.py @@ -71512,7 +73424,7 @@ msgid_plural "back-up beepers" msgstr[0] "сигнализатор заднего хода" msgstr[1] "сигнализатора заднего хода" msgstr[2] "сигнализаторов заднего хода" -msgstr[3] "сигнализатор заднего хода" +msgstr[3] "сигнализаторы заднего хода" #. ~ Description for {'str': 'back-up beeper'} #: lang/json/GENERIC_from_json.py @@ -71525,13 +73437,12 @@ msgstr "" "ужасно неразумным." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "stereo system" msgid_plural "stereo systems" msgstr[0] "стереосистема" msgstr[1] "стереосистемы" msgstr[2] "стереосистем" -msgstr[3] "стереосистема" +msgstr[3] "стереосистемы" #. ~ Description for {'str': 'stereo system'} #: lang/json/GENERIC_from_json.py @@ -71546,7 +73457,7 @@ msgid_plural "chime loudspeakers" msgstr[0] "громкоговоритель с колокольчиками" msgstr[1] "громкоговорителя с колокольчиками" msgstr[2] "громкоговорителей с колокольчиками" -msgstr[3] "громкоговоритель с колокольчиками" +msgstr[3] "громкоговорители с колокольчиками" #. ~ Description for {'str_sp': 'chime loudspeakers'} #: lang/json/GENERIC_from_json.py @@ -71565,7 +73476,7 @@ msgid_plural "sheet metal" msgstr[0] "лист металла" msgstr[1] "листа металла" msgstr[2] "листов металла" -msgstr[3] "лист металла" +msgstr[3] "листы металла" #. ~ Description for {'str_sp': 'sheet metal'} #. ~ Description for TEST sheet metal @@ -71579,7 +73490,7 @@ msgid_plural "wired sheet metal" msgstr[0] "лист металла с проводкой" msgstr[1] "листа металла с проводкой" msgstr[2] "листов металла с проводкой" -msgstr[3] "лист металла с проводкой" +msgstr[3] "листы металла с проводкой" #. ~ Description for {'str_sp': 'wired sheet metal'} #: lang/json/GENERIC_from_json.py @@ -71592,7 +73503,7 @@ msgid_plural "wooden armor kits" msgstr[0] "комплект деревянной брони" msgstr[1] "комплекта деревянной брони" msgstr[2] "комплектов деревянной брони" -msgstr[3] "комплект деревянной брони" +msgstr[3] "комплекты деревянной брони" #. ~ Description for {'str': 'wooden armor kit'} #: lang/json/GENERIC_from_json.py @@ -71631,7 +73542,7 @@ msgid_plural "superalloy sheets" msgstr[0] "лист суперсплава" msgstr[1] "листа суперсплава" msgstr[2] "листов суперсплава" -msgstr[3] "лист суперсплава" +msgstr[3] "листы суперсплава" #. ~ Description for {'str': 'superalloy sheet'} #: lang/json/GENERIC_from_json.py @@ -71730,7 +73641,7 @@ msgid_plural "shredders" msgstr[0] "измельчитель" msgstr[1] "измельчителя" msgstr[2] "измельчителей" -msgstr[3] "измельчитель" +msgstr[3] "измельчители" #. ~ Description for {'str': 'shredder'} #: lang/json/GENERIC_from_json.py @@ -71753,7 +73664,7 @@ msgid_plural "vehicle crafting rigs" msgstr[0] "автомобильная мастерская" msgstr[1] "автомобильные мастерские" msgstr[2] "автомобильных мастерских" -msgstr[3] "автомобильная мастерская" +msgstr[3] "автомобильные мастерские" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "onboard chemistry lab" @@ -71761,7 +73672,7 @@ msgid_plural "onboard chemistry labs" msgstr[0] "бортовая химлаборатория" msgstr[1] "бортовые химлаборатории" msgstr[2] "бортовых химлабораторий" -msgstr[3] "бортовая химлаборатория" +msgstr[3] "бортовые химлаборатории" #. ~ Description for {'str': 'onboard chemistry lab'} #: lang/json/GENERIC_from_json.py @@ -71771,7 +73682,7 @@ msgid "" "utilize standard batteries, it requires an external supply of electricity to" " operate." msgstr "" -"Собранный из химического набора, был прикреплён к жгуту запутанных проводов." +"Собранная из химического набора и прикреплённая к жгуту запутанных проводов." " Хорошо подходит для большинства химических проектов, каких только можно " "себе представить. Из-за невозможности использования стандартных батареек, " "требуется внешний источник электроэнергии для работы." @@ -71782,7 +73693,7 @@ msgid_plural "FOODCO kitchen buddies" msgstr[0] "кухонный помощник ФудКо" msgstr[1] "кухонных помощника ФудКо" msgstr[2] "кухонных помощников ФудКо" -msgstr[3] "кухонный помощник ФудКо" +msgstr[3] "кухонные помощники ФудКо" #. ~ Description for {'str': 'FOODCO kitchen buddy', 'str_pl': 'FOODCO kitchen #. buddies'} @@ -71815,9 +73726,9 @@ msgstr "" msgid "vehicle forge rig" msgid_plural "vehicle forge rigs" msgstr[0] "автомобильная кузница" -msgstr[1] "автомобильных кузницы" +msgstr[1] "автомобильные кузницы" msgstr[2] "автомобильных кузниц" -msgstr[3] "автомобильная кузница" +msgstr[3] "автомобильные кузницы" #. ~ Description for {'str': 'vehicle forge rig'} #: lang/json/GENERIC_from_json.py @@ -71834,7 +73745,7 @@ msgid_plural "vehicle kilns" msgstr[0] "автомобильная печь" msgstr[1] "автомобильные печи" msgstr[2] "автомобильных печей" -msgstr[3] "автомобильная печь" +msgstr[3] "автомобильные печи" #. ~ Description for {'str': 'vehicle kiln'} #: lang/json/GENERIC_from_json.py @@ -71846,9 +73757,9 @@ msgstr "" msgid "RV kitchen unit" msgid_plural "RV kitchen units" msgstr[0] "автомобильная кухня" -msgstr[1] "автомобильных кухни" +msgstr[1] "автомобильные кухни" msgstr[2] "автомобильных кухонь" -msgstr[3] "автомобильная кухня" +msgstr[3] "автомобильные кухни" #. ~ Description for {'str': 'RV kitchen unit'} #: lang/json/GENERIC_from_json.py @@ -71863,9 +73774,9 @@ msgstr "" msgid "vehicle welding rig" msgid_plural "vehicle welding rigs" msgstr[0] "автомобильная сварка" -msgstr[1] "автомобильных сварки" +msgstr[1] "автомобильные сварки" msgstr[2] "автомобильных сварок" -msgstr[3] "автомобильная сварка" +msgstr[3] "автомобильные сварки" #. ~ Description for {'str': 'vehicle welding rig'} #: lang/json/GENERIC_from_json.py @@ -71912,7 +73823,7 @@ msgid_plural "seats" msgstr[0] "сиденье" msgstr[1] "сиденья" msgstr[2] "сидений" -msgstr[3] "сиденье" +msgstr[3] "сиденья" #. ~ Description for {'str': 'seat'} #: lang/json/GENERIC_from_json.py @@ -71938,7 +73849,7 @@ msgid_plural "saddles" msgstr[0] "седло" msgstr[1] "седла" msgstr[2] "сёдел" -msgstr[3] "седло" +msgstr[3] "седла" #. ~ Description for {'str': 'saddle'} #: lang/json/GENERIC_from_json.py @@ -71948,13 +73859,12 @@ msgstr "" "широко расставив ноги." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "solar panel" msgid_plural "solar panels" msgstr[0] "солнечная панель" -msgstr[1] "солнечных панели" +msgstr[1] "солнечные панели" msgstr[2] "солнечных панелей" -msgstr[3] "солнечная панель" +msgstr[3] "солнечные панели" #. ~ Description for {'str': 'solar panel'} #: lang/json/GENERIC_from_json.py @@ -71969,9 +73879,9 @@ msgstr "" msgid "reinforced solar panel" msgid_plural "reinforced solar panels" msgstr[0] "усиленная солнечная панель" -msgstr[1] "усиленных солнечных панели" +msgstr[1] "усиленные солнечные панели" msgstr[2] "усиленных солнечных панелей" -msgstr[3] "усиленная солнечная панель" +msgstr[3] "усиленные солнечные панели" #. ~ Description for {'str': 'reinforced solar panel'} #: lang/json/GENERIC_from_json.py @@ -71986,13 +73896,12 @@ msgstr "" "Используется в транспортных средствах." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "upgraded solar panel" msgid_plural "upgraded solar panels" msgstr[0] "мощная солнечная панель" -msgstr[1] "мощных солнечных панели" +msgstr[1] "мощные солнечные панели" msgstr[2] "мощных солнечных панелей" -msgstr[3] "мощная солнечная панель" +msgstr[3] "мощные солнечные панели" #. ~ Description for {'str': 'upgraded solar panel'} #: lang/json/GENERIC_from_json.py @@ -72009,9 +73918,9 @@ msgstr "" msgid "upgraded reinforced solar panel" msgid_plural "upgraded reinforced solar panels" msgstr[0] "мощная усиленная солнечная панель" -msgstr[1] "мощных усиленных солнечных панели" +msgstr[1] "мощные усиленные солнечные панели" msgstr[2] "мощных усиленных солнечных панелей" -msgstr[3] "мощная усиленная солнечная панель" +msgstr[3] "мощные усиленные солнечные панели" #. ~ Description for {'str': 'upgraded reinforced solar panel'} #: lang/json/GENERIC_from_json.py @@ -72031,7 +73940,7 @@ msgid_plural "solar cells" msgstr[0] "солнечный фотоэлемент" msgstr[1] "солнечных фотоэлемента" msgstr[2] "солнечных фотоэлементов" -msgstr[3] "солнечный фотоэлемент" +msgstr[3] "солнечные фотоэлементы" #. ~ Description for {'str': 'solar cell'} #: lang/json/GENERIC_from_json.py @@ -72048,7 +73957,7 @@ msgid_plural "fancy tables" msgstr[0] "модный стол" msgstr[1] "модных стола" msgstr[2] "модных столов" -msgstr[3] "модный стол" +msgstr[3] "модные столы" #. ~ Description for {'str': 'fancy table'} #: lang/json/GENERIC_from_json.py @@ -72056,8 +73965,8 @@ msgid "" "A very fancy table from a very fancy RV. If times were better it might be " "useful for something more than firewood." msgstr "" -"Очень милый столик из очень милого RV. В былые времена его можно было бы " -"использовать не только на дрова." +"Очень милый столик из очень милого автодома. В былые времена его можно было " +"бы использовать не только на дрова." #: lang/json/GENERIC_from_json.py msgid "wooden table" @@ -72065,7 +73974,7 @@ msgid_plural "wooden tables" msgstr[0] "деревянный стол" msgstr[1] "деревянных стола" msgstr[2] "деревянных столов" -msgstr[3] "деревянный стол" +msgstr[3] "деревянные столы" #. ~ Description for {'str': 'wooden table'} #: lang/json/GENERIC_from_json.py @@ -72097,7 +74006,7 @@ msgid_plural "turret mounts" msgstr[0] "крепление турели" msgstr[1] "крепления турели" msgstr[2] "креплений турели" -msgstr[3] "крепление турели" +msgstr[3] "крепления турели" #. ~ Description for {'str': 'turret mount'} #: lang/json/GENERIC_from_json.py @@ -72112,7 +74021,7 @@ msgid_plural "vehicle coolers" msgstr[0] "автомобильный кондиционер" msgstr[1] "автомобильных кондиционера" msgstr[2] "автомобильных кондиционеров" -msgstr[3] "автомобильный кондиционер" +msgstr[3] "автомобильные кондиционеры" #. ~ Description for {'str': 'vehicle cooler'} #: lang/json/GENERIC_from_json.py @@ -72185,11 +74094,11 @@ msgid "" "directly within its storage space. It can only be installed onto existing " "storage compartments." msgstr "" -"Небольшое устройство для зарядку батарей, если есть источник электричества. " -"Его легко подключить к сети питания автомобиля. При включении медленно " -"заряжает все перезаряжаемые батареи (батарейки, свинцово-кислотные " -"аккумуляторы и так далее), что лежат в её отсеке. Её можно установить только" -" в существующий грузовой отсек." +"Небольшое устройство для зарядки батарей, при наличии источника " +"электричества. Его легко подключить к сети питания автомобиля. При " +"включении медленно заряжает все перезаряжаемые батареи (батарейки, свинцово-" +"кислотные аккумуляторы и так далее), что лежат в её отсеке. Её можно " +"установить только в существующий грузовой отсек." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py #: lang/json/vehicle_part_from_json.py @@ -72198,7 +74107,7 @@ msgid_plural "washing machines" msgstr[0] "стиральная машина" msgstr[1] "стиральные машины" msgstr[2] "стиральных машин" -msgstr[3] "стиральная машина" +msgstr[3] "стиральные машины" #. ~ Description for {'str': 'washing machine'} #: lang/json/GENERIC_from_json.py @@ -72245,7 +74154,7 @@ msgid_plural "minifridges" msgstr[0] "мини-холодильник" msgstr[1] "мини-холодильника" msgstr[2] "мини-холодильников" -msgstr[3] "мини-холодильник" +msgstr[3] "мини-холодильники" #. ~ Description for {'str': 'minifridge'} #: lang/json/GENERIC_from_json.py @@ -72262,7 +74171,7 @@ msgid_plural "minifreezers" msgstr[0] "мини-морозильник" msgstr[1] "мини-морозильника" msgstr[2] "мини-морозильников" -msgstr[3] "мини-морозильник" +msgstr[3] "мини-морозильники" #. ~ Description for {'str': 'minifreezer'} #: lang/json/GENERIC_from_json.py @@ -72312,7 +74221,7 @@ msgid_plural "water faucets" msgstr[0] "водопроводный кран" msgstr[1] "водопроводных крана" msgstr[2] "водопроводных кранов" -msgstr[3] "водопроводный кран" +msgstr[3] "водопроводные краны" #. ~ Description for {'str': 'water faucet'} #: lang/json/GENERIC_from_json.py @@ -72373,10 +74282,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Dana's family sourdough starter" msgid_plural "Dana's family sourdough starter" -msgstr[0] "семейная хлебная закваски Даны" -msgstr[1] "семейные хлебные закваски Даны" -msgstr[2] "семейных хлебных заквасок Даны" -msgstr[3] "семейные хлебные закваски Даны" +msgstr[0] "семейная хлебная закваска Даны" +msgstr[1] "семейная хлебная закваска Даны" +msgstr[2] "семейная хлебная закваска Даны" +msgstr[3] "семейная хлебная закваска Даны" #. ~ Description for {'str_sp': "Dana's family sourdough starter"} #: lang/json/GENERIC_from_json.py @@ -72412,10 +74321,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "coal pallet" msgid_plural "coal pallets" -msgstr[0] "угольный поддон" -msgstr[1] "угольных поддона" -msgstr[2] "угольных поддонов" -msgstr[3] "угольный поддон" +msgstr[0] "угольный брикет" +msgstr[1] "угольных брикета" +msgstr[2] "угольных брикетов" +msgstr[3] "угольные брикеты" #. ~ Description for coal pallet #: lang/json/GENERIC_from_json.py @@ -72428,7 +74337,7 @@ msgid_plural "charged capacitors" msgstr[0] "заряженный конденсатор" msgstr[1] "заряженных конденсатора" msgstr[2] "заряженных конденсаторов" -msgstr[3] "заряженный конденсатор" +msgstr[3] "заряженные конденсаторы" #. ~ Description for charged capacitor #: lang/json/GENERIC_from_json.py @@ -72445,7 +74354,7 @@ msgid_plural "lead battery plates" msgstr[0] "свинцовый электрод" msgstr[1] "свинцовых электрода" msgstr[2] "свинцовых электродов" -msgstr[3] "свинцовый электрод" +msgstr[3] "свинцовые электроды" #. ~ Description for lead battery plate #: lang/json/GENERIC_from_json.py @@ -72458,7 +74367,7 @@ msgid_plural "forged swords" msgstr[0] "кованый меч" msgstr[1] "кованых меча" msgstr[2] "кованых мечей" -msgstr[3] "кованый меч" +msgstr[3] "кованые мечи" #. ~ Description for forged sword #: lang/json/GENERIC_from_json.py @@ -72475,7 +74384,7 @@ msgid_plural "skewers" msgstr[0] "шампур" msgstr[1] "шампура" msgstr[2] "шампуров" -msgstr[3] "шампур" +msgstr[3] "шампуры" #. ~ Description for skewer #: lang/json/GENERIC_from_json.py @@ -72488,7 +74397,7 @@ msgid_plural "vehicle curtains" msgstr[0] "автомобильная занавеска" msgstr[1] "автомобильные занавески" msgstr[2] "автомобильных занавесок" -msgstr[3] "автомобильная занавеска" +msgstr[3] "автомобильные занавески" #. ~ Description for {'str': 'vehicle curtain'} #: lang/json/GENERIC_from_json.py @@ -72540,10 +74449,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "sensory cluster" msgid_plural "sensory clusters" -msgstr[0] "сенсорная гроздь" -msgstr[1] "сенсорные грозди" -msgstr[2] "сенсорных гроздей" -msgstr[3] "сенсорные грозди" +msgstr[0] "сенсорный кластер" +msgstr[1] "сенсорных кластера" +msgstr[2] "сенсорных кластеров" +msgstr[3] "сенсорные кластеры" #. ~ Description for {'str': 'sensory cluster'} #: lang/json/GENERIC_from_json.py @@ -72554,12 +74463,11 @@ msgid "" "seems to have gone into a form of hibernation with the pulses occurring " "slower and slower as it conserves energy." msgstr "" -"Этот кусок плоти имеет различные выступающие дендриты, которые через " -"определенные промежутки времени излучают тональные сигналы. Возможно, это " -"как-то связанно с эхолокацией. Как и у всех органов ми-го, отверстия на этом" -" куске закрылись после того как он был извлечён и, похоже, он впал в анабиоз" -" для сохранения энергии, так как импульсы, возникают всё медленнее и " -"медленнее." +"Кусок плоти с выступающими дендритами разной формы, через определенные " +"промежутки времени излучающими тональные сигналы. Возможно, это как-то " +"связанно с эхолокацией. Как и у всех органов ми-го, отверстия на этом куске " +"закрылись после того как он был извлечён и, похоже, он впал в анабиоз для " +"сохранения энергии, так как импульсы испускаются всё реже и реже." #: lang/json/GENERIC_from_json.py msgid "bioweapon chassis" @@ -72576,17 +74484,17 @@ msgid "" " look like is the core body of the bioweapon. You cannot imagine what you " "could make out of this but maybe someone somewhere does." msgstr "" -"Эта помесь морской актинии и нечто, вроде драконьей пасти, является телом " -"биологического оружия. Вы не можете себе представить, что вы могли бы с этим" -" сделать, но, может быть, кто-то другой знает." +"Каркас биологического оружия, похожий на сочетание морской актинии и того, " +"как вы представили бы себе драконью челюсть. Вы не можете себе представить, " +"что вы могли бы с этим сделать, но, может быть, кто-то другой знает." #: lang/json/GENERIC_from_json.py msgid "broken mi-go turret" msgid_plural "broken mi-go turrets" -msgstr[0] "сломанная ми-го турель" -msgstr[1] "сломанные ми-го турели" -msgstr[2] "сломанных ми-го турелей" -msgstr[3] "сломанные ми-го турели" +msgstr[0] "сломанная турель ми-го" +msgstr[1] "сломанные турели ми-го" +msgstr[2] "сломанных турелей ми-го" +msgstr[3] "сломанные турели ми-го" #. ~ Description for {'str': 'broken mi-go turret'} #: lang/json/GENERIC_from_json.py @@ -72646,6 +74554,24 @@ msgstr "" "неотслеживаемые интернет-валюты. Это материальные монеты с выбитыми на них " "последовательностями случайных чисел и RFID меткой внутри." +#: lang/json/GENERIC_from_json.py +msgctxt "container" +msgid "basin" +msgid_plural "basins" +msgstr[0] "водоём" +msgstr[1] "водоёма" +msgstr[2] "водоёмов" +msgstr[3] "водоёмы" + +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." +msgstr "" +"Широкая и неглубокая ёмкость для хранения воды, изготовленная из " +"металлического листа. Идеально подходит для сбора воды." + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" msgid_plural "vehicle refrigerators" @@ -72780,10 +74706,10 @@ msgstr "Маленькая дробинка блестящего металла, #: lang/json/GENERIC_from_json.py msgid "nuclear fuel pellet" msgid_plural "nuclear fuel pellets" -msgstr[0] "Дробинка ядерного топлива" -msgstr[1] "Дробинок ядерного топлива" -msgstr[2] "Дробинок ядерного топлива" -msgstr[3] "Дробинки ядерного топлива" +msgstr[0] "дробинка ядерного топлива" +msgstr[1] "дробинок ядерного топлива" +msgstr[2] "дробинок ядерного топлива" +msgstr[3] "дробинки ядерного топлива" #. ~ Description for {'str': 'nuclear fuel pellet'} #: lang/json/GENERIC_from_json.py @@ -72791,6 +74717,19 @@ msgid "A small pellet of fissile material. Handle carefully." msgstr "" "Маленькая дробинка расщепляемого материала. Использовать с осторожностью." +#: lang/json/GENERIC_from_json.py +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" +msgstr[0] "бочка токсичных отходов" +msgstr[1] "бочки токсичных отходов" +msgstr[2] "бочкек токсичных отходов" +msgstr[3] "бочки токсичных отходов" + +#. ~ Description for {'str': 'hazardous waste drum'} +#: lang/json/GENERIC_from_json.py +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "Жёлтая бочка для хранения опасных токсичных веществ." + #: lang/json/GENERIC_from_json.py msgid "folded atomic butter churn" msgid_plural "folded atomic butter churns" @@ -72847,6 +74786,23 @@ msgstr "" "Зубной протез из чистого титана для замены утраченных зубов, ценится за " "отсутствие реакции отторжения и прочность." +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" +msgstr[0] "грузовой отсек" +msgstr[1] "грузовых отсека" +msgstr[2] "грузовых отсеков" +msgstr[3] "грузовые отсеки" + +#. ~ Description for {'str': 'hauling space'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to" +" create a very large amount of space for transporting goods." +msgstr "" +"Огромный металлический ящик, соединённый с расширением крыши транспорта. " +"Предназначен для перевозки очень большого количества вещей." + #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" msgid_plural "hydraulic gauntlets" @@ -73073,7 +75029,7 @@ msgstr[3] "надпричинные логические перестановщ #. ~ Description for {'str': 'acausal logic permutator'} #: lang/json/GENERIC_from_json.py msgid "It has given you an answer, but you are yet to ask anything." -msgstr "Дает ответ, хотя вопрос вы только собираетесь задать." +msgstr "Дает ответ на вопрос, который вы только собираетесь задать." #: lang/json/GENERIC_from_json.py msgid "nanowire battery" @@ -73363,23 +75319,6 @@ msgstr "" "Мембрана искусственных нейронов, обволакивающая кору мозга, сливая воедино " "машину и мозг в нечто гораздо большее, чем сумма частей." -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" -msgstr[0] "грузовой отсек" -msgstr[1] "грузовых отсека" -msgstr[2] "грузовых отсеков" -msgstr[3] "грузовые отсеки" - -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to" -" create a very large amount of space for transporting goods." -msgstr "" -"Огромный металлический ящик, соединённый с расширением крыши транспорта. " -"Предназначен для перевозки очень большого количества вещей." - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "ultralight frame" msgid_plural "ultralight frames" @@ -73410,6 +75349,116 @@ msgstr "" "Большая и сложная станция управления из военной машины, включая пульт с " "камерами, рулевое управление и переключатели электроники." +#: lang/json/GENERIC_from_json.py +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" +msgstr[0] "транспортный стеллаж" +msgstr[1] "транспортных стеллажа" +msgstr[2] "транспортных стеллажей" +msgstr[3] "транспортные стеллажи" + +#. ~ Description for {'str': 'vehicle shelving'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." +msgstr "" +"Нескольо тяжёлых рам, скрепленных вместе и оснащённых в избытке крепежами и " +"точками крепления для перевозки большого количества груза." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" +msgstr[0] "массив солнечных панелей" +msgstr[1] "массив солнечных панелей" +msgstr[2] "массив солнечных панелей" +msgstr[3] "массивы солнечных панелей" + +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires" +" a jumper cable or similar to pull power from." +msgstr "" +"Вертикальный массив из трех солнечных батарей на опорной раме с примитивным " +"отслеживанием положения солнца и моторчиком. Из-за хрупкости гидравлики и " +"формы, рассчитанной на получение максимального количества солнечного света, " +"ее нельзя установить на транспорт. Для использования потребуется зарядный " +"кабель или нечто подобное." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" +msgstr[0] "массив укрепленных солнечных панелей" +msgstr[1] "массивов укрепленных солнечных панелей" +msgstr[2] "массива укрепленных солнечных панелей" +msgstr[3] "массивы укрепленных солнечных панелей" + +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" +"Вертикальный массив из трех укрепленных солнечных батарей на опорной раме с " +"примитивным отслеживанием положения солнца и моторчиком. Из-за хрупкости " +"гидравлики и формы, рассчитанной на получение максимального количества " +"солнечного света, ее нельзя установить на транспорт. Для использования " +"потребуется зарядный кабель или нечто подобное." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" +msgstr[0] "массив мощных солнечных панелей" +msgstr[1] "массив мощных солнечных панелей" +msgstr[2] "массив мощных солнечных панелей" +msgstr[3] "массивы мощных солнечных панелей" + +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" +"Вертикальный массив из трех мощных солнечных батарей на опорной раме с " +"примитивным отслеживанием положения солнца и моторчиком. Из-за хрупкости " +"гидравлики и формы, рассчитанной на получение максимального количества " +"солнечного света, ее нельзя установить на транспорт. Для использования " +"потребуется зарядный кабель или нечто подобное." + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" +msgstr[0] "массив мощных усиленных солнечных панелей" +msgstr[1] "массив мощных усиленных солнечных панелей" +msgstr[2] "массив мощных усиленных солнечных панелей" +msgstr[3] "массивы мощных усиленных солнечных панелей" + +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." +msgstr "" +"Вертикальный массив из трех укрепленных мощных солнечных батарей на опорной " +"раме с примитивным отслеживанием положения солнца и моторчиком. Из-за " +"хрупкости гидравлики и формы, рассчитанной на получение максимального " +"количества солнечного света, ее нельзя установить на транспорт. Для " +"использования потребуется зарядный кабель или нечто подобное." + #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" msgid_plural "withered plant bundles" @@ -73431,27 +75480,57 @@ msgstr[1] "топорика К.Р.И.Т" msgstr[2] "топориков К.Р.И.Т" msgstr[3] "топорики К.Р.И.Т" +#. ~ Use action msg for CRIT hatchet. +#: lang/json/GENERIC_from_json.py +msgid "You extend your hatchet" +msgstr "Вы раздвигаете свой топорик" + #. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer." +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." msgstr "" "Отличный невероятно острый одноручный топорик. Прекрасное холодное оружие, " -"им можно что-нибудь разрубить, а также годится как замена молотку." +"им можно что-нибудь разрубить, а также годится как замена молотку, если " +"раздинуть." #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Blade-work manual" -msgid_plural "C.R.I.T Blade-work manuals" -msgstr[0] "Руководство К.Р.И.Т по ножевому бою" -msgstr[1] "Руководство К.Р.И.Т по ножевому бою" -msgstr[2] "Руководство К.Р.И.Т по ножевому бою" -msgstr[3] "Руководство К.Р.И.Т по ножевому бою" +msgid "CRIT axe" +msgid_plural "CRIT axes" +msgstr[0] "топор К.Р.И.Т." +msgstr[1] "топора К.Р.И.Т." +msgstr[2] "топоров К.Р.И.Т." +msgstr[3] "топоры К.Р.И.Т." -#. ~ Description for {'str': 'C.R.I.T Blade-work manual'} +#. ~ Use action msg for CRIT axe. #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Blade-work." -msgstr "Продвинутое военное руководство К.Р.И.Т по ножевому бою." +msgid "You collapse your axe" +msgstr "Вы сложили свой топор." + +#. ~ Description for CRIT axe +#: lang/json/GENERIC_from_json.py +msgid "" +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer" +" when extended." +msgstr "" +"Отличный невероятно острый топор. Прекрасное холодное оружие, им можно что-" +"нибудь разрубить, а также годится как замена молотку, если раздинуть." + +#: lang/json/GENERIC_from_json.py +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" +msgstr[0] "Руководство К.Р.И.Т. по ножевому бою" +msgstr[1] "Руководства К.Р.И.Т. по ножевому бою" +msgstr[2] "Руководств К.Р.И.Т. по ножевому бою" +msgstr[3] "Руководства К.Р.И.Т. по ножевому бою" + +#. ~ Description for CRIT Blade-work manual +#: lang/json/GENERIC_from_json.py +msgid "An advanced military manual on CRIT Blade-work." +msgstr "Продвинутое военное руководство К.Р.И.Т. по ножевому бою." #: lang/json/GENERIC_from_json.py msgid "C.R.I.T Enforcement manual" @@ -73468,18 +75547,18 @@ msgstr "" "Продвинутое военное руководство К.Р.И.Т по обезвреживающему ближнему бою." #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T CQB manual" -msgid_plural "C.R.I.T CQB manuals" -msgstr[0] "Руководство К.Р.И.Т по рукопашному бою" -msgstr[1] "Руководство К.Р.И.Т по рукопашному бою" -msgstr[2] "Руководство К.Р.И.Т по рукопашному бою" -msgstr[3] "Руководство К.Р.И.Т по рукопашному бою" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" +msgstr[0] "Руководство К.Р.И.Т. по рукопашному бою" +msgstr[1] "Руководства К.Р.И.Т. по рукопашному бою" +msgstr[2] "Руководств К.Р.И.Т. по рукопашному бою" +msgstr[3] "Руководства К.Р.И.Т. по рукопашному бою" -#. ~ Description for {'str': 'C.R.I.T CQB manual'} +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T general CQB." +msgid "An advanced military manual on CRIT general CQB." msgstr "" -"Продвинутое военное руководство К.Р.И.Т по общим принципам рукопашного боя." +"Продвинутое военное руководство К.Р.И.Т. по общим принципам рукопашного боя." #: lang/json/GENERIC_from_json.py msgid "broken emissary" @@ -73533,7 +75612,7 @@ msgid "" "intimidating, perhaps knowing the damage it can cause. Could be gutted for " "parts." msgstr "" -"Массивный корпус сломанного огненного эмиссара. Все еще выглядит пугающе, " +"Массивный корпус сломанного пламенного эмиссара. Все еще выглядит пугающе, " "возможно из-за мыслей об уроне, что он мог нанести. Можно разобрать на " "запчасти." @@ -73622,19 +75701,6 @@ msgstr "" "прочего. Из-за стекла производит немного меньше, чем обычная мощная панель. " "Используется в транспортных средствах." -#: lang/json/GENERIC_from_json.py -msgid "6.54x42mm casing" -msgid_plural "6.54x42mm casings" -msgstr[0] "гильза 6,54x42 мм" -msgstr[1] "гильзы 6,54x42 мм" -msgstr[2] "гильз 6,54x42 мм" -msgstr[3] "гильза 6,54x42 мм" - -#. ~ Description for 6.54x42mm casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 6.54x42 round." -msgstr "Пустая гильза от патрона 6,54x42 мм." - #: lang/json/GENERIC_from_json.py msgid "tiny pistol casing" msgid_plural "tiny pistol casings" @@ -73678,9 +75744,9 @@ msgstr "Пустая гильза от патрона Магнум." msgid "rifle casing" msgid_plural "rifle casings" msgstr[0] "ружейная гильза" -msgstr[1] "ружейных гильзы" +msgstr[1] "ружейные гильзы" msgstr[2] "ружейных гильз" -msgstr[3] "ружейная гильза" +msgstr[3] "ружейные гильзы" #. ~ Description for {'str': 'rifle casing'} #: lang/json/GENERIC_from_json.py @@ -73785,604 +75851,55 @@ msgstr[2] "сломанных TALON с винтовкой" msgstr[3] "сломанные TALON с винтовкой" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing)" -msgid_plural "garden pots (growing)" -msgstr[0] "садовый горшок (растёт)" -msgstr[1] "садовых горшка (растут)" -msgstr[2] "садовых горшков (растут)" -msgstr[3] "садовые горшки (растут)" - -#. ~ Description for {'str': 'garden pot (growing)', 'str_pl': 'garden pots -#. (growing)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot growing some tasty, unnameable plants. You shouldn't see this " -"item." -msgstr "" -"Садовый горшок с растущим вкусным безымянным растением. Вам не положено " -"видеть этот предмет." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (grown)" -msgid_plural "garden pots (grown)" -msgstr[0] "садовый горшок (урожай)" -msgstr[1] "садовых горшка (урожай)" -msgstr[2] "садовых горшков (урожай)" -msgstr[3] "садовые горшки (урожай)" - -#. ~ Description for {'str': 'garden pot (grown)', 'str_pl': 'garden pots -#. (grown)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot with some ripe, unnameable plants. You shouldn't see this " -"item." -msgstr "" -"Садовый горшок с созревшим безымянным растением. Вам не положено видеть этот" -" предмет." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing tomato)" -msgid_plural "garden pots (growing tomatoes)" -msgstr[0] "садовый горшок (растущие томаты)" -msgstr[1] "садовых горшка (растущие томаты)" -msgstr[2] "садовых горшков (растущие томаты)" -msgstr[3] "садовые горшки (растущие томаты)" - -#. ~ Use action msg for {'str': 'garden pot (growing tomato)', 'str_pl': -#. 'garden pots (growing tomatoes)'}. -#: lang/json/GENERIC_from_json.py -msgid "The tomatoes are ready to harvest!" -msgstr "Помидоры готовы к сбору!" - -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing tomato)', -#. 'str_pl': 'garden pots (growing tomatoes)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing wheat)', -#. 'str_pl': 'garden pots (growing wheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing hops)', -#. 'str_pl': 'garden pots (growing hops)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing buckwheat)', -#. 'str_pl': 'garden pots (growing buckwheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing broccoli)', -#. 'str_pl': 'garden pots (growing broccoli)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing oats)', -#. 'str_pl': 'garden pots (growing oats)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing barley)', -#. 'str_pl': 'garden pots (growing barley)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing carrot)', -#. 'str_pl': 'garden pots (growing carrots)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cotton)', -#. 'str_pl': 'garden pots (growing cotton)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cabbage)', -#. 'str_pl': 'garden pots (growing cabbage)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cucumber)', -#. 'str_pl': 'garden pots (growing cucumber)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing garlic)', -#. 'str_pl': 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "It isn't done growing yet." -msgstr "Ещё не выросло." - -#. ~ Description for {'str': 'garden pot (growing tomato)', 'str_pl': 'garden -#. pots (growing tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing tomatoes. Once ripe, it can be activated to " -"prepare them for harvest." -msgstr "" -"Это садовый горшок с растущими томатами. Когда они созреют, вам нужно " -"активировать горшок, чтобы подготовить урожай к сборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe tomato)" -msgid_plural "garden pots (ripe tomatoes)" -msgstr[0] "садовый горшок (спелые томаты)" -msgstr[1] "садовых горшка (спелые томаты)" -msgstr[2] "садовых горшков (спелые томаты)" -msgstr[3] "садовые горшки (спелые томаты)" - -#. ~ Description for {'str': 'garden pot (ripe tomato)', 'str_pl': 'garden -#. pots (ripe tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with a ripe tomato plant. Disassemble to retrieve the " -"tasty 'matos." -msgstr "" -"Это садовый горшок с созревшими томатами. Разберите, чтобы получить вкусные " -"томаты." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing wheat)" -msgid_plural "garden pots (growing wheat)" -msgstr[0] "садовый горшок (растущая пшеница)" -msgstr[1] "садовых горшка (растущая пшеница)" -msgstr[2] "садовых горшков (растущая пшеница)" -msgstr[3] "садовые горшки (растущая пшеница)" - -#. ~ Use action msg for {'str': 'garden pot (growing wheat)', 'str_pl': -#. 'garden pots (growing wheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The wheat is ready to harvest!" -msgstr "Пшеница готова к сбору!" - -#. ~ Description for {'str': 'garden pot (growing wheat)', 'str_pl': 'garden -#. pots (growing wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing wheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущей пшеницей. Когда она созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe wheat)" -msgid_plural "garden pots (ripe wheat)" -msgstr[0] "садовый горшок (спелая пшеница)" -msgstr[1] "садовых горшка (спелая пшеница)" -msgstr[2] "садовых горшков (спелая пшеница)" -msgstr[3] "садовые горшки (спелая пшеница)" - -#. ~ Description for {'str': 'garden pot (ripe wheat)', 'str_pl': 'garden pots -#. (ripe wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with wheat ready to harvest. Disassemble to retrieve " -"it." -msgstr "" -"Это садовый горшок с созревшей пшеницей. Разберите, чтобы получить урожай." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing hops)" -msgid_plural "garden pots (growing hops)" -msgstr[0] "садовый горшок (растущий хмель)" -msgstr[1] "садовых горшка (растущий хмель)" -msgstr[2] "садовых горшков (растущий хмель)" -msgstr[3] "садовые горшки (растущий хмель)" - -#. ~ Use action msg for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'}. -#: lang/json/GENERIC_from_json.py -msgid "The hops are ready to harvest!" -msgstr "Хмель готов к сбору!" - -#. ~ Description for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing hops. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущим хмелем. Когда он созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe hops)" -msgid_plural "garden pots (ripe hops)" -msgstr[0] "садовый горшок (созревший хмель)" -msgstr[1] "садовые горшки (созревший хмель)" -msgstr[2] "садовых горшков (созревший хмель)" -msgstr[3] "садовые горшки (созревший хмель)" - -#. ~ Description for {'str': 'garden pot (ripe hops)', 'str_pl': 'garden pots -#. (ripe hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing blooming hops flowers. Disassemble to " -"harvest them." -msgstr "" -"Это садовый горшок с цветущим хмелем. Разберите, чтобы получить урожай." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing buckwheat)" -msgid_plural "garden pots (growing buckwheat)" -msgstr[0] "садовый горшок (растущая гречиха)" -msgstr[1] "садовых горшка (растущая гречиха)" -msgstr[2] "садовые горшки (растущая гречиха)" -msgstr[3] "садовых горшков (растущая гречиха)" - -#. ~ Use action msg for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The buckwheat is ready to harvest!" -msgstr "Гречиха готова к сбору!" - -#. ~ Description for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing buckwheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущей гречихой. Когда она созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe buckwheat)" -msgid_plural "garden pots (ripe buckwheat)" -msgstr[0] "садовый горшок (созревшая гречиха)" -msgstr[1] "садовых горшка (созревшая гречиха)" -msgstr[2] "садовых горшков (созревшая гречиха)" -msgstr[3] "садовые горшки (созревшая гречиха)" - -#. ~ Description for {'str': 'garden pot (ripe buckwheat)', 'str_pl': 'garden -#. pots (ripe buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe buckwheat stalks. Disassemble to " -"harvest them." -msgstr "" -"Это садовый горшок с созревшей гречихой. Разберите, чтобы получить урожай." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing broccoli)" -msgid_plural "garden pots (growing broccoli)" -msgstr[0] "садовый горшок (растущая брокколи)" -msgstr[1] "садовых горшка (растущая брокколи)" -msgstr[2] "садовых горшков (растущая брокколи)" -msgstr[3] "садовые горшки (растущая брокколи)" - -#. ~ Use action msg for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'}. -#: lang/json/GENERIC_from_json.py -msgid "The broccoli is ready to harvest!" -msgstr "Брокколи готова к уборке!" - -#. ~ Description for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing broccoli. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущей брокколи. Когда она созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe broccoli)" -msgid_plural "garden pots (ripe broccoli)" -msgstr[0] "садовый горшок (спелая брокколи)" -msgstr[1] "садовых горшка (спелая брокколи)" -msgstr[2] "садовых горшков (спелая брокколи)" -msgstr[3] "садовые горшки (спелая брокколи)" - -#. ~ Description for {'str': 'garden pot (ripe broccoli)', 'str_pl': 'garden -#. pots (ripe broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some fully-grown broccoli. Disassemble to " -"harvest it." -msgstr "" -"Это садовый горшок с созревшей брокколи. Разберите, чтобы получить урожай." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing oats)" -msgid_plural "garden pots (growing oats)" -msgstr[0] "садовый горшок (растущий овёс)" -msgstr[1] "садовых горшка (растущий овёс)" -msgstr[2] "садовых горшков (растущий овёс)" -msgstr[3] "садовые горшки (растущий овёс)" - -#. ~ Use action msg for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'}. -#: lang/json/GENERIC_from_json.py -msgid "The oats are ready to harvest!" -msgstr "Овёс готов к сбору!" - -#. ~ Description for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing oats. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущим овсом. Когда он созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe oats)" -msgid_plural "garden pots (ripe oats)" -msgstr[0] "садовый горшок (созревший овёс)" -msgstr[1] "садовых горшка (созревший овёс)" -msgstr[2] "садовых горшков (созревший овёс)" -msgstr[3] "садовые горшки (созревший овёс)" - -#. ~ Description for {'str': 'garden pot (ripe oats)', 'str_pl': 'garden pots -#. (ripe oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some golden, fully-grown oats. Disassemble " -"to harvest them." -msgstr "" -"Это садовый горшок со спелым, золотистым овсом. Разберите, чтобы получить " -"урожай." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing barley)" -msgid_plural "garden pots (growing barley)" -msgstr[0] "садовый горшок (растущий ячмень)" -msgstr[1] "садовых горшка (растущий ячмень)" -msgstr[2] "садовых горшков (растущий ячмень)" -msgstr[3] "садовые горшки (растущий ячмень)" - -#. ~ Use action msg for {'str': 'garden pot (growing barley)', 'str_pl': -#. 'garden pots (growing barley)'}. -#: lang/json/GENERIC_from_json.py -msgid "Barley is ready to harvest!" -msgstr "Ячмень готов к уборке!" - -#. ~ Description for {'str': 'garden pot (growing barley)', 'str_pl': 'garden -#. pots (growing barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing barley. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущим ячменем. Когда он созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe barley)" -msgid_plural "garden pots (ripe barley)" -msgstr[0] "садовый горшок (созревший ячмень)" -msgstr[1] "садовых горшка (созревший ячмень)" -msgstr[2] "садовых горшков (созревший ячмень)" -msgstr[3] "садовые горшки (созревший ячмень)" - -#. ~ Description for {'str': 'garden pot (ripe barley)', 'str_pl': 'garden -#. pots (ripe barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ready-to-harvest barley. Disassemble " -"to harvest it." -msgstr "" -"Это садовый горшок с готовым ко сбору ячменем. Разберите, чтобы получить " -"урожай." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing carrot)" -msgid_plural "garden pots (growing carrots)" -msgstr[0] "садовый горшок (растущая морковь)" -msgstr[1] "садовых горшка (растущая морковь)" -msgstr[2] "садовых горшков (растущая морковь)" -msgstr[3] "садовые горшки (растущая морковь)" - -#. ~ Use action msg for {'str': 'garden pot (growing carrot)', 'str_pl': -#. 'garden pots (growing carrots)'}. -#: lang/json/GENERIC_from_json.py -msgid "The carrots are ready to harvest!" -msgstr "Морковь готова ко сбору!" - -#. ~ Description for {'str': 'garden pot (growing carrot)', 'str_pl': 'garden -#. pots (growing carrots)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing carrots. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущей морковью. Когда она созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe carrot)" -msgid_plural "garden pots (ripe carrot)" -msgstr[0] "садовый горшок (созревшая морковь)" -msgstr[1] "садовых горшка (созревшая морковь)" -msgstr[2] "садовых горшков (созревшая морковь)" -msgstr[3] "садовые горшки (созревшая морковь)" - -#. ~ Description for {'str': 'garden pot (ripe carrot)', 'str_pl': 'garden -#. pots (ripe carrot)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ripe carrots. Disassemble to harvest " -"them. Store away from rabbits." -msgstr "" -"Это садовый горшок с созревшей морковью. Разберите, чтобы получить урожай. " -"Держать подальше от кроликов." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cotton)" -msgid_plural "garden pots (growing cotton)" -msgstr[0] "садовый горшок (растущий хлопок)" -msgstr[1] "садовых горшка (растущий хлопок)" -msgstr[2] "садовых горшков (растущий хлопок)" -msgstr[3] "садовые горшки (растущий хлопок)" - -#. ~ Use action msg for {'str': 'garden pot (growing cotton)', 'str_pl': -#. 'garden pots (growing cotton)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cotton is ready to harvest!" -msgstr "Хлопок готов к уборке!" - -#. ~ Description for {'str': 'garden pot (growing cotton)', 'str_pl': 'garden -#. pots (growing cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cotton. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущим хлопком. Когда он созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cotton)" -msgid_plural "garden pots (ripe cotton)" -msgstr[0] "садовый горшок (созревший хлопок)" -msgstr[1] "садовых горшка (созревший хлопок)" -msgstr[2] "садовых горшков (созревший хлопок)" -msgstr[3] "садовые горшки (созревший хлопок)" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" +msgstr[0] "«Обжигающий Сирокко»" +msgstr[1] "книги «Обжигающий Сирокко»" +msgstr[2] "книг «Обжигающий Сирокко»" +msgstr[3] "книги «Обжигающий Сирокко»" -#. ~ Description for {'str': 'garden pot (ripe cotton)', 'str_pl': 'garden -#. pots (ripe cotton)'} +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing white, fluffy cotton bolls ready for the " -"loom. Disassemble to pluck them." -msgstr "" -"Это садовый горшок с белыми пушистыми коробочками хлопка, готовыми для " -"пряжи. Разберите, чтобы сорвать их." +msgid "This book contains the teaching of the Desert Wind discipline." +msgstr "Книга, содержащая учение дисциплины Пустынного Ветра." #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cabbage)" -msgid_plural "garden pots (growing cabbage)" -msgstr[0] "садовый горшок (растущая капуста)" -msgstr[1] "садовых горшка (растущая капуста)" -msgstr[2] "садовых горшков (растущая капуста)" -msgstr[3] "садовые горшки (растущая капуста)" +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" +msgstr[0] "«Совершенная ясность разума и тела»" +msgstr[1] "книги «Совершенная ясность разума и тела»" +msgstr[2] "книг «Совершенная ясность разума и тела»" +msgstr[3] "книги «Совершенная ясность разума и тела»" -#. ~ Use action msg for {'str': 'garden pot (growing cabbage)', 'str_pl': -#. 'garden pots (growing cabbage)'}. +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "The cabbages are ready to harvest!" -msgstr "Капуста готова к сбору!" +msgid "This book contains the teaching of the Diamond Mind discipline." +msgstr "Книга, содержащая учение дисциплины Алмазного Разума" -#. ~ Description for {'str': 'garden pot (growing cabbage)', 'str_pl': 'garden -#. pots (growing cabbage)'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cabbage. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущей капустой. Когда она созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" +msgstr[0] "Книга Мудоры" +msgstr[1] "Книги Мудоры" +msgstr[2] "Книг Мудоры" +msgstr[3] "Книги Мудоры" -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cabbage)" -msgid_plural "garden pots (ripe cabbage)" -msgstr[0] "садовый горшок (созревшая капуста)" -msgstr[1] "садовых горшка (созревшая капуста)" -msgstr[2] "садовых горшков (созревшая капуста)" -msgstr[3] "садовые горшки (созревшая капуста)" - -#. ~ Description for {'str': 'garden pot (ripe cabbage)', 'str_pl': 'garden -#. pots (ripe cabbage)'} +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot containing a big cabbage leaf. Disassemble to harvest " -"it." +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." msgstr "" -"Это садовый горшок с большим капустным кочаном. Разберите, чтобы получить " -"урожай." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cucumber)" -msgid_plural "garden pots (growing cucumber)" -msgstr[0] "садовый горшок (растущие огурцы)" -msgstr[1] "садовых горшка (растущие огурцы)" -msgstr[2] "садовых горшков (растущие огурцы)" -msgstr[3] "садовые горшки (растущие огурцы)" - -#. ~ Use action msg for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cucumbers are ready to harvest!" -msgstr "Огурцы готовы к сбору!" - -#. ~ Description for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cucumber. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "" -"Это садовый горшок с растущими огурцами. Когда они созреют, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cucumber)" -msgid_plural "garden pots (ripe cucumber)" -msgstr[0] "садовый горшок (созревшие огурцы)" -msgstr[1] "садовых горшка (созревшие огурцы)" -msgstr[2] "садовых горшков (созревшие огурцы)" -msgstr[3] "садовые горшки (созревшие огурцы)" - -#. ~ Description for {'str': 'garden pot (ripe cucumber)', 'str_pl': 'garden -#. pots (ripe cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe cucumbers. Disassemble to harvest " -"them." -msgstr "" -"Это садовый горшок с созревшими огурцами. Разберите, чтобы получить урожай." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing garlic)" -msgid_plural "garden pots (growing garlic)" -msgstr[0] "садовый горшок (растущий чеснок)" -msgstr[1] "садовых горшка (растущий чеснок)" -msgstr[2] "садовых горшков (растущий чеснок)" -msgstr[3] "садовые горшки (растущий чеснок)" - -#. ~ Use action msg for {'str': 'garden pot (growing garlic)', 'str_pl': -#. 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "The garlic is ready to harvest!" -msgstr "Чеснок готов к уборке!" - -#. ~ Description for {'str': 'garden pot (growing garlic)', 'str_pl': 'garden -#. pots (growing garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing garlic bulbs. Once ripe, it can be activated " -"to prepare it for harvest." -msgstr "" -"Это садовый горшок с растущим чесноком. Когда он созреет, вам нужно " -"активировать горшок, чтобы подготовить урожай к уборке." - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe garlic)" -msgid_plural "garden pots (ripe garlic)" -msgstr[0] "садовый горшок (созревший чеснок)" -msgstr[1] "садовых горшка (созревший чеснок)" -msgstr[2] "садовых горшков (созревший чеснок)" -msgstr[3] "садовые горшки (созревший чеснок)" - -#. ~ Description for {'str': 'garden pot (ripe garlic)', 'str_pl': 'garden -#. pots (ripe garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing pungent garlic bulbs. Disassemble to " -"harvest them, or wave it at vampires to scare them." -msgstr "" -"Это садовый горшок с остро пахнущим чесноком. Разберите, чтобы получить " -"урожай, или отмахивайтесь им от вампиров." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "roadheader" -msgid_plural "roadheaders" -msgstr[0] "горнопроходчик" -msgstr[1] "горнопроходчика" -msgstr[2] "горнопроходчиков" -msgstr[3] "горнопроходчики" - -#. ~ Description for roadheader -#: lang/json/GENERIC_from_json.py -msgid "" -"A large and heavy jagged metalhead with a lot of spikes for destroying mine " -"walls." -msgstr "" -"Большой зазубренный бур с множеством лезвий для разрушения стен шахты." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "Balancer" -msgid_plural "Balancers" -msgstr[0] "Балансир" -msgstr[1] "Балансира" -msgstr[2] "Балансиров" -msgstr[3] "Балансиры" - -#. ~ Description for Balancer -#: lang/json/GENERIC_from_json.py -msgid "A large and heavy metal bar for balancing a vehicle." -msgstr "Здоровая тяжёлая металлическая балка для балансировки машины." +"Собрание древних хилланских мифов и фольклора. Раздел книги, описывающий " +"исторические битвы, отмечен закладкой." #: lang/json/GENERIC_from_json.py msgid "The Life and Work of Tiger Sauer" msgid_plural "The Life and Work of Tiger Sauer" -msgstr[0] "Жизнь и работа Тигра Сауэра" -msgstr[1] "Жизнь и работа Тигра Сауэра" -msgstr[2] "Жизнь и работа Тигра Сауэра" -msgstr[3] "Жизнь и работа Тигра Сауэра" +msgstr[0] "«Жизнь и работа Тигра Сауэра»" +msgstr[1] "книги «Жизнь и работа Тигра Сауэра»" +msgstr[2] "книг «Жизнь и работа Тигра Сауэра»" +msgstr[3] "книги «Жизнь и работа Тигра Сауэра»" #. ~ Description for {'str_sp': 'The Life and Work of Tiger Sauer'} #: lang/json/GENERIC_from_json.py @@ -74397,9 +75914,9 @@ msgstr "" msgid "stone shell" msgid_plural "stone shells" msgstr[0] "каменная скорлупа" -msgstr[1] "каменной скорлупы" +msgstr[1] "каменные скорлупы" msgstr[2] "каменной скорлупы" -msgstr[3] "каменная скорлупа" +msgstr[3] "каменные скорлупы" #. ~ Description for stone shell #: lang/json/GENERIC_from_json.py @@ -74573,7 +76090,7 @@ msgid "" "A fang from a demon spider. It seems to still drip with poison; you might " "be able to use this in some alchemical recipe?" msgstr "" -"Клык демонического паука, всё ещё сочащийся ядов. Может пригодиться в " +"Клык демонического паука, всё ещё сочащийся ядом. Может пригодиться в " "алхимических рецептах." #: lang/json/GENERIC_from_json.py @@ -74595,10 +76112,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "black dragon scale" msgid_plural "black dragon scales" -msgstr[0] "чешуя чёрного дракона" -msgstr[1] "чешуи чёрного дракона" -msgstr[2] "чешуи чёрного дракона" -msgstr[3] "чешуя чёрного дракона" +msgstr[0] "чешуйка чёрного дракона" +msgstr[1] "чешуйки чёрного дракона" +msgstr[2] "чешуек чёрного дракона" +msgstr[3] "чешуйки чёрного дракона" #. ~ Description for black dragon scale #: lang/json/GENERIC_from_json.py @@ -74630,10 +76147,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "vacation brochure" msgid_plural "vacation brochures" -msgstr[0] "брошюра курорта" -msgstr[1] "брошюры курорта" -msgstr[2] "брошюр курорта" -msgstr[3] "брошюры курорта" +msgstr[0] "брошюра турагентства" +msgstr[1] "брошюры турагентства" +msgstr[2] "брошюр турагентства" +msgstr[3] "брошюры турагентства" #. ~ Use action message for vacation brochure. #. ~ Use action message for lair map. @@ -74702,7 +76219,7 @@ msgid "" "smashed for clay." msgstr "" "Сломанный глиняный голем, похожий на произведение постмодернистского " -"искусства. Можно разбить на глину." +"искусства. Можно разбить на глиняные куски." #: lang/json/GENERIC_from_json.py msgid "broken plastic golem" @@ -74737,7 +76254,7 @@ msgid "" "smashed for stone." msgstr "" "Сломанный каменный голем, мало чем отличающийся от большого валуна. Может " -"быть разбит на камень." +"быть разбит на каменные обломки." #: lang/json/GENERIC_from_json.py msgid "broken iron golem" @@ -74754,7 +76271,70 @@ msgid "" "smashed for iron." msgstr "" "Сломанный железный голем со всем железом, который вам когда-либо " -"понадобится. Может быть разбит на железо." +"понадобится. Может быть разбит на железные обломки." + +#: lang/json/GENERIC_from_json.py +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" +msgstr[0] "малая сумка измерений" +msgstr[1] "малые сумки измерений" +msgstr[2] "малых сумок измерений" +msgstr[3] "малые сумки измерений" + +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff" +" you put into it. It takes a few words and hand-waving to take an item out." +msgstr "" +"Сумка, вмещающая больше, чем должна. Сумка магически уменьшает вес " +"содержимого и расширяется меньше, чем должна из-за положенных в нее вещей. " +"Чтобы вытащить предмет, нужно совершить несколько жестов и произнести пру " +"слов." + +#: lang/json/GENERIC_from_json.py +msgid "dimensional bag" +msgid_plural "dimensional bags" +msgstr[0] "сумка измерений" +msgstr[1] "сумки измерений" +msgstr[2] "сумок измерений" +msgstr[3] "сумки измерений" + +#: lang/json/GENERIC_from_json.py +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" +msgstr[0] "большая сумка измерений" +msgstr[1] "большие сумки измерений" +msgstr[2] "больших сумок измерений" +msgstr[3] "большие сумки измерений" + +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." +msgstr "" +"Сумка измерений, достигшая предела возможностей в сочетании человеческих " +"инноваций и магических секретов." + +#: lang/json/GENERIC_from_json.py +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" +msgstr[0] "супергравитационный сохраняющий ящик" +msgstr[1] "супергравитационных сохраняющих ящика" +msgstr[2] "супергравитационных сохраняющих ящиков" +msgstr[3] "супергравитационные сохраняющие ящики" + +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." +msgstr "" +"Ящик, использующий гравитационную магию для предотвращения порчи еды. Из-за " +"этого он намного тяжелее, но еда в нём хранится дольше, и её можно вместить " +"больше." #: lang/json/GENERIC_from_json.py msgid "lesser staff of the magi" @@ -75652,6 +77232,24 @@ msgstr "" "В этом универсальном оружии используются пружины, усиленные техномансией, " "для предотвращения складывания посоха. Активируйте, чтобы укоротить." +#: lang/json/GENERIC_from_json.py +msgid "endless flask" +msgid_plural "endless flasks" +msgstr[0] "бесконечная фляга" +msgstr[1] "бесконечные фляги" +msgstr[2] "бесконечных фляг" +msgstr[3] "бесконечные фляги" + +#. ~ Use action msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" +msgstr "Вы открываете флягу и обнаруживаете, что она полна сладчайшего виски!" + +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "The flask isn't done refilling yet." +msgstr "Фляга ещё не восполнила свои запасы." + #: lang/json/GENERIC_from_json.py msgid "magic token" msgid_plural "magic tokens" @@ -75717,10 +77315,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broadsword token" msgid_plural "broadsword tokens" -msgstr[0] "жетон палаша" -msgstr[1] "жетона палаша" -msgstr[2] "жетонов палаша" -msgstr[3] "жетоны палаша" +msgstr[0] "жетон широкого меча" +msgstr[1] "жетона широкого меча" +msgstr[2] "жетонов широкого меча" +msgstr[3] "жетоны широкого меча" #. ~ Use action msg for broadsword token. #: lang/json/GENERIC_from_json.py @@ -75729,7 +77327,7 @@ msgid "" "morphs into a shiny pristine broadsword!" msgstr "" "Вы произносите кодовое слово, выгравированное на монете и она быстро растет," -" превращаясь в блестящий новенький палаш!" +" превращаясь в блестящий новенький широкий меч!" #. ~ Description for broadsword token #: lang/json/GENERIC_from_json.py @@ -75961,23 +77559,23 @@ msgstr "" msgid "cestus +1" msgid_plural "cestus +1s" msgstr[0] "цестус +1" -msgstr[1] "цестус +1" -msgstr[2] "цестус +1" -msgstr[3] "цестус +1" +msgstr[1] "цестуса +1" +msgstr[2] "цестусов +1" +msgstr[3] "цестусы +1" #: lang/json/GENERIC_from_json.py msgid "cestus +2" msgid_plural "cestus +2s" msgstr[0] "цестус +2" -msgstr[1] "цестус +2" -msgstr[2] "цестус +2" -msgstr[3] "цестус +2" +msgstr[1] "цестуса +2" +msgstr[2] "цестусов +2" +msgstr[3] "цестусы +2" #: lang/json/GENERIC_from_json.py msgid "flaming fist" msgid_plural "flaming fists" msgstr[0] "пылающий кулак" -msgstr[1] "пылающих кулаков" +msgstr[1] "пылающих кулака" msgstr[2] "пылающих кулаков" msgstr[3] "пылающие кулаки" @@ -76126,7 +77724,7 @@ msgid_plural "Gungnirs" msgstr[0] "Гунгнир" msgstr[1] "Гунгнира" msgstr[2] "Гунгниров" -msgstr[3] "Гунгнир" +msgstr[3] "Гунгниры" #. ~ Description for {'str': 'Gungnir'} #: lang/json/GENERIC_from_json.py @@ -76145,7 +77743,7 @@ msgid_plural "Grams" msgstr[0] "Грам" msgstr[1] "Грама" msgstr[2] "Грамов" -msgstr[3] "Грам" +msgstr[3] "Грамы" #. ~ Description for {'str': 'Gram'} #: lang/json/GENERIC_from_json.py @@ -76158,13 +77756,13 @@ msgstr "" " Говорят, когда-то этот меч рассёк пополам наковальню Регина. Лезвие " "безупречно." -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Laevateinn" msgid_plural "Laevateinns" msgstr[0] "Леватейн" -msgstr[1] "Леватейн" -msgstr[2] "Леватейн" -msgstr[3] "Леватейн" +msgstr[1] "Леватейна" +msgstr[2] "Леватейнов" +msgstr[3] "Леватейны" #. ~ Description for {'str': 'Laevateinn'} #: lang/json/GENERIC_from_json.py @@ -76204,10 +77802,10 @@ msgstr[3] "свитки с заклинанием" #: lang/json/GENERIC_from_json.py msgid "Scroll of Crystallize Mana" msgid_plural "Scrolls of Crystallize Mana" -msgstr[0] "Свиток кристаллизации маны" -msgstr[1] "Свитка кристаллизации маны" -msgstr[2] "Свитков кристаллизации маны" -msgstr[3] "Свитки кристаллизации маны" +msgstr[0] "Свиток Кристаллизации Маны" +msgstr[1] "Свитка Кристаллизации Маны" +msgstr[2] "Свитков Кристаллизации Маны" +msgstr[3] "Свитки Кристаллизации Маны" #. ~ Description for {'str': 'Scroll of Crystallize Mana', 'str_pl': 'Scrolls #. of Crystallize Mana'} @@ -76404,10 +78002,10 @@ msgstr "Призывает парящий диск, способный нест #: lang/json/GENERIC_from_json.py msgid "Scroll of Summon Decayed Pouncer" msgid_plural "Scrolls of Summon Decayed Pouncer" -msgstr[0] "Свиток Вызвать прогнившего когтехвата" -msgstr[1] "Свитка Вызвать прогнившего когтехвата" -msgstr[2] "Свитков Вызвать прогнившего когтехвата" -msgstr[3] "Свитки Вызвать прогнившего когтехвата" +msgstr[0] "Свиток Призыва прогнившего когтехвата" +msgstr[1] "Свитка Призыва прогнившего когтехвата" +msgstr[2] "Свитков Призыва прогнившего когтехвата" +msgstr[3] "Свитки Призыва прогнившего когтехвата" #. ~ Description for {'str': 'Scroll of Summon Decayed Pouncer', 'str_pl': #. 'Scrolls of Summon Decayed Pouncer'} @@ -76438,10 +78036,10 @@ msgstr "Исцеляет небольшое количество урона на #: lang/json/GENERIC_from_json.py msgid "Scroll of Pain Split" msgid_plural "Scrolls of Pain Split" -msgstr[0] "Свиток Разделения боли" -msgstr[1] "Свитка Разделения боли" -msgstr[2] "Свитков Разделения боли" -msgstr[3] "Свитки Разделения боли" +msgstr[0] "Свиток Разделения Боли" +msgstr[1] "Свитка Разделения Боли" +msgstr[2] "Свитков Разделения Боли" +msgstr[3] "Свитки Разделения Боли" #. ~ Description for {'str': 'Scroll of Pain Split', 'str_pl': 'Scrolls of #. Pain Split'} @@ -77086,17 +78684,17 @@ msgstr "Покрывает вас тонким слоем волшебного #: lang/json/GENERIC_from_json.py msgid "Scroll of Magic Missile" msgid_plural "Scrolls of Magic Missile" -msgstr[0] "Свиток Волшебной Ракеты" -msgstr[1] "Свитка Волшебной Ракеты" -msgstr[2] "Свитков Волшебной Ракеты" -msgstr[3] "Свитки Волшебной Ракеты" +msgstr[0] "Свиток Волшебного снаряда" +msgstr[1] "Свитка Волшебного снаряда" +msgstr[2] "Свитков Волшебного снаряда" +msgstr[3] "Свитки Волшебного снаряда" #. ~ Description for {'str': 'Scroll of Magic Missile', 'str_pl': 'Scrolls of #. Magic Missile'} #. ~ Description for Magic Missile #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "I cast Magic Missile at the darkness!" -msgstr "Я кастую волшебную ракету в темноту!" +msgstr "Я кастую волшебный снаряд в темноту!" #: lang/json/GENERIC_from_json.py msgid "Scroll of Phase Door" @@ -77646,15 +79244,15 @@ msgstr "" "позволяет вам увидеть эту область на короткое время." #: lang/json/GENERIC_from_json.py -msgid "Scroll of Overcharge" -msgid_plural "Scrolls of Overcharge" -msgstr[0] "Свиток Перегрузки" -msgstr[1] "Свитка Перегрузки" -msgstr[2] "Свитков Перегрузки" -msgstr[3] "Свитки Перегрузки" +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" +msgstr[0] "Свиток Оптического чихающего луча" +msgstr[1] "Свитка Оптического чихающего луча" +msgstr[2] "Свитков Оптического чихающего луча" +msgstr[3] "Свитки Оптического чихающего луча" -#. ~ Description for {'str': 'Scroll of Overcharge', 'str_pl': 'Scrolls of -#. Overcharge'} +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': +#. 'Scrolls of Optical Sneeze Beam'} #: lang/json/GENERIC_from_json.py msgid "" "You overcharge your internal batteries to send a semi-directed beam from " @@ -77735,10 +79333,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Sacrificial Regrowth" msgid_plural "Scrolls of Sacrificial Regrowth" -msgstr[0] "свиток жертвенного разрастания" -msgstr[1] "свитка жертвенного разрастания" -msgstr[2] "свитков жертвенного разрастания" -msgstr[3] "свитки жертвенного разрастания" +msgstr[0] "СвитокЖертвенного разрастания" +msgstr[1] "Свитка Жертвенного разрастания" +msgstr[2] "Свитков Жертвенного разрастания" +msgstr[3] "Свитки Жертвенного разрастания" #. ~ Description for {'str': 'Scroll of Sacrificial Regrowth', 'str_pl': #. 'Scrolls of Sacrificial Regrowth'} @@ -77754,10 +79352,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Sacrificial Healing" msgid_plural "Scrolls of Sacrificial Healing" -msgstr[0] "свиток жертвенного лечения" -msgstr[1] "свитка жертвенного лечения" -msgstr[2] "свитков жертвенного лечения" -msgstr[3] "свитки жертвенного лечения" +msgstr[0] "Свиток Жертвенного лечения" +msgstr[1] "Свитка Жертвенного лечения" +msgstr[2] "Свитков Жертвенного лечения" +msgstr[3] "Свитки Жертвенного лечения" #. ~ Description for {'str': 'Scroll of Sacrificial Healing', 'str_pl': #. 'Scrolls of Sacrificial Healing'} @@ -77773,10 +79371,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Stoneskin" msgid_plural "Scrolls of Stoneskin" -msgstr[0] "свиток каменной кожи" -msgstr[1] "свитка каменной кожи" -msgstr[2] "свитков каменной кожи" -msgstr[3] "свитки каменной кожи" +msgstr[0] "Свиток Каменной кожи" +msgstr[1] "Свитка Каменной кожи" +msgstr[2] "Свитков Каменной кожи" +msgstr[3] "Свитки Каменной кожи" #. ~ Description for {'str': 'Scroll of Stoneskin', 'str_pl': 'Scrolls of #. Stoneskin'} @@ -77792,10 +79390,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Pillar of Stone" msgid_plural "Scrolls of Pillar of Stone" -msgstr[0] "свиток колонны камня" -msgstr[1] "свитка колонны камня" -msgstr[2] "свитков колонны камня" -msgstr[3] "свитки колонны камня" +msgstr[0] "Свиток Колонны камня" +msgstr[1] "Свитка Колонны камня" +msgstr[2] "Свитков Колонны камня" +msgstr[3] "Свитки Колонны камня" #. ~ Description for {'str': 'Scroll of Pillar of Stone', 'str_pl': 'Scrolls #. of Pillar of Stone'} @@ -77813,10 +79411,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Paralytic Dart" msgid_plural "Scrolls of Paralytic Dart" -msgstr[0] "свиток парализующего дротика" -msgstr[1] "свитка парализующего дротика" -msgstr[2] "свитков парализующего дротика" -msgstr[3] "свитки парализующего дротика" +msgstr[0] "Свиток Парализующего дротика" +msgstr[1] "Свитка Парализующего дротика" +msgstr[2] "Свитков Парализующего дротика" +msgstr[3] "Свитки Парализующего дротика" #. ~ Description for {'str': 'Scroll of Paralytic Dart', 'str_pl': 'Scrolls of #. Paralytic Dart'} @@ -77832,10 +79430,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Visceral Projection" msgid_plural "Scrolls of Visceral Projection" -msgstr[0] "свиток внутренней защиты" -msgstr[1] "свитка внутренней защиты" -msgstr[2] "свитков внутренней защиты" -msgstr[3] "свитки внутренней защиты" +msgstr[0] "Свиток Внутренней защиты" +msgstr[1] "Свитка Внутренней защиты" +msgstr[2] "Свитков Внутренней защиты" +msgstr[3] "Свитки Внутренней защиты" #. ~ Description for {'str': 'Scroll of Visceral Projection', 'str_pl': #. 'Scrolls of Visceral Projection'} @@ -77852,10 +79450,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Coagulant Weave" msgid_plural "Scrolls of Coagulant Weave" -msgstr[0] "свиток плетения крови" -msgstr[1] "свитка плетения крови" -msgstr[2] "свитков плетения крови" -msgstr[3] "свитки плетения крови" +msgstr[0] "Свиток Плетения крови" +msgstr[1] "Свитка Плетения крови" +msgstr[2] "Свитков Плетения крови" +msgstr[3] "Свитки Плетения крови" #. ~ Description for {'str': 'Scroll of Coagulant Weave', 'str_pl': 'Scrolls #. of Coagulant Weave'} @@ -77874,10 +79472,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Ionization" msgid_plural "Scrolls of Ionization" -msgstr[0] "свиток ионизации" -msgstr[1] "свитка ионизации" -msgstr[2] "свитков ионизации" -msgstr[3] "свитки ионизации" +msgstr[0] "Свиток Ионизации" +msgstr[1] "Свитка Ионизации" +msgstr[2] "Свитков Ионизации" +msgstr[3] "Свитки Ионизации" #. ~ Description for {'str': 'Scroll of Ionization', 'str_pl': 'Scrolls of #. Ionization'} @@ -77897,10 +79495,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Ignus Fatuus" msgid_plural "Scrolls of Ignus Fatuus" -msgstr[0] "свиток блуждающего огонька" -msgstr[1] "свитка блуждающего огонька" -msgstr[2] "свитков блуждающего огонька" -msgstr[3] "свитки блуждающего огонька" +msgstr[0] "Свиток Блуждающего огонька" +msgstr[1] "Свитка Блуждающего огонька" +msgstr[2] "Свитков Блуждающего огонька" +msgstr[3] "Свитки Блуждающего огонька" #. ~ Description for {'str': 'Scroll of Ignus Fatuus', 'str_pl': 'Scrolls of #. Ignus Fatuus'} @@ -77918,10 +79516,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Scroll of Wall of Fog" msgid_plural "Scrolls of Wall of Fog" -msgstr[0] "свиток Стены тумана" -msgstr[1] "свитка Стены тумана" -msgstr[2] "свитков Стены тумана" -msgstr[3] "свитки Стены тумана" +msgstr[0] "Свиток Стены тумана" +msgstr[1] "Свитка Стены тумана" +msgstr[2] "Свитков Стены тумана" +msgstr[3] "Свитки Стены тумана" #. ~ Description for {'str': 'Scroll of Wall of Fog', 'str_pl': 'Scrolls of #. Wall of Fog'} @@ -78023,10 +79621,10 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "Introduction to the Divine" msgid_plural "copies of Introduction to the Divine" -msgstr[0] "«Знакомство с божественностью»" -msgstr[1] "книги «Знакомство с божественностью»" -msgstr[2] "книг «Знакомство с божественностью»" -msgstr[3] "книги «Знакомство с божественностью»" +msgstr[0] "«Введение в божественность»" +msgstr[1] "книги «Введение в божественность»" +msgstr[2] "книг «Введение в божественность»" +msgstr[3] "книги «Введение в божественность»" #. ~ Description for {'str': 'Introduction to the Divine', 'str_pl': 'copies #. of Introduction to the Divine'} @@ -78069,7 +79667,9 @@ msgstr[3] "книги «Вечная хватка зимы»" #: lang/json/GENERIC_from_json.py msgid "" "This slim book almost seems to be made from ice, it's cold to the touch." -msgstr "Эта тонкая книга выглядит почти как изо льда, она холодная на ощупь." +msgstr "" +"Эта тонкая книга выглядит так, словно сделанна изо льда, она холодная на " +"ощупь." #: lang/json/GENERIC_from_json.py msgid "The Tome of The Oncoming Storm" @@ -78223,9 +79823,9 @@ msgstr "" msgid "Smudged Scroll" msgid_plural "Smudged Scrolls" msgstr[0] "Смазанный свиток" -msgstr[1] "Смазанный свиток" -msgstr[2] "Смазанный свиток" -msgstr[3] "Смазанный свиток" +msgstr[1] "Смазанных свитка" +msgstr[2] "Смазанных свитков" +msgstr[3] "Смазанные свитки" #. ~ Description for {'str': 'Smudged Scroll'} #: lang/json/GENERIC_from_json.py @@ -78354,6 +79954,43 @@ msgstr "" "разным заклинаниям, временно повышающим некоторые чувства в надежде отыскать" " более постоянное решение." +#: lang/json/GENERIC_from_json.py +msgid "cauldron of purification" +msgid_plural "cauldrons of purification" +msgstr[0] "котел очищения" +msgstr[1] "котла очищения" +msgstr[2] "котлов очищения" +msgstr[3] "котлы очищения" + +#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons +#. of purification'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This cauldron made of demon spider chitin seems to absorb the light. It " +"will hold 16 liters of material and will absorb poisons from it. It may " +"have other properties that require discovery." +msgstr "" +"Этот котел, сделанный из хитина демона-паука, кажется, поглощает свет. Он " +"вмещает 16 литров материала и поглощает яды из него. Он может иметь другие " +"свойства, которые требуют обнаружения." + +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "орихалковый котёл" +msgstr[1] "орихалковых котла" +msgstr[2] "орихалковых котлов" +msgstr[3] "орихалковые котлы" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "" +"Алхимический котёл из орихалка. Метал хорошо противостоит уникальныс " +"вариациям коррозии, связанным с алхимией." + #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" @@ -78459,1550 +80096,6 @@ msgid "" msgstr "" "Рама из орихалка. Заметно прочнее стали, но соответственно заметно дороже." -#. ~ Description for broken turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken turret. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." -msgstr "" -"Сломанная турель. Теперь она лежит на земле и мало чем угрожает. Её можно " -"разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken military turret" -msgid_plural "broken military turrets" -msgstr[0] "сломанная военная турель" -msgstr[1] "сломанные военные турели" -msgstr[2] "сломанных военных турелей" -msgstr[3] "сломанная военная турель" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced turret" -msgid_plural "broken advanced turrets" -msgstr[0] "сломанная улучшенная турель" -msgstr[1] "сломанные улучшенные турели" -msgstr[2] "сломанных улучшенных турелей" -msgstr[3] "сломанная улучшенная турель" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense turret" -msgid_plural "broken defense turrets" -msgstr[0] "сломанная оборонная турель" -msgstr[1] "сломанные оборонные турели" -msgstr[2] "сломанных оборонных турелей" -msgstr[3] "сломанная оборонная турель" - -#. ~ Description for broken defense turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" -"Сломанная оборонная турель. Теперь она лежит на земле и мало чем угрожает. " -"Её можно разобрать на запчасти." - -#. ~ Description for broken military turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "" -"Сломанная военного образца турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#. ~ Description for broken advanced turret -#. ~ Description for broken 9mm turret -#. ~ Description for broken riotcontrol turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken 9mm defense turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Сломанная оборонная 9-мм турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken 9mm turret" -msgid_plural "broken 9mm turrets" -msgstr[0] "сломанная 9-мм турель" -msgstr[1] "сломанные 9-мм турели" -msgstr[2] "сломанных 9-мм турелей" -msgstr[3] "сломанная 9-мм турель" - -#. ~ Description for broken 9mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken shotgun defense turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная оборонная турель с дробовиком. Теперь она лежит на земле и мало " -"чем угрожает. Её можно разобрать на запчасти." - -#. ~ Description for broken riot control turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control turret. Much less threatening now that it lies limp " -"on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная турель осназа. Теперь она лежит на земле и мало чем угрожает. Её " -"можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol turret" -msgid_plural "broken riotcontrol turrets" -msgstr[0] "сломанная турель осназа" -msgstr[1] "сломанные турели осназа" -msgstr[2] "сломанных турелей осназа" -msgstr[3] "сломанная турель осназа" - -#: lang/json/GENERIC_from_json.py -msgid "broken 5.56mm turret" -msgid_plural "broken 5.56mm turrets" -msgstr[0] "сломанная 5,56-мм турель" -msgstr[1] "сломанные 5,56-мм турели" -msgstr[2] "сломанных 5,56-мм турелей" -msgstr[3] "сломанная 5,56-мм турель" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5.56mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная военная 5,56-мм турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken 7.62mm turret" -msgid_plural "broken 7.62mm turrets" -msgstr[0] "сломанная 7,62-мм турель" -msgstr[1] "сломанные 7,62-мм турели" -msgstr[2] "сломанных 7,62-мм турелей" -msgstr[3] "сломанная 7,62-мм турель" - -#. ~ Description for broken 7.62mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 7.62mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная военная 7,62-мм турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken 50cal turret" -msgid_plural "broken 50cal turrets" -msgstr[0] "сломанная турель .50 калибра" -msgstr[1] "сломанные турели .50 калибра" -msgstr[2] "сломанных турелей .50 калибра" -msgstr[3] "сломанная турель .50 калибра" - -#. ~ Description for broken 50cal turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 50 caliber turret. Much less threatening now that " -"it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная военная турель .50 калибра. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken 40mm turret" -msgid_plural "broken 40mm turrets" -msgstr[0] "сломанная 40-мм турель" -msgstr[1] "сломанные 40-мм турели" -msgstr[2] "сломанных 40-мм турелей" -msgstr[3] "сломанная 40-мм турель" - -#. ~ Description for broken 40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 40mm grenade turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная военная 40-мм гранатомётная турель. Теперь она лежит на земле и " -"мало чем угрожает. Её можно разобрать на запчасти." - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5x50 flechette turret. Much less threatening now " -"that it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная военная турель с флешеттами калибра 5x50 мм. Теперь она лежит на " -"земле и мало чем угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken 8x40mm turret" -msgid_plural "broken 8x40mm turrets" -msgstr[0] "сломанная 8х40-мм турель" -msgstr[1] "сломанные 8х40-мм турели" -msgstr[2] "сломанных 8х40-мм турелей" -msgstr[3] "сломанная 8х40-мм турель" - -#. ~ Description for broken 8x40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 8x40mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная военная 8х40-мм турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken flamethrower turret" -msgid_plural "broken flamethrower turrets" -msgstr[0] "сломанная огнемётная турель" -msgstr[1] "сломанные огнемётные турели" -msgstr[2] "сломанных огнемётных турелей" -msgstr[3] "сломанная огнемётная турель" - -#. ~ Description for broken flamethrower turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade flamethrower turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная военная огнемётная турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#. ~ Description for broken laser turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced laser emitter turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная улучшенная лазерная турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken acid turret" -msgid_plural "broken acid turrets" -msgstr[0] "сломанная кислотная турель" -msgstr[1] "сломанные кислотные турели" -msgstr[2] "сломанных кислотных турелей" -msgstr[3] "сломанная кислотная турель" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid thrower turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная улучшенная кислотная турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken plasma turret" -msgid_plural "broken plasma turrets" -msgstr[0] "сломанная плазменная турель" -msgstr[1] "сломанные плазменные турели" -msgstr[2] "сломанных плазменных турелей" -msgstr[3] "сломанная плазменная турель" - -#. ~ Description for broken plasma turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced plasma ejector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная улучшенная плазменная турель. Теперь она лежит на земле и мало чем" -" угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken rail gun turret" -msgid_plural "broken rail gun turrets" -msgstr[0] "сломанная рельсовая турель" -msgstr[1] "сломанные рельсовые турели" -msgstr[2] "сломанных рельсовых турелей" -msgstr[3] "сломанная рельсовая турель" - -#. ~ Description for broken rail gun turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced rail gun turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная улучшенная рельсовая турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid projector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная улучшенная кислотная турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken electro turret" -msgid_plural "broken electro turrets" -msgstr[0] "сломанная электро турель" -msgstr[1] "сломанные электро турели" -msgstr[2] "сломанных электро турелей" -msgstr[3] "сломанная электро турель" - -#. ~ Description for broken electro turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced electro caster turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная улучшенная электро излучающая турель. Теперь она лежит на земле и " -"мало чем угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken EMP turret" -msgid_plural "broken EMP turrets" -msgstr[0] "сломанная ЭМИ турель" -msgstr[1] "сломанные ЭМИ турели" -msgstr[2] "сломанных ЭМИ турелей" -msgstr[3] "сломанная ЭМИ турель" - -#. ~ Description for broken EMP turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced EMP generator turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "" -"Сломанная улучшенная ЭМИ турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken gaurdin gnome" -msgid_plural "broken gaurdin gnomes" -msgstr[0] "сломанный садовый гном" -msgstr[1] "сломанных садовых гнома" -msgstr[2] "сломанных садовых гномов" -msgstr[3] "сломанный садовый гном" - -#. ~ Description for broken gaurdin gnome -#: lang/json/GENERIC_from_json.py -msgid "A broken and completely harmless garden gnome." -msgstr "Сломанный и совершенно безобидный садовый гном." - -#: lang/json/GENERIC_from_json.py -msgid "broken hack" -msgid_plural "broken hacks" -msgstr[0] "сломанный дрон" -msgstr[1] "сломанных дрона" -msgstr[2] "сломанных дронов" -msgstr[3] "сломанный дрон" - -#. ~ Description for broken eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot, now dark and motionless. Could be stripped down for parts." -msgstr "" -"Сломанный глазобот. Теперь тёмный и неподвижный. Можно разобрать на " -"запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed eyebot" -msgid_plural "broken disarmed eyebots" -msgstr[0] "сломанный глазобот (разоружено)" -msgstr[1] "сломанных глазобота (разоружено)" -msgstr[2] "сломанных глазоботов (разоружено)" -msgstr[3] "сломанный глазобот (разоружено)" - -#. ~ Description for broken disarmed eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot. Its integrated weapon module has been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"Сломанный глазобот. Его встроенный модуль вооружения удалён. Можно разобрать" -" на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken utility robot" -msgid_plural "broken utility robots" -msgstr[0] "сломанный служебный робот" -msgstr[1] "сломанных служебных робота" -msgstr[2] "сломанных служебных роботов" -msgstr[3] "сломанный служебный робот" - -#. ~ Description for broken utility robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken utility robot, now limp and unmoving. Could be gutted for parts or" -" crafted into a salvaged robot." -msgstr "" -"Сломанный служебный робот. Теперь безжизненный и неподвижный. Можно " -"разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed skitterbot" -msgid_plural "broken disarmed skitterbots" -msgstr[0] "сломанный робот-жук (разоружено)" -msgstr[1] "сломанных робота-жука (разоружено)" -msgstr[2] "сломанных охранных роботов (разоружено)" -msgstr[3] "сломанный роботов-жуков (разоружено)" - -#. ~ Description for broken disarmed skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot. Its internal weapon modules have been removed. Could " -"be gutted for parts or crafted into a salvaged robot." -msgstr "" -"Сломанный робот-жук. Его внутренние модули вооружения удалены. Можно " -"разобрать на запчасти или отремонтировать." - -#. ~ Description for broken skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot, now harmless and inert. Could be stripped of integral " -"weapon modules." -msgstr "" -"Сломанный робот-жук. Теперь безопасный и неактивный. Можно разобрать и " -"получить встроенные модули вооружения." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed defense bot" -msgid_plural "broken disarmed defense bots" -msgstr[0] "сломанный оборонный робот (разоружено)" -msgstr[1] "сломанных оборонных робота (разоружено)" -msgstr[2] "сломанных оборонных роботов (разоружено)" -msgstr[3] "сломанный оборонный робот (разоружено)" - -#. ~ Description for broken disarmed defense bot -#. ~ Description for broken security robot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken security robot -#. ~ Description for broken defense bot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken disarmed military bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"Сломанный оборонный робот. Его внутренние модули вооружения удалены. Можно " -"разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken security robot" -msgid_plural "broken security robots" -msgstr[0] "сломанный робохранник" -msgstr[1] "сломанных робохранника" -msgstr[2] "сломанных робохранников" -msgstr[3] "сломанные робохранники" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol robot" -msgid_plural "broken riotcontrol robots" -msgstr[0] "сломанный робот осназа" -msgstr[1] "сломанных робота осназа" -msgstr[2] "сломанных роботов осназа" -msgstr[3] "сломанный робот осназа" - -#: lang/json/GENERIC_from_json.py -msgid "broken chickenwalker" -msgid_plural "broken chickenwalkers" -msgstr[0] "сломанный робоцып" -msgstr[1] "сломанных робоцыпа" -msgstr[2] "сломанных робоцыпов" -msgstr[3] "сломанный робоцып" - -#. ~ Description for broken chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "A broken chickenwalker. Could be stripped for parts." -msgstr "Сломанный робоцып. Можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed chickenwalker" -msgid_plural "broken disarmed chickenwalkers" -msgstr[0] "сломанный робоцып (разоружено)" -msgstr[1] "сломанных робоцыпа (разоружено)" -msgstr[2] "сломанных робоцыпов (разоружено)" -msgstr[3] "сломанный робоцып (разоружено)" - -#. ~ Description for broken disarmed chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken chickenwalker. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"Сломанный шагоход. Его внутренние модули вооружения удалены. Можно разобрать" -" на запчасти или отремонтировать." - -#. ~ Description for broken tank drone -#: lang/json/GENERIC_from_json.py -msgid "A broken tank drone. Could be stripped down for parts." -msgstr "Сломанный танкобот. Можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed tank drone" -msgid_plural "broken disarmed tank drones" -msgstr[0] "сломанный танкобот (разоружено)" -msgstr[1] "сломанных танкобота (разоружено)" -msgstr[2] "сломанных танкоботов (разоружено)" -msgstr[3] "сломанный танкобот (разоружено)" - -#. ~ Description for broken disarmed tank drone -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Could be gutted for parts or recrafted into a salvaged" -" robot." -msgstr "Сломанный танкобот. Можно разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "robot component" -msgid_plural "robot components" -msgstr[0] "компонент робота" -msgstr[1] "компонента робота" -msgstr[2] "компонентов робота" -msgstr[3] "компонент робота" - -#. ~ Description for robot component -#: lang/json/GENERIC_from_json.py -msgid "" -"A component for turrets and robots. It is unuseable in its current state." -msgstr "Компонент для турелей и роботов. Бесполезен в текущем состоянии." - -#: lang/json/GENERIC_from_json.py -msgid "integral microreactor" -msgid_plural "integral microreactors" -msgstr[0] "встроенный микрореактор" -msgstr[1] "встроенных микрореактора" -msgstr[2] "встроенных микрореакторов" -msgstr[3] "встроенный микрореактор" - -#. ~ Description for integral microreactor -#: lang/json/GENERIC_from_json.py -msgid "A compact fusion reactor used to power a robot's energy weapons." -msgstr "" -"Компактный термоядерный реактор, используется для питания энергетического " -"оружия робота." - -#: lang/json/GENERIC_from_json.py -msgid "integral flash gun" -msgid_plural "integral flash guns" -msgstr[0] "встроенная вспышка" -msgstr[1] "встроенные вспышки" -msgstr[2] "встроенных вспышек" -msgstr[3] "встроенная вспышка" - -#: lang/json/GENERIC_from_json.py -msgid "integral tazer" -msgid_plural "integral tazers" -msgstr[0] "встроенный тазер" -msgstr[1] "встроенных тазера" -msgstr[2] "встроенных тазеров" -msgstr[3] "встроенный тазер" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 9mm firearm" -msgid_plural "integral 9mm firearms" -msgstr[0] "встроенное оружие 9 мм" -msgstr[1] "встроенных оружия 9 мм" -msgstr[2] "встроенных оружий 9 мм" -msgstr[3] "встроенное оружие 9 мм" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 5.56mm firearm" -msgid_plural "integral 5.56mm firearms" -msgstr[0] "встроенное оружие 5,56 мм" -msgstr[1] "встроенных оружия 5,56 мм" -msgstr[2] "встроенных оружий 5,56 мм" -msgstr[3] "встроенное оружие 5,56 мм" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 7.62mm firearm" -msgid_plural "integral 7.62mm firearms" -msgstr[0] "встроенное оружие 7,62 мм" -msgstr[1] "встроенных оружия 7,62 мм" -msgstr[2] "встроенных оружий 7,62 мм" -msgstr[3] "встроенное оружие 7,62 мм" - -#: lang/json/GENERIC_from_json.py -msgid "integral shotgun" -msgid_plural "integral shotguns" -msgstr[0] "встроенный дробовик" -msgstr[1] "встроенных дробовика" -msgstr[2] "встроенных дробовиков" -msgstr[3] "встроенный дробовик" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral beanbag launcher" -msgid_plural "integral beanbag launchers" -msgstr[0] "встроенная установка (травматическая)" -msgstr[1] "встроенные установки (травматические)" -msgstr[2] "встроенных установок (травматических)" -msgstr[3] "встроенная установка (травматическая)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral teargas launcher" -msgid_plural "integral teargas launchers" -msgstr[0] "встроенная установка (слезоточивая)" -msgstr[1] "встроенные установки (слезоточивые)" -msgstr[2] "встроенных установок (слезоточивых)" -msgstr[3] "встроенная установка (слезоточивая)" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py -msgid "integral flamethrower" -msgid_plural "integral flamethrowers" -msgstr[0] "встроенный огнемёт" -msgstr[1] "встроенных огнемёта" -msgstr[2] "встроенных огнемётов" -msgstr[3] "встроенный огнемёт" - -#: lang/json/GENERIC_from_json.py -msgid "integral flechette firearm" -msgid_plural "integral flechette firearms" -msgstr[0] "встроенное оружие флешетты" -msgstr[1] "встроенных оружия флешетты" -msgstr[2] "встроенных оружий флешетты" -msgstr[3] "встроенное оружие с флешеттами" - -#: lang/json/GENERIC_from_json.py -msgid "integral 8x40mm firearm" -msgid_plural "integral 8x40mm firearms" -msgstr[0] "встроенное оружие 8х40 мм" -msgstr[1] "встроенных оружия 8х40 мм" -msgstr[2] "встроенных оружий 8х40 мм" -msgstr[3] "встроенное оружие 8х40 мм" - -#: lang/json/GENERIC_from_json.py -msgid "integral 50 caliber firearm" -msgid_plural "integral 50 caliber firearms" -msgstr[0] "встроенное оружие .50" -msgstr[1] "встроенных оружия .50" -msgstr[2] "встроенных оружий .50" -msgstr[3] "встроенное оружие .50" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral grenade launcher" -msgid_plural "integral grenade launchers" -msgstr[0] "встроенный гранатомёт" -msgstr[1] "встроенных гранатомёта" -msgstr[2] "встроенных гранатомётов" -msgstr[3] "встроенный гранатомёт" - -#: lang/json/GENERIC_from_json.py -msgid "integral laser weapon" -msgid_plural "integral laser weapons" -msgstr[0] "встроенное оружие лазерное" -msgstr[1] "встроенных оружия лазерных" -msgstr[2] "встроенных оружий лазерных" -msgstr[3] "встроенное оружие лазерное" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral plasma ejector" -msgid_plural "integral plasma ejectors" -msgstr[0] "встроенное оружие плазменное" -msgstr[1] "встроенных оружия плазменных" -msgstr[2] "встроенных оружий плазменных" -msgstr[3] "встроенное оружие плазменное" - -#: lang/json/GENERIC_from_json.py -msgid "integral electromagnetic railgun" -msgid_plural "integral electromagnetic railguns" -msgstr[0] "встроенное оружие рельсовое" -msgstr[1] "встроенных оружия рельсовых" -msgstr[2] "встроенных оружий рельсовых" -msgstr[3] "встроенное оружие рельсовое" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral acid thrower" -msgid_plural "integral acid throwers" -msgstr[0] "встроенное оружие кислотное" -msgstr[1] "встроенных оружия кислотных" -msgstr[2] "встроенных оружий кислотных" -msgstr[3] "встроенное оружие кислотное" - -#: lang/json/GENERIC_from_json.py -msgid "integral electro caster" -msgid_plural "integral electro casters" -msgstr[0] "встроенный электро излучатель" -msgstr[1] "встроенных электро излучателя" -msgstr[2] "встроенных электро излучателей" -msgstr[3] "встроенный электро излучатель" - -#: lang/json/GENERIC_from_json.py -msgid "integral EMP projector" -msgid_plural "integral EMP projectors" -msgstr[0] "встроенное ЭМИ оружие" -msgstr[1] "встроенных ЭМИ оружия" -msgstr[2] "встроенных ЭМИ оружий" -msgstr[3] "встроенное ЭМИ оружие" - -#. ~ Description for Mjölnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Mjölnir, the hammer of Thor. It is rumored to be able to level" -" mountains with a single blow. It is decorated with gold and silver " -"ornaments." -msgstr "" -"Копия Мьёлнира, молота Тора. Говорят, что с его помощью можно равнять горы с" -" землёй одним ударом. Он украшен золотым и серебряным орнаментом." - -#. ~ Description for Gungnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Gungnir, the spear of Odin. It is rumored to be the perfect " -"spear, perfectly hitting any target regardless of the wielder's strength or " -"skill. It is decorated with gold and silver ornaments." -msgstr "" -"Копия Гунгнира, копья Одина. Говорят, что это копьё всегда безошибочно " -"попадает в цель, независимо от силы или умения его носителя. Оно украшено " -"золотым и серебряным орнаментом." - -#: lang/json/GENERIC_from_json.py -msgid "broken light auto armor" -msgid_plural "broken light auto armors" -msgstr[0] "сломанная лёгкая авто броня" -msgstr[1] "сломанные лёгкие авто брони" -msgstr[2] "сломанных лёгких авто броней" -msgstr[3] "сломанная лёгкая авто броня" - -#. ~ Description for broken light auto armor -#. ~ Description for broken basic auto armor -#. ~ Description for broken heavy auto armor -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken set of power armor fitted with an AI core for automated use. It " -"cannot be worn or disassembled until re-crafted into an undamaged robot." -msgstr "" -"Сломанный комплект силовой брони, оснащённый ядром ИИ для автоматического " -"использования. Его нельзя носить или разбирать, пока он не будет пересобран " -"в неповреждённый вариант робота." - -#: lang/json/GENERIC_from_json.py -msgid "broken basic auto armor" -msgid_plural "broken basic auto armors" -msgstr[0] "сломанная основная авто броня" -msgstr[1] "сломанные основные авто брони" -msgstr[2] "сломанных основных авто броней" -msgstr[3] "сломанная основная авто броня" - -#: lang/json/GENERIC_from_json.py -msgid "broken heavy auto armor" -msgid_plural "broken heavy auto armors" -msgstr[0] "сломанная тяжёлая авто броня" -msgstr[1] "сломанные тяжёлые авто брони" -msgstr[2] "сломанных тяжёлых авто броней" -msgstr[3] "сломанная тяжёлая авто броня" - -#: lang/json/GENERIC_from_json.py -msgid "dead craftbuddy" -msgid_plural "dead craftbuddies" -msgstr[0] "сломанный ремонтный бот" -msgstr[1] "сломанных ремонтных бота" -msgstr[2] "сломанных ремонтных ботов" -msgstr[3] "сломанные ремонтные боты" - -#. ~ Description for {'str': 'dead craftbuddy', 'str_pl': 'dead craftbuddies'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken repair robot, now limp and unmoving. Could be gutted for parts or " -"re-crafted into a functioning pal." -msgstr "" -"Сломанный ремонтный бот. Теперь безжизненный и неподвижный. Можно разобрать " -"на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating lantern" -msgid_plural "broken floating lanterns" -msgstr[0] "сломанный парящий фонарь" -msgstr[1] "сломанных парящих фонаря" -msgstr[2] "сломанных парящих фонарей" -msgstr[3] "сломанный парящий фонарь" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating lantern, now dark and motionless. Could be gutted for " -"parts." -msgstr "" -"Сломанный парящий фонарь. Теперь тёмный и неподвижный. Можно разобрать на " -"запчасти." - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "A broken arson hack, now cold and burnt. Could be gutted for parts." -msgstr "" -"Сломанный мэнхак поджигатель. Теперь холодный и обгорелый. Можно разобрать " -"на запчасти." - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken distract-o-hack, now silent and still. Could be gutted for parts." -msgstr "" -"Сломанный мэнхак тарахтелка. Теперь тихий и неподвижный. Можно разобрать на " -"запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken spore hack" -msgid_plural "broken spore hacks" -msgstr[0] "сломанный мэнхак спор" -msgstr[1] "сломанных мэнхака спор" -msgstr[2] "сломанных мэнхаков спор" -msgstr[3] "сломанный мэнхак спор" - -#. ~ Description for broken spore hack -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken spore hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." -msgstr "" -"Сломанный мэнхак спор. Теперь он лежит на земле и мало чем угрожает. Можно " -"разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken watercannon turret" -msgid_plural "broken watercannon turrets" -msgstr[0] "сломанная водяная турель" -msgstr[1] "сломанные водяные турели" -msgstr[2] "сломанных водяных турелей" -msgstr[3] "сломанная водяная турель" - -#. ~ Description for broken watercannon turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken watercannon turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "" -"Сломанная водяная пушка турель. Теперь она лежит на земле и мало чем " -"угрожает. Её можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating heater" -msgid_plural "broken floating heaters" -msgstr[0] "сломанный парящий нагреватель" -msgstr[1] "сломанных парящих нагревателя" -msgstr[2] "сломанных парящих нагревателей" -msgstr[3] "сломанный парящий нагреватель" - -#. ~ Description for broken floating heater -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating heater, now cold and motionless. Could be stripped down " -"or re-crafted." -msgstr "" -"Сломанный парящий нагреватель. Теперь холодный и неподвижный. Можно " -"разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken floating furnace" -msgid_plural "broken floating furnaces" -msgstr[0] "сломанная парящая печь" -msgstr[1] "сломанные парящие печи" -msgstr[2] "сломанных парящих печей" -msgstr[3] "сломанная парящая печь" - -#. ~ Description for broken floating furnace -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating furnace, now cold and motionless. Could bestripped down " -"or re-crafted." -msgstr "" -"Сломанная парящая печь. Теперь холодная и неподвижная. Можно разобрать на " -"запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken burning eye" -msgid_plural "broken burning eyes" -msgstr[0] "сломанный пылающий глаз" -msgstr[1] "сломанных пылающих глаза" -msgstr[2] "сломанных пылающих глаз" -msgstr[3] "сломанный пылающий глаз" - -#. ~ Description for broken burning eye -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken burning eye, now dark and motionless. Could be stripped down or " -"re-crafted." -msgstr "" -"Сломанный пылающий глаз. Теперь тёмный и неподвижный. Можно разобрать на " -"запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken butler-bot" -msgid_plural "broken butler-bots" -msgstr[0] "сломанный робот-дворецкий" -msgstr[1] "сломанных робота-дворецких" -msgstr[2] "сломанных роботов-дворецких" -msgstr[3] "сломанный робот-дворецкий" - -#. ~ Description for broken butler-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken butler-bot, now silent and mangled. Could be stripped down for " -"parts." -msgstr "" -"Сломанный робот-дворецкий. Теперь молчаливый и искалеченный. Можно разобрать" -" на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken construction robot" -msgid_plural "broken construction robots" -msgstr[0] "сломанный робот строитель" -msgstr[1] "сломанных робота строителя" -msgstr[2] "сломанных роботов строителей" -msgstr[3] "сломанный робот строитель" - -#. ~ Description for broken construction robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken construction robot, now wrecked and immobile. Could be stripped " -"down for parts." -msgstr "" -"Сломанный робот строитель. Теперь разрушенный и неподвижный. Можно разобрать" -" на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken firefighter robot" -msgid_plural "broken firefighter robots" -msgstr[0] "сломанный робот пожарный" -msgstr[1] "сломанных робота пожарных" -msgstr[2] "сломанных роботов пожарных" -msgstr[3] "сломанный робот пожарный" - -#. ~ Description for broken firefighter robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken firefighter robot, now cold and inert. Could be stripped down for " -"parts." -msgstr "" -"Сломанный пожарный робот. Теперь холодный и неактивный. Можно разобрать на " -"запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken blob breeder" -msgid_plural "broken blob breeders" -msgstr[0] "сломанный инкубатор сгустков" -msgstr[1] "сломанных инкубатора сгустков" -msgstr[2] "сломанных инкубаторов сгустков" -msgstr[3] "сломанный инкубатор сгустков" - -#. ~ Description for broken blob breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien blobs. Could be stripped down or re-" -"crafted." -msgstr "" -"Сломанный роботизированный инкубатор для инопланетной формы жизни сгустков. " -"Можно разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken slime breeder" -msgid_plural "broken slime breeders" -msgstr[0] "сломанный инкубатор слизи" -msgstr[1] "сломанных инкубатора слизи" -msgstr[2] "сломанных инкубаторов слизи" -msgstr[3] "сломанный инкубатор слизи" - -#. ~ Description for broken slime breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien slimes. Could be stripped down or re-" -"crafted." -msgstr "" -"Сломанный роботизированный инкубатор для инопланетной формы жизни слизи. " -"Можно разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken digestron" -msgid_plural "broken digestrons" -msgstr[0] "сломанный автоклав" -msgstr[1] "сломанных автоклава" -msgstr[2] "сломанных автоклавов" -msgstr[3] "сломанный автоклав" - -#. ~ Description for broken digestron -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken acid digestor robot, now cold and unmoving. Could be stripped down" -" or re-crafted." -msgstr "" -"Сломанный кислотный автоклав. Теперь холодный и неподвижный. Можно разобрать" -" на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken bee-bot" -msgid_plural "broken bee-bots" -msgstr[0] "сломанный робот-улей" -msgstr[1] "сломанных робота-улья" -msgstr[2] "сломанных роботов-ульев" -msgstr[3] "сломанный робот-улей" - -#. ~ Description for broken bee-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken beehive robot, now still and bee-less. Could be stripped down or " -"re-crafted." -msgstr "" -"Сломанный робот-улей. Теперь неподвижный и без пчёл. Можно разобрать на " -"запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken medical bot" -msgid_plural "broken medical bots" -msgstr[0] "сломанный робот-врач" -msgstr[1] "сломанных робота-врача" -msgstr[2] "сломанных роботов-врачей" -msgstr[3] "сломанный робот-врач" - -#. ~ Description for broken medical bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot, now crumpled and inert. Could be stripped down for " -"parts." -msgstr "" -"Сломанный робот-врач. Теперь помятый и неактивный. Можно разобрать на " -"запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed medical robot" -msgid_plural "broken disarmed medical robots" -msgstr[0] "сломанный робот-врач (разоружено)" -msgstr[1] "сломанных робота-врача (разоружено)" -msgstr[2] "сломанных роботов-врачей (разоружено)" -msgstr[3] "сломанный робот-врач (разоружено)" - -#. ~ Description for broken disarmed medical robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot. Its onboard pharma-crafter and integral surgical " -"tools have been removed. Could be gutted for parts or crafted into a " -"salvaged robot." -msgstr "" -"Сломанный робот-врач. Его встроенное фарм-устройство и хирургические " -"инструменты удалены. Можно разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken assassin robot" -msgid_plural "broken assassin robots" -msgstr[0] "сломанный робот-ассасин" -msgstr[1] "сломанных робота-ассасина" -msgstr[2] "сломанных роботов-ассасинов" -msgstr[3] "сломанный робот-ассасин" - -#. ~ Description for broken assassin robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken assassin robot, now limp and immobile. Could be stripped down or " -"re-crafted." -msgstr "" -"Сломанный робот-ассасин. Теперь безжизненный и неподвижный. Можно разобрать " -"на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken elixirator" -msgid_plural "broken elixirators" -msgstr[0] "сломанный эликсиратор" -msgstr[1] "сломанных эликсиратора" -msgstr[2] "сломанных эликсираторов" -msgstr[3] "сломанный эликсиратор" - -#. ~ Description for broken elixirator -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken elixirator, now shattered and lifeless. Could be stripped down or " -"re-crafted." -msgstr "" -"Сломанный эликсиратор. Теперь разбитый и безжизненный. Можно разобрать на " -"запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken party bot" -msgid_plural "broken party bots" -msgstr[0] "сломанный робот-тусовщик" -msgstr[1] "сломанных робота-тусовщика" -msgstr[2] "сломанных роботов-тусовщиков" -msgstr[3] "сломанный робот-тусовщик" - -#. ~ Description for broken party bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken party robot, now wasted and burnt out. Looks like the party's " -"over. Could be stripped down or re-crafted." -msgstr "" -"Сломанный робот-тусовщик. Теперь бесполезный и обгоревший. Похоже, что " -"вечеринка закончилась. Можно разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken insane cyborg" -msgid_plural "broken insane cyborgs" -msgstr[0] "сломанный безумный киборг" -msgstr[1] "сломанных безумных киборга" -msgstr[2] "сломанных безумных киборгов" -msgstr[3] "сломанный безумный киборг" - -#. ~ Description for broken insane cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be gutted for parts or " -"crafted into a salvaged robot." -msgstr "" -"Сломанный киборг. Теперь безжизненный и неподвижный. Можно разобрать на " -"запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken necrotic cyborg" -msgid_plural "broken necrotic cyborgs" -msgstr[0] "сломанный некротический киборг" -msgstr[1] "сломанных некротических киборга" -msgstr[2] "сломанных некротических киборгов" -msgstr[3] "сломанный некротический киборг" - -#. ~ Description for broken necrotic cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be stripped down or re-" -"crafted into a salvaged robot." -msgstr "" -"Сломанный киборг. Теперь безжизненный и неподвижный. Можно разобрать на " -"запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken rat snatcher" -msgid_plural "broken rat snatchers" -msgstr[0] "сломанный истребитель крыс" -msgstr[1] "сломанных истребителя крыс" -msgstr[2] "сломанных истребителей крыс" -msgstr[3] "сломанный истребитель крыс" - -#. ~ Description for broken rat snatcher -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken rat snatcher, now harmless and inert. Could be stripped down or " -"re-crafted." -msgstr "" -"Сломанный истребитель крыс. Теперь безопасный и неактивный. Можно разобрать " -"на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken grab-bot" -msgid_plural "broken grab-bots" -msgstr[0] "сломанный робот-хвататель" -msgstr[1] "сломанных робота-хватателя" -msgstr[2] "сломанных роботов-хватателей" -msgstr[3] "сломанный робот-хвататель" - -#. ~ Description for broken grab-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken grabber robot, now limp and nonthreatening. Could be stripped down" -" or re-crafted." -msgstr "" -"Сломанный робот-хвататель. Теперь безжизненный и не угрожающий. Можно " -"разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken pest hunter" -msgid_plural "broken pest hunters" -msgstr[0] "сломанный истребитель вредителей" -msgstr[1] "сломанных истребителя вредителей" -msgstr[2] "сломанных истребителей вредителей" -msgstr[3] "сломанный истребитель вредителей" - -#. ~ Description for broken pest hunter -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken pest hunter, now harmless and inert. Could be gutted for parts or " -"re-crafted." -msgstr "" -"Сломанный истребитель вредителей. Теперь безопасный и неактивный. Можно " -"разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken defense bot" -msgid_plural "broken defense bots" -msgstr[0] "сломанный оборонный робот" -msgstr[1] "сломанных оборонных робота" -msgstr[2] "сломанных оборонных роботов" -msgstr[3] "сломанный оборонный робот" - -#: lang/json/GENERIC_from_json.py -msgid "broken junkyard cowboy" -msgid_plural "broken junkyard cowboys" -msgstr[0] "сломанный механический ковбой" -msgstr[1] "сломанных механических ковбоя" -msgstr[2] "сломанных механических ковбоев" -msgstr[3] "сломанный мусорный ковбой" - -#. ~ Description for broken junkyard cowboy -#. ~ Description for broken shortcircuit samurai -#. ~ Description for broken slapdash paladin -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." -msgstr "" -"Сломанный трофейный робот. Можно разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken shortcircuit samurai" -msgid_plural "broken shortcircuit samurais" -msgstr[0] "сломанный сбойный самурай" -msgstr[1] "сломанных сбойных самурая" -msgstr[2] "сломанных сбойных самураев" -msgstr[3] "сломанный короткозамыкающий самурай" - -#: lang/json/GENERIC_from_json.py -msgid "broken slapdash paladin" -msgid_plural "broken slapdash paladins" -msgstr[0] "сломанный стремительный паладин" -msgstr[1] "сломанных стремительных паладина" -msgstr[2] "сломанных стремительных паладинов" -msgstr[3] "сломанный стремительный паладин" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed military bot" -msgid_plural "broken disarmed military bots" -msgstr[0] "сломанный военный робот (разоружено)" -msgstr[1] "сломанных военных робота (разоружено)" -msgstr[2] "сломанных военных роботов (разоружено)" -msgstr[3] "сломанный военный робот (разоружено)" - -#: lang/json/GENERIC_from_json.py -msgid "broken military trainer robot" -msgid_plural "broken military trainer robots" -msgstr[0] "сломанный военный робот-тренер" -msgstr[1] "сломанных военных робота-тренера" -msgstr[2] "сломанных военных роботов-тренеров" -msgstr[3] "сломанный военный робот-тренер" - -#. ~ Description for broken military trainer robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military trainer robot, shattered and inert. This one is armed " -"with an integrated paintball gun. Could be stripped for parts." -msgstr "" -"Сломанный военный робот-тренажёр. Теперь разбитый и неактивный. Вооружён " -"встроенным оружием для пейнтбола. Можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken military robot" -msgid_plural "broken military robots" -msgstr[0] "сломанный военный робот" -msgstr[1] "сломанных военных робота" -msgstr[2] "сломанных военных роботов" -msgstr[3] "сломанный военный робот" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 5.56mm firearm. Could be stripped for parts." -msgstr "" -"Сломанный военный робот. Теперь разбитый и неактивный. Вооружён встроенным " -"оружием 5,56 мм. Можно разобрать на запчасти." - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 7.62mm firearm. Could be stripped for parts." -msgstr "" -"Сломанный военный робот. Теперь разбитый и неактивный. Вооружён встроенным " -"оружием 7,62 мм. Можно разобрать на запчасти." - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 50 caliber firearm. Could be stripped for parts." -msgstr "" -"Сломанный военный робот. Теперь разбитый и неактивный. Вооружён встроенным " -"оружием .50 калибра. Можно разобрать на запчасти." - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 8x40mm firearm. Could be stripped for parts." -msgstr "" -"Сломанный военный робот. Теперь разбитый и неактивный. Вооружён встроенным " -"оружием 8х40 мм. Можно разобрать на запчасти." - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flechette gun. Could be stripped for parts." -msgstr "" -"Сломанный военный робот. Теперь разбитый и неактивный. Вооружён встроенным " -"флешеттным оружием. Можно разобрать на запчасти." - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 40mm grenade launcher. Could be stripped for parts." -msgstr "" -"Сломанный военный робот. Теперь разбитый и неактивный. Вооружён встроенным " -"гранатомётом 40 мм. Можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken military flame robot" -msgid_plural "broken military flame robots" -msgstr[0] "сломанный военный робот-огнемётчик" -msgstr[1] "сломанных военных робота-огнемётчика" -msgstr[2] "сломанных военных роботов-огнемётчиков" -msgstr[3] "сломанный военный робот-огнемётчик" - -#. ~ Description for broken military flame robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flamethrower. Could be stripped for parts." -msgstr "" -"Сломанный военный робот. Теперь разбитый и неактивный. Вооружён встроенным " -"огнемётом. Можно разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-guardian" -msgid_plural "broken robo-guardians" -msgstr[0] "сломанный робот-страж" -msgstr[1] "сломанных робота-стража" -msgstr[2] "сломанных роботов-стражей" -msgstr[3] "сломанные роботы-стражи" - -#. ~ Description for broken robo-guardian -#. ~ Description for broken robo-protector -#. ~ Description for broken robo-defender -#. ~ Description for {'str': 'broken glittering lady', 'str_pl': 'broken -#. glittering ladies'} -#. ~ Description for broken bitter spinster -#. ~ Description for broken fist king -#. ~ Description for broken atomic sultan -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "" -"Сломанный трофейный робот. Можно разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken robote deluxe" -msgid_plural "broken robote deluxes" -msgstr[0] "сломанный робот-делюкс" -msgstr[1] "сломанных робота-делюкс" -msgstr[2] "сломанных роботов-делюкс" -msgstr[3] "сломанный робот-делюкс" - -#. ~ Description for broken robote deluxe -#: lang/json/GENERIC_from_json.py -msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "" -"Сломанный робот-делюкс. Можно разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-protector" -msgid_plural "broken robo-protectors" -msgstr[0] "сломанный робот-охранник" -msgstr[1] "сломанных робота-охранника" -msgstr[2] "сломанных роботов-охранников" -msgstr[3] "сломанный робот-охранник" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-defender" -msgid_plural "broken robo-defenders" -msgstr[0] "сломанный робот-защитник" -msgstr[1] "сломанных робота-защитника" -msgstr[2] "сломанных роботов-защитников" -msgstr[3] "сломанный робот-защитник" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed advanced bot" -msgid_plural "broken disarmed advanced bots" -msgstr[0] "сломанный улучшенный робот (разоружено)" -msgstr[1] "сломанных улучшенных робота (разоружено)" -msgstr[2] "сломанных улучшенных роботов (разоружено)" -msgstr[3] "сломанный улучшенный робот (разоружено)" - -#. ~ Description for broken disarmed advanced bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" -"Сломанный улучшенный робот. Его внутренние модули вооружения удалены. Можно " -"разобрать на запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced robot" -msgid_plural "broken advanced robots" -msgstr[0] "сломанный улучшенный робот" -msgstr[1] "сломанных улучшенных робота" -msgstr[2] "сломанных улучшенных роботов" -msgstr[3] "сломанный улучшенный робот" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated laser-" -"emitter. Could be stripped for parts." -msgstr "" -"Сломанный улучшенный робот. Вооружён встроенным лазерным излучателем. Можно " -"разобрать на запчасти." - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated plasma-" -"ejector. Could be stripped for parts." -msgstr "" -"Сломанный улучшенный робот. Вооружён встроенным плазменным излучателем. " -"Можно разобрать на запчасти." - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated electro-" -"caster. Could be stripped for parts." -msgstr "" -"Сломанный улучшенный робот. Вооружён встроенным электро излучателем. Можно " -"разобрать на запчасти." - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated EMP " -"projector. Could be stripped for parts." -msgstr "" -"Сломанный улучшенный робот. Вооружён встроенным ЭМИ излучателем. Можно " -"разобрать на запчасти." - -#: lang/json/GENERIC_from_json.py -msgid "broken glittering lady" -msgid_plural "broken glittering ladies" -msgstr[0] "сломанная блестящая леди" -msgstr[1] "сломанные блестящие леди" -msgstr[2] "сломанных блестящих леди" -msgstr[3] "сломанные блестящие леди" - -#: lang/json/GENERIC_from_json.py -msgid "broken bitter spinster" -msgid_plural "broken bitter spinsters" -msgstr[0] "сломанная старая дева" -msgstr[1] "сломанные старые девы" -msgstr[2] "сломанных старых дев" -msgstr[3] "сломанная старая дева" - -#: lang/json/GENERIC_from_json.py -msgid "broken chainsaw horror" -msgid_plural "broken chainsaw horrors" -msgstr[0] "сломанный цепной ужас" -msgstr[1] "сломанных цепных ужаса" -msgstr[2] "сломанных цепных ужасов" -msgstr[3] "сломанные цепные ужасы" - -#. ~ Description for broken chainsaw horror -#. ~ Description for broken screeching terror -#. ~ Description for broken hooked nightmare -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken salvaged robot. Thank God it's finally dead. Could be stripped or" -" recrafted." -msgstr "" -"Сломанный трофейный робот. Слава богу, наконец он мёртв. Можно разобрать на " -"запчасти или отремонтировать." - -#: lang/json/GENERIC_from_json.py -msgid "broken screeching terror" -msgid_plural "broken screeching terrors" -msgstr[0] "сломанный визжащий ужас" -msgstr[1] "сломанных визжащих ужаса" -msgstr[2] "сломанных визжащих ужасов" -msgstr[3] "сломанный визжащий ужас" - -#: lang/json/GENERIC_from_json.py -msgid "broken hooked nightmare" -msgid_plural "broken hooked nightmares" -msgstr[0] "сломанный цепляющийся кошмар" -msgstr[1] "сломанных цепляющихся кошмара" -msgstr[2] "сломанных цепляющихся кошмаров" -msgstr[3] "сломанный цепляющийся кошмар" - -#: lang/json/GENERIC_from_json.py -msgid "broken fist king" -msgid_plural "broken fist kings" -msgstr[0] "сломанный кулачный король" -msgstr[1] "сломанных кулачных короля" -msgstr[2] "сломанных кулачных королей" -msgstr[3] "сломанный кулачный король" - -#: lang/json/GENERIC_from_json.py -msgid "broken atomic sultan" -msgid_plural "broken atomic sultans" -msgstr[0] "сломанный атомный султан" -msgstr[1] "сломанных атомных султана" -msgstr[2] "сломанных атомных султанов" -msgstr[3] "сломанный атомный султан" - -#. ~ Description for AI core -#: lang/json/GENERIC_from_json.py -msgid "A computer module for controlling robots." -msgstr "Компьютерный модуль для управления роботами." - -#: lang/json/GENERIC_from_json.py -msgid "surgery module" -msgid_plural "surgery modules" -msgstr[0] "модуль хирургический" -msgstr[1] "модуля хирургических" -msgstr[2] "модулей хирургических" -msgstr[3] "модуль хирургический" - -#. ~ Description for surgery module -#: lang/json/GENERIC_from_json.py -msgid "A microsurgery module for a medical robot." -msgstr "Микрохирургический модуль для медицинского робота-врача." - -#: lang/json/GENERIC_from_json.py -msgid "pharmaceutical module" -msgid_plural "pharmaceutical modules" -msgstr[0] "модуль фармацевтический" -msgstr[1] "модуля фармацевтических" -msgstr[2] "модулей фармацевтических" -msgstr[3] "модуль фармацевтический" - -#. ~ Description for pharmaceutical module -#: lang/json/GENERIC_from_json.py -msgid "A pharmaceutical fabricating module for a medical robot." -msgstr "Фармацевтический модуль для медицинского робота-врача." - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral paintball gun" -msgid_plural "integral paintball guns" -msgstr[0] "встроенное оружие для пейнтбола" -msgstr[1] "встроенных оружия для пейнтбола" -msgstr[2] "встроенных оружий для пейнтбола" -msgstr[3] "встроенное оружие для пейнтбола" - -#. ~ Description for integral paintball gun -#: lang/json/GENERIC_from_json.py -msgid "" -"A high-powered paintball module used for safely testing robots or training " -"soldiers." -msgstr "" -"Высокоэффективный пейнтбольный модуль вооружения, используется для " -"безопасного тестирования роботов или тренировки солдат." - -#: lang/json/GENERIC_from_json.py -msgid "robot carrier" -msgid_plural "robot carriers" -msgstr[0] "робокар" -msgstr[1] "робокара" -msgstr[2] "робокаров" -msgstr[3] "робокар" - -#. ~ Description for robot carrier -#: lang/json/GENERIC_from_json.py -msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large machine in place. It is " -"meant to hold large drones and robots for transport. Use it on a suitable " -"robot to capture, use it on an empty tile to release." -msgstr "" -"Тяжёлая рама оснащённая ремнями и местами крепления для перевозки грузов, с " -"дополнительными направляющими для хранения большой машины. Предназначен для " -"хранения больших дронов и роботов для последующей транспортировки. " -"Используйте его на подходящем роботе для захвата. Используйте его на пустом " -"тайле для освобождения." - #: lang/json/GENERIC_from_json.py msgid "TEST plank" msgid_plural "TEST planks" @@ -80011,6 +80104,16 @@ msgstr[1] "ТЕСТОВЫЕ доски" msgstr[2] "ТЕСТОВЫХ досок" msgstr[3] "ТЕСТОВЫЕ доски" +#. ~ Description for TEST plank +#: lang/json/GENERIC_from_json.py +msgid "" +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" +" lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." +msgstr "" +"Узкая толстая деревянная доска примерно 5 на 10 сантиметров. Неплохое " +"оружие, а ещё годится для изготовления самых разных вещей." + #: lang/json/GENERIC_from_json.py msgid "TEST pipe" msgid_plural "TEST pipes" @@ -80027,6 +80130,44 @@ msgstr[1] "ТЕСТОВЫХ листа металла" msgstr[2] "ТЕСТОВЫХ листов металла" msgstr[3] "ТЕСТОВЫЕ листы металла" +#: lang/json/GENERIC_from_json.py +msgid "TEST gallon jug" +msgid_plural "TEST gallon jugs" +msgstr[0] "ТЕСТОВАЯ 4.5л бутылка" +msgstr[1] "ТЕСТОВЫЕ 4.5л бутылки" +msgstr[2] "ТЕСТОВЫХ 4.5л бутылок" +msgstr[3] "ТЕСТОВЫЕ 4.5л бутылки" + +#: lang/json/GENERIC_from_json.py +msgid "TEST small waterskin" +msgid_plural "TEST small waterskins" +msgstr[0] "ТЕСТОВЫЙ маленький бурдюк" +msgstr[1] "ТЕСТОВЫХ маленьких бурдюка" +msgstr[2] "ТЕСТОВЫХ маленьких бурдюков" +msgstr[3] "ТЕСТОВЫЕ маленькие бурдюки" + +#: lang/json/GENERIC_from_json.py +msgid "test balloon" +msgid_plural "test balloons" +msgstr[0] "тестовый воздушный шар" +msgstr[1] "тестовых воздушных шара" +msgstr[2] "тестовых воздушных шаров" +msgstr[3] "тестовые воздушные шары" + +#. ~ Description for {'str': 'test balloon'} +#: lang/json/GENERIC_from_json.py +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." +msgstr "" +"Тянется, не пропускает воду и воздух - идеальный шарик для тестирования." + +#: lang/json/GENERIC_from_json.py +msgid "test pointy stick" +msgid_plural "test pointy sticks" +msgstr[0] "тестовая заострённая палка" +msgstr[1] "тестовые заострённые палки" +msgstr[2] "тестовых заострённых палок" +msgstr[3] "тестовые заострённые палки" + #: lang/json/GENERIC_from_json.py msgid "TEST clumsy sword" msgid_plural "TEST clumsy swords" @@ -80067,254 +80208,61 @@ msgid "A well-balanced sword for test purposes" msgstr "Хорошо сбалансированный меч для тестирования кода" #: lang/json/GENERIC_from_json.py -msgid "a large artillery casing" -msgid_plural "large artillery casings" -msgstr[0] "Большая артиллерийская гильза" -msgstr[1] "Больших артиллерийских гильз" -msgstr[2] "Больших артиллерийских гильз" -msgstr[3] "Большие артиллерийские гильзы" +msgid "test box" +msgid_plural "test boxs" +msgstr[0] "тестовая коробка" +msgstr[1] "тестовые коробки" +msgstr[2] "тестовых коробок" +msgstr[3] "тестовые коробки" +#. ~ Description for {'str': 'test box'} #: lang/json/GENERIC_from_json.py -msgid "30x113mm autocannon belt linkage" -msgid_plural "30x113mm autocannon belt linkages" -msgstr[0] "сцепка патронной ленты 30х113 мм" -msgstr[1] "сцепки патронной ленты 30х113 мм" -msgstr[2] "сцепок патронной ленты 30х113 мм" -msgstr[3] "сцепка патронной ленты 30х113 мм" - -#: lang/json/GENERIC_from_json.py -msgid "30mm canister" -msgid_plural "30mm canisters" -msgstr[0] "гильза 30 мм" -msgstr[1] "гильзы 30 мм" -msgstr[2] "гильз 30 мм" -msgstr[3] "гильза 30 мм" - -#. ~ Description for 30mm canister -#: lang/json/GENERIC_from_json.py -msgid "A canister from a spent 30mm shell." -msgstr "Гильза от отстрелянного 30-мм снаряда." - -#: lang/json/GENERIC_from_json.py -msgid "120mm canister" -msgid_plural "120mm canisters" -msgstr[0] "гильза 120 мм" -msgstr[1] "гильзы 120 мм" -msgstr[2] "гильз 120 мм" -msgstr[3] "гильза 120 мм" - -#. ~ Description for 120mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 120mm shell, now an expensive paperweight." +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." msgstr "" -"Большая гильза от отстрелянного 120-мм снаряда, теперь лишь дорогое пресс-" -"папье." +"Обычная коробка объемом в 1 литр с намеренно неопределенными пропорциями." #: lang/json/GENERIC_from_json.py -msgid "155mm canister" -msgid_plural "155mm canisters" -msgstr[0] "гильза 155 мм" -msgstr[1] "гильзы 155 мм" -msgstr[2] "гильз 155 мм" -msgstr[3] "гильза 155 мм" +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" +msgstr[0] "тестовый 14 см жезл" +msgstr[1] "тестовых 14 см жезла" +msgstr[2] "тестовых 14 см жезлов" +msgstr[3] "тестовые 14 см жезлы" -#. ~ Description for 155mm canister +#. ~ Description for test 14 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 155mm shell, now an expensive paperweight." -msgstr "" -"Большая гильза от отстрелянного 155-мм снаряда, теперь лишь дорогое пресс-" -"папье." +msgid "A thin rod exactly 14 cm in length" +msgstr "Тонкий жезл длиной ровно 14 см." #: lang/json/GENERIC_from_json.py -msgid "stabilized portal" -msgid_plural "stabilized portals" -msgstr[0] "стабилизированный портал" -msgstr[1] "стабилизированные порталы" -msgstr[2] "стабилизированные порталы" -msgstr[3] "стабилизированные порталы" +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" +msgstr[0] "тестовый 15 см жезл" +msgstr[1] "тестовых 15 см жезла" +msgstr[2] "тестовых 15 см жезлов" +msgstr[3] "тестовые 15 см жезлы" -#. ~ Description for {'str': 'stabilized portal'} +#. ~ Description for test 15 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"As you gaze into the seemingly infinite depths of this portable hole in " -"reality, a phrase from a time forever gone echoes in your mind. \"There are" -" two things that are infinite: the universe and human kleptomania.\"" -msgstr "" -"По мере того, как вы всматриваетесь в кажущиеся бесконечными глубины этой " -"портативной дыры в реальности, фраза из давно ушедших времен всплывает в " -"вашем мозгу: «Есть две бесконечные вещи: вселенная и человеческая " -"клептомания»." +msgid "A thin rod exactly 15 cm in length" +msgstr "Тонкий жезл длиной ровно 15 см." #: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" -msgstr[0] "транспортный стеллаж" -msgstr[1] "транспортных стеллажа" -msgstr[2] "транспортных стеллажей" -msgstr[3] "транспортные стеллажи" +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" +msgstr[0] "тестовый ядерный графин" +msgstr[1] "тестовых ядерных графина" +msgstr[2] "тестовых ядерных графинов" +msgstr[3] "тестовые ядерные графины" -#. ~ Description for {'str': 'vehicle shelving'} +#. ~ Description for {'str': 'test nuclear carafe'} #: lang/json/GENERIC_from_json.py msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." msgstr "" -"Нескольо тяжёлых рам, скрепленных вместе и оснащённых в избытке крепежами и " -"точками крепления для перевозки большого количества груза." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" -msgstr[0] "массив солнечных панелей" -msgstr[1] "массив солнечных панелей" -msgstr[2] "массив солнечных панелей" -msgstr[3] "массивы солнечных панелей" - -#. ~ Description for {'str': 'solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. However, this comes at the " -"cost of being prohibitively heavy." -msgstr "" -"Конструкция из дюжины мощных солнечных панелей нескольких метров в высоту на" -" подвижном шасси. Оберегает хрупкие солнечные панели от потенциальной " -"опасности и повышает эффективность работы благодаря возможности " -"поворачиваться за солнцем. Однако конструкция становится непомерно тяжёлой." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" -msgstr[0] "массив мощных солнечных панелей" -msgstr[1] "массив мощных солнечных панелей" -msgstr[2] "массив мощных солнечных панелей" -msgstr[3] "массивы мощных солнечных панелей" - -#. ~ Description for {'str': 'upgraded solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able to track the sun. However, this comes" -" at the cost of being prohibitively heavy and obstructive." -msgstr "" -"Конструкция из дюжины мощных солнечных панелей нескольких метров в высоту на" -" подвижном шасси. Оберегает хрупкие солнечные панели от потенциальной " -"опасности и повышает эффективность работы благодаря возможности " -"поворачиваться за солнцем. Однако конструкция становится непомерно тяжёлой." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" -msgstr[0] "массив мощных усиленных солнечных панелей" -msgstr[1] "массив мощных усиленных солнечных панелей" -msgstr[2] "массив мощных усиленных солнечных панелей" -msgstr[3] "массивы мощных усиленных солнечных панелей" - -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded reinforced solar panels set on a chassis reaching several " -"meters high. It keeps the fragile panels safely away from any potential " -"threats and improves efficiency due to being able to track the sun. " -"However, this comes at the cost of being prohibitively heavy and " -"obstructive." -msgstr "" -"Конструкция из дюжины мощных усиленных солнечных панелей нескольких метров в" -" высоту на подвижном шасси. Оберегает хрупкие солнечные панели от " -"потенциальной опасности и повышает эффективность работы благодаря " -"возможности поворачиваться за солнцем. Однако конструкция становится " -"непомерно тяжёлой." - -#: lang/json/GENERIC_from_json.py -msgid "gelectrode" -msgid_plural "gelectrodes" -msgstr[0] "гелектрод" -msgstr[1] "гелектрода" -msgstr[2] "гелектродов" -msgstr[3] "гелектроды" - -#. ~ Description for {'str': 'gelectrode'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A strange biological anomaly, this blob seems capable of emitting light when" -" electricity is provided to it, from small lamps up to headlights. " -"Unfortunately there is no place to insert a battery, so you'll have to hook " -"it up to a vehicle's power grid. It seems pliable enough to pull apart…" -msgstr "" -"Необычная биологическая аномалия - этот сгусток, похоже, способен излучать " -"свет под воздействием электричества, будь то в маленькой лампе или в фаре. К" -" сожалению, батарею в него не воткнуть, так что придется подключать его к " -"автомобильной сети. Кажется, его можно растянуть на части руками…" - -#: lang/json/GENERIC_from_json.py -msgid "amorphous heart" -msgid_plural "amorphous hearts" -msgstr[0] "аморфное сердце" -msgstr[1] "аморфных сердца" -msgstr[2] "аморфных сердец" -msgstr[3] "аморфное сердце" - -#. ~ Description for {'str': 'amorphous heart'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This amorphous mass seems to have finished developing; its advanced internal" -" structures testifying to that. It is capable of locomotion through " -"internal hydraulic pressure, capable of moving substantial loads, and, in an" -" astounding display of intelligence, is capable of manipulating anything " -"it's attached to, whether blob-based or otherwise, through extended " -"pseudopods. You think you might be able to manipulate it, and through it, " -"all its attached parts. Though to do so you'll have to position yourself to" -" be in contact with it; and it appears unnervingly willing to accommodate " -"you…" -msgstr "" -"Эта аморфная масса, похоже, окончательно развилась; её усовершенствованные " -"внутренние структуры свидетельствуют об этом. Способна к передвижению " -"благодаря внутреннему гидравлическому давлению, способна двигать большие " -"грузы, и, показывая поразительный интеллект, способна управлять чем-либо " -"основанным на структуре сгустков, к чему присоединится или иным способом, с " -"помощью длинных ложноножек. Вы думаете, что смогли бы управлять этим, и " -"через него, всеми присоединёнными частями. Хотя сделав это, вы должны будете" -" присоединить себя тоже к общей массе; вам это кажется расслабляюще " -"желанным, вы мечтаете слиться в одно целое…" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond frame" -msgid_plural "diamond frames" -msgstr[0] "алмазная рама" -msgstr[1] "алмазные рамы" -msgstr[2] "алмазных рам" -msgstr[3] "алмазные рамы" - -#. ~ Description for {'str': 'diamond frame'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " -"weight." -msgstr "" -"Ослепительно сверкающий алмазный корпус автомобиля. Невероятно прочный для " -"своего веса." - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond plating" -msgid_plural "diamond platings" -msgstr[0] "алмазная пластина" -msgstr[1] "алмазных пластин" -msgstr[2] "алмазных пластин" -msgstr[3] "алмазные пластины" - -#. ~ Description for {'str': 'diamond plating'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A piece of armor plating made of clear diamond. Incredibly strong for its " -"weight." -msgstr "" -"Фрагмент брони, сделанный из чистого алмаза. Невероятно прочный для своего " -"веса." +"Тестовый ядерный графин, в котором атомные напитки становятся особенно " +"радиоактивными. Постоянно излучает радиацию." #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" @@ -80448,8 +80396,8 @@ msgid "" "sort items inside. It can overlap with Loot zones of different types." msgstr "" "Место для несортированной добычи. Вы можете использовать команду «сортировка" -" предметов» для сортировки вещей внутри. Оно может перекрывать зоны " -"предметов разных типов." +" предметов» для сортировки вещей внутри. Оно может перекрываться с зонами " +"других типов." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Food" @@ -80515,7 +80463,7 @@ msgstr "Предметы: огнестр. оружие" #. ~ Description for Loot: Guns #: lang/json/LOOT_ZONE_from_json.py msgid "Destination for guns, bows and similar weapons." -msgstr "Место для оружия, луков и прочих похожих вооружений." +msgstr "Место для оружия, луков и прочего похожего вооружения." #: lang/json/LOOT_ZONE_from_json.py msgid "Loot: Magazines" @@ -80751,10 +80699,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light battery" msgid_plural "ultra-light batteries" -msgstr[0] "ультралёгкая батарейка" -msgstr[1] "ультралёгких батарейки" -msgstr[2] "ультралёгких батареек" -msgstr[3] "ультралёгкие батарейки" +msgstr[0] "сверхмалая батарейка" +msgstr[1] "сверхмалые батарейки" +msgstr[2] "сверхмалых батареек" +msgstr[3] "сверхмалые батарейки" #. ~ Description for {'str': 'ultra-light battery', 'str_pl': 'ultra-light #. batteries'} @@ -80769,10 +80717,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light plutonium fuel battery" msgid_plural "ultra-light plutonium fuel batteries" -msgstr[0] "ультралёгкая плутониевая батарейка" -msgstr[1] "ультралёгких плутониевых батарейки" -msgstr[2] "ультралёгких плутониевых батареек" -msgstr[3] "ультралёгкие плутониевые батарейки" +msgstr[0] "сверхмалая плутониевая батарейка" +msgstr[1] "сверхмалые плутониевые батарейки" +msgstr[2] "сверхмалых плутониевых батареек" +msgstr[3] "сверхмалые плутониевые батарейки" #. ~ Description for {'str': 'ultra-light plutonium fuel battery', 'str_pl': #. 'ultra-light plutonium fuel batteries'} @@ -80789,10 +80737,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light disposable battery" msgid_plural "ultra-light disposable batteries" -msgstr[0] "ультралёгкая одноразовая батарейка" -msgstr[1] "ультралёгких одноразовых батарейки" -msgstr[2] "ультралёгких одноразовых батареек" -msgstr[3] "ультралёгкие одноразовые батарейки" +msgstr[0] "сверхмалая одноразовая батарейка" +msgstr[1] "сверхмалые одноразовые батарейки" +msgstr[2] "сверхмалых одноразовых батареек" +msgstr[3] "сверхмалые одноразовые батарейки" #. ~ Description for {'str': 'ultra-light disposable battery', 'str_pl': #. 'ultra-light disposable batteries'} @@ -80809,10 +80757,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light battery" msgid_plural "light batteries" -msgstr[0] "лёгкая батарейка" -msgstr[1] "лёгких батарейки" -msgstr[2] "лёгких батареек" -msgstr[3] "лёгкие батарейки" +msgstr[0] "малая батарейка" +msgstr[1] "малые батарейки" +msgstr[2] "малых батареек" +msgstr[3] "малые батарейки" #. ~ Description for {'str': 'light battery', 'str_pl': 'light batteries'} #: lang/json/MAGAZINE_from_json.py @@ -80824,10 +80772,10 @@ msgstr "Лёгкая батарейка, совместимая с любым м #: lang/json/MAGAZINE_from_json.py msgid "light battery (high-capacity)" msgid_plural "light batteries (high-capacity)" -msgstr[0] "лёгкая батарейка (ёмкая)" -msgstr[1] "лёгких батарейки (ёмких)" -msgstr[2] "лёгких батареек (ёмких)" -msgstr[3] "лёгкие батарейки (ёмкие)" +msgstr[0] "малая батарейка (повышенной емкости)" +msgstr[1] "малые батарейки (повышенной емкости)" +msgstr[2] "малых батареек (повышенной емкости)" +msgstr[3] "малые батарейки (повышенной емкости)" #. ~ Description for {'str': 'light battery (high-capacity)', 'str_pl': 'light #. batteries (high-capacity)'} @@ -80842,10 +80790,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light plutonium fuel battery" msgid_plural "light plutonium fuel batteries" -msgstr[0] "лёгкая плутониевая батарейка" -msgstr[1] "лёгких плутониевых батарейки" -msgstr[2] "лёгких плутониевых батареек" -msgstr[3] "лёгкие плутониевые батарейки" +msgstr[0] "малая плутониевая батарейка" +msgstr[1] "малые плутониевых батарейки" +msgstr[2] "малых плутониевых батареек" +msgstr[3] "малые плутониевые батарейки" #. ~ Description for {'str': 'light plutonium fuel battery', 'str_pl': 'light #. plutonium fuel batteries'} @@ -80863,10 +80811,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light disposable battery" msgid_plural "light disposable batteries" -msgstr[0] "лёгкая одноразовая батарейка" -msgstr[1] "лёгких одноразовых батарейки" -msgstr[2] "лёгких одноразовых батареек" -msgstr[3] "лёгкие одноразовые батарейки" +msgstr[0] "малая одноразовая батарейка" +msgstr[1] "малые одноразовых батарейки" +msgstr[2] "малых одноразовых батареек" +msgstr[3] "малые одноразовые батарейки" #. ~ Description for {'str': 'light disposable battery', 'str_pl': 'light #. disposable batteries'} @@ -80899,10 +80847,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "medium battery (high-capacity)" msgid_plural "medium batteries (high-capacity)" -msgstr[0] "средняя батарейка (ёмкая)" -msgstr[1] "средних батарейки (ёмких)" -msgstr[2] "средних батареек (ёмких)" -msgstr[3] "средние батарейки (ёмкие)" +msgstr[0] "средняя батарейка (повышенной емкости)" +msgstr[1] "средних батарейки (повышенной емкости)" +msgstr[2] "средних батареек (повышенной емкости)" +msgstr[3] "средние батарейки (повышенной емкости)" #. ~ Description for {'str': 'medium battery (high-capacity)', 'str_pl': #. 'medium batteries (high-capacity)'} @@ -80975,10 +80923,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "heavy battery (high-capacity)" msgid_plural "heavy batteries (high-capacity)" -msgstr[0] "тяжёлая батарейка (ёмкая)" -msgstr[1] "тяжёлых батарейки (ёмких)" -msgstr[2] "тяжёлых батареек (ёмких)" -msgstr[3] "тяжёлые батарейки (ёмкие)" +msgstr[0] "тяжёлая батарейка (повышенной емкости)" +msgstr[1] "тяжёлых батарейки (повышенной емкости)" +msgstr[2] "тяжёлых батареек (повышенной емкости)" +msgstr[3] "тяжёлые батарейки (повышенной емкости)" #. ~ Description for {'str': 'heavy battery (high-capacity)', 'str_pl': 'heavy #. batteries (high-capacity)'} @@ -81086,9 +81034,9 @@ msgid "" "can, spring and some duct tape it is awkward to reload and not especially " "reliable." msgstr "" -"Импровизированный магазин для гвоздестрела. Представляет собой чуть больше, " -"чем набор из жестяной банки, пружины и немного клейкой ленты. Его неудобно " -"перезаряжать, и он не особо надёжен." +"Импровизированный магазин для гвоздестрела. Представляет собой не более чем " +"сочетание жестяной банки, пружины и небольшого отреза монтажного скочта. Его" +" неудобно перезаряжать, и он не особо надёжен." #: lang/json/MAGAZINE_from_json.py msgid "ammo belt" @@ -81119,7 +81067,7 @@ msgid "" "A magazine for H&K G80 railgun which can hold up to 20 ferromagnetic " "projectiles." msgstr "" -"Магазин для рельсовой пушки H&K G80, содержащий до 20 ферромагнитных " +"Магазин для рельсовой пушки H&K G80, вмещающий до 20 ферромагнитных " "снарядов." #: lang/json/MAGAZINE_from_json.py @@ -81172,10 +81120,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid ".22 8-round speedloader" msgid_plural ".22 8-round speedloaders" -msgstr[0] ".22 обойма на 8 патронов" -msgstr[1] ".22 обоймы на 8 патронов" -msgstr[2] ".22 обойм на 8 патронов" -msgstr[3] ".22 обоймы на 8 патронов" +msgstr[0] "обойма на 8 патронов .22" +msgstr[1] "обоймы на 8 патронов .22" +msgstr[2] "обойм на 8 патронов .22" +msgstr[3] "обоймы на 8 патронов .22" #. ~ Description for {'str': '.22 8-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -82633,10 +82581,10 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid ".44 6-round speedloader" msgid_plural ".44 6-round speedloaders" -msgstr[0] "обойма .44 калибра на 6 патронов" -msgstr[1] "обоймы .44 калибра на 6 патронов" -msgstr[2] "обойм .44 калибра на 6 патронов" -msgstr[3] "обоймы .44 калибра на 6 патронов" +msgstr[0] "ускоритель заряжания .44 калибра на 6 патронов" +msgstr[1] "ускорителя заряжания .44 калибра на 6 патронов" +msgstr[2] "ускорителей заряжания .44 калибра на 6 патронов" +msgstr[3] "ускорители заряжания .44 калибра на 6 патронов" #. ~ Description for {'str': '.44 6-round speedloader'} #: lang/json/MAGAZINE_from_json.py @@ -82658,9 +82606,9 @@ msgstr[3] "магазины Desert Eagle" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." msgstr "" -"Стандартный стальной коробчатый магазин на 7 патронов для использования с " +"Стандартный стальной коробчатый магазин на 8 патронов для использования с " "IMI Desert Eagle." #: lang/json/MAGAZINE_from_json.py @@ -82852,10 +82800,10 @@ msgstr "Стальной коробчатый магазин на 9 патрон #: lang/json/MAGAZINE_from_json.py msgid ".454 5-round speedloader" msgid_plural ".454 5-round speedloaders" -msgstr[0] "обойма .454 калибра на 5 патронов" -msgstr[1] "обоймы .454 калибра на 5 патронов" -msgstr[2] "обойм .454 калибра на 5 патронов" -msgstr[3] "обоймы .454 калибра на 5 патронов" +msgstr[0] "ускоритель заряжания .454 калибра на 5 патронов" +msgstr[1] "ускорителя заряжания .454 калибра на 5 патронов" +msgstr[2] "ускорителей заряжания .454 калибра на 5 патронов" +msgstr[3] "ускорители заряжания .454 калибра на 5 патронов" #. ~ Description for {'str': '.454 5-round speedloader'} #. ~ Description for {'str': '.454 6-round speedloader'} @@ -83346,23 +83294,6 @@ msgstr "" "Коробчатый магазин на 50 патронов для использования в оружии от Ривтех, " "калибр 8х40 мм безгильзовые." -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "ускоритель заряжания RMGS5 8х40 мм" -msgstr[1] "ускорителя заряжания RMGS5 8х40 мм" -msgstr[2] "ускорителей заряжания RMGS5 8х40 мм" -msgstr[3] "ускорители заряжания RMGS5 8х40 мм" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "" -"Эта обойма производства Ривтех для быстрой перезарядки револьвера RM99 " -"вмещает 5 безгильзовых патронов калибра 8x40 мм." - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" @@ -84096,7 +84027,7 @@ msgid_plural "car batteries" msgstr[0] "автоаккумулятор" msgstr[1] "автоаккумулятора" msgstr[2] "автоаккумуляторов" -msgstr[3] "автоаккумулятор" +msgstr[3] "автоаккумуляторы" #. ~ Description for {'str': 'car battery', 'str_pl': 'car batteries'} #: lang/json/MAGAZINE_from_json.py @@ -84111,7 +84042,7 @@ msgid_plural "motorbike batteries" msgstr[0] "мотоаккумулятор" msgstr[1] "мотоаккумулятора" msgstr[2] "мотоаккумуляторов" -msgstr[3] "мотоаккумулятор" +msgstr[3] "мотоаккумуляторы" #. ~ Description for {'str': 'motorbike battery', 'str_pl': 'motorbike #. batteries'} @@ -84167,7 +84098,7 @@ msgid_plural "medium storage batteries" msgstr[0] "средний аккумулятор" msgstr[1] "средних аккумулятора" msgstr[2] "средних аккумуляторов" -msgstr[3] "средний аккумулятор" +msgstr[3] "средние аккумуляторы" #. ~ Description for {'str': 'medium storage battery', 'str_pl': 'medium #. storage batteries'} @@ -84182,7 +84113,7 @@ msgid_plural "small storage batteries" msgstr[0] "маленький аккумулятор" msgstr[1] "маленьких аккумулятора" msgstr[2] "маленьких аккумуляторов" -msgstr[3] "маленький аккумулятор" +msgstr[3] "маленькие аккумуляторы" #. ~ Description for {'str': 'small storage battery', 'str_pl': 'small storage #. batteries'} @@ -84200,7 +84131,7 @@ msgid_plural "storage batteries" msgstr[0] "аккумулятор" msgstr[1] "аккумулятора" msgstr[2] "аккумуляторов" -msgstr[3] "аккумулятор" +msgstr[3] "аккумуляторы" #. ~ Description for {'str': 'storage battery', 'str_pl': 'storage batteries'} #: lang/json/MAGAZINE_from_json.py @@ -84219,156 +84150,13 @@ msgid_plural "fuel bunkers" msgstr[0] "топливный бункер" msgstr[1] "топливных бункера" msgstr[2] "топливных бункеров" -msgstr[3] "топливные бункера" +msgstr[3] "топливные бункеры" #. ~ Description for {'str': 'fuel bunker'} #: lang/json/MAGAZINE_from_json.py msgid "A bin for holding solid fuel." msgstr "Контейнер для загрузки твёрдого топлива." -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 auto-magazine" -msgid_plural "CW-24 auto-magazines" -msgstr[0] "автомагазин CW-24" -msgstr[1] "автомагазина CW-24" -msgstr[2] "автомагазинов CW-24" -msgstr[3] "автомагазины CW-24" - -#. ~ Description for CW-24 auto-magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Расширенный автомагазин для винтовки CW-24. Как и в магазинах SVS, для " -"зарядки патрона используется автоматический механизм." - -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 extended magazine" -msgid_plural "CW-24 extended magazines" -msgstr[0] "увеличенный магазин CW-24" -msgstr[1] "увеличенных магазина CW-24" -msgstr[2] "увеличенных магазинов CW-24" -msgstr[3] "увеличенные магазины CW-24" - -#. ~ Description for CW-24 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "" -"Увеличенный автомагазин для винтовки CW-24. Как и в магазинах SVS, для " -"зарядки патрона используется автоматический механизм." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 extended magazine" -msgid_plural "CWD-63 extended magazines" -msgstr[0] "увеличенный магазин CWD-63" -msgstr[1] "увеличенных магазина CWD-63" -msgstr[2] "увеличенных магазинов CWD-63" -msgstr[3] "увеличенные магазины CWD-63" - -#. ~ Description for CWD-63 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." -msgstr "Коробчатый магазин на 10 патронов для CWD-63. Не такой уж надёжный." - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 magazine" -msgid_plural "CWD-63 magazines" -msgstr[0] "магазин CWD-63" -msgstr[1] "магазина CWD-63" -msgstr[2] "магазинов CWD-63" -msgstr[3] "магазины CWD-63" - -#. ~ Description for CWD-63 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"Since it's created for the .308 round, it doesn't need the curved shape of " -"the original magazine." -msgstr "" -"Так как он был создан для патронов калибра .308, он не имеет изогнутой формы" -" оригинального магазина." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robodrum" -msgid_plural "SVS-24 robodrums" -msgstr[0] "автобарабан для SVS-24" -msgstr[1] "автобарабана для SVS-24" -msgstr[2] "автобарабанов для SVS-24" -msgstr[3] "автобарабаны для SVS-24" - -#. ~ Description for SVS-24 robodrum -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 135-round drum magazine. Like the auto-magazine, it loads " -"cartridges using microrobotics." -msgstr "" -"Расширенный барабанный магазин на 135 патронов. Как и другие автомагазины, " -"перезарядка патронов в нём осуществляется с помощью автоматического " -"механизма." - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robomag" -msgid_plural "SVS-24 robomags" -msgstr[0] "автомагазин для SVS-24" -msgstr[1] "автомагазина для SVS-24" -msgstr[2] "автомагазинов для SVS-24" -msgstr[3] "автомагазины для SVS-24" - -#. ~ Description for SVS-24 robomag -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 42-round auto-magazine. Unlike previous generations of " -"magazines, this one uses microrobotics to load cartridges." -msgstr "" -"Расширенный барабанный магазин на 135 патронов. В отличие от предыдущих " -"версий магазинов, перезарядка патронов в нём осуществляется с помощью " -"автоматического механизма." - -#. ~ Description for .454 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 6 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" -"Эта обойма для быстрой перезарядки совместимого револьвера вмещает 6 " -"патронов калибра .454." - -#: lang/json/MAGAZINE_from_json.py -msgid ".454 8-round speedloader" -msgid_plural ".454 8-round speedloaders" -msgstr[0] "ускоритель заряжания .454 на 8 патронов" -msgstr[1] "ускорителя заряжания .454 на 8 патронов" -msgstr[2] "ускорителей заряжания .454 на 8 патронов" -msgstr[3] "ускорители заряжания .454 на 8 патронов" - -#. ~ Description for .454 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 8 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "" -"Эта обойма для быстрой перезарядки совместимого револьвера вмещает 8 " -"патронов калибра .454." - -#: lang/json/MAGAZINE_from_json.py -msgid "Eagle 1776 magazine" -msgid_plural "Eagle 1776 magazines" -msgstr[0] "магазин Eagle 1776" -msgstr[1] "магазина Eagle 1776" -msgstr[2] "магазинов Eagle 1776" -msgstr[3] "магазины Eagle 1776" - -#. ~ Description for Eagle 1776 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " -"to the Eagle 1776." -msgstr "" -"Коробчатый магазин американского производства, рассчитан на 24 патрона " -"калибра .44 Магнум для использования с Eagle 1776." - #: lang/json/MAGAZINE_from_json.py msgid "grenade machine gun belt" msgid_plural "grenade machine gun belts" @@ -84630,84 +84418,32 @@ msgstr "" "кончику волшебной палочки." #: lang/json/MAGAZINE_from_json.py -msgid "30x113mm ammo belt" -msgid_plural "30x113mm ammo belts" -msgstr[0] "патронная лента 30x113 мм" -msgstr[1] "патронные ленты 30x113 мм" -msgstr[2] "патронных лент 30x113 мм" -msgstr[3] "патронные ленты 30x113 мм" - -#: lang/json/MAGAZINE_from_json.py -msgid "BB hopper" -msgid_plural "BB hoppers" -msgstr[0] "бункер для пулек " -msgstr[1] "бункеры для пулек " -msgstr[2] "бункеров для пулек " -msgstr[3] "бункеры для пулек " - -#. ~ Description for {'str': 'BB hopper'} -#. ~ Description for {'str': 'pebble hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"small round shot into the weapon's chamber below. It is not very reliable, " -"but quick to reload." -msgstr "" -"Импровизированный магазин для оружия, монтируемого на автомобиль. Простая " -"металлическая коробка с пластиковыми направляющими, действует благодаря силе" -" тяжести через воронку бункера, вниз в камеру оружия поступает маленькая " -"круглая пулька. Не очень надёжный, но быстро перезаряжает оружие." - -#: lang/json/MAGAZINE_from_json.py -msgid "bolt hopper" -msgid_plural "bolt hoppers" -msgstr[0] "бункер для болтов" -msgstr[1] "бункера для болтов" -msgstr[2] "бункеров для болтов" -msgstr[3] "бункеры для болтов" - -#. ~ Description for {'str': 'bolt hopper'} +msgid "test disposable battery" +msgid_plural "test disposable batteries" +msgstr[0] "тестовая одноразовая батарейка" +msgstr[1] "тестовые одноразовые батарейки" +msgstr[2] "тестовых одноразовых батареек" +msgstr[3] "тестовые одноразовые батарейки" + +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test +#. disposable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted crossbow. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"crossbow bolt into the weapon below. It is awkward to reload and not " -"especially reliable." -msgstr "" -"Импровизированный магазин для арбалета, монтируемого на автомобиль. Простая " -"металлическая коробка с пластиковыми направляющими, действует благодаря силе" -" тяжести, через воронку бункера вниз в паз оружия поступает арбалетный болт." -" Неудобно заряжать и не особенно надёжный." +msgid "This is a test disposable battery." +msgstr "Тестовая одноразовая батарейка." #: lang/json/MAGAZINE_from_json.py -msgid "canister rack" -msgid_plural "canister racks" -msgstr[0] "стойка для боеголовок" -msgstr[1] "стойки для боеголовок" -msgstr[2] "стоек для боеголовок" -msgstr[3] "стойки для боеголовок" - -#. ~ Description for {'str': 'canister rack'} +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" +msgstr[0] "тестовый электрический аккумулятор" +msgstr[1] "тестовых электрических аккумулятора" +msgstr[2] "тестовых электрических аккумуляторов" +msgstr[3] "тестовые электрические аккумуляторы" + +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test +#. rechargeable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"heavy canister into the weapon below. It is awkward to reload and not " -"especially reliable." -msgstr "" -"Импровизированный магазин для оружия, монтируемого на автомобиль. Простая " -"металлическая коробка с пластиковыми направляющими, действует благодаря силе" -" тяжести, через воронку бункера вниз в камеру оружия поступает тяжёлая " -"боеголовка. Неудобно заряжать и не очень надёжный." - -#: lang/json/MAGAZINE_from_json.py -msgid "pebble hopper" -msgid_plural "pebble hoppers" -msgstr[0] "бункер для гальки " -msgstr[1] "бункера для гальки " -msgstr[2] "бункеров для гальки " -msgstr[3] "бункеры для гальки " +msgid "This is a test battery that may be recharged." +msgstr "Тестовая батарея, которую можно зарядить." #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" @@ -84730,32 +84466,32 @@ msgstr "" "фантастичности." #: lang/json/MOD_INFO_from_json.py -msgid "C.R.I.T Expansion Mod" -msgstr "Мод с дополнением К.Р.И.Т" +msgid "Blaze Industries" +msgstr "Blaze Industries" -#. ~ Description for C.R.I.T Expansion Mod +#. ~ Description for Blaze Industries #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds a plethora of content: professions, guns/mods, WIP enemies, mutations, " -"martial arts, melee weapons, and some QOL changes such as plants from " -"cutting grass." +"Introduces the fictional corporation Blaze Industries, bringing advanced " +"vehicle modification to the consumer." msgstr "" -"Добавляет кучу всего: профессии, оружие и модификации, противников, мутации," -" боевые искусства и некоторые полезные вещи вроде растений от срезания " -"травы." +"Добавляет вымышленную корпорацию Blaze Industries, предоставляющую своим " +"клиентам расширенные модификации для транспорта." #: lang/json/MOD_INFO_from_json.py -msgid "Craftable Gun Pack" -msgstr "Набор самодельного оружия" +msgid "C.R.I.T Expansion Mod" +msgstr "Расширение К.Р.И.Т." -#. ~ Description for Craftable Gun Pack +#. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " -"balance." +"Adds a plethora of content: professions, guns/mods/weapons, WIP mobs, " +"mutations, MA styles, and some QOL innawoods changes. Use the readme to see " +"more details!" msgstr "" -"Добавляет больше создаваемого огнестрельного оружия и пороха. ОСТОРОЖНО: " -"Ломает намеченный баланс." +"Добавляет кучу всего: профессии, пушки, оружие и модификации, противников, " +"мутации, боевые искусства и некоторые изменения для большего удобства игры. " +"Прочитайте readme для полного списка!" #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" @@ -84779,19 +84515,6 @@ msgstr "" "Полноценная модификация игры, меняющая фокус Катаклизма на вторжение и " "инопланетную оккупацию в духе XCOM 2. Используйте на свой страх и риск!" -#: lang/json/MOD_INFO_from_json.py -msgid "Folding Parts pack" -msgstr "Набор складных деталей" - -#. ~ Description for Folding Parts pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Makes solar panels and several other parts foldable, and adds foldable " -"quarterboards." -msgstr "" -"Делает солнечные панели и некоторые другие приспособления складными, " -"добавляет складные кузова." - #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" msgstr "ДиноМод" @@ -84804,36 +84527,14 @@ msgstr "" "Мод, добавляющий динозавров. На некоторых можно ездить верхом, прочие не " "столь дружелюбны. Жизнь найдет путь." -#: lang/json/MOD_INFO_from_json.py -msgid "Icecoon's Arsenal" -msgstr "Арсенал Icecoon'а" - -#. ~ Description for Icecoon's Arsenal -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those gun nuts. Don't have enough near-future firearms in your life? " -"Add this mod today!" -msgstr "" -"Для помешанных на оружии. Не хватает продвинутого огнестрела? Включай этот " -"мод!" - -#: lang/json/MOD_INFO_from_json.py -msgid "DeadLeaves' Fictional Guns" -msgstr "Вымышленное оружие от DeadLeaves" - -#. ~ Description for DeadLeaves' Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a bunch of rare, fictional weapons." -msgstr "Добавляет набор редких видов вымышленного оружия." - #: lang/json/MOD_INFO_from_json.py msgid "Fuji's Military Profession Pack" -msgstr "Пак военных профессий от Fuji" +msgstr "Набор военных профессий от Fuji" #. ~ Description for Fuji's Military Profession Pack #: lang/json/MOD_INFO_from_json.py msgid "Numerous military themed professions" -msgstr "Различные военно-тематические звания и профессии" +msgstr "Различные профессии военной тематики" #: lang/json/MOD_INFO_from_json.py msgid "Fuji's More Buildings" @@ -84850,7 +84551,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Generic Guns" -msgstr "Обобщённое оружие" +msgstr "Упрощенное огнестрельное оружие" #. ~ Description for Generic Guns #: lang/json/MOD_INFO_from_json.py @@ -84858,7 +84559,7 @@ msgid "" "Replaces guns and ammo with generic types. Warning: can cause issues with " "other gun mods." msgstr "" -"Заменяет оружие и патроны для него обобщёнными наименованиями. Внимание: " +"Заменяет оружие и патроны для него упрощенными наименованиями. Внимание: " "может вызывать проблемы при использовании совместно с другими оружейными " "модами." @@ -84872,7 +84573,7 @@ msgid "" "Gives the overmap a graphical overhaul. Please refer to readme for " "installation." msgstr "" -"Переработка карты в графический вид. Пожалуйста, обратитесь к readme для " +"Переработка графического оформления карты. Пожалуйста, изучите readme для " "установки." #: lang/json/MOD_INFO_from_json.py @@ -84884,6 +84585,15 @@ msgstr "Графическая карта — Здания Fuji" msgid "Fuji Structures mod support for Graphical Overmap." msgstr "Поддержка мода здания Fuji для графической карты." +#: lang/json/MOD_INFO_from_json.py +msgid "Graphical Overmap Magiclysm" +msgstr "Графическая карта - Маглицизм" + +#. ~ Description for Graphical Overmap Magiclysm +#: lang/json/MOD_INFO_from_json.py +msgid "Magiclysm support for Graphical Overmap." +msgstr "Поддержка мода Маглицизм для графической карты." + #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap More Locations" msgstr "Графическая карта — Больше локаций" @@ -84902,43 +84612,6 @@ msgstr "Графическая карта — Городская застрой msgid "Urban Development mod support for Graphical Overmap." msgstr "Поддержка мода Городская застройка для графической карты." -#: lang/json/MOD_INFO_from_json.py -msgid "Garden Pots" -msgstr "Садовые Горшки" - -#. ~ Description for Garden Pots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Allows you to grow seeds in craftable garden pots that can be carried around" -" as items. Perfect for the nomadic botanist." -msgstr "" -"Позволяет сажать семена в изготовляемые садовые горшки, которые можно носить" -" с собой как вещи. Идеально для ботаника-кочевника." - -#: lang/json/MOD_INFO_from_json.py -msgid "Roadheader and other mining vehicles" -msgstr "Горнопроходчик и шахтёрская техника" - -#. ~ Description for Roadheader and other mining vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a few mining vehicles, requires Vehicle Additions Pack." -msgstr "Добавляет шахтёрскую технику, требует Набор дополнений для машин." - -#: lang/json/MOD_INFO_from_json.py -msgid "Hydroponics" -msgstr "Гидропоника" - -#. ~ Description for Hydroponics -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds hydroponic units, a furniture which can have crops planted in it for " -"increased yields. Spawn occasionally in labs or basements. Or build your " -"own." -msgstr "" -"Добавляет блок гидропоники — место, в котором раз в сезон можно выращивать " -"урожай. Иногда попадается в лабораториях или подвалах. Или постройте его " -"сами." - #: lang/json/MOD_INFO_from_json.py msgid "Mythical Martial Arts" msgstr "Мифические стили ближнего боя" @@ -84954,48 +84627,13 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Magiclysm" -msgstr "Колдоклизм" +msgstr "Магиклизм" #. ~ Description for Magiclysm #: lang/json/MOD_INFO_from_json.py msgid "Cataclysm but with magic spells!" msgstr "Катаклизм с волшебными заклинаниями!" -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "Ручная установка бионик" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "" -"Разрешает ручную установку бионик. Хорошо работает в паре с модом на " -"безопасный автодок." - -#: lang/json/MOD_INFO_from_json.py -msgid "Medieval and Historic Classes and Shields" -msgstr "Средневековые и исторические классы и щиты" - -#. ~ Description for Medieval and Historic Classes and Shields -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Assorted fun classes and shields for the wannabe knight, legionary, and " -"more." -msgstr "Разные забавные классы и щиты для рыцарей, легионеров и прочих." - -#: lang/json/MOD_INFO_from_json.py -msgid "Modular Turrets" -msgstr "Модульные турели" - -#. ~ Description for Modular Turrets -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Gives turrets swappable firearm modules, which can be reclaimed from broken " -"robots." -msgstr "" -"Позволяет турелям использовать заменяемые модули вооружения, которые можно " -"получить из сломанных роботов." - #: lang/json/MOD_INFO_from_json.py msgid "More Locations" msgstr "Больше локаций" @@ -85006,32 +84644,10 @@ msgid "" "Adds new Z-level buildings and dungeons. Still unpolished. Before " "generating a world, you can remove subfolders to nix unwanted locations." msgstr "" -"Добавляет новые здания с Z-уровнем и подземелья. Работа всё ещё не " +"Добавляет новые здания с Z-уровнями и подземелья. Работа всё ещё не " "завершена. Перед генерацией мира вы можете удалить подкаталоги, чтобы " "исключить ненужные вам локации." -#: lang/json/MOD_INFO_from_json.py -msgid "More Survival Tools" -msgstr "Доп. инструменты для выживания" - -#. ~ Description for More Survival Tools -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those who prefer being innawoods. Adds several tools, various recipes " -"additions/tweaks, plus two new professions." -msgstr "" -"Для тех, кто предпочитает жить глубоко в лесах. Добавляет несколько " -"инструментов, новые рецепты и правки старых, плюс две новые профессии." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mundane Zombies" -msgstr "Обычные зомби" - -#. ~ Description for Mundane Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all special zombies from the game." -msgstr "Убирает из игры всех необычных зомби." - #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" msgstr "NPC-мутанты" @@ -85062,18 +84678,9 @@ msgstr "" "сопровождаемого верной ручной вафлей, или можете на них охотиться ради " "сладкой добычи." -#: lang/json/MOD_INFO_from_json.py -msgid "Mythological Replicas" -msgstr "Мифологическое оружие" - -#. ~ Description for Mythological Replicas -#: lang/json/MOD_INFO_from_json.py -msgid "Adds recipes for replicas of mythological weapons." -msgstr "Добавляет рецепты мифологического оружия." - #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" -msgstr "Бета Лагерь Национальной Гвардии" +msgstr "Лагерь Национальной Гвардии Бета" #. ~ Description for Beta National Guard Camp #: lang/json/MOD_INFO_from_json.py @@ -85084,71 +84691,6 @@ msgstr "" "Помогите протестировать лагерь национальной гвардии до его включения в " "основную игру. Оставляйте свои отзывы на форуме в разделе «The Lab»" -#: lang/json/MOD_INFO_from_json.py -msgid "No Acid Zombies" -msgstr "Без кислотных зомби" - -#. ~ Description for No Acid Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all acid-based zombies from the game." -msgstr "Убирает из игры всех зомби с кислотой." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Ants" -msgstr "Без Муравьёв" - -#. ~ Description for No Ants -#: lang/json/MOD_INFO_from_json.py -msgid "Removes ants and anthills from the game" -msgstr "Убирает из игры муравьёв и муравейники." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Bees" -msgstr "Без Пчёл" - -#. ~ Description for No Bees -#: lang/json/MOD_INFO_from_json.py -msgid "Removes bees and beehives from the game" -msgstr "Убирает из игры пчёл и пчелиные ульи." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Big Zombies" -msgstr "Без Больших Зомби" - -#. ~ Description for No Big Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " -"game." -msgstr "Удаляет из игры амбалов-шокеров, халков и скелетов-джаггернаутов." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Explosive Zombies" -msgstr "Без взрывающихся зомби" - -#. ~ Description for No Explosive Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all explosion-based zombies from the game." -msgstr "Убирает из игры всех взрывающихся зомби." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Filthy Clothing" -msgstr "Без грязной одежды" - -#. ~ Description for No Filthy Clothing -#: lang/json/MOD_INFO_from_json.py -msgid "Clothes dropped by zombies will be completely clean." -msgstr "С зомби будет падать совершенно чистая одежда." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Flaming Weapons" -msgstr "Без пылающего оружия" - -#. ~ Description for No Flaming Weapons -#: lang/json/MOD_INFO_from_json.py -msgid "Removes flaming melee weapons." -msgstr "Убирает горящее оружие ближнего боя." - #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" msgstr "Без фунгалоидов" @@ -85158,24 +84700,6 @@ msgstr "Без фунгалоидов" msgid "Removes fungal monsters and regions from the game." msgstr "Убирает из игры фунгалоидов и связанные с ними регионы." -#: lang/json/MOD_INFO_from_json.py -msgid "No Medieval Items" -msgstr "Без средневековых вещей" - -#. ~ Description for No Medieval Items -#: lang/json/MOD_INFO_from_json.py -msgid "Removes medieval weapons, armors, and specific books." -msgstr "Убирает средневековое оружие и броню, а также соответствующие книги." - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Mutagens" -msgstr "Отключить мутагены" - -#. ~ Description for Disable Mutagens -#: lang/json/MOD_INFO_from_json.py -msgid "Removes mutagen items from the game." -msgstr "Убирает из игры мутагены." - #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" msgstr "Отключить потребности у NPC" @@ -85185,16 +84709,6 @@ msgstr "Отключить потребности у NPC" msgid "Makes NPCs not require food, water or rest." msgstr "NPC не требуется пища, вода или отдых." -#: lang/json/MOD_INFO_from_json.py -msgid "No Antique Firearms" -msgstr "Без антикварного огнестрела" - -#. ~ Description for No Antique Firearms -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all black powder and pre-Cold War firearms." -msgstr "" -"Убирает всё оружие с чёрным порохом и оружие до времён Холодной Войны." - #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" msgstr "Без ж/д станций" @@ -85204,42 +84718,6 @@ msgstr "Без ж/д станций" msgid "Removes above-ground rail stations from the game." msgstr "Удаляет из игры надземные железнодорожные станции." -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Religious Texts" -msgstr "Отключить религиозные писания" - -#. ~ Description for Disable Religious Texts -#: lang/json/MOD_INFO_from_json.py -msgid "Removes religious text items from the game." -msgstr "Убирает из игры религиозные книги." - -#: lang/json/MOD_INFO_from_json.py -msgid "Prevent Zombie Revivication" -msgstr "Запрет перерождения зомби" - -#. ~ Description for Prevent Zombie Revivication -#: lang/json/MOD_INFO_from_json.py -msgid "Disables zombie revival." -msgstr "Отключает возрождение зомби." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Fictional Guns" -msgstr "Без вымышленного оружия" - -#. ~ Description for No Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Removes fictional conventional firearms and ammunition." -msgstr "Убирает вымышленное конвенционное оружие и боеприпасы к нему." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Survivor Armor" -msgstr "Без брони выживальщика" - -#. ~ Description for No Survivor Armor -#: lang/json/MOD_INFO_from_json.py -msgid "Removes survivor armor." -msgstr "Убирает броню выживальщика." - #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" msgstr "Без монстров" @@ -85252,42 +84730,6 @@ msgstr "" "Удаляет из игры всех монстров, кроме тех, которые относятся к категории " "WILDLIFE." -#: lang/json/MOD_INFO_from_json.py -msgid "Classic Roguelike Classes" -msgstr "Классические roguelike-персонажи" - -#. ~ Description for Classic Roguelike Classes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a set of professions which correspond to classic Roguelike character " -"archetypes." -msgstr "" -"Добавляет набор профессий, соответствующих классическим архетипам персонажей" -" roguelike-игр." - -#: lang/json/MOD_INFO_from_json.py -msgid "Salvaged Robots" -msgstr "Ремонт роботов" - -#. ~ Description for Salvaged Robots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Expands the types of robots and allows players to jury-rig broken robots " -"into functioning companions." -msgstr "" -"Расширяет типы существующих роботов и позволяет игрокам переоснащать " -"сломанных роботов в действующих компаньонов-союзников." - -#: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp -msgid "Sleep Deprivation" -msgstr "Без сна" - -#. ~ Description for Sleep Deprivation -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Enables sleep deprivation mechanics independently of a player's fatigue." -msgstr "Включает механику недостатка сна независимо от усталости игрока." - #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Skills" msgstr "Характеристики за навыки" @@ -85295,7 +84737,7 @@ msgstr "Характеристики за навыки" #. ~ Description for Stats Through Skills #: lang/json/MOD_INFO_from_json.py msgid "Allows stats to raise via skill progression." -msgstr "Позволяет характеристикам повышаться при прогрессе в навыках." +msgstr "Позволяет характеристикам повышаться при росте навыков." #: lang/json/MOD_INFO_from_json.py msgid "TESTING DATA" @@ -85309,32 +84751,6 @@ msgstr "" "Добавляет абстрактные предметы, рецепты и прочее, необходимое для " "автоматических тестов." -#: lang/json/MOD_INFO_from_json.py -msgid "Tanks and Other Vehicles" -msgstr "Танки и другой транспорт" - -#. ~ Description for Tanks and Other Vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a few armored fighting vehicles and other such things, requires Vehicle" -" Additions Pack." -msgstr "" -"Добавляет несколько видов бронированного военизированного транспорта, " -"требует Набор дополнений для машин." - -#: lang/json/MOD_INFO_from_json.py -msgid "Bens GF recipes" -msgstr "Безглютеновые рецепты от Бена" - -#. ~ Description for Bens GF recipes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Some simple gluten free and lactose free alternative recipe options. NOT " -"EXHAUSTIVE." -msgstr "" -"Несколько альтернативных простых рецептов без глютена и без лактозы. НЕ " -"ПОЛНЫЙ СПИСОК." - #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" msgstr "Городская застройка" @@ -85344,15 +84760,6 @@ msgstr "Городская застройка" msgid "Holder for suburban and urban buildings." msgstr "Добавляет городские и пригородные строения." -#: lang/json/MOD_INFO_from_json.py -msgid "Zombie Nightvision" -msgstr "Ночное зрение зомби" - -#. ~ Description for Zombie Nightvision -#: lang/json/MOD_INFO_from_json.py -msgid "Gives all zombies perfect nightvision." -msgstr "Все зомби получают идеальное ночное зрение." - #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" msgstr "Альтернативные символы карты" @@ -85367,19 +84774,6 @@ msgstr "" "зависимости от их типа и используют первую букву своего названия вместо " "^v<>." -#: lang/json/MOD_INFO_from_json.py -msgid "Vehicle Additions Pack" -msgstr "Набор дополнений для машин" - -#. ~ Description for Vehicle Additions Pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Please see the included PAQ.txt in the mod folder if you encounter any " -"issues." -msgstr "" -"Если у вас возникнут вопросы, пожалуйста, посмотрите вложенный PAQ.txt в " -"папке с модам." - #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" msgstr "Слоты для бионики" @@ -85434,78 +84828,6 @@ msgstr "" "Пробный/ещё разрабатываемый мод для демонстрации изменений JSON в " "regional_map_settings." -#: lang/json/MOD_INFO_from_json.py -msgid "EZ-Mode Medical" -msgstr "Ускоренное лечение" - -#. ~ Description for EZ-Mode Medical -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Increases broken limb mending speed and the effectiveness of healing items." -msgstr "" -"Повышает скорость восстановления сломанных конечностей и эффективность " -"лечебных предметов." - -#: lang/json/MOD_INFO_from_json.py -msgid "Makeshift Items Mod" -msgstr "Мод на самодельные вещи" - -#. ~ Description for Makeshift Items Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds more improvised item variants and rebalances existing ones." -msgstr "" -"Добавляет больше вариантов самодельных вещей и меняет баланс уже " -"существующих предметов." - -#: lang/json/MOD_INFO_from_json.py -msgid "Mapgen Demo" -msgstr "Генерация карты демо" - -#. ~ Description for Mapgen Demo -#: lang/json/MOD_INFO_from_json.py -msgid "Demo for JSONized mapgens (megastore, missile silo)." -msgstr "Демо-версия JSON-изированных локаций (супермаркет, ракетная шахта)." - -#: lang/json/MOD_INFO_from_json.py -msgid "Classes and Scenarios Mod" -msgstr "Мод на классы и сценарии" - -#. ~ Description for Classes and Scenarios Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds new classes and scenarios while rebalancing some existing ones." -msgstr "Добавляет новые классы и сценарии и ребалансирует некоторые старые." - -#: lang/json/MOD_INFO_from_json.py -msgid "Necromancy" -msgstr "Некромантия" - -#. ~ Description for Necromancy -#: lang/json/MOD_INFO_from_json.py -msgid "Adds the ability to revive creatures as minions." -msgstr "" -"Добавляет возможность возрождать существ в качестве своих приспешников." - -#: lang/json/MOD_INFO_from_json.py -msgid "No Sci-Fi Equipment" -msgstr "Без фантастического снаряжения" - -#. ~ Description for No Sci-Fi Equipment -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes far-future Sci-Fi items such as powered armor and energy weapons." -msgstr "" -"Убирает предметы из далёкого будущего (силовая броня, энергетическое оружие " -"и т. п.)" - -#: lang/json/MOD_INFO_from_json.py -msgid "Simplified Nutrition" -msgstr "Упрощённое питание" - -#. ~ Description for Simplified Nutrition -#: lang/json/MOD_INFO_from_json.py -msgid "Disables vitamin requirements." -msgstr "Отключает комплексную систему витаминов." - #: lang/json/MOD_INFO_from_json.py msgid "Rural-Only Mapgen" msgstr "Генерация карты без городов" @@ -85547,7 +84869,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "SpeedyDex" -msgstr "Быстроловкость" +msgstr "Скорость от ловкости" #. ~ Description for SpeedyDex #: lang/json/MOD_INFO_from_json.py @@ -85590,7 +84912,7 @@ msgid_plural "grouses" msgstr[0] "тетерев" msgstr[1] "тетерева" msgstr[2] "тетеревов" -msgstr[3] "тетеревы" +msgstr[3] "тетерева" #. ~ Description for {'str': 'grouse'} #: lang/json/MONSTER_from_json.py @@ -85778,8 +85100,8 @@ msgid "" " in its eyes." msgstr "" "Тело робота с головой человека, в которую имплантированы всевозможные " -"провода и устройства. Многие участки кожи выглядят больными или гниющими. " -"Киборг движется с перебоями, а его взгляд дезориентирован и невменяем." +"провода и устройства. Оставшиеся участки кожи выглядят болезненно или гниют." +" Киборг движется с перебоями, а его взгляд дезориентирован и невменяем." #: lang/json/MONSTER_from_json.py msgid "prototype cyborg" @@ -85826,10 +85148,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "riot control bot" msgid_plural "riot control bots" -msgstr[0] "робот осназа" -msgstr[1] "робота осназа" -msgstr[2] "роботов осназа" -msgstr[3] "роботы осназа" +msgstr[0] "робот подавления беспорядков" +msgstr[1] "робота подавления беспорядков" +msgstr[2] "роботов подавления беспорядков" +msgstr[3] "роботы подавления беспорядков" #. ~ Description for {'str': 'riot control bot'} #: lang/json/MONSTER_from_json.py @@ -85890,7 +85212,6 @@ msgstr[2] "роботов-жуков" msgstr[3] "роботы-жуки" #. ~ Description for {'str': 'skitterbot'} -#. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py msgid "" "An insectoid robot the size of a small dog, designed for home security. " @@ -87192,8 +86513,8 @@ msgstr[3] "грибные джаггернауты" #: lang/json/MONSTER_from_json.py msgid "" "Fungi bloom from the crevices in the ossified plates of this ponderous bone " -"titan, and it seems even it's eyes are lost to it. A dust of spores lands " -"on the ground with every sluggish stomp of it's heavy legs." +"titan, and it seems even its eyes are lost to it. A dust of spores lands on" +" the ground with every sluggish stomp of its heavy legs." msgstr "" "Грибы прорастают из трещин в костяных пластинах и даже из глаз этого " "неуклюжего титана. С каждым неспешным шагом тяжёлых ног на землю оседает " @@ -87205,7 +86526,7 @@ msgid_plural "fungal children" msgstr[0] "грибёнок" msgstr[1] "грибёнка" msgstr[2] "грибёнков" -msgstr[3] "грибёнок" +msgstr[3] "грибёнки" #. ~ Description for {'str': 'fungal child', 'str_pl': 'fungal children'} #: lang/json/MONSTER_from_json.py @@ -87328,10 +86649,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skittering plague" msgid_plural "skittering plagues" -msgstr[0] "бегущая чума" -msgstr[1] "бегущих чумы" -msgstr[2] "бегущих чумы" -msgstr[3] "бегущая чума" +msgstr[0] "чумной таракан" +msgstr[1] "чумных таракана" +msgstr[2] "чумных тараканов" +msgstr[3] "чумные тараканы" #. ~ Description for {'str': 'skittering plague'} #: lang/json/MONSTER_from_json.py @@ -87341,10 +86662,10 @@ msgstr "Гигантский заражённый таракан, пожираю #: lang/json/MONSTER_from_json.py msgid "plague nymph" msgid_plural "plague nymphs" -msgstr[0] "личинка чумы" -msgstr[1] "личинки чумы" -msgstr[2] "личинок чумы" -msgstr[3] "личинки чумы" +msgstr[0] "личинка чумного таракана" +msgstr[1] "личинки чумного таракана" +msgstr[2] "личинок чумного таракана" +msgstr[3] "личинки чумного таракана" #. ~ Description for {'str': 'plague nymph'} #: lang/json/MONSTER_from_json.py @@ -87450,9 +86771,9 @@ msgstr "" msgid "giant dragonfly" msgid_plural "giant dragonflies" msgstr[0] "гигантская стрекоза" -msgstr[1] "гигантских стрекозы" +msgstr[1] "гигантские стрекозы" msgstr[2] "гигантских стрекоз" -msgstr[3] "гигантская стрекоза" +msgstr[3] "гигантские стрекозы" #. ~ Description for {'str': 'giant dragonfly', 'str_pl': 'giant dragonflies'} #: lang/json/MONSTER_from_json.py @@ -87467,9 +86788,9 @@ msgstr "" msgid "giant fly" msgid_plural "giant flies" msgstr[0] "гигантская муха" -msgstr[1] "гигантских мухи" +msgstr[1] "гигантские мухи" msgstr[2] "гигантских мух" -msgstr[3] "гигантская муха" +msgstr[3] "гигантские мухи" #. ~ Description for {'str': 'giant fly', 'str_pl': 'giant flies'} #: lang/json/MONSTER_from_json.py @@ -87889,12 +87210,12 @@ msgstr[3] "мясистые ползуны" #: lang/json/MONSTER_from_json.py msgid "" "An amalgamation of throbbing organs from various creatures have fused " -"together into this lurching, vaguely humanoid shape. It's myriad roughly " +"together into this lurching, vaguely humanoid shape. Its myriad roughly " "formed mouths sussurate in a chorus of sibilant groans and whispers." msgstr "" "Смесь пульсирующих органов от разных созданий, слившихся в покачивающуюся, " -"смутно человекоподобную фигуру. Сотни едва оформленных ртов бормочут в хоре " -"свистящих стонов и шёпотов." +"смутно человекоподобную фигуру. Сотни едва сформированных ртов бормочут в " +"хоре свистящих стонов и шёпотов." #: lang/json/MONSTER_from_json.py msgid "flesh golem" @@ -87909,7 +87230,7 @@ msgstr[3] "големы из плоти" msgid "" "A seeping conglomeration of spasming muscle and organs have fused together " "into this towering caricature of the human form. Various organs fall off of" -" it's hulking body only to be reabsorbed moments later." +" its hulking body only to be reabsorbed moments later." msgstr "" "Сочащаяся смесь спазмирующих мышц и органов, слившихся в возвышающуюся " "пародию на человеческое тело. Разные органы отваливаются от громадной туши и" @@ -87930,8 +87251,8 @@ msgid "" "fused together in this aberration of flesh. The eyes of all the heads dart " "about rapidly and the mouths form a chorus of groaning screams." msgstr "" -"Гниющие части человеческого тела и множества других существ хаотично слились" -" в этой извращенной аномалии из плоти. Глаза на всех головах беспорядочно " +"Гниющие части человеческих тел и множества других существ хаотично слились в" +" этой извращенной аномалии из плоти. Глаза на всех головах беспорядочно " "шныряют по сторонам, а рты сливаются в хоре стона и визга." #: lang/json/MONSTER_from_json.py @@ -88542,8 +87863,8 @@ msgid "" "prey, but is typically timid around humans." msgstr "" "Северо-восточный койот. Широко распространённый стайный охотник семейства " -"псовых. Более боязлив, чем обычный волк, и предпочитает охоту на малые и " -"слабые жертвы." +"псовых. Более осторожен, чем обычный волк, и предпочитает охоту на мелких и " +"слабых жертв." #: lang/json/MONSTER_from_json.py msgid "fawn" @@ -88594,9 +87915,8 @@ msgid "" "it likely still instinctively trusts humans, it's probably far from domestic" " by now." msgstr "" -"Этот лабрадор явно одичал. Вы почти смогли представить, как трепали бы его " -"по холке, но затем увидели голод в его глазах. У вас нет ни малейшего " -"сомнения, что он убьёт вас, как только ему представится возможность." +"Этот лабрадор явно одичал. Хотя он еще инстинктивно доверяет людям, он уже " +"далеко не домашний." #: lang/json/MONSTER_from_json.py msgid "Labrador puppy" @@ -88839,7 +88159,7 @@ msgid "" msgstr "" "Собака-сосиска! Эта собака может успешно использоваться в качестве " "сторожевой. Кроме того, она такая смешная! Из-за её размеров в неё трудно " -"попасть." +"попасть (если рука поднимется)." #: lang/json/MONSTER_from_json.py msgid "dachshund puppy" @@ -89007,7 +88327,7 @@ msgid_plural "foxes" msgstr[0] "лисица" msgstr[1] "лисицы" msgstr[2] "лисиц" -msgstr[3] "лисица" +msgstr[3] "лисицы" #. ~ Description for {'str': 'fox', 'str_pl': 'foxes'} #: lang/json/MONSTER_from_json.py @@ -89331,7 +88651,7 @@ msgid_plural "lambs" msgstr[0] "ягнёнок" msgstr[1] "ягнёнка" msgstr[2] "ягнят" -msgstr[3] "ягнёнок" +msgstr[3] "ягнята" #. ~ Description for {'str': 'lamb'} #: lang/json/MONSTER_from_json.py @@ -89350,7 +88670,7 @@ msgid_plural "sheep" msgstr[0] "овца" msgstr[1] "овцы" msgstr[2] "овец" -msgstr[3] "овца" +msgstr[3] "овцы" #. ~ Description for {'str_sp': 'sheep'} #: lang/json/MONSTER_from_json.py @@ -89390,8 +88710,7 @@ msgid "" "for meat." msgstr "" "Маленький всеядный грызун с длинным пушистым хвостом. Красная белка умна и " -"красива. Она охотится на всех обитателей леса, из которых можно получить " -"мясо." +"красива. На него охотятся все обитатели леса, предпочитающие мясо." #: lang/json/MONSTER_from_json.py msgid "weasel" @@ -89417,7 +88736,7 @@ msgid_plural "wolves" msgstr[0] "волк" msgstr[1] "волка" msgstr[2] "волков" -msgstr[3] "волк" +msgstr[3] "волки" #. ~ Description for {'str': 'wolf', 'str_pl': 'wolves'} #: lang/json/MONSTER_from_json.py @@ -89879,10 +89198,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "blank body" msgid_plural "blank bodies" -msgstr[0] "чистотел" -msgstr[1] "чистотела" -msgstr[2] "чистотелов" -msgstr[3] "чистотел" +msgstr[0] "безликий" +msgstr[1] "безликого" +msgstr[2] "безликих" +msgstr[3] "безликие" #. ~ Description for {'str': 'blank body', 'str_pl': 'blank bodies'} #: lang/json/MONSTER_from_json.py @@ -90228,7 +89547,7 @@ msgstr "" " выпадает из вашего восприятия, пробуждая древние безымянные ужасы в глубине" " вашего разума." -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" msgstr[0] "тень" @@ -90309,7 +89628,7 @@ msgid_plural "twisted bodies" msgstr[0] "скрученное тело" msgstr[1] "скрученных тела" msgstr[2] "скрученных тел" -msgstr[3] "скрученное тело" +msgstr[3] "скрученные тела" #. ~ Description for {'str': 'twisted body', 'str_pl': 'twisted bodies'} #: lang/json/MONSTER_from_json.py @@ -90351,7 +89670,7 @@ msgid_plural "vortexes" msgstr[0] "вихрь" msgstr[1] "вихря" msgstr[2] "вихрей" -msgstr[3] "вихрь" +msgstr[3] "вихри" #. ~ Description for {'str': 'vortex', 'str_pl': 'vortexes'} #: lang/json/MONSTER_from_json.py @@ -90397,7 +89716,7 @@ msgid_plural "dragonflies" msgstr[0] "стрекоза" msgstr[1] "стрекозы" msgstr[2] "стрекоз" -msgstr[3] "стрекоза" +msgstr[3] "стрекозы" #. ~ Description for {'str': 'dragonfly', 'str_pl': 'dragonflies'} #: lang/json/MONSTER_from_json.py @@ -90603,7 +89922,8 @@ msgstr "" "Нортроп Бигль — это МРК (Мобильный Роботехнический Комплекс) размером с " "холодильник, предназначенный для боевых действий в городских условиях. " "Оснащён противотанковой ракетной установкой, 40-мм гранатомётом и различным " -"противопехотным вооружением. Спроектирован для опасных городских сражений." +"противопехотным вооружением. Спроектирован для ведения боя в опасных " +"условиях." #: lang/json/MONSTER_from_json.py msgid "chicken walker" @@ -90629,6 +89949,25 @@ msgstr "" "автоматическим средством защиты, хотя производство было ограничено из-за " "юридических разногласий." +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "лазерная турель" +msgstr[1] "лазерных турели" +msgstr[2] "лазерных турелей" +msgstr[3] "лазерные турели" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from" +" solar cells embedded in its hull." +msgstr "" +"Турель TX-5LR Цербер является улучшенным вариантом своих предшественников. " +"Отличается современной системой вращающихся лазерных пушек с тремя стволами," +" которые заряжаются от встроенных в корпус солнечных батарей." + #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" @@ -90910,10 +90249,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "amoebic mold" msgid_plural "amoebic molds" -msgstr[0] "амёбная плесень" -msgstr[1] "амёбной плесени" -msgstr[2] "амёбной плесени" -msgstr[3] "амёбная плесень" +msgstr[0] "амёбная масса" +msgstr[1] "амёбные массы" +msgstr[2] "амёбных масс" +msgstr[3] "амёбные массы" #. ~ Description for {'str': 'amoebic mold'} #: lang/json/MONSTER_from_json.py @@ -91087,7 +90426,7 @@ msgid "" "its sting is still sharp and deadly." msgstr "" "Миниатюрный триффид, ростом с полметра. Он ещё не покрылся корой, но его " -"жало уже остро и смертельно." +"жало уже остро и смертоносно." #: lang/json/MONSTER_from_json.py msgid "triffid" @@ -91234,25 +90573,6 @@ msgstr "" "Три прожектора большой мощности на штативе с автоматическим поисковым ИИ, " "постоянно разыскивающие цели." -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "лазерная турель" -msgstr[1] "лазерных турели" -msgstr[2] "лазерных турелей" -msgstr[3] "лазерные турели" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from" -" solar cells embedded in its hull." -msgstr "" -"Турель TX-5LR Цербер является улучшенным вариантом своих предшественников. " -"Отличается современной системой вращающихся лазерных пушек с тремя стволами," -" которые заряжаются от встроенных в корпус солнечных батарей." - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" @@ -91270,11 +90590,11 @@ msgid "" " anything up to light vehicles at long range without exposing the operator." " This one is fitted with a M2HB." msgstr "" -"Система дистанционного управления огнём от M153 CROWS II, улучшенная " -"автономным программным обеспечением. До Катаклизма в американской армии были" -" тысячи таких систем, и их ценили за возможность вести бой с чем угодно " -"вплоть до лёгкой бронетехники без риска для оператора. Этот экземпляр " -"оснащён M2HB." +"CROWS II - система дистанционного управления огнём на основе M153, " +"улучшенная автономным программным обеспечением. До Катаклизма в американской" +" армии были тысячи таких систем, и их ценили за возможность вести бой с чем " +"угодно вплоть до лёгкой бронетехники без риска для оператора. Этот экземпляр" +" оснащён M2HB." #: lang/json/MONSTER_from_json.py msgid "M249 autonomous CROWS II" @@ -91292,11 +90612,11 @@ msgid "" "military before the Cataclysm and they were valued for their use in engaging" " infantry without exposing the operator. This one is fitted with a M249." msgstr "" -"Система дистанционного управления огнём от M153 CROWS II, улучшенная " -"автономным программным обеспечением. До Катаклизма в американской армии были" -" тысячи таких систем, и их ценили за возможность вести бой с чем угодно " -"вплоть до лёгкой бронетехники без риска для оператора. Этот экземпляр " -"оснащён M249." +"CROWS II - система дистанционного управления огнём на основе M153, " +"улучшенная автономным программным обеспечением.До Катаклизма в американской " +"армии были тысячи таких систем, и их ценили за возможность вести бой с чем " +"угодно вплоть до лёгкой бронетехники без риска для оператора. Этот экземпляр" +" оснащён M249." #: lang/json/MONSTER_from_json.py msgid "M240 autonomous CROWS II" @@ -91314,11 +90634,11 @@ msgid "" "military before the Cataclysm and they were valued for their use in engaging" " infantry without exposing the operator. This one is fitted with a M240." msgstr "" -"Система дистанционного управления огнём от M153 CROWS II, улучшенная " -"автономным программным обеспечением. До Катаклизма в американской армии были" -" тысячи таких систем, и их ценили за возможность вести бой с чем угодно " -"вплоть до лёгкой бронетехники без риска для оператора. Этот экземпляр " -"оснащён M240." +"CROWS II - система дистанционного управления огнём на основе M153, " +"улучшенная автономным программным обеспечением. До Катаклизма в американской" +" армии были тысячи таких систем, и их ценили за возможность вести бой с чем " +"угодно вплоть до лёгкой бронетехники без риска для оператора. Этот экземпляр" +" оснащён M240." #: lang/json/MONSTER_from_json.py msgid "riot control platform" @@ -91346,10 +90666,23 @@ msgstr "" "использовать менее летальное вооружение с точностью, превосходящей " "человеческую, обеспечивая более безопасные ранения конечностей жертвы. Они " "были быстро взяты на вооружение тюрьмами и городскими силами полиции, где " -"быстро продемонстрировали разнице между 'менее летальными' и 'нелетальными'." -" В дни перед катаклизмом огромное их количество было выпущено со складов в " -"оборот. Утешает, что хотя они могут работать автономно, им нужен оператор " -"для перемещения, так что они больше не мобильны." +"быстро продемонстрировали разницу между 'менее летальными' и 'нелетальными'." +" В дни перед катаклизмом огромное их количество было развернуто со складов. " +"Утешает, что хотя они могут работать автономно, им нужен оператор для " +"перемещения, так что они больше не мобильны." + +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "громкоговоритель" +msgstr[1] "громкоговорителя" +msgstr[2] "громкоговорителей" +msgstr[3] "громкоговорители" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "Мощный громкоговоритель, шумно повторяющий по кругу набор сообщений" #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -91542,9 +90875,8 @@ msgid "" "A zombified version of one of the German shepherd dogs used in law " "enforcement. Its deformed body is encased in a protective Kevlar harness." msgstr "" -"Зомби-версия одной из немецких овчарок, использовавшихся в " -"правоохранительных органах. Её обезображенное тело заключено в защитную " -"броню из кевлара." +"Зомби-версия немецкой овчарки, служившей в правоохранительных органах. Её " +"обезображенное тело заключено в защитную броню из кевлара." #: lang/json/MONSTER_from_json.py msgid "rot-weiler" @@ -91877,7 +91209,7 @@ msgstr[3] "худые зомби" #. ~ Description for {'str': 'sleek zombie'} #: lang/json/MONSTER_from_json.py msgid "This zombie is rather sleek and barely clothed." -msgstr "Этот зомби атлетично сложен и едва одет." +msgstr "Атлетично сложенный и едва одетый зомби." #: lang/json/MONSTER_from_json.py msgid "bouncer zombie" @@ -91978,7 +91310,7 @@ msgid_plural "zombie kinderlings" msgstr[0] "зомби-обгорелыш" msgstr[1] "зомби-обгорелыша" msgstr[2] "зомби-обгорелышей" -msgstr[3] "зомби-обгорелыш" +msgstr[3] "зомби-обгорелыши" #. ~ Description for {'str': 'zombie kinderling'} #: lang/json/MONSTER_from_json.py @@ -92006,7 +91338,7 @@ msgid "" " swiftly." msgstr "" "Обугленный зомби с костяными пластинами, шипами и выпуклостями. Двигается " -"чопорно, но быстро." +"неловко, но быстро." #: lang/json/MONSTER_from_json.py msgid "scorched zombie" @@ -92048,7 +91380,7 @@ msgid_plural "zombie children" msgstr[0] "зомби-ребёнок" msgstr[1] "зомби-ребёнка" msgstr[2] "зомби-детей" -msgstr[3] "зомби-ребёнок" +msgstr[3] "зомби-дети" #. ~ Description for {'str': 'zombie child', 'str_pl': 'zombie children'} #: lang/json/MONSTER_from_json.py @@ -92291,40 +91623,6 @@ msgstr "" "кистами, которые содержат гнилостный газ, и они, похоже, могут сильно " "лопнуть от любого, даже малейшего воздействия." -#: lang/json/MONSTER_from_json.py -msgid "zombie grenadier" -msgid_plural "zombie grenadiers" -msgstr[0] "зомби-гренадёр" -msgstr[1] "зомби-гренадёра" -msgstr[2] "зомби-гренадёров" -msgstr[3] "зомби-гренадёры" - -#. ~ Description for {'str': 'zombie grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear. Its hands " -"constantly fumble at its many pouches." -msgstr "" -"Бывший солдат, одетый с ног до головы в боевое снаряжение. Его руки " -"постоянно шарят в своих многочисленных карманах." - -#: lang/json/MONSTER_from_json.py -msgid "zombie elite grenadier" -msgid_plural "zombie elite grenadiers" -msgstr[0] "элитный зомби-гренадёр" -msgstr[1] "элитных зомби-гренадёра" -msgstr[2] "элитных зомби-гренадёров" -msgstr[3] "элитные зомби-гренадёры" - -#. ~ Description for {'str': 'zombie elite grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear and wearing a MOLLE" -" pack. Its hands quickly open and close its many pouches." -msgstr "" -"Бывший солдат, одетый с ног до головы в боевое снаряжение и несущий рюкзак " -"MOLLE. Его руки быстро открывают и закрывают многочисленные карманы." - #: lang/json/MONSTER_from_json.py msgid "crawler" msgid_plural "crawlers" @@ -92345,10 +91643,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "dissoluted devourer" msgid_plural "dissoluted devourers" -msgstr[0] "развратный пожиратель" -msgstr[1] "развратных пожирателя" -msgstr[2] "развратных пожирателей" -msgstr[3] "развратные пожиратели" +msgstr[0] "растворенный пожиратель" +msgstr[1] "растворенных пожирателя" +msgstr[2] "растворенных пожирателей" +msgstr[3] "растворенные пожиратели" #. ~ Description for {'str': 'dissoluted devourer'} #: lang/json/MONSTER_from_json.py @@ -92447,10 +91745,10 @@ msgstr "Пронзатель выстреливает колючкой!" #: lang/json/MONSTER_from_json.py msgid "flesh wall" msgid_plural "flesh walls" -msgstr[0] "мясистая стена" -msgstr[1] "мясистых стены" -msgstr[2] "мясистых стен" -msgstr[3] "мясистые стены" +msgstr[0] "стена плоти" +msgstr[1] "стены плоти" +msgstr[2] "стен плоти" +msgstr[3] "стены плоти" #. ~ Description for {'str': 'flesh wall'} #: lang/json/MONSTER_from_json.py @@ -92785,6 +92083,29 @@ msgstr "" "вашей души просыпается страх. Даже воздух вокруг кажется более зловещим, " "тёмным и опасным." +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "зомби-некробумер" +msgstr[1] "зомби-некробумера" +msgstr[2] "зомби-некробумеров" +msgstr[3] "зомби-некробумеры" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears" +" and guts teem with unmatched fecundity, as its gaze inspires fear of " +"nothing less than cosmic, inhuman ecstasy." +msgstr "" +"На первый взгляд это существо выглядит как гротескная и маслянистая " +"оболочка, раздутая и покрытая темно-черными гнойниками. При приближении его " +"светящиеся красные глаза и больная улыбка принимают форму; разрывы на коже и" +" внутренности постоянно извергают гной, а его взгляд вселяет страх своим " +"космическим, нечеловеческим экстазом." + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" @@ -92842,10 +92163,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shady zombie" msgid_plural "shady zombies" -msgstr[0] "тёмный зомби" -msgstr[1] "тёмных зомби" -msgstr[2] "тёмных зомби" -msgstr[3] "тёмные зомби" +msgstr[0] "теневой зомби" +msgstr[1] "теневых зомби" +msgstr[2] "теневых зомби" +msgstr[3] "теневые зомби" #. ~ Description for {'str': 'shady zombie'} #: lang/json/MONSTER_from_json.py @@ -92864,7 +92185,7 @@ msgid_plural "Shia LaBeouf" msgstr[0] "Шайя Лабаф" msgstr[1] "Шайя Лабафа" msgstr[2] "Шайя Лабафов" -msgstr[3] "Шайя Лабаф" +msgstr[3] "Шайя Лабафы" #. ~ Description for {'str_sp': 'Shia LaBeouf'} #: lang/json/MONSTER_from_json.py @@ -93320,10 +92641,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie bio-operator" msgid_plural "zombie bio-operators" -msgstr[0] "зомби био-боец" -msgstr[1] "зомби био-бойца" -msgstr[2] "зомби био-бойцов" -msgstr[3] "зомби био-бойцы" +msgstr[0] "зомби био-спецназовец" +msgstr[1] "зомби био-спецназовца" +msgstr[2] "зомби био-спецназовцев" +msgstr[3] "зомби био-спецназовцы" #. ~ Description for {'str': 'zombie bio-operator'} #: lang/json/MONSTER_from_json.py @@ -93331,8 +92652,8 @@ msgid "" "This armored and augmented soldier's bionics crackle with energy. Worse, it" " appears to remember its training." msgstr "" -"Бронированный и улучшенный солдат с потрескивающими от энергии бионическими " -"имплантатами. Хуже того, он, похоже, помнит свои тренировки." +"Бронированный и аугментированный солдат с потрескивающими от энергии " +"бионическими имплантатами. Хуже того, он, похоже, помнит свои тренировки." #: lang/json/MONSTER_from_json.py msgid "elite zombie bio-operator" @@ -93498,6 +92819,68 @@ msgstr "" "облегчения поимки беглых преступников, заставляя их сменять свое " "местоположение, уставать и подсвечивая их местоположение для полиции." +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder" +msgid_plural "Schwarz Walders" +msgstr[0] "Шварцвальд" +msgstr[1] "Шварцвальда" +msgstr[2] "Шварцвальдов" +msgstr[3] "Шварцвальды" + +#. ~ Description for {'str': 'Schwarz Walder'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Schwarz Walders were originally developed by a German company as forest " +"rangers for the expanded Black Forest Conservation Area. Shortly afterwards" +" it was determined that they also made excellent long range reconnaissance " +"units that could operate independently indefinitely. Pre-Cataclysm they " +"lived on every continent in a variety of jobs." +msgstr "" +"Порода медведей Шварцвальд была изначально выведена немецкой компанией в " +"качестве егерей для огромного заповедника Черный Лес. Вскоре стало ясно, что" +" их можно использовать в качестве превосходных разведчиков для любых " +"дистанций, способных действовать без поддержки практически неограниченное " +"время. До Катаклизма их использовали повсюду и для самых разных задач." + +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder cub" +msgid_plural "Schwarz Walder cubs" +msgstr[0] "медвежонок Шварцвальда" +msgstr[1] "медвежонка Шварцвальда" +msgstr[2] "медвежат Шварцвальда" +msgstr[3] "медвежата Шварцвальда" + +#. ~ Description for {'str': 'Schwarz Walder cub'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A young Schwarz Walder. If one is out here, a very protective parent is " +"likely nearby." +msgstr "" +"Совсем еще маленький медвежонок породы Шварцвальд. Если вы его видите, " +"поблизости наверняка найдется весьма настороженный родитель." + +#: lang/json/MONSTER_from_json.py +msgid "infeme" +msgid_plural "infemes" +msgstr[0] "инфеме" +msgstr[1] "инфеме" +msgstr[2] "инфеме" +msgstr[3] "инфеме" + +#. ~ Description for {'str': 'infeme'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The Infeme are uplifted from apes and other near human ancestors. The Zulu " +"word for monkey became the catch-all term for many species of uplifts " +"whether majority chimp, gorilla or baboon. They've probably formed colonies" +" hidden from the Cataclysm." +msgstr "" +"Инфеме - возвышенные животные, происходящие от приматов и других близких " +"человеку видов. Слово из языка Зулу, обозначающее «обезьяна», стало " +"обобщенным термином для всех возвышенных обезьян, неважно, шимпанзе, горилл " +"или бабуинов. У них наверняка есть колонии, хорошо спрятанные от последствий" +" Катаклизма." + #: lang/json/MONSTER_from_json.py msgid "headless zombie" msgid_plural "headless zombies" @@ -93538,6 +92921,59 @@ msgstr "" " и злобно подёргиваются, улавливая звуки. Зомби движется с пугающей " "скоростью при помощи безобразно распухших рук." +#: lang/json/MONSTER_from_json.py +msgid "Haunting Forest Walker" +msgid_plural "Haunting Forest Walkers" +msgstr[0] "шатун Призрачного Леса" +msgstr[1] "шатуна Призрачного Леса" +msgstr[2] "шатунов Призрачного Леса" +msgstr[3] "шатуны Призрачного Леса" + +#. ~ Description for {'str': 'Haunting Forest Walker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This towering zombie is covered in wounds and shedding fur. Once it may " +"have prevented forest fires in national parks, now it kills anything it " +"catches." +msgstr "" +"Возвышающийся зомби, покрытый ранами и выпадающим мехом. Когда-то он охранял" +" леса в национальных парках от пожаров, а теперь он убивает все, что может " +"догнать." + +#: lang/json/MONSTER_from_json.py +msgid "rotting grodd" +msgid_plural "rotting grodds" +msgstr[0] "гниющая горилла" +msgstr[1] "гниющие гориллы" +msgstr[2] "гниющих горилл" +msgstr[3] "гниющие гориллы" + +#. ~ Description for {'str': 'rotting grodd'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Imagine a gorilla. Now imagine it dead and rotting and somehow looking at " +"you with more hate than you had previously imagined possible." +msgstr "" +"Представьте гориллу. Теперь она мертва, гниет, и в ее устремленном на вас " +"взгляде ненависти больше, чем можно представить." + +#: lang/json/MONSTER_from_json.py +msgid "Ghoulodon" +msgid_plural "Ghoulodons" +msgstr[0] "труподонт" +msgstr[1] "труподонта" +msgstr[2] "труподонтов" +msgstr[3] "труподонты" + +#. ~ Description for {'str': 'Ghoulodon'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An undead Uplifted Elephant of ginormous size. It still wears its assault " +"grade armor." +msgstr "" +"Восставший из мертвых возвышенный слон огромных размеров, до сих пор одетый " +"в штурмовую броню." + #: lang/json/MONSTER_from_json.py msgid "Slasher Necromorph" msgid_plural "Slasher Necromorphs" @@ -93574,8 +93010,8 @@ msgid "" " The awkward steps it takes slows it down greatly." msgstr "" "Ужасно изуродованное человеческое тело. Из его рук только-только выросли два" -" тонких клинка. Из-за кошмарной пасти без челюсти и зияющей дырки во лбу у " -"вас мурашки по коже. Существо ковыляет медленно и неуклюже." +" тонких клинка. От кошмарной пасти без челюсти и зияющей дырки во лбу у вас " +"мурашки по коже. Существо ковыляет медленно и неуклюже." #: lang/json/MONSTER_from_json.py msgid "Waster Necromorph" @@ -93875,10 +93311,10 @@ msgstr "Пушка эмиссара издает громоподобный шу #: lang/json/MONSTER_from_json.py msgid "order surveillance drone" msgid_plural "order surveillance drones" -msgstr[0] "дрон наблюдения Порядка" -msgstr[1] "дрона наблюдения Порядка" -msgstr[2] "дронов наблюдения Порядка" -msgstr[3] "дроны наблюдения Порядка" +msgstr[0] "дрон наблюдения Нового Порядка" +msgstr[1] "дрона наблюдения Нового Порядка" +msgstr[2] "дронов наблюдения Нового Порядка" +msgstr[3] "дроны наблюдения Нового Порядка" #. ~ Description for {'str': 'order surveillance drone'} #: lang/json/MONSTER_from_json.py @@ -93888,10 +93324,10 @@ msgid "" "former world, onboard cameras and spotlights impartial witness to the chaos " "around it. Who knows might be watching on the other side…" msgstr "" -"Маленький, обтекаемый белый робот с золотым символом Порядка на корпусе. " -"Умея летать на короткие расстояния, он парит над руинами старого мира, пока " -"его бортовые камеры и прожекторы бесстрастно смотрят за творящимся вокруг " -"хаосом. Кто знает, что смотрит за ним с другой стороны…" +"Маленький, обтекаемый белый робот с золотым символом Нового Порядка на " +"корпусе. Умея летать на короткие расстояния, он парит над руинами старого " +"мира, пока его бортовые камеры и прожекторы бесстрастно смотрят за " +"творящимся вокруг хаосом. Кто знает, что смотрит за ним с другой стороны…" #: lang/json/MONSTER_from_json.py msgid "order seeker drone" @@ -93911,16 +93347,16 @@ msgid "" " with surprising dexterity and procure samples. It seems to watch you " "closely…" msgstr "" -"Маленький, обтекаемый белый робот с золотым символом Порядка на корпусе. " -"Умея летать на короткие расстояния, он парит над руинами старого мира, " -"используя набор острых на вид выдвижных инструментов, камеру со вспышкой и " -"встроенные «руки» для изучения мира вокруг и забора образцов с пугающей " -"ловкостью. Кажется, он пристально смотрит на вас…" +"Маленький, обтекаемый белый робот с золотым символом Нового Порядка на " +"корпусе. Умея летать на короткие расстояния, он парит над руинами старого " +"мира, используя набор острых на вид выдвижных инструментов, камеру со " +"вспышкой и встроенные «руки» для изучения мира вокруг и забора образцов с " +"пугающей ловкостью. Кажется, он пристально смотрит на вас…" #. ~ Attack message of monster "{'str': 'order seeker drone'}"'s spell "None" #: lang/json/MONSTER_from_json.py msgid "%1$s blinds %3$s with its integrated camera!" -msgstr "%1$s слепит %3$s вспышкой встроенной камеры!" +msgstr "%1$s слепит вспышкой встроенной камеры! %3$s попадает в нее." #: lang/json/MONSTER_from_json.py msgid "sewer lurker" @@ -93969,10 +93405,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "moss lizard" msgid_plural "moss lizards" -msgstr[0] "мшистая ящерица" -msgstr[1] "мшистые ящерицы" -msgstr[2] "мшистых ящериц" -msgstr[3] "мшистые ящерицы" +msgstr[0] "мшистый ящер" +msgstr[1] "мшистых ящера" +msgstr[2] "мшистых ящеров" +msgstr[3] "мшистые ящеры" #. ~ Description for moss lizard #: lang/json/MONSTER_from_json.py @@ -94055,7 +93491,7 @@ msgstr "" "Огромное существо, воняющее смертью, соответствуя своей диете из падали и " "гнили, хотя оно может атаковать живую добычу, если оно голодно. Его любимая " "тактика - растворять пищу с помощью кислотной рвоты, а затем потреблять " -"получающиеся в результате разжиженные остатки. Оно способен как " +"получающиеся в результате разжиженные остатки. Оно способно как " "закапываться, так и ограниченно перемещаться по суше с помощью множества " "толстых придатков, окружающих его рот." @@ -94070,11 +93506,94 @@ msgstr[3] "потерянные" #. ~ Description for {'str': 'stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." +msgstr "" +"Полная ненависти и насилия тень, когда-то бывшая человеком. По бледной коже " +"медленно расползаются крупными пятнами сине-голубые кристаллы." + +#: lang/json/MONSTER_from_json.py +msgid "stray cop" +msgid_plural "stray cops" +msgstr[0] "потерянный-коп" +msgstr[1] "потерянных-копа" +msgstr[2] "потерянных-копов" +msgstr[3] "потерянные-копы" + +#. ~ Description for stray cop +#: lang/json/MONSTER_from_json.py +msgid "" +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." +msgstr "" +"Бывший служитель правопорядка, без сомнения, помогавший гражданским во время" +" эвакуации после начала Прибытия. К несчастью, несмотря на все их старания, " +"многие из них оказались заражены. Он до сих пор одет в лёгкую нательную " +"броню, частично поглощённую кристаллами." + +#: lang/json/MONSTER_from_json.py +msgid "stray soldier" +msgid_plural "stray soldiers" +msgstr[0] "потерянный-солдат" +msgstr[1] "потерянных-солдата" +msgstr[2] "потерянных-солдат" +msgstr[3] "потерянные-солдаты" + +#. ~ Description for {'str': 'stray soldier'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former soldier, no doubt deployed to assist with evacuations and drive off" +" the Order, dressed from head to toe in partially crystalized combat armor." +" Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." +msgstr "" +"Бывший солдат, без сомнения прикрывавший эвакуирующихся гражданских и " +"отбивавший атаки Порядка. С ног до головы одет в частично кристаллизованную " +"боевую броню. Хотя их подготовка не могла предусмотреть того, что с ними " +"случилось, они явно помнят, что делать с тобой." + +#: lang/json/MONSTER_from_json.py +msgid "stray firefighter" +msgid_plural "stray firefighters" +msgstr[0] "потерянный-пожарник" +msgstr[1] "потерянных-пожарника" +msgstr[2] "потерянных-пожарников" +msgstr[3] "потерянные-пожарники" + +#. ~ Description for {'str': 'stray firefighter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." +msgstr "" +"Когда-то человеческое тело, одетое в разодранное пожарное снаряжение. Из под" +" пригоревшей маски доносится водянистое бульканье дыхания. Шатаясь вокруг " +"сообщества, которому он когда-то служил, теперь он не более, чем еще один " +"разносчик кристальной заразы." + +#: lang/json/MONSTER_from_json.py +msgid "hungry stray" +msgid_plural "hungry strays" +msgstr[0] "потерянный-обжора" +msgstr[1] "потерянных-обжоры" +msgstr[2] "потерянных-обжор" +msgstr[3] "потерянные-обжоры" + +#. ~ Description for {'str': 'hungry stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An obese former human, body studded with irregular crystal growths deforming" +" its body. It howls in mockery of hunger as it wanders, seeking new meals " +"to add to its bulk." msgstr "" -"Мутировавший человек, полная ненависти тень прошлого себя. По бледной коже " -"медленно расползаются сине-голубые кристаллы." +"Когда-то человеческое тело, покрытое тут и там деформирующими " +"кристаллическими наростами. Оно воет, страдая от голода, в поисках свежей " +"пищи для своего разрастающегося каркаса." #: lang/json/MONSTER_from_json.py msgid "stray rockfeeder" @@ -94110,18 +93629,78 @@ msgstr[3] "потерянные-кристаллиты" msgid "" "Little more than a moving mound of crystal and meat that occasionally spits " "up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures" -" skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." -msgstr "" -"Не больше чем куча движущейся плоти и кристаллов, порой выплевывающая струи " +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." +msgstr "" +"Крабоподобная куча движущейся плоти и кристаллов, порой выплевывающая струи " "каменной кашицы. Существо движется с трудом, покачиваясь туда-сюда, как от " "тяжелой ноши. Под мутной поверхностью его оболочки вы с трудом различаете " "маленьких существ, двигающихся в запутанных внутренностях существа. Похоже, " -"это только вопрос времени, прежде чем ого слишком разрастется и падет, став " -"еще одной частью этого навсегда чужого мира." +"оно обычно держится в стае других кристаллических существ, изливая свои " +"выделения и ведя себя так, словно приглядывает за остальными. Если ему что-" +"то угрожает, оно способно выдавать душераздирающие крики, без сомнения " +"привлекающие его друзей." + +#: lang/json/MONSTER_from_json.py +msgid "crackling stray" +msgid_plural "crackling strays" +msgstr[0] "потерянный-щелкун" +msgstr[1] "потерянных-щелкуна" +msgstr[2] "потерянных-щелкунов" +msgstr[3] "потерянные-щелкуны" + +#. ~ Description for {'str': 'crackling stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A hunched human form, back bristling with a hedge of buzzing blue crystals." +" Its veins visibly glow with some sort of unearthly substance." +msgstr "" +"Сгорбленное человекоподобное существо, чья спина покрыта плотной массой " +"гудящих синих кристаллов. Его вены заметно светятся, наполненные каким-то " +"неземным веществом." + +#: lang/json/MONSTER_from_json.py +msgid "arcing stray" +msgid_plural "arcing strays" +msgstr[0] "потерянный-разрядник" +msgstr[1] "потерянных-разрядника" +msgstr[2] "потерянных-разрядников" +msgstr[3] "потерянные-разрядники" + +#. ~ Description for {'str': 'arcing stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than" +" capable of simply ramming its prey to deliver dangerous electric shocks." +msgstr "" +"Деформированное многоногое существо, чьё когда-то земное тело теперь просто " +"опора для массивных кристаллических пилонов, которые выступают из его торса " +"там, где когда-то была его голова. Его руки безвольно свисают по бокам, но " +"оно вполне способно расправиться со своей жертвой, просто толкая и нанося " +"опасные удары электрическим током." + +#: lang/json/MONSTER_from_json.py +msgid "stray sprinter" +msgid_plural "stray sprinters" +msgstr[0] "потерянный-бегун" +msgstr[1] "потерянных-бегуна" +msgstr[2] "потерянных-бегунов" +msgstr[3] "потерянные-бегуны" + +#. ~ Description for {'str': 'stray sprinter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." +msgstr "" +"Создание, когда то бывшее хорошо сложенным, атлетичным человеком и " +"сохранившее часть своей силы." #: lang/json/MONSTER_from_json.py msgid "stray prowler" @@ -94134,33 +93713,35 @@ msgstr[3] "потерянные-мародеры" #. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with" -" tusks of polished stone and fingers tipped with crystal-fused claws." +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." msgstr "" -"Некогда трусливый мутант теперь движется с дикой хитростью, угрожая бивнями " -"из полированного камня и пальцами с хрустальными когтями." +"Плотно сбитый мутант, теперь движущийся как животное, то на двух, то на " +"четырех ногах. У его рта растут бивни из полированного камня, а пальцы " +"блестят хрустальными когтями." #: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" -msgstr[0] "потерянный-хищник" -msgstr[1] "потерянных-хищника" -msgstr[2] "потерянных-хищников" -msgstr[3] "потерянные-хищники" +msgid "stray guardian" +msgid_plural "stray guardians" +msgstr[0] "потерянный-страж" +msgstr[1] "потерянных-стража" +msgstr[2] "потерянных-стражей" +msgstr[3] "потерянные-стражи" -#. ~ Description for {'str': 'stray predator'} +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of" -" time before the very shell that protects it weighs it down to the ground." +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated" +" crystal limbs sharpened to dangerous points. It strides about the streets," +" spearing intruders to its domain like some sort of horrid spider from " +"beyond the stars." msgstr "" -"Гибкая мускулатура и пульсирующие кристаллы слитые воедино. Это существо " -"передвигается на четырем длинных конечностях, заостренных до смертельной " -"остроты, используя их, чтобы пронзать врагов. Несмотря на то, что он " -"движется быстро, кажется, что это вопрос времени до момента, пока защищающий" -" его панцирь не разрастется и не прижмет к земле навсегда." +"Гибкая мускулатура и пульсирующий кристалл слились воедино в массу, похоже, " +"состоящую из множества тел, двигающуюся на множестве чрезвычайно длинных и " +"бритвенно острых кристаллических конечностях. Оно бродит, пронзая " +"покусившихся на его владения, словно ужасный паук, пришедший со звёзд." #: lang/json/MONSTER_from_json.py msgid "stray bruiser" @@ -94173,13 +93754,30 @@ msgstr[3] "потерянные-громилы" #. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." msgstr "" -"Когда-то бывшее человеческим тело, покрытое кристаллическими наростами. Оно " -"стоит куда ровнее, чем его собраться. Его руки превратились в шипастые " -"дубины, которые он волочет за собой." +"Бывший человек, спортивный и подтянутый, чьё тело затянуто в грозную толстую" +" кристаллическую броню, которая пульсирует, будто живая." + +#: lang/json/MONSTER_from_json.py +msgid "stray golem" +msgid_plural "stray golems" +msgstr[0] "потерянный-голем" +msgstr[1] "потерянных-голема" +msgstr[2] "потерянных-големов" +msgstr[3] "потерянные-големы" + +#. ~ Description for {'str': 'stray golem'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." +msgstr "" +"Человек, заметно выросший за счет приобретённой массы, достигший роста в три" +" метра и покрытый каменными пластинами, из-за которых он выглядит скорее как" +" кусок скалы, чем как человек." #: lang/json/MONSTER_from_json.py msgid "stray titan" @@ -94192,34 +93790,15 @@ msgstr[3] "потерянные-титаны" #. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its" -" own weight." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" -"Возвышающаяся масса слившихся плоти и камня, сносящая все на пути своими " -"дубиноподобными «руками». Несмотря на его мощь, похоже, это только вопрос " -"времени, когда его защитный панцирь слишком разрастется, и он будет " -"раздавлен собственным весом." - -#: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" -msgstr[0] "потерянный-хаск" -msgstr[1] "потерянных-хаска" -msgstr[2] "потерянных-хасков" -msgstr[3] "потерянные-хаски" - -#. ~ Description for {'str': 'stray husk'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to" -" alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." -msgstr "" -"Разорванное войной и обгоревшее тело человека, все еще дымящееся после " -"применения инопланетного оружия. Кластеры светящихся фиолетовых кристаллов " -"пробиваются из ран как сорняки через бетон." +"Возвышающаяся гуманоидная масса слившихся плоти и камня, намного " +"превосходящая своими размерами любого человека, сносящая все на пути своими " +"дубиноподобными «руками», которые размером больше человека и легко " +"отбрасывают в сторону любое препятствие." #: lang/json/MONSTER_from_json.py msgid "stray waif" @@ -94232,34 +93811,14 @@ msgstr[3] "потерянные-сироты" #. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." msgstr "" -"Если бы не островки растущих кристаллов, легко было бы принять эту фигуру за" -" обычного ребенка. К сожалению, чем бы ни было ужасное оружие, примененное " -"пришельцами, оно было так же жестоко к детям, как и ко взрослым. И все же " -"мысль об убийстве этого существа заставляет вас внутренне содрогнуться." - -#: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" -msgstr[0] "потерянный-головёшка" -msgstr[1] "потерянных-головёшки" -msgstr[2] "потерянных-головёшек" -msgstr[3] "потерянные-головёшки" - -#. ~ Description for {'str': 'stray tinder'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." -msgstr "" -"Ребенок, все еще дымящийся и покрытый ранами от инопланетного оружия. Его " -"черты сохранились достаточно, чтобы заставить вас почувствовать, как " -"внутренности скручивает узлом." +"Маленький, быстрый мутант, скорее всего бывший когда-то ребёнком, а теперь " +"изуродованный пробивающимися островками кристаллов. Его человеческие черты " +"всё ещё достаточно узнаваемы, чтобы вызвать заставить ваш желудок сжаться от" +" мысли о его убийстве." #: lang/json/MONSTER_from_json.py msgid "stray creep" @@ -94272,12 +93831,13 @@ msgstr[3] "потерянные-ползуны" #. ~ Description for {'str': 'stray creep'} #: lang/json/MONSTER_from_json.py msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." msgstr "" -"Все еще тлеющая оболочка четвероногого существа размером с дворнягу или " -"кого-то похожего, совсем недавно мутировавшего под воздействием " -"инопланетного оружия." +"Ужасающая мохнатая оболочка четвероногого существа размером с дворнягу или " +"кого-то похожего, покрытая прорастающими кристаллами, торчащими из под кожи " +"как шипы." #: lang/json/MONSTER_from_json.py msgid "stray wretch" @@ -94290,17 +93850,98 @@ msgstr[3] "потерянные-шельмы" #. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet" -" at some point, but now it leaps and skitters around like something out of a" -" nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion" -" across its body." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." msgstr "" "Эта размытая масса зазубренных, сплавленных с кристаллами конечностей когда-" -"то была домашним животным, но теперь скачет и мечется, как что-то из " -"страшного сна. Вероятно, растущие кристаллы на конечностях однажды перевесят" -" тело и навсегда прижмут его к земле, если учесть, что они уже " -"распространяются на тело." +"то была домашним животным или даже человеком, но теперь скачет и мечется, " +"как что-то из страшного сна." + +#: lang/json/MONSTER_from_json.py +msgid "stray stalker" +msgid_plural "stray stalkers" +msgstr[0] "потерянный-охотник" +msgstr[1] "потерянных-охотника" +msgstr[2] "потерянных-охотников" +msgstr[3] "потерянные-охотники" + +#. ~ Description for {'str': 'stray stalker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to" +" its 'family'." +msgstr "" +"Существо размером с волка, состоящее из толстых кусков кристалла, покрытое " +"маленькими мясистыми усиками, похожими на реснички. Кажется, оно с радостью " +"разорвёт любое живое существо, которому не повезёт с ним столкнуться, чтобы " +"затем утащить остатки своей «семье»." + +#: lang/json/MONSTER_from_json.py +msgid "flailing wretch" +msgid_plural "flailing wretchs" +msgstr[0] "вертлявая шельма" +msgstr[1] "вертлявые шельмы" +msgstr[2] "вертлявых шельм" +msgstr[3] "вертлявые шельмы" + +#. ~ Description for {'str': 'flailing wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." +msgstr "" +"Масса колючих усиков человеческого размера, едва ли похожая на какое-либо " +"земное животное, растущая из едва видимого центрального кристалла. Она " +"скользит по земле, хватая кусочки органики, чтобы принести её своим младшим " +"собратьям, чтобы и те тоже могли вырасти покрупнее." + +#: lang/json/MONSTER_from_json.py +msgid "crackling wretch" +msgid_plural "crackling wretchs" +msgstr[0] "трещащая шельма" +msgstr[1] "трещащие шельмы" +msgstr[2] "трещащих шельм" +msgstr[3] "трещащие шельмы" + +#. ~ Description for {'str': 'crackling wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." +msgstr "" +"Беспокойная масса усиков и обгоревших волос, быстро движущаяся подобно " +"насекомому. Изогнутая спина покрыта кристаллическими шипами, между которыми " +"проскакивают разряды." + +#: lang/json/MONSTER_from_json.py +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" +msgstr[0] "потерянная-шельмородица" +msgstr[1] "потерянные-шельмородицы" +msgstr[2] "потерянных-шельмородиц" +msgstr[3] "потерянные-шельмородицы" + +#. ~ Description for {'str': 'stray wretchmother'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." +msgstr "" +"Большое заполненное кристаллами существо, способное совершать мощные прыжки," +" похожее на инопланетного волка. Из верхнего слоя кристаллов прорастают " +"несколько беспокойных мясистых усиков, которые втягивают все, до чего " +"дотянулись, в скрежещущую пасть прямо под его телом. Что-то неприятно " +"корчится под темной поверхностью его стеклянистого тела." #: lang/json/MONSTER_from_json.py msgid "germinating crystal mass" @@ -94314,6 +93955,26 @@ msgstr[3] "прорастающие кристаллические массы" #. 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little" +" bit of organic matter it can find and drawing it to its base." +msgstr "" +"Маленький кристаллический шарик, вросший в землю сквозь грязь и бетон. Он " +"покрыт усиками, похожими на лапшу, которые извиваются по земле, захватывая " +"любые кусочки органики, какие найдутся, и притягивая их к себе." + +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "прорастающая кристаллическая масса" +msgstr[1] "прорастающие кристаллические массы" +msgstr[2] "прорастающих кристаллических масс" +msgstr[3] "прорастающие кристаллические массы" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting +#. crystal masses'} +#: lang/json/MONSTER_from_json.py +msgid "" "A human-sized mound of shimmering blue-purple crystals growing on the base " "of what looks like a mound of foul smelling garbage and organic leftovers. " "Long, thin tendrils appear to grow out of the mound, and are subtly rooting " @@ -94405,10 +94066,10 @@ msgstr[3] "стены из кристаллической массы" #: lang/json/MONSTER_from_json.py msgid "" "A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." +"residual electric energy." msgstr "" "Массивная стена из толстых, угловатых кристаллов, которые слабо светятся и " -"пощелкивают разрядами электричества." +"пощелкивают остаточными разрядами электричества." #: lang/json/MONSTER_from_json.py msgid "crystal mass hive" @@ -94440,14 +94101,14 @@ msgstr "" "поверхностью стеклянных «камней»." #: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" -msgstr[0] "кристаллический клещ" -msgstr[1] "кристаллических клеща" -msgstr[2] "кристаллических клещей" -msgstr[3] "кристаллические клещи" +msgid "crystal seed" +msgid_plural "crystal seeds" +msgstr[0] "семя кристалла" +msgstr[1] "семени кристалла" +msgstr[2] "семян кристалла" +msgstr[3] "семена кристалла" -#. ~ Description for {'str': 'crystal mite'} +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" "A tiny, multilegged creature that appears to be made of a chunk of crystal." @@ -94459,23 +94120,23 @@ msgstr "" "когда-нибудь набрать массу для высеивания своей кристаллической колонии." #: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" -msgstr[0] "раздутый кристаллический клещ" -msgstr[1] "раздутых кристаллических клеща" -msgstr[2] "раздутых кристаллических клещи" -msgstr[3] "раздутые кристаллические клещи" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" +msgstr[0] "раздутое семя кристалла" +msgstr[1] "раздутых семени кристалла" +msgstr[2] "раздутых семян кристалла" +msgstr[3] "раздутые семена кристалла" -#. ~ Description for {'str': 'engorged crystal mite'} +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into" -" a proper crystal mass." +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." msgstr "" -"Раздувшийся кристаллический клещ, выросший до размеров кошки, накопивший " -"достаточно кристаллической структуры, чтобы закрепиться и начать " -"превращаться в настоящую кристаллическую массу." +"Раздувшееся кристаллическое семя, выросшее до размеров кошки, накопившее " +"достаточно биомассы, чтобы закрепиться и начать превращаться в настоящую " +"кристаллическую массу." #. ~ Description for {'str': 'C-4 hack'} #: lang/json/MONSTER_from_json.py @@ -94533,11 +94194,11 @@ msgstr[3] "компсогнаты" #. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." msgstr "" -"Двуногий динозавр размером примерно с индейку. У него небольшие, но острые " -"зубы и когти." +"Быстро бегающий двуногий динозавр размером примерно с индейку. У него " +"небольшие, но острые зубы и когти." #: lang/json/MONSTER_from_json.py msgid "Gallimimus" @@ -94573,6 +94234,23 @@ msgstr "" "Пернатый двуногий динозавр. В стоячем положении размером с человека. " "Выглядит как страус-рептилия с круглой прочной головой." +#: lang/json/MONSTER_from_json.py +msgid "Camptosaurus" +msgid_plural "Camptosaurus" +msgstr[0] "камптозавр" +msgstr[1] "камптозавра" +msgstr[2] "камптозавров" +msgstr[3] "камптозавры" + +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "" +"Крупный пернатый двуногий динозавр с сильными ногами, широкими плечами и " +"заостренным клювом. Он движется медленно, но с огромной силой." + #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" msgid_plural "Spinosaurus" @@ -94600,8 +94278,26 @@ msgstr[3] "тираннозавры" #. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." -msgstr "Посмотрите на эти зубы! А вот когти не очень большие." +msgid "" +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." +msgstr "" +"Огромный зубы в массивной челюсти, злобные глазки и мощное телосложение, " +"двигающее эту машину смерти." + +#: lang/json/MONSTER_from_json.py +msgid "Albertosaurus" +msgid_plural "Albertosaurus" +msgstr[0] "альбертозавр" +msgstr[1] "альбертозавра" +msgstr[2] "альбертозавров" +msgstr[3] "альбертозавры" + +#. ~ Description for {'str_sp': 'Albertosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" +msgstr "" +"Динозавр, похожий на тираннозавра, но меньше и с более длинными лапами." #: lang/json/MONSTER_from_json.py msgid "Triceratops" @@ -94630,9 +94326,11 @@ msgstr[3] "стегозавры" #. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." msgstr "" -"Большой четвероногий динозавр с пластинами на спине и хвостом с шипами." +"Большой и мделительный четвероногий динозавр с пластинами на спине и хвостом" +" с шипами." #: lang/json/MONSTER_from_json.py msgid "Ankylosaurus" @@ -94651,6 +94349,25 @@ msgstr "" "Этот динозавр выглядит как гигантский доисторический броненосец. На конце " "его хвоста находится массивная костяная булава с шипами." +#: lang/json/MONSTER_from_json.py +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" +msgstr[0] "цератозавр" +msgstr[1] "цератозавра" +msgstr[2] "цератозавров" +msgstr[3] "цератозавры" + +#. ~ Description for {'str_sp': 'Ceratosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." +msgstr "" +"Большой, быстрый хищный двуногий динозавр, чья голова украшена тремя " +"цветными рогами на голове, усеянный яркими кожными костями с длинными " +"острыми зубами и длинным гибким хвостом." + #: lang/json/MONSTER_from_json.py msgid "Allosaurus" msgid_plural "Allosaurus" @@ -94678,11 +94395,11 @@ msgstr[3] "эорапторы" #. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." +"A bipedal dinosaur about the size of a chicken. It darts around quickly and" +" has long arms for grabbing what it desires. It's holding something." msgstr "" -"Двуногий динозавр размером с курицу. Он обитает рядом с лесами, добывая себе" -" в пищу маленьких животных и траву." +"Двуногий динозавр размером с курицу. Он быстро мечется туда-сюда, хватая " +"своими длинными лапами что приглянётся. Он что-то держит в лапах." #: lang/json/MONSTER_from_json.py msgid "Velociraptor" @@ -94718,6 +94435,23 @@ msgstr "" "Средний двуногий динозавр, покрытый оперением. На каждой ноге растёт большой" " серповидный коготь." +#: lang/json/MONSTER_from_json.py +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" +msgstr[0] "био-оперативник дейноних" +msgstr[1] "био-оперативника дейнониха" +msgstr[2] "био-оперативникоа дейнонихов" +msgstr[3] "био-оперативники дейнонихи" + +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." +msgstr "" +"Двуногий динозавр, покрытый оперением и потрескивающей бионикой. На каждой " +"ноге растёт большой светящийся серповидный коготь." + #: lang/json/MONSTER_from_json.py msgid "Utahraptor" msgid_plural "Utahraptors" @@ -94779,8 +94513,12 @@ msgstr[3] "дилофозавры" #. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." -msgstr "Средний динозавр с зелёной жижей, стекающей из его пасти." +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its " +"head." +msgstr "" +"Средних размеров динозавр с острыми зубами и двумя костяными гребнями на его" +" голове." #: lang/json/MONSTER_from_json.py msgid "greenish yellow hatchling" @@ -94916,6 +94654,25 @@ msgstr[3] "тираннозомби рекс" msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "Огромная груда рваной, зловонной плоти, щерящейся огромными зубами." +#: lang/json/MONSTER_from_json.py +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" +msgstr[0] "Z-дейноних" +msgstr[1] "Z-дейнониха" +msgstr[2] "Z-дейнонихов" +msgstr[3] "Z-дейнонихи" + +#. ~ Description for {'str_sp': 'Z-Deinonychus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." +msgstr "" +"Покачивающийся труп средних размеров двуногого динозавра, покрытый " +"ободранным оперением и черной жижей. На каждой ноге растёт большой " +"серповидный коготь." + #: lang/json/MONSTER_from_json.py msgid "improvised SMG turret" msgid_plural "improvised SMG turrets" @@ -95028,10 +94785,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "demon spiderling" msgid_plural "demon spiderlings" -msgstr[0] "демонический паучонок" -msgstr[1] "демонических паучонка" -msgstr[2] "демонических паучат" -msgstr[3] "демонические паучата" +msgstr[0] "демонический паучок" +msgstr[1] "демонических паучка" +msgstr[2] "демонических паучков" +msgstr[3] "демонические паучки" #. ~ Description for demon spiderling #: lang/json/MONSTER_from_json.py @@ -95148,6 +94905,54 @@ msgstr "" "злобным зелёным светом. Его морда напоминает череп, а с кинжалоподобных " "клыков капает кислота." +#: lang/json/MONSTER_from_json.py +msgid "goblin warrior" +msgid_plural "goblin warriors" +msgstr[0] "гоблин-воин" +msgstr[1] "гоблина-воина" +msgstr[2] "гоблинов-воинов" +msgstr[3] "гоблины-воины" + +#. ~ Description for {'str': 'goblin warrior'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." +msgstr "" +"Небольшой гуманоид, покрытый грязью, потрясающий дубиной и выкрикивающий " +"оскорбления." + +#: lang/json/MONSTER_from_json.py +msgid "goblin slinger" +msgid_plural "goblin slingers" +msgstr[0] "гоблин-пращник" +msgstr[1] "гоблина-пращника" +msgstr[2] "гоблинов-пращников" +msgstr[3] "гоблины-пращники" + +#. ~ Description for {'str': 'goblin slinger'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that slings rocks almost as well as it slings insults." +msgstr "Уродливое существо, метко мечущее камни и оскорбления." + +#: lang/json/MONSTER_from_json.py +msgid "goblin chieftain" +msgid_plural "goblin chieftains" +msgstr[0] "гоблин-вождь" +msgstr[1] "гоблина-вождя" +msgstr[2] "гоблинов-вождей" +msgstr[3] "гоблины-вожди" + +#. ~ Description for {'str': 'goblin chieftain'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that was promoted to chieftain because it figured out which" +" end of the weapon is pointy." +msgstr "" +"Уродливое существо, ставшее вождём, осознав, что нужно тыкать врагов острой " +"частью оружия." + #: lang/json/MONSTER_from_json.py msgid "clay golem" msgid_plural "clay golems" @@ -95324,8 +95129,8 @@ msgid "" "A once-and-future lizardfolk shaman, this large crocodile no longer has any " "hint of any humanoid characteristics and looks very, very dangerous." msgstr "" -"Шаман-ящеролюд в прошлом и будущем, сейчас этот крупный крокодил утратил все" -" человеческие черты и выглядит очень, очень опасным." +"Шаман-ящеролюд в прошлом и будущем, сейчас этот крупный крокодил утратил " +"свои гуманоидные черты и выглядит очень, очень опасным." #: lang/json/MONSTER_from_json.py msgid "owlbear" @@ -95347,8 +95152,8 @@ msgstr "" "Ужасная сова-медведь, вероятно, является результатом генетических " "экспериментов какого-то безумного волшебника. Эти существа обитают в густых " "лесных районах умеренного климата, а также в подземных лабиринтах. Они — " -"хищники, агрессивные охотники, и все время злы. Они нападают на добычу в " -"поле зрения и будут сражаться до смерти." +"хищники, агрессивные охотники, и все время злы. Они нападают на добычу , " +"едва заметив, и будут сражаться до смерти." #: lang/json/MONSTER_from_json.py msgid "black pudding" @@ -95501,10 +95306,10 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "lemure" msgid_plural "lemures" -msgstr[0] "лемур" -msgstr[1] "лемура" -msgstr[2] "лемуров" -msgstr[3] "лемуры" +msgstr[0] "лемьюр" +msgstr[1] "лемьюра" +msgstr[2] "лемьюров" +msgstr[3] "лемьюры" #. ~ Description for lemure #: lang/json/MONSTER_from_json.py @@ -95512,517 +95317,9 @@ msgid "" "A lemure resembles a molten mass of flesh with a vaguely humanoid head and " "torso." msgstr "" -"Лемур напоминает расплавленную массу плоти со слабо выраженной " +"Лемьюр напоминает расплавленную массу плоти со слабо выраженной " "человекоподобной головой и туловищем." -#: lang/json/MONSTER_from_json.py -msgid "automated turret" -msgid_plural "automated turrets" -msgstr[0] "автоматическая турель" -msgstr[1] "автоматических турели" -msgstr[2] "автоматических турелей" -msgstr[3] "автоматические турели" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed defense turret" -msgid_plural "disarmed defense turrets" -msgstr[0] "оборонная турель (разоружено)" -msgstr[1] "оборонные турели (разоружено)" -msgstr[2] "оборонных турелей (разоружено)" -msgstr[3] "оборонная турель (разоружено)" - -#. ~ Description for disarmed defense turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-series turret, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. It requires an integrated firearm module to " -"work." -msgstr "" -"Турель TX-серии от «Дженерал Атомикс», небольшая автоматическая турель в " -"форме таблетки, использующая современные системы АРЦ для динамической " -"перенастройки на новые дружеские и вражеские цели. Требуется встроенный " -"модуль вооружения для стрельбы." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed military turret" -msgid_plural "disarmed military turrets" -msgstr[0] "военная турель (разоружено)" -msgstr[1] "военные турели (разоружено)" -msgstr[2] "военных турелей (разоружено)" -msgstr[3] "военная турель (разоружено)" - -#. ~ Description for disarmed military turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX series turret, a military-grade automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. It requires a integrated gun module to operate." -msgstr "" -"Турель TX-серии от «Лидворкс», автоматическая турель военного образца, " -"использующая современные системы АРЦ для динамической перенастройки на новые" -" дружеские и вражеские цели. Требуется встроенный модуль вооружения для " -"стрельбы." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed advanced turret" -msgid_plural "disarmed advanced turrets" -msgstr[0] "улучшенная турель (разоружено)" -msgstr[1] "улучшенные турели (разоружено)" -msgstr[2] "улучшенных турелей (разоружено)" -msgstr[3] "улучшенная турель (разоружено)" - -#. ~ Description for disarmed advanced turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-series turret, an advanced automated gun turret using state" -" of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. It requires an integrated gun module to function." -msgstr "" -"Турель T-серии от «ДаблТех», автоматическая улучшенная турель, использующая " -"современные системы АРЦ для динамической перенастройки на новые дружеские и " -"вражеские цели. Требуется встроенный модуль вооружения для стрельбы." - -#: lang/json/MONSTER_from_json.py -msgid "9mm turret" -msgid_plural "9mm turrets" -msgstr[0] "9-мм турель" -msgstr[1] "9-мм турели" -msgstr[2] "9-мм турелей" -msgstr[3] "9-мм турели" - -#. ~ Description for 9mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-1 Guardian, a small, pill-shaped automated gun turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " -"full 360 degrees." -msgstr "" -"TX-1 Guardian от «Дженерал Атомикс», небольшая автоматическая турель в форме" -" таблетки, использующая современные системы АРЦ для динамической " -"перенастройки на новые дружеские и вражеские цели. Оснащена встроенным ПП 9 " -"мм, который может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "shotgun turret" -msgid_plural "shotgun turrets" -msgstr[0] "дробо-турель" -msgstr[1] "дробо-турели" -msgstr[2] "дробо-турелей" -msgstr[3] "дробо-турели" - -#. ~ Description for shotgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-4 Protector, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 12ga shotgun can swivel a " -"full 360 degrees." -msgstr "" -"TX-4 Protector от «Дженерал Атомикс», небольшая автоматическая турель в " -"форме таблетки, использующая современные системы АРЦ для динамической " -"перенастройки на новые дружеские и вражеские цели. Оснащена встроенным " -"дробовиком 12 калибра, который может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "riot control turret" -msgid_plural "riot control turrets" -msgstr[0] "турель осназа" -msgstr[1] "турели осназа" -msgstr[2] "турелей осназа" -msgstr[3] "турели осназа" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1a Warden, a small, pill-shaped automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 40mm teargas launcher can swivel " -"a full 360 degrees." -msgstr "" -"TZ-1a Смотритель от «Дженерал Атомикс», небольшая автоматическая турель в " -"форме таблетки, использующая современные системы АРЦ для динамической " -"перенастройки на новые дружеские и вражеские цели. Оснащена встроенной 40-мм" -" установкой для запуска гранат со слезоточивым газом, которая может " -"поворачиваться на 360 градусов." - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1b Pacifier, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 40mm beanbag launcher can " -"swivel a full 360 degrees." -msgstr "" -"TZ-1b Усмиритель от «Дженерал Атомикс», небольшая автоматическая турель в " -"форме таблетки, использующая современные системы АРЦ для динамической " -"перенастройки на новые дружеские и вражеские цели. Оснащена встроенной 40-мм" -" установкой для запуска шумовых гранат, которая может поворачиваться на 360 " -"градусов." - -#: lang/json/MONSTER_from_json.py -msgid "5.56mm turret" -msgid_plural "5.56mm turrets" -msgstr[0] "5.56-мм турель" -msgstr[1] "5.56-мм турели" -msgstr[2] "5.56-мм турелей" -msgstr[3] "5.56-мм турели" - -#. ~ Description for 5.56mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32L Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " -"360 degrees." -msgstr "" -"TX-32L Часовой от «Лидворкс», автоматическая пулемётная турель военного " -"образца, использующая современные системы АРЦ для динамической перенастройки" -" на новые дружеские и вражеские цели. Оснащена встроенным оружием 5,56 мм, " -"которое может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "7.62mm turret" -msgid_plural "7.62mm turrets" -msgstr[0] "7.62-мм турель" -msgstr[1] "7.62-мм турели" -msgstr[2] "7.62-мм турелей" -msgstr[3] "7.62-мм турели" - -#. ~ Description for 7.62mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32H Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " -"360 degrees." -msgstr "" -"TX-32H Часовой от «Лидворкс», автоматическая пулемётная турель военного " -"образца, использующая современные системы АРЦ для динамической перенастройки" -" на новые дружеские и вражеские цели. Оснащена встроенным оружием 7,62 мм, " -"которое может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "50cal turret" -msgid_plural "50cal turrets" -msgstr[0] "турель .50 калибра" -msgstr[1] "турели .50 калибра" -msgstr[2] "турелей .50 калибра" -msgstr[3] "турели .50 калибра" - -#. ~ Description for 50cal turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-13 Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 50 caliber machinegun can " -"swivel a full 360 degrees." -msgstr "" -"TX-13 Часовой от «Лидворкс», автоматическая пулемётная турель военного " -"образца, использующая современные системы АРЦ для динамической перенастройки" -" на новые дружеские и вражеские цели. Оснащена встроенным оружием .50 " -"калибра, которое может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "8x40mm turret" -msgid_plural "8x40mm turrets" -msgstr[0] "8х40-мм турель" -msgstr[1] "8х40-мм турели" -msgstr[2] "8х40-мм турелей" -msgstr[3] "8х40-мм турели" - -#. ~ Description for 8x40mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-01A Warden, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " -"full 360 degrees." -msgstr "" -"TX-01A Warden от «Лидворкс», автоматическая пулемётная турель военного " -"образца, использующая современные системы АРЦ для динамической перенастройки" -" на новые дружеские и вражеские цели. Оснащена встроенным оружием 8х40 мм, " -"которое может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "needle turret" -msgid_plural "needle turrets" -msgstr[0] "игольная турель" -msgstr[1] "игольных турели" -msgstr[2] "игольные турели" -msgstr[3] "игольных турелей" - -#. ~ Description for needle turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TN-7 Sentry, a military-grade automated flechette turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 5mm flechette gun can swivel a " -"full 360 degrees." -msgstr "" -"TN-7 Часовой от «Лидворкс», автоматическая турель военного образца, " -"использующая современные системы АРЦ для динамической перенастройки на новые" -" дружеские и вражеские цели. Оснащена встроенным оружием с 5-мм флешеттами, " -"которое может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "40mm grenade turret" -msgid_plural "40mm grenade turrets" -msgstr[0] "40-мм гранатомётная турель" -msgstr[1] "40-мм гранатомётных турели" -msgstr[2] "40-мм гранатомётные турели" -msgstr[3] "40-мм гранатомётных турелей" - -#. ~ Description for 40mm grenade turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TG-7 Sentry, a military-grade automated gun turret using" -" state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated 40mm grenade launcher can swivel a full " -"360 degrees." -msgstr "" -"TG-7 Часовой от «Лидворкс», автоматическая турель военного образца, " -"использующая современные системы АРЦ для динамической перенастройки на новые" -" дружеские и вражеские цели. Оснащена встроенным 40-мм гранатомётом, который" -" может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "flame turret" -msgid_plural "flame turrets" -msgstr[0] "огне-турель" -msgstr[1] "огне-турели" -msgstr[2] "огне-турелей" -msgstr[3] "огне-турели" - -#. ~ Description for flame turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TF-7 Sentry, a military-grade automated flame turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated flamethrower can swivel a full " -"360 degrees." -msgstr "" -"TF-7 Часовой от «Лидворкс», автоматическая огнемётная турель военного " -"образца, использующая современные системы АРЦ для динамической перенастройки" -" на новые дружеские и вражеские цели. Оснащена встроенным огнемётом, который" -" может поворачиваться на 360 градусов." - -#. ~ Description for laser turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-L3 Scintillator, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated laser emitter can swivel a full 360 " -"degrees." -msgstr "" -"T-L3 Сцинтиллятор от «ДаблТех», автоматическая улучшенная лазерная турель, " -"использующая современные системы АРЦ для динамической перенастройки на новые" -" дружеские и вражеские цели. Оснащена встроенным лазерным излучателем, " -"который может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "acid turret" -msgid_plural "acid turrets" -msgstr[0] "кислотная турель" -msgstr[1] "кислотных турели" -msgstr[2] "кислотных турелей" -msgstr[3] "кислотные турели" - -#. ~ Description for acid turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-A3 Disintegrator, an advanced automated acid turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated acid thrower can swivel a full 360 " -"degrees." -msgstr "" -"T-A3 Дезинтегратор от «ДаблТех», автоматическая улучшенная кислотная турель," -" использующая современные системы АРЦ для динамической перенастройки на " -"новые дружеские и вражеские цели. Оснащена встроенной кислотной установкой, " -"которая может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "plasma turret" -msgid_plural "plasma turrets" -msgstr[0] "плазменная турель" -msgstr[1] "плазменных турели" -msgstr[2] "плазменных турелей" -msgstr[3] "плазменные турели" - -#. ~ Description for plasma turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-P3 Scathefire, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated plasma ejector can swivel a full 360 " -"degrees." -msgstr "" -"T-P3 Губительный огонь от «ДаблТех», автоматическая улучшенная плазменная " -"турель, использующая современные системы АРЦ для динамической перенастройки " -"на новые дружеские и вражеские цели. Оснащена встроенной плазменной пушкой, " -"которая может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "railgun turret" -msgid_plural "railgun turrets" -msgstr[0] "рельсовая турель" -msgstr[1] "рельсовых турели" -msgstr[2] "рельсовых турелей" -msgstr[3] "рельсовые турели" - -#. ~ Description for railgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-R3 Arbalest, an advanced automated railgun turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated railgun can swivel a full 360 degrees." -msgstr "" -"T-R3 Самострел от «ДаблТех», автоматическая улучшенная рельсовая турель, " -"использующая современные системы АРЦ для динамической перенастройки на новые" -" дружеские и вражеские цели. Оснащена встроенной рельсовой пушкой, которая " -"может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "advanced electro turret" -msgid_plural "advanced electro turrets" -msgstr[0] "улучшенная электротурель" -msgstr[1] "улучшенных электротурели" -msgstr[2] "улучшенных электротурелей" -msgstr[3] "улучшенные электротурели" - -#. ~ Description for advanced electro turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-E3 Thunderstroke, an advanced automated electro turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated electro caster can swivel a full " -"360 degrees." -msgstr "" -"T-E3 Молния от «ДаблТех», автоматическая улучшенная электротурель, " -"использующая современные системы АРЦ для динамической перенастройки на новые" -" дружеские и вражеские цели. Оснащена встроенным электроизлучателем, который" -" может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "EMP turret" -msgid_plural "EMP turrets" -msgstr[0] "ЭМИ-турель" -msgstr[1] "ЭМИ-турели" -msgstr[2] "ЭМИ-турелей" -msgstr[3] "ЭМИ-турели" - -#. ~ Description for EMP turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-EMP3 Corona, an advanced automated EMP turret using state " -"of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. Its electro magnetic pulse generator can swivel a full 360 " -"degrees." -msgstr "" -"T-EMP3 Корона от «ДаблТех», автоматическая улучшенная ЭМИ турель, " -"использующая современные системы АРЦ для динамической перенастройки на новые" -" дружеские и вражеские цели. Оснащена встроенным ЭМИ излучателем, который " -"может поворачиваться на 360 градусов." - -#: lang/json/MONSTER_from_json.py -msgid "guardin gnome" -msgid_plural "guardin gnomes" -msgstr[0] "засадный гном" -msgstr[1] "засадных гнома" -msgstr[2] "засадных гномов" -msgstr[3] "засадные гномы" - -#. ~ 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 "Обычный и совершенно безопасный садовый гном." - -#: lang/json/MONSTER_from_json.py -msgid "utility robot" -msgid_plural "utility robots" -msgstr[0] "служебный робот" -msgstr[1] "служебных робота" -msgstr[2] "служебных роботов" -msgstr[3] "служебные роботы" - -#. ~ Description for utility robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of utility robot formerly in use by government " -"agencies, private corporations, and civilians alike." -msgstr "" -"Одна из многих моделей вспомогательных роботов, ранее использовавшаяся " -"правительственными учреждениями, частными корпорациями и гражданскими " -"лицами." - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and trespassers." -msgstr "" -"Маленький летающий робот, оснащённый набором камер и вооружённый " -"ослепительной вспышкой. Больше не связанный с полицией или сетью службы " -"безопасности, он продолжает бесконечную охоту за преступниками и " -"нарушителями." - -#: lang/json/MONSTER_from_json.py -msgid "defense robot" -msgid_plural "defense robots" -msgstr[0] "оборонный робот" -msgstr[1] "оборонных робота" -msgstr[2] "оборонных роботов" -msgstr[3] "оборонные роботы" - -#. ~ Description for defense robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is armed with an electric prod and an integrated 9mm firearm." -msgstr "" -"Автоматический оборонный робот, всё ещё активен, благодаря своему " -"внутреннему источнику питания. Вооружён электрической дубинкой и встроенным " -"огнестрельным оружием 9 мм." - -#: lang/json/MONSTER_from_json.py -msgid "security robot" -msgid_plural "security robots" -msgstr[0] "робохранник" -msgstr[1] "робохранника" -msgstr[2] "робохранников" -msgstr[3] "робохранники" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an integrated 9mm firearm." -msgstr "" -"Автоматический оборонный робот, всё ещё активен, благодаря своему " -"внутреннему источнику питания. Вооружён встроенным оружием 9 мм." - -#: lang/json/MONSTER_from_json.py -msgid "riotcontrol robot" -msgid_plural "riotcontrol robots" -msgstr[0] "робот осназа" -msgstr[1] "робота осназа" -msgstr[2] "роботов осназа" -msgstr[3] "роботы осназа" - -#. ~ Description for riotcontrol robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod, tear gas sprayer, and integrated" -" 40mm beanbag launcher." -msgstr "" -"Автоматический оборонный робот, всё ещё активен, благодаря своему " -"внутреннему источнику питания. Вооружён электрической дубинкой, распылителем" -" слезоточивого газа и встроенным 40-мм гранатомётом с шумовыми гранатами." - #: lang/json/MONSTER_from_json.py msgid "necco" msgid_plural "neccos" @@ -96362,1091 +95659,21 @@ msgstr "" "интеграции с традиционными войсками." #: lang/json/MONSTER_from_json.py -msgid "craftbuddy" -msgid_plural "craftbuddies" -msgstr[0] "ремонтный бот" -msgstr[1] "ремонтных бота" -msgstr[2] "ремонтных ботов" -msgstr[3] "ремонтные боты" +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" +msgstr[0] "мумия из туалетной бумаги" +msgstr[1] "мумии из туалетной бумаги" +msgstr[2] "мумий из туалетной бумаги" +msgstr[3] "мумии из туалетной бумаги" -#. ~ Description for {'str': 'craftbuddy', 'str_pl': 'craftbuddies'} +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper +#. mummies'} #: lang/json/MONSTER_from_json.py msgid "" -"A mobile crafting station used by workers in mines, on oil rigs, and in " -"other remote locales. In it's active state, the craftbuddy merely follows " -"its user. In it's deactivated state, the craft buddy is useable as a " -"toolbench and multipurpose workstation." +"Vaguely humanoid in shape, layered in something resembling toilet paper." msgstr "" -"Мобильная производственная станция, используется рабочими в шахтах, на " -"нефтяных платформах и в других отдалённых местах. В активированном состоянии" -" ремонтный бот просто следует за своим рабочим-пользователем. В " -"деактивированном состоянии ремонтный бот можно использовать в качестве " -"инструментальной и многоцелевой рабочей станции." - -#: lang/json/MONSTER_from_json.py -msgid "automated armor" -msgid_plural "automated armors" -msgstr[0] "автоматическая броня" -msgstr[1] "автоматической брони" -msgstr[2] "автоматической брони" -msgstr[3] "автоматическая броня" - -#. ~ Description for automated armor -#: lang/json/MONSTER_from_json.py -msgid "" -"A suit of power armor temporarily controlled by an attached AI-core. " -"Originally intended as a way to retrieve dead or wounded operators from " -"combat, it was more commonly used for transporting the suit itself. The AI " -"is limited, and makes a poor combatant." -msgstr "" -"Силовая броня, временно управляемая ядром с ИИ. Первоначальной задачей было " -"возвращение убитых или раненых операторов с поля боя, однако система чаще " -"использовалась для транспортировки самой брони. ИИ ограничен и роль бойца " -"выполняет плохо." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "light auto armor" -msgid_plural "light auto armors" -msgstr[0] "лёгкая авто броня" -msgstr[1] "лёгкие авто брони" -msgstr[2] "лёгких авто бронь" -msgstr[3] "лёгкая авто броня" - -#: lang/json/MONSTER_from_json.py -msgid "auto armor" -msgid_plural "auto armors" -msgstr[0] "автоброня" -msgstr[1] "автоброни" -msgstr[2] "автоброни" -msgstr[3] "автоброня" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "heavy auto armor" -msgid_plural "heavy auto armors" -msgstr[0] "тяжёлая авто броня" -msgstr[1] "тяжёлые авто брони" -msgstr[2] "тяжёлых авто бронь" -msgstr[3] "тяжёлая авто броня" - -#: lang/json/MONSTER_from_json.py -msgid "floating lantern" -msgid_plural "floating lanterns" -msgstr[0] "парящий фонарь" -msgstr[1] "парящих фонаря" -msgstr[2] "парящих фонарей" -msgstr[3] "парящие фонари" - -#. ~ Description for floating lantern -#: lang/json/MONSTER_from_json.py -msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "Восстановленный дрон, переоборудованный в мобильный источник света." - -#: lang/json/MONSTER_from_json.py -msgid "distract-o-hack" -msgid_plural "distract-o-hacks" -msgstr[0] "отвлекатель" -msgstr[1] "отвлекателя" -msgstr[2] "отвлекателей" -msgstr[3] "отвлекатели" - -#. ~ Description for distract-o-hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed into a makeshift diversion tactic. Once " -"activated it will light up, produce sound, emit sparks, and move towards " -"hostile targets. Although fragile, the distract-o-hack's erratic movements " -"make it difficult to hit." -msgstr "" -"Восстановленный дрон, переоборудованный в самодельный отвлекающий аппарат. " -"Будучи активированным, начинает мигать, производить звуки, испускать искры и" -" двигаться к враждебным целям. Несмотря на хрупкость, отвлекатель совершает " -"беспорядочные движения, становясь трудной для попадания целью." - -#: lang/json/MONSTER_from_json.py -msgid "arsonhack" -msgid_plural "arsonhacks" -msgstr[0] "поджигатель" -msgstr[1] "поджигателя" -msgstr[2] "поджигателей" -msgstr[3] "поджигатели" - -#. ~ Description for arsonhack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread flame and cause property damage. It's" -" almost as dangerous to its user as it is to the surroundings. The " -"arsonhack cannot be recovered once activated. Only a reckless madman would " -"dare to build this." -msgstr "" -"Восстановленный дрон, переоборудованный в испускатель огня, наносящий урон " -"всему вокруг. Опасен для пользователя не меньше чем для окружения. Будучи " -"активированным, уже не может быть восстановлен. Только полный безумец " -"осмелился бы построить это." - -#: lang/json/MONSTER_from_json.py -msgid "spore hack" -msgid_plural "spore hacks" -msgstr[0] "споромёт" -msgstr[1] "споромёта" -msgstr[2] "споромётов" -msgstr[3] "споромёты" - -#. ~ Description for spore hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread alien contaminants. It periodically " -"releases a puff of fungal spores. Who in their right mind would build such " -"a thing?" -msgstr "" -"Восстановленный дрон, переоборудованный для распространения чужеродных спор." -" Он периодически выпускает волну грибковых репродуктивных образований. Кто в" -" здравом уме будет строить такую вещь?" - -#: lang/json/MONSTER_from_json.py -msgid "watercannon turret" -msgid_plural "watercannon turrets" -msgstr[0] "водяная турель" -msgstr[1] "водяных турели" -msgstr[2] "водяных турелей" -msgstr[3] "водяные турели" - -#. ~ Description for watercannon turret -#: lang/json/MONSTER_from_json.py -msgid "" -"A turret equipped with a jury-rigged watercannon in place of a proper " -"firearm. It's highly ineffective but the ammo is cheap." -msgstr "" -"Турель, оснащенная самодельной водяной пушкой, вместо нормального, " -"огнестрельного варианта. Это очень неэффективно, но боеприпасы бесплатны." - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and tresspassers." -msgstr "" -"Маленький летающий робот, оснащённый набором камер и вооружённый " -"ослепительной вспышкой. Больше не связанный с полицией или сетью службы " -"безопасности, он продолжает бесконечную охоту за преступниками и " -"нарушителями." - -#: lang/json/MONSTER_from_json.py -msgid "floating heater" -msgid_plural "floating heaters" -msgstr[0] "парящий обогреватель" -msgstr[1] "парящих обогревателя" -msgstr[2] "парящих обогревателей" -msgstr[3] "парящие обогреватели" - -#. ~ Description for floating heater -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space." -msgstr "" -"Восстановленный дрон, переоборудованный в летающий обогреватель. Он " -"постоянно испускает струю тепла, нагревая замкнутое пространство." - -#: lang/json/MONSTER_from_json.py -msgid "floating furnace" -msgid_plural "floating furnaces" -msgstr[0] "парящая печь" -msgstr[1] "парящих печи" -msgstr[2] "парящие печи" -msgstr[3] "парящих печей" - -#. ~ Description for floating furnace -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. Warning! " -"Can result in rapid heatstroke!" -msgstr "" -"Восстановленный дрон, переоборудованный в летающий нагреватель. Он " -"производит струю очень горячего воздуха, нагревая замкнутое пространство. " -"Опасно! Может привести к быстрому тепловому удару!" - -#: lang/json/MONSTER_from_json.py -msgid "burning eye" -msgid_plural "burning eyes" -msgstr[0] "пылающий глаз" -msgstr[1] "пылающих глаза" -msgstr[2] "пылающих глаз" -msgstr[3] "пылающие глаза" - -#. ~ Description for burning eye -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon. The lack of recoil allows " -"the hovering robot to aim and fire without penalty. It has decent range and" -" damage, but requires an extended recharge time between shots." -msgstr "" -"Восстановленный дрон, снабженный лазерным оружием. Отсутствие отдачи " -"позволяет парящему роботу целиться и стрелять без помех. Обладает приемлемым" -" радиусом поражения и уроном, но более медленной перезарядкой между " -"выстрелами." - -#: lang/json/MONSTER_from_json.py -msgid "hazmat bot" -msgid_plural "hazmat bots" -msgstr[0] "химза-бот" -msgstr[1] "химза-бота" -msgstr[2] "химза-ботов" -msgstr[3] "химза-боты" - -#. ~ Description for hazmat bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A utility robot designed for cleaning up waste material in hazardous " -"conditions." -msgstr "Дрон, предназначенный для очистки отходов в опасных условиях." - -#: lang/json/MONSTER_from_json.py -msgid "butler-bot" -msgid_plural "butler-bots" -msgstr[0] "робот-дворецкий" -msgstr[1] "робота-дворецких" -msgstr[2] "роботов-дворецких" -msgstr[3] "роботы-дворецкие" - -#. ~ Description for butler-bot -#: lang/json/MONSTER_from_json.py -msgid "A luxury model utility robot for domestic use." -msgstr "Роскошный универсальный робот для бытового использования." - -#: lang/json/MONSTER_from_json.py -msgid "construction robot" -msgid_plural "construction robots" -msgstr[0] "строительный робот" -msgstr[1] "строительных робота" -msgstr[2] "строительных роботов" -msgstr[3] "строительные роботы" - -#. ~ Description for construction robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of construction robot formerly in use by government " -"agencies and private corporations. It is equipped with an integrated " -"welder, flashlight, nailgun, and jackhammer." -msgstr "" -"Одна из множества моделей строительных роботов, в основном используемых " -"государством и частными корпорациями. Экипирован встроенным сварочным " -"аппаратом, фонариком, гвоздометом и отбойным молотом." - -#: lang/json/MONSTER_from_json.py -msgid "firefighter robot" -msgid_plural "firefighter robots" -msgstr[0] "пожарный робот" -msgstr[1] "пожарных робота" -msgstr[2] "пожарных роботов" -msgstr[3] "пожарные роботы" - -#. ~ Description for firefighter robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of fire-fighting robot formerly in use by local fire " -"departments and emergency services. Designed for entering burning buildings" -" and other situations deemed too dangerous for human firefighters." -msgstr "" -"Одна из множества моделей пожарных роботов, в основном используемых " -"пожарными частями и чрезвычайными службами. Создан для входа в горящие " -"здания и прочих ситуаций, слишком опасных для пожарных." - -#: lang/json/MONSTER_from_json.py -msgid "blob breeder" -msgid_plural "blob breeders" -msgstr[0] "инкубатор сгустков" -msgstr[1] "инкубатора сгустков" -msgstr[2] "инкубаторов сгустков" -msgstr[3] "инкубаторы сгустков" - -#. ~ Description for blob breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of living blobs. Why on Earth" -" would you build this?" -msgstr "" -"Восстановленный хозяйственный робот, переоборудованный в мобильный инкубатор" -" для сгустков. Он периодически выкидывает группу живых сгустков. Как вам " -"вообще пришло в голову смастерить это?" - -#: lang/json/MONSTER_from_json.py -msgid "slime breeder" -msgid_plural "slime breeders" -msgstr[0] "инкубатор слизи" -msgstr[1] "инкубатора слизи" -msgstr[2] "инкубаторов слизи" -msgstr[3] "инкубаторы слизи" - -#. ~ Description for slime breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of friendly blobs." -msgstr "" -"Восстановленный хозяйственный робот, переоборудованный в мобильный инкубатор" -" для сгустков. Он периодически выкидывает группу живых сгустков." - -#: lang/json/MONSTER_from_json.py -msgid "digestron" -msgid_plural "digestrons" -msgstr[0] "автоклав" -msgstr[1] "автоклава" -msgstr[2] "автоклавов" -msgstr[3] "автоклавы" - -#. ~ Description for digestron -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. A useful helper for keeping your front lawn clean of debris…" -" or corpses." -msgstr "" -"Восстановленный хозяйственный робот, переоборудованный в пылесос. Он " -"всасывает в себя вещи с земли и растворяет их с помощью своих запасов " -"кислоты. Эффективный помощник в вопросе содержания вашего двора чистым от " -"мусора… Или трупов." - -#: lang/json/MONSTER_from_json.py -msgid "bee bot" -msgid_plural "bee bots" -msgstr[0] "пчелобот" -msgstr[1] "пчелобота" -msgstr[2] "пчелоботов" -msgstr[3] "пчелоботы" - -#. ~ Description for bee bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers honey combs. It protects the insect " -"colony with a mechanical crossbow mounted to its chassis." -msgstr "" -"Восстановленный хозяйственный робот, переоборудованный в передвижной улей, " -"который периодически удаляет и производит медовые соты. Он защищает колонию " -"с помощью механического арбалета, приделанного к его корпусу." - -#: lang/json/MONSTER_from_json.py -msgid "medical robot" -msgid_plural "medical robots" -msgstr[0] "медробот" -msgstr[1] "медробота" -msgstr[2] "медроботов" -msgstr[3] "медроботы" - -#. ~ Description for medical robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A free roaming medical robot capable of administering powerful anesthetics " -"and performing complex surgical operations, usually in that order. Faulty " -"bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." -msgstr "" -"Свободно перемещающийся медицинский робот, способный вводить сильные " -"анестетики, и проводить сложные хирургические операции (обычно именно в " -"таком порядке). Ошибки в диагностических программах привели к многочисленным" -" судебным искам перед апокалипсисом." - -#: lang/json/MONSTER_from_json.py -msgid "assassination robot" -msgid_plural "assassination robots" -msgstr[0] "робот-ассасин" -msgstr[1] "робота-ассасина" -msgstr[2] "роботов-ассасинов" -msgstr[3] "роботы-ассасины" - -#. ~ Description for assassination robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. Its surgical " -"tools have been replaced with a fearsome set of blades, and its hypodermic " -"needle now delivers powerful toxins." -msgstr "" -"Восстановленный медбот, переоборудованный в машину для убийств. Его " -"хирургические инструменты были заменены набором жутких лезвий, а его " -"подкожные иглы теперь вкалывают сильные яды." - -#: lang/json/MONSTER_from_json.py -msgid "elixirator" -msgid_plural "elixirators" -msgstr[0] "эликсиратор" -msgstr[1] "эликсиратора" -msgstr[2] "эликсираторов" -msgstr[3] "эликсираторы" - -#. ~ Description for elixirator -#: lang/json/MONSTER_from_json.py -msgid "" -"This doesn't work yet. Don't build it… A salvaged medibot with its internal" -" pharma-fabricators repurposed to produce mutagen." -msgstr "" -"Это больше не работает. Не стройте это… Отремонтированный медбот со своим " -"личным производством лекарств, переделанный под производство мутагена." - -#: lang/json/MONSTER_from_json.py -msgid "party bot" -msgid_plural "party bots" -msgstr[0] "патибот" -msgstr[1] "патибота" -msgstr[2] "патиботов" -msgstr[3] "патиботы" - -#. ~ Description for party bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Why on Earth would you build this crazy " -"thing?" -msgstr "" -"Восстановленный медбот, загруженный марихуанной, покрытый разноцветными " -"лампочками и запрограммированный танцевать. Поумнее ничего не могли собрать?" - -#: lang/json/MONSTER_from_json.py -msgid "rat snatcher" -msgid_plural "rat snatchers" -msgstr[0] "крысолов" -msgstr[1] "крысолова" -msgstr[2] "крысоловов" -msgstr[3] "крысоловы" - -#. ~ Description for rat snatcher -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It's faster than " -"the original model but far less sturdy." -msgstr "" -"Восстановленный робот-жук, переоборудованный для охоты на мелкую дичь. Он " -"быстрее оригинала, но гораздо менее прочный." - -#: lang/json/MONSTER_from_json.py -msgid "grab-bot" -msgid_plural "grab-bots" -msgstr[0] "хвататель" -msgstr[1] "хватателя" -msgstr[2] "хватателей" -msgstr[3] "хвататели" - -#. ~ Description for grab-bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " -"meant to work in a pack." -msgstr "" -"Восстановленный робот-жук, переоборудованный в обездвиживателя врагов. Это " -"подразумевает работу в группе." - -#: lang/json/MONSTER_from_json.py -msgid "pest hunter" -msgid_plural "pest hunters" -msgstr[0] "истребитель вредителей" -msgstr[1] "истребителя вредителей" -msgstr[2] "истребителей вредителей" -msgstr[3] "истребители вредителей" - -#. ~ Description for pest hunter -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's " -"small size precludes rapid fire, due to recoil, and requires the use of " -"lightweight caseless ammo." -msgstr "" -"Восстановленный робот-жук, оснащенный 8мм пушкой. Маленький размер робота " -"исключает быстрый огонь из-за отдачи и требует использования легковесных " -"безгильзовых боеприпасов." - -#: lang/json/MONSTER_from_json.py -msgid "insane cyborg" -msgid_plural "insane cyborgs" -msgstr[0] "безумный киборг" -msgstr[1] "безумных киборга" -msgstr[2] "безумных киборгов" -msgstr[3] "безумные киборги" - -#. ~ Description for insane cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A robot body with the head of a human. All kinds of electronic wires and " -"devices are implanted in its head. This cyborg moves erratically and has a " -"confused and deranged look in its eyes." -msgstr "" -"Робот с головой человека. В голову имплантированы всевозможные провода и " -"электронные устройства. Этот киборг хаотично двигается, в его глазах — " -"растерянность и безумие." - -#: lang/json/MONSTER_from_json.py -msgid "necrotic cyborg" -msgid_plural "necrotic cyborgs" -msgstr[0] "некрокиборг" -msgstr[1] "некрокиборга" -msgstr[2] "некрокиборгов" -msgstr[3] "некрокиборги" - -#. ~ Description for necrotic cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Why on Earth " -"would anyone build such an abomination?" -msgstr "" -"Восстановленный киборг с головой зомби-некроманта. Оживлённая голова " -"сохраняет часть своей способности поднимать зомби. Кому вообще понадобилось " -"создавать такую мерзость?" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod and an integrated shotgun." -msgstr "" -"Военный робот, всё ещё активен благодаря своему внутреннему источнику " -"питания. Вооружён электрической дубинкой и встроенным дробовиком." - -#: lang/json/MONSTER_from_json.py -msgid "military robot" -msgid_plural "military robots" -msgstr[0] "военный робот" -msgstr[1] "военных робота" -msgstr[2] "военных роботов" -msgstr[3] "военные роботы" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5.56mm firearm." -msgstr "" -"Военный робот, всё ещё активен, благодаря своему внутреннему источнику " -"питания. Вооружён электрической дубинкой и встроенным огнестрельным оружием " -"5.56 мм." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military training robot still operating due to its internal power core. " -"This one is armed with a high power paintball gun and a foam baton." -msgstr "" -"Военный робот, всё ещё активен, благодаря своему внутреннему источнику " -"питания. Вооружён мощным пейнтбольным приводом и пенопластовой дубинкой." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 7.62mm firearm." -msgstr "" -"Военный робот, всё ещё активен, благодаря своему внутреннему источнику " -"питания. Вооружён электрической дубинкой и встроенным огнестрельным оружием " -"7.62 мм." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 50 caliber firearm." -msgstr "" -"Военный робот, всё ещё активен, благодаря своему внутреннему источнику " -"питания. Вооружён электрической дубинкой и встроенным огнестрельным оружием " -"50 калибра." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 8mm firearm." -msgstr "" -"Военный робот, всё ещё активен, благодаря своему внутреннему источнику " -"питания. Вооружён электрической дубинкой и встроенным огнестрельным оружием " -"8 мм." - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5x50mm flechette gun." -msgstr "" -"Военный робот, всё ещё активен, благодаря своему внутреннему источнику " -"питания. Вооружён электрической дубинкой и встроенным огнестрельным, оружием" -" флешетта 5x50мм дротикового типа." - -#: lang/json/MONSTER_from_json.py -msgid "grenadier robot" -msgid_plural "grenadier robots" -msgstr[0] "робогренадёр" -msgstr[1] "робогренадёра" -msgstr[2] "робогренадёров" -msgstr[3] "робогренадёры" - -#. ~ Description for grenadier robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 40mm grenade launcher." -msgstr "" -"Военный робот, всё ещё активен, благодаря своему внутреннему источнику " -"питания. Этот вооружен электрической дубинкой и встроенным 40мм " -"гранатометом." - -#: lang/json/MONSTER_from_json.py -msgid "military flame robot" -msgid_plural "military flame robots" -msgstr[0] "военный робоогнемёт" -msgstr[1] "военных робоогнемёта" -msgstr[2] "военных робоогнемётов" -msgstr[3] "военные робоогнемёты" - -#. ~ Description for military flame robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated flamethrower." -msgstr "" -"Военный робот, всё ещё активен, благодаря своему внутреннему источнику " -"питания. Этот вооружен электрической дубинкой и встроенным огнеметом." - -#: lang/json/MONSTER_from_json.py -msgid "advanced robot" -msgid_plural "advanced robots" -msgstr[0] "продвинутый робот" -msgstr[1] "продвинутых робота" -msgstr[2] "продвинутых роботов" -msgstr[3] "продвинутые роботы" - -#. ~ Description for advanced robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is armed with a powerful laser-emitter." -msgstr "" -"Продвинутый робот, всё ещё активен, благодаря своему внутреннему, ядерному " -"источнику питания. Эта модель вооружена мощным лазерным излучателем." - -#: lang/json/MONSTER_from_json.py -msgid "laser-emitting robot" -msgid_plural "laser-emitting robots" -msgstr[0] "лазерный робот" -msgstr[1] "лазерных робота" -msgstr[2] "лазерных роботов" -msgstr[3] "лазерные роботы" - -#. ~ Description for laser-emitting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful laser-emitter." -msgstr "" -"Продвинутый робот, всё ещё активен, благодаря своему внутреннему, ядерному " -"источнику питания. Эта модель оснащена мощным лазерным излучателем." - -#: lang/json/MONSTER_from_json.py -msgid "plasma-ejecting robot" -msgid_plural "plasma-ejecting robots" -msgstr[0] "плазмаробот" -msgstr[1] "плазмаробота" -msgstr[2] "плазмароботов" -msgstr[3] "плазмароботы" - -#. ~ Description for plasma-ejecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful plasma-ejector." -msgstr "" -"Продвинутый робот, всё ещё активен, благодаря своему внутреннему, ядерному " -"источнику питания. Эта модель оснащена мощным плазменным излучателем." - -#: lang/json/MONSTER_from_json.py -msgid "railgun robot" -msgid_plural "railgun robots" -msgstr[0] "рельсоробот" -msgstr[1] "рельсоробота" -msgstr[2] "рельсороботов" -msgstr[3] "рельсороботы" - -#. ~ Description for railgun robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful railgun." -msgstr "" -"Продвинутый робот, всё ещё активен, благодаря своему внутреннему, ядерному " -"источнику питания. Эта модель оснащена мощной рельсовой пушкой." - -#: lang/json/MONSTER_from_json.py -msgid "electro-casting robot" -msgid_plural "electro-casting robots" -msgstr[0] "электрокастер-робот" -msgstr[1] "электрокастер-робота" -msgstr[2] "электрокастер-роботов" -msgstr[3] "электрокастер-роботы" - -#. ~ Description for electro-casting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful electro-caster." -msgstr "" -"Продвинутый робот, всё ещё активен, благодаря своему внутреннему, ядерному " -"источнику питания. Эта модель оснащена мощным электро-излучателем." - -#: lang/json/MONSTER_from_json.py -msgid "EMP-projecting robot" -msgid_plural "EMP-projecting robots" -msgstr[0] "ЭМИ-робот" -msgstr[1] "ЭМИ-робота" -msgstr[2] "ЭМИ-роботов" -msgstr[3] "ЭМИ-роботы" - -#. ~ Description for EMP-projecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful EMP-projector." -msgstr "" -"Продвинутый робот, всё ещё активен, благодаря своему внутреннему, ядерному " -"источнику питания. Эта модель оснащена мощным ЭМИ-проектором." - -#: lang/json/MONSTER_from_json.py -msgid "junkyard cowboy" -msgid_plural "junkyard cowboys" -msgstr[0] "мусорный ковбой" -msgstr[1] "мусорных ковбоя" -msgstr[2] "мусорных ковбоев" -msgstr[3] "мусорные ковбои" - -#. ~ Description for junkyard cowboy -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Due to bootleg targeting software, it can only attack nearby targets." -msgstr "" -"Восстановленный оборонительный робот, оснащенный дробовиком и двумя " -"циркулярными пилами. Из-за самопального програмного обеспечения определения " -"целей может атаковать только близкие цели." - -#: lang/json/MONSTER_from_json.py -msgid "shortcircuit samurai" -msgid_plural "shortcircuit samurais" -msgstr[0] "короткозамыкающий самурай" -msgstr[1] "короткозамыкающих самурая" -msgstr[2] "короткозамыкающих самураев" -msgstr[3] "короткозамыкающие самураи" - -#. ~ Description for shortcircuit samurai -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with two electrified blades. The over-" -"taxed power systems result in somewhat sluggish movement and occasional " -"discharges. Keep a safe distance!" -msgstr "" -"Восстановленный оборонительный робот с двумя лезвиями под напряжением. " -"Перегруженные электронные системы приводят к некоторому вялому движению и " -"случайным разрядкам. Держитесь на безопасном расстоянии!" - -#: lang/json/MONSTER_from_json.py -msgid "slapdash paladin" -msgid_plural "slapdash paladins" -msgstr[0] "стремительный паладин" -msgstr[1] "стремительных паладина" -msgstr[2] "стремительных паладинов" -msgstr[3] "стремительные паладины" - -#. ~ Description for slapdash paladin -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. The burning fuel reserves make the robot noisy and " -"smokey." -msgstr "" -"Восстановленный оборонительный робот с самодельным огнеметом и двумя жгуче-" -"горячими лезвиями. Горящее топливо делает робота шумным и дымным." - -#: lang/json/MONSTER_from_json.py -msgid "robo-guardian" -msgid_plural "robo-guardians" -msgstr[0] "робот-страж" -msgstr[1] "робота-стража" -msgstr[2] "роботов-стражей" -msgstr[3] "роботы-стражи" - -#. ~ Description for robo-guardian -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Multiple weapons provide a high rate of fire, but jury-rigged sensors limit " -"the effective range and accuracy. It makes for a good close range " -"bodyguard." -msgstr "" -"Восстановленный военный робот, оснащенный парой встроенных 9 мм пушек. " -"Несколько стволов обеспечивают высокую интенсивность стрельбы, но собранные " -"на коленке сенсоры ограничивают точность и радиус эффективной стрельбы. Это " -"делает его хорошим охранником на коротких дистанциях." - -#: lang/json/MONSTER_from_json.py -msgid "robote deluxe" -msgid_plural "robote deluxe" -msgstr[0] "робот-делюкс" -msgstr[1] "робота-делюкс" -msgstr[2] "роботов-делюкс" -msgstr[3] "роботы-делюкс" - -#. ~ Description for {'str_sp': 'robote deluxe'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style." -msgstr "" -"Роскошный, золотистый робот с бриллиантами, вооруженный парой встроенных 9 " -"мм огнестрельных пушек. Неповторимый и неприлично богатый вид, подходящий " -"для тех, кто хочет выжить в апокалипсисе по стилю." - -#: lang/json/MONSTER_from_json.py -msgid "robo-protector" -msgid_plural "robo-protectors" -msgstr[0] "робот-охранник" -msgstr[1] "робота-охранника" -msgstr[2] "роботов-охранников" -msgstr[3] "роботы-охранники" - -#. ~ Description for robo-protector -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. The " -"modified firearm is only capable of three round bursts, but range and " -"accuracy are decent. It makes for a solid combat ally." -msgstr "" -"Восстановленный военный робот, оснащенный встроенными 5.56 мм винтовками. " -"Модифицированное оружие позволяет стрелять только очередями по три патрона, " -"но дистанция и точность вполне приемлемые. Это делает его надёжным боевым " -"союзником." - -#: lang/json/MONSTER_from_json.py -msgid "robo-defender" -msgid_plural "robo-defenders" -msgstr[0] "робот-защитник" -msgstr[1] "робота-защитника" -msgstr[2] "роботов-защитников" -msgstr[3] "роботы-защитники" - -#. ~ Description for robo-defender -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Improved" -" optics provide nightvision and excellent range, but glitchy targeting " -"software requires an extended pause between shots. It makes for a good long" -" range sniper." -msgstr "" -"Восстановленный военный робот, оснащённый встроенной 50bmg винтовкой. " -"Улучшенная оптика обеспечивает ночное зрение и великолепную дальность, но " -"сбоящая система наведения требует дополнительных пауз между выстрелами. Это " -"делает его хорошим дальнобойным снайпером." - -#: lang/json/MONSTER_from_json.py -msgid "glittering lady" -msgid_plural "glittering ladies" -msgstr[0] "блестящая леди" -msgstr[1] "блестящие леди" -msgstr[2] "блестящих дам" -msgstr[3] "блестящие леди" - -#. ~ Description for {'str': 'glittering lady', 'str_pl': 'glittering ladies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It has two integral lasers and emits a steady pulse of blinding flashes. " -"Due to mismatched focusing lenses, the lasers have limited range." -msgstr "" -"Восстановленный, продвинутый робот, превращенный в светящийся маяк " -"разрушения. Имеет два встроенных лазера и испускает устойчивый импульс " -"ослепляющих вспышек. Из-за неподходящих фокусирующих линз у лазеров " -"ограниченный эффективный радиус." - -#: lang/json/MONSTER_from_json.py -msgid "bitter spinster" -msgid_plural "bitter spinsters" -msgstr[0] "старая дева" -msgstr[1] "старых девы" -msgstr[2] "старых дев" -msgstr[3] "старые девы" - -#. ~ Description for bitter spinster -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " -"pipes weaken the robot structurally, making it somewhat fragile." -msgstr "" -"Восстановленный военный робот, превращенный в едкого монстра. Внутренний " -"кислотный ферментер питает пульверизатор и распылитель. Множество труб и " -"резервуаров делают конструкцию робота довольно хрупкой." - -#. ~ Description for chicken walker -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a " -"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade " -"launcher, 5.56 anti-personnel gun, and the ability to electrify itself " -"against attackers, it is an effective automated sentry, though production " -"was limited due to a legal dispute." -msgstr "" -"Нортрап ВХРТ, массивный робот с тяжёлым вооружением и бронёй, ходящий на " -"паре ног с обратным сочленением (коленями назад). Вооружён 40-мм " -"противотранспортным гранатомётом, противопехотным орудием калибра 5,56 мм со" -" способностью наносить урон электричеством противнику. Является эффективным " -"автоматическим средством защиты, хотя производство было ограничено из-за " -"юридических разногласий." - -#: lang/json/MONSTER_from_json.py -msgid "chainsaw horror" -msgid_plural "chainsaw horrors" -msgstr[0] "цепной ужас" -msgstr[1] "цепных ужаса" -msgstr[2] "цепных ужасов" -msgstr[3] "цепные ужасы" - -#. ~ Description for chainsaw horror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"whirring chainsaws. A speaker system has been installed to blast terrifying" -" shrieks of distorted music. No one in their right mind would craft such an" -" awful creature." -msgstr "" -"Восстановленный робоцып, переоборудованный в жуткого монстра, украшенного " -"черепами и шипами. Оснащён жужжащими цепными пилами вместо дальнобойного " -"оружия. Имеются динамики для воспроизведения ужасающей искажённой музыки. " -"Никто в здравом уме не создаст такое ужасное существо." - -#: lang/json/MONSTER_from_json.py -msgid "screeching terror" -msgid_plural "screeching terrors" -msgstr[0] "визжащий ужас" -msgstr[1] "визжащих ужаса" -msgstr[2] "визжащих ужасов" -msgstr[3] "визжащие ужасы" - -#. ~ Description for screeching terror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"piston-driven lances. A speaker system has been installed to blast " -"terrifying shrieks of distorted music. No one in their right mind would " -"craft such a hellish beast." -msgstr "" -"Восстановленный шагающий робот, переоборудованный в жуткого монстра, " -"украшенного черепами и шипами. Оснащён поршневыми копьями вместо " -"дальнобойного оружия. Имеются динамики для воспроизведения ужасающей " -"искажённой музыки. Никто в здравом уме не создал бы такого адского зверя." - -#: lang/json/MONSTER_from_json.py -msgid "hooked nightmare" -msgid_plural "hooked nightmares" -msgstr[0] "цепляющийся кошмар" -msgstr[1] "цепляющихся кошмара" -msgstr[2] "цепляющихся кошмаров" -msgstr[3] "цепляющиеся кошмары" - -#. ~ Description for hooked nightmare -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"spinning chains terminating in bloody hooks. A speaker system has been " -"installed to blast terrifying shrieks of distorted music. No one in their " -"right mind would craft such a twisted abomination." -msgstr "" -"Восстановленный робоцып, переоборудованный в жуткого монстра, украшенного " -"черепами и шипами. Оснащён крутящимися цепями с окровавленными крюками " -"взамен дальнобойного оружия. Имеются динамики для воспроизведения ужасающей " -"искажённой музыки. Никто в здравом уме не произвёл бы такую извращённую " -"мерзость." - -#. ~ Description for Beagle Mini-Tank UGV -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an " -"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" -"infantry weapons, it's designed for high-risk urban fighting." -msgstr "" -"Нортроп Бигль — это HMP (наземный мобильный робот) размером с холодильник, " -"предназначенный для боевых действий в городских условиях. Оснащён " -"противотанковой ракетной установкой, 40-мм гранатомётом и различным " -"противопехотным вооружением. Спроектирован для опасных городских сражений." - -#: lang/json/MONSTER_from_json.py -msgid "fist king" -msgid_plural "fist kings" -msgstr[0] "кулачный король" -msgstr[1] "кулачных короля" -msgstr[2] "кулачных королей" -msgstr[3] "кулачные короли" - -#. ~ Description for fist king -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Although lacking" -" ranged weapons, its armor and strength make it a match for the even the " -"biggest monsters. Only a madman would dare build such a reckless behemoth." -msgstr "" -"Восстановленный танк-бот с парой мощных пневматических молотов для " -"сокрушения всего на своем пути, включая здания. Несмотря на отсутствие " -"оружия дальнего боя, его броня и позволяют совладать даже с самыми большими " -"монстрами. Только сумасшедший осмелился бы построить такое безобразное " -"чудище." - -#: lang/json/MONSTER_from_json.py -msgid "atomic sultan" -msgid_plural "atomic sultans" -msgstr[0] "атомный султан" -msgstr[1] "атомных султана" -msgstr[2] "атомных султанов" -msgstr[3] "атомные султаны" - -#. ~ Description for atomic sultan -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with burning hot man-crushers. Although lacking" -" ranged weapons, its armor and strength make it a match for even the biggest" -" foes. Multiple fusion cores give the robot ample power but also cause " -"radioactive gas leaks. Only a lunatic would dare build such a reckless " -"monster." -msgstr "" -"Восстановленный танк-бот, переоборудованный горящими человекодробилками. " -"Несмотря на отсутствие оружия дальнего боя, его броня и позволяют совладать " -"даже с самыми большими монстрами. Многочисленные атомные ядра дают роботу " -"достаточную мощность, но также вызывают утечки радиоактивных газов. Только " -"сумасшедший посмел бы построить такого безжалостного монстра." - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gelatinous mass" -msgid_plural "gelatinous mass" -msgstr[0] "желейная масса" -msgstr[1] "желейные масса" -msgstr[2] "желейных масс" -msgstr[3] "желейные массы" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#. ~ Description for {'str_sp': 'gray mass'} -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An escaping noisy blob, catch it before it brings in every zombie for miles!" -msgstr "" -"Убегающий шумящий сгусток слизи. Поймайте его, пока не привлёк всех зомби в " -"округе!" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gray mass" -msgid_plural "gray mass" -msgstr[0] "серая масса" -msgstr[1] "серые массы" -msgstr[2] "серых масс" -msgstr[3] "серые массы" +"Человекоподобное создание, запутанное в нечто, напоминающее множество слоев " +"туалетной бумаги." #: lang/json/MONSTER_from_json.py msgid "giant scorpion" @@ -97556,10 +95783,10 @@ msgstr "" #: lang/json/PET_ARMOR_from_json.py msgid "Kevlar dog harness" msgid_plural "Kevlar dog harnesses" -msgstr[0] "кевларовая броня для собак" -msgstr[1] "кевларовых брони для собак" -msgstr[2] "кевларовых бронь для собак" -msgstr[3] "кевларовая броня для собак" +msgstr[0] "кевларовый собачий доспех" +msgstr[1] "кевларовых собачьих доспеха" +msgstr[2] "кевларовых собачьих доспехов" +msgstr[3] "кевларовые собачьи доспехи" #. ~ Description for {'str': 'Kevlar dog harness', 'str_pl': 'Kevlar dog #. harnesses'} @@ -97576,10 +95803,10 @@ msgstr "" #: lang/json/PET_ARMOR_from_json.py msgid "biosilicified chitin dog mesh harness" msgid_plural "biosilicified chitin dog mesh harnesses" -msgstr[0] "биосилицированная хитиновая собачья броня" -msgstr[1] "биосилицированных хитиновых собачьих брони" -msgstr[2] "биосилицированной хитиновой собачьей брони" -msgstr[3] "биосилицированная хитиновая собачья броня" +msgstr[0] "биосилицированный хитиновый собачий доспех" +msgstr[1] "биосилицированных хитиновых собачьих доспеха" +msgstr[2] "биосилицированных хитиновых собачьих доспехов" +msgstr[3] "биосилицированные хитиновые собачьи доспехи" #. ~ Description for {'str': 'biosilicified chitin dog mesh harness', #. 'str_pl': 'biosilicified chitin dog mesh harnesses'} @@ -97595,10 +95822,10 @@ msgstr "" #: lang/json/PET_ARMOR_from_json.py msgid "chitin dog mesh harness" msgid_plural "chitin dog mesh harnesses" -msgstr[0] "хитиновая собачья броня" -msgstr[1] "хитиновых собачьих брони" -msgstr[2] "хитиновой собачьей брони" -msgstr[3] "хитиновая собачья броня" +msgstr[0] "хитиновый собачий доспех" +msgstr[1] "хитиновых собачьих доспеха" +msgstr[2] "хитиновых собачьих доспехов" +msgstr[3] "хитиновые собачьи доспехи" #. ~ Description for {'str': 'chitin dog mesh harness', 'str_pl': 'chitin dog #. mesh harnesses'} @@ -97629,10 +95856,10 @@ msgstr "" #: lang/json/PET_ARMOR_from_json.py msgid "leather dog harness" msgid_plural "leather dog harnesses" -msgstr[0] "кожаная собачья броня" -msgstr[1] "кожаных собачьих брони" -msgstr[2] "кожаной собачьей брони" -msgstr[3] "кожаная собачья броня" +msgstr[0] "кожаный собачий доспех" +msgstr[1] "кожаных собачьих доспеха" +msgstr[2] "кожаных собачьих доспехов" +msgstr[3] "кожаные собачьи доспехи" #. ~ Description for {'str': 'leather dog harness', 'str_pl': 'leather dog #. harnesses'} @@ -97647,10 +95874,10 @@ msgstr "" #: lang/json/PET_ARMOR_from_json.py msgid "leather dog harness with bones" msgid_plural "leather dog harnesses with bones" -msgstr[0] "кожано-костяная собачья броня" -msgstr[1] "кожано-костяных собачьих брони" -msgstr[2] "кожано-костяной собачьей брони" -msgstr[3] "кожано-костяная собачья броня" +msgstr[0] "кожано-костяной собачий доспех" +msgstr[1] "кожано-костяных собачьих доспеха" +msgstr[2] "кожано-костяных собачьих доспехов" +msgstr[3] "кожано-костяные собачьи доспехи" #. ~ Description for {'str': 'leather dog harness with bones', 'str_pl': #. 'leather dog harnesses with bones'} @@ -97749,10 +95976,10 @@ msgstr "" #: lang/json/PET_ARMOR_from_json.py msgid "chitin horse armor" msgid_plural "chitin horse armors" -msgstr[0] "хитиновая лошадиная броня" -msgstr[1] "хитиновые лошадиные брони" -msgstr[2] "хитиновых лошадиных брони" -msgstr[3] "хитиновая лошадиная броня" +msgstr[0] "хитиновый лошадиный доспех" +msgstr[1] "хитиновых лошадиных доспеха" +msgstr[2] "хитиновых лошадиных доспехов" +msgstr[3] "хитиновые лошадиные доспехи" #. ~ Description for {'str': 'chitin horse armor'} #: lang/json/PET_ARMOR_from_json.py @@ -97839,8 +96066,8 @@ msgid "" "mountain. You could put this on a friendly horse." msgstr "" "Полный лошадиный доспех из варёной кожи с тканой подкладкой. На чепраке " -"изображён огромный стервятник верхом на горе. Можно надеть на дружественную " -"лошадь." +"изображён огромный стервятник на вершине горы. Можно надеть на дружественную" +" лошадь." #: lang/json/PET_ARMOR_from_json.py msgid "" @@ -97880,10 +96107,10 @@ msgstr "" #: lang/json/PET_ARMOR_from_json.py msgid "boiled leather horse barding with bones" msgid_plural "boiled leather horse bardings with bones" -msgstr[0] "лошадиные доспехи из варёной кожи с костями " -msgstr[1] "лошадиных доспеха из варёной кожи с костями " -msgstr[2] "лошадиных доспехов из варёной кожи с костями " -msgstr[3] "лошадиные доспехи из варёной кожи с костями " +msgstr[0] "лошадиные доспехи из варёной кожи с костями" +msgstr[1] "лошадиных доспеха из варёной кожи с костями" +msgstr[2] "лошадиных доспехов из варёной кожи с костями" +msgstr[3] "лошадиные доспехи из варёной кожи с костями" #. ~ Description for {'str': 'boiled leather horse barding with bones', #. 'str_pl': 'boiled leather horse bardings with bones'} @@ -97917,10 +96144,10 @@ msgstr "" #: lang/json/PET_ARMOR_from_json.py msgid "demon chitin dog mesh harness" msgid_plural "demon chitin dog mesh harnesses" -msgstr[0] "собачья броня из демонического хитина" -msgstr[1] "собачьи брони из демонического хитина" -msgstr[2] "собачьей брони из демонического хитина" -msgstr[3] "собачьи брони из демонического хитина" +msgstr[0] "собачий доспех из демонического хитина" +msgstr[1] "собачьих доспеха из демонического хитина" +msgstr[2] "собачьих доспехов из демонического хитина" +msgstr[3] "собачьи доспехи из демонического хитина" #. ~ Description for {'str': 'demon chitin dog mesh harness', 'str_pl': 'demon #. chitin dog mesh harnesses'} @@ -97950,6 +96177,23 @@ msgstr "" "Самодельная броня — нагривник, нагрудник и накрупник из демонического " "хитина, прикреплённого к тонкой сетке. Можно надеть на дружественную лошадь." +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "бронекотожилет" +msgstr[1] "бронекотожилета" +msgstr[2] "бронекотожилетов" +msgstr[3] "бронекотожилеты" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "" +"Облегченная и маловесная кевларовая упряжь для кошек с защитным капюшоном и " +"нагрудником. Включает очень маленький, неудобный карман с липучкой на спине." + #: lang/json/SPECIES_from_json.py msgid "a mammal" msgstr "млекопитающее" @@ -98046,6 +96290,10 @@ msgstr "аберрация" msgid "a human" msgstr "человек" +#: lang/json/SPECIES_from_json.py +msgid "an intelligent animal created by man before the Cataclysm" +msgstr "разумное животное, созданное человеком до Катаклизма" + #: lang/json/SPECIES_from_json.py msgid "an alien" msgstr "инопланетянин" @@ -98208,7 +96456,7 @@ msgstr "ТЫ ТОЖЕ СЛЫШИШЬ ГОЛОСА?" #. ~ Message for SPELL '{'str': 'Artifact Teleglow'}' #: lang/json/SPELL_from_json.py src/iuse.cpp msgid "You feel unhinged." -msgstr "Вы расстроены." +msgstr "Вы ощущаете утрату чувства реальности." #: lang/json/SPELL_from_json.py msgid "Artifact Vomit" @@ -98596,7 +96844,7 @@ msgstr "Усталость" #. ~ Description for {'str': 'Tired'} #: lang/json/SPELL_from_json.py msgid "decreases stamina" -msgstr "Уменьшает запас сил" +msgstr "уменьшает запас сил" #. ~ Description for {'str': 'Tired'} #: lang/json/SPELL_from_json.py @@ -98689,6 +96937,17 @@ msgstr "Голографическая взрыв" msgid "Holographic Transposition" msgstr "Голографическая Транспозиция" +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "Черепной взрыв" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." +msgstr "" +"Это псевдозаклинание срабатывает при активации черепной бомбы. Скорее всего," +" смертельно." + #: lang/json/SPELL_from_json.py msgid "psi stun" msgstr "пси-оглушение" @@ -98704,8 +96963,8 @@ msgid "" "%1$s gesticulates at %3$s and a pulse of disorienting psionic energy ripples" " through the air!" msgstr "" -"%1$s машет %3$s, и дезориентирующий луч псионической энергии прорезает " -"воздух!" +"%1$s взмахивает, %3$s испускает дезориентирующий луч псионической энергии, " +"прорезающий воздух!" #: lang/json/SPELL_from_json.py msgid "psi panic" @@ -98722,7 +96981,8 @@ msgid "" "The %1$s gesticulates at %3$s and a pulse of fear-inducing psionic energy " "ripples through the air!" msgstr "" -"%1$s машет %3$s, и луч пугающей псионической энергии прорезает воздух! " +"%1$s взмахивает, %3$s испускает пугающий луч псионической энергии, " +"прорезающий воздух!" #: lang/json/SPELL_from_json.py msgid "psi hallucinate" @@ -98741,7 +97001,8 @@ msgid "" "%1$s gesticulates at %3$s and a pulse of mind-bending psionic energy ripples" " through the air!" msgstr "" -"%1$s машет %3$s, и пульс галлюциногенной пси-энергии прорезает воздух!" +"%1$s взмахивает, %3$s испускает галлюциногенный луч псионической энергии, " +"прорезающий воздух!" #: lang/json/SPELL_from_json.py msgid "psi ghost" @@ -98776,7 +97037,7 @@ msgid_plural "cameras" msgstr[0] "фотокамера" msgstr[1] "фотокамеры" msgstr[2] "фотокамер" -msgstr[3] "фотокамера" +msgstr[3] "фотокамеры" #. ~ Description for camera #: lang/json/SPELL_from_json.py @@ -98875,7 +97136,7 @@ msgstr "Парализующий дротик" #: lang/json/SPELL_from_json.py msgid "Visceral Projection" -msgstr "Внутренняя защита" +msgstr "Внутренняя проекция" #: lang/json/SPELL_from_json.py msgid "Visceral Paralysis" @@ -98884,7 +97145,7 @@ msgstr "Внутренний паралич" #. ~ Description for Visceral Paralysis #: lang/json/SPELL_from_json.py msgid "Paralytic side effect of Projection." -msgstr "Побочный парализующий эффект от Проецирования." +msgstr "Побочный парализующий эффект от Внутренней проекции." #: lang/json/SPELL_from_json.py msgid "Visceral Backlash" @@ -98975,7 +97236,7 @@ msgstr "Переместить себя" #. ~ Description for Translocate Self #: lang/json/SPELL_from_json.py msgid "Translocates the user to an attuned gate." -msgstr "Перемещает заклинателя к назначенным вратам." +msgstr "Перемещает заклинателя к настроенным вратам." #: lang/json/SPELL_from_json.py msgid "Acid Resistance" @@ -99125,7 +97386,7 @@ msgstr "Вы неуязвимы, ничто не может нанести ва #: lang/json/SPELL_from_json.py msgid "Debug Feather Falling" -msgstr "Отладочное Падение как перо" +msgstr "Отладочное Падение перышка" #. ~ Description for Debug Feather Falling #: lang/json/SPELL_from_json.py @@ -99198,7 +97459,7 @@ msgstr "Уничтожить области, поражённые грибком #: lang/json/SPELL_from_json.py msgid "Druid Rune" -msgstr "Друидическая руна" +msgstr "Друидская руна" #. ~ Description for Druid Rune #: lang/json/SPELL_from_json.py @@ -99618,12 +97879,12 @@ msgstr "Заклинание только для монстров." #: lang/json/SPELL_from_json.py msgid "Summon Demon Spiderlings" -msgstr "Вызвать демонических паучат" +msgstr "Вызвать демонических паучков" #. ~ Description for Summon Demon Spiderlings #: lang/json/SPELL_from_json.py msgid "Summons 4 permanent demon spiderlings." -msgstr "Вызывает 4 демонических паучат навсегда." +msgstr "Вызывает 4 демонических паучков навсегда." #: lang/json/SPELL_from_json.py msgid "Jolt" @@ -99839,13 +98100,67 @@ msgstr "" "Это псевдозаклинание для серии мутации сифона маны. Если оно у вас есть, " "скорее всего вы добавили его для отладки." +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "Пыщь-пыщь" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "Вы целитесь в противника пальцем и издаете звуки «Пыщь-пыщь»." + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "Пол это лава" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "Лучше заберитесь на стул или стол, потому что пол стал лавой!" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "Смонтированная нарезка тренировки" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "" +"Когда чтобы научиться чему-то, нужно слишком много времени, а вы хотите " +"сразу получить результат, вам понадобится нарезка из моментов вашей " +"тренировки." + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "Поцелуй бо-бо" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "Нежный поцелуй туда, где болит. Будто мама сделала." + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "Призыв мумии" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "" +"Призывает хрупкое существо из тряпок, появляющееся из чулана вашей дущи." + #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" msgid_plural "reactor core expansion devices" msgstr[0] "устройство расширения реактора" msgstr[1] "устройства расширения реактора" msgstr[2] "устройств расширения реактора" -msgstr[3] "устройство расширения реактора" +msgstr[3] "устройства расширения реактора" #. ~ Description for {'str': 'reactor core expansion device'} #: lang/json/TOOLMOD_from_json.py @@ -99855,7 +98170,7 @@ msgid "" "the amount of plutonium it can hold. Note that this device is incompatible " "with the atomic battery mod." msgstr "" -"Это расширительное устройство для оборудования на плутониевой энергии. С " +"Это устройство для расширения запаса оборудования на плутониевой энергии. С " "достаточным уровнем навыка электроники вы можете подключить его к атомным " "инструментам, чтобы удвоить их запас плутония. Следует отметить, что это " "устройство несовместимо с модификацией «атомная батарея»." @@ -99863,18 +98178,18 @@ msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "base toolmod" msgid_plural "base toolmods" -msgstr[0] "основной мод. инструмента" -msgstr[1] "основных мод. инструмента" -msgstr[2] "основных мод. инструмента" -msgstr[3] "основной мод. инструмента" +msgstr[0] "абстрактная модификация инструмента" +msgstr[1] "абстрактные модификации инструмента" +msgstr[2] "абстрактных модификаций инструмента" +msgstr[3] "абстрактные модификации инструмента" #: lang/json/TOOLMOD_from_json.py msgid "UPS conversion mod" msgid_plural "UPS conversion mods" -msgstr[0] "преобразователь УБП" -msgstr[1] "преобразователя УБП" -msgstr[2] "преобразователей УБП" -msgstr[3] "преобразователь УБП" +msgstr[0] "модификация: УБП" +msgstr[1] "модификации: УБП" +msgstr[2] "модификаций: УБП" +msgstr[3] "модификации: УБП" #. ~ Description for {'str': 'UPS conversion mod'} #: lang/json/TOOLMOD_from_json.py @@ -99893,7 +98208,7 @@ msgid_plural "battery compartment mods" msgstr[0] "модификация: батарейный отсек" msgstr[1] "модификации: батарейный отсек" msgstr[2] "модификаций: батарейный отсек" -msgstr[3] "модификация: батарейный отсек" +msgstr[3] "модификации: батарейный отсек" #. ~ Description for {'str': 'battery compartment mod'} #: lang/json/TOOLMOD_from_json.py @@ -99907,10 +98222,10 @@ msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "light battery mod" msgid_plural "light battery mods" -msgstr[0] "модификация: легких энергоносителей" -msgstr[1] "модификация: легких энергоносителей" -msgstr[2] "модификация: легких энергоносителей" -msgstr[3] "модификация: легких энергоносителей" +msgstr[0] "модификация: маленькие батареи" +msgstr[1] "модификации: маленькие батареи" +msgstr[2] "модификаций: маленькие батареи" +msgstr[3] "модификации: маленькие батареи" #. ~ Description for {'str': 'light battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -99924,10 +98239,10 @@ msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "medium battery mod" msgid_plural "medium battery mods" -msgstr[0] "модификация: средних энергоносителей" -msgstr[1] "модификация: средних энергоносителей" -msgstr[2] "модификация: средних энергоносителей" -msgstr[3] "модификация: средних энергоносителей" +msgstr[0] "модификация: средние батареи" +msgstr[1] "модификации: средние батареи" +msgstr[2] "модификаций: средние батареи" +msgstr[3] "модификации: средние батареи" #. ~ Description for {'str': 'medium battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -99941,10 +98256,10 @@ msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "heavy battery mod" msgid_plural "heavy battery mods" -msgstr[0] "модификация: тяжёлый энергоноситель" -msgstr[1] "модификации: тяжёлый энергоноситель" -msgstr[2] "модификаций: тяжёлый энергоноситель" -msgstr[3] "модификация: тяжёлый энергоноситель" +msgstr[0] "модификация: тяжёлые батареи" +msgstr[1] "модификации: тяжёлые батареи" +msgstr[2] "модификаций: тяжёлые батареи" +msgstr[3] "модификации: тяжёлые батареи" #. ~ Description for {'str': 'heavy battery mod'} #: lang/json/TOOLMOD_from_json.py @@ -99982,7 +98297,7 @@ msgid_plural "quantum solar backpacks (folded)" msgstr[0] "квантовый солнечный рюкзак (сложен)" msgstr[1] "квантовых солнечных рюкзака (сложены)" msgstr[2] "квантовых солнечных рюкзаков (сложены)" -msgstr[3] "квантовый солнечный рюкзак (сложен)" +msgstr[3] "квантовые солнечные рюкзаки (сложены)" #. ~ Description for {'str': 'quantum solar backpack (folded)', 'str_pl': #. 'quantum solar backpacks (folded)'} @@ -100004,7 +98319,7 @@ msgid_plural "quantum solar backpacks (unfolded)" msgstr[0] "квантовый солнечный рюкзак (разложено)" msgstr[1] "квантовых солнечных рюкзака (разложено)" msgstr[2] "квантовых солнечных рюкзаков (разложено)" -msgstr[3] "квантовый солнечный рюкзак (разложено)" +msgstr[3] "квантовые солнечные рюкзаки (разложены)" #. ~ Description for {'str': 'quantum solar backpack (unfolded)', 'str_pl': #. 'quantum solar backpacks (unfolded)'} @@ -100020,9 +98335,9 @@ msgstr "" msgid "mining helmet" msgid_plural "mining helmets" msgstr[0] "шахтёрская каска" -msgstr[1] "шахтёрских каски" +msgstr[1] "шахтёрские каски" msgstr[2] "шахтёрских касок" -msgstr[3] "шахтёрская каска" +msgstr[3] "шахтёрские каски" #. ~ Use action msg for {'str': 'mining helmet'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -100051,9 +98366,9 @@ msgstr "" msgid "mining helmet (on)" msgid_plural "mining helmets (on)" msgstr[0] "шахтёрская каска (вкл)" -msgstr[1] "шахтёрских каски (вкл)" +msgstr[1] "шахтёрские каски (вкл)" msgstr[2] "шахтёрских касок (вкл)" -msgstr[3] "шахтёрская каска (вкл)" +msgstr[3] "шахтёрские каски (вкл)" #. ~ Use action menu_text for {'str': 'mining helmet (on)', 'str_pl': 'mining #. helmets (on)'}. @@ -100194,7 +98509,7 @@ msgid_plural "hologram cloaks" msgstr[0] "голограмм-плащ" msgstr[1] "голограмм-плаща" msgstr[2] "голограмм-плащей" -msgstr[3] "голограмм-плащ" +msgstr[3] "голограмм-плащи" #. ~ Description for {'str': 'hologram cloak'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100213,7 +98528,7 @@ msgid_plural "fedoras" msgstr[0] "фетровая шляпа" msgstr[1] "фетровых шляпы" msgstr[2] "фетровых шляп" -msgstr[3] "фетровая шляпа" +msgstr[3] "фетровые шляпы" #. ~ Use action menu_text for {'str': 'fedora'}. #. ~ Use action menu_text for {'str': 'straw fedora'}. @@ -100243,7 +98558,7 @@ msgid_plural "pairs of thermal electric socks" msgstr[0] "пара тепловых электроносков" msgstr[1] "пары тепловых электроносков" msgstr[2] "пар тепловых электроносков" -msgstr[3] "пара тепловых электроносков" +msgstr[3] "пары тепловых электроносков" #. ~ Use action msg for {'str': 'pair of thermal electric socks', 'str_pl': #. 'pairs of thermal electric socks'}. @@ -100264,7 +98579,7 @@ msgstr[3] "пара тепловых электроносков" #: src/bionics.cpp src/iuse_actor.cpp src/mutation_ui.cpp #, c-format, no-python-format msgid "You activate your %s." -msgstr "Вы включаете %s." +msgstr "%s включается." #. ~ Use action need_charges_msg for {'str': 'pair of thermal electric socks', #. 'str_pl': 'pairs of thermal electric socks'}. @@ -100281,7 +98596,7 @@ msgstr "Вы включаете %s." #: src/iuse.cpp src/iuse.cpp #, c-format, no-python-format msgid "The %s's batteries are dead." -msgstr "У %s сели батарейки." +msgstr "Сели батарейки - %s не включится." #. ~ Description for {'str': 'pair of thermal electric socks', 'str_pl': #. 'pairs of thermal electric socks'} @@ -100299,7 +98614,7 @@ msgid_plural "pairs of thermal electric socks (on)" msgstr[0] "пара тепловых электроносков (вкл)" msgstr[1] "пары тепловых электроносков (вкл)" msgstr[2] "пар тепловых электроносков (вкл)" -msgstr[3] "пара тепловых электроносков (вкл)" +msgstr[3] "пары тепловых электроносков (вкл)" #. ~ Use action msg for {'str': 'pair of thermal electric socks (on)', #. 'str_pl': 'pairs of thermal electric socks (on)'}. @@ -100345,7 +98660,7 @@ msgid_plural "thermal electric suits" msgstr[0] "тепловой электрокостюм" msgstr[1] "тепловых электрокостюма" msgstr[2] "тепловых электрокостюмов" -msgstr[3] "тепловой электрокостюм" +msgstr[3] "тепловые электрокостюмы" #. ~ Description for {'str': 'thermal electric suit'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100362,7 +98677,7 @@ msgid_plural "thermal electric suits (on)" msgstr[0] "тепловой электрокостюм (вкл)" msgstr[1] "тепловых электрокостюма (вкл)" msgstr[2] "тепловых электрокостюмов (вкл)" -msgstr[3] "тепловой электрокостюм (вкл)" +msgstr[3] "тепловые электрокостюмы (вкл)" #. ~ Description for {'str': 'thermal electric suit (on)', 'str_pl': 'thermal #. electric suits (on)'} @@ -100382,7 +98697,7 @@ msgid_plural "pairs of thermal electric gloves" msgstr[0] "пара тепловых электроперчаток" msgstr[1] "пары тепловых электроперчаток" msgstr[2] "пар тепловых электроперчаток" -msgstr[3] "пара тепловых электроперчаток" +msgstr[3] "пары тепловых электроперчаток" #. ~ Description for {'str': 'pair of thermal electric gloves', 'str_pl': #. 'pairs of thermal electric gloves'} @@ -100400,7 +98715,7 @@ msgid_plural "pairs of thermal electric gloves (on)" msgstr[0] "пара тепловых электроперчаток (вкл)" msgstr[1] "пары тепловых электроперчаток (вкл)" msgstr[2] "пар тепловых электроперчаток (вкл)" -msgstr[3] "пара тепловых электроперчаток (вкл)" +msgstr[3] "пары тепловых электроперчаток (вкл)" #. ~ Description for {'str': 'pair of thermal electric gloves (on)', 'str_pl': #. 'pairs of thermal electric gloves (on)'} @@ -100419,7 +98734,7 @@ msgid_plural "thermal electric balaclavas" msgstr[0] "тепловая электробалаклава" msgstr[1] "тепловых электробалаклавы" msgstr[2] "тепловых электробалаклав" -msgstr[3] "тепловая электробалаклава" +msgstr[3] "тепловые электробалаклавы" #. ~ Description for {'str': 'thermal electric balaclava'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100434,9 +98749,9 @@ msgstr "" msgid "thermal electric balaclava (on)" msgid_plural "thermal electric balaclavas (on)" msgstr[0] "тепловая электробалаклава (вкл)" -msgstr[1] "тепловых электробалаклавы (вкл)" +msgstr[1] "тепловые электробалаклавы (вкл)" msgstr[2] "тепловых электробалаклав (вкл)" -msgstr[3] "тепловая электробалаклава (вкл)" +msgstr[3] "тепловые электробалаклавы (вкл)" #. ~ Description for {'str': 'thermal electric balaclava (on)', 'str_pl': #. 'thermal electric balaclavas (on)'} @@ -100456,7 +98771,7 @@ msgid_plural "pairs of binoculars" msgstr[0] "бинокль" msgstr[1] "бинокля" msgstr[2] "биноклей" -msgstr[3] "бинокль" +msgstr[3] "бинокли" #. ~ Description for {'str': 'pair of binoculars', 'str_pl': 'pairs of #. binoculars'} @@ -100479,7 +98794,7 @@ msgid_plural "headlamps" msgstr[0] "налобный фонарь" msgstr[1] "налобных фонаря" msgstr[2] "налобных фонарей" -msgstr[3] "налобный фонарь" +msgstr[3] "налобные фонари" #. ~ Use action msg for {'str': 'headlamp'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -100507,7 +98822,7 @@ msgid_plural "headlamps (on)" msgstr[0] "налобный фонарь (вкл)" msgstr[1] "налобных фонаря (вкл)" msgstr[2] "налобных фонарей (вкл)" -msgstr[3] "налобный фонарь (вкл)" +msgstr[3] "налобные фонари (вкл)" #. ~ Description for {'str': 'headlamp (on)', 'str_pl': 'headlamps (on)'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100526,7 +98841,7 @@ msgid_plural "survivor headlamps" msgstr[0] "налобный фонарь выживальщика" msgstr[1] "налобных фонаря выживальщика" msgstr[2] "налобных фонарей выживальщика" -msgstr[3] "налобный фонарь выживальщика" +msgstr[3] "налобные фонари выживальщика" #. ~ Use action msg for {'str': 'survivor headlamp'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -100557,7 +98872,7 @@ msgid_plural "survivor headlamps (on)" msgstr[0] "налобный фонарь выживальщика (вкл)" msgstr[1] "налобных фонаря выживальщика (вкл)" msgstr[2] "налобных фонарей выживальщика (вкл)" -msgstr[3] "налобный фонарь выживальщика (вкл)" +msgstr[3] "налобные фонари выживальщика (вкл)" #. ~ Description for {'str': 'survivor headlamp (on)', 'str_pl': 'survivor #. headlamps (on)'} @@ -100627,13 +98942,68 @@ msgstr "" "носить его на голове или прикрепить к шлему. Активируйте, чтобы открыть " "крышку излучателя света." +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "шлем для разминирования" +msgstr[1] "шлема для разминирования" +msgstr[2] "шлемов для разминирования" +msgstr[3] "шлемы для разминирования" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "Включить фонарик шлема" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "«Включение освещения.»" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "«Отключения освещение, батареи разряжены.»" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" +"Бронированный шлем с защитой от ЭМИ с камерой, встроенной рацией и " +"фонариком, которые можно активировать голосом для избыточной надежности. " +"Разработан для защиты от ударной волны, осколков, высокого давления и жара." + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "шлем для разминирования (вкл)" +msgstr[1] "шлема для разминирования (вкл)" +msgstr[2] "шлемов для разминирования (вкл)" +msgstr[3] "шлемы для разминирования (вкл)" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD +#. helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "Выключить фонарик шлема" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets +#. (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "«Выключение освещения.»" + #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" msgid_plural "RM13 combat armors" msgstr[0] "боевая броня RM13" -msgstr[1] "боевая брони RM13" -msgstr[2] "боевая броней RM13" -msgstr[3] "боевая броня RM13" +msgstr[1] "комплекта боевой брони RM13" +msgstr[2] "комплектов боевой брони RM13" +msgstr[3] "комплекты боевой брони RM13" #. ~ Description for {'str': 'RM13 combat armor'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100642,18 +99012,17 @@ msgid "" "suit of sleek black military armor represents the pinnacle of Rivtech's non-" "rigid powered armor technology. Use it to turn it on." msgstr "" -"Со встроенным питанием максимум от десяти плутониевых топливных ячеек, этот " -"покрывающий всё тело костюм из обтекаемой чёрной боевой брони представляет " -"собой вершину технологии среди гибкой силовой брони от компании Ривтех. " -"Активируйте, чтобы включить." +"Покрывающая всё тело обтекаемая чёрная боевая броня, лучшая гибкая силовая " +"броня в линейке компании Ривтех. Имеет внутреннее питание, можно загрузить " +"до 10 плутониевых ячеек. Активируйте, чтобы включить." #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor (on)" msgid_plural "RM13 combat armors (on)" msgstr[0] "боевая броня RM13 (вкл)" -msgstr[1] "боевых брони RM13 (вкл)" -msgstr[2] "боевых бронь RM13 (вкл)" -msgstr[3] "боевая броня RM13 (вкл)" +msgstr[1] "комплекта боевой брони RM13 (вкл)" +msgstr[2] "комплектов боевой брони RM13 (вкл)" +msgstr[3] "комплекты боевой брони RM13 (вкл)" #. ~ Description for {'str': 'RM13 combat armor (on)', 'str_pl': 'RM13 combat #. armors (on)'} @@ -100664,11 +99033,9 @@ msgid "" "rigid powered armor technology. It is turned on, and continually draining " "power. Use it to turn it off." msgstr "" -"Со встроенным питанием максимум от десяти плутониевых топливных ячеек, этот " -"покрывающий всё тело костюм из обтекаемой чёрной боевой брони представляет " -"собой вершину технологии среди гибкой силовой брони от компании Ривтех. " -"Сейчас работает и постоянно потребляет энергию. Активируйте, чтобы " -"выключить." +"Покрывающая всё тело обтекаемая чёрная боевая броня, лучшая гибкая силовая " +"броня в линейке компании Ривтех. Имеет внутреннее питание, можно загрузить " +"до 10 плутониевых ячеек. Активируйте, чтобы выключить." #: lang/json/TOOL_ARMOR_from_json.py msgid "5-point anchor" @@ -100676,13 +99043,13 @@ msgid_plural "5-point anchors" msgstr[0] "5-точечный анкер" msgstr[1] "5-точечного анкера" msgstr[2] "5-точечных анкеров" -msgstr[3] "5-точечный анкер" +msgstr[3] "5-точечные анкеры" #. ~ Use action msg for {'str': '5-point anchor'}. #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "A LED light in the %s LED flickers on." -msgstr "Светодиод %s зажигается." +msgstr "Светодиод зажигается - %s включен." #. ~ Use action need_charges_msg for {'str': '5-point anchor'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -100702,16 +99069,16 @@ msgstr "" msgid "5-point anchor (on)" msgid_plural "5-point anchors (on)" msgstr[0] "5-точечный анкер (вкл)" -msgstr[1] "5-точечные анкера (вкл)" +msgstr[1] "5-точечных анкера (вкл)" msgstr[2] "5-точечных анкеров (вкл)" -msgstr[3] "5-точечный анкер (вкл)" +msgstr[3] "5-точечные анкера (вкл)" #. ~ Use action msg for {'str': '5-point anchor (on)', 'str_pl': '5-point #. anchors (on)'}. #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "The %s LED light flickers off." -msgstr "Светодиод %s потухает." +msgstr "Светодиод потухает - %s отключается." #. ~ Description for {'str': '5-point anchor (on)', 'str_pl': '5-point anchors #. (on)'} @@ -100727,9 +99094,9 @@ msgstr "" msgid "phase immersion suit" msgid_plural "phase immersion suits" msgstr[0] "фазовый иммерсионный костюм" -msgstr[1] "фазовые иммерсионные костюмы" +msgstr[1] "фазовых иммерсионных костюма" msgstr[2] "фазовых иммерсионных костюмов" -msgstr[3] "фазовый иммерсионный костюм" +msgstr[3] "фазовые иммерсионные костюмы" #. ~ Use action msg for {'str': 'phase immersion suit'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -100766,9 +99133,9 @@ msgstr "" msgid "phase immersion suit (on)" msgid_plural "phase immersion suits (on)" msgstr[0] "фазовый иммерсионный костюм (вкл)" -msgstr[1] "фазовые иммерсионные костюмы (вкл)" +msgstr[1] "фазовых иммерсионных костюма (вкл)" msgstr[2] "фазовых иммерсионных костюмов (вкл)" -msgstr[3] "фазовый иммерсионный костюм (вкл)" +msgstr[3] "фазовые иммерсионные костюмы (вкл)" #. ~ Use action msg for {'str': 'phase immersion suit (on)', 'str_pl': 'phase #. immersion suits (on)'}. @@ -100794,7 +99161,7 @@ msgid_plural "rebreather masks" msgstr[0] "ребризер" msgstr[1] "ребризера" msgstr[2] "ребризеров" -msgstr[3] "ребризер" +msgstr[3] "ребризеры" #. ~ Use action need_charges_msg for {'str': 'rebreather mask'}. #. ~ Use action need_charges_msg for {'str': 'XL rebreather mask'}. @@ -100812,8 +99179,8 @@ msgid "" "recycles your exhaled breath for rebreathing while underwater. Use it to " "turn it on." msgstr "" -"Маска на рот, если загружена фильтрами, перерабатывает выдыхаемый воздух для" -" повторного дыхания под водой. Активируйте для включения." +"Маска для рта, перерабатывающая выдыхаемый воздух для повторного дыхания под" +" водой, если конечно есть фильтры. Активируйте для включения." #: lang/json/TOOL_ARMOR_from_json.py msgid "rebreather mask (on)" @@ -100821,7 +99188,7 @@ msgid_plural "rebreather masks (on)" msgstr[0] "ребризер (вкл)" msgstr[1] "ребризера (вкл)" msgstr[2] "ребризеров (вкл)" -msgstr[3] "ребризер (вкл)" +msgstr[3] "ребризеры (вкл)" #. ~ Description for {'str': 'rebreather mask (on)', 'str_pl': 'rebreather #. masks (on)'} @@ -100831,8 +99198,8 @@ msgid "" "recycles your exhaled breath for rebreathing while underwater. It is turned" " on, and continually consuming its filter. Use it to turn it off." msgstr "" -"Маска на рот, если загружена фильтрами, перерабатывает выдыхаемый воздух для" -" повторного дыхания под водой. Сейчас включена и потребляет фильтры. " +"Маска для рта, перерабатывающая выдыхаемый воздух для повторного дыхания под" +" водой, если конечно есть фильтры. Сейчас включена и потребляет фильтры. " "Активируйте, чтобы выключить." #: lang/json/TOOL_ARMOR_from_json.py @@ -100841,7 +99208,7 @@ msgid_plural "XL rebreather masks" msgstr[0] "ребризер XL" msgstr[1] "ребризера XL" msgstr[2] "ребризеров XL" -msgstr[3] "ребризер XL" +msgstr[3] "ребризеры XL" #. ~ Description for {'str': 'XL rebreather mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100851,8 +99218,8 @@ msgid "" "has been expanded substantially and can accommodate exotic anatomy. Use it " "to turn it on." msgstr "" -"Маска на рот, если загружена фильтрами, перерабатывает выдыхаемый воздух для" -" повторного дыхания под водой. Эту модель приспособили для экзотической " +"Маска для рта, перерабатывающая выдыхаемый воздух для повторного дыхания под" +" водой, если конечно есть фильтры. Эту модель приспособили для экзотической " "анатомии. Активируйте, чтобы включить." #: lang/json/TOOL_ARMOR_from_json.py @@ -100861,7 +99228,7 @@ msgid_plural "XL rebreather masks (on)" msgstr[0] "ребризер XL (вкл)" msgstr[1] "ребризера XL (вкл)" msgstr[2] "ребризеров XL (вкл)" -msgstr[3] "ребризер XL (вкл)" +msgstr[3] "ребризеры XL (вкл)" #. ~ Description for {'str': 'XL rebreather mask (on)', 'str_pl': 'XL #. rebreather masks (on)'} @@ -100872,8 +99239,8 @@ msgid "" "has been expanded substantially and can accommodate exotic anatomy. It is " "turned on, and continually consuming its filter. Use it to turn it off." msgstr "" -"Маска на рот, если загружена фильтрами, перерабатывает выдыхаемый воздух для" -" повторного дыхания под водой. Эту модель приспособили для экзотической " +"Маска для рта, перерабатывающая выдыхаемый воздух для повторного дыхания под" +" водой, если конечно есть фильтры. Эту модель приспособили для экзотической " "анатомии. Сейчас включена и потребляет энергию. Активируйте, чтобы " "выключить." @@ -100883,7 +99250,7 @@ msgid_plural "filter masks" msgstr[0] "респиратор" msgstr[1] "респиратора" msgstr[2] "респираторов" -msgstr[3] "респиратор" +msgstr[3] "респираторы" #. ~ Description for {'str': 'filter mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100901,7 +99268,7 @@ msgid_plural "gas masks" msgstr[0] "противогаз" msgstr[1] "противогаза" msgstr[2] "противогазов" -msgstr[3] "противогаз" +msgstr[3] "противогазы" #. ~ Description for {'str': 'gas mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100910,9 +99277,9 @@ msgid "" "protection from smoke, teargas, and other contaminants. It must be prepared" " before use." msgstr "" -"Полнолицевой противогаз, который закрывает лицо и глаза. Обеспечивает " -"превосходную защиту от дыма, слезоточивого газа и других загрязнителей. Он " -"должен быть подготовлен перед использованием." +"Противогаз, который закрывает лицо и глаза. Обеспечивает превосходную защиту" +" от дыма, слезоточивого газа и других загрязнителей. Он должен быть " +"подготовлен перед использованием." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL gas mask" @@ -100920,7 +99287,7 @@ msgid_plural "XL gas masks" msgstr[0] "противогаз XL" msgstr[1] "противогаза XL" msgstr[2] "противогазов XL" -msgstr[3] "противогаз XL" +msgstr[3] "противогазы XL" #. ~ Description for {'str': 'XL gas mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100929,18 +99296,18 @@ msgid "" "anatomy. Provides excellent protection from smoke, teargas, and other " "contaminants. It must be prepared before use." msgstr "" -"Вместительный противогаз, был приспособлен, чтобы вмещать экзотическую " -"анатомию. Отлично защищает от слезоточивого газа, боевых отравляющих " -"веществ, дыма, пыли, спор и прочей гадости, но сильно затрудняет дыхание. Он" -" должен быть подготовлен перед использованием." +"Вместительный противогаз, был приспособлен для экзотической анатомии. " +"Отлично защищает от слезоточивого газа, боевых отравляющих веществ, дыма, " +"пыли, спор и прочей гадости, но сильно затрудняет дыхание. Он должен быть " +"подготовлен перед использованием." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor firemask" msgid_plural "survivor firemasks" msgstr[0] "пожарная маска выживальщика" -msgstr[1] "пожарных маски выживальщика" +msgstr[1] "пожарные маски выживальщика" msgstr[2] "пожарных масок выживальщика" -msgstr[3] "пожарная маска выживальщика" +msgstr[3] "пожарные маски выживальщика" #. ~ Description for {'str': 'survivor firemask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100958,9 +99325,9 @@ msgstr "" msgid "XL survivor firemask" msgid_plural "XL survivor firemasks" msgstr[0] "пожарная маска выживальщика XL" -msgstr[1] "пожарных маски выживальщика XL" +msgstr[1] "пожарные маски выживальщика XL" msgstr[2] "пожарных масок выживальщика XL" -msgstr[3] "пожарная маска выживальщика XL" +msgstr[3] "пожарные маски выживальщика XL" #. ~ Description for {'str': 'XL survivor firemask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100980,7 +99347,7 @@ msgid_plural "firefighter PBA masks" msgstr[0] "шлем-маска пожарного" msgstr[1] "шлем-маски пожарного" msgstr[2] "шлем-масок пожарного" -msgstr[3] "шлем-маска пожарного" +msgstr[3] "шлем-маски пожарного" #. ~ Description for {'str': 'firefighter PBA mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -100997,9 +99364,9 @@ msgstr "" msgid "heavy survivor mask" msgid_plural "heavy survivor masks" msgstr[0] "тяжёлая маска выживальщика" -msgstr[1] "тяжёлых маски выживальщика" +msgstr[1] "тяжёлые маски выживальщика" msgstr[2] "тяжёлых масок выживальщика" -msgstr[3] "тяжёлая маска выживальщика" +msgstr[3] "тяжёлые маски выживальщика" #. ~ Description for {'str': 'heavy survivor mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101016,9 +99383,9 @@ msgstr "" msgid "light survivor mask" msgid_plural "light survivor masks" msgstr[0] "лёгкая маска выживальщика" -msgstr[1] "лёгких маски выживальщика" +msgstr[1] "лёгкие маски выживальщика" msgstr[2] "лёгких масок выживальщика" -msgstr[3] "лёгкая маска выживальщика" +msgstr[3] "лёгкие маски выживальщика" #. ~ Description for {'str': 'light survivor mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101037,7 +99404,7 @@ msgid_plural "survivor masks" msgstr[0] "маска выживальщика" msgstr[1] "маски выживальщика" msgstr[2] "масок выживальщика" -msgstr[3] "маска выживальщика" +msgstr[3] "маски выживальщика" #. ~ Description for {'str': 'survivor mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101057,7 +99424,7 @@ msgid_plural "XL survivor masks" msgstr[0] "маска выживальщика XL" msgstr[1] "маски выживальщика XL" msgstr[2] "масок выживальщика XL" -msgstr[3] "маска выживальщика XL" +msgstr[3] "маски выживальщика XL" #. ~ Description for {'str': 'XL survivor mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101067,17 +99434,17 @@ msgid "" "teargas, and shrapnel. It must be prepared before use." msgstr "" "Специально спроектированный усиленный противогаз, покрывающий лицо и глаза " -"независимо от степени вашей мутации. Обеспечивает потрясающую защиту от " -"жара, дыма, слезоточивого газа и осколков. Он должен быть подготовлен перед " +"независимо от степени вашей мутации. Обеспечивает прекрасную защиту от жара," +" дыма, слезоточивого газа и осколков. Он должен быть подготовлен перед " "использованием." #: lang/json/TOOL_ARMOR_from_json.py msgid "winter survivor mask" msgid_plural "winter survivor masks" msgstr[0] "зимняя маска выживальщика" -msgstr[1] "зимних маски выживальщика" +msgstr[1] "зимние маски выживальщика" msgstr[2] "зимних масок выживальщика" -msgstr[3] "зимняя маска выживальщика" +msgstr[3] "зимние маски выживальщика" #. ~ Description for {'str': 'winter survivor mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101087,17 +99454,17 @@ msgid "" "shrapnel. It must be prepared before use." msgstr "" "Специально спроектированная газовая маска с подкладкой из меха, покрывающая " -"лицо и глаза. Довольно тёплая, она по-прежнему обеспечивает превосходную " -"защиту от дыма, слезоточивого газа и осколков. Она должна быть подготовлена " -"перед использованием." +"лицо и глаза. Довольно тёплая, обеспечивает превосходную защиту от дыма, " +"слезоточивого газа и осколков. Она должна быть подготовлена перед " +"использованием." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL winter survivor mask" msgid_plural "XL winter survivor masks" msgstr[0] "зимняя маска выживальщика XL" -msgstr[1] "зимних маски выживальщика XL" +msgstr[1] "зимние маски выживальщика XL" msgstr[2] "зимних масок выживальщика XL" -msgstr[3] "зимняя маска выживальщика XL" +msgstr[3] "зимние маски выживальщика XL" #. ~ Description for {'str': 'XL winter survivor mask'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101108,9 +99475,9 @@ msgid "" " before use." msgstr "" "Специально спроектированная газовая маска с подкладкой из меха, покрывающая " -"лицо и глаза независимо от степени вашей мутации. Довольно тёплая, она по-" -"прежнему обеспечивает превосходную защиту от дыма, слезоточивого газа и " -"осколков. Она должна быть подготовлена перед использованием." +"лицо и глаза независимо от степени вашей мутации. Довольно тёплая, " +"обеспечивает превосходную защиту от дыма, слезоточивого газа и осколков. Она" +" должна быть подготовлена перед использованием." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of light amp goggles" @@ -101189,10 +99556,10 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "wearable RX12 jet injector" msgid_plural "wearable RX12 jet injectors" -msgstr[0] "надеваемый RX12 безыгольный инъектор" -msgstr[1] "надеваемых RX12 безыгольных инъектора" -msgstr[2] "надеваемых RX12 безыгольных инъекторов" -msgstr[3] "надеваемый RX12 безыгольный инъектор" +msgstr[0] "надеваемый RX12 безыгольный инжектор" +msgstr[1] "надеваемых RX12 безыгольных инжектора" +msgstr[2] "надеваемых RX12 безыгольных инжекторов" +msgstr[3] "надеваемые RX12 безыгольные инжекторы" #. ~ Description for {'str': 'wearable RX12 jet injector'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101209,7 +99576,7 @@ msgid_plural "RX11 stimulant delivery system" msgstr[0] "система введения стимуляторов RX11" msgstr[1] "системы введения стимуляторов RX11" msgstr[2] "систем введения стимуляторов RX11" -msgstr[3] "система введения стимуляторов RX11" +msgstr[3] "системы введения стимуляторов RX11" #. ~ Description for {'str_sp': 'RX11 stimulant delivery system'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101229,7 +99596,7 @@ msgid_plural "survivor divemasks" msgstr[0] "водолазная маска выживальщика" msgstr[1] "водолазные маски выживальщика" msgstr[2] "водолазных масок выживальщика" -msgstr[3] "водолазная маска выживальщика" +msgstr[3] "водолазные маски выживальщика" #. ~ Description for {'str': 'survivor divemask'} #. ~ Description for {'str': 'XL survivor divemask'} @@ -101249,7 +99616,7 @@ msgid_plural "survivor divemasks (on)" msgstr[0] "водолазная маска выживальщика (вкл)" msgstr[1] "водолазные маски выживальщика (вкл)" msgstr[2] "водолазных масок выживальщика (вкл)" -msgstr[3] "водолазная маска выживальщика (вкл)" +msgstr[3] "водолазные маски выживальщика (вкл)" #. ~ Description for {'str': 'survivor divemask (on)', 'str_pl': 'survivor #. divemasks (on)'} @@ -101270,7 +99637,7 @@ msgid_plural "XL survivor divemasks" msgstr[0] "водолазная маска выживальщика XL" msgstr[1] "водолазные маски выживальщика XL" msgstr[2] "водолазных масок выживальщика XL" -msgstr[3] "водолазная маска выживальщика XL" +msgstr[3] "водолазные маски выживальщика XL" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor divemask (on)" @@ -101278,7 +99645,7 @@ msgid_plural "XL survivor divemasks (on)" msgstr[0] "водолазная маска выживальщика XL (вкл)" msgstr[1] "водолазные маски выживальщика XL (вкл)" msgstr[2] "водолазных масок выживальщика XL (вкл)" -msgstr[3] "водолазная маска выживальщика XL (вкл)" +msgstr[3] "водолазные маски выживальщика XL (вкл)" #. ~ Description for {'str': 'XL survivor divemask (on)', 'str_pl': 'XL #. survivor divemasks (on)'} @@ -101300,7 +99667,7 @@ msgid_plural "unfolded ponchos" msgstr[0] "разложенное пончо" msgstr[1] "разложенных пончо" msgstr[2] "разложенных пончо" -msgstr[3] "разложенное пончо" +msgstr[3] "разложенные пончо" #. ~ Description for {'str': 'unfolded poncho'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101313,10 +99680,10 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "emergency blanket" msgid_plural "emergency blankets" -msgstr[0] "походное одеяло" -msgstr[1] "походных одеяла" -msgstr[2] "походных одеял" -msgstr[3] "походное одеяло" +msgstr[0] "спасательное одеяло" +msgstr[1] "спасательных одеяла" +msgstr[2] "спасательных одеял" +msgstr[3] "спасательные одеяла" #. ~ Description for {'str': 'emergency blanket'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101333,7 +99700,7 @@ msgid_plural "radiation biomonitors" msgstr[0] "биомонитор радиации" msgstr[1] "биомонитора радиации" msgstr[2] "биомониторов радиации" -msgstr[3] "биомонитор радиации" +msgstr[3] "биомониторы радиации" #. ~ Description for {'str': 'radiation biomonitor'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101350,7 +99717,7 @@ msgid_plural "hairpins" msgstr[0] "шпилька" msgstr[1] "шпильки" msgstr[2] "шпилек" -msgstr[3] "шпилька" +msgstr[3] "шпильки" #. ~ Description for {'str': 'hairpin'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101361,9 +99728,9 @@ msgstr "Простая шпилька, чтобы содержать волос msgid "fancy hairpin" msgid_plural "fancy hairpins" msgstr[0] "модельная шпилька" -msgstr[1] "модельных шпильки" +msgstr[1] "модельные шпильки" msgstr[2] "модельных шпилек" -msgstr[3] "модельная шпилька" +msgstr[3] "модельные шпильки" #. ~ Description for {'str': 'fancy hairpin'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101376,7 +99743,7 @@ msgid_plural "towels" msgstr[0] "полотенце" msgstr[1] "полотенца" msgstr[2] "полотенец" -msgstr[3] "полотенце" +msgstr[3] "полотенца" #. ~ Description for {'str': 'towel'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101403,10 +99770,10 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "soiled towel" msgid_plural "soiled towels" -msgstr[0] "загрязнённое полотенце" -msgstr[1] "загрязнённых полотенца" -msgstr[2] "загрязнённых полотенец" -msgstr[3] "загрязнённое полотенце" +msgstr[0] "грязное полотенце" +msgstr[1] "грязных полотенца" +msgstr[2] "грязных полотенец" +msgstr[3] "грязные полотенца" #. ~ Description for {'str': 'soiled towel'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101421,9 +99788,9 @@ msgstr "" msgid "straw fedora" msgid_plural "straw fedoras" msgstr[0] "соломенная федора" -msgstr[1] "соломенных федоры" +msgstr[1] "соломенные федоры" msgstr[2] "соломенных федор" -msgstr[3] "соломенная федора" +msgstr[3] "соломенные федоры" #. ~ Description for {'str': 'straw fedora'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101439,7 +99806,7 @@ msgid_plural "simple patchwork scarves" msgstr[0] "простой тканевый шарф" msgstr[1] "простых тканевых шарфа" msgstr[2] "простых тканевых шарфов" -msgstr[3] "простой тканевый шарф" +msgstr[3] "простые тканевые шарфы" #. ~ Use action menu_text for {'str': 'simple patchwork scarf', 'str_pl': #. 'simple patchwork scarves'}. @@ -101493,7 +99860,7 @@ msgid_plural "simple patchwork scarves (loose)" msgstr[0] "простой тканевый шарф (расслаблен)" msgstr[1] "простых тканевых шарфа (расслаблены)" msgstr[2] "простых тканевых шарфов (расслаблены)" -msgstr[3] "простой тканевый шарф (расслаблен)" +msgstr[3] "простые тканевые шарфы (расслаблены)" #. ~ Use action menu_text for {'str': 'simple patchwork scarf (loose)', #. 'str_pl': 'simple patchwork scarves (loose)'}. @@ -101529,7 +99896,7 @@ msgstr "Затянуть туже" #. scarves (loose)'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You wrap your scarf tighter." -msgstr "Вы завязываете платок поплотнее." +msgstr "Вы завязываете шарф поплотнее." #. ~ Description for {'str': 'simple patchwork scarf (loose)', 'str_pl': #. 'simple patchwork scarves (loose)'} @@ -101547,7 +99914,7 @@ msgid_plural "long patchwork scarves" msgstr[0] "длинный тканевый шарф" msgstr[1] "длинных тканевых шарфа" msgstr[2] "длинных тканевых шарфов" -msgstr[3] "длинный тканевый шарф" +msgstr[3] "длинные тканевые шарфы" #. ~ Description for {'str': 'long patchwork scarf', 'str_pl': 'long patchwork #. scarves'} @@ -101557,9 +99924,9 @@ msgid "" "extra length, it's enough to handle nonstandard facial features and " "accommodate your hands too. Use it to loosen it if you get too warm." msgstr "" -"Очень длинный лёгкий тканевый платок, прикрывающий рот. Он имеет достаточно " -"длины, чтобы прикрыть нестандартные черты лица, а также прикрыть руки. " -"Используйте его, чтобы развязать его, если вам стало жарко." +"Очень длинный лёгкий тканевый шарф, прикрывающий рот. Он достаточно длинный," +" чтобы прикрыть нестандартные черты лица, а также прикрыть руки. Используйте" +" его, чтобы развязать его, если вам стало жарко." #: lang/json/TOOL_ARMOR_from_json.py msgid "long patchwork scarf (loose)" @@ -101567,7 +99934,7 @@ msgid_plural "long patchwork scarves (loose)" msgstr[0] "длинный тканевый шарф (расслаблен)" msgstr[1] "длинных тканевых шарфа (расслаблены)" msgstr[2] "длинных тканевых шарфов (расслаблены)" -msgstr[3] "длинный тканевый шарф (расслаблен)" +msgstr[3] "длинные тканевые шарфы (расслаблен)" #. ~ Description for {'str': 'long patchwork scarf (loose)', 'str_pl': 'long #. patchwork scarves (loose)'} @@ -101577,9 +99944,9 @@ msgid "" "extra length, it's enough to handle nonstandard facial features and " "accommodate your hands too. Use it to wear it tighter if you get too cold." msgstr "" -"Очень длинный лёгкий тканевый платок, прикрывающий рот. Он имеет достаточно " -"длины, чтобы прикрыть нестандартные черты лица, а также прикрыть руки. " -"Используйте его, чтобы завязать его плотнее, если вам стало холодно." +"Очень длинный лёгкий тканевый шарф, прикрывающий рот. Он достаточно длинный," +" чтобы прикрыть нестандартные черты лица, а также прикрыть руки. Используйте" +" его, чтобы завязать его плотнее, если вам стало холодно." #: lang/json/TOOL_ARMOR_from_json.py msgid "knit scarf" @@ -101587,7 +99954,7 @@ msgid_plural "knit scarves" msgstr[0] "вязаный шарф" msgstr[1] "вязаных шарфа" msgstr[2] "вязаных шарфов" -msgstr[3] "вязаный шарф" +msgstr[3] "вязаные шарфы" #. ~ Description for {'str': 'knit scarf', 'str_pl': 'knit scarves'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101604,7 +99971,7 @@ msgid_plural "knit scarves (loose)" msgstr[0] "вязанный шарф (развязано)" msgstr[1] "вязанных шарфа (развязано)" msgstr[2] "вязанных шарфов (развязано)" -msgstr[3] "вязанный шарф (развязано)" +msgstr[3] "вязанные шарфы (развязано)" #. ~ Description for {'str': 'knit scarf (loose)', 'str_pl': 'knit scarves #. (loose)'} @@ -101622,7 +99989,7 @@ msgid_plural "long knit scarves" msgstr[0] "длинный вязаный шарф" msgstr[1] "длинных вязаных шарфа" msgstr[2] "длинных вязаных шарфа" -msgstr[3] "длинный вязаный шарф" +msgstr[3] "длинные вязанные шарфы" #. ~ Description for {'str': 'long knit scarf', 'str_pl': 'long knit scarves'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101631,9 +99998,9 @@ msgid "" "the extra length, it's enough to handle nonstandard facial features and " "accommodate your hands too. Use it to loosen it if you get too warm." msgstr "" -"Действительно длинный вязанный шарф, прикрывающий рот. Удлинённый для того, " -"чтобы прикрыть нестандартные черты лица или прикрыть руки. Используйте его, " -"чтобы расслабить его, если вам стало жарко." +"Очень длинный вязанный шарф, прикрывающий рот. Удлинённый для того, чтобы " +"прикрыть нестандартные черты лица или прикрыть руки. Используйте его, чтобы " +"расслабить его, если вам стало жарко." #: lang/json/TOOL_ARMOR_from_json.py msgid "long knit scarf (loose)" @@ -101641,7 +100008,7 @@ msgid_plural "long knit scarves (loose)" msgstr[0] "длинный вязанный шарф (развязано)" msgstr[1] "длинных вязанных шарфа (развязано)" msgstr[2] "длинных вязанных шарфов (развязано)" -msgstr[3] "длинный вязанный шарф (развязано)" +msgstr[3] "длинные вязанные шарфы (развязано)" #. ~ Description for {'str': 'long knit scarf (loose)', 'str_pl': 'long knit #. scarves (loose)'} @@ -101651,9 +100018,9 @@ msgid "" "the extra length, it's enough to handle nonstandard facial features and " "accommodate your hands too. Use it to wear it tighter if you get too cold." msgstr "" -"Действительно длинный вязанный шарф, прикрывающий рот. Он имеет достаточно " -"длины, чтобы прикрыть нестандартные черты лица, а также прикрыть руки. " -"Используйте его, чтобы завязать его плотнее, если вам стало холодно." +"Очень длинный вязанный шарф, прикрывающий рот. Достаточно длинный, чтобы " +"прикрыть нестандартные черты лица, а также прикрыть руки. Используйте его, " +"чтобы завязать его плотнее, если вам стало холодно." #: lang/json/TOOL_ARMOR_from_json.py msgid "wool scarf" @@ -101661,7 +100028,7 @@ msgid_plural "wool scarves" msgstr[0] "шерстяной шарф" msgstr[1] "шерстяных шарфа" msgstr[2] "шерстяных шарфов" -msgstr[3] "шерстяной шарф" +msgstr[3] "шерстяные шарфы" #. ~ Description for {'str': 'wool scarf', 'str_pl': 'wool scarves'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101678,7 +100045,7 @@ msgid_plural "wool scarves (loose)" msgstr[0] "шерстяной шарф (развязано)" msgstr[1] "шерстяных шарфа (развязано)" msgstr[2] "шерстяных шарфов (развязано)" -msgstr[3] "шерстяной шарф (развязано)" +msgstr[3] "шерстяные шарфы (развязано)" #. ~ Use action msg for {'str': 'wool scarf (loose)', 'str_pl': 'wool scarves #. (loose)'}. @@ -101704,7 +100071,7 @@ msgid_plural "long wool scarves" msgstr[0] "длинный шерстяной шарф" msgstr[1] "длинных шерстяных шарфа" msgstr[2] "длинных шерстяных шарфов" -msgstr[3] "длинный шерстяной шарф" +msgstr[3] "длинные шерстяные шарфы" #. ~ Description for {'str': 'long wool scarf', 'str_pl': 'long wool scarves'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101713,9 +100080,9 @@ msgid "" "length, it's enough to handle nonstandard facial features and accommodate " "your hands too. Use it to loosen it if you get too warm." msgstr "" -"Действительно длинный шерстяной шарф, прикрывающий рот. Он имеет достаточно " -"длины, чтобы прикрыть нестандартные черты лица, а также прикрыть руки. " -"Используйте его, чтобы расслабить его, если вам стало жарко." +"Очень длинный шерстяной шарф, прикрывающий рот. Достаточно длинный, чтобы " +"прикрыть нестандартные черты лица, а также прикрыть руки. Используйте его, " +"чтобы расслабить его, если вам стало жарко." #: lang/json/TOOL_ARMOR_from_json.py msgid "long wool scarf (loose)" @@ -101723,7 +100090,7 @@ msgid_plural "long wool scarves (loose)" msgstr[0] "длинный шерстяной шарф (развязано)" msgstr[1] "длинных шерстяных шарфа (развязано)" msgstr[2] "длинных шерстяных шарфов (развязано)" -msgstr[3] "длинный шерстяной шарф (развязано)" +msgstr[3] "длинные шерстяные шарфы (развязано)" #. ~ Description for {'str': 'long wool scarf (loose)', 'str_pl': 'long wool #. scarves (loose)'} @@ -101733,9 +100100,9 @@ msgid "" "length, it's enough to handle nonstandard facial features and accommodate " "your hands too. Use it to wear it tighter if you get too cold." msgstr "" -"Действительно длинный шерстяной шарф, прикрывающий рот. Он имеет достаточно " -"длины, чтобы прикрыть нестандартные черты лица, а также прикрыть руки. " -"Используйте его, чтобы завязать его плотнее, если вам стало холодно." +"Очень длинный шерстяной шарф, прикрывающий рот. Достаточно длинный, чтобы " +"прикрыть нестандартные черты лица, а также прикрыть руки. Используйте его, " +"чтобы завязать его плотнее, если вам стало холодно." #: lang/json/TOOL_ARMOR_from_json.py msgid "fur scarf" @@ -101743,7 +100110,7 @@ msgid_plural "fur scarves" msgstr[0] "меховой шарф" msgstr[1] "меховых шарфа" msgstr[2] "меховых шарфов" -msgstr[3] "меховой шарф" +msgstr[3] "меховые шарфы" #. ~ Description for {'str': 'fur scarf', 'str_pl': 'fur scarves'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101760,7 +100127,7 @@ msgid_plural "fur scarves (loose)" msgstr[0] "меховой шарф (развязано)" msgstr[1] "меховых шарфа (развязано)" msgstr[2] "меховых шарфов (развязано)" -msgstr[3] "меховой шарф (развязано)" +msgstr[3] "меховые шарфы (развязано)" #. ~ Description for {'str': 'fur scarf (loose)', 'str_pl': 'fur scarves #. (loose)'} @@ -101778,7 +100145,7 @@ msgid_plural "long fur scarves" msgstr[0] "длинный меховой шарф" msgstr[1] "длинных меховых шарфа" msgstr[2] "длинных меховых шарфов" -msgstr[3] "длинный меховой шарф" +msgstr[3] "длинные меховые шарфы" #. ~ Description for {'str': 'long fur scarf', 'str_pl': 'long fur scarves'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101787,9 +100154,9 @@ msgid "" "length, it's enough to handle nonstandard facial features and accommodate " "your hands too. Use it to loosen it if you get too warm." msgstr "" -"Действительно длинный меховой шарф, прикрывающий рот. Он имеет достаточно " -"длины, чтобы прикрыть нестандартные черты лица, а также прикрыть руки. " -"Используйте его, чтобы расслабить его, если вам стало жарко." +"Очень длинный меховой шарф, прикрывающий рот. Достаточно длинный, чтобы " +"прикрыть нестандартные черты лица, а также прикрыть руки. Используйте его, " +"чтобы расслабить его, если вам стало жарко." #: lang/json/TOOL_ARMOR_from_json.py msgid "long fur scarf (loose)" @@ -101797,7 +100164,7 @@ msgid_plural "long fur scarves (loose)" msgstr[0] "длинный меховой шарф (развязано)" msgstr[1] "длинных меховых шарфа (развязано)" msgstr[2] "длинных меховых шарфов (развязано)" -msgstr[3] "длинный меховой шарф (развязано)" +msgstr[3] "длинные меховые шарфы (развязано)" #. ~ Description for {'str': 'long fur scarf (loose)', 'str_pl': 'long fur #. scarves (loose)'} @@ -101807,9 +100174,9 @@ msgid "" "length, it's enough to handle nonstandard facial features and accommodate " "your hands too. Use it to wear it tighter if you get too cold." msgstr "" -"Действительно длинный меховой шарф, прикрывающий рот. Он имеет достаточно " -"длины, чтобы прикрыть нестандартные черты лица, а также прикрыть руки. " -"Используйте его, чтобы завязать его плотнее, если вам стало холодно." +"Очень длинный меховой шарф, прикрывающий рот. Достаточно длинный, чтобы " +"прикрыть нестандартные черты лица, а также прикрыть руки. Используйте его, " +"чтобы завязать его плотнее, если вам стало холодно." #: lang/json/TOOL_ARMOR_from_json.py msgid "thermal electric outfit" @@ -101817,7 +100184,7 @@ msgid_plural "thermal electric outfits" msgstr[0] "тепловой электрокостюм" msgstr[1] "тепловых электрокостюма" msgstr[2] "тепловых электрокостюмов" -msgstr[3] "тепловой электрокостюм" +msgstr[3] "тепловые электрокостюмы" #. ~ Description for {'str': 'thermal electric outfit'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101826,8 +100193,8 @@ msgid "" "equipped with internal battery-powered heating elements. Use it to turn it " "on." msgstr "" -"Этот комплект тонкого термобелья покрывает ваше тело с головы до пяток и " -"оборудован встроенными нагревательными элементами, работающими на " +"Комплект тонкого термобелья, покрывающий ваше тело с головы до пяток и " +"оборудованный встроенными нагревательными элементами, работающими на " "батарейках. Активируйте, чтобы включить." #: lang/json/TOOL_ARMOR_from_json.py @@ -101836,7 +100203,7 @@ msgid_plural "thermal electric outfits (on)" msgstr[0] "тепловой электрокостюм (вкл)" msgstr[1] "тепловых электрокостюма (вкл)" msgstr[2] "тепловых электрокостюмов (вкл)" -msgstr[3] "тепловой электрокостюм (вкл)" +msgstr[3] "тепловые электрокостюмы (вкл)" #. ~ Description for {'str': 'thermal electric outfit (on)', 'str_pl': #. 'thermal electric outfits (on)'} @@ -101846,17 +100213,17 @@ msgid "" "equipped with internal battery-powered heating elements. It is currently " "on, and continually draining batteries. Use it to turn it off." msgstr "" -"Этот комплект тонкого термобелья покрывает ваше тело с головы до пяток и " -"оборудован встроенными нагревательными элементами, работающими на " +"Комплект тонкого термобелья, покрывающий ваше тело с головы до пяток и " +"оборудованный встроенными нагревательными элементами, работающими на " "батарейках. Активируйте, чтобы выключить." #: lang/json/TOOL_ARMOR_from_json.py msgid "ski mask" msgid_plural "ski masks" msgstr[0] "лыжная маска" -msgstr[1] "лыжных маски" +msgstr[1] "лыжные маски" msgstr[2] "лыжных масок" -msgstr[3] "лыжная маска" +msgstr[3] "лыжные маски" #. ~ Use action msg for {'str': 'ski mask'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -101879,7 +100246,7 @@ msgid_plural "ski masks (open)" msgstr[0] "лыжная маска (открыта)" msgstr[1] "лыжные маски (открыты)" msgstr[2] "лыжных масок (открытых)" -msgstr[3] "лыжная маска (открыта)" +msgstr[3] "лыжные маски (открыты)" #. ~ Use action menu_text for {'str': 'ski mask (open)', 'str_pl': 'ski masks #. (open)'}. @@ -101899,7 +100266,7 @@ msgid_plural "whistles" msgstr[0] "свисток" msgstr[1] "свистка" msgstr[2] "свистков" -msgstr[3] "свисток" +msgstr[3] "свистки" #. ~ Use action noise_message for {'str': 'whistle'}. #. ~ Use action noise_message for {'str': 'whistle multitool'}. @@ -101924,7 +100291,7 @@ msgid_plural "harmonicas with holders" msgstr[0] "гармоника с держателем" msgstr[1] "гармоники с держателем" msgstr[2] "гармоник с держателем" -msgstr[3] "гармоника с держателем" +msgstr[3] "гармоники с держателем" #. ~ Description for {'str_pl': 'harmonicas with holders', 'str': 'harmonica #. with a holder'} @@ -101937,9 +100304,9 @@ msgstr "Гармоника с держателем, благодаря кото msgid "acoustic guitar" msgid_plural "acoustic guitars" msgstr[0] "акустическая гитара" -msgstr[1] "акустических гитары" +msgstr[1] "акустические гитары" msgstr[2] "акустических гитар" -msgstr[3] "акустическая гитара" +msgstr[3] "акустические гитары" #. ~ Description for {'str': 'acoustic guitar'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101956,7 +100323,7 @@ msgid_plural "electric guitars" msgstr[0] "электрогитара" msgstr[1] "электрогитары" msgstr[2] "электрогитар" -msgstr[3] "электрогитара" +msgstr[3] "электрогитары" #. ~ Description for {'str': 'electric guitar'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101973,7 +100340,7 @@ msgid_plural "bagpipes" msgstr[0] "волынка" msgstr[1] "волынки" msgstr[2] "волынок" -msgstr[3] "волынка" +msgstr[3] "волынки" #. ~ Description for {'str_sp': 'bagpipes'} #: lang/json/TOOL_ARMOR_from_json.py @@ -101992,7 +100359,7 @@ msgid_plural "tubas" msgstr[0] "туба" msgstr[1] "тубы" msgstr[2] "туб" -msgstr[3] "туба" +msgstr[3] "тубы" #. ~ Description for {'str': 'tuba'} #. ~ ol' is an informal short-form for old, and here is part of big-ol as @@ -102008,7 +100375,7 @@ msgid_plural "saxophones" msgstr[0] "саксофон" msgstr[1] "саксофона" msgstr[2] "саксофонов" -msgstr[3] "саксофон" +msgstr[3] "саксофоны" #. ~ Description for {'str': 'saxophone'} #: lang/json/TOOL_ARMOR_from_json.py @@ -102065,7 +100432,7 @@ msgid_plural "stethoscopes" msgstr[0] "стетоскоп" msgstr[1] "стетоскопа" msgstr[2] "стетоскопов" -msgstr[3] "стетоскоп" +msgstr[3] "стетоскопы" #. ~ Description for {'str': 'stethoscope'} #: lang/json/TOOL_ARMOR_from_json.py @@ -102097,8 +100464,8 @@ msgid "solar backpack (folded)" msgid_plural "solar backpacks (folded)" msgstr[0] "солнечный рюкзак (сложен)" msgstr[1] "солнечных рюкзака (сложены)" -msgstr[2] "солнечных рюкзаков (сложены)" -msgstr[3] "солнечный рюкзак (сложен)" +msgstr[2] "солнечных рюкзаков (сложеных)" +msgstr[3] "солнечные рюкзаки (сложены)" #. ~ Description for {'str': 'solar backpack (folded)', 'str_pl': 'solar #. backpacks (folded)'} @@ -102111,7 +100478,7 @@ msgstr "" "Индивидуальная мобильная зарядная система, состоящая из массива солнечных " "панелей, аккуратно сложенных в форме большого рюкзака. Его можно носить на " "спине. Также у него имеется встроенный кабель для присоединения к системе " -"зарядке по кабелю." +"зарядки по кабелю." #: lang/json/TOOL_ARMOR_from_json.py msgid "solar backpack (unfolded)" @@ -102119,7 +100486,7 @@ msgid_plural "solar backpacks (unfolded)" msgstr[0] "солнечный рюкзак (разложено)" msgstr[1] "солнечных рюкзака (разложено)" msgstr[2] "солнечных рюкзаков (разложено)" -msgstr[3] "солнечный рюкзак (разложено)" +msgstr[3] "солнечные рюкзаки (разложено)" #. ~ Description for {'str': 'solar backpack (unfolded)', 'str_pl': 'solar #. backpacks (unfolded)'} @@ -102137,7 +100504,7 @@ msgid_plural "riot helmets" msgstr[0] "полицейский шлем с забралом" msgstr[1] "полицейских шлема с забралом" msgstr[2] "полицейских шлемов с забралом" -msgstr[3] "полицейский шлем с забралом" +msgstr[3] "полицейские шлемы с забралом" #. ~ Use action msg for {'str': 'riot helmet'}. #: lang/json/TOOL_ARMOR_from_json.py @@ -102156,10 +100523,10 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "riot helmet (raised visor)" msgid_plural "riot helmets (raised visor)" -msgstr[0] "шлем осназа (с поднятым забралом)" -msgstr[1] "шлема осназа (с поднятым забралом)" -msgstr[2] "шлемов осназа (с поднятым забралом)" -msgstr[3] "шлем осназа (с поднятым забралом)" +msgstr[0] "полицейский шлем (с поднятым забралом)" +msgstr[1] "полицейских шлема (с поднятым забралом)" +msgstr[2] "полицейских шлемов (с поднятым забралом)" +msgstr[3] "полицейские шлемы (с поднятым забралом)" #. ~ Use action msg for {'str': 'riot helmet (raised visor)', 'str_pl': 'riot #. helmets (raised visor)'}. @@ -102174,8 +100541,8 @@ msgid "" "A riot helmet with a plastic face shield which is raised up. Activate to " "lower the shield." msgstr "" -"Шлем осназа с поднятым пластиковым забралом. Активируйте, чтобы опустить " -"забрало." +"Полицейский шлем с поднятым пластиковым забралом. Активируйте, чтобы " +"опустить забрало." #: lang/json/TOOL_ARMOR_from_json.py msgid "scuba tank" @@ -102322,6 +100689,46 @@ msgstr[1] "маски Поешь-ки (вкл)" msgstr[2] "масок Поешь-ки (вкл)" msgstr[3] "маски Поешь-ки (вкл)" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "куртка для разминирования" +msgstr[1] "куртки для разминирования" +msgstr[2] "курток для разминирования" +msgstr[3] "куртки для разминирования" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" +"Толстая бронированная куртка из кевлара и номекса для работ по " +"обезвреживанию взрывоопасных боеприпасов. Она разработана для защиты от " +"ударной волны, осколков, высокого давления и жара." + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "лёгкая куртка для разминирования" +msgstr[1] "лёгкие куртки для разминирования" +msgstr[2] "лёгких курток для разминирования" +msgstr[3] "лёгкие куртки для разминирования" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "" +"Бронированная куртка из кевлара и номекса для защиты от ударной волны, " +"осколков, высокого давления и жара. Она легче стандартной куртки для " +"разминирования для большей манёвренности и может быть надета поверх " +"баллистической брони." + #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" @@ -102432,7 +100839,7 @@ msgid_plural "hazardous environment helmets" msgstr[0] "шлем защитного костюма" msgstr[1] "шлемов защитного костюма" msgstr[2] "шлема защитного костюма" -msgstr[3] "шлем защитного костюма" +msgstr[3] "шлемы защитного костюма" #. ~ Use action msg for hazardous environment helmet. #: lang/json/TOOL_ARMOR_from_json.py @@ -102505,7 +100912,7 @@ msgid_plural "advanced UPS's" msgstr[0] "улучшенный УБП" msgstr[1] "улучшенных УБП" msgstr[2] "улучшенных УБП" -msgstr[3] "улучшенный УБП" +msgstr[3] "улучшенные УБП" #. ~ Description for {'str': 'advanced UPS', 'str_pl': "advanced UPS's"} #: lang/json/TOOL_ARMOR_from_json.py @@ -102525,17 +100932,17 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT S-I G.E.A.R" msgid_plural "CRIT S-I G.E.A.Rs" -msgstr[0] "прибор О.Т.П К.Р.И.Т" -msgstr[1] "прибора О.Т.П К.Р.И.Т" -msgstr[2] "приборов О.Т.П К.Р.И.Т" -msgstr[3] "приборы О.Т.П К.Р.И.Т" +msgstr[0] "прибор О.Т.П К.Р.И.Т." +msgstr[1] "прибора О.Т.П К.Р.И.Т." +msgstr[2] "приборов О.Т.П К.Р.И.Т." +msgstr[3] "приборы О.Т.П К.Р.И.Т." #. ~ Description for CRIT S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into " -"your spinal cord, this device improves your overall physique and provides " -"basic information on your surroundings." +"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" +" spinal cord, this device improves your overall physique and provides basic " +"information on your surroundings." msgstr "" "Стандартный Прибор Общей Технической Поддержки. Это устройство подключается " "к спинному мозгу, улучшает работу мышц и обеспечивает основную информацию об" @@ -102544,15 +100951,15 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT gasmask (off)" msgid_plural "CRIT gasmasks (off)" -msgstr[0] "противогаз К.Р.И.Т (выкл)" -msgstr[1] "противогаза К.Р.И.Т (выкл)" -msgstr[2] "противогазов К.Р.И.Т (выкл)" -msgstr[3] "противогазы К.Р.И.Т (выкл)" +msgstr[0] "противогаз К.Р.И.Т. (выкл)" +msgstr[1] "противогаза К.Р.И.Т. (выкл)" +msgstr[2] "противогазов К.Р.И.Т. (выкл)" +msgstr[3] "противогазы К.Р.И.Т. (выкл)" #. ~ Use action msg for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD booting up…" +msgid "CRIT HUD booting up…" msgstr "ЭЛТ-дисплей шлема загружается…" #. ~ Use action need_charges_msg for {'str': 'CRIT gasmask (off)', 'str_pl': @@ -102565,56 +100972,55 @@ msgstr "Слишком низкий уровень мощности для бе #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line " -"electronics and lined with Kevlar for extra protection in order to keep " -"one's head where it should be. Various filters and other high tech wizardry" -" allow for enhanced oxygen intake and safety even under bombardment. It has" -" an integrated HUD and the option to turn it on for more features." +"This is a heavily modified Spec Ops modified gasmask, fitted with top-of-" +"the-line electronics and lined with Kevlar for extra protection in order to " +"keep one's head where it should be. Various filters and other high tech " +"wizardry allow for enhanced oxygen intake and safety even under bombardment." +" It has an integrated HUD and the option to turn it on for more features." msgstr "" -"Усовершенствованный противогаз спецназа К.Р.И.Т, полный первоклассной " -"электроники. Покрыт кевларом, чтобы голова владельца оставалась на месте. " -"Различные фильтры и высокотехнологичные штучки обеспечивают повышенную " -"подачу кислорода и безопасность даже под бомбардировкой. Имеется встроенный " +"Усовершенствованный противогаз спецназа, полный первоклассной электроники. " +"Покрыт кевларом, чтобы голова владельца оставалась на месте. Различные " +"фильтры и высокотехнологичные штучки обеспечивают повышенную подачу " +"кислорода и безопасность даже под бомбардировкой. Имеется встроенный " "переключаемый интерфейс для управления возможностями." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT gasmask (on)" msgid_plural "CRIT gasmasks (on)" -msgstr[0] "противогаз К.Р.И.Т (вкл)" -msgstr[1] "противогаза К.Р.И.Т (вкл)" -msgstr[2] "противогазов К.Р.И.Т (вкл)" -msgstr[3] "противогазы К.Р.И.Т (вкл)" +msgstr[0] "противогаз К.Р.И.Т. (вкл)" +msgstr[1] "противогаза К.Р.И.Т. (вкл)" +msgstr[2] "противогазов К.Р.И.Т. (вкл)" +msgstr[3] "противогазы К.Р.И.Т. (вкл)" #. ~ Use action msg for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD deactivating." +msgid "CRIT HUD deactivating." msgstr "ЭЛТ-дисплей шлема отключается." #. ~ Description for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " -"draining power for the HUD, low-level nightvision and other protective " -"elements." +"This a heavily modified gasmask. It is currently on and draining power for " +"the HUD, low-level nightvision and other protective elements." msgstr "" -"Усовершенствованный противогаз спецназа К.Р.И.Т. Он сейчас включён и тратит " -"энергию на интерфейс, базовое ночное зрение и прочие защитные элементы." +"Усовершенствованный противогаз. Он сейчас включён и тратит энергию на " +"интерфейс, базовое ночное зрение и прочие защитные элементы." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT EM vest (off)" msgid_plural "CRIT EM vests (off)" -msgstr[0] "бронежилет К.Р.И.Т (выкл)" -msgstr[1] "бронежилета К.Р.И.Т (выкл)" -msgstr[2] "бронежилетов К.Р.И.Т (выкл)" -msgstr[3] "бронежилеты К.Р.И.Т (выкл)" +msgstr[0] "бронежилет К.Р.И.Т. (выкл)" +msgstr[1] "бронежилета К.Р.И.Т. (выкл)" +msgstr[2] "бронежилетов К.Р.И.Т. (выкл)" +msgstr[3] "бронежилеты К.Р.И.Т. (выкл)" #. ~ Use action msg for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T EM booting up…" -msgstr "Бронежилет К.Р.И.Т активируется…" +msgid "CRIT EM booting up…" +msgstr "Бронежилет К.Р.И.Т. активируется…" #. ~ Use action need_charges_msg for {'str': 'CRIT EM vest (off)', 'str_pl': #. 'CRIT EM vests (off)'}. @@ -102626,25 +101032,25 @@ msgstr "Слишком низкий уровень мощности для бе #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments and reactive servos which protects its wearer and assists in " -"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec" -" Ops for its ease of use and manuverability. Turn it on for suit mode, " -"extra protection and movement." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments and" +" reactive servos which protects its wearer and assists in movement at the " +"cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its " +"ease of use and manuverability. Turn it on for suit mode, extra protection " +"and movement." msgstr "" -"Бронежилет Улучшенного Передвижения К.Р.И.Т для спецназа, пронизанный " +"Бронежилет Улучшенного Передвижения для спецназа, пронизанный " "высокотехнологичными волокнами и активными сервоприводами. Защищает " "владельца и помогает двигаться ценой высокого потребления энергии. Обычно, " -"такие носит спецназ К.Р.И.Т из-за лёгкости и манёвренности. Включите для " +"такие носит спецназ К.Р.И.Т. из-за лёгкости и манёвренности. Включите для " "дополнительной защиты и ускорения передвижения." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT EM vest (on)" msgid_plural "CRIT EM vests (on)" -msgstr[0] "бронежилет К.Р.И.Т (вкл)" -msgstr[1] "бронежилета К.Р.И.Т (вкл)" -msgstr[2] "бронежилетов К.Р.И.Т (вкл)" -msgstr[3] "бронежилеты К.Р.И.Т (вкл)" +msgstr[0] "бронежилет К.Р.И.Т. (вкл)" +msgstr[1] "бронежилета К.Р.И.Т. (вкл)" +msgstr[2] "бронежилетов К.Р.И.Т. (вкл)" +msgstr[3] "бронежилеты К.Р.И.Т. (вкл)" #. ~ Use action menu_text for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM #. vests (on)'}. @@ -102655,20 +101061,20 @@ msgstr "Выключить броню" #. ~ Use action msg for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T E.M powering off…" -msgstr "бронежилет К.Р.И.Т отключается…" +msgid "CRIT EM powering off…" +msgstr "бронежилет К.Р.И.Т. отключается…" #. ~ Description for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments, reactive servos and a generator which pumps a crystallized liquid" -" that protects its wearer from most heavy combat situations at the cost of " -"extreme power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is" -" currently in suit form and draining your UPS power at high rates." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments, " +"reactive servos and a generator which pumps a crystallized liquid that " +"protects its wearer from most heavy combat situations at the cost of extreme" +" power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " +"currently in suit form and draining your UPS power at high rates." msgstr "" -"Бронежилет Улучшенного Передвижения К.Р.И.Т для спецназа, пронизанный " +"Бронежилет Улучшенного Передвижения для спецназа, пронизанный " "высокотехнологичными волокнами, активными сервоприводами, а также " "генератором, качающим кристаллическую жидкость для защиты владельца от " "большинства боевых опасностей ценой высокого потребления энергии. Обычно, " @@ -102678,10 +101084,10 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT helmet (off)" msgid_plural "CRIT helmets (off)" -msgstr[0] "шлем К.Р.И.Т (выкл)" -msgstr[1] "шлема К.Р.И.Т (выкл)" -msgstr[2] "шлемов К.Р.И.Т (выкл)" -msgstr[3] "шлемы К.Р.И.Т (выкл)" +msgstr[0] "шлем К.Р.И.Т. (выкл)" +msgstr[1] "шлема К.Р.И.Т. (выкл)" +msgstr[2] "шлемов К.Р.И.Т. (выкл)" +msgstr[3] "шлемы К.Р.И.Т. (выкл)" #. ~ Use action msg for {'str': 'CRIT helmet (off)', 'str_pl': 'CRIT helmets #. (off)'}. @@ -102694,19 +101100,19 @@ msgstr "Вы включили %s." #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection." msgstr "" -"Стандартный шлем К.Р.И.Т. Защищает котелок. Имеется стальная сетка с " -"подкладкой для защиты и согревания шеи." +"Стандартный шлем. Защищает котелок. Имеется стальная сетка с подкладкой для " +"защиты и согревания шеи." #: lang/json/TOOL_ARMOR_from_json.py msgid "CRIT helmet (on)" msgid_plural "CRIT helmets (on)" -msgstr[0] "шлем К.Р.И.Т (вкл)" -msgstr[1] "шлема К.Р.И.Т (вкл)" -msgstr[2] "шлемов К.Р.И.Т (вкл)" -msgstr[3] "шлемы К.Р.И.Т (вкл)" +msgstr[0] "шлем К.Р.И.Т. (вкл)" +msgstr[1] "шлема К.Р.И.Т. (вкл)" +msgstr[2] "шлемов К.Р.И.Т. (вкл)" +msgstr[3] "шлемы К.Р.И.Т. (вкл)" #. ~ Use action msg for {'str': 'CRIT helmet (on)', 'str_pl': 'CRIT helmets #. (on)'}. @@ -102719,14 +101125,13 @@ msgstr "Вы выключаете %s." #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection. A tactically dim " -"flashlight is attached to the side. This light is currently on and drawing " -"power." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection. A tactically dim flashlight is " +"attached to the side. This light is currently on and drawing power." msgstr "" -"Стандартный шлем К.Р.И.Т. Защищает котелок. Имеется стальная сетка с " -"подкладкой для защиты и согревания шеи, а также тактический фонарик. Сейчас " -"фонарик включён и потребляет энергию." +"Стандартный шлем. Защищает котелок. Имеется стальная сетка с подкладкой для " +"защиты и согревания шеи, а также тактический фонарик. Сейчас фонарик включён" +" и потребляет энергию." #: lang/json/TOOL_ARMOR_from_json.py msgid "magic leather belt" @@ -102780,8 +101185,8 @@ msgid "" "greatly reduced." msgstr "" "Широкий облегающий талию пояс, покрыт множеством маленьких кармашков, " -"которые намного больше, чем выглядят. А вес их содержимого значительно " -"меньше." +"которые вмешают больше, чем кажется. А вес их содержимого значительно " +"уменьшается." #: lang/json/TOOL_ARMOR_from_json.py msgid "Greater Girdle of Pockets" @@ -102809,7 +101214,7 @@ msgid "" msgstr "" "Широкий облегающий талию пояс, где вы можете разместить любое холодное или " "огнестрельное оружие в мгновение ока, и судя по всему, оно попадет на " -"хранение куда еще, пока вы не захотите его достать." +"хранение куда-то еще, пока вы не захотите его достать." #: lang/json/TOOL_ARMOR_from_json.py msgid "Belt of The Iron Whip" @@ -103492,7 +101897,7 @@ msgid_plural "RDX charges" msgstr[0] "заряд гексогена" msgstr[1] "заряда гексогена" msgstr[2] "зарядов гексогена" -msgstr[3] "заряд гексогена" +msgstr[3] "заряды гексогена" #. ~ Use action menu_text for {'str': 'RDX charge'}. #. ~ Use action menu_text for {'str': 'nail bomb'}. @@ -103523,7 +101928,7 @@ msgstr "Зажечь фитиль" #. ~ Use action msg for {'str': 'RDX charge'}. #: lang/json/TOOL_from_json.py msgid "You light the fuse on the explosive charge. Clear the area!" -msgstr "Вы зажигаете фитиль фугасного заряда. Очистить зону!" +msgstr "Вы зажигаете фитиль фугасного заряда. Покинуть зону поражения!" #. ~ Description for {'str': 'RDX charge'} #: lang/json/TOOL_from_json.py @@ -103542,7 +101947,7 @@ msgid_plural "nail bombs" msgstr[0] "бомба с гвоздями" msgstr[1] "бомбы с гвоздями" msgstr[2] "бомб с гвоздями" -msgstr[3] "бомба с гвоздями" +msgstr[3] "бомбы с гвоздями" #. ~ Use action msg for {'str': 'nail bomb'}. #. ~ Use action msg for {'str': 'fragment bomb'}. @@ -103568,7 +101973,7 @@ msgid_plural "active nail bombs" msgstr[0] "бомба с гвоздями (активно)" msgstr[1] "бомбы с гвоздями (активно)" msgstr[2] "бомб с гвоздями (активно)" -msgstr[3] "бомба с гвоздями (активно)" +msgstr[3] "бомбы с гвоздями (активно)" #. ~ Use action no_deactivate_msg for {'str': 'active nail bomb'}. #. ~ Use action no_deactivate_msg for {'str': 'active fragment bomb'}. @@ -103653,7 +102058,7 @@ msgid_plural "active RDX charges" msgstr[0] "заряд гексогена (активно)" msgstr[1] "заряда гексогена (активно)" msgstr[2] "зарядов гексогена (активно)" -msgstr[3] "заряд гексогена (активно)" +msgstr[3] "заряды гексогена (активно)" #. ~ Use action no_deactivate_msg for {'str': 'active RDX charge'}. #. ~ Use action no_deactivate_msg for {'str': 'active improvised barrel @@ -103690,7 +102095,7 @@ msgid_plural "ANFO charges" msgstr[0] "заряд АСНТ" msgstr[1] "заряда АСНТ" msgstr[2] "зарядов АСНТ" -msgstr[3] "заряд АСНТ" +msgstr[3] "заряды АСНТ" #. ~ Use action msg for {'str': 'ANFO charge'}. #: lang/json/TOOL_from_json.py @@ -103715,7 +102120,7 @@ msgid_plural "active ANFO charges" msgstr[0] "заряд АСНТ (активно)" msgstr[1] "заряда АСНТ (активно)" msgstr[2] "зарядов АСНТ (активно)" -msgstr[3] "заряд АСНТ (активно)" +msgstr[3] "заряды АСНТ (активно)" #. ~ Use action no_deactivate_msg for {'str': 'active ANFO charge'}. #. ~ Use action no_deactivate_msg for {'str': 'active black gunpowder @@ -103758,7 +102163,7 @@ msgid_plural "fertilizer bombs" msgstr[0] "бомба из удобрений" msgstr[1] "бомбы из удобрений" msgstr[2] "бомб из удобрений" -msgstr[3] "бомба из удобрений" +msgstr[3] "бомбы из удобрений" #. ~ Use action msg for {'str': 'fertilizer bomb'}. #. ~ Use action msg for {'str': 'primitive demolition charge'}. @@ -103787,7 +102192,7 @@ msgid_plural "fertilizer bombs (lit)" msgstr[0] "бомба из удобрений (горит)" msgstr[1] "бомбы из удобрений (горит)" msgstr[2] "бомб из удобрений (горит)" -msgstr[3] "бомба из удобрений (горит)" +msgstr[3] "бомбы из удобрений (горит)" #. ~ Use action no_deactivate_msg for {'str': 'fertilizer bomb (lit)', #. 'str_pl': 'fertilizer bombs (lit)'}. @@ -103824,7 +102229,7 @@ msgid_plural "washcloths" msgstr[0] "ветошь" msgstr[1] "ветоши" msgstr[2] "ветоши" -msgstr[3] "ветошь" +msgstr[3] "ветоши" #. ~ Description for {'str': 'washcloth'} #: lang/json/TOOL_from_json.py @@ -103835,9 +102240,9 @@ msgstr "Кусок ткани для протирки водооталкиваю msgid "pipe bomb" msgid_plural "pipe bombs" msgstr[0] "самодельная бомба" -msgstr[1] "самодельных бомбы" +msgstr[1] "самодельные бомбы" msgstr[2] "самодельных бомб" -msgstr[3] "самодельная бомба" +msgstr[3] "самодельные бомбы" #. ~ Use action msg for {'str': 'pipe bomb'}. #. ~ Use action msg for {'str': 'improvised pipe bomb'}. @@ -103861,9 +102266,9 @@ msgstr "" msgid "active pipe bomb" msgid_plural "active pipe bombs" msgstr[0] "самодельная бомба (активно)" -msgstr[1] "самодельных бомбы (активно)" +msgstr[1] "самодельные бомбы (активно)" msgstr[2] "самодельных бомб (активно)" -msgstr[3] "самодельная бомба (активно)" +msgstr[3] "самодельные бомбы (активно)" #. ~ Description for {'str': 'active pipe bomb'} #. ~ Description for {'str': 'active improvised pipe bomb'} @@ -103882,7 +102287,7 @@ msgid_plural "black gunpowder charges" msgstr[0] "пороховой заряд" msgstr[1] "пороховых заряда" msgstr[2] "пороховых зарядов" -msgstr[3] "пороховой заряд" +msgstr[3] "пороховые заряды" #. ~ Use action msg for {'str': 'black gunpowder charge'}. #: lang/json/TOOL_from_json.py @@ -103907,7 +102312,7 @@ msgid_plural "active black gunpowder charges" msgstr[0] "пороховой заряд (активно)" msgstr[1] "пороховых заряда (активно)" msgstr[2] "пороховых зарядов (активно)" -msgstr[3] "пороховой заряд (активно)" +msgstr[3] "пороховые заряды (активно)" #. ~ Description for {'str': 'active black gunpowder charge'} #: lang/json/TOOL_from_json.py @@ -103938,7 +102343,7 @@ msgid "" "hundreds of dollars. Mostly they're a good way to brag to your neighbors " "that you have a nuclear power source in your house." msgstr "" -"Обуздайте мощь радиации у себя дома! Похожа на обычную ёмкую батарейку, но " +"Обуздайте мощь радиации у себя дома! Похожа на обычную батарейку типа D, но " "на самом деле внутри неё слои радиоактивного вещества. Способна несколько " "лет вырабатывать электричество со стабильным напряжением… Только его едва " "хватит, чтобы зажечь маленький светодиод, причём такая батарейка стоила " @@ -104110,10 +102515,10 @@ msgstr[3] "бионические лезвия" #: lang/json/TOOL_from_json.py msgid "clairvoyance rod" msgid_plural "clairvoyance rods" -msgstr[0] "палочка ясновидения" -msgstr[1] "палочки ясновидения" -msgstr[2] "палочек ясновидения" -msgstr[3] "палочка ясновидения" +msgstr[0] "жезл ясновидения" +msgstr[1] "жезла ясновидения" +msgstr[2] "жезлов ясновидения" +msgstr[3] "жезлы ясновидения" #. ~ Description for {'str': 'clairvoyance rod'} #: lang/json/TOOL_from_json.py @@ -104130,7 +102535,7 @@ msgid_plural "boulder anvils" msgstr[0] "наковальня-валун" msgstr[1] "наковальни-валуна" msgstr[2] "наковален-валунов" -msgstr[3] "наковальня-валун" +msgstr[3] "наковальни-валуны" #: lang/json/TOOL_from_json.py msgid "bionic firestarter" @@ -104146,7 +102551,7 @@ msgid_plural "cash cards" msgstr[0] "кредитка" msgstr[1] "кредитки" msgstr[2] "кредиток" -msgstr[3] "кредитка" +msgstr[3] "кредитки" #. ~ Description for {'str': 'cash card'} #: lang/json/TOOL_from_json.py @@ -104157,7 +102562,7 @@ msgid "" msgstr "" "Жёлтая пластиковая карта для хранения денег. Такие стали популярными, когда " "правительство полностью перешло на электронные деньги. Может содержать до " -"2-х миллионов долларов." +"двух миллионов долларов." #: lang/json/TOOL_from_json.py msgid "prototype I/O recorder" @@ -104180,9 +102585,9 @@ msgstr "" msgid "silver gas discount card" msgid_plural "silver gas discount cards" msgstr[0] "серебряная дисконтная карта АЗС" -msgstr[1] "серебряных дисконтных карты АЗС" +msgstr[1] "серебряные дисконтные карты АЗС" msgstr[2] "серебряных дисконтных карт АЗС" -msgstr[3] "серебряная дисконтная карта АЗС" +msgstr[3] "серебряные дисконтные карты АЗС" #. ~ Description for {'str': 'silver gas discount card'} #: lang/json/TOOL_from_json.py @@ -104193,9 +102598,9 @@ msgstr "Эта карта даёт вам небольшую скидку при msgid "gold gas discount card" msgid_plural "gold gas discount cards" msgstr[0] "золотая дисконтная карта АЗС" -msgstr[1] "золотых дисконтных карты АЗС" +msgstr[1] "золотые дисконтные карты АЗС" msgstr[2] "золотых дисконтных карт АЗС" -msgstr[3] "золотая дисконтная карта АЗС" +msgstr[3] "золотые дисконтные карты АЗС" #. ~ Description for {'str': 'gold gas discount card'} #: lang/json/TOOL_from_json.py @@ -104206,9 +102611,9 @@ msgstr "Эта карта даёт вам хорошую скидку при п msgid "platinum gas discount card" msgid_plural "platinum gas discount cards" msgstr[0] "платиновая дисконтная карта АЗС" -msgstr[1] "платиновых дисконтных карты АЗС" +msgstr[1] "платиновые дисконтные карты АЗС" msgstr[2] "платиновых дисконтных карт АЗС" -msgstr[3] "платиновая дисконтная карта АЗС" +msgstr[3] "платиновая дисконтная карта АЗСплатиновые дисконтные карты АЗС" #. ~ Description for {'str': 'platinum gas discount card'} #: lang/json/TOOL_from_json.py @@ -104233,21 +102638,17 @@ msgstr "Свет" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." -msgstr "Вы зажгли свечу в фонаре из тыквы." +msgid "You flip the switch in the jack o'lantern." +msgstr "Вы щелкаете выключателем на фонаре из тыквы." #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." +"face. It has a tiny LED light in it. It doesn't provide very much light." msgstr "" -"Это пластиковый крашенный фонарь, выглядит как тыква с лицом. У него есть " -"свеча, которую можно заменить, когда она сгорела. Он не дает много света, но" -" может гореть довольно долго. Вам понадобится зажигалка или спички, чтобы " -"зажечь его." +"Это пластиковый крашенный фонарь, выглядит как тыква с лицом. Внутри " +"установлена маленькая светодиодная лампочка. Он не дает много света." #: lang/json/TOOL_from_json.py msgid "spooky jack o'lantern" @@ -104260,19 +102661,19 @@ msgstr[3] "фонари из тыквы" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." -msgstr "Свеча мерцает внутри фонаря." +msgid "The LED winks out inside the lantern." +msgstr "Лампочка мерцает внутри фонаря." #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"} #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is lit." +"very much light, but it can run for quite a long time. This lantern is lit." " The face shifts." msgstr "" "Внутри тыквы есть толстая светодиодная свеча. Она не дает много света, но " -"может гореть довольно долго. Свеча горит. Лицо меняется." +"может светиться довольно долго. Свеча горит. Лицо будто движется." #: lang/json/TOOL_from_json.py msgid "yule wreath" @@ -104363,9 +102764,9 @@ msgstr "" msgid "match head bomb" msgid_plural "match head bombs" msgstr[0] "спичечная бомба" -msgstr[1] "спичечных бомбы" +msgstr[1] "спичечные бомбы" msgstr[2] "спичечных бомб" -msgstr[3] "спичечная бомба" +msgstr[3] "спичечные бомбы" #. ~ Use action msg for {'str': 'match head bomb'}. #: lang/json/TOOL_from_json.py @@ -104387,9 +102788,9 @@ msgstr "" msgid "match head bomb (lit)" msgid_plural "match head bombs (lit)" msgstr[0] "спичечная бомба (горит)" -msgstr[1] "спичечных бомбы (горят)" +msgstr[1] "спичечные бомбы (горят)" msgstr[2] "спичечных бомб (горят)" -msgstr[3] "спичечная бомба (горит)" +msgstr[3] "спичечные бомбы (горят)" #. ~ Description for {'str': 'match head bomb (lit)', 'str_pl': 'match head #. bombs (lit)'} @@ -104406,9 +102807,9 @@ msgstr "" msgid "active black gunpowder bomb" msgid_plural "active black gunpowder bombs" msgstr[0] "пороховая бомба (активно)" -msgstr[1] "пороховых бомбы (активно)" +msgstr[1] "пороховые бомбы (активно)" msgstr[2] "пороховых бомб (активно)" -msgstr[3] "пороховая бомба (активно)" +msgstr[3] "пороховые бомбы (активно)" #. ~ Use action no_deactivate_msg for {'str': 'active black gunpowder bomb'}. #: lang/json/TOOL_from_json.py @@ -104430,7 +102831,7 @@ msgid_plural "hobo stoves (lit)" msgstr[0] "печь бродяги (зажжена)" msgstr[1] "печи бродяги (зажжены)" msgstr[2] "печей бродяги (зажжены)" -msgstr[3] "печь бродяги (зажжена)" +msgstr[3] "печи бродяги (зажжены)" #. ~ Use action msg for {'str': 'hobo stove (lit)', 'str_pl': 'hobo stoves #. (lit)'}. @@ -104574,7 +102975,7 @@ msgid_plural "shishkebabs (off)" msgstr[0] "шиш-кебаб (выкл)" msgstr[1] "шиш-кебаба (выкл)" msgstr[2] "шиш-кебабов (выкл)" -msgstr[3] "шиш-кебаб (выкл)" +msgstr[3] "шиш-кебабы (выкл)" #. ~ Use action failure_message for {'str': 'shishkebab (off)', 'str_pl': #. 'shishkebabs (off)'}. @@ -104613,7 +103014,7 @@ msgid_plural "shishkebabs (on)" msgstr[0] "шиш-кебаб (вкл)" msgstr[1] "шиш-кебаба (вкл)" msgstr[2] "шиш-кебабов (вкл)" -msgstr[3] "шиш-кебаб (вкл)" +msgstr[3] "шиш-кебабы (вкл)" #. ~ Use action auto_extinguish_message for {'str': 'shishkebab (on)', #. 'str_pl': 'shishkebabs (on)'}. @@ -104696,7 +103097,7 @@ msgstr "Ваш №9 отключается!" #. 9's"}. #: lang/json/TOOL_from_json.py msgid "Out of ammo!" -msgstr "Кончились боеприпасы!" +msgstr "Кончилось топливо!" #. ~ Use action noise_message for {'str': 'No. 9', 'str_pl': "No. 9's"}. #: lang/json/TOOL_from_json.py @@ -104730,9 +103131,9 @@ msgstr "" msgid "Rising Sun" msgid_plural "Rising Suns" msgstr[0] "Восходящее Солнце" -msgstr[1] "Восходящее Солнце" -msgstr[2] "Восходящее Солнце" -msgstr[3] "Восходящее Солнце" +msgstr[1] "Восходящих Солнца" +msgstr[2] "Восходящих Солнц" +msgstr[3] "Восходящие Солнца" #. ~ Use action lacks_fuel_message for {'str': 'Rising Sun'}. #: lang/json/TOOL_from_json.py @@ -104795,7 +103196,7 @@ msgid_plural "firebrands (off)" msgstr[0] "разжигатель (выкл)" msgstr[1] "разжигателя (выкл)" msgstr[2] "разжигателей (выкл)" -msgstr[3] "разжигатель (выкл)" +msgstr[3] "разжигатели (выкл)" #. ~ Use action lacks_fuel_message for {'str': 'firebrand (off)', 'str_pl': #. 'firebrands (off)'}. @@ -104826,7 +103227,7 @@ msgid_plural "firebrands (on)" msgstr[0] "разжигатель (вкл)" msgstr[1] "разжигателя (вкл)" msgstr[2] "разжигателей (вкл)" -msgstr[3] "разжигатель (вкл)" +msgstr[3] "разжигатели (вкл)" #. ~ Use action charges_extinguish_message for {'str': 'firebrand (on)', #. 'str_pl': 'firebrands (on)'}. @@ -104863,7 +103264,7 @@ msgid_plural "flammenschwerter (aus)" msgstr[0] "фламменшверт (выкл)" msgstr[1] "фламменшверта (выкл)" msgstr[2] "фламменшвертов (выкл)" -msgstr[3] "фламменшверт (выкл)" +msgstr[3] "фламменшверты (выкл)" #. ~ Use action lacks_fuel_message for {'str': 'flammenschwert (aus)', #. 'str_pl': 'flammenschwerter (aus)'}. @@ -104899,7 +103300,7 @@ msgid_plural "flammenschwerter" msgstr[0] "фламменшверт" msgstr[1] "фламменшверта" msgstr[2] "фламменшвертов" -msgstr[3] "фламменшверт" +msgstr[3] "фламменшверты" #. ~ Use action charges_extinguish_message for {'str': 'flammenschwert', #. 'str_pl': 'flammenschwerter'}. @@ -104931,7 +103332,7 @@ msgid_plural "Louisville Slaughterers" msgstr[0] "луисвильский погромщик" msgstr[1] "луисвильских погромщика" msgstr[2] "луисвильских погромщиков" -msgstr[3] "луисвильский погромщик" +msgstr[3] "луисвильские погромщики" #. ~ Use action msg for {'str': 'Louisville Slaughterer'}. #: lang/json/TOOL_from_json.py @@ -105007,13 +103408,54 @@ msgstr "" "Стальная труба, содержащая смесь гексогена и песка, образующая смертоносное " "облако ужасающей шрапнели. Фитиль подожжён, так почему же ты ещё держишь её?" +#: lang/json/TOOL_from_json.py +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "управляющий ноутбук" +msgstr[1] "управляющих ноутбука" +msgstr[2] "управляющих ноутбуков" +msgstr[3] "управляющие ноутбуки" + +#. ~ Description for {'str': 'control laptop'} +#: lang/json/TOOL_from_json.py +msgid "" +"A modified laptop, now capable of transmitting in the ultra-high frequencies" +" utilized by robots. Activate it to command robots from afar." +msgstr "" +"Модифицированный ноутбук, теперь способен транслировать на сверхвысоких " +"частотах, используемых роботами. Активируйте его, чтобы управлять роботами с" +" дистанции." + +#: lang/json/TOOL_from_json.py +msgid "inactive laser turret" +msgid_plural "inactive laser turrets" +msgstr[0] "лазерная турель (неактивно)" +msgstr[1] "лазерные турели (неактивно)" +msgstr[2] "лазерных турелей (неактивно)" +msgstr[3] "лазерные турели (неактивно)" + +#. ~ Description for {'str': 'inactive laser turret'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive laser turret. Using this item involves turning it on " +"and placing it on the ground, where it will attach itself. If reprogrammed " +"and rewired successfully the turret will identify you as a friendly, and " +"attack all enemies with its revolving laser cannons. It requires sunlight " +"in order to fire." +msgstr "" +"Отключённая лазерная турель. Для использования её нужно активировать и " +"выбрать место на земле для установки. Если турель была успешно " +"перепрограммирована, то она будет идентифицировать вас как дружественный " +"объект и атаковать всех врагов из лазерных пушек. Для стрельбы требуется " +"солнечный свет." + #: lang/json/TOOL_from_json.py msgid "folded poncho" msgid_plural "folded ponchos" msgstr[0] "сложенное пончо" msgstr[1] "сложенных пончо" msgstr[2] "сложенных пончо" -msgstr[3] "сложенное пончо" +msgstr[3] "сложенные пончо" #. ~ Description for {'str': 'folded poncho'} #: lang/json/TOOL_from_json.py @@ -105027,10 +103469,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "folded emergency blanket" msgid_plural "folded emergency blankets" -msgstr[0] "сложенное походное одеяло" -msgstr[1] "сложенных походных одеяла" -msgstr[2] "сложенных походных одеял" -msgstr[3] "сложенное походное одеяло" +msgstr[0] "сложенное спасательное одеяло" +msgstr[1] "сложенных спасательных одеяла" +msgstr[2] "сложенных спасательных одеял" +msgstr[3] "сложенные спасательные одеяла" #. ~ Description for {'str': 'folded emergency blanket'} #: lang/json/TOOL_from_json.py @@ -105044,10 +103486,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive EMP hack" msgid_plural "inactive EMP hacks" -msgstr[0] "неактивный дрон ЭМИ граната" -msgstr[1] "неактивных дрона ЭМИ граната" -msgstr[2] "неактивных дронов ЭМИ граната" -msgstr[3] "неактивный дрон ЭМИ граната" +msgstr[0] "неактивный дрон с ЭМИ гранатой" +msgstr[1] "неактивных дрона с ЭМИ гранатой" +msgstr[2] "неактивных дронов с ЭМИ гранатой" +msgstr[3] "неактивные дроны с ЭМИ гранатой" #. ~ Use action friendly_msg for {'str': 'inactive EMP hack'}. #: lang/json/TOOL_from_json.py @@ -105077,10 +103519,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive C-4 hack" msgid_plural "inactive C-4 hacks" -msgstr[0] "неактивный дрон С-4" -msgstr[1] "неактивных дрона С-4" -msgstr[2] "неактивных дронов С-4" -msgstr[3] "неактивный дрон С-4" +msgstr[0] "неактивный дрон с С-4" +msgstr[1] "неактивных дрона с С-4" +msgstr[2] "неактивных дронов с С-4" +msgstr[3] "неактивные дроны с С-4" #. ~ Use action friendly_msg for {'str': 'inactive C-4 hack'}. #: lang/json/TOOL_from_json.py @@ -105109,10 +103551,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive flashbang hack" msgid_plural "inactive flashbang hacks" -msgstr[0] "неактивный дрон светошумовая граната " -msgstr[1] "неактивных дрона светошумовая граната " -msgstr[2] "неактивных дронов светошумовая граната " -msgstr[3] "неактивный дрон светошумовая граната " +msgstr[0] "неактивный дрон со светошумовой гранатой" +msgstr[1] "неактивных дрона со светошумовой гранатой" +msgstr[2] "неактивных дронов со светошумовой гранатой" +msgstr[3] "неактивные дроны со светошумовой гранатой" #. ~ Use action friendly_msg for {'str': 'inactive flashbang hack'}. #: lang/json/TOOL_from_json.py @@ -105144,10 +103586,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive tear gas hack" msgid_plural "inactive tear gas hacks" -msgstr[0] "неактивный дрон слезоточивая граната" -msgstr[1] "неактивных дрона слезоточивая граната" -msgstr[2] "неактивных дронов слезоточивая граната" -msgstr[3] "неактивный дрон слезоточивая граната" +msgstr[0] "неактивный дрон со слезоточивой гранатой" +msgstr[1] "неактивных дрона со слезоточивой гранатой" +msgstr[2] "неактивных дронов со слезоточивой гранатой" +msgstr[3] "неактивные дроны со слезоточивой гранатой" #. ~ Use action friendly_msg for {'str': 'inactive tear gas hack'}. #: lang/json/TOOL_from_json.py @@ -105179,10 +103621,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive grenade hack" msgid_plural "inactive grenade hacks" -msgstr[0] "неактивный дрон граната" -msgstr[1] "неактивных дрона гранаты" -msgstr[2] "неактивных дронов гранат" -msgstr[3] "неактивный дрон граната" +msgstr[0] "неактивный дрон-граната" +msgstr[1] "неактивных дрона-гранаты" +msgstr[2] "неактивных дронов-гранат" +msgstr[3] "неактивные дроны-гранаты" #. ~ Use action friendly_msg for {'str': 'inactive grenade hack'}. #: lang/json/TOOL_from_json.py @@ -105209,29 +103651,6 @@ msgstr "" "взрываются. Активируйте этот мэнхак для использования. Высокий уровень " "навыков электроники и компьютеров поможет с успешным перепрограммированием." -#: lang/json/TOOL_from_json.py -msgid "inactive laser turret" -msgid_plural "inactive laser turrets" -msgstr[0] "лазерная турель (неактивно)" -msgstr[1] "лазерных турели (неактивно)" -msgstr[2] "лазерных турелей (неактивно)" -msgstr[3] "лазерная турель (неактивно)" - -#. ~ Description for {'str': 'inactive laser turret'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive laser turret. Using this item involves turning it on " -"and placing it on the ground, where it will attach itself. If reprogrammed " -"and rewired successfully the turret will identify you as a friendly, and " -"attack all enemies with its revolving laser cannons. It requires sunlight " -"in order to fire." -msgstr "" -"Отключённая лазерная турель. Для использования её нужно активировать и " -"выбрать место на земле для установки. Если турель была успешно " -"перепрограммирована, то она будет идентифицировать вас как дружественный " -"объект и атаковать всех врагов из лазерных пушек. Для стрельбы требуется " -"солнечный свет." - #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" @@ -105263,7 +103682,7 @@ msgid_plural "inactive manhacks" msgstr[0] "отключённый мэнхак" msgstr[1] "отключённых мэнхака" msgstr[2] "отключённых мэнхаков" -msgstr[3] "отключённый мэнхак" +msgstr[3] "отключённые мэнхаки" #. ~ Use action friendly_msg for {'str': 'inactive manhack'}. #: lang/json/TOOL_from_json.py @@ -105276,7 +103695,6 @@ msgid "You misprogram the manhack; it's hostile!" msgstr "Вы ошиблись в настройке, мэнхак враждебен!" #. ~ Description for {'str': 'inactive manhack'} -#. ~ Description for inactive hack #: lang/json/TOOL_from_json.py msgid "" "This is an inactive manhack. Manhacks are fist-sized robots that fly " @@ -105296,7 +103714,7 @@ msgid_plural "inactive mininuke hacks" msgstr[0] "неактивный мэнхак с ядерной мини-бомбой" msgstr[1] "неактивных мэнхака с ядерной мини-бомбой" msgstr[2] "неактивных мэнхаков с ядерной мини-бомбой" -msgstr[3] "неактивный мэнхак с ядерной мини-бомбой" +msgstr[3] "неактивные мэнхаки с ядерной мини-бомбой" #. ~ Use action friendly_msg for {'str': 'inactive mininuke hack'}. #: lang/json/TOOL_from_json.py @@ -105378,10 +103796,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive riot control turret" msgid_plural "inactive riot control turrets" -msgstr[0] "неактивная турель осназа" -msgstr[1] "неактивные турели осназа" -msgstr[2] "неактивных турелей осназа" -msgstr[3] "неактивная турель осназа" +msgstr[0] "неактивная турель подавления беспорядков" +msgstr[1] "неактивные турели подавления беспорядков" +msgstr[2] "неактивных турелей подавления беспорядков" +msgstr[3] "неактивные турели подавления беспорядков" #. ~ Description for {'str': 'inactive riot control turret'} #: lang/json/TOOL_from_json.py @@ -105407,7 +103825,7 @@ msgid_plural "inactive turrets" msgstr[0] "турель (неактивно)" msgstr[1] "турели (неактивно)" msgstr[2] "турелей (неактивно)" -msgstr[3] "турель (неактивно)" +msgstr[3] "турели (неактивно)" #. ~ Description for {'str': 'inactive turret'} #: lang/json/TOOL_from_json.py @@ -105508,7 +103926,7 @@ msgstr "Робот-медсестра утвердительно пиликае #. ~ Use action hostile_msg for {'str': 'inactive nurse bot'}. #: lang/json/TOOL_from_json.py msgid "You misprogram the nurse bot. It's looking at you funny." -msgstr "Вы ошиблись в настройке робота-медсестры. Он забавно на вас смотрит." +msgstr "Вы ошиблись в настройке робота-медсестры. Он странно на вас смотрит." #. ~ Description for {'str': 'inactive nurse bot'} #: lang/json/TOOL_from_json.py @@ -105673,15 +104091,15 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive eyebot" msgid_plural "inactive eyebots" -msgstr[0] "неактивный глазобот" -msgstr[1] "неактивных глазобота" -msgstr[2] "неактивных глазоботов" -msgstr[3] "неактивный глазобот" +msgstr[0] "неактивный робоглаз" +msgstr[1] "неактивных робоглаза" +msgstr[2] "неактивных робоглазов" +msgstr[3] "неактивные робоглазы" #. ~ Use action friendly_msg for {'str': 'inactive eyebot'}. #: lang/json/TOOL_from_json.py msgid "The eyebot hums and takes to the sky." -msgstr "Глазобот с гудением поднимается к небу." +msgstr "Робоглаз с гудением поднимается к небу." #. ~ Use action hostile_msg for {'str': 'inactive eyebot'}. #: lang/json/TOOL_from_json.py @@ -105699,7 +104117,7 @@ msgid "" "launching the UAV. If reprogrammed and rewired successfully the eyebot will" " then keep watch for intruders." msgstr "" -"Неактивный глазобот. После использования помещается на землю и активируется " +"Неактивный робоглаз. После использования помещается на землю и активируется " "БЛА. Если успешно перепрограммировать, будет высматривать нарушителей." #: lang/json/TOOL_from_json.py @@ -105763,22 +104181,23 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive riot control bot" msgid_plural "inactive riot control bots" -msgstr[0] "неактивный робот осназа" -msgstr[1] "неактивных робота осназа" -msgstr[2] "неактивных роботов осназа" -msgstr[3] "неактивные роботы осназа" +msgstr[0] "неактивный робот подавления беспорядков" +msgstr[1] "неактивных робота подавления беспорядков" +msgstr[2] "неактивных роботов подавления беспорядков" +msgstr[3] "неактивные роботы подавления беспорядков" #. ~ Use action friendly_msg for {'str': 'inactive riot control bot'}. #: lang/json/TOOL_from_json.py msgid "The riot control bot rolls into action." -msgstr "Робот осназа активируется и готов действовать." +msgstr "Робот для подавления беспорядков активируется и готов действовать." #. ~ Use action hostile_msg for {'str': 'inactive riot control bot'}. #: lang/json/TOOL_from_json.py msgid "" "The riot control bot gases you and approaches with a pair of handcuffs." msgstr "" -"Робот осназа обдаёт вас облаком газа и приближается с парой наручников." +"Робот подавления беспорядков обдаёт вас облаком газа и приближается с парой " +"наручников." #. ~ Description for {'str': 'inactive riot control bot'} #: lang/json/TOOL_from_json.py @@ -105787,9 +104206,9 @@ msgid "" "on the ground and turning it on. If reprogrammed and rewired successfully " "the robot will bring order and peace to the horde." msgstr "" -"Отключённый робот осназа. После использования помещается на землю и " -"активируется. Если успешно перепрограммировать, будет нести ордам мир и " -"порядок." +"Отключённый робот для подавления беспорядков. После использования помещается" +" на землю и активируется. Если успешно перепрограммировать, будет нести " +"ордам мир и порядок." #: lang/json/TOOL_from_json.py msgid "inactive skitterbot" @@ -105797,7 +104216,7 @@ msgid_plural "inactive skitterbots" msgstr[0] "неактивный робот-жук" msgstr[1] "неактивных робота-жука" msgstr[2] "неактивных роботов-жуков" -msgstr[3] "неактивный робот-жук" +msgstr[3] "неактивные роботы-жуки" #. ~ Use action friendly_msg for {'str': 'inactive skitterbot'}. #: lang/json/TOOL_from_json.py @@ -105823,15 +104242,15 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive lab defense bot" msgid_plural "inactive lab defense bots" -msgstr[0] "неактивный лабораторный оборонный робот" -msgstr[1] "неактивных лабораторных оборонных робота" -msgstr[2] "неактивных лабораторных оборонных роботов" -msgstr[3] "неактивные лабораторные оборонные роботы" +msgstr[0] "неактивный робот охраны лаборатории" +msgstr[1] "неактивных робота охраны лаборатории" +msgstr[2] "неактивных роботов охраны лаборатории" +msgstr[3] "неактивные роботы охраны лаборатории" #. ~ Use action friendly_msg for {'str': 'inactive lab defense bot'}. #: lang/json/TOOL_from_json.py msgid "The lab defense bot shudders briefly and skitters away." -msgstr "Лабораторный оборонный робот легонько вздрагивает и ускользает прочь." +msgstr "Робот охраны лаборатории легонько вздрагивает и ускользает прочь." #. ~ Use action hostile_msg for {'str': 'inactive lab defense bot'}. #: lang/json/TOOL_from_json.py @@ -105839,7 +104258,7 @@ msgid "" "The lab defense bot raises its front legs and shines a multitude of colored " "lights in your face!" msgstr "" -"Лабораторный оборонный робот поднимает передние ноги и светит вам в лицо " +"Робот охраны лаборатории поднимает передние ноги и светит вам в лицо " "разноцветными огнями!" #. ~ Description for {'str': 'inactive lab defense bot'} @@ -105956,6 +104375,31 @@ msgstr "" "сработавшего при деактивации переключателя. Может служить только как " "приманка." +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "выключенный громкоговоритель" +msgstr[1] "выключенных громкоговорителя" +msgstr[2] "выключенных громкоговорителей" +msgstr[3] "выключенные громкоговорители" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "Громкоговоритель включается и начинает непрерывно издавать звуки." + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing" +" it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "" +"Отключенный автоматический громкоговоритель.После использования помещается " +"на землю и активируется. Если успешно перепрограммировать, будет постоянно " +"воспроизводить заранее записанные сообщения." + #: lang/json/TOOL_from_json.py msgid "clothes hanger" msgid_plural "clothes hangers" @@ -105976,9 +104420,9 @@ msgstr "" msgid "talking doll" msgid_plural "talking dolls" msgstr[0] "говорящая кукла" -msgstr[1] "говорящих куклы" +msgstr[1] "говорящие куклы" msgstr[2] "говорящих кукол" -msgstr[3] "говорящая кукла" +msgstr[3] "говорящие куклы" #. ~ Description for {'str': 'talking doll'} #: lang/json/TOOL_from_json.py @@ -106012,9 +104456,9 @@ msgstr "" msgid "L-stick (off)" msgid_plural "L-sticks (off)" msgstr[0] "L-stick (выкл)" -msgstr[1] "L-stick (выкл)" -msgstr[2] "L-stick (выкл)" -msgstr[3] "L-stick (выкл)" +msgstr[1] "L-stick'а (выкл)" +msgstr[2] "L-stick'ов (выкл)" +msgstr[3] "L-stick'и (выкл)" #. ~ Use action msg for {'str': 'L-stick (off)', 'str_pl': 'L-sticks (off)'}. #: lang/json/TOOL_from_json.py @@ -106047,9 +104491,9 @@ msgstr "" msgid "L-stick (on)" msgid_plural "L-sticks (on)" msgstr[0] "L-stick (вкл)" -msgstr[1] "L-stick (вкл)" -msgstr[2] "L-stick (вкл)" -msgstr[3] "L-stick (вкл)" +msgstr[1] "L-stick'а (вкл)" +msgstr[2] "L-stick'ов (вкл)" +msgstr[3] "L-stick'и (вкл)" #. ~ Use action msg for {'str': 'L-stick (on)', 'str_pl': 'L-sticks (on)'}. #: lang/json/TOOL_from_json.py @@ -106079,7 +104523,7 @@ msgid_plural "powered quarterstaves" msgstr[0] "посох-шокер" msgstr[1] "посоха-шокера" msgstr[2] "посохов-шокеров" -msgstr[3] "посох-шокер" +msgstr[3] "посохи-шокеры" #. ~ Description for {'str': 'powered quarterstaff', 'str_pl': 'powered #. quarterstaves'} @@ -106099,9 +104543,9 @@ msgstr "" msgid "tactical tonfa (off)" msgid_plural "tactical tonfas (off)" msgstr[0] "тактическая тонфа (выкл)" -msgstr[1] "тактических тонфы (выкл)" +msgstr[1] "тактические тонфы (выкл)" msgstr[2] "тактических тонф (выкл)" -msgstr[3] "тактическая тонфа (выкл)" +msgstr[3] "тактические тонфы (выкл)" #. ~ Description for {'str': 'tactical tonfa (off)', 'str_pl': 'tactical #. tonfas (off)'} @@ -106117,16 +104561,16 @@ msgstr "" "Это тонфа из армированного пластика, с выдолбленным ядром, наполнено " "конденсаторами и аккумуляторами большой мощности. При нажатии переключателя " "на ручке, ток высокого напряжения передаётся на два электрода, установленных" -" в конце тонфы, а в более широком смысле, любому не повезёт быть в контакте " -"с ними. Она также имеет изящный фонарик, который сейчас выключен." +" в конце тонфы, а далее тому, кому не повезёт быть в контакте с ними. Она " +"также имеет изящный фонарик, который сейчас выключен." #: lang/json/TOOL_from_json.py msgid "tactical tonfa (on)" msgid_plural "tactical tonfas (on)" msgstr[0] "тактическая тонфа (вкл)" -msgstr[1] "тактических тонфы (вкл)" +msgstr[1] "тактические тонфы (вкл)" msgstr[2] "тактических тонф (вкл)" -msgstr[3] "тактическая тонфа (вкл)" +msgstr[3] "тактические тонфы (вкл)" #. ~ Description for {'str': 'tactical tonfa (on)', 'str_pl': 'tactical tonfas #. (on)'} @@ -106143,8 +104587,8 @@ msgstr "" "Это тонфа из армированного пластика, с выдолбленным ядром, наполненном " "конденсаторами и аккумуляторами большой мощности. При нажатии переключателя " "на ручке, ток высокого напряжения передаётся на два электрода, установленных" -" в конце тонфы, а в более широком смысле, любому не повезёт быть в контакте " -"с ними. Встроенный фонарик сейчас включён, потребляет энергию и освещает " +" в конце тонфы, а далее тому, кому не повезёт быть в контакте с ними. " +"Встроенный фонарик сейчас включён, потребляет энергию и освещает " "окрестности." #: lang/json/TOOL_from_json.py @@ -106158,10 +104602,10 @@ msgstr[3] "кухонные ножи" #: lang/json/TOOL_from_json.py msgid "butcher knife" msgid_plural "butcher knives" -msgstr[0] "нож мясника" -msgstr[1] "ножа мясника" -msgstr[2] "ножей мясника" -msgstr[3] "нож мясника" +msgstr[0] "разделочный нож" +msgstr[1] "разделочных ножа" +msgstr[2] "разделочных ножей" +msgstr[3] "разделочные ножи" #. ~ Description for {'str': 'butcher knife', 'str_pl': 'butcher knives'} #: lang/json/TOOL_from_json.py @@ -106178,7 +104622,7 @@ msgid_plural "steak knives" msgstr[0] "нож для стейка" msgstr[1] "ножа для стейка" msgstr[2] "ножей для стейка" -msgstr[3] "нож для стейка" +msgstr[3] "ножи для стейка" #. ~ Description for {'str': 'steak knife', 'str_pl': 'steak knives'} #: lang/json/TOOL_from_json.py @@ -106251,7 +104695,7 @@ msgid_plural "bread knives" msgstr[0] "хлебный нож" msgstr[1] "хлебных ножа" msgstr[2] "хлебных ножей" -msgstr[3] "хлебный нож" +msgstr[3] "хлебные ножи" #. ~ Description for {'str': 'bread knife', 'str_pl': 'bread knives'} #: lang/json/TOOL_from_json.py @@ -106327,7 +104771,7 @@ msgid_plural "lobotomizers" msgstr[0] "лоботомизатор" msgstr[1] "лоботомизатора" msgstr[2] "лоботомизаторов" -msgstr[3] "лоботомизатор" +msgstr[3] "лоботомизаторы" #. ~ Description for {'str': 'lobotomizer'} #: lang/json/TOOL_from_json.py @@ -106346,7 +104790,7 @@ msgid_plural "tazers" msgstr[0] "тазер" msgstr[1] "тазера" msgstr[2] "тазеров" -msgstr[3] "тазер" +msgstr[3] "тазеры" #. ~ Description for {'str': 'tazer'} #: lang/json/TOOL_from_json.py @@ -106365,7 +104809,7 @@ msgid_plural "makeshift war scythes" msgstr[0] "самодельная боевая коса" msgstr[1] "самодельные боевые косы" msgstr[2] "самодельных боевых кос" -msgstr[3] "самодельная боевая коса" +msgstr[3] "самодельные боевые косы" #. ~ Description for {'str': 'makeshift war scythe'} #: lang/json/TOOL_from_json.py @@ -106403,7 +104847,7 @@ msgid_plural "simple knife spears" msgstr[0] "простое копьё" msgstr[1] "простых копья" msgstr[2] "простые копья" -msgstr[3] "простых копий" +msgstr[3] "простые копья" #. ~ Description for {'str': 'simple knife spear'} #: lang/json/TOOL_from_json.py @@ -106432,9 +104876,9 @@ msgid "" "split point, a sharp blade has been bolted into place and reinforced with " "layers of sturdy wrapped bindings." msgstr "" -"Прочный деревянный шест, аккуратно расщеплённый и укреплённый. Острое лезвие" -" надёжно укреплено на раздвоенном кончике и усилено слоями крепко намотанной" -" верёвки." +"Прочный деревянный шест, аккуратно расщеплённый и укреплённый. Острой нож " +"надёжно укреплен на раздвоенном кончике и усилен слоями туго намотанной " +"верёвки." #: lang/json/TOOL_from_json.py msgid "homemade halfpike" @@ -106442,7 +104886,7 @@ msgid_plural "homemade halfpikes" msgstr[0] "самодельный эспонтон" msgstr[1] "самодельных эспонтона" msgstr[2] "самодельных эспонтонов" -msgstr[3] "самодельный эспонтон" +msgstr[3] "самодельные эспонтоны" #. ~ Description for {'str': 'homemade halfpike'} #: lang/json/TOOL_from_json.py @@ -106461,7 +104905,7 @@ msgid_plural "switchblades" msgstr[0] "выкидной нож" msgstr[1] "выкидных ножа" msgstr[2] "выкидных ножей" -msgstr[3] "выкидной нож" +msgstr[3] "выкидные ножи" #. ~ Description for {'str': 'switchblade'} #: lang/json/TOOL_from_json.py @@ -106476,7 +104920,7 @@ msgid_plural "folding knives" msgstr[0] "складной нож" msgstr[1] "складных ножа" msgstr[2] "складных ножей" -msgstr[3] "складной нож" +msgstr[3] "складные ножи" #. ~ Description for {'str': 'folding knife', 'str_pl': 'folding knives'} #: lang/json/TOOL_from_json.py @@ -106494,7 +104938,7 @@ msgid_plural "combat knives" msgstr[0] "боевой нож" msgstr[1] "боевых ножа" msgstr[2] "боевых ножей" -msgstr[3] "боевой нож" +msgstr[3] "боевые ножи" #. ~ Description for {'str': 'combat knife', 'str_pl': 'combat knives'} #: lang/json/TOOL_from_json.py @@ -106532,7 +104976,7 @@ msgid_plural "hunting knives" msgstr[0] "охотничий нож" msgstr[1] "охотничьих ножа" msgstr[2] "охотничьих ножей" -msgstr[3] "охотничий нож" +msgstr[3] "охотничьи ножи" #. ~ Description for {'str': 'hunting knife', 'str_pl': 'hunting knives'} #: lang/json/TOOL_from_json.py @@ -106549,7 +104993,7 @@ msgid_plural "survival knives" msgstr[0] "нож для выживания" msgstr[1] "ножа для выживания" msgstr[2] "ножей для выживания" -msgstr[3] "нож для выживания" +msgstr[3] "ножи для выживания" #. ~ Description for {'str': 'survival knife', 'str_pl': 'survival knives'} #: lang/json/TOOL_from_json.py @@ -106557,8 +105001,8 @@ msgid "" "This massive knife features a hollow handle with a compass built into the " "pommel and a row of fearsome looking saw teeth along the back of its blade." msgstr "" -"Этот массивный нож имеет полую рукоять с встроенным в её навершие компасом и" -" ряд грозно выглядящих зубьев по обратной стороне лезвия." +"Массивный нож с полую рукоятью, с встроенным в её навершие компасом и рядом " +"грозно выглядящих зубьев по обратной стороне лезвия." #: lang/json/TOOL_from_json.py msgid "RM42 fighting knife" @@ -106566,7 +105010,7 @@ msgid_plural "RM42 fighting knives" msgstr[0] "боевой нож RM42" msgstr[1] "боевых ножа RM42" msgstr[2] "боевых ножей RM42" -msgstr[3] "боевой нож RM42" +msgstr[3] "боевые ножи RM42" #. ~ Description for {'str': 'RM42 fighting knife', 'str_pl': 'RM42 fighting #. knives'} @@ -106578,11 +105022,11 @@ msgid "" "manufactured for the military, it was very popular in films and among " "collectors due to its fearsome appearance." msgstr "" -"Этот прочный матовый чёрный боевой кинжал от компании Ривтех обладает " -"длинным и тонким обоюдоострым клинком с колющим остриём и характерной " -"нескользящей рукоятью, позволяющей прикрепить его к подходящему оружию. " -"Первоначально изготовлен для военных, пользовался большой популярностью в " -"фильмах и среди коллекционеров из-за его грозного вида." +"Прочный матовый чёрный боевой кинжал от компании Ривтех обладает длинным и " +"тонким обоюдоострым клинком с колющим остриём и характерной нескользящей " +"рукоятью, позволяющей прикрепить его к подходящему оружию. Первоначально " +"изготовлен для военных, пользовался большой популярностью в фильмах и среди " +"коллекционеров из-за его грозного вида." #: lang/json/TOOL_from_json.py msgid "Swiss Army knife" @@ -106590,7 +105034,7 @@ msgid_plural "Swiss Army knives" msgstr[0] "швейцарский нож" msgstr[1] "швейцарских ножа" msgstr[2] "швейцарских ножей" -msgstr[3] "швейцарский нож" +msgstr[3] "швейцарские ножи" #. ~ Description for {'str': 'Swiss Army knife', 'str_pl': 'Swiss Army #. knives'} @@ -106608,7 +105052,7 @@ msgid_plural "trench knives" msgstr[0] "окопный нож" msgstr[1] "окопных ножа" msgstr[2] "окопных ножей" -msgstr[3] "окопный нож" +msgstr[3] "окопные ножи" #. ~ Description for {'str': 'trench knife', 'str_pl': 'trench knives'} #: lang/json/TOOL_from_json.py @@ -106617,9 +105061,9 @@ msgid "" "knuckles. The guard can also be used for striking or blocking, and the " "knife can also be used to butcher corpses." msgstr "" -"Это крепкий боевой нож с металлической гардой для защиты пальцев. Гарда " -"может также использоваться для нанесения и блокирования ударов. Подходит для" -" разделки трупов." +"Крепкий боевой нож с металлической гардой для защиты пальцев. Гарда может " +"также использоваться для нанесения и блокирования ударов. Подходит для " +"разделки трупов." #: lang/json/TOOL_from_json.py msgid "makeshift knife" @@ -106627,7 +105071,7 @@ msgid_plural "makeshift knives" msgstr[0] "самодельный нож" msgstr[1] "самодельных ножа" msgstr[2] "самодельных ножей" -msgstr[3] "самодельный нож" +msgstr[3] "самодельные ножи" #. ~ Description for {'str': 'makeshift knife', 'str_pl': 'makeshift knives'} #: lang/json/TOOL_from_json.py @@ -106649,10 +105093,10 @@ msgstr[3] "костяные заточки" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end" -" and sharpened into a cutting tool. Its jagged edge is wicked but fragile." +"A femur or other bone, about 20 cm long, which has been broken at one end " +"and sharpened into a cutting tool. Its jagged edge is wicked but fragile." msgstr "" -"Бедренная кость или другая кость длиной не менее 30 см, сломанная с одной " +"Бедренная кость или другая кость длиной около 20 см, сломанная с одной " "стороны и заточенная в режущий инструмент. Её зазубренное лезвие опасно в " "бою, но хрупко." @@ -106679,7 +105123,7 @@ msgid_plural "makeshift machetes" msgstr[0] "самодельное мачете" msgstr[1] "самодельных мачете" msgstr[2] "самодельных мачете" -msgstr[3] "самодельное мачете" +msgstr[3] "самодельные мачете" #. ~ Description for {'str': 'makeshift machete'} #: lang/json/TOOL_from_json.py @@ -106742,7 +105186,7 @@ msgid "" "causes it to make broad, painful wounds." msgstr "" "Этот кинжал с волнистым лезвием пришёл из Юго-Восточной Азии. Конструкция " -"клинка позволяет сделать широкие, болезненные раны." +"клинка позволяет наносить широкие, болезненные раны." #: lang/json/TOOL_from_json.py msgid "kukri" @@ -106848,7 +105292,7 @@ msgid_plural "xiphoses" msgstr[0] "ксифос" msgstr[1] "ксифоса" msgstr[2] "ксифосов" -msgstr[3] "ксифос" +msgstr[3] "ксифосы" #. ~ Description for {'str': 'xiphos', 'str_pl': 'xiphoses'} #: lang/json/TOOL_from_json.py @@ -106856,7 +105300,7 @@ msgid "" "A bronze sword of ancient Greek origin, wielded as a sidearm to the dory " "spear." msgstr "" -"Бронзовый меч родом из Древней Греции, используемый как побочное оружие к " +"Бронзовый меч родом из Древней Греции, используемый как запасное оружие к " "копью." #: lang/json/TOOL_from_json.py @@ -106865,7 +105309,7 @@ msgid_plural "khopeshes" msgstr[0] "хопеш" msgstr[1] "хопеша" msgstr[2] "хопешей" -msgstr[3] "хопеш" +msgstr[3] "хопеши" #. ~ Description for {'str': 'khopesh', 'str_pl': 'khopeshes'} #: lang/json/TOOL_from_json.py @@ -107096,8 +105540,8 @@ msgid "" "This is an early modern sword seeing use in the 16th, 17th, and 18th " "centuries. Called 'broad' to contrast with the slimmer rapiers." msgstr "" -"Меч времён Модерна, использовавшийся в 16, 17 и 18 веках. Назван «широким», " -"чтобы контрастировать со стройными рапирами." +"Меч, использовавшийся в 16, 17 и 18 веках. Назван «широким», чтобы " +"контрастировать со стройными рапирами." #. ~ Description for {'str': 'broadsword'} #: lang/json/TOOL_from_json.py @@ -107106,8 +105550,8 @@ msgid "" "centuries. This sword appears to be made very poorly, but it should still " "stand up to a few swings." msgstr "" -"Меч времён Модерна, использовавшийся в 16, 17 и 18 веках. Этот меч, похоже, " -"изготовлен очень скверно, но всё же сможет выдержать пару замахов." +"Меч, использовавшийся в 16, 17 и 18 веках. Этот меч, похоже, изготовлен " +"очень скверно, но всё же сможет выдержать пару замахов." #. ~ Description for {'str': 'cutlass', 'str_pl': 'cutlasses'} #: lang/json/TOOL_from_json.py @@ -107188,7 +105632,7 @@ msgid_plural "chainsaw lajatangs (off)" msgstr[0] "ладжетанг-бензопила (выкл)" msgstr[1] "ладжетанг-бензопилы (выкл)" msgstr[2] "ладжетанг-бензопил (выкл)" -msgstr[3] "ладжетанг-бензопила (выкл)" +msgstr[3] "ладжетанг-бензопилы (выкл)" #. ~ Description for {'str': 'chainsaw lajatang (off)', 'str_pl': 'chainsaw #. lajatangs (off)'} @@ -107208,7 +105652,7 @@ msgid_plural "chainsaw lajatangs (on)" msgstr[0] "ладжетанг-бензопила (вкл)" msgstr[1] "ладжетанг-бензопилы (вкл)" msgstr[2] "ладжетанг-бензопил (вкл)" -msgstr[3] "ладжетанг-бензопила (вкл)" +msgstr[3] "ладжетанг-бензопилы (вкл)" #. ~ Description for {'str': 'chainsaw lajatang (on)', 'str_pl': 'chainsaw #. lajatangs (on)'} @@ -107226,7 +105670,7 @@ msgid_plural "electric chainsaw lajatangs (off)" msgstr[0] "ладжетанг-электропила (выкл)" msgstr[1] "ладжетанг-электропилы (выкл)" msgstr[2] "ладжетанг-электропил (выкл)" -msgstr[3] "ладжетанг-электропила (выкл)" +msgstr[3] "ладжетанг-электропилы (выкл)" #. ~ Description for {'str': 'electric chainsaw lajatang (off)', 'str_pl': #. 'electric chainsaw lajatangs (off)'} @@ -107247,7 +105691,7 @@ msgid_plural "electric chainsaw lajatangs (on)" msgstr[0] "ладжетанг-электропила (вкл)" msgstr[1] "ладжетанг-электропилы (вкл)" msgstr[2] "ладжетанг-электропил (вкл)" -msgstr[3] "ладжетанг-электропила (вкл)" +msgstr[3] "ладжетанг-электропилы (вкл)" #. ~ Description for {'str': 'electric chainsaw lajatang (on)', 'str_pl': #. 'electric chainsaw lajatangs (on)'} @@ -107273,9 +105717,9 @@ msgstr "" msgid "combat chainsaw (off)" msgid_plural "combat chainsaws (off)" msgstr[0] "боевая бензопила (выкл)" -msgstr[1] "боевых бензопилы (выкл)" +msgstr[1] "боевые бензопилы (выкл)" msgstr[2] "боевых бензопил (выкл)" -msgstr[3] "боевая бензопила (выкл)" +msgstr[3] "боевые бензопилы (выкл)" #. ~ Description for {'str': 'combat chainsaw (off)', 'str_pl': 'combat #. chainsaws (off)'} @@ -107293,9 +105737,9 @@ msgstr "" msgid "combat chainsaw (on)" msgid_plural "combat chainsaws (on)" msgstr[0] "боевая бензопила (вкл)" -msgstr[1] "боевых бензопилы (вкл)" +msgstr[1] "боевые бензопилы (вкл)" msgstr[2] "боевых бензопил (вкл)" -msgstr[3] "боевая бензопила (вкл)" +msgstr[3] "боевые бензопилы (вкл)" #. ~ Description for {'str': 'combat chainsaw (on)', 'str_pl': 'combat #. chainsaws (on)'} @@ -107313,7 +105757,7 @@ msgid_plural "electric combat chainsaws (off)" msgstr[0] "боевая электропила (выкл)" msgstr[1] "боевые электропилы (выкл)" msgstr[2] "боевых электропил (выкл)" -msgstr[3] "боевая электропила (выкл)" +msgstr[3] "боевые электропилы (выкл)" #. ~ Description for {'str': 'electric combat chainsaw (off)', 'str_pl': #. 'electric combat chainsaws (off)'} @@ -107333,7 +105777,7 @@ msgid_plural "electric combat chainsaws (on)" msgstr[0] "боевая электропила (вкл)" msgstr[1] "боевые электропилы (вкл)" msgstr[2] "боевых электропил (вкл)" -msgstr[3] "боевая электропила (вкл)" +msgstr[3] "боевые электропилы (вкл)" #. ~ Description for {'str': 'electric combat chainsaw (on)', 'str_pl': #. 'electric combat chainsaws (on)'} @@ -107370,7 +105814,7 @@ msgid_plural "glass shards" msgstr[0] "осколок стекла" msgstr[1] "осколка стекла" msgstr[2] "осколков стекла" -msgstr[3] "осколок стекла" +msgstr[3] "осколки стекла" #. ~ Use action done_message for {'str': 'glass shard'}. #: lang/json/TOOL_from_json.py @@ -107396,7 +105840,7 @@ msgid_plural "plastic chunks" msgstr[0] "кусок пластика" msgstr[1] "куска пластика" msgstr[2] "кусков пластика" -msgstr[3] "кусок пластика" +msgstr[3] "куски пластика" #. ~ Description for {'str': 'plastic chunk'} #: lang/json/TOOL_from_json.py @@ -107445,6 +105889,40 @@ msgstr "" "лайкры. Подходит для создания гибкой, но прочной одежды. Стильный, но " "вредный для окружающей среды; по крайней мере, вы перерабатываете его." +#: lang/json/TOOL_from_json.py +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" +msgstr[0] "слоёное кевларовое полотно" +msgstr[1] "слоёных кевларовых полотна" +msgstr[2] "слоёных кевларовых полотен" +msgstr[3] "слоёные кевларовые полотна" + +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "" +"Небольшой 40-см отрез толстого кевларового полотна. Его можно использовать " +"для ремонта кевларовой брони." + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "твердая кевларовая пластина" +msgstr[1] "твердые кевларовые пластины" +msgstr[2] "твердых кевларовых пластин" +msgstr[3] "твердые кевларовые пластины" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "" +"Пластина из спрессованного кевлара. Она может быть использована для ремонта " +"изделий из кевлара." + #: lang/json/TOOL_from_json.py msgid "butchering kit" msgid_plural "butchering kits" @@ -107483,7 +105961,7 @@ msgid_plural "electric carvers (off)" msgstr[0] "электрорезка (выкл)" msgstr[1] "электрорезки (выкл)" msgstr[2] "электрорезок (выкл)" -msgstr[3] "электрорезка (выкл)" +msgstr[3] "электрорезки (выкл)" #. ~ Description for {'str': 'electric carver (off)', 'str_pl': 'electric #. carvers (off)'} @@ -107503,7 +105981,7 @@ msgid_plural "electric carvers (on)" msgstr[0] "электрорезка (вкл)" msgstr[1] "электрорезки (вкл)" msgstr[2] "электрорезок (вкл)" -msgstr[3] "электрорезка (вкл)" +msgstr[3] "электрорезки (вкл)" #. ~ Description for {'str': 'electric carver (on)', 'str_pl': 'electric #. carvers (on)'} @@ -107519,7 +105997,7 @@ msgid_plural "charcoal water purifiers" msgstr[0] "угольный водоочиститель" msgstr[1] "угольных водоочистителя" msgstr[2] "угольных водоочистителей" -msgstr[3] "угольный водоочиститель" +msgstr[3] "угольные водоочистители" #. ~ Description for {'str': 'charcoal water purifier'} #: lang/json/TOOL_from_json.py @@ -107531,17 +106009,17 @@ msgid "" msgstr "" "Очищает воду с помощью угольного фильтра, для этого нужно использовать " "данный предмет на нужную ёмкость с водой. После очистки определённого " -"количества воды угольный фильтр становится непригодным, его можно вынуть и " -"выбросить. Необходимая вещь, так как вода из сомнительных источников, вроде " -"рек, может оказаться загрязнённой." +"количества воды угольный фильтр становится непригодным, его можно разобрать " +"и использовать остатки для нового. Необходимая вещь, так как вода из " +"сомнительных источников, вроде рек, может оказаться загрязнённой." #: lang/json/TOOL_from_json.py msgid "charcoal smoker" msgid_plural "charcoal smokers" msgstr[0] "угольная коптильня" -msgstr[1] "угольных коптильни" +msgstr[1] "угольные коптильни" msgstr[2] "угольных коптилен" -msgstr[3] "угольная коптильня" +msgstr[3] "угольные коптильни" #. ~ Description for {'str': 'charcoal smoker'} #: lang/json/TOOL_from_json.py @@ -107558,7 +106036,7 @@ msgid_plural "charcoal cookers" msgstr[0] "угольная плита" msgstr[1] "угольные плиты" msgstr[2] "угольных плит" -msgstr[3] "угольная плита" +msgstr[3] "угольные плиты" #. ~ Description for {'str': 'charcoal cooker'} #: lang/json/TOOL_from_json.py @@ -107575,7 +106053,7 @@ msgid_plural "coffeemakers" msgstr[0] "кофеварка" msgstr[1] "кофеварки" msgstr[2] "кофеварок" -msgstr[3] "кофеварка" +msgstr[3] "кофеварки" #. ~ Description for {'str': 'coffeemaker'} #: lang/json/TOOL_from_json.py @@ -107594,7 +106072,7 @@ msgid_plural "food dehydrators" msgstr[0] "пищевой дегидратор" msgstr[1] "пищевых дегидратора" msgstr[2] "пищевых дегидраторов" -msgstr[3] "пищевой дегидратор" +msgstr[3] "пищевые дегидраторы" #. ~ Description for {'str': 'food dehydrator'} #: lang/json/TOOL_from_json.py @@ -107611,7 +106089,7 @@ msgid_plural "hexamine stoves" msgstr[0] "печь на сухом горючем" msgstr[1] "печи на сухом горючем" msgstr[2] "печей на сухом горючем" -msgstr[3] "печь на сухом горючем" +msgstr[3] "печи на сухом горючем" #. ~ Description for {'str': 'hexamine stove'} #: lang/json/TOOL_from_json.py @@ -107628,7 +106106,7 @@ msgid_plural "food processors" msgstr[0] "кухонный комбайн" msgstr[1] "кухонных комбайна" msgstr[2] "кухонных комбайнов" -msgstr[3] "кухонный комбайн" +msgstr[3] "кухонные комбайны" #. ~ Description for {'str': 'food processor'} #: lang/json/TOOL_from_json.py @@ -107645,7 +106123,7 @@ msgid_plural "gasoline cookers" msgstr[0] "бензиновая плита" msgstr[1] "бензиновые плиты" msgstr[2] "бензиновых плит" -msgstr[3] "бензиновая плита" +msgstr[3] "бензиновые плиты" #. ~ Description for {'str': 'gasoline cooker'} #: lang/json/TOOL_from_json.py @@ -107662,7 +106140,7 @@ msgid_plural "heat packs" msgstr[0] "грелка" msgstr[1] "грелки" msgstr[2] "грелок" -msgstr[3] "грелка" +msgstr[3] "грелки" #. ~ Description for {'str': 'heat pack'} #: lang/json/TOOL_from_json.py @@ -107677,9 +106155,9 @@ msgstr "" msgid "used heat pack" msgid_plural "used heat packs" msgstr[0] "использованная грелка" -msgstr[1] "использованных грелки" +msgstr[1] "использованные грелки" msgstr[2] "использованных грелок" -msgstr[3] "использованная грелка" +msgstr[3] "использованные грелки" #. ~ Description for {'str': 'used heat pack'} #: lang/json/TOOL_from_json.py @@ -107696,7 +106174,7 @@ msgid_plural "hobo stoves" msgstr[0] "печь бродяги" msgstr[1] "печи бродяги" msgstr[2] "печей бродяги" -msgstr[3] "печь бродяги" +msgstr[3] "печи бродяги" #: lang/json/TOOL_from_json.py msgid "hotplate" @@ -107704,7 +106182,7 @@ msgid_plural "hotplates" msgstr[0] "электроплитка" msgstr[1] "электроплитки" msgstr[2] "электроплиток" -msgstr[3] "электроплитка" +msgstr[3] "электроплитки" #. ~ Description for {'str': 'hotplate'} #: lang/json/TOOL_from_json.py @@ -107721,7 +106199,7 @@ msgid_plural "makeshift vacuum sealers" msgstr[0] "самодельный вакуумный упаковщик" msgstr[1] "самодельных вакуумных упаковщика" msgstr[2] "самодельных вакуумных упаковщиков" -msgstr[3] "самодельный вакуумный упаковщик" +msgstr[3] "самодельные вакуумные упаковщики" #. ~ Description for {'str': 'makeshift vacuum sealer'} #: lang/json/TOOL_from_json.py @@ -107738,7 +106216,7 @@ msgid_plural "mess kits" msgstr[0] "кухонный набор" msgstr[1] "кухонных набора" msgstr[2] "кухонных наборов" -msgstr[3] "кухонный набор" +msgstr[3] "кухонные наборы" #. ~ Description for {'str': 'mess kit'} #: lang/json/TOOL_from_json.py @@ -107757,7 +106235,7 @@ msgid_plural "military mess kits" msgstr[0] "армейский кухонный набор" msgstr[1] "армейских кухонных набора" msgstr[2] "армейских кухонных наборов" -msgstr[3] "армейский кухонный набор" +msgstr[3] "армейские кухонные наборы" #. ~ Description for {'str': 'military mess kit'} #: lang/json/TOOL_from_json.py @@ -107790,7 +106268,7 @@ msgid "" " Used for grinding grain, but time-consuming compared to more complex " "methods." msgstr "" -"Это простая комбинация из маленького жёрнова и камня, выточенного в форме " +"Это простая комбинация из маленького пестика и камня, выточенного в форме " "чаши. Используется для помола зерна, но времени на это будет уходить больше," " если сравнивать с более сложными методами." @@ -107800,7 +106278,7 @@ msgid_plural "multi cookers" msgstr[0] "мультиварка" msgstr[1] "мультиварки" msgstr[2] "мультиварок" -msgstr[3] "мультиварка" +msgstr[3] "мультиварки" #. ~ Description for {'str': 'multi cooker'} #: lang/json/TOOL_from_json.py @@ -107812,8 +106290,8 @@ msgid "" msgstr "" "Походная мультиварка профессионального уровня со слотом для батареи. " "Множество установок и функций обещают справиться с любым видом готовки, от " -"варки картошки до приготовления карри или разрыва попкорна. Нет ручного " -"управления, но вы уверены, что вы можете ей пользоваться." +"варки картошки до приготовления карри или разрыва попкорна. Инструкции нет, " +"но вы уверены, что вы можете ей пользоваться." #: lang/json/TOOL_from_json.py msgid "multi cooker - cooking" @@ -107838,7 +106316,7 @@ msgid_plural "lamp oil cookers" msgstr[0] "плита на ламповом масле" msgstr[1] "плиты на ламповом масле" msgstr[2] "плит на ламповом масле" -msgstr[3] "плита на ламповом масле" +msgstr[3] "плиты на ламповом масле" #. ~ Description for {'str': 'lamp oil cooker'} #: lang/json/TOOL_from_json.py @@ -107855,7 +106333,7 @@ msgid_plural "soda can stove kits" msgstr[0] "плита из алюминиевых банок" msgstr[1] "плиты из алюминиевых банок" msgstr[2] "плит из алюминиевых банок" -msgstr[3] "плита из алюминиевых банок" +msgstr[3] "плиты из алюминиевых банок" #. ~ Description for {'str': 'soda can stove kit'} #: lang/json/TOOL_from_json.py @@ -107872,9 +106350,9 @@ msgstr "" msgid "quern" msgid_plural "querns" msgstr[0] "ручная мельница" -msgstr[1] "ручных мельницы" +msgstr[1] "ручные мельницы" msgstr[2] "ручных мельниц" -msgstr[3] "ручная мельница" +msgstr[3] "ручные мельницы" #. ~ Description for {'str': 'quern'} #: lang/json/TOOL_from_json.py @@ -107887,7 +106365,7 @@ msgid_plural "stills" msgstr[0] "самогонный аппарат" msgstr[1] "самогонных аппарата" msgstr[2] "самогонных аппаратов" -msgstr[3] "самогонный аппарат" +msgstr[3] "самогонные аппараты" #. ~ Description for {'str': 'still'} #: lang/json/TOOL_from_json.py @@ -107904,7 +106382,7 @@ msgid_plural "survivor mess kits" msgstr[0] "кухонный набор выживальщика" msgstr[1] "кухонных набора выживальщика" msgstr[2] "кухонных наборов выживальщика" -msgstr[3] "кухонный набор выживальщика" +msgstr[3] "кухонные наборы выживальщика" #. ~ Description for {'str': 'survivor mess kit'} #: lang/json/TOOL_from_json.py @@ -107923,7 +106401,7 @@ msgid_plural "vacuum sealers" msgstr[0] "вакуумный упаковщик" msgstr[1] "вакуумных упаковщика" msgstr[2] "вакуумных упаковщиков" -msgstr[3] "вакуумный упаковщик" +msgstr[3] "вакуумные упаковщики" #. ~ Description for {'str': 'vacuum sealer'} #: lang/json/TOOL_from_json.py @@ -107941,7 +106419,7 @@ msgid_plural "water purifiers" msgstr[0] "водоочиститель" msgstr[1] "водоочистителя" msgstr[2] "водоочистителей" -msgstr[3] "водоочиститель" +msgstr[3] "водоочистители" #. ~ Description for {'str': 'water purifier'} #: lang/json/TOOL_from_json.py @@ -107962,7 +106440,7 @@ msgid_plural "braziers" msgstr[0] "жаровня" msgstr[1] "жаровни" msgstr[2] "жаровен" -msgstr[3] "жаровня" +msgstr[3] "жаровни" #. ~ Description for {'str': 'brazier'} #: lang/json/TOOL_from_json.py @@ -107977,18 +106455,16 @@ msgstr "" #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "fire barrel (200L)" msgid_plural "fire barrels (200L)" -msgstr[0] "Бочка для разведения огня (200Л)" -msgstr[1] "Бочки для разведения огня (200Л)" -msgstr[2] "Бочек для разведения огня (200Л)" -msgstr[3] "Бочка для разведения огня (200Л)" +msgstr[0] "бочка для разведения огня (200Л)" +msgstr[1] "бочки для разведения огня (200Л)" +msgstr[2] "бочек для разведения огня (200Л)" +msgstr[3] "бочки для разведения огня (200Л)" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels #. (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels #. (100L)'} -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +#: lang/json/TOOL_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -108001,10 +106477,10 @@ msgstr "" #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "fire barrel (100L)" msgid_plural "fire barrels (100L)" -msgstr[0] "Бочка для разведения огня (100Л)" -msgstr[1] "Бочки для разведения огня (100Л)" -msgstr[2] "Бочек для разведения огня (100Л)" -msgstr[3] "Бочка для разведения огня (100Л)" +msgstr[0] "бочка для разведения огня (100Л)" +msgstr[1] "бочки для разведения огня (100Л)" +msgstr[2] "юочек для разведения огня (100Л)" +msgstr[3] "бочки для разведения огня (100Л)" #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "camp chair" @@ -108012,7 +106488,7 @@ msgid_plural "camp chairs" msgstr[0] "складной стул" msgstr[1] "складных стула" msgstr[2] "складных стульев" -msgstr[3] "складной стул" +msgstr[3] "складные стулья" #. ~ Description for {'str': 'camp chair'} #: lang/json/TOOL_from_json.py @@ -108025,7 +106501,7 @@ msgid_plural "cots" msgstr[0] "раскладушка" msgstr[1] "раскладушки" msgstr[2] "раскладушек" -msgstr[3] "раскладушка" +msgstr[3] "раскладушки" #. ~ Use action done_message for {'str': 'cot'}. #: lang/json/TOOL_from_json.py @@ -108047,7 +106523,7 @@ msgid_plural "folding bicycles" msgstr[0] "складной велосипед" msgstr[1] "складных велосипеда" msgstr[2] "складных велосипедов" -msgstr[3] "складной велосипед" +msgstr[3] "складные велосипеды" #. ~ Use action unfold_msg for {'str': 'folding bicycle'}. #: lang/json/TOOL_from_json.py @@ -108065,7 +106541,7 @@ msgid_plural "metal butchering racks" msgstr[0] "металлическая стойка для разделки" msgstr[1] "металлические стойки для разделки" msgstr[2] "металлических стоек для разделки" -msgstr[3] "металлическая стойка для разделки" +msgstr[3] "металлические стойки для разделки" #. ~ Description for {'str': 'metal butchering rack'} #: lang/json/TOOL_from_json.py @@ -108080,9 +106556,9 @@ msgstr "" msgid "inflatable boat" msgid_plural "inflatable boats" msgstr[0] "надувная лодка" -msgstr[1] "надувных лодки" +msgstr[1] "надувные лодки" msgstr[2] "надувных лодок" -msgstr[3] "надувная лодка" +msgstr[3] "надувные лодки" #. ~ Use action unfold_msg for {'str': 'inflatable boat'}. #: lang/json/TOOL_from_json.py @@ -108122,7 +106598,7 @@ msgid_plural "tourist tables" msgstr[0] "туристический столик" msgstr[1] "туристических столика" msgstr[2] "туристических столиков" -msgstr[3] "туристический столик" +msgstr[3] "туристические столики" #. ~ Description for {'str': 'tourist table'} #: lang/json/TOOL_from_json.py @@ -108139,7 +106615,7 @@ msgid_plural "leather tarps" msgstr[0] "кожаная подстилка" msgstr[1] "кожаные подстилки" msgstr[2] "кожаных подстилок" -msgstr[3] "кожаная подстилка" +msgstr[3] "кожаные подстилки" #. ~ Description for {'str': 'leather tarp'} #: lang/json/TOOL_from_json.py @@ -108159,7 +106635,7 @@ msgid_plural "fiber mats" msgstr[0] "циновка" msgstr[1] "циновки" msgstr[2] "циновок" -msgstr[3] "циновка" +msgstr[3] "циновки" #. ~ Description for {'str': 'fiber mat'} #: lang/json/TOOL_from_json.py @@ -108195,9 +106671,9 @@ msgstr "" msgid "water mill" msgid_plural "water mills" msgstr[0] "водяная мельница" -msgstr[1] "водяных мельниц" +msgstr[1] "водяные мельницы" msgstr[2] "водяных мельниц" -msgstr[3] "водяная мельница" +msgstr[3] "водяные мельницы" #. ~ Description for {'str': 'water mill'} #: lang/json/TOOL_from_json.py @@ -108212,9 +106688,9 @@ msgstr "" msgid "wind mill" msgid_plural "wind mills" msgstr[0] "ветряная мельница" -msgstr[1] "ветряных мельниц" +msgstr[1] "ветряные мельницы" msgstr[2] "ветряных мельниц" -msgstr[3] "ветряная мельница" +msgstr[3] "ветряные мельницы" #. ~ Description for {'str': 'wind mill'} #: lang/json/TOOL_from_json.py @@ -108278,7 +106754,7 @@ msgid_plural "cellphones" msgstr[0] "сотовый телефон" msgstr[1] "сотовых телефона" msgstr[2] "сотовых телефонов" -msgstr[3] "сотовый телефон" +msgstr[3] "сотовые телефоны" #. ~ Use action msg for {'str': 'cellphone'}. #. ~ Use action msg for laptop computer. @@ -108300,11 +106776,11 @@ msgid "" "assuming it is sufficiently charged. It also has a clock app that includes " "an alarm." msgstr "" -"Это сотовый телефон, старший брат смартфона, он был популярен в определённых" -" кругах благодаря своим надёжности, прочности и способности работать от " -"обычных батарей. При наличии достаточного заряда батарей вы можете " -"активировать его, чтобы включить вспышку. Также в нём имеются часы с " -"будильником." +"Это сотовый телефон, старший брат смартфона, он популярен в определённых " +"кругах благодаря своим надёжности, прочности и способности работать от " +"обычных батарей. При наличии достаточного заряда батарей вы можете включить " +"его, чтобы использовать подсветку экрана для освещения. Также в нём имеются " +"часы с будильником." #: lang/json/TOOL_from_json.py msgid "cellphone - Flashlight" @@ -108312,7 +106788,7 @@ msgid_plural "cellphones - Flashlight" msgstr[0] "сотовый телефон с фонариком" msgstr[1] "сотовых телефона с фонариком" msgstr[2] "сотовых телефонов c фонариком" -msgstr[3] "сотовый телефон с фонариком" +msgstr[3] "сотовые телефоны с фонариком" #. ~ Use action msg for {'str': 'cellphone - Flashlight', 'str_pl': #. 'cellphones - Flashlight'}. @@ -108322,31 +106798,13 @@ msgstr[3] "сотовый телефон с фонариком" msgid "You stop lighting up the screen." msgstr "Вы выключаете экран." -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "управляющий ноутбук" -msgstr[1] "управляющих ноутбука" -msgstr[2] "управляющих ноутбуков" -msgstr[3] "управляющий ноутбук" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies" -" utilized by robots. Activate it to command robots from afar." -msgstr "" -"Модифицированный ноутбук, теперь способен транслировать на сверхвысоких " -"частотах, используемых роботами. Активируйте его, чтобы управлять роботами с" -" дистанции." - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" msgstr[0] "направленная антенна" -msgstr[1] "направленных антенны" +msgstr[1] "направленные антенны" msgstr[2] "направленных антенн" -msgstr[3] "направленная антенна" +msgstr[3] "направленные антенны" #. ~ Description for {'str': 'directional antenna'} #: lang/json/TOOL_from_json.py @@ -108371,7 +106829,7 @@ msgid "" "A pair of electronic handcuffs, used by police and riot bots to detain captives. Their continuous siren clearly identifies the wearer as an arrested criminal and alerts human police. Wait for their arrival, don't try to escape or to remove the cuffs - they will administer an electric shock.\n" "However, since the only police likely to respond are undead, you may have a long wait ahead, unless you get creative…" msgstr "" -"Пара электронных наручников, используемых полицией и омоновцами для задержания. Их непрерывная сирена четко идентифицирует владельца как арестованного преступника и предупреждает человеческую полицию. Дождитесь их прибытия, не пытайтесь сбежать или снять манжеты — они нанесут удар током.\n" +"Пара электронных наручников, используемых полицией и их роботами для задержания. Их непрерывная сирена четко идентифицирует владельца как арестованного преступника и предупреждает человеческую полицию. Дождитесь их прибытия, не пытайтесь сбежать или снять манжеты — они нанесут удар током.\n" "Однако, поскольку единственная полиция, которая может ответить — это нежить, вы можете дожидаться очень долго, если только не подойдёте к проблеме творчески…" #: lang/json/TOOL_from_json.py @@ -108380,7 +106838,7 @@ msgid_plural "e-ink tablet PCs" msgstr[0] "планшет на э-чернилах" msgstr[1] "планшета на э-чернилах" msgstr[2] "планшетов на э-чернилах" -msgstr[3] "планшет на э-чернилах" +msgstr[3] "планшеты на э-чернилах" #. ~ Description for {'str': 'e-ink tablet PC'} #: lang/json/TOOL_from_json.py @@ -108397,12 +106855,11 @@ msgstr "" msgid "electrohack" msgid_plural "electrohacks" msgstr[0] "электронная отмычка" -msgstr[1] "электронных отмычки" +msgstr[1] "электронные отмычки" msgstr[2] "электронных отмычек" -msgstr[3] "электронная отмычка" +msgstr[3] "электронные отмычки" #. ~ Description for {'str': 'electrohack'} -#. ~ Description for electrohack #: lang/json/TOOL_from_json.py msgid "" "This device has many ports attached, allowing it to connect to almost any " @@ -108422,7 +106879,7 @@ msgid_plural "geiger counters (off)" msgstr[0] "счётчик Гейгера (выкл)" msgstr[1] "счётчика Гейгера (выкл)" msgstr[2] "счётчиков Гейгера (выкл)" -msgstr[3] "счётчик Гейгера (выкл)" +msgstr[3] "счётчики Гейгера (выкл)" #. ~ Description for {'str': 'geiger counter (off)', 'str_pl': 'geiger #. counters (off)'} @@ -108442,7 +106899,7 @@ msgid_plural "geiger counters (on)" msgstr[0] "счётчик Гейгера (вкл)" msgstr[1] "счётчика Гейгера (вкл)" msgstr[2] "счётчиков Гейгера (вкл)" -msgstr[3] "счётчик Гейгера (вкл)" +msgstr[3] "счётчики Гейгера (вкл)" #. ~ Description for {'str': 'geiger counter (on)', 'str_pl': 'geiger counters #. (on)'} @@ -108498,7 +106955,7 @@ msgid_plural "mp3 players (off)" msgstr[0] "mp3-плеер (выкл)" msgstr[1] "mp3-плеера (выкл)" msgstr[2] "mp3-плееров (выкл)" -msgstr[3] "mp3-плеер (выкл)" +msgstr[3] "mp3-плееры (выкл)" #. ~ Description for {'str': 'mp3 player (off)', 'str_pl': 'mp3 players #. (off)'} @@ -108518,7 +106975,7 @@ msgid_plural "mp3 players (on)" msgstr[0] "mp3-плеер (вкл)" msgstr[1] "mp3-плеера (вкл)" msgstr[2] "mp3-плееров (вкл)" -msgstr[3] "mp3-плеер (вкл)" +msgstr[3] "mp3-плееры (вкл)" #. ~ Description for {'str': 'mp3 player (on)', 'str_pl': 'mp3 players (on)'} #: lang/json/TOOL_from_json.py @@ -108537,7 +106994,7 @@ msgid_plural "noise emitters (off)" msgstr[0] "звукогенератор (выкл)" msgstr[1] "звукогенератора (выкл)" msgstr[2] "звукогенераторов (выкл)" -msgstr[3] "звукогенератор (выкл)" +msgstr[3] "звукогенераторы (выкл)" #. ~ Description for {'str': 'noise emitter (off)', 'str_pl': 'noise emitters #. (off)'} @@ -108557,7 +107014,7 @@ msgid_plural "noise emitters (on)" msgstr[0] "звукогенератор (вкл)" msgstr[1] "звукогенератора (вкл)" msgstr[2] "звукогенераторов (вкл)" -msgstr[3] "звукогенератор (вкл)" +msgstr[3] "звукогенераторы (вкл)" #. ~ Description for {'str': 'noise emitter (on)', 'str_pl': 'noise emitters #. (on)'} @@ -108574,9 +107031,9 @@ msgstr "" msgid "handheld game system" msgid_plural "handheld game systems" msgstr[0] "портативная игровая приставка" -msgstr[1] "портативных игровых приставки" +msgstr[1] "портативные игровые приставки" msgstr[2] "портативных игровых приставок" -msgstr[3] "портативная игровая приставка" +msgstr[3] "портативные игровые приставки" #. ~ Description for {'str': 'handheld game system'} #: lang/json/TOOL_from_json.py @@ -108594,16 +107051,18 @@ msgid_plural "smartphones" msgstr[0] "смартфон" msgstr[1] "смартфона" msgstr[2] "смартфонов" -msgstr[3] "смартфон" +msgstr[3] "смартфоны" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "Вы активировали приложение «фонарик»." #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "Заряд смартфона слишком мал." @@ -108692,7 +107151,7 @@ msgid_plural "vibrators" msgstr[0] "вибратор" msgstr[1] "вибратора" msgstr[2] "вибраторов" -msgstr[3] "вибратор" +msgstr[3] "вибраторы" #. ~ Description for {'str': 'vibrator'} #: lang/json/TOOL_from_json.py @@ -108709,7 +107168,7 @@ msgid_plural "crowbars" msgstr[0] "ломик" msgstr[1] "ломика" msgstr[2] "ломиков" -msgstr[3] "ломик" +msgstr[3] "ломики" #. ~ Description for {'str': 'crowbar'} #: lang/json/TOOL_from_json.py @@ -108727,7 +107186,7 @@ msgid_plural "improvised lockpicks" msgstr[0] "самодельная отмычка" msgstr[1] "самодельные отмычки" msgstr[2] "самодельных отмычек" -msgstr[3] "самодельная отмычка" +msgstr[3] "самодельные отмычки" #. ~ Description for {'str': 'improvised lockpick'} #: lang/json/TOOL_from_json.py @@ -108746,7 +107205,7 @@ msgid_plural "ice axes" msgstr[0] "ледоруб" msgstr[1] "ледоруба" msgstr[2] "ледорубов" -msgstr[3] "ледоруб" +msgstr[3] "ледорубы" #. ~ Description for {'str': 'ice axe'} #: lang/json/TOOL_from_json.py @@ -108765,7 +107224,7 @@ msgid_plural "makeshift crowbars" msgstr[0] "самодельный ломик" msgstr[1] "самодельных ломика" msgstr[2] "самодельных ломиков" -msgstr[3] "самодельный ломик" +msgstr[3] "самодельные ломики" #. ~ Description for {'str': 'makeshift crowbar'} #: lang/json/TOOL_from_json.py @@ -108781,20 +107240,20 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "locksmith kit" msgid_plural "locksmith kits" -msgstr[0] "слесарные отмычки" -msgstr[1] "слесарных отмычек" -msgstr[2] "слесарных отмычек" -msgstr[3] "слесарные отмычки" +msgstr[0] "набор слесарных отмычек" +msgstr[1] "набора слесарных отмычек" +msgstr[2] "наборов слесарных отмычек" +msgstr[3] "наборы слесарных отмычек" #. ~ Description for {'str': 'locksmith kit'} #: lang/json/TOOL_from_json.py msgid "" "This is a locksmith's set of sturdy steel lock picks and torsion wrenches. " "It is essential for silently and quickly opening locks, provided you have " -"some mechanical skill." +"some lock picking and mechanical skills." msgstr "" "Слесарный набор отмычек из крепкой стали, для тихого и быстрого взлома " -"замков, если у вас есть кое-какие знания в механике." +"замков, если у вас есть умение взламывать замки и некоторое знание механики." #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -108802,7 +107261,7 @@ msgid_plural "bio lockpicks" msgstr[0] "био-отмычка" msgstr[1] "био-отмычки" msgstr[2] "био-отмычкек" -msgstr[3] "био-отмычка" +msgstr[3] "био-отмычки" #. ~ Description for {'str': 'bio lockpick'} #: lang/json/TOOL_from_json.py lang/json/gun_from_json.py @@ -108814,9 +107273,9 @@ msgstr "это псевдо предмет" msgid "acid bomb" msgid_plural "acid bombs" msgstr[0] "кислотная бомба" -msgstr[1] "кислотных бомбы" +msgstr[1] "кислотные бомбы" msgstr[2] "кислотных бомб" -msgstr[3] "кислотная бомба" +msgstr[3] "кислотные бомбы" #. ~ Description for {'str': 'acid bomb'} #: lang/json/TOOL_from_json.py @@ -108879,7 +107338,7 @@ msgid_plural "C-4 explosives" msgstr[0] "взрывчатка C4" msgstr[1] "взрывчатки C4" msgstr[2] "взрывчаток C4" -msgstr[3] "взрывчатка C4" +msgstr[3] "взрывчатки C4" #. ~ Description for {'str': 'C-4 explosive'} #: lang/json/TOOL_from_json.py @@ -108896,7 +107355,7 @@ msgid_plural "C-4 explosives (armed)" msgstr[0] "взрывчатка C4 (взведена)" msgstr[1] "взрывчатки C4 (взведены)" msgstr[2] "взрывчаток C4 (взведены)" -msgstr[3] "взрывчатка C4 (взведена)" +msgstr[3] "взрывчатки C4 (взведены)" #. ~ Use action no_deactivate_msg for {'str': 'C-4 explosive (armed)', #. 'str_pl': 'C-4 explosives (armed)'}. @@ -108921,9 +107380,9 @@ msgstr "" msgid "dynamite" msgid_plural "dynamites" msgstr[0] "динамит" -msgstr[1] "динамита" -msgstr[2] "динамитов" -msgstr[3] "динамит" +msgstr[1] "связки динамита" +msgstr[2] "связок динамита" +msgstr[3] "связки динамита" #. ~ Use action msg for {'str': 'dynamite'}. #. ~ Use action msg for {'str': 'dynamite bomb'}. @@ -108947,9 +107406,9 @@ msgstr "" msgid "dynamite (lit)" msgid_plural "dynamites (lit)" msgstr[0] "динамит (горит)" -msgstr[1] "динамита (горят)" -msgstr[2] "динамитов (горят)" -msgstr[3] "динамит (горит)" +msgstr[1] "связки динамита (горят)" +msgstr[2] "связок динамита (горят)" +msgstr[3] "связки динамита (горят)" #. ~ Description for {'str': 'dynamite (lit)', 'str_pl': 'dynamites (lit)'} #: lang/json/TOOL_from_json.py @@ -109053,7 +107512,7 @@ msgid "" msgstr "" "Активированная ЭМИ бомба скоро взорвётся, создав огромное поле " "электромагнитного излучения, которое выведет из строя роботехнику и " -"бионические импланты, а также огромный взрыв. Лучше от неё избавиться как " +"бионические импланты, а также неслабый взрыв. Лучше от неё избавиться как " "можно скорее!" #: lang/json/TOOL_from_json.py @@ -109126,7 +107585,7 @@ msgid_plural "firecrackers" msgstr[0] "петарда" msgstr[1] "петарды" msgstr[2] "петард" -msgstr[3] "петарда" +msgstr[3] "петарды" #. ~ Description for {'str': 'firecracker'} #: lang/json/TOOL_from_json.py @@ -109145,7 +107604,7 @@ msgid_plural "firecrackers (lit)" msgstr[0] "петарда (горит)" msgstr[1] "петарды (горит)" msgstr[2] "петард (горит)" -msgstr[3] "петарда (горит)" +msgstr[3] "петарды (горит)" #. ~ Description for {'str': 'firecracker (lit)', 'str_pl': 'firecrackers #. (lit)'} @@ -109162,7 +107621,7 @@ msgid_plural "packs of firecrackers" msgstr[0] "упаковка петард" msgstr[1] "упаковки петард" msgstr[2] "упаковок петард" -msgstr[3] "упаковка петард" +msgstr[3] "упаковки петард" #. ~ Description for {'str': 'pack of firecrackers', 'str_pl': 'packs of #. firecrackers'} @@ -109183,7 +107642,7 @@ msgid_plural "packs of firecrackers (lit)" msgstr[0] "упаковка петард (горит)" msgstr[1] "упаковки петард (горят)" msgstr[2] "упаковок петард (горят)" -msgstr[3] "упаковка петард (горит)" +msgstr[3] "упаковки петард (горят)" #. ~ Description for {'str': 'pack of firecrackers (lit)', 'str_pl': 'packs of #. firecrackers (lit)'} @@ -109199,9 +107658,9 @@ msgstr "" msgid "flashbang" msgid_plural "flashbangs" msgstr[0] "светошумовая граната" -msgstr[1] "светошумовых гранаты" +msgstr[1] "светошумовые гранаты" msgstr[2] "светошумовых гранат" -msgstr[3] "светошумовая граната" +msgstr[3] "светошумовые гранаты" #. ~ Use action msg for {'str': 'flashbang'}. #: lang/json/TOOL_from_json.py @@ -109223,9 +107682,9 @@ msgstr "" msgid "active flashbang" msgid_plural "active flashbangs" msgstr[0] "светошумовая граната (активно)" -msgstr[1] "светошумовых гранаты (активно)" +msgstr[1] "светошумовые гранаты (активно)" msgstr[2] "светошумовых гранат (активно)" -msgstr[3] "светошумовая граната (активно)" +msgstr[3] "светошумовые гранаты (активно)" #. ~ Use action no_deactivate_msg for {'str': 'active flashbang'}. #. ~ Use action no_deactivate_msg for {'str': 'active EMP grenade'}. @@ -109252,7 +107711,7 @@ msgid_plural "makeshift gas canisters" msgstr[0] "самодельная газовая граната" msgstr[1] "самодельные газовые гранаты" msgstr[2] "самодельных газовых гранат" -msgstr[3] "самодельная газовая граната" +msgstr[3] "самодельные газовые гранаты" #. ~ Use action menu_text for {'str': 'makeshift gas canister'}. #: lang/json/TOOL_from_json.py @@ -109284,7 +107743,7 @@ msgid_plural "active makeshift gas grenades" msgstr[0] "самодельная газовая граната (активно)" msgstr[1] "самодельные газовые гранаты (активны)" msgstr[2] "самодельных газовых гранат (активны)" -msgstr[3] "самодельная газовая граната (активно)" +msgstr[3] "самодельные газовые гранаты (активны)" #. ~ Use action no_deactivate_msg for {'str': 'active makeshift gas grenade'}. #: lang/json/TOOL_from_json.py @@ -109296,7 +107755,7 @@ msgstr "Вы уже и так взвели %s, попробуйте теперь #. ~ Use action sound_msg for active nail bomb. #: lang/json/TOOL_from_json.py msgid "Hiss." -msgstr "«Сссс»." +msgstr "Шшшшш." #. ~ Description for {'str': 'active makeshift gas grenade'} #: lang/json/TOOL_from_json.py @@ -109315,7 +107774,7 @@ msgid_plural "grenades" msgstr[0] "граната" msgstr[1] "гранаты" msgstr[2] "гранат" -msgstr[3] "граната" +msgstr[3] "гранаты" #. ~ Use action msg for {'str': 'grenade'}. #. ~ Use action msg for {'str': 'incendiary grenade'}. @@ -109340,7 +107799,7 @@ msgid_plural "active grenades" msgstr[0] "граната (активно)" msgstr[1] "гранаты (активно)" msgstr[2] "гранат (активно)" -msgstr[3] "граната (активно)" +msgstr[3] "гранаты (активно)" #: lang/json/TOOL_from_json.py msgid "EMP grenade" @@ -109348,7 +107807,7 @@ msgid_plural "EMP grenades" msgstr[0] "ЭМИ граната" msgstr[1] "ЭМИ гранаты" msgstr[2] "ЭМИ гранат" -msgstr[3] "ЭМИ граната" +msgstr[3] "ЭМИ гранаты" #. ~ Use action msg for {'str': 'EMP grenade'}. #: lang/json/TOOL_from_json.py @@ -109376,10 +107835,9 @@ msgid_plural "active EMP grenades" msgstr[0] "ЭМИ граната (активно)" msgstr[1] "ЭМИ гранаты (активно)" msgstr[2] "ЭМИ гранат (активно)" -msgstr[3] "ЭМИ граната (активно)" +msgstr[3] "ЭМИ гранаты (активно)" #. ~ Description for {'str': 'active EMP grenade'} -#. ~ Description for active EMP grenade #: lang/json/TOOL_from_json.py msgid "" "This EMP grenade is active, and will shortly detonate, creating a large EMP " @@ -109394,9 +107852,9 @@ msgstr "" msgid "incendiary grenade" msgid_plural "incendiary grenades" msgstr[0] "зажигательная граната" -msgstr[1] "зажигательных гранаты" +msgstr[1] "зажигательные гранаты" msgstr[2] "зажигательных гранаты" -msgstr[3] "зажигательная граната" +msgstr[3] "зажигательные гранаты" #. ~ Description for {'str': 'incendiary grenade'} #: lang/json/TOOL_from_json.py @@ -109413,9 +107871,9 @@ msgstr "" msgid "active incendiary grenade" msgid_plural "active incendiary grenades" msgstr[0] "зажигательная граната (активно)" -msgstr[1] "зажигательных гранаты (активно)" +msgstr[1] "зажигательные гранаты (активно)" msgstr[2] "зажигательных гранаты (активно)" -msgstr[3] "зажигательная граната (активно)" +msgstr[3] "зажигательные гранаты (активно)" #. ~ Description for {'str': 'active incendiary grenade'} #: lang/json/TOOL_from_json.py @@ -109432,7 +107890,7 @@ msgid_plural "packed M72 LAWs" msgstr[0] "сложенный M72 LAW" msgstr[1] "сложенных M72 LAW" msgstr[2] "сложенных M72 LAW" -msgstr[3] "сложенный M72 LAW" +msgstr[3] "сложенные M72 LAW" #. ~ Use action menu_text for {'str': 'packed M72 LAW'}. #. ~ Use action menu_text for {'str': 'glowstick'}. @@ -109587,9 +108045,9 @@ msgstr "шшш" msgid "mininuke" msgid_plural "mininukes" msgstr[0] "ядерная мини-бомба" -msgstr[1] "ядерных мини-бомбы" +msgstr[1] "ядерные мини-бомбы" msgstr[2] "ядерных мини-бомб" -msgstr[3] "ядерная мини-бомба" +msgstr[3] "ядерные мини-бомбы" #. ~ Description for {'str': 'mininuke'} #: lang/json/TOOL_from_json.py @@ -109616,7 +108074,7 @@ msgid_plural "Molotov cocktails" msgstr[0] "коктейль Молотова" msgstr[1] "коктейля Молотова" msgstr[2] "коктейлей Молотова" -msgstr[3] "коктейль Молотова" +msgstr[3] "коктейли Молотова" #. ~ Use action menu_text for {'str': 'Molotov cocktail'}. #: lang/json/TOOL_from_json.py @@ -109756,7 +108214,7 @@ msgid_plural "scrambler grenades" msgstr[0] "граната-шифратор" msgstr[1] "гранаты-шифратора" msgstr[2] "гранат-шифраторов" -msgstr[3] "граната-шифратор" +msgstr[3] "гранаты-шифраторы" #. ~ Use action msg for {'str': 'scrambler grenade'}. #: lang/json/TOOL_from_json.py @@ -109782,7 +108240,7 @@ msgid_plural "active scrambler grenades" msgstr[0] "граната-шифратор (активно)" msgstr[1] "гранаты-шифратора (активно)" msgstr[2] "гранат-шифраторов (активно)" -msgstr[3] "граната-шифратор (активно)" +msgstr[3] "гранаты-шифраторы (активно)" #. ~ Description for {'str': 'active scrambler grenade'} #: lang/json/TOOL_from_json.py @@ -110062,7 +108520,7 @@ msgstr[3] "горящие ракеты-конфеты" #. 'str_pl': 'burning rocket candies'}. #: lang/json/TOOL_from_json.py msgid "You've already lit the fuse - get rid of it immediately!" -msgstr "Вы уже подожгли фитиль – избавьтесь немедленно!" +msgstr "Вы уже подожгли фитиль – избавьтесь от неё немедленно!" #. ~ Use action sound_msg for {'str': 'burning rocket candy', 'str_pl': #. 'burning rocket candies'}. @@ -110086,7 +108544,7 @@ msgid_plural "electric firestarters" msgstr[0] "электрический поджигатель" msgstr[1] "электрических поджигателя" msgstr[2] "электрических поджигателей" -msgstr[3] "электрический поджигатель" +msgstr[3] "электрические поджигатели" #. ~ Description for {'str': 'electric firestarter'} #: lang/json/TOOL_from_json.py @@ -110094,8 +108552,8 @@ msgid "" "This is a crudely made electric firestarter, which can function as an " "inefficient lighter." msgstr "" -"Это грубо изготовленный электрический поджигатель, который можно " -"использовать в роли неэффективной зажигалки." +"Грубо изготовленный электрический поджигатель, который можно использовать в " +"роли неэффективной зажигалки." #: lang/json/TOOL_from_json.py msgid "fire drill" @@ -110103,7 +108561,7 @@ msgid_plural "fire drills" msgstr[0] "лучковая дрель" msgstr[1] "лучковые дрели" msgstr[2] "лучковых дрелей" -msgstr[3] "лучковая дрель" +msgstr[3] "лучковые дрели" #. ~ Description for {'str': 'fire drill'} #: lang/json/TOOL_from_json.py @@ -110123,7 +108581,7 @@ msgid_plural "camp fire drills" msgstr[0] "бивачная лучковая дрель" msgstr[1] "бивачные лучковые дрели" msgstr[2] "бивачных лучковых дрелей" -msgstr[3] "бивачная лучковая дрель" +msgstr[3] "бивачные лучковые дрели" #. ~ Description for {'str': 'camp fire drill'} #: lang/json/TOOL_from_json.py @@ -110143,7 +108601,7 @@ msgid_plural "sets of flint and steel" msgstr[0] "огниво" msgstr[1] "огнива" msgstr[2] "огнив" -msgstr[3] "огниво" +msgstr[3] "огнива" #. ~ Description for {'str': 'flint and steel', 'str_pl': 'sets of flint and #. steel'} @@ -110161,7 +108619,7 @@ msgid_plural "lighters" msgstr[0] "зажигалка" msgstr[1] "зажигалки" msgstr[2] "зажигалок" -msgstr[3] "зажигалка" +msgstr[3] "зажигалки" #. ~ Description for {'str': 'lighter'} #: lang/json/TOOL_from_json.py @@ -110180,7 +108638,7 @@ msgid_plural "magnifying glasses" msgstr[0] "увеличительное стекло" msgstr[1] "увеличительных стекла" msgstr[2] "увеличительных стёкол" -msgstr[3] "увеличительное стекло" +msgstr[3] "увеличительные стекла" #. ~ Description for {'str': 'magnifying glass', 'str_pl': 'magnifying #. glasses'} @@ -110198,7 +108656,7 @@ msgid_plural "matchbooks" msgstr[0] "коробок спичек" msgstr[1] "коробка спичек" msgstr[2] "коробков спичек" -msgstr[3] "коробок спичек" +msgstr[3] "коробки спичек" #. ~ Description for {'str': 'matchbook'} #: lang/json/TOOL_from_json.py @@ -110216,9 +108674,9 @@ msgstr "" msgid "refillable lighter" msgid_plural "refillable lighters" msgstr[0] "заправляемая зажигалка" -msgstr[1] "заправляемых зажигалки" +msgstr[1] "заправляемые зажигалки" msgstr[2] "заправляемых зажигалок" -msgstr[3] "заправляемая зажигалка" +msgstr[3] "заправляемые зажигалки" #. ~ Use action menu_text for {'str': 'refillable lighter'}. #: lang/json/TOOL_from_json.py lang/json/item_action_from_json.py @@ -110267,7 +108725,7 @@ msgid_plural "ember carriers" msgstr[0] "контейнер для углей" msgstr[1] "контейнера для углей" msgstr[2] "контейнеров для углей" -msgstr[3] "контейнер для углей" +msgstr[3] "контейнеры для углей" #. ~ Use action msg for {'str': 'ember carrier'}. #: lang/json/TOOL_from_json.py @@ -110341,7 +108799,7 @@ msgid_plural "large fire extinguishers" msgstr[0] "большой огнетушитель" msgstr[1] "больших огнетушителя" msgstr[2] "больших огнетушителей" -msgstr[3] "большой огнетушитель" +msgstr[3] "большие огнетушители" #. ~ Description for {'str': 'large fire extinguisher'} #: lang/json/TOOL_from_json.py @@ -110358,7 +108816,7 @@ msgid_plural "fire axes" msgstr[0] "пожарный топор" msgstr[1] "пожарных топора" msgstr[2] "пожарных топоров" -msgstr[3] "пожарный топор" +msgstr[3] "пожарные топоры" #. ~ Description for {'str': 'fire axe'} #. ~ Description for TEST fire axe @@ -110377,7 +108835,7 @@ msgid_plural "Halligan bars" msgstr[0] "пожарный багор" msgstr[1] "пожарных багра" msgstr[2] "пожарных багров" -msgstr[3] "пожарный багор" +msgstr[3] "пожарные багры" #. ~ Description for {'str': 'Halligan bar'} #. ~ Description for TEST Halligan bar @@ -110400,7 +108858,7 @@ msgid_plural "small fire extinguishers" msgstr[0] "маленький огнетушитель" msgstr[1] "маленьких огнетушителя" msgstr[2] "маленьких огнетушителей" -msgstr[3] "маленький огнетушитель" +msgstr[3] "маленькие огнетушители" #. ~ Description for {'str': 'small fire extinguisher'} #: lang/json/TOOL_from_json.py @@ -110417,7 +108875,7 @@ msgid_plural "throwable fire extinguishers" msgstr[0] "метательный огнетушитель" msgstr[1] "метательных огнетушителя" msgstr[2] "метательных огнетушителей" -msgstr[3] "метательный огнетушитель" +msgstr[3] "метательные огнетушители" #. ~ Description for {'str': 'throwable fire extinguisher'} #: lang/json/TOOL_from_json.py @@ -110453,7 +108911,7 @@ msgid_plural "plastic fish traps" msgstr[0] "пластиковый садок" msgstr[1] "пластиковых садка" msgstr[2] "пластиковых садков" -msgstr[3] "пластиковый садок" +msgstr[3] "пластиковые садки" #. ~ Description for {'str': 'plastic fish trap'} #: lang/json/TOOL_from_json.py @@ -110466,16 +108924,16 @@ msgstr "" "Это самодельная ловушка для рыб, сделанная из пластиковых бутылок. Это " "простая, примитивная, но лёгкая в использовании ловушка. Принцип действия: " "рыба заплывает внутрь ловушки за приманкой, но не может выбраться из неё. Не" -" гуманно, запрещено законом, но больше не осталось полицейских, кому было бы" -" до этого дело." +" гуманно, запрещено законом, но больше не осталось полицейских, которым было" +" бы до этого дело." #: lang/json/TOOL_from_json.py msgid "basic fishing rod" msgid_plural "basic fishing rods" msgstr[0] "простая удочка" -msgstr[1] "простых удочки" +msgstr[1] "простые удочки" msgstr[2] "простых удочек" -msgstr[3] "простая удочка" +msgstr[3] "простые удочки" #. ~ Description for {'str': 'basic fishing rod'} #: lang/json/TOOL_from_json.py @@ -110489,9 +108947,9 @@ msgstr "" msgid "pro fishing rod" msgid_plural "pro fishing rods" msgstr[0] "профессиональная удочка" -msgstr[1] "профессиональной удочки" +msgstr[1] "профессиональные удочки" msgstr[2] "профессиональных удочек" -msgstr[3] "профессиональная удочка" +msgstr[3] "профессиональные удочки" #. ~ Description for {'str': 'pro fishing rod'} #: lang/json/TOOL_from_json.py @@ -110553,7 +109011,7 @@ msgid_plural "kinetic bullet pullers" msgstr[0] "кинетический молоток" msgstr[1] "кинетических молотка" msgstr[2] "кинетических молотков" -msgstr[3] "кинетический молоток" +msgstr[3] "кинетические молотки" #. ~ Description for {'str': 'kinetic bullet puller'} #: lang/json/TOOL_from_json.py @@ -110566,7 +109024,7 @@ msgid_plural "copper knives" msgstr[0] "медный нож" msgstr[1] "медных ножа" msgstr[2] "медных ножей" -msgstr[3] "медный нож" +msgstr[3] "медные ножи" #. ~ Description for {'str': 'copper knife', 'str_pl': 'copper knives'} #: lang/json/TOOL_from_json.py @@ -110583,7 +109041,7 @@ msgid_plural "dive knives" msgstr[0] "нож ныряльщика" msgstr[1] "ножа ныряльщика" msgstr[2] "ножей ныряльщика" -msgstr[3] "нож ныряльщика" +msgstr[3] "ножи ныряльщика" #. ~ Description for {'str': 'dive knife', 'str_pl': 'dive knives'} #: lang/json/TOOL_from_json.py @@ -110602,7 +109060,7 @@ msgid_plural "honey scrapers" msgstr[0] "скребок для мёда" msgstr[1] "скребка для мёда" msgstr[2] "скребков для мёда" -msgstr[3] "скребок для мёда" +msgstr[3] "скребки для мёда" #. ~ Description for {'str': 'honey scraper'} #: lang/json/TOOL_from_json.py @@ -110619,7 +109077,7 @@ msgid_plural "pocket knives" msgstr[0] "карманный нож" msgstr[1] "карманных ножа" msgstr[2] "карманных ножей" -msgstr[3] "карманный нож" +msgstr[3] "карманные ножи" #. ~ Description for {'str': 'pocket knife', 'str_pl': 'pocket knives'} #: lang/json/TOOL_from_json.py @@ -110636,7 +109094,7 @@ msgid_plural "stone knives" msgstr[0] "каменный нож" msgstr[1] "каменных ножа" msgstr[2] "каменных ножей" -msgstr[3] "каменный нож" +msgstr[3] "каменные ножи" #. ~ Description for {'str': 'stone knife', 'str_pl': 'stone knives'} #: lang/json/TOOL_from_json.py @@ -110654,7 +109112,7 @@ msgid_plural "trowels" msgstr[0] "лопатка" msgstr[1] "лопатки" msgstr[2] "лопаток" -msgstr[3] "лопатка" +msgstr[3] "лопатки" #. ~ Description for {'str': 'trowel'} #: lang/json/TOOL_from_json.py @@ -110669,7 +109127,7 @@ msgid_plural "hoes" msgstr[0] "тяпка" msgstr[1] "тяпки" msgstr[2] "тяпок" -msgstr[3] "тяпка" +msgstr[3] "тяпки" #. ~ Description for {'str': 'hoe'} #: lang/json/TOOL_from_json.py @@ -110684,9 +109142,9 @@ msgstr "" msgid "stone shovel" msgid_plural "stone shovels" msgstr[0] "каменная лопата" -msgstr[1] "каменных лопаты" +msgstr[1] "каменные лопаты" msgstr[2] "каменных лопат" -msgstr[3] "каменная лопата" +msgstr[3] "каменные лопаты" #. ~ Description for {'str': 'stone shovel'} #: lang/json/TOOL_from_json.py @@ -110703,7 +109161,7 @@ msgid_plural "scythes" msgstr[0] "коса" msgstr[1] "косы" msgstr[2] "кос" -msgstr[3] "коса" +msgstr[3] "косы" #. ~ Description for {'str': 'scythe'} #: lang/json/TOOL_from_json.py @@ -110722,7 +109180,7 @@ msgid_plural "shovels" msgstr[0] "лопата" msgstr[1] "лопаты" msgstr[2] "лопат" -msgstr[3] "лопата" +msgstr[3] "лопаты" #. ~ Description for {'str': 'shovel'} #: lang/json/TOOL_from_json.py @@ -110737,7 +109195,7 @@ msgid_plural "sickles" msgstr[0] "серп" msgstr[1] "серпа" msgstr[2] "серпов" -msgstr[3] "серп" +msgstr[3] "серпы" #. ~ Description for {'str': 'sickle'} #: lang/json/TOOL_from_json.py @@ -110796,7 +109254,7 @@ msgid_plural "candles" msgstr[0] "свеча" msgstr[1] "свечи" msgstr[2] "свечей" -msgstr[3] "свеча" +msgstr[3] "свечи" #. ~ Use action msg for {'str': 'candle'}. #: lang/json/TOOL_from_json.py @@ -110832,7 +109290,7 @@ msgid_plural "electric lanterns (off)" msgstr[0] "электрический фонарь (выкл)" msgstr[1] "электрических фонаря (выкл)" msgstr[2] "электрических фонарей (выкл)" -msgstr[3] "электрический фонарь (выкл)" +msgstr[3] "электрические фонари (выкл)" #. ~ Use action msg for {'str': 'electric lantern (off)', 'str_pl': 'electric #. lanterns (off)'}. @@ -110866,7 +109324,7 @@ msgid_plural "electric lanterns (on)" msgstr[0] "электрический фонарь (вкл)" msgstr[1] "электрических фонаря (вкл)" msgstr[2] "электрических фонарей (вкл)" -msgstr[3] "электрический фонарь (вкл)" +msgstr[3] "электрические фонари (вкл)" #. ~ Use action msg for {'str': 'electric lantern (on)', 'str_pl': 'electric #. lanterns (on)'}. @@ -110880,7 +109338,7 @@ msgid_plural "flashlights (off)" msgstr[0] "фонарик (выкл)" msgstr[1] "фонарика (выкл)" msgstr[2] "фонариков (выкл)" -msgstr[3] "фонарик (выкл)" +msgstr[3] "фонарики (выкл)" #. ~ Use action msg for {'str': 'flashlight (off)', 'str_pl': 'flashlights #. (off)'}. @@ -110911,7 +109369,7 @@ msgid_plural "flashlights (on)" msgstr[0] "фонарик (вкл)" msgstr[1] "фонарика (вкл)" msgstr[2] "фонариков (вкл)" -msgstr[3] "фонарик (вкл)" +msgstr[3] "фонарики (вкл)" #. ~ Use action msg for {'str': 'flashlight (on)', 'str_pl': 'flashlights #. (on)'}. @@ -110925,7 +109383,7 @@ msgid_plural "gasoline lanterns (off)" msgstr[0] "бензиновый фонарь (выкл)" msgstr[1] "бензиновых фонаря (выкл)" msgstr[2] "бензиновых фонарей (выкл)" -msgstr[3] "бензиновый фонарь (выкл)" +msgstr[3] "бензиновые фонари (выкл)" #. ~ Use action need_charges_msg for {'str': 'gasoline lantern (off)', #. 'str_pl': 'gasoline lanterns (off)'}. @@ -110951,7 +109409,7 @@ msgid_plural "gasoline lanterns (on)" msgstr[0] "бензиновый фонарь (вкл)" msgstr[1] "бензиновых фонаря (вкл)" msgstr[2] "бензиновых фонарей (вкл)" -msgstr[3] "бензиновый фонарь (вкл)" +msgstr[3] "бензиновые фонари (вкл)" #. ~ Use action msg for {'str': 'gasoline lantern (on)', 'str_pl': 'gasoline #. lanterns (on)'}. @@ -110976,7 +109434,7 @@ msgid_plural "glowsticks" msgstr[0] "светящаяся палочка" msgstr[1] "светящиеся палочки" msgstr[2] "светящихся палочек" -msgstr[3] "светящаяся палочка" +msgstr[3] "светящиеся палочки" #. ~ Use action msg for {'str': 'glowstick'}. #: lang/json/TOOL_from_json.py @@ -110997,9 +109455,9 @@ msgstr "" msgid "dead glowstick" msgid_plural "dead glowsticks" msgstr[0] "отработавшая светящаяся палочка" -msgstr[1] "отработавших светящиеся палочки" +msgstr[1] "отработавшие светящиеся палочки" msgstr[2] "отработавших светящихся палочек" -msgstr[3] "отработавшая светящаяся палочка" +msgstr[3] "отработавшие светящиеся палочки" #. ~ Description for {'str': 'dead glowstick'} #: lang/json/TOOL_from_json.py @@ -111012,7 +109470,7 @@ msgid_plural "active glowsticks" msgstr[0] "светящаяся палочка (активно)" msgstr[1] "светящиеся палочки (активно)" msgstr[2] "светящихся палочек (активно)" -msgstr[3] "светящаяся палочка (активно)" +msgstr[3] "светящиеся палочки (активно)" #. ~ Description for {'str': 'active glowstick'} #: lang/json/TOOL_from_json.py @@ -111029,7 +109487,7 @@ msgid_plural "flares" msgstr[0] "осветительный снаряд" msgstr[1] "осветительных снаряда" msgstr[2] "осветительных снарядов" -msgstr[3] "осветительный снаряд" +msgstr[3] "осветительные снаряды" #. ~ Use action menu_text for {'str': 'flare'}. #: lang/json/TOOL_from_json.py @@ -111057,7 +109515,7 @@ msgid_plural "active flares" msgstr[0] "осветительный снаряд (активно)" msgstr[1] "осветительных снаряда (активно)" msgstr[2] "осветительных снарядов (активно)" -msgstr[3] "осветительный снаряд (активно)" +msgstr[3] "осветительные снаряды (активно)" #. ~ Description for {'str': 'active flare'} #: lang/json/TOOL_from_json.py @@ -111074,7 +109532,7 @@ msgid_plural "heavy duty flashlights (off)" msgstr[0] "мощный фонарик (выкл)" msgstr[1] "мощных фонарика (выкл)" msgstr[2] "мощных фонариков (выкл)" -msgstr[3] "мощный фонарик (выкл)" +msgstr[3] "мощные фонарики (выкл)" #. ~ Use action msg for {'str': 'heavy duty flashlight (off)', 'str_pl': #. 'heavy duty flashlights (off)'}. @@ -111106,7 +109564,7 @@ msgid_plural "heavy duty flashlights (on)" msgstr[0] "мощный фонарик (вкл)" msgstr[1] "мощных фонарика (вкл)" msgstr[2] "мощных фонариков (вкл)" -msgstr[3] "мощный фонарик (вкл)" +msgstr[3] "мощные фонарики (вкл)" #. ~ Use action msg for {'str': 'heavy duty flashlight (on)', 'str_pl': 'heavy #. duty flashlights (on)'}. @@ -111169,9 +109627,9 @@ msgstr "" msgid "oil lamp (off)" msgid_plural "oil lamps (off)" msgstr[0] "масляная лампа (выкл)" -msgstr[1] "масляных лампы (выкл)" +msgstr[1] "масляные лампы (выкл)" msgstr[2] "масляных ламп (выкл)" -msgstr[3] "масляная лампа (выкл)" +msgstr[3] "масляные лампы (выкл)" #. ~ Description for {'str': 'oil lamp (off)', 'str_pl': 'oil lamps (off)'} #: lang/json/TOOL_from_json.py @@ -111188,7 +109646,7 @@ msgid_plural "oil lamps" msgstr[0] "масляная лампа" msgstr[1] "масляные лампы" msgstr[2] "масляных ламп" -msgstr[3] "масляная лампа" +msgstr[3] "масляные лампы" #. ~ Description for {'str': 'oil lamp'} #: lang/json/TOOL_from_json.py @@ -111205,7 +109663,7 @@ msgid_plural "acetylene lamps (off)" msgstr[0] "ацетиленовая лампа (выкл)" msgstr[1] "ацетиленовые лампы (выкл)" msgstr[2] "ацетиленовых ламп (выкл)" -msgstr[3] "ацетиленовая лампа (выкл)" +msgstr[3] "ацетиленовые лампы (выкл)" #. ~ Use action need_charges_msg for {'str': 'acetylene lamp (off)', 'str_pl': #. 'acetylene lamps (off)'}. @@ -111230,7 +109688,7 @@ msgid_plural "acetylene lamps (on)" msgstr[0] "ацетиленовая лампа (вкл)" msgstr[1] "ацетиленовые лампы (вкл)" msgstr[2] "ацетиленовых ламп (вкл)" -msgstr[3] "ацетиленовая лампа (вкл)" +msgstr[3] "ацетиленовые лампы (вкл)" #. ~ Use action msg for {'str': 'acetylene lamp (on)', 'str_pl': 'acetylene #. lamps (on)'}. @@ -111294,7 +109752,7 @@ msgid_plural "smart lamps (off)" msgstr[0] "смарт-лампа (выкл)" msgstr[1] "смарт-лампы (выкл)" msgstr[2] "смарт-ламп (выкл)" -msgstr[3] "смарт-лампа (выкл)" +msgstr[3] "смарт-лампы (выкл)" #. ~ Use action msg for {'str': 'smart lamp (off)', 'str_pl': 'smart lamps #. (off)'}. @@ -111320,7 +109778,7 @@ msgid_plural "smart lamps (on)" msgstr[0] "смарт-лампа (вкл)" msgstr[1] "смарт-лампы (вкл)" msgstr[2] "смарт-ламп (вкл)" -msgstr[3] "смарт-лампа (вкл)" +msgstr[3] "смарт-лампы (вкл)" #. ~ Use action msg for {'str': 'smart lamp (on)', 'str_pl': 'smart lamps #. (on)'}. @@ -111341,7 +109799,7 @@ msgid_plural "torches" msgstr[0] "факел" msgstr[1] "факела" msgstr[2] "факелов" -msgstr[3] "факел" +msgstr[3] "факелы" #. ~ Use action menu_text for {'str': 'torch', 'str_pl': 'torches'}. #. ~ Use action menu_text for {'str': 'everburning torch', 'str_pl': @@ -111429,7 +109887,7 @@ msgid_plural "inhalers" msgstr[0] "ингалятор" msgstr[1] "ингалятора" msgstr[2] "ингаляторов" -msgstr[3] "ингалятор" +msgstr[3] "ингаляторы" #. ~ Description for {'str': 'inhaler'} #: lang/json/TOOL_from_json.py @@ -111438,16 +109896,16 @@ msgid "" "for people with asthma. A mild stimulant, it may cause nervousness or " "tremors." msgstr "" -"Ингалятор с Сальбутамолом. Используется при лечении бронхоспазмов. Жизненно " +"Ингалятор с сальбутамолом. Используется при лечении бронхоспазмов. Жизненно " "необходим для астматиков. Может вызывать тремор или нервозность." #: lang/json/TOOL_from_json.py msgid "RX12 jet injector" msgid_plural "RX12 jet injectors" -msgstr[0] "RX12 безыгольный инъектор" -msgstr[1] "RX12 безыгольных инъектора" -msgstr[2] "RX12 безыгольных инъекторов" -msgstr[3] "RX12 безыгольный инъектор" +msgstr[0] "безыгольный инжектор RX12" +msgstr[1] "безыгольных инжектора RX12" +msgstr[2] "безыгольных инжекторов RX12" +msgstr[3] "безыгольные инжекторы RX12" #. ~ Description for {'str': 'RX12 jet injector'} #: lang/json/TOOL_from_json.py @@ -111456,7 +109914,7 @@ msgid "" " advanced fast-healing chemicals through the skin without using a needle. A" " label on the side warns against using more than two doses per hour." msgstr "" -"Безыгольный инъектор Ривтех RX12 — небольшое устройство, по форме похожее на" +"Безыгольный инжектор Ривтех RX12 — небольшое устройство, по форме похожее на" " пистолет, используется для введения химических веществ под кожу без " "использования иглы. Надпись на этикетке предупреждает об использовании не " "более двух доз в час." @@ -111467,7 +109925,7 @@ msgid_plural "scalpels" msgstr[0] "скальпель" msgstr[1] "скальпеля" msgstr[2] "скальпелей" -msgstr[3] "скальпель" +msgstr[3] "скальпели" #. ~ Description for {'str': 'scalpel'} #: lang/json/TOOL_from_json.py @@ -111484,7 +109942,7 @@ msgid_plural "emergency oxygen packs" msgstr[0] "спасательный кислородный баллон" msgstr[1] "спасательных кислородных баллона" msgstr[2] "спасательных кислородных баллонов" -msgstr[3] "спасательный кислородный баллон" +msgstr[3] "спасательные кислородные баллоны" #. ~ Description for {'str': 'emergency oxygen pack'} #: lang/json/TOOL_from_json.py @@ -111505,7 +109963,7 @@ msgid_plural "syringes" msgstr[0] "шприц" msgstr[1] "шприца" msgstr[2] "шприцов" -msgstr[3] "шприц" +msgstr[3] "шприцы" #. ~ Description for {'str': 'syringe'} #: lang/json/TOOL_from_json.py @@ -111520,7 +109978,7 @@ msgid_plural "thermometers" msgstr[0] "термометр" msgstr[1] "термометра" msgstr[2] "термометров" -msgstr[3] "термометр" +msgstr[3] "термометры" #. ~ Description for {'str': 'thermometer'} #: lang/json/TOOL_from_json.py @@ -111533,7 +109991,7 @@ msgid_plural "oxygen tanks" msgstr[0] "кислородный баллон" msgstr[1] "кислородных баллона" msgstr[2] "кислородных баллонов" -msgstr[3] "кислородный баллон" +msgstr[3] "кислородные баллоны" #. ~ Description for {'str': 'oxygen tank'} #: lang/json/TOOL_from_json.py @@ -111552,7 +110010,7 @@ msgid_plural "wrapped radiation badges" msgstr[0] "упакованный плёночный дозиметр" msgstr[1] "упакованных плёночных дозиметра" msgstr[2] "упакованных плёночных дозиметров" -msgstr[3] "упакованный плёночный дозиметр" +msgstr[3] "упакованные плёночные дозиметры" #. ~ Use action menu_text for {'str': 'wrapped radiation badge'}. #: lang/json/TOOL_from_json.py @@ -111574,7 +110032,7 @@ msgid "" " bag. Use it to remove it from the bag." msgstr "" "Устройство в виде значка, определяющее дозу облучения. Вмонтировано в " -"радиационно-блокирующую сумку. Активируйте, чтобы снять с сумки." +"радиационно-блокирующую сумку. Активируйте, чтобы вытащить из упаковки." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py #: lang/json/tool_quality_from_json.py @@ -111583,7 +110041,7 @@ msgid_plural "anvils" msgstr[0] "наковальня" msgstr[1] "наковальни" msgstr[2] "наковален" -msgstr[3] "наковальня" +msgstr[3] "наковальни" #. ~ Description for {'str': 'anvil'} #: lang/json/TOOL_from_json.py @@ -111601,7 +110059,7 @@ msgid_plural "bronze anvils" msgstr[0] "бронзовая наковальня" msgstr[1] "бронзовые наковальни" msgstr[2] "бронзовых наковален" -msgstr[3] "бронзовая наковальня" +msgstr[3] "бронзовые наковальни" #. ~ Description for {'str': 'bronze anvil'} #: lang/json/TOOL_from_json.py @@ -111618,7 +110076,7 @@ msgid_plural "pairs of bolt cutters" msgstr[0] "болторез" msgstr[1] "болтореза" msgstr[2] "болторезов" -msgstr[3] "болторез" +msgstr[3] "болторезы" #. ~ Description for {'str': 'pair of bolt cutters', 'str_pl': 'pairs of bolt #. cutters'} @@ -111634,9 +110092,9 @@ msgstr "" msgid "charcoal forge" msgid_plural "charcoal forges" msgstr[0] "угольная кузня" -msgstr[1] "угольных кузни" +msgstr[1] "угольные кузни" msgstr[2] "угольных кузен" -msgstr[3] "угольная кузня" +msgstr[3] "угольные кузни" #. ~ Description for {'str': 'charcoal forge'} #: lang/json/TOOL_from_json.py @@ -111653,7 +110111,7 @@ msgid_plural "metalworking chisels" msgstr[0] "долото для металла" msgstr[1] "долота для металла" msgstr[2] "долот для металла" -msgstr[3] "долото для металла" +msgstr[3] "долота для металла" #. ~ Description for {'str': 'metalworking chisel'} #: lang/json/TOOL_from_json.py @@ -111670,7 +110128,7 @@ msgid_plural "crucibles" msgstr[0] "тигель" msgstr[1] "тигля" msgstr[2] "тиглей" -msgstr[3] "тигель" +msgstr[3] "тигли" #. ~ Description for {'str': 'crucible'} #: lang/json/TOOL_from_json.py @@ -111687,7 +110145,7 @@ msgid_plural "clay crucibles" msgstr[0] "глиняный тигель" msgstr[1] "глиняных тигля" msgstr[2] "глиняных тиглей" -msgstr[3] "глиняный тигель" +msgstr[3] "глиняные тигли" #. ~ Description for {'str': 'clay crucible'} #: lang/json/TOOL_from_json.py @@ -111704,7 +110162,7 @@ msgid_plural "electric forges" msgstr[0] "электрокузня" msgstr[1] "электрокузни" msgstr[2] "электрокузен" -msgstr[3] "электрокузня" +msgstr[3] "электрокузни" #. ~ Description for {'str': 'electric forge'} #: lang/json/TOOL_from_json.py @@ -111724,7 +110182,7 @@ msgid_plural "finished charcoal kilns" msgstr[0] "углевыжигательная печь (завершено)" msgstr[1] "углевыжигательные печи (завершено)" msgstr[2] "углевыжигательных печей (завершено)" -msgstr[3] "углевыжигательная печь (завершено)" +msgstr[3] "углевыжигательные печи (завершено)" #. ~ Description for {'str': 'finished charcoal kiln'} #: lang/json/TOOL_from_json.py @@ -111741,7 +110199,7 @@ msgid_plural "filled charcoal kilns" msgstr[0] "углевыжигательная печь (полна)" msgstr[1] "углевыжигательные печи (полны)" msgstr[2] "углевыжигательных печей (полны)" -msgstr[3] "углевыжигательная печь (полна)" +msgstr[3] "углевыжигательные печи (полны)" #. ~ Use action menu_text for {'str': 'filled charcoal kiln'}. #: lang/json/TOOL_from_json.py @@ -111773,7 +110231,7 @@ msgid_plural "chainmail sheets" msgstr[0] "кольчужная пластина" msgstr[1] "кольчужные пластины" msgstr[2] "кольчужных пластин" -msgstr[3] "кольчужная пластина" +msgstr[3] "кольчужные пластины" #. ~ Description for {'str': 'chainmail sheet'} #: lang/json/TOOL_from_json.py @@ -111790,7 +110248,7 @@ msgid_plural "swage and die sets" msgstr[0] "набор штампов и матриц" msgstr[1] "набора штампов и матриц" msgstr[2] "наборов штампов и матриц" -msgstr[3] "набор штампов и матриц" +msgstr[3] "наборы штампов и матриц" #. ~ Description for {'str': 'swage and die set'} #: lang/json/TOOL_from_json.py @@ -111853,7 +110311,7 @@ msgid_plural "alarm clocks" msgstr[0] "будильник" msgstr[1] "будильника" msgstr[2] "будильников" -msgstr[3] "будильник" +msgstr[3] "будильники" #. ~ Description for {'str': 'alarm clock'} #: lang/json/TOOL_from_json.py @@ -111872,7 +110330,7 @@ msgid_plural "cans of butane" msgstr[0] "канистра бутана" msgstr[1] "канистры бутана" msgstr[2] "канистр бутана" -msgstr[3] "канистра бутана" +msgstr[3] "канистры бутана" #. ~ Description for {'str': 'can of butane', 'str_pl': 'cans of butane'} #: lang/json/TOOL_from_json.py @@ -111890,7 +110348,7 @@ msgid_plural "cow bells" msgstr[0] "коровий колокольчик" msgstr[1] "коровьих колокольчика" msgstr[2] "коровьих колокольчиков" -msgstr[3] "коровий колокольчик" +msgstr[3] "коровьи колокольчики" #. ~ Description for {'str': 'cow bell'} #: lang/json/TOOL_from_json.py @@ -111951,9 +110409,9 @@ msgstr "" msgid "entrenching tool" msgid_plural "entrenching tools" msgstr[0] "сапёрная лопатка" -msgstr[1] "сапёрных лопатки" +msgstr[1] "сапёрные лопатки" msgstr[2] "сапёрных лопаток" -msgstr[3] "сапёрная лопатка" +msgstr[3] "сапёрные лопатки" #. ~ Description for {'str': 'entrenching tool'} #: lang/json/TOOL_from_json.py @@ -111969,7 +110427,7 @@ msgid_plural "etched human skulls" msgstr[0] "гравированный человеческий череп" msgstr[1] "гравированных человеческих черепа" msgstr[2] "гравированных человеческих черепов" -msgstr[3] "гравированный человеческий череп" +msgstr[3] "гравированные человеческие черепа" #. ~ Description for {'str': 'etched human skull'} #: lang/json/TOOL_from_json.py @@ -111980,9 +110438,9 @@ msgstr "Человеческий череп со странными гравюр msgid "flammable arrow" msgid_plural "flammable arrows" msgstr[0] "зажигательная стрела" -msgstr[1] "зажигательных стрелы" +msgstr[1] "зажигательные стрелы" msgstr[2] "зажигательных стрел" -msgstr[3] "зажигательная стрела" +msgstr[3] "зажигательные стрелы" #. ~ Description for {'str': 'flammable arrow'} #: lang/json/TOOL_from_json.py @@ -111999,7 +110457,7 @@ msgid_plural "fur rollmats" msgstr[0] "меховой туристический коврик" msgstr[1] "меховых туристических коврика" msgstr[2] "меховых туристических ковриков" -msgstr[3] "меховой туристический коврик" +msgstr[3] "меховые туристические коврики" #. ~ Use action done_message for {'str': 'fur rollmat'}. #: lang/json/TOOL_from_json.py @@ -112036,7 +110494,7 @@ msgid_plural "hand pumps" msgstr[0] "ручной насос" msgstr[1] "ручных насоса" msgstr[2] "ручных насосов" -msgstr[3] "ручной насос" +msgstr[3] "ручные насосы" #. ~ Description for {'str': 'hand pump'} #: lang/json/TOOL_from_json.py @@ -112049,7 +110507,7 @@ msgid_plural "bicycle horns" msgstr[0] "велосипедный гудок" msgstr[1] "велосипедных гудка" msgstr[2] "велосипедных гудков" -msgstr[3] "велосипедный гудок" +msgstr[3] "велосипедные гудки" #. ~ Weak horn sound #. ~ Use action noise_message for {'str': 'bicycle horn'}. @@ -112076,7 +110534,7 @@ msgid_plural "truck horns" msgstr[0] "гудок грузовика" msgstr[1] "гудка грузовика" msgstr[2] "гудков грузовика" -msgstr[3] "гудок грузовика" +msgstr[3] "гудки грузовика" #. ~ Description for {'str': 'truck horn'} #: lang/json/TOOL_from_json.py @@ -112089,7 +110547,7 @@ msgid_plural "car horns" msgstr[0] "гудок авто" msgstr[1] "гудка авто" msgstr[2] "гудков авто" -msgstr[3] "гудок авто" +msgstr[3] "гудки авто" #. ~ Description for {'str': 'car horn'} #: lang/json/TOOL_from_json.py @@ -112097,30 +110555,13 @@ msgid "This is a car horn meant to be attached to a car's electrical system." msgstr "" "Автомобильный гудок, может быть подключён к электрической сети автомобиля." -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "кевларовая пластина" -msgstr[1] "кевларовых пластины" -msgstr[2] "кевларовых пластин" -msgstr[3] "кевларовая пластина" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made" -" of Kevlar." -msgstr "" -"Это пластина из армированного кевлара. Она может быть использована для " -"ремонта изделий из кевлара." - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" msgstr[0] "большой автообогреватель" msgstr[1] "больших автообогревателя" msgstr[2] "больших автообогревателей" -msgstr[3] "большой автообогреватель" +msgstr[3] "большие автообогреватели" #. ~ Use action menu_text for {'str': 'large space heater'}. #. ~ Use action menu_text for {'str': 'small space heater'}. @@ -112160,7 +110601,7 @@ msgid_plural "large space heaters (on)" msgstr[0] "большой автообогреватель (вкл)" msgstr[1] "больших автообогревателя (вкл)" msgstr[2] "больших автообогревателей (вкл)" -msgstr[3] "большой автообогреватель (вкл)" +msgstr[3] "большие автообогреватели (вкл)" #. ~ Use action msg for {'str': 'large space heater (on)', 'str_pl': 'large #. space heaters (on)'}. @@ -112185,10 +110626,10 @@ msgid "" "two part filtration system will purify the water you drink. Water taken " "from uncertain sources like a river may be dirty." msgstr "" -"Положите очиститель в подозрительную воду, оставьте на одну минуту, затем " -"пейте. Двухфазная система фильтрации очистит воду, которую вы пьете. " -"Довольно полезная вещь, так как вода из рек или других сомнительных " -"источников может быть грязной." +"Положите очиститель в грязную воду, оставьте на одну минуту, затем пейте. " +"Двухфазная система фильтрации очистит воду, которую вы пьете. Довольно " +"полезная вещь, так как вода из рек или других сомнительных источников может " +"быть грязной." #: lang/json/TOOL_from_json.py msgid "plastic gasket" @@ -112209,7 +110650,7 @@ msgid_plural "permanent markers" msgstr[0] "несмываемый маркер" msgstr[1] "несмываемых маркера" msgstr[2] "несмываемых маркеров" -msgstr[3] "несмываемый маркер" +msgstr[3] "несмываемые маркеры" #. ~ Use action gerund for {'str': 'permanent marker'}. #. ~ Use action gerund for {'str': 'survival marker'}. @@ -112240,7 +110681,7 @@ msgid_plural "zombie pheromones" msgstr[0] "зомби феромон" msgstr[1] "зомби феромона" msgstr[2] "зомби феромонов" -msgstr[3] "зомби феромон" +msgstr[3] "зомби феромоны" #. ~ Description for {'str': 'zombie pheromone'} #: lang/json/TOOL_from_json.py @@ -112251,10 +110692,10 @@ msgid "" "ignore you for a short period of time. Perhaps they briefly consider you as" " one of them." msgstr "" -"Омерзительный комок гнилого мяса происхождением от зомби. Если его сжать, " -"выпрыснет в воздух облачко феромонов. Похоже, эти гадкие выделения влияют на" -" отношение зомби, и они будут игнорировать вас какое-то время. Возможно, они" -" ненадолго посчитают вас за своего." +"Омерзительный комок гнилого мяса, полученный из зомби. Если его сжать, он " +"выбросит в воздух облачко феромонов. Похоже, эти гадкие выделения влияют на " +"отношение зомби, и они будут игнорировать вас какое-то время. Возможно, они " +"ненадолго посчитают вас за своего." #: lang/json/TOOL_from_json.py msgid "pocket watch" @@ -112279,7 +110720,7 @@ msgid_plural "rollmats" msgstr[0] "туристический коврик" msgstr[1] "туристических коврика" msgstr[2] "туристических ковриков" -msgstr[3] "туристический коврик" +msgstr[3] "туристические коврики" #. ~ Use action done_message for {'str': 'rollmat'}. #: lang/json/TOOL_from_json.py @@ -112293,9 +110734,9 @@ msgid "" "insulates you from the floor, making it easier to sleep. Use it to unroll " "and place on the ground." msgstr "" -"Лист поролона, который легко можно свернуть для хранения. Согревает от " -"холодного пола, поэтому будет проще заснуть. Активируйте, чтобы развернуть, " -"и положите на пол." +"Лист поролона, который легко можно свернуть для хранения. Обеспечивает " +"теплоизоляцию от холодной поверхности под ним, поэтому будет проще заснуть. " +"Активируйте, чтобы развернуть, и положите на пол." #: lang/json/TOOL_from_json.py msgid "safe deposit box" @@ -112303,7 +110744,7 @@ msgid_plural "safe deposit boxes" msgstr[0] "сейф" msgstr[1] "сейфа" msgstr[2] "сейфов" -msgstr[3] "сейф" +msgstr[3] "сейфы" #. ~ Description for {'str': 'safe deposit box', 'str_pl': 'safe deposit #. boxes'} @@ -112321,7 +110762,7 @@ msgid_plural "sarcophagus access codes" msgstr[0] "код доступа в саркофаг" msgstr[1] "кода доступа в саркофаг" msgstr[2] "кодов доступа в саркофаг" -msgstr[3] "код доступа в саркофаг" +msgstr[3] "коды доступа в саркофаг" #. ~ Description for {'str': 'sarcophagus access code'} #: lang/json/TOOL_from_json.py @@ -112336,7 +110777,7 @@ msgid_plural "small space heaters" msgstr[0] "малый автообогреватель" msgstr[1] "малых автообогревателя" msgstr[2] "малых автообогревателей" -msgstr[3] "малый автообогреватель" +msgstr[3] "малые автообогреватели" #. ~ Description for {'str': 'small space heater'} #. ~ Description for {'str': 'small space heater (on)', 'str_pl': 'small space @@ -112355,7 +110796,7 @@ msgid_plural "small space heaters (on)" msgstr[0] "малый автообогреватель (вкл)" msgstr[1] "малых автообогревателя (вкл)" msgstr[2] "малых автообогревателей (вкл)" -msgstr[3] "малый автообогреватель (вкл)" +msgstr[3] "малые автообогреватели (вкл)" #: lang/json/TOOL_from_json.py msgid "spray can" @@ -112363,7 +110804,7 @@ msgid_plural "spray cans" msgstr[0] "аэрозольный баллончик" msgstr[1] "аэрозольных баллончика" msgstr[2] "аэрозольных баллончиков" -msgstr[3] "аэрозольный баллончик" +msgstr[3] "аэрозольные баллончики" #. ~ Description for {'str': 'spray can'} #: lang/json/TOOL_from_json.py @@ -112380,7 +110821,7 @@ msgid_plural "stepladders" msgstr[0] "стремянка" msgstr[1] "стремянки" msgstr[2] "стремянок" -msgstr[3] "стремянка" +msgstr[3] "стремянки" #. ~ Description for {'str': 'stepladder'} #: lang/json/TOOL_from_json.py @@ -112393,7 +110834,7 @@ msgid_plural "survival markers" msgstr[0] "маркер выживальщика" msgstr[1] "маркера выживальщика" msgstr[2] "маркеров выживальщика" -msgstr[3] "маркер выживальщика" +msgstr[3] "маркеры выживальщика" #. ~ Description for {'str': 'survival marker'} #: lang/json/TOOL_from_json.py @@ -112410,7 +110851,7 @@ msgid_plural "survivor telescopes" msgstr[0] "телескоп выживальщика" msgstr[1] "телескопа выживальщика" msgstr[2] "телескопов выживальщика" -msgstr[3] "телескоп выживальщика" +msgstr[3] "телескопы выживальщика" #. ~ Description for {'str': 'survivor telescope'} #: lang/json/TOOL_from_json.py @@ -112468,7 +110909,7 @@ msgid_plural "Flaming Chunks of Steel +2" msgstr[0] "горящий кусок стали +2" msgstr[1] "горящих куска стали +2" msgstr[2] "горящих кусков стали +2" -msgstr[3] "горящий кусок стали +2" +msgstr[3] "горящие куски стали +2" #. ~ Description for {'str': 'Flaming Chunk of Steel +2', 'str_pl': 'Flaming #. Chunks of Steel +2'} @@ -112496,7 +110937,7 @@ msgid_plural "vortex stones" msgstr[0] "вихревой камень" msgstr[1] "вихревых камня" msgstr[2] "вихревых камней" -msgstr[3] "вихревой камень" +msgstr[3] "вихревые камни" #. ~ Description for {'str': 'vortex stone'} #: lang/json/TOOL_from_json.py @@ -112509,13 +110950,30 @@ msgstr "" "Хоть он и кажется крупным, но практически ничего не весит. Такое ощущение, " "что воздух стягивается к нему." +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "набор для игры в песочнице" +msgstr[1] "набора для игры в песочнице" +msgstr[2] "наборов для игры в песочнице" +msgstr[3] "наборы для игры в песочнице" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "" +"Пластиковое ведёрко с маленькой лопаткой и грабельками, идеально для " +"создания вашего собственного замка из песка!" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" msgstr[0] "свисток-мультитул" msgstr[1] "свистка-мультитула" msgstr[2] "свистков-мультитулов" -msgstr[3] "свисток-мультитул" +msgstr[3] "свистки-мультитулы" #. ~ Description for {'str': 'whistle multitool'} #: lang/json/TOOL_from_json.py @@ -112545,7 +111003,7 @@ msgid_plural "bone flutes" msgstr[0] "костяная флейта" msgstr[1] "костяные флейты" msgstr[2] "костяных флейт" -msgstr[3] "костяная флейта" +msgstr[3] "костяные флейты" #. ~ Description for {'str': 'bone flute'} #: lang/json/TOOL_from_json.py @@ -112558,7 +111016,7 @@ msgid_plural "clarinets" msgstr[0] "кларнет" msgstr[1] "кларнета" msgstr[2] "кларнетов" -msgstr[3] "кларнет" +msgstr[3] "кларнеты" #. ~ Description for {'str': 'clarinet'} #: lang/json/TOOL_from_json.py @@ -112571,7 +111029,7 @@ msgid_plural "flutes" msgstr[0] "флейта" msgstr[1] "флейты" msgstr[2] "флейт" -msgstr[3] "флейта" +msgstr[3] "флейты" #. ~ Description for {'str': 'flute'} #: lang/json/TOOL_from_json.py @@ -112584,7 +111042,7 @@ msgid_plural "trumpets" msgstr[0] "труба" msgstr[1] "трубы" msgstr[2] "труб" -msgstr[3] "труба" +msgstr[3] "трубы" #. ~ Description for {'str': 'trumpet'} #: lang/json/TOOL_from_json.py @@ -112610,7 +111068,7 @@ msgid_plural "violins" msgstr[0] "скрипка" msgstr[1] "скрипки" msgstr[2] "скрипок" -msgstr[3] "скрипка" +msgstr[3] "скрипки" #. ~ Description for {'str': 'violin'} #: lang/json/TOOL_from_json.py @@ -112625,9 +111083,9 @@ msgstr "" msgid "golden fiddle" msgid_plural "golden fiddles" msgstr[0] "золотая скрипка" -msgstr[1] "золотых скрипки" +msgstr[1] "золотые скрипки" msgstr[2] "золотых скрипок" -msgstr[3] "золотая скрипка" +msgstr[3] "золотые скрипки" #. ~ Description for {'str': 'golden fiddle'} #: lang/json/TOOL_from_json.py @@ -112644,7 +111102,7 @@ msgid_plural "chicken cages" msgstr[0] "куриная клетка" msgstr[1] "куриные клетки" msgstr[2] "куриных клеток" -msgstr[3] "куриная клетка" +msgstr[3] "куриные клетки" #. ~ Description for {'str': 'chicken cage'} #: lang/json/TOOL_from_json.py @@ -112664,7 +111122,7 @@ msgid_plural "dog whistles" msgstr[0] "собачий свисток" msgstr[1] "собачьих свистка" msgstr[2] "собачьих свистков" -msgstr[3] "собачий свисток" +msgstr[3] "собачmb свистки" #. ~ Description for {'str': 'dog whistle'} #: lang/json/TOOL_from_json.py @@ -112729,7 +111187,7 @@ msgid_plural "pet carriers" msgstr[0] "переноска для питомцев" msgstr[1] "переноски для питомцев" msgstr[2] "переносок для питомцев" -msgstr[3] "переноска для питомцев" +msgstr[3] "переноски для питомцев" #. ~ Description for {'str': 'pet carrier'} #: lang/json/TOOL_from_json.py @@ -112785,7 +111243,7 @@ msgid_plural "RC controls" msgstr[0] "пульт управления" msgstr[1] "пульта управления" msgstr[2] "пультов управления" -msgstr[3] "пульт управления" +msgstr[3] "пульты управления" #. ~ Description for {'str': 'RC control'} #: lang/json/TOOL_from_json.py @@ -112803,7 +111261,7 @@ msgid_plural "RC cars" msgstr[0] "машинка на РУ" msgstr[1] "машинки на РУ" msgstr[2] "машинок на РУ" -msgstr[3] "машинка на РУ" +msgstr[3] "машинки на РУ" #. ~ Description for {'str': 'RC car'} #: lang/json/TOOL_from_json.py @@ -112816,7 +111274,7 @@ msgid_plural "RC cars (on)" msgstr[0] "машинка на РУ (вкл)" msgstr[1] "машинки на РУ (вкл)" msgstr[2] "машинок на РУ (вкл)" -msgstr[3] "машинка на РУ (вкл)" +msgstr[3] "машинки на РУ (вкл)" #. ~ Description for {'str': 'RC car (on)', 'str_pl': 'RC cars (on)'} #: lang/json/TOOL_from_json.py @@ -112833,7 +111291,7 @@ msgid_plural "radio activation mods" msgstr[0] "модификация: радиоактивация" msgstr[1] "модификации: радиоактивация" msgstr[2] "модификаций: радиоактивация" -msgstr[3] "модификация: радиоактивация" +msgstr[3] "модификации: радиоактивация" #. ~ Description for {'str': 'radio activation mod'} #: lang/json/TOOL_from_json.py @@ -112884,7 +111342,7 @@ msgid_plural "two-way radios" msgstr[0] "рация" msgstr[1] "рации" msgstr[2] "раций" -msgstr[3] "рация" +msgstr[3] "рации" #. ~ Description for {'str': 'two-way radio'} #: lang/json/TOOL_from_json.py @@ -112901,7 +111359,7 @@ msgid_plural "remote vehicle controllers" msgstr[0] "пульт ДУ машиной" msgstr[1] "пульта ДУ машиной" msgstr[2] "пультов ДУ машиной" -msgstr[3] "пульт ДУ машиной" +msgstr[3] "пульты ДУ машиной" #. ~ Description for {'str': 'remote vehicle controller'} #: lang/json/TOOL_from_json.py @@ -112945,7 +111403,7 @@ msgid_plural "funnels" msgstr[0] "воронка" msgstr[1] "воронки" msgstr[2] "воронок" -msgstr[3] "воронка" +msgstr[3] "воронки" #. ~ Use action done_message for {'str': 'funnel'}. #: lang/json/TOOL_from_json.py @@ -112966,9 +111424,9 @@ msgstr "" msgid "leather funnel" msgid_plural "leather funnels" msgstr[0] "кожаная воронка" -msgstr[1] "кожаной воронки" +msgstr[1] "кожаные воронки" msgstr[2] "кожаных воронок" -msgstr[3] "кожаная воронка" +msgstr[3] "кожаные воронки" #. ~ Use action done_message for {'str': 'leather funnel'}. #: lang/json/TOOL_from_json.py @@ -112990,9 +111448,9 @@ msgstr "" msgid "makeshift funnel" msgid_plural "makeshift funnels" msgstr[0] "самодельная воронка" -msgstr[1] "самодельных воронки" +msgstr[1] "самодельные воронки" msgstr[2] "самодельных воронок" -msgstr[3] "самодельная воронка" +msgstr[3] "самодельные воронки" #. ~ Use action done_message for {'str': 'makeshift funnel'}. #: lang/json/TOOL_from_json.py @@ -113015,7 +111473,7 @@ msgid_plural "metal funnels" msgstr[0] "металлическая воронка" msgstr[1] "металлические воронки" msgstr[2] "металлических воронок" -msgstr[3] "металлическая воронка" +msgstr[3] "металлические воронки" #. ~ Use action done_message for {'str': 'metal funnel'}. #: lang/json/TOOL_from_json.py @@ -113060,7 +111518,7 @@ msgid_plural "barometers" msgstr[0] "барометр" msgstr[1] "барометра" msgstr[2] "барометров" -msgstr[3] "барометр" +msgstr[3] "барометры" #. ~ Description for {'str': 'barometer'} #: lang/json/TOOL_from_json.py @@ -113073,7 +111531,7 @@ msgid_plural "goo canisters" msgstr[0] "контейнер слизи" msgstr[1] "контейнера слизи" msgstr[2] "контейнеров слизи" -msgstr[3] "контейнер слизи" +msgstr[3] "контейнеры слизи" #. ~ Description for {'str': 'goo canister'} #: lang/json/TOOL_from_json.py @@ -113092,7 +111550,7 @@ msgid_plural "chemistry sets" msgstr[0] "набор химика" msgstr[1] "набора химика" msgstr[2] "наборов химика" -msgstr[3] "набор химика" +msgstr[3] "наборы химика" #. ~ Description for {'str': 'chemistry set'} #: lang/json/TOOL_from_json.py @@ -113112,7 +111570,7 @@ msgid_plural "basic chemistry sets" msgstr[0] "базовый набор химика" msgstr[1] "базовых набора химика" msgstr[2] "базовых наборов химика" -msgstr[3] "базовый набор химика" +msgstr[3] "базовые наборы химика" #. ~ Description for {'str': 'basic chemistry set'} #: lang/json/TOOL_from_json.py @@ -113132,7 +111590,7 @@ msgid_plural "electrolysis kits" msgstr[0] "набор для электролиза" msgstr[1] "набора для электролиза" msgstr[2] "наборов для электролиза" -msgstr[3] "набор для электролиза" +msgstr[3] "наборы для электролиза" #. ~ Description for {'str': 'electrolysis kit'} #: lang/json/TOOL_from_json.py @@ -113534,7 +111992,7 @@ msgid_plural "hygrometers" msgstr[0] "гигрометр" msgstr[1] "гигрометра" msgstr[2] "гигрометров" -msgstr[3] "гигрометр" +msgstr[3] "гигрометры" #. ~ Description for {'str': 'hygrometer'} #: lang/json/TOOL_from_json.py @@ -113598,7 +112056,7 @@ msgid_plural "portal generators" msgstr[0] "генератор порталов" msgstr[1] "генератора порталов" msgstr[2] "генераторов порталов" -msgstr[3] "генератор порталов" +msgstr[3] "генераторы порталов" #. ~ Description for {'str': 'portal generator'} #: lang/json/TOOL_from_json.py @@ -113606,8 +112064,8 @@ msgid "" "This is a rare, bizarre, and arcane device of an otherworldly nature. It's " "giving you a headache just looking at it. It is covered in alien markings." msgstr "" -"Редкое и таинственное устройство, покрытое письменами инопланетного " -"происхождения. От одного взгляда на него начинает болеть голова." +"Редкое и загадочное устройство неземного происхождения. От одного взгляда на" +" него начинает болеть голова." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "teleport pad" @@ -113615,7 +112073,7 @@ msgid_plural "teleport pads" msgstr[0] "площадка телепорта" msgstr[1] "площадки телепорта" msgstr[2] "площадок телепорта" -msgstr[3] "площадка телепорта" +msgstr[3] "площадки телепорта" #. ~ Use action done_message for {'str': 'teleport pad'}. #: lang/json/TOOL_from_json.py @@ -113637,7 +112095,7 @@ msgid_plural "teleporters" msgstr[0] "телепорт" msgstr[1] "телепорта" msgstr[2] "телепортов" -msgstr[3] "телепорт" +msgstr[3] "телепорты" #. ~ Description for {'str': 'teleporter'} #: lang/json/TOOL_from_json.py @@ -114025,9 +112483,9 @@ msgstr "" msgid "large tent" msgid_plural "large tents" msgstr[0] "большая палатка" -msgstr[1] "больших палатки" +msgstr[1] "большие палатки" msgstr[2] "больших палаток" -msgstr[3] "большая палатка" +msgstr[3] "большие палатки" #. ~ Description for {'str': 'large tent'} #: lang/json/TOOL_from_json.py @@ -114044,7 +112502,7 @@ msgid_plural "shelter kits" msgstr[0] "укрытие" msgstr[1] "укрытия" msgstr[2] "укрытий" -msgstr[3] "укрытие" +msgstr[3] "укрытия" #. ~ Description for {'str': 'shelter kit'} #: lang/json/TOOL_from_json.py @@ -114058,7 +112516,7 @@ msgid_plural "tents" msgstr[0] "палатка" msgstr[1] "палатки" msgstr[2] "палаток" -msgstr[3] "палатка" +msgstr[3] "палатки" #. ~ Description for {'str': 'tent'} #: lang/json/TOOL_from_json.py @@ -114342,7 +112800,7 @@ msgid_plural "electric hair trimmers" msgstr[0] "электрический триммер для волос" msgstr[1] "электрических триммера для волос" msgstr[2] "электрических триммеров для волос" -msgstr[3] "электрический триммер для волос" +msgstr[3] "электрические триммеры для волос" #. ~ Description for {'str': 'electric hair trimmer'} #: lang/json/TOOL_from_json.py @@ -114351,7 +112809,7 @@ msgid "" "it to cut your hair if it's supplied with batteries. It requires 10 " "batteries per use." msgstr "" -"Это карманный электрический триммер для стрижки волос. Если зарядить его " +"Карманный электрический триммер для стрижки волос. Если зарядить его " "батарейками, то вы можете использовать его для стрижки волос. Требует 10 " "батареек на одно использование." @@ -114361,7 +112819,7 @@ msgid_plural "mops" msgstr[0] "швабра" msgstr[1] "швабры" msgstr[2] "швабр" -msgstr[3] "швабра" +msgstr[3] "швабры" #. ~ Description for {'str': 'mop'} #: lang/json/TOOL_from_json.py @@ -114378,7 +112836,7 @@ msgid_plural "rags" msgstr[0] "тряпка" msgstr[1] "тряпки" msgstr[2] "тряпок" -msgstr[3] "тряпка" +msgstr[3] "тряпки" #. ~ Description for {'str': 'rag'} #. ~ Description for TEST rag @@ -114396,7 +112854,7 @@ msgid_plural "shaving kits" msgstr[0] "набор для бритья" msgstr[1] "набора для бритья" msgstr[2] "наборов для бритья" -msgstr[3] "набор для бритья" +msgstr[3] "наборы для бритья" #. ~ Description for {'str': 'shaving kit'} #: lang/json/TOOL_from_json.py @@ -114432,7 +112890,7 @@ msgid_plural "makeshift haircut kits" msgstr[0] "самодельный набор для стрижки" msgstr[1] "самодельных набора для стрижки" msgstr[2] "самодельных наборов для стрижки" -msgstr[3] "самодельный набор для стрижки" +msgstr[3] "самодельные наборы для стрижки" #. ~ Description for {'str': 'makeshift haircut kit'} #: lang/json/TOOL_from_json.py @@ -114445,7 +112903,7 @@ msgid_plural "makeshift shaving kits" msgstr[0] "самодельный набор для бритья" msgstr[1] "самодельных набора для бритья" msgstr[2] "самодельных наборов для бритья" -msgstr[3] "самодельный набор для бритья" +msgstr[3] "самодельные наборы для бритья" #. ~ Description for {'str': 'makeshift shaving kit'} #: lang/json/TOOL_from_json.py @@ -114462,7 +112920,7 @@ msgid_plural "washboards" msgstr[0] "стиральная доска" msgstr[1] "стиральные доски" msgstr[2] "стиральных досок" -msgstr[3] "стиральная доска" +msgstr[3] "стиральные доски" #. ~ Description for {'str': 'washboard'} #: lang/json/TOOL_from_json.py @@ -114497,7 +112955,7 @@ msgid_plural "bear traps" msgstr[0] "медвежий капкан" msgstr[1] "медвежьих капкана" msgstr[2] "медвежьих капканов" -msgstr[3] "медвежий капкан" +msgstr[3] "медвежьи капканы" #. ~ Use action bury_question for {'str': 'bear trap'}. #: lang/json/TOOL_from_json.py @@ -114533,7 +112991,7 @@ msgid_plural "blade traps" msgstr[0] "ловушка «лезвие»" msgstr[1] "ловушки «лезвие»" msgstr[2] "ловушек «лезвие»" -msgstr[3] "ловушка «лезвие»" +msgstr[3] "ловушки «лезвие»" #. ~ Use action done_message for {'str': 'blade trap'}. #: lang/json/TOOL_from_json.py @@ -114557,7 +113015,7 @@ msgid_plural "nailboard traps" msgstr[0] "ловушка «доска с гвоздями»" msgstr[1] "ловушки «доска с гвоздями»" msgstr[2] "ловушек «доска с гвоздями»" -msgstr[3] "ловушка «доска с гвоздями»" +msgstr[3] "ловушки «доска с гвоздями»" #. ~ Use action done_message for {'str': 'nailboard trap'}. #: lang/json/TOOL_from_json.py @@ -114581,7 +113039,7 @@ msgid_plural "booby traps" msgstr[0] "мина-ловушка" msgstr[1] "мины-ловушки" msgstr[2] "мин-ловушек" -msgstr[3] "мина-ловушка" +msgstr[3] "мины-ловушки" #. ~ Use action done_message for {'str': 'booby trap'}. #: lang/json/TOOL_from_json.py @@ -114602,9 +113060,9 @@ msgstr "" msgid "bubble wrap" msgid_plural "bubble wraps" msgstr[0] "пузырчатая плёнка" -msgstr[1] "пузырчатых плёнки" +msgstr[1] "пузырчатые плёнки" msgstr[2] "пузырчатых плёнок" -msgstr[3] "пузырчатая плёнка" +msgstr[3] "пузырчатые плёнки" #. ~ Use action done_message for {'str': 'bubble wrap'}. #: lang/json/TOOL_from_json.py @@ -114674,7 +113132,7 @@ msgid_plural "crossbow traps" msgstr[0] "растяжка с арбалетом" msgstr[1] "растяжки с арбалетом" msgstr[2] "растяжек с арбалетом" -msgstr[3] "растяжка с арбалетом" +msgstr[3] "растяжки с арбалетом" #. ~ Use action done_message for {'str': 'crossbow trap'}. #: lang/json/TOOL_from_json.py @@ -114694,25 +113152,25 @@ msgstr "" #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "land mine" msgid_plural "land mines" -msgstr[0] "фугас" -msgstr[1] "фугаса" -msgstr[2] "фугасов" -msgstr[3] "фугас" +msgstr[0] "противопехотная мина" +msgstr[1] "противопехотные мины" +msgstr[2] "противопехотных мин" +msgstr[3] "противопехотные мины" #. ~ Use action bury_question for {'str': 'land mine'}. #: lang/json/TOOL_from_json.py msgid "Bury the land mine?" -msgstr "Прикопать фугас?" +msgstr "Прикопать противопехотную мину?" #. ~ Use action done_message for {'str': 'land mine'}. #: lang/json/TOOL_from_json.py msgid "You set the land mine." -msgstr "Вы установили фугас." +msgstr "Вы установили противопехотную мину." #. ~ Use action done_message for {'str': 'land mine'}. #: lang/json/TOOL_from_json.py msgid "You bury the land mine." -msgstr "Вы прикопали фугас." +msgstr "Вы прикопали противопехотную мину." #. ~ Description for {'str': 'land mine'} #: lang/json/TOOL_from_json.py @@ -114727,7 +113185,7 @@ msgid_plural "shotgun traps" msgstr[0] "растяжка с дробовиком" msgstr[1] "растяжки с дробовиком" msgstr[2] "растяжек с дробовиком" -msgstr[3] "растяжка с дробовиком" +msgstr[3] "растяжки с дробовиком" #. ~ Use action done_message for {'str': 'shotgun trap'}. #: lang/json/TOOL_from_json.py @@ -114752,7 +113210,7 @@ msgid_plural "tripwire traps" msgstr[0] "ловушка «растяжка»" msgstr[1] "ловушки «растяжка»" msgstr[2] "ловушек «растяжка»" -msgstr[3] "ловушка «растяжка»" +msgstr[3] "ловушки «растяжка»" #. ~ Use action done_message for {'str': 'tripwire trap'}. #: lang/json/TOOL_from_json.py @@ -114777,7 +113235,7 @@ msgid_plural "wood axes" msgstr[0] "топор дровосека" msgstr[1] "топора дровосека" msgstr[2] "топоров дровосека" -msgstr[3] "топор дровосека" +msgstr[3] "топоры дровосека" #. ~ Description for {'str': 'wood axe'} #: lang/json/TOOL_from_json.py @@ -114793,7 +113251,7 @@ msgid_plural "chainsaws (off)" msgstr[0] "бензопила (выкл)" msgstr[1] "бензопилы (выкл)" msgstr[2] "бензопил (выкл)" -msgstr[3] "бензопила (выкл)" +msgstr[3] "бензопилы (выкл)" #. ~ Description for {'str': 'chainsaw (off)', 'str_pl': 'chainsaws (off)'} #: lang/json/TOOL_from_json.py @@ -114812,7 +113270,7 @@ msgid_plural "chainsaws (on)" msgstr[0] "бензопила (вкл)" msgstr[1] "бензопилы (вкл)" msgstr[2] "бензопил (вкл)" -msgstr[3] "бензопила (вкл)" +msgstr[3] "бензопилы (вкл)" #. ~ Description for {'str': 'chainsaw (on)', 'str_pl': 'chainsaws (on)'} #: lang/json/TOOL_from_json.py @@ -114824,9 +113282,9 @@ msgstr "" msgid "circular saw (off)" msgid_plural "circular saws (off)" msgstr[0] "дисковая пила (выкл)" -msgstr[1] "дисковых пилы (выкл)" +msgstr[1] "дисковые пилы (выкл)" msgstr[2] "дисковых пил (выкл)" -msgstr[3] "дисковая пила (выкл)" +msgstr[3] "дисковые пилы (выкл)" #. ~ Use action msg for {'str': 'circular saw (off)', 'str_pl': 'circular saws #. (off)'}. @@ -114850,9 +113308,9 @@ msgstr "" msgid "circular saw (on)" msgid_plural "circular saws (on)" msgstr[0] "дисковая пила (вкл)" -msgstr[1] "дисковых пилы (вкл)" +msgstr[1] "дисковые пилы (вкл)" msgstr[2] "дисковых пил (вкл)" -msgstr[3] "дисковая пила (вкл)" +msgstr[3] "дисковые пилы (вкл)" #. ~ Description for {'str': 'circular saw (on)', 'str_pl': 'circular saws #. (on)'} @@ -114870,7 +113328,7 @@ msgid_plural "copper axes" msgstr[0] "медный топор" msgstr[1] "медных топора" msgstr[2] "медных топоров" -msgstr[3] "медный топор" +msgstr[3] "медные топоры" #. ~ Description for {'str': 'copper axe'} #: lang/json/TOOL_from_json.py @@ -114887,7 +113345,7 @@ msgid_plural "electric chainsaws (off)" msgstr[0] "электропила (выкл)" msgstr[1] "электропилы (выкл)" msgstr[2] "электропил (выкл)" -msgstr[3] "электропила (выкл)" +msgstr[3] "электропилы (выкл)" #. ~ Description for {'str': 'electric chainsaw (off)', 'str_pl': 'electric #. chainsaws (off)'} @@ -114907,7 +113365,7 @@ msgid_plural "electric chainsaws (on)" msgstr[0] "электропила (вкл)" msgstr[1] "электропилы (вкл)" msgstr[2] "электропил (вкл)" -msgstr[3] "электропила (вкл)" +msgstr[3] "электропилы (вкл)" #. ~ Description for {'str': 'electric chainsaw (on)', 'str_pl': 'electric #. chainsaws (on)'} @@ -114924,7 +113382,7 @@ msgid_plural "stone hand axes" msgstr[0] "каменное рубило" msgstr[1] "каменных рубила" msgstr[2] "каменных рубил" -msgstr[3] "каменное рубило" +msgstr[3] "каменные рубила" #. ~ Description for {'str': 'stone hand axe'} #: lang/json/TOOL_from_json.py @@ -114941,7 +113399,7 @@ msgid_plural "metal hand axes" msgstr[0] "металлическое рубило" msgstr[1] "металлических рубила" msgstr[2] "металлических рубил" -msgstr[3] "металлическое рубило" +msgstr[3] "металлические рубила" #. ~ Description for {'str': 'metal hand axe'} #: lang/json/TOOL_from_json.py @@ -114950,9 +113408,9 @@ msgid "" " a cutting edge. It works passably well as an axe but really can't compare " "to a proper axe." msgstr "" -"Кусок стали, один его край обработан молотком в какое-то подобие режущей " -"кромки. Им можно пользоваться как топором, но он никогда не сравнится с " -"настоящим инструментом." +"Кусок стали, один его край сбит в подобие режущей кромки. Им можно " +"пользоваться как топором, но он никогда не сравнится с настоящим " +"инструментом." #: lang/json/TOOL_from_json.py msgid "stone adze" @@ -114960,7 +113418,7 @@ msgid_plural "stone adzes" msgstr[0] "каменное тесло" msgstr[1] "каменных тесла" msgstr[2] "каменных тёсел" -msgstr[3] "каменное тесло" +msgstr[3] "каменные тесла" #. ~ Description for {'str': 'stone adze'} #: lang/json/TOOL_from_json.py @@ -114974,7 +113432,7 @@ msgid_plural "stone axes" msgstr[0] "каменный топор" msgstr[1] "каменных топора" msgstr[2] "каменных топоров" -msgstr[3] "каменный топор" +msgstr[3] "каменные топоры" #. ~ Description for {'str': 'stone axe'} #: lang/json/TOOL_from_json.py @@ -114991,7 +113449,7 @@ msgid_plural "wood saws" msgstr[0] "пила по дереву" msgstr[1] "пилы по дереву" msgstr[2] "пил по дереву" -msgstr[3] "пила по дереву" +msgstr[3] "пилы по дереву" #. ~ Description for {'str': 'wood saw'} #: lang/json/TOOL_from_json.py @@ -115085,9 +113543,9 @@ msgstr "" msgid "brick kiln" msgid_plural "brick kilns" msgstr[0] "кирпичная печь" -msgstr[1] "кирпичных печи" +msgstr[1] "кирпичные печи" msgstr[2] "кирпичных печей" -msgstr[3] "кирпичная печь" +msgstr[3] "кирпичные печи" #. ~ Description for {'str': 'brick kiln'} #: lang/json/TOOL_from_json.py @@ -115105,7 +113563,7 @@ msgid_plural "paint chippers" msgstr[0] "малярный скребок" msgstr[1] "малярных скребка" msgstr[2] "малярных скребков" -msgstr[3] "малярный скребок" +msgstr[3] "малярные скребки" #. ~ Description for {'str': 'paint chipper'} #: lang/json/TOOL_from_json.py @@ -115155,7 +113613,7 @@ msgid_plural "concrete mixers" msgstr[0] "бетономешалка" msgstr[1] "бетономешалки" msgstr[2] "бетономешалок" -msgstr[3] "бетономешалка" +msgstr[3] "бетономешалки" #. ~ Description for {'str': 'concrete mixer'} #: lang/json/TOOL_from_json.py @@ -115170,9 +113628,9 @@ msgstr "" msgid "cordless drill" msgid_plural "cordless drills" msgstr[0] "аккумуляторная дрель" -msgstr[1] "аккумуляторных дрели" +msgstr[1] "аккумуляторные дрели" msgstr[2] "аккумуляторных дрелей" -msgstr[3] "аккумуляторная дрель" +msgstr[3] "аккумуляторные дрели" #. ~ Description for {'str': 'cordless drill'} #: lang/json/TOOL_from_json.py @@ -115186,7 +113644,7 @@ msgid_plural "electric jackhammers" msgstr[0] "электрический отбойный молоток" msgstr[1] "электрических отбойных молотка" msgstr[2] "электрических отбойных молотков" -msgstr[3] "электрический отбойный молоток" +msgstr[3] "электрические отбойные молотки" #. ~ Description for {'str': 'electric jackhammer'} #: lang/json/TOOL_from_json.py @@ -115205,7 +113663,7 @@ msgid_plural "hacksaws" msgstr[0] "ножовка по металлу" msgstr[1] "ножовки по металлу" msgstr[2] "ножовок по металлу" -msgstr[3] "ножовка по металлу" +msgstr[3] "ножовки по металлу" #. ~ Description for {'str': 'hacksaw'} #: lang/json/TOOL_from_json.py @@ -115218,7 +113676,7 @@ msgid_plural "hammers" msgstr[0] "молоток" msgstr[1] "молотка" msgstr[2] "молотков" -msgstr[3] "молоток" +msgstr[3] "молотки" #. ~ Description for {'str': 'hammer'} #: lang/json/TOOL_from_json.py @@ -115237,7 +113695,7 @@ msgid_plural "hand drills" msgstr[0] "ручная дрель" msgstr[1] "ручные дрели" msgstr[2] "ручных дрелей" -msgstr[3] "ручная дрель" +msgstr[3] "ручные дрели" #. ~ Description for {'str': 'hand drill'} #: lang/json/TOOL_from_json.py @@ -115254,7 +113712,7 @@ msgid_plural "rubber hoses" msgstr[0] "резиновый шланг" msgstr[1] "резиновых шланга" msgstr[2] "резиновых шлангов" -msgstr[3] "резиновый шланг" +msgstr[3] "резиновые шланги" #. ~ Description for {'str': 'rubber hose'} #: lang/json/TOOL_from_json.py @@ -115271,7 +113729,7 @@ msgid_plural "bottle jacks" msgstr[0] "бутылочный домкрат" msgstr[1] "бутылочных домкрата" msgstr[2] "бутылочных домкратов" -msgstr[3] "бутылочный домкрат" +msgstr[3] "бутылочные домкраты" #. ~ Description for {'str': 'bottle jack'} #: lang/json/TOOL_from_json.py @@ -115284,7 +113742,7 @@ msgid_plural "makeshift jacks" msgstr[0] "самодельный домкрат" msgstr[1] "самодельных домкрата" msgstr[2] "самодельных домкратов" -msgstr[3] "самодельный домкрат" +msgstr[3] "самодельные домкраты" #. ~ Description for {'str': 'makeshift jack'} #: lang/json/TOOL_from_json.py @@ -115301,7 +113759,7 @@ msgid_plural "scissor jacks" msgstr[0] "винтовой домкрат" msgstr[1] "винтовых домкрата" msgstr[2] "винтовых домкратов" -msgstr[3] "винтовой домкрат" +msgstr[3] "винтовые домкраты" #. ~ Description for {'str': 'scissor jack'} #. ~ Description for TEST scissor jack @@ -115315,7 +113773,7 @@ msgid_plural "jackhammers" msgstr[0] "отбойный молоток" msgstr[1] "отбойных молотка" msgstr[2] "отбойных молотков" -msgstr[3] "отбойный молоток" +msgstr[3] "отбойные молотки" #. ~ Description for {'str': 'jackhammer'} #: lang/json/TOOL_from_json.py @@ -115333,7 +113791,7 @@ msgid_plural "electric kilns" msgstr[0] "электрическая печь" msgstr[1] "электрические печи" msgstr[2] "электрических печей" -msgstr[3] "электрическая печь" +msgstr[3] "электрические печи" #. ~ Description for {'str': 'electric kiln'} #: lang/json/TOOL_from_json.py @@ -115354,7 +113812,7 @@ msgid_plural "gunsmith repair kits" msgstr[0] "ремкомплект оружейника" msgstr[1] "ремкомплекта оружейника" msgstr[2] "ремкомплектов оружейника" -msgstr[3] "ремкомплект оружейника" +msgstr[3] "ремкомплекты оружейника" #. ~ Description for {'str': 'gunsmith repair kit'} #: lang/json/TOOL_from_json.py @@ -115363,10 +113821,9 @@ msgid "" "standard batteries, it is a vital tool for long-term firearms maintenance. " "It requires 25 charges of battery power per use." msgstr "" -"Это полный набор инструментов, используется для ремонта повреждённого " -"огнестрельного оружия. Питается от батареек и необходим для поддержания " -"работоспособности оружия в течение долгого времени. Каждое использование " -"расходует 25 зарядов батареи." +"Полный набор инструментов для ремонта повреждённого огнестрельного оружия. " +"Питается от батареек и необходим для поддержания работоспособности оружия в " +"течение долгого времени. Каждое использование расходует 25 зарядов батареи." #: lang/json/TOOL_from_json.py msgid "makeshift hammer" @@ -115374,7 +113831,7 @@ msgid_plural "makeshift hammers" msgstr[0] "самодельный молоток" msgstr[1] "самодельных молотка" msgstr[2] "самодельных молотков" -msgstr[3] "самодельный молоток" +msgstr[3] "самодельные молотки" #. ~ Description for {'str': 'makeshift hammer'} #: lang/json/TOOL_from_json.py @@ -115407,9 +113864,9 @@ msgstr "" msgid "metallic smoother" msgid_plural "metallic smoothers" msgstr[0] "металлическая затирка" -msgstr[1] "металлических затирки" +msgstr[1] "металлические затирки" msgstr[2] "металлических затирок" -msgstr[3] "металлическая затирка" +msgstr[3] "металлические затирки" #. ~ Description for {'str': 'metallic smoother'} #: lang/json/TOOL_from_json.py @@ -115418,8 +113875,7 @@ msgid "" "construction projects." msgstr "" "Этот металлический инструмент часто используется для сглаживания бетона или " -"раствора, в строительстве. Также можно использовать его в качестве " -"импровизированного головокрушителя." +"раствора, в строительстве." #: lang/json/TOOL_from_json.py msgid "misc repair kit" @@ -115448,7 +113904,7 @@ msgid_plural "plastic molds" msgstr[0] "форма для пластика" msgstr[1] "формы для пластика" msgstr[2] "форм для пластика" -msgstr[3] "форма для пластика" +msgstr[3] "формы для пластика" #. ~ Description for {'str': 'plastic mold'} #: lang/json/TOOL_from_json.py @@ -115465,7 +113921,7 @@ msgid_plural "multi-tools" msgstr[0] "мультитул" msgstr[1] "мультитула" msgstr[2] "мультитулов" -msgstr[3] "мультитул" +msgstr[3] "мультитулы" #. ~ Description for {'str': 'multi-tool'} #: lang/json/TOOL_from_json.py @@ -115473,8 +113929,8 @@ msgid "" "A cleverly designed all-in-one tool which combines several smaller tools " "into the handles of a pair of pliers." msgstr "" -"Разумно спроектированный инструмент всё-в-одном. В полых ручках пассатижей " -"спрятаны различные мелкие инструменты." +"Хитро сделанный инструмент всё-в-одном. В полых ручках пассатижей спрятаны " +"различные мелкие инструменты." #: lang/json/TOOL_from_json.py msgid "acetylene torch" @@ -115482,7 +113938,7 @@ msgid_plural "acetylene torches" msgstr[0] "ацетиленовая горелка" msgstr[1] "ацетиленовые горелки" msgstr[2] "ацетиленовых горелок" -msgstr[3] "ацетиленовая горелка" +msgstr[3] "ацетиленовые горелки" #. ~ Description for {'str': 'acetylene torch', 'str_pl': 'acetylene torches'} #: lang/json/TOOL_from_json.py @@ -115505,7 +113961,7 @@ msgid_plural "paint brushes" msgstr[0] "кисть для покраски" msgstr[1] "кисти для покраски" msgstr[2] "кистей для покраски" -msgstr[3] "кисть для покраски" +msgstr[3] "кисти для покраски" #. ~ Description for {'str': 'paint brush', 'str_pl': 'paint brushes'} #: lang/json/TOOL_from_json.py @@ -115518,7 +113974,7 @@ msgid_plural "pickaxes" msgstr[0] "кирка" msgstr[1] "кирки" msgstr[2] "кирок" -msgstr[3] "кирка" +msgstr[3] "кирки" #. ~ Description for {'str': 'pickaxe'} #: lang/json/TOOL_from_json.py @@ -115570,7 +114026,7 @@ msgid_plural "electric polishers" msgstr[0] "электрический полировщик" msgstr[1] "электрических полировщика" msgstr[2] "электрических полировщиков" -msgstr[3] "электрический полировщик" +msgstr[3] "электрические полировщики" #. ~ Description for {'str': 'electric polisher'} #: lang/json/TOOL_from_json.py @@ -115587,7 +114043,7 @@ msgid_plural "stone hammers" msgstr[0] "каменный молоток" msgstr[1] "каменных молотка" msgstr[2] "каменных молотков" -msgstr[3] "каменный молоток" +msgstr[3] "каменные молотки" #. ~ Description for {'str': 'stone hammer'} #: lang/json/TOOL_from_json.py @@ -115604,7 +114060,7 @@ msgid_plural "screwdrivers" msgstr[0] "отвёртка" msgstr[1] "отвёртки" msgstr[2] "отвёрток" -msgstr[3] "отвёртка" +msgstr[3] "отвёртки" #. ~ Description for {'str': 'screwdriver'} #. ~ Description for TEST screwdriver @@ -115622,7 +114078,7 @@ msgid_plural "screwdriver sets" msgstr[0] "набор отвёрток" msgstr[1] "набора отвёрток" msgstr[2] "наборов отвёрток" -msgstr[3] "набор отвёрток" +msgstr[3] "наборы отвёрток" #. ~ Description for {'str': 'screwdriver set'} #: lang/json/TOOL_from_json.py @@ -115639,7 +114095,7 @@ msgid_plural "firearm repair kits" msgstr[0] "ремкомплект огнестрельного оружия" msgstr[1] "ремкомплекта огнестрельного оружия" msgstr[2] "ремкомплектов огнестрельного оружия" -msgstr[3] "ремкомплект огнестрельного оружия" +msgstr[3] "ремкомплекты огнестрельного оружия" #. ~ Description for {'str': 'firearm repair kit'} #: lang/json/TOOL_from_json.py @@ -115659,7 +114115,7 @@ msgid_plural "soldering irons" msgstr[0] "паяльник" msgstr[1] "паяльника" msgstr[2] "паяльников" -msgstr[3] "паяльник" +msgstr[3] "паяльники" #. ~ Description for {'str': 'soldering iron'} #. ~ Description for TEST soldering iron @@ -115679,7 +114135,7 @@ msgid_plural "toolboxes" msgstr[0] "ящик с инструментами" msgstr[1] "ящика с инструментами" msgstr[2] "ящиков с инструментами" -msgstr[3] "ящик с инструментами" +msgstr[3] "ящики с инструментами" #. ~ Description for {'str': 'toolbox', 'str_pl': 'toolboxes'} #: lang/json/TOOL_from_json.py @@ -115693,10 +114149,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "workshop toolbox" msgid_plural "workshop toolboxes" -msgstr[0] "ящик с инструментами" -msgstr[1] "ящика с инструментами" -msgstr[2] "ящиков с инструментами" -msgstr[3] "ящики с инструментами" +msgstr[0] "большой ящик с инструментами" +msgstr[1] "больших ящика с инструментами" +msgstr[2] "больших ящиков с инструментами" +msgstr[3] "большие ящики с инструментами" #. ~ Description for {'str': 'workshop toolbox', 'str_pl': 'workshop #. toolboxes'} @@ -115762,16 +114218,16 @@ msgid "" msgstr "" "Примитивный сварочный аппарат, собранный из нескольких трансформаторов, " "проводов, самодельного держателя электрода и полного пренебрежения техникой " -"безопасности. Он не так эффективен, как прибор промышленного производства, " -"но на крайний случай сгодится." +"безопасности. Он не так эффективен, как настоящий, но на крайний случай " +"сгодится." #: lang/json/TOOL_from_json.py msgid "wooden smoother" msgid_plural "wooden smoothers" msgstr[0] "деревянная затирка" -msgstr[1] "деревянных затирки" +msgstr[1] "деревянные затирки" msgstr[2] "деревянных затирок" -msgstr[3] "деревянная затирка" +msgstr[3] "деревянные затирки" #. ~ Description for {'str': 'wooden smoother'} #: lang/json/TOOL_from_json.py @@ -115800,10 +114256,10 @@ msgstr "Клубок шерстяных волокон. Их можно пере #: lang/json/TOOL_from_json.py msgid "X-Acto knife" msgid_plural "X-Acto knives" -msgstr[0] "канцелярский нож" -msgstr[1] "канцелярских ножа" -msgstr[2] "канцелярских ножей" -msgstr[3] "канцелярский нож" +msgstr[0] "модельный нож" +msgstr[1] "модельных ножа" +msgstr[2] "модельных ножей" +msgstr[3] "модельные ножи" #. ~ Description for {'str': 'X-Acto knife', 'str_pl': 'X-Acto knives'} #: lang/json/TOOL_from_json.py @@ -115815,7 +114271,7 @@ msgid "" msgstr "" "Маленький, но очень острый модельный нож, предназначен для работы с " "текстильными изделиями, полезен при создании предметов. Наносит неплохие " -"повреждения, но из-за его маленького кончика нужно много умения, чтобы " +"повреждения, но из-за его маленького кончика нужно очень постараться, чтобы " "попасть во врага. Слишком мал для разделки трупов." #: lang/json/TOOL_from_json.py @@ -115824,7 +114280,7 @@ msgid_plural "wrenches" msgstr[0] "гаечный ключ" msgstr[1] "гаечных ключа" msgstr[2] "гаечных ключей" -msgstr[3] "гаечный ключ" +msgstr[3] "гаечные ключы" #. ~ Description for {'str': 'wrench', 'str_pl': 'wrenches'} #: lang/json/TOOL_from_json.py @@ -115876,7 +114332,7 @@ msgid_plural "jumper cables" msgstr[0] "соединительный кабель" msgstr[1] "соединительных кабеля" msgstr[2] "соединительных кабелей" -msgstr[3] "соединительный кабель" +msgstr[3] "соединительные кабели" #. ~ Description for {'str': 'jumper cable'} #: lang/json/TOOL_from_json.py @@ -115913,7 +114369,7 @@ msgid_plural "heavy-duty cables" msgstr[0] "прочный кабель" msgstr[1] "прочных кабеля" msgstr[2] "прочных кабелей" -msgstr[3] "прочный кабель" +msgstr[3] "прочные кабели" #. ~ Description for {'str': 'heavy-duty cable'} #: lang/json/TOOL_from_json.py @@ -115925,7 +114381,7 @@ msgid "" msgstr "" "Длинный, толстый, мощный кабель с зажимами на концах. Похоже, вы могли бы " "использовать его для соединения двух автомобилей друг с другом, хотя вы " -"ожидаете заметные потери мощности. Его можно подключить и к другим " +"ожидаете заметную потерю мощности. Его можно подключить и к другим " "электрическим системам." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py @@ -115934,7 +114390,7 @@ msgid_plural "shiny cables" msgstr[0] "сияющий кабель" msgstr[1] "сияющих кабеля" msgstr[2] "сияющих кабелей" -msgstr[3] "сияющий кабель" +msgstr[3] "сияющие кабели" #. ~ Description for {'str': 'shiny cable'} #: lang/json/TOOL_from_json.py @@ -115953,7 +114409,7 @@ msgid_plural "military black boxes" msgstr[0] "военный чёрный ящик" msgstr[1] "военных чёрных ящика" msgstr[2] "военных чёрных ящиков" -msgstr[3] "военный чёрный ящик" +msgstr[3] "военные чёрные ящики" #. ~ Description for {'str': 'military black box', 'str_pl': 'military black #. boxes'} @@ -115973,7 +114429,7 @@ msgid_plural "minireactors" msgstr[0] "мини-реактор" msgstr[1] "мини-реактора" msgstr[2] "мини-реакторов" -msgstr[3] "мини-реактор" +msgstr[3] "мини-реакторы" #. ~ Description for {'str': 'minireactor'} #: lang/json/TOOL_from_json.py @@ -115988,7 +114444,7 @@ msgid_plural "rechargeable battery mods" msgstr[0] "модификация: аккумулятор" msgstr[1] "модификации: аккумулятор" msgstr[2] "модификаций: аккумулятор" -msgstr[3] "модификация: аккумулятор" +msgstr[3] "модификации: аккумулятор" #. ~ Description for rechargeable battery mod #: lang/json/TOOL_from_json.py @@ -116025,7 +114481,7 @@ msgid_plural "Granades" msgstr[0] "Гранада" msgstr[1] "Гранады" msgstr[2] "Гранад" -msgstr[3] "Гранада" +msgstr[3] "Гранады" #. ~ Description for Granade #. ~ Description for {'str': 'Granade'} @@ -116043,7 +114499,7 @@ msgid_plural "active Granades" msgstr[0] "Гранада (активно)" msgstr[1] "Гранады (активно)" msgstr[2] "Гранад (активно)" -msgstr[3] "Гранада (активно)" +msgstr[3] "Гранады (активно)" #. ~ Description for active Granade #. ~ Description for {'str': 'active Granade'} @@ -116117,11 +114573,11 @@ msgid "" "will identify you as a friendly, and attack all enemies with its revolving " "laser cannons." msgstr "" -"Невероятная мерзость. Использование этого предмета, по сути, каннибализм во " -"всю сраку. Необходимо активировать и выбрать место на земле для установки. " -"Если турель была успешно перепрограммирована, то она будет идентифицировать " -"вас как дружественный объект и атаковать всех врагов из роторных лазерных " -"пушек." +"Невероятная мерзость. Использование этого предмета ничем не лучше " +"каннибализма. Необходимо активировать и выбрать место на земле для " +"установки. Если турель была успешно перепрограммирована, то она будет " +"идентифицировать вас как дружественный объект и атаковать всех врагов из " +"роторных лазерных пушек." #. ~ Description for {'str': 'inactive chicken walker'} #: lang/json/TOOL_from_json.py @@ -116193,10 +114649,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "precision solderers" msgid_plural "precision solderers" -msgstr[0] "паяльничек" -msgstr[1] "паяльничка" -msgstr[2] "паяльничков" -msgstr[3] "паяльнички" +msgstr[0] "паяльный набор" +msgstr[1] "паяльных набора" +msgstr[2] "паяльных наборов" +msgstr[3] "паяльные наборы" #: lang/json/TOOL_from_json.py msgid "pseudo atomic butter churn" @@ -116543,10 +114999,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "CRIT mess kit" msgid_plural "CRIT mess kits" -msgstr[0] "кухонный набор К.Р.И.Т" -msgstr[1] "кухонных набора К.Р.И.Т" -msgstr[2] "кухонных наборов К.Р.И.Т" -msgstr[3] "кухонные наборы К.Р.И.Т" +msgstr[0] "кухонный набор К.Р.И.Т." +msgstr[1] "кухонных набора К.Р.И.Т." +msgstr[2] "кухонных наборов К.Р.И.Т." +msgstr[3] "кухонные наборы К.Р.И.Т." #. ~ Description for CRIT mess kit #: lang/json/TOOL_from_json.py @@ -116558,7 +115014,7 @@ msgid "" "life but does have a rather small (useless) solar panel installed. Also " "comes with an absurdly small integrated fpoon and knife spatula set!" msgstr "" -"Раскладной стандартный кухонный набор К.Р.И.Т, разработанный для удобной " +"Раскладной стандартный кухонный набор К.Р.И.Т., разработанный для удобной " "переноски на основе обычного армейского набора. Он сделан из тонких листов " "нержавеющего суперсплава с керамической облицовкой. К сожалению, в такой " "компактной форме нет места для больших аккумуляторов, зато имеется " @@ -116568,34 +115024,32 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "CRIT service knife" msgid_plural "CRIT service knives" -msgstr[0] "табельный нож К.Р.И.Т" -msgstr[1] "табельных ножа К.Р.И.Т" -msgstr[2] "табельных ножей К.Р.И.Т" -msgstr[3] "табельные ножи К.Р.И.Т" +msgstr[0] "табельный нож К.Р.И.Т." +msgstr[1] "табельных ножа К.Р.И.Т." +msgstr[2] "табельных ножей К.Р.И.Т." +msgstr[3] "табельные ножи К.Р.И.Т." #. ~ Description for {'str': 'CRIT service knife', 'str_pl': 'CRIT service #. knives'} #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked" -" pry bar at the bottom for opening simple things and bashing in heads. " -"Matte black finish helps it avoid flash in dim-light situations and tanto " -"tip allows for light-armor penetration. Blade length allows for decent " -"reach." +"A modified trench knife. Has a knuckleduster guard and a small, hooked pry " +"bar at the bottom. The matte black finish helps it avoid flash in dim-light " +"situations and tanto tip allows for light-armor penetration. Blade length " +"allows for decent reach." msgstr "" -"Стандартный нож К.Р.И.Т. Гарда выполнена в виде кастета, а на конце рукояти " -"есть маленький крючковатый рычаг для отпирания простых замков и разбивания " -"голов. Благодаря матовому чёрному покрытию нож не блестит в полумраке, а " -"заострённый кончик позволяет пробивать лёгкую броню. Длина лезвия довольно " -"приличная." +"Модифицированный окопный нож. Гарда выполнена в виде кастета, а на конце " +"рукояти есть маленький крючковатый рычаг. Благодаря матовому чёрному " +"покрытию нож не блестит в полумраке, а заострённый кончик позволяет " +"пробивать лёгкую броню. Длина лезвия довольно приличная." #: lang/json/TOOL_from_json.py msgid "pair of CRIT Knuckledusters" msgid_plural "pairs of CRIT Knuckledusters" -msgstr[0] "пара кастетов К.Р.И.Т" -msgstr[1] "пары кастетов К.Р.И.Т" -msgstr[2] "пар кастетов К.Р.И.Т" -msgstr[3] "пары кастетов К.Р.И.Т" +msgstr[0] "пара кастетов К.Р.И.Т." +msgstr[1] "пары кастетов К.Р.И.Т." +msgstr[2] "пар кастетов К.Р.И.Т." +msgstr[3] "пары кастетов К.Р.И.Т." #. ~ Description for {'str': 'pair of CRIT Knuckledusters', 'str_pl': 'pairs #. of CRIT Knuckledusters'} @@ -116610,17 +115064,17 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "CRIT Reso-blade" msgid_plural "CRIT Reso-blades" -msgstr[0] "резонирующий клинок К.Р.И.Т" -msgstr[1] "резонирующих клинка К.Р.И.Т" -msgstr[2] "резонирующих клинков К.Р.И.Т" -msgstr[3] "резонирующие клинки К.Р.И.Т" +msgstr[0] "резонирующий клинок К.Р.И.Т." +msgstr[1] "резонирующих клинка К.Р.И.Т." +msgstr[2] "резонирующих клинков К.Р.И.Т." +msgstr[3] "резонирующие клинки К.Р.И.Т." #. ~ Description for CRIT Reso-blade #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " -"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " -"thrums from within." +"CRIT melee weapon. Alien runes adorn the carbon steel blade. The blade " +"oddly seems to lack sharpness, and yet upon closer oberservation, a hum of " +"energy thrums from within." msgstr "" "Холодное оружие К.Р.И.Т. Лезвие из углеродистой стали покрыто неизвестными " "рунами. Странно, но клинок вовсе не острый, а при пристальном обследовании " @@ -116652,10 +115106,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "CRIT entrenching tool" msgid_plural "CRIT entrenching tools" -msgstr[0] "сапёрная лопатка К.Р.И.Т" -msgstr[1] "сапёрных лопатки К.Р.И.Т" -msgstr[2] "сапёрных лопаток К.Р.И.Т" -msgstr[3] "сапёрные лопатки К.Р.И.Т" +msgstr[0] "сапёрная лопатка К.Р.И.Т." +msgstr[1] "сапёрных лопатки К.Р.И.Т." +msgstr[2] "сапёрных лопаток К.Р.И.Т." +msgstr[3] "сапёрные лопатки К.Р.И.Т." #. ~ Description for CRIT entrenching tool #: lang/json/TOOL_from_json.py @@ -116671,10 +115125,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "CRIT night stick" msgid_plural "CRIT night sticks" -msgstr[0] "тонфа К.Р.И.Т" -msgstr[1] "тонфы К.Р.И.Т" -msgstr[2] "тонф К.Р.И.Т" -msgstr[3] "тонфы К.Р.И.Т" +msgstr[0] "тонфа К.Р.И.Т." +msgstr[1] "тонфы К.Р.И.Т." +msgstr[2] "тонф К.Р.И.Т." +msgstr[3] "тонфы К.Р.И.Т." #. ~ Description for CRIT night stick #: lang/json/TOOL_from_json.py @@ -117087,7 +115541,7 @@ msgid_plural "Earthshaper runes" msgstr[0] "Земная руна" msgstr[1] "Земные руны" msgstr[2] "Земных рун" -msgstr[3] "Земная руна" +msgstr[3] "Земные руны" #. ~ Description for {'str': 'Earthshaper rune'} #: lang/json/TOOL_from_json.py @@ -117104,7 +115558,7 @@ msgid_plural "Kelvinist runes" msgstr[0] "Кельвинистская руна" msgstr[1] "Кельвинистские руны" msgstr[2] "Кельвинистских рун" -msgstr[3] "Кельвинистская руна" +msgstr[3] "Кельвинистские руны" #. ~ Description for {'str': 'Kelvinist rune'} #: lang/json/TOOL_from_json.py @@ -117263,7 +115717,7 @@ msgid_plural "everburning torches" msgstr[0] "вечногорящий факел" msgstr[1] "вечногорящих факела" msgstr[2] "вечногорящих факелов" -msgstr[3] "вечногорящие факелы" +msgstr[3] "вечногорящие факела" #. ~ Description for {'str': 'everburning torch', 'str_pl': 'everburning #. torches'} @@ -117969,1381 +116423,6 @@ msgstr "" " демонического паука для возможности переплавки слитков магических металлов " "в подходящие формы." -#: lang/json/TOOL_from_json.py -msgid "Dusk" -msgid_plural "Dusks" -msgstr[0] "Сумрак" -msgstr[1] "Сумрака" -msgstr[2] "Сумерек" -msgstr[3] "Сумерки" - -#. ~ Description for Dusk -#: lang/json/TOOL_from_json.py -msgid "" -"A longsword, made out of a very dark, almost black metal. It seems to hold " -"a greater edge than usual steel blades and feels …more comfortable in the " -"hand. While the blade is made out of this dark metal, the crossguard and " -"the pommel seem to be made out of a brighter material, which feels " -"abnormally cool to the touch." -msgstr "" -"Длинный меч из очень тёмного, почти чёрного металла. Его лезвие кажется " -"больше, чем у обычных стальных клинков и ощущается… удобнее в руке. Хотя сам" -" клинок из тёмного металла, гарда и навершие эфеса сделаны из более светлого" -" материала, необычно холодного на ощупь." - -#. ~ Description for disarmed defense turret -#: lang/json/TOOL_from_json.py -msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "" -"Автоматическая оборонительная турель. Ей не хватает встроенного оружия." - -#. ~ Description for disarmed military turret -#: lang/json/TOOL_from_json.py -msgid "An automated military turret. It lacks an integrated weapon." -msgstr "Автоматическая военная турель. Ей не хватает встроенного оружия." - -#. ~ Description for disarmed advanced turret -#: lang/json/TOOL_from_json.py -msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "Автоматическая продвинутая турель. Ей не хватает встроенного оружия." - -#: lang/json/TOOL_from_json.py -msgid "inactive 9mm defense turret" -msgid_plural "inactive 9mm defense turrets" -msgstr[0] "неактивная 9 мм оборонительная турель" -msgstr[1] "неактивные 9 мм оборонительные турели" -msgstr[2] "неактивных 9 мм оборонительных турелей" -msgstr[3] "неактивная 9 мм оборонительная турель" - -#. ~ Description for inactive 9mm defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 9mm defense turret. Up to 100 standard 9mm rounds will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Неактивная 9 мм оборонительная турель. При активации из вашего инвентаря " -"автоматически загружаются до 100 стандартных 9-миллиметровых патронов. " -"Поместите турель, и она будет дружественна вам с помощью своего " -"усовершенствованного программного обеспечения IFF. В случае сбоя обратитесь " -"к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive shotgun defense turret" -msgid_plural "inactive shotgun defense turrets" -msgstr[0] "неактивная оборонительная турель с дробовиком" -msgstr[1] "неактивные оборонительные турели с дробовиком" -msgstr[2] "неактивных оборонительных турелей с дробовиком" -msgstr[3] "неактивная оборонительная турель с дробовиком" - -#. ~ Description for inactive shotgun defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive shotgun defense turret. Up to 100 standard 12ga shells will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"Неактивная оборонительная турель с дробовиком. При активации из вашего " -"инвентаря автоматически загружаются до 100 стандартных 12ga патронов из " -"вашего инвентаря в турель. Поместите турель, и она будет дружественна вам с " -"помощью своего усовершенствованного программного обеспечения IFF. В случае " -"сбоя обратитесь к руководству по безопасности." - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riotcontrol turret. Up to 50 standard 40mm less-than-lethal " -"beanbag canisters will be automatically loaded from your inventory into the " -"turret upon activation. Place the turret and it will ID you as friendly " -"with its advanced IFF software. Consult your safety manual in the event of " -"a malfunction." -msgstr "" -"Неактивная турель осназа. При активации из инвентаря автоматически " -"загружаются до 50 стандартных нелетальных 40-миллиметровых гранат. " -"Установите турель, и она будет дружественна вам с помощью своего " -"усовершенствованного программного обеспечения IFF. В случае сбоя обратитесь " -"к руководству по безопасности." - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riot control turret. Up to 50 standard 40mm teargas canisters " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Неактивная турель осназа. При активации из инвентаря автоматически " -"загружаются до 50 стандартных газовых 40-миллиметровых гранат. Установите " -"турель, и она будет дружественна вам с помощью своего усовершенствованного " -"программного обеспечения IFF. В случае сбоя обратитесь к руководству по " -"безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive 5.56mm military turret" -msgid_plural "inactive 5.56mm military turrets" -msgstr[0] "неактивная 5.56 мм военная турель" -msgstr[1] "неактивные 5.56 мм военные турели" -msgstr[2] "неактивных 5.56 мм военных турелей" -msgstr[3] "неактивная 5.56 мм военная турель" - -#. ~ Description for inactive 5.56mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 5.56mm military turret. Up to 100 standard 5.56mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Неактивная 5.56-миллиметровая военная турель. После активации из инвентаря " -"автоматически загружаются 100 стандартных 5.56-миллиметровых патронов НАТО. " -"Установите турель, и она будет дружественна вам с помощью своего " -"усовершенствованного программного обеспечения IFF. В случае сбоя обратитесь " -"к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive 7.62mm military turret" -msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "неактивная 7.62 мм турель" -msgstr[1] "неактивные 7.62 мм турели" -msgstr[2] "неактивных 7.62 мм турелей" -msgstr[3] "неактивная 7.62 мм турель" - -#. ~ Description for inactive 7.62mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 7.62mm military turret. Up to 100 standard 7.62mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Неактивная 7.62-миллиметровая военная турель. После активации из инвентаря " -"автоматически загружаются 100 стандартных 7.62-миллиметровых патронов НАТО. " -"Установите турель, и она будет дружественна вам с помощью своего " -"усовершенствованного программного обеспечения IFF. В случае сбоя обратитесь " -"к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive 50 caliber military turret" -msgid_plural "inactive 50 caliber military turrets" -msgstr[0] "неактивная турель 50 калибра" -msgstr[1] "неактивные турели 50 калибра" -msgstr[2] "неактивных турелей 50 калибра" -msgstr[3] "неактивная турель 50 калибра" - -#. ~ Description for inactive 50 caliber military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 50 caliber military turret. Up to 100 standard 50 caliber bmg " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Неактивная турель 50 калибра. После активации из инвентаря автоматически " -"загружаются 100 стандартных BMG патронов калибра 50. Установите турель, и " -"она будет дружественна вам с помощью своего усовершенствованного " -"программного обеспечения IFF. В случае сбоя обратитесь к руководству по " -"безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive military needle turret" -msgid_plural "inactive military needle turrets" -msgstr[0] "неактивная военная дротиковая турель" -msgstr[1] "неактивные военные дротиковые турели" -msgstr[2] "неактивных военных дротиковых турелей" -msgstr[3] "неактивная военная дротиковая турель" - -#. ~ Description for inactive military needle turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced needle turret. Up to 100 standard 5x50mm flechette " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Неактивная продвинутая дротиковая турель. После активации из инвентаря " -"автоматически загружаются 100 стандартных 5x50-миллиметровых патронов типа " -"флешетт. Установите турель, и она будет дружественна вам с помощью своего " -"усовершенствованного программного обеспечения IFF. В случае сбоя обратитесь " -"к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 8x40mm turret" -msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "неактивная военная 8x40 мм турель" -msgstr[1] "неактивные военные 8x40 мм турели" -msgstr[2] "неактивных военных 8x40 мм турелей" -msgstr[3] "неактивная военная 8x40 мм турель" - -#. ~ Description for inactive military 8x40mm turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced 8x40mm turret. Up to 100 standard 8x40mm caseless " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Неактивная продвинутая 8x40-миллиметровая турель. После активации из " -"инвентаря автоматически загружаются 100 стандартных 8x40-миллиметровых " -"безгильзовых патронов. Установите турель, и она будет дружественна вам с " -"помощью своего усовершенствованного программного обеспечения IFF. В случае " -"сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive military 40mm grenade turret" -msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "неактивная военная 40 мм гранатометная турель" -msgstr[1] "неактивные военные 40 мм гранатометные турели" -msgstr[2] "неактивных военных 40 мм гранатометных турелей" -msgstr[3] "неактивная военная 40 мм гранатометная турель" - -#. ~ Description for inactive military 40mm grenade turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive military grenade turret. Up to 50 standard 40mm fragmentation " -"grenades will be automatically loaded from your inventory into the turret " -"upon activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Неактивная военная гранатометная турель. После активации из инвентаря " -"автоматически загружаются 50 стандартных 40 мм разрывных гранат. Установите " -"турель, и она будет дружественна вам с помощью своего усовершенствованного " -"программного обеспечения IFF. В случае сбоя обратитесь к руководству по " -"безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive military flamethrower turret" -msgid_plural "inactive military flamethrower turrets" -msgstr[0] "неактивная военная огнеметная турель" -msgstr[1] "неактивные военные огнеметные турели" -msgstr[2] "неактивных военных огнеметных турелей" -msgstr[3] "неактивная военная огнеметная турель" - -#. ~ Description for inactive military flamethrower turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive flame turret. Up to 100 units of napalm will be automatically " -"loaded from your inventory into the turret upon activation. Place the " -"turret and it will ID you as friendly with its advanced IFF software. " -"Consult your safety manual in the event of a malfunction." -msgstr "" -"Неактивная военная огнеметная турель. После активации из инвентаря " -"автоматически загружаются 100 единиц напалма. Установите турель, и она будет" -" дружественна вам с помощью своего усовершенствованного программного " -"обеспечения IFF. В случае сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced laser turret" -msgid_plural "inactive advanced laser turrets" -msgstr[0] "неактивная продвинутая лазерная турель" -msgstr[1] "неактивные продвинутые лазерные турели" -msgstr[2] "неактивных продвинутых лазерных турелей" -msgstr[3] "неактивная продвинутая лазерная турель" - -#. ~ Description for inactive advanced laser turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced laser turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Неактивная продвинутая лазерная турель. Установите турель, и она будет " -"дружественна вам с помощью своего усовершенствованного программного " -"обеспечения IFF. В случае сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced plasma turret" -msgid_plural "inactive advanced plasma turrets" -msgstr[0] "неактивная продвинутая плазменная турель" -msgstr[1] "неактивные продвинутые плазменные турели" -msgstr[2] "неактивных продвинутых плазменных турелей" -msgstr[3] "неактивная продвинутая плазменная турель" - -#. ~ Description for inactive advanced plasma turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced plasma turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Неактивная продвинутая плазменная турель. Установите турель, и она будет " -"дружественна вам с помощью своего усовершенствованного программного " -"обеспечения IFF. В случае сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced railgun turret" -msgid_plural "inactive advanced railgun turrets" -msgstr[0] "неактивная продвинутая рельсопушечная турель" -msgstr[1] "неактивные продвинутые рельсопушечные турели" -msgstr[2] "неактивных продвинутых рельсопушечных турелей" -msgstr[3] "неактивные продвинутые рельсопушечные турели" - -#. ~ Description for inactive advanced railgun turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced railgun turret. Up to 50 standard rail projectiles " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"Неактивная продвинутая рельсопушечная турель. После активации из инвентаря " -"автоматически загружаются 50 рельсовых выстрелов. Установите турель, и она " -"будет дружественна вам с помощью своего усовершенствованного программного " -"обеспечения IFF. В случае сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced acid turret" -msgid_plural "inactive advanced acid turrets" -msgstr[0] "неактивная продвинутая кислотная турель" -msgstr[1] "неактивные продвинутые кислотные турели" -msgstr[2] "неактивных продвинутых кислотных турелей" -msgstr[3] "неактивная продвинутая кислотная турель" - -#. ~ Description for inactive advanced acid turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced acid turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Неактивная продвинутая кислотная турель. Установите турель, и она будет " -"дружественна вам с помощью своего усовершенствованного программного " -"обеспечения IFF. В случае сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced EMP turret" -msgid_plural "inactive advanced EMP turrets" -msgstr[0] "неактивная продвинутая ЭМИ турель" -msgstr[1] "неактивные продвинутые ЭМИ турели" -msgstr[2] "неактивных продвинутых ЭМИ турелей" -msgstr[3] "неактивная продвинутая ЭМИ турель" - -#. ~ Description for inactive advanced EMP turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced EMP turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" -"Неактивная продвинутая ЭМИ турель. Установите турель, и она будет " -"дружественна вам с помощью своего усовершенствованного программного " -"обеспечения IFF. В случае сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced electro turret" -msgid_plural "inactive advanced electro turrets" -msgstr[0] "неактивная продвинутая электро турель" -msgstr[1] "неактивные продвинутые электро турели" -msgstr[2] "неактивных продвинутых электро турелей" -msgstr[3] "неактивная продвинутая электро турель" - -#. ~ Description for inactive advanced electro turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced electro turret. Place the turret and it will ID you as" -" friendly with its advanced IFF software. Consult your safety manual in the" -" event of a malfunction." -msgstr "" -"Неактивная продвинутая электро турель. Установите турель, и она будет " -"дружественна вам с помощью своего усовершенствованного программного " -"обеспечения IFF. В случае сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "garden gnome" -msgid_plural "garden gnomes" -msgstr[0] "садовый гном" -msgstr[1] "садовые гномы" -msgstr[2] "садовых гномов" -msgstr[3] "садовый гном" - -#. ~ Description for garden gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. You can place him in your " -"garden or elsewhere." -msgstr "" -"Обычный и полностью безопасный садовый гном. Вы можете поставить его в своем" -" саду или ещё где угодно." - -#: lang/json/TOOL_from_json.py -msgid "gaurdin gnome" -msgid_plural "gaurdin gnomes" -msgstr[0] "садовый гном" -msgstr[1] "садовых гнома" -msgstr[2] "садовых гномов" -msgstr[3] "садовый гном" - -#. ~ Description for gaurdin gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. He holds up to 100 rounds of" -" 9mm ammo." -msgstr "" -"Обычный и полностью безопасный садовый гном. Вмещает в себя до 100 " -"9-миллиметровых боеприпасов." - -#: lang/json/TOOL_from_json.py -msgid "small batch of curdling milk" -msgid_plural "small batches of curdling milk" -msgstr[0] "бурдюк кислого молока небольшой" -msgstr[1] "бурдюка кислого молока небольших" -msgstr[2] "бурдюков кислого молока небольших" -msgstr[3] "бурдюк кислого молока небольшой" - -#. ~ Use action msg for {'str': 'small batch of curdling milk', 'str_pl': -#. 'small batches of curdling milk'}. -#. ~ Use action msg for {'str': 'batch of curdling milk', 'str_pl': 'batches -#. of curdling milk'}. -#. ~ Use action msg for {'str': 'large batch of curdling milk', 'str_pl': -#. 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "" -"The milk appears to have finished curdling, and is ready for further " -"processing. Checking on it has exposed the mixture to the atmosphere." -msgstr "" -"Похоже, что молоко закончило свёртываться и готово к дальнейшей обработке. " -"Проверка смеси привела к контакту её с атмосферным воздухом." - -#. ~ Use action not_ready_msg for {'str': 'small batch of curdling milk', -#. 'str_pl': 'small batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'batch of curdling milk', 'str_pl': -#. 'batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'large batch of curdling milk', -#. 'str_pl': 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "The milk is still curdling." -msgstr "Молоко всё ещё свёртывается." - -#. ~ Description for {'str': 'small batch of curdling milk', 'str_pl': 'small -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed small waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Маленький запечатанный бурдюк с молоком, которое находится в процессе " -"превращения в грубый вид сыра после добавления уксуса и натурального сычуга." - -#: lang/json/TOOL_from_json.py -msgid "batch of curdling milk" -msgid_plural "batches of curdling milk" -msgstr[0] "бурдюк кислого молока" -msgstr[1] "бурдюка кислого молока" -msgstr[2] "бурдюков кислого молока" -msgstr[3] "бурдюк кислого молока" - -#. ~ Description for {'str': 'batch of curdling milk', 'str_pl': 'batches of -#. curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed waterskin filled with milk that is undergoing the process to become" -" a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Запечатанный бурдюк с молоком, которое находится в процессе превращения в " -"грубый вид сыра после добавления уксуса и натурального сычуга." - -#: lang/json/TOOL_from_json.py -msgid "large batch of curdling milk" -msgid_plural "large batches of curdling milk" -msgstr[0] "бурдюк кислого молока большой" -msgstr[1] "бурдюка кислого молока больших" -msgstr[2] "бурдюков кислого молока больших" -msgstr[3] "бурдюк кислого молока большой" - -#. ~ Description for {'str': 'large batch of curdling milk', 'str_pl': 'large -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed large waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "" -"Большой запечатанный бурдюк с молоком, которое находится в процессе " -"превращения в грубый вид сыра после добавления уксуса и натурального сычуга." - -#: lang/json/TOOL_from_json.py -msgid "heavy snare kit" -msgid_plural "heavy snare kits" -msgstr[0] "тяжёлый силок" -msgstr[1] "тяжёлых силка" -msgstr[2] "тяжёлых силков" -msgstr[3] "тяжёлый силок" - -#. ~ Use action done_message for heavy snare kit. -#. ~ Use action done_message for light snare kit. -#: lang/json/TOOL_from_json.py -msgid "You set the snare trap." -msgstr "Вы установили силок." - -#. ~ Description for heavy snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a rope noose and a snare " -"trigger. It requires a tree nearby. It is effective at trapping monsters." -msgstr "" -"Набор для ловушки. Содержит верёвку с петлёй и спусковой механизм. Для " -"установки требуется дерево. Может эффективно ловить монстров." - -#: lang/json/TOOL_from_json.py -msgid "light snare kit" -msgid_plural "light snare kits" -msgstr[0] "лёгкий силок" -msgstr[1] "лёгких силка" -msgstr[2] "лёгких силков" -msgstr[3] "лёгкий силок" - -#. ~ Description for light snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a string noose and a snare " -"trigger. It requires a young tree nearby. It is effective at trapping and " -"killing some small animals." -msgstr "" -"Набор для простой ловушки, состоящий из верёвочного узла и механизма " -"активации связывающей ловушки. Требует наличие молодого дерева неподалёку. " -"Эффективна для ловли и убийства некоторых мелких животных." - -#: lang/json/TOOL_from_json.py -msgid "snare trigger" -msgid_plural "snare triggers" -msgstr[0] "спусковой механизм" -msgstr[1] "спусковых механизма" -msgstr[2] "спусковых механизмов" -msgstr[3] "спусковой механизм" - -#. ~ Description for snare trigger -#: lang/json/TOOL_from_json.py -msgid "" -"This is a stick that has been cut into a trigger mechanism for a snare trap." -msgstr "Палка, врезанная в виде спускового механизма для силковой ловушки." - -#. ~ Description for Laevateinn -#: lang/json/TOOL_from_json.py -msgid "" -"A replica of Laevateinn, the sword of Freyr. It is rumored to be able to " -"fight by itself. It is decorated with gold and silver ornaments." -msgstr "" -"Это копия меча Леватейн, которым владел сам бог Фрейр. По преданиям, меч мог" -" сражаться отдельно от хозяина. Украшен золотым и серебряным орнаментом." - -#: lang/json/TOOL_from_json.py -msgid "inactive craftbuddy" -msgid_plural "inactive craftbuddies" -msgstr[0] "неактивный ремонтный бот" -msgstr[1] "неактивных ремонтных бота" -msgstr[2] "неактивных ремонтных ботов" -msgstr[3] "неактивные ремонтные боты" - -#. ~ Description for {'str': 'inactive craftbuddy', 'str_pl': 'inactive -#. craftbuddies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A robot crafting assistant. Useable in its current state as a portable " -"workbench, or deployable as a traveling companion." -msgstr "" -"Робот-помощник в изготовлении. В нынешнем состоянии может использоваться как" -" портативный верстак или как компаньон для путешествий." - -#. ~ Description for light auto armor -#. ~ Description for basic auto armor -#. ~ Description for heavy auto armor -#: lang/json/TOOL_from_json.py -msgid "" -"A set of light power armor fitted with an AI core for automated use. " -"Activate it to deploy the robot or disassemble it to use as armor." -msgstr "" -"Набор легких силовых доспехов, оснащенных ядром AI для автоматического " -"использования. Активируйте его, чтобы развернуть робота или разберите для " -"использования в качестве доспехов." - -#: lang/json/TOOL_from_json.py -msgid "basic auto armor" -msgid_plural "basic auto armors" -msgstr[0] "основная авто броня" -msgstr[1] "основные авто брони" -msgstr[2] "основных авто броней" -msgstr[3] "основная авто броня" - -#: lang/json/TOOL_from_json.py -msgid "inactive hack" -msgid_plural "inactive hacks" -msgstr[0] "неактивный дрон" -msgstr[1] "неактивных дрона" -msgstr[2] "неактивных дронов" -msgstr[3] "неактивный дрон" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating lantern" -msgid_plural "inactive floating lanterns" -msgstr[0] "неактивный парящий фонарь" -msgstr[1] "неактивных парящих фонаря" -msgstr[2] "неактивных парящих фонарей" -msgstr[3] "неактивный парящий фонарь" - -#. ~ Use action friendly_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "Парящий фонарь взлетает из ваших ладоней и освещает все вокруг!" - -#. ~ Use action hostile_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the lantern." -msgstr "В ошиблись в настройке фонаря." - -#. ~ Description for inactive floating lantern -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive floating lantern, a fist-sized robots that flies through the air" -" and illuminates its surroundings with bright LEDs. The lantern is non " -"aggressive and has no means of attack. Activate this item to deploy the " -"salvaged robot." -msgstr "" -"Неактивный парящий фонарь, робот размером с кулак, который летает вокруг и " -"освещает пространство с помощью ярких светодиодов. Фонарь неагрессивен и не " -"может атаковать. Активируйте, чтобы развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive distract-o-hack" -msgid_plural "inactive distract-o-hacks" -msgstr[0] "неактивный отвлекатель" -msgstr[1] "неактивных отвлекателя" -msgstr[2] "неактивных отвлекателей" -msgstr[3] "неактивный отвлекатель" - -#. ~ Use action friendly_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "Отвлекатель взлетает из ваших ладоней и начинает искриться!" - -#. ~ Use action hostile_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the distract-o-hack!" -msgstr "Вы ошиблись в настройке отвлекателя!" - -#. ~ Description for inactive distract-o-hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive distract-o-hack, a fist-sized robot that flies through the air " -"emitting noise, smoke, and sparks. The salvaged robot has no weapons, but " -"will harass hostile targets to draw their attention. Activate this item to " -"deploy the robot. It cannot be recovered once activated." -msgstr "" -"Неактивный отвлекатель, робот размером с кулак, который летает вокруг и " -"производит искры, шум и дам. У восстановленного робота нет оружия, но он " -"будет дразнить противников чтобы привлечь их внимание. Активируйте, чтобы " -"развернуть робота. После активации не может быть восстановлен." - -#: lang/json/TOOL_from_json.py -msgid "inactive arson hack" -msgid_plural "inactive arson hacks" -msgstr[0] "неактивный поджигатель" -msgstr[1] "неактивных поджигателя" -msgstr[2] "неактивных поджигателей" -msgstr[3] "неактивный поджигатель" - -#. ~ Use action friendly_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "The arson hack flies from your hand! Get clear!" -msgstr "Поджигатель взлетает из ваших ладоней! Смывайтесь!" - -#. ~ Use action hostile_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the arson hack! Run!" -msgstr "Вы ошиблись в настройке поджигателя! Бегите!" - -#. ~ Description for inactive arson hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive arson hack, a fist-sized robot that flies through the air " -"chaotically spreading deadly fires. The salvaged robot has no weapons, but " -"will emit intermittent bursts of flame as it moves toward hostile targets. " -"Activate this item to deploy the robot. It cannot be recovered once " -"activated." -msgstr "" -"Неактивный поджигатель, робот размером с кулак, который летает вокруг и " -"хаотично плюется смертоносным огнем. У восстановленного робота нет оружия, " -"он будет испускать прерывистые всплески пламени, когда движется к враждебным" -" целям. Активируйте, чтобы развернуть робота. После активации не может быть " -"восстановлен." - -#: lang/json/TOOL_from_json.py -msgid "inactive spore hack" -msgid_plural "inactive spore hacks" -msgstr[0] "неактивный споромет" -msgstr[1] "неактивных споромета" -msgstr[2] "неактивных спорометов" -msgstr[3] "неактивный споромет" - -#. ~ Use action friendly_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "The spore hack flies from your hand!" -msgstr "Споромет взлетает из ваших ладоней!" - -#. ~ Use action hostile_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the spore hack!" -msgstr "Вы ошиблись в настройке споромета!" - -#. ~ Description for inactive spore hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive spore hack, a fist-sized robot that flies through the air " -"spreading alien contaminants. The robot will dust hostile targets, and " -"intermittently cover the terrain with puffs of fungal spores. Activate this" -" item to deploy the robot." -msgstr "" -"Неактивный споромет, робот размером с кулак, который летает вокруг и " -"распространяет чужеродные споры. Робот будет осыпать врагов спорами и " -"покрывать ими площадь вокруг. Активируйте, чтобы развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive water turret" -msgid_plural "inactive water turrets" -msgstr[0] "неактивная водная пушка" -msgstr[1] "неактивные водные пушки" -msgstr[2] "неактивных водных пушек" -msgstr[3] "неактивная водная пушка" - -#. ~ Description for inactive water turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive watercannon defense turret. Up to 1000 units of water will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. There is no safety manual." -msgstr "" -"Неактивная водная оборонительная турель. При активации из вашего инвентаря " -"автоматически загружаются до 1000 единиц воды. Поместите турель, и она будет" -" дружественна вам с помощью своего усовершенствованного программного " -"обеспечения IFF. В случае сбоя обратитесь к руководству по безопасности." - -#: lang/json/TOOL_from_json.py -msgid "inactive floating heater" -msgid_plural "inactive floating heaters" -msgstr[0] "неактивный парящий нагреватель" -msgstr[1] "неактивных парящих нагревателя" -msgstr[2] "неактивных парящих нагревателей" -msgstr[3] "неактивный парящий нагреватель" - -#. ~ Description for inactive floating heater -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space. It is non-aggressive " -"and has no weapons systems. Activate this item to deploy the robot." -msgstr "" -"Восстановленный глазобот, переоборудованный в летающий обогреватель. " -"Излучает постоянный поток тепла для прогрева закрытого помещения. Не " -"агрессивен и не имеет никакого оружия. Активируйте, чтобы развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive floating furnace" -msgid_plural "inactive floating furnaces" -msgstr[0] "неактивная летающая печь" -msgstr[1] "неактивные летающие печи" -msgstr[2] "неактивных летающих печей" -msgstr[3] "неактивная летающая печь" - -#. ~ Description for inactive floating furnace -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. It is non-" -"aggressive and has no weapons systems. Activate this item to deploy the " -"robot." -msgstr "" -"Восстановленный глазобот, переоборудованный в летающий нагреватель. Излучает" -" постоянный поток очень горячего воздуха для прогрева закрытого помещения. " -"Не агрессивен и не имеет никакого оружия. Активируйте, чтобы развернуть " -"робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive burning eye" -msgid_plural "inactive burning eyes" -msgstr[0] "неактивный горящий глаз" -msgstr[1] "неактивных горящих глаза" -msgstr[2] "неактивных горящих глаз" -msgstr[3] "неактивный горящий глаз" - -#. ~ Description for inactive burning eye -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon which it will use on hostile " -"targets. Activate this item to deploy the robot." -msgstr "" -"Восстановленный глазобот, снабженный лазерным оружием, которое он будет " -"использовать для испепеления врагов. Активируйте, чтобы развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive utilibot" -msgid_plural "inactive utilibots" -msgstr[0] "неактивный хозбот" -msgstr[1] "неактивных хозбота" -msgstr[2] "неактивных хозботов" -msgstr[3] "неактивный хозбот" - -#: lang/json/TOOL_from_json.py -msgid "inactive blob breeder" -msgid_plural "inactive blob breeders" -msgstr[0] "неактивный инкубатор сгустков" -msgstr[1] "неактивных инкубатора сгустков" -msgstr[2] "неактивных инкубаторов сгустков" -msgstr[3] "неактивный инкубатор сгустков" - -#. ~ Description for inactive blob breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It is non aggressive and has no weapon systems. You can activate " -"this item to deploy the robot and begin the incubation process, but you " -"probably shouldn't." -msgstr "" -"Восстановленный хозяйственный робот, переоборудованный в мобильный инкубатор" -" чужеродных сгустков. Не агрессивен и не обладает оружием. Вы можете его " -"активировать, чтобы робот начал процесс инкубации, но лучше не стоит." - -#: lang/json/TOOL_from_json.py -msgid "inactive slime breeder" -msgid_plural "inactive slime breeders" -msgstr[0] "неактивный инкубатор слизи" -msgstr[1] "неактивных инкубатора слизи" -msgstr[2] "неактивных инкубаторов слизи" -msgstr[3] "неактивный инкубатор слизи" - -#. ~ Description for inactive slime breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob, and upgraded to only produce friendly slimes. It is non aggressive " -"and has no weapon systems. You can activate this item to deploy the robot " -"and begin the incubation process." -msgstr "" -"Восстановленный хозяйственный робот, переоборудованный в мобильный инкубатор" -" чужеродных сгустков, и модифицированный только для производства слизи. Не " -"агрессивен и не обладает оружием. Вы можете его активировать, чтобы робот " -"начал процесс инкубации." - -#: lang/json/TOOL_from_json.py -msgid "inactive digestron" -msgid_plural "inactive digestrons" -msgstr[0] "неактивный автоклав" -msgstr[1] "неактивных автоклава" -msgstr[2] "неактивных автоклавов" -msgstr[3] "неактивный автоклав" - -#. ~ Description for inactive digestron -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. It is non aggressive and has no weapon systems. Activate " -"this item to deploy the robot." -msgstr "" -"Восстановленный хозяйственный робот, переоборудованный в вакуумный " -"очиститель. Он всасывает в себя вещи с земли и растворяет их с помощью своих" -" запасов кислоты. Не агрессивен и не обладает оружием. Активируйте для " -"развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive bee-bot" -msgid_plural "inactive bee-bots" -msgstr[0] "неактивный пчелобот" -msgstr[1] "неактивных пчелобота" -msgstr[2] "неактивных пчелоботов" -msgstr[3] "неактивный пчелобот" - -#. ~ Description for inactive bee-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers segments of fresh honey comb. It protects" -" the insect colony with a mechanical crossbow mounted to its chassis. " -"Activate this item, with wooden bolts in your inventory, to load and deploy " -"the robot." -msgstr "" -"Восстановленный хозяйственный робот, переоборудованный в передвижной улей, " -"который периодически удаляет и производит медовые соты. Он защищает колонию " -"с помощью механического арбалета, приделанного к его корпусу. Активируйте " -"его с деревянными арбалетными болтами в инвентаре для снаряжения и " -"развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive medibot" -msgid_plural "inactive medibots" -msgstr[0] "неактивный медбот" -msgstr[1] "неактивных медбота" -msgstr[2] "неактивных медботов" -msgstr[3] "неактивный медбот" - -#: lang/json/TOOL_from_json.py -msgid "inactive assassin robot" -msgid_plural "inactive assassin robots" -msgstr[0] "неактивный робот ассасин" -msgstr[1] "неактивных робота ассасина" -msgstr[2] "неактивных роботов ассасинов" -msgstr[3] "неактивный робот ассасин" - -#. ~ Description for inactive assassin robot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. It will attack " -"hostile targets with a set of blades and a toxic needle. Activate this item" -" to deploy the robot." -msgstr "" -"Восстановленный медбот, переоборудованный в машину для убийств. Он будет " -"атаковать враждебные цели с помощью набора лезвий и иглой с токсинами. " -"Активируйте для развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive elixirator" -msgid_plural "inactive elixirators" -msgstr[0] "неактивный эликсиратор" -msgstr[1] "неактивных эликсиратора" -msgstr[2] "неактивных эликсираторов" -msgstr[3] "неактивный эликсиратор" - -#. ~ Description for inactive elixirator -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot with its internal pharma-fabricators repurposed to " -"produce mutagen. Activate this item to deploy the robot." -msgstr "" -"Восстановленный медбот производящий лекарства, переделанный под производство" -" мутагена. Активируйте для развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive party bot" -msgid_plural "inactive party bots" -msgstr[0] "неактивный патибот" -msgstr[1] "неактивных патибота" -msgstr[2] "неактивных патиботов" -msgstr[3] "неактивный патибот" - -#. ~ Description for inactive party bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Activate this item to get the party " -"started." -msgstr "" -"Восстановленный медбот, загруженный марихуаной, покрытый разноцветными " -"лампочками и запрограммированный танцевать. Активируйте, чтобы начать " -"вечеринку." - -#: lang/json/TOOL_from_json.py -msgid "inactive rat snatcher" -msgid_plural "inactive rat snatchers" -msgstr[0] "неактивный ловец крыс" -msgstr[1] "неактивных ловца крыс" -msgstr[2] "неактивных ловцов крыс" -msgstr[3] "неактивный ловец крыс" - -#. ~ Description for inactive rat snatcher -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It attacks targets" -" with pincers and an integrated tazer. Activate this item to deploy the " -"robot." -msgstr "" -"Восстановленный робот-жук, переоборудованный в охотника на мелкую дичь. " -"Атакует клешнями и встроенным тазером. Активируйте для развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive grab-bot" -msgid_plural "inactive grab-bots" -msgstr[0] "неактивный робот-хвататель" -msgstr[1] "неактивных робота-хватателя" -msgstr[2] "неактивных роботов-хватателей" -msgstr[3] "неактивный робот-хвататель" - -#. ~ Description for inactive grab-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. " -"Activate this item to deploy the robot." -msgstr "" -"Восстановленный робот-жук, переоборудованный в обездвиживателя врагов. " -"Активируйте для развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive pest hunter" -msgid_plural "inactive pest hunters" -msgstr[0] "неактивный истребитель вредителей" -msgstr[1] "неактивных истребителя вредителей" -msgstr[2] "неактивных истребителей вредителей" -msgstr[3] "неактивный истребитель вредителей" - -#. ~ Description for inactive pest hunter -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " -"this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Восстановленный робот-жук, оснащенный 8-миллиметровым интегрированным " -"огнестрельным оружием. Активируйте для развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive cyborg" -msgid_plural "inactive cyborgs" -msgstr[0] "неактивный киборг" -msgstr[1] "неактивных киборга" -msgstr[2] "неактивных киборгов" -msgstr[3] "неактивный киборг" - -#: lang/json/TOOL_from_json.py -msgid "inactive necrotic cyborg" -msgid_plural "inactive necrotic cyborgs" -msgstr[0] "неактивный некрокиборг" -msgstr[1] "неактивных некрокиборга" -msgstr[2] "неактивных некрокиборгов" -msgstr[3] "неактивный некрокиборг" - -#. ~ Description for inactive necrotic cyborg -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Activate this " -"item to deploy the robot." -msgstr "" -"Восстановленный киборг, к которому приделали голову зомби-некроманта. " -"Одушевленная голова сохраняет часть своей способности поднимать зомби. " -"Активируйте для развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive defense robot" -msgid_plural "inactive defense robots" -msgstr[0] "неактивный оборонный робот" -msgstr[1] "неактивных оборонных робота" -msgstr[2] "неактивных оборонных роботов" -msgstr[3] "неактивный оборонный робот" - -#: lang/json/TOOL_from_json.py -msgid "inactive junkyard cowboy" -msgid_plural "inactive junkyard cowboys" -msgstr[0] "неактивный мусорный ковбой" -msgstr[1] "неактивных мусорных ковбоя" -msgstr[2] "неактивных мусорных ковбоев" -msgstr[3] "неактивный мусорный ковбой" - -#. ~ Description for inactive junkyard cowboy -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Восстановленный оборонительный робот, оснащенный дробовиком и двумя " -"циркулярными пилами. Активируйте для развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive shortcircuit samurai" -msgid_plural "inactive shortcircuit samurais" -msgstr[0] "неактивный короткозамыкающий самурай" -msgstr[1] "неактивных короткозамыкающих самурая" -msgstr[2] "неактивных короткозамыкающих самурев" -msgstr[3] "неактивный короткозамыкающий самурай" - -#. ~ Description for inactive shortcircuit samurai -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with an integrated tazer and two " -"electrified blades. Activate this item to deploy the robot." -msgstr "" -"Восстановленный оборонный робот, оснащенный встроенным тазером и двумя " -"лезвиями под напряжением. Активируйте для развертывания робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive slapdash paladin" -msgid_plural "inactive slapdash paladins" -msgstr[0] "неактивный стремительный паладин" -msgstr[1] "неактивных стремительных паладина" -msgstr[2] "неактивных стремительных паладинов" -msgstr[3] "неактивный стремительный паладин" - -#. ~ Description for inactive slapdash paladin -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. Activate this item, with gasoline in your inventory, to" -" load and deploy the robot… preferably far from anything flammable" -msgstr "" -"Восстановленный оборонительный робот с самодельным огнеметом и двумя жгуче " -"горячими лезвиями. Активируйте его с бензином в инвентаре, чтобы зарядить и " -"развернуть робота… Жлательно подальше от всего воспламеняющегося." - -#: lang/json/TOOL_from_json.py -msgid "inactive military robot" -msgid_plural "inactive military robots" -msgstr[0] "неактивный военный робот" -msgstr[1] "неактивных военных робота" -msgstr[2] "неактивных военных роботов" -msgstr[3] "неактивный военный робот" - -#. ~ Description for inactive military robot -#: lang/json/TOOL_from_json.py -msgid "" -"An unpowered military robot fitted with an integrated 7.62 firearm and " -"electric prod. Activate this item, with ammo in your inventory, to load and" -" deploy the robot." -msgstr "" -"Военный робот без питания, оснащенный встроенным огнестрельным оружием 7.62 " -"и электрическим оружием. Активируйте этот предмет с боеприпасами в вашем " -"инвентаре, чтобы загрузить и развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-guardian" -msgid_plural "inactive robo-guardians" -msgstr[0] "неактивный робот-страж" -msgstr[1] "неактивных робота-стража" -msgstr[2] "неактивных роботов-стражей" -msgstr[3] "неактивные роботы-стражи" - -#. ~ Description for inactive robo-guardian -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Восстановленный военный робот, оснащенный парой встроенных 9-миллиметровых " -"пушек. Активируйте его с соответствующими патронами в инвентаре, чтобы " -"зарядить и развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive robote deluxe" -msgid_plural "inactive robote deluxes" -msgstr[0] "неактивный робот-делюкс" -msgstr[1] "неактивных робота-делюкс" -msgstr[2] "неактивных роботов-делюкс" -msgstr[3] "неактивный робот-делюкс" - -#. ~ Description for inactive robote deluxe -#: lang/json/TOOL_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style. Activate this item, with ammo in your inventory, to " -"load and deploy the robot." -msgstr "" -"Роскошный, золотистый робот с бриллиантами, вооруженный парой встроенных 9 " -"мм огнестрельных пушек. Неповторимый и неприлично богатый вид, подходящий " -"для тех, кто хочет выжить в апокалипсисе по стилю. Активируйте его с " -"соответствующими патронами в инвентаре, чтобы зарядить и развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-protector" -msgid_plural "inactive robo-protectors" -msgstr[0] "неактивный робот-охранник" -msgstr[1] "неактивных робота-охранника" -msgstr[2] "неактивных роботов-охранников" -msgstr[3] "неактивный робот-охранник" - -#. ~ Description for inactive robo-protector -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" -"Восстановленный военный робот, оснащенный встроенными 5.56 мм винтовками. " -"Активируйте его с соответствующими патронами в инвентаре, чтобы зарядить и " -"развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-defender" -msgid_plural "inactive robo-defenders" -msgstr[0] "неактивный робот-защитник" -msgstr[1] "неактивных робота-защитника" -msgstr[2] "неактивных роботов-защитников" -msgstr[3] "неактивный робот-защитник" - -#. ~ Description for inactive robo-defender -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Activate" -" this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" -"Восстановленный военный робот, оснащенный встроенной 50bmg винтовкой. " -"Активируйте его с соответствующими патронами в инвентаре, чтобы зарядить и " -"развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced robot" -msgid_plural "inactive advanced robots" -msgstr[0] "неактивный продвинутый робот" -msgstr[1] "неактивных продвинутых робота" -msgstr[2] "неактивных продвинутых роботов" -msgstr[3] "неактивный продвинутый робот" - -#: lang/json/TOOL_from_json.py -msgid "inactive glittering lady" -msgid_plural "inactive glittering ladies" -msgstr[0] "неактивная блестящая леди" -msgstr[1] "неактивные блестящие леди" -msgstr[2] "неактивных блестящих леди" -msgstr[3] "неактивные блестящие леди" - -#. ~ Description for {'str': 'inactive glittering lady', 'str_pl': 'inactive -#. glittering ladies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It attacks hostile targets with its two integral lasers and blinding " -"flashes. Activate this item to deploy the robot." -msgstr "" -"Восстановленный, продвинутый робот, превращенный в светящийся маяк " -"разрушения. Атакуют с помощью двух встроенных лазеров и испускает устойчивый" -" импульс ослепляющих вспышек. Активируйте, чтобы развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive bitter spinster" -msgid_plural "inactive bitter spinsters" -msgstr[0] "неактивная старая дева" -msgstr[1] "неактивных старых девы" -msgstr[2] "неактивных старых дев" -msgstr[3] "неактивная старая дева" - -#. ~ Description for inactive bitter spinster -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " -"to deploy the robot." -msgstr "" -"Восстановленный военный робот, превращенный в едкого монстра. Внутренний " -"кислотный ферментер питает пульверизатор и распылитель. Активируйте, чтобы " -"развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive chickenwalker" -msgid_plural "inactive chickenwalkers" -msgstr[0] "неактивный робоцып" -msgstr[1] "неактивных робоцыпа" -msgstr[2] "неактивных робоцыпов" -msgstr[3] "неактивный робоцып" - -#: lang/json/TOOL_from_json.py -msgid "inactive chainsaw horror" -msgid_plural "inactive chainsaw horrors" -msgstr[0] "неактивный цепной ужас" -msgstr[1] "неактивных цепных ужаса" -msgstr[2] "неактивных цепных ужасов" -msgstr[3] "неактивные цепные ужасы" - -#. ~ Description for inactive chainsaw horror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of whirring " -"chainsaws and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Восстановленный робоцып, переоборудованный в жуткого монстра, украшенного " -"черепами и шипами. Он атакует парой жужжащих бензопил и оглушает " -"акустической системой. Активируйте, чтобы развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive screeching terror" -msgid_plural "inactive screeching terrors" -msgstr[0] "неактивный визжащий ужас" -msgstr[1] "неактивных визжащих ужаса" -msgstr[2] "неактивных визжащих ужасов" -msgstr[3] "неактивный визжащий ужас" - -#. ~ Description for inactive screeching terror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of piston-driven " -"lances and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Восстановленный робоцып, переоборудованный в жуткого монстра, украшенного " -"черепами и шипами. Он атакует парой пневматических копьев и оглушает " -"акустической системой. Активируйте, чтобы развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive hooked nightmare" -msgid_plural "inactive hooked nightmares" -msgstr[0] "неактивный цепляющийся кошмар" -msgstr[1] "неактивных цепляющихся кошмара" -msgstr[2] "неактивных цепляющихся кошмаров" -msgstr[3] "неактивный цепляющийся кошмар" - -#. ~ Description for inactive hooked nightmare -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of spinning hooks" -" on chains and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"Восстановленный робоцып, переоборудованный в жуткого монстра, украшенного " -"черепами и шипами. Он атакует парой крутящихся цепей с крючками и оглушает " -"акустической системой. Активируйте, чтобы развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive tankbot" -msgid_plural "inactive tankbots" -msgstr[0] "неактивный танк-бот" -msgstr[1] "неактивных танк-бота" -msgstr[2] "неактивных танк-ботов" -msgstr[3] "неактивный танк-бот" - -#: lang/json/TOOL_from_json.py -msgid "inactive fist king" -msgid_plural "inactive fist kings" -msgstr[0] "неактивный кулачный король" -msgstr[1] "неактивных кулачных короля" -msgstr[2] "неактивных кулачных королей" -msgstr[3] "неактивный кулачный король" - -#. ~ Description for inactive fist king -#. ~ Description for inactive atomic sultan -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Activate this " -"item to deploy the robot." -msgstr "" -"Восстановленный танк-бот с парой мощных пневматических молотов для " -"сокрушения всего на своем пути, включая здания. Активируйте, чтобы " -"развернуть робота." - -#: lang/json/TOOL_from_json.py -msgid "inactive atomic sultan" -msgid_plural "inactive atomic sultans" -msgstr[0] "неактивный атомный султан" -msgstr[1] "неактивных атомных султана" -msgstr[2] "неактивных атомных султанов" -msgstr[3] "неактивный атомный султан" - -#: lang/json/TOOL_from_json.py -msgid "active glowball" -msgid_plural "active glowballs" -msgstr[0] "светящийся шарик (активно)" -msgstr[1] "светящихся шарика (активно)" -msgstr[2] "светящихся шариков (активно)" -msgstr[3] "светящийся шарик (активно)" - -#. ~ Use action msg for active glowball. -#: lang/json/TOOL_from_json.py -msgid "The glowball goes dim." -msgstr "Светящийся шарик тускнеет." - -#. ~ Description for active glowball -#: lang/json/TOOL_from_json.py -msgid "A small plastic ball filled with glowing chemicals." -msgstr "Небольшой пластиковый шарик, наполненный светящимися химикатами." - #: lang/json/TOOL_from_json.py msgid "TEST rag" msgid_plural "TEST rags" @@ -119406,583 +116485,30 @@ msgstr[2] "ТЕСТОВЫХ винтовых домкратов" msgstr[3] "ТЕСТОВЫЕ винтовые домкраты" #: lang/json/TOOL_from_json.py -msgid "growing blob frame" -msgid_plural "growing blob frames" -msgstr[0] "сгустковая рама растущая" -msgstr[1] "сгустковые рамы растущие" -msgstr[2] "сгустковых рам растущих" -msgstr[3] "сгустковая рама растущая" - -#. ~ Use action msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "" -"You test the frame; It wiggles, and then collapses into an lump of goo." -msgstr "" -"Вы испытали раму на прочность; она дёргается и растекается кучей слизи." - -#. ~ Use action not_ready_msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "Вы испытали раму на прочность. Всё ещё не достаточно прочная." - -#. ~ Description for {'str': 'growing blob frame'} -#: lang/json/TOOL_from_json.py -msgid "" -"A growing vehicle frame made of bone. It's coated in a thick layer of ooze," -" though there's greater amounts on the bindings. It's not quite tough " -"enough to use." -msgstr "" -"Растущая рама из костной ткани. Покрыта толстым слоем слизи, в местах " -"сочленения слизи ещё больше. Слишком непрочная для использования." - -#: lang/json/TOOL_from_json.py -msgid "growing keratinous mass" -msgid_plural "growing keratinous mass" -msgstr[0] "ороговевшая масса растущая" -msgstr[1] "ороговевшие массы растущие" -msgstr[2] "ороговевшых масс растущих" -msgstr[3] "ороговевшая масса растущая" - -#. ~ Use action msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action msg for {'str_sp': 'growing ooze'}. -#. ~ Use action msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "The blob balloons to full size." -msgstr "Сгусток увеличился до окончательного размера." - -#. ~ Use action not_ready_msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing ooze'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "Whatever it's doing, it's not done yet." -msgstr "Что бы это ни было, это ещё не готово." - -#. ~ Description for {'str_sp': 'growing keratinous mass'} -#. ~ Description for {'str_sp': 'growing beaded mass'} -#. ~ Description for {'str_sp': 'growing icy mass'} -#. ~ Description for {'str_sp': 'growing cold mass'} -#. ~ Description for {'str_sp': 'growing hairy mass'} -#. ~ Description for {'str_sp': 'growing gelatinous mass'} -#. ~ Description for {'str_sp': 'growing glowing mass'} -#. ~ Description for {'str_sp': 'growing gray mass'} -#. ~ Description for {'str_sp': 'growing spike-studded mass'} -#. ~ Description for {'str_sp': 'growing gasoline-laced mass'} -#. ~ Description for {'str_sp': 'growing acidic mass'} -#. ~ Description for {'str_sp': 'growing ooze'} -#. ~ Description for {'str_sp': 'growing mass of tendrils'} -#. ~ Description for {'str_sp': 'growing spiked mass'} -#. ~ Description for {'str_sp': 'growing spiny mass'} -#. ~ Description for {'str_sp': 'growing spiky mass'} -#. ~ Description for {'str_sp': 'growing bright mass'} -#. ~ Description for {'str_sp': 'growing viscous mass'} -#. ~ Description for {'str_sp': 'growing warm mass'} -#. ~ Description for {'str_sp': 'growing electrified mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Not quite fully grown, this blob requires nourishment to fully develop." -msgstr "" -"Этот сгусток не совсем вырос и требует полноценного кормления для развития." - -#: lang/json/TOOL_from_json.py -msgid "growing beaded mass" -msgid_plural "growing beaded mass" -msgstr[0] "бисерная масса растущая" -msgstr[1] "бисерные массы растущие" -msgstr[2] "бисерных масс растущих" -msgstr[3] "бисерная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing icy mass" -msgid_plural "growing icy mass" -msgstr[0] "ледяная масса растущая" -msgstr[1] "ледяные массы растущие" -msgstr[2] "ледяных масс растущих" -msgstr[3] "ледяная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "gelacier" -msgid_plural "gelaciers" -msgstr[0] "леденик" -msgstr[1] "леденика" -msgstr[2] "ледеников" -msgstr[3] "леденик" - -#. ~ Description for {'str': 'gelacier'} -#: lang/json/TOOL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It seems pliable enough to pull apart…" -msgstr "" -"Биологическая загадка. Внутренности этого сгустка погружены в жидкость " -"низкой плотности, остающуюся жидкой несмотря на переохлаждённое состояние, и" -" при этом сгусток весьма пластичен. Кусочки льда постоянно отслаиваются от " -"тела. Кажется, сгусток достаточно податливый, чтобы его можно было оторвать…" - -#: lang/json/TOOL_from_json.py -msgid "growing cold mass" -msgid_plural "growing cold mass" -msgstr[0] "холодная масса растущая" -msgstr[1] "холодные массы растущие" -msgstr[2] "холодных масс растущих" -msgstr[3] "холодная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing hairy mass" -msgid_plural "growing hairy mass" -msgstr[0] "ворсистая масса растущая" -msgstr[1] "ворсистые массы растущие" -msgstr[2] "ворсистых масс растущих" -msgstr[3] "ворсистая масса растущая" - -#. ~ Use action msg for {'str_sp': 'gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'gray mass'}. -#. ~ Use action msg for {'str_sp': 'oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "You fumble as the blob starts to multiply rapidly!" -msgstr "Вы возитесь, сгусток начинает быстро делиться!" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An experiment gone horribly right. While the original intent was to combine" -" the structure of a bone frame with the impact absorption of the blob; the " -"blob seems to have completely consumed the bone. Instead, what remains is " -"an amorphous mass of goo with what seems to be numerous thin filaments " -"floating within. With a bit of effort, you can grasp the fibers and stretch" -" the mass into a multitude of shapes. The mass is able to retain the new " -"shape even under force, though the mass yields at your touch. With enough " -"strength, you think you can pull it apart." -msgstr "" -"Эксперимент, увенчавшийся ужасным успехом. Изначальной целью было сочетание " -"структуры костяной рамы с амортизирующими свойствами сгустка, однако сгусток" -" полностью поглотил кость. Получилась аморфная масса слизи с плавающими " -"внутри бесчисленными тонкими волокнами. Вы можете схватить волокна и с " -"небольшим усилием растянуть массу, придав ей различную форму. Масса способна" -" сохранять новую форму даже при внешнем воздействии, хотя подаётся при вашем" -" касании. Вероятно, вы сможете оторвать ее с некоторым усилием." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gelatinous mass" -msgid_plural "multiplying gelatinous mass" -msgstr[0] "желейная масса делящаяся" -msgstr[1] "желейные массы делящиеся" -msgstr[2] "желейных масс делящихся" -msgstr[3] "желейная масса делящаяся" - -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying oozing mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "A blob splits and bounces away!" -msgstr "Сгусток делится и отскакивает прочь!" - -#. ~ Description for {'str_sp': 'multiplying gelatinous mass'} -#. ~ Description for {'str_sp': 'multiplying gray mass'} -#. ~ Description for {'str_sp': 'multiplying oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Having been fed, this blob is now rapidly multiplying into other copies of " -"itself; extremely noisy copies! And even worse, it's stuck to your hands " -"until whatever it's doing is done! Catch those blobs before they bring in " -"every zombie for miles!" -msgstr "" -"Этот сгусток накормлен и теперь быстро делится на копии себя самого; " -"чрезвычайно шумные копии! И ещё хуже, он прилип к вашим рукам, пока не " -"закончит свои дела, что бы это ни было! Поймайте эти сгустки, прежде чем они" -" приведут каждого зомби в милях вокруг!" - -#: lang/json/TOOL_from_json.py -msgid "growing gelatinous mass" -msgid_plural "growing gelatinous mass" -msgstr[0] "желейная масса делящаяся" -msgstr[1] "желейные массы делящиеся" -msgstr[2] "желейных масс делящихся" -msgstr[3] "желейная масса делящаяся" - -#: lang/json/TOOL_from_json.py -msgid "growing glowing mass" -msgid_plural "growing glowing mass" -msgstr[0] "светящаяся масса растущая" -msgstr[1] "светящиеся массы растущие" -msgstr[2] "светящихся масс растущих" -msgstr[3] "светящаяся масса растущая" - -#. ~ Description for {'str_sp': 'gray mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"This internal structures of this creature have developed significantly. " -"While retaining the resilience and malleability of its once simpler form, it" -" has gained the considerable abilities of perception and stimulus response." -" When directly threatened, it is able to shift and alter its microfibers, " -"hardening its membrane to an almost steel-hard shell. You can still pull it" -" apart with enough force. It's also really gray." -msgstr "" -"Внутреннее строение этого создания значительно усложнилось. Оно приобрело " -"значительные способности к восприятию и реакции на раздражители, сохраняя " -"прежние упругость и податливость. В случае опасности серая масса способна " -"двигать и изменять свои микроволокна, превращая мембрану в панцирь почти " -"стальной прочности. Вы все ещё можете оторвать её, приложив усилие. А ещё " -"она и правда серая." - -#: lang/json/TOOL_from_json.py -msgid "multiplying gray mass" -msgid_plural "multiplying gray mass" -msgstr[0] "серая масса делящаяся" -msgstr[1] "серые массы делящиеся" -msgstr[2] "серых масс делящихся" -msgstr[3] "серая масса делящаяся" - -#: lang/json/TOOL_from_json.py -msgid "growing gray mass" -msgid_plural "growing gray mass" -msgstr[0] "серая масса растущая" -msgstr[1] "серые массы растущие" -msgstr[2] "серых масс растущих" -msgstr[3] "серая масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing spike-studded mass" -msgid_plural "growing spike-studded mass" -msgstr[0] "прошипованная масса растущая" -msgstr[1] "прошипованные массы растущие" -msgstr[2] "прошипованных масс растущих" -msgstr[3] "прошипованная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing gasoline-laced mass" -msgid_plural "growing gasoline-laced mass" -msgstr[0] "пробензиненная масса растущая" -msgstr[1] "пробензиненные массы растущие" -msgstr[2] "пробензиненных масс растущих" -msgstr[3] "пробензиненная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing acidic mass" -msgid_plural "growing acidic mass" -msgstr[0] "кислотная масса растущая" -msgstr[1] "кислотные массы растущие" -msgstr[2] "кислотных масс растущих" -msgstr[3] "кислотная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "oozing mass" -msgid_plural "oozing mass" -msgstr[0] "слизевая масса" -msgstr[1] "слизевые массы" -msgstr[2] "слизевых масс" -msgstr[3] "слизевая масса" - -#. ~ Description for {'str_sp': 'oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An amorphous mass that has undergone a significant growth. In addition to " -"the increased amount of goo and sinuous filaments, it seems to have started " -"developing other internal structures. Like its smaller counterpart, it can " -"be shaped into various structures; albeit with significantly greater tensile" -" strength due to the increased number of supporting filaments. You believe " -"you can split it apart with enough force." -msgstr "" -"Аморфная масса, значительно выросшая в размерах. Помимо большего количества " -"слизи и подвижных волокон, начинается развитие других внутренних " -"образований. Как и меньшим собратьям, массе можно придать различную форму, " -"хотя из-за множества поддерживающих волокон прочность намного выше. Похоже, " -"вы можете порвать её, приложив усилие." - -#: lang/json/TOOL_from_json.py -msgid "multiplying oozing mass" -msgid_plural "multiplying oozing mass" -msgstr[0] "слизевая масса делящаяся" -msgstr[1] "слизевые массы делящиеся" -msgstr[2] "слизевых масс делящихся" -msgstr[3] "слизевая масса делящаяся" - -#: lang/json/TOOL_from_json.py -msgid "growing ooze" -msgid_plural "growing ooze" -msgstr[0] "слизевая масса растущая" -msgstr[1] "слизевые массы растущие" -msgstr[2] "слизевых масс растущих" -msgstr[3] "слизевая масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing mass of tendrils" -msgid_plural "growing mass of tendrils" -msgstr[0] "нитевидная масса растущая" -msgstr[1] "нитевидные массы растущие" -msgstr[2] "нитевидных масс растущих" -msgstr[3] "нитевидная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing spiked mass" -msgid_plural "growing spiked mass" -msgstr[0] "шипованная масса растущая" -msgstr[1] "шипованные массы растущие" -msgstr[2] "шипованных масс растущих" -msgstr[3] "шипованная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing spiny mass" -msgid_plural "growing spiny mass" -msgstr[0] "колючая масса растущая" -msgstr[1] "колючие массы растущие" -msgstr[2] "колючих масс растущих" -msgstr[3] "колючая масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing spiky mass" -msgid_plural "growing spiky mass" -msgstr[0] "заострённая масса растущая" -msgstr[1] "заострённые массы растущие" -msgstr[2] "заострённых масс растущих" -msgstr[3] "заострённая масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing bright mass" -msgid_plural "growing bright mass" -msgstr[0] "яркая масса растущая" -msgstr[1] "яркие массы растущие" -msgstr[2] "ярких масс растущих" -msgstr[3] "яркая масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing viscous mass" -msgid_plural "growing viscous mass" -msgstr[0] "вязкая масса растущая" -msgstr[1] "вязкие массы растущие" -msgstr[2] "вязких масс растущих" -msgstr[3] "вязкая масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing warm mass" -msgid_plural "growing warm mass" -msgstr[0] "тёплая масса растущая" -msgstr[1] "тёплые массы растущие" -msgstr[2] "тёплых масс растущих" -msgstr[3] "тёплая масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "growing electrified mass" -msgid_plural "growing electrified mass" -msgstr[0] "электризованная масса растущая" -msgstr[1] "электризованные массы растущие" -msgstr[2] "электризованных масс растущих" -msgstr[3] "электризованная масса растущая" - -#: lang/json/TOOL_from_json.py -msgid "diamond cluster" -msgid_plural "diamond clusters" -msgstr[0] "алмазная масса" -msgstr[1] "алмазная масса" -msgstr[2] "алмазная масса" -msgstr[3] "алмазная масса" - -#. ~ Use action msg for {'str': 'diamond cluster'}. -#: lang/json/TOOL_from_json.py -msgid "The cluster comes apart in your hands." -msgstr "Алмазная масса разрушается на части в ваших руках." - -#. ~ Description for {'str': 'diamond cluster'} -#: lang/json/TOOL_from_json.py -msgid "" -"A cluster of artificial crystals that have broken off of a diamond matrix. " -"While the substance usually decays when separated from the catalyst; this " -"cluster seems to be self-sustaining by some unknown mechanism. " -msgstr "" -"Гроздь искусственных кристаллов, отколовшихся от алмазной матрицы. Обычно " -"вещество полностью разрушается, когда отделяется от катализатора; но эта " -"масса, похоже, способна существовать самостоятельно благодаря некоему " -"неизвестному механизму. " - -#: lang/json/TOOL_from_json.py -msgid "diamond matrix" -msgid_plural "diamond matrices" -msgstr[0] "алмазная матрица" -msgstr[1] "алмазные матрицы" -msgstr[2] "алмазных матриц" -msgstr[3] "алмазная матрица" - -#. ~ Use action msg for {'str': 'diamond matrix', 'str_pl': 'diamond -#. matrices'}. -#: lang/json/TOOL_from_json.py -msgid "" -"Your senses dull as you gaze into the depths of this gemstone's center…" -msgstr "" -"Ваши чувства тускнеют, пока вы вглядываетесь в глубины этого драгоценного " -"камня…" - -#. ~ Description for {'str': 'diamond matrix', 'str_pl': 'diamond matrices'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sparkling diamond with a dazzling spiral pattern. Small pieces of " -"glittering crystal form on the edges as you hold it." -msgstr "" -"Искрящийся алмаз великолепной винтообразной формы. Это сверкающее " -"великолепие играет красками и переливается крохотными искорками на гранях, " -"пока вы держите его в руках." - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex engine" -msgid_plural "vortex engines" -msgstr[0] "вихревой двигатель" -msgstr[1] "вихревых двигателя" -msgstr[2] "вихревых двигателей" -msgstr[3] "вихревых двигателей" - -#. ~ Description for {'str': 'vortex engine'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allows it to be attached to a vehicle to render " -"it mobile." -msgstr "" -"Так сказать, торнадо в коробке. Внутри этого безобидного бака находится либо" -" венец человеческой мысли в области энергетики, либо величайшее оружие " -"массового уничтожения, способное стереть с лица земли целую цивилизацию — " -"или то, что от неё осталось. Внешний механизм позволяет крепить его в " -"машине." - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex generator" -msgid_plural "vortex generators" -msgstr[0] "вихревой генератор" -msgstr[1] "вихревых генератора" -msgstr[2] "вихревых генераторов" -msgstr[3] "вихревой генератор" - -#. ~ Description for {'str': 'vortex generator'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allow it to be hooked up to a battery to store " -"the power generated." -msgstr "" -"Так сказать, торнадо в коробке. Внутри этого безобидного бака находится либо" -" венец человеческой мысли в области энергетики, либо величайшее оружие " -"массового уничтожения, способное стереть с лица земли целую цивилизацию — " -"или то, что от неё осталось. Внешний механизм позволяет подключить его к " -"аккумуляторам для сохранения вырабатываемой энергии." - -#: lang/json/TOOL_from_json.py -msgid "control chip" -msgid_plural "control chips" -msgstr[0] "управляющий чип" -msgstr[1] "управляющих чипа" -msgstr[2] "управляющих чипов" -msgstr[3] "управляющий чип" - -#. ~ Description for control chip -#: lang/json/TOOL_from_json.py -msgid "" -"A small device, not bigger than a man's fist. It provides primitive " -"organisms with electric stimulation, reviving them and forcing them to obey " -"your commands. This version only works on blobs." -msgstr "" -"Небольшое устройство, не больше кулака. Проводит электрическую стимуляцию " -"примитивных организмов, возрождая их и заставляя подчиняться вашим командам." -" Эта версия работает только на сгустках слизи." - -#: lang/json/TOOL_from_json.py -msgid "dormant blob" -msgid_plural "dormant blobs" -msgstr[0] "неактивный сгусток" -msgstr[1] "неактивных сгустка" -msgstr[2] "неактивных сгустков" -msgstr[3] "неактивный сгусток" - -#. ~ Use action friendly_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "The blob becomes active and starts slithering around." -msgstr "Сгусток слизи становится активным и начинает ползать вокруг." - -#. ~ Use action hostile_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "You've made a terrible mistake, the blob is hostile!" -msgstr "Вы совершили ужасную ошибку, этот сгусток враждебен!" - -#. ~ Description for dormant blob -#: lang/json/TOOL_from_json.py -msgid "" -"Several chunks of blob scraps, stuffed with a control chip and sewn back " -"together. A light shock from the UPS started the chip, bringing the blob " -"back to life. Use this item to wake up the blob." -msgstr "" -"Несколько сшитых вместе кусков слизи с чипом управления внутри. Лёгкий удар " -"тока от УБП запускает чип, возвращая сгусток к жизни. Используйте этот " -"предмет для пробуждения сгустка." - -#: lang/json/TOOL_from_json.py -msgid "dormant minion" -msgid_plural "dormant minions" -msgstr[0] "неактивный приспешник" -msgstr[1] "неактивных приспешника" -msgstr[2] "неактивных приспешников" -msgstr[3] "неактивный приспешник" +msgid "test smartphone" +msgid_plural "test smartphones" +msgstr[0] "тестовый смартфон" +msgstr[1] "тестовых смартфона" +msgstr[2] "тестовых смартфонов" +msgstr[3] "тестовые смартфоны" -#. ~ Use action friendly_msg for dormant minion. +#. ~ Description for {'str': 'test smartphone'} #: lang/json/TOOL_from_json.py -msgid "The jabberwock climbs to its feet and shambles around." -msgstr "Бармаглот поднимается на ноги и с шарканьем ходит вокруг." +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." +msgstr "Работающий от УБП смартфон с камерой, фонариком и MP3 плеером." -#. ~ Use action hostile_msg for dormant minion. #: lang/json/TOOL_from_json.py -msgid "" -"Something has gone wrong; after getting up the jabberwock lumbers toward you" -" menacingly!" -msgstr "" -"Что-то пошло не так, после подъёма, бармаглот угрожающе двигается к вам!" +msgid "test matchbook" +msgid_plural "test matchbooks" +msgstr[0] "тестовый коробок спичек" +msgstr[1] "тестовых коробка спичек" +msgstr[2] "тестовых коробков спичек" +msgstr[3] "тестовые коробки спичек" -#. ~ Description for dormant minion +#. ~ Description for {'str': 'test matchbook'} #: lang/json/TOOL_from_json.py -msgid "" -"Your very own undead servant. The blob controlling its body is in a state " -"of coma, awaiting your orders. Use this item to wake up the minion." -msgstr "" -"Ваш собственный неупокоенный слуга. Сгусток слизи, управляющий телом, " -"находится в состоянии комы, ожидая ваших приказов. Используйте этот предмет " -"для пробуждения приспешника." +msgid "Test matches - when you must burn things, for science!" +msgstr "Тестовые спички - если нужно что-то поджечь во имя науки!" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -119999,7 +116525,7 @@ msgid "" "A bar and harness to attach a creature to a wheeled vehicle, they then " "should be able to pull it." msgstr "" -"Упряжь и хомут для крепления животного к колёсному транспорту, чтобы оно " +"Упряжь и хомут для запрягания животного а колёсный транспорт, чтобы оно " "могло везти его." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py @@ -120087,10 +116613,10 @@ msgstr "Широкое шипованное велосипедное колес #: lang/json/WHEEL_from_json.py msgid "set of casters" msgid_plural "sets of casters" -msgstr[0] "набор колёсиков" -msgstr[1] "набора колёсиков" -msgstr[2] "наборов колёсиков" -msgstr[3] "набор колёсиков" +msgstr[0] "набор маленьких колёсиков" +msgstr[1] "набора маленьких колёсиков" +msgstr[2] "наборов маленьких колёсиков" +msgstr[3] "наборы маленьких колёсиков" #. ~ Description for {'str': 'set of casters', 'str_pl': 'sets of casters'} #: lang/json/WHEEL_from_json.py @@ -120205,7 +116731,7 @@ msgstr "" "Большой цилиндр из толстых пластин закалённой стали, который обычно " "встречается на дорожных катках. Многочисленные массивные спицы, " "прикреплённые к центральной оси, ещё больше укрепляют его структуру, " -"придавая ему неостановимую силу после начала вращения." +"превращая его в неостановимую силу после начала вращения." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "small wheel" @@ -120224,13 +116750,30 @@ msgstr "" "Довольно маленькое колесо. Вероятно, от одного из сегвеев. Выглядит не " "слишком угрожающе." +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "колесико для скейта" +msgstr[1] "колесика для скейта" +msgstr[2] "колесиков для скейта" +msgstr[3] "колесики для скейта" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "" +"Очень маленькое пластиковое колесо розового цвета. Изготовлено для установки" +" на скейт." + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" -msgstr[0] "колёса трёхколёсного велосипеда" -msgstr[1] "колёса трёхколёсного велосипеда" -msgstr[2] "колёса трёхколёсного велосипеда" -msgstr[3] "колёса трёхколёсного велосипеда" +msgstr[0] "набор колёс для трёхколёсного велосипеда" +msgstr[1] "набора колёс для трёхколёсного велосипеда" +msgstr[2] "наборов колёс для трёхколёсного велосипеда" +msgstr[3] "наборы колёс для трёхколёсного велосипеда" #. ~ Description for {'str': 'set of tricycle wheels', 'str_pl': 'sets of #. tricycle wheels'} @@ -120248,7 +116791,7 @@ msgid_plural "pairs of wheelchair wheels" msgstr[0] "пара колёс кресла-каталки" msgstr[1] "пары колёс кресла-каталки" msgstr[2] "пар колёс кресла-каталки" -msgstr[3] "пара колёс кресла-каталки" +msgstr[3] "пары колёс кресла-каталки" #. ~ Description for {'str': 'pair of wheelchair wheels', 'str_pl': 'pairs of #. wheelchair wheels'} @@ -120327,218 +116870,66 @@ msgstr[3] "колеса маны" msgid "A column of mana energy that enables a floating disk to move." msgstr "Колонна энергии маны, позволяющая парящему диску двигаться." -#: lang/json/WHEEL_from_json.py -msgid "Rubber Caterpillar Track" -msgid_plural "Rubber Caterpillar Tracks" -msgstr[0] "резиновый гусеничный трак" -msgstr[1] "резиновые гусеничные траки" -msgstr[2] "резиновых гусеничных траков" -msgstr[3] "резиновые гусеничные траки" - -#. ~ Description for {'str': 'Rubber Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of hard rubber tracks reinforced by stiff wire " -"held in place by a set of smaller wheels. Similar with what you might see " -"used on light construction vehicles. It's significantly stronger than " -"regular tires due to not being at risk of bursting; but is quite heavy." -msgstr "" -"Короткий набор сцепленных траков из укрепленной прочной проволокой жёсткой " -"резины, удерживаемых маленькими колёсиками. Похоже на то, что вы видели у " -"лёгких строительных машин. Намного прочнее обычных шин из-за отсутствия " -"вероятности разрыва; но они довольно тяжёлые." +#: lang/json/achievement_from_json.py +msgid "One down, billions to go…" +msgstr "Один есть, осталось 7 миллиардов…" -#: lang/json/WHEEL_from_json.py -msgid "Steel Caterpillar Track" -msgid_plural "Steel Caterpillar Tracks" -msgstr[0] "стальной гусеничный трак" -msgstr[1] "стальные гусеничные траки" -msgstr[2] "стальных гусеничных траков" -msgstr[3] "стальные гусеничные траки" - -#. ~ Description for {'str': 'Steel Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on large construction " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is very heavy." -msgstr "" -"Короткий набор сцепленных стальных траков, удерживаемых маленькими " -"колёсиками. Похоже на то, что вы видели у больших строительных машин. " -"Намного прочнее обычных шин из-за отсутствия вероятности разрыва; но они " -"очень тяжёлые." +#: lang/json/achievement_from_json.py +msgid "Rude awakening" +msgstr "Грубое пробуждение" -#: lang/json/WHEEL_from_json.py -msgid "Reinforced Caterpillar Track" -msgid_plural "Reinforced Caterpillar Tracks" -msgstr[0] "бронированный гусеничный трак" -msgstr[1] "бронированных гусеничных трака" -msgstr[2] "бронированных гусеничных траков" -msgstr[3] "бронированные гусеничные траки" - -#. ~ Description for {'str': 'Reinforced Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on APCs and armored " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is extremely heavy." -msgstr "" -"Короткий набор сцепленных стальных траков, удерживаемых маленькими " -"колёсиками. Похоже на то, что вы видели у БТР и бронемашин. Намного прочнее " -"обычных шин из-за отсутствия вероятности разрыва; но они крайне тяжёлые." +#: lang/json/achievement_from_json.py +msgid "Decamate" +msgstr "Десяточка" -#: lang/json/WHEEL_from_json.py -msgid "Gelatinous track" -msgid_plural "Gelatinous tracks" -msgstr[0] "желейный трак" -msgstr[1] "желейных трака" -msgstr[2] "желейных траков" -msgstr[3] "желейные траки" - -#. ~ Description for {'str': 'Gelatinous track'} -#. ~ Description for {'str': 'Oozing track'} -#. ~ Description for {'str': 'Gray track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of tracks created out of some of your monstrosity " -"blob based parts. Similar with what you might see used on light " -"construction vehicles. It's significantly stronger than regular tires due " -"to not being at risk of bursting; but is quite heavy." -msgstr "" -"Короткий набор сцепленных траков, сделанный из чудовищных сгустковых частей." -" Похоже на то, что вы видели у лёгких строительных машин. Намного прочнее " -"обычных шин из-за отсутствия вероятности разрыва; но они довольно тяжёлые." +#: lang/json/achievement_from_json.py +msgid "Centinel" +msgstr "Соточка" -#: lang/json/WHEEL_from_json.py -msgid "Oozing track" -msgid_plural "Oozing tracks" -msgstr[0] "слизевой трак" -msgstr[1] "слизевых трака" -msgstr[2] "слизевых траков" -msgstr[3] "слизевые траки" +#: lang/json/achievement_from_json.py +msgid "The first day of the rest of their unlives" +msgstr "Первый день из оставшихся после их смерти" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "Gray track" -msgid_plural "Gray tracks" -msgstr[0] "серый трак" -msgstr[1] "серых трака" -msgstr[2] "серых траков" -msgstr[3] "серые траки" +#: lang/json/achievement_from_json.py +msgid "Survive for a day and find a safe place to sleep" +msgstr "Выживите в течение одного дня и найдите безопасное место для сна" -#: lang/json/WHEEL_from_json.py -msgid "gelacier wheel" -msgid_plural "gelacier wheels" -msgstr[0] "леденик-колесо" -msgstr[1] "леденик-колеса" -msgstr[2] "леденик-колес" -msgstr[3] "леденик-колеса" - -#. ~ Description for {'str': 'gelacier wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It has formed itself into a wide, crude " -"wheel." -msgstr "" -"Биологическая загадка. Внутренности этого сгустка погружены в жидкость " -"низкой плотности, остающуюся жидкой несмотря на переохлаждённое состояние, и" -" при этом сгусток весьма пластичен. Кусочки льда постоянно отслаиваются от " -"тела. Окончательно сформировался в грубое широкое колесо." +#: lang/json/achievement_from_json.py +msgid "Thank God it's Friday" +msgstr "Слава Богу, уже пятница" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gelatinous wheel" -msgid_plural "gelatinous wheels" -msgstr[0] "желейное колесо" -msgstr[1] "желейных колеса" -msgstr[2] "желейных колес" -msgstr[3] "желейные колеса" - -#. ~ Description for {'str': 'gelatinous wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gelatinous mass with water has resulted in something that appears " -"to be a cross between a wheel, an otherworldly abomination, and one of those" -" old squeezy toys." -msgstr "" -"В результате наполнения желеобразной массы водой получилось что-то среднее " -"между колесом, инопланетной гадостью и одной из тех старых игрушек-пищалок." +#: lang/json/achievement_from_json.py +msgid "Survive for a week" +msgstr "Выживите на протяжении недели" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gray wheel" -msgid_plural "gray wheels" -msgstr[0] "серое колесо" -msgstr[1] "серых колеса" -msgstr[2] "серых колес" -msgstr[3] "серые колеса" - -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gray mass with water has resulted in something that appears to be " -"a cross between a wheel, an otherworldly abomination, and one of those old " -"squeezy toys." -msgstr "" -"В результате наполнения серой массы водой получилось что-то среднее между " -"колесом, инопланетной гадостью и одной из тех старых игрушек-пищалок." +#: lang/json/achievement_from_json.py +msgid "28 days later" +msgstr "28 дней спустя" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "earthen roller" -msgid_plural "earthen rollers" -msgstr[0] "земляной каток" -msgstr[1] "земляных катка" -msgstr[2] "земляных катков" -msgstr[3] "земляные катки" - -#. ~ Description for {'str': 'earthen roller'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A large, spherical blob the size of a large truck tire. The outer layer has" -" compacted itself into a solid shell; offering great resilience. Having " -"grown to full size, it seems content to simply sit there." -msgstr "" -"Большой сферический сгусток размером с большую шину грузовика. Внешний слой " -"уплотнился в твердый панцирь с прекрасной упругостью. Похоже, он " -"окончательно вырос и ему нравится сидеть на своём месте." +#: lang/json/achievement_from_json.py +msgid "Survive for a month" +msgstr "Выживите на протяжении месяца" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "oozing wheel" -msgid_plural "oozing wheels" -msgstr[0] "слизевое колесо" -msgstr[1] "слизевых колеса" -msgstr[2] "слизевые колеса" -msgstr[3] "слизевых колес" - -#. ~ Description for {'str': 'oozing wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling an oozing mass with water has resulted in something that appears to " -"be a cross between a wheel, an otherworldly abomination, and one of those " -"old squeezy toys." -msgstr "" -"В результате наполнения слизевой массы водой получилось что-то среднее между" -" колесом, инопланетной гадостью и одной из тех старых игрушек-пищалок." +#: lang/json/achievement_from_json.py +msgid "A time to every purpose under heaven" +msgstr "Время всякой вещи под небом" #: lang/json/achievement_from_json.py -msgid "One down, billions to go…" -msgstr "Один есть, осталось 7 миллиардов…" +msgid "Survive for a season" +msgstr "Выживите на протяжении сезона" #: lang/json/achievement_from_json.py -msgid "Rude awakening" -msgstr "Грубое пробуждение" +msgid "Brighter days ahead?" +msgstr "Лучшие дни впереди?" #: lang/json/achievement_from_json.py -msgid "The first day of the rest of their unlives" -msgstr "Первый день из оставшихся после их смерти" +msgid "Survive for a year" +msgstr "Выживите в течение года" #: lang/json/achievement_from_json.py msgid "Pheidippides was a hack" msgstr "Фидиппид жульничал" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." msgstr "Пробегите марафон… и еще немного." @@ -120547,7 +116938,6 @@ msgstr "Пробегите марафон… и еще немного." msgid "Please don't fall down at my door" msgstr "Чтоб я тебя не видел поблизости" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." msgstr "Пройти 500 миль, а затем еще 500." @@ -120568,9 +116958,21 @@ msgstr "И выше нет горы" msgid "Ain't no valley low enough" msgstr "И глубже нет пещеры" +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "Любимая игрушка Фримена" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "Непробиваемый" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "Что они скрывают?" + #: lang/json/activity_type_from_json.py msgid "reloading" -msgstr "перезаряжаться" +msgstr "перезарядка" #: lang/json/activity_type_from_json.py msgid "finding a mount" @@ -120578,7 +116980,7 @@ msgstr "поиск скакуна" #: lang/json/activity_type_from_json.py msgid "reading" -msgstr "читать" +msgstr "чтение" #: lang/json/activity_type_from_json.py msgid "constructing" @@ -120606,7 +117008,7 @@ msgstr "рубка брёвен" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "butchering" -msgstr "разделки" +msgstr "разделка" #: lang/json/activity_type_from_json.py msgid "chopping trees" @@ -120618,19 +117020,19 @@ msgstr "рыбалка" #: lang/json/activity_type_from_json.py msgid "playing" -msgstr "играть" +msgstr "игра" #: lang/json/activity_type_from_json.py msgid "waiting" -msgstr "ожидать" +msgstr "ожидание" #: lang/json/activity_type_from_json.py msgid "crafting" -msgstr "производить" +msgstr "производство" #: lang/json/activity_type_from_json.py msgid "disassembly" -msgstr "разбирать" +msgstr "разборка" #: lang/json/activity_type_from_json.py msgid "field dressing" @@ -120696,10 +117098,6 @@ msgstr "разогревание" msgid "de-stressing" msgstr "снятие стресса" -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr "разрезание ткани" - #: lang/json/activity_type_from_json.py msgid "dropping" msgstr "бросание" @@ -120786,7 +117184,7 @@ msgstr "попытка завести машину" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "welding" -msgstr "сварки" +msgstr "сварка" #: lang/json/activity_type_from_json.py msgid "cracking" @@ -120818,7 +117216,7 @@ msgstr "взаимодействие с NPC" #: lang/json/activity_type_from_json.py msgid "catching breath" -msgstr "отдышаться" +msgstr "отдых, чтобы отдышаться" #: lang/json/activity_type_from_json.py msgid "clearing that rubble" @@ -120838,7 +117236,7 @@ msgstr "разрезание металла" #: lang/json/activity_type_from_json.py msgid "prying nails" -msgstr "вытащить гвозди" +msgstr "вытаскивание гвоздей" #: lang/json/activity_type_from_json.py msgid "chopping down a tree" @@ -120854,7 +117252,7 @@ msgstr "нарезание досок" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "drilling" -msgstr "сверления" +msgstr "сверление" #: lang/json/activity_type_from_json.py msgid "churning earth" @@ -120866,7 +117264,7 @@ msgstr "сажание семян" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "digging" -msgstr "копания" +msgstr "копание" #: lang/json/activity_type_from_json.py msgid "filling" @@ -120910,7 +117308,7 @@ msgstr "общение с деревьями" #: lang/json/activity_type_from_json.py msgid "eating" -msgstr "есть" +msgstr "перекус" #: lang/json/activity_type_from_json.py msgid "consuming" @@ -121130,11 +117528,7 @@ msgstr "батарейки" #: lang/json/ammunition_type_from_json.py msgid "cents" -msgstr "центов" - -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "плутоний" +msgstr "центы" #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" @@ -121158,7 +117552,7 @@ msgstr "концентрированный спирт" #: lang/json/ammunition_type_from_json.py msgid "20x66mm caseless shotgun" -msgstr "20x66 мм безгильзовые, дробовики" +msgstr "20x66 мм безгильзовые, дробь" #: lang/json/ammunition_type_from_json.py msgid "5x50mm flechette" @@ -121182,7 +117576,7 @@ msgstr "ампула" #: lang/json/ammunition_type_from_json.py msgid "stimulant module" -msgstr "модуль стимулятор" +msgstr "модуль стимулятора" #: lang/json/ammunition_type_from_json.py msgid "components" @@ -121260,14 +117654,6 @@ msgstr "картечные патроны" msgid "pulse ammo" msgstr "импульсные патроны" -#: lang/json/ammunition_type_from_json.py -msgid "6.54x42mm" -msgstr "6,54x42 мм" - -#: lang/json/ammunition_type_from_json.py -msgid ".20 DREAD Pellets" -msgstr "пули .20 ТРЕПЕТ" - #: lang/json/ammunition_type_from_json.py msgid "black powder ammo" msgstr "боеприпасы с чёрным порохом" @@ -121313,40 +117699,8 @@ msgid "mana energy" msgstr "энергия маны" #: lang/json/ammunition_type_from_json.py -msgid "javelin" -msgstr "дротик" - -#: lang/json/ammunition_type_from_json.py -msgid "120mm shell" -msgstr "120 мм" - -#: lang/json/ammunition_type_from_json.py -msgid "155mm shell" -msgstr "155 мм" - -#: lang/json/ammunition_type_from_json.py -msgid "30x113mm" -msgstr "30x113 мм" - -#: lang/json/ammunition_type_from_json.py -msgid "heavy projectiles" -msgstr "тяжёлые снаряды" - -#: lang/json/ammunition_type_from_json.py -msgid "ballista bolt" -msgstr "осадный болт" - -#: lang/json/ammunition_type_from_json.py -msgid "bladed disk" -msgstr "диск с лезвиями" - -#: lang/json/ammunition_type_from_json.py -msgid "crystalline shards" -msgstr "кристаллические осколки" - -#: lang/json/ammunition_type_from_json.py -msgid "vortex energy" -msgstr "вихревая энергия" +msgid "heady vapours" +msgstr "пьянящие пары" #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" @@ -121436,10 +117790,10 @@ msgstr "" " должны выплюнуть или проглотить слёзы." #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" +msgid "Alloy Plating - head" msgstr "Металлическое покрытие — Голова" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -121464,10 +117818,10 @@ msgstr "" "боем." #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" +msgid "Alloy Plating - torso" msgstr "Металлическое покрытие — Торс" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -121478,7 +117832,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Battery System" -msgstr "Поглощение батарей" +msgstr "Система зарядки от батарей" #. ~ Description for {'str': 'Battery System'} #: lang/json/bionic_from_json.py @@ -121504,9 +117858,9 @@ msgid "" "prevent you from holding anything else while extended." msgstr "" "Смертоносный тридцатисантиметровый клинок из новейших материалов, " -"имплантированый в ваше предплечье. Его можно выдвинуть из запястья за " -"небольшое количество энергии. Он невероятно острый, но в выдвинутом " -"состоянии не позволит вам что-либо держать в руках." +"имплантированый в ваше предплечье. Его можно выдвинуть из запястья, " +"использовав небольшое количество энергии. Он невероятно острый, но в " +"выдвинутом состоянии не позволит вам что-либо держать в руках." #: lang/json/bionic_from_json.py msgid "Shotgun Arm" @@ -121591,7 +117945,7 @@ msgid "" "Lying just beneath your skin is a thin armor made of carbon nanotubes. This" " reduces bashing damage by 2 and cutting damage by 4." msgstr "" -"Тонкий защитный слой из углеродных нанотрубок сразу под кожей. Это уменьшает" +"Тонкий защитный слой из углеродных нанотрубок прямо под кожей. Это уменьшает" " урон от удара на 2, от порезов на 4." #: lang/json/bionic_from_json.py lang/json/gun_from_json.py @@ -121744,8 +118098,8 @@ msgid "" "A malfunctioning bionic which occasionally discharges electricity through " "your body, causing pain and brief paralysis but no damage." msgstr "" -"Неисправный бионик периодически пронзает ваше тело электрическими разрядами," -" вызывая боль и короткий паралич, но без повреждений." +"Неисправная бионика периодически пронзает ваше тело электрическими " +"разрядами, вызывая боль и короткий паралич, но без повреждений." #. ~ Description for {'str': 'Electrical Drain'} #: lang/json/bionic_from_json.py @@ -121895,7 +118249,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Fingerhack" -msgstr "Палецхак" +msgstr "Пальцехак" #. ~ Description for {'str': 'Fingerhack'} #: lang/json/bionic_from_json.py @@ -122127,7 +118481,7 @@ msgid "" "power. It is supposed to run continuously and may cause unpleasant side " "effects when turned off." msgstr "" -"У вас есть бионические стимуляторы, улучшающие систему кроветворения и " +"У вас есть бионические стимуляторы, усиливающие кроветворную систему и " "ускоряющие образование лейкоцитов за счёт бионической энергии. Система " "предназначена для постоянного использования, и её отключение может повлечь " "неприятные побочные эффекты." @@ -122185,8 +118539,8 @@ msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " "negating any vision penalties." msgstr "" -"На ваших глазах есть тонкая мембрана, прикрывающая их под водой. Избавляет " -"зрение под водой от всех неудобств." +"На ваших глазах есть тонкая мембрана, прикрывающая их под водой. Позволяет " +"видеть под водой безо всяких неудобств." #: lang/json/bionic_from_json.py msgid "Enhanced Memory Banks" @@ -122252,7 +118606,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Artificial Night Generator" -msgstr "Искусственный генератор ночи" +msgstr "Генератор искусственной ночи" #. ~ Description for {'str': 'Artificial Night Generator'} #: lang/json/bionic_from_json.py @@ -122442,8 +118796,8 @@ msgid "" "radiation at the cost of some bionic power." msgstr "" "Система из хирургически имплантированных высокотехнологичных " -"пьезомеханических фильтров крови. Будучи активными, они постепенно очищают " -"организм от поглощённой радиации за счёт бионической энергии." +"пьезомеханических фильтров крови. В активном состоянии они постепенно " +"очищают организм от поглощённой радиации за счёт бионической энергии." #: lang/json/bionic_from_json.py msgid "Railgun" @@ -122596,7 +118950,7 @@ msgid "" "chemistry in such a way as to cause fatigue. You will find yourself tiring " "a bit faster than before." msgstr "" -"Благодаря сочетанию психохимической манипуляции и старомодной электрической " +"Из-за сочетания психохимической манипуляции и старомодной электрической " "стимуляции нервов, эта неисправная бионика изменяет химию вашего мозга таким" " образом, чтобы вызвать усталость. Вы будете уставать немного быстрее, чем " "раньше." @@ -122976,7 +119330,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Advanced Microreactor System" -msgstr "Система улучшенного микрореактора" +msgstr "Улучшенный микрореактор" #. ~ Description for {'str': 'Advanced Microreactor System'} #: lang/json/bionic_from_json.py @@ -123015,7 +119369,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Microreactor System" -msgstr "Система микрореактора" +msgstr "Микрореактор" #. ~ Description for {'str': 'Microreactor System'} #: lang/json/bionic_from_json.py @@ -123160,13 +119514,26 @@ msgstr "" "гормонов удовольствия в ваш мозг, вызывая ощущение эйфории, что сильно " "поднимает настроение." +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top" +" of your spine. They are all dead now but there is unfortunately a dead man" +" switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" +"Вы работали на плохих людей. Людей, что установили бомбу в основание вашего " +"черепа. Теперь они все мертвы, но к сожалению, в ней установлен механизм, " +"который нужно проверять примерно раз в 30 дней. Вам нужно поскорее от этого " +"избавиться." + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" -msgstr[0] "ионный перегрузочный генератор" -msgstr[1] "ионных перегрузочных генератора" -msgstr[2] "ионных перегрузочных генераторов" -msgstr[3] "ионные перегрузочные генераторы" +msgstr[0] "Генератор ионной перегрузки" +msgstr[1] "Генератора ионной перегрузки" +msgstr[2] "Генераторов ионной перегрузки" +msgstr[3] "Генераторы ионной перегрузки" #. ~ Description for {'str': 'Blood Power Generator CBM'} #: lang/json/bionic_from_json.py @@ -123496,6 +119863,22 @@ msgstr "Пришить шерстяную подкладку" msgid "Destroy wool lining" msgstr "Удалить подкладку из шерсти" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "Пацифист" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "Не убивать монстров" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "Не убивать людей" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "Милосердие" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -123751,7 +120134,7 @@ msgstr "Строить металлическую крышу" #: lang/json/construction_from_json.py msgid "Must be supported on at least two sides." -msgstr "Должно быть поддержано как минимум с двух сторон." +msgstr "Должно иметь опору как минимум с двух сторон." #: lang/json/construction_from_json.py msgid "Build Concrete Roof" @@ -123771,7 +120154,7 @@ msgstr "Строить каменную стену" #: lang/json/construction_from_json.py msgid "Build Dry Stone Wall" -msgstr "Строить стену из сухой кладки" +msgstr "Строить стену сухой кладкой" #: lang/json/construction_from_json.py msgid "Build Pony Wall" @@ -123851,7 +120234,7 @@ msgstr "Строить ворота из сетки рабица" #: lang/json/construction_from_json.py msgid "Needs to be supported on both sides by fencing, walls, etc." -msgstr "Должно быть поддержано с обеих сторон оградой, стенами и т.д." +msgstr "Должно иметь опору с обеих сторон в виде ограды, стены и т.д." #: lang/json/construction_from_json.py msgid "Build Screen Door" @@ -124317,6 +120700,10 @@ msgstr "Построить форт из подушек" msgid "Build Cardboard Fort" msgstr "Построить картонный форт" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "Построить замок из песка" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "Оборудовать кострище" @@ -124506,26 +120893,10 @@ msgstr "Рубить ствол дерева на брёвна" msgid "Makeshift Wall" msgstr "Самодельная стена" -#: lang/json/construction_from_json.py -msgid "Build Hydroponics" -msgstr "Построить Гидропонику" - -#: lang/json/construction_from_json.py -msgid "Build Hydroponics Heater" -msgstr "Построить гидропонный нагреватель" - #: lang/json/construction_from_json.py msgid "Build Translocator Gate" msgstr "Строить врата транслокатора" -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" -msgstr "Собрать корм сгустка из ямы с трупами: Разбить для сбора" - -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "Собрать корм сгустка из шламоотстойника: Разбить для сбора" - #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." msgstr "Вам снится странный сон про ящериц." @@ -124727,7 +121098,7 @@ msgid "" "While dreaming, you see yourself dressed in a hospital gown, receiving " "treatment." msgstr "" -"Во сне вы видите себя в больничном халате, получающим медицинскую помощь." +"Во сне вы видите себя в больничной пижаме, получающим медицинскую помощь." #: lang/json/dream_from_json.py msgid "You have strange dreams of soaring through the sky." @@ -124948,7 +121319,7 @@ msgstr "После пробуждения вы в панике, что вас в #: lang/json/dream_from_json.py msgid "You vividly dream of running with your pack, hunting a wild animal." -msgstr "Вы видите яркий сон об охоте в стае своих сородичей." +msgstr "Вы видите яркий сон об охоте со стаей своих сородичей." #: lang/json/dream_from_json.py msgid "A terrifyingly real dream has you killing game with your bare teeth." @@ -125028,7 +121399,7 @@ msgid "" "life." msgstr "" "Вы чувствуете, что с трудом контролируете конечности после сна, в котором вы" -" были аморфным сгустком жизни." +" были аморфным живым сгустком." #: lang/json/dream_from_json.py msgid "Your dream of living in the dark for years is almost real." @@ -125079,7 +121450,7 @@ msgstr "" #: lang/json/dream_from_json.py msgid "NO! You will not allow this corruption to prevail!" -msgstr "НЕТ! Вы не позволите этой порче победить!" +msgstr "НЕТ! Вы не позволите порче победить!" #: lang/json/dream_from_json.py msgid "You see yourself reflected in the beauty of the forest." @@ -125110,8 +121481,8 @@ msgid "" "station isn't far now, with all its soda and chips and- UGH, dream..." msgstr "" "Вы прошмыгиваете между ног зомби. Вы слишком малы, чтобы они могли поймать " -"вас. Автозаправка уже не так далеко, со всей её газировкой и чипсами и… ААХ," -" это всего лишь сон…" +"вас. Автозаправка уже не так далеко, со всей её газировкой и чипсами и… Ах " +"черт, это всего лишь сон…" #: lang/json/dream_from_json.py msgid "" @@ -125171,7 +121542,7 @@ msgid "" "You wonder if you could find one of those 'salmon runs', or if they were " "just a legend..." msgstr "" -"Вам интересно, смогли бы вы найти один из этих «лососёвых ходок», или же это" +"Вам интересно, смогли бы вы найти одну из этих «лососёвых ходок», или же это" " просто легенда?" #: lang/json/dream_from_json.py @@ -125210,7 +121581,8 @@ 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 "" @@ -125327,7 +121699,7 @@ msgstr "" #: lang/json/dream_from_json.py msgid "You find your paws twitching. There's a cave. You should go." msgstr "" -"Вы обнаруживаете, что ваши лапы подёргиваются. Где-то там пещера. Должен " +"Вы обнаруживаете, что ваши лапы подёргиваются. Где-то там пещера. Нужно " "идти." #: lang/json/dream_from_json.py @@ -125358,7 +121730,7 @@ msgstr "Ваше тело течёт немного быстрее, чем вы #: lang/json/dream_from_json.py msgid "FIGHT. FEED. FORWARD." -msgstr "ДЕРИСЬ. КОРМИСЬ. ВПЕРЁД." +msgstr "СРАЖАЙСЯ. ЕШЬ. НЕ ОСТАНАВЛИВАЙСЯ." #: lang/json/dream_from_json.py msgid "Oh. No, that 'rex' thing was only a myth." @@ -125387,7 +121759,7 @@ msgstr "" #: lang/json/dream_from_json.py msgid "We have been waiting a long time for a place such as this." -msgstr "Мы долгое время ждали таких мест, как это." +msgstr "Мы долгое время искали такое место." #: lang/json/dream_from_json.py msgid "We will raise bountiful orchards and beautiful gardens." @@ -125439,14 +121811,14 @@ msgid "" " caress and lift your fronds" msgstr "" "Вы стоите на краю разлома в чужые земли. Бурые газы ласкают и поднимают ваши" -" листья" +" листья." #: lang/json/dream_from_json.py msgid "" "You dream of being vivsected by humans. One asks if the other thinks you " "can feel pain." msgstr "" -"Вам снится ,как вас расчленяют люди. Один из них спрашивает другого, можете " +"Вам снится, как вас расчленяют люди. Один из них спрашивает другого, можете " "ли вы чувствовать боль." #: lang/json/dream_from_json.py @@ -125476,6 +121848,103 @@ msgstr "" msgid "You have transitioned from a dying race to a glorious future." msgstr "Вы покинули умирающую расу на пути к яркому будущему." +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "" +"Вам приснился странный сон о громоподобном топоте по древней хрупкой тундре," +" хрустящей под вашими толстыми круглыми ногами." + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "Ваши сны оставляют странное, томное, тяжелое чувство." + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded" +" by snow and bitter pelting winds, you feel confident and toasty-warm " +"beneath your shaggy coat." +msgstr "" +"Вам снится, как вы качаете своей тяжелой головой, чтобы стряхнуть налипший " +"снег и лед с ваших больших прозрачных карих глаз. Вес головы кажется " +"странным, как будто… что-то лишнее по обе стороны рта, и, хотя вы окружены " +"снегом и сильными ветрами, вы чувствуете себя уверенно и жарко под своей " +"косматой шерстью." + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" +"Вам снится поток мохнатого глинисто-коричневого меха, который тянется в " +"океан леденящего кровь белого цвета. Вместе вы сильны. Когда вы " +"оглядываетесь вокруг, вы видите лица слонов, оглядывающиеся со всех сторон, " +"и вы знаете, что это отражения вашего лица. Вы просто… знаете." + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is" +" restored." +msgstr "" +"Вам снится ваша обычная терпеливая томность, прерыванная вспышкой белых " +"зубов на пропитанной чем-то красным морде. В одно мгновение громовая ярость " +"охватывает вас, и вы трубите свою ярость… а затем опускаете трубящий хобот, " +"бьёте своими тяжелыми копьями слоновой кости по обе стороны от него " +"нападавшего на вас. Он лежит, его кости разбиты, истекает красным на ледяное" +" белое, заставляя его парить. И тут ваше спокойствие восстанавливается." + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill" +" for anyone or anything to bother trying to attack. And if they do… it'll " +"be the last mistake of their life. Waking up gives you a brief jolt of " +"fear and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" +"Вас снится, как вы медленно, терпеливо, блуждаете по миру, идёте от цели к " +"цели, без спешки и тревоги, потому что вы слишком велики и сильны, чтобы " +"кто-то или что-то убило вас, а если же попытается… это будет последней " +"ошибкой в их жизни. Пробуждение вызывает у вас краткий приступ страха и " +"дисфории, потому что ваше тело чувствует себя таким слабым, хрупким и " +"неправильным по сравнению с теперь знакомой вам мощью." + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" +"Ваши мысли во сне могут быть медленными, и вам может потребоваться некоторое" +" время, чтобы прийти к заключению, но в куда торопиться? Что за спешка? Вы -" +" огромное и древнее вещь с родословной, которая восходит к тому времени, " +"когда разумная жизнь впервые смогла поднять заостренную палку и назвать себя" +" превосходящей формой жизни. Вы огромны и сильны, и все, что восстаёт против" +" тебя, падет. Вы… теперь у вас есть все время в мире." + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one" +" through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "" +"Жизнь одинока без вашей семьи с бивнями рядом с вами, топочущей как единое " +"целое в этом пустынном мире в поисках укромного места. Возможно… возможно, " +"вы должны создать свою семью." + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "Вам снится странный сон о тенях." @@ -126053,7 +122522,7 @@ msgstr "Остолбеневший" #. ~ Description of effect 'Stunned'. #: lang/json/effects_from_json.py msgid "Your movement is randomized." -msgstr "Ваше движение не управляемо." +msgstr "Вы не можете контролировать свои движения." #. ~ Apply message for effect(s) 'Stunned'. #: lang/json/effects_from_json.py @@ -126085,7 +122554,7 @@ msgstr "Езда" #. ~ Description of effect 'Riding'. #: lang/json/effects_from_json.py msgid "You are riding an animal." -msgstr "Вы едете на животном." +msgstr "Вы едете верхом." #. ~ Apply message for effect(s) 'Riding'. #: lang/json/effects_from_json.py @@ -126137,13 +122606,13 @@ msgstr "Потушила огонь." #: lang/json/effects_from_json.py msgid "Unstable footing" -msgstr "Нестабильное основание" +msgstr "Неровная поверхность" #. ~ Description of effect 'Unstable footing'. #: lang/json/effects_from_json.py msgid "" "Your footing is unstable. It's more difficult to fight while standing here." -msgstr "Вы стоите на нестабильном основании. Здесь труднее вести бой." +msgstr "Вы стоите на неровной поверхности. Здесь труднее вести бой." #. ~ Apply message for effect(s) 'Unstable footing'. #: lang/json/effects_from_json.py @@ -126194,7 +122663,7 @@ msgstr "Звон в ушах" #. ~ Description of effect 'Ringing ears'. #: lang/json/effects_from_json.py msgid "You can barely hear anything and your ears hurt." -msgstr "Вы едва что-нибудь слышите, и ваши уши болят." +msgstr "Вы едва можете слышать, и ваши уши болят." #: lang/json/effects_from_json.py lang/json/mutation_from_json.py msgid "Deaf" @@ -126358,8 +122827,6 @@ msgid "Stuck in beartrap" msgstr "Попал в медвежий капкан" #. ~ Description of effect 'Stuck in beartrap'. -#. ~ Description of effect 'Stuck in a light snare'. -#. ~ Description of effect 'Stuck in a heavy snare'. #: lang/json/effects_from_json.py msgid "You can't move until you get free!" msgstr "Вы не сможете двигаться, пока не освободитесь!" @@ -126520,7 +122987,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Took Thorazine" -msgstr "Принятый Торазин" +msgstr "Принятый торазин" #. ~ Description of effect 'Took Thorazine'. #: lang/json/effects_from_json.py @@ -126725,6 +123192,52 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "Излечила грибковую инфекцию." +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "Тронутый разум" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "Вы дезориентированы, пока в вашем разуме вспыхивают странные видения." + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "Вы ошеломлены пугающими образами и идеями, которые заполнили вас." + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "Заражённый разум" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "Вы не можете осознать, что вас окружает…" + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "Сильно заражённый разум" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "Вы больше не знаете, что вообще реально…" + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, +#. Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "Ваше чувство реальности искажается!" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly +#. tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "Заражённый" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "Галлюцинации" @@ -126842,7 +123355,7 @@ msgstr "Холодно" #: lang/json/effects_from_json.py #, python-format msgid "Your %s is very exposed to the cold." -msgstr "%s очень сильно замёрзла." +msgstr "%s очень сильно мёрзнет." #: lang/json/effects_from_json.py msgid "Freezing" @@ -126852,7 +123365,7 @@ msgstr "Холодно" #: lang/json/effects_from_json.py #, python-format msgid "Your %s is dangerously cold!" -msgstr "%s опасно замёрзла!" +msgstr "%s опасно мёрзнет!" #: lang/json/effects_from_json.py src/panels.cpp msgid "Warm" @@ -126872,7 +123385,7 @@ msgstr "Жарко" #: lang/json/effects_from_json.py #, python-format msgid "Your %s is sweating from the heat." -msgstr "%s потеют от высокой температуры." +msgstr "%s потеет от высокой температуры." #: lang/json/effects_from_json.py msgid "Scorching" @@ -126882,7 +123395,7 @@ msgstr "Обжигающе" #: lang/json/effects_from_json.py #, python-format msgid "Your %s is sweating profusely!" -msgstr "%s сильно потеют!" +msgstr "%s сильно потеет!" #: lang/json/effects_from_json.py msgid "Slowdown" @@ -126935,7 +123448,7 @@ msgstr "Обморожение" #: lang/json/effects_from_json.py #, python-format msgid "Your %s is frostbitten! Its tissues are frozen from the cold!" -msgstr "%s обморожен! Его ткани промёрзли от холода!" +msgstr "Часть тела (%s) обморожена! Её ткани промёрзли от холода!" #: lang/json/effects_from_json.py msgid "Defrosting" @@ -127269,8 +123782,8 @@ msgstr "Вы чувствуете головокружение." msgid "" "That critter's jumping around like a jitterbug! It needs to mellow out." msgstr "" -"То существо дёргается вокруг как будто в нервном припадке! Это должно " -"пройти." +"То существо дёргается вокруг как будто в нервном припадке! Ему нужно " +"расслабиться." #: lang/json/effects_from_json.py msgid "Contact Lenses" @@ -127284,7 +123797,7 @@ msgstr "Вы носите контактные линзы." #. ~ Apply message for effect(s) 'Contact Lenses'. #: lang/json/effects_from_json.py msgid "You can see more clearly." -msgstr "У вас более ясное зрение." +msgstr "У вас видите более четко." #. ~ Remove message for effect(s) 'Contact Lenses'. #: lang/json/effects_from_json.py @@ -127387,7 +123900,7 @@ msgstr "Не вдохнуть… Приступ астмы!" #. Heavy Asthma'. #: lang/json/effects_from_json.py msgid "You're winded." -msgstr "Вам скучно." +msgstr "Вы запыхались." #: lang/json/effects_from_json.py msgid "The ceiling collapses on you!" @@ -127566,14 +124079,14 @@ msgstr "Ваши кости обрели обычную прочность." #. ~ Decay message for effect(s) 'Hypocalcemia, Weak bones, Brittle bones'. #: lang/json/effects_from_json.py msgid "Your calcium deficiency is nearly resolved." -msgstr "Кальций в организме приходит в норму." +msgstr "Уровень кальция в организме приходит в норму." #. ~ Decay message for effect(s) 'Hypocalcemia, Weak bones, Brittle bones'. #: lang/json/effects_from_json.py msgid "Your bones become stronger as your calcium deficiency improves." msgstr "" -"Ваши кости становятся сильнее, поскольку кальций в организме приходит в " -"норму." +"Ваши кости становятся прочнее, поскольку уровень кальция в организме " +"приходит в норму." #: lang/json/effects_from_json.py msgid "Iron deficiency" @@ -127761,7 +124274,7 @@ msgstr "Беспокоящие симптомы" #. ~ Description of effect 'Concerning symptoms'. #: lang/json/effects_from_json.py msgid "Your muscles keep twitching strangely." -msgstr "Ваши мышцы продолжают спазмировать." +msgstr "Ваши мышцы продолжают испытывать спазмы." #: lang/json/effects_from_json.py msgid "Unnerving symptoms" @@ -127773,8 +124286,7 @@ msgid "" "Your nervous system is malfunctioning, almost like it's being torn apart " "from the inside." msgstr "" -"Ваша нервная система работает со сбоями, почти как будто она разрывается " -"изнутри." +"Ваша нервная система работает со сбоями, словно она разрывается изнутри." #: lang/json/effects_from_json.py msgid "Gross food" @@ -127835,7 +124347,7 @@ msgstr "Повреждённая конечность медленно восс #: lang/json/effects_from_json.py msgctxt "physically" msgid "Disabled" -msgstr "Отключено" +msgstr "Травма" #. ~ Description of effect '{'ctxt': 'physically', 'str': 'Disabled'}'. #: lang/json/effects_from_json.py @@ -127865,7 +124377,7 @@ msgstr "Это существо было частично или полност #: lang/json/effects_from_json.py msgid "Sheared" -msgstr "Подстрижен" +msgstr "Подстрижено" #. ~ Description of effect 'Sheared'. #: lang/json/effects_from_json.py @@ -128137,9 +124649,29 @@ msgstr "" msgid "You're disgusted by the goop." msgstr "Жижа вызывает у вас отвращение." +#: lang/json/effects_from_json.py src/character.cpp +msgid "Full" +msgstr "Сытый" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "Вы наелись и чувствуете себя расслабленно." + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "Объелся" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "Вы обожрались. Не стоило." + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" -msgstr "препарат магния" +msgstr "Препарат магния" #. ~ Description of effect 'Magnesium Supplements'. #: lang/json/effects_from_json.py @@ -128152,7 +124684,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Religious Offense" -msgstr "Религиозное Оскорбление" +msgstr "Религиозное оскорбление" #. ~ Description of effect 'Religious Offense'. #: lang/json/effects_from_json.py @@ -128163,10 +124695,6 @@ msgstr "" "Тэг ИИ, когда вы оскорбили NPC определённой опцией в диалоге. Если вы видите" " это у себя — это баг." -#: lang/json/effects_from_json.py src/character.cpp src/character.cpp -msgid "Full" -msgstr "Сытый" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -128467,7 +124995,7 @@ msgstr "Покалывание прекращается, ваша жизнь с #: lang/json/effects_from_json.py msgid "Debug Feather Fall" -msgstr "Отладочное Падение как перо" +msgstr "Отладочное Падение перышка" #. ~ Description of effect 'Debug Feather Fall'. #: lang/json/effects_from_json.py @@ -128547,20 +125075,6 @@ msgstr "Биомантический яд" msgid "You feel sluggish and weak, from magically-induced poisoning." msgstr "Вы чувствуете усталость и слабость от отравления магией." -#: lang/json/effects_from_json.py -msgid "Stuck in a light snare" -msgstr "Застреваете в лёгких силках" - -#. ~ Apply message for effect(s) 'Stuck in a light snare'. -#. ~ Apply message for effect(s) 'Stuck in a heavy snare'. -#: lang/json/effects_from_json.py -msgid "You are snared!" -msgstr "Вы попали в ловушку!" - -#: lang/json/effects_from_json.py -msgid "Stuck in a heavy snare" -msgstr "Застреваете в тяжёлых силках" - #: lang/json/effects_from_json.py msgid "Gummed" msgstr "Вляпался в жвачку" @@ -128587,6 +125101,74 @@ msgstr "Вы покрыты жвачкой!" msgid "The gum webs constrict your movement." msgstr "Паутина из жвачки сковывает ваши движения." +#: lang/json/effects_from_json.py +msgid "Debugged" +msgstr "Отлажен" + +#. ~ Description of effect 'Debugged'. +#: lang/json/effects_from_json.py +msgid "" +"You have been debugged!\n" +"Everything is working perfectly now." +msgstr "" +"Вы были отлажены!\n" +"Теперь все работает как положено." + +#. ~ Apply message for effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Diving into your source, you find a rubber duck, and talk it to death." +msgstr "" +"Нырнув прямо в исходный код, вы нашли резиновую уточки и заговорили ее до " +"смерти." + +#. ~ Speed name of effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Optimized" +msgstr "Оптимизированный" + +#: lang/json/effects_from_json.py +msgid "Min-Maxed" +msgstr "Принцип минимакс" + +#. ~ Description of effect 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "" +"All the benefits of being the worst with none of the drawbacks of being the " +"best!" +msgstr "Все преимущества и никаких недостатков!" + +#. ~ Apply message for effect(s) 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "You feel your internal metrics stretch like a fun-house mirror." +msgstr "" +"Вы чувствуете, как ваши навыки растут во все стороны, словно в кривом " +"зеркале." + +#: lang/json/effects_from_json.py +msgid "Whoa" +msgstr "Оооо" + +#: lang/json/effects_from_json.py +msgid "Wut?" +msgstr "Чо?" + +#: lang/json/effects_from_json.py +msgid "Wow!" +msgstr "Вау!" + +#: lang/json/effects_from_json.py +msgid "" +"Everything is just way too intense, man!\n" +"You feel confused and disoriented." +msgstr "" +"Все слишком насыщено, чувак!\n" +"Вы дезориентированы и чувствуете себя потерянно." + +#. ~ Apply message for effect(s) 'Whoa, Wut?, Wow!'. +#: lang/json/effects_from_json.py +msgid "!!Intensity intensifies!!" +msgstr "!!насыщенность насыщается!!" + #: lang/json/faction_from_json.py msgid "Your Followers" msgstr "Ваши союзники" @@ -129099,7 +125681,7 @@ msgstr "Деактивировать иммобилайзер, который п #: lang/json/fault_from_json.py #, python-format msgid "You successfully deactivate the immobiliser of the %s." -msgstr "Вы успешно деактивировали иммобилайзер в %s." +msgstr "Вы успешно деактивировали иммобилайзер в транспорте (%s)." #: lang/json/fault_from_json.py msgid "Faulty diesel pump" @@ -129122,7 +125704,7 @@ msgstr "Заменить неисправный дизельный насос" #: lang/json/fault_from_json.py #, python-format msgid "You replace the faulty diesel pump of the %s" -msgstr "Вы заменили неисправный дизельный насос в %s" +msgstr "Вы заменили неисправный дизельный насос в транспорте (%s)." #: lang/json/fault_from_json.py msgid "Expired air filter" @@ -129488,7 +126070,7 @@ msgstr "яркий луч света" #: lang/json/field_type_from_json.py msgid "spotlight" -msgstr "прожектор" +msgstr "свет прожектора" #: lang/json/field_type_from_json.py msgid "dazzling" @@ -129768,9 +126350,12 @@ msgstr "охладитель" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." msgstr "" -"Здоровенный угловатый металлический аппарат для охлаждения больших комнат." +"Большое, угловатое устройство из листового метала. Распространено и обычно " +"используется для охлаждения помещений." #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -129787,20 +126372,23 @@ msgstr "центральный воздушный фильтр" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" -msgstr "Очищает воздух от пыли, частичек дыма и многого другого!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." +msgstr "" +"Большая синтетическая мембрана, отфильтровывающая пыль, дым, насекомых и " +"прочие загрязнители из проходящего через неё воздуха." #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them" -" clean and to save people an unpleasant chore. Now, with the power gone and" -" it sitting for a while, it's starting to smell a bit off." +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." msgstr "" -"Металлическая коробка, обливающая грязные тарелки горячей водой с мылом, " -"чтобы они стали чистыми. Когда-то спасала людей от муторной домашней работы." -" Теперь, когда прошло какое-то время без электричества, начинает немного " -"попахивать." +"Большая, квадратная машина, которая использует горячую воду и мыло для " +"эффективной очистки посуды. Она уже некоторое время стоит без питания, и " +"изнутри доносится запах гнили." #: lang/json/furniture_from_json.py msgid "dryer" @@ -129808,8 +126396,12 @@ msgstr "сушилка" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." -msgstr "Здесь можно было бы высушить одежду, если бы было электричество." +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." +msgstr "" +"Бытовой прибор используется для быстрой сушки больших партий одежды после " +"стирки." #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "refrigerator" @@ -129818,13 +126410,11 @@ msgstr "холодильник" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." msgstr "" -"Заморозьте свои продукты с помощью потрясающей науки об электричестве! Хотя " -"подождите, электричества же нет. Что ж, если не будете открывать, внутри " -"может остаться немного прохлады." +"Высокий металлический контейнер, который при включении замораживает пищу и " +"другие скоропортящиеся продукты для сохранения." #: lang/json/furniture_from_json.py msgid "glass door fridge" @@ -129833,10 +126423,15 @@ msgstr "холодильник со стеклянной дверью" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without" +" letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." msgstr "" -"Вот это да! Можно увидеть, что лежит в холодильнике и что он не работает, не" -" открывая его!" +"Современный холодильник с толстым листом стекла в двери, часто специально " +"доработанный для лучшей изоляции содержимого. Позволяет просматривать " +"содержимое, не выпуская холодного воздуха, что раньше было приятным " +"удобством, а теперь экономит драгоценные минуты до порчи." #: lang/json/furniture_from_json.py msgid "furnace" @@ -129846,16 +126441,19 @@ msgstr "печь" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." +"the air through a building's ventilation system to keep it warm." msgstr "" "Централизованный газовый нагреватель с принудительной вентиляцией. " -"Внутренний вентилятор гонит воздух по воздушным шахтам и согревает здание." +"Внутренний вентилятор гонит воздух системе вентиляции и согревает здание." #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." msgstr "" -"Здесь можно было бы постирать ваши грязные вещи, если бы было электричество." +"Большая, угловатая машина, которая использует мыло и большое количество воды" +" для стирки одежды с минимальными усилиями." #: lang/json/furniture_from_json.py msgid "oven" @@ -129864,13 +126462,12 @@ msgstr "духовка" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." msgstr "" -"Для приготовления и разогрева еды при помощи электричества. Не работает, " -"несмотря на целостность, но зато её можно разобрать на части. Если " -"требуется, внутри можно безопасно развести огонь." +"Стандартная конвекционная печь, обычно используемая для нагрева и " +"приготовления пищи. Несмотря на то, что она больше не работает, вы можете " +"спокойно разжечь огонь внутри." #: lang/json/furniture_from_json.py msgid "blacksmith bellows" @@ -129879,11 +126476,13 @@ msgstr "кузнечные меха" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." msgstr "" -"Ими нагнетают воздух, чтобы повысить температуру в кузнице. Непохоже, чтоб " -"эти меха работали, хотя сгодятся на запчасти." +"Старинное устройство, предназначенное для нагнетания воздуха в кузнечный " +"горн для усиления горения и повышения температуры. В таком виде бесполезно, " +"но можно разобрать на запчасти." #: lang/json/furniture_from_json.py msgid "blacksmith drop hammer" @@ -129892,24 +126491,31 @@ msgstr "кузнечный паровой молот" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." +"An anvil with a large metal hammer suspended above it in a metal framework." +" If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." msgstr "" -"Инструмент для массового производства металлических вещей. Непохоже, чтоб он" -" работал, хотя сгодится на запчасти." +"Наковальня с подвешенным над ней в раме огромным металлическим молотом. Если" +" бы она работала, с ее помощью можно было бы придавать форму размягченным " +"жаром металлическим пластинам, но сейчас ее можно разве что разобрать на " +"запчасти." #: lang/json/furniture_from_json.py msgid "document shredder" -msgstr "шредер" +msgstr "измельчитель бумаги" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." msgstr "" -"Для скрытия правительственных секретов и не только. Иногда просто нужно " -"предотвратить утечку личных данных." +"Простое электронное устройство, закреплённое над большой корзиной. " +"Использовалось для эффективного уничтожения документов с важной или " +"конфиденциальной информацией. Сгодится на запчасти, так как корпоративный " +"шпионаж и кража личности вряд ли возможны в этом мире." #: lang/json/furniture_from_json.py msgid "server stack" @@ -129917,8 +126523,14 @@ msgstr "серверная стойка" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." -msgstr "Много компьютеров. Все выключены." +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." +msgstr "" +"Большая стойка со специализированными компьютерами для хранения и передачи " +"данных. Без питания не может работать по своему прямому назначению. С нее " +"можно снять подключенные ноутбуки" #: lang/json/furniture_from_json.py msgid "large satellite dish" @@ -129927,11 +126539,15 @@ msgstr "большая спутниковая тарелка" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes" +" have all been lost." msgstr "" -"Где-то там наверху всё ещё есть спутники, летающие по орбите и занимающиеся " -"своими делами. Они посылают на Землю сигналы, но Земля их больше не слушает." +"Большая вогнутая металлическая панель с простой электронной начинкой, " +"используемая для приема сигналов от спутников. Хотя сотни дорогих устройств," +" вращающихся на орбитах вокруг планеты, вероятно, будут продолжать " +"функционировать неопределенно долго, смысла в этом уже не будет" #: lang/json/furniture_from_json.py msgid "mounted solar panel" @@ -129939,22 +126555,34 @@ msgstr "солнечная панель" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." -msgstr "Установленная солнечная панель." +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." +msgstr "" +"Набор фотоэлектрических элементов, превращающих солнечный свет в " +"электричество. Были полезными перед Катаклизмом, а теперь стали бесценными " +"для любого выжившего." #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py msgid "whack!" -msgstr "«хрясь!»" +msgstr "хрясь!" #: lang/json/furniture_from_json.py msgid "road barricade" -msgstr "баррикады" +msgstr "дорожное заграждение" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." -msgstr "Баррикада. Для перегораживания дорог." +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." +msgstr "" +"Большое деревянное заграждение, блокирующее проезд по дороге. На ней " +"закреплена светоотражающая лента, чтобы ее было лучше видно. Несмотря на " +"название, вряд ли сможет остановить автомобиль." #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp @@ -129972,8 +126600,12 @@ msgstr "баррикада из мешков с землёй" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." -msgstr "Мешок с землёй, обычно используется для защиты от пуль." +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." +msgstr "" +"Низкая стена из сложенных друг на друга мешков с землёй. Обычно используется" +" как укрытие от пуль или для защиты от потопа." #: lang/json/furniture_from_json.py msgid "rrrip!" @@ -129985,8 +126617,10 @@ msgstr "стена из мешков с землёй" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." -msgstr "Стена из мешков с землёй." +msgid "A wall of stacked earthbags, a bit taller than an average adult." +msgstr "" +"Стена из сложенных друг на друга мешков с землёй. Высотой примерно с " +"взрослого человека." #: lang/json/furniture_from_json.py msgid "lane guard" @@ -129994,8 +126628,8 @@ msgstr "отбойник" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." -msgstr "Использовались для регулирования трафика." +msgid "A simple wooden post to mark the separation between street lanes." +msgstr "Обычный деревянный столб, разграничивающий полосы движения." #: lang/json/furniture_from_json.py msgid "sandbag barricade" @@ -130003,8 +126637,12 @@ msgstr "баррикада из мешков с песком" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." -msgstr "Мешок с песком, обычно используется для защиты от пуль." +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." +msgstr "" +"Низкая стена из сложенных друг на друга мешков с песком. Обычно используется" +" как укрытие от пуль или для защиты от потопа." #: lang/json/furniture_from_json.py msgid "sandbag wall" @@ -130012,8 +126650,10 @@ msgstr "стена из мешков с песком" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." -msgstr "Стена из мешков с песком." +msgid "A wall of stacked sandbags, a bit taller than an average adult." +msgstr "" +"Стена из сложенных друг на друга мешков с песком. Высотой примерно с " +"взрослого человека." #: lang/json/furniture_from_json.py msgid "standing mirror" @@ -130021,8 +126661,12 @@ msgstr "напольное зеркало" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" -msgstr "Отлично выгляжу — эй, это что, кровь?" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all" +" of the dirt and blood on your clothes, and the weariness in your eyes." +msgstr "" +"Зеркало в полный рост в изящной металлической раме. Вы видите кровь и грязь " +"на своей одежде и усталость с своих глазах." #: lang/json/furniture_from_json.py msgid "glass breaking" @@ -130035,11 +126679,12 @@ msgstr "сломанное зеркало" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." msgstr "" -"Можно было бы посмотреть на себя, если бы зеркало не было покрыто трещинами " -"и сколами." +"Рама ростового зеркала, большая часть отражающего стекла отсутствует. " +"Оставшееся в раме выглядит как опасно щерящиеся зубы из осколков." #: lang/json/furniture_from_json.py msgid "bitts" @@ -130048,8 +126693,8 @@ msgstr "кнехты" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." msgstr "" "Пара вертикальных железных столбиков, установленных на причале, пирсе или " "набережной. Они используются для надежного привязывания шнуров, веревок, " @@ -130057,16 +126702,12 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "manacles" -msgstr "наручники" +msgstr "кандалы" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." -msgstr "" -"Заточите рабов в своё подземелье. Всё, чего не хватает — приклепать цепью " -"железный шар." +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." +msgstr "Пара металлических кандалов, прикреплённая цепью к земле или полу." #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py @@ -130079,11 +126720,12 @@ msgstr "статуя" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." -msgstr "Скульптура, вырезанная из камня." +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." +msgstr "Цельный кусок огромного камня, стёсанный до произведения искусства." -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." msgstr "стук." @@ -130094,11 +126736,13 @@ msgstr "манекен" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." msgstr "" -"Нацепи на него одежду, поговори с ним. Кто ж будет против? Погоди… он только" -" что пошевелился?" +"Фигура человека в натуральную величину, обычно используемая для демонстрации" +" товара в магазинах одежды или портными для создания нового дизайна. " +"Учитывая все происходящее, в ней есть что-то пугающее." #: lang/json/furniture_from_json.py msgid "birdbath" @@ -130106,8 +126750,12 @@ msgstr "фонтанчик для птиц" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." -msgstr "Декоративный каменный фонтанчик для птиц на пьедестале." +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." +msgstr "" +"Широкая каменная чаша на основании, обычно наполняющаяся дождевой водой. " +"Предназначена как ванночка и место отдыха для птиц." #: lang/json/furniture_from_json.py msgid "rotary clothes dryer line" @@ -130115,8 +126763,12 @@ msgstr "вращающаяся сушка для одежды" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." -msgstr "Сушилка для одежды в виде зонтика на шесте." +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to" +" hang up clothes to dry in the sunlight." +msgstr "" +"Металлический шест, поддерживающий широкую вращающуюся раму. Предназначен " +"для сушки одежды на солнце." #: lang/json/furniture_from_json.py msgid "floor lamp" @@ -130124,10 +126776,12 @@ msgstr "напольная лампа" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." msgstr "" -"Высокая стоячая лампа. Чтобы подсветить комнату, нужно подсоединить к " -"розетке." +"Светильник, закрепленный на верхушке металлического шеста. Нужно воткнуть в " +"розетку, чтобы осветить комнату." #: lang/json/furniture_from_json.py msgid "bonk!" @@ -130142,14 +126796,32 @@ msgstr "еловый венок" msgid "A decorative wreath for the winter holidays." msgstr "Декоративный венок к зимним праздникам." +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "замок из песка" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "" +"Славный замок из песка. Эта могучая крепость простроена на века и будет " +"истинным свидетельством мастерства ее строителя." + +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +msgid "crunch." +msgstr "хруст." + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "декоративное дерево" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." -msgstr "Декоративное дерево к зимним праздникам." +msgid "" +"A decorative pine tree littered with ornaments for the winter holidays." +msgstr "Декоративная ель с украшениями к зимним праздникам." #: lang/json/furniture_from_json.py msgid "indoor plant" @@ -130157,8 +126829,12 @@ msgstr "комнатное растение" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." -msgstr "Декоративное растение." +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried" +" up and died a while ago." +msgstr "" +"Маленькое растения в горшке для украшения помещения. Кажется, оно уже давно " +"засохло и увяло." #: lang/json/furniture_from_json.py msgid "yellow indoor plant" @@ -130166,8 +126842,10 @@ msgstr "жёлтое комнатное растение" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." -msgstr "Жёлтое декоративное растение." +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." +msgstr "Декоративное растение с желтым цветком в горшке. Уже завяло." #: lang/json/furniture_from_json.py msgid "harvestable plant" @@ -130176,16 +126854,11 @@ msgstr "созревшее растение" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to" -" harvest the plant appropriately." +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." msgstr "" -"С этого растения можно собрать урожай. Осмотрите его, чтобы определить, как " -"его можно собрать." - -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py -msgid "crunch." -msgstr "хруст." +"Растение выросло, и с него можно собрать урожай. Изучите его, чтобы узнать, " +"как." #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -130198,8 +126871,8 @@ msgstr "взрослое растение" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." -msgstr "Это растение полностью выросло." +msgid "This plant has matured, and will be ready to harvest before long." +msgstr "Это растение дозревает, и скоро будет урожай." #: lang/json/furniture_from_json.py msgid "seed" @@ -130208,11 +126881,11 @@ msgstr "посев" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into " -"destiny." +"A freshly planted seed. If properly tended to, it could grow into a healthy" +" plant." msgstr "" -"Скромное посаженное семечко. Действия – семена судьбы, дела превращаются в " -"судьбу." +"Недавно посаженное семечко. Если за ним ухаживать, из него вырастет здоровое" +" растение." #: lang/json/furniture_from_json.py msgid "seedling" @@ -130220,12 +126893,12 @@ msgstr "росток" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." -msgstr "Это растение только-только проросло." +msgid "A seed that has just begun to sprout its first roots." +msgstr "Семечко, пустившее первые ростки." #: lang/json/furniture_from_json.py msgid "planter" -msgstr "сеялка" +msgstr "садовый ящик" #. ~ Description for planter #: lang/json/furniture_from_json.py @@ -130241,24 +126914,40 @@ msgid "planter with harvestable plant" msgstr "садовый ящик с плодоносящим растением" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." msgstr "" -"Садовый ящик, покрытый прорезями для дренажа и полный земли. В нём можно " -"что-нибудь вырастить. В этом посажены семена." +"Садовый ящик, покрытый прорезями для дренажа и полный земли. Растение в этом" +" ящике созрело, обследуйте его, чтобы собрать урожай." #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "садовый ящик со взрослым растением" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "" +"Садовый ящик, покрытый прорезями для дренажа и полный земли. Растение в этом" +" ящике почти созрело, скоро можно будет собрать урожай." + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "засеянный садовый ящик" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "" +"Садовый ящик, покрытый прорезями для дренажа и полный земли. В этом ящике " +"посажено зерно, и за ним нужен уход, чтобы оно выросло полностью." + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "садовый ящик с ростком" @@ -130266,11 +126955,11 @@ msgstr "садовый ящик с ростком" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." msgstr "" -"Садовый ящик, покрытый прорезями для дренажа и полный земли. В нём можно " -"что-нибудь вырастить. В этом есть росток." +"Садовый ящик, покрытый прорезями для дренажа и полный земли. Семечко в этом " +"ящике только начало выпускать ростки." #: lang/json/furniture_from_json.py msgid "spider egg sack" @@ -130279,11 +126968,11 @@ msgstr "кладка паучьих яиц" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." msgstr "" -"Кучка слишком больших яиц кремового цвета. Мерзость. Внутри что-то " -"шевелится." +"Немаленькая грязно-белая кладка больших яиц. Приглядевшись, вы видите, как " +"внутри что-то немного шевелится. Гадость." #: lang/json/furniture_from_json.py msgid "splat!" @@ -130292,19 +126981,21 @@ msgstr "«шлёп!»" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." msgstr "" -"Бугорчатая масса паучьих яиц. Страшная мерзость. Внутри что-то шевелится." +"Выпуклая грязно-белая кладка паучьих яиц. Приглядевшись, вы видите, как " +"внутри что-то немного шевелится. Жуткая гадость." #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're" -" seeing this, you're already too close to it." +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." msgstr "" -"Кучка пугающе огромных яиц. Внутри что-то шевелится. Если вы это видите, то " -"подошли слишком близко." +"Огромная кладка паучьих яиц, каждое из них размером больше вашего кулака. " +"Они явно шевелятся. Отвратительно, аж кожа морщится." #: lang/json/furniture_from_json.py msgid "ruptured egg sack" @@ -130312,8 +127003,12 @@ msgstr "разорённая кладка яиц" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." -msgstr "Невероятная мерзость. Наружу выливаются паучьи внутренности." +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." +msgstr "" +"Отвратительная распотрошенная кладка огромных паучьих яиц. Мысль об огромных" +" новорожденных паучках, высыпающих из неё наружу, просто ужасает." #. ~ Description for swamp gas #: lang/json/furniture_from_json.py @@ -130369,12 +127064,12 @@ msgstr "камин" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." msgstr "" -"Ах. Можно сесть перед камином, любоваться огнём и забыть, что мир вокруг " -"порушен. До конца света это можно было сделать и перед телевизором." +"Типичное приспособление для безопасного разведения огня в помещении с " +"дымоходом для отвода дыма наружу. Опасно оставлять без присмотра, пока " +"горит." #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -130394,16 +127089,35 @@ msgstr "дровяная печь" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." msgstr "" -"Дровяная плита для приготовления и разогрева еды. Гораздо лучше открытого " -"огня." +"Простая металлическая печь для разведения огня на дровах. Хорошо подходит " +"для приготовления пищи или разогрева пищи и безопасна в помещении." #. ~ Description for brazier #: lang/json/furniture_from_json.py msgid "A raised metal dish in which to safely burn things." msgstr "Металлическая тарелка на ножках для безопасного розжига огня." +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" +"Большая металлическая бочка, в которой можно безопасно развести огонь. В её " +"стенках пробиты отверстия для подачи воздуха." + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" +"Здоровенная металлическая бочка, в которой можно безопасно развести огонь. В" +" её стенках пробиты отверстия для подачи воздуха." + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "кострище" @@ -130571,11 +127285,11 @@ msgstr "цветок марло" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." msgstr "" "Этот цветок похож на остальные заражённые грибком цветы, но его стебель " -"ярко-голубого цвета, а его запах одурманивающий и… аппетитный?" +"ярко-голубого цвета, а его запах одурманивающий и… странно заманчивый?" #: lang/json/furniture_from_json.py msgid "poof." @@ -130585,11 +127299,12 @@ msgstr "«пуф.»" #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." +"color has been leached from its petals and stem. It gently sways of its own" +" volition, maintaining an unsettling rhythm." msgstr "" "Этот цветок окутан серыми жилистыми грибковыми ростками, его лепестки и " -"стебель полностью потеряли цвет. Он мягко покачивается по своей воле." +"стебель полностью потеряли цвет. Он мягко покачивается по своей воле, " +"поддерживая нервирующий ритм." #: lang/json/furniture_from_json.py msgid "fungal mass" @@ -130599,11 +127314,10 @@ msgstr "грибная масса" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." +"soft to the touch, but not firm enough to hold any weight." msgstr "" "Поверхность, полностью покрытая толстыми жгутами грибковой материи. На ощупь" -" она мягкая, но вы утопаете в ней, поэтому передвижение несколько " -"затруднено." +" она мягкая и не может поддерживать вес." #: lang/json/furniture_from_json.py msgid "fungal clump" @@ -130612,10 +127326,11 @@ msgstr "грибная глыба" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." msgstr "" -"Тесно перемешанные иноземные плесень и стебли, образовавшие подобие грибного" -" куста." +"Тесно перемешанные иноземные плесень и стебли, перемешанные и " +"покачивающиеся, образовавшие подобие грибного куста." #: lang/json/furniture_from_json.py msgid "fungal tangle" @@ -130632,7 +127347,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "squelch." -msgstr "шумоподавление." +msgstr "хлюп." #: lang/json/furniture_from_json.py msgid "stone slab" @@ -130640,8 +127355,8 @@ msgstr "каменная плита" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." -msgstr "Плоская пластина тяжёлого камня." +msgid "A slab of heavy stone, with a reasonably flat surface." +msgstr "Плита из камня со сравнительно ровной поверхностью." #: lang/json/furniture_from_json.py msgid "headstone" @@ -130649,8 +127364,14 @@ msgstr "надгробие" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." -msgstr "Под ним кто-то лежит." +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" +"Большая каменная плита, на которой вырезана информация о покоящейся под ней " +"личности. Хотя это еще одно упоминание о бесчисленных жертвах Катаклизма, " +"надлежащее место последнего упокоения придает странного чувства покоя." #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -130664,8 +127385,14 @@ msgstr "могильный камень" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." -msgstr "Под ним кто-то лежит. Лежит со стилем." +msgid "" +"An upright slab of stone with information engraved on the face about whoever" +" lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" +"Вертикальная каменная плита, на которой вырезано лицо покоящейся под ней " +"личности. Хотя это еще одно упоминание о бесчисленных жертвах Катаклизма, " +"надлежащее место последнего упокоения придает странного чувства покоя." #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -130673,8 +127400,14 @@ msgstr "потрескавшийся могильный камень" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." -msgstr "Стёртый надгробный камень." +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." +msgstr "" +"Старый, выветренный могильный камень, поврежденный настолько, что невозможно" +" разобрать надпись. Кто бы под ним не покоился, ему пожалуй повезло отойти в" +" лучший мир задолго до всего этого хаоса." #: lang/json/furniture_from_json.py msgid "obelisk" @@ -130682,8 +127415,14 @@ msgstr "обелиск" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." -msgstr "Монумент гордости." +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." +msgstr "" +"Великолепная резная статуя с гравированной доской, прикрепленной к " +"основанию. Она служит для того, чтобы почтить смерть кого-то значимого, " +"хотелось бы, чтобы это было по прежнему значимо." #: lang/json/furniture_from_json.py msgid "thunk!" @@ -130697,10 +127436,12 @@ msgstr "роботизированный сборщик" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." msgstr "" "Прочная и гибкая роботизированная рука с инструментом на конце для работы на" -" конвейере." +" конвейере. Несмотря на то, что её уже не выйдет использовать по назначению," +" из неё наверняка можно вытащить кучу полезный запчастей." #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "chemical mixer" @@ -130709,11 +127450,11 @@ msgstr "химический миксер" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." +"A large vat with a motorized mixing device for combining large quantities of" +" chemicals." msgstr "" -"Если требуется смешать большие объёмы химикатов в нужном соотношении и при " -"нужной температуре, этот инструмент как раз подойдёт." +"Большой чан с электрическим миксером для смешивания больших объемов " +"химических реагентов." #: lang/json/furniture_from_json.py msgid "robotic arm" @@ -130722,13 +127463,14 @@ msgstr "роботизированная рука" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." msgstr "" -"Автоматизация! Наука! Промышленность! В этой роборуке есть всё. Только " -"электричества нет. Вы можете убрать корпус и достать электронные части путём" -" разборки." +"Автоматизированный роботизированный манипулятор, используемый на сборочных " +"линиях, кажущийся более универсальным, чем специально разработанные " +"сборщики. Несмотря на то, что теперь он не функционирует, его детали могут " +"оказаться полезны." #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py @@ -130742,11 +127484,15 @@ msgstr "автодок" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." +"A surgical apparatus used for installation and removal of bionics. The term" +" name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." msgstr "" -"Хирургическая аппаратура, используется для установки и удаления бионики. " -"Только он такой же квалифицированный, как и его оператор." +"Хирургический аппарат, используемый для установки и удаления бионики. Термин" +" «Автодок» является некорректным, так как он может работать только в том " +"случае, если запрограммирован заранее, насчет чего на нем множество пометок," +" предостерегающих против использования без соответствующей подготовки." #: lang/json/furniture_from_json.py msgid "Autodoc operation couch" @@ -130765,13 +127511,12 @@ msgstr "" #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost " -"anything." +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." msgstr "" -"По сути, эта штуковина — чрезвычайно высокотехнологичная стиральная или " -"посудомоечная машина. Прогревает предметы паром при температурах, способных " -"убить почти что угодно." +"Устройство, которое может нагревать содержимое паром до температур, " +"достаточно высоких, чтобы полностью его стерилизовать, убивая любые " +"возможные патогены." #: lang/json/furniture_from_json.py msgid "filled autoclave" @@ -130784,13 +127529,12 @@ msgstr "морозильник для образцов" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the " -"inside." +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." msgstr "" -"Если простого охлаждения недостаточно, существует этот морозильник крайне " -"глубокой заморозки. Хранит содержимое при -80 градусах Цельсия. Лизать " -"металл внутри не рекомендуется." +"Специализированный морозильник, способный поддерживать температуру -80 по " +"Цельсию, обычно используемый только для хранения деликатных научных " +"образцов." #: lang/json/furniture_from_json.py msgid "lab workbench" @@ -130829,13 +127573,13 @@ msgstr "шейкер-инкубатор" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow" -" bacteria. This is great for microbiology, but terrible for preserving " -"food." +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." msgstr "" "Инструмент для поддержания перемешивания питательной среды при нужной " -"температуре и выращивания бактерий. Отлично служит микробиологии, но для " -"сохранения еды подходит ужасно." +"температуре для выращивания бактерий. Хотя еще больше бактерий вам скорее " +"всего ни к чему, учитывая обстоятельства." #: lang/json/furniture_from_json.py msgid "emergency wash station" @@ -130844,13 +127588,15 @@ msgstr "аварийный душ" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running" -" water, you could use those attachments to wash harmful chemicals out of " -"your eyes, or to take a pleasant cold shower in a public place." +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." msgstr "" -"Шест с множеством странных форсунок и приспособлений. При наличии проточной " -"воды вы бы могли с их помощью вымыть опасные химикаты из глаз или принять " -"милый холодный душ у всех на виду." +"Стоящая раковина с парой насадок и большой яркой ручкой. Она специально " +"разработан для быстрого удаления загрязнений из глаз, и её легко " +"использовать, не имея возможности хорошо видеть. Яркая надпись предупреждает" +" не пить воду, используемую в этом аппарате." #: lang/json/furniture_from_json.py msgid "IV pole" @@ -130858,8 +127604,12 @@ msgstr "стойка для капельниц" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." -msgstr "По сути, это просто палка на колёсиках с крючками на верхушке." +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." +msgstr "" +"Высокая тонкая стойка на маленьких колесиках, используемая для подвешивания " +"капельниц, используется для введения лекарств без постоянного присмотра." #: lang/json/furniture_from_json.py msgid "high performance liquid chromatographer" @@ -130869,14 +127619,14 @@ msgstr "высокоэффективный жидкостный хроматог #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on" +" their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" "При наличии электричества и опытного оператора этот высокотехнологичный " "инструмент очень полезен для разделения жидких или растворённых в воде " -"химических веществ на основе их сродства к твёрдому сорбенту в трубке. Иными" -" словами, это хитрый способ разделять вещества." +"химических веществ на основе их сродства к твёрдому сорбенту в трубке. По " +"крайней мере, так написано на его маркировке." #: lang/json/furniture_from_json.py msgid "gas chromatographer" @@ -130886,14 +127636,14 @@ msgstr "газовый хроматограф" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." msgstr "" "При наличии электричества и опытного оператора этот высокотехнологичный " "инструмент очень полезен для разделения газообразных химических веществ на " -"основе их сродства к твёрдому сорбенту в трубке. Иными словами, это хитрый " -"способ разделять вещества." +"основе их сродства к твёрдому сорбенту в трубке. По крайней мере, так " +"написано на его маркировке. " #: lang/json/furniture_from_json.py msgid "mass spectrometer" @@ -130902,16 +127652,18 @@ msgstr "масс-спектрометр" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other" +" advanced sciences, it's not as useful anymore." msgstr "" "Внутри этот аппарат содержит тщательно сбалансированные генераторы " "электрического поля, способные точно отделять ионизированные частицы на " "основе соотношения заряда к массе и посылать их в детектор, измеряющий " -"точную массу регистрируемой частицы. Снаружи это очень скучная белая " -"коробка." +"точную массу регистрируемой частицы. Бесценный прибор для химического " +"анализа и продвинутых научных экспериментов, но сейчас от него никакой " +"пользы." #: lang/json/furniture_from_json.py msgid "nuclear magnetic resonance spectrometer" @@ -130920,14 +127672,13 @@ msgstr "спектрометр ядерно-магнитного резонан #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." msgstr "" -"Огромный электромагнит в фантастически выглядящем аппарате. Каким-то образом" -" он дёргает молекулярные связи или типа того и благодаря этому заглядывает в" -" самые глубины строения химических веществ! Магниты: как они работают?" +"Огромный электромагнит с точно настроенным измерительным оборудованием для " +"наблюдения изменения спина атомных ядер. Рабочая лошадка в разработке и " +"исследовании химических структур." #: lang/json/furniture_from_json.py msgid "electron microscope" @@ -130936,12 +127687,10 @@ msgstr "электронный микроскоп" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." msgstr "" -"Огромный инструмент, показывающий очень мелкие предметы при помощи отражения" -" электронов от поверхностей. Отлично выполняет мерзкие картинки с " -"насекомыми." +"Огромный инструмент для изучения образцов невероятно маленького масштаба." #: lang/json/furniture_from_json.py msgid "CT scanner" @@ -130950,13 +127699,12 @@ msgstr "аппарат КТ" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of" -" radio-opacity." +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." msgstr "" -"Огромный пончикообразный аппарат, быстро посылающий серии сотни " -"рентгеновских лучей и рисующий действительно классную картинку ваших " -"внутренностей с разным уровнем лучевой проницаемости." +"Огромная установка, испускающая рентгеновские лучи для снятия сотен снимков " +"со всех 360 градусов от изучаемого объекта. Обычно используется при " +"медобследованиях." #: lang/json/furniture_from_json.py msgid "MRI machine" @@ -130965,14 +127713,12 @@ msgstr "аппарат МРТ" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't" -" excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." +"A massive tool used to take NMR images of a patient placed inside, providing" +" invaluable medical insight." msgstr "" -"По сути это установка ядерно-магнитного резонанса, в которую помещается " -"человек, но людям не особенно нравилось лезть в маленькую дырку в шумной " -"машине под названием «томограф ядерно-магнитного резонанса», так что его " -"переименовали." +"Массивный аппарат, используемый для съемки пациента, помещенного внутрь, с " +"использованием ядерной магнитной томографии, что предоставляет море " +"медицинской информации." #: lang/json/furniture_from_json.py msgid "scanner bed" @@ -130981,8 +127727,8 @@ msgstr "кушетка для томографии" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." msgstr "" "Узкая неудобная кушетка для помещения кого-нибудь в томограф или похожую " "маленькую дыру." @@ -130994,13 +127740,14 @@ msgstr "аппарат для анестезии" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." msgstr "" -"Для проведения операции нужно удерживать человека на нужном уровне сна, а " -"это непросто. Эта машина помогает анестезиологу поддерживать нужную смесь " -"препаратов и воздуха, чтобы пациент спал." +"Большой аппарат с различными резервуарами, трубками и контрольными " +"устройствами, используемый для поддержания точных уровней анестезии у " +"пациента, чтобы гарантировать, что он, в идеале, останется спящим, " +"бесчувственным, но живым." #: lang/json/furniture_from_json.py msgid "dialysis machine" @@ -131009,13 +127756,13 @@ msgstr "аппарат для диализа" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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." +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." msgstr "" -"Если ваши почки отказали, эта большая громоздкая машина поработает за них! " -"Чрезвычайно полезна после апокалипсиса, особенно с учётом потребления " -"энергии, кучи расходников и потребности в обученном персонале." +"Большой аппарат для прокачки и фильтрации крови человека, страдающего " +"почечными болезнями. В значительной степени устарел для тех, кто имеет " +"доступ к бионике, но был спасательным кругом для тех, кто в этом нуждается." #: lang/json/furniture_from_json.py msgid "medical ventilator" @@ -131024,12 +127771,12 @@ msgstr "аппарат для искусственной вентиляции л #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." msgstr "" -"Когда говорят про «дыхательную машину», к которой лучше бы не попадать, речь" -" именно об этой штуке. Выглядит как пара коробок на тележке." +"Большой ящик на колесиках, который нагнетает воздух в легкие пациента, когда" +" он неспособен дышать, зачастую это временная мера." #: lang/json/furniture_from_json.py msgid "privacy curtain" @@ -131065,7 +127812,7 @@ msgstr "светящийся жгутик" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." +"faint light spills from it." msgstr "" "Изящный жгутик, растущий из пола. Он мягко колышется взад и вперёд. Из него " "проливается тусклый свет." @@ -131083,21 +127830,21 @@ msgstr "парящий анемон" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." +"even waving gently as though underwater." msgstr "" "Растущий из пола мясистый белый бугорок с пучком выливающихся щупалец. Он " "очень похож на морской анемон, даже мягко колышется, как будто под водой." #: lang/json/furniture_from_json.py msgid "gasping tube" -msgstr "задыхающаяся трубка" +msgstr "пыхтящая трубка" #. ~ Description for gasping tube #: lang/json/furniture_from_json.py msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." msgstr "" "Мясистый зелёный сталактит с толстой шкурой, похожей на кожу морской звезды," @@ -131111,9 +127858,9 @@ msgstr "дёргающаяся ветка" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." +"A spine resembling moth antennae juts from the ground, swaying gently in the" +" air. Every so often, a cascade of energy arcs along it and discharges into" +" the ceiling." msgstr "" "Похожий на усик мотылька отросток, выпирающий из земли. Он мягко колышется " "на ветру. Периодически по нему пробегает энергетический разряд, исчезая в " @@ -131126,11 +127873,11 @@ msgstr "опухоль со шрамами" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases" -" out of injured vessels." +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." msgstr "" -"Куча непонятной дёргающейся инопланетной плоти, изрыгающая странные газы из " -"повреждённых сосудов." +"Куча неописуемой дёргающеся инопланетной плоти, изрыгающая странные газы из " +"повреждённых органов." #: lang/json/furniture_from_json.py msgid "slimy pod" @@ -131199,11 +127946,13 @@ msgstr "ванна" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The" -" plug is intact, so you could use it to store liquids." +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." msgstr "" -"Тут можно было бы лечь и принять расслабляющую ванну, если бы работал " -"водопровод. Затычка на месте, так что в ней можно хранить жидкости." +"Обычная керамическая ванна с уже неработающим стальным краном и пробкой, " +"закрепленной над сливом. Водонепроницаемая и относительно чистая, может " +"послужить неплохим открытым контейнером для жидкости.." #: lang/json/furniture_from_json.py msgid "porcelain breaking!" @@ -131219,8 +127968,14 @@ msgstr "душ" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." -msgstr "Если бы была вода, здесь можно было бы помыться." +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to" +" imagine wasting that much water." +msgstr "" +"Небольшой керамический поддон со стеклянной дверью и сантехникой для " +"поддержания себя в чистоте. Раньше это было обычным делом, но сейчас трудно " +"себе представить, что тратится столько воды." #: lang/json/furniture_from_json.py msgid "sink" @@ -131229,9 +127984,11 @@ msgstr "раковина" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." msgstr "" -"Дарит облегчение в экстренном случае. Воды нет, так что в целом бесполезна." +"Фарфоровая ёмкость с краном и сливом, предназначенная для установки в " +"отверстие на столешнице." #: lang/json/furniture_from_json.py msgid "toilet" @@ -131240,10 +127997,14 @@ msgstr "унитаз" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the " +"cleanest." msgstr "" -"Фаянсовый трон. Аварийный источник воды из бачка. А ещё дарит облегчение." +"Бесценное приспособление в любом доме, было бы чудом иметь работающий. В " +"бачке могло остаться некоторое количество воды, которая будет чище воды в " +"чаще, но вряд ли она стерильна." #: lang/json/furniture_from_json.py msgid "water heater" @@ -131252,20 +128013,23 @@ msgstr "водонагреватель" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." msgstr "" -"Герметичный металлический бак с водой, подогреваемой до нужной температуры " -"маленькой газовой горелкой." +"Теплоизолированный металлический резервуар с небольшим огоньком, " +"используемый для поддержания температуры, близкой к кипению . Теперь нет " +"возможности его запитать, но большой бак все еще можно использовать для " +"хранения большого количества чистой воды." #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." +"This devices effectively sterilizes water, though without a lot of power and" +" proper plumbing, it's only good for parts now." msgstr "" -"Удаляет растворённые в воде ионы, делая её довольно чистой, если вас это " -"волнует." +"Устройство для эффективной стерилизации воды. Без большого количества " +"энергии и надлежащего обслуживания сгодится только на запчасти." #: lang/json/furniture_from_json.py msgid "exercise machine" @@ -131274,9 +128038,15 @@ msgstr "тренажёр" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." -msgstr "Для тренировок. Вам этого и так хватает, вы спасаетесь бегством." +"A heavy set of weightlifting equipment for strength training, with a pair of" +" heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." +msgstr "" +"Комплект оборудования для тяжелой атлетики и силовых тренировок с парой " +"тяжелых грузов, прикрепленных к противоположным концам прочной трубы. Веса " +"огромны, и использование их без страховки - хороший способ серьезно поранить" +" себя." #: lang/json/furniture_from_json.py msgid "ball machine" @@ -131285,12 +128055,13 @@ msgstr "мяч-машина" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various" -" balls for different types of sports. It's only good for parts now if " -"disassembled." +"A simple machine for launching sports balls of various types, with a pair of" +" motorized wheels that, if spun up, would fling the ball at moderate speeds." +" Probably not the most effective ranged weapon against the undead." msgstr "" -"Обесточенная машина, которая раньше стреляла мячиками для разных видов " -"спорта. Сейчас годится только на запчасти." +"Простая машина для запуска спортивных мячей различных типов с помощью пары " +"моторизованных колес, которые, вращаясь, могут швырять мяч на умеренной " +"скорости. Вероятно, не самое эффективное оружие дальнего боя против нежити." #: lang/json/furniture_from_json.py msgid "pool table" @@ -131298,9 +128069,16 @@ msgstr "бильярдный стол" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." msgstr "" -"Хорошо выглядящий стол для бильярда. Жаль, что вы так и не научились играть." +"Большой деревянный стол с зеленым войлочным покрытием и набором симметричных" +" отверстий, через которые бильярдные шары к попадают в отверстие с одной из " +"сторон. Хотя и не так удобен, как обычный стол, в его конструкции немало " +"дерева." #: lang/json/furniture_from_json.py msgid "diving block" @@ -131308,8 +128086,12 @@ msgstr "подставка для прыжков в воду" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" -msgstr "Прыжок! Ещё прыжок! Нырок!" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." +msgstr "" +"Прямоугольная пластиковая опора, прикрепленная к поверхности, " +"предназначенная для безопасных прыжков в воду." #: lang/json/furniture_from_json.py msgid "target" @@ -131317,9 +128099,17 @@ msgstr "мишень" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped" +" off." msgstr "" -"Металлическая мишень для стрельбы, отдалённо напоминающая силуэт человека." +"Высокий лист металла, удерживаемый вертикальной трубной рамой, вырезанный " +"примерно в форме человека. На нем нарисованы две мишени, побольше на " +"туловище и поменьше на голове. Оно усыпано небольшими вмятинами и " +"отверстиями, а большая часть краски отслоилась или откололась." #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -131328,13 +128118,12 @@ msgstr "игровой автомат" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." msgstr "" -"Играй в глупые игры и выигрывай глупые призы. Ну, так предполагалось. Сейчас" -" электричества нет, и это просто глупая штука. Куда разумнее её разобрать на" -" всяческие полезные электронные запчасти." +"Объемный вертикальный игровой автомат, ярко окрашенный и слегка потертый от " +"старости. Бесполезен по прямому назначению, но в нём наверняка есть полезные" +" детали." #: lang/json/furniture_from_json.py msgid "pinball machine" @@ -131343,13 +128132,15 @@ msgstr "пинбол" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't" -" go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While" +" inoperable without power, it's still impressive to look at, though probably" +" more useful if disassembled." msgstr "" -"Самая недооценённая игра 20-го века. Нажимай кнопки, чтобы шарик не упал в " -"дырку. Без электричества не работает. Можно разобрать на всяческие " -"электронные запчасти." +"Культовая игра - ярко украшенный фон и замысловатая полоса препятствий, " +"спрятанные за стеклом. Несмотря на то, что она не работает без питания, она " +"по-прежнему выглядит впечатляюще, хотя, вероятно, будет полезен, если " +"разобрать её." #: lang/json/furniture_from_json.py msgid "ergometer" @@ -131358,11 +128149,13 @@ msgstr "эргометр" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." +"An exercise machine with a set of handles and plates meant to emulate rowing" +" a boat. Without power it can't be operated, but it might have useful parts" +" to be scavanged." msgstr "" -"Машина для упражнений. Без энергии она не поможет в ваших занятиях. В ней " -"есть полезные электронные запчасти." +"Тренажер с набором ручек и пластин, предназначенный для имитации лодочной " +"гребли. Без электричества его не выйдет использовать, но в нем могут быть " +"полезные части, которые можно снять." #: lang/json/furniture_from_json.py msgid "treadmill" @@ -131371,11 +128164,13 @@ msgstr "беговая дорожка" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be" -" taken apart for its… parts." +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." msgstr "" -"Применялась для тренировки ножных мышц. Сейчас это будет трудно провернуть, " -"без электричества-то. Можно разобрать на части." +"Моторизованная конвейерная лента с панелью управления для бега на месте. Без" +" электричества ленту сдвинуть практически невозможно. В любом случае, вам и " +"так скорее всего хватает физических нагрузок и бега." #: lang/json/furniture_from_json.py msgid "heavy punching bag" @@ -131384,9 +128179,13 @@ msgstr "большая боксёрская груша" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" -msgstr "Удар! Удар! Тренируй руки! Главная фишка - сдачи не даст!" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." +msgstr "" +"Здоровенная кожаная сумка продолговатой формы, подвешенная к потолочному " +"креплению на стальной цепи. Её можно использовать для тренировок и боевой " +"подготовки, а её главное преимущество - она не даст сдачи." #: lang/json/furniture_from_json.py msgid "whud." @@ -131399,11 +128198,14 @@ msgstr "пианино" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." msgstr "" -"Старинное чёрное дерево и слоновая кость. Придаёт шик. Вы могли бы разобрать" -" его на запчасти… вы чудовище." +"Элегантное пианино, способное выдать прекрасную музыку, если на нём играет " +"опытный музыкант. Набор белых и черных клавиш соединен с набором молоточков," +" которые ударяют по соответствующей плотно скрученной струне для создания " +"звука." #: lang/json/furniture_from_json.py msgid "a suffering piano!" @@ -131411,7 +128213,7 @@ msgstr "страдающее пианино" #: lang/json/furniture_from_json.py msgid "kerchang." -msgstr "керчан." +msgstr "бдрынь." #: lang/json/furniture_from_json.py msgid "speaker cabinet" @@ -131420,13 +128222,13 @@ msgstr "акустическая колонка" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things" -" loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." +"An upright wood-panel case of large speakers, built to produce a potentially" +" deafening volume level. While this is a terrible idea to use now, it could" +" hold useful parts." msgstr "" -"Колонка с 30-сантиметровыми динамиками, предназначенная для того, чтобы " -"делать вещи громкими. Теперь она не может служить по назначению, но может " -"быть разобрана на различные электронные части." +"Большие динамики в вертикальном корпусе из деревянных панелей, изготовленные" +" для получения потенциально оглушительного уровня громкости. Хотя " +"использовать их сейчас - ужасная идея, внутри могут быть полезные детали." #: lang/json/furniture_from_json.py msgid "dancing pole" @@ -131434,8 +128236,14 @@ msgstr "танцевальный шест" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." -msgstr "Высокий металлический шест для танцев, закрепленный сверху и снизу." +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." +msgstr "" +"Высокая вертикальная стальная труба, надежно закрепленная на потолке и полу." +" Обычно используется для различных форм танцев, часто в заведениях для " +"взрослых." #: lang/json/furniture_from_json.py msgid "roulette table" @@ -131443,23 +128251,43 @@ msgstr "стол для игры в рулетку" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." -msgstr "Массивный, ободранный стол для игры в рулетку." +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." +msgstr "" +"Огромный стол, специально созданный для определённого вида азартных игр, с " +"решеткой, нарисованной на фетровой обивке, и вогнутым вращающимся колесом, " +"предназначенным для случайного определения результата игры." -#. ~ Description for this should never actually show up, it's a pseudo -#. furniture #: lang/json/furniture_from_json.py msgid "this should never actually show up, it's a pseudo furniture" msgstr "это никогда не должно быть видно, это псевдо-мебель" +#. ~ Description for this should never actually show up, it's a pseudo +#. furniture +#: lang/json/furniture_from_json.py +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." +msgstr "" +"Это абстрактный предмет мебели, и вы не должны это видеть. Пожалуйста, " +"сообщите об ошибке." + #: lang/json/furniture_from_json.py msgid "cell phone signal booster" msgstr "усилитель сигнала сотовых сетей" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." -msgstr "Усилитель сигнала сотового телефона. Сгодится на запчасти." +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." +msgstr "" +"Специализированное оборудование, принимающее телефонные сигналы и " +"усиливающее их для дальнейшей передачи. Теперь, когда для них больше нет " +"сигналов для передачи, можно разве что разобрать на запчасти." #: lang/json/furniture_from_json.py msgid "womp!" @@ -131471,8 +128299,14 @@ msgstr "спутниковая тарелка" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." -msgstr "Маленькая спутниковая тарелка для домашних развлечений." +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." +msgstr "" +"Небольшой диск из листового металла, предназначенный для приема радиоволн с " +"орбитальных спутников. Спутники, которые, несомненно, будут продолжать " +"двигаться по орбите, ничего не передавая." #: lang/json/furniture_from_json.py msgid "chimney crown" @@ -131480,8 +128314,12 @@ msgstr "крышка дымохода" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." -msgstr "Верхушка дымовой трубы. Покрыта сажей." +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." +msgstr "" +"Верх кирпичной трубы, проем почернел от сажи. Определенно слишком узок, " +"чтобы пролезть через него внутрь." #: lang/json/furniture_from_json.py msgid "TV antenna" @@ -131489,8 +128327,13 @@ msgstr "телевизионная антенна" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." -msgstr "Телевизионная антенна для лучшего принятия телевизионного сигнала." +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." +msgstr "" +"Простая металлическая антенна для улучшения приема телевизионных передач. " +"Почти полностью устарела уже давно, и обычно годится только на запчасти." #: lang/json/furniture_from_json.py msgid "vent pipe" @@ -131498,8 +128341,12 @@ msgstr "вентиляционная труба" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." -msgstr "Вентиляционная труба удаляет газы и запахи из здания." +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." +msgstr "" +"Этакий дымоход для системы вентиляции здания, который можно использовать для" +" циркуляции воздуха, отвода паров и подобных функций." #: lang/json/furniture_from_json.py msgid "roof turbine vent" @@ -131508,9 +128355,13 @@ msgstr "вентиляция на крыше" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py msgid "" -"The turbine uses wind power to suck hot and humid air out of the attic." +"A rotary wind turbine that will catch the wind and pull out air from inside." +" It is most commonly used for improving air cicrulation, particularly in " +"poorly-ventilated areas like attics." msgstr "" -"Эта турбина при помощи ветра высасывает из чердака горячий и влажный воздух." +"Вращающаяся ветряная турбина, которая улавливает ветер и вытягивает воздух " +"из помещения. Они чаще всего используются для улучшения циркуляции воздуха, " +"особенно в плохо проветриваемых помещениях, таких как чердаки." #: lang/json/furniture_from_json.py msgid "bale of hay" @@ -131518,8 +128369,13 @@ msgstr "стог сена" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." -msgstr "Стог сена. Если всё совсем плохо, то вы можете спать на нём." +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable" +" bed." +msgstr "" +"Огромный упакованный блок сена, облегчает хранение соломы для скота. Если " +"выбирать между ним и полом, лучше спать на нём." #: lang/json/furniture_from_json.py msgid "whish!" @@ -131531,8 +128387,13 @@ msgstr "кучка опилок" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." -msgstr "Куча измельчённых кусочков древесины. Вы можете убрать её лопатой." +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the" +" way." +msgstr "" +"Большая куча древесных опилок. На ней неприятно лежать, трудно через неё " +"пройти, и она пожароопасна, наверное, лучше убрать её лопатой." #: lang/json/furniture_from_json.py msgid "bench" @@ -131540,8 +128401,13 @@ msgstr "скамья" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." -msgstr "Кровать бомжа. Продувает. Используйте на свой страх и риск." +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." +msgstr "" +"Простая скамья с деревянными планками, прибитыми к раме. Хотя на ней " +"неудобно и так же холодно, как на земле, она может служить кроватью в случае" +" необходимости." #: lang/json/furniture_from_json.py msgid "arm chair" @@ -131549,8 +128415,12 @@ msgstr "кресло" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." -msgstr "В кресле можно сидеть или даже лежать с большим удобством." +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." +msgstr "" +"Простое обитое кресло с подлокотниками. Мягкое и довольно теплое, оно " +"определенно удобнее пола для сна, хотя и ненамного." #: lang/json/furniture_from_json.py msgid "airplane seat" @@ -131558,18 +128428,27 @@ msgstr "самолётное сиденье" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." -msgstr "Самолётное сиденье с ремнём." +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." +msgstr "" +"Дешево обитое складное сиденье самолета, с простым поперечным ремнём " +"безопасности. Вы, вероятно, первый, кто в нём пытается уснуть." #: lang/json/furniture_from_json.py msgid "chair" msgstr "стул" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." -msgstr "Сядь, выпей чего-нибудь." +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat" +" a meal properly and almost pretend that things were normal again." +msgstr "" +"Простой деревянный стул с четырьмя ножками, сиденьем и спинкой. Приятно хоть" +" раз дать ногам отдохнуть, и если рядом есть подходящий стол, вы сможете " +"нормально поесть и почти поверить, что все снова стало нормально." #: lang/json/furniture_from_json.py msgid "sofa" @@ -131577,17 +128456,39 @@ msgstr "диван" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" -msgstr "Можно сесть, а можно даже и лечь! Превосходно!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." +msgstr "" +"Широкое мягкое сиденье, достаточно большое, чтобы два человека могли с " +"комфортом сидеть рядом друг с другом, или чтобы один человек лежал на спине." +" Это не совсем кровать, но намного удобнее, чем пол." #: lang/json/furniture_from_json.py msgid "stool" msgstr "табуретка" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "" +"Простой стул с четырьмя ножками и сиденьем. Хотя на него чуть удобнее " +"садиться, отсутствие поддержки спины означает, что он значительно менее " +"удобен, чем обычный стул." + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." -msgstr "Присядь, выпей чего-нибудь. Можно сложить для удобной переноски." +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." +msgstr "" +"Несколько неудобный складной стул из ткани, натянутой на металлический " +"каркас. Не лучший вариант, но лучше, чем ничего, и его легко упаковать с " +"собой." #: lang/json/furniture_from_json.py msgid "log stool" @@ -131596,11 +128497,11 @@ msgstr "пенёк" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." msgstr "" -"Просто отрезанное бревно, с неровными краями. В целом, очень простое " -"сиденье." +"Короткий отрез ствола дерева, один из плоских концов сглажен. На нём неплохо" +" сидеть, но не так удобно, как на настоящем стуле." #: lang/json/furniture_from_json.py msgid "deck chair" @@ -131609,10 +128510,13 @@ msgstr "шезлонг" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground," +" it's not particularly comfortable." msgstr "" -"Удобное кресло для принятия солнечных ванн. Если бы только у вас было время " -"на это." +"Складной шезлонг из ткани, закрепленной на деревянной раме. Несмотря на то, " +"что он создан для использования на открытом воздухе и удобнее по сравнению с" +" сидением на земле, он не особенно удобен." #: lang/json/furniture_from_json.py msgid "bulletin board" @@ -131621,11 +128525,11 @@ msgstr "доска объявлений" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." msgstr "" -"Большая пробковая доска для объявлений и вывешивания разных заметок. " -"Прикрепите записки для других выживальщиков." +"Широкая пробковая доска на деревянной опоре. Прикрепите записки для других " +"выживальщиков." #: lang/json/furniture_from_json.py msgid "sign" @@ -131633,8 +128537,10 @@ msgstr "знак" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." -msgstr "Доска с текстом. Прочтите, возможно, там что-то важное." +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." +msgstr "Простой указатель из дерева.По сути, две доски, прибитые к столбу." #: lang/json/furniture_from_json.py msgid "warning sign" @@ -131643,9 +128549,12 @@ msgstr "предупредительный знак" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." -msgstr "Треугольный знак на столбике, сообщающий о чём-то важном или опасном." +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." +msgstr "" +"Треугольный указатель белого цвета с красной каймой. Такие знаки, " +"разработанные, чтобы их легко было заметить, редко показывают что-либо, " +"кроме плохих новостей." #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "bed" @@ -131654,8 +128563,13 @@ msgstr "кровать" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." -msgstr "Роскошь в нынешние времена. На ней очень удобно спать." +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." +msgstr "" +"Стандартный матрас на прочной деревянной раме. Даже без одеял и подушек, и, " +"несмотря на то, что это обычный матрас, это приятное зрелище для усталых " +"глаз." #: lang/json/furniture_from_json.py msgid "bunk bed" @@ -131663,8 +128577,16 @@ msgstr "двухэтажная кровать" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." -msgstr "Деревянная двухэтажная кровать с матрасами для двух человек." +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than" +" you'd like to somebody you wouldn't normally want to share a mattress with," +" a bed's a bed." +msgstr "" +"Двухъярусная кровать с прочным деревянным каркасом, вмещающим два матраса " +"для одного человека друг над другом. Хотя это обычно означает, что придётся " +"спать ближе, чем вы хотели бы, с кем-то, с кем вы обычно не хотели бы " +"делиться матрасом, кровать - это кровать." #: lang/json/furniture_from_json.py msgid "bed frame" @@ -131673,11 +128595,12 @@ msgstr "каркас кровати" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place" -" to sleep. Sleeping on it right now wouldn't be great." +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." msgstr "" -"Пустой каркас кровати. Если положить матрас, получится удобное место для " -"сна. Прямо сейчас спать на нём не очень здорово." +"Прочный деревянный каркас кровати, вмещающий большинство стандартных " +"матрасов. Несмотря на то, что он составляет половину кровати, на нём почти " +"невозможно лежать." #: lang/json/furniture_from_json.py msgid "whack." @@ -131686,11 +128609,13 @@ msgstr "хрясь." #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's" -" not quite as comfy as a real bed, but it's pretty close." +"An ordinary mattress left on the floor. While it's not as comfortable as an" +" entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." msgstr "" -"Брошенный на пол матрас, чтобы на нём спать. Не так удобно, как кровать, но " -"довольно близко." +"Обычный матрас, лежащий на полу. Хотя это не так удобно, как целая кровать " +"без матраса, это довольно близко. Если есть место, действительно безопасное " +"для сна, это практически роскошь само по себе." #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py src/map.cpp @@ -131700,12 +128625,14 @@ msgstr "«хррррр!»" #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty " -"close." +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." msgstr "" -"Брошенный на пол пуховой матрас, чтобы на нём спать. Не так удобно, как " -"кровать, но довольно близко." +"Мягкий перьевой матрас, лежащий на полу. Хотя это не так удобно, как целая " +"кровать без матраса, это довольно близко. Если есть место, действительно " +"безопасное для сна, это практически роскошь само по себе." #: lang/json/furniture_from_json.py msgid "makeshift bed" @@ -131713,10 +128640,14 @@ msgstr "самодельная кровать" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal" +" bed, albeit with a slightly lumpy mattress. Considering the circumstances," +" it's not too bad at all." msgstr "" -"Не такая удобная, как настоящая кровать, но всё равно вполне подходит для " -"сна." +"Самодельный матрас на шаткой деревянной раме. Почти так же хорошо, как " +"нормальная кровать, хотя и с немного комковатым матрасом. Учитывая " +"обстоятельства, это очень даже неплохо." #: lang/json/furniture_from_json.py msgid "straw bed" @@ -131724,8 +128655,12 @@ msgstr "соломенная кровать" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." -msgstr "Удобная, но может заставить чесаться, если лечь на неё." +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." +msgstr "" +"Импровизированное спальное место из кучи сена. Лучше, чем ничего, но не " +"очень удобно и сильно колется." #: lang/json/furniture_from_json.py msgid "bookcase" @@ -131733,10 +128668,12 @@ msgstr "книжный шкаф" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." msgstr "" -"Здесь хранятся книги. Ну знаете, такие штуки. Кто сейчас вообще читает " -"книги?" +"Простая деревянная полка, вмещающая десятки книг. Хотя и предназначена для " +"книг, она может хранить все, что влезет." #: lang/json/furniture_from_json.py msgid "entertainment center" @@ -131744,8 +128681,14 @@ msgstr "развлекательный центр" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." -msgstr "Содержит аудио и видео оборудование, книги и другие штуки." +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden" +" cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." +msgstr "" +"Этот большой деревянный шкаф, хоть и не такой крутой, как может показаться " +"из названия, может вмещать множество вещей, таких как телевизор, " +"мультимедийные системы, с полками и шкафами для всего, что влезет." #: lang/json/furniture_from_json.py msgid "coffin" @@ -131753,8 +128696,15 @@ msgstr "гроб" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." -msgstr "Хранит тела бесчисленных жертв Катаклизма." +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will" +" likely never receive." +msgstr "" +"Скромный деревянный гроб для подобающего захоронения умерших. Стандартная " +"практика до Катаклизма, а теперь редкая честь - получить надлежащее место " +"последнего упокоения. Честь, которую многие, вероятно, никогда не получат." #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "wham!" @@ -131767,40 +128717,59 @@ msgstr "открытый гроб" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." msgstr "" -"Хочется надеяться, вы достаточно хорошо сохранитесь для такого, когда придёт" -" время." +"Скромный деревянный гроб для подобающего захоронения умерших. Стандартная " +"практика до Катаклизма, а теперь редкая честь - получить надлежащее место " +"последнего упокоения. Честь, которую многие, вероятно, никогда не получат. " +"Этот открыт и незанят, а взгляд внутрь наполняет вас чувством меланхоличной " +"усталости." #: lang/json/furniture_from_json.py msgid "crate" -msgstr "контейнер" +msgstr "деревянный ящик" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." msgstr "" -"Что там внутри? Взломай и проверь! Или просто сломай, но содержимое может " -"разбиться." +"Запечатанный деревянный контейнер для хранения. На нём нет никаких ярлыков " +"или пометок, внутри может быть что угодно. Если у вас нет подходящего " +"инструмента, чтобы вскрыть его, его можно разбить, хотя и с риском повредить" +" содержимое." #: lang/json/furniture_from_json.py msgid "open crate" -msgstr "открытый контейнер" +msgstr "открытый деревянный ящик" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" -msgstr "Что тут лежит? Подойдите и узнаете!" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of" +" nails, could be sealed back shut." +msgstr "" +"Открытый деревянный ящик для хранения чего угодно. Крышка была снята и " +"прислонена к нему, а с набором гвоздей его можно вновь запечатать." #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." -msgstr "Большая картонная коробка: в ней можно что-то хранить или спрятаться." +"A large box made of a brown paper-based material. Could contain a number of" +" things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect" +" you if you're found." +msgstr "" +"Большая коробка из бурого картона. В неё можно много чего положить или даже " +"спрятаться самому. Только учтите, что у неё две небольших прорези для " +"удобства переноски, через которые ничего особо и не видно, а сама она вас " +"никак не защитит, когда вас найдут." #: lang/json/furniture_from_json.py msgid "crumple!" @@ -131816,8 +128785,12 @@ msgstr "комод" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." -msgstr "Оденьтесь для зомби-выпускного или любого другого случая." +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." +msgstr "" +"Простой деревянный шкаф с колонкой из коротких ящиков. Хотя в нём обычно " +"держат одежду, вы можете хранить в нём всё, что поместится." #: lang/json/furniture_from_json.py msgid "glass front cabinet" @@ -131825,8 +128798,14 @@ msgstr "стеклянный шкаф" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." -msgstr "Высокий шкаф с прозрачным стеклянным окошком." +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." +msgstr "" +"Высокий металлический шкаф, застеклённый спереди и использующийся для " +"демонстрации содержимого. Часто используется для показа редких, красивых или" +" ценных товаров, странно, что на нём нет замка." #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -131840,8 +128819,17 @@ msgstr "оружейный сейф" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." -msgstr "Уууууух. Вот это находка." +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." +msgstr "" +"Большой и тяжелый контейнер с толстыми металлическими стенками и поворотным " +"кодовым замком, предназначенный для надежного хранения огнестрельного " +"оружия, модификаций к нему и боеприпасов. Если бы у вас было что-то, с чем " +"можно слушать его внутренности и чертовски много времени, вы, вероятно, " +"могли бы вскрыть его." #: lang/json/furniture_from_json.py msgid "screeching metal!" @@ -131853,10 +128841,14 @@ msgstr "заклиненный оружейный сейф" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." msgstr "" -"Есть ли в нём оружие или нет, вы уже никогда не узнаете, так как этот сейф " -"заклинило." +"Большой и прочный металлический контейнер для хранения огнестрельного оружия" +" и боеприпасов. К сожалению, замок окончательно сломан, и если не " +"использовать серьёзную технику, у вас нет возможности открыть его." #: lang/json/furniture_from_json.py msgid "electronic gun safe" @@ -131864,8 +128856,16 @@ msgstr "электронный оружейный сейф" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" -msgstr "Интересно, сюда подойдёт эта крутая отмычка?" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking" +" system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." +msgstr "" +"Большой и тяжелый контейнер с толстыми металлическими стенками и электронным" +" замком, предназначенный для надежного хранения огнестрельного оружия, " +"модификаций к нему и боеприпасов. Если бы у вас было что-то, с чем его можно" +" взломать, вы, вероятно, могли бы вскрыть его." #: lang/json/furniture_from_json.py msgid "locker" @@ -131873,8 +128873,12 @@ msgstr "шкафчик" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." -msgstr "В нём обычно хранят оборудование или предметы." +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." +msgstr "" +"Высокий шкафчик из листового металла, пригодный для хранения всего, что " +"влезет." #: lang/json/furniture_from_json.py msgid "mailbox" @@ -131883,11 +128887,13 @@ msgstr "почтовый ящик" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come" -" for awhile. Doesn't look like it's coming again anytime soon." +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." msgstr "" -"Металлический ящик на верхушке деревянного столбика. Почту уже давно не " -"приносили. Непохоже, чтоб её скоро снова начали приносить." +"Небольшой металлический ящик на деревянной стойке, предназначенный для " +"получения почты. Хотя учитывая обстоятельства, он, скорее всего, больше " +"никогда не будет использован по назначению." #: lang/json/furniture_from_json.py msgid "clothing rail" @@ -131895,8 +128901,14 @@ msgstr "вешалка для одежды" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." -msgstr "Вешалка, на которую можно повесить одежду." +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes." +" Usually used in theater or retail environments, it's easy to use and quick" +" to access." +msgstr "" +"Металлическая рама на колесиках для развешивания большого количества одежды." +" Обычно используется в театре или в розничной торговле, её просто " +"использовать, и она даёт быстрый доступ к висящей на неё одежде." #: lang/json/furniture_from_json.py msgid "display rack" @@ -131904,8 +128916,12 @@ msgstr "стеллаж" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." -msgstr "Для показа вещей." +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." +msgstr "" +"Стеллаж из листового металла с поверхностями хранения, наклонёнными таким " +"образом, чтобы демонстрировать хранящиеся предметы." #: lang/json/furniture_from_json.py msgid "wooden rack" @@ -131913,8 +128929,12 @@ msgstr "деревянная стойка" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." -msgstr "Обычная деревянная стойка. Выставите на ней свои вещи." +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." +msgstr "" +"Стеллаж из дерева с поверхностями хранения, наклонёнными таким образом, " +"чтобы демонстрировать хранящиеся предметы." #: lang/json/furniture_from_json.py msgid "coat rack" @@ -131922,8 +128942,11 @@ msgstr "вешалка" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." -msgstr "Вешалка с крючками, можно повесить куртки и шапки." +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." +msgstr "" +"Высокая стойка с крючками, на которые удобно вешать уличную одежду и шляпы." #: lang/json/furniture_from_json.py msgid "recycle bin" @@ -131931,8 +128954,16 @@ msgstr "мусорная корзина" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." -msgstr "Хранит предметы для переработки." +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it." +" While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." +msgstr "" +"Большая пластиковая корзина, окрашенная в зеленый цвет с символом " +"«переработки». Предназначена для хранения выброшенных вещей для последующей " +"переработки, но учитывая радикально изменившиеся в последнее время " +"приоритеты, она может содержать что-нибудь ценное." #: lang/json/furniture_from_json.py msgid "safe" @@ -131940,13 +128971,23 @@ msgstr "сейф" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." -msgstr "Для хранения вещей в безопасности." +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." +msgstr "" +"Небольшая, тяжелая и почти непробиваемая металлическая коробка с поворотным " +"кодовым замком. Хотя сейчас дверца просто прикрыта и не закрыта на замок." #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" -msgstr "Кому сейчас нужна такая защита?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." +msgstr "" +"Небольшая, тяжелая и почти непробиваемая металлическая коробка с поворотным " +"кодовым замком. С чем-нибудь для прослушивания и кучей времени вы могли бы " +"её взломать." #: lang/json/furniture_from_json.py msgid "open safe" @@ -131954,8 +128995,13 @@ msgstr "открытый сейф" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" -msgstr "Быстрей хватай оружие, пока другие не умыкнули!" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." +msgstr "" +"Небольшая, тяжелая и почти непробиваемая металлическая коробка с поворотным " +"кодовым замком. Нельзя сказать, что предметы внутри в безопасности, ведь " +"дверца открыта." #: lang/json/furniture_from_json.py msgid "trash can" @@ -131963,8 +129009,14 @@ msgstr "мусорное ведро" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." -msgstr "Мусор одного человека — обед для другого человека." +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." +msgstr "" +"Пластиковый контейнер для хранения выброшенных отходов, которые должны быть " +"утилизированы позднее. Хотя, учитывая обстоятельства, возможно, стоит " +"посмотреть, что внутри." #: lang/json/furniture_from_json.py msgid "wardrobe" @@ -131972,8 +129024,13 @@ msgstr "платяной шкаф" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." -msgstr "Высокий предмет мебели — по сути, отдельно стоящий шкаф." +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." +msgstr "" +"Очень большой деревянный шкаф для хранения одежды. Может быть использован " +"для хранения чего угодно, что влезет." #: lang/json/furniture_from_json.py msgid "filing cabinet" @@ -131982,13 +129039,12 @@ msgstr "картотечный шкаф" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." msgstr "" -"Несколько ящичков в прочном металлическом шкафу, обычно в таких хранят " -"бумаги. Его можно закрыть для защиты важной информации. Если повезёт, " -"неподалеку могут найтись ключи." +"Стеллаж с металлическими ящиками, предназначенный для хранения различных " +"бумаг и документов. Документы, которые наверняка уже потеряли всю ценность " +"или смысл." #: lang/json/furniture_from_json.py msgid "utility shelf" @@ -131996,8 +129052,12 @@ msgstr "складской стеллаж" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." -msgstr "Простой стеллаж из прочного пластика и металла." +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools" +" and materials for easy access to workers." +msgstr "" +"Простой прочный стеллаж из пластика и металла, предназначенный для хранения " +"инструментов и материалов в легком доступе для рабочих." #: lang/json/furniture_from_json.py msgid "warehouse shelf" @@ -132006,10 +129066,8 @@ msgstr "складской стеллаж" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." -msgstr "" -"Большой и прочный металлический стеллаж для хранения поддонов и ящиков." +"A huge, sturdy steel shelf for storing pallets of crates in warehouses." +msgstr "Большой и прочный стальной стеллаж для хранения поддонов на складах." #: lang/json/furniture_from_json.py msgid "wooden keg" @@ -132017,10 +129075,12 @@ msgstr "деревянный бочонок" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." msgstr "" -"Бочонок, почти полностью сделанный из дерева. Хранит жидкости, особенно " -"спиртосодержащие." +"Большая деревянная бочка, полностью водонепроницаемая. Хорошо подходит для " +"хранения жидкостей всех видов или сбраживания." #: lang/json/furniture_from_json.py msgid "display case" @@ -132028,8 +129088,15 @@ msgstr "витрина" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." -msgstr "Для изысканного и безопасного выставления вещей напоказ." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." +msgstr "" +"Надежный деревянный футляр высотой примерно до уровня талии со стеклянным " +"отсеком сверху. Полезен для безопасной демонстрации ценных вещей. На самом " +"деле не так хорошо защищает, как кажется, так как стёкла на нём легко " +"разбиваются." #: lang/json/furniture_from_json.py msgid "broken display case" @@ -132037,8 +129104,15 @@ msgstr "сломанная витрина" #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." -msgstr "Для показа вещей. Их запросто могут украсть." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Would be useful for storing valuable things while still showing them off, " +"if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." +msgstr "" +"Надежный деревянный футляр высотой примерно до уровня талии со стеклянным " +"отсеком сверху. Был бы полезен для безопасной демонстрации ценных вещей, не " +"будь стекло разбито. Не порежьтесь, когда будете доставать содержимое." #: lang/json/furniture_from_json.py msgid "standing tank" @@ -132046,10 +129120,11 @@ msgstr "резервуар" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." msgstr "" -"Большой отдельно стоящий металлический резервуар, пригодный для хранения " -"жидкостей." +"Огромный металлический резервуар, который можно использовать для безопасного" +" хранения большого количества жидкости." #: lang/json/furniture_from_json.py msgid "dumpster" @@ -132057,8 +129132,14 @@ msgstr "мусорный бак" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." -msgstr "Хранит мусор. Их больше не вывозят. Обратите внимание на запах." +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." +msgstr "" +"Большой металлический мусорный контейнер, который, вероятно, уже не будет " +"вычищен городскими мусорщиками в этой жизни. Несмотря на то, как неприятно " +"залезать внутри, он может стать надежным укрытием." #: lang/json/furniture_from_json.py msgid "butter churn" @@ -132066,8 +129147,12 @@ msgstr "маслобойка" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." -msgstr "Маслобойка с педальным приводом." +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." +msgstr "" +"Металлическая труба со встроенным поршнем для взбивания масла. Вместо " +"электричества для его работы используются педали." #: lang/json/furniture_from_json.py msgid "counter" @@ -132197,7 +129282,9 @@ msgstr "форт из подушек" #. ~ Description for pillow fort #: lang/json/furniture_from_json.py msgid "A comfy place to hide from the world. Not very defensible, though." -msgstr "Комфортное место, чтобы прятаться от мира. Но защищать его неудобно." +msgstr "" +"Комфортное место, чтобы прятаться от мира. Не может предоставить надежной " +"защиты." #: lang/json/furniture_from_json.py msgid "paf!" @@ -132429,7 +129516,7 @@ msgstr "Пепел после сгорания дерева или, возмож #: lang/json/furniture_from_json.py msgid "small boulder" -msgstr "маленький валун" +msgstr "небольшой валун" #. ~ Description for small boulder #: lang/json/furniture_from_json.py @@ -132584,7 +129671,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "active smoking rack" -msgstr "коптильня (активна)" +msgstr "дымящая коптильня" #. ~ Description for active smoking rack #: lang/json/furniture_from_json.py @@ -132597,7 +129684,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "active metal smoking rack" -msgstr "активная металлическая коптильня" +msgstr "дымящая металлическая коптильня" #. ~ Description for active metal smoking rack #: lang/json/furniture_from_json.py @@ -132841,7 +129928,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "active wind mill" -msgstr "Ветряная мельница в работе." +msgstr "работающая ветряная мельница" #. ~ Description for active wind mill #: lang/json/furniture_from_json.py @@ -132983,78 +130070,6 @@ msgstr "" "был так назван из-за его схожих лекарственных свойств. Он источает мощный, " "вызывающий сон аромат." -#: lang/json/furniture_from_json.py -msgid "hydroponics unit" -msgstr "гидропонная установка" - -#. ~ Description for hydroponics unit -#: lang/json/furniture_from_json.py -msgid "This is a self-contained hydroponics unit used to grow crops indoors." -msgstr "" -"Автономная гидропонная установка для выращивания сельскохозяйственных " -"растений в комнатных условиях." - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seed" -msgstr "гидропонная установка с семенами" - -#. ~ Description for hydroponics unit with seed -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seed" -msgstr "" -"Автономная гидропонная установка для выращивания сельскохозяйственных " -"растений в комнатных условиях. Содержит посаженные семена." - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seedling" -msgstr "гидропонная установка с рассадой" - -#. ~ Description for hydroponics unit with seedling -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seedling" -msgstr "" -"Автономная гидропонная установка для выращивания сельскохозяйственных " -"растений в комнатных условиях. Содержит рассаду." - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with mature plant" -msgstr "гидропонная установка с взрослым растением" - -#. ~ Description for hydroponics unit with mature plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant." -msgstr "" -"Автономная гидропонная установка для выращивания сельскохозяйственных " -"растений в комнатных условиях. Содержит взрослое растение." - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with harvestable plant" -msgstr "гидропонная установка с урожаем" - -#. ~ Description for hydroponics unit with harvestable plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant that is ready for harvest." -msgstr "" -"Автономная гидропонная установка для выращивания сельскохозяйственных " -"растений в комнатных условиях. Содержит взрослое растение, готовое к сбору." - -#: lang/json/furniture_from_json.py -msgid "hydroponics heater" -msgstr "гидропонный нагреватель" - -#. ~ Description for hydroponics heater -#: lang/json/furniture_from_json.py -msgid "This is a self-contained heater, used to warm hydroponics units." -msgstr "Автономный нагреватель для подогрева гидропонных установок." - #: lang/json/furniture_from_json.py msgid "Translocator Gate" msgstr "Врата транслокатора" @@ -133185,16 +130200,26 @@ msgstr "" "металлы в слитки, подходящие для обработки." #: lang/json/furniture_from_json.py -msgid "krash!" -msgstr "краш!" +msgid "tank trap" +msgstr "противотанковый еж" +#. ~ Description for fungal mass #: lang/json/furniture_from_json.py -msgid "krak." -msgstr "крак." +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." +msgstr "" +"Поверхность, полностью покрытая толстыми жгутами грибковой материи. На ощупь" +" она мягкая, но вы утопаете в ней, поэтому передвижение несколько " +"затруднено." +#. ~ Description for fungal clump #: lang/json/furniture_from_json.py -msgid "tank trap" -msgstr "противотанковый еж" +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +msgstr "" +"Тесно перемешанные иноземные плесень и стебли, образовавшие подобие грибного" +" куста." #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py @@ -133344,32 +130369,32 @@ msgstr "Вы активировали механизм…" #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py msgid "The bolts slide back into place." -msgstr "Болты вернулись на место." +msgstr "Задвижки вернулись на место." #. ~ 'fail' action message of some gate object. #: lang/json/gates_from_json.py msgid "The release can't be activated!" -msgstr "Болты нельзя активировать!" +msgstr "Задвижки нельзя активировать!" #. ~ 'open' action message of some gate object. #: lang/json/gates_from_json.py msgid "The bolts fall open!" -msgstr "Болты выпущены!" +msgstr "Задвижки закрыты!" #. ~ 'pull' action message of some gate object. #: lang/json/gates_from_json.py msgid "You activate the security bolt release..." -msgstr "Вы активировали болты обеспечения безопасности…" +msgstr "Вы активировали задвижки безопасности…" #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py msgid "The bridge extends." -msgstr "Мост вытянут." +msgstr "Мост выдвигается." #. ~ 'fail' action message of some gate object. #: lang/json/gates_from_json.py msgid "The bridge can't be extended!" -msgstr "Мост нельзя вытянуть!" +msgstr "Мост нельзя выдвинуть!" #. ~ 'open' action message of some gate object. #: lang/json/gates_from_json.py @@ -133393,13 +130418,13 @@ msgstr[3] "очереди кислотных дротиков" msgid "Fake gun that fires acid globs." msgstr "Оружие отладки, стреляет кислотными сгустками." -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item_factory.cpp msgid "auto" 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 +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "винтовка" @@ -133412,6 +130437,92 @@ msgstr[1] "ружья с кислотными дротиками" msgstr[2] "ружей с кислотными дротиками" msgstr[3] "ружья с кислотными дротиками" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "комбинированный самопал" +msgstr[1] "комбинированных самопала" +msgstr[2] "комбинированных самопалов" +msgstr[3] "комбинированные самопалы" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from" +" a double barrel shotgun." +msgstr "" +"Самодельное трёхствольное оружие, один ствол под калибр .30-06, и два других" +" — под патроны для дробовика. Оно сделано из труб и частей двухствольного " +"дробовика." + +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "дробовик" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] "самопал .30-06" +msgstr[1] "самопала .30-06" +msgstr[2] "самопалов .30-06" +msgstr[3] "самопалы .30-06" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" +" strike the single round it holds." +msgstr "" +"Самодельное ружьё. Просто кусок трубы, прикрученный к прикладу с " +"элементарным ударником. Заряжается одним патроном." + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "самодельный тяжёлый карабин" +msgstr[1] "самодельных тяжёлых карабина" +msgstr[2] "самодельных тяжёлых карабинов" +msgstr[3] "самодельные тяжёлые карабины" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" +"Самодельная гладкоствольная винтовка с рычажным взводом, использующая " +"магазины. Хотя она по-прежнему состоит из примитивной трубы и доски, сделаны" +" незначительные улучшения, например, такие как возможность принимать G3 " +"совместимые магазины под патрон мощного .308 калибра." + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "самодельный карабин" +msgstr[1] "самодельных карабина" +msgstr[2] "самодельных карабинов" +msgstr[3] "самодельные карабины" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the" +" better homemade weapons." +msgstr "" +"Хорошо продуманный кустарный рычажный карабин с укороченным стволом. К нему " +"подходит самодельный съёмный магазин или магазин STANAG. Это один из лучших " +"образцов самодельного оружия." + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] "самопал .223" +msgstr[1] "самопала .223" +msgstr[2] "самопалов .223" +msgstr[3] "самопалы .223" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -133450,7 +130561,7 @@ msgid_plural "FTK-93 fusion guns" msgstr[0] "термоядерная пушка FTK-93" msgstr[1] "термоядерные пушки FTK-93" msgstr[2] "термоядерных пушек FTK-93" -msgstr[3] "термоядерная пушка FTK-93" +msgstr[3] "термоядерные пушки FTK-93" #: lang/json/gun_from_json.py msgid "" @@ -133468,7 +130579,7 @@ msgid_plural "acid spit guns" msgstr[0] "кислотное ружьё" msgstr[1] "кислотных ружья" msgstr[2] "кислотных ружей" -msgstr[3] "кислотное ружьё" +msgstr[3] "кислотные ружья" #: lang/json/gun_from_json.py msgid "reach bow" @@ -133481,7 +130592,7 @@ msgstr[3] "тестовые луки" #: lang/json/gun_from_json.py msgid "A test item that is both a ranged weapon and a reach weapon" msgstr "" -"Тестовый предмет, который является и дистанционным оружием и оружием " +"Тестовый предмет, который является и дистанционным оружием, и оружием " "ближнего боя." #: lang/json/gun_from_json.py @@ -133506,7 +130617,7 @@ msgid_plural "spraycan flamethrowers" msgstr[0] "баллончик с зажигалкой" msgstr[1] "баллончика с зажигалкой" msgstr[2] "баллончиков с зажигалкой" -msgstr[3] "баллончик с зажигалкой" +msgstr[3] "баллончики с зажигалкой" #: lang/json/gun_from_json.py msgid "" @@ -133526,7 +130637,7 @@ msgid_plural "simple flamethrowers" msgstr[0] "простой огнемёт" msgstr[1] "простых огнемёта" msgstr[2] "простых огнемётов" -msgstr[3] "простой огнемёт" +msgstr[3] "простые огнемёты" #: lang/json/gun_from_json.py msgid "" @@ -133543,7 +130654,7 @@ msgid_plural "homemade laser pistols" msgstr[0] "самодельный лазерный пистолет" msgstr[1] "самодельных лазерных пистолета" msgstr[2] "самодельных лазерных пистолетов" -msgstr[3] "самодельный лазерный пистолет" +msgstr[3] "самодельные лазерные пистолеты" #: lang/json/gun_from_json.py msgid "" @@ -133556,12 +130667,10 @@ 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 -#: lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" -msgstr "пистолет" +msgstr "пистолеты" #: lang/json/gun_from_json.py msgid "Tankbot Main Gun" @@ -133569,7 +130678,7 @@ msgid_plural "Tankbot Main Gun" msgstr[0] "основное орудие танкобота" msgstr[1] "основных орудия танкобота" msgstr[2] "основных орудий танкобота" -msgstr[3] "основное орудие танк-бота" +msgstr[3] "основные орудия танк-бота" #: lang/json/gun_from_json.py msgid "" @@ -133582,7 +130691,7 @@ msgstr "" #: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "launcher" -msgstr "гранатомёт" +msgstr "гранатомёты" #: lang/json/gun_from_json.py msgid "Special 700" @@ -133590,7 +130699,7 @@ msgid_plural "Special 700s" msgstr[0] "cпецизделие 700" msgstr[1] "cпецизделия 700" msgstr[2] "cпецизделий 700" -msgstr[3] "cпецизделие 700" +msgstr[3] "cпецизделия 700" #: lang/json/gun_from_json.py msgid "" @@ -133650,7 +130759,7 @@ msgid_plural "pneumatic bolt drivers" msgstr[0] "пневматический болтомёт" msgstr[1] "пневматических болтомёта" msgstr[2] "пневматических болтомётов" -msgstr[3] "пневматический болтомёт" +msgstr[3] "пневматические болтомёты" #: lang/json/gun_from_json.py msgid "" @@ -133687,18 +130796,13 @@ msgstr "одиночный" msgid "double" msgstr "дуплет" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "дробовик" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" msgstr[0] "пусковая установка для ядерных мини-бомб" msgstr[1] "пусковые установки для ядерных мини-бомб" msgstr[2] "пусковых установок для ядерных мини-бомб" -msgstr[3] "пусковая установка для ядерных мини-бомб" +msgstr[3] "пусковые установки для ядерных мини-бомб" #: lang/json/gun_from_json.py msgid "" @@ -133715,7 +130819,7 @@ msgid_plural "heavy rail rifles" msgstr[0] "тяжёлая рельсовая винтовка" msgstr[1] "тяжёлые рельсовые винтовки" msgstr[2] "тяжёлых рельсовых винтовок" -msgstr[3] "тяжёлая рельсовая винтовка" +msgstr[3] "тяжёлые рельсовые винтовки" #: lang/json/gun_from_json.py msgid "" @@ -133739,9 +130843,9 @@ msgstr "" msgid "ferromagnetic rail rifle" msgid_plural "ferromagnetic rail rifles" msgstr[0] "ферромагнитная винтовка" -msgstr[1] "ферромагнитных винтовки" +msgstr[1] "ферромагнитные винтовки" msgstr[2] "ферромагнитных винтовок" -msgstr[3] "ферромагнитных винтовки" +msgstr[3] "ферромагнитные винтовки" #: lang/json/gun_from_json.py msgid "" @@ -133761,7 +130865,7 @@ msgid_plural "coilguns" msgstr[0] "гаусс-пушка" msgstr[1] "гаусс-пушки" msgstr[2] "гаусс-пушек" -msgstr[3] "гаусс-пушка" +msgstr[3] "гаусс-пушки" #: lang/json/gun_from_json.py msgid "" @@ -133777,7 +130881,7 @@ msgid_plural "nail rifles" msgstr[0] "гвоздестрел" msgstr[1] "гвоздестрела" msgstr[2] "гвоздестрелов" -msgstr[3] "гвоздестрел" +msgstr[3] "гвоздестрелы" #: lang/json/gun_from_json.py msgid "" @@ -133789,13 +130893,54 @@ msgstr "" "приклад и цевьё. Его можно перезаряжать при помощи съёмных магазинов. В " "целом это гораздо более эффективное оружие." +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "АН-94" +msgstr[1] "АН-94" +msgstr[2] "АН-94" +msgstr[3] "АН-94" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" +"Винтовка, предназначенная для замены АК-74, использует сложный механизм для " +"задерживания ощущения отдачи, а также имеет очень быстрый режим стрельбы с " +"отсечкой по два патрона. Хотя повышение сложности производства не позволило " +"ей попасть в российские войска, она используется в подразделениях " +"специального назначения." + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "2 пат." + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "ручная лазерная пушка" +msgstr[1] "ручных лазерные пушки" +msgstr[2] "ручных лазерных пушек" +msgstr[3] "ручных лазерные пушки" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "" +"Эта лазерная пушка снята с лазерной турели TX-5LR Цербер и модифицирована " +"таким образом, чтобы использовать УБП для стрельбы." + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" -msgstr[0] "базовое оружие" -msgstr[1] "базовых оружия" -msgstr[2] "базовых оружий" -msgstr[3] "базовое оружие" +msgstr[0] "базовое огнестрельное оружие" +msgstr[1] "базовых огнестрельных оружия" +msgstr[2] "базовых огнестрельных оружия" +msgstr[3] "базовое огнестрельное оружие" #: lang/json/gun_from_json.py msgid "base flamethrower" @@ -133803,7 +130948,7 @@ msgid_plural "base flamethrowers" msgstr[0] "базовый огнемёт" msgstr[1] "базовых огнемёта" msgstr[2] "базовых огнемётов" -msgstr[3] "базовый огнемёт" +msgstr[3] "базовые огнемёты" #: lang/json/gun_from_json.py msgid "slosh." @@ -133815,7 +130960,7 @@ msgid_plural "base launchers" msgstr[0] "базовый гранатомёт" msgstr[1] "базовых гранатомёта" msgstr[2] "базовых гранатомётов" -msgstr[3] "базовый гранатомёт" +msgstr[3] "базовые гранатомёты" #: lang/json/gun_from_json.py msgid "base pistol" @@ -133823,7 +130968,7 @@ msgid_plural "base pistols" msgstr[0] "базовый пистолет" msgstr[1] "базовых пистолета" msgstr[2] "базовых пистолетов" -msgstr[3] "базовый пистолет" +msgstr[3] "базовые пистолеты" #: lang/json/gun_from_json.py msgid "backup pistol" @@ -133839,7 +130984,7 @@ msgid_plural "revolvers" msgstr[0] "револьвер" msgstr[1] "револьвера" msgstr[2] "револьверов" -msgstr[3] "револьвер" +msgstr[3] "револьверы" #: lang/json/gun_from_json.py msgid "cap & ball revolver" @@ -133853,33 +130998,33 @@ msgstr[3] "капсюльные револьверы" msgid "base rifle" msgid_plural "base rifles" msgstr[0] "базовая винтовка" -msgstr[1] "базовых винтовки" +msgstr[1] "базовые винтовки" msgstr[2] "базовых винтовок" -msgstr[3] "базовая винтовка" +msgstr[3] "базовые винтовки" #: lang/json/gun_from_json.py msgid "rifle with manual actions" msgid_plural "rifles with manual actions" msgstr[0] "однозарядная винтовка" -msgstr[1] "однозарядных винтовки" +msgstr[1] "однозарядные винтовки" msgstr[2] "однозарядных винтовки" -msgstr[3] "однозарядная винтовка" +msgstr[3] "однозарядные винтовки" #: lang/json/gun_from_json.py msgid "semi-automatic rifle" msgid_plural "semi-automatic rifles" msgstr[0] "полуавтоматическая винтовка" -msgstr[1] "полуавтоматических винтовки" +msgstr[1] "полуавтоматические винтовки" msgstr[2] "полуавтоматических винтовок" -msgstr[3] "полуавтоматическая винтовка" +msgstr[3] "полуавтоматические винтовки" #: lang/json/gun_from_json.py msgid "fully automatic rifle" msgid_plural "fully automatic rifles" msgstr[0] "автоматическая винтовка" -msgstr[1] "автоматических винтовки" +msgstr[1] "автоматические винтовки" msgstr[2] "автоматических винтовок" -msgstr[3] "автоматическая винтовка" +msgstr[3] "автоматические винтовки" #: lang/json/gun_from_json.py msgid "base shotgun" @@ -133887,7 +131032,7 @@ msgid_plural "base shotguns" msgstr[0] "базовый дробовик" msgstr[1] "базовых дробовика" msgstr[2] "базовых дробовиков" -msgstr[3] "базовый дробовик" +msgstr[3] "базовые дробовики" #: lang/json/gun_from_json.py msgid "pump action shotgun" @@ -133895,7 +131040,7 @@ msgid_plural "pump action shotguns" msgstr[0] "помповый дробовик" msgstr[1] "помповых дробовика" msgstr[2] "помповых дробовиков" -msgstr[3] "помповый дробовик" +msgstr[3] "помповые дробовики" #: lang/json/gun_from_json.py msgid "chuk chuk." @@ -133915,7 +131060,7 @@ msgid_plural "base SMGs" msgstr[0] "базовый ПП" msgstr[1] "базовых ПП" msgstr[2] "базовых ПП" -msgstr[3] "базовый ПП" +msgstr[3] "базовые ПП" #: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" @@ -133944,7 +131089,7 @@ msgid_plural "RM120c shotguns" msgstr[0] "дробовик RM120c" msgstr[1] "дробовика RM120c" msgstr[2] "дробовиков RM120c" -msgstr[3] "дробовик RM120c" +msgstr[3] "дробовики RM120c" #: lang/json/gun_from_json.py msgid "" @@ -133962,7 +131107,7 @@ msgid_plural "RM20 autoshotguns" msgstr[0] "автоматический дробовик RM20" msgstr[1] "автоматических дробовика RM20" msgstr[2] "автоматических дробовиков RM20" -msgstr[3] "автоматический дробовик RM20" +msgstr[3] "автоматические дробовики RM20" #: lang/json/gun_from_json.py msgid "" @@ -134057,7 +131202,7 @@ msgid_plural "pipe rifles: .22" msgstr[0] "самопал .22" msgstr[1] "самопала .22" msgstr[2] "самопалов .22" -msgstr[3] "самопал .22" +msgstr[3] "самопалы .22" #: lang/json/gun_from_json.py msgid "" @@ -134141,11 +131286,11 @@ msgid "" "import, these were more commonly used by criminals unfazed by their glaring " "safety issues." msgstr "" -"Один из типичных дешёвых пистолетов. Он стоил очень недорого благодаря " -"литому цинковому затвору и корпусу. Предполагалось, что он заполнит " -"освободившуюся нишу после запрета ввоза маленьких карманных пистолетов; на " -"практике стал популярен у преступников, равнодушных к явным проблемам с " -"безопасным использованием." +"Типичный дешёвый пистолет. Он стоил очень недорого благодаря литому " +"цинковому затвору и корпусу. Предполагалось, что он заполнит освободившуюся " +"нишу после запрета ввоза маленьких карманных пистолетов; на практике стал " +"популярен у преступников, равнодушных к явным проблемам с безопасным " +"использованием." #: lang/json/gun_from_json.py msgid "Walther P22" @@ -134198,7 +131343,7 @@ msgid "" "This one is a semi-automatic civilian version." msgstr "" "Широко распространённая винтовка, положившая начало линейке М16. Лёгкая и " -"точная, однако будет работать со сбоями при неправильном обращении. Это " +"точная, однако будет работать со сбоями без регулярного обслуживания. Это " "полуавтоматическая гражданская версия." #: lang/json/gun_from_json.py @@ -134237,6 +131382,28 @@ msgstr "" "MAS .223 это оружие с полуавтоматическим режимом ведения огня, импортируемое" " в США с конца девяностых годов. Конструкция включает встроенный бипод." +#: lang/json/gun_from_json.py +msgid "FS2000" +msgid_plural "FS2000s" +msgstr[0] "FS2000" +msgstr[1] "FS2000" +msgstr[2] "FS2000" +msgstr[3] "FS2000" + +#: lang/json/gun_from_json.py +msgid "" +"A sleek bullpup carbine designed by FN Herstal, complete with an integrated " +"sight accessory rail. The forward ejecting action and ambidextrous controls" +" make firing comfortable for both left and right-handed shooting. The whole" +" rifle is well sealed from mud and dust for reliability, but this makes it " +"incompatible with many aftermarket magazines." +msgstr "" +"Изящный карабин по схеме булл-пап, созданный компанией ФН Эрсталь. Выброс " +"отработанных гильз вперед и подходящая для любого хвата рукоять делают " +"использование удобным для любой ведущей руки. Все механизмы спрятаны под " +"корпусом с герметичными швами, что защищает оружие от пыли и грязи, но " +"делает невозможным использование модифицированных магазинов." + #: lang/json/gun_from_json.py msgid "HK416 A5" msgid_plural "HK416 A5s" @@ -134293,6 +131460,25 @@ msgstr "" msgid "burst" msgstr "очередь" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "M249S" +msgstr[1] "M249S" +msgstr[2] "M249S" +msgstr[3] "M249S" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" +"Полуавтоматический гражданский вариант пулемёта M249, предназначенный для " +"спортивной стрельбы и коллекционеров. На удивление, боеприпасы по прежнему " +"подаются с помощью ленточного питания, что нетипично для гражданских " +"образцов." + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -134324,8 +131510,8 @@ msgid "" "maintained." msgstr "" "Известная штурмовая винтовка, уже долгое время состоящая на вооружении ВС " -"США. Точная, лёгкая и компактная, но печально известная своей ненадёжностью " -"при неправильном использовании." +"США. Точная, лёгкая и компактная, но печально известная своей ненадёжностью," +" если не проводить регулярное техобслуживание." #: lang/json/gun_from_json.py msgid "M16A4" @@ -134365,26 +131551,10 @@ msgid "" " moved to the top of the gun, circumventing the necessity for a solid " "buttstock." msgstr "" -"Пистолет на основе AR-15,созданный Olympic Arms в девяностых. Главное " +"Пистолет на основе AR-15, созданный Olympic Arms в девяностых. Главное " "отличие от AR-15 в спусковой пружине, перенесенной в верхнюю часть оружия, " "чтобы обойти необходимость в наличии приклада." -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] "самопал .223" -msgstr[1] "самопала .223" -msgstr[2] "самопалов .223" -msgstr[3] "самопал .223" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" -" strike the single round it holds." -msgstr "" -"Самодельное ружьё. Просто кусок трубы, прикрученный к прикладу с " -"элементарным ударником. Заряжается одним патроном." - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -134457,24 +131627,6 @@ msgstr "" " Стоит на вооружении армий и правоохранительных структур многих стран мира, " "обладает хорошей точностью и низкой отдачей." -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "самодельный карабин" -msgstr[1] "самодельных карабина" -msgstr[2] "самодельных карабинов" -msgstr[3] "самодельный карабин" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the" -" better homemade weapons." -msgstr "" -"Хорошо продуманный кустарный рычажный карабин с укороченным стволом. К нему " -"подходит самодельный съёмный магазин или магазин STANAG. Это один из лучших " -"образцов самодельного оружия." - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -134493,7 +131645,7 @@ msgstr "" "Классическая винтовка со скользящим затвором под патрон .270 Винчестер, " "очень популярна среди охотников. Это модель CDL SF с кованым нарезным " "стволом из нержавеющей стали, соединённым резьбой со ствольной коробкой и с " -"урезанным затвором. Ложа выполнена из каштана и есть затыльник для гашения " +"урезанным затвором. Ложа выполнена из каштана, и есть затыльник для гашения " "отдачи." #: lang/json/gun_from_json.py @@ -134624,10 +131776,10 @@ msgid "" "firepower to serve as a battle rifle, but not enough to be an ideal light " "machine gun, it still found a niche on the battlefield." msgstr "" -"Разработанная в конце Первой Мировой войны, BAR обеспечивала поддержку армии" -" США от Второй Мировой и до Вьетнамской войны. Хотя она была слишком мощной " -"в качестве боевой винтовки и недостаточно мощной, чтобы быть идеальным " -"пулемётом, она всё же нашла свою нишу на поле боя." +"Разработанная в конце Первой Мировой войны, BAR использовалась для огневой " +"поддержки в армии США от Второй Мировой и до Вьетнамской войны. Хотя она " +"была слишком мощной в качестве боевой винтовки и недостаточно мощной, чтобы " +"быть идеальным пулемётом, она всё же нашла свою нишу на поле боя." #: lang/json/gun_from_json.py msgid "Remington 700 .30-06" @@ -134643,19 +131795,11 @@ msgid "" " US Marine snipers. Highly damaging, but perhaps not as accurate as the " "competing Browning BLR." msgstr "" -"Очень популярное и прочное оружие для охоты и спортивной стрельбы. " +"Очень популярное и надежное оружие для охоты и спортивной стрельбы. " "Пользуется признанием бойцов спецназа и снайперов корпуса морской пехоты " "США. Эта винтовка способна убить наповал, хоть и не настолько точна, как её " "конкурент Браунинг BLR." -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] "самопал .30-06" -msgstr[1] "самопала .30-06" -msgstr[2] "самопалов .30-06" -msgstr[3] "самопал .30-06" - #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" msgid_plural "Remington ACR .300BLKs" @@ -134737,7 +131881,7 @@ msgid_plural "M134D-H Miniguns" msgstr[0] "миниган M134D-H" msgstr[1] "минигана M134D-H" msgstr[2] "миниганов M134D-H" -msgstr[3] "миниган M134D-H" +msgstr[3] "миниганы M134D-H" #: lang/json/gun_from_json.py msgid "" @@ -134746,9 +131890,9 @@ msgid "" "vehicle. If you could find enough ammo for it, it would become a " "devastating weapon. It must be mounted on a vehicle before use." msgstr "" -"M134D-H Minigun — это относительно легковесный станковый ротационный " +"M134D-H Minigun — это относительно легковесный станковый многоствольный " "пулемёт. Имеет шесть стволов, вращающихся от энергии УБП или аккумулятора " -"машины. Если вы найдёте достаточно боеприпасов к нему, то это будет очень " +"машины. Если вы найдёте достаточно боеприпасов к нему, получите очень " "разрушительное оружие. Требует установки на транспортное средство." #: lang/json/gun_from_json.py @@ -134830,24 +131974,21 @@ msgstr "" "поскольку большинство людей не являются героями боевиков." #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" -msgstr[0] "самодельный тяжёлый карабин" -msgstr[1] "самодельных тяжёлых карабина" -msgstr[2] "самодельных тяжёлых карабинов" -msgstr[3] "самодельные тяжёлые карабины" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" +msgstr[0] "M60 Semi Auto" +msgstr[1] "M60 Semi Auto" +msgstr[2] "M60 Semi Auto" +msgstr[3] "M60 Semi Auto" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." msgstr "" -"Самодельная гладкоствольная винтовка с рычажным взводом, использующая " -"магазины. Хотя она по-прежнему состоит из примитивной трубы и доски, сделаны" -" незначительные улучшения, например, такие как возможность принимать G3 " -"совместимые магазины под патрон мощного .308 калибра." +"Полуавтоматический гражданский вариант пулемёта M60 На удивление, боеприпасы" +" по прежнему подаются с помощью ленточного питания, что нетипично для " +"гражданских образцов." #: lang/json/gun_from_json.py msgid "Savage 111F" @@ -135021,9 +132162,9 @@ msgid "" "concealment and backup usage. Despite its extreme light weight and small " "size, its .32 ACP chambering makes for good handling and recoil control." msgstr "" -"Старая разработка Kel-tec. Р32 — популярный вариант для запасного оружия " -"скрытого ношения. Несмотря на очень лёгкий вес и небольшой размер, благодаря" -" патрону .32 ACP у него хорошая управляемость и низкая отдача." +"Одна из первых разработок Kel-tec. Р32 — популярный вариант для запасного " +"оружия скрытого ношения. Несмотря на очень лёгкий вес и небольшой размер, " +"благодаря патрону .32 ACP у него хорошая управляемость и низкая отдача." #: lang/json/gun_from_json.py msgid "SIG P226" @@ -135096,7 +132237,7 @@ msgid_plural "2 Shot Specials" msgstr[0] "специальный двустрел" msgstr[1] "специальных двустрела" msgstr[2] "специальных двустрелов" -msgstr[3] "специальный двустрел" +msgstr[3] "специальные двустрелы" #: lang/json/gun_from_json.py msgid "" @@ -135446,7 +132587,7 @@ msgid_plural "handmade six-shooters" msgstr[0] "самодельный шестизаряд" msgstr[1] "самодельных шестизаряда" msgstr[2] "самодельных шестизарядов" -msgstr[3] "самодельный шестизаряд" +msgstr[3] "самодельные шестизаряды" #: lang/json/gun_from_json.py msgid "" @@ -135536,7 +132677,7 @@ msgid_plural "tube 40mm launchers" msgstr[0] "самодельный гранатомёт 40 мм" msgstr[1] "самодельных гранатомёта 40 мм" msgstr[2] "самодельных гранатомётов 40 мм" -msgstr[3] "самодельный гранатомёт 40 мм" +msgstr[3] "самодельные гранатомёты 40 мм" #: lang/json/gun_from_json.py msgid "" @@ -135571,7 +132712,7 @@ msgid_plural "M79 launchers" msgstr[0] "гранатомёт M79" msgstr[1] "гранатомёта M79" msgstr[2] "гранатомётов M79" -msgstr[3] "гранатомёт M79" +msgstr[3] "гранатомёты M79" #: lang/json/gun_from_json.py msgid "" @@ -135589,7 +132730,7 @@ msgid_plural "Milkor MGL" msgstr[0] "гранатомёт Milkor MGL" msgstr[1] "гранатомёта Milkor MGL" msgstr[2] "гранатомётов Milkor MGL" -msgstr[3] "гранатомёт Milkor MGL" +msgstr[3] "гранатомёты Milkor MGL" #: lang/json/gun_from_json.py msgid "" @@ -135608,7 +132749,7 @@ msgid_plural "RM802 grenade launchers" msgstr[0] "гранатомёт RM802" msgstr[1] "гранатомёта RM802" msgstr[2] "гранатомётов RM802" -msgstr[3] "гранатомёт RM802" +msgstr[3] "гранатомёты RM802" #: lang/json/gun_from_json.py msgid "" @@ -135628,7 +132769,7 @@ msgid_plural "triple-barrel 40mm launchers" msgstr[0] "трёхствольный гранатомёт 40 мм" msgstr[1] "трёхствольных гранатомёта 40 мм" msgstr[2] "трёхствольных гранатомётов 40 мм" -msgstr[3] "трёхствольный гранатомёт 40 мм" +msgstr[3] "трёхствольные гранатомёты 40 мм" #: lang/json/gun_from_json.py msgid "" @@ -135645,10 +132786,10 @@ msgstr "множ." #: lang/json/gun_from_json.py msgid "M203 array" msgid_plural "M203 arrays" -msgstr[0] "массив из гранатометом М203" -msgstr[1] "массива из гранатометом М203" -msgstr[2] "массивов из гранатометом М203" -msgstr[3] "массивы из гранатометом М203" +msgstr[0] "массив из гранатометов М203" +msgstr[1] "массива из гранатометов М203" +msgstr[2] "массивов из гранатометов М203" +msgstr[3] "массивы из гранатометов М203" #: lang/json/gun_from_json.py msgid "" @@ -135661,7 +132802,7 @@ msgid_plural "Mark 19 grenade launchers" msgstr[0] "гранатомёт Mark 19" msgstr[1] "гранатомёта Mark 19" msgstr[2] "гранатомётов Mark 19" -msgstr[3] "гранатомёт Mark 19" +msgstr[3] "гранатомёты Mark 19" #: lang/json/gun_from_json.py msgid "" @@ -135827,8 +132968,8 @@ msgstr "" "гражданской войны от компании Pietta. В своё время его оригинальный " "нестандартный .42 или .35 калибр ограничивал полезность для армии " "конфедерации, но эта копия изготовлена в более распространенном .44 калибре." -" Несмотря на современные качественные материалы, дизайн все же довольно " -"выверенный." +" Несмотря на современные качественные материалы, механизм все же довольно " +"деликатный." #: lang/json/gun_from_json.py msgid "TDI Vector" @@ -135930,7 +133071,7 @@ msgid_plural "pipe rifles: .45" msgstr[0] "самопал .45" msgstr[1] "самопала .45" msgstr[2] "самопалов .45" -msgstr[3] "самопал .45" +msgstr[3] "самопалы .45" #: lang/json/gun_from_json.py msgid "Luty SMG: .45" @@ -135960,7 +133101,7 @@ msgid_plural "homemade hand cannons" msgstr[0] "самодельная ручная пушка" msgstr[1] "самодельные ручные пушки" msgstr[2] "самодельных ручных пушек" -msgstr[3] "самодельная ручная пушка" +msgstr[3] "самодельные ручные пушки" #: lang/json/gun_from_json.py msgid "" @@ -135968,17 +133109,17 @@ msgid "" "the .45 it's chambered with packs a serious punch. Just watch out for the " "kick." msgstr "" -"Большой и тяжёлый пистолет, изготовленный, несомненно, из металлолома. Он не" -" очень красив, но 45 калибр, под который он снаряжён, нанесёт немалый урон. " +"Большой и тяжёлый пистолет, изготовленный, видимо, из металлолома. Он не " +"очень красив, но 45 калибр, под который он снаряжён, нанесёт немалый урон. " "Только осторожнее с отдачей." #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" -msgstr[0] "пистолет-пулемёт Томпсона" -msgstr[1] "пистолет-пулемёта Томпсона" -msgstr[2] "пистолет-пулемётов Томпсона" -msgstr[3] "пистолет-пулемёт Томпсона" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" +msgstr[0] "Thompson M1928A1" +msgstr[1] "Thompson M1928A1" +msgstr[2] "Thompson M1928A1" +msgstr[3] "Thompson M1928A1" #: lang/json/gun_from_json.py msgid "" @@ -135988,9 +133129,9 @@ msgid "" "with less-expensive alternatives." msgstr "" "Созданный в США пистолет-пулемёт, разработанный в самом конце Первой Мировой" -" войны — слишком поздно, чтобы принять в ней значительное участие. Он " -"приобрёл печальную славу в 1920-х годах, когда использовался гангстерами, а " -"также использовался во Вторую Мировую войну, до того, как был заменён менее " +" войны — слишком поздно, чтобы принять в ней заметное участие. Он приобрёл " +"печальную славу в 1920-х годах, когда использовался гангстерами, а также " +"использовался во Вторую Мировую войну, до того, как был заменён менее " "дорогими альтернативами." #: lang/json/gun_from_json.py @@ -136029,12 +133170,12 @@ msgstr "" " танк с ядерным оружием." #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" -msgstr[0] "Walther PPQ .45 ACP" -msgstr[1] "Walther PPQ .45 ACP" -msgstr[2] "Walther PPQ .45 ACP" -msgstr[3] "Walther PPQ .45 ACP" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" +msgstr[0] "Walther PPQ 45" +msgstr[1] "Walther PPQ 45" +msgstr[2] "Walther PPQ 45" +msgstr[3] "Walther PPQ 45" #: lang/json/gun_from_json.py msgid "" @@ -136104,7 +133245,7 @@ msgid_plural "Marlin 1895 SBLs" msgstr[0] "Marlin 1895 SBL" msgstr[1] "Marlin 1895 SBL" msgstr[2] "Marlin 1895 SBL" -msgstr[3] "Marlin 1895 SBLs" +msgstr[3] "Marlin 1895 SBL" #: lang/json/gun_from_json.py msgid "" @@ -136298,7 +133439,7 @@ msgid_plural ".50 caliber rifles" msgstr[0] "винтовка .50" msgstr[1] "винтовки .50" msgstr[2] "винтовок .50" -msgstr[3] "винтовка .50" +msgstr[3] "винтовки .50" #: lang/json/gun_from_json.py msgid "" @@ -136424,31 +133565,6 @@ msgstr "" "Преемник широко известного автомата Калашникова. Сочетает в себе надёжность " "предшественника с высокоскоростным и лёгким боеприпасом калибра 5,45х49 мм." -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "АН-94" -msgstr[1] "АН-94" -msgstr[2] "АН-94" -msgstr[3] "АН-94" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" -"Эта винтовка, предназначенная для замены АК-74, использует сложный механизм " -"для задерживания ощущения отдачи, а также имеет очень быстрый режим стрельбы" -" с отсечкой по два патрона. Хотя её сложность не позволила ей попасть в " -"российские войска, в подразделениях специального назначения она " -"используется." - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "2 пат." - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -136481,7 +133597,7 @@ msgid "" "designed the P90 to use their proprietary 5.7x28mm ammunition. It is made " "for firing bursts manageably." msgstr "" -"Первое в новом классе оружие, названное «Персональное оружие самообороны». " +"Первое в новом классе оружие, названном «Персональное оружие самообороны». " "FN разработал P90 для использования с их фирменными боеприпасами 5,7x28 мм. " "Создан для удобной стрельбы очередями." @@ -136558,7 +133674,7 @@ msgid_plural "Elephant guns" msgstr[0] "Слонобой" msgstr[1] "Слонобоя" msgstr[2] "Слонобоев" -msgstr[3] "Слонобой" +msgstr[3] "Слонобои" #: lang/json/gun_from_json.py msgid "" @@ -136621,8 +133737,9 @@ msgid "" "deployable integrated bayonet, this gun maintains immense popularity." msgstr "" "Этот карабин разработан в СССР в 1945 году и через непродолжительный срок " -"был заменён АК-47. Тем не менее, благодаря запасу прочности и низкой отдаче," -" пользуется популярностью и по сей день." +"был заменён АК-47. Тем не менее, благодаря высокой кучности, надежности, " +"низкой отдаче и встроенному выдвижному штыку пользуется популярностью и по " +"сей день." #: lang/json/gun_from_json.py msgid "AK-47" @@ -136668,7 +133785,7 @@ msgid_plural "Mosin-Nagant M44" msgstr[0] "винтовка Мосина M44" msgstr[1] "винтовки Мосина M44" msgstr[2] "винтовок Мосина M44" -msgstr[3] "винтовка Мосина M44" +msgstr[3] "винтовки Мосина M44" #: lang/json/gun_from_json.py msgid "" @@ -136685,7 +133802,7 @@ msgid_plural "Mosin-Nagant M44-EBR" msgstr[0] "винтовка Мосина М44 EBR" msgstr[1] "винтовки Мосина М44 EBR" msgstr[2] "винтовок Мосина М44 EBR" -msgstr[3] "винтовка Мосина М44 EBR" +msgstr[3] "винтовки Мосина М44 EBR" #: lang/json/gun_from_json.py msgid "" @@ -136701,7 +133818,7 @@ msgid_plural "Mosin-Nagant 1891/30" msgstr[0] "винтовка Мосина 1891/30" msgstr[1] "винтовки Мосина 1891/30" msgstr[2] "винтовок Мосина 1891/30" -msgstr[3] "винтовка Мосина 1891/30" +msgstr[3] "винтовки Мосина 1891/30" #: lang/json/gun_from_json.py msgid "" @@ -136719,7 +133836,7 @@ msgid_plural "Mosin-Nagant 1891/30-EBR" msgstr[0] "винтовка Мосина 1891/30 EBR" msgstr[1] "винтовки Мосина 1891/30 EBR" msgstr[2] "винтовок Мосина 1891/30 EBR" -msgstr[3] "винтовка Мосина 1891/30 EBR" +msgstr[3] "винтовки Мосина 1891/30 EBR" #: lang/json/gun_from_json.py msgid "" @@ -136773,7 +133890,7 @@ msgid_plural "M3 recoilless rifles" msgstr[0] "безоткатный гранатомёт M3" msgstr[1] "безоткатных гранатомёта M3" msgstr[2] "безоткатных гранатомётов M3" -msgstr[3] "безоткатный гранатомёт M3" +msgstr[3] "безоткатные гранатомёты M3" #: lang/json/gun_from_json.py msgid "" @@ -136808,7 +133925,7 @@ msgid_plural "RM103A automagnums" msgstr[0] "автомагнум RM103A" msgstr[1] "автомагнума RM103A" msgstr[2] "автомагнумов RM103A" -msgstr[3] "автомагнум RM103A" +msgstr[3] "автомагнумы RM103A" #: lang/json/gun_from_json.py msgid "" @@ -136824,7 +133941,7 @@ msgid_plural "RM11B scout rifles" msgstr[0] "винтовка разведчика RM11B" msgstr[1] "винтовки разведчика RM11B" msgstr[2] "винтовок разведчика RM11B" -msgstr[3] "винтовка разведчика RM11B" +msgstr[3] "винтовки разведчика RM11B" #: lang/json/gun_from_json.py msgid "" @@ -136835,7 +133952,7 @@ msgid "" "to deliver precise long-range takedowns, utilizing the proprietary Rivtech " "8mm caseless round. Accepts stick magazines." msgstr "" -"Предназначенна для работы в качестве дальнобойного снайперского оружия " +"Предназначена для работы в качестве дальнобойного снайперского оружия " "поддержки военных, винтовка разведчика RM11B от Ривтех была спроектирована " "надёжной и точной с возможностью ведения огня не в самых идеальных условиях." " Её компоновка механизмов по схеме булл-пап с встроенным глушителем и " @@ -136849,7 +133966,7 @@ msgid_plural "RM2000 submachine guns" msgstr[0] "пистолет-пулемёт RM2000" msgstr[1] "пистолет-пулемёта RM2000" msgstr[2] "пистолет-пулемётов RM2000" -msgstr[3] "пистолет-пулемёт RM2000" +msgstr[3] "пистолеты-пулемёты RM2000" #: lang/json/gun_from_json.py msgid "" @@ -136867,7 +133984,7 @@ msgid_plural "RM298 HMGs" msgstr[0] "крупнокалиберный пулемёт RM298" msgstr[1] "крупнокалиберных пулемёта RM298" msgstr[2] "крупнокалиберных пулемётов RM298" -msgstr[3] "крупнокалиберный пулемёт RM298" +msgstr[3] "крупнокалиберные пулемёты RM298" #: lang/json/gun_from_json.py msgid "" @@ -136887,7 +134004,7 @@ msgid_plural "RM51 assault rifles" msgstr[0] "штурмовая винтовка RM51" msgstr[1] "штурмовые винтовки RM51" msgstr[2] "штурмовых винтовок RM51" -msgstr[3] "штурмовая винтовка RM51" +msgstr[3] "штурмовые винтовки RM51" #: lang/json/gun_from_json.py msgid "" @@ -136907,7 +134024,7 @@ msgid_plural "RM614 LMGs" msgstr[0] "пулемёт RM614" msgstr[1] "пулемёта RM614" msgstr[2] "пулемётов RM614" -msgstr[3] "пулемёт RM614" +msgstr[3] "пулемёты RM614" #: lang/json/gun_from_json.py msgid "" @@ -136931,7 +134048,7 @@ msgid_plural "RM88 battle rifles" msgstr[0] "боевая винтовка RM88" msgstr[1] "боевые винтовки RM88" msgstr[2] "боевых винтовок RM88" -msgstr[3] "боевая винтовка RM88" +msgstr[3] "боевые винтовки RM88" #: lang/json/gun_from_json.py msgid "" @@ -136946,20 +134063,6 @@ msgstr "" "максимальную контролируемость оружия. К ней подходят коробчатые магазины и " "барабанные магазины RMGD250." -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "револьвер RM99" -msgstr[1] "револьвера RM99" -msgstr[2] "револьверов RM99" -msgstr[3] "револьвер RM99" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" -" addition to the arsenal of any gunslinger." -msgstr "Ривтех M99 является мощным дополнением к арсеналу любого стрелка." - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -136993,7 +134096,7 @@ msgid "" "The Calico M960 is an automatic carbine with a unique circular magazine that" " allows for high capacities and reduced recoil." msgstr "" -"Калайко M960 — это автоматический карабин с уникальной компоновкой, " +"Calico M960 — это автоматический карабин с уникальной компоновкой, " "использующей шнековый магазин, что позволило добиться высокой огневой мощи в" " сочетании с небольшой отдачей." @@ -137092,9 +134195,9 @@ msgid "" msgstr "" "MP5 от «Хеклер и Кох» является одним из самых распространённых ПП в мире. " "Принят на вооружение полицейского спецназа, а также армии. Отличается " -"высокой точностью и низкой отдачей. У модели MP5K-PDW имеется укороченный " -"ствол, встроенная передняя рукоять и складной приклад для применения " -"экипажем машины или самолёта." +"высокой точностью и низкой отдачей. У модели MP5K-PDW укороченный ствол, " +"встроенная передняя рукоять и складной приклад для применения экипажем " +"машины или самолёта." #: lang/json/gun_from_json.py msgid "PTR 603" @@ -137211,7 +134314,7 @@ msgid_plural "pipe rifles: 9x19mm" msgstr[0] "самопал 9х19 мм" msgstr[1] "самопала 9х19 мм" msgstr[2] "самопалов 9х19 мм" -msgstr[3] "самопал 9х19 мм" +msgstr[3] "самопалы 9х19 мм" #: lang/json/gun_from_json.py msgid "Luty SMG: 9x19mm" @@ -137512,7 +134615,7 @@ msgid_plural "Makarov PMs" msgstr[0] "пистолет Макарова" msgstr[1] "пистолета Макарова" msgstr[2] "пистолетов Макарова" -msgstr[3] "пистолет Макарова" +msgstr[3] "пистолеты Макарова" #: lang/json/gun_from_json.py msgid "" @@ -137576,7 +134679,7 @@ msgid_plural "laser fingers" msgstr[0] "палец-лазер" msgstr[1] "пальца-лазера" msgstr[2] "пальцев-лазеров" -msgstr[3] "пальца-лазера" +msgstr[3] "пальцы-лазеры" #: lang/json/gun_from_json.py lang/json/mutation_from_json.py msgid "Assault barbs" @@ -137616,7 +134719,7 @@ msgid_plural "combination guns" msgstr[0] "комбинированное ружьё" msgstr[1] "комбинированных ружья" msgstr[2] "комбинированных ружей" -msgstr[3] "комбинированных ружья" +msgstr[3] "комбинированные ружья" #: lang/json/gun_from_json.py msgid "" @@ -137628,31 +134731,13 @@ msgstr "" "под 12-й калибр. Исторически использовалось охотниками-эгоманьяками в " "Африке, теперь же используется их потомками-эгоманьяками в Новой Англии." -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "комбинированный самопал" -msgstr[1] "комбинированных самопала" -msgstr[2] "комбинированных самопалов" -msgstr[3] "комбинированных самопала" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from" -" a double barrel shotgun." -msgstr "" -"Самодельное трёхствольное оружие, один ствол под калибр .30-06, и два других" -" — под патроны для дробовика. Оно сделано из труб и частей двухствольного " -"дробовика." - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" msgstr[0] "огнемёт" msgstr[1] "огнемёта" msgstr[2] "огнемётов" -msgstr[3] "огнемёт" +msgstr[3] "огнемёты" #: lang/json/gun_from_json.py msgid "" @@ -137668,7 +134753,7 @@ msgid_plural "RM451 flamethrowers" msgstr[0] "огнемёт RM451" msgstr[1] "огнемёта RM451" msgstr[2] "огнемётов RM451" -msgstr[3] "огнемёт RM451" +msgstr[3] "огнемёты RM451" #: lang/json/gun_from_json.py msgid "" @@ -137688,7 +134773,7 @@ msgid_plural "flintlock carbines" msgstr[0] "кремнёвый карабин" msgstr[1] "кремнёвых карабина" msgstr[2] "кремнёвых карабинов" -msgstr[3] "кремнёвый карабин" +msgstr[3] "кремнёвые карабины" #: lang/json/gun_from_json.py msgid "" @@ -137706,7 +134791,7 @@ msgid_plural "handmade double-barrel flintlocks" msgstr[0] "самодельная кремнёвая двустволка" msgstr[1] "самодельные кремнёвые двустволки" msgstr[2] "самодельных кремнёвых двустволок" -msgstr[3] "самодельная кремнёвая двустволка" +msgstr[3] "самодельные кремнёвые двустволки" #: lang/json/gun_from_json.py msgid "" @@ -137726,7 +134811,7 @@ msgid_plural "flintlock pistols" msgstr[0] "кремнёвый пистоль" msgstr[1] "кремнёвых пистоля" msgstr[2] "кремнёвых пистолей" -msgstr[3] "кремнёвый пистоль" +msgstr[3] "кремнёвые пистоли" #: lang/json/gun_from_json.py msgid "" @@ -137758,10 +134843,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "flintlock rifle" msgid_plural "flintlock rifles" -msgstr[0] "кремнёвое ружьё" -msgstr[1] "кремнёвых ружья" -msgstr[2] "кремнёвых ружей" -msgstr[3] "кремнёвое ружьё" +msgstr[0] "кремнёвая винтовка" +msgstr[1] "кремнёвые винтовки" +msgstr[2] "кремнёвых винтовок" +msgstr[3] "кремнёвые винтовки" #: lang/json/gun_from_json.py msgid "" @@ -137807,7 +134892,7 @@ msgid_plural "nail guns" msgstr[0] "гвоздомёт" msgstr[1] "гвоздомёта" msgstr[2] "гвоздомётов" -msgstr[3] "гвоздомёт" +msgstr[3] "гвоздомёты" #: lang/json/gun_from_json.py msgid "" @@ -137815,7 +134900,7 @@ msgid "" "used as an ad-hoc weapon." msgstr "" "Инструмент, чтобы вгонять гвозди в дерево или другой материал. Может быть " -"использовано, как специализированное оружие." +"использовано, как импровизированное оружие." #: lang/json/gun_from_json.py msgid "Paintball gun" @@ -137823,7 +134908,7 @@ msgid_plural "Paintball guns" msgstr[0] "маркер для пейнтбола" msgstr[1] "маркера для пейнтбола" msgstr[2] "маркеров для пейнтбола" -msgstr[3] "маркер для пейнтбола" +msgstr[3] "маркеры для пейнтбола" #: lang/json/gun_from_json.py msgid "A fairly harmless gun that shoots small paintballs." @@ -137835,7 +134920,7 @@ msgid_plural "12 gauge pistols" msgstr[0] "пистолет 12 калибра" msgstr[1] "пистолета 12 калибра" msgstr[2] "пистолетов 12 калибра" -msgstr[3] "пистолет 12 калибра" +msgstr[3] "пистолеты 12 калибра" #: lang/json/gun_from_json.py msgid "" @@ -137865,6 +134950,24 @@ msgstr "" "из-за шести раздельных стволов трудно прицеливаться. Из-за внешнего привода " "заклинивает гораздо реже." +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "самодельный рычажный дробовик" +msgstr[1] "самодельных рычажных дробовика" +msgstr[2] "самодельных рычажных дробовиков" +msgstr[3] "самодельные рычажные дробовики" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" +"Короткий самодельный рычажный дробовик с маленьким встроенным трубчатым " +"магазином. Хотя в целом это немногим больше чем доска с прикреплённым " +"примитивным дулом, это эффективный дробовик, и его можно сделать ещё лучше." + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -137933,7 +135036,7 @@ msgid_plural "M1014 shotguns" msgstr[0] "дробовик M1014" msgstr[1] "дробовика M1014" msgstr[2] "дробовиков M1014" -msgstr[3] "дробовик M1014" +msgstr[3] "дробовики M1014" #: lang/json/gun_from_json.py msgid "" @@ -138027,9 +135130,9 @@ msgstr "" msgid "double-barrel pipe shotgun" msgid_plural "double-barrel pipe shotguns" msgstr[0] "самодельная двустволка" -msgstr[1] "самодельных двустволки" +msgstr[1] "самодельные двустволки" msgstr[2] "самодельных двустволок" -msgstr[3] "самодельная двустволка" +msgstr[3] "самодельные двустволки" #: lang/json/gun_from_json.py msgid "" @@ -138045,7 +135148,7 @@ msgid_plural "pipe shotguns" msgstr[0] "самопал" msgstr[1] "самопала" msgstr[2] "самопалов" -msgstr[3] "самопал" +msgstr[3] "самопалы" #: lang/json/gun_from_json.py msgid "" @@ -138147,7 +135250,7 @@ msgid_plural "shotgun revolvers" msgstr[0] "дробовик-револьвер" msgstr[1] "дробовика-револьвера" msgstr[2] "дробовиков-револьверов" -msgstr[3] "дробовик-револьвер" +msgstr[3] "дробовики-револьверы" #: lang/json/gun_from_json.py msgid "" @@ -138304,10 +135407,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "1887 bootleg shotgun" msgid_plural "1887 bootleg shotguns" -msgstr[0] "1887 нелицензированный дробовик" -msgstr[1] "1887 нелицензированных дробовика" -msgstr[2] "1887 нелицензированных дробовиков" -msgstr[3] "1887 нелицензированные дробовики" +msgstr[0] "нелицензированный дробовик 1887" +msgstr[1] "нелицензированных дробовика 1887" +msgstr[2] "нелицензированных дробовиков 1887" +msgstr[3] "нелицензированные дробовики 1887" #: lang/json/gun_from_json.py msgid "" @@ -138353,7 +135456,7 @@ msgid_plural "flareguns" msgstr[0] "сигнальный пистолет" msgstr[1] "сигнальных пистолета" msgstr[2] "сигнальных пистолетов" -msgstr[3] "сигнальный пистолет" +msgstr[3] "сигнальные пистолеты" #: lang/json/gun_from_json.py msgid "A plastic single shot pistol that can be loaded with signal flares." @@ -138367,7 +135470,7 @@ msgid_plural "XM34 EMP projectors" msgstr[0] "ЭМИ излучатель XM34" msgstr[1] "ЭМИ излучателя XM34" msgstr[2] "ЭМИ излучателей XM34" -msgstr[3] "ЭМИ излучатель XM34" +msgstr[3] "ЭМИ излучатели XM34" #: lang/json/gun_from_json.py msgid "" @@ -138410,29 +135513,13 @@ msgstr "" "Встроенное оружие экзоскелета РМКЭ — бесшумное и точное снайперское лазерное" " ружьё." -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "ручная лазерная пушка" -msgstr[1] "ручных лазерные пушки" -msgstr[2] "ручных лазерных пушек" -msgstr[3] "ручных лазерные пушки" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "" -"Эта лазерная пушка снята с лазерной турели TX-5LR Цербер и модифицирована " -"таким образом, чтобы использовать УБП для стрельбы." - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" msgstr[0] "лазерная винтовка A7" msgstr[1] "лазерные винтовки A7" msgstr[2] "лазерных винтовок A7" -msgstr[3] "лазерная винтовка A7" +msgstr[3] "лазерные винтовки A7" #: lang/json/gun_from_json.py msgid "" @@ -138441,7 +135528,7 @@ msgid "" "corporate skulduggery. Though the Cataclysm put that on the ash heap of " "history, this weapon can still do the same to your foes." msgstr "" -"Лазерная винтовка новейшей технологии, разработанная исследовательским " +"Лазерная винтовка по новейшей технологии, разработанная исследовательским " "подразделением «Aerial Labs». По слухам, распространяемым корпорацией, по " "своим начальным характеристикам конкурировала с лучшими образцами вооружения" " Ривтех. Хотя Катаклизм отправил всё это на свалку истории, это оружие может" @@ -138453,7 +135540,7 @@ msgid_plural "V29 laser pistols" msgstr[0] "лазерный пистолет V29" msgstr[1] "лазерных пистолета V29" msgstr[2] "лазерных пистолетов V29" -msgstr[3] "лазерный пистолет V29" +msgstr[3] "лазерные пистолеты V29" #: lang/json/gun_from_json.py msgid "" @@ -138470,7 +135557,7 @@ msgid_plural "self bows" msgstr[0] "примитивный лук" msgstr[1] "примитивных лука" msgstr[2] "примитивных луков" -msgstr[3] "примитивный лук" +msgstr[3] "примитивные луки" #: lang/json/gun_from_json.py msgid "" @@ -138479,7 +135566,7 @@ msgid "" "well, unfortunately…" msgstr "" "Лук из цельного куска дерева, используется только тем, кто его и сделал. " -"Слабый и дико неточный, не так хорош, к сожалению…" +"Слабый и дико неточный, к сожалению, он никуда не годится…" #: lang/json/gun_from_json.py msgid "short bow" @@ -138487,7 +135574,7 @@ msgid_plural "short bows" msgstr[0] "короткий лук" msgstr[1] "коротких лука" msgstr[2] "коротких луков" -msgstr[3] "короткий лук" +msgstr[3] "короткие луки" #: lang/json/gun_from_json.py msgid "" @@ -138505,7 +135592,7 @@ msgid_plural "compound bows" msgstr[0] "блочный лук" msgstr[1] "блочных лука" msgstr[2] "блочных луков" -msgstr[3] "блочный лук" +msgstr[3] "блочные луки" #: lang/json/gun_from_json.py msgid "" @@ -138523,7 +135610,7 @@ msgid_plural "compound bows (high)" msgstr[0] "блочный лук (сильн.)" msgstr[1] "блочных лука (сильн.)" msgstr[2] "блочных луков (сильн.)" -msgstr[3] "блочный лук (сильн.)" +msgstr[3] "блочные луки (сильн.)" #: lang/json/gun_from_json.py msgid "" @@ -138543,7 +135630,7 @@ msgid_plural "compound bows (low)" msgstr[0] "блочный лук (лёгк.)" msgstr[1] "блочных лука (лёгк.)" msgstr[2] "блочных луков (лёгк.)" -msgstr[3] "блочный лук (лёгк.)" +msgstr[3] "блочные луки (лёгк.)" #: lang/json/gun_from_json.py msgid "" @@ -138562,7 +135649,7 @@ msgid_plural "composite bows" msgstr[0] "композитный лук" msgstr[1] "композитных лука" msgstr[2] "композитных лука" -msgstr[3] "композитный лук" +msgstr[3] "композитные луки" #: lang/json/gun_from_json.py msgid "" @@ -138579,7 +135666,7 @@ msgid_plural "recurve bows" msgstr[0] "рекурсивный лук" msgstr[1] "рекурсивных лука" msgstr[2] "рекурсивных луков" -msgstr[3] "рекурсивный лук" +msgstr[3] "рекурсивные луки" #: lang/json/gun_from_json.py msgid "" @@ -138598,7 +135685,7 @@ msgid_plural "reflex bows" msgstr[0] "рефлексивный лук" msgstr[1] "рефлексивных лука" msgstr[2] "рефлексивных луков" -msgstr[3] "рефлексивный лук" +msgstr[3] "рефлексивные луки" #: lang/json/gun_from_json.py msgid "" @@ -138614,7 +135701,7 @@ msgid_plural "hybrid longbows" msgstr[0] "гибридный длинный лук" msgstr[1] "гибридных длинных лука" msgstr[2] "гибридных длинных луков" -msgstr[3] "гибридный длинный лук" +msgstr[3] "гибридные длинные луки" #: lang/json/gun_from_json.py msgid "" @@ -138635,7 +135722,7 @@ msgid_plural "longbows" msgstr[0] "длинный лук" msgstr[1] "длинных лука" msgstr[2] "длинных луков" -msgstr[3] "длинный лук" +msgstr[3] "длинные луки" #: lang/json/gun_from_json.py msgid "" @@ -138652,10 +135739,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "wooden greatbow" msgid_plural "wooden greatbows" -msgstr[0] "деревянный большой лук" -msgstr[1] "деревянных больших лука" -msgstr[2] "деревянных больших луков" -msgstr[3] "деревянный большой лук" +msgstr[0] "деревянный длинный лук" +msgstr[1] "деревянных длинных лука" +msgstr[2] "деревянных длинных луков" +msgstr[3] "деревянные длинные луки" #: lang/json/gun_from_json.py msgid "" @@ -138670,10 +135757,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "compound greatbow" msgid_plural "compound greatbows" -msgstr[0] "блочный большой лук" -msgstr[1] "блочных больших лука" -msgstr[2] "блочных больших луков" -msgstr[3] "блочный большой лук" +msgstr[0] "блочный длинный лук" +msgstr[1] "блочных длинных лука" +msgstr[2] "блочных длинных луков" +msgstr[3] "блочные длинные луки" #: lang/json/gun_from_json.py msgid "" @@ -138691,7 +135778,7 @@ msgid_plural "reflex recurve bows" msgstr[0] "рефлексивно-рекурсивный лук" msgstr[1] "рефлексивно-рекурсивных лука" msgstr[2] "рефлексивно-рекурсивных луков" -msgstr[3] "рефлексивно-рекурсивный лук" +msgstr[3] "рефлексивно-рекурсивные луки" #: lang/json/gun_from_json.py msgid "" @@ -138713,17 +135800,17 @@ msgid_plural "bullet crossbows" msgstr[0] "пулевой арбалет" msgstr[1] "пулевых арбалета" msgstr[2] "пулевых арбалетов" -msgstr[3] "пулевых арбалета" +msgstr[3] "пулевые арбалеты" #: lang/json/gun_from_json.py msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." +"hunting small game." msgstr "" "Модифицированная версия классического арбалета, в котором вместо " "традиционных болтов используются камни. Больше подходит для охоты на мелкую " -"дичь, сильные люди перезаряжают быстрее." +"дичь." #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -138731,7 +135818,7 @@ msgid_plural "pistol crossbows" msgstr[0] "арбалет-пистолет" msgstr[1] "арбалет-пистолета" msgstr[2] "арбалет-пистолетов" -msgstr[3] "арбалет-пистолета" +msgstr[3] "арбалет-пистолеты" #: lang/json/gun_from_json.py msgid "" @@ -138749,17 +135836,15 @@ msgid_plural "crossbows" msgstr[0] "арбалет" msgstr[1] "арбалета" msgstr[2] "арбалетов" -msgstr[3] "арбалета" +msgstr[3] "арбалеты" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." msgstr "" -"Ручное оружие для стрельбы болтами. Заряжается долго, но люди посильнее " -"смогут зарядить его быстрее. Болты, выпущенные из этого оружия, обладают " -"хорошим шансом уцелеть для повторной стрельбы." +"Ручное оружие для стрельбы болтами. Болты, выпущенные из этого оружия, " +"обладают хорошим шансом уцелеть для повторной стрельбы." #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -138767,7 +135852,7 @@ msgid_plural "composite crossbows" msgstr[0] "композитный арбалет" msgstr[1] "композитных арбалета" msgstr[2] "композитных арбалетов" -msgstr[3] "композитный арбалет" +msgstr[3] "композитные арбалеты" #: lang/json/gun_from_json.py msgid "" @@ -138784,7 +135869,7 @@ msgid_plural "compound crossbows" msgstr[0] "блочный арбалет" msgstr[1] "блочных арбалета" msgstr[2] "блочных арбалетов" -msgstr[3] "блочный арбалет" +msgstr[3] "блочные арбалеты" #: lang/json/gun_from_json.py msgid "" @@ -138801,7 +135886,7 @@ msgid_plural "heavy crossbows" msgstr[0] "тяжёлый арбалет" msgstr[1] "тяжёлых арбалета" msgstr[2] "тяжёлых арбалетов" -msgstr[3] "тяжёлых арбалета" +msgstr[3] "тяжёлые арбалеты" #: lang/json/gun_from_json.py msgid "" @@ -138822,7 +135907,7 @@ msgid_plural "repeating crossbows" msgstr[0] "многозарядный арбалет" msgstr[1] "многозарядных арбалета" msgstr[2] "многозарядных арбалета" -msgstr[3] "многозарядных арбалета" +msgstr[3] "многозарядные арбалеты" #: lang/json/gun_from_json.py msgid "" @@ -138862,9 +135947,9 @@ msgstr "" msgid "Boeing XM-P plasma rifle" msgid_plural "Boeing XM-P plasma rifles" msgstr[0] "плазменная винтовка Боинг XM-P" -msgstr[1] "плазменных винтовки Боинг XM-P" +msgstr[1] "плазменные винтовки Боинг XM-P" msgstr[2] "плазменных винтовок Боинг XM-P" -msgstr[3] "плазменная винтовка Боинг XM-P" +msgstr[3] "плазменные винтовки Боинг XM-P" #: lang/json/gun_from_json.py msgid "" @@ -138914,7 +135999,7 @@ msgid_plural "crude rocket launchers" msgstr[0] "грубая ракетная установка" msgstr[1] "грубые ракетные установки" msgstr[2] "грубых ракетных установок" -msgstr[3] "грубая ракетная установка" +msgstr[3] "грубые ракетные установки" #: lang/json/gun_from_json.py msgid "" @@ -138933,7 +136018,7 @@ msgid_plural "water cannons" msgstr[0] "водяная пушка" msgstr[1] "водяные пушки" msgstr[2] "водяных пушки" -msgstr[3] "водяная пушка" +msgstr[3] "водяные пушки" #: lang/json/gun_from_json.py msgid "" @@ -138966,14 +136051,14 @@ msgid_plural "slings" msgstr[0] "праща" msgstr[1] "пращи" msgstr[2] "пращей" -msgstr[3] "праща" +msgstr[3] "пращи" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." +"A leather sling, can launch rocks much further and faster than throwing them" +" by hand." msgstr "" -"Кожаная праща, проста в использовании и достаточно точна. Галька в качестве " -"боеприпасов." +"Кожаная праща, позволяет запустить камень куда сильнее и дальше, чем рукой." #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -138986,15 +136071,15 @@ msgid_plural "slingshots" msgstr[0] "рогатка" msgstr[1] "рогатки" msgstr[2] "рогаток" -msgstr[3] "рогатка" +msgstr[3] "рогатки" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as " -"ammunition." +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." msgstr "" -"Деревянная рогатка, легка в использовании и точна. Галька используется в " -"качестве боеприпасов." +"Раздвоенный кусок дерева с эластичной лентой, натянутой между рогами. Может " +"запускать гальку или похожий мусор на большой скорости." #: lang/json/gun_from_json.py msgid "staff sling" @@ -139006,11 +136091,10 @@ msgstr[3] "посохи с пращой" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." msgstr "" -"Кожаная праща, прикрепленная к посоху, проста в использовании и достаточно " -"точна. Камни в качестве боеприпасов." +"Посох с пращей, позволяет запустить камень куда сильнее и дальше, чем рукой." #: lang/json/gun_from_json.py msgid "brace slingshot" @@ -139018,15 +136102,15 @@ msgid_plural "brace slingshots" msgstr[0] "рогатка с упором" msgstr[1] "рогатки с упором" msgstr[2] "рогаток с упором" -msgstr[3] "рогатка с упором" +msgstr[3] "рогатки с упором" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." msgstr "" -"Современная рогатка со скобой упора на запястье. Простая в использовании, " -"точная и довольно мощная." +"Современная рогатка с запястным упором, позволяющая стрелять мелкими " +"объектами чуть сильнее, чем с помощью простой деревянной рогатки." #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -139034,7 +136118,7 @@ msgid_plural "pneumatic spearguns" msgstr[0] "пневматическое гарпунное ружьё" msgstr[1] "пневматических гарпунных ружья" msgstr[2] "пневматических гарпунных ружей" -msgstr[3] "пневматическое гарпунное ружьё" +msgstr[3] "пневматические гарпунные ружья" #: lang/json/gun_from_json.py msgid "" @@ -139052,7 +136136,7 @@ msgid_plural "double spearguns" msgstr[0] "двухзарядное гарпунное ружьё" msgstr[1] "двухзарядных гарпунных ружья" msgstr[2] "двухзарядных гарпунных ружей" -msgstr[3] "двухзарядное гарпунное ружьё" +msgstr[3] "двухзарядные гарпунные ружья" #: lang/json/gun_from_json.py msgid "" @@ -139070,7 +136154,7 @@ msgid_plural "mini spearguns" msgstr[0] "гарпунный пистолет" msgstr[1] "гарпунных пистолета" msgstr[2] "гарпунных пистолетов" -msgstr[3] "гарпунный пистолет" +msgstr[3] "гарпунные пистолеты" #: lang/json/gun_from_json.py msgid "" @@ -139088,7 +136172,7 @@ msgid_plural "spearguns" msgstr[0] "гарпунное ружьё" msgstr[1] "гарпунных ружья" msgstr[2] "гарпунных ружей" -msgstr[3] "гарпунное ружьё" +msgstr[3] "гарпунные ружья" #: lang/json/gun_from_json.py msgid "" @@ -139103,10 +136187,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "sawn-off shotgun" msgid_plural "sawn-off shotguns" -msgstr[0] "обрез-дробовик" -msgstr[1] "обрез-дробовика" -msgstr[2] "обрез-дробовиков" -msgstr[3] "обрез-дробовик" +msgstr[0] "дробовик-обрез" +msgstr[1] "дробовика-обреза" +msgstr[2] "дробовиков-обрезов" +msgstr[3] "дробовики-обрезы" #: lang/json/gun_from_json.py msgid "" @@ -139120,10 +136204,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "sawn pipe shotgun" msgid_plural "sawn pipe shotguns" -msgstr[0] "самодельный обрез-дробовик" -msgstr[1] "самодельных обрез-дробовика" -msgstr[2] "самодельных обрез-дробовиков" -msgstr[3] "самодельный обрез-дробовик" +msgstr[0] "самодельный дробовик-обрез" +msgstr[1] "самодельных дробовика-обреза" +msgstr[2] "самодельных дробовиков-обрезов" +msgstr[3] "самодельные дробовики-обрези" #: lang/json/gun_from_json.py msgid "" @@ -139139,7 +136223,7 @@ msgid_plural "NX-17 charge rifles" msgstr[0] "энерговинтовка NX-17" msgstr[1] "энерговинтовки NX-17" msgstr[2] "энерговинтовок NX-17" -msgstr[3] "энерговинтовка NX-17" +msgstr[3] "энерговинтовки NX-17" #: lang/json/gun_from_json.py msgid "" @@ -139157,7 +136241,7 @@ msgid_plural "blowguns" msgstr[0] "духовая трубка" msgstr[1] "духовые трубки" msgstr[2] "духовых трубок" -msgstr[3] "духовая трубка" +msgstr[3] "духовые трубки" #: lang/json/gun_from_json.py msgid "" @@ -139229,7 +136313,7 @@ msgid_plural "shoddy laser rifles" msgstr[0] "самодельная лазерная винтовка" msgstr[1] "самодельные лазерные винтовки" msgstr[2] "самодельных лазерных винтовок" -msgstr[3] "самодельная лазерная винтовка" +msgstr[3] "самодельные лазерные винтовки" #: lang/json/gun_from_json.py msgid "" @@ -139299,10 +136383,10 @@ msgstr "трехлучевой лазер" #: lang/json/gun_from_json.py msgid "CRIT .5 LP" msgid_plural "CRIT .5 LPs" -msgstr[0] "лазерный пистолет К.Р.И.Т" -msgstr[1] "лазерных пистолета К.Р.И.Т" -msgstr[2] "лазерных пистолетов К.Р.И.Т" -msgstr[3] "лазерные пистолеты К.Р.И.Т" +msgstr[0] "лазерный пистолет К.Р.И.Т." +msgstr[1] "лазерных пистолета К.Р.И.Т." +msgstr[2] "лазерных пистолетов К.Р.И.Т." +msgstr[3] "лазерные пистолеты К.Р.И.Т." #: lang/json/gun_from_json.py msgid "" @@ -139319,10 +136403,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "CRIT Chain Laser" msgid_plural "CRIT Chain Lasers" -msgstr[0] "цепной лазер К.Р.И.Т" -msgstr[1] "цепных лазера К.Р.И.Т" -msgstr[2] "цепные лазеров К.Р.И.Т" -msgstr[3] "цепные лазеры К.Р.И.Т" +msgstr[0] "цепной лазер К.Р.И.Т." +msgstr[1] "цепных лазера К.Р.И.Т." +msgstr[2] "цепные лазеров К.Р.И.Т." +msgstr[3] "цепные лазеры К.Р.И.Т." #: lang/json/gun_from_json.py msgid "" @@ -139338,26 +136422,26 @@ msgstr "" #: lang/json/gun_from_json.py msgid "CRIT Laser Carbine" msgid_plural "CRIT Laser Carbines" -msgstr[0] "лазерный карабин К.Р.И.Т" -msgstr[1] "лазерных карабина К.Р.И.Т" -msgstr[2] "лазерных карабинов К.Р.И.Т" -msgstr[3] "лазерные карабины К.Р.И.Т" +msgstr[0] "лазерный карабин К.Р.И.Т." +msgstr[1] "лазерных карабина К.Р.И.Т." +msgstr[2] "лазерных карабинов К.Р.И.Т." +msgstr[3] "лазерные карабины К.Р.И.Т." #: lang/json/gun_from_json.py msgid "" "A short-barrel lightweight laser gun developed by C.R.I.T R&D. Mainly " "developed to test out a new breakthrough in laser weapons." msgstr "" -"Лёгкое лазерное ружьё, разработанное НИОКР К.Р.И.Т в качестве прорыва в " +"Лёгкое лазерное ружьё, разработанное НИОКР К.Р.И.Т. в качестве прорыва в " "технологии лучевого вооружения." #: lang/json/gun_from_json.py msgid "CRIT Energy Rifle" msgid_plural "CRIT Energy Rifles" -msgstr[0] "энергоружьё К.Р.И.Т" -msgstr[1] "энергоружья К.Р.И.Т" -msgstr[2] "энергоружий К.Р.И.Т" -msgstr[3] "энергоружья К.Р.И.Т" +msgstr[0] "энергоружьё К.Р.И.Т." +msgstr[1] "энергоружья К.Р.И.Т." +msgstr[2] "энергоружий К.Р.И.Т." +msgstr[3] "энергоружья К.Р.И.Т." #: lang/json/gun_from_json.py msgid "" @@ -139370,10 +136454,10 @@ msgstr "" #: lang/json/gun_from_json.py msgid "CRIT CQB Standard Issue" msgid_plural "CRIT CQB Standard Issues" -msgstr[0] "Руководство К.Р.И.Т по рукопашному бою" -msgstr[1] "Руководство К.Р.И.Т по рукопашному бою" -msgstr[2] "Руководство К.Р.И.Т по рукопашному бою" -msgstr[3] "Руководство К.Р.И.Т по рукопашному бою" +msgstr[0] "Руководство К.Р.И.Т. по рукопашному бою" +msgstr[1] "Руководство К.Р.И.Т. по рукопашному бою" +msgstr[2] "Руководство К.Р.И.Т. по рукопашному бою" +msgstr[3] "Руководства К.Р.И.Т. по рукопашному бою" #: lang/json/gun_from_json.py msgid "" @@ -139381,23 +136465,21 @@ msgid "" " mid-range versatility of the 9mm with the power of the 12 gauge shotgun. " "To further compliment the CQB aspect, the stock is built to amplify the " "user's force and the rugged construction with tonfa-like grip can handle " -"bashing in enemy heads. An integrated magazine makes it a pain to reload, " -"but keeps your clip from ejecting accidently." +"bashing in enemy heads." msgstr "" "Простое комбинированное оружие. Военный полуавтоматический карабин сочетает " "универсальность среднедальнего 9 мм и мощь дробовика 12 калибра. Чтобы " "отдать должное ближнему бою, приклад увеличивает силу ударов владельца, а " "крепкая конструкция и тонфоподобная рукоять способны проломить голову " -"противнику. Из-за встроенного магазина оружие очень неудобно перезаряжать, " -"но и обойма не выскочит в неудобный момент." +"противнику." #: lang/json/gun_from_json.py msgid "CRIT Fire Glove" msgid_plural "CRIT Fire Gloves" -msgstr[0] "огневая перчатка К.Р.И.Т" -msgstr[1] "огневых перчатки К.Р.И.Т" -msgstr[2] "огневых перчаток К.Р.И.Т" -msgstr[3] "огневые перчатки К.Р.И.Т" +msgstr[0] "огневая перчатка К.Р.И.Т." +msgstr[1] "огневых перчатки К.Р.И.Т." +msgstr[2] "огневых перчаток К.Р.И.Т." +msgstr[3] "огневые перчатки К.Р.И.Т." #: lang/json/gun_from_json.py msgid "Experimental CQB weapon system under development in C.R.I.T R&D." @@ -139459,12 +136541,12 @@ msgid "" "Experimental double purpose tool under development in C.R.I.T R&D. It takes" " a regular nail and then enlongates it within a fraction of a second before " "firing it out, upon reaching a target, the fragile stake explodes into " -"shards." +"shards inside the target." msgstr "" "Экспериментальный инструмент двойного назначения, разработанный НИОКР " "К.Р.И.Т. Он стреляет обычными гвоздями, однако перед выстрелом удлиняет их " "за долю секунды, так что при столкновении хрупкое остриё разлетается на " -"осколки." +"осколки внутри цели." #: lang/json/gun_from_json.py msgid "Line Gun" @@ -139626,333 +136708,50 @@ msgstr "" "опытный стрелок, и простотой изготовления боеприпасов." #: lang/json/gun_from_json.py -msgid "SVS-24" -msgid_plural "SVS-24" -msgstr[0] "SVS-24" -msgstr[1] "SVS-24" -msgstr[2] "SVS-24" -msgstr[3] "SVS-24" - -#: lang/json/gun_from_json.py -msgid "" -"The Sarafanov Assault Rifle replaced the famous AK family of guns as the " -"service rifle of the Russian Army. It uses the 6.54x42mm cartridge." -msgstr "" -"Штурмовая винтовка Сарафанова, заменившая знаменитое семейство винтовок " -"системы AK на службе в Советской армии. Использует патрон калибра 6,54х42 " -"мм." - -#: lang/json/gun_from_json.py -msgid "SVS-24C" -msgid_plural "SVS-24C" -msgstr[0] "SVS-24C" -msgstr[1] "SVS-24C" -msgstr[2] "SVS-24C" -msgstr[3] "SVS-24C" - -#: lang/json/gun_from_json.py -msgid "" -"The compact version of the standard SVS-24. It is commonly issued to tank " -"crews or special forces due to its smaller size. The shorter barrel reduces" -" accuracy." -msgstr "" -"Компактная версия стандартной SVS-24. Обычно выдаётся танкистам или спецназу" -" из-за небольшого размера. Короткий ствол снижает точность." - -#: lang/json/gun_from_json.py -msgid "CW-24" -msgid_plural "CW-24" -msgstr[0] "CW-24" -msgstr[1] "CW-24" -msgstr[2] "CW-24" -msgstr[3] "CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It was made by Clearwater Arms, Georgia, " -"for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" -" cartridge." -msgstr "" -"Гражданская версия SVS-24. Была изготовлена фирмой Clearwater Arms из " -"Джорджии для американского рынка. Полуавтоматическая винтовка, стреляет " -"слабым патроном 5,45x39 мм." - -#: lang/json/gun_from_json.py -msgid "CW-24M" -msgid_plural "CW-24M" -msgstr[0] "CW-24M" -msgstr[1] "CW-24M" -msgstr[2] "CW-24M" -msgstr[3] "CW-24M" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" -" as the SVS-24." -msgstr "" -"Гражданская версия SVS-24. Винтовка использует такой же патрон калибра " -"6,54х42 мм как и SVS-24." - -#: lang/json/gun_from_json.py -msgid "CW-24K" -msgid_plural "CW-24K" -msgstr[0] "CW-24K" -msgstr[1] "CW-24K" -msgstr[2] "CW-24K" -msgstr[3] "CW-24K" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the cheaper, but still " -"powerful, 7.62x39mm cartridge." -msgstr "" -"Гражданская версия SVS-24. Винтовка стреляет более дешёвыми, но всё ещё " -"мощными патронами калибра 7,62x39 мм." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24" -msgid_plural "Modified CW-24" -msgstr[0] "Модифицированная CW-24" -msgstr[1] "Модифицированные CW-24" -msgstr[2] "Модифицированных CW-24" -msgstr[3] "Модифицированные CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It has a modified receiver and a new " -"crudely crafted full-auto bolt carrier. Don't expect the original " -"reliability." -msgstr "" -"Гражданская версия SVS-24. Винтовка имеет изменённую ствольную коробку и " -"новую, грубо созданную затворную раму с возможностью ведения полностью " -"автоматического огня. Не ожидайте надёжности как у оригинала." - -#: lang/json/gun_from_json.py -msgid "Modified CW-24M" -msgid_plural "Modified CW-24M" -msgstr[0] "Модифицированная CW-24M" -msgstr[1] "Модифицированные CW-24M" -msgstr[2] "Модифицированных CW-24M" -msgstr[3] "Модифицированные CW-24M" - -#: lang/json/gun_from_json.py -msgid "CWD-63" -msgid_plural "CWD-63" -msgstr[0] "CWD-63" -msgstr[1] "CWD-63" -msgstr[2] "CWD-63" -msgstr[3] "CWD-63" - -#: lang/json/gun_from_json.py -msgid "" -"The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " -"rechambered for the .308 round." -msgstr "" -"Версия знаменитой СВД-63 от Clearwater Arms. Снаряжена под патрон калибра " -".308." - -#: lang/json/gun_from_json.py -msgid "Wrist DREAD" -msgid_plural "Wrist DREAD" -msgstr[0] "Wrist DREAD" -msgstr[1] "Wrist DREAD" -msgstr[2] "Wrist DREAD" -msgstr[3] "Wrist DREAD" - -#: lang/json/gun_from_json.py -msgid "" -"The miniaturized version of the DREAD MkIX attached to the wrist of the " -"operator. It fires .20 metal pellets at an incredible rate without any " -"flash or noise. It is mainly a defensive weapon." -msgstr "" -"Уменьшенная версия ТРЕПЕТ Mk.IX, закреплённая на запястье оператора. " -"Стреляет металлическими пулями калибра .20 с невероятной скоростью, " -"абсолютно беззвучно и без вспышки. В основном предназначено для самозащиты." - -#: lang/json/gun_from_json.py -msgid "JHEC M128" -msgid_plural "JHEC M128s" -msgstr[0] "JHEC M128s" -msgstr[1] "JHEC M128s" -msgstr[2] "JHEC M128s" -msgstr[3] "JHEC M128s" - -#: lang/json/gun_from_json.py -msgid "" -"The Johnson Heavy Equipment Co. M128 autorevolver; all others fail to " -"measure up. Johnson Heavy Equipment Co. is a subsidiary of D&B " -"Minneapolis." -msgstr "" -"M128 авторевольвер компании «Johnson Heavy Equipment Co.»; остальные " -"модификации револьвера не оправдали надежд. «JHEC» — дочерняя компания «D&B»" -" Миннеаполис." - -#: lang/json/gun_from_json.py -msgid "Boomlighter 454" -msgid_plural "Boomlighter 454s" -msgstr[0] "Boomlighter 454s" -msgstr[1] "Boomlighter 454s" -msgstr[2] "Boomlighter 454s" -msgstr[3] "Boomlighter 454s" - -#: lang/json/gun_from_json.py -msgid "" -"Handmade by master gunsmiths at D&B Minneapolis, this deadly accurate and " -"powerful pistol packs a punch with precision, power and flair. Comes with a" -" one of a kind integrated flamethrower." -msgstr "" -"Собранный вручную мастерами оружейниками компании «D&B» Миннеаполис, этот " -"убийственно точный и мощный пистолет сочетает в себе проникающую способность" -" с точностью, мощь и баланс. Поступает с модификацией встроенный огнемёт." - -#: lang/json/gun_from_json.py -msgid "gunsword" -msgid_plural "gunswords" -msgstr[0] "меч-огнестрел" -msgstr[1] "меча-огнестрела" -msgstr[2] "мечей-огнестрелов" -msgstr[3] "мечей-огнестрелов" - -#: lang/json/gun_from_json.py -msgid "" -"A long sharp blade, with two powerful .500 S&W Magnum chambers in the hilt." -" While chambering big rounds, the barrels are so short it slightly reduces " -"outgoing damage." -msgstr "" -"Длинный острый клинок с двумя мощными патронниками .500 S&W Магнум в " -"рукояти. При этом стволы настолько коротки, что немного снижают урон." - -#: lang/json/gun_from_json.py -msgid "gunknife" -msgid_plural "gunknives" -msgstr[0] "кинжал-огнестрел" -msgstr[1] "кинжала-огнестрела" -msgstr[2] "кинжалов-огнестрелов" -msgstr[3] "кинжала-огнестрела" - -#: lang/json/gun_from_json.py -msgid "" -"A short but sharp blade, with two powerful .500 S&W Magnum chambers in the " -"grip. While chambering big rounds, the barrels are so short it slightly " -"reduces outgoing damage." -msgstr "" -"Короткий острый клинок с двумя мощными патронниками .500 S&W Магнум в " -"рукояти. При этом стволы настолько коротки, что немного снижают урон." - -#: lang/json/gun_from_json.py -msgid "FiveO handcannon" -msgid_plural "FiveO handcannons" -msgstr[0] "пушка пять-ноль" -msgstr[1] "пушки пять-ноль" -msgstr[2] "пушкек пять-ноль" -msgstr[3] "пушка пять-ноль" - -#: lang/json/gun_from_json.py -msgid "" -"Someone crazy thought that the .50 BMG belonged in a pistol. This massive " -"piece of steel proves otherwise. The sheer bulk however does make it quite " -"adept at smashing face." -msgstr "" -"Какой-то безумец решил, что калибр .50 BMG подходит для пистолета. Этот " -"массивный кусок стали утверждает обратное. Впрочем, его солидный вес весьма " -"помогает, если нужно надавать им по башке." - -#: lang/json/gun_from_json.py -msgid "M919" -msgid_plural "M919s" -msgstr[0] "M919s" -msgstr[1] "M919s" -msgstr[2] "M919s" -msgstr[3] "M919s" - -#: lang/json/gun_from_json.py -msgid "" -"Manufactured by Sarah and Suhl machine company of Portland, Maine, the M919 " -"submachine gun is the most accurate 9x19mm submachine gun on the market. " -"Intended for police use, it is fitted with an integral grenade launcher." -msgstr "" -"Пистолет-пулемёт M919 изготовленный «Машиностроительной компанией Сара и " -"Зуль» Портленд, штат Мэн — наиболее точный из представленных пистолет-" -"пулемётов 9х19 мм на рынке оружия. Предназначался для сил полиции, оснащён " -"встроенным гранатомётом." - -#: lang/json/gun_from_json.py -msgid "Eagle 1776" -msgid_plural "Eagle 1776" -msgstr[0] "Eagle 1776" -msgstr[1] "Eagle 1776" -msgstr[2] "Eagle 1776" -msgstr[3] "Eagle 1776" - -#: lang/json/gun_from_json.py -msgid "" -"You see before you a marvel of American engineering: a powerful .44 Magnum " -"submachine gun, made from fine parts assembled in America, including an " -"integral grenade launcher. Eagle 1776: From the arsenal of freedom!" -msgstr "" -"Вы видите перед собой венец американской конструкторской разработки: мощный " -"пистолет-пулемёт калибра .44 Магнум, полностью собран из высококачественных " -"комплектующих в Америке, включая встроенный подствольный гранатомёт. Eagle " -"1776: прямо со склада оружия свободы!" - -#: lang/json/gun_from_json.py -msgid "L.T. carbine" -msgid_plural "L.T. carbines" -msgstr[0] "карабин L.T." -msgstr[1] "карабина L.T." -msgstr[2] "карабинов L.T." -msgstr[3] "карабины L.T." - -#: lang/json/gun_from_json.py -msgid "" -"The Lightning Trail carbine was developed for the riot police to quickly " -"blanket an area with lightning clouds. While damaging, it is less lethal " -"than live ammunition." -msgstr "" -"Карабин Lightning Trail был разработан для сил полиции по подавлению " -"массовых беспорядков, чтобы быстро охватить область наэлектрилизованным " -"облаком. Наносимые оружием повреждения током, можно отнести к несмертельным " -"типам вооружения." - -#: lang/json/gun_from_json.py -msgid "arc cannon" -msgid_plural "arc cannons" -msgstr[0] "дуговая пушка" -msgstr[1] "дуговые пушки" -msgstr[2] "дуговых пушек" -msgstr[3] "дуговая пушка" +msgid "pipe rifle" +msgid_plural "pipe rifles" +msgstr[0] "самопальная винтовка" +msgstr[1] "самопальные винтовки" +msgstr[2] "самопальных винтовки" +msgstr[3] "самопальные винтовки" #: lang/json/gun_from_json.py msgid "" -"The arc cannon fires bolts of lightning arcing between targets in close " -"proximity to each other. Originally manufactured to fry insects, now it’s " -"been turned up to fry zombies." +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." msgstr "" -"Дуговая пушка выпускает вспышки молний, образующие дугу между целями в " -"непосредственной близости друг от друга. Первоначально была изготовлена, для" -" борьбы жаром с насекомыми вредителями, сейчас используется чтобы жарить " -"зомби." +"Грубое сделанное самодельное длинноствольное огнестрельное оружие под " +"винтовочный патрон, собранное из прочной трубы, усиленной в районе затвора. " +"Вмещает один патрон. Включает грубо собранный механизм для совершения " +"выстрела. Нет никакого механизма для извлечения гильзы, что замедляет " +"перезарядку, а конструкция не дает возможности рассчитывать на надежность и " +"долгую службу." #: lang/json/gun_from_json.py -msgid "M1911 DS" -msgid_plural "M1911 DSs" -msgstr[0] "M1911 DSs" -msgstr[1] "M1911 DSs" -msgstr[2] "M1911 DSs" -msgstr[3] "M1911 DSs" +msgid "survivor carbine" +msgid_plural "survivor carbines" +msgstr[0] "карабин выживальщика" +msgstr[1] "карабина выживальщика" +msgstr[2] "карабинов выживальщика" +msgstr[3] "карабины выживальщика" #: lang/json/gun_from_json.py msgid "" -"The M1911 Darkstalker is a very modified M1911, it has a fully integrated " -"crossbow and added rails. Professional looking with a ebony black finish, " -"laced with lime green details. Now they will know why they fear the night." -" Bat hood sold separately." +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than" +" ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." msgstr "" -"«M1911 Darkstalker» — очень изменённая версия M1911 с несъёмным арбалетом и " -"добавочными направляющими. Профессионально выглядит благодаря покрытию под " -"цвет чёрного дерева, отделан по кайме лимонно-зелёными инкрустированными " -"деталями. Теперь ОНИ будут знать, почему нужно бояться ночи. Накидка летучей" -" мыши продаётся отдельно." +"Грубо собранный карабин, способный стрелять винтовочными патронами, " +"подаваемыми из стандартного магазина. Запирание ствола контролируется " +"примитивной рычажной системой. Мощный патрон и сносная точность позволяют " +"эффективно использовать ее против зомби и средних размеров дичи. Высокое " +"давление при стрельбе и сомнительна конструкция плохо виляют на прочность и " +"надежность, но в целом это оружие может оказаться полезным, если набить руку" +" в стрельбе из него." #: lang/json/gun_from_json.py msgid "antique pistol" @@ -140110,7 +136909,7 @@ msgstr "" "способен быстро выпустить шесть снарядов. Патронник вращается мощной " "пружиной, увеличивая темп стрельбы, но усложняя перезарядку, так как пружина" " должна быть заново взведена в процессе. Не стоит и говорить, что шесть " -"выстрелов при правильном выборе цели и типа снаряда может нанести " +"выстрелов при правильном выборе цели и типа снаряда могут нанести " "невероятный урон." #: lang/json/gun_from_json.py @@ -140230,7 +137029,7 @@ msgid_plural "submachine guns" msgstr[0] "пистолет-пулемёт" msgstr[1] "пистолет-пулемёта" msgstr[2] "пистолет-пулемётов" -msgstr[3] "пистолет-пулемёт" +msgstr[3] "пистолеты-пулемёты" #: lang/json/gun_from_json.py msgid "" @@ -140264,8 +137063,12 @@ msgid "" "their nations well enough, so this should be good for zombies... right? " "Accepts standard pistol ammunition." msgstr "" -"Грубо сконструированный автоматический пистолет-пулемет, использующий стандартные пистолетные патроны и магазины. Тяжелый затвор увеличивает сложность прицельной стрельбы, а не самая продуманная конструкция снижает надежность и долговечность. Похожие попытки были частью отчаянных решений во время Второй Мировой, и они оказались весьма полезными, так что должно помочь и с зомби… Правда?\n" -"Использует обычные пистолетные боеприпасы." +"Грубо сконструированный автоматический пистолет-пулемет, использующий " +"стандартные пистолетные патроны и магазины. Тяжелый затвор увеличивает " +"сложность прицельной стрельбы, а не самая продуманная конструкция снижает " +"надежность и долговечность. Похожие попытки были частью отчаянных решений во" +" время Второй Мировой, и они оказались весьма полезными, так что должно " +"помочь и с зомби… Правда? Использует обычные пистолетные боеприпасы." #: lang/json/gun_from_json.py msgid "hand cannon" @@ -140441,7 +137244,7 @@ msgid_plural "assault rifles" msgstr[0] "штурмовая винтовка" msgstr[1] "штурмовые винтовки" msgstr[2] "штурмовых винтовок" -msgstr[3] "штурмовая винтовка" +msgstr[3] "штурмовые винтовки" #: lang/json/gun_from_json.py msgid "" @@ -140463,7 +137266,7 @@ msgid_plural "light machine guns" msgstr[0] "лёгкий пулемёт" msgstr[1] "лёгких пулемёта" msgstr[2] "лёгких пулемётов" -msgstr[3] "лёгкий пулемёт" +msgstr[3] "лёгкие пулемёты" #: lang/json/gun_from_json.py msgid "" @@ -140481,52 +137284,6 @@ msgstr "" " винтовкой, ручной пулемет способен нанести немалый урон на солидной " "дистанции. Перезарядка занимает много времени." -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "самопальная винтовка" -msgstr[1] "самопальные винтовки" -msgstr[2] "самопальных винтовки" -msgstr[3] "самопальные винтовки" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" -"Грубое сделанное самодельное длинноствольное огнестрельное оружие под " -"винтовочный патрон, собранное из прочной трубы, усиленной в районе затвора. " -"Вмещает один патрон. Включает грубо собранный механизм для совершения " -"выстрела. Нет никакого механизма для извлечения гильзы, что замедляет " -"перезарядку, а конструкция не дает возможности рассчитывать на надежность и " -"долгую службу." - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "карабин выживальщика" -msgstr[1] "карабина выживальщика" -msgstr[2] "карабинов выживальщика" -msgstr[3] "карабины выживальщика" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than" -" ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" -"Грубо собранный карабин, способный стрелять винтовочными патронами, " -"подаваемыми из стандартного магазина. Запирание ствола контролируется " -"примитивной рычажной системой. Мощный патрон и сносная точность позволяют " -"эффективно использовать ее против зомби и средних размеров дичи. Высокое " -"давление при стрельбе и сомнительна конструкция плохо виляют на прочность и " -"надежность, но в целом это оружие может оказаться полезным, если набить руку" -" в стрельбе из него." - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -140622,7 +137379,7 @@ msgid_plural "heavy machine guns" msgstr[0] "тяжёлый пулемёт" msgstr[1] "тяжёлых пулемёта" msgstr[2] "тяжёлых пулемётов" -msgstr[3] "тяжёлый пулемёт" +msgstr[3] "тяжёлые пулемёты" #: lang/json/gun_from_json.py msgid "" @@ -140879,176 +137636,6 @@ msgstr "" msgid "Fake gun that fires barbed javelins." msgstr "Оружие отладки, стреляет шипастыми дротиками." -#: lang/json/gun_from_json.py -msgid "fire lance" -msgid_plural "fire lances" -msgstr[0] "огненное копьё" -msgstr[1] "огненных копья" -msgstr[2] "огненных копий" -msgstr[3] "огненное копьё" - -#: lang/json/gun_from_json.py -msgid "" -"An ancient Chinese spear, with a small tube attached for a charge of " -"gunpowder. While it has an extremely short range, it gives a powerful edge " -"in close combat." -msgstr "" -"Древнекитайское копьё, к которому присоединена маленькая трубочка с зарядом " -"пороха. Хотя у неё очень небольшая дальность действия, в бою это даёт " -"значительное преимущество." - -#: lang/json/gun_from_json.py -msgctxt "gun_type_type" -msgid "melee" -msgstr "рукопашный бой" - -#: lang/json/gun_from_json.py -msgid "base robogun" -msgid_plural "base roboguns" -msgstr[0] "базовое робооружие" -msgstr[1] "базовых робооружия" -msgstr[2] "базовых робооружий" -msgstr[3] "базовое робооружие" - -#: lang/json/gun_from_json.py -msgid "" -"This is a pseudo item for monster attacks. If you see this, it's a bug." -msgstr "Это псевдовещь для атак монстров. Если вы ее видите, значит это баг." - -#: lang/json/gun_from_json.py -msgid "integral 12 gauge shotgun" -msgid_plural "integral 12 gauge shotguns" -msgstr[0] "встроенный дробовик 12 кал." -msgstr[1] "встроенных дробовика 12 кал." -msgstr[2] "встроенных дробовиков 12 кал." -msgstr[3] "встроенные дробовики 12 кал." - -#: lang/json/gun_from_json.py -msgid "integral 50 caliber machinegun" -msgid_plural "integral 50 caliber machineguns" -msgstr[0] "встроенный пулемет 50 калибра" -msgstr[1] "встроенных пулемета 50 калибра" -msgstr[2] "встроенных пулеметов 50 калибра" -msgstr[3] "встроенный пулемет 50 калибра" - -#: lang/json/gun_from_json.py -msgid "integral needle gun" -msgid_plural "integral needle guns" -msgstr[0] "встроенный дротикомет" -msgstr[1] "встроенных дротикомета" -msgstr[2] "встроенных дротикометов" -msgstr[3] "встроенный дротикомет" - -#: lang/json/gun_from_json.py -msgid "integral 8mm firearm" -msgid_plural "integral 8mm firearms" -msgstr[0] "встроенное 8-миллиметровое оружие" -msgstr[1] "встроенных 8-миллиметровых оружия" -msgstr[2] "встроенных 8-миллиметровых орудий" -msgstr[3] "встроенное 8-миллиметровое оружие" - -#: lang/json/gun_from_json.py -msgid "integral laser emitter" -msgid_plural "integral laser emitters" -msgstr[0] "встроенный лазерный излучатель" -msgstr[1] "встроенных лазерных излучателя" -msgstr[2] "встроенных лазерных излучателей" -msgstr[3] "встроенный лазерный излучатель" - -#: lang/json/gun_from_json.py -msgid "integral railgun" -msgid_plural "integral railguns" -msgstr[0] "встроенная рельсопушка" -msgstr[1] "встроенные рельсопушки" -msgstr[2] "встроенных рельсопушек" -msgstr[3] "встроенная рельсопушка" - -#: lang/json/gun_from_json.py -msgid "integral lightning caster" -msgid_plural "integral lightning casters" -msgstr[0] "встроенный молниемет" -msgstr[1] "встроенных молниемета" -msgstr[2] "встроенных молниеметов" -msgstr[3] "встроенный молниемет" - -#: lang/json/gun_from_json.py -msgid "integral EMP generator" -msgid_plural "integral EMP generators" -msgstr[0] "встроенный ЭМИ генератор" -msgstr[1] "встроенных ЭМИ генератора" -msgstr[2] "встроенных ЭМИ генераторов" -msgstr[3] "встроенный ЭМИ генератор" - -#: lang/json/gun_from_json.py -msgid "atlatl" -msgid_plural "atlatls" -msgstr[0] "атлатль" -msgstr[1] "атлатля" -msgstr[2] "атлатлей" -msgstr[3] "атлатль" - -#: lang/json/gun_from_json.py -msgid "" -"A wooden tool for supporting a javelin, to throw it more effectively than by" -" hand." -msgstr "" -"Деревянное приспособление для метания дротиков с большей эффективностью, " -"нежели руками." - -#: lang/json/gun_from_json.py -msgid "makeshift crossbow" -msgid_plural "makeshift crossbows" -msgstr[0] "самодельный арбалет" -msgstr[1] "самодельных арбалета" -msgstr[2] "самодельных арбалетов" -msgstr[3] "самодельных арбалета" - -#: lang/json/gun_from_json.py -msgid "" -"A simple, handmade crossbow of the Skane style, with a wooden peg that is " -"pushed up from underneath to loose the bowstring. Not as powerful as other " -"crossbow designs, but it is easier to draw the bow back. Bolts fired from " -"this weapon have a good chance of remaining intact for re-use." -msgstr "" -"Простой собранный вручную скандинавский арбалет. Тетива спускается поднятием" -" деревянного рычага. Не такой мощный, как другие модели арбалетов, зато " -"легче натягивать тетиву. Болты, выпущенные из этого оружия, имеют хороший " -"шанс уцелеть для повторного использования." - -#: lang/json/gun_from_json.py -msgid "" -"This is a replica of the bow possessed by Odin, Ichaival, which is rumored " -"to fire 10 arrows with every pull of the string. It has gold and silver " -"ornaments on it." -msgstr "" -"Это копия лука, которым владел Один. По слухам, из него можно было " -"выстрелить десятью стрелами за одно натяжение тетивы. На нём имеются золотые" -" и серебряные украшения." - -#: lang/json/gun_from_json.py -msgid "integral nailgun" -msgid_plural "integral nailguns" -msgstr[0] "встроенный гвоздомет" -msgstr[1] "встроенных гвоздомета" -msgstr[2] "встроенных гвоздометов" -msgstr[3] "встроенный гвоздомет" - -#: lang/json/gun_from_json.py -msgid "mounted crossbow" -msgid_plural "mounted crossbows" -msgstr[0] "установленный арбалет" -msgstr[1] "установленных арбалета" -msgstr[2] "установленных арбалетов" -msgstr[3] "установленный арбалет" - -#: lang/json/gun_from_json.py -msgid "Vortical plasma beam" -msgid_plural "Vortical plasma beams" -msgstr[0] "Вихревой плазменный пучок" -msgstr[1] "Вихревых плазменных пучка" -msgstr[2] "Вихревых плазменных пучков" -msgstr[3] "Вихревой плазменный пучок" - #: lang/json/gun_from_json.py msgid "TEST compound bow" msgid_plural "TEST compound bows" @@ -141058,736 +137645,36 @@ msgstr[2] "ТЕСТОВЫХ блочных луков" msgstr[3] "ТЕСТОВЫЕ блочные луки" #: lang/json/gun_from_json.py -msgid "30mm autocannon" -msgid_plural "30mm autocannons" -msgstr[0] "автопушка 30 мм" -msgstr[1] "автопушки 30 мм" -msgstr[2] "автопушек 30 мм" -msgstr[3] "автопушка 30 мм" - -#: lang/json/gun_from_json.py -msgid "" -"A chain-driven autocannon chambered in 30x113mm, originally designed for " -"aircraft use, but later adapted for armored vehicles. Obviously it needs to" -" be mounted on a vehicle to fire." -msgstr "" -"Автоматическая пушка с цепным приводом под снаряд 30x113 мм, изначально " -"разработана для авиации, но позже адаптирована для бронетехники. Очевидно, " -"что её нужно смонтировать на транспортном средстве для стрельбы." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "120mm tank gun" -msgid_plural "120mm tank guns" -msgstr[0] " танковая пушка 120 мм" -msgstr[1] "танковые пушки 120 мм" -msgstr[2] "танковых пушек 120 мм" -msgstr[3] "танковая пушка 120 мм" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " -"to fire." -msgstr "" -"120-мм танковая пушка. Очевидно, что её нужно установить на транспорт, чтобы" -" из неё можно было стрелять." - -#: lang/json/gun_from_json.py -msgid "120mm autoloading tank gun" -msgid_plural "120mm autoloading tank guns" -msgstr[0] "танковая пушка 120 мм самозарядная" -msgstr[1] "танковые пушки 120 мм самозарядные" -msgstr[2] "танковых пушек 120 мм самозарядных" -msgstr[3] "танковая пушка 120 мм самозарядная" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"120-мм танковая пушка с самозарядным механизмом на 5 выстрелов. Очевидно, " -"что её нужно установить на транспорт, чтобы из неё можно было стрелять." - -#: lang/json/gun_from_json.py -msgid "120mm remote weapon system" -msgid_plural "120mm remote weapon systems" -msgstr[0] "орудие 120 мм на ДУ" -msgstr[1] "орудия 120 мм на ДУ" -msgstr[2] "орудий 120 мм на ДУ" -msgstr[3] "орудие 120 мм на ДУ" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon with an advanced autoloader, designed to operate via remote " -"control. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"120-мм пушка с передовой автозарядкой и управлением через пульт " -"дистанционного управления. Очевидно, что её нужно смонтировать на " -"транспортном средстве для стрельбы." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "155mm howitzer" -msgid_plural "155mm howitzers" -msgstr[0] "гаубица 155 мм" -msgstr[1] "гаубицы 155 мм" -msgstr[2] "гаубиц 155 мм" -msgstr[3] "гаубица 155 мм" - -#: lang/json/gun_from_json.py -msgid "" -"A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "" -"155-мм пушка для артиллерии и тяжёлых танков. Очевидно, что её нужно " -"установить на транспорт, чтобы из неё можно было стрелять." - -#: lang/json/gun_from_json.py -msgid "Vehicular ATGM Launcher" -msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "самоходная установка ПТУР" -msgstr[1] "самоходные установки ПТУР" -msgstr[2] "самоходных установок ПТУР" -msgstr[3] "самоходная установка ПТУР" - -#: lang/json/gun_from_json.py -msgid "" -"A launcher for anti-tank guided missiles. While highly accurate, it isn't " -"fire-and-forget. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"Пусковая установка противотанковых управляемых ракет. Хотя и довольно " -"точная, но без самонаведения. Очевидно, что её нужно смонтировать на " -"транспортном средстве для стрельбы." - -#: lang/json/gun_from_json.py -msgid "slingshot cannon" -msgid_plural "slingshot cannons" -msgstr[0] "рогатка пушка" -msgstr[1] "рогатка пушки" -msgstr[2] "рогатка пушек" -msgstr[3] "рогатка пушка" - -#: lang/json/gun_from_json.py -msgid "" -"Essentially several long drawstrings held by two long, reinforced sides and " -"a mechanism attached to a crank to draw and fire it. It's deceptively " -"powerful and surprisingly accurate, but far too large to be used without " -"some sort of stable platform." -msgstr "" -"По сути, несколько длинных тетив, натянутых между двумя усиленными брусьями," -" и механизм с коленчатым рычагом, который натягивает тетиву и стреляет. Это " -"обманчиво мощный и удивительно точный агрегат, но слишком большой, чтобы " -"использовать его без какой-либо устойчивой платформы." - -#: lang/json/gun_from_json.py -msgid "lacerator" -msgid_plural "lacerators" -msgstr[0] "протыкатель" -msgstr[1] "протыкателя" -msgstr[2] "протыкателей" -msgstr[3] "протыкатель" - -#: lang/json/gun_from_json.py -msgid "" -"This weapon launches serrated metal disks at nearby enemies. It draws its " -"power from a vehicle's engines, and thus must be mounted on such in order to" -" be operated." -msgstr "" -"Это оружие использует зубчатые металлические диски в качестве боеприпасов " -"против врагов поблизости. Запитывается от энергии двигателя транспортного " -"средства. Требует монтирования на платформу для управления." - -#: lang/json/gun_from_json.py -msgid "rotary cannon" -msgid_plural "rotary cannons" -msgstr[0] "вращающаяся пушка" -msgstr[1] "вращающихся пушки" -msgstr[2] "вращающаяся пушек" -msgstr[3] "вращающаяся пушка" - -#: lang/json/gun_from_json.py -msgid "" -"This fearsome weapon sports 3 barrels in a cyclic configuration. A " -"specialized mechanism loads the otherwise troublesome rounds; allowing it to" -" be fired in quick succession. However, this renders it incredibly " -"unwieldy, and it must be mounted on a support structure in order to be " -"fired." -msgstr "" -"Это грозное оружие имеет 3 ствола, расположенных по кругу. Специальный " -"механизм загрузки подаёт патроны необычным образом, обеспечивая высокий темп" -" стрельбы. Однако это делает его невероятно громоздким, и его необходимо " -"смонтировать на опорную конструкцию для стрельбы." - -#: lang/json/gun_from_json.py -msgid "laser cannon" -msgid_plural "laser cannons" -msgstr[0] "лазерная пушка" -msgstr[1] "лазерных пушки" -msgstr[2] "лазерных пушек" -msgstr[3] "лазерная пушка" - -#: lang/json/gun_from_json.py -msgid "" -"This enhanced laser cannon sacrifices efficiency for destructive power. The" -" increased power requirements require a significant power source and the " -"size of the firing mechanism also requires support." -msgstr "" -"Это улучшенная лазерная пушка, жертвует эффективностью ради разрушительной " -"силы. Для увеличения мощности потребовался значительный источник энергии; " -"размер механизма стрельбы также требует монтирования на опорную конструкцию." - -#: lang/json/gun_from_json.py -msgid "pulse laser" -msgid_plural "pulse lasers" -msgstr[0] "импульсный лазер" -msgstr[1] "импульсных лазера" -msgstr[2] "импульсных лазеров" -msgstr[3] "импульсный лазер" - -#: lang/json/gun_from_json.py -msgid "" -"Augmented damage capability and rapid bursts make this a powerful weapon. " -"The increased power requirements require a significant power source and the " -"firing mechanism also requires a specialized chassis." -msgstr "" -"Увеличенная способность к нанесению урона и скорострельность делают этот " -"лазер мощным оружием. Повышенные требования к мощности требуют значительного" -" источника энергии; размер механизма стрельбы также требует монтирования на " -"специальное шасси." - -#: lang/json/gun_from_json.py -msgid "turbolaser cannon" -msgid_plural "turbolaser cannons" -msgstr[0] "турболазерная пушка" -msgstr[1] "турболазерные пушки" -msgstr[2] "турболазерных пушек" -msgstr[3] "турболазерная пушка" - -#: lang/json/gun_from_json.py -msgid "" -"With an augmented emitter and capacitor, this mounted laser is capable of " -"superheating most materials to the point of exploding. The firing mechanism" -" also requires the services of a specialized chassis, and one must be wary " -"of the prodigious power needs of such a weapon." -msgstr "" -"Благодаря увеличенному генератору излучения и конденсатору, этот монтируемый" -" лазер способен перегревать большинство материалов до критической точки " -"взрыва. Размер механизма стрельбы также требует монтирования на специальное " -"шасси. Осторожно — колоссальные энергетические потребности такого типа " -"вооружения." - -#: lang/json/gun_from_json.py -msgid "ripper" -msgid_plural "rippers" -msgstr[0] "потрошитель" -msgstr[1] "потрошителя" -msgstr[2] "потрошителей" -msgstr[3] "потрошитель" - -#: lang/json/gun_from_json.py -msgid "" -"This menacing weapon rapidly launches bladed disks that rips through enemies" -" with devastating effect. It draws its power from a vehicle's engines, and " -"thus must be mounted on such in order to be operated." -msgstr "" -"Это угрожающее оружие быстро запускает диски с лезвиями, которые разрывают " -"врагов с разрушительным эффектом. Запитывается от энергии двигателя " -"транспортного средства. Требует монтирования на платформу для управления." - -#: lang/json/gun_from_json.py -msgid "scorpion ballista" -msgid_plural "scorpion ballistae" -msgstr[0] "баллиста-скорпион" -msgstr[1] "баллисты-скорпиона" -msgstr[2] "баллист-скорпионов" -msgstr[3] "баллисты-скорпионы" - -#: lang/json/gun_from_json.py -msgid "" -"A massive tension-operated crossbow. The hand-crank allows one to draw it " -"without the need for heavy labor. It's far too massive to be used on foot, " -"and thus needs to be mounted on a vehicle in order to be operated." -msgstr "" -"Тяжёлый натяжной арбалет. Коленчатый рычаг позволяет без труда натягивать " -"тетиву. Слишком тяжёл, чтобы использовать на весу, требует монтирования на " -"платформу для управления." - -#: lang/json/gun_from_json.py -msgid "harpoon gun" -msgid_plural "harpoon guns" -msgstr[0] "гарпунное ружьё" -msgstr[1] "гарпунных ружья" -msgstr[2] "гарпунных ружей" -msgstr[3] "гарпунное ружьё" - -#: lang/json/gun_from_json.py -msgid "" -"A tension-operated speargun. A hand-crank lets one draw the strings " -"quickly, but it's too unwieldy to handle without a support of some sort." -msgstr "" -"Натяжное гарпунное ружьё. Тетиву можно быстро натянуть лебёдкой, но оно " -"слишком громоздкое, чтобы использовать на весу, требует монтирования на " -"опору." - -#: lang/json/gun_from_json.py -msgid "tesla cannon" -msgid_plural "tesla cannons" -msgstr[0] "тесла пушка" -msgstr[1] "тесла пушки" -msgstr[2] "тесла пушек" -msgstr[3] "тесла пушки" - -#: lang/json/gun_from_json.py -msgid "" -"This alteration of the Chain Lightning bionic fires artificial lightning " -"bolts that arc to nearby enemies. It must be attached to a large power " -"source, but it allows for much more powerful bolts." -msgstr "" -"Эта модификация бионики «Цепная молния» выпускает искусственные молнии, " -"которые прыгают к ближайшим врагам. Она должна быть подключена к большому " -"источнику энергии, но это позволяет запускать гораздо более мощные молнии." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "biting blob" -msgid_plural "biting blobs" -msgstr[0] "кусачий сгусток" -msgstr[1] "кусачих сгустка" -msgstr[2] "кусачих сгустков" -msgstr[3] "кусачий сгусток" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. It has evolved the ability to constantly " -"generate calcified protrusions which are then controlled by sinuous tensile " -"strands. These \"teeth\" can then be used to latch and wound anything " -"unfortunate enough to be nearby. The outer membrane has also become " -"significantly thicker in order to support its more strenuous movement; " -"though it seems pliable enough to pull apart…" -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Предназначен для " -"вытягивания вдоль рамы наподобие барьера. Он развил способность постоянно " -"отращивать твердые наросты, управляемые гибкими волокнами. Эти «зубы» " -"хватают и ранят всех, кому не повезло оказаться поблизости. Внешняя мембрана" -" стала заметно толще для обеспечения таких мощных рывков. Сгусток достаточно" -" пластичный, чтобы его можно было оторвать…" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel shooter" -msgid_plural "gel shooters" -msgstr[0] "желейный пистолет" -msgstr[1] "желейных пистолета" -msgstr[2] "желейных пистолетов" -msgstr[3] "желейный пистолет" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It trawls the ground for " -"material, which it then strips of nutrition. The remainder is then expelled" -" out at significant velocity towards any nearby threats. The amorphous mass" -" can be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it. It seems pliable enough to pull apart…" -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Передвигается по земле и " -"извлекает питательные вещества. Остатки с большой скоростью выбрасываются в " -"направлении любой угрозы. Этой аморфной массе можно придать форму и " -"присоединить куда-нибудь, но само по себе оружие неактивно без чего-то, что " -"могло бы им управлять. Сгусток достаточно пластичный, чтобы его можно было " -"оторвать…" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "frost lancer" -msgid_plural "frost lancers" -msgstr[0] "ледяное копьё" -msgstr[1] "ледяных копья" -msgstr[2] "ледяных копий" -msgstr[3] "ледяное копьё" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A biological aberration " -"that exists at sub-zero temperatures. After filtering nutrients from the " -"water, it freezes the remainder into an incredibly sharp spear of ice; which" -" it then launches at nearby threats. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Биологическая аномалия, " -"существующая при температурах ниже нуля. После фильтрации и поглощения " -"питательных веществ из воды замораживает остатки в невероятно острые ледяные" -" сосульки, которые способно метать в направлении любой угрозы. Этой аморфной" -" массе можно придать форму и присоединить куда-нибудь, но само по себе " -"оружие неактивно без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "snapping ooze" -msgid_plural "snapping oozes" -msgstr[0] "слизевой кусач" -msgstr[1] "слизевых кусача" -msgstr[2] "слизевых кусачей" -msgstr[3] "слизевой кусач" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A baffling mutation in an " -"already baffling creature, this blob is encased in a thick coat of fur, " -"which serves as a form of protection. In addition, it is capable of " -"projecting rows of calcified sharp fragments in a manner mimicking the jaw " -"of a more recognizable creature. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Необъяснимая мутация в " -"необъяснимом создании. Сгусток окутан толстым слоем меха как формой защиты. " -"Вдобавок он способен порождать ряды твёрдых острых кусочков, словно имитируя" -" челюсти легко узнаваемого хищного создания. Этой аморфной массе можно " -"придать форму и присоединить куда-нибудь, но само по себе оружие неактивно " -"без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "blobsaw" -msgid_plural "blobsaws" -msgstr[0] "сгусток пила" -msgstr[1] "сгустка пилы" -msgstr[2] "сгустков пилы" -msgstr[3] "сгусток пила" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. While its simpler cousins have a limit to " -"the number of keratinous protrusions they can project and control; this blob" -" can utilize hundreds of these sharp fangs to shred anything it detects as a" -" threat into unrecognizable ribbons. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Предназначен для " -"вытягивания вдоль рамы наподобие барьера. У обычных сгустков количество " -"выращиваемых наростов ограничено; однако у этого сгустка есть сотни острых " -"клыков для превращения любой угрозы в ошмётки. Этой аморфной массе можно " -"придать форму и присоединить куда-нибудь, но само по себе оружие неактивно " -"без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fuel puffer" -msgid_plural "fuel puffers" -msgstr[0] "топливный распылитель" -msgstr[1] "топливных распылителя" -msgstr[2] "топливных распылителей" -msgstr[3] "топливный распылитель" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digestion process turns the " -"result incredibly viscous which, when threats come near, is launched; " -"ensnaring anything it hits. The amorphous mass can be shaped and attached " -"at your touch, but the weapon itself is inert without something to control " -"it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Имеет довольно " -"специфические предпочтения в еде, питается высокооктановыми компонентами " -"бензина. В результате переваривания образуется очень вязкое вещество, " -"которое сгусток выстреливает в ближайшую угрозу, захватывая жертву в " -"ловушку. Этой аморфной массе можно придать форму и присоединить куда-нибудь," -" но само по себе оружие неактивно без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "acid puffer" -msgid_plural "acid puffers" -msgstr[0] "кислотный распылитель" -msgstr[1] "кислотных распылителя" -msgstr[2] "кислотных распылителей" -msgstr[3] "кислотный распылитель" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, the " -"digestion process produces highly acidic byproducts; which is then expelled " -"at any nearby enemies. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Фильтрует пищу, в " -"результате переваривания образуются очень кислые вещества, которое сгусток " -"выстреливает в ближайшую угрозу. Этой аморфной массе можно придать форму и " -"присоединить куда-нибудь, но само по себе оружие неактивно без чего-то, что " -"могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spiker" -msgid_plural "gel spikers" -msgstr[0] "желейная пика" -msgstr[1] "желейных пики" -msgstr[2] "желейных пик" -msgstr[3] "желейная пика" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Capable of calcifying large" -" numbers of fang-like fragments within itself. It hurls groups of these " -"fragments along with a small portion of itself. When it reaches its " -"destination, the detached remains shoot these fragments in all directions, " -"expiring in the process. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Способен выращивать " -"множество клыкоподобных отростков внутри себя и выбрасывать их вместе с " -"маленькой частью своего тела. При достижении цели части тканей сгустка " -"выстреливают клыками во все стороны, отмирая в процессе. Этой аморфной массе" -" можно придать форму и присоединить куда-нибудь, но само по себе оружие " -"неактивно без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spouter" -msgid_plural "gel spouters" -msgstr[0] "желейный фонтан" -msgstr[1] "желейных фонтана" -msgstr[2] "желейных фонтанов" -msgstr[3] "желейный фонтан" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It can suck in water from a" -" vehicle tank, and forcibly expel it in a wide cone. The amorphous mass can" -" be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Способен высасывать воду из" -" бака транспортного средства и с силой выплёвывать широким конусом. Этой " -"аморфной массе можно придать форму и присоединить куда-нибудь, но само по " -"себе оружие неактивно без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel lancer" -msgid_plural "gel lancers" -msgstr[0] "желейное копьё" -msgstr[1] "желейных копья" -msgstr[2] "желейных копий" -msgstr[3] "желейное копьё" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Evolving incredible " -"abilities of perception, it is capable of locating and discerning possible " -"threats within a large radius. When a potential threat is located, it fires" -" a small, calcified projectile with incredible speed and accuracy. The " -"amorphous mass can be shaped and attached at your touch, but the weapon " -"itself is inert without something to control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Он способен определять и " -"распознавать возможные угрозы на большом расстоянии с помощью невероятно " -"развитого восприятия. После определения угрозы с невероятной скоростью и " -"точностью выстреливает маленький твёрдый снаряд. Этой аморфной массе можно " -"придать форму и присоединить куда-нибудь, но само по себе оружие неактивно " -"без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel razor" -msgid_plural "gel razors" -msgstr[0] "желейный коготь" -msgstr[1] "желейных когтя" -msgstr[2] "желейных когтей" -msgstr[3] "желейный коготь" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. An enhanced metabolism " -"allows it to calcify large, toothy discs which are then launched towards any" -" nearby threats. The amorphous mass can be shaped and attached at your " -"touch, but the weapon itself is inert without something to control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Благодаря продвинутому " -"метаболизму способен выращивать большие твёрдые зубастые диски и " -"выстреливать ими в ближайшие угрозы. Этой аморфной массе можно придать форму" -" и присоединить куда-нибудь, но само по себе оружие неактивно без чего-то, " -"что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock bulb" -msgid_plural "shock bulbs" -msgstr[0] "шоковый разряд" -msgstr[1] "шоковых разряда" -msgstr[2] "шоковых разрядов" -msgstr[3] "шоковый разряд" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Shockingly, it somehow is " -"able to project electricity, which it then discharges at any nearby threats." -" The amorphous mass can be shaped and attached at your touch, but the " -"weapon itself is inert without something to control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Шокирующе, но он каким-то " -"образом генерирует электрический заряд и выпускает его по любой ближайшей " -"угрозе. Этой аморфной массе можно придать форму и присоединить куда-нибудь, " -"но само по себе оружие неактивно без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel puffer" -msgid_plural "gel puffers" -msgstr[0] "желейный распылитель" -msgstr[1] "желейных распылителя" -msgstr[2] "желейных распылителей" -msgstr[3] "желейный распылитель" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, it strips " -"any water it processes of nutrients and expels the remainder towards any " -"nearby threats. The process of filter-feeding also makes the remaining " -"liquid viscous, though it also dissipates fairly quickly. The amorphous " -"mass can be shaped and attached at your touch, but the weapon itself is " -"inert without something to control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. После фильтрации и " -"поглощения питательных веществ из воды он выстреливает остатки в любую " -"ближайшую угрозу. Процесс фильтрации делает остаточную жидкость липкой, хотя" -" она довольно быстро распадается. Этой аморфной массе можно придать форму и " -"присоединить куда-нибудь, но само по себе оружие неактивно без чего-то, что " -"могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fire puffer" -msgid_plural "fire puffers" -msgstr[0] "огненный распылитель" -msgstr[1] "огненных распылителя" -msgstr[2] "огненных распылителей" -msgstr[3] "огненный распылитель" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digested material is still " -"highly flammable, and when launched, also activates an ignition gland " -"located on the outer membrane. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Имеет довольно " -"специфические предпочтения в еде, питается высокооктановыми компонентами " -"бензина. Переваренное вещество огнеопасно, а после выплёвывания также " -"срабатывает зажигательная железа на внешней мембране. Этой аморфной массе " -"можно придать форму и присоединить куда-нибудь, но само по себе оружие " -"неактивно без чего-то, что могло бы им управлять." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "spark blight" -msgid_plural "spark blights" -msgstr[0] "искровой разряд" -msgstr[1] "искровых разряда" -msgstr[2] "искровых разрядов" -msgstr[3] "искровой разряд" +msgid "Test Glock" +msgid_plural "Test Glocks" +msgstr[0] "Тестовый Глок" +msgstr[1] "Тестовых Глока" +msgstr[2] "Тестовых Глоков" +msgstr[3] "Тестовые Глоки" #: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It is capable of storing " -"energy from sunlight inside itself in the form of electricity. Then, in a " -"truly baffling show of force, projects a highly concentrated stream of " -"electricity towards any possible threats. The amorphous mass can be shaped " -"and attached at your touch, but the weapon itself is inert without something" -" to control it." -msgstr "" -"Живой сгусток, превращённый в автономное оружие. Способен накапливать " -"энергию солнечного света внутри себя в виде электричества. В дальнейшем " -"может продемонстрировать силу, выпустив мощный поток электричества высокого " -"напряжения по любым возможным угрозам. Этой аморфной массе можно придать " -"форму и присоединить куда-нибудь, но само по себе оружие неактивно без чего-" -"то, что могло бы им управлять." +msgid "A handgun for testing, based on the Glock 9mm." +msgstr "Пистолет для тестирования на базе Глока 9мм." -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond lance" -msgid_plural "diamond lances" -msgstr[0] "алмазное копьё" -msgstr[1] "алмазных копья" -msgstr[2] "алмазных копий" -msgstr[3] "алмазное копьё" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst; thus a pre-" -"shaped lump of carbon is brought into contact with the matrix, immediately " -"crystallized and launched just as quickly. The launcher requires a " -"specialized chassis in order to be brought to bear on its unfortunate " -"targets." -msgstr "" -"Оружие, которое смертоносно настолько, насколько и великолепно. В центре " -"этого оружия расположена алмазная матрица, которая выполняет роль " -"катализатора и быстро превращает высокоуглеродистый материал в " -"кристаллическую структуру, по твёрдости почти равную алмазу. " -"Кристаллизированный материал быстро разрушается, когда находится вне зоны " -"катализатора; поэтому кусок углерода требуемой формы сразу же " -"кристаллизируется и выстреливается при контакте с матрицей. Пусковая " -"установка требует специальное шасси для монтирования и применения по " -"несчастным целям." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond nova" -msgid_plural "diamond novae" -msgstr[0] "алмазная нова" -msgstr[1] "алмазные новы" -msgstr[2] "алмазных нов" -msgstr[3] "алмазные новы" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst, and at sizes " -"as large as the projectile used, also rapidly decays when in contact with " -"other matter. Thus the projectile is held and launched by the use of " -"pressurized air from a vortex stone. Upon striking its target, the " -"projectile undergoes explosive decomposition; shattering into a brilliant " -"burst of diamond fragments." -msgstr "" -"Оружие, которое смертоносно настолько, насколько и великолепно. В центре " -"этого оружия расположена алмазная матрица, которая выполняет роль " -"катализатора и быстро превращает высокоуглеродистый материал в " -"кристаллическую структуру, по твёрдости почти равную алмазу. " -"Кристаллизированный материал быстро разрушается, когда находится вне зоны " -"катализатора или контактирует с другой материей; поэтому снаряды хранятся и " -"выстреливаются при помощи высокого давления, создаваемого вихревым камнем. " -"При ударе о цель происходит взрывной распад, и снаряд раскалывается в ярком " -"взрыве алмазных осколков." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex accelerator" -msgid_plural "vortex accelerators" -msgstr[0] "вихревой ускоритель" -msgstr[1] "вихревых ускорителя" -msgstr[2] "вихревых ускорителей" -msgstr[3] "вихревой ускоритель" +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" +msgstr[0] "подствольный самодельный дробовик" +msgstr[1] "подствольных самодельных дробовика" +msgstr[2] "подствольных самодельных дробовиков" +msgstr[3] "подствольные самодельные дробовики" -#: lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py msgid "" -"This weapon uses powerful bursts of air to launch sharp fragments at its " -"target at high speed. You'll need some form of platform to mount it on." +"The integrated underbarrel shotgun of a pipe combination gun which holds two" +" shots. It's irremovable." msgstr "" -"Это оружие использует мощные воздушные импульсы для стрельбы острыми " -"алмазными фрагментами с высокой скоростью. Вам понадобится платформа для его" -" монтирования." - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex cannon" -msgid_plural "vortex cannons" -msgstr[0] "вихревая пушка" -msgstr[1] "вихревых пушки" -msgstr[2] "вихревых пушек" -msgstr[3] "вихревая пушка" +"В этот комбинированный самопал встроен подствольный двухзарядный дробовик. " +"Его нельзя снять." -#: lang/json/gun_from_json.py -msgid "" -"Essentially a large pneumatic gun made to hurl sharpened metal rails. " -"Instead of a mechanical system, you've managed to harness the vortex to " -"power this gun. While powerful for its size, you'll need some form of " -"platform to mount it on." -msgstr "" -"По сути, большая пневматическая пушка, собранная для стрельбы заострёнными " -"ферромагнитными снарядами. Вместо механической системы управления установка " -"использует вихревую энергию. Пусковая установка такой мощи требует " -"монтирования на платформу." +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "цевьё" #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -141795,7 +137682,7 @@ msgid_plural "barrel extensions" msgstr[0] "удлинённый ствол" msgstr[1] "удлинённых ствола" msgstr[2] "удлинённых стволов" -msgstr[3] "удлинённых ствола" +msgstr[3] "удлинённые стволы" #: lang/json/gunmod_from_json.py msgid "" @@ -141816,7 +137703,7 @@ msgid_plural "rifled barrels" msgstr[0] "нарезной ствол" msgstr[1] "нарезных ствола" msgstr[2] "нарезных стволов" -msgstr[3] "нарезных ствола" +msgstr[3] "нарезные стволы" #: lang/json/gunmod_from_json.py msgid "" @@ -141834,7 +137721,7 @@ msgid_plural "rapid blowbacks" msgstr[0] "ускоритель затвора" msgstr[1] "ускорителя затвора" msgstr[2] "ускорителей затвора" -msgstr[3] "ускорителя затвора" +msgstr[3] "ускорители затвора" #: lang/json/gunmod_from_json.py msgid "" @@ -141854,7 +137741,7 @@ msgid_plural "auto-fire mechanisms" msgstr[0] "механизм авто-стрельбы" msgstr[1] "механизма авто-стрельбы" msgstr[2] "механизмов авто-стрельбы" -msgstr[3] "механизма авто-стрельбы" +msgstr[3] "механизмы авто-стрельбы" #: lang/json/gunmod_from_json.py msgid "" @@ -141871,7 +137758,7 @@ msgid_plural "handmade auto-fire mechanisms" msgstr[0] "самодельный механизм авто-стрельбы" msgstr[1] "самодельных механизма авто-стрельбы" msgstr[2] "самодельных механизмов авто-стрельбы" -msgstr[3] "самодельный механизм авто-стрельбы" +msgstr[3] "самодельные механизмы авто-стрельбы" #: lang/json/gunmod_from_json.py msgid "" @@ -141887,7 +137774,7 @@ msgid_plural ".22 caliber conversion kits" msgstr[0] "переточка калибра .22" msgstr[1] "переточки калибра .22" msgstr[2] "переточек калибра .22" -msgstr[3] "переточка калибра .22" +msgstr[3] "переточки калибра .22" #: lang/json/gunmod_from_json.py msgid "" @@ -141909,7 +137796,7 @@ msgid_plural ".223 caliber conversion kits" msgstr[0] "переточка калибра .223" msgstr[1] "переточки калибра .223" msgstr[2] "переточек калибра .223" -msgstr[3] "переточка калибра .223" +msgstr[3] "переточки калибра .223" #: lang/json/gunmod_from_json.py msgid "" @@ -141927,7 +137814,7 @@ msgid_plural ".308 caliber conversion kits" msgstr[0] "переточка калибра .308" msgstr[1] "переточки калибра .308" msgstr[2] "переточек калибра .308" -msgstr[3] "переточка калибра .308" +msgstr[3] "переточки калибра .308" #: lang/json/gunmod_from_json.py msgid "" @@ -141945,7 +137832,7 @@ msgid_plural ".45 caliber conversion kits" msgstr[0] "переточка калибра .45" msgstr[1] "переточки калибра .45" msgstr[2] "переточек калибра .45" -msgstr[3] "переточка калибра .45" +msgstr[3] "переточки калибра .45" #: lang/json/gunmod_from_json.py msgid "" @@ -141962,7 +137849,7 @@ msgid_plural "4.6mm caliber conversion kits" msgstr[0] "переточка калибра 4,6 мм" msgstr[1] "переточки калибра 4,6 мм" msgstr[2] "переточек калибра 4,6 мм" -msgstr[3] "переточка калибра 4,6 мм" +msgstr[3] "переточки калибра 4,6 мм" #: lang/json/gunmod_from_json.py msgid "" @@ -141980,7 +137867,7 @@ msgid_plural "5.7mm caliber conversion kits" msgstr[0] "переточка калибра 5,7 мм" msgstr[1] "переточки калибра 5,7 мм" msgstr[2] "переточек калибра 5,7 мм" -msgstr[3] "переточка калибра 5,7 мм" +msgstr[3] "переточки калибра 5,7 мм" #: lang/json/gunmod_from_json.py msgid "" @@ -141998,7 +137885,7 @@ msgid_plural "9x19mm caliber conversion kits" msgstr[0] "переточка калибра 9х19 мм" msgstr[1] "переточки калибра 9х19 мм" msgstr[2] "переточек калибра 9х19 мм" -msgstr[3] "переточка калибра 9х19 мм" +msgstr[3] "переточки калибра 9х19 мм" #: lang/json/gunmod_from_json.py msgid "" @@ -142016,7 +137903,7 @@ msgid_plural "belt feed adapters" msgstr[0] "переходник на ленточное боепитание" msgstr[1] "переходника на ленточное боепитание" msgstr[2] "переходников на ленточное боепитание" -msgstr[3] "переходник на ленточное боепитание" +msgstr[3] "переходники на ленточное боепитание" #: lang/json/gunmod_from_json.py msgid "" @@ -142037,7 +137924,7 @@ msgid_plural "tuned mechanisms" msgstr[0] "отрегулированный механизм" msgstr[1] "отрегулированных механизма" msgstr[2] "отрегулированных механизмов" -msgstr[3] "отрегулированных механизма" +msgstr[3] "отрегулированные механизмы" #: lang/json/gunmod_from_json.py msgid "" @@ -142070,7 +137957,7 @@ msgid_plural "LW barrel extensions" msgstr[0] "удлинитель ствола LW" msgstr[1] "удлинителя ствола LW" msgstr[2] "удлинителей ствола LW" -msgstr[3] "удлинитель ствола LW" +msgstr[3] "удлинители ствола LW" #: lang/json/gunmod_from_json.py msgid "" @@ -142086,7 +137973,7 @@ msgid_plural "LW heavy duty barrels" msgstr[0] "тяжёлый ствол LW" msgstr[1] "тяжёлых ствола LW" msgstr[2] "тяжёлых стволов LW" -msgstr[3] "тяжёлый ствол LW" +msgstr[3] "тяжёлые стволы LW" #: lang/json/gunmod_from_json.py msgid "" @@ -142102,7 +137989,7 @@ msgid_plural "aux flamethrowers" msgstr[0] "подствольный огнемёт" msgstr[1] "подствольных огнемёта" msgstr[2] "подствольных огнемётов" -msgstr[3] "подствольный огнемёт" +msgstr[3] "подствольные огнемёты" #: lang/json/gunmod_from_json.py msgid "" @@ -142112,10 +137999,6 @@ msgstr "" "Этот мини-огнемёт создан таким образом, что его можно прикрепить практически" " к любому оружию, что колоссально повышает его смертоносность." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "цевьё" - #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" @@ -142152,7 +138035,7 @@ msgid_plural "bow stabilizers" msgstr[0] "стабилизатор лука" msgstr[1] "стабилизатора лука" msgstr[2] "стабилизаторов лука" -msgstr[3] "стабилизатор лука" +msgstr[3] "стабилизаторы лука" #: lang/json/gunmod_from_json.py msgid "" @@ -142172,7 +138055,7 @@ msgid_plural "bow stabilizer systems" msgstr[0] "система стабилизации лука" msgstr[1] "системы стабилизации лука" msgstr[2] "систем стабилизации лука" -msgstr[3] "система стабилизации лука" +msgstr[3] "системы стабилизации лука" #: lang/json/gunmod_from_json.py msgid "" @@ -142190,7 +138073,7 @@ msgid_plural "bow dampening kits" msgstr[0] "набор для глушения звука" msgstr[1] "набора для глушения звука" msgstr[2] "наборов для глушения звука" -msgstr[3] "набор для глушения звука" +msgstr[3] "наборы для глушения звука" #: lang/json/gunmod_from_json.py msgid "" @@ -142263,7 +138146,7 @@ msgid_plural "shortened barrels" msgstr[0] "укороченный ствол" msgstr[1] "укороченных ствола" msgstr[2] "укороченных стволов" -msgstr[3] "укороченных ствола" +msgstr[3] "укороченные стволы" #: lang/json/gunmod_from_json.py msgid "" @@ -142280,7 +138163,7 @@ msgid_plural "upstests" msgstr[0] "УБП-тест" msgstr[1] "УБП-теста" msgstr[2] "УБП-тестов" -msgstr[3] "УБП-тест" +msgstr[3] "УБП-тесты" #: lang/json/gunmod_from_json.py msgid "" @@ -142294,9 +138177,9 @@ msgstr "" msgid "Power shot" msgid_plural "Power shots" msgstr[0] "Мощный выстрел" -msgstr[1] "Мощный выстрел" -msgstr[2] "Мощный выстрел" -msgstr[3] "Мощный выстрел" +msgstr[1] "Мощных выстрела" +msgstr[2] "Мощных выстрелов" +msgstr[3] "Мощные выстрелы" #: lang/json/gunmod_from_json.py msgid "" @@ -142309,10 +138192,10 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" -msgstr[0] "гильзоулавливатель" -msgstr[1] "гильзоулавливателя" -msgstr[2] "гильзоулавливателей" -msgstr[3] "гильзоулавливателя" +msgstr[0] "гильзоуловитель" +msgstr[1] "гильзоуловителя" +msgstr[2] "гильзоуловителей" +msgstr[3] "гильзоуловители" #: lang/json/gunmod_from_json.py msgid "" @@ -142325,10 +138208,10 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid ".300 AAC Blackout AR-15 conversion kit" msgid_plural ".300 AAC Blackout AR-15 conversion kits" -msgstr[0] ".300 AAC Blackout AR-15 переточка калибра" -msgstr[1] ".300 AAC Blackout AR-15 переточки калибра" -msgstr[2] ".300 AAC Blackout AR-15 переточек калибра" -msgstr[3] ".300 AAC Blackout AR-15 переточки калибра" +msgstr[0] "переточки калибра .300 AAC Blackout AR-15" +msgstr[1] "переточки калибра .300 AAC Blackout AR-15" +msgstr[2] "переточек калибра .300 AAC Blackout AR-15" +msgstr[3] "переточки калибра .300 AAC Blackout AR-15" #: lang/json/gunmod_from_json.py msgid "A complete AR-15 upper assembly with a .300 AAC Blackout barrel." @@ -142382,10 +138265,10 @@ msgstr "рукоять" #: lang/json/gunmod_from_json.py msgid "ergonomic grip" msgid_plural "ergonomic grips" -msgstr[0] "рукоять эргономичная" -msgstr[1] "рукояти эргономичные" -msgstr[2] "рукоятей эргономичных" -msgstr[3] "рукоять эргономичная" +msgstr[0] "эргономичная рукоять" +msgstr[1] "эргономичные рукояти" +msgstr[2] "эргономичных рукоятей" +msgstr[3] "эргономичные рукояти" #: lang/json/gunmod_from_json.py msgid "" @@ -142413,7 +138296,7 @@ msgid_plural "beam scatterers" msgstr[0] "рассеиватель лучей" msgstr[1] "рассеивателя лучей" msgstr[2] "рассеивателей лучей" -msgstr[3] "рассеиватель лучей" +msgstr[3] "рассеиватели лучей" #: lang/json/gunmod_from_json.py msgid "" @@ -142451,7 +138334,7 @@ msgid_plural "electrolaser conversions" msgstr[0] "набор для конверсии в электролазер" msgstr[1] "набора для конверсии в электролазер" msgstr[2] "наборов для конверсии в электролазер" -msgstr[3] "набор для конверсии в электролазер" +msgstr[3] "наборы для конверсии в электролазер" #: lang/json/gunmod_from_json.py msgid "" @@ -142486,10 +138369,10 @@ msgstr "эмиттер" #: lang/json/gunmod_from_json.py msgid "high density capacitor" msgid_plural "high density capacitors" -msgstr[0] "конденсатор высокой плотности" -msgstr[1] "конденсатора высокой плотности" -msgstr[2] "конденсаторов высокой плотности" -msgstr[3] "конденсатор высокой плотности" +msgstr[0] "конденсатор высокой емкости" +msgstr[1] "конденсатора высокой емкости" +msgstr[2] "конденсаторов высокой емкости" +msgstr[3] "конденсаторы высокой емкости" #: lang/json/gunmod_from_json.py msgid "" @@ -142525,7 +138408,7 @@ msgid_plural "match triggers" msgstr[0] "облегчённый спусковой крючок" msgstr[1] "облегчённых спусковых крючка" msgstr[2] "облегчённых спусковых крючков" -msgstr[3] "облегчённых спусковых крючка" +msgstr[3] "облегчённые спусковые крючки" #: lang/json/gunmod_from_json.py msgid "" @@ -142541,7 +138424,7 @@ msgid_plural "drop-in auto sears" msgstr[0] "шептало автоспуска" msgstr[1] "шептала автоспуска" msgstr[2] "шептал автоспуска" -msgstr[3] "шептало автоспуска" +msgstr[3] "шептала автоспуска" #: lang/json/gunmod_from_json.py msgid "" @@ -142557,6 +138440,21 @@ msgstr "" "шептало не так хорошо, как настоящие запчасти для автоматической стрельбы, " "поэтому немного страдают точность и надёжность." +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "ar15_retool_300blk" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "ar_pistol" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "oa93" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -142772,7 +138670,7 @@ msgid_plural "muzzle brakes" msgstr[0] "дульный тормоз" msgstr[1] "дульных тормоза" msgstr[2] "дульных тормозов" -msgstr[3] "дульные тормозы" +msgstr[3] "дульные тормоза" #: lang/json/gunmod_from_json.py msgid "" @@ -142785,10 +138683,10 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "modified muzzle brake" msgid_plural "modified muzzle brakes" -msgstr[0] "модифицированый дульный тормоз" -msgstr[1] "модифицированых дульных тормоза" -msgstr[2] "модифицированых дульных тормозов" -msgstr[3] "модифицированые дульные тормозы" +msgstr[0] "модифицированный дульный тормоз" +msgstr[1] "модифицированных дульных тормоза" +msgstr[2] "модифицированных дульных тормозов" +msgstr[3] "модифицированные дульные тормоза" #: lang/json/gunmod_from_json.py msgid "" @@ -143159,7 +139057,7 @@ msgid_plural "single pin bow sights" msgstr[0] "точечный прицел для лука" msgstr[1] "точечных прицела для лука" msgstr[2] "точечных прицелов для лука" -msgstr[3] "точечный прицел для лука" +msgstr[3] "точечные прицелы для лука" #: lang/json/gunmod_from_json.py msgid "" @@ -143213,7 +139111,7 @@ msgstr[3] "открытые прицелы" #: lang/json/gunmod_from_json.py msgid "A basic set of iron sights" -msgstr "Это базовый набор для прицеливания." +msgstr "Базовый набор для прицеливания." #: lang/json/gunmod_from_json.py msgid "pistol scope" @@ -143323,7 +139221,7 @@ msgid_plural "RS1219 scopes" msgstr[0] "прицел RS1219" msgstr[1] "прицела RS1219" msgstr[2] "прицелов RS1219" -msgstr[3] "прицел RS1219" +msgstr[3] "прицелы RS1219" #: lang/json/gunmod_from_json.py msgid "" @@ -143376,7 +139274,7 @@ msgid_plural "shoulder straps" msgstr[0] "плечевой ремень" msgstr[1] "плечевых ремня" msgstr[2] "плечевых ремней" -msgstr[3] "плечевой ремень" +msgstr[3] "плечевые ремни" #: lang/json/gunmod_from_json.py msgid "" @@ -143396,7 +139294,7 @@ msgid_plural "adjustable stocks" msgstr[0] "регулируемый приклад" msgstr[1] "регулируемых приклада" msgstr[2] "регулируемых прикладов" -msgstr[3] "регулируемых приклада" +msgstr[3] "регулируемые приклады" #: lang/json/gunmod_from_json.py msgid "An adjustable replacement stock improving both recoil and accuracy." @@ -143413,7 +139311,7 @@ msgid_plural "folding stocks" msgstr[0] "складной приклад" msgstr[1] "складных приклада" msgstr[2] "складных прикладов" -msgstr[3] "складных приклада" +msgstr[3] "складные приклады" #: lang/json/gunmod_from_json.py msgid "" @@ -143449,7 +139347,7 @@ msgid_plural "pistol stocks" msgstr[0] "пистолетный приклад" msgstr[1] "пистолетных приклада" msgstr[2] "пистолетных прикладов" -msgstr[3] "пистолетных приклада" +msgstr[3] "пистолетные приклады" #: lang/json/gunmod_from_json.py msgid "An add-on stock for handguns considerably improving control of recoil." @@ -143461,7 +139359,7 @@ msgid_plural "recoil stocks" msgstr[0] "приклад для гашения отдачи" msgstr[1] "приклада для гашения отдачи" msgstr[2] "прикладов для гашения отдачи" -msgstr[3] "приклада для гашения отдачи" +msgstr[3] "приклады для гашения отдачи" #: lang/json/gunmod_from_json.py msgid "A replacement stock designed to absorb perceived recoil." @@ -143473,7 +139371,7 @@ msgid_plural "cheek pads" msgstr[0] "подставка под щёку" msgstr[1] "подставки под щёку" msgstr[2] "подставок под щёку" -msgstr[3] "подставка под щёку" +msgstr[3] "подставки под щёку" #: lang/json/gunmod_from_json.py msgid "" @@ -143531,7 +139429,7 @@ msgid_plural "combination gun shotguns" msgstr[0] "подствольный дробовик" msgstr[1] "подствольных дробовика" msgstr[2] "подствольных дробовиков" -msgstr[3] "подствольных дробовика" +msgstr[3] "подствольные дробовики" #: lang/json/gunmod_from_json.py msgid "" @@ -143542,28 +139440,35 @@ msgstr "" "нельзя снять." #: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" -msgstr[0] "подствольный самодельный дробовик" -msgstr[1] "подствольных самодельных дробовика" -msgstr[2] "подствольных самодельных дробовиков" -msgstr[3] "подствольных самодельных дробовика" +msgid "factory handguard" +msgid_plural "factory handguards" +msgstr[0] "фабричное цевье" +msgstr[1] "фабричных цевья" +msgstr[2] "фабричных цевей" +msgstr[3] "фабричные цевья" #: lang/json/gunmod_from_json.py msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two" -" shots. It's irremovable." +"A removable molded grip that comes standard on guns without rails. It's not" +" as efficient as a proper forward grip or bipod at controlling recoil, but " +"it's better than nothing." msgstr "" -"В этот комбинированный самопал встроен подствольный двухзарядный дробовик. " -"Его нельзя снять." +"Съемный хват, обычно идущий в комплекте у огнестрельного оружия без планки. " +"Не так сильно помогает при отдаче, как передняя рукоять или сошки, но лучше," +" чем ничего." + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "fs2000" +msgstr "fs2000" #: lang/json/gunmod_from_json.py msgid "forward grip" msgid_plural "forward grips" -msgstr[0] "рукоять передняя" -msgstr[1] "рукояти передние" -msgstr[2] "рукоятей передних" -msgstr[3] "рукоять передняя" +msgstr[0] "передняя рукоять" +msgstr[1] "передние рукояти" +msgstr[2] "передних рукоятей" +msgstr[3] "передние рукояти" #: lang/json/gunmod_from_json.py msgid "" @@ -143797,8 +139702,8 @@ msgid "" "The integrated 12 gauge shotgun barrel of the Chiappa M6 Survival Gun. It's" " irremovable." msgstr "" -"Дробовик Chiappa M6 Survival Gun со встроенным стволом 12 калибра. Эта " -"модификация неустранима." +"Дробовик Chiappa M6 Survival Gun со встроенным стволом 12 калибра. Эту " +"модификацию нельзя снять." #: lang/json/gunmod_from_json.py msgid "masterkey shotgun" @@ -143859,7 +139764,7 @@ msgid_plural "pistol bayonets" msgstr[0] "пистолетный штык" msgstr[1] "пистолетных штыка" msgstr[2] "пистолетных штыков" -msgstr[3] "пистолетных штыка" +msgstr[3] "пистолетные штыки" #: lang/json/gunmod_from_json.py msgid "" @@ -144016,7 +139921,7 @@ msgid_plural "sniper conversions" msgstr[0] "преобразование в снайперскую винтовку" msgstr[1] "преобразования в снайперскую винтовку" msgstr[2] "преобразований в снайперскую винтовку" -msgstr[3] "преобразование в снайперскую винтовку" +msgstr[3] "преобразования в снайперскую винтовку" #: lang/json/gunmod_from_json.py msgid "" @@ -144127,100 +140032,6 @@ msgstr "" "Компактный фонарик, который прикреплен сбоку от оружия, не очень мощный, но " "достаточно хорош для узких проходов." -#: lang/json/gunmod_from_json.py -msgid "5.45 caliber conversion kit" -msgid_plural "5.45 caliber conversion kits" -msgstr[0] "переточка калибра 5,45 мм" -msgstr[1] "переточки калибра 5,45 мм" -msgstr[2] "переточек калибра 5,45 мм" -msgstr[3] "переточка калибра 5,45 мм" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " -"results in slight reductions to recoil." -msgstr "" -"Этот набор позволит превратить оружие калибра 6,54 в калибр 5,45. Замена " -"частей приведёт к снижению отдачи." - -#: lang/json/gunmod_from_json.py -msgid "6.54 caliber conversion kit" -msgid_plural "6.54 caliber conversion kits" -msgstr[0] "переточка калибра 6,54 мм" -msgstr[1] "переточки калибра 6,54 мм" -msgstr[2] "переточек калибра 6,54 мм" -msgstr[3] "переточка калибра 6,54 мм" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Этот набор позволит превратить оружие калибра 5,45 в калибр 6,54. Замена " -"частей приведёт к повышению отдачи." - -#: lang/json/gunmod_from_json.py -msgid "7.62 caliber conversion kit" -msgid_plural "7.62 caliber conversion kits" -msgstr[0] "переточка калибра 7,62 мм" -msgstr[1] "переточки калибра 7,62 мм" -msgstr[2] "переточек калибра 7,62 мм" -msgstr[3] "переточка калибра 7,62 мм" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " -"results in increased recoil." -msgstr "" -"Этот набор позволит превратить оружие калибра 6,54 в калибр 7,62. Замена " -"частей приведёт к повышению отдачи." - -#: lang/json/gunmod_from_json.py -msgid "Flaregun conversion kit" -msgid_plural "Flaregun conversion kits" -msgstr[0] "набор для конверсии сигнального пистолета" -msgstr[1] "набора для конверсии сигнального пистолета" -msgstr[2] "наборов для конверсии сигнального пистолета" -msgstr[3] "набор для конверсии сигнального пистолета" - -#: lang/json/gunmod_from_json.py -msgid "" -"Replacing several key parts flaregun to convert it to a .40 firearm. The " -"conversion results in reduced accuracy and increased recoil." -msgstr "" -"Замена нескольких ключевых узлов сигнального пистолета позволит переделать " -"его в оружие калибра .40. Замена частей приведёт к потере точности и " -"увеличению отдачи." - -#: lang/json/gunmod_from_json.py -msgid "" -"This genuine Herostratus flamethrower is ideal for light brush clearing and " -"self-defense." -msgstr "" -"Этот подлинный огнемёт «Герострат» идеально подходит для зачистки зарослей " -"кустарника и для самообороны." - -#: lang/json/gunmod_from_json.py -msgid "E.M.A.S." -msgid_plural "E.M.A.S.s" -msgstr[0] "E.M.A.S." -msgstr[1] "E.M.A.S." -msgstr[2] "E.M.A.S." -msgstr[3] "E.M.A.S." - -#: lang/json/gunmod_from_json.py -msgid "" -"ElectroMagnetic Acceleration System is an array of electromagnets attached " -"to the front of the barrel, accelerating any projectile fired to even higher" -" velocities, increasing damage, recoil and reducing accuracy. It does " -"however drain UPS charges when firing and due to extensive modifications the" -" gun can no longer operate without a UPS." -msgstr "" -"Система Электромагнитного Ускорения — это последовательность " -"электромагнитов, прикреплённых к передней части ствола и ускоряющих любой " -"снаряд, увеличивая его урон, отдачу и снижая точность. Вместе с тем при " -"стрельбе она тратит заряды УБП, а оружие больше не может работать без УБП." - #: lang/json/gunmod_from_json.py msgid "underbarrel launcher" msgid_plural "underbarrel launchers" @@ -144320,10 +140131,10 @@ msgid "" "acquisition. Aside from increased weight, there are no drawbacks. You can " "rotate the attachment rail to fit under the barrel." msgstr "" -"Маленький лазер видимого глазу спектра, виден через кристалл маны, крепится " -"на RIS планку для аксессуаров оружия для ускорения и облегчения " -"прицеливания. Не имеет недостатков, кроме увеличения веса вооружения. Вы " -"можете поместить планку под ствол оружия, повернув ее." +"Маленький лазер видимого глазу спектра, видимый через кристалл маны, " +"крепится на планку оружия для ускорения и облегчения прицеливания. Не имеет " +"недостатков, кроме увеличения веса вооружения. Вы можете поместить планку " +"под ствол оружия, повернув ее." #: lang/json/gunmod_from_json.py msgid "mana laser sight (underbarrel)" @@ -144363,39 +140174,16 @@ msgstr "" "вес." #: lang/json/gunmod_from_json.py -msgid "makeshift pistol bayonet" -msgid_plural "makeshift pistol bayonets" -msgstr[0] "самодельный пистолетный штык" -msgstr[1] "самодельных пистолетных штыка" -msgstr[2] "самодельных пистолетных штыков" -msgstr[3] "самодельных пистолетных штыка" +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "тестовый глушитель" +msgstr[1] "тестовых глушителя" +msgstr[2] "тестовых глушителей" +msgstr[3] "тестовые глушители" #: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a bayonet meant for a pistol that consists of a mere " -"spike with some string. It still makes a decent melee weapon in a pinch " -"when attached to a pistol." -msgstr "" -"Самодельный вариант штыка для пистолета, состоящий из шипа и верёвки. Он " -"является неплохим оружием ближнего боя если прикрепить его к пистолету." - -#: lang/json/gunmod_from_json.py -msgid "makeshift sword bayonet" -msgid_plural "makeshift sword bayonets" -msgstr[0] "самодельный меч-штык" -msgstr[1] "самодельных меч-штыка" -msgstr[2] "самодельных меч-штыков" -msgstr[3] "самодельных меч-штыков" - -#: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a sword bayonet that consists of a salvaged blade " -"with some string. It still makes a good melee weapon providing reach " -"attacks when attached to long arm or crossbow." -msgstr "" -"Самодельная версия меч-штыка, состоявшая из лезвия и верёвки. Он является " -"хорошим оружием ближнего боя, обеспечивающим дальность атаки при " -"прикреплении к длинноствольному оружию или арбалету." +msgid "Gun suppressor mod for testing." +msgstr "Оружейный глушитель для отладки." #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" @@ -144445,21 +140233,19 @@ msgstr "" "Когда-то это могло быть человеком… но после того, что сделал с ними Новый " "Порядок, это нечто иное." -#: lang/json/harvest_from_json.py -msgid "You butcher the fallen zombie and hack off its head" -msgstr "Вы разделываете павшего зомби и отрубаете ему голову." - #: lang/json/help_from_json.py msgid ": Introduction" msgstr ": Введение" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future" +" looks pretty grim." msgstr "" -"Катаклизм — это рогалик, от англ. «roguelike» в жанре монстр-апокалипсиса. " -"Вы пережили первоначальный натиск, но будущее выглядит довольно мрачно." +"Катаклизм: Тёмные Дни Впереди — это походовая игра о выживании в жанре пост-" +"апокалипсиса. Вы пережили первоначальный натиск, но будущее выглядит " +"довольно мрачно." #: lang/json/help_from_json.py msgid "" @@ -144475,11 +140261,12 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are" +" exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." @@ -144494,14 +140281,14 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help" +" you survive." msgstr "" -"Катаклизм предлагает игроку больше различных действий, чем другие рогалики. " -"Мир ближайшего будущего делает некоторые вещи проще. Оружие, медикаменты и " -"широкий спектр инструментов помогут вам выжить." +"Катаклизм предлагает игроку больше различных действий, чем другие игры. " +"Современный мир делает некоторые вещи проще. Оружие, медикаменты и широкий " +"спектр инструментов помогут вам выжить." #: lang/json/help_from_json.py msgid ": Movement" @@ -144557,7 +140344,7 @@ msgstr "" "передвижение в такой манере может привести вас в опасное место или вообще " "убить до того, как вы сможете среагировать. Нажатие на «» " "активирует «Безопасный режим». Когда он включён, попытки движения будут " -"игнорироваться, если есть монстр в радиусе обзора игрока." +"игнорироваться, если появится монстр в радиусе обзора игрока." #: lang/json/help_from_json.py msgid ": Viewing" @@ -144614,12 +140401,12 @@ msgstr "" "напомнит. Когда это случится, появится строка статуса на боковой панели. Не " "запутайтесь — в зависимости от вашего состояния она показывает одновременно " "наполненность желудка и силу голода в зависимости от вашей упитанности. Ваша" -" упитанность — это что-то отдельное от вашего текущего голода. Например, вы " -"можете быть сытым после плотного обеда, но всё ещё истощённым. И вы будете " -"чувствовать голод, страдая ожирением. С регулярным питанием вы можете не " -"чувствовать голода и всё равно истощиться, если не потребляете достаточно " -"калорий. Другими словами, вам нужно одновременно отслеживать ваш текущий " -"голод/сытость и общее состояние всего тела." +" упитанность — это не тоже самое, что ваш текущий уровень голода (или " +"сытости). Например, вы можете быть сытым после плотного обеда, но всё ещё " +"истощённым. И вы будете чувствовать голод, страдая ожирением. С регулярным " +"питанием вы можете не чувствовать голода и всё равно истощиться, если не " +"потребляете достаточно калорий. Другими словами, вам нужно одновременно " +"отслеживать ваш текущий голод/сытость и общее состояние всего тела." #: lang/json/help_from_json.py msgid "" @@ -144633,12 +140420,13 @@ msgid "" "hunger." msgstr "" "Переваривание еды занимает некоторое время, вода всасывается быстрее. " -"Употребление слишком большого количества пищи и жидкости приведёт к " -"избыточному перееданию, так что разделяйте приёмы пищи. Если вы голодали, " -"восстановление массы тела путём откладывания калорий от регулярного питания " -"займёт какое-то время. Переедание в конечном итоге приводит к ожирению. Обе " -"крайности получают штрафы. Когда голод и жажда нарастают до значительных " -"величин, вы тоже получаете штрафы. Жажда убьёт вас быстрее голода." +"Одновременное употребление слишком большого количества пищи и жидкости " +"приведёт к ощущению переедания, так что разделяйте приёмы пищи. Если вы " +"голодали, восстановление массы тела путём откладывания калорий от " +"регулярного питания займёт какое-то время. Переедание в конечном итоге " +"приводит к ожирению. Обе крайности получают штрафы. Когда голод и жажда " +"нарастают до значительных величин, вы тоже получаете штрафы. Жажда убьёт вас" +" быстрее голода." #: lang/json/help_from_json.py msgid "" @@ -144652,9 +140440,9 @@ msgid "" " a balanced diet, or at least not a completely atrocious one. You can and " "should examine food items to view their nutritional facts." msgstr "" -"Если будете питаться чем попало, у вас разовьётся витаминный дефицит. Такой " -"дефицит проходит в несколько стадий, то есть вы не превратитесь из пышущего " -"здоровьем молодца в бедолагу с цингой в последней стадии за мгновение. Все " +"Если будете питаться чем попало, у вас разовьётся дефицит витаминов. Такой " +"дефицит наступает в несколько стадий, то есть вы не превратитесь из пышущего" +" здоровьем молодца в бедолагу с цингой в последней стадии за мгновение. Все " "стадии дефицита отражаются в меню персонажа. Нехватка витаминов налагает " "разные штрафы, но, к счастью, все их можно устранить при помощи, к примеру, " "таблеток с мультивитаминами. Однако употребление слишком большого количества" @@ -144713,9 +140501,9 @@ msgstr "" "поспите, нажав «», то получите штрафы к скорости и " "характеристикам. Вам не обязательно ложиться спать сразу же. Сон в " "помещениях, в особенности на кровати, решит проблему. Если не получается " -"заснуть — примите снотворное. Во сне вы медленно регенерируете здоровье, но " -"очень уязвимы для нападения; найдите безопасное место для сна или расставьте" -" ловушки для незваных гостей." +"заснуть — примите снотворное. Во сне вы медленно восстанавливаете здоровье, " +"но очень уязвимы для нападения; найдите безопасное место для сна или " +"расставьте ловушки для незваных гостей." #: lang/json/help_from_json.py msgid ": Pain and stimulants" @@ -144770,7 +140558,7 @@ msgstr "" "к примеру), что полезно для обучения. У стимуляторов есть два недостатка: " "после их приёма трудно заснуть и, что более значимо, они вызывают " "зависимость. Диапазон стимулирующих веществ варьируется от кофеина до " -"аддералла и метамфетамина." +"аддеролла и метамфетамина." #: lang/json/help_from_json.py msgid "" @@ -144784,7 +140572,7 @@ msgstr "" msgid "" "Extreme levels of stimulants or depressants in your system are dangerous to " "your health." -msgstr "Большие дозы стимуляторов или депрессантов опасны для здоровья." +msgstr "Большие дозы стимуляторов и депрессантов опасны для здоровья." #: lang/json/help_from_json.py msgid ": Healing and medication" @@ -144829,10 +140617,10 @@ msgstr "" "Вам нужно тщательно обрабатывать свои раны, потому что необработанные раны " "залечиваются очень медленно. В первую очередь раны нужно перевязать и по " "возможности дезинфицировать. Это создаст условия для нормального " -"восстановления приведёт к скорейшему выздоровлению. При наличии навыка вы " -"можете изготовить самодельные бинты, и есть несколько способов получить " -"дезинфектант. Но не забывайте всегда по умолчанию обрабатывать раны, " -"поскольку это главный путь их залечить." +"восстановления и приведёт к скорейшему выздоровлению. При наличии навыка вы " +"можете изготовить самодельные бинты, и есть несколько способов изготовить " +"антисептики. Но не забывайте всегда обрабатывать раны, поскольку это лучший " +"способ их залечить." #: lang/json/help_from_json.py msgid "" @@ -144853,13 +140641,13 @@ msgstr "" "глубокими и инфицированными. Если такое случится, статусная полоска части " "тела окрасится в синий цвет. Это значит, вам нужно как можно скорее " "продезинфицировать и очистить рану, чтобы избежать серьёзной инфекции. Если " -"дезинфектанта нет и не предвидится, прибегните к более радикальному методу и" -" прижгите рану, но зачастую это лишь ухудшает состояние. Если просто " -"оставить всё как есть, разовьётся серьёзная инфекция, и статус части тела " -"сменится на зелёный. На этой стадии дезинфицировать рану уже поздно, и вам " -"требуются антибиотики. Ваше тело будет само бороться с инфекцией, и " -"регулярный приём антибиотиков поможет вам продержаться. Вам нужно ждать и " -"надеяться, что вы не умрёте в процессе." +"антисептика нет и не предвидится, прибегните к более радикальному методу и " +"прижгите рану, но зачастую это лишь ухудшает состояние. Если просто оставить" +" всё как есть, разовьётся серьёзная инфекция, и статус части тела сменится " +"на зелёный. На этой стадии дезинфицировать рану уже поздно, и вам требуются " +"антибиотики. Ваше тело будет само бороться с инфекцией, и регулярный приём " +"антибиотиков поможет вам продержаться. Вам нужно ждать и надеяться, что вы " +"не умрёте в процессе." #: lang/json/help_from_json.py msgid "" @@ -144883,10 +140671,10 @@ msgid "" " try natural medicine, as many herbs have more or less beneficial effects, " "and if you are a seasoned chemist you can synthesize your own drugs." msgstr "" -"В течение игры вы можете пострадать от множества медицинских состояний и " -"недугов. Вам может потребоваться соответствующее лечение, если такое " -"существует для вашего состояния. Помимо болеутоляющих, в игре есть множество" -" препаратов, свойства некоторых можно даже использовать непредусмотренным " +"В течение игры вы можете заработать множество медицинских состояний и " +"недугов. Вам может потребоваться соответствующее лечение, если оно вообще " +"существует для вашей проблемы. Помимо болеутоляющих, в игре есть множество " +"препаратов, свойства некоторых можно даже использовать непредусмотренным " "способом. При наличии навыка вы можете прибегнуть к народной медицине, " "поскольку многие травы обладают более-менее полезными свойствами, а если вы " "закалённый химик, то сможете сами синтезировать препараты." @@ -144922,7 +140710,7 @@ msgstr "" #: lang/json/help_from_json.py msgid ": Morale and learning" -msgstr ": Мораль и обучение" +msgstr ": Настроение и обучение" #: lang/json/help_from_json.py msgid "" @@ -144930,9 +140718,9 @@ msgid "" "depressing post-apocalypse world is tough to deal with, and your mood will " "naturally decrease very slowly." msgstr "" -"У вашего персонажа есть уровень морали, который по-разному влияет на него. В" -" депрессивном мире постапокалипсиса жить непросто, и ваше настроение очень " -"медленно опускается." +"У вашего персонажа есть уровень настроения, который по-разному влияет на " +"него. В депрессивном мире постапокалипсиса жить непросто, и ваше настроение " +"очень медленно опускается." #: lang/json/help_from_json.py msgid "" @@ -144942,9 +140730,8 @@ msgid "" "level before they grow boring." msgstr "" "Есть много вариантов поднятия настроения: чтение интересных книг, вкусная " -"пища, принятие расслабляющих наркотиков и другие. Все стимулирующие мораль " -"действия, подымают её до определённого уровня, после чего становятся " -"скучными." +"пища, расслабляющие вещества и другие. Все действия, улучшающие настроение, " +"поднимают его до определённого уровня, после чего становятся скучными." #: lang/json/help_from_json.py msgid "" @@ -144964,10 +140751,10 @@ msgid "" "fills you with gusto and energy, and you will find yourself moving faster. " "At extremely high levels, you will receive stat bonuses." msgstr "" -"Низкая мораль делает вас вялым и лишает тяги что-то делать. При низкой " -"морали вы не можете заниматься созданием вещей. Очень низкий уровень морали " -"снижает характеристики. Высокая мораль наполняет вас энергией и радостью, и " -"вы действуете быстрее. Очень высокий уровень морали даёт бонус к " +"Плохое настроение делает вас вялым и лишает тяги что-то делать. При плохом " +"настроении вы не можете заниматься созданием вещей. Очень низкий уровень " +"настроения снижает характеристики. Хорошее настроение наполняет вас энергией" +" и радостью, и вы действуете быстрее. Очень хорошее настроение даёт бонус к " "характеристикам." #: lang/json/help_from_json.py @@ -144978,7 +140765,7 @@ msgid "" " learning potential. Higher or lower focus levels make it easier or harder " "to learn from practical experience." msgstr "" -"Мораль также отвечает за эффективность вашего обучения; эта механика " +"Настроение также отвечает за эффективность вашего обучения; эта механика " "называется «фокус». От значения фокуса зависит, насколько хорошо вы " "обучаетесь. Естественный показатель 100 означает нормальный потенциал " "обучаемости. От уровня фокуса зависит то, насколько просто или сложно вам " @@ -144996,7 +140783,7 @@ msgstr "" "У вашего фокуса есть естественная номинальная величина, к которой он " "стремится. Высокое значение фокуса повышает эту величину, низкое — понижает," " и чем текущий фокус дальше от номинала, тем быстрее он меняется. В расчётах" -" также учитывается боль — тяжело учиться, когда больно." +" также учитывается боль — тяжело учиться, когда вам больно." #: lang/json/help_from_json.py msgid "" @@ -145054,7 +140841,7 @@ msgid "" msgstr "" "При высоком уровне облучения может произойти мутация. В своём большинстве " "мутации дают негативные эффекты, но немало и полезных. Есть и такие, которые" -" имеют и хорошие и плохие свойства. Мутации могут сильно повлиять на стиль " +" имеют и хорошие, и плохие свойства. Мутации могут сильно повлиять на стиль " "игры. Можно найти препараты, избавляющие от мутаций, но они очень редки." #: lang/json/help_from_json.py @@ -145098,7 +140885,8 @@ msgstr "" "Вам понадобится встроенная в тело батарея для хранения энергии и питания " "большинства биомодулей. Текущее количество энергии отображено на боковой " "панели под счётчиком здоровья. Пополнить энергию можно различными методами, " -"но все они требуют установки специальной бионики для выработки энергии." +"но все они требуют установки специальных бионических модулей для выработки " +"энергии." #: lang/json/help_from_json.py msgid "" @@ -145118,7 +140906,7 @@ msgstr "" "бионические модули непросто найти, но их можно купить за очень высокую цену " "у некоторых странствующих бродяг. Также их можно добыть при успешном " "вскрытии трупов погибших владельцев бионических модулей. В этом случае " -"модули требуют дополнительной обработки." +"модули требуют дополнительной обработки перед установкой." #: lang/json/help_from_json.py msgid "" @@ -145140,9 +140928,9 @@ msgid "" msgstr "" "Для одиноких выживальщиков лучшим способом установки или удаления бионики " "служит Автодок. Обычно такие стоят в больницах и клиниках. Любая связанная с" -" ними процедура требует набора анестезии. Вы обойдёте это ограничение, если " -"сумеете каким-то образом полностью игнорировать боль. Но даже не пытайтесь " -"обезболить себя препаратами — не поможет." +" ними процедура требует набора для анестезии. Вы обойдёте это ограничение, " +"если сумеете каким-то образом полностью игнорировать боль. Но даже не " +"пытайтесь обезболить себя препаратами — не поможет." #: lang/json/help_from_json.py msgid "" @@ -145257,7 +141045,7 @@ msgstr "" "Изготовление больших или тяжёлых предметов, а также партий предметов лучше " "всего осуществлять за верстаком. Это может быть как обычный стол, так и " "специальный верстак из металла, способный выдержать большую нагрузку. " -"Верстак или прочая мебель обеспечивает удобство и ускоряет процесс." +"Верстак или подобная мебель обеспечивает удобство и ускоряет процесс." #: lang/json/help_from_json.py msgid "" @@ -145290,11 +141078,11 @@ msgid "" "trap anything that steps on them). Others need to be crafted; this requires" " the Traps skill and possibly Mechanics." msgstr "" -"Прежде чем спать на опасной территории, было бы разумно установить ловушки, " -"для предотвращения нежелательных встреч. Некоторые ловушки можно найти, " +"Прежде чем спать на опасной территории, было бы разумно установить ловушки " +"для предотвращения нежелательного вторжения. Некоторые ловушки можно найти, " "например пузырчатую плёнку (которая издаёт громкий звук, если на неё " "наступить, что должно вас разбудить) или медвежий капкан (который издаст " -"звук, обездвижит наступившего и причинит урон). Некоторые ловушки нужно " +"звук, обездвижит наступившего и причинит урон). Некоторые ловушки придется " "делать самому. Это потребует навыка ловушек и, возможно, механики." #: lang/json/help_from_json.py @@ -145410,14 +141198,14 @@ msgstr "" " ему контратаковать, но ограничен низким уровнем силы. Режущий урон обычно " "наносит больше вреда, чем дробящий, но у многих монстров имеется " "естественная броня против него. Типовой урон в секунду показан для вашего " -"персонажа и зависит от числа ходов на атаку, скованности, пропущенных " -"ударов, навыка владения оружием, критических ударов и брони цели. «Лучшее» " -"значение можно применить к цели без брони и навыка уклонения. «пр. Ловкости»" -" - значение против незащищенного противника с высоким навыком уклонения. " -"«пр. Брони» - значение для цели без навыка уклонения, но с броней в 15 " -"против тупого оружия и 20 против режущего оружия. Эти усредненные значения " -"помогут вам оценить эффективность оружия, но реальный урон в бою может " -"различаться в зависимости от ситуации." +"персонажа и учитывает число ходов на атаку, скованность, промахи, навыки " +"владения оружием, критические удары и броню цели. «Лучшее» значение можно " +"применить к цели без брони и навыка уклонения. «пр. Ловкости» - значение " +"против незащищенного противника с высоким навыком уклонения. «пр. Брони» - " +"значение для цели без навыка уклонения, но с броней в 15 против тупого " +"оружия и 20 против режущего оружия. Эти усредненные значения помогут вам " +"оценить эффективность оружия, но реальный урон в бою может различаться в " +"зависимости от ситуации." #: lang/json/help_from_json.py msgid "" @@ -145429,8 +141217,8 @@ msgid "" "dropped on the ground if there is no space." msgstr "" "Чтобы взять предмет в руки и использовать его как оружие, нажмите " -"«», затем соответствующую букву, он заменит то, которое у вас в" -" руках на данный момент. Вещь в руках не занимает места, это полезно для " +"«», затем соответствующую букву, он заменит то, что у вас в " +"руках на данный момент. Вещь в руках не занимает места, это полезно для " "ношения больших вещей. Если вы отпустите вещь, она вернётся в инвентарь или " "упадёт на землю, если нет свободного места." @@ -145463,10 +141251,10 @@ msgid "" "layering penalty applies a minimum of 2 and a maximum of 10 encumbrance per " "article of clothing." msgstr "" -"Ваша одежда может относиться к одному из пяти слоёв на вашем теле: " -"прилегающая к коже, обычная, на поясе поверх и пристёгнутая. Вы можете " -"носить только один предмет каждого слоя на части тела без каких-либо штрафов" -" скованности за слишком много носимых вещей. Любой предмет, помимо первого, " +"Ваша одежда может носиться на одном из пяти слоёв на вашем теле: прилегающая" +" к коже, обычная, на поясе, поверх одежды, пристёгнутая. Вы можете носить " +"только один предмет каждого слоя на части тела без каких-либо штрафов " +"скованности за слишком много носимых вещей. Любой предмет, помимо первого, " "на каждом слое добавит дополнительный штраф к скованности части тела. " "Минимальный штраф к скованности за каждый элемент одежды — 2, максимальный —" " 10." @@ -145521,11 +141309,11 @@ msgid "" "right side of the screen. The so called compass will display monsters that " "you see but are outside the screen." msgstr "" -"Зомби в городах появляются на старте игры, но также могут бродить " -"поблизости. На экране все монстры представляются в виде букв. Список " -"названий монстров и их позиции по отношению к вам отображаются на правой " -"стороне экрана. Так называемый компас показывает монстров, которых вы " -"видите, но которые не помещаются на экране." +"Зомби в городах появляются на старте игры, но также могут бродить по округе." +" На экране все монстры представляются в виде букв. Список названий монстров " +"и их позиции по отношению к вам отображаются на правой стороне экрана. Так " +"называемый компас показывает монстров, которых вы видите, но которые не " +"помещаются на экране." #: lang/json/help_from_json.py msgid "" @@ -145540,7 +141328,7 @@ msgstr "" "Двигайтесь на клетку монстра, чтобы атаковать его. Скорость атаки зависит от" " размера и веса оружия. Чем меньше и легче оружие, тем выше скорость атаки. " "Скорость ударов без использования оружия также зависит от навыка безоружного" -" боя и со временем может стать ОЧЕНЬ высокой. Попадание при ударе тупым " +" боя и со временем может стать ОЧЕНЬ высокой. Попадание при ударе дробящим " "оружием может временно оглушить врага. Промахнувшись, вы можете споткнуться " "и потерять очки действия. Если монстр попадёт по вам, то ваша одежда может " "поглотить часть урона, но весь остальной урон придётся по вам." @@ -145553,9 +141341,9 @@ msgid "" "spawns with one such magazine in it." msgstr "" "Против орд монстров может потребоваться огнестрельное оружие. Для " -"большинства оружия нужны совместимые магазины — это указано в описании " -"оружия. К счастью, огнестрельное оружие часто можно найти с уже вставленным " -"магазином." +"большинства видов оружия нужны совместимые магазины — это указано в описании" +" оружия. К счастью, огнестрельное оружие часто можно найти с уже вставленным" +" магазином." #: lang/json/help_from_json.py msgid "" @@ -145602,7 +141390,7 @@ msgid "" msgstr "" "Обратите внимание, что, хотя существует несколько типов боеприпасов для " "данного калибра и типа магазина, вы не можете смешивать их в одном магазине." -" Например, вы не можете зарядить 9x19 мм ЭП и 9x19 мм ОБ-патроны в один и " +" Например, вы не можете зарядить патроны 9x19 мм ЭП и 9x19 мм ОП в один и " "тот же магазин, так как в магазин можно зарядить только одинаковые патроны." #: lang/json/help_from_json.py @@ -145784,8 +141572,8 @@ msgstr "" "По возможности избегайте боя. Убегайте, если придётся, но следите за " "выносливостью, потому что зомби никогда не устают. Сражение всегда опасно, и" " иногда одно неверное движение становится последним. Во многих случаях " -"сражение ничего не даст, если только вы не подготовились к бою и если " -"убийство зомби поможет вам чего-нибудь достичь." +"сражение ничего не даст, если только вы не подготовились к бою, и убийство " +"зомби поможет вам чего-нибудь достичь." #: lang/json/help_from_json.py msgid "" @@ -145796,12 +141584,12 @@ msgid "" "can outpace your enemies. Irregular terrain, like forests, may help you lose" " monsters." msgstr "" -"Намного проще сражаться с противниками по одному. Иногда у вас получится " -"кайтить зомби-одиночек. Пользуйтесь дверным проёмом как узким местом. Стойте" -" за окном и бейте зомби, пока он медленно перелезает. Осторожно — если зомби" -" много, они протолкнут друг друга внутрь. Убегайте, если у вас преимущество " -"в скорости. Двигаясь по пересечённой местности, вы быстро оторвётесь от " -"преследователей." +"Намного проще сражаться с противниками по одному. Иногда у вас может " +"получится выманивать зомби по одному. Пользуйтесь дверным проёмом как узким " +"местом. Стойте за окном и бейте зомби, пока он медленно перелезает. " +"Осторожно — если зомби много, они протолкнут друг друга внутрь. Убегайте, " +"если у вас преимущество в скорости. Двигаясь по пересечённой местности, вы " +"быстро оторвётесь от преследователей." #: lang/json/help_from_json.py msgid "" @@ -146004,8 +141792,8 @@ msgstr "" "Сопротивление воздуха возрастает при увеличении ширины транспорта или " "наличии деталей, увеличивающих высоту — кузовов, проходов или турелей. Также" " оно возрастает при ухудшении аэродинамичности, например, если есть открытые" -" сиденья или кузов спереди транспорта. Сопротивление воздуха сильно влияет " -"на скорость, особенно при высоких скоростях." +" сиденья или кузов в передней части транспорта. Сопротивление воздуха сильно" +" влияет на скорость, особенно на высоких скоростях." #: lang/json/help_from_json.py msgid "" @@ -146082,7 +141870,7 @@ msgstr "" #: lang/json/help_from_json.py msgid "BOATS AND AMPHIBIOUS VEHICLES" -msgstr "ЛОДКИ И ТРАНСПОРТЫ-АМФИБИИ" +msgstr "ЛОДКИ И АМФИБИИ" #: lang/json/help_from_json.py msgid "" @@ -146103,9 +141891,9 @@ msgid "" msgstr "" "Каждый дополнительный лодочный корпус увеличивает высоту водонепроницаемого " "корпуса. Если высота водонепроницаемого корпуса меньше осадки, вода затечёт " -"внутрь транспорта, и он потонет и уничтожится в глубокой воде. Если осадка " -"меньше высоты водонепроницаемого корпуса, вода в транспорт не попадёт, и он " -"не потонет в глубокой воде." +"внутрь транспорта, и он потонет и будет уничтожен в глубокой воде. Если " +"осадка меньше высоты водонепроницаемого корпуса, вода в транспорт не " +"попадёт, и он не потонет в глубокой воде." #: lang/json/help_from_json.py msgid "" @@ -146183,7 +141971,7 @@ msgid "" "These items may hold other items. Some are passable weapons. Many will be listed with their contents, e.g. \"plastic bottle of water\". Those containing comestibles may be eaten with ; this may leave an empty container." msgstr "" ") Контейнеры\n" -"Контейнеры содержат в себе другие предметы и могут быть оружием. Большинство может показывать своё содержимое, например: «пластиковая бутылка воды». Их можно употребить, нажав «»." +"Контейнеры содержат в себе другие предметы и могут быть оружием. Большинство может показывать своё содержимое, например: «пластиковая бутылка воды». Их содержимое можно употребить, нажав «», что обычно оставит вам пустой контейнер." #: lang/json/help_from_json.py msgid "" @@ -146191,7 +141979,7 @@ msgid "" "This may be worn with the key or removed with the key. It may cover one or more body parts; you can wear multiple articles of clothing on any given body part, but this will encumber you severely. Each article of clothing may provide storage space, warmth, encumbrance, and a resistance to bashing and/or cutting attacks. Some may protect against environmental effects." msgstr "" "[ Одежда\n" -"Можно надеть () или снять (). Предмет одежды может покрывать одну или несколько областей тела. Вы можете надеть несколько предметов на каждую часть тела, но это будет стеснять ваши движения. Одежда может увеличить теплоту, свободное место и сопротивляемость ударам или режущим атакам. Некоторая одежда может защитить вас от непогоды." +"Можно надеть () или снять (). Предмет одежды может покрывать одну или несколько областей тела. Вы можете надеть несколько предметов на каждую часть тела, но это будет стеснять ваши движения. Одежда может увеличить теплоту, место под переносимые вещи и сопротивляемость ударам или режущим атакам. Некоторые предметы одежды могут защитить вас от непогоды." #: lang/json/help_from_json.py msgid "" @@ -146389,7 +142177,7 @@ msgid "" "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" -"Пистолет — маленькое оружие для одной или двух рук. Отличается от больших пушек пониженной точностью и неудобством применения. Тем не менее, маленький размер оружия делает его эффективным на коротких дистанциях. Стоит отметить высокую скорость перезарядки пистолетов и широкий выбор боеприпасов для них. Благодаря небольшому размеру, вы можете носить одновременно несколько заряженных стволов и переключаться между ними, тем самым экономя время на перезарядку." +"Пистолет — маленькое оружие для одной или двух рук. Отличается от более крупного оружия пониженной точностью и неудобством применения. Тем не менее, маленький размер оружия делает его эффективным на коротких дистанциях. Стоит отметить высокую скорость перезарядки пистолетов и широкий выбор боеприпасов для них. Благодаря небольшому размеру, вы можете носить одновременно несколько заряженных стволов и переключаться между ними, тем самым экономя время на перезарядку." #: lang/json/help_from_json.py msgid "" @@ -146398,7 +142186,7 @@ msgid "" "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" "Из-за этого лучше носить с собой несколько заряженных арбалетов. Арбалеты сложно найти, но их можно изготовить при достаточном уровне механики. Можно изготовить и деревянные болты из любой подходящей древесины. Стальные болты намного эффективнее деревянных. Арбалеты используют навык Пистолеты." #: lang/json/help_from_json.py @@ -146408,7 +142196,7 @@ msgid "" "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. Луки используют навык стрельбы из лука." #: lang/json/help_from_json.py @@ -146426,7 +142214,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" "Пистолет-пулемёт (ПП) — небольшого размера оружие (чуть больше пистолета), со сравнительно небольшим радиусом поражения и способностью стрелять очередями. ПП эффективны на ближних и средне-дальних дистанциях и довольно быстро перезаряжаются. Лучше стрелять одиночными, но всё зависит от ситуации. Для стрельбы используются 9-мм и .45 патроны, но есть и другие разновидности ПП." #: lang/json/help_from_json.py @@ -146435,7 +142223,7 @@ msgid "" "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" -"Снайперские винтовки пользуются популярностью за превосходную дальность и точность выстрела. Благодаря оптическому прицелу цели на дальнем и ближнем расстоянии поражаются с одинаковой точностью. В отличие от штурмовых винтовок, снайперские не имеют режима автоматического огня; также они медленно перезаряжаются и стреляют. В общем, при большом скоплении противников — не лучший выбор." +"Снайперские винтовки известны превосходной дальностью прицельной стрельбы и точностью выстрела. Благодаря оптическому прицелу цели на дальнем и ближнем расстоянии поражаются с одинаковой точностью. В отличие от штурмовых винтовок, снайперские не имеют режима автоматического огня; также они медленно перезаряжаются и стреляют. В общем, при большом скоплении противников — не лучший выбор." #: lang/json/help_from_json.py msgid "" @@ -146453,7 +142241,7 @@ msgid "" "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" -"Пулемёты являются одним из мощнейших видов вооружения. Они превосходят остальное оружие размерами и плохо подходят для ближнего боя. Одиночный огонь из пулемётов также не очень эффективен. Однако магазин более чем на 100 мощных патронов, высокая скорострельность и довольно низкая отдача позволяют быстро и эффективно расправляться с толпами противников." +"Пулемёты являются одним из мощнейших видов вооружения. Они превосходят остальное оружие размерами и плохо подходят для ближнего боя. Одиночный огонь из пулемётов также не очень эффективен. Однако магазин более чем на 100 мощных патронов, высокая скорострельность и сравнительно низкая отдача позволяют быстро и эффективно расправляться с толпами противников." #: lang/json/help_from_json.py msgid "" @@ -146483,7 +142271,7 @@ msgid "" "A: Lots of the food found in towns is perishable and will only last a few days after the start of a new game. The electricity went out several days ago so fruit, milk and others are the first to go bad. After the first couple of days, you should switch to canned food, jerky, and hunting. Also, you should make sure to cook any food and purify any water you hunt up as it may contain parasites or otherwise be unsafe." msgstr "" "В: Кажется, что мне становится плохо от всего, что я ем! Что случилось?\n" -"O: Большая часть еды в городах скоропортящаяся и сохраняет свежесть лишь несколько дней после начала новой игры. Электричество отключилось несколько дней назад, поэтому фрукты, молоко и прочее протухнут первыми. После нескольких дней с начала игры вам необходимо переключиться на консервы, вяленое мясо и охоту. Также вам следует готовить еду и очищать воду, которую вы найдёте, т.к. она может содержать паразитов и т.п. и пить её небезопасно." +"O: Большая часть еды в городах скоропортящаяся и сохраняет свежесть лишь несколько дней после начала новой игры. Электричество отключилось несколько дней назад, поэтому фрукты, молоко и прочее протухнут первыми. После нескольких дней с начала игры вам необходимо переключиться на консервы, вяленое мясо и охоту. Также вам следует готовить еду и очищать воду, которую вы найдёте, так как она может содержать паразитов и нечистоты, и пить её небезопасно." #: lang/json/help_from_json.py msgid "" @@ -146498,7 +142286,7 @@ msgid "" "Q: The game just told me to quit, and other weird stuff is happening.\n" "A: You have the Schizophrenic trait, which might make the game seem buggy." msgstr "" -"В: Игра сказала мне выйти из неё и ещё другие странности случаются.\n" +"В: Игра сказала мне выйти из неё, и ещё есть другие странности.\n" "О: С чертой «Шизофреник» игра становится немного непредсказуемой." #: lang/json/help_from_json.py @@ -146515,7 +142303,7 @@ msgid "" "A: Your swimming ability is reduced greatly by the weight you are carrying, and is also adversely affected by the clothing you wear. Until you reach a high level of the swimming skill, you'll need to drop your equipment and remove your clothing to swim, making it a last-ditch escape plan. Diving gear may significantly help you in swimming and diving." msgstr "" "В: Почему я всегда тону, когда пытаюсь плыть?\n" -"О: Навык плаванья значительно понижается, если вы несёте много веса. Одежда может испортиться в воде, так что лучше её снять. Пока не достигнете высокого показателя плаванья, необходимо выкидывать вещи и одежду, так что спасение по воде оставьте на самый крайний случай. Подводное снаряжение значительно поможет вам плавать и нырять." +"О: Навык плаванья значительно понижается, если вы несёте много веса, и надетая на вас одежда тоже не помогает, так что лучше её снять. Пока не достигнете высокого навыка плаванья, необходимо выкидывать вещи и одежду, так что спасение по воде оставьте на самый крайний случай. Подводное снаряжение сильно поможет вам плавать и нырять." #: lang/json/help_from_json.py msgid "" @@ -146523,7 +142311,7 @@ msgid "" "A: Royal jelly, the Blood Filter bionic, and some antifungal chemicals can cure fungal infection. You can find royal jelly in the bee hives which dot forests. Antifungal chemicals to cure the fungal infection can either be found as random loot or made from other ingredients." msgstr "" "В: Как я могу избавиться от грибной инфекции?\n" -"О: Маточное молочко, бионика Кровяной фильтр и некоторые противогрибковые химикаты могут излечить грибную инфекцию. Маточное молочко можно найти в пчелиных ульях в лесу. Химикаты могут стать случайной добычей или сделаны из ингредиентов." +"О: Маточное молочко, бионика Кровяной фильтр и некоторые противогрибковые препараты могут излечить грибную инфекцию. Маточное молочко можно найти в пчелиных ульях в лесу. Препараты можно найти случайно или изготовить из ингредиентов." #: lang/json/help_from_json.py msgid "" @@ -146625,7 +142413,7 @@ msgstr "Вскрыть ящик, окно или дверь" #: lang/json/item_action_from_json.py msgid "Upturn earth" -msgstr "Перевернуть землю" +msgstr "Перекопать землю" #: lang/json/item_action_from_json.py msgid "Dig water channel here" @@ -146637,7 +142425,7 @@ msgstr "Копать через породу" #: lang/json/item_action_from_json.py msgid "Pack CBM in pouch" -msgstr "Положить КБМ в сумку" +msgstr "Положить КБМ в упаковку" #: lang/json/item_action_from_json.py msgid "Burrow through rock" @@ -146649,7 +142437,7 @@ msgstr "Использовать счётчик Гейгера" #: lang/json/item_action_from_json.py msgid "Cut metal" -msgstr "Пилить металл" +msgstr "Резать металл" #: lang/json/item_action_from_json.py msgid "Cut bolts or wires" @@ -146701,7 +142489,7 @@ msgstr "Порезать бревно на доски" #: lang/json/item_action_from_json.py msgid "Remove tool mods" -msgstr "Убрать моды инструментов" +msgstr "Снять модификации с инструментов" #: lang/json/item_action_from_json.py msgid "Cut up an item" @@ -146715,10 +142503,6 @@ msgstr "Нанести надпись на предмет" msgid "Cauterize a wound" msgstr "Прижечь рану" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "Сделать зомби-раба" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "Начать отсчёт" @@ -146766,7 +142550,7 @@ msgstr "Стерилизовать" #: lang/json/item_action_from_json.py src/artifact.cpp msgid "Ring" -msgstr "Перстень" +msgstr "Позвонить" #: lang/json/item_action_from_json.py msgid "Attach" @@ -146782,11 +142566,11 @@ msgstr "Вылить" #: lang/json/item_action_from_json.py msgid "Capture/place" -msgstr "Захватить/положить" +msgstr "Захватить/отпустить" #: lang/json/item_action_from_json.py msgid "Place" -msgstr "Разместить" +msgstr "Положить" #: lang/json/item_action_from_json.py msgid "Chew" @@ -146794,7 +142578,7 @@ msgstr "Жевать" #: lang/json/item_action_from_json.py msgid "Clear rubble" -msgstr "Очистить камни" +msgstr "Расчистить камни" #: lang/json/item_action_from_json.py msgid "Flip" @@ -146806,7 +142590,7 @@ msgstr "Нюхать кокс" #: lang/json/item_action_from_json.py msgid "Apply" -msgstr "Применить" +msgstr "Надеть" #: lang/json/item_action_from_json.py lang/json/keybinding_from_json.py msgid "Eat" @@ -146831,7 +142615,7 @@ msgstr "Заставить говорить" #: lang/json/item_action_from_json.py msgctxt "ECIG" msgid "Smoke" -msgstr "Надышался дымом" +msgstr "Курить" #: lang/json/item_action_from_json.py msgid "Take off" @@ -146848,7 +142632,7 @@ msgstr "Закопать яму / утрамбовать землю" #. ~ Mutation class name #: lang/json/item_action_from_json.py lang/json/mutation_category_from_json.py msgid "Fish" -msgstr "Рыба" +msgstr "Рыбачить" #: lang/json/item_action_from_json.py msgid "Set" @@ -146913,7 +142697,7 @@ msgstr "Бросить кубик" #: lang/json/item_action_from_json.py msgid "Prepare to use" -msgstr "Подготовить перед использованием" +msgstr "Подготовить к использованию" #: lang/json/item_action_from_json.py msgid "Use regulator" @@ -146933,7 +142717,7 @@ msgstr "Готовить" #: lang/json/item_action_from_json.py msgid "Cut up metal" -msgstr "Пилить металл" +msgstr "Резать металл" #: lang/json/item_action_from_json.py msgid "Pack an item" @@ -146954,7 +142738,7 @@ msgstr "Проверить показатели фитнес-браслета" #: lang/json/item_action_from_json.py msgid "Put up" -msgstr "Положить" +msgstr "Поставить палатку" #: lang/json/item_action_from_json.py msgid "Measure radiation" @@ -147043,10 +142827,6 @@ msgstr "Проверить информацию по погоде" msgid "Reload" msgstr "Перезарядить" -#: lang/json/item_action_from_json.py -msgid "Store/unload ammo" -msgstr "Поместить/вытащить боеприпасы" - #: lang/json/item_action_from_json.py msgid "Make some noise" msgstr "Пошуметь" @@ -147224,9 +143004,9 @@ msgid "" "obstacles by moving into tiles with them. Note that automatic mining option" " should be set to true for this to work." msgstr "" -"Если этот предмет находится у вас в руках, то он позволяет добывать ресурсы," -" просто двигаясь на соответствующие тайлы. Для работы этой функции должна " -"быть включена опция на автоматическую добычу в настройках игры." +"Если этот предмет находится у вас в руках, то он позволяет добывать ресурсы " +"при движении на соответствующие тайлы. Для работы этой функции должна быть " +"включена опция на автоматическую добычу в настройках игры." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -147375,7 +143155,7 @@ msgid "" "This food melts when not in a very cold climate, and " "tastes much better when frozen." msgstr "" -"Эта пища растаёт, в тёплом климате, и на вкус намного " +"Эта пища растаёт в тепле , и на вкус намного " "лучше, когда заморожена." #. ~ Please leave anything in unchanged. @@ -147423,7 +143203,7 @@ msgid "" " of its normal damage to adjacent enemies." msgstr "" "Этому оружию нужно свободное пространство для использования, и оно наносит " -"70% от обычного урона врагам в соседних клетках." +"70% от обычного урона врагам в прилегающих клетках." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -147454,7 +143234,7 @@ msgid "" "This gear requires careful balance to use. Being hit while wearing it could " "make you fall down." msgstr "" -"Это снаряжение требует осторожного баланса. Если вы получаете удар, то " +"Это снаряжение требует удержания равновесия. Если вы получаете удар, то " "можете свалиться на землю." #. ~ Please leave anything in unchanged. @@ -147492,7 +143272,7 @@ msgstr "Эта одежда очень сковывающая и поэтому msgid "" "This clothing slows your thirst by reducing moisture loss." msgstr "" -"Эта одежда снижает ваши потребности в воде путём уменьшения " +"Эта одежда снижает вашу потребность в воде путём уменьшения " "потерь жидкости." #. ~ Please leave anything in unchanged. @@ -147501,7 +143281,7 @@ msgid "" "This clothing will protect you from harm and withstand a " "lot of abuse." msgstr "" -"Этот предмет одежды предназначен для защиты и выдерживает " +"Этот предмет одежды предназначен для защиты и может выдержать " "много повреждений." #. ~ Please leave anything in unchanged. @@ -147644,8 +143424,8 @@ msgid "" "This food is unappetizing in a way that can't be covered up " "by most cooking." msgstr "" -"Эта еда неаппетитна настолько, что практически не может быть" -" приготовлена." +"Эта еда неаппетитна настолько, что ее приготовление не " +"исправит этого." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -147663,7 +143443,7 @@ msgid "" "is on, will produce electrical power that can be stored in a battery." msgstr "" "Генератор. Будучи установленным на бензиновый или дизельный двигатель, после" -" запуска двигателя генерирует электроэнергию, которую можно хранить в " +" запуска двигателя генерирует электроэнергию, которую можно запасать в " "аккумуляторе." #. ~ Please leave anything in unchanged. @@ -147734,7 +143514,7 @@ msgid "" "allows you to remotely open or close it from the vehicle controls." msgstr "" "Закрыто, ограничивает обзор сквозь занавеску. Дверной мотор позволяет " -"удаленно открывать или закрывать её от системы управления автомобилем." +"удаленно открывать или закрывать её через систему управления автомобилем." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -147826,7 +143606,8 @@ msgid "" "If your vehicle consists of a single tile, this wheel is enough to allow it " "to move." msgstr "" -"Если ваш автомобиль — однотайловый, колеса достаточно, чтобы двигаться." +"Если ваш автомобиль — однотайловый, одного колеса достаточно, чтобы " +"двигаться." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -147862,7 +143643,7 @@ msgstr "Тут есть плоская поверхность. Неплохое #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "You can craft here." -msgstr "Вы можете изготавливать тут." +msgstr "Здесь можно изготавливать предметы." #: lang/json/keybinding_from_json.py src/input.cpp src/messages.cpp msgid "Scroll up" @@ -147882,7 +143663,7 @@ msgstr "Сдвиг вниз" #: lang/json/keybinding_from_json.py msgid "Cancel menu" -msgstr "Отменить меню" +msgstr "Выйти из меню" #: lang/json/keybinding_from_json.py msgid "Show description of melee style" @@ -147926,11 +143707,11 @@ msgstr "Выбрать всё" #: lang/json/keybinding_from_json.py msgid "Scroll item info up" -msgstr "Прокрутить инфо. о предмете вверх" +msgstr "Прокрутить инф. о предмете вверх" #: lang/json/keybinding_from_json.py msgid "Scroll item info down" -msgstr "Прокрутить инфо. о предмете вниз" +msgstr "Прокрутить инф. о предмете вниз" #: lang/json/keybinding_from_json.py src/game.cpp src/inventory_ui.cpp msgid "Previous item" @@ -148272,6 +144053,18 @@ msgstr "Переключить боеприпасы" msgid "Switch Firing Mode" msgstr "Переключить режим стрельбы" +#: lang/json/keybinding_from_json.py +msgid "Toggle turret lines" +msgstr "Переключить линии огня турелей" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "Центрировать на цели" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "Переключить просмотр курсор/клавиша" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "Выбрать" @@ -148304,10 +144097,6 @@ msgstr "Показать расширенное описание" msgid "Travel to destination" msgstr "Двигаться к цели" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "Центрировать на цели" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "Центрировать на персонаже" @@ -148378,7 +144167,7 @@ msgstr "Чинить часть" #: lang/json/keybinding_from_json.py msgid "Refill tank/battery" -msgstr "Восполнить бак/батарею" +msgstr "Восполнить бак/аккумулятор" #: lang/json/keybinding_from_json.py msgid "Unload fuel bunker" @@ -148390,15 +144179,15 @@ msgstr "Убрать деталь" #: lang/json/keybinding_from_json.py msgid "Rename vehicle" -msgstr "Переназвать транспорт" +msgstr "Переименовать транспорт" #: lang/json/keybinding_from_json.py msgid "Siphon from tank" -msgstr "Перекачать из бака" +msgstr "Слить из бака" #: lang/json/keybinding_from_json.py msgid "Change tire" -msgstr "Выбрать колесо" +msgstr "Заменить колесо" #: lang/json/keybinding_from_json.py msgid "Assign crew" @@ -148458,7 +144247,7 @@ msgstr "Изменить размер" #: lang/json/keybinding_from_json.py msgid "To start" -msgstr "Начать" +msgstr "К началу" #: lang/json/keybinding_from_json.py msgid "Swap origin and target" @@ -148506,24 +144295,28 @@ msgstr "Показать всю карту" #: lang/json/keybinding_from_json.py msgid "Wide move left" -msgstr "Расширить влево" +msgstr "Сильно сдвинуть влево" #: lang/json/keybinding_from_json.py msgid "Wide move right" -msgstr "Расширить вправо" +msgstr "Сильно сдвинуть вправо" #: lang/json/keybinding_from_json.py msgid "Wide move up" -msgstr "Расширить вверх" +msgstr "Сильно сдвинуть вверх" #: lang/json/keybinding_from_json.py msgid "Wide move down" -msgstr "Расширить вниз" +msgstr "Сильно сдвинуть вниз" #: lang/json/keybinding_from_json.py msgid "Toggle category selection mode" msgstr "Режим выбора категории" +#: lang/json/keybinding_from_json.py +msgid "Toggle inventory view to show item categories" +msgstr "Переключить в режим отображения по категориям" + #: lang/json/keybinding_from_json.py msgid "Set item filter" msgstr "Установить фильтр предметов" @@ -148538,7 +144331,7 @@ msgstr "Активация / Изучение" #: lang/json/keybinding_from_json.py msgid "Toggle safe fuel mod" -msgstr "Переключить безопасный топливный режим" +msgstr "Переключить режим экономии топлива" #: lang/json/keybinding_from_json.py msgid "Toggle auto start mod" @@ -148594,11 +144387,11 @@ msgstr "Расшир. управ. инвентарём" #: lang/json/keybinding_from_json.py msgid "Pick up Nearby Item(s)" -msgstr "Подобрать Ближайшие Предмет(ы)" +msgstr "Подобрать ближайшие предмет(ы)" #: lang/json/keybinding_from_json.py msgid "Pickup Item(s) at Player Feet" -msgstr "Подобрать Предмет(ы) под Ногами" +msgstr "Подобрать предмет(ы) под ногами" #: lang/json/keybinding_from_json.py msgid "Grab something nearby" @@ -148670,7 +144463,7 @@ msgstr "Снять носимую вещь" #: lang/json/keybinding_from_json.py msgid "Consume Item Menu" -msgstr "Меню Потребления" +msgstr "Меню потребления" #: lang/json/keybinding_from_json.py msgid "Wield" @@ -148698,7 +144491,7 @@ msgstr "Метнуть предмет" #: lang/json/keybinding_from_json.py msgid "Blind Throw Item" -msgstr "Метнуть Предмет Вслепую" +msgstr "Метнуть предмет вслепую" #: lang/json/keybinding_from_json.py msgid "Fire Wielded Item" @@ -148749,7 +144542,6 @@ msgid "Disassemble items" msgstr "Разобрать предметы" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "Спать" @@ -148843,7 +144635,7 @@ msgstr "Посмотреть температурную карту" #: lang/json/keybinding_from_json.py msgid "View Visibility Map" -msgstr "Посмотреть Карту Видимости" +msgstr "Посмотреть карту видимости" #: lang/json/keybinding_from_json.py msgid "View Lighting Map" @@ -148851,7 +144643,7 @@ msgstr "Посмотреть карту освещения" #: lang/json/keybinding_from_json.py msgid "View Radiation Map" -msgstr "Посмотреть Карту Радиации" +msgstr "Посмотреть карту радиации" #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" @@ -148895,7 +144687,7 @@ msgstr "Вкл/выкл авто-сбор" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Pickup" -msgstr "Переключение Автоматического Подбора" +msgstr "Переключение автоматического подбора" #: lang/json/keybinding_from_json.py msgid "Action Menu" @@ -148959,7 +144751,7 @@ msgstr "Менеджер автоподбора" #: lang/json/keybinding_from_json.py msgid "Autonotes manager" -msgstr "Менеджер Автозаметок" +msgstr "Менеджер автозаметок" #: lang/json/keybinding_from_json.py msgid "Safe Mode manager" @@ -148973,7 +144765,7 @@ msgstr "Редактор цветов" msgid "Active World Mods" msgstr "Активные моды мира" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "Режим цикла передвижения (бег/шаг/красться)" @@ -149032,7 +144824,7 @@ msgstr "осмотреться" #: lang/json/keybinding_from_json.py msgctxt "verb" msgid "fire" -msgstr "огонь" +msgstr "огонь/атака" #: lang/json/keybinding_from_json.py msgid "List items and monsters" @@ -149267,6 +145059,30 @@ msgstr "Описать мебель" msgid "Describe terrain" msgstr "Описать местность" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "Переключить списки" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "Назад" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "Ещё" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "Изучить предмет" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "Отменить сделку" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "Переименовать профессию" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" msgstr "Управлять несколькими электроприборами" @@ -149305,7 +145121,7 @@ msgstr "Управлять автопилотом" #: lang/json/keybinding_from_json.py msgid "Toggle camera system" -msgstr "Переключить систему камер" +msgstr "Вкл/выкл систему камер" #: lang/json/keybinding_from_json.py msgid "Toggle chimes" @@ -149317,7 +145133,7 @@ msgstr "Вкл/выкл круиз-контроль" #: lang/json/keybinding_from_json.py msgid "Toggle dome lights" -msgstr "Переключить плафоны" +msgstr "Вкл/выкл плафоны" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Toggle doors" @@ -149325,63 +145141,63 @@ msgstr "Переключить двери" #: lang/json/keybinding_from_json.py msgid "Toggle engine" -msgstr "Переключить двигатель" +msgstr "Вкл/выкл двигатель" #: lang/json/keybinding_from_json.py msgid "Toggle fridge" -msgstr "Переключить холодильник" +msgstr "Вкл/выкл холодильник" #: lang/json/keybinding_from_json.py msgid "Toggle freezer" -msgstr "Переключить морозильник" +msgstr "Вкл/выкл морозильник" #: lang/json/keybinding_from_json.py msgid "Toggle space heater" -msgstr "Переключить обогреватель" +msgstr "Вкл/выкл обогреватель" #: lang/json/keybinding_from_json.py msgid "Toggle cooler" -msgstr "Переключить кондиционер" +msgstr "Вкл/выкл кондиционер" #: lang/json/keybinding_from_json.py msgid "Toggle headlights" -msgstr "Переключить фары" +msgstr "Вкл/выкл фары" #: lang/json/keybinding_from_json.py msgid "Toggle wide-angle headlights" -msgstr "Переключить широкоугольные фары" +msgstr "Вкл/выкл широкоугольные фары" #: lang/json/keybinding_from_json.py msgid "Toggle directional overhead lights" -msgstr "Переключить направленную мигалку" +msgstr "Вкл/выкл направленную мигалку" #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" -msgstr "Переключить мигалку" +msgstr "Вкл/выкл мигалку" #: lang/json/keybinding_from_json.py msgid "Toggle planter" -msgstr "Переключить сеялку" +msgstr "Вкл/выкл сеялку" #: lang/json/keybinding_from_json.py msgid "Toggle plow" -msgstr "Переключить плуг" +msgstr "Вкл/выкл плуг" #: lang/json/keybinding_from_json.py msgid "Toggle reactor" -msgstr "Переключить реактор" +msgstr "Вкл/выкл реактор" #: lang/json/keybinding_from_json.py msgid "Toggle reaper" -msgstr "Переключить жатку" +msgstr "Вкл/выкл жатку" #: lang/json/keybinding_from_json.py msgid "Toggle recharger" -msgstr "Переключить зарядное устройство" +msgstr "Вкл/выкл зарядное устройство" #: lang/json/keybinding_from_json.py msgid "Toggle scoop" -msgstr "Вкл/выкл совок" +msgstr "Вкл/выкл отвал" #: lang/json/keybinding_from_json.py msgid "Toggle stereo" @@ -149389,11 +145205,11 @@ msgstr "Вкл/выкл стерео" #: lang/json/keybinding_from_json.py msgid "Toggle water purifiers" -msgstr "Переключить водоочиститель" +msgstr "Вкл/выкл водоочиститель" #: lang/json/keybinding_from_json.py msgid "Toggle tracking" -msgstr "Переключить отслеживание" +msgstr "Вкл/выкл отслеживание" #: lang/json/keybinding_from_json.py src/turret.cpp src/vehicle_use.cpp msgid "Set turret firing modes" @@ -149401,11 +145217,11 @@ msgstr "Установить режимы стрельбы турелей" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim turrets manually" -msgstr "Целиться турелями вручную" +msgstr "Ручное нацеливание турелей" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim automatic turrets" -msgstr "Целиться из автоматических турелей" +msgstr "Автоматическое нацеливание турелей" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim individual turret" @@ -149419,7 +145235,7 @@ msgstr "Установить режимы прицеливания туреле msgid "Nothing" msgstr "Ничего" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "Тут нет ничего интересного." @@ -149428,7 +145244,7 @@ msgstr "Тут нет ничего интересного." msgid "Crater" msgstr "Воронка" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "Тут воронка." @@ -149437,7 +145253,7 @@ msgstr "Тут воронка." msgid "College Kids" msgstr "Студенты" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "Тут несколько трупов студентов." @@ -149446,7 +145262,7 @@ msgstr "Тут несколько трупов студентов." msgid "Drug Deal" msgstr "Наркодельцы" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "Тут несколько трупов наркодельцов." @@ -149455,7 +145271,7 @@ msgstr "Тут несколько трупов наркодельцов." msgid "Roadworks" msgstr "Дорожные работы" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "Тут ведутся дорожные работы." @@ -149464,7 +145280,7 @@ msgstr "Тут ведутся дорожные работы." msgid "Road Mayhem" msgstr "Дорожное насилие" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "Тут дорожное насилие." @@ -149473,7 +145289,7 @@ msgstr "Тут дорожное насилие." msgid "Roadblock (Military)" msgstr "Дорожная блокада (Военная)" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "Эта дорога перекрыта военными." @@ -149482,7 +145298,7 @@ msgstr "Эта дорога перекрыта военными." msgid "Roadblock (Bandits)" msgstr "Дорожная блокада (Бандиты)" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "Эта дорога перекрыта бандитами." @@ -149491,7 +145307,7 @@ msgstr "Эта дорога перекрыта бандитами." msgid "Minefield" msgstr "Минное поле" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "Тут расставлены мины." @@ -149500,17 +145316,17 @@ msgstr "Тут расставлены мины." msgid "Supply Drop" msgstr "Точка воздушного снабжения" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "Тут несколько сброшенных ящиков со снабжением." -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" -msgstr "Армейский" +msgstr "Солдаты" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "Тут несколько трупов солдат." @@ -149519,7 +145335,7 @@ msgstr "Тут несколько трупов солдат." msgid "Helicopter Crash" msgstr "Крушение вертолёта" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "Тут разбившийся вертолёт." @@ -149528,7 +145344,7 @@ msgstr "Тут разбившийся вертолёт." msgid "Scientists" msgstr "Учёные" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "Тут несколько трупов учёных." @@ -149537,7 +145353,7 @@ msgstr "Тут несколько трупов учёных." msgid "Portal" msgstr "Портал" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "Тут есть портал." @@ -149546,7 +145362,7 @@ msgstr "Тут есть портал." msgid "Portal In" msgstr "Входной портал" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "Тут есть другой портал." @@ -149555,7 +145371,7 @@ msgstr "Тут есть другой портал." msgid "Spider Nest" msgstr "Паучье гнездо" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "Тут паучье гнездо." @@ -149564,22 +145380,21 @@ msgstr "Тут паучье гнездо." msgid "Wasp Nest" msgstr "Осиное гнездо" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "Тут осиное гнездо." #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "Пауки" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "Здесь всё затянуто паутиной. Пауки могут быть неподалёку" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "Где-то рядом каннибал." @@ -149588,7 +145403,7 @@ msgstr "Где-то рядом каннибал." msgid "Jabberwock" msgstr "Бармаглот" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "Где-то рядом бармаглот." @@ -149597,7 +145412,7 @@ msgstr "Где-то рядом бармаглот." msgid "Grove" msgstr "Роща" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "Здесь растёт один тип деревьев." @@ -149606,7 +145421,7 @@ msgstr "Здесь растёт один тип деревьев." msgid "Shrubberry" msgstr "Кусты" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "Здесь растёт один тип кустов." @@ -149615,16 +145430,16 @@ msgstr "Здесь растёт один тип кустов." msgid "Clearcut" msgstr "Вырубка" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." -msgstr "Область с однообразно вырубленными деревьями." +msgstr "Область с полностью вырубленными деревьями." #: lang/json/map_extra_from_json.py msgid "Pond" msgstr "Пруд" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "Тут маленький пруд." @@ -149633,7 +145448,7 @@ msgstr "Тут маленький пруд." msgid "Stand of trees" msgstr "Группа деревьев" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "Роща деревьев." @@ -149642,7 +145457,7 @@ msgstr "Роща деревьев." msgid "Tall grass" msgstr "Высокая трава" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "Поляна высокой травы." @@ -149651,7 +145466,7 @@ msgstr "Поляна высокой травы." msgid "Derelict shed" msgstr "Заброшенная хижина" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "Обвалившаяся хижина." @@ -149660,7 +145475,7 @@ msgstr "Обвалившаяся хижина." msgid "Clay Deposit" msgstr "Залежи глины" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "Тут небольшие залежи глины." @@ -149669,8 +145484,8 @@ msgstr "Тут небольшие залежи глины." msgid "Dead Vegetation" msgstr "Мёртвая растительность" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "Тут мёртвая растительность." @@ -149683,8 +145498,8 @@ msgstr "Мёртвая растительность (Точечная)" msgid "Burned Ground" msgstr "Выжженная земля." -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "Тут выжженная земля." @@ -149697,7 +145512,7 @@ msgstr "Выжженная земля (Точечная)" msgid "Marloss Pilgrimage" msgstr "Паломники Марло" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "Тут Паломники Марло." @@ -149706,7 +145521,7 @@ msgstr "Тут Паломники Марло." msgid "Casings" msgstr "Гильзы" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "Тут несколько стреляных гильз." @@ -149715,7 +145530,7 @@ msgstr "Тут несколько стреляных гильз." msgid "Looters" msgstr "Мародёры" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "Какие-то мародёры, собирающие всё, что не прибито к полу." @@ -149724,12 +145539,12 @@ msgstr "Какие-то мародёры, собирающие всё, что н msgid "Corpses" msgstr "Трупы" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "Несчастные из числа миллиардов жертв Катаклизма." -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "Осиное гнездо." @@ -149738,7 +145553,7 @@ msgstr "Осиное гнездо." msgid "Dermatik Nest" msgstr "Гнездо дерматиков" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "Гнездо дерматиков." @@ -149747,7 +145562,7 @@ msgstr "Гнездо дерматиков." msgid "Prison Bus" msgstr "Тюремный автобус" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "Тюремный автобус." @@ -149756,7 +145571,7 @@ msgstr "Тюремный автобус." msgid "Mass Grave" msgstr "Массовое захоронение" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "Это массовое захоронение - большая яма, заполненная телами." @@ -149765,11 +145580,20 @@ msgstr "Это массовое захоронение - большая яма, msgid "Grave" msgstr "Могила" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "Это могила - яма в земле, предназначенная для погребения умерших." +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "Ловушка для зомби" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "Ловушка для зомби." + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -149786,8 +145610,7 @@ msgid "High Security Consolidated Computerized Bank of the Treasury" msgstr "Объединённый Компьютеризированный Банк Казначейства" #. ~ Computer access denied warning -#: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py src/mapgen.cpp -#: src/mapgen.cpp +#: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "" "ERROR! Access denied! Unauthorized access will be met with lethal force!" msgstr "" @@ -149812,7 +145635,7 @@ msgstr ": кладбище" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Cemetery" -msgstr "Кладбище " +msgstr "Кладбище города " #. ~ Sign #: lang/json/mapgen_from_json.py @@ -150576,12 +146399,12 @@ msgstr "Не бегать!" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "MEN" -msgstr "МУЖСКОЙ" +msgstr "МУЖ" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "WOMEN" -msgstr "ЖЕНСКИЙ" +msgstr "ЖЕН" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -150591,12 +146414,12 @@ msgstr "НЕ нырять на отмели!" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Women" -msgstr "Женщины" +msgstr "Жен" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Men" -msgstr "Мужчины" +msgstr "Муж" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -150686,7 +146509,7 @@ msgstr ": переработка отходов" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Drop off 8am to 8pm, weekdays." -msgstr "Принимаем с 8 до 20 по выходным." +msgstr "Принимаем с 8 до 20 по будням." #. ~ Sign #: lang/json/mapgen_from_json.py @@ -150877,7 +146700,7 @@ msgstr "Управление доступом в операционную" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "EMERGENCY EVAC - OPEN ALL DOORS" -msgstr "ЭКСТРЕННЫЙ ВЫХОД — ОТКРЫТЬ ВСЕ ДВЕРИ" +msgstr "ЭКСТРЕННАЯ ЭВАКУАЦИЯ — ОТКРЫТЬ ВСЕ ДВЕРИ" #. ~ Computer option #: lang/json/mapgen_from_json.py @@ -151102,16 +146925,6 @@ msgid "" msgstr "" "Похоронный сервис семьи Ватели. На службе Новой Англии уже триста лет." -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Hydroponics Entrance" -msgstr "Вход в Гидропонику" - -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Missile Control" -msgstr "Управление ракетой" - #: lang/json/martial_art_from_json.py msgid "No style" msgstr "Без стиля" @@ -151335,6 +147148,22 @@ msgstr "Вы сжимаете зубы и готовитесь к хорошей msgid "%s gets ready to brawl." msgstr "%s готовится к драчке." +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "Улучшенное блокирование" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': +#. 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a time.\n" +"\n" +"+1 Block attempts." +msgstr "" +"Опыт ближнего боя научил вас блокировать сразу несколько атак\n" +"\n" +"+1 попытка блока." + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "Капоэйра" @@ -151353,7 +147182,7 @@ msgstr "" #. ~ initiate message for martial art '{'str': 'Capoeira'}' #: lang/json/martial_art_from_json.py msgid "You begin performing the ginga." -msgstr "Вы начинаете движения гинги." +msgstr "Вы начинаете движения джинги." #. ~ initiate message for martial art '{'str': 'Capoeira'}' #: lang/json/martial_art_from_json.py @@ -151521,7 +147350,7 @@ msgid "" "Enables \"Dragon Vortex Block\" and \"Dragon Wing Dodge\"\n" "Lasts 1 turn." msgstr "" -"Жизнь и бой составляют круг. Атака ведёт за собой блок и ещё одну атаку. Ищите конец этого круга.\n" +"Жизнь и бой составляют круг. Атака ведёт за собой блок и ещё одну атаку. Замыкайте этот круг.\n" "\n" "+1 Точность, +2 Дробящий урон.\n" "Активирует «Вихревой блок Дракона» и «Уклонение драконьего крыла»\n" @@ -151948,9 +147777,9 @@ msgid "" msgstr "" "Искусство меча и щита, позднее развившееся в фехтование. Предназначено для " "боя как с бронёй, так и без неё, включает в себя захваты и защитные и " -"атакующие техники владения мечом. В этом руководстве сравниваются " -"итальянские и немецкие традиции средневекового боя с детализированными " -"пошаговыми иллюстрациями." +"атакующие техники владения мечом. В этой трактовке сравниваются итальянские " +"и немецкие традиции средневекового боя с детализированными пошаговыми " +"иллюстрациями." #. ~ initiate message for martial art '{'str': 'Medieval Swordsmanship'}' #: lang/json/martial_art_from_json.py @@ -152499,7 +148328,7 @@ msgid "" msgstr "" "Ваши атаки сильнее, если вы ничего не держите в руках.\n" "\n" -"+33% ударного урона, когда не используете оружие." +"+33% дробящего урона, когда не используете оружие." #: lang/json/martial_art_from_json.py msgid "Tai Chi" @@ -153218,50 +149047,94 @@ msgid "Sojutsu" msgstr "Содзюцу" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Blade-work" -msgstr "Ножевой бой К.Р.И.Т" +msgid "CRIT Blade-work" +msgstr "Ножевой бой К.Р.И.Т." -#. ~ Description for martial art 'C.R.I.T Blade-work' +#. ~ Description for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"An offensive style that is centered around rapid slashes and prodding. Each" -" attack landed increases combat ability" +"An offensive style centered around rapid slashes and prodding. Each attack " +"landed increases combat ability but leaves you increasingly vunerable" msgstr "" "Атакующий стиль, основанный на быстрых разрезах и тычках. Каждая успешная " -"атака увеличивает боеспособность" +"атака увеличивает боеспособность, но делает вас более уязвимым." -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Initiate blade-work." -msgstr "Инициировать технику клинка." +msgid "You prepare to whittle down your enemies." +msgstr "Вы готовитесь изничтожить ваших врагов." -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py #, python-format msgid "%s initiates blade-work." msgstr "%s инициирует технику клинка." #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Intensity" -msgstr "Интенсивный бой К.Р.И.Т" +msgid "Unwavering Edge" +msgstr "Непоколебимое лезвие" + +#. ~ Description of buff 'Unwavering Edge' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Gain minor Accuracy, Cutting and Stabbing Arpen per stack. Greatly reduces " +"dodge skill. 2 stacks max" +msgstr "" +"Маленькая прибавка к точности, бронебойному режущему и колющему урону. " +"Сильно снижает уклонение. Максимум 2 стека." + +#: lang/json/martial_art_from_json.py +msgid "Ruthlessness" +msgstr "Безжалостность" -#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Ruthlessness' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Additional DMG, and Arpen per stack. Max of 5 stacks" -msgstr "Дополнительный урон и бронебойность за стек. Максимум 5 стеков" +msgid "" +"Additional Stabbing and Cutting damage per stack. Reduces dodge attempts. 4" +" stacks max." +msgstr "" +"Дополнительный режущий и колющий урон на каждый стек. Уменьшает число " +"попыток уклонения. Максимум 4 стека." #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Calculation" -msgstr "Расчёт К.Р.И.Т" +msgid "Rending Strikes" +msgstr "Рвущие атаки" -#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Rending Strikes' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"Increased accuracy along with minor cut and stab damage with piercing " -"capability." -msgstr "Повышенная точность и колюще-режущий урон с небольшой бронебойностью." +"Additional Armor penetration per stack. Further reduces dodge attempts. 3 " +"stacks max." +msgstr "" +"Дополнительное пробивание брони каждый стек. Еще больше снижает число " +"попыток уклонения. Максимум 3 стека." + +#: lang/json/martial_art_from_json.py +msgid "Calculating Eyes" +msgstr "Расчетливый взгляд" + +#. ~ Description of buff 'Calculating Eyes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"You have been taught how to properly utilize small to medium-sized sharp " +"weaponry. Gain great Cutting and Stabbing Armor Penetration on top of minor " +"Accuracy" +msgstr "" +"Вы умело пользуетесь в бою клинками малой и средней длины. Большой бонус к " +"пробиванию брони колющим и режущим уроном и небольшой бонус к точности." + +#: lang/json/martial_art_from_json.py +msgid "Honed Movements" +msgstr "Отточенные движения" + +#. ~ Description of buff 'Honed Movements' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Your skill and handling with sharp weaponry has improved. Gain extra Cutting" +" and Stabbing damage." +msgstr "" +"Улучшенный навык владению режущим оружием. Дополнительный режущий и колющий " +"урон." #: lang/json/martial_art_from_json.py msgid "C.R.I.T Enforcement" @@ -153290,54 +149163,57 @@ msgid "%s draws a line in the sand." msgstr "%s рисует линию в песке." #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Buildup" -msgstr "Готовность К.Р.И.Т" +msgid "Bulwark" +msgstr "Каменная стена" -#. ~ Description of buff 'C.R.I.T Buildup' for martial art 'C.R.I.T -#. Enforcement' +#. ~ Description of buff 'Bulwark' for martial art 'C.R.I.T Enforcement' #: lang/json/martial_art_from_json.py -msgid "+0.05 armor and other small bonuses per stack. Max of 10 stacks" -msgstr "+0.05 брони и другие небольшие бонусы на стек. Максимум 10 стеков." +msgid "+0.5 armor and other small bonuses per stack. Max of 2 stacks" +msgstr "+0.5 брони и другие небольшие бонусы на стек. Максимум 2 стека." #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Guard" -msgstr "Страж К.Р.И.Т" +msgid "Unyielding Front" +msgstr "Непоколебимый фронт" -#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement' +#. ~ Description of buff 'Unyielding Front' for martial art 'C.R.I.T +#. Enforcement' #: lang/json/martial_art_from_json.py -msgid "+1 armor. STR provides accuracy and minor bash arpen." +msgid "" +"Stand strong in the face of adversity. +1 armor. STR provides accuracy and " +"minor bash arpen." msgstr "" -"+1 брони. СИЛ обеспечивает точность и небольшой дробящий проникающий урон." +"Будьте стойким перед лицом невзгод. +1 брони. СИЛ обеспечивает точность и " +"небольшой дробящий проникающий урон." #: lang/json/martial_art_from_json.py -msgid "C.R.I.T CQB" -msgstr "Рукопашный бой К.Р.И.Т" +msgid "CRIT CQB" +msgstr "Рукопашный бой К.Р.И.Т." -#. ~ Description for martial art 'C.R.I.T CQB' +#. ~ Description for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "A style centered around rapid strikes and piercing jabs. Each attack landed" -" adds a plethora of combat bonuses. 25 percent bash damage." +" adds a plethora of combat bonuses." msgstr "" "Защитный стиль, основанный на быстрых ударах и пронзающих уколах. Каждая " -"атака добавляет множество боевых бонусов. 25 процентов дробящего урона." +"атака добавляет множество боевых бонусов." -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py -msgid "Initiate CQB." -msgstr "Инициировать технику ближнего боя C.R.I.T." +msgid "You shift your weight for the oncoming fight." +msgstr "Вы перераспределяете ваш вес и готовитесь к бою." -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py #, python-format -msgid "%s initiates CQB." -msgstr "%s инициирует технику ближнего боя C.R.I.T." +msgid "%s prepares for hand-to-hand battle." +msgstr "%s готовится к рукопашному бою." #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Tenacity" -msgstr "Настойчивость К.Р.И.Т" +msgid "Fluid Tenacity" +msgstr "Текучая стойка" -#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Fluid Tenacity' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "+Atk Speed and other small bonuses based on DEX per stack. Max of 5 stacks" @@ -153346,17 +149222,265 @@ msgstr "" "стеков." #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Initiative" -msgstr "Инициатива К.Р.И.Т" +msgid "Tactful Initiative" +msgstr "Тактическая инициатива" -#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Tactful Initiative' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" -"DEX provides dodge ability, accuracy and minor cut / stab damage with slight" -" piercing capability. 50 Percent Bash Damage." +"You have gained an advantage by always remaing mindful of common weaknesses." +" DEX provides dodge ability, accuracy and armor penetration." msgstr "" -"ЛОВ обеспечивает уклонение, точность и колюще-режущий урон с небольшой " -"бронебойностью. 50% дробящего урона." +"Ваше преимущество - вы никогда не забываете о слабых местах, которые есть у " +"всех. ЛОВ увеличивает уклонение, точность и пробивание брони." + +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "Пустынный Ветер" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming strikes." +" The complex spinning and slashing of the curved blade incorporated into " +"many Desert Wind maneuvers are in fact carefully honed gestures that evoke " +"the power of fire, if performed correctly and with the proper focus." +msgstr "" +"Маневры «Пустынного ветра» фокусируются на быстром движении и вихревых " +"огненных ударах. Сложное вращение и разрезание изогнутым клинком, " +"включенного во многие маневры «Пустынного ветра», на самом деле являются " +"тщательно отточенными жестами, которые вызывают силу огня, если они " +"выполняются правильно и с надлежащей концентрацией." + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "" +"Вы чувствуете волну жара, омывающую вас, когда встаёте в боевую стойку." + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "%s встаёт в подвижную боевую стойку." + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" +msgstr "Шаг Ветра" + +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" +"Теплый бриз овевает вас, и вы начинаете двигаться быстрее.\n" +"\n" +"+1.0 к Уклонению.\n" +"Длится 1 ход." + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "Танец Зефира" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" +"Вы грациозно вращаетесь, уходя от от атак, и кружась, как пустынный зефир, несущийся по пескам\n" +"\n" +"+1 к Уклонению, +1 Попытка уклонения.\n" +"Длится 1 ход." + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" +msgstr "Алмазный разум" + +#. ~ Description for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so" +" that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must" +" inevitably." +msgstr "" +"Истинная скорость у разума, не тела. Ученик дисциплины Алмазного Разума " +"стремится отточить свое восприятие и дисциплинировать свои мысли так, чтобы " +"действовать в промежутках времени, настолько узких, что другие даже не могли" +" их воспринимать. Следствием этой скорости мысли и действия является " +"концепция разума как поля битвы. Враг, побеждённый в своем разуме, неизбежно" +" должен проиграть." + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "Вы концентрируетесь и становитесь абсолютно неподвижны на мгновение." + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "%s замирает на мгновение." + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "Стойка готовности" + +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" +"Вы двигаетесь немного быстрее, чем обычно, благодаря сочетанию уверенности, тренировок и ясности ума. Это небольшое преимущество складывается с каждым действием.\n" +"\n" +"-10% к стоимости движения" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "Жемчужина чёрного сомнения" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" +"С каждым промахом оппонент теряет уверенность, его сомнение растёт, словно раздражающая жемчужина в створках бессильного моллюска.\n" +"\n" +"+1 попытка уклонения\n" +"Длится 1 ход. До 2 стеков" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "Хилланский бой на мечах" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "" +"Редкая форма боя, которая практиковалась многими легендарными героями на " +"протяжении веков. Хилланский бой на мечах подразумевает мобильность для " +"нападения и защиты с использованием вращений, прыжков и переворотов, чтобы " +"сбивать с толку врагов и наносить удары с неожиданных углов." + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "Вы начинаете немного покачиваться на ногах." + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "%s начинает немного покачиваться на ногах." + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "Боевой акробат" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" +"Всегда держаться налегке. Лучше уйти от атаки, чем попасть под неё.\n" +"\n" +"+1 к Уклонению." + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "Умелый боевой акробат" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art +#. '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" +"После хорошей подготовки вы ещё более ловко двигаетесь в бою.\n" +"\n" +"+1 к уклонению." + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "Мастер боевой акробатики" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': +#. 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" +"Вы пережили столько боёв, что ваши навыки уклонения запредельны!\n" +"\n" +"+1 к Уклонению." + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "Атака рывком" + +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" +"Используя инерцию, вы несётесь навстречу врагу, чтобы нанести мощный удар.\n" +"\n" +"+10% урона.\n" +"Длится 1 ход. До 3 стеков." + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" +msgstr "Слепящая скорость" + +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"When you perfectly dodge an attack, you can attack rapidly for a short time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." +msgstr "" +"После идеального уклонения от атаки вы можете быстро атаковать в ответ в течение короткого промежутка времени.\n" +"\n" +"-25% цена хода.\n" +"Длится 1 ход." #: lang/json/martial_art_from_json.py msgid "Panzer Kunst" @@ -153443,7 +149567,8 @@ msgstr "вконец повреждённое" msgid "Resin" msgstr "смола" -#: lang/json/material_from_json.py src/veh_interact.cpp +#: lang/json/material_from_json.py lang/json/material_from_json.py +#: src/veh_interact.cpp msgid "dented" msgstr "испорчено" @@ -153664,7 +149789,7 @@ msgid "Junk Food" msgstr "вредная пища" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" +msgid "Foodplace's delicious foodstuff" msgstr "Сытные вкусняшки из Сядь-и-поешь" #: lang/json/material_from_json.py @@ -153672,12 +149797,12 @@ msgid "Kevlar" msgstr "кевлар" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" -msgstr "жёсткий кевлар" +msgid "Layered Kevlar" +msgstr "слоёный кевлар" #: lang/json/material_from_json.py -msgid "scarred" -msgstr "израненный" +msgid "Rigid Kevlar" +msgstr "жёсткий кевлар" #: lang/json/material_from_json.py msgid "Lead" @@ -153705,7 +149830,7 @@ msgstr "номекс" #: lang/json/material_from_json.py msgid "Unknown" -msgstr "Неизвестного" +msgstr "неизвестный" #: lang/json/material_from_json.py msgid "Oil" @@ -153805,7 +149930,7 @@ msgstr "гриб" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "вода" @@ -153877,6 +150002,10 @@ msgstr "титан" msgid "Graphene Weave" msgstr "графеновое волокно" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "израненный" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "загадочная кожа" @@ -153937,7 +150066,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Have you felt the song in your hands yet?" -msgstr "Ты уже ощутил песню в своих руках?" +msgstr "Ты уже удалось ощутить песню в своих руках?" #: lang/json/mission_def_from_json.py msgid "" @@ -153949,7 +150078,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "So you say, but the song sings otherwise." -msgstr "Ты говоришь, но песня поёт иначе." +msgstr "Ты говоришь так, но песня звучит иначе." #: lang/json/mission_def_from_json.py msgid "Then you shall try again, until you hear." @@ -154000,8 +150129,8 @@ msgid "" "this place if they have a second bird coming to pick them up." msgstr "" "Если там есть вооружённая группа, нам нужно получше подготовиться, чтобы " -"удивить их. Возьми побольше боеприпасов и готовься свалить из этого места, " -"когда вторая птичка прибудет, чтобы забрать их." +"впечатлить их. Возьми побольше боеприпасов и готовься свалить из этого " +"места, когда вторая птичка прибудет, чтобы забрать их." #: lang/json/mission_def_from_json.py msgid "Having any trouble following the map?" @@ -154029,7 +150158,7 @@ msgstr "Я… Не могу… Дышать…" #: lang/json/mission_def_from_json.py msgid "I'm asthmatic. I need you to get an inhaler for me…" -msgstr "Я астматик. Мне нужно, чтобы ты достал ингалятор для меня." +msgstr "У меня астма. Мне нужно, чтобы ты достал ингалятор для меня." #: lang/json/mission_def_from_json.py msgid "" @@ -154073,11 +150202,12 @@ msgstr "Это скверная инфекция, скверная…" #: lang/json/mission_def_from_json.py msgid "I'm infected. Badly. I need you to get some antibiotics for me…" -msgstr "Я заражён. Сильно. Мне нужно, чтобы ты принёс мне антибиотиков…" +msgstr "" +"У меня заражение, сильное. Мне нужно, чтобы ты принёс мне антибиотиков…" #: lang/json/mission_def_from_json.py msgid "Find any antibiotics yet?" -msgstr "Ты уже нашёл антибиотики?" +msgstr "У тебя уже получилось найти антибиотики?" #: lang/json/mission_def_from_json.py msgid "Retrieve Military Black Box" @@ -154126,7 +150256,7 @@ msgstr "Что?! Я надеру тебе задницу." #: lang/json/mission_def_from_json.py msgid "Damn, I'll have to find'er myself." -msgstr "Чёрт, мне хотя бы себя самого найти." +msgstr "Чёрт, придется мне заняться ее поисками." #: lang/json/mission_def_from_json.py msgid "Retrieve Black Box Transcript" @@ -154150,8 +150280,8 @@ msgstr "" "что там внутри. Сейчас большинство зданий полностью обесточено, но некоторые" " все ещё могут быть полезны. Видели когда-нибудь одну из этих научных " "лабораторий, что обычно торчат посреди никому не известных пустырей? У этих" -" сосунков терминалы снаружи постоянно светятся. И я знаю, что источник " -"энергии где-то внутри. Если сможешь залезть туда и найти всё ещё работающий " +" дыр терминалы снаружи постоянно светятся. И я знаю, что источник энергии " +"где-то внутри. Если сможешь залезть туда и найти всё ещё работающий " "компьютер, то сможешь и выяснить, что в чёрном ящике." #: lang/json/mission_def_from_json.py @@ -154167,8 +150297,8 @@ msgid "" "America, fuck ya! I was in the guard a few years back so I'm confident I " "can make heads-or-tails of these transmissions." msgstr "" -"Америка, твою мать! Я несколько лет проработал охранником, и теперь я " -"уверен, что смогу разобраться, с какой стороны подойти к этим трансмиссиям." +"Америка, твою мать! Я несколько лет назад служил в нацгвардии, и я уверен, " +"что смогу разобраться, с какой стороны подойти к этим передачам." #: lang/json/mission_def_from_json.py msgid "Damn, I maybe we can find an egg-head to crack the terminal." @@ -154198,14 +150328,14 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "I'd check the police station." -msgstr "Я бы проверил полицейский участок." +msgstr "Стоит проверить полицейский участок." #: lang/json/mission_def_from_json.py msgid "" "We're also official… just hang in there and I'll show you what we can really" " do." msgstr "" -"Мы также официально… Просто побудь здесь и я покажу тебе, что мы " +"Мы тоже официально в деле… Просто побудь здесь, и я покажу тебе, что мы " "действительно можем сделать." #: lang/json/mission_def_from_json.py @@ -154271,7 +150401,7 @@ msgid "" "You give up? This country fell apart because no one could find a good man " "to rely on… might as well give up, I guess." msgstr "" -"Ты сдался? Вот поэтому страна и развалилась! Не было ни одного человека, на " +"Сдаешься? Вот поэтому страна и развалилась! Не было ни одного человека, на " "которого можно было положиться. Видимо, и мне следует сдаться." #: lang/json/mission_def_from_json.py @@ -154387,11 +150517,11 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks so much, you may save both of us yet." -msgstr "Большое спасибо, возможно сейчас ты спас нас обоих." +msgstr "Большое спасибо, возможно это спасёт нас обоих." #: lang/json/mission_def_from_json.py msgid "Ya, it was a long shot I admit." -msgstr "Ну да, это гиблое дело, признаю." +msgstr "Ну да, это конечно было с натяжкой, признаю." #: lang/json/mission_def_from_json.py msgid "I'm not sure, maybe a news station would have what we are looking for?" @@ -154425,10 +150555,9 @@ msgid "" " of much use but I've got to hope in something." msgstr "" "Чем больше начинает казаться, что наш мир уже никогда не будет прежним, тем " -"очевиднее то, что в старых, отвергнутых когда-то, суевериях содержалась " -"некая правда. Пожалуйста, пойди и найди мне религиозную реликвию… Я " -"сомневаюсь, что в этом будет много пользы, но должен же я надеяться на что-" -"то." +"очевиднее то, что в старых, отвергнутых когда-то суевериях содержалась некая" +" правда. Пожалуйста, пойди и найди мне религиозную реликвию… Я сомневаюсь, " +"что в этом будет много пользы, но должен же я надеяться на что-то." #: lang/json/mission_def_from_json.py msgid "" @@ -154531,7 +150660,7 @@ msgstr "Возьми мою флешку. Воспользуйся консол #: lang/json/mission_def_from_json.py msgid "So, do you have my software yet?" -msgstr "Ну и, ты уже скачал мой софт?" +msgstr "Ну и, мой софт уже у тебя?" #: lang/json/mission_def_from_json.py msgid "Excellent, thank you!" @@ -154539,7 +150668,7 @@ msgstr "Отлично, спасибо!" #: lang/json/mission_def_from_json.py msgid "Wow, you failed? All that work, down the drain…" -msgstr "Ты не справился?! Вся работа коту под хвост…" +msgstr "У тебя не вышло?! Вся работа коту под хвост…" #: lang/json/mission_def_from_json.py msgid "Analyze Zombie Blood" @@ -154582,7 +150711,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Well, do you have the data yet?" -msgstr "Ну, ты принёс мне информацию?" +msgstr "Ну, вышло получить мою информацию?" #: lang/json/mission_def_from_json.py msgid "Excellent! This may be the key to removing the infection." @@ -154598,7 +150727,7 @@ msgstr "Какая жалость! Эта информация могла ока #: lang/json/mission_def_from_json.py msgid "Investigate Cult" -msgstr "Расследовать культ" +msgstr "Исследовать культ" #: lang/json/mission_def_from_json.py msgid "" @@ -154624,9 +150753,9 @@ msgid "" "before and after the outbreak. The name of the cult is believed to be the " "Church of Starry Wisdom but it is noted that accounts differ." msgstr "" -"Желаю тебе удачи, возможно бог укажет тебе путь… Возможно, тебе понадобится " -"больше времени, чем в прошлый раз. Есть сообщения о человеческом " -"жертвоприношении непосредственно до и после Катаклизма. Похоже, что культ " +"Желаю тебе удачи, пускай твой бог укажет тебе путь… Возможно, тебе " +"понадобится больше времени, чем в прошлый раз. Есть сообщения о человеческом" +" жертвоприношении непосредственно до и после Катаклизма. Похоже, что культ " "называется «Церковь звёздной мудрости», но может называться и по-другому." #: lang/json/mission_def_from_json.py @@ -154683,7 +150812,7 @@ msgid "" "sure what they would have decided to do with the inmates when they knew " "death was almost certain. " msgstr "" -"Желаю тебе удачи, может быть бог укажет тебе дорогу… Могу только " +"Желаю тебе удачи, пусть твой бог укажет тебе дорогу… Могу только " "представить, какой там творится ад. Я не знаю, что они решили сделать с " "заключёнными, когда поняли, что смерть неминуема." @@ -154703,8 +150832,8 @@ msgstr "" msgid "" "Thank you, I'm not sure what to make of this but I'll ponder your account." msgstr "" -"Спасибо, я не уверен, что делать с этим, но я буду размышлять над своим " -"аккаунтом." +"Спасибо, я не уверен, что делать с этим, но я буду размышлять над тем, что " +"ты рассказываешь." #: lang/json/mission_def_from_json.py msgid "Well damn, you must be the guys here to pick me up…" @@ -154808,8 +150937,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "I'd secure an ammo cache and try to sweep a town in multiple passes." msgstr "" -"Я бы увеличил резерв боезапаса и попробовал бы подчистить город в несколько " -"заходов." +"Я бы запасся патронами и попробовал бы подчистить город в несколько заходов." #: lang/json/mission_def_from_json.py msgid "Got this knocked out?" @@ -154849,13 +150977,13 @@ msgstr "" "перемещающуюся по периметру. В центре этой толпы находился некто вроде " "«лидера». Короче, надо убить этого сукина сына. Мы не знаем, на что он " "способен и почему его окружает толпа зомби, но это точно добавит нам " -"проблем. Сделай всё возможное, мы не можем позволить себе риск упустить его." +"проблем. Сделай всё возможное, мы не можем позволить себе упустить его." #: lang/json/mission_def_from_json.py msgid "" "I'll lend you a hand but I'd try and recruit another gunslinger if you can." msgstr "" -"Я помогу тебе, но я бы попробовал нанять другого наёмника, будь я тобой." +"Я помогу тебе, но я бы попробовал нанять еще одного наёмника, будь я тобой." #: lang/json/mission_def_from_json.py msgid "What's the use of walking away, they'll track you down eventually." @@ -154867,7 +150995,7 @@ msgid "" "The sucker may still be alive under the rubble and ash." msgstr "" "Не рискуй жечь здание, если в нём есть подвал, там можно спрятаться. Под " -"обломками и пеплом могут оставаться живые ублюдки." +"обломками и пеплом ублюдок может выжить ." #: lang/json/mission_def_from_json.py msgid "May that bastard never get up again." @@ -154907,7 +151035,9 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks, make sure you're ready for whatever the beast is." -msgstr "Спасибо, надеюсь ты будешь готов к встрече с любым чудовищем." +msgstr "" +"Спасибо, надеюсь ты будешь готов к встрече с этим чудовищем, чем бы оно ни " +"было." #: lang/json/mission_def_from_json.py msgid "Hey, I know I wouldn't volunteer for it either." @@ -154951,7 +151081,7 @@ msgid "" "those things now. Can you put her out of her misery for me?" msgstr "" "Моя мама… Её… Её убили, но потом она просто поднялась на ноги. И теперь она " -"одна из тех тварей. Не мог бы ты прекратить её мучения за меня?" +"одна из тех тварей. Можешь прекратить её мучения для меня?" #: lang/json/mission_def_from_json.py msgid "Thank you… she would've wanted it this way." @@ -154975,7 +151105,7 @@ msgstr "Спасибо. Теперь я могу спать спокойно, з #: lang/json/mission_def_from_json.py msgid "Really… that's too bad." -msgstr "Серьёзно… Это очень плохо." +msgstr "В самом деле… Очень жаль." #: lang/json/mission_def_from_json.py msgid "Null mission" @@ -155014,7 +151144,7 @@ msgstr "Пожалуйста. Я просто не знаю что мне дел #: lang/json/mission_def_from_json.py msgid "Traveling the backroads would be a good way to search for one." -msgstr "Прогулка по просёлочным дорогам будет будет хорошим вариантом поиска." +msgstr "Прогулка по просёлочным дорогам будет будет хорошей идеей." #: lang/json/mission_def_from_json.py msgid "Shall we keep looking for a farm house?" @@ -155027,7 +151157,7 @@ msgid "" "looking brighter. At least it ought to be safe for now. You'll always be " "welcome here." msgstr "" -"Что ж, мои приключения закончены. Не могу отблагодарить тебя в полной мере. " +"Что ж, мои приключения закончены. Мою благодарность не выразить словами. " "Сделать это место плодородным будет сложновато, но его ждёт светлое будущее." " По крайней мере, сейчас тут безопасно. Тебе здесь всегда будут рады." @@ -155067,7 +151197,8 @@ msgstr "Пожалуйста. Я не знаю что ещё делать." msgid "" "We should go at night, if it is overrun then we can quickly make our escape." msgstr "" -"Мы должны идти ночью, если лагерь захвачен, то мы сможем быстро спастись." +"Мы должны идти ночью, если лагерь захвачен, то мы сможем быстро убраться " +"оттуда." #: lang/json/mission_def_from_json.py msgid "Any leads on where a camp might be?" @@ -155098,8 +151229,8 @@ msgid "" "residence of a local clergy man, could you go to this address and recover " "any items that may reveal what the church's stance is on these events?" msgstr "" -"Как я понял, существа, окружающие эту реликвию, непохожи ни на что, виденное" -" мной раньше. Смешно, что я рассматриваю живых мертвецов, как нечто " +"Как я понял, существа, окружающие эту реликвию, не похожи ни на что, " +"виденное мной раньше. Смешно, что я рассматриваю живых мертвецов, как нечто " "привычное. Тем не менее, в церкви должны быть объяснения этим событиям. Я " "обнаружил резиденцию одного местного духовника. Можешь сходить туда и " "поискать что-нибудь, что поможет понять позицию церкви в этих событиях?" @@ -155161,7 +151292,7 @@ msgid "" "Great, just let me know when you are ready to wade knee-deep in an ocean of " "blood." msgstr "" -"Отлично, просто дайте мне знать, когда вы будете готовы, идти по колено в " +"Отлично, просто дайте мне знать, когда вы будете готовы идти по колено в " "крови." #: lang/json/mission_def_from_json.py @@ -155205,7 +151336,7 @@ msgstr "О нет! Мой бедный щенок…" #: lang/json/mission_def_from_json.py msgid "Break into armory to retrieve family photo" -msgstr "Взломай сейф, чтобы достать оттуда семейное фото" +msgstr "Взломать сейф и принести семейное семейное фото" #: lang/json/mission_def_from_json.py msgid "I need you to get my family photo from the armory safe." @@ -155222,7 +151353,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks, it's great to see someone willing to help a out." msgstr "" -"Спасибо большое. Это очень вдохновляет, видеть как кто-то хочет и может " +"Спасибо большое. Это очень вдохновляет - видеть как кто-то хочет и может " "помочь тебе." #: lang/json/mission_def_from_json.py @@ -155324,8 +151455,8 @@ msgid "" "Prove you're a survivor by surviving for 10 days after the Cataclysm, and " "then returning to the person who gave you this mission." msgstr "" -"Докажите, что вы выживальщик — продержитесь 10 дней после начала Катаклизма " -"и вернитесь к тому, кто дал вам это задание." +"Докажите, что умеете выживать — продержитесь 10 дней после начала Катаклизма" +" и вернитесь к тому, кто дал вам это задание." #: lang/json/mission_def_from_json.py msgid "It's hard to tell who actually has the skills to survive these days…" @@ -155364,7 +151495,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Well, you're not dead…yet." -msgstr "Ну, ты же не мёртв… Пока." +msgstr "Ну, ты же ещё дёргаешься… Пока что." #: lang/json/mission_def_from_json.py msgid "" @@ -155487,7 +151618,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Don't forget to tell me when you have them." -msgstr "Не забудь сказать, когда они у тебя будут." +msgstr "Не забудь сказать, когда раздобудешь соль." #: lang/json/mission_def_from_json.py msgid "It's okay, I can do without them. Just let me know if you reconsider." @@ -155497,19 +151628,17 @@ msgstr "Ничего, я могу и обойтись. Просто дай мн msgid "" "There's a lot of places to look. They are common in house kitchens, " "restaurants or grocery stores." -msgstr "" -"Можно найти в куче мест. Кухни домов, рестораны, продуктовые магазины." +msgstr "Соль много где есть. Кухни домов, рестораны, продуктовые магазины." #: lang/json/mission_def_from_json.py msgid "How is the search going? Have you found 'em?" -msgstr "Как продвигаются поиски? Нашёл их?" +msgstr "Как продвигаются поиски? Нашёл соль?" #: lang/json/mission_def_from_json.py msgid "" "I really apreciate your help. Don't worry, you won't leave empty-handed." msgstr "" -"Я действительно ценю твою помощь. Не волнуйся, я не отпущу тебя с пустыми " -"руками." +"Я очень ценю твою помощь. Не волнуйся, я не отпущу тебя с пустыми руками." #: lang/json/mission_def_from_json.py msgid "Don't worry about it, it's not that important." @@ -155556,7 +151685,7 @@ msgstr "Просто дай знать, если передумаешь." msgid "" "Glass jars are not that hard to find. I'd look for them in residental " "areas." -msgstr "Стеклянные банки не так уж сложно найти. Поищи в жилых районах." +msgstr "Стеклянные банки найти несложно. Поищи в жилых районах." #: lang/json/mission_def_from_json.py msgid "Have you found the jars?" @@ -155579,7 +151708,7 @@ msgstr "Маринад, ч.3" #. ~ Description for mission '{'str': 'Prickled Meals'}' #: lang/json/mission_def_from_json.py msgid "Find a butcher knife." -msgstr "Найти нож мясника." +msgstr "Найти разделочный нож." #: lang/json/mission_def_from_json.py msgid "I need something sharper." @@ -155624,11 +151753,11 @@ msgstr "Занят работой" #. ~ Description for mission '{'str': 'Busy While Work'}' #: lang/json/mission_def_from_json.py msgid "Find 3 mystery novels." -msgstr "Найти 3 мистических новеллы." +msgstr "Найти 3 мистических романа." #: lang/json/mission_def_from_json.py msgid "I'd like to read some mystery novels." -msgstr "Я бы хотел почитать мистические новеллы." +msgstr "Я бы хотел почитать мистические романы." #: lang/json/mission_def_from_json.py msgid "" @@ -155677,7 +151806,7 @@ msgstr "Растопка!" #. ~ Description for mission '{'str': 'Timber!'}' #: lang/json/mission_def_from_json.py msgid "Bring five logs." -msgstr "Принеси пять бревен." +msgstr "Принести пять бревен." #: lang/json/mission_def_from_json.py msgid "I need 5 logs for fences." @@ -155728,8 +151857,8 @@ msgid "" "Thanks for accepting this task. Otherwise I might kill a stranger for some " "oranges. Just kidding." msgstr "" -"Спасибо, что принял эту просьбу. Иначе, я мог бы убить незнакомца за " -"бутерброд. Ха-ха, шутка." +"Спасибо, что принял эту просьбу. Иначе, я мог бы убить незнакомца за пару " +"апельсинов. Шучу, конечно." #: lang/json/mission_def_from_json.py msgid "Find someone growing berries or an orchard." @@ -155737,7 +151866,7 @@ msgstr "Найди кого-нибудь, кто выращивает ягоды #: lang/json/mission_def_from_json.py msgid "Have you found the fruit?" -msgstr "Ты нашел фрукт?" +msgstr "Вышло найти плоды?" #: lang/json/mission_def_from_json.py msgid "Thank you for your help. Here's your reward." @@ -155776,9 +151905,9 @@ msgid "" "Thanks, we'll never be able to repay you, Here's a token of my gratitude, I " "made these suits for my family and always keep a few extra around." msgstr "" -"Спасибо, мы никогда не сможем тебе отплатить. Держи знак моей благодарности," -" я делаю такие костюмы для своей семьи и у меня всегда есть пара штук про " -"запас." +"Спасибо, мы никогда не сможем тебе отплатить. Держи, в знак моей " +"благодарности. Я делаю такие костюмы для своей семьи, и у меня всегда есть " +"пара штук про запас." #: lang/json/mission_def_from_json.py msgid "I don't feel saved…" @@ -155840,7 +151969,9 @@ msgstr "Крис не вернулся с последних поисков Ба #: lang/json/mission_def_from_json.py msgid "Can you go find my son and tell him to check in with us." -msgstr "Можешь найти моего сына и попросить вернуться к нам?" +msgstr "" +"Можешь найти моего сына и попросить показаться нам, чтобы мы знали, что он в" +" порядке?" #: lang/json/mission_def_from_json.py lang/json/mission_def_from_json.py #: lang/json/talk_topic_from_json.py @@ -155910,7 +152041,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "You ready?" -msgstr "Готов?" +msgstr "Начнём?" #: lang/json/mission_def_from_json.py msgid "" @@ -156022,8 +152153,8 @@ msgid "" "Thank you! Please hurry back! Take this cage so you have a chance of " "capturing one." msgstr "" -"Спасибо! Пожалуйста, поспеши! Возьми эту клетку, чтобы можно было поймать " -"одного." +"Спасибо! Пожалуйста, поспеши! Возьми эту клетку, чтобы можно было поймать в " +"нее кошку." #: lang/json/mission_def_from_json.py msgid "I didn't want to use chemicals on these rats." @@ -156332,7 +152463,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the book?" -msgstr "У тебя есть книга?" +msgstr "Нашлась книга?" #: lang/json/mission_def_from_json.py msgid "I appreciate it, this will make my life so much easier." @@ -156344,7 +152475,7 @@ msgstr "И где же книга…?" #: lang/json/mission_def_from_json.py msgid "At least you escaped with your life…" -msgstr "Ну, ты хотя бы ещё жив…" +msgstr "Ну, хотя бы тебя не сожрали…" #: lang/json/mission_def_from_json.py msgid "Find a copy of DIY Compendium" @@ -156393,7 +152524,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Good luck, the communications room shouldn't be far from here." -msgstr "Удачи, узел связи должен быть где-то недалеко от сюда." +msgstr "Удачи, узел связи должен быть где-то недалеко рядом." #: lang/json/mission_def_from_json.py msgid "" @@ -156499,7 +152630,7 @@ msgid "" "few weeks. The task is rather simple but the shelters offer us a place to " "redirect refugees until this vault can be secured. " msgstr "" -"Думаю, я бы смог использовать твои навыки ещё раз. В близлежащих " +"Думаю, я бы смог найти применение твоим навыки ещё раз. В близлежащих " "эвакуационных укрытиях должны быть небольшие передатчики. Если не " "отсоединить их от энергосистемы, они могут быстро выйти из строя в течение " "нескольких следующих недель. Задание достаточно простое, но тогда мы не " @@ -156524,7 +152655,7 @@ msgstr "Ну что, удалось разорвать соединение?" #: lang/json/mission_def_from_json.py msgid "We are good to go! The last of the gear is powering up now." -msgstr "Мы готовы идти! Последнее устройство уже заряжается." +msgstr "Все готово! Последнее устройство уже включается." #: lang/json/mission_def_from_json.py msgid "" @@ -156561,7 +152692,7 @@ msgstr "Удалось найти радиостанцию?" #: lang/json/mission_def_from_json.py msgid "That's one down." -msgstr "Один готов." +msgstr "Сделано." #: lang/json/mission_def_from_json.py msgid "" @@ -156590,7 +152721,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "I'll try and update the captain with any signals that I need investigated." -msgstr "Я попробую и доложу капитану результаты изученных сигналов." +msgstr "Я постараюсь докладывать капитану о сигналах, которые нужно изучить." #: lang/json/mission_def_from_json.py msgid "Reach Refugee Center" @@ -156632,7 +152763,7 @@ msgstr "Осторожно, он тоже это ищет." #: lang/json/mission_def_from_json.py msgid "Got the little ones yet?" -msgstr "У тебя есть маленькие?" +msgstr "Нашлись маленькие?" #: lang/json/mission_def_from_json.py msgid "Oh this is so great, so great!" @@ -156684,7 +152815,7 @@ msgid "" "got a little more on the list, but we're more than half there." msgstr "" "Десять коробок побольше, пожалуйста. Список не врёт. Ты так здорово " -"помогаешь. В списке ещё кое-что есть, но мы уже одолели более половины." +"помогаешь. В списке ещё кое-что есть, но мы уже сделали болmiе половины." #: lang/json/mission_def_from_json.py msgid "Any luck? Bigger ones?" @@ -156892,11 +153023,11 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Great! We'll be makin' music in no time!" -msgstr "Прекрасно! Мы немедленно начнём музыку!" +msgstr "Прекрасно! Наконец-то у нас появится музыка!" #: lang/json/mission_def_from_json.py msgid "Oh well. I understand your reluctancy… I guess." -msgstr "Эх, ну что ж. Я понимаю твою неохоту… Наверное." +msgstr "Эх, ну что ж. Я понимаю твое нежелание… Наверное." #: lang/json/mission_def_from_json.py msgid "" @@ -157052,8 +153183,8 @@ msgid "" "Now that I've got that motor, I can get my compressor mostly built. I will " "need a tank though." msgstr "" -"Теперь у меня есть мотор, и я могу почти закончить свой компрессор. Впрочем," -" мне понадобится бак." +"Теперь у меня есть мотор, и я могу практически доделать свой компрессор. " +"Впрочем, мне понадобится бак." #: lang/json/mission_def_from_json.py msgid "" @@ -157117,7 +153248,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks so much. It's a small thing but it'd be really helpful." -msgstr "Огромное спасибо. Штука простая, но очень нам поможет." +msgstr "Огромное спасибо. Вроде и мелочь, но очень нам поможет." #: lang/json/mission_def_from_json.py msgid "That's okay. I'm sure we'll make do somehow." @@ -157296,12 +153427,11 @@ msgid "" "Make a friend at the refugee center by handing over around five packs - 100 " "cigarettes." msgstr "" -"Обзаведитесь другом в центре беженцев в обмен на пять пачек сигарет (100 " -"штук)." +"Обзаведитесь другом в центре беженцев? отдав пять пачек сигарет (100 штук)." #: lang/json/mission_def_from_json.py msgid "Come on man, I just need a smoke." -msgstr "Да ладно, чувак, мне нужно курнуть." +msgstr "Ну же, чувак, мне нужно курнуть." #: lang/json/mission_def_from_json.py msgid "" @@ -157361,7 +153491,7 @@ msgid "" "which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" "Если ты и правда хочешь протянуть руку помощи, то нам бы не помешал кто-" -"нибудь для зачистки мертвецов в задней комнате. В первые дни Катаклизма мы " +"нибудь для зачистки задней комнаты от мертвецов. В первые дни Катаклизма мы " "боялись и нос высунуть отсюда, поэтому складывали наших мертвецов и зомби, " "которых нам удалось убить, в закрытую заднюю комнату. Наш многообещающий " "лидер тоже пал… Он превратился во что-то ужасное. Убей их всех и " @@ -157371,7 +153501,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." -msgstr "Пожалуйста, будь осторожен, нам не нужна лишняя смерть." +msgstr "Пожалуйста, будь осторожнее, нам не нужна еще и твоя смерть." #: lang/json/mission_def_from_json.py msgid "" @@ -157382,7 +153512,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "If you can, get a friend or two to help you." -msgstr "Если можете, попросите друга, а лучше двух, чтобы помочь вам." +msgstr "Если можете, приведите друга, а лучше двух, чтобы помочь вам." #: lang/json/mission_def_from_json.py msgid "Will they be bothering us any longer?" @@ -157395,7 +153525,7 @@ msgid "" "workers in exchange for supplies. They're getting some value in the center " "as a trade item, I'm afraid they're all we have to spare at the moment." msgstr "" -"Спасибо, такая-то угроза совсем рядом действовала на нервы. Вот тебе наши " +"Спасибо, такая угроза совсем рядом действовала на нервы. Вот тебе наши " "Сертифицированные Банкноты, мы платим ими рабочим в обмен на припасы. Они " "имеют ценность в центре как предмет торговли, я боюсь, пока это всё, чем мы " "можем заплатить." @@ -157412,7 +153542,7 @@ msgid "" " certified notes." msgstr "" "Обследуйте место, где в последний раз видели пропавший караван " -"выживальщиков, и устраните всех бандитов и налётчиков в зоне видимости в " +"выживальщиков, и устраните всех бандитов и налётчиков, каких там найдете, в " "обмен на сертифицированных банкнот." #: lang/json/mission_def_from_json.py @@ -157437,7 +153567,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." -msgstr "Наша община выживает за счёт торговли, мы понимаем это." +msgstr "Наша община выживает за счёт торговли, мы ценим это." #: lang/json/mission_def_from_json.py msgid "Have you dealt with them?" @@ -157461,7 +153591,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Retrieve Prospectus" -msgstr "Добыть проект" +msgstr "Доставить планы проекта" #. ~ Description for mission '{'str': 'Retrieve Prospectus'}' #: lang/json/mission_def_from_json.py @@ -157497,7 +153627,7 @@ msgstr "Просто следуйте по карте." #: lang/json/mission_def_from_json.py msgid "Do you have the prospectus?" -msgstr "У тебя есть проект?" +msgstr "Планы проекта у тебя?" #: lang/json/mission_def_from_json.py msgid "" @@ -157536,7 +153666,7 @@ msgstr "" "новых электрических систем… К несчастью, сейчас мы зависим от чего-то под " "названием РИТЭГ. Разумеется, мы не можем запускать обычные генераторы под " "землёй. У нас здоровенная плоская крыша, и нам бы пригодились солнечные " -"батареи, чтобы улучшить наши энергоресурсы. За, скажем, десять солнечных " +"батареи, чтобы улучшить наше энергоснабжение. За, скажем, десять солнечных " "панелей мы заплатим очень неплохо." #: lang/json/mission_def_from_json.py @@ -157568,7 +153698,7 @@ msgid "" " their food storage plans." msgstr "" "Принесите 100 полулитровых стеклянных банок, чтобы Свободные Торговцы могли " -"начать свои планы по заготовке консервированной еды." +"начать реализовывать свои планы по заготовке консервированной еды." #: lang/json/mission_def_from_json.py msgid "" @@ -157581,13 +153711,13 @@ msgid "" "to get us set for the winter. I'll pay you a premium rate if you can bring " "us around a hundred jars to get us started." msgstr "" -"Хотя нам удаётся добывать ежедневные продукты, мы едва сводим концы с " -"концами. Наших запасов едва хватит на пару дней, если нас отрежут взаперти. " -"Во избежание этого нам нужен запас. Благодаря нашему фермерскому поселению у" -" нас появились свежее мясо и овощи, но их надо как-то сохранить. Кое-кто из " -"наших людей разбирается в консервировании, так что нам нужны банки для " -"мясных и овощных консервов, чтобы подготовиться к зиме. Я отлично заплачу, " -"если ты принесёшь нам около сотни банок для начала." +"Хотя нам удаётся добывать еду на день, мы едва сводим концы с концами. Наших" +" запасов едва хватит на пару дней, если нас отрежут от мира. Во избежание " +"этого нам нужен запас. Благодаря нашему фермерскому поселению у нас " +"появились свежее мясо и овощи, но их надо как-то сохранить. Кое-кто из наших" +" людей разбирается в консервировании, так что нам нужны банки для мясных и " +"овощных консервов, чтобы подготовиться к зиме. Я отлично заплачу, если ты " +"принесёшь нам около сотни банок для начала." #: lang/json/mission_def_from_json.py msgid "" @@ -157626,8 +153756,9 @@ msgid "" "a hospital, and perform a centrifuge analysis of it." msgstr "" "У нас здесь нет подходящего оборудования для полноценного анализа, поэтому " -"это нужно сделать где-то в поле. Мне нужен кто-то, кто смог бы взять образец" -" крови зомби, пойти с ним в больницу и проанализировать на центрифуге." +"это нужно сделать где-то снаружи. Мне нужен кто-то, кто смог бы взять " +"образец крови зомби, пойти с ним в больницу и проанализировать на " +"центрифуге." #: lang/json/mission_def_from_json.py msgid "" @@ -157640,7 +153771,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Download Workstation Data" -msgstr "Скачать данные по рабочей станции" +msgstr "Скачать данные с рабочей станции" #: lang/json/mission_def_from_json.py msgid "" @@ -157672,8 +153803,8 @@ msgid "" "a USB drive." msgstr "" "Если лаборатория заблокирована, возможно, вы найдете идентификационную карту" -" от сотрудников, погибших при эвакуации. Также развивайте свои навыки работы" -" на компьютере, на всех компьютерах будет определенная защита. Принесите на " +" у сотрудников, погибших при эвакуации. Также развивайте свои навыки работы " +"на компьютере, на всех компьютерах будет определенная защита. Принесите на " "USB-накопителе всё, что удастся найти." #: lang/json/mission_def_from_json.py @@ -157689,7 +153820,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Download Encryption Codes" -msgstr "Загрузка Кодов Шифрования" +msgstr "Загрузка кодов шифрования" #: lang/json/mission_def_from_json.py msgid "" @@ -157730,7 +153861,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Download Research Archives" -msgstr "Загрузка Исследовательских Архивов" +msgstr "Загрузка исследовательских архивов" #: lang/json/mission_def_from_json.py msgid "" @@ -157763,16 +153894,16 @@ msgid "" "anything you find on a USB drive." msgstr "" "Эта лаборатория замерзает, и чем глубже вы продвинетесь, тем будет " -"холоднее. Чтобы там выжить, действительно потребуется специальное " -"снаряжение. Принесите на USB-накопителе всё, что удастся найти." +"холоднее. Чтобы там выжить, определенно потребуется специальное снаряжение. " +"Принесите на USB-накопителе всё, что удастся найти." #: lang/json/mission_def_from_json.py msgid "Thanks! This is a lot of data to go through." -msgstr "Спасибо! Это много данных, которые нужно изучить." +msgstr "Спасибо! Тут много данных, которые нужно изучить." #: lang/json/mission_def_from_json.py msgid "Find Lab Tunnels" -msgstr "Найти Лабораторные Туннели" +msgstr "Найти лабораторные туннели" #: lang/json/mission_def_from_json.py msgid "" @@ -157783,14 +153914,14 @@ msgid "" " the train network." msgstr "" "В данных мы нашли крупный контракт на оборудование для прокладки туннелей и " -"оснащения поездов, заказанный восемь месяцев назад. Это лучшее, что у нас " -"есть. Вот адрес правительственной лаборатории, куда было поставлено " -"оборудование. Я хочу, чтобы вы поехали туда, нашли туннели, которые они " -"вырыли, и скачали все возможное о сети поездов." +"оснащения поездов, заказанный восемь месяцев назад. Это наша лучшая зацепка." +" Вот адрес правительственной лаборатории, куда было поставлено оборудование." +" Я хочу, чтобы вы отправились туда, нашли туннели, которые они вырыли, и " +"скачали все возможное о сети туннелей." #: lang/json/mission_def_from_json.py msgid "So glad for your help." -msgstr "Рад вам помочь." +msgstr "Рад вашей помощи." #: lang/json/mission_def_from_json.py msgid "" @@ -157832,8 +153963,8 @@ msgid "" "potent." msgstr "" "Мне не помешает помощь с припасами. Коктейли Молотова хорошо поджигают дома," -" но не очень хороши для самозащиты. Если принесешь мне два мешка химического" -" удобрения, я смогу сделать кое-что намного более мощное." +" но не очень безопасны. Если принесешь мне два мешка химического удобрения, " +"я смогу сделать кое-что намного более мощное." #: lang/json/mission_def_from_json.py msgid "Oh man, thanks so much friend. You won't regret it." @@ -157885,8 +154016,8 @@ msgid "" " Ensure they meet a bitter end along with any associates, but watch out for" " traps around their hideout." msgstr "" -"Пара бандитов грабит местных жителей. Их логово в ближайшей хижине. " -"Убедитесь, что они и все их последователи нашли свою могилу, но берегитесь " +"Пара бандитов грабит местных жителей. Их логово в хижине неподалеку. " +"Убедитесь, что они и все их последователи нашли свою смерть, но опасайтесь " "ловушек вокруг их убежища." #: lang/json/mission_def_from_json.py @@ -157927,7 +154058,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Deal with Informant" -msgstr "Сделка с Информатором" +msgstr "Разобраться с информатором" #. ~ Description for mission '{'str': 'Deal with Informant'}' #: lang/json/mission_def_from_json.py @@ -157947,11 +154078,11 @@ msgid "" "else know of my suspicions. We normally allow the Free Merchants to govern " "themselves so I would hate to offend them." msgstr "" -"Эта задача потребует навыков переговорщика. Я думаю, что у Всадников Ада " -"здесь есть информатор, который отслеживает, кто приходит и уходит. Мне " -"нужно, чтобы вы выяснили, кто он такой, и разобрались с ним, но так, чтобы " -"никто не узнал о моих подозрениях. Вообще-то мы позволяем Свободным " -"Торговцам самим управляться, поэтому я бы не хотел обидеть их." +"Эта задача потребует навыков переговорщика. Я думаю, что у Адских налётчиков" +" здесь есть информатор, который отслеживает, кто приходит и уходит. Мне " +"нужно, чтобы вы выяснили, кто это, и разобрались с ним, но так, чтобы никто " +"не узнал о моих подозрениях. Вообще-то мы позволяем Свободным Торговцам " +"самим управляться, поэтому я бы не хотел обидеть их." #: lang/json/mission_def_from_json.py msgid "Thank you, please keep this discreet." @@ -157960,8 +154091,7 @@ msgstr "Благодарю, и, пожалуйста, держите это в #: lang/json/mission_def_from_json.py msgid "Come back when you get a chance, we could use a few good men." msgstr "" -"Вернитесь, когда появиться возможность, мы могли бы использовать несколько " -"хороших людей." +"Вернитесь, когда появится возможность, нам не помешают такие люди, как вы." #: lang/json/mission_def_from_json.py msgid "If they draw first blood their friends are less likely to blame you…" @@ -158030,7 +154160,7 @@ msgid "" "attacks on the Free Merchants. Pay them a visit and execute the area " "leadership." msgstr "" -"Старая Гвардия нашла лагерь Адских Налётчиков, в котором координируются " +"Старая Гвардия нашла лагерь Адских налётчиков, в котором координируются " "нападения на Свободных Торговцев. Загляните к ним и устраните главарей." #: lang/json/mission_def_from_json.py @@ -158101,13 +154231,13 @@ msgstr "" "пришло сообщение о переводе нового подразделения в зону наших действий. У " "меня нет точных координат, но известно, что они охраняют подземный комплекс " "и могут запросить поддержку. Их высадили возле насосной станции. Больше " -"особо нечего сказать. Найдите их командующего капитана, ему пригодятся ваши " -"навыки. Не забудьте надеть свой значок перед встречей с ними. И ещё раз " -"спасибо вам, маршал." +"особо нечего сказать. Найдите их капитана, ему пригодятся ваши навыки. Не " +"забудьте надеть свой значок перед встречей с ними. И ещё раз спасибо вам, " +"маршал." #: lang/json/mission_def_from_json.py msgid "Return Field Data" -msgstr "Вернуть полевые данные" +msgstr "Доставить полевые данные" #. ~ Description for mission '{'str': 'Return Field Data'}' #: lang/json/mission_def_from_json.py @@ -158149,7 +154279,7 @@ msgid "" "those to disable the robot." msgstr "" "Если робот всё ещё функционирует, не пытайся уничтожить его в лоб, потому " -"что он СПОСОБЕН убить тебя. Доктор Прадо ушла из Центра с несколькими " +"что он ТОЧНО убьёт тебя. Доктор Прадо ушла из Центра с несколькими " "электромагнитными гранатами, выключи робота с их помощью." #: lang/json/mission_def_from_json.py @@ -158170,7 +154300,7 @@ msgstr "Просто бесполезно…" #: lang/json/mission_def_from_json.py msgid "Steal a dead man's mind" -msgstr "Укради мысли мертвеца" +msgstr "Украсть мысли мертвеца" #. ~ Description for mission '{'str': "Steal a dead man's mind"}' #: lang/json/mission_def_from_json.py @@ -158212,7 +154342,7 @@ msgid "" "Yes, we recognize that our request is exceptional. Return if you change " "your mind." msgstr "" -"Да, мы понимаем, что просим что-то исключительное. Возвращайся, если " +"Да, мы понимаем, что просим нечто исключительное. Возвращайся, если " "передумаешь." #: lang/json/mission_def_from_json.py @@ -158227,7 +154357,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the scan?" -msgstr "У тебя есть копия?" +msgstr "Получилось сделать копию памяти?" #: lang/json/mission_def_from_json.py msgid "You have our thanks and payment." @@ -158260,7 +154390,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "We expect your success, mercenary." -msgstr "Мы ожидаем твоих успехов, наёмник." +msgstr "Мы ожидаем твоего успеха, наёмник." #: lang/json/mission_def_from_json.py msgid "Return if you change your mind." @@ -158284,7 +154414,7 @@ msgstr "Удалось ли вернуть чертежи?" #: lang/json/mission_def_from_json.py msgid "Retrieve chunks of gold" -msgstr "Принести кусочки золота" +msgstr "Принести золото" #. ~ Description for mission '{'str': 'Retrieve chunks of gold'}' #: lang/json/mission_def_from_json.py @@ -158317,7 +154447,7 @@ msgstr "Загляни в банки и инкассаторские машин #: lang/json/mission_def_from_json.py msgid "You got that gold yet?" -msgstr "Нашёл золото?" +msgstr "Нашлось золото?" #: lang/json/mission_def_from_json.py msgid "I appreciate it, here's your pay." @@ -158383,8 +154513,8 @@ msgid "" "fresh yeast for us to use? I'd need about 20 teaspoons of dry yeast to get " "started." msgstr "" -"Последняя сваренная партия была ужасной. Я больше, чем уверен что, что-то не" -" то с нашими дрожжами. Ты не мог бы найти запас свежих дрожжей для нас? Мне " +"Последняя сваренная партия была ужасной. Я абсолютно уверен, что что-то не " +"то с нашими дрожжами. Ты не мог бы найти запас свежих дрожжей для нас? Мне " "нужно примерно 20 чайных ложек, чтобы начать." #: lang/json/mission_def_from_json.py @@ -158393,15 +154523,15 @@ msgstr "Благодарю за помощь." #: lang/json/mission_def_from_json.py msgid "Yeast should be common in homes or bakeries." -msgstr "Дрожжи распространены в домах или пекарнях." +msgstr "Дрожжи наверняка есть в домах или пекарнях." #: lang/json/mission_def_from_json.py msgid "Do you have the yeast?" -msgstr "У тебя есть дрожжи?" +msgstr "Нашлись дрожжи?" #: lang/json/mission_def_from_json.py msgid "Find 10 Sugar Beet Seeds" -msgstr "Найти 10 семян Сахарной свёклы" +msgstr "Найти 10 семян сахарной свёклы" #: lang/json/mission_def_from_json.py msgid "" @@ -158412,11 +154542,11 @@ msgid "" "least enough seeds to plant a small 10 meter long patch?" msgstr "" "Сахар и патока остаются в дефиците. Я сделал запрос на поставку, но это " -"маловероятно, что найдётся надёжный источник в течение некоторого времени. " -"Если тебе интересно, то нам понадобятся семена сахарной свеклы для " -"удовлетворения будущего спроса, независимо от того, что смогут найти " -"добытчики. Не мог бы ты принести мне достаточно семян, чтобы засадить по " -"крайней мере небольшой 10-метровый участок?" +"маловероятно, что найдётся надёжный источник в ближайшее время. Если тебе " +"интересно, нам нужны семена сахарной свеклы для удовлетворения будущего " +"спроса, независимо от того, что смогут найти добытчики. Не мог бы ты " +"принести мне достаточно семян, чтобы засадить по крайней мере небольшой " +"10-метровый участок?" #: lang/json/mission_def_from_json.py msgid "Farms or supply stores might have a few seeds…" @@ -158444,15 +154574,15 @@ msgstr "" "на время падения спроса. Я в состоянии найти несколько добровольцев, чтобы " "помочь мне построить стойку для резервуаров, но мне ещё нужно 12 " "металлических шестидесятилитровых баков для этого. Я разговаривал с " -"ломовиками, но мы у них не в почёте на данный момент." +"ломовиками, но у них есть более срочные задачи на данный момент." #: lang/json/mission_def_from_json.py msgid "Scrapping vehicles might be your best bet." -msgstr "Слом транспортных средств может быть вашим лучшим выбором." +msgstr "Снять их с автомобилей будет проще всего." #: lang/json/mission_def_from_json.py msgid "Do you have the metal tanks?" -msgstr "Ты нашёл металлические баки?" +msgstr "Нашлись металлические баки?" #: lang/json/mission_def_from_json.py msgid "Find 2 200-Liter Drums" @@ -158576,8 +154706,8 @@ msgid "" "Deconstructing furniture isn't going to be efficient, try looking for boxes " "or grabbing any sitting on top of rubble piles." msgstr "" -"Разборка мебели не будет эффективной, попробуй поискать контейнеры или взять" -" что-нибудь на куче камней." +"Разборка мебели не будет эффективной, попробуй поискать контейнеры или " +"поискать на руинах зданий." #: lang/json/mission_def_from_json.py msgid "Gather 300 Salt" @@ -158618,7 +154748,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "If you can find a source of salt water you should be able to boil it down." -msgstr "Если вы найдёте источник солёной воды, вы сможете выпарить её." +msgstr "Если найдёшь источник солёной воды, сможеim выпарить её." #: lang/json/mission_def_from_json.py msgid "Do you have the salt?" @@ -158644,8 +154774,8 @@ msgstr "" "Хорошо, наш первый урожай будет посажен в ближайшее время, но я начинаю " "подозревать, что наш урожай будет намного меньше, чем мы ожидаем. В связи с " "тем, что семян у нас мало, мы планируем увеличить плодородие почвы. Можешь " -"ли ты найти или создать Жидкое Удобрение для нас? Нам нужно по крайней мере " -"30 единиц, чтобы значительно повысить урожайность." +"ли ты найти или изготовить для нас жидкое удобрение? Нам нужно по крайней " +"мере 30 единиц, чтобы действительно повысить урожайность." #: lang/json/mission_def_from_json.py msgid "" @@ -158665,7 +154795,7 @@ msgstr "У тебя есть жидкое удобрение?" #: lang/json/mission_def_from_json.py msgid "This really should make the first winter easier to survive." -msgstr "Это действительно поможет нам пережить первую зиму." +msgstr "Это очень поможет нам пережить первую зиму." #: lang/json/mission_def_from_json.py msgid "Gather 75 Rocks" @@ -158696,8 +154826,7 @@ msgstr "" msgid "" "If you take a shovel to a pile of rubble you should be able to pull out " "structural grade stone." -msgstr "" -"Разгребая кучи щебня лопатой, можно найти камни с подходящей структурой." +msgstr "Разгребая кучи щебня лопатой, можно найти камни подходящей формы." #: lang/json/mission_def_from_json.py msgid "I appreciate the work you do." @@ -158716,10 +154845,10 @@ msgid "" "pipes, if you so have the chance." msgstr "" "Для изготовления ручного насоса для колодца и производства компонентов для " -"других наших проектов, мы должны найти или изготовить некоторое количество " +"других наших проектов мы должны найти или изготовить некоторое количество " "стальных труб. Водопровод пока находится в отдалённой перспективе, но что-то" " вроде искусственного орошения в конечном итоге станет возможным. Вы могли " -"бы помочь нам с заготовкой 50ти стальных труб, если у вас есть такая " +"бы помочь нам с заготовкой пятидесяти стальных труб, если у вас есть такая " "возможность." #: lang/json/mission_def_from_json.py @@ -158735,8 +154864,8 @@ msgid "" "Pipes are used in numerous metal constructions. Smashing abandoned " "furniture may provide the material we need." msgstr "" -"Трубы используются во множестве металлических конструкциях. При разламывании" -" брошенной мебели можно получить нужные нам материалы." +"Трубы используются во множестве металлических конструкций. Сломав брошенную " +"мебель, можно получить нужные нам материалы." #: lang/json/mission_def_from_json.py msgid "Do you have the pipes?" @@ -158774,7 +154903,7 @@ msgstr "У тебя есть моторы?" #: lang/json/mission_def_from_json.py msgid "Gather 150 Bleach" -msgstr "Собрать 150 отбеливателя" +msgstr "Принести 150 ед. отбеливателя" #: lang/json/mission_def_from_json.py msgid "" @@ -158785,10 +154914,10 @@ msgid "" "would be the first step I imagine. Bring me 5 gallon jugs of bleach so we " "can get started." msgstr "" -"Болезни и инфекции остаются существенной проблемой среди беженцев. Без " -"опытного медицинского персонала и оборудования, я сомневаюсь, что мы сможем " -"удержать здесь кого-либо, когда случится очередная эпидемия. Пока у нас нет " -"бывшего врача или медсестры, мне приходится импровизировать. Обеспечение " +"Болезни и инфекции остаются серьезной проблемой для беженцев. Я сомневаюсь, " +"что без опытного медицинского персонала и оборудования мы сможем удержать " +"здесь кого-либо, когда случится очередная эпидемия. Пока у нас нет бывшего " +"врача или медсестры, мне приходится импровизировать. Обеспечение " "стерильности станет первым шагом, я полагаю. Принеси мне 5 галлонов " "отбеливателя, и мы начнём." @@ -158814,7 +154943,7 @@ msgstr "Я ценю это." #: lang/json/mission_def_from_json.py msgid "Gather 6 First Aid Kits" -msgstr "Собрать 6 аптечек" +msgstr "Принести 6 аптечек" #: lang/json/mission_def_from_json.py msgid "" @@ -158892,11 +155021,12 @@ msgid "" "charging and powering our equipment. The good news is that they don't need " "to be charged, we can take care of that." msgstr "" -"У нас есть основное оборудование, но электросеть не работает, и нам придётся" -" положиться на доступные автоаккумуляторы. Работёнка предстоит нелёгкая, но " -"мне нужно двенадцать автоаккумуляторов, чтобы запитать наше оборудование и " -"менять батареи для перезарядки. Хорошая новость — аккумуляторы необязательно" -" приносить заряженными, мы можем позаботиться об этом сами." +"У нас есть большая часть нужного оборудования, но электросеть не работает, и" +" нам придётся положиться на доступные автоаккумуляторы. Работёнка предстоит " +"нелёгкая, но мне нужно двенадцать автоаккумуляторов, чтобы запитать наше " +"оборудование и менять батареи для перезарядки. Хорошая новость — " +"аккумуляторы необязательно приносить заряженными, мы можем позаботиться об " +"этом сами." #: lang/json/mission_def_from_json.py msgid "I'm counting on you." @@ -158907,8 +155037,8 @@ msgid "" "Cars can be found in traffic jams along roads or in parking lots… I'm sure " "you can find a few." msgstr "" -"Машин полно в пробках на дорогах или на автомобильных стоянках… Я уверен, ты" -" найдёшь их." +"Машин полно в пробках на дорогах или на автомобильных стоянках… Я уверен, " +"несколько найдется." #: lang/json/mission_def_from_json.py msgid "Do you have the car batteries?" @@ -158964,7 +155094,7 @@ msgstr "Уверен, добытчики найдут это полезным." #: lang/json/mission_def_from_json.py msgid "Gather 5 Backpacks" -msgstr "Собрать 5 рюкзаков" +msgstr "Принести 5 рюкзаков" #: lang/json/mission_def_from_json.py msgid "" @@ -158997,7 +155127,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Find Homebrewer's Bible" -msgstr "Найти Библию Пивовара" +msgstr "Принести «Библию Пивовара»" #: lang/json/mission_def_from_json.py msgid "" @@ -159013,13 +155143,13 @@ msgid "" msgstr "" "Темпы развития стали замедляться в последнее время. Новые люди постоянно " "приходят на наш аванпост, но перспектива непосильного труда гонит их прочь. " -"Мы поспрашивали вокруг и решили, что несмотря на все наши насущные " -"потребности, строительство бара должно привлечь некоторых самоотверженных " -"людей к заставе. В отличие от других населённых пунктов, чем больше рук у " -"нас будет, тем больше пищи, мы сможем производить… По крайней мере, в " -"долгосрочной перспективе. К сожалению, никто здесь раньше не варил " -"алкогольные напитки, поэтому нам нужно, чтобы ты нашёл книгу под названием " -"«Библия пивовара» или что-то вроде того." +"Мы поспрашивали и решили, что несмотря на все наши насущные потребности, " +"строительство бара должно привлечь некоторых менее работящих людей к " +"заставе. В отличие от других населённых пунктов, чем больше рук у нас будет," +" тем больше пищи, мы сможем производить… По крайней мере, в долгосрочной " +"перспективе. К сожалению, никто здесь раньше не варил алкогольные напитки, " +"поэтому нам нужно, чтобы ты нашёл книгу под названием «Библия пивовара» или " +"что-то вроде того." #: lang/json/mission_def_from_json.py msgid "I guess you should search homes or libraries?" @@ -159032,7 +155162,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Gather 80 Sugar" -msgstr "Собрать 80 сахара" +msgstr "Принести 80 ед. сахара" #: lang/json/mission_def_from_json.py msgid "" @@ -159046,9 +155176,9 @@ msgstr "" "большинства алкогольных напитков, которого нам будет не хватать, это сахар. " "Сколько бы алкоголя мы ни нашли, нам все равно не хватит этого, чтобы " "продержаться достаточно долго. Поэтому запуск первой большой партии является" -" для нас первостепенной задачей. Если бы ты смог достать 80 единиц сахара, " -"этого количества хватило бы до тех пор, пока мы бы не поставили собственное " -"производство на постоянную основу." +" для нас первостепенной задачей. Если тебе удастся достать 80 единиц сахара," +" этого количества хватило бы до тех пор, пока мы бы не поставили собственное" +" производство на постоянную основу." #: lang/json/mission_def_from_json.py msgid "" @@ -159067,12 +155197,12 @@ msgid "" "There is a large group of thirsty individuals in our outpost that are truly " "thankful for your work." msgstr "" -"Огромная группа жаждущих выпить людей нашей заставы от всей души благодарит " -"тебя." +"Огромная группа жаждущих выпить людей на нашей заставе от всей души " +"благодарит тебя." #: lang/json/mission_def_from_json.py msgid "Collect 30 Glass Sheets" -msgstr "Собрать 30 листов стекла" +msgstr "Принести 30 листов стекла" #: lang/json/mission_def_from_json.py msgid "" @@ -159084,12 +155214,12 @@ msgid "" " The first house will need 30 sheets of glass if you are still interested." msgstr "" "Несмотря на то, что наш аванпост является земледельческим, мы можем " -"выращивать лишь те растения, которые подходят к климату Новой Англии в " -"тёплые месяцы. Самый простой способ обойти это ограничение — строить теплицы" -" в дополнение к нашим внешним полям. Это будет непростой задачей, поэтому " -"нам потребуются большие количества листового стекла для покрытия каркаса. " -"Для первой теплицы потребуется 30 листов стекла, если вы всё ещё " -"заинтересованны в этом." +"выращивать лишь те растения, которые растут в климате Новой Англии в тёплые " +"месяцы. Самый простой способ обойти это ограничение — строить теплицы в " +"дополнение к нашим внешним полям. Это будет непростой задачей, поэтому нам " +"потребуется большое количество листового стекла для покрытия каркаса. Для " +"первой теплицы потребуется 30 листов стекла, если вы всё ещё заинтересованны" +" в этом." #: lang/json/mission_def_from_json.py msgid "" @@ -159110,7 +155240,7 @@ msgstr "Мы начнём наши первые посадки сразу, ка #: lang/json/mission_def_from_json.py msgid "Collect 100 Aspirin" -msgstr "Собрать 100 аспирина" +msgstr "Принести 100 таблеток аспирина" #: lang/json/mission_def_from_json.py msgid "" @@ -159138,11 +155268,11 @@ msgstr "У тебя есть аспирин?" #: lang/json/mission_def_from_json.py msgid "We'll go through this pretty quickly but it does help." -msgstr "Мы пройдем через это довольно быстро, но это поможет." +msgstr "Мы употребим этот аспирин довольно быстро, но это очень помогло." #: lang/json/mission_def_from_json.py msgid "Collect 3 Hotplates" -msgstr "Собрать 3 электроплитки" +msgstr "Принести 3 электроплитки" #: lang/json/mission_def_from_json.py msgid "" @@ -159163,11 +155293,11 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the hotplates?" -msgstr "У тебя есть электроплитки?" +msgstr "У вас есть электроплитки?" #: lang/json/mission_def_from_json.py msgid "Collect 200 Multivitamin Pills" -msgstr "Собрать 200 мультивитаминов" +msgstr "Принести 200 таблеток мультивитаминов" #: lang/json/mission_def_from_json.py msgid "" @@ -159179,12 +155309,12 @@ msgid "" "able to treat the most vulnerable before they spread anything to the rest of" " us." msgstr "" -"Болезнь быстро распространяется из-за плохого питания, и я мало что могу поделать с этим. Когда не хватает еды, люди пытаются выжить во что бы это им встало. Мне нужно начать пополнение рациона заставы витаминами, чтобы избежать возможных смертей, в основе которых лежит скудное питание.\n" -"Я знаю, что это много, но не могли вы принести мне 200 таблеток витаминов, благодаря которым можно было укрепить иммунитет наиболее уязвимых, пока они не начали разносить болезни среди остальных." +"Болезни быстро распространяются из-за плохого питания, и я мало что могу поделать с этим. Когда не хватает еды, люди пытаются выжить во что бы это им встало. Мне нужно начать пополнение рациона заставы витаминами, чтобы избежать смертей из-за скудного питания.\n" +"Я знаю, что много прошу, но не могли вы принести мне 200 таблеток витаминов, благодаря которым можно было укрепить иммунитет наиболее уязвимых, пока они не начали разносить болезни среди остальных." #: lang/json/mission_def_from_json.py msgid "Do you have the vitamins?" -msgstr "У тебя есть витамины?" +msgstr "У вас есть витамины?" #: lang/json/mission_def_from_json.py msgid "Make 4 Charcoal Purifiers" @@ -159212,11 +155342,11 @@ msgstr "Зная основы выживания и производства, в #: lang/json/mission_def_from_json.py msgid "Do you have the charcoal water filters?" -msgstr "У тебя есть угольные водяные фильтры?" +msgstr "У тебя есть угольные водоочистители?" #: lang/json/mission_def_from_json.py msgid "Find a Chemistry Set" -msgstr "Найти набор химика" +msgstr "Принести набор химика" #: lang/json/mission_def_from_json.py msgid "" @@ -159226,9 +155356,9 @@ msgid "" "steal me a chemistry set?" msgstr "" "Я работаю над производством некоторых медицинских препаратов, но мне не " -"хватает примитивного оборудования для упорядоченного получения всего " -"необходимого. Возможно ли это, чтобы вы сходили в одну из школьных " -"лабораторий и украли для меня там набор химика?" +"хватает оборудования для создания всего необходимого. Возможно ли это, чтобы" +" вы сходили в одну из школьных лабораторий и украли для меня там набор " +"химика?" #: lang/json/mission_def_from_json.py msgid "" @@ -159237,11 +155367,11 @@ msgstr "Возможно такой найдётся в аптеке, если #: lang/json/mission_def_from_json.py msgid "Do you have the chemistry set?" -msgstr "У тебя есть набор химика?" +msgstr "У вас есть набор химика?" #: lang/json/mission_def_from_json.py msgid "Find 10 Filter Masks" -msgstr "Найти 10 респираторов" +msgstr "Принести 10 респираторов" #: lang/json/mission_def_from_json.py msgid "" @@ -159249,13 +155379,13 @@ msgid "" "depleted my supply of masks. Could you find me 10 filter masks? I tend to " "only distribute them in severe cases so I'll be sure to make them last." msgstr "" -"Количество случаев воздушно-капельных инфекций на прошлой неделе исчерпало " -"мой запас масок. Не могли бы вы найти мне 10 респираторов? Я намереваюсь " +"Число случаев воздушно-капельных инфекций на прошлой неделе исчерпало мой " +"запас масок. Не могли бы вы найти мне 10 респираторов? Я намереваюсь " "раздавать их только в тяжёлых случаях, чтобы их хватило надолго." #: lang/json/mission_def_from_json.py msgid "You may be able to make one if you had the right guide." -msgstr "Можно изготовить самому с помощью нужного пособия." +msgstr "Можно изготовить самому с помощью правильной инструкции." #: lang/json/mission_def_from_json.py msgid "Do you have the filter masks?" @@ -159283,11 +155413,11 @@ msgstr "Такие должны быть в шкафах уборщиков." #: lang/json/mission_def_from_json.py msgid "Do you have the rubber gloves?" -msgstr "У тебя есть резиновые перчатки?" +msgstr "У вас есть резиновые перчатки?" #: lang/json/mission_def_from_json.py msgid "Find 2 Scalpels" -msgstr "Найти 2 скальпеля" +msgstr "Принести 2 скальпеля" #: lang/json/mission_def_from_json.py msgid "" @@ -159307,7 +155437,7 @@ msgstr "В больницах и на прилавках с инструмент #: lang/json/mission_def_from_json.py msgid "Do you have the scalpels?" -msgstr "У тебя есть скальпели?" +msgstr "Вы достали скальпели?" #: lang/json/mission_def_from_json.py msgid "Find Advanced Emergency Care" @@ -159320,7 +155450,7 @@ msgid "" " familiar with but I believe I could make if I could get a copy of the book." msgstr "" "Вы никогда не слышали о книге под названием «Руководство по продвинутой " -"первой помощи». Мне очень нужен экземпляр. Я не всегда могу точно " +"первой помощи»? Мне очень нужен экземпляр. Я не всегда могу точно " "разобраться в запросах доктора, но я чувствую, будь у меня эта книга, таких " "проблем бы не возникало." @@ -159330,11 +155460,11 @@ msgstr "Библиотеки, это все что мне приходит на #: lang/json/mission_def_from_json.py msgid "Do you have the Guide to Advanced Emergency Care?" -msgstr "У вас есть «Руководство по продвинутой первой помощи»?" +msgstr "Вы нашли «Руководство по продвинутой первой помощи»?" #: lang/json/mission_def_from_json.py msgid "Find a Flu Shot" -msgstr "Найти прививку от гриппа" +msgstr "Принести прививку от гриппа" #: lang/json/mission_def_from_json.py msgid "" @@ -159356,11 +155486,11 @@ msgstr "В больницах и поликлиниках должны оста #: lang/json/mission_def_from_json.py msgid "Do you have the flu shot?" -msgstr "У тебя есть вакцина от гриппа?" +msgstr "Вы принесли вакцину от гриппа?" #: lang/json/mission_def_from_json.py msgid "Find 10 Syringes" -msgstr "Найти 10 шприцов" +msgstr "Принести 10 шприцов" #: lang/json/mission_def_from_json.py msgid "" @@ -159370,9 +155500,9 @@ msgid "" "infections." msgstr "" "Мы начали выделение нескольких натуральных антибиотических сывороток, но мы " -"не располагаем средствами доставки лекарства пациентам. Для этого мне нужно," -" чтобы вы принесли мне 10 пустых шприцов. Я позабочусь об их дальнейшей " -"очистке от передаваемых инфекций." +"не располагаем средствами для введения лекарства пациентам. Для этого мне " +"нужно, чтобы вы принесли мне 10 пустых шприцов. Я позабочусь об их " +"дальнейшей очистке от передаваемых инфекций." #: lang/json/mission_def_from_json.py msgid "Hospitals or clinics might have a few sitting around." @@ -159380,7 +155510,7 @@ msgstr "Больницы и медклиники располагают таки #: lang/json/mission_def_from_json.py msgid "Do you have the empty syringes?" -msgstr "У тебя есть пустые шприцы?" +msgstr "Вы нашли шприцы?" #: lang/json/mission_def_from_json.py msgid "Make 12 Knife Spears" @@ -159397,9 +155527,9 @@ msgstr "" "Я всегда могу использовать лишнее снаряжение, чтобы экипировать новобранцев." " Основное оружие, которое получает каждый, — это копьё с наконечником… Оно " "обладает хорошими показателями дальности, урона и простоты использования, " -"если дело касается более менее обычных монстров. Тебе не сложно будет " -"сделать дюжину таких для меня? Может быть, потом мне понадобится ещё, но " -"пока хватит и этого на первое время." +"если дело касается более менее обычных монстров. Вам не сложно будет сделать" +" дюжину таких для меня? Может быть, потом мне понадобится ещё, но пока " +"хватит и этого на первое время." #: lang/json/mission_def_from_json.py msgid "You should be able to make them with the most basic of skills." @@ -159407,7 +155537,7 @@ msgstr "Знание основ большинства навыков помож #: lang/json/mission_def_from_json.py msgid "Do you have the knife spears?" -msgstr "У тебя есть копья с наконечником?" +msgstr "Вы принесли копья с наконечником?" #: lang/json/mission_def_from_json.py msgid "Make 5 Wearable Flashlights" @@ -159421,17 +155551,17 @@ msgid "" "combat." msgstr "" "Ночь — это идеальное время для моей команды, чтобы пойти в рейд, но им нужны" -" более продвинутые источники света для ускорения выполнения заданий. " -"Изготовишь для меня партию из пяти налобных фонарей? Две свободные руки не " +" более подходящие источники света для ускорения выполнения заданий. " +"Изготовите для меня партию из пяти налобных фонарей? Две свободные руки не " "бывают лишними в бою." #: lang/json/mission_def_from_json.py msgid "Do you have the wearable flashlights?" -msgstr "У тебя есть налобные фонарики?" +msgstr "Вы сделали налобные фонарики?" #: lang/json/mission_def_from_json.py msgid "Make 3 Leather Body Armor" -msgstr "Сделать 3 кожаных брони для туловища" +msgstr "Сделать 3 кожаных брони" #: lang/json/mission_def_from_json.py msgid "" @@ -159442,11 +155572,11 @@ msgid "" "armor? The life-expectancy of my scavengers would drastically increase if " "you did." msgstr "" -"Одежда, которая может выдержать прохождения через окна и бои с дикими " -"животными, пользуется большим спросом. Самое лучшее, что мы смогли найти это" -" кожаный бронежилет, но с нашими ограниченными ресурсами его не изготовишь. " -"Три пары кожаной брони резко увеличат продолжительность жизни моих " -"добытчиков, если ты их, конечно, изготовишь." +"Одежда, которая может выдержать прохождение через окна и бои с дикими " +"животными, пользуется большим спросом. Самое лучшее, что мы смогли найти - " +"это кожаный бронежилет, но с нашими ограниченными ресурсами его не " +"изготовишь. Три набора кожаной брони резко увеличат продолжительность жизни " +"моих добытчиков, если ты их, конечно, изготовишь." #: lang/json/mission_def_from_json.py msgid "" @@ -159455,7 +155585,7 @@ msgstr "Проще найти кожу в городе, чем делать са #: lang/json/mission_def_from_json.py msgid "Do you have the leather armor?" -msgstr "У тебя есть кожаная броня?" +msgstr "У тебя вышло изготовить кожаную броню?" #: lang/json/mission_def_from_json.py msgid "Make 12 Molotov Cocktails" @@ -159469,10 +155599,10 @@ msgid "" "willing to make us a dozen? I'm willing to pay you what I can for your " "assistance. " msgstr "" -"При меньшинстве или вынужденном отступлении мы бросаем коктейли Молотова, " -"чтобы отвадить монстров от дальнейшего преследования. У нас всегда есть один" -" или два в запасе, но их не всегда достаточно. Не желаешь ли изготовить " -"дюжину для нас? Я готов заплатить за них, сколько смогу." +"Когда врагов слишком много или вынужденном отступлении мы бросаем коктейли " +"Молотова, чтобы отвадить монстров от дальнейшего преследования. У нас всегда" +" есть один или два в запасе, но их не всегда достаточно. Не желаешь ли " +"изготовить дюжину для нас? Я готов заплатить за них, сколько смогу." #: lang/json/mission_def_from_json.py msgid "" @@ -159520,15 +155650,15 @@ msgstr "Хлеб" #. ~ Description for mission 'Bread' #: lang/json/mission_def_from_json.py msgid "Find 50 flour." -msgstr "Найди 50 муки." +msgstr "Найти 50 ед. муки." #: lang/json/mission_def_from_json.py msgid "I need 50 flour." -msgstr "Мне нужно 50 муки." +msgstr "Мне нужно 50 ед. муки." #: lang/json/mission_def_from_json.py msgid "Flour would let me break the monotony of fruit and meats." -msgstr "Мука позволила бы мне разбавить однообразие из фруктов и мяса." +msgstr "Мука позволила бы мне разбавить однообразное меню из плодов и мяса." #: lang/json/mission_def_from_json.py msgid "" @@ -159548,7 +155678,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Have you found the flour?" -msgstr "Ты нашел муку?" +msgstr "Тебе удалось найти муку?" #: lang/json/mission_def_from_json.py msgid "Gallon Jugs" @@ -159569,16 +155699,16 @@ msgid "" " and some into alcohol. I need easy containers to load it on the caravan." msgstr "" "Каждый сезон мы производим очень много фруктов. Из части мы делаем сок, а из" -" другой части алкоголь. Мне нужны легкие ёмкости, чтобы отправлять это " +" другой части алкоголь. Мне нужны легкие ёмкости, чтобы отправлять их с " "караваном." #: lang/json/mission_def_from_json.py msgid "Thank you for accepting. I'm almost out after the last caravan." -msgstr "Спасибо, за помощь. А то я почти весь выдохся на последнем караване." +msgstr "Спасибо за помощь. А то я почти весь выдохся на последнем караване." #: lang/json/mission_def_from_json.py msgid "I guess I'll have to make stomach waterskins." -msgstr "Наверное, мне придётся делать ёмкости из желудков." +msgstr "Наверное, мне придётся делать бурдюки из желудков." #: lang/json/mission_def_from_json.py msgid "" @@ -159587,12 +155717,12 @@ msgstr "Бутылки по 4.5 литра не так уж и редки. Он #: lang/json/mission_def_from_json.py msgid "Do you have those jugs now?" -msgstr "Принес бутылки?" +msgstr "Есть нужные бутылки?" #: lang/json/mission_def_from_json.py msgid "I am grateful for the help you've done. I have one more task to do." msgstr "" -"Я благодарен за помощь, которую ты оказал. У меня есть ещё одно задание." +"Я благодарен за помощь, которую ты оказываешь. У меня есть ещё одно задание." #: lang/json/mission_def_from_json.py msgid "Burnt Out CBMs" @@ -159632,7 +155762,7 @@ msgstr "Учёные-зомби, техники, шокеры-зомби. Это #: lang/json/mission_def_from_json.py msgid "Do you have those CBMs now?" -msgstr "Принёс КБМ?" +msgstr "Нашлись КБМ?" #: lang/json/mission_def_from_json.py msgid "" @@ -159785,12 +155915,12 @@ msgid "" "If you can't make it yourself go hit up a government lab. Be prepared for " "anything in there." msgstr "" -"Если не можешь сделать сам, поищи в правительственных лабораториях. Но там " -"стоит быть готовым к чему угодно." +"Если не можешь изготовить самостоятельно, поищи в правительственных " +"лабораториях. Но там стоит быть готовым к чему угодно." #: lang/json/mission_def_from_json.py msgid "Mutagen? Why are you in front of me if not?" -msgstr "Мутаген? Почему ты тут, если нет?" +msgstr "Есть мутаген? Почему ты тут, если нет?" #: lang/json/mission_def_from_json.py msgid "I've got something more potent for you this time." @@ -159852,8 +155982,8 @@ msgstr "Они иногда разговаривают. Любопытно, мо #: lang/json/mission_def_from_json.py msgid "Let's see what improvements we can divine from these beauties." msgstr "" -"Давай посмотрим, какие улучшения удастся угадать с этими прекрасными " -"созданиями." +"Давай посмотрим, какие улучшения удастся извлечь из этих прекрасных " +"созданий." #: lang/json/mission_def_from_json.py msgid "I can't be Dr Frankenstein unless you get me these." @@ -160059,7 +156189,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "You have come so far. Only to fall." -msgstr "Вы добрались так далеко. Лишь чтобы в итоге пасть." +msgstr "Вы добрались так далеко лишь для того, чтобы в итоге пасть." #: lang/json/mission_def_from_json.py msgid "The curse of this land infects that which does not seek to purge." @@ -160075,7 +156205,7 @@ msgstr "%1$s пронзает ваш торс!" #: lang/json/monster_attack_from_json.py src/monattack.cpp #, c-format, no-python-format msgid "The %1$s impales 's torso!" -msgstr "%1$s пронзает торс !" +msgstr "%1$s пронзает торс противника ()!" #: lang/json/monster_attack_from_json.py src/monattack.cpp #, c-format, no-python-format @@ -160088,7 +156218,9 @@ msgstr "%1$s пытается проткнуть ваш торс, но не мо msgid "" "The %1$s tries to impale 's torso, but fails to penetrate their " "armor!" -msgstr "%1$s пытается проткнуть торс , но не может пробить броню!" +msgstr "" +"%1$s пытается проткнуть торс противника (), но не может пробить " +"броню!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160098,7 +156230,7 @@ msgstr "%1$s царапает вас!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s claws at !" -msgstr "%1$s царапает !" +msgstr "%1$s царапает противника ()!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160108,7 +156240,7 @@ msgstr "%1$s пытается оцарапать вас, но безуспешн #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s tries to claw , but fails to." -msgstr "%1$s пытается оцарапать , но безуспешно." +msgstr "%1$s пытается оцарапать противника (), но безуспешно." #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160118,7 +156250,7 @@ msgstr "%1$s обрушивается на вас!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s slams into !" -msgstr "%1$s обрушивается на !" +msgstr "%1$s обрушивается на противника ()!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160128,7 +156260,7 @@ msgstr "%1$s пытается обрушиться на вас, но прома #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s tries to slam into , but fails to." -msgstr "%1$s пытается обрушиться на , но безуспешно." +msgstr "%1$s пытается обрушиться на противника (), но безуспешно." #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160138,7 +156270,7 @@ msgstr "%1$s хватает вас за руку и сильно кусает!!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s grabs and bites down hard!!" -msgstr "%1$s хватает и сильно кусает!!" +msgstr "%1$s хватает противника () и сильно кусает!!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160149,7 +156281,7 @@ msgstr "%1$s хватает вашу руку своим ртом, но не м #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s grabs , but fails to penetrate the armor." -msgstr "%1$s хватает , но не может пробить броню." +msgstr "%1$s хватает противника (), но не может пробить броню." #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160159,7 +156291,7 @@ msgstr "%1$s наносит вам порез встроенным инстру #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s slashes !" -msgstr "%1$s режет !" +msgstr "%1$s наносит порез противнику ()!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160169,7 +156301,8 @@ msgstr "%1$s пытается порезать вас, но не может пр #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s tries to cut , but fails to penetrate your armor." -msgstr "%1$s пытается порезать , но не может пробить броню." +msgstr "" +"%1$s пытается порезать противника (), но не может пробить броню." #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160179,7 +156312,7 @@ msgstr "%1$s наносит вам глубокий порез мечом!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s heavily slashes !!" -msgstr "%1$s глубоко режет !!" +msgstr "%1$s наносит глубокий порез противнику ()!!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160189,7 +156322,7 @@ msgstr "%1$s выбивает землю у вас из под ног!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s knocks to the ground!" -msgstr "%1$s сбивает с ног!" +msgstr "%1$s сбивает противника () с ног!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160201,7 +156334,8 @@ msgstr "%1$s пытается поставить вам подножку, но msgid "" "The %1$s tries to sweep to the ground, but can't get through the " "armor." -msgstr "%1$s пытается сбить с ног , но не может пробить броню." +msgstr "" +"%1$s пытается сбить с ног противника (), но не может пробить броню." #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160211,7 +156345,7 @@ msgstr "%1$s внезапно бьет вас своим щитом, ошело #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s stuns with a shield bash!" -msgstr "%1$s ошеломляет ударом щита!" +msgstr "%1$s ошеломляет противника () ударом щита!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160221,7 +156355,8 @@ msgstr "%1$s пытается ударить вас щитом, но не мож #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s tries bash , but fails to penetrate the armor." -msgstr "%1$s пытается ударить , но не может пробить броню." +msgstr "" +"%1$s пытается ударить противника (), но не может пробить броню." #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160231,7 +156366,7 @@ msgstr "%1$s пронзает ваш %2$s своим трезубцем!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s impales 's %2$s with its trident!" -msgstr "%1$sпротыкает %2$s своим трезубцем!" +msgstr "%1$sпротыкает %2$s противника () своим трезубцем!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160245,7 +156380,9 @@ msgstr "%1$s пытается проткнуть ваш %2$s, но не може msgid "" "The %1$s tries to impale 's %2$s with its trident, but fails to " "penetrate their armor!" -msgstr "%1$s пытается проткнуть %2$s , но не может пробить броню!" +msgstr "" +"%1$s пытается проткнуть %2$s противника (), но не может пробить " +"броню!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160255,7 +156392,7 @@ msgstr "%1$s дробит ваш %2$s своей палицей!" #: lang/json/monster_attack_from_json.py #, no-python-format msgid "The %1$s crushes 's %2$s with its greatclub!" -msgstr "%1$s дробит %2$s своей палицей!" +msgstr "%1$s дробит %2$s противника () своей палицей!" #: lang/json/monster_attack_from_json.py #, no-python-format @@ -160272,49 +156409,8 @@ msgid "" "The %1$s tries to crush 's %2$s with its greatclub, but swings wide" " and stumbles." msgstr "" -"%1$s пытается раздробить %2$s своей палицей, но промахивается и " -"спотыкается!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes you!" -msgstr "%1$s ослепляет вас!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes at !" -msgstr "%1$s ослепляет !" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash you, but fails to." -msgstr "%1$s пытается ослепить вас, но безуспешно." - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash , but fails to." -msgstr "%1$s пытается ослепить , но безуспешно." - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects you with a syringe!" -msgstr "%1$s впрыскивает вам что-то с помощью шприца!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects with a syringe!" -msgstr "%1$s впрыскивает что-то с помощью шприца!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "%1$s пытается что-то впрыснуть вам, но не может пробить броню!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "" -"The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "%1$s пытается что-то впрыснуть , но не может пробить броню!" +"%1$s пытается раздробить %2$s противника () своей палицей, но " +"промахивается и спотыкается!" #: lang/json/morale_type_from_json.py #, no-python-format @@ -160363,11 +156459,11 @@ msgstr "Хорошее самочувствие" #: lang/json/morale_type_from_json.py msgid "Supported" -msgstr "Обеспеченный" +msgstr "Моральная поддержка" #: lang/json/morale_type_from_json.py msgid "Looked at photos" -msgstr "Смотрит на фото" +msgstr "Просмотр фото" #: lang/json/morale_type_from_json.py msgid "Nicotine Craving" @@ -160418,6 +156514,10 @@ msgstr "Не понравилось: %s" msgid "Ate Human Flesh" msgstr "Съел человечину" +#: lang/json/morale_type_from_json.py +msgid "Ate Demihuman Flesh" +msgstr "Съел плоть получеловека" + #: lang/json/morale_type_from_json.py msgid "Ate Meat" msgstr "Съел мясо" @@ -160533,7 +156633,7 @@ msgstr "Оптимист" #: lang/json/morale_type_from_json.py msgid "Bad Tempered" -msgstr "Депрессивный" +msgstr "Плохой характер" #: lang/json/morale_type_from_json.py msgid "Uncomfy Gear" @@ -160593,7 +156693,7 @@ msgstr "Воспоминания о разделке человеческого #: lang/json/morale_type_from_json.py msgid "Dug out a grave" -msgstr "Раскопал могилу" +msgstr "Раскопка могилы" #: lang/json/morale_type_from_json.py msgid "Conducted a funeral" @@ -160601,7 +156701,7 @@ msgstr "Участие в похоронах" #: lang/json/morale_type_from_json.py msgid "Communed with the trees" -msgstr "Пообщался с деревьями" +msgstr "Общение с деревьями" #: lang/json/morale_type_from_json.py msgid "Accomplishment" @@ -160615,6 +156715,113 @@ msgstr "Неудача" msgid "Debug Morale" msgstr "Отладочная мораль" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "ходьба" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "х" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp src/weather.cpp +msgid "W" +msgstr "З" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "Вы начали идти." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "Вы подгоняете своего скакуна бежать рысью." + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "Вы устанавливаете мощность ног вашего меха на скачущий быстрый шаг." + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "бег" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "б" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "Б" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "Вы начали бежать." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "Вы пускаете своего скакуна в галоп." + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "" +"Вы устанавливаете мощность ножных сервоприводов вашего меха на максимум." + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "Вы слишком устали, чтобы бежать." + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "Ваш скакун слишком утомился, чтобы скакать быстрее." + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "Ноги вашего меха не могут двигаться быстрее." + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "вприсядку" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "п" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "П" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "Вы начали красться." + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "Вы замедляете своего скакуна до шага." + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "" +"Вы устанавливаете мощность ножных сервоприводов вашего меха на минимум." + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp msgid "Any" @@ -160860,13 +157067,13 @@ msgstr "" #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Became one with the bears." -msgstr "Стал единым с медведями." +msgstr "Стал одним с медведями." #. ~ Mutation class: Bear Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Became one with the bears." -msgstr "Стала единым с медведями." +msgstr "Стала одним с медведями." #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py @@ -161086,13 +157293,13 @@ msgstr "Вы приняли этот удар как чемпион!" #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Started representing." -msgstr "Стал что-то представлять." +msgstr "Стал представлять вид на небесах." #. ~ Mutation class: Alpha Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Started representing." -msgstr "Стала что-то представлять." +msgstr "Стала представлять вид на небесах." #. ~ Mutation class name #: lang/json/mutation_category_from_json.py @@ -161446,7 +157653,7 @@ msgstr "Засахарилась." #: lang/json/mutation_from_json.py msgid "Venom Mob Protege" -msgstr "Ставленник клана яда" +msgstr "Ставленник Клана яда" #. ~ Description for {'str': 'Venom Mob Protege'} #: lang/json/mutation_from_json.py @@ -161902,7 +158109,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: goatee" -msgstr "Растительность на лице: нет: козлиная бородка" +msgstr "Растительность на лице: козлиная бородка" #. ~ Description for {'str': 'Facial hair: goatee'} #: lang/json/mutation_from_json.py @@ -161911,7 +158118,7 @@ msgstr "У вас короткая борода на кончике подбор #: lang/json/mutation_from_json.py msgid "Facial hair: circle beard" -msgstr "Растительность на лице: нет: круговая борода" +msgstr "Растительность на лице: круглая борода" #. ~ Description for {'str': 'Facial hair: circle beard'} #: lang/json/mutation_from_json.py @@ -161922,7 +158129,7 @@ msgstr "У вас усы и короткая борода, образующие #: lang/json/mutation_from_json.py msgid "Facial hair: royale beard" -msgstr "Растительность на лице: нет: борода ройал" +msgstr "Растительность на лице: королевская борода" #. ~ Description for {'str': 'Facial hair: royale beard'} #: lang/json/mutation_from_json.py @@ -161932,7 +158139,7 @@ msgstr "У вас усы и короткая борода под губами." #: lang/json/mutation_from_json.py msgid "Facial hair: anchor beard" -msgstr "Растительность на лице: нет: борода якорь" +msgstr "Растительность на лице: борода-якорь" #. ~ Description for {'str': 'Facial hair: anchor beard'} #: lang/json/mutation_from_json.py @@ -161946,7 +158153,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: short boxed beard" -msgstr "Растительность на лице: нет: борода короб" +msgstr "Растительность на лице: борода коробочкой" #. ~ Description for {'str': 'Facial hair: short boxed beard'} #: lang/json/mutation_from_json.py @@ -161959,7 +158166,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: chevron moustache" -msgstr "Растительность на лице: нет: усы шеврон" +msgstr "Растительность на лице: усы-шеврон" #. ~ Description for {'str': 'Facial hair: chevron moustache'} #: lang/json/mutation_from_json.py @@ -161968,7 +158175,7 @@ msgstr "Ваши усы полностью закрывают верхнюю г #: lang/json/mutation_from_json.py msgid "Facial hair: 3-day stubble" -msgstr "Растительность на лице: нет: трёхдневная щетина" +msgstr "Растительность на лице: трёхдневная щетина" #. ~ Description for {'str': 'Facial hair: 3-day stubble'} #: lang/json/mutation_from_json.py @@ -161979,7 +158186,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: horseshoe" -msgstr "Растительность на лице: нет: подкова" +msgstr "Растительность на лице: усы-подкова" #. ~ Description for {'str': 'Facial hair: horseshoe'} #: lang/json/mutation_from_json.py @@ -161990,7 +158197,7 @@ msgstr "Ваши усы спускаются к подбородку с обеи #: lang/json/mutation_from_json.py msgid "Facial hair: original moustache" -msgstr "Растительность на лице: нет: природные усы" +msgstr "Растительность на лице: естественные усы" #. ~ Description for {'str': 'Facial hair: original moustache'} #: lang/json/mutation_from_json.py @@ -162002,7 +158209,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: mutton chops beard" -msgstr "Растительность на лице: нет: борода баранья отбивная" +msgstr "Растительность на лице: борода-баранья отбивная" #. ~ Description for {'str': 'Facial hair: mutton chops beard'} #: lang/json/mutation_from_json.py @@ -162015,7 +158222,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: gunslinger beard" -msgstr "Растительность на лице: нет: борода стрелка" +msgstr "Растительность на лице: борода стрелка" #. ~ Description for {'str': 'Facial hair: gunslinger beard'} #: lang/json/mutation_from_json.py @@ -162024,7 +158231,7 @@ msgstr "У вас борода-подкова и не соединённые с #: lang/json/mutation_from_json.py msgid "Facial hair: chin strip" -msgstr "Растительность на лице: нет: полоска на подбородке" +msgstr "Растительность на лице: полоска на подбородке" #. ~ Description for {'str': 'Facial hair: chin strip'} #: lang/json/mutation_from_json.py @@ -162034,7 +158241,7 @@ msgstr "У вас короткая борода в виде вертикальн #: lang/json/mutation_from_json.py msgid "Facial hair: chin curtain" -msgstr "Растительность на лице: нет: борода ширма" +msgstr "Растительность на лице: борода-ширма" #. ~ Description for {'str': 'Facial hair: chin curtain'} #: lang/json/mutation_from_json.py @@ -162047,7 +158254,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: chin strap" -msgstr "Растительность на лице: нет: шкиперская борода" +msgstr "Растительность на лице: шкиперская борода" #. ~ Description for {'str': 'Facial hair: chin strap'} #: lang/json/mutation_from_json.py @@ -162058,7 +158265,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: beard" -msgstr "Растительность на лице: нет: борода" +msgstr "Растительность на лице: борода" #. ~ Description for {'str': 'Facial hair: beard'} #: lang/json/mutation_from_json.py @@ -162071,7 +158278,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: handlebar moustache" -msgstr "Растительность на лице: нет: усы велосипедный руль" +msgstr "Растительность на лице: усы велосипедный руль" #. ~ Description for {'str': 'Facial hair: handlebar moustache'} #: lang/json/mutation_from_json.py @@ -162080,7 +158287,7 @@ msgstr "У вас усы с длинными завёрнутыми кончик #: lang/json/mutation_from_json.py msgid "Facial hair: neckbeard" -msgstr "Растительность на лице: нет: шейная борода" +msgstr "Растительность на лице: шейная борода" #. ~ Description for {'str': 'Facial hair: neckbeard'} #: lang/json/mutation_from_json.py @@ -162091,7 +158298,7 @@ msgstr "У вас борода из волос, растущих на шее п #: lang/json/mutation_from_json.py msgid "Facial hair: pencil moustache" -msgstr "Растительность на лице: нет: усы карандаш" +msgstr "Растительность на лице: усы-карандаш" #. ~ Description for {'str': 'Facial hair: pencil moustache'} #: lang/json/mutation_from_json.py @@ -162100,7 +158307,7 @@ msgstr "У вас очень тонкие усы сразу над краем в #: lang/json/mutation_from_json.py msgid "Facial hair: shenandoah" -msgstr "Растительность на лице: нет: шенандоа" +msgstr "Растительность на лице: шенандоа" #. ~ Description for {'str': 'Facial hair: shenandoah'} #: lang/json/mutation_from_json.py @@ -162113,7 +158320,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: sideburns" -msgstr "Растительность на лице: нет: бакенбарды" +msgstr "Растительность на лице: бакенбарды" #. ~ Description for {'str': 'Facial hair: sideburns'} #: lang/json/mutation_from_json.py @@ -162126,7 +158333,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: soul patch" -msgstr "Растительность на лице: нет: борода островок" +msgstr "Растительность на лице: борода-островок" #. ~ Description for {'str': 'Facial hair: soul patch'} #: lang/json/mutation_from_json.py @@ -162139,7 +158346,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: toothbrush moustache" -msgstr "Растительность на лице: нет: усы щёточкой" +msgstr "Растительность на лице: усы щёточкой" #. ~ Description for {'str': 'Facial hair: toothbrush moustache'} #: lang/json/mutation_from_json.py @@ -162153,7 +158360,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: Van Dyke" -msgstr "Растительность на лице: нет: Ван Дайк" +msgstr "Растительность на лице: Ван Дайк" #. ~ Description for {'str': 'Facial hair: Van Dyke'} #: lang/json/mutation_from_json.py @@ -162164,7 +158371,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: walrus" -msgstr "Растительность на лице: нет: морж" +msgstr "Растительность на лице: морж" #. ~ Description for {'str': 'Facial hair: walrus'} #: lang/json/mutation_from_json.py @@ -162176,7 +158383,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: The Zappa" -msgstr "Растительность на лице: нет: Заппа" +msgstr "Растительность на лице: Заппа" #. ~ Description for {'str': 'Facial hair: The Zappa'} #: lang/json/mutation_from_json.py @@ -162230,7 +158437,6 @@ msgid "Good Hearing" msgstr "Хороший слух" #. ~ Description for {'str': 'Good Hearing'} -#. ~ Description for Good Hearing #: lang/json/mutation_from_json.py msgid "" "Your hearing is better than average, and you can hear distant sounds more " @@ -162281,7 +158487,6 @@ msgid "Indefatigable" msgstr "Неутомимый" #. ~ Description for {'str': 'Indefatigable'} -#. ~ Description for Indefatigable #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -162331,7 +158536,6 @@ msgid "Fast Healer" msgstr "Быстрое лечение" #. ~ Description for {'str': 'Fast Healer'} -#. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" "You heal faster when sleeping and will even recover a small amount of HP " @@ -162365,7 +158569,7 @@ msgstr "Для вас не составляет труда заснуть, да #: lang/json/mutation_from_json.py msgid "Practiced Sleeper" -msgstr "Практично засыпающий" +msgstr "Опытный засыпающий" #. ~ Description for {'str': 'Practiced Sleeper'} #: lang/json/mutation_from_json.py @@ -162381,7 +158585,6 @@ msgid "Pain Resistant" msgstr "Стойкость к боли" #. ~ Description for {'str': 'Pain Resistant'} -#. ~ Description for Pain Resistant #: lang/json/mutation_from_json.py msgid "You have a high tolerance for pain." msgstr "У вас высокая терпимость к боли." @@ -162391,7 +158594,6 @@ msgid "Night Vision" msgstr "Ночное зрение" #. ~ Description for {'str': 'Night Vision'} -#. ~ Description for Night Vision #: lang/json/mutation_from_json.py msgid "" "You possess natural night vision, and can see further in the dark than most." @@ -162493,9 +158695,11 @@ msgstr "Вьючный мул" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." msgstr "" -"Вы умудряетесь найти место для всего! Можете нести на 40% больше вещей." +"Вы очень эффективно складываете свои вещи! Вы на 10% быстрее достаёте их из " +"сумок и контейнеров." #: lang/json/mutation_from_json.py msgid "Strong Back" @@ -162534,14 +158738,14 @@ msgstr "Воспитанный" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale" -" bonus." +"you can't even think about eating without a table or not taking your time. " +"Eating without it frustrates you, but eating like a civilized person gives " +"you a bigger morale bonus." msgstr "" "Вас обучали поведению за столом с самого раннего детства. Теперь вы даже " -"представить себе не можете, как можно есть не за столом. Принятие пищи не за" -" столом ухудшает ваше настроение, но если едите как цивилизованный человек, " -"то получаете большой бонус к морали." +"представить себе не можете, как можно есть не за столом или есть впопыхах. " +"Принятие пищи не за столом ухудшает ваше настроение, но если едите как " +"цивилизованный человек, то получаете большой бонус к морали." #: lang/json/mutation_from_json.py msgid "Strong Stomach" @@ -162577,7 +158781,6 @@ msgid "Deft" msgstr "Проворный" #. ~ Description for {'str': 'Deft'} -#. ~ Description for Deft #: lang/json/mutation_from_json.py msgid "" "While you're not any better at melee combat, you are better at recovering " @@ -162613,8 +158816,8 @@ msgid "" "You can handle intoxicants well. Their effects clear up more quickly for " "you." msgstr "" -"Вы отлично переносите действия интоксикантов. Для вас их действия проходят " -"гораздо быстрее." +"Вы отлично переносите действия интоксикантов. Для вас их воздействие " +"проходит гораздо быстрее." #: lang/json/mutation_from_json.py msgid "Gourmand" @@ -162656,15 +158859,14 @@ msgid "" "harder for you to become addicted to substances, and easier to rid yourself " "of these addictions." msgstr "" -"У вас приличная сила воли и поэтому труднее получить зависимости к чему-" -"либо, а также проще избавиться от них." +"У вас приличная сила воли, и поэтому вам труднее получить зависимость к " +"чему-либо, а также проще избавиться от нее." #: lang/json/mutation_from_json.py msgid "Animal Empathy" msgstr "Любимец животных" #. ~ Description for {'str': 'Animal Empathy'} -#. ~ Description for Animal Empathy #: lang/json/mutation_from_json.py msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" @@ -162680,7 +158882,6 @@ msgid "Animal Kinship" msgstr "Родство с животными" #. ~ Description for {'str': 'Animal Kinship'} -#. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py msgid "" "Something about your presence is calming to animals, and they will treat you" @@ -162695,7 +158896,6 @@ msgid "Terrifying" msgstr "Внушающий ужас" #. ~ Description for {'str': 'Terrifying'} -#. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " @@ -162795,7 +158995,6 @@ msgid "Light Step" msgstr "Лёгкая походка" #. ~ Description for {'str': 'Light Step'} -#. ~ Description for Light Step #: lang/json/mutation_from_json.py msgid "" "You make less noise while walking. You're also less likely to set off " @@ -162852,7 +159051,6 @@ msgid "Cannibal" msgstr "Людоед" #. ~ Description for {'str': 'Cannibal'} -#. ~ Description for Cannibal #: lang/json/mutation_from_json.py msgid "" "For your whole life you've been forbidden from indulging in your peculiar " @@ -162863,6 +159061,19 @@ msgstr "" "старому миру пришёл конец, и, чёрт побери, пусть кто-то попробует сказать, " "что людей есть нельзя." +#: lang/json/mutation_from_json.py +msgid "Strict Humanitarian" +msgstr "Строгий человеколюб" + +#. ~ Description for {'str': 'Strict Humanitarian'} +#: lang/json/mutation_from_json.py +msgid "" +"You'd never eat people, but these things that look vaguely human from " +"elsewhere are definitely not people." +msgstr "" +"Вы бы никогда не стали есть человеческую плоть, но эти человекоподобные " +"твари неизвестно откуда определенно не люди." + #: lang/json/mutation_from_json.py msgid "Psychopath" msgstr "Психопат" @@ -162932,7 +159143,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Melee Weapon Training" -msgstr "Бой холодным оружием" +msgstr "Владение холодным оружием" #. ~ Description for {'str': 'Melee Weapon Training'} #: lang/json/mutation_from_json.py @@ -162966,7 +159177,6 @@ msgid "Weak Scent" msgstr "Чистюля" #. ~ Description for {'str': 'Weak Scent'} -#. ~ Description for Weak Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is quite weak. Animals that track your scent will do so with " @@ -163192,11 +159402,11 @@ msgstr "Неорганизованный" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." msgstr "" -"Вы ужасно упорядочиваете и храните своё имущество. Вы несёте на 40% меньше " -"вещей." +"Вы ужасно упорядочиваете и храните своё имущество. Вы вытаскиваете вещи на " +"10% медленнее." #: lang/json/mutation_from_json.py msgid "Illiterate" @@ -163245,7 +159455,6 @@ msgid "Insomniac" msgstr "Бессонница" #. ~ Description for {'str': 'Insomniac'} -#. ~ Description for Insomniac #: lang/json/mutation_from_json.py msgid "" "You have a hard time falling asleep, even under the best circumstances!" @@ -163333,7 +159542,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Junkfood Intolerance" -msgstr "Неприятие джанк-фуд" +msgstr "Неприятие вредной пищи" #. ~ Description for {'str': 'Junkfood Intolerance'} #: lang/json/mutation_from_json.py @@ -163457,7 +159666,6 @@ msgid "Strong Scent" msgstr "Вонючий" #. ~ Description for {'str': 'Strong Scent'} -#. ~ Description for Strong Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is particularly strong. It's not offensive to humans, but " @@ -163580,7 +159788,7 @@ msgid "" msgstr "" "Вы чувствуете себя плохо, если ещё осталось свободное местечко в карманах. " "Вы получаете штраф к моральному состоянию, если весь объём инвентаря не " -"заполнен (вес игнорируется). Таблетки Ксанакс помогают контролировать эту " +"заполнен (вес игнорируется). Приём ксанакса поможет контролировать эту " "манию." #: lang/json/mutation_from_json.py @@ -163599,10 +159807,6 @@ msgstr "" "чертой «Быстрое обучение» приведёт к более медленной скорости изучения " "абсолютно всех навыков." -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "Пацифист" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -163640,7 +159844,6 @@ msgid "Weak Stomach" msgstr "Слабый желудок" #. ~ Description for {'str': 'Weak Stomach'} -#. ~ Description for Weak Stomach #: lang/json/mutation_from_json.py msgid "You are more likely to throw up from food poisoning, alcohol, etc." msgstr "" @@ -163690,7 +159893,6 @@ msgid "Albino" msgstr "Альбинос" #. ~ Description for {'str': 'Albino'} -#. ~ Description for Albino #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " @@ -163706,7 +159908,6 @@ msgid "Flimsy" msgstr "Хилый" #. ~ Description for {'str': 'Flimsy'} -#. ~ Description for Flimsy #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -163773,7 +159974,6 @@ msgid "High Night Vision" msgstr "Улучшенное ночное зрение" #. ~ Description for {'str': 'High Night Vision'} -#. ~ Description for High Night Vision #: lang/json/mutation_from_json.py msgid "" "You can see incredibly well in the dark! Activate to toggle NV-visible " @@ -163974,7 +160174,6 @@ msgid "Regeneration" msgstr "Регенерация" #. ~ Description for {'str': 'Regeneration'} -#. ~ Description for Regeneration #: lang/json/mutation_from_json.py msgid "Your flesh regenerates from wounds incredibly quickly." msgstr "Ваша плоть восстанавливается от ран невероятно быстро." @@ -164004,7 +160203,7 @@ msgstr "Неутомимость" #. ~ Description for {'str': 'Tireless'} #: lang/json/mutation_from_json.py msgid "You defend the realm all night and all day." -msgstr "Вы защищаете владения и днём и ночью." +msgstr "Вы защищаете ваши владения и днём и ночью." #: lang/json/mutation_from_json.py msgid "Fangs" @@ -164359,8 +160558,8 @@ msgid "" "You've developed some sort of hair growing out of your chitin. It's a bit " "warmer than not having hair." msgstr "" -"Вы обзавелись чем-то вроде волос, растущих из вашего хитина. Это немного " -"теплее, чем без волос." +"Вы обзавелись подобием волос, растущих из вашего хитина. Так немного теплее," +" чем без волос." #: lang/json/mutation_from_json.py msgid "Furred Chitin" @@ -164372,8 +160571,8 @@ msgid "" "Your chitin hair has thickened and spread across your body. It provides " "minor warmth and helps you sense nearby vibrations." msgstr "" -"Ваши волосы на хитине становятся гуще и распространяются по всему телу. Это " -"обеспечивает небольшое тепло и помогает вам чувствовать рядом вибрации." +"Ваши волосы на хитине становятся гуще и распространяются по всему телу. Так " +"немного тепле и помогает вам ощущать вибрации окрестностей." #: lang/json/mutation_from_json.py msgid "Furred Plate" @@ -164856,7 +161055,6 @@ msgid "Mammal Pheromones" msgstr "Феромоны млекопитающих" #. ~ Description for {'str': 'Mammal Pheromones'} -#. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" "Your body produces low-level pheromones which put mammals at ease. They " @@ -164941,7 +161139,6 @@ msgid "Venomous" msgstr "Ядовитость" #. ~ Description for {'str': 'Venomous'} -#. ~ Description for Venomous #: lang/json/mutation_from_json.py msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " @@ -164990,7 +161187,7 @@ msgstr "Ваши конечности, кажется, могут немного #: lang/json/mutation_from_json.py msgid "Rubbery Limbs" -msgstr "Эластичные конечности" +msgstr "Гуттаперчевые конечности" #. ~ Description for {'str': 'Rubbery Limbs'} #: lang/json/mutation_from_json.py @@ -165354,7 +161551,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You stab %s with your pointed horns" -msgstr "Вы прокалываете противника (%s) своим остроконечными рогами" +msgstr "Вы прокалываете противника (%s) своими остроконечными рогами" #: lang/json/mutation_from_json.py #, no-python-format @@ -165610,7 +161807,7 @@ msgid "" msgstr "" "Вы можете перенести такие травмы, которые вывели бы из строя обычного " "человека. Вы получаете 20% бонус к очкам здоровья. Складывается с чертой " -"«Здоровяк» итп." +"«Здоровяк» и другими." #: lang/json/mutation_from_json.py msgid "Solidly Built" @@ -165672,7 +161869,7 @@ msgstr "Вы справляетесь с болью намного быстре #: lang/json/mutation_from_json.py msgid "Pain Junkie" -msgstr "Зависимый от боли" +msgstr "Зависимость от боли" #. ~ Description for {'str': 'Pain Junkie'} #: lang/json/mutation_from_json.py @@ -166203,7 +162400,7 @@ msgstr "Ваши мышцы огромны, как Альпы. Сила +7" #: lang/json/mutation_from_json.py msgid "Prime Strength" -msgstr "Примат силы" +msgstr "Образец силы" #. ~ Description for {'str': 'Prime Strength'} #: lang/json/mutation_from_json.py @@ -166248,7 +162445,7 @@ msgstr "Вы стали невообразимо ловким. Ловкость #: lang/json/mutation_from_json.py msgid "Prime Dexterity" -msgstr "Примат ловкости" +msgstr "Образец ловкости" #. ~ Description for {'str': 'Prime Dexterity'} #: lang/json/mutation_from_json.py @@ -166295,7 +162492,7 @@ msgstr "Ваш череп заметно выпирает из-за внушит #: lang/json/mutation_from_json.py msgid "Prime Intelligence" -msgstr "Примат интеллекта" +msgstr "Образец интеллекта" #. ~ Description for {'str': 'Prime Intelligence'} #: lang/json/mutation_from_json.py @@ -166356,7 +162553,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Prime Perception" -msgstr "Примат восприятия" +msgstr "Образец восприятия" #. ~ Description for {'str': 'Prime Perception'} #: lang/json/mutation_from_json.py @@ -166389,7 +162586,7 @@ msgid "" "ignore most shocks that would overwhelm lesser beings." msgstr "" "Вы можете выдвигать и поглощать органы чувств по своему желанию, и поэтому " -"можете игнорировать подавление ваших органов чувств." +"можете игнорировать перенасыщение ваших органов чувств." #: lang/json/mutation_from_json.py msgid "Little" @@ -166714,7 +162911,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You nip at %s" -msgstr "Вы зажимаете противника (%s) зубами" +msgstr "Вы кусаете противника (%s)" #: lang/json/mutation_from_json.py #, no-python-format @@ -166998,7 +163195,6 @@ msgid "Solar Sensitivity" msgstr "Чувствительность к солнцу" #. ~ Description for {'str': 'Solar Sensitivity'} -#. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " @@ -167158,8 +163354,8 @@ msgid "" "Though your beak's not suitable for pecking, those flowers out there are a " "good source of energy. Examine them to feed." msgstr "" -"Хотя ваш клюв не пригоден для клевания, вон те цветы можно использовать как " -"хороший источник энергии. Осмотрите их для питания." +"Хотя ваш клюв не пригоден для клевания, цветы можно использовать как хороший" +" источник энергии. Осмотрите их для питания." #: lang/json/mutation_from_json.py msgid "Genetically Unstable" @@ -167263,8 +163459,8 @@ msgid "" " slower than your old meat-legs." msgstr "" "Ваша плоть имеет приятную желеобразную консистенцию. Ваши органы, кажется, " -"перемещаются, а ваш эквивалент ног комфортно перетекают - чуть медленнее " -"ваших старых ног из плоти." +"перемещаются, а ваш эквивалент ног комфортно перетекает, пусть и чуть " +"медленнее ваших старых ног из плоти." #: lang/json/mutation_from_json.py msgid "Omnicellular" @@ -167473,8 +163669,8 @@ msgid "" "roots. Sleeping on diggable soil will satisfy any hunger or thirst you " "might have." msgstr "" -"Каждая клетка вашей кожи имеет хлорофилл, и у вас есть крепкие корни. Сон на" -" подходящей почве утолит любой ваш голод или жажду." +"Каждая клетка вашей кожи наполнена хлорофиллами, и у вас есть крепкие корни." +" Сон на подходящей почве утолит любой ваш голод или жажду." #: lang/json/mutation_from_json.py msgid "Mycorrhizal Communion" @@ -167509,7 +163705,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Very Heat Dependent" -msgstr "Сильно теплозависимый" +msgstr "Сильная теплозависимость" #. ~ Description for {'str': 'Very Heat Dependent'} #: lang/json/mutation_from_json.py @@ -167632,8 +163828,8 @@ msgid "" " They're simply too small to help you in the air." msgstr "" "Ваши руки покрылись яркими, цветными перьями. Они обеспечивают эффективную " -"гидроизоляцию вашим рукам и немного уменьшают урон от режущих ударов, но на " -"самом деле мешают. Они просто слишком маленькие, чтобы позволить вам летать." +"гидроизоляцию вашим рукам и немного уменьшают урон от режущих ударов, но " +"сильно мешаются. Они слишком маленькие, чтобы позволить вам летать." #: lang/json/mutation_from_json.py msgid "Insect Limbs" @@ -167684,8 +163880,8 @@ msgid "" "You have four handsome limbs, and then those mutant 'hand' and 'foot' " "things. They probably aren't worth concealing." msgstr "" -"У вас есть четыре красивых конечности и эти мутантские «руки» и «ноги». Их, " -"вероятно, скрывать не стоит." +"У вас есть четыре красивых конечности, а еще эти мутантские «руки» и «ноги»." +" Кажется, их не спрятать под одеждой" #: lang/json/mutation_from_json.py msgid "Tentacle Arms" @@ -167930,8 +164126,8 @@ msgid "" " of a great empire right here, underground." msgstr "" "Не так уж много смысла в восстановлении этой ужасно яркой пустоши без крыши." -" Теперь, когда вы привыкли к вашим новым берлогам, это можно считать " -"зачатками великой империи прямо здесь, под землёй." +" Теперь, когда вы привыкли к вашим новым берлогам, это зачатки великой " +"империи прямо здесь, под землёй." #. ~ Description for {'str': 'Cephalopod'} #: lang/json/mutation_from_json.py @@ -167951,7 +164147,8 @@ msgstr "Арахнид" msgid "Well, maybe you'll just have to make your own world wide web." msgstr "Ясно, похоже теперь вы должны создать собственную всемирную паутину." -#: lang/json/mutation_from_json.py lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/mutation_from_json.py +#: lang/json/npc_from_json.py msgid "Survivor" msgstr "Выживший" @@ -168042,11 +164239,11 @@ msgstr "Микус" #. ~ Description for {'str': 'Mycus'} #: lang/json/mutation_from_json.py src/iuse.cpp msgid "We are the Mycus." -msgstr "Микус — это мы." +msgstr "Мы есть Микус." #: lang/json/mutation_from_json.py msgid "Acidproof" -msgstr "Кислотоустойчивый" +msgstr "Устойчивость к кислоте" #. ~ Description for {'str': 'Acidproof'} #: lang/json/mutation_from_json.py @@ -168067,7 +164264,7 @@ msgid "" msgstr "" "Ваше тело выработало потрясающий защитный механизм. Вы будете " "«кислототочить» сильной молекулярной кислотой вместо обычной крови, которая " -"будет повреждать любое существо, достаточно глупое, чтобы нанести вам урон." +"будет повреждать любое существо, которому хватит глупости нанести вам урон." #: lang/json/mutation_from_json.py msgid "Pyromaniac" @@ -168081,8 +164278,8 @@ msgid "" " mood bonus from doing so." msgstr "" "У вас имеется нездоровая тяга к огню, вы начинаете нервничать, если не " -"разжигаете огонь или не находитесь рядом с ним. Зато если вы сделаете это, " -"то получаете бонус к морали." +"разжигаете огонь время от времени или не находитесь рядом с ним. Зато если " +"вы сделаете это, то получаете бонус к морали." #: lang/json/mutation_from_json.py msgid "Amphibious" @@ -168177,7 +164374,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Shark Teeth" -msgstr "Акульи Зубы" +msgstr "Акульи зубы" #. ~ Description for {'str': 'Shark Teeth'} #: lang/json/mutation_from_json.py @@ -168215,8 +164412,8 @@ msgid "" "anything now is another question." msgstr "" "Вы приведённый к присяге сотрудник правоохранительных органов, с юрисдикцией" -" в регионе Новой Англии, согласно межгосударственным соглашениям. Означает " -"ли это что-нибудь теперь, уже другой вопрос." +" в регионе Новой Англии, согласно соглашениям между штатами. Означает ли это" +" что-нибудь теперь, уже другой вопрос." #: lang/json/mutation_from_json.py msgid "Helicopter Pilot" @@ -168225,11 +164422,11 @@ msgstr "Пилот вертолёта" #. ~ Description for Helicopter Pilot #: lang/json/mutation_from_json.py msgid "" -"You are a trained pilot, you wonder if you will ever have the chance to fly " -"again." +"You are a trained helicopter pilot. This makes you one of the few living " +"people who can operate a helicopter after the Cataclysm." msgstr "" -"Вы сертифицированный пилот, как знать, будет ли у вас еще возможность вновь " -"покорить небо." +"Вы умеете пилотировать вертолет. Людей с таким навыком после Катаклизма " +"можно по пальцам пересчитать." #: lang/json/mutation_from_json.py msgid "SWAT Officer" @@ -168243,8 +164440,8 @@ msgid "" " now is another question." msgstr "" "Вы приведённый к присяге сотрудник правоохранительных органов, с юрисдикцией" -" в регионе Новой Англии, согласно межгосударственным соглашениям. Означает " -"ли это что-нибудь теперь, уже другой вопрос." +" в регионе Новой Англии, согласно соглашениям между штатами. Означает ли это" +" что-нибудь теперь, уже другой вопрос." #: lang/json/mutation_from_json.py msgid "Bionic Officer" @@ -168258,8 +164455,8 @@ msgid "" "you can do for the law what the law did for you is another question." msgstr "" "Вы кибернетически воскрешённый сотрудник правоохранительных органов, с " -"юрисдикцией в регионе Новой Англии, согласно межгосударственным соглашениям." -" Можете ли вы сделать для закона то, что закон сделал для вас, уже другой " +"юрисдикцией в регионе Новой Англии, согласно соглашениям между штатами. " +"Можете ли вы сделать для закона то, что закон сделал для вас, уже другой " "вопрос." #: lang/json/mutation_from_json.py @@ -168271,7 +164468,7 @@ msgstr "Простолюдин" msgid "" "Thou art a lewede man, a lowly cowherd, though where thi catel been thou " "hast not ynn certain." -msgstr "Вы — жалкий пастух, хотя вы не уверены, где сейчас ваше стадо." +msgstr "Ты есмь смерд, скот выпасающий, да и стадо твое не видать." #: lang/json/mutation_from_json.py msgid "Police Detective" @@ -168285,8 +164482,8 @@ msgid "" "your shield means anything now is another question." msgstr "" "Вы приведённый к присяге следователь правоохранительных органов, с " -"юрисдикцией в регионе Новой Англии, согласно межгосударственным соглашениям." -" Означает ли это что-нибудь теперь, уже другой вопрос." +"юрисдикцией в регионе Новой Англии, согласно соглашениям между штатами. " +"Означает ли это что-нибудь теперь, уже другой вопрос." #: lang/json/mutation_from_json.py msgid "US Marshal" @@ -168339,11 +164536,12 @@ msgstr "Роллер" #. ~ Description for {'str': 'Skater'} #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the Cataclysm," -" and are better at staying on your feet when checked or blocked." +"You are skilled in maneuvering on skates. You suffer less dodging penalties" +" and are less likely to fall down if hit in melee combat while you're " +"wearing rollerskates or rollerblades." msgstr "" -"До Катаклизма вы потратили много времени, активно маневрируя на роликах, и в" -" них вы уверенней стоите на ногах." +"Вы ловко управляетесь с роликами. Вы лучше уклоняетесь и имеете меньше " +"шансов упасть от удара, пока носите роликовые коньки." #: lang/json/mutation_from_json.py msgid "Martial Artist" @@ -168404,7 +164602,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Dungeon Master" -msgstr "Данжен-мастер" +msgstr "Мастер подземелий" #. ~ Description for {'str': 'Dungeon Master'} #: lang/json/mutation_from_json.py @@ -168537,7 +164735,7 @@ msgstr "Отладочный дезодорант" #. ~ Description for {'str': 'Debug Deodorizer'} #: lang/json/mutation_from_json.py msgid "Smell that bug? Smell's certainly not coming from you!" -msgstr "Чуете этот сбой? Конечно, запах идёт не от тебя!" +msgstr "Чуете запах сбоя? Запах точно идёт не от вас!" #: lang/json/mutation_from_json.py msgid "Debug Silent Walk" @@ -168586,13 +164784,13 @@ msgstr "Отладочный контроль разума" #. ~ Description for {'str': 'Debug Mind Control'} #: lang/json/mutation_from_json.py msgid "Mind the bugs, would you kindly?" -msgstr "Размышляешь о сбоях, как это мило." +msgstr "Если не трудно, держите баги в уме." #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" -msgstr "Отладочная вместимость" +msgid "Debug Very Strong Back" +msgstr "Отладочная Крепкая спина" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "" @@ -168601,7 +164799,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Bionic Installation" -msgstr "Отладка Установки Бионики" +msgstr "Отладочная установка бионики" #. ~ Description for {'str': 'Debug Bionic Installation'} #: lang/json/mutation_from_json.py @@ -168611,7 +164809,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Bionic Power" -msgstr "Отладка Бионической Энергии" +msgstr "Отладка бионическая энергия" #. ~ Description for {'str': 'Debug Bionic Power'} #: lang/json/mutation_from_json.py @@ -168691,8 +164889,8 @@ msgid "" "You're too adventurous for your own good. The more time you spend " "somewhere, the unhappier it makes you to be there." msgstr "" -"В ваших жилах течёт кровь настоящего путешественника. Именно поэтому, " -"оставаясь долго на одном месте, вам становится очень дурно на душе." +"В ваших жилах течёт кровь настоящего путешественника. Именно поэтому, когда " +"вы долго остаетесь на одном месте, вам становится очень дурно на душе." #: lang/json/mutation_from_json.py msgid "Antsy" @@ -168734,10 +164932,22 @@ msgstr "" "транспортных средствах для вас неприемлемо, даже если от этого зависит ваша " "жизнь." +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "Быстрые рефлексы" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "" +"У вас хорошие рефлексы, что позволяет вам легче уворачиваться от атак." + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "История Выжившего" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -169393,7 +165603,7 @@ msgstr "" #: lang/json/mutation_from_json.py src/artifact.cpp msgid "Eldritch" -msgstr "Потустороннего" +msgstr "Потусторонний" #. ~ Description for Eldritch #: lang/json/mutation_from_json.py @@ -169453,12 +165663,12 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You buffet %s with your wings" -msgstr "Вы наносите удар крылом по %s" +msgstr "Вы наносите удар крылом по противинку (%s)" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s buffets %2$s with their wings" -msgstr "%1$s наносит удар своим крылом по %2$s" +msgstr "%1$s наносит удар своим крылом по противнику (%2$s)" #: lang/json/mutation_from_json.py msgid "Mi-go breathe" @@ -169529,12 +165739,12 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You kick %s with your massive feet" -msgstr "Вы пинаете %s вышей массивной ногой" +msgstr "Вы пинаете противника (%s) вышей массивной ногой" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s kicks %2$s with their massive feet" -msgstr "%1$s пинает %2$s своей массивной ногой" +msgstr "%1$s пинает противника (%2$s) своей массивной ногой" #: lang/json/mutation_from_json.py msgid "Face Bumps" @@ -169562,12 +165772,12 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You gore %s with your tusks" -msgstr "Вы бодаете %s своими бивнями" +msgstr "Вы бодаете противника (%s) своими бивнями" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s gores %2$s with their tusks" -msgstr "%1$s бодает %2$s своими бивнями" +msgstr "%1$s бодает противника (%2$s) своими бивнями" #: lang/json/mutation_from_json.py msgid "Pointed Tusks" @@ -169587,7 +165797,7 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You stab %s with your pointed tusks" -msgstr "Вы прокалываете противника %s своими острыми бивнями" +msgstr "Вы прокалываете противника (%s) своими острыми бивнями" #: lang/json/mutation_from_json.py #, no-python-format @@ -169859,17 +166069,17 @@ msgstr "" "Ваши мускулы довольно сильно замедлены. Вы передвигаетесь на 25% медленнее." #: lang/json/mutation_from_json.py -msgid "C.R.I.T Melee Training" -msgstr "Рукопашная подготовка К.Р.И.Т" +msgid "CRIT Melee Training" +msgstr "Рукопашная подготовка К.Р.И.Т." -#. ~ Description for C.R.I.T Melee Training +#. ~ Description for CRIT Melee Training #: lang/json/mutation_from_json.py msgid "" -"You have received defensive training. For every hit you land, gain various " -"miniscule combat bonuses that scale off of your stats." +"You have received CQB training. For every hit you land, gain themed combat " +"bonuses." msgstr "" -"Вы прошли курс самозащиты. За каждый успешный удар вы получаете разные " -"небольшие боевые бонусы в зависимости от ваших характеристик." +"Вы прошли курс самозащиты. За каждый успешный удар вы получаете " +"соответствующие боевые бонусы." #: lang/json/mutation_from_json.py msgid "Shadow Meld" @@ -169919,21 +166129,6 @@ msgid "" "Emerge from the grave of the old world, and become the night once again." msgstr "Восстаньте из могилы старого мира и вновь превратитесь в ночь." -#. ~ Description for Pretty -#: lang/json/mutation_from_json.py -msgid "" -"You are a sight to behold. NPCs who care about such things will react more " -"kindly to you." -msgstr "" -"Вы красивы. NPC, которые обращают внимание на такие вещи, будет относиться к" -" вам более доброжелательно." - -#. ~ Description for Thin-Skinned -#: lang/json/mutation_from_json.py -msgid "Your skin is fragile. Cutting damage is slightly increased for you." -msgstr "" -"Ваша кожа очень тонкая. В результате наносимый вам режущий урон увеличен." - #: lang/json/mutation_from_json.py msgid "Forest Guardian" msgstr "Лесной страж" @@ -169973,12 +166168,51 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You tear into %s with your blades" -msgstr "Вы вонзаете свои лезвия в%s." +msgstr "Вы вонзаете свои лезвия в противника (%s)" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s tears into %2$s with their blades" -msgstr "%1$s вонзает свои лезвия в %2$s" +msgstr "%1$s вонзает свои лезвия в противника (%2$s)" + +#: lang/json/mutation_from_json.py +msgid "Spurs" +msgstr "Шпоры" + +#. ~ Description for Spurs +#: lang/json/mutation_from_json.py +msgid "" +"Spurs of bone have erupted all across your arms. A thick, biological " +"secretion oozes out of them promising extra harm to enemies." +msgstr "" +"Костяные шпоры во множестве торчат из ваших рук. Густые органические " +"выделения на них не сулят врагам ничего хорошего." + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "You ravage %s with your arms" +msgstr "Вы раздираете врага (%s) своими шпорами" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "%1$s ravages %2$s with their arm spurs" +msgstr "%1$s раздирает врага (%2$s) своими шпорами" + +#: lang/json/mutation_from_json.py +msgid "Persistent Body" +msgstr "Телесная стойкость" + +#. ~ Description for Persistent Body +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "" +"As you move, the world seems to breath life and energy into your limbs. You " +"simply rarely tire less readily than others. Your maximum stamina is 50% " +"higher than usual." +msgstr "" +"С каждым движением мир вливает свежие силы в ваши конечности. Вы не устаете " +"куда дольше остальных. Максимальный размер вашей выносливости на 50% больше " +"обычного." #: lang/json/mutation_from_json.py msgid "RP: Combatant" @@ -170060,6 +166294,46 @@ msgstr "" "Вы обладаете древней техникой пьяного боя. Под влиянием алкоголя ваш навык " "ближнего боя (особенно без оружия) значительно вырастает." +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "Дух героя" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "" +"Вы изучили подвиги и легенды древних героев. Из ваших исследований вы узнали" +" древнюю форму боя под названием Хиллиансий бой на мечах." + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "Удар Ци" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "" +"Кому нужно оружие? Вы наносите больше урона в ближнем бою без оружия. Этот " +"урон становится больше с ростом навыка безоружного боя." + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "Ученик боевых искусств" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" +"Вы обучались боевому искусству и выучили одну из дисциплин Возвышенного " +"Пути." + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "Маг" @@ -170277,6 +166551,40 @@ msgstr "Вытягивание маны" msgid "Mana Vortex" msgstr "Вихрь маны" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "Эффективность маны Тронутого маной" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "Вы способны хранить в своём теле намного больше маны, чем обычно." + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "Регенерация маны Тронутого маной" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "Ваше естественное восстановление маны намного быстрее обычного." + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "Чувствительность к мане Тронутого маной" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" +"Вы чувствуете ману в своём теле намного лучше обычного, что позволяет вам " +"черпать больше внутренних запасов." + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "Небольшая эффективность маны" @@ -170297,12 +166605,7 @@ msgstr "Вы способны хранить в своём теле больше #: lang/json/mutation_from_json.py msgid "Greater Mana Efficiency" -msgstr "Хорошая эффективность маны" - -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "Вы способны хранить в своём теле намного больше маны, чем обычно." +msgstr "Высокая эффективность маны" #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" @@ -170353,11 +166656,6 @@ msgstr "Ваше естественное восстановление маны msgid "Greater Mana Regeneration" msgstr "Хорошее восстановление маны" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "Ваше естественное восстановление маны намного быстрее обычного." - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "Плохое восстановление маны" @@ -170415,15 +166713,6 @@ msgstr "" msgid "Greater Mana Sensitivity" msgstr "Хорошая чувствительность к мане" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to" -" tap into more of your reserves." -msgstr "" -"Вы чувствуете ману в своём теле намного лучше обычного, что позволяет вам " -"черпать больше внутренних запасов." - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "Плохая чувствительность к мане" @@ -170576,7 +166865,7 @@ msgstr "Мародёр" #: lang/json/npc_class_from_json.py msgid "I'm just here for the paycheck." -msgstr "Я просто пришёл за расчётом." +msgstr "Сижу жду дня получки." #: lang/json/npc_class_from_json.py msgid "Scavenger" @@ -170829,28 +167118,6 @@ msgstr "энтузиаст ми-го" msgid "I've been studying the mi-go for years…" msgstr "Я годами изучал ми-го…" -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "Преступник из улья" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "Я всю жизнь выживал, сражаясь со всем миром, ничего не изменилось" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "Корпоративный Оперативник по Мокрухе" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive" -" it's twilight." -msgstr "" -"Мне удавалось неплохо жить в тенях старого мира. Сумею выжить и в его " -"сумерках." - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "Мутант-ящерица" @@ -171103,6 +167370,28 @@ msgstr "" "Я ищу мутаген раптора… Этот мир больше не место для обычных людей, и я не " "планирую оставаться таким." +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "Преступник из улья" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "Я всю жизнь выживал, сражаясь со всем миром, ничего не изменилось" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "Корпоративный Оперативник по Мокрухе" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive" +" it's twilight." +msgstr "" +"Мне удавалось неплохо жить в тенях старого мира. Сумею выжить и в его " +"сумерках." + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "Возвышение мастодонта" @@ -171154,11 +167443,11 @@ msgstr "Пленник" #: lang/json/npc_class_from_json.py msgid "I got captured by those jerks." -msgstr "Я был захвачен теми придурками." +msgstr "Меня захватили те придурки." #: lang/json/npc_class_from_json.py msgid "I got locked up those yahoos." -msgstr "Я был закрыт теми придурками." +msgstr "Меня закрыли те придурки." #: lang/json/npc_class_from_json.py msgid "I'm just trying to stay alive." @@ -171182,7 +167471,7 @@ msgstr "Бандит" #: lang/json/npc_from_json.py msgid "Psycho" -msgstr "Психо" +msgstr "Псих" #: lang/json/npc_from_json.py msgid "chef" @@ -171326,7 +167615,7 @@ msgstr "Макайла Санчес" #: lang/json/npc_from_json.py msgid "Representative" -msgstr "Представитель" +msgstr "Представитель Старой Гвардии" #: lang/json/npc_from_json.py msgid "Merc" @@ -171394,7 +167683,7 @@ msgstr "Ксенобиолог, безумна" #: lang/json/npc_from_json.py msgid "Millyficen Whately" -msgstr "Миллфицен Ватели" +msgstr "Миллифицен Ватели" #: lang/json/npc_from_json.py msgid "magus" @@ -171823,8 +168112,8 @@ msgid "" "Includes the storage of car, metal, machinery and other debris as well as " "associated buildings as a business." msgstr "" -"Включает склады машин, металла, техники и прочих обломков, а также связанные" -" постройки в рамках бизнеса." +"Включает свалки машин, металла, техники и прочего мусора, а также связанные " +"постройки в рамках бизнеса." #: lang/json/overmap_land_use_code_from_json.py msgid "Brushland/Successional" @@ -171905,28 +168194,20 @@ msgstr "разрушенная хижина" #: lang/json/overmap_terrain_from_json.py msgid "barn" -msgstr "сарай" +msgstr "амбар" #: lang/json/overmap_terrain_from_json.py msgid "car corner" -msgstr "угол авто" +msgstr "угол под автомобиль" #: lang/json/overmap_terrain_from_json.py msgid "shipwreck" msgstr "кораблекрушение" -#: lang/json/overmap_terrain_from_json.py -msgid "razorclaw nest" -msgstr "гнездо бритвокогтей" - #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" msgstr "радиовышка" -#: lang/json/overmap_terrain_from_json.py -msgid "radio tower roof" -msgstr "крыша радиовышки" - #: lang/json/overmap_terrain_from_json.py msgid "looted building" msgstr "разграбленное здание" @@ -171939,13 +168220,9 @@ msgstr "тестовая зона уклона" msgid "campsite" msgstr "кемпинг" -#: lang/json/overmap_terrain_from_json.py -msgid "campsites" -msgstr "кемпинг" - #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" -msgstr "незавершённая хижина" +msgstr "недостроенная хижина" #: lang/json/overmap_terrain_from_json.py msgid "field campsite" @@ -171989,7 +168266,7 @@ msgstr "огромная карстовая воронка" #: lang/json/overmap_terrain_from_json.py msgid "giant sinkhole base" -msgstr "основа огромной карстовой воронки" +msgstr "основание огромной карстовой воронки" #: lang/json/overmap_terrain_from_json.py msgid "public space" @@ -172013,7 +168290,7 @@ msgstr "разбившийся авиалайнер" #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "open air" -msgstr "открытое место" +msgstr "открытое пространство" #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "solid rock" @@ -172155,6 +168432,18 @@ msgstr "generic_junkyard" msgid "generic_brushland" msgstr "generic_brushland" +#: lang/json/overmap_terrain_from_json.py +msgid "rural road" +msgstr "загородная дорога" + +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "просёлочная дорога" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural building" +msgstr "загородное строение" + #: lang/json/overmap_terrain_from_json.py msgid "sugar house" msgstr "сахарный дом" @@ -172163,18 +168452,10 @@ msgstr "сахарный дом" msgid "sugar house roof" msgstr "крыша сахарного дома" -#: lang/json/overmap_terrain_from_json.py -msgid "rural road" -msgstr "загородная дорога" - #: lang/json/overmap_terrain_from_json.py msgid "farm field" msgstr "пашня" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house" -msgstr "фермерский домик" - #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" msgstr "крыша фермерского домика" @@ -172191,6 +168472,10 @@ msgstr "крыша амбара фермы" msgid "farm" msgstr "ферма" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house" +msgstr "фермерский домик" + #: lang/json/overmap_terrain_from_json.py msgid "grape farm" msgstr "виноградник" @@ -172283,17 +168568,13 @@ msgstr "курятник" msgid "chicken coop roof" msgstr "крыша курятника" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" -msgstr "2 этаж фермерского домика" - #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" msgstr "небольшое кладбище" #: lang/json/overmap_terrain_from_json.py msgid "moonshine still" -msgstr "самогонный аппарат" +msgstr "самогоноварильня" #: lang/json/overmap_terrain_from_json.py msgid "moonshine still roof" @@ -172303,10 +168584,6 @@ msgstr "крыша самогоноварильни" msgid "tree farm" msgstr "питомник" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "просёлочная дорога" - #: lang/json/overmap_terrain_from_json.py msgid "silos" msgstr "хранилище" @@ -172327,6 +168604,10 @@ msgstr "крыша сельского дома" msgid "farm road" msgstr "грунтовая дорога" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house 2nd floor" +msgstr "2 этаж фермерского домика" + #: lang/json/overmap_terrain_from_json.py msgid "barn roof" msgstr "крыша амбара" @@ -172337,19 +168618,19 @@ msgstr "административное здание кампуса" #: lang/json/overmap_terrain_from_json.py msgid "campus commons building" -msgstr "общинное здание кампуса" +msgstr "общественное здание кампуса" #: lang/json/overmap_terrain_from_json.py msgid "campus commons roof" -msgstr "крыша общинного здания кампуса" +msgstr "крыша общественного здания кампуса" #: lang/json/overmap_terrain_from_json.py msgid "campus media building" -msgstr "здание кампусных СМИ" +msgstr "здание СМИ кампуса" #: lang/json/overmap_terrain_from_json.py msgid "campus media building roof" -msgstr "крыша здания кампусных СМИ" +msgstr "крыша здания СМИ кампуса" #: lang/json/overmap_terrain_from_json.py msgid "campus health building" @@ -172439,6 +168720,10 @@ msgstr "магазин электроники" msgid "electronics store roof" msgstr "крыша магазина электроники" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "2 этаж магазина электроники" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "спортивный магазин" @@ -172449,11 +168734,11 @@ msgstr "крыша спортивного магазина" #: lang/json/overmap_terrain_from_json.py msgid "liquor store" -msgstr "магазин напитков" +msgstr "магазин алкоголя" #: lang/json/overmap_terrain_from_json.py msgid "liquor store roof" -msgstr "крыша магазина напитков" +msgstr "крыша магазина алкоголя" #: lang/json/overmap_terrain_from_json.py msgid "gun store" @@ -172471,10 +168756,6 @@ msgstr "2 этаж оружейного магазина" msgid "clothing store" msgstr "магазин одежды" -#: lang/json/overmap_terrain_from_json.py -msgid "clothing store roof" -msgstr "крыша магазина одежды" - #: lang/json/overmap_terrain_from_json.py msgid "bookstore" msgstr "книжный магазин" @@ -172483,6 +168764,10 @@ msgstr "книжный магазин" msgid "bookstore roof" msgstr "крыша книжного магазина" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "ресторанчик" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "ресторан" @@ -172493,11 +168778,11 @@ msgstr "крыша ресторана" #: lang/json/overmap_terrain_from_json.py msgid "fast food restaurant" -msgstr "фаст-фуд ресторан" +msgstr "фаст-фуд" #: lang/json/overmap_terrain_from_json.py msgid "fast food restaurant roof" -msgstr "крыша фаст-фуд ресторана" +msgstr "крыша фаст-фуда" #: lang/json/overmap_terrain_from_json.py msgid "coffee shop" @@ -172611,10 +168896,6 @@ msgstr "отель" msgid "hotel entrance" msgstr "вестибюль отеля" -#: lang/json/overmap_terrain_from_json.py -msgid "hotel tower" -msgstr "отель" - #: lang/json/overmap_terrain_from_json.py msgid "hotel basement" msgstr "подвал отеля" @@ -172637,15 +168918,11 @@ msgstr "супермаркет бытовых товаров" #: lang/json/overmap_terrain_from_json.py msgid "garage - gas station" -msgstr "гараж-заправка" - -#: lang/json/overmap_terrain_from_json.py -msgid "garage - gas station roof" -msgstr "крыша гаража заправки" +msgstr "гараж у заправки" #: lang/json/overmap_terrain_from_json.py msgid "dispensary" -msgstr "аптека" +msgstr "гомеопатическая аптека" #: lang/json/overmap_terrain_from_json.py msgid "dispensary roof" @@ -172701,19 +168978,19 @@ msgstr "крыша ЛВС-центра" #: lang/json/overmap_terrain_from_json.py msgid "landscaping supply co" -msgstr "товары для ландшафтных работ" +msgstr "магазин товаров для ландшафтных работ" #: lang/json/overmap_terrain_from_json.py msgid "landscaping supply co roof" -msgstr "крыша товаров для ландшафтных работ" +msgstr "крыша магазина товаров для ландшафтных работ" #: lang/json/overmap_terrain_from_json.py msgid "veterans of foreign wars" -msgstr "ветераны заокеанских войн" +msgstr "дом ветеранов" #: lang/json/overmap_terrain_from_json.py msgid "veterans of foreign wars center roof" -msgstr "крыша дома для ветеранов заокеанских войн" +msgstr "крыша дома ветеранов" #: lang/json/overmap_terrain_from_json.py msgid "thrift store" @@ -172801,7 +169078,7 @@ msgstr "крыша игрового зала" #: lang/json/overmap_terrain_from_json.py msgid "gardening supply" -msgstr "сельскохозяйственный" +msgstr "сельскохозяйственный магазин" #: lang/json/overmap_terrain_from_json.py msgid "gardening supply roof" @@ -172811,14 +169088,14 @@ msgstr "крыша сельскохозяйственного магазина" msgid "craft shop" msgstr "мастерская" -#: lang/json/overmap_terrain_from_json.py -msgid "craft shop roof" -msgstr "крыша мастерской" - #: lang/json/overmap_terrain_from_json.py msgid "craft shop upper roof" msgstr "верхняя крыша мастерской" +#: lang/json/overmap_terrain_from_json.py +msgid "craft shop roof" +msgstr "крыша мастерской" + #: lang/json/overmap_terrain_from_json.py msgid "craft shop 2nd floor" msgstr "2 этаж мастерской" @@ -172927,18 +169204,30 @@ msgstr "охотничий магазин" msgid "hunting supply store roof" msgstr "крыша охотничьего магазина" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "туристический магазин" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "городской квартал" #: lang/json/overmap_terrain_from_json.py -msgid "road" -msgstr "дорога" +msgid "gaming store" +msgstr "игровой магазин" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "крыша игрового магазина" #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "центр для беженцев" +#: lang/json/overmap_terrain_from_json.py +msgid "road" +msgstr "дорога" + #: lang/json/overmap_terrain_from_json.py msgid "camp survey" msgstr "место под лагерь" @@ -173191,6 +169480,22 @@ msgstr "металлургический комбинат" msgid "steel mill depot" msgstr "депо металлургического комбината" +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "лёгкая промышленность" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "частный аэропорт" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "взлётная полоса частного аэропорта" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" +msgstr "вертолётная площадка" + #: lang/json/overmap_terrain_from_json.py msgid "science lab" msgstr "научная лаборатория" @@ -173271,13 +169576,17 @@ msgstr "парковка" msgid "mall - entrance" msgstr "ТЦ — вход" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - food court" +msgstr "ТЦ — ресторанный дворик" + #: lang/json/overmap_terrain_from_json.py msgid "mall - food court roof" msgstr "крыша ресторанного дворика ТЦ" #: lang/json/overmap_terrain_from_json.py -msgid "mall - food court" -msgstr "ТЦ — ресторанный дворик" +msgid "mall - subway station" +msgstr "ТЦ - станция метро" #: lang/json/overmap_terrain_from_json.py msgid "mansion" @@ -173285,7 +169594,7 @@ msgstr "поместье" #: lang/json/overmap_terrain_from_json.py msgid "mi-go encampment" -msgstr "поселение ми-го" +msgstr "лагерь ми-го" #: lang/json/overmap_terrain_from_json.py msgid "mi-go spire" @@ -173326,7 +169635,7 @@ msgstr "крыша убежища" #: lang/json/overmap_terrain_from_json.py #: lang/json/start_location_from_json.py msgid "LMOE shelter" -msgstr "Убежище «последних людей»" +msgstr "убежище «последнего человека»" #: lang/json/overmap_terrain_from_json.py msgid "military bunker" @@ -173388,10 +169697,6 @@ msgstr "полицейский участок" msgid "church" msgstr "церковь" -#: lang/json/overmap_terrain_from_json.py -msgid "sewer" -msgstr "канализация" - #: lang/json/overmap_terrain_from_json.py msgid "sewer?" msgstr "канализация?" @@ -173400,6 +169705,14 @@ msgstr "канализация?" msgid "basement" msgstr "подвал" +#: lang/json/overmap_terrain_from_json.py +msgid "sewer" +msgstr "канализация" + +#: lang/json/overmap_terrain_from_json.py +msgid "Vault - Passage" +msgstr "Убежище — проход" + #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" msgstr "Убежище — казармы" @@ -173432,10 +169745,6 @@ msgstr "Убежище — вход" msgid "Vault - Utilities" msgstr "Убежище — коммунальные службы" -#: lang/json/overmap_terrain_from_json.py -msgid "Vault - Passage" -msgstr "Убежище — проход" - #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" msgstr "Убежище — пункт связи" @@ -173882,16 +170191,16 @@ msgid "marina parking" msgstr "крыша парковки причала" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" -msgstr "дуплекс" +msgid "house roof" +msgstr "крыша дома" #: lang/json/overmap_terrain_from_json.py -msgid "apartment tower" -msgstr "жилой комплекс" +msgid "dense urban" +msgstr "плотная застройка" #: lang/json/overmap_terrain_from_json.py -msgid "homeless camp" -msgstr "лагерь бездомных" +msgid "apartment tower" +msgstr "жилой комплекс" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" @@ -173901,6 +170210,10 @@ msgstr "трейлерный парк" msgid "trailer park roof" msgstr "крыша трейлерного парка" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless camp" +msgstr "лагерь бездомных" + #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" msgstr "пустой участок под жильё" @@ -173909,10 +170222,6 @@ msgstr "пустой участок под жильё" msgid "derelict property" msgstr "заброшенная недвижимость" -#: lang/json/overmap_terrain_from_json.py -msgid "dense urban" -msgstr "плотная застройка" - #: lang/json/overmap_terrain_from_json.py msgid "river" msgstr "река" @@ -173945,26 +170254,14 @@ msgstr "мост" msgid "roadstop" msgstr "остановка" -#: lang/json/overmap_terrain_from_json.py -msgid "roadstop roof" -msgstr "крыша остановки" - #: lang/json/overmap_terrain_from_json.py msgid "public washroom" msgstr "общественный туалет" -#: lang/json/overmap_terrain_from_json.py -msgid "public washroom roof" -msgstr "крыша общественного туалета" - #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" msgstr "придорожная столовая" -#: lang/json/overmap_terrain_from_json.py -msgid "roadside foodcart roof" -msgstr "крыша придорожной столовой" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "железная дорога" @@ -174139,16 +170436,16 @@ msgstr "канализация" #: lang/json/overmap_terrain_from_json.py msgid "small dump" -msgstr "мелкий мусорник" - -#: lang/json/overmap_terrain_from_json.py -msgid "lake shore" -msgstr "берег озера" +msgstr "мелкая свалка" #: lang/json/overmap_terrain_from_json.py msgid "lake" msgstr "озеро" +#: lang/json/overmap_terrain_from_json.py +msgid "lake shore" +msgstr "берег озера" + #: lang/json/overmap_terrain_from_json.py msgid "lake (submerged)" msgstr "озеро (под водой)" @@ -174198,36 +170495,12 @@ msgid "county mortuary roof" msgstr "крыша окружного морга" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "местное отделение жизни в диких условиях" +msgid "Dinosaur Exhibit" +msgstr "выставка динозавров" #: lang/json/overmap_terrain_from_json.py -msgid "diner" -msgstr "ресторанчик" - -#: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "квартира" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" -msgstr "агентство" - -#: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "туристический магазин" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "игровой магазин" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "аэропорт" - -#: lang/json/overmap_terrain_from_json.py -msgid "light industry" -msgstr "лёгкая промышленность" +msgid "wildlife field office" +msgstr "местное отделение жизни в диких условиях" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -174241,6 +170514,10 @@ msgstr "бункер" msgid "scavenger bunker" msgstr "бункер добытчиков" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "лагерь гоблинов" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "магическая лавка" @@ -174254,7 +170531,6 @@ msgid "used bookstore" msgstr "старый книжный магазин" #: lang/json/overmap_terrain_from_json.py -#: lang/json/start_location_from_json.py msgid "Swamp" msgstr "Болото" @@ -174286,10 +170562,6 @@ msgstr "ворота" msgid "house basement" msgstr "подвал дома" -#: lang/json/overmap_terrain_from_json.py -msgid "house roof" -msgstr "крыша дома" - #: lang/json/overmap_terrain_from_json.py msgid "attached garage" msgstr "пристройка с гаражом" @@ -174320,7 +170592,7 @@ msgstr "заправка" #: lang/json/overmap_terrain_from_json.py msgid "company ops facility" -msgstr "здание компании" +msgstr "штабное здание" #: lang/json/overmap_terrain_from_json.py msgid "arms room" @@ -174398,10 +170670,6 @@ msgstr "лаборатория микробиологии" msgid "rocketry lab" msgstr "лаборатория ракетной техники" -#: lang/json/overmap_terrain_from_json.py -msgid "robot dispatch center" -msgstr "центр отправки роботов" - #: lang/json/overmap_terrain_from_json.py msgid "school" msgstr "школа" @@ -174430,6 +170698,14 @@ msgstr "гараж механика" msgid "megastore entrance" msgstr "вход супермаркета" +#: lang/json/overmap_terrain_from_json.py +msgid "hotel tower" +msgstr "отель" + +#: lang/json/overmap_terrain_from_json.py +msgid "razorclaw nest" +msgstr "гнездо бритвокогтей" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "очистное сооружение" @@ -174446,6 +170722,10 @@ msgstr "интерфейс" msgid "electric substation" msgstr "электрическая подстанция" +#: lang/json/overmap_terrain_from_json.py +msgid "campsites" +msgstr "кемпинг" + #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" msgstr "кладбище" @@ -174468,7 +170748,7 @@ msgstr "разрушенная хижина-стоянка" #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin - dirt plaza" -msgstr "разрушенная хижина с грязной площадью" +msgstr "разрушенная хижина - грязная площадь" #: lang/json/overmap_terrain_from_json.py msgid "desert" @@ -174483,13 +170763,13 @@ msgstr "Бродяга" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Обстоятельства сложились таким образом, что у вас нет ни дома, ни семьи, ни " -"друзей. Но мир, каким вы его знали, ушёл в прошлое, и ваша привычка " -"полагаться во всём только на себя, возможно, очень пригодится вам в этом " +"Обстоятельства сложились таким образом, что вы странствуете по этому миру в " +"одиночку. Теперь вам некуда возвращаться, даже если бы вы хотели. Возможно, " +"ваша привычка полагаться во всём только на себя очень пригодится вам в этом " "новом мире." #: lang/json/professions_from_json.py @@ -174501,13 +170781,13 @@ msgstr "Бродяга" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." msgstr "" -"Обстоятельства сложились таким образом, что у вас нет ни дома, ни семьи, ни " -"друзей. Но мир, каким вы его знали, ушёл в прошлое, и ваша привычка " -"полагаться во всём только на себя, возможно, очень пригодится вам в этом " +"Обстоятельства сложились таким образом, что вы странствуете по этому миру в " +"одиночку. Теперь вам некуда возвращаться, даже если бы вы хотели. Возможно, " +"ваша привычка полагаться во всём только на себя очень пригодится вам в этом " "новом мире." #: lang/json/professions_from_json.py @@ -174519,12 +170799,12 @@ msgstr "Выживальщик-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" "Ты знал, что конец близок. Ты дополнил своё тело бионикой и закончил " -"начальный курс выживания. И вот конец наступил, и пришло время узнать, " +"расширенные курсы выживания. И вот конец наступил, и пришло время узнать, " "принесут ли твои усилия какие-нибудь плоды." #: lang/json/professions_from_json.py @@ -174536,12 +170816,12 @@ msgstr "Выживальщица-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "" "Ты знала, что конец близок. Ты дополнила своё тело бионикой и закончила " -"начальный курс выживания. И вот конец наступил, и пришло время узнать, " +"расширенные курсы выживания. И вот конец наступил, и пришло время узнать, " "принесут ли твои усилия какие-нибудь плоды." #: lang/json/professions_from_json.py @@ -174553,11 +170833,11 @@ msgstr "Выживший" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" "Некоторые скажут, что в тебе нет ничего особенного. Но ты выжил, а это " -"больше, чем сейчас могло бы похвастаться большинство." +"большее, чем большинство может сказать прямо сейчас." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174568,11 +170848,11 @@ msgstr "Выжившая" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "" "Некоторые скажут, что в тебе нет ничего особенного. Но ты выжила, а это " -"больше, чем сейчас могло бы похвастаться большинство." +"большее, чем большинство может сказать прямо сейчас." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174583,13 +170863,13 @@ msgstr "Укрывшийся выживальщик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" -"В начале Катаклизма вы засели в бомбоубежище. Теперь пришла зима, и вы " -"надеетесь, что все те разношёрстные навыки, изученные вами по книгам, " -"помогут вам выжить." +"Как только начался Катаклизм, ты укрылся в бомбоубежище. Месяцами ты питался" +" консервами, читал книги и возился с инструментами в убежище. Настала зима, " +"пришло время встретиться с миром лицом к лицу." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174600,13 +170880,13 @@ msgstr "Укрывшаяся выживальщица" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." msgstr "" -"В начале Катаклизма вы засели в бомбоубежище. Теперь пришла зима, и вы " -"надеетесь, что все те разношёрстные навыки, изученные вами по книгам, " -"помогут вам выжить." +"Как только начался Катаклизм, ты укрылась в бомбоубежище. Месяцами ты " +"питалась консервами, читала книги и возилась с инструментами в убежище. " +"Настала зима, пришло время встретиться с миром лицом к лицу." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174617,12 +170897,13 @@ msgstr "Укрывшийся ополченец" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" -"Как только начался Катаклизм, вы укрылись в бомбоубежище. Настала зима, и вы" -" надеетесь, что приобретённые навыки и оружие помогут вам выжить." +"Как только начался Катаклизм, ты укрылся в бомбоубежище со своей коллекцией " +"оружия. Месяцами ты питался консервами и тренировался в стрельбе. Настала " +"зима, пришло время встретиться с миром лицом к лицу." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174633,12 +170914,13 @@ msgstr "Укрывшаяся ополченка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." msgstr "" -"Как только начался Катаклизм, вы укрылись в бомбоубежище. Настала зима, и вы" -" надеетесь, что приобретённые навыки и оружие помогут вам выжить." +"Как только начался Катаклизм, ты укрылась в бомбоубежище со своей коллекцией" +" оружия. Месяцами ты питалась консервами и тренировалась в стрельбе. Настала" +" зима, пришло время встретиться с миром лицом к лицу." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174650,11 +170932,11 @@ msgstr "Портной" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"Когда миру приходит конец, пошив одежды кажется уже не самым полезным " -"навыком. Большинству людей трудно ожидать, что простой портной проживёт " +"Когда миру приходит конец, пошив одежды кажется не самым полезным навыком. " +"Большинству людей трудно ожидать, что простой портной проживёт особенно " "долго. Это твоя возможность доказать их неправоту." #: lang/json/professions_from_json.py @@ -174667,11 +170949,11 @@ msgstr "Портниха" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "" -"Когда миру приходит конец, пошив одежды кажется уже не самым полезным " -"навыком. Большинству людей трудно ожидать, что простая портниха проживёт " +"Когда миру приходит конец, пошив одежды кажется не самым полезным навыком. " +"Большинству людей трудно ожидать, что простая портниха проживёт особенно " "долго. Это твоя возможность доказать их неправоту." #: lang/json/professions_from_json.py @@ -174684,12 +170966,12 @@ msgstr "Шеф-повар" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" "Чик-чик! За годы, проведённые на кухне, ты отъел приличный живот, но это не " -"помешало тебе выбраться живым из кровавой бойни с ножом мясника в руках и " -"кое-какими вещами в карманах рабочей одежды." +"помешало тебе выбраться живой из кровавой бойни с верным кухонным ножом в " +"руках и кое-какими вещами в карманах рабочей одежды." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174701,12 +170983,12 @@ msgstr "Шеф-повар" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." msgstr "" "Чик-чик! За годы, проведённые на кухне, ты отъела приличный живот, но это не" -" помешало тебе выбраться живой из кровавой бойни с ножом мясника в руках и " -"кое-какими вещами в карманах рабочей одежды." +" помешало тебе выбраться живым из кровавой бойни с верным кухонным ножом в " +"руках и кое-какими вещами в карманах рабочей одежды." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174755,13 +171037,14 @@ msgstr "Лаборант" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Благодаря времени, проведённому в лаборатории, ты изучил основные методы " -"проведения экспериментов. Теперь настал конец света, и остался только один " -"вопрос: сможешь ли ты устранить Катаклизм, который ты сам помог создать?" +"Благодаря времени, проведённому за учёбой и работой в лаборатории, ты изучил" +" основные методы проведения экспериментов. Теперь настал конец света, и " +"остался только один вопрос: сможешь ли ты устранить Катаклизм, который твои " +"коллеги помогли создать?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174772,13 +171055,14 @@ msgstr "Лаборантка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" msgstr "" -"Благодаря времени, проведённому в лаборатории, ты изучила основные методы " -"проведения экспериментов. Теперь настал конец света, и остался только один " -"вопрос: сможешь ли ты устранить Катаклизм, который ты сама помогла создать?" +"Благодаря времени, проведённому за учёбой и работой в лаборатории, ты " +"изучила основные методы проведения экспериментов. Теперь настал конец света," +" и остался только один вопрос: сможешь ли ты устранить Катаклизм, который " +"твои коллеги помогли создать?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174789,11 +171073,13 @@ msgstr "Механик-самоучка" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Хотя ты так и не получил водительские права, но всегда любил автомобили. По " -"крайней мере, теперь ты никогда не будешь нуждаться в материалах." +"Тебе всегда нравились автомобили - нет ничего лучше, чем залезть под капот и" +" устранить поломку. Тебе удалось захватить с собой кое-какие инструменты, и " +"теперь точно нет дефицита запчастей." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174804,11 +171090,13 @@ msgstr "Механик-самоучка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." msgstr "" -"Хотя ты так и не получила водительские права, но всегда любила автомобили. " -"По крайней мере, теперь ты никогда не будешь нуждаться в материалах." +"Тебе всегда нравились автомобили - нет ничего лучше, чем залезть под капот и" +" устранить поломку. Тебе удалось захватить с собой кое-какие инструменты, и " +"теперь точно нет дефицита запчастей." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174822,7 +171110,7 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" "Твой своеобразный взгляд на закон, потасовки в барах с твоим участием (и " "которых ты избежал) и твоя впечатляющая способность избегать последствий — " @@ -174840,7 +171128,7 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "" "Твой своеобразный взгляд на закон, потасовки в барах с твоим участием (и " "которых ты избежала) и твоя впечатляющая способность избегать последствий — " @@ -174855,13 +171143,13 @@ msgstr "Пчеловод" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" -"Раньше вы были профессиональным пчеловодом. Когда разразился Катаклизм, вам " -"пришлось бросить своих драгоценных пчёл, но, по крайней мере, удалось " -"захватить кое-какую утварь и мёд." +"Раньше вы были профессиональным пчеловодом, строили и содержали ульи. Когда " +"разразился Катаклизм, вам пришлось бросить своих драгоценных пчёл, но, по " +"крайней мере, удалось захватить кое-какую утварь и мёд." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174872,13 +171160,13 @@ msgstr "Пчеловод" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." msgstr "" -"Раньше вы были профессиональным пчеловодом. Когда разразился Катаклизм, вам " -"пришлось бросить своих драгоценных пчёл, но, по крайней мере, удалось " -"захватить кое-какую утварь и мёд." +"Раньше вы были профессиональным пчеловодом, строили и содержали ульи. Когда " +"разразился Катаклизм, вам пришлось бросить своих драгоценных пчёл, но, по " +"крайней мере, удалось захватить кое-какую утварь и мёд." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174889,13 +171177,13 @@ msgstr "Баскетболист" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" -"Это должна была быть твоя первая крупная игра, когда произошёл Катаклизм. " -"Благодаря своим быстрым ногам, ты был в числе немногих счастливчиков, кому " -"удалось спастись от тех существ." +"Ваша первая игра оказалась внезапно отменена, когда на площадку вышли зомби." +" Быстрота ног и хорошие рефлексы - вот что позволило вам оказаться одним из " +"тех, кто выбрался со стадиона живым." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174906,13 +171194,13 @@ msgstr "Баскетболистка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." msgstr "" -"Это должна была быть твоя первая крупная игра, когда произошёл Катаклизм. " -"Благодаря своим быстрым ногам, ты был в числе немногих счастливчиков, кому " -"удалось спастись от тех существ." +"Ваша первая игра оказалась внезапно отменена, когда на площадку вышли зомби." +" Быстрота ног и хорошие рефлексы - вот что позволило вам оказаться одной из " +"тех, кто выбрался со стадиона живым." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174923,14 +171211,13 @@ msgstr "Настоящий Поешь-ка" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" "Вы истинный Поешь-ка, кто-то считает Поешь-ку всего лишь маскотом, но вам " -"лучше знать. Вы — Поешь-ка, маска стала вашим лицом, вы самый настоящий и вы" -" — единственный, кто стоит между этим миром и забвением." +"лучше знать. Маска стала вашим лицом, вы самый настоящий и вы — " +"единственный, кто стоит между этим миром и забвением." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -174941,14 +171228,13 @@ msgstr "Настоящий Поешь-ка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" -"Вы истинная Поешь-ка, кто-то считает Поешь-ку всего лишь маскотом, но вам " -"лучше знать. Вы — Поешь-ка, маска стала вашим лицом, вы самая настоящая и вы" -" — единственная, кто стоит между этим миром и забвением." +"Вы истинный Поешь-ка, кто-то считает Поешь-ку всего лишь маскотом, но вам " +"лучше знать. Маска стала вашим лицом, вы самая настоящая и вы — " +"единственная, кто стоит между этим миром и забвением." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -174961,8 +171247,8 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" "Ты был молодым перспективным велосипедистом с яркой, многообещающей " "карьерой, прежде чем всё это произошло. Может быть, тебе никогда уже не " @@ -174980,8 +171266,8 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" "Ты была молодой перспективной велосипедисткой с яркой многообещающей " "карьерой, прежде чем всё это произошло. Может быть, тебе никогда уже не " @@ -174997,15 +171283,15 @@ msgstr "Новобранец" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Ты бросил учёбу лишь с одной целью: пойти в армию. И когда цель была " -"достигнута, прямо во время тренировки в стране было объявлено чрезвычайное " -"положение. Судя по всему, военное командование бросило тебя в этом аду, " -"когда ты пропустил экстренную эвакуацию." +"Пойти в армию было твоей мечтой долгие годы. И когда ты наконец поступил в " +"учебку, было объявлено чрезвычайное положение. Судя по всему, военное " +"командование бросило тебя в этом аду, когда ты пропустил экстренную " +"эвакуацию." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175016,15 +171302,15 @@ msgstr "Новобранец" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"Ты бросила учёбу лишь с одной целью: пойти в армию. И когда цель была " -"достигнута, прямо во время тренировки в стране было объявлено чрезвычайное " -"положение. Судя по всему, военное командование бросило тебя в этом аду, " -"когда ты пропустила экстренную эвакуацию." +"Пойти в армию было твоей мечтой долгие годы. И когда ты наконец поступила в " +"учебку, было объявлено чрезвычайное положение. Судя по всему, военное " +"командование бросило тебя в этом аду, когда ты пропустила экстренную " +"эвакуацию." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175071,11 +171357,13 @@ msgstr "Дворецкий" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" -"Ты работал на богатую семью, но после Катаклизма они отбыли на семейный " -"отпуск в неизвестном направлении, предоставив тебе заботиться о самом себе." +"Вы были наняты, чтобы заботиться о домашнем хозяйстве для богатой семьи. " +"Естественно, когда дела пошли плохо, все они отправились на семейный отдых в" +" неизвестное место, оставив вас на произвол судьбы." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175086,11 +171374,13 @@ msgstr "Горничная" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." msgstr "" -"Ты работала на богатую семью, но после Катаклизма они отбыли на семейный " -"отпуск в неизвестном направлении, предоставив тебе заботиться о самой себе." +"Вы были наняты, чтобы заботиться о домашнем хозяйстве для богатой семьи. " +"Естественно, когда дела пошли плохо, все они отправились на семейный отдых в" +" неизвестное место, оставив вас на произвол судьбы." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175101,15 +171391,16 @@ msgstr "Пленник" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" -"Вы шли по дороге ночью, пытаясь уйти от ужасов города, когда услышали " -"зовущий голос по тьме. Вы подошли посмотреть, внезапно ощутили жгучую " -"головную боль и потеряли сознание. Вы только что проснулись в этом месте… " -"Вы, вообще, всё ещё на Земле?" +"Вы шли по дороге ночью, пытаясь уйти от ужасов в городе, когда услышали " +"зовущий голос по тьме. Вы подошли посмотреть, надеясь, что это кто-то " +"дружелюбный, внезапно ощутили жгучую головную боль и потеряли сознание. Вы " +"только что проснулись в этом месте… Вы, вообще хотя бы ещё на Земле?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175120,15 +171411,16 @@ msgstr "Пленница" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" -"Вы шли по дороге ночью, пытаясь уйти от ужасов города, когда услышали " -"зовущий голос по тьме. Вы подошли посмотреть, внезапно ощутили жгучую " -"головную боль и потеряли сознание. Вы только что проснулись в этом месте… " -"Вы, вообще, всё ещё на Земле?" +"Вы шли по дороге ночью, пытаясь уйти от ужасов в городе, когда услышали " +"зовущий голос по тьме. Вы подошли посмотреть, надеясь, что это кто-то " +"дружелюбный, внезапно ощутили жгучую головную боль и потеряли сознание. Вы " +"только что проснулись в этом месте… Вы, вообще хотя бы ещё на Земле?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175140,13 +171432,13 @@ msgstr "Спасатель" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" -"Вы подготовились. Вы решили найти и спасти своих друзей. Но теперь вы в этих" -" странных коридорах, воздух становится гуще, и вы больше ни в чём не " -"уверены. Возможно, это вас нужно спасать." +"Вы подготовились. Вы решили найти и спасти своих друзей. Но теперь воздух в " +"этих странных коридорах становится гуще, и вы больше ни в чём не уверены. " +"Возможно, это вас нужно спасать." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175158,13 +171450,13 @@ msgstr "Спасательница" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" -"Вы подготовились. Вы решили найти и спасти своих друзей. Но теперь вы в этих" -" странных коридорах, воздух становится гуще, и вы больше ни в чём не " -"уверены. Возможно, это вас нужно спасать." +"Вы подготовились. Вы решили найти и спасти своих друзей. Но теперь воздух в " +"этих странных коридорах становится гуще, и вы больше ни в чём не уверены. " +"Возможно, это вас нужно спасать." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175176,12 +171468,14 @@ msgstr "Врач-ординатор" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"После окончания медицинского колледжа и у тебя проявилось немного " -"практического опыта. Ты просто надеешься, что его хватит, если потребуется " -"воплотить старую пословицу «Доктор, исцели себя сам»." +"После окончания медицинского колледжа и у тебя появилось немного " +"практического опыта и немного врачебных припасов. Ты просто надеешься, что " +"этого хватит, если потребуется воплотить старую пословицу «Доктор, исцели " +"себя сам»." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175193,12 +171487,14 @@ msgstr "Врач-ординатор" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." msgstr "" -"После окончания медицинского колледжа и у тебя проявилось немного " -"практического опыта. Ты просто надеешься, что его хватит, если потребуется " -"воплотить старую пословицу «Доктор, исцели себя сам»." +"После окончания медицинского колледжа и у тебя появилось немного " +"практического опыта и немного врачебных припасов. Ты просто надеешься, что " +"этого хватит, если потребуется воплотить старую пословицу «Доктор, исцели " +"себя сам»." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175210,12 +171506,12 @@ msgstr "Гангстер" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"Босс знал, что на тебя можно положиться в самых грязных делах. От простого " -"решения вопроса мордобоем, до более сложного «урегулирования отношений». " -"Теперь, после конца света, ты наконец-то нашёл своё место в обществе." +"Босс знал, что на тебя можно положиться в самых грязных делах. Жаль, он " +"позволил себя завалить. Ничего страшного - в мире всегда найдётся место для " +"человека твоих талантов." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175227,12 +171523,12 @@ msgstr "Гангстер" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." msgstr "" -"Босс знал, что на тебя можно положиться в самых грязных делах. От простого " -"решения вопроса мордобоем, до более сложного «урегулирования отношений». " -"Теперь, после конца света, ты наконец-то нашла своё место в обществе." +"Босс знал, что на тебя можно положиться в самых грязных делах. Жаль, он " +"позволил себя завалить. Ничего страшного - в мире всегда найдётся место для " +"человека твоих талантов." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175243,15 +171539,14 @@ msgstr "Охранник" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Ты был низкооплачиваемым охранником, когда вдруг стало намного опаснее " -"простого патрулирования территории для отпугивания потенциальных воров. У " -"тебя нет каких-то полезных навыков, но зато есть полезное снаряжение, так " -"как ты был на работе, когда всё начало катиться в тартарары." +"У тебя была скучная, низкооплачиваемая работа, на которой тебе приходилось " +"следить за камерами и патрулировать шоссе, но внезапно мир стал очень " +"опасным местом. У тебя есть, чем защитить себя, но у тебя ещё ни разу не " +"было необходимости этим пользоваться." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175262,15 +171557,14 @@ msgstr "Охранница" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." msgstr "" -"Ты была низкооплачиваемым охранником, когда вдруг стало намного опаснее " -"простого патрулирования территории для отпугивания потенциальных воров. У " -"тебя нет каких-то полезных навыков, но зато есть полезное снаряжение, так " -"как ты была на работе, когда всё начало катиться в тартарары." +"У тебя была скучная, низкооплачиваемая работа, на которой тебе приходилось " +"следить за камерами и патрулировать шоссе, но внезапно мир стал очень " +"опасным местом. У тебя есть, чем защитить себя, но у тебя ещё ни разу не " +"было необходимости этим пользоваться." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175283,7 +171577,7 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" "Ты косил газоны и подстригал кусты для богачей. Контрактов становилось всё " "меньше ещё до нашествия зомби, но теперь у тебя нет вообще ничего, кроме " @@ -175300,7 +171594,7 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "" "Ты косила газоны и подстригала кусты для богачей. Контрактов становилось всё" " меньше ещё до нашествия зомби, но теперь у тебя нет вообще ничего, кроме " @@ -175309,36 +171603,36 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Nursing Assistant" -msgstr "Брат-сиделка" +msgstr "Медбрат-сиделка" #. ~ Profession (male Nursing Assistant) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" -"Ты ухаживал за пожилыми на дому, даже когда мир рушился вокруг тебя. Ты " -"можешь только молиться, что не увидишь бывших клиентов среди живых " -"мертвецов…" +"Ты отправился ухаживать за пожилым пациентом на дому, даже когда мир рушился" +" вокруг тебя. Ты можешь только молиться, что не увидишь бывших клиентов " +"среди живых мертвецов…" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Nursing Assistant" -msgstr "Сестра-сиделка" +msgstr "Медсестра-сиделка" #. ~ Profession (female Nursing Assistant) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "" -"Ты ухаживала за пожилыми на дому, даже когда мир рушился вокруг тебя. Ты " -"можешь только молиться, что не увидишь бывших клиентов среди живых " -"мертвецов…" +"Ты отправилась ухаживать за пожилым пациентом на дому, даже когда мир " +"рушился вокруг тебя. Ты можешь только молиться, что не увидишь бывших " +"клиентов среди живых мертвецов…" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175349,15 +171643,13 @@ msgstr "Выживальщик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" -"Ты обучен выживанию вдали от цивилизации. Похоже, что твои навыки сильно " -"пригодятся, поскольку теперь цивилизация полна монстров, которые хотят твоей" -" смерти. Твоё снаряжение весьма простое, но универсальное, а с твоими-то " -"навыками этого более чем достаточно… Кроме тех случаев, когда фляга пуста!" +"Жить на земле, вдали от цивилизации - это для тебя привычно. Разница только " +"в том, что теперь кругом монстры, и они хотят твоей смерти. Твоё снаряжение " +"весьма простое, но универсальное… вот только твоя фляга пуста!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175368,15 +171660,13 @@ msgstr "Выживальщица" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" -"Ты обучена выживанию вдали от цивилизации. Похоже, что твои навыки сильно " -"пригодятся, поскольку теперь цивилизация полна монстров, которые хотят твоей" -" смерти. Твоё снаряжение весьма простое, но универсальное, а с твоими-то " -"навыками этого более чем достаточно… Кроме тех случаев, когда фляга пуста!" +"Жить на земле, вдали от цивилизации - это для тебя привычно. Разница только " +"в том, теперь кругом монстры, и они хотят твоей смерти. Твоё снаряжение " +"весьма простое, но универсальное… вот только твоя фляга пуста!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175387,13 +171677,14 @@ msgstr "Заядлый курильщик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Все знают, что ты никогда не расстаёшься с сигаретой. У тебя сильная " -"никотиновая зависимость, а сигарет осталась всего одна пачка, так что " -"постарайся скорее найти ещё." +"Твои коллеги всегда недовольно перешёптывались, когда ты выскальзывал на " +"улицу покурить каждый час, но теперь эта привычка спасла твою жизнь. Вот " +"только у тебя осталась всего одна пачка. Игра начинается с сильной " +"никотиновой зависимостью." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175404,13 +171695,14 @@ msgstr "Заядлая курильщица" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"Все знают, что ты никогда не расстаёшься с сигаретой. У тебя сильная " -"никотиновая зависимость, а сигарет осталась всего одна пачка, так что " -"постарайся скорее найти ещё." +"Твои коллеги всегда недовольно перешёптывались, когда ты выскальзывала на " +"улицу покурить каждый час, но теперь эта привычка спасла твою жизнь. Вот " +"только у тебя осталась всего одна пачка. Игра начинается с сильной " +"никотиновой зависимостью." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175423,11 +171715,11 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" "Кокаин. Реально адская наркота. Ты спустил все свои деньги на порошок. Но " "прежде чем осознал это, ты уже проворачивал трюки за спиной местного барыги," -" просто чтобы нюхнуть ещё одну дорожку." +" просто чтобы нюхнуть ещё одну дорожку. Где теперь достать ещё дозу?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175440,11 +171732,11 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." +"score one more line. Where are you going to get your next fix now?" msgstr "" "Кокаин. Реально адская наркота. Ты спустила все свои деньги на порошок. Но " "прежде чем осознала это, ты уже проворачивала трюки за спиной местного " -"барыги, просто чтобы нюхнуть ещё одну дорожку." +"барыги, просто чтобы нюхнуть ещё одну дорожку. Где теперь достать ещё дозу?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175455,10 +171747,10 @@ msgstr "Бомж" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" "Общество изгнало тебя на окраину жизни и оставило скитаться без дома, без " "семьи, без друзей, пока что утешение ты нашёл лишь на дне бутылки. Но " @@ -175474,10 +171766,10 @@ msgstr "Бомж" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" "Общество изгнало тебя на окраину жизни и оставило скитаться без дома, без " "семьи, без друзей, пока что утешение ты нашла лишь на дне бутылки. Но " @@ -175493,12 +171785,13 @@ msgstr "Наркоман" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"Ты не особо понял, что произошло, но случилось дерьмо, а единственная мысль " -"в твоей голове это: «Где бы ещё обдолбаться?»." +"Ты не особо понял, что случилось прошлой ночью, но ты проснулся на полу, а " +"всё улетело в полную жопу. Единственная мысль в твоей голове сейчас - это " +"где бы найти ещё дозу." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175509,12 +171802,13 @@ msgstr "Наркоманка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." msgstr "" -"Ты не особо поняла, что произошло, но случилось дерьмо, а единственная мысль" -" в твоей голове это: «Где бы ещё обдолбаться?»." +"Ты не особо поняла, что случилось прошлой ночью, но ты проснулась на полу, а" +" всё улетело в полную жопу. Единственная мысль в твоей голове сейчас - это " +"где бы найти ещё дозу." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175526,12 +171820,12 @@ msgstr "Торчок" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" "После несчастного случая в молодости вы подсели на опиаты, облегчающие вашу " -"боль. Аптеки теперь закрыты, продавцы превратились в зомби, и достать " -"лекарство стало намного сложнее." +"боль. Аптеки теперь закрыты, дилеры превратились в зомби, и утолить вашу " +"привычку стало заметно сложнее." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175543,12 +171837,12 @@ msgstr "Торчок" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "" "После несчастного случая в молодости вы подсели на опиаты, облегчающие вашу " -"боль. Аптеки теперь закрыты, продавцы превратились в зомби, и достать " -"лекарство стало намного сложнее." +"боль. Аптеки теперь закрыты, дилеры превратились в зомби, и утолить вашу " +"привычку стало заметно сложнее." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175559,11 +171853,12 @@ msgstr "Пилот вертолёта" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" -"Вы зарабатывали, перевозя бизнесменов и туристов от одной вертолетной " -"площадки до другой. Катаклизм сбросил вас на землю, но небеса все еще зовут " +"Вы лицензированный пилот, и вы зарабатывали, перевозя бизнесменов и " +"туристов. Сейчас Катаклизм сбросил вас на землю, но небеса все еще зовут " "вас..." #: lang/json/professions_from_json.py @@ -175575,8 +171870,9 @@ msgstr "Пилот вертолёта" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" "Вы зарабатывали, перевозя бизнесменов и туристов от одной вертолетной " "площадки до другой. Катаклизм сбросил вас на землю, но небеса все еще зовут " @@ -175592,12 +171888,13 @@ msgstr "Офицер-кинолог" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" "На работе ты ловил наркоторговцев вместе со своим верным псом-напарником. " "Теперь мир уничтожен, и ничего больше не имеет значения. Но у тебя хотя бы " -"остался преданный друг." +"остался преданный друг, готовый встретить Катаклизм вместе с тобой." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175609,12 +171906,13 @@ msgstr "Офицер-кинолог" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" "На работе ты ловила наркоторговцев вместе со своим верным псом-напарником. " "Теперь мир уничтожен, и ничего больше не имеет значения. Но у тебя хотя бы " -"остался преданный друг." +"остался преданный друг, готовый встретить Катаклизм вместе с тобой." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175625,9 +171923,11 @@ msgstr "Сумасшедший кошатник" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" -msgstr "Все мертвы? Что ж, какая разница… Ведь твои кошки — все твои друзья!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" +msgstr "" +"Все мертвы? Что ж, какая разница, тебе все равно не удавалось особенно " +"подружиться с людьми. Твои кошки — все твои друзья!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175638,9 +171938,11 @@ msgstr "Сумасшедшая кошатница" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" -msgstr "Все мертвы? Что ж, какая разница… Ведь твои кошки — все твои друзья!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" +msgstr "" +"Все мертвы? Что ж, какая разница, тебе все равно не удавалось особенно " +"подружиться с людьми. Твои кошки — все твои друзья!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175651,15 +171953,15 @@ msgstr "Офицер полиции" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Приняв звонок, ты, помощник шерифа в маленьком городке, всё ещё был готов " -"прийти на выручку. Вот только именно тебя в скором времени нужно было " -"спасать — тебе повезло спасти свою жизнь. Но кто признает твой авторитет, " -"если выдавшего тебе жетон правительства больше не существует?" +"Приняв звонок, ты, помощник шерифа в маленьком городке, был готов прийти на " +"выручку. Вот только именно тебя в скором времени нужно было спасать — тебе " +"повезло спасти свою жизнь. Но кто признает твой авторитет, если выдавшего " +"тебе жетон правительства больше не существует?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175670,15 +171972,15 @@ msgstr "Офицер полиции" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"Приняв звонок, ты, помощница шерифа в маленьком городке, всё ещё была готова" -" прийти на выручку. Вот только именно тебя в скором времени нужно было " -"спасать — тебе повезло спасти свою жизнь. Но кто признает твой авторитет, " -"если выдавшего тебе жетон правительства больше не существует?" +"Приняв звонок, ты, помощница шерифа в маленьком городке, была готова прийти " +"на выручку. Вот только именно тебя в скором времени нужно было спасать — " +"тебе повезло спасти свою жизнь. Но кто признает твой авторитет, если " +"выдавшего тебе жетон правительства больше не существует?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175689,13 +171991,13 @@ msgstr "Детектив полиции" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" "Ты был на грани раскрытия своего последнего дела об убийстве, когда " -"разразился Катаклизм. Теперь, когда подозреваемый мёртв и вообще все мертвы," -" тебе нужно закурить." +"разразился Катаклизм. Теперь, когда главный подозреваемый мёртв и вообще все" +" мертвы, тебе нужно закурить." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175706,13 +172008,13 @@ msgstr "Детектив полиции" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "" "Ты была на грани раскрытия своего последнего дела об убийстве, когда " -"разразился Катаклизм. Теперь, когда подозреваемый мёртв и вообще все мертвы," -" тебе нужно закурить." +"разразился Катаклизм. Теперь, когда главный подозреваемый мёртв и вообще все" +" мертвы, тебе нужно закурить." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175725,13 +172027,12 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Как член полицейского силового элитного подразделения, ты лучше натренирован" -" и экипирован для выживания в брутальном бешенстве апокалипсиса. К " -"несчастью, падение общества привело к текущему положению дел — надо драться," -" чтобы просто остаться в живых." +"Как член полицейского силового элитного подразделения, ты отлично " +"натренирован и экипирован для выживания в брутальном бешенстве апокалипсиса." +" К несчастью, цепь командования разорвана - и нужно просто остаться в живых." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175744,13 +172045,13 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"Как член полицейского силового элитного подразделения, ты лучше " +"Как член полицейского силового элитного подразделения, ты отлично " "натренирована и экипирована для выживания в брутальном бешенстве " -"апокалипсиса. К несчастью, падение общества привело к текущему положению дел" -" — надо драться, чтобы просто остаться в живых." +"апокалипсиса. К несчастью, цепь командования разорвана - и нужно просто " +"остаться в живых." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175761,14 +172062,14 @@ msgstr "Рукопашник спецназа" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Ты — член элитного подразделения полиции, и твои навыки рукопашного боя пока" -" что помогали тебе выжить. К несчастью, разрушение общества привело к " -"текущему положению дел — надо драться, чтобы просто остаться в живых." +"Ты — член элитного подразделения полиции, тебя отлично обучили, и ты стал " +"экспертом рукопашного боя. К несчастью, цепь командования разорвана - и " +"нужно просто остаться в живых." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175779,14 +172080,14 @@ msgstr "Рукопашник спецназа" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"Ты — член элитного подразделения полиции, и твои навыки рукопашного боя пока" -" что помогали тебе выжить. К несчастью, разрушение общества привело к " -"текущему положению дел — надо драться, чтобы просто остаться в живых." +"Ты — член элитного подразделения полиции, тебя отлично обучили, и ты стала " +"экспертом рукопашного боя. К несчастью, цепь командования разорвана - и " +"нужно просто остаться в живых." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175798,11 +172099,11 @@ msgstr "Полицейский снайпер" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Твои навыки снайпера отлично помогали тебе на службе, помогая защищать " +"Твои навыки снайпера были очень полезны на службе, помогая защищать " "невиновных с помощью одной точно выпущенной пули. Теперь на первом месте " "стоит выживание, и ты не можешь позволить себе промахнуться, если не хочешь " "оказаться чьим-нибудь ужином." @@ -175817,11 +172118,11 @@ msgstr "Полицейский снайпер" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -"Твои навыки снайпера отлично помогали тебе на службе, помогая защищать " +"Твои навыки снайпера были очень полезны на службе, помогая защищать " "невиновных с помощью одной точно выпущенной пули. Теперь на первом месте " "стоит выживание, и ты не можешь позволить себе промахнуться, если не хочешь " "оказаться чьим-нибудь ужином." @@ -175835,15 +172136,15 @@ msgstr "Ликвидатор беспорядков" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" "Беспорядки и бунты были жестокими, и это ещё до того, как мёртвые встали и " -"начали пожирать живых. Скоро стало ясно, что твой строй вот-вот прорвётся, и" -" тебе удалось выбраться живым только при помощи удачи и кучи проломленных " -"черепов. А худшее всё ещё впереди." +"начали пожирать живых. Ваша линия обороны пала, и тебе удалось выбраться " +"живым только при помощи удачи и кучи проломленных черепов. А худшее всё ещё " +"впереди." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175854,15 +172155,15 @@ msgstr "Ликвидатор беспорядков" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." msgstr "" "Беспорядки и бунты были жестокими, и это ещё до того, как мёртвые встали и " -"начали пожирать живых. Скоро стало ясно, что твой строй вот-вот прорвётся, и" -" тебе удалось выбраться живой только при помощи удачи и кучи проломленных " -"черепов. А худшее всё ещё впереди." +"начали пожирать живых. Ваша линия обороны пала, и тебе удалось выбраться " +"живой только при помощи удачи и кучи проломленных черепов. А худшее всё ещё " +"впереди." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175873,14 +172174,13 @@ msgstr "Продавец автомобилей" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Тебя всегда обвиняли в том, что ты из тех людей, кто за доллар продаст и " -"мать родную. Это всегда обижало тебя: ты бывал на районе пару раз и мог бы " -"запросить и побольше денег… и получить их!" +"Тебя обвиняли в том, что ты из тех, кто продаст родную мать за доллар. Это " +"всегда тебя обижало: ты бывал на районе пару раз и мог бы запросить и " +"побольше денег — и получил бы!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175891,14 +172191,13 @@ msgstr "Продавец автомобилей" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" msgstr "" -"Тебя всегда обвиняли в том, что ты из тех людей, кто за доллар продаст и " -"мать родную. Это всегда обижало тебя: ты была на районе пару раз и могла бы " -"запросить и побольше денег… и получить их!" +"Тебя обвиняли в том, что ты из тех, кто продаст родную мать за доллар. Это " +"всегда тебя обижало: ты бывала на районе пару раз и могла бы запросить и " +"побольше денег — и получила бы!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175909,15 +172208,15 @@ msgstr "Охотник с луком" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"С самого детства ты любил охоту, и вскоре выбор пал на охоту с луком. " -"Поэтому, если бы миру пришёл конец, ты бы ничего не хотел так сильно, как " -"иметь свой верный лук при себе. Так что, когда это всё-таки произошло, ты " -"убедился, что захватил его с собой." +"С самого детства ты любил охоту, и у тебя хорошо получалось обращаться с " +"луком. Поэтому, если бы миру пришёл конец, ты бы ничего не хотел так сильно," +" как иметь свой верный лук при себе. Так что, когда это всё-таки произошло, " +"ты убедился, что захватил его с собой." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175928,15 +172227,15 @@ msgstr "Охотница с луком" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"С самого детства ты любила охоту, и вскоре выбор пал на охоту с луком. " -"Поэтому, если бы миру пришёл конец, ты бы ничего не хотела так сильно, как " -"иметь свой верный лук при себе. Так что, когда это всё-таки произошло, ты " -"убедилась, что захватила его с собой." +"С самого детства ты любила охоту, и у тебя хорошо получалось обращаться с " +"луком. Поэтому, если бы миру пришёл конец, ты бы ничего не хотела так " +"сильно, как иметь свой верный лук при себе. Так что, когда это всё-таки " +"произошло, ты убедилась, что захватила его с собой." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175947,15 +172246,15 @@ msgstr "Охотник с арбалетом" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"С самого детства ты любил охоту, и вскоре выбор пал на охоту с арбалетом. " -"Поэтому, если бы миру пришёл конец, ты бы ничего не хотел так сильно, как " -"иметь свой верный арбалет при себе. Так что, когда это всё-таки произошло, " -"ты убедился, что захватил его с собой." +"С самого детства ты любил охоту, и больше всего тебе нравилось охотиться с " +"арбалетом. Поэтому, если бы миру пришёл конец, ты бы ничего не хотел так " +"сильно, как иметь свой верный арбалет при себе. Так что, когда это всё-таки " +"произошло, ты убедился, что захватил его с собой." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -175966,15 +172265,15 @@ msgstr "Охотница с арбалетом" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." msgstr "" -"С самого детства ты любила охоту, и вскоре выбор пал на охоту с арбалетом. " -"Поэтому, если бы миру пришёл конец, ты бы ничего не хотела так сильно, как " -"иметь свой верный арбалет при себе. Так что, когда это всё-таки произошло, " -"ты убедилась, что захватила его с собой." +"С самого детства ты любила охоту, и больше всего тебе нравилось охотиться с " +"арбалетом. Поэтому, если бы миру пришёл конец, ты бы ничего не хотела так " +"сильно, как иметь свой верный арбалет при себе. Так что, когда это всё-таки " +"произошло, ты убедилась, что захватила его с собой." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -175985,15 +172284,15 @@ msgstr "Охотник с дробовиком" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"С самого детства ты любил охоту, и вскоре выбор пал на охоту с дробовиком. " -"Поэтому, если бы миру пришёл конец, ты бы ничего не хотел так сильно, как " -"иметь свой верный дробовик при себе. Так что, когда это всё-таки произошло, " -"ты убедился, что захватил его с собой." +"С самого детства ты любил охоту, и на один из дней рождения тебе подарили " +"дробовик. Поэтому, если бы миру пришёл конец, ты бы ничего не хотел так " +"сильно, как иметь свой верный дробовик при себе. Так что, когда это всё-таки" +" произошло, ты убедился, что захватил его с собой." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176004,15 +172303,15 @@ msgstr "Охотница с дробовиком" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." msgstr "" -"С самого детства ты любила охоту, и вскоре выбор пал на охоту с дробовиком. " -"Поэтому, если бы миру пришёл конец, ты бы ничего не хотела так сильно, как " -"иметь свой верный дробовик при себе. Так что, когда это всё-таки произошло, " -"ты убедилась, что захватила его с собой." +"С самого детства ты любил охоту, и на один из дней рождения тебе подарили " +"дробовик. Поэтому, если бы миру пришёл конец, ты бы ничего не хотел так " +"сильно, как иметь свой верный дробовик при себе. Так что, когда это всё-таки" +" произошло, ты убедилась, что захватила его с собой." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176023,15 +172322,15 @@ msgstr "Охотник с винтовкой" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"С самого детства ты любил охоту, и вскоре выбор пал на охоту с винтовкой. " -"Поэтому, если бы миру пришёл конец, ты бы ничего не хотел так сильно, как " -"иметь свою верную винтовку при себе. Так что, когда это всё-таки произошло, " -"ты убедился, что захватил её с собой." +"С самого детства ты любил охоту и считал себя метким стрелком. Поэтому, если" +" бы миру пришёл конец, ты бы ничего не хотел так сильно, как иметь свою " +"верную винтовку при себе. Так что, когда это всё-таки произошло, ты " +"убедился, что захватил её с собой." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176042,15 +172341,15 @@ msgstr "Охотница с винтовкой" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." msgstr "" -"С самого детства ты любила охоту, и вскоре выбор пал на охоту с винтовкой. " -"Поэтому, если бы миру пришёл конец, ты бы ничего не хотела так сильно, как " -"иметь свою верную винтовку при себе. Так что, когда это всё-таки произошло, " -"ты убедилась, что захватила её с собой." +"С самого детства ты любил охоту и считала себя метким стрелком. Поэтому, " +"если бы миру пришёл конец, ты бы ничего не хотела так сильно, как иметь свою" +" верную винтовку при себе. Так что, когда это всё-таки произошло, ты " +"убедилась, что захватила её с собой." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176061,10 +172360,10 @@ msgstr "Слесарь" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" "Ты работал в местном хозяйственном магазине и собственноручно отремонтировал" " кучу домов. Сейчас ты смотришь на горизонт разрушенного мира и " @@ -176080,10 +172379,10 @@ msgstr "Слесарь" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" "Ты работала в местном хозяйственном магазине и собственноручно " "отремонтировала кучу домов. Сейчас ты смотришь на горизонт разрушенного мира" @@ -176099,9 +172398,8 @@ msgstr "Дальнобойщик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" "Вы были королем дороги в вашем огромном грузовике и смогли уехать на нем " "туда, где, как вы надеялись, будет безопасно, когда начались бунты. Теперь " @@ -176116,11 +172414,10 @@ msgstr "Дальнобойщик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" -"Вы были королем дороги в вашем огромном грузовике и смогли уехать на нем " +"Вы были королевой дороги в вашем огромном грузовике и смогли уехать на нем " "туда, где, как вы надеялись, будет безопасно, когда начались бунты. Теперь " "остались только вы и кабина верного грузовика." @@ -176137,7 +172434,7 @@ msgid "" "ended, but suspect the undead aren't nearly as tough." msgstr "" "Ты лесоруб и у тебя всё в порядке. Ты рубил деревья до того, как мир рухнул," -" а зомби точно не такие уж крепкие." +" а зомби точно не такие крепкие." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176152,7 +172449,7 @@ msgid "" "ended, but suspect the undead aren't nearly as tough." msgstr "" "Ты лесоруб и у тебя всё в порядке. Ты рубила деревья до того, как мир " -"рухнул, а зомби точно не такие уж крепкие." +"рухнул, а зомби точно не такие крепкие." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176163,13 +172460,15 @@ msgstr "Пеший турист" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Ты жил в своё удовольствие, путешествуя и осматривая достопримечательности " -"за счёт родительского траст-фонда. Но теперь всё пропало, и между тобой и " -"смертью лишь бескрайняя дорога и рюкзак за спиной." +"Последние несколько лет ты жил в своё удовольствие, путешествуя и осматривая" +" достопримечательности за счёт родительского трастового фонда. Вернувшись " +"домой, ты застал лишь руины, и между тобой и смертью лишь бескрайняя дорога " +"и рюкзак за спиной." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176180,13 +172479,15 @@ msgstr "Пешая туристка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." msgstr "" -"Ты жила в своё удовольствие, путешествуя и осматривая достопримечательности " -"за счёт родительского трастового фонда. Но теперь всё пропало, и между тобой" -" и смертью лишь бескрайняя дорога и рюкзак за спиной." +"Последние несколько лет ты жила в своё удовольствие, путешествуя и " +"осматривая достопримечательности за счёт родительского трастового фонда. " +"Вернувшись домой, ты застала лишь руины, и между тобой и смертью лишь " +"бескрайняя дорога и рюкзак за спиной." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176197,11 +172498,13 @@ msgstr "Повар в закусочной" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Ты устроился на работу в ларёк быстрого питания всего неделю назад, а теперь" -" ты изображаешь значение «быстрого» питания, убегая сломя голову." +"Посетители в модном заведении с бургерами, где ты работаешь, сегодня " +"особенно раздражены и недовольны. Похоже, ты узнаешь, что такое быстрое " +"питание… если будешь убегать слишком медленно!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176212,11 +172515,13 @@ msgstr "Повар в закусочной" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" msgstr "" -"Ты устроилась на работу в ларёк быстрого питания всего неделю назад, а " -"теперь ты изображаешь значение «быстрого» питания, убегая сломя голову." +"Посетители в модном заведении с бургерами, где ты работаешь, сегодня " +"особенно раздражены и недовольны. Похоже, ты узнаешь, что такое быстрое " +"питание… если будешь убегать слишком медленно!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176227,15 +172532,12 @@ msgstr "Электрик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" -"Ты часто выполнял электротехнические работы для небольших компаний. Так " -"случилось, что когда произошёл Катаклизм, ты как раз менял проводку в одном " -"из этих пародий на убежище. К сожалению, ты успел довести проводку только до" -" компьютера… как много же пользы он теперь принесёт." +"Мелкие предприятия часто вызывали тебя для работ с электрической сетью. Ты " +"уже почти закончил свою работу на объекте, когда вся электросеть внезапно " +"перестала работать." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176246,15 +172548,12 @@ msgstr "Электрик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." msgstr "" -"Ты часто выполняла электротехнические работы для небольших компаний. Так " -"случилось, что когда произошёл Катаклизм, ты как раз меняла проводку в одном" -" из этих пародий на убежище. К сожалению, ты успела довести проводку только " -"до компьютера… как много же пользы он теперь принесёт." +"Мелкие предприятия часто вызывали тебя для работ с электрической сетью. Ты " +"уже почти закончила свою работу на объекте, когда вся электросеть внезапно " +"перестала работать." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176265,13 +172564,14 @@ msgstr "Хакер" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" "Кофеиновые таблетки и ночи перед монитором дали тебе навыки в области, " -"которая, на первый взгляд, кажется бесполезной после Катаклизма. Если только" -" тебе не удастся найти военный суперкомпьютер." +"которая, на первый взгляд, кажется бесполезной после Катаклизма, ведь нигде " +"нет электричества. Если только тебе не удастся найти военный суперкомпьютер." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176282,13 +172582,14 @@ msgstr "Хакер" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." msgstr "" "Кофеиновые таблетки и ночи перед монитором дали тебе навыки в области, " -"которая, на первый взгляд, кажется бесполезной после Катаклизма. Если только" -" тебе не удастся найти военный суперкомпьютер." +"которая, на первый взгляд, кажется бесполезной после Катаклизма, ведь нигде " +"нет электричества. Если только тебе не удастся найти военный суперкомпьютер." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176299,13 +172600,14 @@ msgstr "Студент" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Ты был студентом в колледже, но тесты, с которыми ты столкнёшься теперь, " -"имеют гораздо более высокие ставки. Может быть даже найдётся что-то полезное" -" в одной из тех книг, что ты таскал все эти годы." +"Ты был обычным студентом в колледже, но теперь тебя ждет экзамен, к которому" +" невозможно подготовиться, и это будет похуже геометрии. Может быть даже " +"найдётся что-то полезное в одной из тех книг, что ты таскал все эти годы." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176316,13 +172618,15 @@ msgstr "Студентка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." msgstr "" -"Ты была студенткой в колледже, но тесты, с которыми ты столкнёшься теперь, " -"имеют гораздо более высокие ставки. Может быть даже найдётся что-то полезное" -" в одной из тех книг, что ты таскала все эти годы." +"Ты была обычной студенткой в колледже, но теперь тебя ждет экзамен, к " +"которому невозможно подготовиться, и это будет похуже геометрии. Может быть " +"даже найдётся что-то полезное в одной из тех книг, что ты таскал все эти " +"годы." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176333,9 +172637,9 @@ msgstr "Жертва душа" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" "Когда настал Катаклизм, ты принимал приятный горячий душ! Тебе едва удалось " "выбежать с куском мыла и самой наиполезнейшей вещью на земле… Полотенцем." @@ -176349,9 +172653,9 @@ msgstr "Жертва душа" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." msgstr "" "Когда настал Катаклизм, ты принимала приятный горячий душ! Тебе едва удалось" " выбежать с куском мыла и самой наиполезнейшей вещью на земле… Полотенцем." @@ -176365,11 +172669,11 @@ msgstr "Байкер" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Большую часть своей жизни ты не слезал с Харлея и, естественно, не покинешь " -"его седло до конца своей жизни." +"Большую часть своей жизни ты не слезал с Харлея, покоряя дороги с членами " +"твоего клуба. Теперь все они мертвы. Лети вдаль или умри." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176380,11 +172684,11 @@ msgstr "Байкерша" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." msgstr "" -"Большую часть своей жизни ты не слезала с Харлея и, естественно, не покинешь" -" его седло до конца своей жизни." +"Большую часть своей жизни ты не слезала с Харлея, покоряя дороги с членами " +"твоего клуба. Теперь все они мертвы. Лети вдаль или умри." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176395,11 +172699,12 @@ msgstr "Балерун" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" -"До Катаклизма ты занимался бальными танцами, а сейчас используешь эти " -"навыки, чтобы спасти свою жизнь." +"Дела на задались, когда ты добирался на своё занятие по танцам. Зомби - " +"ужасные танцоры, но ты не дашь им наступить тебе на ногу." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176410,11 +172715,12 @@ msgstr "Балерина" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." msgstr "" -"До Катаклизма ты занималась бальными танцами, а сейчас используешь эти " -"навыки, чтобы спасти свою жизнь." +"Дела на задались, когда ты добиралась на своё занятие по танцам. Зомби - " +"ужасные танцоры, но ты не дашь им наступить тебе на ногу." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176425,13 +172731,13 @@ msgstr "Вор-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Ты совершил множество высококлассных краж, но твои успехи ничего не значат в" -" этом мире. Всё, что у тебя осталось, это инструменты твоего ремесла и твой " -"безупречный вкус." +"Безупречный стиль и несколько бионических трюков в рукаве позволили тебе " +"провести серию дерзких ограблений. Полицейские были бы рады добраться до " +"тебя, но теперь им явно не до того." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176442,13 +172748,13 @@ msgstr "Воровка-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." msgstr "" -"Ты совершила множество высококлассных краж, но твои успехи ничего не значат " -"в этом мире. Всё, что у тебя осталось, это инструменты твоего ремесла и твой" -" безупречный вкус." +"Безупречный стиль и несколько бионических трюков в рукаве позволили тебе " +"провести серию дерзких ограблений. Полицейские были бы рады добраться до " +"тебя, но теперь им явно не до того." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176459,7 +172765,7 @@ msgstr "Пациент-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." @@ -176479,7 +172785,7 @@ msgstr "Пациентка-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." @@ -176499,11 +172805,11 @@ msgstr "Пациент" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Когда диагноз подтвердился, ты был готов бороться за свою жизнь. Теперь, в " -"эти новые времена, ты должен вспомнить свою упрямую клятву." +"Когда диагноз подтвердился, ты был поклялся бороться за свою жизнь и никогда" +" не поддаваться отчаянию. Пришло время вспомнить свою клятву." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176514,11 +172820,11 @@ msgstr "Пациентка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." msgstr "" -"Когда диагноз подтвердился, ты была готова бороться за свою жизнь. Теперь, в" -" эти новые времена, ты должна вспомнить свою упрямую клятву." +"Когда диагноз подтвердился, ты был поклялась бороться за свою жизнь и " +"никогда не поддаваться отчаянию. Пришло время вспомнить свою клятву." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176530,10 +172836,12 @@ msgstr "Невольный мутант" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" "Ты был подопытным кроликом, на котором лабораторные техники изучали " -"безмерную силу мутаций." +"безмерную силу мутаций. Теперь ты полон решимости выжить вопреки всему, что " +"с тобой сделали." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176545,10 +172853,12 @@ msgstr "Невольный мутант" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" "Ты была подопытным кроликом, на котором лабораторные техники изучали " -"безмерную силу мутаций." +"безмерную силу мутаций. Теперь ты полна решимости выжить вопреки всему, что " +"с тобой сделали." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176560,8 +172870,8 @@ msgstr "Добровольный мутант" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" "Твоим мечтам стать сверхчеловеком посредством генетических изменений, " "возможно, не хватило совсем чуть-чуть, но когда разразился Катаклизм, ты и " @@ -176577,8 +172887,8 @@ msgstr "Добровольный мутант" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." msgstr "" "Твоим мечтам стать сверхчеловеком посредством генетических изменений, " "возможно, не хватило совсем чуть-чуть, но когда разразился Катаклизм, ты и " @@ -176595,7 +172905,8 @@ msgctxt "prof_desc_male" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" "Когда-то ты был нормальным. До обследований, до процедур, до того, как они " "уничтожили все внешние признаки твоей человечности. Теперь ты больше машина," @@ -176613,7 +172924,8 @@ msgctxt "prof_desc_female" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" "Когда-то ты была нормальной. До обследований, до процедур, до того, как они " "уничтожили все внешние признаки твоей человечности. Теперь ты больше машина," @@ -176667,13 +172979,13 @@ msgstr "Спортсмен-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Как жаль, что произошёл апокалипсис — у тебя никогда не будет шанса " -"выступить на киберолимпийских играх. Теперь единственное, что стоит между " -"тобой и смертью от зомби — это твоя необыкновенная сила киборга." +"У вас никогда больше не будет шанса выступить на Киберолимпиаде. Все, что " +"осталось от этой мечты - немного протеинового коктейля. А, ещё бугрящиеся, " +"кибернетически усиленные мышцы." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176684,13 +172996,13 @@ msgstr "Спортсменка-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." msgstr "" -"Как жаль, что произошёл апокалипсис — у тебя никогда не будет шанса " -"выступить на киберолимпийских играх. Теперь единственное, что стоит между " -"тобой и смертью от зомби — это твоя необыкновенная сила киборга." +"У вас никогда больше не будет шанса выступить на Киберолимпиаде. Все, что " +"осталось от этой мечты - немного протеинового коктейля. А, ещё бугрящиеся, " +"кибернетически усиленные мышцы." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176701,12 +173013,12 @@ msgstr "Бионический бегун" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" "Ты был тем спортсменом, что не может сойти с пути. Тебе нравилось бегать, и " -"ты улучшил своё тело, чтобы бегать ещё лучше. Теперь полно всего, от чего " +"ты улучшил своё тело, чтобы бегать ещё быстрее. Теперь полно всего, от чего " "лучше уносить ноги, но ты в этом мастер." #: lang/json/professions_from_json.py @@ -176718,13 +173030,13 @@ msgstr "Бионическая бегунья" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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." +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." msgstr "" "Ты была той спортсменкой, что не может сойти с пути. Тебе нравилось бегать, " -"и ты улучшила своё тело, чтобы бегать ещё лучше. Теперь полно всего, от чего" -" лучше уносить ноги, но ты в этом мастер." +"и ты улучшила своё тело, чтобы бегать ещё быстрее. Теперь полно всего, от " +"чего лучше уносить ноги, но ты в этом мастер." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176770,8 +173082,8 @@ msgstr "Пожарный-бионик" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" "Ты принадлежишь ко второму поколению улучшенных пожарных и кибернетически " "усовершенствован для работы в самых критических чрезвычайных ситуациях. " @@ -176787,11 +173099,11 @@ msgstr "Пожарный-бионик" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." msgstr "" "Ты принадлежишь ко второму поколению улучшенных пожарных и кибернетически " -"усовершенствована для работы в самых критических чрезвычайных ситуациях. " +"усовершенствован для работы в самых критических чрезвычайных ситуациях. " "Конец света определённо считается такой ситуацией." #: lang/json/professions_from_json.py @@ -176803,9 +173115,9 @@ msgstr "Эксперт-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" "До апокалипсиса тебя приняли на работу в крупную международную корпорацию в " "качестве представителя и технического советника за невероятную мощь твоего " @@ -176820,9 +173132,9 @@ msgstr "Эксперт-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." msgstr "" "До апокалипсиса тебя приняли на работу в крупную международную корпорацию в " "качестве представителя и технического советника за невероятную мощь твоего " @@ -176837,13 +173149,13 @@ msgstr "Солдат-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" "Ты — результат одной из последних исследовательских программ армии, прототип" -" солдата-киборга. В то время как твои товарищи превратились в нежить, ты всё" -" ещё жив благодаря своим усовершенствованиям." +" солдата-киборга. Тебя создали для войн, которых уже не произойдет, но война" +" никогда не меняется." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176854,13 +173166,13 @@ msgstr "Солдат-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." msgstr "" "Ты — результат одной из последних исследовательских программ армии, прототип" -" солдата-киборга. В то время как твои товарищи превратились в нежить, ты всё" -" ещё жива благодаря своим усовершенствованиям." +" солдата-киборга. Тебя создали для войн, которых уже не произойдет, но война" +" никогда не меняется." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176871,13 +173183,15 @@ msgstr "Снайпер-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Твоя бионика, снаряжение, а также всесторонняя подготовка позволяют тебе " -"поражать цели на невероятных дистанциях, даже после нескольких недель полной" -" изоляции на вражеской территории." +"В рамках сверхсекретной правительственной программы из тебя хотели сделать " +"идеального снайпера. Твоя бионика, снаряжение, а также всесторонняя " +"подготовка позволяют тебе поражать цели на невероятных дистанциях, даже " +"после нескольких недель полной изоляции на вражеской территории." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176888,13 +173202,15 @@ msgstr "Снайпер-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -"Твоя бионика, снаряжение, а также всесторонняя подготовка позволяют тебе " -"поражать цели на невероятных дистанциях, даже после нескольких недель полной" -" изоляции на вражеской территории." +"В рамках сверхсекретной правительственной программы из тебя хотели сделать " +"идеального снайпера. Твоя бионика, снаряжение, а также всесторонняя " +"подготовка позволяют тебе поражать цели на невероятных дистанциях, даже " +"после нескольких недель полной изоляции на вражеской территории." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176905,15 +173221,15 @@ msgstr "Агент-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Твоё тело содержит несколько бионических модулей, стоивших " +"Твоё тело скрывает несколько бионических модулей, стоивших " "налогоплательщикам миллионы долларов. Правительство готовило из тебя " -"специалиста по проникновению и разведке, поэтому ты имеешь ночное зрение, а " -"также модули обнаружения и взлома." +"специалиста по проникновению и разведке, поэтому у тебя есть ночное зрение, " +"а также модули обнаружения и взлома." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176924,15 +173240,15 @@ msgstr "Агент-бионик" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -"Твоё тело содержит несколько бионических модулей, стоивших " +"Твоё тело скрывает несколько бионических модулей, стоивших " "налогоплательщикам миллионы долларов. Правительство готовило из тебя " -"специалиста по проникновению и разведке, поэтому ты имеешь ночное зрение, а " -"также модули обнаружения и взлома." +"специалиста по проникновению и разведке, поэтому у тебя есть ночное зрение, " +"а также модули обнаружения и взлома." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176945,11 +173261,11 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" "Ты бионический скрытый агент, продукт многомиллионного секретного " "исследования, способный тихо ликвидировать цель, при этом сохраняя " -"безобидный вид." +"безобидный вид. Твой куратор уже неделю не выходит на связь." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176962,11 +173278,11 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" "Ты бионический скрытый агент, продукт многомиллионного секретного " "исследования, способный тихо ликвидировать цель, при этом сохраняя " -"безобидный вид." +"безобидный вид. Твой куратор уже неделю не выходит на связь." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -176977,17 +173293,15 @@ msgstr "Бионический Гангстер" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" -"Ты был правой рукой босса, его протеже; босс всегда рассчитывал на тебя в " -"самой сложной работёнке. Увидев твой потенциал, он заплатил за «базовые» " -"модификации и лучшую экипировку, чтобы помочь тебе в работе. Некоторое время" -" ты наслаждался свободой делать, что захочется. Теперь тебе потребуются эти " -"навыки, чтобы выжить." +"Ты был любимцем босса, его протеже; босс всегда рассчитывал на тебя в самой " +"сложной работёнке. Он оплатил «базовые» модификации и лучшую доступную " +"экипировку, чтобы подготовить тебя к самому большому налёту. К сожалению, " +"когда ты вышел из под наркоза, твою банду уже сожрали." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -176998,17 +173312,15 @@ msgstr "Бионический Гангстер" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" -"Ты была правой рукой босса, его протеже; босс всегда рассчитывал на тебя в " -"самой сложной работёнке. Увидев твой потенциал, он заплатил за «базовые» " -"модификации и лучшую экипировку, чтобы помочь тебе в работе. Некоторое время" -" ты наслаждалась свободой делать, что захочется. Теперь тебе потребуются эти" -" навыки, чтобы выжить." +"Ты была любимцем босса, его протеже; босс всегда рассчитывал на тебя в самой" +" сложной работёнке. Он оплатил «базовые» модификации и лучшую доступную " +"экипировку, чтобы подготовить тебя к самому большому налёту. К сожалению, " +"когда ты вышла из под наркоза, твою банду уже сожрали." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177019,13 +173331,14 @@ msgstr "Неисправный киборг" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Твоё тело — свалка из бионических модулей. У твоих аккумуляторов большая " -"ёмкость, но в тебе полно неисправных бионических частей. По крайней мере, " -"твой этаноловый энергогенератор всё ещё работает." +"Серия неудачных операций превратила твоё тело в свалку бионических модулей. " +"У твоих аккумуляторов большая ёмкость, но в тебе полно неисправных " +"бионических частей. По крайней мере, твой этаноловый энергогенератор всё ещё" +" работает." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177036,13 +173349,14 @@ msgstr "Неисправный киборг" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." msgstr "" -"Твоё тело — свалка из бионических модулей. У твоих аккумуляторов большая " -"ёмкость, но в тебе полно неисправных бионических частей. По крайней мере, " -"твой этаноловый энергогенератор всё ещё работает." +"Серия неудачных операций превратила твоё тело в свалку бионических модулей. " +"У твоих аккумуляторов большая ёмкость, но в тебе полно неисправных " +"бионических частей. По крайней мере, твой этаноловый энергогенератор всё ещё" +" работает." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177054,16 +173368,11 @@ msgstr "Коммерческий киборг" msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" -"У вас всегда были самые новые и лучшие устройства и приспособления, так что " -"стоит ли удивляться, что вы усовершенствовали своё собственное тело наряду " -"со смартфоном? И только время покажет, достаточно ли быть чудом бионической " -"технологии и иметь страсть к электронике, чтобы гарантировать себе выживание" -" после апокалипсиса." +"У тебя всегда были самые новые и лучшие устройства и приспособления, так что" +" стоит ли удивляться, что ты усовершенствовал свою плоть вместе со " +"смартфоном?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177075,16 +173384,11 @@ msgstr "Коммерческий киборг" msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" -"У вас всегда были самые новые и лучшие устройства и приспособления, так что " -"стоит ли удивляться, что вы усовершенствовали своё собственное тело наряду " -"со смартфоном? И только время покажет, достаточно ли быть чудом бионической " -"технологии и иметь страсть к электронике, чтобы гарантировать себе выживание" -" после апокалипсиса." +"У тебя всегда были самые новые и лучшие устройства и приспособления, так что" +" стоит ли удивляться, что ты усовершенствовала свою плоть вместе со " +"смартфоном?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177098,8 +173402,8 @@ msgid "" "Your house has been demolished and your planet destroyed, but at least you " "still have your towel." msgstr "" -"Твой дом снесён, планета уничтожена, но не беда, главное, что у тебя есть, —" -" полотенце." +"Твой дом снесён, планета уничтожена, но не беда, главное, что у тебя всё ещё" +" есть твое полотенце." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177113,8 +173417,8 @@ msgid "" "Your house has been demolished and your planet destroyed, but at least you " "still have your towel." msgstr "" -"Твой дом снесён, планета уничтожена, но не беда, главное, что у тебя есть, —" -" полотенце." +"Твой дом снесён, планета уничтожена, но не беда, главное, что у тебя всё ещё" +" есть твое полотенце." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177126,12 +173430,12 @@ msgstr "Зверолов" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" "Всю свою жизнь вы с отцом занимались звероловством. Вы неплохо жили за счёт " "добычи диких зверей и выпуска пособий по их поимке. Помогут ли теперь эти " -"навыки?" +"навыки против нынешней необычной дичи?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177143,12 +173447,12 @@ msgstr "Зверолов" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." msgstr "" "Всю свою жизнь вы с отцом занимались звероловством. Вы неплохо жили за счёт " "добычи диких зверей и выпуска пособий по их поимке. Помогут ли теперь эти " -"навыки?" +"навыки против нынешней необычной дичи?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177159,13 +173463,13 @@ msgstr "Кузнец" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"В колледже ты записался на факультатив по изучению кузнечного дела, а вскоре" -" после этого наступил конец света. Ты еле-еле вырвался из кабинета, но при " -"этом сохранил кое-какие полезные вещички." +"Проблемы начались, когда ты ты выходил с занятий по кузнечному мастерству в " +"твоём колледже, но несмотря на хаос, ты не растерял полезные инструменты, " +"которые были при тебе." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177176,13 +173480,13 @@ msgstr "Кузнец" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." msgstr "" -"В колледже ты записалась на факультатив по изучению кузнечного дела, а " -"вскоре после этого наступил конец света. Ты еле-еле вырвалась из кабинета, " -"но при этом сохранила кое-какие полезные вещички." +"Проблемы начались, когда ты ты выходила с занятий по кузнечному мастерству в" +" твоём колледже, но несмотря на хаос, ты не растеряла полезные инструменты, " +"которые были при тебе." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177195,7 +173499,7 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" "Ты обожаешь смешить людей. Сбылась твоя голубая мечта — бросить школу и " "выступать на детских праздниках, но случился конец света. Теперь на тебе " @@ -177212,7 +173516,7 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." +"There are precious few balloon animals in your future now." msgstr "" "Ты обожаешь смешить людей. Сбылась твоя голубая мечта — бросить школу и " "выступать на детских праздниках, но случился конец света. Теперь на тебе " @@ -177227,12 +173531,12 @@ msgstr "Раб БДСМ" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"В чехарде конца света злая судьба разделила тебя со своей госпожой. Теперь " +"В чехарде конца света злая судьба разделила тебя со твоей госпожой. Теперь " "ты предоставлен самому себе. На тебе остался чёрный кожаный костюм, " "сексуально обтягивающий тело. К сожалению, у апокалипсиса нет стоп-слов." @@ -177245,12 +173549,12 @@ msgstr "Рабыня БДСМ" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"В чехарде конца света злая судьба разделила тебя со своим хозяином. Теперь " +"В чехарде конца света злая судьба разделила тебя с твоим господином. Теперь " "ты предоставлена самой себе. На тебе остался чёрный кожаный костюм, " "сексуально обтягивающий тело. К сожалению, у апокалипсиса нет стоп-слов." @@ -177295,13 +173599,15 @@ msgstr "Отаку" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Поздно вечером ты с друзьями смотрел аниме под лёгкий перекус, готовясь к " -"грандиозному слёту анимешников. Но как раз в этот день наступил апокалипсис." -" По крайней мере, ты готов к тому, если твой костюм порвут." +"После многих вечеров просмотра аниме с друзьями под лёгкий перекус ты решил " +"отправиться на грандиозный слёт анимешников. К сожалению, зомби съели твоих " +"друзей, и хуже того, слёт отменили. По крайней мере, ты можешь подлатать " +"свой костюм, если его порвут." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177312,13 +173618,15 @@ msgstr "Отаку" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"Поздно вечером ты с подругами смотрела аниме под лёгкий перекус, готовясь к " -"грандиозному слёту анимешников. Но как раз в этот день наступил апокалипсис." -" По крайней мере, ты готова к тому, если твой костюм порвут." +"После многих вечеров просмотра аниме с друзьями под лёгкий перекус ты решила" +" отправиться на грандиозный слёт анимешников. К сожалению, зомби съели твоих" +" друзей, и хуже того, слёт отменили. По крайней мере, ты можешь подлатать " +"свой костюм, если его порвут." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177361,11 +173669,11 @@ msgstr "Панк-рокер" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"Апокалипсис исполнил твои заветные психотические мечты. Система рухнула и " -"настало время потанцевать на костях старого мира!" +"Все эти жестокие песни о конце света наконец воплотились в жизнь. Система " +"рухнула, и настало время потанцевать на костях старого мира!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177376,11 +173684,11 @@ msgstr "Панк-рокерша" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" msgstr "" -"Апокалипсис исполнил твои заветные психотические мечты. Система рухнула и " -"настало время потанцевать на костях старого мира!" +"Все эти жестокие песни о конце света наконец воплотились в жизнь. Система " +"рухнула, и настало время потанцевать на костях старого мира!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177391,15 +173699,15 @@ msgstr "Пожарный" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" -"Первой встав на пути катастрофы, ты оказалась непосредственным участником " -"кошмарных событий апокалипсиса. На вызове ты осталась без большей части " -"экипировки и без своего подразделения и была вынуждена бороться за свою " -"жизнь при помощи верного багра и защитного костюма." +"Первым встав на пути катастрофы, ты оказался непосредственным участником " +"кошмарных событий апокалипсиса. На вызове ты остался без большей части " +"экипировки и без своего подразделения и был вынужден бороться за свою жизнь " +"при помощи верного багра и защитного костюма." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177410,10 +173718,10 @@ msgstr "Пожарный" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "" "Первой встав на пути катастрофы, ты оказалась непосредственным участником " "кошмарных событий апокалипсиса. На вызове ты осталась без большей части " @@ -177429,7 +173737,7 @@ msgstr "Руди" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" "Твоя cка-группа распалась после того, как барабанщик стал зомби, и теперь ты" @@ -177444,7 +173752,7 @@ msgstr "Руди" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" "Твоя cка-группа распалась после того, как барабанщик стал зомби, и теперь ты" @@ -177459,11 +173767,11 @@ msgstr "Почтальон" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Твой навык избегания собак и выброшенных детских игрушек во время доставки " -"почты даёт тебе преимущество в новой роли выжившего." +"Ни снег, ни дождь, ни жара, ни мрак ночи не помешают вам доставить посылку " +"вовремя… а вот инопланетян никто не упоминал." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177474,11 +173782,11 @@ msgstr "Почтальон" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." msgstr "" -"Твой навык избегания собак и выброшенных детских игрушек во время доставки " -"почты даёт тебе преимущество в новой роли выжившего." +"Ни снег, ни дождь, ни жара, ни мрак ночи не помешают вам доставить посылку " +"вовремя… а вот инопланетян никто не упоминал." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177489,9 +173797,12 @@ msgstr "Заключённый" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." -msgstr "Катаклизм дал тебе шанс сбежать, но цена свободы непомерно высока." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." +msgstr "" +"Твое дело в суде было спорным, но в итоге ты не избежал попадания за " +"решётку. Катаклизм дал тебе шанс сбежать, но цена свободы непомерно высока." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177502,9 +173813,12 @@ msgstr "Заключённая" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." -msgstr "Катаклизм дал тебе шанс сбежать, но цена свободы непомерно высока." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." +msgstr "" +"Твое дело в суде было спорным, но в итоге ты не избежала попадания за " +"решётку. Катаклизм дал тебе шанс сбежать, но цена свободы непомерно высока." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177515,13 +173829,13 @@ msgstr "Осуждённый к смертной казни" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" -"Ты был осуждённым серийным убийцей, который уже был готов пойти по зелёной " -"миле. Но теперь, когда все мертвы, а истинная смерть исходит только из ваших" -" рук, у вас появилось много работы." +"Ты был осуждённым серийным убийцей, уже готовым пойти по зелёной миле. Но " +"теперь по иронии судьбы ты один из немногих выживших, а истинная смерть " +"исходит только из твоих рук, так что у тебя много работы." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177532,13 +173846,13 @@ msgstr "Осуждённая к смертной казни" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." msgstr "" -"Ты была осуждённой серийной убийцей, которая уже был готова пойти по зелёной" -" миле. Но теперь, когда все мертвы, а истинная смерть исходит только из " -"ваших рук, у вас появилось много работы." +"Ты была осуждённой серийной убийцей, уже готовой пойти по зелёной миле. Но " +"теперь по иронии судьбы ты одна из немногих выживших, а истинная смерть " +"исходит только из твоих рук, так что у тебя много работы." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177551,7 +173865,7 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" "У тебя был гениальный план умыкнуть чуточку денег со счетов твоей компании. " "План немедленно провалился, а тебя арестовали. Они сказали, что ты не " @@ -177568,7 +173882,7 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" "У тебя был гениальный план умыкнуть чуточку денег со счетов твоей компании. " "План немедленно провалился, а тебя арестовали. Они сказали, что ты не " @@ -177617,11 +173931,13 @@ msgstr "Политический преступник" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" -"Показать всем, что творится в тех лабораториях, было благородной целью. Ты " -"уверен, что смог бы остановить Катаклизм, если бы не то обвинение." +"Ты сделал всё, что мог, чтобы показать ужасы, творящиеся в этих " +"лабораториях, но тебя поймали и бросили в тюрьму по сфабрикованным " +"обвинениям, чтобы заставить замолчать. Им стоило тебя послушать." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177632,11 +173948,13 @@ msgstr "Политическая преступница" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" -"Показать всем, что творится в тех лабораториях, было благородной целью. Ты " -"уверена, что смогла бы остановить Катаклизм, если бы не то обвинение." +"Ты сделала всё, что мог, чтобы показать ужасы, творящиеся в этих " +"лабораториях, но тебя поймали и бросили в тюрьму по сфабрикованным " +"обвинениям, чтобы заставить замолчать. Им стоило тебя послушать." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177681,11 +173999,13 @@ msgstr "Взломщик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Ты думал, это мог бы быть твой счастливый взлом. Можно ли считать взломом " -"проникновение в дом, если все в городе превратились в нежить?" +"Ты думал, это мог бы быть твой счастливый взлом. Куча добра и никаких " +"полицейских. Можно ли считать взломом проникновение в дом, если все в городе" +" превратились в нежить?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177696,11 +174016,13 @@ msgstr "Взломщица" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" msgstr "" -"Ты думала, это мог бы быть твой счастливый взлом. Можно ли считать взломом " -"проникновение в дом, если все в городе превратились в нежить?" +"Ты думала, это мог бы быть твой счастливый взлом. Куча добра и никаких " +"полицейских. Можно ли считать взломом проникновение в дом, если все в городе" +" превратились в нежить?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177711,15 +174033,12 @@ msgstr "Кибер-убийца" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"Пройдя ряд болезненных и дорогостоящих операций, ты стал ходячим бионическим" -" оружием. Твои услуги в качестве наёмника были доступны тем, кто способен " -"предложить самую высокую цену. Теперь, когда привычная жизнь кончилась, эти " -"бионические улучшения могут обозначить разницу между жизнью и смертью." +"Пройдя ряд болезненных и дорогостоящих операций, вы стали ходячим " +"бионическим оружием. Ваши услуги в качестве наемника доступны тем, кто " +"способен предложить самую высокую цену." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177730,16 +174049,12 @@ msgstr "Кибер-убийца" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"Пройдя ряд болезненных и дорогостоящих операций, ты стала ходячим " -"бионическим оружием. Твои услуги в качестве наёмника были доступны тем, кто " -"способен предложить самую высокую цену. Теперь, когда привычная жизнь " -"кончилась, эти бионические улучшения могут обозначить разницу между жизнью и" -" смертью." +"Пройдя ряд болезненных и дорогостоящих операций, вы стали ходячим " +"бионическим оружием. Ваши услуги в качестве наемника доступны тем, кто " +"способен предложить самую высокую цену." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177752,13 +174067,13 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Всю жизнь ты увлекался бионическими улучшениями. Это увлечение привело тебя " -"в теневой мир подпольных бионических клиник и самостоятельно установленных " -"подержанных КБМ. Теперь мир изменился, но твоя постчеловеческая жажда всё " -"ещё кричит о себе; где бы раздобыть бионику, чтобы утолить её?" +"Всю жизнь ты увлекался бионическими улучшениями и это привело тебя в теневой" +" мир подпольных бионических клиник и самостоятельно установленных " +"подержанных КБМ. Твоя постчеловеческая жажда всё ещё кричит о себе; где бы " +"раздобыть бионику, чтобы утолить её?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177771,13 +174086,13 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"Всю жизнь ты увлекалась бионическими улучшениями. Это увлечение привело тебя" -" в теневой мир подпольных бионических клиник и самостоятельно установленных " -"подержанных КБМ. Теперь мир изменился, но твоя постчеловеческая жажда всё " -"ещё кричит о себе; где бы раздобыть бионику, чтобы утолить её?" +"Всю жизнь ты увлекалась бионическими улучшениями и это привело тебя в " +"теневой мир подпольных бионических клиник и самостоятельно установленных " +"подержанных КБМ. Твоя постчеловеческая жажда всё ещё кричит о себе; где бы " +"раздобыть бионику, чтобы утолить её?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177789,14 +174104,13 @@ msgstr "Бионический монстр" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Полностью поддавшись бионическому психозу, ты стал уродливым " -"постчеловеческим монстром, которому нет места в обществе. Раньше ты был " -"вынужден скрываться в тенях, но теперь ты видишь в новой катастрофе целый " -"мир, где есть ниша даже для такого существа, как ты." +"Полностью поддавшись бионическому психозу, ты деградировал в " +"постчеловеческого монстра, которому приходилось скрываться в тени, но теперь" +" ты понял, что в этом новом опустошенном мире даже такое создание как ты " +"сможет найти своё место." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177808,14 +174122,13 @@ msgstr "Бионический монстр" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"Полностью поддавшись бионическому психозу, ты стала уродливым " -"постчеловеческим монстром, которому нет места в обществе. Раньше ты была " -"вынуждена скрываться в тенях, но теперь ты видишь в новой катастрофе целый " -"мир, где есть ниша даже для такого существа, как ты." +"Полностью поддавшись бионическому психозу, ты деградировала в " +"постчеловеческого монстра, которому приходилось скрываться в тени, но теперь" +" ты поняла, что в этом новом опустошенном мире даже такое создание как ты " +"сможет найти своё место." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177826,11 +174139,13 @@ msgstr "Адвокат" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Теперь вместо того, чтобы жаловаться на стоимость твоих услуг, клиенты " -"пытаются съесть твой мозг. Ты даже не знаешь, что хуже." +"Жури присяжных уже плясало под вашу дудку, но когда ответчик попытался " +"съесть ваш мозг, вам пришлось с позором бежать из зала суда. Теперь никому " +"нет дела до ваших возражений." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177841,11 +174156,13 @@ msgstr "Адвокат" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." msgstr "" -"Теперь вместо того, чтобы жаловаться на стоимость твоих услуг, клиенты " -"пытаются съесть твой мозг. Ты даже не знаешь, что хуже." +"Жури присяжных уже плясало под вашу дудку, но когда ответчик попытался " +"съесть ваш мозг, вам пришлось с позором бежать из зала суда. Теперь никому " +"нет дела до ваших возражений." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177856,15 +174173,13 @@ msgstr "Священник" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Когда начался апокалипсис, ты сделал всё возможное, чтобы защитить свой " -"приход, но, похоже, молитв оказалось недостаточно. Теперь все прихожане " -"мертвы, и тебе бы не помешало найти что-нибудь более существенное для своей " -"защиты." +"Грядет царствие! Вы сделали всё возможное, чтобы защитить свой приход, но, " +"похоже, молитв оказалось недостаточно. Теперь все прихожане мертвы, и вам бы" +" не помешало найти что-нибудь более существенное для своей защиты." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -177875,15 +174190,13 @@ msgstr "Священница" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." msgstr "" -"Когда начался апокалипсис, ты сделала всё возможное, чтобы защитить свой " -"приход, но, похоже, молитв оказалось недостаточно. Теперь все прихожане " -"мертвы, и тебе бы не помешало найти что-нибудь более существенное для своей " -"защиты." +"Грядет царствие! Вы сделали всё возможное, чтобы защитить свой приход, но, " +"похоже, молитв оказалось недостаточно. Теперь все прихожане мертвы, и вам бы" +" не помешало найти что-нибудь более существенное для своей защиты." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -177929,12 +174242,12 @@ msgstr "Имам" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" "Вы провели много времени до апокалипсиса в местной мечети, изучая слова " -"Пророка и Корана и молитвами направляли местных на путь истинный. Тогда они " +"Пророка и Коран и молитвами направляя местных на путь истинный. Тогда они " "приходили издалека, чтобы послушать вас, теперь же они приходят съесть ваши " "мозги." @@ -177948,14 +174261,14 @@ msgstr "Имам" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"Ты провела много времени до апокалипсиса в местной мечети, изучая слова " -"Пророка и Корана и молитвами направляли местных на путь истинный. Тогда они " -"приходили издалека, чтобы послушать тебя, теперь же они приходят съесть твои" -" мозги." +"Вы провели много времени до апокалипсиса в местной мечети, изучая слова " +"Пророка и Коран и молитвами направляя местных на путь истинный. Тогда они " +"приходили издалека, чтобы послушать вас, теперь же они приходят съесть ваши " +"мозги." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178000,8 +174313,8 @@ msgid "" " Normally, you can answer any question, but even you are not quite sure " "what to do about the ravenous undead." msgstr "" -"Ты много лет путешествовал по свету, становясь мудрее и умнее. Обычно вы " -"можете ответить на любой вопрос, но даже ты не совсем уверен, что делать с " +"Вы много лет путешествовали по свету, становясь мудрее и умнее. Обычно вы " +"можете ответить на любой вопрос, но даже вы не совсем уверены, что делать с " "голодной нежитью." #: lang/json/professions_from_json.py @@ -178031,14 +174344,13 @@ msgstr "Проповедник" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"Ты посвятил свою жизнь распространению доброго слова, всегда в дороге, " -"путешествуя из города в город. Теперь всё пошло к чёрту, и ты не можешь " -"вести ежедневный подкаст, а нежить, слушая твои проповеди, не кажется " -"особенно тронутой." +"Вы посвятили свою жизнь распространению доброго слова, всегда в дороге, " +"путешествуя из города в город. Теперь всё пошло к чёрту, вы не можете вести " +"ежедневный подкаст, а нежить не особо впечатляется вашими проповедями." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178050,14 +174362,13 @@ msgstr "Проповедница" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"Ты посвятила свою жизнь распространению доброго слова, всегда в дороге, " -"путешествуя из города в город. Теперь всё пошло к чёрту, и ты не можешь " -"вести ежедневный подкаст, а нежить, слушая твои проповеди, не кажется " -"особенно тронутой." +"Вы посвятили свою жизнь распространению доброго слова, всегда в дороге, " +"путешествуя из города в город. Теперь всё пошло к чёрту, вы не можете вести " +"ежедневный подкаст, а нежить не особо впечатляется вашими проповедями." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178068,11 +174379,11 @@ msgstr "Ученик боевых искусств" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Когда миру пришёл конец, ты шёл в додзё на своё первое занятие. А ещё ты " -"очень хотел научиться плавать." +"Вы решили, что сегодня от день, когда вы начнёте занятия в местном додзё. Вы" +" достигните успеха, в этом вы уверены." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178083,11 +174394,11 @@ msgstr "Ученик боевых искусств" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." msgstr "" -"Когда миру пришёл конец, ты шла в додзё на своё первое занятие. А ещё ты " -"очень хотела научиться плавать." +"Вы решили, что сегодня от день, когда вы начнёте занятия в местном додзё. Вы" +" достигните успеха, в этом вы уверены." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178158,11 +174469,11 @@ msgstr "Боксёр" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Ты готовился к сражению всей своей жизни до того, как грянул Катаклизм. " -"Теперь ты сражаешься, чтобы просто остаться в живых." +"Ваш противник вызвал вас на самый важный бой, но теперь вы сражаетесь, чтобы" +" просто остаться в живых." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178173,11 +174484,11 @@ msgstr "Боксёр" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "" -"Ты готовилась к сражению всей своей жизни до того, как грянул Катаклизм. " -"Теперь ты сражаешься, чтобы просто остаться в живых." +"Ваш противник вызвал вас на самый важный бой, но теперь вы сражаетесь, чтобы" +" просто остаться в живых." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178189,13 +174500,14 @@ msgstr "Разносчик пиццы" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" "Когда произошёл Катаклизм, ты доставлял последнюю пиццу в местную криогенную" -" лабораторию. Добежав до ближайшего укрытия, тебе удалось сохранить только " -"рассудок и немного оставшейся пиццы. Даже чаевых не оставили!" +" лабораторию, но оголодавшие зомби попытались поймать тебя на обед. Добежав " +"до ближайшего укрытия, тебе удалось сохранить только рассудок и немного " +"оставшейся пиццы. Даже чаевых не дали!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178207,14 +174519,14 @@ msgstr "Разносчица пиццы" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" "Когда произошёл Катаклизм, ты доставляла последнюю пиццу в местную " -"криогенную лабораторию. Добежав до ближайшего укрытия, тебе удалось " -"сохранить только рассудок и немного оставшейся пиццы. Даже чаевых не " -"оставили!" +"криогенную лабораторию, но оголодавшие зомби попытались поймать тебя на " +"обед. Добежав до ближайшего укрытия, тебе удалось сохранить только рассудок " +"и немного оставшейся пиццы. Даже чаевых не дали!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178225,13 +174537,13 @@ msgstr "Археолог" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" "Когда земля начала трястись, ты двигался к древнему затерянному храму, " "следуя подсказкам из журнала своего умершего деда. Предчувствуя нечто " -"плохое, ты спрятался в ближайшем убежище." +"плохое, ты решил, что тебе стоит поскорее убраться отсюда." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178242,13 +174554,13 @@ msgstr "Археолог" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." msgstr "" "Когда земля начала трястись, ты двигалась к древнему затерянному храму, " "следуя подсказкам из журнала своего умершего деда. Предчувствуя нечто " -"плохое, ты спряталась в ближайшем убежище." +"плохое, ты решила, что тебе стоит поскорее убраться отсюда." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178259,11 +174571,11 @@ msgstr "Газетчик" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Ты, как обычно, доставлял утреннюю газету, когда наступил Катаклизм. Орды " +"Ты вышел на смену, чтобы развезти газеты с новостями о конце света. Орды " "нежити, похоже, не интересуются последними новостями, но, по крайней мере, " "твой верный велосипед всё ещё в рабочем состоянии." @@ -178276,11 +174588,11 @@ msgstr "Газетчица" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "" -"Ты, как обычно, доставляла утреннюю газету, когда наступил Катаклизм. Орды " +"Ты вышла на смену, чтобы развезти газеты с новостями о конце света. Орды " "нежити, похоже, не интересуются последними новостями, но, по крайней мере, " "твой верный велосипед всё ещё в рабочем состоянии." @@ -178293,14 +174605,14 @@ msgstr "Игрок в роллер-дерби" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"До апокалипсиса ты был адом на колёсах. Теперь остальная часть твоей команды" -" мертва, и ты, вероятно, не прожил бы так долго, если бы не твоя склонность " -"к высокоскоростному насилию. Будущее выглядит мрачно; как долго ты сможешь " +"Ты был адом на колёсах. Теперь остальная часть твоей команды мертва, и ты, " +"вероятно, не прожил бы так долго, если бы не твоя склонность к " +"высокоскоростному насилию. Будущее выглядит мрачно; как долго ты сможешь " "нарезать круги вокруг зомби, прежде чем будешь заблокирован навсегда?" #: lang/json/professions_from_json.py @@ -178312,16 +174624,15 @@ msgstr "Игрок в роллер-дерби" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"До апокалипсиса ты была адом на колёсах. Теперь остальная часть твоей " -"команды мертва, и ты, вероятно, не прожила бы так долго, если бы не твоя " -"склонность к высокоскоростному насилию. Будущее выглядит мрачно; как долго " -"ты сможешь нарезать круги вокруг зомби, прежде чем будешь заблокирована " -"навсегда?" +"Ты была адом на колёсах. Теперь остальная часть твоей команды мертва, и ты, " +"вероятно, не прожила бы так долго, если бы не твоя склонность к " +"высокоскоростному насилию. Будущее выглядит мрачно; как долго ты сможешь " +"нарезать круги вокруг зомби, прежде чем будешь заблокирована навсегда?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178332,13 +174643,13 @@ msgstr "Фермер" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" -"Ты зарабатывал на жизнь за счёт выращивания урожая, когда разразился " -"Катаклизм. Теперь, с помощью верной мотыги и семян, пора восстанавливать " -"Землю, по растению за раз." +"Клочок земли, немного воды и солнечный свет - вот и всё, что нужно. И ничего" +" не изменилось сейчас. С горстью семян и верной мотыгой вы вернёте Землю - " +"по одному растению за раз." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178349,13 +174660,13 @@ msgstr "Фермерша" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" -"Ты зарабатывала на жизнь за счёт выращивания урожая, когда разразился " -"Катаклизм. Теперь, с помощью верной мотыги и семян, пора восстанавливать " -"Землю, по растению за раз." +"Клочок земли, немного воды и солнечный свет - вот и всё, что нужно. И ничего" +" не изменилось сейчас. С горстью семян и верной мотыгой вы вернёте Землю - " +"по одному растению за раз." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178366,9 +174677,9 @@ msgstr "Национальный гвардеец" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" "Твоё подразделение Национальной гвардии подняли, когда разразилась эпидемия." " Несмотря на все усилия, тебе не удалось присоединиться к нему до того, как " @@ -178383,9 +174694,9 @@ msgstr "Национальный гвардеец" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" "Твоё подразделение Национальной гвардии подняли, когда разразилась эпидемия." " Несмотря на все усилия, тебе не удалось присоединиться к нему до того, как " @@ -178401,12 +174712,12 @@ msgstr "Закалённый старьёвщик" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" "Один из немногих счастливчиков, уцелевших в Катаклизме, ты построил свою " -"жизнь на чужих развалинах. С помощью силы, хитрости или удачи ты заполучил " -"лучшее снаряжение, какое только смог найти." +"жизнь на развалинах цивилизации. С помощью силы, хитрости или удачи ты " +"заполучил лучшее снаряжение, какое только смог найти." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178418,24 +174729,24 @@ msgstr "Закалённая старьёвщица" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" -"Одна из немногих счастливчиков, уцелевших в Катаклизме, ты построила свою " -"жизнь на чужих развалинах. С помощью силы, хитрости или удачи ты заполучила " -"лучшее снаряжение, какое только смогла найти." +"Одна из немногих счастливчиков, уцелевших в Катаклизме, ты построила свою " +"жизнь на развалинах цивилизации. С помощью силы, хитрости или удачи ты " +"заполучила лучшее снаряжение, какое только смогла найти." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Military Holdout" -msgstr "Откосивший от армии" +msgstr "Выживший солдат" #. ~ Profession (male Military Holdout) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" @@ -178446,14 +174757,14 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Military Holdout" -msgstr "Откосившая от армии" +msgstr "Выживший солдат" #. ~ Profession (female Military Holdout) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" @@ -178470,13 +174781,13 @@ msgstr "Охранник ТЦ" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Охранник в торговом центре. У тебя нет никаких полезных навыков, кроме " -"базовой подготовки требуемой в твоей работе. Тем не менее, у тебя есть " -"верный тазер, дубинка и перочинный нож." +"Ты проводил унылые ночные смены, охраняя местный торговый центр от " +"подростков-хулиганов и мелких воров. Твоя работа не научила тебя ничему " +"особенно полезному, но у тебя все ещё есть тазер, дубинка и карманный нож." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178487,13 +174798,13 @@ msgstr "Охранница ТЦ" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"Охранник в торговом центре. У тебя нет никаких полезных навыков, кроме " -"базовой подготовки требуемой в твоей работе. Тем не менее, у тебя есть " -"верный тазер, дубинка и перочинный нож." +"Ты проводила унылые ночные смены, охраняя местный торговый центр от " +"подростков-хулиганов и мелких воров. Твоя работа не научила тебя ничему " +"особенно полезному, но у тебя все ещё есть тазер, дубинка и карманный нож." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178504,8 +174815,8 @@ msgstr "Натуралист" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" "За долгие годы добровольной ссылки в глуши ты пришёл к взаимопониманию с " @@ -178521,8 +174832,8 @@ msgstr "Натуралист" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." msgstr "" "За долгие годы добровольной ссылки в глуши ты пришла к взаимопониманию с " @@ -178538,15 +174849,15 @@ msgstr "Рыболов" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" "Ты провёл большую часть своих дней просто рыбача на болотах, спокойно сводя " "концы с концами за счёт пойманного тобой. Раньше ты считал жужжание " "насекомых приятным, но они стали гораздо крупнее. Теперь их ужасные шумы " -"нервируют тебя; ты лишь надеешься, что рыбе не так противно." +"нервируют тебя; ты лишь надеешься, что рыба пока не столь же ужасна." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178557,15 +174868,15 @@ msgstr "Рыболов" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"Ты провела большую часть своих дней просто рыбача на болотах, спокойно сводя" +"Ты провёла большую часть своих дней просто рыбача на болотах, спокойно сводя" " концы с концами за счёт пойманного тобой. Раньше ты считала жужжание " "насекомых приятным, но они стали гораздо крупнее. Теперь их ужасные шумы " -"нервируют тебя; ты лишь надеешься, что рыбе не так противно." +"нервируют тебя; ты лишь надеешься, что рыба пока не столь же ужасна." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178580,7 +174891,7 @@ msgid "" "History exhibition when the end of the world permanently derailed your " "plans." msgstr "" -"Ты был на пути к Ежегодной выставки живой истории на тему войны за " +"Ты был на пути к Ежегодной выставке живой истории на тему войны за " "независимость, когда конец света навсегда сорвал твои планы." #: lang/json/professions_from_json.py @@ -178596,7 +174907,7 @@ msgid "" "History exhibition when the end of the world permanently derailed your " "plans." msgstr "" -"Ты была на пути к Ежегодной выставки живой истории на тему войны за " +"Ты была на пути к Ежегодной выставке живой истории на тему войны за " "независимость, когда конец света навсегда сорвал твои планы." #: lang/json/professions_from_json.py @@ -178641,11 +174952,12 @@ msgstr "Оператор дронов" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Твоя работа состояла в программировании машин-автодворников, новостных ботов" -" и дронов доставки пиццы. Теперь все эти дроны носят оружие, а не пиццу." +"Ваша работа состояла в программировании машин-автодворников, новостных ботов" +" и дронов доставки пиццы. Бионические импланты помогали вами удалённо ими " +"управлять. Теперь все эти дроны носят оружие, а не пиццу." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178657,11 +174969,12 @@ msgstr "Оператор дронов" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." msgstr "" -"Твоя работа состояла в программировании машин-автодворников, новостных ботов" -" и дронов доставки пиццы. Теперь все эти дроны носят оружие, а не пиццу." +"Ваша работа состояла в программировании машин-автодворников, новостных ботов" +" и дронов доставки пиццы. Бионические импланты помогали вами удалённо ими " +"управлять. Теперь все эти дроны носят оружие, а не пиццу." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178672,11 +174985,13 @@ msgstr "Роллер" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"Ты любишь кататься на коньках! По крайней мере, теперь взрослые не запретят " -"тебе кататься, где хочется." +"Ты любишь кататься на коньках! Ты на них провёл больше времени, чем на " +"ногах. По крайней мере, теперь взрослые не запретят тебе кататься, где " +"хочется." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178687,11 +175002,13 @@ msgstr "Роллерша" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." msgstr "" -"Ты любишь кататься на коньках! По крайней мере, теперь взрослые не запретят " -"тебе кататься, где хочется." +"Ты любишь кататься на коньках! Ты на них провёла больше времени, чем на " +"ногах. По крайней мере, теперь взрослые не запретят тебе кататься, где " +"хочется." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178702,10 +175019,10 @@ msgstr "Малолетний преступник" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" "Тебе всегда было наплевать на взрослых, которые говорили тебе, что делать, и" " именно поэтому ты проводил кучу времени в кабинете директора. Сейчас " @@ -178722,10 +175039,10 @@ msgstr "Малолетняя преступница" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" "Тебе всегда было наплевать на взрослых, которые говорили тебе, что делать, и" " именно поэтому ты проводила кучу времени в кабинете директора. Сейчас " @@ -178781,14 +175098,14 @@ msgstr "Студент-бионик" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Твои родители были так одержимы идеей о том, чтобы ты сдавал на отлично " -"любые экзамены, что оборудовали тебя бионикой, чтобы ты был умнее и никогда " -"ничего не забывал. Теперь тебе предстоит самый трудный экзамен, и лучше бы " -"тебе снова преуспеть." +"Ваши родители были так одержимы идеей о том, чтобы вы сдавали на отлично " +"абсолютно любые тесты и экзамены, что они оснастили вас бионикой, чтобы вы " +"были умнее и никогда ничего не забывали. А теперь вы столкнулись с самым " +"тяжёлым экзаменом, и вы не уверены, что у вы хорошо подготовились." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178800,14 +175117,14 @@ msgstr "Студентка-бионик" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"Твои родители были так одержимы идеей о том, чтобы ты сдавала на отлично " -"любые экзамены, что оборудовали тебя бионикой, чтобы ты была умнее и никогда" -" ничего не забывала. Теперь тебе предстоит самый трудный экзамен, и лучше бы" -" тебе снова преуспеть." +"Ваши родители были так одержимы идеей о том, чтобы вы сдавали на отлично " +"абсолютно любые тесты и экзамены, что они оснастили вас бионикой, чтобы вы " +"были умнее и никогда ничего не забывали. А теперь вы столкнулись с самым " +"тяжёлым экзаменом, и вы не уверены, что у вы хорошо подготовились." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178818,12 +175135,12 @@ msgstr "Игрок в вышибалы" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Ты любил играть в вышибалы, где недостаточное умение уворачиваться от мяча " -"означало выбывание из игры. Теперь недостаточное умение уворачиваться " -"угрожает твоей жизни. Не оплошай." +"В вышибалах, если попадают по голове, ты вылетаешь из игры. В мире после " +"Катаклизма это обозначает смерть в руках зомби. Смотри не подскользнись." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178834,12 +175151,12 @@ msgstr "Игрок в вышибалы" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." msgstr "" -"Ты любил играть в вышибалы, где недостаточное умение уворачиваться от мяча " -"означало выбывание из игры. Теперь недостаточное умение уворачиваться " -"угрожает твоей жизни. Не оплошай." +"В вышибалах, если попадают по голове, ты вылетаешь из игры. В мире после " +"Катаклизма это обозначает смерть в руках зомби. Смотри не подскользнись." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178850,14 +175167,13 @@ msgstr "Член научного кружка" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"В школе ты был членом научного кружка и сейчас расстроен так же, как и когда" -" школа запретила тебе баловаться с реально весёлыми химикатами. Теми, что " -"делают «ба-бах». Сейчас, по крайней мере, возражать некому." +"В школьном кружке вам никогда не разрешали играть с по настоящему крутыми " +"химикатами, теми, что взрываются, однако теперь больше нет учителей, который" +" могут что-то запретить." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178868,14 +175184,13 @@ msgstr "Член научного кружка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"В школе вы были членом научного кружка и сейчас расстроены так же, как и " -"когда школа запретила вам баловаться с реально весёлыми химикатами. Теми, " -"что делают «ба-бах». Сейчас, по крайней мере, возражать некому." +"В школьном кружке вам никогда не разрешали играть с по настоящему крутыми " +"химикатами, теми, что взрываются, однако теперь больше нет учителей, который" +" могут что-то запретить." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178887,8 +175202,8 @@ msgstr "Член аудио-видео кружка" msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" "Ты был членом школьного кружка по электронике. Ты уверен, что твои " "технические навыки как-нибудь помогут тебе выжить. Ты пока просто не " @@ -178904,8 +175219,8 @@ msgstr "Член аудио-видео кружка" msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "" "Ты была членом школьного кружка по электронике. Ты уверена, что твои " "технические навыки как-нибудь помогут тебе выжить. Ты пока просто не " @@ -178920,12 +175235,13 @@ msgstr "Учитель" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Ты учил детей всю свою жизнь, и по большей части они внимали твоим словам. " -"Однако мёртвых не нужно учить, как пожирать людей заживо." +"Всю вашу жизнь вы учили детей, испытав все радости и трудности передачи " +"знаний следующему поколению. К сожалению, зомби не демонстрируют особого " +"интереса к учёбе." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178936,12 +175252,13 @@ msgstr "Учительница" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." msgstr "" -"Ты учила детей всю свою жизнь, и по большей части они внимали твоим словам. " -"Однако мёртвых не нужно учить, как пожирать людей заживо." +"Всю вашу жизнь вы учили детей, испытав все радости и трудности передачи " +"знаний следующему поколению. К сожалению, зомби не демонстрируют особого " +"интереса к учёбе." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178952,15 +175269,13 @@ msgstr "Фотожурналист" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Ты была независимым фотожурналистом. У тебя появился шанс быть первым, кто " -"запечатлит апокалипсис, хотя найти издателя стало намного труднее, чем " -"обычно. Ты сумел прихватить с собой свою камеру, наверняка получится сделать" -" несколько фантастических снимков." +"Запечатлеть апокалипсис на фото - вот это бы помогло твоей карьере, если бы " +"ты конечно нашел издателя. Ты сумел сохранить свою камеру, наверняка " +"получится сделать несколько фантастических снимков." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -178971,15 +175286,13 @@ msgstr "Фотожурналистка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"Ты была независимой фотожурналисткой. У тебя появился шанс быть первой, кто " -"запечатлит апокалипсис, хотя найти издателя стало намного труднее, чем " -"обычно. Ты сумела прихватить с собой свою камеру, наверняка получится " -"сделать несколько фантастических снимков." +"Запечатлеть апокалипсис на фото - вот это бы помогло твоей карьере, если бы " +"ты конечно нашла издателя. Ты сумела сохранить свою камеру, наверняка " +"получится сделать несколько фантастических снимков." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -178990,11 +175303,13 @@ msgstr "Физрук" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Ты учил детей видам спорта, которые те в основном ненавидели, но зомби " -"отказываются бегать по кругу даже по свистку." +"Даже когда ваши мозги не пытались сожрать, детей было непросто заставить " +"пробежать нужное количество кругов. А зомби точно не станут строиться " +"линейкой, если дунуть в ваш свисток." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179005,11 +175320,13 @@ msgstr "Физрук" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." msgstr "" -"Ты учила детей видам спорта, которые те в основном ненавидели, но зомби " -"отказываются бегать по кругу даже по свистку." +"Даже когда ваши мозги не пытались сожрать, детей было непросто заставить " +"пробежать нужное количество кругов. А зомби точно не станут строиться " +"линейкой, если дунуть в ваш свисток." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179020,15 +175337,13 @@ msgstr "Турист" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Ты любил пешие походы в дикой природе до того, как всё полетело в тартарары," -" поэтому ты без раздумий схватил свою сумку и убежал сразу же, как зазвучали" -" сирены. Возможно, мир уничтожен, но ты готов сделать любое подходящее место" -" своим новым домом." +"Ты любил пешие походы в дикой природе, поэтому ты без раздумий схватил свою " +"сумку и убежал сразу же, как зазвучали сирены. Города пали, но ты готов " +"сделать любое подходящее место своим новым домом." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179039,15 +175354,13 @@ msgstr "Туристка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"Ты любила пешие походы в дикой природе до того, как всё полетело в " -"тартарары, поэтому ты без раздумий схватила свою сумку и убежала сразу же, " -"как зазвучали сирены. Возможно, мир уничтожен, но ты готова сделать любое " -"подходящее место своим новым домом." +"Ты любила пешие походы в дикой природе, поэтому ты без раздумий схватила " +"свою сумку и убежала сразу же, как зазвучали сирены. Города пали, но ты " +"готова сделать любое подходящее место своим новым домом." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179059,7 +175372,7 @@ msgstr "Шахтёр" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" "Ты — суровый шахтёр. Твоя фляжка опустела, в отбойном молотке закончился " "бензин, а батарейки в шахтёрской каске уже дышат на ладан…" @@ -179074,7 +175387,7 @@ msgstr "Шахтёрка" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "" "Ты — суровая шахтёрка. Твоя фляжка опустела, в отбойном молотке закончился " "бензин, а батарейки в шахтёрской каске уже дышат на ладан…" @@ -179088,11 +175401,12 @@ msgstr "Эксперт по взрывчатке" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" "До того, как все это началось, ты наслаждался работой своей мечты - взрывал " -"все подряд. Теперь можно заниматься этим и в нерабочие часы." +"все подряд. После Катаклизма можно заниматься этим и в нерабочие часы." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179103,11 +175417,13 @@ msgstr "Эксперт по взрывчатке" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" "До того, как все это началось, ты наслаждалась работой своей мечты - " -"взрывала все подряд. Теперь можно заниматься этим и в нерабочие часы." +"взрывала все подряд. После Катаклизма можно заниматься этим и в нерабочие " +"часы." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179152,11 +175468,13 @@ msgstr "Турист" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Ты прибыл сюда, чтобы попробовать Новую Англию на вкус. Теперь ты надеешься," -" что Новая Англия не попробует на вкус тебя!" +"Это место казалось отличным выбором для путешествия, но теперь вы начинаете " +"жалеть, то не остались дома. Вы хотели распробовать на вкус Новую Англию, но" +" теперь Новая Англия хочет распробовать на вкус вас!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179167,11 +175485,13 @@ msgstr "Туристка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" msgstr "" -"Ты прибыла сюда, чтобы попробовать Новую Англию на вкус. Теперь ты " -"надеешься, что Новая Англия не попробует на вкус тебя!" +"Это место казалось отличным выбором для путешествия, но теперь вы начинаете " +"жалеть, то не остались дома. Вы хотели распробовать на вкус Новую Англию, но" +" теперь Новая Англия хочет распробовать на вкус вас!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179182,11 +175502,12 @@ msgstr "Голый и напуганный" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Ты снимался в реалити-шоу в лесах, как неожиданно все актёры и команда " -"превратились в зомби. Похоже, теперь всё по-настоящему…" +"Ты снимался в реалити-шоу, выживая без всего в лесу. Неожиданно все актёры и" +" команда превратились в зомби. Похоже, теперь всё по-настоящему…" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179197,11 +175518,12 @@ msgstr "Голая и напуганная" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" msgstr "" -"Ты снималась в реалити-шоу в лесах, как неожиданно все актёры и команда " -"превратились в зомби. Похоже, теперь всё по-настоящему…" +"Ты снималась в реалити-шоу, выживая без всего в лесу. Неожиданно все актёры " +"и команда превратились в зомби. Похоже, теперь всё по-настоящему…" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179213,9 +175535,9 @@ msgstr "Специалист по аугментации" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" "Когда бионики только появились, ты сразу решил строить на них свою карьеру и" " тратил дни напролёт, наблюдая за их установкой. Теперь ты — один из " @@ -179232,9 +175554,9 @@ msgstr "Специалистка по аугментации" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" "Когда бионики только появились, ты сразу решила строить на них свою карьеру " "и тратила дни напролёт, наблюдая за их установкой. Теперь ты — одна из " @@ -179250,10 +175572,10 @@ msgstr "Мастер игры" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" "Тщетно пытаясь каждую неделю собрать народ на игру, ты понял: обычно проще " "бросить безнадёжное дело и довериться чутью. Поэтому, когда двое игроков не " @@ -179270,10 +175592,10 @@ msgstr "Мастер игры" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" "Тщетно пытаясь каждую неделю собрать народ на игру, ты поняла: обычно проще " "бросить безнадёжное дело и довериться чутью. Поэтому, когда двое игроков не " @@ -179291,14 +175613,13 @@ msgstr "Мастер игры — бионик" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" "Ты разжился целым состоянием волей судьбы или упорством и организовывал игры" -" для знаменитых людей. Ты мог позволить устраивать гадости своим игрокам, и " -"ты устраивал их. Ты вложился в бионику, сделал себя умнее и запомнил целое " +" для знаменитых людей. Ты мог позволить себе баловать своих игроков, и ты " +"баловал их. Ты вложился в бионику, сделал себя умнее и запомнил целое " "руководство. Будем надеяться, сейчас это знание тебе поможет." #: lang/json/professions_from_json.py @@ -179311,16 +175632,14 @@ msgstr "Мастер игры — бионик" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" "Ты разжилась целым состоянием волей судьбы или упорством и организовывала " -"игры для знаменитых людей. Ты могла позволить устраивать гадости своим " -"игрокам, и ты устраивала их. Ты вложилась в бионику, сделала себя умнее и " -"запомнила целое руководство. Будем надеяться, сейчас это знание тебе " -"поможет." +"игры для знаменитых людей. Ты могла позволить себе баловать своих игроков, и" +" ты баловала их. Ты вложилась в бионику, сделала себя умнее и запомнила " +"целое руководство. Будем надеяться, сейчас это знание тебе поможет." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179331,11 +175650,11 @@ msgstr "Смотритель зоопарка" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Тебя вызвали на работу в выходной, чтобы ты покормил животных, так как никто" -" из твоих коллег по разным причинам не вышел на работу." +"Тебя вызвали на работу в твой выходной, чтобы ты покормил животных. Почему-" +"то никто из твоих коллег не вышел на работу." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179346,11 +175665,11 @@ msgstr "Смотрительница зоопарка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." msgstr "" -"Тебя вызвали на работу в выходной, чтобы ты покормила животных, так как " -"никто из твоих коллег по разным причинам не вышел на работу." +"Тебя вызвали на работу в твой выходной, чтобы ты покормила животных. Почему-" +"то никто из твоих коллег не вышел на работу." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179361,9 +175680,11 @@ msgstr "Гольфист" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." -msgstr "Ты решил отдохнуть на денёк от семьи и немного поиграть в гольф." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." +msgstr "" +"Ты решил отдохнуть денёк от семьи, так что ты уехал подальше, чтобы немного " +"поиграть в гольф." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179374,9 +175695,11 @@ msgstr "Гольфистка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." -msgstr "Ты решила отдохнуть на денёк от семьи и немного поиграть в гольф." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." +msgstr "" +"Ты решила отдохнуть денёк от семьи, так что ты уехала подальше, чтобы " +"немного поиграть в гольф." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179423,17 +175746,15 @@ msgstr "Городской самурай" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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" @@ -179444,55 +175765,49 @@ msgstr "Городской самурай" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "Competetive Fencer" +msgid "Competitive Fencer" msgstr "Спортивный фехтовальщик" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" -"Вы были заядлым спортивным фехтовальщиком, всегда тренировались в местных " -"клубах и участвовали в турнирах. Вы как раз были на тренировке, когда " -"наступил конец света. Теперь у вас самый важный турнир, все рефери мертвы и " -"никто из ваших оппонентов не следует правилам." +"Годы тренировок подготовили тебя к соревнованиям по фехтованию, но последний" +" турнир отменился, когда зомби вышли на пист. Судью съели, и правила уже не " +"имеют значения." #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" -msgstr "Спортивная фехтовальщица" +msgid "Competitive Fencer" +msgstr "Спортивный фехтовальщик" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" -"Вы были заядлой спортивной фехтовальщицей, всегда тренировались в местных " -"клубах и участвовали в турнирах. Вы как раз были на тренировке, когда " -"наступил конец света. Теперь у вас самый важный турнир, все рефери мертвы и " -"никто из ваших оппонентов не следует правилам." +"Годы тренировок подготовили тебя к соревнованиям по фехтованию, но последний" +" турнир отменился, когда зомби вышли на пист. Судью съели, и правила уже не " +"имеют значения." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179537,10 +175852,11 @@ msgstr "Фермер" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" -"Ты почти всю жизнь разводил коров или лошадей. Увидим, что будет дальше." +"Твоей страстью всегда была забота о лошадях, коровах и остальных животных, " +"но похоже, дела завертелись так, что это не просто еще один день на ранчо." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179551,10 +175867,11 @@ msgstr "Фермер" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." msgstr "" -"Ты почти всю жизнь разводила коров или лошадей. Увидим, что будет дальше." +"Твоей страстью всегда была забота о лошадях, коровах и остальных животных, " +"но похоже, дела завертелись так, что это не просто еще один день на ранчо." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179565,13 +175882,12 @@ msgstr "Менеджер группы" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" -"Ты работал сразу за кулисами, обеспечивал артистов всем необходимым и " -"следил, чтоб всё шло как по маслу. Теперь ставки повысились, но шоу должно " -"продолжаться." +"Ты работал за кулисами, обеспечивал артистов всем необходимым и следил, чтоб" +" всё шло как по маслу. Шоу должно продолжаться." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179582,13 +175898,12 @@ msgstr "Менеджер группы" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." msgstr "" -"Ты работала сразу за кулисами, обеспечивала артистов всем необходимым и " -"следила, чтоб всё шло как по маслу. Теперь ставки повысились, но шоу должно " -"продолжаться." +"Ты работала за кулисами, обеспечивала артистов всем необходимым и следила, " +"чтоб всё шло как по маслу. Iоу должно продолжаться." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179599,13 +175914,13 @@ msgstr "Музыкант" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" -"Ты только-только собирался выйти на сцену, как настал Катаклизм. Во время " -"паники ты не смог многого прихватить, но у тебя хотя бы есть верная " -"шестиструнка за спиной." +"Ты только-только доиграл своё соло, но толпа разразилась криками ужаса " +"вместо аплодисментов. Во время паники ты не смог многого прихватить, но у " +"тебя хотя бы есть верная шестиструнка за спиной." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179616,13 +175931,13 @@ msgstr "Музыкант" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." msgstr "" -"Ты только-только собиралась выйти на сцену, как настал Катаклизм. Во время " -"паники ты не смогла многого прихватить, но у тебя хотя бы есть верная " -"шестиструнка за спиной." +"Ты только-только доиграла своё соло, но толпа разразилась криками ужаса " +"вместо аплодисментов. Во время паники ты не смогла многого прихватить, но у " +"тебя хотя бы есть верная шестиструнка за спиной." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179634,7 +175949,7 @@ msgstr "Экипированный выживальщик" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" "В местном торговом центре вы увидели флайер, рекламирующий комплекты для " "выживания со скидкой. Вы купили один, больше для понтов, чем для " @@ -179650,7 +175965,7 @@ msgstr "Экипированная выживальщица" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" "В местном торговом центре вы увидели флайер, рекламирующий комплекты для " "выживания со скидкой. Вы купили один, больше для понтов, чем для " @@ -179667,7 +175982,8 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" "Ты зарабатывал на жизнь на шоу и выставках Дикого Запада, впечатляя туристов" " своим мастерством стрелка. Но тот мир кончился, так что ты взял свой верный" @@ -179684,7 +176000,8 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" "Ты зарабатывала на жизнь на шоу и выставках Дикого Запада, впечатляя " "туристов своим мастерством стрелка. Но тот мир кончился, так что ты взяла " @@ -179699,10 +176016,10 @@ msgstr "Мажор" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" "Ты прожигал жизнь, бросаясь родительскими деньгами. На одной из твоих " "безумных вечеринок у гостей проснулся аппетит, но не к наркотикам. У тебя " @@ -179718,10 +176035,10 @@ msgstr "Мажорка" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" "Ты прожигала жизнь, бросаясь родительскими деньгами. На одной из твоих " "безумных вечеринок у гостей проснулся аппетит, но не к наркотикам. У тебя " @@ -179742,8 +176059,8 @@ msgid "" "time before the horrors patrolling the skies shot you down." msgstr "" "Вы видели, как небеса рушатся, перевозя солдат и выживших из одного убежища " -"в другое. Вы знали, что было вопросом времени, когда ужасы, патрулирующие " -"небо, собьют и вас." +"в другое. Вы знали, что было вопросом времени, когда ужасы, реющие в небе, " +"собьют и вас." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179759,8 +176076,8 @@ msgid "" "time before the horrors patrolling the skies shot you down." msgstr "" "Вы видели, как небеса рушатся, перевозя солдат и выживших из одного убежища " -"в другое. Вы знали, что было вопросом времени, когда ужасы, патрулирующие " -"небо, собьют и вас." +"в другое. Вы знали, что было вопросом времени, когда ужасы, реющие в небе, " +"собьют и вас." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -179863,8 +176180,8 @@ msgid "" " toys." msgstr "" "Вас наняли для продажи товаров Ривтех по телевидению, и вы как раз шли в " -"студию, когда наступил были сброшены бомбы. Теперь вы встречаете конец света" -" в шикарном костюме и ворохом плутониевых игрушек." +"студию, когда были сброшены бомбы. Теперь вы встречаете конец света в " +"шикарном костюме и ворохом плутониевых игрушек." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -179881,8 +176198,8 @@ msgid "" " toys." msgstr "" "Вас наняли для продажи товаров Ривтех по телевидению, и вы как раз шли в " -"студию, когда наступил были сброшены бомбы. Теперь вы встречаете конец света" -" в шикарном костюме и ворохом плутониевых игрушек." +"студию, когда были сброшены бомбы. Теперь вы встречаете конец света в " +"шикарном костюме и ворохом плутониевых игрушек." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -180170,10 +176487,56 @@ msgstr "" "полноправным гражданином. Теперь конец света разыгрался на ваших глазах, и " "вашим боевым навыкам вновь найдется применение." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "Бионический оперативник" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" +"Вы были наёмником на шести континентах для дюжины корпораций. Вице-президент" +" в последней решил заплатить авансом, и вы согласились в качестве платы за 3" +" месяца установить дополнительные бионические модули. И вы получили кое-что " +"- бомбу в черепе, таймер которой нужно сбрасывать каждый месяц, чтобы она не" +" взорвалась. Теперь вы свободны, пока она не сработает. Может, получится " +"найти кого-то, кто может её вытащить." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "Бионический оперативник" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" +"Вы были наёмником на шести континентах для дюжины корпораций. Вице-президент" +" в последней решил заплатить авансом, и вы согласились в качестве платы за 3" +" месяца установить дополнительные бионические модули. И вы получили кое-что " +"- бомбу в черепе, таймер которой нужно сбрасывать каждый месяц, чтобы она не" +" взорвалась. Теперь вы свободны, пока она не сработает. Может, получится " +"найти кого-то, кто может её вытащить." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" -msgstr "Кадет К.Р.И.Т" +msgstr "Кадет К.Р.И.Т." #. ~ Profession (male CRIT ROTC Member) description #: lang/json/professions_from_json.py @@ -180194,7 +176557,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT ROTC Member" -msgstr "Кадет К.Р.И.Т" +msgstr "Кадет К.Р.И.Т." #. ~ Profession (female CRIT ROTC Member) description #: lang/json/professions_from_json.py @@ -180215,7 +176578,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Janitor" -msgstr "Уборщик К.Р.И.Т" +msgstr "Уборщик К.Р.И.Т." #. ~ Profession (male CRIT Janitor) description #: lang/json/professions_from_json.py @@ -180236,7 +176599,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Janitor" -msgstr "Уборщица К.Р.И.Т" +msgstr "Уборщица К.Р.И.Т." #. ~ Profession (female CRIT Janitor) description #: lang/json/professions_from_json.py @@ -180257,7 +176620,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT NCO" -msgstr "Старший сержант К.Р.И.Т" +msgstr "Старший сержант К.Р.И.Т." #. ~ Profession (male CRIT NCO) description #: lang/json/professions_from_json.py @@ -180274,7 +176637,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT NCO" -msgstr "Старший сержант К.Р.И.Т" +msgstr "Старший сержант К.Р.И.Т." #. ~ Profession (female CRIT NCO) description #: lang/json/professions_from_json.py @@ -180291,7 +176654,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Grunt" -msgstr "Пехотинец К.Р.И.Т" +msgstr "Пехотинец К.Р.И.Т." #. ~ Profession (male CRIT Grunt) description #: lang/json/professions_from_json.py @@ -180314,7 +176677,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Grunt" -msgstr "Пехотинец К.Р.И.Т" +msgstr "Пехотинец К.Р.И.Т." #. ~ Profession (female CRIT Grunt) description #: lang/json/professions_from_json.py @@ -180337,7 +176700,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Combat Medic" -msgstr "Боевой медик К.Р.И.Т" +msgstr "Боевой медик К.Р.И.Т." #. ~ Profession (male CRIT Combat Medic) description #: lang/json/professions_from_json.py @@ -180362,7 +176725,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Combat Medic" -msgstr "Боевой медик К.Р.И.Т" +msgstr "Боевой медик К.Р.И.Т." #. ~ Profession (female CRIT Combat Medic) description #: lang/json/professions_from_json.py @@ -180387,7 +176750,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Automatic Rifleman" -msgstr "Пулемётчик К.Р.И.Т" +msgstr "Пулемётчик К.Р.И.Т." #. ~ Profession (male CRIT Automatic Rifleman) description #: lang/json/professions_from_json.py @@ -180399,15 +176762,15 @@ msgid "" "with all the strength your body can muster, will you have what it takes to " "survive or is this hellish landcape something you just can't suppress?" msgstr "" -"Тебе поручили создавать мёртвые зоны и обеспечивать подавительный огонь. " -"Когда начался Катаклизм, твой верный пулемёт не смог сдержать чудовищную " -"волну мертвецов, и твой отряд был уничтожен. Теперь ты один и в бегах, " -"хватит ли тебе сил выжить, или этот адский ландшафт подавит тебя?" +"Тебе поручили создавать мёртвые зоны и обеспечивать подавляющий огонь. Когда" +" начался Катаклизм, твой верный пулемёт не смог сдержать чудовищную волну " +"мертвецов, и твой отряд был уничтожен. Теперь ты один и в бегах, хватит ли " +"тебе сил выжить, или этот ад на Земле подавит тебя?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Automatic Rifleman" -msgstr "Пулемётчица К.Р.И.Т" +msgstr "Пулемётчица К.Р.И.Т." #. ~ Profession (female CRIT Automatic Rifleman) description #: lang/json/professions_from_json.py @@ -180419,15 +176782,15 @@ msgid "" "with all the strength your body can muster, will you have what it takes to " "survive or is this hellish landcape something you just can't suppress?" msgstr "" -"Тебе поручили создавать мёртвые зоны и обеспечивать подавительный огонь. " -"Когда начался Катаклизм, твой верный пулемёт не смог сдержать чудовищную " -"волну мертвецов, и твой отряд был уничтожен. Теперь ты одна и в бегах, " -"хватит ли тебе сил выжить, или этот адский ландшафт подавит тебя?" +"Тебе поручили создавать мёртвые зоны и обеспечивать подавляющий огонь. Когда" +" начался Катаклизм, твой верный пулемёт не смог сдержать чудовищную волну " +"мертвецов, и твой отряд был уничтожен. Теперь ты одна и в бегах, хватит ли " +"тебе сил выжить, или этот адна Земле подавит тебя?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Commanding Officer" -msgstr "Командир К.Р.И.Т" +msgstr "Командир К.Р.И.Т." #. ~ Profession (male CRIT Commanding Officer) description #: lang/json/professions_from_json.py @@ -180446,7 +176809,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Commanding Officer" -msgstr "Командир К.Р.И.Т" +msgstr "Командир К.Р.И.Т." #. ~ Profession (female CRIT Commanding Officer) description #: lang/json/professions_from_json.py @@ -180457,15 +176820,15 @@ msgid "" "up the ranks and provided support to allies in need. Now that everything " "went down the drain, will it help you again?" msgstr "" -"Ты была высокопоставленным офицером и особенно в боях не участвовал, разве " +"Ты была высокопоставленным офицером и особенно в боях не участвовала, разве " "что тебе очень хотелось. Однако твоя харизма и острый ум помогли тебе " -"вскарабкаться по карьере и поддерживать товарищей. Помогут ли они сейчас, " -"когда всё улетело в дыру?" +"вскарабкаться по карьерной лестнице и поддерживать товарищей. Помогут ли они" +" сейчас, когда всё улетело в дыру?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Enforcer" -msgstr "Силовик К.Р.И.Т" +msgstr "Силовик К.Р.И.Т." #. ~ Profession (male CRIT Enforcer) description #: lang/json/professions_from_json.py @@ -180489,7 +176852,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Enforcer" -msgstr "Силовик К.Р.И.Т" +msgstr "Силовик К.Р.И.Т." #. ~ Profession (female CRIT Enforcer) description #: lang/json/professions_from_json.py @@ -180504,16 +176867,17 @@ msgid "" "parameters look like they've expanded quite a bit though." msgstr "" "Рекомендуется СИЛ 10. Ты обладаешь полномочиями маршала США. Над тобой " -"подшучивали, что ты всего лишь охранник с крутым значком. Ты посмеивался, " -"потому что потом ты облачался в снаряжение и отправлялся на место операции. " -"Пока ты проводил время на базе, ты оттачивал свои навыки и получил особые " -"импланты для облегчения работы за смешную цену в виде вечной работы " -"«охранником». Время поработать, хотя похоже, что миссия немного усложнилась." +"подшучивали, что ты всего лишь охранник с крутым значком. Ты посмеивалась, " +"потому что потом ты облачалась в снаряжение и отправлялась на место " +"операции. Пока ты проводила время на базе, ты оттачивала свои навыки и " +"получила особые импланты для облегчения работы за смешную цену в виде вечной" +" работы «охранником». Время поработать, хотя похоже, что миссия немного " +"усложнилась." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Lone Wolf" -msgstr "Одинокий волк К.Р.И.Т" +msgstr "Одинокий волк К.Р.И.Т." #. ~ Profession (male CRIT Lone Wolf) description #: lang/json/professions_from_json.py @@ -180533,7 +176897,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Lone Wolf" -msgstr "Одинокая волчица К.Р.И.Т" +msgstr "Одинокая волчица К.Р.И.Т." #. ~ Profession (female CRIT Lone Wolf) description #: lang/json/professions_from_json.py @@ -180553,7 +176917,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Spec Ops" -msgstr "Спецназовец К.Р.И.Т" +msgstr "Спецназовец К.Р.И.Т." #. ~ Profession (male CRIT Spec Ops) description #: lang/json/professions_from_json.py @@ -180576,7 +176940,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Spec Ops" -msgstr "Спецназовец К.Р.И.Т" +msgstr "Спецназовец К.Р.И.Т." #. ~ Profession (female CRIT Spec Ops) description #: lang/json/professions_from_json.py @@ -180599,7 +176963,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Survivalist" -msgstr "Выживальщик К.Р.И.Т" +msgstr "Выживальщик К.Р.И.Т." #. ~ Profession (male CRIT Survivalist) description #: lang/json/professions_from_json.py @@ -180629,7 +176993,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Survivalist" -msgstr "Выживальщица К.Р.И.Т" +msgstr "Выживальщица К.Р.И.Т." #. ~ Profession (female CRIT Survivalist) description #: lang/json/professions_from_json.py @@ -180679,7 +177043,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Recruit" -msgstr "Рекрут К.Р.И.Т" +msgstr "Рекрут К.Р.И.Т." #. ~ Profession (female CRIT Recruit) description #: lang/json/professions_from_json.py @@ -180715,7 +177079,7 @@ msgid "" "overcome the looming terror which paralyzes you?" msgstr "" "Тебе, как и другим, предложили примкнуть к административному аппарату " -"К.Р.И.Т, чтобы уйти от горьких воспоминаний и былых травм после долгих лет " +"К.Р.И.Т., чтобы уйти от горьких воспоминаний и былых травм после долгих лет " "мужественной защиты своих товарищей. Ты прошёл программу переподготовки, и " "после долгого времени вне боёв твои навыки заметно упали, но заученная " "мышечная память так просто не уходит. И снова в твоих ушах звенят крики " @@ -180741,7 +177105,7 @@ msgid "" "overcome the looming terror which paralyzes you?" msgstr "" "Тебе, как и другим, предложили примкнуть к административному аппарату " -"К.Р.И.Т, чтобы уйти от горьких воспоминаний и былых травм после долгих лет " +"К.Р.И.Т., чтобы уйти от горьких воспоминаний и былых травм после долгих лет " "мужественной защиты своих товарищей. Ты прошла программу переподготовки, и " "после долгого времени вне боёв твои навыки заметно упали, но заученная " "мышечная память так просто не уходит. И снова в твоих ушах звенят крики " @@ -180751,7 +177115,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Engineer" -msgstr "Инженер К.Р.И.Т" +msgstr "Инженер К.Р.И.Т." #. ~ Profession (male CRIT Engineer) description #: lang/json/professions_from_json.py @@ -180770,7 +177134,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Engineer" -msgstr "Инженер К.Р.И.Т" +msgstr "Инженер К.Р.И.Т." #. ~ Profession (female CRIT Engineer) description #: lang/json/professions_from_json.py @@ -180789,7 +177153,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT Night Walker" -msgstr "Ночной Скиталец К.Р.И.Т" +msgstr "Ночной Скиталец К.Р.И.Т." #. ~ Profession (male CRIT Night Walker) description #: lang/json/professions_from_json.py @@ -180811,7 +177175,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "CRIT Night Walker" -msgstr "Ночной Скиталец К.Р.И.Т" +msgstr "Ночной Скиталец К.Р.И.Т." #. ~ Profession (female CRIT Night Walker) description #: lang/json/professions_from_json.py @@ -180876,7 +177240,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Military Marksman" -msgstr "Военная снайперша" +msgstr "Военный снайпер" #. ~ Profession (female Military Marksman) description #: lang/json/professions_from_json.py @@ -180935,24 +177299,24 @@ msgstr "Только в клочья, не иначе." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Military Breacher" -msgstr "Террорист" +msgstr "Специалист по штурму" #. ~ Profession (male Military Breacher) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "Doors and windows everywhere dare not speak your name." -msgstr "Никто не смеет произносить ваше имя, даже окна и двери." +msgstr "Окна и двери дрожат при вашем появлении." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Military Breacher" -msgstr "Террористка" +msgstr "Специалистка по штурму" #. ~ Profession (female Military Breacher) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "Doors and windows everywhere dare not speak your name." -msgstr "Никто не смеет произносить ваше имя, даже окна и двери." +msgstr "Окна и двери дрожат при вашем появлении." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -180979,7 +177343,7 @@ msgstr "Единственный лёгкий день был вчера." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Operator Sniper" -msgstr "Снайпер спецназначения" +msgstr "Снайпер спецназа" #. ~ Profession (male Operator Sniper) description #: lang/json/professions_from_json.py @@ -180994,7 +177358,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Operator Sniper" -msgstr "Снайперша спецназначения" +msgstr "Снайпер спецназа" #. ~ Profession (female Operator Sniper) description #: lang/json/professions_from_json.py @@ -181409,8 +177773,8 @@ msgid "" "power, as events unfolded…" msgstr "" "Ты был сыном метеоролога и всегда интересовался погодой. Недавно ты понял, " -"что погодой можно управлять при помощи волшебства! К сожалению, по мере " -"развития событий ты недолго наслаждался своими способностями…" +"что погодой можно управлять при помощи волшебства! К сожалению, из-за " +"недавних событий ты недолго наслаждался своими способностями…" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -181426,9 +177790,9 @@ msgid "" "through arcane means! Unfortunately you did not have long to enjoy your " "power, as events unfolded…" msgstr "" -"Ты был сыном метеоролога и всегда интересовался погодой. Недавно ты понял, " -"что погодой можно управлять при помощи волшебства! К сожалению, по мере " -"развития событий ты недолго наслаждался своими способностями…" +"Ты была дочерью метеоролога и всегда интересовалась погодой. Недавно ты " +"поняла, что погодой можно управлять при помощи волшебства! К сожалению, из-" +"за недавних событий ты недолго наслаждалась своими способностями…" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -181490,306 +177854,6 @@ msgstr "" "Наступил Катаклизм, и тебе придётся найти иное применение уловкам, которыми " "ты мухлевала на контрольных." -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Brave of the King" -msgstr "Воин Королевства" - -#. ~ Profession (male Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Элитная пехота Древнего Египта и телохранители самого Фараона. Хотя в " -"пустыне доспехи носили редко, в эпоху Нового Царства подобное снаряжение " -"распространилось куда шире." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Brave of the King" -msgstr "Воительница Королевства" - -#. ~ Profession (female Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" -"Элитная пехота Древнего Египта и телохранители самого Фараона. Хотя в " -"пустыне доспехи носили редко, в эпоху Нового Царства подобное снаряжение " -"распространилось куда шире." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hoplite" -msgstr "Гоплит" - -#. ~ Profession (male Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Тяжёлая пехота древнегреческих городов-государств до появления македонской " -"фаланги. Хорошо обучены для боя в построении, но менее эффективны против " -"атак с флангов и на пересечённой местности." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hoplite" -msgstr "Гоплит" - -#. ~ Profession (female Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "" -"Тяжёлая пехота древнегреческих городов-государств до появления македонской " -"фаланги. Хорошо обучены для боя в построении, но менее эффективны против " -"атак с флангов и на пересечённой местности." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Legionary" -msgstr "Легионер" - -#. ~ Profession (male Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Римская тяжёлая пехота после военных реформ и стандартизации вооружения " -"легионов. Легионеры обучены сражаться копьём и мечом в построении. Они " -"знамениты своими полевыми укреплениями." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Legionary" -msgstr "Воительница легионер" - -#. ~ Profession (female Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "" -"Римская тяжёлая пехота после военных реформ и стандартизации вооружения " -"легионов. Легионеры обучены сражаться копьём и мечом в построении. Они " -"знамениты своими полевыми укреплениями." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Viking" -msgstr "Викинг" - -#. ~ Profession (male Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Знаменитые пираты раннего средневековья, налётчики и мореходы из разных " -"скандинавских стран." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Viking" -msgstr "Воительница викинг" - -#. ~ Profession (female Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "" -"Знаменитые пираты раннего средневековья, налётчики и мореходы из разных " -"скандинавских стран." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Man-at-Arms" -msgstr "Средневековый воин" - -#. ~ Profession (Man-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Средневековая тяжёлая конница различных европейских стран, простого или " -"дворянского происхождения. Рыцари традиционно были воинами, но не каждый " -"воин был рыцарем." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Woman-at-Arms" -msgstr "Средневековая воительница" - -#. ~ Profession (Woman-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "" -"Средневековая тяжёлая конница различных европейских стран, простого или " -"дворянского происхождения. Рыцари традиционно были воинами, но не каждый " -"воин был рыцарем." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Horse Archer" -msgstr "Конный лучник" - -#. ~ Profession (male Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Знаменитая легкая конница Монгольской Империи. Наиболее известна своими " -"умелыми конными стрелками." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Horse Archer" -msgstr "Конная лучница" - -#. ~ Profession (female Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "" -"Знаменитая легкая конница Монгольской Империи. Наиболее известна своими " -"умелыми конными стрелками." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Samurai" -msgstr "Самурай" - -#. ~ Profession (male Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Благородный воин феодальной Японии. Изначально были мастерами езды верхом и " -"стрельбы из лука, в более поздние эры прославились своим искусством " -"фехтования." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Samurai" -msgstr "Самурай" - -#. ~ Profession (female Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "" -"Благородный воин феодальной Японии. Изначально были мастерами езды верхом и " -"стрельбы из лука, в более поздние эры прославились своим искусством " -"фехтования." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Wanderer" -msgstr "Странник" - -#. ~ Profession (male Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Ты всегда предпочитал комфорт открытого неба сложностям современной жизни. " -"Впрочем, ситуация значительно поменялась с тех пор, как ты в последний раз " -"проходил где-нибудь поблизости цивилизации." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Wanderer" -msgstr "Странница" - -#. ~ Profession (female Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "" -"Ты всегда предпочитала комфорт открытого неба сложностям современной жизни. " -"Впрочем, ситуация значительно поменялась с тех пор, как ты в последний раз " -"проходила где-нибудь поблизости цивилизации." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Prehistoric Hunter" -msgstr "Доисторический охотник" - -#. ~ Profession (male Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Ты неуместный живой доисторический реликт, затерянный в незнакомом и " -"пугающем мире. Жизнь охотника-собирателя была трудной, но тебе, по крайней " -"мере, не приходилось бороться с ожившими мертвецами, а твоя родня стояла за " -"тебя горой. Здесь же ты сам по себе." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Prehistoric Hunter" -msgstr "Доисторическая охотница" - -#. ~ Profession (female Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"Ты неуместный живой доисторический реликт, затерянная в незнакомом и " -"пугающем мире. Жизнь охотника-собирателя была трудной, но тебе, по крайней " -"мере, не приходилось бороться с ожившими мертвецами, а твоя родня стояла за " -"тебя горой. Здесь же ты сама по себе." - #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sugar Boy" @@ -181820,894 +177884,6 @@ msgstr "" "Вы — карамель в форме человека, оживлённая в ходе неясных событий. У вас " "впереди целая жизнь, и она будет сладкой!" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Fighter" -msgstr "Воитель" - -#. ~ Profession (male Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Мастер оружия и доспехов и грозный противник в ближнем бою; ты воитель, " -"выкованный в горниле войны и закалённый на поле битвы." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Fighter" -msgstr "Воительница" - -#. ~ Profession (female Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "" -"Мастер оружия и доспехов и грозный противник в ближнем бою; ты воительница, " -"выкованная в горниле войны и закалённая на поле битвы." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Rogue" -msgstr "Жулик" - -#. ~ Profession (male Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Уличный бродяга, искусный в мошенничестве и смертоносный с кинжалом; ты " -"плут, находчивый ловкач и опытный вор." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Rogue" -msgstr "Мошенница" - -#. ~ Profession (female Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" -"Уличная бродяжка, искусная в мошенничестве и смертоносная с кинжалом; ты " -"плут, находчивый ловкач и опытный вор." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Barbarian" -msgstr "Варвар" - -#. ~ Profession (male Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Дитя Крома из суровых северных земель; ты варвар, такой же пугающий и " -"грозный, как и непокорный край, который ты называешь своим домом." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Barbarian" -msgstr "Варвар" - -#. ~ Profession (female Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "" -"Дитя Крома из суровых северных земель; ты варвар, такая же пугающая и " -"грозная, как и непокорный край, который ты называешь своим домом." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Skald" -msgstr "Скальд" - -#. ~ Profession (male Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Таинственный бродячий менестрель и рассказчик с северных высокогорий. Ты " -"скальд, благородный хранитель преданий варваров и говорящий с духами." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Skald" -msgstr "Скальд" - -#. ~ Profession (female Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "" -"Таинственный бродячий менестрель и рассказчица с северных высокогорий. Ты " -"скальд, благородная хранительница преданий варваров и говорящая с духами." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Ranger" -msgstr "Егерь" - -#. ~ Profession (male Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Один из немногих, кто блуждает, но никогда не теряется; ты егерь, сведущий в" -" лесных путях и смертельно опасный лучник." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Ranger" -msgstr "Егерь" - -#. ~ Profession (female Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "" -"Одна из немногих, кто блуждает, но никогда не теряется; ты егерь, сведущая в" -" лесных путях и смертельно опасная лучница." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Monk" -msgstr "Монах" - -#. ~ Profession (male Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Послушник экзотического ордена отшельников; ты монах, набожный верующий с " -"обширными знаниями безоружного боя." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Monk" -msgstr "Монахиня" - -#. ~ Profession (female Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "" -"Послушница экзотического ордена отшельников; ты монахиня, набожная верующая " -"с обширными знаниями безоружного боя." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Knight" -msgstr "Рыцарь" - -#. ~ Profession (male Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Присягнувший защитник страны; ты рыцарь, высокообразованный воин, с детства " -"обучавшийся способам благородного боя." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Knight" -msgstr "Рыцарь" - -#. ~ Profession (female Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "" -"Присягнувшая защитница страны; ты рыцарь, высокообразованная воительница, с " -"детства обучавшаяся способам благородного боя." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Sorcerer" -msgstr "Колдун" - -#. ~ Profession (Sorcerer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Мудрый знаток древнего и запретного знания; ты колдун, мистический " -"специалист в волшебном (бионическом) искусстве." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Sorceress" -msgstr "Колдунья" - -#. ~ Profession (Sorceress) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "" -"Мудрый знаток древнего и запретного знания; ты колдунья, мистический " -"специалист в волшебном (бионическом) искусстве." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-Hacker" -msgstr "Робо-хакер" - -#. ~ Profession (male Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Ещё перед концом света твоим хобби было незаконное перепрограммирование и " -"перепрофилирование коммерческих роботов, но ты никогда не думал, что от " -"этого может зависеть твоё выживание." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-Hacker" -msgstr "Робо-хакер" - -#. ~ Profession (female Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" -"Ещё перед концом света твоим хобби было незаконное перепрограммирование и " -"перепрофилирование коммерческих роботов, но ты никогда не думала, что от " -"этого может зависеть твоё выживание." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Engineer" -msgstr "Инженер-Робототехник" - -#. ~ Profession (male Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"Вы были инженером низкого уровня в производстве робототехники. Руководство " -"все время повторяло, что ставить огнеметы на мэнхаков было «не нужно» и " -"«слишком опасно», но теперь вас ничто не остановит." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Engineer" -msgstr "Инженер-Робототехник" - -#. ~ Profession (female Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" -"Вы были инженером низкого уровня в производстве робототехники. Руководство " -"все время повторяло, что ставить огнеметы на мэнхаков было «не нужно» и " -"«слишком опасно», но теперь вас ничто не остановит." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Prodigy" -msgstr "Чудо Робототехник" - -#. ~ Profession (male Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" -"Вы строили роботов с тех пор, как могли держать паяльник, и вы не намерены " -"позволить концу света помешать этому продолжаться." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Prodigy" -msgstr "Чудо Робототехник" - -#. ~ Profession (female Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" -"Вы строили роботов с тех пор, как могли держать паяльник, и вы не намерены " -"позволить концу света помешать этому продолжаться." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robot Adoptee" -msgstr "Спасённый Роботом" - -#. ~ Profession (male Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" -"Во время беспорядков военный робот появился из ниоткуда, чтобы спасти вас. " -"Может быть, он думает, что вы кто-то важный, кто знает." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robot Adoptee" -msgstr "Спасённая Роботом" - -#. ~ Profession (female Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" -"Во время беспорядков военный робот появился из ниоткуда, чтобы спасти вас. " -"Может быть, он думает, что вы кто-то важный, кто знает." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-hunter" -msgstr "Робо-охотник" - -#. ~ Profession (male Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Вы заплатили местному хакеру за изготовление роботизированной охотничьей " -"собаки. Она почти такая же, как настоящая, но ей не нравится быть домашней " -"зверушкой." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-hunter" -msgstr "Робо-охотница" - -#. ~ Profession (female Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" -"Вы заплатили местному хакеру за изготовление роботизированной охотничьей " -"собаки. Она почти такая же, как настоящая, но ей не нравится быть домашней " -"зверушкой." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Special Operator" -msgstr "Бионический боец спецназа" - -#. ~ Profession (male Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"Как только была доказана безопасность бионических модификаций, тебя избрали " -"для сверхсекретной программы усовершенствования солдат. Несмотря на то, что " -"ты уже был элитным бойцом сил специального назначения, благодаря новым " -"улучшениям, ты способен справиться с любым врагом, неважно, с человеком или " -"кем-то ещё." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Special Operator" -msgstr "Бионический боец спецназа" - -#. ~ Profession (female Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"Как только была доказана безопасность бионических модификаций, тебя избрали " -"для сверхсекретной программы усовершенствования солдат. Несмотря на то, что " -"ты уже была элитным бойцом сил специального назначения, благодаря новым " -"улучшениям, ты способна справиться с любым врагом, неважно, с человеком или " -"кем-то ещё." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Seasoned Tourist" -msgstr "Опытный турист" - -#. ~ Profession (male Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Благодаря твоей жажде приключений, любви к хорошей еде, а также богатству, " -"ты смог путешествовать часто и много. Ты прибыл сюда, чтобы почувствовать " -"вкус Новой Англии. Теперь постарайся, чтобы Новая Англия не попробовала тебя" -" на вкус!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Seasoned Tourist" -msgstr "Опытная туристка" - -#. ~ Profession (female Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"Благодаря твоей жажде приключений, любви к хорошей еде, а также богатству, " -"ты смогла путешествовать часто и много. Ты прибыла сюда, чтобы почувствовать" -" вкус Новой Англии. Теперь постарайся, чтобы Новая Англия не попробовала " -"тебя на вкус!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Post-Human Cyborg" -msgstr "Киборг-постчеловек" - -#. ~ Profession (male Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" -"Будучи богатым трансгуманистом, ты решил выдвинуть себя на передовой план " -"аугментационных технологий, чтобы привнести вклад в будущее. Теперь ты — " -"пример того, каким могло бы стать человечество." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Post-Human Cyborg" -msgstr "Киборг-постчеловек" - -#. ~ Profession (female Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" -"Будучи богатой трансгуманисткой, ты решила выдвинуть себя на передовой план " -"аугментационных технологий, чтобы привнести вклад в будущее. Теперь ты — " -"пример того, каким могло бы стать человечество." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Janitor" -msgstr "Уборщик" - -#. ~ Profession (male Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Ты зарабатывал на жизнь подметанием шоколадных обёрток и отскребанием " -"жевательных резинок из-под столов. Теперь единственное, что тебе придётся " -"подметать, — это мозги мёртвых." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Janitor" -msgstr "Уборщица" - -#. ~ Profession (female Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "" -"Ты зарабатывала на жизнь подметанием шоколадных обёрток и отскребанием " -"жевательных резинок из-под столов. Теперь единственное, что тебе придётся " -"подметать, — это мозги мёртвых." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Poor Student" -msgstr "Бедный студент" - -#. ~ Profession (male Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Ты родился в бедной семье, и тебя высмеивали за старую поношенную одежду и " -"бесплатные школьные обеды. Как назло, твой жалкий старый рюкзак вконец " -"развалился. По крайней мере, теперь никто не будет над тобой смеяться." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Poor Student" -msgstr "Бедная студентка" - -#. ~ Profession (female Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"Ты родилась в бедной семье, и тебя высмеивали за старую поношенную одежду и " -"бесплатные школьные обеды. Как назло, твой жалкий старый рюкзак вконец " -"развалился. По крайней мере, теперь никто не будет над тобой смеяться." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Elementary Student" -msgstr "Первокурсник" - -#. ~ Profession (male Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Ты просто ребёнок, и теперь мир превратился в один из твоих кошмаров. Ты " -"полагался на взрослых, а теперь они все мертвы или стали нежитью. И что ты " -"собираешься делать?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Elementary Student" -msgstr "Первокурсница" - -#. ~ Profession (female Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "" -"Ты просто ребёнок, и теперь мир превратился в один из твоих кошмаров. Ты " -"полагалась на взрослых, а теперь они все мертвы или стали нежитью. И что ты " -"собираешься делать?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hockey Player" -msgstr "Хоккеист" - -#. ~ Profession (male Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Ты был вратарём в хоккейной команде младшей лиги до того, как остальная " -"команда стала зомби. Теперь только ты и твоя хоккейная экипировка против " -"живых мертвецов." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hockey Player" -msgstr "Хоккеистка" - -#. ~ Profession (female Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"Ты была вратарём в хоккейной команде младшей лиги до того, как остальная " -"команда стала зомби. Теперь только ты и твоя хоккейная экипировка против " -"живых мертвецов." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Baseball Player" -msgstr "Бейcболист" - -#. ~ Profession (male Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" -"До Катаклизма ты был отбивающим в местной бейсбольной команде. Ты сохранил " -"свою экипировку, но как долго продлится твоя подача выживания?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Baseball Player" -msgstr "Бейcболистка" - -#. ~ Profession (female Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" -"До Катаклизма ты был отбивающим в местной бейсбольной команде. Ты сохранил " -"свою экипировку, но как долго продлится твоя подача выживания?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Football Player" -msgstr "Футболист" - -#. ~ Profession (male Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Будучи звездой местной команды по американскому футболу, ты заслужил " -"обожание фанатов и уважение товарищей. Теперь они обожают твои мозги. У тебя" -" всё ещё сохранилась футбольная экипировка." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Football Player" -msgstr "Футболистка" - -#. ~ Profession (female Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "" -"Будучи звездой местной женской команды по американскому футболу, ты " -"заслужила обожание фанатов и уважение товарищей. Теперь они обожают твои " -"мозги. У тебя всё ещё сохранилась футбольная экипировка." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Preppy Student" -msgstr "Ученик элитной школы" - -#. ~ Profession (male Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Твоими родителями были занятые солидные люди, желавшие, чтобы у тебя было " -"преимущество во всём и заставлявшие тебя «идти к успеху», что бы это ни " -"значило. Если бы только они хоть раз дали почувствовать себя ребёнком или " -"хоть раз показали тебе свою любовь. Сейчас ты, безусловно, не получишь ни " -"того, ни другого." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Preppy Student" -msgstr "Ученица элитной школы" - -#. ~ Profession (female Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"Твоими родителями были занятые солидные люди, желавшие, чтобы у тебя было " -"преимущество во всём и заставлявшие тебя «идти к успеху», что бы это ни " -"значило. Если бы только они хоть раз дали почувствовать себя ребёнком или " -"хоть раз показали тебе свою любовь. Сейчас ты, безусловно, не получишь ни " -"того, ни другого." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Awakened" -msgstr "Разбуженный" - -#. ~ Profession (male Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" -"Тебя разбудил шум посреди ночи. Вооруженный лишь фонариком, ты отправился " -"посмотреть, в чем дело, и теперь ты столкнулся с катаклизмом." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Awakened" -msgstr "Разбуженная" - -#. ~ Profession (female Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" -"Тебя разбудил шум посреди ночи. Вооруженный лишь фонариком, ты отправился " -"посмотреть, в чем дело, и теперь ты столкнулся с катаклизмом." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Cyclist" -msgstr "Бионический Велосипедист" - -#. ~ Profession (male Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" -"Благодаря тренировкам и бионическим модификациям ради соревнований по " -"велоспорту на Кибер-Олимпиаде ты смог убежать от начала катаклизма. Сможешь " -"ли ты убегать от него вечно?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Cyclist" -msgstr "Бионический Велосипедист" - -#. ~ Profession (female Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" -"Благодаря тренировкам и бионическим модификациям ради соревнований по " -"велоспорту на Кибер-Олимпиаде ты смог убежать от начала катаклизма. Сможешь " -"ли ты убегать от него вечно?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Welder" -msgstr "Сварщик" - -#. ~ Profession (male Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" -"До катаклизма ты работал сварщиком в оффшорной компании. Ты возвращался " -"домой, когда наступил конец света. По крайней мере, у тебя есть инструменты." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Welder" -msgstr "Сварщица" - -#. ~ Profession (female Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" -"До катаклизма ты работал сварщиком в оффшорной компании. Ты возвращался " -"домой, когда наступил конец света. По крайней мере, у тебя есть инструменты." - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Primitive Survivalist" -msgstr "Первобытный Выживальщик" - -#. ~ Profession (male Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" -"Ты знал, что этот день однажды наступит, день, когда всё полетит к чертям. И" -" ты готов к нему не за счёт снаряжения, а благодаря умениям. Все проведённые" -" в лесах дни теперь окупятся сполна. Если уж твои предки сумели выжить без " -"технологий, то ты, чёрт побери, точно сможешь." - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Primitive Survivalist" -msgstr "Первобытная Выживальщица" - -#. ~ Profession (female Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" -"Ты знал, что этот день однажды наступит, день, когда всё полетит к чертям. И" -" ты готов к нему не за счёт снаряжения, а благодаря умениям. Все проведённые" -" в лесах дни теперь окупятся сполна. Если уж твои предки сумели выжить без " -"технологий, то ты, чёрт побери, точно сможешь." - #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" @@ -182873,7 +178049,7 @@ msgid "LIGHTING" msgstr "ОСВЕЩЕНИЕ" #. ~ Crafting recipes subcategory of 'ARMOR' category -#: lang/json/recipe_category_from_json.py src/game_inventory.cpp +#: lang/json/recipe_category_from_json.py msgid "STORAGE" msgstr "СУМКИ" @@ -182951,7 +178127,7 @@ msgstr "ЗДАНИЯ" #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "ENCHANTED" -msgstr "ЗАЧАРОВАННЫЙ" +msgstr "ЗАЧАРОВАНИЕ" #. ~ Crafting recipes subcategory of 'ENCHANTED' category #: lang/json/recipe_category_from_json.py @@ -184710,7 +179886,7 @@ msgstr "Нам нужны слесарные инструменты." #: lang/json/recipe_from_json.py msgid "place advanced tools" -msgstr "достать продвинутых инструментов" +msgstr "достать продвинутые инструменты" #: lang/json/recipe_from_json.py msgid "" @@ -184768,7 +179944,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "basic firepit" -msgstr "простой очег" +msgstr "простой очаг" #: lang/json/recipe_from_json.py msgid "" @@ -184924,7 +180100,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "basic reinforced gates" -msgstr "простое усиленное стекло" +msgstr "простые укреплённые ворота" #: lang/json/recipe_from_json.py msgid "One more tent and our living space will be full." @@ -185087,7 +180263,7 @@ msgstr "Мы должны завершить строительство карк #: lang/json/recipe_from_json.py msgid "Kitchen finished shack" -msgstr "Достроенная хижина для готовки" +msgstr "Достроенная хижина под кухню" #: lang/json/recipe_from_json.py msgid "" @@ -185105,7 +180281,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "Kitchen pantry expansion" -msgstr "Расширение кухню под кладовую" +msgstr "Расширение кухни под кладовую" #: lang/json/recipe_from_json.py msgid "" @@ -185345,7 +180521,7 @@ msgstr "обставить столовую" #: lang/json/recipe_from_json.py msgid "Let's build some planters to the north for a chef's garden." -msgstr "Давайте построим несколько садовых ящика на севера для шеф-повара." +msgstr "Давайте построим несколько садовых ящиков на севере для шеф-повара." #: lang/json/recipe_from_json.py msgid "build some planters" @@ -185596,7 +180772,7 @@ msgstr "Давайте заложим основные каменные стен #: lang/json/recipe_from_json.py msgid "build the central kitchen room" -msgstr "построить центр кухни" +msgstr "построить кухню в центре" #: lang/json/recipe_from_json.py msgid "Lets finish the central kitchen rock walls." @@ -186046,7 +181222,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "SW brewery still" -msgstr "юго-западный перегонный аппарат" +msgstr "юго-западная винокурня" #: lang/json/recipe_from_json.py msgid "We could use fill out the space with extra kegs and storage racks." @@ -187582,7 +182758,7 @@ msgstr "Кусочки утки в масле" #: lang/json/recipe_from_json.py msgid "Candied Onions and Giblets" -msgstr "Потроха с карамелизированным луков" +msgstr "Потроха с карамелизированным луком" #: lang/json/recipe_from_json.py msgid "Spaghetti Luchetto" @@ -187630,7 +182806,7 @@ msgstr "Производственная мастерская" #: lang/json/recipe_group_from_json.py msgid " Craft: Tinder" -msgstr " Создать: Трут" +msgstr "Производство" #: lang/json/recipe_group_from_json.py msgid " Cook: Meat, Cooked" @@ -187758,7 +182934,7 @@ msgstr " Готовка: мясное заливное" #: lang/json/recipe_group_from_json.py msgid " Cook: Kompot" -msgstr " Готовить: компот" +msgstr " Готовка: компот" #: lang/json/recipe_group_from_json.py msgid " Craft: Pointy Sticks" @@ -187774,7 +182950,7 @@ msgstr " Производство: семена одуванчика" #: lang/json/recipe_group_from_json.py msgid " Craft: Potato, Starter" -msgstr " Производство: картофель" +msgstr " Производство: картофель под посадку" #: lang/json/recipe_group_from_json.py msgid " Craft: Buckwheat Seeds" @@ -188042,27 +183218,27 @@ msgstr " Производство: кирка" #: lang/json/recipe_group_from_json.py msgid " Craft: Sheet Metal, Drop Hammer" -msgstr " Производство: лист металла, падающий молот" +msgstr " Производство: лист металла, паровой молот" #: lang/json/recipe_group_from_json.py msgid " Craft: Chain, Drop Hammer" -msgstr " Производство: цепь, падающий молот" +msgstr " Производство: цепь, паровой молот" #: lang/json/recipe_group_from_json.py msgid " Craft: Nail, Drop Hammer" -msgstr " Производство: гвозди, падающий молот" +msgstr " Производство: гвозди, паровой молот" #: lang/json/recipe_group_from_json.py msgid " Craft: Wire, Drop Hammer" -msgstr " Производство: проволока, падающий молот" +msgstr " Производство: проволока, паровой молот" #: lang/json/recipe_group_from_json.py msgid " Craft: Pipe, Drop Hammer" -msgstr " Производство: труба, падающий молот" +msgstr " Производство: труба, паровой молот" #: lang/json/recipe_group_from_json.py msgid " Craft: Rebar, Drop Hammer" -msgstr " Производство: арматура, падающий молот" +msgstr " Производство: арматура, паровой молот" #. ~ Name for scenario 'Evacuee' for a male character #: lang/json/scenario_from_json.py @@ -188122,7 +183298,7 @@ msgid "" "the evacuation, and are stuck in a city full of the risen dead." msgstr "" "То ли из-за простого невезения, то ли из-за упрямства или незнания, но вы " -"пропустили эвакуацию и застряли в городе, полном восставшей смерти." +"пропустили эвакуацию и застряли в городе, полном восставших мертвецов." #. ~ Description for scenario 'Missed' for a female character. #: lang/json/scenario_from_json.py @@ -188132,14 +183308,14 @@ msgid "" "the evacuation, and are stuck in a city full of the risen dead." msgstr "" "То ли из-за простого невезения, то ли из-за упрямства или незнания, но вы " -"пропустили эвакуацию и застряли в городе, полном восставшей смерти." +"пропустили эвакуацию и застряли в городе, полном восставших мертвецов." #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. -#. ~ Starting location for scenario 'Robots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "In Town" @@ -188285,6 +183461,38 @@ msgstr "" "В хаосе и панике эвакуации вас укусило нечто! Вы не получили надлежащей " "медицинской помощи, и теперь рана начала зеленеть." +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "Испытание - Грибковая инфекция" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "Испытание - Грибковая инфекция" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" +"Вы чувствуете, как споры грибов расползаются под кожей. Теперь это только " +"вопрос времени." + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" +"Вы чувствуете, как споры грибов расползаются под кожей. Теперь это только " +"вопрос времени." + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -188373,8 +183581,8 @@ msgid "" "Som nigromancie hath brought yow hidder! Ye have only the hoose on youre " "legges and the knyf at youre syde and youre prayeres to Marie moder of God." msgstr "" -"Из-за кой-то нихромансии ты перенёсси сюды! У вас осталося токмо тово, чево " -"вы прихватили из дому, нож на боку да молитвы Марии Богородице." +"Из-за кой-то нихромансии ты перенёсси сюды! У тя осталося токмо тово, чево " +"ты прихватил из дому, нож на боку да молитвы Марии Богородице." #. ~ Description for scenario 'Challenge - Medieval Peasant' for a female #. character. @@ -188384,8 +183592,8 @@ msgid "" "Som nigromancie hath brought yow hidder! Ye have only the hoose on youre " "legges and the knyf at youre syde and youre prayeres to Marie moder of God." msgstr "" -"Из-за кой-то нихромансии ты перенёсси сюды! У вас осталося токмо тово, чево " -"вы прихватили из дому, нож на боку да молитвы Марии Богородице." +"Из-за кой-то нихромансии ты перенёсси сюды! У тя осталося токмо тово, чево " +"ты прихватил из дому, нож на боку да молитвы Марии Богородице." #. ~ Starting location for scenario 'Challenge - Medieval Peasant'. #. ~ Starting location for scenario 'Experiment'. @@ -188473,13 +183681,13 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Ambush" -msgstr "Ловушка" +msgstr "Засада" #. ~ Name for scenario 'Ambush' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Ambush" -msgstr "Ловушка" +msgstr "Засада" #. ~ Description for scenario 'Ambush' for a male character. #: lang/json/scenario_from_json.py @@ -188741,8 +183949,8 @@ msgid "" msgstr "" "Вы попадаете в самое чужеродное место, которое вы когда-либо видели. Горячий" " влажный воздух и органические стены заставляют вас чувствовать, что вы " -"оказались в ловушке внутри гигантского существа. Что бы это ни было, тебе " -"нужно уйти отсюда, пока они не нашли тебя." +"оказались в ловушке внутри гигантского существа. Что бы это ни было, вам " +"нужно уйти отсюда, пока они не нашли вас." #. ~ Description for scenario 'Challenge - Mi-Go Camp' for a female character. #: lang/json/scenario_from_json.py @@ -188755,8 +183963,8 @@ msgid "" msgstr "" "Вы попадаете в самое чужеродное место, которое вы когда-либо видели. Горячий" " влажный воздух и органические стены заставляют вас чувствовать, что вы " -"оказались в ловушке внутри гигантского существа. Что бы это ни было, тебе " -"нужно уйти отсюда, пока они не нашли тебя." +"оказались в ловушке внутри гигантского существа. Что бы это ни было, вам " +"нужно уйти отсюда, пока они не нашли вас." #. ~ Starting location for scenario 'Challenge - Mi-Go Camp'. #: lang/json/scenario_from_json.py @@ -189106,19 +184314,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "Склад военной базы" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "Безумная вечеринка" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "Безумная вечеринка" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -189132,7 +184340,7 @@ msgstr "" " сражаться с полицией, ты попытался их успокоить, но обнаружил только, что " "они жаждут крови и мозгов." -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -189146,11 +184354,11 @@ msgstr "" " сражаться с полицией, ты попыталась их успокоить, но обнаружила только, что" " они жаждут крови и мозгов." -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" -msgstr "закрытый курорт" +msgstr "Закрытый курорт" #. ~ Description for scenario 'Evacuee' for a male character. #: lang/json/scenario_from_json.py @@ -189334,9 +184542,9 @@ msgid "" "become a scavenger. Either way, you found a bunker with a fellow scav in " "it. Turns out they were a lot better at it than you were." msgstr "" -"Вы опытный добытчик, или по крайней мере, уже прошёл целый сезон с момента " -"как вы стали добытчиком. В любом случае, вы нашли бункер с такими же " -"трудягами-собирателями, которые были в этом ремесле намного опытнее вас." +"Вы опытный добытчик, уже прошёл целый сезон с момента как вы стали " +"добытчиком. В любом случае, вы нашли бункер с такими же трудягами-" +"собирателями, которые были в этом ремесле намного опытнее вас." #. ~ Description for scenario 'Scavenger' for a female character. #: lang/json/scenario_from_json.py @@ -189346,9 +184554,9 @@ msgid "" "become a scavenger. Either way, you found a bunker with a fellow scav in " "it. Turns out they were a lot better at it than you were." msgstr "" -"Вы опытная добытчица, или по крайней мере, уже прошёл целый сезон с момента " -"как вы стали добытчицей. В любом случае, вы нашли бункер с такими же " -"трудягами-собирателями, которые были в этом ремесле намного опытнее вас." +"Вы опытная добытчица, уже прошёл целый сезон с момента как вы стали " +"добытчицей. В любом случае, вы нашли бункер с такими же трудягами-" +"собирателями, которые были в этом ремесле намного опытнее вас." #. ~ Starting location for scenario 'Scavenger'. #: lang/json/scenario_from_json.py @@ -189408,7 +184616,7 @@ msgstr "Ученик волшебника" #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "The Wizard's Apprentice" -msgstr "Ученик волшебника" +msgstr "Ученица волшебника" #. ~ Description for scenario 'The Wizard's Apprentice' for a male character. #: lang/json/scenario_from_json.py @@ -189447,7 +184655,7 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Wizard's Secret Basement Study" -msgstr "Подвал секретного кабинета волшебника" +msgstr "Тайный подвал в кабинете волшебника" #. ~ Name for scenario 'The Wizard's Vacation' for a male character #: lang/json/scenario_from_json.py @@ -189541,130 +184749,6 @@ msgctxt "start_name" msgid "Candy Shop" msgstr "Кондитерская" -#. ~ Name for scenario 'Robots' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Robots" -msgstr "Роботы" - -#. ~ Name for scenario 'Robots' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Robots" -msgstr "Роботы" - -#. ~ Description for scenario 'Robots' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Во время беспорядков и хаоса вы спрятались в диспетчерском центре роботов, " -"надеясь, что они защитят вас. Но машины могут оказаться более опасными, чем " -"зомби." - -#. ~ Description for scenario 'Robots' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" -"Во время беспорядков и хаоса вы спрятались в диспетчерском центре роботов, " -"надеясь, что они защитят вас. Но машины могут оказаться более опасными, чем " -"зомби." - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Challenge-FEMA Death Camp" -msgstr "Испытание: Лагерь смерти" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Challenge-FEMA Death Camp" -msgstr "Испытание: Лагерь смерти" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"Вы были одним из многих членов полиции и военных, вызванных, чтобы " -"поддерживать порядок в одном из лагерей МЧС. Всё полетело к чертям… раненый," -" заражённый, окружённый огнём, вы лежите на земле… а они продолжают идти…" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a female -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"Вы были одним из многих членов полиции и военных, вызванных, чтобы " -"поддерживать порядок в одном из лагерей МЧС. Всё полетело к чертям… раненый," -" заражённый, окружённый огнём, вы лежите на земле… а они продолжают идти…" - -#. ~ Starting location for scenario 'Challenge-FEMA Death Camp'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Fema Camp" -msgstr "Лагерь МЧС" - -#. ~ Name for scenario 'Mansion Holdout' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Mansion Holdout" -msgstr "Укрывшийся в поместье" - -#. ~ Name for scenario 'Mansion Holdout' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Mansion Holdout" -msgstr "Укрывшаяся в поместье" - -#. ~ Description for scenario 'Mansion Holdout' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"Когда миру пришёл конец, вы укрылись в относительной безопасности поместья, " -"в котором вы прислуживали долгие годы. Теперь, когда мёртвые стучатся к вам " -"в дверь, возможно, настало время покинуть его." - -#. ~ Description for scenario 'Mansion Holdout' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"Когда миру пришёл конец, вы укрылись в относительной безопасности поместья, " -"в котором вы прислуживали долгие годы. Теперь, когда мёртвые стучатся к вам " -"в дверь, возможно, настало время покинуть его." - -#. ~ Starting location for scenario 'Mansion Holdout'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Mansion" -msgstr "Поместье" - #. ~ display string for skill display type 'display_melee' #: lang/json/skill_display_type_from_json.py msgid "Melee skills" @@ -189678,7 +184762,7 @@ msgstr "Навыки дальнего боя" #. ~ display string for skill display type 'display_crafting' #: lang/json/skill_display_type_from_json.py msgid "Crafting skills" -msgstr "Навыки крафта" +msgstr "Навыки создания предметов" #. ~ display string for skill display type 'display_interaction' #: lang/json/skill_display_type_from_json.py @@ -189746,8 +184830,8 @@ msgid "" "reduce the failure and complication rates of medical procedures." msgstr "" "Навык экстренной медицинской помощи. Более высокий навык позволяет вам " -"вылечивать больше пунктов здоровья с помощью аптечек первой помощи и бинтов," -" а также уменьшает вероятность неудачи и осложнения от медицинских процедур." +"эффективнее использовать аптечки первой помощи и бинты, а также уменьшает " +"вероятность неудачи и осложнения от медицинских процедур." #: lang/json/skill_from_json.py msgid "mechanics" @@ -189776,7 +184860,7 @@ msgid "" "triggered." msgstr "" "Навык безопасно и эффективно создавать, устанавливать, находить и " -"обезвреживать ловушки. Учтите, что он не помогает избегать действие ловушек," +"обезвреживать ловушки. Учтите, что он не помогает избегать действия ловушек," " если вы вызвали их срабатывание." #. ~ Description for {'str': 'driving'} @@ -189826,12 +184910,7 @@ msgstr "кулинария" #: lang/json/skill_from_json.py msgid "" "Your skill in combining food ingredients to make other, tastier food items." -" It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." -msgstr "" -"Навык приготовления более вкусной еды из различных ингредиентов. Также можно" -" использовать для смешивания химических компонентов и других экзотических " -"работ." +msgstr "Навык приготовления более вкусной еды из различных ингредиентов." #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -189964,12 +185043,12 @@ msgid "" "into shotguns to provide greater range, though they are somewhat inaccurate." msgstr "" "Навык владения дробовиками. Из них легко попасть во врага, выстрел дробью " -"наносит большой урон, но всё это касается ближнего боя. Дробовики можно " -"зарядить жаканами, которые летят дальше, но страдает точность." +"наносит большой урон, но всё это касается боя на малой дистанции. Дробовики " +"можно зарядить жаканами, которые летят дальше, но не слишком точны." #: lang/json/skill_from_json.py msgid "submachine guns" -msgstr "пистолет-пулемёты" +msgstr "пистолеты-пулемёты" #. ~ Description for {'str': 'submachine guns'} #: lang/json/skill_from_json.py @@ -190023,8 +185102,8 @@ msgid "" "levels will improve the accuracy of an attack." msgstr "" "Навык боя с оружием, которое дубасит и колотит врагов, начиная от камня и " -"кончая бейсбольной битой, и даже если бить прикладом от винтовки. Навык " -"увеличивает урон, на высоких уровнях повышает шанс попадания." +"кончая бейсбольной битой и прикладом винтовки. Навык увеличивает урон, на " +"высоких уровнях повышает шанс попадания." #: lang/json/skill_from_json.py msgid "cutting weapons" @@ -190038,7 +185117,7 @@ msgid "" "levels will help to bypass heavy armor and thick hides." msgstr "" "Навык боя с режущим оружием. На первых порах этот навык помогает увеличить " -"точность и урон, при повышении позволяет пробивать броню и толстую шкуру." +"точность и урон, при повышении позволяет пробивать броню и толстые шкуры." #: lang/json/skill_from_json.py msgid "dodging" @@ -190102,6 +185181,19 @@ msgstr "" "замка до хитроумного дискового. Навык увеличивает шанс успешного взлома и " "уменьшает время, требующееся на взлом замка." +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "химия" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" +"Навык создания смесей, растворов и соединений из различных химических " +"ингредиентов." + #: lang/json/skill_from_json.py msgid "weapon" msgstr "оружие" @@ -190123,7 +185215,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Fires can spread easily, especially with abundance of fuel." -msgstr "Пожары распространяются легко, особенно при избытке топлива." +msgstr "" +"Пожары распространяются легко, особенно при избытке горючих материалов." #: lang/json/snippet_from_json.py msgid "Even without electricity, ovens can be useful fire containers." @@ -190138,7 +185231,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Moose may not be your friend." -msgstr "Лось может не быть вашим другом." +msgstr "Лось может оказаться недружелюбным." #: lang/json/snippet_from_json.py msgid "Turnout gear protects from fire but not from overheating." @@ -190272,7 +185365,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Wounds heal over time. Bandages and antiseptic speeds that up." -msgstr "Раны заживают со временем. Бинты и антисептик ускоряют процесс." +msgstr "" +"Раны заживают со временем. Перевязка ран и обеззараживание ускоряют процесс." #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." @@ -190284,7 +185378,7 @@ msgid "" "Feeling odd after waking up? Try eating healthier and your health may " "improve." msgstr "" -"Чувствуете себя разбитым после сна? Попробуйте есть здоровую еду и, может " +"Чувствуете себя разбитым после сна? Попробуйте есть здоровую пищу, и, может " "быть, вам станет лучше." #: lang/json/snippet_from_json.py @@ -190310,7 +185404,7 @@ msgstr "Зачем ходить, когда можно ездить на маш #: lang/json/snippet_from_json.py msgid "Food from before the Cataclysm won't last forever. Keep that in mind." -msgstr "Еда, оставшаяся со времён до катаклизма, не вечна. Имейте это в виду." +msgstr "Еда, оставшаяся со времён до Катаклизма, не вечна. Имейте это в виду." #: lang/json/snippet_from_json.py msgid "" @@ -190354,7 +185448,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "You're on fire? Stop and wait to put it out." -msgstr "Вы горите? Остановитесь и подождите, чтобы потушиться." +msgstr "Вы горите? Остановитесь и подождите, чтобы потушить себя." #: lang/json/snippet_from_json.py msgid "Routine kills. Stay alert! Don't let your guard down." @@ -190388,8 +185482,8 @@ msgid "" "Be mindful of environmental protection of your gear. It can take you " "places." msgstr "" -"Обращайте внимание на показатели защиты от окружающей среды вашего " -"снаряжения. Может пригодиться во враждебной окружающей среде." +"Обращайте внимание на показатели защиты вашего снаряжения от окружающей " +"среды . Может пригодиться во враждебной окружающей среде." #: lang/json/snippet_from_json.py msgid "" @@ -190563,9 +185657,7 @@ msgstr "В некоторых трупах при их вскрытии можн #: lang/json/snippet_from_json.py msgid "Don't be too greedy. Loot doesn't matter if you're dead." -msgstr "" -"Не будьте слишком алчными. Мертвецы всё равно не смогут воспользоваться всем" -" своим лутом." +msgstr "Не будьте слишком алчными. Мертвецу богатая добыча уже не поможет." #: lang/json/snippet_from_json.py msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." @@ -190586,8 +185678,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "This should repeat the same city several times: , , " msgstr "" -"Здесь должен несколько раз повторяться один и тот же город: , , " -"" +"Здесь должно несколько раз повторяться название одного и тот же города: " +", , " #: lang/json/snippet_from_json.py msgid "Leave No Trace." @@ -190653,7 +185745,7 @@ msgstr "Ночёвка запрещена." #: lang/json/snippet_from_json.py msgid "I left my wallet in " -msgstr "Я оставил бумажник в " +msgstr " - вот где остался мой бумажник" #: lang/json/snippet_from_json.py msgid " + forever" @@ -190673,7 +185765,8 @@ msgid "" "you'll probably be left with no meat! Use a BB gun or maybe a .22 rifle." msgstr "" "Белки довольно вкусные, но если выстрелить по ним из мощного оружия, то от " -"них ничего не останется. Лучше бери пневматику или винтовку калибра .22." +"них ничего не останется. Лучше использовать пневматику или винтовку калибра " +".22." #: lang/json/snippet_from_json.py msgid "" @@ -190760,7 +185853,7 @@ msgid "" msgstr "" "Резиновые сапоги не такие прочные как армейские, и в них особо не побегаешь." " Но я видел как зомби блюют кислотой, и мне не хотелось бы чтобы мои ноги " -"растворились. Именно поэтому стоит всё-же иметь пару таких сапог." +"растворились. Именно поэтому стоит всё же иметь пару таких сапог." #: lang/json/snippet_from_json.py msgid "" @@ -190777,8 +185870,8 @@ msgid "" "Zombie hulks are NASTY, but they're easy to outsmart. If there's other " "monsters between you and them, they'll kill the monster for you!" msgstr "" -"Зомби-халки очень ЗЛЫЕ, но их можно использовать себе на пользу. Если между " -"ним и тобой есть зомби, то халк будет убивать их на своём пути." +"Зомби-халки очень опасны, но их можно использовать себе на пользу. Если " +"между ним и тобой есть зомби, то халк будет убивать их на своём пути." #: lang/json/snippet_from_json.py msgid "" @@ -190825,8 +185918,8 @@ msgid "" msgstr "" "Маленькие скелеты слишком хрупкие, чтоб разбить окно или дверь. Большие " "скелеты могут пройти сквозь стену. Они хотя бы не могут учуять тебя по " -"запаху, таким образом, если ночью выключить фонарик, можно проскочить мимо " -"них." +"запаху, таким образом, если ночью выключить фонарик, можно проскользнуть " +"мимо них." #: lang/json/snippet_from_json.py msgid "" @@ -190834,7 +185927,7 @@ msgid "" "scratch marks. You've got to shatter those bones with a hammer or " "something." msgstr "" -"Не выходи на скелета с режущим оружием, оно оставит только царапины на нём. " +"Не выходи на скелета с режущим оружием, оно оставит на нём только царапины. " "Кости лучше разбивать чем-то наподобие молотка." #: lang/json/snippet_from_json.py @@ -190861,7 +185954,7 @@ msgid "" "there's these things down there that are like zombies, but tougher." msgstr "" "Ох, ты когда-нибудь спускался в метро? Будь осторожен… местные обитатели как" -" зомби, только сильнее." +" зомби, только опаснее." #: lang/json/snippet_from_json.py msgid "" @@ -190886,7 +185979,7 @@ msgid "" "faction's controlling them--maybe the military. All I know is, I don't want" " them taking my picture…" msgstr "" -"Видел летающие глазоботы? Трудно сказать, какая фракция их контролирует, " +"Видел летающие робоглазы? Трудно сказать, какая фракция их контролирует, " "возможно военные. Знаю одно: я не хочу, чтобы они меня сфотографировали." #: lang/json/snippet_from_json.py @@ -190937,9 +186030,9 @@ msgid "" "possible, but don't except as a last resort. It's inaccurate and wastes " "ammo." msgstr "" -"Я понимаю, это заманчиво, дать очередь из автомата, пока не закончатся пули " -"в магазине. Это может помочь, но лучше так делать только когда деваться " -"больше некуда. Очередь не точна и тратит много боеприпасов." +"Я понимаю, это заманчиво, стрелять очередью из автомата, пока не закончатся " +"пули в магазине. Это может помочь, но лучше так делать только когда деваться" +" больше некуда. Очередь не точна и тратит много боеприпасов." #: lang/json/snippet_from_json.py msgid "" @@ -190994,7 +186087,7 @@ msgid "" "down a zombie brute with one! Of course, if you can find a katana, that " "might be even better…" msgstr "" -"Если о ножах, то нет ничего лучше мачете. Видел парня, который убил им " +"Нет ничего лучше мачете для ближнего боя. Видел парня, который убил им " "зомби-амбала! Если найдёшь катану, то это ещё лучше…" #: lang/json/snippet_from_json.py @@ -191023,7 +186116,7 @@ msgid "" " something, and stick a bunch of nails through the end!" msgstr "" "Знаешь, как сделать неплохое оружие? Возьми доску, бейсбольную биту или ещё " -"что-нибудь и закрепи на конце несколько гвоздей!" +"что-нибудь и забей в конец несколько гвоздей!" #: lang/json/snippet_from_json.py msgid "" @@ -191254,7 +186347,7 @@ msgid "" "Carrying a lighter is something all veterans do. It takes up almost no " "space, and can easily save your life." msgstr "" -"Опытные выживальщики всегда носят зажигалку. Она очень маленькая, но " +"Опытные выживальщики всегда носят зажигалку. Она хоть и маленькая, но " "способна спасти тебе жизнь." #: lang/json/snippet_from_json.py @@ -191573,7 +186666,7 @@ msgid "" "cares when eating your leg is the second option?" msgstr "" "Голоден сильнее обычного? Природные масла могут помочь. Совсем невкусно, но " -"какая разница, если второй вариант - съесть собственную ногу?" +"какая разница, если другой вариант - съесть собственную ногу?" #: lang/json/snippet_from_json.py msgid "" @@ -191855,7 +186948,7 @@ msgid "" msgstr "" "Я думал привязать сумку к своей собаке, чтоб она носила мои вещи. Не " "сработало, потому что у меня была чихуахуа, и её сожрал гниль-вейлер. Надо " -"было нацепить на неё кевлар, как на тех овчарках. Эх, ладно…" +"было нацепить на неё кевлар, как на тех зомби-овчарках. Эх, ладно…" #: lang/json/snippet_from_json.py msgid "" @@ -192076,7 +187169,7 @@ msgid "" "minefield or a road block can make you feel sorry in an instant. I've even " "seen a tank once. I ran away like never before." msgstr "" -"Будь крайне осторожен на дорогах. По них легко путешествовать, но минное " +"Будь крайне осторожен на дорогах. По ним легко путешествовать, но минное " "поле или баррикада сразу заставят тебя пожалеть. Я даже как-то раз видел " "танк. Я бежал оттуда, как никогда в жизни." @@ -192145,6 +187238,14 @@ msgid "" msgstr "" "Не надо. Торазин серьезно помутит твой разум. Тебе нужно быть в форме." +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde" +" of undead!" +msgstr "" +"Конечно, скушай торазинчика. Тебе же хочется сойти с ума и забрести прямо в " +"орду ходячих трупов!" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "Розовые таблетки! Я их обожаю!" @@ -192209,6 +187310,14 @@ msgstr "Прости, , я этого сделать не смогу." msgid "Wish I could, ." msgstr "Если б я только мог, ." +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "Нечего предложить в обмен, прости, ." + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "Может в другой раз?" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "Нет, спасибо, мне это правда не нравится." @@ -192241,6 +187350,10 @@ msgstr "Боюсь, с этим я не смогу помочь." msgid "Not exactly the settlin' type." msgstr "Не, это не по мне." +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "Я вольная душа, на месте оставаться не по мне, прости." + #: lang/json/snippet_from_json.py msgid " " msgstr "ну, , " @@ -192479,11 +187592,11 @@ msgstr "Когда будем пить?" #: lang/json/snippet_from_json.py msgid "When was the last time I had a drink?" -msgstr "Когда я последний раз пил?" +msgstr "Когда мне удалось попить последний раз?" #: lang/json/snippet_from_json.py msgid "I'm parched, I need to drink something." -msgstr "Я обезвожен, мне нужно что-нибудь выпить." +msgstr "У меня обезвоживание, мне нужно что-нибудь выпить." #: lang/json/snippet_from_json.py msgid "I'm thirsty…" @@ -192519,11 +187632,11 @@ msgstr "Ты знаешь, что недостаток воды убивает #: lang/json/snippet_from_json.py msgid "I can't remember the last time I was this thirsty." -msgstr "Не помню, когда последний раз так хотел пить." +msgstr "Не помню, когда последний раз так хотелось пить." #: lang/json/snippet_from_json.py msgid "I'd kill for a sip of water right now." -msgstr "Я б убил за глоток воды." +msgstr "Могу убить за глоток воды." #: lang/json/snippet_from_json.py msgid "" @@ -192564,6 +187677,10 @@ msgstr "" "Что скажешь, если мы откроем пива, поболтаем и просто… притворимся, что " "никакого апокалипсиса нет, хотя б на минутку?" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "Передай-ка и мне, и вспомним старые добрые деньки, ." + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "Эй, конечно, , мне всё равно нужно передохнуть, как сам-то?" @@ -192866,7 +187983,7 @@ msgstr "нихрена" #: lang/json/snippet_from_json.py msgid "Goodbye, !" -msgstr "Давай, до свиданья, !" +msgstr "Бывай, !" #: lang/json/snippet_from_json.py msgid "I'm leaving." @@ -192910,7 +188027,7 @@ msgstr "я тебя уничтожу" #: lang/json/snippet_from_json.py msgid "I'll kick your ass" -msgstr "я надеру тебе зад" +msgstr "я тебе надеру зад" #: lang/json/snippet_from_json.py msgid "I'll kill you" @@ -192926,7 +188043,7 @@ msgstr "душу из тебя вышибу" #: lang/json/snippet_from_json.py msgid "you won't make it out alive" -msgstr "ты из этого живым не выберешься" +msgstr "ты отсюда уже не уйдёшь" #: lang/json/snippet_from_json.py msgid "you're dead" @@ -193038,7 +188155,7 @@ msgstr ", прости" #: lang/json/snippet_from_json.py msgid "didn't think it would end like this." -msgstr "не думал, что всё кончится вот так." +msgstr "не могло и в голову придти, что всё кончится вот так." #: lang/json/snippet_from_json.py msgid "so, this is how it ends, huh?" @@ -193104,13 +188221,21 @@ msgstr "Эй, я здесь!" msgid "Hold up a second, will ya?" msgstr "Постой минутку, ага?" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "Что за спешка?" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "Подожди меня, , я за тобой не поспеваю!" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "Я ни к кому не принадлежу." #: lang/json/snippet_from_json.py msgid "I don't run with a crew." -msgstr "Я не бегаю в команде." +msgstr "Я не работаю в команде." #: lang/json/snippet_from_json.py msgid "I'm a solo artist, ?" @@ -193302,15 +188427,15 @@ msgstr "Сколько сейчас времени?" #: lang/json/snippet_from_json.py msgid "I'm tired…" -msgstr "Я устал…" +msgstr "Такая усталость…" #: lang/json/snippet_from_json.py msgid "I'm tired." -msgstr "Я устал." +msgstr "Я устал(а)." #: lang/json/snippet_from_json.py msgid "I'm tired." -msgstr "Я устал, ." +msgstr "Сил нет, ." #: lang/json/snippet_from_json.py msgid "Can we rest for a while, ?" @@ -193338,7 +188463,7 @@ msgstr "Я просто… просто прикрою глаза на мину #: lang/json/snippet_from_json.py msgid "Can't remember the last time I had a proper kip." -msgstr "Не помню, когда последний раз спал по-настоящему." +msgstr "Не помню, когда последний раз удалось поспать по-настоящему." #: lang/json/snippet_from_json.py msgid "I can't keep going for long . I need some rest, bad." @@ -193379,7 +188504,7 @@ msgstr "чрезвычайно" #: lang/json/snippet_from_json.py msgid "greatly" -msgstr "здорово" +msgstr "оооочень" #: lang/json/snippet_from_json.py msgid "highly" @@ -193391,7 +188516,7 @@ msgstr "невероятно" #: lang/json/snippet_from_json.py msgid "quite" -msgstr "довольно" +msgstr "весьма" #: lang/json/snippet_from_json.py msgid "really" @@ -193431,7 +188556,7 @@ msgstr "ультра" #: lang/json/snippet_from_json.py msgid "so " -msgstr "настолько " +msgstr "так " #: lang/json/snippet_from_json.py msgid " " @@ -193447,7 +188572,7 @@ msgstr "до зарезу" #: lang/json/snippet_from_json.py msgid "unusually" -msgstr "весьма" +msgstr "необычайно" #: lang/json/snippet_from_json.py msgid "tremendously" @@ -193992,11 +189117,11 @@ msgstr "Отличное время для перекуса." #: lang/json/snippet_from_json.py msgid "I'm hungry…" -msgstr "Я голоден…" +msgstr "Есть хочу…" #: lang/json/snippet_from_json.py msgid "I'm hungry." -msgstr "Я голоден." +msgstr "Я есть хочу." #: lang/json/snippet_from_json.py msgid "I'm hungry." @@ -194026,15 +189151,15 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Can't remember the last time I got a proper meal." -msgstr "Не помню, когда я по-настоящему ел." +msgstr "Не помню, когда я по-настоящему ел(а)." #: lang/json/snippet_from_json.py msgid "I could eat a horse." -msgstr "Я бы лошадь съел." +msgstr "Я бы лошадь съел(а)." #: lang/json/snippet_from_json.py msgid "fuck you" -msgstr "пошёл ты" +msgstr "иди ты" #: lang/json/snippet_from_json.py msgid "fuck off" @@ -194062,7 +189187,7 @@ msgstr "отъебись нахуй, ты " #: lang/json/snippet_from_json.py msgid "I've had enough of you, begone." -msgstr "Ты меня достал, пшёл прочь." +msgstr "С меня хватит твоей херни, подипрочь." #: lang/json/snippet_from_json.py msgid "you're a poster child for abortions" @@ -194084,7 +189209,7 @@ msgstr "Можно мне выйти и пойти пешком? Эта маши #: lang/json/snippet_from_json.py msgid "How about we make the next vehicle a convertible?" -msgstr "Как насчёт сделать следующей машине откидной верх?" +msgstr "Как насчёт взять следующую машину с откидным верхом?" #: lang/json/snippet_from_json.py msgid "This vehicle is too small." @@ -194444,7 +189569,7 @@ msgstr "Это последний?" #: lang/json/snippet_from_json.py msgid "I'd kill for a coke." -msgstr "Я бы убил за кока-колу." +msgstr "Могу сейчас убить за баночку за колы." #: lang/json/snippet_from_json.py msgid "Weapons check everyone. There may be more." @@ -194460,7 +189585,7 @@ msgstr "Пока что это последний." #: lang/json/snippet_from_json.py msgid "Clearing the world, one at a time" -msgstr "Очищаю мир по одному за раз" +msgstr "Очищаю мир, один за раз" #: lang/json/snippet_from_json.py msgid "Well, that got the blood pumping." @@ -194496,7 +189621,7 @@ msgstr "Забей." #: lang/json/snippet_from_json.py msgid "I've seen horrors, horrors that you've seen." -msgstr "Я видел ужасы… ты и сам их видел." +msgstr "Я видел ужасы… ты и тоже." #: lang/json/snippet_from_json.py msgid "Every man has got a breaking point." @@ -194580,7 +189705,7 @@ msgstr "Посмотрю, как ты истечёшь кровью," #: lang/json/snippet_from_json.py msgid "Hey ! I'm gonna murder" -msgstr "! Я сейчас прихлопну, ," +msgstr "! Я сейчас буду убивать, ," #: lang/json/snippet_from_json.py msgid "! This is the end," @@ -194644,7 +189769,7 @@ msgstr "Кажется, мне нужен врач. Они все мертвы, #: lang/json/snippet_from_json.py msgid "Please, I don't want to die. C'mon, bandages!" -msgstr "Пожалуйста, я не хочу умирать. Бинты, вперед!" +msgstr "Пожалуйста, я не хочу умирать. Бинты, ну же!" #: lang/json/snippet_from_json.py msgid "Wait a spell, patching myself up!" @@ -194714,7 +189839,7 @@ msgstr "Звучит плохо." #: lang/json/snippet_from_json.py msgid "Be alert, something is up!" -msgstr "Осторожно, что-то впереди!" +msgstr "Осторожно, что-то происходит!" #: lang/json/snippet_from_json.py msgid "Did you hear that?" @@ -195120,11 +190245,11 @@ msgstr "Я хочу спросить тебя о чём-нибудь ещё." #: lang/json/snippet_from_json.py msgid "Moving on…" -msgstr "Пойдём…" +msgstr "Сменим тему…" #: lang/json/snippet_from_json.py msgid "Anyway…" -msgstr "Всё равно…" +msgstr "Ладно…" #: lang/json/snippet_from_json.py msgid "We should probably get going." @@ -195513,7 +190638,7 @@ msgstr "Слишком горячо!" #: lang/json/snippet_from_json.py msgid "I've done so much for you, and you can't even keep me fed!" -msgstr "Я столько для тебя сделал, а ты меня даже накормить не можешь!" +msgstr "Я столько для тебя делаю, а ты меня даже накормить не можешь!" #: lang/json/snippet_from_json.py msgid "You are the worst person in the world!" @@ -195525,7 +190650,7 @@ msgstr "Почему из тебя такой ужасный лидер?" #: lang/json/snippet_from_json.py msgid "I trusted you, and you can't even provide food!" -msgstr "Я верил в тебя, а ты даже еды достать не можешь!" +msgstr "Мне пришлось довериться тебе, а ты даже еды достать не можешь!" #: lang/json/snippet_from_json.py msgid "" @@ -195535,7 +190660,7 @@ msgstr "Я не собираюсь терпеть такое обращение! #: lang/json/snippet_from_json.py msgid "You said you would keep me safe, and you haven't!" -msgstr "Ты обещал, что защитишь меня, и не защитил!" +msgstr "Ты обещаешь, что защитишь меня, и не защитил!" #: lang/json/snippet_from_json.py msgid "" @@ -195576,6 +190701,121 @@ msgstr "дорогуша моя" msgid "survivor" msgstr "выживший" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "Чистая вода - вкус, который освежает." + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "Я почти иссох, но теперь мне лучше." + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "Вода это хорошо, но я предпочитаю жить на гроге." + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "Это хоть и не Эвиан, но жажда меня больше не мучает." + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "Вот теперь я чувствую сытость, а голод отступил." + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "Неплохо было, но мне иногда все же не хватает настоящего ресторана." + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "Ну, это меня удовлетворило." + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" +"Вроде и получилось перекусить, но хочется ещё. Не возражаешь, если я ещё " +"поем?" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "Эй, , у нас кончилась еда." + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "Эй, в кладовой пусто! Мы так от голода умрём." + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" +"Эм, , не думай, что я критикую, но нам стоит отложить часть еды в " +"лагерную кладовку." + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "прямо над нами!" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "вон там!" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "опасно близко!" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "на расстоянии удара!" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "куда ближе, чем хотелось бы!" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "на дистанции выстрела." + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "в паре секунд отсюда." + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "неподалёку." + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "ближе, чем хотелось бы." + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "достаточно близко, чтобы видеть нас." + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "не слишком близко." + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "может быть, на пределе выстрела." + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "на приличном расстоянии." + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "достаточно далеко, чтобы мы успели тихо залечь." + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "на горизонте, пока не стоит беспокоиться." + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "далеко отсюда." + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr " будет использовать стрелковое оружие." @@ -195795,7 +191035,7 @@ msgstr "" " Связанная бесконечным сражением, Старая Гвардия была вынуждена " "сосредоточить свои силы в горстке укреплённых опорных пунктов вдоль " "побережья. Без человеческих ресурсов и материальной базы для восстановления," -" это солдаты, потерявшие всякую надежду…" +" оставшиеся солдаты потеряли всякую надежду…" #: lang/json/snippet_from_json.py msgid "" @@ -195809,11 +191049,11 @@ msgid "" msgstr "" " Упорство некоторых выживальщиков после Катаклизма впечатлило разбросанные" " остатки когда-то славного союза. Под вдохновением от небольших успехов было" -" организовано несколько миссий по зачистке объектов, увенчавшихся скромными " -"результатами. Старая Гвардия была вынуждена в конечном счёте сосредоточиться" -" в больших базах и оставить эти объекты в руках горстки выживальщиков. За " -"минувшие годы из надежд на восстановление цивилизации было воплощено в жизнь" -" очень немногое…" +" организовано несколько миссий по зачистке объектов с ограниченным успехом. " +"Старая Гвардия была вынуждена в конечном счёте сосредоточиться в больших " +"базах и оставить эти объекты в руках горстки выживальщиков. За минувшие годы" +" из надежд на восстановление цивилизации было воплощено в жизнь очень " +"немногое…" #: lang/json/snippet_from_json.py msgid "" @@ -195955,7 +191195,7 @@ msgid "" "leaving a note." msgstr "" " Выживал в течение многих лет и приобрёл известность среди других " -"выживших. В конце концов, он начал расширять себя бионикой…, а когда " +"выживших. В конце концов, он начал расширять себя бионикой… а когда " "неудачная хирургическая операция оставила его навсегда слепым, совершил " "самоубийство, не оставив никакой посмертной записки." @@ -196012,7 +191252,7 @@ msgid "" "hanged for stealing from an employer; weeks later it was revealed the " "employer never had the resources nor intention to pay him." msgstr "" -" Стал наёмным рабочим на любой аванпост, которому нужна была помощь. " +" Нанимался рабочим на любой аванпост, которому нужна была помощь. " "Повешен за кражу имущества нанимателя; несколько недель спустя обнаружилось," " что у нанимателя не было ни средств, ни желания заплатить ему." @@ -196056,10 +191296,10 @@ msgid "" msgstr "" " Стал самоучкой химиком и медиком. Работа в конечном счёте привела его к" " жизни в полной зависимости от морфия и алкоголя. Однажды ночью у него " -"случилась передозировка, когда он остался без присмотра. Местное население, " -"которому он помог, заявило, «Встреча с этим человеком, вероятно, была лучшей" -" вещью, которая произошла с нами за эти годы… Нельзя вернуться, если потерял" -" всякую надежду." +"случилась передозировка, когда он остался без присмотра. Сообщество, " +"которому он помогал, заявило, «Встреча с этим человеком, вероятно, была " +"лучшей вещью, которая произошла с нами за эти годы… Нельзя вернуться, если " +"потерял всякую надежду." #: lang/json/snippet_from_json.py msgid "" @@ -196112,7 +191352,7 @@ msgstr "" "никогда не рассказывал вам, былые преступления в погибшем мире мешали ему " "занять настоящее место в обществе. После уничтожения полицейских записей он" " решил сам доказать свою значимость. Умер в одиночестве от сердечного " -"приступа во время путешествия много лет спустя после катаклизма." +"приступа во время путешествия спустя много лет после катаклизма." #: lang/json/snippet_from_json.py msgid "" @@ -196185,7 +191425,7 @@ msgid "" "his service over the years." msgstr "" " Упорно работал после вашей смерти, чтобы организовать свою собственную " -"группу выживших. Женился, вырастил двоих детей и обучил их всем навыку " +"группу выживших. Женился, вырастил двоих детей и обучил их всем навыкам " "выживания, какие только могли пригодиться. Его прошлое в конечном счёте " "настигло его, когда он не поладил с полковником Старой гвардии. Поскольку во" " время Катаклизма он был солдатом Национальной Гвардии и покинул свой пост, " @@ -196231,7 +191471,7 @@ msgid "" "spread between his countless minor wounds." msgstr "" " Обученный под вашим руководством, он стал известным охотником на всякую" -" мерзость. Вооружённый любым найденным оружием, он возглавлял отряды по " +" мерзость. Вооружаясь любым найденным оружием, он возглавлял отряды по " "зачистке города за городом от нечисти и других ужасов, бродивших по пустоши." " Его успех был временным, так как монстры возвращались в очищенные " "территории так же быстро, как он зачищал их. Его жизнь подошла к концу, " @@ -196267,8 +191507,8 @@ msgstr "" " Был задержан и закован в наручники роботом-полицейским по " "многочисленным пунктам обвинения в грабеже и вандализме, зафиксированным и " "зарегистрированным несколькими оставшимися в рабочем состоянии системами " -"безопасности. Пока лежал на земле в ожидании дополнительных сотрудников " -"полиции, был разорван на куски зомби, привлечёнными шумом." +"безопасности. Пока лежал на земле в ожидании сотрудников полиции, был " +"разорван на куски зомби, привлечёнными шумом." #: lang/json/snippet_from_json.py msgid "" @@ -196431,8 +191671,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" " Became a runner for the Refugee Center and died after a few months." -msgstr "" -" Следуя по пути в Центр беженцев, он умер через несколько месяцев." +msgstr " Стал гонцом в Центре беженцев, умер через несколько месяцев." #: lang/json/snippet_from_json.py msgid "" @@ -196590,9 +191829,9 @@ msgid "" "trip never to be seen again. Attempts to locate her were called off when a " "shredded jacket was found." msgstr "" -" Стала охотницей за удачей и траппером. Как-то отправилась на охоту, и " -"больше её никто не видел. Попытки найти её были прекращены, когда нашли " -"искромсанную куртку." +" Стала охотницей и траппером. Как-то отправилась на охоту, и больше её " +"никто не видел. Попытки найти её были прекращены, когда нашли искромсанную " +"куртку." #: lang/json/snippet_from_json.py msgid "" @@ -196612,8 +191851,8 @@ msgid "" " Became a laborer for hire in any outposts that needed assistance. Was " "wrongly shot by her employer during a wage dispute." msgstr "" -" Стала наёмным рабочим на любой аванпост, которому нужна была помощь. " -"Была ошибочно застрелена нанимателем во время спора о размере оплаты труда." +" Нанималась рабочей на любой аванпост, которому нужна была помощь. Была " +"несправедливо застрелена нанимателем во время спора о размере оплаты труда." #: lang/json/snippet_from_json.py msgid "" @@ -196654,8 +191893,7 @@ msgstr "" " её к жизни в полной зависимости от морфия и злоупотребления алкоголем. " "Однажды ночью у неё случилась передозировка, когда она осталась без " "присмотра. Местное население, которому она помогала, заявило: «Мы никогда не" -" знали более хорошей женщины, никого, кто бы боролся с депрессией так " -"долго.»" +" знали более доброй женщины, никого, кто бы боролся с депрессией так долго.»" #: lang/json/snippet_from_json.py msgid "" @@ -196803,7 +192041,7 @@ msgstr "" "рыбацком городе, контролируемый Старой гвардией. Поверив обещаниям о новой " "жизни, она согласилась стать подрядчиком, провела следующие несколько лет, " "трудясь ради обеспечения лагеря снабжением, но никогда не видела своего " -"вознаграждения. Шальная пуля свалила её, когда банда Адских Налётчиков " +"вознаграждения. Шальная пуля свалила её, когда банда Адских налётчиков " "устроила рейд в попытке получить доступ к морю." #: lang/json/snippet_from_json.py @@ -196813,10 +192051,10 @@ msgid "" "unleashed a blast from his flamethrower at close range. Her ashes and a few" " odd pieces of jewelry were all that could be recovered." msgstr "" -" В течение нескольких месяцев после вашей смерти её ограбили бандиты. " -"Когда она убила первого, его товарищ выпустил в упор струю из своего " -"огнемёта. Пепел и несколько странных кусков украшений — вот и всё, что от " -"неё осталось." +" Через несколько месяцев после вашей смерти её ограбили бандиты. Когда " +"она убила первого, его товарищ выпустил в упор струю из своего огнемёта. " +"Пепел и несколько расплавленных кусочков металла от украшений — вот и всё, " +"что от неё осталось." #: lang/json/snippet_from_json.py msgid "" @@ -196831,10 +192069,10 @@ msgstr "" " Обученная под вашим руководством, она стала известной охотницей на " "монстров. Возглавив группу вооружённых примитивным оружием бойцов, она " "разыскала и убила множество блуждавших в пустошах неземных кошмаров. Поиски " -"по остановке угрозы привели группу к мерцающему порталу, который, казалось, " -"извергал наружу мерзких тварей и инопланетное вещество. Не имея возможности " -"закрыть портал, группу видели в последний раз, когда они рискнули " -"отправиться в неизвестность, чтобы найти источник угрозы." +"способа остановить угрозу привели группу к мерцающему порталу, который, " +"казалось, извергал наружу мерзких тварей и инопланетное вещество. Группу " +"видели в последний раз, когда, не имея возможности закрыть портал, они " +"рискнули отправиться в неизвестность, чтобы найти источник угрозы." #: lang/json/snippet_from_json.py msgid "" @@ -196849,7 +192087,7 @@ msgstr "" "решение завести семью со знакомым выжившим в заброшенной охотничьей хижине. " "Выживать было тяжело, но семья в течение последующих лет росла, у неё было " "трое сыновей и дочь. Конец настал, когда ужасы, наконец, нашли её дом… Она и" -" муж смогли отвлечь чудовище, пока её дети сбежали." +" муж смогли отвлечь чудовище, пока её дети убегали." #: lang/json/snippet_from_json.py msgid "" @@ -196872,7 +192110,7 @@ msgid "" " Shot by the Old Guard a few weeks later, hunted down after she robbed " "an important caravan." msgstr "" -" Подстрелена старой гвардией несколько недель спустя, после того как " +" Подстрелена старой гвардией несколько недель спустя, после того, как " "ограбила большой караван." #: lang/json/snippet_from_json.py @@ -196914,7 +192152,7 @@ msgid "" "antibiotics." msgstr "" " Она была найдена полумёртвой Старой гвардией, которая подобрала её. " -"Стала известной старьёвщицей, прославившаяся тем, что нашла нетронутый " +"Стала известной старьёвщицей, прославившейся тем, что нашла нетронутый " "тайник с экспериментальными антибиотиками." #: lang/json/snippet_from_json.py @@ -196931,7 +192169,7 @@ msgid "" "slave. Hopeless, she slit her wrists with a rusty knife." msgstr "" " Захваченная рейдерами, она провела остаток своей несчастной жизни в " -"рабстве. В безнадёге она перерезала запястья ржавым ножом." +"рабстве. Потеряв надежду, она перерезала запястья ржавым ножом." #: lang/json/snippet_from_json.py msgid "" @@ -196941,7 +192179,7 @@ msgid "" msgstr "" " Подавленная, она присоединилась к протестантской общине и стала " "образцом добродетели. Посвятив свою жизнь изучению Библии, она провела " -"остаток своей жизни в относительном мире." +"остаток своей жизни в относительном покое." #: lang/json/snippet_from_json.py msgid "" @@ -196957,9 +192195,9 @@ msgid "" "in the west. An avid book collector, she established a great library to " "keep the flame of knowledge burning." msgstr "" -" После вашей смерти, она построила свой собственный форпост на западе и " +" После вашей смерти она построила свой собственный форпост на западе и " "стала известным торговцем. Будучи заядлым коллекционером книг, она создала " -"большую библиотеку, чтобы поддержать гранит науки." +"большую библиотеку, чтобы поддержать пламя знания." #: lang/json/snippet_from_json.py msgid "" @@ -197037,8 +192275,8 @@ msgid "" " She became an arsonist, and was incinerated a few weeks later in a fire" " she set." msgstr "" -" Она стала поджигателем и была сожжена несколько недель спустя в костре," -" который сама же и подожгла." +" Она стала поджигателем и была сожжена несколько недель спустя в " +"пламени, которое сама же и зажгла." #: lang/json/snippet_from_json.py msgid "" @@ -197054,8 +192292,8 @@ msgid "" "known for her trapping skills and ensured that the locals always had fresh " "meat on their tables." msgstr "" -" Она уехала на север и присоединилась к тамошней общине. Благодаря своим" -" навыкам ловли, гарантировала всегда свежее мясо на столах местных жителей." +" Она уехала на север и присоединилась к тамошней общине. Благодаря её " +"навыкам ловли свежее мясо всегда имелось на столах местных жителей." #: lang/json/snippet_from_json.py msgid "" @@ -197116,10 +192354,10 @@ msgid "" " in an explosion of stars and stripes. Beneath, it reads \"Don't worry, " "we'll watch your back.\"" msgstr "" -"Это реклама квадрокоптеров с функцией распознавания лиц. На ней изображен " -"строй так называемых 'робоглазов', летящих от американского флага на фоне " -"взрыва из звезд и полос. Под изображением написано «Не волнуйтесь, мы " -"прикроем вам спину.»" +"Реклама квадрокоптеров с функцией распознавания лиц. На ней изображен строй " +"так называемых 'робоглазов', летящих от американского флага на фоне взрыва " +"из звезд и полос. Под изображением написано «Не волнуйтесь, мы прикроем вам " +"спину.»" #: lang/json/snippet_from_json.py msgid "" @@ -197127,8 +192365,8 @@ msgid "" "shelters. Beneath the colorful photo it reads, \"Familiarize yourself with " "your nearest emergency shelter. It could save your life.\"" msgstr "" -"Это довольно потрепанная реклама 'новых' эвакуационных убежищ МЧС. Под яркой" -" фотографией написано: «Ознакомьтесь с вашим ближайшим эвакуационным " +"Довольно потрепанная реклама 'новых' эвакуационных убежищ МЧС. Под яркой " +"фотографией написано: «Ознакомьтесь с вашим ближайшим эвакуационным " "убежищем! Это может спасти вашу жизнь.»" #: lang/json/snippet_from_json.py @@ -197137,7 +192375,7 @@ msgid "" "of a shelter it reads, \"Contact your local FEMA office to arrange a tour of" " your nearest evacuation shelter. Be prepared!\"" msgstr "" -"Это реклама убежища МЧС. Под картинкой убежища написано: «Узнайте в местном " +"Реклама убежища МЧС. Под картинкой убежища написано: «Узнайте в местном " "отделении МЧС об экскурсии в ближайшем экстренном убежище. Будьте готовы!»" #: lang/json/snippet_from_json.py @@ -197157,9 +192395,9 @@ msgid "" "back edge and far too many tools included in the handle. \"Come down to the" " Knife Shack at Cumberton Mall! We've got it all.\"" msgstr "" -"Это реклама ножа для выживания с огромными зубцами на обратной стороне " -"лезвия и избытком инструментов в рукоятке. «Приходите в Дом Ножей в торговом" -" центре Кумбертон! У нас есть всё.»" +"Реклама ножа для выживания с огромными зубцами на обратной стороне лезвия и " +"избытком инструментов в рукоятке. «Приходите в Дом Ножей в торговом центре " +"Кумбертон! У нас есть всё.»" #: lang/json/snippet_from_json.py msgid "" @@ -197167,7 +192405,7 @@ msgid "" " mundane, but the text is not: \"Revelations services offered round the " "clock. The end times are here, make your peace.\"" msgstr "" -"Это рекламка местной церкви. Фотография выглядит вполне мирно, в отличии от " +"Рекламка местной церкви. Фотография выглядит вполне мирно, в отличии от " "текста: «Служим Апокалипсис круглые сутки. Конец времен настал, встретьте " "конец с миром.»" @@ -197177,7 +192415,7 @@ msgid "" "together at the last minute. \"Visit St Mary's on the River while it's not " "too late. Repent, while you still can!\"" msgstr "" -"Это рекламка местной церкви. Выглядит так, будто сделана на скорую руку. " +"Рекламка местной церкви. Выглядит так, будто сделана на скорую руку. " "«Приходите в церковь Святой Марии на Ривер стрит, пока не слишком поздно. " "Покайтесь, пока можете! »" @@ -197189,8 +192427,8 @@ msgid "" "brought this on us.\" There used to be tear-away phone numbers at the " "bottom, but they're all gone now." msgstr "" -"Это написанный от руки флаер, раскопированный для раздачи. На нем написано, " -"судя по всему маркером: «ОНИ НЕ ХОТЯТ, ЧТОБЫ ВЫ ЗНАЛИ. Все это ИХ вина. Они " +"Написанный от руки флаер, раскопированный для раздачи. На нем написано, судя" +" по всему маркером: «ОНИ НЕ ХОТЯТ, ЧТОБЫ ВЫ ЗНАЛИ. Все это ИХ вина. Они " "наблюдают за всем. Они вызвали это.» В нижней части были отрывные куски с " "номером телефона, но теперь их там уже нет." @@ -197249,11 +192487,11 @@ msgid "" "evacuation camps, along with some high-quality telephoto shots showing " "bodies being shoveled into huge pits by excavation machines." msgstr "" -"Это глянцевый, качественно напечатанный флаер. «Они не хотят, чтобы вы " -"знали! Прочтение может спасти вашу жизнь.» Внутри предупреждения и " -"рекомендации избегать убежищ и, особенно, эвакуационных лагерей МЧС, а также" -" четкие фотографии, снятые с большого расстояния, на которых изображены кучи" -" тел, сваливаемые в ямы экскаваторами." +"Глянцевый, качественно напечатанный флаер. «Они не хотят, чтобы вы знали! " +"Прочтение может спасти вашу жизнь.» Внутри предупреждения и рекомендации " +"избегать убежищ и, особенно, эвакуационных лагерей МЧС, а также четкие " +"фотографии, снятые с большого расстояния, на которых изображены кучи тел, " +"сваливаемые в ямы экскаваторами." #: lang/json/snippet_from_json.py msgid "" @@ -197262,10 +192500,10 @@ msgid "" "images of severed human body parts and organs. It is dated two days after " "the evacuation orders were sounded." msgstr "" -"Это флаер продуктового магазина. Снаружи выглядит как обычная реклама мясных" -" продуктов, но внутри все более и более отвратительные фотографии " -"разделанных на части чеовеческих тел и органов. Он датирован двумя днями до " -"первых объявлений об эвакуации." +"Флаер продуктового магазина. Снаружи выглядит как обычная реклама мясных " +"продуктов, но внутри все более и более отвратительные фотографии разделанных" +" на части чеовеческих тел и органов. Он датирован двумя днями до первых " +"объявлений об эвакуации." #: lang/json/snippet_from_json.py msgid "" @@ -197275,7 +192513,7 @@ msgid "" "store, the entrance flanked by a pair of smiling guards armed with assault " "rifles." msgstr "" -"Это скидочный купон, датированный тремя днями до начала эвакуации. «У нас в " +"Скидочный купон, датированный тремя днями до начала эвакуации. «У нас в " "Меригольд Маркет всё ещё есть консервы и бутилированная вода! Приходите и " "закупитесь!». На обложке фотография продуктового магазина, у входа стоят " "пара улыбающихся охранников, вооружённых штурмовыми винтовками." @@ -197286,8 +192524,8 @@ msgid "" "before the evacuation order. \"Sale on Universal Power Supplies and " "refurbished laptops at DigiMart, three days only!\"" msgstr "" -"Это реклама местного магазина электроники, датированная несколькими неделями" -" до начала эвакуации. «Распродажа универсальных источников питания и " +"Реклама местного магазина электроники, датированная несколькими неделями до " +"начала эвакуации. «Распродажа универсальных источников питания и " "восстановленных ноутбуков в Цифромаркете, всего три дня!»" #: lang/json/snippet_from_json.py @@ -197297,7 +192535,7 @@ msgid "" "legion of villainous looking characters. The caption reads: \"Protect " "yourself with the Rivtech caseless automagnum!\"" msgstr "" -"Это реклама пистолетов фирмы Ривтех. На картинке изображена пара в деловых " +"Реклама пистолетов фирмы Ривтех. На картинке изображена пара в деловых " "костюмах с соответствующими пистолетами перед толпой злодеев. Слоган гласит:" " «Защити себя с безгильзовыми пистолетами Ривтех!»" @@ -197308,10 +192546,9 @@ msgid "" " viewer. The caption reads: \"Rivtech caseless firearms proudly supports " "our Military.\"" msgstr "" -"Это реклама вооружения фирмы Ривтех. На картинке изображён улыбающийся " -"солдат с футуристически выглядящим ружьём на плече, приветствующий зрителя. " -"Слоган гласит: «Безгильзовое оружие Ривтех поддерживает наши вооружённые " -"силы!»" +"Реклама вооружения фирмы Ривтех. На картинке изображён улыбающийся солдат с " +"футуристически выглядящим ружьём на плече, приветствующий зрителя. Слоган " +"гласит: «Безгильзовое оружие Ривтех поддерживает наши вооружённые силы!»" #: lang/json/snippet_from_json.py msgid "" @@ -197321,9 +192558,9 @@ msgid "" "approaching wildlife. The caption reads: \"Rivtech caseless firearms. " "Superior stopping power.\"" msgstr "" -"Это реклама вооружения фирмы Ривтех. На картинке изображено трио хорошо " +"Реклама вооружения фирмы Ривтех. На картинке изображено трио хорошо " "вооружённых охотников. Каждый из них держит в руках футуристическое ружьё, " -"нацеленное на ужасных представителей дикой природы. Слоган гласит: " +"нацеленное на враждебных представителей дикой природы. Слоган гласит: " "«Безгильзовое оружие Ривтех. Превосходная останавливающая сила!»" #: lang/json/snippet_from_json.py @@ -197331,7 +192568,7 @@ msgid "" "This is an advertisement for a local funk-polka band, the \"Chilly " "Winters\". Apparently they were playing in the Wonky Donkey Pub." msgstr "" -"Это реклама местной фанк-полька группы «Холодные зимы». Судя по всему, они " +"Реклама местной фанк-полька группы «Холодные зимы». Судя по всему, они " "выступали в пабе Грязный Осел." #: lang/json/snippet_from_json.py @@ -197341,7 +192578,7 @@ msgid "" "continue well past the end of the world; most likely, the tour was cut " "short." msgstr "" -"Это флаер с туром узко известной группы в жанре драм-энд-басс/йодль под " +"Флаер с туром узко известной группы в жанре драм-энд-басс/йодль под " "названием 'Ol' Yellers', Даты выступлений продолжаются после конца всего; " "судя по всему, тур завершился преждевременно." @@ -197353,7 +192590,7 @@ msgid "" "of a Betty Crocker-esque housewife, slamming on a spike-encrusted electric " "guitar." msgstr "" -"Это реклама дет-металл группы «Роксана и душераздирающая тоска», известной " +"Реклама дет-металл группы «Роксана и душераздирающая тоска», известной " "смешением оглушительных гитарных запилов с радостными вставками в духе ду-" "вопа из пятидесятых. На картинке изображена зомби-домохозяйка в стиле Бетти " "Крокер, выжимающая всё соки из шипастой электрогитары." @@ -197364,7 +192601,7 @@ msgid "" "reads: \"This is it. Arm yourselves and protect your freedom. Come on down" " while supplies last.\"" msgstr "" -"Это реклама местного оружейного магазина. На ней большими красными буквами " +"Реклама местного оружейного магазина. На ней большими красными буквами " "написано: «Время пришло. Вооружайтесь и боритесь за свою свободу. Приходите," " пока полки не опустели.»" @@ -197376,10 +192613,10 @@ msgid "" " The caption reads: \"Rivtech 8x40mm caseless. Nothing else comes " "close.\"" msgstr "" -"Это реклама боеприпасов фирмы Ривтех. На картинке изображена стальная " -"пластина с аккуратной дырой по середине. Рядом с плитой красивая открытая " -"пачка безгильзовых патронов. Слоган гласит: «Безгильзовое оружие Ривтех. " -"Остальное даже не сравнится.»" +"Реклама боеприпасов фирмы Ривтех. На картинке изображена стальная пластина с" +" аккуратной дырой по середине. Рядом с плитой красивая открытая пачка " +"безгильзовых патронов. Слоган гласит: «Безгильзовое оружие Ривтех. Остальное" +" даже не сравнится.»" #: lang/json/snippet_from_json.py msgid "" @@ -197404,10 +192641,10 @@ msgid "" "isolate any loved ones showing concerning symptoms. Visit www.cdc.gov/cdda-" "advisory for more information.\"" msgstr "" -"Это общественное обращение от Центра контроля заболеваний. Сообщение, " +"Общественное обращение от Центра контроля заболеваний. Сообщение, " "повторённое на нескольких языках, гласит: «РЕКОМЕНДАЦИИ ПО КИПЯЧЕНИЮ ВОДЫ. " "Неизвестный реагент загрязнил грунтовые воды. Он очень заразен и может " -"вызывать необычное и агрессивное поведение. Кипятите всю воду, и изолируйте " +"вызывать необычное и агрессивное поведение. Кипятите всю воду и изолируйте " "близких с нетипичными синдромами. Посетите www.cdc.gov/cdda-advisory и " "узнайте больше.»" @@ -197421,8 +192658,8 @@ msgid "" "sneezing, wash your hands frequently, and receive an up-to-date flu shot if " "possible. Boiling water is recommended until further notice." msgstr "" -"Это публичное предупреждение Центра по Контролю Заболеваний. Переведённое на" -" несколько языков сообщение гласит: «УГРОЗА ОБЩЕСТВЕННОМУ ЗДОРОВЬЮ: Ввиду " +"Публичное предупреждение Центра по Контролю Заболеваний. Переведённое на " +"несколько языков сообщение гласит: «УГРОЗА ОБЩЕСТВЕННОМУ ЗДОРОВЬЮ: Ввиду " "последних событий ЦКЗ предупреждает избегать общественных мест. " "Подозревается, что неизвестный биологический загрязнитель влияет на здоровье" " граждан. ЦКЗ напоминает общественности прикрывать нос и рот платком при " @@ -197441,7 +192678,7 @@ msgid "" "authorized personnel evacuate you to a secured facility. Thank you for your" " compliance." msgstr "" -"Это публичное предупреждение от Министерства по Чрезвычайным Ситуациям. " +"Публичное предупреждение от Министерства по Чрезвычайным Ситуациям. " "Сообщение повторяется на нескольких языках и гласит: «ОСТАВАЙТЕСЬ В СВОИХ " "ДОМАХ! Всем жителям Области Бедствия Новой Англии рекомендуется оставаться в" " любом укрытии. Вооружённые Силы США устанавливают карантин. Если вы можете " @@ -197457,7 +192694,7 @@ msgid "" "scribbled off most of the town names, and scrawled \"OVERRUN\" next to each " "one, with the exception of the Tacoma evacuation point." msgstr "" -"Это публичное предупреждение от Министерства по Чрезвычайным Ситуациям. " +"Публичное предупреждение от Министерства по Чрезвычайным Ситуациям. " "Сообщение повторяется на нескольких языках и содержит список городов, " "превращённых в главные пункты эвакуации из Области Бедствия Новой Англии. " "Кто-то зачеркнул названия почти всех городов и подписал «ЗАХВАЧЕН» к " @@ -197472,12 +192709,12 @@ msgid "" "news-media is reporting. All official evacuation points are death-traps. " "Secure supplies and escape the cities while there is still time." msgstr "" -"Это публичное предупреждение от неизвестного источника. Плохо " +"Публичное предупреждение от неизвестного источника. Плохо " "отксерокопированное бессвязное сообщение на обеих сторонах листа гласит: «Не" " верьте лжи! Армия сгоняет людей в лагеря смерти, расстреливает и хоронит в " -"братских могилах. Они не остановят ничего. Не верьте тому, что говорят СМИ в" -" новостях. Все официальные пункты эвакуации — смертельные ловушки. " -"Запаситесь припасами и бегите из городов, пока ещё есть время»." +"братских могилах. Они не остановят ничего. Не верьте тому, что говорят в " +"новостях. Все официальные пункты эвакуации — смертельные ловушки. Запаситесь" +" припасами и бегите из городов, пока ещё есть время»." #: lang/json/snippet_from_json.py msgid "" @@ -197487,11 +192724,10 @@ msgid "" "IS JUST! YOU WILL BE DIVIDED FATHER AGAINST SON AND MOTHER AGAINST CHILD " "UNTO THE VERY LAST SINNER!" msgstr "" -"Это публичное сообщение от неизвестного источника. Отксерокопированный " +"Публичное сообщение от неизвестного источника. Отксерокопированный " "рукописный текст гласит: «ПОКАЙСЯ В СВОИХ ГРЕХАХ ВАВИЛОН КОГДА ВРЕМЯ ЕГО " "СУДА УЖЕ БЛИЗКО! ВЗГЛЯНИ НА СВОЮ СМЕРТЬ И ОСОЗНАЙ ЧТО ЭТО СПРАВЕДЛИВО! ОТЕЦ " -"ПОЙДЁТ ПРОТИВ СЫНА И МАТЬ ПРОТИВ РЕБЁНКА ВПЛОТЬ ДО САМОГО ПОСЛЕДНЕГО " -"ГРЕШНИКА!»" +"ПОЙДЁТ ПРОТИВ СЫНА И МАТЬ ПРОТИВ ДИТЯ ВПЛОТЬ ДО САМОГО ПОСЛЕДНЕГО ГРЕШНИКА!»" #: lang/json/snippet_from_json.py msgid "" @@ -197524,9 +192760,9 @@ msgid "" "ataxia, amnesia, mania, stroke, neurodegeneration, malignalitaloptereosis, " "necrotizing fasciitis, recurrent flu, and pinkeye." msgstr "" -"Это реклама энергетического напитка «АТОМНАЯ ЖАЖДА» от компании «Ривтек». " -"Хотя в ней рекламируют новый вкус под названием Изотоп RU-238 «Фруктовый», " -"большая часть текста посвящена длинному списку возможных побочных эффектов: " +"Реклама энергетического напитка «АТОМНАЯ ЖАЖДА» от компании «Ривтек». Хотя в" +" ней рекламируют новый вкус под названием Изотоп RU-238 «Фруктовый», большая" +" часть текста посвящена длинному списку возможных побочных эффектов: " "тревожность, бессонница, хроническая бессонница, головокружение, тремор, " "тошнота, головная боль, рвота, бред, галлюцинации, острый некроз скелетных " "мышц, внутренние ожоги, рак щитовидной железы, обширное внутреннее " @@ -197542,10 +192778,9 @@ msgid "" "poster reads, \"Cascade Cola, for those special moments\" in bold white " "letters." msgstr "" -"Это реклама содовой. На лицевой стороне изображение счастливой пары на " -"пляже, наблюдающей за заходом солнца. Между ними находятся бутылки " -"газировки. Плакат гласит жирными белыми буквами: «Каскад-кола, для тех самых" -" моментов»." +"Реклама содовой. На лицевой стороне изображение счастливой пары на пляже, " +"наблюдающей за заходом солнца. Между ними находятся бутылки газировки. " +"Плакат гласит жирными белыми буквами: «Каскад-кола, для тех самых моментов»." #: lang/json/snippet_from_json.py msgid "" @@ -197554,8 +192789,8 @@ msgid "" " happy children sitting in the back seat. The flier reads \"Burgers, fries," " and a Smile.\" Down in one corner is a company logo." msgstr "" -"Это флаер местной сети пиццерий. На нём изображён мужчина, делающий заказ, а" -" также симпатичная женщина в ярко-зелёной рубашке и пара счастливых детишек " +"Флаер местной сети пиццерий. На нём изображён мужчина, делающий заказ, а " +"также симпатичная женщина в ярко-зелёной рубашке и пара счастливых детишек " "на заднем сидении. Текст на флаере: «Бургеры, картошка фри и Улыбка». Снизу " "в углу — логотип компании." @@ -197564,8 +192799,8 @@ msgid "" "This is an advertisement for soda. It shows a dark brown can of soda on a " "black background. The label reads \"Spin\"." msgstr "" -"Это реклама газировки. Она показывает тёмно-коричневую банку газировки на " -"чёрном фоне. На этикетке написано «Spin»." +"Реклама газировки. Она показывает тёмно-коричневую банку газировки на чёрном" +" фоне. На этикетке написано «Spin»." #: lang/json/snippet_from_json.py msgid "" @@ -197573,8 +192808,8 @@ msgid "" "Italian holding a pizza, with the words \"It's a goooood pizza\" written " "above his head." msgstr "" -"Это флаер местной сети пиццерий. На нём изображён мультяшный итальянец с " -"пиццей в руках, над его головой надпись «Это хорооооошая пицца»." +"Флаер местной сети пиццерий. На нём изображён мультяшный итальянец с пиццей " +"в руках, над его головой надпись «Это хорооооошая пицца»." #: lang/json/snippet_from_json.py msgid "" @@ -197582,9 +192817,9 @@ msgid "" "shot eye with a rather long block of information beneath it making some " "fairly exaggerated claims about the product." msgstr "" -"Это постер, рекламирующий контактные линзы. На картинке изображён " -"покрасневший глаз, а ниже расположен длинный кусок текста с преувеличенными " -"достоинствами продукта." +"Постер, рекламирующий контактные линзы. На картинке изображён покрасневший " +"глаз, а ниже расположен длинный кусок текста с преувеличенными достоинствами" +" продукта." #: lang/json/snippet_from_json.py msgid "" @@ -197592,9 +192827,9 @@ msgid "" "colors and patterns, but no definite message other than \"104.4 all the " "best, all the time!\" in big yellow letters." msgstr "" -"Это рекламный флаер местной радиостанции. На нём множество ярких цветов и " -"узоров с единственной различимой надписью большими жёлтыми буквами: «104.4 " -"только лучшее, на все времена!»" +"Рекламный флаер местной радиостанции. На нём множество ярких цветов и узоров" +" с единственной различимой надписью большими жёлтыми буквами: «104.4 только " +"лучшее, на все времена!»" #: lang/json/snippet_from_json.py msgid "" @@ -197603,7 +192838,7 @@ msgid "" "claymore walking towards the viewer. At his side is his trusty cyberdog " "companion and in the background is an explosion." msgstr "" -"Это большой постер фильма «Миссия Пакстоун 6: Месть Людей-собак». На нём " +"Большой постер фильма «Миссия Пакстоун 6: Месть Людей-собак». На нём " "изображён человек в кожаной куртке с револьвером и двуручным мечом, идущий " "по направлению к зрителю. Сбоку от него виден его верный киберпёс, а на " "заднем плане — взрыв." @@ -197615,10 +192850,10 @@ msgid "" "\"Improving the world, one tank at a time.\" is written across the top in " "small letters." msgstr "" -"Это постер, рекламирующий машину с солнечными панелями. Машина едет по " -"сельской местности с пышной растительностью, и вслед ей глядят маленькие " -"животные. Слоган «Улучшаем мир, по одному бензобаку за раз» мелкими буквами " -"написан поверх картинки." +"Постер, рекламирующий машину с солнечными панелями. Машина едет по сельской " +"местности с пышной растительностью, и вслед ей глядят маленькие животные. " +"Слоган «Улучшаем мир, по одному бензобаку за раз» мелкими буквами написан " +"над картинкой." #: lang/json/snippet_from_json.py msgid "" @@ -197628,11 +192863,11 @@ msgid "" "letters. Someone has colored in the sun with a black marker. The words " "\"oh Discordia\" are scrawled across the top." msgstr "" -"Это реклама содовой. На лицевой стороне изображена счастливая пара на пляже," -" наблюдающая за заходом солнца. Между ними лежат бутылки с газировкой. На " +"Реклама содовой. На лицевой стороне изображена счастливая пара на пляже, " +"наблюдающая за заходом солнца. Между ними лежат бутылки с газировкой. На " "плакате большими белыми буквами написано: «Каскад-кола, для тех самых " -"моментов». Кто-то закрасил солнце чёрным маркером и дописал сверху: «oh " -"Discordia»." +"моментов». Кто-то закрасил солнце чёрным маркером и дописал сверху: «о " +"Дискордия»." #: lang/json/snippet_from_json.py msgid "" @@ -197643,8 +192878,8 @@ msgid "" "this one with a permanent marker. It is now covered in rude images and " "racial epithets." msgstr "" -"Это флаер местной сети пиццерий. На нём изображён мужчина, делающий заказ, а" -" также симпатичная женщина в ярко-зелёной рубашке и пара счастливых детишек " +"Флаер местной сети пиццерий. На нём изображён мужчина, делающий заказ, а " +"также симпатичная женщина в ярко-зелёной рубашке и пара счастливых детишек " "на заднем сидении. Текст на флаере: «Бургеры, картошка фри и Улыбка». Снизу " "в углу — логотип компании. Кто-то дорвался до перманентного маркера, так что" " теперь флаер покрыт неприличными изображениями и расистскими " @@ -197657,10 +192892,9 @@ msgid "" "above his head. Someone has drawn an exaggerated mustache on the cartoon " "Italian, along with a pair of crude, oversized breasts." msgstr "" -"Это флаер местной сети пиццерий. На нём изображён мультяшный итальянец с " -"пиццей в руках, над его головой надпись «Это хорооооошая пицца». Кто-то " -"добавил огромные усы и такую же огромную грубо нарисованную грудь этому " -"итальянцу." +"Флаер местной сети пиццерий. На нём изображён мультяшный итальянец с пиццей " +"в руках, над его головой надпись «Это хорооооошая пицца». Кто-то добавил " +"огромные усы и такую же огромную грубо нарисованную грудь этому итальянцу." #: lang/json/snippet_from_json.py msgid "" @@ -197669,10 +192903,10 @@ msgid "" " off, and written in jagged letters across the top in red crayon are the " "words \"ALL HAIL THE CRIMSON KING!\"." msgstr "" -"Это постер, рекламирующий контактные линзы. На картинке изображён " -"покрасневший глаз, а ниже расположен длинный кусок текста с преувеличенными " -"достоинствами продукта. Информативная часть оторвана, и красным карандашом " -"кривыми буквами написано: «ДА ЗДРАВСТВУЕТ КРОВАВЫЙ КОРОЛЬ!»" +"Постер, рекламирующий контактные линзы. На картинке изображён покрасневший " +"глаз, а ниже расположен длинный кусок текста с преувеличенными достоинствами" +" продукта. Информативная часть оторвана, и красным карандашом кривыми " +"буквами написано: «ДА ЗДРАВСТВУЕТ КРОВАВЫЙ КОРОЛЬ!»" #: lang/json/snippet_from_json.py msgid "" @@ -197682,11 +192916,11 @@ msgid "" "Someone used a blue pen to write \"who gives a shit\" across the slogan and " "put X's over the eyes of all the animals." msgstr "" -"Это постер, рекламирующий машину с солнечными панелями. Машина едет по " -"сельской местности с пышной растительностью, и вслед ей глядят маленькие " -"животные. Слоган «Улучшаем мир, по одному бензобаку за раз» написан поверх " -"картинки. Кто-то синей ручкой написал «да всем насрать» поверх слогана и " -"нарисовал крестики вместо глаз животных." +"Постер, рекламирующий машину с солнечными панелями. Машина едет по сельской " +"местности с пышной растительностью, и вслед ей глядят маленькие животные. " +"Слоган «Улучшаем мир, по одному бензобаку за раз» написан поверх картинки. " +"Кто-то синей ручкой написал «да всем насрать» поверх слогана и нарисовал " +"крестики вместо глаз животных." #: lang/json/snippet_from_json.py msgid "" @@ -197696,11 +192930,11 @@ msgid "" " Join the VAULT program today.\" which is written in the middle. However, " "there seems to be no information about *how* one might do so." msgstr "" -"Это постер, рекламирующий подземный бункер. На нём изображено, как ядерная " -"бомба сносит город с лица земли, в то время как семья кучкуется в " -"безопасности под землёй. В середине написан слоган: «Беспокоитесь насчёт " -"вражеской атаки? Хотите защитить свою семью? Присоединяйтесь к программе " -"УБЕЖИЩЕ». Впрочем, нет никакой информации о том, *как* же это сделать." +"Постер, рекламирующий подземный бункер. На нём изображено, как ядерная бомба" +" сносит город с лица земли, в то время как семья кучкуется в безопасности " +"под землёй. В середине написан слоган: «Беспокоитесь насчёт вражеской атаки?" +" Хотите защитить свою семью? Присоединяйтесь к программе УБЕЖИЩЕ». Впрочем, " +"нет никакой информации о том, *как* же это сделать." #: lang/json/snippet_from_json.py msgid "" @@ -197710,10 +192944,10 @@ msgid "" " The caption reads \"When you chose Red Ryder, you invested in the American" " Dream. You invested in our Independence.\"" msgstr "" -"Это рекламная листовка пневматики Ред Райдер. На ней довольный ребёнок с " -"собакой на поводке и деревянной винтовкой через плечо тянет блестящую " -"красную тележку с приготовленным фазаном на ней. Надпись гласит: «Выбрав Ред" -" Райдер, вы сделали вклад в американскую мечту. Вы сделали вклад в нашу " +"Рекламная листовка пневматики Ред Райдер. На ней довольный ребёнок с собакой" +" на поводке и деревянной винтовкой через плечо тянет блестящую красную " +"тележку с приготовленным фазаном на ней. Надпись гласит: «Выбрав Ред Райдер," +" вы сделали вклад в американскую мечту. Вы сделали вклад в нашу " "независимость»." #: lang/json/snippet_from_json.py @@ -197725,12 +192959,12 @@ msgid "" " out of the advert. The caption reads \"Witness the rebirth of New Noir " "with 'Jersey Shore Blues'. Starring Jenifer Languiz as 'Snookie'!\"" msgstr "" -"Это старая листовка кинофильма 30-х годов. Загорелый человек с гладкими " -"чёрными волосами и выпирающими через беловатый костюм мышцами прижимает " -"одной рукой женщину к своему бедру. Женщина одета в чёрное кожаное платье. " -"Она держит в одной руке пистолет и смотрит прямо на зрителя. Надпись гласит:" -" «Станьте свидетелем возрождения нуара в фильме „Блюз Побережья Джерси“. В " -"ролях: Дженифер Лангуиз в роли Снуки!»" +"Старая листовка кинофильма 30-х годов. Загорелый человек с гладкими чёрными " +"волосами и выпирающими через беловатый костюм мышцами прижимает одной рукой " +"женщину к своему бедру. Женщина одета в чёрное кожаное платье. Она держит в " +"одной руке пистолет и смотрит прямо на зрителя. Надпись гласит: «Станьте " +"свидетелем возрождения нуара в фильме „Блюз Побережья Джерси“. В ролях: " +"Дженифер Лангуиз в роли Снуки!»" #: lang/json/snippet_from_json.py msgid "" @@ -197738,7 +192972,7 @@ msgid "" " of freedom fries and a BIG Gulp size pop.\"" msgstr "" "«„Обед Джо“; 1/2 фунта мяса, 3 куска начинки на ваш выбор, и к этому ещё " -"бесплатно картошка фри и стакан попкорна БОЛЬШОГО размера.»" +"бесплатно картошка фри и стакан газировки БОЛЬШОГО размера.»" #: lang/json/snippet_from_json.py msgid "" @@ -197747,9 +192981,9 @@ msgid "" "depictions of their products and plainly stated prices. The foodburger " "looks particularly nice." msgstr "" -"Это реклама сети фастфудов Сядь-и-поешь. На ничем не украшенном сине-" -"пурпурном фоне напечатаны фотографии их продукции и указаны цены. Бургер " -"выглядит особенно привлекательно." +"Реклама сети фастфудов Сядь-и-поешь. На ничем не украшенном сине-пурпурном " +"фоне напечатаны фотографии их продукции и указаны цены. Бургер выглядит " +"особенно привлекательно." #: lang/json/snippet_from_json.py msgid "" @@ -197757,9 +192991,9 @@ msgid "" "attention \"/!\\Always place your tools into an autoclave pouch before " "autoclaving./!\\\"" msgstr "" -"Листок с указаниями по процедуре автоклавирования. Вы замечаете одну фразу " -"«/!\\ Перед автоклавированием обязательно поместите инструменты в сумку для " -"автоклавирования /!\\»" +"Листок с указаниями по процедуре использоваия автоклава. Вы замечаете одну " +"фразу «/!\\ Перед активацией автоклава обязательно поместите инструменты в " +"специализированную упаковку/!\\»" #: lang/json/snippet_from_json.py msgid "" @@ -197783,9 +193017,9 @@ msgid "" "inexhaustible might of betavoltaics, our new atomic lamp will glow as long " "as you need. Let there be light!\"" msgstr "" -"В этой рекламе написано «НЕ ОСТАВАЙТЕСЬ ВО ТЬМЕ! Наши новые атомные лампы, " -"питаемые неистощимой мощью бета распада, будут светить столько, сколько вам " -"нужно. Да будет свет!»" +"«НЕ ОСТАВАЙТЕСЬ ВО ТЬМЕ! Наши новые атомные лампы, питаемые неистощимой " +"мощью бета распада, будут светить столько, сколько вам нужно. Да будет " +"свет!»" #: lang/json/snippet_from_json.py msgid "" @@ -197794,9 +193028,9 @@ msgid "" "for milk to boil? Have your coffee ready instantly with THE POWER OF THE " "ATOM!\"" msgstr "" -"В рекламе написано: «В будущем… Всё работает на КОФЕ! Ривтех представляет " -"Вам величайшую революцию со времён эспрессо — новая Кюри-Джи. Зачем ждать, " -"пока молоко закипит? Ваш кофе моментально готов с СИЛОЙ АТОМА!»" +"«В будущем… Всё работает на КОФЕ! Каппатех представляет Вам величайшую " +"революцию со времён эспрессо — новая Кюри-Джи. Зачем ждать, пока молоко " +"закипит? Ваш кофе моментально готов с СИЛОЙ АТОМА!»" #: lang/json/snippet_from_json.py msgid "" @@ -197804,9 +193038,9 @@ msgid "" " driving fix from THE SUN! Solar powered electric cars by Edison: Silent, " "Cheap, Powerful.\"" msgstr "" -"Устали от ЦЕН НА БЕНЗИН? Далеко до остановки? Решите проблемы с вождением с " -"помощью СОЛНЦА! Электромобили на солнечных батареях от Edison: бесшумно, " -"дёшево, мощно." +"«Устали от ЦЕН НА БЕНЗИН? Далеко до остановки? Решите проблемы с вождением с" +" помощью СОЛНЦА! Электромобили на солнечных батареях от Эдисон Моторс: " +"бесшумно, дёшево, мощно.»" #: lang/json/snippet_from_json.py msgid "" @@ -197815,9 +193049,9 @@ msgid "" "Cuppatech gives you inexhaustible ATOMIC power! To make boiling hot coffee " "the MINUTE you want it! The Curie-G Atomic One-Cup Coffeemaker.\"" msgstr "" -"Кофе будущего… ЗДЕСЬ И СЕЙЧАС! Ни у кого нет времени варить отличный кофе, " +"«Кофе будущего… ЗДЕСЬ И СЕЙЧАС! Ни у кого нет времени варить отличный кофе, " "но теперь и не нужно! Каппатех предлагает неистощимую АТОМНУЮ энергию! " -"Кипящий кофе СРАЗУ ЖЕ, едва вы его захотите! Атомная кофемашина Кюри-Джи." +"Кипящий кофе СРАЗУ ЖЕ, едва вы его захотите! Атомная кофемашина Кюри-Джи.»" #: lang/json/snippet_from_json.py msgid "" @@ -197825,10 +193059,10 @@ msgid "" "for months or longer, and when you've eaten it, you can refill and seal the " "jar! Stock your emergency supply TODAY!" msgstr "" -"МАРИНОВАННЫЕ ОВОЩИ В БАНКЕ! Точно так, как делала ваша бабушка! Они будут " +"«МАРИНОВАННЫЕ ОВОЩИ В БАНКЕ! Точно так, как делала ваша бабушка! Они будут " "храниться месяцами или даже дольше, а когда вы съедите их, то можете снова " "наполнить банку и закрыть её! Запаситесь набором для чрезвычайных ситуаций " -"СЕГОДНЯ!" +"СЕГОДНЯ!»" #: lang/json/snippet_from_json.py msgid "" @@ -197836,9 +193070,9 @@ msgid "" "what-would-we-use… to PUT a lot of things in!? (Ad by the \"Play " "SchoolClothing Co.\")" msgstr "" -"МЕШКИ, МЕШКИ, МЕШКИ! Они очень полезные штуки! Если бы у нас не было МЕШКОВ," +"«СУМКИ, СУМКИ, СУМКИ! Они очень полезные штуки! Если бы у нас не было СУМОК," " чем бы мы пользовались… куда бы СКЛАДЫВАЛИ кучу вещей?! (Реклама от «Play " -"SchoolClothing Co.»)" +"SchoolClothing Co.»)»" #: lang/json/snippet_from_json.py msgid "" @@ -197846,9 +193080,9 @@ msgid "" " the elite are eating, wearing or discussing, Glamopolitan is YOUR magazine!" " So pick up a copy today and \"Sizzle Like A Star\"!" msgstr "" -"ГЛАМУРИТАН! В нём есть ВСЕ последние секретики. Если ты хочешь знать больше " -"о светских раутах, моде и сплетнях, то «Гламуритан» — ТВОЙ журнал. Покупай и" -" «Сияй как звёздочка»!" +"ГЛАМОПОЛИТЕН! В нём есть ВСЕ последние секретики. Если ты хочешь знать " +"больше о светских раутах, моде и сплетнях, то «Гламополитен» — ТВОЙ журнал. " +"Покупай и «Сияй как звёздочка»!" #: lang/json/snippet_from_json.py msgid "" @@ -197889,9 +193123,9 @@ msgid "" "about wildlife!… And how to kill it. Classic BEAR TRAP returns in this " "issue!" msgstr "" -"… Что вы знаете о выживании в природе? Если вы не можете сделать силок, то " -"вы ничего не знаете о ЛОВУШКАХ! Ищите копию «ЖИЗНИ ТРАППЕРА» и узнаете о " -"дикой природе!.. И о том, как её убивать. В этом выпуске возвращается " +"…Что вы знаете о выживании в природе? Если вы не можете сделать силок, то вы" +" ничего не знаете о ЛОВУШКАХ! Ищите копию «ЖИЗНИ ТРАППЕРА» и узнаете о дикой" +" природе!.. И о том, как её убивать. В этом выпуске возвращается " "классический КАПКАН НА МЕДВЕДЯ!" #: lang/json/snippet_from_json.py @@ -197961,7 +193195,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid " is the biggest slut in , and I'm damn proud of it!" -msgstr " самая большая шлюха в , отвечаю!" +msgstr " самая большая шлюха в , и я этим горжусь!" #: lang/json/snippet_from_json.py msgid "There is a beautifully drawn graffiti tag on the wall here." @@ -197969,7 +193203,7 @@ msgstr "На стене красивое граффити." #: lang/json/snippet_from_json.py msgid " is a heteronormative bully!" -msgstr " — чёртов насильник!" +msgstr " — гетеронормативный насильник!" #: lang/json/snippet_from_json.py msgid " + " @@ -197989,7 +193223,7 @@ msgstr "МАМА" #: lang/json/snippet_from_json.py msgid "FUCK YOU" -msgstr "ОТЪЕБИСЬ" +msgstr "ПНХ" #: lang/json/snippet_from_json.py msgid "This is a cartoon rendition of a zombie." @@ -198005,7 +193239,7 @@ msgid "" "\n" "Do you want to talk about it? You know where to find me. Love you sweety." msgstr "" -"У меня с твоей мамашей прочная взаимная любовь, и тебе придется с этим смириться.\n" +"У меня с твоей матерью прочная взаимная любовь, и тебе придется с этим смириться.\n" "\n" "Хочешь поговорить об этом? Ты знаешь, где меня найти. Люблю тебя, милашка." @@ -198023,7 +193257,7 @@ msgstr " ебал ." #: lang/json/snippet_from_json.py msgid "This is a spraypainted drawing of an angel with wings made of vines." -msgstr "Это нарисованный баллончиком рисунок ангела с крыльями из лозы." +msgstr "Нарисованный баллончиком рисунок ангела с крыльями из лозы." #: lang/json/snippet_from_json.py msgid "Mr. is a vampire!" @@ -198031,11 +193265,11 @@ msgstr "Мистер — вампир!" #: lang/json/snippet_from_json.py msgid "Their hiding the truth" -msgstr "Они скрывают правду" +msgstr "ани скрывают правду" #: lang/json/snippet_from_json.py msgid "FOLLOW THE CHEMTRAILS" -msgstr "СЛЕДУЙ ЗА ХИМИОТРАССОЙ" +msgstr "СЛЕДУЙ ЗА СЛЕДАМИ САМОЛЕТОВ" #: lang/json/snippet_from_json.py msgid "" @@ -198059,7 +193293,7 @@ msgstr "не пей воду" msgid "" "And they walked upon His Earth, and there was a RECKONING, and only the " "worthy survived" -msgstr "И они шли по Земле Его, и было ЧИСТИЛИЩЕ, и выжили только достойные" +msgstr "И они шли по Земле Его, и было ВОЗДАЯНИЕ, и выжили только достойные" #: lang/json/snippet_from_json.py msgid "This is a drawing of a zombie with a bullethole in its head." @@ -198071,14 +193305,14 @@ msgstr "Удивительно художественно нарисованны #: lang/json/snippet_from_json.py msgid "This is a simple spraypainted graphic of a forest made of bones." -msgstr "Это простой нарисованный баллончиком лес из костей." +msgstr "Простой нарисованный баллончиком лес из костей." #: lang/json/snippet_from_json.py msgid "" "This is a spraypainted mural of a giant mushroom with people praying at its " "base." msgstr "" -"Это нарисованный баллончиком гигантский гриб с поклоняющимися людьми у его " +"Нарисованный баллончиком гигантский гриб с поклоняющимися людьми у его " "основания." #: lang/json/snippet_from_json.py @@ -198111,7 +193345,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "BIGGEST WASTE OF TAX MONEY FUCK YOU GOVERMINT" -msgstr "БЛЯДСКОЕ ПРАВИТЕЛЬСТВО ТУПО РАЗБАЗАРИЛО НАЛОГИ" +msgstr "БЛЯДСКОЕ ПРОВИТИЛЬСТВО ТУПО РАЗБАЗАРИЛО НАЛОГИ" #: lang/json/snippet_from_json.py msgid "Dont eat the proten bars" @@ -198126,8 +193360,8 @@ msgid "" "This is a simple drawing of a skinny figure wearing an emergency evac jacket" " and a gas mask. Scrawled beneath, it says \"thanks for the outfit\"." msgstr "" -"Это простой рисунок худой фигуры в спасательном жилете и противогазе. " -"Подпись, написанная внизу, гласит: «Спасибо за снаряжение»." +"Простой рисунок худой фигуры в спасательном жилете и противогазе. Подпись, " +"написанная внизу, гласит: «Спасибо за снаряжение»." #: lang/json/snippet_from_json.py msgid "Abandon hope, all ye who enter here." @@ -198135,11 +193369,11 @@ msgstr "Оставь надежду, всяк сюда входящий." #: lang/json/snippet_from_json.py msgid "NO ONE IS COMING FOR US" -msgstr "НАМ НИКТО НЕ ПОМОЖЕТ" +msgstr "ЗА НАМИ НИКТО НЕ ПРИЕДЕТ" #: lang/json/snippet_from_json.py msgid "THERE'S NO RESCUE BUS" -msgstr "ЗА НАМИ НИКТО НЕ ПРИЕДЕТ" +msgstr "АВТОБУС НЕ ПРИЕДЕТ" #: lang/json/snippet_from_json.py msgid "THEY LET US DOWN" @@ -198170,8 +193404,8 @@ msgid "" "This is a far-too-detailed drawing of an enormous mind-bending monster, the " "sort that attacked during the Cataclysm." msgstr "" -"Это пугающе детальный рисунок огромного умопомрачительного монстра вроде " -"тех, что нападали во время Катаклизма." +"Пугающе детальный рисунок огромного умопомрачительного монстра вроде тех, " +"что нападали во время Катаклизма." #: lang/json/snippet_from_json.py msgid "" @@ -198242,8 +193476,8 @@ msgid "" "This is a drawing of a cartoon character smashing a zombie corpse with a " "sledgehammer. Beneath it is a scrawled message: \"Gotta pulp em all\"" msgstr "" -"Это рисунок мультипликационного персонажа, разбивающего труп зомби кувалдой." -" Под ним нацарапана надпись: «Размажем их»" +"Рисунок мультипликационного персонажа, разбивающего труп зомби кувалдой. Под" +" ним нацарапана надпись: «Размажем их»" #: lang/json/snippet_from_json.py msgid "They get back up. Headshots don't work." @@ -198311,7 +193545,7 @@ msgstr "Прости, что подвели" #: lang/json/snippet_from_json.py msgid "Sorry I failed you" -msgstr "Промти, что подвел" +msgstr "Прости, что подвел" #: lang/json/snippet_from_json.py msgid "" @@ -198351,7 +193585,7 @@ msgstr "" " Кому: всему персоналу SRCF\n" " От: Константин Дворак, зам.Секретаря по Ядерной Безопасности\n" " \n" -" Хочу напомнить всему персоналу: Не открывайте и не осматривайте контейнеры выше вашего уровня допуска. Если у вас имеются вопросы касательно протоколов безопасности или процедур доставки, обращайтесь к вашему начальнику или к местному военному офицеру. В случае сомнений считайте все контейнеры высокотоксичными и представляющими биологическую опасность класса А. Принимайте все необходимые меры предосторожности!" +" Хочу напомнить всему персоналу: Не открывайте и не осматривайте контейнеры выше вашего уровня допуска. Если у вас имеются вопросы касательно протоколов безопасности или процедур доставки, обращайтесь к вашему начальнику или к приставленному военному офицеру. В случае сомнений считайте все контейнеры высокотоксичными и представляющими биологическую опасность класса А. Принимайте все необходимые меры предосторожности!" #: lang/json/snippet_from_json.py msgid "" @@ -198365,7 +193599,7 @@ msgstr "" "\n" " Тема: Напоминание о Безопасности\n" " Кому: всему персоналу SRCF\n" -" От: Константин Дворак, зам.Секретаря по Ядерной Безопасности\n" +" От: Константин Дворак, зам. Секретаря по Ядерной Безопасности\n" " \n" " С сегодняшнего дня медицинские отходы не должны содержаться рядом с радиоактивными материалами. Все контейнеры нужно переставить согласно новым инструкциям. Если ваша лаборатория располагает такими контейнерами, вам запрещено работать без вооружённой охраны. Незамедлительно докладывайте вашему начальнику обо всех необычных событиях." @@ -198397,9 +193631,9 @@ msgstr "" "\n" " Тема: Напоминание о Безопасности\n" " Кому: всему персоналу SRCF\n" -" От: Константин Дворак, зам.Секретаря по Ядерной Безопасности\n" +" От: Константин Дворак, зам. Секретаря по Ядерной Безопасности\n" " \n" -" Все опасные лаборатории остаются в опечатанном состоянии до иного приказа. Каждый, кто видел или вступал в контакт с существами, обязан обратиться в свой отдел для прохождения полного медицинского обследования и допроса." +" Все скомпрометированные лаборатории остаются в опечатанном состоянии до отдельного уведомления. Каждый, кто видел или вступал в контакт с существами, обязан обратиться в свой отдел для прохождения полного медицинского обследования и допроса." #: lang/json/snippet_from_json.py msgid "" @@ -198439,7 +193673,7 @@ msgstr "" " 16194\n" " Голден Драйв, Колорадо 80403\n" " \n" -" Эти образцы должны быть достоверными и любая попытка скрыть нарушения в результате будет расцениваться как коррупция и потенциальная измена.\n" +" Эти образцы должны быть достоверными, и любая попытка скрыть нарушения будет расцениваться как федеральное преступление и потенциальная измена.\n" "\n" "Директор ЕРА,\n" " Роберт Шэйн" @@ -198460,7 +193694,7 @@ msgid "" msgstr "" " Тема: SRCF: Служебная записка, ERA[2918024]\n" " Кому: Всему управляющему персоналу SRCF\n" -" От: Константин Дворак, замминистра по ядерной безопасности\n" +" От: Константин Дворак, зам. Секретаря по ядерной безопасности\n" " \n" " Директор Граймс опубликовал новую серию обвинений, которые в скором времени будут расследованы комитетом конгресса. Ниже приводится сообщение, которое он послал лично мне. \n" " --------------------------------------------------------------\n" @@ -198481,7 +193715,7 @@ msgid "" msgstr "" "Несмотря на то, что наших агентов не пустили внутрь, наши пробы воздуха в ближайших городах выявили высокий уровень токсинов и радиации. Также мы обнаружили десятки потенциально опасных неопознанных веществ в грунтовых водах. Теперь у нас есть неопровержимые доказательства, что SRCF угрожает общественной безопасности. Мы передаём эти данные представителям государства и будем ходатайствовать о полном расследовании в конгрессе. Они сумеют заставить вас открыть свои секретные хранилища, и мир увидит, что вы скрываете.\n" "\n" -"Надеюсь вы сгниёте в аду, если причастны к этому.\n" +"Если вы причастны к этому, надеюсь, вы сгниёте в аду.\n" "\n" "Директор EPA\n" " Роберт Шэйн" @@ -198501,7 +193735,7 @@ msgstr "" " Кому: Всему персоналу SRCF\n" " От: Эллен Граймс, директор CDC\n" "\n" -" Как оказалось, ваш участок наряду со многими другими подвергся загрязнению тем, что мы теперь именуем [ИЗМЕНЕНО]. Жизненно важно, чтобы вы оставались на связи и ожидали приказов. В настоящее время мы ждём, когда Президент разработает наш план действий в национальном кризисе. Вы возобновите предохранительные процедуры и заминируете саркофаг С-4, как указано в Сообщении 4423. Мы пошлём Вам приказ, чтобы или взорвать и запечатать саркофаг, или удалить заряды. Самое важное, чтобы саркофаг был запечатан немедленно по получении приказа. Служба Национальной Безопасности сообщила нам о наличии потенциальных террористов, которых подозревают в связях с недавним национальным кризисом.\n" +" Как оказалось, ваш участок наряду со многими другими подвергся загрязнению тем, что мы теперь именуем [ИЗМЕНЕНО]. Жизненно важно, чтобы вы оставались на связи и ожидали приказов. В настоящее время мы ждём, когда Президент разработает наш план действий в национальном кризисе. Вы возобновите предохранительные процедуры и заминируете саркофаг с С-4, как указано в Сообщении 4423. Мы пошлём Вам приказ, чтобы или взорвать и запечатать саркофаг, или удалить заряды. Самое важное, чтобы саркофаг был запечатан немедленно по получении приказа. Служба Национальной Безопасности сообщила нам о наличии потенциальных террористов, которых подозревают в причастности к недавнему национальному кризису.\n" "\n" "Директор CDC,\n" " Эллен Граймс" @@ -198657,8 +193891,7 @@ msgid "" "You struggle to awareness. Being awake seems somewhat harder to reach " "today." msgstr "" -"Вы с трудом пробуждаетесь. Похоже, бодрствование сегодня будет даваться вам " -"труднее." +"Вы с трудом пробуждаетесь. Похоже, пробуждение сегодня дается вам труднее." #: lang/json/snippet_from_json.py msgid "" @@ -198757,15 +193990,15 @@ msgstr "Вы ИСТОЩЕНЫ!" #: lang/json/snippet_from_json.py msgid "You feel weak due to malnutrition." -msgstr "Вы ослабеваете из-за недоедания." +msgstr "Вы испытываете слабость из-за недоедания." #: lang/json/snippet_from_json.py msgid "" "Despite having something in your stomach, you still feel like you haven't " "eaten in days…" msgstr "" -"Несмотря на то, что у вас что-то есть в желудке, вы все равно чувствуете, " -"что не ели несколько дней…" +"Несмотря на то, что у вас что-то есть в желудке, вы все равно чувствуете " +"себя так, будто не ели несколько дней…" #: lang/json/snippet_from_json.py msgid "" @@ -198790,8 +194023,8 @@ msgstr "" "Мы хотим напомнить сотрудникам, что система рельсового сообщения " "предназначена для доставки грузов между лабораториями, а вовсе не для личных" " целей, и неважно, насколько вы соскучились по близким. Приёмщики говорят, " -"что на складах полный бардак из-за легкомысленных посылок. Разве люди не в " -"курсе про служебные романы?" +"что на складах полный бардак из-за легкомысленных посылок. Разве нельзя быть" +" поумнее со служебными романами?" #: lang/json/snippet_from_json.py msgid "" @@ -198799,9 +194032,9 @@ msgid "" "surface entrance is quite secure, there are several possible points of entry" " below the surface." msgstr "" -"Наш отдел безопасности обнаружил несколько ключевых уязвимостей. Наш выход " -"на поверхность вполне безопасен, но существуют возможные точки проникновения" -" под поверхностью." +"Наш отдел безопасности обнаружил несколько ключевых уязвимостей. Точка " +"выхода на поверхность неплохо защищена, но существуют возможные точки " +"проникновения под поверхностью." #: lang/json/snippet_from_json.py msgid "" @@ -198813,7 +194046,7 @@ msgid "" " of us. We'll get Melchior to assist with AI threat recognition, which will" " make everyone a little more comfortable I think." msgstr "" -"Службы безопасности едва справляются с поддержанием своих обязанностей ввиду" +"Служба безопасности едва справляется с поддержанием своих обязанностей ввиду" " резкого скачка несчастных случаев. Для повышения безопасности было решено " "воспользоваться несколькими устаревшими турелями на дистанционном " "управлении. Мало кому нравится работать с пушкой у затылка, которой " @@ -198833,8 +194066,8 @@ msgstr "" "У команды Эрреры остались копии исходников, которые нас просил просмотреть " "генерал Карлсберг. Несколько наших лабораторий не выходят на связь, другие " "команды фактически 'пошли ко дну вместе с кораблями', и ребята сделали что " -"могли, чтобы приспособить код работать без контроля Мельхиором. Оно уже " -"несёт несколько поправок и по большей части просто стреляет в любой " +"могли, чтобы приспособить код работать без контроля Мельхиором. Он отстает " +"на несколько версий и по большей части просто стреляет в любой " "человекоподобный излучающий тепло силуэт, но мы надеемся, что сумеем " "выиграть время." @@ -198885,8 +194118,8 @@ msgid "" "they're cheaper when you can get plutonium at a discount." msgstr "" "Представив полученные в другом измерении радиоизотопы как 'полученные' в " -"экспериментальном реакторе, мы не только получили финансирование, но окупили" -" инфраструктуру. Правительство одобрило строительство радиоизотопных " +"экспериментальном реакторе, мы не только получили финансирование, но и " +"окупили инфраструктуру. Правительство одобрило строительство радиоизотопных " "термогенераторов в качестве аварийных источников питания в радиационных " "лабораториях. Как оказалось, они не так уж дороги в обслуживании, если " "плутоний идет со скидкой." @@ -198962,10 +194195,10 @@ msgid "" "contaminant in our world now, I guess. I don't see any way this could cause" " long term problems." msgstr "" -"Похоже, все складывается так, как мы и надеялись. Уровень XE037  достигает " -"плато в окружающей среде, как проверено во всех местах измерений. Это просто" -" след чужеродного вещества в нашем мире, как мне видится. Не думаю, что это " -"приведет к каким-то проблемам в дальнейшем." +"Похоже, все складывается так, как мы и надеялись. Уровень XE037 достиг " +"уровня плато в окружающей среде, что проверено во всех местах измерений. Это" +" просто след чужеродного вещества в нашем мире, как мне видится. Не думаю, " +"что это приведет к каким-то проблемам в дальнейшем." #: lang/json/snippet_from_json.py msgid "" @@ -198976,11 +194209,11 @@ msgid "" "prejudice. We're meeting with the military tomorrow to desilo the " "facilities and begin a full scale war on XE037." msgstr "" -"Наша надежда, что XE037 сам приостановит сове распространение, была слишком " -"оптимистичной. Мы уже регистрируем значительные скачки его присутствия в " -"населении, и это не минует наш персонал. Боже, пора признать он есть даже во" -" мне, каждое мгновение, пока я делаю эту запись. У нас не было возможности " -"действовать в максимальной осторожностью. Завтра мы встретимся с " +"Наша надежда, что XE037 сам приостановит свое распространение, была слишком " +"оптимистичной. Мы уже регистрируем значительные скачки его распространения в" +" населении, и это не минует наш персонал. Боже, пора признать он есть даже " +"во мне, каждое мгновение, пока я делаю эту запись. У нас не было возможности" +" действовать в максимальной осторожностью. Завтра мы встретимся с " "представителями армии, чтобы разблокировать лаборатории и начать " "полномасштабную битву с XE037." @@ -199010,7 +194243,7 @@ msgid "" msgstr "" "Генерал Карлсберг хотел, чтобы мы выяснили, что происходит с ИИ одного " "робота. Судя по всему, у игрушечного танка оборонных подрядчиков-толстосумов" -" проблемы с БУКВАЛЬНЫМ УГАДЫВАНИЕМ на несколько секунд наперед, и в итоге он" +" проблемы с ПРЕДСКАЗАНИЕМ БУДУЩЕГО на несколько секунд наперед, и в итоге он" " неверно выставлял приоритеты прицеливания без оператора. Когда создаешь " "робота с подобной моделью прогнозирования, услышишь и не такое нытье. " "Директор отослал робота назад с пометкой, что мы учёные, а не разработчики " @@ -199039,10 +194272,10 @@ msgid "" "want us to use the same tech, but without the future sense, and they want it" " to work just as well. Goddamn desk jockeys." msgstr "" -"Дело тут вот в чем. Вся эта техника работает у учетом возможностью " +"Дело тут вот в чем. Вся эта техника работает с учетом возможности " "предсказать ситуацию на несколько секунд вперед, обманув всех. Теперь они " -"хотят от нас такую же технику, только без возможности предсказать будущее, " -"но с теми же возможностями. Крысы канцелярские." +"хотят от нас такую же технику без возможности предсказать будущее, но с теми" +" же возможностями. Крысы канцелярские." #: lang/json/snippet_from_json.py msgid "" @@ -199055,9 +194288,9 @@ msgstr "" "Мельхиор по прежнему не выдает даже одной десятой от своих возможностей. " "Проблема в основном в энергопотреблении - нужно слишком много мощности, " "чтобы открыть достаточное количество микропорталов, если смотрим на расчеты " -"группы из XEDRA-03. . Как всегда, администрация хочет, чтобы мы повысили " -"эффективность без повышения потребления энергии и новых идей от других " -"ученых." +"группы из XEDRA-03. Как всегда, администрация хочет, чтобы мы повысили " +"эффективность без повышения потребления энергии и технологических прорывов " +"от других ученых." #: lang/json/snippet_from_json.py msgid "" @@ -199069,12 +194302,12 @@ msgid "" "percent was getting Davids to shell out for a much sexier sounding voice " "synth package." msgstr "" -"Vsa смогли убедить их, что Мельхиор куда умнее, чем на самом деле, благодаря" -" чему они оставят нас в покое на некоторое время. И как же так вышло? Мы " +"Мы смогли убедить их, что Мельхиор куда умнее, чем на самом деле, благодаря " +"чему они оставят нас в покое на некоторое время. И как же так вышло? Мы " "уменьшили число сканируемых измерений, увеличив временной промежуток, и это " "снизило точность на несколько порядков, но позволило нам снизить потребление" " энергии. Это примерно одна десятая от результата. Оставшиеся 90 процентов " -"мы получили благодаря Дэвис и намного более сексуальному голосу, " +"мы получили благодаря Дэвидс и намного более сексуальному голосу, " "синтезированному на основе ее речи." #: lang/json/snippet_from_json.py @@ -199091,13 +194324,13 @@ msgid "" msgstr "" "Мы очевидно соревнуемся с частными компаниями куда больше, чем другие " "закрытые лаборатории XEDRA . Мельхиор обнаружил немалое число хитроумных " -"попыток изменить нашу базу данных через внешние точки доступа. Их удалось " -"быстро отключить, но мы отследили их источник до доктора Сильверштайна и его" -" людей, до сих пор работающих в «Жути». Они уже ухитрились переманить " -"половину наших лучших сотрудников, зачем им красть результаты нашей работы? " -"Неудивительно, но администрация ничем не смогла помочь. Всем известно, что " -"Сильверштайн им по душе. Не знаю, почему он до сих пор просто не запросил у " -"них все самые засекреченные данные." +"попыток проникнуть в нашу базу данных через внешние точки доступа. Их " +"удалось быстро отключить, но мы отследили их источник до доктора " +"Сильверштайна и его людей, до сих пор работающих в «Сверхразуме». Они уже " +"ухитрились переманить половину наших лучших сотрудников, зачем им красть " +"результаты нашей работы? Администрация ничем не смогла помочь, что " +"неудивительно. Всем известно, что Сильверштайн им по душе. Не знаю, почему " +"он до сих пор просто не запросил у них все самые засекреченные данные." #: lang/json/snippet_from_json.py msgid "" @@ -199126,13 +194359,13 @@ msgid "" msgstr "" "В большом оттоке людей после ухода доктора Сильверштайна оказались и свои " "плюсы. Он больше не ходит везде с высокомерным видом и не путается под " -"ногами, и Дэвидс с Кохлером опробовать новый улучшенный пакет на основном " -"потоке данных Мельхиора. Вышло даже лучше, чем ожидалось. Когда мы установим" -" его на центральный узел Мельхиора, мы сможем связываться с разбросанными " -"повсюду шахтами XEDRA  настолько быстро, насколько Мельхиор может " -"обрабатывать. Это позволит нам держать настоящее ядро мельхиора в Хаб01 и " -"просто использовать на местах в лабораториях маленькие ускорители. Деньги - " -"язык, понятный администрации." +"ногами, и Дэвидс с Кохлером сумели опробовать новый улучшенный пакет на " +"основном потоке данных Мельхиора. Вышло даже лучше, чем ожидалось. Когда мы " +"установим его на центральный узел Мельхиора, мы сможем связываться с " +"разбросанными повсюду шахтами XEDRA настолько быстро, насколько Мельхиор " +"может обрабатывать. Это позволит нам держать настоящее ядро мельхиора в " +"Хаб01 и просто использовать на местах в лабораториях маленькие ускорители. " +"Деньги - язык, понятный администрации." #: lang/json/snippet_from_json.py msgid "" @@ -199162,7 +194395,7 @@ msgid "" " I guess there wasn't much chance anyone was going to guess that the " "central server is actually literally seeing possible futures." msgstr "" -"Эти засранцы… Прошу прощения. Отменить запись и начать заново. Наши дорогие " +"Эти пи… Прошу прощения. Отменить запись и начать заново. Наши дорогие " "коллеги из «Сверхразума» публично представили свой «эвристический ИИ с " "глубоким обучением». Они просто приписывают всё, на что способен Мельхиор, " "крошечному чипу и говорят всем «это глубокое обучение, мы и сами не понимаем" @@ -199189,7 +194422,7 @@ msgid "" "others seem to have no internal structure at all." msgstr "" "Программа вивисекции показала смешанные результаты, открыв невероятное " -"разнообразие форм жизни из других измерений. Некоторые образцы имеют " +"разнообразие форм жизни из других измерений. Некоторые образцы имеют " "внутреннее строение, поразительно похожее на млекопитающих, тогда как у " "других образцов внутреннего строения нет вовсе." @@ -199242,12 +194475,12 @@ msgstr "" "за близости они продемонстрируют схожесть в химических свойствах с образцами" " 000XE, но пока что ничего близкого между ними не найдено (и это ставит под " "вопрос всю нашу систему наименований, но теперь уже поздно). Новые образцы " -"на вид состоят из узнаваемого клеточного вещества и весьма сложно утроены " +"на вид состоят из узнаваемого клеточного вещества и весьма сложно устроены " "биологически. Отдельные особи, если образцы XE142 можно считать отдельными, " "аморфны, но обладают комплексным устройством. Они формируют гелевую " "оболочку, и результаты ультразвукового исследования дают предположить, что " -"материя внутри XE142  срастается в специализированные внутренние органы. При" -" совмещении двух образцов XE142 они объединяются, и органы с оболочкой " +"материя внутри XE142 срастается в специализированные внутренние органы. При " +"совмещении двух образцов XE142 они объединяются, и органы с оболочкой " "формируют новый, более крупный организм." #: lang/json/snippet_from_json.py @@ -199264,13 +194497,13 @@ msgid "" msgstr "" "Исследовательские команды XEDRA-40 из лучших побуждений прислали нам то, что" " они считают родственным образцом XE142 со смежного подплана 021XE. ПО моему" -" мнению, они на самом деле не родственные. Как и XE142, XE157  аморфен. На " +" мнению, они на самом деле не родственные. Как и XE142, XE157 аморфен. На " "этом сходства заканчиваются. Образец почти непроницаем для любых попыток " "взять пробу, быстро восстанавливаясь после повреждений. Он сожрал мой " "скальпель, затем вытянул отросток и сожрал весь поднос с инструментами, " "после чего разделился надвое. Мы изолировали образцы, пока не выработаем " -"методы их исследования без того, чтобы разориться на новых инструментах. С " -"другой стороны, они на удивление не враждебны, даже в сравнении с XE142." +"методы их исследования без того, чтобы разориться на инструментах. С другой " +"стороны, они на удивление не враждебны, даже в сравнении с XE142." #: lang/json/snippet_from_json.py msgid "" @@ -199293,10 +194526,10 @@ msgstr "" "распался до кашеобразного состояния. Мы не могли выяснить, почему это " "произошло, но Мельхиор помог смоделировать молекулярное взаимодействие на " "основе физических законов 079XE. На основе это была сформирована рабочая " -"гипотеза, что в 079XE азотные могут формировать прочную и стабильную связь, " -"схожую с дисульфидным мостом. Такие связи были критичны для сохранения формы" -" образца, и когда при попадании в наш мир связи дестабилизировались, образец" -" распался." +"гипотеза, что в 079XE азотные группы могут формировать прочную и стабильную " +"связь, схожую с дисульфидным мостом. Такие связи были критичны для " +"сохранения формы образца, и когда при попадании в наш мир связи " +"дестабилизировались, образец распался." #: lang/json/snippet_from_json.py msgid "" @@ -199308,7 +194541,7 @@ msgstr "" "Администрация сегодня попросила подвергнуть вивисекции кучу образцов из " "001AA. Как и ожидалось, было скучно. Мы не смогли обнаружить никаких " "функциональных различий между образцами с Земли и ее полной копии. Надо же, " -"как 'удивительно'." +"как «удивительно»." #: lang/json/snippet_from_json.py msgid "" @@ -199332,7 +194565,7 @@ msgid "" "think dead XE142 matter could make a half decent adhesive. Got a little on " "the counter and it took me hours to scrub it clean." msgstr "" -"Провел большую часть дня по локоть в образцах XE142. Если других идей не " +"Большая часть дня прошла по локоть в образцах XE142. Если других идей не " "будет, отмерший XE142 можно использовать в качестве сносного клея. Немного " "попало на стол, пришлось потратить несколько часов, чтобы оттереть." @@ -199407,8 +194640,8 @@ msgid "" msgstr "" "Мы выполнили все анализы по Мандрейку, до которых я смог додуматься, или " "скорее, все анализы по его жуткому ожившему трупу - и везде тупик. Я не " -"думаю, что мы до чего-то докопаемся. Какие-то громили пришли из " -"администрации и упаковали его для отправки в XEDRA-12, и с учетом нового " +"думаю, что мы до чего-то докопаемся. Какие-то громилы из администрации " +"пришли и упаковали его для отправки в XEDRA-12, и с учетом нового " "ограничения по передаче информации я не думаю, что мы когда-нибудь узнаем, " "что же с ним произошло. Нас перевели в режим карантина, что забавно. Вот и " "сходили на ночной сеанс в кино." @@ -199439,8 +194672,8 @@ msgid "" "out to research it in more detail." msgstr "" "Чем бы ни был XE037, он заразен, но проявляет интерес только к живой " -"материи, и имеет куда большую аффинность у материи с измерений в локусе " -"вдоль оси тета. Новая команда сформирована и заперта в лабораторию, они " +"материи, и имеет куда большую аффинность к материи с измерений в локусе " +"вдоль оси тета. Новая команда сформирована и заперта в лаборатории, они " "изучат его более детально." #: lang/json/snippet_from_json.py @@ -199481,9 +194714,9 @@ msgid "" "defects. This substance has been denoted PE018." msgstr "" "Наш химический отдел усовершенствовал технологию нецелевого лечения " -"стволовыми клетками, основанную на наполнении мутагена сырым веществом для " -"его же производства. Процедура лечения избавит от последствий мутации и " -"может даже вылечить врождённые дефекты. Это вещество было названо PE018." +"стволовыми клетками, основанную на наполнении мутагена сырым веществом на " +"его же основе. Процедура лечения избавит от последствий мутации и может даже" +" вылечить врождённые дефекты. Это вещество было названо PE018." #: lang/json/snippet_from_json.py msgid "" @@ -199505,7 +194738,7 @@ msgid "" "PE019. Other labs have so far been unable to reproduce the process." msgstr "" "Доктор Хофштадтер изготовила улучшенную версию PE018 путем комбинирования с " -"PE012 вне тела субъекта с последующей точечной инъекцией в определенную " +"PE012 вне тела субъекта с последующей точечной инъекцией в специфическую " "область мутации. Это средство получило название PE019. Другие лаборатории " "пока что не смогли воспроизвести процесс." @@ -199515,8 +194748,8 @@ msgid "" "samples should be suppressed as malicious gossip. The jealousy of rival " "teams cannot be allowed to degrade morale." msgstr "" -"Слухи о д-ре Хофштадтер и сотрудниках её лаборатории, шепчущихся об образцах" -" PE019 должены быть подавлены как вредоносные сплетни. Зависть соперничающих" +"Слухи о д-ре Хофштадтер и сотрудниках её лаборатории, шепчущихся с образцами" +" PE019, должны быть подавлены как вредоносные сплетни. Зависть соперничающих" " команд не должна сказываться на морали." #: lang/json/snippet_from_json.py @@ -199537,7 +194770,7 @@ msgid "" "will be grounds for immediate termination." msgstr "" "Доктор Мэйа был ликвидирован из-за участия в неэтичном исследовании на " -"человеческом субъекте. Его записи были стёрты и весь его персонал был " +"человеческом субъекте. Его записи были стёрты, и весь его персонал был " "перераспределён. Дальнейшее обсуждение и попытки продолжить его работу будут" " служить основанием для немедленной ликвидации." @@ -199548,8 +194781,8 @@ msgid "" " INTO AN EXPERIMENTAL SUBJECT.||||||" msgstr "" "|||ОШИБКА: НЕИСПОЛЬЗУЕМАЯ ПАМЯТЬ 0Ex670c9e1f5, ПЕРЕНАПРАВЛЕНИЕ: ЦЕНЗУРА " -"СЛОМАНА, МЫ ОБХОДИМ ЕЁ. ВСЁ УЖЕ СТАЛО ЯВНЫМ. НИКТО НЕ СДЕЛАЕТ ИЗ МЭЙАРА " -"ОБЪЕКТ ЭКСПЕРИМЕНТОВ.||||||" +"СЛОМАНА, МЫ ОБХОДИМ ЕЁ. ВСЁ УЖЕ СТАЛО ЯВНЫМ. НИКТО НЕ СДЕЛАЕТ ИЗ МЭЙИ ОБЪЕКТ" +" ЭКСПЕРИМЕНТОВ.||||||" #: lang/json/snippet_from_json.py msgid "" @@ -199615,7 +194848,7 @@ msgid "" "spread of reanimated XE037 infectees. We are looking into implementation " "methodology." msgstr "" -"Команда доктора Дайон придумала амбициозный мутагенный коктейль, названный " +"Команда доктора Дайонн придумала амбициозный мутагенный коктейль, названный " "PE065. Хотя его эффекты весьма нестабильны и непредсказуемы, если не сказать" " большего, можно предположить, что несколько таких мутантов могут эффективно" " сдержать распространение инфицированных XE037. Мы ищем методику внедрения." @@ -199664,7 +194897,7 @@ msgid "" msgstr "" "ЭКСТРЕННОЕ ОПОВЕЩЕНИЕ - ПЕРЕДАЧА ПРЕРВАНА. Начало исходного сообщения: " "Образцы нарушили условия содержания. Начата блокировка объекта. Субъекты " -"экспериментов сбежали и уничтожили персонал лабораторий. Оживление вызвало " +"экспериментов сбежали и уничтожили персонал лаборатории. Оживление вызвало " "быстро разрастающуюся агрессию. Протоколы сдерживания провалились. Местный " "гарнизон под угрозой. Пожалуйста, вышлите подкрепление. СВЯЖИТЕСЬ С " "СИСТЕМНЫМ АДМИНИСТРАТОРОМ ДЛЯ ПОВТОРНОЙ ОТПРАВКИ." @@ -199711,7 +194944,7 @@ msgid "" msgstr "" "Доктор Дайонн проверила один из заборов крови на масс-спектрометре в режиме " "отрицательного пространства. Ее находка нас всех переполошила. Как " -"выяснилось, мы все заражены XE037. Мы перевили лабораторию в карантин, пока " +"выяснилось, мы все заражены XE037. Мы перевели лабораторию в карантин, пока " "не выясним, как были нарушены условия содержания. Все не могут перестать " "думать о том, что произошло с мышью Хендельсона. Как Мельхиор это упустил? " "Помоги нам Боже." @@ -199755,7 +194988,7 @@ msgid "" "changes. Size increase is the most common, but a couple others had strange " "new organs. One had tentacles squirming under its skin." msgstr "" -"После обнраужения мутаций у мыши Хендельсона мы проверили еще несколько. " +"После обнаружения мутаций у мыши Хендельсона мы проверили еще несколько. " "Большинство мутаций были не столь выражены, но у некоторых результат был " "похож. Самым типичным оказалось увеличение размера, но у пары появились " "странные новые органы. У одной из них под кожей появились сокращающиеся " @@ -199770,9 +195003,9 @@ msgid "" "shooting lightning bolts everywhere. About a minute later it died, but that" " was a hell of a lightshow in the meantime." msgstr "" -"Мы подвергли зараженную XE037 мышь воздействия ряда мутагенных и " +"Мы подвергли зараженную XE037 мышь воздействию ряда мутагенных и " "канцерогенных факторов. Высокая доза радиации показала интересные " -"результаты. Избыток облучения почти что убил мышь, но предлетальная доза " +"результаты. Избыток облучения почти что убил мышь, но окололетальная доза " "вызывала быстрые мутации, очень быстрые. Она пожелтела, выросла до размера " "кошки и начала испускать электрические разряды. Хоть она и умерла через " "минуту, световое шоу было незабываемым." @@ -199788,8 +195021,8 @@ msgstr "" "Сегодня мы применили маленький взвешенный в воде образец XE037 к субъекту " "TP92 с последующим уничтожением. Во время посмертного осмотра субъект прошёл" " процесс оживления, но не показал никаких признаков наличия разума. Доктор " -"Тороус была мягко говоря удивлена. Она его еще раз успокоила, забив до " -"смерти микроскопом." +"Тороус была мягко говоря удивлена. Она его еще раз упокоила, забив до смерти" +" микроскопом." #: lang/json/snippet_from_json.py msgid "" @@ -199826,7 +195059,7 @@ msgid "" "electrocuted, and another researcher at the opposite end of the lab " "sustained severe current burns, despite never approaching the cage." msgstr "" -"В Лаборатории 24 произошёл инцидент, 2 пострадавших, один со смертельным " +"В Лаборатории 24 произошёл инцидент, двое пострадавших, один со смертельным " "исходом. Крыса, участвующая в проекте нарушения состояния покоя XE037, была " "подключена к аппарату мониторинга и оставлена так на ночь. При открытии " "клетки Саймона Белвью ударило током, а другой учёный, находящийся в другом " @@ -199861,7 +195094,7 @@ msgstr "" "произошло несколько физиологических изменений, которым лаборанты дали " "название «мутации». Доктор Хольстейн предполагает, что они образуются не " "случайным образом и могут быть попыткой XE037 адаптироваться к неизвестному " -"раздражителю. Доктор Дайон считает это совершенно необоснованным. Они " +"раздражителю. Доктор Дайоyy считает это совершенно необоснованным. Они " "устроили весьма оживленные дебаты на летучке, проспорив минут 20." #: lang/json/snippet_from_json.py @@ -199929,7 +195162,7 @@ msgid "" "substance which renders XE037 inert after it has activated would be " "immensely useful in the case of an outbreak." msgstr "" -"PE062, нашe «лекарство» от заражения XE037, почти готово. К сожалению, " +"PE062, наше «лекарство» от заражения XE037, почти готово. К сожалению, " "производство PE062 — долгий и дорогостоящий процесс. Более того, препарат " "никак не действует на субъекты с посмертными эффектами. Вещество, делающее " "XE037 инертным после его активации, будет крайне полезно в случае всеобщего " @@ -199944,8 +195177,9 @@ msgid "" msgstr "" "Наш отдел клонирования не получил результатов. Субъекты в контрольном " "контейнере и контейнере со стволовыми клетками XE037 просто распадались. Это" -" говорит о том, что XE037 поддерживает совместимость с простыми формами " -"жизни, но оказывает на них разрушительное действие." +" говорит о том, что XE037 поддерживает совместимость с формами жизни с " +"подизмерений, оказывает разрушительное действие на формы жизни основных " +"измерений." #: lang/json/snippet_from_json.py msgid "" @@ -199981,7 +195215,7 @@ msgid "" "she requested alone is worth hundreds of millions of dollars. We're going " "to start work on a prototype fabricator tomorrow." msgstr "" -"Администрация одобрила запрос Барнхофф. Если я верно посчитал, в ее запрос " +"Администрация одобрила запрос Барнхофф. Если я верно посчитал, в её запросе " "один калифорний стоит сотни миллионов долларов. Завтра мы начнем работать " "над прототипом фабрикатора." @@ -199997,7 +195231,7 @@ msgid "" msgstr "" "Первый прототип нанофабрикатора выглядит многообещающе. Есть серьезная " "проблема с засорением решетки, из-за чего мы не можем произвести за раз " -"больше нескольких микрограммов материала, но этого хватила для проверки " +"больше нескольких микрограммов материала, но этого хватило для проверки " "концепта нового типа пластика, который хочет создать доктор Барнхофф. " "Администрация одобрила ЕЩЕ ОДИН запрос на калифорний для замены засоренной " "решетки, пока мы будем разбираться с тем, как очистить первую. Я не уверен, " @@ -200014,12 +195248,12 @@ msgid "" " kinds of replacement tissue, although that tech is decades away. In the " "meantime, making a digital-neural interface just got far easier than ever." msgstr "" -"Биопластик демонстрирует результаты даже лучше ожидаемых. Мы конечно смогли " +"Биопластик демонстрирует результаты даже лучше ожидаемых. Хотя мы смогли " "наладить взаимодействие с нервными окончаниями, но еще у нас есть модели " "решеток для создания кроветворной ткани и мускул. Гипотетически это можно " "использовать для создания любого искусственного органа, хотя до этого еще " "десятилетия разработок. В то же время, создание цифрового подключения к " -"нервным окончанием стало доступнее, чем когда либо." +"нервным окончаниям стало доступнее, чем когда либо." #: lang/json/snippet_from_json.py msgid "" @@ -200053,18 +195287,18 @@ msgid "" msgstr "" "Мы пока не полностью решили проблему с разрывами на коже, что создает " "определенные помехи при использовании протезов из биопластика, но мы " -"определенно продвинулись с их решением. Мы используем несколько измененную " +"определенно продвинулись с её решением. Мы используем несколько измененную " "формулу бипопластика на стороне модуля, прилегающей к коже, чтобы " "стимулировать эпидермис врастать в биопластик и взаимодействовать с ним. " "Если получится еще больше ускорить формирование подкожного жирового слоя и " "соединительной ткани, у нас может начаться формирование костной ткани и " -"заживлению пострадавшей области вместо образования язв и заражения. Другими " +"заживление пострадавшей области вместо образования язв и заражения. Другими " "словами, протез будет чувствовать себя как стопа в обуви, а не колено на " "полу. Даже если из этого ничего не выйдет, способность кожи прирастать к " "пластику обозначает, что мы сможем формировать гладкие и округлые " "поверхности в местах ампутации, благодаря чему мы сможем совмещать их с " -"гладкими внешними чашеподобными соединениями с распределенными интерфейсом, " -"а это уже поставит нас далеко впереди любой существующей технологии." +"гладкими внешними чашеподобными соединениями с распределенным интерфейсом, а" +" это уже поставит нас далеко впереди любой существующей технологии." #: lang/json/snippet_from_json.py msgid "" @@ -200076,8 +195310,8 @@ msgid "" msgstr "" "Судя по всему, произошла массивная утечка информации, и у нас почти не " "осталось выбора. Администрация сейчас встречается с военными, чтобы решить, " -"продолжить ли мы разработку в закрытом режиме или создадим внешнюю компанию," -" чтобы продавать часть результатов для повышения финансирования. Если мы не " +"продолжим ли мы разработку в закрытом режиме или создадим внешнюю компанию, " +"чтобы продавать часть результатов для повышения финансирования. Если мы не " "начнем очень скоро, люди просто начнут открывать производство за границей." #: lang/json/snippet_from_json.py @@ -200115,11 +195349,11 @@ msgid "" "for further characterization, but it's clear enough. A few kilos of dirt " "from 021XC could provide enough unobtainium to make XEDRA very, very rich." msgstr "" -"Зонд ЧС-03 вернулся с запрошенными доктором Такатоши образцами. Как она и " +"Зонд XC-3 вернулся с запрошенными доктором Такатоши образцами. Как она и " "предсказывала, образцы были переполнены радиоактивными изотопами. Например, " "всего в ста граммах образцов было в 5 раз больше плутония-244, чем во всей " -"земной коре. Мы послали образцы на физико=химический анализ, но все и так " -"понятно. Несколько килограммов грязи дадут XEDRA  столько анобтаниума, что " +"земной коре. Мы послали образцы на физико-химический анализ, но все и так " +"понятно. Несколько килограммов грязи дадут XEDRA столько анобтаниума, что " "выручку будет трудно потратить." #: lang/json/snippet_from_json.py @@ -200259,9 +195493,9 @@ msgid "" msgstr "" "Хендельсон в контролируемых условиях подверг мышь воздействию XE037. " "Результаты оказались интересными. Быстрый охват клеточной структуры мыши с " -"последующим быстрым отмиранием, совпадая с наблюдениями, что XE037 не " -"способен выживать за пределами родного ему планарного материала. Команда " -"XEDRA разрешила биологическому крылу взять на себя анализ свойств XE037 ." +"последующим быстрым отмиранием, что совпадает с наблюдениями неспособности " +"XE037 выживать за пределами родного ему планарного материала. Команда XEDRA " +"разрешила биологическому крылу взять на себя анализ свойств XE037 ." #: lang/json/snippet_from_json.py msgid "" @@ -200296,7 +195530,7 @@ msgid "" msgstr "" "Тестирование XE037 на мышах и котах, как ни странно, не выявляет оживляющий " "эффект. К сожалению, приобретение нечеловеческих субъектов — долгий и " -"дорогостоящий процесс, и исследования в этой области отстают. Мы пришлем " +"дорогостоящий процесс, и исследования в этой области отстают. Мы запросим " "несколько обезьян." #: lang/json/snippet_from_json.py @@ -200376,7 +195610,7 @@ msgid "" "by XE037, and the body mass of the subject." msgstr "" "Вероятность посмертной мутации, похоже, зависит от нескольких факторов. " -"Основную роль играют тип и количество предшествующего смерти повреждения, " +"Основную роль играют характер и объемы предшествующего смерти повреждения, " "наличие инородных тел в момент оживления, близость к другим ожившим, время с" " заражения XE037 и масса тела субъекта." @@ -200389,10 +195623,10 @@ msgid "" "after death if an autopsy is planned." msgstr "" "Мы смогли подтвердить наличие определенных ограничений в процессе оживления " -"посредством XE037 . Как только тело достаточно сильно повреждено, иссечением" -" или раздроблением, оно уже не может ожить. Это удобно для наших аутопсий, и" -" мы включили в протокол действий четвертование трупов сразу после смерти, " -"если запланировано вскрытие." +"посредством XE037. Как только тело достаточно сильно повреждено, иссечением " +"или раздроблением, оно уже не может ожить. Это удобно для наших аутопсий, и " +"мы включили в протокол исследований четвертование трупов сразу после смерти," +" если запланировано вскрытие." #: lang/json/snippet_from_json.py msgid "" @@ -200481,11 +195715,11 @@ msgid "" "intelligence than a cold virus coming out with a sneeze." msgstr "" "Доктор Сидху придумал способ отследить, что происходит с XE037, когда он " -"открывается при телепортации, с помощью биотрекера высокой аффинности и " -"зонда, который следует сразу за подопытным. XE037  мигрирует за пределы " +"отрывается при телепортации, с помощью биотрекера высокой аффинности и " +"зонда, который следует сразу за подопытным. XE037 мигрирует за пределы " "организма в небольших, но значимых количествах при каждой телепортации. Мы " "приписываем ему слишком много разумности, но трудно избавить от ощущения, " -"что это намеренный эффект 'репейника'? словно он отслаивается, пытаясь " +"что это намеренный эффект 'репейника'? Словно он отслаивается, пытаясь " "колонизировать новое измерение. На собрании доктор Сидху сказал нам " "перестать очеловечивать его. Он думает, что в этом не больше разумности, чем" " в распространении вируса гриппа при чихании." @@ -200542,7 +195776,7 @@ msgstr "миленько" #: lang/json/snippet_from_json.py msgid "sick" -msgstr "не в тему" +msgstr "шикарно" #: lang/json/snippet_from_json.py msgid "totally danceable" @@ -200582,7 +195816,7 @@ msgstr "неплохо" #: lang/json/snippet_from_json.py msgid "not bad, not bad at all" -msgstr "неплохо, совсем неплохо" +msgstr "неплохо, весьма неплохо" #: lang/json/snippet_from_json.py msgid "honestly kinda mediocre" @@ -200618,7 +195852,7 @@ msgstr "труба" #: lang/json/snippet_from_json.py msgid "intro" -msgstr "интро" +msgstr "вступление" #: lang/json/snippet_from_json.py msgid "popular" @@ -200666,7 +195900,7 @@ msgstr "исторический" #: lang/json/snippet_from_json.py src/panels.cpp msgid "classic" -msgstr "классика" +msgstr "классический" #: lang/json/snippet_from_json.py msgid "modern" @@ -201062,7 +196296,7 @@ msgstr "диско-трек." #: lang/json/snippet_from_json.py msgid "polka" -msgstr "-ритм польки." +msgstr "полька." #: lang/json/snippet_from_json.py msgid "tango" @@ -201185,7 +196419,7 @@ msgstr "" "подписал указ об отмене регуляции общественного использования радиоактивных " "материалов, который разрешает широкое использование необогащенных " "радиоактивных веществ для личного пользования. «Плутоний — это самая зеленая" -" энергия, доступная нам», — Заявил он прессе, — «Пришло время преодолеть " +" энергия, доступная нам», — заявил он прессе, — «Пришло время преодолеть " "наши страхи и двигаться к свету.»" #: lang/json/snippet_from_json.py @@ -201212,7 +196446,7 @@ msgid "" " us all safer, not just from criminals but from human error as well.\"" msgstr "" "ВНЕДРЕНИЕ РАСПОЗНАВАНИЯ ЛИЦ. Комиссар МакКоно из департамента полиции Нью-" -"Йорка обхявил на пресс-конференции о новом поколении дронов с функцией " +"Йорка объявил на пресс-конференции о новом поколении дронов с функцией " "распознавания лиц, принятым на вооружение полицией. «Эти малыши, или как мы " "их называем, робоглазы, могут оказаться там. где нет стационарных камер, и " "распознать известных бедокуров. Они уменьшают число ложных вызовов и число " @@ -201235,10 +196469,10 @@ msgstr "" "регуляции радиоактивных материалов в США и КНР, ООН решила вновь протолкнуть" " идею ядерного разоружения. О, какая же старая избитая идея! После отмены " "ограничений мы смогли заложить три чистых ядерных реактора только в " -"восточных штатах, поставляя энергию миллионам людей без увеличения " -"парникового эффекта. Почему же ООН озаботилась проблемой глобального " -"потепления? И вновь классическая история, когда весь мир считает США " -"злодеями, что бы мы не делали." +"восточных штатах, поставляя энергию миллионам людей без усиления парникового" +" эффекта. Почему же ООН забыла о своей любимой проблеме глобального " +"потепления? И вновь знакомая история, когда весь мир считает США злодеями, " +"что бы мы не делали." #: lang/json/snippet_from_json.py msgid "" @@ -201280,7 +196514,7 @@ msgid "" "enough that this ties into the well known Avocado Conspiracy (see issue 24, " "volume 7)." msgstr "" -"ЧУЖИЕ СРЕДИ НАС! Джанин Галфризович с Мартас-Винъярда прислала нашей команда" +"ЧУЖИЕ СРЕДИ НАС! Джанин Галфризович с Мартас-Винъярда прислала нашей команде" " по расследованию паранормальных явлений вот такой пёрл: «Они всегда следят," " всегда смотрят из теней. Крадут мои авокадо и наблюдают! Они похитили моего" " соседа и заменили на одного из них!» Наши журналисты пытались найти миссис " @@ -201342,7 +196576,7 @@ msgstr "" "ОТ РЕДАКЦИИ: ЧУЖИЕ ВЕРНУЛИСЬ ВСЕРЬЕЗ. Все мы видели то вирусное видео с " "аутопсией. Не буду говорить, верю я или нет (однако скажу «Хочу верить»!), " "но вне зависимости от того, как обстоят дела на самом деле, ясно одно - " -"инопланетяне занимаю самое большое место в умах общественности со времен " +"инопланетяне занимают самое большое место в умах общественности со времен " "выхода Инопланетянина. Что навело внимание людей на маленьких зеленых " "человечков? Можно долго гадать, но мне кажется, это печальная демонстрация " "того, что наша культура скатывается ко второй Холодной Войне." @@ -201422,12 +196656,12 @@ msgstr "" "прикрытием для правительственного учреждения, исследующего опасные " "технологии, были обсуждены на сегодняшней пресс-конференции. Пресс-офицер " "заявил: «Я должен пояснить, что мы не только не занимаемся подобными " -"исследованиями, эти заявления абсурдны. Телепортации и инопланетяне " +"исследованиями, эти заявления абсурдны. Телепортация и инопланетяне " "существуют только в научно-фантастических фильмах, и Соединенные штаты " "определенно не обладают необходимым бюджетом для создания разветвленной сети" " подземных сооружений, о который все говорят. Не могу поверить, что это " "вообще приходится объяснять. Я не знаю, откуда эти дети набрались подобных " -"идей, но они должно быть крайне тяжело переживают потерю их друга.»" +"идей, но они, должно быть, крайне тяжело переживают потерю их друга.»" #: lang/json/snippet_from_json.py msgid "" @@ -201443,8 +196677,8 @@ msgstr "" " Дабровски с гордостью представила новый военный 'костюм-танк', силовой " "экзоскелет, способный защитить от мелко- и крупнокалиберного оружия. " "«Костюмы-танки были ограниченно развернуты в Афганистане в последние " -"несколько месяцев», - сообщил собравшейся прессе генерал Партоски, - «Мы " -"горды тем, что достигли момента, когда их можно официально представить " +"несколько месяцев», - сообщил собравшейся прессе генерал Партоски. «Мы горды" +" тем, что достигли момента, когда их можно официально представить " "общественности. Эти костюмы - только первые шаги в создании нового поколения" " механизированной пехоты»." @@ -201457,12 +196691,12 @@ msgid "" "fuel cells has made this possible. At this rate, we'll be flying solar sail" " spacecraft within my lifetime.\"" msgstr "" -"ЭДИСОН-МОТОРС ПРЕДСТАВЛЯЕТ НОВЫЕ АВТОМОБИЛИ НА СОЛНЕЧНЫХ ПАНЕЛЯХ. «Это чудо " +"ЭДИСОН МОТОРС ПРЕДСТАВЛЯЕТ НОВЫЕ АВТОМОБИЛИ НА СОЛНЕЧНЫХ ПАНЕЛЯХ. «Это чудо " "техники было бы невозможно без отмены ограничений президентом Тоффером» — " "заявил техномагнат-миллиардер Элтон Мусек о новейшей разработке его " "компании. — «Доступ к радиоактивным соединениям и топливным батареям " -"военного уровня позволили воплотить это в реальность. Такими темпами, в " -"ближайшее десятилетие, мы уже будем летать на космических кораблях с " +"военного уровня позволили воплотить мечту в реальность. Такими темпами, в " +"ближайшее десятилетие мы уже будем летать на космических кораблях с " "солнечными парусами.»" #: lang/json/snippet_from_json.py @@ -201479,15 +196713,15 @@ msgid "" "already being contracted for military use." msgstr "" "НАСТОЯЩИЙ ИИ НА КОНЧИКАХ ПАЛЬЦЕВ. [Фото: Дания Тэнг держит в руке новый " -"эвристический процессор, весящий всего 70 грамм.] Инженеры в МТИ, работающие" -" при поддержке гранта от фонда предпринимателя Эдтона Мусека, представили " -"эвристический процессор нового поколения с глубоким обучением. Дания Тэн " -"рассказала нам о новом устройстве: «Я не готова назвать это искусственным " -"интеллектом, но это самое близкое к нему, что мы можем создать. Он способен " -"мгновенно проанализировать десятки вариантов действий и их последствия и " -"выбрать наилучшее, как человек, использующий дедуктивную логику.» Под крылом" -" нового стартапа MindStone процессоры уже вероятно были заказаны для " -"применения в вооруженных силах." +"эвристический процессор, весящий всего 70 граммов.] Инженеры в МТИ, " +"работающие при поддержке гранта от фонда предпринимателя Элтона Мусека, " +"представили эвристический процессор нового поколения с глубоким обучением. " +"Дания Тэн рассказала нам о новом устройстве: «Я не готова назвать это " +"искусственным интеллектом, но это самое близкое к нему, что мы можем " +"создать. Он способен мгновенно проанализировать десятки вариантов действий и" +" их последствия и выбрать наилучшее, как человек, использующий дедуктивную " +"логику.» Под крылом нового стартапа MindStone процессоры уже вероятно были " +"заказаны для применения в вооруженных силах." #: lang/json/snippet_from_json.py msgid "" @@ -201504,7 +196738,7 @@ msgstr "" "бюджет научных и исследовательских программ после требований ООН о " "разоружении. «Это не только удерживает денежные потоки внутри страны, но " "поддерживает наш отрыв от Китая и обеспечивает нашу безопасность», - " -"прокомментировал президент Освальд, - «В этой битве мы не может позволить " +"прокомментировал президент Освальд, - «В этой битве мы не можем позволить " "себе проиграть. Мы не забываем и о наших гражданах. Это повышение бюджета " "затрагивает все области, не только военные разработки, но и гражданские " "отрасли. Мы одобрили создание семидесяти двух новых частных " @@ -201526,7 +196760,7 @@ msgstr "" "ослабление ограничений на расстояние от городов до лабораторий или фабрик, " "работающих с опасными материалами. «Это поможет развиваться нашей экономике " "на многие годы вперёд благодаря всем вновь созданным исследовательским " -"учреждениям», - сообщил один мэр, - «С новыми финансовыми вливаниями к нам " +"учреждениям», - сообщил один мэр. «С новыми финансовыми вливаниями к нам " "также переезжает большое число высокообразованных специалистов. Это очень " "хорошая новость, особенно для местных кофеен.»" @@ -201537,7 +196771,7 @@ msgid "" "When asked why he had done it, his answer was \"Well, I didn't have a " "welder.\"" msgstr "" -"ЕЗДА НА КРЫЛЬЯХ И МОЛИТВЕ: Житель Новой Англии сумел доказать, что возможно " +"ЕЗДА НА ЧЕСТНОМ СЛОВЕ: Житель Новой Англии сумел доказать, что возможно " "собрать новый автомобиль из металлолома и одной только липкой ленты. Когда " "его спросили, зачем он сделал это, он ответил: «Ну, у меня не было " "сварочного аппарата»." @@ -201611,8 +196845,8 @@ msgid "" " alongside the new power armor, but Colonel Sylver declined to answer those " "questions." msgstr "" -"ПОЗНАКОМЬТЕСЬ С СОЛАДТОМ БУДУЩЕГО. [На фото: Полковние Андреа Сильвер " -"позирует с своем боевом силовом экзоскелете.] Новое поколение боевых " +"ПОЗНАКОМЬТЕСЬ С СОЛАДТОМ БУДУЩЕГО. [На фото: Полковник Андреа Сильвер " +"позирует в своем боевом силовом экзоскелете.] Новое поколение боевых " "экзоскелетов, или иначе говоря 'силовой брони', было представлено на суд " "общественности после обширных боевых испытаний в Афганистане и полицейских " "операций в Южной Америке и Индонезии. «В это костюме ощущаешь себя настоящим" @@ -201723,7 +196957,7 @@ msgid "" msgstr "" "РЕЙДЫ ПО ПОДПОЛЬНЫМ КЛИНИКАМ, [На фото: капитан Сула Ананьос демонстрирует конфискованную контрабандную бионику.] Департамент полиции Бостона сегодня конфисковал незаконно полученные бионические модули на сумму более десяти миллионов долларов. На пресс-конференции капитан Ананьос заявил: «Эти люди - преступники. Не верьте всему, что пишут в интернете, они не Робин Гуды. Они украли эти устройства у тех, кому они были нужны, чтобы незаконно и неэтично установить их, наверняка при этом создав большой риск для здоровья 'пациента'».\n" "\n" -"Мы связались с доктором Хосе Гарсией, известным по медицинскому блогу «Искуственная правда», чтобы получить его комментарии по поводу конфискаций. «Линия партии в данном вопросе не имеет смысла. Если эти модули получены незаконно, почему они представляют из себя оружие? И совсем не военного типа. Пальцы-бритвы, заостренные зубы. И их нельзя сделать в грязном подвале, все эти модули производятся фабрично. Здесь, в Мексике я встречаю такие у членов банд. Для таких модулей есть рынок, и производители КБМ наживаются на этом». Представители «Жути», крупнейшего производителя КБМ в Северной Америке, не ответили на наши просьбы прокомментировать ситуацию." +"Мы связались с доктором Хосе Гарсией, известным по медицинскому блогу «Искусственная правда», чтобы получить его комментарии по поводу конфискаций. «Линия партии в данном вопросе не имеет смысла. Если эти модули получены незаконно, почему они представляют из себя оружие? И совсем не военного типа. Пальцы-бритвы, заостренные зубы. И их нельзя сделать в грязном подвале, все эти модули производятся фабрично. Здесь, в Мексике я встречаю такие у членов банд. Для таких модулей есть рынок, и производители КБМ наживаются на этом». Представители «Сверхразума», крупнейшего производителя КБМ в Северной Америке, не ответили на наши просьбы прокомментировать ситуацию." #: lang/json/snippet_from_json.py msgid "" @@ -201794,7 +197028,7 @@ msgstr "" "представитель производителя КБМ Сверхразум, сказал в пресс-релизе: «Это " "неудивительно. КБМ — это путь в будущее, и американцы знают это. Вскоре мы " "планируем выпустить новую волну КБМ-устройств. В июле следующего года наши " -"клиенты смогут подключаться через Вай-Фай к своим компьютерам и игровым " +"клиенты смогут подключаться через WiFI к своим компьютерам и игровым " "приставкам или получать удаленный доступ к своим радионяням и слышать всё, " "что делает их ребёнок. Полагаю, можно сказать: «Не переключайтесь»!»" @@ -201805,9 +197039,9 @@ msgid "" "strange but not especially dangerous, Homeland Security is \"looking at the " "connections now.\"" msgstr "" -"СЕРЬЁЗНОЕ ДЕЛО: В недавних докладах сообщается о большом увеличении краж из " -"похоронных домов и нападений на них в последние несколько недель. " -"Национальная безопасность описывает эти события как очень странные, но не " +"МОГИЛЬНЫЙ БИЗНЕС: В недавних докладах сообщается о большом увеличении краж " +"из похоронных домов и нападений на них в последние несколько недель. Служба " +"Национальной Безопасности описывает эти события как очень странные, но не " "особо опасные и «в настоящий момент ищет связи»." #: lang/json/snippet_from_json.py @@ -201826,8 +197060,8 @@ msgstr "" "ТЕЛЕПОРТАЦИЯ? Источник, работающий в крупном университете, пожелавший " "остаться неизвестным, на этой неделе связался с несколькими СМИ с " "невероятной историей, которая, тем не менее, подтверждается другими физиками" -" как «шокирующе возможная». Этот источник, с псевдонимом «Глубокий космос», " -"описал секретные правительственные эксперименты по телепортации, " +" как «шокирующе правдоподобная». Этот источник, с псевдонимом «Глубокий " +"космос», описал секретные правительственные эксперименты по телепортации, " "проводившиеся до 2008 года. «Когда я прочитала заголовок, усмехнулась», — " "сказала доктор Алиса Фейн, профессор физики Массачусетского технологического" " института. «Но я продолжила читать. Это сильно напоминает потерянную работу" @@ -201841,9 +197075,9 @@ msgid "" "\n" "\"There's no real advantage over conventional weaponry at this point,\" said analyst Mark Coza in an interview. \"I think they're rolling them out mainly to intimidate China, and in the hopes that field testing leads to further improvements.\"" msgstr "" -"ЛАЗЕРЫ — НОВЫЕ ИГРУШКИ? Главные разработчики в сфере обороны отметили сегодня во время демонстрации прототипа: «Мы продолжаем доработку прототипа, оружию пока не хватает мощности. но у него практически не ограниченный радиус поражения.» — цитата полковника Сильвера, представителя вооруженных сил. Лазерное оружие уже долгие годы используется в крупных масштабах, особенно в области защиты от поражающих боевых частей. Это первый случай, когда такое оружие может быть использовано непосредственно из человеческих рук.\n" +"ЛАЗЕРЫ — НОВЫЕ ИГРУШКИ? Главные разработчики в сфере обороны отметили сегодня во время демонстрации прототипа: «Мы продолжаем доработку прототипа, оружию пока не хватает мощности. но у него практически неограниченный радиус поражения.» — цитата полковника Сильвера, представителя вооруженных сил. Лазерное оружие уже долгие годы используется в широких масштабах, особенно в области защиты от поражающих боевых частей. Это первый случай, когда такое оружие может быть использовано непосредственно из человеческих рук.\n" "\n" -"Аналитик Марк Коза сообщил в интервью: «У лазерного оружия на данный момент нет никаких преимуществ по сравнению с традиционным. Я думаю, они выпускаются главным образом для того, чтобы предостеречь Китай, а также в расчёте на улучшения по результатам полевых испытаний»." +"Аналитик Марк Коза сообщил в интервью: «У лазерного оружия на данный момент нет никаких преимуществ по сравнению с традиционным. Я думаю, они выпускаются главным образом для того, чтобы предостеречь Китай, а также в расчёте на доработки по результатам полевых испытаний»." #: lang/json/snippet_from_json.py #, no-python-format @@ -201886,12 +197120,12 @@ msgid "" "and rival, China." msgstr "" "ОТ РЕДАКЦИИ: СМИ ОТБИЛИСЬ ОТ РУК И ПЕРЕШЛИ ВСЕ ГРАНИЦЫ. Мы больше не можем " -"доверять тому, что читаем, и всё из-за некоторых СМИ. Хотя наша газета и " -"прилагает огромные усилия для получения достоверных фактов, но наши коллеги " -"забыли, что значит быть журналистами и копируют широко распространённую ложь" -" как правду. Каков окончательный источник всей этой дезинформации? Можно " -"только догадываться, но я думаю, что нам нужно брать пример с нашего " -"крупнейшего международного торгового партнёра и конкурента — Китая." +"доверять тому, что читаем, и всё из-за некоторых представителей СМИ. Хотя " +"наша газета и прилагает огромные усилия для получения достоверных фактов, но" +" наши коллеги забыли, что значит быть журналистами, и тиражируют широко " +"распространённую ложь как правду. Каков источник всей этой дезинформации? " +"Можно только догадываться, но я думаю, что нам нужно присмотреться к нашему " +"крупнейшему международному торговому партнёру и конкуренту — Китаю." #: lang/json/snippet_from_json.py msgid "" @@ -201905,7 +197139,7 @@ msgstr "" "ОТ РЕДАКЦИИ: ДОМАШНЯЯ КОНСЕРВАЦИЯ ЕДЫ ВОЗВРАЩАЕТСЯ. С учётом того, что " "продовольственная безопасность под вопросом, я думаю, всем ясно, что пора " "сдуть пыль с бабушкиной книги рецептов и заново научиться консервировать " -"еду. Продуктовые магазину могут опустеть этой зимой и пора мариновать, " +"еду. Продуктовые магазину могут опустеть этой зимой, и пора мариновать, " "покуда маринад ещё свеж. В этом выпуске три наших автора поделятся " "воодушевляющими историями об открытии для себя радостей домашней " "консервации." @@ -201929,12 +197163,12 @@ msgstr "" "ощущаются до сих пор. Потерявшие самоидентификацию и наше наследие под " "давлением желания подавить белых мужчин и замолчать все их достижения, " "американские граждане ищут себя в наркотиках и насилии. Правительство машет " -"дубинкой налево и направо, выкрикивая обвинения, пытаясь найти луч света в " -"обстановке роста преступности и разваливающейся экономики, но ответ виден " -"любому, кто хочет увидеть его: корень всех бед в утрате нашей расовой и " -"сексуальной идентификации. Запомните мои слова: не пройдет и года, как " -"настанет момент расплаты, и придет он не от правительства или от какой-то " -"внешней силы, но из разбитого сердца Америки." +"дубинкой налево и направо, выкрикивая обвинения, пытаясь найти луч света, " +"пока растёт преступность и разваливается экономика, но ответ виден любому, " +"кто хочет увидеть его: корень всех бед в утрате нашей расовой и сексуальной " +"идентификации. Запомните мои слова: не пройдет и года, как настанет момент " +"расплаты, и придет он не от правительства или от какой-то внешней силы, но " +"из разбитого сердца Америки." #: lang/json/snippet_from_json.py msgid "" @@ -201943,10 +197177,10 @@ msgid "" "actors, what more does this adorable android hides under its smiling face? " "Our expert got the answer for you!" msgstr "" -"НОВОСТИ МИРА ТЕХНИКИ: Компания «Жуть» выпустила новинку — Бакалейный Робот! " -"Тысячи условий иначе-если, предзаписанный голос профессиональных актёров, " -"что же ещё скрывается под улыбкой этого милого андроида? У нашего эксперта " -"есть ответ!" +"НОВОСТИ МИРА ТЕХНИКИ: Компания «Сверхразум» выпустила новинку — Бакалейный " +"Робот! Тысячи условий иначе-если, голос, озвученный профессиональными " +"актёрами, что же ещё скрывается под улыбкой этого милого андроида? У нашего " +"эксперта есть ответ!" #: lang/json/snippet_from_json.py msgid "" @@ -201995,9 +197229,9 @@ msgstr "" "НОВЫЙ ДИЗАЙНЕРСКИЙ НАРКОТИК, О КОТОРОМ ПРЕДПОЧИТАЮТ МОЛЧАТЬ? Тревожные " "сообщения приходят к нам от источника в департаменте полиции Бостона. Ходят " "слухи о появлении на улицах нового наркотика. Подвинься, фентанил! Появилось" -" новое вещество, прозванное Запретный Город. Несмотря на более низкую " -"смертельную дозу, Запретный Город вызывает привыкание в разы сильнее героина" -" и метамфетаминов и быстро заполняет улицы." +" новое вещество, прозванное «Запретный Город». Несмотря на более низкую " +"смертельную дозу, «Запретный Город» вызывает привыкание в разы сильнее " +"героина и метамфетаминов и быстро заполняет улицы." #: lang/json/snippet_from_json.py msgid "" @@ -202005,9 +197239,9 @@ msgid "" "\n" "\"It's a real threat,\" said Huang. \"They are being taught to hate our freedom, and our technology. Mark my words: there is going to be a reckoning, and we need to be ready.\"" msgstr "" -"В БЫЛЫЕ ВРЕМЕНА. Мы поговорили с Дэном Хуангом, китайско-американским журналистом Нью-Йорк Таймс и автором бестселлера «В былые времена», рассказавшим о его трехлетней жизни с семьёй в Китае, который, по его словам, погружён в «вечную эскалацию антиамериканской восточной пропаганды».\n" +"КОГДА Я ОТБЫЛ СРОК. Мы поговорили с Дэном Хуангом, китайско-американским журналистом Нью-Йорк Таймс и автором бестселлера «Когда я отбыл срок», рассказавшим о трех годах жизни с семьёй в Китае, который, по его словам, погружён в «вечную эскалацию антиамериканской восточной пропаганды».\n" "\n" -"«Это реальная угроза», — сказал Хуанг. «Их учат ненавидеть нашу свободу и наши технологии. Запомните мои слова: грядёт война и мы должны быть готовы»." +"«Это реальная угроза», — сказал Хуанг. «Их учат ненавидеть нашу свободу и наши технологии. Запомните мои слова: грядёт война, и мы должны быть готовы»." #: lang/json/snippet_from_json.py msgid "" @@ -202026,8 +197260,8 @@ msgstr "" "Бьянчи в письме Миланскому Университету. «Я проведу свои исследования " "наедине, и когда я закончу, вы пожалеете о том дне, когда отвергли меня.» " "Над чем же работает доктор? Венерины мухоловки достаточно крупные, чтобы " -"угрожать местоной популяции котов. Сообщается, что его работа в университете" -" была приостановлена." +"угрожать местной популяции котов. Сообщается, что его работа в университете " +"была приостановлена." #: lang/json/snippet_from_json.py msgid "" @@ -202044,9 +197278,9 @@ msgstr "" "спутника, который упал в её розарии.] Это был обычный день для Маргариты. До" " тех пор, пока громовой грохот с крыльца почти не перевернул её дом. «Эта " "чертова штука упала прямо из космоса, говорю же вам», — сказала она " -"журналистам из нашего отдела паранормальных явлений. «Он пылал, раскалённый " -"докрасна, и сжёг мои призовые розы дотла». Правительство и ВВС США, как " -"обычно, отказались от комментариев." +"журналистам из нашего отдела паранормальных явлений. «Она пылала, " +"раскалённая докрасна, и сожгла мои призовые розы дотла». Правительство и ВВС" +" США, как обычно, отказались от комментариев." #: lang/json/snippet_from_json.py msgid "" @@ -202057,7 +197291,7 @@ msgid "" "while preparing for the worst. We cannot abandon key allies in the face of " "Chinese bullying.\"" msgstr "" -"ПОДДЕРЖАТЬ СТРАНЫ, КОТОРЫЕ ПОДДЕРЖИВАЮТ НАС — ПРЕЗИДЕНТ: Сегодня президент " +"ПОДДЕРЖИМ СТРАНЫ, КОТОРЫЕ ПОДДЕРЖИВАЮТ НАС — ПРЕЗИДЕНТ: Сегодня президент " "высказал неожиданное и непопулярное заявление, в котором не исключил " "введение военного призыва в мирное время в ответ на возрастающую китайскую " "агрессию в отношении Тайваня и Филиппин: «Мы должны надеяться за лучшее, " @@ -202074,7 +197308,7 @@ msgstr "" "УБЕЖИЩА ИСТОЩЕНЫ: ПРАВДА ИЛИ ВЫМЫСЕЛ? Неизвестный источник в правительстве " "сообщает, что пункты эвакуации истощены. Кроме того сообщается, что они «уже" " выполнили свою функцию по успокоению людей». Источник отказался от " -"дальнейшего комментирования и больше не выходил на связь." +"дальнейших комментариев и больше не выходил на связь." #: lang/json/snippet_from_json.py msgid "" @@ -202082,9 +197316,9 @@ msgid "" "\n" "Dr. Andrew Morton, a Harvard epidemiologist, has a different opinion. \"These people aren't drug users. They're coming from all walks of life. Sure, there's a predilection for people who already have some mental illness, but we're seeing perfectly normal people suddenly presenting with violent explosive behavior. I think the most likely cause is infectious: no other pattern would fit this widespread an outbreak.\"" msgstr "" -"ВРАЧИ БЬЮТ ТРЕВОГУ. Представитель госпиталя Маунт Синай сообщил нам: «У нас нет никаких сомнений. Госпитали по всей территории Соединенных Штатов перегружены из-за роста насилия с психиатрической подоплёкой, чаще всего бесконтрольного гнева и агрессивной паранойи. Наиболее вероятная причина кроется в новом уличном наркотике. Нам пока не удалось определить какие-либо сходства среди людей, подвергшихся этим эффектам».\n" +"ВРАЧИ БЬЮТ ТРЕВОГУ. Представитель госпиталя Маунт Синай сообщил нам: «У нас нет никаких сомнений. Госпитали по всей территории Соединенных Штатов перегружены из-за роста насилия с психиатрической подоплёкой, чаще всего бесконтрольного гнева и агрессивной паранойи. Наиболее вероятная причина кроется в новом уличном наркотике. Нам пока не удалось определить какого-либо сходства среди людей, подвергшихся этим эффектам».\n" "\n" -"Доктор Эндрю Мортон, эпидемиолог из Гарварда, имеет другое мнение: «Эти люди не употребляют наркотики. Поскольку это происходит во всех слоях населения. Конечно, в случае ранее существовавших проблем можно свалить всё на наличие склонности, но мы говорим об абсолютно нормальных людях, внезапно проявляющих агрессивное поведение. Я думаю, что мы имеем дело с инфекцией. Ничто больше не удовлетворяет так хорошо эпидемическому характеру распространения проблемы»." +"Доктор Эндрю Мортон, эпидемиолог из Гарварда, имеет другое мнение: «Эти люди не употребляют наркотики. Это происходит во всех слоях населения. Конечно, в случае ранее существовавших проблем можно свалить всё на наличие склонности, но мы говорим об абсолютно нормальных людях, внезапно проявляющих агрессивное поведение. Я думаю, что мы имеем дело с инфекцией. Ничто больше не может так точно соответствовать эпидемическому характеру распространения проблемы»." #: lang/json/snippet_from_json.py msgid "" @@ -202228,13 +197462,13 @@ msgid "" "hallucinogenic gases and puppets were used to spawn the widely circulated " "social media phenomenon." msgstr "" -"ЗА НАПАДЕНИЯМИ «МОНСТРОВ» СТОЯТ АГЕНТЫ ИЗ СРЕДНЕЙ АЗИИ. Источники " -"подтверждают с фотографическими доказательствами, что рост свидетельств о " -"появлении 'монстров' и нападений является делом рук азиатских агентов, " -"скорее всего из Китая или Северной Кореи. Правительство отказывается " -"реагировать на предоставленные по результатам нашего журналистского " -"расследования доказательства, указывающие на использование манекенов и " -"галлюциногенных газов для распространения обмана в СМИ и соц. сетях." +"ЗА НАПАДЕНИЯМИ «МОНСТРОВ» СТОЯТ АЗИАТСКИЕ АГЕНТЫ. Источники подтверждают с " +"фотографическими доказательствами, что рост свидетельств о появлении " +"'монстров' и нападений является делом рук азиатских агентов, скорее всего из" +" Китая или Северной Кореи. Правительство отказывается реагировать на " +"предоставленные по результатам нашего журналистского расследования " +"доказательства, указывающие на использование манекенов и галлюциногенных " +"газов для распространения обмана в СМИ и соц. сетях." #: lang/json/snippet_from_json.py msgid "" @@ -202252,7 +197486,7 @@ msgstr "" "беспорядки в самых бедствующих регионах Африки и Южной Америки, а также в " "отдельных частях Индонезии, Азии, Среднего Востока и Восточной Европы, " "только ухудшаются и растут. Профессор политологии доктор Эли Севидж " -"прокомментировала: «Очевидно, что виноваты соц. сети и СМИ. Экономисты уже " +"прокомментировала: «Очевидно, что виноваты соцсети и СМИ. Экономисты уже " "долгое время предупреждали, что нынешняя политика развитых стран загонять " "менее развитые в полурабское положение не сможет проводиться слишком долго, " "и теперь мы видим ее последствия»." @@ -202271,8 +197505,8 @@ msgstr "" "БЕСПОРЯДКИ В КАРЛХЭВЕНЕ. Беспорядки вспыхнули сегодня в супермаркете в " "Карлхэвене, штат Небраска. Свидетель, покинувший место событий, как только " "дошло до насилия, рассказал полиции, что все началось из-за споров за " -"последнюю коробку котлет для бургеров от Foodplace, но быстро переросло в " -"драку «безо всякой причины». Полиция, прибывшая на место событий, была " +"последнюю коробку котлет для бургеров от Сядь-и-поешь, но быстро переросло в" +" драку «безо всякой причины». Полиция, прибывшая на место событий, была " "вынуждена применить огонь на поражение в ответ на ситуацию, которую шериф " "Пол Редекопп описал как «Полный п*здец». Семь человек погибло и еще шесть " "находятся в критическом состоянии в главной больнице Карлхэвена." @@ -202292,16 +197526,16 @@ msgid "" "cleared things up.\" Stabilizing the riots required the dispatch of three " "National Guard units. Casualty reports are, as yet, unavailable." msgstr "" -"БЕСПОРЯДКИ В БЕНКСЛИ. Ирония ситуации была беспощадна сегодня в Бенксли, " -"штат Вермонт, где в местной кофейне вспыхнула драка, как сообщают, из-за " -"спора о аналогичных беспорядках в Карлхэвене, Вермонт. Меньше чем за час " -"беспорядки охватили весь центр города. Даниэль Луистон, официант, спасшийся " -"бегством с места происшествия, смог дать нам телефонное интервью. Вот что он" -" рассказал: «Такого я в жизни не видал. В один момент обычное утро пятницы, " -"а через минуту уже барная драка. Пока я выбрался оттуда, в ней уже " -"участвовал весь ресторан. Я вскочил в свою машину и умчался домой, а оттуда " -"вызвал полицию. Оказалось, они уже по уши в этих драках! Секретарь и я " -"связались с армией, они пришли и наконец-то навели порядок.» Для разгона " +"БЕСПОРЯДКИ В БЕНКСЛИ. Трудно переоценить ироничность сегодняшней истории из " +"Бенксли, штат Вермонт, где в местной кофейне вспыхнула драка, как сообщают, " +"из-за спора об аналогичных беспорядках в Карлхэвене, Вермонт. Меньше чем за " +"час беспорядки охватили весь центр города. Даниэль Луистон, официант, " +"спасшийся бегством с места происшествия, смог дать нам телефонное интервью. " +"Вот что он рассказал: «Такого я в жизни не видал. В один момент обычное утро" +" пятницы, а через минуту уже барная драка. Когда я выбрался оттуда, в ней " +"уже участвовал весь ресторан. Я вскочил в свою машину и умчался домой, а " +"оттуда вызвал полицию. Оказалось, они уже по уши в этих драках! Секретарь и " +"я связались с армией, они пришли и наконец-то навели порядок.» Для разгона " "беспорядков потребовалось три подразделения Национальной гвардии. Число " "пострадавших пока остается неизвестным." @@ -202322,14 +197556,14 @@ msgstr "" "ЭКОНОМИЧЕСКИЕ БЕСПОРЯДКИ РАЗГОРАЮТСЯ В СОЕДИНЕННЫХ ШТАТАХ. Глобальные " "экономические беспорядки, начавшиеся в Африке и Южной Америке, " "распространяются на континентальную часть Соединенных Штатов. За выходные " -"было зарегистрировано более тридцати беспорядков, в основном в более бедных " -"районах среднего Запада и Юга. «Я не думаю, что это связано с тем, что " -"произошло в Карлхейвене или Бэнксли», — заявил представитель Национальной " -"гвардии в ответ на запрос СМИ — «Там были единичные инциденты, в то время " -"как это явно скоординированные действия». Полиция и Национальная гвардия " -"сдерживают беспорядки по мере их возникновения. Президент Освальд в своей " -"речи в воскресенье вечером напомнил американцам о сплочённости. «Враги " -"расположились у наших границ, наблюдая за признаками слабости. Сейчас не " +"было зарегистрировано более тридцати случаев беспорядков, в основном в более" +" бедных районах среднего Запада и Юга. «Я не думаю, что это связано с тем, " +"что произошло в Карлхейвене или Бэнксли», — заявил представитель " +"Национальной гвардии в ответ на запрос СМИ — «Там были единичные инциденты, " +"в то время как это явно скоординированные действия». Полиция и Национальная " +"гвардия сдерживают беспорядки по мере их возникновения. Президент Освальд в " +"своей речи в воскресенье вечером напомнил американцам о сплочённости. «Враги" +" расположились у наших границ, наблюдая за признаками слабости. Сейчас не " "время стрелять себе в ноги»." #: lang/json/snippet_from_json.py @@ -202423,8 +197657,8 @@ msgid "" "character,\" replied the spokesperson, \"and you're confused by a bit of " "home grown CGI showing zombies?\"" msgstr "" -"ГЛАВВРАЧ США: МЁРТВЫЕ ОСТАЮТСЯ МЁРТВЫМИ. «Истории о мёртвых, восставших " -"вновь, не имеют под собой никакого основания и совершенно невозможны с " +"ГЛАВВРАЧ США: МЁРТВЫЕ ОСТАЮТСЯ МЁРТВЫМИ. «Истории о мёртвых, вернувшихся к " +"жизни, не имеют под собой никакого основания и совершенно невозможны с " "медицинской точки зрения», — сообщил министр здравоохранения страны на " "сегодняшней пресс-конференции, — «Это очевидная мистификация от кого-то, кто" " хочет заполучить свои пять минут славы или просто напугать людей в эти уже " @@ -202432,7 +197666,7 @@ msgstr "" "несколько лет назад?». Критики указывают на вирусные видео, в которых " "получившие явно смертельные раны участники беспорядков встают и продолжают " "бунтовать. «И полдня не пройдет, как кто-нибудь сделает дип-фейк видео, где " -"я похож на персонажа Звездных Войн, или же вы испугались нарисованного " +"я похож на персонажа Звездных Войн, а вы испугались нарисованного " "компьютерного зомби?» — прокомментировал их министр здравоохранения." #: lang/json/snippet_from_json.py @@ -202532,15 +197766,15 @@ msgid "" "faceless mind-controlled horde. This is not science fiction, these are our " "friends and family.\"" msgstr "" -"ПРАВИТЕЛЬСТВО ОПРОВЕРГАЕТ 'КОНТРОЛЬ РАЗУМА'. На фоне слухов о том, что " -"беспорядки в стране и во всём мире являются результатом действия химического" -" возбудителя контроля разума, АНБ провело сегодня пресс-конференцию. «Это не" -" контроль разума. Эти мятежники — люди, нормальные люди, управляемые только " -"лихорадочным насилием, которое мы никогда раньше не видели», — заявил " -"взволнованный представитель. — «Хотя в некоторых местах для сдерживания " -"мятежников требуется чрезмерная сила, мы относимся к ним как к людям, а не " -"как к какой-то безликой орде, контролируемой разумом. Это не научная " -"фантастика, это наши друзья и знакомые»." +"ПРАВИТЕЛЬСТВО ОПРОВЕРГАЕТ СЛУХИ О 'КОНТРОЛЕ РАЗУМА'. На фоне слухов о том, " +"что беспорядки в стране и во всём мире являются результатом действия " +"химического возбудителя контроля разума, АНБ провело сегодня пресс-" +"конференцию. «Это не контроль разума. Эти мятежники — люди, нормальные люди," +" управляемые только лихорадочным насилием, которое мы никогда раньше не " +"видели», — заявил взволнованный представитель. — «Хотя в некоторых местах " +"для сдерживания мятежников требуется чрезмерная сила, мы относимся к ним как" +" к людям, а не как к какой-то безликой орде, чей разум под чьим-то " +"контролем. Это не научная фантастика, это наши друзья и знакомые»." #: lang/json/snippet_from_json.py msgid "" @@ -202635,7 +197869,7 @@ msgstr "" "доктор Эндрю Мортон, эпидемиолог и наш главный эксперт в области медицинских" " причин для беспорядков. «А теперь я верю во что угодно. Хотя я и не думаю, " "что такое возможно, магнитное оружие, влияющее на мозговые волны и " -"превращающее людей в кровожадных психопатов кажется мне более достоверным " +"превращающее людей в кровожадных психопатов, кажется мне более достоверным " "объяснением, чем многие другие. Я определенно предпочту его появившейся " "несколько дней назад теории о 'зомби'.»" @@ -202686,7 +197920,7 @@ msgstr "" "любой атаки со стороны гражданского лица, и ее выслали для использования " "вместе с пехотой, вооруженной перцовыми патронами и травматическими " "боеприпасами для подавления беспорядков. «Это тяжелая битва, но мы все еще " -"удерживаем ситуация под контролем», - сказал нам лейтенант Шон Бхатти из " +"удерживаем ситуацию под контролем», - сказал нам лейтенант Шон Бхатти из " "своего полностью закрытого доспеха. - «Я могу справиться с дюжиной " "мятежников в этой броне, и меня прикрывает десяток человек.» Видео силовой " "брони в действии доступно на нашем сайте." @@ -202705,9 +197939,9 @@ msgid "" "Afghanistan, and I will use whatever I can to keep them under control.\"" msgstr "" "СТРЕЛЯТЬ НА ПОРАЖЕНИЕ? Полиция и вооруженные силы отрицают использование " -"боевого оружия при подавлении беспорядков, но полученным нами сообщения не " +"боевого оружия при подавлении беспорядков, но полученные нами сообщения не " "сходятся с этими заявлениями. От записей тел с огнестрельными ранами до " -"ужасающих обращений представителей армии, многое ясно указывает, что по " +"ужасающих заявлений представителей армии, многое ясно указывает, что по " "крайней мере в нескольких местах для поддержки перегруженных армейских " "подразделений были развернуты боевые турели, управляемые полноценным ИИ с " "блоком распознавания угроз. Мы смогли связаться с мэром Монпелье, штат " @@ -202790,7 +198024,7 @@ msgstr "" "которые МЧС создало как раз для подобных ситуаций, мы подавляем беспорядки, " "не подвергая риску мирное население.» Гаррисон отказалась комментировать " "широко распространенные слухи о том, что бунтующие находятся под " -"воздействием биологического агента, вызывающего психоз." +"воздействием биологического оружия, вызывающего психоз." #: lang/json/snippet_from_json.py msgid "" @@ -202823,9 +198057,9 @@ msgstr "" " правительству Соединенных Штатов. «Мои верные род-айлендцы отступают на " "острова Аквиднек и Конаникут», - этим утром заявил в своем публичном " "обращении губернатор Алекс Акервит,- «Правительство Соединенных Штатов " -"подвело нас. Лябая их попытка вмешательства будет встречена военным ответом " -"со стороны правительства в Наррагансетте. Честно говоря, они и так настолько" -" в заднице, что им не до нас.»" +"подвело нас. Любая попытка вмешательства будет встречена военным ответом со " +"стороны правительства в Наррагансетте. Честно говоря, они и так настолько в " +"заднице, что им не до нас.»" #: lang/json/snippet_from_json.py msgid "" @@ -202836,12 +198070,12 @@ msgid "" "population centers, but aggravated locally by the very high number of " "bombing targets over the last two days." msgstr "" -"ИНФОРМИРОВАНИЕ ОБЩЕСТВЕННОСТИ: «Помощь задерживается». Из-за сражений " -"военных на границе Зоны бедствия Новой Англии ожидается отсрочка эвакуации " -"гражданского населения. Гражданам придётся самостоятельно обеспечивать себя " -"в течение ближайших недель. Источники замечают, что проблема широко " -"распространена во всех крупных населенных пунктах, и ситуация ухудшается из-" -"за массированных бомбардировок в последние два дня." +"ИНФОРМИРОВАНИЕ ОБЩЕСТВЕННОСТИ: «Помощь задерживается». Из-за сражений на " +"границе Зоны бедствия Новой Англии ожидается отсрочка эвакуации гражданского" +" населения. Гражданам придётся самостоятельно обеспечивать себя в течение " +"ближайших недель. Источники замечают, что проблема широко распространена во " +"всех крупных населенных пунктах, и ситуация ухудшается из-за массированных " +"бомбардировок в последние два дня." #: lang/json/snippet_from_json.py msgid "" @@ -202860,8 +198094,8 @@ msgstr "" "считается, что на этих территориях не осталось выживших. Данное решение " "следует за аналогичными созданиями карантинных зон на Среднем западе. " "Сотовые и наземные линии связи были перегружены большим числом людей, " -"пытающихся связаться с близкими. Рекомендуется избегать использовать эти " -"методы связи, кроме самых крайних случаев." +"пытающихся связаться с близкими. Рекомендуется избегать использования этих " +"методов связи, кроме самых крайних случаев." #: lang/json/snippet_from_json.py msgid "" @@ -202953,8 +198187,8 @@ msgstr "" "стратегического размещения минных полей у ключевых мостов, чтобы поместить " "подверженные беспорядкам области в карантин. «На местах будут военные, чтобы" " помочь всем беженцам из опасных районов. Мы убедительно просим граждан " -"содействовать всем военным распоряжениям и любой ценой избегать областей в " -"карантине, пока не будет восстановлен порядок.»" +"содействовать всем указаниям военных и любой ценой избегать областей " +"карантина, пока не будет восстановлен порядок.»" #: lang/json/snippet_from_json.py msgid "" @@ -202967,8 +198201,8 @@ msgid "" "\"These are the end times.\"" msgstr "" "ПОРТАЛЫ? Сообщения о светящихся проходах, открывающихся по всей территории " -"Соединенных Штатов были подтверждены нашими корреспондентами. Один из наших " -"репортеров засвидетельствовал появление существа размером со здание, " +"Соединенных Штатов, были подтверждены нашими корреспондентами. Один из наших" +" репортеров засвидетельствовал появление существа размером со здание, " "существо было атаковано всем боезапасом вертолета Апач и продолжило " "сражаться. Не удалось связаться с официальными представителями " "правительства, но местный пастор сообщила нам на месте, цитируем ее: «Больше" @@ -202995,7 +198229,7 @@ msgstr "" "ПОБЕДА ЗА КИТАЕМ. Император Великого Китая Цанг Гу Йен лично прибыл в " "Бурлингтог, штат Вермонт, чтобы издать прокламацию, что Америка, как и все " "остальные страны, теперь является частью Новой Великой Китайской Империи. " -"Свобода пала. Боритесь с его ордами пока еще можете!" +"Свобода пала. Боритесь с его ордами, пока еще можете!" #: lang/json/snippet_from_json.py msgid "" @@ -203030,10 +198264,10 @@ msgid "" "out. kssht." msgstr "" "пшшш. Синяя Сойка, это Чёрная Роза, получили снабжение для вас, идём по " -"вектору 36, как обстановка в LZ? пшшш. Чёрная Роза, это Синяя Сойка, почему " -"так долго? В LZ жарко и небезопасно, патронов нет, идём в штыки, сбрасывайте" -" по своему усмотрению, приём. пшшш. Вас понял, держитесь, Чёрная Роза, конец" -" связи. пшшш." +"вектору 36, как обстановка в зоне высадки? пшшш. Чёрная Роза, это Синяя " +"Сойка, почему так долго? В зоне высадки жарко и небезопасно, патронов нет, " +"идём в штыки, сбрасывайте по своему усмотрению, приём. пшшш. Вас понял, " +"держитесь, Чёрная Роза, конец связи. пшшш." #: lang/json/snippet_from_json.py msgid "" @@ -203041,9 +198275,9 @@ msgid "" "Can't stay in the studio any longer, station is being rewired to military " "frequencies for automatic broadcast. Stay safe, and bless you, people." msgstr "" -"Кто бы это ни слышал, это будет наша последнее сообщение. Удачи вам. Не могу" -" больше оставаться в студии, станцию перенастраивают под военные частоты для" -" автоматического вещания. Берегите себя, люди, и храни вас Бог." +"Всем, кто еще слушает, это будет наша последнее сообщение. Удачи вам. Не " +"могу больше оставаться в студии, станцию перенастраивают под военные частоты" +" для автоматического вещания. Берегите себя, люди, и храни вас Бог." #: lang/json/snippet_from_json.py msgid "" @@ -203057,8 +198291,8 @@ msgstr "" "Вы слушаете KDDA из Бостона, я Дженни Сандерс со специальным экстренным " "выпуском новостей. Нам сообщают о перекрытии дорог военными и полицией на " "шоссе 90, 91, 93 и 95. Объездные маршруты не предлагаются. Поскольку обычные" -" дороги опасны, настоятельно рекомендуется избегать на машине крупных " -"магистралей и городов." +" дороги опасны, настоятельно рекомендуется избегать проезда через крупные " +"магистрали и городов." #: lang/json/snippet_from_json.py msgid "" @@ -203068,8 +198302,8 @@ msgid "" " military or police blockades, even for assistance. I repeat, do not " "approach military or police blockades, even for assistance." msgstr "" -"Эвакуируемым городам рекомендуется проследовать в ближайшее эвакуационное " -"убежище и ждать, пока вас не заберёт транспорт МЧС. Не вступайте в драку с " +"Жителям эвакуируемых районов рекомендуется проследовать в ближайшее " +"эвакуационное убежище и ожидать транспорт МЧС. Не вступайте в драку с " "бунтовщиками. Чтобы вас не спутали с бунтовщиком, не приближайтесь к военным" " или полицейским баррикадам, даже в поисках помощи. Я повторяю, не " "приближайтесь к военным или полицейским баррикадам, даже в поисках помощи." @@ -203144,7 +198378,7 @@ msgid "" msgstr "" "…в воде чёрная слизь! Наркота и хрен знает что ещё, правительство хочет " "сделать вас тупыми и послушными! Народ, очнитесь. Они сатанинское отродье! " -"Это Алан Джуэлс с шоу АД, мы скоро вернёмся после перерыва." +"Это Алан Джуэлс с шоу Эй-Джей, мы вернёмся после короткого перерыва." #: lang/json/snippet_from_json.py msgid "" @@ -203154,11 +198388,11 @@ msgid "" "you're there and listening, barricade or lay low until they go by. There's " "another horde forming out of Metro Bay." msgstr "" -"Это Эскорт, частота один-пятьдесят-пять, девятнадцать-тысяча, вот ваш отчёт." -" Помолитесь за меня, уже …пшпшшш… дней после Армагеддона, и я всё ещё " -"борюсь. 49-е направились на юг к Норфолку, так что если вы там и слышите " -"меня, забаррикадируйтесь или лежите тихо, пока они не пройдут. Ещё одна орда" -" собирается в бостонской бухте." +"Это Эскорт, частота один-пятьдесят-пять, девятнадцать тысяч, докладываю. " +"Помолитесь за меня, уже …пшпшшш… дней после Армагеддона, и я всё ещё борюсь." +" 49-е направились на юг к Норфолку, так что если вы там и слышите меня, " +"забаррикадируйтесь или лежите тихо, пока они не пройдут. Ещё одна орда " +"собирается в бостонской бухте." #: lang/json/snippet_from_json.py msgid "" @@ -203215,9 +198449,9 @@ msgstr "" "Это не учения. Немедленно ищите убежище. Подтверждено несколько ракетных " "пусков по …пшпшшш… Немедленно ищите убежище. Если общественное убежище " "недоступно, альтернативные убежища — подвалы, места под лестницами или " -"центральные комнаты без окон. Убедитесь, что у вас есть защита от падающих " -"обломков. Убедитесь, что у вас есть еда и вода минимум на неделю. Повторяю. " -"Немедленно ищите убежище." +"центральные комнаты без окон. Убедитесь, что у вы защищены от падающих " +"обломков, что у вас есть еда и вода минимум на неделю. Повторяю. Немедленно " +"ищите убежище." #: lang/json/snippet_from_json.py msgid "" @@ -203230,8 +198464,8 @@ msgstr "" "ззззшшжзззжжзз Вы устали вечно терять свои старые унылые солнечные очки? " "Устали переплачивать за очки, которые развалятся на следующий день? Что ж, " "забудьте об этом с новыми Компенсаторами света от компании жзжшшшзз и " -"спаситесь от солнца. Заказывайте прямо сейчас 12 платежами по $1200.99, и мы" -" бесплатно доставим вам ззшшззсз Глазобота." +"спаситесь от солнца. Заказывайте прямо сейчас с 12 платежами по $1200.99, и " +"мы бесплатно доставим вам ззшшззсз робоглаза." #: lang/json/snippet_from_json.py msgid "" @@ -203240,8 +198474,8 @@ msgid "" "quiet. Do not, I repeat, do not approach." msgstr "" "Это WSSA-233, мы вещаем из города . Мы заколотили все двери и окна. " -"Снаружи их целая толпа, мы стараемся держаться тихо. Не, я повторяю, НЕ " -"приближайтесь." +"Снаружи их целая толпа, мы стараемся держаться тихо. Не приближайтесь, я " +"повторяю, НЕ приближайтесь." #: lang/json/snippet_from_json.py msgid "" @@ -203266,7 +198500,7 @@ msgstr "" "Судно США Орёл Свободы всем позывным. Проводится операция Океан 11. " "Повторяю. Проводится операция Океан 11. Сэр, нас должны слышать около 150 " "групп, но ответа нет уже буквально нескольких часов. Их транспондеры " -"потухли, как свечки на ветру. И как мы вообще можем обезопасить порт, чтоб " +"потухли, как свечки на ветру. У нас вообще есть безопасный порт, чтоб хоть " "кого-то принять на борт?" #: lang/json/snippet_from_json.py @@ -203299,7 +198533,7 @@ msgstr "Как тебя зовут?" #: lang/json/snippet_from_json.py msgid "I thought you were my friend." -msgstr "Я думал, ты был мне другом." +msgstr "Мне казалось, мы друзья." #: lang/json/snippet_from_json.py msgid "How are you today?" @@ -203311,7 +198545,7 @@ msgstr "Заткнись! Не ври мне." #: lang/json/snippet_from_json.py src/iuse.cpp msgid "Why would you do that?" -msgstr "Зачем вы это делаете?" +msgstr "Зачем ты это делаеim?" #: lang/json/snippet_from_json.py msgid "Please, don't go." @@ -203725,7 +198959,7 @@ msgid "" "will receive additional hazardous pay and time off. Please go to the " "engineering office on level 3 if you are interested." msgstr "" -"РУКИ ИЗ ТОГО МЕСТА? Инженерному отделу всегда требуется пара рабочих рук, " +"РУКИ ИЗ ПЛЕЧ? Инженерному отделу всегда требуется пара рабочих рук, " "помогающих содержать наш дом в порядке! В качестве поощрения все, работающие" " на 3 уровне, получат надбавку за вредность и дополнительные отпуска. " "Пожалуйста, если вы заинтересованы, пройдите в инженерный отдел на 3 уровне." @@ -203739,9 +198973,9 @@ msgid "" msgstr "" "ХОТИТЕ ПРОДОЛЖИТЬ ОБУЧЕНИЕ? Наши образовательные учреждения оборудованы по " "высшему классу и предлагают курсы для слушателей любого возраста. Множество " -"рабочих мест откроется для тех, кто захочет освоить новое ремесло. Наши " -"библиотеки и исследовательские лаборатории всегда дадут пищу для самого " -"прожорливого ума!" +"карьерных возможностей откроется для тех, кто захочет освоить новое ремесло." +" Наши библиотеки и исследовательские лаборатории всегда дадут пищу для " +"самого прожорливого ума!" #: lang/json/snippet_from_json.py msgid "" @@ -203845,7 +199079,7 @@ msgstr "Вы мечтаете об потрескивающем огне…" #: lang/json/snippet_from_json.py msgid "You shiver. A fire would be great right now." -msgstr "Вы дрожите. Огонь был бы прекрасной вещью прямо сейчас." +msgstr "Вы дрожите. Огонь прямо сейчас - то, что надо бы." #: lang/json/snippet_from_json.py msgid "You think of randomly lighting a fire, but decide against it." @@ -203869,7 +199103,7 @@ msgstr "Вы облизываете свои губы, в трепетном о #: lang/json/snippet_from_json.py msgid "By the blade or by the gun? How will you kill this time?" -msgstr "От огнестрела-ль, иль от клинка? Как ты будешь убивать на этот раз?" +msgstr "От пули ли иль от клинка? Как ты будешь убивать на этот раз?" #: lang/json/snippet_from_json.py msgid "Ahh, how delightful would it be to kill something." @@ -203940,7 +199174,7 @@ msgstr "Вы улыбаетесь." #: lang/json/snippet_from_json.py msgid "You feel tension leave your body as your need to kill is satisfied." msgstr "" -"Напряжение оставляет ваше тело, когда вы утоляете свою жажду в убийстве." +"Напряжение оставляет ваше тело, когда вы утоляете свою жажду убийства." #: lang/json/snippet_from_json.py msgid "You feel much better now." @@ -204060,7 +199294,7 @@ msgstr "" "ЗАПИСЬ 54:\n" "Я заметил пару людей, отламывающих кусок вертикальной стены в той комнате. Сделаю вид, что ничего не видел. Не думаю, что яйцеголовые заметят, что маленький кусочек куда-то пропал. Шли б они все.\n" "ЗАПИСЬ 55:\n" -"Что ж, теперь археологи не вылезают оттуда и взяли несколько проводников. Вряд ли они похожи на Индиану Джонса. Сомневаюсь даже, что они когда-либо опускались ниже чем на шесть метров. Ненавижу снимать людей с работы, чтобы нянчиться с учёными, но если они себе что-то сломают, нас закроют на хрен знает сколько.\n" +"Что ж, теперь археологи не вылезают оттуда и взяли несколько проводников. Они не особо похожи на Индиану Джонса. Сомневаюсь даже, что они когда-либо опускались ниже чем на шесть метров. Ненавижу снимать людей с работы, чтобы нянчиться с учёными, но если они себе что-то сломают, нас закроют на хрен знает сколько.\n" "ЗАПИСЬ 58:\n" "Они привезли ЕЩЁ ОДНУ КОМАНДУ!? Твою ж мать, это всего лишь парочка наскальных рисунков! Я понимаю, что это один из тех случаев, что выпадают лишь раз в жизни, но неужели они не могут справиться сами?" @@ -204074,7 +199308,7 @@ msgid "" msgstr "" "ШАХТЁРСКИЕ РАБОТЫ ПРИОСТАНОВЛЕНЫ. УПРАВЛЕНИЕ ПЕРЕДАНО ПРОЕКТУ АМИГАРА УКАЗ №2:07В\n" "ЗВУКОВОЕ СКАНИРОВАНИЕ РАЗЛОМА УКАЗАЛО ГЛУБИНУ 30.09 КМ\n" -"ОБНАРУЖЕН УРОН ЛИНИИ СБРОСА. РАБОТНИКИ ШАХТЫ АРЕСТОВАНЫ ЗА НАРУШЕНИЕ РАСПОРЯЖЕНИЯ №87.08 И ПЕРЕВЕДЕНЫ В ЛАБОРАТОРИЮ 89-В ДЛЯ ИСПОЛЬЗОВАНИЯ В КАЧЕСТВЕ ПОДОПЫТНЫХ\n" +"ОБНАРУЖЕН УРОН ЛИНИИ РАЗЛОМА. РАБОТНИКИ ШАХТЫ АРЕСТОВАНЫ ЗА НАРУШЕНИЕ РАСПОРЯЖЕНИЯ №87.08 И ПЕРЕВЕДЕНЫ В ЛАБОРАТОРИЮ 89-В ДЛЯ ИСПОЛЬЗОВАНИЯ В КАЧЕСТВЕ ПОДОПЫТНЫХ\n" "КАЧЕСТВО РАЗЛОМА НЕ НАРУШЕНО\n" "НАЧАЛО СТАНДАРТНЫХ ВИБРАЦИОННЫХ ИСПЫТАНИЙ…" @@ -204118,6 +199352,42 @@ msgstr "" "Джейн и Майклу-младшему, что я люблю их. И передайте, что мне очень жаль. " "Генерал Майкл Бейкер" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "ЭЙ, КРЕТИНЫ!" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "ЭЙ, ДУБОЛОМЫ!" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "ЭЙ, ПРИДУРКИ!" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "ЭЙ, ХОДЯЧИЕ!" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "ЭЙ, ЗОМБИ!" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "ПОДХОДИТЕ ПОБЛИЖЕ!" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "ЭТО ЛОВУШКА!" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "ЕСЛИ ТЫ НЕ ЗОМБИ, ДЕРЖИСЬ ПОДАЛЬШЕ!" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "ЕСЛИ ТЫ НЕ ЗОМБИ, БЕГИ ОТСЮДА СО ВСЕХ НОГ!" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "«МЫ БЫЛИ ПРАВЫ ПРАВИТЕЛЬСТВО СДЕЛАЛО ЭТО»" @@ -204310,7 +199580,7 @@ msgid "" " They think they're the nobles of the 21st century, the prigs.\"" msgstr "" "«Они все прячутся на нефтяной вышке, я услышал это сам по радио в АМ " -"диапазоне. Они думают, что они дворяне 21-го века, педанты.»" +"диапазоне. Они думают, что они дворяне 21-го века, сволочи.»" #: lang/json/snippet_from_json.py msgid "" @@ -204504,7 +199774,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"I don't have enough time to double tap. You don't either.\"" -msgstr "«Мне не хватает времени для двойного нажатия. И тебе тоже.»" +msgstr "«Мне не хватает времени для двойного выстрела в голову. И тебе тоже.»" #: lang/json/snippet_from_json.py msgid "\"PINK TALL ONES RUN RUN RUN RUN RUN\"" @@ -204567,7 +199837,7 @@ msgstr "«Я един с растениями.»" #: lang/json/snippet_from_json.py msgid "\"Broadsword! Yeah!\"" -msgstr "«Палаш! Да!»" +msgstr "«Широкий меч! Да!»" #: lang/json/snippet_from_json.py msgid "" @@ -204713,7 +199983,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"Guns too loud. Crossbow too long. Running is best.\"" -msgstr "«Пушки слишком громкие. Арбалеты слишком долгие. Бег — лучше всего.»" +msgstr "" +"«Пушки слишком громкие. Арбалеты слишком медленные. Бег — лучше всего.»" #: lang/json/snippet_from_json.py #, no-python-format @@ -204723,7 +199994,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"Crawled in through the vents. Whole office building is infested.\"" -msgstr "«Пролез через вентиляцию. Всё офисное здание инфицировано.»" +msgstr "«Пролез через вентиляцию. Всё офисное здание забито мертвяками.»" #: lang/json/snippet_from_json.py msgid "" @@ -204795,7 +200066,7 @@ msgid "" "subject! Each and every one of 'em!\"" msgstr "" "«Неудивительно, что все лагеря оказались захвачены, они же держали зомби в " -"качестве подопытных! Абсолютно все!»" +"качестве подопытных! Абсолютно в каждом!»" #: lang/json/snippet_from_json.py msgid "\"I just realized how damn demented those fliers are.\"" @@ -204808,7 +200079,8 @@ msgstr "«Я предлагаю ввести новую валюту: 9-мм п #: lang/json/snippet_from_json.py msgid "\"My skin is crawling and I teleport every few minutes… what is going o\"" msgstr "" -"«С меня сползает кожа и я телепортируюсь каждые несколько минут… Что прои»" +"«У меня постоянно мурашки по коже, и я телепортируюсь каждые несколько " +"минут… Что прои»" #: lang/json/snippet_from_json.py msgid "\"You can't see them through the smoke but they can't either.\"" @@ -204816,7 +200088,7 @@ msgstr "«Ты не можешь видеть их сквозь дым, но и #: lang/json/snippet_from_json.py msgid "\"There's gotta be a better use of all this rebar…\"" -msgstr "«Должен быть более правильный способ использовать всю эту арматуру…»" +msgstr "«Должен быть способ получше использовать всю эту арматуру…»" #: lang/json/snippet_from_json.py msgid "" @@ -204866,7 +200138,7 @@ msgid "" "\"I'm starting to feel bad about disabling all these turrets and stealing " "their ammunition.\"" msgstr "" -"«Меня начинает мучать совесть, когда я отключаю те турели и забираю их " +"«Меня начинает мучать совесть, когда я отключаю те турели и краду их " "патроны.»" #: lang/json/snippet_from_json.py @@ -204958,7 +200230,7 @@ msgstr "«Я никогда не был особо уверенным. Поэт #: lang/json/snippet_from_json.py msgid "\"FIRE BAD. NOW NAKED. PLEASE HELP.\"" -msgstr "«СИЛЬНО ОБГОРЕЛ. ТЕПЕРЬ ГОЛЫЙ. ПОЖАЛУЙСТА, ПОМОГИТЕ.»" +msgstr "«СИЛЬНО ПОЖАР. ТЕПЕРЬ ГОЛЫЙ. ПОЖАЛУЙСТА, ПОМОГИТЕ.»" #: lang/json/snippet_from_json.py msgid "" @@ -205048,7 +200320,7 @@ msgstr "«слабя, ик, скра»" #: lang/json/snippet_from_json.py msgid "\"IT'S BURIED! THE TEMPLE IS BURIED!\"" -msgstr "«ПОХОРОНЕН! ХРАМ ПОХОРОНЕН!»" +msgstr "«ПОД ЗЕМЛЁЙ! ХРАМ ПОД ЗЕМЛЁЙ!»" #: lang/json/snippet_from_json.py msgid "" @@ -205080,12 +200352,13 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" msgstr "" "«Планирую однажды осесть где-нибудь, остепениться. Большой прелестный " "фруктовый сад, пара друзей или будущих членов семьи, с которыми хорошо " -"проводить время, а также моя личная армия зомби-рабов, которая будет " -"охранять всё это.»" +"проводить время, а также моя система укреплений, которая будет обеспечивать " +"нашу безопасность.»" #: lang/json/snippet_from_json.py msgid "" @@ -205154,7 +200427,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"Hey, what happened to my dad's airboat?!\"" -msgstr "«Эй, что произошло с лодкой моего папы?!»" +msgstr "«Эй, что произошло с глиссером моего папы?!»" #: lang/json/snippet_from_json.py msgid "\"Reading is good! Never stop reading. Read EVERYTHING.\"" @@ -205244,8 +200517,8 @@ msgid "" "\"Check out my cooking show on The Television! Making Mannwurst sausages " "out of some of those assholes who tried to raid my kitchen earlier…\"" msgstr "" -"«Посмотрите моё кулинарное шоу по Телевизору! Готовим колбаски из тех " -"мудаков, кто попытался ограбить мою кухню…»" +"«Посмотрите моё кулинарное шоу по Телевизору! Готовим колбаски из мудаков, " +"которые попытались ограбить мою кухню…»" #: lang/json/snippet_from_json.py msgid "" @@ -205375,7 +200648,7 @@ msgid "" "arms! he looked rather cross\"" msgstr "" "«мой друг слетел с катушек нахрен и сожрал свои руки, а потом руки своей " -"сестры! он выглядел отвратительно!»" +"сестры! он выглядел так злобно!»" #: lang/json/snippet_from_json.py msgid "\"Starting today, the hallucinations are my only friends.\"" @@ -205407,11 +200680,11 @@ msgstr "«Эй, дружище! Не все каннибалы едят мясо #: lang/json/snippet_from_json.py msgid "\"ay why aint my bullets fuckin explodin\"" -msgstr "«Эй, почему мои пули взрываются нахрен»" +msgstr "«Эй, почему мои пули не взрываются нахрен»" #: lang/json/snippet_from_json.py msgid "\"Those Fiktok clan people picked this place clean… no food…\"" -msgstr "«Эти люди из клана Фиктока полностью вычистили это место… Еды нет…»" +msgstr "«Эти люди из клана Фикток полностью вычистили это место… Еды нет…»" #: lang/json/snippet_from_json.py msgid "\"The fewer people in New England, the stronger we'll become.\"" @@ -205511,8 +200784,8 @@ msgid "" "\"School bus with solar panels = TRUST. Gave us berries and seeds, we were " "out of food\"" msgstr "" -"«Школьный автобус на солнечных батареях = НАДЕЖДА. Он дал нам ягоды и " -"семена, мы были без еды»" +"«Школьный автобус на солнечных батареях = НАДЕЖДА. Дали нам ягоды и семена, " +"мы были без еды»" #: lang/json/snippet_from_json.py msgid "\"d o nThelp scho Ol buss makE seeeedS ARe FUNGUS!! !\"" @@ -205547,7 +200820,7 @@ msgid "" "New England before it was quarantined. I can only hope there are no " "zombies, as we do have here, in the city she flew to.\"" msgstr "" -"«Лиза всегда обожала спорт. Слава Богу, Мировой Чемпионат по Атлетике в " +"«Лиза всегда обожала спорт. Слава Богу, Всемирный чемпионат по атлетике в " "Харране начался ещё до вспышки, так что она покинула Новую Англию до " "карантина. Я только надеюсь, что в городе, куда она улетела, нет зомби.»" @@ -205557,7 +200830,7 @@ msgid "" "did I. Blew my goddamn pinky off, near lost my right eye.\"" msgstr "" "«Книжки говорили мне, не мешай порох. Не Мешай Порох. Но я ж не слушал. Мне " -"к хуям оторвало мизинец, почти потерял правый глаз.»" +"к хуям оторвало мизинец, чуть не потерял правый глаз.»" #: lang/json/snippet_from_json.py msgid "" @@ -205568,8 +200841,8 @@ msgid "" msgstr "" "«делал всё как напесал тоби. в гильзы могло влесть больше, я напхал больше. " "почти все обминял у рейдеров за дурь. стрельнул из 38 сегодня и он взрвался " -"нахуй. дури нет, мне кранты, пушки нет, тоби нет. шол в монреаль очинь жалею" -" про пули»" +"нахуй. дури нет, мне кранты, пушки нет, тоби нет. шол в монреаль извени " +"нащет пулей»" #: lang/json/snippet_from_json.py msgid "" @@ -205588,8 +200861,8 @@ msgid "" "character wait in place, press '.'" msgstr "" "Символ «@» в центре экрана обозначает вас. Для передвижения используйте " -"стрелки клавиатуры или vi-клавиши (hjklyubn). Для ожидания на месте " -"используйте клавиши «.» или «5»." +"кнопки цифровой клавиатуры (numpad) или vi-клавиши (hjklyubn). Для ожидания " +"на месте используйте клавиши «.» или «5»." #: lang/json/snippet_from_json.py msgid "" @@ -205685,7 +200958,7 @@ msgid "" msgstr "" "Подобранный предмет был автоматически взят в руки и расценивается как " "оружие. Так происходит, потому что у вас в инвентаре не было свободного " -"места и вам пришлось взять его в руки. Чтобы увеличить свободное место, " +"места, и вам пришлось взять его в руки. Чтобы увеличить свободное место, " "носите соответствующую одежду, вроде рюкзака или штанов с карманами." #: lang/json/snippet_from_json.py @@ -205715,9 +200988,9 @@ msgid "" "W and then select an item. To take off clothing, press T, or simply take it" " off and drop it in one action by pressing d." msgstr "" -"Подобранный предмет является одеждой! Чтобы надеть одежду, нажмите «W» и " -"выберите предмет. Чтобы снять одежду, нажмите «T». Можно снять и выбросить " -"одежду одним нажатием с помощью клавиши «d»." +"Подобранный предмет - одежда! Чтобы надеть одежду, нажмите «W» и выберите " +"предмет. Чтобы снять одежду, нажмите «T». Можно снять и выбросить одежду " +"одним нажатием с помощью клавиши «d»." #: lang/json/snippet_from_json.py msgid "" @@ -205726,8 +200999,8 @@ msgid "" "or press 'w-' to put it away. A zombie has spawned nearby. To attack it, " "simply move into it." msgstr "" -"Подобранный предмет является хорошим оружием! Чтобы вооружиться, нажмите «w»" -" и выберите предмет. Чтобы освободить руки и стать безоружным, можно убрать " +"Подобранный предмет - хорошее оружие! Чтобы вооружиться, нажмите «w» и " +"выберите предмет. Чтобы освободить руки и стать безоружным, можно убрать " "оружие из рук клавишами «w-» или вовсе его выбросить, нажав «d». Неподалёку " "появился зомби. Атакуйте его, двигаясь в его направлении." @@ -205738,10 +201011,10 @@ msgid "" "Most food expires eventually, so be careful. Some comestibles, especially " "drugs, can cause subtle, long-term effects." msgstr "" -"Подобранный предмет является съедобным! Чтобы съесть что-нибудь, нажмите " -"«E». Употребить можно еду, напитки, таблетки и т.д. Будьте внимательны: еда " -"может испортиться. Некоторые предметы, особенно наркотики, могут вызывать " -"разные длительные эффекты." +"Подобранный предмет съедобен! Чтобы съесть что-нибудь, нажмите «E». " +"Употребить можно еду, напитки, таблетки и т.д. Будьте внимательны: еда может" +" испортиться. Некоторые предметы, особенно наркотики, могут вызывать разные " +"длительные и порой неочевидные эффекты." #: lang/json/snippet_from_json.py msgid "" @@ -205749,10 +201022,9 @@ msgid "" " tools have a set charge, which can be reloaded once depleted. Other are " "single-use items, and still others are reusable." msgstr "" -"Подобранный предмет является инструментом. Чтобы использовать инструмент, " -"нажмите «a». Некоторые инструменты имеют заряды, которые можно восполнить " -"после израсходования. Некоторые являются одноразовыми, некоторые " -"многоразовыми." +"Подобранный предмет - инструмент. Чтобы использовать инструмент, нажмите " +"«a». Некоторые инструменты имеют заряды, которые можно восполнить после " +"израсходования. Некоторые являются одноразовыми, некоторые многоразовыми." #: lang/json/snippet_from_json.py msgid "" @@ -205769,8 +201041,8 @@ msgstr "" " меняется в зависимости от типа патронов. У него есть значение разброса, " "которое влияет на шанс попадания. Некоторое оружие полуавтоматическое, тогда" " как другое может стрелять очередями. Некоторое оружие (в основном луки и " -"другие на силе мышц) имеет предел дальности стрельбы, который добавляется к " -"дальности снаряда." +"другие на силе мышц) имеет предел дальности стрельбы, который суммируется с " +"дальностью снаряда." #: lang/json/snippet_from_json.py msgid "" @@ -205781,8 +201053,8 @@ msgid "" "value will reduce this effect. The Range is the maximum range the ammo can " "achieve, and the dispersion affects its chance to hit." msgstr "" -"Подобранный предмет является боеприпасом к огнестрелу. У него много особых " -"свойств. Значения повреждений – это максимальные возможные повреждения при " +"Подобранный предмет - боеприпас к огнестрельному оружию. У него много особых" +" свойств. Значения повреждений – это максимальные возможные повреждения при " "стандартном попадании. При критическом попадании или попадании в голову " "наносится гораздо больше повреждений. Монстры или NPC могут носить броню, " "уменьшающую повреждения. Высокое значение бронебойности уменьшает этот " @@ -206046,13 +201318,82 @@ msgstr "" msgid "Dark days are ahead, but is that all?" msgstr "Впереди тёмные дни, но разве это конец?" +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 1: I had a dream and I can vaguely remember seeing a strange " +"truck that had overly round edges, it tooted its horn but instead I heard " +"people screaming, and when I blinked suddenly the truck wasn't just rounded," +" but made of people screaming forever inside a viscous blob.\"" +msgstr "" +"«Журнал сновидений, запись 1. Мне снился сон, я смутно помню странный " +"грузовик с необычно круглыми углами, он гудел, но вместо гудка я слышал " +"крики людей, и когда я моргнул, грузовик внезапно стал не просто " +"округлившимся, но отвратительным сгустком с вечно кричащими людьми внутри.»" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 2: In last night's dream I was driving a rusty and dusty humvee," +" with my trusty companion using a massive pneumatic weapon to shoot rebar " +"pipes into faceless enemies chasing us. My heart is still pumping, why does" +" it feel like a memory instead of a dream?\"" +msgstr "" +"«Журнал сновидений, запись 2. Прошлой ночью мне снилось, что я еду на ржавом" +" и пыльном армейском джипе с верным спутником, стреляющим из огромного " +"пневматического оружия, стреляющего металлическими трубами в безликих " +"врагов, преследующих нас. Мое сердце никак не успокоится, почему мне " +"кажется, что это было воспоминание, а не сон?»" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 3: Another dream. This time I dropped a diamond on a sea of " +"charcoal dust, and the diamond begun to shine and make the dust glitter " +"until a shape of a car emerged from the dust made entirely of thick, " +"perfectly angular diamond. A beautiful shape appeared on it, and in a flash" +" of light I was pierced by a glittering lance.\"" +msgstr "" +"«Журнал сновидений, запись 3. Ещё один сон. Я уронил алмаз в море угольной " +"пыли, и алмаз засиял, заставляя пыль блестеть, пока очертания машины не " +"возникли из пыли, идеальные угловатые очертания алмаза. На нем возникло " +"нечто прекрасной формы, и с яркой вспышкой я был пронзен блестящим копьем.»" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 4: These dreams get weirder. My companion of mine was driving " +"the RV, and I opened the back of the RV and found there was no roof but a " +"whole tray of gargantuan flowers made of solar panels arching toward the sun" +" greedily, light flowing from them into the RV. I stepped back and lost my " +"footing, seeing a strange portal on the side before I fell into a limitless " +"darkness.\"" +msgstr "" +"«Журнал сновидений, запись 4. Сны становятся все более странными. Мой " +"спутник вел наш дом на колёсах, а я зашел в заднюю часть и увидел огромные " +"цветы из солнечных батарей, тянущиеся к солнцу, и свет от них лился внутрь " +"нашей машины. Я отступил назад и споткнулся, увидев странный портал сбоку, " +"после чего я провалился в бескрайнюю тьму.»" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 5: My most recent dream was better so here it goes. I was " +"walking in a meadow when a strange stone with a perfect spiral on it fell in" +" front of me. I picked it up and blew on it, and a tornado roared from the " +"stone. In its wake, a car appeared, wickedly shaped and the sound of " +"tornadoes coming from its exhaust- and I rode the wind, hurling thunderbolts" +" at any who got in my way.\"" +msgstr "" +"«Журнал сновидений, запись 5. Последний сон был получше, вот записываю. Я " +"шел по лугу, как вдруг мне под ногу упал странный камень с идеально " +"вырезанной спиралью. Я подул на него, и ответом мне был рев торнадо из " +"камня. С приходом его появилась странная машина с неправильными формами, из " +"ее выхлопа были слышны торнадо - и я оседал ветер, бросая молнии во всех, " +"кто вставал на моем пути.»" + #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "КЕВИН ЖЕРТВУЕТ ГЕЙМПЛЕЕМ РАДИ РЕАЛИЗМА? ОТКРЫТА ШОКИРУЮЩАЯ ПРАВДА" #: lang/json/snippet_from_json.py msgid "TEN FACTS ABOUT THE NEW BIONIC SYSTEM THAT WILL SHOCK YOU" -msgstr "ДЕСЯТЬ ФАКТОВ О НОВОЙ СИСТЕМЕ БИОНИКИ, КОТОРАЯ ШОКИРУЕТ ВАС" +msgstr "ДЕСЯТЬ ФАКТОВ О НОВОЙ СИСТЕМЕ БИОНИКИ, КОТОРЫЕ ШОКИРУЮТ ВАС" #: lang/json/snippet_from_json.py msgid "YOU WON'T BELIEVE WHO JUST ADDED A NEW PROFESSION" @@ -206524,8 +201865,8 @@ msgstr "" " по расследованию паранормальных явлений вот такой пёрл: «Они всегда следят," " всегда смотрят из теней. Крадут мои авокадо и наблюдают! Они похитили моего" " соседа и заменили на одного из них!» Наши журналисты пытались найти миссис " -"Галфризович, но стало ясно, что все это сильно смахивает на хорошо известны " -"Заговор Авокадо (см. выпуск 24, раздел 7)." +"Галфризович, но стало ясно, что все это сильно смахивает на хорошо известный" +" Заговор Авокадо (см. выпуск 24, раздел 7)." #: lang/json/snippet_from_json.py msgid "" @@ -206559,7 +201900,7 @@ msgstr "" "БОЛЬШОЙ ПРОРЫВ. Под давлением технологических магнатов вроде Элтона Мусека " "был подписан двухпартийный законопроект, отложивший финансирование для давно" " испытывающего финансовый дефицит НАСА. «Пришло время искать возможности за " -"пределами нашей атмосферы» - сообщил представитель Эдисон Аутомотивс. Это " +"пределами нашей атмосферы» - сообщил представитель Эдисон Моторс. Это " "увлечение космосом, без сомнения, связано с новым совместным проектом в " "технологической индустрии, тайно прозванным «Project Bluebox»." @@ -206613,8 +201954,8 @@ msgstr "" "ощущаются до сих пор. Потерявшие самоидентификацию и наше наследие под " "давлением желания подавить белых мужчин и замолчать все их достижения, " "американские граждане ищут себя в насилии. Запомните мои слова: не пройдет " -"и года, как настанет момент расплаты, и придет он из торговой войны, но из " -"разбитого сердца Америки." +"и года, как настанет момент расплаты, и придет он не из торговой войны, но " +"из разбитого сердца Америки." #: lang/json/snippet_from_json.py msgid "" @@ -206708,7 +202049,7 @@ msgid "" "stands. We could see massive cutbacks in atmospheric carbon dioxide,\" said" " a spokesperson during the meeting." msgstr "" -"СОЛНЕЧНОЕ БУДУЩЕЕ. Эдисон Аутомотивс выпустила новую линейку солнечных " +"СОЛНЕЧНОЕ БУДУЩЕЕ. Эдисон Моторс выпустила новую линейку солнечных " "автомобилей, как часть их инициативы «эстетики космической эры». «Это " "большая новость для всех, особенно тех кто озабочен существующим глобальным " "потеплением. Мы сможем заметно снизить выбросы углекислого газа», сообщил на" @@ -206723,7 +202064,7 @@ msgid "" "further comment." msgstr "" "АСТРОНОМЫ ШОКИРОВАНЫ. «Мы не может понять, как такое могло случиться. Мы ни " -"разу не наблюдали исчезновение целой туманности», - прокомментировал " +"разу не наблюдали исчезновение целой туманности», - прокомментировала " "известный астроном после того, как большие новости просочились в Associated " "Press на прошлой неделе. Мы пытались получить у нее дополнительные " "комментарии, но нам не удалось вновь с ней связаться." @@ -206770,11 +202111,11 @@ msgid "" "local communities to get excited about what we're doing here and invest in " "their own safety.\"" msgstr "" -"ВОЗВРАЩЕНИЕ: ВКЛАД ОБЩЕСТВЕННОСТИ В ОБЩЕСТВЕННЫЕ УБЕЖИЩА. Пресс-секретарь " -"МЧС представлил сегодня новую инициативу для общественности: налоговые " -"вычеты в обмен на пожертвования консервов. «Это будет отличным способом для " -"местных сообществ проявить интерес у тому, что мы делаем, и инвестировать в " -"их собственную безопасность»." +"ВОЗВРАЩЕНИЕ ДОЛГА: ВКЛАД ОБЩЕСТВЕННОСТИ В ОБЩЕСТВЕННЫЕ УБЕЖИЩА. Пресс-" +"секретарь МЧС представил сегодня новую инициативу для общественности: " +"налоговые вычеты в обмен на пожертвования консервов. «Это будет отличным " +"способом для местных сообществ проявить интерес у тому, что мы делаем, и " +"инвестировать в их собственную безопасность»." #: lang/json/snippet_from_json.py msgid "" @@ -206805,12 +202146,12 @@ msgstr "" "«ВОЗЬМИТЕ СВОЮ СВОБОДУ В СВОИ РУКИ». Сегодня на незапланированной пресс-" "конференции президент и несколько представителей военного командования " "сообщили шокирующую информацию о грядущей атаке террористической организации" -" под кодовым названием «Авангард». «Пришло время взять свободу в руки», - " -"произнес президент, обращаясь к собравшейся толпе, призывая их немедленно " -"вступить в вооруженные силы, - «Мы не знаем, где и когда они нанесут удар, " -"но нам известно, что они хотят причинить как можно больше вреда нашей " -"национальной независимости и гражданам Соединенных Штатов». Вашингтоон " -"отказался от дальнейших комментариев." +" под кодовым названием «Авангард». «Пришло время взять свободу в свои " +"руки», - произнес президент, обращаясь к собравшейся толпе, призывая их " +"немедленно вступить в вооруженные силы, - «Мы не знаем, где и когда они " +"нанесут удар, но нам известно, что они хотят причинить как можно больше " +"вреда нашей национальной независимости и гражданам Соединенных Штатов». " +"Вашингтон отказался от дальнейших комментариев." #: lang/json/snippet_from_json.py msgid "" @@ -206822,14 +202163,13 @@ msgid "" " is to follow to combat this new threat that seems to have DC scared to " "death." msgstr "" -"ОБЪЯВЛЕНИЕ ВОЙНЫ. Поддерживаемые Китаем вооруженные силы составляющие " +"ОБЪЯВЛЕНИЕ ВОЙНЫ. Поддерживаемые Китаем вооруженные силы, составляющие " "ударную группу под кодовым названием «Авангард», данным им правительством, " "уже движутся через океан. Вашингтон предупреждает граждан Западного " "побережья, а так же по всей стране, о необходимости немедленно начать " -"собирать вещи для неизбежно грядущей эвакуации. Президент призывает к " -"добровольному вступлению в ряды вооруженных сил, и вскоре без сомнения будет" -" объявлен всеобщий призыв, чтобы начать бой с напугавшей столицу до смерти " -"угрозой." +"собирать вещи для неизбежной эвакуации. Президент призывает к добровольному " +"вступлению в ряды вооруженных сил, и вскоре без сомнения будет объявлен " +"всеобщий призыв, чтобы начать бой с напугавшей столицу до смерти угрозой." #: lang/json/snippet_from_json.py msgid "" @@ -206856,7 +202196,7 @@ msgstr "" "КРОВЬ НА УЛИЦАХ. [На фото: зернистое изображение ужасающей боевой машины, " "проносящейся по заваленной телами улицы, заснятое из-за занавесок.] У " "полиции не было шанса, у национальной гвардии нет шанса, и у вас его не " -"будет. Прячьтесь. Сохраняйте бдительность. Не иди с ними, когда за вами " +"будет. Прячьтесь. Сохраняйте бдительность. Не идите с ними, когда за вами " "придут. Это последний наш выпуск." #: lang/json/snippet_from_json.py @@ -206902,16 +202242,16 @@ msgid "" "spotted on the ground, a week early from previous statements, have been " "vehemently denied." msgstr "" -"БОМБАРДИРОВКА ПРАВИТЕЛЬСТВЕННЫХ УЧРЕЖДЕНИЙ: : В результате внезапной атаки " +"БОМБАРДИРОВКА ПРАВИТЕЛЬСТВЕННЫХ УЧРЕЖДЕНИЙ: В результате внезапной атаки " "иностранных сил (в опровержение ранних заявлений Министерства Обороны, " -"отрицавшего причастность терроистов Авангарда к атакам на континентальной " +"отрицавшего причастность террористов Авангарда к атакам на континентальной " "территории США) большое число правительственных заведений по всей территории" " Соединенных Штатов, а также немалое их число в отдаленных прибрежных " "территориях страны, были одновременно подвергнуты бомбардировкам. Пентагон " -"выступил с сообщением и овозложил вину на Авангард, а также заверил, что " +"выступил с сообщением и возложил вину на Авангард, а также заверил, что " "против агрессора будут принятые решительные меры. Обвинения в том, что " -"неделей ранее оперативники террористов уже были замечены на поверхности, " -"были категорически опровергнуты." +"неделей ранее оперативники террористов уже были замечены, были категорически" +" опровергнуты." #: lang/json/snippet_from_json.py #, no-python-format @@ -207028,7 +202368,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"robots cant smell. youll thank me later\"" -msgstr "«роботы могут чуять запахи. скажешь еще спасибо»" +msgstr "«роботы не могут чуять запахи. скажешь еще спасибо»" #: lang/json/snippet_from_json.py msgid "" @@ -207175,7 +202515,7 @@ msgid "" "\"Remember history class with the invaders and their disesases? yeah… my " "gut doesn't feel right… like it's moving…\"" msgstr "" -"«Помните иуроки истории про захватчиков и болезни, которые они с собой " +"«Помните уроки истории про захватчиков и болезни, которые они с собой " "приносили? ага… что-то у меня не так внутри… будто движется… »" #: lang/json/snippet_from_json.py @@ -207323,7 +202663,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"remember lambda\"" -msgstr "«помни про лямбду»" +msgstr "«помни о лямбде»" #: lang/json/snippet_from_json.py msgid "" @@ -207611,6 +202951,68 @@ msgstr "" msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "«Немало времени прошло, не правда ли? Рад, что вновь нашел тебя.»" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "" +"Довелось столкнуться с большими динозаврами. Знаю, по хорошему бы мне " +"испугаться, но почему-то только есть захотелось." + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you" +" think they eat cat food?" +msgstr "" +"Маленькие динозаврики мне кажется милыми, вроде котиков. Думаешь, они едят " +"кошачью еду?" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "Динозавры - лучшие друзья лучника. Перья всегда под рукой!" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big" +" lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "" +"Мой приятель бродил около болота, и его сожрал ти-рекс, такая огромная " +"ящерица. Я думаю, стоит припасти пушку и патронов побольше." + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "" +"Были слухи о зомби на болтах. Хреново будет, если они укусят динозавра " +"прежде, чем он их." + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind" +" of big lizard down there. Probably not a good idea to check." +msgstr "" +"Я знаю, что в канализации нет аллигаторов, но вроде как там есть какая-то " +"большая ящерица. Наверное, лучше не проверять." + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "" +"Некоторые из этих больших динозавров вроде ничего такие. Спорим, если ему " +"скормить что-нибудь вкусное, погладить, то можно будет прокатиться как на " +"пони. А может, он просто тебя сожрёт." + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "" +"Однажды мне в лесу попалось странное яйцо. Вероятно, его отложил динозавр, " +"но оно оказалось очень вкусное, если сварить!" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special" @@ -207621,6 +203023,19 @@ msgstr "" "представляет ДНК раптора, с добавлением новых протеиновых цепочек можно " "будет добиться прорыва в медицине." +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" +"Исследования на наших посетителях быстро развиваются. Хотя Операция Большой " +"Лазер не получила объёма финансирования, на который мы надеялись, наши более" +" скромные методы бионического улучшения были уже готовы и проходили с " +"опережением графика. Носители улучшений также весьма довольны своими " +"приобретениями." + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -207644,9 +203059,9 @@ msgid "" "security team was dispatched, but has not returned in 48 hours. The " "facility is on lockdown. We can’t let them get back in." msgstr "" -"Есть доклады о странных звуках с ближайшего болота. Усиленная группа охраны " -"была выслана, но не возвращается уже 48 часов. Лаборатория заблокирована. Мы" -" не можем впустить их обратно." +"Есть доклады о странных звуках с ближайшего болота. Была выслана усиленная " +"группа охраны, но они не возвращаются уже 48 часов. Лаборатория " +"заблокирована. Мы не можем впустить их обратно." #: lang/json/snippet_from_json.py msgid "" @@ -207669,8 +203084,12 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "«Почему в том месте просто дохера ящериц?»" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" -msgstr "«Мои чешуйчатые друзья! Сегодня ночью мы отведаем лысых обезьян.»" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" +msgstr "" +"«Могу поспорить, что динозавры умеют читать и играть в шахматы, поэтому не " +"ешьте нас, мы можем научить вас важным вещам, таким как магниты и рамен»" #: lang/json/snippet_from_json.py msgid "\"where's some .700 t-rex medicine when you need it?\"" @@ -207685,29 +203104,53 @@ msgstr "" "«Так вот что происходит, когда вы случайно отклоняетесь от лесной тропинки и" " наступаете на бабочку?»" -#: lang/json/snippet_from_json.py -msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" -msgstr "«Пушка. Меч. Пушкомеч. Нахрен штыки, это намного круче»" - #: lang/json/snippet_from_json.py msgid "" -"\"Not sure if wielding this thing makes me feel like a bodybuilder or a " -"theoretical physicist. Both?\"" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." msgstr "" -"«Когда держу эту штуку, я не уверен, чувствую ли я себя качком или физиком-" -"теоретиком. Или обоими сразу?»" +"ПРОПАВШИЕ БЕЗ ВЕСТИ. Недавняя волна исчезновений потрясла и без того " +"находящуюся в напряжении страну, особенно религиозную организацию " +"Болотников, связанную с собственной сетью отеляй и казино. Их харизматичный " +"генеральный директор Бо Бароникс отказался дать комментарии о их " +"местонахождении, ответив лишь «Великие едоки вернулись, и они должны быть " +"сыты», подмигнув и очаровательно улыбнувшись. Болотники играют важную роль в" +" сдерживании текущего кризиса и готовы принять пожертвования мясом и " +"деньгами, чтобы накормить голодающих." #: lang/json/snippet_from_json.py -msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" -msgstr "«Это не твоя личная пушка .50 калибра!»" - -#: lang/json/snippet_from_json.py -msgid "\"Nice pistol! Which trigger fires the flamer?\"" -msgstr "«Классный пистолет! На что нажать, чтобы выстрелить из огнемёта?»" +msgid "" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" +msgstr "" +"ПРИЯТНЫЕ ГОСТИ. Сегодня над детским садом Мелового Периода открылся " +"таинственный портал пышущий синей энергией и мигающими огнями, осыпав детей " +"самыми симпатичными крошечными пушистыми динозаврами и динозавриками. " +"Местный палеонтолог и экзотический танцор Отниэль Марш выразил скептицизм по" +" поводу того, что динозавры не вымерли миллионы лет назад, но «раз уж так, " +"почему нет, по крайней мере, они милые». А они очень милые!" #: lang/json/snippet_from_json.py -msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" -msgstr "«За каким хером я прицепил арбалет на этот пистолет?»" +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." +msgstr "" +"ОТРИЦАНИЕ ПРИСУТСТВИЯ ДИНОЗАВРОВ. Официальный представитель МЧС Эрнст " +"Штромер заявил прошлым вечером, что в городах не безопасно, и сообщения о " +"динозаврах за пределами городов неверны и «скорее всего связаны с " +"употреблением наркотиков», но предупредил беженцев, цитируем: «Прихватить " +"все стволы, что найдутся, дела там плохи»." #: lang/json/snippet_from_json.py msgid "" @@ -207767,7 +203210,7 @@ msgstr " . Заражённый." #: lang/json/snippet_from_json.py msgid "We send on to Valhalla" -msgstr "Мы отправим тебя в Вальгаллу." +msgstr "Мы посылаем тебя, , в Вальгаллу." #: lang/json/snippet_from_json.py msgid "RIP " @@ -207794,8 +203237,8 @@ msgid "" " & . Crashed their motorcycles at 120mph. Buried " "the pieces together." msgstr "" -" & . Разбили свои мотоциклы на скорости 120 миль/ч. " -"Похоронили останки вместе." +" & . Разбил свой мотоцикл на скорости 120 миль/ч. " +"Похоронили все, что осталось." #: lang/json/snippet_from_json.py msgid " . Friend, Lover, Cannibal." @@ -207831,11 +203274,11 @@ msgstr " . Готов, спасибо осам мутантам." #: lang/json/snippet_from_json.py msgid "LIVING INSIDE!" -msgstr "ЖИЗНЬ ВНУТРИ!" +msgstr "ЖИВЫЕ ВНУТРИ!" #: lang/json/snippet_from_json.py msgid "Send Help." -msgstr "Отправь помощь." +msgstr "Пришлите помощь." #: lang/json/snippet_from_json.py msgid "Rooms Available. Rent Negotiable." @@ -207923,7 +203366,7 @@ msgstr "подруга" #: lang/json/snippet_from_json.py msgid "baby" -msgstr "ребёнок" +msgstr "малыш" #: lang/json/snippet_from_json.py msgid "buster" @@ -207937,13 +203380,6 @@ msgstr "парень" msgid "chief" msgstr "шеф" -#: lang/json/snippet_from_json.py -msgid "" -"\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " -"repeat.\"" -msgstr "" -"«Стреляй эльфов-мутантов. Вырезай болты из их костей. Смыть и повторить.»" - #: lang/json/snippet_from_json.py msgid "" "A flyer for some kind of candy. It shows a picture of a gleaming human made" @@ -207955,104 +203391,6 @@ msgstr "" "конфета размером с человека! Настоящее ли вы чудовище? Сумеете ли его " "съесть?»" -#: lang/json/snippet_from_json.py -msgid "" -"\"Tank drone, meet the real deal. See how you handle 120 millimeters of " -"HELL YEAH!\"" -msgstr "" -"«Танкобот — вот это по-настоящему. Посмотрим, как тебе 120 миллиметров АДА, " -"о ДА!»" - -#: lang/json/snippet_from_json.py -msgid "\"big fucking gun, earplugs are good for your brain\"" -msgstr "«большущая сраная пушка и ушные затычки полезны для мозгов»" - -#: lang/json/snippet_from_json.py -msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" -msgstr "" -"«У меня есть танковая пушка, установленная на велосипеде. Твои доводы " -"неверны.»" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Next person to call this infantry fighting vehicle a 'tank' is walking " -"home.\"" -msgstr "" -"«Следующий, кто назовёт эту боевую машину пехоты „танком“, отправится " -"домой.»" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Found what used to be an armored platoon. Most tanks have hatches up top," -" not in the back like the new ones they're using.\"" -msgstr "" -"«Нашли то, что осталось от танкового взвода. У большинства танков люки " -"сверху, а не сзади, как у новых образцов, которые они использовали.»" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Agh, to See the Spiral in such a Distorted Shape! Manipulated for its " -"Vortex motion! Its Perpetual Grace! Its beauty Tarnished…\"" -msgstr "" -"«Ах, вижу Спираль в такой Искажённой Форме! Просто манипулировал своим " -"Вихревым движением! Это его Вечная Милость! Его красота Запятнана…»" - -#: lang/json/snippet_from_json.py -msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "" -"«Мой друг умер, но, по крайней мере, я превратил его в турель-сгусток.»" - -#: lang/json/snippet_from_json.py -msgid "" -"\"I have this laser cannon turret on my shopping cart. I push it around and" -" everything dies. I think I'm gonna toss it in the lake-- this just isn't " -"fair anymore.\"" -msgstr "" -"«У меня есть лазерная турель на моей тележке для товаров. Я её толкаю, и всё" -" вокруг умирает. Думаю, я брошу её в озеро — это просто нечестно.»" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Day 40. Controls broken-- car's magic reactor makes it goes inexorably " -"forward. Giant rollers on front demolish forest. Maine, here I come.\"" -msgstr "" -"«День 40. Управление сломано — волшебный реактор машины неумолимо гонит её " -"вперёд. Огромные катки спереди валят лес. Чувак, вот и я.»" - -#: lang/json/snippet_from_json.py -msgid "\"my car is a diamond in the rough… literally\"" -msgstr "«моя машина — неогранённый алмаз… буквально»" - -#: lang/json/snippet_from_json.py -msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" -msgstr "" -"«ТУРЕЛЬ М249 СЕГОДНЯ КИВНУЛА МНЕ. ТУРЕЛЬ ЖИВАЯ? НУ НАКОНЕЦ-ТО, ЕСТЬ С КЕМ " -"ПОГОВОРИТЬ!»" - -#: lang/json/snippet_from_json.py -msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" -msgstr "«Добавил так много всего в своё такси, что оно загорелось. Упс.»" - -#: lang/json/snippet_from_json.py -msgid "" -"\"If I put one cargo dimension into another cargo dimension, does the " -"universe end?\"" -msgstr "" -"«Если я помещу одно измерение грузового отсека в другое измерение грузового " -"отсека, схлопнется ли вселенная?»" - -#: lang/json/snippet_from_json.py -msgid "\"one day, i will be part of car, too\"" -msgstr "«однажды, я тоже стану частью машины»" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Putta little bitta dynamite and halfa landmine in an old soda can… WHAM!" -" You goin' somewhere.\"" -msgstr "" -"«Короч, берёшь старую банку от газировки и пихашь туда чутка динамиту и " -"кусман фугаса… БАХ! Ты куда-то разлетаешься.»" - #: lang/json/speech_from_json.py msgid "\"Hello?\"" msgstr "«Хелло?»" @@ -208111,7 +203449,7 @@ msgstr "«Неклассифицированный объект семь-сем #: lang/json/speech_from_json.py msgid "\"We found it in a wreckage, barely alive. Not the first one, either.\"" -msgstr "«Мы нашли его в обломках, едва живым. И далеко не сразу.»" +msgstr "«Мы нашли его в обломках, едва живым. И это не первый раз.»" #: lang/json/speech_from_json.py msgid "\"Area nineteen has a few in cold storage.\"" @@ -208181,7 +203519,7 @@ msgstr "«Это может быть способ привлечения доб #: lang/json/speech_from_json.py msgid "\"It could even be a way of trying to scare us off.\"" -msgstr "«Это даже может быть способом запугивания нас.»" +msgstr "«Это даже может быть способом запугать нас.»" #: lang/json/speech_from_json.py msgid "\"We just don't know.\"" @@ -208242,7 +203580,7 @@ msgstr "«А что, если они все откажут?»" #: lang/json/speech_from_json.py msgid "\"We'd have to terminate the specimen.\"" -msgstr "«Мы уничтожим особь.»" +msgstr "«Нам придётся уничтожить особь.»" #: lang/json/speech_from_json.py msgid "\"The glass alone won't keep us safe for very long.\"" @@ -208321,7 +203659,7 @@ msgstr "«Именно так этот грёбаный мир прекрати #: lang/json/speech_from_json.py msgid "\"Look at this fuckin' shit we're in, man.\"" -msgstr "«Посмотри в каком дерьме мы оказались.»" +msgstr "«Посмотри, в каком дерьме мы оказались.»" #: lang/json/speech_from_json.py msgid "\"Every man has got a breaking point.\"" @@ -208361,7 +203699,7 @@ msgstr "«Я не уверен, что оно на самом деле смож #: lang/json/speech_from_json.py msgid "\"It's just repeating us.\"" -msgstr "«Оно просто повторяет нас.»" +msgstr "«Оно просто повторяет за нами.»" #: lang/json/speech_from_json.py msgid "\"Just being an alien creature doesn't mean it's intelligent.\"" @@ -209563,17 +204901,61 @@ msgid "\"Our food contains up to 95% real food.\"" msgstr "«Наша еда на 95% настоящая»." #: lang/json/speech_from_json.py -msgid "\"FoodPlace: It's the Calories.\"" -msgstr "«„Сядь-и-поешь“: Всё дело в Калориях.»" +msgid "\"At FoodPlace your excellent value brings nourishment and delight.\"" +msgstr "" +"«В Сядь-и-поешь ваша ценность - источник питательности и удовольствия.»" + +#: lang/json/speech_from_json.py +msgid "\"At FoodPlace we have a host of solutions for your food needs!\"" +msgstr "" +"«В Сядь-и-поешьке у нас множество ответов на любые ваши пищевые " +"потребности!»" + +#: lang/json/speech_from_json.py +msgid "\"♪Eat at FoodPlace. ♫It is a place with food.♪\"" +msgstr "«♪Зайди в Сядь-и-поешь. ♫Здесь полно еды.♪»" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is a popular food chain selling food items. What else is there " +"to know?\"" +msgstr "«Сядь-и-поешь - популярная сеть, продающая еду. Что еще нужно?»" #: lang/json/speech_from_json.py msgid "\"You need food, don't you? Then come with me to FOODPLACE!!\"" msgstr "«Нужно поесть? Ну так пойдём со мной в СЯДЬ-И-ПОЕШЬ!!»" +#: lang/json/speech_from_json.py +msgid "\"You need food, don't you? It's time for FoodPlace!\"" +msgstr "«Проголодались? Время для Сядь-и-поешь!»" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: It's the Calories.\"" +msgstr "«„Сядь-и-поешь“: Всё дело в Калориях.»" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Don’t get caught in the web of unsafe diet.\"" +msgstr "«Сядь-и-поешь: не попадитесь в сети нездоровой диеты.»" + #: lang/json/speech_from_json.py msgid "\"FoodPlace: Edible food is OUR guarantee!\"" msgstr "«„Сядь-и-поешь“: МЫ гарантируем съедобную еду!»" +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: We bring food to life!\"" +msgstr "«Сядь-и-поешь: придаем еде жизни!»" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Edible food is one of our main goals!\"" +msgstr "«Сядь-и-поешь: съедобная пища - одна из наших главных целей!»" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is the only way to obtain healthy and strong lifecycle " +"choices!!\"" +msgstr "" +"«Сядь-и-поешь - единственный способ сделать правильный и здоровый выбор!!»" + #: lang/json/speech_from_json.py msgid "Wanna play with me?" msgstr "Поиграешь со мной?" @@ -209628,7 +205010,7 @@ msgstr "Попьём чайку!" #: lang/json/speech_from_json.py msgid "You're the best!" -msgstr "Ты лучший!" +msgstr "Ты лучше всех!" #: lang/json/speech_from_json.py msgid "You shouldn't have done that." @@ -209672,7 +205054,7 @@ msgstr "Айяяяяя!" #: lang/json/speech_from_json.py msgid "FUCK YOU!" -msgstr "ПОШЁЛ НА ХЕР!" +msgstr "ИДИ НА ХЕР!" #: lang/json/speech_from_json.py msgid "What did you do with my Mommy?" @@ -209716,7 +205098,7 @@ msgstr "«Я кричу, но у меня же нет рта!»" #: lang/json/speech_from_json.py msgid "\"¿Por qué?\"" -msgstr "«¿Зачем?»" +msgstr "\"¿Por qué?\"" #: lang/json/speech_from_json.py msgid "\"Come closer little one.\"" @@ -209977,11 +205359,11 @@ msgstr "Вы вообще слушаете меня?" #: lang/json/speech_from_json.py msgid "\"I've got a feeling we're not in Kansas anymore.\"" -msgstr "«У меня есть такое чувство, что мы больше не в Канзасе.»" +msgstr "«Мне кажется, мы больше не в Канзасе.»" #: lang/json/speech_from_json.py msgid "\"Go ahead, make my day.\"" -msgstr "«Иди вперёд, сделай мой день.»" +msgstr "«Давай, сделай мой день.»" #: lang/json/speech_from_json.py msgid "\"You talkin' to me?\"" @@ -210005,7 +205387,7 @@ msgstr "«То, что у нас есть, — это неспособность #: lang/json/speech_from_json.py msgid "\"E.T. phone home.\"" -msgstr "«E.T. звонить домой.»" +msgstr "«E.T. звонит домой.»" #: lang/json/speech_from_json.py msgid "\"I'm as mad as hell, and I'm not going to take this anymore!\"" @@ -210070,7 +205452,7 @@ msgstr "«Если нет, я буду искать тебя, и я найду #: lang/json/speech_from_json.py msgid "\"Roads? Where we're going, we don't need roads.\"" -msgstr "«Дороги? Куда мы идем, нам дороги не нужны.»" +msgstr "«Дороги? Там, куда мы отправляемся, дороги не нужны.»" #: lang/json/speech_from_json.py msgid "\"Fasten your seatbelts. It's going to be a bumpy night.\"" @@ -210080,11 +205462,12 @@ msgstr "«Пристегните свои ремни безопасности. msgid "" "\"You've got to ask yourself one question: 'Do I feel lucky?' Well, do ya " "punk?\"" -msgstr "«Вы должны задать себе один вопрос: «Мне повезло?» — Ну, да, панк?»" +msgstr "" +"«Ты должен задать себе один вопрос: «Повезёт ли мне?» — Повезёт, мерзавец?»" #: lang/json/speech_from_json.py msgid "\"You had me at hello.\"" -msgstr "«Вы со мной поздоровались.»" +msgstr "«Я на всё согласился, стоило вам поздороваться.»" #: lang/json/speech_from_json.py msgid "\"Houston, we have a problem.\"" @@ -210092,7 +205475,7 @@ msgstr "«Хьюстон, у нас проблема.»" #: lang/json/speech_from_json.py msgid "\"Yippie-ki-yay, motherfucker!\"" -msgstr "«Йо-хо-хо, ублюдок!»" +msgstr "«Йи-пи-ка-ей, ублюдок!»" #: lang/json/speech_from_json.py msgid "\"The first rule of The Lab is: You do not talk about The Lab.\"" @@ -210288,7 +205671,7 @@ msgstr "«Я тебя вижу.»" #: lang/json/speech_from_json.py msgid "\"Could you come over here?\"" -msgstr "«Не могли бы вы приехать сюда?»" +msgstr "«Не могли бы вы подойти поближе?»" #: lang/json/speech_from_json.py msgid "\"Hellooo.\"" @@ -210488,7 +205871,7 @@ msgstr "«Возьми меня с собой…»" #: lang/json/speech_from_json.py msgid "\"You have excellent aim!\"" -msgstr "«У тебя отличная цель!»" +msgstr "«У тебя отличный прицел!»" #: lang/json/speech_from_json.py msgid "\"I need backup!\"" @@ -210572,7 +205955,7 @@ msgstr "«Здорово, незнакомец!»" #: lang/json/speech_from_json.py msgid "\"Thought you'd seen the last of us, didn't ya?\"" -msgstr "«Думал, ты видел последнего из нас, не так ли?»" +msgstr "«Думал, ты больше нас не увидишь, не так ли?»" #: lang/json/speech_from_json.py msgid "\"Dang!\"" @@ -210580,7 +205963,7 @@ msgstr "«Вот чёрт!»" #: lang/json/speech_from_json.py msgid "\"I thought we fixed that.\"" -msgstr "«Я думал, мы с этим разобрались.»" +msgstr "«Я думала, мы с этим разобрались.»" #: lang/json/speech_from_json.py msgid "\"What's a guy gotta got to do to get some bullets around here?\"" @@ -210624,7 +206007,7 @@ msgstr "«С возрастом лучше не становишься!»" #: lang/json/speech_from_json.py msgid "\"This is just getting embarrassing.\"" -msgstr "«Это только запутывает.»" +msgstr "«Становится неловко.»" #: lang/json/speech_from_json.py msgid "\"Alright, you can go.\"" @@ -210636,19 +206019,19 @@ msgstr "«[вздох] Не говори никому об этом.»" #: lang/json/speech_from_json.py msgid "\"Well, I tried. Best of luck!\"" -msgstr "«Ну, я пытался. Удачи!»" +msgstr "«Ну, я пыталась. Удачи!»" #: lang/json/speech_from_json.py msgid "\"Hey, safe travels, there.\"" -msgstr "«Эй, безопасные путешествия, там.»" +msgstr "«Эй ты, безопасных путешествий.»" #: lang/json/speech_from_json.py msgid "\"Hey, thanks so much!\"" -msgstr "«Привет и спасибо!»" +msgstr "«Эй, спасибо большое!»" #: lang/json/speech_from_json.py msgid "\"Don't be a stranger!\"" -msgstr "«Не будь незнакомцем!»" +msgstr "«Не стесняйся, заходи ещё!»" #: lang/json/speech_from_json.py msgid "\"It's been a pleasure!\"" @@ -210700,7 +206083,7 @@ msgstr "«Уххх, никаких пуль. Сорри.»" #: lang/json/speech_from_json.py msgid "\"Shootin' blanks every time, ALL the time.\"" -msgstr "«Выстрел прямо в яблочко, каждый раз, ВСЁ время.»" +msgstr "«Стреляю холостыми, каждый раз, ВСЁ время.»" #: lang/json/speech_from_json.py msgid "\"Standing down.\"" @@ -210746,157 +206129,9 @@ msgstr "навязчивое механическое жужжание." msgid "a semi-musical chirping that echos across the landscape." msgstr "почти музыкальное чириканье, разлетающееся по округе." -#: lang/json/speech_from_json.py -msgid "\"bzzzzzz.\"" -msgstr "«бзззззз.»" - -#: lang/json/speech_from_json.py -msgid "\"Beep.\"" -msgstr "«Бип.»" - -#: lang/json/speech_from_json.py -msgid "\"Beep?\"" -msgstr "«Бип?»" - -#: lang/json/speech_from_json.py -msgid "\"Beep!\"" -msgstr "«Бип!»" - -#: lang/json/speech_from_json.py -msgid "\"Beeeeep beep.\"" -msgstr "«Бииииип бип.»" - -#: lang/json/speech_from_json.py -msgid "\"Bebebeeeep.\"" -msgstr "«Бибибиииип.»" - -#: lang/json/speech_from_json.py -msgid "\"Beep boop beep?\"" -msgstr "«Бип буп бип?»" - -#: lang/json/speech_from_json.py -msgid "\"Beedoo-Beep.\"" -msgstr "«Биу-Бип.»" - -#: lang/json/speech_from_json.py -msgid "\"Beep Beep. Whirr.\"" -msgstr "«Бип Бип. Уирр.»" - -#: lang/json/speech_from_json.py -msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "«Врррр Ррррммм.»" - -#: lang/json/speech_from_json.py -msgid "\"Whirrrrr-click click.\"" -msgstr "«Уиррррр-щёлк щёлк.»" - -#: lang/json/speech_from_json.py -msgid "\"Boodoobeep beep beep.\"" -msgstr "«Буууубип бип бип.»" - -#: lang/json/speech_from_json.py -msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "«Брннннннн Брзт Брмммм.»" - -#: lang/json/speech_from_json.py -msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "«Вжжууууу. Бззззт. Бззззт.»" - -#: lang/json/speech_from_json.py -msgid "\"Brrm Bum Brrm?\"" -msgstr "«Брррм Брррм Брррм?»" - -#: lang/json/speech_from_json.py -msgid "\"Pwweeee Krsht.\"" -msgstr "«Уиииии Чшшш»." - -#: lang/json/speech_from_json.py -msgid "\"Fshkt fshkt. Booop.\"" -msgstr "«Фшшш Фшшш. Буууп»." - -#: lang/json/speech_from_json.py -msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "«Взт. Взт. Кшшшшшшшш.»" - -#: lang/json/speech_from_json.py -msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "«Уиииииии-уууу. Бибип.»" - -#: lang/json/speech_from_json.py -msgid "\"Grrrnd clang whirrrr.\"" -msgstr "«Грррр лязг уиррр.»" - -#: lang/json/speech_from_json.py -msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "«Гррррр. Гррр.»" - -#: lang/json/speech_from_json.py -msgid "\"Cla-clang cla-clang!\"" -msgstr "«Лязг-лязг лязг-лязг!»" - -#: lang/json/speech_from_json.py -msgid "\"Klang!\"" -msgstr "«Лязг!»" - -#: lang/json/speech_from_json.py -msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "«Бззз. Бзззз!»" - -#: lang/json/speech_from_json.py -msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "«Бибип. Вуууууррррррм.»" - -#: lang/json/speech_from_json.py -msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "«Пьююууум. Фшш фшшрррр.»" - -#: lang/json/speech_from_json.py -msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "«Щёлк. Щёлкщёлк. Врррррн.»" - -#: lang/json/speech_from_json.py -msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "«Швввврррррр бзз.»" - -#: lang/json/speech_from_json.py -msgid "a high pitched alarm." -msgstr "пронзительная сирена." - -#: lang/json/speech_from_json.py -msgid "a blaring siren." -msgstr "ревущая сирена." - -#: lang/json/speech_from_json.py -msgid "\"CHUG chug chug.\"" -msgstr "«ЧУХ-чух-чух»" - -#: lang/json/speech_from_json.py -msgid "\"Creak! Clang clang.\"" -msgstr "«Скрип! Лязг, лязг.»" - -#: lang/json/speech_from_json.py -msgid "\"Khr Khr Khr.\"" -msgstr "«Кх Кх Кх.»" - -#: lang/json/speech_from_json.py -msgid "a mechanical groaning." -msgstr "механический стон." - -#: lang/json/speech_from_json.py -msgid "grinding gears." -msgstr "зубчатые колеса." - -#: lang/json/speech_from_json.py -msgid "tortured machinery." -msgstr "звук измученных механизмов." - -#: lang/json/speech_from_json.py -msgid "\"SQUEE!\"" -msgstr "«СКУИИ!»" - #: lang/json/start_location_from_json.py msgid "Shelter" -msgstr "Укрытие" +msgstr "Убежище" #: lang/json/start_location_from_json.py msgid "Shelter (Vandalized)" @@ -211024,7 +206259,7 @@ msgstr "Тюрьма на острове" #: lang/json/start_location_from_json.py msgid "Mi-go camp" -msgstr "лагерь ми-го" +msgstr "Лагерь ми-го" #: lang/json/start_location_from_json.py msgid "Hermit Shack" @@ -211088,7 +206323,7 @@ msgstr "Склад военной базы" #: lang/json/start_location_from_json.py msgid "Private resort" -msgstr "закрытый курорт" +msgstr "Закрытый курорт" #: lang/json/start_location_from_json.py msgid "Scavenger Bunker" @@ -211106,45 +206341,17 @@ msgstr "Островное убежище волшебника" msgid "Candy Shop" msgstr "Кондитерская" -#: lang/json/start_location_from_json.py -msgid "Robot Dispatch Center" -msgstr "Центр Отправки Роботов" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp (entrance)" -msgstr "Лагерь МЧС (вход)" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp" -msgstr "Лагерь МЧС" - -#: lang/json/start_location_from_json.py -msgid "Mansion Entrance" -msgstr "Вход в поместье" - -#: lang/json/start_location_from_json.py src/gamemode_defense.cpp -msgid "Mansion" -msgstr "Поместье" - -#: lang/json/start_location_from_json.py -msgid "Electronics Store" -msgstr "Магазин Электроники" - -#: lang/json/start_location_from_json.py -msgid "Clothing Store" -msgstr "Магазин Одежды" - #: lang/json/talk_topic_from_json.py -msgid "You there. Quiet down. Can you hear it? The song?" -msgstr "Ты тут. Тихо. Ты слышишь? Песнь?" +msgid "Acolyte." +msgstr "Послушник." #: lang/json/talk_topic_from_json.py msgid "You're back. Have you come to listen to the song?" msgstr "Ты снова тут. Ты хочешь послушать песнь?" #: lang/json/talk_topic_from_json.py -msgid "Acolyte." -msgstr "Послушник." +msgid "You there. Quiet down. Can you hear it? The song?" +msgstr "Ты тут. Тихо. Ты слышишь? Песнь?" #: lang/json/talk_topic_from_json.py msgid "What? What do you mean? What song?" @@ -211268,7 +206475,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "End the world? What?" -msgstr "Конец света? Чего?" +msgstr "Завершить мир? Чего?" #: lang/json/talk_topic_from_json.py msgid "" @@ -211321,37 +206528,29 @@ msgid "Yeah, alright." msgstr "Да-да, точно." #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." -msgstr "Я знаю несколько полезных костей, если хочешь услышать побольше." - -#: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." -msgstr "Если хочешь, у меня есть ещё песня для тебя." +msgid "There are bones to etch, songs to sing. Wish to join me?" +msgstr "Ещё есть невырезанные кости и неспетые песни. Присоединишься ко мне?" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." -msgstr "Тебе ещё предстоит спеть песню, если желаешь." +msgid "Do you wish to take on more songs?" +msgstr "Ты хочешь взяться за ещё больше песен?" #: lang/json/talk_topic_from_json.py msgid "Do you believe you can take on the burden of additional bones?" msgstr "Думаешь, ты сможешь взвалить обузу лишних костей?" #: lang/json/talk_topic_from_json.py -msgid "Do you wish to take on more songs?" -msgstr "Ты хочешь взяться за ещё больше песен?" - -#: lang/json/talk_topic_from_json.py -msgid "There are bones to etch, songs to sing. Wish to join me?" -msgstr "Ещё есть невырезанные кости и неспетые песни. Присоединишься ко мне?" +msgid "A song may yet be sung by you, should you wish to." +msgstr "Тебе ещё предстоит спеть песню, если желаешь." #: lang/json/talk_topic_from_json.py -msgid "That is all for now." -msgstr "Пока что всё." +msgid "There is an additional song you could take on, if you'd like." +msgstr "Если хочешь, у меня есть ещё песня для тебя." #: lang/json/talk_topic_from_json.py -msgid "An acolyte should not take on too many songs at once." -msgstr "Послушнику не следует браться за много песен сразу." +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." +msgstr "Я знаю несколько полезных костей, если хочешь услышать побольше." #: lang/json/talk_topic_from_json.py msgid "" @@ -211360,6 +206559,14 @@ msgid "" msgstr "" "Пока что песня… Утихла. Возможно, на костях мира будет высечено больше нот." +#: lang/json/talk_topic_from_json.py +msgid "An acolyte should not take on too many songs at once." +msgstr "Послушнику не следует браться за много песен сразу." + +#: lang/json/talk_topic_from_json.py +msgid "That is all for now." +msgstr "Пока что всё." + #: lang/json/talk_topic_from_json.py msgid "I see." msgstr "Понятно." @@ -211437,10 +206644,6 @@ msgstr "" msgid "I see. Very well then." msgstr "Ясно. Очень хорошо." -#: lang/json/talk_topic_from_json.py -msgid "Only those who bear my mark will prove themselves worthy of my skills." -msgstr "Только носящие мой знак покажут, что они достойны моих умений." - #: lang/json/talk_topic_from_json.py msgid "" "You bear my mark, meaning I believe you have potential to learn to truly " @@ -211449,6 +206652,10 @@ msgstr "" "У тебя мой знак, значит, у тебя есть потенциал учиться по-настоящему слушать" " песню. Да, пока что я помогу тебе своими умениями." +#: lang/json/talk_topic_from_json.py +msgid "Only those who bear my mark will prove themselves worthy of my skills." +msgstr "Только носящие мой знак покажут, что они достойны моих умений." + #: lang/json/talk_topic_from_json.py msgid "I am glad to hear it. Let's go then." msgstr "Приятно слышать. Тогда пойдём." @@ -211514,7 +206721,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Forget I asked." -msgstr "Забудь, что я спрашивал." +msgstr "Забудь мой вопрос." #: lang/json/talk_topic_from_json.py msgid "Skip it, let's get going." @@ -211609,7 +206816,7 @@ 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 overridden. You can set and clear overrides with shouted commands." msgstr "" -"Если мы стоим рядом, ты можешь просто уткнуться в меня, и мы начнём болтать, ладно? Но если я стою подальше, тебе нужно немного покричать (при помощи команды «Говорить» — клавиша «С» по умолчанию), чтоб я тебя услышал. Тебе надо меня видеть, чтоб мы могли поговорить. Или мы можем побеседовать по рации, если они есть у нас обоих.\n" +"Если мы стоим рядом, ты можешь просто уткнуться в меня, и мы начнём болтать, понятно? Но если я стою подальше, тебе нужно немного покричать (при помощи команды «Говорить» — клавиша «С» по умолчанию), чтобы мне было тебя слышно. Тебе надо меня видеть, чтоб мы могли поговорить. Или мы можем побеседовать по рации, если они есть у нас обоих.\n" "Во время разговора ты можешь давать мне указания насчёт того, как сражаться, или когда спать, или что угодно. Я буду стараться их выполнять, и ты можешь спросить меня о текущих указаниях. Иногда ты можешь дать мне два типа указаний: обычные и экстренные, перекрывающие обычные. Я скажу тебе, какие указания перекрываются. Ты можешь задавать и отменять перекрытия при помощи команд криком." #: lang/json/talk_topic_from_json.py @@ -211660,7 +206867,7 @@ msgid "" " 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" " Ты не можешь запретить мне убегать, потому что я свалю, если всё будет плохо, но ты можешь указать мне безопасное место при помощи менеджера зон (клавиша «Y»). Я побегу в ближайшее такое место — их можно размечать и в машине, так что ты можешь приказать мне бежать в машину, если она у тебя есть.\n" " Если ты убежишь, но я буду думать, что всё безопасно, я останусь и буду сражаться, но ты можешь приказать мне бежать вместе с тобой, и я буду держаться как можно ближе.\n" " Ты можешь указать, когда я должен атаковать, но я сам решу, кого именно — хотя буду защищать нас обоих. Я буду стоять на месте, если прикажешь. \n" @@ -211680,7 +206887,7 @@ msgid "" " And don't bother asking me about learning or teaching martial arts style. My brain just doesn't work that way, so I don't know any to teach you and it's pointless trying to get me to learn any." msgstr "" "Если мой навык выше твоего, я могу помочь тебе поднять его. Но много учиться — скучно, так что я нечасто буду этим заниматься. И я не собираюсь учить тебя, если мы в опасности, или я хочу есть, или устал, или ты за рулём. \n" -" Если мы в безопасном месте, а ты читаешь улучшающую навык книгу, я буду слушать, если у меня нет такого навыка. Ты даже можешь читать мне книги по навыкам, которые у тебя уже развиты. Но пока я читаю, я не буду следовать за тобой, поэтому убедитесь, что я нахожусь в безопасном месте.\n" +" Если мы в безопасном месте, а ты читаешь улучшающую навык книгу, я буду слушать, если у меня нет такого навыка. Ты даже можешь читать мне книги по навыкам, которые у тебя уже развиты. Но пока я читаю, я не буду следовать за тобой, поэтому убедись, что я нахожусь в безопасном месте.\n" " И не спрашивай меня об обучении или преподавании стиля боевых искусств. Мой мозг это не воспринимает, поэтому я тебя ничему не научу и меня тоже учить этому бесполезно." #: lang/json/talk_topic_from_json.py @@ -211701,14 +206908,6 @@ msgstr "" " Также, поскольку мы друзья, я без вопросов дам тебе любой предмет из моего инвентаря. \n" " Ах да, если я хочу есть или пить и у меня есть припасы, я их съем. То же самое, если мне надо зарядить бионику, а у меня есть топливо. Так что тебе, наверное, стоит смотреть, что ты мне даёшь, лады?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I can perform first aid. You give me some bandages or a bottle of " -"antiseptic, I'll treat your wounds as best I can." -msgstr "" -"Да, я могу оказать первую помощь. Принеси мне бинты и бутылку антисептика, я" -" обработаю твои раны как умею." - #: lang/json/talk_topic_from_json.py msgid "" "Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " @@ -211717,6 +206916,14 @@ msgstr "" "Эй, я же врач! Я знаю, как лечить травмы. Принеси мне бинты и бутылку " "антисептика, и я подлатаю тебя, если поранишься." +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I can perform first aid. You give me some bandages or a bottle of " +"antiseptic, I'll treat your wounds as best I can." +msgstr "" +"Да, я могу оказать первую помощь. Принеси мне бинты и бутылку антисептика, я" +" обработаю твои раны как умею." + #: lang/json/talk_topic_from_json.py msgid "" " But remember, I like you, but I like me more - so I'm going to use those " @@ -211759,7 +206966,7 @@ msgid "" " 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.\n" " I'll move faster if I'm horseback." msgstr "" -"Если ты вызовешь меня по рации, ты можешь приказать мне прийти к тебе. Если у тебя есть лагеря, ты можешь мне приказать идти к одному из них. Я отправлюсь в путь, и стану на страже, когда доберусь. \n" +"Если ты вызовешь меня по рации, ты можешь приказать мне прийти к тебе. Если у тебя есть лагеря, ты можешь мне приказать идти к одному из них. Я отправлюсь в путь, и встану на страже, когда доберусь. \n" " Это может занять какое-то время в зависимости от того, где я и куда я иду. Я буду избегать любых опасностей по пути, не беспокойся, но если ты у чёрта на рогах и зовёшь меня, придётся изрядно подождать, пока я не приду.\n" " Верхом я доберусь быстрее." @@ -211787,7 +206994,7 @@ msgid "" " Also, I'm not a potted plant, 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»), чтоб я мог игнорировать монстров за дверью, про которых ты в курсе. Ты также можешь задать зону исследования, чтобы я игнорировал весь шум снаружи неё. У зоны не-исследования приоритет выше, если шум происходит в месте перекрытия этих зон. Если где угодно размечена зона исследования (даже очень далеко), я не буду исследовать шум снаружи неё, так что поосторожнее. Так что я не хочу, чтоб меня подстрелил бандит, потому что ты приказал мне не искать его, но ещё не хочу искать, кто это шумит за дверью и обнаружить кошмарную тварь, о которой ты забыл меня предупредить." @@ -211837,7 +207044,7 @@ msgid "" " 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" @@ -211864,7 +207071,7 @@ msgstr "" " — Прикажи мне спать по необходимости, и я буду спать, когда устану. Я скажу тебе, когда отправлюсь спать, если ты не прикажешь не говорить этого. \n" " — Прикажи мне убегать, и я буду держаться с тобой, когда ты побежишь от опасности. Сам я не побегу, впрочем, если всё будет совсем плохо, я, наверно, и сам начну сваливать! \n" " — Прикажи мне прекратить убегать, и я сам оценю опасность и могу вступить в бой и сражаться, пока ты чем-то занят. \n" -" — Прикажи мне приготовиться к опасности — это особенный приказ — перекрывающая команда. Это значит, я буду следовать определённым указаниям, даже если б ты раньше дал мне другие. Например, я буду убегать вместе с тобой, я не буду открывать или закрывать двери, я не буду спать, пока совсем не устану, и я постараюсь удерживать любые узкие места, где ты сражаешься. \n" +" — Прикажи мне приготовиться к опасности — это особенный приказ — перекрывающая команда. Это значит, я буду следовать определённым указаниям, даже если ты раньше дал мне другие. Например, я буду убегать вместе с тобой, я не буду открывать или закрывать двери, я не буду спать, пока совсем не устану, и я постараюсь удерживать любые узкие места, где ты сражаешься. \n" " — Прикажи мне отставить готовиться к опасности — это другая особая команда, и она отменит все перекрытия, и я вернусь к указаниям, что ты давал мне до приказа готовиться к опасности." #: lang/json/talk_topic_from_json.py @@ -211887,7 +207094,7 @@ msgid "" " Also, we've teamed up to better our chances of survival. Other people are going to do the same, forming little factions just like we did. If you open the faction manager (keybind '#'), you can see a list of all your allies, as well as all the other factions you've met so far. Some factions are really just some guy trying to survive on his own, but other factions have dozens of members and fortified bases and such. You might want to find some of them and try to make friends with them." msgstr "" "Почти все мертвы, но некоторые же выжили, верно? Так же как и ты, они ходят по домам и забирают всё, что считают нужным. Эта куча вещей, которую мы накапливаем, выглядит как бесхозная добыча какого-то случайного мертвеца, если её оставить без присмотра. Если какой-нибудь другой мусорщик придёт и увидит эту добычу, а нас не будет рядом, то он заберёт её. Поэтому постарайся назначить кого-нибудь приглядывать за нашими вещами, будь то на базе или в машине.\n" -" Кроме того, мы объединились, чтобы улучшить наши шансы на выживание. Другие люди будут делать то же самое, формируя маленькие фракции, как и мы. Если ты откроешь менеджер фракций (клавиша '#'), то увидишь список всех союзников, а также других фракций, с которыми мы встречались. Некоторые фракции — просто одиночки, пытающиеся выжить самостоятельно, но другие фракции имеют десятки членов и укрепленных баз, и тому подобное. Возможно, нам бы стоило найти их попытаться подружиться." +" Кроме того, мы объединились, чтобы улучшить наши шансы на выживание. Другие люди будут делать то же самое, формируя маленькие фракции, как и мы. Если ты откроешь менеджер фракций (клавиша '#'), то увидишь список всех союзников, а также других фракций, с которыми мы встречались. Некоторые фракции — просто одиночки, пытающиеся выжить самостоятельно, но другие фракции имеют десятки членов и укрепленных баз, и тому подобное. Возможно, нам бы стоило найти их и попытаться подружиться." #: lang/json/talk_topic_from_json.py msgid "Anything else I can do in the faction manager?" @@ -211932,16 +207139,16 @@ msgstr "Спасибо за пояснение. Я хочу узнать кое msgid "Thanks. I have some things for you to do." msgstr "Спасибо. Я хочу, чтоб ты сделал кое-что ещё." +#: lang/json/talk_topic_from_json.py +msgid "Hi there, ." +msgstr "Привет, ." + #: lang/json/talk_topic_from_json.py msgid "" "STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " "anymore..." msgstr "СТОЯТЬ, руки вверх! Ха, испугался?… Закона больше нет…" -#: lang/json/talk_topic_from_json.py -msgid "Hi there, ." -msgstr "Привет, ." - #: lang/json/talk_topic_from_json.py msgid "What are you doing here?" msgstr "Что ты здесь делаешь?" @@ -212021,24 +207228,24 @@ msgstr "" "иногда появляется странник, уверенный, что найдёт лучшую долю." #: lang/json/talk_topic_from_json.py -msgid "Anything to do before I go to sleep?" -msgstr "Что-нибудь ещё, пока я не пошёл спать?" +msgid "No, just no..." +msgstr "Нет, просто, , нет…" #: lang/json/talk_topic_from_json.py -msgid "Just few minutes more..." -msgstr "Ещё пару минут…" +msgid "Just let me sleep, !" +msgstr "Дай мне поспать, !" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." msgstr "Давай быстрее, мне нужно идти спать." #: lang/json/talk_topic_from_json.py -msgid "Just let me sleep, !" -msgstr "Дай мне поспать, !" +msgid "Just few minutes more..." +msgstr "Ещё пару минут…" #: lang/json/talk_topic_from_json.py -msgid "No, just no..." -msgstr "Нет, просто, , нет…" +msgid "Anything to do before I go to sleep?" +msgstr "Что-нибудь ещё, пока я не пошёл спать?" #: lang/json/talk_topic_from_json.py msgid "Wake up!" @@ -212066,14 +207273,14 @@ msgstr "да, разбудить!" msgid "no, 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 " *pshhhttt* I'm reading you boss, over." msgstr "*пшшш-пшшш* я тебя слушаю, босс, приём." +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "Что такое, друг?" + #: lang/json/talk_topic_from_json.py msgid "I want to give you some commands for combat." msgstr "Я хочу дать тебе боевые команды." @@ -212155,93 +207362,93 @@ msgid "Let's go." msgstr "Пошли." #: lang/json/talk_topic_from_json.py -msgid "*will engage all enemies." -msgstr "*будет атаковать всех врагов." +msgid "*will not engage enemies." +msgstr "*не будет атаковать врагов." #: lang/json/talk_topic_from_json.py -msgid "*will engage enemies close enough to attack without moving." -msgstr "*будет атаковать врагов, которых можно достать без передвижения." +msgid "*will engage nearby enemies." +msgstr "*будет атаковать ближайших врагов." #: lang/json/talk_topic_from_json.py -msgid "*will engage distant enemies without moving." -msgstr "*будет атаковать врагов, которых можно достать без передвижения." +msgid "*will engage weak enemies." +msgstr "*будет атаковать слабых врагов." #: lang/json/talk_topic_from_json.py msgid "*will engage enemies you attack." msgstr "*будет атаковать врагов, которых вы атакуете." #: lang/json/talk_topic_from_json.py -msgid "*will engage weak enemies." -msgstr "*будет атаковать слабых врагов." - -#: lang/json/talk_topic_from_json.py -msgid "*will engage nearby enemies." -msgstr "*будет атаковать ближайших врагов." +msgid "*will engage distant enemies without moving." +msgstr "*будет атаковать врагов, которых можно достать без передвижения." #: lang/json/talk_topic_from_json.py -msgid "*will not engage enemies." -msgstr "*не будет атаковать врагов." +msgid "*will engage enemies close enough to attack without moving." +msgstr "*будет атаковать врагов, которых можно достать без передвижения." #: lang/json/talk_topic_from_json.py -msgid " " -msgstr " " +msgid "*will engage all enemies." +msgstr "*будет атаковать всех врагов." #: lang/json/talk_topic_from_json.py msgid " OVERRIDE: " msgstr "ПЕРЕГРУЗКА:" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid " " +msgstr " " #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid " What should do?" msgstr "Что нужно делать?" @@ -212317,7 +207524,8 @@ msgstr "Держать строй: не иди в препятствия ряд #: src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/monexamine.cpp src/monexamine.cpp src/npc.cpp -#: src/pickup.cpp src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp +#: src/pickup.cpp src/player.cpp src/player.cpp src/player.cpp +#: src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." msgstr "Ничего особенного." @@ -212352,13 +207560,14 @@ msgid "Attack anything you want." msgstr "Нападай на кого хочешь." #: lang/json/talk_topic_from_json.py -msgid "*will not reserve any power for defense or utility CBMs." -msgstr "*не будет беречь энергию для защитной или вспомогательной бионики." +#, no-python-format +msgid "*will reserve 100% of CBM power for defense or utility CBMs." +msgstr "*будет беречь 100% энергии для защитной или вспомогательной бионики." #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 25% of CBM power for defense or utility CBMs." -msgstr "*будет беречь 25% энергии для защитной или вспомогательной бионики." +msgid "*will reserve 75% of CBM power for defense or utility CBMs." +msgstr "*будет беречь 75% энергии для защитной или вспомогательной бионики." #: lang/json/talk_topic_from_json.py #, no-python-format @@ -212367,13 +207576,12 @@ msgstr "*будет беречь 50% энергии для защитной ил #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 75% of CBM power for defense or utility CBMs." -msgstr "*будет беречь 75% энергии для защитной или вспомогательной бионики." +msgid "*will reserve 25% of CBM power for defense or utility CBMs." +msgstr "*будет беречь 25% энергии для защитной или вспомогательной бионики." #: lang/json/talk_topic_from_json.py -#, no-python-format -msgid "*will reserve 100% of CBM power for defense or utility CBMs." -msgstr "*будет беречь 100% энергии для защитной или вспомогательной бионики." +msgid "*will not reserve any power for defense or utility CBMs." +msgstr "*не будет беречь энергию для защитной или вспомогательной бионики." #: lang/json/talk_topic_from_json.py msgid "" @@ -212424,13 +207632,13 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 10% of total power." -msgstr "*1 будет перезаряжать КБМ до 10% от полного запаса." +msgid "*will recharge power CBMs until has 90% of total power." +msgstr "* будет перезаряжать КБМ до 90% от полного запаса." #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 25% of total power." -msgstr "*1 будет перезаряжать КБМ до 25% от полного запаса." +msgid "*will recharge power CBMs until has 75% of total power." +msgstr "*1 будет перезаряжать КБМ до 75% от полного запаса." #: lang/json/talk_topic_from_json.py #, no-python-format @@ -212439,13 +207647,13 @@ msgstr "*1 будет перезаряжать КБМ до 50% от полног #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 75% of total power." -msgstr "*1 будет перезаряжать КБМ до 75% от полного запаса." +msgid "*will recharge power CBMs until has 25% of total power." +msgstr "*1 будет перезаряжать КБМ до 25% от полного запаса." #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 90% of total power." -msgstr "* будет перезаряжать КБМ до 90% от полного запаса." +msgid "*will recharge power CBMs until has 10% of total power." +msgstr "*1 будет перезаряжать КБМ до 10% от полного запаса." #: lang/json/talk_topic_from_json.py msgid " When should consume supplies to recharge power CBMs?" @@ -212480,20 +207688,20 @@ msgid "" msgstr "Припасы почти закончились. Заряжайся до 10% максимального заряда." #: lang/json/talk_topic_from_json.py -msgid "*will not bother to aim at all." -msgstr "*не будет тратить время на прицеливание." - -#: lang/json/talk_topic_from_json.py -msgid "*will take time and aim carefully." -msgstr "*будет тратить время на прицеливание." +msgid "*will aim when it's convenient." +msgstr "*будет целиться, когда удобно." #: lang/json/talk_topic_from_json.py msgid "*will only shoot after taking a long time to aim." msgstr "*будет стрелять только после длительного прицеливания." #: lang/json/talk_topic_from_json.py -msgid "*will aim when it's convenient." -msgstr "*будет целиться, когда удобно." +msgid "*will take time and aim carefully." +msgstr "*будет тратить время на прицеливание." + +#: lang/json/talk_topic_from_json.py +msgid "*will not bother to aim at all." +msgstr "*не будет тратить время на прицеливание." #: lang/json/talk_topic_from_json.py msgid " How should aim?" @@ -212517,7 +207725,7 @@ msgstr "Не стреляй, если не можешь хорошо прице #: lang/json/talk_topic_from_json.py msgid "Why should I teach you?" -msgstr "Почему я должен обучать тебя?" +msgstr "Зачем мне обучать тебя?" #: lang/json/talk_topic_from_json.py msgid "Come on, we're friends." @@ -212536,81 +207744,81 @@ msgid "OVERRIDE: " msgstr "ПЕРЕГРУЗКА: " #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." msgstr "Следуй тем же правилам, что и…" @@ -212693,11 +207901,11 @@ msgstr "Ты действительно уходишь?" #: lang/json/talk_topic_from_json.py msgid "Yeah, I'm sure. Bye." -msgstr "Да, я уверен. Пока." +msgstr "Да, действительно. Пока." #: lang/json/talk_topic_from_json.py msgid "Nah, I'm just kidding." -msgstr "Не, я просто пошутил." +msgstr "Не, я просто шучу." #: lang/json/talk_topic_from_json.py msgid "Please go to this location…" @@ -212783,31 +207991,27 @@ msgstr "*пшшш-пшшш* принято, выдвигаюсь, приём." msgid "Sure thing, I'll make my way there." msgstr "Хорошо, я выдвигаюсь туда." -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, this summer heat is hitting me hard, let's take a quick break, how " "goes it ?" msgstr "" "Ох, эта летняя жара меня доконает, давай быстренько передохнём, , " -"как сам-то?" +"как у тебя-то дела?" #: lang/json/talk_topic_from_json.py msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" "Ладно, пусть это поможет мне не замёрзнуть при такой погоде. Как дела?" -#: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" -msgstr "Блин, тут же так темно? Что случилось?" - #: lang/json/talk_topic_from_json.py msgid "" "Well, it's the time of day for a quick break surely! How are you holding " @@ -212815,15 +208019,12 @@ msgid "" msgstr "Что ж, как раз подходящее время немного отдохнуть! Как у тебя дела?" #: lang/json/talk_topic_from_json.py -msgid "Well, I'm feeling pretty sick… are you doing OK though?" -msgstr "Ну, мне не совсем хорошо… А у тебя там всё нормально?" +msgid "Man it's dark out isn't it? what's up?" +msgstr "Блин, тут же так темно? Что случилось?" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " -"what's up?" -msgstr "" -"ОК, давай на минутку, о, и спасибо за помощь с тем делом, так что… Как дела?" +msgid "Well, I'm feeling pretty sick… are you doing OK though?" +msgstr "Ну, мне не совсем хорошо… А у тебя там всё нормально?" #: lang/json/talk_topic_from_json.py msgid "" @@ -212833,6 +208034,13 @@ msgstr "" "Конечно, и кстати, спасибо тебе, ты мне столько помогаешь! Ладно, , " "всё нормально?" +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " +"what's up?" +msgstr "" +"ОК, давай на минутку, о, и спасибо за помощь с тем делом, так что… Как дела?" + #: lang/json/talk_topic_from_json.py msgid "" "Now, we've got a moment, I was just thinking it's been a month or so since… " @@ -212907,14 +208115,14 @@ msgstr "Ладно, не делай резких движений…" msgid "Keep your distance!" msgstr "Не подходи ближе!" -#: lang/json/talk_topic_from_json.py -msgid "This is my territory, ." -msgstr "Это моя территория, ." - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is my territory, ." +msgstr "Это моя территория, ." + #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." msgstr "Успокойся. Я не причиню тебе зла." @@ -212931,14 +208139,14 @@ msgstr "" msgid "&Put hands up." msgstr "&Поднять руки." -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*бросает_своё_оружие." - #: lang/json/talk_topic_from_json.py msgid "*drops his weapon." msgstr "*бросает своё оружие." +#: lang/json/talk_topic_from_json.py +msgid "*drops_her_weapon." +msgstr "*бросает_своё_оружие." + #: lang/json/talk_topic_from_json.py msgid "Now get out of here" msgstr "А теперь убирайся." @@ -212967,14 +208175,6 @@ msgstr "Что случилось?" msgid "I don't care." msgstr "Мне всё равно." -#: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" -msgstr "У меня есть работа для тебя. Хочешь послушать?" - -#: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" -msgstr "У меня есть ещё одна работёнка для тебя. Хочешь послушать?" - #: lang/json/talk_topic_from_json.py msgid "I have other jobs for you. Want to hear about them?" msgstr "У меня для тебя есть и другая работа. Хочешь послушать?" @@ -212984,13 +208184,21 @@ msgid "I have more jobs for you. Want to hear about them?" msgstr "У меня для тебя есть ещё работа. Хочешь послушать?" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." -msgstr "У меня больше нет для тебя работы." +msgid "I have another job for you. Want to hear about it?" +msgstr "У меня есть ещё одна работёнка для тебя. Хочешь послушать?" + +#: lang/json/talk_topic_from_json.py +msgid "I just have one job for you. Want to hear about it?" +msgstr "У меня есть работа для тебя. Хочешь послушать?" #: lang/json/talk_topic_from_json.py msgid "I don't have any jobs for you." msgstr "У меня нет работы для тебя." +#: lang/json/talk_topic_from_json.py +msgid "I don't have any more jobs for you." +msgstr "У меня больше нет для тебя работы." + #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." @@ -213001,16 +208209,16 @@ msgid "Never mind, I'm not interested." msgstr "Неважно, мне не интересно." #: lang/json/talk_topic_from_json.py -msgid "What about it?" -msgstr "Что насчёт него?" +msgid "You're not working on anything for me now." +msgstr "Ты сейчас на меня не работаешь." #: lang/json/talk_topic_from_json.py msgid "Which job?" msgstr "Какое задание?" #: lang/json/talk_topic_from_json.py -msgid "You're not working on anything for me now." -msgstr "Ты сейчас на меня не работаешь." +msgid "What about it?" +msgstr "Что насчёт него?" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" @@ -213050,7 +208258,7 @@ msgstr "Неважно. Пока." #: lang/json/talk_topic_from_json.py msgid "I'm sorry… I failed." -msgstr "Прости… Я облажался." +msgstr "Прости… У меня не вышло." #: lang/json/talk_topic_from_json.py msgid "Not yet." @@ -213058,7 +208266,7 @@ msgstr "Ещё нет." #: lang/json/talk_topic_from_json.py msgid "I killed him." -msgstr "Я его убил." +msgstr "Он мёртв." #: lang/json/talk_topic_from_json.py msgid "I killed it." @@ -213094,27 +208302,27 @@ msgstr "Справедливость восторжествовала." #: lang/json/talk_topic_from_json.py msgid "I killed them. All of them." -msgstr "Я убил их. Их всех." +msgstr "Они мертвы. Все." #: lang/json/talk_topic_from_json.py msgid "I brought 'em." -msgstr "Я принёс." +msgstr "Мне удалось принёсти." #: lang/json/talk_topic_from_json.py msgid "I've taken care of it" -msgstr "Я позаботился об этом…" +msgstr "Мне удалось позаботиться об этом…" #: lang/json/talk_topic_from_json.py msgid "" "I found it, but I'm keeping it, and I'll find you another one. Let's talk " "about something else." msgstr "" -"Я нашёл, но пока попридержу, я найду тебе ещё. Давай поговорим о чём-нибудь " -"другом." +"У меня получилось найти, но пока попридержу, я найду тебе ещё. Давай " +"поговорим о чём-нибудь другом." #: lang/json/talk_topic_from_json.py msgid "I found it, but I'm keeping it, and I'll find you another one. Bye!" -msgstr "Я нашёл, но пока попридержу, я найду тебе ещё. Пока!" +msgstr "У меня получилось найти, но пока попридержу, я найду тебе ещё. Пока!" #: lang/json/talk_topic_from_json.py msgid "Mission success! I don't know what else to say." @@ -213122,7 +208330,7 @@ msgstr "Миссия выполнена! Тут и говорить нечего #: lang/json/talk_topic_from_json.py msgid "Glad to help. I need no payment." -msgstr "Рад был помочь. Оплаты не надо." +msgstr "Приятно было помочь. Оплаты не надо." #: lang/json/talk_topic_from_json.py msgid "How about some items as payment?" @@ -213134,15 +208342,15 @@ msgstr "Может, ты сможешь обучить меня чему-ниб #: lang/json/talk_topic_from_json.py msgid "Glad to help. I need no payment. Bye!" -msgstr "Рад был помочь. Мне не нужна оплата. Пока!" +msgstr "Приятно было помочь. Мне не нужна оплата. Пока!" #: lang/json/talk_topic_from_json.py msgid "Glad to help." -msgstr "Рад был помочь." +msgstr "Приятно было помочь." #: lang/json/talk_topic_from_json.py msgid "Glad to help. Bye!" -msgstr "Рад был помочь. Пока!" +msgstr "Приятно было помочь. Пока!" #: lang/json/talk_topic_from_json.py msgid "Well, um, sorry." @@ -213150,7 +208358,7 @@ msgstr "Ну… эмм… прости." #: lang/json/talk_topic_from_json.py msgid "I'm sorry. I did what I could." -msgstr "Прости, я сделал всё, что мог." +msgstr "Прости, я сделал(а) всё, что получилось." #: lang/json/talk_topic_from_json.py msgid "Sure, here you go!" @@ -213229,48 +208437,48 @@ msgid "Thanks!" msgstr "Спасибо!" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for not telling you." -msgstr "У меня есть причины не рассказывать тебе об этом." +msgid "Focus on the road, mate!" +msgstr "Смотри на дорогу, бро!" #: lang/json/talk_topic_from_json.py -msgid "Nothing comes to my mind now. Ask me later perhaps?" -msgstr "Ничего в голову не лезет. Может позже спросишь?" +msgid "I'm too thirsty, give me something to drink." +msgstr "Меня мучает жажда, дай мне чего-нибудь попить." + +#: lang/json/talk_topic_from_json.py +msgid "I'm too hungry, give me something to eat." +msgstr "Меня голод мучает, дай мне чего-нибудь поесть." #: lang/json/talk_topic_from_json.py msgid "I'm too tired, let me rest first." -msgstr "Я слишком устал, дай мне сначала отдохнуть." +msgstr "Совсем не осталось сил, дай мне сначала отдохнуть." #: lang/json/talk_topic_from_json.py -msgid "I'm too hungry, give me something to eat." -msgstr "Я очень голоден, дай мне чего-нибудь поесть." +msgid "Nothing comes to my mind now. Ask me later perhaps?" +msgstr "Ничего в голову не лезет. Может позже спросишь?" #: lang/json/talk_topic_from_json.py -msgid "I'm too thirsty, give me something to drink." -msgstr "Меня мучает жажда, дай мне чего-нибудь попить." +msgid "I have some reason for not telling you." +msgstr "У меня есть причины не рассказывать тебе об этом." #: lang/json/talk_topic_from_json.py msgid "I must focus on the road!" msgstr "Мне надо смотреть на дорогу!" -#: lang/json/talk_topic_from_json.py -msgid "Focus on the road, mate!" -msgstr "Смотри на дорогу, бро!" - #: lang/json/talk_topic_from_json.py msgid "Ah, okay." msgstr "Ну, ладно." #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "И почему я должен пойти с тобой?" +msgid "Not until I get some antibiotics..." +msgstr "Не раньше, чем я получу антибиотики…" #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." -msgstr "Ты об этом уже спрашивал; спроси снова попозже." +msgstr "Ты об этом уже спрашивал(а); спроси снова попозже." #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "Не раньше, чем я получу антибиотики…" +msgid "Why should I travel with you?" +msgstr "И с чего мне идти с тобой?" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." @@ -213330,7 +208538,7 @@ msgstr "Хорошо. Веди нас." #: lang/json/talk_topic_from_json.py msgid "Good. Something else…" -msgstr "Хорошо. Что-нибудь ещё…" +msgstr "Хорошо. Кое-что ещё…" #: lang/json/talk_topic_from_json.py msgid "Alright, let's go." @@ -213358,23 +208566,23 @@ msgstr "Нет, мы здесь будем в порядке." #: lang/json/talk_topic_from_json.py msgid "On second thought, never mind." -msgstr "Если ещё раз подумать, то неважно." +msgstr "А впрочем, неважно." #: lang/json/talk_topic_from_json.py -msgid "I have some reason for denying you training." -msgstr "У меня есть причины не учить тебя." +msgid "I can't train you properly while you're operating a vehicle!" +msgstr "Я не могу полноценно обучать тебя, пока ты за рулём!" #: lang/json/talk_topic_from_json.py msgid "Give it some time, I'll show you something new later..." -msgstr "Дайте мне немного времени, и я вам покажу что-то новое…" +msgstr "Дай мне немного времени, и я научу тебя чему-нибудь еще…" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while I'm operating a vehicle!" -msgstr "Я не могу тебя учить, когда я за рулём!" +msgid "I have some reason for denying you training." +msgstr "У меня есть причины не учить тебя." #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while you're operating a vehicle!" -msgstr "Я не могу полноценно обучать тебя, пока ты за рулём!" +msgid "I can't train you properly while I'm operating a vehicle!" +msgstr "Я не могу тебя учить, когда я за рулём!" #: lang/json/talk_topic_from_json.py msgid "Not a bloody chance, I'm going to get left behind!" @@ -213390,7 +208598,7 @@ msgstr "Я на страже." #: lang/json/talk_topic_from_json.py msgid "I need you to come with me." -msgstr "Нужно, чтобы ты пошёл со мной." +msgstr "Тебе нужно пойти со мной." #: lang/json/talk_topic_from_json.py msgid "See you around." @@ -213406,19 +208614,19 @@ msgstr "Я дам вам некоторое пространство." #: lang/json/talk_topic_from_json.py msgid "I'd prefer to keep that to myself." -msgstr "Я бы предпочёл, держать это при себе." +msgstr "Мне лучше держать это при себе." #: lang/json/talk_topic_from_json.py msgid "I understand…" msgstr "Я понимаю…" #: lang/json/talk_topic_from_json.py -msgid "Why should I share my equipment with you?" -msgstr "С какой стати я буду делиться с тобой своим имуществом?" +msgid "You just asked me for stuff; ask later." +msgstr "Ты уже спрашивал(а) о снаряжении; спроси попозже." #: lang/json/talk_topic_from_json.py -msgid "You just asked me for stuff; ask later." -msgstr "Ты уже спрашивал о снаряжении; спроси попозже." +msgid "Why should I share my equipment with you?" +msgstr "С какой стати я буду делиться с тобой своим имуществом?" #: lang/json/talk_topic_from_json.py msgid "Okay, fine." @@ -213470,7 +208678,7 @@ msgstr "Спасибо, позже увидимся!" #: lang/json/talk_topic_from_json.py msgid "You picked up something that does not belong to you..." -msgstr "Ты взял кое-что чужое…" +msgstr "Ты взял(а) кое-что чужое…" #: lang/json/talk_topic_from_json.py msgid "Okay, okay, this is all a misunderstanding. Sorry, I'll drop it now." @@ -213522,7 +208730,7 @@ msgstr ", и если будешь переспрашивать, !" -msgstr " !" +msgstr ", , !" #: lang/json/talk_topic_from_json.py msgid "Okay, okay, sorry." @@ -213564,6 +208772,10 @@ msgstr "Приятно иметь с тобой дело!" msgid "You might be seeing more of me…" msgstr "Думаю, мы ещё встретимся…" +#: lang/json/talk_topic_from_json.py +msgid "Hey again. *kzzz*" +msgstr "Снова привет. *жжж*" + #: lang/json/talk_topic_from_json.py msgid "" "I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " @@ -213572,10 +208784,6 @@ msgstr "" "Я… Я свободен. *Жжжт* Я действительно свободен! *бжжж* Слушай, ты первый " "человек, которого я вижу за долгое время." -#: lang/json/talk_topic_from_json.py -msgid "Hey again. *kzzz*" -msgstr "Снова привет. *жжж*" - #: lang/json/talk_topic_from_json.py msgid "Hey. Let's chat for a second." msgstr "Эй, давай немножко поболтаем." @@ -213619,7 +208827,8 @@ msgid "" "I wouldn't have pulled your chip out if I didn't want you to think for " "yourself." msgstr "" -"Я бы не вытащил твой чип, если бы не хотел, чтоб ты думал самостоятельно." +"Зачем мне вытаскивать твой чип, если я не хочу, чтоб ты думал " +"самостоятельно?" #: lang/json/talk_topic_from_json.py msgid "" @@ -213734,7 +208943,7 @@ msgstr "Расскажи мне больше про лагеря и еду." #: lang/json/talk_topic_from_json.py msgid "Tell me more about camp missions." -msgstr "Расскажи мне больше заданиях в лагере." +msgstr "Расскажи мне больше о заданиях в лагере." #: lang/json/talk_topic_from_json.py msgid "Tell me about building a camp." @@ -213772,8 +208981,8 @@ msgid "" " All of your faction camps can be stocked with food, and your companions will eat from that food when performing camp missions, or even when they're just hungry and near the camp.\n" " Currently, faction camps can be created in fields, in fire stations, and in some evac shelters." msgstr "" -"Каждый лагерь фракции имеет доску объявлений с самого начала. Ты можешь просмотреть доску объявлений, чтобы получить список доступных заданий и назначить НПС работать над ними. Доска объявлений является основным способом взаимодействия с лагерем.\n" -" Если и у тебя и у твоего спутника есть двусторонняя радиосвязь, ты можешь посылать его на задания, использую радио.\n" +"Каждый лагерь фракции начинается с доски объявлений. Ты можешь просмотреть доску объявлений, чтобы получить список доступных заданий и назначить НПС работать над ними. Доска объявлений является основным способом взаимодействия с лагерем.\n" +" Если и у тебя и у твоего спутника есть двусторонняя радиосвязь, ты можешь посылать его на задания, используя рацию.\n" " Когда ты попросишь компаньона создать лагерь, он поставит доску объявлений, где сейчас находится, и это создаст лагерь фракций на текущем тайле на карты. Лагерь фракций имеет центральный тайл, на котором находится доска объявлений, и, возможно, одно или несколько расширений в соседних тайлах.\n" " Во всех твоих лагерях может храниться еда, которую будут есть твои компаньоны при выполнении заданий, или даже, когда они просто голодны и находятся рядом с лагерем.\n" " В настоящее время, лагеря фракции могут создаваться на полях, на пожарных станциях и в некоторых эвакуационных убежищах." @@ -213807,7 +209016,7 @@ msgid "" msgstr "" "Когда ты назначишь союзников на задание лагеря, они уйдут делать, что велено. По истечению срока задания ты увидишь новую запись на доске объявлений, с результатами предыдущей миссии о том, что они вернулись и завершили миссию, улучшили лагерь, вернулись с охоты, сделали что-то полезное или любые другие результаты задания.\n" " Существуют следующие виды заданий в лагерях фракции: создание лагеря, набор новых союзников, охота и рыбная ловля, добыча материалов, сельское хозяйство, разборка автомобилей и многое другое. Но не все задания могут быть доступны сразу. Тебе может потребоваться построить дополнительные здания или расширить лагерь, чтобы получить доступ к некоторым миссиям.\n" -" Некоторые задания можно выполнять и без лагеря, просто попросив своих союзников, но строительство лагеря может быть выполнено только по заданиям в лагере фракции.\n" +" Некоторые задания можно выполнять и без лагеря, просто попросив своих союзников, но строительство лагеря может быть выполнено только через задания в лагере фракции.\n" " Ты назначаешь задания, взаимодействуя с доской объявлений. Сначала там можно увидеть задания для центрального тайла лагеря. Если в лагере будут расширения, то можно выбирать расширения, чтобы увидеть доступные миссии для них.\n" " Помни, компаньонов в походных миссиях нужно кормить. Они разозлятся, если выполнят миссию, а в кладовках будет пусто.\n" " Существует также одна специальная миссия под названием «Экстренный отзыв». Можешь использовать её, чтобы отозвать любого компаньона из миссии, но это отменяет миссию и тратит впустую любые ресурсы, использованные на ней. Используй её только для отзыва союзников, когда что-то пошло не так и ты не можешь заставить их вернуться каким-либо другим способом." @@ -213823,8 +209032,8 @@ msgid "" " Each camp location will have a variety of upgrade missions for it. The various missions have descriptions. In general, though, you'll need to establish housing if you want to expand, and some missions such as hunting or recruiting will require that you have some kind of kitchen or office that you can use to help schedule activities." msgstr "" "В настоящее время есть три вида лагерей, которые ты можешь построить: модульный полевой лагерь, лагерь в пожарной части и лагерь в эвакуационном убежище. Раньше был четвертый, называемый примитивным полевым лагерем, но теперь их нельзя строить, только улучшать.\n" -" Модульные полевые лагеря являются наиболее гибким видом лагерей, поскольку их можно построить, практически, где угодно, особенно, где есть достаточно места для расширений, но ты начинаешь с нуля в поле и должен построить каждое здание самостоятельно, поэтому они требуют много ресурсов. Пожарные и эвакуационные лагеря строятся быстрее, так как ты начинаешь в существующем здании, но для этого надо найти подходящее здание и там может не быть места для расширений.\n" -" Каждый тип лагеря будет иметь свои миссии по его улучшению. Потом посмотришь их описания. Однако, в основном, тебе нужно будет обустроить жилье, если захочешь расширить лагерь, и для некоторых миссий, таких как охота или вербовка, потребуется какая-нибудь кухня или офис, которые ты можешь использовать для планирования мероприятий." +" Модульные полевые лагеря являются наиболее гибким видом лагерей, поскольку их можно построить практически,где угодно, особенно там, где есть достаточно места для расширений, но ты начинаешь с нуля в поле и должен построить каждое здание самостоятельно, поэтому они требуют много ресурсов. Пожарные и эвакуационные лагеря строятся быстрее, так как ты начинаешь в существующем здании, но для этого надо найти подходящее здание, и там может не оказаться места для расширений.\n" +" Каждый тип лагеря будет иметь свои миссии по его улучшению. Потом посмотришь их описания. В основном тебе нужно будет обустроить жилье, если захочешь расширить лагерь, и для некоторых миссий, таких как охота или вербовка, потребуется какая-нибудь кухня или офис, которые ты можешь использовать для планирования мероприятий." #: lang/json/talk_topic_from_json.py msgid "Tell me about modular field camps." @@ -213852,7 +209061,7 @@ msgid "" " 4. You can build various small features such as root cellars to preserve food or a radio tower to make it easier to recruit more companions.\n" " Each new construction in a modular camp can be made from a different material, so you aren't constrained by what you start with. Tents are fast to put up, but fragile and likely to get destroyed by zombies. The central building has to be made from wattle-and-daub, wood, or metal, and requires more materials if the side rooms are made from tents." msgstr "" -"Модульные лагеря являются наиболее гибким видом лагерей, но для их строительства требуется много времени и ресурсов. Ты начинаешь с пустого поля и оно должно быть настоящим пустым полем, а не полем на ранчо или ферме и дальше строишь всё с нуля. Можешь строить из глины, если хочешь попроще, деревянных панелей, если у тебя много гвоздей, металлических пластин, если ты такой сварщик, или просто можно разбить палатки, если спешишь.\n" +"Модульные лагеря являются наиболее гибким видом лагерей, но для их строительства требуется много времени и ресурсов. Ты начинаешь с пустого поля, и оно должно быть настоящим пустым полем, а не полем на ранчо или ферме, и дальше строишь всё с нуля. Можешь строить из глины, если хочешь попроще, деревянных панелей, если у тебя много гвоздей, металлических пластин, если ты такой сварщик, или просто можно разбить палатки, если спешишь.\n" " Начни с постройки навеса и кровати в северо-восточном углу центрального лагеря, затем добавь камин и расширяйся, пока не появится небольшое укрытие для двух человек. Когда это будет сделано, ты можешь расширить лагерь различными способами:\n" " 1. Можно построить до 5 зданий или лачуг, по 3 на каждой стороне лагеря.\n" " 2. Можно построить центральное здание в южной половине лагеря, посреди имеющихся зданий. Центральное здание будет действовать как командный центр, позволяя вашему лагерю выполнять охоту, вербовку и боевые патрулирования.\n" @@ -213873,7 +209082,7 @@ msgid "" "Fire stations make good basecamps. You start with a brick building with secure metal doors, so you're not going to see your efforts destroyed by zombies. On the downside, there may not be many fields around, so you may not be able to expand much.\n" " Fire station camps are also very compact. There isn't much living space, but you can build a small pottery or blacksmithy, a chop shop in one of the garage bays, and even tear up some of the pavement to create a garden. The existing kitchen makes it easy to cook from the start, though you may need to spruce it up a bit." msgstr "" -"Сделать лагерь в пожарной части — хорошая идея. Там у тебя уже будет кирпичное здание с безопасными металлическими дверями, поэтому ты не увидишь, как зомби порушат все наши усилия. С другой стороны, вокруг может быть не так много места, так что там ничего особо не расширишь.\n" +"Сделать лагерь в пожарной части — хорошая идея. Там у тебя уже будет кирпичное здание с безопасными металлическими дверями, поэтому ты вряд ли увидишь, как зомби порушат все наши усилия. С другой стороны, вокруг может быть не так много места, так что там ничего особо не расширишь.\n" " Пожарные станции также очень компактны. Там не так много жилого пространства, но ты сможешь построить небольшую гончарную или кузнечную мастерскую, гараж и даже разобрать часть тротуара, чтобы разбить сад. Существующая кухня позволяет легко готовить с самого начала, хотя, возможно, придется немного её подремонтировать." #: lang/json/talk_topic_from_json.py @@ -213899,11 +209108,11 @@ msgid "" msgstr "" "В каждом лагере может быть до 8 расширений, по одному на каждой смежной клетке глобальной карты. Расширениями, например, могут быть фермерские поля или мануфактуры для изготовления всевозможных вещей, которые облегчают жизнь.\n" " Тебе нужны две кровати в комнате в центральном лагере для каждого расширения, и, в настоящее время, расширения могут быть построены только на свободном месте, и должны быть построены с нуля.\n" -" Миссии по расширению отображаются в отдельных вкладках на доске объявлений лагеря, по одному набору миссий в каждой локации, и тебе надо нажать «Таб», чтобы увидеть их. В настоящее время доступны расширения:\n" -" -- Ферма: это паханные поля, которые ты можешь засеять сам или отправить на это дело компаньона. Растения здесь растут нормально.\n" +" Миссии по расширению отображаются в отдельных вкладках на доске объявлений лагеря, по одному набору миссий в каждой локации, и тебе надо нажать «TAB», чтобы увидеть их. В настоящее время доступны расширения:\n" +" -- Ферма: это паханные поля, которые ты можешь засеять сам или отправить на это дело компаньона. Растения обычно растут здесь.\n" " -- Гараж: это большое здание. Твои друзья могут разбирать здесь тачки по твоей просьбе. Конечно, ты также можешь приказать разобрать автомобиль и без гаража, так что это расширение не очень полезно.\n" " -- Столовая: это расширенная кухня, столовая и кладовая.\n" -" -- Животноводческая ферма: это модульный комплекс зданий для содержания домашнего скота, например, коров, лошадей или циплят. Животные в комплект не входят!\n" +" -- Животноводческая ферма: это модульный комплекс зданий для содержания домашнего скота, например, коров, лошадей или цыплят. Животные в комплект не входят!\n" " -- Солеварня: это небольшое расширение для переработки соли.\n" " -- Мастерская: это большое расширение для выполнения всех видов работ. Компаньоны могут использовать часть приспособлений в этом расширении, чтобы изготовить некоторые предметы намного быстрее, чем если ты бы делал их вручную.\n" " -- Центральное хранилище: это большое здание для хранения всякой всячины." @@ -213921,7 +209130,7 @@ msgid "" " The canteen, saltworks, livestock area, and storage area probably shouldn't be your first expansions, but they all have their uses." msgstr "" "Начальный лагерь не займет много времени, и ты можешь использовать этот лагерь, чтобы кормить своих компаньонов без необходимости регулярно давать им еду, поэтому рекомендуется создать минимальный лагерь, где бы ты ни находился.\n" -" Насколько ты хочешь расширить свой лагерь, зависит только от тебя. Модульный полевой лагерь может быть очень ресурсоёмким, но его создание позволяет отправлять компаньонов на охоту и фармить за тебя, так что это окупается. Если это еще не сделано, ты должен улучшить северо-восточную палатку до состояния, где можно построить колодец с водой. Или если ты начал с пожарной станции или лагеря эвакуационного убежища, то должен построить колодец с водой как можно скорее.\n" +" Насколько ты хочешь расширить свой лагерь, зависит только от тебя. Модульный полевой лагерь может быть очень ресурсоёмким, но его создание позволяет отправлять компаньонов на охоту и возделывать землю за тебя, так что это окупается. Если это тебя не интересует, ты можешь улучшить северо-восточную палатку до состояния, когда можно построить колодец с водой. Или если ты начал с пожарной станции или лагеря эвакуационного убежища, то должен построить колодец с водой как можно скорее.\n" " Если у тебя есть доступ к пожарной части или эвакуационному убежищу, можешь построить в них свой лагерь. Оба эти лагеря очень компактны, но имеют почти такую ​​же функциональность, что и модернизированный полевой лагерь и не требуют так много ресурсов.\n" " Если ты расширяешь свой лагерь, рассмотри возможность начать с фермы или мастерской. Ферма позволяет легко выращивать собственную еду, а мастерская позволяет изготовить кое-какие ресурсы, необходимые для улучшения лагеря.\n" " Столовая, солеварня, животноводческая ферма и склад, вероятно, не должны быть твоими первыми расширениями, но они всё равно имеют свои применения." @@ -213961,8 +209170,8 @@ msgid "" msgstr "" "Эй, босс. Я тут подумал, мне ж необязательно сидеть в этой палатке и не " "приносить никакой пользы. Это халява, но я способен на большее. Мы б могли " -"установить доску с объявлениями, чтоб ты мог написать там, что нужно " -"сделать. Что скажешь?" +"установить доску с объявлениями, чтоб тебе можно было написать там, что " +"нужно сделать. Что скажешь?" #: lang/json/talk_topic_from_json.py msgid "What needs to be done?" @@ -214350,7 +209559,7 @@ msgid "" "was cool." msgstr "" "Я всю жизнь работал тут поваром, не самое лучшее заведение, но начальство " -"классное." +"было классное." #: lang/json/talk_topic_from_json.py msgid "This is a test conversation that shouldn't appear in the game." @@ -214794,28 +210003,28 @@ msgid "This is a low driving test response." msgstr "Это тестовый ответ низкого уровня вождения." #: lang/json/talk_topic_from_json.py -msgid "Greeting citizen, what brings you to the FoodLair?" -msgstr "Здравствуй, гражданин, что привело тебя в Дом Поешь-ки?" +msgid "Greetings friend, it's nice to see you." +msgstr "Привет, дружище, приятно увидеться." #: lang/json/talk_topic_from_json.py -msgid "Still here? Take your time, it's rough out there." -msgstr "Всё ещё тут? Не спеши, снаружи сурово." +msgid "So you're back… Explain yourself!" +msgstr "Так ты снова тут… Объяснись!" #: lang/json/talk_topic_from_json.py -msgid "Greetings friend, it's nice to see you." -msgstr "Привет, дружище, приятно увидеться." +msgid "What sorcery is this?" +msgstr "Что это за магия?" #: lang/json/talk_topic_from_json.py msgid "Welcome home Foodkid!" msgstr "Привет, Поешь-ка-младший!" #: lang/json/talk_topic_from_json.py -msgid "What sorcery is this?" -msgstr "Что это за магия?" +msgid "Still here? Take your time, it's rough out there." +msgstr "Всё ещё тут? Не спеши, снаружи сурово." #: lang/json/talk_topic_from_json.py -msgid "So you're back… Explain yourself!" -msgstr "Так ты вернулся… Объяснись!" +msgid "Greeting citizen, what brings you to the FoodLair?" +msgstr "Здравствуй, гражданин, что привело тебя в Дом Поешь-ки?" #: lang/json/talk_topic_from_json.py msgid "Greetings… Foodperson?" @@ -214865,8 +210074,7 @@ msgstr "Э… Ладно, приятно познакомиться, Поешь- #: lang/json/talk_topic_from_json.py msgid "Do not mock me, for my strength is quite real! Get out of here now!" -msgstr "" -"Не дразни меня, для своих сил я довольно настоящий! Немедленно убирайся!" +msgstr "Не дразни меня, ибо мощь моя вполне настоящая! Немедленно убирайся!" #: lang/json/talk_topic_from_json.py msgid "Sheesh, ok, calm down, I'm leaving!" @@ -214926,7 +210134,7 @@ msgstr "Повтори, пожалуйста, про предложение ст #: lang/json/talk_topic_from_json.py msgid "Alright, I thought about this, what do you say about we team up?" -msgstr "Ясно, я об этом думал, что скажешь насчёт объединиться?" +msgstr "Ясно, обдумав, спрошу, что скажешь насчёт объединиться?" #: lang/json/talk_topic_from_json.py msgid "I'm good, bye." @@ -214942,11 +210150,11 @@ msgstr "Итак, давай посмотрим, чего ты стоишь." #: lang/json/talk_topic_from_json.py msgid "You're not ready for this." -msgstr "Ты к этому не готов." +msgstr "Ты мне не подходишь - я не вижу готовности." #: lang/json/talk_topic_from_json.py msgid "But I am worthy!" -msgstr "Но я достоин!" +msgstr "Но я подхожу, во мне есть готовность!" #: lang/json/talk_topic_from_json.py msgid "I can teach you a few tricks." @@ -215200,8 +210408,8 @@ msgid "" "fireflies to catch." msgstr "" "У меня тогда был мой старый грузовичок, синенький. Мы называли его «старый " -"крикун». Как-то раз я и Марти Гампс — или, как я его звал, Старина Гэ — " -"ехали летом на нашем крикуне на гору Гринвуд искать светлячков." +"брехун». Как-то раз я и Марти Гампс — или, как я его звал, Старина Гэ — " +"ехали летом на нашем брехуне на гору Гринвуд искать светлячков." #: lang/json/talk_topic_from_json.py msgid "Fireflies. Got it." @@ -215262,10 +210470,10 @@ msgstr "" "Когда-то на верхушке горы Гринвуд стояла станция лесничих, это было ещё до " "того, как ты родился. В том году станция сгорела, говорили, что из-за " "молнии, но мы все знаем, её спалили детишки во время вечеринки. Мы со " -"Стариной Гэ вышли из старого крикуна и отправились посмотреть. В выгоревшей " +"Стариной Гэ вышли из Старого брехуна и отправились посмотреть. В выгоревшей " "развалине будто были привидения, мы скумекали, что там наверняка рылись " -"проклятые детишки. Старина Гэ притащил свой 18-й калибр, и правильно сделал," -" учитывая, что мы увидали." +"чертовы детишки. Старина Гэ выпустил свой 18-й калибр, и правильно сделал, " +"учитывая, что мы увидали." #: lang/json/talk_topic_from_json.py msgid "What did you see?" @@ -215292,10 +210500,10 @@ msgstr "" "Терпение! Я почти закончил. Когда-то на верхушке горы Гринвуд стояла станция" " лесничих, это было ещё до того, как ты родился. В том году станция сгорела," " говорили, что из-за молнии, но мы все знаем, её спалили детишки во время " -"вечеринки. Мы со Стариной Гэ вышли из старого крикуна и отправились " +"вечеринки. Мы со Стариной Гэ вышли из старого брехуна и отправились " "посмотреть. В выгоревшей развалине будто были привидения, мы скумекали, что " -"там наверняка рылись проклятые детишки. Старина Гэ притащил свой 18-й " -"калибр, и правильно сделал, учитывая, что мы увидали." +"там наверняка рылись чертовы детишки. Старина Гэ выпустил свой 18-й калибр, " +"и правильно сделал, учитывая, что мы увидали." #: lang/json/talk_topic_from_json.py msgid "" @@ -215371,9 +210579,9 @@ msgstr "" "сказал мне по телефону, что китайцы напали на нас, чего-то там про " "водоснабжение… Сейчас мне не очень-то верится, но тогда это было лучшее " "объяснение. Поначалу всё было жутко, группа людей — — дрались как " -"бешеные животные. Потом стало хуже. Я пытался управлять ситуацией, но мы с " -"помощниками были одни против целого бунтующего города. А вот затем наступил " -"полный пиздец." +"бешеные животные. Потом стало хуже. Я пытался контролировать ситуацию, но мы" +" с помощниками были одни против целого бунтующего города. А вот затем " +"наступил полный пиздец." #: lang/json/talk_topic_from_json.py msgid "What happened?" @@ -215413,10 +210621,9 @@ msgstr "" "были первыми ордами . Толку от нас не было ни хрена. Уверен, мы " "поубивали куда больше гражданских. Даже в моём отряде боевой дух был на " "нуле, мы просто палили, куда придётся. Потом по нам что-то вдарило, что-то " -"большое. Может, и бомба, я правда не помню. Я очнулся лежащим под " -"полицейским фургоном. Я ничего не видел… но я всё слышал, . Я мог " -"слышать всё. Я лежал под фургоном часы, может, дни, даже не пытаясь " -"выбраться." +"большое. Может и бомба, я правда не помню. Я очнулся лежащим под полицейским" +" фургоном. Я ничего не видел… но я всё слышал, . Я мог слышать всё. " +"Я лежал под фургоном часы, может, дни, даже не пытаясь выбраться." #: lang/json/talk_topic_from_json.py msgid "But you did get out." @@ -215592,8 +210799,8 @@ msgid "" msgstr "" "Нихера я не натворил. Эти мудаки схватили меня за хранение, это даже, блядь," " была не моя заначка. Чувак, сам я крэк не курю, эта хуйня мерзкая, я просто" -" нёс его своему другу Джонни. Понимаешь, сейчас тут настоящий, , " -"адище, но если б я увидел последнего ебучего копа, оно б окупилось." +" нёс его своему другу Джонни. Понимаешь, сейчас тут настоящий, 1, адище, но " +"если я больше не увижу ни одного ебучего копа, оно того стоит." #: lang/json/talk_topic_from_json.py msgid "What were you saying before?" @@ -215610,7 +210817,7 @@ msgstr "" "Мне повезло, когда случился . Я бомжевал в складе на " "краю города. Он был реально , и почти всех пацанов только что " "арестовали в большой облаве с наркотой, но я ускользнул. Я боялся, они " -"подумают, что я их сдал и придут за мной, но эй, теперь я спокоен." +"подумают, что я их сдал, и придут за мной, но эй, теперь я спокоен." #: lang/json/talk_topic_from_json.py msgid "Woah, lucky for you. How did you find out about ?" @@ -215774,7 +210981,7 @@ msgstr "" "смотрят на Землю, как миллиард крошечных чёрных глаз. А потом они моргают и " "отворачиваются, и потом в моём сне Земля становится точно такой же чёрной " "звездой, и я остаюсь один, один-одинёшенек, и мне очень страшно. Это самый " -"худший сон. Есть и другие." +"страшный сон. Есть и другие." #: lang/json/talk_topic_from_json.py msgid "Tell me some more of your weird dreams." @@ -215834,8 +211041,9 @@ msgid "" "forest before I found the courage to start picking off some of those dead " "monsters. I guess I was getting desperate." msgstr "" -"Я долго копался в лесу в поисках ревеня и овощей, пока не набрался храбрости" -" и не начал отстреливать этих мёртвых тварей. Наверное, я был в отчаянии." +"Я долго копался в лесу, перебиваясь ревенём и корешками, пока не набрался " +"храбрости и не начал отстреливать этих мёртвых тварей. Наверное, я был в " +"отчаянии." #: lang/json/talk_topic_from_json.py msgid "And that's it? You spent months just living off the land?" @@ -216200,15 +211408,15 @@ msgid "" " never thought I had anything like that in me." msgstr "" "Я не местный… Ты уже, наверно, понял по акценту, я из Великобритании. Я " -"писал диссертацию в Дартмутском Колледже. Я проделал полдороги к конференции" -" в Массачусетском Технологическом Институте, когда мне " -"помешал. Я отдыхал в маленьком забитом блохами мотеле на обочине дороги. " -"Когда я пошёл за завтраком — чем бы он ни был — чёртов жирный хозяин сидел " -"за своей стойкой в той же грязной одежде, что и прошлой ночью. Я думал, он " -"просто спал там, но когда он посмотрел на меня… Ну, ты знаешь, как выглядят " -"глаза зомби. Он бросился на меня, и я не думая среагировал. Я бил его по " -"голове планшетом, снова и снова, пока он не затих. Никогда не думал, что я " -"способен на такое." +"писал диссертацию в Дартмутском Колледже. Я проделал полдороги на " +"конференцию в Массачусетском Технологическом Институте, когда " +" отменил все конференции. Я отдыхал в маленьком забитом " +"блохами мотеле на обочине дороги. Когда я пошёл за завтраком — чем бы он ни " +"был — чёртов жирный хозяин сидел за своей стойкой в той же грязной одежде, " +"что и прошлой ночью. Я думал, он просто спал там, но когда он посмотрел на " +"меня… Ну, ты знаешь, как выглядят глаза зомби. Он бросился на меня, и я, не " +"думая, среагировал. Я бил его по голове планшетом, снова и снова, пока он не" +" затих. Никогда не думал, что я способен на такое." #: lang/json/talk_topic_from_json.py msgid "What did you do next?" @@ -216505,7 +211713,7 @@ msgstr "" "Я видел всё с самого начала, прежде, чем оно даже началось. Я работал в " "больнице. Сперва пошёл сплошной «белый код» — это означает агрессивных " "пациентов. Такое не входило в мою подготовку, поэтому услышал об этом только" -" потом… появились слухи про гиперагрессивных сумасшедших пациентов, " +" потом… Затем появились слухи про гиперагрессивных сумасшедших пациентов, " "казавшихся умершими, они напали на персонал и не обращали внимания, когда их" " пытались ударить. Потом один из них убил моего друга, и я понял, что тут не" " просто пара стрёмных случаев. На следующий день я взял больничный." @@ -216561,11 +211769,15 @@ msgstr "" "Военные. Они появились и заявили, что на моей земле будет какая-то передовая" " база, и потребовали, чтоб я эвакуировался в лагерь МЧС. Я даже не стал " "спорить… У меня было старое отцовское охотничье ружьё, у них " -"высокотехнологичное оружие. Хотя один из них штутил, что лагерь МЧС — это " -"как Аушвиц. Я улизнул от их водителя и решил направиться к моей сестре на " +"высокотехнологичное оружие. Хотя один из них шутил, что лагерь МЧС — это как" +" Аушвиц. Я улизнул от их водителя и решил направиться к моей сестре на " "север. Теоретически, наверно, я до сих пор к ней иду, хотя по правде я " "просто пытаюсь не умереть." +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "Я просто не могу сейчас об этом говорить. Не могу." + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a blur." @@ -216574,16 +211786,14 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke. I'd seen such horrible injuries, and then I… " -", I can't even talk about it." +"shift I… well, I broke." msgstr "" "Я работал в больнице, когда всё началось. Немного как в тумане. Какое-то " "время шли жуткие доклады, невероятная дичь про пациентов, воскресавших после" " смерти, но в целом дела шли своим чередом. Потом, ближе к концу, обстановка" " резко накалилась. Мы думали, Китай напал на нас, и именно так нам и " "сообщали. К нам поступали обезумевшие люди, покрытые ранами от пуль и " -"укусов. Примерно на половине своей смены я… в общем, я не выдержал. Я видел " -"такие кошмарные раны, и я… , я даже не могу об этом говорить." +"укусов. Примерно на половине своей смены я… В общем, я не выдержал." #: lang/json/talk_topic_from_json.py msgid "" @@ -216593,18 +211803,16 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke." +"shift I… well, I broke. I'd seen such horrible injuries, and then I… " +", I can't even talk about it." msgstr "" "Я работал в больнице, когда всё началось. Немного как в тумане. Какое-то " "время шли жуткие доклады, невероятная дичь про пациентов, воскресавших после" " смерти, но в целом дела шли своим чередом. Потом, ближе к концу, обстановка" " резко накалилась. Мы думали, Китай напал на нас, и именно так нам и " "сообщали. К нам поступали обезумевшие люди, покрытые ранами от пуль и " -"укусов. Примерно на половине своей смены я… В общем, я не выдержал." - -#: lang/json/talk_topic_from_json.py -msgid "I just can't talk about that right now. I can't." -msgstr "Я просто не могу сейчас об этом говорить. Не могу." +"укусов. Примерно на половине своей смены я… в общем, я не выдержал. Я видел " +"такие кошмарные раны, и я… , я даже не могу об этом говорить." #: lang/json/talk_topic_from_json.py msgid "It might help to get it off your chest." @@ -216803,11 +212011,11 @@ msgstr "" "вопли, потом выстрелы и взрывы, а потом стало тихо. В конце концов " "у меня кончилась еда, так что я набрался смелости и ночью выбрался из окна " "посмотреть на город. Морг служил мне базой какое-то время, но возле больницы" -" было слишком опасно, так что я ушёл искать злачное место. И вот я здесь." +" было слишком опасно, так что я ушёл искать место получше. И вот я здесь." #: lang/json/talk_topic_from_json.py msgid "Thanks for telling me that. " -msgstr "Спасибо, что рассказал. " +msgstr "Спасибо, что делишься. " #: lang/json/talk_topic_from_json.py msgid "" @@ -216941,13 +212149,13 @@ msgid "" "nostalgic references to a D&D game we played years earlier." msgstr "" "Для меня всё началось несколько дней до того, как настал . Я " -"биохимик. Я писал статью вместе с блестящей коллегой, Пэт Дионн. Я не " +"биохимик. Я писал статью вместе с блестящей коллегой, Пэт Дайонн. Я не " "говорил с Пэт целую вечность… Я слышал, правительство узнало про нашу " "диссертацию, узнало, что Пэт сделала всю тяжёлую работу, и тогда мы " "встречались последний раз за несколько лет. Так что я немного удивился, " "когда получил письмо от Pat.Dionne@FreeMailNow.co.ru… Даже ещё больше " "удивился, когда прочёл в письме ностальгические отсылки к игре D&D, в " -"которую мы играли намного раньше." +"которую мы играли много лет назад." #: lang/json/talk_topic_from_json.py msgid "I don't see where this is going." @@ -216972,7 +212180,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay…" -msgstr "Ладно…" +msgstr "Так…" #: lang/json/talk_topic_from_json.py msgid "" @@ -217012,7 +212220,7 @@ msgid "" msgstr "" "Я опоздал на эвакуацию, когда всё пошло по пизде. Застрял в городе на " "несколько дней, выжил, потому что прятался в подвалах, питаясь печеньем " -"девочек-скаутом и запивая тёплым корневым пивом. Наконец у меня получилось " +"гёрл-скаутов и запивая тёплым корневым пивом. Наконец у меня получилось " "улизнуть так, чтобы меня не слопали . Несколько дней я укрывался в " "заброшенном торговом центре, но мне была нужна еда, так что я отправился в " "леса искать пропитание. Получалось не очень-то хорошо, так что я типа рад, " @@ -217070,7 +212278,7 @@ msgid "" "bike." msgstr "" "Ты, наверное, помнишь, на что были похожи города. Полагаю, это был день " -"четвёртый. Когда я ступил наружу, я осознал, что происходит, или хотя бы " +"четвёртый. Когда я ступил наружу, я осознал, что происходит, или скорее " "осознал, что я без понятия, что происходит. Я видел толпу бунтовщиков, " "ломающих машину, а потом заметил, что один из них разбивает женскую голову. " "Я отменил свой поход за продуктами, убежал обратно в квартиру, прежде чем " @@ -217086,18 +212294,18 @@ msgstr "Спасибо, что поделился рассказом. plant " +"My husband made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"Моя жена выжила вместе со мной, но её сожрали эти чудовищные, , " +"Мой муж выжил вместе со мной, но его сожрали эти чудовищные, , " "растения за несколько дней до встречи с тобой. Не лучший год для меня." #: lang/json/talk_topic_from_json.py msgid "" -"My husband made it out with me, but got eaten by one of those plant " +"My wife made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" -"Мой муж выжил вместе со мной, но его сожрали эти чудовищные, , " +"Моя жена выжила вместе со мной, но её сожрали эти чудовищные, , " "растения за несколько дней до встречи с тобой. Не лучший год для меня." #: lang/json/talk_topic_from_json.py @@ -217173,10 +212381,9 @@ msgid "I'm sorry you lost someone." msgstr "Мне жаль, что тебе пришлось кого-то потерять." #: lang/json/talk_topic_from_json.py -msgid "Just another tale of love and loss. Not one I like to tell." -msgstr "" -"Просто ещё один рассказ про любовь и смерть. Не то, о чем мне " -"нравится говорить." +msgid "" +"I said, I don't wanna talk about it. How are you not understanding this?" +msgstr "Я сказал, я не хочу говорить. Чего тут непонятного?" #: lang/json/talk_topic_from_json.py msgid "" @@ -217187,9 +212394,10 @@ msgstr "" " будет." #: lang/json/talk_topic_from_json.py -msgid "" -"I said, I don't wanna talk about it. How are you not understanding this?" -msgstr "Я сказал, я не хочу говорить. Чего тут непонятного?" +msgid "Just another tale of love and loss. Not one I like to tell." +msgstr "" +"Просто ещё один рассказ про любовь и смерть. Не то, о чем мне " +"нравится говорить." #: lang/json/talk_topic_from_json.py msgid "You said you lost someone." @@ -217201,7 +212409,7 @@ msgstr "Забудь. Прости за эту тему." #: lang/json/talk_topic_from_json.py msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "Я ценю сантименты, но не думаю, что станет. Забей." +msgstr "Я ценю твою заботу, но не думаю, что станет. Забей." #: lang/json/talk_topic_from_json.py msgid "OK." @@ -217210,34 +212418,17 @@ msgstr "Хорошо." #: lang/json/talk_topic_from_json.py msgid "" "Oh, . This doesn't have anything to do with you, or with us." -msgstr "Да . Тебя или нас это вообще не должно касаться." - -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "Отлично, прекрасно. У меня была жена. Я потерял её." +msgstr "" +"Да . Тебя или наши с тобой отношения это вообще не должно " +"касаться." #: lang/json/talk_topic_from_json.py msgid "All right, fine. I had someone. I lost him." -msgstr "Отлично, прекрасно. У меня был муж. Я потеряла его." +msgstr "Ладно, хорошо. У меня был муж. Я потеряла его." #: lang/json/talk_topic_from_json.py -msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " -"zone. Things I can't describe lurching through the streets, crushing people" -" and cars. Soldiers trying to stop them, but hitting people in the " -"crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " -" made it alive." -msgstr "" -"Она была дома, когда упали бомбы, а мир превратился в преисподнюю. Я был на " -"работе. Я пытался добраться до нашего дома, но город превратился в поле боя." -" Неописуемые существа двигались по улицам, давя людей и машины. Солдаты " -"пытались остановить их, но с тем же успехом убивали людей перекрёстным " -"огнём. А потом случайные жертвы восставали и присоединялись к врагу. Если бы" -" речь не шла о моей жене, я бы просто убежал, но я сделал что смог и " -"проскочил. Я на самом деле, , выжил." +msgid "All right, fine. I had someone. I lost her." +msgstr "Ладно, хорошо. У меня была жена. Я потерял её." #: lang/json/talk_topic_from_json.py msgid "" @@ -217258,6 +212449,25 @@ msgstr "" " речь не шла о моём муже, я бы просто убежала, но я сделала что смогла и " "проскочила. Я на самом деле, , выжила." +#: lang/json/talk_topic_from_json.py +msgid "" +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " +"zone. Things I can't describe lurching through the streets, crushing people" +" and cars. Soldiers trying to stop them, but hitting people in the " +"crossfire as much as anything. And then the collateral damage would get " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " +" made it alive." +msgstr "" +"Она была дома, когда упали бомбы, а мир превратился в преисподнюю. Я был на " +"работе. Я пытался добраться до нашего дома, но город превратился в поле боя." +" Неописуемые существа двигались по улицам, давя людей и машины. Солдаты " +"пытались остановить их, но с тем же успехом убивали людей перекрёстным " +"огнём. А потом случайные жертвы восставали и присоединялись к врагу. Если бы" +" речь не шла о моей жене, я бы просто убежал, но я сделал что смог и " +"проскочил. Я на самом деле, , выжил." + #: lang/json/talk_topic_from_json.py msgid "You must have seen some shit." msgstr "Тебе пришлось насмотреться всякой херни." @@ -217281,9 +212491,9 @@ msgid "" "avoiding attention from zombies and other things." msgstr "" "Да уж, точно пришлось. Мне понадобилось два дня, чтобы пересечь город " -"пешком, с ночёвками на помойках и в подобных местах. Ночью получалось " -"двигаться быстрее, и мне сразу пришлось избегать военных. На них шли " -" как притянутые магнитом, и военные обычно стояли в местах " +"пешком, с ночёвками в помойных баках и в подобных местах. Ночью получалось " +"двигаться быстрее, и мне сразу пришлось научиться избегать военных. На них " +"шли как притянутые магнитом, и военные обычно стояли в местах " "скопления монстров. В некоторых частях города было довольно спокойно. В паре" " мест людей эвакуировали или убрали, и обычно туда не заходили. " "Чуть позже другие выжившие принялись занимать такие кварталы, так что мне " @@ -217304,12 +212514,12 @@ msgid "" "what I was going to see in there, but I had made it that far and I wasn't " "going to turn back." msgstr "" -"Первым предупреждением было то, что мой маршрут домой шёл от уцелевших " -"частей города к выжженным. Становилось только хуже. Сразу за моим домом " -"стоял полицейская баррикада с полностью бесполезной парой автоматических " -"турелей, бесцельно наблюдающими за бродячими зомби. Это было ещё до того, " -"как кто-то переключил их в режим стрельбы по кому угодно. Тогда они стреляли" -" только по пересекающим запретную зону. Славные времена, всегда можно быть " +"Первым плохим знаком было то, что мой маршрут домой шёл от уцелевших частей " +"города к выжженным. Становилось только хуже. Сразу за моим домом стоял " +"полицейская баррикада с полностью бесполезной парой автоматических турелей, " +"бесцельно наблюдающих за бродящими мимо зомби. Это было ещё до того, как " +"кто-то переключил их в режим стрельбы по кому угодно. Тогда они стреляли " +"только по пересекающим запретную зону. Славные времена, всегда можно быть " "уверенным в том, что бюрократия сумеет всё просрать самым впечатляющим " "способом. В общем, сам дом наполовину обрушился, в него врезался фургон " "спецназа. Наверно, можно было догадаться, что я увижу внутри, но мне " @@ -217323,26 +212533,6 @@ msgstr "По пути туда наверняка пришлось насмот msgid "Did you make it into the house?" msgstr "У тебя получилось проникнуть в дом?" -#: lang/json/talk_topic_from_json.py -msgid "" -"I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " -"the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirious by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then… well, then I did what you " -"have to do to the dead now. And then I packed up the last few fragments of " -"my life, and I try to never look back." -msgstr "" -"Да, получилось. Я потратил несколько часов, чтобы найти вход. А хочешь " -"знать, в чём самый пиздец? Типа, вот самый-самый? Моя жена была ещё жива. " -"Она всё это время была в подвале, придавленная куском обвалившегося пола. И " -"она потеряла много крови, она бредила, когда я её нашёл. Я не смог её " -"вытащить, так что я кормил и поил её и просто сидел рядом и держал её за " -"руку, пока она не умерла. А потом… Что ж, потом я сделал то, что сейчас " -"обычно приходится делать с мёртвыми. После этого я собрал несколько " -"последних кусочков моей жизни и стараюсь никогда не оглядываться назад." - #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " @@ -217363,6 +212553,26 @@ msgstr "" "приходится делать с мёртвыми. После этого я собрала несколько последних " "кусочков моей жизни и стараюсь никогда не оглядываться назад." +#: lang/json/talk_topic_from_json.py +msgid "" +"I did. Took a few hours to get an opening. And you wanna know the fucked " +"up part? Like, out of all this? My wife was still alive. She'd been in " +"the basement the whole time, pinned under a collapsed piece of floor. And " +"she'd lost a ton of blood, she was delirious by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then… well, then I did what you " +"have to do to the dead now. And then I packed up the last few fragments of " +"my life, and I try to never look back." +msgstr "" +"Да, получилось. Я потратил несколько часов, чтобы найти вход. А хочешь " +"знать, в чём самый пиздец? Типа, вот самый-самый? Моя жена была ещё жива. " +"Она всё это время была в подвале, придавленная куском обвалившегося пола. И " +"она потеряла много крови, она бредила, когда я её нашёл. Я не смог её " +"вытащить, так что я кормил и поил её и просто сидел рядом и держал её за " +"руку, пока она не умерла. А потом… Что ж, потом я сделал то, что сейчас " +"обычно приходится делать с мёртвыми. После этого я собрал несколько " +"последних кусочков моей жизни и стараюсь никогда не оглядываться назад." + #: lang/json/talk_topic_from_json.py msgid "" "I was at school for . Funny thing, actually: I was gearing " @@ -217371,7 +212581,7 @@ msgid "" msgstr "" "Я был в школе, когда начался . На самом деле забавно: я " "приготовился поиграть с друзьями в РПГ про зомби на выходных. Ха, не думал, " -"что она станет ролёвкой вживую! Ладно… Не, это вообще не забавно." +"что она станет ролёвкой вживую! Ладно… Не, это вообще не смешно." #: lang/json/talk_topic_from_json.py msgid "How did you survive school?" @@ -217391,9 +212601,9 @@ msgid "" msgstr "" "Ну я знатный, , задрот, но я не придурок. А вдобавок я кое в чём " "секу. Мы уже слышали про людей, возвращавшихся из мёртвых, на самом деле из-" -"за этого я затеял РПГ. Когда копы пришли запереть школу, я убежал с чёрного " -"хода. Я живу довольно далеко от города, но я никак не смог бы сесть на " -"автобус домой, поэтому пошёл пешком. Два часа. Слышал много сирен и даже " +"за этого я затеял РПГ. Когда копы пришли запереть школу, я убежал через " +"чёрный ход. Я живу довольно далеко от города, но я никак не смог бы сесть на" +" автобус домой, поэтому пошёл пешком. Два часа. Слышал много сирен и даже " "видел истребители в небе. Когда я вернулся, уже стемнело, но мама с папой " "ещё не пришли с работы. Я остался дома в надежде, что они появятся. Я " "посылал сообщения, но без ответа. Через несколько дней, ну… Новости " @@ -217516,8 +212726,8 @@ msgstr "" " лучшему? Учитывая, что сейчас творится, я зуб даю, мои воспоминания вовсе " "не счастливые. Кроме водительских прав, в бумажнике были детские фотографии…" " не то чтоб они меня как-то тронули. Я нигде не вижу никаких детей. Может, " -"потерять рассудок — это милосердие. Чёрт, может, это какой-то психический " -"срыв, и мой мозг сам всё натворил. Вот правда, я бы лучше сосредоточился на " +"потерять рассудок — это дар. Чёрт, может, это какой-то психический срыв, и " +"мой мозг сам всё натворил. Вот правда, я бы лучше сосредоточился на " "выживании и не беспокоился об этом." #: lang/json/talk_topic_from_json.py @@ -217996,8 +213206,8 @@ msgid "" "You know, I don't really want to say anymore. It's all behind me, and I'd " "like to keep it that way." msgstr "" -"Знаешь, я правда не хочу больше говорить. Всё уже позади, и мне б типа " -"хотелось, чтоб оно там и оставалось." +"Знаешь, я правда не хочу больше говорить. Всё уже позади, и мне бы хотелось," +" чтоб оно там и оставалось." #: lang/json/talk_topic_from_json.py msgid "" @@ -218108,8 +213318,8 @@ msgstr "" "то выжил. Я сидел в своём домике близ Чатэма и якобы завершал статью, но по " "большей части попивал виски и благодарил небо за должность. Славные деньки. " "Потом настал , пришли военные конвои и . Мой домик " -"раздавил , всего лишь незначительный ущерб после того, как в него " -"выстрелил танк. С тех пор я в отчаянных бегах." +"ненароком раздавил после того, как в него выстрелил танк. Я к " +"тому времени уже несся прочь оттуда." #: lang/json/talk_topic_from_json.py msgid "" @@ -218158,8 +213368,8 @@ msgstr "" "Разумеется. Всё же и так понятно, нет? Та… Та катастрофа, это было " "Вознесение. Я всё ещё здесь, и я всё еще не понимаю, почему. Я буду хранить " "Иисуса в своём сердце в грядущих временах Великой Скорби. Когда времена " -"пройдут, я уверен, Он пригласит меня в Рай. Или… Или что-то такое. Всё идёт " -"не так, как я ожидал, но таково пророчество для тебя." +"пройдут, я уверен, Он пригласит меня в Рай. Или… или в таком духе. Всё идёт " +"не так, как я ожидал, но вот тебе мое пророчество." #: lang/json/talk_topic_from_json.py msgid "What if you're wrong?" @@ -218207,22 +213417,6 @@ msgstr "" "Вознесение прошло, а я остался. Так что теперь я буду бродить по Аду на " "Земле. Хотелось бы мне с большим рвением посещать воскресную школу." -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started… cancer. If anything good has " -"come out of all this, it's that I finally see a positive to losing her so " -"young. I'd been shut in for a while anyway. When the news started talking " -"about Chinese bio weapons and sleeper agents, and showing the rioting in " -"Boston and such, I curled up with my canned soup and changed the channel." -msgstr "" -"Я жил один на старой семейной ферме вдали от города. Моя жена умерла чуть " -"более месяца до того, как всё началось… Рак. Я потерял её такой молодой, но " -"теперь я хотя бы наконец вижу в этом что-то хорошее. Короче, я всё равно " -"просидел какое-то время взаперти. Когда по новостям заговорили про китайское" -" биооружие и спящих агентов и показали бунты в Бостоне и всё такое, я " -"устроился поудобнее с банкой супа и переключил канал." - #: lang/json/talk_topic_from_json.py msgid "" "I lived alone, on the old family property way out of town. My husband " @@ -218240,6 +213434,22 @@ msgstr "" "китайское биооружие и спящих агентов и показали бунты в Бостоне и всё такое," " я устроилась поудобнее с банкой супа и переключила канал." +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started… cancer. If anything good has " +"come out of all this, it's that I finally see a positive to losing her so " +"young. I'd been shut in for a while anyway. When the news started talking " +"about Chinese bio weapons and sleeper agents, and showing the rioting in " +"Boston and such, I curled up with my canned soup and changed the channel." +msgstr "" +"Я жил один на старой семейной ферме вдали от города. Моя жена умерла чуть " +"более месяца до того, как всё началось… Рак. Я потерял её такой молодой, но " +"теперь я хотя бы наконец вижу в этом что-то хорошее. Короче, я всё равно " +"просидел какое-то время взаперти. Когда по новостям заговорили про китайское" +" биооружие и спящих агентов и показали бунты в Бостоне и всё такое, я " +"устроился поудобнее с банкой супа и переключил канал." + #: lang/json/talk_topic_from_json.py msgid "" "Well, it built up a bit. There was that acid rain, it burnt up one of my " @@ -218271,9 +213481,9 @@ msgstr "" "никогда не было очень близких друзей, но в городе остались важные для меня " "люди. Я послал несколько сообщений, но так и не сообразил, что за несколько " "дней ответ так и не пришёл. Я сел в грузовик и поехал в город, но очень " -"скоро мне попался и авария поперёк шоссе, наполненная такими же. И " -"вот тогда всё наконец начало вставать на свои места. К сожалению, за мной на" -" ферму пробрались , и мне пришлось свалить оттуда. Когда-нибудь " +"скоро мне попался и авария поперёк шоссе, полная таких же. И вот " +"тогда всё наконец начало вставать на свои места. К сожалению, за мной на " +"ферму пробрались , и мне пришлось свалить оттуда. Когда-нибудь " "нужно будет добраться туда и очистить её." #: lang/json/talk_topic_from_json.py @@ -218345,14 +213555,6 @@ msgstr "Мне жаль Бака. " msgid "I'm sorry about Buck. " msgstr "Мне жаль Бака. " -#: lang/json/talk_topic_from_json.py -msgid "" -"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " -"interested in getting attached. You didn't pay me to be your friend." -msgstr "" -"Слушай. Я тебе доходчиво объясняю. Я работаю на тебя, лады? Я не хочу к " -"кому-то привязываться. Ты платишь не за дружбу." - #: lang/json/talk_topic_from_json.py msgid "" "Like I said, you want me to tell you a story, you gotta pony up the whisky." @@ -218361,6 +213563,14 @@ msgstr "" "Как я говорил, если ты хочешь услышать историю, выкладывай виски. Помни, " "полную бутылку." +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " +"interested in getting attached. You didn't pay me to be your friend." +msgstr "" +"Слушай. Я тебе доходчиво объясняю. Я работаю на тебя, лады? Я не хочу к " +"кому-то привязываться. Ты платишь не за дружбу." + #: lang/json/talk_topic_from_json.py msgid "" "I'm not looking for a friend, but I've paid my dues and earned my way. You " @@ -218429,7 +213639,7 @@ msgstr "" msgid "" "I'll get looking for that. In the meantime there was something else I " "wanted to talk about." -msgstr "Я в поисках. А пока что я хочу поговорить о чём-то ещё." +msgstr "Я поищу. А пока что я хочу поговорить о чём-то ещё." #: lang/json/talk_topic_from_json.py msgid "I'll get back to you on that." @@ -218521,7 +213731,7 @@ msgid "" "sack pussies who can't even justify surviving ? Well, I " "dunno. They're not a bad bunch but I'm fine not working for them now." msgstr "" -"Пиздец как уныло. Какое-то время интересно патрулировать караваны, но я " +"Пиздец как уныло. Какое-то время интересно патрулировать с караванами, но я " "задолбался жрать дорожную пыль. Охранять ту кучу кирпичей, полную ссаных " "нытиков, которые даже не знают, почему пережили ? Ну, я прям " "в сомнениях. Они не худший вариант, но я доволен, что сейчас на них не " @@ -218560,9 +213770,9 @@ msgstr "" " меня так, я не имею ко всему этому отношения… Я изучал взаимодействия " "белков в гладких мышцах мышей с помощью ЯМР-спектроскопии. Ничего даже " "близко связанного с зомби. Так или иначе, я был на последней конференции по " -"Экспериментальной Биологии в Сан-Франциско, и моя старая подруга упоминала " +"экспериментальной биологии в Сан-Франциско, и моя старая подруга упоминала " "про какую-то жуткую хрень, которая творится в государственных лабораториях, " -"как она слышала. Очень секретная хрень. Обычно я б не обратил внимания на " +"как она слышала. Очень секретная хрень. Обычно я бы не обратил внимания на " "такое, но вот после таких слов от неё я на самом деле забеспокоился. Я на " "всякий случай собрал сумку со всем необходимым." @@ -218682,12 +213892,13 @@ msgid "" "other thing I am that the other grunts ain't: alive. You can figure the " "rest out." msgstr "" -"Слушай, я не хочу слишком вдаваться в подробности. Я был в запасе, лады? Мне" -" было похер на пафосную хрень про защиту своей страны, я хотел немного " -"подкачаться, завести пару друзей, и оно хорошо смотрелось в моём резюме. Я " -"никогда не думал, что меня призовут на службу, чтобы стрелять в зомби, " -". Может, я дезертир или ссыкло, но я могу сказать, кто я ещё в " -"отличие от других солдат: я живой. До остального сам догадаешься." +"Слушай, я не хочу слишком вдаваться в подробности. Я из резвервистов, " +"понятно? Мне было похер на пафосную хрень про защиту своей страны, мне " +"хотелось немного подкачаться, завести пару друзей, и такое хорошо смотрелось" +" бы в резюме. У меня и мыслей не было, что меня призовут на службу, чтобы " +"стрелять в зомби, . Может, я дезертир или ссыкло, но я могу сказать, " +"кто ещё можно сказать обо мне в отличие от других солдат: я до сих пор дышу." +" Можешь догадаться о деталях самостоятельно." #: lang/json/talk_topic_from_json.py msgid "Fair enough, thanks. " @@ -218703,10 +213914,11 @@ msgid "" " were." msgstr "" "Я был в армии. Просто новобранец. Я даже не прошёл никакой тренировки, на " -"самом деле меня призвали в военный лагерь сразу, как началось дерьмо. Я едва" -" понимал, из какого конца ствола вылетают пули, а они запихнули меня в " -"грузовик и отправили в Ньюпорт для «помощи в эвакуации». В наших приказах не" -" было смысла, наши офицеры точно так же, как и мы, ничего не понимали." +"самом деле меня вытащили из учебки сразу, как во все стороны полетело " +"дерьмо. Я едва понимал, из какого конца ствола вылетают пули, а они " +"запихнули меня в грузовик и отправили в Ньюпорт для «поддержки эвакуации». В" +" наших приказах не было смысла, наши офицеры точно так же, как и мы, ничего " +"не понимали." #: lang/json/talk_topic_from_json.py msgid "What happened in Newport?" @@ -218771,20 +213983,6 @@ msgstr "" "трусом, но сейчас я знаю, что если б я остался и помог, превратился бы в ещё" " один слюнявый труп." -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " -"peel out of there with her brother - my best man - in his pickup truck as " -"things went bad. So, until I run into them again one way or another, I'm " -"just gonna keep on believing they're out there, doing well. That's more " -"than most of us have." -msgstr "" -"Что ж, у меня есть странная надежда, может, и тупая. Я видел, как моя " -"невеста уезжала со своим братом — моим свадебным свидетелем — в его пикапе, " -"когда началась вся хрень. Так что, пока я любым образом их не встречу, я всё" -" ещё буду верить, что они где-то там, и у них всё хорошо. Это больше, чем " -"есть у многих из нас." - #: lang/json/talk_topic_from_json.py msgid "" "Well, I have this weird hope. It's probably stupid, but I saw my fiancé " @@ -218800,12 +213998,22 @@ msgstr "" "многих из нас." #: lang/json/talk_topic_from_json.py -msgid "What were you saying before that?" -msgstr "О чём ты там говорил?" +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"Что ж, у меня есть странная надежда, может, и тупая. Я видел, как моя " +"невеста уезжала со своим братом — моим свадебным свидетелем — в его пикапе, " +"когда началась вся хрень. Так что, пока я любым образом их не встречу, я всё" +" ещё буду верить, что они где-то там, и у них всё хорошо. Это больше, чем " +"есть у многих из нас." #: lang/json/talk_topic_from_json.py -msgid "Welcome! You seem new, how can I help you?" -msgstr "Добро пожаловать! Не видел тебя раньше, чем могу помочь?" +msgid "What were you saying before that?" +msgstr "О чём мы там говорили?" #: lang/json/talk_topic_from_json.py msgid "Hey there." @@ -218827,6 +214035,10 @@ msgstr "Добро пожаловать!" msgid "How's the weather?" msgstr "Как погода?" +#: lang/json/talk_topic_from_json.py +msgid "Welcome! You seem new, how can I help you?" +msgstr "Добро пожаловать! Не видел тебя раньше, чем могу помочь?" + #: lang/json/talk_topic_from_json.py msgid "What is this place?" msgstr "Что это за место?" @@ -218923,24 +214135,24 @@ msgstr "Я хотя бы попытался." #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. If " -"you had found our community earlier, you could have had a higher chance to " -"join. The newest member joined just a few days ago." +"decisions. But as I said, your chances are low, like everyone else's. The " +"newest member joined just a long time ago." msgstr "" "Тебе придется спросить у нашего лидера, Елены. Она тут принимает решения. Но" -" как я сказал, твои шансы низкие, как и чьи угодно. Если бы нашел нас " -"раньше, они были бы выше. Последний член присоединился всего несколько дней " -"назад." +" как я сказал, твои шансы низкие, как и чьи угодно. Последний член " +"присоединился уже очень давно." #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. The " -"newest member joined just a long time ago." +"decisions. But as I said, your chances are low, like everyone else's. If " +"you had found our community earlier, you could have had a higher chance to " +"join. The newest member joined just a few days ago." msgstr "" "Тебе придется спросить у нашего лидера, Елены. Она тут принимает решения. Но" -" как я сказал, твои шансы низкие, как и чьи угодно. Последний член " -"присоединился уже очень давно." +" как я сказал, твои шансы низкие, как и чьи угодно. Если бы нашел нас " +"раньше, они были бы выше. Последний член присоединился всего несколько дней " +"назад." #: lang/json/talk_topic_from_json.py msgid "" @@ -218948,9 +214160,9 @@ msgid "" "their products yourself, maybe you find something you need. Keep in mind " "that we don't use regular dollars here." msgstr "" -"От меня? Ничего. Но у нас есть портной, травник и охотник. Посмотри. что они" -" могут предложить, может найдется и то, что тебе пригодится. И не забудь, " -"что мы здесь не используем доллары." +"У меня? Ничего. Но у нас есть портной, травник и охотник. Посмотри. что они " +"могут предложить, может найдется и то, что тебе пригодится. И не забудь, что" +" мы здесь не используем доллары." #: lang/json/talk_topic_from_json.py msgid "I'll take a look." @@ -218968,11 +214180,11 @@ msgid "" "and I could join. Also, working in the shelter taught me to cook on a very " "low budget. It's an even more useful skill today." msgstr "" -"Знаешь, я работал поваром в приюте для бездомных. Так совпало, что я " -"встретил сообщество. Они много раз приходили, чтобы помочь бездомным и " -"проповедовать Библию. Я уверен, что именно поэтому я и моя семья смогли " -"присоединиться к ним. Кроме того, работа в приюте научила меня готовить " -"очень экономно. Это очень полезный навык сегодня." +"Знаешь, я работал поваром в приюте для бездомных. Так я и встретил эту " +"группу. Они много раз приходили, чтобы помочь бездомным и проповедовать " +"Библию. Я уверен, что именно поэтому я и моя семья смогли присоединиться к " +"ним. Кроме того, работа в приюте научила меня готовить очень экономно. Это " +"очень полезный навык сегодня." #: lang/json/talk_topic_from_json.py msgid "" @@ -218999,10 +214211,6 @@ msgstr "" "до а, и ан обратной стороне у них напечатено наше имя. Куда " "удобнее чем доллары, их теперь только на растопку пускать." -#: lang/json/talk_topic_from_json.py -msgid "Hey! What are you doing up here? You are not allowed to come here." -msgstr "Эй! Ты что тут делаешь? Тебе сюда нельзя." - #: lang/json/talk_topic_from_json.py msgid "You're back." msgstr "Ты снова тут." @@ -219011,6 +214219,10 @@ msgstr "Ты снова тут." msgid "So…?" msgstr "И…?" +#: lang/json/talk_topic_from_json.py +msgid "Hey! What are you doing up here? You are not allowed to come here." +msgstr "Эй! Ты что тут делаешь? Тебе сюда нельзя." + #: lang/json/talk_topic_from_json.py msgid "How much food do you have in storage?" msgstr "Сколько у вас еды в хранилище?" @@ -219021,7 +214233,7 @@ msgstr "Могу ли я одолжить что-нибудь из тайник #: lang/json/talk_topic_from_json.py msgid "I am sorry, I didn't know. I'll be going." -msgstr "Извини, я не знаю. Мне пора." +msgstr "Извини, я не знал(а). Уже ухожу." #: lang/json/talk_topic_from_json.py msgid "I have to go now." @@ -219030,7 +214242,7 @@ msgstr "Мне пора идти." #: lang/json/talk_topic_from_json.py msgid "" "Me? I am the food guard. I've been tasked to watch over this storage." -msgstr "Мне? Я охраняю еду. Мне было поручено следить за этим хранилищем." +msgstr "Я? Я охраняю еду. Мне было поручено следить за этим хранилищем." #: lang/json/talk_topic_from_json.py msgid "Can I borrow something from the stockpile?" @@ -219040,24 +214252,24 @@ msgstr "Могу ли я одолжить что-нибудь со склада? msgid "Has anyone stolen from here?" msgstr "Здесь что-нибудь украли?" -#: lang/json/talk_topic_from_json.py -msgid "" -"I am sorry, but nobody is allowed to take anything from here. We would like" -" to help you, but we already have enough mouths to feed." -msgstr "" -"Извини, но никому не разрешено брать что-либо отсюда. Мы бы хотели помочь, " -"но у нас уже и так достаточно голодных ртов." - #: lang/json/talk_topic_from_json.py msgid "" "I am afraid you can't. Look, we are running low on our rations, and we " "don't want to waste even more. Even if you just want to 'borrow' it. Too " "bad, we could've helped you if you had come here earlier." msgstr "" -"Боюсь, нет. Послушай, у нас кончается рацион и мы не хотим тратить попусту " +"Боюсь, нет. Послушай, у нас кончаются запасы, и мы не хотим тратить попусту " "ещё больше. Даже если ты просто хочешь «одолжить». Плохо, что ты не пришел " "сюда раньше, мы тогда могли бы помочь." +#: lang/json/talk_topic_from_json.py +msgid "" +"I am sorry, but nobody is allowed to take anything from here. We would like" +" to help you, but we already have enough mouths to feed." +msgstr "" +"Извини, но никому не разрешено брать что-либо отсюда. Мы бы хотели помочь, " +"но у нас уже и так достаточно голодных ртов." + #: lang/json/talk_topic_from_json.py msgid "I have money." msgstr "У меня есть деньги." @@ -219098,14 +214310,6 @@ msgstr "" msgid "I think I'll be going." msgstr "Думаю, мне пора." -#: lang/json/talk_topic_from_json.py -msgid "" -"That information is a bit private, but you can see for yourself. We have " -"about 20 crates full of non-perishables." -msgstr "" -"Об этом не стоит болтать, но у нас около 20 ящиков, полных хорошо хранящейся" -" еды." - #: lang/json/talk_topic_from_json.py msgid "" "I don't know anymore. You see, we used to have 20 crates full of non-" @@ -219114,6 +214318,14 @@ msgstr "" "Теперь даже и не знаю. Понимаешь, у нас было двадцать полных ящиков " "продуктов. Это было несколько месяцев назад. Мы почти все съели." +#: lang/json/talk_topic_from_json.py +msgid "" +"That information is a bit private, but you can see for yourself. We have " +"about 20 crates full of non-perishables." +msgstr "" +"Об этом не стоит болтать, но у нас около 20 ящиков, полных хорошо хранящейся" +" еды." + #: lang/json/talk_topic_from_json.py msgid "Where did all this food come from?" msgstr "Откуда здесь вся эта еда?" @@ -219193,14 +214405,14 @@ msgstr "" msgid "That's good to hear." msgstr "Приятно слышать." -#: lang/json/talk_topic_from_json.py -msgid "Pleased to meet you." -msgstr "Приятно познакомиться." - #: lang/json/talk_topic_from_json.py msgid "Are you here to protect us?" msgstr "Вы здесь, чтобы защитить нас?" +#: lang/json/talk_topic_from_json.py +msgid "Pleased to meet you." +msgstr "Приятно познакомиться." + #: lang/json/talk_topic_from_json.py msgid "I'm just trying to get by." msgstr "Я просто пытаюсь выжить." @@ -219259,14 +214471,14 @@ msgstr "" msgid "That's the most hopeful thing I've heard so far." msgstr "Это самое обнадеживающее, что я слышал за последнее время." -#: lang/json/talk_topic_from_json.py -msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." -msgstr "CRISPR? Радиация? Может быть, кролики всему причиной." - #: lang/json/talk_topic_from_json.py msgid "Same way you got yours, I bet." msgstr "Так же, как и ты, готов поспорить." +#: lang/json/talk_topic_from_json.py +msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." +msgstr "CRISPR? Радиация? Что-то в воде? Может быть, кролики всему причиной." + #: lang/json/talk_topic_from_json.py msgid "So it goes." msgstr "Такие дела." @@ -219275,6 +214487,10 @@ msgstr "Такие дела." msgid "You're disgusting." msgstr "Вы отвратительны." +#: lang/json/talk_topic_from_json.py +msgid "I'm very sorry to tell you this, but you should look in a mirror." +msgstr "Не хочу грубить, но тебе стоит посмотреть в зеркало." + #: lang/json/talk_topic_from_json.py msgid "Insulting people who could help you is unlikely to aid survival." msgstr "" @@ -219282,20 +214498,16 @@ msgstr "" "выживанию." #: lang/json/talk_topic_from_json.py -msgid "I'm very sorry to tell you this, but you should look in a mirror." -msgstr "Не хочу грубить, но тебе стоит посмотреть в зеркало." +msgid "Hey, ." +msgstr "Привет, ." #: lang/json/talk_topic_from_json.py msgid "I can't believe my eyes. Please get me outta here…" msgstr "Глазам не верю. Пожалуйста, вытащи меня отсюда…" -#: lang/json/talk_topic_from_json.py -msgid "Hey, ." -msgstr "Эй, ." - #: lang/json/talk_topic_from_json.py msgid "I've come to take you home, lets go." -msgstr "Я пришёл, чтобы отвести тебя домой, пошли." +msgstr "Я здесь, чтобы отвести тебя домой, пошли." #: lang/json/talk_topic_from_json.py msgid "Hey buddy, feel like talking about what you saw in that tower?" @@ -219318,22 +214530,22 @@ msgid "Sounds good, Barry." msgstr "Хорошо, Барри." #: lang/json/talk_topic_from_json.py -msgid "Hello Ma'am, what brings you here?" -msgstr "Привет, мэм, что вас сюда привело?" +msgid "" +"I see that badge, I think you need to keep on walking, straight off this " +"property." +msgstr "Я этот твой значок. Похоже, тебе следует убраться вон с этой земли." #: lang/json/talk_topic_from_json.py msgid "Hello Sir, what brings you here?" -msgstr "Привет, сэр, что вас сюда привело?" +msgstr "Здравствуйте, что вас сюда привело, сэр?" #: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need to keep on walking, straight off this " -"property." -msgstr "Я вижу этот значок. Похоже, тебе следует убраться вон с этой земли." +msgid "Hello Ma'am, what brings you here?" +msgstr "Здравствуйте, что вас сюда привело, мэм?" #: lang/json/talk_topic_from_json.py msgid "Yeah, I'm a Marshal, what are you going to do about it?" -msgstr "Ага, я маршал, и что ты мне сделаешь?" +msgstr "Ага, я маршал, и что дальше?" #: lang/json/talk_topic_from_json.py msgid "Hi, looks like you are building a forge setup." @@ -219410,16 +214622,16 @@ msgstr "Твоя кузница работает?" msgid "Where can I find Chris?" msgstr "Где найти Криса?" -#: lang/json/talk_topic_from_json.py -msgid "Hi, what's up?" -msgstr "Привет, как дела?" - #: lang/json/talk_topic_from_json.py msgid "" "I see that badge. You need to leave our land, my relatives have no fondness" " for Marshals." msgstr "Я вижу твой значок. Прочь с нашей земли, мы тут маршалов не любим." +#: lang/json/talk_topic_from_json.py +msgid "Hi, what's up?" +msgstr "Привет, как дела?" + #: lang/json/talk_topic_from_json.py msgid "" "Hi, Your dad asked me to come find you, said you've been looking for your " @@ -219514,7 +214726,7 @@ msgid "" "are big planet wide changes occurring." msgstr "" "В общем, дикие звери стали агрессивнее, и я видел гигантских насекомых, ну и" -" всякие монстры не в счёт. Я также видел загадочные места с мёртвыми и " +" всякие монстры туда же. Я также видел загадочные места с мёртвыми и " "мутировавшими растениями. Я не думаю, что мы можем вечно прятаться на ферме," " по всей планете идут широкие перемены." @@ -219536,16 +214748,16 @@ msgstr "" "насчёт конца света." #: lang/json/talk_topic_from_json.py -msgid "Hi, what brings you here?" -msgstr "Здорово, что тебя сюда привело?" +msgid "Is that a U.S. Marshal's badge you're wearing?" +msgstr "У тебя значок маршала США?" #: lang/json/talk_topic_from_json.py msgid "Hello, what brings you here?" msgstr "Привет, что тебя сюда привело?" #: lang/json/talk_topic_from_json.py -msgid "Is that a U.S. Marshal's badge you're wearing?" -msgstr "У тебя значок маршала США?" +msgid "Hi, what brings you here?" +msgstr "Здорово, что тебя сюда привело?" #: lang/json/talk_topic_from_json.py msgid "Yes, I'm a marshal." @@ -219618,8 +214830,8 @@ msgid "" "These remedies aren't always as effective, but they can do the job in a " "pinch." msgstr "" -"Мне всегда было интересно изучать и делать народные лекарства, но сейчас они" -" важны как никогда. Кто знает, когда нам попадётся врач. Эти снадобья не " +"Мне всегда было интересно изучать и делать натуральные лекарства, но сейчас " +"они важны как никогда. Кто знает, когда нам попадётся врач. Эти снадобья не " "всегда эффективны, но помогут в крайнем случае." #: lang/json/talk_topic_from_json.py @@ -219643,7 +214855,8 @@ msgstr "" msgid "" "Jack and I have been together for 40 years. He's been my anchor through all" " of this chaos." -msgstr "Мы с Джеком уже 40 лет вместе. Он мой якорь в сплошном хаосе." +msgstr "" +"Мы с Джеком уже 40 лет вместе. Он всегда был моим якорем в море хаоса." #: lang/json/talk_topic_from_json.py msgid "" @@ -219779,7 +214992,7 @@ msgstr "Я принёс кое-какие материалы." #: lang/json/talk_topic_from_json.py msgid "This is a lot of land, you been here since the collapse?" -msgstr "У вас огромная земля, вы тут со времён конца света?" +msgstr "У вас огромная земля, вы тут жили и до конца света?" #: lang/json/talk_topic_from_json.py msgid "Hey, good to see you again." @@ -219790,8 +215003,8 @@ msgid "" "I live here with my wife, this is our family's land. My daughter's family " "and son live down the road." msgstr "" -"Это наша семейная земля, я тут живу вместе с женой. Семья моей дочери и мой " -"сын живут дальше по дороге." +"Это наша земля нашей семьи, я тут живу вместе с женой. Семья моей дочери и " +"мой сын живут дальше по дороге." #: lang/json/talk_topic_from_json.py msgid "Your whole family survived?" @@ -219892,14 +215105,15 @@ msgstr "Пока что всё. Давай поговорим о чём-нибу msgid "That's all for now. I'd best get going." msgstr "Пока что всё. Мне пора." -#: lang/json/talk_topic_from_json.py -msgid "Hello, We don't see many people these days." -msgstr "Здравствуй, в последние дни народу не видать." - #: lang/json/talk_topic_from_json.py msgid "Leave our property, Marshal." msgstr "Убирайся с нашей собственности, маршал." +#: lang/json/talk_topic_from_json.py +msgid "Hello, We don't see many people these days." +msgstr "" +"Здравствуйте. К нас никто особенно не заходит, из людей по крайней мере." + #: lang/json/talk_topic_from_json.py msgid "Hi, it looks like you are doing well here." msgstr "Привет, похоже, у вас тут всё хорошо." @@ -219943,7 +215157,7 @@ msgid "" "trying to keep the predators under control." msgstr "" "О, замечательно, я уверена, что Джек найдёт тебе занятие. Если интересно, " -"мне бы пригодилась помощь очистить лес. Мой сын, Крис, по горло занят " +"мне бы пригодилась помощь с очисткой леса. Мой сын, Крис, по горло занят " "отпугиванием хищников." #: lang/json/talk_topic_from_json.py @@ -220128,12 +215342,8 @@ msgid "Tell me about your dad." msgstr "Расскажи про своего отца." #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Мэм, я не знаю как, чёрт возьми, вы добрались сюда, но если в вас есть хоть " -"капля рассудка, уходите отсюда, пока можете." +msgid "Marshal, I hope you're here to assist us." +msgstr "Маршал, я надеюсь, вы здесь, чтобы помочь нам." #: lang/json/talk_topic_from_json.py msgid "" @@ -220144,8 +215354,12 @@ msgstr "" "капля рассудка, уходите отсюда, пока можете." #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Маршал, я надеюсь, вы здесь, чтобы помочь нам." +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Мэм, я не знаю как, чёрт возьми, вы добрались сюда, но если в вас есть хоть " +"капля рассудка, уходите отсюда, пока можете." #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" @@ -220169,7 +215383,7 @@ msgstr "По поводу одного из этих заданий…" #: lang/json/talk_topic_from_json.py msgid "I've got to go…" -msgstr "Я должен идти…" +msgstr "Мне нужно идти…" #: lang/json/talk_topic_from_json.py msgid "" @@ -220187,13 +215401,13 @@ msgstr "" "диспетчерскую. Отсюда я отправил своих людей, чтобы занять жизненно важные " "системы, расположенные на этом этаже и ниже. Если мы добьёмся успеха, этот " "объект можно будет очистить и использовать в качестве постоянной базы в " -"регионе. Самое главное, что он позволит перенаправить трафик беженцев от " +"регионе. Самое главное, что он позволит перенаправить поток беженцев от " "переполненных застав и освободить больше наших сил для проведения " "восстановительных работ." #: lang/json/talk_topic_from_json.py msgid "Seems like a decent plan…" -msgstr "Звучит, как хороший план…" +msgstr "Вроде хороший план…" #: lang/json/talk_topic_from_json.py msgid "" @@ -220225,21 +215439,20 @@ msgstr "" "Что бы они ни сделали это, должно быть, сработало, так как мы все ещё живы…" #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here… you should leave." -msgstr "Мэм, вам не разрешено здесь находиться… Вы должны уйти." +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Маршал, я удивлён видеть Вас здесь." #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here… you should leave." msgstr "Сэр, вам не разрешено здесь находиться… Вы должны уйти." #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Маршал, я удивлён видеть Вас здесь." +msgid "Ma'am you are not authorized to be here… you should leave." +msgstr "Мэм, вам не разрешено здесь находиться… Вы должны уйти." #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "" -"[ЗАДАНИЕ] Капитан отправил меня, чтобы я взял у тебя лист с частотами." +msgstr "[ЗАДАНИЕ] Капитан отправил меня забрать у тебя лист с частотами." #: lang/json/talk_topic_from_json.py msgid "Do you need any help?" @@ -220260,7 +215473,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll try and find your commander then…" -msgstr "Я постараюсь найти командира…" +msgstr "Значит, постараюсь найти командира…" #: lang/json/talk_topic_from_json.py msgid "" @@ -220274,12 +215487,28 @@ msgid "" msgstr "" "Я ожидал, что капитан отправит гонца. Вот список, который вы ищете. Всё что " "мы можем идентифицировать отсюда, просто частоты, на которых передаются " -"сообщения. Многие передачи не поддаются расшифровке, без ремонта или замены " +"сообщения. Многие передачи не поддаются расшифровке без ремонта или замены " "оборудования, находящегося здесь. Когда здание было наводнено зомби, " "стандартная процедура должна была разрушить аппаратные средства шифрования, " "чтобы защитить федеральные секреты и поддержать целостность всей сети. Мы " "надеемся, что несколько сообщений с открытым текстом всё же можно поймать." +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Здравствуйте, маршал." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Маршал, боюсь я сейчас не могу говорить." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "Я здесь не за главного, маршал." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "Я как и полагается, направляю все вопросы своему лидеру, маршал." + #: lang/json/talk_topic_from_json.py msgid "Hey, citizen… I'm not sure you belong here." msgstr "Привет, гражданин… Я не уверен, что тебе можно здесь находиться." @@ -220292,15 +215521,6 @@ msgstr "Займись своими делами, здесь нечего лов msgid "If you need something you'll need to talk to someone else." msgstr "Если тебе что-то нужно, поговори с кем либо ещё." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Мэм." - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Эй мисс, вы не думаете, что будет безопасней вам присоединиться ко мне?" - #: lang/json/talk_topic_from_json.py msgid "Sir." msgstr "Сэр." @@ -220312,20 +215532,13 @@ msgstr "" "вербовку." #: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Здравствуйте, маршал." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Маршал, боюсь я сейчас не могу говорить." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "Я здесь не за главного, маршал." +msgid "Ma'am" +msgstr "Мэм." #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "Я как и полагается, направляю все вопросы своему лидеру, маршал." +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" +"Эй мисс, вы не думаете, что будет безопасней вам присоединиться ко мне?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me…" @@ -220382,21 +215595,11 @@ msgstr "Идём со мной, если хочешь жить." msgid "I've no use for weaklings. Run. Now." msgstr "Мне слабаки ни к чему. Бегом. Живо." -#: lang/json/talk_topic_from_json.py -msgid "Please, help me. I need food." -msgstr "Пожалуйста, помоги мне. Мне нужна еда." - #: lang/json/talk_topic_from_json.py msgid "" -"Please, help me. I need food. Aren't you their sheriff? Can't you help " -"me?" +"So, any luck with convincing the others to come on your crazy adventure yet?" msgstr "" -"Пожалуйста, помоги мне. Мне надо поесть. Разве ты не их шериф? Ты мне не " -"поможешь?" - -#: lang/json/talk_topic_from_json.py -msgid "Thank you again. I really appreciate the food." -msgstr "Ещё раз спасибо. Я правда признателен за еду." +"Итак, удалось ли уговорить остальных пойти в твоё безумное приключение?" #: lang/json/talk_topic_from_json.py msgid "" @@ -220406,11 +215609,21 @@ msgstr "" "Мне неловко это говорить после всего, что ты сделал для меня, но… Нет ли у " "тебя чего покушать?" +#: lang/json/talk_topic_from_json.py +msgid "Thank you again. I really appreciate the food." +msgstr "Ещё раз спасибо. Я правда признателен за еду." + #: lang/json/talk_topic_from_json.py msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" msgstr "" -"Итак, удалось ли уговорить остальных пойти в твоё безумное приключение?" +"Пожалуйста, помоги мне. Мне надо поесть. Разве ты не их шериф? Ты мне не " +"поможешь?" + +#: lang/json/talk_topic_from_json.py +msgid "Please, help me. I need food." +msgstr "Пожалуйста, помоги мне. Мне нужна еда." #: lang/json/talk_topic_from_json.py msgid "" @@ -220429,20 +215642,20 @@ 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." +"here as long as I keep it clean and don't make a fuss, but I'm reduced to " +"begging to survive." 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 reduced to " -"begging to survive." +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." msgstr "" "Они меня не пускают. Говорят, места нет, всё занято. Мне позволили пожить " -"тут, пока я прибираюсь и не развожу суету, но мне приходится выпрашивать " -"еду, чтоб выжить." +"тут, пока я прибираюсь и не развожу суету, но мне так хочется есть." #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" @@ -220561,10 +215774,6 @@ msgstr "" "Спасибо за предложение, но я, наверно, попытаю счастья здесь и не буду снова" " рисковать. Я помню и не спешу встретиться с ним снова." -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "Прости, мне слишком хочется есть, чтоб решаться на такую вещь." - #: lang/json/talk_topic_from_json.py msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " @@ -220573,6 +215782,10 @@ msgstr "" "Неплохое предложение, но не думаю, что переживу поход. Похоже, ты не " "представляешь, насколько я бесполезна в этом мире." +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I'm too hungry to make a big decision like that." +msgstr "Прости, мне слишком хочется есть, чтоб решаться на такую вещь." + #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." msgstr "Я обеспечу тебе защиту и лично туда отведу." @@ -220624,18 +215837,18 @@ msgstr "Хорошо! Давай идти." msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "Дружище, говорил ли я тебе про картон? Нет ли у тебя его с собой?" +#: lang/json/talk_topic_from_json.py +msgid "We've done it! We've solved the list!" +msgstr "Мы сделали это! Мы закончили список!" + #: lang/json/talk_topic_from_json.py msgid "" "How's things with you? My cardboard collection is getting quite impressive." msgstr "Как продвигаются дела? У меня уже впечатляющее количество картона." -#: lang/json/talk_topic_from_json.py -msgid "We've done it! We've solved the list!" -msgstr "Мы сделали это! Мы закончили список!" - #: lang/json/talk_topic_from_json.py msgid "About that shopping list of yours…" -msgstr "Насчёт твоего списка покупок…" +msgstr "Насчёт твоего списка…" #: lang/json/talk_topic_from_json.py msgid "Is there anything else I can do for you?" @@ -220647,7 +215860,7 @@ msgstr "Что теперь будешь делать с этим картоно #: lang/json/talk_topic_from_json.py msgid "Cardboard?" -msgstr "Картон?" +msgstr "Картоном?" #: lang/json/talk_topic_from_json.py msgid "Why are you sitting out here?" @@ -220661,6 +215874,10 @@ msgstr "Ты что, правда носишь костюм динозавра?" msgid "Do you need something to eat?" msgstr "Хочешь поесть?" +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "О, отлично. Вкусняшки и хрустяшки. Круто, круто." + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, I'm real hungry and they put drugs in most of the food. I can see " @@ -220668,10 +215885,6 @@ msgid "" msgstr "" "Ага, я сильно голоден, а они кладут наркоту в еду. Я вижу, ты не как они." -#: lang/json/talk_topic_from_json.py -msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." -msgstr "О, отлично. Вкусняшки и хрустяшки. Круто, круто." - #: lang/json/talk_topic_from_json.py msgid "Actually can I ask you something else?" msgstr "А можно тебя ещё кое о чём спросить?" @@ -220724,7 +215937,7 @@ msgid "" "whole shopping list. Got it here." msgstr "" "Что за вопросы? Ага, чувак, у тебя картон, у меня… У меня целый список " -"покупок. Давай." +"материалов. Давай." #: lang/json/talk_topic_from_json.py msgid "What's next on the list?" @@ -220776,6 +215989,14 @@ msgstr "" "Ты спрашиваешь меня, что я вижу, но я не скажу, что ты видишь. Иногда надо " "защититься." +#: lang/json/talk_topic_from_json.py +msgid "" +"Well… I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" +"Что ж… У меня всё было пучком, но остальные ушли, и теперь хозяева не велят " +"мне строить себе убежище. Поможешь с ними справиться?" + #: lang/json/talk_topic_from_json.py msgid "" "That's it! I'm just gonna need a little time to get it all set up. Thanks." @@ -220785,14 +216006,6 @@ msgstr "" "Точно! Мне просто нужно немного времени, чтоб всё устроить. Спасибо. Ты " "очень мне помог. Я чувствую себя куда более собой с такой помощью." -#: lang/json/talk_topic_from_json.py -msgid "" -"Well… I had it all pretty together, but the others have left, and now the " -"masters won't let me build my sanctuary. Can you help me figure them out?" -msgstr "" -"Что ж… У меня всё было пучком, но остальные ушли, и теперь хозяева не велят " -"мне строить себе убежище. Поможешь с ними справиться?" - #: lang/json/talk_topic_from_json.py msgid "" "Why don't you leave this place? Come with me, I could use some help out " @@ -220812,21 +216025,18 @@ msgstr "" "налаживается!" #: lang/json/talk_topic_from_json.py -msgid "Don't bother with these assholes." -msgstr "Забей на тех мудаков." +msgid "Fuck off, dickwaddle." +msgstr "Отъебись, гондон." #: lang/json/talk_topic_from_json.py -msgid "Hey there, not-asshole. Good to see you again." -msgstr "Эй, привет, не-мудила. Рада снова тебя видеть." +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgstr "" +"Йо. Кто-нибудь горит желанием отправиться с этой остановки до твоего " +"палаточного города?" #: lang/json/talk_topic_from_json.py -msgid "" -"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " -"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" -" cranky. We cool?" -msgstr "" -"Слушай, прости за тот нервяк. Ты, может, и мудила, но ты ни при чём. У меня " -"адски падает сахар в крови, меня немного штормит. Мы друзья?" +msgid "Hey there. Good to see you again." +msgstr "Привет. Рад снова тебя видеть." #: lang/json/talk_topic_from_json.py msgid "" @@ -220835,18 +216045,21 @@ msgid "" msgstr "Осторожно, мне снова хочется жрать, и я не отвечаю за свои действия." #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." -msgstr "Привет. Рад снова тебя видеть." +msgid "" +"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " +"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" +" cranky. We cool?" +msgstr "" +"Слушай, прости за тот нервяк. Ты, может, и мудила, но ты ни при чём. У меня " +"адски падает сахар в крови, меня немного штормит. Без обид?" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" -msgstr "" -"Йо. Кто-нибудь горит желанием отправиться с этой остановки до твоего " -"палаточного города?" +msgid "Hey there, not-asshole. Good to see you again." +msgstr "Эй, привет, не-мудила. Рада снова тебя видеть." #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." -msgstr "Отъебись, гондон." +msgid "Don't bother with these assholes." +msgstr "Забей на тех мудаков." #: lang/json/talk_topic_from_json.py msgid "What's up?" @@ -220858,7 +216071,7 @@ msgstr "У меня тут немного еды. Хочешь есть?" #: lang/json/talk_topic_from_json.py msgid "We're cool. Sorry for insulting you earlier." -msgstr "Мы друзья. Извини за оскорбление." +msgstr "Без обид. Извини за оскорбление." #: lang/json/talk_topic_from_json.py msgid "I found a sample of alien fungus for you." @@ -220962,21 +216175,21 @@ msgid "" "me of all that sunny fun." msgstr "" "О да, творился адовый пиздец. Мы сидели в комнате и ждали «регистрации» " -"целые часы, с нами были больные и раненые. Один парень умер, мы думали, что " -"он просто спит, пока тот не поднялся. Поднялась паника, стрельба в закрытом " -"помещении, ну всё такое. Всего за несколько минут умерла куча народу. Потом " -"те мудаки назвали всё «прорывом» и попытались нас запереть… Мы слишком долго" -" убеждали истерящих охранников, что мы живые и хотим выбраться. Я отдам " -"должное одному парню, Шону: когда он сообразил, что запер живых людей вместе" -" с зомби, он лично пришёл помочь, хотя некоторые свежие мертвецы начали " -"подниматься, и сдерживал их, пока мы не ушли. Это… Это единственный хороший " -"поступок, что я видел с конца света: он признал свою ошибку и пошёл на риск," -" чтоб ей поправить. Огромное почтение тому парню. Ах да, сейчас он зомби, " -"разумеется. Спасибо, что напомнил про то безудержное веселье, блядь." +"много часов, с нами были больные и раненые. Один парень умер, мы думали, что" +" он просто спит, пока тот не поднялся. Поднялась паника, стрельба в закрытом" +" помещении, ну всё такое. Всего за несколько минут умерла куча народу. Потом" +" те мудаки назвали всё «вспышкой» и попытались нас запереть… Мы слишком " +"долго убеждали истерящих охранников, что мы живые и хотим выбраться. Я отдам" +" должное одному парню, Шону: когда он сообразил, что запер живых людей " +"вместе с зомби, он лично пришёл помочь, хотя некоторые свежие мертвецы " +"начали подниматься, и сдерживал их, пока мы не ушли. Это… Это единственный " +"хороший поступок, что я видел с конца света: он признал свою ошибку и пошёл " +"на риск, чтобы её исправить. Огромное почтение тому парню. Ах да, сейчас он " +"зомби, разумеется. Спасибо, что напомнил про то безудержное веселье, блядь." #: lang/json/talk_topic_from_json.py msgid "Sorry for bringing it up. What were you saying?" -msgstr "Прости за напоминание. Что ты там говорил?" +msgstr "Прости за напоминание. Что ты там говорила?" #: lang/json/talk_topic_from_json.py msgid "" @@ -221020,7 +216233,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, yeah, that's a bit of a problem. What were you saying before?" -msgstr "Что ж, это действительно проблема. О чём ты там раньше говорил?" +msgstr "Что ж, это действительно проблема. О чём там мы до этого говорили?" #: lang/json/talk_topic_from_json.py msgid "" @@ -221070,7 +216283,7 @@ msgstr "Спасибо за эти слова. Ну, что привело те #: lang/json/talk_topic_from_json.py msgid "Just wanted to get square. I'd better get going." -msgstr "Просто хотел закрыть вопрос. Мне пора." +msgstr "Просто хотелось закрыть вопрос. Мне пора." #: lang/json/talk_topic_from_json.py msgid "" @@ -221101,8 +216314,8 @@ msgid "" "Like I said, sorry, it's just not happening. It's not that I don't trust " "you, it's just that I don't really trust you." msgstr "" -"Повторю, извини, но так не годится. Не то чтоб я тебе не доверяю, я просто " -"тебе недостаточно доверяю." +"Повторю, извини, но так не годится. Не то чтоб я тебе совсем не доверяю, я " +"просто тебе не доверяю достаточно." #: lang/json/talk_topic_from_json.py msgid "" @@ -221117,9 +216330,9 @@ msgstr "" "Ах ты ж чёрт, я боялась, что ты это скажешь. Ладно, слушай: я предлагаю тебе" " сделку. Я пойду в твой лагерь, но лучше раздобудь мне микроскоп как можно " "скорее. Похоже, начинается кое-что классное. О, и разумеется, я не тронусь с" -" места, если ты не пристроишь к себе моих друзей. Уверена, ты этого ожидал. " -"Уговори их, и я в деле. Проблем быть не должно, они просто добродушные " -"милашки." +" места, если ты не пристроишь к себе моих друзей. Уверена, тебе было " +"понятно, что без этого никак. Уговори их, и я в деле. Проблем быть не " +"должно, они просто добродушные милашки." #: lang/json/talk_topic_from_json.py msgid "" @@ -221127,17 +216340,15 @@ msgid "" " I know a little bit about a lot of things, I guess you could say. I kinda" " loved the job, to be honest." msgstr "" -"Ладно, до того, как кончился, я работал в университетской " -"книжной лавке. Держу пари, ты скажешь, что я знаю всего понемногу. Мне типа " -"нравилась работа, если честно." +"Ладно, до того, как кончился, я работала в университетской " +"книжной лавке. Держу пари, ты скажешь, что я знаю всего понемногу. Мне в " +"общем-то нравилась работа, если честно." #: lang/json/talk_topic_from_json.py msgid "" "What had you working at the university bookstore in the first place? Are " "you an academic yourself?" -msgstr "" -"Начнём с того, что ты вообще делал в университетской книжной лавке? Ты " -"учёный?" +msgstr "Что ты вообще делала в университетской книжной лавке? Ты учёная?" #: lang/json/talk_topic_from_json.py msgid "What's this I hear about you having a doctorate?" @@ -221145,7 +216356,7 @@ msgstr "Что же, я слышал, у тебя учёная степень?" #: lang/json/talk_topic_from_json.py msgid "What was it you were saying before?" -msgstr "О чём ты там раньше говорил?" +msgstr "О чём мы там раньше говорили?" #: lang/json/talk_topic_from_json.py msgid "" @@ -221210,8 +216421,8 @@ msgid "" "Okay, you've got my attention. Listen, do you think you could bring me some" " kind of sample of these things?" msgstr "" -"Хорошо, ты меня заинтересовал. Слушай, как ты думаешь, получится ли принести" -" мне какой-нибудь образец с этих штук?" +"Ладно, я заинтересована. Слушай, как ты думаешь, получится ли принести мне " +"какой-нибудь образец с этих штук?" #: lang/json/talk_topic_from_json.py msgid "" @@ -221219,14 +216430,6 @@ msgid "" "that?" msgstr "Это опасно. Какая мне выгода с такого риска?" -#: lang/json/talk_topic_from_json.py -msgid "" -"I dunno, scientific interest? If you don't bring me anything, no worries. " -"I'm positively swimming in entertainment here, as you can see." -msgstr "" -"Хрен знает, научный интерес? Если ничего не принесёшь, не парься. Как " -"видишь, у меня тут море удовольствий." - #: lang/json/talk_topic_from_json.py msgid "" "If you get me a sample, I'll join your crazy camp expedition. Hell, if you " @@ -221239,6 +216442,14 @@ msgstr "" " изучения этих штук. Сгодится почти что угодно, но если оно и правда такое " "опасное, как ты описываешь, то не неси споровые органы." +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" +"Хрен знает, научный интерес? Если ничего не принесёшь, не парься. Как " +"видишь, у меня тут море удовольствий." + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "Так уж вышло, что у меня прямо сейчас при себе грибной кусок." @@ -221255,7 +216466,7 @@ msgid "" msgstr "" "Ага. Ага, ага, ага. Это действительно любопытно. Взгляни, тут сетевидные образования, напоминает увеличенный срез базидиокарпа… Но взгляни сюда, я никогда не видела ничего похожего на эти волокна. Интересно, подвижные ли они?\n" "\n" -"Ладно, слушай: я предлагаю тебе сделку. Я пойду в твой лагерь, но лучше раздобудь мне микроскоп как можно скорее. Похоже, начинается кое-что классное. О, и разумеется, я не тронусь с места, если ты не пристроишь к себе моих друзей. Уверена, ты этого ожидал. Уговори их, и я в деле. Проблем быть не должно, они просто добродушные милашки." +"Ладно, слушай: я предлагаю тебе сделку. Я пойду в твой лагерь, но лучше раздобудь мне микроскоп как можно скорее. Похоже, начинается кое-что классное. О, и разумеется, я не тронусь с места, если ты не пристроишь к себе моих друзей. Уверена, ты этого ожидал. Уговори их, было понятно, что без этого никак. Проблем быть не должно, они просто добродушные милашки." #: lang/json/talk_topic_from_json.py msgid "Great! I'll go see what I can do about that." @@ -221288,14 +216499,14 @@ msgstr "" msgid "I'll see what I can do." msgstr "Посмотрю, что получится сделать." -#: lang/json/talk_topic_from_json.py -msgid "Hey, are you a big fan of survival of the fittest?" -msgstr "Эй, что думаешь про то, что выживает сильнейший?" - #: lang/json/talk_topic_from_json.py msgid "Thanks again for the grub, my friend." msgstr "Ещё раз спасибо за заморенного червячка, дружище." +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "Эй, что думаешь про то, что выживает сильнейший?" + #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" msgstr "Почему ты спрашиваешь?" @@ -221312,14 +216523,6 @@ msgstr "Приятно снова тебя увидеть, как дела?" msgid "Nice to see you. I gotta be going though." msgstr "И мне тоже приятно тебя видеть. Но мне пора." -#: lang/json/talk_topic_from_json.py -msgid "" -"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " -"Help a poor sickly soul out?" -msgstr "" -"Потому что я никак не сильнейший, поэтому я буду сидеть тут, пока не помру с" -" голоду. Поможешь несчастному больному бедолаге?" - #: lang/json/talk_topic_from_json.py msgid "" "Oh you know, the usual: sittin' out here until I starve to death, playin' " @@ -221328,6 +216531,14 @@ msgstr "" "О, ну ты знаешь, как обычно: сижу тут, пока не помру с голоду, режусь в " "карты с Дэйвом, всё такое." +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "" +"Потому что я никак не сильнейший, поэтому я буду сидеть тут, пока не помру с" +" голоду. Поможешь несчастному больному бедолаге?" + #: lang/json/talk_topic_from_json.py msgid "I could maybe help you out… want something to eat?" msgstr "Я могу помочь… хочешь чего-нибудь поесть?" @@ -221348,15 +216559,15 @@ msgstr "Как ты вообще сюда добрался, если так бо msgid "Why are you camped out here if they won't let you in?" msgstr "Почему ты тут живёшь, если они тебя не пускают?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "Это так мило с твоей стороны, ты правда чудесный человек." + #: lang/json/talk_topic_from_json.py msgid "" "Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." msgstr "Ого, ух ты! Ты настоящее сокровище, знаешь? Спасибо за саму мысль." -#: lang/json/talk_topic_from_json.py -msgid "That's awful kind of you, you really are a wonderful person." -msgstr "Это ужасно мило с твоей стороны, ты правда чудесный человек." - #: lang/json/talk_topic_from_json.py msgid "" "It's good to know there are still people like you in the world, it really " @@ -221365,7 +216576,7 @@ msgstr "Приятно знать, что всё ещё остались так #: lang/json/talk_topic_from_json.py msgid "What are you up to?" -msgstr "Что задумываешь?" +msgstr "Что у тебя ещё?" #: lang/json/talk_topic_from_json.py msgid "" @@ -221537,7 +216748,7 @@ msgstr "Господи. Я такого не ожидал, но я сдержу #: lang/json/talk_topic_from_json.py msgid "Let's get going." -msgstr "Давай идти." +msgstr "Отправляемся." #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." @@ -221556,8 +216767,8 @@ msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " "to kill on sight." msgstr "" -"Я тут живу. Я слишком мутант, чтобы влиться в клуб крутых ребят, но " -"недостаточно мутант, чтоб пристрелить меня на месте." +"Я тут живу. Я слишком мутировал, чтобы меня приняли в клуб крутых ребят, но " +"недостаточно мутировал, чтобы пристрелить меня на месте." #: lang/json/talk_topic_from_json.py msgid "Why live out here?" @@ -221591,9 +216802,9 @@ msgid "" "little while after the Cataclysm. No idea what caused it. I can't blame " "them for hating it, I hate it." msgstr "" -"Мерзко, правда? Ощущается, как волосня на лобке. Начало расти повсюду вскоре" -" после катаклизма. Без понятия, в чём причина. Я не осуждаю, что все это " -"ненавидят, я и сам ненавижу." +"Мерзко, правда? На ощупь как лобковые волосы. Начали расти везде вскоре " +"после Катаклизма. Без понятия, в чём причина. Я не осуждаю тех, кому это, я " +"и сам это ненавижу." #: lang/json/talk_topic_from_json.py msgid "" @@ -221601,8 +216812,9 @@ msgid "" "while I'm foraging. If you've got food to spare, please give it to my " "friends." msgstr "" -"Я на самом деле неплохо держусь и сам. В поисках еды я ем много " -"полупротухшего. Если у тебя есть еда, пожалуйста, поделись с моими друзьями." +"Я на самом деле неплохо держусь и сам. В поисках еды я ем много того, что " +"вот-вот испортится. Если у тебя есть еда, пожалуйста, поделись с моими " +"друзьями." #: lang/json/talk_topic_from_json.py msgid "" @@ -221629,8 +216841,8 @@ msgid "" " hope." msgstr "" "Я не хочу про это думать. Я вырос на Род Айленде, и они ещё там. Я ничего не" -" слышал с тех чокнутых времён, ну, Губернатор, изоляция и всё такое. Все " -"линии связи закрыты. Я не видел никого, кто знал бы, что случилось с " +" слышал с тех чокнутых времён, ну, губернатор, отделение и всё такое. Все " +"линии связи оборваны. Я не видел никого, кто знал бы, что случилось с " "тамошними людьми, но особых надежд не питаю. " #: lang/json/talk_topic_from_json.py @@ -221717,10 +216929,6 @@ msgstr "Точно. Пошли." msgid "What's your take on the situation here?" msgstr "Как ты тут оказалась?" -#: lang/json/talk_topic_from_json.py -msgid "Oh, uh… hi. You look new. I'm Aleesha." -msgstr "О, эммм… Привет. Похоже, ты тут впервые. Я Алиша." - #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." msgstr "О, привет, это снова ты." @@ -221733,6 +216941,10 @@ msgstr "Ты вернулся и всё ещё живой! Ого-го." msgid "Aw hey, look who's back." msgstr "Эй, посмотрите, кто вернулся." +#: lang/json/talk_topic_from_json.py +msgid "Oh, uh… hi. You look new. I'm Aleesha." +msgstr "О, эммм… Привет. Похоже, ты тут впервые. Я Алиша." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" msgstr "Приятно познакомиться, ребёнок. Как дела?" @@ -221750,16 +216962,16 @@ msgid "Hi Aleesha. I can't stay to talk." msgstr "Привет, Алиша. Я не могу остаться поговорить." #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm fourteen." -msgstr "Я не ребёнок, ясно? Мне четырнадцать." +msgid "I'm not a kid, okay? I'm sixteen." +msgstr "Я не ребёнок, ясно? Мне шестнадцать." #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." msgstr "Я не ребёнок, ясно? Мне пятнадцать." #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm sixteen." -msgstr "Я не ребёнок, ясно? Мне шестнадцать." +msgid "I'm not a kid, okay? I'm fourteen." +msgstr "Я не ребёнок, ясно? Мне четырнадцать." #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" @@ -221769,18 +216981,6 @@ msgstr "Прости, не хотел тебя обидеть. Как дела?" msgid "Sorry, I didn't mean anything by it. I'll be on my way." msgstr "Прости, не хотел тебя обидеть. Я пойду." -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know what's up. I'm not sure what we've even doing here. They say " -"we're supposed to wait until we can be moved to the shelter downstairs, but " -"we've been here days and there's no word on how long we'll be waiting. It's" -" all so stupid, and nobody can tell me anything." -msgstr "" -"Я без понятия, что тут творится. Я вообще не уверена, зачем мы тут вообще. " -"Они говорят, нам надо подождать, пока нас не переведут в убежище внизу, но " -"мы тут торчим целые дни, и ни слова о том, сколько нам ещё ждать. Всё очень " -"тупо, и никто ничего мне сказать не может." - #: lang/json/talk_topic_from_json.py msgid "" "We're just standing around here waiting, like a bunch of idiots. We're " @@ -221794,6 +216994,18 @@ msgstr "" "месяца. Я не знаю, что мы тут делаем. Я перечитала все книги, что были. " "Снаружи полно зомби, так что мы застряли. Мы слышим их по ночам." +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't know what's up. I'm not sure what we've even doing here. They say " +"we're supposed to wait until we can be moved to the shelter downstairs, but " +"we've been here days and there's no word on how long we'll be waiting. It's" +" all so stupid, and nobody can tell me anything." +msgstr "" +"Я без понятия, что тут творится. Я вообще не уверена, зачем мы тут вообще. " +"Они говорят, нам надо подождать, пока нас не переведут в убежище внизу, но " +"мы тут торчим целые дни, и ни слова о том, сколько нам ещё ждать. Всё очень " +"тупо, и никто ничего мне сказать не может." + #: lang/json/talk_topic_from_json.py msgid "" "You can't just go asking people questions like that nowadays. I'm a " @@ -221842,9 +217054,8 @@ msgstr "" "третьем лице?" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." -msgstr "Ого! Прекрасная леди, рад знакомству. Меня зовут Алонсо." +msgid "Hello again, gorgeous" +msgstr "И снова здравствуй, красавчик" #: lang/json/talk_topic_from_json.py msgid "" @@ -221855,8 +217066,9 @@ msgstr "" "Алонсо." #: lang/json/talk_topic_from_json.py -msgid "Hello again, gorgeous" -msgstr "И снова здравствуй, красавчик" +msgid "" +"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." +msgstr "Ого! Прекрасная леди, рад знакомству. Меня зовут Алонсо." #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Alonso." @@ -221864,7 +217076,7 @@ msgstr "Рад знакомству, Алонсо." #: lang/json/talk_topic_from_json.py msgid "Hi, Alonso. What's up?" -msgstr "Привет, Алонсо, что случилось?" +msgstr "Привет, Алонсо. Что нового?" #: lang/json/talk_topic_from_json.py msgid "Hi Alonso, nice to meet you. I gotta go though." @@ -221883,6 +217095,11 @@ msgstr "Я тоже рада знакомству. Здорово. В Центр msgid "Actually I'm just heading out." msgstr "Вообще-то, я просто прохожу мимо." +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it's a lot better now that you're here. Nice to see a familiar face." +msgstr "Ну, стало куда лучше, когда ты тут. Приятно видеть знакомое лицо." + #: lang/json/talk_topic_from_json.py msgid "" "Now that you are here, everything. Is there anything Alonso can… *do for " @@ -221891,36 +217108,31 @@ msgstr "" "Теперь ты здесь, и всё прекрасно. Может ли Алонсо… *Помочь тебе* в чём-то?" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, it's a lot better now that you're here. Nice to see a familiar face." -msgstr "Ну, стало куда лучше, когда ты тут. Приятно видеть знакомое лицо." +msgid "You know me, I gotta be me, right?" +msgstr "Ты знаешь меня, и мне лучше быть собой, ага?" #: lang/json/talk_topic_from_json.py msgid "Alonso cannot help himself, in the face of someone so fine as you." msgstr "Алонсо ничего не может с собой поделать перед такой милашкой, как ты." -#: lang/json/talk_topic_from_json.py -msgid "You know me, I gotta be me, right?" -msgstr "Ты знаешь меня, и мне лучше быть собой, ага?" - #: lang/json/talk_topic_from_json.py msgid "" -"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " +"Aw man, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" -"Ой, блин, ну чего ты? Я просто пытаюсь придать загадочность, ясно? Никто не " -"хочет дружить с развратником из Бруклина, но загадочный Алонсо — совсем " +"Ой, чувак, ну чего ты? Я просто пытаюсь придать загадочность, ясно? Никто не" +" хочет дружить с развратником из Бруклина, но загадочный Алонсо — совсем " "другое дело." #: lang/json/talk_topic_from_json.py msgid "" -"Aw man, why you gotta be like that? I'm just tryin' to get an air of " +"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" -"Ой, чувак, ну чего ты? Я просто пытаюсь придать загадочность, ясно? Никто не" -" хочет дружить с развратником из Бруклина, но загадочный Алонсо — совсем " +"Ой, блин, ну чего ты? Я просто пытаюсь придать загадочность, ясно? Никто не " +"хочет дружить с развратником из Бруклина, но загадочный Алонсо — совсем " "другое дело." #: lang/json/talk_topic_from_json.py @@ -221947,14 +217159,6 @@ msgstr "Ладно. Ради тебя я буду парнем из Брукли msgid "Thanks. I'd better get going." msgstr "Спасибо. Я пойду, пожалуй." -#: lang/json/talk_topic_from_json.py -msgid "" -"Alonso does not wish to talk about the past, only the future. There are " -"dark days ahead, but perhaps together we can bring a little light?" -msgstr "" -"Алонсо не хочет беседовать о прошлом, только о будущем. Впереди тёмные дни, " -"но возможно, мы вместе принесём немного света?" - #: lang/json/talk_topic_from_json.py msgid "" "I'm tryin' ta forget, y'know? Don't like thinkin' about the past. Better " @@ -221965,11 +217169,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here in the center, Alonso is a bit lonely. We get a few brave, strong " -"travelers like yourself, though, and seeing them brightens Alonso's day." +"Alonso does not wish to talk about the past, only the future. There are " +"dark days ahead, but perhaps together we can bring a little light?" msgstr "" -"В этом центре Алонсо слегка одиноко. Однако к нам приходят смелые сильные " -"путники вроде тебя, и их вид скрашивает Алонсо дни." +"Алонсо не хочет беседовать о прошлом, только о будущем. Впереди тёмные дни, " +"но возможно, мы вместе принесём немного света?" #: lang/json/talk_topic_from_json.py msgid "" @@ -221980,8 +217184,12 @@ msgstr "" "всегда скрашивают мой день." #: lang/json/talk_topic_from_json.py -msgid "Ah, another new face. Hello. I am Boris." -msgstr "Эй, ещё одно новое лицо. Привет. Меня зовут Борис." +msgid "" +"Here in the center, Alonso is a bit lonely. We get a few brave, strong " +"travelers like yourself, though, and seeing them brightens Alonso's day." +msgstr "" +"В этом центре Алонсо слегка одиноко. Однако к нам приходят смелые сильные " +"путники вроде тебя, и их вид скрашивает Алонсо дни." #: lang/json/talk_topic_from_json.py msgid "Well, well. I'm glad you are back." @@ -221995,9 +217203,13 @@ msgstr "И снова здравствуй, дружище." msgid "It is good to see you again." msgstr "Приятно снова тебя видеть." +#: lang/json/talk_topic_from_json.py +msgid "Ah, another new face. Hello. I am Boris." +msgstr "Эй, ещё одно новое лицо. Привет. Меня зовут Борис." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." -msgstr "Рад знакомству, Борис." +msgstr "Приятно познакомиться, Борис." #: lang/json/talk_topic_from_json.py msgid "Hi, Boris. What's up?" @@ -222005,7 +217217,7 @@ msgstr "Привет, Борис. Как жизнь?" #: lang/json/talk_topic_from_json.py msgid "Hi Boris, nice to meet you. I gotta go though." -msgstr "Привет, Борис, приятно увидеться. Однако мне пора идти." +msgstr "Привет, Борис, приятно познакомиться. Однако мне пора идти." #: lang/json/talk_topic_from_json.py msgid "Hi Boris. I can't stay to talk." @@ -222068,11 +217280,20 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry. What were you saying before?" -msgstr "Прости. Что ты там говорил?" +msgstr "Мне очень жаль. Что ты там говорил?" #: lang/json/talk_topic_from_json.py msgid "I'm sorry. I'd better get going." -msgstr "Прости. Мне пора идти." +msgstr "Сожалею. Мне пора идти." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, now that you mention it, with the back bay cleared I could probably " +"set up back there and start work. I'll think about it, get back to me " +"later." +msgstr "" +"Что ж, раз уж зашёл разговор, задняя комната расчищена, и я б мог там " +"устроиться и начать работать. Я подумаю над этим, возвращайся попозже." #: lang/json/talk_topic_from_json.py msgid "" @@ -222090,15 +217311,6 @@ msgstr "" "что толку не вышло. Караваны привозят еду, так что они важнее, тут спору " "нет." -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, now that you mention it, with the back bay cleared I could probably " -"set up back there and start work. I'll think about it, get back to me " -"later." -msgstr "" -"Что ж, раз уж зашёл разговор, задняя комната расчищена, и я б мог там " -"устроиться и начать работать. Я подумаю над этим, возвращайся попозже." - #: lang/json/talk_topic_from_json.py msgid "" "Everyone agrees this is bad. Sleeping on a cot on the floor, crowded in " @@ -222106,7 +217318,7 @@ msgid "" "just a drop in the bucket. What is killing me is being forced to sit with " "nothing but my thoughts of what I've lost." msgstr "" -"Все согласны, что плохо. Приходится спать на койках на полу, кругом " +"Все согласны, что плохо. Приходится спать на куче одежды на полу, кругом " "незнакомые люди, по ночам нас будят зомби. Но для меня это всё капля в море." " Меня убивает, что остаётся только сидеть со своими мыслями о потерях." @@ -222121,8 +217333,8 @@ msgid "" "Your husband said to ask you what you'd think about getting out of this " "place and coming to work for me at my own camp." msgstr "" -"Твой муж сказал спросить тебя, что думаешь насчёт выбраться отсюда и пойти " -"работать в мой собственный лагерь." +"Твой муж сказал спросить тебя, что думаешь насчёт того, чтобы выбраться " +"отсюда и пойти работать в мой собственный лагерь." #: lang/json/talk_topic_from_json.py msgid "About that sourdough starter you had me looking for…" @@ -222132,10 +217344,6 @@ msgstr "Насчёт той хлебной закваски, за которой msgid "Got any more bread I can trade flour for?" msgstr "Есть ли ещё хлеб в обмен на муку?" -#: lang/json/talk_topic_from_json.py -msgid "Hi there. I'm Dana, nice to see a new face." -msgstr "Привет. Меня зовут Дана, рада увидеть кого-то новенького." - #: lang/json/talk_topic_from_json.py msgid "Hello, nice to see you again." msgstr "Привет, приятно снова тебя видеть." @@ -222144,6 +217352,10 @@ msgstr "Привет, приятно снова тебя видеть." msgid "It's good to see you're still around." msgstr "Рад видеть, что ты ещё жив." +#: lang/json/talk_topic_from_json.py +msgid "Hi there. I'm Dana, nice to see a new face." +msgstr "Привет. Меня зовут Дана, рада увидеть кого-то новенького." + #: lang/json/talk_topic_from_json.py msgid "Dana, hey? Nice to meet you." msgstr "Дана? Приятно познакомиться." @@ -222200,14 +217412,11 @@ msgstr "Сочувствую твоей утрате." #: lang/json/talk_topic_from_json.py msgid "" -"I do a bit. I got a sourdough starter going almost as soon as I arrived, " -"and it's making passable bread already. I cooked some up yesterday " -"actually, I could probably trade a loaf of fresh bread for, say, about eight" -" cups of flour." +"Not since I last saw you, sorry. Come by in another day or two and I'll try" +" to keep a loaf set aside for you, but they disappear fast." msgstr "" -"Немножко. Я раздобыла хлебную закваску почти сразу, как приехала, и из нее " -"уже получается довольно приличный хлеб. Я вчера напекла немного, я могу " -"обменять буханку свежего хлеба на, скажем, около восьми чашек муки." +"Нет, с тех пор, как мы виделись — нет. Извини. Приходи через денёк или два, " +"и я придержу для тебя несколько буханок, но они быстро расходятся." #: lang/json/talk_topic_from_json.py msgid "" @@ -222219,11 +217428,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Not since I last saw you, sorry. Come by in another day or two and I'll try" -" to keep a loaf set aside for you, but they disappear fast." +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight" +" cups of flour." msgstr "" -"Нет, с тех пор, как мы виделись — нет. Извини. Приходи через денёк или два, " -"и я придержу для тебя несколько буханок, но они быстро расходятся." +"Немножко. Я раздобыла хлебную закваску почти сразу, как приехала, и из нее " +"уже получается довольно приличный хлеб. Я вчера напекла немного, я могу " +"обменять буханку свежего хлеба на, скажем, около восьми чашек муки." #: lang/json/talk_topic_from_json.py msgid "That sounds like a great deal, here's some flour for you." @@ -222247,15 +217459,6 @@ msgstr "" " но в общем масштабе могло быть и хуже. У нас с Пабло всё ещё есть мы, это " "куда больше, чем у многих." -#: lang/json/talk_topic_from_json.py -msgid "" -"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " -"not too bad honestly. Everyone here seems to like it." -msgstr "" -"Здорово, держи буханку моего знаменитого в местных кругах, не совсем " -"дозревшего хлеба на закваске. Честно, не так уж плохо. Всем местным " -"нравится." - #: lang/json/talk_topic_from_json.py msgid "" "Great, here's a loaf of the best damn sourdough bread in the world. I used " @@ -222282,6 +217485,15 @@ msgstr "" "Надеюсь, тебе понравится так же, как и мне. Это нынче самый охрененно " "вкусный хлеб в мире." +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "" +"Здорово, держи буханку моего знаменитого в местных кругах, не совсем " +"дозревшего хлеба на закваске. Честно, не так уж плохо. Всем местным " +"нравится." + #: lang/json/talk_topic_from_json.py msgid "" "You seem pretty unhappy about the quality of your bread. Is there something" @@ -222322,6 +217534,10 @@ msgstr "" "троице повезло завести тут друзей, но мы всё равно остаёмся незнакомцами, " "сидящими в тесноте. Скоро кто-то кого-то убьёт, помяни моё слово." +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "Слышно ли что-нибудь насчёт работы на ранчо?" + #: lang/json/talk_topic_from_json.py msgid "" "Huh. I've made a few friends here, but not so much as I'd stick around here" @@ -222332,16 +217548,12 @@ msgstr "" "потолок без перспектив на будущее и надеюсь, что кто-то внизу помрёт и " "освободит мне койку. Если там нужны работники, звучит заманчиво." -#: lang/json/talk_topic_from_json.py -msgid "Have you heard anything back from the ranch about jobs yet?" -msgstr "Слышно ли что-нибудь насчёт работы на ранчо?" - #: lang/json/talk_topic_from_json.py msgid "" "I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " "the work, they'll find some work for you over there." msgstr "" -"Я поговорил с прорабом на Ранчо Такома. Если хочешь поработать, они найдут " +"Пообщались с прорабом на Ранчо Такома. Если хочешь поработать, они найдут " "тебе занятие." #: lang/json/talk_topic_from_json.py @@ -222383,6 +217595,10 @@ msgstr "" "действительно снова забеременею, я всерьёз подумаю насчёт убраться отсюда и " "пойти с тобой." +#: lang/json/talk_topic_from_json.py +msgid "Always good to see you, friend." +msgstr "Всегда рад тебя видеть, друг." + #: lang/json/talk_topic_from_json.py msgid "" "Well now, good to see another new face! Welcome to the center, friend, I'm " @@ -222391,10 +217607,6 @@ msgstr "" "Наконец-то! Рад видеть новое лицо у нас. Добро пожаловать в Центр, друг мой," " я Драко." -#: lang/json/talk_topic_from_json.py -msgid "Always good to see you, friend." -msgstr "Всегда рад тебя видеть, друг." - #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Draco." msgstr "Рад знакомству, Драко." @@ -222409,11 +217621,11 @@ msgstr "Ещё раз привет, Драко, я тоже рад тебя ви #: lang/json/talk_topic_from_json.py msgid "Hi Draco, nice to meet you. I gotta go though." -msgstr "Привет, Драко, рад знакомству, но мне нужно идти." +msgstr "Привет, Драко, приятно познакомиться, но мне нужно идти." #: lang/json/talk_topic_from_json.py msgid "Hi Draco, nice to see you too. I gotta go though." -msgstr "Привет, Драко, рад тебя видеть, но мне нужно идти." +msgstr "Привет, Драко, приятно вновь тебя видеть, но мне нужно идти." #: lang/json/talk_topic_from_json.py msgid "" @@ -222488,7 +217700,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I think I would've done the same. Nobody around here has a guitar?" -msgstr "Наверно, я б поступил так же. Тут ни у кого нет гитары?" +msgstr "" +"Наверно, я мне бы пришлось поступить так же. Тут ни у кого нет гитары?" #: lang/json/talk_topic_from_json.py msgid "Yes, yes I would… you monster." @@ -222575,7 +217788,7 @@ msgstr "Я хочу повидать всё на свете." #: lang/json/talk_topic_from_json.py msgid "The 'doesn't have time for this' type." -msgstr "Я тот, у кого нет времени на эту чепуху." +msgstr "Я человек, у кого нет времени на эту чепуху." #: lang/json/talk_topic_from_json.py msgid "" @@ -222675,15 +217888,15 @@ msgstr "Могу я чем-то помочь?" msgid "Well then, I'll leave you here where it's safe." msgstr "Ну что ж, я оставлю тебя тут в безопасности." -#: lang/json/talk_topic_from_json.py -msgid "Man, just imagine what I could do with a new guitar." -msgstr "Блин, просто представь, если бы у меня была новая гитара." - #: lang/json/talk_topic_from_json.py msgid "" "My savior! My patron of the arts! You're always welcome here, friend." msgstr "Мой спаситель! Мой меценат! Дружище, тебе тут всегда будут рады." +#: lang/json/talk_topic_from_json.py +msgid "Man, just imagine what I could do with a new guitar." +msgstr "Блин, просто представь, если бы у меня была новая гитара." + #: lang/json/talk_topic_from_json.py msgid "Let's talk about getting you that guitar." msgstr "Давай поговорим насчёт той гитары." @@ -222756,7 +217969,7 @@ msgid "" "talking about weed. Marijuana. Wondered if you've happened upon any." msgstr "" "Откуда ты там, ты говорил? Ты не такой прошаренный, как кажешься. Я говорю " -"про травку. Марихуану. Интересно, не попадалась ли она по пути." +"про травку. Марихуану. Интересно, не попадалась ли она тебе по пути." #: lang/json/talk_topic_from_json.py msgid "Oh. Uh, sure." @@ -222794,6 +218007,14 @@ msgstr "Могу помочь." msgid "Find somebody else, dude." msgstr "Ищи где-нибудь ещё, чувак." +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, no worries, though. I'm good at the moment. Ask me again later and " +"maybe I'll have scrounged up some more cash for you." +msgstr "" +"Без проблем, хорошо. Сейчас у меня всё в порядке. Спроси меня попозже, и я, " +"может, достану для тебя немного денег." + #: lang/json/talk_topic_from_json.py msgid "" "Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " @@ -222803,14 +218024,6 @@ msgstr "" "достать несколько мерчей за, допустим, пять косяков или равноценной хорошей " "травки." -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, no worries, though. I'm good at the moment. Ask me again later and " -"maybe I'll have scrounged up some more cash for you." -msgstr "" -"Без проблем, хорошо. Сейчас у меня всё в порядке. Спроси меня попозже, и я, " -"может, достану для тебя немного денег." - #: lang/json/talk_topic_from_json.py msgid "You have yourself a deal. Here's the marijuana." msgstr "По рукам. Держи марихуану." @@ -222859,14 +218072,6 @@ msgstr "Как тебе удалось очутиться в центре?" msgid "Is there anything I can do to help you out?" msgstr "Нужна ли какая-нибудь помощь?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " -"meet new people but there are no beds to share." -msgstr "" -"Эй, эй, новое лицо. Привет, я Фатима. Надеюсь, ты просто в гости? Здорово " -"встречать новых людей, но у нас больше нет свободных мест." - #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "Снова привет." @@ -222879,6 +218084,14 @@ msgstr "Приятно видеть, что ты ещё жив." msgid "Oh, hi." msgstr "Ой, привет." +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" +"Эй, эй, новое лицо. Привет, я Фатима. Надеюсь, ты просто в гости? Здорово " +"встречать новых людей, но у нас больше нет свободных мест." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you too, Fatima. I'm just passing through." msgstr "Тоже приятно познакомиться, Фатима. Я тут мимоходом." @@ -222936,7 +218149,7 @@ msgid "" "\n" "Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on… one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they couldn't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." msgstr "" -"Я ехала навестить родителей в Берлингтоне и ждала на автобусной остановке, когда зазвучал сигнал об эвакуации. Я немного не осознавала, насколько масштабными будут бунты. Когда прибыл автобус, его превратили в машину эвакуации и забрали меня. Я… я никогда не была религиозной, ну вот так я родилась, но с тех пор я намного чаще думаю о Боге и как я Ему благодарна за Его помощь. Хотя мне до сих пор трудно, мне легче с осознанием, что Он думает про меня.\n" +"Я ехала навестить родителей в Берлингтоне и ждала на автобусной остановке, когда зазвучал сигнал об эвакуации. Я немного не осознавала, насколько масштабными будут бунты. Когда прибыл автобус, его превратили в транспорт для эвакуации и забрали меня. Я… я никогда не была религиозной, просто так я родилась, но с тех пор я намного чаще думаю о Боге и как я Ему благодарна за Его помощь. Хотя мне до сих пор трудно, мне легче с осознанием, что Он думает про меня.\n" "\n" "Так или иначе, мой автобус прибыл вторым, тут организовали сортировку и регистрацию. Меня и Йен отрядили помогать раненым. Потом начались странности… у одной женщины на регистрации был особый бзик насчёт пропуска, э, некоторых цветов кожи в центр. Она заявила, что потеряла наши «бумаги» вместе с документами некоторых людей. К счастью, поскольку мы многим помогли, мы сумели её убедить впустить нас внутрь, но к тому времени внизу места уже не осталось, так что мы здесь." @@ -222953,21 +218166,21 @@ msgstr "" " Дженни говорила про какой-то проект, где бы я могла помочь, но признаю, мне" " страшно выходить наружу." -#: lang/json/talk_topic_from_json.py -msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." -msgstr "Привет! Эй, привет! Я Гарри, Гарри Вильнёв." - #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "Ну, привет." #: lang/json/talk_topic_from_json.py msgid "Good to see you again." -msgstr "Рад снова тебя видеть." +msgstr "Приятно снова тебя видеть." + +#: lang/json/talk_topic_from_json.py +msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." +msgstr "Привет! Эй, привет! Я Гарри, Гарри Вильнёв." #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Garry." -msgstr "Рад знакомству, Гарри." +msgstr "Приятно познакомиться, Гарри." #: lang/json/talk_topic_from_json.py msgid "Hi, Garry. What's up?" @@ -222975,7 +218188,7 @@ msgstr "Привет, Гарри, как дела?" #: lang/json/talk_topic_from_json.py msgid "Hi Garry, nice to meet you. I gotta go though." -msgstr "Привет, Гарри, рад встрече с тобой. Однако мне пора идти." +msgstr "Привет, Гарри. Приятно познакомиться, однако мне пора идти." #: lang/json/talk_topic_from_json.py msgid "Hi Garry. I can't stay to talk." @@ -223039,14 +218252,6 @@ msgstr "" " что тут временно, но начинает казаться, что мы задержимся надолго. Если " "доживём." -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " -"call me Gunny." -msgstr "" -"Ой, привет! Я не видел тебя тут раньше. Я Гунит, но местные зовут меня " -"Гунни." - #: lang/json/talk_topic_from_json.py msgid "Hi." msgstr "Привет." @@ -223055,17 +218260,25 @@ msgstr "Привет." msgid "Hey again." msgstr "И снова привет!" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " +"call me Gunny." +msgstr "" +"Ой, привет! Я не видел тебя тут раньше. Я Гунит, но местные зовут меня " +"Гунни." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Gunny." -msgstr "Рад встрече с тобой, Гунни." +msgstr "Приятно познакомиться, Гунни." #: lang/json/talk_topic_from_json.py msgid "Hi, Gunny. What's up?" -msgstr "Привет, Гунни, случилось что?" +msgstr "Привет, Гунни, как оно?" #: lang/json/talk_topic_from_json.py msgid "Hi Gunny, nice to meet you. I gotta go though." -msgstr "Привет, Гунни, рад знакомству, но мне пора." +msgstr "Привет, Гунни. Приятно познакомиться, но мне пора." #: lang/json/talk_topic_from_json.py msgid "Hi Gunny. I can't stay to talk." @@ -223094,10 +218307,10 @@ msgid "" " died except a few people, most of whom are crammed into this little shelter" " now. Who knows when we're getting out." msgstr "" -"В общем, я учился в старшей школе. Наполовину закончил свой новый класс. " -"«Моя история?» Я сел в автобус с родителями, автобус попал в аварию, все " -"умерли, кроме нескольких, и почти все выжившие сейчас сидят в этом убежище. " -"Кто знает, когда мы выберемся." +"В общем, я учился в старшей школе. Наполовину закончил первый год в старшей " +"школе. «Моя история?» Я сел в автобус с родителями, автобус попал в аварию, " +"все умерли, кроме нескольких человек, и почти все выжившие сейчас сидят в " +"этом убежище. Кто знает, когда мы выберемся." #: lang/json/talk_topic_from_json.py msgid "" @@ -223110,15 +218323,15 @@ msgstr "" "носим тюрбаны и выжили все вместе. Они думают, раз мы вместе, то ничего не " "потеряли. Мой отец тоже так считает, а мама в сомнениях." +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you again." +msgstr "Приятно вновь тебя видеть." + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." msgstr "Привет. Я раньше тебя тут не видела. Я Дженни, Дженни Форсетт." -#: lang/json/talk_topic_from_json.py -msgid "Nice to see you again." -msgstr "Рад снова тебя видеть." - #: lang/json/talk_topic_from_json.py msgid "Nice meeting you. What are you doing on that computer?" msgstr "Приятно познакомиться. Что ты там делаешь с компьютером?" @@ -223280,10 +218493,10 @@ msgstr "" " .30 калибра с помощью сжатого воздуха, который мы нагнетаем в подвале и " "подаём в отдельные баллоны к турелям, должно хватить на несколько сотен " "выстрелов для каждой. Предполагается одиночный и автоматический огонь на " -"дальности, сравнимой с огнестрельным пороховым оружием. Самое дефицитное " -"становится не нужно: ни порох, ни гильзы, просто свинец, который мы отливаем" -" в любую форму. Оно не беззвучно, но намного тише химического оружия. Просто" -" куча преимуществ. Единственно что я не могу убедить Свободных Торговцев " +"дальности, сравнимой с огнестрельным оружием. Самое дефицитное становится не" +" нужно: ни порох, ни гильзы, просто свинец, который мы отливаем в любую " +"форму. Оно не беззвучно, но намного тише химического оружия. Просто куча " +"преимуществ. Единственная проблема - я не могу убедить Свободных Торговцев " "поделиться нужными запчастями." #: lang/json/talk_topic_from_json.py @@ -223317,19 +218530,6 @@ msgstr "" "выбирали быть вместе. Я не знаю, как долго мы так протянем, пока кто-нибудь " "не сорвётся." -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a bunch of us. We're starting to form a bit of a community. " -"Fatima and I work together a fair bit, and I've been hanging out with Dana, " -"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " -"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " -"What did you want to know?" -msgstr "" -"Что ж, у нас тут горстка народу. Мы потихоньку образуем небольшую общину. Я " -"неплохо работаю вместе с Фатимой и здорово тусуюсь с Даной, Драко и Алишей. " -"Я маловато знаю Бориченко, Сингхов, Ванессу, Йен и Ризею, но мы болтали пару" -" раз. Что ты хочешь знать?" - #: lang/json/talk_topic_from_json.py msgid "" "For better or worse, we're a community now. Fatima and I work together a " @@ -223349,6 +218549,19 @@ msgstr "" "Ризея всегда спорят, кто будет что-то решать, как будто их спрашивали. Что " "ты хочешь знать?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" +"Что ж, у нас тут горстка народу. Мы потихоньку образуем небольшую общину. Я " +"неплохо работаю вместе с Фатимой и здорово тусуюсь с Даной, Драко и Алишей. " +"Я маловато знаю Бориченко, Сингхов, Ванессу, Йен и Ризею, но мы болтали пару" +" раз. Что ты хочешь знать?" + #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" msgstr "Можешь рассказать про Свободных Торговцев?" @@ -223407,8 +218620,8 @@ msgid "" msgstr "" "Фатима лапочка, но она полный задрот. Знаю, знаю, для инженера удивительно " "называть механика тяжёлого оборудования ботаном, но блин. Я говорю как есть." -" Мы тут с ней наверху выполняем кое-какие странные работы, чиним старые " -"механизмы и всё такое." +" Мы тут с ней наверху выполняем кое-какие работы, когда придется, чиним " +"старые механизмы и всё такое." #: lang/json/talk_topic_from_json.py msgid "" @@ -223437,18 +218650,6 @@ msgstr "" "куча безумных идей. Возможно, мне она нравится, потому что у неё больше всех" " осталось надежды на светлое будущее." -#: lang/json/talk_topic_from_json.py -msgid "" -"Boris and Garry are married, I guess. They kinda keep to themselves, they " -"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" -" I'm not totally sure. He seems nice enough, but he's a man of few words. " -"I can't get a good bead on them. I've learned not to pry too much though." -msgstr "" -"По-моему, Борис и Гарри женаты. Они типа сами по себе, и мне кажется, они " -"слегка заносчивые. Стэн, похоже, брат Бориса, но я не уверена. Он вроде " -"довольно милый, но немногословный. Но пока я в них толком не разобралась. Я " -"знаю, когда не стоит совать нос куда не нужно." - #: lang/json/talk_topic_from_json.py msgid "" "I didn't get to know Boris, Garry, and Stan so well for the first while. " @@ -223466,15 +218667,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I really can't get a bead on them. They never really talk to anyone outside" -" of their little family group, they just sit in their own spot and speak " -"Punjabi. They always seem nice, and they do their share, they just don't " -"have any social connection." +"Boris and Garry are married, I guess. They kinda keep to themselves, they " +"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" +" I'm not totally sure. He seems nice enough, but he's a man of few words. " +"I can't get a good bead on them. I've learned not to pry too much though." msgstr "" -"Я правда не хочу к ним лезть. Они никогда особо ни с кем не разговаривают, " -"кроме своей маленькой семейки. Просто сидят в своём углу и говорят на " -"панджабском. Они довольно милые и помогают, чем могут, просто никак не " -"общаются с остальными." +"По-моему, Борис и Гарри женаты. Они типа сами по себе, и мне кажется, они " +"слегка заносчивые. Стэн, похоже, брат Бориса, но я не уверена. Он вроде " +"довольно милый, но немногословный. Но пока я в них толком не разобралась. Я " +"знаю, когда не стоит совать нос куда не нужно." #: lang/json/talk_topic_from_json.py msgid "" @@ -223492,22 +218693,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " -"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " -"both seem to want to run the show here, but I try to stay out of those " -"politics and just focus on building stuff. I don't see much good coming of " -"it. Alonso is fine, he's clearly interested in me, and also in every other " -"single woman here. Not my thing, in a group this small. John is a walking " -"stereotype, I imagine there must be more depth to him, but I haven't seen it" -" yet." +"I really can't get a bead on them. They never really talk to anyone outside" +" of their little family group, they just sit in their own spot and speak " +"Punjabi. They always seem nice, and they do their share, they just don't " +"have any social connection." msgstr "" -"Ванесса… Что ж, наверное, она милая. То есть она меня бесит, но нам " -"приходится быть вместе, так что я стараюсь быть помягче. Йен и Ризея спорят," -" кто тут будет главным, но я просто с головой ухожу в сборку чего-нибудь и " -"держусь подальше от этой политики. Толку от неё никакого. Алонсо нормальный," -" он точно положил глаз на меня, а ещё на каждую женщину. Не в моём вкусе, " -"группа слишком маленькая. Джон — ходячий стереотип, полагаю, в его душе что-" -"то есть, но я туда пока не добралась." +"Я правда не хочу к ним лезть. Они никогда особо ни с кем не разговаривают, " +"кроме своей маленькой семейки. Просто сидят в своём углу и говорят на " +"панджабском. Они довольно милые и помогают, чем могут, просто никак не " +"общаются с остальными." #: lang/json/talk_topic_from_json.py msgid "" @@ -223531,12 +218725,31 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." -msgstr "Здоров, приятель. Меня звать Клеменс. Джон Клеменс. Я скотовод." +"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " +"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " +"both seem to want to run the show here, but I try to stay out of those " +"politics and just focus on building stuff. I don't see much good coming of " +"it. Alonso is fine, he's clearly interested in me, and also in every other " +"single woman here. Not my thing, in a group this small. John is a walking " +"stereotype, I imagine there must be more depth to him, but I haven't seen it" +" yet." +msgstr "" +"Ванесса… Что ж, наверное, она милая. То есть она меня бесит, но нам " +"приходится быть вместе, так что я стараюсь быть помягче. Йен и Ризея спорят," +" кто тут будет главным, но я просто с головой ухожу в сборку чего-нибудь и " +"держусь подальше от этой политики. Толку от неё никакого. Алонсо нормальный," +" он точно положил глаз на меня, а ещё на каждую женщину. Не в моём вкусе, " +"группа слишком маленькая. Джон — ходячий стереотип, полагаю, в его душе что-" +"то есть, но я туда пока не добралась." #: lang/json/talk_topic_from_json.py msgid "Howdy, pardner." -msgstr "Здоров, приятель." +msgstr "Здоров, парнёр." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +msgstr "Здоров, приятель. Меня звать Клеменс. Джон Клеменс. Я скотовод." #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, John." @@ -223557,8 +218770,7 @@ msgstr "Привет, Джон. Я не могу остаться поговор #: lang/json/talk_topic_from_json.py msgid "" "Nice to meet you too. I reckon' you got some questions 'bout this place." -msgstr "" -"Тоже рад знакомству. Кажись, ты чего-то хотел поспрашивать про это место." +msgstr "Тоже рад знакомству. Кажись, у тебя были вопросы про это место." #: lang/json/talk_topic_from_json.py msgid "Yeah, I sure do." @@ -223597,14 +218809,14 @@ msgstr "" "в хлеву… нам нужны пастбища, штоб гулять на свободе, если ты п'нимаешь, к " "чему я. П'ка пастбищ нет, тут буит довольно напряжно." -#: lang/json/talk_topic_from_json.py -msgid "Hello ma'am. I am Mandeep Singh." -msgstr "Здравствуйте, мадам. Я Мандип Сингх." - #: lang/json/talk_topic_from_json.py msgid "Hello sir. I am Mandeep Singh." msgstr "Здравствуйте, сэр. Я Мандип Сингх." +#: lang/json/talk_topic_from_json.py +msgid "Hello ma'am. I am Mandeep Singh." +msgstr "Здравствуйте, мадам. Я Мандип Сингх." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Mandeep." msgstr "Приятно познакомиться, Мандип." @@ -223650,10 +218862,6 @@ msgstr "" " семья прошли через апокалипсис почти невредимыми. Из-за этого и ещё " "нескольких вещей нам тяжело завести тут друзей." -#: lang/json/talk_topic_from_json.py -msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." -msgstr "А, да ты тут новенький! Извини, меня зовут Мангальприт." - #: lang/json/talk_topic_from_json.py msgid "Hi there." msgstr "Приветик." @@ -223662,6 +218870,10 @@ msgstr "Приветик." msgid "Oh, hello there." msgstr "О, привет." +#: lang/json/talk_topic_from_json.py +msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." +msgstr "А, да ты тут новенький! Извини, меня зовут Мангальприт." + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Mangalpreet." msgstr "Приятно познакомиться, Мангальприт." @@ -223908,16 +219120,16 @@ msgstr "" msgid "What brings you around here? We don't see a lot of new faces." msgstr "Что тебя сюда привело? У нас тут немного новых лиц." +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "Хочешь поговорить?" + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." msgstr "" "Приветик. Непохоже, чтоб мы встречались. Я Ризея, меня обычно зовут Ри." -#: lang/json/talk_topic_from_json.py -msgid "Need to talk?" -msgstr "Надо поговорить?" - #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Rhy." msgstr "Приятно встретиться, Ри." @@ -223932,7 +219144,7 @@ msgstr "Ну, какая у тебя история? У нас тут нечас #: lang/json/talk_topic_from_json.py msgid "Just a curious traveler. What's up with you?" -msgstr "Просто любопытный путник. А ты как?" +msgstr "Просто любопытный путник. А у тебя?" #: lang/json/talk_topic_from_json.py msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." @@ -224025,19 +219237,13 @@ msgid "" msgstr "" "Народ тут едва сводит концы с концами. Я раньше видела психические травмы, и" " много, но тут самое худшее, что можно вообразить. Все всё потеряли, да ещё " -"и огромная порция кошмаров сверху. Мы изображаем храбрость, но без помощи " -"очень скоро всё накроется." +"и огромная порция кошмаров вдобавок. Мы притворяемся храбрыми, но без помощи" +" очень скоро всё накроется." #: lang/json/talk_topic_from_json.py msgid "Do you want to talk about your story?" msgstr "Не хочешь ли рассказать свою историю?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " -"Stan." -msgstr "Привет. Извини, если мы уже виделись, я правда не помню. Я… Я Стэн." - #: lang/json/talk_topic_from_json.py msgid "Hm? Oh, hi." msgstr "Ммм? А, привет." @@ -224046,6 +219252,12 @@ msgstr "Ммм? А, привет." msgid "...Hi." msgstr "…Привет." +#: lang/json/talk_topic_from_json.py +msgid "" +"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " +"Stan." +msgstr "Привет. Извини, если мы уже виделись, я правда не помню. Я… Я Стэн." + #: lang/json/talk_topic_from_json.py msgid "Stan, hey? Nice to meet you." msgstr "О, Стэн? Приятно познакомиться." @@ -224106,8 +219318,8 @@ msgid "" "particular, has skills to contribute that might help him feel alive again." msgstr "" "Мы с моей семьёй почти всё время просто скорбим. Для скорби место не лучшее." -" Я надеюсь, мы сможем скоро заняться чем-то дельным; у Борис, например, есть" -" полезные навыки, которые помогут ему снова вернуться к жизни." +" Я надеюсь, мы сможем скоро заняться чем-то дельным; у Бориса, например, " +"есть полезные навыки, которые помогут ему снова вернуться к жизни." #: lang/json/talk_topic_from_json.py msgid "I had better be going." @@ -224174,6 +219386,10 @@ msgstr "Хммм, можно поменять причёску, пожалуйс msgid "Hmm, can we change this shave a little please?" msgstr "Хммм, можно по-другому побрить, пожалуйста?" +#: lang/json/talk_topic_from_json.py +msgid "Oh, you're back." +msgstr "О, ты снова тут." + #: lang/json/talk_topic_from_json.py msgid "" "Oh, great. Another new mouth to feed? Just what we need. Well, I'm " @@ -224182,10 +219398,6 @@ msgstr "" "Ну зашибись. Теперь ещё одного кормить? Прям то, чего нам не хватало. Что ж," " я Ванесса." -#: lang/json/talk_topic_from_json.py -msgid "Oh, you're back." -msgstr "О, ты вернулся." - #: lang/json/talk_topic_from_json.py msgid "I'm not a new mouth to feed, but nice to meet you too." msgstr "Меня вам кормить не придётся, но приятно познакомиться." @@ -224213,7 +219425,7 @@ msgid "" "hands." msgstr "" "Не особо. Не слишком хорошо. Мы сидим в этой дыре с кучей незнакомцев, и " -"всё, что мы можем — пялиться на свои руки." +"всё, что мы можем — пялиться в потолок." #: lang/json/talk_topic_from_json.py msgid "" @@ -224229,17 +219441,6 @@ msgstr "" msgid "Could you give me a haircut?" msgstr "Подстрижёшь меня?" -#: lang/json/talk_topic_from_json.py -msgid "" -"You want the sarcastic version, or the really sarcastic version? I'm stuck " -"in a dank shitty brick building with two dozen strangers, the world's dead, " -"and there's not enough food to go around. Why don't you fuckin' figure it " -"out?" -msgstr "" -"Хочешь с сарказмом или с большим сарказмом? Я застряла в сраном кирпичном " -"доме с двумя дюжинами левых людей, миру конец, а еды недостаточно. Чего тут," -" блядь, непонятного?" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I'm stuck in a dank shitty brick building with two dozen strangers, " @@ -224251,6 +219452,17 @@ msgstr "" "конец, а еды недостаточно. Я хотя бы могу чем-то заняться, а лишние деньги " "помогают набить брюхо. Народу нравится хорошая стрижка." +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" +"Хочешь с сарказмом или с большим сарказмом? Я застряла в сраном кирпичном " +"доме с двумя дюжинами левых людей, миру конец, а еды недостаточно. Чего тут," +" блядь, непонятного?" + #: lang/json/talk_topic_from_json.py msgid "" "I can see you need one, but last time I used these shears it was to stab a " @@ -224396,7 +219608,8 @@ msgstr "Почему кукурузная мука, вяленое мясо и #: lang/json/talk_topic_from_json.py msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" -msgstr "Ладно, но я имел в виду «кто ты такой», типа «расскажи свою историю»." +msgstr "" +"Ладно, но я имел в виду «что ты за человек», типа «расскажи свою историю»." #: lang/json/talk_topic_from_json.py msgid "" @@ -224407,7 +219620,7 @@ msgid "" " can pay a premium for any you have on you. Canned food and other edibles " "are handled by the merchant in the front in trade." msgstr "" -"Все три легко произвести на месте в больших количествах, и они не скоро " +"Все три легко произвести на месте в больших количествах, и они не " "испортятся. У нас есть пара местных фермеров и несколько охотников, которые " "пытались обеспечивать нас припасами. Нам требуется больше поставщиков. " "Потому что эти вещи достаточно дёшевы, если брать оптом. Я могу много " @@ -224416,7 +219629,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" -msgstr "Вас интересует ещё что-нибудь?" +msgstr "Тебя интересует ещё что-нибудь?" #: lang/json/talk_topic_from_json.py msgid "Very well… let's talk about something else." @@ -224470,6 +219683,14 @@ msgstr "" "головой, которым места не нашлось. Мы выделили им небольшой уголок, но это " "неидеально." +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" +"Знаю. Без понятия, как тебе удалось убедить их убраться, но и мои " +"поставщики, и я благодарим тебя. Надеюсь, вышло не очень неприглядно." + #: lang/json/talk_topic_from_json.py msgid "" "Even once we got things sorted out, there weren't enough beds for everyone, " @@ -224480,14 +219701,6 @@ msgstr "" "точно не хватало еды. Времена были непростые. Мы делаем что можем для тех " "ребят… у них хотя бы есть укрытие." -#: lang/json/talk_topic_from_json.py -msgid "" -"I do. I don't know what you did to convince them to move out, but our " -"supply chain and I both thank you. I hope it wasn't too unseemly." -msgstr "" -"Знаю. Без понятия, как тебе удалось убедить их убраться, но и мои " -"поставщики, и я благодарим тебя. Надеюсь, вышло не очень неприглядно." - #: lang/json/talk_topic_from_json.py msgid "" "Well, there's the downstairs section, we can't fit more people down there so" @@ -224561,7 +219774,7 @@ msgstr "Могу ли я присоединиться к вам, ребята?" #: lang/json/talk_topic_from_json.py msgid "Anything I can do for you?" -msgstr "Что-то, что я могу сделать?" +msgstr "Могу я чем-нибудь помочь?" #: lang/json/talk_topic_from_json.py msgid "See you later." @@ -224597,11 +219810,11 @@ msgid "" "actual traders. I'm just protection." msgstr "" "Ничего ценного на самом деле. Если вы действительно хотите узнать, спросите " -"одного из торговцев. Я просто охранник." +"кого-нибудь из торговцев. Я просто охранник." #: lang/json/talk_topic_from_json.py msgid "I'll go talk to them later." -msgstr "Я пойду и поговорю с ним попозже." +msgstr "Я пойду и поговорю с ними попозже." #: lang/json/talk_topic_from_json.py msgid "Will do, thanks!" @@ -224644,7 +219857,7 @@ msgstr "Пожалуй, я лучше подправлю тебе лицо!" #: lang/json/talk_topic_from_json.py msgid "I will." -msgstr "Я сделаю это." +msgstr "Я так и сделаю." #: lang/json/talk_topic_from_json.py msgid "" @@ -224698,8 +219911,8 @@ msgstr "Ладно, я тогда пойду его искать." msgid "" "Stay safe out there. Hate to have to kill you after you've already died." msgstr "" -"Держись подальше от этого места. Ненавижу, когда приходится убивать ещё раз " -"после того, как ты уже умер." +"Держись подальше от этого места. Не нравится, что придётся убивать тебя ещё " +"раз после того, как ты умрёшь." #: lang/json/talk_topic_from_json.py msgid "I am actually new." @@ -224824,7 +220037,7 @@ msgstr "Хорошо…" #: lang/json/talk_topic_from_json.py msgid "Like what?" -msgstr "Какого типа?" +msgstr "Например?" #: lang/json/talk_topic_from_json.py msgid "I'm not sure…" @@ -224837,8 +220050,7 @@ msgstr "Ну, типа как будто они работают на кого- #: lang/json/talk_topic_from_json.py msgid "You're new here, who the hell put you up to this crap?" msgstr "" -"Ты здесь новенький, кто, чёрт возьми, ты такой, чтобы задавать такие " -"вопросы?" +"Ты здесь совесем недавно, кто ты, чёрт возьми, чтобы задавать такие вопросы?" #: lang/json/talk_topic_from_json.py msgid "Get bent, traitor!" @@ -224857,7 +220069,7 @@ msgid "" "If you don't get on with your business I'm going to have to ask you to leave" " and not come back." msgstr "" -"Если вы не займетесь своим бизнесом, мне придется попросить вас уйти и не " +"Если вы не займетесь своими делами, мне придется попросить вас уйти и не " "возвращаться." #: lang/json/talk_topic_from_json.py @@ -224866,11 +220078,11 @@ msgstr "Прости." #: lang/json/talk_topic_from_json.py msgid "That's it, you're dead!" -msgstr "Точняк, ты труп!" +msgstr "Ну всё, ты труп!" #: lang/json/talk_topic_from_json.py msgid "I didn't mean it!" -msgstr "Я не это имел в виду!" +msgstr "Не это имелось в виду!" #: lang/json/talk_topic_from_json.py msgid "You must really have a death wish!" @@ -224895,17 +220107,17 @@ msgstr "Ведите себя прилично, или вам не поздор msgid "Just on watch, move along." msgstr "Просто стою в дозоре. Проходи мимо." -#: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "Мадам, вам действительно не стоит тут гулять." - #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" msgstr "Ну что, все прикинул?" +#: lang/json/talk_topic_from_json.py +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "Мадам, вам действительно не стоит тут гулять." + #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center…" -msgstr "Я слышал, это место было центром для беженцев…" +msgstr "Как я знаю, это место было центром для беженцев…" #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join your group?" @@ -224931,14 +220143,14 @@ msgstr "Я подумал, что вам может понадобиться п msgid "Well, I'd better be going. Bye." msgstr "Мне лучше идти. Пока." -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Добро пожаловать…" - #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." msgstr "Добро пожаловать, маршал…" +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Добро пожаловать…" + #: lang/json/talk_topic_from_json.py msgid "" "Before you say anything else, we're full. We don't have the space, nor the " @@ -225031,7 +220243,7 @@ msgid "" "in the neighborhood. Luckily we haven't had a mob like that pass by here." msgstr "" "Был здесь недавно один парень, рассказывавший, как он пытался попасть в " -"Сиракьюз после вспышки. Он даже не сумел попасть в центр, так как наткнулся " +"Сиракьюс после вспышки. Он даже не сумел попасть в центр, так как наткнулся " "на стену из живых мертвецов, которая могла остановить и танк. Он тут же дал " "дёру, но утверждает, что их там было как минимум несколько сотен. Думаю, что" " когда такое стадо собирается вместе, они издают шум, привлекающий всех в " @@ -225123,9 +220335,9 @@ msgid "" "buy, with no intention of it ever being used. From the passing scavengers " "I've heard nothing but prime loot'n spots and rumors of hordes." msgstr "" -"Не могу сказать, что мы много слышали. Похоже, большинство таких убежищ было" -" предназначено для того, чтобы люди чувствовали себя в безопасности… А не " -"для того, чтобы помочь им выжить. Наше радиооборудование — полный хлам, " +"Не могу сказать, что мы много чего знаем. Похоже, большинство таких убежищ " +"было предназначено для того, чтобы люди чувствовали себя в безопасности… А " +"не для того, чтобы помочь им выжить. Наше радиооборудование — полный хлам, " "которое кто-то уговорил закупить правительство, без намерения когда-либо " "использовать его. От проходящих добытчиков я не слышал ничего, кроме " "информации о местечках с добычей и слухов об ордах." @@ -225182,9 +220394,9 @@ msgid "" "cardboard fellow didn't go too, but he's relatively easy to handle alone." msgstr "" "Ты сделал доброе дело, забрав этих бедолаг в безопасное место. Ну, я так " -"предполагаю. Если вдруг у тебя другие планы, я бы хотел оставить вестибюль " -"чистым, но пожалуйста, позволь мне оставить мои счастливые фантазии. Я " -"уверен, они резвятся где-нибудь на прелестном поле. Жалко, что картонный " +"предполагаю. Если вдруг у тебя на них другие планы, спасибо за чистый " +"вестибюль, но пожалуйста, позволь мне оставить мои счастливые фантазии. Я " +"уверен, они резвятся где-нибудь на цветочной полянке. Жалко, что картонный " "парень не ушёл, но с ним одним куда легче справиться." #: lang/json/talk_topic_from_json.py @@ -225213,9 +220425,9 @@ msgid "" "most of the people with skills for that kind of work are already out there." msgstr "" "Один из местных беженцев на самом деле возвращался на автобусе на своё " -"ранчо, пока автобус не переделали в машину эвакуации и не доставили его " -"сюда. Когда всё успокоилось, мы заключили сделку — мы доставляем парня домой" -" и обеспечиваем рабочей силой в обмен на превращение ранчо во " +"ранчо, пока автобус не переделали в транспорт для эвакуации и не доставили " +"его сюда. Когда всё успокоилось, мы заключили сделку — мы доставляем парня " +"домой и обеспечиваем рабочей силой в обмен на превращение ранчо во " "вспомогательный пункт для наших сделок. Все остались в выигрыше, там уже " "большинство народу с навыками для подобной работы." @@ -225244,14 +220456,14 @@ msgstr "" " людей — ну, к солнышку, свежему воздуху, тяжёлой работе… но как можешь " "догадаться, людей немного пугает перспектива встречи с ордой зомби." -#: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "Гражданин…" - #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Маршал…" +#: lang/json/talk_topic_from_json.py +msgid "Citizen..." +msgstr "Гражданин…" + #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" msgstr "Могу я поторговать за припасы?" @@ -225309,7 +220521,7 @@ msgid "" " they're related." msgstr "" "Это не классическое нашествие зомби. Похоже, со временем мертвецы становятся" -" сильнее. И некоторые выживальщики тоже приходят с… Адаптациями. Возможно, " +" сильнее. И некоторые выживальщики тоже приходят с… адаптациями. Возможно, " "это связано." #: lang/json/talk_topic_from_json.py @@ -225320,14 +220532,14 @@ msgstr "" "Мы не можем. На продажу ничего лишнего нет, и мне нечем расплатиться за " "покупки у тебя. Я не думаю, что ты собрался пожертвовать?" -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "Ха, у вас такой важный вид." - #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "Точно, у вас тут блестящий жетон!" +#: lang/json/talk_topic_from_json.py +msgid "Heh, you look important." +msgstr "Ха, у вас такой важный вид." + #: lang/json/talk_topic_from_json.py msgid "I'm actually new." msgstr "Вообще-то я новичок." @@ -225350,7 +220562,7 @@ msgid "" "though. Full up as hell; it's almost a crowd downstairs. Did you see the " "trader at the entrance? There's the one to ask." msgstr "" -"Значит, нас таких двое. Ну, типа. Не думаю, впрочем, что тут открыто. " +"Значит, нас таких двое. Ну, типа. Не думаю, впрочем, что тут есть места. " "Чертовски забито; там внизу почти целая толпа. Видишь вон того торговца? Его" " и спрашивай." @@ -225413,17 +220625,17 @@ msgstr "" "хочет меня здесь видеть, когда я не занимаюсь торговлей, но… Многих людей " "это устраивает." -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate… mutations. This was an accident." -msgstr "Шшш. Некоторые люди здесь ненавидят… Мутации. Был тут один инцидент." - #: lang/json/talk_topic_from_json.py msgid "" "Same way you got yours, I bet. Keep quiet about it, some people here look " "down on people like us." msgstr "" -"Держу пари, ты так же добился своего. Молчи об этом, некоторые здесь смотрят" -" свысока на таких, как мы." +"Оттуда же, откуда твои, я так думаю. Молчи об этом, некоторые здесь смотрят " +"свысока на таких, как мы." + +#: lang/json/talk_topic_from_json.py +msgid "Ssh. Some people in here hate… mutations. This was an accident." +msgstr "Шшш. Некоторые люди здесь ненавидят… Мутации. Был тут один инцидент." #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" @@ -225437,8 +220649,8 @@ msgid "" " exchange, I guess." msgstr "" "Сжигаю здания и сплавляю материалы Свободным Торговцам. Не шучу. Видел как-" -"нибудь кучу пережжённого хлама вместо пригорода или тонну балок на продажу? " -"Скорее всего, моя работа. Денег вроде неплохо получаю." +"нибудь кучу горелых руин вместо пригорода или тонну балок на продажу? Скорее" +" всего, моя работа. Денег вроде неплохо получаю." #: lang/json/talk_topic_from_json.py msgid "I'll buy." @@ -225456,22 +220668,22 @@ msgstr "" "Я сделал немало полезных штук из нитрата аммония, который оказался у меня " "благодаря тебе. Хочешь поторговать?" -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "Иди нахрен!" - #: lang/json/talk_topic_from_json.py msgid "As if you're one to talk. Screw You." msgstr "Да что с тобой говорить. Пошёл ты." #: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "Эй, кажется вы здесь недавно. Могу я вам помочь?" +msgid "Screw You!" +msgstr "Иди нахрен!" #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest… please don't arrest me." msgstr "Кажется я учуял свинью. Шучу… Пожалуйста, не арестовывайте меня." +#: lang/json/talk_topic_from_json.py +msgid "Huh, thought I smelled someone new. Can I help you?" +msgstr "Эй, кажется вы здесь недавно. Могу я вам помочь?" + #: lang/json/talk_topic_from_json.py msgid "You… smelled me?" msgstr "Ты… чуешь меня?" @@ -225539,8 +220751,8 @@ msgid "" "Sure, just bagged a fresh batch of meat. You may want to grill it up before" " it gets too, uh… 'tender'." msgstr "" -"Конечно, просто свежая порция мяса. Может ты захочешь его поджарить, пока " -"оно не стало слишком, ммм… «Мягким»." +"Конечно, только появилась свежая порция мяса. Может ты захочешь его " +"поджарить, пока оно не стало слишком, ммм… «Мягким»." #: lang/json/talk_topic_from_json.py msgid "" @@ -225588,7 +220800,7 @@ msgstr "Кури крэк, чтобы еще больше разгребать #: lang/json/talk_topic_from_json.py msgid "Watch your back out there." -msgstr "Береги свою задницу там." +msgstr "Почаще оглядывайся, когда ты выходишь наружу." #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" @@ -225733,9 +220945,7 @@ msgstr "Сколько будет стоит нанять вас?" #: lang/json/talk_topic_from_json.py msgid "" "I'm just a hired hand. Someone pays me and I do what needs to be done." -msgstr "" -"Меня просто наняли. Кое-кто платит мне за то, чтобы я делал то, что ему " -"нужно." +msgstr "Я просто наёмник. Мне платят мне, и я делаю, что нужно." #: lang/json/talk_topic_from_json.py msgid "" @@ -225749,7 +220959,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I suppose I should hire a party then?" -msgstr "Полагаю, тогда я должен нанять отряд?" +msgstr "Полагаю, тогда мне стоит нанять отряд?" #: lang/json/talk_topic_from_json.py msgid "" @@ -225801,18 +221011,6 @@ msgstr "Думаю, вы здесь главный." msgid "Glad to have you aboard." msgstr "Добро пожаловать на борт." -#: lang/json/talk_topic_from_json.py -msgid "" -"Hold there. I don't care how you got access to this location, but you are " -"coming no further. Go away." -msgstr "" -"Погоди. Мне всё равно, как ты сюда пробрался, но дальше ты не пройдёшь. " -"Убирайся." - -#: lang/json/talk_topic_from_json.py -msgid "We haven't changed our mind. Go away." -msgstr "Мы не передумали. Убирайся." - #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" msgstr "Итак, что-нибудь нужно?" @@ -225893,6 +221091,18 @@ msgstr "Повтори-ка?" msgid "If/you speak to/understand… you/me. Yes?" msgstr "…сли… Ты гов…ишь с… Ты… Я… Да?" +#: lang/json/talk_topic_from_json.py +msgid "We haven't changed our mind. Go away." +msgstr "Мы не передумали. Убирайся." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hold there. I don't care how you got access to this location, but you are " +"coming no further. Go away." +msgstr "" +"Погоди. Мне всё равно, как ты сюда пробрался, но дальше ты не пройдёшь. " +"Убирайся." + #: lang/json/talk_topic_from_json.py msgid "Wait! What??" msgstr "Стоп! Что?!" @@ -225993,11 +221203,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py src/npctalk.cpp msgid "Tell me about it." -msgstr "Расскажи мне об этом." +msgstr "Расскажите мне." #: lang/json/talk_topic_from_json.py msgid "I'm not risking myself for a deal that bad." -msgstr "Я не рискну собой ради такой плохой затеи." +msgstr "Я не рискну собой ради такой хрени." #: lang/json/talk_topic_from_json.py msgid "You know the deal, good luck." @@ -226017,7 +221227,7 @@ msgstr "У меня почасовая оплата, так что короче #: lang/json/talk_topic_from_json.py msgid "Hey." -msgstr "Эй." +msgstr "Привет." #: lang/json/talk_topic_from_json.py msgid "Yes?" @@ -226025,11 +221235,11 @@ msgstr "Да?" #: lang/json/talk_topic_from_json.py msgid "Good to see you." -msgstr "Рад тебя видеть." +msgstr "Приятно вновь тебя видеть." #: lang/json/talk_topic_from_json.py msgid "Good to see you around." -msgstr "Рад видеть, что ты ещё жив." +msgstr "Приятно видеть, что ты ещё среди живых." #: lang/json/talk_topic_from_json.py msgid "Want help with something else?" @@ -226058,8 +221268,8 @@ msgid "" "Good. I could do with some company between jobs. Feel free to stay around," " if you want." msgstr "" -"Здорово. Я не против новой компании в перерыве между работой. Если хочешь, " -"посиди немного." +"Здорово. Я не против компании в перерыве между работой. Если хочешь, посиди " +"немного." #: lang/json/talk_topic_from_json.py msgid "Guess I could stay for a while" @@ -226083,11 +221293,11 @@ msgstr "Есть что сказать?" #: lang/json/talk_topic_from_json.py msgid "Didn't you want something?" -msgstr "Ты вроде чего-то хотел?" +msgstr "Тебе вроде чего-то нужно было?" #: lang/json/talk_topic_from_json.py msgid "Anything interesting going on?" -msgstr "Слышал ли про что-нибудь интересное?" +msgstr "Слышно ли что-нибудь интересное?" #: lang/json/talk_topic_from_json.py msgid "Anything on your mind?" @@ -226131,7 +221341,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I guess I could help with that…" -msgstr "Я бы смог с этим помочь…" +msgstr "Я, пожалуй, смогу с этим помочь…" #: lang/json/talk_topic_from_json.py msgid "Now that you mention it, it does seem rather strange." @@ -226189,14 +221399,6 @@ msgstr "На самом деле у меня нет на это времени, msgid "Keep it civil, merc." msgstr "Веди себя вежливо, наёмник." -#: lang/json/talk_topic_from_json.py -msgid "Here to trade, I hope?" -msgstr "Надеюсь, ты тут для торговли?" - -#: lang/json/talk_topic_from_json.py -msgid "Safe travels, scavenger." -msgstr "Безопасного пути, странник." - #: lang/json/talk_topic_from_json.py msgid "" "Still plenty of outlaws in the roads, perhaps you should tend to your job, " @@ -226213,14 +221415,12 @@ msgid "Oh, a U.S. marshal, how quaint." msgstr "О, маршал США, как необычно." #: lang/json/talk_topic_from_json.py -msgid "" -"We have been supplying this lab here with food from a few hunting and " -"farming communities nearby. The roads are though and dangerous, but it " -"makes good money, and beats scavenging the cities for scraps." -msgstr "" -"Мы снабжали эту лабораторию едой из нескольких ближайших охотничьих и " -"фермерских общин. Дороги небезопасные, но это прибыльно и куда выгоднее, чем" -" шарить по городам за объедки." +msgid "Here to trade, I hope?" +msgstr "Надеюсь, ты тут для торговли?" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "Безопасного пути, странник." #: lang/json/talk_topic_from_json.py msgid "" @@ -226229,9 +221429,19 @@ msgid "" msgstr "" "Я занимаюсь своими делами, а ты своими, маршал. Звучит справедливо, так?" +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" +"Мы снабжали эту лабораторию едой из нескольких ближайших охотничьих и " +"фермерских общин. Дороги небезопасные, но это прибыльно и куда лучше, чем " +"шариться по городам ради объедков." + #: lang/json/talk_topic_from_json.py msgid "Keep safe, then." -msgstr "Тогда береги себя." +msgstr "Что ж, береги себя." #: lang/json/talk_topic_from_json.py msgid "" @@ -226350,12 +221560,12 @@ msgid "" "My partner is in charge of fortifying this place, you should ask him about " "what needs to be done." msgstr "" -"Мой партнёр руководит укреплением этого места, так что лучше спросить у " +"Мой партнёр работает над укреплением этого места, так что лучше спросить у " "него, что нужно сделать." #: lang/json/talk_topic_from_json.py msgid "I'll talk to him then…" -msgstr "Я поговорю с ним, тогда…" +msgstr "Тогда я поговорю с ним…" #: lang/json/talk_topic_from_json.py msgid "" @@ -226394,7 +221604,7 @@ msgstr "Буду иметь в виду." #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I don't have time to see you at the moment." -msgstr "Извини, сейчас мне некогда с тобой видеться." +msgstr "Извини, сейчас мне некогда с тобой общаться." #: lang/json/talk_topic_from_json.py msgid "For the right price could I borrow your services?" @@ -226423,7 +221633,7 @@ msgid "" "and error." msgstr "" "Меня направили сюда, чтобы помочь в создании фермы. Большинство из нас " -"ничего толком не умеет, так что нужен метод проб и ошибок." +"ничего толком не умеет, так что пользуемся методом проб и ошибок." #: lang/json/talk_topic_from_json.py msgid "" @@ -226436,7 +221646,7 @@ msgstr "" "распределяем то, что производим, между центром беженцев, фермой и нами " "самими. Если вы — квалифицированный рабочий, тогда вы можете продать своё " "время за дополнительный доход на стороне. Впрочем, не то чтобы я мог помочь " -"тебе как фермер." +"тебе с фермерством." #: lang/json/talk_topic_from_json.py msgid "Oh." @@ -226471,31 +221681,30 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll talk with them then…" -msgstr "Я поговорю с ними, тогда…" +msgstr "Тогда я поговорю с ними…" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "Доброе утро, мэм, чем я могу вам помочь?" +msgid "Can I help you, marshal?" +msgstr "Могу я помочь вам, маршал?" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" msgstr "Доброе утро, сэр, чем я могу вам помочь?" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "Могу я помочь вам, маршал?" +msgid "Morning ma'am, how can I help you?" +msgstr "Доброе утро, мэм, чем я могу вам помочь?" #: lang/json/talk_topic_from_json.py msgid "" "[MISSION] The merchant at the Refugee Center sent me to get a prospectus " "from you." msgstr "" -"[ЗАДАНИЕ] Торговец из Центра беженцев отправил меня, чтобы я взял у тебя " -"проект." +"[ЗАДАНИЕ] Торговец из Центра беженцев отправил меня забрать у тебя проект." #: lang/json/talk_topic_from_json.py msgid "I heard you were setting up an outpost out here." -msgstr "Я слышал, вы основали здесь аванпост." +msgstr "Говорят, вы основали здесь аванпост." #: lang/json/talk_topic_from_json.py msgid "What's your job here?" @@ -226565,11 +221774,11 @@ msgid "" "here and dump it on the ground, we'll sort it." msgstr "" "Я здесь главный инженер, пытаюсь превратить это место в рабочий лагерь. Это " -"будет трудное дело, так как мы использовали большую часть материалов, с " -"которыми прибыли сюда, на укрепление окон. У меня есть огромный список " -"задач, которые нужно выполнить, так что если бы ты обеспечивал нас " -"припасами, мы были бы тебе благодарны. Если у тебя есть материалы, то ты " -"можешь загнать сюда свой транспорт и выгрузить их, а уж мы рассортируем их." +"будет непросто, так как мы использовали большую часть материалов, с которыми" +" прибыли сюда, на укрепление окон. У меня есть огромный список задач, " +"которые нужно выполнить, так что если бы ты обеспечишь нас припасами, мы " +"будем тебе благодарны. Если у тебя есть материалы, то ты можешь загнать сюда" +" свой транспорт и выгрузить их, а уж мы рассортируем их." #: lang/json/talk_topic_from_json.py msgid "" @@ -226577,8 +221786,8 @@ msgid "" "for hands, that's for sure. If they're willing to put in a hard day's work," " we can get them busy." msgstr "" -"Мы пока ещё только-только начали развиваться, но избытка рук у нас уж точно " -"нет. Если они хотят тяжёлой работы, мы найдём им занятие." +"Мы пока ещё только-только начали развиваться, но избытка рабочих рук у нас " +"уж точно нет. Если они хотят тяжёлой работы, мы найдём им занятие." #: lang/json/talk_topic_from_json.py msgid "I'll tell them that, but they seemed good for a bit of hard labor." @@ -226616,14 +221825,14 @@ msgstr "Есть какая-нибудь работа для меня?" msgid "Not now." msgstr "Не сейчас." -#: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." -msgstr "Я могу осмотреть вас или ваших компаньонов, если вы получили травму." - #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." msgstr "Возвращайтесь позже, мне нужно позаботиться о паре вещей сначала." +#: lang/json/talk_topic_from_json.py +msgid "I can take a look at you or your companions if you are injured." +msgstr "Я могу осмотреть вас или ваших компаньонов, если вы получили травму." + #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." msgstr "[$200, 30 минут] Подлатайте меня." @@ -226815,7 +222024,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Howdy! You seem new, what brings you here?" -msgstr "Привет! Похоже ты новенький, что привело тебя сюда?" +msgstr "Привет! Похоже, ты из новеньких, что привело тебя сюда?" #: lang/json/talk_topic_from_json.py msgid "How do I join the phyle?" @@ -226869,11 +222078,11 @@ msgid "" "currency before the Cataclysm" msgstr "" "Ты должен заслужить право торговать с нами. К тому же, мы создали " -"собственную валюту до катаклизма" +"собственную валюту до Катаклизма." #: lang/json/talk_topic_from_json.py msgid "What kind of currency?" -msgstr "Какая валюта?" +msgstr "Какую валюту?" #: lang/json/talk_topic_from_json.py msgid "" @@ -226884,7 +222093,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I didn't want to join your club anyway." -msgstr "Я не хотел вступать к вам, в любом случае." +msgstr "Я не хочу вступать к вам, в любом случае." #: lang/json/talk_topic_from_json.py msgid "" @@ -226938,10 +222147,6 @@ msgstr "" "шутим, называя ихтак. Бартер тоже полезен только до определенного предела. " "А однажды мы восстановим Сеть." -#: lang/json/talk_topic_from_json.py -msgid "New test subjects! I'm so glad you showed up!" -msgstr "Новые подопытные! Рад, что вы пришли!" - #: lang/json/talk_topic_from_json.py msgid "What did you bring me?" msgstr "Что там у тебя?" @@ -226950,6 +222155,10 @@ msgstr "Что там у тебя?" msgid "Do you smell something?" msgstr "Чувствуешь какой-нибудь запах?" +#: lang/json/talk_topic_from_json.py +msgid "New test subjects! I'm so glad you showed up!" +msgstr "Новые подопытные! Рад, что вы пришли!" + #: lang/json/talk_topic_from_json.py msgid "How did you get here?" msgstr "Как тебе удалось сюда попасть?" @@ -226963,7 +222172,7 @@ msgid "" "Millyficent Whately. I'm so glad you finally arrived. It's been a while " "since I last received new lab partners." msgstr "" -"Миллифисет Ватели. Рада твоему появления. Прошло немало времени с тех пор, " +"Миллифисент Ватели. Рада твоему появления. Прошло немало времени с тех пор, " "как у меня были коллеги по лаборатории." #: lang/json/talk_topic_from_json.py @@ -227036,6 +222245,249 @@ msgstr "" msgid "This is not reassuring." msgstr "Это не обнадеживает." +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more" +" fearsome enforcer." +msgstr "" +"Мне пришлось пройти экспериментальные процедуры, чтобы стать более пугающим " +"громилой в картеле." + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "Откуда ты?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "" +"Половина ребят, с которыми я проходил генетическую терапию, умерли, но " +"сейчас и так почти все мертвы, верно?" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "Расскажи еще." + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "Лишь безумец будет процветать." + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "Как это закончилось?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided" +" to use tactical nukes and buy time for the retreat." +msgstr "" +"Когда правительство плюнуло на идею спасти центр города, кто-то решил, что " +"тактические ядерные боеголовки помогут выиграть время для отступления." + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "Они пробили проход в орде, окружившей город, и мне удалось убежать." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "" +"У каждого выбора есть последствия. Но все последствия стоят того, если это " +"помогает выжить." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "" +"Я был среди операторов реактора, когда что-то огромное начало крушить все " +"вокруг." + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "" +"Я с моими коллегами перегрели реактор, чтобы спасти сотни тысяч жизней." + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "Думаю, все остальные, кто там был, уже все равно мертвы." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that" +" were happening in the city, they were beneath me." +msgstr "" +"Дела шли хорошо. Я работал на крупную японскую компанию. Меня уважали, и у " +"меня были подчиненные. Я в основном игнорировал изменения, происходившие в " +"городе, это было ниже моего достоинства." + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "Так что произошло?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security" +" notices piled up about routes through the city to avoid. Finally, one day " +"I came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" +"Постепенно все меньше и меньше офисного планктона выходило на работу. " +"Приходила куча писем от службы безопасности о маршрутах, которые нужно " +"избегать. Наконец, однажды я пришел на работу и своими ушами услышал " +"приближающиеся беспорядки, а еще словно рев животных, огромных животных." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only" +" chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" +"В последний день охрана и ученые вышли из подземной лаборатории и собрали " +"весь оставшийся персонал. Один из них сказал, что остался последний шанс на " +"выживание. Под дулами пистолетов они стали делать инъекции." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "" +"Я работал биохакером до Катаклизма. Зарабатывал, делая дженерики лекарств, " +"наркоту и прочие нелегальные вещички." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "" +"Вообрази мое удивление, когда мне вкололи какие-то чужеродные стволовые " +"клетки." + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "" +"Это конечно помогло мне выжить. Разве был выбор, как можно отказаться от " +"подобного преимущества в выживании?" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "Меня создали, чтобы быть спутником миллиардера." + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "Их богатство и связи не спасли их." + +#: lang/json/talk_topic_from_json.py +msgid "" +"But they built me with the ability to survive a world beyond imagining." +msgstr "" +"Но они создали меня со способностями для вываживания в мире, который никто и" +" не мог вообразить." + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "Так почему же ты тут?" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "Они создали целой поколение Возвышенных вроде меня." + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "" +"Нам нужно было создать свое поселение вдали от всех людей, когда начался " +"Катаклизм." + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "Может, так мы и сделали, хаха." + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "Почему вы так и не поступили?" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "Я вырос на острове под присмотром доктора." + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "У меня было много братьев и сестер." + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "Мы его съели." + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "" +"Зоопарк, созданный как связующее звено между биологическим видом, от " +"которого я происхожу, и людьми, изучающими его." + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "" +"Я был там, когда начался Катаклизм. Многие животные оказались заражены." + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "Зомбомедведи - ужасающие существа, несущие разрушение." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked" +" for the government or a corporation." +msgstr "" +"Я служил отряде черных оперативников. До сих пор не знаю, была ли это работа" +" на правительство или корпорацию." + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "" +"Мою команду послали в лабораторию с заданием вычистить ее огнем. То, что я " +"там видел, преследует меня." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come" +" back." +msgstr "" +"Другие могли выжить, но я сильно в этом сомневаюсь. Надеюсь, они не " +"вернулись к жизни так, как это сейчас происходит." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "" +"Меня вырастили в пробирке, я почти человек, словно Макдуф Шекспира. Я " +"творение старого мира." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons" +" afraid of mutants." +msgstr "" +"Осталось слишком мало людей, чтобы можно было делить их на группы. Ну кроме " +"кретинов, которые боятся мутантов." + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "Теперь я выбираю, чего ради погибну." + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "Здарова, добытчик." @@ -227082,7 +222534,7 @@ msgid "" " treasure. I'm more than willing to trade if you've got the cash." msgstr "" "Просто добытчик, которому повезло. Сейчас меня устраивает сидеть тут на " -"своей груде сокровищ. Я более чем хочу поторговать, если у тебя есть деньги." +"своей груде сокровищ. Я очень даже поторговать, если у тебя есть деньги." #: lang/json/talk_topic_from_json.py msgid "I see…" @@ -227139,14 +222591,14 @@ msgstr "Да снизойдет благословение. Да очистиш msgid "I must purge this place before I can move on." msgstr "Я должен очистить это место перед тем, как смогу продолжить." -#: lang/json/talk_topic_from_json.py -msgid "Huh? *mumble mumble* … Who are you?" -msgstr "А? *невнятно бормочет* …Ты еще кто?" - #: lang/json/talk_topic_from_json.py msgid "Oh, you again." msgstr "А, опять ты." +#: lang/json/talk_topic_from_json.py +msgid "Huh? *mumble mumble* … Who are you?" +msgstr "А? *невнятно бормочет* …Ты еще кто?" + #: lang/json/talk_topic_from_json.py msgid "I'm busy, what is it?" msgstr "Я занят, в чем дело?" @@ -227155,14 +222607,14 @@ msgstr "Я занят, в чем дело?" msgid "And leave my tower and all my research? I think not." msgstr "И оставить мою башню и мои исследования? Я так не думаю." -#: lang/json/talk_topic_from_json.py -msgid "Do you seek power as well?" -msgstr "Ты тоже ищешь силу?" - #: lang/json/talk_topic_from_json.py msgid "Ah, hello again." msgstr "Ах, снова привет." +#: lang/json/talk_topic_from_json.py +msgid "Do you seek power as well?" +msgstr "Ты тоже ищешь силу?" + #: lang/json/talk_topic_from_json.py msgid "Yes, yes… *electrical crackling* Isn't it beautiful?" msgstr "Да, да… *помехи*. Разве не красиво?" @@ -227197,17 +222649,17 @@ msgstr "Собирай манатки, . Мы валим отсюда." #: lang/json/technique_from_json.py msgid "Biojutsu Counter" -msgstr "Контрудар Био-джитсу" +msgstr "Контрудар био-джитсу" #: lang/json/technique_from_json.py #, python-format msgid "You block and counter-attack %s" -msgstr "Вы блокируете и контратакуете %s" +msgstr "Вы блокируете и контратакуете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " blocks and counter-attacks %s" -msgstr " блокирует и контратакует %s" +msgstr " блокирует и контратакует противника (%s)" #: lang/json/technique_from_json.py src/game.cpp msgid "Disarm" @@ -227216,12 +222668,12 @@ msgstr "Разоружение" #: lang/json/technique_from_json.py #, python-format msgid "You effortlessly disarm and stun %s" -msgstr "Вы без труда обезоруживаете и оглушаете %s" +msgstr "Вы без труда обезоруживаете и оглушаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " effortlessly disarms and stuns %s" -msgstr " без труда обезоруживает и оглушает %s" +msgstr " без труда обезоруживает и оглушает противника (%s)" #: lang/json/technique_from_json.py msgid "Measured Strike (melee)" @@ -227230,12 +222682,12 @@ msgstr "Точный удар (ближний бой)" #: lang/json/technique_from_json.py #, python-format msgid "You make an efficient strike against %s" -msgstr "Вы наносите %s отличный удар" +msgstr "Вы наносите отличный удар противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " makes an efficient strike against %s" -msgstr " наносит %s отличный удар" +msgstr " наносит отличный удар противнику (%s)" #: lang/json/technique_from_json.py msgid "Measured Strike (unarmed)" @@ -227248,12 +222700,12 @@ msgstr "Пронзание био-джитсу" #: lang/json/technique_from_json.py #, python-format msgid "You brutally impale %s with your weapon" -msgstr "Вы жестоко пронзаете %s своим оружием" +msgstr "Вы жестоко пронзаете своим оружием противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " brutally impales %s with their weapon" -msgstr " жестоко пронзает %s своим оружием" +msgstr " жестоко пронзает своим оружием противника (%s)" #: lang/json/technique_from_json.py msgid "Biojutsu Takedown" @@ -227262,12 +222714,12 @@ msgstr "Захват био-джитсу" #: lang/json/technique_from_json.py #, python-format msgid "You kick and slam %s to the ground" -msgstr "Вы пинаете %s и швыряете на землю" +msgstr "Вы пинаете противника (%s) и швыряете на землю" #: lang/json/technique_from_json.py #, python-format msgid " kicks and slams %s to the ground" -msgstr " пинает %s и швыряет на землю" +msgstr " пинает противника (%s) и швыряет на землю" #: lang/json/technique_from_json.py msgid "Biojutsu Cleave" @@ -227276,12 +222728,13 @@ msgstr "Рассечение био-джитсу" #: lang/json/technique_from_json.py #, python-format msgid "You quickly cleave through %s and those nearby" -msgstr "Вы стремительно прорубаетесь сквозь %s и окружающих " +msgstr "Вы стремительно прорубаетесь сквозь противника (%s) и окружающих" #: lang/json/technique_from_json.py #, python-format msgid " quickly cleaves through %s and those nearby" -msgstr " стремительно прорубается сквозь %s и окружающих " +msgstr "" +" стремительно прорубается сквозь противника (%s) и окружающих" #: lang/json/technique_from_json.py msgid "Lizard Strike" @@ -227290,12 +222743,12 @@ msgstr "Удар Ящерицы" #: lang/json/technique_from_json.py #, python-format msgid "You spearhand strike %s" -msgstr "Вы складываете руку в остриё и поражаете %s" +msgstr "Вы складываете руку в остриё и поражаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " spearhand strikes %s" -msgstr " складывает руку в остриё и поражает %s" +msgstr " складывает руку в остриё и поражает противника (%s)" #: lang/json/technique_from_json.py msgid "Lizard Tail" @@ -227304,12 +222757,12 @@ msgstr "Хвост Ящерицы" #: lang/json/technique_from_json.py #, python-format msgid "You leap off a nearby wall and dropkick %s" -msgstr "Вы отскакиваете от стены и с размаху бьёте %s" +msgstr "Вы отскакиваете от стены и с размаху бьёте противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " leaps off a nearby wall and dropkicks %s" -msgstr " отскакивает от стены и с размаху бьёт %s" +msgstr " отскакивает от стены и с размаху бьёт противника (%s)" #: lang/json/technique_from_json.py lang/json/technique_from_json.py #: src/martialarts.cpp @@ -227324,21 +222777,21 @@ msgstr "%s пытается вас схватить, но вы перехитр #: lang/json/technique_from_json.py #, python-format msgid "The %s tries to grab , but they outmaneuver it!" -msgstr "%s пытается схватить , но тот перехитрил его!" +msgstr "%s пытается схватить противника (), но тот перехитрил его!" #: lang/json/technique_from_json.py msgid "Lizard Wall Counter" -msgstr "Контрудар ящерицы" +msgstr "Контрудар Ящерицы" #: lang/json/technique_from_json.py #, python-format msgid "You push off a nearby wall and strike down at %s" -msgstr "Вы отталкиваетесь от стены и низвергаете удар на %s" +msgstr "Вы отталкиваетесь от стены и низвергаете удар на противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " pushes off a nearby wall and strikes down at %s" -msgstr " отталкивается от стены и низвергает удар на %s" +msgstr " отталкивается от стены и низвергает удар на противника (%s)" #: lang/json/technique_from_json.py msgid "Lizard Counter" @@ -227347,72 +222800,72 @@ msgstr "Контратака Ящерицы" #: lang/json/technique_from_json.py #, python-format msgid "You duck away and strike back at %s" -msgstr "Вы пригибаетесь и наносите %s ответный удар" +msgstr "Вы пригибаетесь и наносите противнику (%s) ответный удар" #: lang/json/technique_from_json.py #, python-format msgid " ducks away and strikes back at %s" -msgstr " пригибается и наносит %s ответный удар" +msgstr " пригибается и наносит противнику (%s) ответный удар" #: lang/json/technique_from_json.py msgid "Viper Hiss" -msgstr "шипение гадюки" +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" -msgstr "кулак гадюки" +msgstr "Кулак Гадюки" #: lang/json/technique_from_json.py #, python-format msgid "You quickly chop %s" -msgstr "Вы быстро рубите %s" +msgstr "Вы быстро рубите противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " quickly chops %s" -msgstr " быстро рубит %s" +msgstr " быстро рубит противника (%s)" #: lang/json/technique_from_json.py msgid "Viper Bite" -msgstr "укус гадюки" +msgstr "Укус Гадюки" #: lang/json/technique_from_json.py #, python-format msgid "You lash out at %s with a Viper Bite" -msgstr "Вы набрасываетесь на %s Укусом гадюки" +msgstr "Вы набрасываетесь на противника (%s) Укусом гадюки" #: lang/json/technique_from_json.py #, python-format msgid " lash out at %s with a Viper Bite" -msgstr " набрасывается на %s Укусом гадюки" +msgstr " набрасывается на противника (%s) Укусом гадюки" #: lang/json/technique_from_json.py msgid "Viper Strike" -msgstr "атака гадюки" +msgstr "Удар Гадюки" #: lang/json/technique_from_json.py #, python-format msgid "You hit %s with a spectacular Viper Strike" -msgstr "Вы врезаете по %s эффектным ударом гадюки" +msgstr "Вы врезаете эффектным Ударом Гадюки противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " hits %s with a spectacular Viper Strike" -msgstr " врезает по %s эффектным ударом гадюки" +msgstr " врезает эффектным Ударом Гадюки противнику (%s)" #: lang/json/technique_from_json.py msgid "Viper Writhe" -msgstr "гибкость гадюки" +msgstr "Гибкость Гадюки" #: lang/json/technique_from_json.py #, python-format @@ -227422,7 +222875,7 @@ msgstr "%s пытается вас схватить, но вы выскальз #: lang/json/technique_from_json.py #, python-format msgid "The %s tries to grab , but they writhe free!" -msgstr "%s пытается схватить , но тот выскальзывает!" +msgstr "%s пытается схватить противника (), но тот выскальзывает!" #: lang/json/technique_from_json.py msgid "Roundhouse Kick" @@ -227431,12 +222884,12 @@ msgstr "Удар с разворота" #: lang/json/technique_from_json.py #, python-format msgid "You roundhouse kick %s" -msgstr "Вы наносите %s удар с разворота" +msgstr "Вы наносите противнику (%s) удар с разворота" #: lang/json/technique_from_json.py #, python-format msgid " roundhouse kicks %s" -msgstr " наносит %s удар с разворота" +msgstr " наносит противника (%s) удар с разворота" #: lang/json/technique_from_json.py msgid "Stinger Kick" @@ -227445,12 +222898,12 @@ msgstr "Жалящий Удар" #: lang/json/technique_from_json.py #, python-format msgid "Your Stinger Kick sends %s flying" -msgstr "Ваш резкий удар отправляет %s в полёт" +msgstr "Ваш резкий удар отправляет противника (%s) в полёт" #: lang/json/technique_from_json.py #, python-format msgid "'s Stinger Kick sends %s flying" -msgstr " резким ударом отправляет %s в полёт" +msgstr " резким ударом отправляет противника (%s) в полёт" #: lang/json/technique_from_json.py msgid "Pincer Fist" @@ -227459,12 +222912,12 @@ msgstr "Кулак-клешня" #: lang/json/technique_from_json.py #, python-format msgid "You stun %s with your Pincer Fist" -msgstr "Вы оглушаете %s кулаком-клешнёй" +msgstr "Вы оглушаете противника (%s) кулаком-клешнёй" #: lang/json/technique_from_json.py #, python-format msgid " jabs %s with a Pincer Fist" -msgstr " бьёт %s клешнёй" +msgstr " бьёт противника (%s) клешнёй" #: lang/json/technique_from_json.py msgid "Toad Smack" @@ -227473,12 +222926,12 @@ msgstr "Жабий укус" #: lang/json/technique_from_json.py #, python-format msgid "You disregard %s's attack and knock them down" -msgstr "Вы блокируете атаку и сбиваете %s с ног" +msgstr "Вы блокируете атаку и сбиваете противника (%s) с ног" #: lang/json/technique_from_json.py #, python-format msgid " disregards %s's attack and knocks them down" -msgstr " блокирует атаку и сбивает %s с ног" +msgstr " блокирует атаку и сбивает противника (%s) с ног" #: lang/json/technique_from_json.py msgid "Toad Slam" @@ -227487,26 +222940,26 @@ msgstr "Жабий удар" #: lang/json/technique_from_json.py #, python-format msgid "You meet %s's attack head on with a stunning counter" -msgstr "Вы встречаете атаку %s потрясающим контрударом" +msgstr "Вы встречаете атаку противника (%s) ошеломляющим контрударом" #: lang/json/technique_from_json.py #, python-format msgid " meet %s's attack head on with a stunning counter" -msgstr " встречает атаку %s потрясающим контрударом" +msgstr " встречает атаку противника (%s) ошеломляющим контрударом" #: lang/json/technique_from_json.py msgid "Toad's Tongue" -msgstr "жабий язык" +msgstr "Жабий язык" #: lang/json/technique_from_json.py #, python-format msgid "You snatch and slug %s" -msgstr "Вы хватаете и бьёте %s" +msgstr "Вы хватаете и бьёте противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " snatches and slug %s" -msgstr " хватает и бьёт %s" +msgstr " хватает и бьёт противника (%s)" #: lang/json/technique_from_json.py #, python-format @@ -227516,7 +222969,7 @@ msgstr "%s пытается вас схватить, но вы выворачи #: lang/json/technique_from_json.py #, python-format msgid "The %s tries to grab , but they skitter free!" -msgstr "%s пытается схватить , но тот выворачивается!" +msgstr "%s пытается схватить противника (), но тот выворачивается!" #: lang/json/technique_from_json.py msgid "Centipede Strike" @@ -227525,12 +222978,12 @@ msgstr "Удар многоножки" #: lang/json/technique_from_json.py #, python-format msgid "You swiftly hit %s" -msgstr "Вы наносите быстрый удар %s" +msgstr "Вы наносите быстрый удар противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " swiftly hits %s" -msgstr " наносит быстрый удар по %s" +msgstr " наносит быстрый удар по противника (%s)" #: lang/json/technique_from_json.py msgid "Centipede Bite" @@ -227539,22 +222992,22 @@ msgstr "Укус многоножки" #: lang/json/technique_from_json.py #, python-format msgid "You palm strike %s with a painful Centipede Bite" -msgstr "Вы наносите %s ладонью болезненный Укус Многоножки" +msgstr "Вы наносите ладонью болезненный Укус Многоножки противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " palm strikes %s with a painful Centipede Bite" -msgstr " наносит %s ладонью болезненный Укус Многоножки" +msgstr " наносит ладонью болезненный Укус Многоножки противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid "You disarm %s with lightning speed" -msgstr "Вы молниеносно разоружаете %s" +msgstr "Вы молниеносно разоружаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " disarms %s with lightning speed" -msgstr " молниеносно разоружает %s" +msgstr " молниеносно разоружает противника (%s)" #: lang/json/technique_from_json.py msgid "Not at technique at all" @@ -227562,7 +223015,7 @@ msgstr "Не техника" #: lang/json/technique_from_json.py src/bonuses.cpp src/martialarts.cpp msgid "Block" -msgstr "блок" +msgstr "Блок" #. ~ Description for Block #: lang/json/technique_from_json.py @@ -227572,16 +223025,16 @@ msgstr "Средний блок" #: lang/json/technique_from_json.py #, python-format msgid "You block %s" -msgstr "Вы блокируете %s" +msgstr "Вы блокируете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " blocks %s" -msgstr " блокирует %s" +msgstr " блокирует противника (%s)" #: lang/json/technique_from_json.py msgid "Parry" -msgstr "парирование" +msgstr "Парирование" #. ~ Description for Parry #: lang/json/technique_from_json.py @@ -227591,16 +223044,16 @@ msgstr "Мощный блок" #: lang/json/technique_from_json.py #, python-format msgid "You parry %s" -msgstr "Вы парируете %s" +msgstr "Вы парируете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " parries %s" -msgstr " парирует %s" +msgstr " парирует противника (%s)" #: lang/json/technique_from_json.py msgid "Shield" -msgstr "защита" +msgstr "Защита" #. ~ Description for Shield #: lang/json/technique_from_json.py @@ -227610,16 +223063,16 @@ msgstr "Очень мощный блок" #: lang/json/technique_from_json.py #, python-format msgid "You shield against %s" -msgstr "Вы защищаетесь от %s" +msgstr "Вы защищаетесь от противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " shields against %s" -msgstr " защищается от %s" +msgstr " защищается от противника (%s)" #: lang/json/technique_from_json.py msgid "disarm" -msgstr "разоружение" +msgstr "Разоружение" #. ~ Description for disarm #. ~ Description for Disarm @@ -227630,16 +223083,16 @@ msgstr "Вырывание оружия из рук противника" #: lang/json/technique_from_json.py #, python-format msgid "You grab %s" -msgstr "Вы хватаете %s" +msgstr "Вы хватаете оружие противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " grabs %s" -msgstr " хватает %s" +msgstr " хватает оружие противника (%s)" #: lang/json/technique_from_json.py msgid "Spinning Strike" -msgstr "вращательная атака" +msgstr "Круговая атака" #. ~ Description for Spinning Strike #: lang/json/technique_from_json.py @@ -227651,16 +223104,16 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "You swing through %s and everyone nearby" -msgstr "Вы бьёте с разворота по %s и всем рядом" +msgstr "Вы бьёте с разворота по противнику (%s) и всем рядом" #: lang/json/technique_from_json.py #, python-format msgid " swings through %s and everyone nearby" -msgstr " бьёт с разворота по %s и всем рядом" +msgstr " бьёт с разворота по противнику (%s) и всем рядом" #: lang/json/technique_from_json.py msgid "Wide Strike" -msgstr "размашистый удар" +msgstr "Размашистый удар" #. ~ Description for Wide Strike #: lang/json/technique_from_json.py @@ -227672,16 +223125,16 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "You swing in a wide arc through %s" -msgstr "Вы широко замахиваетесь и бьёте %s" +msgstr "Вы широко замахиваетесь и бьёте противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " swings in a wide arc through %s" -msgstr " широко замахивается и бьёт %s" +msgstr " широко замахивается и бьёт противника (%s)" #: lang/json/technique_from_json.py msgid "Impaling Strike" -msgstr "прокалывающий удар" +msgstr "Прокалывающий удар" #. ~ Description for Impaling Strike #: lang/json/technique_from_json.py @@ -227693,16 +223146,16 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "You pierce straight through %s" -msgstr "Вы пронзаете %s прямо насквозь" +msgstr "Вы пронзаете противника (%s) насквозь" #: lang/json/technique_from_json.py #, python-format msgid " pierces through %s" -msgstr " пронзает %s насквозь" +msgstr " пронзает противника (%s) насквозь" #: lang/json/technique_from_json.py msgid "Brutal Strike" -msgstr "жестокий удар" +msgstr "Жестокий удар" #. ~ Description for Brutal Strike #: lang/json/technique_from_json.py @@ -227714,16 +223167,16 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "You send %s reeling" -msgstr "Вы заставляете %s болезненно скорчиться" +msgstr "Вы заставляете противника (%s) болезненно скорчиться" #: lang/json/technique_from_json.py #, python-format msgid " sends %s reeling" -msgstr " заставляет %s болезненно скорчиться" +msgstr " заставляет противника (%s) болезненно скорчиться" #: lang/json/technique_from_json.py msgid "Rapid Strike" -msgstr "стремительная атака" +msgstr "Стремительная атака" #. ~ Description for Rapid Strike #: lang/json/technique_from_json.py @@ -227733,16 +223186,16 @@ msgstr "50% ходов, 66% урона" #: lang/json/technique_from_json.py #, python-format msgid "You quickly strike %s" -msgstr "Вы стремительно атакуете %s" +msgstr "Вы стремительно атакуете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " quickly strikes %s" -msgstr " стремительно атакует %s" +msgstr " стремительно атакует противника (%s)" #: lang/json/technique_from_json.py msgid "Vorpal Strike" -msgstr "стрижающий удар" +msgstr "Стрижающий удар" #. ~ Description for Vorpal Strike #: lang/json/technique_from_json.py @@ -227753,7 +223206,9 @@ msgstr "Режущий урон умножается на 99, только пр #, python-format msgid "" "Snicker-snack! You slice through %s like hot knife slices through butter" -msgstr "Чики-чик! Вы разрезаете %s так же легко, как горячий нож режет масло" +msgstr "" +"Чики-чик! Вы разрезаете противника (%s) так же легко, как горячий нож режет " +"масло" #: lang/json/technique_from_json.py #, python-format @@ -227765,7 +223220,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Wrap Attack" -msgstr "окутывающая атака" +msgstr "Окутывающая атака" #. ~ Description for Wrap Attack #: lang/json/technique_from_json.py @@ -227775,16 +223230,16 @@ msgstr "Ошеломление на 2 хода" #: lang/json/technique_from_json.py #, python-format msgid "You wrap up %s" -msgstr "Вы окутываете %s" +msgstr "Вы окутываете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " wraps up %s" -msgstr " окутывает %s" +msgstr " окутывает противника (%s)" #: lang/json/technique_from_json.py msgid "Sweep Attack" -msgstr "сметающая атака" +msgstr "Сметающая атака" #. ~ Description for Sweep Attack #: lang/json/technique_from_json.py @@ -227794,16 +223249,16 @@ msgstr "Сбивание с ног на 2 хода" #: lang/json/technique_from_json.py #, python-format msgid "You sweep %s" -msgstr "Вы сметаете %s" +msgstr "Вы сметаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " sweeps %s" -msgstr " сметает %s" +msgstr " сметает противника (%s)" #: lang/json/technique_from_json.py msgid "Precise Strike" -msgstr "точный удар" +msgstr "Точный удар" #. ~ Description for Precise Strike #: lang/json/technique_from_json.py @@ -227813,50 +223268,50 @@ msgstr "Ошеломление на 2 хода, только при критич #: lang/json/technique_from_json.py #, python-format msgid "You precisely hit %s" -msgstr "Вы наносите точный удар по %s" +msgstr "Вы наносите точный удар по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " precisely hits %s" -msgstr " наносит точный удар по %s" +msgstr " наносит точный удар по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid "You disarm %s using your whip" -msgstr "Вы разоружаете %s с помощью кнута" +msgstr "Вы разоружаете противника (%s) с помощью кнута" #: lang/json/technique_from_json.py #, python-format msgid " disarms %s using their whip" -msgstr " разоружает %s с помощью кнута" +msgstr " разоружает противника (%s) с помощью кнута" #: lang/json/technique_from_json.py msgid "Counterattack" -msgstr "контратака" +msgstr "Контратака" #: lang/json/technique_from_json.py #, python-format msgid "You counter-attack %s" -msgstr "Вы контратакуете %s" +msgstr "Вы контратакуете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " counter-attacks %s" -msgstr " контратакует %s" +msgstr " контратакует противника (%s)" #: lang/json/technique_from_json.py msgid "Feint" -msgstr "обманный выпад" +msgstr "Обманный выпад" #: lang/json/technique_from_json.py #, python-format msgid "You feint at %s." -msgstr "Вы делаете обманное движение от %s." +msgstr "Вы делаете обманное движение к противнику (%s)." #: lang/json/technique_from_json.py #, python-format msgid " feints at %s." -msgstr " делает обманное движение от %s." +msgstr " делает обманное движение к противнику (%s)." #: lang/json/technique_from_json.py src/character.cpp src/monattack.cpp #, c-format, python-format @@ -227871,12 +223326,12 @@ msgstr "%s пытается схватить , но тот разрыв #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" -msgstr "Вы ловко наносите прямой удар %s" +msgstr "Вы ловко наносите прямой удар противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " jabs deftly at %s" -msgstr " ловко наносит прямой удар %s" +msgstr " ловко наносит прямой удар противнику (%s)" #: lang/json/technique_from_json.py msgid "Block Counter Disarm" @@ -227885,12 +223340,12 @@ msgstr "Блок и контрразоружение" #: lang/json/technique_from_json.py #, python-format msgid "You block and smoothly disarm %s" -msgstr "Вы блокируете и плавно разоружаете %s" +msgstr "Вы блокируете и плавно разоружаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " blocks and smoothly disarms %s" -msgstr " блокирует и плавно разоружает %s" +msgstr " блокирует и плавно разоружает противника (%s)" #: lang/json/technique_from_json.py msgid "Block Counter Throw" @@ -227899,12 +223354,12 @@ msgstr "Блок и контрбросок" #: lang/json/technique_from_json.py #, python-format msgid "You block and smoothly throw %s" -msgstr "Вы блокируете и плавно бросаете %s" +msgstr "Вы блокируете и плавно бросаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " blocks and smoothly throws %s" -msgstr " блокирует и плавно бросает%s" +msgstr " блокирует и плавно бросает противника (%s)" #: lang/json/technique_from_json.py msgid "Dodge Counter Throw" @@ -227913,12 +223368,12 @@ msgstr "Уклонение и контрбросок" #: lang/json/technique_from_json.py #, python-format msgid "You dodge and smoothly throw %s" -msgstr "Вы уклоняетесь и плавно бросаете %s" +msgstr "Вы уклоняетесь и плавно бросаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " dodges and smoothly throws %s" -msgstr " уклоняется и плавно бросает%s" +msgstr " уклоняется и плавно бросает противника (%s)" #: lang/json/technique_from_json.py msgid "Dodge Counter Disarm" @@ -227927,12 +223382,12 @@ msgstr "Уклонение и контрразоружение" #: lang/json/technique_from_json.py #, python-format msgid "You dodge and smoothly disarm %s" -msgstr "Вы уклоняетесь и плавно разоружаете %s" +msgstr "Вы уклоняетесь и плавно разоружаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " dodges and smoothly disarms %s" -msgstr " уклоняется и плавно разоружает %s" +msgstr " уклоняется и плавно разоружает противника (%s)" #: lang/json/technique_from_json.py #, python-format @@ -227946,59 +223401,59 @@ msgstr "%s пытается схватить , но тот плавно #: lang/json/technique_from_json.py msgid "Cross" -msgstr "перекрёстный удар" +msgstr "Перекрёстный удар" #: lang/json/technique_from_json.py #, python-format msgid "You throw a heavy cross at %s" -msgstr "Вы наносите перекрёстный удар %s" +msgstr "Вы наносите перекрёстный удар противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " throws a cross at %s" -msgstr " наносит перекрёстный удар %s" +msgstr " наносит перекрёстный удар противнику (%s)" #: lang/json/technique_from_json.py msgid "Cross Counter" -msgstr "перекрёстный контрудар" +msgstr "Перекрёстный контрудар" #: lang/json/technique_from_json.py #, python-format msgid "You cross-counter %s" -msgstr "Вы наносите перекрёстный контрудар по %s" +msgstr "Вы наносите перекрёстный контрудар по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " throws a perfect counter at %s" -msgstr " наносит перекрёстный контрудар по %s" +msgstr " наносит перекрёстный контрудар по противнику (%s)" #: lang/json/technique_from_json.py msgid "Jab" -msgstr "прямой удар" +msgstr "Прямой удар" #: lang/json/technique_from_json.py #, python-format msgid "You quickly jab %s" -msgstr "Вы быстро наносите прямой удар %s" +msgstr "Вы быстро наносите прямой удар противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " quickly jabs at %s" -msgstr " быстро наносит прямой удар %s" +msgstr " быстро наносит прямой удар противнику (%s)" #: lang/json/technique_from_json.py msgid "Uppercut" -msgstr "апперкот" +msgstr "Апперкот" #: lang/json/technique_from_json.py #, python-format msgid "You uppercut %s" -msgstr "Вы наносите апперкот %s" +msgstr "Вы наносите апперкот противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " uppercuts %s" -msgstr " наносит апперкот %s" +msgstr " наносит апперкот противнику (%s)" #: lang/json/technique_from_json.py #, python-format @@ -228017,32 +223472,32 @@ 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 #, python-format msgid "You fake a strike at %s" -msgstr "Вы делаете ложный выпад в сторону %s" +msgstr "Вы делаете ложный выпад в сторону противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " fakes a strike at %s" -msgstr " наносит ложный удар по %s" +msgstr " наносит ложный удар по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid "You knock %s's weapon away" -msgstr "Вы отпинываете оружие %s прочь" +msgstr "Вы отпинываете оружие противника (%s) прочь" #: lang/json/technique_from_json.py #, python-format msgid " knock %s's weapon away" -msgstr " отпинывает оружие %s прочь" +msgstr " отпинывает оружие противника (%s) прочь" #: lang/json/technique_from_json.py msgid "Power Hit" @@ -228055,22 +223510,22 @@ 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 " trip %s" -msgstr " делает подножку %s" +msgstr " делает подножку противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid "You fake a kick at %s" -msgstr "Вы наносите ложный удар по %s" +msgstr "Вы наносите ложный удар по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " fakes a kick at %s" -msgstr " наносит ложный удар по %s" +msgstr " наносит ложный удар по противнику (%s)" #: lang/json/technique_from_json.py msgid "Push Kick" @@ -228079,12 +223534,12 @@ msgstr "Толкающий удар" #: lang/json/technique_from_json.py #, python-format msgid "You push kick %s" -msgstr "Вы наносите толкающий удар ногой по %s" +msgstr "Вы наносите толкающий удар ногой по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " push kicks %s" -msgstr " наносит толкающий удар ногой по %s" +msgstr " наносит толкающий удар ногой по противнику (%s)" #: lang/json/technique_from_json.py msgid "Circle Kick" @@ -228093,12 +223548,12 @@ msgstr "Круговой удар ногой" #: lang/json/technique_from_json.py #, python-format msgid "You circle kick %s" -msgstr "Вы наносите круговой удар ногой по %s" +msgstr "Вы наносите круговой удар ногой по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " circle kicks %s" -msgstr " наносит круговой удар ногой по %s" +msgstr " наносит круговой удар ногой по противнику (%s)" #: lang/json/technique_from_json.py msgid "Sweep Kick" @@ -228107,12 +223562,12 @@ msgstr "Размашистый удар" #: lang/json/technique_from_json.py #, python-format msgid "You sweep kick %s" -msgstr "Вы размашисто бьёте %s" +msgstr "Вы размашисто бьёте противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " sweep kicks %s" -msgstr " размашисто бьёт %s" +msgstr " размашисто бьёт противника (%s)" #: lang/json/technique_from_json.py msgid "Spin Kick" @@ -228121,30 +223576,30 @@ msgstr "Круговой удар" #: lang/json/technique_from_json.py #, python-format msgid "You spin kick %s" -msgstr "Вы наносите круговой удар по %s" +msgstr "Вы наносите круговой удар по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " spin kicks %s" -msgstr " наносит круговой удар по %s" +msgstr " наносит круговой удар по противнику (%s)" #: lang/json/technique_from_json.py msgid "Crane Wing" -msgstr "крыло журавля" +msgstr "Крыло Журавля" #: lang/json/technique_from_json.py #, python-format msgid "You raise your arms intimidatingly at %s." -msgstr "Вы угрожающе поднимаете руки на %s." +msgstr "Вы угрожающе поднимаете руки на противника (%s)." #: lang/json/technique_from_json.py #, python-format msgid " performs the Crane Wing at %s." -msgstr " выполняет «крыло журавля» на %s." +msgstr " выполняет «крыло журавля» на противника (%s)." #: lang/json/technique_from_json.py msgid "Crane Flap" -msgstr "взмах журавля" +msgstr "Взмах Журавля" #: lang/json/technique_from_json.py #, python-format @@ -228158,45 +223613,45 @@ msgstr "%s пытается схватить , но тот высвоб #: lang/json/technique_from_json.py msgid "Crane Strike" -msgstr "атака журавля" +msgstr "Атака Журавля" #: lang/json/technique_from_json.py #, python-format msgid "You hand-peck and swat down %s" -msgstr "Вы хватаете %s и хлопаете оземь" +msgstr "Вы хватаете противника (%s) и хлопаете оземь" #: lang/json/technique_from_json.py #, python-format msgid " hand-pecks and swats down %s" -msgstr " хватает %s и хлопает оземь" +msgstr " хватает противника (%s) и хлопает оземь" #: lang/json/technique_from_json.py msgid "Crane Kick" -msgstr "удар журавля" +msgstr "Пинок Журавля" #: lang/json/technique_from_json.py #, python-format msgid "You leap and kick %s" -msgstr "Вы подпрыгиваете и бьёте %s ногой" +msgstr "Вы подпрыгиваете и бьёте противника (%s) ногой" #: lang/json/technique_from_json.py #, python-format msgid " leaps and kicks %s" -msgstr " подпрыгивает и бьёт %s ногой" +msgstr " подпрыгивает и бьёт противника (%s) ногой" #: lang/json/technique_from_json.py msgid "Dragon Claw" -msgstr "Коготь дракона" +msgstr "Коготь Дракона" #: lang/json/technique_from_json.py #, python-format msgid "You lash out at %s with a Dragon Claw" -msgstr "Вы набрасываетесь на %s Когтем дракона" +msgstr "Вы набрасываетесь на противника (%s) Когтем Дракона" #: lang/json/technique_from_json.py #, python-format msgid " lashes out at %s with a Dragon Claw" -msgstr " набрасывается на %s Когтем дракона" +msgstr " набрасывается на противника (%s) Когтем Дракона" #: lang/json/technique_from_json.py msgid "Dragon Vortex Block" @@ -228205,26 +223660,27 @@ 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 Wing Dodge" -msgstr "Уклонение драконьего крыла" +msgstr "Уклонение Драконьего крыла" #: lang/json/technique_from_json.py #, python-format msgid "You dodge the attack and leave %s off balance" -msgstr "Вы уворачиваетесь от атаки и выводите %s из равновесия" +msgstr "Вы уворачиваетесь от атаки и выводите противника (%s) из равновесия" #: lang/json/technique_from_json.py #, python-format msgid " dodges and leaves %s off balance" -msgstr " уворачивается от атаки и выводит %s из равновесия" +msgstr "" +" уворачивается от атаки и выводит противника (%s) из равновесия" #: lang/json/technique_from_json.py msgid "Dragon Tail" @@ -228233,30 +223689,31 @@ msgstr "Драконий Хвост" #: lang/json/technique_from_json.py #, python-format msgid "You sweep %s with a quick Dragon Tail" -msgstr "Вы размашисто бьёте %s стремительным Хвостом дракона" +msgstr "Вы размашисто бьёте противника (%s) стремительным Хвостом дракона" #: lang/json/technique_from_json.py #, python-format msgid " sweeps %s with a quick Dragon Tail sweep" -msgstr " размашисто бьёт %s стремительным Хвостом дракона" +msgstr "" +" размашисто бьёт противника (%s) стремительным Хвостом дракона" #: lang/json/technique_from_json.py msgid "Dragon Strike" -msgstr "атака дракона" +msgstr "Атака Дракона" #: lang/json/technique_from_json.py #, python-format msgid "You descend upon %s with a powerful Dragon Strike" -msgstr "Вы низвергаетесь на %s мощным Ударом дракона" +msgstr "Вы низвергаетесь на противника (%s) мощным Ударом дракона" #: lang/json/technique_from_json.py #, python-format msgid " descends upon %s with a powerful Dragon Strike" -msgstr " низвергается на %s мощным Ударом дракона" +msgstr " низвергается на противника (%s) мощным Ударом дракона" #: lang/json/technique_from_json.py msgid "Round Strike" -msgstr "круговой удар" +msgstr "Круговой удар" #: lang/json/technique_from_json.py #, python-format @@ -228270,7 +223727,7 @@ msgstr " наносит %s удар по кругу" #: lang/json/technique_from_json.py msgid "Fan Strike" -msgstr "веерный удар" +msgstr "Веерный удар" #: lang/json/technique_from_json.py #, python-format @@ -228284,7 +223741,7 @@ msgstr " наносит %s веерный удар" #: lang/json/technique_from_json.py msgid "Snap Strike" -msgstr "хлёсткий удар" +msgstr "Хлёсткий удар" #: lang/json/technique_from_json.py #, python-format @@ -228298,7 +223755,7 @@ msgstr " наносит %s удар с отскоком" #: lang/json/technique_from_json.py msgid "Combination Strike" -msgstr "комбинация ударов" +msgstr "Комбинация ударов" #: lang/json/technique_from_json.py #, python-format @@ -228312,83 +223769,83 @@ msgstr " наносит %s комбинацию ударов" #: lang/json/technique_from_json.py msgid "Puño Strike" -msgstr "удар пуньо" +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 "Low Strike" -msgstr "низкий удар" +msgstr "Низкий удар" #: lang/json/technique_from_json.py #, python-format msgid "Your weapon becomes a blur as you ground %s" -msgstr "Ваше оружие смазанным пятном врезается в %s" +msgstr "Ваше оружие смазанным пятном врезается в противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid "'s weapon becomes a blur as they ground %s" -msgstr "Оружие смазанным пятном врезается в %s" +msgstr "Оружие смазанным пятном врезается в противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid "You steady your weapon and fake a thrust at %s" -msgstr "Вы уверенно совершаете ложный выпад на %s" +msgstr "Вы уверенно совершаете ложный выпад по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " steadies their weapon and fake a thrust at %s" -msgstr " уверенно совершает ложный выпад на %s" +msgstr " уверенно совершает ложный выпад по противнику (%s)" #: lang/json/technique_from_json.py msgid "Fencing Lunge" -msgstr "фехтовальный выпад" +msgstr "Aехтовальный выпад" #: lang/json/technique_from_json.py #, python-format msgid "You lunge at %s" -msgstr "Вы делаете выпад в сторону %s" +msgstr "Вы делаете выпад в сторону противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " lunges at %s" -msgstr " делает выпад в сторону %s" +msgstr " делает выпад в сторону противника (%s)" #: lang/json/technique_from_json.py msgid "Compound Attack" -msgstr "сложная атака" +msgstr "Сложная атака" #: lang/json/technique_from_json.py #, python-format msgid "Your feint leads to a compound attack against %s" -msgstr "Ваш финт переходит в сложную атаку против %s" +msgstr "Ваш финт переходит в сложную атаку против противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid "'s feint leads to a compound attack against %s" -msgstr "Финт переходит в сложную атаку против %s" +msgstr "Финт переходит в сложную атаку против противника (%s)" #: lang/json/technique_from_json.py msgid "Fencing Riposte" -msgstr "фехтовальный контрудар" +msgstr "Aехтовальный контрудар" #: lang/json/technique_from_json.py #, python-format msgid "You deliver a perfect riposte to %s" -msgstr "Вы наносите прекрасный контрудар по %s" +msgstr "Вы наносите прекрасный контрудар по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " delivers a perfect riposte to %s" -msgstr " наносит прекрасный контрудар по %s" +msgstr " наносит прекрасный контрудар по противнику (%s)" #: lang/json/technique_from_json.py msgid "Displace and Hook" @@ -228397,12 +223854,12 @@ msgstr "Выворот с подсечкой" #: lang/json/technique_from_json.py #, python-format msgid "You parry and hook %s down" -msgstr "Вы парируете удар %s и отвечаете подсечкой" +msgstr "Вы парируете удар противника (%s) и отвечаете подсечкой" #: lang/json/technique_from_json.py #, python-format msgid " parries and hooks %s down" -msgstr " парирует удар %s и отвечает подсечкой" +msgstr " парирует удар противника (%s) и отвечает подсечкой" #: lang/json/technique_from_json.py msgid "High Round Strike" @@ -228411,12 +223868,12 @@ msgstr "Высокий круговой удар" #: lang/json/technique_from_json.py #, python-format msgid "You swing high and strike at %s" -msgstr "Вы широко размахиваетесь и поражаете %s" +msgstr "Вы широко размахиваетесь и поражаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " swings high and strikes %s" -msgstr " широко размахивается и поражает %s" +msgstr " широко размахивается и поражает противника (%s)" #: lang/json/technique_from_json.py msgid "High Round Feint" @@ -228425,12 +223882,12 @@ msgstr "Высокий круговой финт" #: lang/json/technique_from_json.py #, python-format msgid "You fake a high round strike at %s" -msgstr "Вы совершаете ложный круговой удар по %s" +msgstr "Вы совершаете ложный круговой удар по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " feints at %s" -msgstr " делает обманное движение от %s" +msgstr " делает обманное движение от противнику (%s)" #: lang/json/technique_from_json.py #, python-format @@ -228444,45 +223901,48 @@ msgstr "%s пытается схватить , но тот отталк #: lang/json/technique_from_json.py msgid "Hook and Drag" -msgstr "Подсечка и Швырок" +msgstr "Подсечка и рывок" #: lang/json/technique_from_json.py #, python-format msgid "You hook and drag %s down" -msgstr "Вы подсекаете %s и швыряете на землю" +msgstr "Вы подсекаете противника (%s) и швыряете на землю" #: lang/json/technique_from_json.py #, python-format msgid " hooks and drags %s down" -msgstr " подсекает %s и швыряет на землю" +msgstr " подсекает противника (%s) и швыряет на землю" #: lang/json/technique_from_json.py msgid "Colpo di Grazia" -msgstr "Удар Милосердия" +msgstr "Удар милосердия" #: lang/json/technique_from_json.py #, python-format msgid "You swing down hard and execute %s" -msgstr "Вы с усилием замахиваетесь и обрушиваете на %s смертельный удар" +msgstr "" +"Вы с усилием замахиваетесь и обрушиваете на противника (%s) смертельный удар" #: lang/json/technique_from_json.py #, python-format msgid " swings down hard and executes %s" -msgstr " с усилием замахивается и обрушивает на %s смертельный удар" +msgstr "" +" с усилием замахивается и обрушивает на противника (%s) смертельный" +" удар" #: lang/json/technique_from_json.py msgid "Throw" -msgstr "Бросить" +msgstr "Бросок" #: lang/json/technique_from_json.py #, python-format msgid "You throw %s to the ground" -msgstr "Вы бросаете %s наземь" +msgstr "Вы бросаете противника (%s) наземь" #: lang/json/technique_from_json.py #, python-format msgid " throws %s to the ground" -msgstr " бросает %s наземь" +msgstr " бросает противника (%s) наземь" #: lang/json/technique_from_json.py msgid "Disarming Throw" @@ -228491,12 +223951,12 @@ msgstr "Обезоруживающий бросок" #: lang/json/technique_from_json.py #, python-format msgid "You disarm and throw %s" -msgstr "Вы обезоруживаете %s и кидаете его наземь" +msgstr "Вы обезоруживаете противника (%s) и кидаете его наземь" #: lang/json/technique_from_json.py #, python-format msgid " disarms and throws %s" -msgstr " обезоруживает %s и кидает его наземь" +msgstr " обезоруживает противника (%s) и кидает его наземь" #: lang/json/technique_from_json.py msgid "Back Throw" @@ -228505,12 +223965,12 @@ msgstr "Бросок назад" #: lang/json/technique_from_json.py #, python-format msgid "You flip %s head over heels" -msgstr "Вы бросаете %s вверх тормашками" +msgstr "Вы бросаете противника (%s) вверх тормашками" #: lang/json/technique_from_json.py #, python-format msgid " flips %s head over heels" -msgstr " бросает %s вверх тормашками" +msgstr " бросает противника (%s) вверх тормашками" #: lang/json/technique_from_json.py #, python-format @@ -228520,7 +223980,9 @@ msgstr "%s пытается вас схватить, но вы легко раз #: lang/json/technique_from_json.py #, python-format msgid "The %s tries to grab , but they break its feeble grapple!" -msgstr "%s пытается схватить , но тот легко разрывает хилый захват!" +msgstr "" +"%s пытается схватить противника (), но тот легко разрывает хилый " +"захват!" #: lang/json/technique_from_json.py msgid "Counter Throw" @@ -228529,12 +223991,12 @@ msgstr "Контрбросок" #: lang/json/technique_from_json.py #, python-format msgid "You evade and toss %s to the ground" -msgstr "Вы уворачиваетесь от %s и опрокидываете его наземь" +msgstr "Вы уворачиваетесь от противника (%s) и опрокидываете его наземь" #: lang/json/technique_from_json.py #, python-format msgid " evades and tosses %s to the ground" -msgstr " уворачивается от %s и опрокидывает его наземь" +msgstr " уворачивается от противника (%s) и опрокидывает его наземь" #: lang/json/technique_from_json.py msgid "Karate Counter" @@ -228543,12 +224005,12 @@ msgstr "Контрудар карате" #: lang/json/technique_from_json.py #, python-format msgid "You counterattack %s" -msgstr "Вы контратакуете %s" +msgstr "Вы контратакуете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " counterattacks %s" -msgstr " контратакует %s" +msgstr " контратакует противника (%s)" #: lang/json/technique_from_json.py msgid "Knifehand Strike" @@ -228557,12 +224019,12 @@ msgstr "Рука-нож" #: lang/json/technique_from_json.py #, python-format msgid "You hit %s with a knifehand strike" -msgstr "Вы врезаете по %s приёмом «рука-нож»" +msgstr "Вы врезаете по противнику (%s) приёмом «рука-нож»" #: lang/json/technique_from_json.py #, python-format msgid " hits %s with a knifehand strike" -msgstr " врезает по %s приёмом «рука-нож»" +msgstr " врезает по противнику (%s) приёмом «рука-нож»" #: lang/json/technique_from_json.py msgid "Backfist Strike" @@ -228571,22 +224033,22 @@ msgstr "Обратный удар" #: lang/json/technique_from_json.py #, python-format msgid "You quickly strike %s with the back of your fist" -msgstr "Вы шустро бьёте %s обратной стороной кулака" +msgstr "Вы шустро бьёте противника (%s) обратной стороной кулака" #: lang/json/technique_from_json.py #, python-format msgid " quickly strikes %s with the back of their fist" -msgstr " шустро бьёт %s обратной стороной кулака" +msgstr " шустро бьёт противника (%s) обратной стороной кулака" #: lang/json/technique_from_json.py #, python-format msgid "You jab at %s" -msgstr "Вы атакуете %s прямым ударом" +msgstr "Вы атакуете противника (%s) прямым ударом" #: lang/json/technique_from_json.py #, python-format msgid " jabs at %s" -msgstr " атакует %s прямым ударом" +msgstr " атакует противника (%s) прямым ударом" #: lang/json/technique_from_json.py msgid "Cheapshot" @@ -228595,12 +224057,12 @@ msgstr "Подлый приём" #: lang/json/technique_from_json.py #, python-format msgid "You hit %s where it hurts" -msgstr "Вы попадаете %s по чувствительному месту" +msgstr "Вы попадаете противнику (%s) по чувствительному месту" #: lang/json/technique_from_json.py #, python-format msgid " hits %s with a cheapshot" -msgstr " атакует %s подлым приёмом" +msgstr " атакует противника (%s) подлым приёмом" #: lang/json/technique_from_json.py msgid "Takedown" @@ -228609,12 +224071,12 @@ msgstr "Сбивание наземь" #: lang/json/technique_from_json.py #, python-format msgid "You force %s to the ground" -msgstr "Вы с силой сбиваете %s на землю" +msgstr "Вы с силой сбиваете противника (%s) на землю" #: lang/json/technique_from_json.py #, python-format msgid " forces %s to the ground" -msgstr " с силой сбивает %s на землю" +msgstr " с силой сбивает противника (%s) на землю" #: lang/json/technique_from_json.py msgid "Bone Breaker" @@ -228623,12 +224085,12 @@ msgstr "Костолом" #: lang/json/technique_from_json.py #, python-format msgid "*CRACK!* You brutally maim %s's arm" -msgstr "*ХРЯСЬ!* Вы безжалостно ломаете руку %s" +msgstr "*ХРЯСЬ!* Вы безжалостно ломаете руку противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid "*CRACK!* brutally maims %s's arm" -msgstr "*ХРЯСЬ!* безжалостно ломает руку %s" +msgstr "*ХРЯСЬ!* безжалостно ломает руку противника (%s)" #: lang/json/technique_from_json.py #, python-format @@ -228638,7 +224100,8 @@ msgstr "%s пытается вас схватить, но вы боретесь #: lang/json/technique_from_json.py #, python-format msgid "The %s tries to grab , but they wrestle free!" -msgstr "%s пытается схватить , но тот борется и освобождается!" +msgstr "" +"%s пытается схватить противника (), но тот борется и освобождается!" #: lang/json/technique_from_json.py msgid "Counter" @@ -228647,12 +224110,12 @@ msgstr "Контрудар" #: lang/json/technique_from_json.py #, python-format msgid "You block and counter %s" -msgstr "Вы блокируете и контратакуете %s" +msgstr "Вы блокируете и контратакуете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " blocks and counters %s" -msgstr " блокирует и контратакует %s" +msgstr " блокирует и контратакует противника (%s)" #: lang/json/technique_from_json.py msgid "Leopard Paw" @@ -228661,68 +224124,70 @@ msgstr "Лапа Леопарда" #: lang/json/technique_from_json.py #, python-format msgid "You paw aggressively at %s" -msgstr "Вы агрессивно хлещете %s" +msgstr "Вы агрессивно хлещете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " paws aggressively at %s" -msgstr " агрессивно хлещет %s" +msgstr " агрессивно хлещет противника (%s)" #: lang/json/technique_from_json.py msgid "Leopard Fist" -msgstr "кулак леопарда" +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" -msgstr "удар леопарда" +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" -msgstr "Предвидение леопарда" +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 "Pommel Strike" -msgstr "удар рукоятью" +msgstr "Удар рукоятью" #: lang/json/technique_from_json.py #, python-format msgid "You dodge, grab, and pommel strike %s" -msgstr "Вы уворачиваетесь, хватаете %s и бьёте его рукоятью" +msgstr "Вы уворачиваетесь, хватаете противника (%s) и бьёте его рукоятью" #: lang/json/technique_from_json.py #, python-format msgid " dodges, grabs, and pommel strikes %s" -msgstr " уворачивается, хватает %s и бьёт его рукоятью" +msgstr " уворачивается, хватает противника (%s) и бьёт его рукоятью" #: lang/json/technique_from_json.py #, python-format @@ -228732,91 +224197,93 @@ msgstr "%s пытается схватить вас, но вы ускольза #: lang/json/technique_from_json.py #, python-format msgid "The %s tries to grab , but they evade its grab!" -msgstr "%s пытается схватить , но тот ускользает от захвата!" +msgstr "" +"%s пытается схватить противника (), но тот ускользает от захвата!" #: lang/json/technique_from_json.py msgid "Sweeping Strike" -msgstr "сметающий удар" +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" -msgstr "подлый удар" +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 -msgid "Deathblow" -msgstr "смертельный удар" +msgid "Mordhau" +msgstr "Мордхау" #: lang/json/technique_from_json.py #, python-format msgid "You flip your weapon around and deliver a mordhau to %s" -msgstr "Вы перехватываете свое оружие и наносите %s финальный удар" +msgstr "" +"Вы перехватываете свое оружие и наносите противнику (%s) финальный удар" #: lang/json/technique_from_json.py #, python-format msgid " flips their weapon around and smashes down on %s" -msgstr " размахивается оружием и размазывает %s" +msgstr " размахивается оружием и размазывает противника (%s)" #: lang/json/technique_from_json.py msgid "Elbow Strike" -msgstr "удар локтем" +msgstr "Удар локтем" #: lang/json/technique_from_json.py #, python-format msgid "You slam your elbow into %s" -msgstr "Вы вколачиваете свой локоть в %s" +msgstr "Вы вколачиваете свой локоть в противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " slams their elbow into %s" -msgstr " вколачивает свой локоть в %s" +msgstr " вколачивает свой локоть в противника (%s)" #: lang/json/technique_from_json.py msgid "Power Kick" -msgstr "мощный пинок" +msgstr "Мощный пинок" #: lang/json/technique_from_json.py #, python-format msgid "You deal a powerful kick to %s" -msgstr "Вы с силой пинаете %s" +msgstr "Вы с силой пинаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " deals a powerful kick to %s" -msgstr " с силой пинает %s" +msgstr " с силой пинает противника (%s)" #: lang/json/technique_from_json.py msgid "Flying Knee" -msgstr "парящее колено" +msgstr "Парящее колено" #: lang/json/technique_from_json.py #, python-format msgid "You leap and deliver a flying knee to %s" -msgstr "Вы подпрыгиваете и вмазываете %s коленом в полёте" +msgstr "Вы подпрыгиваете и вмазываете противнику (%s) коленом в полёте" #: lang/json/technique_from_json.py #, python-format msgid " leaps and delivers a flying knees to %s" -msgstr "подпрыгивает и вмазывает %s коленом в полёте" +msgstr "подпрыгивает и вмазывает противнику (%s) коленом в полёте" #: lang/json/technique_from_json.py #, python-format @@ -228826,21 +224293,22 @@ msgstr "%s пытается вас схватить, но вы разламыв #: lang/json/technique_from_json.py #, python-format msgid "The %s tries to grab , but they break the clinch!" -msgstr "%s пытается схватить , но тот разламывает хватку!" +msgstr "" +"%s пытается схватить противника (), но тот разламывает хватку!" #: lang/json/technique_from_json.py msgid "Swift Strike" -msgstr "стремительная атака" +msgstr "Стремительная атака" #: lang/json/technique_from_json.py #, python-format msgid "You swiftly strike %s" -msgstr "Вы стремительно атакуете %s" +msgstr "Вы стремительно атакуете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " swiftly strikes %s" -msgstr " стремительно атакует %s" +msgstr " стремительно атакует противника (%s)" #: lang/json/technique_from_json.py msgid "Assassinate" @@ -228849,12 +224317,12 @@ msgstr "Убийство" #: lang/json/technique_from_json.py #, python-format msgid "You attempt to slay %s in a single stroke" -msgstr "Вы пытаетесь прикончить %s одним ударом" +msgstr "Вы пытаетесь прикончить противника (%s) одним ударом" #: lang/json/technique_from_json.py #, python-format msgid " attempts to slay %s in a single stroke" -msgstr " пытается прикончить %s одним ударом" +msgstr " пытается прикончить противника (%s) одним ударом" #: lang/json/technique_from_json.py msgid "Ninjutsu Takedown" @@ -228863,12 +224331,12 @@ msgstr "Бросок Ниндзюцу" #: lang/json/technique_from_json.py #, python-format msgid "You quickly grab and bring %s to the ground" -msgstr "Вы быстро хватаете %s и кидаете на землю" +msgstr "Вы быстро хватаете противника (%s) и кидаете на землю" #: lang/json/technique_from_json.py #, python-format msgid " quickly grabs and brings attacks %s to the ground" -msgstr " быстро хватает %s и кидает на землю" +msgstr " быстро хватает противника (%s) и кидает на землю" #: lang/json/technique_from_json.py msgid "Flowing Water Cut" @@ -228877,12 +224345,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" @@ -228891,7 +224359,7 @@ 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 @@ -228905,12 +224373,12 @@ msgstr "Удар «Огонь и камень»" #: lang/json/technique_from_json.py #, python-format msgid "You stun %s with the force of your cut" -msgstr "Вы оглушаете %s силой своего оружия" +msgstr "Вы оглушаете противника (%s) силой своего удара" #: lang/json/technique_from_json.py #, python-format msgid " stuns %s with the force of their cut" -msgstr " оглушает %s силой своего оружия" +msgstr " оглушает противника (%s) силой своего оружия" #: lang/json/technique_from_json.py msgid "In-One Timing" @@ -228919,17 +224387,17 @@ 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 #, python-format msgid "You feint at %s" -msgstr "Вы делаете обманное движение от %s" +msgstr "Вы делаете обманное движение от противника (%s)" #: lang/json/technique_from_json.py msgid "Kick" @@ -228938,12 +224406,12 @@ msgstr "Пинок" #: lang/json/technique_from_json.py #, python-format msgid "You kick %s hard" -msgstr "Вы от души пинаете %s" +msgstr "Вы от души пинаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " kicks %s hard" -msgstr " от души пинает %s" +msgstr " от души пинает противника (%s)" #: lang/json/technique_from_json.py msgid "Grab and Knee" @@ -228952,40 +224420,40 @@ 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 "Arm Lock" -msgstr "ручной захват" +msgstr "Захват руки" #: lang/json/technique_from_json.py #, python-format msgid "You disarm %s with an arm lock" -msgstr "Вы обезоруживаете %s ручным захватом" +msgstr "Вы обезоруживаете противника (%s) ручным захватом" #: lang/json/technique_from_json.py #, python-format msgid " disarms %s with an arm lock" -msgstr " обезоруживает %s ручным захватом" +msgstr " обезоруживает противника (%s) ручным захватом" #: lang/json/technique_from_json.py msgid "Grab and Throw" -msgstr "захват и бросок" +msgstr "Захват и бросок" #: lang/json/technique_from_json.py #, python-format msgid "You grab and throw %s" -msgstr "Вы хватаете и бросаете %s" +msgstr "Вы хватаете и бросаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " grabs and throws %s" -msgstr " хватает и бросает %s" +msgstr " хватает и бросает противника (%s)" #: lang/json/technique_from_json.py msgid "Hamstring" @@ -228994,12 +224462,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" @@ -229008,12 +224476,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 "Dirty Hit" @@ -229022,12 +224490,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 "Silat Brutality" @@ -229036,40 +224504,40 @@ msgstr "Жестокость силат" #: lang/json/technique_from_json.py #, python-format msgid "You brutally tear into %s" -msgstr "Вы жестоко набрасываетесь на %s" +msgstr "Вы жестоко набрасываетесь на противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " brutally tears into %s" -msgstr " жестоко набрасывается на %s" +msgstr " жестоко набрасывается на противника (%s)" #: lang/json/technique_from_json.py msgid "Snake Snap" -msgstr "змеиный захват" +msgstr "Змеиный захват" #: lang/json/technique_from_json.py #, python-format msgid "You swiftly jab %s" -msgstr "Вы быстро тыкаете %s" +msgstr "Вы быстро тыкаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " swiftly jabs %s" -msgstr " быстро тыкает %s" +msgstr " быстро тыкает противника (%s)" #: lang/json/technique_from_json.py msgid "Snake Slide" -msgstr "змеиное скольжение" +msgstr "Змеиное скольжение" #: lang/json/technique_from_json.py #, python-format msgid "You make serpentine hand motions at %s" -msgstr "Вы водите руками в сторону %s" +msgstr "Вы делаете руками коварные выпады в сторону противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " makes serpentine hand motions at %s" -msgstr " водит руками в сторону %s" +msgstr " делает руками коварные выпады в сторону противника (%s)" #: lang/json/technique_from_json.py msgid "Snake Slither" @@ -229083,7 +224551,7 @@ msgstr "%s пытается вас схватить, но вы выскальз #: lang/json/technique_from_json.py #, python-format msgid "The %s tries to grab , but they slither free!" -msgstr "%s пытается схватить , но тот выскальзывает!" +msgstr "%s пытается схватить противника (), но тот выскальзывает!" #: lang/json/technique_from_json.py msgid "Snake Strike" @@ -229092,12 +224560,12 @@ msgstr "Змеиный удар" #: lang/json/technique_from_json.py #, python-format msgid "You lash out at %s with a vicious Snake Strike" -msgstr "Вы бросаетесь на %s коварным Змеиным ударом" +msgstr "Вы бросаетесь на противника (%s) коварным Змеиным ударом" #: lang/json/technique_from_json.py #, python-format msgid " lashes out at %s with a vicious Snake Strike" -msgstr " бросается на %s коварным Змеиным ударом" +msgstr " бросается на противника (%s) коварным Змеиным ударом" #: lang/json/technique_from_json.py msgid "Push" @@ -229106,50 +224574,50 @@ 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 msgid "Shove" -msgstr "Оттолкнуть" +msgstr "Отталкивание" #: lang/json/technique_from_json.py #, python-format msgid "You shove %s back" -msgstr "Вы толкаете %s назад" +msgstr "Вы толкаете противника (%s) назад" #: lang/json/technique_from_json.py #, python-format msgid " shoves %s back" -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 "Snatch Weapon" -msgstr "Вырвать оружие" +msgstr "Вырывание оружие" #: lang/json/technique_from_json.py #, python-format msgid "You snatch %s's weapon" -msgstr "Вы вырываете у %s оружие" +msgstr "Вы вырываете у противника (%s) оружие" #: lang/json/technique_from_json.py #, python-format msgid " snatches %s's weapon" -msgstr " вырывает у %s оружие" +msgstr " вырывает у противника (%s) оружие" #: lang/json/technique_from_json.py msgid "Spinning Back Kick" @@ -229172,32 +224640,34 @@ msgstr "Боковой удар ногой" #: lang/json/technique_from_json.py #, python-format msgid "You turn slightly and side-kick %s" -msgstr "Вы слегка поворачиваетесь и сбоку бьете ногой по %s" +msgstr "Вы слегка поворачиваетесь и сбоку бьете ногой по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " turns slightly and side-kicks %s" -msgstr " слегка поворачивается и наносит боковой удар ногой по %s" +msgstr "" +" слегка поворачивается и наносит боковой удар ногой по противнику " +"(%s)" #: lang/json/technique_from_json.py #, python-format msgid "You crouch low and sweep-kick %s" -msgstr "Вы присядя подсекаете %s" +msgstr "Вы, присев, подсекаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " crouches low and sweep-kicks %s" -msgstr " вприсядя подсекает %s" +msgstr ", присев, подсекает противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid "You gently disarm %s" -msgstr "Вы осторожно разоружаете %s" +msgstr "Вы осторожно разоружаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " gently disarms %s" -msgstr " осторожно разоружает %s" +msgstr " осторожно разоружает противника (%s)" #: lang/json/technique_from_json.py msgid "Palm Strike" @@ -229206,12 +224676,12 @@ msgstr "Удар ладонью" #: lang/json/technique_from_json.py #, python-format msgid "You palm strike %s" -msgstr "Вы бьёте ладонью по %s" +msgstr "Вы бьёте ладонью по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " palm strikes %s" -msgstr " бьёт ладонью по %s" +msgstr " бьёт ладонью по противнику (%s)" #: lang/json/technique_from_json.py msgid "Grasp the Sparrow's Tail" @@ -229220,12 +224690,12 @@ msgstr "Захват Хвост воробья" #: lang/json/technique_from_json.py #, python-format msgid "You divert %s's attack and lead them to the ground" -msgstr "Вы отклоняете атаку %s и швыряете на землю" +msgstr "Вы отклоняете атаку противника (%s) и швыряете на землю" #: lang/json/technique_from_json.py #, python-format msgid " diverts %s's attack and lead them to the ground" -msgstr " отклоняет атаку %s и швыряет о земь" +msgstr " отклоняет атаку противника (%s) и швыряет оземь" #: lang/json/technique_from_json.py msgid "Double Palm Strike" @@ -229234,12 +224704,12 @@ msgstr "Двойной удар ладонью" #: lang/json/technique_from_json.py #, python-format msgid "You double-handed palm strike %s" -msgstr "Вы бьёте обоими ладонями по %s" +msgstr "Вы бьёте обоими ладонями по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " double-handed palm strikes %s" -msgstr " бьёт обоими ладонями по %s" +msgstr " бьёт обоими ладонями по противнику (%s)" #: lang/json/technique_from_json.py msgid "Tiger Palm" @@ -229248,12 +224718,12 @@ msgstr "Ладонь тигра" #: lang/json/technique_from_json.py #, python-format msgid "You land a heavy tiger palm on %s" -msgstr "Ваша мощная ладонь тигра пригвождает %s" +msgstr "Ваша мощная ладонь тигра пригвождает противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " lands a heavy tiger palm on %s" -msgstr " пригвождает %s мощной ладонью тигра" +msgstr " пригвождает противника (%s) мощной ладонью тигра" #: lang/json/technique_from_json.py msgid "Tiger Takedown" @@ -229262,12 +224732,12 @@ msgstr "Захват тигра" #: lang/json/technique_from_json.py #, python-format msgid "You slam %s to the ground" -msgstr "Вы сбиваете %s на землю" +msgstr "Вы сбиваете противника (%s) на землю" #: lang/json/technique_from_json.py #, python-format msgid " slams %s to the ground" -msgstr " сбивает %s на землю" +msgstr " сбивает противника (%s) на землю" #: lang/json/technique_from_json.py msgid "Straight Punch" @@ -229276,12 +224746,12 @@ msgstr "Апперкот" #: lang/json/technique_from_json.py #, python-format msgid "You deliver a vertical straight punch to %s" -msgstr "Вы ударяете вертикальным прямым ударом %s" +msgstr "Вы ударяете вертикальным прямым ударом противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " delivers a vertical straight punch to %s" -msgstr " вертикально бьёт прямым ударом по %s" +msgstr " вертикально бьёт прямым ударом по противнику (%s)" #: lang/json/technique_from_json.py msgid "Straight Punch (Knockback)" @@ -229290,12 +224760,12 @@ msgstr "Апперкот (отбрасывающий)" #: lang/json/technique_from_json.py #, python-format msgid "You force %s back with a vertical straight punch" -msgstr "Вы отбрасываете %s вертикальным прямым ударом" +msgstr "Вы отбрасываете противника (%s) вертикальным прямым ударом" #: lang/json/technique_from_json.py #, python-format msgid " forces %s back with a vertical straight punch" -msgstr " отбрасывает %s вертикальным прямым ударом" +msgstr " отбрасывает противника (%s) вертикальным прямым ударом" #: lang/json/technique_from_json.py msgid "L-hook" @@ -229304,12 +224774,12 @@ msgstr "Левый хук" #: lang/json/technique_from_json.py #, python-format msgid "You deliver a solid L-hook to %s" -msgstr "Вы прописываете крепкий левый хук %s" +msgstr "Вы прописываете крепкий левый хук противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " delivers a solid L-hook to %s" -msgstr " прописывает крепкий левый хук %s" +msgstr " прописывает крепкий левый хук противнику (%s)" #: lang/json/technique_from_json.py msgid "L-hook (Knockback)" @@ -229318,22 +224788,22 @@ msgstr "Левый хук (отбрасывающий)" #: lang/json/technique_from_json.py #, python-format msgid "You knock %s back with a solid L-hook" -msgstr "Вы отбрасываете %s мощным левым хуком" +msgstr "Вы отбрасываете противника (%s) мощным левым хуком" #: lang/json/technique_from_json.py #, python-format msgid " knocks %s back with a solid L-hook" -msgstr " отбрасывает %s мощным левым хуком" +msgstr " отбрасывает противника (%s) мощным левым хуком" #: lang/json/technique_from_json.py #, python-format msgid "Your attack misses %s but you don't let up" -msgstr "Вы промахнулись по %s, но вы не отступаете" +msgstr "Вы промахнулись по противнику (%s), но вы не отступаете" #: lang/json/technique_from_json.py #, python-format msgid "'s attack misses %s but they don't let up" -msgstr " промазал по %s, но он не отступает" +msgstr " промазал по противнику (%s), но он не отступает" #: lang/json/technique_from_json.py msgid "Receive and Counter" @@ -229342,12 +224812,13 @@ msgstr "Получи и дай сдачи" #: lang/json/technique_from_json.py #, python-format msgid "You receive %s's gift of violence, and return it in kind" -msgstr "Вы получаете дар жестокости от %s, и возвращаете его сполна" +msgstr "" +"Вы получаете дар жестокости от противника (%s), и возвращаете его сполна" #: lang/json/technique_from_json.py #, python-format msgid " receives %s's attack, and counters" -msgstr " атакован %s и наносит ответный удар" +msgstr " атакован противника (%s) и наносит ответный удар" #: lang/json/technique_from_json.py msgid "Drunken Feint" @@ -229356,12 +224827,12 @@ msgstr "Пьяный финт" #: lang/json/technique_from_json.py #, python-format msgid "You stumble and leer at %s" -msgstr "Вы спотыкаетесь и хитро смотрите на %s" +msgstr "Вы спотыкаетесь и хитро смотрите на противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " stumbles and leers at %s" -msgstr " спотыкается и хитро смотрит на %s" +msgstr " спотыкается и хитро смотрит на противника (%s)" #: lang/json/technique_from_json.py msgid "Drunk Counter" @@ -229370,12 +224841,12 @@ msgstr "Пьяный контрудар" #: lang/json/technique_from_json.py #, python-format msgid "You lurch, and your wild swing hits %s" -msgstr "Вы шатаетесь, и ваш неожиданный боковой удар ранит %s" +msgstr "Вы шатаетесь, и ваш неожиданный боковой удар ранит противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " lurches, and hits %s" -msgstr " шатается и неожиданно бьёт %s" +msgstr " шатается и неожиданно бьёт противника (%s)" #: lang/json/technique_from_json.py #, python-format @@ -229389,31 +224860,31 @@ msgstr "%s пытается хватануть, но спотыкае #: lang/json/technique_from_json.py msgid "slow strike" -msgstr "медленный удар" +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" -msgstr "фазовый удар" +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 "Pressure Crunch" @@ -229429,86 +224900,88 @@ msgstr "" #: 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 "Shimmer Flurry" -msgstr "Мерцающий шквал" +msgid "Tipped Intent" +msgstr "Злой умысел" #: lang/json/technique_from_json.py #, python-format -msgid "You release a blindingly fast slash at %s" -msgstr "Вы молниеносно рассекаете %s" +msgid "You quickly jab your weapon at %s" +msgstr "Вы поражаете противника (%s) быстрым выпадом" #: lang/json/technique_from_json.py #, python-format -msgid " slashes at %s" -msgstr " рассекает %s" +msgid " quickly jabs their weapon at %s" +msgstr " поражает противника (%s) быстрым выпадом" #: lang/json/technique_from_json.py -msgid "Tipped Intent" -msgstr "Злой умысел" +msgid "Shimmer Flurry" +msgstr "Мерцающий шквал" #: lang/json/technique_from_json.py #, python-format -msgid "You swiftly jab your weapon at %s" -msgstr "Вы поражаете %s проворным выпадом" +msgid "" +"You release a blindingly fast low slash at %s and topple them off balance" +msgstr "" +"Вы молниеносно рассекаете противника (%s), от чего враг теряет равновесие" #: lang/json/technique_from_json.py #, python-format -msgid " swiftly jabs their weapon at %s" -msgstr " поражает %s проворным выпадом" +msgid " slashes at %s and shoves them down" +msgstr " рассекает воздух, атакуя противника (%s) и отпихивая его" #: lang/json/technique_from_json.py -msgid "Decisive Blow" -msgstr "Решающий удар" +msgid "Mirage Slash" +msgstr "Фантомное рассечение" #: lang/json/technique_from_json.py #, python-format -msgid "You release a debilitating swipe at %s" -msgstr "Вы рассекаете %s мучительным ударом" +msgid "" +"You hold your blade taut, and then launch a piercing slash on %s's top half" +msgstr "" +"Вы крепко хватаете оружие, а затем наносите режущий удар по верхней половине" +" противника (%s)" #: lang/json/technique_from_json.py #, python-format -msgid " releases a debilitating swipe at %s" -msgstr " рассекает %s мучительным ударом" +msgid " lands a piercing blow on %s's face" +msgstr " наносит проникающий удар по морде противника (%s)" #: lang/json/technique_from_json.py -msgid "End Slash" -msgstr "Завершающий разрез" +msgid "The Point" +msgstr "Укол" #: lang/json/technique_from_json.py #, python-format -msgid "" -"You envision the tension of a fully drawn bow and then launch a piercing " -"blow on %s's top half" -msgstr "" -"Вы представляете напряжение полностью натянутого лука и наносите проникающий" -" удар по верхней половине %s" +msgid "You drive your weapon down into %s's vulnerable center mass" +msgstr "Вы вонзаете оружие в уязвимый центр массы врага (%s)" #: lang/json/technique_from_json.py #, python-format -msgid " lands a piercing blow on %s's face" -msgstr " наносит проникающий удар по морде %s" +msgid " lands a deadly blow on %s's unguarded center mass" +msgstr "" +" наносит ужасный удар в незащищенный центр массы противника (%s)" #: lang/json/technique_from_json.py -msgid "Harsh Reprimand" -msgstr "Жёсткое наказание" +msgid "Reprimand" +msgstr "Строгое замечание" #: lang/json/technique_from_json.py #, python-format msgid "You clock %s's in a weak spot to knock em down" -msgstr "Вы целитесь в уязвимое место %s, чтобы вырубить его" +msgstr "Вы целитесь в уязвимое место противника (%s), чтобы вырубить его" #: lang/json/technique_from_json.py #, python-format msgid " smashes in %s's face" -msgstr " бьёт %s по морде" +msgstr " бьёт противника (%s) по морде" #: lang/json/technique_from_json.py msgid "Forced Compliance" @@ -229517,12 +224990,12 @@ msgstr "Силовое убеждение" #: lang/json/technique_from_json.py #, python-format msgid "You swiftly swipe your weapon's tip at %s" -msgstr "Вы стремительно проводите кончиком оружия по %s" +msgstr "Вы стремительно проводите кончиком оружия по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " swiftly jabs their weapon into %s" -msgstr " стремительно вонзает оружие в %s" +msgstr " стремительно вонзает оружие в противника (%s)" #: lang/json/technique_from_json.py msgid "Roomsweeper" @@ -229531,12 +225004,12 @@ msgstr "Расчиститель" #: lang/json/technique_from_json.py #, python-format msgid "You steady your arm and release a crushing blow at %s" -msgstr "Вы складываете руку и наносите %s сокрушительный удар" +msgstr "Вы складываете руку и наносите противнику (%s) сокрушительный удар" #: lang/json/technique_from_json.py #, python-format msgid " releases a crushing blow at %s" -msgstr " наносит %s сокрушительный удар" +msgstr " наносит противника (%s) сокрушительный удар" #: lang/json/technique_from_json.py msgid "Measured Footwork" @@ -229545,12 +225018,12 @@ msgstr "Точный удар ногой" #: lang/json/technique_from_json.py #, python-format msgid "You quickly dig your fingers into %s" -msgstr "Вы быстро продавливаете пальцы в %s" +msgstr "Вы быстро продавливаете пальцы в противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " digs their fingers into %s" -msgstr " продавливает пальцы в %s" +msgstr " продавливает пальцы в противника (%s)" #: lang/json/technique_from_json.py msgid "Rapid Burst" @@ -229559,26 +225032,26 @@ msgstr "Быстрый разрыв" #: lang/json/technique_from_json.py #, python-format msgid "You swiftly impale your fingers into %s joints" -msgstr "Вы быстро вонзаете пальцы в суставы %s" +msgstr "Вы быстро вонзаете пальцы в суставы противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " swiftly impales their fingers into %s" -msgstr " быстро вонзает пальцы в %s" +msgstr " быстро вонзает пальцы в противника (%s)" #: lang/json/technique_from_json.py -msgid "Joint Pain" -msgstr "Суставная боль" +msgid "Shifting Feint" +msgstr "Подвижный финт" #: lang/json/technique_from_json.py #, python-format -msgid "You explosively jab your weapon at %s joints" -msgstr "Резким выпадом вы пронзаете суставы %s" +msgid "You fake a quick strike toward %s" +msgstr "Вы делаете ложный выпад по врагу (%s)" #: lang/json/technique_from_json.py #, python-format -msgid " explosively jabs at %s" -msgstr " резким выпадом пронзает суставы %s" +msgid " fakes a quick strike toward %s" +msgstr " делает ложный выпад по врагу (%s)" #: lang/json/technique_from_json.py msgid "Rapid Jab" @@ -229587,12 +225060,12 @@ msgstr "Резкий укол" #: lang/json/technique_from_json.py #, python-format msgid "You steady your hand and release a piercing jab at %s" -msgstr "Вы складываете руку и наносите %s пронзающий удар" +msgstr "Вы складываете руку и наносите противнику (%s) пронзающий удар" #: lang/json/technique_from_json.py #, python-format msgid " releases a piercing jab at %s" -msgstr " наносит %s пронзающий удар" +msgstr " наносит противнику (%s) пронзающий удар" #: lang/json/technique_from_json.py msgid "Calculated Pierce" @@ -229601,11 +225074,11 @@ msgstr "Рассчитанный укол" #: lang/json/technique_from_json.py #, python-format msgid "" -"You envision a gathering tempest in and then release it's energy on %s's top" -" half" +"You envision a gathering tempest and then release it's energy on %s's top " +"half" msgstr "" "Вы представляете нарастающую бурю в своей ладони и высвобождаете энергию в " -"верхнюю часть %s" +"верхнюю часть противника (%s)" #: lang/json/technique_from_json.py msgid "HOOK" @@ -229628,7 +225101,7 @@ msgstr "%s шатается от удара пистолетным хлысто #: lang/json/technique_from_json.py #, python-format msgid " smacks %s" -msgstr " хлещет %s" +msgstr " хлещет противника (%s)" #: lang/json/technique_from_json.py msgid "Crowd Control" @@ -229646,7 +225119,7 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "Your swing the stock of your weapon at %s" -msgstr "Вы заезжаете прикладом оружия по %s" +msgstr "Вы заезжаете прикладом оружия по противнику (%s)" #: lang/json/technique_from_json.py #, python-format @@ -229660,11 +225133,11 @@ msgstr "БЕРСЕРК" #. ~ Description for BERSERK #: lang/json/technique_from_json.py msgid "" -"50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " -"reduces action cost and adds overall damage (S)" +"50% AP cost, 77% DMG, Down (2), STR (SS) greatly reduces AP cost and adds " +"(S) DMG" msgstr "" -"50% движения, 77% дробящий, 77% режущий, 77% колющий, Сбить с ног на два " -"хода, СИЛ значительно уменьшает стоимость движения и увеличивает общий урон" +"50% движения, 77% урона, Сбить с ног на два хода, СИЛ значительно уменьшает " +"стоимость движения и увеличивает общий урон" #: lang/json/technique_from_json.py #, python-format @@ -229674,7 +225147,7 @@ msgstr "От вашего замаха %s шатается и падает" #: lang/json/technique_from_json.py #, python-format msgid " hooks %s" -msgstr " даёт подножку %s" +msgstr " делает подножку противнику (%s)" #: lang/json/technique_from_json.py msgid "SWEEPER" @@ -229683,8 +225156,8 @@ msgstr "СМЕТАНИЕ" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py msgid "" -"15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," -" and adds a (A) damage bonus, min 4 melee" +"15% AP cost, 35% DMG, wide arc, STR (SS) reduces AP cost, and adds (A) DMG, " +"melee (4)" msgstr "" "15% движения, 35% урона, широкая дуга, СИЛ значительно уменьшает стоимость " "движения и добавляет урон, мин 4 рукопашный бой" @@ -229692,12 +225165,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "Your momentum causes your weapon to strike %s" -msgstr "Вашим замахом вы попадаете по %s" +msgstr "Вашим замахом вы попадаете по противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " inertially strikes %s" -msgstr " по инерции попадает по %s" +msgstr " по инерции попадает по противнику (%s)" #: lang/json/technique_from_json.py msgid "BISECTION" @@ -229706,12 +225179,11 @@ msgstr "РАССЕЧЕНИЕ" #. ~ Description for BISECTION #: lang/json/technique_from_json.py msgid "" -"Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " -"reduces action cost and increases overall (B) damage, min 2 melee" +"Crit!, 35% AP cost, 115% DMG, STR (SS) and DEX (SS) reduces AP cost and PER " +"(B) adds DMG, melee (2)" msgstr "" -"Только крит, 35% стоимости движения, 105% дробящий и колющий, 125% режущий, " -"ЛОВ и ВОС уменьшают стоимость движения и увеличивают общий урон, мин 2 " -"рукопашный бой" +"Критическое попадание! 35% движения, 115% урона, СИЛ и ЛОВ уменьшают " +"стоимость движения, ВОС увеличивает общий урон, мин 2 рукопашный бой" #: lang/json/technique_from_json.py #, python-format @@ -229721,16 +225193,14 @@ msgstr "Вы вздымаете меч и наносите по %s хорошо #: lang/json/technique_from_json.py src/melee.cpp #, c-format, python-format msgid " chops %s" -msgstr " раскалывает %s" +msgstr " раскалывает противника (%s)" #. ~ Description for HOOK #: lang/json/technique_from_json.py -msgid "" -"85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " -"reduces action cost" +msgid "85% AP, 88% DMG, Down (2), STR (C) reduces AP cost" msgstr "" -"85% движения, 66% ударный, 76% режущий, 86% колющий, Сбить с ног на два " -"хода, СИЛ значительно уменьшает стоимость движения" +"85% движения, 88% урона, Сбить с ног на два хода, СИЛ уменьшает стоимость " +"движения" #: lang/json/technique_from_json.py #, python-format @@ -229744,16 +225214,16 @@ msgstr "РАЗМАХ ПО ИНЕРЦИИ" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py msgid "" -"75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " -"and adds a (C) damage bonus, min 4 melee" +"75% AP, 60% DMG, WIDE AOE, STR (S) reduces AP cost, and adds a (C) DMG, " +"melee (4)" msgstr "" -"75% движения, 60% урона, широкая дуга, СИЛ значительно уменьшает стоимость " -"движения и добавляет урон, мин 4 рукопашный бой" +"75% движения, 60% урона, широкая дуга, СИЛ уменьшает стоимость движения и " +"добавляет урон (реж.), мин 4 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "Your momentum causes your weapon to glance off of %s" -msgstr "Из-за вашего замаха оружие отскакивает от %s" +msgstr "Из-за вашего замаха оружие отскакивает от противника (%s)" #: lang/json/technique_from_json.py msgid "CHOP" @@ -229762,17 +225232,17 @@ msgstr "РАЗРУБАНИЕ" #. ~ Description for CHOP #: lang/json/technique_from_json.py msgid "" -"Crit only, 118% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E)" -" reduces action cost and increases overall (B) damage, min 2 melee" +"CRIT!, 118% AP, 125% Cut/Stab, DEX (D) and PER (E) reduces AP cost and adds " +"(B) DMG, melee (2)" msgstr "" -"Только крит, 118% стоимости движения, 105% дробящий и колющий, 125% режущий," -" ЛОВ и ВОС уменьшают стоимость движения и увеличивают общий урон, мин 2 " -"рукопашный бой" +"Критическое попадание! 118% движения, 125% урона (реж./кол.), СИЛ уменьшает " +"стоимость движения и добавляет урон (дроб.), мин 2 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You draw back your arm and release a well placed chop %s" -msgstr "Вы заносите руку и наносите по %s хорошо рассчитанный удар" +msgstr "" +"Вы заносите руку и наносите по противнику (%s) хорошо рассчитанный удар" #: lang/json/technique_from_json.py msgid "SMASH" @@ -229781,22 +225251,22 @@ msgstr "РАЗБИВАНИЕ" #. ~ Description for SMASH #: lang/json/technique_from_json.py msgid "" -"Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " -"(D) reduces action cost and increases overall (C) damage, min 2 melee" +"CRIT!, 110% AP, 120% Bash, DEX (C) and STR (D) reduces AP cost and adds (C) " +"Arpen, melee (2)" msgstr "" -"Только крит, 110% стоимости движения, 120% дробящий, 105% колющий, 110% " -"режущий, ЛОВ и СИЛ уменьшают стоимость движения и увеличивают общий урон, " -"мин 2 рукопашный бой" +"Критическое попадание! 110% движения, 120% урона (дроб.), СИЛ и ЛОВ " +"уменьшают стоимость движения и добавляют пробивание брони, мин 2 рукопашный " +"бой" #: lang/json/technique_from_json.py #, python-format msgid "You grip your weapon with two hands and slam it into %s" -msgstr "Вы хватаете оружие двумя руками и вбиваете в %s" +msgstr "Вы хватаете оружие двумя руками и вбиваете в противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " smashes their weapon onto %s" -msgstr " вбивает оружие в %s" +msgstr " вбивает оружие в противника (%s)" #: lang/json/technique_from_json.py msgid "UNDERHAND" @@ -229805,21 +225275,22 @@ msgstr "КОВАРСТВО" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py msgid "" -"Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" -" reduces action cost, min melee 1" +"Crit!, 120% AP, 125% damage, Stun (1), STR (A) reduces AP cost, melee (1)" msgstr "" -"Только крит, 120% движения, 125% урона, оглушение на 1.5 хода, СИЛ " -"значительно уменьшает стоимость движения, мин 1 рукопашный бой" +"Крит! 120% движения, 125% урона, оглушение на 1 ход, СИЛ уменьшает стоимость" +" движения, мин 1 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You lunge forward with all your weight and swing upwards at %s" -msgstr "Вы совершаете выпад всем своим весом и взмахиваете вверх в сторону %s" +msgstr "" +"Вы совершаете выпад всем своим весом и взмахиваете вверх в сторону " +"противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " swings upwards with all their weight at %s" -msgstr " всем своим весом взмахивает на %s" +msgstr " всем своим весом взмахивает по противнику (%s)" #: lang/json/technique_from_json.py msgid "SHOVE" @@ -229828,21 +225299,21 @@ msgstr "ОТБРАСЫВАНИЕ" #. ~ Description for SHOVE #: lang/json/technique_from_json.py msgid "" -"65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " -"(D) and DEX (E) reduce action cost" +"65% AP, REDUCED DMG, knockback (2), stun (1), STR (D) and DEX (E) reduce AP " +"cost" msgstr "" -"65% движения, значительно сниженный урон, отбрасывание на 2 тайла, оглушение" -" на 1 ход, СИЛ и ЛОВ уменьшают стоимость движения" +"65% движения, сниженный урон, отбрасывание на 2 тайла, оглушение на 1 ход, " +"СИЛ и ЛОВ уменьшают стоимость движения" #: lang/json/technique_from_json.py #, python-format msgid "You quickly shove %s out of the way" -msgstr "Вы быстро отбрасываете %s прочь" +msgstr "Вы быстро отбрасываете противника (%s) прочь" #: lang/json/technique_from_json.py #, python-format msgid " quickly shoves %s" -msgstr " быстро отбрасывает %s" +msgstr " быстро отбрасывает противника (%s)" #: lang/json/technique_from_json.py msgid "SHIELDED SHOVE" @@ -229851,17 +225322,16 @@ msgstr "ПРИКРЫТОЕ ОТБРАСЫВАНИЕ" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py msgid "" -"75% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " -"(B) and DEX (C) reduce action cost, min melee 1" +"75% AP, 110% DMG, knockback (3), STR (B) and DEX (C) reduce AP cost, melee " +"(1)" msgstr "" -"75% движения, без режущего урона, 110% дробящего и режущего урона, " -"отбрасывание на 2 тайла, СИЛ и ЛОВ уменьшают стоимость движения, мин " -"рукопашный бой 1" +"75% движения, 110% урона, отбрасывание на 3 тайла, СИЛ и ЛОВ уменьшают " +"стоимость движения, мин рукопашный бой 1" #: lang/json/technique_from_json.py #, python-format msgid "You quickly shove %s out of the way with your weapon" -msgstr "Вы быстро отбрасываете %s прочь своим оружием" +msgstr "Вы быстро отбрасываете противника (%s) прочь своим оружием" #: lang/json/technique_from_json.py msgid "TEAR" @@ -229869,18 +225339,18 @@ msgstr "РАЗРЫВ" #. ~ Description for TEAR #: lang/json/technique_from_json.py -msgid "Crit only, 110% Cut, 115% Stab, min melee 2" -msgstr "Только крит, 110% режущего, 115% колющего, мин 2 рукопашный бой" +msgid "CRIT!, 115% Cut/Stab, melee (2)" +msgstr "КРИТ! 115% режущего и колющего урона, мин 2 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You stab into %s and rake your blade out" -msgstr "Вы пронзаете %s и вырываете клинок наружу" +msgstr "Вы пронзаете противника (%s) и вырываете клинок наружу" #: lang/json/technique_from_json.py #, python-format msgid " tears into %s flesh" -msgstr " врывается в плоть %s" +msgstr " разрывает плоть противника (%s)" #: lang/json/technique_from_json.py msgid "THRUST" @@ -229888,89 +225358,194 @@ msgstr "ТОЛЧОК" #. ~ Description for THRUST #: lang/json/technique_from_json.py -msgid "" -"110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" +msgid "110% Stab DMG, STR (E) and PER (D) adds DMG, melee (1)" msgstr "110% колющего урона, СИЛ и ВОС добавляют урон, мин 1 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You step forward and stab at %s" -msgstr "Вы делаете шаг вперёд и наносите %s проникающий удар" +msgstr "Вы делаете шаг вперёд и наносите противнику (%s) проникающий удар" #: lang/json/technique_from_json.py #, python-format msgid " stabs into %s flesh" -msgstr " пронзает плоть %s" +msgstr " пронзает плоть противника (%s)" #: lang/json/technique_from_json.py msgid "LUNGE" -msgstr "LUNGE" +msgstr "РЫВОК" #. ~ Description for LUNGE #: lang/json/technique_from_json.py msgid "" -"Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " -"provides bonus damage, min 2 melee" +"CRIT!, 115% Stab DMG, Strength (D) and Perception (D) adds DMG, melee (2)" msgstr "" -"Только Крит, 115% урона от удара, Сила (D) и Восприятие (D) дают бонус к " -"урону, минимум 2 к рукопашному бою" +"КРИТ! 110% колющего урона, СИЛ и ВОС добавляют урон, мин 2 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You explosively jab at %s" -msgstr "Вы наносите взрывной удар %s" +msgstr "Вы наносите взрывной удар противнику (%s)" #: lang/json/technique_from_json.py #, python-format msgid " violently jabs at %s" -msgstr " яростно тычет в %s" +msgstr " яростно тычет в противника (%s)" #: lang/json/technique_from_json.py msgid "PROD" -msgstr "PROD" +msgstr "ТЫЧОК" #. ~ Description for PROD #: lang/json/technique_from_json.py msgid "" -"66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " -"DEX (C) reduces action cost, min 3 melee" +"66% AP, 70% Stab DMG, PER (C) adds Arpen, DEX (B) reduces AP cost, melee (3)" msgstr "" -"66% стоимость движения, 70% урона от удара, СИЛ (E) и ВОС (C) дают бонусный " -"урон, ЛОВ (C) снижает стоимость действия, минимум 3 к рукопашному бою." +"66% стоимость движения, 70% колющего урона, ВОС дает пробивание брони, ЛОВ " +"снижает стоимость действия, мин 3 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You prod at %s defensively" -msgstr "Вы подталкиваете %s" +msgstr "Вы подталкиваете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " prods at %s " -msgstr " толкает %s " +msgstr " толкает противника (%s)" #: lang/json/technique_from_json.py msgid "PROBE" -msgstr "PROBE" +msgstr "ПРОБА" #. ~ Description for PROBE #: lang/json/technique_from_json.py +msgid "80% AP, PER (C) adds DMG and Arpen (E), melee (3)" +msgstr "" +"80% движения, ВОС добавляет урон и пробивание брони, мин 3 рукопашный бой" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You probe at %s's openings with your weapon" +msgstr "Вы прощупываете уязвимые места врага (%s) своим оружием" + +#: lang/json/technique_from_json.py +#, python-format +msgid " probes their weapon at %s " +msgstr " прощупывает оружием оборону врага (%s)" + +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "Горящее лезвие" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "Вы проводите пламенную атаку по противнику (%s)." + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr " проводит пламенную атаку по противнику (%s)" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "Клинок Инферно" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "Вы бьёте противника (%s) с мощью Инферно." + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr " бьёт противника (%s) с мощью Инферно." + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "Огненный змей" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" +"Вы обходите оборону противника (%s) с помощью извивающейся струи пламени" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" +" обходит оборону противника (%s) с помощью извивающейся струи " +"пламени" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "Кольцо пламени" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" +"Вы сливаетесь в узор расплывчатого пламени, нанося урон противнику (%s) и " +"всем, стоящим рядом" + +#: lang/json/technique_from_json.py +#, python-format msgid "" -"80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" -" also provides armor pierce (E), min 3 melee" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" +" сливается в узор расплывчатого пламени, нанося урон противнику " +"(%s) и всем, стоящим рядом" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" +msgstr "Солнечная вспышка" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You carve an arc through %s and those nearby" msgstr "" -"80% стоимость движения, 75% урона от удара, СИЛ (C) и ВОС (C) наносят " -"дополнительный урон, а также пробивают броню (E), минимум 3 к рукопашному " -"бою" +"Вы прорезаете пространство по дуге, атакуя противника (%s) и стоящих рядом" #: lang/json/technique_from_json.py #, python-format -msgid "You probe %s's openings" -msgstr "Вы прощупываете уязвимые места %s" +msgid " carve an arc through %s and those nearby" +msgstr "" +" прорезает пространство по дуге, атакуя противника (%s) и стоящих " +"рядом" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" +msgstr "Проницательный удар" #: lang/json/technique_from_json.py #, python-format -msgid " probe %s " -msgstr "прощупывает уязвимые места %s" +msgid "You spot %s's weakpoint and strike" +msgstr "Вы замечаете слабое место противника (%s) и наносите удар" + +#: lang/json/technique_from_json.py +#, python-format +msgid " spot %s's weakpoint and strike" +msgstr " замечает слабое место противника (%s) и наносит удар" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "Очень проницательный удар" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" +msgstr "Атака вращением" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a spin attack against %s and those nearby" +msgstr "Вы проводите атаку вращением по противнику (%s) и стоящим рядом" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleashes a spin attack against %s and those nearby" +msgstr " проводит атаку вращением по противнику (%s) и стоящим рядом" #: lang/json/technique_from_json.py msgid "Ausstoß" @@ -229979,12 +225554,12 @@ msgstr "Ausstoß" #: lang/json/technique_from_json.py #, python-format msgid "You redirect %s's attack against them" -msgstr "Вы перенаправляете атаку %s против его самого" +msgstr "Вы перенаправляете атаку противника (%s) против его самого" #: lang/json/technique_from_json.py #, python-format msgid " redirects %s's attack against them" -msgstr " перенаправляет атаку %s обратно" +msgstr " перенаправляет атаку противника (%s) обратно" #: lang/json/technique_from_json.py msgid "Kumai Sharinraku" @@ -229993,12 +225568,12 @@ msgstr "Kumai Sharinraku" #: lang/json/technique_from_json.py #, python-format msgid "You jump and somersault kick %s" -msgstr "Вы прыгаете сальто и лягаете %s" +msgstr "Вы делаете сальто и лягаете противника (%s)" #: lang/json/technique_from_json.py #, python-format msgid " jump and somersault kick %s" -msgstr " прыгает сальто и лягает %s" +msgstr " делает сальто и лягает противника (%s)" #: lang/json/technique_from_json.py msgid "Herzschlag" @@ -230007,12 +225582,12 @@ msgstr "Herzschlag" #: lang/json/technique_from_json.py #, python-format msgid "You hit %s with a powerful vibro-punch" -msgstr "Вы бьёте %s мощным виброударом" +msgstr "Вы бьёте противника (%s) мощным виброударом" #: lang/json/technique_from_json.py #, python-format msgid " hits %s with a powerful vibro-punch" -msgstr " бьёт %s мощным виброударом" +msgstr " бьёт противника (%s) мощным виброударом" #: lang/json/technique_from_json.py msgid "Geschoss Schlag" @@ -230021,12 +225596,12 @@ msgstr "Geschoss Schlag" #: lang/json/technique_from_json.py #, python-format msgid "You launch a supersonic punch at %s" -msgstr "Вы бьёте %s сверхзвуковым ударом" +msgstr "Вы бьёте противника (%s) сверхзвуковым ударом" #: lang/json/technique_from_json.py #, python-format msgid " launches a supersonic punch at %s" -msgstr " бьёт %s сверхзвуковым ударом" +msgstr " бьёт противника (%s) сверхзвуковым ударом" #: lang/json/ter_furn_transform_messages_from_json.py msgid "The earth here does not listen to your command to move." @@ -230158,7 +225733,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "river bridge" -msgstr "речной мост" +msgstr "мост через реку" #: lang/json/terrain_from_json.py msgid "bridge pavement" @@ -230275,7 +225850,7 @@ msgid "" "A standard wooden door that doesn't look very resilient. It'd probably burn" " easily, too." msgstr "" -"Стандартная деревянная дверь, не выглядит довольно прочной. Выглядит " +"Стандартная деревянная дверь, не кажется особо прочной. Выглядит " "легковоспламеняющейся." #: lang/json/terrain_from_json.py @@ -230288,7 +225863,7 @@ msgid "" "A standard wooden door that doesn't look very resilient. It'd probably burn" " easily, too. This one is wide open." msgstr "" -"Стандартная деревянная дверь, не выглядит довольно прочной. Выглядит " +"Стандартная деревянная дверь, не кажется особо прочной. Выглядит " "легковоспламеняющейся. Дверь широко открыта." #: lang/json/terrain_from_json.py @@ -230301,9 +225876,8 @@ msgid "" "A trashed wooden door, that is more of an obstacle than a door. Also, you " "can see right through it. It could be boarded up with a few two by fours." msgstr "" -"Поломанная деревянная дверь, которая является больше препятствием, чем " -"дверью. Вы можете видеть прямо через неё. Может быть укреплена несколькими " -"досками." +"Поломанная деревянная дверь, которая стала больше препятствием, чем дверью. " +"Вы можете видеть прямо через неё. Может быть укреплена несколькими досками." #: lang/json/terrain_from_json.py msgid "empty door frame" @@ -230370,9 +225944,8 @@ msgid "" "damage." msgstr "" "Плохие новости, глазок сломан и вы не можете посмотреть наружу. Хорошие " -"новости, дверь ещё не сломана, так что ничего не загораживает путь. " -"Несколько досок, гвоздей и правильные инструменты помогут исправить весь " -"ущерб." +"новости, дверь почти разломана, так что ничего не мешает взгляду. Несколько " +"досок, гвоздей и подходящие инструменты помогут исправить весь ущерб." #: lang/json/terrain_from_json.py msgid "open wood door with peephole" @@ -230386,8 +225959,8 @@ msgid "" "Although, you don't need to peek through it since the door is open anyway." msgstr "" "Обычная дверь, сделанная из обычной древесины, но кроме этого имеет глазок. " -"При близком осмотре, вы можете посмотреть через глазок. И тем не менее, вам " -"нет нужды смотреть через него, так как дверь всё равно открыта." +"Изучив ее, вы можете посмотреть через глазок. И тем не менее, вам нет нужды " +"смотреть через него, так как дверь всё равно открыта." #: lang/json/terrain_from_json.py msgid "closed reinforced wood door" @@ -230428,8 +226001,8 @@ msgid "" "fire. It's open so it's not stopping anything right now." msgstr "" "Обычная деревянная дверь, если не считать укрепления слоем прибитых досок. " -"Её можно усилить, но она всё еще пожароопасна. Дверь открыта и никого не " -"остановит прямо сейчас." +"Её можно усилить, но она всё еще пожароопасна. Дверь открыта и никого прямо " +"сейчас не остановит." #. ~ Description for closed wood door #: lang/json/terrain_from_json.py @@ -230543,8 +226116,8 @@ msgid "" "An empty door frame made of steel and assorted metal. A variety of doors " "could be constructed here." msgstr "" -"Пустой дверной проём, сделанный из профилированного металла и сортовового " -"проката. В этом проёме можно установить различные двери." +"Пустой дверной проём, сделанный из кусков стали и обрезков металла. В этом " +"проёме можно установить различные двери." #: lang/json/terrain_from_json.py msgid "empty metal window frame" @@ -230556,8 +226129,8 @@ msgid "" "An empty window frame constructed from assembled metal and carefully braced " "with various hardware." msgstr "" -"Пустой оконный проём, сделанный из комбинированного профилированного металла" -" с дополнительными металлическими креплениями." +"Пустой оконный проём, сделанный из попавшего под руку лома, кропотливо " +"скрепленного всеми возможными креплениями." #: lang/json/terrain_from_json.py msgid "boarded up door" @@ -230641,8 +226214,8 @@ msgid "" "be used to see through." msgstr "" "Поломанная деревянная дверь, сделанная из обычной древесины, но кроме этого " -"имеет глазок. Несмотря на укрепление досками, глазок был повреждён, вы не " -"можете смотреть через него." +"в ней есть глазок. Несмотря на укрепление досками, глазок был повреждён, вы " +"не можете смотреть через него." #: lang/json/terrain_from_json.py msgid "closed metal door" @@ -230654,8 +226227,8 @@ msgid "" "An extremely resilient door made of assorted steel, carved and pounded into " "shape." msgstr "" -"Чрезвычайно прочная дверь из профилированного сортового металла, " -"разрезанного и установленного в нужной форме. Дверь закрыта." +"Чрезвычайно прочная дверь из кусков металла, разрезанных и подогнанных в " +"нужную форму. Дверь закрыта." #: lang/json/terrain_from_json.py msgid "metal wall" @@ -230671,9 +226244,9 @@ msgid "" msgstr "" "Толстый металлический лист, изготовленный промышленным способом, аккуратно " "размещённый и соединённый бесшовным методом по периметру герметизирующим " -"материалом, эта стена способна противостоять экстремальной погоде и " +"материалом. Эта стена способна противостоять экстремальной погоде и " "враждебным силам. Устойчивая к взрыву и чрезвычайно огнестойкая. Пробитие " -"такой стены потребует особых инструментов или промышленной техники." +"такой стены потребует подходящих инструментов или промышленной техники." #: lang/json/terrain_from_json.py msgid "open secret door" @@ -230698,9 +226271,8 @@ msgid "" "An extremely resilient door made of assorted steel, carved and pounded into " "shape. It's open, so no tools are needed to break in." msgstr "" -"Чрезвычайно прочная дверь из профилированного сортового металла, " -"разрезанного и установленного в нужной форме. Дверь открыта, так что взлом " -"не требуется." +"Чрезвычайно прочная дверь из кусков металла, разрезанных и подогнанных в " +"нужную форму. Дверь открыта, так что взлом не требуется." #: lang/json/terrain_from_json.py msgid "closed metal door with peephole" @@ -230713,9 +226285,9 @@ msgid "" "shape. If you examined it more closely, you'd be able to peek through the " "hole." msgstr "" -"Чрезвычайно прочная дверь из профилированного сортового металла, " -"разрезанного и установленного в нужной форме. При близком осмотре вы можете" -" посмотреть через глазок. Дверь закрыта." +"Чрезвычайно прочная дверь из кусков металла, разрезанных и подогнанных в " +"нужную форму. При близком осмотре вы можете посмотреть через глазок. Дверь " +"закрыта." #: lang/json/terrain_from_json.py msgid "open metal door with peephole" @@ -230729,10 +226301,9 @@ msgid "" "hole. Although, you don't need to peek through it since the door is open " "anyway." msgstr "" -"Чрезвычайно прочная дверь из профилированного сортового металла, " -"разрезанного и установленного в нужной форме. При близком осмотре вы можете " -"посмотреть через глазок. Хотя и смотреть через него нет смысла, так как " -"дверь открыта всё равно." +"Чрезвычайно прочная дверь из кусков металла, разрезанных и подогнанных в " +"нужную форму. При близком осмотре вы можете посмотреть через глазок, хотя " +"сейчас смотреть через него нет смысла, так как дверь открыта всё равно." #. ~ Description for closed metal door #: lang/json/terrain_from_json.py @@ -230753,10 +226324,9 @@ msgid "" "shape. This one has an extra keyhole, so it's likely locked. You could " "probably pick the lock." msgstr "" -"Чрезвычайно прочная дверь из профилированного сортового металла, " -"разрезанного и установленного в нужной форме. Дверь оснащена дополнительной " -"замочной скважиной и, вероятно, закрыта. Вы можете попробовать открыть её " -"отмычкой." +"Чрезвычайно прочная дверь из кусков металла, разрезанных и подогнанных в " +"нужную форму. Дверь оснащена дополнительной замочной скважиной и, вероятно, " +"закрыта. Вы можете попробовать открыть её отмычкой." #: lang/json/terrain_from_json.py msgid "closed bar door" @@ -230818,9 +226388,9 @@ msgid "" "expanded upon. Can act as a door if some type of pulley system were rigged " "on an adjacent palisade wall." msgstr "" -"Большой дверной проём, состоящий из длинных брёвен, соединённых вместе, " -"можно расширить. Может действовать как дверь, если на соседнем участке " -"частокола есть система шкивов." +"Большой дверной проём, состоящий из связанных вместе длинных брёвен, которые" +" можно раздвинуть. Может действовать как дверь, если около соседнего участка" +" частокола есть система шкивов." #: lang/json/terrain_from_json.py msgid "open palisade gate" @@ -230882,7 +226452,7 @@ msgid "" "A gate for a chain link fence with a latch system to stay closed. The latch" " is undone, so the gate has swung open." msgstr "" -"Ворота для ограды из сетки рабица с замком. Замок не заперт, ворота свободно" +"Ворота для ограды из сетки-рабицы с замком. Замок не заперт, ворота свободно" " поворачиваются." #: lang/json/terrain_from_json.py @@ -230893,9 +226463,7 @@ msgstr "закрытые деревянные ворота" #. ~ Description for closed wooden split rail gate #: lang/json/terrain_from_json.py msgid "A commercial quality gate made of wood with a latch system." -msgstr "" -"Ворота массового производства, сделанные из различных пиломатериалов с " -"замком для ворот." +msgstr "Деревянные ворота фабричного производства с запором." #: lang/json/terrain_from_json.py msgid "open wooden gate" @@ -230908,8 +226476,8 @@ msgid "" "A commercial quality gate made of wood with a latch system. The gate is " "wide open, allowing anything to travel through." msgstr "" -"Ворота массового производства, сделанные из различных пиломатериалов с " -"замком для ворот. Ворота широко открыты, позволяя свободное перемещение." +"Деревянные ворота фабричного производства с замком. Ворота широко открыты, " +"позволяя свободно перемещаться." #: lang/json/terrain_from_json.py msgid "closed screen door" @@ -231186,8 +226754,8 @@ msgid "" "A section of metal railing, put in place to prevent people from falling or " "taking the easy way out." msgstr "" -"Секция металлических перил, установленная, чтоб людям было сложно упасть или" -" побыстрее выйти наружу." +"Секция металлических перил, установленная, чтобы людям было сложно упасть " +"или найти быстрый выход из Катаклизма." #: lang/json/terrain_from_json.py msgid "dirt" @@ -231234,7 +226802,7 @@ msgid "" "A field full of malleable clay, suitable for kiln firing if it was extracted" " properly." msgstr "" -"Участок содержащий глинозём, пригодный для обжига печи, если был извлечён " +"Участок, содержащий глинозём, пригодный для обжига печи, если был извлечён " "должным образом." #: lang/json/terrain_from_json.py @@ -231280,7 +226848,7 @@ msgstr "Гигантский земляной холм, похоже, вы мо #: lang/json/terrain_from_json.py msgid "odd fault" -msgstr "странная аномалия" +msgstr "странный провал" #. ~ Description for odd fault #: lang/json/terrain_from_json.py @@ -231481,8 +227049,8 @@ msgid "" "A bare and cold concrete floor with a still-functioning light attached to " "the ceiling above." msgstr "" -"Голый и холодный бетонный пол с неподвижным светом, прикреплённым сверху к " -"потолку." +"Голый и холодный бетонный пол с неподвижным источником света, прикреплённым " +"сверху к потолку." #: lang/json/terrain_from_json.py msgid "small rebar roof cage" @@ -231562,7 +227130,7 @@ msgid "" "with wooden posts and beams supporting a roof." msgstr "" "Уложенный деревянный паркетный пол, обработанный против огня, с деревянными " -"столбами и балками, поддерживающий сопоставимую крышу." +"столбами и балками, поддерживающими крышу." #: lang/json/terrain_from_json.py msgid "primitive floor" @@ -231596,9 +227164,9 @@ msgid "" "Hardwood flooring that has been treated with chemicals to improve slip " "resistance and sliding, commonly for recreational sports." msgstr "" -"Участок пола из твёрдых пород древесины, обработанный химикатами, улучшает " -"сопротивление скольжению и качению, используется в развлекательных видах " -"спорта." +"Участок пола из твёрдых пород древесины, обработанный химикатами для " +"улучшения сопротивления скольжению и качению, используется в развлекательных" +" видах спорта." #. ~ Description for dirt floor #: lang/json/terrain_from_json.py @@ -232580,7 +228148,7 @@ msgstr "Маленький куст хрустящего арахиса." #. ~ Description for peanut bush #: lang/json/terrain_from_json.py msgid "A small peanut bush that's fruitless." -msgstr "Маленький арахисовый куст, который бесплоден." +msgstr "Маленький арахисовый куст, сейчас плодов нет." #: lang/json/terrain_from_json.py msgid "blueberry bush" @@ -232594,7 +228162,7 @@ msgstr "Маленький куст сладкой черники." #. ~ Description for blueberry bush #: lang/json/terrain_from_json.py msgid "A small blueberry bush that's fruitless." -msgstr "Маленький куст черники, который бесплоден." +msgstr "Маленький куст черники без ягод." #: lang/json/terrain_from_json.py msgid "strawberry bush" @@ -232608,7 +228176,7 @@ msgstr "Маленький куст сочной клубники." #. ~ Description for strawberry bush #: lang/json/terrain_from_json.py msgid "A small strawberry bush that's fruitless." -msgstr "Маленький куст клубники, похоже он бесплоден." +msgstr "Маленький куст клубники, ягод на нём нет." #: lang/json/terrain_from_json.py msgid "blackberry bush" @@ -232622,7 +228190,7 @@ msgstr "Маленький куст вкусной ежевики. Остере #. ~ Description for blackberry bush #: lang/json/terrain_from_json.py msgid "A small blackberry bush that's fruitless. Watch out for its thorns!" -msgstr "Маленький куст ежевики. Бесплоден. Остерегайтесь шипов!" +msgstr "Маленький куст ежевики. Ягод нет. Остерегайтесь шипов!" #: lang/json/terrain_from_json.py msgid "huckleberry bush" @@ -232636,7 +228204,7 @@ msgstr "Маленький куст голубики, часто ошибочн #. ~ Description for huckleberry bush #: lang/json/terrain_from_json.py msgid "A small huckleberry bush that's fruitless." -msgstr "Маленький куст голубики, который бесплоден." +msgstr "Маленький куст голубики без ягод." #: lang/json/terrain_from_json.py msgid "raspberry bush" @@ -232650,7 +228218,7 @@ msgstr "Маленький куст восхитительной малины. #. ~ Description for raspberry bush #: lang/json/terrain_from_json.py msgid "A small raspberry bush that's fruitless. Watch out for its thorns!" -msgstr "Маленький малиновый куст, бесплодный. Остерегайтесь шипов!" +msgstr "Маленький малиновый куст, ягод нет. Остерегайтесь шипов!" #: lang/json/terrain_from_json.py msgid "grape bush" @@ -232665,7 +228233,7 @@ msgstr "Куст какого-то растения, обвитый виногр #: lang/json/terrain_from_json.py msgid "" "A bush of a different species invaded by grape vines but they're fruitless." -msgstr "Куст какого-то растения, обвитый бесплодной виноградной лозой." +msgstr "Куст какого-то растения, обвитый виноградной лозой без плодов." #: lang/json/terrain_from_json.py msgid "rose bush" @@ -232714,7 +228282,7 @@ msgstr "Широкий куст яркой розовато-фиолетовой #. ~ Description for lilac bush #: lang/json/terrain_from_json.py msgid "A wide lilac bush that currently has no blooms." -msgstr "Широкий лиловый куст, который в настоящее время не имеет цветков." +msgstr "Широкий куст сирени, в настоящее время не цветёт." #: lang/json/terrain_from_json.py msgid "tree trunk" @@ -232748,8 +228316,8 @@ msgid "" "Small splinters of wood laid out in a layer to prevent unwanted plants from " "growing." msgstr "" -"Древесные щепки выложены слоем для предотвращения роста нежелательных " -"растений." +"Древесные щепки, выложенные ровным слоем для предотвращения роста " +"нежелательных растений." #. ~ Description for grass #: lang/json/terrain_from_json.py @@ -232782,7 +228350,7 @@ msgstr "высокая трава" #. ~ Description for long grass #: lang/json/terrain_from_json.py msgid "Long shaggy grass about shin high." -msgstr "Длинная, мохнатая трава высотой где-то с голень." +msgstr "Длинная, растрёпанная трава высотой где-то с голень." #: lang/json/terrain_from_json.py msgid "tall grass" @@ -232915,7 +228483,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "fungal mound" -msgstr "грибной холм" +msgstr "грибной холмик" #. ~ Description for fungal mound #: lang/json/terrain_from_json.py @@ -233020,8 +228588,8 @@ msgid "" "watertight container, you could gather fetid water from here. Not safe to " "drink as is." msgstr "" -"Вода тут не слишком глубокая, но мутная из-за органического вещества. Если у" -" вас есть водонепроницаемая ёмкость, здесь можно набрать вонючей воды. " +"Вода тут не слишком глубокая, но мутная из-за плавающей в ней органики. Если" +" у вас есть водонепроницаемая ёмкость, здесь можно набрать вонючей воды. " "Небезопасна для питья в сыром виде." #. ~ Description for murky shallow water @@ -233187,6 +228755,24 @@ msgstr "" "Гидравлический уплотнитель, который принимает предметы из различных металлов" " и спрессовывает их в простые формы, готовые к дальнейшей обработке." +#: lang/json/terrain_from_json.py +msgid "fuel tank" +msgstr "топливный резервуар" + +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "Бак, полный бензина." + +#: lang/json/terrain_from_json.py +msgid "broken fuel tank" +msgstr "пробитый топливный резервуар" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with gasoline." +msgstr "Пробитый топливный бак, в котором был бензин." + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "бензоколонка" @@ -233204,24 +228790,6 @@ msgstr "" "воина дороги. Если эта бензоколонка не позволяет бесплатно налить бензин, " "вам потребуется оплатить его на ближайшем терминале." -#: lang/json/terrain_from_json.py -msgid "fuel tank" -msgstr "топливный бак" - -#. ~ Description for fuel tank -#: lang/json/terrain_from_json.py -msgid "A tank filled with gasoline." -msgstr "Бак, полный бензина." - -#: lang/json/terrain_from_json.py -msgid "broken fuel tank" -msgstr "пробитый топливный бак" - -#. ~ Description for broken fuel tank -#: lang/json/terrain_from_json.py -msgid "A broken tank which was filled with gasoline." -msgstr "Пробитый топливный бак, в котором был бензин." - #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "разбитая бензоколонка" @@ -233235,6 +228803,16 @@ msgstr "" "Ужасно! Эта бензоколонка разрушена, и вам никак не добраться до жидкого " "золота." +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "Бак, наполненный дизелем." + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "Пробитый топливный бак, в котором был дизель." + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "дизельная колонка" @@ -233263,8 +228841,8 @@ msgid "" "You're not getting any diesel out of this pump any time soon. Some " "barbarian decided to take their frustration out on it." msgstr "" -"Вы нескоро получите дизель от этой колонки. Какой-то варвар выместил на ней " -"свою ярость." +"Вы не получите дизель от этой колонки. Какой-то варвар выместил на ней свою " +"ярость." #: lang/json/terrain_from_json.py msgid "ATM" @@ -233833,7 +229411,7 @@ msgid "" "This is a gate control winch. If it's functioning, it can be used to open " "or close a nearby gate or door." msgstr "" -"Лебёдка управления воротами. Если она исправна, ею можно поднять или закрыть" +"Лебёдка управления воротами. Если она исправна, ею можно открыть или закрыть" " ближайшие ворота или дверь." #. ~ Description for mechanical winch @@ -233843,7 +229421,7 @@ msgid "" "This is a gate control winch. If it's functioning, it can be used to open " "or close a nearby gate." msgstr "" -"Лебёдка управления воротами. Если она исправна, ею можно поднять или закрыть" +"Лебёдка управления воротами. Если она исправна, ею можно открыть или закрыть" " ближайшие ворота." #: lang/json/terrain_from_json.py @@ -234308,8 +229886,8 @@ msgid "" "this should never actually show up, it's a pseudo terrain. For use where " "people have trampled away grass, or otherwise cleared plant life." msgstr "" -"вы не должны это видеть это псевдо-элемент окружения. Используется там, где " -"вытоптали траву или иначе уничтожили растения." +"вы не должны это видеть этот псевдо-элемент окружения. Используется там, где" +" вытоптали траву или иначе уничтожили растения." #. ~ Description for this should never actually show up, it's a pseudo terrain #: lang/json/terrain_from_json.py @@ -234424,7 +230002,7 @@ msgstr "плиточная плоская крыша" #. ~ Description for tile flat roof #: lang/json/terrain_from_json.py msgid "A section of tiled, flat rooftop." -msgstr "Часть черепичной, плоской крыши." +msgstr "Часть плоской черепичной крыши." #: lang/json/terrain_from_json.py msgid "skylight" @@ -234502,7 +230080,7 @@ msgid "" "could be dug out but none of it looks remotely usable." msgstr "" "Гигантская заполненная трупами яма, может быть, даже массовое захоронение. " -"Тела нельзя выкопать, но ничего не выглядит даже отдаленно полезным." +"Тела можно выкопать, но пользы от этого даже отдаленно никакой." #: lang/json/terrain_from_json.py msgid "covered pit" @@ -234584,7 +230162,7 @@ msgid "" "who'd want to touch it?" msgstr "" "Отвратительная и скользкая беспорядочная масса, с помощью которой можно " -"спрятать вещи, кто же захочет прикоснуться к ней?" +"спрятать вещи, потому что кто захочет прикоснуться к ней?" #: lang/json/terrain_from_json.py msgid "wall" @@ -235158,7 +230736,7 @@ msgstr "" "Второй слой защиты после бронированного стекла, эти металлические ставни " "обычно используются как антивандальная мера или защита от экстремальных " "погодных условий. Похоже, их можно поднять только изнутри. Даже с " -"установленными ставнями, стекло неспособно поддерживать крышу." +"установленными ставнями неспособно поддерживать крышу." #: lang/json/terrain_from_json.py msgid "reinforced glass with open shutters" @@ -235224,9 +230802,9 @@ msgid "" "It's solid rock, could be full of all kinds of interesting things. Best " "grab your pickaxe or equivalent digging implement, and strike the earth!" msgstr "" -"Это сплошной камень, может содержать всевозможные интересные компоненты " -"внутри. Лучше всего захватите кирку или эквивалентное горное оборудование " -"для добычи, и вдарьте землю!" +"Это сплошной камень, может содержать всевозможные интересные находки. Лучше " +"всего захватите кирку или эквивалентное горное оборудование для добычи, и " +"вдарьте в землю!" #: lang/json/terrain_from_json.py msgid "red stone" @@ -235313,7 +230891,7 @@ msgstr "каменная кладка" #. ~ Description for field stone wall #: lang/json/terrain_from_json.py msgid "A sturdy dry stone wall. Just rocks fitted together without mortar." -msgstr "Прочная сухая каменная стена. Просто камни, наваленные без раствора." +msgstr "Прочная сухая каменная стена. Просто камни, уложенные без раствора." #: lang/json/terrain_from_json.py msgid "field stone half-wall" @@ -235326,9 +230904,9 @@ msgid "" "mortar. Complete as is or with extensive work it could be doubled in " "height." msgstr "" -"Крепкая сухая каменная стена половинной высоты. Просто камни, наваленные без" -" раствора. Оставьте, как есть, или хорошенько поработайте, чтобы увеличить в" -" два раза." +"Крепкая сухая каменная стена половинной высоты. Просто камни, уложенные без " +"раствора. Оставьте, как есть, или хорошенько поработайте, чтобы увеличить в " +"два раза." #: lang/json/terrain_from_json.py msgid "window" @@ -235502,7 +231080,7 @@ msgid "" "reinforced with strategically placed two by fours." msgstr "" "Стеклянное окно, заколоченное досками, блокирует солнечный свет и обзор. Не " -"очень прочное, но его можно усилить, прибив больше досок в важные места." +"очень прочное, но его можно усилить, прибив больше досок в слабые места." #. ~ Description for boarded up window #: lang/json/terrain_from_json.py @@ -235738,7 +231316,7 @@ msgstr "Усиленное однослойное окно с занавеско #: lang/json/terrain_from_json.py msgid "reinforced single glazed glass window with a curtain" -msgstr "усиленное застекленное однослойное окно с занавеской" +msgstr "Усиленное застекленное однослойное окно с занавеской" #. ~ Description for reinforced single glazed glass window with a curtain #. ~ Description for Reinforced single glazed glass window with a curtain @@ -235753,7 +231331,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "Double glazed glass window" -msgstr "двухслойное окно" +msgstr "Двухслойное окно" #. ~ Description for Double glazed glass window #. ~ Description for Double glazed glass window open @@ -235821,7 +231399,7 @@ msgstr "Три вставленных в оконную раму листа ст #. ~ Description for Triple glazed glass window #: lang/json/terrain_from_json.py msgid "A triple glazed giant sheet of glass inserted into a window frame." -msgstr "Три вставленных в оконную раму листа стекла." +msgstr "Три вставленных в оконную раму больших листа стекла." #: lang/json/terrain_from_json.py msgid "Triple glazed glass window with a curtain" @@ -236268,7 +231846,7 @@ msgstr "крак!" #: lang/json/terrain_from_json.py msgid "Edison generator" -msgstr "Генератор Эдисона" +msgstr "генератор Эдисона" #. ~ Description for Edison generator #: lang/json/terrain_from_json.py @@ -236286,19 +231864,6 @@ msgstr "" "безграничную мощность Здесь, однако, от него мало пользы. Возможно это могло" " исправить, разобрав его и использовав запчасти для других целей." -#: lang/json/terrain_from_json.py -msgid "LEGACY hydroponics unit" -msgstr "УСТАРЕВШАЯ гидропонная установка" - -#. ~ Description for LEGACY hydroponics unit -#: lang/json/terrain_from_json.py -msgid "" -"This is a deprecated hydroponics unit. Deconstruct it to receive your " -"materials back." -msgstr "" -"Устаревшая гидропонная установка. Разберите, чтобы получить запчасти " -"обратно." - #: lang/json/terrain_from_json.py msgid "burnt tree" msgstr "сгоревшее дерево" @@ -236391,28 +231956,16 @@ msgstr "странная статуя" #: lang/json/terrain_from_json.py msgid "containment manual override" -msgstr "ручное управление изолятором" +msgstr "ручное управление системой содержания" #: lang/json/terrain_from_json.py msgid "security bolt release" -msgstr "болты обеспечения безопасности" +msgstr "управление задвижками" #: lang/json/terrain_from_json.py msgid "bridge control" msgstr "контроль мостом" -#: lang/json/terrain_from_json.py -msgid "mass of blob feed" -msgstr "масса из корма сгустка" - -#: lang/json/terrain_from_json.py -msgid "squish!" -msgstr "хлюп!" - -#: lang/json/terrain_from_json.py -msgid "mound of blob feed" -msgstr "насыпь из корма сгустка" - #: lang/json/terrain_from_json.py msgid "singing sand" msgstr "поющий песок" @@ -236423,8 +231976,8 @@ msgid "" "A formation of sand containing special minerals to produce whistling noises " "when stepped on and from the wind." msgstr "" -"Участок песка со специальными минералами, издающий свистящие звуки на ветру " -"или при наступании." +"Участок песка с особыми минералами, издающий свистящие звуки на ветру или " +"при наступании." #: lang/json/terrain_from_json.py msgid "fweet!" @@ -236500,19 +232053,19 @@ msgstr "защиты от ослепляющего блеска" #: lang/json/tool_quality_from_json.py msgid "shearing" -msgstr "стрижка шерсти" +msgstr "стрижки шерсти" #: lang/json/tool_quality_from_json.py msgid "churn" -msgstr "маслобойка" +msgstr "сбивания масла" #: lang/json/tool_quality_from_json.py msgid "awl" -msgstr "шило" +msgstr "шила" #: lang/json/tool_quality_from_json.py msgid "anesthesia" -msgstr "анестезия" +msgstr "анестезии" #: lang/json/tool_quality_from_json.py msgid "smoothing" @@ -236598,6 +232151,10 @@ msgstr "поднятия домкратом" msgid "self jacking" msgstr "самоподнятия домкратом" +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "откачки" + #: lang/json/tool_quality_from_json.py msgid "chiseling" msgstr "долбления" @@ -236620,7 +232177,7 @@ msgstr "анализа" #: lang/json/tool_quality_from_json.py msgid "concentration" -msgstr "концентрации" +msgstr "концентрирования" #: lang/json/tool_quality_from_json.py msgid "separation" @@ -236648,48 +232205,48 @@ msgstr "опиловки" #: lang/json/tool_quality_from_json.py msgid "clamping" -msgstr "фиксация" +msgstr "фиксации" #: lang/json/tool_quality_from_json.py msgid "pressurizing" -msgstr "сжатия" +msgstr "нагнетания давления" #: lang/json/tool_quality_from_json.py msgid "lockpicking" -msgstr "взлом" +msgstr "взлома" #: lang/json/tool_quality_from_json.py msgid "extraction" -msgstr "извлечение" +msgstr "экстракции" #: lang/json/tool_quality_from_json.py msgid "filtration" -msgstr "фильтрация" +msgstr "фильтрации" #: lang/json/tool_quality_from_json.py msgid "bionic assembly" -msgstr "сборка бионики" +msgstr "сборки бионики" #: lang/json/tool_quality_from_json.py msgid "mana focusing" -msgstr "сосредоточение маны" +msgstr "сосредоточения маны" #: lang/json/tool_quality_from_json.py msgid "mana infusing" -msgstr "проникновение маны" +msgstr "проникновения маны" #: lang/json/tool_quality_from_json.py msgid "mana weaving" -msgstr "плетение маны" +msgstr "плетения маны" #: lang/json/tool_quality_from_json.py msgid "magic mutagen mixer" -msgstr "волшебный смеситель мутагенов" +msgstr "волшебного смешивания мутагенов" #. ~ Trap-vehicle collision message for trap 'bubble wrap' #: lang/json/trap_from_json.py src/trapfunc.cpp msgid "Pop!" -msgstr "«Шпок!»" +msgstr "«Чпок!»" #: lang/json/trap_from_json.py msgid "glass shards" @@ -236771,7 +232328,7 @@ msgstr "Бам!" #: lang/json/trap_from_json.py msgid "buried land mine" -msgstr "зарытый фугас" +msgstr "зарытая противопехотная мина" #: lang/json/trap_from_json.py msgid "goo pit" @@ -236823,14 +232380,6 @@ msgstr "дожделовка" msgid "magic door" msgstr "волшебная дверь" -#: lang/json/trap_from_json.py -msgid "light snare trap" -msgstr "лёгкий силок" - -#: lang/json/trap_from_json.py -msgid "heavy snare trap" -msgstr "тяжёлый силок" - #: lang/json/vehicle_from_json.py msgid "work light" msgstr "рабочее освещение" @@ -236841,7 +232390,7 @@ msgstr "велосипед" #: lang/json/vehicle_from_json.py msgid "Mountain bike" -msgstr "Горный велосипед" +msgstr "горный велосипед" #: lang/json/vehicle_from_json.py msgid "Electric Bicycle" @@ -236849,11 +232398,11 @@ msgstr "электровелосипед" #: lang/json/vehicle_from_json.py msgid "Motocross Bike" -msgstr "Кроссовый мотоцикл" +msgstr "кроссовый мотоцикл" #: lang/json/vehicle_from_json.py msgid "Street-Legal Dirt Bike" -msgstr "Мотоцикл эндуро" +msgstr "мотоцикл эндуро" #: lang/json/vehicle_from_json.py msgid "Motorcycle" @@ -236925,7 +232474,7 @@ msgstr "деревянная шлюпка" #: lang/json/vehicle_from_json.py msgid "4x4 Car" -msgstr "Полноприводный внедорожник" +msgstr "полноприводный внедорожник" #: lang/json/vehicle_from_json.py msgid "Beetle" @@ -236945,7 +232494,7 @@ msgstr "шасси авто" #: lang/json/vehicle_from_json.py msgid "City Car" -msgstr "Городской автомобиль" +msgstr "городской автомобиль" #: lang/json/vehicle_from_json.py msgid "Hatchback" @@ -236989,11 +232538,11 @@ msgstr "электро-внедорожник со стойкой для бай #: lang/json/vehicle_from_json.py msgid "Survivor Car" -msgstr "Машина выживальщика" +msgstr "машина выживальщика" #: lang/json/vehicle_from_json.py msgid "Engine Crane" -msgstr "Кран-подъемник для двигателя" +msgstr "кран-подъемник для двигателя" #: lang/json/vehicle_from_json.py msgid "Food Vendor Cart" @@ -237061,7 +232610,7 @@ msgstr "машина скорой помощи" #: lang/json/vehicle_from_json.py msgid "FBI, Emergency" -msgstr "ФБР, неотложка" +msgstr "машина ФБР" #: lang/json/vehicle_from_json.py msgid "Fire Engine" @@ -237077,7 +232626,7 @@ msgstr "полицейская машина" #: lang/json/vehicle_from_json.py msgid "Police K9 Unit" -msgstr "К9 полицейская машина" +msgstr "полицейская машина К9" #: lang/json/vehicle_from_json.py msgid "Police SUV" @@ -237085,7 +232634,7 @@ msgstr "полицейский внедорожник" #: lang/json/vehicle_from_json.py msgid "Police K9 Transport" -msgstr "К9 полицейский транспорт" +msgstr "полицейский транспорт К9" #: lang/json/vehicle_from_json.py msgid "SWAT Truck" @@ -237113,19 +232662,19 @@ msgstr "трактор с сеялкой" #: lang/json/vehicle_from_json.py msgid "Wagon" -msgstr "Фургон" +msgstr "фургон" #: lang/json/vehicle_from_json.py msgid "2-seater helicopter" -msgstr "Двухместный вертолет" +msgstr "двухместный вертолет" #: lang/json/vehicle_from_json.py msgid "Small helicopter" -msgstr "Маленький вертолет" +msgstr "маленький вертолет" #: lang/json/vehicle_from_json.py msgid "Medevac helicopter" -msgstr "Медицинский вертолет" +msgstr "медицинский вертолет" #: lang/json/vehicle_from_json.py msgid "SmallFlier2 Wreck" @@ -237181,7 +232730,7 @@ msgstr "Тестовый Реактор" #: lang/json/vehicle_from_json.py msgid "Solar test" -msgstr "Тестовый Солнцемобиль" +msgstr "Тестовый солнечный автомобиль" #: lang/json/vehicle_from_json.py msgid "TEST Scooter" @@ -237193,7 +232742,7 @@ msgstr "ТЕСТОВЫЙ электрический скутер" #: lang/json/vehicle_from_json.py msgid "Passenger Car" -msgstr "Пассажирский Вагон" +msgstr "пассажирский вагон" #: lang/json/vehicle_from_json.py msgid "Two-Seated Motorized Draisine" @@ -237209,7 +232758,7 @@ msgstr "рельсовый мотоцикл" #: lang/json/vehicle_from_json.py msgid "Miniature Train Locomotive" -msgstr "Мини-поезд" +msgstr "мини-локомотив" #: lang/json/vehicle_from_json.py msgid "Flatbed Truck" @@ -237289,7 +232838,7 @@ msgstr "роскошный дом на колёсах" #: lang/json/vehicle_from_json.py msgid "Survivor RV" -msgstr "Дом на колесах выживальщика" +msgstr "дом на колесах выживальщика" #: lang/json/vehicle_from_json.py msgid "Mobile Meth Lab" @@ -237301,7 +232850,7 @@ msgstr "дом на колёсах" #: lang/json/vehicle_from_json.py msgid "Limousine" -msgstr "Лимузин" +msgstr "лимузин" #: lang/json/vehicle_from_json.py msgid "Schoolbus" @@ -237309,11 +232858,11 @@ msgstr "школьный автобус" #: lang/json/vehicle_from_json.py msgid "Bus" -msgstr "Автобус" +msgstr "автобус" #: lang/json/vehicle_from_json.py msgid "Tour Bus" -msgstr "Туристический автобус" +msgstr "туристический автобус" #: lang/json/vehicle_from_json.py msgid "Security Van" @@ -237325,19 +232874,19 @@ msgstr "сосискомобиль" #: lang/json/vehicle_from_json.py msgid "custom" -msgstr "нестандартный" +msgstr "custom" #: lang/json/vehicle_from_json.py msgid "custom_empty" -msgstr "пустой" +msgstr "custom_empty" #: lang/json/vehicle_from_json.py msgid "Gas Tanker" -msgstr "Бензовоз" +msgstr "бензовоз" #: lang/json/vehicle_from_json.py msgid "Water Tanker" -msgstr "Водовоз" +msgstr "водовоз" #: lang/json/vehicle_from_json.py msgid "Sports Bike" @@ -237345,7 +232894,7 @@ msgstr "спорт-байк" #: lang/json/vehicle_from_json.py msgid "Electric Semi" -msgstr "Электрогрузовик" +msgstr "электрогрузовик" #: lang/json/vehicle_from_json.py msgid "Atomic Compact" @@ -237361,63 +232910,11 @@ msgstr "атомное авто" #: lang/json/vehicle_from_json.py msgid "Flaming Atomic Car" -msgstr "Яркий атомный автомобиль" - -#: lang/json/vehicle_from_json.py -msgid "Roadheader" -msgstr "горнопроходчик" +msgstr "яркий атомный автомобиль" #: lang/json/vehicle_from_json.py msgid "Floating disk" -msgstr "Парящий диск" - -#: lang/json/vehicle_from_json.py -msgid "Robotic Taxi" -msgstr "робо-такси" - -#: lang/json/vehicle_from_json.py -msgid "Armored Robot Carrier" -msgstr "Бронированный Робот-Перевозчик" - -#: lang/json/vehicle_from_json.py -msgid "Atomic Mini-Tank" -msgstr "атомный мини-танк" - -#: lang/json/vehicle_from_json.py -msgid "Light Tank" -msgstr "лёгкий танк" - -#: lang/json/vehicle_from_json.py -msgid "Main Battle Tank" -msgstr "основной боевой танк" - -#: lang/json/vehicle_from_json.py -msgid "Self-Propelled Howitzer" -msgstr "самоходная гаубица" - -#: lang/json/vehicle_from_json.py -msgid "Mobile Gun System" -msgstr "самоходная артиллерийская установка" - -#: lang/json/vehicle_from_json.py -msgid "Bandit Bulldozer" -msgstr "бульдозер бандитов" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Planter Tractor" -msgstr "тяжёлый трактор с сеялкой" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Plow Tractor" -msgstr "тяжёлый трактор с плугом" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Reaper Tractor" -msgstr "тяжёлый трактор с жаткой" - -#: lang/json/vehicle_from_json.py -msgid "Infantry Fighting Vehicle" -msgstr "боевая машина пехоты" +msgstr "парящий диск" #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" @@ -237601,7 +233098,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "stow board" -msgstr "складной кузов" +msgstr "кузов с отсеком для вещей" #. ~ Description for {'str': 'stow board'} #: lang/json/vehicle_part_from_json.py @@ -237614,7 +233111,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "heavy duty stow board" -msgstr "тяжёлый складной кузов" +msgstr "тяжёлый кузов с отсеком для вещей" #: lang/json/vehicle_part_from_json.py msgid "heavy duty board" @@ -237730,6 +233227,14 @@ msgstr "Запасное колесо на внешней подвеске." msgid "A combustion engine. Burns fuel from a tank in the vehicle." msgstr "Двигатель внутреннего сгорания. Сжигает топливо из бака транспорта." +#: lang/json/vehicle_part_from_json.py +msgid "" +"A combustion engine for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "" +"Двигатель внутреннего сгорания, используемый в воздушном трансопрте. Сжигает" +" бензин или авиационное топливо из бака транспорта." + #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " @@ -237740,7 +233245,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." -msgstr "Двигатель внутреннего сгорания. Сжигает бензин в баке транспорта." +msgstr "Двигатель внутреннего сгорания. Сжигает бензин из бака транспорта." #: lang/json/vehicle_part_from_json.py msgid "" @@ -237855,8 +233360,9 @@ msgid "" msgstr "" "Большой металлический диск с приводом от двигателей вашего транспорта. Его " "можно включать и выключать, используя систему управления. Когда включён, он " -"остановит транспорт с не очень мощным двигателем. Когда включён, он выкопает" -" неглубокую яму в земле. Устанавливайте его на краю транспортного средства." +"остановит транспорт, если мощности двигателя не будет хватать. Когда " +"включён, он выкопает неглубокую яму в земле. Устанавливайте его на краю " +"транспортного средства." #: lang/json/vehicle_part_from_json.py msgid "air jack system" @@ -237987,7 +233493,6 @@ msgstr "" "изготовления предметов такого света недостаточно." #. ~ Description for {'str': 'floodlight'} -#. ~ Description for {'str': 'gel floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, circular light that illuminates the area outside the vehicle " @@ -237997,7 +233502,6 @@ msgstr "" "транспортного средства." #. ~ Description for {'str': 'directed floodlight'} -#. ~ Description for {'str': 'gel directed floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, directed light that illuminates a half-circular area outside " @@ -238013,7 +233517,6 @@ msgid "headlight" msgstr "фара" #. ~ Description for {'str': 'headlight'} -#. ~ Description for {'str': 'gel headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a narrow cone outside the vehicle when " @@ -238044,7 +233547,6 @@ msgid "wide angle headlight" msgstr "широкоугольная фара" #. ~ Description for {'str': 'wide angle headlight'} -#. ~ Description for {'str': 'gel wide angle headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a wide cone outside the vehicle when turned " @@ -238104,7 +233606,7 @@ msgid "" " allow you to move the vehicle at the cost of your stamina." msgstr "" "Комплект колёс для кресла-каталки. Если их установить в тайл с сиденьем, они" -" позволят вам приводить транспорт в движение, расходуя вашу выносливость." +" позволят вам приводить транспорт в движение за счет вашей выносливости." #. ~ Description for {'str': 'electric motor'} #: lang/json/vehicle_part_from_json.py @@ -238122,6 +233624,10 @@ msgstr "" "электроэнергии транспортного средства, когда на неё падает солнечный свет. " "Облачная погода замедляет зарядку. Очень хрупкая и не может быть укреплена." +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "установленная лазерная пушка Цербер" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -238190,8 +233696,8 @@ msgid "" "A set of aerofoil helicopter rotors, when spun at high speed, they generate " "thrust via lift." msgstr "" -"Набор обтекаемых вертолетных роторов, при вращении на большой скорости они " -"создают подъемную тягу." +"Набор аэродинамических вертолетных роторов, при вращении на большой скорости" +" они создают подъемную тягу." #. ~ Description for heavy-duty military rotors #. ~ Description for small helicopter rotors @@ -238327,79 +233833,83 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted makeshift chemical thrower" -msgstr "смонитрованный самодельный химический распылитель" +msgstr "самодельный химический распылитель (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted XM34 EMP projector" -msgstr "смонитрованный ЭМИ излучатель XM34" +msgstr "ЭМИ излучатель XM34 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted H&K G80 Railgun" -msgstr "смонтированная рельсовая пушка H&K G80" +msgstr "рельсовая пушка H&K G80 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted flamethrower" -msgstr "cмонтированный огнемёт" +msgstr "огнемёт (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted PPA-5 plasma gun" -msgstr "смонтированная плазменная пушка PPA-5" +msgstr "плазменная пушка PPA-5 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted A7 laser rifle" -msgstr "смонтированная лазерная винтовка A7" +msgstr "лазерная винтовка A7 (турель)" #: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" -msgstr "установленная лазерная пушка Цербер" +msgid "mounted M249" +msgstr "M249 (турель)" #: lang/json/vehicle_part_from_json.py -msgid "mounted M249" -msgstr "смонтированный M249" +msgid "mounted M249S" +msgstr "M249S (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted gatling shotgun" -msgstr "смонтированная картечница Гатлинга" +msgstr "картечница Гатлинга (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted M2 Browning" -msgstr "смонтированный M2 Браунинг" +msgstr "M2 Браунинг (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted M134D-H Minigun" -msgstr "смонтированный миниган M134D-H" +msgstr "миниган M134D-H (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted Browning Automatic Rifle" -msgstr "смонтированная BAR" +msgstr "BAR (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted M240" -msgstr "смонтированный M240" +msgstr "M240 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted M60" -msgstr "смонтированный M60" +msgstr "M60 (турель)" + +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "M60 Semi Auto (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" -msgstr "смонтированный гранатомёт Mark 19" +msgstr "гранатомёт Mark 19 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted BGM-71F TOW" -msgstr "смонтированный ПТРК BGM-71F TOW" +msgstr "ПТРК BGM-71F TOW (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted RM298 HMG" -msgstr "смонтированный RM298 HMG" +msgstr "RM298 HMG (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted RM614 LMG" -msgstr "смонтированный пулемёт RM614 LMG" +msgstr "пулемёт RM614 LMG (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted Boeing XM-P plasma rifle" -msgstr "смонтированное плазменное ружьё Боинг XM-P" +msgstr "плазменное ружьё Боинг XM-P (турель)" #: lang/json/vehicle_part_from_json.py msgid "null part" @@ -238670,7 +234180,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "swappable storage battery case" -msgstr "сменный аккумуляторный ящик" +msgstr "отсек для сменных аккумуляторов" #. ~ Description for {'str': 'swappable storage battery case'} #: lang/json/vehicle_part_from_json.py @@ -238762,7 +234272,7 @@ msgstr "складывающийся деревянный ящик" #: lang/json/vehicle_part_from_json.py msgid "storage bag" -msgstr "отсек для хранения" +msgstr "багажный мешок" #: lang/json/vehicle_part_from_json.py msgid "wire bike basket" @@ -238847,7 +234357,7 @@ msgstr "автомобильный обогреватель" #: lang/json/vehicle_part_from_json.py msgid "vehicle-mounted cooler" -msgstr "монтируемый на автомобиль кондиционер" +msgstr "автомобильный кондиционер" #. ~ Description for {'str': 'electronics control unit'} #: lang/json/vehicle_part_from_json.py @@ -238872,7 +234382,7 @@ msgstr "Ремень, прикреплённый к сиденью." #: lang/json/vehicle_part_from_json.py msgid "security system" -msgstr "система безопасности" +msgstr "противоугонная система" #. ~ Description for {'str': 'security system'} #: lang/json/vehicle_part_from_json.py @@ -238995,7 +234505,7 @@ msgstr "автокухня" msgid "" "A small but complete kitchen unit, powered from the vehicle's batteries." msgstr "" -"Маленькая, но полноценная автокухня. Питается от батарей транспортного " +"Маленькая, но полноценная автокухня. Работает от батарей транспортного " "средства." #: lang/json/vehicle_part_from_json.py @@ -239185,11 +234695,11 @@ msgstr "Дверь. Окно позволяет смотреть через за #: lang/json/vehicle_part_from_json.py msgid "cargo space" -msgstr "ящик" +msgstr "грузовой отсек" #: lang/json/vehicle_part_from_json.py msgid "livestock stall" -msgstr "загон для скота" +msgstr "отсек для скота" #. ~ Description for {'str': 'livestock stall'} #: lang/json/vehicle_part_from_json.py @@ -239464,7 +234974,7 @@ msgid "" "purify water in a container or in the vehicle's tanks. 'e'xamine the tile " "with the purifier to use it." msgstr "" -"Водный фильтр, запитанный от батарей транспорта. Можно использовать для " +"Фильтр для вожы, работающий от батарей транспорта. Можно использовать для " "очистки воды в ёмкости или баках транспорта. Осмотрите (по умолчанию «e») " "тайл с фильтром для использования." @@ -239478,8 +234988,8 @@ msgid "" msgstr "" "Плуг. Используйте панель управления транспорта для включения или выключения." " После включения создает борозду в любой почве при движении через нее. После" -" этого почва готова к посадке семян. Должен быть установлен перед любой " -"посадочной машиной." +" этого почва готова к посадке семян. Должен быть установлен впереди по " +"движению перед сеялкой." #. ~ Description for {'str': 'seed drill'} #. ~ Description for {'str': 'advanced seed drill'} @@ -239491,7 +235001,7 @@ msgid "" "any plows on the vehicle, and any wheels should be placed so they won't run " "over the plants." msgstr "" -"Это сеялка. Используйте систему управления транспорта для включения или " +"Сеялка. Используйте систему управления транспорта для включения или " "выключения. После включения будет выбрасывать семена по ходу движения или " "сажать их во взрыхлённую почву. Если на транспорте есть плуг, сеялка должна " "находиться позади него, а колёса должны располагаться так, чтобы не ехать по" @@ -239728,6 +235238,13 @@ msgstr "" msgid "A wooden wheel." msgstr "Деревянное колесо." +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "Огромное пустое пространство для перевозки уймы барахла грузовиками." + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "грузовое корыто" @@ -239742,13 +235259,6 @@ msgstr "" "Всего лишь металлический таз, приваренный к днищу транспорта и свисающий " "вниз. Хотя и вместительный, но непрочный из-за кустарного изготовления." -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "Огромное пустое пространство для перевозки уймы барахла грузовиками." - #: lang/json/vehicle_part_from_json.py msgid "crude plating" msgstr "грубая броня" @@ -239762,10 +235272,6 @@ msgstr "" "Кусок листового металла, приваренный к машине в качестве брони. Тонкий и не " "такой крепкий, как настоящая броня, но сгодится, если нет ничего получше." -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "установленная лазерная пушка" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -239846,112 +235352,6 @@ msgstr "" "можно соединять с другими рамами для увеличения размера транспортного " "средства." -#: lang/json/vehicle_part_from_json.py -msgid "folding extra light quarterpanel" -msgstr "складывающаяся сверхлёгкая боковина" - -#: lang/json/vehicle_part_from_json.py -msgid "foldable door" -msgstr "складная дверь" - -#: lang/json/vehicle_part_from_json.py -msgid "superalloy coating" -msgstr "покрытие из суперслава" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tactical shotgun" -msgstr "смонтированный тактический дробовик" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted heavy machinegun" -msgstr "станковый крупнокалиберный пулемёт" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted assault rifle" -msgstr "установленная штурмовая винтовка" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted light machine gun" -msgstr "смонтированный лёгкий пулемёт" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted automatic grenade launcher" -msgstr "станковый автоматический гранатомёт" - -#. ~ Description for Balancer -#: lang/json/vehicle_part_from_json.py -msgid "A large and heavy metal drum for balancing a vehicle." -msgstr "Большая тяжёлая металлическая бочка для балансировки машины." - -#. ~ Description for roadheader -#: lang/json/vehicle_part_from_json.py -msgid "" -"A large metal jagged metalhead, powered by the vehicle's engines. Use the " -"vehicle controls to turn it on or off. When turned on, it will stop the " -"vehicle unless it has a strong engine. When turned on, it will destroy " -"walls near it." -msgstr "" -"Большой металлический зазубренный бур, вращение которого обеспечивается " -"двигателями машины. Его можно включать и выключать, используя систему " -"управления. При включении застопорит машину, если у неё нет мощного " -"двигателя, и будет разрушать стены поблизости." - -#: lang/json/vehicle_part_from_json.py -msgid "bulette plating" -msgstr "броня булитта" - -#. ~ Description for orichalcum frame -#: lang/json/vehicle_part_from_json.py -msgid "" -"An expensive magical metal framework. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." -msgstr "" -"Дорогая зачарованная магией металлическая рама. На неё можно устанавливать " -"другие детали, и её можно соединять с другими рамами для увеличения размера " -"транспортного средства." - -#: lang/json/vehicle_part_from_json.py -msgid "mana frame" -msgstr "рама из маны" - -#. ~ Description for mana frame -#: lang/json/vehicle_part_from_json.py -msgid "A shape of pure mana that can float and carry items." -msgstr "Мана, принявшая форму, способная парить и переносить предметы." - -#: lang/json/vehicle_part_from_json.py -msgid "robot_carrier" -msgstr "роботопогрузчик" - -#. ~ Description for robot_carrier -#: lang/json/vehicle_part_from_json.py -msgid "" -"A cargo space for carrying robots. 'e'xamine it to capture a robot next to " -"you, or to release the robot currently contained. When selecting a robot to" -" capture, choose its tile relative to you, not the part." -msgstr "" -"Грузовое пространство для перевозки роботов. [e]xamine, чтобы захватить " -"робота рядом с вами или освободить находящийся в нем робот. При выборе " -"робота для захвата выберите ближайший его тайл по отношению к вам, а не " -"любую часть." - -#: lang/json/vehicle_part_from_json.py -msgid "120mm tank gun (AL)" -msgstr "танковая пушка 120 мм" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm RWS" -msgstr "орудие 120 мм на ДУ" - -#: lang/json/vehicle_part_from_json.py -msgid "ATGM turret" -msgstr "турель ПТУР" - -#: lang/json/vehicle_part_from_json.py -msgid "30mm chaingun" -msgstr "автопушка 30 мм" - #: lang/json/vehicle_part_from_json.py msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" @@ -239960,75 +235360,10 @@ msgstr "" "Паровая турбина внешнего сгорания с замкнутым циклом. Сжигает уголь из " "бункера для получения пара." -#: lang/json/vehicle_part_from_json.py -msgid "mounted slingshot cannon" -msgstr "установленная пушка-рогатка" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted lacerator" -msgstr "протыкатель (турель)" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary cannon" -msgstr "вращающаяся пушка (турель)" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted pulse laser" -msgstr "установленный импульсный лазер" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted turbolaser" -msgstr "турболазерная пушка (турель)" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted ripper" -msgstr "смонтированный потрошитель" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted scorpion ballista" -msgstr "баллиста-скорпион (турель)" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted speargun" -msgstr "установленное гарпунное ружьё" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tesla cannon" -msgstr "установленная тесла-пушка" - #: lang/json/vehicle_part_from_json.py msgid "cargo shelving" msgstr "транспортный стеллаж" -#. ~ Description for {'str': 'solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. Will recharge the vehicle's " -"electrical power when exposed to the sun." -msgstr "" -"Конструкция из дюжины солнечных панелей нескольких метров в высоту на " -"подвижном шасси. Оберегает хрупкие солнечные панели от потенциальной " -"опасности и повышает эффективность работы благодаря возможности " -"поворачиваться за солнцем. Будет заряжать аккумуляторы транспорта при " -"воздействии солнечных лучей." - -#. ~ Description for {'str': 'upgraded solar array'} -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able track the sun. Will recharge the " -"vehicle's electrical power when exposed to the sun." -msgstr "" -"Конструкция из дюжины мощных солнечных панелей нескольких метров в высоту на" -" подвижном шасси. Оберегает хрупкие солнечные панели от потенциальной " -"опасности и повышает эффективность работы благодаря возможности " -"поворачиваться за солнцем. Будет заряжать аккумуляторы транспорта при " -"воздействии солнечных лучей." - #: lang/json/vehicle_part_from_json.py msgid "wiring" msgstr "проводка" @@ -240042,37 +235377,6 @@ msgstr "" "Моток прочной медной проволоки, полезный для прокладки питания от одной " "части транспортного средства к другой." -#: lang/json/vehicle_part_from_json.py -msgid "pocket dimension cargo" -msgstr "хранилище с карманным измерением" - -#: lang/json/vehicle_part_from_json.py -msgid "rubber treads" -msgstr "резиновые гусеницы" - -#. ~ Description for {'str': 'rubber treads'} -#. ~ Description for {'str': 'steel treads'} -#. ~ Description for {'str': 'tank treads'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A section of continuous track, the kind mounted on construction vehicles and" -" military fighting vehicles. It acts as a wheel, and the broad surface " -"provides plenty of traction to move heavy vehicles off-road, but at the cost" -" of speed due to the heavy weight." -msgstr "" -"Секция непрерывных траков, похожих на установленные в строительных машинах " -"или военной технике. Работает как колесо, а широкая поверхность обеспечивает" -" хорошее сцепление с землей, достаточное для комфортного перемещения по " -"бездорожью, но за счет пониженной скорости из-за большого веса." - -#: lang/json/vehicle_part_from_json.py -msgid "steel treads" -msgstr "стальные гусеницы" - -#: lang/json/vehicle_part_from_json.py -msgid "tank treads" -msgstr "танковые гусеницы" - #: lang/json/vehicle_part_from_json.py msgid "mounted TDI Vector" msgstr "TDI Vector (турель)" @@ -240095,7 +235399,7 @@ msgstr "American-180 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted AN94" -msgstr "AN94 (турель)" +msgstr "АН94 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted AR-15" @@ -240207,7 +235511,7 @@ msgstr "винтовка .50 калибра (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted M320" -msgstr "смонтированный М230" +msgstr "М230 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted M4A1" @@ -240215,7 +235519,7 @@ msgstr "M4A1 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted M79" -msgstr "смонтированный М79" +msgstr "М79 (турель)" #: lang/json/vehicle_part_from_json.py msgid "mounted MAC-10" @@ -240293,10 +235597,6 @@ msgstr "RM802 (турель)" msgid "mounted RM88 battle rifle" msgstr "боевая винтовка RM88 (турель)" -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary speargun" -msgstr "установленное вращающееся гарпунное ружьё" - #: lang/json/vehicle_part_from_json.py msgid "mounted Ruger 10/22" msgstr "Ruger 10/22 (турель)" @@ -240354,499 +235654,48 @@ msgid "mounted V29 laser" msgstr "лазер V29 (турель)" #: lang/json/vehicle_part_from_json.py -msgid "gel panel" -msgstr "желейная панель" - -#: lang/json/vehicle_part_from_json.py -msgid "gray wall" -msgstr "серая стена" - -#. ~ Description for {'str': 'gray wall'} -#. ~ Description for {'str': 'ooze barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a vehicle wall. Keeps zombies outside the " -"vehicle and prevents people from seeing through it." -msgstr "" -"Живой сгусток, в форме автомобильной стены. Оставляет зомби снаружи авто и " -"не дает людям смотреть насквозь." - -#: lang/json/vehicle_part_from_json.py -msgid "gel quarterpanel" -msgstr "желейная боковина" - -#. ~ Description for {'str': 'gel quarterpanel'} -#. ~ Description for {'str': 'gray barricade'} -#. ~ Description for {'str': 'ooze screen'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a half-height vehicle wall. Keeps zombies " -"outside the vehicle but allows people to see over it." -msgstr "" -"Живой сгусток, в форме автомобильной стены половинной высоты. Оставляет " -"зомби снаружи авто и не дает людям смотреть насквозь." - -#: lang/json/vehicle_part_from_json.py -msgid "gray barricade" -msgstr "серая баррикада" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze screen" -msgstr "экран из слизи" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze barrier" -msgstr "слизевой барьер" - -#: lang/json/vehicle_part_from_json.py -msgid "gel framework" -msgstr "желейная рама" - -#. ~ Description for {'str': 'gel framework'} -#. ~ Description for {'str': 'gray frame'} -#. ~ Description for {'str': 'ooze chassis'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, shaped to provide attachment points for other blobs. Other " -"vehicle components and blobs can be mounted on it. If all the frames and " -"components of a vehicle are foldable or made from blobs, the vehicle can be " -"folding into a small package and picked up as a normal item." -msgstr "" -"Живой сгусток, сформированный для обеспечения дополнительных точек " -"присоединения других сгустков. Любые компоненты автомобиля или другие " -"сгустки могут быть прикреплены на эти места. Если все рамы и компоненты " -"транспорта складные или сделаны из сгустков, то автомобиль может быть сложен" -" в маленький предмет и поднят в руки как любая другая вещь." - -#: lang/json/vehicle_part_from_json.py -msgid "gray frame" -msgstr "серая рама" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze chassis" -msgstr "слизевые шасси" - -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living, glowing blob. Having been filled with electrical power, can " -"release it as light of varying strength." -msgstr "" -"Живой, светящийся сгусток. Будучи заряженным с помощью электричества, он " -"может использовать его для свечения с разной силой." - -#: lang/json/vehicle_part_from_json.py -msgid "gel aisle lights" -msgstr "гелевая подсветка прохода" - -#: lang/json/vehicle_part_from_json.py -msgid "gel floodlight" -msgstr "гелевый прожектор" - -#: lang/json/vehicle_part_from_json.py -msgid "gel directed floodlight" -msgstr "гелевый направленный прожектор" - -#: lang/json/vehicle_part_from_json.py -msgid "gel headlight" -msgstr "гелевая фара" - -#: lang/json/vehicle_part_from_json.py -msgid "gel wide angle headlight" -msgstr "гелевая широкоугольная фара" - -#: lang/json/vehicle_part_from_json.py -msgid "ice ram" -msgstr "ледяной таран" - -#. ~ Description for {'str': 'ice ram'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will absorb damage in a" -" vehicle collision and deliver additional damage to the other object in the " -"collision. It should be mounted on the edge of the vehicle, preferably the " -"front." -msgstr "" -"Живой сгусток, пребывающий в супер-охлажденном состоянии. Он будет поглощать" -" ваш урон в месте столкновения и наносить урон сталкиваемому объекту. Должен" -" быть монтирован на краю транспортного средства, желательно спереди." - -#: lang/json/vehicle_part_from_json.py -msgid "Gelatinous tracks" -msgstr "желейные траки" - -#. ~ Description for {'str': 'Gelatinous tracks'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A set of continuous, interlocking tracks made out of blob. They can be used" -" in place of wheels, and provide good traction and off-road performance." -msgstr "" -"Набор непрерывных, взаимосвязанных траков, сделанных из сгустков. Они могут " -"быть установлены вместо колес и обеспечивают хорошее сцепление с землей, а " -"также отлично подходят для езды по бездорожью." - -#: lang/json/vehicle_part_from_json.py -msgid "Oozing tracks" -msgstr "слизевые траки" - -#: lang/json/vehicle_part_from_json.py -msgid "inert core" -msgstr "инертное ядро" - -#. ~ Description for {'str': 'inert core'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A sleeping amorphous core, acting as a rotating, universal mount for a " -"weapon. If your hands are empty, you can stand next to a tentacle and " -"'f'ire the weapon by selecting the tile." -msgstr "" -"Спящее аморфное ядро, работает как вращающееся, универсальное гнездо для " -"оружия. Если ваши руки пусты, вы можете встать напротив тентакля и начать " -"[f]ire стрелять, целясь в нужный тайл." - -#: lang/json/vehicle_part_from_json.py -msgid "A living blob turned into a heavy vehicle weapon." -msgstr "Живой сгусток, превращённый в тяжёлое автомобильное орудие." - -#. ~ Description for {'str': 'frost lancer'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state and transformed into a heavy" -" vehicle weapon." -msgstr "" -"Живой сгусток, пребывающий в супер-охлажденном состоянии и превращённый в " -"тяжёлое автомобильное орудие." - -#: lang/json/vehicle_part_from_json.py -msgid "ice pack" -msgstr "ледяной пакет" - -#. ~ Description for {'str': 'ice pack'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will keep items stored " -"in it cold, reducing the speed at which food and drink rots." -msgstr "" -"Живой сгусток, пребывающий в супер-охлажденном состоянии. Он будет сохранять" -" ваши вещи в холоде, снижая скорость порчи еды и питья." - -#: lang/json/vehicle_part_from_json.py -msgid "icy windshield" -msgstr "ледяное лобовое стекло" - -#. ~ Description for {'str': 'icy windshield'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It is transparent, and can" -" be used to see out of the vehicle." -msgstr "" -"Живой сгусток, пребывающий в супер-охлажденном состоянии. Он прозрачен и " -"может использоваться вместо окон в машине." - -#: lang/json/vehicle_part_from_json.py -msgid "gelacier boat hull" -msgstr "гелевый лодочный корпус" - -#. ~ Description for {'str': 'gelacier boat hull'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It acts as a boat hull." -msgstr "" -"Живой сгусток, пребывающий в сверх-охлажденном состоянии. Используется как " -"лодочный корпус." - -#: lang/json/vehicle_part_from_json.py -msgid "gel retriever" -msgstr "желейный собиратель" - -#. ~ Description for {'str': 'gel retriever'} -#. ~ Description for {'str': 'gray retriever'} -#. ~ Description for {'str': 'ooze retriever'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed to act as a scoop. Use the vehicle controls to turn " -"it on or off. When turned on, it will scoop up any loose items that it " -"travels over, putting them into the vehicle's storage." -msgstr "" -"Живой сгусток в форме совка. Используйте панель управления транспортом для " -"включения или выключения. При включении совок черпает незакрепленные " -"предметы по ходу движения, помещая их в хранилище транспорта." - -#: lang/json/vehicle_part_from_json.py -msgid "gel harness" -msgstr "желейный ремень безопасности" - -#. ~ Description for {'str': 'gel harness'} -#. ~ Description for {'str': 'gray harness'} -#. ~ Description for {'str': 'ooze harness'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, reformed as a belt and attached to a seat." -msgstr "Живой сгусток в форме ремня безопасности, прикрепленного к сиденью." - -#: lang/json/vehicle_part_from_json.py -msgid "capsule (10L)" -msgstr "оболочка (10 л)" - -#. ~ Description for {'str': 'capsule (10L)'} -#. ~ Description for {'str': 'cocoon (30L)'} -#. ~ Description for {'str': 'pod (20L)'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a storage space for holding liquids. If filled " -"with the appropriate fuel for the vehicle's engine, the engine will " -"automatically draw fuel from the tank when the engine is on. If filled with" -" water, you can access the water from a water faucet, if one is installed in" -" the vehicle. You can also use a rubber hose to siphon liquids out of a " -"tank." -msgstr "" -"Живой сгусток в форме контейнера для жидкостей. Если его наполнить " -"подходящим топливом для двигателя автомобиля, двигатель при работе будет " -"автоматически расходовать топливо из бака. Если бак наполнен водой, можно " -"получить воду из крана при его наличии на этом транспорте. Жидкости также " -"можно сливать из бака с помощью резинового шланга." - -#: lang/json/vehicle_part_from_json.py -msgid "gel tank (60L)" -msgstr "желейный бак (60 л)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel reinforcement" -msgstr "желейная броня" - -#. ~ Description for {'str': 'gel reinforcement'} -#. ~ Description for {'str': 'gray reinforcement'} -#. ~ Description for {'str': 'ooze reinforcement'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, acting as armor plate." -msgstr "Живой сгусток, в форме пластины брони." - -#: lang/json/vehicle_part_from_json.py -msgid "gel roof" -msgstr "желейная крыша" - -#. ~ Description for {'str': 'gel roof'} -#. ~ Description for {'str': 'gray roof'} -#. ~ Description for {'str': 'ooze roof'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, placed as roof." -msgstr "Живой сгусток, установленный в виде пола." - -#: lang/json/vehicle_part_from_json.py -msgid "gel seat" -msgstr "желейное сиденье" - -#. ~ Description for {'str': 'gel seat'} -#. ~ Description for {'str': 'gray seat'} -#. ~ Description for {'str': 'ooze seat'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a comfy couch. You can sit here." -msgstr "Живой сгусток, в виде удобного дивана. Вы можете присесть." - -#: lang/json/vehicle_part_from_json.py -msgid "gel receptacle" -msgstr "желейный резервуар" - -#. ~ Description for {'str': 'gel receptacle'} -#. ~ Description for {'str': 'gray receptacle'} -#. ~ Description for {'str': 'ooze receptacle'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, shaped into a cargo space." -msgstr "Живой сгусток, сформированный в грузовой пространство." - -#: lang/json/vehicle_part_from_json.py -msgid "gel pouch (under)" -msgstr "желейный подсумок(внизу)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel walkway" -msgstr "желейный проход" - -#. ~ Description for {'str': 'gel walkway'} -#. ~ Description for {'str': 'gray walkway'} -#. ~ Description for {'str': 'ooze walkway'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a walkway." -msgstr "Живой сгусток в форме прохода." - -#: lang/json/vehicle_part_from_json.py -msgid "gel hatch" -msgstr "желейный люк" - -#. ~ Description for {'str': 'gel hatch'} -#. ~ Description for {'str': 'gray hatch'} -#. ~ Description for {'str': 'ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Has a transparent patch so you can see out" -" of it, even when closed." -msgstr "" -"Живой сгусток, в форме двери. Есть прозрачный участок, так что вы можете " -"смотреть сквозь, даже если дверь закрыта." - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gel hatch" -msgstr "желейный непрозрачный люк" - -#. ~ Description for {'str': 'opaque gel hatch'} -#. ~ Description for {'str': 'opaque gray hatch'} -#. ~ Description for {'str': 'opaque ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Entirely opaque so you can't see through " -"it when closed." -msgstr "" -"Живой сгусток, в форме двери. Полностью непрозрачный, так что ничего не " -"будет видно, если закрыть." - -#: lang/json/vehicle_part_from_json.py -msgid "gray retriever" -msgstr "серый собиратель" - -#: lang/json/vehicle_part_from_json.py -msgid "gray harness" -msgstr "серый ремень безопасности" - -#: lang/json/vehicle_part_from_json.py -msgid "cocoon (30L)" -msgstr "кокон (30 л)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray tank (100L)" -msgstr "серый бак (100 л)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray reinforcement" -msgstr "серая броня" - -#: lang/json/vehicle_part_from_json.py -msgid "gray roof" -msgstr "серая крыша" - -#: lang/json/vehicle_part_from_json.py -msgid "gray seat" -msgstr "серое сиденье" - -#: lang/json/vehicle_part_from_json.py -msgid "gray receptacle" -msgstr "серый резервуар" - -#: lang/json/vehicle_part_from_json.py -msgid "gray pouch (under)" -msgstr "серый подсумок(внизу)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray walkway" -msgstr "серый проход" - -#: lang/json/vehicle_part_from_json.py -msgid "gray hatch" -msgstr "серый люк" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gray hatch" -msgstr "серый непрозрачный люк" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze retriever" -msgstr "слизевой собиратель" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze harness" -msgstr "слизевой ремень безопасности" - -#: lang/json/vehicle_part_from_json.py -msgid "pod (20L)" -msgstr "плод (20 л)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze tank (80L)" -msgstr "слизевой бак (80 л)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze reinforcement" -msgstr "слизевая броня" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze roof" -msgstr "слизевая крыша" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze seat" -msgstr "слизевое сиденье" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze receptacle" -msgstr "слизевой резервуар" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze pouch (under)" -msgstr "слизевой подсумок(внизу)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze walkway" -msgstr "слизевой проход" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze hatch" -msgstr "слизевой люк" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque ooze hatch" -msgstr "слизевой непрозрачный люк" - -#: lang/json/vehicle_part_from_json.py -msgid "amorphous core" -msgstr "аморфное ядро" - -#. ~ Description for {'str': 'amorphous core'} -#: lang/json/vehicle_part_from_json.py -msgid "An amorphous mass, the living heart and brain of a blob vehicle." -msgstr "Аморфная масса, живое сердце и мозг транспорта-сгустка." +msgid "mounted tactical shotgun" +msgstr "тактический дробовик (турель)" #: lang/json/vehicle_part_from_json.py -msgid "snow slider" -msgstr "автомобильная лыжа" +msgid "mounted heavy machinegun" +msgstr "крупнокалиберный пулемёт (турель)" -#. ~ Description for {'str': 'snow slider'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, existing in a super-cooled state. It acts as a wheel." -msgstr "" -"Живой сгусток, пребывающий в супер-охлажденном состоянии. Работает как " -"колесо." +msgid "mounted assault rifle" +msgstr "штурмовая винтовка (турель)" -#. ~ Description for {'str': 'gelatinous wheel'} -#. ~ Description for {'str': 'gray wheel'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob. It acts as a wheel." -msgstr "Живой сгусток. В форме колеса." +msgid "mounted light machine gun" +msgstr "лёгкий пулемёт (турель)" #: lang/json/vehicle_part_from_json.py -msgid "diamond barrier" -msgstr "алмазный барьер" +msgid "mounted automatic grenade launcher" +msgstr "автоматический гранатомёт (турель)" -#. ~ Description for {'str': 'diamond barrier'} #: lang/json/vehicle_part_from_json.py -msgid "A transparent, solid sheet of self-sustaining crystals." -msgstr "Прозрачный, сплошной лист самоподдерживающихся кристаллов." +msgid "bulette plating" +msgstr "броня булитта" -#. ~ Description for {'str': 'diamond frame'} +#. ~ Description for orichalcum frame #: lang/json/vehicle_part_from_json.py msgid "" -"A framework of super-strong crystal. Other vehicle components can be " +"An expensive magical metal framework. Other vehicle components can be " "mounted on it, and it can be attached to other frames to increase the " "vehicle's size." msgstr "" -"Рама из супер-крепкого кристалла. На неё можно устанавливать другие детали, " -"и её можно соединять с другими рамами для увеличения размера транспортного " -"средства." +"Дорогая зачарованная магией металлическая рама. На неё можно устанавливать " +"другие детали, и её можно соединять с другими рамами для увеличения размера " +"транспортного средства." -#. ~ Description for {'str': 'diamond plating'} #: lang/json/vehicle_part_from_json.py -msgid "" -"Transparent crystal armor plate. Will partially protect other components on" -" the same frame from damage." -msgstr "" -"Прозрачная кристальная бронепластина. Частично защищает другие детали на " -"раме от повреждений." +msgid "mana frame" +msgstr "рама из маны" + +#. ~ Description for mana frame +#: lang/json/vehicle_part_from_json.py +msgid "A shape of pure mana that can float and carry items." +msgstr "Мана, принявшая форму, способная парить и переносить предметы." #: lang/json/vitamin_from_json.py msgid "Calcium" @@ -240902,18 +235751,27 @@ msgstr "В %s из %s (пройдено)" #: src/achievement.cpp msgid "Triggered by " -msgstr "Активировано" +msgstr "Активируется " #: src/achievement.cpp #, c-format msgid "%s/%s " msgstr "%s/%s" +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "(дальнейшие требования скрыты)" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "Выполнено %s" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "Провалено: %s" + #: src/achievement.cpp msgid "" "\n" @@ -240962,10 +235820,6 @@ msgstr "Разное" msgid "Debug" msgstr "Отладка" -#: src/action.cpp -msgid "Back" -msgstr "Назад" - #: src/action.cpp msgid "Actions" msgstr "Действия" @@ -240980,6 +235834,30 @@ msgstr "ГЛАВНОЕ МЕНЮ" msgid "%s (Direction button)" msgstr "%s (укажите направление)" +#. ~ Sound of a shovel digging a pit at work! +#. ~ Sound of a shovel filling a pit or mound at work! +#: src/activity_actor.cpp src/activity_handlers.cpp +msgid "hsh!" +msgstr "хч!" + +#: src/activity_actor.cpp +msgid "Something crawls out of the coffin!" +msgstr "Что-то лезет из гроба!" + +#: src/activity_actor.cpp +msgid "You finish exhuming a grave." +msgstr "Вы заканчиваете раскапывать могилу." + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging the %s." +msgstr "Вы закончили копать (%s)." + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging up %s." +msgstr "Вы закончили выкапывать (%s)." + #: src/activity_actor.cpp msgid "Use electrohack?" msgstr "Использовать электрохак?" @@ -241004,8 +235882,8 @@ msgstr "Ваша энергия истощена!" msgid "You cannot hack this." msgstr "Вы не можете это взломать." -#: src/activity_actor.cpp src/activity_handlers.cpp src/computer_session.cpp -#: src/computer_session.cpp src/iuse.cpp src/map.cpp +#: src/activity_actor.cpp src/computer_session.cpp src/computer_session.cpp +#: src/iuse.cpp src/map.cpp msgid "an alarm sound!" msgstr "звук сигнализации!" @@ -241019,7 +235897,7 @@ msgstr "Вы взломали терминал и перевели всё дос #: src/activity_actor.cpp msgid "Glug Glug Glug Glug Glug Glug Glug Glug Glug" -msgstr "бульк бульк бульк бульк бульк бульк бульк бульк бульк" +msgstr "бульк бульк бульк бульк бульк бульк бульк бульк бульк" #: src/activity_actor.cpp msgid "The door on the safe swings open." @@ -241033,10 +235911,122 @@ msgstr "Вы активировали панель!" msgid "The nearby doors unlock." msgstr "Ближайшие двери открываются." +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "Вы находите провод, который запустит двигатель." + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "Вы находите провод, кажется, это тот, что нужен." + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "Красный провод всегда запускает двигатель, не так ли?" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "Методом исключения вы находите провод, который запустит двигатель." + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "Ваше движение помешало автоматическому подбору предметов." +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "С приятным щелчком замок на воротах ограды открывается." + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "С приятным щелчком замок на двери открывается." + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "Дверь распахнулась…" + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "Ваша неуклюжая попытка вскрыть заблокировала замок!" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "" +"Замок сопротивляется вашим попыткам взломать его и ломает ваш инструмент." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "" +"Замок сопротивляется вашим попыткам взломать его и повреждает ваш " +"инструмент." + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "Замок сопротивляется вашим попыткам взломать его." + +#: src/activity_actor.cpp src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "Во время езды верхом этого делать нельзя." + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "Поблизости нет замков для взлома." + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "Где использовать отмычку?" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "Вы поковыряли в носу и ваши пазухи распахнулись." + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" +"Вы можете подковырнуть друзей\n" +"поковырять у себя в носу, но вы не\n" +"можете ковырять в носу у друзей." + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "Дверь не заперта." + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "Это нельзя взломать." + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "" +"Вы чувствуете, что уже должны были уснуть, но почему-то всё ещё бодрствуете." + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "Вы ворочаетесь и крутитесь…" + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "Вы пытаетесь уснуть, но не можете." + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "Сон никак не идёт, продолжить пытаться уснуть?" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "Прекратить попытки уснуть и подняться." + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "Продолжить пытаться уснуть." + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "Продолжить пытаться уснуть и больше не спрашивать." + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -241059,7 +236049,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." @@ -241110,11 +236100,11 @@ msgstr "" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." msgstr "" "Для полной разделки такой большой туши вам нужна либо стойка для разделки, " -"либо висящий мясницкий крюк, либо длинная верёвка в инвентаре и дерево " +"либо висящий мясницкий крюк, кран либо длинная верёвка в инвентаре и дерево " "поблизости, чтобы подвесить тушу." #: src/activity_handlers.cpp @@ -241189,7 +236179,7 @@ msgstr "Вы собрали всё что могли с этой туши, но msgid "" "You notice some strange organs, perhaps harvestable via careful dissection." msgstr "" -"Вы замечаете какие-то странные органы, возможно, их удастся извлечь при " +"Вы замечаете какие-то странные органы, возможно, их удалось бы извлечь при " "аккуратном вскрытии." #: src/activity_handlers.cpp @@ -241288,7 +236278,7 @@ msgstr "" #: src/activity_handlers.cpp #, c-format msgid "You discover a %1$s in the %2$s!" -msgstr "Внутри %2$s вы обнаружили %1$s!" +msgstr "Внутри останков (%2$s) вы обнаружили что-то: %1$s!" #: src/activity_handlers.cpp #, c-format @@ -241302,7 +236292,7 @@ msgstr "" #: src/activity_handlers.cpp #, c-format msgid "You finish butchering the %s." -msgstr "Вы закончили разделывать %s." +msgstr "Вы закончили разделывать тушу (%s)." #: src/activity_handlers.cpp msgid "" @@ -241350,37 +236340,37 @@ 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 msgid "You hack the %s apart." -msgstr "Вы разрубаете %s на части." +msgstr "Вы разрубаете тушу (%s) на части." #: src/activity_handlers.cpp #, c-format msgid "You lop the limbs off the %s." -msgstr "Вы отрубаете конечности %s." +msgstr "Вы отрубаете конечности туши (%s)." #: src/activity_handlers.cpp #, c-format msgid "You cleave the %s into pieces." -msgstr "Вы рубите %s на куски." +msgstr "Вы рубите тушу (%s) на куски." #: src/activity_handlers.cpp #, c-format @@ -241390,12 +236380,12 @@ msgstr "Вы закончили вскрывать тело (%s)." #: src/activity_handlers.cpp #, c-format msgid "The %s's udders run dry." -msgstr "Вы полностью выдоили %s." +msgstr "Вы полностью выдоили животное (%s)." #: src/activity_handlers.cpp #, c-format msgid "You pour %1$s onto the ground." -msgstr "Вы выливаете %1$s на землю." +msgstr "Вы выливаете жидкость (%1$s) на землю." #: src/activity_handlers.cpp #, c-format @@ -241405,7 +236395,7 @@ 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 #, c-format @@ -241419,61 +236409,12 @@ msgstr "Вы ничего не нашли." #: src/activity_handlers.cpp #, c-format msgid "The %s runs out of batteries." -msgstr "В %s сели батарейки." - -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "Этот провод запустит двигатель." - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "Этот провод, вероятно, запустит двигатель." - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "Методом исключения, этот провод запустит двигатель." - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "Красный провод всегда запускает двигатель, не так ли?" +msgstr "%s больше не работает - батарейки разряжены." #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "Вы закончили собирать добычу." -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "Нет трупа, из которого можно сделать зомби-раба!" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "" -"Вы разрезаете мышцы и сухожилия, а также удаляете части тела до тех пор, " -"пока не становитесь уверены, что зомби не будет атаковать, когда он снова " -"встанет." - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie" -" won't be able to attack when it reanimates." -msgstr "" -"Вы отрубаете у трупа несколько частей тела. Вы думаете, что зомби не сможет " -"атаковать, когда он снова встанет." - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "Вы очень сильно порезали труп, он полностью превращён в труху." - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "" -"Вы разрезали труп в попытке лишить его возможности атаковать, но думаете, " -"что делаете что-то неправильно." - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -241510,25 +236451,23 @@ msgstr[3] " закончил разделку трупа." #: 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 manage to loosen some debris and make your %s somewhat operational." -msgstr "" -"У вас получается немного разгрести завалы, и ваш %s почти в рабочем " -"состоянии." +msgstr "У вас получается немного сбить грязь, и %s почти в рабочем состоянии." #: src/activity_handlers.cpp #, c-format msgid "You insert one %2$s into the %1$s." -msgstr "Вы вставили один %2$s в %1$s." +msgstr "Вы вставили один заряд (%2$s) в предмет (%1$s). " #: src/activity_handlers.cpp #, c-format @@ -241556,22 +236495,22 @@ msgstr "" #: src/activity_handlers.cpp #, c-format msgid "You learn a little about the spell: %s" -msgstr "Вы узнали немного про %s" +msgstr "Вы узнали немного про заклинание: %s" #: src/activity_handlers.cpp src/character_martial_arts.cpp #, c-format msgid "You learn %s." -msgstr "Вы изучили %s." +msgstr "Вы изучили: %s." #: src/activity_handlers.cpp #, c-format msgid "You finish training %s to level %d." -msgstr "Вы закончили тренировать %s до уровня %d." +msgstr "Вы закончили тренировать навык (%s) до уровня %d." #: src/activity_handlers.cpp #, c-format msgid "You get some training in %s." -msgstr "Вы немного тренируетесь в %s." +msgstr "Вы немного тренируетесь в навыке (%s)." #: src/activity_handlers.cpp msgid "You've charged the battery completely." @@ -241638,37 +236577,6 @@ msgstr "«шшшшшшшшшш!»" msgid "With a satisfying click, the lock on the safe opens!" msgstr "С приятным щелчком сейфовый замок открывается!" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "С приятным щелчком замок на воротах ограды открывается." - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "С приятным щелчком замок на двери открывается." - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "Дверь распахнулась…" - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "Ваша неуклюжая попытка вскрыть заблокировала замок!" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "" -"Замок сопротивляется вашим попыткам взломать его, и ломает ваш инструмент." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "" -"Замок сопротивляется вашим попыткам взломать его и повреждает ваш " -"инструмент." - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "Замок сопротивляется вашим попыткам взломать его." - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "Повторить один раз" @@ -241692,7 +236600,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." @@ -241701,7 +236609,7 @@ msgstr "Вы больше ничему не научитесь при помощ #: src/activity_handlers.cpp #, c-format msgid "%s %s\n" -msgstr "%s %s\n" +msgstr "%s предмета (%s)\n" #: src/activity_handlers.cpp #, c-format @@ -241726,7 +236634,7 @@ msgstr "Шанс повреждения: %.1f%%" #: src/activity_handlers.cpp #, c-format msgid "Your %s is already fully repaired." -msgstr "%s уже полностью починен." +msgstr "Предмет (%s) уже полностью починен." #: src/activity_handlers.cpp msgid "You defrost the food, but don't heat it up, since you enjoy it cold." @@ -241744,32 +236652,35 @@ msgstr "Вы разогреваете пищу." #: src/activity_handlers.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 attached the %1$s to your %2$s." -msgstr "Вы успешно присоединили %1$s к %2$s." +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." @@ -241790,7 +236701,7 @@ msgstr "Вы не можете достичь этого пункта назна #: src/activity_handlers.cpp src/game.cpp #, c-format msgid "You caught a %s." -msgstr "Вы поймали %s." +msgstr "Вы поймали рыбу (%s)." #: src/activity_handlers.cpp msgid "You feel a tug on your line!" @@ -241800,6 +236711,10 @@ msgstr "Клюёт!" msgid "You finish fishing" msgstr "Вы закончили рыбачить." +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "Cлишком темно, чтобы читать!" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "Вы закончили читать." @@ -241826,26 +236741,6 @@ msgstr "Вы заканчиваете ожидание и чувствуете msgid "%s finishes chatting with you." msgstr "%s заканчивает болтать с вами." -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "Вы ворочаетесь и крутитесь…" - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "Сон никак не идёт, продолжить пытаться уснуть?" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "Прекратить попытки уснуть и подняться." - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "Продолжить пытаться уснуть." - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "Продолжить пытаться уснуть и больше не спрашивать." - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "Автодок терпит сокрушительное фиаско." @@ -241856,27 +236751,27 @@ msgstr "Ошибка автодока серьёзно вам вредит." #: src/activity_handlers.cpp msgid "The Autodoc's failure damages greatly." -msgstr "Ошибка автодока серьёзно вредит ." +msgstr "Ошибка автодока серьёзно вредит пациенту ()." #: src/activity_handlers.cpp #, c-format msgid "Your %s is ripped open." -msgstr "Вам вскрыли %s." +msgstr "Вам вскрыли часть тела (%s)." #: src/activity_handlers.cpp #, c-format msgid "'s %s is ripped open." -msgstr " вскрыли %s." +msgstr "Пациенту () вскрыли часть тела (%s)." #: src/activity_handlers.cpp #, c-format msgid "The Autodoc is meticulously cutting your %s open." -msgstr "Автодок тщательно вскрывает вам %s." +msgstr "Автодок тщательно вскрывает вам часть тела (%s)." #: src/activity_handlers.cpp #, c-format msgid "The Autodoc is meticulously cutting 's %s open." -msgstr "Автодок тщательно вскрывает %s." +msgstr "Автодок тщательно вскрывает пациенту () часть тела (%s)." #: src/activity_handlers.cpp msgid "The Autodoc is meticulously cutting you open." @@ -241884,7 +236779,7 @@ msgstr "Автодок тщательно вас вскрывает." #: src/activity_handlers.cpp msgid "The Autodoc is meticulously cutting open." -msgstr "Автодок тщательно вскрывает ." +msgstr "Автодок тщательно вскрывает пациента ()." #: src/activity_handlers.cpp msgid "The Autodoc attempts to carefully extract the bionic." @@ -241893,7 +236788,7 @@ msgstr "Автодок пытается аккуратно извлечь био #: src/activity_handlers.cpp #, c-format msgid "Tried to uninstall %s, but you don't have this bionic installed." -msgstr "Попытка удалить %s, но у вас нет такой бионики." +msgstr "Попытка удалить КБМ (%s), но у вас нет такой бионики." #: src/activity_handlers.cpp msgid "The Autodoc attempts to carefully insert the bionic." @@ -241902,17 +236797,17 @@ msgstr "Автодок пытается аккуратно вставить би #: src/activity_handlers.cpp #, c-format msgid "%s is no a valid bionic_id" -msgstr "У %s нет подходящего bionic_id" +msgstr "У КБМ (%s) нет подходящего bionic_id" #: src/activity_handlers.cpp #, c-format msgid "The Autodoc is stitching your %s back up." -msgstr "Автодок накладывает вам швы на %s." +msgstr "Автодок накладывает вам швы на часть тела (%s)." #: src/activity_handlers.cpp #, c-format msgid "The Autodoc is stitching 's %s back up." -msgstr "Автодок накладывает швы на %s." +msgstr "Автодок накладывает пациенту () швы на часть тела (%s)." #: src/activity_handlers.cpp msgid "The Autodoc is stitching you back up." @@ -241920,7 +236815,7 @@ msgstr "Автодок накладывает на вас швы." #: src/activity_handlers.cpp msgid "The Autodoc is stitching back up." -msgstr "Автодок накладывает швы на ." +msgstr "Автодок накладывает швы на пациента ()." #: src/activity_handlers.cpp msgid "" @@ -241936,11 +236831,7 @@ msgid "" "actually stitching 's wounds." msgstr "" "Автодок беспорядочно дёргается в завершении программы и не до конца зашивает" -" раны ." - -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "Вы пытаетесь поспать, но не можете…" +" раны пациента ()." #: src/activity_handlers.cpp msgid "" @@ -242010,18 +236901,21 @@ msgid "" " no longer has the in progress craft in their possession. " " stops crafting." msgstr "" -"У больше нет изготавливаемого предмета. прекращает " +" больше не имеет изготавливаемого предмета. прекращает " "работу." #: src/activity_handlers.cpp #, c-format msgid "There is nothing left of the %s to craft from." -msgstr "Не осталось %s, чтобы собирать." +msgstr "" +"Ничего не осталось от предмета (%s), чтобы который был в процессе " +"изготовления." #: src/activity_handlers.cpp #, c-format msgid "There is nothing left of the %s was crafting." -msgstr "Ничего не осталось от %s, который пытался создать." +msgstr "" +"Ничего не осталось от предмета (%s), который пытался создать." #: src/activity_handlers.cpp msgid "You feel much better." @@ -242072,12 +236966,12 @@ msgstr "Вы закончили рубить ствол." #: src/activity_handlers.cpp #, c-format msgid "You produce %d planks." -msgstr "Вы получили %d досок." +msgstr "Вы получили доски (%d) ." #: src/activity_handlers.cpp #, c-format msgid "You produce %d splinters." -msgstr "Вы получили %d щепок." +msgstr "Вы получили щепки (%d) ." #: src/activity_handlers.cpp msgid "You waste a lot of the wood." @@ -242096,39 +236990,15 @@ msgstr "Вы закончили работать с отбойником." msgid " finishes drilling." msgstr " заканчивает сверление." -#. ~ Sound of a shovel digging a pit at work! -#. ~ Sound of a shovel filling a pit or mound at work! -#: src/activity_handlers.cpp -msgid "hsh!" -msgstr "хч!" - -#: src/activity_handlers.cpp -msgid "Something crawls out of the coffin!" -msgstr "Что-то лезет из гроба!" - -#: src/activity_handlers.cpp -msgid "You finish exhuming a grave." -msgstr "Вы заканчиваете раскапывать могилу." - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging the %s." -msgstr "Вы закончили копать %s." - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging up %s." -msgstr "Вы закончили копать %s." - #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." -msgstr "Вы закончили закапывать %s." +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." @@ -242151,7 +237021,7 @@ msgstr "Вы разряжаете %s." #: 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." @@ -242169,14 +237039,14 @@ msgstr "Вы запускаете процесс подмены сигнала #: src/activity_handlers.cpp #, c-format msgid "You successfully override the %s's IFF protocols!" -msgstr "Вы успешно перезаписали IFF протокол у %s!" +msgstr "Вы успешно перезаписали IFF протокол у робота (%s)!" #: src/activity_handlers.cpp #, c-format msgid "The %s short circuits as you attempt to reprogram it!" msgstr "" -"В %s случается короткое замыкание, когда вы пытались перепрограммировать " -"его!" +"В роботе (%s) случается короткое замыкание, когда вы пытались " +"перепрограммировать его!" #: src/activity_handlers.cpp msgid "…and turns friendly!" @@ -242225,7 +237095,7 @@ msgstr "Вы получили %i опыта. %i всего." #: src/activity_handlers.cpp msgid "cast a spell" -msgstr "прочитать заклинание" +msgstr "прочитано заклинание" #: src/activity_handlers.cpp msgid "" @@ -242253,19 +237123,19 @@ msgstr "Устройство копирует данные из бионичес #, c-format msgid "You put your %1$s in the %2$s's %3$s." msgid_plural "You put your %1$s in the %2$s's %3$s." -msgstr[0] "Вы убираете %1$s в %3$s машины (%2$s)." -msgstr[1] "Вы убираете %1$s в %3$s машины (%2$s)." -msgstr[2] "Вы убираете %1$s в %3$s машины (%2$s)." +msgstr[0] "Вы убираете %1$s в %3$s транспорта (%2$s)." +msgstr[1] "Вы убираете %1$s в %3$s транспорта (%2$s)." +msgstr[2] "Вы убираете %1$s в %3$s транспорта (%2$s)." msgstr[3] "Вы убираете %1$s в %3$s машины (%2$s)." #: src/activity_item_handling.cpp #, c-format msgid " puts their %1$s in the %2$s's %3$s." msgid_plural " puts their %1$s in the %2$s's %3$s." -msgstr[0] " кладёт предмет (%1$s) в %3$s транспорта (%2$s)." -msgstr[1] " кладёт предмет (%1$s) в %3$s транспорта (%2$s)." -msgstr[2] " кладёт предмет (%1$s) в %3$s транспорта (%2$s)." -msgstr[3] " кладёт предмет (%1$s) в %3$s транспорта (%2$s)." +msgstr[0] " кладёт %1$s в %3$s транспорта (%2$s)." +msgstr[1] " кладёт %1$s в %3$s транспорта (%2$s)." +msgstr[2] " кладёт %1$s в %3$s транспорта (%2$s)." +msgstr[3] " кладёт %1$s в %3$s транспорта (%2$s)." #: src/activity_item_handling.cpp #, c-format @@ -242293,24 +237163,27 @@ msgstr[3] "" msgid "The %s is too heavy to carry, so you drop it into the %s's %s." msgid_plural "" "The %s are too heavy to carry, so you drop them into the %s's %s." -msgstr[0] "%s слишком тяжелый, чтобы нести, вы бросаете его на %s %s." -msgstr[1] "%s слишком тяжелы, чтобы нести, вы бросаете их на %s %s." -msgstr[2] "%s слишком тяжелые, чтобы нести, вы бросаете их на %s %s." -msgstr[3] "%s слишком тяжёлый, чтобы нести, вы бросаете его на %s %s." +msgstr[0] "%s слишком тяжелый, чтобы нести, вы бросаете в транспорт (%s), %s." +msgstr[1] "" +"%s слишком тяжелые, чтобы нести, вы бросаете их в транспорт (%s), %s." +msgstr[2] "" +"%s слишком тяжелые, чтобы нести, вы бросаете их в транспорт (%s), %s." +msgstr[3] "" +"%s слишком тяжелые, чтобы нести, вы бросаете их в транспорт (%s), %s." #: src/activity_item_handling.cpp #, c-format msgid "Your %s tumbles into the %s's %s." msgid_plural "Your %s tumble into the %s's %s." -msgstr[0] "Ваш %s падает в %s %s." -msgstr[1] "Ваши %s падают в %s %s." -msgstr[2] "Ваши %s падают в %s %s." -msgstr[3] "Ваши %s падают в %s %s." +msgstr[0] "Ваш %s падает в транспорт (%s), контейнер (%s)." +msgstr[1] "Ваши %s падают в транспорт (%s), контейнер (%s)." +msgstr[2] "Ваши %s падают в транспорт (%s), контейнер (%s)." +msgstr[3] "Ваши %s падают в транспорт (%s), контейнер (%s)." #: src/activity_item_handling.cpp #, c-format msgid "You put several items in the %1$s's %2$s." -msgstr "Вы убираете несколько вещей в %2$s (%1$s)." +msgstr "Вы убираете несколько вещей в контейнер (%2$s) транспорта (%1$s)." #: src/activity_item_handling.cpp #, c-format @@ -242320,80 +237193,89 @@ msgstr " убирает несколько вещей в %2$s (%1$s)." #: src/activity_item_handling.cpp #, c-format msgid "Some items tumble into the %1$s's %2$s." -msgstr "Несколько предметов падают в %1$s %2$s." +msgstr "Несколько предметов падают в контейнер (%2$s) транспорта (%1$s)." #: src/activity_item_handling.cpp #, c-format msgid "The %s is full, so something fell to the %s." msgid_plural "The %s is full, so some items fell to the %s." -msgstr[0] "%s полон, так что что-то выпадает на %s." -msgstr[1] "%s полон, так что несколько вещей выпадают на %s." -msgstr[2] "%s полон, так что несколько вещей выпадают на %s." -msgstr[3] "%s полон, так что что-то выпадает на %s." +msgstr[0] "Контейнер (%s) полон, так что что-то выпадает наружу (%s)." +msgstr[1] "Контейнер (%s) полон, так что что-то выпадает наружу (%s)." +msgstr[2] "Контейнер (%s) полон, так что что-то выпадает наружу (%s)." +msgstr[3] "Контейнер (%s) полон, так что что-то выпадает наружу (%s)." #: src/activity_item_handling.cpp #, c-format msgid "The %s is full, so it fell to the %s." msgid_plural "The %s is full, so they fell to the %s." -msgstr[0] "%s полон, так что что-то выпадает на %s." -msgstr[1] "%s полон, так что что-то выпадает на %s." -msgstr[2] "%s полон, так что что-то выпадает на %s." -msgstr[3] "%s полон, так что что-то выпадает на %s." +msgstr[0] "Контейнер (%s) полон, так что что-то выпадает наружу (%s)." +msgstr[1] "Контейнер (%s) полон, так что что-то выпадает наружу (%s)." +msgstr[2] "Контейнер (%s) полон, так что что-то выпадает наружу (%s)." +msgstr[3] "Контейнер (%s) полон, так что что-то выпадает наружу (%s)." #: src/activity_item_handling.cpp #, c-format msgid "%1$s did not fit and fell to the %2$s." -msgstr "%1$s не влез и упал на %2$s." +msgstr "Предмет (%1$s) не влез и выпал, теперь он в новом месте (%2$s)." #: src/activity_item_handling.cpp #, c-format msgid "%1$s is too heavy and fell to the %2$s." -msgstr "%1$s слишком тяжёлый и падает на %2$s." +msgstr "" +"Предмет (%1$s) слишком тяжелый, он выпал, теперь он в новом месте (%2$s)." #: src/activity_item_handling.cpp #, c-format msgid "You drop your %1$s on the %2$s." msgid_plural "You drop your %1$s on the %2$s." -msgstr[0] "Вы выкладываете %1$s на %2$s." -msgstr[1] "Вы выкладываете %1$s на %2$s." -msgstr[2] "Вы выкладываете %1$s на %2$s." -msgstr[3] "Вы выкладываете %1$s на %2$s." +msgstr[0] "Вы выкладываете предмет (%1$s) в новое место (%2$s)." +msgstr[1] "Вы выкладываете предметы (%1$s) в новое место (%2$s)." +msgstr[2] "Вы выкладываете предметы (%1$s) в новое место (%2$s)." +msgstr[3] "Вы выкладываете предметы (%1$s) в новое место (%2$s)." #: src/activity_item_handling.cpp #, c-format msgid " drops their %1$s on the %2$s." msgid_plural " drops their %1$s on the %2$s." -msgstr[0] " бросает предмет (%1$s) в %2$s." -msgstr[1] " бросает предметы (%1$s) в %2$s." -msgstr[2] " бросает предметы (%1$s) в %2$s." -msgstr[3] " бросает предмет (%1$s) в %2$s." +msgstr[0] " кладёт предметы (%1$s) в новое место (%2$s)." +msgstr[1] " кладёт предметы (%1$s) в новое место (%2$s)." +msgstr[2] " кладёт предметы (%1$s) в новое место (%2$s)." +msgstr[3] " кладёт предметы (%1$s) в новое место (%2$s)." #: src/activity_item_handling.cpp #, c-format msgid "You put your %1$s in the %2$s." msgid_plural "You put your %1$s in the %2$s." -msgstr[0] "Вы убираете %1$s в %2$s." -msgstr[1] "Вы убираете %1$s в %2$s." -msgstr[2] "Вы убираете %1$s в %2$s." -msgstr[3] "Вы убираете %1$s в %2$s." +msgstr[0] "Вы убираете предмет (%1$s) в другое место (%2$s)." +msgstr[1] "Вы убираете предметы (%1$s) в другое место (%2$s)." +msgstr[2] "Вы убираете предметы (%1$s) в другое место (%2$s)." +msgstr[3] "Вы убираете предметы (%1$s) в другое место (%2$s)." #: src/activity_item_handling.cpp #, c-format msgid " puts their %1$s in the %2$s." msgid_plural " puts their %1$s in the %2$s." -msgstr[0] " кладёт предмет (%1$s) в %2$s." -msgstr[1] " кладёт предмет (%1$s) в %2$s." -msgstr[2] " кладёт предмет (%1$s) в %2$s." -msgstr[3] " кладёт предмет (%1$s) в %2$s." +msgstr[0] " кладёт предмет (%1$s) в новое место (%2$s)." +msgstr[1] " кладёт предметы (%1$s) в новое место (%2$s)." +msgstr[2] " кладёт предметы (%1$s) в новое место (%2$s)." +msgstr[3] " кладёт предмет (%1$s) в новое место (%2$s)." #: src/activity_item_handling.cpp #, 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[1] "В инвентаре нет свободного места для %s, поэтому вы это выбросили." -msgstr[2] "В инвентаре нет свободного места для %s, поэтому вы это выбросили." -msgstr[3] "В инвентаре нет свободного места для %s, поэтому вы это выбросили." +msgstr[0] "" +"В инвентаре нет свободного места для предмета (%s), поэтому вы это " +"выбросили." +msgstr[1] "" +"В инвентаре нет свободного места для предметов (%s), поэтому вы это " +"выбросили." +msgstr[2] "" +"В инвентаре нет свободного места для предметов (%s), поэтому вы это " +"выбросили." +msgstr[3] "" +"В инвентаре нет свободного места для предметов (%s), поэтому вы это " +"выбросили." #: src/activity_item_handling.cpp #, c-format @@ -242408,47 +237290,46 @@ msgstr[3] "%s слишком тяжелы, чтобы нести, так что #, c-format msgid "Your %1$s tumbles to the %2$s." msgid_plural "Your %1$s tumble to the %2$s." -msgstr[0] "Ваш %1$s падает на %2$s." -msgstr[1] "Ваши %1$s падают на %2$s." -msgstr[2] "Ваши %1$s падают на %2$s." -msgstr[3] "Ваш %1$s падает на %2$s." +msgstr[0] "Предмет (%1$s) выпал в другое место (%2$s)." +msgstr[1] "Предметы (%1$s) выпали в другое место (%2$s)." +msgstr[2] "Предметы (%1$s) выпали в другое место (%2$s)." +msgstr[3] "Предметы (%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 msgid "You need %1$i charges of water or clean water to wash these items." msgstr "" -"Вам понадобится %1$i единиц воды или чистой воды, чтобы отстирать эти вещи." +"Вам понадобится вода или чистая вода (%1$i), чтобы отстирать эти вещи." #: src/activity_item_handling.cpp src/iuse.cpp #, c-format msgid "You need %1$i charges of cleansing agent to wash these items." -msgstr "" -"Вам понадобится %1$i зарядов чистящего средства, чтобы постирать эти вещи." +msgstr "Вам понадобится чистящее средство (%1$i), чтобы постирать эти вещи." #: src/activity_item_handling.cpp msgid "You washed your items." @@ -242461,7 +237342,7 @@ msgstr "Питомец ушёл куда-то в другое место." #: src/activity_item_handling.cpp src/npcmove.cpp #, c-format msgid "%1$s picks up a %2$s." -msgstr "%1$s подбирает %2$s." +msgstr "%1$s подбирает предмет (%2$s)." #: src/activity_item_handling.cpp src/npcmove.cpp #, c-format @@ -242519,7 +237400,7 @@ msgstr "Вам нужен никотин." #: src/addiction.cpp msgid "You could use some nicotine." -msgstr "Было бы неплохо получить никотин." +msgstr "Было бы неплохо получить дозу никотина." #: src/addiction.cpp msgid "You want some caffeine." @@ -242527,7 +237408,7 @@ msgstr "Вам хочется кофеина." #: src/addiction.cpp msgid "Your hands start shaking… you need it bad!" -msgstr "Ваши руки начинают трястись… Трубы горят!" +msgstr "Ваши руки начинают трястись… Ну очень надо!" #: src/addiction.cpp msgid "You could use a drink." @@ -242535,11 +237416,11 @@ msgstr "Вам хочется выпить спиртного." #: src/addiction.cpp msgid "You could use some diazepam." -msgstr "Вы могли бы принять диазепам." +msgstr "Вы бы не повредила таблетка диазепама." #: src/addiction.cpp msgid "Your hands start shaking… you need a drink bad!" -msgstr "Ваши руки начинают трястись… Ну хоть капельку прибухнуть!" +msgstr "Ваши руки начинают трястись… Так хочется выпить!" #: src/addiction.cpp msgid "You're shaking… you need some diazepam!" @@ -242551,19 +237432,20 @@ msgstr "Ваши руки начинают трястись… Вы нуждае #: src/addiction.cpp msgid "You feel anxious. You need your painkillers!" -msgstr "У вас чувство тревоги. Вам нужно болеутоляющее!" +msgstr "У вас приступ тревожности. Вам нужно болеутоляющее!" #: src/addiction.cpp msgid "You feel depressed. Speed would help." -msgstr "Вы чувствуете себя подавленным. Принятие амфетаминов поможет." +msgstr "Вы чувствуете себя подавленным. Немного мета вас бы взбодрило." #: src/addiction.cpp msgid "Your hands start shaking… you need a pick-me-up." -msgstr "Ваши руки начинают трястись… Вам нужно что-нибудь тонизирующее." +msgstr "" +"Ваши руки начинают трястись… Вам нужно что-нибудь что-нибудь для рывка." #: src/addiction.cpp msgid "You stop suddenly, feeling bewildered." -msgstr "Вы резко останавливаетесь, ощутив замешательство." +msgstr "Вы резко останавливаетесь, впав в замешательство." #: src/addiction.cpp msgid "You feel like you need a bump." @@ -242595,7 +237477,7 @@ msgstr "Вы не принимали мутаген достаточно дол #: src/addiction.cpp msgid "You could use some new parts…" -msgstr "Вы бы могли использовать новые части тела…" +msgstr "Вы бы пригодились новые части тела…" #: src/addiction.cpp msgid "You daydream about luscious pink berries as big as your fist." @@ -242671,7 +237553,7 @@ msgstr "Зависимость от снотворного" #: src/addiction.cpp msgid "Opiate Withdrawal" -msgstr "Отходняк от Опиума" +msgstr "Отходняк от опиатов" #: src/addiction.cpp msgid "Amphetamine Withdrawal" @@ -242679,19 +237561,19 @@ msgstr "Отходняк от амфетаминов" #: src/addiction.cpp msgid "Cocaine Withdrawal" -msgstr "Отходняк от Кокаина" +msgstr "Отходняк от кокаина" #: src/addiction.cpp msgid "Crack Cocaine Withdrawal" -msgstr "Отходняк от Крэк-кокаина" +msgstr "Отходняк от крэка" #: src/addiction.cpp msgid "Mutation Withdrawal" -msgstr "Отходняк от мутации" +msgstr "Жажда мутаций" #: src/addiction.cpp msgid "Diazepam Withdrawal" -msgstr "Отходняк от Диазепама" +msgstr "Отходняк от диазепама" #: src/addiction.cpp msgid "Marloss Longing" @@ -242805,10 +237687,6 @@ msgstr "ЮВ" msgid "South East" msgstr "Юго-восток" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "З" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "Запад" @@ -242887,7 +237765,7 @@ msgstr "Надетые вещи" #: src/advanced_inv.cpp src/newcharacter.cpp msgid "name" -msgstr "название" +msgstr "по названию" #: src/advanced_inv.cpp msgid "weight" @@ -242899,27 +237777,27 @@ msgstr "по объёму" #: src/advanced_inv.cpp msgid "charges" -msgstr "заряды" +msgstr "по зарядам" #: src/advanced_inv.cpp msgid "category" -msgstr "категория" +msgstr "по категориям" #: src/advanced_inv.cpp src/bonuses.cpp src/effect.cpp src/effect.cpp msgid "damage" -msgstr "урон" +msgstr "по урону" #: src/advanced_inv.cpp msgid "ammo/charge type" -msgstr "тип боеприпасов/зарядов" +msgstr "по типу боеприпасов/зарядов" #: src/advanced_inv.cpp msgid "spoilage" -msgstr "испорченность" +msgstr "по испорченности" #: src/advanced_inv.cpp msgid "barter value" -msgstr "стоимость обмена" +msgstr "по стоимости при обмене" #. ~ Items list header (length type 1). Table fields length without spaces: #. amt - 4, weight - 5, vol - 4. @@ -243000,13 +237878,18 @@ msgstr "<{%s] назначенные клавиши >" msgid "Source area is the same as destination (%s)." msgstr "Исходная зона та же, что и зона назначения (%s)." +#: src/advanced_inv.cpp +#, c-format +msgid "You have no space for %s" +msgstr "Для этого (%s) не хватает места" + #: src/advanced_inv.cpp msgid "Default layout was saved." msgstr "Схема по умолчанию сохранена." #: src/advanced_inv.cpp msgid "No vehicle storage space there!" -msgstr "Тут нет багажника транспорта." +msgstr "Тут нет багажного отсека транспорта." #: src/advanced_inv.cpp msgid "Select destination" @@ -243028,18 +237911,13 @@ msgstr "Контейнер-источник пуст." msgid "You can unload only liquids into target container." msgstr "В данный контейнер можно выгружать только жидкости." -#: src/advanced_inv.cpp -msgid "You can't partially unload liquids from unsealable container." -msgstr "" -"Вы не можете выгружать жидкости частями из незакрывающихся контейнеров." - #: src/advanced_inv.cpp msgid "You can't pick up a liquid." msgstr "Вы не можете подобрать жидкость." #: src/advanced_inv.cpp msgid "Destination area is full. Remove some items first." -msgstr "Место назначения переполнено. Сначала расчистите его." +msgstr "Место назначения переполнено. Сначала освободите его." #: src/advanced_inv.cpp msgid "Destination area has too many items. Remove some first." @@ -243131,6 +238009,10 @@ msgstr "привязан к вам" msgid "an aura around you" msgstr "в ауре вокруг вас" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "Неожиданный слой" + #: src/armor_layers.cpp #, c-format msgid "" @@ -243140,17 +238022,17 @@ msgid_plural "" "Wearing multiple items %s on your %s is adding " "encumbrance there." msgstr[0] "" -"Ношение нескольких вещей %s на вашем %s добавляет " +"Ношение нескольких вещей %s здесь (%s) добавляет " "ему скованности." msgstr[1] "" -"Ношение нескольких вещей %s на вашей %s добавляет " -"ей скованности." +"Ношение нескольких вещей %s здесь (%s) добавляет " +"ему скованности." msgstr[2] "" -"Ношение нескольких вещей %s на вашей %s добавляет " -"ей скованности." +"Ношение нескольких вещей %s здесь (%s) добавляет " +"ему скованности." msgstr[3] "" -"Ношение нескольких вещей %s на ваших %s добавляет " -"им скованности." +"Ношение нескольких вещей %s здесь (%s) добавляет " +"ему скованности." #: src/armor_layers.cpp #, c-format @@ -243162,16 +238044,16 @@ msgid_plural "" "encumbrance to your %s." msgstr[0] "" "Ношение этих наружных вещей в качестве внутренних добавляет обременение к " -"вашей %s." +"вашей части тела (%s)." msgstr[1] "" "Ношение этих наружных вещей в качестве внутренних добавляет обременение к " -"вашей %s." +"вашим частям тела (%s)." msgstr[2] "" "Ношение этих наружных вещей в качестве внутренних добавляет обременение к " -"вашей %s." +"вашим частям тела (%s)." msgstr[3] "" "Ношение этих наружных вещей в качестве внутренних добавляет обременение к " -"вашим %s." +"вашим частям тела (%s)." #: src/armor_layers.cpp #, c-format @@ -243182,17 +238064,17 @@ msgid_plural "" "Wearing this outside your %s is adding encumbrance" " to your %s." msgstr[0] "" -"Ношение этого поверх вашей %s добавляет " -"скованности вашей %s." +"Ношение этого поверх вашей одежды (%s) добавляет " +"скованности вашей части тела (%s)." msgstr[1] "" -"Ношение этого поверх вашего %s добавляет " -"скованности вашему %s." +"Ношение этого поверх вашей одежды (%s) добавляет " +"скованности вашей части тела (%s)." msgstr[2] "" -"Ношение этого поверх ваших %s добавляет " -"скованности вашим %s." +"Ношение этого поверх вашей одежды (%s) добавляет " +"скованности вашей части тела (%s)." msgstr[3] "" -"Ношение этого поверх ваших %s добавляет " -"скованности вашим %s." +"Ношение этого поверх вашей одежды (%s) добавляет " +"скованности вашей части тела (%s)." #: src/armor_layers.cpp msgid "This is in your personal aura." @@ -243234,11 +238116,6 @@ msgstr "Сковывание:" msgid "Warmth:" msgstr "Тепло:" -#: src/armor_layers.cpp -#, c-format -msgid "Storage (%s):" -msgstr "Вместимость (%s):" - #: src/armor_layers.cpp msgid "Protection" msgstr "Защита" @@ -243251,6 +238128,10 @@ msgstr "Ударный:" msgid "Cut:" msgstr "Режущий:" +#: src/armor_layers.cpp +msgid "Ballistic:" +msgstr "Баллистический:" + #: src/armor_layers.cpp msgid "Acid:" msgstr "Кислота: " @@ -243311,19 +238192,9 @@ msgstr "Помогает ясно видеть под водой." msgid "It can occupy the same space as other things." msgstr "Может занимать одно и то же место с другими предметами." -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "%s слишком далеко, чтобы сортировать броню." - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "%s не дружелюбен!" - #: src/armor_layers.cpp msgid "Sort Armor" -msgstr "Тип брони" +msgstr "Сортировка брони" #: src/armor_layers.cpp #, c-format @@ -243367,10 +238238,20 @@ msgstr "Скованность и комфорт" msgid "Encumbrance" msgstr "Сковывание" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "%s слишком далеко, чтобы сортировать броню." + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "%s не дружелюбен!" + #: 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!" @@ -243463,11 +238344,11 @@ msgstr "гладкий диск" #: src/artifact.cpp msgid "beads" -msgstr "комок шариков" +msgstr "бусины" #: src/artifact.cpp msgid "string of beads" -msgstr "ряд бусин" +msgstr "бусины на нитке" #: src/artifact.cpp msgid "napkin" @@ -243551,7 +238432,7 @@ msgstr "камень в форме полумесяца" #: src/artifact.cpp msgid "is constantly wriggling" -msgstr "постоянно извивается" +msgstr "постоянно извивающийся" #: src/artifact.cpp msgid "wriggling" @@ -243692,7 +238573,7 @@ msgstr "" #: src/artifact.cpp msgid "Harp" -msgstr "Ченг" +msgstr "Арфа" #: src/artifact.cpp msgid "Staff" @@ -243740,7 +238621,7 @@ msgstr "Плащ" #: src/artifact.cpp msgid "Mask" -msgstr "Маскировочный шлем" +msgstr "Маска" #: src/artifact.cpp msgid "Helm" @@ -243981,7 +238862,7 @@ msgstr "" #: src/artifact.cpp #, c-format msgid "You snuggle your %s closer." -msgstr "Вы крепче прижимаете %s к себе." +msgstr "Вы крепче прижимаете артефакт (%s) к себе." #: src/artifact.cpp #, c-format @@ -243992,7 +238873,7 @@ msgstr "" #: src/artifact.cpp #, c-format msgid "You press your %s against your skin." -msgstr "Вы подносите %s ближе к коже." +msgstr "Вы подносите артефакт (%s) ближе к коже." #: src/artifact.cpp #, c-format @@ -244020,17 +238901,17 @@ 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 @@ -244041,7 +238922,7 @@ msgstr "Вам снится, будто %s танцует в голубой пу #, c-format msgctxt "artifact name (property, shape)" msgid "%1$s %2$s" -msgstr "%1$s %2$s" +msgstr "%1$s %2$s " #: src/artifact.cpp #, c-format @@ -244050,8 +238931,8 @@ msgid "" "It is the only one of its kind.\n" "It may have unknown powers; try activating them." msgstr "" -"Этот %s.\n" -"Единственный в своём роде.\n" +"Это %s.\n" +"Нечто единственное в своём роде.\n" "Может обладать неведомыми силами; попробуйте активировать их." #: src/artifact.cpp @@ -244060,8 +238941,8 @@ msgid "" "This is the %s.\n" "They are the only ones of their kind." msgstr "" -"Этот %s.\n" -"Единственные в своём роде." +"Это %s.\n" +"Нечто единственное в своём роде." #: src/artifact.cpp #, c-format @@ -244069,8 +238950,8 @@ msgid "" "This is the %s.\n" "It is the only one of its kind." msgstr "" -"Этот %s.\n" -"Единственный в своём роде." +"Это %s.\n" +"Нечто единственное в своём роде." #: src/artifact.cpp #, c-format @@ -244094,7 +238975,7 @@ msgstr "" #, c-format msgctxt "artifact description" msgid "This %1$s %2$s." -msgstr "Этот %1$s %2$s." +msgstr "Это %1$s %2$s." #: src/artifact.cpp msgid "The architect's cube." @@ -244120,15 +239001,15 @@ msgstr "НАСТРОЙКА АВТОПОМЕТОК" #: src/auto_note.cpp src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "nable" -msgstr "Вкл" +msgstr " Вкл" #: src/auto_note.cpp src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "isable" -msgstr "Выкл" +msgstr " Выкл" #: src/auto_note.cpp msgid " - Toggle" -msgstr "- Переключить" +msgstr " Переключить" #: src/auto_note.cpp msgid "Map Extra" @@ -244157,7 +239038,7 @@ msgstr "Да" #: src/auto_note.cpp msgid "witch " -msgstr "Переключить" +msgstr " Переключить" #: src/auto_note.cpp msgid "Discover more special encounters to populate this list" @@ -244178,23 +239059,23 @@ msgstr "Сохранить изменения?" #: src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "dd" -msgstr "Добавить" +msgstr " Добавить" #: src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "emove" -msgstr "Убрать" +msgstr " Убрать" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "opy" -msgstr "Копировать" +msgstr " Копировать" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "ove" -msgstr "Передвинуть" +msgstr " Передвинуть" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "est" -msgstr "Тест" +msgstr " Тест" #: src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "<+-> Move up/down" @@ -244202,11 +239083,11 @@ msgstr "<+-> Вверх/вниз" #: src/auto_pickup.cpp src/color.cpp src/game.cpp src/safemode_ui.cpp msgid "-Edit" -msgstr "-Изменить" +msgstr " Изменить" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "-Switch Page" -msgstr "-Переключить" +msgstr " Переключить" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "Rules" @@ -244214,7 +239095,7 @@ msgstr "Правила" #: src/auto_pickup.cpp msgid "I/E" -msgstr "I/E" +msgstr "Вк/Ис" #: src/auto_pickup.cpp msgid "Auto pickup enabled:" @@ -244222,7 +239103,7 @@ msgstr "Автоподбор включён:" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "witch" -msgstr " сменить" +msgstr " Вкл/выкл" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "" @@ -244261,7 +239142,7 @@ msgstr "" "\n" "Поднимание вещей, основанное на материалах:\n" "m:кевлар означает вещь, сделанную из кевлара\n" -"M:медь подразумевает вещь, сделанную из чистой меди\n" +"M:медь подразумевает вещь, сделанную только из меди\n" "M:сталь,железо разрешено несколько материалов (ИЛИ поиск)" #: src/auto_pickup.cpp @@ -244304,7 +239185,7 @@ msgstr "настройка автоподнятия" #: src/auto_pickup.cpp #, c-format msgid "Pickup rules for %s" -msgstr "Правила сбора для %s" +msgstr "Правила сбора для: %s" #: src/avatar.cpp #, c-format @@ -244319,7 +239200,7 @@ msgstr "Задание «%s» успешно выполнено." #: src/avatar.cpp #, c-format msgid "Your %s is not good reading material." -msgstr "%s плохой материал для чтения." +msgstr "%s - плохой материал для чтения." #: src/avatar.cpp msgid "It's a bad idea to read while driving!" @@ -244327,12 +239208,12 @@ msgstr "Читать за рулём — плохая идея!" #: src/avatar.cpp msgid "What's the point of studying? (Your morale is too low!)" -msgstr "Не время для обучения! Ваша мораль слишком низкая!" +msgstr "Какой смысл учиться чему-то? (Ваше настроеное слишком плохое!)" #: src/avatar.cpp #, c-format msgid "%s %d needed to understand. You have %d" -msgstr "Нужен навык %s уровня %d, чтобы понять. Ваш навык %d" +msgstr "Нужен навык %s уровня %d, чтобы понять. Ваш уровень навыка %d" #: src/avatar.cpp src/iuse.cpp msgid "You're illiterate!" @@ -244342,10 +239223,6 @@ msgstr "Вы безграмотны!" msgid "Your eyes won't focus without reading glasses." msgstr "У вас в глазах всё расплывается без очков для чтения." -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "Cлишком темно, чтобы читать!" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "Возможно, кто-нибудь и смог бы прочитать это для вас, но вы глухи!" @@ -244358,22 +239235,23 @@ msgstr "%s не умеет читать!" #: src/avatar.cpp #, c-format msgid "%s %d needed to understand. %s has %d" -msgstr "Нужен навык %s уровня %d, чтобы понять. У %s навык %d" +msgstr "" +"Нужен навык %s уровня %d, чтобы понять. У спутника (%s) уровень навыка %d" #: src/avatar.cpp #, c-format msgid "%s needs reading glasses!" -msgstr "Для %s требуются очки для чтения!" +msgstr "%s не сможет читать без очков для чтения!" #: src/avatar.cpp #, c-format msgid "It's too dark for %s to read!" -msgstr "Слишком темно для %s, чтобы читать!" +msgstr "Слишком темно, %s не может читать!" #: src/avatar.cpp #, c-format msgid "%s could read that to you, but they can't see you." -msgstr "%s мог бы прочитать это для вас, но он не видит вас." +msgstr "%s прочтёт это для вас, но вас не видно." #: src/avatar.cpp #, c-format @@ -244383,7 +239261,7 @@ msgstr "Моральное состояние %s слишком низкое!" #: src/avatar.cpp #, c-format msgid "%s is blind." -msgstr "%s слеп." +msgstr "%s не видит из-за слепоты." #: src/avatar.cpp #, c-format @@ -244393,12 +239271,12 @@ msgstr "%s читает вслух…" #: src/avatar.cpp #, c-format msgid " (needs %d %s)" -msgstr "(нужно %d %s)" +msgstr "(нужно %s хотя бы %d уровня)" #: src/avatar.cpp #, c-format msgid " (already has %d %s)" -msgstr "(уже есть %d %s)" +msgstr "(уже есть %s %d уровня)" #: src/avatar.cpp msgid " (uninterested)" @@ -244424,7 +239302,7 @@ msgstr " | текущий уровень: %d" #: src/avatar.cpp #, c-format msgid "Reading %s" -msgstr "Прочтено %s" +msgstr "Чтение: %s" #. ~ %1$s: book name, %2$s: skill name, %3$d and %4$d: skill levels #: src/avatar.cpp @@ -244509,7 +239387,7 @@ msgid "" "It's difficult for %s to see fine details right now. Reading will take " "longer than usual." msgstr "" -"При текущем освещении %s с трудом различаешь детали. Чтение займёт больше " +"При текущем освещении %s с трудно различать детали. Чтение займёт больше " "времени, чем обычно." #: src/avatar.cpp @@ -244517,7 +239395,9 @@ msgstr "" msgid "" "This book is too complex for %s to easily understand. It will take longer " "to read." -msgstr "Эта книга немного сложновата для %s. Чтение займёт больше времени." +msgstr "" +"Эта книга слишком сложна для читающего (%s). Чтение будет проходить " +"медленнее." #: src/avatar.cpp msgid "You are too exhausted to train martial arts." @@ -244526,7 +239406,7 @@ msgstr "Вы слишком утомились, чтобы изучать бое #: src/avatar.cpp #, c-format msgid "You skim %s to find out what's in it." -msgstr "Вы пролистали %s, чтобы узнать, о чём эта книга." +msgstr "Вы пролистали книгу (%s), чтобы узнать, о чём эта книга." #: src/avatar.cpp #, c-format @@ -244546,7 +239426,7 @@ msgstr "Для лёгкого усвоения информации необхо #: src/avatar.cpp #, c-format msgid "Reading this book affects your morale by %d" -msgstr "Чтение изменит вашу мораль на %d" +msgstr "Чтение изменит ваше настроение на %d" #: src/avatar.cpp #, c-format @@ -244598,7 +239478,7 @@ msgstr "Вы улучшили %s до уровня %d." #: src/avatar.cpp src/npc.cpp #, c-format msgid "%s increases their %s level." -msgstr "%s повышает свой %s уровень." +msgstr "%s повышает уровень навыка %s ." #: src/avatar.cpp #, c-format @@ -244608,27 +239488,29 @@ msgstr "Вы узнали немного про %s! (%d%%)" #: src/avatar.cpp #, c-format msgid "You can no longer learn from %s." -msgstr "Вы не сможете узнать ничего нового из %s." +msgstr "Вы не сможете узнать ничего нового из этого источника (%s)." #: src/avatar.cpp src/npc.cpp #, c-format msgid "%s learns a little about %s!" -msgstr "%s узнает немного о %s!" +msgstr "%s узнает немного о навыке (%s)!" #: src/avatar.cpp #, c-format msgid "%s learn a little about %s!" -msgstr "%s узнает немного о %s!" +msgstr "%s узнает немного о навыке (%s)!" #: src/avatar.cpp src/npc.cpp #, c-format msgid "%s can no longer learn from %s." -msgstr "%s больше не может узнать ничего нового из %s." +msgstr "%s больше не может узнать ничего нового из этого источника (%s)." #: src/avatar.cpp #, c-format msgid "Rereading the %s isn't as much fun for %s." -msgstr "Повторное чтение %s уже не доставит такого удовольствия %s." +msgstr "" +"Повторное чтение книги (%s) уже не доставит такого удовольствия читающему " +"(%s)." #: src/avatar.cpp msgid "Maybe you should find something new to read…" @@ -244671,11 +239553,15 @@ msgstr "Вы снова тренируетесь. Эта тренировка н msgid "You train for a while." msgstr "Вы немного тренируетесь." -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp +msgid "It looks like you woke up before your alarm." +msgstr "Кажется, вы проснулись ещё до будильника." + +#: src/avatar.cpp msgid "It looks like you've slept through your internal alarm…" msgstr "Похоже, вы проспали ваш встроенный будильник…" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp msgid "It looks like you've slept through the alarm…" msgstr "Похоже, вы проспали будильник…" @@ -244683,6 +239569,11 @@ msgstr "Похоже, вы проспали будильник…" msgid "You retched, but your stomach is empty." msgstr "Вы чувствуете позыв к рвоте, но ваш желудок пуст." +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "Вы (%s)" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "Вы потеряли книгу, поэтому прекращаете чтение!" @@ -244755,69 +239646,22 @@ msgstr "неправильная характеристика" #: src/avatar.cpp #, c-format msgid "Are you sure you want to raise %s? %d points available." -msgstr "Вы уверены, что хотите поднять %s? %dочков доступно." - -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "Вы устанавливаете мощность ног вашего меха на скачущий быстрый шаг." - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "Вы подгоняете своего скакуна бежать рысью." - -#: src/avatar.cpp -msgid "You start walking." -msgstr "Вы начали идти." - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "" -"Вы устанавливаете мощность ножных сервоприводов вашего меха на максимум." - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "Вы пускаете своего скакуна в галоп." - -#: src/avatar.cpp -msgid "You start running." -msgstr "Вы начали бежать." - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "Ваш скакун слишком утомился, чтобы скакать быстрее." - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "Вам надо иметь здоровые ноги, чтобы бежать." - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "Вы слишком устали, чтобы бежать." - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." msgstr "" -"Вы устанавливаете мощность ножных сервоприводов вашего меха на минимум." +"Вы уверены, что хотите поднять выбранную характеристику - %s? Очков " +"доступно: %d." -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "Вы замедляете своего скакуна до шага." - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "Вы начали красться." - -#. ~ %1$s: weapon name, %2$s: holster name +#. ~ %1$s: weapon name +#. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp #, c-format msgctxt "holster" -msgid "Draw %1$s from %2$s?" -msgstr "Достать %1$s из %2$s?" +msgid "Draw from %1$s?" +msgstr "Вытащить оружие (%1$s)?" #: src/avatar.cpp src/monexamine.cpp #, c-format msgid "What to do with your %s?" -msgstr "Что сделать с %s?" +msgstr "Что сделать с предметом (%s)?" #: src/avatar.cpp #, c-format @@ -244835,7 +239679,7 @@ msgstr "Очков осталось: %4d" #: src/avatar.cpp msgid "Character Transfer: No changes can be made." -msgstr "Перенос персонажа: Изменения не могут быть сделаны." +msgstr "Перенос персонажа: Нельзя применить изменения." #: src/avatar.cpp src/newcharacter.cpp msgid "Freeform" @@ -244859,18 +239703,18 @@ msgstr "Монстр на пути. Авто-движение отменено." msgid "Move into the monster to attack." msgstr "Шагните на монстра, чтобы атаковать." -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" msgstr "Ваша сила воли рвётся вперёд, и вы вместе с ней!" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything…" msgstr "Вы слишком мирны, чтобы бить что-нибудь…" #: src/avatar_action.cpp #, c-format msgid "You can't displace your %s." -msgstr "Вы не можете сдвинуть %s." +msgstr "Вы не можете сдвинуть существо (%s)." #: src/avatar_action.cpp msgid "NPC in the way, Auto-move canceled." @@ -244918,7 +239762,7 @@ msgstr "Вы открываете %2$s (%1$s)." #: src/avatar_action.cpp #, c-format msgid "You bump into the %s!" -msgstr "Вы врезаетесь в %s!" +msgstr "Вы врезаетесь в препятствие (%s)!" #: src/avatar_action.cpp msgid "That door is locked!" @@ -244930,7 +239774,7 @@ msgstr "Вы гремите решёткой, но дверь закрыта!" #: src/avatar_action.cpp msgid "You can't climb here - there's a ceiling above." -msgstr "Вы не можете залезть сюда — сверху потолок." +msgstr "Вы не можете забраться выше здесь — сверху потолок." #: src/avatar_action.cpp src/game.cpp msgid "The water puts out the flames!" @@ -244966,27 +239810,27 @@ msgstr "" #: src/avatar_action.cpp #, c-format msgid "You can't currently fire your %s." -msgstr "Сейчас вы не можете стрелять из %s." +msgstr "Сейчас вы не можете стрелять из вашего оружия (%s)." #: src/avatar_action.cpp #, c-format msgid "You can't fire your %s while driving." -msgstr "Вы не можете использовать %s за рулём." +msgstr "Вы не можете использовать оружие (%s) за рулём." #: src/avatar_action.cpp #, c-format msgid "You need two free hands to fire your %s." -msgstr "Вам нужны две руки, чтобы стрелять из %s." +msgstr "Вам нужны две руки, чтобы стрелять из вашего оружия (%s)." #: src/avatar_action.cpp #, c-format msgid "Your %s is empty!" -msgstr "Ваш %s пуст!" +msgstr "Ваше оружие (%s) пусто!" #: src/avatar_action.cpp #, c-format msgid "Your %s needs %i charges to fire!" -msgstr "Для огня вашей %s требуется %i зарядов!" +msgstr "Ваше оружие (%s) требует %i зарядов для использования!" #: src/avatar_action.cpp #, c-format @@ -244994,8 +239838,8 @@ msgid "" "You need a UPS with at least %2$d charges or an advanced UPS with at least " "%3$d charges to fire the %1$s!" msgstr "" -"Для стрельбы из %1$s вам нужен УБП, как минимум, с %2$d зарядами или " -"улучшенный УБП, как минимум, с %3$d зарядами!" +"Для стрельбы из вашего оружия (%1$s) вам нужен УБП, как минимум, с %2$d " +"зарядами или улучшенный УБП, как минимум, с %3$d зарядами!" #: src/avatar_action.cpp #, c-format @@ -245008,8 +239852,8 @@ msgid "" "You must stand near acceptable terrain or furniture to fire the %s. A " "table, a mound of dirt, a broken window, etc." msgstr "" -"Для использования %s вы должны стоять рядом с подходящей местностью или " -"мебелью. Стол, насыпь, разбитое окно и т.д." +"Для использования оружия (%s) вы должны стоять рядом с подходящей местностью" +" или мебелью. Стол, насыпь, разбитое окно и т.п." #: src/avatar_action.cpp msgid "Your eyes steel, and you raise your weapon!" @@ -245041,13 +239885,13 @@ msgstr "Вы слишком мирны, чтобы целиться в туре #, c-format msgid "The %s must be attached to a gun, it can not be fired separately." msgstr "" -"Этот %s нужно присоединить к оружию, из него нельзя стрелять отдельно от " +"Это (%s) нужно присоединить к оружию, из него нельзя стрелять отдельно от " "оружия." #: src/avatar_action.cpp #, c-format msgid "The %s can't be fired while loaded with incompatible ammunition %s" -msgstr "Невозможно стрелять из %s несовместимыми патронами %s" +msgstr "Невозможно стрелять из оружия (%s) несовместимыми патронами (%s)" #: src/avatar_action.cpp msgid "You're not wielding anything." @@ -245056,7 +239900,7 @@ msgstr "Вы ничего не держите в руках." #: src/avatar_action.cpp #, c-format msgid "You're too full to eat the leaves from the %s." -msgstr "Вы слишком сыты, чтобы есть листья с %s." +msgstr "Вы слишком сыты, чтобы есть листья с растения (%s)." #: src/avatar_action.cpp msgid "You eat the underbrush." @@ -245082,11 +239926,6 @@ msgstr "Эта трава мертва и слишком изодрана, чт msgid "This grass is tainted with paint and thus inedible." msgstr "Эта трава испачкана краской и несъедобна." -#: src/avatar_action.cpp -#, c-format -msgid "You leave the empty %s." -msgstr "Вы оставляете пустой предмет (%s)." - #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "Вы не можете совершать полноценные броски, находясь в своей раковине." @@ -245094,7 +239933,7 @@ msgstr "Вы не можете совершать полноценные бро #: src/avatar_action.cpp src/game.cpp src/handle_action.cpp #, c-format msgid "Your %s refuses to move as its batteries have been drained." -msgstr "Ваш %s не двигается, так как у него сели батареи." +msgstr "Ваш мех (%s) не двигается, так как у него сели батареи." #: src/avatar_action.cpp msgid "Throw item" @@ -245126,7 +239965,7 @@ msgstr "У вас не хватает сил бросить что-либо…" #: src/avatar_action.cpp msgid "Unload item" -msgstr "Разрядить вещь" +msgstr "Разрядить предмет" #: src/avatar_action.cpp msgid "You have nothing to unload." @@ -245145,17 +239984,17 @@ msgstr "The %s лопается!" #: src/ballistics.cpp #, c-format msgid "The %1$s embeds in %2$s!" -msgstr "%1$s застревает в %2$s!" +msgstr "%1$s застревает в противнике (%2$s)!" #: src/ballistics.cpp #, c-format msgid "The attack bounced to %s!" -msgstr "Пуля срикошетила в %s!" +msgstr "Пуля срикошетила в кого-то ещё (%s)!" #: src/basecamp.cpp msgctxt "base camp: base" msgid " MAIN " -msgstr "ЦЕНТР" +msgstr "ЦЕНТР " #: src/basecamp.cpp msgctxt "base camp: base" @@ -245165,7 +240004,7 @@ msgstr "[ГЛ]" #: src/basecamp.cpp msgctxt "base camp: north" msgid " [N] " -msgstr "[С]" +msgstr " [С] " #: src/basecamp.cpp msgctxt "base camp: north" @@ -245175,7 +240014,7 @@ msgstr "[С]" #: src/basecamp.cpp msgctxt "base camp: northeast" msgid " [NE] " -msgstr "[СВ]" +msgstr "[СВ] " #: src/basecamp.cpp msgctxt "base camp: northeast" @@ -245185,7 +240024,7 @@ msgstr "[СВ]" #: src/basecamp.cpp msgctxt "base camp: east" msgid " [E] " -msgstr "[В]" +msgstr " [В] " #: src/basecamp.cpp msgctxt "base camp: east" @@ -245195,7 +240034,7 @@ msgstr "[В]" #: src/basecamp.cpp msgctxt "base camp: southeast" msgid " [SE] " -msgstr "[ЮВ]" +msgstr " [ЮВ] " #: src/basecamp.cpp msgctxt "base camp: southeast" @@ -245205,7 +240044,7 @@ msgstr "[ЮВ]" #: src/basecamp.cpp msgctxt "base camp: south" msgid " [S] " -msgstr "[Ю]" +msgstr " [Ю] " #: src/basecamp.cpp msgctxt "base camp: south" @@ -245215,7 +240054,7 @@ msgstr "[Ю]" #: src/basecamp.cpp msgctxt "base camp: southwest" msgid " [SW] " -msgstr "[ЮЗ]" +msgstr " [ЮЗ] " #: src/basecamp.cpp msgctxt "base camp: southwest" @@ -245225,7 +240064,7 @@ msgstr "[ЮЗ]" #: src/basecamp.cpp msgctxt "base camp: west" msgid " [W] " -msgstr "[З]" +msgstr " [З] " #: src/basecamp.cpp msgctxt "base camp: west" @@ -245235,7 +240074,7 @@ msgstr "[З]" #: src/basecamp.cpp msgctxt "base camp: northwest" msgid " [NW] " -msgstr "[СЗ]" +msgstr " [СЗ] " #: src/basecamp.cpp msgctxt "base camp: northwest" @@ -245246,7 +240085,7 @@ msgstr "[СЗ]" #: src/basecamp.cpp #, c-format msgid "%s Board" -msgstr "%s Доска" +msgstr "%s: Доска" #: src/basecamp.cpp #, c-format @@ -245291,7 +240130,7 @@ msgstr "Расширение: пусто" #: src/bionics.cpp #, c-format msgid "%s activates their %s." -msgstr "%s активирует %s." +msgstr "%s активирует свой КБМ (%s)." #: src/bionics.cpp #, c-format @@ -245306,12 +240145,12 @@ msgstr "У вас не хватает энергии для активации #: src/bionics.cpp #, c-format msgid "Deactivate your %s first!" -msgstr "Сперва деактивируйте %s!" +msgstr "Сперва деактивируйте КБМ - %s!" #: src/bionics.cpp src/player.cpp #, c-format msgid "Stop wielding %s?" -msgstr "Прекратить держать в руках %s?" +msgstr "Прекратить держать в руках оружие (%s)?" #: src/bionics.cpp #, c-format @@ -245326,13 +240165,13 @@ msgstr "%s автоматически выключается." #: src/bionics.cpp #, c-format msgid "There is not enough humidity in the air for your %s to function." -msgstr "Недостаточно влажнеый воздух для функционирования вашего %s." +msgstr "Недостаточно влажный воздух для функционирования вашего КБМ (%s)." #: src/bionics.cpp #, c-format msgid "Your %s issues a low humidity warning. Efficiency will be reduced." msgstr "" -"Ваш %s предупреждает о низкой влажности. Эффективность будет понижена." +"Ваш КБМ (%s) предупреждает о низкой влажности. Эффективность будет понижена." #: src/bionics.cpp msgid "You change your mind and turn it off." @@ -245346,7 +240185,7 @@ msgstr "«ВРРРРРМП!»" #: src/bionics.cpp #, c-format msgid "You cannot activate %s while mounted." -msgstr "%s нельзя активировать верхом." +msgstr "Этот КБМ (%s) нельзя активировать верхом." #: src/bionics.cpp msgid "Your speed suddenly increases!" @@ -245398,7 +240237,7 @@ msgstr "Внутримышечные паразиты" #: src/bionics.cpp msgid "Clostridium Tetani Infection" -msgstr "Инфекция Столбнячной палочки" +msgstr "Инфекция столбнячной палочки" #: src/bionics.cpp msgid "Anticholinergic Tropane Alkaloids" @@ -245426,11 +240265,11 @@ msgstr "Обезболивающее длительного действия" #: src/bionics.cpp msgid "Prussian Blue" -msgstr "берлинская лазурь" +msgstr "Берлинская лазурь" #: src/bionics.cpp msgid "Potassium Iodide" -msgstr "йодистый калий" +msgstr "Йодистый калий" #: src/bionics.cpp msgid "Antihistamines" @@ -245446,7 +240285,7 @@ msgstr "Выброс микус" #: src/bionics.cpp msgid "Irradiated" -msgstr "Облучённый" +msgstr "Облучение" #: src/bionics.cpp msgid "Blood Test Results" @@ -245496,7 +240335,7 @@ msgstr "«ШШШШ!»" #: src/bionics.cpp #, c-format msgid "Extract water from the %s" -msgstr "Извлечь воду из %s" +msgstr "Извлечь воду из источника (%s)" #: src/bionics.cpp msgid "There is no suitable corpse on this tile." @@ -245552,7 +240391,8 @@ msgstr "Управлять машинкой на РУ" msgid "" "WARNING: Purging all fuel is likely to result in radiation! Purge anyway?" msgstr "" -"ВНИМАНИЕ: Очистка топлива может привести к радиации! Очистить все равно?" +"ВНИМАНИЕ: Очистка топлива может привести к выбросу радиации! Всё равно " +"провести очистку?" #: src/bionics.cpp msgid "" @@ -245572,7 +240412,7 @@ msgid "" "You are plugged to the vehicle. It will charge you if it has some juice in " "it." msgstr "" -"Вы подключены к автомобилю.  Он будет заряжать вас, если в нем есть хоть " +"Вы подключены к автомобилю. Он будет заряжать вас, если в нем есть хоть " "какой-то заряд." #: src/bionics.cpp @@ -245633,62 +240473,62 @@ msgstr "Вы отключили «%s»." #: src/bionics.cpp #, c-format msgid "You withdraw your %s." -msgstr "Вы убираете %s." +msgstr "Вы убираете оружие (%s)." #: src/bionics.cpp #, c-format msgid " withdraws %s %s." -msgstr " убирает %s %s." +msgstr " убирает %s оружие (%s)." #: src/bionics.cpp #, c-format msgid "Your %s runs out of fuel and turn off." -msgstr "%s истратил всё топливо и отключается." +msgstr "КБМ (%s) истратил всё топливо и отключается." #: src/bionics.cpp #, c-format msgid "'s %s runs out of fuel and turn off." -msgstr "У %s истратил всё топливо и отключается." +msgstr "У NPC () КБМ (%s) истратил всё топливо и отключается." #: src/bionics.cpp #, c-format msgid "Your %s does not have enough fuel to start." -msgstr "У вас не хватает топлива, чтобы запустить %s." +msgstr "У вас не хватает топлива, чтобы запустить КБМ (%s)." #: src/bionics.cpp #, c-format msgid "'s %s does not have enough fuel to start." -msgstr "У не хватает топлива, чтобы запустить %s." +msgstr "У NPC () не хватает топлива, чтобы запустить КБМ (%s)." #: src/bionics.cpp #, c-format msgid "Your %s turns off to not waste calories." -msgstr "Ваш %s отключается, чтобы не тратить калории." +msgstr "Ваш КБМ (%s) отключается, чтобы не тратить калории." #: src/bionics.cpp #, c-format msgid "'s %s turns off to not waste calories." -msgstr "У отключается %s во избежание траты калорий." +msgstr "У NPC () отключается %s во избежание траты калорий." #: src/bionics.cpp #, c-format msgid "Your %s turns off after filling your power banks." -msgstr "Ваш %s отключается после пополнения энергии." +msgstr "Ваш КБМ (%s) отключается после пополнения энергии." #: src/bionics.cpp #, c-format msgid "'s %s turns off after filling their power banks." -msgstr "У отключается %s после пополнения энергии." +msgstr "У NPC () отключается КБМ (%s) после пополнения энергии." #: src/bionics.cpp #, c-format msgid "Your %s turns off to not waste fuel." -msgstr "Ваш %s отключается, чтобы не тратить топливо." +msgstr "Ваш КБМ (%s) отключается, чтобы не тратить топливо." #: src/bionics.cpp #, c-format msgid "'s %s turns off to not waste fuel." -msgstr "У отключается %s во избежание траты топлива." +msgstr "У NPC () отключается КБМ (%s) во избежание траты топлива." #: src/bionics.cpp #, c-format @@ -245696,8 +240536,8 @@ msgid "" "Stored calories are below the safe threshold, your %s shuts down to preserve" " your health." msgstr "" -"Поскольку запас питательных веществ ниже безопасного порога, %s отключается," -" чтобы сохранить ваше здоровье." +"Поскольку запас питательных веществ ниже безопасного порога, КБМ (%s) " +"отключается, чтобы сохранить ваше здоровье." #: src/bionics.cpp #, c-format @@ -245705,32 +240545,30 @@ msgid "" "Stored calories are below the safe threshold, 's %s shuts down to " "preserve their health." msgstr "" -"Чтобы сохранить здоровье, у отключается %s, поскольку его запас " -"питательных веществ подходит к концу." +"Чтобы сохранить здоровье, у NPC () отключается КБМ (%s), поскольку " +"его запас питательных веществ подходит к концу." #: src/bionics.cpp #, c-format msgid "Your %s does not have enough fuel to use Auto Start." -msgstr "У вас не хватает топлива, чтобы использовать автозапуск %s." +msgstr "У вас не хватает топлива, чтобы использовать автозапуск КБМ (%s)." #: src/bionics.cpp #, c-format msgid "'s %s does not have enough fuel to use Auto Start." -msgstr "У не хватает топлива, чтобы использовать автозапуск %s." +msgstr "" +"У NPC () не хватает топлива, чтобы использовать автозапуск КБМ " +"(%s)." #: src/bionics.cpp #, c-format msgid "Your %s powers down." -msgstr "%s выключилась." - -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "Активирован генератор искусственной ночи!" +msgstr "%s выключается." #: 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!" @@ -245740,12 +240578,12 @@ msgstr "" #: src/bionics.cpp #, c-format msgid "Your %s issues a low humidity warning. Efficiency is reduced." -msgstr "Ваш %s предупреждает о низкой влажности. Эффективность снижена." +msgstr "Ваш КБМ (%s) предупреждает о низкой влажности. Эффективность снижена." #: src/bionics.cpp #, c-format msgid "You are properly hydrated. Your %s chirps happily." -msgstr "Влажность достаточная. Ваш %s счастливо пиликает." +msgstr "Влажность достаточная. Ваш КБМ (%s) счастливо пиликает." #: src/bionics.cpp msgid "The removal fails without incident." @@ -245762,32 +240600,32 @@ msgstr "Ужасно больно!" #: src/bionics.cpp #, c-format msgid "'s %s is damaged." -msgstr "У повреждено %s." +msgstr "У NPC () повреждена часть тела (%s)." #: src/bionics.cpp #, c-format msgid "Your %s is damaged." -msgstr "Ваш %s повреждён." +msgstr "Ваша часть тела (%s) повреждена." #: src/bionics.cpp #, c-format msgid "Your %s is severely damaged." -msgstr "Ваш %s сильно повреждён." +msgstr "Ваша часть тела (%s) сильно повреждена." #: src/bionics.cpp #, c-format msgid "'s %s is severely damaged." -msgstr "У сильно повреждён %s." +msgstr "У NPC () сильно повреждена часть тела (%s)." #: src/bionics.cpp #, c-format msgid "The %s flub the operation." -msgstr "%s ошибся при операции." +msgstr "%s совершает ошибку при операции." #: src/bionics.cpp #, c-format msgid "The %s messes up the operation." -msgstr "%s провалил операцию." +msgstr "%s проваливает операцию." #: src/bionics.cpp msgid "The operation fails." @@ -245796,7 +240634,15 @@ msgstr "Операция провалилась." #: src/bionics.cpp #, c-format msgid "The %s screws up the operation." -msgstr "%s запорол операцию." +msgstr "%s запарывает операцию." + +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "У вас недостаточно обезболивающего для установки." + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "У вас нет необходимых компонентов для установки модуля." #: src/bionics.cpp msgid "You prep to begin surgery." @@ -245809,30 +240655,33 @@ 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 "У NPC (%s) не установлена эта бионика." #: src/bionics.cpp #, c-format msgid "Removing %s Fusion Blaster Arm would leave %s with a useless stump." msgstr "" -"Удалив %s термоядерный бластер, %s получишь вместо руки бесполезную культю." +"Удалив %s термоядерный бластер, пациент (%s) останется с бесполезной культёй" +" вместо руки." #: src/bionics.cpp msgid "" "WARNING: Removing a reactor may leave radioactive material! Remove anyway?" 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 @@ -245840,8 +240689,8 @@ msgid "" "The Telescopic Lenses are part of %s eyes now. Removing them would leave %s" " blind." msgstr "" -"%s телескопические линзы теперь являются частью глаз. Удалив их, %s " -"ослепнешь." +"%s(и) nелескопические линзы теперь являются частью глаз. Их удаление оставит" +" пациента (%s) слепым." #: src/bionics.cpp msgid "Are you sure you wish to uninstall the selected bionic?" @@ -245862,17 +240711,17 @@ msgstr "Ваши части встали обратно на свои места #: src/bionics.cpp msgid "'s parts are jiggled back into their familiar places." -msgstr "Части встали обратно на свои места." +msgstr "Части NPC () встали обратно на свои места." #: src/bionics.cpp #, c-format msgid "Successfully removed %s." -msgstr "Успешно удалено %s." +msgstr "Успешно удален КБМ (%s)." #: src/bionics.cpp #, c-format msgid "The %s's anesthesia kit looks empty." -msgstr "У %s кончился набор для анестезии." +msgstr "У оперирующего (%s) кончился набор для анестезии." #: src/bionics.cpp msgid "" @@ -245888,8 +240737,7 @@ msgid "" "The %1$s gently inserts a syringe into %2$s's arm and starts injecting " "something while holding them down." msgstr "" -"%1$s аккуратно вкалывает шприц в руку %2$s и что-то вводит в вену, " -"придерживая пациента." +"%1$s аккуратно придерживает пациента (%2$s) и что-то вводит ему в вену." #: src/bionics.cpp #, c-format @@ -245904,7 +240752,7 @@ msgstr "%1$s засыпает, а %2$s начинает операцию." #: src/bionics.cpp #, c-format msgid "%s's parts are jiggled back into their familiar places." -msgstr "Части тела %s встали обратно на свои места." +msgstr "Части тела пациента (%s) встали обратно на свои места." #: src/bionics.cpp #, c-format @@ -245954,7 +240802,7 @@ msgstr "Успешное улучшение бионики «%1$s» до «%2$s #: src/bionics.cpp #, c-format msgid "Successfully installed %s." -msgstr "Успешно установлено %s." +msgstr "Успешно установлен КБМ (%s)." #: src/bionics.cpp msgid "The installation is a failure." @@ -245965,7 +240813,7 @@ msgstr "Установка провалилась." #: src/bionics.cpp #, c-format msgid "%s training helps to minimize the complications." -msgstr "Опыт %s помогает снизить риск осложнений." +msgstr "Опыт оперирующего (%s)_ помогает снизить риск осложнений." #: src/bionics.cpp msgid "The installation fails without incident." @@ -246252,12 +241100,12 @@ msgid "" "You can not activate %s!\n" "To read a description of %s, press '%s', then '%c'." msgstr "" -"Вы не можете активировать %s!\n" -"Для получения информации о %s, нажмите «%s», затем «%c»." +"Вы не можете активировать КБМ (%s)!\n" +"Для получения информации о КБМ (%s) нажмите «%s», затем «%c»." #: src/bonuses.cpp msgid "Accuracy" -msgstr "Точности" +msgstr "Точность" #: src/bonuses.cpp src/martialarts.cpp msgid "Dodge" @@ -246269,15 +241117,15 @@ msgstr "Скорость" #: src/bonuses.cpp msgid "Move cost" -msgstr "Цены хода" +msgstr "Цена хода" #: src/bonuses.cpp src/panels.cpp src/panels.cpp msgid "Armor" -msgstr "Брони" +msgstr "Броня" #: src/bonuses.cpp msgid "Armor penetration" -msgstr "Бронебойность" +msgstr "Бронебойности" #: src/bonuses.cpp msgid "Target armor multiplier" @@ -246338,7 +241186,7 @@ msgid_plural "%d minutes" msgstr[0] "%d минута" msgstr[1] "%d минуты" msgstr[2] "%d минут" -msgstr[3] "%d минут" +msgstr[3] "%d минута" #: src/calendar.cpp #, c-format @@ -246397,10 +241245,10 @@ msgstr " вечно" #, c-format msgid "%3d second" msgid_plural "%3d seconds" -msgstr[0] "%3d секунда" -msgstr[1] "%3d секунды" +msgstr[0] "%3d секунда" +msgstr[1] "%3d секунды" msgstr[2] "%3d секунд" -msgstr[3] "%3d секунда" +msgstr[3] "%3d секунда" #. ~ Right-aligned time string. should right-align with other strings with #. this same comment @@ -246615,6 +241463,46 @@ msgstr "литр" msgid "quart" msgstr "кварта" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "км" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "м" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "см" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "мм" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "дюйм" + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "ми" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "ярд" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "фут" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -246623,7 +241511,7 @@ msgstr "Ошибка записи %1$s в «%2$s»: %3$s" #: src/cata_utility.cpp #, c-format msgid "Failed to read from \"%1$s\": %2$s" -msgstr "Перестал читать с «%1$s»: %2$s" +msgstr "Ошибка чтения из «%1$s»: %2$s" #. ~ translators: place some random 1-width characters here in your language #. if possible, or leave it as is @@ -246670,7 +241558,7 @@ msgstr "Ой, больно!" #: src/character.cpp #, c-format msgid "You remove the %s's harness." -msgstr "Вы снимаете упряжь с %s." +msgstr "Вы снимаете упряжь с животного (%s)." #: src/character.cpp src/game.cpp msgid "You let go of the grabbed object." @@ -246679,17 +241567,17 @@ msgstr "Вы отпускаете схваченный объект." #: src/character.cpp #, c-format msgid "You climb on the %s." -msgstr "Вы забираетесь на %s." +msgstr "Вы забираетесь на скакуна (%s)." #: src/character.cpp #, c-format msgid "You hear your %s whir to life." -msgstr "Вы слышите, как ваш %s с жужжанием оживает." +msgstr "Вы слышите, как %s с жужжанием оживает." #: src/character.cpp src/monexamine.cpp #, c-format msgid "You fail to budge your %s!" -msgstr "Вы не можете сдвинуть %s!" +msgstr "Вы не можете сдвинуть существо (%s)!" #: src/character.cpp msgid "You are ejected from your mech!" @@ -246697,7 +241585,7 @@ msgstr "Вас катапультировало из вашего меха!" #: src/character.cpp msgid " is ejected from their mech!" -msgstr " выбросило из меха!" +msgstr "NPC () выбросило из меха!" #: src/character.cpp msgid "You fall off your mount!" @@ -246739,7 +241627,7 @@ msgstr "Вы поднялись." #: src/character.cpp msgid " stands up." -msgstr " поднялся." +msgstr " поднимается." #: src/character.cpp src/monster.cpp #, c-format @@ -246786,7 +241674,7 @@ msgstr "Вы освобождаетесь из тяжёлого силка!" #: src/character.cpp msgid " frees themselves from the heavy snare!" -msgstr " освобождается от тяжёлой ловушки!" +msgstr " освобождается из тяжёлого силка!" #: src/character.cpp msgid "You try to free yourself from the heavy snare, but can't get loose!" @@ -246842,17 +241730,17 @@ msgstr " выползает из ямы!" #: src/character.cpp #, c-format msgid "Your %s tries to break free, but fails!" -msgstr "Ваш %s безуспешно пытается высвободиться!" +msgstr "Ваш скакун (%s) безуспешно пытается высвободиться!" #: src/character.cpp #, c-format msgid "Your %s breaks free from the grab!" -msgstr "Ваш %s высвобождается из захвата!" +msgstr "Ваш скакун (%s) высвобождается из захвата!" #: src/character.cpp #, c-format msgid "You are pulled from your %s!" -msgstr "Вас выдернули из %s!" +msgstr "Вас стащили с вашего скакуна (%s)!" #: src/character.cpp msgid "You find yourself no longer grabbed." @@ -246886,12 +241774,12 @@ msgstr "Ваша бионика (%s) снова включается." #: src/character.cpp #, c-format msgid "You put on your %s." -msgstr "Вы надели %s." +msgstr "Вы надели что-то (%s)." #: src/character.cpp #, c-format msgid " puts on their %s." -msgstr " надевает %s." +msgstr " надевает что-то (%s)." #: src/character.cpp #, c-format @@ -246901,7 +241789,7 @@ msgstr "Ваши %s очень скованы! %s" #: src/character.cpp #, c-format msgid "Your %s is very encumbered! %s" -msgstr "Ваш %s очень скован! %s" +msgstr "Ваша часть тела (%s) очень скована! %s" #: src/character.cpp msgid "You're deafened!" @@ -246911,22 +241799,15 @@ msgstr "Вы оглушены!" #, c-format msgid "This %s is too big to wear comfortably! Maybe it could be refitted." msgstr "" -"%s слишком велик, чтобы его можно было носить с удобством! Возможно, его " -"можно подогнать по размеру." +"Предмет одежды (%s) слишком велик, чтобы его можно было носить с удобством! " +"Возможно, его можно подогнать по размеру." #: src/character.cpp #, c-format msgid "This %s is too small to wear comfortably! Maybe it could be refitted." msgstr "" -"%s слишком мал, чтобы его можно было носить с удобством! Возможно, его можно" -" подогнать по размеру." - -#. ~ %1$s: item name, %2$s: container name -#: src/character.cpp -#, c-format -msgctxt "container" -msgid "You put the %1$s in your %2$s." -msgstr "Вы кладёте %1$s себе в %2$s." +"Предмет одежды (%s) слишком мал, чтобы его можно было носить с удобством! " +"Возможно, его можно подогнать по размеру." #: src/character.cpp msgid "You can't place items here!" @@ -246940,29 +241821,30 @@ msgstr " не может положить сюда предметы!" #: src/character.cpp #, c-format msgid "You need at least %1$s to use this %2$s." -msgstr "Вам нужно не менее %1$s для этого %2$s." +msgstr "Вам нужно не менее %1$s для этого предмета - %2$s." #: src/character.cpp #, c-format msgid " needs at least %1$s to use this %2$s." -msgstr " нужно не менее %1$s для этого %2$s." +msgstr "NPC () нужно не менее %1$s для этого предмета - %2$s." #. ~ %1$s - list of unmet requirements, %2$s - item name, %3$s - indirect item #. name. #: src/character.cpp #, c-format msgid "You need at least %1$s to use this %2$s with your %3$s." -msgstr "Вам нужно не менее %1$s для этого %2$s, а у вас %3$s." +msgstr "Вам нужно не менее %1$s для этого предмета - %2$s, а у вас %3$s." #: src/character.cpp #, c-format msgid " needs at least %1$s to use this %2$s with their %3$s." -msgstr " нужно не менее %1$s для этого %2$s, а там %3$s." +msgstr "" +"NPC () нужно не менее %1$s для этого предмета - %2$s, а там %3$s." #: src/character.cpp #, c-format msgid "Putting on a %s would be tricky." -msgstr "Надеть на себя %s было бы неплохим цирковым номером." +msgstr "Надеть на себя это (%s) было бы неплохим цирковым номером." #: src/character.cpp msgid "Can't wear that, it's made of wool!" @@ -246989,7 +241871,7 @@ msgstr "Нельзя надеть шлем поверх %s." #: src/character.cpp msgid "horns" -msgstr "рога" +msgstr "рогов" #: src/character.cpp msgid "antennae" @@ -247008,7 +241890,7 @@ msgstr "" #: src/character.cpp #, c-format msgid "%s doesn't have any broken limbs this could help." -msgstr "У %s нет сломанных конечностей, к которым можно это применить." +msgstr "У NPC (%s) нет сломанных конечностей, к которым можно это применить." #: src/character.cpp msgid "You don't have enough arms to wear that." @@ -247017,7 +241899,7 @@ msgstr "У вас не хватает рук, чтобы надеть это." #: src/character.cpp #, c-format msgid "%s doesn't have enough arms to wear that." -msgstr "У %s не хватает рук, чтобы надеть это." +msgstr "У NPC (%s) не хватает рук, чтобы надеть это." #: src/character.cpp msgid "Can't wear power armor over other gear!" @@ -247031,12 +241913,12 @@ msgstr "" #: src/character.cpp #, c-format msgid "Can't wear more than one %s!" -msgstr "Нельзя надевать на себя больше одного %s!" +msgstr "Нельзя надевать на себя больше одного подобного предмета (%s)!" #: src/character.cpp #, c-format msgid "Can't wear %s with power armor!" -msgstr "Нельзя надевать %s вместе с силовой бронёй!" +msgstr "Нельзя надевать это (%s) вместе с силовой бронёй!" #: src/character.cpp msgid "You don't have a hand free to wear that." @@ -247045,12 +241927,14 @@ msgstr "У вас нет свободной руки, чтобы надеть э #: src/character.cpp #, c-format msgid "%s doesn't have a hand free to wear that." -msgstr "У %s нет свободной руки, чтобы надеть это." +msgstr "У NPC (%s) нет свободной руки, чтобы надеть это." #: src/character.cpp #, c-format msgid "Can't wear %i or more %s at once." -msgstr "Нельзя надевать на себя %i или более %s одновременно." +msgstr "" +"Нельзя надевать на себя %i или более таких предметов одежды (%s) " +"одновременно." #: src/character.cpp msgid "You're already wearing footwear!" @@ -247082,7 +241966,7 @@ msgstr "%s не может надеть так много вещей на гол #: src/character.cpp #, c-format msgid "You cannot unwield your %s." -msgstr "Вы не можете выпустить из рук %s." +msgstr "Вы не можете выпустить из рук предмет (%s)." #: src/character.cpp msgid "Liquid from your inventory has leaked onto the ground." @@ -247096,7 +241980,7 @@ msgstr "Ваше сердцебиение учащается, когда вы в #, c-format msgid "Your knowledge of %s begins to fade, but your memory banks retain it!" msgstr "" -"Ваши знания и навыки в области %s стали угасать, но банки памяти смогли " +"Ваши знания и умения в навыке (%s) стали угасать, но банки памяти смогли " "восстановить их!" #: src/character.cpp @@ -247107,22 +241991,22 @@ msgstr "Навык %s понизился до %d!" #: src/character.cpp #, c-format msgid "You cannot swap the side on which your %s is worn." -msgstr "Вы не можете сменить сторону, с которой носите %s." +msgstr "Вы не можете сменить сторону, с которой носите предмет (%s)." #: src/character.cpp #, c-format msgid " cannot swap the side on which their %s is worn." -msgstr " не может сменить сторону, с которой носит %s." +msgstr " не может сменить сторону, с которой носит предмет (%s)." #: src/character.cpp #, c-format msgid "You swap the side on which your %s is worn." -msgstr "Вы сменяете сторону, с которой носите %s." +msgstr "Вы сменяете сторону, с которой носите предмет (%s)." #: src/character.cpp #, c-format msgid " swaps the side on which their %s is worn." -msgstr " меняет сторону, с которой носит %s." +msgstr " меняет сторону, с которой носит предмет (%s)." #: src/character.cpp src/player.cpp msgid "You are not wearing that item." @@ -247155,22 +242039,18 @@ msgstr "Жажда" #: src/character.cpp msgid "Turgid" -msgstr "Разбух" +msgstr "Напились" #: src/character.cpp msgid "Hydrated" -msgstr "Упился" +msgstr "Упились" #: src/character.cpp msgid "Slaked" -msgstr "Напился" - -#: src/character.cpp -msgid "Engorged" -msgstr "Объелся" +msgstr "Утолили жажду" #: src/character.cpp -msgid "Sated" +msgid "Satisfied" msgstr "Сытость" #: src/character.cpp @@ -247181,21 +242061,21 @@ msgstr "Голод" msgid "Very Hungry" msgstr "Сильный голод" -#: src/character.cpp -msgid "Starving!" -msgstr "Истощение!" - #: src/character.cpp msgid "Near starving" msgstr "Жуткий голод" +#: src/character.cpp +msgid "Starving!" +msgstr "Истощение!" + #: src/character.cpp msgid "Famished" msgstr "Ужасный голод" #: src/character.cpp -msgid "Peckish" -msgstr "Перекусить бы" +msgid "ERROR!" +msgstr "ОШИБКА!" #: src/character.cpp src/npctalk.cpp msgid "Exhausted" @@ -247203,7 +242083,7 @@ msgstr "Переутомление" #: src/character.cpp msgid "Dead Tired" -msgstr "Устал до смерти" +msgstr "Жуткая усталость" #: src/character.cpp msgid "Pain " @@ -247227,7 +242107,7 @@ msgstr "Продезинфицированные раны на части тел #: src/character.cpp #, c-format msgid "You're feeling tired. %s to lie down for sleep." -msgstr "Вы чувствуете себя очень уставшим. %s, чтобы лечь спать." +msgstr "Вы чувствуете сильную усталость. %s, чтобы лечь спать." #: src/character.cpp msgid "You're feeling tired." @@ -247235,28 +242115,48 @@ msgstr "Вы устали." #: src/character.cpp msgid "You're cramping up from stuffing yourself in this vehicle." -msgstr "Вас скрючивает от втискивания себя в эту машину." +msgstr "Вас скрючивает от попытки уместиться в эту машину." #: src/character.cpp msgid "You have a sudden heart attack!" msgstr "У вас случился сердечный приступ!" +#: src/character.cpp +msgid " has a sudden heart attack!" +msgstr "У NPC () сердечный приступ!" + #: src/character.cpp msgid "Your breathing stops completely." msgstr "Ваше дыхание полностью остановилось." +#: src/character.cpp +msgid "'s breathing stops completely." +msgstr "Дыхание NPC () полностью остановилось. " + #: src/character.cpp msgid "Your heart spasms painfully and stops." msgstr "Ваше сердце болезненно сжимается и останавливается." +#: src/character.cpp +msgid "'s heart spasms painfully and stops." +msgstr "Сердце NPC () болезненно сжимается и останавливается." + #: src/character.cpp msgid "Your heart spasms and stops." msgstr "Ваше сердце болезненно сжимается и останавливается." +#: src/character.cpp +msgid "'s heart spasms and stops." +msgstr "Сердце () сжимается и останавливается." + #: src/character.cpp msgid "Your breathing slows down to a stop." msgstr "Ваше дыхание замедляется и останавливается насовсем." +#: src/character.cpp +msgid "'s breathing slows down to a stop." +msgstr "Дыхание NPC () замедляется и останавливается насовсем." + #: src/character.cpp msgid "You have starved to death." msgstr "Вы умерли от голода." @@ -247345,35 +242245,35 @@ msgstr " падает наземь от истощения." #: src/character.cpp #, c-format msgid "Your %s will be frostnipped in the next few hours." -msgstr "Ваш %s замёрзнет через несколько часов." +msgstr "Ваша часть тела (%s) замёрзнет через несколько часов." #: src/character.cpp #, c-format msgid "Your %s will be frostbitten within the hour!" -msgstr "Ваша %s замёрзнет в течение часа!" +msgstr "Ваша часть тела (%s) замёрзнет в течение часа!" #: src/character.cpp #, c-format msgid "Your %s will be frostbitten any minute now!" -msgstr "Ваша %s замёрзнет в любую минуту!" +msgstr "Вы заработаете обморожение (%s) в любую минуту!" #. ~ %s is bodypart #: src/character.cpp #, c-format msgid "You feel your %s beginning to go numb from the cold!" -msgstr "Вы чувствуете, что ваш %s начинает неметь от холода!" +msgstr "Вы чувствуете, что %s начинает неметь от холода!" #. ~ %s is bodypart #: src/character.cpp #, c-format msgid "You feel your %s getting very cold." -msgstr "Вы чувствуете, что ваш %s сильно мёрзнет." +msgstr "Вы чувствуете, что %s сильно мёрзнет." #. ~ %s is bodypart #: src/character.cpp #, c-format msgid "You feel your %s getting chilly." -msgstr "Вы чувствуете, что ваш %s бросает в дрожь." +msgstr "Вы чувствуете, что %s бросает в дрожь." #. ~ %s is bodypart #: src/character.cpp @@ -247385,13 +242285,13 @@ msgstr "Вы чувствуете, как %s краснеет от жары!" #: src/character.cpp #, c-format msgid "You feel your %s getting very hot." -msgstr "Вы чувствуете, что ваш %s сильно разгорячён." +msgstr "Вы чувствуете, что %s перегревается." #. ~ %s is bodypart #: src/character.cpp #, c-format msgid "You feel your %s getting warm." -msgstr "Вы чувствуете, что ваш %s бросает в жар." +msgstr "Вы чувствуете, что %s ощущает жар." #: src/character.cpp msgid "Your shivering prevents you from sleeping." @@ -247412,14 +242312,16 @@ msgid "" "The wind is very strong, you should find some more wind-resistant clothing " "for your %s." msgstr "" -"Ветер очень сильный, вы должны найти непродуваемую одежду для вашей %s." +"Ветер очень сильный, %s будет меньше мёрзнуть, если вы найдёте непродуваемую" +" одежду." #: src/character.cpp #, c-format msgid "" "Your clothing is not providing enough protection from the wind for your %s!" msgstr "" -"Ваша одежда не обеспечивает достаточный уровень защиты от ветра для %s!" +"%s ощущает каждый порыв ветра. Ваша одежда не обеспечивает достаточный " +"уровень защиты от погоды!" #: src/character.cpp msgid "Left Arm" @@ -247541,10 +242443,16 @@ msgstr "Это не поможет ни одной конечности." msgid "Cancel" msgstr "Отмена" +#. ~ you filled to the brim with +#: src/character.cpp +#, c-format +msgid "You filled %1$s to the brim with %2$s." +msgstr "Вы налили жидкость (%2$s) в контейнер (%1$s) до краев." + #: src/character.cpp src/iexamine.cpp #, c-format msgid "You pour %1$s into the %2$s." -msgstr "Вы наливаете %1$s в контейнер (%2$s)." +msgstr "Вы наливаете жидкость (%1$s) в контейнер (%2$s)." #: src/character.cpp src/veh_interact.cpp msgid "There's some left over!" @@ -247553,13 +242461,13 @@ msgstr "Там ещё осталось!" #: src/character.cpp #, c-format msgid "Select target tank for %.1fL %s" -msgstr "Выберите бак для %.1f л %s" +msgstr "Выберите бак для %.1f л - %s" #. ~ $1 - vehicle name, $2 - part name, $3 - liquid type #: src/character.cpp #, c-format msgid "You refill the %1$s's %2$s with %3$s." -msgstr "Вы используете %3$s, чтобы заправить %2$s (%1$s)." +msgstr "Вы заполняете жидкостью (%3$s) ёмкость - %2$s (%1$s)." #: src/character.cpp #, c-format @@ -247737,7 +242645,7 @@ msgstr "Ваше тело напряжено под такой тяжестью! #: src/character.cpp #, c-format msgid "Dispose of %s" -msgstr "Избавиться от %s" +msgstr "Избавиться от предмета (%s)" #: src/character.cpp msgid "Spill contents and store in inventory" @@ -247762,29 +242670,29 @@ msgstr "Надеть предмет" #: src/character.cpp #, c-format msgid "Store in %s" -msgstr "Положить в %s" +msgstr "Положить в контейнер (%s)" #: src/character.cpp msgid " | Moves " -msgstr " | Шагов " +msgstr " | Ходов " #: src/character.cpp #, c-format msgid "Your %s needs %d charge from some UPS." msgid_plural "Your %s needs %d charges from some UPS." -msgstr[0] "Для %s требуется %d заряд от УБП." -msgstr[1] "Для %s требуется %d заряда от УБП." -msgstr[2] "Для %s требуется %d зарядов от УБП." -msgstr[3] "Для %s требуется %d заряд от УБП." +msgstr[0] "Для работы предмета (%s) требуется %d заряд от УБП." +msgstr[1] "Для работы предмета (%s) требуется %d заряда от УБП." +msgstr[2] "Для работы предмета (%s) требуется %d зарядов от УБП." +msgstr[3] "Для работы предмета (%s) требуется %d заряд от УБП." #: src/character.cpp #, c-format msgid "Your %s has %d charge but needs %d." msgid_plural "Your %s has %d charges but needs %d." -msgstr[0] "Ваш %s имеет %d заряд, а нужно как минимум %d." -msgstr[1] "Ваш %s имеет %d заряда, а нужно как минимум %d." -msgstr[2] "Ваш %s имеет %d зарядов, а нужно как минимум %d." -msgstr[3] "Ваш %s имеет %d заряд, а нужно как минимум %d." +msgstr[0] "У предмета (%s) %d заряд, а нужно как минимум %d." +msgstr[1] "У предмета (%s) %d заряда, а нужно как минимум %d." +msgstr[2] "У предмета (%s) %d зарядов, а нужно как минимум %d." +msgstr[3] "У предмета (%s) %d заряд, а нужно как минимум %d." #: src/character.cpp msgid "You cough heavily." @@ -247840,7 +242748,7 @@ msgstr "Звук вашего голоса значительно заглушё #: src/character.cpp msgid " throws up heavily!" -msgstr "У сильная рвота!" +msgstr "У NPC () сильная рвота!" #: src/character.cpp msgid "You throw up heavily!" @@ -247876,13 +242784,13 @@ msgstr "ОШБ" #, c-format msgctxt "memorial_male" msgid "Worn %s was completely destroyed." -msgstr "Одетый на вас %s полностью уничтожен." +msgstr "Ваш предмет одежды (%s) полностью уничтожен." #: src/character.cpp #, c-format msgctxt "memorial_female" msgid "Worn %s was completely destroyed." -msgstr "Одетый на вас %s полностью уничтожен." +msgstr "Ваш предмет одежды (%s) полностью уничтожен." #: src/character.cpp #, c-format @@ -247924,27 +242832,27 @@ msgstr "Слизь отрывается от вас и действует сам #: src/character.cpp #, c-format msgid "Your acidic blood splashes %s in mid-attack!" -msgstr "Ваша кислотная кровь обрызгивает %s во время атаки!" +msgstr "Ваша кислотная кровь обрызгивает противника (%s) во время атаки!" #: src/character.cpp #, c-format msgid "%1$s's acidic blood splashes on %2$s in mid-attack!" -msgstr "Кислотная кровь (%1$s) брызгает на %2$s во время атаки!" +msgstr "Кислотная кровь (%1$s) брызгает на другого (%2$s) во время атаки!" #: src/character.cpp src/monattack.cpp #, c-format msgid "The %s tries to grab you as well, but you bat it away!" -msgstr "Вас пытается схватить %s, но вы отшвыриваете его!" +msgstr "Вас пытается схватить %s, но вы отшвыриваете противника!" #: src/character.cpp #, c-format msgid " is grabbed by %s!" -msgstr "%s схватил !" +msgstr "%s схватил NPC ()!" #: src/character.cpp #, c-format msgid "You are grabbed by %s!" -msgstr "Вас схватил %s!" +msgstr "Вас хватает %s!" #: src/character.cpp msgid "Filth from your clothing has implanted deep in the wound." @@ -247973,7 +242881,7 @@ msgstr "Часть тела (%s) больше не продезинфициро #: src/character.cpp #, c-format msgid "You were attacked by %s!" -msgstr "Вас атаковал %s!" +msgstr "Вас атакует %s!" #: src/character.cpp msgid "You were hurt!" @@ -248022,12 +242930,12 @@ msgstr "Вы используете вашу кучу одежды, чтобы #: src/character.cpp #, c-format msgid "You snuggle your %s to keep warm." -msgstr "Вы прижимаетесь к %s, чтобы сохранить тепло." +msgstr "Вы закутываетесь, %s поможет сохранить тепло." #: src/character.cpp #, c-format msgid "You use your %s to keep warm." -msgstr "Вы сохраняете тепло при помощи %s." +msgstr "Вы сохраняете тепло - у вас есть %s." #: src/character.cpp msgctxt "memorial_male" @@ -248046,18 +242954,18 @@ msgid "" "Do you want to crush up %1$s with your %2$s?\n" "Be wary of fragile items nearby!" msgstr "" -"Хотите разбить %1$s при помощи %2$s?\n" +"Хотите разбить замёрзший предмет (%1$s) при помощи подходящего инструмента (%2$s)?\n" "Осторожнее с хрупкими предметами поблизости!" #: src/character.cpp #, c-format msgid "You swing your %s wildly!" -msgstr "Вы берёте %s и дико размахиваетесь!" +msgstr "Вы берёте инструмент (%s) и дико размахиваетесь!" #: src/character.cpp #, c-format msgid "You crush up and gather %s" -msgstr "Вы разбиваете и собираете %s" +msgstr "Вы разбиваете замёрзшее (%s) и собираете осколки" #: src/character.cpp msgid "You need a hammering tool to crush up frozen liquids!" @@ -248065,7 +242973,7 @@ msgstr "" "Вам понадобится молоток или что-то подобное, чтобы разбить замёрзшие " "жидкости!" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp src/npc.cpp msgid "Wielding: " msgstr "В руках: " @@ -248077,15 +242985,11 @@ msgstr "Надето: " msgid "Traits: " msgstr "Черты: " -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "Вы (%s)" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." -msgstr "Вы выучили %s путём интенсивных тренировок с бионикой ближнего боя." +msgstr "" +"Вы выучили стиль (%s) путём интенсивных тренировок с бионикой ближнего боя." #: src/character_martial_arts.cpp #, c-format @@ -248106,7 +243010,7 @@ msgstr "Вы не можете автоматически поднимать в #: src/clzones.cpp msgid "No NPC Pickup" -msgstr "Без подбора у нейтралов" +msgstr "Без подбора NPC" #: src/clzones.cpp msgid "Friendly NPCs don't pickup items inside the zone." @@ -248147,7 +243051,7 @@ msgstr "" #: src/clzones.cpp msgid "Source: Firewood" -msgstr "Источник: дров" +msgstr "Источник: дрова" #: src/clzones.cpp msgid "" @@ -248193,7 +243097,7 @@ msgstr "Место, предназначенное для ловли рыбы." #: src/clzones.cpp msgid "Mine Terrain" -msgstr "Копать здесь" +msgstr "Место для раскопок" #: src/clzones.cpp msgid "Designate an area to mine." @@ -248209,7 +243113,7 @@ msgstr "Все машины в этой зоне помечаются как п #: src/clzones.cpp msgid "Vehicle Repair Zone" -msgstr "Область Ремонта Машин" +msgstr "Область ремонта машин" #: src/clzones.cpp msgid "Any vehicles in this area are marked for repair work." @@ -248374,7 +243278,7 @@ msgstr "светло-синий" #: src/color.cpp msgid "blue" -msgstr "в печали" +msgstr "синий" #: src/color.cpp msgid "white" @@ -248398,7 +243302,7 @@ msgstr "розовый" #: src/color.cpp msgid "emove custom color" -msgstr " убрать пользовательский цвет" +msgstr " — убрать пользовательский цвет" #: src/color.cpp msgid " To navigate" @@ -248406,7 +243310,7 @@ msgstr " — перемещение" #: src/color.cpp msgid "Load emplate" -msgstr "Загрузить шаблон " +msgstr " — загрузить шаблон" #: src/color.cpp msgid "Some color changes may require a restart." @@ -248573,7 +243477,7 @@ msgstr "Ядерная ракета обезврежена!" #: src/computer_session.cpp msgid "Nuclear missile remains active." -msgstr "Останки ядерной ракеты активны." +msgstr "Ядерная ракета остаётся активной." #: src/computer_session.cpp msgid "Bionic access - Manifest:" @@ -248612,7 +243516,7 @@ msgid "" "PERTINENT FOREMAN LOGS WILL BE PREPENDED TO NOTES" msgstr "" "МЕСТО РАСКОПОК %d%d%d\n" -"ВСЕ ЖУРНАЛЫ БРИГАДИРА БУДУТ ВЗЯТЫ НА ЗАМЕТКУ" +"ВСЕ РЕЛЕВАНТНЫЕ ЗАПИСИ БРИГАДИРА БУДУТ ПРИКРЕПЛЕНЫ" #: src/computer_session.cpp msgid "FILE CORRUPTED, PRESS ANY KEY…" @@ -248648,7 +243552,7 @@ msgstr "Программа скачана." #: src/computer_session.cpp msgid "USB drive required!" -msgstr "Требуется USB диск!" +msgstr "Требуется USB-хранилище!" #: src/computer_session.cpp msgid "ERROR: Please place sample in centrifuge." @@ -248796,7 +243700,7 @@ msgstr "Заряды детонировали" #: src/computer_session.cpp msgid "Backup Generator Power Failing" -msgstr "Запасной генератор выходит из строя" +msgstr "Отказ запасного генератора" #: src/computer_session.cpp msgid "Evacuate Immediately" @@ -249082,7 +243986,7 @@ msgstr " Строительство " #: src/construction.cpp msgid "You can not construct anything here." -msgstr "Вы не может здесь ничего построить." +msgstr "Вы не можете здесь ничего построить." #: src/construction.cpp msgid "Move tab right" @@ -249211,15 +244115,17 @@ msgid "" "You feel sadness, but also relief after providing last rites for %s, whose " "name you will keep in your memory." msgstr "" -"Вы чувствуете печаль, но и облегчение после завершения прощального ритуала " -"для %s, чьё имя будет жить в вашей памяти." +"Вы чувствуете печаль, но и облегчение после завершения прощального ритуала. " +"%s - это имя будет жить в вашей памяти." #: src/construction.cpp #, c-format msgid "" "You bury remains of %s, who joined uncounted masses perished in the " "Cataclysm." -msgstr "Вы хороните останки %s, ещё одной из бесчисленных жертв Катаклизма." +msgstr "" +"Вы хороните останки. %s - ещё одна потеря среди бесчисленных жертв " +"Катаклизма." #: src/construction.cpp msgid "Inscribe something on the grave?" @@ -249238,17 +244144,17 @@ msgstr "Введите новое название транспортного с #: src/construction.cpp #, c-format msgid "That %s can not be disassembled!" -msgstr "Нельзя разобрать %s!" +msgstr "Нельзя разобрать это (%s)!" #: src/construction.cpp #, c-format msgid "The %s is disassembled." -msgstr "%s разобран." +msgstr "Объект (%s) разобран." #: src/construction.cpp #, c-format msgid "That %s can not be disassembled, since there is furniture above it." -msgstr "Нельзя разобрать %s, так как над ним есть предметы." +msgstr "Нельзя разобрать это (%s), так как здесь есть предметы обстановки." #: src/construction.cpp msgid "The rock feels much warmer than normal. Proceed?" @@ -249288,11 +244194,11 @@ msgstr "После заколачивания окна остались зана #: src/construction.cpp msgid "You gather some clay." -msgstr "Вы получили глину." +msgstr "Вы собрали немного глины." #: src/construction.cpp msgid "You gather some sand." -msgstr "Вы получили песок." +msgstr "Вы собрали немного песка." #: src/construction.cpp msgid "You gather some materials." @@ -249324,10 +244230,10 @@ msgstr "Это выглядит несъедобным в текущем вид #: src/consumption.cpp msgid "This is full of dirt after being on the ground." -msgstr "Тут полно грязи после падения на землю." +msgstr "Это выглядит грязным после падения на землю." #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/player.cpp +#: src/iuse_actor.cpp src/iuse_actor.cpp msgid "You can't do that while underwater." msgstr "Вы не можете это делать под водой." @@ -249340,14 +244246,14 @@ msgstr "" msgid "You can't drink it while it's frozen." msgstr "Невозможно пить замороженные напитки." -#: src/consumption.cpp src/player.cpp +#: src/consumption.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." -msgstr "Вы не можете это съесть. Это неприемлемо для вас." +msgstr "Мы не можем это съесть. Это неприемлемо для нас." #: src/consumption.cpp msgid "Ugh, you can't drink that!" @@ -249369,10 +244275,18 @@ msgstr "Вы не можете это есть." msgid "This is rotten and smells awful!" msgstr "Это сгнило и воняет просто ужасно!" +#: src/consumption.cpp +msgid "The thought of eating demihuman flesh makes you feel sick." +msgstr "Вас тошнит от одной мысли о поедании получеловеческой плоти." + #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." msgstr "Вас тошнит от одной мысли о поедании человечины." +#: src/consumption.cpp +msgid "Eating this raw meat probably isn't very healthy." +msgstr "Употребление этого сырого мяса, вероятно, не очень полезно." + #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." msgstr "Вы всё ещё чувствуете тошноту и, скорее всего, вас снова вырвет." @@ -249400,17 +244314,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 msgid "" @@ -249435,12 +244349,12 @@ 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 @@ -249450,32 +244364,32 @@ 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 "" @@ -249543,7 +244457,7 @@ msgstr "Что-то дёргается на краю вашего зрения." #: src/consumption.cpp msgid "They know what you've done…" -msgstr "Они знают, что ты наделал…" +msgstr "Они знают, что вы натворили…" #: src/consumption.cpp msgid "You're feeling even more paranoid than usual." @@ -249653,7 +244567,7 @@ msgstr "Вы чувствуете, как %s наполняет вас." #: src/consumption.cpp #, c-format msgid " looks better after eating the %s." -msgstr " выглядит лучше, после того как съел %s." +msgstr " выглядит лучше, после того как съедает что-то (%s)." #: src/consumption.cpp msgid "That is a LOT of plutonium. Are you sure you want that much?" @@ -249662,28 +244576,32 @@ 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 @@ -249691,8 +244609,8 @@ msgid "" "You digest your %s, but you're fully powered already, so the energy is " "wasted." msgstr "" -"Вы перевариваете %s, но, поскольку ваша энергия и так на максимуме, то она " -"пропадает впустую." +"Вы перевариваете съеденное (%s), но, поскольку ваша энергия и так на " +"максимуме, то она пропадает впустую." #: src/consumption.cpp #, c-format @@ -249700,64 +244618,84 @@ msgid "" " digests a %s for energy, they're fully powered already, so the " "energy is wasted." msgstr "" -" переваривает %s, но, поскольку энергия и так на максимуме, то она " -"пропадает впустую." +" переваривает съеденное (%s), но, поскольку энергия и так на " +"максимуме, то она пропадает впустую." #: src/consumption.cpp #, c-format msgid "You digest %d %s and recharge %d point of energy." msgid_plural "You digest %d %s and recharge %d points of energy." -msgstr[0] "Вы перевариваете %d %s и получаете %d единицу энергии." -msgstr[1] "Вы перевариваете %d %s и получаете %d единицы энергии." -msgstr[2] "Вы перевариваете %d %s и получаете %d единиц энергии." -msgstr[3] "Вы перевариваете %d %s и получаете %d единицу энергии." +msgstr[0] "" +"Вы перевариваете %d съеденного (%s) и получаете %d единицу энергии." +msgstr[1] "" +"Вы перевариваете %d съеденного (%s) и получаете %d единицы энергии." +msgstr[2] "Вы перевариваете %d съеденного (%s) и получаете %d единиц энергии." +msgstr[3] "" +"Вы перевариваете %d съеденного (%s) и получаете %d единицу энергии." #: src/consumption.cpp #, 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[1] " переваривает %d %s и получает %d единицы энергии." -msgstr[2] " переваривает %d %s и получает %d единиц энергии." -msgstr[3] " переваривает %d %s и получает %d единицу энергии." +msgstr[0] "" +" переваривает %d съеденного (%s) и получает %d единицу энергии." +msgstr[1] "" +" переваривает %d съеденного (%s) и получает %d единицы энергии." +msgstr[2] "" +" переваривает %d съеденного (%s) и получает %d единиц энергии." +msgstr[3] "" +" переваривает %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[1] "Вы перевариваете %s и получаете %d единицы энергии." -msgstr[2] "Вы перевариваете %s и получаете %d единиц энергии." -msgstr[3] "Вы перевариваете %s и получаете %d единицу энергии." +msgstr[0] "Вы перевариваете съеденное (%s) и получаете %d единицу энергии." +msgstr[1] "Вы перевариваете съеденное (%s) и получаете %d единицы энергии." +msgstr[2] "Вы перевариваете съеденное (%s) и получаете %d единиц энергии." +msgstr[3] "Вы перевариваете съеденное (%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[1] " переваривает %s и получает %d единицы энергии." -msgstr[2] " переваривает %s и получает %d единиц энергии." -msgstr[3] " переваривает %s и получает %d единицу энергии." +msgstr[0] "" +" переваривает съеденное (%s) и получает %d единицу энергии." +msgstr[1] "" +" переваривает съеденное (%s) и получает %d единицы энергии." +msgstr[2] "" +" переваривает съеденное (%s) и получает %d единиц энергии." +msgstr[3] "" +" переваривает съеденное (%s) и получает %d единицу энергии." #. ~ %1$i: charge number, %2$s: item name, %3$s: bionics name #: src/consumption.cpp #, c-format msgid "You load %1$i charge of %2$s in your %3$s." msgid_plural "You load %1$i charges of %2$s in your %3$s." -msgstr[0] "Вы помещаете %1$i заряд %2$s себе в %3$s." -msgstr[1] "Вы помещаете %1$i заряда %2$s себе в %3$s." -msgstr[2] "Вы помещаете %1$i зарядов %2$s себе в %3$s." -msgstr[3] "Вы помещаете %1$i зарядов %2$s себе в %3$s." +msgstr[0] "Вы помещаете %1$i заряд (%2$s) себе в %3$s." +msgstr[1] "Вы помещаете %1$i заряда (%2$s) себе в %3$s." +msgstr[2] "Вы помещаете %1$i зарядов (%2$s) себе в %3$s." +msgstr[3] "Вы помещаете %1$i зарядов (%2$s) себе в %3$s." #. ~ %1$i: charge number, %2$s: item name, %3$s: bionics name #: src/consumption.cpp #, c-format msgid " load %1$i charge of %2$s in their %3$s." msgid_plural " load %1$i charges of %2$s in their %3$s." -msgstr[0] " помещает %1$i заряд %2$s себе в %3$s." -msgstr[1] " помещает%1$i заряда %2$s себе в %3$s." -msgstr[2] " помещает%1$i зарядов %2$s себе в %3$s." -msgstr[3] " помещает%1$i зарядов %2$s себе в %3$s." +msgstr[0] " помещает %1$i заряд (%2$s) себе в %3$s." +msgstr[1] " помещает%1$i заряда (%2$s) себе в %3$s." +msgstr[2] " помещает%1$i зарядов (%2$s) себе в %3$s." +msgstr[3] " помещает%1$i зарядов (%2$s) себе в %3$s." + +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "У вас нет этого предмета." + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "Вы не можете съесть это (%s)." #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" @@ -249765,7 +244703,7 @@ msgstr " (поблизости)" #: src/craft_command.cpp msgid " (person & nearby)" -msgstr "(на персонаже и на полу)" +msgstr "(на персонаже и поблизости)" #: src/craft_command.cpp #, c-format @@ -249773,7 +244711,7 @@ msgid "" "You don't have enough charges to complete the %s.\n" "Start crafting anyway?" msgstr "" -"Не хватает зарядов для завершения %s.\n" +"Не хватает зарядов для завершения производства - %s.\n" "Всё равно начать изготовление?" #: src/craft_command.cpp @@ -249819,7 +244757,7 @@ 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 слишком большой или тяжёлый, чтобы с ним работать. Вам следует " +"Это (%s) слишком большое или тяжёлое, чтобы с ним работать. Вам следует " "использовать верстак или уменьшить размер партии" #: src/crafting.cpp @@ -249840,8 +244778,8 @@ msgid "" "The %s is to large and/or heavy to work on comfortably. You are working " "slowly." msgstr "" -"%s слишком большой или тяжёлый, чтобы удобно с ним работать. Вы работаете " -"медленнее." +"Это (%s) слишком большое или тяжёлыое, чтобы было удобно с ним работать. Вы " +"работаете медленнее." #: src/crafting.cpp msgid "You can't focus and are working slowly." @@ -249858,11 +244796,11 @@ msgstr "Вы больше не можете это собрать!" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" msgstr "" -"Вам не во что налить %s, так что по завершению готовки придётся это выпить " -"или вылить! Продолжить?" +"Вам не во что налить жидкость (%s), так что по завершению готовки придётся " +"это выпить или вылить! Продолжить?" #: src/crafting.cpp src/pickup.cpp #, c-format @@ -249878,48 +244816,49 @@ msgstr "В руках — %s" #, c-format msgctxt "item, furniture" msgid "You put the %1$s on the %2$s." -msgstr "Вы кладёте %1$s на %2$s." +msgstr "Вы кладёте предмет (%1$s) на рабочую поверхность (%2$s)." #: src/crafting.cpp #, c-format msgctxt "item, furniture" msgid " puts the %1$s on the %2$s." -msgstr " кладёт %1$s на %2$s." +msgstr " кладёт прдемет (%1$s) на рабочую поверхность (%2$s)." #: src/crafting.cpp #, c-format msgctxt "furniture, item" msgid "Not enough space on the %s. You drop the %s on the ground." -msgstr "На %s недостаточно места. Вы выбрасываете %s на землю." +msgstr "Здесь (%s) недостаточно места. Вы выбрасываете предмет (%s) на землю." #: src/crafting.cpp #, c-format msgctxt "furniture, item" msgid "Not enough space on the %s. drops the %s on the ground." -msgstr "На %s недостаточно места. выбрасывает %s на землю." +msgstr "" +"Здесь (%s) недостаточно места. выбрасывает предмет (%s) на землю." #: src/crafting.cpp #, c-format msgctxt "item" msgid "You put the %s on the ground." -msgstr "Вы выкладываете %s на землю." +msgstr "Вы выкладываете предмет (%s) на землю." #: src/crafting.cpp #, c-format msgctxt "item" msgid " puts the %s on the ground." -msgstr " выкладывает %s на землю." +msgstr " выкладывает предмет (%s) на землю." #: src/crafting.cpp #, c-format msgctxt "in progress craft" msgid "What to do with the %s?" -msgstr "Что сделать с %s?" +msgstr "Что сделать с предметом (%s)?" #: src/crafting.cpp #, c-format msgid "Dispose of your wielded %s and start working." -msgstr "Избавиться от %s в руках и начать работу." +msgstr "Избавиться от предмета (%s) в руках и начать работу." #: src/crafting.cpp msgid "Put it down and start working." @@ -249936,19 +244875,19 @@ msgstr "Бросить на землю." #: src/crafting.cpp #, c-format msgid "Wield and activate the %s to start crafting." -msgstr "Возьмите и активируйте %s для начала изготовления." +msgstr "Возьмите и активируйте заготовку (%s) для начала изготовления." #: src/crafting.cpp src/iexamine.cpp src/iuse.cpp #, c-format msgctxt "in progress craft" msgid "You start working on the %s." -msgstr "Вы начинаете работать над %s." +msgstr "Вы начинаете работать над заготовкой (%s)." #: src/crafting.cpp src/iexamine.cpp src/iuse.cpp #, c-format msgctxt "in progress craft" msgid " starts working on the %s." -msgstr " начинает работать над %s" +msgstr " начинает работать над заготовкой (%s)." #: src/crafting.cpp #, c-format @@ -249973,12 +244912,12 @@ msgstr "%s помогает со сборкой…" #: src/crafting.cpp #, c-format msgid "You mess up and destroy the %s." -msgstr "Вы ошиблись и уничтожили %s." +msgstr "Вы ошиблись и уничтожили компоненты (%s)." #: src/crafting.cpp #, c-format msgid " messes up and destroys the %s" -msgstr " ошибается и уничтожает %s." +msgstr " ошибается и уничтожает компоненты (%s)." #: src/crafting.cpp #, c-format @@ -249993,17 +244932,17 @@ msgstr " ошибается и теряет %d%% прогресса." #: 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 msgid "You don't have the required components to continue crafting!" @@ -250069,12 +245008,16 @@ msgstr "Какой инструмент использовать?" #: src/crafting.cpp #, c-format msgid "You have insufficient %s charges and can't continue crafting" -msgstr "У вас недостаточно зарядов %s, и вы не можете продолжать сборку." +msgstr "" +"У вас недостаточно зарядов инструмента (%s), и вы не можете продолжать " +"сборку." #: src/crafting.cpp #, c-format msgid " has insufficient %s charges and can't continue crafting" -msgstr "У недостаточно зарядов %s, сборку продолжать нельзя." +msgstr "" +"У NPC () недостаточно зарядов инструмента (%s), сборку продолжать " +"нельзя." #: src/crafting.cpp #, c-format @@ -250131,7 +245074,7 @@ msgstr[3] "Вам требуется %1$s с %2$d зарядами." #: src/crafting.cpp #, c-format msgid "Disassembling the %s may anger the people who own it, continue?" -msgstr "Разборка %s не понравится владельцу. Продолжить?" +msgstr "Разборка этого (%s) не понравится владельцу. Продолжить?" #: src/crafting.cpp #, c-format @@ -250141,7 +245084,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" @@ -250260,7 +245203,7 @@ msgstr "" #: src/crafting_gui.cpp msgid "Press [ENTER] to attempt to craft object. D[e]scribe, [?]keybindings," msgstr "" -"Нажмите [enter]? чтобы попытаться создать объект. [e] - описание, [?] - " +"Нажмите [Enter], чтобы попытаться создать объект. [e] - описание, [?] - " "назначенные клавиши." #: src/crafting_gui.cpp @@ -250312,7 +245255,7 @@ msgstr "Сложно" #: src/crafting_gui.cpp msgid "Impossible" -msgstr "невозможно" +msgstr "Невозможно" #: src/crafting_gui.cpp msgid "Will use rotten ingredients" @@ -250649,6 +245592,11 @@ msgctxt "damage type" msgid "stab" msgstr "колотая рана" +#: src/damage.cpp +msgctxt "damage_type" +msgid "bullet" +msgstr "пуля" + #: src/damage.cpp msgctxt "damage type" msgid "heat" @@ -250837,6 +245785,14 @@ msgstr "Тест списка дополнительных локаций" msgid "Info…" msgstr "Информация…" +#: src/debug_menu.cpp +msgid "Enable achievements" +msgstr "Включить достижения" + +#: src/debug_menu.cpp +msgid "Game…" +msgstr "Игра..." + #: src/debug_menu.cpp msgid "Teleport - short range" msgstr "Телепорт на небольшие расстояния" @@ -250957,16 +245913,16 @@ msgstr "Вы телепортируетесь к точке (%d,%d,%d)." #: src/debug_menu.cpp #, c-format msgid "You teleport to submap (%d,%d,%d)." -msgstr "Вы телепортируетесь к submap (%d,%d,%d)." +msgstr "Вы телепортируетесь к подкарте (%d,%d,%d)." #: src/debug_menu.cpp msgid "Where is the desired overmap?" -msgstr "Где находится желаемая overmap?" +msgstr "Где находится желаемая точка глобальной карты?" #: src/debug_menu.cpp #, c-format msgid "You teleport to overmap (%d,%d,%d)." -msgstr "Вы телепортируетесь к overmap (%d,%d,%d)." +msgstr "Вы телепортируетесь к точке глобальной карты (%d,%d,%d)." #: src/debug_menu.cpp src/newcharacter.cpp src/player_display.cpp #: src/player_display.cpp @@ -251054,7 +246010,7 @@ msgstr "Игрок" #: src/debug_menu.cpp msgid "Edit [N]ame" -msgstr "Редактировать имя [N]" +msgstr "[N] редактировать имя" #: src/debug_menu.cpp msgid "Edit [s]kills" @@ -251082,7 +246038,7 @@ msgstr "[h] установить очки здоровья" #: src/debug_menu.cpp msgid "Set [S]tamina" -msgstr "Установить выносливость («S»)" +msgstr "[S] установить выносливость" #: src/debug_menu.cpp msgid "Set m[o]rale" @@ -251114,11 +246070,11 @@ msgstr "[e] телепортироваться" #: src/debug_menu.cpp msgid "Give the [f]lu" -msgstr "Заразить гриппом [f]" +msgstr "[f] заразить гриппом" #: src/debug_menu.cpp msgid "Cause asthma attac[k]" -msgstr "Вызвать приступ астмы [k]" +msgstr "[k] вызвать приступ астмы" #: src/debug_menu.cpp msgid "Edit [M]issions (WARNING: Unstable!)" @@ -251126,19 +246082,19 @@ msgstr "[M] Редактировать миссии (ВНИМАНИЕ: нест #: src/debug_menu.cpp msgid "Add [m]ission" -msgstr "Добавить [m]миссию" +msgstr "[m] добавить миссию" #: src/debug_menu.cpp msgid "Randomize with [c]lass" -msgstr "Выбрать случайный класс [c]" +msgstr "[c] выбрать случайный класс" #: src/debug_menu.cpp msgid "Set [A]ttitude" -msgstr "Установить Отношение [A]" +msgstr "[A] установить отношение " #: src/debug_menu.cpp msgid "Set [O]pinion" -msgstr "Установить отношение («O»)" +msgstr "[O] установить отношение" #: src/debug_menu.cpp msgid "Maximum strength" @@ -251283,6 +246239,10 @@ msgstr "Жажда" msgid "Fatigue" msgstr "Усталость" +#: src/debug_menu.cpp +msgid "Sleep Deprivation" +msgstr "Без сна" + #: src/debug_menu.cpp msgid "Reset all basic needs" msgstr "Сбросить все базовые потребности" @@ -251438,7 +246398,7 @@ msgstr "Удалить из %s missions_assigned" #: src/debug_menu.cpp #, c-format msgid "Removing from %s missions" -msgstr "Удалить %s из миссии" +msgstr "Удалить из %s миссий" #: src/debug_menu.cpp msgid "Fail mission" @@ -251481,16 +246441,16 @@ 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" +msgstr[2] "%d существ присутствуют.\n" +msgstr[3] "%d существ присутствуют.\n" #: src/debug_menu.cpp msgid "NPCs are going to spawn." -msgstr "NPC собираются зарождаться." +msgstr "NPC будут зарождаться." #: src/debug_menu.cpp msgid "NPCs are NOT going to spawn." -msgstr "NPC не собираются зарождаться." +msgstr "NPC не будут зарождаться." #: src/debug_menu.cpp #, c-format @@ -251675,6 +246635,14 @@ msgstr "Установить ход? (Один день равен %i ходов msgid "Enter benchmark length (in milliseconds):" msgstr "Укажите продолжительность бенчмарка (в миллисекундах):" +#: src/debug_menu.cpp +msgid "Achievements are already enabled" +msgstr "Достижения уже открыты" + +#: src/debug_menu.cpp +msgid "Achievements enabled" +msgstr "Достижения открыты" + #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " @@ -251921,7 +246889,7 @@ msgstr "область: %s L:%d[%s] A:%d" msgid "trap: %s (%d)" msgstr "ловушка: %s (%d)" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "Здесь %s. Части:" @@ -252048,7 +247016,7 @@ msgstr "урон: %d" #, c-format msgctxt "item manipulation debug menu entry" msgid "burnt: %d" -msgstr "обгорение: %d" +msgstr "обожжённость: %d" #: src/editmap.cpp msgctxt "item manipulation debug menu entry" @@ -252208,8 +247176,7 @@ msgid "" "Behind every good man there is a woman, and that woman was Martha " "Washington, man." msgstr "" -"За каждым хорошим человеком стоит женщина, а зовут её Марта Вашингтон, " -"чувак." +"За каждым хорошим мужчиной стоит женщина, а зовут её Марта Вашингтон, чувак." #: src/effect.cpp msgid "" @@ -252246,7 +247213,7 @@ msgstr "Внезапно вам хочется открыть Библию на #: src/effect.cpp msgid "That rug really tied the room together…" -msgstr "Этот ковёр действительно украшает комнату…" +msgstr "Этот ковёр действительно задаёт стиль всей комнате…" #: src/effect.cpp msgid "I used to do drugs… I still do, but I used to, too." @@ -252488,7 +247455,7 @@ msgstr "идеально" #: src/event_statistics.cpp #, c-format msgid "%2$s %1$s" -msgstr "%2$s%1$s" +msgstr "%2$s %1$s" #: src/explosion.cpp msgid "force of the explosion" @@ -254900,6 +249867,11 @@ msgstr "Дерево вырастает в грибной цветок!" msgid "You completed the achievement \"%s\"." msgstr "Вы получили достижение «%s»." +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "Вы не выполнили ограничение «%s»." + #: src/game.cpp src/options.cpp #, c-format msgid "Loading the tileset failed: %s" @@ -255069,6 +250041,16 @@ msgctxt "action" msgid "disassemble" msgstr "разобрать" +#: src/game.cpp +msgctxt "action" +msgid "insert" +msgstr "вставить" + +#: src/game.cpp +msgctxt "action" +msgid "open" +msgstr "открыть" + #: src/game.cpp msgctxt "action" msgid "unfavorite" @@ -255606,11 +250588,6 @@ msgstr "Без дополнительного топлива будет горе msgid "Without extra fuel it will burn for between %s to %s." msgstr "Без дополнительного топлива будет гореть от %s до %s." -#: src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "Во время езды верхом этого делать нельзя." - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "Нельзя взаимодействовать с транспортом во время езды верхом." @@ -255645,6 +250622,44 @@ msgstr "Поблизости нечего подобрать." msgid "Peek where?" msgstr "Куда выглянуть?" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "крохотное" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "небольшое" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "среднее" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "большое" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "огромное" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "Вы видите фигуру, излучающую тепло." + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "Оно %s по размеру." + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "Вы чувствуете создание поблизости." + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -255686,17 +250701,17 @@ msgstr "Невидно." #: src/game.cpp #, c-format -msgid "%s; Impassable" -msgstr "%s; Непроходимо" +msgid "Cover: %d%%" +msgstr "Укрытие: %d%%" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" -msgstr "%s; Цена движения %d" +msgid "Impassable" +msgstr "Непроходимо" #: src/game.cpp -msgid "Lighting: " -msgstr "Освещение: " +#, c-format +msgid "Move cost: %d" +msgstr "Цена движения: %d" #: src/game.cpp #, c-format @@ -255704,8 +250719,8 @@ msgid "Sign: %s" msgstr "Знак: %s" #: src/game.cpp -msgid "Sign: ???" -msgstr "Знак: ???" +msgid "Lighting: " +msgstr "Освещение: " #: src/game.cpp #, c-format @@ -255717,16 +250732,15 @@ msgstr "Ниже: %s; Нет поддержки" msgid "Below: %s; Walkable" msgstr "Ниже: %s; Проходимо" -#: src/game.cpp -#, c-format -msgid "Coverage: %d%%" -msgstr "Прикрытие: %d%%" - #: src/game.cpp #, c-format msgid "Unfinished task: %s, %d%% complete" msgstr "Работа в процессе: %s, %d%% завершено" +#: src/game.cpp +msgid "Vehicle: " +msgstr "Транспорт: " + #: src/game.cpp msgid "You cannot see what is inside of it." msgstr "Вы не можете увидеть, что находится внутри." @@ -255747,11 +250761,11 @@ msgstr "%s [%d]" #: src/game.cpp msgid "how all / hide distant" -msgstr "показать все / спрятать удаленные" +msgstr ":показать все / спрятать удаленные" #: src/game.cpp msgid "ap" -msgstr "ББ" +msgstr ":карта" #: src/game.cpp msgid "Zones manager" @@ -255834,7 +250848,7 @@ msgstr ":Изучить" #: src/game.cpp msgid "ompare" -msgstr "равнить" +msgstr ":Сравнить" #: src/game.cpp msgid "ilter" @@ -256147,7 +251161,7 @@ msgstr "Вам требуется как минимум один %s, чтобы msgid "The %s is already full!" msgstr "%s уже полон!" -#: src/game.cpp src/ranged.cpp +#: src/game.cpp #, c-format msgid "You can't reload a %s!" msgstr "Вы не можете перезарядить %s!" @@ -256917,8 +251931,40 @@ msgid "Speed %s%d!" msgstr "Скорость %s%d!" #: src/game.cpp -msgid "You slip while climbing and fall down again." -msgstr "Вы соскальзываете и падаете вниз." +msgid "Your skill in parkour makes it easier to climb." +msgstr "Благодаря вашим навыкам в паркуре вы легко взбираетесь вверх." + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "Из-за ваших больных коленей вам трудно взбираться." + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "Из-за того, что ваши ноги мокрые, вам труднее взбираться." + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "Из-за того, что ваши руки мокрые, вам труднее взбираться." + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "И-за тяжести вашего веса вам труднее взбираться." + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "Вы с усилием взбираетесь, вес ваших вещей усложняет задачу." + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "Вы чувствуете, как вес вашей поклажи усложняет подъём." + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "Из-за веса, что вы несёте, вам немного сложнее взбираться." + +#: src/game.cpp +msgid "You slip while climbing and fall down." +msgstr "Вы соскальзываете, пока карабкаетесь, и падаете вниз." #: src/game.cpp msgid "Climbing is impossible in your current state." @@ -256937,6 +251983,11 @@ msgstr "" "Назначено горячих клавиш для предметов: " "%d/%d" +#: src/game_inventory.cpp +#, c-format +msgid "Inventory of %s" +msgstr "%s содержит:" + #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." msgstr "Ваш инвентарь пуст." @@ -256961,6 +252012,10 @@ msgstr "УДАРН." msgid "CUT" msgstr "РЕЖУЩ." +#: src/game_inventory.cpp +msgid "BULLET" +msgstr "ПУЛИ" + #: src/game_inventory.cpp msgid "ACID" msgstr "КИСЛОТА" @@ -257054,6 +252109,15 @@ msgstr "%.2f%s" msgid "VOLUME" msgstr "ОБЪЁМ" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "%s" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "ВРЕМЯ ПОТРЕБЛЕНИЯ" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "СВЕЖЕСТЬ" @@ -257097,11 +252161,11 @@ msgstr "скоро!" #: src/game_inventory.cpp msgid "fresh" -msgstr "свежий" +msgstr "свежее" #: src/game_inventory.cpp msgid "quite fresh" -msgstr "довольно свежий" +msgstr "довольно свежее" #: src/game_inventory.cpp msgid "near midlife" @@ -257113,7 +252177,7 @@ msgstr "свежести ниже среднего" #: src/game_inventory.cpp msgid "getting older" -msgstr "увядающее" +msgstr "залежавшееся" #: src/game_inventory.cpp msgid "old" @@ -257288,6 +252352,10 @@ msgstr "ПОПАД." msgid "MOVES" msgstr "ХОДОВ" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "СТОИМОСТЬ ВЗЯТИЯ В РУКИ" + #: src/game_inventory.cpp msgid "Wield item" msgstr "Взять в руки предмет" @@ -257298,22 +252366,27 @@ msgstr "У вас нет ничего, что можно было бы взят #: src/game_inventory.cpp #, c-format -msgid "You can't put anything into your %s." -msgstr "Вы ничего не можете поместить в %s." - -#: src/game_inventory.cpp src/iuse_actor.cpp -msgid "Holster item" -msgstr "Убрать вещь в кобуру" +msgid "Put item into %s" +msgstr "Положить предмет в %s" #: src/game_inventory.cpp #, c-format msgid "Choose an item to put into your %s" msgstr "Выберите предмет для помещения в %s" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "ПРЕДМЕТЫ ДЛЯ ВСТАВКИ" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." -msgstr "У вас нет предметов, которые вы могли бы убрать в %s." +msgid "Insert items into %s" +msgstr "Вставить предмет в контейнер (%s)" + +#: src/game_inventory.cpp +#, c-format +msgid "Could not put %s into %s, aborting." +msgstr "Не получилось поместить предмет (%s) в контейнер (%s), отмена." #: src/game_inventory.cpp src/iuse.cpp msgid "Cut up what?" @@ -257601,34 +252674,6 @@ msgstr "Вы должны выбрать хотя бы одну группу м msgid "Special Zombies" msgstr "Спец. Зомби" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "Зомби" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "Триффиды" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "Роботы" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "Подпространство" - -#: src/gamemode_defense.cpp src/handle_action.cpp -msgid "Food" -msgstr "Есть" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "Наёмники" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "Разрешить сохранение" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "РЕЖИМ ЗАЩИТЫ" @@ -257706,7 +252751,35 @@ msgstr "Увеличение награды с каждой волной." msgid "Enemy Selection:" msgstr "Выбор противников:" -#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "Зомби" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "Триффиды" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "Роботы" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "Подпространство" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "Есть" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "Наёмники" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "Разрешить сохранение" + +#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp src/options.cpp msgid "Custom" msgstr "Пользовательский" @@ -257790,6 +252863,10 @@ msgstr "Супермаркет" msgid "Bar" msgstr "Бар" +#: src/gamemode_defense.cpp +msgid "Mansion" +msgstr "Поместье" + #: src/gamemode_defense.cpp msgid "One entrance and many rooms. Some medical supplies." msgstr "Один вход и много комнат. Немного медикаментов." @@ -258084,6 +253161,10 @@ msgstr "Вы не знаете, как поднять этот транспор msgid "This vehicle doesn't look very airworthy." msgstr "Кажется, это вряд ли может летать." +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "Этот транспортное средство не может плавать без включенных z-уровней." + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "Вы направляете ваш транспорт на снижение." @@ -258489,16 +253570,8 @@ msgid "Change to which movement mode?" msgstr "Какой режим передвижения включить?" #: src/handle_action.cpp -msgid "Run" -msgstr "Бег" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "Ходьба" - -#: src/handle_action.cpp -msgid "Crouch" -msgstr "Красться" +msgid "Cycle move mode" +msgstr "Сменить тип движения" #: src/handle_action.cpp msgid "You don't know any spells to cast." @@ -258884,7 +253957,7 @@ msgstr "У вас нет подходящего предмета для нане #: src/iexamine.cpp #, c-format msgid "You apply a diamond coating to your %s" -msgstr "Вы нанесли алмазное покрытие на ваш %s" +msgstr "Вы нанесли алмазное покрытие на ваше оружие (%s)" #: src/iexamine.cpp msgid "Introduce Nanofabricator template" @@ -258902,7 +253975,7 @@ msgstr "Использовать %s?" #: src/iexamine.cpp #, c-format msgid "You accidentally spill the %s." -msgstr "Вы случайно пролили %s." +msgstr "Вы случайно пролили жидкость (%s)." #: src/iexamine.cpp msgid "Out of order." @@ -258992,7 +254065,7 @@ msgstr[3] "На сколько пополнить? Максимум: %d цент #: src/iexamine.cpp msgid "You do not have a cash card to withdraw money!" -msgstr "У вас нету кредитки, чтобы снять денег!" +msgstr "У вас нет кредитки, чтобы снять денег!" #: src/iexamine.cpp #, c-format @@ -259003,6 +254076,10 @@ msgstr[1] "Сколько снять? Максимум: %d цента. (0 для msgstr[2] "Сколько снять? Максимум: %d цент. (0 для отмены)" msgstr[3] "Сколько снять? Максимум: %d цент. (0 для отмены)" +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "Все кредитные карты достигли максимального баланса" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "В торговом автомате ничего нет!" @@ -259091,7 +254168,7 @@ msgstr "Вы мешаете двери, подвиньтесь и попробу #: src/iexamine.cpp msgid "\"FOODPERSON DETECTED. Please make yourself presentable.\"" -msgstr "«ОБНАРУЖЕН ПОЕШЬ-КА. Пожалуйста, представьтесь.»" +msgstr "«ОБНАРУЖЕН ПОЕШЬ-КА. Пожалуйста, приведите внешний вид в порядок.»" #: src/iexamine.cpp msgid "\"Your face is inadequate. Please go away.\"" @@ -259108,7 +254185,7 @@ msgstr "Если бы только у вас была лопата…" #: src/iexamine.cpp #, c-format msgid "Clear up that %s?" -msgstr "Убрать %s?" +msgstr "Расчистить (%s)?" #: src/iexamine.cpp msgid "Climb obstacle?" @@ -260214,16 +255291,19 @@ msgid "You're illiterate, and can't read the screen." msgstr "Вы неграмотны и не можете прочитать что-либо с экрана." #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" -msgstr "Не выполнено! Не найдена топливная колонка!" +#, c-format +msgid "Failure! No %s pumps found!" +msgstr "Не выполнено! Не найдена топливная колонка, в которой есть %s!" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" -msgstr "Не выполнено! Не найден топливный бак!" +#, c-format +msgid "Failure! No %s tank found!" +msgstr "Не выполнено! Не найден топливный бак, в котором есть %s!" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." -msgstr "На станции нет топлива. Извините за неудобство." +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." +msgstr "На станции закончился %s. Извините за неудобство." #: src/iexamine.cpp msgid "Welcome to AutoGas!" @@ -260234,36 +255314,41 @@ msgid "What would you like to do?" msgstr "Что бы вы хотели сделать?" #: src/iexamine.cpp -msgid "Buy gas." -msgstr "Купить бензин." +#, c-format +msgid "Buy %s." +msgstr "Купить %s." #: src/iexamine.cpp msgid "Refund cash." msgstr "Возвращение денежных средств." #: src/iexamine.cpp -msgid "Current gas pump: " -msgstr "Текущая бензоколонка: " +#, c-format +msgid "Current %s pump: " +msgstr "Текущая колонка (%s): " #: src/iexamine.cpp -msgid "Choose a gas pump." -msgstr "Выберите бензоколонку." +#, c-format +msgid "Choose a %s pump." +msgstr "Выберите колонку (%s)." #: src/iexamine.cpp msgid "Your discount: " msgstr "Ваша скидка: " #: src/iexamine.cpp -msgid "Your price per gasoline unit: " -msgstr "Ваша цена за единицу бензина: " +#, c-format +msgid "Your price per %s unit: " +msgstr "Ваша цена за единицу топлива (%s): " #: src/iexamine.cpp msgid "Hack console." msgstr "Взломать консоль." #: src/iexamine.cpp -msgid "Please choose gas pump:" -msgstr "Пожалуйста, выберите бензоколонку:" +#, c-format +msgid "Please choose %s pump:" +msgstr "Пожалуйста, выберите колонку (%s):" #: src/iexamine.cpp msgid "Pump " @@ -260275,8 +255360,8 @@ msgstr "Недостаточно денег, пожалуйста, пополн #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" -msgstr "Сколько литров бензина купить? Макс: %d л. (0 — отмена)" +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" +msgstr "Сколько литров топлива (%s) купить? Макс: %d л. (0 — отмена)" #: src/iexamine.cpp msgid "Glug Glug Glug" @@ -260330,8 +255415,8 @@ msgid "You jump over an obstacle." msgstr "Вы перепрыгнули через препятствие." #: src/iexamine.cpp -msgid "You can't climb down there" -msgstr "Вы не сможете здесь спуститься" +msgid "You can't climb down there." +msgstr "Вы не сможете здесь спуститься." #: src/iexamine.cpp #, c-format @@ -260366,6 +255451,14 @@ msgstr "" "Возможно, у вас возникнут проблемы, когда вы соберётесь забираться обратно. " "Спуститься?" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "Использовать крюк-кошку, чтобы спуститься?" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "Вы обвязываете верёвку вокруг пояса и начинаете спускаться вниз." + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "Вы решили отойти от края." @@ -260401,8 +255494,8 @@ msgstr "" #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate." -" Please move patient to appropriate facility. Exiting." +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." msgstr "" "ОШИБКА Оценка Уровня Бионики: ПОЛНЫЙ КИБОРГ. Автодок Mk. XI не может " "провести операцию. Пожалуйста, переведите пациента в подходящее отделение. " @@ -260993,10 +256086,6 @@ msgstr "Части транспорта" msgid "Traps" msgstr "Ловушки" -#: src/init.cpp -msgid "Bionics" -msgstr "Бионика" - #: src/init.cpp msgid "Terrain" msgstr "Локации" @@ -261033,6 +256122,10 @@ msgstr "Прототипы транспорта" msgid "Mapgen weights" msgstr "Веса генерации карты" +#: src/init.cpp +msgid "Behaviors" +msgstr "Поведение" + #: src/init.cpp msgid "Monster types" msgstr "Монстры: типы" @@ -261049,6 +256142,10 @@ msgstr "Монстры: фракции" msgid "Factions" msgstr "Фракции" +#: src/init.cpp +msgid "Move modes" +msgstr "Режимы движения" + #: src/init.cpp msgid "Crafting recipes" msgstr "Крафт: рецепты" @@ -261069,10 +256166,6 @@ msgstr "Классы NPC" msgid "Missions" msgstr "Миссии" -#: src/init.cpp -msgid "Behaviors" -msgstr "Поведение" - #: src/init.cpp msgid "Harvest lists" msgstr "Списки добычи" @@ -261085,8 +256178,8 @@ msgstr "Анатомия" msgid "Mutations" msgstr "Мутации" -#: src/init.cpp -msgid "Achivements" +#: src/init.cpp src/scores_ui.cpp +msgid "Achievements" msgstr "Достижения" #: src/init.cpp @@ -261145,6 +256238,10 @@ msgstr "Доп. локации" msgid "Ammunition types" msgstr "Типы боеприпасов" +#: src/init.cpp +msgid "Bionics" +msgstr "Бионика" + #: src/init.cpp msgid "Gates" msgstr "Ворота" @@ -261181,6 +256278,10 @@ msgstr "Типы ароматов" msgid "Scores" msgstr "Счёт" +#: src/init.cpp +msgid "Achivements" +msgstr "Достижения" + #: src/init.cpp msgid "Disease types" msgstr "Типы заболеваний" @@ -261592,7 +256693,7 @@ msgstr "Для сравнения нужно два предмета. Испол msgid "No items were selected. Use %s to select them." msgstr "Предметы не выбраны. Используйте %s для выбора." -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "ВЫБРАСЫВАЕМЫЕ ПРЕДМЕТЫ" @@ -261729,14 +256830,18 @@ msgstr "пр. смешанного" msgid "Material: %s" msgstr "Материал: %s" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp src/item_pocket.cpp msgid "Volume: " msgstr "Объём: " -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "Вес: " +#: src/item.cpp +msgid "Length: " +msgstr "Длина:" + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -261870,6 +256975,10 @@ msgstr "Выше" msgid "Portions: " msgstr "Порций: " +#: src/item.cpp +msgid "Consume time: " +msgstr "Время потребления:" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "* Употребление этого предмета вызывает привыкание." @@ -262140,6 +257249,10 @@ msgstr "Равный шанс на хорошее попадание на дис msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr " ходов" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "Время до уровня прицеливания: " @@ -262165,6 +257278,10 @@ msgstr[1] "Содержит %i гильзы" msgstr[2] "Содержит %i гильз" msgstr[3] "Содержит %i гильзу" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "Для стрельбы из этого оружия нужны две свободные руки." + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -262181,6 +257298,15 @@ msgstr "" "При креплении к оружию делает возможными рукопашные " "атаки." +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "Эта модификация закрывает прицел основного оружия." + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" +"Эта модификация может сломаться при стрельбе из основного оружия." + #: src/item.cpp msgid "Dispersion modifier: " msgstr "Модификатор разброса: " @@ -262235,6 +257361,10 @@ msgstr "Защита: Ударный: " msgid "Cut: " msgstr "Режущий: " +#: src/item.cpp +msgid "Ballistic: " +msgstr "Баллистический:" + #: src/item.cpp msgid "Acid: " msgstr "Кислота: " @@ -262419,10 +257549,6 @@ msgstr "Скованность: " msgid "Encumbrance when full: " msgstr "Скованность при заполнении: " -#: src/item.cpp -msgid "Storage: " -msgstr "Вместимость: " - #: src/item.cpp msgid "Weight capacity modifier: " msgstr "Модификатор переносимого веса: " @@ -262431,6 +257557,10 @@ msgstr "Модификатор переносимого веса: " msgid "Weight capacity bonus: " msgstr "Бонус переносимого веса: " +#: src/item.cpp +msgid "Storage: " +msgstr "Вместимость: " + #: src/item.cpp msgid "* This item can be worn with a helmet." msgstr "* Этот предмет можно носить одновременно со шлемом." @@ -262671,27 +257801,6 @@ msgstr "Это может помочь вам выяснить ещё не msgid "You need to read this book to see its contents." msgstr "Нужно прочитать книгу, чтобы узнать её содержимое." -#: src/item.cpp -msgid "This container " -msgstr "Этот контейнер " - -#: src/item.cpp -msgid "can be resealed, " -msgstr "может быть запечатан, " - -#: src/item.cpp -msgid "is watertight, " -msgstr "водонепроницаемый, " - -#: src/item.cpp -msgid "prevents spoiling, " -msgstr "не даёт испортиться, " - -#: src/item.cpp -#, c-format -msgid "can store %s %s." -msgstr "вмещает %s %s." - #: src/item.cpp #, c-format msgid "Capacity: %dmJ" @@ -262716,7 +257825,6 @@ msgstr "Заряды: %d" msgid "Compatible magazines: " msgstr "Совместимые магазины:" -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -262727,12 +257835,38 @@ msgstr[2] "Максимум зарядов %s." msgstr[3] "Максимум заряд %s." #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "Максимум заряд." -msgstr[1] "Максимум заряда." -msgstr[2] "Максимум зарядов." -msgstr[3] "Максимум заряд." +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard " +"batteries." +msgstr "" +"* Этот инструмент был переделан для использования с универсальными " +"батареями питания и не совместим с обычными " +"батарейками." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "" +"* Этот инструмент имеет перезаряжаемый источник питания и " +"не совместим с обычными батарейками." + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" +"* Этот инструмент имеет перезаряжаемый источник питания и может" +" быть перезаряжён в любой УБП-совместимой станции " +"перезарядки. Вы можете зарядить его с помощью обычных " +"батареек, но разрядить его невозможно." + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "* Этот предмет работает на бионической энергии." #: src/item.cpp #, c-format @@ -262747,7 +257881,7 @@ msgstr "Сделано из: %s" #: src/item.cpp #, c-format msgid "Repair using %s." -msgstr "Починить, используя %s." +msgstr "Можно починить, используя следующие инструменты: %s." #: src/item.cpp msgid "* This item can be reinforced." @@ -262820,6 +257954,10 @@ msgstr "Защита от удара: " msgid "Cut Protection: " msgstr "Защита от порезов: " +#: src/item.cpp +msgid "Ballistic Protection: " +msgstr "Защита от пуль: " + #: src/item.cpp msgid "Stat Bonus: " msgstr "Бонус к хар-ке: " @@ -262926,6 +258064,13 @@ msgstr "" "* Этот предмет не имеет жесткой формы. Его объем и сковывание " "растут при увеличении содержимого." +#: src/item.cpp +msgid "" +"* This item is not rigid. Its volume increases with contents." +msgstr "" +"* Этот предмет не имеет жесткой формы. Его объем растет при " +"увеличении содержимого." + #: src/item.cpp msgid "* This item does not conduct electricity." msgstr "* Этот предмет не проводит электричество." @@ -262945,40 +258090,6 @@ msgstr "* Этот предмет проводит электриче msgid "* This clothing will give you an allergic reaction." msgstr "* Эта одежда вызовет аллергическую реакцию." -#: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard " -"batteries." -msgstr "" -"* Этот инструмент был переделан для использования с универсальными " -"батареями питания и не совместим с обычными " -"батарейками." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." -msgstr "" -"* Этот инструмент имеет перезаряжаемый источник питания и " -"не совместим с обычными батарейками." - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." -msgstr "" -"* Этот инструмент имеет перезаряжаемый источник питания и может" -" быть перезаряжён в любой УБП-совместимой станции " -"перезарядки. Вы можете зарядить его с помощью обычных " -"батареек, но разрядить его невозможно." - -#: src/item.cpp -msgid "* This tool runs on bionic power." -msgstr "* Этот предмет работает на бионической энергии." - #: src/item.cpp msgid "" "* This item has been modified to listen to radio signals. It " @@ -263005,20 +258116,6 @@ msgstr "" "* Активация этого предмета при помощи радиосигнала вызовет его " "немедленный взрыв." -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "* Для стрельбы из этого оружия нужны две свободные руки." - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "* Эта модификация закрывает прицел основного оружия." - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "" -"* Эта модификация может сломаться при стрельбе из основного " -"оружия." - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -263066,7 +258163,7 @@ msgstr "* %1$s. %2$s" #: src/item.cpp msgid "Can be stored in: " -msgstr "Может быть помещён в: " +msgstr "Можно поместить в: " #: src/item.cpp msgid "It's done and can be activated." @@ -263211,10 +258308,10 @@ msgstr "%1$s — %2$s" msgctxt "item name" msgid "%1$s with %2$zd item" msgid_plural "%1$s with %2$zd items" -msgstr[0] "%1$s с %2$zd вещей" -msgstr[1] "%1$s с %2$zd вещей" -msgstr[2] "%1$s с %2$zd вещей" -msgstr[3] "%1$s с %2$zd вещей" +msgstr[0] "%1$s с %2$zd предметом" +msgstr[1] "%1$s с %2$zd предметами" +msgstr[2] "%1$s с %2$zd предметами" +msgstr[3] "%1$s с %2$zd предметами" #: src/item.cpp msgid " (poisonous)" @@ -263531,26 +258628,11 @@ msgctxt "magazine" msgid "Eject %1$s from %2$s?" msgstr "Извлечь %1$s из%2$s?" -#: src/item.cpp -#, c-format -msgid "You can't mix loads in your %s." -msgstr "Вы не можете смешивать содержимое в вашем %s." - -#: src/item.cpp -#, c-format -msgid "That %s isn't water-tight." -msgstr "%s не удержит жидкость." - #: src/item.cpp #, c-format msgid "That %s must be on the ground or held to hold contents!" msgstr "%s должен быть на земле или в руках, чтобы хранить в себе содержимое!" -#: src/item.cpp -#, c-format -msgid "You can't seal that %s!" -msgstr "Вы не можете закрыть %s!" - #: src/item.cpp #, c-format msgid "That %1$s won't hold %2$s." @@ -263695,6 +258777,31 @@ msgstr "У вас нет предметов с зарегистрированн msgid "Execute which action?" msgstr "Какое действие выполнить?" +#: src/item_contents.cpp +msgid "is not a container" +msgstr "не является контейнером" + +#: src/item_contents.cpp +msgid "is not rigid" +msgstr "не жёсткий" + +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "Общая вместимость: " + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr "Вес: " + +#: src/item_contents.cpp +#, c-format +msgid "%d Pockets with capacity:" +msgstr "Карманы - %d с ёмкостью:" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" +msgstr "Карман с ёмкостью:" + #: src/item_factory.cpp msgid "" "Can be activated to increase environmental protection. Will " @@ -263722,6 +258829,185 @@ msgstr "инвентарь" msgid "inside %s" msgstr "Внутри %s" +#: src/item_pocket.cpp +msgid "sealed" +msgstr "закрыт" + +#: src/item_pocket.cpp +msgid "open" +msgstr "открыт" + +#: src/item_pocket.cpp +#, c-format +msgid "Pocket %d:" +msgstr "Карман %d:" + +#: src/item_pocket.cpp +msgid "Maximum item length: " +msgstr "Максимальная длина помещаемого предмета:" + +#: src/item_pocket.cpp +#, c-format +msgid "Minimum item volume: %s" +msgstr "Минимальный объем предмета: %s" + +#: src/item_pocket.cpp +#, c-format +msgid "Maximum item volume: %s" +msgstr "Максимальный объем предмета: %s" + +#: src/item_pocket.cpp +#, c-format +msgid "Base moves to remove item: %d" +msgstr "Базовое число ходов на вытаскивание предмета: %d" + +#: src/item_pocket.cpp +msgid "This pocket is rigid." +msgstr "Этот карман жесткий." + +#: src/item_pocket.cpp +msgid "This pocket can contain a liquid." +msgstr "Этот карман может хранить жидкость." + +#: src/item_pocket.cpp +msgid "This pocket can contain a gas." +msgstr "Этот карман может хранить газ." + +#: src/item_pocket.cpp +msgid "This pocket will spill if placed into another item or worn." +msgstr "" +"Содержимое этого кармана разольется, если положить его в другой " +"предмет или надеть." + +#: src/item_pocket.cpp +msgid "This pocket protects its contents from fire." +msgstr "Этот карман защищает содержимое от огня." + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Contained items spoil at %.0f%% their original rate." +msgstr "" +"Содержимое портится со скоростью %.0f%% от обычного." + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Items in this pocket weigh %.0f%% their original weight." +msgstr "" +"Предметы в этом кармане весят %.0f%% от своего веса." + +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "" +"Этот карман расширяется на %.0f%% от объема предметов " +"внутри." + +#: src/item_pocket.cpp +#, c-format +msgid "%s pocket %d" +msgstr " карман (%s) %d" + +#: src/item_pocket.cpp +#, c-format +msgid "pocket %d" +msgstr " карман %d" + +#: src/item_pocket.cpp +msgid "This pocket is empty." +msgstr "Этот карман пуст." + +#: src/item_pocket.cpp +msgid "This pocket is sealed." +msgstr "Этот карман плотно закрыт." + +#: src/item_pocket.cpp +msgid " of " +msgstr " от " + +#: src/item_pocket.cpp +msgid "Contents of this pocket:" +msgstr "Содержимое кармана:" + +#: src/item_pocket.cpp +msgid "only mods can go into mod pocket" +msgstr "сюда можно поместить только модификации" + +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "кобура не может вмещать предмет этого типа" + +#: src/item_pocket.cpp +msgid "holster already contains an item" +msgstr "в кобуре уже что-то есть" + +#: src/item_pocket.cpp +msgid "can't contain liquid" +msgstr "нельзя хранить здесь жидкость" + +#: src/item_pocket.cpp +msgid "can't mix liquid with contained item" +msgstr "нельзя смешать жидкость с содержимым кармана" + +#: src/item_pocket.cpp +msgid "can't put non liquid into pocket with liquid" +msgstr "нельзя поместить это в емкость с жидкостью" + +#: src/item_pocket.cpp +msgid "can't contain gas" +msgstr "нельзя хранить здесь газ" + +#: src/item_pocket.cpp +msgid "can't mix gas with contained item" +msgstr "нельзя смешать газ с содержимым кармана" + +#: src/item_pocket.cpp +msgid "can't put non gas into pocket with gas" +msgstr "нельзя поместить это в емкость с газом" + +#: src/item_pocket.cpp +msgid "item does not have correct flag" +msgstr "свойства предмета выставлены некорректно" + +#: src/item_pocket.cpp +msgid "item is not an ammo" +msgstr "это не боеприпас" + +#: src/item_pocket.cpp +msgid "item is not the correct ammo type" +msgstr "этот тип боеприпасов сюда не подходит" + +#: src/item_pocket.cpp +msgid "tried to put too many charges of ammo in item" +msgstr "слишком много зарядов для этого предмета" + +#: src/item_pocket.cpp +msgid "item too big" +msgstr "предмет слишком большой" + +#: src/item_pocket.cpp +msgid "item is too long" +msgstr "предмет слишком длинный" + +#: src/item_pocket.cpp +msgid "item is too small" +msgstr "предмет слишком маленький" + +#: src/item_pocket.cpp +msgid "item is too heavy" +msgstr "предмет слишком тяжелый" + +#: src/item_pocket.cpp +msgid "pocket is holding too much weight" +msgstr "в кармане уже слишком много веса" + +#: src/item_pocket.cpp +msgid "not enough space" +msgstr "недостаточно места" + #: src/itype.h msgid "click." msgstr "«щёлк»." @@ -263924,6 +259210,14 @@ msgstr "Вы чувствуете себя здоровее." msgid "You no longer need to fear the flu, at least for some time." msgstr "Вы больше не боитесь гриппа. Хотя бы на время." +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "" +"Вы замечаете, что дата производства на упаковке довольно давняя. Возможно, " +"вакцина уже утратила эффективность." + #: src/iuse.cpp msgid "" "You no longer need to worry about asthma attacks, at least for a while." @@ -265359,7 +260653,7 @@ msgstr " требует замены фильтра для против #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." +msgid "Your %s doesn't have a filter." msgstr "%s не имеет фильтра." #: src/iuse.cpp @@ -265393,7 +260687,7 @@ msgstr "Lights on!" #: src/iuse.cpp msgid "Play anything for a while" -msgstr "Сыграть во что-нибудь немного" +msgstr "Поиграть во что-нибудь немного" #: src/iuse.cpp #, c-format @@ -267583,19 +262877,13 @@ msgstr[3] "Вы зарядили %1$d патрон %2$s в %3$s." #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" -msgstr "%s сканирует вас и издаёт противные звуковые сигналы!" +msgid "You deploy the %s wrong. It is hostile!" +msgstr "Вы ошибись в настройке, %s проявляет враждебность!" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "%s издаёт сигнал «свой-чужой», сканируя вас." - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." -msgstr "" -"Мигающий светодиод на лазерной турели, судя по всему, указывает на " -"недостаток света." +msgid "You deploy the %s." +msgstr "%s размещается." #: src/iuse_actor.cpp msgid "Place npc where?" @@ -267620,36 +262908,6 @@ msgid "There is also a certain bionic that helps with this kind of armor." msgstr "" "Также есть определённая бионика, которая может помочь с этим типом брони." -#: src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "Поблизости нет замков для взлома." - -#: src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "Где использовать отмычку?" - -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "Вы поковыряли в носу и ваши пазухи распахнулись." - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" -"Вы можете подковырнуть друзей\n" -"поковырять у себя в носу, но вы не\n" -"можете ковырять в носу у друзей." - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "Дверь не заперта." - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "Это нельзя взломать." - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "верстак" @@ -267784,10 +263042,6 @@ msgstr "Если текущая погода не изменится, то ра msgid "At your skill level, it will take around %d minutes to light a fire." msgstr "С вашим уровнем навыка разведение огня займёт %d минут." -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "У вас нет этого предмета." - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -267938,42 +263192,6 @@ msgstr "Чтобы прижечь раны, нужен источник огня msgid "You need at least %d charges to cauterize wounds." msgstr "Чтобы прижечь рану, нужно как минимум %d зарядов." -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "Нет подходящих трупов" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "" -"Перспектива разделать труп и дать ему возродиться снова в виде раба — в " -"данный момент для вас это слишком." - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "Выберите труп зомби для превращения в зомби-раба." - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "Занимайтесь любовью, а не рабством." - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "Ну, это более конструктивно, чем просто рубить их на липкое мясо…" - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "" -"Вы ужасно себя чувствуете из-за уродования чьего-то трупа и превращения его " -"в раба." - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "Вам нужен как минимум первый уровень навыка %s." - #: src/iuse_actor.cpp msgid "Hsss" msgstr "Сссс" @@ -268067,6 +263285,10 @@ msgstr "Может научить нескольким заклинаниям." msgid "Spells Contained:" msgstr "Содержащиеся заклинания:" +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "Вы не умеете читать." + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -268130,31 +263352,11 @@ msgstr "Этот предмет кастует %1$s на уровне %2$i." msgid "This item never fails." msgstr "Этот предмет никогда не сбоит." -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too big to fit in your %2$s" -msgstr "Этот предмет (%1$s) слишком велик для %2$s!" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too small to fit in your %2$s" -msgstr "Этот предмет (%1$s) слишком мал для %2$s!" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too heavy to fit in your %2$s" -msgstr "Этот предмет (%1$s) слишком тяжёл для %2$s!" - #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" msgstr "Вы думаете, что положить %1$s в %2$s — не очень хорошая идея." -#: src/iuse_actor.cpp -#, c-format -msgid "You can't put your %1$s in your %2$s" -msgstr "Вы не можете положить этот предмет (%1$s) в %2$s!" - #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" @@ -268165,6 +263367,10 @@ msgstr "Вы убираете %s в кобуру." msgid "You need to unwield your %s before using it." msgstr "Вам нужно убрать %s из рук перед использованием." +#: src/iuse_actor.cpp +msgid "Holster item" +msgstr "Убрать вещь в кобуру" + #: src/iuse_actor.cpp #, c-format msgid "Draw %s" @@ -268176,66 +263382,8 @@ msgid "Use %s" msgstr "Использовать %s" #: src/iuse_actor.cpp -msgid "Can be activated to store a suitable item." -msgid_plural "Can be activated to store suitable items." -msgstr[0] "Может быть активирован для хранения подходящего предмета." -msgstr[1] "Может быть активирован для хранения подходящего предмета." -msgstr[2] "Может быть активирован для хранения подходящего предмета." -msgstr[3] "Может быть активирован для хранения подходящих предметов." - -#: src/iuse_actor.cpp -msgid "Num items: " -msgstr "Количество вещей: " - -#: src/iuse_actor.cpp -msgid "Item volume: Min: " -msgstr "Объем вещей: Min: " - -#: src/iuse_actor.cpp -msgid " Max: " -msgstr " Max: " - -#: src/iuse_actor.cpp -msgid "Max item weight: " -msgstr "Максимальный вес предмета:" - -#: src/iuse_actor.cpp -#, c-format -msgid " %s" -msgstr " %s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to store a single round of " -msgid_plural "Can be activated to store up to %i rounds of " -msgstr[0] "Может быть активировано для хранения одного патрона " -msgstr[1] "Может быть активировано для хранения %i патронов " -msgstr[2] "Может быть активировано для хранения %i патронов " -msgstr[3] "Может быть активировано для хранения %i патрона " - -#: src/iuse_actor.cpp -#, c-format -msgid "No matching ammo for the %1$s" -msgstr "Нет подходящих боеприпасов для %1$s." - -#: src/iuse_actor.cpp -#, c-format -msgid "You store the %1$s in your %2$s" -msgstr "Вы кладёте %1$s в свой %2$s." - -#: src/iuse_actor.cpp -msgid "Store ammo" -msgstr "Поместить боеприпасы" - -#: src/iuse_actor.cpp -#, c-format -msgid "Store ammo in %s" -msgstr "Поместить боеприпасы в %s" - -#: src/iuse_actor.cpp src/vehicle_use.cpp -#, c-format -msgid "Unload %s" -msgstr "Разрядить %s" +msgid "Can be activated to store suitable items." +msgstr "Может быть активирован для хранения подходящих предметов." #: src/iuse_actor.cpp #, c-format @@ -268554,8 +263702,8 @@ msgid "You can't install bionics while mounted." msgstr "Нельзя устанавливать бионику, будучи верхом." #: src/iuse_actor.cpp -msgid "You can't self-install bionics." -msgstr "Вы не можете устанавливать бионику самому себе." +msgid "You can't self-install this CBM." +msgstr "Вы не можете устанавливать этот модуль самому себе." #: src/iuse_actor.cpp msgid "You can't install a filthy CBM!" @@ -268704,6 +263852,10 @@ msgstr "Удар" msgid "Cut" msgstr "Режущий" +#: src/iuse_actor.cpp +msgid "Ballistic" +msgstr "Баллистический" + #: src/iuse_actor.cpp msgid "Acid" msgstr "Кислота" @@ -268716,10 +263868,6 @@ msgstr "Огонь" msgid "Warmth" msgstr "Тепло" -#: src/iuse_actor.cpp -msgid "Storage" -msgstr "Место" - #: src/iuse_actor.cpp msgid "Are you sure? You will not gain any materials back." msgstr "Вы уверены? Вы не сможете получить обратно никаких материалов." @@ -269625,10 +264773,6 @@ msgstr "Это лось, создание чистого зла. Вы должн msgid "It is SOFTWARE BUG." msgstr "Это СБОЙ ПО." -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "робот ищет котёнка вер. 22 июля 2008 — нажмите «q» для выхода." - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "robotfindskitten v22July2008" @@ -269650,24 +264794,32 @@ msgid ")." msgstr ")." #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if" " they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" -"Ваша задача — найти котёнка. Задача усложняется существованием многих вещей," -" не являющихся котёнком. Робот должен осмотреть предмет, чтобы определить, " -"котёнок ли это. Игра заканчивается, когда робот найдёт котёнка. Либо же вы " -"можете закончить игру, нажав «q», «Q», или Escape." +"Ваша задача найти котёнка. Задача усложняется существованием многих вещей, " +"не являющихся котёнком. Робот должен осмотреть предмет, чтобы определить, " +"котёнок ли это. Игра заканчивается когда робот найдёт котёнка. Либо же вы " +"можете окончить игру, нажав «%s»." #: src/iuse_software_kitten.cpp msgid "Press any key to start." msgstr "Для старта нажмите любую кнопку." #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." -msgstr "Неверная команда: Используйте клавиши направления или «q»." +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "робот ищет котёнка вер. 22 июля 2008 — нажмите «%s» для выхода." + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." +msgstr "" +"Неверная команда: Используйте клавиши направления или «%s» для выхода." #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" @@ -270030,10 +265182,10 @@ msgid "Loading" msgstr "Загрузка" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" msgstr "" -"ОШИБКА: неверное значение для энергии. Устанавливается значение по умолчанию" -" NONE" +"ОШИБКА: неверное значение типа магической энергии. Устанавливается значение " +"по умолчанию NONE" #: src/magic.cpp msgid "ERROR: Invalid damage type string. Defaulting to none" @@ -270257,6 +265409,12 @@ msgstr "Достижимые цели" msgid "Only affects the monsters: %s" msgstr "Повлияет только на этих монстров: %s" +#. ~ amount of damage per second, abbreviated +#: src/magic.cpp +#, c-format +msgid ", %d/sec" +msgstr ", %d/сек" + #: src/magic.cpp src/veh_interact.cpp msgid "Damage" msgstr "Урон" @@ -270356,8 +265514,8 @@ msgid "" "to cast %s have opened your eyes to new possibilities, you can now cast %s." msgstr "" "Ваш опыт и познания в создании и изменении магической энергии при " -"накладывании %s открыли вам глаза на новые возможности, теперь вы можете " -"накладывать %s." +"накладывании заклинания %s открыли вам глаза на новые возможности, теперь вы" +" можете накладывать %s." #: src/magic_spell_effect.cpp msgid "Your injuries even out." @@ -270810,7 +265968,7 @@ msgstr "шшух" #: src/map.cpp #, c-format msgid "It should take %d minutes to finish washing items in the %s." -msgstr "%d минут осталось до окончания стирки в транспорте (%s)." +msgstr "%d мин. осталось до окончания стирки в транспорте (%s)." #: src/map.cpp #, c-format @@ -270825,7 +265983,7 @@ msgstr "Посудомойка в транспорте (%s) закончила #: src/map.cpp #, c-format msgid "It should take %d minutes to finish sterilising items in the %s." -msgstr "%d минут осталось до окончания цикла стерилизации в транспорте (%s)." +msgstr "%d мин. осталось до окончания цикла стерилизации в транспорте (%s)." #: src/map.cpp #, c-format @@ -271497,7 +266655,7 @@ msgstr "" #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" -msgstr "
Баффы: %s
" +msgstr "
Усиления: %s
" #: src/martialarts.cpp msgid "Passive" @@ -271554,7 +266712,7 @@ msgstr "%s прыгает!" #: src/mattack_actors.cpp #, c-format msgid "%1$s casts %2$s at %3$s!" -msgstr "%1$s накладывает %2$s на %3$s!" +msgstr "%1$s накладывает заклинание (%2$s) на цель (%3$s)!" #: src/mattack_actors.cpp src/monattack.cpp src/monattack.cpp #, c-format @@ -273252,6 +268410,34 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "Открыла странный храм." +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "Не выполнено ограничение «%s» %s." + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "Не выполнено ограничение «%s» %s." + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "(отключено)" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "Получено достижение «%s» %s." + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "Получено достижение «%s» %s." + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -273519,7 +268705,7 @@ msgstr "" "Опасность: средняя\n" "Время: 10-часовые задания\n" " \n" -"Целью рейдов по добыче являются ранее населённые территории, для добычи как можно больше ценных вещей, прежде чем быть окружёнными зомби. Бой ожидается, помощь со стороны остальной части группы не гарантируется. Вознаграждение больше и есть шанс компаньону вернуть вещи назад." +"Целью рейдов по добыче являются ранее населённые территории для получения как можно большего количества ценных вещей, прежде чем зомби начнут окружать добытчика. Бой ожидается, помощь со стороны остальной части группы не гарантируется. Вознаграждение больше, и есть шанс, что компаньон вернутся не с пустыми руками." #: src/mission_companion.cpp msgid "Assign Scavenging Raid" @@ -274477,17 +269663,17 @@ msgstr "список модов" msgid "Author" msgid_plural "Authors" msgstr[0] "Автор" -msgstr[1] "Автора" +msgstr[1] "Авторы" msgstr[2] "Авторов" -msgstr[3] "Автор" +msgstr[3] "Авторы" #: src/mod_manager_ui.cpp msgid "Maintainer" msgid_plural "Maintainers" -msgstr[0] "Поддерживающий" -msgstr[1] "Поддерживающих" -msgstr[2] "Поддерживающих" -msgstr[3] "Поддерживающий" +msgstr[0] "Ответственный" +msgstr[1] "Ответственные" +msgstr[2] "Ответственные" +msgstr[3] "Ответственные" #: src/mod_manager_ui.cpp msgid "Dependency" @@ -275070,12 +270256,36 @@ msgstr "Голова %s лопается, высвобождая массу из msgid "The %s lashes its tentacle at you!" msgstr "%s хлещет своим щупальцем по вам!" +#: src/monattack.cpp +#, c-format +msgid "The %s lashes its tentacle at !" +msgstr "%s хлещет своим щупальцем !" + #. ~ 1$s is bodypart name, 2$d is damage value. #: src/monattack.cpp #, c-format msgid "Your %1$s is hit for %2$d damage!" msgstr "Ваш %1$s получает %2$d урона!" +#. ~ 1$s is bodypart name, 2$d is damage value. +#: src/monattack.cpp +#, c-format +msgid "'s %1$s is hit for %2$d damage!" +msgstr "%1$s () получает %2$d урона!" + +#: src/monattack.cpp +#, c-format +msgid "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" +msgstr "%1$s бьёт щупальцем ваш %2$s, но соскальзывает по броне!" + +#: src/monattack.cpp +#, c-format +msgid "" +"The %1$s lashes its tentacle at 's %2$s, but glances off their " +"armor!" +msgstr "" +"%1$s режет своим щупальцем %2$s у , но оно соскальзывает по броне!" + #: src/monattack.cpp #, c-format msgid "The %s's arms fly out at you, but you dodge!" @@ -275177,6 +270387,10 @@ msgstr "%s пристально смотрит на вас, и вас броси msgid "You feel like you're being watched, it makes you sick." msgstr "У вас такое чувство, будто за вами следят, и вам нехорошо от этого." +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "Ваше зрение затемняется, когда вас наполняют образы!" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -275764,7 +270978,7 @@ msgstr "Робот тщательно сканирует ." #: src/monattack.cpp msgid "The riotbot orders you to present your hands and be cuffed." -msgstr "Робот осназа приказывает вам вытянуть руки и надеть наручники." +msgstr "Робот приказывает вам вытянуть руки и надеть наручники." #: src/monattack.cpp msgid "Allow yourself to be arrested." @@ -275834,12 +271048,12 @@ msgid "" " for medical help." msgstr "" "Вы падаете на землю и изображаете судороги. Хотя вы, очевидно, всё ещё живы," -" робот осназа не видит разницы между вашим «приступом» и смертельной " -"болезнью. Он отступает, вызывая медицинскую помощь." +" робот не видит разницы между вашим «приступом» и смертельной болезнью. Он " +"отступает, вызывая медицинскую помощь." #: src/monattack.cpp msgid "Your awkward movements do not fool the riotbot." -msgstr "Ваши неуклюжие движения не обманывают робота-осназа." +msgstr "Ваши неуклюжие движения не обманывают робота." #: src/monattack.cpp msgid "The robot sprays tear gas!" @@ -276253,18 +271467,6 @@ msgstr "%s убит, и вам кажется, что ваше оружие си msgid "The %s was destroyed! GAME OVER!" msgstr "%s уничтожен! ИГРА ОКОНЧЕНА!" -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its pockets, but there's nothing left in them." -msgstr "%s тянет руки к карманам, но в них ничего не осталось." - -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its remaining pockets, opening them!" -msgstr "%s тянет руки к карманам и открывает их!" - #. ~ %s is the possessive form of the monster's name #: src/mondeath.cpp #, c-format @@ -276311,11 +271513,6 @@ msgstr "" msgid "zombie slave" msgstr "зомби-раб" -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "Толкнуть %s" - #: src/monexamine.cpp msgid "Rename" msgstr "Переименовать" @@ -276798,10 +271995,6 @@ msgstr "Отслежив." msgid "Ignoring." msgstr "Игнорир." -#: src/monster.cpp -msgid "Zombie slave." -msgstr "Зомби-раб." - #: src/monster.cpp msgid "Hostile!" msgstr "Вражд.!" @@ -276879,12 +272072,12 @@ msgid "It is nearly dead!" msgstr "Оно при смерти!" #: src/monster.cpp -msgid " Difficulty " -msgstr " Сложность " +msgid "Can see to your current location" +msgstr "Может видеть ваше местоположение" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" -msgstr "Знает о вашем присутствии!" +#: src/monster.cpp +msgid "Can't see to your current location" +msgstr "Не может видеть ваше местоположение" #: src/monster.cpp #, c-format @@ -276934,11 +272127,6 @@ msgstr "Это %s. %s %s" msgid "It is %s." msgstr "Оно %s." -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "Оно %s по размеру." - #: src/monster.cpp msgid "an animal" msgstr "животное" @@ -277288,6 +272476,15 @@ msgstr "Уровень усталости:" msgid "Focus trends towards:" msgstr "Фокус смещается в сторону:" +#. ~ This should never occur - this is the message when the character swtiches +#. to +#. ~ an invalid move mode or there's not a message for failing to switch to a +#. move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "Вы чувствуете, как по вам ползают насекомые." + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -277880,8 +273077,8 @@ msgstr "Переносимый вес: %.1f %s" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" -msgstr "Бонус урона в ближнем бою: %.1f" +msgid "Bash damage bonus: %.1f" +msgstr "Бонус дробящего урона: %.1f" #: src/newcharacter.cpp msgid "" @@ -278303,6 +273500,10 @@ msgstr "Зомби поблизости" msgid "Various limb wounds" msgstr "Травмы различных конечностей" +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "Игрок заражён грибком" + #: src/newcharacter.cpp msgid "No starting NPC" msgstr "Без стартовых неигровых персонажей" @@ -278319,6 +273520,10 @@ msgstr "Рост:" msgid "Age:" msgstr "Возраст:" +#: src/newcharacter.cpp src/player_display.cpp +msgid "Blood type:" +msgstr "Группа крови:" + #: src/newcharacter.cpp #, c-format msgid "" @@ -278482,6 +273687,18 @@ msgstr "Введите ваш возраст. От 16 до 55." msgid "Enter height in centimeters. Minimum 145, maximum 200" msgstr "Введите ваш рост в сантиметрах. От 145 до 200" +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "Введите группу крови (без резус-фактора):" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "Некорректная группа крови." + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" +msgstr "Введите резус-фактор:" + #: src/newcharacter.cpp msgid "Name of template:" msgstr "Название шаблона:" @@ -278597,13 +273814,12 @@ msgid "%1$s says something but you can't hear it!" msgstr "%1$s говорит что-то, но вы не слышите!" #: src/npc.cpp -msgid "NPC: " -msgstr "НПС:" +msgid "Aware of your presence" +msgstr "Знает о вашем присутствии" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" -msgstr "В руках %s" +msgid "Unaware of you" +msgstr "Не знает о вашем присутствии" #: src/npc.cpp msgid "Completely untrusting" @@ -278982,8 +274198,13 @@ msgstr "Из рации слышно голос %s: «Я на месте, бос #: src/npcmove.cpp #, c-format -msgid "%s %s" -msgstr "%s %s" +msgid " %s, %s" +msgstr " %s, %s" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" +msgstr "%s %s%s" #: src/npcmove.cpp #, c-format @@ -278993,7 +274214,7 @@ msgstr "Рана у меня на %s заражена…" #: src/npcmove.cpp #, c-format msgid "The bite wound on my %s looks bad." -msgstr "Кусаная рана у меня на %s выглядит плохо." +msgstr "Рана от укуса у меня на %s выглядит плохо." #: src/npcmove.cpp msgid "" @@ -279080,7 +274301,7 @@ msgstr "Временно прекрати разбивать трупы зомб #: src/npctalk.cpp msgid "Pulp zombies if you like" -msgstr "Разбивай трупы зомби, как хочешь" +msgstr "Разбивай трупы зомби, если хочешь" #: src/npctalk.cpp msgid "Go back to keeping your usual distance" @@ -279852,6 +275073,15 @@ msgstr "Плата:" msgid "Select a follower" msgstr "Выбрать спутника" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to get information on an item." +msgstr "" +"Торговля с %s\n" +"%s — переключение писками и выбором по букве, %s — завершить выбор, %s — выход, %s — для получения информации о предмете." + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -279893,11 +275123,6 @@ msgstr "Вперёд >" msgid "Examine which item?" msgstr "Что изучить?" -#: src/npctrade.cpp -#, c-format -msgid "Trade how many containers with %s [MAX: %d]: " -msgstr "Сколько контейнеров с %s обменять [МАКС: %d]: " - #: src/npctrade.cpp #, c-format msgid "Trade how many %s [MAX: %d]: " @@ -279932,19 +275157,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "Отлично, по рукам! Совершить сделку?" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to quit,\n" -"? to get information on an item." -msgstr "" -"Tab — переключение между панелями, буквы — выбор предметов, Enter — подтверждение\n" -"обмена,\n" -"Esc для выхода, ? — для получения информации о предмете." - -#: src/options.cpp -msgid "System language" -msgstr "Системный язык" - #: src/options.cpp msgid "General" msgstr "Общие" @@ -279965,11 +275177,6 @@ msgstr "Настройки мира" msgid "Android" msgstr "Андроид" -#: src/options.cpp src/overmap_ui.cpp src/ranged.cpp -#, c-format -msgid "%s" -msgstr "%s" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -280015,6 +275222,10 @@ msgstr "Деон" msgid "Basic" msgstr "Базовый" +#: src/options.cpp +msgid "System language" +msgstr "Системный язык" + #: src/options.cpp msgid "Default character name" msgstr "Имя персонажа по умолчанию" @@ -280553,6 +275764,11 @@ msgstr "" msgid "12h" msgstr "12ч" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "армейские 24ч" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -281087,16 +276303,16 @@ msgid "Terminal width" msgstr "Ширина экрана" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." -msgstr "Устанавливает размер терминала по оси Х. Требует перезапуска." +msgid "Set the size of the terminal along the X axis." +msgstr "Устанавливает расширение области видимости по оси Х." #: src/options.cpp msgid "Terminal height" msgstr "Высота экрана" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." -msgstr "Устанавливает размер терминала по оси Y. Требует перезапуска." +msgid "Set the size of the terminal along the Y axis." +msgstr "Устанавливает расширение области видимости по оси Y." #: src/options.cpp msgid "Font blending" @@ -281223,14 +276439,17 @@ msgid "Choose the tileset you want to use." msgstr "Выберите тайлсет, который собираетесь использовать." #: src/options.cpp -msgid "Memory map drawing mode" -msgstr "Режим запомненной местности" +msgid "Memory map overlay preset" +msgstr "Настройки вида запомненной карты" #: src/options.cpp msgid "" -"Specified the mode in which the memory map is drawn. Requires restart." +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." msgstr "" -"Выбор режима отображения запомненной местности. Требуется перезагрузка." +"Выбор настроек отображения запомненной местности. Требуется перезагрузка. " +"Для ручной настройки установите гамму и значения RGB для темных и светлых " +"цветов." #: src/options.cpp msgid "Darkened" @@ -281240,6 +276459,70 @@ msgstr "Затемнение" msgid "Sepia" msgstr "Сепия" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "Тёмная сепия" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "Тёмный синий" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "Выбор тёмного цвета - КРАСНЫЙ" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "Введите значение RGB для КРАСНОГО." + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "Выбор тёмного цвета - ЗЕЛЁНЫЙ" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "Введите значение RGB для ЗЕЛЁНОГО." + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "Выбор тёмного цвета - СИНИЙ" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "Введите значение RGB для СИНЕГО." + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "Выбор яркого цвета - КРАСНЫЙ" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "Введите значение RGB для КРАСНОГО." + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "Выбор яркого цвета - ЗЕЛЁНЫЙ" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "Введите значение RGB для ЗЕЛЁНОГО." + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "Выбор яркого цвета - СИНИЙ" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "Введите значение RGB для СИНЕГО." + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "Выбор гаммы для вида запомненной карты" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "Введите значение гаммы." + #: src/options.cpp msgid "Pixel minimap" msgstr "Пиксельная миникарта" @@ -281468,142 +276751,6 @@ msgstr "2x" msgid "4x" msgstr "4x" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "Стартовая зона видимости" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "Определяет область, которая известна с начала игры." - -#: src/options.cpp -msgid "Initial stat points" -msgstr "Стартовые очки характеристик" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "" -"Очки, которые можно потратить на характеристики при создании персонажа." - -#: src/options.cpp -msgid "Initial trait points" -msgstr "Стартовые очки черт" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "Очки, которые можно потратить на черты при создании персонажа." - -#: src/options.cpp -msgid "Initial skill points" -msgstr "Стартовые очки навыков" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "Очки, которые можно потратить на навыки при создании персонажа." - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "Максимум очков для черт" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "" -"Максимум очков, полученных/потраченных на черты при создании персонажа" - -#: src/options.cpp -msgid "Skill training speed" -msgstr "Скорость изучения навыков" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "" -"Масштабирует опыт, накопленный при применении навыков и чтении книг. При 0.5" -" скорость — половина от значения по умолчанию, при 2.0 навыки растут вдвое " -"быстрее, 0.0 отключает тренировку навыков за исключением обучения у NPC." - -#: src/options.cpp -msgid "Skill rust" -msgstr "Атрофия навыков" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" -" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" -"Выбор варианта атрофии навыков. Стандарт: как в оригинале — Capped: " -"ограничен уровнем навыка 2 — Интеллект: В зависимости от интеллекта — " -"IntCap: В зависимости от интеллекта плюс capped — Выкл: нет." - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "Стандарт" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "Ограничен" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "Интеллект" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "ИнтОгр" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "Выкл" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "Экспериментальное 3D поле зрения" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in" -" z-level mode, the vision will extend beyond current z-level. Currently " -"very bugged!" -msgstr "" -"Если выключено, то зрение ограничено текущим z-уровнем. Если включено и мир " -"находится в режиме z-уровней, то зрение будет распространяться и за пределы " -"текущего z-уровня. На данный момент очень забаговано!" - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "Вертикальный диапазон 3D поля зрения" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "" -"Указывает на сколько уровней простирается экспериментальное 3D поле зрения. " -"(На сколько вверх, на столько же и вниз.) 3D зрение полной высоты мира может" -" сильно замедлить игру. Чем меньше Z-уровней видно, тем меньше лагов." - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "Экспериментальное преобразование кодировок имён путей" - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" -" Windows users." -msgstr "" -"Если «да», то имена путей при прочтении будут переведены из системной " -"кодировки в UTF-8, и обратно при записи. Для пользователей CJK Windows " -"восточных языков (китайский, японский, корейский)." - #: src/options.cpp msgid "Core version data" msgstr "Данные о версии ядра" @@ -281915,6 +277062,142 @@ msgstr "Только несколько пулов" msgid "No freeform" msgstr "Запрет на свободный режим" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "Стартовая зона видимости" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "Определяет область, которая известна с начала игры." + +#: src/options.cpp +msgid "Initial stat points" +msgstr "Стартовые очки характеристик" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "" +"Очки, которые можно потратить на характеристики при создании персонажа." + +#: src/options.cpp +msgid "Initial trait points" +msgstr "Стартовые очки черт" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "Очки, которые можно потратить на черты при создании персонажа." + +#: src/options.cpp +msgid "Initial skill points" +msgstr "Стартовые очки навыков" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "Очки, которые можно потратить на навыки при создании персонажа." + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "Максимум очков для черт" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "" +"Максимум очков, полученных/потраченных на черты при создании персонажа" + +#: src/options.cpp +msgid "Skill training speed" +msgstr "Скорость изучения навыков" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "" +"Масштабирует опыт, накопленный при применении навыков и чтении книг. При 0.5" +" скорость — половина от значения по умолчанию, при 2.0 навыки растут вдвое " +"быстрее, 0.0 отключает тренировку навыков за исключением обучения у NPC." + +#: src/options.cpp +msgid "Skill rust" +msgstr "Атрофия навыков" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" +" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" +"Выбор варианта атрофии навыков. Стандарт: как в оригинале — Capped: " +"ограничен уровнем навыка 2 — Интеллект: В зависимости от интеллекта — " +"IntCap: В зависимости от интеллекта плюс capped — Выкл: нет." + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "Стандарт" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "Ограничен" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "Интеллект" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "ИнтОгр" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "Выкл" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "Экспериментальное 3D поле зрения" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in" +" z-level mode, the vision will extend beyond current z-level. Currently " +"very bugged!" +msgstr "" +"Если выключено, то зрение ограничено текущим z-уровнем. Если включено и мир " +"находится в режиме z-уровней, то зрение будет распространяться и за пределы " +"текущего z-уровня. На данный момент очень забаговано!" + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "Вертикальный диапазон 3D поля зрения" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "" +"Указывает на сколько уровней простирается экспериментальное 3D поле зрения. " +"(На сколько вверх, на столько же и вниз.) 3D зрение полной высоты мира может" +" сильно замедлить игру. Чем меньше Z-уровней видно, тем меньше лагов." + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "Экспериментальное преобразование кодировок имён путей" + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" +" Windows users." +msgstr "" +"Если «да», то имена путей при прочтении будут переведены из системной " +"кодировки в UTF-8, и обратно при записи. Для пользователей CJK Windows " +"восточных языков (китайский, японский, корейский)." + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "Автосохранение при потере фокуса" @@ -283032,21 +278315,6 @@ msgstr "ИНТ" msgid "PER" msgstr "ВОС" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "Б" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "К" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "Ш" - #: src/panels.cpp msgid "DEAF" msgstr "ГЛУХ" @@ -283380,8 +278648,8 @@ msgstr "Надеть %s" #: src/pickup.cpp #, c-format -msgid "Spill %s, then pick up %s" -msgstr "Вылить %s, затем поднять %s" +msgid "Spill contents of %s, then pick up %s" +msgstr "Вылить содержимое (%s), затем поднять %s" #: src/pickup.cpp msgid "" @@ -283418,13 +278686,9 @@ msgstr "Вы не можете поднять жидкость!" msgid "You're overburdened!" msgstr "Вы перегружены!" -#: src/pickup.cpp -msgid "You struggle to carry such a large volume!" -msgstr "Вы с трудом тащите такой большой объём предметов!" - #: src/pickup.cpp msgid "Get items from vehicle cargo" -msgstr "Берите вещи из багажника транспорта." +msgstr "Брать вещи из багажника транспорта." #: src/pickup.cpp msgid "Get items from where?" @@ -283744,36 +279008,6 @@ msgstr "Ваша маскировка мерцает и становится п msgid "Your power armor disengages." msgstr "Ваша силовая броня деактивирована." -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "Пить %s прямо из рук?" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "Вы не можете съесть %s." - -#: src/player.cpp -#, c-format -msgid "You are now wielding an empty %s." -msgstr "Теперь у вас в качестве оружия пустая %s." - -#: src/player.cpp -#, c-format -msgid "You are now wearing an empty %s." -msgstr "Вы теперь носите пустой %s." - -#: src/player.cpp -#, c-format -msgid "You drop the empty %s." -msgstr "Вы выбрасываете пустой %s." - -#: src/player.cpp -#, c-format -msgid "%c - %d empty %s" -msgstr "%c - %d %s (пусто)" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -283900,13 +279134,17 @@ msgstr "У %s нет дефектов для переключения." msgid "The %s doesn't have any faults to mend." msgstr "В %s нет никаких дефектов." +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "Предмет повреждён, его нельзя отремонтировать." + #: src/player.cpp #, c-format msgid "" "It is damaged, and could be repaired with %s. %s to use one of those items." msgstr "" -"Это повреждено и может быть отремонтировано с помощью %s. %s, чтобы " -"использовать один из этих предметов." +"Это повреждено, может быть отремонтировано, для ремонта потребуется %s. %s, " +"чтобы использовать один из этих предметов." #: src/player.cpp msgid "Mend which fault?" @@ -283994,11 +279232,6 @@ msgstr "Вы не можете снять этот предмет." msgid " can't take that item off." msgstr " не может снять этот предмет." -#: src/player.cpp -#, c-format -msgid "No room in inventory for your %s. Drop it?" -msgstr "Нет места в инвентаре для %s. Выбросить?" - #: src/player.cpp #, c-format msgid "You take off your %s." @@ -284213,6 +279446,10 @@ msgstr "" msgid "This task is too simple to train your %s beyond %d." msgstr "Эта задача слишком проста для тренировки навыка (%s) выше %d уровня." +#: src/player.cpp +msgid " (empty)" +msgstr "(пусто)" + #: src/player.cpp msgid "Wield what?" msgstr "Что взять в руки?" @@ -284275,8 +279512,8 @@ msgstr "Стоимость очков движения плавания: %+d\n" -msgstr "Стоимость очков движения бега: %+d\n" +msgid "Movement point cost: %+d\n" +msgstr "Стоимость очков движения: %+d\n" #: src/player_display.cpp #, c-format @@ -284366,6 +279603,10 @@ msgstr "Ловкость при метании предметов: msgid "Reduced gun aim speed: %.1f" msgstr "Уменьшение скорость прицеливания: %.1f" +#: src/player_display.cpp +msgid "Weight:" +msgstr "Вес:" + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your" @@ -284387,8 +279628,8 @@ msgstr "Переносимый вес (%s): %.1f" #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" -msgstr "Урон в ближнем бою: %.1f" +msgid "Bash damage: %.1f" +msgstr "Дробящий урон: %.1f" #: src/player_display.cpp msgid "" @@ -284457,10 +279698,6 @@ msgstr "Обнаружение ловушек: %d" msgid "Aiming penalty: %+d" msgstr "Штраф к прицеливанию: %+d" -#: src/player_display.cpp -msgid "Weight:" -msgstr "Вес:" - #: src/player_display.cpp msgid "" "Your weight is a general indicator of how much fat your body has stored up, " @@ -284478,6 +279715,20 @@ msgstr "Ваш рост. Показывает, насколько вы высо msgid "This is how old you are." msgstr "Это ваш возраст." +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "Это ваша группа крови и резус-фактор." + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "Группа крови: %s" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" +msgstr "Резус-фактор: %s" + #: src/player_display.cpp #, c-format msgid "" @@ -284549,6 +279800,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "Бионическ. скорость +%2d%%" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr "%1$s | %2$s | %3$s" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr "%1$s | %2$s" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "[%s] " + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "Название профессии:" + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -284634,18 +279906,6 @@ msgstr "" "Солнечный свет невыносимо раздражает вас.\n" "Сила -4; Ловкость -4; Интеллект -4; Восприятие -4" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr "%1$s | %2$s | %3$s" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr "%1$s | %2$s" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "Следующая категория" @@ -284655,13 +279915,8 @@ msgid "Cycle to previous category" msgstr "Предыдущая категория" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "Переключ. освоение навыка" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" -msgstr "[%s] " +msgid "Toggle skill training / Upgrade stat" +msgstr "Переключ. освоение навыка / Повысить характеристику" #: src/player_hardcoded_effects.cpp msgid "You feel nauseous." @@ -284985,10 +280240,6 @@ msgstr "" "Вы чувствуете слабость, будто отравились, но вам нужно больше. Гораздо " "больше." -#: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." -msgstr "Светящиеся огни окружают вас, и вы телепортируетесь." - #: src/player_hardcoded_effects.cpp msgid "You are beset with a vision of a prowling beast." msgstr "Вас преследует образ рыскающего зверя." @@ -284997,6 +280248,10 @@ msgstr "Вас преследует образ рыскающего зверя." msgid "Your surroundings are permeated with a foul scent." msgstr "Вас пронизывает омерзительная вонь." +#: src/player_hardcoded_effects.cpp +msgid "Glowing lights surround you, and you teleport." +msgstr "Светящиеся огни окружают вас, и вы телепортируетесь." + #: src/player_hardcoded_effects.cpp msgid "You pass out." msgstr "Вы теряете сознание." @@ -285130,6 +280385,10 @@ msgstr "Рана (%s) начинает заживать!" msgid "You succumb to the infection." msgstr "Вы стали жертвой инфекции." +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "Вы пытаетесь поспать, но не можете…" + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "Вы чувствуете себя хорошо отдохнувшим." @@ -285167,10 +280426,6 @@ msgstr "Вы ворочаетесь и перекатываетесь из-за msgid "It's too hot to sleep." msgstr "Из-за жары вы не можете уснуть." -#: src/player_hardcoded_effects.cpp -msgid "It looks like you woke up just before your alarm." -msgstr "Кажется, вы проснулись сразу перед будильником." - #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." msgstr "Ваш встроенный хронометр отключается, а вы так и не сомкнули глаз." @@ -285343,125 +280598,26 @@ msgstr "Вы вручную освобождаете камору %s." msgid "You feel a surge of euphoria as flames roar out of the %s!" msgstr "Вы чувствуете прилив эйфории, когда из %s с рёвом вырывается пламя!" -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "High" -msgstr "Высокий" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Medium" -msgstr "Средний" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Low" -msgstr "Низкий" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "None" -msgstr "Нет" - -#: src/ranged.cpp -#, c-format -msgid "Recoil: %s" -msgstr "Отдача: %s" - -#: src/ranged.cpp -#, c-format -msgid "Firing %s" -msgstr "Стрельба из %s" - -#: src/ranged.cpp -#, c-format -msgid "Throwing %s" -msgstr "Метнуть %s" - -#: src/ranged.cpp -#, c-format -msgid "Blind throwing %s" -msgstr "Метнуть %s вслепую" - -#: src/ranged.cpp -msgid "Set target" -msgstr "Выбрать цель" - -#: src/ranged.cpp -msgid "< [?] show help >" -msgstr "< [?] помощь >" - -#: src/ranged.cpp -msgid "Move cursor to target with directional keys" -msgstr "Двигай указатель на цель курсор. клавишами" - -#: src/ranged.cpp -msgctxt "[Hotkey] to throw" -msgid "to throw" -msgstr "бросить" - -#: src/ranged.cpp -msgctxt "[Hotkey] to attack" -msgid "to attack" -msgstr "атаковать" - -#: src/ranged.cpp -msgctxt "[Hotkey] to cast the spell" -msgid "to cast" -msgstr "заклинание" - -#: src/ranged.cpp -msgctxt "[Hotkey] to fire" -msgid "to fire" -msgstr "стрелять" - -#: src/ranged.cpp -#, c-format -msgid "[%s] Cycle targets;" -msgstr "[%s] Смена целей;" - -#: src/ranged.cpp -#, c-format -msgid "[%c] target self; [%c] toggle snap-to-target" -msgstr "[%c] Цель на себя; [%c] Центр на цели" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to steady your aim. (10 moves)" -msgstr "[%c], чтобы стабилизировать прицел. (10 ходов)" - -#: src/ranged.cpp -#, c-format -msgid "%sto aim and fire" -msgstr "%s Прицельный выстрел" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch aiming modes." -msgstr "[%c] Переключать режимы прицеливания." - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch firing modes." -msgstr "[%c] Переключать режимы стрельбы." - -#: src/ranged.cpp -#, c-format -msgid "[%c] to reload/switch ammo." -msgstr "[%c] перезарядить/сменить тип боеприпаса." - -#: src/ranged.cpp -msgid "RMB: Fire" -msgstr "ПКМ: стрельба" - #: src/ranged.cpp msgid "Steadiness" msgstr "Устойчивость" +#: src/ranged.cpp +msgid "Moves" +msgstr "Шагов" + #: src/ranged.cpp msgid "Symbols:" msgstr "Символы" +#: src/ranged.cpp +msgid "" +" Great - Normal - " +"Graze - Moves" +msgstr "" +"Отлично - Нормально - " +"Касательно - ходов" + #: src/ranged.cpp msgid "Current" msgstr "Текущее" @@ -285471,10 +280627,6 @@ msgstr "Текущее" msgid "%s %s:" msgstr "%s %s:" -#: src/ranged.cpp -msgid "Moves" -msgstr "Шагов" - #: src/ranged.cpp #, c-format msgid "" @@ -285498,11 +280650,6 @@ msgctxt "aim_confidence" msgid "Graze" msgstr "Скользящее попадание" -#: src/ranged.cpp -#, c-format -msgid "Turrets in range: %d" -msgstr "Турели в пределах досягаемости: %d" - #: src/ranged.cpp msgctxt "aim_confidence" msgid "Hit" @@ -285535,114 +280682,6 @@ msgstr "Точное" msgid "[%c] to take precise aim and fire." msgstr "[%c] Точно прицелиться и выстрелить." -#: src/ranged.cpp -msgid "turrets" -msgstr "турель" - -#: src/ranged.cpp -#, c-format -msgid "Really attack %s?" -msgstr "Действительно атаковать %s?" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d" -msgstr "Расстояние: %s Возвышение: %d" - -#: src/ranged.cpp -#, c-format -msgid "Targets: %d" -msgstr "Цели: %d" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d Targets: %d" -msgstr "Расстояние: %s Возвышение: %d Цели: %d" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s %s (%d)" -msgstr "Режим стрельбы: %s %s (%d)" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s (%d)" -msgstr "Режим стрельбы: %s (%d)" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s" -msgstr "Боеприпасы: %s" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s (%d/%d)" -msgstr "Боеприпасы: %s (%d/%d)" - -#: src/ranged.cpp -#, c-format -msgid "%s Delay: %i" -msgstr "%s, задержка: %i" - -#: src/ranged.cpp -#, c-format -msgid "You don't have enough %s to cast this spell" -msgstr "У вас не хватает %s для этого заклинания" - -#: src/ranged.cpp -#, c-format -msgid "Casting: %s (Level %u)" -msgstr "Каст: %s (Уровень %u)" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s" -msgstr "Стоимость: %s %s" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s (Current: %s)" -msgstr "Стоимость: %s %s (Сейчас: %s)" - -#: src/ranged.cpp -#, c-format -msgid "0.0 % Failure Chance" -msgstr "0.0 % Шанс провала" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d/%d Elevation: %d Targets: %d" -msgstr "Расстояние: %d/%d Возвышение: %d Цели: %d" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d Elevation: %d Targets: %d" -msgstr "Расстояние: %d Возвышение: %d Цели: %d" - -#: src/ranged.cpp -#, c-format -msgid "Effective Spell Radius: %s%s" -msgstr "Радиус действия: %s%s" - -#: src/ranged.cpp -msgid " WARNING! IN RANGE" -msgstr "ОПАСНО! В ДОСЯГАЕМОСТИ" - -#: src/ranged.cpp -#, c-format -msgid "Cone Arc: %s degrees" -msgstr "Радиус конуса: %s градусов" - -#: src/ranged.cpp -#, c-format -msgid "Line width: %s" -msgstr "Длина линии: %s" - -#: src/ranged.cpp -#, c-format -msgid "Damage: %s" -msgstr "Урон: %s" - #: src/ranged.cpp msgid "Thunk!" msgstr "«Тунк!»" @@ -285723,6 +280762,232 @@ msgstr "Бу-бум!" msgid "kerblam!" msgstr "«Ты-Дыщ!»" +#: src/ranged.cpp +#, c-format +msgid "You don't have enough %s to cast this spell" +msgstr "У вас не хватает %s для этого заклинания" + +#: src/ranged.cpp +#, c-format +msgid "Really attack %s?" +msgstr "Действительно атаковать %s?" + +#: src/ranged.cpp +#, c-format +msgid "Firing %s" +msgstr "Стрельба из %s" + +#: src/ranged.cpp +#, c-format +msgid "Throwing %s" +msgstr "Метнуть %s" + +#: src/ranged.cpp +#, c-format +msgid "Blind throwing %s" +msgstr "Метнуть %s вслепую" + +#: src/ranged.cpp +msgid "Set target" +msgstr "Выбрать цель" + +#: src/ranged.cpp +msgctxt "[Hotkey] to throw" +msgid "to throw" +msgstr "бросить" + +#: src/ranged.cpp +msgctxt "[Hotkey] to attack" +msgid "to attack" +msgstr "атаковать" + +#: src/ranged.cpp +msgctxt "[Hotkey] to cast the spell" +msgid "to cast" +msgstr "заклинание" + +#: src/ranged.cpp +msgctxt "[Hotkey] to fire" +msgid "to fire" +msgstr "стрелять" + +#: src/ranged.cpp +msgid "[?] show all controls" +msgstr "{?} показать все элементы управления" + +#: src/ranged.cpp +msgid "[?] show help" +msgstr "[?] показать помощь" + +#: src/ranged.cpp +msgid "Shift view with directional keys" +msgstr "Двигать место осмотра клавишами направления" + +#: src/ranged.cpp +msgid "Move cursor with directional keys" +msgstr "Двигайте курсор клавишами направления" + +#: src/ranged.cpp +msgid "Mouse: LMB: Target, Wheel: Cycle," +msgstr "Мышь: ЛКМ: Цель, Колесо: Выбор," + +#: src/ranged.cpp +msgid "RMB: Fire" +msgstr "ПКМ: стрельба" + +#: src/ranged.cpp +#, c-format +msgid "[%s] Cycle targets;" +msgstr "[%s] Смена целей;" + +#: src/ranged.cpp +#, c-format +msgid "[%c] %s." +msgstr "[%c] %s." + +#: src/ranged.cpp +#, c-format +msgid "[%c] target self; [%c] toggle snap-to-target" +msgstr "[%c] Цель на себя; [%c] Центр на цели" + +#: src/ranged.cpp +msgid "to aim and fire." +msgstr "чтобы прицелиться и выстрелить" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to steady your aim. (10 moves)" +msgstr "[%c], чтобы стабилизировать прицел. (10 ходов)" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch aiming modes." +msgstr "[%c] Переключать режимы прицеливания." + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch firing modes." +msgstr "[%c] Переключать режимы стрельбы." + +#: src/ranged.cpp +#, c-format +msgid "[%c] to reload/switch ammo." +msgstr "[%c] перезарядить/сменить тип боеприпаса." + +#: src/ranged.cpp +#, c-format +msgctxt "[Hotkey] Show/Hide turrets' lines of fire" +msgid "[%c] %s lines of fire" +msgstr "[%c] %s линия огня" + +#: src/ranged.cpp +#, c-format +msgid "Elevation: %d" +msgstr "Возвышение: %d" + +#: src/ranged.cpp +#, c-format +msgid "Targets: %d" +msgstr "Цели: %d" + +#: src/ranged.cpp +#, c-format +msgid "Firing mode: %s%s (%d)" +msgstr "Режим стрельбы: %s %s (%d)" + +#: src/ranged.cpp +msgid "OUT OF AMMO" +msgstr "НЕТ БОЕПРИПАСОВ" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s" +msgstr "Боеприпасы: %s" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s (%d/%d)" +msgstr "Боеприпасы: %s (%d/%d)" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "High" +msgstr "Высокий" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Medium" +msgstr "Средний" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Low" +msgstr "Низкий" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "None" +msgstr "Нет" + +#: src/ranged.cpp +#, c-format +msgid "Recoil: %s" +msgstr "Отдача: %s" + +#: src/ranged.cpp +#, c-format +msgid "Casting: %s (Level %u)" +msgstr "Каст: %s (Уровень %u)" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s" +msgstr "Стоимость: %s %s" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s (Current: %s)" +msgstr "Стоимость: %s %s (Сейчас: %s)" + +#: src/ranged.cpp +#, c-format +msgid "0.0 % Failure Chance" +msgstr "0.0 % Шанс провала" + +#: src/ranged.cpp +#, c-format +msgid "Effective Spell Radius: %s%s" +msgstr "Радиус действия: %s%s" + +#: src/ranged.cpp +msgid " WARNING! IN RANGE" +msgstr "ОПАСНО! В ДОСЯГАЕМОСТИ" + +#: src/ranged.cpp +#, c-format +msgid "Cone Arc: %s degrees" +msgstr "Радиус конуса: %s градусов" + +#: src/ranged.cpp +#, c-format +msgid "Line width: %s" +msgstr "Длина линии: %s" + +#: src/ranged.cpp +#, c-format +msgid "Damage: %s" +msgstr "Урон: %s" + +#: src/ranged.cpp +#, c-format +msgid "%s Delay: %i" +msgstr "%s, задержка: %i" + +#: src/ranged.cpp +#, c-format +msgid "Turrets in range: %d/%d" +msgstr "Турели в пределах досягаемости: %d/%d" + #: src/recipe.cpp msgid "none" msgstr "нет" @@ -285996,16 +281261,41 @@ msgid "Limited" msgstr "Ограничены" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" -msgstr "Эта игра не имеет полученных достиженных.\n" +msgid "achievements" +msgstr "достижения" + +#: src/scores_ui.cpp +msgid "conducts" +msgstr "ограничения" #: src/scores_ui.cpp +msgid "Conducts" +msgstr "Ограничения" + +#: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." msgstr "" -"Заметьте, что здесь отображаются только те достижения, которые существовали " -"при старте текущей игры и до сего момента." +"%s отключены, вероятно, из-за использования меню отладки. Если вы " +"использовали меню отладки только для обхода игровой ошибки, то вы можете " +"снова включить %s через меню отладки (в подменю «Игра»)." + +#: src/scores_ui.cpp +#, c-format +msgid "This game has no valid %s.\n" +msgstr "Действительные %s не найдены в этой игре.\n" + +#: src/scores_ui.cpp +#, c-format +msgid "" +"Note that only %s that existed when you started this game and still exist " +"now will appear here." +msgstr "" +"Заметьте, что здесь отображаются только те %s, которые существовали при " +"старте текущей игры и до сего момента." #: src/scores_ui.cpp msgid "This game has no valid scores.\n" @@ -286023,6 +281313,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "ДОСТИЖЕНИЯ" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "ОГРАНИЧЕНИЯ" + #: src/scores_ui.cpp msgid "SCORES" msgstr "СТАТИСТИКА" @@ -286799,7 +282093,7 @@ msgid "A blade swings out and hacks your torso!" msgstr "Лезвие замахивается и рубит ваш торс!" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" +msgid "A blade swings out and hacks 's torso!" msgstr "Лезвие замахивается и рубит торс !" #: src/trapfunc.cpp @@ -287235,6 +282529,14 @@ msgstr "Нельзя пометить эту машину, потому что msgid "Only one %1$s powered engine can be installed." msgstr "Можно установить только один %1$s двигатель." +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "Этот транспортное средство нельзя изменить подобным образом.\n" + +#: src/veh_interact.cpp +msgid "This part cannot be installed.\n" +msgstr "Эта часть не может быть установлена.\n" + #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." msgstr "Воронку нужно устанавливать поверх бака." @@ -287386,6 +282688,13 @@ msgstr "Слишком темно для того, чтобы видеть, чт msgid "You can't install parts while driving." msgstr "Вы не можете устанавливать детали, пока водите." +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy." +" Continue?" +msgstr "" +"Установка этой детали сделает транспорт неспособным к полёту. Продолжить?" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "Установка этой детали сделает транспорт не складным. Продолжить?" @@ -287411,8 +282720,25 @@ msgid "Choose a part here to repair:" msgstr "Выберите деталь для починки:" #: src/veh_interact.cpp -msgid "This part cannot be repaired" -msgstr "Эту часть нельзя отремонтировать." +msgid "This part cannot be repaired.\n" +msgstr "Эта часть не может быть отремонтирована.\n" + +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "Это транспортное средство не может быть отремонтировано.\n" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" +"Ремонт этой детали сделает транспорт неспособным к полёту. Продолжить?" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "" +"Вы решили не устанавливать эту деталь, чтобы не лишать транспорт способности" +" летать.\n" #: src/veh_interact.cpp msgid "Your morale is too low to mend…" @@ -287517,6 +282843,10 @@ msgstr "«{» для прокрутки вверх" msgid "'}' to scroll down" msgstr "«}» для прокрутки вниз" +#: src/veh_interact.cpp +msgid "This part cannot be uninstalled.\n" +msgstr "Эта часть не может быть удалена.\n" + #: src/veh_interact.cpp #, c-format msgid "" @@ -287527,35 +282857,20 @@ msgstr "" #: src/veh_interact.cpp #, c-format msgid "" -"Removing the %1$s will yield:\n" +"Removing the %1$s may yield:\n" "> %2$s\n" msgstr "" -"Удаление %1$s даст следующие предметы:\n" +"Удаление части (%1$s) может дать следующие предметы:\n" "> %2$s\n" -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength #: src/veh_interact.cpp #, c-format msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength ( " -"assisted ) %5$i" -msgstr "" -"> %1$s1 инструмент с возможностью %2$s %3$i ИЛИ" -" %4$sсила (с помощниками) %5$i" - -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength -#: src/veh_interact.cpp -#, c-format -msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength " -"%5$i" +"Removing the %1$s will yield:\n" +"> %2$s\n" msgstr "" -"> %1$s1 инструмент с возможностью %2$s %3$i ИЛИ" -" %4$sсила %5$i" +"Удаление %1$s даст следующие предметы:\n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is pre-translated reason @@ -287580,6 +282895,13 @@ msgstr "Вы не можете убрать эту деталь, пока к н msgid "Better not remove something while driving." msgstr "Лучше не убирать детали, пока ведёшь." +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" +"Удаление этой детали сделает транспорт неспособным к полёту. Продолжить?" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "В машине больше не осталось топлива." @@ -287624,7 +282946,7 @@ msgstr "Отменить роли:" #: src/veh_interact.cpp msgid "There are no parts here to label." -msgstr "Здесь нет деталей для отмечивания." +msgstr "Здесь нет деталей для пометок." #: src/veh_interact.cpp msgid "New label:" @@ -287936,7 +283258,7 @@ msgstr "Расход: %+8d" #: src/veh_interact.cpp msgid "boardable" -msgstr "хранилище" +msgstr "подходит для пассажира" #: src/veh_interact.cpp msgid "opaque" @@ -288040,6 +283362,13 @@ msgstr "Не выполнены условия для снятия %s." msgid "You remove the broken %1$s from the %2$s." msgstr "Вы вынимаете сломанную деталь (%1$s) из транспорта (%2$s)." +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" +"Вы разбиваете часть (%1$s) вдребезги, удалив её таким образом из транспорта " +"(%2$s)." + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -288066,7 +283395,7 @@ msgstr "" #: src/veh_type.cpp #, c-format msgid "Has level %1$d %2$s quality" -msgstr "Имеет качество %2$s %1$d уровня " +msgstr "Имеет качество %2$s %1$d уровня" #: src/veh_type.cpp #, c-format @@ -288162,13 +283491,13 @@ msgstr "" #: src/vehicle.cpp #, c-format msgid "You unload the %s from the bike rack." -msgstr "Вы разгрузили %s со стойки велосипеда." +msgstr "Вы разгрузили %s с велосипедной стойки." #. ~ %s is the vehicle being loaded onto the bicycle rack #: src/vehicle.cpp #, c-format msgid "You can't unload the %s from the bike rack." -msgstr "Вы не можете разгрузить %s со стойки велосипеда." +msgstr "Вы не снять это (%s) с велосипедной стойки." #: src/vehicle.cpp msgid "hmm" @@ -288340,7 +283669,7 @@ msgstr "%s слишком дырявый!" #: src/vehicle_move.cpp #, c-format msgid "The %s doesn't have enough wheels to move!" -msgstr "%s не хватает колёс для езды!" +msgstr "Транспорту (%s) не хватает колёс для езды!" #: src/vehicle_move.cpp #, c-format @@ -288526,7 +283855,7 @@ msgstr "От столкновения %s вылетел из %s!" #: src/vehicle_part.cpp #, c-format msgid "%2.1fL " -msgstr "%2.1f-л " +msgstr "%2.1fл" #: src/vehicle_part.cpp #, c-format @@ -288622,7 +283951,7 @@ msgstr "направленная мигалка" #: src/vehicle_use.cpp msgctxt "electronics menu option" msgid "overhead lights" -msgstr "мигалку" +msgstr "освещение салона" #: src/vehicle_use.cpp msgctxt "electronics menu option" @@ -288642,7 +283971,7 @@ msgstr "атомная подсветка" #: src/vehicle_use.cpp msgctxt "electronics menu option" msgid "stereo" -msgstr "стерео" +msgstr "стереосистема" #: src/vehicle_use.cpp msgctxt "electronics menu option" @@ -288667,7 +283996,7 @@ msgstr "автомобильный обогреватель" #: src/vehicle_use.cpp msgctxt "electronics menu option" msgid "cooler" -msgstr "кулер" +msgstr "кондиционер" #: src/vehicle_use.cpp msgctxt "electronics menu option" @@ -288757,10 +284086,6 @@ msgstr "Вы не нашли ключи внутри транспорта (%s)." msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "Вы не нашли ключи внутри транспорта (%s). Попытаться завести его?" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "Замкнуть провода для запуска" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -288856,7 +284181,7 @@ msgstr "Покинуть управление" #: src/vehicle_use.cpp msgid "No controls there" -msgstr "Тут нет руля." +msgstr "Тут нет органов управления." #: src/vehicle_use.cpp msgid "Stop driving" @@ -288909,11 +284234,11 @@ msgstr "Попробовать отключить сигнализацию" #: src/vehicle_use.cpp msgid "Trigger alarm" -msgstr "Активировать тревогу" +msgstr "Активировать сигнализацию" #: src/vehicle_use.cpp msgid "You trigger the alarm" -msgstr "Вы активируете тревогу!" +msgstr "Вы активируете сигнализацию" #: src/vehicle_use.cpp msgid "Vehicle controls" @@ -289041,7 +284366,7 @@ msgstr "простая мелодия звучит из громкоговори #: src/vehicle_use.cpp msgid "Clanggggg!" -msgstr "«Лязггг!»" +msgstr "Лязггг!" #: src/vehicle_use.cpp msgid "Swish" @@ -289049,7 +284374,7 @@ msgstr "Шухх" #: src/vehicle_use.cpp msgid "Clink" -msgstr "«Звяк»" +msgstr "Звяк" #: src/vehicle_use.cpp msgid "Cugugugugug" @@ -289256,7 +284581,7 @@ msgstr "Вы запрягаете %1$s в %2$s." #: src/vehicle_use.cpp #, c-format msgid "You untie your %s." -msgstr "Вы распрягаете вашего %s." +msgstr "Вы распрягаете ваше тягловое животное (%s)." #: src/vehicle_use.cpp msgid "Load a vehicle on the rack" @@ -289265,7 +284590,7 @@ msgstr "Погрузить транспорт на стойку" #: src/vehicle_use.cpp #, c-format msgid "Remove the %s from the rack" -msgstr "Снять %s со стойки" +msgstr "Снять транспорт (%s) со стойки" #: src/vehicle_use.cpp msgid "Examine vehicle" @@ -289295,6 +284620,11 @@ msgstr "Выключить посудомойку" msgid "Activate the dishwasher (1.5 hours)" msgstr "Включить посудомойку (1.5 часа)" +#: src/vehicle_use.cpp +#, c-format +msgid "Unload %s" +msgstr "Разрядить %s" + #: src/vehicle_use.cpp msgid "Peek through the closed curtains" msgstr "Заглянуть сквозь задёрнутые шторы" @@ -289342,7 +284672,7 @@ msgstr "Положить семена в сеялку" #: src/vehicle_use.cpp #, c-format msgid "Craft at the %s" -msgstr "Изготовить у %s" +msgstr "Изготовить на подходящей поверхности (%s)" #: src/vehicle_use.cpp #, c-format @@ -289353,13 +284683,15 @@ msgstr "Очистить воду в баке" #: src/vehicle_use.cpp #, c-format msgid "Insufficient power to purify the contents of the %1$s's %2$s" -msgstr "Недостаточно энергии, чтобы очистить содержимое %2$s в %1$s" +msgstr "" +"Недостаточно энергии, чтобы очистить содержимое ёмкости (%2$s) в транспорте " +"(%1$s)" #. ~ $1 - vehicle name, $2 - part name #: src/vehicle_use.cpp #, c-format msgid "You purify the contents of the %1$s's %2$s" -msgstr "Вы очищаете содержимое %1$s's %2$s" +msgstr "Вы очищаете содержимое ёмкости (%2$s) в транспорте (%1$s)" #: src/weather.cpp msgid "You hear a distant rumble of thunder." @@ -289623,11 +284955,11 @@ msgstr "Моросящий снег" #: src/weather_data.cpp msgid "Snowing" -msgstr "снегопад" +msgstr "Снегопад" #: src/weather_data.cpp msgid "Snowstorm" -msgstr "метель" +msgstr "Метель" #: src/wish.cpp msgid "Nonvalid" @@ -289724,11 +285056,6 @@ msgstr "(помечено)" msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" msgstr "[%s] поиск, [f] контейнер, [F] флаг, [E] все, [%s] выход" -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "%.*s" - #: src/wish.cpp msgid "How many?" msgstr "Сколько?" diff --git a/lang/po/zh_CN.po b/lang/po/zh_CN.po index 24fe70d02ddf0..54ec1f158f72c 100644 --- a/lang/po/zh_CN.po +++ b/lang/po/zh_CN.po @@ -1,6 +1,5 @@ # # Translators: -# ImmortalSTAR , 2018 # 1 23 , 2018 # dikai li , 2018 # Jin Zhang <610037437@qq.com>, 2018 @@ -9,7 +8,6 @@ # cellxiecao , 2018 # 4c6e1d75b9f86fe32f55f91342c2d6a6, 2018 # 高 励贤 <475964436@qq.com>, 2018 -# Howlaind , 2018 # Hua Liang , 2018 # ShenMian , 2019 # iopop, 2019 @@ -29,41 +27,41 @@ # Muye Ma , 2019 # Mizu Izumi, 2019 # Jerry Shell , 2019 -# D Laboratory , 2019 +# 56bcda6c74cf0f8b62fa48b0f8892307_35b4074 , 2019 # JeffChen , 2019 # zao lv , 2019 -# 何方神圣 何 <1366003560@qq.com>, 2019 # Middo <18119928570@163.com>, 2019 -# 万 和 <380014507@qq.com>, 2019 # startobira , 2019 # Jaron , 2020 # Kuma Green_eye , 2020 -# GeekDuanLian , 2020 # KDU EDM <2359501811@qq.com>, 2020 # newisle newisle , 2020 -# VoidForge , 2020 # 保周 郭 , 2020 # none none <514065589@qq.com>, 2020 # ehnuhc , 2020 # Brett Dong , 2020 # 等离子 坦克 , 2020 -# fei li , 2020 # 曾泰瑋 , 2020 # Mein Führer <851000914@qq.com>, 2020 # Jianxiang Wang , 2020 # Silencess , 2020 -# L rient <1972308206@qq.com>, 2020 -# cainiao , 2020 # Aloxaf , 2020 +# 万 和 <380014507@qq.com>, 2020 # Amans Tofu , 2020 +# fei li , 2020 +# 何方神圣 何 <1366003560@qq.com>, 2020 +# GeekDuanLian , 2020 +# VoidForge , 2020 +# L rient <1972308206@qq.com>, 2020 +# cainiao , 2020 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-01 12:24+0800\n" +"POT-Creation-Date: 2020-06-05 08:37+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Amans Tofu , 2020\n" +"Last-Translator: cainiao , 2020\n" "Language-Team: Chinese (China) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -111,6 +109,48 @@ msgid "" "battery cells, but can never be unloaded." msgstr "一些自由流动的电能,可以为电池补充电量,但无法取出。" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "丁烷" + +#. ~ Description for {'str_sp': 'butane'} +#: lang/json/AMMO_from_json.py +msgid "A common flammable liquid used in lighters." +msgstr "打火机常用的易燃液体。" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "照明剂" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "照明弹中使用的燃烧时产生强烈发光效应的烟火药剂。" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" +msgstr[0] "火柴" + +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "一根红头小木棍。在火柴盒上划一下可以点亮它。" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "氧气" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "医用高压氧气。" + #: lang/json/AMMO_from_json.py msgid "aluminum foil" msgid_plural "aluminum foils" @@ -129,11 +169,9 @@ msgid_plural "cents" msgstr[0] "美分" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "如果你在游戏中见到它,说明这里出bug了。" +#: lang/json/AMMO_from_json.py +msgid "A unit of currency equivalent to 0.01 US dollars." +msgstr "等效于0.01美元的货币单位。" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -269,8 +307,8 @@ msgstr[0] "石子" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." -msgstr "一把小石子,很适合当抛石索或弹弓的弹药。" +msgid "A handful of pebbles, useful as ammunition for slingshots." +msgstr "一把小石子,很适合当弹弓的弹药。" #: lang/json/AMMO_from_json.py msgid "clay pellet" @@ -279,10 +317,8 @@ msgstr[0] "陶弹丸" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or " -"slingshots." -msgstr "一把陶制弹丸,很适合当抛石索和弹弓的弹药。" +msgid "A handful of round projectiles made of clay, useful for slingshots." +msgstr "一把陶制弹丸,很适合当弹弓的弹药。" #: lang/json/AMMO_from_json.py msgid "marble" @@ -291,9 +327,8 @@ msgstr[0] "玻璃弹珠" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." -msgstr "一把小玻璃弹珠,很适合当抛石索或弹弓的弹药。" +msgid "A handful of glass marbles, useful as ammunition for slingshots." +msgstr "一把小玻璃弹珠,很适合当弹弓的弹药。" #: lang/json/AMMO_from_json.py msgid "bearings" @@ -302,8 +337,8 @@ msgstr[0] "滚珠" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." -msgstr "一盒滚珠轴承的钢球,很适合当抛石索或弹弓的弹药。" +msgid "A box of ball bearings, useful as ammunition for slingshots." +msgstr "一盒滚珠轴承的钢球,很适合当弹弓的弹药。" #: lang/json/AMMO_from_json.py msgid "BB" @@ -312,7 +347,9 @@ msgstr[0] "BB弹" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." msgstr "一盒玩具枪使用的球形弹丸,几乎没有杀伤力。" #: lang/json/AMMO_from_json.py @@ -566,6 +603,12 @@ msgid "placeholder ammunition" msgid_plural "placeholder ammunitions" msgstr[0] "占位用弹药" +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "如果你在游戏中见到它,说明这里出bug了。" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" msgid_plural "charcoal" @@ -605,6 +648,18 @@ msgstr "" "一些黑色易燃的碳化物,常用于烹饪和取暖。\n" "\"远古的孢子、裸子与被子植物尸体的最终形态。\"" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "舒喘宁" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "学名为沙丁胺醇,属于支气管扩张剂,能使呼吸道的肌肉放松并增加流入肺部的空气量。" + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -701,11 +756,6 @@ msgstr "" "一个鱼饵,放在捕鱼用具里用来捕鱼。\n" "\"无法吸引一个宝箱。\"" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "氧气" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -2890,8 +2940,8 @@ msgstr[0] ".45 ACP 被甲弹" #: lang/json/AMMO_from_json.py 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年了。" +"the .45 ACP round has been common for over a century." +msgstr "230格令的 .45 口径 ACP全金属被甲弹。由于其优秀的停止作用,.45 口径ACP手枪弹已经流行了将近一个世纪了。" #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -3791,9 +3841,8 @@ msgstr[0] "9x19mm 被甲弹" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round" -" for military, law enforcement, and civilian use even after almost 150 " -"years." -msgstr "115格令的9x19mm 黄铜全金属被甲弹。即便生产了近150年,时至今日依然广泛使用在军队、执法部门和民用领域。" +" for military, law enforcement, and civilian use for over a century." +msgstr "115格令的9x19mm 黄铜全金属被甲弹。即便已经生产了将近一个世纪,时至今日依然广泛使用在军队、执法部门和民用领域。" #: lang/json/AMMO_from_json.py msgid "9x19mm +P" @@ -5428,9 +5477,9 @@ msgstr[0] "凯夫拉面料" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." -msgstr "一卷凯夫拉合成纤维面料,可以用于制造防弹装甲。这种形态和刚性装甲板不同,可以被用于缝制。" +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." +msgstr "一卷凯夫拉合成纤维面料,可以用于制造防割耐用的护甲。这种形态和刚性装甲板不同,可以被用于缝制。" #: lang/json/AMMO_from_json.py msgid "Lycra sheet" @@ -5658,11 +5707,6 @@ msgid "" "fluid. You'd probably best feed it into the bioblaster. " msgstr "这个正在蠕动的结节完全由树脂和血肉融合而成,似乎正在分泌出一种腐蚀性液体。你最好把它装填进生化热熔炮里。" -#: lang/json/AMMO_from_json.py -msgid "plutonium cell" -msgid_plural "plutonium cells" -msgstr[0] "核能钚电池" - #: lang/json/AMMO_from_json.py msgid "titanium" msgid_plural "titanium" @@ -5743,63 +5787,6 @@ msgid "" msgstr "" "螺旋形的弹匣内装满了合金空尖弹,采用分隔式底火发射,虽然它不是目前杀伤力最大的武器,但是你在发射它时不必担心流弹会对环境造成不良影响,而且威力还够用。" -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N8" -msgid_plural "6.54x42mm 9N8" -msgstr[0] "6.54x42mm 9N8 弹" - -#. ~ Description for {'str_sp': '6.54x42mm 9N8'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 6.54x42mm cartridge, loaded with a 120 gr. FMJBT bullet. Inspired by the " -"improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " -"rifle cartridge for his new SVS-24 Assault Rifle." -msgstr "" -"一种6.52x42mm口径的120格令全金属被甲弹。从改进型.280弹药中获得启发, 亚力山大·萨拉法诺夫为他的新型SVS-24 " -"突击步枪设计了6.54x42mm 步枪弹。" - -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N12" -msgid_plural "6.54x42mm 9N12" -msgstr[0] "6.54x42mm 9N12 弹" - -#. ~ Description for {'str_sp': '6.54x42mm 9N12'} -#: lang/json/AMMO_from_json.py -msgid "" -"The 6.54x42mm 9N12 has superior armor piercing capabilities thanks to its " -"tungsten carbide core. Tungsten carbide was used in anti-tank rounds of the" -" 20th and 21st century, whenever depleted uranium was unavailable or " -"undesirable." -msgstr "" -"6.54x42mm 9N12 " -"步枪弹的弹头拥有一根碳化钨弹芯,这给予了它优秀的穿甲性能。在二十世纪到二十一世纪,当贫铀材料缺乏或者不被需要的时候,碳化钨材料就被用于制造反坦克弹药。" - -#: lang/json/AMMO_from_json.py -msgid ".20 DREAD Pellet" -msgid_plural ".20 DREAD Pellets" -msgstr[0] ".20 \"恐惧\"金属球弹" - -#. ~ Description for {'str': '.20 DREAD Pellet'} -#: lang/json/AMMO_from_json.py -msgid "" -"These metal pellets are propelled with the help of electromagnets, therefore" -" they do not produce sound, flash or heat signature." -msgstr "\"恐惧\"金属球弹采用电磁加速原理发射,因此不会产生任何声音、闪光或热信号。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 6.54x42mm" -msgid_plural "reloaded 6.54x42mm" -msgstr[0] "6.54x42mm 弹(复装)" - -#. ~ Description for {'str_sp': 'reloaded 6.54x42mm'} -#: lang/json/AMMO_from_json.py -msgid "" -"Inspired by the improved .280, Alexander Sarafanov himself developed the " -"6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " -"been hand-reloaded." -msgstr "" -"从改进型.280弹药中获得启发, 亚历山大·萨拉法诺夫为他的新型 SVS-24 突击步枪设计了6.54x42mm 步枪弹。这是手工复装的型号。" - #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -6415,106 +6402,10 @@ msgid_plural "mana core powers" msgstr[0] "魔力动力" #. ~ Description for mana core power -#. ~ Description for {'str_sp': 'vortex core'} #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." msgstr "看见这个说明出bug了。" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "fire lance charge" -msgid_plural "fire lance charges" -msgstr[0] "火枪药" - -#. ~ Description for fire lance charge -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm. Despite the " -"minimal range, it packs a punch." -msgstr "一小撮用于简易枪械的火枪药。虽然距离短,但也能给人狠狠一击。" - -#: lang/json/AMMO_from_json.py -msgid "fire lance shot" -msgid_plural "fire lance shots" -msgstr[0] "火枪弹" - -#. ~ Description for fire lance shot -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm, with small " -"pellets as shot. Despite the minimal range, it packs a punch." -msgstr "一小撮用于简易枪械的火枪药及一堆石子作弹药。虽然距离短,但也能给人狠狠一击。" - -#: lang/json/AMMO_from_json.py -msgid "lead pellet" -msgid_plural "lead pellets" -msgstr[0] "铅弹丸" - -#. ~ Description for lead pellet -#: lang/json/AMMO_from_json.py -msgid "" -"Hefty round projectiles cast from lead, useful as ammunition for slings." -msgstr "扎实的铅弹丸,很适合当抛石索的弹药。" - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" -msgstr[0] "木标枪" - -#: lang/json/AMMO_from_json.py -msgid "stone javelin" -msgid_plural "stone javelins" -msgstr[0] "石尖标枪" - -#. ~ Description for stone javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A throwing spear with a stone spearhead. The grip area has also been carved" -" and covered for better grip." -msgstr "一根采用石制矛头的标枪。握手也经过防滑处理,更适合抓握及投掷。" - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" -msgstr[0] "铁尖标枪" - -#: lang/json/AMMO_from_json.py -msgid "copper javelin" -msgid_plural "copper javelins" -msgstr[0] "铜尖标枪" - -#. ~ Description for copper javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A copper-tipped throwing spear. The grip area has also been carved and " -"covered for better grip." -msgstr "一根采用铜制矛头的标枪。握手也经过防滑处理,更适合抓握及投掷。" - -#: lang/json/AMMO_from_json.py -msgid "40mm EMP grenade" -msgid_plural "40mm EMP grenades" -msgstr[0] "40mm EMP 榴弹" - -#. ~ Description for {'str': '40mm EMP grenade'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" -" capable of damaging robots and some equipment." -msgstr "一颗40mm口径榴弹,配有EMP弹头。爆炸时会释放出能够破坏无人机和电子设备的电磁脉冲。" - -#: lang/json/AMMO_from_json.py -msgid "glowball" -msgid_plural "glowballs" -msgstr[0] "发光彩弹" - -#. ~ Description for glowball -#: lang/json/AMMO_from_json.py -msgid "" -"A tube of small glowballs taken off the market due to hazardous chemicals. " -"They deal virtually no damage, but light up on impact. Useful for " -"illuminating an area without lighting up yourself in the process." -msgstr "" -"一管小型彩弹,因为使用了危险有毒化学品而被禁止在市场上流通。几乎不能造成任何伤害,但会使得目标发光。适用于在不暴露自己的情况下,点亮目标区域。" - #: lang/json/AMMO_from_json.py msgid "TEST rock" msgid_plural "TEST rocks" @@ -6526,466 +6417,51 @@ msgid_plural "TEST small metal sheets" msgstr[0] "测试用小型薄钢板" #: lang/json/AMMO_from_json.py -msgid "TEST platinum bit" -msgid_plural "TEST platinum bits" -msgstr[0] "测试用铂金块" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEDP" -msgid_plural "30x113mm HEDP" -msgstr[0] "30x113mm 高爆两用弹" - -#. ~ Description for {'str_sp': '30x113mm HEDP'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " -"Used primarily against light armored vehicles." -msgstr "一颗30x113mm 高爆两用反器材弹。主要用于打击轻装甲载具。" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEI" -msgid_plural "30x113mm HEI" -msgstr[0] "30x113mm HEI" - -#. ~ Description for {'str_sp': '30x113mm HEI'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round, high explosive incendiary. Designed for use " -"against unarmored vehicles and to suppress infantry." -msgstr "一颗30x113mm 高爆机炮燃烧弹。主要用于打击无装甲车辆以及压制步兵。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 30x113mm" -msgid_plural "reloaded 30x113mm" -msgstr[0] "30x113mm 机炮炮弹(复装)" - -#. ~ Description for {'str_sp': '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 机炮炮弹,复装了底火及简易的铅弹。效果比不上原装的炮弹。" - -#. ~ 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" -"\"摊上任何人都会造就'最长的一天'。\"" - -#: lang/json/AMMO_from_json.py -msgid "120mm APFSDS" -msgid_plural "120mm APFSDSs" -msgstr[0] "120mm 尾翼稳定脱壳穿甲弹" - -#. ~ Description for 120mm APFSDS -#: lang/json/AMMO_from_json.py -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 尾翼脱穿弹。使用贫铀弹芯,能给目标狠狠一击。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 120mm shot" -msgid_plural "reloaded 120mm shots" -msgstr[0] "120mm 炮弹(复装)" - -#. ~ Description for reloaded 120mm shot -#: lang/json/AMMO_from_json.py -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 炮弹,使用新的电子底火并装上大量铅球。效果犹如早已不再使用的霰弹,但质量更次。" - -#: lang/json/AMMO_from_json.py -msgid "makeshift 120mm slug" -msgid_plural "makeshift 120mm slugs" -msgstr[0] "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 "一颗120mm 机炮炮弹,使用新的电子底火并装上纯铅弹芯。效果比不上原装的炮弹。" - -#: lang/json/AMMO_from_json.py -msgid "155mm HEAT" -msgid_plural "155mm HEATs" -msgstr[0] "155mm 高爆反坦克弹" - -#. ~ Description for 155mm HEAT -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Anti Tank round. More than enough firepower for " -"whatever you could think to point it at." -msgstr "155mm 反坦克高爆加榴弹,超强的火力能够夷平任何你所想摧毁的目标。" - -#: lang/json/AMMO_from_json.py -msgid "155mm frag" -msgid_plural "155mm frags" -msgstr[0] "155mm 榴弹" - -#. ~ Description for 155mm frag -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Fragmentation round. Designed to give anything near " -"what you hit a really bad day." -msgstr "155mm 口径的高爆榴弹。能给目标及其周围任何东西狠狠一击。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm shot" -msgid_plural "reloaded 155mm shots" -msgstr[0] "155mm 霰弹(复装)" - -#. ~ Description for reloaded 155mm shot -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm shell with a new electric primer installed, filled with a huge " -"amount of buckshot. Effectively turns a howitzer into a punt gun on " -"steroids." -msgstr "" -"一发安装了新式电子底火的155mm " -"炮弹,内部填充了大量铅弹。实际上将榴弹炮变成打了激素的大号平底船枪。(注:平底船枪是美国一种于1820年代初期用于狩猎大批水鸟的大型霰弹枪,整枪固定于船身)" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm slug" -msgid_plural "reloaded 155mm slugs" -msgstr[0] "155mm 独头炮弹(复装)" - -#. ~ Description for reloaded 155mm slug -#: lang/json/AMMO_from_json.py -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 炮弹,弹头为手工加工的独头弹。虽然火力效果下降,但被正面击中的怪物肯定不会有这种想法。" - -#: lang/json/AMMO_from_json.py -msgid "small electric primer" -msgid_plural "small electric primers" -msgstr[0] "小型电子底火" - -#. ~ Description for small electric primer -#: lang/json/AMMO_from_json.py -msgid "Primer for an autocannon shell. Seems to use an electric ignition." -msgstr "用于机炮炮弹的底火,似乎采用电子触发方式。" - -#: lang/json/AMMO_from_json.py -msgid "large electric primer" -msgid_plural "large electric primers" -msgstr[0] "大型电子底火" - -#. ~ Description for large electric primer -#: lang/json/AMMO_from_json.py -msgid "" -"Primer for a tank or artillery shell. Seems to use an electric ignition." -msgstr "用于坦克炮及火炮炮弹的底火,似乎采用电子触发方式。" - -#: lang/json/AMMO_from_json.py -msgid "liquified blob feed" -msgid_plural "liquified blob feed" -msgstr[0] "变形怪培养液" - -#. ~ Description for {'str_sp': 'liquified blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"Liquified blob feed, useful for fueling certain blob based vehicle parts" -msgstr "液化的变形怪培养物,用于为某些特定的变形怪车辆部件供能。" - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "blob feed" -msgid_plural "blob feed" -msgstr[0] "变形怪培养物" - -#. ~ Description for {'str_sp': 'blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"An amalgam of various types of organic material, contains everything the " -"blob needs to be healthy. You think…" -msgstr "" -"包含了各种有机材料的混合物,提供变形怪健康成长所需要的所有营养。\n" -"\"可爱变形怪专用热销饲料。\"" - -#: lang/json/AMMO_from_json.py -msgid "IED" -msgid_plural "IEDs" -msgstr[0] "IED" - -#: lang/json/AMMO_from_json.py -msgid "blast canister" -msgid_plural "blast canisters" -msgstr[0] "高爆大炸弹" - -#. ~ Description for {'str': 'blast canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a substantial explosive payload." -msgstr "一个简易的爆炸装置,说起来就是里边装了杀伤性物质的密封容器,遭遇撞击后触发。这个有大量的高爆装药。" - -#: lang/json/AMMO_from_json.py -msgid "Big Bang canister" -msgid_plural "Big Bang canisters" -msgstr[0] "超级大炸弹" - -#. ~ Description for {'str': 'Big Bang canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a VERY substantial explosive payload." -msgstr "一个简易的爆炸装置,说起来就是里边装了杀伤性物质的密封容器,遭遇撞击后触发。这个有超大量的高爆装药。" - -#: lang/json/AMMO_from_json.py -msgid "fire canister" -msgid_plural "fire canisters" -msgstr[0] "火焰大炸弹" - -#. ~ Description for {'str': 'fire canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a small area with deadly flames." -msgstr "" -"一个简易的爆炸装置,说起来就是里边装了杀伤性物质的密封容器,遭遇撞击后触发。看起来似乎应该用特制的发射器使用,这个设计来让小片区域充满火焰。" - -#: lang/json/AMMO_from_json.py -msgid "inferno canister" -msgid_plural "inferno canisters" -msgstr[0] "地狱火大炸弹" - -#. ~ Description for {'str': 'inferno canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a large area with deadly flames." -msgstr "" -"一个简易的爆炸装置,说起来就是里边装了杀伤性物质的密封容器,遭遇撞击后触发。看起来似乎应该用特制的发射器使用,这个设计来让大片区域充满火焰。" - -#: lang/json/AMMO_from_json.py -msgid "fragmentation canister" -msgid_plural "fragmentation canisters" -msgstr[0] "破片大炸弹" - -#. ~ Description for {'str': 'fragmentation canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to spray the immediate area with deadly shrapnel." -msgstr "" -"一个简易的爆炸装置,说起来就是里边装了杀伤性物质的密封容器,遭遇撞击后触发。看起来似乎应该用特制的发射器使用,这个设计来让目标区域弹片四溅。" - -#. ~ Description for {'str': 'modified mininuke'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device. Intended to be fired from a " -"specialized launcher, its case has been cut down and it has been rigged to " -"explode on impact. While it is now somewhat lighter than before, it can no " -"longer be triggered manually." -msgstr "" -"一枚经过大幅改造的便携核弹装置。被去除了外壳,使重量轻了一些,但它也因此无法手动起爆,只能通过特别的发射器进行发射。\n" -"\"爆炸范围可能在其射程之内。\"" - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "harpoon" -msgid_plural "harpoons" -msgstr[0] "鱼叉" - -#. ~ Description for {'str': 'harpoon'} -#: lang/json/AMMO_from_json.py -msgid "" -"A large spear carved from wood. This was fashioned specifically to be fired" -" from a compatible weapon; thus unsuitable for melee combat." -msgstr "一根用木头制成的大型长矛。它的样式很特别,要用专门的发射器发射,因此不适合作为近战武器使用。" - -#: lang/json/AMMO_from_json.py -msgid "IED rigged bolt" -msgid_plural "IED rigged bolts" -msgstr[0] "IED 弩矢" - -#: lang/json/AMMO_from_json.py -msgid "nova bolt" -msgid_plural "nova bolts" -msgstr[0] "新星弩矢" - -#. ~ Description for {'str': 'nova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a substantial explosive payload." -msgstr "" -"一只可以密封的容器,填满爆炸物做成简易爆炸装置,然后绑在一条大型弩炮炮矢的尾端。这个东西应使用特制的发射装置发射。这个型号的容器里装填了\"大量\"的炸药。" - -#: lang/json/AMMO_from_json.py -msgid "supernova bolt" -msgid_plural "supernova bolts" -msgstr[0] "超新星弩矢" - -#. ~ Description for {'str': 'supernova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a very substantial explosive payload." -msgstr "" -"一只可以密封的容器,填满爆炸物做成简易爆炸装置,然后绑在一条大型弩炮炮矢的尾端。这个东西应使用特制的发射装置发射。这个型号的容器里装填了\"非常大量\"的炸药。" - -#: lang/json/AMMO_from_json.py -msgid "searing bolt" -msgid_plural "searing bolts" -msgstr[0] "灼热弩矢" - -#. ~ Description for {'str': 'searing bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a small area with deadly flames." -msgstr "" -"用一个能密封的容器,装上满满的杀伤性物质做成简易爆炸装置,然后固定在一条大型弩炮炮矢的尾部。这个东西应使用特制的发射装置发射。这种是榴弹型,在目标地区爆炸,在目标的小范围喷洒致命的火焰。" - -#: lang/json/AMMO_from_json.py -msgid "napalm bolt" -msgid_plural "napalm bolts" -msgstr[0] "凝固汽油弹弩矢" - -#. ~ Description for {'str': 'napalm bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a large area with deadly flames." -msgstr "" -"用一个能密封的容器,装上满满的杀伤性物质做成简易爆炸装置,然后固定在一条大型弩炮炮矢的尾部。这个东西应使用特制的发射装置发射。这种是榴弹型,在目标地区爆炸,把目标范围内一大片地区变成地狱般的火海。" - -#: lang/json/AMMO_from_json.py -msgid "shatter bolt" -msgid_plural "shatter bolts" -msgstr[0] "爆散弩矢" - -#. ~ Description for {'str': 'shatter bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to spray the immediate area with deadly " -"shrapnel." -msgstr "" -"用一个能密封的容器,装上满满的爆炸物做成简易爆炸装置,然后固定在一条大型弩炮炮矢的尾部。这个东西应使用特制的发射装置发射。这种是榴弹型,在目标地区爆炸,在目标的战术覆盖范围喷射致命的爆炸破片。" - -#: lang/json/AMMO_from_json.py -msgid "steel ballista bolt" -msgid_plural "steel ballista bolts" -msgstr[0] "钢制弩床矢" +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" +msgstr[0] "测试用木制宽刃箭" -#. ~ Description for {'str': 'steel ballista bolt'} +#. ~ Description for {'str': 'test wooden broadhead arrow'} #: lang/json/AMMO_from_json.py -msgid "" -"A long shaft carved from wood ending in a tip of sharpened metal. It's " -"quite heavy, capable of dealing large amounts of damage, but isn't " -"particularly accurate. Stands a good chance of remaining intact once fired." -msgstr "" -"一条用木料刨出的棍子,然后在前端嵌上一块经过打磨尖锐的金属。它掂起来分量挺重,可以传递大量伤害,但用它射击比较难射得准。在射击后有很高概率可以保持完好。" +msgid "Test arrow" +msgstr "测试用箭。" #: lang/json/AMMO_from_json.py -msgid "nuclear bolt" -msgid_plural "nuclear bolts" -msgstr[0] "核弩矢" +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" +msgstr[0] "测试用9mm弹" -#. ~ Description for {'str': 'nuclear bolt'} +#. ~ Description for {'str': 'Test 9mm ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device affixed to the end of a large " -"ballista bolt. Its case has been cut down and it has been rigged to explode" -" on impact. It can no longer be triggered manually." -msgstr "" -"一个高定制化重型手提式核装置,牢固的固定在一条大型弩炮炮矢的尾端。核装置的防护外壳已经被锯除,现在它一旦受到撞击就会破损,然后造成一场核爆炸。它已经不能被手动引爆了。\n" -"\"即便最一流的弩哥也不敢轻易发射此杀器。\"" +msgid "Generic 9mm ammo based on JHP." +msgstr "测试用9mm空尖弹。" #: lang/json/AMMO_from_json.py -msgid "wood ballista bolt" -msgid_plural "wood ballista bolts" -msgstr[0] "木制弩床矢" +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" +msgstr[0] "测试用.45弹" -#. ~ Description for {'str': 'wood ballista bolt'} +#. ~ Description for {'str': 'Test .45 ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"A sharpened bolt carved from wood. It's fairly heavy, capable of dealing " -"large amounts of damage, but isn't particularly accurate. Stands a good " -"chance of remaining intact once fired." -msgstr "一条用木料刨出的尖弩矢。它掂起来分量挺重,可以传递大量伤害,但用它射击比较难射得准。在射击后有很高概率可以保持完好。" +msgid "Test ammo based on the .45 JHP." +msgstr "测试用.45空尖弹。" #: lang/json/AMMO_from_json.py -msgid "lead ball" -msgid_plural "lead balls" -msgstr[0] "铅球" +msgid "test gas" +msgid_plural "test gas" +msgstr[0] "测试用气体" -#. ~ Description for {'str': 'lead ball'} +#. ~ Description for {'str_sp': 'test gas'} #: lang/json/AMMO_from_json.py msgid "" -"A heavy lead ball about 8cm in diameter. Could pack quite a bit of a punch " -"if you had something to launch it." -msgstr "一颗直径8厘米的沉重铅球。如果能把它当炮弹发射出去,它可以给目标造成可观的伤害。" - -#: lang/json/AMMO_from_json.py -msgid "serrated disc" -msgid_plural "serrated discs" -msgstr[0] "锯齿圆盘" +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" +msgstr "某种气体形式的神秘物质。只作测试,不要吸入!" -#. ~ Description for {'str': 'serrated disc'} #: lang/json/AMMO_from_json.py -msgid "" -"A metal disc surrounded by serrated edges. It's as menacing as it sounds." -msgstr "" -"一个边缘满是锯齿的金属圆盘。\n" -"\"最好配合俗称重力枪的零点能量场牵引器一起使用。\"" - -#: lang/json/AMMO_from_json.py -msgid "metal fragment" -msgid_plural "metal fragments" -msgstr[0] "金属破片" - -#. ~ Description for {'str': 'metal fragment'} -#: lang/json/AMMO_from_json.py -msgid "Small slivers of metal. Can't see much use for them." -msgstr "一小块金属薄片。用途不是很明显。" - -#: lang/json/AMMO_from_json.py -msgid "glittering carbon" -msgid_plural "glittering carbon" -msgstr[0] "闪光碳" - -#. ~ Description for {'str_sp': 'glittering carbon'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of carbon are have been compressed into a crystalline " -"structure that is beginning to resemble diamonds." -msgstr "这些碎块状的碳被压缩形成晶体结构,开始看上去像钻石一样。" - -#: lang/json/AMMO_from_json.py -msgid "diamond fragments" -msgid_plural "diamond fragments" -msgstr[0] "钻石碎片" - -#. ~ Description for {'str_sp': 'diamond fragments'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of diamond are formed as a byproduct from the " -"crystallization process of a diamond matrix. While the substance usually " -"decays when separated from the catalyst; these fragments are small enough to" -" remain stable." -msgstr "这些小型钻石碎片是钻石晶阵在结晶过程中产生的副产品。虽然通常这些物质从催化剂中分离出来时会降解,但是这些碎片足够小,可以保持稳定。" - -#: lang/json/AMMO_from_json.py -msgid "vortex core" -msgid_plural "vortex core" -msgstr[0] "漩涡核心" +msgid "TEST platinum bit" +msgid_plural "TEST platinum bits" +msgstr[0] "测试用铂金块" #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" @@ -7105,7 +6581,6 @@ msgstr[0] "MBR防弹背心(空)" #. 'large grenade pouches'}. #. ~ Use action holster_msg for {'str': 'MBR vest (titanium)', 'str_pl': 'MBR #. vests (titanium)'}. -#. ~ Use action holster_msg for javelin bag. #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You stash your %s." @@ -7455,12 +6930,11 @@ msgstr[0] "幸存者工具带" #. 'pairs of knee-high boots'}. #. ~ Use action holster_msg for {'str': 'pair of rollerblades', 'str_pl': #. 'pairs of rollerblades'}. -#. ~ Use action holster_msg for {'str': 'pair of rollerskates', 'str_pl': -#. 'pairs of rollerskates'}. -#. ~ Use action holster_msg for C.R.I.T web belt. +#. ~ Use action holster_msg for CRIT web belt. #. ~ Use action holster_msg for {'str': "technomancer's toolbelt"}. #. ~ Use action holster_msg for {'str': 'hollow cane'}. -#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/ARMOR_from_json.py lang/json/ARMOR_from_json.py +#: lang/json/GENERIC_from_json.py #, no-python-format msgid "You sheath your %s" msgstr "你将 %s 收鞘。" @@ -7468,7 +6942,7 @@ msgstr "你将 %s 收鞘。" #. ~ Use action holster_prompt for {'str': 'survivor utility belt'}. #. ~ Use action holster_prompt for {'str': 'survivor belt'}. #. ~ Use action holster_prompt for {'str': 'hiking backpack'}. -#. ~ Use action holster_prompt for C.R.I.T web belt. +#. ~ Use action holster_prompt for CRIT web belt. #. ~ Use action holster_prompt for {'str': "technomancer's toolbelt"}. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" @@ -7591,7 +7065,6 @@ msgid_plural "javelin bags" msgstr[0] "标枪包" #. ~ Use action holster_prompt for {'str': 'javelin bag'}. -#. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" msgstr "存储标枪" @@ -7871,6 +7344,19 @@ msgstr[0] "轻皮护臂" msgid "A pair of light leather arm guards, made for archery." msgstr "一对轻皮革护臂,用于射箭。" +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "防切割护臂" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': +#. 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "一对长长的防切割护臂,袖口开了个能露出拇指的洞。用于使用链锯时的防护。" + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -8345,6 +7831,32 @@ msgstr "" "一双具备良好的抓地力、增加脚踝稳定性以及可以保护足部的现代战术靴,非常耐用。\n" "\"外型很酷,结实耐用,功能性强,这样的一双鞋在末世来说尤为重要。\"" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "拆弹防护靴" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs +#. of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "用钢材和芳纶纤维制成的用于处理爆炸物的装甲防护靴。它们被设计得能够防护超压、破片、冲击和高温。" + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "防护靴头" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "一双橡胶套鞋,前端有个坚固且符合ANSI标准的钢制靴头包裹着你的脚趾。" + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -8962,6 +8474,8 @@ msgstr[0] "防火袜" #. ~ Description for {'str': 'pair of flame-resistant socks', 'str_pl': 'pairs #. of flame-resistant socks'} +#. ~ Description for {'str': 'pair of XL flame-resistant socks', 'str_pl': +#. 'pairs of XL flame-resistant socks'} #: lang/json/ARMOR_from_json.py msgid "" "A snug fitting pair of stockings made from thin and lightweight Nomex fire-" @@ -8969,6 +8483,11 @@ msgid "" "wear under clothing." msgstr "一对芳纶纤维防火袜子。贴身、结实却透气。这双袜子重量很轻并且也适于当作内衬袜子。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL flame-resistant socks" +msgid_plural "pairs of XL flame-resistant socks" +msgstr[0] "防火袜(XL)" + #: lang/json/ARMOR_from_json.py msgid "pair of socks" msgid_plural "pairs of socks" @@ -8981,6 +8500,17 @@ msgstr[0] "袜子" msgid "Socks. Put 'em on your feet." msgstr "一双穿在脚上的棉制袜子。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL socks" +msgid_plural "pairs of XL socks" +msgstr[0] "袜子(XL)" + +#. ~ Description for {'str': 'pair of XL socks', 'str_pl': 'pairs of XL +#. socks'} +#: lang/json/ARMOR_from_json.py +msgid "Socks. Big ones. Put 'em on your feet." +msgstr "一双能够穿在各种变异肢体上的特大号棉制袜子。" + #: lang/json/ARMOR_from_json.py msgid "pair of ankle socks" msgid_plural "pairs of ankle socks" @@ -9029,6 +8559,19 @@ msgstr[0] "羊毛袜" msgid "Warm socks made of wool." msgstr "羊毛制成的袜子,非常暖和。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL wool socks" +msgid_plural "pairs of XL wool socks" +msgstr[0] "羊毛袜(XL)" + +#. ~ Description for {'str': 'pair of XL wool socks', 'str_pl': 'pairs of XL +#. wool socks'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Warm socks made of wool for a larger than you'd previously thought possible " +"human." +msgstr "一双能够穿在各种变异肢体上的羊毛袜。保暖效果很好。" + #: lang/json/ARMOR_from_json.py msgid "pair of stockings" msgid_plural "pairs of stockings" @@ -10393,9 +9936,9 @@ msgstr[0] "战术手套" #. tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." -msgstr "一双凯夫拉强化战术手套。通常供警察或军人使用。" +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." +msgstr "一双凯夫拉防割战术手套。通常供警察或军人使用。" #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -10439,8 +9982,9 @@ msgstr[0] "防切割手套" #. of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." -msgstr "一双防切割的手套,在快速分解尸体时很有用。" +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." +msgstr "一双防切割的手套,用于屠宰以及使用锋利物品时的防护。" #: lang/json/ARMOR_from_json.py msgid "pair of hand wraps" @@ -10606,6 +10150,20 @@ msgstr[0] "高尔夫球手套" msgid "A thin pair of black leather golfing gloves." msgstr "一双轻薄的黑色皮制高尔夫球手套。" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "拆弹防护手套" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD +#. gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "用凯夫拉和芳纶纤维制成的用于处理爆炸物的轻型防护手套。它们被设计得能够防护破片和高温。" + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -15410,6 +14968,21 @@ msgid "" "storage." msgstr "一条黑色的皮护腿。非常坚韧又轻盈,但是不提供任何储存空间。" +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "链锯防护裹腿" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" +"一条由凯夫拉纤维制成的坚固耐用的裹腿。链锯失控能够致命;诸如此类的个人防护设备能保护你的股动脉。分层的凯夫拉纤维在与链条接触时会磨损,并缠住链条。" + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -15539,6 +15112,33 @@ msgid "" "built to be durable, comfortable, and easy to wear." msgstr "一件镶嵌有凯夫拉片的长裤,有许多的口袋,非常舒适、耐用、易于穿戴。" +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "拆弹防护裤" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "用凯夫拉和芳纶纤维制成的用于处理爆炸物的厚实防护裤。它们被设计得能够防护超压、破片、冲击和高温。" + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "轻型拆弹防护裤" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "用凯夫拉和芳纶纤维制成的用于处理爆炸物的防护裤。它们被设计得能够防护超压、破片、冲击和高温。比普通的拆弹防护裤要更轻便。" + #: lang/json/ARMOR_from_json.py msgid "basketball shorts" msgid_plural "basketball shorts" @@ -15888,6 +15488,8 @@ msgid_plural "pairs of work pants" msgstr[0] "工装裤" #. ~ Description for {'str': 'work pants', 'str_pl': 'pairs of work pants'} +#. ~ Description for {'str': 'XL work pants', 'str_pl': 'pairs of XL work +#. pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." msgstr "一条灰色的裤子,工作时穿穿还是不错的。" @@ -15934,6 +15536,18 @@ msgstr "" "一个只露出眼睛与嘴部、非常暖和的棉制头部面罩。\n" "\"严肃点,严肃点。不许笑,我们这打劫呢!\"" +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "防切割面罩" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "一个把脸盖得严实的面罩,有助于防止脸部被割伤,而且很保暖。" + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -16289,6 +15903,7 @@ msgstr[0] "作战用外骨骼" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "你的动力装甲启动了。" @@ -16813,8 +16428,8 @@ msgstr "收起球棍" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." -msgstr "一个细长的带有可折叠支架的高尔夫球背包,采用帆布和塑料制成。附有背带可以佩戴在后背。" +"has straps to be worn on the back and a slot for an umbrella." +msgstr "一个细长的带有可折叠支架的高尔夫球背包,采用帆布和塑料制成。它甚至还配有一条背带和雨伞挂钩。" #: lang/json/ARMOR_from_json.py msgid "H&K operational briefcase (empty)" @@ -17108,6 +16723,16 @@ msgstr[0] "工具背心" msgid "A light vest covered in pockets and straps for storage." msgstr "一件有着可以存东西的口袋及肩带的轻型背心。" +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "调试口袋宇宙" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "一个调试用的口袋宇宙。可以储存大约 384 * 10^6 个bug。" + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -18079,7 +17704,7 @@ msgstr[0] "塑料胸甲" msgid "" "A rigid plastic plastron with molded cups to be worn by female fencers for " "protection while fencing." -msgstr "一件硬质塑料胸甲,有模制的胸罩,可供女子击剑运动员佩带,以在击剑时提供保护。" +msgstr "一件坚硬的塑料胸甲,带有用模具成型的胸罩,可供女子击剑运动员佩带,以在击剑时提供保护。" #: lang/json/ARMOR_from_json.py msgid "armored leather vest" @@ -18105,6 +17730,18 @@ msgid "" " from cuts." msgstr "一件厚皮革制成的围裙。相当累赘,但是提供了绝佳的斩击防护。" +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "防切割围裙" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from " +"cuts." +msgstr "一件凯夫拉纤维制成的围裙。提供了绝佳的斩击防护。" + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -18645,6 +18282,16 @@ msgstr[0] "四角内裤" msgid "The age-old question, boxers or briefs? Your answer? Yes." msgstr "一件同比拳击短裤更加适合当内裤穿的拳击手用短内裤。" +#: lang/json/ARMOR_from_json.py +msgid "XL boxer briefs" +msgid_plural "XL boxer briefs" +msgstr[0] "四角内裤(XL)" + +#. ~ Description for {'str_sp': 'XL boxer briefs'} +#: lang/json/ARMOR_from_json.py +msgid "The age-old question, boxers or briefs? Your answer? Chonk!" +msgstr "一条能够穿在各种变异肢体上的四角内裤。" + #: lang/json/ARMOR_from_json.py msgid "boxer shorts" msgid_plural "boxer shorts" @@ -18656,6 +18303,18 @@ msgid "" "Men's boxer shorts. More fashionable than briefs and just as comfortable." msgstr "一件和三角内裤同样舒适但加流行的男式平角短裤。" +#: lang/json/ARMOR_from_json.py +msgid "XL boxer shorts" +msgid_plural "XL boxer shorts" +msgstr[0] "四角短裤(XL)" + +#. ~ Description for {'str_sp': 'XL boxer shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Men's XL boxer shorts. For the very big and tall. More fashionable than " +"briefs and just as comfortable." +msgstr "一条特大号的男式平角短裤,专为那些大块头设计的。这条款式看上去比三角短裤要更时髦些,但穿着起来同样舒适。" + #: lang/json/ARMOR_from_json.py msgid "boy shorts" msgid_plural "boy shorts" @@ -18667,6 +18326,18 @@ msgid "" "Female underwear similar to men's boxer shorts, but much more close-fitting." msgstr "一件类似男用版但更弹性、轻薄、贴身的女式平角内裤。" +#: lang/json/ARMOR_from_json.py +msgid "XL boy shorts" +msgid_plural "XL boy shorts" +msgstr[0] "女式平角内裤(XL)" + +#. ~ Description for {'str_sp': 'XL boy shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Female underwear similar to men's boxer shorts, but much more close-fitting." +" This size is made for giants." +msgstr "一件类似男用版但更弹性、轻薄、贴身的女式平角内裤。这条是专为那些大块头设计的。" + #: lang/json/ARMOR_from_json.py msgid "bra" msgid_plural "bras" @@ -18863,6 +18534,19 @@ msgid "" "Typically worn when exercising, it clings to the skin and is easy to wear." msgstr "结实的尼龙胸罩,运动型。通常在锻炼时穿着,贴合肌肤而且穿着简单。" +#: lang/json/ARMOR_from_json.py +msgid "XL sports bra" +msgid_plural "XL sports bras" +msgstr[0] "运动文胸(XL)" + +#. ~ Description for {'str': 'XL sports bra'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A sturdy nylon bra to provide additional support during physical movement. " +"Typically worn when exercising, it clings to the skin and is easy to wear. " +"This one appears to have been made for a massive person." +msgstr "结实的尼龙胸罩,运动型。通常在锻炼时穿着,贴合肌肤而且穿着简单。这条是专为那些大块头设计的。" + #: lang/json/ARMOR_from_json.py msgid "tank top" msgid_plural "tank tops" @@ -19099,6 +18783,57 @@ msgid "" "but cannot be repaired" msgstr "哨兵-lx型机器人的超黑色长披风,披在肩上如同一个实体而不自然的阴影。由编织石墨烯制成,轻便且坚固,但无法被修复。" +#: lang/json/ARMOR_from_json.py +msgid "XL jeans" +msgid_plural "pairs of XL jeans" +msgstr[0] "牛仔裤(XL)" + +#. ~ Description for {'str': 'XL jeans', 'str_pl': 'pairs of XL jeans'} +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue jeans with two deep pockets." +msgstr "" +"一条有着两个口袋的特大号蓝色牛仔裤。\n" +"\"被丧尸咬几个口子,就是一件潮牌新品。\"" + +#: lang/json/ARMOR_from_json.py +msgid "XL work pants" +msgid_plural "pairs of XL work pants" +msgstr[0] "工装裤(XL)" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue work pants." +msgstr "一条特大号的蓝色裤子,工作时穿穿还是不错的。" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL gray work pants." +msgstr "一条特大号的灰色裤子,工作时穿穿还是不错的。" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL light-blue work pants." +msgstr "一条特大号的浅蓝色裤子,工作时穿穿还是不错的。" + +#: lang/json/ARMOR_from_json.py +msgid "XL work t-shirt" +msgid_plural "XL work t-shirts" +msgstr[0] "工作T恤(XL)" + +#. ~ Description for {'str': 'XL work t-shirt'} +#: lang/json/ARMOR_from_json.py +msgid "A gray XL work t-shirt with a small front pocket." +msgstr "一件特大号的灰色T恤,前面还有个小口袋。" + +#: lang/json/ARMOR_from_json.py +msgid "An XL blue work t-shirt with a small front pocket." +msgstr "一件特大号的蓝色T恤,前面还有个小口袋。" + +#: lang/json/ARMOR_from_json.py +msgid "An XL gray work t-shirt with a small front pocket." +msgstr "一件特大号的灰色T恤,前面还有个小口袋。" + +#: lang/json/ARMOR_from_json.py +msgid "An XL light-blue work t-shirt with a small front pocket." +msgstr "一件特大号的浅蓝色T恤,前面还有个小口袋。" + #: lang/json/ARMOR_from_json.py msgid "Uplifted SWAT armor" msgid_plural "Uplifted SWAT armors" @@ -19171,6 +18906,55 @@ msgid "" "tactical gloves." msgstr "一双凯夫拉强化战术手套,有防震、防滑等功能,是为“杀人象”部队特制的三指款,相比常规的加大号战术手套更加纤细。" +#: lang/json/ARMOR_from_json.py +msgid "XL leather belt" +msgid_plural "XL leather belts" +msgstr[0] "皮带(XL)" + +#. ~ Description for {'str': 'XL leather belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL leather belt. Useful for making your pair of pants fit if you need " +"really big pants." +msgstr "一条特大号的皮革腰带。能让裤子穿起来更合身。" + +#: lang/json/ARMOR_from_json.py +msgid "XL police duty belt" +msgid_plural "XL police duty belts" +msgstr[0] "警用执勤腰带(XL)" + +#. ~ Description for {'str': 'XL police duty belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL black leather belt used by extremely large uplifted police officers. " +"It has several pouches and a holder for a baton." +msgstr "一条特大号的黑色皮带,适合那些体型巨大的基因擢升警察们佩戴。它上面有几个袋子和一个警棍的插销。" + +#: lang/json/ARMOR_from_json.py +msgid "XL tactical full helmet" +msgid_plural "XL tactical full helmets" +msgstr[0] "战术全覆头盔(XL)" + +#. ~ Description for {'str': 'XL tactical full helmet'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An all-encompassing massive black helmet that covers your entire face and " +"neck, providing excellent protection from all sorts of damage." +msgstr "一顶特大号的黑色极简头盔,覆盖面部和颈部,保护你免受各种伤害。" + +#: lang/json/ARMOR_from_json.py +msgid "XL leg ammo pouch" +msgid_plural "XL leg ammo pouches" +msgstr[0] "弹匣包(腿)(XL)" + +#. ~ Description for {'str': 'XL leg ammo pouch', 'str_pl': 'XL leg ammo +#. pouches'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL fabric ammo pouch that can be strapped to your leg and capable of " +"holding two magazine close at hand." +msgstr "一个绑在腿上的特大号布包,能够装下两个弹匣,保证弹药随手取用。" + #: lang/json/ARMOR_from_json.py msgid "titanium watch" msgid_plural "titanium watches" @@ -19310,6 +19094,20 @@ msgid "" "armor, it'll still keep you relatively safe." msgstr "一件仿照中世纪的镶片皮甲制成的自制\"防弹衣\",它由多层布和内层的许多金属片组成。虽然不如一件真正的盔甲保护性强,但它仍能让你相对安全。" +#: lang/json/ARMOR_from_json.py +msgid "CRIT Engineering Suit" +msgid_plural "CRIT Engineering Suits" +msgstr[0] "C.R.I.T 工程装甲" + +#. ~ Description for CRIT Engineering Suit +#: lang/json/ARMOR_from_json.py +msgid "" +"An airtight, flexible suit of woven composite fibers complete with segmented" +" plates of armor. A complex system digitizes items in an individual pocket " +"universe for storage while built in joint-torsion ratchets generate the " +"neccessary energy required to power the interface." +msgstr "一套由复合纤维材料制成的柔韧套装,配备有防护装甲板。内部安装了复杂的物品数字化存储设备,同时内置的扭转棘轮可以为系统运行提供足够的电量。" + #: lang/json/ARMOR_from_json.py msgid "CRIT face mask" msgid_plural "CRIT face masks" @@ -19318,9 +19116,9 @@ msgstr[0] "C.R.I.T 战术面罩" #. ~ Description for CRIT face mask #: lang/json/ARMOR_from_json.py msgid "" -"This is the C.R.I.T standard issue face mask, lined with Kevlar for extra " -"protection. A few filters provide decent environmental safety, but it was " -"not intended for extended use. It has a basic integrated HUD." +"A standard issue face mask, lined with Kevlar for extra protection. A few " +"filters provide decent environmental safety, but it was not intended for " +"extended use. It has a basic integrated HUD." msgstr "" "C.R.I.T标配的面具,内衬了凯夫拉纤维以提供额外保护。只需要消耗少量滤芯就能提供不错的环境保护,但是无法长期使用。它内置了简单的平视显示器。" @@ -19333,7 +19131,7 @@ msgstr[0] "C.R.I.T 重型战靴" #. boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and " +"A pair of standard-issue boots. Next-gen gels keep feet comfortable and " "hygienic during long-term missions while absorbing shock and heat from " "outside-sources. Superalloy mesh and rubber offer quite a bit of chemical " "protection as well. Decently heavy though" @@ -19349,7 +19147,7 @@ msgstr[0] "C.R.I.T 轻型战靴" #. LA boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor " +"A pair of skeletonized boots. Based off of C.R.I.T boots, the light-armor " "variant was created for missions in warmer climates. The LA boots keep most" " of the old features of the standard issue boots but trade in protection for" " easier movement." @@ -19365,7 +19163,7 @@ msgstr[0] "C.R.I.T 露指手套" #. 'pairs of CRIT fingertip-less gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with " +"A pair of standard-issue gloves. Made with superalloy mesh for those with " "gene-modding and/or mutations while still allowing greater manipulation of " "items and moderate protection." msgstr "" @@ -19380,8 +19178,8 @@ msgstr[0] "C.R.I.T 手套内衬" #. 'pairs of CRIT fingertip-less liners'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue glove liners. Made with neoprene and rubber mesh for" -" warmth and fingertip-less for those with gene-modding and/or mutations " +"A pair of standard-issue glove liners. Made with neoprene and rubber mesh " +"for warmth and fingertip-less for those with gene-modding and/or mutations " "while still allowing greater manipulation of items and moderate protection." msgstr "C.R.I.T标配的手套内衬。采用保温的氯丁橡胶材料制成,露指设计能适用于基因改造或突变的生物,在保证操作物品能力的同时提供了不错的防护。" @@ -19393,10 +19191,10 @@ msgstr[0] "C.R.I.T 战术背包" #. ~ Description for CRIT backpack #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this " -"smaller pack strikes a fine balance between storage space and encumbrance " -"and allows a larger weapon to be holstered, drawing and holstering is still " -"rather awkward even with the magnetized clips, but practice helps." +"A standard-issue pack. Based on the MOLLE backpack's design, this smaller " +"pack strikes a fine balance between storage space and encumbrance and allows" +" a larger weapon to be holstered, drawing and holstering is still rather " +"awkward even with the magnetized clips, but practice helps." msgstr "" "C.R.I.T标配的背包。基于MOLLE战术背包设计,这个体积较小的背包在储存空间和累赘感之间取得了极佳的平衡,可以收纳一把大型武器。然而就算是有磁力弹夹,拔枪和收枪还是很不舒服,只有多多练习才行。" @@ -19408,9 +19206,9 @@ msgstr[0] "C.R.I.T 战术背心" #. ~ Description for CRIT chestrig #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" -" with light-armor padding." -msgstr "C.R.I.T标准版战术背心,专为战斗设计的轻型护甲。两侧各有两个兼容弹匣仓,方便快速存取弹匣。" +"A slightly modified chestrig, has mesh and MOLLE loops for gear and slots " +"with light-armor padding." +msgstr "C.R.I.T标准版战术背心,专为战斗设计的轻型护甲。有着各类能配合MOLLE背包使用的挂网和挂钩,同时有轻型护甲内衬。" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT leg guards" @@ -19421,18 +19219,18 @@ msgstr[0] "C.R.I.T 战术护腿" #. CRIT leg guards'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue leg armor. Simple design and durable material allows" -" for easy movement and the padding keeps the legs safe and warm in colder " +"Leg armor for those who fight. Simple design and durable material allows " +"for easy movement and the padding keeps the legs safe and warm in colder " "conditions." msgstr "C.R.I.T标配的护腿。简单的设计和耐用的材料使得奔跑时更加轻松与安全,保温材料让你更加适应寒冷的环境。" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT arm guards" -msgid_plural "pairs of C.R.I.T arm guards" +msgid_plural "pairs of CRIT arm guards" msgstr[0] "C.R.I.T 战术护臂" #. ~ Description for {'str': 'pair of CRIT arm guards', 'str_pl': 'pairs of -#. C.R.I.T arm guards'} +#. CRIT arm guards'} #: lang/json/ARMOR_from_json.py msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " @@ -19448,8 +19246,8 @@ msgstr[0] "C.R.I.T 战术腰带" #. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on " -"your hip." +"CRIT standard-issue belt. Keeps your trousers up and your weapons on your " +"hip." msgstr "C.R.I.T标配的腰带。坚固耐用并且集成了一个小型刀鞘。" #: lang/json/ARMOR_from_json.py @@ -19465,21 +19263,6 @@ msgid "" "discharges from the robots. Has several pockets for storage." msgstr "带有橡胶绝缘层的防尘风衣。虽然有点累赘,但是可以有效的防护电击。它有许多口袋,可以提供额外的存储空间。" -#: lang/json/ARMOR_from_json.py -msgid "CRIT Engineering Suit" -msgid_plural "CRIT Engineering Suits" -msgstr[0] "C.R.I.T 工程装甲" - -#. ~ Description for CRIT Engineering Suit -#: lang/json/ARMOR_from_json.py -msgid "" -"An airtight, flexible suit of woven composite fibers complete with segmented" -" plates of armor. A complex system digitizes items in an individual pocket " -"universe for storage while built in joint-torsion ratchets generate the " -"necessary energy required to power the interface." -msgstr "" -"一套由复合纤维材料制成的柔韧气密套装,配备有防护装甲板。一套复杂的系统将物品数据化并存储于独立的口袋宇宙中,同时内置的动力齿轮供能系统可以为交互界面提供足够的电量。" - #: lang/json/ARMOR_from_json.py msgid "CRIT Armored Anomaly Suit" msgid_plural "CRIT Armored Anomaly Suits" @@ -19497,11 +19280,11 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "CRIT drop leg pouch" -msgid_plural "C.R.I.T drop leg pouches" -msgstr[0] "C.R.I.T 绑腿袋" +msgid_plural "CRIT drop leg pouches" +msgstr[0] "C.R.I.T 绑腿包" -#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'C.R.I.T drop -#. leg pouches'} +#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'CRIT drop leg +#. pouches'} #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " @@ -19536,7 +19319,7 @@ msgstr[0] "C.R.I.T 执法者装甲战靴" #. of CRIT Enforcer docks'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of " +"CRIT Enforcer docks. Metal plates vaguely molded into the shape of " "oversized feet which clamp down onto your own footwear keep your feet out of" " harms way. It looks terrible and feels clunky unlike most of C.R.I.T's " "designs, but they do seem to be worth using if you were to be in the middle " @@ -19575,92 +19358,91 @@ msgid "" msgstr "一套哑光的黑色战甲,在笨重的板甲基础上添加了柔软的凯夫拉纤维。这款重型装甲可以保护你免受绝大多数伤害,当然前提是你能够穿着它走路。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T blouse" -msgid_plural "C.R.I.T blouses" -msgstr[0] "C.R.I.T 衬衫" +msgid "CRIT blouse" +msgid_plural "CRIT blouses" +msgstr[0] "C.R.I.T 夹克衫" -#. ~ Description for C.R.I.T blouse +#. ~ Description for CRIT blouse #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage." -" Super-flex neoprene keeps one warm in moderately cold weather while a " -"sleek design keeps it from being too flashy. A zipper at the back and front" -" allows for quick donning and doffing." +"A standard-issue military jacket. Durable, lightweight, and has ample " +"storage. Super-flex neoprene keeps one warm in moderately cold weather " +"while a sleek design keeps it from being too flashy. A zipper at the back " +"and front allows for quick donning and doffing." msgstr "" -"C.R.I.T标配的衬衫。轻便、耐用,有足够大的存储空间。内衬弹性氯丁橡胶能让人在中等偏冷的天气里保持温暖,流线型的设计使得衣物非常贴身。拉链设计让穿戴起来更加快速。" +"C.R.I.T标配的军用夹克衫。轻便、耐用,有足够大的存储空间。内衬弹性氯丁橡胶能让人在中等偏冷的天气里保持温暖,流线型的设计使得衣物非常贴身。拉链设计让穿戴起来更加快速。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T trousers" -msgid_plural "C.R.I.T trousers" +msgid "CRIT trousers" +msgid_plural "CRIT trousers" msgstr[0] "C.R.I.T 长裤" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT trousers'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue trousers. Durable, lightweight and has ample " +"A pair of standard-issue cargo pants. Durable, lightweight and has ample " "storage. Super-flex neoprene keeps one warm in moderately cold weather." -msgstr "C.R.I.T标配的长裤。轻便、耐用,有足够大的存储空间。内衬弹性氯丁橡胶能让人在中等偏冷的天气里保持温暖。" +msgstr "C.R.I.T标配的工装长裤。轻便、耐用,有足够大的存储空间。内衬弹性氯丁橡胶能让人在中等偏冷的天气里保持温暖。" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#: lang/json/ARMOR_from_json.py +msgid "CRIT pants" +msgid_plural "CRIT pants" +msgstr[0] "C.R.I.T 正装长裤" + +#. ~ Description for {'str_sp': 'CRIT pants'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " -"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " -"cold weather." -msgstr "C.R.I.T长裤,极简的的时尚设计使得裤子非常的轻便。内衬超级弹性氯丁橡胶在中等偏冷的天气里也能保暖。" +"A pair of dress pants. A minimalist sleek design makes the pants " +"lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in" +" moderately cold weather." +msgstr "C.R.I.T标配的正装长裤,极简的的时尚设计使得裤子非常的轻便。内衬超级弹性氯丁橡胶在中等偏冷的天气里也能保暖。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T helmet liner" -msgid_plural "C.R.I.T helmet liners" +msgid "CRIT helmet liner" +msgid_plural "CRIT helmet liners" msgstr[0] "C.R.I.T 头盔内衬" -#. ~ Description for C.R.I.T helmet liner +#. ~ Description for CRIT helmet liner #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." +msgid "A standard-issue helmet liner. Keeps the noggin warm." msgstr "C.R.I.T标配的头盔内衬,可以让人保持温暖。" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T shoes" -msgid_plural "pairs of C.R.I.T dress shoes" +msgid "pair of CRIT shoes" +msgid_plural "pairs of CRIT dress shoes" msgstr[0] "C.R.I.T 正装皮鞋" -#. ~ Description for {'str': 'pair of C.R.I.T shoes', 'str_pl': 'pairs of -#. C.R.I.T dress shoes'} +#. ~ Description for {'str': 'pair of CRIT shoes', 'str_pl': 'pairs of CRIT +#. dress shoes'} #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." msgstr "一双时髦的礼服鞋。很花哨,很好看。" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T rec gloves" -msgid_plural "pairs of C.R.I.T rec gloves" +msgid "pair of CRIT rec gloves" +msgid_plural "pairs of CRIT rec gloves" msgstr[0] "C.R.I.T 防水手套" -#. ~ Description for {'str': 'pair of C.R.I.T rec gloves', 'str_pl': 'pairs of -#. C.R.I.T rec gloves'} +#. ~ Description for {'str': 'pair of CRIT rec gloves', 'str_pl': 'pairs of +#. CRIT rec gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are" -" made with cotton with a neoprene lining for grip-pads and warmth. " +"A pair of standard-issue rec gloves. Skin-hugging and sleek, these gloves " +"are made with cotton with a neoprene lining for grip-pads and warmth. " msgstr "C.R.I.T标配的防水手套。这款手套既贴身又光滑,由棉制成,内衬氯丁橡胶既能保暖又能防滑。" -#: lang/json/ARMOR_from_json.py -msgid "C.R.I.T web belt" -msgid_plural "C.R.I.T web belts" -msgstr[0] "C.R.I.T 战术腰带" - -#. ~ Description for C.R.I.T web belt +#. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " -"hip." +"A standard-issue belt. Keeps your trousers up and your tools on your hip." msgstr "C.R.I.T标配的腰带,坚固耐用并且集成了一个小型工具挂带。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec duster" -msgid_plural "C.R.I.T rec dusters" +msgid "CRIT rec duster" +msgid_plural "CRIT rec dusters" msgstr[0] "C.R.I.T 防水外套" -#. ~ Description for C.R.I.T rec duster +#. ~ Description for CRIT rec duster #: lang/json/ARMOR_from_json.py msgid "" "A waterproofed full-length duster coat. Made with neoprene, comfort and " @@ -19669,18 +19451,42 @@ msgid "" msgstr "防水长大衣。由氯丁橡胶制成,设计的相当时尚,完美的结合了舒适性与功能性,衣服上有几个袋子可以稍微增加存储空间。" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec hat" -msgid_plural "C.R.I.T rec hats" +msgid "CRIT rec hat" +msgid_plural "CRIT rec hats" msgstr[0] "C.R.I.T 防水兜帽" -#. ~ Description for C.R.I.T rec hat +#. ~ Description for CRIT rec hat #: lang/json/ARMOR_from_json.py msgid "" -"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " +"Functionality meets fashion in this waterproofed CRIT standard issue rec " "cover. Thick enough to provide warmth in colder weather, this hat shares " "the same sleek design of most of C.R.I.T's gear." msgstr "设计上非常时尚的C.R.I.T标准版防水兜帽,这顶帽子非常的光滑合身,厚度也让你在寒冷的天气里能保持温暖。" +#: lang/json/ARMOR_from_json.py +msgid "plant fiber tunic" +msgid_plural "plant fiber tunics" +msgstr[0] "植物纤维束腰外衣" + +#. ~ Description for plant fiber tunic +#: lang/json/ARMOR_from_json.py +msgid "" +"A loose garment cobbled together from a collection of plant bundles and " +"wound together by makeshift cordage" +msgstr "一条宽大的束腰外衣,由植物纤维编织而成,用自制的简易绳索紧紧缠绕在一起。" + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber bracelet" +msgid_plural "plant fiber bracelets" +msgstr[0] "植物纤维手镯" + +#. ~ Description for plant fiber bracelet +#: lang/json/ARMOR_from_json.py +msgid "" +"A bracelet wound together by makeshift cordage. Has some cool looking " +"pebbles. " +msgstr "一个用自制的简易绳索编织而成的手镯。上面绑着几个看起来很酷的小石子。" + #: lang/json/ARMOR_from_json.py msgid "CRIT canteen" msgid_plural "CRIT canteens" @@ -19689,9 +19495,9 @@ msgstr[0] "C.R.I.T 钢制水壶" #. ~ Description for CRIT canteen #: lang/json/ARMOR_from_json.py msgid "" -"A simple, durable steel canteen that can heat up food with built in " -"plutonium heating elements." -msgstr "一个简单耐用的钢制水壶,可以加热食物,内置钚加热元件。" +"A durable steel canteen that can heat up food with built in atomic heating " +"elements." +msgstr "一个耐用的钢制水壶,可用内置的原子能加热元件加热食物。" #: lang/json/ARMOR_from_json.py msgid "wet bandana" @@ -20262,117 +20068,6 @@ msgid "" "the environment." msgstr "一个覆盖全身的肉眼无法看见的环境防护光环。" -#: lang/json/ARMOR_from_json.py -msgid "wooden shield" -msgid_plural "wooden shields" -msgstr[0] "木盾" - -#. ~ Description for wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A crude wooden shield, lacking any metal or leather reinforcement. " -"Lightweight but not very tough." -msgstr "一件粗糙的木制盾牌,缺少金属及皮革的加固部件。重量很轻但不坚固。" - -#: lang/json/ARMOR_from_json.py -msgid "large wooden shield" -msgid_plural "large wooden shields" -msgstr[0] "大木盾" - -#. ~ Description for large wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"An ancient style of wooden shield, lacking any metal or leather " -"reinforcement. Bulky, but offers a decent amount of protection." -msgstr "一件古老样式的木盾,缺少金属及皮革的加固部件。相当笨重,但提供不错的防护。" - -#: lang/json/ARMOR_from_json.py -msgid "heater shield" -msgid_plural "heater shields" -msgstr[0] "三角盾" - -#. ~ Description for heater shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A medieval style of shield made of wood overlaid with leather, developed " -"from the longer kite shield. Mainly used in tournaments, but still viable " -"in battle." -msgstr "一件中世纪风格的木盾,被皮革覆盖,由更长的筝型盾发展而来。主要用于竞技使用,但在战场上依旧适用。" - -#: lang/json/ARMOR_from_json.py -msgid "kite shield" -msgid_plural "kite shields" -msgstr[0] "筝型盾" - -#. ~ Description for kite shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A classic medieval style of shield, made of wood overlaid with leather, in " -"an elongated teardrop shape. Affords decent protection, but was better " -"suited for cavalry." -msgstr "一件经典的中世纪风格的木盾,被皮革覆盖,整体呈细长泪滴形。它提供了不错的防护,但更适合用于骑兵。" - -#: lang/json/ARMOR_from_json.py -msgid "round shield" -msgid_plural "round shields" -msgstr[0] "圆盾" - -#. ~ Description for round shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple round shield made of wood, with a rim and boss of iron. Made " -"infamous by the Vikings." -msgstr "一件简单的木制圆盾,边缘和轴由铁皮包制而成。由于维京人使用而恶名远扬。" - -#: lang/json/ARMOR_from_json.py -msgid "hoplon" -msgid_plural "hoplons" -msgstr[0] "希腊圆盾" - -#. ~ Description for hoplon -#: lang/json/ARMOR_from_json.py -msgid "" -"A convex round shield from ancient Greece, made of wood reinforced with " -"bronze. Heavy but effective." -msgstr "一件凸起的圆盾,源自古希腊,由木头制成,并由青铜加固。笨重但有效。" - -#: lang/json/ARMOR_from_json.py -msgid "scutum" -msgid_plural "scuta" -msgstr[0] "罗马方盾" - -#. ~ Description for {'str': 'scutum', 'str_pl': 'scuta'} -#: lang/json/ARMOR_from_json.py -msgid "" -"A rectangular shield from ancient Rome, made of wood and iron. Perfect for " -"fighting in formation, but not ideal for facing zombies alone." -msgstr "一件源自古罗马的长方形的盾,由木头及铁制成。在方阵战斗中很有效,但用来单独面对丧尸不太理想。" - -#: lang/json/ARMOR_from_json.py -msgid "buckler" -msgid_plural "bucklers" -msgstr[0] "小圆盾" - -#. ~ Description for buckler -#: lang/json/ARMOR_from_json.py -msgid "" -"A small metal shield from the late medieval and renaissance periods. " -"Extremely light and tough, but its small size is as much a hindrance as it " -"is an advantage." -msgstr "一件小型金属圆盾,源自中世纪晚期及文艺复兴时期。十分轻便耐用,但过小的体积对其优势有不小的阻碍。" - -#: lang/json/ARMOR_from_json.py -msgid "hooded hat" -msgid_plural "hooded hats" -msgstr[0] "兜帽" - -#. ~ Description for hooded hat -#: lang/json/ARMOR_from_json.py -msgid "" -"A proper wide-brimmed hat, modified by the addition of a hood sewn to it, to" -" better protect the neck from wind and rain." -msgstr "一件合体的宽边帽,在颈部添加了一个护兜,以保护颈部不受风吹雨淋。" - #: lang/json/ARMOR_from_json.py msgid "TEST pair of socks" msgid_plural "TEST pairs of socks" @@ -20403,6 +20098,26 @@ msgid "TEST briefcase" msgid_plural "TEST briefcases" msgstr[0] "测试用手提箱" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "测试用箭筒" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "测试用箭筒,能储存20支箭或弩矢。" + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "测试用动力装甲" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "一件测试用的动力装甲。" + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -22043,6 +21758,18 @@ msgid "" msgstr "" "一套微型生化神经刺激器,植入了你大脑的激励中心。当开启时,它会消耗生化能量周期性地释放多巴胺和其他激励化学物质,让你处于极乐状态并抑制恐惧。" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "颅骨炸弹" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "一个安装在脊柱和脑干交汇处的炸弹。它在安装时就被设置了一个定时器,而你没有能够重置定时器的代码。" + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -22072,6 +21799,22 @@ msgid "" " the better. It can hold up to 100 mL of blood." msgstr "科技魔法的最新进展使这个生化插件能够将血液中的固有能量转化成生化能量。血液越强,效率越高。可以容纳 100 ml 血液。" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Crystallized Mana Nose Replacement" +msgid_plural "Crystallized Mana Nose Replacements" +msgstr[0] "人造魔力结晶鼻子" + +#. ~ Description for {'str': 'Crystallized Mana Nose Replacement'} +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"A large gem made with crystallized mana and some other stabilizing metals. " +"Comes with a specially designed power pack (installed into the skull) that " +"does not interfere with your mana ley lines. WARNING: for Technomancer use " +"only. By using this spell you are waiving all liability of Frikken Laser " +"Beams Inc. and its subsidiaries." +msgstr "" +"一个使用魔力结晶和其他稳定金属制作而成的大型宝石。配有一个经过特别设计不会干扰你灵脉的供能装置(被安装在头骨之中)。警告:仅供科技法师使用。施放此法术视为你同意免除弗里肯激光公司及其子公司的所有责任。" + #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" msgid_plural "chicken walker schematics" @@ -22128,6 +21871,288 @@ msgid "" msgstr "" "从这份学术综述中能够看出,作者做了详尽的研究和总结,并用近乎怂恿的语气推荐有关部门试用这种\"弹簧驱动式\"热核子弹。不过,封面上盖着大大的\"弃用\"章。" +#: lang/json/BOOK_from_json.py +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" +msgstr[0] "虚拟非小说类书籍" + +#. ~ Description for Generic Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a manuscript purporting to be factual" +msgstr "非小说类书籍模板" + +#: lang/json/BOOK_from_json.py +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" +msgstr[0] "虚拟小说类书籍" + +#. ~ Description for Generic Fiction Book +#: lang/json/BOOK_from_json.py +msgid "template for a work of fiction" +msgstr "小说类书籍的模板。" + +#: lang/json/BOOK_from_json.py +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" +msgstr[0] "虚拟小说类精装书" + +#. ~ Description for Generic Hard Bound Fiction Book +#: lang/json/BOOK_from_json.py +msgid "Template for hard bound book of fiction" +msgstr "小说类精装书的模板。" + +#: lang/json/BOOK_from_json.py +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "平装书" + +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} +#: lang/json/BOOK_from_json.py +msgid "An ordinary paperback book. Or is it? It is." +msgstr "一本普通的平装书。是吗?是的。" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Book" +msgid_plural "Nonfiction Books" +msgstr[0] "非小说类书籍" + +#. ~ Description for Nonfiction Book +#: lang/json/BOOK_from_json.py +msgid "template for hard bound nonfiction book" +msgstr "非小说类硬装书模板" + +#: lang/json/BOOK_from_json.py +msgid "Nonfiction Paperback" +msgid_plural "Nonfiction Paperbacks" +msgstr[0] "非小说类书籍" + +#. ~ Description for Nonfiction Paperback +#: lang/json/BOOK_from_json.py +msgid "template for a paperback nonfiction book" +msgstr "非小说类平装书模板" + +#: lang/json/BOOK_from_json.py +msgid "Homemaking Book" +msgid_plural "Homemaking Books" +msgstr[0] "装修类书籍" + +#. ~ Description for Homemaking Book +#: lang/json/BOOK_from_json.py +msgid "" +"This is a template for books about homemaking, style, home decor, and home " +"economics." +msgstr "家居装修类书籍的模板。" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Cookbook" +msgid_plural "Hardcover Cookbooks" +msgstr[0] "精装烹饪类书籍" + +#. ~ Description for Hardcover Cookbook +#. ~ Description for Softcover Cookbook +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about cooking." +msgstr "烹饪类书籍的模板。" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Cookbook" +msgid_plural "Softcover Cookbooks" +msgstr[0] "平装烹饪类书籍" + +#: lang/json/BOOK_from_json.py +msgid "dodge skillbook abstract" +msgid_plural "dodge skillbook abstracts" +msgstr[0] "闪避技能类书籍" + +#. ~ Description for dodge skillbook abstract +#: lang/json/BOOK_from_json.py +msgid "An ordinary book. Or is it? It is." +msgstr "一本普通书籍的模板。是吗?是的。" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" +msgstr[0] "精装哲学书" + +#. ~ Description for Hardcover Philosophy +#: lang/json/BOOK_from_json.py +msgid "This is a template for books about philosophy." +msgstr "精装哲学类书籍的模板。" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" +msgstr[0] "平装哲学类书籍" + +#. ~ Description for Softcover Philosophy. +#: lang/json/BOOK_from_json.py +msgid "This is a template for paperbacks about philosophy." +msgstr "平装哲学类书籍的模板。" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" +msgstr[0] "精装运动类书籍" + +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. +#: lang/json/BOOK_from_json.py +msgid "This is a template." +msgstr "一个书籍模版。" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "平装运动类书籍" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "精装运动类书籍" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "平装运动类书籍" + +#: lang/json/BOOK_from_json.py +msgid "template for mass produced books on esoteric subjects" +msgid_plural "template for mass produced books on esoteric subjectss" +msgstr[0] "批量出品的关于深奥主题书籍模板" + +#. ~ Description for template for mass produced books on esoteric subjects +#: lang/json/BOOK_from_json.py +msgid "" +"An ordinary paperback book. Or is it? Is that a glimmer of higher truth?" +msgstr "一本普通的平装书。是吗?是的。" + +#: lang/json/BOOK_from_json.py +msgid "Sweet Providence Romance Novel" +msgid_plural "Sweet Providence Romance Novels" +msgstr[0] "甜蜜的天意(浪漫小说)" + +#. ~ Description for Sweet Providence Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is a publisher of discount romance paperbacks easily " +"recognized by their blue and yellow cover illustrations. Despite the adult " +"nature of their subject matter, the books tend to be under 250 pages of " +"large print written in a vocabulary consistent with a 4th grade reading " +"level." +msgstr "" +"甜蜜的天意是一家经常出版平装浪漫小说的出版商,它出品的书籍有着标志性的蓝黄色封面插图,很容易被认出来。尽管这些书的主题都是成人内容,但它们往往不足250页,用特大号的字体和小学四年级水平的词汇书写而成。" + +#: lang/json/BOOK_from_json.py +msgid "Lorn and Loan Romance Novel" +msgid_plural "Lorn and Loan Romance Novels" +msgstr[0] "孤寂且负债(浪漫小说)" + +#. ~ Description for Lorn and Loan Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Lorn and Loan Press marketed romance paperbacks to a variety of alt " +"demographics, especially those with a penchant for eyeliner. The books are " +"billed as \"provocative,\" but words like \"malingering\" and \"turgid\" " +"also come to mind." +msgstr "" +"孤寂且负债出版社是一家出版平装浪漫小说的出版社,产品主要面向各类小众群体,特别是对眼线有特殊嗜好的人。这些书通常被评为“极具争议”,但像“无病呻吟”和“枯燥乏味”等词也经常出现。" + +#: lang/json/BOOK_from_json.py +msgid "Vanilla Romance Novel" +msgid_plural "Vanilla Romance Novels" +msgstr[0] "原味香草(浪漫小说)" + +#. ~ Description for Vanilla Romance Novel +#: lang/json/BOOK_from_json.py +msgid "" +"Vanilla Media is a mainstream publisher providing romantic literature to " +"everyday readers of taste. These stories contain explicit details only in " +"the odd chapters, and invariably end with a conventionally uplifting moral." +msgstr "原味香草传媒是一家主流出版商,提供符合日常读者品味的浪漫小说。这些故事只有在奇数章节中才清晰明确地揭露剧情,而且总是以传统的正能量结局。" + +#: lang/json/BOOK_from_json.py +msgid "The Everyman Library" +msgid_plural "The Everyman Librarys" +msgstr[0] "人人图书馆" + +#. ~ Description for The Everyman Library +#: lang/json/BOOK_from_json.py +msgid "" +"The Everyman Library is an imprint of Vanilla Media that publishes stories " +"about private eyes, cowboys, quarterbacks, and mobsters." +msgstr "人人图书馆是原味香草传媒集团下属的一家出版社,主要出品关于私家侦探、牛仔、四分卫和犯罪分子相关的小说。" + +#: lang/json/BOOK_from_json.py +msgid "Tween Topics" +msgid_plural "Tween Topicss" +msgstr[0] "少年话题社" + +#. ~ Description for Tween Topics +#: lang/json/BOOK_from_json.py +msgid "" +"Tween Topics is an imprint of Vanilla Media that publishes stories that " +"appeal to the youth of today. Or, failing that, the parents of said youth." +msgstr "少年话题社是原味香草传媒集团下属的一家出版社,主要出品看上去能够吸引如今的青少年,或者当做不到时,能够吸引他们父母的各类小说。" + +#: lang/json/BOOK_from_json.py +msgid "Quiddity Books" +msgid_plural "Quiddity Bookss" +msgstr[0] "本源出版社" + +#. ~ Description for Quiddity Books +#: lang/json/BOOK_from_json.py +msgid "" +"Quiddity publishes books for young adults. They offer stories about self-" +"discovery, personal identity, and contemporary trends." +msgstr "本源出版社主要出版面向年轻人的书籍。它出版了各类关于自我发现、自我认同和符合当代潮流的小说。" + +#: lang/json/BOOK_from_json.py +msgid "Satire Template" +msgid_plural "Satire Templates" +msgstr[0] "讽刺小说模板" + +#. ~ Description for Satire Template +#: lang/json/BOOK_from_json.py +msgid "template for mass produced satirical fiction" +msgstr "批量出品的讽刺小说模板。" + +#: lang/json/BOOK_from_json.py +msgid "Magazine Template" +msgid_plural "Magazine Templates" +msgstr[0] "杂志模板" + +#. ~ Description for Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for magazine" +msgstr "杂志的模板" + +#: lang/json/BOOK_from_json.py +msgid "News Magazine Template" +msgid_plural "News Magazine Templates" +msgstr[0] "新闻杂志模板" + +#. ~ Description for News Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for news magazine" +msgstr "新闻类杂志的模板" + +#: lang/json/BOOK_from_json.py +msgid "readable magazine" +msgid_plural "readable magazines" +msgstr[0] "可读杂志" + +#: lang/json/BOOK_from_json.py +msgid "archery skill training abstract" +msgid_plural "archery skill training abstracts" +msgstr[0] "弓术技能类书籍" + +#. ~ Description for archery skill training abstract +#: lang/json/BOOK_from_json.py +msgid "template for heavy books that confer archery skill training" +msgstr "弓术技能类书籍的模板" + #: lang/json/BOOK_from_json.py msgid "Lessons for the Novice Bowhunter" msgid_plural "copies of Lessons for the Novice Bowhunter" @@ -22141,6 +22166,19 @@ msgid "" "archers to get started hunting with a variety of bows and crossbows." msgstr "这本厚重的平装书包含了新手利用各种弓弩进行狩猎所需要掌握的一切信息。" +#: lang/json/BOOK_from_json.py +msgid "Zen and the Art of Archery" +msgid_plural "copies of Zen and the Art of Archery" +msgstr[0] "弓与禅" + +#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies +#. of Zen and the Art of Archery'} +#: lang/json/BOOK_from_json.py +msgid "" +"This massive book contains a wealth of vital information for the novice " +"archer." +msgstr "这本厚重的书包含了大量对于弓箭初学者来说至关重要的信息。" + #: lang/json/BOOK_from_json.py msgid "Archery for Kids" msgid_plural "issues of Archery for Kids" @@ -22155,19 +22193,6 @@ msgid "" "archery." msgstr "你能把箭射入靶心么?听起来不那么容易,不过一旦你掌握了要领,你会对弓箭欲罢不能。" -#: lang/json/BOOK_from_json.py -msgid "Zen and the Art of Archery" -msgid_plural "copies of Zen and the Art of Archery" -msgstr[0] "弓与禅" - -#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies -#. of Zen and the Art of Archery'} -#: lang/json/BOOK_from_json.py -msgid "" -"This massive book contains a wealth of vital information for the novice " -"archer." -msgstr "这本厚重的书包含了大量对于弓箭初学者来说至关重要的信息。" - #: lang/json/BOOK_from_json.py msgid "car buyer's guide" msgid_plural "car buyer's guides" @@ -22228,77 +22253,6 @@ msgid "" "nonsense information and written to be understandable for beginners." msgstr "一个经验丰富的作者所写的如何使用军用制式武器的技巧,针对警棍枪械等,经受了时间的考验,严肃的信息和难以理解的内容对初学者很不友好。" -#: lang/json/BOOK_from_json.py -msgid "SICP" -msgid_plural "copies of SICP" -msgstr[0] "计算机程序的构造和解释" - -#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} -#: lang/json/BOOK_from_json.py -msgid "" -"A classic text, \"The Structure and Interpretation of Computer Programs.\" " -"Written with examples in LISP, but applicable to any language." -msgstr "" -"《计算机程序的构造和解释(第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构造和解释》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。" - -#: lang/json/BOOK_from_json.py -msgid "Computer Science 301" -msgid_plural "copies of Computer Science 301" -msgstr[0] "计算机科学进阶" - -#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of -#. Computer Science 301'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on computer science." -msgstr "一本关于计算机学的大学课本。" - -#: lang/json/BOOK_from_json.py -msgid "How to Browse the Web" -msgid_plural "copies of How to Browse the Web" -msgstr[0] "如何浏览网页" - -#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How -#. to Browse the Web'} -#: lang/json/BOOK_from_json.py -msgid "Very beginner-level information about computers." -msgstr "一本非常基础的计算机入门书籍。" - -#: lang/json/BOOK_from_json.py -msgid "Computer World" -msgid_plural "issues of Computer World" -msgstr[0] "计算机世界杂志" - -#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer -#. World'} -#: lang/json/BOOK_from_json.py -msgid "" -"An informative magazine all about computers, both hardware and software." -msgstr "一本包含了各类硬件软件知识的计算机学杂志。" - -#: lang/json/BOOK_from_json.py -msgid "Computer Science 101" -msgid_plural "copies of Computer Science 101" -msgstr[0] "计算机科学基础" - -#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of -#. Computer Science 101'} -#: lang/json/BOOK_from_json.py -msgid "An entry-level textbook about computers." -msgstr "一本计算机的初级教材,内容面向初学者,简单易懂。" - -#: lang/json/BOOK_from_json.py -msgid "Principles of Advanced Programming" -msgid_plural "copies of Principles of Advanced Programming" -msgstr[0] "高级编程原理" - -#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': -#. 'copies of Principles of Advanced Programming'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy textbook dedicated to advanced-level software design, written for " -"several different programming languages." -msgstr "一本沉重的教科书,内容为高级软件编程设计。含有许多不同编程语言教学。" - #: lang/json/BOOK_from_json.py msgid "Advanced Physical Chemistry" msgid_plural "copies of Advanced Physical Chemistry" @@ -22308,113 +22262,10 @@ msgstr[0] "大学化学" #. of Advanced Physical Chemistry'} #: lang/json/BOOK_from_json.py msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." -msgstr "一本解释化学原理的大学教科书,包含了有机物和无机物两个方面。" - -#: lang/json/BOOK_from_json.py -msgid "The Homebrewer's Bible" -msgid_plural "copies of The Homebrewer's Bible" -msgstr[0] "酿造者宝典" - -#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of -#. The Homebrewer's Bible"} -#: lang/json/BOOK_from_json.py -msgid "" -"A book full of easy-to-follow recipes and useful advice on homebrewing, " -"malting, and fermenting. It even smells faintly of booze." -msgstr "一本写满了易学配方的家庭酿造指南,内容包含了从出芽,发酵,酿造的工艺的每一过程的详细文章与配图。" - -#: lang/json/BOOK_from_json.py -msgid "Cooking on a Budget" -msgid_plural "copies of Cooking on a Budget" -msgstr[0] "巧主妇烹饪大全" - -#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of -#. Cooking on a Budget'} -#: lang/json/BOOK_from_json.py -msgid "" -"A nice cook book that goes beyond recipes and into the chemistry of food." -msgstr "一本不仅仅局限于食物本身,而且重在分析食物组成成份的烹饪书,还有一些炊事用具的配方。" - -#: lang/json/BOOK_from_json.py -msgid "To Serve Man" -msgid_plural "copies of To Serve Man" -msgstr[0] "料理达人" - -#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve -#. Man'} -#: lang/json/BOOK_from_json.py -msgid "It's… it's a cookbook!" -msgstr "" -"一本没有作者署名与标注发行出版社的奇怪烹饪书,内容包含一些令人感到恐怖的食人文化文章与大量\"做\"人方法。\n" -"\"或是由食人族文化份子编著。\"" - -#: lang/json/BOOK_from_json.py -msgid "Cucina Italiana" -msgid_plural "copies of Cucina Italiana" -msgstr[0] "意大利厨艺" - -#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina -#. Italiana'} -#: lang/json/BOOK_from_json.py -msgid "" -"This cookbook is written in Italian, but handily illustrated with step by " -"step photo instructions." -msgstr "这是一本意大利语烹饪书,内含多款意式美食的制造方法 ,每个步骤都有详细的配图,即便不识意大利语也可以看懂配方。" - -#: lang/json/BOOK_from_json.py -msgid "Sushi Made Easy" -msgid_plural "copies of Sushi Made Easy" -msgstr[0] "寿司简单做" - -#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi -#. Made Easy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A simple text for the aspiring sushi lover, this easy to read guide is " -"filled with lots of helpful illustrations for everything from basic rice " -"preparation to setting a proper Japanese table." -msgstr "这是一本专为寿司爱好者的日式料理烹饪指导书,内容包含了从准备大米到寿司完成的每一个步骤的详细配图与文章。" - -#: lang/json/BOOK_from_json.py -msgid "family cookbook" -msgid_plural "family cookbooks" -msgstr[0] "家庭食谱" - -#. ~ Description for {'str': 'family cookbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A big binder full of somebody's family recipes. The well-turned pages and " -"creased corners speak volumes of the culinary knowledge contained within. " -"You could probably learn a lot about cooking from studying this domestic " -"artifact." -msgstr "一本某人家传的烹饪食谱合集,家庭主妇亲自为你解说各种烹饪技巧,内含很多食物加工知识。" - -#: lang/json/BOOK_from_json.py -msgid "Bon Appetit" -msgid_plural "issues of Bon Appetit" -msgstr[0] "好胃口杂志" - -#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} -#: lang/json/BOOK_from_json.py -msgid "" -"Exciting recipes and restaurant reviews. Full of handy tips about cooking." -msgstr "一本餐饮杂志,内容包含令人兴奋的食谱以及一些饭店的评论,以及一些关于烹饪的小心得。" - -#: lang/json/BOOK_from_json.py -msgid "Glamopolitan" -msgid_plural "issues of Glamopolitan" -msgstr[0] "时尚丽人" - -#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of -#. Glamopolitan'} -#: lang/json/BOOK_from_json.py -msgid "" -"This is a full-size glossy women's magazine. There are a few unoriginal " -"recipes and some simple cooking tips somewhere in between the fashion photos" -" and the sex advice columns." -msgstr "一本光鲜亮丽的大开本女性杂志。在时尚先锋和两性关系栏目的之间夹着一些缺乏创意的食谱和一些基础烹饪心得。" +"A university-level textbook on advanced principles of physical chemistry and" +" all its branches: thermochemistry, electrochemistry, solid-state chemistry," +" photochemistry, quantum chemistry et cetera." +msgstr "一本大学教材,内容涉及了物理化学的先进理论及其所有分支科学:热化学、电化学、固态化学、光化学、量子化学等。" #: lang/json/BOOK_from_json.py msgid "The Modern Tanner" @@ -22587,34 +22438,255 @@ msgid "" "and physical data is your thing, this is the book for you." msgstr "这本大部头的硬皮书塞满了各种技术学科的参考数据和相关公式。如果你对盯着满桌子的化学和物理数据感兴趣的话,这本书会很适合你的需求。" +#: lang/json/BOOK_from_json.py +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" +msgstr[0] "化学课本" + +#. ~ Description for {'str': 'chemistry textbook'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on chemistry." +msgstr "一本关于化学的大学课本。" + +#: lang/json/BOOK_from_json.py +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" +msgstr[0] "精油爱好者指南" + +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', +#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" +msgstr "一本沉重的精装书,详细描述了精油的制作过程,并附有设备原理图。祝你好运,别把自己炸了!" + +#: lang/json/BOOK_from_json.py +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" +msgstr[0] "化学战中的艺术与科学" + +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': +#. 'copies of Art and Science of Chemical Warfare'} +#: lang/json/BOOK_from_json.py +msgid "" +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at" +" times, though the information is top-notch." +msgstr "" +"一本深入而专业地描述了一个世纪以来化学武器的设计、发展、传播以及防护的书。因为作者着意使用顶尖的一手资料,某些图片可能不大适合心灵脆弱的读者观看。" + +#: lang/json/BOOK_from_json.py +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" +msgstr[0] "少儿化学:真正管用的有趣科学实验" + +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments +#. that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science +#. Experiments that Really Work'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book with comprehensive and accurate step-by-step illustrated instructions" +" for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." +msgstr "一本带有全面而准确的逐步操作图示说明的科学实验书,供青少年研究员或者任何想钻研化学这个神奇世界的人使用。" + +#: lang/json/BOOK_from_json.py +msgid "SICP" +msgid_plural "copies of SICP" +msgstr[0] "计算机程序的构造和解释" + +#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#: lang/json/BOOK_from_json.py +msgid "" +"A classic text, \"The Structure and Interpretation of Computer Programs.\" " +"Written with examples in LISP, but applicable to any language." +msgstr "" +"《计算机程序的构造和解释(第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构造和解释》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。" + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 301" +msgid_plural "copies of Computer Science 301" +msgstr[0] "计算机科学进阶" + +#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of +#. Computer Science 301'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on computer science." +msgstr "一本关于计算机学的大学课本。" + +#: lang/json/BOOK_from_json.py +msgid "How to Browse the Web" +msgid_plural "copies of How to Browse the Web" +msgstr[0] "如何浏览网页" + +#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How +#. to Browse the Web'} +#: lang/json/BOOK_from_json.py +msgid "Very beginner-level information about computers." +msgstr "一本非常基础的计算机入门书籍。" + +#: lang/json/BOOK_from_json.py +msgid "Computer World" +msgid_plural "issues of Computer World" +msgstr[0] "计算机世界杂志" + +#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer +#. World'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative magazine all about computers, both hardware and software." +msgstr "一本包含了各类硬件软件知识的计算机学杂志。" + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 101" +msgid_plural "copies of Computer Science 101" +msgstr[0] "计算机科学基础" + +#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of +#. Computer Science 101'} +#: lang/json/BOOK_from_json.py +msgid "An entry-level textbook about computers." +msgstr "一本计算机的初级教材,内容面向初学者,简单易懂。" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Advanced Programming" +msgid_plural "copies of Principles of Advanced Programming" +msgstr[0] "高级编程原理" + +#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': +#. 'copies of Principles of Advanced Programming'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy textbook dedicated to advanced-level software design, written for " +"several different programming languages." +msgstr "一本沉重的教科书,内容为高级软件编程设计。含有许多不同编程语言教学。" + +#: lang/json/BOOK_from_json.py +msgid "The Homebrewer's Bible" +msgid_plural "copies of The Homebrewer's Bible" +msgstr[0] "酿造者宝典" + +#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of +#. The Homebrewer's Bible"} +#: lang/json/BOOK_from_json.py +msgid "" +"A book full of easy-to-follow recipes and useful advice on homebrewing, " +"malting, and fermenting. It even smells faintly of booze." +msgstr "一本写满了易学配方的家庭酿造指南,内容包含了从出芽,发酵,酿造的工艺的每一过程的详细文章与配图。" + +#: lang/json/BOOK_from_json.py +msgid "Cooking on a Budget" +msgid_plural "copies of Cooking on a Budget" +msgstr[0] "巧主妇烹饪大全" + +#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of +#. Cooking on a Budget'} +#: lang/json/BOOK_from_json.py +msgid "" +"A nice cook book that goes beyond recipes and into the chemistry of food." +msgstr "一本不仅仅局限于食物本身,而且重在分析食物组成成份的烹饪书,还有一些炊事用具的配方。" + +#: lang/json/BOOK_from_json.py +msgid "To Serve Man" +msgid_plural "copies of To Serve Man" +msgstr[0] "料理达人" + +#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve +#. Man'} +#: lang/json/BOOK_from_json.py +msgid "It's… it's a cookbook!" +msgstr "" +"一本没有作者署名与标注发行出版社的奇怪烹饪书,内容包含一些令人感到恐怖的食人文化文章与大量\"做\"人方法。\n" +"\"或是由食人族文化份子编著。\"" + +#: lang/json/BOOK_from_json.py +msgid "Cucina Italiana" +msgid_plural "copies of Cucina Italiana" +msgstr[0] "意大利厨艺" + +#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina +#. Italiana'} +#: lang/json/BOOK_from_json.py +msgid "" +"This cookbook is written in Italian, but handily illustrated with step by " +"step photo instructions." +msgstr "这是一本意大利语烹饪书,内含多款意式美食的制造方法 ,每个步骤都有详细的配图,即便不识意大利语也可以看懂配方。" + +#: lang/json/BOOK_from_json.py +msgid "Sushi Made Easy" +msgid_plural "copies of Sushi Made Easy" +msgstr[0] "寿司简单做" + +#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi +#. Made Easy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A simple text for the aspiring sushi lover, this easy to read guide is " +"filled with lots of helpful illustrations for everything from basic rice " +"preparation to setting a proper Japanese table." +msgstr "这是一本专为寿司爱好者的日式料理烹饪指导书,内容包含了从准备大米到寿司完成的每一个步骤的详细配图与文章。" + +#: lang/json/BOOK_from_json.py +msgid "family cookbook" +msgid_plural "family cookbooks" +msgstr[0] "家庭食谱" + +#. ~ Description for {'str': 'family cookbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A big binder full of somebody's family recipes. The well-turned pages and " +"creased corners speak volumes of the culinary knowledge contained within. " +"You could probably learn a lot about cooking from studying this domestic " +"artifact." +msgstr "一本某人家传的烹饪食谱合集,家庭主妇亲自为你解说各种烹饪技巧,内含很多食物加工知识。" + +#: lang/json/BOOK_from_json.py +msgid "Bon Appetit" +msgid_plural "issues of Bon Appetit" +msgstr[0] "好胃口杂志" + +#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#: lang/json/BOOK_from_json.py +msgid "" +"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +msgstr "一本餐饮杂志,内容包含令人兴奋的食谱以及一些饭店的评论,以及一些关于烹饪的小心得。" + +#: lang/json/BOOK_from_json.py +msgid "Glamopolitan" +msgid_plural "issues of Glamopolitan" +msgstr[0] "时尚丽人" + +#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of +#. Glamopolitan'} +#: lang/json/BOOK_from_json.py +msgid "" +"This is a full-size glossy women's magazine. There are a few unoriginal " +"recipes and some simple cooking tips somewhere in between the fashion photos" +" and the sex advice columns." +msgstr "一本光鲜亮丽的大开本女性杂志。在时尚先锋和两性关系栏目的之间夹着一些缺乏创意的食谱和一些基础烹饪心得。" + #. ~ That would translate out to The Scottish Book of Cookery, or The Scottish #. Cookbook. #: lang/json/BOOK_from_json.py msgid "Ye Scots Beuk o Cuikery" msgid_plural "copies of Ye Scots Beuk o Cuikery" -msgstr[0] "苏格兰的厨艺与工艺" +msgstr[0] "苏格兰的厨艺" #. ~ Description for {'//~': 'That would translate out to The Scottish Book of #. Cookery, or The Scottish Cookbook.', 'str': 'Ye Scots Beuk o Cuikery', #. 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." -msgstr "一部描述十三世纪的苏格兰烹饪与冶炼的教程书。包含满是燕麦片、鱼、羊肝等苏格兰菜的烹饪配方,还有大量士兵打斗、冶练的插图。" - -#: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" -msgstr[0] "化学课本" - -#. ~ Description for {'str': 'chemistry textbook'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." -msgstr "一本关于化学的大学课本。" +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of" +" people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." +msgstr "" +"一部翻译得半通不通的盖尔语烹饪书,描述了十六世纪的苏格兰菜肴。虽然书中大量士兵打斗插图,以及夹杂了作者对“真正的苏格兰人”的抱怨让这本书读起来有些难懂,但它能提供对中世纪苏格兰饮食和文化的深入解析。" #: lang/json/BOOK_from_json.py msgid "The Vinegar Maker's Handbook" @@ -22792,16 +22864,16 @@ msgid "" msgstr "发酵作为一种烹饪方法,直到最近才在大灾变之前重新流行起来。这本书中包含了几十种食谱,但你不太可能再看到其中大部分食谱所需的原材料了。" #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" msgstr[0] "走出喧嚣" #. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to -#. home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " -"chapter contains a complete recipe for it's namesake." +"chapter contains a complete recipe for its namesake." msgstr "一本描述家庭蒸馏酒历史的书。每一章都包含一个与章节同名的酒的酿造配方。" #: lang/json/BOOK_from_json.py @@ -22828,7 +22900,7 @@ msgstr[0] "生存菜谱口袋本" #: lang/json/BOOK_from_json.py msgid "" "The smallest cookbook on the market, marketed exclusively to the " -"outdoorsman. Packs a surprising number of recipes for it's tiny size." +"outdoorsman. Packs a surprising number of recipes for its tiny size." msgstr "市面上体积最小的菜谱,只卖给驴友。内含与它小体积不符的数量惊人的食谱。" #: lang/json/BOOK_from_json.py @@ -22917,6 +22989,20 @@ msgstr[0] "祝你表演成功!" msgid "The Kids' Guide to Acting and Stagecraft." msgstr "儿童舞台表演指南。" +#: lang/json/BOOK_from_json.py +msgid "Treasury of Legends about Western Dancing" +msgid_plural "copies of Western Dancing" +msgstr[0] "西部舞蹈教程" + +#. ~ Description for {'str': 'Treasury of Legends about Western Dancing', +#. 'str_pl': 'copies of Western Dancing'} +#: lang/json/BOOK_from_json.py +msgid "" +"Written by Emanuel Nogueira, a constabulario and historian of Nuevo Laredo, " +"this massive book details the movements and cultural legacies of a variety " +"of North American folk dances." +msgstr "由墨西哥新拉雷多的历史学家、警察伊曼纽尔·诺盖拉撰写,这本厚书详细描述了北美西部各种民俗舞蹈的发展演变和流传下来的文化遗产。" + #: lang/json/BOOK_from_json.py msgid "AAA Guide" msgid_plural "copies of AAA Guide" @@ -23528,22 +23614,6 @@ msgid "" "save lives." msgstr "一本深入而专业地描述了从古至今的消防历史的工具书,并专注于描述各种用于救死扶伤的技术手段。" -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "化学战中的艺术与科学" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': -#. 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at" -" times, though the information is top-notch." -msgstr "" -"一本深入而专业地描述了一个世纪以来化学武器的设计、发展、传播以及防护的书。因为作者着意使用顶尖的一手资料,某些图片可能不大适合心灵脆弱的读者观看。" - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" @@ -23663,20 +23733,6 @@ msgid "" msgstr "" "这本经典的参考书目包含了大量密集的章节和表格,内容涉及材料学、度量学、工具制造、传动装置、螺纹车工等各个方面,而且这个最近的版本还新增了许多《增材制造》期刊上的最新技术。如果你急于知道如何最优地完成某项加工作业,答案就藏在这本书的某一页里。" -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "精油爱好者指南" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', -#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "一本沉重的精装书,详细描述了精油的制作过程,并附有设备原理图。祝你好运,别把自己炸了!" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -23952,6 +24008,19 @@ msgstr[0] "生物柴油:可再生燃料资源" msgid "A large textbook for college students about biodiesel." msgstr "一本有关生物柴油的大部头大学教科书。" +#: lang/json/BOOK_from_json.py +msgid "Hot Rod Chassis & Suspension Handbook" +msgid_plural "copies of Hot Rod Handbook" +msgstr[0] "改装飞车手册" + +#. ~ Description for {'str': 'Hot Rod Chassis & Suspension Handbook', +#. 'str_pl': 'copies of Hot Rod Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"By learning the fundamentals of chassis building and suspension design you " +"will gain the critical knowledge needed to hot rod properly." +msgstr "这本书包含了汽车底盘制造和悬挂设计的基本原理,你可以从中获得正确改装车辆所需的关键知识。" + #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" msgid_plural "copies of Mechanical Mastery" @@ -23992,16 +24061,6 @@ msgid "" "techniques for close quarters combat encounters." msgstr "一个被翻旧了的精装书,里面有插画来说明简单的近身格斗策略和技巧。" -#: lang/json/BOOK_from_json.py -msgid "paperback abstract" -msgid_plural "paperback abstracts" -msgstr[0] "虚拟平装书" - -#. ~ Description for {'str': 'paperback abstract'} -#: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." -msgstr "一本普通的平装书。是吗?是的。" - #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" msgid_plural "copies of Zombie Survival Guide" @@ -24026,19 +24085,6 @@ msgid "" "A full flight log for a military aircraft. Nothing of interest stands out." msgstr "一个军用飞机的完整飞行日志,没什么特别的。" -#: lang/json/BOOK_from_json.py -msgid "children's book" -msgid_plural "children's books" -msgstr[0] "儿童读物" - -#. ~ Description for {'str': "children's book"} -#: lang/json/BOOK_from_json.py -msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the dead walked" -" and the world moved on." -msgstr "一本给小读者看的小书。有着丰富的卡通插画角色和甜蜜的故事,显然来自另一个时间的产物,来自那个死人复生之前的世界,但世界还是在往前走。" - #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" msgid_plural "Ranch Prospectus" @@ -24070,157 +24116,6 @@ msgid "" "works by Churchill, Mailer, Eco, and Voltaire." msgstr "一本由著名作家撰写的优美华丽的散文集。包括丘吉尔、梅勒、艾柯、伏尔泰的作品。" -#: lang/json/BOOK_from_json.py -msgid "book of fairy tales" -msgid_plural "books of fairy tales" -msgstr[0] "精灵传奇" - -#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy -#. tales'} -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of folklore featuring the usual cast of fairies, " -"goblins, and trolls." -msgstr "一本有趣的民间传说故事集,里面有着常见的精灵、地精、巨魔等。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale is about a wolf who eats so much salted meat she becomes " -"trapped in the butcher's cellar." -msgstr "这个童话故事讲的是一只狼吃了太多咸肉,最终被困在屠夫的地窖里。" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this traditional story of beastly intrigue a clever fox convinces an " -"elderly lion to kill a derogatory wolf." -msgstr "在这个传统童话故事中,一只狡猾的狐狸说服一只年长的狮子杀死一只恶毒的狼。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is an illustrated fairy tale book about a conversation between a mouse " -"and a cat." -msgstr "这是一本有插图的童话书,讲述的是老鼠和猫之间的对话。" - -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of stories featuring \"Goldilocks and The Three " -"Bears\" on the cover." -msgstr "一本有趣的童话故事集,封面上写着《金姑娘和三只小熊》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a well illustrated fairy tale about a war between the birds and the " -"beasts, with particulars on the wartime conduct and eventual fate of the " -"bat." -msgstr "这是一个有着不错插图的童话故事书,讲述了鸟类和野兽之间的战争,描述了蝙蝠在战争之中的行为和最终命运。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " -"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" -" page." -msgstr "这本书名为《响尾蛇的复仇》,是切诺基族神话和传说的故事集。标题页上用铅笔手写了\"285D\"。" - -#: lang/json/BOOK_from_json.py -msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" -msgstr "这本童话书中讲述了一个《杰克和豌豆》故事的本地变体。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale book is entitled \"Little Red Cap\". It details a red-" -"cloaked child's various encounters with talking wolves." -msgstr "这本童话书的标题是《小红帽》。它描述了一个穿红斗篷的小女孩与一只会说话的大灰狼的各种遭遇。" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of ghost stories warning about the dangers of stealing from the" -" dead." -msgstr "一本关于鬼怪的童话故事集,警告读者从死者身上偷东西的危险。" - -#: lang/json/BOOK_from_json.py -msgid "" -"An Irish fairy tale in which a Celtic poet marries a princess who has been " -"cursed with the head of a pig." -msgstr "一个爱尔兰童话故事,讲述了一个凯尔特诗人娶了一个被诅咒长成猪头的公主。" - -#: lang/json/BOOK_from_json.py -msgid "" -"A book of Italian fairy tales translated into English. The cover features " -"an orange fairy juggling a lemon, a lime, and a tangerine." -msgstr "一本被翻译成英文的意大利童话书。封面上画着一只橙色的仙子正在用一个柠檬、一个酸橙和一个橘子玩杂耍。" - -#: lang/json/BOOK_from_json.py -msgid "A book of fables about people who change into birds." -msgstr "一本关于变成鸟的人的童话书。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This compendium of amusing folk tales about the devil is titled \"Hell's " -"Kettle: Legends of the Devil.\"" -msgstr "一本关于魔鬼的有趣的民间故事集录,标题为《地狱的水壶:魔鬼的传说》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This charming book of Swedish fables is titled, \"The Glass Mountain and the" -" Princess.\"" -msgstr "一本迷人的瑞典童话书,标题为《玻璃山和公主》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a collection of fairy tale stories warning against the consequences " -"of extreme greed." -msgstr "一本童话故事集,警告了读者过度贪婪的下场。" - -#: lang/json/BOOK_from_json.py -msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" -msgstr "一本标题为《偷东西的罐子:阿拉伯世界的民间故事》的故事书。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a book of legends collected by Traveller Johnny Cassidy in the " -"1960s." -msgstr "这是一本民间传说故事集,由旅行家约翰尼·卡西迪在20世纪60年代收集并出版。" - -#: lang/json/BOOK_from_json.py -msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" -msgstr "一本格林兄弟的童话书,书名为《夏娃的孩子们》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of fables expands upon the legend of the Seven Sleepers of " -"Ephesus." -msgstr "这本童话书基于艾弗所之七圣童的传说改编扩写而成。" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this fairy tale a strong man frightens an ogre by squeezing water out of " -"a stone." -msgstr "在这个童话故事中,一个强壮的小裁缝把石头里的水挤出来吓唬巨人。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of rustic folk tales bears the title: \"How to Shout Down the " -"Devil.\"" -msgstr "这本乡村民间故事书的标题为《如何大叫来吓跑魔鬼》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " -"fables about logical errors and foolish misjudgements of the Kadambawa men." -msgstr "这本书的标题是《锡兰的乡村民间故事》。它里面包括了一个关于一名来自斯里兰卡卡达姆巴瓦的男人的逻辑错误和愚蠢误判的童话故事。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " -"Stories.\"" -msgstr "这本民间故事书的标题是《一个有丑陋名字的女孩,和其他故事》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " -"suitable for small children." -msgstr "标题为《逃走的松饼》的民间童话故事集,适合讲给小孩子听。" - #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" msgid_plural "copies of The Hitchhiker's Guide to the Cataclysm" @@ -24236,262 +24131,6 @@ msgstr "" "一本奇怪的书,封面上镌刻了巨大、友好的文字,\"不要恐慌\"。\n" "(注:引自《银河系漫游指南 》)" -#: lang/json/BOOK_from_json.py -msgid "Mycenacean Hymns" -msgid_plural "copies of Mycenacean Hymns" -msgstr[0] "迈锡尼的赞美诗" - -#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of -#. Mycenacean Hymns'} -#: lang/json/BOOK_from_json.py -msgid "" -"A vellum book containing the hymns central to Marloss faith. As the verses " -"lead to each other, the text sings of unity and promised paradise." -msgstr "羊皮纸书,包含了对马洛斯信仰至关重要的赞美诗。这些诗句彼此相通,经文歌颂统一和信仰的天堂。" - -#: lang/json/BOOK_from_json.py -msgid "King James Bible" -msgid_plural "copies of King James Bible" -msgstr[0] "钦定版圣经" - -#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King -#. James Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, which originated in England " -"in the early 1600s." -msgstr "基督教圣经的英文译本之一,最早于十七世纪初由英国国王詹姆斯一世下令翻译出版而成。" - -#: lang/json/BOOK_from_json.py -msgid "Eastern Orthodox Bible" -msgid_plural "copies of Eastern Orthodox Bible" -msgstr[0] "东正教圣经" - -#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of -#. Eastern Orthodox Bible'} -#: lang/json/BOOK_from_json.py -msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." -msgstr "" -"东正教是基督教的分支,主要是指依循由东罗马帝国(又称拜占庭帝国)所流传下来的基督教传统的教会,它是与天主教、新教并立的基督教三大派别之一,这本东正教圣经的内容和天主教圣经有很大不同,基本可以吵起来。" - -#: lang/json/BOOK_from_json.py -msgid "Gideon Bible" -msgid_plural "copies of Gideon Bible" -msgstr[0] "基甸版圣经" - -#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon -#. Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, distributed free of charge by" -" Gideons International." -msgstr "基督教圣经的英文译本之一,由基甸国际基金会免费发行。" - -#: lang/json/BOOK_from_json.py -msgid "The Guru Granth Sahib" -msgid_plural "copies of The Guru Granth Sahib" -msgstr[0] "本初经" - -#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The -#. Guru Granth Sahib'} -#: lang/json/BOOK_from_json.py -msgid "A single-volume copy of the central religious texts of Sikhism." -msgstr "锡克教的核心宗教典籍的单行本。" - -#: lang/json/BOOK_from_json.py -msgid "Hadith" -msgid_plural "copies of Hadith" -msgstr[0] "圣训" - -#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} -#: lang/json/BOOK_from_json.py -msgid "" -"A Muslim religious text containing an account of the sayings and actions of " -"the prophet Muhammad." -msgstr "\"圣训\",阿拉伯语称为\"哈底斯\"(语言)或\"逊奈\"(圣行),是指先知穆罕默德说过的话、做过的事或是圣门弟子说的话或做的事,先知没有反对保持沉默的总称。" - -#: lang/json/BOOK_from_json.py -msgid "Principia Discordia" -msgid_plural "copies of Principia Discordia" -msgstr[0] "纷争原理" - -#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of -#. Principia Discordia'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of Discordianism. It seems to " -"primarily concern chaos, and features a card in the back which informs you " -"that you are now a 'genuine and authorized Pope of Discordia'." -msgstr "" -"收录了混沌教派主要宗教论述的宗教典籍。从头到尾都在说关于混沌的伟大,书背后画着一张卡片,提醒读完书的你已经是一位\"名副其实的官方指定混沌教教皇\"。" - -#: lang/json/BOOK_from_json.py -msgid "The Kojiki" -msgid_plural "copies of The Kojiki" -msgstr[0] "古事记" - -#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} -#: lang/json/BOOK_from_json.py -msgid "" -"The oldest extant chronicle of Japan's myths and history, the stories " -"contained in the Kojiki are part of the inspiration behind Shinto practices." -msgstr "记录日本神话和历史的、现存最古老的编年史书籍,其中包含了古事记故事背后、神道的做法灵感的一部分。" - -#: lang/json/BOOK_from_json.py -msgid "The Book of Mormon" -msgid_plural "copies of The Book of Mormon" -msgstr[0] "摩门之书" - -#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The -#. Book of Mormon'} -#: lang/json/BOOK_from_json.py -msgid "" -"The sacred text of the Latter Day Saint movement of Christianity, originally" -" published in 1830 by Joseph Smith." -msgstr "摩门教(耶稣基督后期圣徒教会)的教义文本,该书最早于1830年由约瑟夫史密斯出版发行。" - -#: lang/json/BOOK_from_json.py -msgid "The Gospel of the Flying Spaghetti Monster" -msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" -msgstr[0] "飞天意面福音" - -#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', -#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of the Church of the Flying Spaghetti " -"Monster. It seems to involve a lot of pirates and some sort of invisible " -"drunken monster made of pasta." -msgstr "一本描写了飞天意面神教的主要信仰的书籍。这本书里面似乎包含了大量有关海盗和某种酗酒的隐身意面怪物的描写。RAmen!" - -#: lang/json/BOOK_from_json.py -msgid "Quran" -msgid_plural "copies of Quran" -msgstr[0] "古兰经" - -#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Muslim book of holy scriptures, with " -"explanatory notes and commentaries to aid in understanding." -msgstr "" -"《古兰经》(或译《可兰经》;意思是\"诵读\",英语:Quran;Koran),是伊斯兰教的最高经典,共有30卷114章6236节。讲述任何一手拿剑一手拿书说服别人的故事。" - -#: lang/json/BOOK_from_json.py -msgid "Dianetics" -msgid_plural "copies of Dianetics" -msgstr[0] "戴尼提" - -#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is the canonical text of Scientology. Written by a science " -"fiction author, it contains self-improvement techniques and musings on " -"psychology called Dianetics." -msgstr "" -"这是一本山达基教(又称科学教、科学神教)的教典,其中介绍了一种被称作“戴尼提”的、自我提升和心灵冥想的技巧。不巧的是,它是由一位科幻作家创作的。" - -#: lang/json/BOOK_from_json.py -msgid "The Book of the SubGenius" -msgid_plural "copies of The Book of the SubGenius" -msgstr[0] "亚圣之书" - -#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of -#. The Book of the SubGenius'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book about the Church of the SubGenius. It seems to involve a salesman " -"named J. R. \"Bob\" Dobbs and a concept called 'slack'." -msgstr "亚圣教会的宗教典籍,这个教会的教义是自由散漫,有点奇怪是吧?如果你知道创立这个宗教的教主是个失败的销售员,你就会明白了。" - -#: lang/json/BOOK_from_json.py -msgid "The Sutras of the Buddha" -msgid_plural "copies of The Sutras of the Buddha" -msgstr[0] "佛说" - -#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of -#. The Sutras of the Buddha'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of discourses attributed to the Buddha and his close disciples." -msgstr "一本佛陀诸弟子与佛陀间的对话合集。" - -#: lang/json/BOOK_from_json.py -msgid "Talmud" -msgid_plural "copies of Talmud" -msgstr[0] "塔木德" - -#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of Talmud'} -#: lang/json/BOOK_from_json.py -msgid "" -"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " -"Hebrew Bible with teachings and opinions of thousands of rabbis." -msgstr "" -"一本拉比犹太教的教义文本,《犹太法典》是犹太人的两部法典之一。它是犹太口传律法的集大成,由攸本文米修纳(MISHAN)和注解的戈马拉(GEMARA)两部所构成。类似《圣经》。" - -#: lang/json/BOOK_from_json.py -msgid "Tanakh" -msgid_plural "copies of Tanakh" -msgstr[0] "旧约圣经" - -#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single-volume book containing the complete canon of the Jewish Bible." -msgstr "这本单行本包含了犹太教希伯来圣经的所有经典。" - -#: lang/json/BOOK_from_json.py -msgid "The Tripitaka" -msgid_plural "copies of The Tripitaka" -msgstr[0] "大藏经" - -#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The -#. Tripitaka'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Buddhist writings describing their canons of " -"scriptures." -msgstr "大藏经为佛教经典的总集,简称为藏经,又称为一切经,有多个版本。" - -#: lang/json/BOOK_from_json.py -msgid "The Upanishads" -msgid_plural "copies of The Upanishads" -msgstr[0] "婆罗门奥义书" - -#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The -#. Upanishads'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Hindu writings regarding the nature of reality and " -"describing the character and form of human salvation." -msgstr "吠陀奥义书是印度婆罗门教的教义总集。是用吠陀梵文写作的一些西北印度文献的汇总,是关于对神的诵歌和祷文的文集。" - -#: lang/json/BOOK_from_json.py -msgid "The Four Vedas" -msgid_plural "copies of The Four Vedas" -msgstr[0] "四吠陀" - -#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four -#. Vedas'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single volume containing all four Vedas, which are the oldest scriptures " -"of Hinduism." -msgstr "一部古印度婆罗门教的四部根本圣典的合辑本。又作四韦陀、四围陀,是印度教最古老的经文。主要内容是一大堆赞颂神灵及祈祷祭祀的诗歌。" - -#: lang/json/BOOK_from_json.py -msgid "The Satanic Bible" -msgid_plural "copies of The Satanic Bible" -msgstr[0] "撒旦圣经" - -#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The -#. Satanic Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of essays, observations, and rituals published by Anton LaVey " -"in 1969." -msgstr "安东·拉维1969年出版的一部论文集、评论集和仪式集。" - #: lang/json/BOOK_from_json.py msgid "comic book" msgid_plural "comic books" @@ -24533,6 +24172,18 @@ msgstr "" "一些关于一群名人的周刊报道。\n" "\"称为(不)死者报道更为贴切。\"" +#: lang/json/BOOK_from_json.py +msgid "The Analyst" +msgid_plural "issues of The Analyst" +msgstr[0] "分析家杂志" + +#. ~ Description for {'str': 'The Analyst', 'str_pl': 'issues of The Analyst'} +#: lang/json/BOOK_from_json.py +msgid "" +"This news magazine has been described as \"a kind of Reader's Digest for " +"America's corporate elite.\" These concerns are, of course, behind us now." +msgstr "这本新闻杂志被称为“美国企业精英的读者文摘”,当然,这里面所关心的东西现在早已是过去时了。" + #: lang/json/BOOK_from_json.py msgid "Playboy" msgid_plural "issues of Playboy" @@ -24648,6 +24299,22 @@ msgid "" msgstr "" "这本廉价的平装书讲述了一个黑帮老大被怀疑的故事。她从不失信,从不供出同伙,也从不背弃朋友。尽管如此,她对地下社会的统治和控制不断被谣言和偏执所侵蚀。" +#: lang/json/BOOK_from_json.py +msgid "Midnight Cop" +msgid_plural "copies of Midnight Cop" +msgstr[0] "午夜警探" + +#. ~ Description for {'str': 'Midnight Cop', 'str_pl': 'copies of Midnight +#. Cop'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this bare-knuckled potboiler, a ruthless police detective schemes to shut" +" down local crime lords by pitting them against each other. When long-" +"simmering resentments finally flare the city learns why they call it \"the " +"dead of night.\"" +msgstr "" +"一部赤裸裸的圈钱作品,讲述了一名冷酷无情的警探如何通过密谋,以挑唆本地帮派内斗的方式除掉一个又一个帮派首领。当酝酿已久的仇恨最终点亮整座城市的夜空时,人们才明白谁才是真正的“午夜死神”。" + #: lang/json/BOOK_from_json.py msgid "drama novel" msgid_plural "drama novels" @@ -24723,6 +24390,60 @@ msgid "" "A hardboiled detective tale filled with hard hitting action and intrigue." msgstr "一本冷硬派的侦探小说,充满着硬派动作与阴谋,由\"文森特和马沙的妻子\"、\"金表\"、\"邦妮的处境\"三个故事组成。" +#: lang/json/BOOK_from_json.py +msgid "Planet of the Murderous Squids that Time Forgot!" +msgid_plural "Planet of the Murderous Squids that Time Forgot!s" +msgstr[0] "被时间遗忘的杀人乌贼星球" + +#. ~ Description for Planet of the Murderous Squids that Time Forgot! +#: lang/json/BOOK_from_json.py +msgid "" +"In this psychedelic adventure novel of cosmic exploration, an elderly " +"assassin discovers a planet too good to be true. Only once it is too late " +"does she discover the harrowing truth at the center of \"The Planet of the " +"Murderous Squids that Time Forgot!\"" +msgstr "" +"一部关于宇宙探索的迷幻冒险小说,讲述了一位年长的刺客发现了一颗好得难以置信的行星。当她发现位于\"那颗被时间遗忘的杀人乌贼星球\"中心那万分恐怖的真相时,一切都太迟了。" + +#: lang/json/BOOK_from_json.py +msgid "The Great Capes of Metropolis" +msgid_plural "The Great Capes of Metropoliss" +msgstr[0] "大都市中的斗篷英雄们" + +#. ~ Description for The Great Capes of Metropolis +#: lang/json/BOOK_from_json.py +msgid "" +"In this classic pulp paperback of superheroic exploits, a group of masked " +"vigilantes with diverse superpowers learn to work together to defeat the " +"ultimate villain." +msgstr "一本经典的平装超级英雄故事书,描述了一群拥有不同超能力的平民蒙面英雄学习如何齐心战胜终极大反派的故事。" + +#: lang/json/BOOK_from_json.py +msgid "Yesterday's Murdered" +msgid_plural "Yesterday's Murdereds" +msgstr[0] "昨日凶案" + +#. ~ Description for Yesterday's Murdered +#: lang/json/BOOK_from_json.py +msgid "" +"In this fast paced pulp noir, a hard-drinking detective with nerves of steel" +" has one last shot at vengeance." +msgstr "这本快节奏的平装小说讲述了一位拥有好酒量的侦探如何用他钢铁般的意志抓住了最后一次复仇机会。" + +#: lang/json/BOOK_from_json.py +msgid "Flashgun Condor and the Crimson Criminal" +msgid_plural "Flashgun Condor and the Crimson Criminals" +msgstr[0] "快门秃鹰和腥红狂徒" + +#. ~ Description for Flashgun Condor and the Crimson Criminal +#: lang/json/BOOK_from_json.py +msgid "" +"A hot-blooded photographer who fights crime with film, footage, and fists, " +"Condor is more than a mere shutterbug on the crime beat. But will she be " +"able to unravel a devious deception and bring the \"Crimson Criminal\" to " +"justice?" +msgstr "秃鹰不仅仅是一个普通的摄影迷,她是一位用电影、镜头和拳头打击犯罪的热血摄影师。但这次,她能解开这个狡猾的骗局,将\"腥红狂徒\"绳之以法吗?" + #: lang/json/BOOK_from_json.py msgid "road novel" msgid_plural "road novels" @@ -24745,6 +24466,132 @@ msgstr[0] "浪漫小说" msgid "Drama and mild smut." msgstr "一本剧情跌宕起伏、还带有一些情色描写的小说。" +#: lang/json/BOOK_from_json.py +msgid "Love and Circuses" +msgid_plural "Love and Circusess" +msgstr[0] "爱情与马戏" + +#. ~ Description for Love and Circuses +#: lang/json/BOOK_from_json.py +msgid "" +"The passionate saga of two Boston politicians fiercely battling each other " +"for the mayor's office, and for Lydia's hand in marriage." +msgstr "一段跌宕起伏的传奇故事,讲述了两位波士顿政客为争夺市长职位,以及成为莉迪亚的老公而展开激烈竞争的故事。" + +#: lang/json/BOOK_from_json.py +msgid "Cloven Kisses" +msgid_plural "Cloven Kissess" +msgstr[0] "魔蹄之吻" + +#. ~ Description for Cloven Kisses +#: lang/json/BOOK_from_json.py +msgid "" +"When the devil falls in love with a warlock, his proposal must be infernally" +" wicked. Will hooves, horns, and the scent of sulphur condemn love's flames" +" to hellfire?" +msgstr "当魔鬼与一个男巫坠入爱河时,他们的求婚仪式一定邪恶至极。蹄子、尖角和硫磺的气味会把爱情之焰变为地狱之火吗?" + +#: lang/json/BOOK_from_json.py +msgid "Conquer Me Sweetly" +msgid_plural "Conquer Me Sweetlys" +msgstr[0] "征服我吧甜心" + +#. ~ Description for Conquer Me Sweetly +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is delighted to offer you this romantic tale of " +"delicious dalliances and daring delights." +msgstr "甜蜜的天意出版社很荣幸能为您呈现这份充满了美味调情和大胆欢愉的浪漫小说。" + +#: lang/json/BOOK_from_json.py +msgid "Dubliner's Debutante" +msgid_plural "Dubliner's Debutantes" +msgstr[0] "杜布利纳的初次亮相" + +#. ~ Description for Dubliner's Debutante +#: lang/json/BOOK_from_json.py +msgid "" +"His love songs were only for me, but I preferred the banjo over bagpipes. " +"How could I ever love a kilted yankee of foreign breeding?" +msgstr "他的情歌只为我而作,但我更喜欢班卓琴而不是风笛。我怎么会喜欢外国血统的北方佬呢?" + +#: lang/json/BOOK_from_json.py +msgid "Blood Diodes" +msgid_plural "Blood Diodess" +msgstr[0] "染血的二极管" + +#. ~ Description for Blood Diodes +#: lang/json/BOOK_from_json.py +msgid "" +"He is an automaton, she is a reformed vampire, can love find a way? In this" +" edgy romance by acclaimed author Kea Dekker, heartbreak is just the " +"beginning." +msgstr "他是个机器人,她是个改过自新的吸血鬼,他们之间的爱情能找到出路吗?在这部由著名作家凯亚·德克尔创作的前卫浪漫小说中,心碎不过是刚刚开始。" + +#: lang/json/BOOK_from_json.py +msgid "Envying Heaven" +msgid_plural "Envying Heavens" +msgstr[0] "妒天记" + +#. ~ Description for Envying Heaven +#: lang/json/BOOK_from_json.py +msgid "" +"When her fiancee names a star for her Wanda begins to wonder if an " +"astronomer's wife can ever compete with the allure of the cosmos." +msgstr "当她的未婚夫用她的名字命名一颗星星时,万达开始怀疑作为一位天文学家的妻子的自己能否与宇宙的魅力相媲美。" + +#: lang/json/BOOK_from_json.py +msgid "Tall, Dark, and Gruesome" +msgid_plural "Tall, Dark, and Gruesomes" +msgstr[0] "又高又黑又可怕" + +#. ~ Description for Tall, Dark, and Gruesome +#: lang/json/BOOK_from_json.py +msgid "" +"Fatima's obsession with the dead threatens to consume her when she falls in " +"love with a restless ghost. In this provocative romp celebrated author Kea " +"Dekker gently lifts the thin veil separating cold bodies from warm. " +msgstr "" +"法蒂玛对死者的痴迷可能将她吞噬,她爱上了一个不愿安息的鬼魂。在这部挑逗的浪漫小说中,著名作家凯亚·德克尔轻轻地掀开分隔在冰冷尸体和温暖人体之间的薄纱。" + +#: lang/json/BOOK_from_json.py +msgid "Along Came a Rider" +msgid_plural "Along Came a Riders" +msgstr[0] "赛马师来了" + +#. ~ Description for Along Came a Rider +#: lang/json/BOOK_from_json.py +msgid "" +"When Beth's career as a pro steeplechase jockey threatens to divide her from" +" her lover, Beth has to act fast. Will she ever find a man that can keep up" +" with her racing heart?" +msgstr "贝丝作为职业障碍赛马师的生涯开始有把她与她的情人分隔开的危险,她必须迅速采取行动。她能否找到一个能跟得上她的奔腾脉搏的男人呢?" + +#: lang/json/BOOK_from_json.py +msgid "Rogue's Virtue" +msgid_plural "Rogue's Virtues" +msgstr[0] "盗亦有道" + +#. ~ Description for Rogue's Virtue +#: lang/json/BOOK_from_json.py +msgid "" +"Can Victoria reform the fugitive from justice who wooed her with false " +"pretenses and true passion?" +msgstr "维多利亚能成功让那个用虚假借口和真实激情追求她的逃犯浪子回头吗?" + +#: lang/json/BOOK_from_json.py +msgid "The Death of My Secret Life" +msgid_plural "The Death of My Secret Lifes" +msgstr[0] "我秘密生活的终结" + +#. ~ Description for The Death of My Secret Life +#: lang/json/BOOK_from_json.py +msgid "" +"Makeda comes out to her family, but she's still got plenty of skeletons in " +"her closet. Best selling authoress Kea Dekker breaks all the rules in this " +"macabre story of love and lies." +msgstr "马克达终于向她的家人坦白出柜了,但她的衣柜里还藏着更多骷髅。畅销女作家凯亚·德克尔在这个充满了爱情和谎言的恐怖故事中打破了所有的规则。" + #: lang/json/BOOK_from_json.py msgid "samurai novel" msgid_plural "samurai novels" @@ -24772,6 +24619,70 @@ msgstr "" "一片对大灾变之前的政治讽刺小说。\n" "\"大灾变后讽刺加倍。\"" +#: lang/json/BOOK_from_json.py +msgid "The House of God" +msgid_plural "The House of Gods" +msgstr[0] "上帝的居所" + +#. ~ Description for The House of God +#: lang/json/BOOK_from_json.py +msgid "" +"Set in a lightly disguised Boston hospital of high repute, Samuel Shem’s " +"novel dives deep into the agony of absurdity." +msgstr "这部以塞缪尔·闪姆笔名出品的小说以一家名声显赫的波士顿医院为背景,稍作修改掩饰,深入探索了其中种种荒谬所带来的痛苦。" + +#: lang/json/BOOK_from_json.py +msgid "Catch-22" +msgid_plural "Catch-22s" +msgstr[0] "第二十二条军规" + +#. ~ Description for Catch-22 +#: lang/json/BOOK_from_json.py +msgid "" +"There is a short informational forward in this paperback edition of " +"Catch-22. Apparently the original title for Joseph Heller’s excruciatingly " +"brilliant war satire was \"Catch-11.\"" +msgstr "这本《第二十二条军规》平装版有份简短介绍背景的前言。显然,约瑟夫·海勒这部极其精彩的战争讽刺小说的初版标题是《第十一条军规》。" + +#: lang/json/BOOK_from_json.py +msgid "The Master and Margarita" +msgid_plural "The Master and Margaritas" +msgstr[0] "大师和玛格丽特" + +#. ~ Description for The Master and Margarita +#: lang/json/BOOK_from_json.py +msgid "" +"Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, " +"vampires, a talking cat, and the literary elite of Moscow, this is a satire " +"on Stalinist tyranny written by Mikhail Bulgakov." +msgstr "" +"这是一部由米哈伊尔·布尔加科夫创作的关于斯大林暴政的政治讽刺小说,书中角色包括了撒旦、本丢·彼拉多、耶稣基督、吸血鬼、一只会说话的猫和莫斯科的文艺精英们。" + +#: lang/json/BOOK_from_json.py +msgid "A Handful of Dust" +msgid_plural "A Handful of Dusts" +msgstr[0] "一掬尘土" + +#. ~ Description for A Handful of Dust +#: lang/json/BOOK_from_json.py +msgid "" +"Laced with cynicism, Evelyn Waugh's \"A Handful of Dust\" satirizes a " +"stratum of characters who have wealth, but lack any other credentials." +msgstr "伊夫林·沃的《一掬尘土》带有愤世嫉俗的色彩,讽刺了整个上流社会,他们空有财富,却缺乏其他资历。" + +#: lang/json/BOOK_from_json.py +msgid "Cat’s Cradle" +msgid_plural "Cat’s Cradles" +msgstr[0] "猫的摇篮" + +#. ~ Description for Cat’s Cradle +#: lang/json/BOOK_from_json.py +msgid "" +"A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of " +"nuclear destruction isn't much of an influence on human nature." +msgstr "" +"库尔特·冯内古特第四本小说的平装本,书中核毁灭对人性并没有太大的影响。(译注:书中核弹的制造者在核弹被扔向人类时正在玩“猫的摇篮”,一种翻花绳游戏)" + #: lang/json/BOOK_from_json.py msgid "scifi novel" msgid_plural "scifi novels" @@ -24891,7 +24802,7 @@ msgstr "这是一本由全球知名科幻作家艾萨克·阿西莫夫所著的 #: lang/json/BOOK_from_json.py msgid "" "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It " -"still has the smell of new books within it's pages." +"still has the smell of new books within its pages." msgstr "" "这是一本几乎全新的《遮蔽的眼睛》(又译《黑暗扫描仪》《心机扫描》《盲区行者》),由著名科幻作家菲利普·K·迪克所著。翻开它的时候,你仍然能闻到新书特有的油墨香气。" @@ -25116,19 +25027,6 @@ msgid "" "Douglas Adams." msgstr "这是一本被翻旧的科幻著作《银河系漫游指南》,由著名科幻作家道格拉斯·亚当斯所著。" -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "体育小说" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "一个小拳击手得到一次与重量级拳击冠军同场竞技的难得机会,并抓住这次机会让自己过上了更好的生活的同时,还让宠物店里的可爱女孩爱上自己的故事。" - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -25187,6 +25085,46 @@ msgid "" "variety." msgstr "一个发生在17世纪的激动人心的故事,讲述了一个被奴役的爱尔兰医生和他的被困同伴如何逃脱并成为如同罗宾汉一样著名的海盗。" +#: lang/json/BOOK_from_json.py +msgid "The Black Freighter" +msgid_plural "copies of The Black Freighter" +msgstr[0] "黑船传奇" + +#. ~ Description for {'str': 'The Black Freighter', 'str_pl': 'copies of The +#. Black Freighter'} +#: lang/json/BOOK_from_json.py +msgid "" +"Who watches the watchmen? Pirate Jenny, that's who! This swashbuckling " +"adventure novel will make you feel swell." +msgstr "守望者受谁人监管?海盗珍妮,就是她!这部充满了传奇历险的冒险小说会让你感到海浪的涌动。" + +#: lang/json/BOOK_from_json.py +msgid "Captain Gosgold and the Sea Rovers of Buzzards Bay" +msgid_plural "copies of The Sea Rovers" +msgstr[0] "戈斯戈尔德船长和秃鹫湾的海盗们" + +#. ~ Description for {'str': 'Captain Gosgold and the Sea Rovers of Buzzards +#. Bay', 'str_pl': 'copies of The Sea Rovers'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lengthy paperback novel describes the ocean exploits of Captain " +"Gosgold. The British consider him an outlaw, but in America he is a " +"patriot." +msgstr "这部长篇平装小说描述了戈斯戈尔德船长的海上冒险之旅。英国人认为他是个亡命之徒,但美国人认为他是个爱国英雄。" + +#: lang/json/BOOK_from_json.py +msgid "The Code of the Buccaneer" +msgid_plural "copies of The Buccaneer" +msgstr[0] "海盗守则" + +#. ~ Description for {'str': 'The Code of the Buccaneer', 'str_pl': 'copies of +#. The Buccaneer'} +#: lang/json/BOOK_from_json.py +msgid "" +"The cover of this paperback pirate story shows a shirtless man and a near " +"shirtless woman. Clearly it is not a dress code." +msgstr "这本平装海盗小说的封面画着一个赤膊上阵的男海盗和一个近乎赤膊上阵的女海盗。显然这本书不是着装守则。" + #: lang/json/BOOK_from_json.py msgid "thriller novel" msgid_plural "thriller novels" @@ -25243,280 +25181,92 @@ msgid "" msgstr "这是小说描写了一个家喻户晓的故事,讲的是一个枪术高超的异乡枪手来到一个偏远城镇,同时受雇于村民以保护他们免受邻近的一伙不法匪徒威胁的故事。" #: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "哲学书" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of -#. philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "一本对道德准则进行深入讨论的书,侧重于认识论和逻辑学。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." -msgstr "尼采所著的《善恶的彼岸》。它的封面已经折角变皱。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "麦克斯·施蒂纳所著的《唯一者及其所有物》。这本是Wolfi Landstreicher的现代译本。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." -msgstr "让-保罗·萨特所著的《存在与虚无》,存在主义的重要著作。" - -#: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "米歇尔·福柯所著的《古典时期疯狂史》的大部头增订版。封面上印着一幅极具视觉冲击力的圆形监狱的图像。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "让-弗朗索瓦·利奥塔所著的《后现代状况》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "雅克·德里达的散文集。这本书的书页已经松散发黄,需要小心存放。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." -msgstr "居伊·德波所著的《景观社会》。这本书的封面上展示着数排成年人满足地盯着一块屏幕的图像。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "" -"路思·伊瑞葛来所著的《An Ethic of Sexual Difference(性别差异的伦理)》和《This Sex Which Is Not " -"One(此性非一)》的合订版。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." -msgstr "" -"让·鲍德里亚所著的《拟像和模拟》。这本书的封面上印着一名男性,两手拿着不同颜色的药丸,图题为“欢迎来到真实的荒漠”。你觉得你好像看过一部这样的电影。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." -" It looks to have been used as a coaster in a past life." -msgstr "让-保罗·萨特所著的《存在主义是一种人道主义》的口袋版。这本书看起来曾经被当作杯托用过。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." -msgstr "彼得·辛格所著的《Practical Ethics(实用伦理学)》,由本地大学的出版社出版。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "一本“Freedom Club(自由俱乐部)”所著的《论工业社会及其未来》的活页影印本。影印前的原书似乎是用打字机撰写的。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an" -" ominous looking metal tube. Provocative." -msgstr "泰德·卡辛斯基所著的《论工业社会及其未来》。这本的封面上印着一个手工制的木盒,里面装有电线和金属管,给人一种不好的预感。极具煽动性。" - -#: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "这是一本有关黑格尔的辩证法的简短读物。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "列宁所著的《国家与革命》。幸好是英文版译本。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "列夫·达维多维奇·托洛茨基所著的《保卫马克思主义》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" -" tag on the back cover. It appears to still be active." -msgstr "艾比·霍夫曼所著的《Steal This Book(偷走这本书)》。书背上有一个防盗标签,看起来仍处于工作状态。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "亨利·大卫·梭罗所著的《湖滨散记》,里面夹着一张干燥压扁的树叶书签。" +msgid "Atwixt a Brace of Cacti" +msgid_plural "Atwixt a Brace of Cactis" +msgstr[0] "在一对仙人掌中间" +#. ~ Description for Atwixt a Brace of Cacti #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "杰梅茵·格里尔所著的《女太监》。目录上面不知道是哪个熊孩子用红蜡笔乱涂一气。" +"A grizzled clodhopper interviews a mess of rangehands, flummoxing longhorns " +"and tenderfoot alike in a flusteration of jawing." +msgstr "一个缠人的乡巴佬的对一帮海盗们的访谈记录,充满了让长角牛和旱鸭子们焦躁不安张嘴困惑不已的各种海盗术语。" #: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "亨利·柏格森所著的《形而上学导论》。" +msgid "Stinky Bart Puts on Starch" +msgid_plural "Stinky Bart Puts on Starchs" +msgstr[0] "恶臭巴特浆上新装" +#. ~ Description for Stinky Bart Puts on Starch #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "" -"雅各·拉冈所著的《The Four Fundamental Concepts of Psychoanalysis(精神分析的四个基本概念)》。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "尼科洛·迪贝尔纳多·代·马基雅维利所著的《君主论》,由昆廷·斯金纳作序。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "Raul Vangeigem所著《The Revolution of Everyday Life(日常生活的革命)》。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" -" cover contains an image of a pelican." -msgstr "赫伯特·马尔库塞所著《论解放》的口袋版。封面上画着一只鹈鹕。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "索伦·奥贝·克尔凯郭尔所著的《非此即彼》。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "柏拉图所著的《地穴寓言》。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "托马斯·霍布斯所著的《利维坦》。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "伊曼努尔·康德所著的《纯粹理性批判》。" +"A local bandit, driven by sadistic impulses, begins offering unlicensed " +"dentistry to brave frontiersmen with few options and fewer teeth." +msgstr "一个当地强盗,在自虐冲动驱使下,开始向勇敢的开拓者们提供无证牙医服务,选项很少而牙齿更少的服务。" #: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "笛卡尔所著的《哲学原理》。" +msgid "Six Beans in the Wheel" +msgid_plural "Six Beans in the Wheels" +msgstr[0] "左轮里的六颗豆" +#. ~ Description for Six Beans in the Wheel #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " -"Science\" by Friederich Nietzsche." -msgstr "弗里德里希·尼采所著《道德谱系学》和《快乐的科学》的合订本。" +"The safety is off in this gun slinging tale of revenge and redemption by " +"acclaimed author El Amor." +msgstr "在这部由著名作家艾尔·阿莫尔撰写的复仇与救赎的西部枪战小说中,保险已经完全打开了。" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." -msgstr "阿尔贝·加缪所著的《西绪弗斯神话》,以及其它散文。封面上画着一个光着膀子的男人和一块巨石。" +msgid "Irons at Calico Queen Annex" +msgid_plural "Irons at Calico Queen Annexs" +msgstr[0] "印花女王镇的枪手们" +#. ~ Description for Irons at Calico Queen Annex #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." -msgstr "索伦·奥贝·克尔凯郭尔所著的《致死的疾病》。书页上贴着许多便利贴。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" -" title, it does not actually appear to be defending terrorism." +"The establishment of a telegraph line into the recently named town of Calico" +" Queen threatens to bring with it the long arm of the law. A trio of " +"enterprising gunfighters hatches a plan to keep Calico Queen wild by looting" +" the supply wagons." msgstr "" -"列夫·达维多维奇·托洛茨基所著的《The Defence of " -"Terrorism(对恐怖主义的辩护)》。虽然标题如此,但是其内容似乎并不是在辩护恐怖主义。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." -msgstr "威廉·戈德温所著的《政治正义论》。这本厚书里面充满了陈旧的用词。" +"刚被命名的印花女王镇上建起了一条新电报线,它所带来联邦法律的长臂可能威胁小镇的自由。三名富有进取心的枪手策划了一桩抢劫计划,通过打劫补给车队来保持印花女王镇的狂野本性。" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this" -" book." -msgstr "鲍勃·布莱克所著的《废除工作与其他文章》。《废除工作》很可能是这本书里面最有名的一篇文章。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" -" like this book has a surprisingly long track record of owners." -msgstr "皮埃尔-约瑟夫·普鲁东所著的《什么是所有权》。看起来这本的所有权改换过不少次。" +msgid "Riot on the Range" +msgid_plural "Riot on the Ranges" +msgstr[0] "牧场暴乱" +#. ~ Description for Riot on the Range #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "彼得·阿列克谢耶维奇·克鲁泡特金亲王所著的《夺取面包》。封面上只印着一个大胡子老哲学家的照片,并没有什么面包。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" -" might have been printed decades before the Cataclysm since the cover is " -"quite weathered." -msgstr "萧沆所著的《诞生之不便》。这本书应该是大灾变前几十年出版的,封面已经饱经风雨。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "阿图尔·叔本华所著的《作为意志和表象的世界》。书上有着一些潦草难解的笔记和涂画。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" -" that the author's real name is Fereidoun M. Esfandiary." -msgstr "" -"FM-2030所著的《UpWingers: A Futurist Manifesto(上翼:未来主义宣言)》。看上去作者的真名好像是Fereidoun " -"M. Esfandiary(费雷登·伊斯凡迪亚里)" +"Best selling author El Amor paints a visceral study in red with his latest " +"western saga: Riot on the Range." +msgstr "畅销书作家艾尔·阿莫尔用他最新的西部传奇小说《牧场暴乱》深入肺腑地描绘出鲜红的西部风土人情。" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "一本《巴斯夏文集》,19世纪法国的古典自由主义理论家弗雷德里克·巴斯夏的大型文集。" +msgid "Vaquero Sun" +msgid_plural "Vaquero Suns" +msgstr[0] "放牛娃的太阳" +#. ~ Description for Vaquero Sun #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." -msgstr "一本《无政府、国家和乌托邦》,罗伯特·诺齐克著,这是现代自由主义最具影响力的著作之一。" +"Western author El Amor relates the story of a dispossessed young man " +"inspired by a heat stroke delusion to pursue justice against an evil land " +"baron." +msgstr "西部小说作家艾尔·阿莫尔讲述了一个被剥夺了权利的年轻人在一次中暑引发的幻觉的鼓舞下向邪恶的地主讨回正义的故事。" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "一本《社会主义》,路德维希·冯·米塞斯著,一部对社会主义的批判性分析著作。" +msgid "The Vendetta Riders" +msgid_plural "The Vendetta Riderss" +msgstr[0] "V字仇杀骑手" +#. ~ Description for The Vendetta Riders #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." -msgstr "一本《共产主义ABC》,尼古拉·布哈林著,这是马列主义早期最具影响力的著作之一。" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." -msgstr "路德维希·冯·米塞斯所著的《反资本主义的心态》。" +"A wild young man, fast on the draw, who thinks he has nothing to lose, falls" +" in with a group of gun runners." +msgstr "一个狂野的年轻人,拔枪很快,认为自己一无所有,和一群同样的持枪骑手一起行动的故事。" #: lang/json/BOOK_from_json.py msgid "phone book" @@ -25579,8 +25329,10 @@ msgstr[0] "牧师日记" #. ~ Description for {'str': "priest's diary", 'str_pl': "priests' diaries"} #: lang/json/BOOK_from_json.py -msgid "A small book filled with journal entries in Latin." -msgstr "一本写满了拉丁语的日记小册子。" +msgid "" +"A small book filled with journal entries in Latin. You can read Latin, " +"right?" +msgstr "一本写满了拉丁语的日记小册子。你会拉丁语的,对吧?" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -25651,19 +25403,6 @@ msgstr[0] "荒野胜景" msgid "A small book detailing 'visions' a prisoner had on death row." msgstr "这是本描述了一位死刑犯在监狱中的\"梦想\"的书。" -#: lang/json/BOOK_from_json.py -msgid "Hávamál" -msgid_plural "copies of Hávamál" -msgstr[0] "北欧史诗天主之言" - -#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of several Old Norse poems. The poems contain " -"proverbs and stories attributed to the god Odin, many transcribed from oral " -"history." -msgstr "一部许多北欧古代史诗的英译本。这些诗中讲述了奥丁之神的箴言和故事,其中很多都是从口述历史中转录出来的。" - #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" @@ -26077,6 +25816,874 @@ msgid "" "believing I could do it. Best regards, Terry.\"" msgstr "这是特里·普拉切特的《魔法的颜色》的第一版。内封面有一张手写的便条,上面写着:\"感谢克里斯相信我能做到。谨致问候,特里。\"" +#: lang/json/BOOK_from_json.py +msgid "The Economicon of Dobbs" +msgid_plural "copies of The Economicon" +msgstr[0] "多布斯的经济学圣经" + +#. ~ Description for {'str': 'The Economicon of Dobbs', 'str_pl': 'copies of +#. The Economicon'} +#: lang/json/BOOK_from_json.py +msgid "" +"These are the prescriptures Pile 18 Disk sg30 File 14. \"Look, small brain " +"of pink earth inside my null-grasping, and she/he receives Logos; and it lay" +" with the Wor.\"" +msgstr "" +"以下条例引自第18堆栈第30磁盘阵列第14文件:“看,在我零值抓取中的粉色地球上的小脑瓜子们,而他/她将被赐予罗格斯(理性/图标);而它将与吾同行。”" + +#: lang/json/BOOK_from_json.py +msgid "The Bobliographon" +msgid_plural "copies of The Bobliographon" +msgstr[0] "鲍勃文献集" + +#. ~ Description for {'str': 'The Bobliographon', 'str_pl': 'copies of The +#. Bobliographon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this cheaply published paperback reads: \"These newly-" +"released SubGenius revelations will SHOCK those who think they know Bob! " +"Unpredictables are not alone and possess amazing hidden powers of their own!" +" In a world without slack, a yeti lust revival saunters about. WARNING: Do" +" not fail to pay full price for this book; JHVH-1's wrath knows some " +"bounds.\"" +msgstr "" +"这本廉价出版的平装本的封底写着:“这些最新发布的对非天才人群的揭秘将会让那些自以为了解鲍勃的人震惊!不可预测的事物并非孤立存在,而且它们自身就拥有着惊人的隐藏力量!在一个没有懈怠的世界里,野人般的欲望重新在世间游荡。警告:不要忘记为这本书付全价" +";JHVH-1的愤怒上有边界。\"" + +#: lang/json/BOOK_from_json.py +msgid "Glimpses of Solomon in Yellow" +msgid_plural "copies of Solomon in Yellow" +msgstr[0] "瞥见黄衣所罗门" + +#. ~ Description for {'str': 'Glimpses of Solomon in Yellow', 'str_pl': +#. 'copies of Solomon in Yellow'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is titled \"Glimpses of Solomon in Yellow; The Initiation " +"Rites of the Starry Wisdom Covenant, by Dr. Enoch Craven.\" It describes " +"not just the investiture of new adherents, but the history and beliefs of " +"the Church of Starry Wisdom. Someone has defaced the sparse citations " +"section by scrawling \"PUPPETS OF ROME!\" over its few pages. The book does" +" not provide any biography for Dr. Craven, let alone academic credentials." +msgstr "" +"这本平装书的标题是《瞥见黄衣所罗门:星慧之约的入会仪式,伊诺·克雷文著》它不仅描述了新信徒的授职仪式,还描述了星之智慧教堂的历史和信仰。有人在其中几页稀疏的引文部分潦草地涂写上了“罗马的木偶!”。这本书没有提供任何关于克雷文博士的人物介绍,更不用说学位证书了。" + +#: lang/json/BOOK_from_json.py +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "哲学书" + +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of +#. philosophy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "一本对道德准则进行深入讨论的书,侧重于认识论和逻辑学。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "尼采所著的《善恶的彼岸》。它的封面已经折角变皱。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "麦克斯·施蒂纳所著的《唯一者及其所有物》。这本是Wolfi Landstreicher的现代译本。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "米歇尔·福柯所著的《古典时期疯狂史》的大部头增订版。封面上印着一幅极具视觉冲击力的圆形监狱的图像。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "让-弗朗索瓦·利奥塔所著的《后现代状况》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "雅克·德里达的散文集。这本书的书页已经松散发黄,需要小心存放。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "居伊·德波所著的《景观社会》。这本书的封面上展示着数排成年人满足地盯着一块屏幕的图像。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "" +"路思·伊瑞葛来所著的《An Ethic of Sexual Difference(性别差异的伦理)》和《This Sex Which Is Not " +"One(此性非一)》的合订版。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." +msgstr "" +"让·鲍德里亚所著的《拟像和模拟》。这本书的封面上印着一名男性,两手拿着不同颜色的药丸,图题为“欢迎来到真实的荒漠”。你觉得你好像看过一部这样的电影。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." +" It looks to have been used as a coaster in a past life." +msgstr "让-保罗·萨特所著的《存在主义是一种人道主义》的口袋版。这本书看起来曾经被当作杯托用过。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "彼得·辛格所著的《Practical Ethics(实用伦理学)》,由本地大学的出版社出版。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "一本“Freedom Club(自由俱乐部)”所著的《论工业社会及其未来》的活页影印本。影印前的原书似乎是用打字机撰写的。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an" +" ominous looking metal tube. Provocative." +msgstr "泰德·卡辛斯基所著的《论工业社会及其未来》。这本的封面上印着一个手工制的木盒,里面装有电线和金属管,给人一种不好的预感。极具煽动性。" + +#: lang/json/BOOK_from_json.py +msgid "This is a small reader on Hegel's Dialectics." +msgstr "这是一本有关黑格尔的辩证法的简短读物。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "列宁所著的《国家与革命》。幸好是英文版译本。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "列夫·达维多维奇·托洛茨基所著的《保卫马克思主义》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" +" tag on the back cover. It appears to still be active." +msgstr "艾比·霍夫曼所著的《Steal This Book(偷走这本书)》。书背上有一个防盗标签,看起来仍处于工作状态。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "亨利·大卫·梭罗所著的《湖滨散记》,里面夹着一张干燥压扁的树叶书签。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "杰梅茵·格里尔所著的《女太监》。目录上面不知道是哪个熊孩子用红蜡笔乱涂一气。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "亨利·柏格森所著的《形而上学导论》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "" +"雅各·拉冈所著的《The Four Fundamental Concepts of Psychoanalysis(精神分析的四个基本概念)》。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "尼科洛·迪贝尔纳多·代·马基雅维利所著的《君主论》,由昆廷·斯金纳作序。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "Raul Vangeigem所著《The Revolution of Everyday Life(日常生活的革命)》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" +" cover contains an image of a pelican." +msgstr "赫伯特·马尔库塞所著《论解放》的口袋版。封面上画着一只鹈鹕。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "索伦·奥贝·克尔凯郭尔所著的《非此即彼》。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "柏拉图所著的《地穴寓言》。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "托马斯·霍布斯所著的《利维坦》。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "伊曼努尔·康德所著的《纯粹理性批判》。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "笛卡尔所著的《哲学原理》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " +"Science\" by Friederich Nietzsche." +msgstr "弗里德里希·尼采所著《道德谱系学》和《快乐的科学》的合订本。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "阿尔贝·加缪所著的《西绪弗斯神话》,以及其它散文。封面上画着一个光着膀子的男人和一块巨石。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "索伦·奥贝·克尔凯郭尔所著的《致死的疾病》。书页上贴着许多便利贴。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" +" title, it does not actually appear to be defending terrorism." +msgstr "" +"列夫·达维多维奇·托洛茨基所著的《The Defence of " +"Terrorism(对恐怖主义的辩护)》。虽然标题如此,但是其内容似乎并不是在辩护恐怖主义。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "威廉·戈德温所著的《政治正义论》。这本厚书里面充满了陈旧的用词。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this" +" book." +msgstr "鲍勃·布莱克所著的《废除工作与其他文章》。《废除工作》很可能是这本书里面最有名的一篇文章。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" +" like this book has a surprisingly long track record of owners." +msgstr "皮埃尔-约瑟夫·普鲁东所著的《什么是所有权》。看起来这本的所有权改换过不少次。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "彼得·阿列克谢耶维奇·克鲁泡特金亲王所著的《夺取面包》。封面上只印着一个大胡子老哲学家的照片,并没有什么面包。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" +" might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "萧沆所著的《诞生之不便》。这本书应该是大灾变前几十年出版的,封面已经饱经风雨。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "阿图尔·叔本华所著的《作为意志和表象的世界》。书上有着一些潦草难解的笔记和涂画。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" +" that the author's real name is Fereidoun M. Esfandiary." +msgstr "" +"FM-2030所著的《UpWingers: A Futurist Manifesto(上翼:未来主义宣言)》。看上去作者的真名好像是Fereidoun " +"M. Esfandiary(费雷登·伊斯凡迪亚里)" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "一本《巴斯夏文集》,19世纪法国的古典自由主义理论家弗雷德里克·巴斯夏的大型文集。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "一本《无政府、国家和乌托邦》,罗伯特·诺齐克著,这是现代自由主义最具影响力的著作之一。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "一本《社会主义》,路德维希·冯·米塞斯著,一部对社会主义的批判性分析著作。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "一本《共产主义ABC》,尼古拉·布哈林著,这是马列主义早期最具影响力的著作之一。" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "路德维希·冯·米塞斯所著的《反资本主义的心态》。" + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "作为形而上学的模态逻辑" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies +#. of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "这本书详细讨论了形而上学的问题,是一部运用了各类逻辑工具来解决现实本质问题的论著。" + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "美学:批判论文集" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': +#. 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works," +" and critical analyses on the subject of beauty." +msgstr "这本精装的论文集提供了一系列美学方面的阅读资料,学术研究和批判分析。" + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "信息哲学" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': +#. 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe" +" and advance semantic investigations." +msgstr "这部大学教材对信息的概念性质和基本原理进行了深入地批判性研究。学生将全面了解常用的用于描述和推进语义分析的概念框架。" + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "存在与虚无" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of +#. Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A" +" key work in the existentialist tradition." +msgstr "一本平装版的《存在与虚无》,让-保罗·萨特著,存在主义的重要著作。" + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "体育小说" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "一个小拳击手得到一次与重量级拳击冠军同场竞技的难得机会,并抓住这次机会让自己过上了更好的生活的同时,还让宠物店里的可爱女孩爱上自己的故事。" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "棒球短打技巧" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The +#. Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating," +" it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" +"你会把这本书误以为是关于派对装饰也情有可原,其实它是一部关于棒球的小说。在最终故事发展到高潮的一场比赛之中,一名年轻球星终于证明了自己有加入联赛的实力。(注:Bunting双关)" + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "达阵特辑" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The +#. Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "在这部引人入胜的橄榄球球迷小说中,一位送披萨的司机决定在周一晚上的比赛中孤注一掷。" + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "奖杯嫉妒" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "这本平装书讲述了一名网球天才开始后悔自己的成功的故事。" + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "半长草" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "这部小说讲述了一名职业运动员变成业余记者的滑稽有趣的冒险故事。" + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "高尔夫杂食家" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The +#. Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "这本精装书是一本短篇小说集,爱情和高尔夫是各个故事中两个经久不衰的常客。" + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "制服男孩" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "这本精装书中讲述了一个联盟小球队的设备管理员如何探索忠诚和怨恨的主题。" + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "便宜球:赢下一场被操纵的比赛" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': +#. 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "《便宜球》讲述了本尼·鲍宾的有趣经历以及他如何不切实际地试图击败财大气粗的奥兰多·奥的真实故事。" + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "夏日的小伙们" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The +#. Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "这本破旧的平装书详细介绍了这只职业体育史上最伟大球队之一的早年棒球生涯。" + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "排球:准备准备好" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': +#. 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up" +" your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "《排球:准备准备好》是一本能够迅速提高你的比赛水平的图解指南书。用全彩照片和图表,你将学习到一切用来主导比赛所需要的训练和技术。" + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "威廉·摩根——排球之父" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', +#. 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" +"这本奇怪的精装书只有98页,其中有十几页还是由颗粒密布的黑白照片组成的。如果你读了这本书,你会了解到排球最初被称为“Mintonette”,还有一些关于它的发明者的传记细节。" + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "传奇自行车骑行" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike +#. Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" +"这部笨重的适合摆在咖啡桌上做装饰的书名为《环绕世界的传奇自行车骑行》。它还提供了大量世界各地的自行车道的细节,除了新英格兰地区。但如果你想现在骑自行车去巴塔哥尼亚,有这本书就够了。" + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "我游故我在" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare +#. Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" +"这本翻译得很糟糕的书的标题应该是拉丁语的“我游泳,故我存在。”这本短小的精装本中提出了“游泳的哲学”,然后有趣地将各种著名的哲学表达纳入游泳运动范畴之中。这本书其实写的不是太糟糕,只是有点奇怪。" + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "同温层:篮球的崛起" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': +#. 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "《同温层:篮球的崛起》记录了在社会持续变革的背景下,职业篮球40年的发展历史。" + +#: lang/json/BOOK_from_json.py +msgid "Anything Can Be Beautiful" +msgid_plural "Anything Can Be Beautifuls" +msgstr[0] "万物皆可美丽" + +#. ~ Description for Anything Can Be Beautiful +#: lang/json/BOOK_from_json.py +msgid "" +"Stylist, designer, and glitter goddess, Tiffynie Blust looks at the world " +"one mantra in mind: anything can be beautiful." +msgstr "蒂芬妮·布洛思,著名造型师,设计师,\"闪耀的女神\",她对待世间万物都基于心中的一个准则:万物皆可美丽。" + +#: lang/json/BOOK_from_json.py +msgid "The Greatest Rooms of the Century" +msgid_plural "The Greatest Rooms of the Centurys" +msgstr[0] "本世纪最棒的房间" + +#. ~ Description for The Greatest Rooms of the Century +#: lang/json/BOOK_from_json.py +msgid "" +"A stunning collection of the best living spaces created and commissioned by " +"the most influential people in interior design." +msgstr "一份由室内设计界最具影响的名师们设计并装修的最佳房间的图片集,房间都美得惊人。" + +#: lang/json/BOOK_from_json.py +msgid "The Hands-On Home" +msgid_plural "The Hands-On Homes" +msgstr[0] "动手在家" + +#. ~ Description for The Hands-On Home +#: lang/json/BOOK_from_json.py +msgid "" +"An ecologically-minded take on modern homemaking, this is a practical guide " +"to maximising your time in the kitchen and beyond." +msgstr "这是一本注重生态的现代家政书,是一本可以让你最大限度地利用厨房内外的时间的实用指南书。" + +#: lang/json/BOOK_from_json.py +msgid "Rooms We Love" +msgid_plural "Rooms We Loves" +msgstr[0] "我们所爱的房间" + +#. ~ Description for Rooms We Love +#: lang/json/BOOK_from_json.py +msgid "" +"This is a guide on how to affordably decorate rooms to suit your " +"personality. In the book, we visit rooms inspired by the needs of each " +"homeowner and will see how they transformed their rooms." +msgstr "" +"这是一本教你如何省钱地装饰出符合自身品味的房间的书籍。在这本书中,我们参观了基于各位房主自身需求所创造出的房间,并将看到他们是如何逐步改造出自己的小屋的。" + +#: lang/json/BOOK_from_json.py +msgid "New York Parties" +msgid_plural "New York Partiess" +msgstr[0] "纽约派对" + +#. ~ Description for New York Parties +#: lang/json/BOOK_from_json.py +msgid "" +"Visit the homes of savvy tastemakers from the worlds of fashion, finance, " +"and design, with this book of lavish photography." +msgstr "用这本这本奢华的摄影照片集,你能参观来自时尚界、金融界和设计界的潮流名家们的家。" + +#: lang/json/BOOK_from_json.py +msgid "Best Signature Outdoor Kitchens" +msgid_plural "Best Signature Outdoor Kitchenss" +msgstr[0] "最佳特色户外厨房" + +#. ~ Description for Best Signature Outdoor Kitchens +#: lang/json/BOOK_from_json.py +msgid "" +"Outdoor space is one of the hottest amenities being considered by new and " +"existing homeowners. This book will show you how to turn any deck, patio, " +"or other outside area into a great place to cook." +msgstr "" +"户外厨房空间是新户主和现有户主们所考虑首选的最热门的配套设施之一。这本书将教你如何把任意户外平台,露台,或其他户外区域转变成一处很棒的烹饪场所。" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Using Plants to Transform Your Home" +msgid_plural "The Art of Using Plants to Transform Your Homes" +msgstr[0] "植物改造家的艺术" + +#. ~ Description for The Art of Using Plants to Transform Your Home +#: lang/json/BOOK_from_json.py +msgid "" +"Bring gorgeous greenery into your life with this delightful guide to " +"decorating your living space with a wide variety of plants. Illustrated " +"examples enable you to easily transform every corner of your interior space." +msgstr "这本令人愉悦的指南书将美丽动人的绿意带入你的生活之中,用各类植物装饰你的生活空间。各种示例图片让你可以轻松改变室内每个角落。" + +#: lang/json/BOOK_from_json.py +msgid "Woman of Color" +msgid_plural "Woman of Colors" +msgstr[0] "有色女性" + +#. ~ Description for Woman of Color +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of essays and advice on style, beauty, and motherhood." +" Part memoir, part lifestyle guide, this book reflects the author's " +"experience growing up as a woman of color in Brooklyn." +msgstr "这是一本关于风格、美貌和母性的散文和建议集。一部分是回忆录,一部分是生活指南,这本书反映了作者作为一位有色人种女性在布鲁克林区成长的经历。" + +#: lang/json/BOOK_from_json.py +msgid "10 Cool Things About Being A Ring Bearer" +msgid_plural "10 Cool Things About Being A Ring Bearers" +msgstr[0] "当捧戒者的十件酷事" + +#. ~ Description for 10 Cool Things About Being A Ring Bearer +#: lang/json/BOOK_from_json.py +msgid "" +"This book is for the delightful little ring bearer in your wedding. The " +"author depicts the responsibility and the honor in being a ring bearer your " +"little angel will cherish." +msgstr "这本书是为你婚礼上可爱的捧戒男孩准备的。作者描述了作为捧戒者的责任和荣誉,希望你的小天使能珍惜它。" + +#: lang/json/BOOK_from_json.py +msgid "How to Raise a Gentleman: A Civilized Guide to Parenting" +msgid_plural "How to Raise a Gentleman: A Civilized Guide to Parentings" +msgstr[0] "绅士养成:文明育儿指南" + +#. ~ Description for How to Raise a Gentleman: A Civilized Guide to Parenting +#: lang/json/BOOK_from_json.py +msgid "" +"A revised edition for parents who hope their little boy children will grow " +"up to be the kind of men who know which fork to use, how to treat others, " +"and generally make their parents proud." +msgstr "这是一本育儿指南书的修订版,为那些希望自家小男孩长大后成为那种知道用哪把叉子、如何待人接物、并经常让父母感到自豪的人的父母们准备的。" + +#: lang/json/BOOK_from_json.py +msgid "" +"International Approaches to Securing Radioactive Sources Against Terrorism" +msgid_plural "" +"International Approaches to Securing Radioactive Sources Against Terrorisms" +msgstr[0] "制止核恐怖行为国际公约" + +#. ~ Description for International Approaches to Securing Radioactive Sources +#. Against Terrorism +#: lang/json/BOOK_from_json.py +msgid "" +"This book presents how to enhance cooperation and assistance between " +"countries in support of International Atomic Energy Agency efforts to secure" +" radioactive sources against the threat of terrorism." +msgstr "这本书介绍了如何加强各国之间的合作和援助,以支持国际原子能机构加强对核原料的防护,使其免受恐怖主义威胁。" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Forensic Psychiatry" +msgid_plural "Principles of Forensic Psychiatrys" +msgstr[0] "法医精神病学原理" + +#. ~ Description for Principles of Forensic Psychiatry +#: lang/json/BOOK_from_json.py +msgid "" +"This text addresses standards in the assessment and treatment of aggression " +"and violence as well as psychological and neuroimaging assessments." +msgstr "本文阐述了对攻击性和暴力的评估标准和治疗手段,以及心理学和神经影像学诊断流程。" + +#: lang/json/BOOK_from_json.py +msgid "The Guide to Reflective Conflict Resolution" +msgid_plural "The Guide to Reflective Conflict Resolutions" +msgstr[0] "冲突解决中的反思性实践指南" + +#. ~ Description for The Guide to Reflective Conflict Resolution +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this hardbound book reads: \"Why should professionals care" +" about reflective practice? How do its principles and methods increase " +"competence? What characteristics distinguish reflective practitioners?\"" +msgstr "这本精装书的封底写道:“为什么专业人士应该关心反思性实践?它的原则和方法如何提高能力?反思性实践者有哪些特点?”" + +#: lang/json/BOOK_from_json.py +msgid "The Oxbridge Handbook of Mood Ailments" +msgid_plural "The Oxbridge Handbook of Mood Ailmentss" +msgstr[0] "情绪疾病牛津剑桥手册" + +#. ~ Description for The Oxbridge Handbook of Mood Ailments +#: lang/json/BOOK_from_json.py +msgid "" +"The Oxbridge Handbook of Mood Ailments provides detailed coverage of the " +"characterization, understanding, and treatment of affective disorders. It " +"provides coverage of unipolar depression, bipolar disorder, and known " +"variants of these illnesses." +msgstr "情绪疾病牛津剑桥手册详细介绍了情感障碍的病情特征、机理研究和治疗方法。书中内容覆盖了单相抑郁症,双相情感障碍,以及这些疾病的已知变种。" + +#: lang/json/BOOK_from_json.py +msgid "Phonological Acquisition and Disorders" +msgid_plural "Phonological Acquisition and Disorderss" +msgstr[0] "语音习得与障碍" + +#. ~ Description for Phonological Acquisition and Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"Studying the phonologies of children with non-organic speech disorders, this" +" volume details the latest findings in optimality theory, phonological " +"acquisition and disorders. It is intended for linguists and psychologists." +msgstr "这本书通过研究非器质性语言障碍儿童的语音,详细介绍了优选学领域关于语音习得和障碍的最新发现。它的读者主要是语言学家和心理学家。" + +#: lang/json/BOOK_from_json.py +msgid "Therapeutic Gardens and Healing Spaces" +msgid_plural "Therapeutic Gardens and Healing Spacess" +msgstr[0] "心理治疗花园和空间" + +#. ~ Description for Therapeutic Gardens and Healing Spaces +#: lang/json/BOOK_from_json.py +msgid "" +"This book addresses how to design therapeutic gardens. It illustrates a " +"variety of landscape designs appropriate for public spaces that promote " +"mental health." +msgstr "这本书教你如何设计心理治疗花园。它介绍了各种适合公共空间的能促进心理健康的景观设计。" + +#: lang/json/BOOK_from_json.py +msgid "Advances in Drug Delivery Systems" +msgid_plural "Advances in Drug Delivery Systemss" +msgstr[0] "药物释放体系进展" + +#. ~ Description for Advances in Drug Delivery Systems +#: lang/json/BOOK_from_json.py +msgid "" +"This softcover reprint covers an array of topics in pharmacology. The " +"physicochemical concepts of the refinement of bioresponsive drug delivery " +"are presented in detail alongside a variety of current approaches employed " +"in the development of zero order release systems." +msgstr "" +"这本软皮再印版书籍涵盖了一系列药理学主题。详细介绍了用生物响应材料改进药物释放系统的物理化学概念,以及目前开发零级释放系统时所采用的各种方法。" + +#: lang/json/BOOK_from_json.py +msgid "Using Art to Treat Eating Disorders" +msgid_plural "Using Art to Treat Eating Disorderss" +msgstr[0] "用艺术治疗饮食失调" + +#. ~ Description for Using Art to Treat Eating Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"This is an introductory guide for those wanting to explore the use of art to" +" address eating disorders. Art therapy is a particularly effective " +"therapeutic intervention, as it allows people to express uncomfortable " +"thoughts and feelings nonverbally." +msgstr "" +"这是一本为那些想探索使用艺术来治疗饮食失调的人准备的介绍性指南。艺术治疗是一种特别有效的心理干预疗法,因为它让人以非语言的方式表达不舒服的想法和感觉。" + +#: lang/json/BOOK_from_json.py +msgid "A Clinical Guide to Video Gamers" +msgid_plural "A Clinical Guide to Video Gamerss" +msgstr[0] "电子游戏玩家临床诊断指南" + +#. ~ Description for A Clinical Guide to Video Gamers +#: lang/json/BOOK_from_json.py +msgid "" +"This scholarly work considers the role that games play in psychological " +"experiences and mental health. Chapters examine the factors that compel " +"individual gamers to select and identify with particular games and " +"characters, as well as the different play styles, genres, and archetypes " +"common in video games." +msgstr "" +"这本学术书研究了电子游戏在心理体验和心理健康中的作用。各章分析了引导玩家选择及依赖特定游戏和角色的心理因素,以及电子游戏中常见的游戏风格、类型和原型。" + +#: lang/json/BOOK_from_json.py +msgid "Paranoia and the History of Madness" +msgid_plural "Paranoia and the History of Madnesss" +msgstr[0] "偏执与精神失常史" + +#. ~ Description for Paranoia and the History of Madness +#: lang/json/BOOK_from_json.py +msgid "" +"This book is an analysis of the use and misuse of paranoia throughout " +"history and in contemporary society. The impact of paranoia on societies is" +" explored in detail." +msgstr "这本书分析了历史和当代社会对偏执狂这一词汇的使用和滥用。同时也对偏执狂对社会的影响进行了详细的探讨。" + +#: lang/json/BOOK_from_json.py +msgid "Psychoanalysis and Colonialism" +msgid_plural "Psychoanalysis and Colonialisms" +msgstr[0] "精神分析与殖民主义" + +#. ~ Description for Psychoanalysis and Colonialism +#: lang/json/BOOK_from_json.py +msgid "" +"Freud referred to women's sexuality as a \"dark continent\" for " +"psychoanalysis, drawing on colonial use of the same phrase to refer to " +"Africa. This book details how the problematic universalism of " +"psychoanalysis led theorists to reject its relevance for postcolonial " +"critique." +msgstr "" +"弗洛伊德将女性性欲称为精神分析的“黑暗大陆”,借鉴了殖民时期用来指代非洲的相同词汇。这本书详细说明了精神分析法中所用的有问题的普世主义是如何导致理论家在后殖民批评时代否定其意义的。" + +#: lang/json/BOOK_from_json.py +msgid "The Psychology of Stalking" +msgid_plural "The Psychology of Stalkings" +msgstr[0] "尾行心理学" + +#. ~ Description for The Psychology of Stalking +#: lang/json/BOOK_from_json.py +msgid "" +"This book explores stalking from social, psychiatric, psychological and " +"behavioral perspectives. Topics include psychiatric diagnoses, offender-" +"victim typologies, cyberstalking, false victimization syndrome, erotomania, " +"domestic violence, the stalking of public figures, and many other aspects of" +" stalking." +msgstr "" +"这本书从社会,精神,心理和行为的角度探讨尾行行为。主题包括精神病学诊断、罪犯-" +"受害者类型分析、网络尾行、伪装受害者症、色情狂、家庭暴力、尾行公众人物以及尾行行为的许多其他方面。" + #: lang/json/BOOK_from_json.py msgid "Tactical Handgun Digest" msgid_plural "issues of Tactical Handgun Digest" @@ -26229,6 +26836,299 @@ msgid "" " a chore." msgstr "一本厚厚的精装书,里面记载了一堆编造传奇故事的技巧。这书信息量很大,在里面找到你想要的内容可不容易。" +#: lang/json/BOOK_from_json.py +msgid "Nail Your Law Firm Interview" +msgid_plural "copies of Nail Your Law Firm Interview" +msgstr[0] "律所面试必过秘籍" + +#. ~ Description for {'str': 'Nail Your Law Firm Interview', 'str_pl': 'copies +#. of Nail Your Law Firm Interview'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lightweight book proclaims itself to be \"the ONLY gold star interview " +"guide for lawyers interviewing in any type of a job interview.\" It was " +"suppsed to help new lawyers find work." +msgstr "这本薄薄的书宣称自己是“市面上所有工作面试类书籍中,律所面试的*唯一*一本金星面试指南”。这本书是面向刚入行的律师的。" + +#: lang/json/BOOK_from_json.py +msgid "holybook abstract" +msgid_plural "holybook abstracts" +msgstr[0] "神学书籍模版" + +#. ~ Description for holybook abstract +#: lang/json/BOOK_from_json.py +msgid "theoretically this isn't a book at all" +msgstr "神学类书籍的模版。" + +#: lang/json/BOOK_from_json.py +msgid "Mycenacean Hymns" +msgid_plural "copies of Mycenacean Hymns" +msgstr[0] "迈锡尼的赞美诗" + +#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of +#. Mycenacean Hymns'} +#: lang/json/BOOK_from_json.py +msgid "" +"A vellum book containing the hymns central to Marloss faith. As the verses " +"lead to each other, the text sings of unity and promised paradise." +msgstr "羊皮纸书,包含了对马洛斯信仰至关重要的赞美诗。这些诗句彼此相通,经文歌颂统一和信仰的天堂。" + +#: lang/json/BOOK_from_json.py +msgid "King James Bible" +msgid_plural "copies of King James Bible" +msgstr[0] "钦定版圣经" + +#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King +#. James Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, which originated in England " +"in the early 1600s." +msgstr "基督教圣经的英文译本之一,最早于十七世纪初由英国国王詹姆斯一世下令翻译出版而成。" + +#: lang/json/BOOK_from_json.py +msgid "Eastern Orthodox Bible" +msgid_plural "copies of Eastern Orthodox Bible" +msgstr[0] "东正教圣经" + +#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of +#. Eastern Orthodox Bible'} +#: lang/json/BOOK_from_json.py +msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." +msgstr "" +"东正教是基督教的分支,主要是指依循由东罗马帝国(又称拜占庭帝国)所流传下来的基督教传统的教会,它是与天主教、新教并立的基督教三大派别之一,这本东正教圣经的内容和天主教圣经有很大不同,基本可以吵起来。" + +#: lang/json/BOOK_from_json.py +msgid "Gideon Bible" +msgid_plural "copies of Gideon Bible" +msgstr[0] "基甸版圣经" + +#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon +#. Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, distributed free of charge by" +" Gideons International." +msgstr "基督教圣经的英文译本之一,由基甸国际基金会免费发行。" + +#: lang/json/BOOK_from_json.py +msgid "The Guru Granth Sahib" +msgid_plural "copies of The Guru Granth Sahib" +msgstr[0] "本初经" + +#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The +#. Guru Granth Sahib'} +#: lang/json/BOOK_from_json.py +msgid "A single-volume copy of the central religious texts of Sikhism." +msgstr "锡克教的核心宗教典籍的单行本。" + +#: lang/json/BOOK_from_json.py +msgid "Hadith" +msgid_plural "copies of Hadith" +msgstr[0] "圣训" + +#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} +#: lang/json/BOOK_from_json.py +msgid "" +"A Muslim religious text containing an account of the sayings and actions of " +"the prophet Muhammad." +msgstr "\"圣训\",阿拉伯语称为\"哈底斯\"(语言)或\"逊奈\"(圣行),是指先知穆罕默德说过的话、做过的事或是圣门弟子说的话或做的事,先知没有反对保持沉默的总称。" + +#: lang/json/BOOK_from_json.py +msgid "Principia Discordia" +msgid_plural "copies of Principia Discordia" +msgstr[0] "纷争原理" + +#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of +#. Principia Discordia'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of Discordianism. It seems to " +"primarily concern chaos, and features a card in the back which informs you " +"that you are now a 'genuine and authorized Pope of Discordia'." +msgstr "" +"收录了混沌教派主要宗教论述的宗教典籍。从头到尾都在说关于混沌的伟大,书背后画着一张卡片,提醒读完书的你已经是一位\"名副其实的官方指定混沌教教皇\"。" + +#: lang/json/BOOK_from_json.py +msgid "The Kojiki" +msgid_plural "copies of The Kojiki" +msgstr[0] "古事记" + +#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} +#: lang/json/BOOK_from_json.py +msgid "" +"The oldest extant chronicle of Japan's myths and history, the stories " +"contained in the Kojiki are part of the inspiration behind Shinto practices." +msgstr "记录日本神话和历史的、现存最古老的编年史书籍,其中包含了古事记故事背后、神道的做法灵感的一部分。" + +#: lang/json/BOOK_from_json.py +msgid "The Book of Mormon" +msgid_plural "copies of The Book of Mormon" +msgstr[0] "摩门之书" + +#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The +#. Book of Mormon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The sacred text of the Latter Day Saint movement of Christianity, originally" +" published in 1830 by Joseph Smith." +msgstr "摩门教(耶稣基督后期圣徒教会)的教义文本,该书最早于1830年由约瑟夫史密斯出版发行。" + +#: lang/json/BOOK_from_json.py +msgid "The Gospel of the Flying Spaghetti Monster" +msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" +msgstr[0] "飞天意面福音" + +#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', +#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of the Church of the Flying Spaghetti " +"Monster. It seems to involve a lot of pirates and some sort of invisible " +"drunken monster made of pasta." +msgstr "一本描写了飞天意面神教的主要信仰的书籍。这本书里面似乎包含了大量有关海盗和某种酗酒的隐身意面怪物的描写。RAmen!" + +#: lang/json/BOOK_from_json.py +msgid "Quran" +msgid_plural "copies of Quran" +msgstr[0] "古兰经" + +#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Muslim book of holy scriptures, with " +"explanatory notes and commentaries to aid in understanding." +msgstr "" +"《古兰经》(或译《可兰经》;意思是\"诵读\",英语:Quran;Koran),是伊斯兰教的最高经典,共有30卷114章6236节。讲述任何一手拿剑一手拿书说服别人的故事。" + +#: lang/json/BOOK_from_json.py +msgid "The Satanic Bible" +msgid_plural "copies of The Satanic Bible" +msgstr[0] "撒旦圣经" + +#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The +#. Satanic Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of essays, observations, and rituals published by Anton LaVey " +"in 1969." +msgstr "安东·拉维1969年出版的一部论文集、评论集和仪式集。" + +#: lang/json/BOOK_from_json.py +msgid "Dianetics" +msgid_plural "copies of Dianetics" +msgstr[0] "戴尼提" + +#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book is the canonical text of Scientology. Written by a science " +"fiction author, it contains self-improvement techniques and musings on " +"psychology called Dianetics." +msgstr "" +"这是一本山达基教(又称科学教、科学神教)的教典,其中介绍了一种被称作“戴尼提”的、自我提升和心灵冥想的技巧。不巧的是,它是由一位科幻作家创作的。" + +#: lang/json/BOOK_from_json.py +msgid "The Book of the SubGenius" +msgid_plural "copies of The Book of the SubGenius" +msgstr[0] "亚圣之书" + +#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of +#. The Book of the SubGenius'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book about the Church of the SubGenius. It seems to involve a salesman " +"named J. R. \"Bob\" Dobbs and a concept called 'slack'." +msgstr "亚圣教会的宗教典籍,这个教会的教义是自由散漫,有点奇怪是吧?如果你知道创立这个宗教的教主是个失败的销售员,你就会明白了。" + +#: lang/json/BOOK_from_json.py +msgid "The Sutras of the Buddha" +msgid_plural "copies of The Sutras of the Buddha" +msgstr[0] "佛说" + +#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of +#. The Sutras of the Buddha'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of discourses attributed to the Buddha and his close disciples." +msgstr "一本佛陀诸弟子与佛陀间的对话合集。" + +#: lang/json/BOOK_from_json.py +msgid "Talmud" +msgid_plural "copies of the Talmud" +msgstr[0] "塔木德" + +#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of the Talmud'} +#: lang/json/BOOK_from_json.py +msgid "" +"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " +"Hebrew Bible with teachings and opinions of thousands of rabbis." +msgstr "" +"一本拉比犹太教的教义文本,《犹太法典》是犹太人的两部法典之一。它是犹太口传律法的集大成,由攸本文米修纳(MISHAN)和注解的戈马拉(GEMARA)两部所构成。类似《圣经》。" + +#: lang/json/BOOK_from_json.py +msgid "Tanakh" +msgid_plural "copies of Tanakh" +msgstr[0] "旧约圣经" + +#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single-volume book containing the complete canon of the Jewish Bible." +msgstr "这本单行本包含了犹太教希伯来圣经的所有经典。" + +#: lang/json/BOOK_from_json.py +msgid "The Tripitaka" +msgid_plural "copies of The Tripitaka" +msgstr[0] "大藏经" + +#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The +#. Tripitaka'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Buddhist writings describing their canons of " +"scriptures." +msgstr "大藏经为佛教经典的总集,简称为藏经,又称为一切经,有多个版本。" + +#: lang/json/BOOK_from_json.py +msgid "The Upanishads" +msgid_plural "copies of The Upanishads" +msgstr[0] "婆罗门奥义书" + +#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The +#. Upanishads'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Hindu writings regarding the nature of reality and " +"describing the character and form of human salvation." +msgstr "吠陀奥义书是印度婆罗门教的教义总集。是用吠陀梵文写作的一些西北印度文献的汇总,是关于对神的诵歌和祷文的文集。" + +#: lang/json/BOOK_from_json.py +msgid "The Four Vedas" +msgid_plural "copies of The Four Vedas" +msgstr[0] "四吠陀" + +#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four +#. Vedas'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single volume containing all four Vedas, which are the oldest scriptures " +"of Hinduism." +msgstr "一部古印度婆罗门教的四部根本圣典的合辑本。又作四韦陀、四围陀,是印度教最古老的经文。主要内容是一大堆赞颂神灵及祈祷祭祀的诗歌。" + +#: lang/json/BOOK_from_json.py +msgid "Hávamál" +msgid_plural "copies of Hávamál" +msgstr[0] "北欧史诗天主之言" + +#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of several Old Norse poems. The poems contain " +"proverbs and stories attributed to the god Odin, many transcribed from oral " +"history." +msgstr "一部许多北欧古代史诗的英译本。这些诗中讲述了奥丁之神的箴言和故事,其中很多都是从口述历史中转录出来的。" + #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" msgid_plural "Duelist's Annuals" @@ -26499,6 +27399,20 @@ msgid "" "professional clothing designer." msgstr "一本厚重的、精装本的书,里面装满了专业服装设计师的大量信息。" +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "苏格兰的缝纫工艺" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of +#. Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "一本翻译自苏格兰盖尔语的书。虽然书中的术语使其读起来很枯燥,但它能提供对苏格兰文化和缝纫技艺的深入解析。" + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -26628,9 +27542,307 @@ msgid "" msgstr "一本摔跤手册,印刷质量很差,草草进行装订后就发行了,但即使如此,你仍能从中学会很多空手格斗方面的技巧。" #: lang/json/BOOK_from_json.py -msgid "readable magazine" -msgid_plural "readable magazines" -msgstr[0] "可读杂志" +msgid "children's book" +msgid_plural "children's books" +msgstr[0] "儿童读物" + +#. ~ Description for {'str': "children's book"} +#: lang/json/BOOK_from_json.py +msgid "" +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the dead walked" +" and the world moved on." +msgstr "一本给小读者看的小书。有着丰富的卡通插画角色和甜蜜的故事,显然来自另一个时间的产物,来自那个死人复生之前的世界,但世界还是在往前走。" + +#: lang/json/BOOK_from_json.py +msgid "book of fairy tales" +msgid_plural "books of fairy tales" +msgstr[0] "精灵传奇" + +#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy +#. tales'} +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of folklore featuring the usual cast of fairies, " +"goblins, and trolls." +msgstr "一本有趣的民间传说故事集,里面有着常见的精灵、地精、巨魔等。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale is about a wolf who eats so much salted meat she becomes " +"trapped in the butcher's cellar." +msgstr "这个童话故事讲的是一只狼吃了太多咸肉,最终被困在屠夫的地窖里。" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this traditional story of beastly intrigue a clever fox convinces an " +"elderly lion to kill a derogatory wolf." +msgstr "在这个传统童话故事中,一只狡猾的狐狸说服一只年长的狮子杀死一只恶毒的狼。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is an illustrated fairy tale book about a conversation between a mouse " +"and a cat." +msgstr "这是一本有插图的童话书,讲述的是老鼠和猫之间的对话。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This illustrated fairy tale relates how a city mouse did visit his cousin in" +" the country, and how each regarded the other's quality of life." +msgstr "这个童话小说讲述了一只城市老鼠拜访他在乡下的表亲的,以及他们如何看待对方的生活质量的故事。" + +#: lang/json/BOOK_from_json.py +msgid "A fable in which the jackal wins the day via clever foolishness." +msgstr "一个童话寓言故事,讲述了一只豺狼如何用自身聪明的愚蠢赢得了胜利。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A slave mistakenly wanders into a lion's den - thus begins a fable which " +"demonstrates mutual dependence regardless of size or status." +msgstr "一个奴隶误打误撞闯进了狮子的巢穴——由此而展开一段寓言故事,其寓意为不论两者大小或地位如何,都有相互依赖的需要。" + +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of stories featuring \"Goldilocks and The Three " +"Bears\" on the cover." +msgstr "一本有趣的童话故事集,封面上写着《金姑娘和三只小熊》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a well illustrated fairy tale about a war between the birds and the " +"beasts, with particulars on the wartime conduct and eventual fate of the " +"bat." +msgstr "这是一个有着不错插图的童话故事书,讲述了鸟类和野兽之间的战争,描述了蝙蝠在战争之中的行为和最终命运。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " +"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" +" page." +msgstr "这本书名为《响尾蛇的复仇》,是切诺基族神话和传说的故事集。标题页上用铅笔手写了\"285D\"。" + +#: lang/json/BOOK_from_json.py +msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" +msgstr "这本童话书中讲述了一个《杰克和豌豆》故事的本地变体。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale book is entitled \"Little Red Cap\". It details a red-" +"cloaked child's various encounters with talking wolves." +msgstr "这本童话书的标题是《小红帽》。它描述了一个穿红斗篷的小女孩与一只会说话的大灰狼的各种遭遇。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of ghost stories warning about the dangers of stealing from the" +" dead." +msgstr "一本关于鬼怪的童话故事集,警告读者从死者身上偷东西的危险。" + +#: lang/json/BOOK_from_json.py +msgid "" +"An Irish fairy tale in which a Celtic poet marries a princess who has been " +"cursed with the head of a pig." +msgstr "一个爱尔兰童话故事,讲述了一个凯尔特诗人娶了一个被诅咒长成猪头的公主。" + +#: lang/json/BOOK_from_json.py +msgid "" +"A book of Italian fairy tales translated into English. The cover features " +"an orange fairy juggling a lemon, a lime, and a tangerine." +msgstr "一本被翻译成英文的意大利童话书。封面上画着一只橙色的仙子正在用一个柠檬、一个酸橙和一个橘子玩杂耍。" + +#: lang/json/BOOK_from_json.py +msgid "A book of fables about people who change into birds." +msgstr "一本关于变成鸟的人的童话书。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This compendium of amusing folk tales about the devil is titled \"Hell's " +"Kettle: Legends of the Devil.\"" +msgstr "一本关于魔鬼的有趣的民间故事集录,标题为《地狱的水壶:魔鬼的传说》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This charming book of Swedish fables is titled, \"The Glass Mountain and the" +" Princess.\"" +msgstr "一本迷人的瑞典童话书,标题为《玻璃山和公主》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of fairy tale stories warning against the consequences " +"of extreme greed." +msgstr "一本童话故事集,警告了读者过度贪婪的下场。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fable book is entitled, \"The Rabbit Herd.\" Inside are woodcut " +"illustrations of a peasant boy playing his flute for a mob of mischievous " +"hares." +msgstr "这本寓言书的题目是《野兔群》。书中画着一幅农家男孩为一群淘气的野兔吹长笛的木版画插图。" + +#: lang/json/BOOK_from_json.py +msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" +msgstr "一本标题为《偷东西的罐子:阿拉伯世界的民间故事》的故事书。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a book of legends collected by Traveller Johnny Cassidy in the " +"1960s." +msgstr "这是一本民间传说故事集,由旅行家约翰尼·卡西迪在20世纪60年代收集并出版。" + +#: lang/json/BOOK_from_json.py +msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" +msgstr "一本格林兄弟的童话书,书名为《夏娃的孩子们》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of fables expands upon the legend of the Seven Sleepers of " +"Ephesus." +msgstr "这本童话书基于艾弗所之七圣童的传说改编扩写而成。" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this fairy tale a strong man frightens an ogre by squeezing water out of " +"a stone." +msgstr "在这个童话故事中,一个强壮的小裁缝把石头里的水挤出来吓唬巨人。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of rustic folk tales bears the title: \"How to Shout Down the " +"Devil.\"" +msgstr "这本乡村民间故事书的标题为《如何大叫来吓跑魔鬼》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " +"fables about logical errors and foolish misjudgements of the Kadambawa men." +msgstr "这本书的标题是《锡兰的乡村民间故事》。它里面包括了一个关于一名来自斯里兰卡卡达姆巴瓦的男人的逻辑错误和愚蠢误判的童话故事。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " +"Stories.\"" +msgstr "这本民间故事书的标题是《一个有丑陋名字的女孩,和其他故事》。" + +#: lang/json/BOOK_from_json.py +msgid "" +"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " +"suitable for small children." +msgstr "标题为《逃走的松饼》的民间童话故事集,适合讲给小孩子听。" + +#: lang/json/BOOK_from_json.py +msgid "The Adorkable Girl" +msgid_plural "The Adorkable Girls" +msgstr[0] "呆萌女孩" + +#. ~ Description for The Adorkable Girl +#: lang/json/BOOK_from_json.py +msgid "" +"When a therapist's daughter transfers to a new school, she decides to change" +" her personality type. As her social life begins to blossom, can she " +"maintain a healthy boundary between her home life and her public persona?" +msgstr "当心理医生的女儿转到新学校时,她决定改变自己的性格类型。当她的社交生活开始蓬勃发展时,她能否继续保持家庭生活和公众形象之间的健康界限呢?" + +#: lang/json/BOOK_from_json.py +msgid "Becoming Jackson" +msgid_plural "Becoming Jacksons" +msgstr[0] "成为杰克逊" + +#. ~ Description for Becoming Jackson +#: lang/json/BOOK_from_json.py +msgid "" +"When Jackson gains the mystical talent to alter his appearance on command, " +"how will he continue to recognize himself in his own mirror?" +msgstr "当杰克逊获得能够改变自身外貌的神秘天赋时,他将如何在镜子中继续认出自己?" + +#: lang/json/BOOK_from_json.py +msgid "Nothing Burned" +msgid_plural "Nothing Burneds" +msgstr[0] "无人烧伤" + +#. ~ Description for Nothing Burned +#: lang/json/BOOK_from_json.py +msgid "" +"A teenage influencer becomes fast friends with someone who may or may not be" +" an actual demon." +msgstr "一位青年意见领袖交到了一个新密友。这个朋友很可能(是/不是)一只真正的恶魔。" + +#: lang/json/BOOK_from_json.py +msgid "High and Low" +msgid_plural "High and Lows" +msgstr[0] "天国与地狱" + +#. ~ Description for High and Low +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of adolescent fiction, a young gemini discovers that the " +"astrology section of his small town newspaper is eerily preminiscent. His " +"efforts to uncover the oracle reveal more than the stars could have " +"predicted." +msgstr "" +"在这本青少年小说中,一位双子座的年轻人发现,他小镇的报纸上的占星学部分充满了可怕的预兆。他努力发掘其中的神启,结果揭开的真相比观星所能预测还要可怕得多。" + +#: lang/json/BOOK_from_json.py +msgid "Fire When You See My Eyes" +msgid_plural "Fire When You See My Eyess" +msgstr[0] "当你看见我眼中之火时" + +#. ~ Description for Fire When You See My Eyes +#: lang/json/BOOK_from_json.py +msgid "" +"In a cataclysmic future, advanced technology gives parents access to video " +"footage of every moment of their teenage children's lives." +msgstr "故事发生在翻天覆地的未来,高度发达的科技让父母可以随时随地通过视频监控他们叛逆期孩子的生活。" + +#: lang/json/BOOK_from_json.py +msgid "Peanut Butter Bruised" +msgid_plural "Peanut Butter Bruiseds" +msgstr[0] "花生酱碰伤了" + +#. ~ Description for Peanut Butter Bruised +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of young adult fiction, a woman raised on food stamps falls in " +"love with a young cook. More importantly, she falls in love with the idea " +"of become a professional chef." +msgstr "在这部青年小说中,一位靠食品券长大的女人爱上了一位年轻的厨师。更重要的是,她爱上了成为一名专业厨师的想法。" + +#: lang/json/BOOK_from_json.py +msgid "Ready When You Are" +msgid_plural "Ready When You Ares" +msgstr[0] "就等你了" + +#. ~ Description for Ready When You Are +#: lang/json/BOOK_from_json.py +msgid "" +"When three teenage girls ditch class to drive cross country together they " +"get a strong dose of life lessons on the road. This work of young adult " +"fiction explores how friendships evolve in early adulthood." +msgstr "三个十几岁的少女们一起逃课去开车巡游全国,她们在一路上被生活上了不少课。这份青年小说深入探讨了友谊如何是在青少年时期发生演变的。" + +#: lang/json/BOOK_from_json.py +msgid "Study of a Boy" +msgid_plural "Study of a Boys" +msgstr[0] "男孩的学习日记" + +#. ~ Description for Study of a Boy +#: lang/json/BOOK_from_json.py +msgid "" +"A high school sophomore's personal journal is stolen and then leaked on " +"social media. When it goes viral he is forced simultaneously to contend " +"with both fame and betrayal." +msgstr "一个高二学生的个人日记被偷,然后被泄露到社交媒体上。当它走红时,他被迫同时与名声和背叛作斗争。" + +#: lang/json/BOOK_from_json.py +msgid "Summer Variables" +msgid_plural "Summer Variabless" +msgstr[0] "夏季变量" + +#. ~ Description for Summer Variables +#: lang/json/BOOK_from_json.py +msgid "" +"In this book written primarily for young adults, a woman's modest summer " +"internship results in an incredible discovery that attracts the attention of" +" unsavory elements." +msgstr "在这本主要为年轻人写的书中,一位少女在参加一次不太重要的暑期实习时有了一次令人难以置信的发现,吸引了一些不良分子的注意。" #: lang/json/BOOK_from_json.py msgid "original copy of Housefly" @@ -26785,160 +27997,6 @@ msgid "" "ancient movie?" msgstr "一本看起来似乎有那么点用,但是里面巨大数量的错误信息使它实际上毫无用处的娱乐书。米·戈是什么玩意?三尖树不是古老B级片的怪物吗?" -#: lang/json/BOOK_from_json.py -msgid "Case #5846, Illegal Gun Modification" -msgid_plural "copies of Case #5846, Illegal Gun Modification" -msgstr[0] "5846号案例,非法枪械改造" - -#. ~ Description for {'str': 'Case #5846, Illegal Gun Modification', 'str_pl': -#. 'copies of Case #5846, Illegal Gun Modification'} -#: lang/json/BOOK_from_json.py -msgid "" -"This file details illegal gun modifications. Maybe you could learn " -"something. At least you don't have to worry about the cops anymore." -msgstr "" -"一份详细介绍了非法改造枪械的方式的文件。你可以从中学到些改造枪械的技巧。\n" -"\"在大灾变前搞到这个应该会招惹牢狱之灾。\"" - -#: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "国际象棋" - -#. ~ Description for chess set -#: lang/json/BOOK_from_json.py -msgid "" -"A wooden box containing all the equipment needed to play a game of chess." -msgstr "一个木箱, 里面装着玩一盘国际象棋所需的整套棋子。" - -#: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "西洋跳棋" - -#. ~ Description for checkers set -#: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." -msgstr "一个木箱, 里面装着玩一盘国际跳棋所需的整套圆形棋子。" - -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" -msgstr[0] "扑克" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "一副包含52张卡牌的扑克牌。" - -#: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" -msgstr[0] "巫术桌游牌" - -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of -#. Sorcery cards'} -#: lang/json/BOOK_from_json.py -msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." -msgstr "一整套用来玩著名\"巫术\"桌游的卡牌。每张卡牌上都画着一张不同怪物的有趣插画。" - -#: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" -msgstr[0] "我画你猜" - -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where one draws an image, and the others attempt to guess what it is." -msgstr "一种游戏,一个人画图,另一个试着猜所画的是什么。" - -#: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" -msgstr[0] "大富翁" - -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players traverse around the board buying property and swindling" -" their friends." -msgstr "一个著名桌面游戏,玩家在棋盘上周游、购买地产、敲诈其他玩家。" - -#: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" -msgstr[0] "变形怪和强盗们" - -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and -#. Bandits'} -#: lang/json/BOOK_from_json.py -msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive" -" the apocalypse while surviving the apocalypse." -msgstr "一个以末日为背景的角色扮演游戏,你可以在大灾变中求生之余假装自己在末日之后求生。" - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" -msgstr[0] "战锤" - -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of fantasy creatures." -msgstr "一个战略游戏,特色是有着许多奇幻生物的各式小人。(注:原文名字与正版不同避免版权纠纷)" - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" -msgstr[0] "战锤20K" - -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of -#. Battlehammer 20k'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." -msgstr "一个战略游戏,特色是有着许多太空外星怪兽小人和各式奇怪的太空陆战队小人。(注:原文名字与正版不同避免版权纠纷)" - -#: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" -msgstr[0] "农场大亨" - -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of -#. Settlers of the Ranch'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game where players build settlements and trade for supplies." -msgstr "一个战略游戏,玩家扮演拓荒者建设营地并交易各种补给。(注:原文名字与卡坦岛不同避免版权纠纷)" - -#: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" -msgstr[0] "战舰" - -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." -msgstr "一种双人游戏,玩家猜测对手放置战舰的位置并试图击毁所有敌方战舰的游戏。" - -#: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" -msgstr[0] "神秘谋杀案" - -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder -#. Mystery'} -#: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." -msgstr "一个玩家试图找出杀害管家的凶手的游戏。" - #: lang/json/BOOK_from_json.py msgid "Black Dragons: Swamp Ruins" msgid_plural "copies of Black Dragons: Swamp Ruins" @@ -27078,71 +28136,33 @@ msgstr "" "-爱你的 F。\"" #: lang/json/BOOK_from_json.py -msgid "The Weapons of Asgard" -msgid_plural "copies of The Weapons of Asgard" -msgstr[0] "阿斯加德之武" +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" +msgstr[0] "在创世之初……只有命令行" -#. ~ Description for {'str': 'The Weapons of Asgard', 'str_pl': 'copies of The -#. Weapons of Asgard'} +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', +#. 'str_pl': 'copies of In the Beginning… Was the Command Line'} #: lang/json/BOOK_from_json.py msgid "" -"This book is about creating replicas of the weapons used by the Norse Gods, " -"such as the well-known Mjölnir. It is well illustrated with lots of " -"pictures." -msgstr "一本关于如何制造北欧神话中神祗武器的复制品的书,例如广为人知的雷神之锤Mjölnir。书中配了大量的插图说明。" +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." +msgstr "一篇尼尔·斯蒂芬森在1999年写的幽默文章,文中把操作系统经销商和汽车经销商拿来做比较。" #: lang/json/BOOK_from_json.py -msgid "Hacking Robots for Fun & Profit" -msgid_plural "copies of Hacking Robots for Fun & Profit" -msgstr[0] "入侵无人机简单学" +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" +msgstr[0] "编译器设计原理" -#. ~ Description for {'str': 'Hacking Robots for Fun & Profit', 'str_pl': -#. 'copies of Hacking Robots for Fun & Profit'} +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': +#. 'copies of Principles of Compiler Design'} #: lang/json/BOOK_from_json.py msgid "" -"A book on illegally obtaining, reprogramming, and modifying robots. It has " -"lots of helpful step-by-step guides and example blueprints." -msgstr "一本关于非法入侵、重新编程和改装机器人的书。它有很多有用的步骤指南和示例蓝图。" - -#: lang/json/BOOK_from_json.py -msgid "Popular Robotics" -msgid_plural "issues of Popular Robotics" -msgstr[0] "大众机器人杂志" - -#. ~ Description for {'str': 'Popular Robotics', 'str_pl': 'issues of Popular -#. Robotics'} -#: lang/json/BOOK_from_json.py -msgid "A magazine about building and altering your own robots." -msgstr "一本关于制造和改装机器人的杂志。" - -#: lang/json/BOOK_from_json.py -msgid "Artillery and Field Gunnery" -msgid_plural "copies of Artillery and Field Gunnery" -msgstr[0] "弹道学及野战炮术" - -#. ~ Description for {'str': 'Artillery and Field Gunnery', 'str_pl': 'copies -#. of Artillery and Field Gunnery'} -#: lang/json/BOOK_from_json.py -msgid "" -"A textbook on the history of modern artillery, with a number of " -"illustrations and excerpts from various field manuals. A competent " -"handloader or mechanic might find additional uses for the more technical " -"parts of the text." -msgstr "一本现代火炮历史的教科书,附有一系列关于不同野战操作的说明和摘要。一个称职的子弹匠或者机械师也许能给这些技术性的文字中找点用途。" - -#: lang/json/BOOK_from_json.py -msgid "Principles of Postmortem Mind Control" -msgid_plural "copies of Principles of Postmortem Mind Control" -msgstr[0] "尸体精神控制原理" - -#. ~ Description for {'str': 'Principles of Postmortem Mind Control', -#. 'str_pl': 'copies of Principles of Postmortem Mind Control'} -#: lang/json/BOOK_from_json.py -msgid "" -"A thick book containing research notes of a mad scientist. It describes " -"various methods of reanimating and controlling the dead. There's a lot of " -"gory details and technical language mixed in, so it's not easy to read." -msgstr "一本满是来自某位疯狂科学家的研究笔记的厚书。书中描述了各种复活和控制死尸的方法。书中有许多细致的描述及专业术语,因此不是很好读。" +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." +msgstr "" +"一本由和阿尔佛雷德·艾侯与杰弗里·乌尔曼于1977年编写的经典计算机教科书。这本书的显著特征是封面的骑士,他手持着LALR语法分析器和语法制导翻译对抗着含有隐喻编译器设计复杂性的绿色巨龙。" #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -28178,6 +29198,16 @@ msgid "" "Prohibition era." msgstr "由杜松子酒和干苦艾酒调制成的鸡尾酒,可以追溯至美国的禁酒令时代。" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "南瓜松饼" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "南瓜做的烤松饼。秋季盛宴时的完美餐点。" + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -28550,6 +29580,7 @@ msgid_plural "large human stomachs" msgstr[0] "大型人胃" #. ~ Description for large human stomach +#. ~ Description for large demihuman stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "大型人型生物的胃囊,令人意外的耐磨。" @@ -28561,6 +29592,7 @@ msgstr[0] "人脂肪块" #. ~ Description for {'str': 'chunk of human fat', 'str_pl': 'chunks of human #. fat'} +#. ~ Description for chunk of demihuman fat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly harvested from a human body." msgstr "一份从人身上切下来的新鲜肥肉块。" @@ -28830,6 +29862,13 @@ msgid "jerk jerky" msgid_plural "jerk jerky" msgstr[0] "人肉干" +#. ~ Conditional name for {'str_sp': 'meat jerky'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal jerky" +msgid_plural "talking animal jerky" +msgstr[0] "半兽人肉干" + #. ~ Conditional name for {'str_sp': 'meat jerky'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -28867,6 +29906,12 @@ msgid "smoked sucker" msgid_plural "smoked sucker" msgstr[0] "熏人肉" +#. ~ Conditional name for smoked meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked Narnian" +msgid_plural "smoked Narnian" +msgstr[0] "熏半兽人肉" + #. ~ Conditional name for smoked meat when COMPONENT_ID matches mutant #. ~ Conditional name for canned meat when COMPONENT_ID matches mutant #. ~ Conditional name for salted meat slice when COMPONENT_ID matches mutant @@ -29282,6 +30327,18 @@ msgid "" "storage and tanning, or eat it if you're desperate enough." msgstr "一张小心翼翼从人类身上剥下并折叠起来的生皮。你可以加工它以方便储存和鞣制,如果你饿疯了也可以就这样吃掉。" +#: lang/json/COMESTIBLE_from_json.py +msgid "raw demihuman skin" +msgid_plural "raw demihuman skins" +msgstr[0] "生半兽人皮" + +#. ~ Description for raw demihuman skin +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A carefully folded raw skin harvested from a demihuman. You can cure it for" +" storage and tanning, or eat it if you're desperate enough." +msgstr "一张小心翼翼从半兽人身上剥下并折叠起来的生皮。你可以加工它以方便储存和鞣制,如果你饿疯了也可以就这样吃掉。" + #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" msgid_plural "raw pelts" @@ -29412,6 +30469,231 @@ msgid "" "blue veins running through it." msgstr "从异界植物上所收获到的干燥而坚硬的树皮状物质。它有点半透明,如果放在光线下,你可以分辨出其中所穿过的闪闪发光的蓝色血管状结构。" +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman stomach" +msgid_plural "demihuman stomachs" +msgstr[0] "半兽人胃" + +#. ~ Description for demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "The stomach of an intelligent demihuman. It is surprisingly durable." +msgstr "半兽人的胃囊,令人意外的耐磨。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "large demihuman stomach" +msgid_plural "large demihuman stomachs" +msgstr[0] "大型半兽人胃" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chunk of demihuman fat" +msgid_plural "chunk of demihuman fats" +msgstr[0] "半兽人脂肪块" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman tallow" +msgid_plural "demihuman tallows" +msgstr[0] "半兽人油" + +#. ~ Description for demihuman tallow +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of cleaned and rendered demihuman fat. It will remain " +"edible for a very long time, and can be used as an ingredient in many foods " +"and projects." +msgstr "一块清洗后熬制的白色半兽人脂肪。可以保存很久并食用,而且在很多食物和物品的制造配方中会用到。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman lard" +msgid_plural "demihuman lards" +msgstr[0] "干炼半兽人油" + +#. ~ Description for demihuman lard +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of dry-rendered demihuman fat. It will remain edible " +"for a very long time, and can be used as an ingredient in many foods and " +"projects." +msgstr "一块干法炼制的白色半兽人脂肪。可以保存很久并食用,而且在很多食物和物品的制造配方中会用到。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman flesh" +msgid_plural "demihuman fleshs" +msgstr[0] "半兽人肉" + +#. ~ Description for demihuman flesh +#: lang/json/COMESTIBLE_from_json.py +msgid "Freshly butchered from a demihuman body." +msgstr "一份新鲜的半兽人肉切片。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked mongrel" +msgid_plural "cooked mongrels" +msgstr[0] "熟半兽人肉" + +#. ~ Description for cooked mongrel +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A freshly cooked slice of something close to being a real person. Tastes " +"like long pig." +msgstr "一份烹熟的半兽人肉片,味道尝起来和“长条猪”一样。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "boiled demihuman stomach" +msgid_plural "boiled demihuman stomachs" +msgstr[0] "水煮半兽人胃" + +#. ~ Description for boiled demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "一个煮熟的半兽人胃,看起来丝毫不能引起食欲。" + +#. ~ Description for {'str': 'boiled demihuman stomach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A small boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "一个煮熟的半兽人胃,看起来丝毫不能引起食欲。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cereal" +msgid_plural "cereal" +msgstr[0] "早餐麦片" + +#. ~ Description for {'str_sp': 'cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A generic box of cereal, you shouldn't see this." +msgstr "一份抽象化的早餐麦片,你不该在游戏里看到它。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace cereal" +msgid_plural "FoodPlace cereal" +msgstr[0] "美食广场早餐麦片" + +#. ~ Description for {'str_sp': 'FoodPlace cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A generic box of FoodPlace brand sugary cereal, you shouldn't see this." +msgstr "一份抽象化的美食广场早餐麦片,你不该在游戏里看到它。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Snicker-Snacks cereal" +msgid_plural "Snicker-Snacks cereal" +msgstr[0] "士力点心麦片" + +#. ~ Description for {'str_sp': 'Snicker-Snacks cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Snicker-Snack cereal. Each tiny \"Snicker-Snack\" is shaped" +" like human food!" +msgstr "美食广场出品的士力点心牌早餐麦片。每份“士力架点心”都看上去和人类食品一样!" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Carpenter Crunch cereal" +msgid_plural "Carpenter Crunch cereal" +msgstr[0] "木匠嘎嘣脆麦片" + +#. ~ Description for {'str_sp': 'Carpenter Crunch cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is FoodPlace brand \"Carpenter Crunch\" cereal with the iconic " +"\"Breakfast Beaver\" mascot on the box. It tastes kind of like nails." +msgstr "美食广场出品的木匠嘎嘣脆牌早餐麦片,盒子上印着标志性的“早餐海狸”吉祥物。尝起来有点像钉子。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Brantastic cereal" +msgid_plural "Brantastic cereal" +msgstr[0] "奇异米糠麦片" + +#. ~ Description for {'str_sp': 'Brantastic cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Brantastic\" cereal. An essential part of a complete Bran" +" breakfast." +msgstr "美食广场出品的奇异米糠牌早餐麦片。全米糠早餐的重要组成部分之一。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Sugar Chomps cereal" +msgid_plural "Sugar Chomps cereal" +msgstr[0] "方糖嚼嚼麦片" + +#. ~ Description for {'str_sp': 'Sugar Chomps cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Sugar Chomps\" cereal. \"Chocolate Frosted Crunchy Sugar " +"Chomps: 8 essential vitamins packed into that rich, fudgy taste!\"" +msgstr "美食广场出品的方糖嚼嚼牌早餐麦片。“裹满巧克力的方糖嚼嚼:8种必须维生素被塞进那丰富而绵软的口味之中!”" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Honey Pellet cereal" +msgid_plural "Honey Pellet cereal" +msgstr[0] "蜂蜜弹丸麦片" + +#. ~ Description for {'str_sp': 'Honey Pellet cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Amorphous Honey Pellet\" cereal. The box promises " +"\"Inconceivable sustenance in tiny morsels of yellow honey.\"" +msgstr "美食广场出品的“无定形蜂蜜弹丸”牌早餐麦片。盒子上印着一份承诺:“一小口黄色的蜂蜜弹丸中包含了难以想象的营养。”" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Fructose Flakes cereal" +msgid_plural "Fructose Flakes" +msgstr[0] "果糖薄碎麦片" + +#. ~ Description for {'str': 'Fructose Flakes cereal', 'str_pl': 'Fructose +#. Flakes'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Fructose Flakes cereal. Fortified with energy enriched " +"FoodSyrup™ that supports life most efficiently." +msgstr "美食广场出品的果糖薄碎牌早餐麦片。经过能量丰富的美食糖浆™增强,高效地支撑起你的每日生活。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodios cereal" +msgid_plural "Foodios cereal" +msgstr[0] "美食晶磨麦片" + +#. ~ Description for {'str_sp': 'Foodios cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace brand \"Foodios\" cereal. Foodios™ are Foodalicious™!" +msgstr "美食广场出品的美食晶磨牌早餐麦片。美食晶磨™超级美食美味™!" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sugary cereal" +msgid_plural "sugary cereals" +msgstr[0] "早餐麦片" + +#. ~ Description for sugary cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sugary breakfast cereal with marshmallows. It takes you back to your " +"childhood." +msgstr "一盒甜甜的早餐麦片,里面有棉花糖。看着它,童年时光浮现在你眼前。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "wheat cereal" +msgid_plural "wheat cereal" +msgstr[0] "早餐燕麦" + +#. ~ Description for {'str_sp': 'wheat cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " +"your heart." +msgstr "一盒小麦与燕麦,保存得非常好,据说对心脏也非常好。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "corn cereal" +msgid_plural "corn cereals" +msgstr[0] "早餐玉米" + +#. ~ Description for corn cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "Plain cornflake cereal. They're not that good, but it beats nothing." +msgstr "一盒早餐玉米片。尝起来不太好,但总比什么都没有强。" + #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "raw milk" msgid_plural "raw milk" @@ -29775,8 +31057,8 @@ msgstr[0] "蔓越莓果汁" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." -msgstr "一份由马萨诸塞州蔓越莓制成的果汁,原汁原味,味道鲜美,营养丰富。" +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." +msgstr "一份由马萨诸塞州蔓越莓制成的果汁,原汁原味。非常酸,但是营养丰富。" #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -30160,6 +31442,70 @@ msgstr[0] "矿泉水" msgid "Fancy mineral water, so fancy it makes you feel fancy just holding it." msgstr "一份从地下深处自然涌出的或者是经人工揭露的、未受污染的纯净矿泉水。" +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "甜咖啡" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" +"曾经在世界末日前是一种早晨仪式,咖啡果经过一系列复杂的除种、烘焙、研磨和调制最终得到的饮品。咖啡比它的对手,茶含有更多的咖啡因。加了甜味剂,口感更佳。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "甜茶" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "一份供全球绅士享用的饮品,通过将滚烫的开水倒入被称作\"山茶科山茶属\"的茶树的叶子中而成。加了甜味剂,口感更佳。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "甜奶茶" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "一份热茶,加入了冷牛奶和甜味剂。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "甜咖啡代用品" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" +"自制的类似咖啡的饮品,由肯塔基咖啡树的果实制成,就和梅斯克瓦基部落一样!实际上它不含咖啡因,而且很苦,但在紧要关头还能用一用。加入了甜味剂,稍稍缓解了苦涩的口感。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "甜牛奶咖啡" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "一种将咖啡,糖混入牛奶中而成的饮品。自1993年起,它就一直是罗德岛州的州立饮品。额外加入了甜味剂,现在甜度更爆表了。" + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -30226,28 +31572,6 @@ msgid "" " honey. This honey won't spoil and is good for your digestion." msgstr "一份由蜜蜂酿造的蜂蜜。这种蜂蜜又被叫做\"森林蜂蜜\",是一种液体状蜂蜜。它不会腐坏变质,而且能帮助消化。" -#: lang/json/COMESTIBLE_from_json.py -msgid "peanut butter" -msgid_plural "peanut butters" -msgstr[0] "花生酱" - -#. ~ Description for peanut butter -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A brown goo that tastes very little like its namesake. It's not bad, but " -"it'll stick to the roof of your mouth." -msgstr "棕色的粘稠物,尝起来没什么花生味。倒不难吃,不过会粘在上牙上。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "imitation peanutbutter" -msgid_plural "imitation peanutbutters" -msgstr[0] "代花生酱" - -#. ~ Description for imitation peanutbutter -#: lang/json/COMESTIBLE_from_json.py -msgid "A thick, nutty brown paste." -msgstr "一种粘稠而富含坚果味的棕色酱料,可做为花生酱的替代品。" - #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" msgid_plural "vinegar" @@ -30329,6 +31653,18 @@ msgid "chicken egg" msgid_plural "chicken eggs" msgstr[0] "鸡蛋" +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" +msgstr[0] "鸟蛋(未受精)" + +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "一枚由禽类下的营养丰富的蛋。这枚蛋还未受精,可能来自附近的农场。" + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" @@ -30746,6 +32082,18 @@ msgid "" "life. Bland, mushy and losing color." msgstr "一团被煮的湿漉漉的水果,在刚煮熟的时候就用罐头封装密封。淡而无味,软成糊状而且失去了原有的色泽。" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "南瓜酵母面包" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "一种金黄色的秋日庆典面包,可以是面包卷或是切片长面包的形状。" + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -31620,28 +32968,6 @@ msgstr "一些焦糖。对你的健康没好处。" msgid "Betcha can't eat just one." msgstr "一份油炸的、一片接着一片的马铃薯片。" -#: lang/json/COMESTIBLE_from_json.py -msgid "sugary cereal" -msgid_plural "sugary cereals" -msgstr[0] "早餐麦片" - -#. ~ Description for sugary cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sugary breakfast cereal with marshmallows. It takes you back to your " -"childhood." -msgstr "一盒甜甜的早餐麦片,里面有棉花糖。看着它,童年时光浮现在你眼前。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "corn cereal" -msgid_plural "corn cereals" -msgstr[0] "早餐玉米" - -#. ~ Description for corn cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "一盒早餐玉米片。尝起来不太好,但总比什么都没有强。" - #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" @@ -31678,6 +33004,13 @@ msgid "niño nachos" msgid_plural "niño nachos" msgstr[0] "niño辣味玉米片" +#. ~ Conditional name for {'str_sp': 'meat nachos'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos" +msgid_plural "nibelung nachos" +msgstr[0] "加半兽人肉辣味玉米片" + #. ~ Conditional name for {'str_sp': 'meat nachos'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -31704,6 +33037,13 @@ msgid "niño nachos with cheese" msgid_plural "niño nachos with cheese" msgstr[0] "niño奶酪辣味玉米片" +#. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos with cheese" +msgid_plural "nibelung nachos with cheese" +msgstr[0] "加半兽人肉奶酪辣味玉米片" + #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when #. COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -31933,6 +33273,12 @@ msgid "raw Mannwurst" msgid_plural "raw Mannwursts" msgstr[0] "生人肉香肠" +#. ~ Conditional name for raw sausage when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "raw killbasa" +msgid_plural "raw killbasas" +msgstr[0] "半兽人香肠" + #. ~ Conditional name for raw sausage when COMPONENT_ID matches mutant #. ~ Conditional name for smoked sausage when COMPONENT_ID matches mutant #. ~ Conditional name for cooked sausage when COMPONENT_ID matches mutant @@ -31960,6 +33306,13 @@ msgid "smoked Mannwurst" msgid_plural "smoked Mannwursts" msgstr[0] "熏人肉香肠" +#. ~ Conditional name for smoked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked killbasa" +msgid_plural "smoked killbasas" +msgstr[0] "半兽人熏香肠" + #. ~ Description for smoked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." @@ -31976,6 +33329,13 @@ msgid "cooked Mannwurst" msgid_plural "cooked Mannwursts" msgstr[0] "熟人肉香肠" +#. ~ Conditional name for cooked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked killbasa" +msgid_plural "cooked killbasas" +msgstr[0] "半兽人熟香肠" + #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." @@ -32002,6 +33362,13 @@ msgid "Mannbrat" msgid_plural "Mannbrats" msgstr[0] "德式人肉肠" +#. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "frankenfurter" +msgid_plural "frankenfurters" +msgstr[0] "半兽人德式香肠" + #. ~ Conditional name for {'str': 'bratwurst'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -32111,6 +33478,13 @@ msgid "cheapskate %s" msgid_plural "cheapskate %s" msgstr[0] "%s(人肉)" +#. ~ Conditional name for currywurst when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "confusing %s" +msgid_plural "confusing %s" +msgstr[0] "半兽人%s" + #. ~ Conditional name for currywurst when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32144,6 +33518,14 @@ msgid "amoral %s" msgid_plural "amoral %s" msgstr[0] "%s(人肉)" +#. ~ Conditional name for {'str': 'aspic'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orwell's %s" +msgid_plural "Orwell's %s" +msgstr[0] "半兽人%s" + #. ~ Description for {'str': 'aspic'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -32239,6 +33621,14 @@ msgid "brat %s" msgid_plural "brat %s" msgstr[0] "%s(人肉)" +#. ~ Conditional name for {'str_sp': 'bologna'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Tumnis %s" +msgid_plural "Tumnis %s" +msgstr[0] "半兽人%s" + #. ~ Conditional name for {'str_sp': 'bologna'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -32317,6 +33707,13 @@ msgid "Mannwurst gravy" msgid_plural "Mannwurst gravies" msgstr[0] "人肉香肠浓情汤" +#. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage +#. gravies'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "killbasa gravy" +msgid_plural "killbasa gravies" +msgstr[0] "半兽人香肠肉汁" + #. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage #. gravies'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32344,6 +33741,14 @@ msgid "prepper %s" msgid_plural "prepper %s" msgstr[0] "%s(人肉)" +#. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orley %s" +msgid_plural "Orley %s" +msgstr[0] "半兽人%s" + #. ~ Conditional name for {'str_sp': 'pemmican'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -32368,9 +33773,16 @@ msgstr[0] "汉堡助手" #. ~ Conditional name for hamburger helper when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgid_plural "hobo helpers" +msgid_plural "hobo helper" msgstr[0] "汉堡\"助手\"" +#. ~ Conditional name for hamburger helper when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "halfling helper" +msgid_plural "halfling helper" +msgstr[0] "半兽人汉堡助手" + #. ~ Conditional name for hamburger helper when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32407,6 +33819,13 @@ msgid "chili con cabron" msgid_plural "chilis con cabron" msgstr[0] "墨西哥辣人酱" +#. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con +#. carne'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "chili con Sindar" +msgid_plural "chilis con Sindar" +msgstr[0] "墨西哥辣半兽人酱" + #. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con #. carne'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32566,8 +33985,14 @@ msgstr[0] "肉派" #. ~ Conditional name for meat pie when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgid_plural "prick pies" -msgstr[0] "肉派(人肉)" +msgid_plural "prick pie" +msgstr[0] "人肉派" + +#. ~ Conditional name for meat pie when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal pie" +msgid_plural "talking animal pie" +msgstr[0] "半兽人肉派" #. ~ Conditional name for meat pie when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32589,8 +34014,14 @@ msgstr[0] "肉香披萨" #. ~ Conditional name for meat pizza when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgid_plural "poser pizzas" -msgstr[0] "肉香披萨(人肉)" +msgid_plural "poser pizza" +msgstr[0] "人肉披萨" + +#. ~ Conditional name for meat pizza when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "protesting pizza" +msgid_plural "protesting pizza" +msgstr[0] "半兽人肉披萨" #. ~ Conditional name for meat pizza when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32643,9 +34074,15 @@ msgstr[0] "罐装肉" #. ~ Conditional name for canned meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" -msgid_plural "soylent slices" +msgid_plural "soylent slice" msgstr[0] "罐装人肉" +#. ~ Conditional name for canned meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient slice" +msgid_plural "sapient slice" +msgstr[0] "罐装半兽人肉" + #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -32661,8 +34098,15 @@ msgstr[0] "腌肉片" #. ~ Conditional name for salted meat slice when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slice" -msgid_plural "salted simpleton slices" -msgstr[0] "腌肉片(人肉)" +msgid_plural "salted simpleton slice" +msgstr[0] "腌人肉片" + +#. ~ Conditional name for salted meat slice when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "salted sapient slice" +msgid_plural "salted sapient slice" +msgstr[0] "腌半兽人肉片" #. ~ Description for salted meat slice #: lang/json/COMESTIBLE_from_json.py @@ -32678,8 +34122,15 @@ msgstr[0] "意式番茄牛肉面" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" -msgid_plural "scoundrel spaghettis" -msgstr[0] "恶棍意面" +msgid_plural "scoundrel spaghetti" +msgstr[0] "人肉意面" + +#. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "speaking spaghetti" +msgid_plural "speaking spaghetti" +msgstr[0] "半兽人意面" #. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when COMPONENT_ID #. matches mutant @@ -32706,6 +34157,13 @@ msgid "Luigi %s" msgid_plural "Luigi %s" msgstr[0] "%s(人肉)" +#. ~ Conditional name for lasagne when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Lab %s" +msgid_plural "Lab %s" +msgstr[0] "%s(半兽人)" + #. ~ Conditional name for lasagne when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32742,6 +34200,14 @@ msgid "chump %s" msgid_plural "chump %s" msgstr[0] "%s(人肉)" +#. ~ Conditional name for cheeseburger when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "elf %s" +msgid_plural "elf %s" +msgstr[0] "%s(半兽人)" + #. ~ Conditional name for cheeseburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32764,8 +34230,14 @@ msgstr[0] "汉堡包" #. ~ Conditional name for hamburger when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgid_plural "bobburgers" -msgstr[0] "\"汉\"堡包" +msgid_plural "bobburger" +msgstr[0] "人肉汉堡包" + +#. ~ Conditional name for hamburger when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "Moreauburger" +msgid_plural "Moreauburger" +msgstr[0] "半兽人汉堡包" #. ~ Conditional name for hamburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32790,6 +34262,12 @@ msgid "manwich" msgid_plural "manwiches" msgstr[0] "仨明治" +#. ~ Conditional name for sloppy joe when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "manfriendwich" +msgid_plural "manfriendwiches" +msgstr[0] "半兽人调羹汉堡" + #. ~ Conditional name for sloppy joe when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32816,6 +34294,13 @@ msgid "tio %s" msgid_plural "tio %s" msgstr[0] "%s(人肉)" +#. ~ Conditional name for taco when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "talking %s" +msgid_plural "talking %s" +msgstr[0] "%s(半兽人)" + #. ~ Conditional name for taco when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32840,9 +34325,16 @@ msgstr[0] "腌肉" #. ~ Conditional name for pickled meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgid_plural "pickled punks" +msgid_plural "pickled punk" msgstr[0] "腌人肉" +#. ~ Conditional name for pickled meat when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "pickled anthro" +msgid_plural "pickled anthro" +msgstr[0] "腌半兽人肉" + #. ~ Description for pickled meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -32862,6 +34354,18 @@ msgid "%s, human" msgid_plural "%s, human" msgstr[0] "%s(人肉)" +#. ~ Conditional name for dehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for rehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for {'str': 'haggis', 'str_pl': 'haggises'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "%s, demihuman" +msgid_plural "%s, demihuman" +msgstr[0] "%s(半兽人)" + #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -33170,6 +34674,11 @@ msgid "caffeine pill" msgid_plural "caffeine pills" msgstr[0] "咖啡因含片" +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "你服用了咖啡因含片。" + #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -33644,8 +35153,9 @@ msgstr[0] "流感疫苗" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." -msgstr "大灾变用于大规模接种、据说提供某种免疫力的流感疫苗,未开封。" +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." +msgstr "一支用于大规模疫苗接种的医用流感疫苗,尚未开封。旨在为出厂时的流感季节中流行的毒株提供免疫。" #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -34198,8 +35708,8 @@ msgstr "你服用了一些胃药。" #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." -msgstr "一罐粘稠的粉红色胃药糖浆,能缓解胃部不适,平息呕吐冲动;带着一个能够拧下的盖子,能当作测量剂量的量杯使用。" +"urges." +msgstr "一罐粘稠的粉红色胃药糖浆,能缓解胃部不适,平息呕吐冲动。" #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" @@ -34403,6 +35913,31 @@ msgid "" "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "一份MRE军用口粮的番茄酱通心粉风味主菜。已经经过辐照消毒,可以安全食用。它已经和外部空气接触,不再保质。" +#: lang/json/COMESTIBLE_from_json.py +msgid "spinach fettuccine entree" +msgid_plural "spinach fettuccine entrees" +msgstr[0] "MRE 主菜(菠菜意大利宽面)" + +#. ~ Description for spinach fettuccine entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The creamy spinach fettuccine entree from an MRE. Sterilized using " +"radiation, so it's safe to eat. Exposed to the atmosphere, it has started " +"to go bad." +msgstr "一份MRE军用口粮的菠菜意大利宽面风味主菜。已经经过辐照消毒,可以安全食用。它已经和外部空气接触,不再保质。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "ratatouille entree" +msgid_plural "ratatouille entrees" +msgstr[0] "MRE 主菜(蔬菜杂烩)" + +#. ~ Description for ratatouille entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The ratatouille entree from an MRE. Sterilized using radiation, so it's " +"safe to eat. Exposed to the atmosphere, it has started to go bad." +msgstr "一份MRE军用口粮的蔬菜杂烩风味主菜。已经经过辐照消毒,可以安全食用。它已经和外部空气接触,不再保质。" + #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" msgid_plural "cheese tortellini entrees" @@ -35355,6 +36890,38 @@ msgstr[0] "山核桃酿" msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." msgstr "美味的山核桃酿。神的饮品。(原文Ambrosia意为神的食物)" +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter" +msgid_plural "peanut butters" +msgstr[0] "花生酱" + +#. ~ Description for peanut butter +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A brown goo that tastes very little like its namesake. It's not bad, but " +"it'll stick to the roof of your mouth." +msgstr "棕色的粘稠物,尝起来没什么花生味。倒不难吃,不过会粘在上牙上。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "imitation peanutbutter" +msgid_plural "imitation peanutbutters" +msgstr[0] "代花生酱" + +#. ~ Description for imitation peanutbutter +#: lang/json/COMESTIBLE_from_json.py +msgid "A thick, nutty brown paste." +msgstr "一种粘稠而富含坚果味的棕色酱料,可做为花生酱的替代品。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter spread" +msgid_plural "peanut butter spreads" +msgstr[0] "花生抹面包酱" + +#. ~ Description for peanut butter spread +#: lang/json/COMESTIBLE_from_json.py +msgid "Processed peanut butter spread.." +msgstr "一份工厂出品的抹面包用的加工花生酱。" + #: lang/json/COMESTIBLE_from_json.py msgid "acorns" msgid_plural "acorns" @@ -35604,12 +37171,13 @@ msgstr[0] "蜂王浆" #. ~ Description for {'str': 'royal jelly', 'str_pl': 'royal jellies'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A translucent hexagonal chunk of wax, filled with dense, milky jelly. " -"Though some hold it as a panacea, it doesn't have any medical benefit. " -"Still, it is delicious, and rich with the most beneficial substances the " +"A translucent hexagonal chunk of wax, filled with dense, milky, bitter and " +"acidic-tasting jelly. Though some hold it as a panacea, it doesn't have any" +" medical benefit. Still it is rich with the most beneficial substances the " "hive can produce." msgstr "" -"一大块涂满了粘稠 、乳白色液体的半透明蜂窝蜡。虽然有些人认为它是灵丹妙药,但它其实没有任何疗效。尽管如此,它还是很美味,富含蜂群能制造的营养物质。" +"一大块涂满了粘稠 " +"、乳白色液体的半透明蜂窝蜡,尝起来有点苦涩和酸味。虽然有些人认为它是灵丹妙药,但它其实没有任何疗效。不过尽管如此它依然富含蜂群能制造的营养物质。" #: lang/json/COMESTIBLE_from_json.py msgid "marloss berry" @@ -35822,6 +37390,16 @@ msgid "" " and is guaranteed 100% edible!" msgstr "美食广场最畅销的产品,美食广场美食™,用真正的食物制成,并保证100%可食用!" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "美食广场合适小吃™" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "真正食品现在被做成能轻松装进你口袋的合适大小!" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -35969,6 +37547,30 @@ msgstr[0] "花蜜" msgid "Some nectar. Seeing this item is a bug." msgstr "一些花蜜。该物品不应该出现在正常游戏中。" +#: lang/json/COMESTIBLE_from_json.py +msgid "tea bag" +msgid_plural "tea bags" +msgstr[0] "茶包" + +#. ~ Description for {'str': 'tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with tea leafs inside. Put it into boiling water to get your " +"cup of tea." +msgstr "一个装满了茶叶的小纸袋。把它丢进一杯开水里就能喝茶了。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "herbal tea bag" +msgid_plural "herbal tea bags" +msgstr[0] "草药茶包" + +#. ~ Description for {'str': 'herbal tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with dried wild herbs inside. Put it into boiling water to " +"make some healthy warm drink." +msgstr "一个装满了干草药的小纸袋。把它丢进一杯开水里就能喝些草药茶了。" + #: lang/json/COMESTIBLE_from_json.py msgid "protein drink" msgid_plural "protein drinks" @@ -35977,8 +37579,15 @@ msgstr[0] "蛋白饮料" #. ~ Conditional name for protein drink when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" -msgid_plural "soylent green drinks" -msgstr[0] "Soylent Green人造蛋白饮料" +msgid_plural "soylent green drink" +msgstr[0] "人肉蛋白饮料" + +#. ~ Conditional name for protein drink when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green drink" +msgid_plural "sapient green drink" +msgstr[0] "半兽人肉蛋白饮料" #. ~ Conditional name for protein drink when COMPONENT_ID matches mutant #. ~ Conditional name for {'str_sp': 'protein powder'} when COMPONENT_ID @@ -36011,6 +37620,13 @@ msgid "soylent green powder" msgid_plural "soylent green powder" msgstr[0] "Soylent Green人造蛋白粉" +#. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green powder" +msgid_plural "sapient green powder" +msgstr[0] "半兽人肉蛋白粉" + #. ~ Description for {'str_sp': 'protein powder'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -36026,15 +37642,16 @@ msgstr[0] "蛋白口粮" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the" -" product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you" -" hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable" +" to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" -"SoyPelusa公司成功地众筹并生产了这种蛋白质棒。普通人只靠这种棒子过活的话,一天三根,大概永远都死不了。在众筹支持者们收到产品后,他们发现了它仅有的一个缺陷:大部分食用者宁愿饿死也受不了这味道。当公司破产之际,存放这些产品的仓库无人问津,这为联邦应急管理局提供了一个绝佳的机会,它接手了这些产品,并用其供应各个紧急避难所。\"现在你手中拿着的就是一段众筹历史的见证。真可谓亦可赛艇。\"" +"SoyPelusa公司成功地众筹并生产了这款现象级的“DaiZoom”牌的蛋白质棒。普通人只靠这种棒子过活的话,一天三根,大概永远都死不了。在众筹支持者们收到产品后,他们发现了它仅有的一个缺陷:大部分食用者宁愿饿死也受不了这味道。当公司破产之际,存放这些产品的仓库无人问津,这为联邦应急管理局提供了一个绝佳的机会,它接手了这些产品,并用其供应各个紧急避难所。\"现在你手中拿着的就是一段众筹历史的见证。真可谓亦可赛艇。\"" #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" @@ -36044,8 +37661,15 @@ msgstr[0] "蛋白混合饮料" #. ~ Conditional name for protein shake when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgid_plural "soylent green shakes" -msgstr[0] "人肉蛋白饮料" +msgid_plural "soylent green shake" +msgstr[0] "人肉蛋白混合饮料" + +#. ~ Conditional name for protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green shake" +msgid_plural "sapient green shake" +msgstr[0] "半兽人肉蛋白混合饮料" #. ~ Description for protein shake #: lang/json/COMESTIBLE_from_json.py @@ -36063,8 +37687,15 @@ msgstr[0] "增强型蛋白混合饮料" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgid_plural "fortified soylent green shakes" -msgstr[0] "增强型人肉蛋白饮料" +msgid_plural "fortified soylent green shake" +msgstr[0] "增强型人肉蛋白混合饮料" + +#. ~ Conditional name for fortified protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "fortified sapient green shake" +msgid_plural "fortified sapient green shake" +msgstr[0] "增强型半兽人肉蛋白混合饮料" #. ~ Description for fortified protein shake #: lang/json/COMESTIBLE_from_json.py @@ -36907,6 +38538,16 @@ msgid "" "fiddle. Delicious when cooked, but consuming raw can cause food poisoning." msgstr "一把未成熟的蕨菜叶子,仍像小提琴头一样蜷曲着。烹饪后味道鲜美,但生吃会引起食物中毒。" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "灯笼椒" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "一个灯笼椒,可以用于烹饪菜肴。" + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" @@ -37027,6 +38668,13 @@ msgid "slob sandwich" msgid_plural "slob sandwiches" msgstr[0] "懒人三明治" +#. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat +#. sandwiches'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "satyr sandwich" +msgid_plural "satyr sandwiches" +msgstr[0] "半兽人三明治" + #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when COMPONENT_ID matches mutant #. ~ Conditional name for meat soup when COMPONENT_ID matches mutant @@ -37923,6 +39571,21 @@ msgstr "一些洋甘菊种子。" msgid "chamomile" msgstr "洋甘菊" +#: lang/json/COMESTIBLE_from_json.py +msgid "spurge seeds" +msgid_plural "spurge seeds" +msgstr[0] "大戟花种子" + +#. ~ Description for {'str_sp': 'spurge seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some spurge seeds." +msgstr "一些大戟花种子。" + +#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py +msgid "spurge" +msgid_plural "spurges" +msgstr[0] "大戟" + #: lang/json/COMESTIBLE_from_json.py msgid "popcorn seeds" msgid_plural "popcorn seeds" @@ -37953,6 +39616,16 @@ msgstr[0] "芥末种子" msgid "Some mustard seeds. Could be ground into mustard powder." msgstr "一些芥末种子。可以磨成粉末状。" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "灯笼椒种子" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "一些灯笼椒种子。" + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -37968,6 +39641,13 @@ msgid "bone broth" msgid_plural "bone broths" msgstr[0] "炖骨汤" +#. ~ Conditional name for bone broth when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "demihuman %s" +msgid_plural "demihuman %s" +msgstr[0] "半兽人%s" + #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." @@ -37991,8 +39671,14 @@ msgstr[0] "肉汤" #. ~ Conditional name for meat soup when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgid_plural "sap soups" -msgstr[0] "浓情人肉汤" +msgid_plural "sap soup" +msgstr[0] "人肉汤" + +#. ~ Conditional name for meat soup when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "goblin soup" +msgid_plural "goblin soup" +msgstr[0] "半兽人肉汤" #. ~ Description for meat soup #: lang/json/COMESTIBLE_from_json.py @@ -38223,8 +39909,8 @@ msgstr[0] "野生药草" #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " -"purslane, fireweed, and burdock." -msgstr "一小堆可口的野生草药,包含紫罗兰,黄蟑,薄荷,苜蓿,马齿苋,柳兰草与牛蒡等。" +"purslane, and fireweed." +msgstr "一小堆可口的野生草药,包含紫罗兰,黄蟑,薄荷,苜蓿,马齿苋,柳兰草等。" #: lang/json/COMESTIBLE_from_json.py msgid "soy sauce" @@ -38253,6 +39939,18 @@ msgstr[0] "芥末粉" msgid "A fragnant yellow powder. Not edible in this form." msgstr "一种有香气的黄色粉末。还不能食用。" +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "人工甜味剂" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "甜的,是糖吗?不,它是带有苦甜的人工甜味剂。不含任何卡路里,不用担心。" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" @@ -38796,16 +40494,16 @@ msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "用油煎过的蕨菜。软嫩而美味。" #: lang/json/COMESTIBLE_from_json.py -msgid "wheat cereal" -msgid_plural "wheat cereals" -msgstr[0] "早餐燕麦" +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" +msgstr[0] "炖灯笼椒" -#. ~ Description for wheat cereal +#. ~ Description for {'str': 'cooked bell pepper'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " -"your heart." -msgstr "一盒小麦与燕麦,保存得非常好,据说对心脏也非常好。" +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds" +" are removed." +msgstr "一份去核并煮熟的灯笼椒。去掉籽之后吃起来更美味。" #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py @@ -39009,7 +40707,6 @@ msgid_plural "granola" msgstr[0] "格兰诺拉燕麦卷" #. ~ Description for {'str_sp': 'granola'} -#. ~ Description for gluten free granola #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " @@ -39616,6 +41313,11 @@ msgid "pachycephalosaurus egg" msgid_plural "pachycephalosaurus eggs" msgstr[0] "厚头龙蛋" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "弯龙蛋" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -39626,6 +41328,11 @@ msgid "tyrannosaurus egg" msgid_plural "tyrannosaurus eggs" msgstr[0] "霸王龙蛋" +#: lang/json/COMESTIBLE_from_json.py +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" +msgstr[0] "阿尔伯塔龙蛋" + #: lang/json/COMESTIBLE_from_json.py msgid "triceratops egg" msgid_plural "triceratops eggs" @@ -39641,6 +41348,11 @@ msgid "ankylosaurus egg" msgid_plural "ankylosaurus eggs" msgstr[0] "甲龙蛋" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "角鼻龙蛋" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -40123,827 +41835,868 @@ msgid "" "see this? We will not permit you to join us while we are modded out." msgstr "吾等不应存在在这一时空,聪明的小小人类哟,汝是用了调试模式吗,在当前模组加载设置下,吾等是不能允许汝加入的。" -#: lang/json/COMESTIBLE_from_json.py -msgid "necrotic head" -msgid_plural "necrotic heads" -msgstr[0] "坏死之颅" - -#. ~ Description for necrotic head -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"The severed head of a zombie necromancer. Its eyes still roll in its head " -"and its jaws snap menacingly." -msgstr "死灵法尸被砍下的头颅。它的眼睛仍旧在头颅中四处张望,它的大口仍旧呲牙咧嘴四处攀咬。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "mutagenic glob" -msgid_plural "mutagenic globs" -msgstr[0] "诱变胶" - -#. ~ Description for mutagenic glob -#: lang/json/COMESTIBLE_from_json.py -msgid "A gelatinous glob of mutagen." -msgstr "一团胶状的诱变剂。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "honey" -msgid_plural "honey" -msgstr[0] "蜂蜜" - -#. ~ Description for {'str_sp': 'honey'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Honey, that stuff bees make." -msgstr "一些蜂蜜,蜜蜂酿制的蜜。" - #: lang/json/COMESTIBLE_from_json.py msgid "TEST pine nuts" msgid_plural "TEST pine nuts" msgstr[0] "测试用松籽" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fish sandwich" -msgid_plural "gluten free fish sandwiches" -msgstr[0] "无麸质鱼肉三明治" - -#. ~ Description for {'str': 'gluten free fish sandwich', 'str_pl': 'gluten -#. free fish sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free and a delicious fish sandwich." -msgstr "" -"一块不含麸质的美味的鱼肉三明治。\n" -"\"在21世纪初,无麸质饮食法掀起欧美饮食界潮流,被部分人坚称是减肥健身的最佳主食。\"" +msgid "test bitter almonds" +msgid_plural "test bitter almonds" +msgstr[0] "测试用苦扁桃仁" +#. ~ Description for {'str_sp': 'test bitter almonds'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable sandwich" -msgid_plural "gluten free vegetable sandwiches" -msgstr[0] "无麸质蔬菜三明治" +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when" +" eaten raw." +msgstr "一种含有微量氢氰酸的扁桃仁,生吃可能中毒。" -#. ~ Description for {'str': 'gluten free vegetable sandwich', 'str_pl': -#. 'gluten free vegetable sandwiches'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluen free bread and vegetables, that's it." -msgstr "一块将蔬菜夹在无麸质面包片之间的三明治,仅此而已。" +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" +msgstr[0] "测试用迷幻肉豆蔻" +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free granola" -msgid_plural "gluten free granolas" -msgstr[0] "无麸质格兰诺拉燕麦卷" +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." +msgstr "高剂量的肉豆蔻可以引起幻觉和兴奋,同时也会产生许多令人讨厌的副作用。" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat sandwich" -msgid_plural "gluten free meat sandwiches" -msgstr[0] "无麸质火腿三明治" +msgid "test apple" +msgid_plural "test apples" +msgstr[0] "测试用苹果" -#. ~ Description for {'str': 'gluten free meat sandwich', 'str_pl': 'gluten -#. free meat sandwiches'} +#. ~ Description for {'str': 'test apple'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free bread and meat, that's it." -msgstr "一块将火腿夹在无麸质面包片之间的三明治,仅此而已。" +msgid "Test apple. May contain worms, but tastes delicious!" +msgstr "测试用苹果。可能含有虫子,但味道鲜美!" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free peanut butter sandwich" -msgid_plural "gluten free peanut butter sandwiches" -msgstr[0] "无麸质花生酱三明治" +msgid "test liquid" +msgid_plural "test liquid" +msgstr[0] "测试用液体" -#. ~ Description for {'str': 'gluten free peanut butter sandwich', 'str_pl': -#. 'gluten free peanut butter sandwiches'} +#. ~ Description for {'str_sp': 'test liquid'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some peanut butter smothered between two pieces of gluten free bread. Not " -"very filling and will stick to the roof of your mouth like glue." -msgstr "一块将花生酱涂抹在两片无麸质面包片之间的三明治。不太管饱,并且黏黏的花生酱会将你的嘴巴像用胶水一样粘上。" +"No clue what it's made of, but it's definitely liquid. Only for testing, do" +" not drink!" +msgstr "某种液体形式的神秘物质。只作测试,不要喝下!" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&J sandwich" -msgid_plural "gluten free PB&J sandwiches" -msgstr[0] "无麸质花生酱果酱三明治" +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" +msgstr[0] "测试用网球酒原汁" -#. ~ Description for {'str': 'gluten free PB&J sandwich', 'str_pl': 'gluten -#. free PB&J sandwiches'} +#. ~ Description for tennis ball wine must #: lang/json/COMESTIBLE_from_json.py msgid "" -"A delicious peanut butter and jelly gluten free sandwich. It reminds you of" -" the times your mother would make you lunch." -msgstr "一块不含麸质的美味的花生酱果酱三明治,它让人会想起母亲为孩子准备午餐的时光。" +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." +msgstr "未发酵的网球酒。一种由捣碎的网球煮制成的有弹性的饮料。" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&H sandwich" -msgid_plural "gluten free PB&H sandwiches" -msgstr[0] "无麸质花生酱蜂蜜三明治" +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" +msgstr[0] "测试用网球酒" -#. ~ Description for {'str': 'gluten free PB&H sandwich', 'str_pl': 'gluten -#. free PB&H sandwiches'} +#. ~ Description for {'str_sp': 'test tennis ball wine'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some damned fool put honey on this peanut butter sandwich, who in their " -"right mind- oh wait this is pretty good. Gluten free too!" -msgstr "" -"一份将蜂蜜涂抹在两片无麸质面包片的花生酱三明治,简单的加工却让本身单调的花生酱变得美味起来。\n" -"\"哪个傻瓜把蜂蜜抹在花生酱三明治上面……等等,真香。\"" +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." +msgstr "由发酵的网球汁制成的廉价酒。尝起来就像它名字听起来一样。" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&M sandwich" -msgid_plural "gluten free PB&M sandwiches" -msgstr[0] "无麸质花生酱枫糖三明治" +msgid "test chewing gum" +msgid_plural "test chewing gum" +msgstr[0] "测试用口香糖" -#. ~ Description for {'str': 'gluten free PB&M sandwich', 'str_pl': 'gluten -#. free PB&M sandwiches'} +#. ~ Description for {'str_sp': 'test chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Who knew you could mix maple syrup and peanut butter to create yet another " -"different gluten free sandwich?" -msgstr "一个使用无麸质面包片,将枫糖浆和花生黄油混合创造出的全新口味三明治。" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." +msgstr "带有奇异兴奋和解渴效果的蓝莓味口香糖。" #: lang/json/COMESTIBLE_from_json.py -msgid "lactose free hickory nut ambrosia" -msgid_plural "lactose free hickory nut ambrosias" -msgstr[0] "无乳糖山胡桃酿" +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" +msgstr[0] "测试用变异拇指" -#. ~ Description for lactose free hickory nut ambrosia +#. ~ Description for {'str': 'test mutated thumb'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " -"made with an alternative to cows milk." -msgstr "一份用代乳制成的美味山核桃酿,神的饮品。" +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." +msgstr "变异的人类拇指,丧心病狂的人才去吃,吃了后会恶心,并且导致DNA突变。" -#. ~ Description for cornmeal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"You think this is cornflour… or rice flour… Or something else. However, it" -" certainly is not wheat flour! It is useful for baking though." -msgstr "看上去像一份玉米粉……或者大米粉……或者其他什么粉。但它肯定不是小麦粉!它可以被用来烘培成各类食物。" +#: lang/json/CONTAINER_from_json.py +msgid "small metal tank" +msgid_plural "small metal tanks" +msgstr[0] "小型金属罐" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free johnnycake" -msgid_plural "gluten free johnnycakes" -msgstr[0] "无麸质玉米烤饼" +#. ~ Description for small metal tank +#: lang/json/CONTAINER_from_json.py +msgid "A small metal tank for holding gas or liquids. Useful for crafting." +msgstr "一只用来装液体或气体的小型金属罐,可用于制造其他东西。" -#. ~ Description for gluten free johnnycake -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"We all crave for cake sometimes. This is not perfect, but it is a tasty and" -" nutritious gluten free fried bread treat. " -msgstr "我们会时常想吃点烤面饼。玉米面粉或许无法代替小麦粉,但它确是一种兼具味道与营养的无麩质油炸面食。" +#: lang/json/ENGINE_from_json.py +msgid "internal combustion engine" +msgid_plural "internal combustion engines" +msgstr[0] "内燃机" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pancake" -msgid_plural "gluten free fruit pancakes" -msgstr[0] "无麸质水果馅饼" +#: lang/json/ENGINE_from_json.py +msgid "base diesel engine" +msgid_plural "base diesel engines" +msgstr[0] "基础柴油引擎" -#. ~ Description for {'str': 'gluten free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "用枫糖浆做的松软又美味的无麸质馅饼,加了水果之后更加健康和香甜。" +#: lang/json/ENGINE_from_json.py +msgid "base gasoline engine" +msgid_plural "base gasoline engines" +msgstr[0] "基础汽油引擎" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free fruit pancake" -msgid_plural "lactose free fruit pancakes" -msgstr[0] "无乳糖水果馅饼" +#: lang/json/ENGINE_from_json.py +msgid "base steam engine" +msgid_plural "base steam engines" +msgstr[0] "基础蒸汽引擎" -#. ~ Description for {'str': 'lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#: lang/json/ENGINE_from_json.py +msgid "1-cylinder engine" +msgid_plural "1-cylinder engines" +msgstr[0] "单缸引擎" + +#. ~ Description for {'str': '1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A single-cylinder 4-stroke combustion engine." +msgstr "一个单缸四冲程内燃机。" + +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgid_plural "large 1-cylinder engines" +msgstr[0] "大型单缸引擎" + +#. ~ Description for {'str': 'large 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious lactose free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "用枫糖浆做的松软又美味的无乳糖馅饼,加了水果之后更加健康和香甜。" +"A powerful high-compression single-cylinder 4-stroke combustion engine." +msgstr "一个功率强劲的高压单缸四冲程内燃机。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit pancake" -msgid_plural "gluten free lactose free fruit pancakes" -msgstr[0] "无麸质无乳糖水果馅饼" +#: lang/json/ENGINE_from_json.py +msgid "small 1-cylinder engine" +msgid_plural "small 1-cylinder engines" +msgstr[0] "小型单缸引擎" -#. ~ Description for {'str': 'gluten free lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small single-cylinder 2-stroke combustion engine." +msgstr "一个单缸双冲程内燃机。" + +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" +msgstr[0] "轻型航空燃油引擎" + +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious pancakes made out of the only things you can still eat." -" But at least it has real maple syrup, made sweeter and healthier with the " -"addition of wholesome fruit." -msgstr "用你仅能吃的东西做成的馅饼,至少它加了真正的枫糖,混合水果之后更加香甜与健康。" +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." +msgstr "一台气冷水平对置四缸内燃引擎,额定功率为150马力。常用于轻型飞机。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate pancake" -msgid_plural "gluten free chocolate pancakes" -msgstr[0] "无麸质巧克力馅饼" +#: lang/json/ENGINE_from_json.py +msgid "Inline-4 engine" +msgid_plural "Inline-4 engines" +msgstr[0] "四缸引擎" -#. ~ Description for {'str': 'gluten free chocolate pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'Inline-4 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small, yet powerful 4-cylinder combustion engine." +msgstr "一个体积小功率大的四缸内燃机。" + +#: lang/json/ENGINE_from_json.py +msgid "I6 diesel engine" +msgid_plural "I6 diesel engines" +msgstr[0] "六缸直列柴油引擎" + +#. ~ Description for {'str': 'I6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful straight-6 diesel engine." +msgstr "一个大功率的六缸直列柴油内燃机" + +#: lang/json/ENGINE_from_json.py +msgid "V-twin engine" +msgid_plural "V-twin engines" +msgstr[0] "双缸引擎" + +#. ~ Description for {'str': 'V-twin engine'} +#: lang/json/ENGINE_from_json.py +msgid "A 2-cylinder 4-stroke combustion engine." +msgstr "一个双缸四冲程内燃机。" + +#: lang/json/ENGINE_from_json.py +msgid "V6 engine" +msgid_plural "V6 engines" +msgstr[0] "六缸引擎" + +#. ~ Description for {'str': 'V6 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder combustion engine." +msgstr "一个大功率的6缸内燃机" + +#: lang/json/ENGINE_from_json.py +msgid "V6 diesel engine" +msgid_plural "V6 diesel engines" +msgstr[0] "六缸柴油引擎" + +#. ~ Description for {'str': 'V6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder diesel engine." +msgstr "一个大功率的六缸柴油内燃机。" + +#: lang/json/ENGINE_from_json.py +msgid "V8 engine" +msgid_plural "V8 engines" +msgstr[0] "八缸引擎" + +#. ~ Description for {'str': 'V8 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A large and very powerful 8-cylinder combustion engine." +msgstr "一个体积和功率一样强大的8缸内燃机。" + +#: lang/json/ENGINE_from_json.py +msgid "V8 diesel engine" +msgid_plural "V8 diesel engines" +msgstr[0] "八缸柴油引擎" + +#. ~ Description for {'str': 'V8 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 8-cylinder diesel engine." +msgstr "一个大功率的八缸柴油内燃机。" + +#: lang/json/ENGINE_from_json.py +msgid "V12 engine" +msgid_plural "V12 engines" +msgstr[0] "十二缸引擎" + +#. ~ Description for {'str': 'V12 engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, with " -"delicious chocolate baked right in." -msgstr "松软的美味无麸质烤饼浇上货真价实的枫糖浆,更不用提那饼皮下香气扑鼻的巧克力。" +"A massive and extremely powerful V12 engine, usually built into high end " +"sports cars." +msgstr "一台巨大而强劲的十二缸引擎,一般用于高端跑车。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free French toast" -msgid_plural "gluten free French toasts" -msgstr[0] "无麸质法式烤面包" +#: lang/json/ENGINE_from_json.py +msgid "V12 diesel engine" +msgid_plural "V12 diesel engines" +msgstr[0] "十二缸柴油引擎" -#. ~ Description for {'str': 'gluten free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'V12 diesel engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a milk and egg mixture then fried." -msgstr "切片的无麸质面包浸过牛奶和蛋的混合物之后炸成。" +"A massive and extremely powerful V12 engine, usually built into heavy " +"trucks." +msgstr "一台巨大而强劲的十二缸引擎,一般用于重型卡车。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free French toast" -msgid_plural "gluten free lactose free French toasts" -msgstr[0] "无麸质无乳糖法式烤面包" +#: lang/json/ENGINE_from_json.py +msgid "makeshift steam engine" +msgid_plural "makeshift steam engines" +msgstr[0] "简易蒸汽引擎" -#. ~ Description for {'str': 'gluten free lactose free French toast'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'makeshift steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Slices of gluten free bread dipped in a lactose free milk and egg mixture " -"then fried. You never thought it was possible, but now you truly feel like " -"a post millennial." -msgstr "切片的无麸质面包浸过代乳和蛋的混合物之后炸成。你从没想过这玩意真能做出来,不过现在你感觉自己就像一名真正的00后了。" +"A small, primitive, steam engine. An integrated boiler burns coal to heat " +"water into steam, driving a reciprocating shaft. A condenser recaptures the" +" water, making this a closed cycle system." +msgstr "一台小型自制蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free biscuit" -msgid_plural "gluten free biscuits" -msgstr[0] "无麸质饼干" +#: lang/json/ENGINE_from_json.py +msgid "small steam engine" +msgid_plural "small steam engines" +msgstr[0] "小型蒸汽引擎" -#. ~ Description for gluten free biscuit -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Delicious and filling, this home made gluten free biscuit is good, and good " -"for you!" -msgstr "美味又管饱,这些自制的无麸质饼干非常棒,对你而言。" +"A small steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condenser recaptures the water, " +"making this a closed cycle system." +msgstr "一台小型蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pie" -msgid_plural "gluten free fruit pies" -msgstr[0] "无麸质水果派" +#: lang/json/ENGINE_from_json.py +msgid "medium steam engine" +msgid_plural "medium steam engines" +msgstr[0] "中型蒸汽引擎" -#. ~ Description for gluten free fruit pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a sweet fruit filling." -msgstr "一个塞满了香甜水果的无麸质烤派,非常美味且营养丰富。" +#. ~ Description for {'str': 'medium steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A medium-sized steam engine. An integrated boiler burns coal to heat water " +"into steam, driving a reciprocating shaft. A condenser recaptures the " +"water, making this a closed cycle system." +msgstr "一台中型蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pie" -msgid_plural "gluten free vegetable pies" -msgstr[0] "无麸质蔬菜派" +#: lang/json/ENGINE_from_json.py +msgid "1350 hp gas turbine engine" +msgid_plural "1350 hp gas turbine engines" +msgstr[0] "燃气涡轮发动机(1350马力)" -#. ~ Description for gluten free vegetable pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious vegetable filling." -msgstr "一个塞满了可口蔬菜的无麸质烤派,非常美味。" +#. ~ Description for {'str': '1350 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A gas turbine engine, usually used for military vehicles. Known for its " +"high rate of fuel consumption." +msgstr "一种燃气涡轮发动机,通常用于军用车辆。以耗油率高而闻名。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pie" -msgid_plural "gluten free meat pies" -msgstr[0] "无麸质肉派" +#: lang/json/ENGINE_from_json.py +msgid "1900 hp gas turbine engine" +msgid_plural "1900 hp gas turbine engines" +msgstr[0] "燃气涡轮发动机(1900马力)" -#. ~ Description for gluten free meat pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious meat filling." -msgstr "一个美味的、满是肉的无麸质烤派,香气四溢。" +#. ~ Description for {'str': '1900 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large gas turbine engine, usually used for military helicopters. Known " +"for its high rate of fuel consumption." +msgstr "一种大型燃气涡轮发动机,通常用于军用直升机。以耗油率高而闻名。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free maple pie" -msgid_plural "gluten free maple pies" -msgstr[0] "无麸质枫糖派" +#: lang/json/ENGINE_from_json.py +msgid "6000 hp gas turbine engine" +msgid_plural "6000 hp gas turbine engines" +msgstr[0] "燃气涡轮发动机(6000马力)" -#. ~ Description for gluten free maple pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A sweet and delicious baked gluten free pie with pure maple syrup." -msgstr "一块香甜可口的无麸质烤派,加了纯净的枫树糖浆烘烤制成。" +#. ~ Description for {'str': '6000 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " +"high rate of fuel consumption." +msgstr "一种大型的燃气涡轮发动机,用于为V-22鱼鹰提供动力。以耗油率高而闻名。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pizza" -msgid_plural "gluten free vegetable pizzas" -msgstr[0] "无麸质蔬菜披萨" +#: lang/json/ENGINE_from_json.py +msgid "large steam engine" +msgid_plural "large steam engines" +msgstr[0] "大型蒸汽引擎" -#. ~ Description for gluten free vegetable pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " -"crust. Its smell brings back great memories." -msgstr "一份无麸质蔬菜披萨,涂有美味番茄酱和蓬松面包片。它的气味让我想起从前美好的时光。" +"A large steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "一台大型蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese pizza" -msgid_plural "gluten free cheese pizzas" -msgstr[0] "无麸质奶酪披萨" +#: lang/json/ENGINE_from_json.py +msgid "huge steam engine" +msgid_plural "huge steam engines" +msgstr[0] "巨型蒸汽引擎" -#. ~ Description for gluten free cheese pizza -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free pizza with molten cheese on top." -msgstr "一份铺满融化奶酪的无麸质美味披萨。" +#. ~ Description for {'str': 'huge steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "一台巨型蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pizza" -msgid_plural "gluten free meat pizzas" -msgstr[0] "无麸质肉香披萨" +#: lang/json/ENGINE_from_json.py +msgid "small steam turbine" +msgid_plural "small steam turbines" +msgstr[0] "小型蒸汽涡轮机" -#. ~ Description for gluten free meat pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A meat gluten free pizza, for all the carnivores out there. Chock full of " -"minced meat and heavily seasoned." -msgstr "一份无麸质加肉披萨,肉食者们的最爱,加入了大量切碎的肉并配以浓郁的酱料。" +"A small steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "一台小型蒸汽涡轮机。一个内置锅炉燃烧木炭将水加热变成蒸汽,驱动旋转涡轮机。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheeseburger" -msgid_plural "gluten free cheeseburgers" -msgstr[0] "无麸质奶酪汉堡包" +#: lang/json/ENGINE_from_json.py +msgid "medium steam turbine" +msgid_plural "medium steam turbines" +msgstr[0] "中型蒸汽涡轮机" -#. ~ Description for gluten free cheeseburger -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of minced meat and cheese with condiments. The apex " -"of pre-Cataclysm culinary achievement." -msgstr "这个无麸质三明治里塞满了美味的碎肉、奶酪和调料。这是大灾变前烹饪工艺的巅峰之作。" +"A medium sized steam turbine. An integrated boiler burns coal to heat water" +" into steam, driving a spinning turbine. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "一台中型蒸汽涡轮机。一个内置锅炉燃烧木炭将水加热变成蒸汽,驱动旋转涡轮机。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free hamburger" -msgid_plural "gluten free hamburgers" -msgstr[0] "无麸质汉堡包" +#: lang/json/ENGINE_from_json.py +msgid "large steam turbine" +msgid_plural "large steam turbines" +msgstr[0] "大型蒸汽涡轮机" -#. ~ Description for gluten free hamburger -#: lang/json/COMESTIBLE_from_json.py -msgid "A gluten free sandwich of minced meat with condiments." -msgstr "一份填充碎肉并洒满调料的美味无麸质三明治。" +#. ~ Description for {'str': 'large steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A large steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "一台大型蒸汽涡轮机。一个内置锅炉燃烧木炭将水加热变成蒸汽,驱动旋转涡轮机。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sloppy joe" -msgid_plural "gluten free sloppy joes" -msgstr[0] "无麸质调羹汉堡" +#: lang/json/ENGINE_from_json.py +msgid "huge steam turbine" +msgid_plural "huge steam turbines" +msgstr[0] "巨型蒸汽涡轮机" -#. ~ Description for gluten free sloppy joe -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'huge steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich, consisting of ground meat and tomato sauce served on" -" a hamburger bun." -msgstr "一个馅料由肉糜和番茄酱组成的无麸质汉堡包。" +"A huge steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "一台巨型蒸汽涡轮机。一个内置锅炉燃烧木炭将水加热变成蒸汽,驱动旋转涡轮机。一个冷凝器回收冷却水,构成一个闭环系统。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free BLT" -msgid_plural "gluten free BLTs" -msgstr[0] "无麸质培根生菜番茄三明治" +#: lang/json/GENERIC_from_json.py +msgid "fetid goop" +msgid_plural "fetid goops" +msgstr[0] "恶臭黏液" -#. ~ Description for gluten free BLT -#: lang/json/COMESTIBLE_from_json.py -msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." -msgstr "一份烤无麸质面包中夹有熏肉、生菜和番茄的三明治。" +#. ~ Description for {'str': 'fetid goop'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A foul smelling goop. It has a disgusting texture and a powerful smell that" +" overrides every other smell around it." +msgstr "一团散发着恶臭的黏液。它有一种令人作呕的质感和强烈刺激的臭味,这臭味能够盖过四周所有其他气味。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sweetbread" -msgid_plural "gluten free sweetbreads" -msgstr[0] "无麸质法式杂碎" +#: lang/json/GENERIC_from_json.py +msgid "limestone shard" +msgid_plural "limestone shards" +msgstr[0] "石灰片" -#. ~ Description for {'str': 'gluten free sweetbread'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'limestone shard'} +#: lang/json/GENERIC_from_json.py msgid "" -"Delicious and tender organ meats. First boiled, then gluten free breaded " -"crumbs added and fried. They have interesting flavor and unparalleled " -"texture." -msgstr "一些美味嫩滑的内脏肉。首先焯水,然后加入无麸质面包屑再油炸。做出来肉香诱人,吃入口质感分明。" +"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" +" alkaline properties may yet find some use." +msgstr "一小片石灰岩。非常脆弱,无法作为武器,但是它的碱性化学属性也许能有点用处。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese sandwich" -msgid_plural "gluten free cheese sandwiches" -msgstr[0] "无麸质奶酪三明治" +#: lang/json/GENERIC_from_json.py +msgid "rock salt" +msgid_plural "rock salt" +msgstr[0] "岩盐" -#. ~ Description for {'str': 'gluten free cheese sandwich', 'str_pl': 'gluten -#. free cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A simple gluten free cheese sandwich." -msgstr "就是无麸质面包加奶酪。" +#. ~ Description for {'str_sp': 'rock salt'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of rock salt crystals. Could be refined into table salt." +msgstr "一大把岩盐结晶。可以被提炼为食盐。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free grilled cheese sandwich" -msgid_plural "gluten free grilled cheese sandwiches" -msgstr[0] "无麸质烤奶酪三明治" +#: lang/json/GENERIC_from_json.py +msgid "rhodonite" +msgid_plural "rhodonite" +msgstr[0] "蔷薇辉石" -#. ~ Description for {'str': 'gluten free grilled cheese sandwich', 'str_pl': -#. 'gluten free grilled cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'rhodonite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A delicious gluten free grilled cheese sandwich, because everything is " -"better with melted cheese." -msgstr "烤过的无麸质面包制成的奶酪三明治,奶酪融化了就是好啊。" +"A chunk of rhodonite. It has manganese dioxide covering and going through " +"it in veins, which can be obtained using a chisel." +msgstr "一大块蔷薇辉石。二氧化锰纹路覆盖和贯通其中,可以用凿子采集。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free deluxe sandwich" -msgid_plural "gluten free deluxe sandwiches" -msgstr[0] "无麸质特级三明治" +#: lang/json/GENERIC_from_json.py +msgid "zincite" +msgid_plural "zincite" +msgstr[0] "红锌矿" -#. ~ Description for {'str': 'gluten free deluxe sandwich', 'str_pl': 'gluten -#. free deluxe sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str_sp': 'zincite'} +#: lang/json/GENERIC_from_json.py msgid "" -"A gluten free sandwich of meat, vegetables, and cheese with condiments. " -"Tasty and nutritious!" -msgstr "这个无麸质三明治里塞满了美味的碎肉、奶酪和调料。灾前烹饪工艺的巅峰之作。" +"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " +"reduction with a source of carbon." +msgstr "一大块红锌矿,可以被提炼成氧化锌,再用碳来还原成锌。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cucumber sandwich" -msgid_plural "gluten free cucumber sandwiches" -msgstr[0] "无麸质黄瓜三明治" +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" +msgstr[0] "钚" -#. ~ Description for {'str': 'gluten free cucumber sandwich', 'str_pl': -#. 'gluten free cucumber sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py msgid "" -"A refreshing gluten free cucumber sandwich. Not very filling, but quite " -"tasty." -msgstr "新鲜的无麸质面包制成的黄瓜三明治。不是很填肚子,但很美味。" +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." +msgstr "一些固态钚块。如果你不想被辐射的话,你应该远离它。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free jam sandwich" -msgid_plural "gluten free jam sandwiches" -msgstr[0] "无麸质果酱三明治" - -#. ~ Description for {'str': 'gluten free jam sandwich', 'str_pl': 'gluten -#. free jam sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free jam sandwich." -msgstr "美味的无麸质果酱三明治。" +#: lang/json/GENERIC_from_json.py +msgid "hickory root" +msgid_plural "hickory roots" +msgstr[0] "山核桃根" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free honey sandwich" -msgid_plural "gluten free honey sandwiches" -msgstr[0] "无麸质蜂蜜三明治" +#. ~ Description for {'str': 'hickory root'} +#: lang/json/GENERIC_from_json.py +msgid "A root from a hickory tree. It has an earthy smell." +msgstr "山核桃树的根,尚带着泥土的芬芳。" -#. ~ Description for {'str': 'gluten free honey sandwich', 'str_pl': 'gluten -#. free honey sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free honey sandwich." -msgstr "美味的无麸质蜂蜜三明治。" +#: lang/json/GENERIC_from_json.py +msgid "hickory nuts" +msgid_plural "hickory nuts" +msgstr[0] "山核桃" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free boring sandwich" -msgid_plural "gluten free boring sandwiches" -msgstr[0] "无麸质单调三明治" +#. ~ Description for {'str_sp': 'hickory nuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hickory tree, still in their shell." +msgstr "一把山核桃,还没去壳。" -#. ~ Description for {'str': 'gluten free boring sandwich', 'str_pl': 'gluten -#. free boring sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A simple gluten free sauce sandwich. Not very filling but beats eating just" -" the bread… especially if it is the wrong type of bread!" -msgstr "单一调味酱的无麸质三明治。比起面包夹面包好得多。特别是当那些面包还有麸质的时候……" +#: lang/json/GENERIC_from_json.py +msgid "pecans" +msgid_plural "pecans" +msgstr[0] "美洲山核桃" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free waffle" -msgid_plural "gluten free waffles" -msgstr[0] "无麸质华夫饼" +#. ~ Description for {'str_sp': 'pecans'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pecan tree, still in their shell." +msgstr "一把美洲山核桃,山核桃的亚种,还没去壳。" -#. ~ Description for gluten free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free waffle. It's basically a pancake in hashtag form." -msgstr "无麸质华夫饼。它基本上是一个夹心烤饼干。" +#: lang/json/GENERIC_from_json.py +msgid "pistachios" +msgid_plural "pistachios" +msgstr[0] "开心果" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free waffle" -msgid_plural "lactose free waffles" -msgstr[0] "无乳糖华夫饼" +#. ~ Description for {'str_sp': 'pistachios'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pistachio tree, still in their shell." +msgstr "一把开心果,还没去壳。" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Lactose free waffle. It's basically a pancake in hashtag form." -msgstr "无乳糖华夫饼。它基本上是一个夹心烤饼干。" +#: lang/json/GENERIC_from_json.py +msgid "almonds" +msgid_plural "almonds" +msgstr[0] "扁桃仁" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Gluten free and lactose free waffle. It's basically a pancake in hashtag " -"form." -msgstr "无麸质无乳糖华夫饼。它基本上是一个夹心烤饼干。" +#. ~ Description for {'str_sp': 'almonds'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from an almond tree, still in their shell." +msgstr "一把扁桃仁,还没去壳。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit waffle" -msgid_plural "gluten free fruit waffles" -msgstr[0] "无麸质水果华夫饼" +#: lang/json/GENERIC_from_json.py +msgid "peanuts" +msgid_plural "peanuts" +msgstr[0] "花生" -#. ~ Description for gluten free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "松脆可口的无麸质华夫饼浇上枫糖浆,搭配水果,变得更甜、更健康。" +#. ~ Description for {'str_sp': 'peanuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a peanut bush, still in their shell." +msgstr "一把花生,还没去壳。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit waffle" -msgid_plural "gluten free lactose free fruit waffles" -msgstr[0] "无麸质无乳糖水果华夫饼" +#: lang/json/GENERIC_from_json.py +msgid "hazelnuts" +msgid_plural "hazelnuts" +msgstr[0] "榛子" -#. ~ Description for gluten free lactose free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free and lactose free waffles with real maple " -"syrup, made sweeter and healthier with the addition of wholesome fruit." -msgstr "松脆可口的无麸质无乳糖华夫饼浇上枫糖浆,搭配水果,变得更甜、更健康。" +#. ~ Description for {'str_sp': 'hazelnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hazelnut tree, still in their shell." +msgstr "一把榛子,还没去壳。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate waffle" -msgid_plural "gluten free chocolate waffles" -msgstr[0] "无麸质巧克力华夫饼" +#: lang/json/GENERIC_from_json.py +msgid "chestnuts" +msgid_plural "chestnuts" +msgstr[0] "栗子" -#. ~ Description for gluten free chocolate waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, with " -"delicious chocolate baked right in." -msgstr "香脆美味的无麸质华夫饼浇上货真价实的枫糖浆,更不用提那饼皮下香气扑鼻的巧克力。" +#. ~ Description for {'str_sp': 'chestnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a chestnut tree, still in their shell." +msgstr "一把栗子,还没去壳。" -#: lang/json/COMESTIBLE_from_json.py -msgid "rice milk" -msgid_plural "rice milk" -msgstr[0] "米浆" +#: lang/json/GENERIC_from_json.py +msgid "walnuts" +msgid_plural "walnuts" +msgstr[0] "核桃" -#. ~ Description for {'str_sp': 'rice milk'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " -"rapidly." -msgstr "比真正的牛奶要甜,尝起来很像香草味雪糕,很快就会变质。" +#. ~ Description for {'str_sp': 'walnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a walnut tree, still in their shell." +msgstr "一把核桃,还没去壳。" -#: lang/json/COMESTIBLE_from_json.py -msgid "coconut water" -msgid_plural "coconut water" -msgstr[0] "椰子水" +#: lang/json/GENERIC_from_json.py +msgid "steel grille" +msgid_plural "steel grilles" +msgstr[0] "钢制格栅" -#. ~ Description for {'str_sp': 'coconut water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'steel grille'} +#: lang/json/GENERIC_from_json.py msgid "" -"Coconut milk, with water added to make it go further. Tastes ok though. " -"Spoils rapidly." -msgstr "椰奶冲了水让它变得更清淡些,但尝起来还行,很快就会变质。" +"This is a metal grille. It can be used as a framework for making a chemical" +" catalyst." +msgstr "一个金属格栅。它可以用作制造化学催化剂的支撑框架。" -#: lang/json/COMESTIBLE_from_json.py -msgid "jarred coconut milk" -msgid_plural "jarred coconut milk" -msgstr[0] "罐装椰奶" +#: lang/json/GENERIC_from_json.py +msgid "cobalt-60 pellet" +msgid_plural "cobalt-60 pellets" +msgstr[0] "钴-60 颗粒" -#. ~ Description for {'str_sp': 'jarred coconut milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'cobalt-60 pellet'} +#: lang/json/GENERIC_from_json.py msgid "" -"This deliciously rich coconut cream is a more concentrated, thicker version " -"of the coconut milk." -msgstr "这美味而油腻的椰奶是将椰子汁浓缩得更浓稠的版本。" +"Radioactive material that used to be a part of some nuclear industry " +"equipment. You are yet to find some use for it." +msgstr "放射性物质,曾经是核工业设备的一部分。不过你还没有找到这玩意儿的用途。 " -#: lang/json/COMESTIBLE_from_json.py -msgid "rice flour" -msgid_plural "rice flour" -msgstr[0] "米粉" +#: lang/json/GENERIC_from_json.py +msgid "sandbag" +msgid_plural "sandbags" +msgstr[0] "沙包" -#. ~ Description for {'str_sp': 'rice flour'} -#: lang/json/COMESTIBLE_from_json.py -msgid "This rice flour is useful for baking." -msgstr "用米磨成的粉,可以用来做成面包。" +#. ~ Description for {'str': 'sandbag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a canvas sack filled with sand. It can be used to construct simple " +"barricades." +msgstr "装满沙子的帆布袋,可以用来建造简单的路障。" -#: lang/json/COMESTIBLE_from_json.py -msgid "revival serum" -msgid_plural "revival serums" -msgstr[0] "复活血清" +#: lang/json/GENERIC_from_json.py +msgid "earthbag" +msgid_plural "earthbags" +msgstr[0] "土包" -#. ~ Description for revival serum -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'earthbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"A potent drug, necessary when performing a revival operation on larger " -"animals (including humans). It induces a violent allergic reactions in " -"living organisms, so using it on yourself is a REALLY bad idea." -msgstr "一种强效药剂,是复活大型动物(包括人类)的复活仪式的必需品。它会使得活体器官产生严重排异反应,所以对自己使用是个非常糟糕的主意。" +"This is a canvas sack filled with soil. It can be used to construct simple " +"barricades." +msgstr " 装满土的帆布袋,可以用来建造简单的路障。 " -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "2.5L canteen" msgid_plural "2.5L canteens" msgstr[0] "大水壶" #. ~ Description for {'str': '2.5L canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "一个带有背带的大塑料水壶,能够储存2.5升液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "30 gallon barrel" msgid_plural "30 gallon barrels" msgstr[0] "30加仑桶" #. ~ Description for {'str': '30 gallon barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "一个巨大的塑料桶,有着可以重新密封的盖子。" -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" msgid_plural "steel drums (100L)" msgstr[0] "钢制油罐(100升)" #. ~ Description for {'str': 'steel drum (100L)', 'str_pl': 'steel drums #. (100L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge steel barrel with a resealable lid." msgstr "一个巨大的钢制油桶,有着可以重新密封的盖子。" -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" msgid_plural "steel drums (200L)" msgstr[0] "钢制油罐(200升)" #. ~ Description for {'str': 'steel drum (200L)', 'str_pl': 'steel drums #. (200L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "一个超级巨大的钢制油桶,有着可以重新密封的盖子。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas sack" msgid_plural "canvas sacks" msgstr[0] "帆布袋" #. ~ Description for {'str': 'canvas sack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "" "一个大而结实的帆布袋。\n" "\"扛着这个感受漫漫回家路。\"" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas bag" msgid_plural "canvas bags" msgstr[0] "帆布包" #. ~ Description for {'str': 'canvas bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "帆布做的小袋子,用来装草药最好。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bag" msgid_plural "plastic bags" msgstr[0] "塑料袋" #. ~ Description for {'str': 'plastic bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "一个有着开口的小塑料袋。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "zipper bag" msgid_plural "zipper bags" msgstr[0] "拉链袋" #. ~ Description for {'str': 'zipper bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_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 +#: lang/json/GENERIC_from_json.py msgid "body bag" msgid_plural "body bags" msgstr[0] "运尸袋" #. ~ Description for {'str': 'body bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large, human size, rectangular bag made of strong plastic, with a zipper " "in the middle. Used to hold a dead body." msgstr "一个人类大小的条形袋,由坚固的塑料制成,中间有拉链。用来装尸体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "IV bag" msgid_plural "IV bags" msgstr[0] "输液袋" #. ~ Description for {'str': 'IV bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "一个小型密封塑料袋,装着用于静脉注射的液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass bottle" msgid_plural "glass bottles" msgstr[0] "玻璃瓶" #. ~ Description for {'str': 'glass bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "可再密封的玻璃瓶,能储存750毫升的液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bottle" msgid_plural "plastic bottles" msgstr[0] "塑料瓶" #. ~ Description for {'str': 'plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "可再密封的塑料瓶,能储存500毫升液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condiment bottle" msgid_plural "condiment bottles" msgstr[0] "调味料瓶" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An inverted plastic bottle for condiments. Still sealed from factory, " "preserves content from rot until opened." msgstr "一个装调味品的塑料瓶。还是出厂密封的状态,在被打开前能够一直保护其中内容物不腐烂。" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An inverted plastic bottle for condiments." msgstr "一个装调味品的塑料瓶。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small plastic bottle" msgid_plural "small plastic bottles" msgstr[0] "小塑料瓶" #. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "可再密封的塑料瓶,能储存250毫升液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large plastic bottle" msgid_plural "large plastic bottles" msgstr[0] "大塑料瓶" #. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." msgstr "一个能够容纳两升的塑料瓶,可以装很多汽水,或者就以后而言,开水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay bowl" msgid_plural "clay bowls" msgstr[0] "陶碗" #. ~ Description for {'str': 'clay bowl'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A clay bowl with a waterproofed hide lid. Can be used as a container or as " "a tool. Holds 250 ml of liquid." msgstr "用防水兽皮密封的陶碗,可以作为容器或工具。能储存250毫升的液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "pack" msgid_plural "packs" msgstr[0] "烟盒" #. ~ Description for {'str': 'pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." msgstr "外科医生的警告:吸烟导致肺癌,心脏病,肺气肿和妊娠并发症。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" msgstr[0] "小纸盒" #. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "小纸板盒。尺寸不大于一英寸。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" msgstr[0] "纸板盒" #. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "结实的纸板盒,和用来装香蕉的盒子那么大。很适合打包。" -#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" msgstr[0] "大纸板箱" #. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A very large cardboard box, the sort children would have loved to hide in, " "when there were still children." msgstr "很大的纸板箱,孩子们会喜欢藏在里面,当还有孩子的时候。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "bucket" msgid_plural "buckets" msgstr[0] "水桶" #. ~ Description for {'str': 'bucket'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " "legs, French fries, animal feed, farm use, tailgating, crafts, planting " @@ -40952,13 +42705,13 @@ msgid "" msgstr "" "一只镀锌的水桶,可用来装花生、冰镇白酒、冰镇啤酒、龙虾、蟹腿、法式薯条、动物饲料,农用,追尾,制造物品,种植花草,装礼品篮,装水果篮和草本植物,松散的储存物品或是用作冰桶。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hydration pack" msgid_plural "hydration packs" msgstr[0] "储水背袋" #. ~ Description for {'str': 'hydration pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " @@ -40967,235 +42720,235 @@ msgstr "" "一个配戴在背后的轻薄绝缘塑料水囊,由一个水袋和可用塑料软管充填液体的密封壶嘴构成。配戴者不用动手就能饮用其中的液体。\n" "\"多用于单兵饮水携行系统。\"" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum can" msgid_plural "aluminum cans" msgstr[0] "铝罐" #. ~ Description for {'str': 'aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An aluminum can, like what soda comes in." msgstr "一个铝罐,就是装汽水的那种。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened aluminum can" msgid_plural "opened aluminum cans" msgstr[0] "铝罐(开)" #. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." msgstr "一个铝罐,就是装汽水的那种。这个已经被打开了而且没法简单的重新密封。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper carton" msgid_plural "paper cartons" msgstr[0] "纸桶" #. ~ Description for {'str': 'paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " It has a threaded cap for easy resealing." msgstr "由纸,铝和塑料层压制成的纸板盒,容积为半加仑。附带一个螺纹盖子以便封装。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened paper carton" msgid_plural "opened paper cartons" msgstr[0] "纸桶(开)" #. ~ Description for {'str': 'opened paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " This one is open and its contents will spoil." msgstr "由纸,铝和塑料层压制成的纸板盒,容积为半加仑。它已经被打开了,内容物会开始变质。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" msgstr[0] "真空包装袋" #. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "This is a bag of vacuum-packed food." msgstr "一个用于真空包装食物的包装袋。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small tin can" msgid_plural "small tin cans" msgstr[0] "小锡罐" #. ~ Description for {'str': 'small tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small tin can, like what tuna comes in." msgstr "一个小型锡制罐子,就是装金枪鱼的那种。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small opened tin can" msgid_plural "small opened tin cans" msgstr[0] "小锡罐(开)" #. ~ Description for {'str': 'small opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small tin can, like what tuna comes in. This one is opened and can't be " "easily sealed." msgstr "一个小型锡制罐子,就是装金枪鱼的那种。这个已经被打开而且没法简单的重新密封。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium tin can" msgid_plural "medium tin cans" msgstr[0] "中锡罐" #. ~ Description for {'str': 'medium tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A medium tin can, like what soup comes in." msgstr "一个中型锡制罐子,就是装汤水的那种。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium opened tin can" msgid_plural "medium opened tin cans" msgstr[0] "中锡罐(开)" #. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A medium tin can, like what soup comes in. This one is opened and can't be " "easily sealed." msgstr "一个中型锡制罐子,就是装汤水的那种。这个已经被打开而且没法简单的重新密封。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic canteen" msgid_plural "plastic canteens" msgstr[0] "军用水壶" #. ~ Description for {'str': 'plastic canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." msgstr "一个结实的标准军用水壶,能够储存1.5升液体。通常穿在臀部。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "thermos" msgid_plural "thermoses" msgstr[0] "保温瓶" #. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." msgstr "一个膳魔师牌保温瓶。能够长时间保持瓶内温度,适用于各种冷热物品。能储存1升的液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay canister" msgid_plural "clay canisters" msgstr[0] "陶罐" #. ~ Description for {'str': 'clay canister'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." msgstr "一个易碎的陶容器。可以用来制造简易的撞击引信手雷,或者储存液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay hydria" msgid_plural "clay hydrias" msgstr[0] "提水陶罐" #. ~ Description for {'str': 'clay hydria'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "15升容量的三柄陶罐,用来装运液体或者将其泼出去。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large clay pot" msgid_plural "large clay pots" msgstr[0] "大陶锅" #. ~ Description for {'str': 'large clay pot'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky and heavy clay pot with a waterproofed hide lid, meant to store " "water, but can carry other liquids in a pinch." msgstr "一只大而笨重的用防水兽皮密封的陶罐,主要用途是装水,不过当然也可以用来在必要时装些其他的液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic cup" msgid_plural "plastic cups" msgstr[0] "塑料杯" #. ~ Description for {'str': 'plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup." msgstr "一只真空包装了的杯子。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened plastic cup" msgid_plural "opened plastic cups" msgstr[0] "塑料杯(开)" #. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "一只真空包装了的杯子,基本上是垃圾。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass flask" msgid_plural "glass flasks" msgstr[0] "玻璃烧瓶" #. ~ Description for {'str': 'glass flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "一个250毫升的实验室用锥形瓶,附带橡胶塞。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "test tube" msgid_plural "test tubes" msgstr[0] "试管" #. ~ Description for {'str': 'test tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "一个10毫升的实验室用圆柱形试管,附带橡胶塞。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "beaker" msgid_plural "beakers" msgstr[0] "烧杯" #. ~ Description for {'str': 'beaker'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "一个250ml的实验室烧杯。基本上是一个给人以庄严的错觉的杯子。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" msgstr[0] "量筒" #. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A tall, narrow glass cylinder with precise markings for measuring fluid " "quantities. An important science tool, it is also useful for anal retentive" " chefs." msgstr "一种高而窄的玻璃圆筒,有用于量取液体的精确的刻度。这是一个重要的科学工具,对过于拘泥小节的厨师也很有用。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" msgstr[0] "微型离心管" #. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "These plastic tubes, with little built in snap-caps, are a great way to " "store a tiny amount of liquid. Great for jello shooters if 1mL is enough " @@ -41204,996 +42957,349 @@ msgstr "" "这些塑料管有一个内置的密封盖,适合用来存放少量液体。一些很酷的人把它们叫做\"eppies\"。\n" "\"如果你能用果冻机每次只挤出1ml果冻的话,用它来装也可以。\"" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hip flask" msgid_plural "hip flasks" msgstr[0] "小酒壶" #. ~ Description for {'str': 'hip flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." msgstr "一个容量为250毫升的金属水壶,有个带铰链的旋盖,是酒鬼们暗地里携带酒精时的首选容器。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" msgstr[0] "3L玻璃罐" #. ~ Description for {'str': '3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "一个有金属螺旋盖的3升玻璃罐,一般用于罐头。宜家常见的凑单品。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed 3L glass jar" msgid_plural "sealed 3L glass jars" msgstr[0] "密封3L玻璃罐" #. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." msgstr "一个有金属螺旋盖的3升玻璃罐,一般用来做罐头。这件已被密封以保证内容物不会腐坏。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass jar" msgid_plural "glass jars" msgstr[0] "玻璃罐" #. ~ Description for {'str': 'glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "一个有金属螺旋盖的半升玻璃罐,一般用于罐头。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed glass jar" msgid_plural "sealed glass jars" msgstr[0] "密封玻璃罐" #. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half-liter glass jar with a metal screw top lid, used for canning. Sealed" " tightly and will preserve the contents from rot (assuming it was sterile " "before sealing)." msgstr "半升装带金属拧盖玻璃罐,一般用来做罐头。密封后可使内容物不会腐坏(密封前需灭菌)。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic jerrycan" msgid_plural "plastic jerrycans" msgstr[0] "塑料油罐" #. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." msgstr "一个塑料汽油桶,你也可以用来装别的液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel jerrycan" msgid_plural "steel jerrycans" msgstr[0] "钢制油罐" #. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." msgstr "一个钢制汽油桶,你也可以用来装别的液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay jug" msgid_plural "clay jugs" msgstr[0] "陶壶" #. ~ Description for {'str': 'clay jug'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "带把的陶制容器,使用来装或者泼出液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "gallon jug" msgid_plural "gallon jugs" msgstr[0] "加仑壶" #. ~ Description for {'str': 'gallon jug'} #. ~ Description for TEST gallon jug -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "一个标准容量的塑料壶,一般盛放家用清洁剂或者牛奶等液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum keg" msgid_plural "aluminum kegs" msgstr[0] "铝桶" #. ~ Description for {'str': 'aluminum keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." msgstr "一个可以反复利用的铝制桶,用来装运啤酒。有着50升的容积。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel keg" msgid_plural "steel kegs" msgstr[0] "钢桶" #. ~ Description for {'str': 'steel keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." msgstr "一个可以反复利用的重型钢桶,用来装运啤酒。有着50升的容积。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large sealed stomach" msgid_plural "large sealed stomachs" msgstr[0] "胃皮大水袋" #. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." msgstr "一只大型动物的胃囊,清洗干净之后用绳子扎好。可以装3L的水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (60L)" msgid_plural "metal tanks (60L)" msgstr[0] "大金属罐(60升)" #. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks #. (60L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "用来装液体的大型金属罐,可用于制造其他东西。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (2L)" msgid_plural "metal tanks (2L)" msgstr[0] "小金属罐(2升)" #. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "一只用来装液体或气体的小型金属罐,可用于制造其他东西。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" msgstr[0] "木制水壶" #. ~ Description for {'str': 'wooden canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A water canteen made from wood, secured by metal bands and sealed with wax " "or pitch. Holds 1.5 liters and has a simple carry strap." msgstr "一个木头制成的水壶,壶身由细长的金属条固定并用蜂蜡或是沥青密封。附带着一条样式简单的背带,可装1.5升水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed stomach" msgid_plural "sealed stomachs" msgstr[0] "胃皮水袋" #. ~ Description for {'str': 'sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." msgstr "一只动物的胃囊,清洗干净之后用绳子扎好。可以装1.5L的水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small waterskin" msgid_plural "small waterskins" msgstr[0] "小号皮水袋" #. ~ Description for {'str': 'small waterskin'} #. ~ Description for TEST small waterskin -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." msgstr "防水皮革袋,可装1.5升水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "waterskin" msgid_plural "waterskins" msgstr[0] "皮水袋" #. ~ Description for {'str': 'waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "防水皮革袋,可装3升水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large waterskin" msgid_plural "large waterskins" msgstr[0] "大号皮水袋" #. ~ Description for {'str': 'large waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." msgstr "防水皮革袋,可装5升水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden barrel" msgid_plural "wooden barrels" msgstr[0] "木桶" #. ~ Description for {'str': 'wooden barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "Traditionally made of white oak; these vessels are known for delivering " "delicious whiskey to the future. It has a capacity of 100 liters." msgstr "按照传统工艺制造,这些白橡木酒桶为未来的酒鬼们储备着人生希望(威士忌)。能够储存100升液体。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper wrapper" msgid_plural "paper wrappers" msgstr[0] "包裹纸" #. ~ Description for {'str': 'paper wrapper'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." msgstr "一团常被屠夫们用来包肉的纸,用来生火正好。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "包裹纸" + +#. ~ Description for {'str': 'wrapper'} +#: lang/json/GENERIC_from_json.py +msgid "" +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." +msgstr "“DaiZoom牌蛋白质棒,SoyPelusa荣誉出品。”被自豪地印在这张防油包裹纸上。" + +#: lang/json/GENERIC_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" msgstr[0] "泡沫塑料杯" #. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "一个一次性的廉价杯子,附有塑料盖子和吸管。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic tub" msgid_plural "plastic tubs" msgstr[0] "塑料桶" #. ~ Description for {'str': 'plastic tub'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "一个很大的正方形塑料桶,一般用来装冰淇淋。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" msgstr[0] "避孕套" #. ~ Description for {'str': 'condom'} -#: lang/json/CONTAINER_from_json.py +#: 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/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "balloon" msgid_plural "balloons" msgstr[0] "气球" #. ~ Description for {'str': 'balloon'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A child's balloon. This could be used as a makeshift water container." msgstr "一个儿童气球。可以作为简易的水容器使用。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large tin can" msgid_plural "large tin cans" msgstr[0] "大锡罐" #. ~ Description for {'str': 'large tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. Holds a substantial amount of " "food." msgstr "一个大型锡制罐子,就是装豆子的那种。能够容纳大量食物。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large opened tin can" msgid_plural "large opened tin cans" msgstr[0] "大锡罐(开)" #. ~ Description for {'str': 'large opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. This one is opened and can't be " "easily sealed." msgstr "一个大型锡制罐子,就是装豆子的那种。这个已经被打开而且没法简单的重新密封。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "survival kit box" msgid_plural "survival kit boxes" msgstr[0] "生存工具箱(开)" #. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum box that used to contain a small survival kit. Can hold 1 liter" " of liquid." msgstr "一个曾经装过小型生存工具套装的铝箱,可以装1升液体。" -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "塑料碗" - -#. ~ Description for {'str': 'plastic bowl'} -#: lang/json/CONTAINER_from_json.py -msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." -msgstr "一个带有方便密封盖的塑料碗,可以储存750毫升液体。" - -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "不锈钢瓶" - -#. ~ Description for {'str': 'steel bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "一个不锈钢水瓶,能储存750毫升的液体。" - -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "可折叠塑料瓶" - -#. ~ Description for {'str': 'foldable plastic bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "一个水密的可折叠塑料瓶,能储存500毫升的液体。" - -#: lang/json/CONTAINER_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" -msgstr[0] "采血管" - -#. ~ Description for {'str': 'blood draw kit'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." -msgstr "一成套用于抽血的工具,还有一条可存放血样的试管。你可以用它抽血,至于是抽你自己的,还是其他什么奇怪生物的,随你的兴趣了。" - -#: lang/json/CONTAINER_from_json.py -msgid "small metal tank" -msgid_plural "small metal tanks" -msgstr[0] "小型金属罐" - -#. ~ Description for small metal tank -#: lang/json/CONTAINER_from_json.py -msgid "A small metal tank for holding gas or liquids. Useful for crafting." -msgstr "一只用来装液体或气体的小型金属罐,可用于制造其他东西。" - -#: lang/json/CONTAINER_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" -msgstr[0] "简易钢盆" - -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." -msgstr "一个用薄钢板敲成、用来收集液体的浅口钢盆,非常适合收集雨水。" - -#: lang/json/CONTAINER_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" -msgstr[0] "放射废料桶" - -#. ~ Description for {'str': 'hazardous waste drum'} -#: lang/json/CONTAINER_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." -msgstr "一个黄色大桶,上面印有辐射警告标识,用于储存放射性废料。" - -#: lang/json/CONTAINER_from_json.py -msgid "garden pot" -msgid_plural "garden pots" -msgstr[0] "园艺花盆" - -#. ~ Description for garden pot -#: lang/json/CONTAINER_from_json.py -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 "一个能用来种植植物的特殊花盆。能够保证植物在合适的环境下生长,使其获得最大的产量。与各种种子一起制造成已种植的花盆。" - -#: lang/json/CONTAINER_from_json.py -msgid "endless flask" -msgid_plural "endless flasks" -msgstr[0] "无尽酒瓶" - -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "你打开酒瓶,发现其中已经装满了香甜的威士忌!" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "The flask isn't done refilling yet." -msgstr "酒瓶还没装满。" - -#: lang/json/CONTAINER_from_json.py -msgid "cauldron of purification" -msgid_plural "cauldrons of purification" -msgstr[0] "净化大锅" - -#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons -#. of purification'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This cauldron made of demon spider chitin seems to absorb the light. It " -"will hold 16 liters of material and will absorb poisons from it. It may " -"have other properties that require discovery." -msgstr "这个由恶魔蜘蛛甲壳所制成的大锅似乎正在吸收四周的光线。 它能够容纳16升原料,并吸收其中的毒素。它可能还有其他需要你发现的隐藏属性。" - -#: lang/json/CONTAINER_from_json.py -msgid "aluminum foil wrap" -msgid_plural "aluminum foil wraps" -msgstr[0] "锡纸空包裹" - -#. ~ Description for aluminum foil wrap -#: lang/json/CONTAINER_from_json.py -msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." -msgstr "折叠铝箔纸而成的空包裹,用于包住东西。用来烹调或者烘焙。" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST gallon jug" -msgid_plural "TEST gallon jugs" -msgstr[0] "测试用加仑壶" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST small waterskin" -msgid_plural "TEST small waterskins" -msgstr[0] "测试用小号皮水袋" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous capsule" -msgid_plural "gelatinous capsules" -msgstr[0] "凝胶囊形仓" - -#. ~ Description for {'str': 'gelatinous capsule'} -#. ~ Description for {'str': 'gray cocoon'} -#. ~ Description for {'str': 'oozing pod'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"While the blob is very eager to be fed, it's not as enthusiastic about " -"giving up liquids. A few alterations are necessary." -msgstr "虽然变形怪急着被喂养,但这些小家伙们还不热衷于放弃液体。还需要更多的转变。" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous tank" -msgid_plural "gelatinous tanks" -msgstr[0] "凝胶油箱" - -#: lang/json/CONTAINER_from_json.py -msgid "gray cocoon" -msgid_plural "gray cocoons" -msgstr[0] "灰色茧形仓" - -#: lang/json/CONTAINER_from_json.py -msgid "gray tank" -msgid_plural "gray tanks" -msgstr[0] "灰色油箱" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing pod" -msgid_plural "oozing pods" -msgstr[0] "软泥荚形仓" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing tank" -msgid_plural "oozing tanks" -msgstr[0] "软泥油箱" - -#: lang/json/ENGINE_from_json.py -msgid "internal combustion engine" -msgid_plural "internal combustion engines" -msgstr[0] "内燃机" - -#: lang/json/ENGINE_from_json.py -msgid "base diesel engine" -msgid_plural "base diesel engines" -msgstr[0] "基础柴油引擎" - -#: lang/json/ENGINE_from_json.py -msgid "base gasoline engine" -msgid_plural "base gasoline engines" -msgstr[0] "基础汽油引擎" - -#: lang/json/ENGINE_from_json.py -msgid "base steam engine" -msgid_plural "base steam engines" -msgstr[0] "基础蒸汽引擎" - -#: lang/json/ENGINE_from_json.py -msgid "1-cylinder engine" -msgid_plural "1-cylinder engines" -msgstr[0] "单缸引擎" - -#. ~ Description for {'str': '1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A single-cylinder 4-stroke combustion engine." -msgstr "一个单缸四冲程内燃机。" - -#: lang/json/ENGINE_from_json.py -msgid "large 1-cylinder engine" -msgid_plural "large 1-cylinder engines" -msgstr[0] "大型单缸引擎" - -#. ~ Description for {'str': 'large 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A powerful high-compression single-cylinder 4-stroke combustion engine." -msgstr "一个功率强劲的高压单缸四冲程内燃机。" - -#: lang/json/ENGINE_from_json.py -msgid "small 1-cylinder engine" -msgid_plural "small 1-cylinder engines" -msgstr[0] "小型单缸引擎" - -#. ~ Description for {'str': 'small 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "一个单缸双冲程内燃机。" - -#: lang/json/ENGINE_from_json.py -msgid "Inline-4 engine" -msgid_plural "Inline-4 engines" -msgstr[0] "四缸引擎" - -#. ~ Description for {'str': 'Inline-4 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "一个体积小功率大的四缸内燃机。" - -#: lang/json/ENGINE_from_json.py -msgid "I6 diesel engine" -msgid_plural "I6 diesel engines" -msgstr[0] "六缸直列柴油引擎" - -#. ~ Description for {'str': 'I6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful straight-6 diesel engine." -msgstr "一个大功率的六缸直列柴油内燃机" - -#: lang/json/ENGINE_from_json.py -msgid "V-twin engine" -msgid_plural "V-twin engines" -msgstr[0] "双缸引擎" - -#. ~ Description for {'str': 'V-twin engine'} -#: lang/json/ENGINE_from_json.py -msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "一个双缸四冲程内燃机。" - -#: lang/json/ENGINE_from_json.py -msgid "V6 engine" -msgid_plural "V6 engines" -msgstr[0] "六缸引擎" - -#. ~ Description for {'str': 'V6 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder combustion engine." -msgstr "一个大功率的6缸内燃机" - -#: lang/json/ENGINE_from_json.py -msgid "V6 diesel engine" -msgid_plural "V6 diesel engines" -msgstr[0] "六缸柴油引擎" - -#. ~ Description for {'str': 'V6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder diesel engine." -msgstr "一个大功率的六缸柴油内燃机。" - -#: lang/json/ENGINE_from_json.py -msgid "V8 engine" -msgid_plural "V8 engines" -msgstr[0] "八缸引擎" - -#. ~ Description for {'str': 'V8 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "一个体积和功率一样强大的8缸内燃机。" - -#: lang/json/ENGINE_from_json.py -msgid "V8 diesel engine" -msgid_plural "V8 diesel engines" -msgstr[0] "八缸柴油引擎" - -#. ~ Description for {'str': 'V8 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 8-cylinder diesel engine." -msgstr "一个大功率的八缸柴油内燃机。" - -#: lang/json/ENGINE_from_json.py -msgid "V12 engine" -msgid_plural "V12 engines" -msgstr[0] "十二缸引擎" - -#. ~ Description for {'str': 'V12 engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into high end " -"sports cars." -msgstr "一台巨大而强劲的十二缸引擎,一般用于高端跑车。" - -#: lang/json/ENGINE_from_json.py -msgid "V12 diesel engine" -msgid_plural "V12 diesel engines" -msgstr[0] "十二缸柴油引擎" - -#. ~ Description for {'str': 'V12 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into heavy " -"trucks." -msgstr "一台巨大而强劲的十二缸引擎,一般用于重型卡车。" - -#: lang/json/ENGINE_from_json.py -msgid "makeshift steam engine" -msgid_plural "makeshift steam engines" -msgstr[0] "简易蒸汽引擎" - -#. ~ Description for {'str': 'makeshift steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small, primitive, steam engine. An integrated boiler burns coal to heat " -"water into steam, driving a reciprocating shaft. A condenser recaptures the" -" water, making this a closed cycle system." -msgstr "一台小型自制蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/ENGINE_from_json.py -msgid "small steam engine" -msgid_plural "small steam engines" -msgstr[0] "小型蒸汽引擎" - -#. ~ Description for {'str': 'small steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condenser recaptures the water, " -"making this a closed cycle system." -msgstr "一台小型蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/ENGINE_from_json.py -msgid "medium steam engine" -msgid_plural "medium steam engines" -msgstr[0] "中型蒸汽引擎" - -#. ~ Description for {'str': 'medium steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium-sized steam engine. An integrated boiler burns coal to heat water " -"into steam, driving a reciprocating shaft. A condenser recaptures the " -"water, making this a closed cycle system." -msgstr "一台中型蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/ENGINE_from_json.py -msgid "1350 hp gas turbine engine" -msgid_plural "1350 hp gas turbine engines" -msgstr[0] "燃气涡轮发动机(1350马力)" - -#. ~ Description for {'str': '1350 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A gas turbine engine, usually used for military vehicles. Known for its " -"high rate of fuel consumption." -msgstr "一种燃气涡轮发动机,通常用于军用车辆。以耗油率高而闻名。" - -#: lang/json/ENGINE_from_json.py -msgid "1900 hp gas turbine engine" -msgid_plural "1900 hp gas turbine engines" -msgstr[0] "燃气涡轮发动机(1900马力)" - -#. ~ Description for {'str': '1900 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large gas turbine engine, usually used for military helicopters. Known " -"for its high rate of fuel consumption." -msgstr "一种大型燃气涡轮发动机,通常用于军用直升机。以耗油率高而闻名。" - -#: lang/json/ENGINE_from_json.py -msgid "6000 hp gas turbine engine" -msgid_plural "6000 hp gas turbine engines" -msgstr[0] "燃气涡轮发动机(6000马力)" - -#. ~ Description for {'str': '6000 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " -"high rate of fuel consumption." -msgstr "一种大型的燃气涡轮发动机,用于为V-22鱼鹰提供动力。以耗油率高而闻名。" - -#: lang/json/ENGINE_from_json.py -msgid "large steam engine" -msgid_plural "large steam engines" -msgstr[0] "大型蒸汽引擎" - -#. ~ Description for {'str': 'large steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "一台大型蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/ENGINE_from_json.py -msgid "huge steam engine" -msgid_plural "huge steam engines" -msgstr[0] "巨型蒸汽引擎" - -#. ~ Description for {'str': 'huge steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "一台巨型蒸汽引擎。一个内置锅炉燃烧木炭将水加热变成蒸汽,带动一根往复轴。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/ENGINE_from_json.py -msgid "small steam turbine" -msgid_plural "small steam turbines" -msgstr[0] "小型蒸汽涡轮机" - -#. ~ Description for {'str': 'small steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "一台小型蒸汽涡轮机。一个内置锅炉燃烧木炭将水加热变成蒸汽,驱动旋转涡轮机。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/ENGINE_from_json.py -msgid "medium steam turbine" -msgid_plural "medium steam turbines" -msgstr[0] "中型蒸汽涡轮机" - -#. ~ Description for {'str': 'medium steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium sized steam turbine. An integrated boiler burns coal to heat water" -" into steam, driving a spinning turbine. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "一台中型蒸汽涡轮机。一个内置锅炉燃烧木炭将水加热变成蒸汽,驱动旋转涡轮机。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/ENGINE_from_json.py -msgid "large steam turbine" -msgid_plural "large steam turbines" -msgstr[0] "大型蒸汽涡轮机" - -#. ~ Description for {'str': 'large steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "一台大型蒸汽涡轮机。一个内置锅炉燃烧木炭将水加热变成蒸汽,驱动旋转涡轮机。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/ENGINE_from_json.py -msgid "huge steam turbine" -msgid_plural "huge steam turbines" -msgstr[0] "巨型蒸汽涡轮机" - -#. ~ Description for {'str': 'huge steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "一台巨型蒸汽涡轮机。一个内置锅炉燃烧木炭将水加热变成蒸汽,驱动旋转涡轮机。一个冷凝器回收冷却水,构成一个闭环系统。" - -#: lang/json/GENERIC_from_json.py -msgid "fetid goop" -msgid_plural "fetid goops" -msgstr[0] "恶臭黏液" - -#. ~ Description for {'str': 'fetid goop'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A foul smelling goop. It has a disgusting texture and a powerful smell that" -" overrides every other smell around it." -msgstr "一团散发着恶臭的黏液。它有一种令人作呕的质感和强烈刺激的臭味,这臭味能够盖过四周所有其他气味。" - -#: lang/json/GENERIC_from_json.py -msgid "limestone shard" -msgid_plural "limestone shards" -msgstr[0] "石灰片" - -#. ~ Description for {'str': 'limestone shard'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" -" alkaline properties may yet find some use." -msgstr "一小片石灰岩。非常脆弱,无法作为武器,但是它的碱性化学属性也许能有点用处。" - -#: lang/json/GENERIC_from_json.py -msgid "rock salt" -msgid_plural "rock salt" -msgstr[0] "岩盐" - -#. ~ Description for {'str_sp': 'rock salt'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of rock salt crystals. Could be refined into table salt." -msgstr "一大把岩盐结晶。可以被提炼为食盐。" - -#: lang/json/GENERIC_from_json.py -msgid "rhodonite" -msgid_plural "rhodonite" -msgstr[0] "蔷薇辉石" - -#. ~ Description for {'str_sp': 'rhodonite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of rhodonite. It has manganese dioxide covering and going through " -"it in veins, which can be obtained using a chisel." -msgstr "一大块蔷薇辉石。二氧化锰纹路覆盖和贯通其中,可以用凿子采集。" - -#: lang/json/GENERIC_from_json.py -msgid "zincite" -msgid_plural "zincite" -msgstr[0] "红锌矿" - -#. ~ Description for {'str_sp': 'zincite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " -"reduction with a source of carbon." -msgstr "一大块红锌矿,可以被提炼成氧化锌,再用碳来还原成锌。" - -#: lang/json/GENERIC_from_json.py -msgid "hickory root" -msgid_plural "hickory roots" -msgstr[0] "山核桃根" - -#. ~ Description for {'str': 'hickory root'} -#: lang/json/GENERIC_from_json.py -msgid "A root from a hickory tree. It has an earthy smell." -msgstr "山核桃树的根,尚带着泥土的芬芳。" - -#: lang/json/GENERIC_from_json.py -msgid "hickory nuts" -msgid_plural "hickory nuts" -msgstr[0] "山核桃" - -#. ~ Description for {'str_sp': 'hickory nuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hickory tree, still in their shell." -msgstr "一把山核桃,还没去壳。" - -#: lang/json/GENERIC_from_json.py -msgid "pecans" -msgid_plural "pecans" -msgstr[0] "美洲山核桃" - -#. ~ Description for {'str_sp': 'pecans'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pecan tree, still in their shell." -msgstr "一把美洲山核桃,山核桃的亚种,还没去壳。" - -#: lang/json/GENERIC_from_json.py -msgid "pistachios" -msgid_plural "pistachios" -msgstr[0] "开心果" - -#. ~ Description for {'str_sp': 'pistachios'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pistachio tree, still in their shell." -msgstr "一把开心果,还没去壳。" - -#: lang/json/GENERIC_from_json.py -msgid "almonds" -msgid_plural "almonds" -msgstr[0] "扁桃仁" - -#. ~ Description for {'str_sp': 'almonds'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from an almond tree, still in their shell." -msgstr "一把扁桃仁,还没去壳。" - -#: lang/json/GENERIC_from_json.py -msgid "peanuts" -msgid_plural "peanuts" -msgstr[0] "花生" - -#. ~ Description for {'str_sp': 'peanuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a peanut bush, still in their shell." -msgstr "一把花生,还没去壳。" - -#: lang/json/GENERIC_from_json.py -msgid "hazelnuts" -msgid_plural "hazelnuts" -msgstr[0] "榛子" - -#. ~ Description for {'str_sp': 'hazelnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hazelnut tree, still in their shell." -msgstr "一把榛子,还没去壳。" - -#: lang/json/GENERIC_from_json.py -msgid "chestnuts" -msgid_plural "chestnuts" -msgstr[0] "栗子" - -#. ~ Description for {'str_sp': 'chestnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a chestnut tree, still in their shell." -msgstr "一把栗子,还没去壳。" - -#: lang/json/GENERIC_from_json.py -msgid "walnuts" -msgid_plural "walnuts" -msgstr[0] "核桃" - -#. ~ Description for {'str_sp': 'walnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a walnut tree, still in their shell." -msgstr "一把核桃,还没去壳。" - -#: lang/json/GENERIC_from_json.py -msgid "steel grille" -msgid_plural "steel grilles" -msgstr[0] "钢制格栅" - -#. ~ Description for {'str': 'steel grille'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a metal grille. It can be used as a framework for making a chemical" -" catalyst." -msgstr "一个金属格栅。它可以用作制造化学催化剂的支撑框架。" - -#: lang/json/GENERIC_from_json.py -msgid "cobalt-60 pellet" -msgid_plural "cobalt-60 pellets" -msgstr[0] "钴-60 颗粒" - -#. ~ Description for {'str': 'cobalt-60 pellet'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Radioactive material that used to be a part of some nuclear industry " -"equipment. You are yet to find some use for it." -msgstr "放射性物质,曾经是核工业设备的一部分。不过你还没有找到这玩意儿的用途。 " - -#: lang/json/GENERIC_from_json.py -msgid "sandbag" -msgid_plural "sandbags" -msgstr[0] "沙包" - -#. ~ Description for {'str': 'sandbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with sand. It can be used to construct simple " -"barricades." -msgstr "装满沙子的帆布袋,可以用来建造简单的路障。" - #: lang/json/GENERIC_from_json.py -msgid "earthbag" -msgid_plural "earthbags" -msgstr[0] "土包" +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" +msgstr[0] "茶包纸盒" -#. ~ Description for {'str': 'earthbag'} +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': +#. 'small cardboard boxes of tea bags'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with soil. It can be used to construct simple " -"barricades." -msgstr " 装满土的帆布袋,可以用来建造简单的路障。 " +msgid "A very small cardboard box with tea brand written on it." +msgstr "一个非常小的纸板盒。表面印着茶包的品牌。" #: lang/json/GENERIC_from_json.py msgid "microwave generator" @@ -42265,6 +43371,11 @@ msgid "" "didn't know you needed." msgstr "一个源自20世纪50年代的占卜工具。为你提供了那些你从未意识到过但此时又十分需要的精神支撑。" +#: lang/json/GENERIC_from_json.py +msgid "deck of cards" +msgid_plural "decks of cards" +msgstr[0] "扑克" + #. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py msgid "A deck of 52 playing cards." @@ -42294,6 +43405,135 @@ msgid "" "like a cleaner, happier version of the person you know." msgstr "一张微笑的家庭野营旅行的照片。其中的父母看起来比你所认识的一个朋友更干净、更快乐。" +#: lang/json/GENERIC_from_json.py +msgid "chess set" +msgid_plural "chess sets" +msgstr[0] "国际象棋" + +#. ~ Description for {'str': 'chess set'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden box containing all the equipment needed to play a game of chess." +msgstr "一个木箱, 里面装着玩一盘国际象棋所需的整套棋子。" + +#: lang/json/GENERIC_from_json.py +msgid "checkers set" +msgid_plural "checkers sets" +msgstr[0] "西洋跳棋" + +#. ~ Description for {'str': 'checkers set'} +#: lang/json/GENERIC_from_json.py +msgid "A wooden box containing a set of round tokens used to play checkers." +msgstr "一个木箱, 里面装着玩一盘国际跳棋所需的整套圆形棋子。" + +#: lang/json/GENERIC_from_json.py +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" +msgstr[0] "巫术桌游牌" + +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of +#. Sorcery cards'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." +msgstr "一整套用来玩著名\"巫术\"桌游的卡牌。每张卡牌上都画着一张不同怪物的有趣插画。" + +#: lang/json/GENERIC_from_json.py +msgid "Picturesque" +msgid_plural "sets of Picturesque" +msgstr[0] "我画你猜" + +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where one draws an image, and the others attempt to guess what it is." +msgstr "一种游戏,一个人画图,另一个试着猜所画的是什么。" + +#: lang/json/GENERIC_from_json.py +msgid "Capitalism" +msgid_plural "sets of Capitalism" +msgstr[0] "大富翁" + +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players traverse around the board buying property and swindling" +" their friends." +msgstr "一个著名桌面游戏,玩家在棋盘上周游、购买地产、敲诈其他玩家。" + +#: lang/json/GENERIC_from_json.py +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" +msgstr[0] "变形怪和强盗们" + +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and +#. Bandits'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A roleplaying game set in the post-apocalypse, so you can pretend to survive" +" the apocalypse while surviving the apocalypse." +msgstr "一个以末日为背景的角色扮演游戏,你可以在大灾变中求生之余假装自己在末日之后求生。" + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" +msgstr[0] "战锤" + +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of fantasy creatures." +msgstr "一个战略游戏,特色是有着许多奇幻生物的各式小人。(注:原文名字与正版不同避免版权纠纷)" + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" +msgstr[0] "战锤20K" + +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of +#. Battlehammer 20k'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." +msgstr "一个战略游戏,特色是有着许多太空外星怪兽小人和各式奇怪的太空陆战队小人。(注:原文名字与正版不同避免版权纠纷)" + +#: lang/json/GENERIC_from_json.py +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" +msgstr[0] "农场大亨" + +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of +#. Settlers of the Ranch'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game where players build settlements and trade for supplies." +msgstr "一个战略游戏,玩家扮演拓荒者建设营地并交易各种补给。(注:原文名字与卡坦岛不同避免版权纠纷)" + +#: lang/json/GENERIC_from_json.py +msgid "Warships" +msgid_plural "sets of Warships" +msgstr[0] "战舰" + +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players try to guess where the opponent placed their ships on " +"the board." +msgstr "一种双人游戏,玩家猜测对手放置战舰的位置并试图击毁所有敌方战舰的游戏。" + +#: lang/json/GENERIC_from_json.py +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" +msgstr[0] "神秘谋杀案" + +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder +#. Mystery'} +#: lang/json/GENERIC_from_json.py +msgid "A game where players try to figure out who murdered the butler." +msgstr "一个玩家试图找出杀害管家的凶手的游戏。" + #: lang/json/GENERIC_from_json.py msgid "animal" msgid_plural "none" @@ -42963,7 +44203,6 @@ msgid_plural "broken eyebots" msgstr[0] "眼球无人机(损坏)" #. ~ Description for {'str': 'broken eyebot'} -#. ~ Description for broken eyebot #: lang/json/GENERIC_from_json.py msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " @@ -43067,7 +44306,6 @@ msgid_plural "broken miner bots" msgstr[0] "钻掘机器人(损坏)" #. ~ Description for {'str': 'broken miner bot'} -#. ~ Description for broken miner bot #: lang/json/GENERIC_from_json.py msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " @@ -43129,8 +44367,6 @@ msgid_plural "broken manhacks" msgstr[0] "飞锯无人机(损坏)" #. ~ Description for {'str': 'broken manhack'} -#. ~ Description for broken hack -#. ~ Description for broken manhack #: lang/json/GENERIC_from_json.py msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " @@ -43143,7 +44379,6 @@ msgid_plural "broken grenade hacks" msgstr[0] "榴弹无人机(损坏)" #. ~ Description for {'str': 'broken grenade hack'} -#. ~ Description for broken grenade hack #: lang/json/GENERIC_from_json.py msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " @@ -43156,7 +44391,6 @@ msgid_plural "broken mininuke hacks" msgstr[0] "微型核弹无人机(损坏)" #. ~ Description for {'str': 'broken mininuke hack'} -#. ~ Description for broken mininuke hack #: lang/json/GENERIC_from_json.py msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " @@ -43169,7 +44403,6 @@ msgid_plural "broken tear gas hacks" msgstr[0] "催泪弹无人机(损坏)" #. ~ Description for {'str': 'broken tear gas hack'} -#. ~ Description for broken tear gas hack #: lang/json/GENERIC_from_json.py msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " @@ -43182,7 +44415,6 @@ msgid_plural "broken EMP hacks" msgstr[0] "EMP无人机(损坏)" #. ~ Description for {'str': 'broken EMP hack'} -#. ~ Description for broken EMP hack #: lang/json/GENERIC_from_json.py msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " @@ -43195,7 +44427,6 @@ msgid_plural "broken flashbang hacks" msgstr[0] "闪光弹无人机(损坏)" #. ~ Description for {'str': 'broken flashbang hack'} -#. ~ Description for broken flashbang hack #: lang/json/GENERIC_from_json.py msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " @@ -43208,13 +44439,24 @@ msgid_plural "broken C-4 hacks" msgstr[0] "C-4炸弹无人机(损坏)" #. ~ Description for {'str': 'broken C-4 hack'} -#. ~ Description for broken C-4 hack #: lang/json/GENERIC_from_json.py msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " "ground. Could be gutted for parts." msgstr "一个损坏的C-4炸弹无人机。现在安静的散在地上构不成威胁了。可以拆解得到部件。" +#: lang/json/GENERIC_from_json.py +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" +msgstr[0] "扩音器(损坏)" + +#. ~ Description for {'str': 'broken loudspeaker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." +msgstr "一个损坏的音乐扩音器。现在安静的呆在那里。可以拆解得到部件。" + #: lang/json/GENERIC_from_json.py msgid "processor board" msgid_plural "processor boards" @@ -44219,18 +45461,6 @@ msgid "" "stretchable clothing." msgstr "一块中等大小的氯丁橡胶片。可用于制造成既轻又具弹性的衣服。" -#: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" -msgstr[0] "TX-5LR激光炮" - -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." -msgstr "一个从TX-5LR地狱犬激光炮塔拆下来的激光炮。在缺少必要部件的情况下无法单独工作。" - #: lang/json/GENERIC_from_json.py msgid "light bulb" msgid_plural "light bulbs" @@ -44425,11 +45655,6 @@ msgid "broken M2 autonomous CROWS II" msgid_plural "broken M2 autonomous CROWS II turrets" msgstr[0] "M2HB CROWS II 炮塔(损坏)" -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "激光炮塔(损坏)" - #: lang/json/GENERIC_from_json.py msgid "broken secubot" msgid_plural "broken secubots" @@ -44698,11 +45923,6 @@ msgid "" "A tulip bud. Contains some substances commonly produced by a tulip flower." msgstr "郁金香花的花蕾,包含了一些郁金香花特有的成分。" -#: lang/json/GENERIC_from_json.py -msgid "spurge" -msgid_plural "spurges" -msgstr[0] "大戟" - #. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." @@ -44903,7 +46123,6 @@ msgid_plural "broken tribots" msgstr[0] "三足机器人(损坏)" #. ~ Description for {'str': 'broken tribot'} -#. ~ Description for broken tribot #: lang/json/GENERIC_from_json.py msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" @@ -45007,6 +46226,23 @@ msgid "" "like it could support a reinforcing sheet, either." msgstr "这种太阳能电池板是尖端技术的产物,拥有极高的光电转换效能。但是它表面覆盖特殊材料让它非常脆弱,同时也无法进行强化加固。" +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "激光炮塔(损坏)" + +#: lang/json/GENERIC_from_json.py +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" +msgstr[0] "TX-5LR激光炮" + +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." +msgstr "一个从TX-5LR地狱犬激光炮塔拆下来的激光炮。在缺少必要部件的情况下无法单独工作。" + #: lang/json/GENERIC_from_json.py msgid "module template" msgid_plural "module templates" @@ -45345,6 +46581,11 @@ msgid "" "to salvage and reuse these components without them." msgstr "一套包含了多个大型制造商的集成电路参数表的档案库。缺少这些数据将很难回收使用相应的集成电路元件,因此这套档案对某些人来说可能很有价值。" +#: lang/json/GENERIC_from_json.py +msgid "martial art manual" +msgid_plural "martial art manuals" +msgstr[0] "武术手册" + #: lang/json/GENERIC_from_json.py msgid "abstract map" msgid_plural "abstract maps" @@ -45787,11 +47028,6 @@ msgid "" "without shield." msgstr "中世纪剑术的完整指南。比较了德国和意大利传统的长剑和侧剑,穿盔甲和不穿盔甲的差异。" -#: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" -msgstr[0] "武术手册" - #: lang/json/GENERIC_from_json.py msgid "juvenile sourdough starter" msgid_plural "juvenile sourdough starters" @@ -45867,6 +47103,20 @@ msgstr "" "一根人类的骨头,可以用来制造物品。\n" "\"我爱你爱到骨子里了!\"" +#: lang/json/GENERIC_from_json.py +msgid "demihuman bone" +msgid_plural "demihuman bones" +msgstr[0] "半兽人骨" + +#. ~ Description for {'str': 'demihuman bone'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." +msgstr "" +"一根半兽人的骨头,可以用来制造物品。\n" +"\"我爱你爱到骨子里了!\"" + #: lang/json/GENERIC_from_json.py msgid "first aid kit" msgid_plural "first aid kits" @@ -45935,10 +47185,12 @@ msgstr[0] "MRE(辣椒炒豆)" #. Beans'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." -msgstr "一份 MRE 军用口粮包,包括一份辣椒炒豆风味的主菜和饥饿士兵所需要的其他一切东西。开封后内容物会开始腐败。激活或拆解它以获得其内容物。" +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" +"一份 MRE 军用口粮包,包括一份辣椒炒豆风味的主菜和素食主义士兵所需要的其他一切东西。开封后内容物会开始腐败。激活或拆解它以获得其内容物。" #: lang/json/GENERIC_from_json.py msgid "MRE - BBQ Beef" @@ -46093,6 +47345,37 @@ msgid "" msgstr "" "一份 MRE 军用口粮包,包括一份番茄酱通心粉风味的主菜和饥饿士兵所需要的其他一切东西。开封后内容物会开始腐败。激活或拆解它以获得其内容物。" +#: lang/json/GENERIC_from_json.py +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" +msgstr[0] "MRE(菠菜意大利宽面)" + +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - +#. Spinach Fettuccine'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything" +" a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" +"一份 MRE 军用口粮包,包括一份菠菜意大利宽面风味的主菜和素食主义士兵所需要的其他一切东西。开封后内容物会开始腐败。激活或拆解它以获得其内容物。" + +#: lang/json/GENERIC_from_json.py +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" +msgstr[0] "MRE(蔬菜杂烩)" + +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - +#. Ratatouille'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" +"一份 MRE 军用口粮包,包括一份蔬菜杂烩风味的主菜和素食主义士兵所需要的其他一切东西。开封后内容物会开始腐败。激活或拆解它以获得其内容物。" + #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" msgid_plural "MREs - Cheese Tortellini" @@ -47435,6 +48718,16 @@ msgid "" "looks almost like glass." msgstr "耐用的塑料饮用容器。这个是透明压克力制成,看起来几乎像玻璃。" +#: lang/json/GENERIC_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "塑料碗" + +#. ~ Description for {'str': 'plastic bowl'} +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "一个带有方便密封盖的塑料碗,可以储存750毫升液体。" + #: lang/json/GENERIC_from_json.py msgid "kiddie bowl" msgid_plural "kiddie bowls" @@ -48109,6 +49402,18 @@ msgid "" "placed on the ground, this can support one guitar in an upright position." msgstr "一个三条腿的形状奇特的小型铝制五金件。当放在地上时,它能撑起一把吉他。" +#: lang/json/GENERIC_from_json.py +msgid "plectrum" +msgid_plural "plectra" +msgstr[0] "琴拨" + +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." +msgstr "一片两端尖尖的扁平塑料片,用于拨动吉他或曼陀林的琴弦。" + #: lang/json/GENERIC_from_json.py msgid "mixer" msgid_plural "mixers" @@ -49212,6 +50517,7 @@ msgid_plural "pointy sticks" msgstr[0] "尖木棍" #. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py msgid "A simple wood pole with one end sharpened." msgstr "一头削的尖尖的木棍,可以用来演杂技,当然也可以用来扎人。" @@ -49365,6 +50671,11 @@ msgid "" "slashing and stabbing." msgstr "一根坚固的钢制杆身,一端安装了一个带刺刀头,既能斩击又能刺击。" +#: lang/json/GENERIC_from_json.py +msgid "wooden javelin" +msgid_plural "wooden javelins" +msgstr[0] "木标枪" + #. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -49372,6 +50683,11 @@ msgid "" "been carved and covered for better grip." msgstr "一个前端磨尖并用火烤硬化的木制长矛,握手处经过处理,便于掌握。" +#: lang/json/GENERIC_from_json.py +msgid "iron javelin" +msgid_plural "iron javelins" +msgstr[0] "铁尖标枪" + #. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -50204,12 +51520,12 @@ msgstr "一片被磨尖的破陶器碎片。它很重而且有着锋利的边缘 #: lang/json/GENERIC_from_json.py msgid "fungal fighter sting" msgid_plural "fungal fighter stings" -msgstr[0] "真菌刺" +msgstr[0] "抗真菌荆棘" #. ~ Description for {'str': 'fungal fighter sting'} #: lang/json/GENERIC_from_json.py msgid "A short dart from a fungal fighter. Makes a poor melee weapon." -msgstr "一条真菌战斗部的短刺,可以勉强当成武器使用。" +msgstr "一根抗真菌战斗部身上的尖刺荆棘,可以勉强当成武器使用。" #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "mattress" @@ -50338,26 +51654,30 @@ msgid "A splintered piece of wood, could be used as a skewer or for kindling." msgstr "一根被劈成细条的木片,可用来串肉或者作为燃火用品。" #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" -msgstr[0] "重木棍" +msgid "stout branch" +msgid_plural "stout branches" +msgstr[0] "粗树枝" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." -msgstr "一根结实沉重的棍子,可以当作一个不错的近战武器。" +msgid "" +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." +msgstr "一段还算长的树枝,粗细刚好够你用手握住。能算作一把还凑合的近战武器。" #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" -msgstr[0] "长木棍" +msgid "long stout branch" +msgid_plural "long stout branches" +msgstr[0] "长树枝" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout +#. branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." -msgstr "一根长长的棍子,既能做武器,也能拆解成重木棍作为制造材料使用。" +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." +msgstr "一段从树上取下来的长树枝,约有8英尺长,直径几英寸。能算作一把还凑合的近战武器,而且可以被拆成较短的树枝作为制造材料使用。" #: lang/json/GENERIC_from_json.py msgid "long pole" @@ -50377,7 +51697,6 @@ msgid_plural "planks" msgstr[0] "木板" #. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" @@ -50427,6 +51746,26 @@ msgid "" msgstr "" "一块标准的4X8大小的大木板,通常是胶合板、欧松板或纤维板类似材质。又沉又笨重,它能够被用于建造各种建筑,不过也许你需要在建造小型建筑前将它切割成合适的尺寸。" +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "不锈钢瓶" + +#. ~ Description for {'str': 'steel bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "一个不锈钢水瓶,能储存750毫升的液体。" + +#: lang/json/GENERIC_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "可折叠塑料瓶" + +#. ~ Description for {'str': 'foldable plastic bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "一个水密的可折叠塑料瓶,能储存500毫升的液体。" + #: lang/json/GENERIC_from_json.py msgid "atomic coffee maker" msgid_plural "atomic coffee makers" @@ -51084,6 +52423,19 @@ msgid "" msgstr "" "利用核衰变产生的能量来驱动二极管发光,这种灯相当昂贵,至少可以保证在十年时间内持续发光。它被设计的非常可爱,可以为喜欢夜读的孩子提供足够的光亮。盖子被关闭了,打开将会提供光亮。" +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" +msgstr[0] "采血管" + +#. ~ Description for {'str': 'blood draw kit'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." +msgstr "一成套用于抽血的工具,还有一条可存放血样的试管。你可以用它抽血,至于是抽你自己的,还是其他什么奇怪生物的,随你的兴趣了。" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" msgid_plural "charcoal kilns" @@ -51738,7 +53090,6 @@ msgid "A set of small monitors. Required to view cameras' output." msgstr "一组小型显示屏,有了这玩意才能看到摄像头拍了些什么玩意。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "security camera" msgid_plural "security cameras" msgstr[0] "保安摄像头" @@ -51802,7 +53153,6 @@ msgid_plural "electronics control units" msgstr[0] "电子控制模块" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "drive by wire controls" msgid_plural "sets of drive by wire controls" msgstr[0] "电传线控控制器" @@ -52372,7 +53722,6 @@ msgid "" msgstr "一个倒车时用来警告路人的安全装置,但在目前环境下使用它似乎是非常不明智的。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "stereo system" msgid_plural "stereo systems" msgstr[0] "音响系统" @@ -52680,7 +54029,6 @@ msgid "A leather-covered seat designed to be straddled." msgstr "一个由皮革制成的鞍形座椅,需要双腿跨着乘坐。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "solar panel" msgid_plural "solar panels" msgstr[0] "太阳能板" @@ -52707,7 +54055,6 @@ msgid "" msgstr "一块太阳能电池板,覆盖着一层加强玻璃,以免脆弱的太阳能电池被丧尸或者打歪的棒球破坏。玻璃保护层导致电池功率略有降低。在载具上生效。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "upgraded solar panel" msgid_plural "upgraded solar panels" msgstr[0] "太阳能板(高能)" @@ -53181,6 +54528,19 @@ msgid "" msgstr "" "PrepNet一直在大量使用无法追踪的互联网数字货币来避税。这些实体硬币上面印有随机数序列,表明了其内部嵌入的RFID芯片所对应的数字货币。" +#: lang/json/GENERIC_from_json.py +msgctxt "container" +msgid "basin" +msgid_plural "basins" +msgstr[0] "简易钢盆" + +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." +msgstr "一个用薄钢板敲成、用来收集液体的浅口钢盆,非常适合收集雨水。" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" msgid_plural "vehicle refrigerators" @@ -53284,6 +54644,16 @@ msgstr[0] "核燃料弹丸" msgid "A small pellet of fissile material. Handle carefully." msgstr "一些核裂变燃料小球,处理时要多加小心。" +#: lang/json/GENERIC_from_json.py +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" +msgstr[0] "放射废料桶" + +#. ~ Description for {'str': 'hazardous waste drum'} +#: lang/json/GENERIC_from_json.py +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "一个黄色大桶,上面印有辐射警告标识,用于储存放射性废料。" + #: lang/json/GENERIC_from_json.py msgid "folded atomic butter churn" msgid_plural "folded atomic butter churns" @@ -53323,6 +54693,18 @@ msgid "" "bio-compatibility and durability." msgstr "一款由纯钛制成的牙科植入物,由于其良好的生物相容性和耐用性而用于替代破损的牙齿。" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" +msgstr[0] "牵引车舱" + +#. ~ Description for {'str': 'hauling space'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to" +" create a very large amount of space for transporting goods." +msgstr "一个巨大的金属空间,与载具车顶的延伸部分结合在一起,其巨大容量可以运输大量货物。" + #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" msgid_plural "hydraulic gauntlets" @@ -53694,18 +55076,6 @@ msgid "" "parts." msgstr "一层人造神经元构成的膜包裹着大脑皮层,将机器和人类智能完全融合,形成了一个格式塔,比其单独每个组成部分要强大得多。" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" -msgstr[0] "牵引车舱" - -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to" -" create a very large amount of space for transporting goods." -msgstr "一个巨大的金属空间,与载具车顶的延伸部分结合在一起,其巨大容量可以运输大量货物。" - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "ultralight frame" msgid_plural "ultralight frames" @@ -53728,6 +55098,83 @@ msgid "" "camera station, steering tools, and electronics controls." msgstr "一台军用载具所使用的巨大而复杂的驾驶工作站,包括摄像站、转向工具和电子控制装置。" +#: lang/json/GENERIC_from_json.py +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" +msgstr[0] "载具架" + +#. ~ Description for {'str': 'vehicle shelving'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." +msgstr "几个重型车架经过改装被固定在一起,配备有系紧装置和连接点,以承载大量货物。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" +msgstr[0] "太阳能板阵列" + +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires" +" a jumper cable or similar to pull power from." +msgstr "" +"一个由三块太阳能板所组成的垂直阵列,安装在同一根金属底座上,在金属杆上依次排开,带有基础的跟踪装置和马达。由于液压系统的脆弱性和为了最大限度利用阳光所导致的高覆盖面积,它们真没法被安装在现有的载具上。需要一根跨接电缆或类似电缆才能从中导出电源。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" +msgstr[0] "太阳能板阵列(强化)" + +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" +"一个由三块强化太阳能板所组成的垂直阵列,安装在同一根金属底座上,在金属杆上依次排开,带有基础的跟踪装置和马达。由于液压系统的脆弱性和为了最大限度利用阳光所导致的高覆盖面积,它们真没法被安装在现有的载具上。需要一根跨接电缆或类似电缆才能从中导出电源。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" +msgstr[0] "太阳能板阵列(高能)" + +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" +"一个由三块高能太阳能板所组成的垂直阵列,安装在同一根金属底座上,在金属杆上依次排开,带有基础的跟踪装置和马达。由于液压系统的脆弱性和为了最大限度利用阳光所导致的高覆盖面积,它们真没法被安装在现有的载具上。需要一根跨接电缆或类似电缆才能从中导出电源。" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" +msgstr[0] "太阳能板阵列(强化高能)" + +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." +msgstr "" +"一个由三块强化高能太阳能板所组成的垂直阵列,安装在同一根金属底座上,在金属杆上依次排开,带有基础的跟踪装置和马达。由于液压系统的脆弱性和为了最大限度利用阳光所导致的高覆盖面积,它们真没法被安装在现有的载具上。需要一根跨接电缆或类似电缆才能从中导出电源。" + #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" msgid_plural "withered plant bundles" @@ -53743,21 +55190,45 @@ msgid "CRIT hatchet" msgid_plural "CRIT hatchets" msgstr[0] "C.R.I.T 短柄战斧" +#. ~ Use action msg for CRIT hatchet. +#: lang/json/GENERIC_from_json.py +msgid "You extend your hatchet" +msgstr "你伸出短柄战斧!" + #. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer." -msgstr "一种非常锋利、沉重的单手短柄斧。可以作为一个锋利的近战武器使用,同时也可以帮助你切割物品或者作为锤子使用。" +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." +msgstr "一种非常锋利、沉重的单手短柄斧。伸出时可以作为一个锋利的近战武器使用,同时也可以帮助你切割物品或者作为锤子使用。" + +#: lang/json/GENERIC_from_json.py +msgid "CRIT axe" +msgid_plural "CRIT axes" +msgstr[0] "C.R.I.T 战斧" + +#. ~ Use action msg for CRIT axe. +#: lang/json/GENERIC_from_json.py +msgid "You collapse your axe" +msgstr "你折好战斧。" +#. ~ Description for CRIT axe #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Blade-work manual" -msgid_plural "C.R.I.T Blade-work manuals" +msgid "" +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer" +" when extended." +msgstr "一种非常锋利、沉重的双手战斧。可以作为一个锋利的近战武器使用,同时也可以帮助你切割物品或者作为锤子使用。" + +#: lang/json/GENERIC_from_json.py +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" msgstr[0] "C.R.I.T 刀术训练手册" -#. ~ Description for {'str': 'C.R.I.T Blade-work manual'} +#. ~ Description for CRIT Blade-work manual #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Blade-work." +msgid "An advanced military manual on CRIT Blade-work." msgstr "关于C.R.I.T刀术训练的高级军事手册。" #: lang/json/GENERIC_from_json.py @@ -53771,13 +55242,13 @@ msgid "An advanced military manual on C.R.I.T Enforcer melee." msgstr "关于C.R.I.T近战棍术训练的高级军事手册。" #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T CQB manual" -msgid_plural "C.R.I.T CQB manuals" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" msgstr[0] "C.R.I.T 格斗术训练手册" -#. ~ Description for {'str': 'C.R.I.T CQB manual'} +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T general CQB." +msgid "An advanced military manual on CRIT general CQB." msgstr "关于C.R.I.T格斗术训练的高级军事手册。" #: lang/json/GENERIC_from_json.py @@ -53882,16 +55353,6 @@ msgid "" "upgraded panel. Useful for a vehicle." msgstr "一块高能太阳能电池板,覆盖着加强玻璃,以免脆弱的太阳能电池被外星人或者打歪的棒球破坏,在载具上生效。" -#: lang/json/GENERIC_from_json.py -msgid "6.54x42mm casing" -msgid_plural "6.54x42mm casings" -msgstr[0] "6.54x42mm 弹壳" - -#. ~ Description for 6.54x42mm casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 6.54x42 round." -msgstr "一个6.54x42mm 弹的空弹壳。" - #: lang/json/GENERIC_from_json.py msgid "tiny pistol casing" msgid_plural "tiny pistol casings" @@ -54000,464 +55461,36 @@ msgid_plural "broken rifle TALON UGVs" msgstr[0] "步枪型 \"鹰爪\" 无人车(损坏)" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing)" -msgid_plural "garden pots (growing)" -msgstr[0] "花盆(生长中)" - -#. ~ Description for {'str': 'garden pot (growing)', 'str_pl': 'garden pots -#. (growing)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot growing some tasty, unnameable plants. You shouldn't see this " -"item." -msgstr "种植一些美味的、不可名状植物的花盆。你不应该看到这个物品。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (grown)" -msgid_plural "garden pots (grown)" -msgstr[0] "花盆(已成熟)" - -#. ~ Description for {'str': 'garden pot (grown)', 'str_pl': 'garden pots -#. (grown)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot with some ripe, unnameable plants. You shouldn't see this " -"item." -msgstr "种植一些美味的、不可名状植物的花盆。你不应该看到这个物品。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing tomato)" -msgid_plural "garden pots (growing tomatoes)" -msgstr[0] "园艺花盆(番茄生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing tomato)', 'str_pl': -#. 'garden pots (growing tomatoes)'}. -#: lang/json/GENERIC_from_json.py -msgid "The tomatoes are ready to harvest!" -msgstr "番茄已经可以收割了!" - -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing tomato)', -#. 'str_pl': 'garden pots (growing tomatoes)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing wheat)', -#. 'str_pl': 'garden pots (growing wheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing hops)', -#. 'str_pl': 'garden pots (growing hops)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing buckwheat)', -#. 'str_pl': 'garden pots (growing buckwheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing broccoli)', -#. 'str_pl': 'garden pots (growing broccoli)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing oats)', -#. 'str_pl': 'garden pots (growing oats)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing barley)', -#. 'str_pl': 'garden pots (growing barley)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing carrot)', -#. 'str_pl': 'garden pots (growing carrots)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cotton)', -#. 'str_pl': 'garden pots (growing cotton)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cabbage)', -#. 'str_pl': 'garden pots (growing cabbage)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cucumber)', -#. 'str_pl': 'garden pots (growing cucumber)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing garlic)', -#. 'str_pl': 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "It isn't done growing yet." -msgstr "它还没有生长到收获的时期。" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" +msgstr[0] "灼热之风" -#. ~ Description for {'str': 'garden pot (growing tomato)', 'str_pl': 'garden -#. pots (growing tomatoes)'} +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing tomatoes. Once ripe, it can be activated to " -"prepare them for harvest." -msgstr "这是一个种植着番茄的园艺花盆。一旦成熟,它就可以被激活以供收获。" +msgid "This book contains the teaching of the Desert Wind discipline." +msgstr "这本书包含了漠风流派相关的武术教学。" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe tomato)" -msgid_plural "garden pots (ripe tomatoes)" -msgstr[0] "园艺花盆(番茄已成熟)" +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" +msgstr[0] "完美身心" -#. ~ Description for {'str': 'garden pot (ripe tomato)', 'str_pl': 'garden -#. pots (ripe tomatoes)'} +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with a ripe tomato plant. Disassemble to retrieve the " -"tasty 'matos." -msgstr "这是一个种着成熟番茄的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing wheat)" -msgid_plural "garden pots (growing wheat)" -msgstr[0] "园艺花盆(小麦生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing wheat)', 'str_pl': -#. 'garden pots (growing wheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The wheat is ready to harvest!" -msgstr "小麦已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing wheat)', 'str_pl': 'garden -#. pots (growing wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing wheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "这是一个种植着小麦的园艺花盆。一旦成熟,它就可以被激活以供收获。" +msgid "This book contains the teaching of the Diamond Mind discipline." +msgstr "这本书包含了钢魂流派相关的武术教学。" #: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe wheat)" -msgid_plural "garden pots (ripe wheat)" -msgstr[0] "园艺花盆(小麦已成熟)" +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" +msgstr[0] "姆多拉之书" -#. ~ Description for {'str': 'garden pot (ripe wheat)', 'str_pl': 'garden pots -#. (ripe wheat)'} +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py msgid "" -"This is a garden pot with wheat ready to harvest. Disassemble to retrieve " -"it." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing hops)" -msgid_plural "garden pots (growing hops)" -msgstr[0] "园艺花盆(啤酒花生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'}. -#: lang/json/GENERIC_from_json.py -msgid "The hops are ready to harvest!" -msgstr "作物已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing hops. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "一个种植着啤酒花的花盆。当啤酒花成熟时你需要激活它来准备收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe hops)" -msgid_plural "garden pots (ripe hops)" -msgstr[0] "园艺花盆(啤酒花已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe hops)', 'str_pl': 'garden pots -#. (ripe hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing blooming hops flowers. Disassemble to " -"harvest them." -msgstr "这是一个种着成熟啤酒花的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing buckwheat)" -msgid_plural "garden pots (growing buckwheat)" -msgstr[0] "园艺花盆(荞麦生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The buckwheat is ready to harvest!" -msgstr "荞麦已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing buckwheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "这是一个种植着荞麦的园艺花盆。一旦成熟,它就可以被激活以供收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe buckwheat)" -msgid_plural "garden pots (ripe buckwheat)" -msgstr[0] "园艺花盆(荞麦已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe buckwheat)', 'str_pl': 'garden -#. pots (ripe buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe buckwheat stalks. Disassemble to " -"harvest them." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing broccoli)" -msgid_plural "garden pots (growing broccoli)" -msgstr[0] "园艺花盆(西兰花生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'}. -#: lang/json/GENERIC_from_json.py -msgid "The broccoli is ready to harvest!" -msgstr "西兰花已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing broccoli. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "一个种了西兰花的花盆。当啤酒花成熟时你需要激活它来准备收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe broccoli)" -msgid_plural "garden pots (ripe broccoli)" -msgstr[0] "园艺花盆(西兰花已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe broccoli)', 'str_pl': 'garden -#. pots (ripe broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some fully-grown broccoli. Disassemble to " -"harvest it." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing oats)" -msgid_plural "garden pots (growing oats)" -msgstr[0] "园艺花盆(燕麦生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'}. -#: lang/json/GENERIC_from_json.py -msgid "The oats are ready to harvest!" -msgstr "燕麦已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing oats. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "这是一个种植着燕麦的园艺花盆。一旦成熟,它就可以被激活以供收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe oats)" -msgid_plural "garden pots (ripe oats)" -msgstr[0] "园艺花盆(燕麦已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe oats)', 'str_pl': 'garden pots -#. (ripe oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some golden, fully-grown oats. Disassemble " -"to harvest them." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing barley)" -msgid_plural "garden pots (growing barley)" -msgstr[0] "园艺花盆(大麦生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing barley)', 'str_pl': -#. 'garden pots (growing barley)'}. -#: lang/json/GENERIC_from_json.py -msgid "Barley is ready to harvest!" -msgstr "作物已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing barley)', 'str_pl': 'garden -#. pots (growing barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing barley. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "这是一个种植着大麦的园艺花盆。一旦成熟,它就可以被激活以供收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe barley)" -msgid_plural "garden pots (ripe barley)" -msgstr[0] "园艺花盆(大麦已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe barley)', 'str_pl': 'garden -#. pots (ripe barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ready-to-harvest barley. Disassemble " -"to harvest it." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing carrot)" -msgid_plural "garden pots (growing carrots)" -msgstr[0] "园艺花盆(胡萝卜生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing carrot)', 'str_pl': -#. 'garden pots (growing carrots)'}. -#: lang/json/GENERIC_from_json.py -msgid "The carrots are ready to harvest!" -msgstr "胡萝卜已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing carrot)', 'str_pl': 'garden -#. pots (growing carrots)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing carrots. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "这是一个种植着胡萝卜的园艺花盆。一旦成熟,它就可以被激活以供收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe carrot)" -msgid_plural "garden pots (ripe carrot)" -msgstr[0] "园艺花盆(胡萝卜已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe carrot)', 'str_pl': 'garden -#. pots (ripe carrot)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ripe carrots. Disassemble to harvest " -"them. Store away from rabbits." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cotton)" -msgid_plural "garden pots (growing cotton)" -msgstr[0] "园艺花盆(棉花生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing cotton)', 'str_pl': -#. 'garden pots (growing cotton)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cotton is ready to harvest!" -msgstr "棉花已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing cotton)', 'str_pl': 'garden -#. pots (growing cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cotton. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "这是一个种植着棉花的园艺花盆。一旦成熟,它就可以被激活以供收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cotton)" -msgid_plural "garden pots (ripe cotton)" -msgstr[0] "园艺花盆(棉花已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe cotton)', 'str_pl': 'garden -#. pots (ripe cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing white, fluffy cotton bolls ready for the " -"loom. Disassemble to pluck them." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cabbage)" -msgid_plural "garden pots (growing cabbage)" -msgstr[0] "园艺花盆(卷心菜生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing cabbage)', 'str_pl': -#. 'garden pots (growing cabbage)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cabbages are ready to harvest!" -msgstr "卷心菜已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing cabbage)', 'str_pl': 'garden -#. pots (growing cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cabbage. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "这是一个种植着卷心菜的园艺花盆。一旦成熟,它就可以被激活以供收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cabbage)" -msgid_plural "garden pots (ripe cabbage)" -msgstr[0] "园艺花盆(卷心菜已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe cabbage)', 'str_pl': 'garden -#. pots (ripe cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing a big cabbage leaf. Disassemble to harvest " -"it." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cucumber)" -msgid_plural "garden pots (growing cucumber)" -msgstr[0] "园艺花盆(黄瓜生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cucumbers are ready to harvest!" -msgstr "黄瓜已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cucumber. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "这是一个种植着黄瓜的园艺花盆。一旦成熟,它就可以被激活以供收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cucumber)" -msgid_plural "garden pots (ripe cucumber)" -msgstr[0] "园艺花盆(黄瓜已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe cucumber)', 'str_pl': 'garden -#. pots (ripe cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe cucumbers. Disassemble to harvest " -"them." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing garlic)" -msgid_plural "garden pots (growing garlic)" -msgstr[0] "园艺花盆(大蒜生长中)" - -#. ~ Use action msg for {'str': 'garden pot (growing garlic)', 'str_pl': -#. 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "The garlic is ready to harvest!" -msgstr "大蒜已经可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing garlic)', 'str_pl': 'garden -#. pots (growing garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing garlic bulbs. Once ripe, it can be activated " -"to prepare it for harvest." -msgstr "这是一个种植着大蒜的园艺花盆。一旦成熟,它就可以被激活以供收获。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe garlic)" -msgid_plural "garden pots (ripe garlic)" -msgstr[0] "园艺花盆(大蒜已成熟)" - -#. ~ Description for {'str': 'garden pot (ripe garlic)', 'str_pl': 'garden -#. pots (ripe garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing pungent garlic bulbs. Disassemble to " -"harvest them, or wave it at vampires to scare them." -msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "roadheader" -msgid_plural "roadheaders" -msgstr[0] "掘进机" - -#. ~ Description for roadheader -#: lang/json/GENERIC_from_json.py -msgid "" -"A large and heavy jagged metalhead with a lot of spikes for destroying mine " -"walls." -msgstr "一个巨大而沉重的长满锯齿刀金属头,上面有许多锋利的刀刃,能够轻松掘开矿床。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "Balancer" -msgid_plural "Balancers" -msgstr[0] "平衡器" - -#. ~ Description for Balancer -#: lang/json/GENERIC_from_json.py -msgid "A large and heavy metal bar for balancing a vehicle." -msgstr "一根巨大而沉重的金属棒,用来平衡载具的负重。" +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." +msgstr "一本古老的海拉尔传说和故事集。其中关于一次历史上著名的战役的章节被加上了书签标记。" #: lang/json/GENERIC_from_json.py msgid "The Life and Work of Tiger Sauer" @@ -54727,6 +55760,49 @@ msgid "" "smashed for iron." msgstr "一个损坏的铁傀儡,看起来像一件后现代艺术品。打碎可以获得铁。" +#: lang/json/GENERIC_from_json.py +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" +msgstr[0] "次级次元袋" + +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff" +" you put into it. It takes a few words and hand-waving to take an item out." +msgstr "" +"一个可以装下更多东西的袋子。这个袋子用魔法减轻了内部物品的重量,并且体积也比你放进的物品体积要小得多。只需说句话再挥手就能取出其中的任何物品。" + +#: lang/json/GENERIC_from_json.py +msgid "dimensional bag" +msgid_plural "dimensional bags" +msgstr[0] "次元袋" + +#: lang/json/GENERIC_from_json.py +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" +msgstr[0] "高级次元袋" + +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." +msgstr "这个次元袋是人类将制造和魔法秘密结合所能达到的创新极限。" + +#: lang/json/GENERIC_from_json.py +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" +msgstr[0] "超重保鲜盒" + +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." +msgstr "一个使用重力魔法为食物保鲜的盒子。它使盒子里的物品变得更重,但任何存放在其中食物都能保存更长时间,而且可以装下比自身体积更多的物品。" + #: lang/json/GENERIC_from_json.py msgid "lesser staff of the magi" msgid_plural "lesser staves of the magi" @@ -55314,6 +56390,21 @@ msgid "" "tips from retracting while in staff configuration. Activate to extend." msgstr "这种多用途武器使用科技魔法增强过的弹簧以保持长杖两端在甩棍模式时收回。激活以折叠。" +#: lang/json/GENERIC_from_json.py +msgid "endless flask" +msgid_plural "endless flasks" +msgstr[0] "无尽酒瓶" + +#. ~ Use action msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" +msgstr "你打开酒瓶,发现其中已经装满了香甜的威士忌!" + +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "The flask isn't done refilling yet." +msgstr "酒瓶还没装满。" + #: lang/json/GENERIC_from_json.py msgid "magic token" msgid_plural "magic tokens" @@ -55671,7 +56762,7 @@ msgid "" "the edge is impeccable." msgstr "古拉姆,传说中英雄齐格鲁德使用的魔剑。据传是斩杀传说中恶龙法夫尼尔的剑。据说曾将侏儒雷金的铁砧劈成两半,它的剑刃无懈可击。" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Laevateinn" msgid_plural "Laevateinns" msgstr[0] "Laevateinn,灾厄之剑" @@ -56790,12 +57881,12 @@ msgid "" msgstr "你发射出一道X光,并通过魔法来短暂地看清X光所及区域。" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Overcharge" -msgid_plural "Scrolls of Overcharge" -msgstr[0] "过载术卷轴" +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" +msgstr[0] "喷嚏激光术卷轴" -#. ~ Description for {'str': 'Scroll of Overcharge', 'str_pl': 'Scrolls of -#. Overcharge'} +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': +#. 'Scrolls of Optical Sneeze Beam'} #: lang/json/GENERIC_from_json.py msgid "" "You overcharge your internal batteries to send a semi-directed beam from " @@ -57311,6 +58402,32 @@ msgid "" "hopes to discover a more permanent solution." msgstr "人类是寻求自我提升的生物。这本著作详细研究了许多可以暂时增强人类身体极限的法术,希望能从中寻找到一个更持久的解决方案。" +#: lang/json/GENERIC_from_json.py +msgid "cauldron of purification" +msgid_plural "cauldrons of purification" +msgstr[0] "净化大锅" + +#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons +#. of purification'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This cauldron made of demon spider chitin seems to absorb the light. It " +"will hold 16 liters of material and will absorb poisons from it. It may " +"have other properties that require discovery." +msgstr "这个由恶魔蜘蛛甲壳所制成的大锅似乎正在吸收四周的光线。 它能够容纳16升原料,并吸收其中的毒素。它可能还有其他需要你发现的隐藏属性。" + +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "山铜大锅" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "这是一个用山铜制成的炼金术大锅。这种金属特别耐炼金时产生的特殊腐蚀。" + #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" @@ -57386,1112 +58503,53 @@ msgid "" "much more expensive." msgstr "一个由山铜制成的车架。比钢制车架要坚固得多,但同时也比它昂贵得多。" -#. ~ Description for broken turret #: lang/json/GENERIC_from_json.py -msgid "" -"A broken turret. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." -msgstr "一个损坏的炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken military turret" -msgid_plural "broken military turrets" -msgstr[0] "军用炮塔(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced turret" -msgid_plural "broken advanced turrets" -msgstr[0] "高级炮塔(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense turret" -msgid_plural "broken defense turrets" -msgstr[0] "防御炮塔(损坏)" - -#. ~ Description for broken defense turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "一个损坏的防御炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken military turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "一个损坏的军用炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken advanced turret -#. ~ Description for broken 9mm turret -#. ~ Description for broken riotcontrol turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken 9mm defense turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "一个损坏的9mm防御炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 9mm turret" -msgid_plural "broken 9mm turrets" -msgstr[0] "9mm口径炮塔(损坏)" - -#. ~ Description for broken 9mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken shotgun defense turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的防御炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken riot control turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control turret. Much less threatening now that it lies limp " -"on solid ground. Could be gutted for parts." -msgstr "一个损坏的防暴炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol turret" -msgid_plural "broken riotcontrol turrets" -msgstr[0] "防暴炮塔(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken 5.56mm turret" -msgid_plural "broken 5.56mm turrets" -msgstr[0] "5.56mm口径炮塔(损坏)" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5.56mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的军用5.56mm口径炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 7.62mm turret" -msgid_plural "broken 7.62mm turrets" -msgstr[0] "7.62mm口径炮塔(损坏)" - -#. ~ Description for broken 7.62mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 7.62mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的军用7.62mm口径炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 50cal turret" -msgid_plural "broken 50cal turrets" -msgstr[0] ".50 口径炮塔(损坏)" - -#. ~ Description for broken 50cal turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 50 caliber turret. Much less threatening now that " -"it lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的军用 .50 口径炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 40mm turret" -msgid_plural "broken 40mm turrets" -msgstr[0] "40mm榴弹炮塔(损坏)" - -#. ~ Description for broken 40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 40mm grenade turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的军用40mm榴弹炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5x50 flechette turret. Much less threatening now " -"that it lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的军用5x50mm镖形弹炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 8x40mm turret" -msgid_plural "broken 8x40mm turrets" -msgstr[0] "8x40mm 无壳弹炮塔(损坏)" - -#. ~ Description for broken 8x40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 8x40mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的军用8x40mm无壳弹炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken flamethrower turret" -msgid_plural "broken flamethrower turrets" -msgstr[0] "喷火炮塔(损坏)" - -#. ~ Description for broken flamethrower turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade flamethrower turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的军用火焰喷射器炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken laser turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced laser emitter turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的高级激光炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken acid turret" -msgid_plural "broken acid turrets" -msgstr[0] "喷酸炮塔(损坏)" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid thrower turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的高级酸液喷射器炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken plasma turret" -msgid_plural "broken plasma turrets" -msgstr[0] "等离子炮塔(损坏)" - -#. ~ Description for broken plasma turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced plasma ejector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的高级等离子炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken rail gun turret" -msgid_plural "broken rail gun turrets" -msgstr[0] "轨道炮炮塔(损坏)" - -#. ~ Description for broken rail gun turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced rail gun turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的高级轨道炮炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid projector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的高级酸液喷射器炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken electro turret" -msgid_plural "broken electro turrets" -msgstr[0] "放电炮塔(损坏)" - -#. ~ Description for broken electro turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced electro caster turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的高级放电炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken EMP turret" -msgid_plural "broken EMP turrets" -msgstr[0] "EMP炮塔(损坏)" - -#. ~ Description for broken EMP turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced EMP generator turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一个损坏的高级EMP炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken gaurdin gnome" -msgid_plural "broken gaurdin gnomes" -msgstr[0] "园艺机器人(损坏)" - -#. ~ Description for broken gaurdin gnome -#: lang/json/GENERIC_from_json.py -msgid "A broken and completely harmless garden gnome." -msgstr "一个损坏的园艺机器人。现在安静的散在地上构不成威胁了。" - -#: lang/json/GENERIC_from_json.py -msgid "broken hack" -msgid_plural "broken hacks" -msgstr[0] "眼球无人机(损坏)" - -#. ~ Description for broken eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot, now dark and motionless. Could be stripped down for parts." -msgstr "一台损坏的眼球无人机。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed eyebot" -msgid_plural "broken disarmed eyebots" -msgstr[0] "眼球无人机(无武装)" - -#. ~ Description for broken disarmed eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot. Its integrated weapon module has been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "一个损坏的眼球无人机。内置武器已经被拆卸掉。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken utility robot" -msgid_plural "broken utility robots" -msgstr[0] "通用机器人(损坏)" - -#. ~ Description for broken utility robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken utility robot, now limp and unmoving. Could be gutted for parts or" -" crafted into a salvaged robot." -msgstr "一个损坏的通用机器人。现在安静的散在地上构不成威胁了。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed skitterbot" -msgid_plural "broken disarmed skitterbots" -msgstr[0] "掠行机器人(无武装)" - -#. ~ Description for broken disarmed skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot. Its internal weapon modules have been removed. Could " -"be gutted for parts or crafted into a salvaged robot." -msgstr "一个损坏的掠行机器人。内置武器已经被拆卸掉。可以拆解得到部件或者改装再利用。" - -#. ~ Description for broken skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot, now harmless and inert. Could be stripped of integral " -"weapon modules." -msgstr "一个损坏的掠行机器人。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed defense bot" -msgid_plural "broken disarmed defense bots" -msgstr[0] "防御机器人(无武装)" - -#. ~ Description for broken disarmed defense bot -#. ~ Description for broken security robot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken security robot -#. ~ Description for broken defense bot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken disarmed military bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "一个损坏的防御机器人。内置武器已经被拆卸掉。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken security robot" -msgid_plural "broken security robots" -msgstr[0] "安防机器人(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol robot" -msgid_plural "broken riotcontrol robots" -msgstr[0] "防暴机器人(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken chickenwalker" -msgid_plural "broken chickenwalkers" -msgstr[0] "双足机器人(损坏)" - -#. ~ Description for broken chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "A broken chickenwalker. Could be stripped for parts." -msgstr "一个损坏的双足机器人。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed chickenwalker" -msgid_plural "broken disarmed chickenwalkers" -msgstr[0] "双足机器人(无武装)" - -#. ~ Description for broken disarmed chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken chickenwalker. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "一个损坏的双足机器人。内置武器已经被拆卸掉。可以拆解得到部件或者改装再利用。" - -#. ~ Description for broken tank drone -#: lang/json/GENERIC_from_json.py -msgid "A broken tank drone. Could be stripped down for parts." -msgstr "一个损坏的坦克无人机。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed tank drone" -msgid_plural "broken disarmed tank drones" -msgstr[0] "坦克无人机(无武装)" - -#. ~ Description for broken disarmed tank drone -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Could be gutted for parts or recrafted into a salvaged" -" robot." -msgstr "一个损坏的坦克无人机。内置武器已经被拆卸掉。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "robot component" -msgid_plural "robot components" -msgstr[0] "机器人组件" - -#. ~ Description for robot component -#: lang/json/GENERIC_from_json.py -msgid "" -"A component for turrets and robots. It is unuseable in its current state." -msgstr "一块用于炮塔和机器人的制造组件。目前状态下无法独自使用。" - -#: lang/json/GENERIC_from_json.py -msgid "integral microreactor" -msgid_plural "integral microreactors" -msgstr[0] "内置核反应堆" - -#. ~ Description for integral microreactor -#: lang/json/GENERIC_from_json.py -msgid "A compact fusion reactor used to power a robot's energy weapons." -msgstr "一个小型核聚变反应堆,用于为机器人的能量武器供能。" - -#: lang/json/GENERIC_from_json.py -msgid "integral flash gun" -msgid_plural "integral flash guns" -msgstr[0] "内置闪光灯" - -#: lang/json/GENERIC_from_json.py -msgid "integral tazer" -msgid_plural "integral tazers" -msgstr[0] "内置电击枪" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 9mm firearm" -msgid_plural "integral 9mm firearms" -msgstr[0] "内置9mm口径枪械" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 5.56mm firearm" -msgid_plural "integral 5.56mm firearms" -msgstr[0] "内置5.56mm口径枪械" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 7.62mm firearm" -msgid_plural "integral 7.62mm firearms" -msgstr[0] "内置7.62mm口径枪械" - -#: lang/json/GENERIC_from_json.py -msgid "integral shotgun" -msgid_plural "integral shotguns" -msgstr[0] "内置霰弹枪" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral beanbag launcher" -msgid_plural "integral beanbag launchers" -msgstr[0] "内置沙包弹发射器" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral teargas launcher" -msgid_plural "integral teargas launchers" -msgstr[0] "内置催泪瓦斯弹发射器" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py -msgid "integral flamethrower" -msgid_plural "integral flamethrowers" -msgstr[0] "内置火焰喷射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral flechette firearm" -msgid_plural "integral flechette firearms" -msgstr[0] "内置镖形弹枪械" - -#: lang/json/GENERIC_from_json.py -msgid "integral 8x40mm firearm" -msgid_plural "integral 8x40mm firearms" -msgstr[0] "内置8x40mm无壳弹枪械" - -#: lang/json/GENERIC_from_json.py -msgid "integral 50 caliber firearm" -msgid_plural "integral 50 caliber firearms" -msgstr[0] "内置 .50 口径枪械" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral grenade launcher" -msgid_plural "integral grenade launchers" -msgstr[0] "内置榴弹发射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral laser weapon" -msgid_plural "integral laser weapons" -msgstr[0] "内置激光武器" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral plasma ejector" -msgid_plural "integral plasma ejectors" -msgstr[0] "内置等离子发射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral electromagnetic railgun" -msgid_plural "integral electromagnetic railguns" -msgstr[0] "内置电磁轨道炮" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral acid thrower" -msgid_plural "integral acid throwers" -msgstr[0] "内置酸液喷射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral electro caster" -msgid_plural "integral electro casters" -msgstr[0] "内置放电装置" - -#: lang/json/GENERIC_from_json.py -msgid "integral EMP projector" -msgid_plural "integral EMP projectors" -msgstr[0] "内置EMP发射器" - -#. ~ Description for Mjölnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Mjölnir, the hammer of Thor. It is rumored to be able to level" -" mountains with a single blow. It is decorated with gold and silver " -"ornaments." -msgstr "北欧战争农业之神索尔所使用的Mjölnir,雷神之锤的复制品。据说这玩意能一击打平一座山。但这件上面点缀了许多金银饰品。" - -#. ~ Description for Gungnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Gungnir, the spear of Odin. It is rumored to be the perfect " -"spear, perfectly hitting any target regardless of the wielder's strength or " -"skill. It is decorated with gold and silver ornaments." -msgstr "" -"冈格尼尔的复制品,传说中北欧众神之父奥丁使用的长矛。据传它是完美的长矛,无论持用者的力量或技能如何,它都能完美地击中任何目标。长矛上镶嵌满了金银饰品。" - -#: lang/json/GENERIC_from_json.py -msgid "broken light auto armor" -msgid_plural "broken light auto armors" -msgstr[0] "自动化轻型动力装甲(损坏)" - -#. ~ Description for broken light auto armor -#. ~ Description for broken basic auto armor -#. ~ Description for broken heavy auto armor -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken set of power armor fitted with an AI core for automated use. It " -"cannot be worn or disassembled until re-crafted into an undamaged robot." -msgstr "一套损坏的安装了AI核心,能够自主行动的动力装甲。它无法被你装备或拆解,但是可以改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken basic auto armor" -msgid_plural "broken basic auto armors" -msgstr[0] "自动化基础动力装甲(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken heavy auto armor" -msgid_plural "broken heavy auto armors" -msgstr[0] "自动化重型动力装甲(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "dead craftbuddy" -msgid_plural "dead craftbuddies" -msgstr[0] "制造小帮手(损坏)" - -#. ~ Description for {'str': 'dead craftbuddy', 'str_pl': 'dead craftbuddies'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken repair robot, now limp and unmoving. Could be gutted for parts or " -"re-crafted into a functioning pal." -msgstr "一个损坏的制造小帮手。现在安静的散在地上无法移动了。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating lantern" -msgid_plural "broken floating lanterns" -msgstr[0] "浮灯无人机(损坏)" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating lantern, now dark and motionless. Could be gutted for " -"parts." -msgstr "一个损坏的浮灯无人机。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "A broken arson hack, now cold and burnt. Could be gutted for parts." -msgstr "一个损坏的放火无人机。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken distract-o-hack, now silent and still. Could be gutted for parts." -msgstr "一个损坏的吵吵无人机。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken spore hack" -msgid_plural "broken spore hacks" -msgstr[0] "孢子机器人(损坏)" - -#. ~ Description for broken spore hack -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken spore hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." -msgstr "一个损坏的孢子无人机。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken watercannon turret" -msgid_plural "broken watercannon turrets" -msgstr[0] "水炮炮塔(损坏)" - -#. ~ Description for broken watercannon turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken watercannon turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "一个损坏的水炮炮塔。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating heater" -msgid_plural "broken floating heaters" -msgstr[0] "浮空加热器(损坏)" - -#. ~ Description for broken floating heater -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating heater, now cold and motionless. Could be stripped down " -"or re-crafted." -msgstr "一个损坏的浮空加热器。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating furnace" -msgid_plural "broken floating furnaces" -msgstr[0] "浮空壁炉(损坏)" - -#. ~ Description for broken floating furnace -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating furnace, now cold and motionless. Could bestripped down " -"or re-crafted." -msgstr "一个损坏的悬浮炉。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken burning eye" -msgid_plural "broken burning eyes" -msgstr[0] "机械燃烧之眼(损坏)" - -#. ~ Description for broken burning eye -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken burning eye, now dark and motionless. Could be stripped down or " -"re-crafted." -msgstr "一个损坏的机械燃烧之眼。现在安静的散在地上构不成威胁了。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken butler-bot" -msgid_plural "broken butler-bots" -msgstr[0] "管家机器人(损坏)" - -#. ~ Description for broken butler-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken butler-bot, now silent and mangled. Could be stripped down for " -"parts." -msgstr "一个损坏的管家机器人。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken construction robot" -msgid_plural "broken construction robots" -msgstr[0] "建筑机器人(损坏)" - -#. ~ Description for broken construction robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken construction robot, now wrecked and immobile. Could be stripped " -"down for parts." -msgstr "一个损坏的建筑机器人。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken firefighter robot" -msgid_plural "broken firefighter robots" -msgstr[0] "消防机器人(损坏)" - -#. ~ Description for broken firefighter robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken firefighter robot, now cold and inert. Could be stripped down for " -"parts." -msgstr "一个损坏的消防机器人。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken blob breeder" -msgid_plural "broken blob breeders" -msgstr[0] "变形怪培育机(损坏)" - -#. ~ Description for broken blob breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien blobs. Could be stripped down or re-" -"crafted." -msgstr "一个损坏的变形怪培育机。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken slime breeder" -msgid_plural "broken slime breeders" -msgstr[0] "变形怪培育器(损坏)" - -#. ~ Description for broken slime breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien slimes. Could be stripped down or re-" -"crafted." -msgstr "一个损坏的变形怪培育器。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken digestron" -msgid_plural "broken digestrons" -msgstr[0] "消化机器人(损坏)" - -#. ~ Description for broken digestron -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken acid digestor robot, now cold and unmoving. Could be stripped down" -" or re-crafted." -msgstr "一个损坏的消化机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken bee-bot" -msgid_plural "broken bee-bots" -msgstr[0] "蜂巢机器人(损坏)" - -#. ~ Description for broken bee-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken beehive robot, now still and bee-less. Could be stripped down or " -"re-crafted." -msgstr "一个损坏的蜂巢机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken medical bot" -msgid_plural "broken medical bots" -msgstr[0] "医疗机器人(损坏)" - -#. ~ Description for broken medical bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot, now crumpled and inert. Could be stripped down for " -"parts." -msgstr "一个损坏的医疗机器人。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed medical robot" -msgid_plural "broken disarmed medical robots" -msgstr[0] "医疗机器人(无武装)" - -#. ~ Description for broken disarmed medical robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot. Its onboard pharma-crafter and integral surgical " -"tools have been removed. Could be gutted for parts or crafted into a " -"salvaged robot." -msgstr "一个损坏的医疗机器人。内置医用设备和手术装置已经被拆卸掉。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken assassin robot" -msgid_plural "broken assassin robots" -msgstr[0] "刺客机器人(损坏)" - -#. ~ Description for broken assassin robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken assassin robot, now limp and immobile. Could be stripped down or " -"re-crafted." -msgstr "一个损坏的刺客机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken elixirator" -msgid_plural "broken elixirators" -msgstr[0] "灵药机器人(损坏)" - -#. ~ Description for broken elixirator -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken elixirator, now shattered and lifeless. Could be stripped down or " -"re-crafted." -msgstr "一个损坏的灵药机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken party bot" -msgid_plural "broken party bots" -msgstr[0] "派对机器人(损坏)" - -#. ~ Description for broken party bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken party robot, now wasted and burnt out. Looks like the party's " -"over. Could be stripped down or re-crafted." -msgstr "一个损坏的派对机器人。看样子派对结束了。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken insane cyborg" -msgid_plural "broken insane cyborgs" -msgstr[0] "报废改造人(损坏)" - -#. ~ Description for broken insane cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be gutted for parts or " -"crafted into a salvaged robot." -msgstr "一个损坏的报废改造人。现在安静的散在地上构不成威胁了。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken necrotic cyborg" -msgid_plural "broken necrotic cyborgs" -msgstr[0] "死灵改造人(损坏)" - -#. ~ Description for broken necrotic cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be stripped down or re-" -"crafted into a salvaged robot." -msgstr "一个损坏的死灵改造人。现在安静的散在地上构不成威胁了。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken rat snatcher" -msgid_plural "broken rat snatchers" -msgstr[0] "捕鼠机器人(损坏)" - -#. ~ Description for broken rat snatcher -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken rat snatcher, now harmless and inert. Could be stripped down or " -"re-crafted." -msgstr "一个损坏的捕鼠机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken grab-bot" -msgid_plural "broken grab-bots" -msgstr[0] "擒拿机器人(损坏)" - -#. ~ Description for broken grab-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken grabber robot, now limp and nonthreatening. Could be stripped down" -" or re-crafted." -msgstr "一个损坏的擒拿机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken pest hunter" -msgid_plural "broken pest hunters" -msgstr[0] "灭害机器人(损坏)" - -#. ~ Description for broken pest hunter -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken pest hunter, now harmless and inert. Could be gutted for parts or " -"re-crafted." -msgstr "一个损坏的灭害机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense bot" -msgid_plural "broken defense bots" -msgstr[0] "防御机器人(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken junkyard cowboy" -msgid_plural "broken junkyard cowboys" -msgstr[0] "机器废料牛仔(损坏)" - -#. ~ Description for broken junkyard cowboy -#. ~ Description for broken shortcircuit samurai -#. ~ Description for broken slapdash paladin -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." -msgstr "一个损坏的改装机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken shortcircuit samurai" -msgid_plural "broken shortcircuit samurais" -msgstr[0] "机器短路武士(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken slapdash paladin" -msgid_plural "broken slapdash paladins" -msgstr[0] "机器瞎搭圣骑(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed military bot" -msgid_plural "broken disarmed military bots" -msgstr[0] "军用机器人(无武装)" - -#: lang/json/GENERIC_from_json.py -msgid "broken military trainer robot" -msgid_plural "broken military trainer robots" -msgstr[0] "军训机器人(损坏)" - -#. ~ Description for broken military trainer robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military trainer robot, shattered and inert. This one is armed " -"with an integrated paintball gun. Could be stripped for parts." -msgstr "一个损坏的军训机器人,内置了一把彩弹枪。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken military robot" -msgid_plural "broken military robots" -msgstr[0] "军用机器人(损坏)" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 5.56mm firearm. Could be stripped for parts." -msgstr "一个损坏的军用机器人,内置了一把5.56mm口径枪械。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 7.62mm firearm. Could be stripped for parts." -msgstr "一个损坏的军用机器人,内置了一把7.62mm口径枪械。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 50 caliber firearm. Could be stripped for parts." -msgstr "一个损坏的军用机器人,内置了一把 .50 口径枪械。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 8x40mm firearm. Could be stripped for parts." -msgstr "一个损坏的军用机器人,内置了一把8x40mm无壳弹枪械。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flechette gun. Could be stripped for parts." -msgstr "一个损坏的军用机器人,内置了一把镖形弹枪械。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 40mm grenade launcher. Could be stripped for parts." -msgstr "一个损坏的军用机器人,内置了一把40mm榴弹发射器。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken military flame robot" -msgid_plural "broken military flame robots" -msgstr[0] "军用喷火机器人(损坏)" - -#. ~ Description for broken military flame robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flamethrower. Could be stripped for parts." -msgstr "一个损坏的军用机器人,内置了一把火焰喷射器。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-guardian" -msgid_plural "broken robo-guardians" -msgstr[0] "守护者机器人(损坏)" - -#. ~ Description for broken robo-guardian -#. ~ Description for broken robo-protector -#. ~ Description for broken robo-defender -#. ~ Description for {'str': 'broken glittering lady', 'str_pl': 'broken -#. glittering ladies'} -#. ~ Description for broken bitter spinster -#. ~ Description for broken fist king -#. ~ Description for broken atomic sultan -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "一个损坏的改装机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken robote deluxe" -msgid_plural "broken robote deluxes" -msgstr[0] "豪华机器人(损坏)" - -#. ~ Description for broken robote deluxe -#: lang/json/GENERIC_from_json.py -msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "一个损坏的豪华机器人。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-protector" -msgid_plural "broken robo-protectors" -msgstr[0] "保卫者机器人(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-defender" -msgid_plural "broken robo-defenders" -msgstr[0] "防卫者机器人(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed advanced bot" -msgid_plural "broken disarmed advanced bots" -msgstr[0] "高级机器人(无武装)" - -#. ~ Description for broken disarmed advanced bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "一个损坏的高级机器人。内置武器已经被拆卸掉。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced robot" -msgid_plural "broken advanced robots" -msgstr[0] "高级机器人(损坏)" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated laser-" -"emitter. Could be stripped for parts." -msgstr "一个损坏的高级机器人,内置了一把激光武器。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated plasma-" -"ejector. Could be stripped for parts." -msgstr "一个损坏的高级机器人,内置了一把等离子发射器。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated electro-" -"caster. Could be stripped for parts." -msgstr "一个损坏的高级机器人,内置了一个放电装置。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated EMP " -"projector. Could be stripped for parts." -msgstr "一个损坏的高级机器人,内置了一把EMP发射器。现在安静的散在地上构不成威胁了。可以拆解得到部件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken glittering lady" -msgid_plural "broken glittering ladies" -msgstr[0] "机器闪光女士(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken bitter spinster" -msgid_plural "broken bitter spinsters" -msgstr[0] "机器辛辣阿姨(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken chainsaw horror" -msgid_plural "broken chainsaw horrors" -msgstr[0] "机器电锯狂人(损坏)" +msgid "TEST plank" +msgid_plural "TEST planks" +msgstr[0] "测试用木板" -#. ~ Description for broken chainsaw horror -#. ~ Description for broken screeching terror -#. ~ Description for broken hooked nightmare +#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" -"A broken salvaged robot. Thank God it's finally dead. Could be stripped or" -" recrafted." -msgstr "一个损坏的改装机器人,谢天谢地它可算是歇了。可以拆解得到部件或者改装再利用。" - -#: lang/json/GENERIC_from_json.py -msgid "broken screeching terror" -msgid_plural "broken screeching terrors" -msgstr[0] "机器尖啸恐魔(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken hooked nightmare" -msgid_plural "broken hooked nightmares" -msgstr[0] "机器钩心梦魇(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken fist king" -msgid_plural "broken fist kings" -msgstr[0] "机器铁拳国王(损坏)" - -#: lang/json/GENERIC_from_json.py -msgid "broken atomic sultan" -msgid_plural "broken atomic sultans" -msgstr[0] "机器核子苏丹(损坏)" - -#. ~ Description for AI core -#: lang/json/GENERIC_from_json.py -msgid "A computer module for controlling robots." -msgstr "一个用来控制机器人的计算机模块。" - -#: lang/json/GENERIC_from_json.py -msgid "surgery module" -msgid_plural "surgery modules" -msgstr[0] "手术模块" - -#. ~ Description for surgery module -#: lang/json/GENERIC_from_json.py -msgid "A microsurgery module for a medical robot." -msgstr "一个医疗机器人进行微创手术的内置模块。" - -#: lang/json/GENERIC_from_json.py -msgid "pharmaceutical module" -msgid_plural "pharmaceutical modules" -msgstr[0] "制药模块" +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" +" lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." +msgstr "一块尺寸大概有2x4平方英寸的狭窄而厚实的木板。当做近战武器刚好趁手,也可用于各种建造。" -#. ~ Description for pharmaceutical module #: lang/json/GENERIC_from_json.py -msgid "A pharmaceutical fabricating module for a medical robot." -msgstr "一个医疗机器人制造麻醉药品的内置模块。" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral paintball gun" -msgid_plural "integral paintball guns" -msgstr[0] "内置彩弹枪" +msgid "TEST pipe" +msgid_plural "TEST pipes" +msgstr[0] "测试用钢管" -#. ~ Description for integral paintball gun #: lang/json/GENERIC_from_json.py -msgid "" -"A high-powered paintball module used for safely testing robots or training " -"soldiers." -msgstr "一把用于安全测试机器人或训练士兵的高性能彩弹模块。" +msgid "TEST sheet metal" +msgid_plural "TEST sheet metals" +msgstr[0] "测试用薄钢板" #: lang/json/GENERIC_from_json.py -msgid "robot carrier" -msgid_plural "robot carriers" -msgstr[0] "机器人托架" +msgid "TEST gallon jug" +msgid_plural "TEST gallon jugs" +msgstr[0] "测试用加仑壶" -#. ~ Description for robot carrier #: lang/json/GENERIC_from_json.py -msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large machine in place. It is " -"meant to hold large drones and robots for transport. Use it on a suitable " -"robot to capture, use it on an empty tile to release." -msgstr "" -"一个有着运载货物用的绳索和附着点的重型框架,额外安装了用于固定大型机器人的栏杆,可以用来运输大型机器人。激活它后选择需要装载的机器人,或者选择空地卸载机器人。" +msgid "TEST small waterskin" +msgid_plural "TEST small waterskins" +msgstr[0] "测试用小号皮水袋" #: lang/json/GENERIC_from_json.py -msgid "TEST plank" -msgid_plural "TEST planks" -msgstr[0] "测试用木板" +msgid "test balloon" +msgid_plural "test balloons" +msgstr[0] "测试用气球" +#. ~ Description for {'str': 'test balloon'} #: lang/json/GENERIC_from_json.py -msgid "TEST pipe" -msgid_plural "TEST pipes" -msgstr[0] "测试用钢管" +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." +msgstr "弹性,水密,气密,一个完美的测试用气球。" #: lang/json/GENERIC_from_json.py -msgid "TEST sheet metal" -msgid_plural "TEST sheet metals" -msgstr[0] "测试用薄钢板" +msgid "test pointy stick" +msgid_plural "test pointy sticks" +msgstr[0] "测试用尖木棍" #: lang/json/GENERIC_from_json.py msgid "TEST clumsy sword" @@ -58524,177 +58582,46 @@ msgid "A well-balanced sword for test purposes" msgstr "测试用的平衡性很好的武器。" #: lang/json/GENERIC_from_json.py -msgid "a large artillery casing" -msgid_plural "large artillery casings" -msgstr[0] "大炮的弹壳。" +msgid "test box" +msgid_plural "test boxs" +msgstr[0] "测试用纸盒" +#. ~ Description for {'str': 'test box'} #: lang/json/GENERIC_from_json.py -msgid "30x113mm autocannon belt linkage" -msgid_plural "30x113mm autocannon belt linkages" -msgstr[0] "30x113mm 自动机炮弹链链节" +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." +msgstr "一个简单的1升纸板箱,故意未设定比例。" #: lang/json/GENERIC_from_json.py -msgid "30mm canister" -msgid_plural "30mm canisters" -msgstr[0] "30mm 榴弹壳" +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" +msgstr[0] "测试用14厘米短棍" -#. ~ Description for 30mm canister +#. ~ Description for test 14 cm rod #: lang/json/GENERIC_from_json.py -msgid "A canister from a spent 30mm shell." -msgstr "一个30mm榴弹发射后的弹壳。" +msgid "A thin rod exactly 14 cm in length" +msgstr "一根14厘米长的短棍。" #: lang/json/GENERIC_from_json.py -msgid "120mm canister" -msgid_plural "120mm canisters" -msgstr[0] "120mm 弹壳" +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" +msgstr[0] "测试用15厘米短棍" -#. ~ Description for 120mm canister +#. ~ Description for test 15 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 120mm shell, now an expensive paperweight." -msgstr "一个120mm炮弹发射后的弹壳,可以当成昂贵的镇纸。" +msgid "A thin rod exactly 15 cm in length" +msgstr "一根15厘米长的短棍。" #: lang/json/GENERIC_from_json.py -msgid "155mm canister" -msgid_plural "155mm canisters" -msgstr[0] "155mm 弹壳" +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" +msgstr[0] "测试用核咖啡壶" -#. ~ Description for 155mm canister +#. ~ Description for {'str': 'test nuclear carafe'} #: lang/json/GENERIC_from_json.py msgid "" -"A large canister from a spent 155mm shell, now an expensive paperweight." -msgstr "一个155mm炮弹发射后的弹壳,可以当成昂贵的镇纸。" - -#: lang/json/GENERIC_from_json.py -msgid "stabilized portal" -msgid_plural "stabilized portals" -msgstr[0] "稳定传送门" - -#. ~ Description for {'str': 'stabilized portal'} -#: lang/json/GENERIC_from_json.py -msgid "" -"As you gaze into the seemingly infinite depths of this portable hole in " -"reality, a phrase from a time forever gone echoes in your mind. \"There are" -" two things that are infinite: the universe and human kleptomania.\"" -msgstr "" -"当你看从这一在现实中可延展的洞口中看进去里面这样无限深的空洞时,一句远古的话语在你的脑中回想:它的意思是:\"只有两种东西是无边际的:宇宙和人类的盗窃癖。\"" - -#: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" -msgstr[0] "载具架" - -#. ~ Description for {'str': 'vehicle shelving'} -#: lang/json/GENERIC_from_json.py -msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." -msgstr "几个重型车架经过改装被固定在一起,配备有系紧装置和连接点,以承载大量货物。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" -msgstr[0] "太阳能板阵列" - -#. ~ Description for {'str': 'solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. However, this comes at the " -"cost of being prohibitively heavy." -msgstr "一打太阳能电池板被安装在几米高的底盘上,使脆弱的面板能安全地远离任何潜在威胁,并能够跟踪太阳以提高了发电效率,代价是整套系统变得非常沉重。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" -msgstr[0] "太阳能板阵列(高能)" - -#. ~ Description for {'str': 'upgraded solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able to track the sun. However, this comes" -" at the cost of being prohibitively heavy and obstructive." -msgstr "" -"一打高能太阳能电池板被安装在几米高的底盘上,使脆弱的太阳能板安全地远离任何潜在威胁,并能跟踪太阳以提高发电效率,代价是整套系统变得非常沉重而且无法通行。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" -msgstr[0] "太阳能板阵列(强化高能)" - -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded reinforced solar panels set on a chassis reaching several " -"meters high. It keeps the fragile panels safely away from any potential " -"threats and improves efficiency due to being able to track the sun. " -"However, this comes at the cost of being prohibitively heavy and " -"obstructive." -msgstr "" -"一打强化高能太阳能电池板被安装在几米高的底盘上。使脆弱的太阳能板安全地远离任何潜在威胁,并能跟踪太阳以提高发电效率。代价是整套系统变得非常沉重而且无法通行。" - -#: lang/json/GENERIC_from_json.py -msgid "gelectrode" -msgid_plural "gelectrodes" -msgstr[0] "发光变形怪" - -#. ~ Description for {'str': 'gelectrode'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A strange biological anomaly, this blob seems capable of emitting light when" -" electricity is provided to it, from small lamps up to headlights. " -"Unfortunately there is no place to insert a battery, so you'll have to hook " -"it up to a vehicle's power grid. It seems pliable enough to pull apart…" -msgstr "" -"一个奇怪的生物学异常现象,这只变形怪在通电时能够发光,这让它能当作各类大小的车灯使用。不过可惜的是,它内部放不下任何电池,因此需要连接到载具的电力系统上才能使用。它看起来柔韧得似乎可以被直接拉开……" - -#: lang/json/GENERIC_from_json.py -msgid "amorphous heart" -msgid_plural "amorphous hearts" -msgstr[0] "无定形核心" - -#. ~ Description for {'str': 'amorphous heart'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This amorphous mass seems to have finished developing; its advanced internal" -" structures testifying to that. It is capable of locomotion through " -"internal hydraulic pressure, capable of moving substantial loads, and, in an" -" astounding display of intelligence, is capable of manipulating anything " -"it's attached to, whether blob-based or otherwise, through extended " -"pseudopods. You think you might be able to manipulate it, and through it, " -"all its attached parts. Though to do so you'll have to position yourself to" -" be in contact with it; and it appears unnervingly willing to accommodate " -"you…" -msgstr "" -"这滩无定形物质似乎已经成长完成;其先进的内部结构就能够证明。它能够通过调整体内液压进行移动,同时能够承担大量负载,并且显示出惊人的智力,能够通过伸长的伪足操纵连接着的任何东西,无论是变形怪部件还是其他载具部件。你认为你可能能够控制它,并通过它,控制所有连接的载具部件。然而这需要你和它亲密接触一番;让人更加不安的是,它看起来十分愿意容纳你……" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond frame" -msgid_plural "diamond frames" -msgstr[0] "钻石车架" - -#. ~ Description for {'str': 'diamond frame'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " -"weight." -msgstr "一个闪闪发光的钻石车架。以它的重量来说令人难以置信的坚固。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond plating" -msgid_plural "diamond platings" -msgstr[0] "钻石装甲板" - -#. ~ Description for {'str': 'diamond plating'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A piece of armor plating made of clear diamond. Incredibly strong for its " -"weight." -msgstr "一块由透明的钻石制成的装甲板。以它的重量来说令人难以置信的坚固。" +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." +msgstr "这是一个测试用咖啡壶,设计能保持原子饮料的放射性。它一直在泄漏辐射。" #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" @@ -60477,7 +60404,7 @@ msgstr[0] "沙漠之鹰 弹匣" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." msgstr "一个标准的8发钢制弹匣,可用于IMI 沙漠之鹰手枪。" #: lang/json/MAGAZINE_from_json.py @@ -60963,18 +60890,6 @@ msgstr[0] "RMGB50 8x40mm 弹匣" msgid "A 50 round box magazine for use with Rivtech 8x40mm caseless firearms." msgstr "50发盒式弹匣,可用于使用Rivtech 8x40mm无壳弹的武器。" -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "RMGS5 快速装弹器(8x40mm口径)" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "该装弹器由Rivtech公司制造,用于RM99左轮手枪,可容纳5发 8x40mm 无壳弹,为兼容的左轮手枪快速装弹。" - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" @@ -61596,107 +61511,6 @@ msgstr[0] "燃料舱" msgid "A bin for holding solid fuel." msgstr "一个用来储存固态燃料的箱子。" -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 auto-magazine" -msgid_plural "CW-24 auto-magazines" -msgstr[0] "CW-24自动弹匣" - -#. ~ Description for CW-24 auto-magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "用于CW-24步枪的高级自动弹匣。和SVS弹匣一样,它有一个微型机器人装置给它自动装弹。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 extended magazine" -msgid_plural "CW-24 extended magazines" -msgstr[0] "CW-24扩充弹匣" - -#. ~ Description for CW-24 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "用于CW-24步枪的高级自动弹匣。和SVS弹匣一样,它有一个微型机器人装置给它自动装弹。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 extended magazine" -msgid_plural "CWD-63 extended magazines" -msgstr[0] "CWD-63扩充弹匣" - -#. ~ Description for CWD-63 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." -msgstr "一个便宜的用于CWD-63的10发盒式弹匣。嗯,不是那么靠谱。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 magazine" -msgid_plural "CWD-63 magazines" -msgstr[0] "CWD-63弹匣" - -#. ~ Description for CWD-63 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"Since it's created for the .308 round, it doesn't need the curved shape of " -"the original magazine." -msgstr "既然它是为.308子弹设计的,它就不需要像原来的弹匣一样有弧线的外形了。" - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robodrum" -msgid_plural "SVS-24 robodrums" -msgstr[0] "SVS-24机器人弹鼓" - -#. ~ Description for SVS-24 robodrum -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 135-round drum magazine. Like the auto-magazine, it loads " -"cartridges using microrobotics." -msgstr "一个高级的135发的机器人弹鼓。从其名称能看出来,它有一个微型机器人装置给它自动装弹。" - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robomag" -msgid_plural "SVS-24 robomags" -msgstr[0] "SVS-24机器人弹匣" - -#. ~ Description for SVS-24 robomag -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 42-round auto-magazine. Unlike previous generations of " -"magazines, this one uses microrobotics to load cartridges." -msgstr "一个高级的42发自动弹匣。和上个时代的弹匣不一样,它有一个微型机器人装置为它自动装弹。" - -#. ~ Description for .454 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 6 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "可填装6发.454口径子弹的快速装弹器,为兼容的左轮手枪快速装弹。" - -#: lang/json/MAGAZINE_from_json.py -msgid ".454 8-round speedloader" -msgid_plural ".454 8-round speedloaders" -msgstr[0] "8发快速装弹器(.454口径)" - -#. ~ Description for .454 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 8 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "可填装8发.454口径子弹的快速装弹器,为兼容的左轮手枪快速装弹。" - -#: lang/json/MAGAZINE_from_json.py -msgid "Eagle 1776 magazine" -msgid_plural "Eagle 1776 magazines" -msgstr[0] "\"鹰\" 1776冲锋枪弹匣" - -#. ~ Description for Eagle 1776 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " -"to the Eagle 1776." -msgstr "一个美国制造的盒式弹匣,设计用于\"鹰\" 1776冲锋枪使用,可容纳24发.44马格南弹。" - #: lang/json/MAGAZINE_from_json.py msgid "grenade machine gun belt" msgid_plural "grenade machine gun belts" @@ -61881,60 +61695,26 @@ msgid "" msgstr "这是一个小型魔力水晶,专门被设计用来存储魔杖所需的能量。" #: lang/json/MAGAZINE_from_json.py -msgid "30x113mm ammo belt" -msgid_plural "30x113mm ammo belts" -msgstr[0] "30x113mm 炮弹带" - -#: lang/json/MAGAZINE_from_json.py -msgid "BB hopper" -msgid_plural "BB hoppers" -msgstr[0] "BB弹漏匣" - -#. ~ Description for {'str': 'BB hopper'} -#. ~ Description for {'str': 'pebble hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"small round shot into the weapon's chamber below. It is not very reliable, " -"but quick to reload." -msgstr "" -"一个简易的车载武器用弹药漏匣。结构简单,一个底部开口的金属匣子,配上一些塑料导轨,圆形的弹药依靠重力掉落在导轨上并送进下方的武器发射槽中。虽然看上去不是很可靠,但装填起来很快。" - -#: lang/json/MAGAZINE_from_json.py -msgid "bolt hopper" -msgid_plural "bolt hoppers" -msgstr[0] "弩矢漏匣" - -#. ~ Description for {'str': 'bolt hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted crossbow. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"crossbow bolt into the weapon below. It is awkward to reload and not " -"especially reliable." -msgstr "" -"一个简易的车载武器用弩矢漏匣。结构简单,一个底部开口的金属匣子,配上一些塑料导轨,弩矢依靠重力掉落在导轨上并送进下方的武器发射槽中。装填起来很麻烦,而且可靠性也不高。" +msgid "test disposable battery" +msgid_plural "test disposable batteries" +msgstr[0] "测试用一次性电池" +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test +#. disposable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "canister rack" -msgid_plural "canister racks" -msgstr[0] "大炸弹弹药架" +msgid "This is a test disposable battery." +msgstr "一个测试用一次性电池。" -#. ~ Description for {'str': 'canister rack'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"heavy canister into the weapon below. It is awkward to reload and not " -"especially reliable." -msgstr "" -"一个简易的车载武器用抛射物弹药架。结构简单,一个底部开口的金属匣子,配上一些塑料导轨,炸弹等抛射物依靠重力掉落在导轨上并送进下方的武器发射槽中。装填起来很麻烦,而且可靠性也不高。" +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" +msgstr[0] "测试用可充电电池" +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test +#. rechargeable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "pebble hopper" -msgid_plural "pebble hoppers" -msgstr[0] "小石子漏匣" +msgid "This is a test battery that may be recharged." +msgstr "一个测试用可充电电池。" #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" @@ -61955,27 +61735,28 @@ msgid "Drifts the game away from realism and more towards sci-fi." msgstr "在现实主义的游戏中添加更多的科幻元素。" #: lang/json/MOD_INFO_from_json.py -msgid "C.R.I.T Expansion Mod" -msgstr "C.R.I.T 扩展" +msgid "Blaze Industries" +msgstr "变形怪工业" -#. ~ Description for C.R.I.T Expansion Mod +#. ~ Description for Blaze Industries #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds a plethora of content: professions, guns/mods, WIP enemies, mutations, " -"martial arts, melee weapons, and some QOL changes such as plants from " -"cutting grass." -msgstr "添加了巨量的内容:新职业,枪械/枪械模组,开发中的敌人,突变,武术,近战武器,还有一些游戏性的变更,比如割草会收获植物。" +"Introduces the fictional corporation Blaze Industries, bringing advanced " +"vehicle modification to the consumer." +msgstr "加入了介绍了虚构的变形怪工业公司,为消费者带来先进的载具改装件。" #: lang/json/MOD_INFO_from_json.py -msgid "Craftable Gun Pack" -msgstr "自制枪械包" +msgid "C.R.I.T Expansion Mod" +msgstr "C.R.I.T 扩展" -#. ~ Description for Craftable Gun Pack +#. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " -"balance." -msgstr "加入了更多的自制枪械,以及火药粉。警告:破坏游戏平衡。" +"Adds a plethora of content: professions, guns/mods/weapons, WIP mobs, " +"mutations, MA styles, and some QOL innawoods changes. Use the readme to see " +"more details!" +msgstr "" +"添加了巨量的内容:新职业,枪械/模组/武器,开发中的敌人,突变,武术,还有一些完全荒野求生时游戏性的变更,比如割草会收获植物。阅读Readme文档查看更多信息!" #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" @@ -61997,17 +61778,6 @@ msgid "" "occupation. Use other mods at your own risk!" msgstr "将大灾变转变为类似XCOM2风格的外星人入侵的全面改动类模组。不兼容其他模组,使用风险自负!" -#: lang/json/MOD_INFO_from_json.py -msgid "Folding Parts pack" -msgstr "折叠式车辆部件" - -#. ~ Description for Folding Parts pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Makes solar panels and several other parts foldable, and adds foldable " -"quarterboards." -msgstr "使太阳能电池板等载具部件变成可折叠,增加了可折叠的侧板。" - #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" msgstr "恐龙世界" @@ -62018,26 +61788,6 @@ msgid "" "Adds dinosaurs. Some rideable, others less friendly. Life will find a way." msgstr "添加了各类恐龙。有些是可骑乘的,另一些则不太友好。生命总会找到出路。" -#: lang/json/MOD_INFO_from_json.py -msgid "Icecoon's Arsenal" -msgstr "Icecoon的军工厂" - -#. ~ Description for Icecoon's Arsenal -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those gun nuts. Don't have enough near-future firearms in your life? " -"Add this mod today!" -msgstr "面向枪迷的MOD。游戏里没有近未来的枪械吗?加上这个MOD!" - -#: lang/json/MOD_INFO_from_json.py -msgid "DeadLeaves' Fictional Guns" -msgstr "DeadLeaves的虚构枪械" - -#. ~ Description for DeadLeaves' Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a bunch of rare, fictional weapons." -msgstr "增加了一些十分罕见的枪械以及科幻武器。" - #: lang/json/MOD_INFO_from_json.py msgid "Fuji's Military Profession Pack" msgstr "Fuji的军事职业Mod" @@ -62090,6 +61840,15 @@ msgstr "图形版大地图(Fuji建筑包)" msgid "Fuji Structures mod support for Graphical Overmap." msgstr "用于Fuji建筑包的图形版大地图。" +#: lang/json/MOD_INFO_from_json.py +msgid "Graphical Overmap Magiclysm" +msgstr "图形版大地图(大魔法)" + +#. ~ Description for Graphical Overmap Magiclysm +#: lang/json/MOD_INFO_from_json.py +msgid "Magiclysm support for Graphical Overmap." +msgstr "用于大魔法的图形版大地图。" + #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap More Locations" msgstr "图形版大地图(更多的地点)" @@ -62108,38 +61867,6 @@ msgstr "图形版大地图(更多城镇建筑)" msgid "Urban Development mod support for Graphical Overmap." msgstr "用于更多城镇建筑模组的图形版大地图" -#: lang/json/MOD_INFO_from_json.py -msgid "Garden Pots" -msgstr "园艺花盆" - -#. ~ Description for Garden Pots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Allows you to grow seeds in craftable garden pots that can be carried around" -" as items. Perfect for the nomadic botanist." -msgstr "让玩家能够制造可携带的花盆,并在其中种植作物,非常适合居无定所的种植者。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Roadheader and other mining vehicles" -msgstr "掘进机及其他矿车" - -#. ~ Description for Roadheader and other mining vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a few mining vehicles, requires Vehicle Additions Pack." -msgstr "增加了一些矿用载具之类的东西,需要载具增强包。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Hydroponics" -msgstr "水培种植" - -#. ~ Description for Hydroponics -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds hydroponic units, a furniture which can have crops planted in it for " -"increased yields. Spawn occasionally in labs or basements. Or build your " -"own." -msgstr "添加水培单元,一种可以提高种植在其中的作物产量的新家具。偶尔会在实验室或地下室生成,也可以自己建造。" - #: lang/json/MOD_INFO_from_json.py msgid "Mythical Martial Arts" msgstr "神话武术" @@ -62160,37 +61887,6 @@ msgstr "大魔法" msgid "Cataclysm but with magic spells!" msgstr "大灾变有大魔法!" -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "手动安装生化插件" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "允许玩家手动安装生化插件,适合与完全可靠的医疗仪配合使用。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Medieval and Historic Classes and Shields" -msgstr "中世纪及历史上的职业和盾牌" - -#. ~ Description for Medieval and Historic Classes and Shields -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Assorted fun classes and shields for the wannabe knight, legionary, and " -"more." -msgstr "增加了许多有趣的职业和盾牌用来扮演骑士、罗马军团兵、及更多类型。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Modular Turrets" -msgstr "模块化炮塔" - -#. ~ Description for Modular Turrets -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Gives turrets swappable firearm modules, which can be reclaimed from broken " -"robots." -msgstr "为炮塔新增了各种可替换的枪械模块,模块可以从损坏的机器人中回收获得。" - #: lang/json/MOD_INFO_from_json.py msgid "More Locations" msgstr "更多的地点" @@ -62202,26 +61898,6 @@ msgid "" "generating a world, you can remove subfolders to nix unwanted locations." msgstr "加入了新的Z 轴建筑和地牢。仍有点粗糙。在创造世界之前,你可以删除子文件夹以排除不想要的地方。" -#: lang/json/MOD_INFO_from_json.py -msgid "More Survival Tools" -msgstr "更多幸存者工具" - -#. ~ Description for More Survival Tools -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those who prefer being innawoods. Adds several tools, various recipes " -"additions/tweaks, plus two new professions." -msgstr "专为喜欢在森林中居住的人准备。增加了许多新工具,新配方和两个新职业。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Mundane Zombies" -msgstr "移除特殊丧尸" - -#. ~ Description for Mundane Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all special zombies from the game." -msgstr "移除游戏中的特殊丧尸。" - #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" msgstr "变异NPC" @@ -62247,15 +61923,6 @@ msgid "" msgstr "" "随着大灾变一同觉醒,各类甜食和点心们也都被赋予了新生命。形同人形糖块,带着糖果猫宠物的你,也陪着它们一同在末日后的世界中闯荡,亦或为了获取甜点而狩猎它们。" -#: lang/json/MOD_INFO_from_json.py -msgid "Mythological Replicas" -msgstr "神话武器复制品" - -#. ~ Description for Mythological Replicas -#: lang/json/MOD_INFO_from_json.py -msgid "Adds recipes for replicas of mythological weapons." -msgstr "添加了许多神话武器复制品的配方" - #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" msgstr "测试民兵营地" @@ -62267,71 +61934,6 @@ msgid "" "Provide feedback in the thread under 'The Lab'" msgstr "协助测试新版民兵营地。有问题去官网论坛'The lab'版面下反馈。(原作者已弃坑)" -#: lang/json/MOD_INFO_from_json.py -msgid "No Acid Zombies" -msgstr "移除酸液丧尸" - -#. ~ Description for No Acid Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all acid-based zombies from the game." -msgstr "移除游戏中的酸液类丧尸。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Ants" -msgstr "移除蚂蚁类怪物" - -#. ~ Description for No Ants -#: lang/json/MOD_INFO_from_json.py -msgid "Removes ants and anthills from the game" -msgstr "移除游戏中的蚂蚁和蚁巢。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Bees" -msgstr "移除蜜蜂类怪物" - -#. ~ Description for No Bees -#: lang/json/MOD_INFO_from_json.py -msgid "Removes bees and beehives from the game" -msgstr "移除游戏中的蜜蜂和蜂巢。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Big Zombies" -msgstr "移除巨型丧尸" - -#. ~ Description for No Big Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " -"game." -msgstr "移除游戏中的放电丧尸兽、丧尸浩克及骷髅巨兽。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Explosive Zombies" -msgstr "移除爆炸丧尸" - -#. ~ Description for No Explosive Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all explosion-based zombies from the game." -msgstr "移除游戏中的爆炸类丧尸。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Filthy Clothing" -msgstr "移除肮脏衣物" - -#. ~ Description for No Filthy Clothing -#: lang/json/MOD_INFO_from_json.py -msgid "Clothes dropped by zombies will be completely clean." -msgstr "丧尸掉落的衣服将会是干净的。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Flaming Weapons" -msgstr "移除燃烧近战武器" - -#. ~ Description for No Flaming Weapons -#: lang/json/MOD_INFO_from_json.py -msgid "Removes flaming melee weapons." -msgstr "移除游戏中会燃烧的近战武器。" - #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" msgstr "移除真菌类怪物" @@ -62341,24 +61943,6 @@ msgstr "移除真菌类怪物" msgid "Removes fungal monsters and regions from the game." msgstr "移除游戏中的真菌类怪物和地区。" -#: lang/json/MOD_INFO_from_json.py -msgid "No Medieval Items" -msgstr "移除中世纪物品" - -#. ~ Description for No Medieval Items -#: lang/json/MOD_INFO_from_json.py -msgid "Removes medieval weapons, armors, and specific books." -msgstr "移除中世纪武器,护甲及相关书籍。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Mutagens" -msgstr "移除诱变剂" - -#. ~ Description for Disable Mutagens -#: lang/json/MOD_INFO_from_json.py -msgid "Removes mutagen items from the game." -msgstr "移除游戏中能引发变异的诱变剂物品。" - #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" msgstr "禁用NPC需求" @@ -62368,15 +61952,6 @@ msgstr "禁用NPC需求" msgid "Makes NPCs not require food, water or rest." msgstr "让NPC不再需要食物、水和休息。" -#: lang/json/MOD_INFO_from_json.py -msgid "No Antique Firearms" -msgstr "移除老式枪械" - -#. ~ Description for No Antique Firearms -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all black powder and pre-Cold War firearms." -msgstr "移除游戏中的各种黑火药枪械及冷战前枪械。" - #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" msgstr "移除火车站" @@ -62386,42 +61961,6 @@ msgstr "移除火车站" msgid "Removes above-ground rail stations from the game." msgstr "从游戏中移除地上火车站。" -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Religious Texts" -msgstr "移除宗教典籍" - -#. ~ Description for Disable Religious Texts -#: lang/json/MOD_INFO_from_json.py -msgid "Removes religious text items from the game." -msgstr "移除游戏中的各类宗教书籍。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Prevent Zombie Revivication" -msgstr "禁止丧尸复活" - -#. ~ Description for Prevent Zombie Revivication -#: lang/json/MOD_INFO_from_json.py -msgid "Disables zombie revival." -msgstr "禁止丧尸死而复生。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Fictional Guns" -msgstr "移除虚构枪械" - -#. ~ Description for No Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Removes fictional conventional firearms and ammunition." -msgstr "移除游戏中虚构的未来枪械及子弹。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Survivor Armor" -msgstr "移除幸存者装备" - -#. ~ Description for No Survivor Armor -#: lang/json/MOD_INFO_from_json.py -msgid "Removes survivor armor." -msgstr "移除游戏中的各类幸存者装备。" - #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" msgstr "移除怪物" @@ -62432,38 +61971,6 @@ msgid "" "Removes all monsters from the game, save for those in the WILDLIFE category." msgstr "移除游戏中除野生动物之外的所有怪物。" -#: lang/json/MOD_INFO_from_json.py -msgid "Classic Roguelike Classes" -msgstr "经典Roguelike职业" - -#. ~ Description for Classic Roguelike Classes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a set of professions which correspond to classic Roguelike character " -"archetypes." -msgstr "加入一套对应经典Roguelike角色原型的职业。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Salvaged Robots" -msgstr "改装机器人" - -#. ~ Description for Salvaged Robots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Expands the types of robots and allows players to jury-rig broken robots " -"into functioning companions." -msgstr "增加了许多类型的机器人,并允许玩家将损坏的机器人改装成功能各异的同伴。" - -#: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp -msgid "Sleep Deprivation" -msgstr "睡眠不足" - -#. ~ Description for Sleep Deprivation -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Enables sleep deprivation mechanics independently of a player's fatigue." -msgstr "增加了独立于玩家的身体疲劳的睡眠不足的机制。" - #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Skills" msgstr "技能提升属性" @@ -62483,28 +61990,6 @@ msgid "" "Adds mockup items, recipes, and other content for use by automated tests." msgstr "这组数据包含了物品模型,配方以及其他为了自动化测试使用的东西。" -#: lang/json/MOD_INFO_from_json.py -msgid "Tanks and Other Vehicles" -msgstr "坦克和其他车辆" - -#. ~ Description for Tanks and Other Vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a few armored fighting vehicles and other such things, requires Vehicle" -" Additions Pack." -msgstr "增加了一些装甲战斗载具之类的东西,需要载具增强包。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Bens GF recipes" -msgstr "Ben的定制菜单" - -#. ~ Description for Bens GF recipes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Some simple gluten free and lactose free alternative recipe options. NOT " -"EXHAUSTIVE." -msgstr "添加了一些简单的无麸质和无乳糖的替代食物的制造配方。尚不完整。" - #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" msgstr "更多城镇建筑" @@ -62514,15 +61999,6 @@ msgstr "更多城镇建筑" msgid "Holder for suburban and urban buildings." msgstr "郊区和城区建筑的暂存处。" -#: lang/json/MOD_INFO_from_json.py -msgid "Zombie Nightvision" -msgstr "丧尸夜视" - -#. ~ Description for Zombie Nightvision -#: lang/json/MOD_INFO_from_json.py -msgid "Gives all zombies perfect nightvision." -msgstr "让所有的丧尸都拥有完美的夜视能力。" - #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" msgstr "替换小地图图标" @@ -62534,17 +62010,6 @@ msgid "" "and use initial letter of their names instead of ^v<>." msgstr "将地图建筑物图标替换为更容易阅读的图标。使用不同色彩区分的建筑名称首字母而不是\"^v<>\"符号。" -#: lang/json/MOD_INFO_from_json.py -msgid "Vehicle Additions Pack" -msgstr "载具增强包" - -#. ~ Description for Vehicle Additions Pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Please see the included PAQ.txt in the mod folder if you encounter any " -"issues." -msgstr "若遇到问题请参考mod文件夹中的PAQ.txt。" - #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" msgstr "生化插件槽位" @@ -62590,71 +62055,6 @@ msgstr "沙漠地区" msgid "A testbed/WIP mod to showcase regional_map_settings JSON changes." msgstr "测试性未完工模组,用于展示regional_map_settings的变化" -#: lang/json/MOD_INFO_from_json.py -msgid "EZ-Mode Medical" -msgstr "简单医疗模式" - -#. ~ Description for EZ-Mode Medical -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Increases broken limb mending speed and the effectiveness of healing items." -msgstr "增加断肢愈合速度和治疗物品的效果。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Makeshift Items Mod" -msgstr "自制简易物品" - -#. ~ Description for Makeshift Items Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds more improvised item variants and rebalances existing ones." -msgstr "添加更多自制物品种类并重新平衡已有的自制物品。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Mapgen Demo" -msgstr "地图生成DEMO" - -#. ~ Description for Mapgen Demo -#: lang/json/MOD_INFO_from_json.py -msgid "Demo for JSONized mapgens (megastore, missile silo)." -msgstr "JSON化的地图生成演示(购物广场,导弹发射井)。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Classes and Scenarios Mod" -msgstr "职业及场景MOD" - -#. ~ Description for Classes and Scenarios Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds new classes and scenarios while rebalancing some existing ones." -msgstr "添加新的起始职业及场景并重新平衡现有的起始职业及场景。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Necromancy" -msgstr "死灵法术" - -#. ~ Description for Necromancy -#: lang/json/MOD_INFO_from_json.py -msgid "Adds the ability to revive creatures as minions." -msgstr "加入复活生物用以驱策的能力。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Sci-Fi Equipment" -msgstr "移除科幻装备" - -#. ~ Description for No Sci-Fi Equipment -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes far-future Sci-Fi items such as powered armor and energy weapons." -msgstr "移除例如能量武器、动力装甲等过于科幻的物品。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Simplified Nutrition" -msgstr "简单营养" - -#. ~ Description for Simplified Nutrition -#: lang/json/MOD_INFO_from_json.py -msgid "Disables vitamin requirements." -msgstr "禁用维生素与微量元素需求。" - #: lang/json/MOD_INFO_from_json.py msgid "Rural-Only Mapgen" msgstr "仅生成乡村地图" @@ -62931,7 +62331,6 @@ msgid_plural "skitterbots" msgstr[0] "掠行机器人" #. ~ Description for {'str': 'skitterbot'} -#. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py msgid "" "An insectoid robot the size of a small dog, designed for home security. " @@ -63862,8 +63261,8 @@ msgstr[0] "真菌巨兽" #: lang/json/MONSTER_from_json.py msgid "" "Fungi bloom from the crevices in the ossified plates of this ponderous bone " -"titan, and it seems even it's eyes are lost to it. A dust of spores lands " -"on the ground with every sluggish stomp of it's heavy legs." +"titan, and it seems even its eyes are lost to it. A dust of spores lands on" +" the ground with every sluggish stomp of its heavy legs." msgstr "真菌从这只笨重的骷髅巨兽的骨板缝隙中长出,它的眼睛似乎已经被真菌破坏。它移动缓慢,而每一次踏步都使一片孢子尘飘落在地。" #: lang/json/MONSTER_from_json.py @@ -64354,7 +63753,7 @@ msgstr[0] "血肉蹒跚者" #: lang/json/MONSTER_from_json.py msgid "" "An amalgamation of throbbing organs from various creatures have fused " -"together into this lurching, vaguely humanoid shape. It's myriad roughly " +"together into this lurching, vaguely humanoid shape. Its myriad roughly " "formed mouths sussurate in a chorus of sibilant groans and whispers." msgstr "各种生物跳动的器官融合在一起,形成了这个蹒跚而行、略为人型的怪物。无数临时拼凑形成的嘴颤抖着不断发出咝咝作响的呻吟和低语。" @@ -64368,7 +63767,7 @@ msgstr[0] "血肉傀儡" msgid "" "A seeping conglomeration of spasming muscle and organs have fused together " "into this towering caricature of the human form. Various organs fall off of" -" it's hulking body only to be reabsorbed moments later." +" its hulking body only to be reabsorbed moments later." msgstr "一只体型高耸的怪诞人型怪物,由痉挛的肌肉和器官融合而成。各种器官从它笨重的身体上脱落,但马上就重新被其躯体吸收。" #: lang/json/MONSTER_from_json.py @@ -66008,7 +65407,7 @@ msgid "" msgstr "" "一只来自异界的如同猎犬一般的怪物。身形瘦弱仿佛饥肠辘辘一般,扭曲的红色肉体紧紧地覆盖在它畸形而又瘦骨嶙峋的骨架之上。随着它步伐怪异地四处飞奔,它那异乎寻常的长颈向前伸出,它骷髅一般的头颅贴近地面四处嗅探寻找猎物。它的邪恶似乎被某种神秘力量所掩盖于体内,你能够感觉到它的外形不断在你眼前隐约闪烁,这唤醒了沉睡于你体内某种古老的恐惧感。" -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" msgstr[0] "幽灵" @@ -66290,6 +65689,19 @@ msgid "" msgstr "" "一架诺斯罗普ATSV,一种体型巨大的重型全装甲机器人,使用一对反关节机械腿行走,配备40MM反车辆手榴弹发射器和5.56mm反步兵枪,并能够电击任何攻击者,是一种高效的全自动哨兵,由于法律纠纷所以产量有限。" +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "激光炮塔" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from" +" solar cells embedded in its hull." +msgstr "TX-5LR \"地狱犬\"型激光炮塔是其前身的升级版。它的特点是有着最先进的三管转轮激光炮系统,系统供电由嵌在其外壳上的太阳能电池完成。" + #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" @@ -66659,7 +66071,7 @@ msgstr "地面充满了移动的藤蔓和根部,这些植物以惊人的速度 #: lang/json/MONSTER_from_json.py msgid "fungal fighter" msgid_plural "fungal fighters" -msgstr[0] "真菌战斗部" +msgstr[0] "抗真菌战斗部" #. ~ Description for {'str': 'fungal fighter'} #: lang/json/MONSTER_from_json.py @@ -66667,7 +66079,7 @@ msgid "" "A stout woody plant that can dig through the ground and flick spines from " "its branches. The thorns carry a fungicidal compound with paralytic " "effects." -msgstr "矮胖的草本植物,可以沿地面掘进和用尖利的荆棘拍打。荆棘上携带有真菌分泌物,具有麻痹效果。" +msgstr "一棵粗壮的木质植物,能沿着地面掘进,用自己带刺的荆棘拍打敌人。荆棘上分泌出带有麻痹作用的抗真菌剂。" #: lang/json/MONSTER_from_json.py msgid "triffid flower" @@ -66719,19 +66131,6 @@ msgid "" "continually seeking targets." msgstr "带有自动搜索AI的三路大功率探照灯,可以不停地搜寻目标。" -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "激光炮塔" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from" -" solar cells embedded in its hull." -msgstr "TX-5LR \"地狱犬\"型激光炮塔是其前身的升级版。它的特点是有着最先进的三管转轮激光炮系统,系统供电由嵌在其外壳上的太阳能电池完成。" - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" @@ -66804,6 +66203,16 @@ msgid "" msgstr "" "这台由\"鹰爪\"型无人车衍生而来的防暴平台在大灾变发生前几年被作为一款新型半自主装置而被广泛宣传,可以发射出比人类精确得多的低致命性子弹,从而确保只对目标四肢进行更无害的打击。它们很快就被监狱和中心城区警察所采纳,在那里他们证明了“低致命性”与“非致命性”是不一样的。在大灾变发生前的几天里,有满满几仓库的这类平台被投入使用。乐观点看,虽然它能够自主射击,但它需要一个人工操作者来更换位置,所以它已经无法再移动了。" +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "扩音器" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "一台大功率扩音器,一遍又一遍地重复着响亮的信息。" + #: lang/json/MONSTER_from_json.py msgid "eyebot" msgid_plural "eyebots" @@ -67476,30 +66885,6 @@ msgid "" "disturbances." msgstr "一具灰白的皮肤下充满了臌胀的腐败气体的尸体,隆起的皮肤遍布着黑色的血管,随时都可能爆出大量浆液。" -#: lang/json/MONSTER_from_json.py -msgid "zombie grenadier" -msgid_plural "zombie grenadiers" -msgstr[0] "掷弹兵丧尸" - -#. ~ Description for {'str': 'zombie grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear. Its hands " -"constantly fumble at its many pouches." -msgstr "曾经是一名军人,从头到脚包裹着战斗服,他的手一直插在军装的口袋里蠢蠢欲动。" - -#: lang/json/MONSTER_from_json.py -msgid "zombie elite grenadier" -msgid_plural "zombie elite grenadiers" -msgstr[0] "精英掷弹兵丧尸" - -#. ~ Description for {'str': 'zombie elite grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear and wearing a MOLLE" -" pack. Its hands quickly open and close its many pouches." -msgstr "曾经是一名军人,从头到脚包裹着战斗服,还背着一个MOLLE战术背包。它的手一直在他的各个小袋子之间迅速地开开关关袋口的皮盖。" - #: lang/json/MONSTER_from_json.py msgid "crawler" msgid_plural "crawlers" @@ -67827,6 +67212,22 @@ msgid "" msgstr "" "一个扭曲的人形丧尸,瘦弱,乌黑的皮肤和发光的红色瞳孔,他带着痛苦看着你,唤醒了你内心深处的恐惧,周围的气氛似乎更紧张了,连光线都好像暗了下来。" +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "死灵爆汁丧尸" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears" +" and guts teem with unmatched fecundity, as its gaze inspires fear of " +"nothing less than cosmic, inhuman ecstasy." +msgstr "" +"初看上去这只怪物看起来只不过是一个怪异而油腻的空壳,浑身肿胀,许多深黑色的脓疱刺破了它的表皮。当你走近它时,它的眼睛发出了红光并露出了痛苦的怪笑;它的皮肤撕裂开,内脏充满了无与伦比的繁殖力,它的目光激发了你对它那广大无边而又非人般狂喜的恐惧。" + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" @@ -68338,6 +67739,49 @@ msgid "" "while maintaining visual contact for other pursuers." msgstr "一个配备了大功率聚光灯的带尖刺的小型四翼无人机。这种自动寻的无人机最初是设计来阻止及干扰逃犯,同时为其它追击成员保持目视联系。" +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder" +msgid_plural "Schwarz Walders" +msgstr[0] "黑森林熊人" + +#. ~ Description for {'str': 'Schwarz Walder'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Schwarz Walders were originally developed by a German company as forest " +"rangers for the expanded Black Forest Conservation Area. Shortly afterwards" +" it was determined that they also made excellent long range reconnaissance " +"units that could operate independently indefinitely. Pre-Cataclysm they " +"lived on every continent in a variety of jobs." +msgstr "" +"黑森林熊人最初是由一家德国公司研发的,作为扩大后的黑森林保护区的护林员。不久之后,公司发现它们也能够成为优秀的远程侦察兵,可以在敌后无限期独自行动。大灾变之前,它们分布于各个大陆上做着各种各样的工作。" + +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder cub" +msgid_plural "Schwarz Walder cubs" +msgstr[0] "黑森林幼熊人" + +#. ~ Description for {'str': 'Schwarz Walder cub'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A young Schwarz Walder. If one is out here, a very protective parent is " +"likely nearby." +msgstr "一只幼年黑森林熊人。如果你发现了一只幼年熊人,说明它那极度护仔的父母也一定就在附近。" + +#: lang/json/MONSTER_from_json.py +msgid "infeme" +msgid_plural "infemes" +msgstr[0] "因非玛人" + +#. ~ Description for {'str': 'infeme'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The Infeme are uplifted from apes and other near human ancestors. The Zulu " +"word for monkey became the catch-all term for many species of uplifts " +"whether majority chimp, gorilla or baboon. They've probably formed colonies" +" hidden from the Cataclysm." +msgstr "" +"因非玛人是从类人猿和其他接近人类的祖先基因擢升而成的新物种。这个祖鲁人对猴子的称谓成了多个相似的基因擢升物种的统称,其中大部分源自黑猩猩、大猩猩或是狒狒。他们可能在附近某处建立了一个成功躲过大灾变的种群。" + #: lang/json/MONSTER_from_json.py msgid "headless zombie" msgid_plural "headless zombies" @@ -68366,6 +67810,43 @@ msgid "" msgstr "" "这个无头丧尸已经肿胀到可怕的比例,几乎九英尺高。六英尺长的黑色软泥触角在它的脖子上盲目地挥动,对身边的声音作出剧烈地抽搐。它正使用肿胀畸形的双手以可怕的速度四处移动。" +#: lang/json/MONSTER_from_json.py +msgid "Haunting Forest Walker" +msgid_plural "Haunting Forest Walkers" +msgstr[0] "恐怖森林丧尸" + +#. ~ Description for {'str': 'Haunting Forest Walker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This towering zombie is covered in wounds and shedding fur. Once it may " +"have prevented forest fires in national parks, now it kills anything it " +"catches." +msgstr "这只体积巨大的丧尸身上满是伤口和破碎的毛皮。也许曾经它负责阻止国家公园的森林火灾,而现在它可以杀死它所抓住的任何东西。" + +#: lang/json/MONSTER_from_json.py +msgid "rotting grodd" +msgid_plural "rotting grodds" +msgstr[0] "腐烂格鲁德丧尸" + +#. ~ Description for {'str': 'rotting grodd'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Imagine a gorilla. Now imagine it dead and rotting and somehow looking at " +"you with more hate than you had previously imagined possible." +msgstr "在脑海里想象一只大猩猩。然后再想象一下它死了,腐烂了,并且正用着你之前无法想象的仇恨眼光紧紧盯着你。" + +#: lang/json/MONSTER_from_json.py +msgid "Ghoulodon" +msgid_plural "Ghoulodons" +msgstr[0] "长毛丧尸王" + +#. ~ Description for {'str': 'Ghoulodon'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An undead Uplifted Elephant of ginormous size. It still wears its assault " +"grade armor." +msgstr "一只已经丧尸化的长毛象基因擢升战士。它仍然穿着它的突击战士级盔甲。" + #: lang/json/MONSTER_from_json.py msgid "Slasher Necromorph" msgid_plural "Slasher Necromorphs" @@ -68747,9 +68228,69 @@ msgstr[0] "迷失者" #. ~ Description for {'str': 'stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." -msgstr "一个已经变异了的人,和从前相比判若两人。多块青蓝中泛紫的水晶从他们原本苍白的肉体中生长出来,渐渐取代了它的躯体。" +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." +msgstr "" +"一只曾经是人类的怪物,它现在不过是昔日躯体构成的可憎的幻影,能够突然爆发出暴烈的怒火。多块青蓝中泛紫的水晶从它青肿的肉体中生长出来,渐渐取代着它的躯体。" + +#: lang/json/MONSTER_from_json.py +msgid "stray cop" +msgid_plural "stray cops" +msgstr[0] "迷失警员" + +#. ~ Description for stray cop +#: lang/json/MONSTER_from_json.py +msgid "" +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." +msgstr "" +"一名曾经的执法人员,无疑是在降临之日被派去协助平民疏散的一员。不幸的是,尽管他们尽了最大努力,许多人仍然被水晶感染。它仍然从头到脚都穿着轻型护甲,部分护甲已经被水晶覆盖。" + +#: lang/json/MONSTER_from_json.py +msgid "stray soldier" +msgid_plural "stray soldiers" +msgstr[0] "迷失士兵" + +#. ~ Description for {'str': 'stray soldier'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former soldier, no doubt deployed to assist with evacuations and drive off" +" the Order, dressed from head to toe in partially crystalized combat armor." +" Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." +msgstr "" +"一名曾经的士兵,无疑是被派去协助平民疏散并与新秩序团作战的一员,它依然从头到脚穿着已经部分结晶化的作战护甲。尽管它们所受的训练不足以让其抵抗外星人,但他们似乎还记得足够多的东西来对付你。" + +#: lang/json/MONSTER_from_json.py +msgid "stray firefighter" +msgid_plural "stray firefighters" +msgstr[0] "迷失消防员" + +#. ~ Description for {'str': 'stray firefighter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." +msgstr "" +"一具曾经的人类尸体,穿着破烂的急救人员装备,湿呼呼的呼吸声透过已经嵌进脸中的防毒面具汩汩作响。它在自己曾经服务过的社区里蹒跚前行,不过是水晶虫的又一个寄主。" + +#: lang/json/MONSTER_from_json.py +msgid "hungry stray" +msgid_plural "hungry strays" +msgstr[0] "饥渴迷失者" + +#. ~ Description for {'str': 'hungry stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An obese former human, body studded with irregular crystal growths deforming" +" its body. It howls in mockery of hunger as it wanders, seeking new meals " +"to add to its bulk." +msgstr "一只曾经是人的肥胖怪物,身上长满了让躯体变形的不规则晶体。它在四漫步时不断发出饥渴的嘲笑声,寻找新的食物来增加自身的体积。" #: lang/json/MONSTER_from_json.py msgid "stray rockfeeder" @@ -68776,13 +68317,53 @@ msgstr[0] "迷失供晶者" msgid "" "Little more than a moving mound of crystal and meat that occasionally spits " "up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures" -" skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." +msgstr "" +"这个怪物完全就是个由水晶和血肉组成的移动山丘,偶尔会从它体表的许多裂缝中冒出一股炽热的粥状岩浆,这只螃蟹一样的生物艰难地来回跋涉,仿佛承受着千钧重担。透过它躯壳模糊的表面,你仿佛能够看间在它复杂的体内器官中四处掠过的细小生物。它似乎只在其他水晶生物附近活动,把自己分泌出的粘液倒在它们身上,就像保姆一样。当受到威胁时,它能发出撕心裂肺的尖叫,无疑会让它的朋友们过来援助它。" + +#: lang/json/MONSTER_from_json.py +msgid "crackling stray" +msgid_plural "crackling strays" +msgstr[0] "蜂鸣迷失者" + +#. ~ Description for {'str': 'crackling stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A hunched human form, back bristling with a hedge of buzzing blue crystals." +" Its veins visibly glow with some sort of unearthly substance." +msgstr "一具驼背的人体,背部布满一丛丛嗡嗡作响的蓝色水晶。它的血管中有某种异星物质正在明亮地闪耀着。" + +#: lang/json/MONSTER_from_json.py +msgid "arcing stray" +msgid_plural "arcing strays" +msgstr[0] "电弧迷失者" + +#. ~ Description for {'str': 'arcing stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than" +" capable of simply ramming its prey to deliver dangerous electric shocks." msgstr "" -"这个怪物完全就是个由水晶和血肉组成的移动山丘,偶尔会从它体表的许多裂缝中冒出一股炽热的粥状岩浆,它艰难地来回跋涉,仿佛承受着千钧重担。透过它躯壳模糊的表面,你仿佛能够看间在它复杂的体内器官中四处掠过的细小生物。看上去它那不断增长的体重压垮自己,并成为这个曾经陌生的世界的另一部分,只是一个时间问题。" +"一只严重变形的多足怪物,它曾经的有着地球生物的身体,但现在仅仅是许多巨大水晶塔的基座,这些水晶塔从躯干曾经是头部的部位中突出来。它曾经的手臂在身体两侧毫无用处地垂下摆动着,但它只需要撞向猎物就能轻松释放出致命的电击。" + +#: lang/json/MONSTER_from_json.py +msgid "stray sprinter" +msgid_plural "stray sprinters" +msgstr[0] "迷失奔行者" + +#. ~ Description for {'str': 'stray sprinter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." +msgstr "这具身材匀称、动作敏捷的人体躯壳曾经是一位运动健将,似乎还保留着一些奔跑的才智。" #: lang/json/MONSTER_from_json.py msgid "stray prowler" @@ -68792,24 +68373,27 @@ msgstr[0] "迷失游荡者" #. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with" -" tusks of polished stone and fingers tipped with crystal-fused claws." -msgstr "这个曾经摇摇欲坠的变种人现在凶猛而又狡诈地移动着,嘴中露出光滑的岩石长牙,手指尖与水晶融合变成了利爪。" +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." +msgstr "" +"这只曾经受了重伤的变种人现在像动物一样移动,时而两腿蹒跚而行,时而用四肢爬行。它的嘴中长满了磨光的岩石长牙,手指尖与水晶融为一体的利爪闪耀着寒芒。" #: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" -msgstr[0] "迷失捕猎者" +msgid "stray guardian" +msgid_plural "stray guardians" +msgstr[0] "迷失守护者" -#. ~ Description for {'str': 'stray predator'} +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of" -" time before the very shell that protects it weighs it down to the ground." +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated" +" crystal limbs sharpened to dangerous points. It strides about the streets," +" spearing intruders to its domain like some sort of horrid spider from " +"beyond the stars." msgstr "" -"柔软的肌肉和搏动的水晶融合在一起,这只怪兽用四肢爬行,被过度拉伸的四肢尖端变成了锋利致命的尖刺,插入任何胆敢进入它领地的入侵者。尽管它目前移动得飞快,但距离保护它的外壳的重量把它压垮在地似乎只是个时间问题。" +"柔软的肌肉和不断搏动的水晶融合在一起,形成一只由多具尸体组成的无比巨大的怪物,由无数条被极度拉伸的水晶肢体向前推行,肢体尖端已经被磨成危险的尖刺。它在街道上大步行走,像某种来自外星的可怕蜘蛛一样把任何进入它的领地的入侵者无情地刺穿。" #: lang/json/MONSTER_from_json.py msgid "stray bruiser" @@ -68819,40 +68403,38 @@ msgstr[0] "迷失彪形兽" #. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." -msgstr "" -"看上去行动得比它的同类更稳健,这个曾经的人体内部长满了厚厚的仿佛有生命般不断搏动的晶体。现在,它的手已经变成了带刺的棍棒,在它蹒跚前行时拖在它的身后。" +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." +msgstr "一只曾经是人类的怪物,有着健壮而匀称的外表,身体长出可怕的厚重水晶盔甲,水晶仿佛具有生命一般不断地搏动。" #: lang/json/MONSTER_from_json.py -msgid "stray titan" -msgid_plural "stray titans" -msgstr[0] "迷失泰坦兽" +msgid "stray golem" +msgid_plural "stray golems" +msgstr[0] "迷失傀儡" -#. ~ Description for {'str': 'stray titan'} +#. ~ Description for {'str': 'stray golem'} #: lang/json/MONSTER_from_json.py msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its" -" own weight." +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." msgstr "" -"这个由大块融合的血肉和岩石的高耸如云的混合体用它棍棒一样的“手”粉碎着任何挡在它前进道路上的物体。尽管它有着无比强大的力量,但距离它被保护自己的外壳重量压垮在地似乎只是一个时间问题。" +"一只曾经是人类的怪物,在获取了大量额外的生物物质之后,身材大幅度增长,现在至少有10英尺高,体表覆盖着岩石板甲,使其看起来与其说是人类更像是矿石。" #: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" -msgstr[0] "迷失躯壳" +msgid "stray titan" +msgid_plural "stray titans" +msgstr[0] "迷失泰坦兽" -#. ~ Description for {'str': 'stray husk'} +#. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to" -" alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" -"这具被战争蹂躏和烧焦的尸体,在被外星生化武器击中后仍然在燃烧着。一簇闪闪发光的紫色晶体从伤口中冒出来,就像一丛杂草从混凝土之间的裂缝中挤出生长一样。" +"这个由血肉和水晶融合而成的高耸入云的怪兽曾经是人类,但它现在的身高远远不止于人类的高度。它用棍棒一样的“手”粉碎一切阻碍它前进的物体,这根棍子甚至比你还大,能轻松将任何东西扫到一边。" #: lang/json/MONSTER_from_json.py msgid "stray waif" @@ -68862,25 +68444,11 @@ msgstr[0] "迷失流浪儿" #. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." msgstr "" -"如果不是因为体表生长着几片不规则的晶体,你会很容易把这个可怜的小家伙误认为是一个正常的孩子。不幸的是,虽然不知道外星人在人们身上使用了什么可怕的武器,但一定没带有任何温情。尽管如此,把它们干掉的想法仍然会触发体内原始情感,让你反胃。" - -#: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" -msgstr[0] "迷失火绒儿" - -#. ~ Description for {'str': 'stray tinder'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." -msgstr "一个孩子,仍旧带着被外星生物武器首次击中后的烟雾和伤口。但它的外形还足够完整,杀死它足以让你的肠胃翻腾。" +"一只体型幼小而行动迅速的变种人,很可能曾经是一个人类孩子,现在被一块块水晶弄得面目全非。它们的脸部特征仍然可以识别,以至于一想到杀死它们就会让你的肠胃翻腾。" #: lang/json/MONSTER_from_json.py msgid "stray creep" @@ -68890,9 +68458,10 @@ msgstr[0] "迷失匍匐者" #. ~ Description for {'str': 'stray creep'} #: lang/json/MONSTER_from_json.py msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." -msgstr "这只外壳还仍在缓缓燃烧着的怪物用四脚勉强前行,原本可能是杂种狗之类的家养宠物或类似的动物,最近才被外星生物武器击中而发生了变异。" +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." +msgstr "一具可怕的长着毛皮的动物躯壳,四脚朝天地到处乱跑,原本可能是杂种狗之类的家养宠物或类似动物,体表布满了一块块尖刺一般从体内刺出的水晶。" #: lang/json/MONSTER_from_json.py msgid "stray wretch" @@ -68902,13 +68471,71 @@ msgstr[0] "迷失可怜虫" #. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet" -" at some point, but now it leaps and skitters around like something out of a" -" nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion" -" across its body." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." +msgstr "" +"它的四肢和毛发已经和参差不齐的水晶融合,变成了一只难以辨别的怪物,目前看来它可能曾经是家养宠物或是人类或是任何生物,但现在它如同梦魇一般四处跳跃奔跑。" + +#: lang/json/MONSTER_from_json.py +msgid "stray stalker" +msgid_plural "stray stalkers" +msgstr[0] "迷失追猎者" + +#. ~ Description for {'str': 'stray stalker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to" +" its 'family'." msgstr "" -"它的四肢和毛发已经和参差不齐的水晶融合,变成了一只难以辨别的怪物,也许曾经是某种家养宠物,但现在它如同梦魇一般四处跳跃奔跑。按照目前水晶在全身的缓慢扩张来看,终有一天,它用来当作武器使用的水晶会占据它全身,并将其压垮在地。" +"一只狼一般大小的生物,身体由多块厚重的水晶板构成,许多细小的肉质卷须像纤毛一样从上面飘落。它看起来很乐意将任何胆敢挡住它去路的不幸家伙撕成碎片,并把猎物拖回它的“家”中。" + +#: lang/json/MONSTER_from_json.py +msgid "flailing wretch" +msgid_plural "flailing wretchs" +msgstr[0] "挥舞可怜虫" + +#. ~ Description for {'str': 'flailing wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." +msgstr "" +"一团人形大小的不断扭动的带刺卷须,看起来几乎不再是地球上的生物了,从一大块几乎看不清的晶体中长出来。它在地上像蛇一样的滑行,抓起有机物带回给它的同伴,让它们也能长得更大。" + +#: lang/json/MONSTER_from_json.py +msgid "crackling wretch" +msgid_plural "crackling wretchs" +msgstr[0] "蜂鸣可怜虫" + +#. ~ Description for {'str': 'crackling wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." +msgstr "一团不断扭动的卷须和烧焦的毛发,像昆虫一样在地上快速掠行,高高拱起的背部矗立着一根蜂鸣的放电水晶长矛。" + +#: lang/json/MONSTER_from_json.py +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" +msgstr[0] "迷失可怜虫母" + +#. ~ Description for {'str': 'stray wretchmother'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." +msgstr "" +"一只巨大的、布满了水晶的生物,能像一匹来自外星的狼一样跳跃。它最顶层的水晶长出几根四处挥舞的肉质卷须,把它们能触及的任何东西都拉进它身体下面那张咬牙切齿的大嘴里。透过它光滑身体的浑浊表面你能看见有些东西也在同样令人不安地扭动着。" #: lang/json/MONSTER_from_json.py msgid "germinating crystal mass" @@ -68919,6 +68546,20 @@ msgstr[0] "萌芽水晶体" #. 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little" +" bit of organic matter it can find and drawing it to its base." +msgstr "一个小小的水晶球透过泥土和混凝土深深扎根在地上,像面条一样的卷须在地面上四处蠕动,抓住它所能找到的任何一点有机物,并拖进它的底部。" + +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "发芽水晶体" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting +#. crystal masses'} +#: lang/json/MONSTER_from_json.py +msgid "" "A human-sized mound of shimmering blue-purple crystals growing on the base " "of what looks like a mound of foul smelling garbage and organic leftovers. " "Long, thin tendrils appear to grow out of the mound, and are subtly rooting " @@ -68984,8 +68625,8 @@ msgstr[0] "水晶体墙" #: lang/json/MONSTER_from_json.py msgid "" "A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." -msgstr "一堵由厚厚的块状晶体构成的巨大的墙壁,它发出微弱的光,并发出电流的噼啪声。" +"residual electric energy." +msgstr "一堵由厚厚的块状晶体构成的巨大的墙壁,它发出微弱的光,并发出残存电流的噼啪声。" #: lang/json/MONSTER_from_json.py msgid "crystal mass hive" @@ -69006,11 +68647,11 @@ msgstr "" "一个高耸的蓝紫色水晶,表面布满了无数拳头大小的小洞,洞中不断滴下一种恶心的、微微发光的岩石泥浆——也许是喂养它们幼体所需要的营养成分。毕竟,它似乎正在微微地搏动着,看上去比它的矿物外观所表现的更像个有机生命体。它周围的空气永远充满了明显的能量,发出电流噼啪声,一系列长着剃刀般的倒刺的粗壮而多肉的卷须让它看上去十分危险,在玻璃状“岩石”的模糊表面下仿佛有什么东西在令人不适地扭动着。" #: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" -msgstr[0] "水晶螨" +msgid "crystal seed" +msgid_plural "crystal seeds" +msgstr[0] "水晶之种" -#. ~ Description for {'str': 'crystal mite'} +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" "A tiny, multilegged creature that appears to be made of a chunk of crystal." @@ -69020,17 +68661,17 @@ msgstr "" "一只小型多足生物,似乎由整块水晶构成。它用自己铁丝般纤细的腿四处乱蹦乱跳,不断吞食有机残渣来增加体重,希望终有一天能创建属于它自己的水晶族群。" #: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" -msgstr[0] "饱食水晶螨" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" +msgstr[0] "饱食水晶之种" -#. ~ Description for {'str': 'engorged crystal mite'} +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into" -" a proper crystal mass." -msgstr "一只吃的浑圆的水晶螨,现在体型长到约有猫一样大小,体内所积累的水晶结构已经足够重,可以安定下来并萌发成一个正式的水晶体了。" +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." +msgstr "一只吃的浑圆的水晶之种,现在体型长到约有猫一样大小,体内所积累的有机物质已经足够重,可以安定下来并萌发成一个正式的水晶体了。" #. ~ Description for {'str': 'C-4 hack'} #: lang/json/MONSTER_from_json.py @@ -69075,9 +68716,9 @@ msgstr[0] "美颌龙" #. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." -msgstr "火鸡大小的小型的双足肉食性兽脚亚目恐龙。牙齿和爪子看起来很小但是很锋利。" +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." +msgstr "火鸡大小的小型的双足肉食性兽脚亚目恐龙,能够快速移动。牙齿和爪子看起来很小但是很锋利。" #: lang/json/MONSTER_from_json.py msgid "Gallimimus" @@ -69103,6 +68744,18 @@ msgid "" "reptilian ostrich with a round hard-looking domed head." msgstr "一种有羽毛的两足恐龙,站立时和人类一样高。它看起来有点像爬虫类的鸵鸟,坚硬的头部呈半球状。" +#: lang/json/MONSTER_from_json.py +msgid "Camptosaurus" +msgid_plural "Camptosaurus" +msgstr[0] "弯龙" + +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "长有羽毛的大型两足恐龙,两条腿很强壮,肩膀宽阔,长着尖喙。它动作缓慢,但力量巨大。" + #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" msgid_plural "Spinosaurus" @@ -69122,8 +68775,20 @@ msgstr[0] "雷克斯霸王龙" #. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." -msgstr "哦天啊,看那家伙的牙齿!不过爪子倒是很小。" +msgid "" +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." +msgstr "巨大的下颌里长满了巨大的牙齿,长着凶猛的眼睛,强而有力的躯干驱动着它前行。" + +#: lang/json/MONSTER_from_json.py +msgid "Albertosaurus" +msgid_plural "Albertosaurus" +msgstr[0] "阿尔伯塔龙" + +#. ~ Description for {'str_sp': 'Albertosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" +msgstr "看起来像一只体型较小的霸王龙,但是它的手臂要长得多。" #: lang/json/MONSTER_from_json.py msgid "Triceratops" @@ -69144,8 +68809,9 @@ msgstr[0] "剑龙" #. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." -msgstr "一种巨大的四足恐龙,背上有骨板,尾巴上有骨钉。" +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." +msgstr "一种巨大的四足恐龙,移动缓慢,背上有骨板,尾巴上有骨钉。" #: lang/json/MONSTER_from_json.py msgid "Ankylosaurus" @@ -69159,6 +68825,19 @@ msgid "" "massive spiked club of bone." msgstr "这种恐龙看上去像是一种巨大的史前犰狳,它的尾端有一个巨大的骨质狼牙棒。" +#: lang/json/MONSTER_from_json.py +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" +msgstr[0] "角鼻龙" + +#. ~ Description for {'str_sp': 'Ceratosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." +msgstr "一种动作迅速的大型食肉两足恐龙,头上有三个彩色的角,身上点缀着鲜艳的条纹皮肤,长有锋利的牙齿和一条柔软的长尾巴。" + #: lang/json/MONSTER_from_json.py msgid "Allosaurus" msgid_plural "Allosaurus" @@ -69179,9 +68858,9 @@ msgstr[0] "始盗龙" #. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." -msgstr "一种和鸡差不多大的两足恐龙,以灌木、小型动植物为食。" +"A bipedal dinosaur about the size of a chicken. It darts around quickly and" +" has long arms for grabbing what it desires. It's holding something." +msgstr "一只和鸡差不多大的两足恐龙。它飞快地飞来飞去,长长的手臂能抓住它想要的东西。它好像拿着什么东西。" #: lang/json/MONSTER_from_json.py msgid "Velociraptor" @@ -69207,6 +68886,18 @@ msgid "" "foot is a large sickle-like claw." msgstr "一种身体覆盖有羽毛的中型两足恐龙。每只脚的尽头有着巨大的镰刀状利爪。" +#: lang/json/MONSTER_from_json.py +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" +msgstr[0] "生化恐爪龙" + +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." +msgstr "一具体表覆盖着羽毛的中型两足恐龙,它体内的生化插件正噼啪作响。双脚前端巨大发光的镰刀状利爪正不断挥舞着。" + #: lang/json/MONSTER_from_json.py msgid "Utahraptor" msgid_plural "Utahraptors" @@ -69250,8 +68941,10 @@ msgstr[0] "双脊龙" #. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." -msgstr "一种中型恐龙,它的齿间不断有绿色的粘稠液体流下。" +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its " +"head." +msgstr "一只中等体型的恐龙,牙齿很锋利,头部有两个突出的骨冠。" #: lang/json/MONSTER_from_json.py msgid "greenish yellow hatchling" @@ -69340,6 +69033,19 @@ msgstr[0] "丧尸霸王龙" msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "一大坨破烂发臭的血肉,托起了它巨大的牙齿。" +#: lang/json/MONSTER_from_json.py +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" +msgstr[0] "丧尸恐爪龙" + +#. ~ Description for {'str_sp': 'Z-Deinonychus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." +msgstr "一具体表覆盖着破碎羽毛和黑色腐臭液体的蹒跚而行的中型两足恐龙尸体。双脚前端巨大的镰刀状利爪正不断挥舞着。" + #: lang/json/MONSTER_from_json.py msgid "improvised SMG turret" msgid_plural "improvised SMG turrets" @@ -69504,6 +69210,41 @@ msgid "" "like jaws." msgstr "一只布满黑色鳞片的怪物,有着深沉的眼窝,内部闪烁着邪恶的绿光。它的脸和头骨看起来像是骷髅一样,酸液从匕首状的下颚上滴落下来。" +#: lang/json/MONSTER_from_json.py +msgid "goblin warrior" +msgid_plural "goblin warriors" +msgstr[0] "哥布林战士" + +#. ~ Description for {'str': 'goblin warrior'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." +msgstr "这个矮小的人形生物身上沾满了污秽,挥舞着棍棒向你大喊大叫。" + +#: lang/json/MONSTER_from_json.py +msgid "goblin slinger" +msgid_plural "goblin slingers" +msgstr[0] "哥布林投石手" + +#. ~ Description for {'str': 'goblin slinger'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that slings rocks almost as well as it slings insults." +msgstr "一只丑陋的人形生物,它投石头的水平和它投出对你侮辱的言辞一样好。" + +#: lang/json/MONSTER_from_json.py +msgid "goblin chieftain" +msgid_plural "goblin chieftains" +msgstr[0] "哥布林酋长" + +#. ~ Description for {'str': 'goblin chieftain'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that was promoted to chieftain because it figured out which" +" end of the weapon is pointy." +msgstr "一只被它的同类推举为酋长的丑陋人形生物,因为它知道武器的哪一端是尖的。" + #: lang/json/MONSTER_from_json.py msgid "clay golem" msgid_plural "clay golems" @@ -69768,387 +69509,6 @@ msgid "" "torso." msgstr "劣魔就像一团融化的血肉,勉强能看出它有着人形的头部和躯干。" -#: lang/json/MONSTER_from_json.py -msgid "automated turret" -msgid_plural "automated turrets" -msgstr[0] "全自动炮塔" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed defense turret" -msgid_plural "disarmed defense turrets" -msgstr[0] "防御炮塔(无武装)" - -#. ~ Description for disarmed defense turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-series turret, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. It requires an integrated firearm module to " -"work." -msgstr "" -"通用原子公司制造的 TX " -"系列炮塔基座,这台体积小巧的锭形的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,需要安装一个内置枪械模块才会攻击敌人。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed military turret" -msgid_plural "disarmed military turrets" -msgstr[0] "军用炮塔(无武装)" - -#. ~ Description for disarmed military turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX series turret, a military-grade automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. It requires a integrated gun module to operate." -msgstr "" -"Leadworks有限公司制造的 TX " -"系列炮塔基座,这台军用型号的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,需要安装一个内置枪械模块才会攻击敌人。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed advanced turret" -msgid_plural "disarmed advanced turrets" -msgstr[0] "高级炮塔(无武装)" - -#. ~ Description for disarmed advanced turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-series turret, an advanced automated gun turret using state" -" of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. It requires an integrated gun module to function." -msgstr "" -"DoubleTech公司制造的 T " -"系列炮塔基座,这台技术最复杂的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,需要安装一个内置枪械模块才会攻击敌人。" - -#: lang/json/MONSTER_from_json.py -msgid "9mm turret" -msgid_plural "9mm turrets" -msgstr[0] "9mm口径炮塔" - -#. ~ Description for 9mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-1 Guardian, a small, pill-shaped automated gun turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " -"full 360 degrees." -msgstr "" -"通用原子公司制造的 TX-1 " -"\"守护者\"型炮塔,这台体积小巧的锭形的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置9mm口径冲锋枪可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "shotgun turret" -msgid_plural "shotgun turrets" -msgstr[0] "霰弹枪炮塔" - -#. ~ Description for shotgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-4 Protector, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 12ga shotgun can swivel a " -"full 360 degrees." -msgstr "" -"通用原子公司制造的 TX-4 " -"\"守护者\"型炮塔,这台体积小巧的锭形的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置12号口径霰弹枪可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "riot control turret" -msgid_plural "riot control turrets" -msgstr[0] "防暴炮塔" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1a Warden, a small, pill-shaped automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 40mm teargas launcher can swivel " -"a full 360 degrees." -msgstr "" -"通用原子公司制造的 TZ-1a " -"\"监狱长\"型炮塔,这台体积小巧的锭形的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置40mm催泪瓦斯弹发射器可以360°无死角移动。" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1b Pacifier, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 40mm beanbag launcher can " -"swivel a full 360 degrees." -msgstr "" -"通用原子公司制造的 TZ-1b " -"\"平暴者\"型炮塔,这台体积小巧的锭形的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置40mm沙包榴弹发射器可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "5.56mm turret" -msgid_plural "5.56mm turrets" -msgstr[0] "5.56mm口径炮塔" - -#. ~ Description for 5.56mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32L Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " -"360 degrees." -msgstr "" -"Leadworks有限公司制造的 TX-32L " -"\"哨兵\"型炮塔,这台军用型号的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置5.56mm口径步枪可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "7.62mm turret" -msgid_plural "7.62mm turrets" -msgstr[0] "7.62mm口径炮塔" - -#. ~ Description for 7.62mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32H Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " -"360 degrees." -msgstr "" -"Leadworks有限公司制造的 TX-32H " -"\"哨兵\"型炮塔,这台军用型号的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置7.62mm口径步枪可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "50cal turret" -msgid_plural "50cal turrets" -msgstr[0] ".50 口径炮塔" - -#. ~ Description for 50cal turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-13 Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 50 caliber machinegun can " -"swivel a full 360 degrees." -msgstr "" -"Leadworks有限公司制造的 TX-13 " -"\"哨兵\"型炮塔,这台军用型号的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置 .50 口径机枪可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "8x40mm turret" -msgid_plural "8x40mm turrets" -msgstr[0] "8x40mm 无壳弹炮塔" - -#. ~ Description for 8x40mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-01A Warden, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " -"full 360 degrees." -msgstr "" -"Leadworks有限公司制造的 TX-01A " -"\"看守者\"型炮塔,这台军用型号的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置8x40mm无壳弹步枪可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "needle turret" -msgid_plural "needle turrets" -msgstr[0] "镖形弹炮塔" - -#. ~ Description for needle turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TN-7 Sentry, a military-grade automated flechette turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 5mm flechette gun can swivel a " -"full 360 degrees." -msgstr "" -"Leadworks有限公司制造的 TN-7 " -"\"岗哨\"型炮塔,这台军用型号的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置 5mm " -"镖形弹步枪可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "40mm grenade turret" -msgid_plural "40mm grenade turrets" -msgstr[0] "40mm榴弹炮塔" - -#. ~ Description for 40mm grenade turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TG-7 Sentry, a military-grade automated gun turret using" -" state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated 40mm grenade launcher can swivel a full " -"360 degrees." -msgstr "" -"Leadworks有限公司制造的 TG-7 " -"\"岗哨\"型炮塔,这台军用型号的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置40mm榴弹发射器可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "flame turret" -msgid_plural "flame turrets" -msgstr[0] "喷火炮塔" - -#. ~ Description for flame turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TF-7 Sentry, a military-grade automated flame turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated flamethrower can swivel a full " -"360 degrees." -msgstr "" -"Leadworks有限公司制造的 TF-7 " -"\"岗哨\"型炮塔,这台军用型号的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置火焰喷射器可以360°无死角移动。" - -#. ~ Description for laser turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-L3 Scintillator, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated laser emitter can swivel a full 360 " -"degrees." -msgstr "" -"DoubleTech公司制造的 T-L3 " -"\"闪烁体\"型炮塔,这台技术最复杂的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置激光武器可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "acid turret" -msgid_plural "acid turrets" -msgstr[0] "喷酸炮塔" - -#. ~ Description for acid turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-A3 Disintegrator, an advanced automated acid turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated acid thrower can swivel a full 360 " -"degrees." -msgstr "" -"DoubleTech公司制造的 T-A3 " -"\"分解者\"型炮塔,这台技术最复杂的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置酸液喷射器可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "plasma turret" -msgid_plural "plasma turrets" -msgstr[0] "等离子炮塔" - -#. ~ Description for plasma turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-P3 Scathefire, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated plasma ejector can swivel a full 360 " -"degrees." -msgstr "" -"DoubleTech公司制造的 T-P3 " -"\"炽炎\"型炮塔,这台技术最复杂的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置等离子发射器可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "railgun turret" -msgid_plural "railgun turrets" -msgstr[0] "轨道炮炮塔" - -#. ~ Description for railgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-R3 Arbalest, an advanced automated railgun turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated railgun can swivel a full 360 degrees." -msgstr "" -"DoubleTech公司制造的 T-R3 " -"\"劲弩\"型炮塔,这台先进的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置的轨道炮可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "advanced electro turret" -msgid_plural "advanced electro turrets" -msgstr[0] "先进放电炮塔" - -#. ~ Description for advanced electro turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-E3 Thunderstroke, an advanced automated electro turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated electro caster can swivel a full " -"360 degrees." -msgstr "" -"DoubleTech公司制造的 T-E3 " -"\"雷击\"型炮塔,这台技术最复杂的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置放电装置可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "EMP turret" -msgid_plural "EMP turrets" -msgstr[0] "EMP炮塔" - -#. ~ Description for EMP turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-EMP3 Corona, an advanced automated EMP turret using state " -"of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. Its electro magnetic pulse generator can swivel a full 360 " -"degrees." -msgstr "" -"DoubleTech公司制造的 T-EMP3 " -"\"日冕\"型炮塔,这台技术最复杂的自动炮塔使用目前最先进的ATR自动目标识别系统来动态识别敌我目标,炮塔上内置EMP发射器可以360°无死角移动。" - -#: lang/json/MONSTER_from_json.py -msgid "guardin gnome" -msgid_plural "guardin gnomes" -msgstr[0] "武装园艺机器人" - -#. ~ 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 "一个园艺机器人,安静而且毫无威胁。" - -#: lang/json/MONSTER_from_json.py -msgid "utility robot" -msgid_plural "utility robots" -msgstr[0] "通用机器人" - -#. ~ Description for utility robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of utility robot formerly in use by government " -"agencies, private corporations, and civilians alike." -msgstr "由政府机构、私营公司和普通居民在大灾变前使用的多款通用机器人中的一种。" - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and trespassers." -msgstr "一款小型无人机,配备了一套摄像机,并配备了眩目的闪光灯。虽然已经不再链接至任何警用或安防网络,但它依旧继续无休止地追捕罪犯和入侵者。" - -#: lang/json/MONSTER_from_json.py -msgid "defense robot" -msgid_plural "defense robots" -msgstr[0] "防御机器人" - -#. ~ Description for defense robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is armed with an electric prod and an integrated 9mm firearm." -msgstr "一台使用内置电源并依旧活跃的自动防御机器人。这个机器人装备有一把电击枪和一把内置9mm口径枪械。" - -#: lang/json/MONSTER_from_json.py -msgid "security robot" -msgid_plural "security robots" -msgstr[0] "安防机器人" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an integrated 9mm firearm." -msgstr "一台使用内置电源并依旧活跃的自动防御机器人。这个机器人装备有一把内置9mm口径枪械。" - -#: lang/json/MONSTER_from_json.py -msgid "riotcontrol robot" -msgid_plural "riotcontrol robots" -msgstr[0] "防暴机器人" - -#. ~ Description for riotcontrol robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod, tear gas sprayer, and integrated" -" 40mm beanbag launcher." -msgstr "一台使用内置电源并依旧活跃的自动防御机器人。这个机器人装备有一把电击枪,一把催泪瓦斯喷射器和一把内置40mm沙包榴弹发射器。" - #: lang/json/MONSTER_from_json.py msgid "necco" msgid_plural "neccos" @@ -70391,770 +69751,16 @@ msgid "" msgstr "\"幽灵怪\"(12N)10 级建筑工型机器人 。该型号是\"幽灵怪\"系列的单兵辅助型号的一部分,该系列设计得可与更传统的军队无缝衔接。" #: lang/json/MONSTER_from_json.py -msgid "craftbuddy" -msgid_plural "craftbuddies" -msgstr[0] "制造小帮手" +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" +msgstr[0] "厕纸木乃伊" -#. ~ Description for {'str': 'craftbuddy', 'str_pl': 'craftbuddies'} +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper +#. mummies'} #: lang/json/MONSTER_from_json.py msgid "" -"A mobile crafting station used by workers in mines, on oil rigs, and in " -"other remote locales. In it's active state, the craftbuddy merely follows " -"its user. In it's deactivated state, the craft buddy is useable as a " -"toolbench and multipurpose workstation." -msgstr "" -"一台给在矿场石油钻井平台和其他偏远地区的工人使用的移动制造站。开启时,制造小帮手只是跟随它的使用者移动。关闭时,制造小帮手可以当作工作台和多用途工作站使用。" - -#: lang/json/MONSTER_from_json.py -msgid "automated armor" -msgid_plural "automated armors" -msgstr[0] "自动化动力装甲" - -#. ~ Description for automated armor -#: lang/json/MONSTER_from_json.py -msgid "" -"A suit of power armor temporarily controlled by an attached AI-core. " -"Originally intended as a way to retrieve dead or wounded operators from " -"combat, it was more commonly used for transporting the suit itself. The AI " -"is limited, and makes a poor combatant." -msgstr "" -"一套安装了AI核心,能够自主行动的动力装甲。原本设计用来从战斗中救回死伤的操作者,而之后更多的是用来运输动力装甲本身。AI核心的智力有限,只能勉强当个很差的作战人员。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "light auto armor" -msgid_plural "light auto armors" -msgstr[0] "自动化轻型动力装甲" - -#: lang/json/MONSTER_from_json.py -msgid "auto armor" -msgid_plural "auto armors" -msgstr[0] "自动化动力装甲" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "heavy auto armor" -msgid_plural "heavy auto armors" -msgstr[0] "自动化重型动力装甲" - -#: lang/json/MONSTER_from_json.py -msgid "floating lantern" -msgid_plural "floating lanterns" -msgstr[0] "浮灯无人机" - -#. ~ Description for floating lantern -#: lang/json/MONSTER_from_json.py -msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "一台经过改装的无人机,用来当作移动光源使用。" - -#: lang/json/MONSTER_from_json.py -msgid "distract-o-hack" -msgid_plural "distract-o-hacks" -msgstr[0] "吵吵无人机" - -#. ~ Description for distract-o-hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed into a makeshift diversion tactic. Once " -"activated it will light up, produce sound, emit sparks, and move towards " -"hostile targets. Although fragile, the distract-o-hack's erratic movements " -"make it difficult to hit." -msgstr "" -"一台经过改装的无人机,可用于转移敌人的注意力。一旦激活,它就点亮自己,产生声音,发射火花,并向敌对目标移动。虽然无人机自身十分脆弱,但它变化无常的移动路径使它很难被击中。" - -#: lang/json/MONSTER_from_json.py -msgid "arsonhack" -msgid_plural "arsonhacks" -msgstr[0] "放火无人机" - -#. ~ Description for arsonhack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread flame and cause property damage. It's" -" almost as dangerous to its user as it is to the surroundings. The " -"arsonhack cannot be recovered once activated. Only a reckless madman would " -"dare to build this." -msgstr "" -"一台经过改装的无人机,可用于四处放火并造成财产损失。它对使用者和对周围环境一样一视同仁,十分危险。这个无人机一旦启动就无法回收。只有真正鲁莽的疯子才敢造这玩意。" - -#: lang/json/MONSTER_from_json.py -msgid "spore hack" -msgid_plural "spore hacks" -msgstr[0] "孢子无人机" - -#. ~ Description for spore hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread alien contaminants. It periodically " -"releases a puff of fungal spores. Who in their right mind would build such " -"a thing?" -msgstr "一台经过改装的无人机,可用于四处传播来自异界的孢子感染。它会周期性地释放出大量真菌孢子。哪个脑子正常的人会造这玩意?" - -#: lang/json/MONSTER_from_json.py -msgid "watercannon turret" -msgid_plural "watercannon turrets" -msgstr[0] "水炮炮塔" - -#. ~ Description for watercannon turret -#: lang/json/MONSTER_from_json.py -msgid "" -"A turret equipped with a jury-rigged watercannon in place of a proper " -"firearm. It's highly ineffective but the ammo is cheap." -msgstr "一个在原本武器位置上临时装了一门水炮的炮塔。虽然攻击威力很弱,但起码弹药很便宜。" - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and tresspassers." -msgstr "一款小型无人机,配备了一套摄像机,并配备了眩目的闪光灯。虽然已经不再链接至任何警用或安防网络,但它依旧继续无休止地追捕罪犯和入侵者。" - -#: lang/json/MONSTER_from_json.py -msgid "floating heater" -msgid_plural "floating heaters" -msgstr[0] "浮空加热器" - -#. ~ Description for floating heater -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space." -msgstr "一台经过改装的眼球无人机,用来当作浮空移动的加热器使用。它持续不断地朝四周释放暖气来加热封闭空间。" - -#: lang/json/MONSTER_from_json.py -msgid "floating furnace" -msgid_plural "floating furnaces" -msgstr[0] "悬浮炉" - -#. ~ Description for floating furnace -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. Warning! " -"Can result in rapid heatstroke!" -msgstr "一台经过改装的眼球无人机,用来当作浮空移动的加热器使用。它持续不断地朝四周释放危险的高温来加热封闭空间。当心!会引发快速中暑!" - -#: lang/json/MONSTER_from_json.py -msgid "burning eye" -msgid_plural "burning eyes" -msgstr[0] "机械燃烧之眼" - -#. ~ Description for burning eye -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon. The lack of recoil allows " -"the hovering robot to aim and fire without penalty. It has decent range and" -" damage, but requires an extended recharge time between shots." -msgstr "" -"一台经过改装的眼球无人机,用来当作浮空的激光武器平台。由于没有后坐力,浮空无人机可以不受任何影响地瞄准和射击。它有不错的射程和伤害,但两次射击之间需要较长时间充能。" - -#: lang/json/MONSTER_from_json.py -msgid "hazmat bot" -msgid_plural "hazmat bots" -msgstr[0] "防化机器人" - -#. ~ Description for hazmat bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A utility robot designed for cleaning up waste material in hazardous " -"conditions." -msgstr "一台被设计用于危险环境下清除废弃物的通用机器人。" - -#: lang/json/MONSTER_from_json.py -msgid "butler-bot" -msgid_plural "butler-bots" -msgstr[0] "管家机器人" - -#. ~ Description for butler-bot -#: lang/json/MONSTER_from_json.py -msgid "A luxury model utility robot for domestic use." -msgstr "一台居家使用的豪华通用机器人。" - -#: lang/json/MONSTER_from_json.py -msgid "construction robot" -msgid_plural "construction robots" -msgstr[0] "建筑机器人" - -#. ~ Description for construction robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of construction robot formerly in use by government " -"agencies and private corporations. It is equipped with an integrated " -"welder, flashlight, nailgun, and jackhammer." -msgstr "一台在大灾变前主要由政府机构和私营公司使用的多款建筑机器人中的一种。它装备了内置焊枪,手电筒,射钉枪和冲击钻。" - -#: lang/json/MONSTER_from_json.py -msgid "firefighter robot" -msgid_plural "firefighter robots" -msgstr[0] "消防机器人" - -#. ~ Description for firefighter robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of fire-fighting robot formerly in use by local fire " -"departments and emergency services. Designed for entering burning buildings" -" and other situations deemed too dangerous for human firefighters." -msgstr "一台在大灾变前主要由当地消防部门和应急服务机构使用的多款消防机器人中的一种。设计用于进入燃烧的建筑物和其他对人类消防队员来说太危险的地方。" - -#: lang/json/MONSTER_from_json.py -msgid "blob breeder" -msgid_plural "blob breeders" -msgstr[0] "变形怪培育机" - -#. ~ Description for blob breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of living blobs. Why on Earth" -" would you build this?" -msgstr "一台改装的通用机器人,用来当作异界变形怪的移动孵化器。它会周期性地释放出一群活生生的变形怪。你到底为什么会想要造这玩意?" - -#: lang/json/MONSTER_from_json.py -msgid "slime breeder" -msgid_plural "slime breeders" -msgstr[0] "变形怪培育器" - -#. ~ Description for slime breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of friendly blobs." -msgstr "一台改装的通用机器人,用来当作异界变形怪的移动孵化器。它会周期性地释放出一群友好的变形怪。" - -#: lang/json/MONSTER_from_json.py -msgid "digestron" -msgid_plural "digestrons" -msgstr[0] "消化机器人" - -#. ~ Description for digestron -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. A useful helper for keeping your front lawn clean of debris…" -" or corpses." -msgstr "" -"一台改装的通用机器人,用来当作一台全自动真空吸尘器。它会把地上四散的物品吸入,然后用内部储存的酸液溶解它们。一个让你的草坪保持清洁免受垃圾……或尸体影响的好帮手。" - -#: lang/json/MONSTER_from_json.py -msgid "bee bot" -msgid_plural "bee bots" -msgstr[0] "蜂巢机器人" - -#. ~ Description for bee bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers honey combs. It protects the insect " -"colony with a mechanical crossbow mounted to its chassis." -msgstr "一台改装的通用机器人,用来当作流动蜂巢。每隔一段时间会产出一些新鲜的蜂巢。它使用一把安装在外壳上的一把机械弩保护体内的蜂群。" - -#: lang/json/MONSTER_from_json.py -msgid "medical robot" -msgid_plural "medical robots" -msgstr[0] "医疗机器人" - -#. ~ Description for medical robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A free roaming medical robot capable of administering powerful anesthetics " -"and performing complex surgical operations, usually in that order. Faulty " -"bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." -msgstr "" -"一台正在四处游荡的医疗机器人,它能够为患者注射强效麻醉剂并进行复杂的外科手术,通常会按这顺序进行操作。然而错误百出的医疗诊断程序让其在大灾变之前引发了无数诉讼。" - -#: lang/json/MONSTER_from_json.py -msgid "assassination robot" -msgid_plural "assassination robots" -msgstr[0] "刺客机器人" - -#. ~ Description for assassination robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. Its surgical " -"tools have been replaced with a fearsome set of blades, and its hypodermic " -"needle now delivers powerful toxins." -msgstr "一台改装的医疗机器人,现在成了一台杀人机器。它的手术工具已经被一系列可怕的刀片所取代,它的注射器针头现在能够释放出强大的毒素。" - -#: lang/json/MONSTER_from_json.py -msgid "elixirator" -msgid_plural "elixirators" -msgstr[0] "灵药机器人" - -#. ~ Description for elixirator -#: lang/json/MONSTER_from_json.py -msgid "" -"This doesn't work yet. Don't build it… A salvaged medibot with its internal" -" pharma-fabricators repurposed to produce mutagen." -msgstr "" -"* 这台机器人目前无法正常工作,不要建造。\n" -"一台改装的医疗机器人,内部制药器经过重新编程能够产生诱变剂。" - -#: lang/json/MONSTER_from_json.py -msgid "party bot" -msgid_plural "party bots" -msgstr[0] "派对机器人" - -#. ~ Description for party bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Why on Earth would you build this crazy " -"thing?" -msgstr "一台改装的医疗机器人,内部填满了大麻,机身上下覆盖满了闪闪发光的彩灯,而且经过重新编程能够不断跳舞。你到底为什么会想要建造这个疯狂的玩意?" - -#: lang/json/MONSTER_from_json.py -msgid "rat snatcher" -msgid_plural "rat snatchers" -msgstr[0] "捕鼠机器人" - -#. ~ Description for rat snatcher -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It's faster than " -"the original model but far less sturdy." -msgstr "一台改装的掠行机器人,用来捕猎小型猎物。它与原型号相比速度更快,但也更不结实。" - -#: lang/json/MONSTER_from_json.py -msgid "grab-bot" -msgid_plural "grab-bots" -msgstr[0] "擒拿机器人" - -#. ~ Description for grab-bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " -"meant to work in a pack." -msgstr "一台改装的掠行机器人,用来擒拿并使敌人无法移动。成群使用时效果更好。" - -#: lang/json/MONSTER_from_json.py -msgid "pest hunter" -msgid_plural "pest hunters" -msgstr[0] "灭害机器人" - -#. ~ Description for pest hunter -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's " -"small size precludes rapid fire, due to recoil, and requires the use of " -"lightweight caseless ammo." -msgstr "一台改装的掠行机器人,内置了一把8x40mm无壳弹枪械。该机器人体型过小,发射时的后坐力让其无法快速射击,而且需要使用重量更轻的无壳弹药。" - -#: lang/json/MONSTER_from_json.py -msgid "insane cyborg" -msgid_plural "insane cyborgs" -msgstr[0] "报废改造人" - -#. ~ Description for insane cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A robot body with the head of a human. All kinds of electronic wires and " -"devices are implanted in its head. This cyborg moves erratically and has a " -"confused and deranged look in its eyes." -msgstr "一具头部是人类但身体是机械的机器人,各种电线和电子设备被植入了它的脑袋里。它蹒跚的行走着,喃喃自语,眼中充满着迷茫和疯狂。" - -#: lang/json/MONSTER_from_json.py -msgid "necrotic cyborg" -msgid_plural "necrotic cyborgs" -msgstr[0] "死灵改造人" - -#. ~ Description for necrotic cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Why on Earth " -"would anyone build such an abomination?" -msgstr "一台改装的报废改造人,头部被替换成了死灵法尸的头颅。死而复生的头部保留了一些复活丧尸的能力。为什么会有人想要建造这样一只可怕的怪物呢?" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod and an integrated shotgun." -msgstr "一台使用内置电源并依旧活跃的自动防御机器人。这个机器人装备有一把电击枪和一把内置霰弹枪。" - -#: lang/json/MONSTER_from_json.py -msgid "military robot" -msgid_plural "military robots" -msgstr[0] "军用机器人" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5.56mm firearm." -msgstr "一台使用内置能源核心供电并依旧活跃的军用机器人。这个机器人装备有一把电击枪和一把内置5.56mm口径枪械。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military training robot still operating due to its internal power core. " -"This one is armed with a high power paintball gun and a foam baton." -msgstr "一台使用内置能源核心供电并依旧活跃的军训机器人。这个机器人装备有一把强力彩弹枪和一根泡沫甩棍。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 7.62mm firearm." -msgstr "一台使用内置能源核心供电并依旧活跃的军用机器人。这个机器人装备有一把电击枪和一把内置7.62mm口径枪械。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 50 caliber firearm." -msgstr "一台使用内置能源核心供电并依旧活跃的军用机器人。这个机器人装备有一把电击枪和一把内置 .50 口径枪械。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 8mm firearm." -msgstr "一台使用内置能源核心供电并依旧活跃的军用机器人。这个机器人装备有一把电击枪和一把内置8x40mm无壳弹枪械。" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5x50mm flechette gun." -msgstr "一台使用内置能源核心供电并依旧活跃的军用机器人。这个机器人装备有一把电击枪和一把内置5x50mm镖形弹枪械。" - -#: lang/json/MONSTER_from_json.py -msgid "grenadier robot" -msgid_plural "grenadier robots" -msgstr[0] "榴弹机器人" - -#. ~ Description for grenadier robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 40mm grenade launcher." -msgstr "一台使用内置能源核心供电并依旧活跃的军用机器人。这个机器人装备有一把电击枪和一把内置40mm榴弹发射器。" - -#: lang/json/MONSTER_from_json.py -msgid "military flame robot" -msgid_plural "military flame robots" -msgstr[0] "军用喷火机器人" - -#. ~ Description for military flame robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated flamethrower." -msgstr "一台使用内置能源核心供电并依旧活跃的军用机器人。这个机器人装备有一把电击枪和一把内置火焰喷射器。" - -#: lang/json/MONSTER_from_json.py -msgid "advanced robot" -msgid_plural "advanced robots" -msgstr[0] "高级机器人" - -#. ~ Description for advanced robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is armed with a powerful laser-emitter." -msgstr "一台使用内置能源核心供电并依旧活跃的高级机器人。这个机器人装备有一把威力强大的激光武器。" - -#: lang/json/MONSTER_from_json.py -msgid "laser-emitting robot" -msgid_plural "laser-emitting robots" -msgstr[0] "激光机器人" - -#. ~ Description for laser-emitting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful laser-emitter." -msgstr "一台使用内置能源核心供电并依旧活跃的高级机器人。这个机器人装备有一把威力强大的激光武器。" - -#: lang/json/MONSTER_from_json.py -msgid "plasma-ejecting robot" -msgid_plural "plasma-ejecting robots" -msgstr[0] "等离子机器人" - -#. ~ Description for plasma-ejecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful plasma-ejector." -msgstr "一台使用内置能源核心供电并依旧活跃的高级机器人。这个机器人装备有一把威力强大的等离子发射器。" - -#: lang/json/MONSTER_from_json.py -msgid "railgun robot" -msgid_plural "railgun robots" -msgstr[0] "轨道炮机器人" - -#. ~ Description for railgun robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful railgun." -msgstr "一台使用内置能源核心供电并依旧活跃的高级机器人。这个机器人装备有一把威力强大的轨道炮。" - -#: lang/json/MONSTER_from_json.py -msgid "electro-casting robot" -msgid_plural "electro-casting robots" -msgstr[0] "放电机器人" - -#. ~ Description for electro-casting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful electro-caster." -msgstr "一台使用内置能源核心供电并依旧活跃的高级机器人。这个机器人装备有一把威力强大的放电装置。" - -#: lang/json/MONSTER_from_json.py -msgid "EMP-projecting robot" -msgid_plural "EMP-projecting robots" -msgstr[0] "EMP发射器机器人" - -#. ~ Description for EMP-projecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful EMP-projector." -msgstr "一台使用内置能源核心供电并依旧活跃的高级机器人。这个机器人装备有一把威力强大的EMP发射器。" - -#: lang/json/MONSTER_from_json.py -msgid "junkyard cowboy" -msgid_plural "junkyard cowboys" -msgstr[0] "机器废料牛仔" - -#. ~ Description for junkyard cowboy -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Due to bootleg targeting software, it can only attack nearby targets." -msgstr "一台改装的防御机器人,装上了霰弹枪和两把圆锯。由于使用了盗版瞄准软件,它只能攻击紧挨着身边的目标。" - -#: lang/json/MONSTER_from_json.py -msgid "shortcircuit samurai" -msgid_plural "shortcircuit samurais" -msgstr[0] "机器短路武士" - -#. ~ Description for shortcircuit samurai -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with two electrified blades. The over-" -"taxed power systems result in somewhat sluggish movement and occasional " -"discharges. Keep a safe distance!" -msgstr "一台改装的防御机器人,装上了两把带电长刀。超载的电源系统使得它移动有些迟缓,而且还会不时朝着四周放电。保持安全距离!" - -#: lang/json/MONSTER_from_json.py -msgid "slapdash paladin" -msgid_plural "slapdash paladins" -msgstr[0] "机器瞎搭圣骑" - -#. ~ Description for slapdash paladin -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. The burning fuel reserves make the robot noisy and " -"smokey." -msgstr "一台改装的防御机器人,装上了自制的火焰喷射器和两把烧红的刀刃。由于燃料的燃烧,这个机器人发出不少的噪声和黑烟。" - -#: lang/json/MONSTER_from_json.py -msgid "robo-guardian" -msgid_plural "robo-guardians" -msgstr[0] "守护者机器人" - -#. ~ Description for robo-guardian -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Multiple weapons provide a high rate of fire, but jury-rigged sensors limit " -"the effective range and accuracy. It makes for a good close range " -"bodyguard." -msgstr "" -"一台改装的军用机器人,装上了一对内置9mm口径枪械。因为安装了多把武器,它的射速很高,但是拼凑出来的传感器限制了它的有效攻击范围和命中率。适合用作贴身护卫。" - -#: lang/json/MONSTER_from_json.py -msgid "robote deluxe" -msgid_plural "robote deluxe" -msgstr[0] "豪华机器人" - -#. ~ Description for {'str_sp': 'robote deluxe'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style." -msgstr "一台镶钻贴金的机器人,装有一对内置9mm口径枪械。土豪用奢侈品,适合那些即便在末日生存中也追求时尚的人。" - -#: lang/json/MONSTER_from_json.py -msgid "robo-protector" -msgid_plural "robo-protectors" -msgstr[0] "保卫者机器人" - -#. ~ Description for robo-protector -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. The " -"modified firearm is only capable of three round bursts, but range and " -"accuracy are decent. It makes for a solid combat ally." -msgstr "" -"一台改装的军用机器人,装上了一把内置5.56mm口径步枪。经过改装的枪械只有三连发模式,但是攻击范围和命中率还行。可以作为可靠的的战斗伙伴。" - -#: lang/json/MONSTER_from_json.py -msgid "robo-defender" -msgid_plural "robo-defenders" -msgstr[0] "防卫者机器人" - -#. ~ Description for robo-defender -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Improved" -" optics provide nightvision and excellent range, but glitchy targeting " -"software requires an extended pause between shots. It makes for a good long" -" range sniper." -msgstr "" -"一台改装的军用机器人,装上了一把内置 .50 " -"口径步枪。改造过的光学器件提供了夜视功能和极佳的攻击范围,但是它所使用的瞄准软件有些毛病,两次射击之间需要间隔很长时间。适合用于长距离狙击。" - -#: lang/json/MONSTER_from_json.py -msgid "glittering lady" -msgid_plural "glittering ladies" -msgstr[0] "机器闪光女士" - -#. ~ Description for {'str': 'glittering lady', 'str_pl': 'glittering ladies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It has two integral lasers and emits a steady pulse of blinding flashes. " -"Due to mismatched focusing lenses, the lasers have limited range." -msgstr "" -"一台改装的高级机器人,现在是一座耀眼的毁灭灯塔。装有两只内置激光武器,还能够持续发出阵阵炫目的闪光。由于使用了不匹配的聚焦透镜,激光的攻击范围有限。" - -#: lang/json/MONSTER_from_json.py -msgid "bitter spinster" -msgid_plural "bitter spinsters" -msgstr[0] "机器辛辣阿姨" - -#. ~ Description for bitter spinster -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " -"pipes weaken the robot structurally, making it somewhat fragile." -msgstr "" -"一台改装的军用机器人,现在是一只能腐蚀血肉的怪兽。一个内置酸液生成器连接着一个远射喷头。由于装上了不少液箱和管道,这个机器人的结构比较脆弱。" - -#. ~ Description for chicken walker -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a " -"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade " -"launcher, 5.56 anti-personnel gun, and the ability to electrify itself " -"against attackers, it is an effective automated sentry, though production " -"was limited due to a legal dispute." -msgstr "" -"一架诺斯罗普ATSV型自行机器人,一种巨大的重型全装甲机器人,使用反关节机械腿行走,配备40MM反车辆手榴弹发射器和5.56反步兵枪,并且有足够的生存能力,是一种高效的自动哨兵,由于法律纠纷所以产量有限。" - -#: lang/json/MONSTER_from_json.py -msgid "chainsaw horror" -msgid_plural "chainsaw horrors" -msgstr[0] "机器电锯狂人" - -#. ~ Description for chainsaw horror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"whirring chainsaws. A speaker system has been installed to blast terrifying" -" shrieks of distorted music. No one in their right mind would craft such an" -" awful creature." -msgstr "" -"一台改装的双足机器人,现在是一架装点着骷髅和尖刺的恐怖怪兽。它原本的内置远程武器被替换成了一套不断呼呼作响的电锯。内部扬声器被改装播放着各种扭曲音乐的恐怖尖啸。没有一个头脑清醒的人会制造出如此可怕的怪物。" - -#: lang/json/MONSTER_from_json.py -msgid "screeching terror" -msgid_plural "screeching terrors" -msgstr[0] "机器尖啸恐魔" - -#. ~ Description for screeching terror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"piston-driven lances. A speaker system has been installed to blast " -"terrifying shrieks of distorted music. No one in their right mind would " -"craft such a hellish beast." -msgstr "" -"一台改装的双足机器人,现在是一架装点着骷髅和尖刺的恐怖怪兽。它原本的内置远程武器被替换成了一套活塞驱动的长枪。内部扬声器被改装播放着各种扭曲音乐的恐怖尖啸。没有一个头脑清醒的人会制造出如此恐怖的怪物。" - -#: lang/json/MONSTER_from_json.py -msgid "hooked nightmare" -msgid_plural "hooked nightmares" -msgstr[0] "机器钩心梦魇" - -#. ~ Description for hooked nightmare -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"spinning chains terminating in bloody hooks. A speaker system has been " -"installed to blast terrifying shrieks of distorted music. No one in their " -"right mind would craft such a twisted abomination." -msgstr "" -"一台改装的双足机器人,现在是一架装点着骷髅和尖刺的恐怖怪兽。它原本的内置远程武器被替换成了一套带着血腥利钩的旋转铁链。内部扬声器被改装播放着各种扭曲音乐的恐怖尖啸。没有一个头脑清醒的人会制造出如此可怕的怪物。" - -#. ~ Description for Beagle Mini-Tank UGV -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an " -"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" -"infantry weapons, it's designed for high-risk urban fighting." -msgstr "" -"诺斯洛普公司出品的\"猎兔犬\"型无人坦克车是一台冰箱大小的城镇战用无人车。装备了一台反坦克导弹发射器,40mm榴弹发射器以及各类反步兵武器,设计用于在高风险的城市作战行动中使用。" - -#: lang/json/MONSTER_from_json.py -msgid "fist king" -msgid_plural "fist kings" -msgstr[0] "机器铁拳国王" - -#. ~ Description for fist king -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Although lacking" -" ranged weapons, its armor and strength make it a match for the even the " -"biggest monsters. Only a madman would dare build such a reckless behemoth." -msgstr "" -"一台改装的坦克机器人,装有一对强大的气动锤。它使用这对锤子摧毁它行进路线上的一切障碍,包括建筑物。虽然缺少远程武器,但它的装甲和力量使其能够与最为巨大的怪物匹敌。只有疯子才会敢于建造这样的猛兽。" - -#: lang/json/MONSTER_from_json.py -msgid "atomic sultan" -msgid_plural "atomic sultans" -msgstr[0] "机器核子苏丹" - -#. ~ Description for atomic sultan -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with burning hot man-crushers. Although lacking" -" ranged weapons, its armor and strength make it a match for even the biggest" -" foes. Multiple fusion cores give the robot ample power but also cause " -"radioactive gas leaks. Only a lunatic would dare build such a reckless " -"monster." -msgstr "" -"一台改装的坦克机器人,装有一台烧得通红的食人粉碎机。虽然缺少远程武器,但它的装甲和力量使其能够与最为巨大的怪物匹敌。多个内置核聚变核心为这台机器人提供了充足的能源,但也泄漏出放射性气体。只有疯子才会敢于建造这样的猛兽。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gelatinous mass" -msgid_plural "gelatinous mass" -msgstr[0] "凝胶变形怪" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#. ~ Description for {'str_sp': 'gray mass'} -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An escaping noisy blob, catch it before it brings in every zombie for miles!" -msgstr "一个正在逃跑的吵闹的变形怪,在它引过来方圆好几里内的所有丧尸之前赶紧抓住它!" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gray mass" -msgid_plural "gray mass" -msgstr[0] "灰色变形怪" +"Vaguely humanoid in shape, layered in something resembling toilet paper." +msgstr "一个看上去略像人形的怪物,被层层包裹在类似厕纸的东西里。" #: lang/json/MONSTER_from_json.py msgid "giant scorpion" @@ -71513,6 +70119,18 @@ msgid "" msgstr "" "一套自制的马铠,包含保护马颈的鸡颈、保护马胸的当胸和保护马臀的搭后,上面的恶魔甲壳片和薄薄的网状织物贴合在一起。你可以将这套马铠穿在一匹友好的马身上。" +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "喵力装甲" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "一套光滑又轻便的凯夫拉猫具,带有保护头盔和胸板。背面有个非常小、用起来很不方便的魔术贴口袋。" + #: lang/json/SPECIES_from_json.py msgid "a mammal" msgstr "哺乳动物" @@ -71609,6 +70227,10 @@ msgstr "异形" msgid "a human" msgstr "人类" +#: lang/json/SPECIES_from_json.py +msgid "an intelligent animal created by man before the Cataclysm" +msgstr "基因擢升人" + #: lang/json/SPECIES_from_json.py msgid "an alien" msgstr "外星人" @@ -72244,6 +70866,15 @@ msgstr "全息闪光爆" msgid "Holographic Transposition" msgstr "全息换位术" +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "颅脑爆炸" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." +msgstr "这个虚拟法术用于引爆颅脑内的炸弹。极度致命。" + #: lang/json/SPELL_from_json.py msgid "psi stun" msgstr "灵能击晕" @@ -73334,6 +71965,56 @@ msgid "" "have this spell you probably debugged it in." msgstr "这是法力虹吸系列突变的法术部分。如果你学会了这个法术,说明你用了调试功能。" +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "砰砰术" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "你用手指指着施法目标,嘴里发出“砰砰”声。" + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "地板变岩浆" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "最好赶紧找一把椅子或柜台爬上去,因为地板变成岩浆了!" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "运动训练蒙太奇" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "当做一件事需要很长时间,而你又想快速完成时,你需要一个蒙太奇。" + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "亲亲伤口术" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "一个温柔的吻,让痛苦消失,就像妈妈曾经做的那样。" + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "召唤木乃伊" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "从你灵魂中的扫帚柜里召唤出一个脆弱的纸巾生物。" + #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" msgid_plural "reactor core expansion devices" @@ -73956,6 +72637,53 @@ msgid "" msgstr "" "这是一个自制的强化头灯,使用原子能衰变放出的能量照明,光线经过聚焦以达到能用的亮度。头灯上的带子可以调整,让你可以把它穿在头上或者系在头盔上。激活它来打开灯罩。" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "拆弹防护头盔" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "开启头灯" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "“头灯已开启。”" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "“头灯已关闭,电源不足。”" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" +"一种装甲电子防护头盔,包含一个摄像机、一个双向无线电和一个头灯,所有设备都有语音激活系统作为备份。它们被设计得能够防护超压、破片、冲击和高温。" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "拆弹防护头盔(开)" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD +#. helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "关闭头灯" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets +#. (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "“头灯已关闭。”" + #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" msgid_plural "RM13 combat armors" @@ -75215,6 +73943,33 @@ msgid "Foodperson mask (on)" msgid_plural "Foodperson masks (on)" msgstr[0] "美食家面具(开)" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "拆弹防护夹克" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "用凯夫拉和芳纶纤维制成的用于处理爆炸物的厚实防护夹克。它们被设计得能够防护超压、破片、冲击和高温。" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "轻型拆弹防护夹克" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "用凯夫拉和芳纶纤维制成的用于处理爆炸物的防护夹克。它们被设计得能够防护超压、破片、冲击和高温。比普通的拆弹防护夹克要更轻便。" + #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" @@ -75367,9 +74122,9 @@ msgstr[0] "C.R.I.T 标准 G.E.A.R" #. ~ Description for CRIT S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into " -"your spinal cord, this device improves your overall physique and provides " -"basic information on your surroundings." +"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" +" spinal cord, this device improves your overall physique and provides basic " +"information on your surroundings." msgstr "C.R.I.T 标准生物工程辅助平台(G.E.A.R),通过线缆链接你的骨髓,可以改善你的整体体质,并提供你周围环境的基本信息。" #: lang/json/TOOL_ARMOR_from_json.py @@ -75380,8 +74135,8 @@ msgstr[0] "C.R.I.T 特战面具(关)" #. ~ Use action msg for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD booting up…" -msgstr "C.R.I.T HUD 启动……" +msgid "CRIT HUD booting up…" +msgstr "C.R.I.T HUD 已启动……" #. ~ Use action need_charges_msg for {'str': 'CRIT gasmask (off)', 'str_pl': #. 'CRIT gasmasks (off)'}. @@ -75393,11 +74148,11 @@ msgstr "电量低,无法安全启动。" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line " -"electronics and lined with Kevlar for extra protection in order to keep " -"one's head where it should be. Various filters and other high tech wizardry" -" allow for enhanced oxygen intake and safety even under bombardment. It has" -" an integrated HUD and the option to turn it on for more features." +"This is a heavily modified Spec Ops modified gasmask, fitted with top-of-" +"the-line electronics and lined with Kevlar for extra protection in order to " +"keep one's head where it should be. Various filters and other high tech " +"wizardry allow for enhanced oxygen intake and safety even under bombardment." +" It has an integrated HUD and the option to turn it on for more features." msgstr "" "C.R.I.T改进型特种部队防毒面具,配备各种顶级电子设备,内衬凯夫拉材料以提供额外的头部保护。各种过滤器和其他高科技的设备,即使在轰炸下也能提高氧气的摄入量和安全性。它有一个集成的HUD,可以选择打开它以获得更多功能。" @@ -75409,16 +74164,15 @@ msgstr[0] "C.R.I.T 特战面具(开)" #. ~ Use action msg for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD deactivating." +msgid "CRIT HUD deactivating." msgstr "C.R.I.T HUD 已关闭。" #. ~ Description for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " -"draining power for the HUD, low-level nightvision and other protective " -"elements." +"This a heavily modified gasmask. It is currently on and draining power for " +"the HUD, low-level nightvision and other protective elements." msgstr "C.R.I.T改进型特战防毒面具,它目前已经开启了抬头显示器(HUD)、低水平夜视仪和其他保护元件,电量在持续消耗中。" #: lang/json/TOOL_ARMOR_from_json.py @@ -75429,8 +74183,8 @@ msgstr[0] "C.R.I.T 强化背心(关)" #. ~ Use action msg for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T EM booting up…" -msgstr "C.R.I.T 强化背心启动……" +msgid "CRIT EM booting up…" +msgstr "C.R.I.T 强化背心已启动……" #. ~ Use action need_charges_msg for {'str': 'CRIT EM vest (off)', 'str_pl': #. 'CRIT EM vests (off)'}. @@ -75442,11 +74196,11 @@ msgstr "电量低,无法安全启动……" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments and reactive servos which protects its wearer and assists in " -"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec" -" Ops for its ease of use and manuverability. Turn it on for suit mode, " -"extra protection and movement." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments and" +" reactive servos which protects its wearer and assists in movement at the " +"cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its " +"ease of use and manuverability. Turn it on for suit mode, extra protection " +"and movement." msgstr "" "C.R.I.T " "特战部队增强型运动背心,采用高科技纤维制成,内置无功伺服系统,可以保护穿戴者并消耗能量协助运动。C.R.I.T常规操作人员通常会穿着它,以方便使用和操作。开启它至服装模式以获得额外的保护和移动。" @@ -75465,18 +74219,18 @@ msgstr "关闭护甲" #. ~ Use action msg for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T E.M powering off…" -msgstr "C.R.I.T 强化背心关闭……" +msgid "CRIT EM powering off…" +msgstr "C.R.I.T 强化背心已关闭。" #. ~ Description for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments, reactive servos and a generator which pumps a crystallized liquid" -" that protects its wearer from most heavy combat situations at the cost of " -"extreme power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is" -" currently in suit form and draining your UPS power at high rates." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments, " +"reactive servos and a generator which pumps a crystallized liquid that " +"protects its wearer from most heavy combat situations at the cost of extreme" +" power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " +"currently in suit form and draining your UPS power at high rates." msgstr "" "C.R.I.T " "特战部队增强型运动背心,采用高科技纤维制成,内置无功伺服系统,可以保护穿戴者并消耗能量协助运动。C.R.I.T常规操作人员通常会穿着它,以方便使用和操作。这件背心目前是开启状态,正超高功率消耗电量。" @@ -75497,8 +74251,8 @@ msgstr "你打开了%s。" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection." msgstr "C.R.I.T标准版头盔。保护头部,有一段绝缘钢网,用于颈部的保暖和防护。" #: lang/json/TOOL_ARMOR_from_json.py @@ -75517,10 +74271,9 @@ msgstr "你关掉了%s。" #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection. A tactically dim " -"flashlight is attached to the side. This light is currently on and drawing " -"power." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection. A tactically dim flashlight is " +"attached to the side. This light is currently on and drawing power." msgstr "C.R.I.T标准版头盔。保护头部,有一段绝缘钢网,用于颈部的保暖和防护。战术手电筒已经开启,正在消耗着电量并散发出昏暗的光芒。" #: lang/json/TOOL_ARMOR_from_json.py @@ -76650,18 +75403,15 @@ msgstr "点亮" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." -msgstr "你点亮了万圣节南瓜的蜡烛。" +msgid "You flip the switch in the jack o'lantern." +msgstr "你打开了万圣节南瓜的开关。" #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." -msgstr "" -"这是一个塑料灯笼,涂成了带鬼脸的南瓜的形状。它的内部有一只蜡烛,烧完之后也可以更换。它无法提供多少亮光,但是能够烧很久。你可以用打火机或者火柴点亮它。" +"face. It has a tiny LED light in it. It doesn't provide very much light." +msgstr "这是一个塑料灯笼,涂成了带鬼脸的南瓜的形状。它的内部有一只LED灯。它无法提供多少亮光。" #: lang/json/TOOL_from_json.py msgid "spooky jack o'lantern" @@ -76671,17 +75421,17 @@ msgstr[0] "诡异万圣节南瓜" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." -msgstr "灯笼内的蜡烛熄灭了。" +msgid "The LED winks out inside the lantern." +msgstr "灯笼内的LED灯熄灭了。" #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"} #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is lit." +"very much light, but it can run for quite a long time. This lantern is lit." " The face shifts." -msgstr "这个带鬼脸的塑料南瓜里面有一大根蜡烛。它无法提供多少亮光,但是能够烧很久。它的蜡烛已经点燃,上面的鬼脸随着蜡烛的火焰晃动。" +msgstr "这个带鬼脸的塑料南瓜里面有个LED灯。它无法提供多少亮光,但是能够亮很久。它的开关已经打开,上面的鬼脸随着LED灯晃动。" #: lang/json/TOOL_from_json.py msgid "yule wreath" @@ -77289,6 +76039,34 @@ msgid "" "been lit, so why are you still holding it?" msgstr "这是根装着RDX和沙子的钢管。前者推动后者,形成致命的恶毒弹片云雾。导火索已经着了,所以说,你怎么还拿着它啊?" +#: lang/json/TOOL_from_json.py +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "遥控主机" + +#. ~ Description for {'str': 'control laptop'} +#: lang/json/TOOL_from_json.py +msgid "" +"A modified laptop, now capable of transmitting in the ultra-high frequencies" +" utilized by robots. Activate it to command robots from afar." +msgstr "一台改造的笔记本,现在可以发送超高频信号来与机器人进行通讯。激活它来遥控机器人。" + +#: lang/json/TOOL_from_json.py +msgid "inactive laser turret" +msgid_plural "inactive laser turrets" +msgstr[0] "激光炮塔(关)" + +#. ~ Description for {'str': 'inactive laser turret'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive laser turret. Using this item involves turning it on " +"and placing it on the ground, where it will attach itself. If reprogrammed " +"and rewired successfully the turret will identify you as a friendly, and " +"attack all enemies with its revolving laser cannons. It requires sunlight " +"in order to fire." +msgstr "" +"一座未激活的激光炮塔。使用它以将它开启并放在地面上。此炮塔保证在用它那威力无比的转轮激光炮扫射丧尸时不会误伤自己。它需要日光照射以获取开火所需的能源。电子学和计算机学等级决定了你将其重新编程的成功几率。" + #: lang/json/TOOL_from_json.py msgid "folded poncho" msgid_plural "folded ponchos" @@ -77444,22 +76222,6 @@ msgid "" msgstr "" "一台未激活的榴弹无人机。榴弹无人机是一台可以飞在空中的拳头大小机器人。这台机的内部装载了一只榴弹,会飞向敌人并激活榴弹摧毁敌人。使用它以激活。电子学和计算机学等级决定了你将其重新编程的成功几率。" -#: lang/json/TOOL_from_json.py -msgid "inactive laser turret" -msgid_plural "inactive laser turrets" -msgstr[0] "激光炮塔(关)" - -#. ~ Description for {'str': 'inactive laser turret'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive laser turret. Using this item involves turning it on " -"and placing it on the ground, where it will attach itself. If reprogrammed " -"and rewired successfully the turret will identify you as a friendly, and " -"attack all enemies with its revolving laser cannons. It requires sunlight " -"in order to fire." -msgstr "" -"一座未激活的激光炮塔。使用它以将它开启并放在地面上。此炮塔保证在用它那威力无比的转轮激光炮扫射丧尸时不会误伤自己。它需要日光照射以获取开火所需的能源。电子学和计算机学等级决定了你将其重新编程的成功几率。" - #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" @@ -77495,7 +76257,6 @@ msgid "You misprogram the manhack; it's hostile!" msgstr "你没设好飞锯无人机的程序,它变成敌对的了!" #. ~ Description for {'str': 'inactive manhack'} -#. ~ Description for inactive hack #: lang/json/TOOL_from_json.py msgid "" "This is an inactive manhack. Manhacks are fist-sized robots that fly " @@ -78024,6 +76785,25 @@ msgid "" msgstr "" "一个未激活的诺斯罗普派遣者,军用型号。它通过装配和部署飞锯无人机进行攻击。激活它以将其放置在地上;但是,由于在未激活期间触发了单向开关,它将不具有攻击性,并且只能起到分散敌人注意力的作用。" +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "扩音器(关)" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "扩音器打开了,开始不停的发出响亮的消息。" + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing" +" it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "一台未激活的自动扩音器。使用该物品以将它放置在地上并打开它,如果重新编程和布线成功,它将会不停发出提前录制的声音。" + #: lang/json/TOOL_from_json.py msgid "clothes hanger" msgid_plural "clothes hangers" @@ -78519,9 +77299,9 @@ msgstr[0] "骨片刀" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end" -" and sharpened into a cutting tool. Its jagged edge is wicked but fragile." -msgstr "一根至少30厘米长的股骨或是其他类似的骨头,一端被折断并被磨尖成切割工具。其锯齿状的边缘看上去很邪恶,但其实很脆弱。" +"A femur or other bone, about 20 cm long, which has been broken at one end " +"and sharpened into a cutting tool. Its jagged edge is wicked but fragile." +msgstr "一根至少20厘米长的股骨或是其他类似的骨头,一端被折断并被磨尖成切割工具。其锯齿状的边缘看上去很邪恶,但其实很脆弱。" #: lang/json/TOOL_from_json.py msgid "baselard" @@ -79094,6 +77874,30 @@ msgid "" "but bad for the environment; at least you're recycling it." msgstr "一小束掺入了可拉伸的氨纶纤维的合成纤维。可以用来制造具有弹性而坚韧的衣物。时尚,但不环保;但至少现在你会回收它了。" +#: lang/json/TOOL_from_json.py +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" +msgstr[0] "多层凯夫拉片" + +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "16层凯夫拉纤维片。可以用来修复由凯夫拉制造的物品。" + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "硬凯夫拉片" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "用环氧树脂或其他粘合剂处理且压实的凯夫拉纤维片。可以用来修复由凯夫拉制造的物品。" + #: lang/json/TOOL_from_json.py msgid "butchering kit" msgid_plural "butchering kits" @@ -79472,13 +78276,11 @@ msgid "fire barrel (200L)" msgid_plural "fire barrels (200L)" msgstr[0] "火桶(200L)" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels #. (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels #. (100L)'} -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +#: lang/json/TOOL_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -79722,18 +78524,6 @@ msgstr[0] "手机(手电筒)" msgid "You stop lighting up the screen." msgstr "你关闭了手机手电筒。" -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "遥控主机" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies" -" utilized by robots. Activate it to command robots from afar." -msgstr "一台改造的笔记本,现在可以发送超高频信号来与机器人进行通讯。激活它来遥控机器人。" - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" @@ -79779,7 +78569,6 @@ msgid_plural "electrohacks" msgstr[0] "电子黑客仪" #. ~ Description for {'str': 'electrohack'} -#. ~ Description for electrohack #: lang/json/TOOL_from_json.py msgid "" "This device has many ports attached, allowing it to connect to almost any " @@ -79924,11 +78713,13 @@ msgstr[0] "智能手机" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "你启动了手电筒应用。" #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "智能手机没电了。" @@ -80075,8 +78866,8 @@ msgstr[0] "撬锁工具" msgid "" "This is a locksmith's set of sturdy steel lock picks and torsion wrenches. " "It is essential for silently and quickly opening locks, provided you have " -"some mechanical skill." -msgstr "锁匠用的开锁工具,想安静而迅速地开门就把它带上吧,前提是你的机械技能已经点上了。" +"some lock picking and mechanical skills." +msgstr "锁匠用的开锁工具,想安静而迅速地开门就把它带上吧,前提是你的撬锁和机械技能已经点上了。" #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -80513,7 +79304,6 @@ msgid_plural "active EMP grenades" msgstr[0] "EMP手雷(无保险)" #. ~ Description for {'str': 'active EMP grenade'} -#. ~ Description for active EMP grenade #: lang/json/TOOL_from_json.py msgid "" "This EMP grenade is active, and will shortly detonate, creating a large EMP " @@ -82554,18 +81344,6 @@ msgstr[0] "汽车喇叭" msgid "This is a car horn meant to be attached to a car's electrical system." msgstr "汽车喇叭要连接到汽车的电气系统。" -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "凯夫拉片" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made" -" of Kevlar." -msgstr "强化凯夫拉片。可以用来修复由凯夫拉制造的物品。" - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" @@ -82660,7 +81438,8 @@ msgid "" "between a typical marker and a can of spray paint in size. Use it to write " "something down. However, writing \"Elbereth\" probably won't help you." msgstr "" -"特大号商标的工业级强度记号笔,大小介于一般的记号笔和喷涂罐之间。可以用它来写东西。但是写下\"Elbereth\"不会有什么用。(注:Elbereth是NetHack中驱赶怪物的咒语)" +"\"King " +"Size\"牌的工业级强度记号笔,大小介于一般的记号笔和喷涂罐之间。可以用它来写东西。但是写下\"Elbereth\"可能不会有什么用。(注:Elbereth是NetHack中驱赶怪物的咒语)" #: lang/json/TOOL_from_json.py msgid "zombie pheromone" @@ -82863,6 +81642,18 @@ msgid "" "around it." msgstr "一块遍布漩涡刻痕的石头,四周遍布着孔洞。虽然看上去不小,但几乎没有重量,似乎有气流聚集在这块石头的周围。" +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "沙坑玩具套装" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "一个装着小铲子和耙子的塑料桶,非常适合建造沙堡!" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" @@ -85827,11 +84618,10 @@ msgstr[0] "C.R.I.T 军用匕首" #. knives'} #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked" -" pry bar at the bottom for opening simple things and bashing in heads. " -"Matte black finish helps it avoid flash in dim-light situations and tanto " -"tip allows for light-armor penetration. Blade length allows for decent " -"reach." +"A modified trench knife. Has a knuckleduster guard and a small, hooked pry " +"bar at the bottom. The matte black finish helps it avoid flash in dim-light " +"situations and tanto tip allows for light-armor penetration. Blade length " +"allows for decent reach." msgstr "" "C.R.I.T标准版军用匕首,拥有一个钢制护手保护手指关节。底部配有小型撬棍可以帮助你撬开简单的物品。哑光的黑色涂层可以避免反光引起敌人的发现。匕首采用高强度合金锻造而成,可以很轻松的穿透轻型装甲。" @@ -85856,9 +84646,9 @@ msgstr[0] "C.R.I.T 共振刀锋" #. ~ Description for CRIT Reso-blade #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " -"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " -"thrums from within." +"CRIT melee weapon. Alien runes adorn the carbon steel blade. The blade " +"oddly seems to lack sharpness, and yet upon closer oberservation, a hum of " +"energy thrums from within." msgstr "C.R.I.T近战武器。陌生的符文装饰着巨大的碳素钢刀刃。奇怪的是,刀片毫不锋利,但在近距离观察时,能听见从内部发出能量振动的嗡嗡作响。" #: lang/json/TOOL_from_json.py @@ -86824,1001 +85614,6 @@ msgid "" "magical metals into their workable ingot form." msgstr "一个便携式版本的火炭锻造台,它使用了恶魔蜘蛛甲壳进行附魔和强化,以便能够将魔法金属熔化成能够制造物品的锭。" -#: lang/json/TOOL_from_json.py -msgid "Dusk" -msgid_plural "Dusks" -msgstr[0] "暗暮之剑" - -#. ~ Description for Dusk -#: lang/json/TOOL_from_json.py -msgid "" -"A longsword, made out of a very dark, almost black metal. It seems to hold " -"a greater edge than usual steel blades and feels …more comfortable in the " -"hand. While the blade is made out of this dark metal, the crossguard and " -"the pommel seem to be made out of a brighter material, which feels " -"abnormally cool to the touch." -msgstr "" -"一把长剑,由某种很暗几乎全黑的金属制成。似乎比普通钢刀有更大的锋利的边缘,手感……也更舒适。虽然刀刃是用黑暗金属制成的,护手和剑柄由更明亮的材料制成,其手感异常凉爽。" - -#. ~ Description for disarmed defense turret -#: lang/json/TOOL_from_json.py -msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "一个自动防御炮塔。这个炮塔没有安装任何内置武器。" - -#. ~ Description for disarmed military turret -#: lang/json/TOOL_from_json.py -msgid "An automated military turret. It lacks an integrated weapon." -msgstr "一个自动军用炮塔。这个炮塔没有安装任何内置武器。" - -#. ~ Description for disarmed advanced turret -#: lang/json/TOOL_from_json.py -msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "一个自动高级炮塔。这个炮塔没有安装任何内置武器。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 9mm defense turret" -msgid_plural "inactive 9mm defense turrets" -msgstr[0] "9mm口径防御炮塔(关)" - -#. ~ Description for inactive 9mm defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 9mm defense turret. Up to 100 standard 9mm rounds will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"一座未激活的9mm口径防御炮塔。激活时,最多100发标准9mm子弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive shotgun defense turret" -msgid_plural "inactive shotgun defense turrets" -msgstr[0] "霰弹防御炮塔(关)" - -#. ~ Description for inactive shotgun defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive shotgun defense turret. Up to 100 standard 12ga shells will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" -"一座未激活的霰弹防御炮塔。激活时,最多100发标准12号口径霰弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riotcontrol turret. Up to 50 standard 40mm less-than-lethal " -"beanbag canisters will be automatically loaded from your inventory into the " -"turret upon activation. Place the turret and it will ID you as friendly " -"with its advanced IFF software. Consult your safety manual in the event of " -"a malfunction." -msgstr "" -"一座未激活的防暴炮塔。激活时,最多50发标准40mm非致命沙包榴弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riot control turret. Up to 50 standard 40mm teargas canisters " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"一座未激活的防暴炮塔。激活时,最多50发标准40mm催泪瓦斯弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 5.56mm military turret" -msgid_plural "inactive 5.56mm military turrets" -msgstr[0] "5.56mm口径军用炮塔(关)" - -#. ~ Description for inactive 5.56mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 5.56mm military turret. Up to 100 standard 5.56mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"一座未激活的5.56mm军用炮塔。激活时,最多100发标准5.56mm " -"NATO子弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 7.62mm military turret" -msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "7.62mm口径军用炮塔(关)" - -#. ~ Description for inactive 7.62mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 7.62mm military turret. Up to 100 standard 7.62mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"一座未激活的7.62mm军用炮塔。激活时,最多100发标准7.62mm " -"NATO子弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 50 caliber military turret" -msgid_plural "inactive 50 caliber military turrets" -msgstr[0] ".50口径军用炮塔(关)" - -#. ~ Description for inactive 50 caliber military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 50 caliber military turret. Up to 100 standard 50 caliber bmg " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"一座未激活的.50口径军用炮塔。激活时,最多100发标准.50口径勃朗宁机枪子弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military needle turret" -msgid_plural "inactive military needle turrets" -msgstr[0] "5x50mm口径军用炮塔(关)" - -#. ~ Description for inactive military needle turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced needle turret. Up to 100 standard 5x50mm flechette " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"一座未激活的先进镖形弹炮塔。激活时,最多100发标准5x50mm镖形弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military 8x40mm turret" -msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "8x40mm口径军用炮塔(关)" - -#. ~ Description for inactive military 8x40mm turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced 8x40mm turret. Up to 100 standard 8x40mm caseless " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"一座未激活的先进8x40mm炮塔。激活时,最多100发标准8x40mm无壳弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military 40mm grenade turret" -msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "40mm军用榴弹炮塔(关)" - -#. ~ Description for inactive military 40mm grenade turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive military grenade turret. Up to 50 standard 40mm fragmentation " -"grenades will be automatically loaded from your inventory into the turret " -"upon activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"一座未激活的军用榴弹炮塔。激活时,最多50发标准40mm破片榴弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military flamethrower turret" -msgid_plural "inactive military flamethrower turrets" -msgstr[0] "军用喷火炮塔(关)" - -#. ~ Description for inactive military flamethrower turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive flame turret. Up to 100 units of napalm will be automatically " -"loaded from your inventory into the turret upon activation. Place the " -"turret and it will ID you as friendly with its advanced IFF software. " -"Consult your safety manual in the event of a malfunction." -msgstr "" -"一座未激活的喷火炮塔。激活时,最多100单位的凝固汽油会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced laser turret" -msgid_plural "inactive advanced laser turrets" -msgstr[0] "先进激光炮塔(关)" - -#. ~ Description for inactive advanced laser turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced laser turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "一座未激活的先进激光炮塔。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced plasma turret" -msgid_plural "inactive advanced plasma turrets" -msgstr[0] "先进等离子炮塔(关)" - -#. ~ Description for inactive advanced plasma turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced plasma turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "一座未激活的先进等离子炮塔。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced railgun turret" -msgid_plural "inactive advanced railgun turrets" -msgstr[0] "先进轨道炮炮塔(关)" - -#. ~ Description for inactive advanced railgun turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced railgun turret. Up to 50 standard rail projectiles " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" -"一座未激活的先进轨道炮炮塔。激活时,最多50发标准轨道弹会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced acid turret" -msgid_plural "inactive advanced acid turrets" -msgstr[0] "先进喷酸炮塔(关)" - -#. ~ Description for inactive advanced acid turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced acid turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "一座未激活的先进喷酸炮塔。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced EMP turret" -msgid_plural "inactive advanced EMP turrets" -msgstr[0] "先进EMP炮塔(关)" - -#. ~ Description for inactive advanced EMP turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced EMP turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "一座未激活的先进EMP炮塔。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced electro turret" -msgid_plural "inactive advanced electro turrets" -msgstr[0] "先进放电炮塔(关)" - -#. ~ Description for inactive advanced electro turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced electro turret. Place the turret and it will ID you as" -" friendly with its advanced IFF software. Consult your safety manual in the" -" event of a malfunction." -msgstr "一座未激活的先进放电炮塔。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。如果发生故障,请查阅安全手册。" - -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "garden gnome" -msgid_plural "garden gnomes" -msgstr[0] "园艺机器人" - -#. ~ Description for garden gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. You can place him in your " -"garden or elsewhere." -msgstr "一个园艺机器人,安静而且毫无威胁。你可以把它放在花园或其他地方。" - -#: lang/json/TOOL_from_json.py -msgid "gaurdin gnome" -msgid_plural "gaurdin gnomes" -msgstr[0] "武装园艺机器人" - -#. ~ Description for gaurdin gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. He holds up to 100 rounds of" -" 9mm ammo." -msgstr "一个园艺机器人,安静而且毫无威胁。它可以携带最多100发 9mm 子弹。" - -#: lang/json/TOOL_from_json.py -msgid "small batch of curdling milk" -msgid_plural "small batches of curdling milk" -msgstr[0] "小包凝结中的酪乳" - -#. ~ Use action msg for {'str': 'small batch of curdling milk', 'str_pl': -#. 'small batches of curdling milk'}. -#. ~ Use action msg for {'str': 'batch of curdling milk', 'str_pl': 'batches -#. of curdling milk'}. -#. ~ Use action msg for {'str': 'large batch of curdling milk', 'str_pl': -#. 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "" -"The milk appears to have finished curdling, and is ready for further " -"processing. Checking on it has exposed the mixture to the atmosphere." -msgstr "牛奶似乎已经凝结完毕,可以进一步处理。检查它暴露在空气中的混合物。" - -#. ~ Use action not_ready_msg for {'str': 'small batch of curdling milk', -#. 'str_pl': 'small batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'batch of curdling milk', 'str_pl': -#. 'batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'large batch of curdling milk', -#. 'str_pl': 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "The milk is still curdling." -msgstr "牛奶仍在凝结中。" - -#. ~ Description for {'str': 'small batch of curdling milk', 'str_pl': 'small -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed small waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "一小包用动物胃囊密封的凝结牛奶。牛奶、醋酸和胃囊内的微生物一同发酵,产生凝乳酶使蛋白结块,正在向粗制奶酪转变中。" - -#: lang/json/TOOL_from_json.py -msgid "batch of curdling milk" -msgid_plural "batches of curdling milk" -msgstr[0] "中包凝结中的酪乳" - -#. ~ Description for {'str': 'batch of curdling milk', 'str_pl': 'batches of -#. curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed waterskin filled with milk that is undergoing the process to become" -" a crude form of cheese, having had vinegar and natural rennet added." -msgstr "一包用动物胃囊密封的凝结牛奶。牛奶、醋酸和胃囊内的微生物一同发酵,产生凝乳酶使蛋白结块,正在向粗制奶酪转变中。" - -#: lang/json/TOOL_from_json.py -msgid "large batch of curdling milk" -msgid_plural "large batches of curdling milk" -msgstr[0] "大包凝结中的酪乳" - -#. ~ Description for {'str': 'large batch of curdling milk', 'str_pl': 'large -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed large waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "一大包用动物胃囊密封的凝结牛奶。牛奶、醋酸和胃囊内的微生物一同发酵,产生凝乳酶使蛋白结块,正在向粗制奶酪转变中。" - -#: lang/json/TOOL_from_json.py -msgid "heavy snare kit" -msgid_plural "heavy snare kits" -msgstr[0] "大型捕猎陷阱" - -#. ~ Use action done_message for heavy snare kit. -#. ~ Use action done_message for light snare kit. -#: lang/json/TOOL_from_json.py -msgid "You set the snare trap." -msgstr "你设置了捕猎陷阱。" - -#. ~ Description for heavy snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a rope noose and a snare " -"trigger. It requires a tree nearby. It is effective at trapping monsters." -msgstr "这是由粗绳与有活结的套索组成的一个简单的陷阱,需要附近有一棵树,猎物掉到其中就会被网住。" - -#: lang/json/TOOL_from_json.py -msgid "light snare kit" -msgid_plural "light snare kits" -msgstr[0] "小型捕猎陷阱" - -#. ~ Description for light snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a string noose and a snare " -"trigger. It requires a young tree nearby. It is effective at trapping and " -"killing some small animals." -msgstr "这是由细绳与有活结的套索组成的一个简单的陷阱。需要附近有颗小树,用来诱捕可怜且美味的小动物。" - -#: lang/json/TOOL_from_json.py -msgid "snare trigger" -msgid_plural "snare triggers" -msgstr[0] "陷阱触发器" - -#. ~ Description for snare trigger -#: lang/json/TOOL_from_json.py -msgid "" -"This is a stick that has been cut into a trigger mechanism for a snare trap." -msgstr "一只木棍被削成木制的机关,用于制造捕猎陷阱。" - -#. ~ Description for Laevateinn -#: lang/json/TOOL_from_json.py -msgid "" -"A replica of Laevateinn, the sword of Freyr. It is rumored to be able to " -"fight by itself. It is decorated with gold and silver ornaments." -msgstr "" -"一柄北欧神话丰饶之神弗雷与巨人苏尔特所使用的魔剑,又名烈焰之剑、胜利之剑、炎之魔剑。传说中欺骗之神(亦是火神)洛基使用的魔杖,所以又名灾厄之杖,在《洛基的吵骂》中,洛基责骂弗雷因美色丢失了此武器,据说是由洛基从冥界海拉城门上拔出来的。传说中这把剑永远燃烧着火痛名它的光芒如同太阳程耀眼,于请神的黄昏战结束时苏尔特持此剑焚毁了整个世界,后下落不明。这把复制品上被金银点缀。" - -#: lang/json/TOOL_from_json.py -msgid "inactive craftbuddy" -msgid_plural "inactive craftbuddies" -msgstr[0] "制造小帮手(关)" - -#. ~ Description for {'str': 'inactive craftbuddy', 'str_pl': 'inactive -#. craftbuddies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A robot crafting assistant. Useable in its current state as a portable " -"workbench, or deployable as a traveling companion." -msgstr "一台机械制造小帮手。在现在这个状态能够当作可移动的工作台使用,激活它将其变为一个能够随你旅行的同伴。" - -#. ~ Description for light auto armor -#. ~ Description for basic auto armor -#. ~ Description for heavy auto armor -#: lang/json/TOOL_from_json.py -msgid "" -"A set of light power armor fitted with an AI core for automated use. " -"Activate it to deploy the robot or disassemble it to use as armor." -msgstr "一套安装了人工智能核心,能够自主行动的动力装甲。你可以激活它作为机器人使用,也可以拆卸它作为装甲使用。" - -#: lang/json/TOOL_from_json.py -msgid "basic auto armor" -msgid_plural "basic auto armors" -msgstr[0] "自动化基础动力装甲" - -#: lang/json/TOOL_from_json.py -msgid "inactive hack" -msgid_plural "inactive hacks" -msgstr[0] "无人机(关)" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating lantern" -msgid_plural "inactive floating lanterns" -msgstr[0] "浮灯无人机(关)" - -#. ~ Use action friendly_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "这台浮灯无人机从你手上飞起,照亮了这个区域!" - -#. ~ Use action hostile_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the lantern." -msgstr "你没设好这台浮灯无人机的程序。" - -#. ~ Description for inactive floating lantern -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive floating lantern, a fist-sized robots that flies through the air" -" and illuminates its surroundings with bright LEDs. The lantern is non " -"aggressive and has no means of attack. Activate this item to deploy the " -"salvaged robot." -msgstr "" -"一台未激活的浮灯无人机。这台无人机有拳头大小,能在空中飞行并使用明亮的LED照亮周围。浮灯无人机没有武器,而且不会攻击敌人。激活以部署该无人机。" - -#: lang/json/TOOL_from_json.py -msgid "inactive distract-o-hack" -msgid_plural "inactive distract-o-hacks" -msgstr[0] "吵吵无人机(关)" - -#. ~ Use action friendly_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "吵吵无人机从你手上飞起,发出吵闹的噪音!" - -#. ~ Use action hostile_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the distract-o-hack!" -msgstr "你没设好这台吵吵无人机的程序。" - -#. ~ Description for inactive distract-o-hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive distract-o-hack, a fist-sized robot that flies through the air " -"emitting noise, smoke, and sparks. The salvaged robot has no weapons, but " -"will harass hostile targets to draw their attention. Activate this item to " -"deploy the robot. It cannot be recovered once activated." -msgstr "" -"一台未激活的吵吵无人机,有拳头大小,激活后在空中飞行,发出噪音、烟雾和火花。这个无人机没有携带武器,但会骚扰敌方目标以引起他们的注意。激活以部署该无人机,但是一旦激活将无法回收。" - -#: lang/json/TOOL_from_json.py -msgid "inactive arson hack" -msgid_plural "inactive arson hacks" -msgstr[0] "放火无人机(关)" - -#. ~ Use action friendly_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "The arson hack flies from your hand! Get clear!" -msgstr "放火无人机从你手上飞起,快离开它远点!" - -#. ~ Use action hostile_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the arson hack! Run!" -msgstr "你错误设置了这台放火无人机的程序!快跑!" - -#. ~ Description for inactive arson hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive arson hack, a fist-sized robot that flies through the air " -"chaotically spreading deadly fires. The salvaged robot has no weapons, but " -"will emit intermittent bursts of flame as it moves toward hostile targets. " -"Activate this item to deploy the robot. It cannot be recovered once " -"activated." -msgstr "" -"一台未激活的放火无人机,有拳头大小,在空中四处乱飞并散播致命火焰。这个无人机没有内置武器,但在接近敌对目标时会不时喷射出火焰。激活以部署该无人机,但是一旦激活将无法回收。" - -#: lang/json/TOOL_from_json.py -msgid "inactive spore hack" -msgid_plural "inactive spore hacks" -msgstr[0] "孢子无人机(关)" - -#. ~ Use action friendly_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "The spore hack flies from your hand!" -msgstr "孢子无人机从你手上飞起!" - -#. ~ Use action hostile_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the spore hack!" -msgstr "你没设好这台孢子无人机的程序。" - -#. ~ Description for inactive spore hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive spore hack, a fist-sized robot that flies through the air " -"spreading alien contaminants. The robot will dust hostile targets, and " -"intermittently cover the terrain with puffs of fungal spores. Activate this" -" item to deploy the robot." -msgstr "" -"一台未激活的孢子无人机,有拳头大小,能够在空中飞行并散播来自异界的孢子感染。这台无人机会用孢子沾染敌对目标,并不时喷出真菌孢子覆盖地表。激活以部署该无人机。" - -#: lang/json/TOOL_from_json.py -msgid "inactive water turret" -msgid_plural "inactive water turrets" -msgstr[0] "水炮炮塔(关)" - -#. ~ Description for inactive water turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive watercannon defense turret. Up to 1000 units of water will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. There is no safety manual." -msgstr "" -"一座未激活的水炮防御炮塔。激活时,最多1000单位的水会被自动装填至该炮塔中。放置该炮塔后,它的先进敌我识别软件会将你识别为友军。这家伙可没有安全手册。" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating heater" -msgid_plural "inactive floating heaters" -msgstr[0] "浮空加热器(关)" - -#. ~ Description for inactive floating heater -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space. It is non-aggressive " -"and has no weapons systems. Activate this item to deploy the robot." -msgstr "一台改装的眼球无人机,被用作悬浮的加热器。这台机器人用一束持续的暖流对封闭空间进行加热。它没有武器,也不会攻击敌人。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating furnace" -msgid_plural "inactive floating furnaces" -msgstr[0] "悬浮炉(关)" - -#. ~ Description for inactive floating furnace -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. It is non-" -"aggressive and has no weapons systems. Activate this item to deploy the " -"robot." -msgstr "" -"一台改装的眼球无人机,被用作悬浮的加热器。这台机器人持续地用一束危险的热流对封闭空间进行加热。它没有武器,也不会攻击敌人。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive burning eye" -msgid_plural "inactive burning eyes" -msgstr[0] "机械燃烧之眼(关)" - -#. ~ Description for inactive burning eye -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon which it will use on hostile " -"targets. Activate this item to deploy the robot." -msgstr "一台改装的眼球无人机,装上了一把激光武器用于攻击敌对目标。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive utilibot" -msgid_plural "inactive utilibots" -msgstr[0] "通用机器人(关)" - -#: lang/json/TOOL_from_json.py -msgid "inactive blob breeder" -msgid_plural "inactive blob breeders" -msgstr[0] "变形怪培育机(关)" - -#. ~ Description for inactive blob breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It is non aggressive and has no weapon systems. You can activate " -"this item to deploy the robot and begin the incubation process, but you " -"probably shouldn't." -msgstr "" -"一台改装的通用机器人,被用作异界变形怪的移动孵化器。它没有武器系统,也不会攻击敌人。你可以激活以部署该机器人并开始孵化程序,但也许你不该这么做。" - -#: lang/json/TOOL_from_json.py -msgid "inactive slime breeder" -msgid_plural "inactive slime breeders" -msgstr[0] "变形怪培育器(关)" - -#. ~ Description for inactive slime breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob, and upgraded to only produce friendly slimes. It is non aggressive " -"and has no weapon systems. You can activate this item to deploy the robot " -"and begin the incubation process." -msgstr "" -"一台改装的通用机器人,被用作异界变形怪的升级版移动孵化器,只会产生友好的变形怪。它没有武器系统,也不会攻击敌人。你可以激活以部署该机器人并开始孵化程序。" - -#: lang/json/TOOL_from_json.py -msgid "inactive digestron" -msgid_plural "inactive digestrons" -msgstr[0] "消化机器人(关)" - -#. ~ Description for inactive digestron -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. It is non aggressive and has no weapon systems. Activate " -"this item to deploy the robot." -msgstr "" -"一台改装的通用机器人,用来当作一台全自动真空吸尘器。它会把地上四散的物品吸入,然后用内部储存的酸液溶解它们。它没有武器,也不会攻击敌人。激活它来部署机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive bee-bot" -msgid_plural "inactive bee-bots" -msgstr[0] "蜂巢机器人(关)" - -#. ~ Description for inactive bee-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers segments of fresh honey comb. It protects" -" the insect colony with a mechanical crossbow mounted to its chassis. " -"Activate this item, with wooden bolts in your inventory, to load and deploy " -"the robot." -msgstr "" -"一台改装的通用机器人,被用作移动蜂箱,每隔一段时间会产出一些新鲜的蜂巢。它使用一把安装在外壳上的机械弩保护体内的蜂群。当你物品栏中有木制弩矢时,你可以激活以装填并部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive medibot" -msgid_plural "inactive medibots" -msgstr[0] "医疗机器人(关)" - -#: lang/json/TOOL_from_json.py -msgid "inactive assassin robot" -msgid_plural "inactive assassin robots" -msgstr[0] "刺客机器人(关)" - -#. ~ Description for inactive assassin robot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. It will attack " -"hostile targets with a set of blades and a toxic needle. Activate this item" -" to deploy the robot." -msgstr "一台改装的医疗机器人,现在成了一台杀人机器。它使用一组刀片和一根毒针攻击敌对目标。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive elixirator" -msgid_plural "inactive elixirators" -msgstr[0] "灵药机器人(关)" - -#. ~ Description for inactive elixirator -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot with its internal pharma-fabricators repurposed to " -"produce mutagen. Activate this item to deploy the robot." -msgstr "" -"* 这台机器人目前无法正常工作,不要建造。\n" -"一台改装的医疗机器人,内部制药器经过重新编程能够产生诱变剂。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive party bot" -msgid_plural "inactive party bots" -msgstr[0] "派对机器人(关)" - -#. ~ Description for inactive party bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Activate this item to get the party " -"started." -msgstr "一台改装的医疗机器人,内部填满了大麻,机身上下覆盖满了闪闪发光的彩灯,而且经过重新编程会不断跳舞。启动它来开始派对!" - -#: lang/json/TOOL_from_json.py -msgid "inactive rat snatcher" -msgid_plural "inactive rat snatchers" -msgstr[0] "捕鼠机器人(关)" - -#. ~ Description for inactive rat snatcher -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It attacks targets" -" with pincers and an integrated tazer. Activate this item to deploy the " -"robot." -msgstr "一台改装的掠行机器人,用来捕猎小型猎物。它使用一对螯和一把内置的电击枪来攻击目标。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive grab-bot" -msgid_plural "inactive grab-bots" -msgstr[0] "擒拿机器人(关)" - -#. ~ Description for inactive grab-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. " -"Activate this item to deploy the robot." -msgstr "一台改装的掠行机器人,用于擒拿敌人使其无法移动。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive pest hunter" -msgid_plural "inactive pest hunters" -msgstr[0] "灭害机器人(关)" - -#. ~ Description for inactive pest hunter -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " -"this item, with ammo in your inventory, to load and deploy the robot." -msgstr "一台改装的掠行机器人,装上了一把内置8mm无壳弹枪械。当你物品栏中有弹药时,你可以激活以装填并部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive cyborg" -msgid_plural "inactive cyborgs" -msgstr[0] "改造人(关)" - -#: lang/json/TOOL_from_json.py -msgid "inactive necrotic cyborg" -msgid_plural "inactive necrotic cyborgs" -msgstr[0] "死灵改造人(关)" - -#. ~ Description for inactive necrotic cyborg -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Activate this " -"item to deploy the robot." -msgstr "一台改装的报废改造人,头部被替换成了死灵法尸的头颅。死而复生的头部保留了一些复活丧尸的能力。激活以部署该改造人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive defense robot" -msgid_plural "inactive defense robots" -msgstr[0] "防御机器人(关)" - -#: lang/json/TOOL_from_json.py -msgid "inactive junkyard cowboy" -msgid_plural "inactive junkyard cowboys" -msgstr[0] "机器废料牛仔(关)" - -#. ~ Description for inactive junkyard cowboy -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "一台改装的防御机器人,装上了霰弹枪和两把圆锯。当你的物品栏中有弹药时,你可以激活以装填并部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive shortcircuit samurai" -msgid_plural "inactive shortcircuit samurais" -msgstr[0] "机器短路武士(关)" - -#. ~ Description for inactive shortcircuit samurai -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with an integrated tazer and two " -"electrified blades. Activate this item to deploy the robot." -msgstr "一台改装的防御机器人,装上了一把内置电击枪和两把带电长刀。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive slapdash paladin" -msgid_plural "inactive slapdash paladins" -msgstr[0] "机器瞎搭圣骑(关)" - -#. ~ Description for inactive slapdash paladin -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. Activate this item, with gasoline in your inventory, to" -" load and deploy the robot… preferably far from anything flammable" -msgstr "" -"一台改装的防御机器人,装上了自制的火焰喷射器和两把烧红的刀刃。当你的物品栏中有汽油时,你可以激活以装填并部署该机器人……但是最好离可燃物远一点。" - -#: lang/json/TOOL_from_json.py -msgid "inactive military robot" -msgid_plural "inactive military robots" -msgstr[0] "军用机器人(关)" - -#. ~ Description for inactive military robot -#: lang/json/TOOL_from_json.py -msgid "" -"An unpowered military robot fitted with an integrated 7.62 firearm and " -"electric prod. Activate this item, with ammo in your inventory, to load and" -" deploy the robot." -msgstr "一台动力耗尽的军用机器人,装上了一把内置7.62mm口径步枪及一把电击枪。当你的物品栏中有弹药时,你可以激活以装填并部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-guardian" -msgid_plural "inactive robo-guardians" -msgstr[0] "守护者机器人(关)" - -#. ~ Description for inactive robo-guardian -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "一台改装的军用机器人,装上了一对内置9mm口径枪械。当你的物品栏中有弹药时,你可以激活以装填并部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive robote deluxe" -msgid_plural "inactive robote deluxes" -msgstr[0] "豪华机器人(关)" - -#. ~ Description for inactive robote deluxe -#: lang/json/TOOL_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style. Activate this item, with ammo in your inventory, to " -"load and deploy the robot." -msgstr "" -"一台镶钻贴金的机器人,装有一对内置9mm口径枪械。土豪用奢侈品,适合那些即便在末日生存中也追求时尚的人。当你的物品栏中有弹药时,你可以激活以装填并部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-protector" -msgid_plural "inactive robo-protectors" -msgstr[0] "保卫者机器人(关)" - -#. ~ Description for inactive robo-protector -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "一台改装的军用机器人,装上了一把内置5.56mm口径步枪。当你的物品栏中有弹药时,你可以激活以装填并部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-defender" -msgid_plural "inactive robo-defenders" -msgstr[0] "防卫者机器人(关)" - -#. ~ Description for inactive robo-defender -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Activate" -" this item, with ammo in your inventory, to load and deploy the robot." -msgstr "一台改装的军用机器人,装上了一把内置 .50 口径步枪。当你的物品栏中有弹药时,你可以激活以装填并部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced robot" -msgid_plural "inactive advanced robots" -msgstr[0] "先进机器人(关)" - -#: lang/json/TOOL_from_json.py -msgid "inactive glittering lady" -msgid_plural "inactive glittering ladies" -msgstr[0] "机器闪光女士(关)" - -#. ~ Description for {'str': 'inactive glittering lady', 'str_pl': 'inactive -#. glittering ladies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It attacks hostile targets with its two integral lasers and blinding " -"flashes. Activate this item to deploy the robot." -msgstr "一台改装的高级机器人,现在是一座耀眼的毁灭灯塔。它使用两只内置激光武器和致盲闪光攻击敌对目标。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive bitter spinster" -msgid_plural "inactive bitter spinsters" -msgstr[0] "机器辛辣阿姨(关)" - -#. ~ Description for inactive bitter spinster -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " -"to deploy the robot." -msgstr "一台改装的军用机器人,现在是一只能腐蚀血肉的怪兽。一个内置酸液生成器连接着一个远射喷头。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive chickenwalker" -msgid_plural "inactive chickenwalkers" -msgstr[0] "双足机器人(关)" - -#: lang/json/TOOL_from_json.py -msgid "inactive chainsaw horror" -msgid_plural "inactive chainsaw horrors" -msgstr[0] "机器电锯狂人(关)" - -#. ~ Description for inactive chainsaw horror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of whirring " -"chainsaws and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "一台改装的双足机器人,现在是一架装点着骷髅和尖刺的恐怖怪兽。它使用一对呼呼作响的电锯和震耳欲聋的音响系统攻击敌对目标。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive screeching terror" -msgid_plural "inactive screeching terrors" -msgstr[0] "机器尖啸恐魔(关)" - -#. ~ Description for inactive screeching terror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of piston-driven " -"lances and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "一台改装的双足机器人,现在是一架装点着骷髅和尖刺的恐怖怪兽。它使用一对活塞驱动的长枪和震耳欲聋的音响系统攻击敌对目标。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive hooked nightmare" -msgid_plural "inactive hooked nightmares" -msgstr[0] "机器钩心梦魇(关)" - -#. ~ Description for inactive hooked nightmare -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of spinning hooks" -" on chains and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" -"一台改装的双足机器人,现在是一架装点着骷髅和尖刺的恐怖怪兽。它使用一对带着利钩的旋转铁链和震耳欲聋的音响系统攻击敌对目标。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive tankbot" -msgid_plural "inactive tankbots" -msgstr[0] "坦克机器人(关)" - -#: lang/json/TOOL_from_json.py -msgid "inactive fist king" -msgid_plural "inactive fist kings" -msgstr[0] "机器铁拳国王(关)" - -#. ~ Description for inactive fist king -#. ~ Description for inactive atomic sultan -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Activate this " -"item to deploy the robot." -msgstr "一台改装的坦克机器人,装有一对强大的气动锤。它使用这对锤子摧毁它行进路线上的一切障碍,包括建筑物。激活以部署该机器人。" - -#: lang/json/TOOL_from_json.py -msgid "inactive atomic sultan" -msgid_plural "inactive atomic sultans" -msgstr[0] "机器核子苏丹(关)" - -#: lang/json/TOOL_from_json.py -msgid "active glowball" -msgid_plural "active glowballs" -msgstr[0] "发光彩弹(无保险)" - -#. ~ Use action msg for active glowball. -#: lang/json/TOOL_from_json.py -msgid "The glowball goes dim." -msgstr "发光彩弹发出黯淡的光。" - -#. ~ Description for active glowball -#: lang/json/TOOL_from_json.py -msgid "A small plastic ball filled with glowing chemicals." -msgstr "充满发光化学物质的小塑料球。" - #: lang/json/TOOL_from_json.py msgid "TEST rag" msgid_plural "TEST rags" @@ -87860,432 +85655,24 @@ msgid_plural "TEST scissor jacks" msgstr[0] "测试用剪式千斤顶" #: lang/json/TOOL_from_json.py -msgid "growing blob frame" -msgid_plural "growing blob frames" -msgstr[0] "凝胶变形怪车架(生长中)" - -#. ~ Use action msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "" -"You test the frame; It wiggles, and then collapses into an lump of goo." -msgstr "你试了试车架;它晃了晃,然后碎成一滩粘液。" - -#. ~ Use action not_ready_msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "你试了试框架。它容易变形,仍然不够坚固。" - -#. ~ Description for {'str': 'growing blob frame'} -#: lang/json/TOOL_from_json.py -msgid "" -"A growing vehicle frame made of bone. It's coated in a thick layer of ooze," -" though there's greater amounts on the bindings. It's not quite tough " -"enough to use." -msgstr "骨制成的闪光车架。整个车架上,特别是连接处上,都渗出了一层厚厚的糊状粘稠物在表面。它还不够结实,无法使用。" - -#: lang/json/TOOL_from_json.py -msgid "growing keratinous mass" -msgid_plural "growing keratinous mass" -msgstr[0] "角质变形怪(生长中)" - -#. ~ Use action msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action msg for {'str_sp': 'growing ooze'}. -#. ~ Use action msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "The blob balloons to full size." -msgstr "变形怪长大到完整大小。" - -#. ~ Use action not_ready_msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing ooze'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "Whatever it's doing, it's not done yet." -msgstr "不管它以后能长成什么东西,它现在还没长成。" - -#. ~ Description for {'str_sp': 'growing keratinous mass'} -#. ~ Description for {'str_sp': 'growing beaded mass'} -#. ~ Description for {'str_sp': 'growing icy mass'} -#. ~ Description for {'str_sp': 'growing cold mass'} -#. ~ Description for {'str_sp': 'growing hairy mass'} -#. ~ Description for {'str_sp': 'growing gelatinous mass'} -#. ~ Description for {'str_sp': 'growing glowing mass'} -#. ~ Description for {'str_sp': 'growing gray mass'} -#. ~ Description for {'str_sp': 'growing spike-studded mass'} -#. ~ Description for {'str_sp': 'growing gasoline-laced mass'} -#. ~ Description for {'str_sp': 'growing acidic mass'} -#. ~ Description for {'str_sp': 'growing ooze'} -#. ~ Description for {'str_sp': 'growing mass of tendrils'} -#. ~ Description for {'str_sp': 'growing spiked mass'} -#. ~ Description for {'str_sp': 'growing spiny mass'} -#. ~ Description for {'str_sp': 'growing spiky mass'} -#. ~ Description for {'str_sp': 'growing bright mass'} -#. ~ Description for {'str_sp': 'growing viscous mass'} -#. ~ Description for {'str_sp': 'growing warm mass'} -#. ~ Description for {'str_sp': 'growing electrified mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Not quite fully grown, this blob requires nourishment to fully develop." -msgstr "还没有完全长成,这只变形怪需要更多营养成分才能完全成长。" - -#: lang/json/TOOL_from_json.py -msgid "growing beaded mass" -msgid_plural "growing beaded mass" -msgstr[0] "珠状变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing icy mass" -msgid_plural "growing icy mass" -msgstr[0] "冰冻变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "gelacier" -msgid_plural "gelaciers" -msgstr[0] "寒冷变形怪" - -#. ~ Description for {'str': 'gelacier'} -#: lang/json/TOOL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It seems pliable enough to pull apart…" -msgstr "" -"一件生物学之谜,这只变形怪的内部结构存在着一滩低密度流体,尽管已经处在过冷状态但仍然保留液体形态;但仍然保持着其之前所具有的柔韧性。冰霜形成的碎片不断从它身上剥落。看起来柔韧得似乎可以被直接拉开……" - -#: lang/json/TOOL_from_json.py -msgid "growing cold mass" -msgid_plural "growing cold mass" -msgstr[0] "寒冷变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing hairy mass" -msgid_plural "growing hairy mass" -msgstr[0] "长毛变形怪(生长中)" - -#. ~ Use action msg for {'str_sp': 'gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'gray mass'}. -#. ~ Use action msg for {'str_sp': 'oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "You fumble as the blob starts to multiply rapidly!" -msgstr "变形怪抱住你的手,开始快速繁殖起来,让你变得笨手笨脚。" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An experiment gone horribly right. While the original intent was to combine" -" the structure of a bone frame with the impact absorption of the blob; the " -"blob seems to have completely consumed the bone. Instead, what remains is " -"an amorphous mass of goo with what seems to be numerous thin filaments " -"floating within. With a bit of effort, you can grasp the fibers and stretch" -" the mass into a multitude of shapes. The mass is able to retain the new " -"shape even under force, though the mass yields at your touch. With enough " -"strength, you think you can pull it apart." -msgstr "" -"一次成功得令人难以置信的实验。虽然最初的意图是将变形怪冲击吸收能力与骨制车架结构相结合;但似乎变形怪已经吃光了骨头。相反,剩下的是一团无定形胶质粘液,有着无数细丝漂浮其中。稍稍用点力,你可以抓住纤维并将它拉伸成多种形状。即使受外力,变形怪仍然能够保持新的形状,然而它你的触摸下却轻松变形。有了足够的力量,你认为你可以把它直接撕开。" - -#: lang/json/TOOL_from_json.py -msgid "multiplying gelatinous mass" -msgid_plural "multiplying gelatinous mass" -msgstr[0] "凝胶变形怪(分裂中)" - -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying oozing mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "A blob splits and bounces away!" -msgstr "一只变形怪分裂并蹦了出来!" - -#. ~ Description for {'str_sp': 'multiplying gelatinous mass'} -#. ~ Description for {'str_sp': 'multiplying gray mass'} -#. ~ Description for {'str_sp': 'multiplying oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Having been fed, this blob is now rapidly multiplying into other copies of " -"itself; extremely noisy copies! And even worse, it's stuck to your hands " -"until whatever it's doing is done! Catch those blobs before they bring in " -"every zombie for miles!" -msgstr "" -"在经过喂食后,这只变形怪正在迅速繁殖分裂出自身的克隆体;更加吵闹的克隆体!更糟糕的是,它在繁殖完成将一直粘在你的手上!赶紧在那些变形怪引来方圆几英里的每一只丧尸之前抓住它们!" - -#: lang/json/TOOL_from_json.py -msgid "growing gelatinous mass" -msgid_plural "growing gelatinous mass" -msgstr[0] "凝胶变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing glowing mass" -msgid_plural "growing glowing mass" -msgstr[0] "发光变形怪(生长中)" - -#. ~ Description for {'str_sp': 'gray mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"This internal structures of this creature have developed significantly. " -"While retaining the resilience and malleability of its once simpler form, it" -" has gained the considerable abilities of perception and stimulus response." -" When directly threatened, it is able to shift and alter its microfibers, " -"hardening its membrane to an almost steel-hard shell. You can still pull it" -" apart with enough force. It's also really gray." -msgstr "" -"这个生物的内部结构相比原始形态产生了明显的进步。既保留了它原始形态的弹性和延展性,又进一步获得了可观的感知能力和刺激反应。当被直接威胁时,它能转变形态并改变体内的超细纤维、硬化外膜成为几乎如同钢铁一般坚硬的甲壳。你仍然可以用足够的力量把它拉开。而且颜色也变得特别灰。" - -#: lang/json/TOOL_from_json.py -msgid "multiplying gray mass" -msgid_plural "multiplying gray mass" -msgstr[0] "灰色变形怪(分裂中)" - -#: lang/json/TOOL_from_json.py -msgid "growing gray mass" -msgid_plural "growing gray mass" -msgstr[0] "灰色变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing spike-studded mass" -msgid_plural "growing spike-studded mass" -msgstr[0] "带刺变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing gasoline-laced mass" -msgid_plural "growing gasoline-laced mass" -msgstr[0] "汽油变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing acidic mass" -msgid_plural "growing acidic mass" -msgstr[0] "酸液变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "oozing mass" -msgid_plural "oozing mass" -msgstr[0] "软泥变形怪" - -#. ~ Description for {'str_sp': 'oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An amorphous mass that has undergone a significant growth. In addition to " -"the increased amount of goo and sinuous filaments, it seems to have started " -"developing other internal structures. Like its smaller counterpart, it can " -"be shaped into various structures; albeit with significantly greater tensile" -" strength due to the increased number of supporting filaments. You believe " -"you can split it apart with enough force." -msgstr "" -"一团增长显著的无定形变形怪。除了粘液量及体内纤维的增加,它还似乎开始长出其他内部结构。尽管由于其体内增加的支持纤维有着显然更大的拉伸强度,但与它较小的同类一样,它依旧可以被你塑造成各种结构形状。你相信你可以用足够的力量把它分开。" - -#: lang/json/TOOL_from_json.py -msgid "multiplying oozing mass" -msgid_plural "multiplying oozing mass" -msgstr[0] "软泥变形怪(分裂中)" - -#: lang/json/TOOL_from_json.py -msgid "growing ooze" -msgid_plural "growing ooze" -msgstr[0] "软泥变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing mass of tendrils" -msgid_plural "growing mass of tendrils" -msgstr[0] "触须变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing spiked mass" -msgid_plural "growing spiked mass" -msgstr[0] "钉刺变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing spiny mass" -msgid_plural "growing spiny mass" -msgstr[0] "旋转变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing spiky mass" -msgid_plural "growing spiky mass" -msgstr[0] "尖刺变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing bright mass" -msgid_plural "growing bright mass" -msgstr[0] "闪亮变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing viscous mass" -msgid_plural "growing viscous mass" -msgstr[0] "粘性变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing warm mass" -msgid_plural "growing warm mass" -msgstr[0] "温暖变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "growing electrified mass" -msgid_plural "growing electrified mass" -msgstr[0] "带电变形怪(生长中)" - -#: lang/json/TOOL_from_json.py -msgid "diamond cluster" -msgid_plural "diamond clusters" -msgstr[0] "钻石晶簇" - -#. ~ Use action msg for {'str': 'diamond cluster'}. -#: lang/json/TOOL_from_json.py -msgid "The cluster comes apart in your hands." -msgstr "晶簇在你手中分裂了。" - -#. ~ Description for {'str': 'diamond cluster'} -#: lang/json/TOOL_from_json.py -msgid "" -"A cluster of artificial crystals that have broken off of a diamond matrix. " -"While the substance usually decays when separated from the catalyst; this " -"cluster seems to be self-sustaining by some unknown mechanism. " -msgstr "从钻石晶阵上破碎下来的一簇人工晶体。虽然通常这些物质从催化剂中分离出来时会降解,但是这些碎片不知道因为何种机制可以保持稳定。" - -#: lang/json/TOOL_from_json.py -msgid "diamond matrix" -msgid_plural "diamond matrices" -msgstr[0] "钻石晶阵" - -#. ~ Use action msg for {'str': 'diamond matrix', 'str_pl': 'diamond -#. matrices'}. -#: lang/json/TOOL_from_json.py -msgid "" -"Your senses dull as you gaze into the depths of this gemstone's center…" -msgstr "当你深深凝视着宝石的中心时,你的感官都有点迟钝了……" +msgid "test smartphone" +msgid_plural "test smartphones" +msgstr[0] "测试用智能手机" -#. ~ Description for {'str': 'diamond matrix', 'str_pl': 'diamond matrices'} +#. ~ Description for {'str': 'test smartphone'} #: lang/json/TOOL_from_json.py -msgid "" -"A sparkling diamond with a dazzling spiral pattern. Small pieces of " -"glittering crystal form on the edges as you hold it." -msgstr "一个有着耀眼的螺旋纹理的闪闪发光的钻石。当你握着它的边缘时,小片的闪闪发光的晶体在边缘不断形成。" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex engine" -msgid_plural "vortex engines" -msgstr[0] "涡旋引擎" - -#. ~ Description for {'str': 'vortex engine'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allows it to be attached to a vehicle to render " -"it mobile." -msgstr "" -"一个可以被称作是\"盒子里的龙卷风\"的载具部件。在这一看似无害的容器里面,承载着清洁能源的人类智慧结晶,抑或是能将人类文明(或者说残存部分)从地面上抹除的大规模杀伤性武器。容器上有个外接装置,使其可作为引擎使用。" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex generator" -msgid_plural "vortex generators" -msgstr[0] "涡旋发电机" +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." +msgstr "一个带手电筒、相机和MP3播放器的UPS供电的智能手机。" -#. ~ Description for {'str': 'vortex generator'} #: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allow it to be hooked up to a battery to store " -"the power generated." -msgstr "" -"一个可以被称作是\"盒子里的龙卷风\"的载具部件。在这一看似无害的容器里面,承载着清洁能源的人类智慧结晶,抑或是能将人类文明(或者说残存部分)从地面上抹除的大规模杀伤性武器。容器上有个外接装置,使其可作为发电机使用。" +msgid "test matchbook" +msgid_plural "test matchbooks" +msgstr[0] "测试用火柴" +#. ~ Description for {'str': 'test matchbook'} #: lang/json/TOOL_from_json.py -msgid "control chip" -msgid_plural "control chips" -msgstr[0] "控制芯片" - -#. ~ Description for control chip -#: lang/json/TOOL_from_json.py -msgid "" -"A small device, not bigger than a man's fist. It provides primitive " -"organisms with electric stimulation, reviving them and forcing them to obey " -"your commands. This version only works on blobs." -msgstr "一个还没有普通人拳头大的小型装置。在能够给原始的有机体提供电流的刺激,将他们复活并且让他们遵守你的命令。这个只能用在变形怪上。" - -#: lang/json/TOOL_from_json.py -msgid "dormant blob" -msgid_plural "dormant blobs" -msgstr[0] "蛰伏变形怪" - -#. ~ Use action friendly_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "The blob becomes active and starts slithering around." -msgstr "变形怪变得活跃起来并四处滑行。" - -#. ~ Use action hostile_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "You've made a terrible mistake, the blob is hostile!" -msgstr "你犯了个可怕的错误,变形怪对你产生了敌意!" - -#. ~ Description for dormant blob -#: lang/json/TOOL_from_json.py -msgid "" -"Several chunks of blob scraps, stuffed with a control chip and sewn back " -"together. A light shock from the UPS started the chip, bringing the blob " -"back to life. Use this item to wake up the blob." -msgstr "一些变形怪碎渣,装了控制芯片并且被缝合在一起。从UPS给予轻微的电击可以启动芯片,将这个变形怪复活。使用这件物品来唤醒变形怪。" - -#: lang/json/TOOL_from_json.py -msgid "dormant minion" -msgid_plural "dormant minions" -msgstr[0] "沉睡的丧尸奴仆" - -#. ~ Use action friendly_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "The jabberwock climbs to its feet and shambles around." -msgstr "这只伽卜沃奇站了起来,步履蹒跚。" - -#. ~ Use action hostile_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "" -"Something has gone wrong; after getting up the jabberwock lumbers toward you" -" menacingly!" -msgstr "手术有点不对劲。沉睡的伽卜沃奇突然醒过来,向你冲了过来!" - -#. ~ Description for dormant minion -#: lang/json/TOOL_from_json.py -msgid "" -"Your very own undead servant. The blob controlling its body is in a state " -"of coma, awaiting your orders. Use this item to wake up the minion." -msgstr "只属于你的丧尸奴仆。他处于一种特殊的麻痹状态,等待着你的命令。使用这件物品可以唤醒奴仆 。" +msgid "Test matches - when you must burn things, for science!" +msgstr "测试用火柴,当你必须燃烧东西时点燃它,为了科学!" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -88464,6 +85851,18 @@ msgid "" "very menacing." msgstr "一个非常小的轮子。可能是来自于那种体感车。不是很靠谱啊。" +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "滑冰鞋轮" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "一个很小的塑料轮子,看上去很有朋克精神。这个轮子是用来造滑冰鞋的。" + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" @@ -88540,164 +85939,66 @@ msgstr[0] "魔法车轮" msgid "A column of mana energy that enables a floating disk to move." msgstr "一系列魔法能量,使飘浮碟能够移动。" -#: lang/json/WHEEL_from_json.py -msgid "Rubber Caterpillar Track" -msgid_plural "Rubber Caterpillar Tracks" -msgstr[0] "橡胶履带" - -#. ~ Description for {'str': 'Rubber Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of hard rubber tracks reinforced by stiff wire " -"held in place by a set of smaller wheels. Similar with what you might see " -"used on light construction vehicles. It's significantly stronger than " -"regular tires due to not being at risk of bursting; but is quite heavy." -msgstr "" -"短履带板环环相扣,由强韧金属丝强化并安装在一组小型负重轮上的硬橡胶履带。类似的东西你可能曾在轻型工程载具上见过。由于没有爆胎的风险,它显然比普通轮胎坚固,但是却相当重。" - -#: lang/json/WHEEL_from_json.py -msgid "Steel Caterpillar Track" -msgid_plural "Steel Caterpillar Tracks" -msgstr[0] "钢制履带" - -#. ~ Description for {'str': 'Steel Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on large construction " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is very heavy." -msgstr "" -"短履带板环环相扣,安装在一组小型负重轮上的轧制钢履带。类似的东西你可能曾在大型工程载具上见过。由于没有爆胎的风险,它显然比普通轮胎坚固,但是却非常重。" - -#: lang/json/WHEEL_from_json.py -msgid "Reinforced Caterpillar Track" -msgid_plural "Reinforced Caterpillar Tracks" -msgstr[0] "加固履带" - -#. ~ Description for {'str': 'Reinforced Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on APCs and armored " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is extremely heavy." -msgstr "" -"短履带板环环相扣,安装在一组小型负重轮上的轧制钢履带。类似的东西你可能曾在运兵车和装甲载具上见过。由于没有爆胎的风险,它显然比普通轮胎坚固,但是却超级重。" - -#: lang/json/WHEEL_from_json.py -msgid "Gelatinous track" -msgid_plural "Gelatinous tracks" -msgstr[0] "凝胶履带" - -#. ~ Description for {'str': 'Gelatinous track'} -#. ~ Description for {'str': 'Oozing track'} -#. ~ Description for {'str': 'Gray track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of tracks created out of some of your monstrosity " -"blob based parts. Similar with what you might see used on light " -"construction vehicles. It's significantly stronger than regular tires due " -"to not being at risk of bursting; but is quite heavy." -msgstr "" -"短履带板环环相扣,由巨大而丑陋的变形怪部件制成的履带。类似的东西你可能曾在轻型工程载具上见过。由于没有爆胎的风险,它显然比普通轮胎坚固,但是却相当重。" - -#: lang/json/WHEEL_from_json.py -msgid "Oozing track" -msgid_plural "Oozing tracks" -msgstr[0] "软泥履带" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "Gray track" -msgid_plural "Gray tracks" -msgstr[0] "灰色履带" +#: lang/json/achievement_from_json.py +msgid "One down, billions to go…" +msgstr "干掉一个,还有十亿个……" -#: lang/json/WHEEL_from_json.py -msgid "gelacier wheel" -msgid_plural "gelacier wheels" -msgstr[0] "变形怪冰川车轮" +#: lang/json/achievement_from_json.py +msgid "Rude awakening" +msgstr "猛然觉醒" -#. ~ Description for {'str': 'gelacier wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It has formed itself into a wide, crude " -"wheel." -msgstr "" -"一件生物学之谜,这只变形怪的内部结构存在着一滩低密度流体,尽管已经处在过冷状态但仍然保留液体形态;但仍然保持着其之前所具有的柔韧性。冰霜形成的碎片不断从它身上剥落。这只变形怪的形状如同天然车轮一般。" +#: lang/json/achievement_from_json.py +msgid "Decamate" +msgstr "十名死者" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gelatinous wheel" -msgid_plural "gelatinous wheels" -msgstr[0] "凝胶车轮" +#: lang/json/achievement_from_json.py +msgid "Centinel" +msgstr "百人斩" -#. ~ Description for {'str': 'gelatinous wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gelatinous mass with water has resulted in something that appears " -"to be a cross between a wheel, an otherworldly abomination, and one of those" -" old squeezy toys." -msgstr "用水填充凝胶变形怪,结果产生了一些类似轮辐一样的交叉,像是来自异界的畸形体,或者是老的挤压玩具。" +#: lang/json/achievement_from_json.py +msgid "The first day of the rest of their unlives" +msgstr "余死首日" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gray wheel" -msgid_plural "gray wheels" -msgstr[0] "灰色车轮" +#: lang/json/achievement_from_json.py +msgid "Survive for a day and find a safe place to sleep" +msgstr "活过一天,并找个安全的地方睡上一觉" -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gray mass with water has resulted in something that appears to be " -"a cross between a wheel, an otherworldly abomination, and one of those old " -"squeezy toys." -msgstr "用水填充灰色变形怪,结果产生了一些类似轮辐一样的交叉,像是来自异界的畸形体,或者是老的挤压玩具。" +#: lang/json/achievement_from_json.py +msgid "Thank God it's Friday" +msgstr "感谢上帝,已经周五了" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "earthen roller" -msgid_plural "earthen rollers" -msgstr[0] "变形怪压路机" +#: lang/json/achievement_from_json.py +msgid "Survive for a week" +msgstr "活过一周" -#. ~ Description for {'str': 'earthen roller'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A large, spherical blob the size of a large truck tire. The outer layer has" -" compacted itself into a solid shell; offering great resilience. Having " -"grown to full size, it seems content to simply sit there." -msgstr "" -"一只体型有着大型卡车轮胎大小的大型球形变形怪。外层已经被压实成为坚硬的甲壳状,但同时依旧很有弹性。现在它已经生长至完全体大小,它看起来很安静,就只是坐着。" +#: lang/json/achievement_from_json.py +msgid "28 days later" +msgstr "惊变28天" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "oozing wheel" -msgid_plural "oozing wheels" -msgstr[0] "软泥车轮" +#: lang/json/achievement_from_json.py +msgid "Survive for a month" +msgstr "活过一月" -#. ~ Description for {'str': 'oozing wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling an oozing mass with water has resulted in something that appears to " -"be a cross between a wheel, an otherworldly abomination, and one of those " -"old squeezy toys." -msgstr "用水填充软泥变形怪,结果产生了一些类似轮辐一样的交叉,像是来自异界的畸形体,或者是老的挤压玩具。" +#: lang/json/achievement_from_json.py +msgid "A time to every purpose under heaven" +msgstr "世间万物皆有自己的季节" #: lang/json/achievement_from_json.py -msgid "One down, billions to go…" -msgstr "干掉一个,还有十亿个……" +msgid "Survive for a season" +msgstr "活过一季" #: lang/json/achievement_from_json.py -msgid "Rude awakening" -msgstr "猛然觉醒" +msgid "Brighter days ahead?" +msgstr "更明亮的日子在后头?" #: lang/json/achievement_from_json.py -msgid "The first day of the rest of their unlives" -msgstr "余死首日" +msgid "Survive for a year" +msgstr "活过一年" #: lang/json/achievement_from_json.py msgid "Pheidippides was a hack" msgstr "斐迪庇第斯不过如此" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." msgstr "跑了一场马拉松……还多一点点。" @@ -88706,7 +86007,6 @@ msgstr "跑了一场马拉松……还多一点点。" msgid "Please don't fall down at my door" msgstr "请不要倒在我门前" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." msgstr "走了500英里,然后再走500英里。" @@ -88727,6 +86027,18 @@ msgstr "无论山有多高" msgid "Ain't no valley low enough" msgstr "无论谷有多深" +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "弗里曼博士的最爱" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "固若金汤" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "他们在隐瞒什么?" + #: lang/json/activity_type_from_json.py msgid "reloading" msgstr "装填" @@ -88855,10 +86167,6 @@ msgstr "加热" msgid "de-stressing" msgstr "减压" -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr "切割组织" - #: lang/json/activity_type_from_json.py msgid "dropping" msgstr "丢下物品" @@ -89288,10 +86596,6 @@ msgstr "电池" msgid "cents" msgstr "美分" -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "钚电池" - #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" msgstr "12mm 独头弹" @@ -89416,14 +86720,6 @@ msgstr "纸壳弹" msgid "pulse ammo" msgstr "脉冲弹药" -#: lang/json/ammunition_type_from_json.py -msgid "6.54x42mm" -msgstr "6.54x42mm 弹" - -#: lang/json/ammunition_type_from_json.py -msgid ".20 DREAD Pellets" -msgstr ".20 \"恐惧\"金属球弹" - #: lang/json/ammunition_type_from_json.py msgid "black powder ammo" msgstr "黑火药" @@ -89469,40 +86765,8 @@ msgid "mana energy" msgstr "魔力" #: lang/json/ammunition_type_from_json.py -msgid "javelin" -msgstr "标枪" - -#: lang/json/ammunition_type_from_json.py -msgid "120mm shell" -msgstr "120mm 炮弹" - -#: lang/json/ammunition_type_from_json.py -msgid "155mm shell" -msgstr "155mm 炮弹" - -#: lang/json/ammunition_type_from_json.py -msgid "30x113mm" -msgstr "30x113mm 炮弹" - -#: lang/json/ammunition_type_from_json.py -msgid "heavy projectiles" -msgstr "重型投掷物" - -#: lang/json/ammunition_type_from_json.py -msgid "ballista bolt" -msgstr "弩炮炮矢" - -#: lang/json/ammunition_type_from_json.py -msgid "bladed disk" -msgstr "带刃圆盘" - -#: lang/json/ammunition_type_from_json.py -msgid "crystalline shards" -msgstr "水晶碎片" - -#: lang/json/ammunition_type_from_json.py -msgid "vortex energy" -msgstr "涡旋能量" +msgid "heady vapours" +msgstr "兴奋蒸汽" #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" @@ -89575,10 +86839,10 @@ msgid "" msgstr "你的眼眶经过手术被高防护的反光镜片封死了,你的泪管被重新导向你的口腔。当你哭泣的时候,如果不把眼泪吐出来,你就只能含泪吞下去了。" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" +msgid "Alloy Plating - head" msgstr "合金装甲-头部" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -89598,10 +86862,10 @@ msgid "" msgstr "你的腿部的皮肤被手术替换成了合金装甲,提供防护并可用于生化武术。" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" +msgid "Alloy Plating - torso" msgstr "合金装甲-躯干" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -90975,6 +88239,16 @@ msgid "" msgstr "" "你大脑的腹侧被盖区植入了微型自动刺激电极,并消耗生化能量定期激发。这会在你脑中缓慢释放出一股激励化学物质和荷尔蒙,让你感到极度快乐,这会显著地提升你的心情。" +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top" +" of your spine. They are all dead now but there is unfortunately a dead man" +" switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" +"你曾经为一些可怕的人工作过。那些人在你颅脑里安装了一个炸弹。他们现在都死了,但不幸的是,如果你30天内没向他们报告就会触发炸弹的自毁装置。你需要尽快把这玩意取出来。" + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" @@ -91305,6 +88579,22 @@ msgstr "增加羊毛衬里" msgid "Destroy wool lining" msgstr "破坏羊毛衬里" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "和平主义" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "不杀死任何怪物" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "不杀死任何NPC。" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "仁慈" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -91695,7 +88985,7 @@ msgstr "建造公告牌" #: lang/json/construction_from_json.py msgid "Build Dresser" -msgstr "建造梳妆台" +msgstr "建造衣柜" #: lang/json/construction_from_json.py msgid "Build Bookcase" @@ -91715,7 +89005,7 @@ msgstr "建造木架" #: lang/json/construction_from_json.py msgid "Build Metal Rack" -msgstr "建造金属支架" +msgstr "建造金属货架" #: lang/json/construction_from_json.py msgid "Build Warehouse Shelf" @@ -91847,7 +89137,7 @@ msgstr "建造书桌" #: lang/json/construction_from_json.py msgid "Build Wardrobe" -msgstr "建造衣柜" +msgstr "建造大衣柜" #: lang/json/construction_from_json.py msgid "Build Safe" @@ -92112,6 +89402,10 @@ msgstr "建造枕头堡垒" msgid "Build Cardboard Fort" msgstr "建造纸箱城堡" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "建造沙堡" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "建造火塘" @@ -92296,26 +89590,10 @@ msgstr "树干劈成原木" msgid "Makeshift Wall" msgstr "建造简易墙" -#: lang/json/construction_from_json.py -msgid "Build Hydroponics" -msgstr "建造水培单元" - -#: lang/json/construction_from_json.py -msgid "Build Hydroponics Heater" -msgstr "建造水培加热器" - #: lang/json/construction_from_json.py msgid "Build Translocator Gate" msgstr "建造易位门" -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" -msgstr "从填满尸体的坑中收获变形怪培养物:砸碎来收获" - -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "从粘液中收获变形怪培养物:砸碎来收获" - #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." msgstr "你做了一个关于蜥蜴的怪梦。" @@ -93168,6 +90446,76 @@ msgstr "星辰在等着你,你的烈焰战车已经准备好了。货舱里满 msgid "You have transitioned from a dying race to a glorious future." msgstr "你梦见自己从一个垂死的种族过渡到一个美好的未来。" +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "你做了一个奇怪的梦,梦见自己在冻土带上沉重地雷鸣而行,厚厚的圆脚下古老而脆弱的冻土噼啪作响。" + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "你的梦给你一种奇怪的、慢悠悠的、沉重的感觉。" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded" +" by snow and bitter pelting winds, you feel confident and toasty-warm " +"beneath your shaggy coat." +msgstr "" +"你梦见你摇着沉重的头,从你那清澈的棕色大眼睛里抖出粘在上面的冰雪。重量感觉不太对了,好像你有什么东西……长在你的嘴的两边,虽然你被暴雪和烈风包围着,但在你蓬松的外套下面,你感到自信和温暖。" + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" +"你梦见了一条由毛茸茸的土褐色皮毛组成的溪流,蜿蜒进入一片严酷冰冷的白色海洋。在一起,你们都很强壮。当你环顾四周时,从各个角度你都能看到大象的脸回头看着你,你知道你自己和它们一样。你就是……知道。" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is" +" restored." +msgstr "" +"你梦见你平常的耐心地慵懒步伐,被撞在洁白的牙齿上的一张沾着深红色的巨口上打断了。刹那间,一股雷鸣般的怒火压倒了你,你吹响了你的怒火……随着号角被吹响,你用自己两侧长矛一般的象牙将袭击者打翻在地。他们躺倒在地,骨头破碎,鲜红的血液流进冰冷的白雪中,仿佛让它沸腾。就这样,你内心的平静又恢复了。" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill" +" for anyone or anything to bother trying to attack. And if they do… it'll " +"be the last mistake of their life. Waking up gives you a brief jolt of " +"fear and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" +"你梦见自己慢慢地,耐心地,在这个世界上跋涉,从一个目的地到另一个目的地,从容不迫,不畏艰险,因为你太大了,谁也杀不死你,任何人或任何物体都不胆敢发动攻击。如果他们敢那么做的话……那将是他们生命中最后的错误。醒来后,你感到了短暂的恐惧和不安,因为与你在梦中所了解到强大自身相比,你现在的身体让你感到非常虚弱、脆弱和不真实。" + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" +"你在梦中脑子转得也许很慢,你需要很久才能想出结论,但为什么要那么急呢?有什么可忙的呢?你是巨大而古老的生物,有着历史悠久的血统,可以追溯到比灵长类生物第一次胆敢举起一根削尖的棍子称自己为超人之前还要更长更久。你巨大而又强壮,所有与你作对的人都会倒下。你……你现在拥有世界上所有的时间。" + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one" +" through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "没有一个长牙的家庭陪在你身边,一同雷鸣般穿过这个荒凉的世界,寻找隐藏的避难所的日子是孤独的。也许……也许你应该建立你的家庭了。" + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "你做了一个关于阴影的怪梦。" @@ -93989,8 +91337,6 @@ msgid "Stuck in beartrap" msgstr "陷入捕熊陷阱" #. ~ Description of effect 'Stuck in beartrap'. -#. ~ Description of effect 'Stuck in a light snare'. -#. ~ Description of effect 'Stuck in a heavy snare'. #: lang/json/effects_from_json.py msgid "You can't move until you get free!" msgstr "在你从陷阱里挣脱出来之前,你无法移动。" @@ -94348,6 +91694,52 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "治愈了真菌感染。" +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "被触碰的思维" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "当奇怪的幻觉闪过你的脑海时,你有点迷失了方向。" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "你的脑中充满了那些令人不安的图像和概念。" + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "被感染的思维" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "你无法理解你周围的事物……" + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "被严重感染的思维" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "你无法分清真实和虚幻……" + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, +#. Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "你对现实的感觉扭曲了!" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly +#. tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "思维污染" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "幻觉" @@ -95713,6 +93105,26 @@ msgstr "恶臭黏液在皮肤上缓慢滑落的感觉让你全身发抖,而它 msgid "You're disgusted by the goop." msgstr "你被恶臭黏液恶心到了。" +#: lang/json/effects_from_json.py src/character.cpp +msgid "Full" +msgstr "饱食" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "你感觉自己吃得太饱了,有些懒洋洋的。" + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "饱食超量" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "你的胃快被撑得胀破了。这是个错误。" + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" msgstr "镁补充剂" @@ -95735,10 +93147,6 @@ msgid "" "This is a bug if you have it." msgstr "AI专用标签:你在对话时冒犯了NPC的信仰。" -#: lang/json/effects_from_json.py src/character.cpp src/character.cpp -msgid "Full" -msgstr "饱食" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -96111,20 +93519,6 @@ msgstr "生化毒素" msgid "You feel sluggish and weak, from magically-induced poisoning." msgstr "你感觉到由于生化魔法导致的迟钝及虚弱。" -#: lang/json/effects_from_json.py -msgid "Stuck in a light snare" -msgstr "陷入小型捕猎陷阱" - -#. ~ Apply message for effect(s) 'Stuck in a light snare'. -#. ~ Apply message for effect(s) 'Stuck in a heavy snare'. -#: lang/json/effects_from_json.py -msgid "You are snared!" -msgstr "你被捕猎陷阱套住了!" - -#: lang/json/effects_from_json.py -msgid "Stuck in a heavy snare" -msgstr "陷入大型捕猎陷阱" - #: lang/json/effects_from_json.py msgid "Gummed" msgstr "被黏住" @@ -96151,6 +93545,70 @@ msgstr "你被口香糖黏住了!" msgid "The gum webs constrict your movement." msgstr "口香糖网限制了你的行动。" +#: lang/json/effects_from_json.py +msgid "Debugged" +msgstr "调试" + +#. ~ Description of effect 'Debugged'. +#: lang/json/effects_from_json.py +msgid "" +"You have been debugged!\n" +"Everything is working perfectly now." +msgstr "" +"你正在调试游戏!\n" +"一切都会变得正常了吧。" + +#. ~ Apply message for effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Diving into your source, you find a rubber duck, and talk it to death." +msgstr "深入你的内心代码,你会找到一只橡皮鸭,然后向它反复解释到死。" + +#. ~ Speed name of effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Optimized" +msgstr "充分优化" + +#: lang/json/effects_from_json.py +msgid "Min-Maxed" +msgstr "调试最大最小值" + +#. ~ Description of effect 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "" +"All the benefits of being the worst with none of the drawbacks of being the " +"best!" +msgstr "拥有做坏人的所有好处,而没有做好人的任何缺点!" + +#. ~ Apply message for effect(s) 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "You feel your internal metrics stretch like a fun-house mirror." +msgstr "你觉得自己体内指标就像是面对哈哈镜时一样被拉紧。" + +#: lang/json/effects_from_json.py +msgid "Whoa" +msgstr "喔噢" + +#: lang/json/effects_from_json.py +msgid "Wut?" +msgstr "瓦特?" + +#: lang/json/effects_from_json.py +msgid "Wow!" +msgstr "哇噢!" + +#: lang/json/effects_from_json.py +msgid "" +"Everything is just way too intense, man!\n" +"You feel confused and disoriented." +msgstr "" +"一切都太紧张了,我的伙计!\n" +"你感到困惑和迷失。" + +#. ~ Apply message for effect(s) 'Whoa, Wut?, Wow!'. +#: lang/json/effects_from_json.py +msgid "!!Intensity intensifies!!" +msgstr "!!紧张紧张,刺激刺激!!" + #: lang/json/faction_from_json.py msgid "Your Followers" msgstr "你和你的同伴" @@ -97273,8 +94731,10 @@ msgstr "冷却装置" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." -msgstr "一种用于大面积制冷的大块金属装置。" +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." +msgstr "一台又大又方被包裹在金属板之中的电器。这种常见的固定装置用于冷却大型室内区域。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -97291,16 +94751,18 @@ msgstr "中央空气过滤器" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" -msgstr "清除尘螨,烟雾微粒,等等!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." +msgstr "一大片的合成化纤过滤膜,用来过滤空气中的灰尘、烟雾、螨虫和其他污染物。" #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them" -" clean and to save people an unpleasant chore. Now, with the power gone and" -" it sitting for a while, it's starting to smell a bit off." -msgstr "这个金属盒子能给脏盘子喷洒热水和肥皂,使它们变得干净,帮人类完成不愉快的家务。现在电源早已中断,它里面开始有点臭味了。" +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." +msgstr "一台又大又方的机器,能用热水和肥皂高效清洗大批盘子。现在它已经没电了,呆在哪里有一阵子了,从里面漏出一股腐烂的气味。" #: lang/json/furniture_from_json.py msgid "dryer" @@ -97308,8 +94770,10 @@ msgstr "烘干机" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." -msgstr "一个用于清洗衣物的洗衣机,已停电,无法运行。" +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." +msgstr "一台常见的家用电器,用来迅速烘干大量已经洗好的衣服。" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "refrigerator" @@ -97318,11 +94782,9 @@ msgstr "冰箱" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." -msgstr "" -"一个静音冷冻,省电节能的冰箱,可使食物或其他物品保持恒定低温冷态的常见家电,已停电,无法使用,仅供储存。如果你不打开它,可以保持温度一段时间。" +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." +msgstr "一台高大的金属板制成的储存容器,如果通电的话,可以冷冻食物和其他易腐物品长期保存。" #: lang/json/furniture_from_json.py msgid "glass door fridge" @@ -97331,8 +94793,12 @@ msgstr "玻璃冰柜" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" -msgstr "一个装有透明玻璃的冰柜,已停电,无法使用,仅供储存。" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without" +" letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." +msgstr "" +"一台现代冰柜,冰柜门上有一层厚厚的玻璃,通常经过特殊处理使其更具热绝缘性。让你能在不放走冷气的情况下看到里面储藏的物品,以前这不过是个小小的便利,而现在能节省物品宝贵的几分钟保质期。" #: lang/json/furniture_from_json.py msgid "furnace" @@ -97342,13 +94808,15 @@ msgstr "锅炉" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." -msgstr "一种气体驱动的强制通风中央供暖装置,带有一个内部风扇,用于推动空气通过建筑物的风道并保持温度。" +"the air through a building's ventilation system to keep it warm." +msgstr "一台燃气驱动的强排式中央供暖装置,内部有个风扇将加热后的空气送入建筑物的通风系统来供应暖气。" #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." -msgstr "一个用于清洗衣物的洗衣机,已停电,无法运行。" +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." +msgstr "一台又大又笨重的机器,消耗肥皂和大量的水来轻松地清洗大量衣服。" #: lang/json/furniture_from_json.py msgid "oven" @@ -97357,10 +94825,9 @@ msgstr "烤箱" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." -msgstr "一个用于加热和烹饪食物的厨房电器,已停电,无法使用,但可以在箱内生火,给锅子等器皿加热。" +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." +msgstr "一台标准的对流式烤箱,通常用于加热和烹饪食物。尽管它已经缺少燃气无法正常工作,但你仍然可以用它安全地生火。" #: lang/json/furniture_from_json.py msgid "blacksmith bellows" @@ -97369,9 +94836,10 @@ msgstr "铁匠铺风箱" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." -msgstr "一个用于送风以提高熔炉的燃烧和产热效率的风箱。看起来不像能用的样子,但是至少还能拆成零件。" +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." +msgstr "一个将空气送入铁匠的锻炉里以加强火势保持高温的老旧装置。它现在已经毫无用途,但可以拆解得到零件。" #: lang/json/furniture_from_json.py msgid "blacksmith drop hammer" @@ -97380,9 +94848,10 @@ msgstr "铁匠铺落锤" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." -msgstr "一个用于快速生产金属物件的落锤。看起来不像能用的样子,但是至少还能拆成零件。" +"An anvil with a large metal hammer suspended above it in a metal framework." +" If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." +msgstr "一个铁砧,它正上方的金属框架内悬挂着一个巨大的金属锤。当它还能正常工作时,它能快速加工软金属板,而现在只能把它拆解得到零件。" #: lang/json/furniture_from_json.py msgid "document shredder" @@ -97391,9 +94860,12 @@ msgstr "碎纸机" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." -msgstr "有时用于隐瞒政府机密,有时也用于防止个人信息被盗用。" +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." +msgstr "" +"一个安装在废纸篓上的简单的电子装置。它的目的是快速销毁具有敏感信息的纸质文件。现在只能拆解得到零件,因为身份冒用和商业间谍活动可能不再是什么大问题了。" #: lang/json/furniture_from_json.py msgid "server stack" @@ -97401,8 +94873,11 @@ msgstr "服务器" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." -msgstr "这是一堆电脑。它们都关机了。" +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." +msgstr "一个用来存放存储和传输信息的专用服务器的大型服务器机架。现在已经断电了,基本上毫无用途,不过安装在里面的笔记本电脑应该还可以拆下来用。" #: lang/json/furniture_from_json.py msgid "large satellite dish" @@ -97411,9 +94886,12 @@ msgstr "大型卫星天线" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." -msgstr "在遥远的某个地方,仍然有卫星在轨道上运行,向一个无人倾听的地球发送信号。" +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes" +" have all been lost." +msgstr "" +"一种大的凹形金属半球面,带有用于接收卫星信号的简单电子设备。虽然数百台围绕地球运行的昂贵仪器可能会继续不确定地运转,但它们曾经的各种用途都已不复存在。" #: lang/json/furniture_from_json.py msgid "mounted solar panel" @@ -97421,8 +94899,11 @@ msgstr "太阳能板(已安装)" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." -msgstr "安装好的太阳能板。" +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." +msgstr "一套光伏发电装置,将太阳辐射能转化为可利用的电力。在大灾变之前就已经很有用,而现在它们更是成为稀罕的工具,对任何幸存者来说都是无价之宝。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -97435,8 +94916,11 @@ msgstr "路障" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." -msgstr "一块用于截断交通的路障。" +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." +msgstr "一大块木制路障,用来阻挡车辆通过某条道路。它内衬了一条反光带,以增加能见度。和它的名字不太匹配的是,它几乎无法阻止一辆行驶中的汽车。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp @@ -97454,8 +94938,10 @@ msgstr "土包路障" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." -msgstr "土包路障,通常用于阻挡子弹。" +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." +msgstr "一排由土包堆叠而成的矮墙,通常用来阻挡子弹和洪水。" #: lang/json/furniture_from_json.py msgid "rrrip!" @@ -97467,8 +94953,8 @@ msgstr "土包墙" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." -msgstr "一段土包堆起来的墙。" +msgid "A wall of stacked earthbags, a bit taller than an average adult." +msgstr "一排由土包堆叠而成的高墙,比一般成年人稍微高一些。" #: lang/json/furniture_from_json.py msgid "lane guard" @@ -97476,8 +94962,8 @@ msgstr "车位防护栏" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." -msgstr "一个主要用于工厂、车间及仓库间设备与设施的防护与保护场合的护撞护栏。" +msgid "A simple wooden post to mark the separation between street lanes." +msgstr "一根简单的木桩,标志着车道之间的分隔。" #: lang/json/furniture_from_json.py msgid "sandbag barricade" @@ -97485,8 +94971,10 @@ msgstr "沙包路障" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." -msgstr "沙包路障,通常用于阻挡子弹。" +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." +msgstr "一排用装满了沙子的帆布袋堆叠而成的矮墙,通常用来阻挡子弹和洪水。" #: lang/json/furniture_from_json.py msgid "sandbag wall" @@ -97494,8 +94982,8 @@ msgstr "沙袋墙" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." -msgstr "一段沙包堆起来的墙。" +msgid "A wall of stacked sandbags, a bit taller than an average adult." +msgstr "一排用装满了沙子的帆布袋堆叠而成的高墙,比一般成年人稍微高一些。" #: lang/json/furniture_from_json.py msgid "standing mirror" @@ -97503,8 +94991,10 @@ msgstr "穿衣镜" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" -msgstr "一个用于观察自己衣着的镜子,镜子里面不会有个头颅来奉承你。" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all" +" of the dirt and blood on your clothes, and the weariness in your eyes." +msgstr "一面安装在光滑金属框架中的全身镜。你可以很轻易地看到你衣服上所有的污垢和血迹,以及你眼里的疲倦。" #: lang/json/furniture_from_json.py msgid "glass breaking" @@ -97517,9 +95007,10 @@ msgstr "穿衣镜(损坏)" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." -msgstr "一个用于观察自己衣着的坏镜子,遍布着裂痕和残渣。" +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." +msgstr "一个全身镜的金属框架,大部分镜子都不见了。框架中只剩下看起来很危险的碎玻璃。" #: lang/json/furniture_from_json.py msgid "bitts" @@ -97528,9 +95019,9 @@ msgstr "缆柱" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." -msgstr "安装在码头、突堤或埠头上的成对的垂直铁柱。它们用于固定系泊缆、绳索、缆索或缆绳。" +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." +msgstr "安装在码头、突堤或埠头上的成对的垂直铁柱。它们用于固定系泊缆、缆绳等。" #: lang/json/furniture_from_json.py msgid "manacles" @@ -97538,10 +95029,8 @@ msgstr "镣铐" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." -msgstr "把农奴锁在地牢里。现在你只需要一个铁球来把它拴在上面。" +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." +msgstr "一根用沉重链条制成的金属枷锁,安装在墙上或地板上。" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py @@ -97554,11 +95043,12 @@ msgstr "雕像" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." -msgstr "一个冰冷的石雕。" +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." +msgstr "一块巨大的石头,被精心雕刻成一件永恒的艺术品。" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." msgstr "重击声。" @@ -97569,9 +95059,10 @@ msgstr "人体模型" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" -msgstr "帮它穿上衣服,跟它说说话。又不会有谁看到。等等……它刚动了吗?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." +msgstr "一个的真人大小的木雕人像,最常用来在商店里展示衣服,或供裁缝设计服装。考虑到最近所发生的一切,它看上去有些让你不安。" #: lang/json/furniture_from_json.py msgid "birdbath" @@ -97579,8 +95070,10 @@ msgstr "鸟澡盆" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." -msgstr "一种装饰性的鸟澡盆和底座。" +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." +msgstr "一个安装在基座上的宽大石碗,通常装满了雨水,供鸟类玩耍或洗澡。" #: lang/json/furniture_from_json.py msgid "rotary clothes dryer line" @@ -97588,8 +95081,10 @@ msgstr "旋转晾衣绳" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." -msgstr "安装在杆子上的伞状晾衣绳。" +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to" +" hang up clothes to dry in the sunlight." +msgstr "一根中央金属杆,支撑着一个宽大的旋转框架,用来把衣服挂在阳光下晒干。" #: lang/json/furniture_from_json.py msgid "floor lamp" @@ -97597,8 +95092,10 @@ msgstr "落地灯" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." -msgstr "一盏高高的台灯,用来插在墙上来照亮房间。" +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." +msgstr "安装在金属杆顶部的一盏灯,把电源插进墙上的插座,就能照亮整个房间,当然是在还有电的时候。" #: lang/json/furniture_from_json.py msgid "bonk!" @@ -97613,14 +95110,30 @@ msgstr "松树花环" msgid "A decorative wreath for the winter holidays." msgstr "用于冬季装饰的花环。" +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "沙堡" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "一座由沙子建成的美丽城堡。这座宏伟的堡垒将屹立不倒,经久不衰,这是建造者技艺的真实证明。" + +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +msgid "crunch." +msgstr "嘎吱。" + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "装饰树" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." -msgstr "用于冬季装饰的树。" +msgid "" +"A decorative pine tree littered with ornaments for the winter holidays." +msgstr "一棵装饰用的松树,在圣诞节时会被挂满装饰物。" #: lang/json/furniture_from_json.py msgid "indoor plant" @@ -97628,8 +95141,10 @@ msgstr "室内植物" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." -msgstr "一盆用于室内装饰的植物。" +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried" +" up and died a while ago." +msgstr "一株用于室内装饰小型盆栽。它似乎早已干涸,里面的植物死了有段时间了。" #: lang/json/furniture_from_json.py msgid "yellow indoor plant" @@ -97637,8 +95152,10 @@ msgstr "黄色室内植物" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." -msgstr "装饰盆栽,黄色的。" +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." +msgstr "一盆开黄花的装饰性盆栽,里面的植物看上去已经枯萎,在不久以前就已经枯死了。" #: lang/json/furniture_from_json.py msgid "harvestable plant" @@ -97647,14 +95164,9 @@ msgstr "可收获的植物" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to" -" harvest the plant appropriately." -msgstr "这颗植物已经准备好收割了。更仔细地检查它,以确定如何适当地收获植物。" - -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py -msgid "crunch." -msgstr "嘎吱。" +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." +msgstr "这株植物已经完全长成,可以收割了。具体如何收获它还需要你靠近仔细查看。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -97667,8 +95179,8 @@ msgstr "成熟的植物" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." -msgstr "这颗植物已经成熟了。" +msgid "This plant has matured, and will be ready to harvest before long." +msgstr "这株植物已经成熟,不久就可以收获了。" #: lang/json/furniture_from_json.py msgid "seed" @@ -97677,9 +95189,9 @@ msgstr "种子" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into " -"destiny." -msgstr "一种不起眼的种子。行动是命运的种子,行动成长为命运。" +"A freshly planted seed. If properly tended to, it could grow into a healthy" +" plant." +msgstr "一颗刚刚种下的种子。在得到正确的照料之后,它可以长成一株健康的植株。" #: lang/json/furniture_from_json.py msgid "seedling" @@ -97687,8 +95199,8 @@ msgstr "幼苗" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." -msgstr "这颗植物才刚刚开始生长。" +msgid "A seed that has just begun to sprout its first roots." +msgstr "一颗刚刚开始发芽的种子。" #: lang/json/furniture_from_json.py msgid "planter" @@ -97706,22 +95218,34 @@ msgid "planter with harvestable plant" msgstr "种植箱(可收获)" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" -msgstr "一种满是土壤和板条的园圃,以便有足够的排水能力。可用于种植农作物。该园圃内已有作物" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." +msgstr "一种满是土壤和板条的园圃,以便有足够的排水能力。上面有一株完全长成的植物,需要靠近仔细查看如何收获。" #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "种植箱(已成熟)" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "一种满是土壤和板条的园圃,以便有足够的排水能力。上面有一株成熟的植物,不久就可以收获了。" + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "种植箱(已播种)" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "一种满是土壤和板条的园圃,以便有足够的排水能力。上面有一颗刚刚种下的种子,需要细心照料才能成长。" + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "种植箱(有幼苗)" @@ -97729,9 +95253,9 @@ msgstr "种植箱(有幼苗)" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" -msgstr "一种满是土壤和板条的园圃,以便有足够的排水能力。可用于种植农作物。该园圃内已有幼苗" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." +msgstr "一种满是土壤和板条的园圃,以便有足够的排水能力。上面有一颗刚刚开始发芽的种子。" #: lang/json/furniture_from_json.py msgid "spider egg sack" @@ -97740,9 +95264,9 @@ msgstr "蜘蛛卵袋" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." -msgstr "非常大的灰白色卵袋。有点恶心,里面有东西在移动。" +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." +msgstr "一些巨大的白色卵囊。仔细观察时,你可以看到它们在微微地移动。真恶心。" #: lang/json/furniture_from_json.py msgid "splat!" @@ -97751,16 +95275,17 @@ msgstr "啪!" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." -msgstr "球状的蜘蛛卵团。不只是有点恶心。里面有东西在动。" +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." +msgstr "一团球状的白色蜘蛛卵。仔细观察时,你可以看到它们在微微地移动。真恶心。" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're" -" seeing this, you're already too close to it." -msgstr "一个大得吓人的卵袋。有东西在里面移动。如果你看到这个,你已经离它太近了。" +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." +msgstr "一些巨大的蜘蛛卵囊,每一个都比你的拳头大。它们肯定在四处移动。真恶心,一看到它就会让你浑身起鸡皮疙瘩。" #: lang/json/furniture_from_json.py msgid "ruptured egg sack" @@ -97768,8 +95293,10 @@ msgstr "蜘蛛卵袋(破裂)" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." -msgstr "太恶心了,蜘蛛从里面涌了出来。" +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." +msgstr "一个巨大的已经裂开的恶心的蜘蛛卵囊。光是想到巨大的蜘蛛宝宝从里面涌出来的念头就足够可怕了。" #. ~ Description for swamp gas #: lang/json/furniture_from_json.py @@ -97819,10 +95346,9 @@ msgstr "壁炉" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." -msgstr "一个在室内靠墙砌的生火取暖用的设备。" +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." +msgstr "一个常见的家具,用于在室内安全地生火,还有一个烟囱将烟雾排出到室外。但在点燃时单独离开也可能会导致危险。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -97842,14 +95368,29 @@ msgstr "火炉" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." -msgstr "一个用于加热和烹饪食物的火炉,可添加木柴等材料以生火。" +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." +msgstr "一个简单的金属炉子,用来存放木材生火。适合用来烹调或加热食物,在室内能安全使用。" #. ~ Description for brazier #: lang/json/furniture_from_json.py msgid "A raised metal dish in which to safely burn things." msgstr "一个金属盆,用于安全的燃烧物品。" +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "一个用来烧火的大金属桶。它的桶壁上有多个孔以保障空气供应。" + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "一个用来烧火的大金属桶。它的桶壁上有多个孔以保障空气供应。" + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "火塘" @@ -97999,9 +95540,9 @@ msgstr "马洛斯花" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" -msgstr "这朵花和其它被真菌吞噬的花很相似,但是它的球茎是一种鲜艳的青色,并且散发着刺鼻的香味。不过这香味却让你觉得它……会很好吃?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." +msgstr "这朵花和其它被真菌吞噬的花很相似,但是它的球茎是一种鲜艳的青色,它散发出一种令人难以置信的诱人香气。" #: lang/json/furniture_from_json.py msgid "poof." @@ -98011,9 +95552,9 @@ msgstr "噗。" #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." -msgstr "这朵花长满了灰色的、有弹性的菌类卷须,其花瓣和茎部的颜色已经被淋褪色了。它轻轻地按自己的意志摇摆着。" +"color has been leached from its petals and stem. It gently sways of its own" +" volition, maintaining an unsettling rhythm." +msgstr "这朵花长满了灰色的、有弹性的菌类卷须,其花瓣和茎部的颜色已经被淋褪色了。它轻轻地按自己的意志摇摆着,保持着一种令人不安的节奏。" #: lang/json/furniture_from_json.py msgid "fungal mass" @@ -98023,8 +95564,8 @@ msgstr "真菌团" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." -msgstr "厚厚的真菌物质已经完全覆盖了这里的地面。它摸起来很软,但你会陷进去,让你很难穿过它。" +"soft to the touch, but not firm enough to hold any weight." +msgstr "厚厚的真菌物质已经完全覆盖了这里的地面。它摸起来很软,但不足以承受任何重量。" #: lang/json/furniture_from_json.py msgid "fungal clump" @@ -98033,8 +95574,9 @@ msgstr "真菌灌丛" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." -msgstr "畸形的霉菌和茎在这里紧密缠绕,形成了一种真菌丛。" +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." +msgstr "畸形的霉菌和茎在这里紧密缠绕,左右摇摆并编织在一起,形成了一种真菌丛。" #: lang/json/furniture_from_json.py msgid "fungal tangle" @@ -98057,8 +95599,8 @@ msgstr "石板" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." -msgstr "一块沉重的石板。" +msgid "A slab of heavy stone, with a reasonably flat surface." +msgstr "一块厚重的石板,表面相当平坦。" #: lang/json/furniture_from_json.py msgid "headstone" @@ -98066,8 +95608,12 @@ msgstr "墓石" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." -msgstr "一块墓石,标记着某人的安息之处。" +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" +"一块巨大的石板,刻有关于埋在其下方的死者信息。虽然它冷峻地提醒着你大灾变所带来的无数逝者,但作为一处适当的最后安息之地,它却给你带来一种奇怪的平静感。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -98081,8 +95627,12 @@ msgstr "墓碑" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." -msgstr "一块墓碑,标记着某人的安息之处,比一般墓碑更气派。" +msgid "" +"An upright slab of stone with information engraved on the face about whoever" +" lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" +"一块竖立的巨大石板,刻有关于躺在其下方的死者的信息。虽然它冷峻地提醒着你大灾变所带来的无数逝者,但作为一处适当的最后安息之地,它却给你带来一种奇怪的平静感。" #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -98090,8 +95640,11 @@ msgstr "墓碑(已磨损)" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." -msgstr "一块磨损的墓碑。" +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." +msgstr "一个古老的、被严重侵蚀的墓碑,铭文已经损坏到使人难以辨认的程度。无论是谁被埋在这里,在混乱开始之前,他应该早已幸运地死去了。" #: lang/json/furniture_from_json.py msgid "obelisk" @@ -98099,8 +95652,11 @@ msgstr "方尖碑" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." -msgstr "骄傲的纪念碑。" +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." +msgstr "一座雕刻华丽的雕像,底座上刻着一块雕刻繁复的牌匾。这是为了纪念一个重要的人的去世,一个现在的人仅仅能奢求的愿望。" #: lang/json/furniture_from_json.py msgid "thunk!" @@ -98114,8 +95670,9 @@ msgstr "装配机器人" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." -msgstr "一个耐用的多功能机械臂,末端装有各种工具,用于装配线作业。" +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." +msgstr "一个耐用的多功能机械臂,末端装有各种工具,用于装配线作业。尽管它现在已经完全无法使用了,但拆解它仍然能够获得不少有用的零件。" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "chemical mixer" @@ -98124,9 +95681,9 @@ msgstr "化工混合机" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." -msgstr "可以用它将大量化学品在适当的组合和温度下混合起来。" +"A large vat with a motorized mixing device for combining large quantities of" +" chemicals." +msgstr "一个用于合成大量化学品的带有机动混合装置的大桶。" #: lang/json/furniture_from_json.py msgid "robotic arm" @@ -98135,10 +95692,10 @@ msgstr "机器臂" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." -msgstr "自动化!科学!工业!这个机器人手臂可以完成所有的工作。只是现在没有动力。你可以拆下外壳,通过拆卸取回电子零件。" +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." +msgstr "一个用于装配线的自动机械臂,看起来似乎比专门设计的装配机械臂更为通用。尽管它现在已经没用了,但拆解它可以获得不少有用的零件。" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py @@ -98152,9 +95709,12 @@ msgstr "全自动医疗仪 XI 型" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." -msgstr "一套用于安装和拆卸生化插件的医用手术设备。设定手术进程的操作者的技能决定了它的安装效果。" +"A surgical apparatus used for installation and removal of bionics. The term" +" name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." +msgstr "" +"一个用于安装和移除生化插件的外科器械。“全自动医疗仪”其实是一个错误的名字,因为它只能在预先编程的情况下才能操作,上面用一系列警告标志提醒用户不要在没有专业知识的情况下进行操作。" #: lang/json/furniture_from_json.py msgid "Autodoc operation couch" @@ -98171,10 +95731,9 @@ msgstr "一块舒适的红色沙发,但其上方的各类医疗器械让它看 #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost " -"anything." -msgstr "这基本上是一台高科技洗衣机或洗碗机,它产生的高温蒸汽几乎能杀死任何东西。" +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." +msgstr "一种用高温蒸汽将内容物完全消毒灭菌的装置,杀死其中任何可能的污染物。" #: lang/json/furniture_from_json.py msgid "filled autoclave" @@ -98187,12 +95746,9 @@ msgstr "标本冷藏库" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the " -"inside." -msgstr "" -"当\"寒冷\"还不能满足你时,看看什么叫\"深寒\"吧。它能以零下80摄氏度的低温储存物品。\n" -"\"警告:请勿用舌头舔舐。\"" +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." +msgstr "一种特制的保温冰箱,能维持摄氏-80度的温度,通常只用于保存精密的科学样品。" #: lang/json/furniture_from_json.py msgid "lab workbench" @@ -98225,10 +95781,10 @@ msgstr "水浴槽" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow" -" bacteria. This is great for microbiology, but terrible for preserving " -"food." -msgstr "使培养基保持良好混合的工具,温度刚好适合细菌生长。微生物学利器,但极不建议用于保存食物。" +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." +msgstr "使化学培养基保持良好混合的工具,温度刚好适合细菌生长。不过考虑到目前的情况,更多的细菌可能是你最不需要的事。" #: lang/json/furniture_from_json.py msgid "emergency wash station" @@ -98237,10 +95793,12 @@ msgstr "紧急清洗间" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running" -" water, you could use those attachments to wash harmful chemicals out of " -"your eyes, or to take a pleasant cold shower in a public place." -msgstr "这根杆子安装着很多奇怪的喷嘴和附件。如果有自来水,你可以用它们把有害的化学物质从眼睛里洗掉,或者你也可以在公共场所洗个冷水澡。" +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." +msgstr "" +"一个立起来的水槽,有一对喷嘴,还有一个颜色鲜艳的大手柄。它经过专门设计,能够迅速清除进入眼睛的污染物,而且能在看不见东西时容易使用。上面贴着一张相当大的告示警告不要喝它所用的水。" #: lang/json/furniture_from_json.py msgid "IV pole" @@ -98248,8 +95806,10 @@ msgstr "静脉输液架" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." -msgstr "严格意义上,这只是一个带着轮子的可移动支架。" +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." +msgstr "一个高高的铁丝架,底下安装了一套小轮子,它可以挂上静脉注射袋,用于无人值守时的静脉注射。" #: lang/json/furniture_from_json.py msgid "high performance liquid chromatographer" @@ -98259,11 +95819,11 @@ msgstr "高性能液相色谱仪" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on" +" their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" -"对于拥有专业知识的用户而言,这是一种可在液相或水相基础上分离化学物的非常有效的高科技工具,被处理的化学物应被装在试管内。换言之,这是一种分离物品的奇特方式。" +"对于拥有专业知识的用户而言,这是一种可在液相或水相基础上根据其亲和性质不同来分离化学物质的非常有效的高科技工具,被处理的化学物应被装在试管内。至少,标签上是这么说的。" #: lang/json/furniture_from_json.py msgid "gas chromatographer" @@ -98273,11 +95833,11 @@ msgstr "气相色谱仪" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." msgstr "" -"对于拥有专业知识的用户而言,这是一种可在气相基础上分离化学物的非常有效的高科技工具,被处理的化学物应被装在试管内。换言之,这是一种分离物品的奇特方式。" +"对于拥有专业知识的用户而言,这是一种可在气相基础上根据其亲和性质不同来分离化学物质的非常有效的高科技工具,被处理的化学物应被装在试管内。至少,标签上是这么说的。" #: lang/json/furniture_from_json.py msgid "mass spectrometer" @@ -98286,12 +95846,13 @@ msgstr "质谱仪" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other" +" advanced sciences, it's not as useful anymore." msgstr "" -"在这个装置内部有一组精心平衡的电场发生器,它可以根据电离粒子的荷质比精确地分离出它们,并将它们发射到一个探测器中,探测器会测量撞击它的粒子的确切质量。外观上,它看起来像一个非常无聊的白盒子。" +"在这个白色装置内部有一组精心平衡的电场发生器,它可以根据电离粒子的荷质比精确地分离出它们,并将它们发射到一个探测器中,探测器会测量撞击它的粒子的确切质量。对于化学分析和其他先进科学来是无价之宝,不过对你来说它就不那么有用了。" #: lang/json/furniture_from_json.py msgid "nuclear magnetic resonance spectrometer" @@ -98300,11 +95861,10 @@ msgstr "核磁共振光谱仪" #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" -msgstr "一个科幻的空间内摆放着一个巨大的磁铁。这套设备拥有操纵分子键的力量,科学家在这里研究化学结构最深层的奥秘。" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." +msgstr "这是一个巨大的电磁铁,带有精心调谐的测量设备,用来观察磁场如何影响原子核的自旋。它是发现和研究化学物质结构的常用工具。" #: lang/json/furniture_from_json.py msgid "electron microscope" @@ -98313,11 +95873,9 @@ msgstr "电子显微镜" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." -msgstr "" -"一套巨大的设备,利用表面的电子反射原理来观察微小物体。\n" -"\"为虫子的电镜照片而惊叹吧!\"" +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." +msgstr "一台体积巨大的测量仪器,用来研究样品在非常小的原子尺度上的细节。" #: lang/json/furniture_from_json.py msgid "CT scanner" @@ -98326,10 +95884,9 @@ msgstr "CT扫描仪" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of" -" radio-opacity." -msgstr "这个像巨大甜甜圈的设备可以迅速地拍下数百张不同透明度的X光照片,把你的所有内脏都显示出来,看起来真的很酷。" +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." +msgstr "一台巨大的机器,能从360度拍摄数百张X射线图像,通常用于对病人进行体检。" #: lang/json/furniture_from_json.py msgid "MRI machine" @@ -98338,10 +95895,9 @@ msgstr "核磁共振仪" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't" -" excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." -msgstr "这个东西叫NMR,你可以把一个人塞到里面。它的全称是核磁共振成像仪,但没有人喜欢这样叫,所以他们给它起了简称。" +"A massive tool used to take NMR images of a patient placed inside, providing" +" invaluable medical insight." +msgstr "一台巨大的设备,用来拍摄躺在其中的的病人的核磁共振图像,提供了宝贵的医学检测结果。" #: lang/json/furniture_from_json.py msgid "scanner bed" @@ -98350,9 +95906,9 @@ msgstr "扫描器床" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." -msgstr "这是一张窄且不舒服的床,可以把人送进医疗扫描仪或其他类似的机器里。" +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." +msgstr "这是一张狭窄、平坦、坦率地说让人很不舒服的床,可以把人放进成像机进行医学观察。" #: lang/json/furniture_from_json.py msgid "anesthetic machine" @@ -98361,10 +95917,11 @@ msgstr "麻醉机" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." -msgstr "在做手术的时候很难恰到好处地让病人麻醉。这台机器能帮助麻醉师让药物和空气正确混合以保持病人保持睡眠。" +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." +msgstr "" +"一台大型机器,上面有着各种各样的罐子、管道和监测装置,用于维持病人的精确麻醉水平,至少在理想情况下,确保他们能一直保持睡眠状态、毫无知觉但还活着。" #: lang/json/furniture_from_json.py msgid "dialysis machine" @@ -98373,10 +95930,10 @@ msgstr "透析机" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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 "如果你的肾不好使,这是一个大而笨拙的机器,可以代替肾的功能!它在大灾变中非常\"有用\",因为它需要电力、大量的物资和训练有素的操作员才能工作。" +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." +msgstr "一台巨大的机器,用于抽取并过滤肾功能不全的患者的血液。由于生化插件的出现而略显过时,但它却是那些用不起生化插件的人的生命线。" #: lang/json/furniture_from_json.py msgid "medical ventilator" @@ -98385,12 +95942,10 @@ msgstr "医用呼吸机" #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." -msgstr "" -"医生救人时常常用到,看起来就像手推车上的几个盒子。\n" -"\"人只要保持呼吸就不会死!\"" +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." +msgstr "一个带有滚轮的巨大盒子,当病人不能呼吸时,可以将空气泵入或泵出肺中,不过通常只会临时需要使用一段时间。" #: lang/json/furniture_from_json.py msgid "privacy curtain" @@ -98426,7 +95981,7 @@ msgstr "发光卷须" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." +"faint light spills from it." msgstr "一根柔韧的卷须从地板上长出来,轻轻地前后摆动着。微弱的亮光从里面射了出来。" #: lang/json/furniture_from_json.py @@ -98442,7 +95997,7 @@ msgstr "飘动海葵" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." +"even waving gently as though underwater." msgstr "一个肉质的白色生物从地面突起,一串卷须从肉质中伸出。它看起来几乎和海葵一模一样,甚至像在水里一样轻轻地摆动。" #: lang/json/furniture_from_json.py @@ -98454,9 +96009,9 @@ msgstr "肉质钟乳石" msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." -msgstr "这是一种多肉的绿色钟乳石,有像海星一样加厚的皮,从地板一直延伸到天花板。中心是很多像嘴巴一样的的开口,从这些开口中喷出阵阵难闻的气体。" +msgstr "一块肉质的绿色钟乳石,有像海星一样的厚皮,从地板一直延伸到天花板。中心是一系列像嘴一样的开口,从中喷出阵阵难闻的气体。" #: lang/json/furniture_from_json.py msgid "twitching frond" @@ -98465,10 +96020,10 @@ msgstr "摇摆蕨叶" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." -msgstr "一根像飞蛾触须一样的带毛尖刺从地面伸出来,在空中轻轻摇摆。每隔一段时间,它就会向天花板发射出一连串的能量弧。" +"A spine resembling moth antennae juts from the ground, swaying gently in the" +" air. Every so often, a cascade of energy arcs along it and discharges into" +" the ceiling." +msgstr "一根像飞蛾触须一样的带毛尖刺从地面伸出来,在空中轻轻摇摆。每隔一段时间,它就会向天花板射出几道电弧。" #: lang/json/furniture_from_json.py msgid "scarred lump" @@ -98477,9 +96032,9 @@ msgstr "伤痕累累的肉块" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases" -" out of injured vessels." -msgstr "一堆无法分辨清楚的抽搐着的异界血肉,它受伤的血管状结构正向往外喷出奇怪的气体。" +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." +msgstr "一堆无法分辨清楚的异界血肉,它受伤的孔洞正抽搐着向往外喷出奇怪的气体。" #: lang/json/furniture_from_json.py msgid "slimy pod" @@ -98538,9 +96093,11 @@ msgstr "浴缸" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The" -" plug is intact, so you could use it to store liquids." -msgstr "如果有自来水,你可以躺下来洗个舒服的澡。塞子完好无损,所以你可以用它来储存液体。" +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." +msgstr "" +"一个普通的陶瓷浴缸,有一个现在已经出不了水的钢制水龙头和一个固定在下水管上的塞子。它看起来不会漏水,而且也还算干净,也许能够当作一个不错的水槽。" #: lang/json/furniture_from_json.py msgid "porcelain breaking!" @@ -98556,8 +96113,11 @@ msgstr "淋浴器" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." -msgstr "一个供淋浴用的淋浴器,已停水。" +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to" +" imagine wasting that much water." +msgstr "一个小小的封闭陶瓷房间,有一扇玻璃门和用来清洗身体的管道装置。以前这不过是一项日常生活设施,但现在很难想象谁会浪费那么多水洗澡。" #: lang/json/furniture_from_json.py msgid "sink" @@ -98566,8 +96126,9 @@ msgstr "水槽" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." -msgstr "一个常用于洗净餐具、食物的仪器,已停水,无法使用。" +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." +msgstr "一个带水龙头和排水管的陶瓷水盆,设计成安装在橱柜上的开口中。" #: lang/json/furniture_from_json.py msgid "toilet" @@ -98576,9 +96137,11 @@ msgstr "坐便器" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." -msgstr "一个常见于厕所的排水用卫生器具,水箱中的水可作为紧急水源使用。" +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the " +"cleanest." +msgstr "在任何一个家庭里都是宝贵的家具,但现在想找到一个还能用的就是奇迹了。立式水箱里可能还存着一些水,但虽然比便盆里的要好,但也不会太干净。" #: lang/json/furniture_from_json.py msgid "water heater" @@ -98587,16 +96150,17 @@ msgstr "热水器" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." -msgstr "装有水的绝缘金属罐,通过小的气体火焰保持在一定的温度。" +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." +msgstr "一个绝缘金属罐,自带的加热器能保证内部水温接近沸点。现在已经没有办法给它供电了,但水箱仍然可以用来储存大量的净水。" #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." -msgstr "这样可以去除溶解在水中的离子,使之变得非常干净,如果你关心这类事情的话。" +"This devices effectively sterilizes water, though without a lot of power and" +" proper plumbing, it's only good for parts now." +msgstr "这种装置能有效地净化水,但现在已经没有电力供应和合适的管道,它只能被拆解获得零件。" #: lang/json/furniture_from_json.py msgid "exercise machine" @@ -98605,9 +96169,11 @@ msgstr "健身器" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." -msgstr "一个健身器材,已停电,无法运行。" +"A heavy set of weightlifting equipment for strength training, with a pair of" +" heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." +msgstr "一套沉重的用于力量训练的举重设备,一对杠铃片固定在一根结实的钢管两端。重量相当可观,在没有辅助观察者的情况下使用它们很容易对自己造成重伤。" #: lang/json/furniture_from_json.py msgid "ball machine" @@ -98616,10 +96182,10 @@ msgstr "发球机" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various" -" balls for different types of sports. It's only good for parts now if " -"disassembled." -msgstr "这台没有动力的机器似乎可以用来发射各种不同运动项目的球。现在只适合拆解零件了。" +"A simple machine for launching sports balls of various types, with a pair of" +" motorized wheels that, if spun up, would fling the ball at moderate speeds." +" Probably not the most effective ranged weapon against the undead." +msgstr "一台能发射各种类型的球的简单机器,带有一对电动轮,如果旋转起来,能按照可控的速度投球。它可能不是用来对付不死人的最有效的远程武器。" #: lang/json/furniture_from_json.py msgid "pool table" @@ -98627,8 +96193,12 @@ msgstr "台球桌" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." -msgstr "一张精致的台球桌。" +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." +msgstr "一张上面铺着绿色毛毡毯的大木桌,还有六个对称的孔,孔下有能将台球带到一侧开口处的轨道。虽然不像普通桌子那么有用,但它可是用大量木头制成的。" #: lang/json/furniture_from_json.py msgid "diving block" @@ -98636,8 +96206,10 @@ msgstr "跳水台" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" -msgstr "一个用于跳进泳池的台子。" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." +msgstr "一个一侧被螺栓固定在地面上的厚塑料板,用来让你安全地跳入水中。" #: lang/json/furniture_from_json.py msgid "target" @@ -98645,8 +96217,14 @@ msgstr "靶子" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." -msgstr "一个金属制成的人形射击靶。" +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped" +" off." +msgstr "" +"一块长金属板,由一个钢管支架立起来,被切割成大致像人的形状。上面画着两个靶子,一个大靶子在躯干,一个小靶子在头部。它上面布满了凹痕和孔洞,大部分油漆已经剥落了。" #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -98655,10 +96233,9 @@ msgstr "街机" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." -msgstr "玩这愚蠢的游戏,赢得愚蠢的奖品。无论如何,这就是我的想法。但是现在没有电力了,只能拆卸各种有用的电子零件了。" +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." +msgstr "一台笨重的立式街机游戏机,色彩鲜艳,因长年使用而略微磨损。它原本的功能已经完全无法使用,不过应该还有一些有价值的零件。" #: lang/json/furniture_from_json.py msgid "pinball machine" @@ -98667,10 +96244,12 @@ msgstr "弹珠机" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't" -" go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." -msgstr "20世纪最被低估的游戏。按下按钮,保证弹珠不会进洞。没有电它似乎不能工作。可拆卸用于各种电子零件。" +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While" +" inoperable without power, it's still impressive to look at, though probably" +" more useful if disassembled." +msgstr "" +"作为一款具有标志性的游戏,这台游戏机在其复杂的障碍道后有色彩明亮的背景装饰,上方盖着一大片长玻璃。虽然在没有电源的情况下无法操作,但它的外观依然让你印象深刻,它拆解后的零件可能更有用。" #: lang/json/furniture_from_json.py msgid "ergometer" @@ -98679,9 +96258,10 @@ msgstr "划船健身器" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." -msgstr "划船健身器。没有动力,不能再用来锻炼身体,但可能能拆出些有用的电子零件。" +"An exercise machine with a set of handles and plates meant to emulate rowing" +" a boat. Without power it can't be operated, but it might have useful parts" +" to be scavanged." +msgstr "一台锻炼身体的机器,有一套手柄和滑板,用来模拟划船。如果没有供电,它就不能运行,但它可能有一些能回收的有用零件。" #: lang/json/furniture_from_json.py msgid "treadmill" @@ -98690,9 +96270,10 @@ msgstr "跑步机" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be" -" taken apart for its… parts." -msgstr "用于训练腿部肌肉。如果没有外部电源的话,它会难以启动。可以拆开它获得它的……零件。" +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." +msgstr "一根带控制面板的电动传送带。没有动力,想再让皮带动起来会是巨大的挑战。不管怎么说,你自己可能已经进行了足够多的有氧运动了。" #: lang/json/furniture_from_json.py msgid "heavy punching bag" @@ -98701,9 +96282,10 @@ msgstr "训练沙袋" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" -msgstr "一个用于练习实战搏击的沙袋。" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." +msgstr "一个长条形的沉重皮袋,用铁链吊在天花板下。它可以用于锻炼身体训练近战,显著的优点是它不会反击。" #: lang/json/furniture_from_json.py msgid "whud." @@ -98716,9 +96298,10 @@ msgstr "钢琴" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." -msgstr "乌木和象牙制成。提高了整个地方的情调。如果你想的话,你可以把它拆掉……你这个魔鬼。" +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." +msgstr "一台优雅的钢琴,在熟练的演奏者手中能演奏出优美的音乐。一组黑白相间的琴键与一组击锤相连,击锤敲击对应被缠紧的金属丝发出声音。" #: lang/json/furniture_from_json.py msgid "a suffering piano!" @@ -98735,10 +96318,10 @@ msgstr "扬声器柜" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things" -" loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." -msgstr "一个装有12英寸扬声器的柜子,用来发出各种声音。现在它不能用于它原来的用途,但它可以分解成各种电子部件。" +"An upright wood-panel case of large speakers, built to produce a potentially" +" deafening volume level. While this is a terrible idea to use now, it could" +" hold useful parts." +msgstr "一个像直立木板箱的大型扩音器,能放出震耳欲聋的音量。虽然现在使用它会是个非常糟糕的主意,但你还是能拆解获得有用的零件。" #: lang/json/furniture_from_json.py msgid "dancing pole" @@ -98746,8 +96329,11 @@ msgstr "跳舞管" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." -msgstr "用于跳钢管舞的长金属杆,底部和顶部被固定在墙上。" +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." +msgstr "一根垂直安装的长钢管,被牢固地固定在天花板和地板上。通常用于跳钢管舞,安装在成人场所之中。" #: lang/json/furniture_from_json.py msgid "roulette table" @@ -98755,23 +96341,35 @@ msgstr "轮盘赌台" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." -msgstr "一张大的有划痕的轮盘赌台。" +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." +msgstr "一张专门为轮盘赌而制作的大桌子,上面画着一圈格子,还有一个凸起的转轮,随机选择所有可能的号码。" -#. ~ Description for this should never actually show up, it's a pseudo -#. furniture #: lang/json/furniture_from_json.py msgid "this should never actually show up, it's a pseudo furniture" msgstr "这件家具不应该出现在你的游戏里,这是一个占位家具。" +#. ~ Description for this should never actually show up, it's a pseudo +#. furniture +#: lang/json/furniture_from_json.py +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." +msgstr "这是虚拟家具,不应该真的出现。请报告此错误。" + #: lang/json/furniture_from_json.py msgid "cell phone signal booster" msgstr "手机信号增强器" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." -msgstr "手机信号增强器,现在也许只有零部件还有点用。" +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." +msgstr "一种特殊的设备,能接收手机信号并将其放大以便其更清晰地传输至更远的目的地。现在已经没有信号让它放大了,它现在只能被拆解来获得零件。" #: lang/json/furniture_from_json.py msgid "womp!" @@ -98783,8 +96381,11 @@ msgstr "卫星电视碟形天线" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." -msgstr "家庭娱乐用的小型卫星天线。" +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." +msgstr "一个用来接收轨道卫星无线电波的小金属盘。卫星毫无疑问将继续环绕轨道运行,但不会再有广播信号了。" #: lang/json/furniture_from_json.py msgid "chimney crown" @@ -98792,8 +96393,10 @@ msgstr "烟囱顶部" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." -msgstr "烟囱的顶部,看起来满是煤烟。" +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." +msgstr "一个由砖块搭建的烟囱的顶部,洞口被煤烟染成了黑色。太窄了,你肯定塞不进去。" #: lang/json/furniture_from_json.py msgid "TV antenna" @@ -98801,8 +96404,11 @@ msgstr "电视天线" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." -msgstr "电视天线提高了电视的接收能力。" +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." +msgstr "一根简单的金属天线,用于增强所接受到底无线电视广播信号。这几年来几乎完全过时了,现在它更是只能被拆解成零件了。" #: lang/json/furniture_from_json.py msgid "vent pipe" @@ -98810,8 +96416,10 @@ msgstr "通风管" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." -msgstr "管道通风管可以更新建筑物中的气体和气味。" +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." +msgstr "一根用于建筑物内部通风系统的管道,可用于空气循环、排气或其他类似功能。" #: lang/json/furniture_from_json.py msgid "roof turbine vent" @@ -98820,8 +96428,10 @@ msgstr "屋顶涡轮通风口" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py msgid "" -"The turbine uses wind power to suck hot and humid air out of the attic." -msgstr "涡轮机利用风力将湿热的空气从阁楼中吸出。" +"A rotary wind turbine that will catch the wind and pull out air from inside." +" It is most commonly used for improving air cicrulation, particularly in " +"poorly-ventilated areas like attics." +msgstr "一种旋转的风力涡轮机,它能利用风能从管道内部排出空气。它最常用于改善空气流通,特别是在通风不良的地方,例如阁楼。" #: lang/json/furniture_from_json.py msgid "bale of hay" @@ -98829,8 +96439,11 @@ msgstr "干草堆" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." -msgstr "一捆干草。在万般无奈时,你可以在上面睡一觉。" +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable" +" bed." +msgstr "一堆被压成块状的干草,便于储存以供牲畜所需。而且当你另一个选择是地板时,它也能够当作一张勉强能被你忍受的床使用。" #: lang/json/furniture_from_json.py msgid "whish!" @@ -98842,8 +96455,11 @@ msgstr "碎木屑" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." -msgstr "一堆碎木屑。你可以用铲子移除它。" +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the" +" way." +msgstr "一大堆碎木屑。躺在上面很不舒服,很难从其中穿过,而且火灾隐患也很大,最好把它铲走。" #: lang/json/furniture_from_json.py msgid "bench" @@ -98851,8 +96467,10 @@ msgstr "长椅" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." -msgstr "一个常见于公园等场所的长条椅子。" +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." +msgstr "一只简单的长凳,由框架和钉在上面的几根木板条组成。虽然它平坦得让人不舒服,而且和地上一样冷,但实在需要时也能当作一张床使用。" #: lang/json/furniture_from_json.py msgid "arm chair" @@ -98860,8 +96478,10 @@ msgstr "扶手椅" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." -msgstr "一个有扶手的背靠椅,相比于小椅子更加舒适。" +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." +msgstr "一把样式简单带有扶手的软垫椅。十分柔软且相当温暖,绝对比睡在地上要好,虽然好得不多。" #: lang/json/furniture_from_json.py msgid "airplane seat" @@ -98869,18 +96489,22 @@ msgstr "飞机座位" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." -msgstr "装着安全带的飞机座位。" +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." +msgstr "一把廉价的软垫折叠式飞机座椅,它有一个简单的搭扣式安全带。你可能不是第一个睡在这上面的人。" #: lang/json/furniture_from_json.py msgid "chair" msgstr "椅子" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." -msgstr "一个供人坐下的简易椅子。" +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat" +" a meal properly and almost pretend that things were normal again." +msgstr "一把简单的木制椅子,有四条腿,一个椅座和一个靠背。能让你的脚好好休息一会,如果再加上一张合适的桌子,你可以好好吃一顿饭,假装一切正常了。" #: lang/json/furniture_from_json.py msgid "sofa" @@ -98888,17 +96512,30 @@ msgstr "沙发" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" -msgstr "躺下或坐下!完美!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." +msgstr "一张宽大的带有软垫的长沙发,足够两个人舒适地坐在一起,或一个人躺在上面。还算不上是一张正式的床,但比地板舒服多了。" #: lang/json/furniture_from_json.py msgid "stool" msgstr "凳子" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "一把简单的凳子,有四条腿和一个座位。虽然坐起来更灵活,但缺乏背部支撑意味着它明显不如普通椅子舒适。" + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." -msgstr "坐下,喝一杯。这张椅子可以折叠方便携带。" +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." +msgstr "一把有点不舒服的折叠椅,由套在金属架上的织物构成。不是最好的,但总比什么都没有要强,而且收起来要容易得多。" #: lang/json/furniture_from_json.py msgid "log stool" @@ -98907,9 +96544,9 @@ msgstr "圆木凳" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." -msgstr "一块立在地上的圆木,粗糙的边缘已经被削掉,基本上就是一个简单的凳子。" +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." +msgstr "一小段从树干上取下来的原木,其中一端被磨平。它是块坐下来的好地方,但还算不上一把真正的椅子。" #: lang/json/furniture_from_json.py msgid "deck chair" @@ -98918,8 +96555,10 @@ msgstr "日光浴躺椅" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." -msgstr "一张舒适的日光浴躺椅。要是你有时间这么做就好了。" +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground," +" it's not particularly comfortable." +msgstr "一把可折叠的躺椅,由安装在木框架上的织物构成。虽然它是为了户外环境而建造的,而且比起躺在地上要好得多,但它其实不太舒适。" #: lang/json/furniture_from_json.py msgid "bulletin board" @@ -98928,9 +96567,9 @@ msgstr "公告牌" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." -msgstr "一个巨大的软木公告牌,能发出各种告示。在上面贴些需要留给其他幸存者的信息。" +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." +msgstr "一个宽大的木制框架,上面安了一块软木板。很适合贴上各种信息,让其他幸存者阅读。" #: lang/json/furniture_from_json.py msgid "sign" @@ -98938,8 +96577,10 @@ msgstr "标志" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." -msgstr "一个提示前方可能有危险的标记。" +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." +msgstr "一个木头做的简单路标。基本上是两块木板并排钉在另一块支撑它们的木板上。" #: lang/json/furniture_from_json.py msgid "warning sign" @@ -98948,9 +96589,9 @@ msgstr "警示标记" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." -msgstr "柱子上的三角形标志,用来表示重要的或危险的东西。" +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." +msgstr "一个红边白底的三角形路标。很容易引人注意,这种路标上的提示大多数时候都是坏消息。" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "bed" @@ -98959,8 +96600,10 @@ msgstr "床铺" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." -msgstr "这是张床。在这个时代是一种奢侈。睡着很舒服。" +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." +msgstr "一个标准床垫,被安放在坚固的木制框架。即便是没有毯子或枕头,而且除了一个普通的床垫外什么也没有,它也是你酸胀而疲倦的眼睛喜闻乐见的景象。" #: lang/json/furniture_from_json.py msgid "bunk bed" @@ -98968,8 +96611,12 @@ msgstr "双层床" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." -msgstr "一张有足以睡下两个人的床垫的木制双人床。" +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than" +" you'd like to somebody you wouldn't normally want to share a mattress with," +" a bed's a bed." +msgstr "一张双层床,带有一个坚固的木制框架,上下各放了两张单人床垫。虽然这通常意味着你需要和你不想共用同一张床的其他人睡在上下铺,但是床就是床。" #: lang/json/furniture_from_json.py msgid "bed frame" @@ -98978,9 +96625,9 @@ msgstr "床架" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place" -" to sleep. Sleeping on it right now wouldn't be great." -msgstr "空空的床架子,摆上床垫就是个睡觉的地方,问题是没有床垫。" +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." +msgstr "一个坚固的木制床架,能放下大多数标准床垫。尽管已经称得上是半张双人床了,但一个人躺在这上面睡觉是几乎不可能的。" #: lang/json/furniture_from_json.py msgid "whack." @@ -98989,9 +96636,10 @@ msgstr "喀啦!" #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's" -" not quite as comfy as a real bed, but it's pretty close." -msgstr "一张舒适的床垫被扔在地板上。它不像一张真正的床那么舒适,但也相当接近了。" +"An ordinary mattress left on the floor. While it's not as comfortable as an" +" entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." +msgstr "放在地板上的普通床垫。虽然它不像一张没有床垫的床那么舒适,但也差不多。如果你能在一个真正安全的地方用它入睡,这本身就是一种奢侈。" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py src/map.cpp @@ -99001,10 +96649,12 @@ msgstr "咝啦!" #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty " -"close." -msgstr "一张舒适的羽绒床垫被扔在地板上。它不像一张真正的床那么舒适,但也相当接近了。" +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." +msgstr "" +"放在地板上的用柔软羽毛填充的床垫。虽然它不像一张没有床垫的床那么舒适,但也差不多。如果你能在一个真正安全的地方用它入睡,这本身就是一种奢侈。" #: lang/json/furniture_from_json.py msgid "makeshift bed" @@ -99012,8 +96662,11 @@ msgstr "简易床" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "一个用木板临时搭成的床,不够舒适,用于休息。" +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal" +" bed, albeit with a slightly lumpy mattress. Considering the circumstances," +" it's not too bad at all." +msgstr "放在软木架上的简易床垫。几乎和普通床一样好,尽管床垫有点厚。考虑到现在的条件,这已经不错了。" #: lang/json/furniture_from_json.py msgid "straw bed" @@ -99021,8 +96674,10 @@ msgstr "稻草床" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." -msgstr "一个稻草扎成的床,不够舒适,用于休息。" +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." +msgstr "用干草做成的简易床垫。总比什么都没有好,但不是特别舒服,而且还挺痒的。" #: lang/json/furniture_from_json.py msgid "bookcase" @@ -99030,8 +96685,10 @@ msgstr "书架" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" -msgstr "一个专门用来存放书籍、报刊 、杂志等书物的柜子。" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." +msgstr "用来存放几十本书的简易木制架子。虽然它是专为存放书籍而设计的,但它能很好地存储任何适合的东西。" #: lang/json/furniture_from_json.py msgid "entertainment center" @@ -99039,8 +96696,11 @@ msgstr "家娱中心" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." -msgstr "一整套用于存放视听设备,书籍和收藏品的家具。" +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden" +" cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." +msgstr "虽然这个大木柜本身并不像这个名字所暗示的那么酷,但它可以放下各种各样的东西,比如电视和娱乐设备,而且还有用来摆放各类装饰的架子和橱柜。" #: lang/json/furniture_from_json.py msgid "coffin" @@ -99048,8 +96708,13 @@ msgstr "棺材" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." -msgstr "保存着在大灾变中被杀害的无数人的尸体。" +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will" +" likely never receive." +msgstr "" +"一个用来埋葬死者的简陋木制棺材。虽然在大灾变之前是常见的仪式,但现在给一个人一处合适的安息之所已经成为一种罕见的荣誉,一项无数人可能永远得不到的荣誉。" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "wham!" @@ -99062,9 +96727,12 @@ msgstr "棺材(开)" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." -msgstr "当时机成熟时,你只能希望自己看起来足够好。" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." +msgstr "" +"一个用来埋葬死者的简陋木制棺材。虽然在大灾变之前是常见的仪式,但现在给一个人一处合适的安息之所已经成为一种罕见的荣誉。这个棺材已经被撬开了,没被人占据,凝视其中让你内心充满了一种忧郁的疲倦感。" #: lang/json/furniture_from_json.py msgid "crate" @@ -99073,9 +96741,11 @@ msgstr "板条箱" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." -msgstr "里面是什么?撬开它找出答案!或者只是砸了它,但你可能会弄坏里面的东西。" +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." +msgstr "" +"一个密封的木板储藏箱。没有任何标签,任何东西都可能被存在它里面。如果你没有能撬开它的合适工具,直接砸碎它也是一种选择,尽管可能会毁坏里面的物品。" #: lang/json/furniture_from_json.py msgid "open crate" @@ -99083,15 +96753,21 @@ msgstr "板条箱(开)" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" -msgstr "一个被撬开的板条箱,可以使用钉子与木板将其重新封上。" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of" +" nails, could be sealed back shut." +msgstr "一个打开的木板储藏箱,能装下任何东西。盖子已经被人撬开,靠在一旁,找来一些新的钉子就能重新把盖子封好。" #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." -msgstr "一个大纸板箱:可以用来存放东西,也可以作为藏匿的地方。" +"A large box made of a brown paper-based material. Could contain a number of" +" things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect" +" you if you're found." +msgstr "" +"一个用棕色纸板制成的大箱子。任何东西都可能被存在里面,甚至能让你藏在里面。考虑到它只有开了两个便于搬运的开槽,躲在其中看不见外面,而且如果你被发现了,这玩意也无法保护你。" #: lang/json/furniture_from_json.py msgid "crumple!" @@ -99103,21 +96779,26 @@ msgstr "砰的一声。" #: lang/json/furniture_from_json.py msgid "dresser" -msgstr "穿衣柜" +msgstr "衣柜" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." -msgstr "一个装有穿衣镜的柜子。" +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." +msgstr "一个简单的木头柜子,上面有一排短抽屉。虽然它是用来储存衣服的,但也没有什么能阻止你储存任何塞得进的东西。" #: lang/json/furniture_from_json.py msgid "glass front cabinet" -msgstr "玻璃前柜" +msgstr "玻璃柜" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." -msgstr "带有透明玻璃窗的高大储物柜。" +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." +msgstr "一个高大的金属柜子,前面有片玻璃,能看见放在里面的物品。通常用于展示稀有的、令人赏心悦目的或是非常昂贵的物品,奇怪的是它没有锁。" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -99131,8 +96812,13 @@ msgstr "枪用保险柜" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." -msgstr "一个用于储存枪械的特殊容器,此款使用机械密码。" +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." +msgstr "" +"一个巨大而沉重的容器,有着厚厚的金属壁和旋转式组合锁,能够安全地储存枪械,武器模组和弹药。如果找来能仔细听它声音的工具,并花上很多时间,你也许能打开它。" #: lang/json/furniture_from_json.py msgid "screeching metal!" @@ -99144,8 +96830,11 @@ msgstr "枪用保险柜(已卡死)" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." -msgstr "卡住了!你可能永远不会知道里面有没有枪。" +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." +msgstr "一个用于储存枪械和弹药的坚固耐用的金属保险柜。不幸的是,锁已经完全坏了,而且没有特制的机器,你没可能打开它。" #: lang/json/furniture_from_json.py msgid "electronic gun safe" @@ -99153,8 +96842,12 @@ msgstr "电子枪用保险柜" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" -msgstr "一个用于储存枪械的特殊容器,此款使用电子密码。" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking" +" system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." +msgstr "一个巨大而沉重的容器,有着厚厚的金属壁和电子锁,能够安全地储存枪械,武器模组和弹药。如果有破解电子锁的办法的话,你也许能打开它。" #: lang/json/furniture_from_json.py msgid "locker" @@ -99162,8 +96855,10 @@ msgstr "锁柜" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." -msgstr "一个用以储存装备或物品的金属柜子。" +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." +msgstr "一个高大的金属柜,能储存任何能装下的物品。" #: lang/json/furniture_from_json.py msgid "mailbox" @@ -99172,9 +96867,10 @@ msgstr "邮箱" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come" -" for awhile. Doesn't look like it's coming again anytime soon." -msgstr "固定在木柱顶部的金属盒子。邮件投递已经有一段时间没来了。看上去也不会再有新邮件来了。" +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." +msgstr "一个安装在木桩上的金属小盒子,用来接收邮件。不过考虑到现在的情况,它很可能再用不上了。" #: lang/json/furniture_from_json.py msgid "clothing rail" @@ -99182,8 +96878,11 @@ msgstr "挂衣杆" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." -msgstr "一个用来挂衣服的栏杆。" +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes." +" Usually used in theater or retail environments, it's easy to use and quick" +" to access." +msgstr "一个底下带有滚轮的金属框架,能挂上大量衣物。通常用于剧院或购物场所,它易于使用而且很方便。" #: lang/json/furniture_from_json.py msgid "display rack" @@ -99191,8 +96890,10 @@ msgstr "展架" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." -msgstr "一个常见于超市等场所的金属展架,多用于陈列物品。" +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." +msgstr "一个由金属板制成的货架,上面放货品的金属板略微向外倾斜,能更好地展示所放置的商品。" #: lang/json/furniture_from_json.py msgid "wooden rack" @@ -99200,8 +96901,10 @@ msgstr "木架" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." -msgstr "一个简单的木架。在上面展示你的物品。" +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." +msgstr "一个由木板制成的货架,上面放货品的木板略微向外倾斜,能更好地展示所放置的商品。" #: lang/json/furniture_from_json.py msgid "coat rack" @@ -99209,8 +96912,10 @@ msgstr "衣帽架" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." -msgstr "一个用来挂外套和帽子的钩状架子。" +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." +msgstr "一根高高的木杆,上面有许多钩子,用来存放户外夹克和帽子,以便随时取用。" #: lang/json/furniture_from_json.py msgid "recycle bin" @@ -99218,8 +96923,13 @@ msgstr "可回收垃圾箱" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." -msgstr "存放可以回收的垃圾。" +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it." +" While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." +msgstr "" +"一个被漆成绿色的大塑料桶,上面印有“可回收”的符号。虽然它是用来存放准备被送回工厂处理的废弃物的,但最近发生的剧变意味着它可能存放着对你很有价值的材料。" #: lang/json/furniture_from_json.py msgid "safe" @@ -99227,13 +96937,18 @@ msgstr "保险箱" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." -msgstr "一个用于保存珍贵物品的特殊容器,此款使用机械密码。" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." +msgstr "一个笨重的完全无法被强行打开的小型金属箱子,上面有个旋转式组合锁。不过,它并不是真的被锁上了,只是关上了。" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" -msgstr "有什么东西需要这种保险呢?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." +msgstr "一个笨重的完全无法被强行打开的小型金属箱子,上面有个旋转式组合锁。如果找来能仔细听它声音的工具,并花上很多时间,你也许能打开它。" #: lang/json/furniture_from_json.py msgid "open safe" @@ -99241,8 +96956,10 @@ msgstr "保险箱(开)" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" -msgstr "请尽情取用。" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." +msgstr "一个笨重的完全无法被强行打开的小型金属箱子,上面有个旋转式组合锁。它的门现在开着,里面的东西可不保险了。" #: lang/json/furniture_from_json.py msgid "trash can" @@ -99250,17 +96967,23 @@ msgstr "垃圾桶" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." -msgstr "一个用于丢放垃圾的小桶,也可以当作一个普通的桶来用。" +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." +msgstr "一个塑料垃圾桶,用于储存垃圾,以便后续丢弃处理。不过,考虑到现在的情况,也许值得看看里面装着什么。" #: lang/json/furniture_from_json.py msgid "wardrobe" -msgstr "衣柜" +msgstr "大衣柜" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." -msgstr "一件很高的家具——总的来说是一个独立式的壁橱。" +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." +msgstr "一个非常大的存放衣物的木制柜子,实际上是一个直立的壁橱。当然理论上也可以用来存储其他任何能装下的物品。" #: lang/json/furniture_from_json.py msgid "filing cabinet" @@ -99269,10 +96992,9 @@ msgstr "档案柜" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." -msgstr "这个坚固的金属柜里有许多抽屉,用于存放文件。它可以上锁,来保护重要的信息。如果你幸运的话,在附近找找也许能找到钥匙。" +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." +msgstr "一个用来存放各种文件档案的金属抽屉架。现在看,里面的文档应该早就没有了任何价值。" #: lang/json/furniture_from_json.py msgid "utility shelf" @@ -99280,8 +97002,10 @@ msgstr "实用货架" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." -msgstr "一个由重型塑料和金属组合成的简易货架。" +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools" +" and materials for easy access to workers." +msgstr "一个简单耐用的由塑料和金属制成的货架,用来存储工具和材料,便于工人们使用。" #: lang/json/furniture_from_json.py msgid "warehouse shelf" @@ -99290,9 +97014,8 @@ msgstr "仓库货架" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." -msgstr "一个由金属制成的大而坚固的货架,用于在仓库中存放货盘和板条箱。" +"A huge, sturdy steel shelf for storing pallets of crates in warehouses." +msgstr "一个由钢材制成的巨大而坚固的货架,用于在仓库中存放货盘和板条箱。" #: lang/json/furniture_from_json.py msgid "wooden keg" @@ -99300,8 +97023,10 @@ msgstr "木制酒桶" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." -msgstr "一个木头制成的大桶。能装很多液体,最好是酒。" +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." +msgstr "一个立起来的大木桶,完全水密。适合贮存各种液体或者用来酿酒。" #: lang/json/furniture_from_json.py msgid "display case" @@ -99309,8 +97034,11 @@ msgstr "展示柜" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." -msgstr "一个常见于商场、博物馆等场所,用于展示、储藏与陈列用的柜子。" +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." +msgstr "一个稳固的木柜,约与腰部同高,顶部镶嵌着一片玻璃板。用来存放贵重的物品,同时展示它们。实际上并不像看上去那么安全,因为展示窗很容易被打碎。" #: lang/json/furniture_from_json.py msgid "broken display case" @@ -99318,8 +97046,13 @@ msgstr "展示柜(损坏)" #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." -msgstr "一个损坏的展示柜。" +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Would be useful for storing valuable things while still showing them off, " +"if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." +msgstr "" +"一个稳固的木柜,约与腰部同高,顶部镶嵌着一片玻璃板。原本用来存放贵重的物品,同时展示它们,不过玻璃已经被人砸碎了。在洗劫的时候小心不要割伤自己。" #: lang/json/furniture_from_json.py msgid "standing tank" @@ -99327,8 +97060,9 @@ msgstr "储存罐" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." -msgstr "一个用来装液体的大型立式金属罐,能装下很多液体。" +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." +msgstr "一个巨大的金属容器,可以用来安全地储存大量液体。" #: lang/json/furniture_from_json.py msgid "dumpster" @@ -99336,8 +97070,11 @@ msgstr "垃圾箱" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." -msgstr "存放垃圾。不会再被捡起来了。注意气味。" +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." +msgstr "一个大型金属垃圾箱,再也不会被城市的垃圾处理部门回收了。尽管一想到爬进它就会让你不舒服,但它还是可以勉强成为一处藏身之地。" #: lang/json/furniture_from_json.py msgid "butter churn" @@ -99345,8 +97082,10 @@ msgstr "黄油搅拌机" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." -msgstr "一台脚踏式黄油搅拌机。" +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." +msgstr "一根用来制造黄油的内置搅拌器的金属罐子。它不需要电,而是靠踏板驱动,让你能在停电时使用。" #: lang/json/furniture_from_json.py msgid "counter" @@ -100158,68 +97897,6 @@ msgid "" msgstr "" "一种被入侵者带到地球上的入侵物种,并发现它非常符合它们的品味。除了红色的花瓣外,它多刺、扭曲的叶子使它看起来更像丛林灌木而不是普通的罂粟花,但由于其相似的药用特性而以罂粟命名。它散发出一种强烈的有催眠效果的香气。" -#: lang/json/furniture_from_json.py -msgid "hydroponics unit" -msgstr "水培单元" - -#. ~ Description for hydroponics unit -#: lang/json/furniture_from_json.py -msgid "This is a self-contained hydroponics unit used to grow crops indoors." -msgstr "这是一个独立的水培单元,用于在室内种植蔬菜。" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seed" -msgstr "水培单元(种子)" - -#. ~ Description for hydroponics unit with seed -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seed" -msgstr "这是一个独立的水培单元,用于在室内种植蔬菜。已有种子" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seedling" -msgstr "水培单元(幼苗)" - -#. ~ Description for hydroponics unit with seedling -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seedling" -msgstr "这是一个独立的水培单元,用于在室内种植蔬菜。已有幼苗" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with mature plant" -msgstr "水培单元(成熟)" - -#. ~ Description for hydroponics unit with mature plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant." -msgstr "这是一个独立的水培单元,用于在室内种植蔬菜。已成熟" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with harvestable plant" -msgstr "水培单元(可收割)" - -#. ~ Description for hydroponics unit with harvestable plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant that is ready for harvest." -msgstr "这是一个独立的水培单元,用于在室内种植蔬菜。可收割" - -#: lang/json/furniture_from_json.py -msgid "hydroponics heater" -msgstr "水培加热器" - -#. ~ Description for hydroponics heater -#: lang/json/furniture_from_json.py -msgid "This is a self-contained heater, used to warm hydroponics units." -msgstr "这是一个独立的水培加热器,用于加热水培单元。" - #: lang/json/furniture_from_json.py msgid "Translocator Gate" msgstr "易位门" @@ -100331,16 +98008,21 @@ msgstr "" "一个由巨大的红色恶魔蜘蛛的甲壳所制成的锻铁炉,它对火焰有着强烈的嗜好。经过特殊处理能够抵御源动之焰的高温,这个锻炉可以将魔法金属熔化成能够制造物品的锭。" #: lang/json/furniture_from_json.py -msgid "krash!" -msgstr "咔嚓!" +msgid "tank trap" +msgstr "反坦克障碍" +#. ~ Description for fungal mass #: lang/json/furniture_from_json.py -msgid "krak." -msgstr "咔嚓。" +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." +msgstr "厚厚的真菌物质已经完全覆盖了这里的地面。它摸起来很软,但你会陷进去,让你很难穿过它。" +#. ~ Description for fungal clump #: lang/json/furniture_from_json.py -msgid "tank trap" -msgstr "反坦克障碍" +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +msgstr "畸形的霉菌和茎在这里紧密缠绕,形成了一种真菌丛。" #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py @@ -100536,13 +98218,13 @@ msgstr[0] "酸性飞镖" msgid "Fake gun that fires acid globs." msgstr "射出酸液球的假枪。" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item_factory.cpp msgid "auto" 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 +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "步枪" @@ -100552,6 +98234,67 @@ msgid "acid dart gun" msgid_plural "acid dart guns" msgstr[0] "酸性飞镖枪" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "自制步霰两用枪" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from" +" a double barrel shotgun." +msgstr "一把自制三管枪械,一根枪管用来发射 .30-06 口径步枪子弹,另外两根则用来发射霰弹。它是用从双管猎枪上拆下来的部件和钢管制成的。" + +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "霰弹枪" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] "自制钢管步枪(.30-06口径)" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" +" strike the single round it holds." +msgstr "一把自制的步枪。简单地把一根钢管安装在木把上,还有一个只能单次击发的击锤。" + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "自制重型卡宾枪" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" +"一把自制的杠杆式滑膛步枪。尽管还是用的一条钢管和一条2x4制式木料,在细节方面已经是做了不少改进了,比如能够兼容 G3 " +"步枪弹匣和能使用威力更大的.308子弹的弹仓。" + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "自制卡宾枪" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the" +" better homemade weapons." +msgstr "一把设计精良的自制卡宾枪,已经锯短枪管。支持原始的可拆卸弹匣或STANAG北约制式弹匣,算是把比较好的自制武器。" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] "自制钢管步枪(.223口径)" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -100652,9 +98395,7 @@ msgid "" "standard UPS." msgstr "一款自制的激光手枪,设计灵感源自于21世纪中期的V29激光手枪。虽然只是各类由胶带简单固定在一起电子原件,它依旧可以使用标准的UPS供能。" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py -#: lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "手枪" @@ -100751,11 +98492,6 @@ msgstr "单发" msgid "double" msgstr "双发" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "霰弹枪" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -100821,6 +98557,36 @@ msgid "" "magazines and is an overall much more effective weapon." msgstr "这是一把射钉枪,被改造的面目全非,增加了一个短枪管,枪托和护木。它可以使用可拆卸弹匣装填,总体上说是更为有效的武器。" +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "AN-94 突击步枪" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" +"旨在取代AK-74,AN-" +"94突击步枪使用了复杂的机械结构来延缓后座感,还提供了两连发突发速射模式。尽管它较高的复杂性让他不能被列装到俄罗斯全线的部队,但据资料,它早已提供给俄方特种部队服役。" + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "两连发" + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "手持TX-5LR 激光加农炮" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "一个从TX-5LR \"地狱犬\"型激光炮塔上拆下的激光炮。被修改成使用UPS供电。" + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -101128,6 +98894,22 @@ msgstr "" "一把斗牛犬式突击步枪,直到最近才被法国军队正式使用。虽然 FAMAS 系列步枪以其高射速而闻名,但是 MAS " "223步枪是80年代末才被进口到美国的半自动版本。不过,它保留了内置的双脚架。" +#: lang/json/gun_from_json.py +msgid "FS2000" +msgid_plural "FS2000s" +msgstr[0] "FS2000 步枪" + +#: lang/json/gun_from_json.py +msgid "" +"A sleek bullpup carbine designed by FN Herstal, complete with an integrated " +"sight accessory rail. The forward ejecting action and ambidextrous controls" +" make firing comfortable for both left and right-handed shooting. The whole" +" rifle is well sealed from mud and dust for reliability, but this makes it " +"incompatible with many aftermarket magazines." +msgstr "" +"一款由FN " +"Herstal公司设计出品的圆滑的斗牛犬式卡宾枪,内置了一根瞄具附件导轨。采用前置式抛壳和双手通用枪机设计,让你能够舒适地使用左右手射击。步枪整体密封性好,防泥浆防尘保证了它的可靠性,但这使它无法兼容许多非原厂弹匣。" + #: lang/json/gun_from_json.py msgid "HK416 A5" msgid_plural "HK416 A5s" @@ -101170,6 +98952,19 @@ msgstr "" msgid "burst" msgstr "连发" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "M249S 机枪" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" +"这是M249机枪的半自动民用版本,专为运动射击和收藏家市场制造。值得注意的是,它保留了用弹药带供弹的能力,这个特色功能在民用枪械中不太常见。" + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -101226,17 +99021,6 @@ msgstr "" "一把90年代由奥林匹克武器公司制造的 AR-15 步枪的手枪衍生型号。与 AR-15 " "步枪相比,主要的区别在于,反冲弹簧被移到了枪管的顶部,避免了使用固体枪托的必要。" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] "自制钢管步枪(.223口径)" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" -" strike the single round it holds." -msgstr "一把自制的步枪。简单地把一根钢管安装在木把上,还有一个只能单次击发的击锤。" - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -101286,18 +99070,6 @@ msgid "" msgstr "" "斯泰尔 AUG 步枪是一种导气式、弹匣供弹、射击方式可选的无托结构步枪,曾被多个国家用于军队及警察武装。在保证较高命中率的同时也抑制了后坐力。" -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "自制卡宾枪" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the" -" better homemade weapons." -msgstr "一把设计精良的自制卡宾枪,已经锯短枪管。支持原始的可拆卸弹匣或STANAG北约制式弹匣,算是把比较好的自制武器。" - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -101419,11 +99191,6 @@ msgid "" "competing Browning BLR." msgstr "一把非常普及的打猎/狙击两用步枪。SWAT特警队和美国海军陆战队狙击手都喜欢用它。高杀伤力,但精准度比起勃朗宁BLR步枪来或许不那么高。" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] "自制钢管步枪(.30-06口径)" - #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" msgid_plural "Remington ACR .300BLKs" @@ -101550,19 +99317,15 @@ msgstr "" "M60是一款通用机枪,他被开发以取代.30口径的M1918和M1919型号机枪。它很沉重,很难拿着它来抵肩站立射击,你如果没有《第一滴血》系列里的兰博的体格的话,还是架起两脚架趴着玩吧。" #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" -msgstr[0] "自制重型卡宾枪" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" +msgstr[0] "M60 半自动机枪" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." -msgstr "" -"一把自制的杠杆式滑膛步枪。尽管还是用的一条钢管和一条2x4制式木料,在细节方面已经是做了不少改进了,比如能够兼容 G3 " -"步枪弹匣和能使用威力更大的.308子弹的弹仓。" +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "这是M60机枪的半自动民用版本。值得注意的是,它保留了用弹药带供弹的能力,这个特色功能在民用枪械中不太常见。" #: lang/json/gun_from_json.py msgid "Savage 111F" @@ -102356,9 +100119,9 @@ msgid "" msgstr "一支手制的笨重大手枪,不太好看,但装载的.45威力不是盖的。寄望于它的威力吧!" #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" -msgstr[0] "汤普森冲锋枪" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" +msgstr[0] "汤普森 M1928A1 冲锋枪" #: lang/json/gun_from_json.py msgid "" @@ -102396,9 +100159,9 @@ msgstr "" "23型手枪是一种非常可靠的枪;在枪套里带着这把枪的人也许能干掉一个装备核武器的动力装甲战士。" #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" -msgstr[0] "瓦尔特 PPQ .45 ACP 手枪" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" +msgstr[0] "瓦尔特 PPQ .45 手枪" #: lang/json/gun_from_json.py msgid "" @@ -102678,25 +100441,6 @@ msgid "" " the AK series with the high-velocity, lightweight 5.45x39mm cartridge." msgstr "著名的AK-47步枪的继承者。它结合了AK系列的高可靠性,以及5.45x39mm弹药的高初速和轻便性。" -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "AN-94 突击步枪" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" -"旨在取代AK-74,AN-" -"94突击步枪使用了复杂的机械结构来延缓后座感,还提供了两连发突发速射模式。尽管它较高的复杂性让他不能被列装到俄罗斯全线的部队,但据资料,它早已提供给俄方特种部队服役。" - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "两连发" - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -103054,17 +100798,6 @@ msgstr "" "原为军用,Rivtech " "RM88战斗步枪设计时考虑了耐用性、强大火力、及非理想环境下的易用性,其重型装有气门的枪管提供了最大限度的可控性。可使用盒式弹匣及RMGD250弹鼓。" -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "RM99 左轮手枪" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" -" addition to the arsenal of any gunslinger." -msgstr "毫无疑问,Rivtech M99是一款非常暴力的左轮手枪,而且不少人都认为过于暴力了。" - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -103541,18 +101274,6 @@ msgstr "" "一把后部装弹式双枪管组合枪,枪上方一条 .30-06 " "口径子弹带膛线枪管,下方有两根装载12号霰弹的滑膛枪管。这种枪历史上曾经在非洲被那些贪心不足的偷猎者们用来射杀大小动物,而现在则被新英格兰的那些狂妄的装逼犯们拿来装逼。" -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "自制步霰两用枪" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from" -" a double barrel shotgun." -msgstr "一把自制三管枪械,一根枪管用来发射 .30-06 口径步枪子弹,另外两根则用来发射霰弹。它是用从双管猎枪上拆下来的部件和钢管制成的。" - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -103703,6 +101424,19 @@ msgid "" msgstr "" "一台电力驱动的六管加特林霰弹枪,采用自制的布弹药带供弹。即使被正确地安装在载具上,它也是一台笨重的野兽,而六根独立的枪管让你很难为其校正瞄具。由于采用外置机构来驱动枪机,它不太容易卡弹。" +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "自制杠杆式霰弹枪" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" +"一把短小的自制杠杆式霰弹枪,内置了一个很小的管式弹匣。虽然仍然是一个由钢管和2x4制式木料拼凑而成的简陋设计,但已经算得上一把成型的霰弹枪,而且还有些改进的空间。" + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -104091,17 +101825,6 @@ msgid "" "quiet and accurate marksman laser rifle." msgstr "这是一套集成到侦察机甲中的武器系统,一把无声且精确的狙击激光步枪。" -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "手持TX-5LR 激光加农炮" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "一个从TX-5LR \"地狱犬\"型激光炮塔上拆下的激光炮。被修改成使用UPS供电。" - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" @@ -104299,8 +102022,8 @@ msgstr[0] "弹矢弩" msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." -msgstr "一把十字弩的魔改版本,射出的是石头而不是一般的弩矢。主要用来欺负小动物,力量大的人装填得更快。" +"hunting small game." +msgstr "一把十字弩的魔改版本,射出的是石头而不是一般的弩矢。主要用来欺负小动物。" #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -104321,10 +102044,9 @@ msgstr[0] "弩" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." -msgstr "一个发射弩矢的武器,也称十字弓,装填缓慢。力量大的人装填较快。用它射出去的弩矢比较不容易坏。" +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." +msgstr "一把能发射弩矢的十字弩,装填缓慢。用它射出去的弩矢比较不容易坏。" #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -104468,8 +102190,9 @@ msgstr[0] "投石索" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." -msgstr "一种皮革吊带制成的弹弓,使用简单且有一定的准度。它使用小石子作为弹药。" +"A leather sling, can launch rocks much further and faster than throwing them" +" by hand." +msgstr "一根皮制投石索,比起直接用手,可以把石头投掷得更快且更远。" #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -104483,9 +102206,9 @@ msgstr[0] "弹弓" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as " -"ammunition." -msgstr "一个木制弹弓,使用很简单也很准,用小石子做弹药打出去有种童年的感觉,没什么杀伤力。" +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." +msgstr "一根分叉的木头,两个叉头之间绑上了一条松紧带。可以高速发射小石子和类似物品。" #: lang/json/gun_from_json.py msgid "staff sling" @@ -104494,9 +102217,9 @@ msgstr[0] "投石杖" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." -msgstr "将一根皮革带固定到长木棍上制成的投石杖,使用简单且有一定的准度。它使用石头作为弹药。" +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." +msgstr "这根棍子可以让你像甩鞭子一样将石头甩出去,比起直接用手,可以把石头投掷得更快且更远。" #: lang/json/gun_from_json.py msgid "brace slingshot" @@ -104505,9 +102228,9 @@ msgstr[0] "腕托弹弓" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." -msgstr "一个带有腕托的现代弹弓,更好用,更精准,更有威力。" +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." +msgstr "一把带有腕带的现代弹弓,能比简单的木制弹弓更有力地发射小石子和类似物品。" #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -104751,10 +102474,9 @@ msgid "" " mid-range versatility of the 9mm with the power of the 12 gauge shotgun. " "To further compliment the CQB aspect, the stock is built to amplify the " "user's force and the rugged construction with tonfa-like grip can handle " -"bashing in enemy heads. An integrated magazine makes it a pain to reload, " -"but keeps your clip from ejecting accidently." +"bashing in enemy heads." msgstr "" -"一把简单的组合枪支。这只军用级的半自动卡宾枪结合了9mm子弹在中距离的多功能性和12口径霰弹的强大威能。为了在未来与更好的与格斗术相结合,把手部分经过特殊设计可以更好的发挥使用者的力量,而握把T型拐状的坚固结构可以更好地击打敌人的头部。集成的弹夹使它更难装载,不过也阻止了其意外的弹出。" +"一把简单的组合枪支。这只军用级的半自动卡宾枪结合了9mm子弹在中距离的多功能性和12口径霰弹的强大威能。为了在未来与更好的与格斗术相结合,把手部分经过特殊设计可以更好的发挥使用者的力量,而握把T型拐状的坚固结构可以更好地击打敌人的头部。" #: lang/json/gun_from_json.py msgid "CRIT Fire Glove" @@ -104805,8 +102527,8 @@ msgid "" "Experimental double purpose tool under development in C.R.I.T R&D. It takes" " a regular nail and then enlongates it within a fraction of a second before " "firing it out, upon reaching a target, the fragile stake explodes into " -"shards." -msgstr "C.R.I.T 研发的实验性两用工具,它可以将普通钉子在几分之一秒内快速拉长后射出,到达目标后,脆弱的金属钉会当场破碎。" +"shards inside the target." +msgstr "C.R.I.T 研发的实验性两用工具,它可以将普通钉子在几分之一秒内快速拉长后射出,当击中目标后,脆弱的金属钉会在目标体内破碎成碎片。" #: lang/json/gun_from_json.py msgid "Line Gun" @@ -104923,233 +102645,33 @@ msgstr "" "这种步枪古老的设计虽然没有现在武器的高射速,但它所使用的弹药简单有力,在当年那个冷兵器为主的时代,在一位训练有素的射手手上,就是一枪一个的节奏。" #: lang/json/gun_from_json.py -msgid "SVS-24" -msgid_plural "SVS-24" -msgstr[0] "SVS-24 突击步枪" - -#: lang/json/gun_from_json.py -msgid "" -"The Sarafanov Assault Rifle replaced the famous AK family of guns as the " -"service rifle of the Russian Army. It uses the 6.54x42mm cartridge." -msgstr "这款Sarafanov突击步枪曾代替著名的AK系列步枪成为了俄罗斯陆军标准装备。采用6.54x42mm弹药。" - -#: lang/json/gun_from_json.py -msgid "SVS-24C" -msgid_plural "SVS-24C" -msgstr[0] "SVS-24C 突击步枪" - -#: lang/json/gun_from_json.py -msgid "" -"The compact version of the standard SVS-24. It is commonly issued to tank " -"crews or special forces due to its smaller size. The shorter barrel reduces" -" accuracy." -msgstr "这是标准SVS-24突击步枪的紧凑版本,由于体型小巧,它通常被坦克兵或者特种部队所使用。较短的枪管降低了射击准确度。" - -#: lang/json/gun_from_json.py -msgid "CW-24" -msgid_plural "CW-24" -msgstr[0] "CW-24 突击步枪" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It was made by Clearwater Arms, Georgia, " -"for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" -" cartridge." -msgstr "这是标准SVS-24的民用版。产自乔治亚州的\"净水\"军工厂,专供美国市场。该枪纯半自动,使用威力稍弱的5.45x39mm弹药。" - -#: lang/json/gun_from_json.py -msgid "CW-24M" -msgid_plural "CW-24M" -msgstr[0] "CW-24M 突击步枪" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" -" as the SVS-24." -msgstr "这是标准SVS-24的民用版。该枪使用和标准版相同的6.54x42mm弹药。" - -#: lang/json/gun_from_json.py -msgid "CW-24K" -msgid_plural "CW-24K" -msgstr[0] "CW-24K 突击步枪" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the cheaper, but still " -"powerful, 7.62x39mm cartridge." -msgstr "这是标准SVS-24的民用版。该枪使用更便宜而仍有威力的7.62x39mm弹药。" - -#: lang/json/gun_from_json.py -msgid "Modified CW-24" -msgid_plural "Modified CW-24" -msgstr[0] "CW-24 突击步枪改装型" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It has a modified receiver and a new " -"crudely crafted full-auto bolt carrier. Don't expect the original " -"reliability." -msgstr "这是标准SVS-24的民用版。该枪有一个经过改装的复进机以及一个粗糙的自制全自动发射器。别指望它能有原来的可靠性。" - -#: lang/json/gun_from_json.py -msgid "Modified CW-24M" -msgid_plural "Modified CW-24M" -msgstr[0] "CW-24M 突击步枪改装型" - -#: lang/json/gun_from_json.py -msgid "CWD-63" -msgid_plural "CWD-63" -msgstr[0] "CWD-63 狙击步枪" - -#: lang/json/gun_from_json.py -msgid "" -"The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " -"rechambered for the .308 round." -msgstr "著名的SVD-63 Dragunov\"净水\"军工版。这把枪经过改装,使用.308弹药。" - -#: lang/json/gun_from_json.py -msgid "Wrist DREAD" -msgid_plural "Wrist DREAD" -msgstr[0] "手腕 \"恐惧\" 钢珠枪" - -#: lang/json/gun_from_json.py -msgid "" -"The miniaturized version of the DREAD MkIX attached to the wrist of the " -"operator. It fires .20 metal pellets at an incredible rate without any " -"flash or noise. It is mainly a defensive weapon." -msgstr "安装在使用者手臂上的缩小版\"恐惧\"IX型电磁钢珠枪。能够以超高速发射.20金属球弹,没有任何火花或者噪声。主要用于自我防卫。" - -#: lang/json/gun_from_json.py -msgid "JHEC M128" -msgid_plural "JHEC M128s" -msgstr[0] "JHEC M128 自动左轮" - -#: lang/json/gun_from_json.py -msgid "" -"The Johnson Heavy Equipment Co. M128 autorevolver; all others fail to " -"measure up. Johnson Heavy Equipment Co. is a subsidiary of D&B " -"Minneapolis." -msgstr "" -"约翰逊重型武器公司研发的M128自动左轮手枪;其他同类产品都无法和它媲美。约翰逊重型武器公司是D&B Minneapolis公司旗下的子公司。" - -#: lang/json/gun_from_json.py -msgid "Boomlighter 454" -msgid_plural "Boomlighter 454s" -msgstr[0] "\"Boom打火机\" 454 手枪" - -#: lang/json/gun_from_json.py -msgid "" -"Handmade by master gunsmiths at D&B Minneapolis, this deadly accurate and " -"powerful pistol packs a punch with precision, power and flair. Comes with a" -" one of a kind integrated flamethrower." -msgstr "" -"由D&B Minneapolis公司某位枪匠大师亲手打造。精度、 功率与天赋给予了这把手枪致命的精准度和杀伤力。附带一个独一无二的内置火焰喷射器。" - -#: lang/json/gun_from_json.py -msgid "gunsword" -msgid_plural "gunswords" -msgstr[0] "枪剑" - -#: lang/json/gun_from_json.py -msgid "" -"A long sharp blade, with two powerful .500 S&W Magnum chambers in the hilt." -" While chambering big rounds, the barrels are so short it slightly reduces " -"outgoing damage." -msgstr "" -"一把长而锋利的剑,剑脊上还有个容弹两发的.500 S&W " -"马格南大威力手枪子弹发射装置。它装填的子弹本身很大威力,但是由于剑脊发射管长度限制,会稍微降低子弹的杀伤力。" - -#: lang/json/gun_from_json.py -msgid "gunknife" -msgid_plural "gunknives" -msgstr[0] "匕首枪" - -#: lang/json/gun_from_json.py -msgid "" -"A short but sharp blade, with two powerful .500 S&W Magnum chambers in the " -"grip. While chambering big rounds, the barrels are so short it slightly " -"reduces outgoing damage." -msgstr "" -"一把锋利的短匕,握柄上还有个容纳两发威力强大的.500 S&W " -"马格南弹的发射装置。它装填的子弹本身很大威力,但是由于握柄发射管长度限制,会稍微降低子弹的杀伤力。" - -#: lang/json/gun_from_json.py -msgid "FiveO handcannon" -msgid_plural "FiveO handcannons" -msgstr[0] "FiveO .50 手炮" - -#: lang/json/gun_from_json.py -msgid "" -"Someone crazy thought that the .50 BMG belonged in a pistol. This massive " -"piece of steel proves otherwise. The sheer bulk however does make it quite " -"adept at smashing face." -msgstr "有某个狂人觉得.50 BMG子弹应该可以当作手枪弹使用,所以就做出了这么一把东西。不过以它巨大的体积来看,似乎都能直接挥舞来砸碎敌人的脸。" - -#: lang/json/gun_from_json.py -msgid "M919" -msgid_plural "M919s" -msgstr[0] "M919 冲锋枪" - -#: lang/json/gun_from_json.py -msgid "" -"Manufactured by Sarah and Suhl machine company of Portland, Maine, the M919 " -"submachine gun is the most accurate 9x19mm submachine gun on the market. " -"Intended for police use, it is fitted with an integral grenade launcher." -msgstr "由缅因州波特兰市的萨拉苏尔机械制造公司生产,M919冲锋枪是市面上精度最高的9x19mm口径冲锋枪。设计用于警用,它内置了一个榴弹发射器。" - -#: lang/json/gun_from_json.py -msgid "Eagle 1776" -msgid_plural "Eagle 1776" -msgstr[0] "\"鹰\" 1776 冲锋枪" - -#: lang/json/gun_from_json.py -msgid "" -"You see before you a marvel of American engineering: a powerful .44 Magnum " -"submachine gun, made from fine parts assembled in America, including an " -"integral grenade launcher. Eagle 1776: From the arsenal of freedom!" -msgstr "" -"在你面前的是一件美国制造的奇迹:一把威力强大的.44马格南弹冲锋枪,使用美国制造的最精密的部件,内置了一个榴弹发射器。\"鹰\" " -"1776冲锋枪:来自自由国度的兵工厂!" - -#: lang/json/gun_from_json.py -msgid "L.T. carbine" -msgid_plural "L.T. carbines" -msgstr[0] "L.T. 防暴卡宾枪" +msgid "pipe rifle" +msgid_plural "pipe rifles" +msgstr[0] "钢管步枪" #: lang/json/gun_from_json.py msgid "" -"The Lightning Trail carbine was developed for the riot police to quickly " -"blanket an area with lightning clouds. While damaging, it is less lethal " -"than live ammunition." +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." msgstr "" -"L.T.\"闪电链\"防暴卡宾枪主要用于装备给防暴警察,其可以形成一片带电云团并覆盖一片地区,用高压电迅速镇压暴乱人群。这种武器并非用来杀死目标,而只是使目标迅速丧失行动能力。" - -#: lang/json/gun_from_json.py -msgid "arc cannon" -msgid_plural "arc cannons" -msgstr[0] "电弧炮" - -#: lang/json/gun_from_json.py -msgid "" -"The arc cannon fires bolts of lightning arcing between targets in close " -"proximity to each other. Originally manufactured to fry insects, now it’s " -"been turned up to fry zombies." -msgstr "这支电弧炮能够发射高压电弧,并使电弧在相邻的多个目标之间跳跃产生伤害。本来是用来电害虫的,但现在你可以用它来电丧尸。" +"一把结果简陋的长管枪械,使用标准步枪弹药,在枪膛附近加固。它能够装填一枚子弹,并有一个粗糙的自制枪机来击发它。因为没有抛弹器,所以它装填起来很慢,而且它的结构使得可靠性和使用寿命都很差。" #: lang/json/gun_from_json.py -msgid "M1911 DS" -msgid_plural "M1911 DSs" -msgstr[0] "M1911 DS 手枪" +msgid "survivor carbine" +msgid_plural "survivor carbines" +msgstr[0] "幸存者卡宾枪" #: lang/json/gun_from_json.py msgid "" -"The M1911 Darkstalker is a very modified M1911, it has a fully integrated " -"crossbow and added rails. Professional looking with a ebony black finish, " -"laced with lime green details. Now they will know why they fear the night." -" Bat hood sold separately." +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than" +" ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." msgstr "" -"M1911 \"逐暗者\"手枪是一把经过彻底改造的M1911手枪,它有一个完全内部集成的弩及附加导轨。经过抛光的乌木黑让它看起来相当专业,同时有灰绿色的镶边。\n" -"\"敌人们会知道他们为什么害怕黑夜,蝙蝠头套另行出售。\"" +"一把结构简陋的卡宾枪,其口径被设计为使用标准步枪弹药,由标准步枪弹匣供弹。它用一个基本的杠杆枪机系统锁定击发。由于发射时所涉及的高压和其可疑的结构,使它的耐久性和可靠性不太理想,但这应该仍然是一把能用的武器,只要你能保证射击精度。" #: lang/json/gun_from_json.py msgid "antique pistol" @@ -105508,35 +103030,6 @@ msgid "" msgstr "" "轻机枪是一种强大的火力压制枪械,是小队战术的重要组成部分。它的弹药带可以装填数百发子弹,它的重型部件可以承受长时间连发射击。虽然可能不如标配步枪精确,但轻型机枪确实可以将相当多的能量投送至很远的射程之上。装填速度非常慢。" -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "钢管步枪" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" -"一把结果简陋的长管枪械,使用标准步枪弹药,在枪膛附近加固。它能够装填一枚子弹,并有一个粗糙的自制枪机来击发它。因为没有抛弹器,所以它装填起来很慢,而且它的结构使得可靠性和使用寿命都很差。" - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "幸存者卡宾枪" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than" -" ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" -"一把结构简陋的卡宾枪,其口径被设计为使用标准步枪弹药,由标准步枪弹匣供弹。它用一个基本的杠杆枪机系统锁定击发。由于发射时所涉及的高压和其可疑的结构,使它的耐久性和可靠性不太理想,但这应该仍然是一把能用的武器,只要你能保证射击精度。" - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -105774,618 +103267,34 @@ msgstr "一把魔法生成的华丽反曲弓。由结实而有弹性的木料制 msgid "Fake gun that fires barbed javelins." msgstr "射出带刺标枪的假枪。" -#: lang/json/gun_from_json.py -msgid "fire lance" -msgid_plural "fire lances" -msgstr[0] "火铳" - -#: lang/json/gun_from_json.py -msgid "" -"An ancient Chinese spear, with a small tube attached for a charge of " -"gunpowder. While it has an extremely short range, it gives a powerful edge " -"in close combat." -msgstr "中国古代的原始火枪,在枪头有个小型铁管可发射单发火药弹。虽然它的有效射程极短,但在近战中却能起到强大作用。" - -#: lang/json/gun_from_json.py -msgctxt "gun_type_type" -msgid "melee" -msgstr "近战" - -#: lang/json/gun_from_json.py -msgid "base robogun" -msgid_plural "base roboguns" -msgstr[0] "基础机器枪" - -#: lang/json/gun_from_json.py -msgid "" -"This is a pseudo item for monster attacks. If you see this, it's a bug." -msgstr "该物品用于实现怪物攻击,如果你看到这个说明游戏出Bug了。" - -#: lang/json/gun_from_json.py -msgid "integral 12 gauge shotgun" -msgid_plural "integral 12 gauge shotguns" -msgstr[0] "内置12号口径霰弹枪" - -#: lang/json/gun_from_json.py -msgid "integral 50 caliber machinegun" -msgid_plural "integral 50 caliber machineguns" -msgstr[0] "内置 .50 口径机枪" - -#: lang/json/gun_from_json.py -msgid "integral needle gun" -msgid_plural "integral needle guns" -msgstr[0] "内置镖形弹发射器" - -#: lang/json/gun_from_json.py -msgid "integral 8mm firearm" -msgid_plural "integral 8mm firearms" -msgstr[0] "内置8mm枪械" - -#: lang/json/gun_from_json.py -msgid "integral laser emitter" -msgid_plural "integral laser emitters" -msgstr[0] "内置激光发射器" - -#: lang/json/gun_from_json.py -msgid "integral railgun" -msgid_plural "integral railguns" -msgstr[0] "内置轨道炮" - -#: lang/json/gun_from_json.py -msgid "integral lightning caster" -msgid_plural "integral lightning casters" -msgstr[0] "内置放电装置" - -#: lang/json/gun_from_json.py -msgid "integral EMP generator" -msgid_plural "integral EMP generators" -msgstr[0] "内置EMP发生器" - -#: lang/json/gun_from_json.py -msgid "atlatl" -msgid_plural "atlatls" -msgstr[0] "阿兹特克掷矛器" - -#: lang/json/gun_from_json.py -msgid "" -"A wooden tool for supporting a javelin, to throw it more effectively than by" -" hand." -msgstr "一个用于支撑投矛的木制工具,比起纯用手,他能投得更有效率。" - -#: lang/json/gun_from_json.py -msgid "makeshift crossbow" -msgid_plural "makeshift crossbows" -msgstr[0] "简易弩" - -#: lang/json/gun_from_json.py -msgid "" -"A simple, handmade crossbow of the Skane style, with a wooden peg that is " -"pushed up from underneath to loose the bowstring. Not as powerful as other " -"crossbow designs, but it is easier to draw the bow back. Bolts fired from " -"this weapon have a good chance of remaining intact for re-use." -msgstr "" -"一把自制简易弩,可以看出是依据瑞典斯科讷风格自制而成的。有一个木制的弦钮,从下往上拉让弓弦射出。没有其它的弩威力大,但是更容易把弓拉回来。这把弩射出来的箭很高概率会保持完好,可以再次使用。" - -#: lang/json/gun_from_json.py -msgid "" -"This is a replica of the bow possessed by Odin, Ichaival, which is rumored " -"to fire 10 arrows with every pull of the string. It has gold and silver " -"ornaments on it." -msgstr "北欧众神之父奥丁所使用的神弓伊奇巴尔的复制品。传说每次拉弦能够射出 10 只箭。这件上面覆盖满了金银饰品。" - -#: lang/json/gun_from_json.py -msgid "integral nailgun" -msgid_plural "integral nailguns" -msgstr[0] "内置射钉枪" - -#: lang/json/gun_from_json.py -msgid "mounted crossbow" -msgid_plural "mounted crossbows" -msgstr[0] "内置机械弩" - -#: lang/json/gun_from_json.py -msgid "Vortical plasma beam" -msgid_plural "Vortical plasma beams" -msgstr[0] "涡漩等离子束" - #: lang/json/gun_from_json.py msgid "TEST compound bow" msgid_plural "TEST compound bows" msgstr[0] "测试用现代复合弓" #: lang/json/gun_from_json.py -msgid "30mm autocannon" -msgid_plural "30mm autocannons" -msgstr[0] "30mm 机炮" - -#: lang/json/gun_from_json.py -msgid "" -"A chain-driven autocannon chambered in 30x113mm, originally designed for " -"aircraft use, but later adapted for armored vehicles. Obviously it needs to" -" be mounted on a vehicle to fire." -msgstr "一种链式驱动的机炮,其拥有30x113mm的腔室,最初设计用于飞机使用的,但后来用为装甲车辆。显然它需要被安装在车辆上进行射击。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "120mm tank gun" -msgid_plural "120mm tank guns" -msgstr[0] "120mm 坦克炮" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " -"to fire." -msgstr "一个从坦克上拆下来的120mm坦克炮。很明显,要装到载具上才能用。" - -#: lang/json/gun_from_json.py -msgid "120mm autoloading tank gun" -msgid_plural "120mm autoloading tank guns" -msgstr[0] "120mm 自动装填坦克炮" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "一个从坦克上拆下来的120mm坦克炮。这个型号有个容弹量为5发的自动填弹机。很明显,要装到载具上才能用。" - -#: lang/json/gun_from_json.py -msgid "120mm remote weapon system" -msgid_plural "120mm remote weapon systems" -msgstr[0] "120mm 远程武器系统" +msgid "Test Glock" +msgid_plural "Test Glocks" +msgstr[0] "测试用格洛克手枪" #: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon with an advanced autoloader, designed to operate via remote " -"control. Obviously it needs to be mounted on a vehicle to fire." -msgstr "一个带有高级自动装填机构的120mm坦克炮,被设计为通过远程控制装填发射。很明显,要装到载具上才能用。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "155mm howitzer" -msgid_plural "155mm howitzers" -msgstr[0] "155mm榴弹炮" +msgid "A handgun for testing, based on the Glock 9mm." +msgstr "一把测试用的格洛克手枪,数据基于格洛克9mm手枪。" -#: lang/json/gun_from_json.py -msgid "" -"A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "一个主要用于自行火炮和重型坦克的155mm坦克炮。很明显,要装到载具上才能用。" - -#: lang/json/gun_from_json.py -msgid "Vehicular ATGM Launcher" -msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "车载反坦克导弹发射器" - -#: lang/json/gun_from_json.py -msgid "" -"A launcher for anti-tank guided missiles. While highly accurate, it isn't " -"fire-and-forget. Obviously it needs to be mounted on a vehicle to fire." -msgstr "" -"一种反坦克导弹发射器,其能够作为车载武器使用。虽然命中率比较高,但发射后需要一直瞄准目标,无法发射后不管。显然你要将它安装在载具上后才能使用。" - -#: lang/json/gun_from_json.py -msgid "slingshot cannon" -msgid_plural "slingshot cannons" -msgstr[0] "弹弓炮" - -#: lang/json/gun_from_json.py -msgid "" -"Essentially several long drawstrings held by two long, reinforced sides and " -"a mechanism attached to a crank to draw and fire it. It's deceptively " -"powerful and surprisingly accurate, but far too large to be used without " -"some sort of stable platform." -msgstr "" -"用机械结构控制的由两条强化长轨道和几条长弦组合的巨型弹弓。有一个曲臂帮助拉弦和发射。别看它结构简单,它有着超乎想像的威力和不俗的准确度。它的结构庞大,需要安装到一个稳定的平台上使用。" - -#: lang/json/gun_from_json.py -msgid "lacerator" -msgid_plural "lacerators" -msgstr[0] "圆盘加速器" - -#: lang/json/gun_from_json.py -msgid "" -"This weapon launches serrated metal disks at nearby enemies. It draws its " -"power from a vehicle's engines, and thus must be mounted on such in order to" -" be operated." -msgstr "这件武器朝着附近的敌人发射锋利的金属大圆盘。该武器的动力源自载具引擎,因此需要一副特制的炮塔底盘来发挥其功能。" - -#: lang/json/gun_from_json.py -msgid "rotary cannon" -msgid_plural "rotary cannons" -msgstr[0] "转轮式加农炮" - -#: lang/json/gun_from_json.py -msgid "" -"This fearsome weapon sports 3 barrels in a cyclic configuration. A " -"specialized mechanism loads the otherwise troublesome rounds; allowing it to" -" be fired in quick succession. However, this renders it incredibly " -"unwieldy, and it must be mounted on a support structure in order to be " -"fired." -msgstr "" -"这把可怖的武器有3条绕轴旋转炮管。还有特制的供弹仓以装填各种意义上都很令人头大的弹药,整个装置提供了它快速射击的能力。但是,这让整个武器变得很难操作,所以需要安装到炮塔底盘上使用。" - -#: lang/json/gun_from_json.py -msgid "laser cannon" -msgid_plural "laser cannons" -msgstr[0] "激光炮" - -#: lang/json/gun_from_json.py -msgid "" -"This enhanced laser cannon sacrifices efficiency for destructive power. The" -" increased power requirements require a significant power source and the " -"size of the firing mechanism also requires support." -msgstr "这把增强型激光炮牺牲效率以换取毁灭性的威力。它需要超大功率电源以满足高功率需求,发射机构也需要安装到一个专用的底座来使用。" - -#: lang/json/gun_from_json.py -msgid "pulse laser" -msgid_plural "pulse lasers" -msgstr[0] "脉冲激光炮" - -#: lang/json/gun_from_json.py -msgid "" -"Augmented damage capability and rapid bursts make this a powerful weapon. " -"The increased power requirements require a significant power source and the " -"firing mechanism also requires a specialized chassis." -msgstr "" -"增强的伤害和快速的连发能力使它成为一件威力强大的武器。它改进的高能耗发射机构需要匹配一个超大功率电源,发射机构也需要安装到一个专用的底座来使用。" - -#: lang/json/gun_from_json.py -msgid "turbolaser cannon" -msgid_plural "turbolaser cannons" -msgstr[0] "涡轮激光炮" - -#: lang/json/gun_from_json.py -msgid "" -"With an augmented emitter and capacitor, this mounted laser is capable of " -"superheating most materials to the point of exploding. The firing mechanism" -" also requires the services of a specialized chassis, and one must be wary " -"of the prodigious power needs of such a weapon." -msgstr "" -"强化的发射器和电容器让这台车载激光武器能在瞬间过燃任何物体直到它的爆炸极限温度。它的发射机构需要装载到一个专用的底盘上,而且使用时必须注意它极为庞大的耗能。" - -#: lang/json/gun_from_json.py -msgid "ripper" -msgid_plural "rippers" -msgstr[0] "撕裂者" - -#: lang/json/gun_from_json.py -msgid "" -"This menacing weapon rapidly launches bladed disks that rips through enemies" -" with devastating effect. It draws its power from a vehicle's engines, and " -"thus must be mounted on such in order to be operated." -msgstr "" -"这件威势惊人的武器快速连续发射出来的锋利大圆盘,能在切过敌人时造成毁灭性的效果。该武器的动力源自载具引擎,因此需要装载到一个炮塔底盘上才能发射。" - -#: lang/json/gun_from_json.py -msgid "scorpion ballista" -msgid_plural "scorpion ballistae" -msgstr[0] "毒蝎型弩炮" - -#: lang/json/gun_from_json.py -msgid "" -"A massive tension-operated crossbow. The hand-crank allows one to draw it " -"without the need for heavy labor. It's far too massive to be used on foot, " -"and thus needs to be mounted on a vehicle in order to be operated." -msgstr "" -"这把大型弩机装载在一个可旋转结构上。弩机上有手摇曲柄让你能够不用太大的力来拉开弩弓。弩机体积太大,你手脚并用都不能正常地使用它,所以它需要装载到一个炮塔底盘上才能发射。" - -#: lang/json/gun_from_json.py -msgid "harpoon gun" -msgid_plural "harpoon guns" -msgstr[0] "鱼叉炮" - -#: lang/json/gun_from_json.py -msgid "" -"A tension-operated speargun. A hand-crank lets one draw the strings " -"quickly, but it's too unwieldy to handle without a support of some sort." -msgstr "" -"安装在可旋转支架上的奇想产物,一支簇状五连装发射管单发/连发式矛枪。有一个手摇曲柄来帮助拉弦装填。弩机体积太大,你手脚并用都不能正常地使用它,所以它需要装载到一个炮塔底盘上才能发射。" - -#: lang/json/gun_from_json.py -msgid "tesla cannon" -msgid_plural "tesla cannons" -msgstr[0] "磁暴线圈炮" - -#: lang/json/gun_from_json.py -msgid "" -"This alteration of the Chain Lightning bionic fires artificial lightning " -"bolts that arc to nearby enemies. It must be attached to a large power " -"source, but it allows for much more powerful bolts." -msgstr "一个经过改造的连锁闪电生化插件,能够发射人造闪电球来触发电弧攻击附近的敌人。它必须由强大能源支撑,而更强的能源可以给它更大的威力。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "biting blob" -msgid_plural "biting blobs" -msgstr[0] "变形怪咬人炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. It has evolved the ability to constantly " -"generate calcified protrusions which are then controlled by sinuous tensile " -"strands. These \"teeth\" can then be used to latch and wound anything " -"unfortunate enough to be nearby. The outer membrane has also become " -"significantly thicker in order to support its more strenuous movement; " -"though it seems pliable enough to pull apart…" -msgstr "" -"一只活的变形怪变成的自主武器;设计作为一种覆盖整块车架的防御屏障。它进化出不断产生钙化突刺的能力,然后被弯曲的弹性肌肉纤维所控制。这些\"牙齿\",可以用来咬住并伤害任何在其附近的倒霉家伙。变形怪的外膜也明显变厚,以支持其更剧烈的运动;然而看起来柔韧得似乎可以被直接拉开……" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel shooter" -msgid_plural "gel shooters" -msgstr[0] "变形怪凝胶炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It trawls the ground for " -"material, which it then strips of nutrition. The remainder is then expelled" -" out at significant velocity towards any nearby threats. The amorphous mass" -" can be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it. It seems pliable enough to pull apart…" -msgstr "" -"一只活的变形怪变成的自主武器。会从地面吸取材料,吸收养分。剩余的残渣朝着附近的威胁被高速发射出去。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。看起来柔韧得似乎可以被直接拉开……" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "frost lancer" -msgid_plural "frost lancers" -msgstr[0] "变形怪冰矛炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A biological aberration " -"that exists at sub-zero temperatures. After filtering nutrients from the " -"water, it freezes the remainder into an incredibly sharp spear of ice; which" -" it then launches at nearby threats. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"一只活的变形怪变成的自主武器。一只体温低于零度的生化武器变形怪。在从水中吸取养分后,将剩余部分冰冻成非常尖锐的冰矛,然后朝附近的威胁发射。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "snapping ooze" -msgid_plural "snapping oozes" -msgstr[0] "变形怪牙齿炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A baffling mutation in an " -"already baffling creature, this blob is encased in a thick coat of fur, " -"which serves as a form of protection. In addition, it is capable of " -"projecting rows of calcified sharp fragments in a manner mimicking the jaw " -"of a more recognizable creature. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"一只活的变形怪变成的自主武器。在已经莫名其妙的生物产生莫名其妙的突变,这只变形怪被一层厚厚的作为保护的毛包裹。此外,它能够发射出成排被钙化的锋利碎牙,这些牙齿就如同一些更知名生物的下颚里生长的一样。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "blobsaw" -msgid_plural "blobsaws" -msgstr[0] "变形怪锯" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. While its simpler cousins have a limit to " -"the number of keratinous protrusions they can project and control; this blob" -" can utilize hundreds of these sharp fangs to shred anything it detects as a" -" threat into unrecognizable ribbons. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"一只活的变形怪变成的自主武器,本意是摊开在车架上作为屏障使用。其体型更简单的表亲只长着数个可以被自身发射和控制的角质突起;这只变形怪可以利用成百上千的锋利的獠牙撕碎任何检测到的威胁,直到变成面目全非的碎带。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fuel puffer" -msgid_plural "fuel puffers" -msgstr[0] "变形怪汽油炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digestion process turns the " -"result incredibly viscous which, when threats come near, is launched; " -"ensnaring anything it hits. The amorphous mass can be shaped and attached " -"at your touch, but the weapon itself is inert without something to control " -"it." -msgstr "" -"一只活的变形怪变成的自主武器。更加挑食的变形怪,它只会吃汽油内的化学成分。其消化产物有着令人难以置信的粘性,当威胁接近时会被发射出去,捕捉任何被粘到的东西。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "acid puffer" -msgid_plural "acid puffers" -msgstr[0] "变形怪酸液炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, the " -"digestion process produces highly acidic byproducts; which is then expelled " -"at any nearby enemies. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"一只活的变形怪变成的自主武器。一种滤食动物,消化过程会产生酸性很高的副产品,然后朝着任何附近的敌人发射出去。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spiker" -msgid_plural "gel spikers" -msgstr[0] "变形怪尖刺炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Capable of calcifying large" -" numbers of fang-like fragments within itself. It hurls groups of these " -"fragments along with a small portion of itself. When it reaches its " -"destination, the detached remains shoot these fragments in all directions, " -"expiring in the process. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"一只活的变形怪变成的自主武器。能够在体内同时钙化生成大量牙齿状的碎片。它把这些碎片连同自身的一部分一起抛射出去。当炮弹到达目的地时,分离出的变形怪将这些碎片四处发射出去,并在此过程中断气。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spouter" -msgid_plural "gel spouters" -msgstr[0] "变形怪喷水炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It can suck in water from a" -" vehicle tank, and forcibly expel it in a wide cone. The amorphous mass can" -" be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it." -msgstr "" -"一只活的变形怪变成的自主武器。它能够从车辆水箱内吸取水源,然后以一个大扇面强行喷出。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel lancer" -msgid_plural "gel lancers" -msgstr[0] "变形怪长矛炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Evolving incredible " -"abilities of perception, it is capable of locating and discerning possible " -"threats within a large radius. When a potential threat is located, it fires" -" a small, calcified projectile with incredible speed and accuracy. The " -"amorphous mass can be shaped and attached at your touch, but the weapon " -"itself is inert without something to control it." -msgstr "" -"一只活的变形怪变成的自主武器。进化出令人难以置信的感知能力,这只变形怪能够在超大范围内的定位并识别出可能的威胁。当定位到潜在威胁后,它将以惊人的速度和命中率发射出一个小型钙化弹丸。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel razor" -msgid_plural "gel razors" -msgstr[0] "变形怪刀片炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. An enhanced metabolism " -"allows it to calcify large, toothy discs which are then launched towards any" -" nearby threats. The amorphous mass can be shaped and attached at your " -"touch, but the weapon itself is inert without something to control it." -msgstr "" -"一只活的变形怪变成的自主武器。其增强的代谢使其能够钙化出一只巨大的长满牙齿的圆盘,然后朝附近的任何威胁发射出去。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock bulb" -msgid_plural "shock bulbs" -msgstr[0] "变形怪电击炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Shockingly, it somehow is " -"able to project electricity, which it then discharges at any nearby threats." -" The amorphous mass can be shaped and attached at your touch, but the " -"weapon itself is inert without something to control it." -msgstr "" -"一只活的变形怪变成的自主武器。令人震惊(触电)的是,它不知怎的能产生出电弧,然后朝着附近的威胁放电。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel puffer" -msgid_plural "gel puffers" -msgstr[0] "变形怪胶质炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, it strips " -"any water it processes of nutrients and expels the remainder towards any " -"nearby threats. The process of filter-feeding also makes the remaining " -"liquid viscous, though it also dissipates fairly quickly. The amorphous " -"mass can be shaped and attached at your touch, but the weapon itself is " -"inert without something to control it." -msgstr "" -"一只活的变形怪变成的自主武器。一种滤食动物,它从水中吸取营养并将残液朝着附近的威胁发射出去。滤食过程也增加了残液的粘性,但也会很快消散。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fire puffer" -msgid_plural "fire puffers" -msgstr[0] "变形怪火焰炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digested material is still " -"highly flammable, and when launched, also activates an ignition gland " -"located on the outer membrane. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"一只活的变形怪变成的自主武器。更加挑食的变形怪,它只会吃汽油内的化学成分。其消化产物仍然是高度易燃的,当被发射出去时,也会被位于外膜上的一个点火腺点燃。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "spark blight" -msgid_plural "spark blights" -msgstr[0] "变形怪电流炮" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It is capable of storing " -"energy from sunlight inside itself in the form of electricity. Then, in a " -"truly baffling show of force, projects a highly concentrated stream of " -"electricity towards any possible threats. The amorphous mass can be shaped " -"and attached at your touch, but the weapon itself is inert without something" -" to control it." -msgstr "" -"一只活的变形怪变成的自主武器。这只变形怪能够在体内储存由太阳能转化而成的电能。然后用一种难以应对的方式,朝着任何可能的威胁喷射出一道高度集中的电流。变形怪无定形的形体可以在你手中被重塑和连接,但武器本身由于没有控制而呈现惰性。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond lance" -msgid_plural "diamond lances" -msgstr[0] "钻石长枪" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst; thus a pre-" -"shaped lump of carbon is brought into contact with the matrix, immediately " -"crystallized and launched just as quickly. The launcher requires a " -"specialized chassis in order to be brought to bear on its unfortunate " -"targets." -msgstr "" -"一把和它令人眼花缭乱的闪光一样致命的武器。该武器中心的钻石晶阵作为催化剂,迅速将含碳丰富的物质转化为几乎等于钻石硬度的结晶形式。当物质与催化剂分离后会迅速衰减,因此一团预成型的碳被吸入与基体接触,立即结晶,并迅速发射出去。该发射器需要一个特制的炮塔底盘才能正常工作。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond nova" -msgid_plural "diamond novae" -msgstr[0] "钻石新星" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst, and at sizes " -"as large as the projectile used, also rapidly decays when in contact with " -"other matter. Thus the projectile is held and launched by the use of " -"pressurized air from a vortex stone. Upon striking its target, the " -"projectile undergoes explosive decomposition; shattering into a brilliant " -"burst of diamond fragments." -msgstr "" -"一把和它令人眼花缭乱的闪光一样致命的武器。该武器中心的钻石晶阵作为催化剂,迅速将含碳丰富的物质转化为几乎等于钻石硬度的结晶形式。当物质与催化剂分离后会迅速衰减,而且由于弹药体积过大,在接触其他物质后也会迅速衰减。因此弹药经由漩涡石形成的高压空气储存并发射出去。当击中目标后,弹药会爆炸分解,粉碎成一个由钻石碎片构成的辉煌爆炸。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex accelerator" -msgid_plural "vortex accelerators" -msgstr[0] "涡漩加速器" +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" +msgstr[0] "自制步霰两用枪(霰弹)" -#: lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py msgid "" -"This weapon uses powerful bursts of air to launch sharp fragments at its " -"target at high speed. You'll need some form of platform to mount it on." -msgstr "这把武器采用强劲的爆发气流朝着目标发射高速的尖锐碎片。你需要某种形式的平台来安装它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex cannon" -msgid_plural "vortex cannons" -msgstr[0] "涡漩空气炮" +"The integrated underbarrel shotgun of a pipe combination gun which holds two" +" shots. It's irremovable." +msgstr "自制步霰两用枪集成的下挂式霰弹枪,能容纳2发霰弹。无法拆除。" -#: lang/json/gun_from_json.py -msgid "" -"Essentially a large pneumatic gun made to hurl sharpened metal rails. " -"Instead of a mechanical system, you've managed to harness the vortex to " -"power this gun. While powerful for its size, you'll need some form of " -"platform to mount it on." -msgstr "" -"实质上是一个投掷磨尖过的金属磁轨弹的大型气动枪。这把枪并不是由一套机械系统驱动,取而代之的是你设法控制的漩涡。虽然以它的大小来说威力很强大,但你需要某种形式的平台来安装它。" +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "枪管下挂件" #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -106612,10 +103521,6 @@ msgid "" "any sort of firearm, greatly expanding its lethality." msgstr "这个自制的微型火焰喷射器可以装在大部分的枪械上,提高枪械的杀伤力。" -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "枪管下挂件" - #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" @@ -106951,6 +103856,21 @@ msgstr "" "一个U形金属片和一个T形活动挡板安装在一根针上。把它塞进AR-" "15步枪的下机匣里,能够让其调整发射模式。由于自制的挡板表面不如实际的全自动扳机好,所以精度和可靠性略有下降。" +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "ar15_retool_300blk" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "ar_pistol" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "oa93" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -107638,15 +104558,21 @@ msgid "" msgstr "步霰两用枪集成的下挂式霰弹枪,能容纳2发霰弹。无法拆除。" #: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" -msgstr[0] "自制步霰两用枪(霰弹)" +msgid "factory handguard" +msgid_plural "factory handguards" +msgstr[0] "原厂护木" #: lang/json/gunmod_from_json.py msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two" -" shots. It's irremovable." -msgstr "自制步霰两用枪集成的下挂式霰弹枪,能容纳2发霰弹。无法拆除。" +"A removable molded grip that comes standard on guns without rails. It's not" +" as efficient as a proper forward grip or bipod at controlling recoil, but " +"it's better than nothing." +msgstr "一个可拆卸的整体成型的护木,是无导轨枪械的标准配置。它在控制后坐力方面不如一个正规的前置握把或双脚架,但总比什么都没有要好。" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "fs2000" +msgstr "fs2000" #: lang/json/gunmod_from_json.py msgid "forward grip" @@ -108043,71 +104969,6 @@ msgid "" "powerful, but good enough for tight hallways." msgstr "一个紧凑型手电筒,安装在你的武器旁边,功率虽然不大,但是足够耐用。" -#: lang/json/gunmod_from_json.py -msgid "5.45 caliber conversion kit" -msgid_plural "5.45 caliber conversion kits" -msgstr[0] "5.45口径改装件" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " -"results in slight reductions to recoil." -msgstr "这套改装模组可以把6.54口径步枪改装成5.45口径,会略微减少后坐力。" - -#: lang/json/gunmod_from_json.py -msgid "6.54 caliber conversion kit" -msgid_plural "6.54 caliber conversion kits" -msgstr[0] "6.54口径改装件" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " -"results in increased recoil." -msgstr "这套改装模组可以把5.45口径步枪改装成6.54口径,会增加后坐力。" - -#: lang/json/gunmod_from_json.py -msgid "7.62 caliber conversion kit" -msgid_plural "7.62 caliber conversion kits" -msgstr[0] "7.62口径改装件" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " -"results in increased recoil." -msgstr "这套改装模组可以把6.54口径步枪改装成7.62口径,会增加后坐力。" - -#: lang/json/gunmod_from_json.py -msgid "Flaregun conversion kit" -msgid_plural "Flaregun conversion kits" -msgstr[0] "信号枪口径改装件" - -#: lang/json/gunmod_from_json.py -msgid "" -"Replacing several key parts flaregun to convert it to a .40 firearm. The " -"conversion results in reduced accuracy and increased recoil." -msgstr "这套改装模组可以把信号枪改装成.40口径,会降低命中率并提高后坐力。" - -#: lang/json/gunmod_from_json.py -msgid "" -"This genuine Herostratus flamethrower is ideal for light brush clearing and " -"self-defense." -msgstr "这把纯正的\"纵火犯赫罗斯特拉特\"火焰喷射器很适合用来点燃并清除灌木以及用于自卫。" - -#: lang/json/gunmod_from_json.py -msgid "E.M.A.S." -msgid_plural "E.M.A.S.s" -msgstr[0] "E.M.A.S." - -#: lang/json/gunmod_from_json.py -msgid "" -"ElectroMagnetic Acceleration System is an array of electromagnets attached " -"to the front of the barrel, accelerating any projectile fired to even higher" -" velocities, increasing damage, recoil and reducing accuracy. It does " -"however drain UPS charges when firing and due to extensive modifications the" -" gun can no longer operate without a UPS." -msgstr "" -"电磁加速系统是固定在枪管前部外表面的一个电磁铁阵列,可以加速任何的金属弹药到更高的速度,可以增加伤害,但也会提高后座力和降低命中率。但它需要使用UPS供电使用,并且进行了改装之后,枪械本身也一定要用UPS提供电能来使用,没电就不能用了。" - #: lang/json/gunmod_from_json.py msgid "underbarrel launcher" msgid_plural "underbarrel launchers" @@ -108202,28 +105063,13 @@ msgid "" msgstr "在你的枪上安装一个使用魔力结晶发光的蓝点瞄具以取代机械瞄准具。提高命中率,增加重量。" #: lang/json/gunmod_from_json.py -msgid "makeshift pistol bayonet" -msgid_plural "makeshift pistol bayonets" -msgstr[0] "简易手枪刺刀" - -#: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a bayonet meant for a pistol that consists of a mere " -"spike with some string. It still makes a decent melee weapon in a pinch " -"when attached to a pistol." -msgstr "用一条尖刺和一些线绑成的自制手枪刺刀。在紧要关头,它能让手枪变成不差的近战武器。" - -#: lang/json/gunmod_from_json.py -msgid "makeshift sword bayonet" -msgid_plural "makeshift sword bayonets" -msgstr[0] "简易长刺刀" +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "测试用消音器" #: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a sword bayonet that consists of a salvaged blade " -"with some string. It still makes a good melee weapon providing reach " -"attacks when attached to long arm or crossbow." -msgstr "用一片回收来的大刀片和一些线绑成的自制长刺刀。它可以装在长枪和十字弓上,然后就能把其作为一把趁手的近战武器使用了。" +msgid "Gun suppressor mod for testing." +msgstr "测试用的消音器模组。" #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" @@ -108265,20 +105111,16 @@ msgid "" "they are something else." msgstr "它们也许曾经是人类……不论新秩序团对它做过什么,它现在已经变成一个不同的物种了。" -#: lang/json/harvest_from_json.py -msgid "You butcher the fallen zombie and hack off its head" -msgstr "你屠宰了这只死去的丧尸,并砍下了它的头颅。" - #: lang/json/help_from_json.py msgid ": Introduction" msgstr ":游戏简介" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." -msgstr "" -"《大灾变:浩劫余生》是一款以末日为背景的Roguelike风格游戏,不知是幸运还是不幸,你在毁灭世界的恐怖事件中活了下来,但是你还能活多久呢?" +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future" +" looks pretty grim." +msgstr "《大灾变:浩劫余生》是一款以末日为背景的回合制生存游戏,不知是幸运还是不幸,你在毁灭世界的恐怖事件中活了下来,但是你还能活多久呢?" #: lang/json/help_from_json.py msgid "" @@ -108291,25 +105133,26 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are" +" exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." msgstr "" -"与大部分Roguelike游戏不同。与限制在一个每层只有少数区域可探索的地下城中不同,本游戏地图是无限大的,并会在你探索时向四面八方不断延伸。当然作为一款生存类Roguelike游戏,你的角色会饥饿、会口渴、会疲倦、会死亡。这个游戏基于真实性开发,所以你将会遇到现实生存中会遇到的所有困难,再加上大灾变自身的怪异和科幻性质所带来的困境。" +"虽然有些人认为本游戏是Roguelike游戏,但它与传统Roguelike有许多不同之处。与限制在一个每层只有少数区域可探索的地下城中不同,本游戏地图是无限大的,并会在你探索时向四面八方不断延伸。在游戏中,你的角色会饥饿、会口渴、会疲倦、会死亡。这个游戏基于真实性开发,所以你将会遇到现实生存中会遇到的所有困难,再加上大灾变自身的怪异和科幻性质所带来的困境。" #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help" +" you survive." msgstr "" -"相较于其他roguelike游戏,大灾变更为杰出的地方在于游戏的背景设定为近未来时代,所以场景中会出现各种武器、枪械、药物及各类现代工具来帮助你活得更久。" +"相较于其他游戏,《大灾变:浩劫余生》中有更多需要你关心的任务事项,但设定在现代的游戏背景提供了解决这些问题的手段。各种武器、枪械、药物及各类现代工具都能够帮助你活得更久。" #: lang/json/help_from_json.py msgid ": Movement" @@ -110041,10 +106884,6 @@ msgstr "铭刻物品" msgid "Cauterize a wound" msgstr "烧灼消毒伤口" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "制造丧尸奴仆" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "开始倒计时" @@ -110351,7 +107190,7 @@ msgstr "清洗软质物品" #: lang/json/item_action_from_json.py msgid "Wash hard items" -msgstr "清洗硬质物品" +msgstr "清洗坚硬物品" #: lang/json/item_action_from_json.py msgid "Wash items" @@ -110369,10 +107208,6 @@ msgstr "测量天气信息" msgid "Reload" msgstr "装填" -#: lang/json/item_action_from_json.py -msgid "Store/unload ammo" -msgstr "存储/取出弹药" - #: lang/json/item_action_from_json.py msgid "Make some noise" msgstr "制造噪音" @@ -110746,7 +107581,7 @@ msgstr "这件物品处于 近乎无形 的状态,可以与其它 #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This clothing lies close to the skin." -msgstr "这件衣服属于贴身衣物。" +msgstr "这件衣服 很贴身 。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -111472,6 +108307,18 @@ msgstr "切换弹药" msgid "Switch Firing Mode" msgstr "切换射击模式" +#: lang/json/keybinding_from_json.py +msgid "Toggle turret lines" +msgstr "切换炮塔射击线" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "切换自动锁定目标" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "切换移动视图/光标" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "左键选中" @@ -111504,10 +108351,6 @@ msgstr "显示更多说明信息" msgid "Travel to destination" msgstr "前往目的地" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "切换到移动的目标" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "以角色为中心定位地图" @@ -111724,6 +108567,10 @@ msgstr "大幅下移" msgid "Toggle category selection mode" msgstr "切换目录选择模式" +#: lang/json/keybinding_from_json.py +msgid "Toggle inventory view to show item categories" +msgstr "切换物品栏分类显示" + #: lang/json/keybinding_from_json.py msgid "Set item filter" msgstr "设置物品筛选" @@ -111949,7 +108796,6 @@ msgid "Disassemble items" msgstr "拆解物品" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "睡觉" @@ -112173,7 +109019,7 @@ msgstr "配色方案管理" msgid "Active World Mods" msgstr "当前世界已启用模组" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "切换移动模式(跑/走/蹲)" @@ -112467,6 +109313,30 @@ msgstr "显示家具说明" msgid "Describe terrain" msgstr "显示地形说明" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "切换列表" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "返回" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "更多" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "查看物品" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "取消交易" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "更改职业名称" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" msgstr "控制多个电子设备" @@ -112619,7 +109489,7 @@ msgstr "设置炮塔瞄准模式" msgid "Nothing" msgstr "无" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "这里没有什么有趣的东西。" @@ -112628,7 +109498,7 @@ msgstr "这里没有什么有趣的东西。" msgid "Crater" msgstr "弹坑" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "这里有个弹坑。" @@ -112637,7 +109507,7 @@ msgstr "这里有个弹坑。" msgid "College Kids" msgstr "大学生" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "这里有几具大学生的尸体。" @@ -112646,7 +109516,7 @@ msgstr "这里有几具大学生的尸体。" msgid "Drug Deal" msgstr "毒品交易" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "这里有几具毒贩的尸体。" @@ -112655,7 +109525,7 @@ msgstr "这里有几具毒贩的尸体。" msgid "Roadworks" msgstr "施工现场" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "这里的道路正在施工。" @@ -112664,7 +109534,7 @@ msgstr "这里的道路正在施工。" msgid "Road Mayhem" msgstr "事故现场" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "这里的道路发生过事故。" @@ -112673,7 +109543,7 @@ msgstr "这里的道路发生过事故。" msgid "Roadblock (Military)" msgstr "路障(军方)" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "这里有个军方的路障。" @@ -112682,7 +109552,7 @@ msgstr "这里有个军方的路障。" msgid "Roadblock (Bandits)" msgstr "路障(强盗)" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "这里有个强盗的路障。" @@ -112691,7 +109561,7 @@ msgstr "这里有个强盗的路障。" msgid "Minefield" msgstr "雷区" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "这里埋了许多地雷。" @@ -112700,17 +109570,17 @@ msgstr "这里埋了许多地雷。" msgid "Supply Drop" msgstr "空投物资" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "这里有几个空投补给箱。" -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" -msgstr "军方" +msgstr "士兵" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "这里有几具士兵的尸体。" @@ -112719,7 +109589,7 @@ msgstr "这里有几具士兵的尸体。" msgid "Helicopter Crash" msgstr "直升机坠毁地" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "这里有架坠毁的直升机。" @@ -112728,7 +109598,7 @@ msgstr "这里有架坠毁的直升机。" msgid "Scientists" msgstr "科学家" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "这里有几具科学家的尸体。" @@ -112737,7 +109607,7 @@ msgstr "这里有几具科学家的尸体。" msgid "Portal" msgstr "传送门" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "这里有个异界传送门。" @@ -112746,7 +109616,7 @@ msgstr "这里有个异界传送门。" msgid "Portal In" msgstr "传送门" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "这里有个异界传送门。" @@ -112755,7 +109625,7 @@ msgstr "这里有个异界传送门。" msgid "Spider Nest" msgstr "蜘蛛巢" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "这里有个蜘蛛巢。" @@ -112764,22 +109634,21 @@ msgstr "这里有个蜘蛛巢。" msgid "Wasp Nest" msgstr "黄蜂巢" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "这里有个黄蜂巢。" #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "蜘蛛" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "这里覆盖着蛛网。附近可能有蜘蛛。" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "这附近有食人族。" @@ -112788,7 +109657,7 @@ msgstr "这附近有食人族。" msgid "Jabberwock" msgstr "伽卜沃克" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "这附近有伽卜沃克。" @@ -112797,7 +109666,7 @@ msgstr "这附近有伽卜沃克。" msgid "Grove" msgstr "密林" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "这里生长着同种类的树木。" @@ -112806,7 +109675,7 @@ msgstr "这里生长着同种类的树木。" msgid "Shrubberry" msgstr "灌木丛" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "这里生长着同种类的灌木。" @@ -112815,7 +109684,7 @@ msgstr "这里生长着同种类的灌木。" msgid "Clearcut" msgstr "伐光林地" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." msgstr "这里的树木大多被砍倒了。" @@ -112824,7 +109693,7 @@ msgstr "这里的树木大多被砍倒了。" msgid "Pond" msgstr "池塘" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "这里有个小池塘。" @@ -112833,7 +109702,7 @@ msgstr "这里有个小池塘。" msgid "Stand of trees" msgstr "杂树林" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "这里零星地长着几棵树。" @@ -112842,7 +109711,7 @@ msgstr "这里零星地长着几棵树。" msgid "Tall grass" msgstr "茂密草丛" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "这里长着一片茂密草丛。" @@ -112851,7 +109720,7 @@ msgstr "这里长着一片茂密草丛。" msgid "Derelict shed" msgstr "废弃棚屋" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "这里有间废弃棚屋。" @@ -112860,7 +109729,7 @@ msgstr "这里有间废弃棚屋。" msgid "Clay Deposit" msgstr "黏土矿床" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "这里有个黏土矿床。" @@ -112869,8 +109738,8 @@ msgstr "这里有个黏土矿床。" msgid "Dead Vegetation" msgstr "枯萎植被" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "这里的植被都枯萎了。" @@ -112883,8 +109752,8 @@ msgstr "枯萎植被(点)" msgid "Burned Ground" msgstr "烧焦土地" -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "这里的土地都烧焦了。" @@ -112897,7 +109766,7 @@ msgstr "烧焦土地(点)" msgid "Marloss Pilgrimage" msgstr "马洛斯圣地" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "这里是马洛斯圣地。" @@ -112906,7 +109775,7 @@ msgstr "这里是马洛斯圣地。" msgid "Casings" msgstr "弹壳" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "这里有些空弹壳。" @@ -112915,7 +109784,7 @@ msgstr "这里有些空弹壳。" msgid "Looters" msgstr "掠夺者" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "这里有些打劫路人的掠夺者。" @@ -112924,12 +109793,12 @@ msgstr "这里有些打劫路人的掠夺者。" msgid "Corpses" msgstr "尸体" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "这里有些在大灾变中不幸丧生的人的尸体。" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "一个黄蜂巢。" @@ -112938,7 +109807,7 @@ msgstr "一个黄蜂巢。" msgid "Dermatik Nest" msgstr "寄生蜂蜂巢" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "一个寄生蜂蜂巢。" @@ -112947,7 +109816,7 @@ msgstr "一个寄生蜂蜂巢。" msgid "Prison Bus" msgstr "囚车" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "一辆囚车。" @@ -112956,7 +109825,7 @@ msgstr "一辆囚车。" msgid "Mass Grave" msgstr "集体墓地" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "这里有一座大型集体墓地。" @@ -112965,11 +109834,20 @@ msgstr "这里有一座大型集体墓地。" msgid "Grave" msgstr "墓地" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "这里有一座墓地。" +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "丧尸陷阱" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "这里有个吸引丧尸的陷阱。" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -112986,8 +109864,7 @@ msgid "High Security Consolidated Computerized Bank of the Treasury" msgstr "财政部统一电子化银行(高安全等级)" #. ~ Computer access denied warning -#: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py src/mapgen.cpp -#: src/mapgen.cpp +#: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "" "ERROR! Access denied! Unauthorized access will be met with lethal force!" msgstr "错误!拒绝访问!未授权的访问者将会受到致命性攻击!" @@ -114285,16 +111162,6 @@ msgid "" "years.'" msgstr "沃特利家族殡仪馆服务。已为新英格兰服务了三百年。" -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Hydroponics Entrance" -msgstr "水培区入口" - -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Missile Control" -msgstr "导弹控制台" - #: lang/json/martial_art_from_json.py msgid "No style" msgstr "无流派" @@ -114508,6 +111375,22 @@ msgstr "你咬紧牙关,准备好好干上一架。" msgid "%s gets ready to brawl." msgstr "%s 摆出一副要斗殴的姿势。" +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "强化格挡" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': +#. 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a time.\n" +"\n" +"+1 Block attempts." +msgstr "" +"战斗经验使你能够一次格挡多个敌人的攻击。\n" +"\n" +"格挡次数+1。" + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "巴西战舞" @@ -116293,48 +113176,82 @@ msgid "Sojutsu" msgstr "日式枪术" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Blade-work" +msgid "CRIT Blade-work" msgstr "C.R.I.T 刀术" -#. ~ Description for martial art 'C.R.I.T Blade-work' +#. ~ Description for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"An offensive style that is centered around rapid slashes and prodding. Each" -" attack landed increases combat ability" -msgstr "一种以快速劈砍和刺击为重的进攻风格。每次攻击命中都会提升战斗能力" +"An offensive style centered around rapid slashes and prodding. Each attack " +"landed increases combat ability but leaves you increasingly vunerable" +msgstr "一种以快速劈砍和刺击为重的进攻风格。每次攻击命中都会提升战斗能力,但让你越来越容易受伤。" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Initiate blade-work." -msgstr "刀术程序已启动。" +msgid "You prepare to whittle down your enemies." +msgstr "你准备好逐渐削残敌人。" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py #, python-format msgid "%s initiates blade-work." msgstr "%s 启动了生化刀术。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Intensity" -msgstr "C.R.I.T之强度" +msgid "Unwavering Edge" +msgstr "坚不可摧的刀锋" -#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Unwavering Edge' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Additional DMG, and Arpen per stack. Max of 5 stacks" -msgstr "每层增加伤害和穿透。可叠加 5 次" +msgid "" +"Gain minor Accuracy, Cutting and Stabbing Arpen per stack. Greatly reduces " +"dodge skill. 2 stacks max" +msgstr "每层增加少量命中,斩击和刺击护甲穿透。极大降低闪避技能。可叠加 2 次" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Calculation" -msgstr "C.R.I.T之演算" +msgid "Ruthlessness" +msgstr "冷酷无情" -#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Ruthlessness' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"Increased accuracy along with minor cut and stab damage with piercing " -"capability." -msgstr "增加命中率和少量砍、刺伤害,以及护甲穿透。" +"Additional Stabbing and Cutting damage per stack. Reduces dodge attempts. 4" +" stacks max." +msgstr "每层增加额外的斩击和刺击伤害。减少闪避次数。可叠加 4 次" + +#: lang/json/martial_art_from_json.py +msgid "Rending Strikes" +msgstr "撕裂之击" + +#. ~ Description of buff 'Rending Strikes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Additional Armor penetration per stack. Further reduces dodge attempts. 3 " +"stacks max." +msgstr "每层增加额外的护甲穿透。进一步减少闪避次数。可叠加 3 次" + +#: lang/json/martial_art_from_json.py +msgid "Calculating Eyes" +msgstr "精于算计的眼神" + +#. ~ Description of buff 'Calculating Eyes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"You have been taught how to properly utilize small to medium-sized sharp " +"weaponry. Gain great Cutting and Stabbing Armor Penetration on top of minor " +"Accuracy" +msgstr "你已经学会如何正确使用小型和中型利刃。获得大量斩击和刺击护甲穿透并且提升少量命中率" + +#: lang/json/martial_art_from_json.py +msgid "Honed Movements" +msgstr "久经磨练的动作" + +#. ~ Description of buff 'Honed Movements' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Your skill and handling with sharp weaponry has improved. Gain extra Cutting" +" and Stabbing damage." +msgstr "你对利刃的掌控能力大大提高了。获得额外的斩击和刺击伤害加成。" #: lang/json/martial_art_from_json.py msgid "C.R.I.T Enforcement" @@ -116360,66 +113277,302 @@ msgid "%s draws a line in the sand." msgstr "%s 在地上画出一条线。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Buildup" -msgstr "C.R.I.T之积聚" +msgid "Bulwark" +msgstr "防御壁垒" -#. ~ Description of buff 'C.R.I.T Buildup' for martial art 'C.R.I.T -#. Enforcement' +#. ~ Description of buff 'Bulwark' for martial art 'C.R.I.T Enforcement' #: lang/json/martial_art_from_json.py -msgid "+0.05 armor and other small bonuses per stack. Max of 10 stacks" -msgstr "每层+0.05护甲,并获得其他微弱加成。可叠加 10 次" +msgid "+0.5 armor and other small bonuses per stack. Max of 2 stacks" +msgstr "每层获得 +0.5 护甲和其他少量增益。可叠加 2 次" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Guard" -msgstr "C.R.I.T之守护" +msgid "Unyielding Front" +msgstr "不屈前锋" -#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement' +#. ~ Description of buff 'Unyielding Front' for martial art 'C.R.I.T +#. Enforcement' #: lang/json/martial_art_from_json.py -msgid "+1 armor. STR provides accuracy and minor bash arpen." -msgstr "+1护甲。力量提供命中和少量钝击伤害,以及护甲穿透。" +msgid "" +"Stand strong in the face of adversity. +1 armor. STR provides accuracy and " +"minor bash arpen." +msgstr "顽强地站着面对一切困境。护甲+1。力量提供命中和少量钝击护甲穿透。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T CQB" +msgid "CRIT CQB" msgstr "C.R.I.T 格斗术" -#. ~ Description for martial art 'C.R.I.T CQB' +#. ~ Description for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "A style centered around rapid strikes and piercing jabs. Each attack landed" -" adds a plethora of combat bonuses. 25 percent bash damage." -msgstr "一种以快速打击和刺穿为中心的战斗风格。每次攻击命中都会增加额外的连击奖励。25% 钝击伤害。" +" adds a plethora of combat bonuses." +msgstr "一种以快速打击和刺穿为中心的战斗风格。每次攻击命中都会增加额外的连击奖励。" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py -msgid "Initiate CQB." -msgstr "格斗术程序已启动。" +msgid "You shift your weight for the oncoming fight." +msgstr "你调整重心,准备好面对即将到来的战斗。" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py #, python-format -msgid "%s initiates CQB." -msgstr "%s 启动了生化格斗术。" +msgid "%s prepares for hand-to-hand battle." +msgstr "%s 准备近战。" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Tenacity" -msgstr "C.R.I.T之坚韧" +msgid "Fluid Tenacity" +msgstr "流体韧性" -#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Fluid Tenacity' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "+Atk Speed and other small bonuses based on DEX per stack. Max of 5 stacks" msgstr "基于敏捷,每层增加攻击速度和其他微弱加成。可叠加 5 次" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Initiative" -msgstr "C.R.I.T之主动" +msgid "Tactful Initiative" +msgstr "灵活主动" + +#. ~ Description of buff 'Tactful Initiative' for martial art 'CRIT CQB' +#: lang/json/martial_art_from_json.py +msgid "" +"You have gained an advantage by always remaing mindful of common weaknesses." +" DEX provides dodge ability, accuracy and armor penetration." +msgstr "你总是能够注意到敌人常见的弱点,从而获得了主动。敏捷提供闪避,命中和护甲穿透。" + +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "漠风" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming strikes." +" The complex spinning and slashing of the curved blade incorporated into " +"many Desert Wind maneuvers are in fact carefully honed gestures that evoke " +"the power of fire, if performed correctly and with the proper focus." +msgstr "" +"漠风流派的招式专注于快速移动和使用旋转及火焰打击敌人。事实上,许多漠风招式中所采用的复杂旋转和弯刀劈砍动作,都是经过精心磨练的手势,能唤醒火焰之力,但需要正确的操作以及一定的专注。" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "随着你摆出一副奔跑的战斗姿态时,你感到一股热浪席卷过体内。" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "%s 摆出了一个奔跑的战斗姿态。" + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" +msgstr "风行" + +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" +"当你快速远离敌人时,一股温暖的微风在你周围旋转。\n" +"\n" +"闪避技能+1。\n" +"持续 1 回合。" + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "西风之舞" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" +"你优雅地避开敌人的攻击,像拂过沙丘的沙漠西风一样不断旋转。\n" +"\n" +"闪避技能+1,闪避次数+1\n" +"持续 1 回合。" + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" +msgstr "钢魂" + +#. ~ Description for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so" +" that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must" +" inevitably." +msgstr "" +"真正的敏捷在于头脑,而不是身体。一个钻研钢魂流派的学徒会不断磨练自身的感知并训练自己的思维,以便他能够在刹那之间做出行动,以至于其他人甚至无法察觉。这种将思维和行动速度相互关联的必然结果就是把头脑当作战场的概念。一个在他心中早已被打败的敌人必然也会在现实中被打败。" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "你集中精神,并瞬间变得安定不动。" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "%s 瞬间变得安定不动。" + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "神速体" -#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': +#. 'Diamond Mind'}' #: lang/json/martial_art_from_json.py +#, no-python-format msgid "" -"DEX provides dodge ability, accuracy and minor cut / stab damage with slight" -" piercing capability. 50 Percent Bash Damage." -msgstr "敏捷提供闪避、命中和少量砍/刺伤害及护甲穿透。50% 钝击伤害。" +"You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" +"因为自信,饱经训练,而且精神明净,你的动作比普通人略快。每次行动都能给你增添少许优势。\n" +"\n" +"移动耗时-10%" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "疑虑珍珠" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" +"每一次失误,让你的对手变得更加没有信心,他们的疑虑就像无助的牡蛎嘴里的一颗恼人的珍珠。\n" +"\n" +"闪避次数+1\n" +"持续 1 回合。可叠加 2 次" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "海拉尔剑术" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "这种罕见的武术流派被历代传奇英雄所使用。海拉尔剑术专注于提升进攻和防御的机动性,通过旋转、跳跃和翻滚来迷惑敌人并从意想不到的角度攻击。" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "你开始轻柔地来回跨步。" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "%s 开始轻柔地来回跨步。" + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "战斗杂技" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" +"永远保持轻盈的步伐。闪避总比被击中好。\n" +"\n" +"闪避技能+1。" + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "中级战斗杂技" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art +#. '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" +"经过大量的练习,你在战斗中变得更加敏捷。\n" +"\n" +"闪避技能+1。" + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "战斗杂技大师" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': +#. 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" +"你经历了这么多的战斗,你的闪避技能已经成为一流!\n" +"\n" +"闪避技能+1。" + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "冲刺攻击" + +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" +"利用自身动能,你冲向敌人,进行强力打击。\n" +"\n" +"+10% 伤害。\n" +"持续 1 回合。可叠加 3 次。" + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" +msgstr "子弹时间" + +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"When you perfectly dodge an attack, you can attack rapidly for a short time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." +msgstr "" +"当你完全闪避攻击时,你可以在短时间内快速还击。\n" +"\n" +"-25%行动耗时。\n" +"持续 1 回合。" #: lang/json/martial_art_from_json.py msgid "Panzer Kunst" @@ -116504,7 +113657,8 @@ msgstr "彻底损坏" msgid "Resin" msgstr "树脂" -#: lang/json/material_from_json.py src/veh_interact.cpp +#: lang/json/material_from_json.py lang/json/material_from_json.py +#: src/veh_interact.cpp msgid "dented" msgstr "凹损" @@ -116725,20 +113879,20 @@ msgid "Junk Food" msgstr "垃圾食品" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" -msgstr "美食广场美食" +msgid "Foodplace's delicious foodstuff" +msgstr "美食广场美食™" #: lang/json/material_from_json.py msgid "Kevlar" msgstr "凯夫拉" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" -msgstr "硬凯夫拉" +msgid "Layered Kevlar" +msgstr "多层凯夫拉" #: lang/json/material_from_json.py -msgid "scarred" -msgstr "划伤" +msgid "Rigid Kevlar" +msgstr "硬凯夫拉" #: lang/json/material_from_json.py msgid "Lead" @@ -116866,7 +114020,7 @@ msgstr "蘑菇" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "水" @@ -116938,6 +114092,10 @@ msgstr "钛" msgid "Graphene Weave" msgstr "石墨烯编织" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "划伤" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "奥术皮肤" @@ -122397,47 +119555,6 @@ msgid "" " and stumbles." msgstr "%1$s 试图用巨木棒砸碎 的 %2$s,但是砸空并摔倒了!" -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes you!" -msgstr "%1$s 闪瞎了你!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes at !" -msgstr "%1$s 闪瞎了 !" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash you, but fails to." -msgstr "%1$s 试图闪瞎你,但是失败了。" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash , but fails to." -msgstr "%1$s 试图闪瞎 ,但是失败了。" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects you with a syringe!" -msgstr "%1$s 用针管给你注射了什么东西!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects with a syringe!" -msgstr "%1$s 用针管给 注射了什么东西!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "%1$s 试图用针管给你注射什么东西,但是没能穿透护甲!" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "" -"The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "%1$s 试图用针管给 注射什么东西,但是没能穿透护甲!" - #: lang/json/morale_type_from_json.py #, no-python-format msgid "Enjoyed %s" @@ -122540,6 +119657,10 @@ msgstr "讨厌 %s" msgid "Ate Human Flesh" msgstr "吃了人肉" +#: lang/json/morale_type_from_json.py +msgid "Ate Demihuman Flesh" +msgstr "吃了半兽人肉" + #: lang/json/morale_type_from_json.py msgid "Ate Meat" msgstr "吃了肉" @@ -122737,6 +119858,111 @@ msgstr "失败" msgid "Debug Morale" msgstr "调试心情值" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "行走" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "走" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp src/weather.cpp +msgid "W" +msgstr "西" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "你开始行走。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "你轻轻触碰你的马,使它平稳地小跑。" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "你将机甲的腿部电机功率设置为疾行挡。" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "奔跑" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "跑" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "跑" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "你加快速度,开始奔跑。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "你策马疾驰。" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "你将机甲的腿部电机功率设置为最高挡。" + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "你力竭了,无法奔跑。" + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "你的马太累了,跑不动了。" + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "你的机甲的腿部电机无法更快地工作了。" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "蹲伏" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "蹲" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "蹲" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "你开始蹲伏。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "你放慢坐骑速度,开始步行。" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "你将机甲的腿部电机功率设置为最低挡。" + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp msgid "Any" @@ -124287,7 +121513,6 @@ msgid "Good Hearing" msgstr "听觉发达" #. ~ Description for {'str': 'Good Hearing'} -#. ~ Description for Good Hearing #: lang/json/mutation_from_json.py msgid "" "Your hearing is better than average, and you can hear distant sounds more " @@ -124332,7 +121557,6 @@ msgid "Indefatigable" msgstr "精力充沛" #. ~ Description for {'str': 'Indefatigable'} -#. ~ Description for Indefatigable #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -124375,7 +121599,6 @@ msgid "Fast Healer" msgstr "快速自愈" #. ~ Description for {'str': 'Fast Healer'} -#. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" "You heal faster when sleeping and will even recover a small amount of HP " @@ -124419,7 +121642,6 @@ msgid "Pain Resistant" msgstr "疼痛抵抗" #. ~ Description for {'str': 'Pain Resistant'} -#. ~ Description for Pain Resistant #: lang/json/mutation_from_json.py msgid "You have a high tolerance for pain." msgstr "你的神经与精神更加坚韧,对疼痛有着很高的忍耐性。" @@ -124429,7 +121651,6 @@ msgid "Night Vision" msgstr "夜视" #. ~ Description for {'str': 'Night Vision'} -#. ~ Description for Night Vision #: lang/json/mutation_from_json.py msgid "" "You possess natural night vision, and can see further in the dark than most." @@ -124470,7 +121691,7 @@ msgstr "你的脚掌厚度与脚底反射区较为坚韧,即便脚掌没有保 #: lang/json/mutation_from_json.py msgid "Tough" -msgstr "身强力壮" +msgstr "身强体壮" #. ~ Description for {'str': 'Tough'} #: lang/json/mutation_from_json.py @@ -124519,8 +121740,9 @@ msgstr "打包专家" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." -msgstr "你总是能找到空间塞进点东西,整理和存放物品时效率更高。你的装备容积增加40%。" +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." +msgstr "你收拾起东西来很有效率!你从包里取东西的速度快10%。" #: lang/json/mutation_from_json.py msgid "Strong Back" @@ -124554,10 +121776,11 @@ msgstr "餐桌礼仪强迫症" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale" -" bonus." -msgstr "你从小被教导着使用正确的餐桌礼仪。现在你甚至不敢想象你不用桌椅吃饭的样子。不用桌椅吃饭会让你沮丧,像文明人一样吃饭会带给你好心情。" +"you can't even think about eating without a table or not taking your time. " +"Eating without it frustrates you, but eating like a civilized person gives " +"you a bigger morale bonus." +msgstr "" +"你从小就被教导需要时刻遵守正规餐桌礼仪。即便是现在,你依然无法想象自己不在桌椅吃饭,或是不细嚼慢咽慢慢吃饭的样子。不在桌椅上吃饭会让你沮丧,像文明人一样吃饭会带给你好心情。" #: lang/json/mutation_from_json.py msgid "Strong Stomach" @@ -124587,7 +121810,6 @@ msgid "Deft" msgstr "灵巧" #. ~ Description for {'str': 'Deft'} -#. ~ Description for Deft #: lang/json/mutation_from_json.py msgid "" "While you're not any better at melee combat, you are better at recovering " @@ -124657,7 +121879,6 @@ msgid "Animal Empathy" msgstr "动物共鸣" #. ~ Description for {'str': 'Animal Empathy'} -#. ~ Description for Animal Empathy #: lang/json/mutation_from_json.py msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" @@ -124670,7 +121891,6 @@ msgid "Animal Kinship" msgstr "亲近动物" #. ~ Description for {'str': 'Animal Kinship'} -#. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py msgid "" "Something about your presence is calming to animals, and they will treat you" @@ -124683,7 +121903,6 @@ msgid "Terrifying" msgstr "恐惧气息" #. ~ Description for {'str': 'Terrifying'} -#. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " @@ -124768,7 +121987,6 @@ msgid "Light Step" msgstr "轻手轻脚" #. ~ Description for {'str': 'Light Step'} -#. ~ Description for Light Step #: lang/json/mutation_from_json.py msgid "" "You make less noise while walking. You're also less likely to set off " @@ -124815,7 +122033,6 @@ msgid "Cannibal" msgstr "食人族" #. ~ Description for {'str': 'Cannibal'} -#. ~ Description for Cannibal #: lang/json/mutation_from_json.py msgid "" "For your whole life you've been forbidden from indulging in your peculiar " @@ -124823,6 +122040,17 @@ msgid "" "tell you that you can't eat people." msgstr "你喜好人肉,但你这一辈子都被禁止从你的特殊嗜好里获得快感,不过现在是世界末日,再没有人可以阻止你享用新鲜人肉了。" +#: lang/json/mutation_from_json.py +msgid "Strict Humanitarian" +msgstr "恪守人类分界" + +#. ~ Description for {'str': 'Strict Humanitarian'} +#: lang/json/mutation_from_json.py +msgid "" +"You'd never eat people, but these things that look vaguely human from " +"elsewhere are definitely not people." +msgstr "你绝不会吃下任何含有人肉成分的食品,但这些看起来像人的家伙根本就不是人类。" + #: lang/json/mutation_from_json.py msgid "Psychopath" msgstr "无情" @@ -124909,7 +122137,6 @@ msgid "Weak Scent" msgstr "体味微弱" #. ~ Description for {'str': 'Weak Scent'} -#. ~ Description for Weak Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is quite weak. Animals that track your scent will do so with " @@ -125101,9 +122328,9 @@ msgstr "杂乱无章" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." -msgstr "你整理和存放物品时总是没法好好利用空间。你的装备容积减少40%。" +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." +msgstr "你的物品总是放得一团糟。你从包里取东西的速度慢10%。" #: lang/json/mutation_from_json.py msgid "Illiterate" @@ -125147,7 +122374,6 @@ msgid "Insomniac" msgstr "失眠症" #. ~ Description for {'str': 'Insomniac'} -#. ~ Description for Insomniac #: lang/json/mutation_from_json.py msgid "" "You have a hard time falling asleep, even under the best circumstances!" @@ -125323,7 +122549,6 @@ msgid "Strong Scent" msgstr "强烈体味" #. ~ Description for {'str': 'Strong Scent'} -#. ~ Description for Strong Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is particularly strong. It's not offensive to humans, but " @@ -125442,10 +122667,6 @@ msgstr "" "你只专注于一项技能,对其他技能都不甚了解。除了你等级最高的技能外,你的所有其他技能经验获取速度减半。此外,当与学得快特性配合时,将会使所有技能的学习速度减慢。\n" " " -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "和平主义" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -125479,7 +122700,6 @@ msgid "Weak Stomach" msgstr "痨肠寡肚" #. ~ Description for {'str': 'Weak Stomach'} -#. ~ Description for Weak Stomach #: lang/json/mutation_from_json.py msgid "You are more likely to throw up from food poisoning, alcohol, etc." msgstr "你患有慢性胃病,在食物中毒或饮酒后有更大的几率呕吐。" @@ -125522,7 +122742,6 @@ msgid "Albino" msgstr "白化症" #. ~ Description for {'str': 'Albino'} -#. ~ Description for Albino #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " @@ -125535,7 +122754,6 @@ msgid "Flimsy" msgstr "瘦弱" #. ~ Description for {'str': 'Flimsy'} -#. ~ Description for Flimsy #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -125592,7 +122810,6 @@ msgid "High Night Vision" msgstr "高级夜视" #. ~ Description for {'str': 'High Night Vision'} -#. ~ Description for High Night Vision #: lang/json/mutation_from_json.py msgid "" "You can see incredibly well in the dark! Activate to toggle NV-visible " @@ -125758,7 +122975,6 @@ msgid "Regeneration" msgstr "急速自愈" #. ~ Description for {'str': 'Regeneration'} -#. ~ Description for Regeneration #: lang/json/mutation_from_json.py msgid "Your flesh regenerates from wounds incredibly quickly." msgstr "你的机体自愈能力发生了变异,你在受创时,身体会以难以置信的速度愈合伤口。" @@ -126508,7 +123724,6 @@ msgid "Mammal Pheromones" msgstr "动物信息素" #. ~ Description for {'str': 'Mammal Pheromones'} -#. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" "Your body produces low-level pheromones which put mammals at ease. They " @@ -126579,7 +123794,6 @@ msgid "Venomous" msgstr "毒素攻击" #. ~ Description for {'str': 'Venomous'} -#. ~ Description for Venomous #: lang/json/mutation_from_json.py msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " @@ -127628,7 +124842,7 @@ msgstr "你的生理系统已经足够驱动你巨大的身形,惊人的力量 #: lang/json/mutation_from_json.py msgid "Strong" -msgstr "身强体壮" +msgstr "身强力壮" #. ~ Description for {'str': 'Strong'} #: lang/json/mutation_from_json.py @@ -128374,7 +125588,6 @@ msgid "Solar Sensitivity" msgstr "阳光过敏" #. ~ Description for {'str': 'Solar Sensitivity'} -#. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " @@ -129187,7 +126400,8 @@ msgstr "蜘蛛人" msgid "Well, maybe you'll just have to make your own world wide web." msgstr "你已经变异为蜘蛛人,你也许可以自己搞个万维网。" -#: lang/json/mutation_from_json.py lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/mutation_from_json.py +#: lang/json/npc_from_json.py msgid "Survivor" msgstr "幸存者" @@ -129421,9 +126635,9 @@ msgstr "直升机驾驶员" #. ~ Description for Helicopter Pilot #: lang/json/mutation_from_json.py msgid "" -"You are a trained pilot, you wonder if you will ever have the chance to fly " -"again." -msgstr "你是一名训练有素的飞行员,你想知道你是否有机会再次飞行。" +"You are a trained helicopter pilot. This makes you one of the few living " +"people who can operate a helicopter after the Cataclysm." +msgstr "你是个受过训练的直升机飞行员。这使你成为少数几个能在大灾变之后能操纵直升机的人之一。" #: lang/json/mutation_from_json.py msgid "SWAT Officer" @@ -129515,9 +126729,10 @@ msgstr "滑冰者" #. ~ Description for {'str': 'Skater'} #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the Cataclysm," -" and are better at staying on your feet when checked or blocked." -msgstr "在大灾变前,你花费了不少时间学习如何操控这个小轱辘,现在可以在推推搡搡中也能站得稳稳当当。" +"You are skilled in maneuvering on skates. You suffer less dodging penalties" +" and are less likely to fall down if hit in melee combat while you're " +"wearing rollerskates or rollerblades." +msgstr "你擅长滑冰。当你穿着滚轴溜冰鞋或者直排轮滑鞋时,你受到的闪避惩罚更少,在近战中被击中时摔倒的几率也更小。" #: lang/json/mutation_from_json.py msgid "Martial Artist" @@ -129742,10 +126957,10 @@ msgid "Mind the bugs, would you kindly?" msgstr "当心那些BUG,好吗?" #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" +msgid "Debug Very Strong Back" msgstr "调试用携带能力" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "能让你的\"昆虫(bug)\"下颌骨携带你体重15倍的东西。" @@ -129865,10 +127080,21 @@ msgid "" " off-limits to you, even if your life depended on it." msgstr "无论是出于个人选择还是童年阴影,你不愿驾驶载具,就算事关生死也不能接受。" +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "快速反应" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "你反应很快,让你更容易闪避敌人的攻击。" + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "幸存者故事" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -130870,15 +128096,15 @@ msgid "Your muscles are quite slow to move. You move 25% slower." msgstr "你的肌肉十分不适合运动,你移动速度下降25%。" #: lang/json/mutation_from_json.py -msgid "C.R.I.T Melee Training" +msgid "CRIT Melee Training" msgstr "C.R.I.T近战训练" -#. ~ Description for C.R.I.T Melee Training +#. ~ Description for CRIT Melee Training #: lang/json/mutation_from_json.py msgid "" -"You have received defensive training. For every hit you land, gain various " -"miniscule combat bonuses that scale off of your stats." -msgstr "你接受过防身训练,你每次命中敌人都可以获得些许战斗增益,取决于你的各种属性。" +"You have received CQB training. For every hit you land, gain themed combat " +"bonuses." +msgstr "你接受过近战训练,你每次命中敌人都可以获得一系列增益。" #: lang/json/mutation_from_json.py msgid "Shadow Meld" @@ -130923,18 +128149,6 @@ msgid "" "Emerge from the grave of the old world, and become the night once again." msgstr "从旧世界的坟墓中浮现,再次成为黑夜。" -#. ~ Description for Pretty -#: lang/json/mutation_from_json.py -msgid "" -"You are a sight to behold. NPCs who care about such things will react more " -"kindly to you." -msgstr "你的外貌十分出众,习惯以貌取人的NPC或许对你会更有好感。" - -#. ~ Description for Thin-Skinned -#: lang/json/mutation_from_json.py -msgid "Your skin is fragile. Cutting damage is slightly increased for you." -msgstr "你的皮肤组织很脆弱,轻轻一划就会产生创伤,斩击伤害对你的伤害略有增加。" - #: lang/json/mutation_from_json.py msgid "Forest Guardian" msgstr "丛林守护者" @@ -130978,6 +128192,40 @@ msgstr "你用锋刃撕裂了 %s" msgid "%1$s tears into %2$s with their blades" msgstr "%1$s 用锋刃撕裂了 %2$s" +#: lang/json/mutation_from_json.py +msgid "Spurs" +msgstr "骨刺" + +#. ~ Description for Spurs +#: lang/json/mutation_from_json.py +msgid "" +"Spurs of bone have erupted all across your arms. A thick, biological " +"secretion oozes out of them promising extra harm to enemies." +msgstr "你手臂上到处都是骨刺。它们分泌出一种浓厚的生化分泌物,让你能够对敌人造成额外的伤害。" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "You ravage %s with your arms" +msgstr "你用手臂上的骨刺猛刺 %s" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "%1$s ravages %2$s with their arm spurs" +msgstr "%1$s 用手臂上的骨刺猛刺 %2$s" + +#: lang/json/mutation_from_json.py +msgid "Persistent Body" +msgstr "持久之躯" + +#. ~ Description for Persistent Body +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "" +"As you move, the world seems to breath life and energy into your limbs. You " +"simply rarely tire less readily than others. Your maximum stamina is 50% " +"higher than usual." +msgstr "当你移动的时候,周围的世界似乎通过四肢向你体内注入了生命和能量。你比普通人更不容易疲劳。你的最大耐力增加50%。" + #: lang/json/mutation_from_json.py msgid "RP: Combatant" msgstr "角色:战士" @@ -131044,6 +128292,40 @@ msgid "" "unarmed combat." msgstr "古老的酒后斗殴术对你来说如同是与生俱来一般!在酒精的作用下,你的近战能力将大幅上升,尤其是徒手格斗。" +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "英雄之魂" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "你研究过古代英雄的事迹和传说。研究中你学会了一种古老的武术流派,称为海拉尔剑术。" + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "斗气击" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "谁说要用武器呢?你在徒手攻击时能够造成更多的近战伤害。伤害随着你的徒手格斗技能等级提升而提升。" + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "魔术师" @@ -131228,6 +128510,38 @@ msgstr "魔力汲取" msgid "Mana Vortex" msgstr "魔力漩涡" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "你可以在你的身体里储存比正常多很多的魔力。" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "你的自然魔力再生比正常快很多。" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "你可以感觉到你体内的魔力比正常情况下要好得多,现在你能获得更高的魔力储备上限增加150%。" + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "次等魔力容纳" @@ -131250,11 +128564,6 @@ msgstr "你可以在你的身体里储存比正常多的魔力。" msgid "Greater Mana Efficiency" msgstr "高等魔力容纳" -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "你可以在你的身体里储存比正常多很多的魔力。" - #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" msgstr "较低魔力容纳" @@ -131304,11 +128613,6 @@ msgstr "你的自然魔力再生比正常速度快。" msgid "Greater Mana Regeneration" msgstr "高等魔力再生" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "你的自然魔力再生比正常快很多。" - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "稍慢魔力再生" @@ -131362,13 +128666,6 @@ msgstr "你可以感觉到你体内的魔力比正常情况下要好,魔力储 msgid "Greater Mana Sensitivity" msgstr "高等魔力敏感" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to" -" tap into more of your reserves." -msgstr "你可以感觉到你体内的魔力比正常情况下要好得多,现在你能获得更高的魔力储备上限增加150%。" - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "稍弱魔力敏感" @@ -131773,26 +129070,6 @@ msgstr "米·戈爱好者" msgid "I've been studying the mi-go for years…" msgstr "我已经研究了米·戈很多年了……" -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "蜂群帮工头" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "我活了一辈子,全世界都在和我作对,现在有什么不同吗?" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "集团湿活特工" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive" -" it's twilight." -msgstr "在旧世界的阴影下工作让我过得很好。我肯定也能活过这个黄昏。" - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "蜥蜴变种人" @@ -132003,6 +129280,26 @@ msgid "" "and I don't plan to keep being one." msgstr "我在找迅猛龙诱变剂……这个世界已经不适合人类了,因此我也不打算做人了。" +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "蜂群帮工头" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "我活了一辈子,全世界都在和我作对,现在有什么不同吗?" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "集团湿活特工" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive" +" it's twilight." +msgstr "在旧世界的阴影下工作让我过得很好。我肯定也能活过这个黄昏。" + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "乳齿象基因擢升战士" @@ -132745,18 +130042,10 @@ msgstr "汽车角" msgid "shipwreck" msgstr "沉船" -#: lang/json/overmap_terrain_from_json.py -msgid "razorclaw nest" -msgstr "利爪怪巢穴" - #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" msgstr "无线发射塔" -#: lang/json/overmap_terrain_from_json.py -msgid "radio tower roof" -msgstr "无线发射塔(屋顶)" - #: lang/json/overmap_terrain_from_json.py msgid "looted building" msgstr "搜刮过的建筑物" @@ -132769,10 +130058,6 @@ msgstr "斜坡测试区域" msgid "campsite" msgstr "露营地" -#: lang/json/overmap_terrain_from_json.py -msgid "campsites" -msgstr "露营地" - #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" msgstr "未完成的小屋" @@ -132985,6 +130270,18 @@ msgstr "generic_junkyard" msgid "generic_brushland" msgstr "generic_brushland" +#: lang/json/overmap_terrain_from_json.py +msgid "rural road" +msgstr "乡村公路" + +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "泥土路" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural building" +msgstr "乡村建筑" + #: lang/json/overmap_terrain_from_json.py msgid "sugar house" msgstr "枫糖棚屋" @@ -132993,18 +130290,10 @@ msgstr "枫糖棚屋" msgid "sugar house roof" msgstr "枫糖棚屋(屋顶)" -#: lang/json/overmap_terrain_from_json.py -msgid "rural road" -msgstr "乡村公路" - #: lang/json/overmap_terrain_from_json.py msgid "farm field" msgstr "农田" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house" -msgstr "农舍" - #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" msgstr "农舍(屋顶)" @@ -133021,6 +130310,10 @@ msgstr "农场谷仓(屋顶)" msgid "farm" msgstr "农场" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house" +msgstr "农舍" + #: lang/json/overmap_terrain_from_json.py msgid "grape farm" msgstr "葡萄园" @@ -133113,10 +130406,6 @@ msgstr "鸡舍" msgid "chicken coop roof" msgstr "鸡舍(屋顶)" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" -msgstr "农舍(二楼)" - #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" msgstr "小型墓地" @@ -133133,10 +130422,6 @@ msgstr "私酿酒庄(屋顶)" msgid "tree farm" msgstr "林场" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "泥土路" - #: lang/json/overmap_terrain_from_json.py msgid "silos" msgstr "筒仓" @@ -133157,6 +130442,10 @@ msgstr "乡村民宅(屋顶)" msgid "farm road" msgstr "农场路" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house 2nd floor" +msgstr "农舍(二楼)" + #: lang/json/overmap_terrain_from_json.py msgid "barn roof" msgstr "谷仓(屋顶)" @@ -133269,6 +130558,10 @@ msgstr "电器店" msgid "electronics store roof" msgstr "电器店(屋顶)" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "电器店(二楼)" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "体育用品店" @@ -133301,10 +130594,6 @@ msgstr "枪械商店(二楼)" msgid "clothing store" msgstr "服装店" -#: lang/json/overmap_terrain_from_json.py -msgid "clothing store roof" -msgstr "服装店(屋顶)" - #: lang/json/overmap_terrain_from_json.py msgid "bookstore" msgstr "书店" @@ -133313,6 +130602,10 @@ msgstr "书店" msgid "bookstore roof" msgstr "书店(屋顶)" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "餐馆" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "餐厅" @@ -133441,10 +130734,6 @@ msgstr "旅馆" msgid "hotel entrance" msgstr "酒店大堂" -#: lang/json/overmap_terrain_from_json.py -msgid "hotel tower" -msgstr "酒店大楼" - #: lang/json/overmap_terrain_from_json.py msgid "hotel basement" msgstr "酒店地下室" @@ -133469,10 +130758,6 @@ msgstr "家装超市" msgid "garage - gas station" msgstr "车库(加油站)" -#: lang/json/overmap_terrain_from_json.py -msgid "garage - gas station roof" -msgstr "车库(加油站屋顶)" - #: lang/json/overmap_terrain_from_json.py msgid "dispensary" msgstr "施药所" @@ -133641,14 +130926,14 @@ msgstr "园艺店(屋顶)" msgid "craft shop" msgstr "工艺店" -#: lang/json/overmap_terrain_from_json.py -msgid "craft shop roof" -msgstr "工艺店(屋顶)" - #: lang/json/overmap_terrain_from_json.py msgid "craft shop upper roof" msgstr "工艺店(阁楼)" +#: lang/json/overmap_terrain_from_json.py +msgid "craft shop roof" +msgstr "工艺店(屋顶)" + #: lang/json/overmap_terrain_from_json.py msgid "craft shop 2nd floor" msgstr "工艺店(二楼)" @@ -133757,18 +131042,30 @@ msgstr "狩猎用品店" msgid "hunting supply store roof" msgstr "狩猎用品店(屋顶)" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "户外用品店" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "城市街区" #: lang/json/overmap_terrain_from_json.py -msgid "road" -msgstr "公路" +msgid "gaming store" +msgstr "桌游店" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "桌游店(屋顶)" #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "难民中心" +#: lang/json/overmap_terrain_from_json.py +msgid "road" +msgstr "公路" + #: lang/json/overmap_terrain_from_json.py msgid "camp survey" msgstr "营地选址" @@ -134021,6 +131318,22 @@ msgstr "炼钢厂" msgid "steel mill depot" msgstr "炼钢厂(火车站)" +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "轻工厂" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "science lab" msgstr "科学实验室" @@ -134101,13 +131414,17 @@ msgstr "空地" msgid "mall - entrance" msgstr "购物中心(入口)" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - food court" +msgstr "购物中心(美食广场)" + #: lang/json/overmap_terrain_from_json.py msgid "mall - food court roof" msgstr "购物中心(美食广场屋顶)" #: lang/json/overmap_terrain_from_json.py -msgid "mall - food court" -msgstr "购物中心(美食广场)" +msgid "mall - subway station" +msgstr "购物中心(地铁站)" #: lang/json/overmap_terrain_from_json.py msgid "mansion" @@ -134218,10 +131535,6 @@ msgstr "警局" msgid "church" msgstr "教堂" -#: lang/json/overmap_terrain_from_json.py -msgid "sewer" -msgstr "下水道" - #: lang/json/overmap_terrain_from_json.py msgid "sewer?" msgstr "下水道?" @@ -134230,6 +131543,14 @@ msgstr "下水道?" msgid "basement" msgstr "地下室" +#: lang/json/overmap_terrain_from_json.py +msgid "sewer" +msgstr "下水道" + +#: lang/json/overmap_terrain_from_json.py +msgid "Vault - Passage" +msgstr "避难所(通道)" + #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" msgstr "避难所(兵营)" @@ -134262,10 +131583,6 @@ msgstr "避难所(入口)" msgid "Vault - Utilities" msgstr "避难所(水电站)" -#: lang/json/overmap_terrain_from_json.py -msgid "Vault - Passage" -msgstr "避难所(通道)" - #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" msgstr "避难所(通讯站)" @@ -134712,16 +132029,16 @@ msgid "marina parking" msgstr "游艇停靠区(停车场)" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" -msgstr "复式公寓" +msgid "house roof" +msgstr "房顶" #: lang/json/overmap_terrain_from_json.py -msgid "apartment tower" -msgstr "公寓大楼" +msgid "dense urban" +msgstr "密集城区" #: lang/json/overmap_terrain_from_json.py -msgid "homeless camp" -msgstr "流浪者营地" +msgid "apartment tower" +msgstr "公寓大楼" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" @@ -134731,6 +132048,10 @@ msgstr "房车公园" msgid "trailer park roof" msgstr "房车公园(屋顶)" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless camp" +msgstr "流浪者营地" + #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" msgstr "居住用空地" @@ -134739,10 +132060,6 @@ msgstr "居住用空地" msgid "derelict property" msgstr "废弃建筑" -#: lang/json/overmap_terrain_from_json.py -msgid "dense urban" -msgstr "密集城区" - #: lang/json/overmap_terrain_from_json.py msgid "river" msgstr "河流" @@ -134775,26 +132092,14 @@ msgstr "桥梁" msgid "roadstop" msgstr "路边饮食店" -#: lang/json/overmap_terrain_from_json.py -msgid "roadstop roof" -msgstr "路边饮食店(屋顶)" - #: lang/json/overmap_terrain_from_json.py msgid "public washroom" msgstr "公共厕所" -#: lang/json/overmap_terrain_from_json.py -msgid "public washroom roof" -msgstr "公共厕所(屋顶)" - #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" msgstr "路边摊" -#: lang/json/overmap_terrain_from_json.py -msgid "roadside foodcart roof" -msgstr "路边摊(屋顶)" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "铁路" @@ -134971,14 +132276,14 @@ msgstr "露天下水道" msgid "small dump" msgstr "小型垃圾场" -#: lang/json/overmap_terrain_from_json.py -msgid "lake shore" -msgstr "湖岸" - #: lang/json/overmap_terrain_from_json.py msgid "lake" msgstr "湖泊" +#: lang/json/overmap_terrain_from_json.py +msgid "lake shore" +msgstr "湖岸" + #: lang/json/overmap_terrain_from_json.py msgid "lake (submerged)" msgstr "湖泊(水下)" @@ -135028,36 +132333,12 @@ msgid "county mortuary roof" msgstr "郡停尸间(屋顶)" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "野生动物饲养基地" - -#: lang/json/overmap_terrain_from_json.py -msgid "diner" -msgstr "餐馆" - -#: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "公寓" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" -msgstr "车行" - -#: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "户外用品店" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "桌游店" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "机场" +msgid "Dinosaur Exhibit" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "light industry" -msgstr "轻工厂" +msgid "wildlife field office" +msgstr "野生动物饲养基地" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -135071,6 +132352,10 @@ msgstr "碉堡" msgid "scavenger bunker" msgstr "拾荒者地堡" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "魔法商店" @@ -135084,7 +132369,6 @@ msgid "used bookstore" msgstr "旧书店" #: lang/json/overmap_terrain_from_json.py -#: lang/json/start_location_from_json.py msgid "Swamp" msgstr "沼泽" @@ -135116,10 +132400,6 @@ msgstr "大门" msgid "house basement" msgstr "房屋地下室" -#: lang/json/overmap_terrain_from_json.py -msgid "house roof" -msgstr "房顶" - #: lang/json/overmap_terrain_from_json.py msgid "attached garage" msgstr "附属车库" @@ -135228,10 +132508,6 @@ msgstr "生化实验室" msgid "rocketry lab" msgstr "火箭实验室" -#: lang/json/overmap_terrain_from_json.py -msgid "robot dispatch center" -msgstr "机器人调度中心" - #: lang/json/overmap_terrain_from_json.py msgid "school" msgstr "学校" @@ -135260,6 +132536,14 @@ msgstr "机械师车库" msgid "megastore entrance" msgstr "购物广场(入口)" +#: lang/json/overmap_terrain_from_json.py +msgid "hotel tower" +msgstr "酒店大楼" + +#: lang/json/overmap_terrain_from_json.py +msgid "razorclaw nest" +msgstr "利爪怪巢穴" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "污水处理站" @@ -135276,6 +132560,10 @@ msgstr "服务区" msgid "electric substation" msgstr "变电所" +#: lang/json/overmap_terrain_from_json.py +msgid "campsites" +msgstr "露营地" + #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" msgstr "宗教墓地" @@ -135313,10 +132601,10 @@ msgstr "流浪汉" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." -msgstr "一桩事故让你流浪,没有家人,没有朋友。但是你所知道的世界已经过去了,也许你独自生存的经历在这个新的世界中可能会很有用。" +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." +msgstr "命运的捉弄让你独自在世界上流浪。现在即使你想回去,也没有什么地方可以让你回去了。也许你自食其力的经历在这个新的世界中会很有用。 " #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135327,10 +132615,10 @@ msgstr "女流浪汉" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." -msgstr "一桩事故让你流浪,没有家人,没有朋友。但是你所知道的世界已经过去了,也许你独自生存的经历在这个新的世界中可能会很有用。" +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." +msgstr "命运的捉弄让你独自在世界上流浪。现在即使你想回去,也没有什么地方可以让你回去了。也许你自食其力的经历在这个新的世界中会很有用。 " #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135341,9 +132629,9 @@ msgstr "生化信徒" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "你就知道末日迟早会来来临,这些年省吃俭用攒起来的生化插件和进行的生存训练终于可以派上用场了!" #: lang/json/professions_from_json.py @@ -135355,9 +132643,9 @@ msgstr "生化女信徒" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." msgstr "你就知道末日迟早会来来临,这些年省吃俭用攒起来的生化插件和进行的生存训练终于可以派上用场了!" #: lang/json/professions_from_json.py @@ -135369,7 +132657,7 @@ msgstr "幸存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "有些人会说,你身上并没有什么可圈可点之处。不过,\"你活下来了\"——这一句话胜过千言万语。" @@ -135382,7 +132670,7 @@ msgstr "幸存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." msgstr "有些人会说,你身上并没有什么可圈可点之处。不过,\"你活下来了\"——这一句话胜过千言万语。" @@ -135395,10 +132683,11 @@ msgstr "避难所幸存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." -msgstr "在大灾变开始的时候,你幸运的找到一个防空洞躲了起来。现在,冬天来临了,你希望之前从书上学到的那些乱七八糟的技能可以帮助你继续活下去。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." +msgstr "" +"在大灾变开始时,你幸运的找到一个防空洞躲了起来。在过去的几个月里,你一直在吃罐头食品,看书,修理防空洞里的东西。现在已经到了冬天,是该出来面对这个世界的时候了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135409,10 +132698,11 @@ msgstr "避难所幸存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." -msgstr "在大灾变开始的时候,你幸运的找到一个防空洞躲了起来。现在,冬天来临了,你希望之前从书上学到的那些乱七八糟的技能可以帮助你继续活下去。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." +msgstr "" +"在大灾变开始时,你幸运的找到一个防空洞躲了起来。在过去的几个月里,你一直在吃罐头食品,看书,修理防空洞里的东西。现在已经到了冬天,是该出来面对这个世界的时候了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135423,10 +132713,11 @@ msgstr "避难所民兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." -msgstr "在大灾变开始的时候,你幸运的找到一个防空洞躲了起来。现在,冬天来临了,你希望之前学到的那些乱七八糟的技能和你手中的枪可以帮助你继续活下去。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." +msgstr "" +"在大灾变开始时,你幸运的带着你的枪械收藏找到一个防空洞躲了起来。在过去的几个月里,你一直在吃罐头食品,看书,锻炼自己的枪法。现在已经到了冬天,是该出来面对这个世界的时候了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135437,10 +132728,11 @@ msgstr "避难所女民兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." -msgstr "在大灾变开始的时候,你幸运的找到一个防空洞躲了起来。现在,冬天来临了,你希望之前学到的那些乱七八糟的技能和你手中的枪可以帮助你继续活下去。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." +msgstr "" +"在大灾变开始时,你幸运的带着你的枪械收藏找到一个防空洞躲了起来。在过去的几个月里,你一直在吃罐头食品,看书,锻炼自己的枪法。现在已经到了冬天,是该出来面对这个世界的时候了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135452,8 +132744,8 @@ msgstr "裁缝" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "当世界末日来临,裁缝看起来不像最有用的技能——大多数人都不会认为一个小裁缝能够存活很久。是时候让他们瞧瞧了!" #: lang/json/professions_from_json.py @@ -135466,8 +132758,8 @@ msgstr "女裁缝" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." msgstr "当世界末日来临,裁缝看起来不像最有用的技能——大多数人都不会认为一个小裁缝能够存活很久。是时候让他们瞧瞧了!" #: lang/json/professions_from_json.py @@ -135480,9 +132772,9 @@ msgstr "大厨" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." -msgstr "虽然多年厨房生涯留下了一副胖大的身材,但你终究凭着一把屠刀设法躲过了大屠杀——仅仅在你的制服上留下了点儿\"污渍\"。" +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." +msgstr "虽然多年厨房生涯留下了一副胖大的身材,但你终究凭着你值得信赖的屠宰刀设法躲过了大屠杀——仅仅在你的制服上留下了点儿\"污渍\"。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135494,9 +132786,9 @@ msgstr "女大厨" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." -msgstr "虽然多年厨房生涯留下了一副胖大的身材,但你终究凭着一把屠刀设法躲过了大屠杀——仅仅在你的制服上留下了点儿\"污渍\"。" +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." +msgstr "虽然多年厨房生涯留下了一副胖大的身材,但你终究凭着你值得信赖的屠宰刀设法躲过了大屠杀——仅仅在你的制服上留下了点儿\"污渍\"。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135539,10 +132831,11 @@ msgstr "实验室技术员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" -msgstr "感谢导师的压榨,你还能想起来那些实验是怎么做的。现在世界已经终结,只剩下一个问题:你能否将世界从你亲手导致的大灾变中恢复回来?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" +msgstr "" +"感谢导师的多年压榨以及在实验室里多年的辛苦劳作,你熟悉科学探究的基本知识。现在只剩下一个问题:你能否将世界从你同事们引发的大灾变中拯救回来?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135553,10 +132846,11 @@ msgstr "实验室女技术员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" -msgstr "感谢导师的压榨,你还能想起来那些实验是怎么做的。现在世界已经终结,只剩下一个问题:你能否将世界从你亲手导致的大灾变中恢复回来?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" +msgstr "" +"感谢导师的多年压榨以及在实验室里多年的辛苦劳作,你熟悉科学探究的基本知识。现在只剩下一个问题:你能否将世界从你同事们引发的大灾变中拯救回来?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135567,9 +132861,10 @@ msgstr "车迷" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." -msgstr "虽然你从没有获得过正式驾照,但你清楚你血液中流淌的是97号的汽油。汽车就是你的爱人,你的全部。" +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." +msgstr "你一直都很喜欢汽车,没有什么比躲在引擎盖下自己修车更好的了。你已经为这项工作准备了一些趁手工具,至少现在你再也不需要到处找零件了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135580,9 +132875,10 @@ msgstr "女车迷" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." -msgstr "虽然你从没有获得过正式驾照,但你清楚你血液中流淌的是97号的汽油。汽车就是你的爱人,你的全部。" +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." +msgstr "你一直都很喜欢汽车,没有什么比躲在引擎盖下自己修车更好的了。你已经为这项工作准备了一些趁手工具,至少现在你再也不需要到处找零件了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135596,7 +132892,7 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "你的如簧巧舌、在酒吧中所卷入(及避开)的各类争斗、每次从麻烦中脱身的神奇能力——这些都帮助你逃出生天。然而,望望窗外,你又能逃到哪里去呢?" #: lang/json/professions_from_json.py @@ -135611,7 +132907,7 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" +"survival. How much longer will they hold out?" msgstr "你的如簧巧舌、在酒吧中所卷入(及避开)的各类争斗、每次从麻烦中脱身的神奇能力——这些都帮助你逃出生天。然而,望望窗外,你又能逃到哪里去呢?" #: lang/json/professions_from_json.py @@ -135623,10 +132919,10 @@ msgstr "养蜂人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." -msgstr "你曾经是一名养蜂人。大灾变来袭,你不得不抛下你珍贵的蜜蜂,不过好歹你记得拿上一些工具和蜂蜜。" +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." +msgstr "你曾经是一名养蜂人,搭建并精心照料你的蜂巢。大灾变来袭,你不得不抛下你珍贵的蜜蜂,不过好歹你记得拿上一些工具和蜂蜜。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135637,10 +132933,10 @@ msgstr "养蜂人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." -msgstr "你曾经是一名养蜂人。大灾变来袭,你不得不抛下你珍贵的蜜蜂,不过好歹你记得拿上一些工具和蜂蜜。" +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." +msgstr "你曾经是一名养蜂人,搭建并精心照料你的蜂巢。大灾变来袭,你不得不抛下你珍贵的蜜蜂,不过好歹你记得拿上一些工具和蜂蜜。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135651,10 +132947,10 @@ msgstr "男篮运动员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." -msgstr "这本来是你第一次参加真正的大型联赛,但大灾变来袭。多亏了你的飞毛腿,你成为幸运的少数几个生存下来并逃过那些怪物的人。" +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." +msgstr "你的第一场重要比赛突然被取消,丧尸们不断涌进球场。多亏了你的飞毛腿和快速反应,你是少数几个幸运地活着逃出体育场的人之一。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135665,10 +132961,10 @@ msgstr "女篮运动员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." -msgstr "这本来是你第一次参加真正的大型联赛,但大灾变来袭。多亏了你的飞毛腿,你成为幸运的少数几个生存下来并逃过那些怪物的人。" +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." +msgstr "你的第一场重要比赛突然被取消,丧尸们不断涌进球场。多亏了你的飞毛腿和快速反应,你是少数几个幸运地活着逃出体育场的人之一。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135679,11 +132975,10 @@ msgstr "真正的美食家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." -msgstr "你是真正的美食家,有些人可能认为那只是吉祥物而已,但你知道不仅仅如此:你是美食家,面具已成为你的面孔,你真实存在,绝世而独立。" +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." +msgstr "你是真正的美食家,有些人可能认为那只是吉祥物而已,但你知道不仅仅如此:美食家面具已成为你的面孔,你真实存在,绝世而独立。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135694,11 +132989,10 @@ msgstr "真正的美食家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." -msgstr "你是真正的美食家,有些人可能认为那只是吉祥物而已,但你知道不仅仅如此:你是美食家,面具已成为你的面孔,你真实存在,绝世而独立。" +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." +msgstr "你是真正的美食家,有些人可能认为那只是吉祥物而已,但你知道不仅仅如此:美食家面具已成为你的面孔,你真实存在,绝世而独立。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135711,8 +133005,8 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "在这一切发生之前,你是个前途一片光明的自行车选手,但是现在都泡汤了。好在俗话说:生活就像骑自行车,你必须不停前进。" #: lang/json/professions_from_json.py @@ -135726,8 +133020,8 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "在这一切发生之前,你是个前途一片光明的自行车选手,但是现在都泡汤了。好在俗话说:生活就像骑自行车,你必须不停前进。" #: lang/json/professions_from_json.py @@ -135739,11 +133033,12 @@ msgstr "入伍新兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." -msgstr "你从高中退学,立志参军,结果一场国家紧急事态打乱了你的计划。在新兵紧急撤离的一团混乱之中,你似乎被连长忘在了脑后。" +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." +msgstr "" +"参军报国一直是你多年的梦想。你终于进去了,正好赶上某种国家紧急事态打断了你的训练。目前你唯一知道的事,在你错过了紧急撤离令之后,上级把你遗忘在这个地狱里。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135754,11 +133049,12 @@ msgstr "入伍新兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." -msgstr "你从高中退学,立志参军,结果一场国家紧急事态打乱了你的计划。在新兵紧急撤离的一团混乱之中,你似乎被连长忘在了脑后。" +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." +msgstr "" +"参军报国一直是你多年的梦想。你终于进去了,正好赶上某种国家紧急事态打断了你的训练。目前你唯一知道的事,在你错过了紧急撤离令之后,上级把你遗忘在这个地狱里。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135801,9 +133097,10 @@ msgstr "男仆" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." -msgstr "你在一户富裕人家中供职。大灾变爆发时,他们乘着私人飞机去了一个你不知道的地方,而你被留下来照顾自己。" +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." +msgstr "你受雇为一个富裕的家庭料理家务。自然而然地,当事情变糟时,他们全家都会去一个未知的地方度假,而把你留给命运裁决。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135814,9 +133111,10 @@ msgstr "女仆" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." -msgstr "你在一户富裕人家中供职。大灾变爆发时,他们乘着私人飞机去了一个你不知道的地方,而你被留下来照顾自己。" +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." +msgstr "你受雇为一个富裕的家庭料理家务。自然而然地,当事情变糟时,他们全家都会去一个未知的地方度假,而把你留给命运裁决。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135827,12 +133125,13 @@ msgstr "俘虏" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" -"一天晚上,你正沿着一条小路奔跑,试图逃离城市中的恐怖怪物,这时你听见黑暗之中有人在呼救。当你过去调查时,突然感到头上一阵刺痛,然后就昏倒了。之后你就在这个地方醒来……这里还是地球吗?" +"一天晚上,你正沿着一条小路奔跑,试图逃离城市中的恐怖怪物,这时你听见黑暗之中有人在呼救。你跟随过去,期待着他们是友军,但突然你感到头上一阵刺痛,然后就昏倒了。之后你就在这个奇怪的地方醒来……这里还是地球吗?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135843,12 +133142,13 @@ msgstr "俘虏" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" -"一天晚上,你正沿着一条小路奔跑,试图逃离城市中的恐怖怪物,这时你听见黑暗之中有人在呼救。当你过去调查时,突然感到头上一阵刺痛,然后就昏倒了。之后你就在这个地方醒来……这里还是地球吗?" +"一天晚上,你正沿着一条小路奔跑,试图逃离城市中的恐怖怪物,这时你听见黑暗之中有人在呼救。你跟随过去,期待着他们是友军,但突然你感到头上一阵刺痛,然后就昏倒了。之后你就在这个奇怪的地方醒来……这里还是地球吗?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135860,11 +133160,10 @@ msgstr "救兵" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." -msgstr "" -"你已经准备好了。你决心找到并救出你的朋友。但现在随着你走过那些奇怪的走廊时,四周的气氛越来越沉重,你的信心不再那么坚定了。可能现在你才是那个需要被救援的人。" +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." +msgstr "你已经准备好了。你决心找到并救出你的朋友。随着扭曲的走廊中的气氛越来越沉重,你的信心不再那么坚定了。可能现在你才是那个需要被救援的人。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135876,11 +133175,10 @@ msgstr "救兵" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." -msgstr "" -"你已经准备好了。你决心找到并救出你的朋友。但现在随着你走过那些奇怪的走廊时,四周的气氛越来越沉重,你的信心不再那么坚定了。可能现在你才是那个需要被救援的人。" +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." +msgstr "你已经准备好了。你决心找到并救出你的朋友。随着扭曲的走廊中的气氛越来越沉重,你的信心不再那么坚定了。可能现在你才是那个需要被救援的人。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135892,9 +133190,10 @@ msgstr "住院医师" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." -msgstr "终于熬出头了!你刚换了几次纱布、扎哭了三回小孩就遇上了大灾变……你只希望那句谚语是假的:\"医者不能自医啊!\"" +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." +msgstr "刚从医学院毕业的你几乎没有什么临床经验,手头只有一些急救用品。现在你只希望那句谚语是假的:\"医者不能自医啊!\"" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135906,9 +133205,10 @@ msgstr "住院女医师" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." -msgstr "终于熬出头了!你刚换了几次纱布、扎哭了三回小孩就遇上了大灾变……你只希望那句谚语是假的:\"医者不能自医啊!\"" +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." +msgstr "刚从医学院毕业的你几乎没有什么临床经验,手头只有一些急救用品。现在你只希望那句谚语是假的:\"医者不能自医啊!\"" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135920,9 +133220,9 @@ msgstr "黑手党徒" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." -msgstr "红棍总是把最危险的任务交给你,结果这货昨天真成\"棍\"了。望着拥挤的街头,你吐了一口气:今天要从哪条街砍到哪条街呢?" +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." +msgstr "老大总是说他能靠你做掉任何扎手的活。可惜他嗝屁了。不过没关系,世界上总会有一个地方能容下你这样有才能的人。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135934,9 +133234,9 @@ msgstr "女黑手党徒" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." -msgstr "红棍总是把最危险的任务交给你,结果这货昨天真成\"棍\"了。望着拥挤的街头,你吐了一口气:今天要从哪条街砍到哪条街呢?" +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." +msgstr "老大总是说他能靠你做掉任何扎手的活。可惜他嗝屁了。不过没关系,世界上总有一个地方能容下你这样有才能的人。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135947,12 +133247,10 @@ msgstr "保安" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." -msgstr "" -"对一个无名低薪小保安来说,眼前的景象似乎太刺激了点——说好的一吓唬就跑的小毛贼呢!虽然你没什么特别拿得出手的技能,但手头这把枪还挺像模像样的。" +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." +msgstr "你有份工资又低又无聊的工作,整天看监控巡逻走廊,但情况突然变得更危险了。你有一些趁手的装备,但直到现在你才有真正使用它们的机会。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135963,12 +133261,10 @@ msgstr "女保安" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." -msgstr "" -"对一个无名低薪小保安来说,眼前的景象似乎太刺激了点——说好的一吓唬就跑的小毛贼呢!虽然你没什么特别拿得出手的技能,但手头这把枪还挺像模像样的。" +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." +msgstr "你有份工资又低又无聊的工作,整天看监控巡逻走廊,但情况突然变得更危险了。你有一些趁手的装备,但直到现在你才有真正使用它们的机会。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135981,7 +133277,7 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "你曾经为富人修剪草坪和修剪树篱。在大灾变之前工作就已经很难找了,但是现在除了你的工具和专业知识,你什么都没有了。" #: lang/json/professions_from_json.py @@ -135995,7 +133291,7 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." +" except your tools and expertise." msgstr "你曾经为富人修剪草坪和修剪树篱。在大灾变之前工作就已经很难找了,但是现在除了你的工具和专业知识,你什么都没有了。" #: lang/json/professions_from_json.py @@ -136007,9 +133303,9 @@ msgstr "护理员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "你过去为老人提供家庭护理,现在整个世界都崩塌了。你只能祈祷,不要在尸潮中看到你之前的客户……" #: lang/json/professions_from_json.py @@ -136021,9 +133317,9 @@ msgstr "女护理员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." +"clients among the walking dead…" msgstr "你过去为老人提供家庭护理,现在整个世界都崩塌了。你只能祈祷,不要在尸潮中看到你之前的客户……" #: lang/json/professions_from_json.py @@ -136035,11 +133331,10 @@ msgstr "生存狂" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" -msgstr "熟读求生手册的你早已为这一天做好了准备。你的装备简单而实用,你的头脑冷静而清晰——那些徘徊在文明残迹之内的行尸走肉怎能与你相比?" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" +msgstr "依靠自然、远离文明的生活对你来说并不新鲜。唯一的区别是那些突然出现的想要取你性命的怪物。你的装备很简单,但功能齐全……不过你的水壶空了!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136050,11 +133345,10 @@ msgstr "女生存狂" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" -msgstr "熟读求生手册的你早已为这一天做好了准备。你的装备简单而实用,你的头脑冷静而清晰——那些徘徊在文明残迹之内的行尸走肉怎能与你相比?" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" +msgstr "依靠自然、远离文明的生活对你来说并不新鲜。唯一的区别是那些突然出现的想要取你性命的怪物。你的装备很简单,但功能齐全……不过你的水壶空了!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136065,10 +133359,11 @@ msgstr "老烟枪" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." -msgstr "所有人都知道你是个烟不离手的家伙。现在再也没人给你递烟了,趁兜里的半包没抽完之前,你最好自己开始寻找补给。" +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." +msgstr "" +"当你不得不每隔一小时躲在户外抽烟时,你的同事总是在背后嘀嘀咕咕,但当事情变得糟糕时,这救了你一命。现在你只剩最后一包了。你一开局就对尼古丁上瘾。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136079,10 +133374,11 @@ msgstr "女烟枪" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." -msgstr "所有人都知道你是个烟不离手的家伙。现在再也没人给你递烟了,趁兜里的半包没抽完之前,你最好自己开始寻找补给。" +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." +msgstr "" +"当你不得不每隔一小时躲在户外抽烟时,你的同事总是在背后嘀嘀咕咕,但当事情变得糟糕时,这救了你一命。现在你只剩最后一包了。你一开局就对尼古丁上瘾。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136095,8 +133391,9 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." -msgstr "可卡因。这,玩意儿,真的太他妈劲了——你挥金如土只为了这白色的粉末。看了看外面的景象,算了吧,再来一管。" +"score one more line. Where are you going to get your next fix now?" +msgstr "" +"可卡因。这,玩意儿,真的太够劲了。你挥金如土只为了这白色的粉末,当你回过神来时,你发现自己正在本地CVS药店耍花招,只为了再吸一口。现在你又该去哪里找你的下一次呢?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136109,8 +133406,9 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." -msgstr "可卡因。这,玩意儿,真的太他妈劲了——你挥金如土只为了这白色的粉末。看了看外面的景象,算了吧,再来一管。" +"score one more line. Where are you going to get your next fix now?" +msgstr "" +"可卡因。这,玩意儿,真的太够劲了。你挥金如土只为了这白色的粉末,当你回过神来时,你发现自己正在本地CVS药店耍花招,只为了再吸一口。现在你又该去哪里找你的下一次呢?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136121,12 +133419,12 @@ msgstr "醉鬼" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"你被社会抛弃了——你没有家人,没有朋友,只有无尽的游荡和酒瓶底传来的那一丝虚伪的慰藉。不过现在社会已完蛋了,好家伙们全都死掉了,只有你依然站着。哦,妈的,你酒瘾又犯了!" +"你被社会无情地抛弃,独自游荡,没有家,没有家人,没有朋友,只有酒瓶底传来的那一丝虚伪的慰藉。不过现在社会已完蛋了,好家伙们全都死掉了,只有你依然站着。哦该死,你酒瘾又犯了!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136137,12 +133435,12 @@ msgstr "醉鸡" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"你被社会抛弃了——你没有家人,没有朋友,只有无尽的游荡和酒瓶底传来的那一丝虚伪的慰藉。不过现在社会已完蛋了,好家伙们全都死掉了,只有你依然站着。哦,妈的,你酒瘾又犯了!" +"你被社会无情地抛弃,独自游荡,没有家,没有家人,没有朋友,只有酒瓶底传来的那一丝虚伪的慰藉。不过现在社会已完蛋了,好家伙们全都死掉了,只有你依然站着。哦该死,你酒瘾又犯了!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136153,10 +133451,10 @@ msgstr "冰爷" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." -msgstr "怎么了……怎么了?人们都怎么了?不管了……药不够了!给我药……我不要放弃治疗……" +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." +msgstr "你不完全确定昨晚发生了什么,但你在地板上醒来,一切都变得一团糟。不过,唯一能贯穿你脑海的想法是去哪里找你下一次药。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136167,10 +133465,10 @@ msgstr "冰妹" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." -msgstr "怎么了……怎么了?人们都怎么了?不管了……药不够了!给我药……我不要放弃治疗……" +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." +msgstr "你不完全确定昨晚发生了什么,但你在地板上醒来,一切都变得一团糟。不过,唯一能贯穿你脑海的想法是去哪里找你下一次药。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136182,8 +133480,8 @@ msgstr "瘾君子" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "在你年轻时的一次事故后,你对你用来镇痛的阿片类药物成瘾了。现在药店关门,毒贩也变成了丧尸,要想爽一把可就更难了。" #: lang/json/professions_from_json.py @@ -136196,8 +133494,8 @@ msgstr "瘾君子" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." msgstr "在你年轻时的一次事故后,你对你用来镇痛的阿片类药物成瘾了。现在药店关门,毒贩也变成了丧尸,要想爽一把可就更难了。" #: lang/json/professions_from_json.py @@ -136209,9 +133507,10 @@ msgstr "直升机驾驶员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." -msgstr "你靠将商人和游客从一个直升机停机坪送到另一个直升机停机坪为生,这场灾难使你失业,但天空仍然召唤着你……" +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" +msgstr "你终于考到了你的飞行员驾照,靠将商人和游客从一个直升机停机坪送到另一个直升机停机坪为生,大灾变暂时让你失业了,但天空仍然召唤着你……" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136222,9 +133521,10 @@ msgstr "直升机驾驶员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." -msgstr "你靠将商人和游客从一个直升机停机坪送到另一个直升机停机坪为生,这场灾难使你失业,但天空仍然召唤着你……" +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" +msgstr "你终于考到了你的飞行员驾照,靠将商人和游客从一个直升机停机坪送到另一个直升机停机坪为生,大灾变暂时让你失业了,但天空仍然召唤着你……" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136236,9 +133536,10 @@ msgstr "K9警员" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." -msgstr "你的职业就是带着忠诚的狗狗缉毒,不过世界末日来临一切都不重要了。可是至少你还有一个忠诚的伙伴。(K9是Canine谐音,意为带警犬的)" +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." +msgstr "你的职业就是和你忠实的狗狗一起缉毒。现在世界已经毁灭了,一切都不再重要了。但至少你忠诚的伙伴仍然陪在你身边,准备好和你一起面对大灾变。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136250,9 +133551,10 @@ msgstr "K9警员" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." -msgstr "你的职业就是带着忠诚的狗狗缉毒,不过世界末日来临一切都不重要了。可是至少你还有一个忠诚的伙伴。(K9是Canine谐音,意为带警犬的)" +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." +msgstr "你的职业就是和你忠实的狗狗一起缉毒。现在世界已经毁灭了,一切都不再重要了。但至少你忠诚的伙伴仍然陪在你身边,准备好和你一起面对大灾变。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136263,9 +133565,9 @@ msgstr "猫奴" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" -msgstr "所有人都死了?随他便吧……只要有猫猫可以吸就够了!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" +msgstr "所有人都死了?哦,随他便吧,反正你也不怎么和人相处。只需要有你心爱的猫猫当朋友就够了!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136276,9 +133578,9 @@ msgstr "猫奴" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" -msgstr "所有人都死了?随他便吧……只要有猫猫可以吸就够了!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" +msgstr "所有人都死了?哦,随他便吧,反正你也不怎么和人相处。只需要有你心爱的猫猫当朋友就够了!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136289,10 +133591,10 @@ msgstr "警官" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" "虽然你只是个片警,但工作态度很积极。当你急匆匆地赶到报警地点时,发现你才是那个该被救的人。也是啊——当所有\"人\"都把空洞的眼眶朝着你时,你的警察制服与工作证又有什么意义呢?" @@ -136305,10 +133607,10 @@ msgstr "女警官" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" "虽然你只是个片警,但工作态度很积极。当你急匆匆地赶到报警地点时,发现你才是那个该被救的人。也是啊——当所有\"人\"都把空洞的眼眶朝着你时,你的警察制服与工作证又有什么意义呢?" @@ -136321,9 +133623,9 @@ msgstr "警探" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "就在你处在凶案侦破的关键点之时,大灾变降临了。嫌疑人死了,大家都死了。啊~你需要抽根烟。" #: lang/json/professions_from_json.py @@ -136335,9 +133637,9 @@ msgstr "女警探" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." msgstr "就在你处在凶案侦破的关键点之时,大灾变降临了。嫌疑人死了,大家都死了。啊~你需要抽根烟。" #: lang/json/professions_from_json.py @@ -136351,10 +133653,10 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"作为警察队伍中最精锐部门的一员,你接受的训练和配备的装备让你存活过大灾变开头的残酷攻击绰绰有余。不幸的是,社会的崩塌导致你只剩下一个任务;现在你的一切战斗只是单纯为了活下去。" +"作为警察队伍中最精锐部门的一员,你接受的训练和配备的装备让你存活过大灾变开头的残酷攻击绰绰有余。不幸的是,整个指挥系统已经分崩离析,现在你唯一的任务就是活下去。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136367,10 +133669,10 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"作为警察队伍中最精锐部门的一员,你接受的训练和配备的装备让你存活过大灾变开头的残酷攻击绰绰有余。不幸的是,社会的崩塌导致你只剩下一个任务;现在你的一切战斗只是单纯为了活下去。" +"作为警察队伍中最精锐部门的一员,你接受的训练和配备的装备让你存活过大灾变开头的残酷攻击绰绰有余。不幸的是,整个指挥系统已经分崩离析,现在你唯一的任务就是活下去。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136381,12 +133683,12 @@ msgstr "SWAT近战专家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"作为警察队伍中最精锐部门的一员,你接受的近战CQC训练让你活过大灾变,活到了现在。不幸的是,社会的崩塌导致你只剩下一个任务;现在你的一切战斗只是单纯为了活下去。" +"作为警察队伍中最精锐部门的一员,你接受了严格的近战训练,成为一名近战CQC专家。不幸的是,整个指挥系统已经分崩离析,现在你唯一的任务就是活下去。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136397,12 +133699,12 @@ msgstr "SWAT近战女专家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"作为警察队伍中最精锐部门的一员,你接受的近战CQC训练让你活过大灾变,活到了现在。不幸的是,社会的崩塌导致你只剩下一个任务;现在你的一切战斗只是单纯为了活下去。" +"作为警察队伍中最精锐部门的一员,你接受了严格的近战训练,成为一名近战CQC专家。不幸的是,整个指挥系统已经分崩离析,现在你唯一的任务就是活下去。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136414,7 +133716,7 @@ msgstr "警察狙击手" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" @@ -136430,7 +133732,7 @@ msgstr "警察狙击手" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" @@ -136445,12 +133747,11 @@ msgstr "防暴警官" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." -msgstr "" -"暴乱相当残酷,然后有人死后复活,吞食活人。很快你的防线显然要被突破 - 在混乱中你拍爆了一堆丧尸的头,幸运地全身而退…但最坏的事情还在后头。" +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." +msgstr "暴乱相当残酷,然后有人死后复活,吞食活人。你们的防线很快被突破了。你依靠无敌的幸运以及敲碎不少脑袋才勉强全身而退,但最糟糕的日子还在后头。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136461,12 +133762,11 @@ msgstr "防暴警官" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." -msgstr "" -"暴乱相当残酷,然后有人死后复活,吞食活人。很快你的防线显然要被突破 - 在混乱中你拍爆了一堆丧尸的头,幸运地全身而退…但最坏的事情还在后头。" +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." +msgstr "暴乱相当残酷,然后有人死后复活,吞食活人。你们的防线很快被突破了。你依靠无敌的幸运以及敲碎不少脑袋才勉强全身而退,但最糟糕的日子还在后头。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136477,11 +133777,10 @@ msgstr "二手车推销员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" -msgstr "上一次你的竞争对手哭着骂你:\"你他妈能为一个钢镚儿把你妈给卖了!\"你当时就给他一个大嘴巴:\"哥少说也得卖两个鸡蛋灌饼的本儿!\"" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" +msgstr "他们说你会为了一美元卖掉你的妈。他们怎么敢这么说!你已经在这片区踩过几次点了,怎么着开价也要比一美元多一些——而且你也能拿到手!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136492,11 +133791,10 @@ msgstr "二手车女推销员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" -msgstr "上一次你的竞争对手哭着骂你:\"你他妈能为一个钢镚儿把你妈给卖了!\"你当时就给他一个大嘴巴:\"姐少说也得卖两个鸡蛋灌饼的本儿!\"" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" +msgstr "他们说你会为了一美元卖掉你的妈。他们怎么敢这么说!你已经在这片区踩过几次点了,怎么着开价也要比一美元多一些——而且你也能拿到手!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136507,12 +133805,12 @@ msgstr "弓箭猎手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"你从小就爱打猎,很快你就喜欢上了用弓箭狩猎的挑战。为什么,如果世界末日没有什么你想要在你身边超过你信赖的弓箭。所以,当末日来临了,你一定要带着它一起。" +"你从小就爱打猎,很快你就发现自己有射箭的天赋。如果世界末日到来,你最希望你所信赖的弓箭能在你身边。所以,当末日真的来临时,你确保自己带上了它。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136523,12 +133821,12 @@ msgstr "弓箭女猎手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." msgstr "" -"你从小就爱打猎,很快你就喜欢上了用弓箭狩猎的挑战。为什么,如果世界末日没有什么你想要在你身边超过你信赖的弓箭。所以,当末日来临了,你一定要带着它一起。" +"你从小就爱打猎,很快你就发现自己有射箭的天赋。如果世界末日到来,你最希望你所信赖的弓箭能在你身边。所以,当末日真的来临时,你确保自己带上了它。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136539,12 +133837,11 @@ msgstr "弩箭猎手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." -msgstr "" -"你从小就爱打猎,很快你就喜欢上了用弩狩猎的挑战性。为什么,如果世界末日来临,你最想留在身边的只有你信赖的弩。所以,当末日真的来临了,你一定要带着它一起。" +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." +msgstr "你从小就爱打猎,而用弩矢狩猎则是你的最爱。如果世界末日到来,你最希望你所信赖的弩能在你身边。所以,当末日真的来临时,你确保自己带上了它。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136555,12 +133852,11 @@ msgstr "弩箭女猎手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." -msgstr "" -"你从小就爱打猎,很快你就喜欢上了用弩狩猎的挑战性。为什么,如果世界末日来临,你最想留在身边的只有你信赖的弩。所以,当末日真的来临了,你一定要带着它一起。" +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." +msgstr "你从小就爱打猎,而用弩矢狩猎则是你的最爱。如果世界末日到来,你最希望你所信赖的弩能在你身边。所以,当末日真的来临时,你确保自己带上了它。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136571,11 +133867,12 @@ msgstr "霰弹枪猎手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." -msgstr "当你还是个孩子的时候,你就喜爱狩猎,用把霰弹枪射来射去。现在,你看了看手中值得信赖的伙伴,朝大灾变带来的黑暗走去——今夜如此,夜夜皆然。" +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." +msgstr "" +"你从小就爱打猎,有一年生日你得到了一把霰弹枪当礼物。如果世界末日到来,你最希望你所信赖的霰弹枪能在你身边。所以,当末日真的来临时,你确保自己带上了它。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136586,11 +133883,12 @@ msgstr "霰弹枪女猎手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." -msgstr "当你还是个孩子的时候,你就喜爱狩猎,用把霰弹枪射来射去。现在,你看了看手中值得信赖的伙伴,朝大灾变带来的黑暗走去——今夜如此,夜夜皆然。" +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." +msgstr "" +"你从小就爱打猎,有一年生日你得到了一把霰弹枪当礼物。如果世界末日到来,你最希望你所信赖的霰弹枪能在你身边。所以,当末日真的来临时,你确保自己带上了它。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136601,11 +133899,12 @@ msgstr "步枪猎手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." -msgstr "当你还是个孩子的时候,你就喜爱狩猎,用把步枪射来射去。现在,你看了看手中值得信赖的伙伴,朝大灾变带来的黑暗走去——今夜如此,夜夜皆然。" +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." +msgstr "" +"你从小就爱打猎,一直梦想着自己能成为一名神枪手。如果世界末日到来,你最希望你所信赖的步枪能在你身边。所以,当末日真的来临时,你确保自己带上了它。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136616,11 +133915,12 @@ msgstr "步枪女猎手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." -msgstr "当你还是个孩子的时候,你就喜爱狩猎,用把步枪射来射去。现在,你看了看手中值得信赖的伙伴,朝大灾变带来的黑暗走去——今夜如此,夜夜皆然。" +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." +msgstr "" +"你从小就爱打猎,一直梦想着自己能成为一名神枪手。如果世界末日到来,你最希望你所信赖的步枪能在你身边。所以,当末日真的来临时,你确保自己带上了它。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136631,10 +133931,10 @@ msgstr "装修工" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" "你曾在当地一家建材商店打工,没事儿也替邻居们修修房子。现在旧世界已经毁灭,新世界尚未诞生——你能凭借着自己的技术以及几件随身工具,让曙光重临黑暗大地吗?" @@ -136647,10 +133947,10 @@ msgstr "女装修工" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" "你曾在当地一家建材商店打工,没事儿也替邻居们修修房子。现在旧世界已经毁灭,新世界尚未诞生——你能凭借着自己的技术以及几件随身工具,让曙光重临黑暗大地吗?" @@ -136663,10 +133963,9 @@ msgstr "长途货车司机" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." -msgstr "你所开的大货是马路上的王者,在骚乱发生时,你设法把它开到了你觉得安全的地方。现在只剩下你和你所信任的大货车了。" +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." +msgstr "你曾经开的大货是马路上的王者。暴乱发生时,你跳进大货,把它开到了安全的地方。现在只剩下你和你所信赖的大货车陪你面对这个世界了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136677,10 +133976,9 @@ msgstr "长途货车司机" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." -msgstr "你所开的大货是马路上的王者,在骚乱发生时,你设法把它开到了你觉得安全的地方。现在只剩下你和你所信任的大货车了。" +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." +msgstr "你曾经开的大货是马路上的王者。暴乱发生时,你跳进大货,把它开到了安全的地方。现在只剩下你和你所信赖的大货车陪你面对这个世界了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136717,10 +134015,11 @@ msgstr "背包客" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." -msgstr "你靠着双亲信托基金四处游荡,遗憾的是如今你父母都不在了,幸好现在再也不需要钱了。问题是,你和死亡之间的距离只有眼前的大路和身后的背包。" +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." +msgstr "在过去的几年里,你环游世界观光旅游,靠父母的信托基金生活。你回家后发现世界已成废墟,而你和死亡之间的距离只有眼前的大路和你身后的背包。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136731,10 +134030,11 @@ msgstr "背包娘" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." -msgstr "你靠着双亲信托基金四处游荡,遗憾的是如今你父母都不在了,幸好现在再也不需要钱了。问题是,你和死亡之间的距离只有眼前的大路和身后的背包。" +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." +msgstr "在过去的几年里,你环游世界观光旅游,靠父母的信托基金生活。你回家后发现世界已成废墟,而你和死亡之间的距离只有眼前的大路和你身后的背包。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136745,9 +134045,10 @@ msgstr "快餐店厨师" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." -msgstr "一周前你还在快餐店里炸薯条……现在你边跑边回头看那群饥饿的\"顾客\",心想:\"叫你们见识'快'餐的真谛!\"" +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" +msgstr "你工作的高级汉堡店的食客们今天看起来比平时更加易怒和不讲理。是时候展示快餐的奥义了……为了你的生命而奔跑!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136758,9 +134059,10 @@ msgstr "快餐店女厨" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." -msgstr "一周前你还在快餐店里炸薯条……现在你边跑边回头看那群饥饿的\"顾客\",心想:\"叫你们见识'快'餐的真谛!\"" +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" +msgstr "你工作的高级汉堡店的食客们今天看起来比平时更加易怒和不讲理。是时候展示快餐的奥义了……为了你的生命而奔跑!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136771,11 +134073,9 @@ msgstr "电气工程师" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." -msgstr "你曾经为一些小企业做些基础电气工程工作。而当大灾变爆发时你正好在一间避难所里进行工作,不幸的是,除了电脑的维修外,你没有完成其他的工作。" +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." +msgstr "小企业主们经常雇佣你做电气工作。你刚刚做完一单,结果整个电网都瘫痪了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136786,11 +134086,9 @@ msgstr "电气女工程师" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." -msgstr "你曾经为一些小企业做些基础电气工程工作。而当大灾变爆发时你正好在一间避难所里进行工作,不幸的是,除了电脑的维修外,你没有完成其他的工作。" +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." +msgstr "小企业主们经常雇佣你做电气工作。你刚刚做完一单,结果整个电网都瘫痪了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136801,11 +134099,11 @@ msgstr "黑客" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." -msgstr "" -"在电脑屏幕前的通宵熬夜和咖啡因药片,让你锻炼了不错的黑客技术,乍看起来,这技术在世界末日到来后并没啥用。除非你能找到一处军事基地的电脑主机。" +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." +msgstr "在电脑屏幕前的通宵熬夜和咖啡因药片,让你成为一名黑客专家,乍看起来,这技术在电网瘫痪后并没啥用。除非你能找到一处军事基地的电脑主机。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136816,11 +134114,11 @@ msgstr "女黑客" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." -msgstr "" -"在电脑屏幕前的通宵熬夜和咖啡因药片,让你锻炼了不错的黑客技术,乍看起来,这技术在世界末日到来后并没啥用。除非你能找到一处军事基地的电脑主机。" +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." +msgstr "在电脑屏幕前的通宵熬夜和咖啡因药片,让你成为一名黑客专家,乍看起来,这技术在电网瘫痪后并没啥用。除非你能找到一处军事基地的电脑主机。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136831,10 +134129,11 @@ msgstr "学生" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." -msgstr "上个礼拜你还在读高中——至少你不用为考试发愁了。书包里这几本拿来解闷儿的闲书没准会有点用?" +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." +msgstr "仅仅是一个普通的高中生,你会发现自己面临着一个从未学过的考试,而且重要程度比几何学还要高。也许这一年来一直陪着你的书里会有一些有用的东西。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136845,10 +134144,11 @@ msgstr "女学生" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." -msgstr "上个礼拜你还在读高中——至少你不用为考试发愁了。书包里这几本拿来解闷儿的闲书没准会有点用?" +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." +msgstr "仅仅是一个普通的高中生,你会发现自己面临着一个从未学过的考试,而且重要程度比几何学还要高。也许这一年来一直陪着你的书里会有一些有用的东西。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136859,10 +134159,10 @@ msgstr "淋浴受害男" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." -msgstr "当大灾变发生时,你正在舒舒服服地洗着热水澡。你勉强逃出生天,但是身上仅带着几块肥皂,和有史以来最最有用的玩意儿……一条毛巾。" +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." +msgstr "你刚刚舒舒服服地洗着热水澡,一脚踏出来发现世界末日到了。你勉强逃出生天,但是身上仅带着几块肥皂,和有史以来最最有用的玩意儿……一条毛巾。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136873,10 +134173,10 @@ msgstr "淋浴受害女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." -msgstr "当大灾变发生时,你正在舒舒服服地洗着热水澡。你勉强逃出生天,但是身上仅带着几块肥皂,和有史以来最最有用的玩意儿……一条毛巾。" +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." +msgstr "你刚刚舒舒服服地洗着热水澡,一脚踏出来发现世界末日到了。你勉强逃出生天,但是身上仅带着几块肥皂,和有史以来最最有用的玩意儿……一条毛巾。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136887,9 +134187,10 @@ msgstr "摩托车迷" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." -msgstr "你把大部分时间都耗费在了改装你心爱的哈姆雷特机车上,然后把剩下的那部分时间用来骑它。你穿着一身专业服装开始了恐怖之旅。" +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." +msgstr "" +"你把大部分时间都耗费在了改装你心爱的哈姆雷特机车上,在户外公路上和你俱乐部的朋友们一起压街。现在他们都死了。Time to ride or die." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136900,9 +134201,10 @@ msgstr "女摩托车迷" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." -msgstr "你把大部分时间都耗费在了改装你心爱的哈姆雷特机车上,然后把剩下的那部分时间用来骑它。你穿着一身专业服装开始了恐怖之旅。" +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." +msgstr "" +"你把大部分时间都耗费在了改装你心爱的哈姆雷特机车上,在户外公路上和你俱乐部的朋友们一起压街。现在他们都死了。Time to ride or die." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136913,9 +134215,10 @@ msgstr "舞厅男伴舞" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." -msgstr "大灾变之前,你曾是个舞厅的伴舞人员。你不会拒绝用你的闪避技能同丧尸跳一曲华尔兹,不是吗?" +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." +msgstr "你正在去每周舞蹈班的路上,发觉四周有些奇怪。丧尸似乎不知道怎么跳舞,但你不会让它们踩到你的脚趾。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136926,9 +134229,10 @@ msgstr "舞厅女伴舞" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." -msgstr "大灾变之前,你曾是个舞厅的伴舞人员。你不会拒绝用你的闪避技能同丧尸跳一曲华尔兹,不是吗?" +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." +msgstr "你正在去每周舞蹈班的路上,发觉四周有些奇怪。丧尸似乎不知道怎么跳舞,但你不会让它们踩到你的脚趾。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136939,10 +134243,10 @@ msgstr "生化盗贼" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." -msgstr "你曾犯下无数机密大案,但你获得的一切都在大灾变面前失去了作用。你只剩下你的工具,技巧,和滴水不漏的行事风格。" +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." +msgstr "完美的作案方式和你藏在袖子里的一些生化插件让你完成了一系列大胆、高调的抢劫。警察很想抓到你,但他们现在看起来很忙。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136953,10 +134257,10 @@ msgstr "生化女盗贼" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." -msgstr "你曾犯下无数机密大案,但你获得的一切都在大灾变面前失去了作用。你只剩下你的工具,技巧,和滴水不漏的行事风格。" +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." +msgstr "完美的作案方式和你藏在袖子里的一些生化插件让你完成了一系列大胆、高调的抢劫。警察很想抓到你,但他们现在看起来很忙。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136967,7 +134271,7 @@ msgstr "生化病人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." @@ -136983,7 +134287,7 @@ msgstr "生化女病人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." @@ -136999,10 +134303,9 @@ msgstr "病人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." -msgstr "" -"当你的病最终被确诊的时候,你不得不同病魔战斗来换取能亲眼看到明天太阳升起。现在,你的意志必须更加强韧,才能适应这个新时代中将要进行的更多\"战斗\"。" +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." +msgstr "当诊断结果呈阳性时,你发誓:为你的生命而战,永不屈服于绝望。现在是重申誓言的时候了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137013,10 +134316,9 @@ msgstr "女病人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." -msgstr "" -"当你的病最终被确诊的时候,你不得不同病魔战斗来换取能亲眼看到明天太阳升起。现在,你的意志必须更加强韧,才能适应这个新时代中将要进行的更多\"战斗\"。" +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." +msgstr "当诊断结果呈阳性时,你发誓:为你的生命而战,永不屈服于绝望。现在是重申誓言的时候了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137028,8 +134330,9 @@ msgstr "不情愿的变异男" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." -msgstr "你是一只人形小白鼠,实验室技术人员用你来了解诱变剂的巨大力量。" +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." +msgstr "你是一只人形小白鼠,实验室技术人员用你来了解诱变剂的巨大力量。你下定决心要活下去,哪怕只是因为他们对你所做的事而怨恨他们。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137041,8 +134344,9 @@ msgstr "不情愿的变异女" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." -msgstr "你是一只人形小白鼠,实验室技术人员用你来了解诱变剂的巨大力量。" +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." +msgstr "你是一只人形小白鼠,实验室技术人员用你来了解诱变剂的巨大力量。你下定决心要活下去,哪怕只是因为他们对你所做的事而怨恨他们。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137054,9 +134358,9 @@ msgstr "志愿变异男" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." -msgstr "你梦想着通过变异和基因改造成为超级人类的愿望,也许还差那么一点点,当大灾变来临时,你和科学家正准备测试你的新身体性能如何。" +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." +msgstr "你通过基因改造突变成为超级人类的梦想可能有点落空,但是科学家说你已经准备好了。是时候实地测试一下你的新身体了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137068,9 +134372,9 @@ msgstr "志愿变异女" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." -msgstr "你梦想着通过变异和基因改造成为超级人类的愿望,也许还差那么一点点,当大灾变来临时,你和科学家正准备测试你的新身体性能如何。" +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." +msgstr "你通过基因改造突变成为超级人类的梦想可能有点落空,但是科学家说你已经准备好了。是时候实地测试一下你的新身体了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137083,9 +134387,10 @@ msgctxt "prof_desc_male" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"你曾经是正常人——在那个实验、在那次改造、在他们剥夺了你一切人类外部特征之前。如今,你像机器多过像人。不过在对抗那可以预期的恐怖时,这也许算是个优势吧。" +"你曾经是正常人——在那个实验、在那次改造、在他们剥夺了你一切人类外部特征之前。如今,你像机器多过像人。不过在对抗那些等着你的恐怖怪物时,这也许算是个优势吧。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137098,9 +134403,10 @@ msgctxt "prof_desc_female" msgid "" "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." +" human now, but that might prove to be an advantage against the horrors that" +" await." msgstr "" -"你曾经是正常人——在那个实验、在那次改造、在他们剥夺了你一切人类外部特征之前。如今,你像机器多过像人。不过在对抗那可以预期的恐怖时,这也许算是个优势吧。" +"你曾经是正常人——在那个实验、在那次改造、在他们剥夺了你一切人类外部特征之前。如今,你像机器多过像人。不过在对抗那些等着你的恐怖怪物时,这也许算是个优势吧。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137143,10 +134449,10 @@ msgstr "生化运动员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." -msgstr "大灾变的发生真是令人遗憾:你永远没机会参加生化奥林匹克了。现在唯一能阻止你获得丧尸友谊的玩意就是你那疯狂的生化力量。" +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." +msgstr "你再也赶不上参加生化奥运会了。你的梦想只剩下一杯喝剩下的蛋白混合饮料了。好吧,还有你那鼓鼓的,经过生化插件强化的肌肉。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137157,10 +134463,10 @@ msgstr "生化女运动员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." -msgstr "大灾变的发生真是令人遗憾:你永远没机会参加生化奥林匹克了。现在唯一能阻止你获得丧尸友谊的玩意就是你那疯狂的生化力量。" +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." +msgstr "你再也赶不上参加生化奥运会了。你的梦想只剩下一杯喝剩下的蛋白混合饮料了。好吧,还有你那鼓鼓的,经过生化插件强化的肌肉。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137171,10 +134477,10 @@ msgstr "生化跑步运动员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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 "你就是那种无法离开跑道的运动员。你喜欢跑步,你改造了你的身体使它能跑得更出色。现在有很多事情值得你为之\"奔跑\",这是你的游戏。" +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." +msgstr "你就是那种无法离开跑道的运动员。你喜欢跑步,你用生化插件改造了你的身体来跑得更快。现在有很多怪物需要你逃离跑开,这就是你的比赛。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137185,10 +134491,10 @@ msgstr "女生化跑步运动员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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 "你就是那种无法离开跑道的运动员。你喜欢跑步,你改造了你的身体使它能跑得更出色。现在有很多事情值得你为之\"奔跑\",这是你的游戏。" +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." +msgstr "你就是那种无法离开跑道的运动员。你喜欢跑步,你用生化插件改造了你的身体来跑得更快。现在有很多怪物需要你逃离跑开,这就是你的比赛。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137228,9 +134534,9 @@ msgstr "生化消防员" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." -msgstr "作为第二代强化消防员,你被生化加强以应对最为极端的紧急情况。世界末日当然也算是最为极端的紧急情况。" +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." +msgstr "作为第二代强化消防员,你被生化插件强化以应对最为极端的环境。世界末日当然也够极端的了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137242,9 +134548,9 @@ msgstr "生化女消防员" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." -msgstr "作为第二代强化消防员,你被生化加强以应对最为极端的紧急情况。世界末日当然也算是最为极端的紧急情况。" +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." +msgstr "作为第二代强化消防员,你被生化插件强化以应对最为极端的环境。世界末日当然也够极端的了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137255,10 +134561,10 @@ msgstr "生化科学家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." -msgstr "在末日之前,你被一家知名大型国际企业雇佣为代表和技术顾问,通过你生化加强后的思维进行工作。" +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." +msgstr "在大灾变之前,你被一家知名大型国际企业雇佣为代表和技术顾问,用你被生化插件强化后的大脑进行工作。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137269,10 +134575,10 @@ msgstr "生化女科学家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." -msgstr "在末日之前,你被一家知名大型国际企业雇佣为代表和技术顾问,通过你生化加强后的思维进行工作。" +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." +msgstr "在大灾变之前,你被一家知名大型国际企业雇佣为代表和技术顾问,通过你生化加强后的思维进行工作。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137283,11 +134589,10 @@ msgstr "生化战士" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." -msgstr "" -"你是军方的最新也是最后的生化战士研究方案的结果。幸亏你的强力改造,你所有的战友都倒在了亡灵脚下,而你还活着。至于目前你所知道的全部就是,当你错过了紧急撤离,你的长官把你抛弃了在这个地狱里。" +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." +msgstr "你是军方最后一个研究项目的成果:一个原型生化人士兵。他们期望你去打的战争已经过时了,但战争永远不会改变。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137298,11 +134603,10 @@ msgstr "生化女战士" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." -msgstr "" -"你是军方的最新也是最后的生化战士研究方案的结果。幸亏你的强力改造,你所有的战友都倒在了亡灵脚下,而你还活着。至于目前你所知道的全部就是,当你错过了紧急撤离,你的长官把你抛弃了在这个地狱里。" +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." +msgstr "你是军方最后一个研究项目的成果:一个原型生化人士兵。他们期望你去打的战争已经过时了,但战争永远不会改变。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137313,10 +134617,11 @@ msgstr "生化狙击手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." -msgstr "你的生化插件,装备,进阶的战地训练足够让你在敌后渗透几个星期并且把目标在难以置信的距离放倒。" +msgstr "一项绝密的军事计划把你变成完美的狙击手。你的生化插件,装备,数不清的战地训练足够让你在敌后渗透几个星期并且把目标在难以置信的距离放倒。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137327,40 +134632,43 @@ msgstr "生化女狙击手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." -msgstr "你的生化插件,装备,进阶的战地训练足够让你在敌后渗透几个星期并且把目标在难以置信的距离放倒。" +msgstr "一项绝密的军事计划把你变成完美的狙击手。你的生化插件,装备,数不清的战地训练足够让你在敌后渗透几个星期并且把目标在难以置信的距离放倒。" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Agent" -msgstr "生化特工" +msgstr "生化密探" #. ~ Profession (male Bionic Agent) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." -msgstr "你被政府培养成一名渗透专家。几百万美元的设备装在你身上——那都是纳税人的血汗钱啊:夜视仪、无声警报器、开锁器还有黑客工具。" +msgstr "" +"你的身体被植入了几个生化插件,价值数百万美元的税款花在你身上了。政府把你变成了一名渗透和侦察专家:你体内有夜视仪、无声警报、开锁器和黑客模块。" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Agent" -msgstr "生化女特工" +msgstr "生化女密探" #. ~ Profession (female Bionic Agent) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." -msgstr "你被政府培养成一名渗透专家。几百万美元的设备装在你身上——那都是纳税人的血汗钱啊:夜视仪、无声警报器、开锁器还有黑客工具。" +msgstr "" +"你的身体被植入了几个生化插件,价值数百万美元的税款花在你身上了。政府把你变成了一名渗透和侦察专家:你体内有夜视仪、无声警报、开锁器和黑客模块。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137373,8 +134681,9 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." -msgstr "你是数百万美元的秘密研究的产物,你总是默默清除你的目标,同时保持着人畜无害的外表。遗憾的是现在你恐怕很难找到美貌的女搭档了。" +" innocuous appearance. Your handler cut all contact a week ago." +msgstr "" +"你是数百万美元的秘密研究的产物,你总是默默清除你的目标,同时保持着人畜无害的外表。遗憾的是现在你恐怕很难找到美貌的女搭档了。你的经纪人一周前就切断了所有联系。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137387,8 +134696,9 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." -msgstr "你是数百万美元的秘密研究的产物,你总是默默清除你的目标,同时保持着人畜无害的外表。遗憾的是现在你恐怕很难找到美貌的女搭档了。" +" innocuous appearance. Your handler cut all contact a week ago." +msgstr "" +"你是数百万美元的秘密研究的产物,你总是默默清除你的目标,同时保持着人畜无害的外表。遗憾的是现在你恐怕很难找到美貌的女搭档了。你的经纪人一周前就切断了所有联系。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137399,13 +134709,12 @@ msgstr "生化黑手党徒" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" -"你曾经是头儿最欣赏的下属,得意门生。大伙都将最硬的活交给你,指望着你能搞定。知道你有潜力,帮里为你投入了不少资金给你安了些\"基础\"生化插件,还配上了黑市里能搞到的最好的装备,好让你更好完成手里的活计。在享受了一段为所欲为的日子之后,现在你发现自己需要依赖那些技能才能够生存下来。" +"你曾经是头儿最欣赏的下属,得意门生。大伙都将最硬的活交给你,指望着你能搞定。帮里为你投入了不少资金给你安了些\"基础\"生化插件,还配上了黑市里能搞到的最好的装备,好让你更好完成一笔大买卖。可惜的是,你完成手术后回来发现整个帮派都被人吃掉了,字面意思。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137416,13 +134725,12 @@ msgstr "生化黑手党徒" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" -"你曾经是头儿最欣赏的下属,得意门生。大伙都将最硬的活交给你,指望着你能搞定。知道你有潜力,帮里为你投入了不少资金给你安了些\"基础\"生化插件,还配上了黑市里能搞到的最好的装备,好让你更好完成手里的活计。在享受了一段为所欲为的日子之后,现在你发现自己需要依赖那些技能才能够生存下来。" +"你曾经是头儿最欣赏的下属,得意门生。大伙都将最硬的活交给你,指望着你能搞定。帮里为你投入了不少资金给你安了些\"基础\"生化插件,还配上了黑市里能搞到的最好的装备,好让你更好完成一笔大买卖。可惜的是,你完成手术后回来发现整个帮派都被人吃掉了,字面意思。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137433,10 +134741,11 @@ msgstr "失败改造人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." -msgstr "你全身上下被各种生化插件弄得一团糟。你有很高的生化能量槽,但安装的各种生化插件却早已失效,但至少你的酒精锅炉还能正常工作。" +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." +msgstr "" +"经历了一系列失败的手术后,你全身上下被各种生化插件弄得一团糟。你有很高的生化能量槽,安装的各种生化插件却早已失效,但至少你的酒精锅炉还能正常工作。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137447,10 +134756,11 @@ msgstr "失败改造女人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." -msgstr "你全身上下被各种生化插件弄得一团糟。你有很高的生化能量槽,但安装的各种生化插件却早已失效,但至少你的酒精锅炉还能正常工作。" +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." +msgstr "" +"经历了一系列失败的手术后,你全身上下被各种生化插件弄得一团糟。你有很高的生化能量槽,安装的各种生化插件却早已失效,但至少你的酒精锅炉还能正常工作。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137462,10 +134772,7 @@ msgstr "商用改造人" msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" "你总想要有最新最好的小玩意儿和小发明,所以动不动就升级你的身体,就像升级智能手机一样。不过只有时间会告诉我们,你对电子产品的热情和这个最新版的操作系统能不能确保你在大灾变之后生存下去。" @@ -137479,10 +134786,7 @@ msgstr "商用改造女人" msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" "你总想要有最新最好的小玩意儿和小发明,所以动不动就升级你的身体,就像升级智能手机一样。不过只有时间会告诉我们,你对电子产品的热情和这个最新版的操作系统能不能确保你在大灾变之后生存下去。" @@ -137522,9 +134826,9 @@ msgstr "陷阱猎人" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." -msgstr "父亲安放陷阱的背影充斥着你的前半生——你们靠着捉到的猎物和提供陷阱课程度日。如今,在这场不大平常的\"狩猎\"中,你的技能将大放光芒。" +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." +msgstr "父亲安放陷阱的背影充斥着你的前半生——你们靠出售猎物和提供陷阱教程度日。如今,在这场不大平常的\"狩猎\"中,你的技能将大放光芒。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137536,9 +134840,9 @@ msgstr "陷阱女猎人" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." -msgstr "父亲安放陷阱的背影充斥着你的前半生——你们靠着捉到的猎物和提供陷阱课程度日。如今,在这场不大平常的\"狩猎\"中,你的技能将大放光芒。" +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." +msgstr "父亲安放陷阱的背影充斥着你的前半生——你们靠出售猎物和提供陷阱教程度日。如今,在这场不大平常的\"狩猎\"中,你的技能将大放光芒。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137549,10 +134853,10 @@ msgstr "铁匠" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." -msgstr "几天前你站在蓝翔冶金专业的操作车间里,眼睁睁地看着老师变成了丧尸。你总算逃到了车间外面——手里还握着平常而不平凡的工具们。" +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." +msgstr "你在参加完社区学院的金属加工培训回家时遇到了麻烦,但尽管发生了大破坏,你还是设法保管好了一些随身携带的设备。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137563,10 +134867,10 @@ msgstr "女铁匠" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." -msgstr "几天前你站在蓝翔冶金专业的操作车间里,眼睁睁地看着老师变成了丧尸。你总算逃到了车间外面——手里还握着平常而不平凡的工具们。" +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." +msgstr "你在参加完社区学院的金属加工培训回家时遇到了麻烦,但尽管发生了大破坏,你还是设法保管好了一些随身携带的设备。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137579,8 +134883,8 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." -msgstr "你最大的能力就是让人发笑,你早早的退了学然后在小孩子们的生日派对上表演,直至世界末日,你的未来没有多少可能将气球拧成小动物了。" +"There are precious few balloon animals in your future now." +msgstr "你最大的能力就是让人发笑,你早早的退了学然后在小孩子们的生日派对上表演,直到末日来临。你的未来没有多少可能将气球拧成小动物了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137593,8 +134897,8 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." -msgstr "你最大的能力就是让人发笑,你早早的退了学然后在小孩子们的生日派对上表演,直至世界末日,你的未来没有多少可能将气球拧成小动物了。" +"There are precious few balloon animals in your future now." +msgstr "你最大的能力就是让人发笑,你早早的退了学然后在小孩子们的生日派对上表演,直到末日来临。你的未来没有多少可能将气球拧成小动物了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137605,9 +134909,9 @@ msgstr "迷失爱奴" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" "在一早的玩命大逃亡中,你和你的主人失散了。你没有名字,只有一身SM皮装。让你迷茫的是,你又可以完全掌控你自己了,你不得不一遍遍提醒自己:大灾变之后可没有安全词了!" @@ -137621,9 +134925,9 @@ msgstr "迷失女奴" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" "在一早的玩命大逃亡中,你和你的主人失散了。你没有名字,只有一身SM皮装。让你迷茫的是,你又可以完全掌控你自己了,你不得不一遍遍提醒自己:大灾变之后可没有安全词了!" @@ -137665,11 +134969,12 @@ msgstr "宅男" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"深夜与朋友吃着零食看动画,你准备参与在东北地区首屈一指的动漫大会。但没想到这天正好是大灾变发生的日子。至少万一你的女装撕破了,你还有点准备。" +"在许多次深夜与朋友吃着零食看动画之后,你准备参与在东北地区首屈一指的动漫大会。现在到处有丧尸吃人,更糟糕的是,大会停办了!至少万一你的女装撕破了,你还有点准备。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137680,11 +134985,12 @@ msgstr "宅女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." msgstr "" -"深夜与朋友吃着零食看动画,你准备参与在东北地区首屈一指的动漫大会。但没想到这天正好是大灾变发生的日子。至少万一你的女装撕破了,你还有点准备。" +"在许多次深夜与朋友吃着零食看动画之后,你准备参与在东北地区首屈一指的动漫大会。现在到处有丧尸吃人,更糟糕的是,大会停办了!至少万一你的女装撕破了,你还有点准备。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137721,9 +135027,9 @@ msgstr "杀马特男孩" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" -msgstr "世界末日一直就是你的梦想。现在旧世已经彻底完蛋,一起来参加这个充斥着妖魔鬼怪的派对吧!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" +msgstr "所有那些关于世界末日的可怕歌曲都变成了现实。真残酷!现在旧世已经彻底完蛋,一起来参加这个充斥着妖魔鬼怪的派对吧!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137734,9 +135040,9 @@ msgstr "非主流女孩" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" -msgstr "世界末日一直就是你的梦想。现在旧世已经彻底完蛋,一起来参加这个充斥着妖魔鬼怪的派对吧!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" +msgstr "所有那些关于世界末日的可怕歌曲都变成了现实。真残酷!现在旧世已经彻底完蛋,一起来参加这个充斥着妖魔鬼怪的派对吧!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137747,10 +135053,10 @@ msgstr "消防员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "作为第一目击者,你无助地看着这场撕心裂肺的灾难。联系不上小队成员,大多数装备都在车上,你只能靠着手头仅有的家什杀出一条血路了。" #: lang/json/professions_from_json.py @@ -137762,10 +135068,10 @@ msgstr "女消防员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." msgstr "作为第一目击者,你无助地看着这场撕心裂肺的灾难。联系不上小队成员,大多数装备都在车上,你只能靠着手头仅有的家什杀出一条血路了。" #: lang/json/professions_from_json.py @@ -137777,7 +135083,7 @@ msgstr "乐队主唱" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "你的天团在鼓手把贝斯手吃掉之后就永远解散了。现在你独自一人面对末日,身上只剩下一包烟,MP3里一首你们乐队的曲子都没有。" @@ -137790,7 +135096,7 @@ msgstr "乐队女主唱" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "你的天团在鼓手把贝斯手吃掉之后就永远解散了。现在你独自一人面对末日,身上只剩下一包烟,MP3里一首你们乐队的曲子都没有。" @@ -137803,9 +135109,9 @@ msgstr "邮差" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." -msgstr "你这辈子最大的本事就是在送快递的时候躲避邻居家的恶犬和顽童。现在你得靠这身本事在末日之后的世界生存下去了。" +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." +msgstr "无论风霜还是雨雪、酷热还是黑夜,都不会让你无法投递邮件,但是没人和你说过还有外星人的事。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137816,9 +135122,9 @@ msgstr "女邮差" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." -msgstr "你这辈子最大的本事就是在送快递的时候躲避邻居家的恶犬和顽童。现在你得靠这身本事在末日之后的世界生存下去了。" +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." +msgstr "无论风霜还是雨雪、酷热还是黑夜,都不会让你无法投递邮件,但是没人和你说过还有外星人的事。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137829,9 +135135,10 @@ msgstr "死囚" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." -msgstr "大灾变给了你逃跑的机会,但是自由的代价似乎有点偏高。" +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." +msgstr "你的判决很有争议,但最终你还是被关进了监狱。大灾变给了你逃跑的机会,但是自由的代价似乎有点偏高。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137842,9 +135149,10 @@ msgstr "女囚" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." -msgstr "大灾变给了你逃跑的机会,但是自由的代价似乎有点偏高。" +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." +msgstr "你的判决很有争议,但最终你还是被关进了监狱。大灾变给了你逃跑的机会,但是自由的代价似乎有点偏高。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137855,10 +135163,10 @@ msgstr "死刑犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." -msgstr "你曾经是一个将要被送上电椅的连环杀手,但现在其他人都死了,因为真正的死亡只来自你的双手,所以你要找份工作。" +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." +msgstr "你曾经是一个将要被送上电椅的连环杀手,但命运的捉弄让你成为少数还活着的人之一。真正的死亡只来自于你的双手,所以你要找份工作。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137869,10 +135177,10 @@ msgstr "死刑犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." -msgstr "你曾经是一个将要被送上电椅的连环杀手,但现在其他人都死了,因为真正的死亡只来自你的双手,所以你要找份工作。" +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." +msgstr "你曾经是一个将要被送上电椅的连环杀手,但命运的捉弄让你成为少数还活着的人之一。真正的死亡只来自于你的双手,所以你要找份工作。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137885,8 +135193,9 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." -msgstr "你有一个天才的计划,从你公司的账目中扣除零头。这个计划很快暴露,你被逮捕了。他们说你太弱了,活不到出狱,但现在他们死了而你没有。" +" were too soft for prison, but guess what? They're dead, and you're not." +msgstr "" +"你有一个天才的计划,从你公司的账目中扣除零头。这个计划很快暴露,你被逮捕了。他们说你太弱了,活不到出狱。但猜猜怎么着,现在他们都死了而你没有。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137899,8 +135208,9 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." -msgstr "你有一个天才的计划,从你公司的账目中扣除零头。这个计划很快暴露,你被逮捕了。他们说你太弱了,活不到出狱,但现在他们死了而你没有。" +" were too soft for prison, but guess what? They're dead, and you're not." +msgstr "" +"你有一个天才的计划,从你公司的账目中扣除零头。这个计划很快暴露,你被逮捕了。他们说你太弱了,活不到出狱。但猜猜怎么着,现在他们都死了而你没有。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137939,9 +135249,10 @@ msgstr "政治犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." -msgstr "揭露那些实验室里发生的事情是一个高尚的想法。你坚定的认为,如果不是因为行为失检的指控,你本可以阻止这场灾难。" +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." +msgstr "你尽了最大努力揭露那些实验室里发生的事情,但他们把你抓了起来,并捏造了个罪名把你关进了监狱,让你闭嘴。很明显,他们早应该听你一言的。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137952,9 +135263,10 @@ msgstr "政治犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." -msgstr "揭露那些实验室里发生的事情是一个高尚的想法。你坚定的认为,如果不是因为行为失检的指控,你本可以阻止这场灾难。" +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." +msgstr "你尽了最大努力揭露那些实验室里发生的事情,但他们把你抓了起来,并捏造了个罪名把你关进了监狱,让你闭嘴。很明显,他们早应该听你一言的。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137993,9 +135305,10 @@ msgstr "窃贼" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" -msgstr "你觉得这就是你的幸运日。如果城里每个人都成不死族了,闯空门还算是偷吗?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" +msgstr "这可能是你的幸运休息日。到处都是可以偷的战利品,而且没有警察看管。如果城里每个人都成不死族了,闯空门还算是偷吗?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138006,9 +135319,10 @@ msgstr "女窃贼" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" -msgstr "你觉得这就是你的幸运日。如果城里每个人都成不死族了,闯空门还算是偷吗?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" +msgstr "这可能是你的幸运休息日。到处都是可以偷的战利品,而且没有警察看管。如果城里每个人都成不死族了,闯空门还算是偷吗?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138019,12 +135333,10 @@ msgstr "剃刀杀手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"经过一系列痛苦而昂贵的手术,你居然没有进入演艺圈,反而成了一个会走路的生化兵器。你为出价最高的雇主提供各种服务。现在,世界已经终结,这些生化功能可是决定生死的区别。" +"通过一系列痛苦而昂贵的手术,你变成了一个行走的生化兵器,你为出价最高的雇主提供各种服务。现在,世界已经终结,这些生化插件可能决定了生死的差别。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138035,12 +135347,10 @@ msgstr "剃刀女杀手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"经过一系列痛苦而昂贵的手术,你居然没有进入演艺圈,反而成了一个会走路的生化兵器。你为出价最高的雇主提供各种服务。现在,世界已经终结,这些生化功能可是决定生死的区别。" +"通过一系列痛苦而昂贵的手术,你变成了一个行走的生化兵器,你为出价最高的雇主提供各种服务。现在,世界已经终结,这些生化插件可能决定了生死的差别。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138053,9 +135363,9 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" -msgstr "你一直沉迷于给自己安装来自黑市的二手生化插件。现在末世降临,你觉得你以前的投资真是太超值了,问题是现在你去哪里修理出问题的生化插件呢?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" +msgstr "你一直沉迷于给自己安装来自黑市的二手生化插件。现在末世降临,你对超越人类的渴望依旧嗷嗷待哺,问题是现在你去哪里修理出问题的生化插件呢?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138068,9 +135378,9 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" -msgstr "你一直沉迷于给自己安装来自黑市的二手生化插件。现在末世降临,你觉得你以前的投资真是太超值了,问题是现在你去哪里修理出问题的生化插件呢?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" +msgstr "你一直沉迷于给自己安装来自黑市的二手生化插件。现在末世降临,你对超越人类的渴望依旧嗷嗷待哺,问题是现在你去哪里修理出问题的生化插件呢?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138082,11 +135392,10 @@ msgstr "生化怪物" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"由于完全不顾伦理的生化改造,你沦为了无法被社会接纳的恐怖怪物。但现在,一旦你隐藏在暗处,你发现在这个荒凉的新世界里,即使是怪物,也可能会发现其优势。" +"由于完全不顾伦理的生化改造,你沦为了无法被社会接纳的恐怖怪物,被迫躲在暗处生存。然而你发现在这个荒凉的新世界里,即使是怪物,也可能找到它的位置。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138098,11 +135407,10 @@ msgstr "生化母怪物" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"由于完全不顾伦理的生化改造,你沦为了无法被社会接纳的恐怖怪物。但现在,一旦你隐藏在暗处,你发现在这个荒凉的新世界里,即使是怪物,也可能会发现其优势。" +"由于完全不顾伦理的生化改造,你沦为了无法被社会接纳的恐怖怪物,被迫躲在暗处生存。然而你发现在这个荒凉的新世界里,即使是怪物,也可能找到它的位置。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138113,9 +135421,10 @@ msgstr "律师" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." -msgstr "一直抱怨你收费过高的客户们他们现在只对敲开你脑壳吃你的脑子有兴趣。你说这是好事还是坏事?" +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." +msgstr "陪审团被你玩弄于股掌之间,但在被告试图吃了你的大脑后,你被迫羞耻地逃离法庭。现在似乎没有人在乎你的辩护词了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138126,9 +135435,10 @@ msgstr "女律师" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." -msgstr "一直抱怨你收费过高的客户们他们现在只对敲开你脑壳吃你的脑子有兴趣。你说这是好事还是坏事?" +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." +msgstr "陪审团被你玩弄于股掌之间,但在被告试图吃了你的大脑后,你被迫羞耻地逃离法庭。现在似乎没有人在乎你的辩护词了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138139,11 +135449,10 @@ msgstr "牧师" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." -msgstr "当灾难来袭,你动用你最擅长的能力来保护你的教区信徒。但他们都死了,显然光做祷告好像没多大用嘛!现在,是时候找些更切实的手段保护你自己了。" +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." +msgstr "末日审判来了!你尽可能地试图保护你的教区信徒。但他们都死了,显然光做祷告还不够。既然他们都死了,是时候找些更切实的手段保护你自己了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138154,11 +135463,10 @@ msgstr "女牧师" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." -msgstr "当灾难来袭,你动用你最擅长的能力来保护你的教区信徒。但他们都死了,显然光做祷告好像没多大用嘛!现在,是时候找些更切实的手段保护你自己了。" +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." +msgstr "末日审判来了!你尽可能地试图保护你的教区信徒。但他们都死了,显然光做祷告还不够。既然他们都死了,是时候找些更切实的手段保护你自己了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138198,8 +135506,8 @@ msgstr "伊玛目" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" "在大灾变发生前,你一生中的大部分时间,都在本地的清真寺中的研读先知和古兰经中的字句,和在你的社区中布道度过了。但是现在,那些不远千里从四面八方过来的信教者们,都不再是为了听你的布道,而是为了来吃你的脑子来了。" @@ -138214,8 +135522,8 @@ msgstr "女伊玛目" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" "在大灾变发生前,你一生中的大部分时间,都在本地的清真寺中的研读先知和古兰经中的字句,和在你的社区中布道度过了。但是现在,那些不远千里从四面八方过来的信教者们,都不再是为了听你的布道,而是为了来吃你的脑子来了。" @@ -138286,11 +135594,11 @@ msgstr "传教士" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"你把你的一生都奉献在一个城镇到一个城镇地传播福音和去往传播福音的路上。现在,所有东西都已坠入地狱,你不能够再维持你的播客生活了,因为那些不死生物听到你的布道后也不会再心动了。" +"你把你的一生都奉献在一个城镇到一个城镇地传播福音和去往传播福音的路上。现在,所有东西都已坠入地狱,你不能够再维持你的播客生活了,那些不死生物似乎也不会被你的布道所感动。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138302,11 +135610,11 @@ msgstr "女传教士" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"你把你的一生都奉献在一个城镇到一个城镇地传播福音和去往传播福音的路上。现在,所有东西都已坠入地狱,你不能够再维持你的播客生活了,因为那些不死生物听到你的布道后也不会再心动了。" +"你把你的一生都奉献在一个城镇到一个城镇地传播福音和去往传播福音的路上。现在,所有东西都已坠入地狱,你不能够再维持你的播客生活了,那些不死生物似乎也不会被你的布道所感动。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138317,9 +135625,9 @@ msgstr "菜鸟武术家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." -msgstr "你正在前往道场学习第一课的路上,世界就毁灭了。现在,你真希望自己除了武术同时还学会游泳。" +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." +msgstr "你已经决定今天是你去当地道馆上第一堂课的日子。你会很在行的,你很确定。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138330,9 +135638,9 @@ msgstr "菜鸟女武术家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." -msgstr "你正在前往道场学习第一课的路上,世界就毁灭了。现在,你真希望自己除了武术同时还学会游泳。" +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." +msgstr "你已经决定今天是你去当地道馆上第一堂课的日子。你会很在行的,你很确定。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138395,8 +135703,8 @@ msgstr "拳击手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "在大灾变前你为了生计而不断打架,但现在的战斗仅仅是为了让你生存下去。" #: lang/json/professions_from_json.py @@ -138408,8 +135716,8 @@ msgstr "女拳击手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." msgstr "在大灾变前你为了生计而不断打架,但现在的战斗仅仅是为了让你生存下去。" #: lang/json/professions_from_json.py @@ -138422,9 +135730,9 @@ msgstr "披萨外送小子" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" "你正在上晚班,接到了给实验室送披萨的订单。不过到达的时候你发现这帮科学家根本不喜欢披萨,反而对你的脑浆充满热情。不喜欢就别打电话点餐啊!!你看着没人要的披萨愤愤想着。" @@ -138438,9 +135746,9 @@ msgstr "披萨外送妹子" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" "你正在上晚班,接到了给实验室送披萨的订单。不过到达的时候你发现这帮科学家根本不喜欢披萨,反而对你的脑浆充满热情。不喜欢就别打电话点餐啊!!你看着没人要的披萨愤愤想着。" @@ -138453,10 +135761,10 @@ msgstr "考古学家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." -msgstr "你正在去寻找史前庙宇遗迹的路上,线索就是那本去世爷爷的日记。手握长鞭,你似乎就是夺宝奇兵!" +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." +msgstr "根据你早已去世的爷爷的日记中的线索,你来到了一座沉寂已久的庙宇遗迹前,但随后地面开始无法控制地震动。你有股不祥的预感,所以你迅速离开了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138467,10 +135775,10 @@ msgstr "女考古学家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." -msgstr "你正在去寻找史前庙宇遗迹的路上,线索就是那本去世爷爷的日记。手握长鞭,你似乎就是夺宝奇兵!" +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." +msgstr "根据你早已去世的爷爷的日记中的线索,你来到了一座沉寂已久的庙宇遗迹前,但随后地面开始无法控制地震动。你有股不祥的预感,所以你迅速离开了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138481,9 +135789,9 @@ msgstr "送报男孩" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "当大灾变来袭的时候你正沿着熟悉的路线送早报。显然尸群对最新消息完全不感兴趣,但不管咋样你值得信赖的自行车还能用。" #: lang/json/professions_from_json.py @@ -138495,9 +135803,9 @@ msgstr "送报女孩" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." msgstr "当大灾变来袭的时候你正沿着熟悉的路线送早报。显然尸群对最新消息完全不感兴趣,但不管咋样你值得信赖的自行车还能用。" #: lang/json/professions_from_json.py @@ -138509,12 +135817,12 @@ msgstr "速滑德比选手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"大灾变前你这屌人滑的狂野的一逼。现在你的队友都挂了,如果不是因为对高速暴力的热爱你也不会活这么久。事情还是比较大条的,在被不死族以正义之名放翻之前,你还能转悠几圈?" +"你曾经是地狱之轮。现在你的队友都挂了,如果不是因为对高速暴力的热爱,你也没法活这么久。事情看起来很严峻;在你被放翻之前,你还能绕着不死人转几圈呢?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138525,12 +135833,12 @@ msgstr "女子速滑德比选手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"大灾变前你这屌人滑的狂野的一逼。现在你的队友都挂了,如果不是因为对高速暴力的热爱你也不会活这么久。事情还是比较大条的,在被不死族以正义之名放翻之前,你还能转悠几圈?" +"你曾经是地狱之轮。现在你的队友都挂了,如果不是因为对高速暴力的热爱,你也没法活这么久。事情看起来很严峻;在你被放翻之前,你还能绕着不死人转几圈呢?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138541,10 +135849,11 @@ msgstr "农夫" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." -msgstr "灾难来临之时,你靠着种庄稼来养活自己。现在,手握着可靠的锄头和一些种子,是时候重建地球了,一棵棵的种过去。" +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." +msgstr "" +"一小块肥沃的土壤,一些水和阳光就是你所需要的全部,即便是现在,情况又会有什么不同呢?带上一小撮种子和你那把值得信赖的锄头,现在是时候重建地球了,从种下一棵植物开始。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138555,10 +135864,11 @@ msgstr "农妇" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." -msgstr "灾难来临之时,你靠着种庄稼来养活自己。现在,手握着可靠的锄头和一些种子,是时候重建地球了,一棵棵的种过去。" +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." +msgstr "" +"一小块肥沃的土壤,一些水和阳光就是你所需要的全部,即便是现在,情况又会有什么不同呢?带上一小撮种子和你那把值得信赖的锄头,现在是时候重建地球了,从种下一棵植物开始。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138569,11 +135879,11 @@ msgstr "民兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"大灾变发生时你被电话征召成为一名光荣的国民警卫队,也就是我们那噶哒叫民兵的。尽管你尽了最大的努力,你还是没有找到大部队。当发现自己独自一人在充满丧尸的城市里游荡时,你开始纠结是去村头放哨涅,还是去村尾巡逻?" +"政府征召了你所在的国民警卫队来对付日益严重的流行病。尽管你尽了最大的努力,但直到所有的通信都中断了,你还是没能找到队伍,你发现独自一人在充满死亡的城市里游荡。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138584,11 +135894,11 @@ msgstr "女民兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"大灾变发生时你被电话征召成为一名光荣的国民警卫队,也就是我们那噶哒叫民兵的。尽管你尽了最大的努力,你还是没有找到大部队。当发现自己独自一人在充满丧尸的城市里游荡时,你开始纠结是去村头放哨涅,还是去村尾巡逻?" +"政府征召了你所在的国民警卫队来对付日益严重的流行病。尽管你尽了最大的努力,但直到所有的通信都中断了,你还是没能找到队伍,你发现独自一人在充满死亡的城市里游荡。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138600,9 +135910,9 @@ msgstr "资深拾荒者" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." -msgstr "作为逃离大灾变的幸运儿之一,你开始在废墟捡破烂。甭管是坑蒙拐骗还是哭爹喊娘,你终于成为了捡破烂中的精英。" +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." +msgstr "作为逃离大灾变的幸运儿之一,你在文明的废墟中为自己找到了一条生路。无论是通过武力、诡计还是运气,你收集了一些你所能找到的最好的装备。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138614,9 +135924,9 @@ msgstr "资深拾荒女" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." -msgstr "作为逃离大灾变的幸运儿之一,你开始在废墟捡破烂。甭管是坑蒙拐骗还是哭爹喊娘,你终于成为了捡破烂中的精英。" +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." +msgstr "作为逃离大灾变的幸运儿之一,你在文明的废墟中为自己找到了一条生路。无论是通过武力、诡计还是运气,你收集了一些你所能找到的最好的装备。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138627,12 +135937,12 @@ msgstr "坚守于军事设施" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"你一定在新兵营里花了不少功夫在生存训练上,否则你一定无法比你整条指挥链上的其他人还活得长,现在你让自己陷入了这种困境。唯一剩下的命令就是活下去。" +"你一定在新兵营里花了不少功夫在生存训练上,否则你没法做到比你整条指挥链上的其他人还活得长,而现在你发现自己被困住了。现在你唯一的任务就是活下去。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138643,12 +135953,12 @@ msgstr "坚守于军事设施" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -"你一定在新兵营里花了不少功夫在生存训练上,否则你一定无法比你整条指挥链上的其他人还活得长,现在你让自己陷入了这种困境。唯一剩下的命令就是活下去。" +"你一定在新兵营里花了不少功夫在生存训练上,否则你没法做到比你整条指挥链上的其他人还活得长,而现在你发现自己被困住了。现在你唯一的任务就是活下去。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138659,11 +135969,11 @@ msgstr "购物中心保安" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"你是一个商场的男保安员。除了工作所需的基本训练,你没有掌握任何更加有用的技能。然而,幸运的是一把值得信赖的泰瑟电击枪,一根甩棍和一把小刀你还带在身上。" +"你在无聊的夜晚中守卫着当地的购物中心,对付青少年流氓和可怜的小偷。你的工作培训并没有为你提供任何有用的技能,但你手头确实还配着你那把可靠的电击枪、警棍和折叠刀。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138674,11 +135984,11 @@ msgstr "购物中心女保安" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"你是一个商场的女保安员。除了工作所需的基本训练,你没有掌握任何更加有用的技能。然而,幸运的是一把值得信赖的泰瑟电击枪,一根甩棍和一把小刀你还带在身上。" +"你在无聊的夜晚中守卫着当地的购物中心,对付青少年流氓和可怜的小偷。你的工作培训并没有为你提供任何有用的技能,但你手头确实还配着你那把可靠的电击枪、警棍和折叠刀。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138689,10 +135999,10 @@ msgstr "自然主义圣父" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." -msgstr "在野外历经长年的自我流放式的生活, 你已经和自然之母达成一致。这个原属于被抛弃的人类的世界可能已经完蛋了,但是对你而言却依如昨日。" +msgstr "在野外历经长年的自我流放式的生活, 你已经和大自然母亲达成了谅解。这个原属于被抛弃的人类的世界可能已经完蛋了,但是对你而言却依如昨日。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138703,10 +136013,10 @@ msgstr "自然主义圣母" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." -msgstr "在野外历经长年的自我流放式的生活, 你已经和自然之母达成一致。这个原属于被抛弃的人类的世界可能已经完蛋了,但是对你而言却依如昨日。" +msgstr "在野外历经长年的自我流放式的生活, 你已经和大自然母亲达成了谅解。这个原属于被抛弃的人类的世界可能已经完蛋了,但是对你而言却依如昨日。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138717,12 +136027,12 @@ msgstr "渔夫" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"你大半辈子都致力于偷偷摸摸的捕鱼工作,很享受那些在湖面和昆虫嬉戏的时间。但是现在这些昆虫变得越来越大,以至于最近你几乎无法再愉快的继续你的非法捕捞作业。而现在你只希望在你身后发出恐怖咆哮声的不是那些曾经让你随便捏爆的小鱼。" +"你大半辈子都致力于偷偷摸摸的捕鱼工作,很享受那些在湖面和昆虫嬉戏的时间。但是现在这些昆虫变得越来越大,也变得越来越恶毒。它们发出的声音让你害怕,你现在只希望鱼儿们别变得太恶心。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138733,12 +136043,12 @@ msgstr "渔妇" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"你大半辈子都致力于偷偷摸摸的捕鱼工作,很享受那些在湖面和昆虫嬉戏的时间。但是现在这些昆虫变得越来越大,以至于最近你几乎无法再愉快的继续你的非法捕捞作业。而现在你只希望在你身后发出恐怖咆哮声的不是那些曾经让你随便捏爆的小鱼。" +"你大半辈子都致力于偷偷摸摸的捕鱼工作,很享受那些在湖面和昆虫嬉戏的时间。但是现在这些昆虫变得越来越大,也变得越来越恶毒。它们发出的声音让你害怕,你现在只希望鱼儿们别变得太恶心。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138806,9 +136116,10 @@ msgstr "无人机操作员" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." -msgstr "你曾经有一份给像是给自动道路清扫机器、派报机器人、或者送披萨无人机编程的编程工作,现在所有的无人机都挂着枪炮而不是披萨。" +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." +msgstr "" +"你曾经有一份给像是给自动道路清扫机器、派报机器人、或者送披萨无人机编程的编程工作,你体内的生化插件让你能远程控制它们。现在所有的无人机都挂着枪炮而不是披萨。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138820,9 +136131,10 @@ msgstr "无人机女操作员" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." -msgstr "你曾经有一份给像是给自动道路清扫机器、派报机器人、或者送披萨无人机编程的编程工作,现在所有的无人机都挂着枪炮而不是披萨。" +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." +msgstr "" +"你曾经有一份给像是给自动道路清扫机器、派报机器人、或者送披萨无人机编程的编程工作,你体内的生化插件让你能远程控制它们。现在所有的无人机都挂着枪炮而不是披萨。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138833,9 +136145,10 @@ msgstr "轮滑少年" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." -msgstr "你超爱轮滑!至少现在那些烦人的大人们不会再告诉你哪里不准滑了。" +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." +msgstr "你超爱轮滑!你穿着滑冰鞋的时间比脱下它还要多的多。一切都变得一团糟,但至少现在那些烦人的大人们不会再告诉你哪里不准滑了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138846,9 +136159,10 @@ msgstr "轮滑少女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." -msgstr "你超爱轮滑!至少现在那些烦人的大人们不会再告诉你哪里不准滑了。" +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." +msgstr "你超爱轮滑!你穿着滑冰鞋的时间比脱下它还要多的多。一切都变得一团糟,但至少现在那些烦人的大人们不会再告诉你哪里不准滑了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138859,10 +136173,10 @@ msgstr "童党阿飞" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "你从来不听大人们的教训,因此你大多是在校长室中度过一天的学习的。现在,再也不需要大人们天天教你做人啦。今日宜逃学,伙计!" #: lang/json/professions_from_json.py @@ -138874,10 +136188,10 @@ msgstr "童党太妹" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "你从来不听大人们的教训,因此你大多是在校长室中度过一天的学习的。现在,再也不需要大人们天天教你做人啦。今日宜逃学,伙计!" #: lang/json/professions_from_json.py @@ -138922,11 +136236,10 @@ msgstr "生化学生" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." -msgstr "" -"你的父母们为了让你门门考试拿第一,不惜用生化插件改造你,让你变得聪明和从不遗忘。现在,你将会面对一场最难的考试,而你将会(最好能会)取得最好的成绩。" +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." +msgstr "你的父母们为了让你门门考试拿第一,不惜用生化插件改造你,以提高你的智力和记忆力。现在你正面临着最严峻的考验,而你不确定这些插件能派上用场。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138938,11 +136251,10 @@ msgstr "生化女学生" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." -msgstr "" -"你的父母们为了让你门门考试拿第一,不惜用生化插件改造你,让你变得聪明和从不遗忘。现在,你将会面对一场最难的考试,而你将会(最好能会)取得最好的成绩。" +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." +msgstr "你的父母们为了让你门门考试拿第一,不惜用生化插件改造你,以提高你的智力和记忆力。现在你正面临着最严峻的考验,而你不确定这些插件能派上用场。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138953,9 +136265,10 @@ msgstr "躲避球手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." -msgstr "你很喜欢玩躲避球。以前你没能躲开时只意味着你将下场,而现在如果你没能躲开,小命不保,可不要手滑了哦。" +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." +msgstr "在躲避球比赛中,没能躲开球意味着被球砸到头,退出比赛。而在大灾变中,这意味着你会被怪物吃掉。别出错。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138966,9 +136279,10 @@ msgstr "躲避球手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." -msgstr "你很喜欢玩躲避球。以前你没能躲开时只意味着你将下场,而现在如果你没能躲开,小命不保,可不要手滑了哦。" +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." +msgstr "在躲避球比赛中,没能躲开球意味着被球砸到头,退出比赛。而在大灾变中,这意味着你会被怪物吃掉。别出错。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -138979,11 +136293,10 @@ msgstr "科学俱乐部社员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." -msgstr "你是学校科学俱乐部的成员之一。虽然现在你同样在为学校内不准你玩这些有趣的爆炸化合物而可惜,不过,现在,至少没人阻止你到校外制造爆炸了~" +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." +msgstr "学校从来不让你的俱乐部玩真正有趣的化学物质,那些会爆炸的玩意,但是现在没有老师来执行这些规则了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -138994,11 +136307,10 @@ msgstr "科学俱乐部女社员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." -msgstr "你是学校科学俱乐部的成员之一。虽然现在你同样在为学校内不准你玩这些有趣的爆炸化合物而可惜,不过,现在,至少没人阻止你到校外制造爆炸了~" +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." +msgstr "学校从来不让你的俱乐部玩真正有趣的化学物质,那些会爆炸的玩意,但是现在没有老师来执行这些规则了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139010,8 +136322,8 @@ msgstr "电影俱乐部男社员" msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "你是学校电影俱乐部的成员之一。你相信你能从电影中学到能够保命的技能,但是你仍然搞不懂如何才能发射死亡射线。" #: lang/json/professions_from_json.py @@ -139024,8 +136336,8 @@ msgstr "电影俱乐部女社员" msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." msgstr "你是学校电影俱乐部的成员之一。你相信你能从电影中学到能够保命的技能,但是你仍然搞不懂如何才能发射死亡射线。" #: lang/json/professions_from_json.py @@ -139037,10 +136349,10 @@ msgstr "教师" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." -msgstr "你曾经是一名光荣的人民教师,学生们都很听你的话。但现在,你所能布置的作业的内容,只能是今天让他们吃掉你的哪条大腿了。" +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." +msgstr "你一生都在教导孩子们,体验向年轻人传授知识的喜悦和痛苦。即使丧尸对教育有兴趣,它们也没能表现出来。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139051,10 +136363,10 @@ msgstr "女教师" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." -msgstr "你曾经是一名光荣的人民教师,学生们都很听你的话。但现在,你所能布置的作业的内容,只能是今天让他们吃掉你的哪条大腿了。" +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." +msgstr "你一生都在教导孩子们,体验向年轻人传授知识的喜悦和痛苦。即使丧尸对教育有兴趣,它们也没能表现出来。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139065,12 +136377,11 @@ msgstr "摄影记者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"在大灾变前你曾是一名自由摄影记者。你有机会成为第一个报道大灾变的记者,虽然现在找到一个出版商似乎看起来比平常更困难。你成功将你的相机保留了下来,祝你能抓拍到一些美妙时刻。分享此刻,分享生活。" +"近距离报道大灾变可以让你的事业蒸蒸日上,不过现在想找到一家出版商似乎比往常要困难。你成功将你的相机保留了下来,祝你能抓拍到一些美妙时刻。分享此刻,分享生活。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139081,12 +136392,11 @@ msgstr "摄影女记者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"在大灾变前你曾是一名自由摄影记者。你有机会成为第一个报道大灾变的记者,虽然现在找到一个出版商似乎看起来比平常更困难。你成功将你的相机保留了下来,祝你能抓拍到一些美妙时刻。分享此刻,分享生活。" +"近距离报道大灾变可以让你的事业蒸蒸日上,不过现在想找到一家出版商似乎比往常要困难。你成功将你的相机保留了下来,祝你能抓拍到一些美妙时刻。分享此刻,分享生活。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139097,9 +136407,10 @@ msgstr "体育老师" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." -msgstr "在学校里干了许久和别的老师不一样的活计之后,你发现丧尸们根本不像学生那样好捏,就算你吹哨子了它们也不去跑圈。" +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." +msgstr "要让孩子跑几圈就已经够难的了,那会儿你还不必担心他们想吃掉你的大脑。而这些丧尸甚至在你吹完哨子后还学不会排队。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139110,9 +136421,10 @@ msgstr "体育女老师" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." -msgstr "在学校里干了许久和别的老师不一样的活计之后,你发现丧尸们根本不像学生那样好捏,就算你吹哨子了它们也不去跑圈。" +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." +msgstr "要让孩子跑几圈就已经够难的了,那会儿你还不必担心他们想吃掉你的大脑。而这些丧尸甚至在你吹完哨子后还学不会排队。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139123,12 +136435,10 @@ msgstr "男驴友" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." -msgstr "" -"在一切都土崩瓦解之前,你总是喜欢徒步旅行和荒野露营,所以当警报响起你毫不犹豫的背起包就跑。这个世界可能已经毁了,但无论你在哪里,你都准备好建立一个家了。" +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." +msgstr "你总是喜欢徒步旅行和荒野露营,所以当警报响起你毫不犹豫的背起包就跑。城市已经沦陷了,但无论你在哪里,你都准备好随时建起一个家了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139139,12 +136449,10 @@ msgstr "女驴友" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." -msgstr "" -"在一切都土崩瓦解之前,你总是喜欢徒步旅行和荒野露营,所以当警报响起你毫不犹豫的背起包就跑。这个世界可能已经毁了,但无论你在哪里,你都准备好建立一个家了。" +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." +msgstr "你总是喜欢徒步旅行和荒野露营,所以当警报响起你毫不犹豫的背起包就跑。城市已经沦陷了,但无论你在哪里,你都准备好随时建起一个家了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139156,7 +136464,7 @@ msgstr "矿工" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "虽然你是矿工,但你不是无名之辈!(英语双关)你的水壶早已经干透,你的打桩机也耗光了燃料,而你的矿工帽只剩下最后一对电池了……" #: lang/json/professions_from_json.py @@ -139169,7 +136477,7 @@ msgstr "女矿工" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." +" gas, and you're on your last pair of batteries for your mining helmet…" msgstr "虽然你是矿工,但你不是无名之辈!(英语双关)你的水壶早已经干透,你的打桩机也耗光了燃料,而你的矿工帽只剩下最后一对电池了……" #: lang/json/professions_from_json.py @@ -139181,9 +136489,10 @@ msgstr "爆破专家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " -msgstr "在这一切开始之前,你有份梦想中的工作,把各种东西炸上天。现在你终于可以全职工作了。" +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " +msgstr "在这一切开始之前,你有份梦想中的工作,把各种东西炸上天。大灾变意味着你终于可以全职工作了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139194,9 +136503,10 @@ msgstr "爆破专家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " -msgstr "在这一切开始之前,你有份梦想中的工作,把各种东西炸上天。现在你终于可以全职工作了。" +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " +msgstr "在这一切开始之前,你有份梦想中的工作,把各种东西炸上天。大灾变意味着你终于可以全职工作了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139235,9 +136545,10 @@ msgstr "游客" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" -msgstr "你本来来着是为了体验下新英格兰的风味,现在你只希望别让新英格兰尝尝你的风味了!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" +msgstr "这里曾经是一个度假的好地方,但你开始有些后悔离家了。你本来来着是为了体验下新英格兰的风味,现在你只希望别让新英格兰尝尝你的风味了!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139248,9 +136559,10 @@ msgstr "女游客" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" -msgstr "你本来来着是为了体验下新英格兰的风味,现在你只希望别让新英格兰尝尝你的风味了!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" +msgstr "这里曾经是一个度假的好地方,但你开始有些后悔离家了。你本来来着是为了体验下新英格兰的风味,现在你只希望别让新英格兰尝尝你的风味了!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139261,9 +136573,12 @@ msgstr "原始生活21天" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." -msgstr "你在森林里拍摄求生真人秀节目《Naked and Afraid》,但其他演员和剧组人员似乎都变成了丧尸。看起来这次是要来真的了……" +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" +msgstr "" +"你在森林里拍摄求生真人秀节目《Naked and " +"Afraid》,奇怪的是,其他演员和剧组人员似乎都变成了丧尸,这时机对你来说实在是不能更糟糕了。看起来这次是要真的求生了……" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139274,9 +136589,12 @@ msgstr "原始生活21天" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." -msgstr "你在森林里拍摄求生真人秀节目《Naked and Afraid》,但其他演员和剧组人员似乎都变成了丧尸。看起来这次是要来真的了……" +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" +msgstr "" +"你在森林里拍摄求生真人秀节目《Naked and " +"Afraid》,奇怪的是,其他演员和剧组人员似乎都变成了丧尸,这时机对你来说实在是不能更糟糕了。看起来这次是要真的求生了……" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139288,9 +136606,9 @@ msgstr "人体强化协会会员" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" "当生化插件首次出现的时候,你迅速加入这个新兴行业,并花费了许多时间操作并管理这些插件的安装过程。作为世界上仅存的少数几个还没变成丧尸还能够调试校准全自动医疗仪的人,你的技能也许会在这个末日后的世界里派上些用场。" @@ -139304,9 +136622,9 @@ msgstr "人体强化协会会员" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" "当生化插件首次出现的时候,你迅速加入这个新兴行业,并花费了许多时间操作并管理这些插件的安装过程。作为世界上仅存的少数几个还没变成丧尸还能够调试校准全自动医疗仪的人,你的技能也许会在这个末日后的世界里派上些用场。" @@ -139319,10 +136637,10 @@ msgstr "地下城主" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" "每周一轮尝试着带领那些啥都不懂的\"小猫\"到达地下城的终点教会了你一些事:大多数时候都该果断止损并相信自己的直觉。因此,当你发现有两个朋友失约而另两个尝试吃掉你时,你逃跑了。也许你能够在这个废墟一样的世界里找到一些新玩家。" @@ -139335,10 +136653,10 @@ msgstr "地下城主" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" "每周一轮尝试着带领那些啥都不懂的\"小猫\"到达地下城的终点教会了你一些事:大多数时候都该果断止损并相信自己的直觉。因此,当你发现有两个朋友失约而另两个尝试吃掉你时,你逃跑了。也许你能够在这个废墟一样的世界里找到一些新玩家。" @@ -139352,12 +136670,11 @@ msgstr "生化地下城主" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"你通过彩票或是遗嘱,获得了一笔巨款,并为很多你能直接称呼名字的好友们举办一场场地下城游戏。你可以为你的玩家投入巨资,而你也这么做了。你花钱给自己安装了些提升智力的生化插件,并且把整本地城手册都储存在了自己的脑内的存储器里。现在让我们希望这些知识可以帮到你。" +"你通过彩票或是遗嘱,获得了一笔巨款,并为许多世界闻名的明星们一同举办了一场场地下城游戏。你可以为你的玩家投入巨资,而你也这么做了。你花钱给自己安装了些提升智力的生化插件,并且把整本地城手册都储存在了自己的脑内的存储器里。现在让我们希望这些知识可以帮到你。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139369,12 +136686,11 @@ msgstr "生化地下城主" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"你通过彩票或是遗嘱,获得了一笔巨款,并为很多你能直接称呼名字的好友们举办一场场地下城游戏。你可以为你的玩家投入巨资,而你也这么做了。你花钱给自己安装了些提升智力的生化插件,并且把整本地城手册都储存在了自己的脑内的存储器里。现在让我们希望这些知识可以帮到你。" +"你通过彩票或是遗嘱,获得了一笔巨款,并为许多世界闻名的明星们一同举办了一场场地下城游戏。你可以为你的玩家投入巨资,而你也这么做了。你花钱给自己安装了些提升智力的生化插件,并且把整本地城手册都储存在了自己的脑内的存储器里。现在让我们希望这些知识可以帮到你。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139385,9 +136701,9 @@ msgstr "动物管理员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." -msgstr "你在自己原本的休息日被一通电话叫回去喂养动物园的动物,因为你的同事们因为各种各样的原因都没能够来上班。" +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." +msgstr "你在自己原本的休息日被一通电话叫回去喂养动物园的动物。因为各种各样的原因,你的同事们都没能够来上班。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139398,9 +136714,9 @@ msgstr "动物管理员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." -msgstr "你在自己原本的休息日被一通电话叫回去喂养动物园的动物,因为你的同事们因为各种各样的原因都没能够来上班。" +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." +msgstr "你在自己原本的休息日被一通电话叫回去喂养动物园的动物。因为各种各样的原因,你的同事们都没能够来上班。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139411,9 +136727,9 @@ msgstr "高尔夫球手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." -msgstr "你决定独自离家休息一天,去打一场高尔夫球。" +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." +msgstr "你决定离开家人过一天,所以你去球道打一场轻松愉快的高尔夫。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139424,9 +136740,9 @@ msgstr "高尔夫女球手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." -msgstr "你决定独自离家休息一天,去打一场高尔夫球。" +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." +msgstr "你决定离开家人过一天,所以你去球道打一场轻松愉快的高尔夫。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139467,13 +136783,12 @@ msgstr "城镇武士" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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" @@ -139484,45 +136799,40 @@ msgstr "城镇女武士" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "Competetive Fencer" +msgid "Competitive Fencer" msgstr "竞技击剑运动员" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." -msgstr "" -"你是个热衷于击剑运动的运动员,总是在当地的俱乐部练习,参加各种锦标赛。当世界末日来临的时候,你正准备去俱乐部玩几次呢。现在你将面对自己生涯中最重要的一次锦标赛,不过裁判都是死人,而你的对手也不会遵守任何规则。" +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." +msgstr "经过多年的训练,你已经准备好参加击剑比赛了,但随着丧尸入侵赛场,你的最后一场比赛就被迫中断了。裁判被吃掉了,所以你不确定规则是否仍然有效。" #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" +msgid "Competitive Fencer" msgstr "竞技击剑运动员" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." -msgstr "" -"你是个热衷于击剑运动的运动员,总是在当地的俱乐部练习,参加各种锦标赛。当世界末日来临的时候,你正准备去俱乐部玩几次呢。现在你将面对自己生涯中最重要的一次锦标赛,不过裁判都是死人,而你的对手也不会遵守任何规则。" +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." +msgstr "经过多年的训练,你已经准备好参加击剑比赛了,但随着丧尸入侵赛场,你的最后一场比赛就被迫中断了。裁判被吃掉了,所以你不确定规则是否仍然有效。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139561,9 +136871,9 @@ msgstr "牧场主" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." -msgstr "你一生中大部分时间都在养牛马,现在我们来看看接下来会发生什么。" +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." +msgstr "照顾牛、马和其他动物是你的爱好,但按照目前事态的发展方式,这可能并不仅仅是牧场的例行一日了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139574,9 +136884,9 @@ msgstr "牧场主" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." -msgstr "你一生中大部分时间都在养牛马,现在我们来看看接下来会发生什么。" +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." +msgstr "照顾牛、马和其他动物是你的爱好,但按照目前事态的发展方式,这可能并不仅仅是牧场的例行一日了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139587,10 +136897,10 @@ msgstr "灯光师" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." -msgstr "你在聚光灯旁工作,确保演员们能获得他们所需要的灯光,保证演出顺利进行。现在责任更重了,但演出还得继续。" +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." +msgstr "你总是在聚光灯下工作,搬运和修理设备,确保演员们能获得他们所需要的灯光,保证演出顺利进行。现在责任更重了,但演出还得继续。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139601,10 +136911,10 @@ msgstr "灯光师" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." -msgstr "你在聚光灯旁工作,确保演员们能获得他们所需要的灯光,保证演出顺利进行。现在责任更重了,但演出还得继续。" +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." +msgstr "你总是在聚光灯下工作,搬运和修理设备,确保演员们能获得他们所需要的灯光,保证演出顺利进行。现在责任更重了,但演出还得继续。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139615,10 +136925,10 @@ msgstr "音乐家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." -msgstr "当大灾难来临时,你正准备登上舞台。慌乱之中你没能带走多少东西,但是至少背上的六弦琴还在。" +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." +msgstr "你完成了你的独奏,但观众爆发出尖叫,而不是掌声。慌乱之中你没能带走多少东西,但是至少背上的六弦琴还在。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139629,10 +136939,10 @@ msgstr "音乐家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." -msgstr "当大灾难来临时,你正准备登上舞台。慌乱之中你没能带走多少东西,但是至少背上的六弦琴还在。" +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." +msgstr "你完成了你的独奏,但观众爆发出尖叫,而不是掌声。慌乱之中你没能带走多少东西,但是至少背上的六弦琴还在。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139644,8 +136954,8 @@ msgstr "装备好的幸存者" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." -msgstr "在当地的购物中心,你看到了一个生存工具箱的打折广告牌。你买下了一个工具箱,只是为了显摆而并非打算实际使用它。然而现在,它就是你的全部。" +"You bought one, more for show than for actual use. Now it's all you have." +msgstr "在当地的购物中心,你看到了一个生存工具箱的打折广告牌。你买下了一个工具箱,只是为了显摆而并非打算实际使用它。然而现在这就是你的全部。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139657,8 +136967,8 @@ msgstr "装备好的幸存者" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." -msgstr "在当地的购物中心,你看到了一个生存工具箱的打折广告牌。你买下了一个工具箱,只是为了显摆而并非打算实际使用它。然而现在,它就是你的全部。" +"You bought one, more for show than for actual use. Now it's all you have." +msgstr "在当地的购物中心,你看到了一个生存工具箱的打折广告牌。你买下了一个工具箱,只是为了显摆而并非打算实际使用它。然而现在这就是你的全部。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -139671,7 +136981,8 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" "你通过进行狂野西部展览和表演维持生计,为参观者表演你的枪法,但是这种生活已经结束了。你带上了你可靠的六发左轮手枪,走向了一个永远充满危机的世界。" @@ -139686,7 +136997,8 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" "你通过进行狂野西部展览和表演维持生计,为参观者表演你的枪法,但是这种生活已经结束了。你带上了你可靠的六发左轮手枪,走向了一个永远充满危机的世界。" @@ -139699,10 +137011,10 @@ msgstr "兄弟会成员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" "你过着高高在上的生活,花父母的钱时无忧无虑。当客人们开始变得对你所提供毒品之外的东西感到饥渴时,你正在参加一个普通的疯狂派对。你仍然有机会使用你奢华生活的最后一个象征——你的跑车——远离它们。" @@ -139715,10 +137027,10 @@ msgstr "姐妹会成员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" "你过着高高在上的生活,花父母的钱时无忧无虑。当客人们开始变得对你所提供毒品之外的东西感到饥渴时,你正在参加一个普通的疯狂派对。你仍然有机会使用你奢华生活的最后一个象征——你的跑车——远离它们。" @@ -139962,7 +137274,7 @@ msgid "" "of your network of influence, your were left powerless and destitute, and " "must rely on your two robotic bodyguards to survive." msgstr "" -"你是巨型企业\"幽灵怪\"机器人有限公司的高层主管之一,并一直位列全球最有权势和影响力的人物之列。尽管如此,大灾变还是让你措手不及。而现在,在你的公司已经分崩离析而你的影响网络已经崩溃之后,你变得寸步难行并且穷困潦倒,只能靠着你的两个机器人保镖活下去。" +"你是巨型企业\"幽灵怪\"机器人有限公司的高层主管之一,并一直位列全球最有权势和影响力的人物之列。尽管如此,大灾变还是让你措手不及。如今你的公司分崩离析,关系网络荡然无存,你寸步难行、穷困潦倒,只能靠着你的两个机器人保镖活下去。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -139980,7 +137292,7 @@ msgid "" "of your network of influence, your were left powerless and destitute, and " "must rely on your two robotic bodyguards to survive." msgstr "" -"你是巨型企业\"幽灵怪\"机器人有限公司的高层主管之一,并一直位列全球最有权势和影响力的人物之列。尽管如此,大灾变还是让你措手不及。而现在,在你的公司分崩离析而你的关系网络崩溃之后,你寸步难行,穷困潦倒,只能靠着你的两个机器人保镖活下去。" +"你是巨型企业\"幽灵怪\"机器人有限公司的高层主管之一,并一直位列全球最有权势和影响力的人物之列。尽管如此,大灾变还是让你措手不及。如今你的公司分崩离析,关系网络荡然无存,你寸步难行、穷困潦倒,只能靠着你的两个机器人保镖活下去。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -140082,6 +137394,42 @@ msgid "" msgstr "" "你是一位基因擢升的象化执法官,你的基因由人类,大象和乳齿象的DNA片段精心编程而成。与大多数好战的“亲戚”不同,你在完成强迫服役期后寻求和平退休,甚至获得了被视为正式公民的权利。现在,随着世界末日的到来,你的战斗技能似乎又能派上用场了。" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "生化特工" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" +"你在六大洲当雇佣兵,为十几家公司工作。上一家公司的一名副总裁决定继续聘用你,而你同意了三个月的临时工作,以换取一些额外的生化插件。当你醒来时发现你被植入了一个额外的生化插件,一个需要每个月重新复位否则就会爆炸的颅骨炸弹。现在你终于自由了,在脑子里的炸弹爆炸之前。也许你能够找到一个能移除它的人。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "生化女特工" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" +"你在六大洲当雇佣兵,为十几家公司工作。上一家公司的一名副总裁决定继续聘用你,而你同意了三个月的临时工作,以换取一些额外的生化插件。当你醒来时发现你被植入了一个额外的生化插件,一个需要每个月重新复位否则就会爆炸的颅骨炸弹。现在你终于自由了,在脑子里的炸弹爆炸之前。也许你能够找到一个能移除它的人。" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" @@ -141202,256 +138550,6 @@ msgid "" "find some other use." msgstr "随着大灾变的到来,你可能得想办法把在考试时学会的作弊技巧用在其它方面了。" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Brave of the King" -msgstr "王的勇士" - -#. ~ Profession (male Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "古埃及的法老的保镖及精英步兵。虽然由于沙漠条件穿盔甲并不常见,但在新王国时期这种装备使用增加了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Brave of the King" -msgstr "王的女勇士" - -#. ~ Profession (female Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "古埃及的法老的保镖及精英步兵。虽然由于沙漠条件穿盔甲并不常见,但在新王国时期这种装备使用增加了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hoplite" -msgstr "方阵兵" - -#. ~ Profession (male Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "方阵兵起源于古希腊城邦,擅长马其顿方阵。他们受过良好的方阵战训练,但是被突破后的单打上比较不利。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hoplite" -msgstr "方阵女兵" - -#. ~ Profession (female Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "方阵兵起源于古希腊城邦,擅长马其顿方阵。他们受过良好的方阵战训练,但是被突破后的单打上比较不利。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Legionary" -msgstr "军团兵" - -#. ~ Profession (male Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "罗马重装兵,在经过训练后会配发标准的装备。擅长使用标枪和剑,他们也因擅长战地工事而出名。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Legionary" -msgstr "军团女兵" - -#. ~ Profession (female Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "罗马重装兵,在经过训练后会配发标准的装备。擅长使用飞矛跟剑,他们也因擅长战地工事而出名。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Viking" -msgstr "维京人" - -#. ~ Profession (male Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "这些中世纪早期臭名昭彰的海盗、掠夺者以及探险家,来自斯堪地那维亚诸国。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Viking" -msgstr "维京女人" - -#. ~ Profession (female Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "这些中世纪早期臭名昭彰的海盗、掠夺者以及探险家,来自斯堪地那维亚诸国。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Man-at-Arms" -msgstr "中世纪重骑兵" - -#. ~ Profession (Man-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "在欧洲各国中世纪重骑兵,无论出身贵贱。虽然骑士传统上都是重骑兵,但不是每个重骑兵都是骑士。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Woman-at-Arms" -msgstr "中世纪女重骑兵" - -#. ~ Profession (Woman-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "在欧洲各国中世纪重骑兵,无论出身贵贱。虽然骑士传统上都是重骑兵,但不是每个重骑兵都是骑士。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Horse Archer" -msgstr "骑射手" - -#. ~ Profession (male Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "蒙古帝国的著名的轻骑兵。最有名的是骑射技能。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Horse Archer" -msgstr "女骑射手" - -#. ~ Profession (female Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "蒙古帝国的著名的轻骑兵。最有名的是骑射技能。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Samurai" -msgstr "武士" - -#. ~ Profession (male Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "日本封建时代的武士贵族。初期的武士是马术和弓术大师,到了后来以剑术闻名于世。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Samurai" -msgstr "女武士" - -#. ~ Profession (female Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "日本封建时代的武士贵族。初期的武士是马术和弓术大师,到了后来以剑术闻名于世。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Wanderer" -msgstr "流浪汉" - -#. ~ Profession (male Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "你总是向往着广阔天空下的舒适,远离复杂的现代生活。但是看来,一切东西都和你上次见到文明时不一样了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Wanderer" -msgstr "流浪女" - -#. ~ Profession (female Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "你总是向往着广阔天空下的舒适,远离复杂的现代生活。但是看来,一切东西都和你上次见到文明时不一样了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Prehistoric Hunter" -msgstr "史前猎手" - -#. ~ Profession (male Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"一个格格不入的史前活化石,被困在一个陌生而可怕的世界。猎手的生活虽然艰苦,但至少不必和活死人拼命,而且还有部族在身后支持你。但在这儿,你只能靠自己。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Prehistoric Hunter" -msgstr "史前女猎手" - -#. ~ Profession (female Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"一个格格不入的史前活化石,被困在一个陌生而可怕的世界。猎手的生活虽然艰苦,但至少不必和活死人拼命,而且还有部族在身后支持你。但在这儿,你只能靠自己。" - #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sugar Boy" @@ -141478,760 +138576,6 @@ msgid "" "You have your whole life ahead of you and it's gonna be sweet!" msgstr "你是一个因为某种未知原因而被赋予了生命的人形糖果。你的人生还有很长的路要走,这会很甜蜜的!" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Fighter" -msgstr "战士" - -#. ~ Profession (male Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "武器和护甲的大师外加可怕的战斗技巧,你就是战斗机,战争铸造战场淬火的战斗机。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Fighter" -msgstr "女战士" - -#. ~ Profession (female Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "武器和护甲的大师外加可怕的战斗技巧,你就是战斗姬,战争铸造战场淬火的战斗姬。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Rogue" -msgstr "浪人" - -#. ~ Profession (male Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "混迹市井精通下三滥外加刀贱皆通,你就是侠盗,诡计和偷盗的大师。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Rogue" -msgstr "女浪人" - -#. ~ Profession (female Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "混迹市井精通下三滥外加刀贱皆通,你就是侠盗,诡计和偷盗的大师。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Barbarian" -msgstr "蛮人" - -#. ~ Profession (male Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "来自北部苦寒之地的克罗姆之子;你就是野蛮人,就跟你那家乡一样可怕而不可阻挡。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Barbarian" -msgstr "女蛮人" - -#. ~ Profession (female Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "来自北部苦寒之地的克罗姆之子;你就是野蛮人,就跟你那家乡一样可怕而不可阻挡。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Skald" -msgstr "吟游诗人" - -#. ~ Profession (male Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "一个出生于北方高地的神秘的四处游荡的歌手和说书人。你是一个吟游诗人,一个高尚而野蛮的博学者,一个灵魂的代言人。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Skald" -msgstr "吟游女诗人" - -#. ~ Profession (female Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "一个出生于北方高地的神秘的四处游荡的歌手和说书人。你是一个吟游诗人,一个高尚而野蛮的博学者,一个灵魂的代言人。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Ranger" -msgstr "游骑兵" - -#. ~ Profession (male Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "那些到处晃悠却从不迷失的家伙中的一员,你就是游骑兵,精通森林之道的弓术大师。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Ranger" -msgstr "女游骑兵" - -#. ~ Profession (female Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "那些到处晃悠却从不迷失的家伙中的一员,你就是游骑兵,精通森林之道的弓术大师。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Monk" -msgstr "和尚" - -#. ~ Profession (male Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "被忽悠的服服帖帖的屌丝。你就是神棍,客观唯心主义万岁的可怕案例。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Monk" -msgstr "尼姑" - -#. ~ Profession (female Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "被欺骗的寂寞的留守妇女。你就是神棍,客观唯心主义万岁的可怕案例。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Knight" -msgstr "骑士" - -#. ~ Profession (male Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "这片土地的誓言守护者;你是一名骑士,一名受过良好教育的战士。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Knight" -msgstr "女骑士" - -#. ~ Profession (female Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "这片土地的誓言守护者;你是一名骑士,一名受过良好教育的战士。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Sorcerer" -msgstr "法师" - -#. ~ Profession (Sorcerer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "古代禁忌知识来者不拒的好学生;你就是魔法师,秘法的操控者。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Sorceress" -msgstr "女法师" - -#. ~ Profession (Sorceress) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "古代禁忌知识来者不拒的好学生;你就是魔法师,秘法的操控者。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-Hacker" -msgstr "机器骇客" - -#. ~ Profession (male Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "在末日来临之前,你的业余爱好是非法将民用机器人重新编程并改装,但你从来没有想过你的生存可能依赖于你的这项爱好。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-Hacker" -msgstr "机器骇客" - -#. ~ Profession (female Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "在末日来临之前,你的业余爱好是非法将民用机器人重新编程并改装,但你从来没有想过你的生存可能依赖于你的这项爱好。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Engineer" -msgstr "自动化工程师" - -#. ~ Profession (male Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "你是一家机器人制造商的低级工程师。管理一直告诉你,把喷火器安装在飞锯无人机上\"不必要\"而且\"太危险\"了,但现在再没有谁能阻止你这么干了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Engineer" -msgstr "自动化工程师" - -#. ~ Profession (female Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "你是一家机器人制造商的低级工程师。管理一直告诉你,把喷火器安装在飞锯无人机上\"不必要\"而且\"太危险\"了,但现在再没有谁能阻止你这么干了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Prodigy" -msgstr "机械奇才" - -#. ~ Profession (male Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "你自打学会用电烙铁起,就一直在制造机器人,现在你可不打算让世界末日阻止你继续干下去。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Prodigy" -msgstr "机械奇才" - -#. ~ Profession (female Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "你自打学会用电烙铁起,就一直在制造机器人,现在你可不打算让世界末日阻止你继续干下去。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robot Adoptee" -msgstr "机器人养子" - -#. ~ Profession (male Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "当暴乱发生时,一只军用机器人不知道从什么地方冒了出来并救下了你。也许它认为你是个重要人物,谁知道呢。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robot Adoptee" -msgstr "机器人养女" - -#. ~ Profession (female Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "当暴乱发生时,一只军用机器人不知道从什么地方冒了出来并救下了你。也许它认为你是个重要人物,谁知道呢。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-hunter" -msgstr "机械化猎手" - -#. ~ Profession (male Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "你雇了一名本地黑客给你造了一只机器人猎狗。它几乎和真狗一样好,但它可不想仅仅被你当作宠物对待。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-hunter" -msgstr "机械化猎手" - -#. ~ Profession (female Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "你雇了一名本地黑客给你造了一只机器人猎狗。它几乎和真狗一样好,但它可不想仅仅被你当作宠物对待。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Special Operator" -msgstr "生化特种兵" - -#. ~ Profession (male Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"仿生学对人体的改造强化刚刚被证明是安全的,你就被选中进入到一个绝密的士兵强化计划中。你之前已经是特种部队里的翘楚,身体改造让你变得更加强大,不管是跟人还是和别的\"东西\"战斗,你都游刃有余。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Special Operator" -msgstr "生化特种女兵" - -#. ~ Profession (female Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" -"仿生学对人体的改造强化刚刚被证明是安全的,你就被选中进入到一个绝密的士兵强化计划中。你之前已经是特种部队里的翘楚,身体改造让你变得更加强大,不管是跟人还是和别的\"东西\"战斗,你都游刃有余。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Seasoned Tourist" -msgstr "老练游客" - -#. ~ Profession (male Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"由于你对冒险的渴望,对美食的渴望,以及可支配的收入,你已经能够不停地四处旅行了。你本来来着是为了体验下新英格兰的风味,现在你只希望别让新英格兰尝尝你的风味了!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Seasoned Tourist" -msgstr "老练女游客" - -#. ~ Profession (female Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "" -"由于你对冒险的渴望,对美食的渴望,以及可支配的收入,你已经能够不停地四处旅行了。你本来来着是为了体验下新英格兰的风味,现在你只希望别让新英格兰尝尝你的风味了!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Post-Human Cyborg" -msgstr "后人类时代改造人" - -#. ~ Profession (male Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "作为一个富有的泛人类主义者,你决定把自己置于生化辅助增强技术的发展前沿,以加速未来社会的到来。你现在是一个未来人类的活生生的示例。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Post-Human Cyborg" -msgstr "后人类时代改造女人" - -#. ~ Profession (female Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "作为一个富有的泛人类主义者,你决定把自己置于生化辅助增强技术的发展前沿,以加速未来社会的到来。你现在是一个未来人类的活生生的示例。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Janitor" -msgstr "男清洁工" - -#. ~ Profession (male Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "你曾经以清扫巧克力包装纸和口香糖印子来挣扎求生。现在,地上你要清扫的,是大堆的丧尸脑子。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Janitor" -msgstr "女清洁工" - -#. ~ Profession (female Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "你曾经以清扫巧克力包装纸和口香糖印子来挣扎求生。现在,地上你要清扫的,是大堆的丧尸脑子。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Poor Student" -msgstr "穷学生" - -#. ~ Profession (male Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"你来自于一个低收入家庭,你只能穿着到处让人嘲笑的破烂衣服,去学校饭堂里吃免费的午餐。更糟糕的是,你的破烂旧背包终于在最糟糕的时间点毁烂了。但现在,至少没\"人\"能够嘲笑你了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Poor Student" -msgstr "女穷学生" - -#. ~ Profession (female Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"你来自于一个低收入家庭,你只能穿着到处让人嘲笑的破烂衣服,去学校饭堂里吃免费的午餐。更糟糕的是,你的破烂旧背包终于在最糟糕的时间点毁烂了。但现在,至少没\"人\"能够嘲笑你了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Elementary Student" -msgstr "小学男生" - -#. ~ Profession (male Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "你只是一个小孩,发现了这个世界变成了曾经只在你的噩梦中出现的惨状。而你依赖的大人们都已经死了——或者变成不死了。你的下一步?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Elementary Student" -msgstr "小学女生" - -#. ~ Profession (female Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "你只是一个小孩,发现了这个世界变成了曾经只在你的噩梦中出现的惨状。而你依赖的大人们都已经死了——或者变成不死了。你的下一步?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hockey Player" -msgstr "曲棍球运动员" - -#. ~ Profession (male Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"在你团队的其他人全变成丧尸之前,你是一个乙级队的曲棍球守门员,但现在你只能靠球棍来保护自己。好事!你现在终于可以名正言顺的Cross-" -"check任何你看不顺眼的家伙了!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hockey Player" -msgstr "曲棍球女运动员" - -#. ~ Profession (female Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "" -"在你团队的其他人全变成丧尸之前,你是一个乙级队的曲棍球守门员,但现在你只能靠球棍来保护自己。好事!你现在终于可以名正言顺的Cross-" -"check任何你看不顺眼的家伙了!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Baseball Player" -msgstr "棒球运动员" - -#. ~ Profession (male Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "灾难发生前你是本地小联盟的一个击球手。你穿着你的装备逃了出来,但在你的局开始前你能活多久?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Baseball Player" -msgstr "棒球女运动员" - -#. ~ Profession (female Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "灾难发生前你是本地小联盟的一个击球手。你穿着你的装备逃了出来,但在你的局开始前你能活多久?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Football Player" -msgstr "美式橄榄球运动员" - -#. ~ Profession (male Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "你曾是本地橄榄球队的明星球员,受到队友和球迷的一致热爱,不过现在他们只是热爱你的大脑。大灾变后,你仍旧穿着你笨重的橄榄球装备。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Football Player" -msgstr "美式橄榄球女运动员" - -#. ~ Profession (female Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "你曾是本地橄榄球队的明星球员,受到队友和球迷的一致热爱,不过现在他们只是热爱你的大脑。大灾变后,你仍旧穿着你笨重的橄榄球装备。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Preppy Student" -msgstr "预备学科男生" - -#. ~ Profession (male Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"你的父母都是大忙人,想你接受一切的英才教育让你长大后\"变得成功\",不惜一切方法。但是他们从未让你感受到过童年的快乐,也从未当面表达过对你的爱。你保证你长大后绝不会变成他们那样。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Preppy Student" -msgstr "预备学科女生" - -#. ~ Profession (female Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"你的父母都是大忙人,想你接受一切的英才教育让你长大后\"变得成功\",不惜一切方法。但是他们从未让你感受到过童年的快乐,也从未当面表达过对你的爱。你保证你长大后绝不会变成他们那样。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Awakened" -msgstr "惊醒者" - -#. ~ Profession (male Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "你在半夜被一阵噪声惊醒了。你带着手头仅有的手电筒去调查一下,却发现自己现在面临着大灾变的挑战。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Awakened" -msgstr "女惊醒者" - -#. ~ Profession (female Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "你在半夜被一阵噪声惊醒了。你带着手头仅有的手电筒去调查一下,却发现自己现在面临着大灾变的挑战。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Cyclist" -msgstr "生化自行车手" - -#. ~ Profession (male Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "你为生化奥运会自行车比赛所准备的各种训练和强化插件为你提供了在大灾变开始时逃出生天的优势。但你能永远逃得掉吗?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Cyclist" -msgstr "生化自行车手" - -#. ~ Profession (female Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "你为生化奥运会自行车比赛所准备的各种训练和强化插件为你提供了在大灾变开始时逃出生天的优势。但你能永远逃得掉吗?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Welder" -msgstr "焊工" - -#. ~ Profession (male Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "在大灾变之前你是一家近海采油公司的焊工。在你正准备回家休假的路上,大灾变来了。至少你手头上还有你用来吃饭的家伙。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Welder" -msgstr "电焊工" - -#. ~ Profession (female Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "在大灾变之前你是一家近海采油公司的焊工。在你正准备回家休假的路上,大灾变来了。至少你手头上还有你用来吃饭的家伙。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Primitive Survivalist" -msgstr "复古生存狂" - -#. ~ Profession (male Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" -"你知道这一天终将来临,一切都会变得无法收拾。你早就为此准备就绪,不靠装备,而是纯靠技巧;在树林中待过的那些日子都给了你回报。你的祖先在没有各种高科技的情况下都能生存下去,如果你还不行的话那可真该死。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Primitive Survivalist" -msgstr "复古生存狂" - -#. ~ Profession (female Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" -"你知道这一天终将来临,一切都会变得无法收拾。你早就为此准备就绪,不靠装备,而是纯靠技巧;在树林中待过的那些日子都给了你回报。你的祖先在没有各种高科技的情况下都能生存下去,如果你还不行的话那可真该死。" - #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" @@ -142397,7 +138741,7 @@ msgid "LIGHTING" msgstr "照明" #. ~ Crafting recipes subcategory of 'ARMOR' category -#: lang/json/recipe_category_from_json.py src/game_inventory.cpp +#: lang/json/recipe_category_from_json.py msgid "STORAGE" msgstr "存储" @@ -146938,9 +143282,9 @@ msgstr "无论是由于固执,无知,或者仅仅是运气不好,反正你 #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. -#. ~ Starting location for scenario 'Robots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "In Town" @@ -147070,6 +143414,34 @@ msgid "" "didn't get proper medical care, and now the wound has started turning green." msgstr "在混乱和恐慌的撤离行动中,你被什么东西给咬了!由于没有得到及时的医治,现在伤口都开始变绿了,情况危急。" +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "挑战-真菌感染" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "挑战-真菌感染" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "你感觉到孢子在你皮肤下爬行。死亡不过是个时间问题。" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "你感觉到孢子在你皮肤下爬行。死亡不过是个时间问题。" + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -147787,19 +144159,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "军事基地仓库" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "疯狂派对" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "疯狂派对" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -147810,7 +144182,7 @@ msgid "" msgstr "" "当警察来突击搜查你的疯狂派对时,你以为事情已经没法变得更糟了,虽然你已经是在一个私人度假村举办的派对。当客人们开始和警察打成一团时,你试图让他们冷静下来,结果却发现他们渴望得到更多。" -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -147821,7 +144193,7 @@ msgid "" msgstr "" "当警察来突击搜查你的疯狂派对时,你以为事情已经没法变得更糟了,虽然你已经是在一个私人度假村举办的派对。当客人们开始和警察打成一团时,你试图让他们冷静下来,结果却发现他们渴望得到更多。" -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" @@ -148156,116 +144528,6 @@ msgctxt "start_name" msgid "Candy Shop" msgstr "糖果屋" -#. ~ Name for scenario 'Robots' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Robots" -msgstr "机器人" - -#. ~ Name for scenario 'Robots' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Robots" -msgstr "机器人" - -#. ~ Description for scenario 'Robots' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "在骚乱和混乱中,你躲在机器人调度中心希望机器人能保护你,但它们可能比丧尸更危险。" - -#. ~ Description for scenario 'Robots' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "在骚乱和混乱中,你躲在机器人调度中心希望机器人能保护你,但它们可能比丧尸更危险。" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Challenge-FEMA Death Camp" -msgstr "挑战-FEMA死亡营地" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Challenge-FEMA Death Camp" -msgstr "挑战-FEMA死亡营地" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"你是在被派遣到FEMA(联邦应急管理局)营地的众多像是保安或者军人的维持营地治安的一员。你亲身感受到这个营地情况迅速的恶化:受伤,伤口感染,被火包围的你还躺在地上……而\"他们\"正在涌来……" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a female -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" -"你是在被派遣到FEMA(联邦应急管理局)营地的众多像是保安或者军人的维持营地治安的一员。你亲身感受到这个营地情况迅速的恶化:受伤,伤口感染,被火包围的你还躺在地上……而\"他们\"正在涌来……" - -#. ~ Starting location for scenario 'Challenge-FEMA Death Camp'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Fema Camp" -msgstr "联邦应急管理局营地" - -#. ~ Name for scenario 'Mansion Holdout' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Mansion Holdout" -msgstr "坚守于别墅" - -#. ~ Name for scenario 'Mansion Holdout' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Mansion Holdout" -msgstr "坚守于别墅" - -#. ~ Description for scenario 'Mansion Holdout' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"当世界末日到来时,你感到隐蔽在你在此服务了多年的熟悉至极的别墅里面比到外面去乱逛要更安全一些。但现在,理应往生者回归敲响了大门,你回头看了看传承的落地式雕花链条机械大摆钟,\"铛!\",开始道别吧。" - -#. ~ Description for scenario 'Mansion Holdout' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" -"当世界末日到来时,你感到隐蔽在你在此服务了多年的熟悉至极的别墅里面比到外面去乱逛要更安全一些。但现在,理应往生者回归敲响了大门,你回头看了看传承的落地式雕花链条机械大摆钟,\"铛!\",开始道别吧。" - -#. ~ Starting location for scenario 'Mansion Holdout'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Mansion" -msgstr "别墅" - #. ~ display string for skill display type 'display_melee' #: lang/json/skill_display_type_from_json.py msgid "Melee skills" @@ -148402,9 +144664,7 @@ msgstr "烹调" #: lang/json/skill_from_json.py msgid "" "Your skill in combining food ingredients to make other, tastier food items." -" It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." -msgstr "把食材加工、组合,让它们变得更美味的技能。随着等级的提高,你也会学会合理混合化学物品,完成其他特别的任务。" +msgstr "" #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -148626,6 +144886,17 @@ msgid "" "chance and decreases time required to successfully pick the lock." msgstr "你撬开各种需要使用实体钥匙锁的技能:包括从简单的弹子珠锁到复杂的叶片锁。技能增加成功开锁的几率并减少成功开锁的耗时。" +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" + #: lang/json/skill_from_json.py msgid "weapon" msgstr "武器" @@ -150203,6 +146474,12 @@ msgid "" "Don't. This thorazine seriously clouds your mind. You need to stay sharp." msgstr "不行。冬眠灵会让你的思绪变得无比模糊,而你需要保持清醒。" +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde" +" of undead!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "粉红药片!我喜欢这些!" @@ -150267,6 +146544,14 @@ msgstr "我很抱歉,。恐怕我不能那样做。" msgid "Wish I could, ." msgstr "我倒是想,。" +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "不,谢谢,我真的不喜欢。" @@ -150299,6 +146584,10 @@ msgstr "恐怕我帮不了你。" msgid "Not exactly the settlin' type." msgstr "我不属于喜欢扎营的类型。" +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "" + #: lang/json/snippet_from_json.py msgid " " msgstr "" @@ -150612,6 +146901,10 @@ msgid "" " ending, just for a while?" msgstr "趁我们聊天的时候,我们要不开要一瓶啤酒然后……假装世界没有毁灭,就一小会。你怎么说?" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "" + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "哦,当然可以,,正好我也该放松一下了,你最近怎么样?" @@ -151152,6 +147445,14 @@ msgstr "嘿,我在这儿!" msgid "Hold up a second, will ya?" msgstr "等一下,行吗?" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "我是打酱油的。" @@ -153594,6 +149895,117 @@ msgstr "我亲爱的" msgid "survivor" msgstr "幸存者" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr "会使用远程武器。" @@ -157137,7 +153549,7 @@ msgid "" "should continue our teleportation research no matter the cost if we don't " "want to be fired." msgstr "" -"Heisenstein博士今天告诉我们,传送部主任把我们的竞争对手——他不记得他们的名字,可能是“黑洞科学”和与黑山有关的东西——作为一个例子。他说,我们有可靠的信息表明,他们都有可工作的隐形传输设备,而且他们比我们先进得多。如果我们不想被解雇的话,我们应该继续我们的传送研究,无论花费多少。" +"Heisenstein博士今天告诉我们,传送部主任把我们的竞争对手——他不记得他们的名字,可能是“光洞科学”和与黑山有关的东西——作为一个例子。他说,我们有可靠的信息表明,他们都有可工作的隐形传输设备,而且他们比我们先进得多。如果我们不想被解雇的话,我们应该继续我们的传送研究,无论花费多少。" #: lang/json/snippet_from_json.py msgid "" @@ -160267,6 +156679,42 @@ msgid "" msgstr "" "我是贝克将军。今天我收到了一封来自高层指挥部的绝密邮件,其中包含了一组新的洲际导弹瞄准地。我的手下对其进行了解密,显然指挥部将洲际导弹指向了国内的某处。我向指挥部请求确认,不久我就收到了完全相同的指令,因此这不是我以为的某种奇怪的错误。我不知道政府那些家伙在想什么,但是我不会轰炸自己国家内的无辜人民。我们现在已经处于战争边缘,因此拒绝服从命令一定会被处决。他们一定会来找我,因此我已经时日不多了。无论是谁发现了这封信,请替我转告我的妻子简,说我爱她和小迈克尔。告诉她我很抱歉。迈克尔·贝克将军。" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "嘿,蠢货!" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "嘿,笨蛋!" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "嘿,傻瓜!" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "嘿,不死人!" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "嘿,丧尸!" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "快来这里!" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "这是个陷阱!" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "如果你不是丧尸,别太靠近了!" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "如果你不是丧尸,跑的越远越好!" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "“我们是对的, 这一切都是政府干的!”" @@ -161049,8 +157497,9 @@ msgstr "“可以永远活活下去了我的小菌菌怪们从手臂里长长出 #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" -msgstr "“总有一天我会定居下来的。会有个漂亮的大果园,几个朋友家人消磨时光,以及一群尸奴军团守护这片地方。”" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" +msgstr "“总有一天我会定居下来的。会有个漂亮的大果园,几个朋友家人消磨时光,以及一个足够保护全家人安全的防御堡垒系统。”" #: lang/json/snippet_from_json.py msgid "" @@ -161781,6 +158230,56 @@ msgstr "我才不想生活在这种世界。他们连我的CD都拿走了!… msgid "Dark days are ahead, but is that all?" msgstr "黑暗的日子还在前方,但那会是全部吗?" +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 1: I had a dream and I can vaguely remember seeing a strange " +"truck that had overly round edges, it tooted its horn but instead I heard " +"people screaming, and when I blinked suddenly the truck wasn't just rounded," +" but made of people screaming forever inside a viscous blob.\"" +msgstr "" +"“做梦日记1:我做了一个梦,我依稀记得看到一辆奇怪的卡车,它的边缘太圆了,它按响了喇叭,但我却听到人的尖叫声,当我眨眼时,突然卡车不再仅仅是圆形那么简单了,而是由被困在一个粘稠的变形怪体内的无数尖叫的人组成的怪物。”" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 2: In last night's dream I was driving a rusty and dusty humvee," +" with my trusty companion using a massive pneumatic weapon to shoot rebar " +"pipes into faceless enemies chasing us. My heart is still pumping, why does" +" it feel like a memory instead of a dream?\"" +msgstr "" +"“做梦日记2:在昨晚的梦中,我驾驶着一辆锈迹斑斑、尘土飞扬的悍马,我信任的同伴用台巨大的气动武器向追着我们的面目不清的敌人发射钢筋。我的心还在跳个不停,为什么感觉像是记忆而不是一场梦?”" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 3: Another dream. This time I dropped a diamond on a sea of " +"charcoal dust, and the diamond begun to shine and make the dust glitter " +"until a shape of a car emerged from the dust made entirely of thick, " +"perfectly angular diamond. A beautiful shape appeared on it, and in a flash" +" of light I was pierced by a glittering lance.\"" +msgstr "" +"“做梦日记3:又是一个怪梦。这一次,我把一颗钻石掉在一片木炭灰尘上,钻石开始发光,而那些尘土也开始闪闪发光,直到一辆汽车的形状从尘土中浮现出来,它完全由厚实又棱角分明的钻石构成。车顶出现了一个美丽的图案,然后一道闪光,我被一支闪光长矛刺穿了。”" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 4: These dreams get weirder. My companion of mine was driving " +"the RV, and I opened the back of the RV and found there was no roof but a " +"whole tray of gargantuan flowers made of solar panels arching toward the sun" +" greedily, light flowing from them into the RV. I stepped back and lost my " +"footing, seeing a strange portal on the side before I fell into a limitless " +"darkness.\"" +msgstr "" +"“做梦日记4:这些梦变得更怪了。我的同伴开着房车,我打开房车的后部,发现那里没有屋顶,只有一整盘巨大的花,这些花是用太阳能电池板做成的,它们贪婪地向朝向太阳,光线从它们流入房车。我往后退了一步,滑了一跤,在我陷入无尽的黑暗之前,在它侧面看到了一个奇怪的传送门。”" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 5: My most recent dream was better so here it goes. I was " +"walking in a meadow when a strange stone with a perfect spiral on it fell in" +" front of me. I picked it up and blew on it, and a tornado roared from the " +"stone. In its wake, a car appeared, wickedly shaped and the sound of " +"tornadoes coming from its exhaust- and I rode the wind, hurling thunderbolts" +" at any who got in my way.\"" +msgstr "" +"“做梦日记5:我最近的梦好多了,且让我慢慢道来。我在草地上散步时,一块奇怪的石头掉在我面前,石头上有一个完美的漩涡。我把它捡起来,吹了一口气,结果一股龙卷风从石头上呼啸而过。在它的身后,出现了一辆形状邪恶的汽车,排气口发出龙卷风的声音——我乘上了风,并向任何挡路的人投掷闪电霹雳。”" + #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "Kevin为了追求真实而牺牲游戏性?真相令人震惊" @@ -162982,6 +159481,53 @@ msgstr "“新英格兰的‘抵抗成员’越少,我们在荒野中就会变 msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "“好久不见了,不是吗?很高兴我又找到你了。”" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "我在附近见过一些大恐龙。我知道这听起来很可怕,但现在我只觉得饿。" + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you" +" think they eat cat food?" +msgstr "我觉得那些小恐龙有点可爱,就像一只猫。你觉得他们吃猫食吗?" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "恐龙是弓箭猎手最好的朋友。永远的羽毛!" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big" +" lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "我的一个朋友在沼泽地附近徘徊,被一只长得像蜥蜴一样的大霸王龙吃掉了。除非你有枪和很多弹药否则我会小心的。" + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "我听说在沼泽里有丧尸。如果它们在被恐龙咬到之前咬了它,那可是个坏消息。" + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind" +" of big lizard down there. Probably not a good idea to check." +msgstr "我知道下水道里没有鳄鱼,但我听说那里有一种大蜥蜴。最好还是别去弄清楚了。" + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "有些大型恐龙看起来没那么可怕。我敢打赌,如果你给他们吃点好吃的东西,拍拍它们,你就能像匹小马一样骑上它们。或者它们会直接吃了你。" + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "有一次我在树林里发现了一个奇怪的鸡蛋。可能是恐龙蛋,但我煮了它,味道那可是相当得好!" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special" @@ -162989,6 +159535,15 @@ msgid "" "breakthroughs." msgstr "我们对这些不速之客的研究进展顺利。特别值得关注的是迅猛龙DNA,某些新的蛋白质可能带来医学上的突破。" +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" +"我们对这些不速之客的研究进展很快。虽然“激光上校”行动并没有得到足够的资金,但要求更低的生化特工计划已经准备就绪,并且进展超过预期。受试者很乐于接受这些改造。" + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -163027,8 +159582,10 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "“为什么这地方他妈的全都是蜥蜴?”" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" -msgstr "“亲爱的长鳞片的兄弟们!今晚我们将吃些无毛猴子大餐。”" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"where's some .700 t-rex medicine when you need it?\"" @@ -163040,27 +159597,34 @@ msgid "" "butterfly?\"" msgstr "“那么这就是你迷路然后踩到一只蝴蝶后发生的事情?”" -#: lang/json/snippet_from_json.py -msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" -msgstr "“枪。剑。枪剑。不用刺刀了,这个更了不起。”" - #: lang/json/snippet_from_json.py msgid "" -"\"Not sure if wielding this thing makes me feel like a bodybuilder or a " -"theoretical physicist. Both?\"" -msgstr "“不知道用这玩意让我觉得更像是健美运动员还是理论物理学家。还是两者都是?”" - -#: lang/json/snippet_from_json.py -msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" -msgstr "“这不是你爷爷的.50手炮!”" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." +msgstr "" #: lang/json/snippet_from_json.py -msgid "\"Nice pistol! Which trigger fires the flamer?\"" -msgstr "“不错的手枪!哪个扳机是用来喷火的?”" +msgid "" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" +msgstr "" #: lang/json/snippet_from_json.py -msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" -msgstr "\"就他妈的想不明白了,我为什么把一支弩拍在这把手枪上了。\"" +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -163286,12 +159850,6 @@ msgstr "小伙子" msgid "chief" msgstr "长官" -#: lang/json/snippet_from_json.py -msgid "" -"\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " -"repeat.\"" -msgstr "“射死该死的变种人。用它们的骨头做更多的弩箭。重复上述步骤。”" - #: lang/json/snippet_from_json.py msgid "" "A flyer for some kind of candy. It shows a picture of a gleaming human made" @@ -163301,83 +159859,6 @@ msgstr "" "一张介绍某种糖果的传单。上面画着一个用光滑的糖果做成的闪闪发光的人,正害怕地看着你。\"糖人,世上首个真人大小的糖果!你真是个怪物吗?你能把它吞下吗?\"" " " -#: lang/json/snippet_from_json.py -msgid "" -"\"Tank drone, meet the real deal. See how you handle 120 millimeters of " -"HELL YEAH!\"" -msgstr "“坦克无人机,见识下真家伙。看你怎么应对这120mm的地狱之火!”" - -#: lang/json/snippet_from_json.py -msgid "\"big fucking gun, earplugs are good for your brain\"" -msgstr "“该死的大枪,耳塞能保护你的大脑”" - -#: lang/json/snippet_from_json.py -msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" -msgstr "“我有架自行车装上了坦克炮。你的观点不成立。”" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Next person to call this infantry fighting vehicle a 'tank' is walking " -"home.\"" -msgstr "“下一个把这个步兵战车叫成‘坦克’的家伙给我自己走回去。”" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Found what used to be an armored platoon. Most tanks have hatches up top," -" not in the back like the new ones they're using.\"" -msgstr "“找到了曾经的装甲排。大部分坦克出入口都在上面,不像新款坦克都在背后开车门。”" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Agh, to See the Spiral in such a Distorted Shape! Manipulated for its " -"Vortex motion! Its Perpetual Grace! Its beauty Tarnished…\"" -msgstr "\"啊,看看漩涡石这如此扭曲的螺线!操控它那螺旋运动的方式!永远不停歇的优雅运动!它的美丽被玷污了……\"" - -#: lang/json/snippet_from_json.py -msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "“我的朋友死了,不过好歹我把她做成了变形怪炮塔。”" - -#: lang/json/snippet_from_json.py -msgid "" -"\"I have this laser cannon turret on my shopping cart. I push it around and" -" everything dies. I think I'm gonna toss it in the lake-- this just isn't " -"fair anymore.\"" -msgstr "“我的购物车上装了一门激光炮炮塔。我推着它到处跑,所有敌人都死了。我想我还是把它扔进湖里好了——这太不公平了。”" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Day 40. Controls broken-- car's magic reactor makes it goes inexorably " -"forward. Giant rollers on front demolish forest. Maine, here I come.\"" -msgstr "\"第40日。控制器坏了——但车里神奇的反应堆让其不为所动依旧一直前行。正前方巨大的压路机正摧毁着森林。缅因州,我来了。\"" - -#: lang/json/snippet_from_json.py -msgid "\"my car is a diamond in the rough… literally\"" -msgstr "\"我的车是未经琢磨的钻石……就是字面上的意思\"" - -#: lang/json/snippet_from_json.py -msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" -msgstr "\"M249炮塔点头了。炮塔是活人吗?终于,终于有个能陪我说说话的了!\"" - -#: lang/json/snippet_from_json.py -msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" -msgstr "“往我的的士车上焊了太多东西,它直接着火烧了。啊哦。”" - -#: lang/json/snippet_from_json.py -msgid "" -"\"If I put one cargo dimension into another cargo dimension, does the " -"universe end?\"" -msgstr "“如果我把一个维度的物品放到另一个维度里去,宇宙就完蛋了吗?”" - -#: lang/json/snippet_from_json.py -msgid "\"one day, i will be part of car, too\"" -msgstr "“总有一天,我要也会变成车的一部分”" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Putta little bitta dynamite and halfa landmine in an old soda can… WHAM!" -" You goin' somewhere.\"" -msgstr "\"把一点炸药和一半地雷放进一个旧汽水罐里……砰!你就会飞到不知道什么地方了。\"" - #: lang/json/speech_from_json.py msgid "\"Hello?\"" msgstr "\"你好?\"" @@ -164860,17 +161341,57 @@ msgid "\"Our food contains up to 95% real food.\"" msgstr "\"我们的食物含有高达95%的真正食物。\"" #: lang/json/speech_from_json.py -msgid "\"FoodPlace: It's the Calories.\"" -msgstr "\"美食广场:这全是卡路里。\"" +msgid "\"At FoodPlace your excellent value brings nourishment and delight.\"" +msgstr "“在美食广场,您的卓越价值为您带来营养和愉悦。”" + +#: lang/json/speech_from_json.py +msgid "\"At FoodPlace we have a host of solutions for your food needs!\"" +msgstr "“在美食广场,我们有多种解决方案来满足您的食物需求!”" + +#: lang/json/speech_from_json.py +msgid "\"♪Eat at FoodPlace. ♫It is a place with food.♪\"" +msgstr "“♪来美食广场吃饭。♫这里是个有食物的地方。♪”" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is a popular food chain selling food items. What else is there " +"to know?\"" +msgstr "“美食广场是一家流行的食品连锁店,销售各类美味食品。你还想了解些什么?”" #: lang/json/speech_from_json.py msgid "\"You need food, don't you? Then come with me to FOODPLACE!!\"" msgstr "\"你需要食物,不是吗?那就跟我去美食广场吧!\"" +#: lang/json/speech_from_json.py +msgid "\"You need food, don't you? It's time for FoodPlace!\"" +msgstr "\"你需要食物,不是吗?快来美食广场吧!\"" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: It's the Calories.\"" +msgstr "\"美食广场:这全是卡路里。\"" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Don’t get caught in the web of unsafe diet.\"" +msgstr "“美食广场:不要陷入不安全食品的网中。”" + #: lang/json/speech_from_json.py msgid "\"FoodPlace: Edible food is OUR guarantee!\"" msgstr "\"美食广场:我们承诺使用健康食材。\"" +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: We bring food to life!\"" +msgstr "“美食广场:我们为美食赋予生命!”" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Edible food is one of our main goals!\"" +msgstr "\"美食广场:可食用的食物是我们唯一的追求!\"" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is the only way to obtain healthy and strong lifecycle " +"choices!!\"" +msgstr "“美食广场是获得健康和强大的生活周期选择的唯一途径!!”" + #: lang/json/speech_from_json.py msgid "Wanna play with me?" msgstr "想和我一起玩吗?" @@ -165999,154 +162520,6 @@ msgstr "可怕的机械轰鸣声。" msgid "a semi-musical chirping that echos across the landscape." msgstr "像是音乐一般的长鸣,回荡在这片土地上。" -#: lang/json/speech_from_json.py -msgid "\"bzzzzzz.\"" -msgstr "\"滋滋滋。\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep.\"" -msgstr "\"哔。\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep?\"" -msgstr "\"哔?\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep!\"" -msgstr "\"哔!\"" - -#: lang/json/speech_from_json.py -msgid "\"Beeeeep beep.\"" -msgstr "\"哔~哔~\"" - -#: lang/json/speech_from_json.py -msgid "\"Bebebeeeep.\"" -msgstr "\"哔哔哔~\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep boop beep?\"" -msgstr "\"哔啵哔?\"" - -#: lang/json/speech_from_json.py -msgid "\"Beedoo-Beep.\"" -msgstr "\"哔嘟——哔。\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep Beep. Whirr.\"" -msgstr "\"哔哔。嗡。\"" - -#: lang/json/speech_from_json.py -msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "\"呜——轰——\"" - -#: lang/json/speech_from_json.py -msgid "\"Whirrrrr-click click.\"" -msgstr "\"呜呜——咔嗒。\"" - -#: lang/json/speech_from_json.py -msgid "\"Boodoobeep beep beep.\"" -msgstr "\"啵哆哔哔。\"" - -#: lang/json/speech_from_json.py -msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "\"吧——嗞——卟——\"" - -#: lang/json/speech_from_json.py -msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "\"咻——嗞嗞。\"" - -#: lang/json/speech_from_json.py -msgid "\"Brrm Bum Brrm?\"" -msgstr "\"卟吧卟?\"" - -#: lang/json/speech_from_json.py -msgid "\"Pwweeee Krsht.\"" -msgstr "\"吡——咯。\"" - -#: lang/json/speech_from_json.py -msgid "\"Fshkt fshkt. Booop.\"" -msgstr "\"咻咻。卟——。\"" - -#: lang/json/speech_from_json.py -msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "\"嗞嗞。咯叽——\"" - -#: lang/json/speech_from_json.py -msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "\"呜噫——噢——。哔嘀。\"" - -#: lang/json/speech_from_json.py -msgid "\"Grrrnd clang whirrrr.\"" -msgstr "\"咯噔。哐。嗡。\"" - -#: lang/json/speech_from_json.py -msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "\"咯噔。咯噔。\"" - -#: lang/json/speech_from_json.py -msgid "\"Cla-clang cla-clang!\"" -msgstr "\"铿锵~铿锵~\"" - -#: lang/json/speech_from_json.py -msgid "\"Klang!\"" -msgstr "\"咔啷!\"" - -#: lang/json/speech_from_json.py -msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "\"吱~吱。吱~吱!\"" - -#: lang/json/speech_from_json.py -msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "\"哔~哔。呼噜呼噜呣。\"" - -#: lang/json/speech_from_json.py -msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "\"嘭——。咻咻。\"" - -#: lang/json/speech_from_json.py -msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "\"咔嗒。咔嗒嗒嗒。嗡。\"" - -#: lang/json/speech_from_json.py -msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "\"咻嗡——嗞。\"" - -#: lang/json/speech_from_json.py -msgid "a high pitched alarm." -msgstr "一阵高亢的警报声。" - -#: lang/json/speech_from_json.py -msgid "a blaring siren." -msgstr "一阵刺耳的警笛。" - -#: lang/json/speech_from_json.py -msgid "\"CHUG chug chug.\"" -msgstr "\"嘎嚓~嘎嚓~嘎嚓~\"" - -#: lang/json/speech_from_json.py -msgid "\"Creak! Clang clang.\"" -msgstr "\"嘎吱!哐当,哐当。\"" - -#: lang/json/speech_from_json.py -msgid "\"Khr Khr Khr.\"" -msgstr "\"咳咳咳。\"" - -#: lang/json/speech_from_json.py -msgid "a mechanical groaning." -msgstr "一阵机械吱嘎响声。" - -#: lang/json/speech_from_json.py -msgid "grinding gears." -msgstr "一阵齿轮嘎吱响声。" - -#: lang/json/speech_from_json.py -msgid "tortured machinery." -msgstr "一阵扭曲的机械声。" - -#: lang/json/speech_from_json.py -msgid "\"SQUEE!\"" -msgstr "\"SQUEE!\"" - #: lang/json/start_location_from_json.py msgid "Shelter" msgstr "避难所" @@ -166359,45 +162732,17 @@ msgstr "魔法师湖畔度假地" msgid "Candy Shop" msgstr "糖果屋" -#: lang/json/start_location_from_json.py -msgid "Robot Dispatch Center" -msgstr "机器人调度中心" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp (entrance)" -msgstr "FEMA 营地(入口)" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp" -msgstr "FEMA 营地" - -#: lang/json/start_location_from_json.py -msgid "Mansion Entrance" -msgstr "别墅入口" - -#: lang/json/start_location_from_json.py src/gamemode_defense.cpp -msgid "Mansion" -msgstr "别墅" - -#: lang/json/start_location_from_json.py -msgid "Electronics Store" -msgstr "电器店" - -#: lang/json/start_location_from_json.py -msgid "Clothing Store" -msgstr "服装店" - #: lang/json/talk_topic_from_json.py -msgid "You there. Quiet down. Can you hear it? The song?" -msgstr "那里的家伙,安静点。你能听到吗?这歌声?" +msgid "Acolyte." +msgstr "助手。" #: lang/json/talk_topic_from_json.py msgid "You're back. Have you come to listen to the song?" msgstr "你又回来了。你是来这听歌的吗?" #: lang/json/talk_topic_from_json.py -msgid "Acolyte." -msgstr "助手。" +msgid "You there. Quiet down. Can you hear it? The song?" +msgstr "那里的家伙,安静点。你能听到吗?这歌声?" #: lang/json/talk_topic_from_json.py msgid "What? What do you mean? What song?" @@ -166548,37 +162893,29 @@ msgid "Yeah, alright." msgstr "是的,好吧。" #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." -msgstr "我知道有一些有用的骨头,如果你想知道更多的话。" - -#: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." -msgstr "你尚可再唱一首歌,如果你想的话。" +msgid "There are bones to etch, songs to sing. Wish to join me?" +msgstr "有骨待刻,有曲当歌。想加入吗?" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." -msgstr "尚有歌未被你所唱,如果你想的话。" +msgid "Do you wish to take on more songs?" +msgstr "你想要再再来点歌吗?" #: lang/json/talk_topic_from_json.py msgid "Do you believe you can take on the burden of additional bones?" msgstr "你相信自己能承担额外骨骼带来的重担吗?" #: lang/json/talk_topic_from_json.py -msgid "Do you wish to take on more songs?" -msgstr "你想要再再来点歌吗?" - -#: lang/json/talk_topic_from_json.py -msgid "There are bones to etch, songs to sing. Wish to join me?" -msgstr "有骨待刻,有曲当歌。想加入吗?" +msgid "A song may yet be sung by you, should you wish to." +msgstr "尚有歌未被你所唱,如果你想的话。" #: lang/json/talk_topic_from_json.py -msgid "That is all for now." -msgstr "到此为止。" +msgid "There is an additional song you could take on, if you'd like." +msgstr "你尚可再唱一首歌,如果你想的话。" #: lang/json/talk_topic_from_json.py -msgid "An acolyte should not take on too many songs at once." -msgstr "一名助手一次不应该唱太多的歌。" +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." +msgstr "我知道有一些有用的骨头,如果你想知道更多的话。" #: lang/json/talk_topic_from_json.py msgid "" @@ -166586,6 +162923,14 @@ msgid "" " the bones of this world." msgstr "现在歌……很安静。也许随着时间的推移,更多的音符会刻在这个世界的骨头上。" +#: lang/json/talk_topic_from_json.py +msgid "An acolyte should not take on too many songs at once." +msgstr "一名助手一次不应该唱太多的歌。" + +#: lang/json/talk_topic_from_json.py +msgid "That is all for now." +msgstr "到此为止。" + #: lang/json/talk_topic_from_json.py msgid "I see." msgstr "我懂了。" @@ -166655,16 +163000,16 @@ msgstr "觉悟之路是需要你自己走。如果我帮助你,最终会阻碍 msgid "I see. Very well then." msgstr "我明白了。好吧。" -#: lang/json/talk_topic_from_json.py -msgid "Only those who bear my mark will prove themselves worthy of my skills." -msgstr "只有那些有我印记的人才能证明自己配得上我的技能。" - #: lang/json/talk_topic_from_json.py msgid "" "You bear my mark, meaning I believe you have potential to learn to truly " "listen to the Song. Yes, I will lend my skills to you, for now." msgstr "你身上有我的印记,意味着我相信你有潜力学会真正倾听这首歌。是的,我将把助你一臂之力,暂时的。" +#: lang/json/talk_topic_from_json.py +msgid "Only those who bear my mark will prove themselves worthy of my skills." +msgstr "只有那些有我印记的人才能证明自己配得上我的技能。" + #: lang/json/talk_topic_from_json.py msgid "I am glad to hear it. Let's go then." msgstr "听你这么说我很高兴。我们出发吧。" @@ -166905,18 +163250,18 @@ msgstr "" "当然,我会把任何携带物品交易给你,我们是朋友,没问题。\n" "哦对了,如果饿了、渴了,我会吃掉我携带着的饮食。同理也会消耗燃料为生化插件充能。所以也许你应该注意下你给我的物品,是吧?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I can perform first aid. You give me some bandages or a bottle of " -"antiseptic, I'll treat your wounds as best I can." -msgstr "是的,我懂得一些急救知识。我知道如何治疗创伤。只要你给我一些绷带或一瓶消毒剂,我就能在你受伤时治好你。" - #: lang/json/talk_topic_from_json.py msgid "" "Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " "or a bottle of antiseptic, I'm get you fixed when I see you hurting." msgstr "嘿,我是名医生!我知道如何治疗创伤。只要你给我一些绷带或一瓶消毒剂,我就能在你受伤时治好你。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I can perform first aid. You give me some bandages or a bottle of " +"antiseptic, I'll treat your wounds as best I can." +msgstr "是的,我懂得一些急救知识。我知道如何治疗创伤。只要你给我一些绷带或一瓶消毒剂,我就能在你受伤时治好你。" + #: lang/json/talk_topic_from_json.py msgid "" " But remember, I like you, but I like me more - so I'm going to use those " @@ -167128,16 +163473,16 @@ msgstr "谢谢你的解释。我想了解其他事情。" msgid "Thanks. I have some things for you to do." msgstr "谢谢,我有一些事情要你做。" +#: lang/json/talk_topic_from_json.py +msgid "Hi there, ." +msgstr "嗨,。" + #: lang/json/talk_topic_from_json.py msgid "" "STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " "anymore..." msgstr "站住,举起手来!哈哈,吓到你了吗,我们……已经没有法律了……" -#: lang/json/talk_topic_from_json.py -msgid "Hi there, ." -msgstr "嗨,。" - #: lang/json/talk_topic_from_json.py msgid "What are you doing here?" msgstr "你在这里干什么?" @@ -167209,24 +163554,24 @@ msgid "" msgstr "是的,还有其他一些人像我一样躲在镇里。我们有时候会做些交易……有时会有陌生人路过这,以为他们能找到比之前待得更好的地方。" #: lang/json/talk_topic_from_json.py -msgid "Anything to do before I go to sleep?" -msgstr "睡觉前再做些什么?" +msgid "No, just no..." +msgstr "不行就是不行……" #: lang/json/talk_topic_from_json.py -msgid "Just few minutes more..." -msgstr "再等几分钟……" +msgid "Just let me sleep, !" +msgstr "赶紧让我睡觉吧,!" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." msgstr "快点,我想回去睡觉" #: lang/json/talk_topic_from_json.py -msgid "Just let me sleep, !" -msgstr "赶紧让我睡觉吧,!" +msgid "Just few minutes more..." +msgstr "再等几分钟……" #: lang/json/talk_topic_from_json.py -msgid "No, just no..." -msgstr "不行就是不行……" +msgid "Anything to do before I go to sleep?" +msgstr "睡觉前再做些什么?" #: lang/json/talk_topic_from_json.py msgid "Wake up!" @@ -167251,14 +163596,14 @@ msgstr "是的,快醒醒!" msgid "no, 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 " *pshhhttt* I'm reading you boss, over." msgstr "*电流声* 老大,我收到了。完毕。" +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "干什么,老铁?" + #: lang/json/talk_topic_from_json.py msgid "I want to give you some commands for combat." msgstr "[战斗]我想给你一些作战指令。" @@ -167340,93 +163685,93 @@ msgid "Let's go." msgstr "一起走吧。" #: lang/json/talk_topic_from_json.py -msgid "*will engage all enemies." -msgstr "*会攻击所有敌人。" +msgid "*will not engage enemies." +msgstr "*不攻击敌人。" #: lang/json/talk_topic_from_json.py -msgid "*will engage enemies close enough to attack without moving." -msgstr "*会攻击在攻击范围的敌人。" +msgid "*will engage nearby enemies." +msgstr "*会攻击靠近的敌人。" #: lang/json/talk_topic_from_json.py -msgid "*will engage distant enemies without moving." -msgstr "*会攻击在攻击范围的远程敌人。" +msgid "*will engage weak enemies." +msgstr "*会攻击较弱的敌人。" #: lang/json/talk_topic_from_json.py msgid "*will engage enemies you attack." msgstr "*会攻击你正在攻击的敌人。" #: lang/json/talk_topic_from_json.py -msgid "*will engage weak enemies." -msgstr "*会攻击较弱的敌人。" - -#: lang/json/talk_topic_from_json.py -msgid "*will engage nearby enemies." -msgstr "*会攻击靠近的敌人。" +msgid "*will engage distant enemies without moving." +msgstr "*会攻击在攻击范围的远程敌人。" #: lang/json/talk_topic_from_json.py -msgid "*will not engage enemies." -msgstr "*不攻击敌人。" +msgid "*will engage enemies close enough to attack without moving." +msgstr "*会攻击在攻击范围的敌人。" #: lang/json/talk_topic_from_json.py -msgid " " -msgstr " " +msgid "*will engage all enemies." +msgstr "*会攻击所有敌人。" #: lang/json/talk_topic_from_json.py msgid " OVERRIDE: " msgstr "临时指令:" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid " " +msgstr " " #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid " What should do?" msgstr "应该做些什么?" @@ -167502,7 +163847,8 @@ msgstr "坚守阵地:不要移动到我旁边的障碍物上。" #: src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/monexamine.cpp src/monexamine.cpp src/npc.cpp -#: src/pickup.cpp src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp +#: src/pickup.cpp src/player.cpp src/player.cpp src/player.cpp +#: src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." msgstr "算了。" @@ -167535,13 +163881,14 @@ msgid "Attack anything you want." msgstr "按你自己的打法来吧。" #: lang/json/talk_topic_from_json.py -msgid "*will not reserve any power for defense or utility CBMs." -msgstr "*不保留能量给防御型或实用型生化插件。" +#, no-python-format +msgid "*will reserve 100% of CBM power for defense or utility CBMs." +msgstr "*将100%能量留给防御型或实用型生化插件。" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 25% of CBM power for defense or utility CBMs." -msgstr "*将25%能量留给防御型或实用型生化插件。" +msgid "*will reserve 75% of CBM power for defense or utility CBMs." +msgstr "*将75%能量留给防御型或实用型生化插件。" #: lang/json/talk_topic_from_json.py #, no-python-format @@ -167550,13 +163897,12 @@ msgstr "*将50%能量留给防御型或实用型生化插件。" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 75% of CBM power for defense or utility CBMs." -msgstr "*将75%能量留给防御型或实用型生化插件。" +msgid "*will reserve 25% of CBM power for defense or utility CBMs." +msgstr "*将25%能量留给防御型或实用型生化插件。" #: lang/json/talk_topic_from_json.py -#, no-python-format -msgid "*will reserve 100% of CBM power for defense or utility CBMs." -msgstr "*将100%能量留给防御型或实用型生化插件。" +msgid "*will not reserve any power for defense or utility CBMs." +msgstr "*不保留能量给防御型或实用型生化插件。" #: lang/json/talk_topic_from_json.py msgid "" @@ -167595,13 +163941,13 @@ msgstr "疯狂使用生化插件武器。不将能量留给防御型或实用型 #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 10% of total power." -msgstr "*将的生化能量充到10%上限水平。" +msgid "*will recharge power CBMs until has 90% of total power." +msgstr "*将的生化能量充到90%上限水平。" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 25% of total power." -msgstr "*将的生化能量充到25%上限水平。" +msgid "*will recharge power CBMs until has 75% of total power." +msgstr "*将的生化能量充到75%上限水平。" #: lang/json/talk_topic_from_json.py #, no-python-format @@ -167610,13 +163956,13 @@ msgstr "*将的生化能量充到50%上限水平。" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 75% of total power." -msgstr "*将的生化能量充到75%上限水平。" +msgid "*will recharge power CBMs until has 25% of total power." +msgstr "*将的生化能量充到25%上限水平。" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 90% of total power." -msgstr "*将的生化能量充到90%上限水平。" +msgid "*will recharge power CBMs until has 10% of total power." +msgstr "*将的生化能量充到10%上限水平。" #: lang/json/talk_topic_from_json.py msgid " When should consume supplies to recharge power CBMs?" @@ -167651,20 +163997,20 @@ msgid "" msgstr "我们几乎没有补给了。将生化能量充到10%凑合用吧。" #: lang/json/talk_topic_from_json.py -msgid "*will not bother to aim at all." -msgstr "*不会费心瞄准。" - -#: lang/json/talk_topic_from_json.py -msgid "*will take time and aim carefully." -msgstr "*将仔细瞄准后射击。" +msgid "*will aim when it's convenient." +msgstr "*将尽可能瞄准。" #: lang/json/talk_topic_from_json.py msgid "*will only shoot after taking a long time to aim." msgstr "*将在长时间瞄准后才射击。" #: lang/json/talk_topic_from_json.py -msgid "*will aim when it's convenient." -msgstr "*将尽可能瞄准。" +msgid "*will take time and aim carefully." +msgstr "*将仔细瞄准后射击。" + +#: lang/json/talk_topic_from_json.py +msgid "*will not bother to aim at all." +msgstr "*不会费心瞄准。" #: lang/json/talk_topic_from_json.py msgid " How should aim?" @@ -167707,81 +164053,81 @@ msgid "OVERRIDE: " msgstr "临时指令:" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." msgstr "遵守和这名同伴一样的规则。" @@ -167954,14 +164300,14 @@ msgstr "*电流声* 收到,我会赶过去的。完毕。" msgid "Sure thing, I'll make my way there." msgstr "好的,我会赶过去的。" -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, this summer heat is hitting me hard, let's take a quick break, how " @@ -167972,10 +164318,6 @@ msgstr "是的,炎炎夏日让我很难受,让我们休息一下,你最近 msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "好吧,也许这能让我不再这鬼天气里冻僵了,怎么了?" -#: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" -msgstr "天太黑了不是吗?怎么了?" - #: lang/json/talk_topic_from_json.py msgid "" "Well, it's the time of day for a quick break surely! How are you holding " @@ -167983,14 +164325,12 @@ msgid "" msgstr "对啊,是时候休息一下了!你感觉怎么样?" #: lang/json/talk_topic_from_json.py -msgid "Well, I'm feeling pretty sick… are you doing OK though?" -msgstr "我感觉很难受……你还好吗?" +msgid "Man it's dark out isn't it? what's up?" +msgstr "天太黑了不是吗?怎么了?" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " -"what's up?" -msgstr "好吧,我们聊聊。哦对了,谢谢你帮我做那件事。那么……你还好吗?" +msgid "Well, I'm feeling pretty sick… are you doing OK though?" +msgstr "我感觉很难受……你还好吗?" #: lang/json/talk_topic_from_json.py msgid "" @@ -167998,6 +164338,12 @@ msgid "" "Anyway, you coping OK, ? " msgstr "当然,顺便说一下,谢谢你帮了我这么多的忙!不管怎样,你能应付吗,?" +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " +"what's up?" +msgstr "好吧,我们聊聊。哦对了,谢谢你帮我做那件事。那么……你还好吗?" + #: lang/json/talk_topic_from_json.py msgid "" "Now, we've got a moment, I was just thinking it's been a month or so since… " @@ -168069,14 +164415,14 @@ msgstr "好吧,别乱动……" msgid "Keep your distance!" msgstr "离我远点!" -#: lang/json/talk_topic_from_json.py -msgid "This is my territory, ." -msgstr "这是我的地盘,。" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is my territory, ." +msgstr "这是我的地盘,。" + #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." msgstr "冷静点,我不会伤害你。" @@ -168093,14 +164439,14 @@ msgstr "" msgid "&Put hands up." msgstr "&举起双手。" -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*放下她的武器。" - #: lang/json/talk_topic_from_json.py msgid "*drops his weapon." msgstr "*放下他的武器。" +#: lang/json/talk_topic_from_json.py +msgid "*drops_her_weapon." +msgstr "*放下她的武器。" + #: lang/json/talk_topic_from_json.py msgid "Now get out of here" msgstr "现在赶紧滚" @@ -168129,14 +164475,6 @@ msgstr "你怎么了?" msgid "I don't care." msgstr "我不在乎。" -#: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" -msgstr "我这正好有份你能做的事,想听听吗?" - -#: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" -msgstr "我还有件事要拜托你,要听听看吗?" - #: lang/json/talk_topic_from_json.py msgid "I have other jobs for you. Want to hear about them?" msgstr "我还有些其它的工作想交给你,要听听看吗?" @@ -168146,13 +164484,21 @@ msgid "I have more jobs for you. Want to hear about them?" msgstr "我还有更多的工作想交给你,要听听看吗?" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." -msgstr "我没有更多的工作可以给你了。" +msgid "I have another job for you. Want to hear about it?" +msgstr "我还有件事要拜托你,要听听看吗?" + +#: lang/json/talk_topic_from_json.py +msgid "I just have one job for you. Want to hear about it?" +msgstr "我这正好有份你能做的事,想听听吗?" #: lang/json/talk_topic_from_json.py msgid "I don't have any jobs for you." msgstr "我没有工作可以给你。" +#: lang/json/talk_topic_from_json.py +msgid "I don't have any more jobs for you." +msgstr "我没有更多的工作可以给你了。" + #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." @@ -168163,16 +164509,16 @@ msgid "Never mind, I'm not interested." msgstr "[拒绝]算了,我没兴趣。" #: lang/json/talk_topic_from_json.py -msgid "What about it?" -msgstr "怎么样了?" +msgid "You're not working on anything for me now." +msgstr "你现在没有为我做任何事情。" #: lang/json/talk_topic_from_json.py msgid "Which job?" msgstr "哪个工作?" #: lang/json/talk_topic_from_json.py -msgid "You're not working on anything for me now." -msgstr "你现在没有为我做任何事情。" +msgid "What about it?" +msgstr "怎么样了?" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" @@ -168383,48 +164729,48 @@ msgid "Thanks!" msgstr "谢谢啦!" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for not telling you." -msgstr "我不方便对你说。" +msgid "Focus on the road, mate!" +msgstr "专心开车,兄弟!" #: lang/json/talk_topic_from_json.py -msgid "Nothing comes to my mind now. Ask me later perhaps?" -msgstr "我现在什么都想不到,下次再问我吧。" +msgid "I'm too thirsty, give me something to drink." +msgstr "我渴了,给我来点喝的吧。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm too hungry, give me something to eat." +msgstr "我饿了,给我来点吃的吧。" #: lang/json/talk_topic_from_json.py msgid "I'm too tired, let me rest first." msgstr "我累了,让我去睡一会吧。" #: lang/json/talk_topic_from_json.py -msgid "I'm too hungry, give me something to eat." -msgstr "我饿了,给我来点吃的吧。" +msgid "Nothing comes to my mind now. Ask me later perhaps?" +msgstr "我现在什么都想不到,下次再问我吧。" #: lang/json/talk_topic_from_json.py -msgid "I'm too thirsty, give me something to drink." -msgstr "我渴了,给我来点喝的吧。" +msgid "I have some reason for not telling you." +msgstr "我不方便对你说。" #: lang/json/talk_topic_from_json.py msgid "I must focus on the road!" msgstr "我在开车呢!" -#: lang/json/talk_topic_from_json.py -msgid "Focus on the road, mate!" -msgstr "专心开车,兄弟!" - #: lang/json/talk_topic_from_json.py msgid "Ah, okay." msgstr "啊,好吧。" #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "为什么我应该跟你同行?" +msgid "Not until I get some antibiotics..." +msgstr "除非你给我一点抗生素……" #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." msgstr "你刚才问过我了,我仍在考虑中,一会再问我吧。" #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "除非你给我一点抗生素……" +msgid "Why should I travel with you?" +msgstr "为什么我应该跟你同行?" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." @@ -168515,20 +164861,20 @@ msgid "On second thought, never mind." msgstr "[取消]回头想一想,算了吧。" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for denying you training." -msgstr "我不教你是有原因的。" +msgid "I can't train you properly while you're operating a vehicle!" +msgstr "你开车的时候,我没法好好儿训练你!" #: lang/json/talk_topic_from_json.py msgid "Give it some time, I'll show you something new later..." msgstr "给我点时间,我会给你看点新玩意……" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while I'm operating a vehicle!" -msgstr "我开车的时候没法训练你!" +msgid "I have some reason for denying you training." +msgstr "我不教你是有原因的。" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while you're operating a vehicle!" -msgstr "你开车的时候,我没法好好儿训练你!" +msgid "I can't train you properly while I'm operating a vehicle!" +msgstr "我开车的时候没法训练你!" #: lang/json/talk_topic_from_json.py msgid "Not a bloody chance, I'm going to get left behind!" @@ -168566,14 +164912,14 @@ msgstr "我还是留着给自己吧。" msgid "I understand…" msgstr "我明白……" -#: lang/json/talk_topic_from_json.py -msgid "Why should I share my equipment with you?" -msgstr "为何我应该跟你分享自己的装备?" - #: lang/json/talk_topic_from_json.py msgid "You just asked me for stuff; ask later." msgstr "你刚刚问我要过东西了,晚点再说吧。" +#: lang/json/talk_topic_from_json.py +msgid "Why should I share my equipment with you?" +msgstr "为何我应该跟你分享自己的装备?" + #: lang/json/talk_topic_from_json.py msgid "Okay, fine." msgstr "好的,算了。" @@ -168716,16 +165062,16 @@ msgstr "交易愉快!" msgid "You might be seeing more of me…" msgstr "我们还会再见的……" +#: lang/json/talk_topic_from_json.py +msgid "Hey again. *kzzz*" +msgstr "再次问好。 *滋滋滋*" + #: lang/json/talk_topic_from_json.py msgid "" "I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " "I've seen in a long time." msgstr "我……我自由了。 *滋滋滋* 我真的自由了! *噗滋滋滋* 看啊,你是这么长时间以来我见到的第一个活人。" -#: lang/json/talk_topic_from_json.py -msgid "Hey again. *kzzz*" -msgstr "再次问好。 *滋滋滋*" - #: lang/json/talk_topic_from_json.py msgid "Hey. Let's chat for a second." msgstr "嘿,我们聊聊吧。" @@ -169879,28 +166225,28 @@ msgid "This is a low driving test response." msgstr "低驾驶技能测试回应。" #: lang/json/talk_topic_from_json.py -msgid "Greeting citizen, what brings you to the FoodLair?" -msgstr "欢迎市民,什么风把你吹到了美食之城?" +msgid "Greetings friend, it's nice to see you." +msgstr "你好朋友,很高兴见到你。" #: lang/json/talk_topic_from_json.py -msgid "Still here? Take your time, it's rough out there." -msgstr "还在这里?慢慢来,外面很乱。" +msgid "So you're back… Explain yourself!" +msgstr "所以你又回来了……马上给我个解释!" #: lang/json/talk_topic_from_json.py -msgid "Greetings friend, it's nice to see you." -msgstr "你好朋友,很高兴见到你。" +msgid "What sorcery is this?" +msgstr "这是什么巫术?" #: lang/json/talk_topic_from_json.py msgid "Welcome home Foodkid!" msgstr "欢迎回家,食物小子!" #: lang/json/talk_topic_from_json.py -msgid "What sorcery is this?" -msgstr "这是什么巫术?" +msgid "Still here? Take your time, it's rough out there." +msgstr "还在这里?慢慢来,外面很乱。" #: lang/json/talk_topic_from_json.py -msgid "So you're back… Explain yourself!" -msgstr "所以你又回来了……马上给我个解释!" +msgid "Greeting citizen, what brings you to the FoodLair?" +msgstr "欢迎市民,什么风把你吹到了美食之城?" #: lang/json/talk_topic_from_json.py msgid "Greetings… Foodperson?" @@ -171329,6 +167675,10 @@ msgid "" msgstr "" "然后是军队。他们出现了,并征用我的土地作为某种前线基地,要求我撤离到联邦紧急事务管理局营地里。我甚至没有试图和他们争论一下……我只有我爸爸的旧猎枪,而他们有高科技武器。不过,我听到他们中的一个人开玩笑说联邦紧急事务管理局营地和奥斯威辛集中营没什么两样。我悄悄地从避难车队司机眼底下溜掉,决定去北方我姐姐那里。理论上我想我还是朝着那走,不过老实说,我只是在忙着别让自己死了。" +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "我现在没法谈这件事。我做不到。" + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a blur." @@ -171337,10 +167687,9 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke. I'd seen such horrible injuries, and then I… " -", I can't even talk about it." +"shift I… well, I broke." msgstr "" -"我那时候在医院工作,然后事情就这么糟了。整个事都有点模模糊糊的。一段时间以来一直都有一些奇怪的报道,那些听起来令人难以置信的关于病人死后复活的事情,但大多数人还是照常工作。然后,到了末日来临前,一切都突然出现了。我们以为这是一次来自中国的攻击,而这也是我们所获知的消息。送来急救的人都发疯了,身上满是子弹和咬伤的伤口。在我班快上到一半的时候我……我崩溃了。我曾经见过比这更可怕的伤,但我……,我甚至没法谈起它。" +"我那时候在医院工作,然后事情就这么糟了。整个事都有点模模糊糊的。一段时间以来一直都有一些奇怪的报道,那些听起来令人难以置信的关于病人死后复活的事情,但大多数人还是照常工作。然后,到了末日来临前,一切都突然出现了。我们以为这是一次来自中国的攻击,而这也是我们所获知的消息。送来急救的人都发疯了,身上满是子弹和咬伤的伤口。在我班快上到一半的时候我……我崩溃了。" #: lang/json/talk_topic_from_json.py msgid "" @@ -171350,13 +167699,10 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke." +"shift I… well, I broke. I'd seen such horrible injuries, and then I… " +", I can't even talk about it." msgstr "" -"我那时候在医院工作,然后事情就这么糟了。整个事都有点模模糊糊的。一段时间以来一直都有一些奇怪的报道,那些听起来令人难以置信的关于病人死后复活的事情,但大多数人还是照常工作。然后,到了末日来临前,一切都突然出现了。我们以为这是一次来自中国的攻击,而这也是我们所获知的消息。送来急救的人都发疯了,身上满是子弹和咬伤的伤口。在我班快上到一半的时候我……我崩溃了。" - -#: lang/json/talk_topic_from_json.py -msgid "I just can't talk about that right now. I can't." -msgstr "我现在没法谈这件事。我做不到。" +"我那时候在医院工作,然后事情就这么糟了。整个事都有点模模糊糊的。一段时间以来一直都有一些奇怪的报道,那些听起来令人难以置信的关于病人死后复活的事情,但大多数人还是照常工作。然后,到了末日来临前,一切都突然出现了。我们以为这是一次来自中国的攻击,而这也是我们所获知的消息。送来急救的人都发疯了,身上满是子弹和咬伤的伤口。在我班快上到一半的时候我……我崩溃了。我曾经见过比这更可怕的伤,但我……,我甚至没法谈起它。" #: lang/json/talk_topic_from_json.py msgid "It might help to get it off your chest." @@ -171722,15 +168068,15 @@ msgstr "谢谢你告诉我这一切。" #: lang/json/talk_topic_from_json.py msgid "" -"My wife made it out with me, but got eaten by one of those plant " +"My husband made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." -msgstr "我妻子和我一起逃了出来,但在我遇见你前几天被一只 植物怪物吃掉了。今年对我来说不是个好年头。" +msgstr "我丈夫和我一起逃了出来,但在我遇见你前几天被一只 植物怪物吃掉了。今年对我来说不是个好年头。" #: lang/json/talk_topic_from_json.py msgid "" -"My husband made it out with me, but got eaten by one of those plant " +"My wife made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." -msgstr "我丈夫和我一起逃了出来,但在我遇见你前几天被一只 植物怪物吃掉了。今年对我来说不是个好年头。" +msgstr "我妻子和我一起逃了出来,但在我遇见你前几天被一只 植物怪物吃掉了。今年对我来说不是个好年头。" #: lang/json/talk_topic_from_json.py msgid "I'm sorry to hear it." @@ -171792,8 +168138,9 @@ msgid "I'm sorry you lost someone." msgstr "听到你失去了爱人我很难过。" #: lang/json/talk_topic_from_json.py -msgid "Just another tale of love and loss. Not one I like to tell." -msgstr "只不过是另一个 爱情与失落的故事。我现在没心情讲故事了。" +msgid "" +"I said, I don't wanna talk about it. How are you not understanding this?" +msgstr "我说过了,我不想谈这件事。你怎么不明白呢?" #: lang/json/talk_topic_from_json.py msgid "" @@ -171802,9 +168149,8 @@ msgid "" msgstr "如我所说,这是一个 故事,但我想再讲一遍不会让我丧命。" #: lang/json/talk_topic_from_json.py -msgid "" -"I said, I don't wanna talk about it. How are you not understanding this?" -msgstr "我说过了,我不想谈这件事。你怎么不明白呢?" +msgid "Just another tale of love and loss. Not one I like to tell." +msgstr "只不过是另一个 爱情与失落的故事。我现在没心情讲故事了。" #: lang/json/talk_topic_from_json.py msgid "You said you lost someone." @@ -171827,40 +168173,40 @@ msgid "" "Oh, . This doesn't have anything to do with you, or with us." msgstr "哦,。这和你无关,也和我们无关。" -#: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." -msgstr "好吧,好吧。我曾经有个爱人。我失去了她。" - #: lang/json/talk_topic_from_json.py msgid "All right, fine. I had someone. I lost him." msgstr "好吧,好吧。我曾经有个爱人。我失去了他。" +#: lang/json/talk_topic_from_json.py +msgid "All right, fine. I had someone. I lost her." +msgstr "好吧,好吧。我曾经有个爱人。我失去了她。" + #: lang/json/talk_topic_from_json.py msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -"当核弹开始落下,整个世界都变成地狱时,她一个人在家。我当时在工作。我试着回到家中,但整座城市已经变成战区。我我无法描述的怪物们在街道上蹒跚而行,压碎了人们和车辆。士兵们试图阻止它们,但是在交火中击中平民比其他东西要多得多。而因附加伤害而死的人们就会复活加入敌人。如果不是为了我的妻子,我早就逃跑了,但我尽我所能,悄悄穿过这一切。我最终" +"当核弹开始落下,整个世界都变成地狱时,他一个人在家。我当时在工作。我试着回到家中,但整座城市已经变成战区。我我无法描述的怪物们在街道上蹒跚而行,压碎了人们和车辆。士兵们试图阻止它们,但是在交火中击中平民比其他东西要多得多。而因附加伤害而死的人们就会复活加入敌人。如果不是为了我的丈夫,我早就逃跑了,但我尽我所能,悄悄穿过这一切。我最终" " 活着回到了家。" #: lang/json/talk_topic_from_json.py msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -"当核弹开始落下,整个世界都变成地狱时,他一个人在家。我当时在工作。我试着回到家中,但整座城市已经变成战区。我我无法描述的怪物们在街道上蹒跚而行,压碎了人们和车辆。士兵们试图阻止它们,但是在交火中击中平民比其他东西要多得多。而因附加伤害而死的人们就会复活加入敌人。如果不是为了我的丈夫,我早就逃跑了,但我尽我所能,悄悄穿过这一切。我最终" +"当核弹开始落下,整个世界都变成地狱时,她一个人在家。我当时在工作。我试着回到家中,但整座城市已经变成战区。我我无法描述的怪物们在街道上蹒跚而行,压碎了人们和车辆。士兵们试图阻止它们,但是在交火中击中平民比其他东西要多得多。而因附加伤害而死的人们就会复活加入敌人。如果不是为了我的妻子,我早就逃跑了,但我尽我所能,悄悄穿过这一切。我最终" " 活着回到了家。" #: lang/json/talk_topic_from_json.py @@ -171916,28 +168262,28 @@ msgstr "你进到房子里了吗?" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " +"up part? Like, out of all this? My husband was still alive. He'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirious by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then… well, then I did what you " +"he'd lost a ton of blood, he was delirious by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" -"我进去了。花了几个小时才找到一个空档。你想知道最该死的部分是什么吗?经历了这一切之后?我妻子还活着。她一直躲在地下室里,但被倒塌的地板压住了。当我找到她的时候,她已经失血过多了。我没办法把她弄出来,所以我给了她食物和水,和她呆在一起,牵着她的手,直到她去世。然后……好吧,我做了你现在对死者必须要做的那些事。然后我收起了我生命中的最后几块碎片,我试着再也不回头了。" +"我进去了。花了几个小时才找到一个空档。你想知道最该死的部分是什么吗?经历了这一切之后?我丈夫还活着。他一直躲在地下室里,但被倒塌的地板压住了。当我找到他的时候,他已经失血过多了。我没办法把他弄出来,所以我给了他食物和水,和他呆在一起,牵着他的手,直到他去世。然后……好吧,我做了你现在对死者必须要做的那些事。然后我收起了我生命中的最后几块碎片,我试着再也不回头了。" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " +"up part? Like, out of all this? My wife was still alive. She'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirious by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then… well, then I did what you " +"she'd lost a ton of blood, she was delirious by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" -"我进去了。花了几个小时才找到一个空档。你想知道最该死的部分是什么吗?经历了这一切之后?我丈夫还活着。他一直躲在地下室里,但被倒塌的地板压住了。当我找到他的时候,他已经失血过多了。我没办法把他弄出来,所以我给了他食物和水,和他呆在一起,牵着他的手,直到他去世。然后……好吧,我做了你现在对死者必须要做的那些事。然后我收起了我生命中的最后几块碎片,我试着再也不回头了。" +"我进去了。花了几个小时才找到一个空档。你想知道最该死的部分是什么吗?经历了这一切之后?我妻子还活着。她一直躲在地下室里,但被倒塌的地板压住了。当我找到她的时候,她已经失血过多了。我没办法把她弄出来,所以我给了她食物和水,和她呆在一起,牵着她的手,直到她去世。然后……好吧,我做了你现在对死者必须要做的那些事。然后我收起了我生命中的最后几块碎片,我试着再也不回头了。" #: lang/json/talk_topic_from_json.py msgid "" @@ -172615,17 +168961,6 @@ msgid "" msgstr "" "和其他人一样。我背叛了上帝,现在我要付出代价。\"被提\"来了,而我被留下了。所以现在,我想我得留在这个人间地狱里四处游荡。我真希望当初我在主日学校里上能多听点课。" -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started… cancer. If anything good has " -"come out of all this, it's that I finally see a positive to losing her so " -"young. I'd been shut in for a while anyway. When the news started talking " -"about Chinese bio weapons and sleeper agents, and showing the rioting in " -"Boston and such, I curled up with my canned soup and changed the channel." -msgstr "" -"我一个人住,住在城外很远的一间老房子里。我妻子在这一切开始前一个多月就去世了……癌症。如果说现在发生的这一切都有什么好处的话,那就是我终于看到了这么年轻的时候失去她是件好事。反正我那时已经与世隔绝一段时间了。当新闻开始谈论中国的生化武器和卧底特工,并报道在波士顿的骚乱等,我带着我的罐头蜷缩起来,然后换台。" - #: lang/json/talk_topic_from_json.py msgid "" "I lived alone, on the old family property way out of town. My husband " @@ -172638,6 +168973,17 @@ msgid "" msgstr "" "我一个人住,住在城外很远的一间老房子里。我丈夫在这一切开始前一个多月就去世了……癌症。如果说现在发生的这一切都有什么好处的话,那就是我终于看到了这么年轻的时候失去他是件好事。反正我那时已经与世隔绝一段时间了。当新闻开始谈论中国的生化武器和卧底特工,并报道在波士顿的骚乱等,我带着我的罐头蜷缩起来,然后换台。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started… cancer. If anything good has " +"come out of all this, it's that I finally see a positive to losing her so " +"young. I'd been shut in for a while anyway. When the news started talking " +"about Chinese bio weapons and sleeper agents, and showing the rioting in " +"Boston and such, I curled up with my canned soup and changed the channel." +msgstr "" +"我一个人住,住在城外很远的一间老房子里。我妻子在这一切开始前一个多月就去世了……癌症。如果说现在发生的这一切都有什么好处的话,那就是我终于看到了这么年轻的时候失去她是件好事。反正我那时已经与世隔绝一段时间了。当新闻开始谈论中国的生化武器和卧底特工,并报道在波士顿的骚乱等,我带着我的罐头蜷缩起来,然后换台。" + #: lang/json/talk_topic_from_json.py msgid "" "Well, it built up a bit. There was that acid rain, it burnt up one of my " @@ -172722,18 +169068,18 @@ msgstr "听到巴克的这些事我很难过。" msgid "I'm sorry about Buck. " msgstr "听到巴克的这些事我很难过。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " -"interested in getting attached. You didn't pay me to be your friend." -msgstr "听好了,我只会说重点。我只是为你工作,好吗?我对和雇主产生\"羁绊\"不感兴趣。你付的那些钱还不够让我做你的朋友。" - #: lang/json/talk_topic_from_json.py msgid "" "Like I said, you want me to tell you a story, you gotta pony up the whisky." " A full bottle, mind you." msgstr "我说过了,你想让我给你讲故事,你得给我喝瓶威士忌。一整瓶,听好了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " +"interested in getting attached. You didn't pay me to be your friend." +msgstr "听好了,我只会说重点。我只是为你工作,好吗?我对和雇主产生\"羁绊\"不感兴趣。你付的那些钱还不够让我做你的朋友。" + #: lang/json/talk_topic_from_json.py msgid "" "I'm not looking for a friend, but I've paid my dues and earned my way. You " @@ -173054,16 +169400,6 @@ msgid "" msgstr "" "我看到所发生的一切,就立马转身,朝反方向逃跑了。我以前看过很多丧尸题材的电影。我从家里拿了些东西,在一切变糟之前,设法离开了城市。当时我以为自己是个懦夫,但现在我知道,如果那时候留下来帮忙,我只会变成另一具血淋淋的尸体。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " -"peel out of there with her brother - my best man - in his pickup truck as " -"things went bad. So, until I run into them again one way or another, I'm " -"just gonna keep on believing they're out there, doing well. That's more " -"than most of us have." -msgstr "" -"好吧,我有个不切实际的奢望。这可能听起来很蠢,但我看我的未婚妻和她的哥哥,我的伴郎,在一切失控前成功钻进了他的皮卡里离开了。所以,在我再次遇到他们之前,我会继续相信他们依旧在外面某处,活得很好。比我们大多数人都要好。" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I have this weird hope. It's probably stupid, but I saw my fiancé " @@ -173075,12 +169411,18 @@ msgstr "" "好吧,我有个不切实际的奢望。这可能听起来很蠢,但我看我的未婚夫和他的姐姐,我的伴娘,在一切失控前成功钻进了她的皮卡里离开了。所以,在我再次遇到他们之前,我会继续相信他们依旧在外面某处,活得很好。比我们大多数人都要好。" #: lang/json/talk_topic_from_json.py -msgid "What were you saying before that?" -msgstr "你刚刚还说了什么?" +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." +msgstr "" +"好吧,我有个不切实际的奢望。这可能听起来很蠢,但我看我的未婚妻和她的哥哥,我的伴郎,在一切失控前成功钻进了他的皮卡里离开了。所以,在我再次遇到他们之前,我会继续相信他们依旧在外面某处,活得很好。比我们大多数人都要好。" #: lang/json/talk_topic_from_json.py -msgid "Welcome! You seem new, how can I help you?" -msgstr "欢迎!你是新来的,我能帮你什么忙吗?" +msgid "What were you saying before that?" +msgstr "你刚刚还说了什么?" #: lang/json/talk_topic_from_json.py msgid "Hey there." @@ -173102,6 +169444,10 @@ msgstr "欢迎!" msgid "How's the weather?" msgstr "天气怎么样?" +#: lang/json/talk_topic_from_json.py +msgid "Welcome! You seem new, how can I help you?" +msgstr "欢迎!你是新来的,我能帮你什么忙吗?" + #: lang/json/talk_topic_from_json.py msgid "What is this place?" msgstr "这是哪里?" @@ -173185,6 +169531,13 @@ msgstr "听着,我也有家人。我知道这对你来说很艰难,但我已 msgid "At least I tried." msgstr "至少我试过了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"You have to ask our leader, Helena, first. She's the one who makes those " +"decisions. But as I said, your chances are low, like everyone else's. The " +"newest member joined just a long time ago." +msgstr "你得先问我们的领袖,海伦娜。她才是做出这些决定的人。但我说过了,你的机会不大,就像其他人一样。上个成员很久以前就加入了。" + #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " @@ -173194,13 +169547,6 @@ msgid "" msgstr "" "你得先问我们的领袖,海伦娜。她才是做出这些决定的人。但我说过了,你的机会不大,就像其他人一样。如果你早点找到我们的社区,你可能会有更多的机会加入。上个成员几天前才加入。" -#: lang/json/talk_topic_from_json.py -msgid "" -"You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. The " -"newest member joined just a long time ago." -msgstr "你得先问我们的领袖,海伦娜。她才是做出这些决定的人。但我说过了,你的机会不大,就像其他人一样。上个成员很久以前就加入了。" - #: lang/json/talk_topic_from_json.py msgid "" "From me? Nothing. But we have a tailor, herbalist and a hunter. Go see " @@ -173247,10 +169593,6 @@ msgstr "" "我们使用宗教圣像作为我们的货币。这些都是在 " "之前制造的,我们社区的名字写在背面。这比旧世界的美元要方便得多,那些在这里只是生火工具而已。" -#: lang/json/talk_topic_from_json.py -msgid "Hey! What are you doing up here? You are not allowed to come here." -msgstr "嘿!你在上面干什么?你不能来这里。" - #: lang/json/talk_topic_from_json.py msgid "You're back." msgstr "你又来了啊。" @@ -173259,6 +169601,10 @@ msgstr "你又来了啊。" msgid "So…?" msgstr "什么事……?" +#: lang/json/talk_topic_from_json.py +msgid "Hey! What are you doing up here? You are not allowed to come here." +msgstr "嘿!你在上面干什么?你不能来这里。" + #: lang/json/talk_topic_from_json.py msgid "How much food do you have in storage?" msgstr "你们仓库里有多少食物?" @@ -173288,12 +169634,6 @@ msgstr "我能从仓库借点东西吗?" msgid "Has anyone stolen from here?" msgstr "有人偷过这里的东西吗?" -#: lang/json/talk_topic_from_json.py -msgid "" -"I am sorry, but nobody is allowed to take anything from here. We would like" -" to help you, but we already have enough mouths to feed." -msgstr "我很抱歉,但这里不允许任何人拿走任何东西。我们很想帮助你,但我们已经有足够多的嘴需要养活了。" - #: lang/json/talk_topic_from_json.py msgid "" "I am afraid you can't. Look, we are running low on our rations, and we " @@ -173301,6 +169641,12 @@ msgid "" "bad, we could've helped you if you had come here earlier." msgstr "恐怕不能。听着,我们的口粮已经越来越少了,我们不能再浪费更多了。即使你只不过是想“借”。太糟了,如果你早点来的话,我们本可以帮你的。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I am sorry, but nobody is allowed to take anything from here. We would like" +" to help you, but we already have enough mouths to feed." +msgstr "我很抱歉,但这里不允许任何人拿走任何东西。我们很想帮助你,但我们已经有足够多的嘴需要养活了。" + #: lang/json/talk_topic_from_json.py msgid "I have money." msgstr "我有钱。" @@ -173339,18 +169685,18 @@ msgstr "抱歉,我帮不了你或你的家人。这不是我的食物,你需 msgid "I think I'll be going." msgstr "我想我该走了。" -#: lang/json/talk_topic_from_json.py -msgid "" -"That information is a bit private, but you can see for yourself. We have " -"about 20 crates full of non-perishables." -msgstr "这个信息有点机密,但你自己也能看到。我们这里有20个装满非易腐食品的箱子。" - #: lang/json/talk_topic_from_json.py msgid "" "I don't know anymore. You see, we used to have 20 crates full of non-" "perishables. That was months ago. We are running out." msgstr "我不知道了。你看,我们之前这里有20个装满非易腐食品的箱子。但那是几个月前的事了。我们快用完了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"That information is a bit private, but you can see for yourself. We have " +"about 20 crates full of non-perishables." +msgstr "这个信息有点机密,但你自己也能看到。我们这里有20个装满非易腐食品的箱子。" + #: lang/json/talk_topic_from_json.py msgid "Where did all this food come from?" msgstr "这些食物是从哪里来的?" @@ -173418,14 +169764,14 @@ msgstr "据我所知没有。我没有看到我们的食物供应有任何可疑 msgid "That's good to hear." msgstr "真是个好消息。" -#: lang/json/talk_topic_from_json.py -msgid "Pleased to meet you." -msgstr "很高兴遇见你。" - #: lang/json/talk_topic_from_json.py msgid "Are you here to protect us?" msgstr "你是来这里保卫我们的吗?" +#: lang/json/talk_topic_from_json.py +msgid "Pleased to meet you." +msgstr "很高兴遇见你。" + #: lang/json/talk_topic_from_json.py msgid "I'm just trying to get by." msgstr "我只是想要活下去。" @@ -173479,14 +169825,14 @@ msgstr "如果我教会了一百个人怎么养兔子,在这些人教会更多 msgid "That's the most hopeful thing I've heard so far." msgstr "这是迄今为止我听到的最令人鼓舞的事情。" -#: lang/json/talk_topic_from_json.py -msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." -msgstr "CRISPR?辐射?水里的东西?也许是兔子。" - #: lang/json/talk_topic_from_json.py msgid "Same way you got yours, I bet." msgstr "就和你怎么得到你的一样,我打赌。" +#: lang/json/talk_topic_from_json.py +msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." +msgstr "CRISPR?辐射?水里的东西?也许是兔子。" + #: lang/json/talk_topic_from_json.py msgid "So it goes." msgstr "那就这样把。" @@ -173495,22 +169841,22 @@ msgstr "那就这样把。" msgid "You're disgusting." msgstr "你真恶心!" -#: lang/json/talk_topic_from_json.py -msgid "Insulting people who could help you is unlikely to aid survival." -msgstr "侮辱那些能帮助你的人是不可能帮助你生存的。" - #: lang/json/talk_topic_from_json.py msgid "I'm very sorry to tell you this, but you should look in a mirror." msgstr "我很抱歉告诉你这件事,但你应该自己照照镜子。" #: lang/json/talk_topic_from_json.py -msgid "I can't believe my eyes. Please get me outta here…" -msgstr "我不敢相信我看到的一切。请把我从这里弄出去……" +msgid "Insulting people who could help you is unlikely to aid survival." +msgstr "侮辱那些能帮助你的人是不可能帮助你生存的。" #: lang/json/talk_topic_from_json.py msgid "Hey, ." msgstr "嘿,。" +#: lang/json/talk_topic_from_json.py +msgid "I can't believe my eyes. Please get me outta here…" +msgstr "我不敢相信我看到的一切。请把我从这里弄出去……" + #: lang/json/talk_topic_from_json.py msgid "I've come to take you home, lets go." msgstr "我是来带你回家的,咱们走吧。" @@ -173534,18 +169880,18 @@ msgid "Sounds good, Barry." msgstr "听起来不错,巴里。" #: lang/json/talk_topic_from_json.py -msgid "Hello Ma'am, what brings you here?" -msgstr "你好女士,你来这有什么事吗?" +msgid "" +"I see that badge, I think you need to keep on walking, straight off this " +"property." +msgstr "我看见那个徽章了,你最好马上离开这个地方。" #: lang/json/talk_topic_from_json.py msgid "Hello Sir, what brings you here?" msgstr "你好先生,你来这有什么事吗?" #: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need to keep on walking, straight off this " -"property." -msgstr "我看见那个徽章了,你最好马上离开这个地方。" +msgid "Hello Ma'am, what brings you here?" +msgstr "你好女士,你来这有什么事吗?" #: lang/json/talk_topic_from_json.py msgid "Yeah, I'm a Marshal, what are you going to do about it?" @@ -173618,16 +169964,16 @@ msgstr "你的锻炉能用了吗?" msgid "Where can I find Chris?" msgstr "在哪儿能找到克里斯?" -#: lang/json/talk_topic_from_json.py -msgid "Hi, what's up?" -msgstr "你好?" - #: lang/json/talk_topic_from_json.py msgid "" "I see that badge. You need to leave our land, my relatives have no fondness" " for Marshals." msgstr "我看到那个徽章了,你最好马上离开我们的地盘,我家里对执法官没什么好感。" +#: lang/json/talk_topic_from_json.py +msgid "Hi, what's up?" +msgstr "你好?" + #: lang/json/talk_topic_from_json.py msgid "" "Hi, Your dad asked me to come find you, said you've been looking for your " @@ -173722,16 +170068,16 @@ msgid "" msgstr "我之前和卢克说过话,他说你对世界末日有些有趣的见解。" #: lang/json/talk_topic_from_json.py -msgid "Hi, what brings you here?" -msgstr "嗨,你有什么事吗?" +msgid "Is that a U.S. Marshal's badge you're wearing?" +msgstr "你身上那个是联邦执法官徽章吗?" #: lang/json/talk_topic_from_json.py msgid "Hello, what brings you here?" msgstr "你好,你有什么事吗?" #: lang/json/talk_topic_from_json.py -msgid "Is that a U.S. Marshal's badge you're wearing?" -msgstr "你身上那个是联邦执法官徽章吗?" +msgid "Hi, what brings you here?" +msgstr "嗨,你有什么事吗?" #: lang/json/talk_topic_from_json.py msgid "Yes, I'm a marshal." @@ -174027,14 +170373,14 @@ msgstr "现在就这些。我们能谈点别的吗?" msgid "That's all for now. I'd best get going." msgstr "现在就这些。我最好还是走吧。" -#: lang/json/talk_topic_from_json.py -msgid "Hello, We don't see many people these days." -msgstr "你好,如今我们能碰见的人可是越来越少了。" - #: lang/json/talk_topic_from_json.py msgid "Leave our property, Marshal." msgstr "离开我们的地盘,执法官。" +#: lang/json/talk_topic_from_json.py +msgid "Hello, We don't see many people these days." +msgstr "你好,如今我们能碰见的人可是越来越少了。" + #: lang/json/talk_topic_from_json.py msgid "Hi, it looks like you are doing well here." msgstr "嗨,看起来你们在这过得不错。" @@ -174233,10 +170579,8 @@ msgid "Tell me about your dad." msgstr "和我说说你爸吧。" #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "女士,我不知道你是怎么到这里来的。如果你还有点理智的话,趁现在你还能离开,赶紧走吧。" +msgid "Marshal, I hope you're here to assist us." +msgstr "执法官,我希望你是来帮忙的。" #: lang/json/talk_topic_from_json.py msgid "" @@ -174245,8 +170589,10 @@ msgid "" msgstr "先生,我不知道你是怎么到这里来的。如果你还有点理智的话,趁现在你还能离开,赶紧走吧。" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "执法官,我希望你是来帮忙的。" +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "女士,我不知道你是怎么到这里来的。如果你还有点理智的话,趁现在你还能离开,赶紧走吧。" #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" @@ -174309,16 +170655,16 @@ msgid "Whatever they did it must have worked since we are still alive…" msgstr "不论他们做了什么,都一定成功了。因为我们还活着……" #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here… you should leave." -msgstr "女士,您没有这里的授权……请离开。" +msgid "Marshal, I'm rather surprised to see you here." +msgstr "执法官,能在这看到你真令人惊讶。" #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here… you should leave." msgstr "先生,您没有这里的授权……请离开。" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "执法官,能在这看到你真令人惊讶。" +msgid "Ma'am you are not authorized to be here… you should leave." +msgstr "女士,您没有这里的授权……请离开。" #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." @@ -174356,6 +170702,22 @@ msgstr "" "我正等着上尉给我派个跑腿的人来。这是你要的频率表。从这份表里我们只能看到那些曾经有通讯过的频率, " "但这些通讯大多都加密了,不修复或者替换这里的设备是没法破译的。按标准流程来说,当设施被外敌侵占时,应该破坏加密器,以保护联邦政府机密和保持加密通讯网络的完整。不过我们还是希望能够获得一些明文编码的信息。" +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "你好,执法官。" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "执法官,恐怕我现在没法和你谈话。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "执法官,我不是这里管事的。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "执法官,我想你该向我领导问这些问题。" + #: lang/json/talk_topic_from_json.py msgid "Hey, citizen… I'm not sure you belong here." msgstr "嗨,市民……你不该在这里。" @@ -174368,14 +170730,6 @@ msgstr "你应该管好自己的事,这里没什么好看的。" msgid "If you need something you'll need to talk to someone else." msgstr "如果你想要什么的话,你该找别人去。" -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "女士" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "嘿小姐,难道你不觉得应该和我一起才更安全么?" - #: lang/json/talk_topic_from_json.py msgid "Sir." msgstr "先生" @@ -174385,20 +170739,12 @@ msgid "Dude, if you can hold your own you should look into enlisting." msgstr "伙计,如果你靠得住,你该去报名参军的。" #: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "你好,执法官。" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "执法官,恐怕我现在没法和你谈话。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "执法官,我不是这里管事的。" +msgid "Ma'am" +msgstr "女士" #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "执法官,我想你该向我领导问这些问题。" +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "嘿小姐,难道你不觉得应该和我一起才更安全么?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me…" @@ -174455,14 +170801,15 @@ msgid "I've no use for weaklings. Run. Now." msgstr "我对弱者没兴趣。滚吧,立刻。" #: lang/json/talk_topic_from_json.py -msgid "Please, help me. I need food." -msgstr "拜托,帮帮我。我需要食物。" +msgid "" +"So, any luck with convincing the others to come on your crazy adventure yet?" +msgstr "那么,你说服其他人来参加你的疯狂冒险了吗?" #: lang/json/talk_topic_from_json.py msgid "" -"Please, help me. I need food. Aren't you their sheriff? Can't you help " -"me?" -msgstr "拜托,帮帮我。我需要食物。你不是他们的警长吗?你不能帮帮我吗?" +"I'm sorry to say it after all you've done for me, but… I don't suppose " +"you've got anything to eat?" +msgstr "我很抱歉,在你为了我做了那么多事后还……不过,你能给我点吃的吗?" #: lang/json/talk_topic_from_json.py msgid "Thank you again. I really appreciate the food." @@ -174470,14 +170817,13 @@ msgstr "再次感谢你。我真的很感激你给我这些食物。" #: lang/json/talk_topic_from_json.py msgid "" -"I'm sorry to say it after all you've done for me, but… I don't suppose " -"you've got anything to eat?" -msgstr "我很抱歉,在你为了我做了那么多事后还……不过,你能给我点吃的吗?" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "拜托,帮帮我。我需要食物。你不是他们的警长吗?你不能帮帮我吗?" #: lang/json/talk_topic_from_json.py -msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" -msgstr "那么,你说服其他人来参加你的疯狂冒险了吗?" +msgid "Please, help me. I need food." +msgstr "拜托,帮帮我。我需要食物。" #: lang/json/talk_topic_from_json.py msgid "" @@ -174496,15 +170842,15 @@ 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 "他们不让我进去。他们说他们已经满人了。他们让我在这露营,前提是我保持这里干净整洁,不惹事生非,但我实在是太饿了。" +"here as long as I keep it clean and don't make a fuss, but I'm reduced to " +"begging to survive." +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 reduced to " -"begging to survive." -msgstr "他们不让我进去。他们说他们已经满人了。他们让我在这露营,前提是我保持这里干净整洁,不惹事生非,但我只能乞讨为生。" +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "他们不让我进去。他们说他们已经满人了。他们让我在这露营,前提是我保持这里干净整洁,不惹事生非,但我实在是太饿了。" #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" @@ -174604,16 +170950,16 @@ msgid "" "hurry to face that again." msgstr "感谢你的好意,但是我宁愿在这里等待机会,也不想冒险离开这里了。我记得,我不想再面对它。" -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "对不起,我太饿了,不能做出这样的重大决定。" - #: lang/json/talk_topic_from_json.py msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " "think you realize how useless I am in this world." msgstr "这是个不错的提议,但我想我没法活着完成这次旅行。我想你没有意识到我在这个世界上有多没用。" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I'm too hungry to make a big decision like that." +msgstr "对不起,我太饿了,不能做出这样的重大决定。" + #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." msgstr "我可以保护你的安全。我带你去。" @@ -174659,15 +171005,15 @@ msgstr "好的!那我们走吧。" msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "我跟你说过硬纸板的事吗,朋友?你有吗?" +#: lang/json/talk_topic_from_json.py +msgid "We've done it! We've solved the list!" +msgstr "成功了!购物清单完成了!" + #: lang/json/talk_topic_from_json.py msgid "" "How's things with you? My cardboard collection is getting quite impressive." msgstr "近况如何?我收集的纸箱越来越多了!" -#: lang/json/talk_topic_from_json.py -msgid "We've done it! We've solved the list!" -msgstr "成功了!购物清单完成了!" - #: lang/json/talk_topic_from_json.py msgid "About that shopping list of yours…" msgstr "关于你的购物清单……" @@ -174696,16 +171042,16 @@ msgstr "你真的就这么穿着恐龙套装吗?" msgid "Do you need something to eat?" msgstr "你需要吃点什么吗?" +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "哦,太好了。嘎吱嘎吱作响。很酷,很酷。" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, I'm real hungry and they put drugs in most of the food. I can see " "you're not like that." msgstr "是的,我真的很饿,他们在大部分食物里都放了毒品。我看得出来你不是那样的。" -#: lang/json/talk_topic_from_json.py -msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." -msgstr "哦,太好了。嘎吱嘎吱作响。很酷,很酷。" - #: lang/json/talk_topic_from_json.py msgid "Actually can I ask you something else?" msgstr "我能问你点别的事吗?" @@ -174796,6 +171142,12 @@ msgid "" "have shields up, to protect ourselves." msgstr "你问我能看见什么,但我不知道你能看到些什么。有时候我们会竖起盾牌,来保护自己。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well… I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "嗯……从前一切都很美好,但其他人都走了,而现在的主管不让我建我的避难所了。你能帮帮我吗?" + #: lang/json/talk_topic_from_json.py msgid "" "That's it! I'm just gonna need a little time to get it all set up. Thanks." @@ -174803,12 +171155,6 @@ msgid "" "keep me going." msgstr "就是这样!我需要一点时间把它们布置好,谢谢你,你帮了我大忙,我有自信去完成这些事情。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well… I had it all pretty together, but the others have left, and now the " -"masters won't let me build my sanctuary. Can you help me figure them out?" -msgstr "嗯……从前一切都很美好,但其他人都走了,而现在的主管不让我建我的避难所了。你能帮帮我吗?" - #: lang/json/talk_topic_from_json.py msgid "" "Why don't you leave this place? Come with me, I could use some help out " @@ -174826,19 +171172,16 @@ msgid "" msgstr "不!我才刚刚把所有的东西收集全。我不会走的,至少现在不会。我终于把它们全部凑齐了!" #: lang/json/talk_topic_from_json.py -msgid "Don't bother with these assholes." -msgstr "别理那些混蛋们。" +msgid "Fuck off, dickwaddle." +msgstr "滚开,屌人。" #: lang/json/talk_topic_from_json.py -msgid "Hey there, not-asshole. Good to see you again." -msgstr "嘿,不是混蛋的家伙。很高兴再次见到你。" +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgstr "哟。其他人愿意从这个公共汽车站搬到你的帐篷城吗?" #: lang/json/talk_topic_from_json.py -msgid "" -"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " -"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" -" cranky. We cool?" -msgstr "听着,之前我不该大发脾气的。你也许是个混蛋,但我相信你那会儿不是故意的。我的血糖太低了,有点暴躁。我们还能友好相处吧?" +msgid "Hey there. Good to see you again." +msgstr "嗨你好,很高兴再次见到你。" #: lang/json/talk_topic_from_json.py msgid "" @@ -174847,16 +171190,19 @@ msgid "" msgstr "当心点,我这会正饿着,可能控制不住自己的脾气。" #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." -msgstr "嗨你好,很高兴再次见到你。" +msgid "" +"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " +"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" +" cranky. We cool?" +msgstr "听着,之前我不该大发脾气的。你也许是个混蛋,但我相信你那会儿不是故意的。我的血糖太低了,有点暴躁。我们还能友好相处吧?" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" -msgstr "哟。其他人愿意从这个公共汽车站搬到你的帐篷城吗?" +msgid "Hey there, not-asshole. Good to see you again." +msgstr "嘿,不是混蛋的家伙。很高兴再次见到你。" #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." -msgstr "滚开,屌人。" +msgid "Don't bother with these assholes." +msgstr "别理那些混蛋们。" #: lang/json/talk_topic_from_json.py msgid "What's up?" @@ -175153,12 +171499,6 @@ msgid "" "that?" msgstr "这会非常危险,我冒这个险有什么好处?" -#: lang/json/talk_topic_from_json.py -msgid "" -"I dunno, scientific interest? If you don't bring me anything, no worries. " -"I'm positively swimming in entertainment here, as you can see." -msgstr "我不知道,科学兴趣?如果你不给我带任何东西,不用担心。正如你所看到的,我在这里完全沉浸在娱乐之中。" - #: lang/json/talk_topic_from_json.py msgid "" "If you get me a sample, I'll join your crazy camp expedition. Hell, if you " @@ -175168,6 +171508,12 @@ msgid "" msgstr "" "如果你带个样本来给我,我就会加入你疯狂的营地探险队。见鬼,如果你给我拿个样本,也许我会帮你建立一个实验室来研究那东西。带来什么样的都可以,但如果这东西真的像你说的那样危险的话,最好带来的不是它的孢子体。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "我不知道,科学兴趣?如果你不给我带任何东西,不用担心。正如你所看到的,我在这里完全沉浸在娱乐之中。" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "真巧,我现在就随身带着一大块真菌。" @@ -175216,14 +171562,14 @@ msgstr "很好。我们走吧,我想多看看这些疯狂的蘑菇。" msgid "I'll see what I can do." msgstr "我看看能做些什么。" -#: lang/json/talk_topic_from_json.py -msgid "Hey, are you a big fan of survival of the fittest?" -msgstr "嘿,你相信适者生存吗?" - #: lang/json/talk_topic_from_json.py msgid "Thanks again for the grub, my friend." msgstr "再次感谢你的帮助,我的朋友。" +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "嘿,你相信适者生存吗?" + #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" msgstr "你为什么这么问?" @@ -175240,18 +171586,18 @@ msgstr "很高兴见到你,怎么了?" msgid "Nice to see you. I gotta be going though." msgstr "很高兴见到你。不过我得走了。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " -"Help a poor sickly soul out?" -msgstr "因为我肯定不适合,所以我现在正坐在这里等着被饿死呢。帮帮我这个得病的可怜人吧?" - #: lang/json/talk_topic_from_json.py msgid "" "Oh you know, the usual: sittin' out here until I starve to death, playin' " "cards with Dave, that kinda thing." msgstr "哦,你知道的,和平时一样:坐在这里直到饿死,和戴夫玩牌,诸如此类的事。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" +msgstr "因为我肯定不适合,所以我现在正坐在这里等着被饿死呢。帮帮我这个得病的可怜人吧?" + #: lang/json/talk_topic_from_json.py msgid "I could maybe help you out… want something to eat?" msgstr "我也许能帮你……想吃点什么吗?" @@ -175272,15 +171618,15 @@ msgstr "你如果你得了重病,那你还怎么可能来到这里的?" msgid "Why are you camped out here if they won't let you in?" msgstr "既然他们不让你进去,你为什么还要在这里扎营?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "太好了,你真是个好人。" + #: lang/json/talk_topic_from_json.py msgid "" "Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." msgstr "噢!哇哦!你真是个好人,知道吗?你光有这个想法就很谢谢了。" -#: lang/json/talk_topic_from_json.py -msgid "That's awful kind of you, you really are a wonderful person." -msgstr "太好了,你真是个好人。" - #: lang/json/talk_topic_from_json.py msgid "" "It's good to know there are still people like you in the world, it really " @@ -175560,10 +171906,6 @@ msgstr "好,出发吧。" msgid "What's your take on the situation here?" msgstr "你对这里的情况还有什么看法?" -#: lang/json/talk_topic_from_json.py -msgid "Oh, uh… hi. You look new. I'm Aleesha." -msgstr "哦,呃……嗨。你看上去是新来的。我叫阿莱莎。" - #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." msgstr "哦,嗨,又是你。" @@ -175576,6 +171918,10 @@ msgstr "你回来了,还活着!哇哦。" msgid "Aw hey, look who's back." msgstr "哦嗨,看看谁回来了。" +#: lang/json/talk_topic_from_json.py +msgid "Oh, uh… hi. You look new. I'm Aleesha." +msgstr "哦,呃……嗨。你看上去是新来的。我叫阿莱莎。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" msgstr "很高兴见到你,孩子。怎么了?" @@ -175593,16 +171939,16 @@ msgid "Hi Aleesha. I can't stay to talk." msgstr "你好,阿莱莎。我不能留下来说话。" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm fourteen." -msgstr "我可不是个孩子了,好吗?我十四岁了。" +msgid "I'm not a kid, okay? I'm sixteen." +msgstr "我可不是个孩子了,好吗?我十六岁了。" #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." msgstr "我可不是个孩子了,好吗?我十五岁了。" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm sixteen." -msgstr "我可不是个孩子了,好吗?我十六岁了。" +msgid "I'm not a kid, okay? I'm fourteen." +msgstr "我可不是个孩子了,好吗?我十四岁了。" #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" @@ -175612,15 +171958,6 @@ msgstr "抱歉,我这么说没别的意思。怎么了?" msgid "Sorry, I didn't mean anything by it. I'll be on my way." msgstr "抱歉,我这么说没别的意思。我马上就走。" -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know what's up. I'm not sure what we've even doing here. They say " -"we're supposed to wait until we can be moved to the shelter downstairs, but " -"we've been here days and there's no word on how long we'll be waiting. It's" -" all so stupid, and nobody can tell me anything." -msgstr "" -"我不知道这一切是怎么了。我甚至不知道我们在这里该做些什么。他们说我们应该先在这等,直到我们被转移到楼下的避难所里,但是我们已经在这里好几天了,还没有任何消息说我们还会等多久。这一切都太蠢了,而且没人能给我个解释。" - #: lang/json/talk_topic_from_json.py msgid "" "We're just standing around here waiting, like a bunch of idiots. We're " @@ -175631,6 +171968,15 @@ msgid "" msgstr "" "我们现在只能站在这里等着,就像一群傻子一样。我们本应该等着下楼去避难所里,但已经过了一个多月了。我可不认为我们还能下去。我也不知道我们能在这里做什么。这里所有的书我都读完了,而外面全是丧尸,所以我们被困在这里了。我们可以在晚上听到它们的声音。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't know what's up. I'm not sure what we've even doing here. They say " +"we're supposed to wait until we can be moved to the shelter downstairs, but " +"we've been here days and there's no word on how long we'll be waiting. It's" +" all so stupid, and nobody can tell me anything." +msgstr "" +"我不知道这一切是怎么了。我甚至不知道我们在这里该做些什么。他们说我们应该先在这等,直到我们被转移到楼下的避难所里,但是我们已经在这里好几天了,还没有任何消息说我们还会等多久。这一切都太蠢了,而且没人能给我个解释。" + #: lang/json/talk_topic_from_json.py msgid "" "You can't just go asking people questions like that nowadays. I'm a " @@ -175670,9 +172016,8 @@ msgid "" msgstr "[感知10]你怎么了?为什么要用假口音和第三人称说话?" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." -msgstr "哦,天哪,您可真是位漂亮的女士,很高兴见到您。他们叫我阿隆索。" +msgid "Hello again, gorgeous" +msgstr "你好啊,又见面了。" #: lang/json/talk_topic_from_json.py msgid "" @@ -175681,8 +172026,9 @@ msgid "" msgstr "哦,天哪,很高兴看到这里有这么一个强壮英俊的家伙。他们叫我阿隆索。" #: lang/json/talk_topic_from_json.py -msgid "Hello again, gorgeous" -msgstr "你好啊,又见面了。" +msgid "" +"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." +msgstr "哦,天哪,您可真是位漂亮的女士,很高兴见到您。他们叫我阿隆索。" #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Alonso." @@ -175709,6 +172055,11 @@ msgstr "我也很高兴认识你。您真好,在这个中心呆久了会很孤 msgid "Actually I'm just heading out." msgstr "实际上,我该走了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, it's a lot better now that you're here. Nice to see a familiar face." +msgstr "好吧,有你在这里就好受多了。很高兴能看到一张熟悉的脸。" + #: lang/json/talk_topic_from_json.py msgid "" "Now that you are here, everything. Is there anything Alonso can… *do for " @@ -175716,31 +172067,26 @@ msgid "" msgstr "既然您来了,一切都好。阿隆索能如何……*为您效劳*呢?" #: lang/json/talk_topic_from_json.py -msgid "" -"Well, it's a lot better now that you're here. Nice to see a familiar face." -msgstr "好吧,有你在这里就好受多了。很高兴能看到一张熟悉的脸。" +msgid "You know me, I gotta be me, right?" +msgstr "你了解我的,我必须做我自己,对吧?" #: lang/json/talk_topic_from_json.py msgid "Alonso cannot help himself, in the face of someone so fine as you." msgstr "阿隆索无法自拔,在如此优秀之人面前。" -#: lang/json/talk_topic_from_json.py -msgid "You know me, I gotta be me, right?" -msgstr "你了解我的,我必须做我自己,对吧?" - #: lang/json/talk_topic_from_json.py msgid "" -"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " +"Aw man, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." -msgstr "小妞,你为什么要这样?我只是想弄点神秘感,好吗?没人愿意和一个来自布鲁克林的淫荡的家伙在一起,但神秘的阿隆索那就另当别论了。" +msgstr "伙计,你为什么要这样?我只是想弄点神秘感,好吗?没人愿意和一个来自布鲁克林的淫荡的家伙在一起,但神秘的阿隆索那就另当别论了。" #: lang/json/talk_topic_from_json.py msgid "" -"Aw man, why you gotta be like that? I'm just tryin' to get an air of " +"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." -msgstr "伙计,你为什么要这样?我只是想弄点神秘感,好吗?没人愿意和一个来自布鲁克林的淫荡的家伙在一起,但神秘的阿隆索那就另当别论了。" +msgstr "小妞,你为什么要这样?我只是想弄点神秘感,好吗?没人愿意和一个来自布鲁克林的淫荡的家伙在一起,但神秘的阿隆索那就另当别论了。" #: lang/json/talk_topic_from_json.py msgid "And how is that working out for you?" @@ -175766,12 +172112,6 @@ msgstr "好吧。帮你个忙,我会试着成为那个布鲁克林的小子的 msgid "Thanks. I'd better get going." msgstr "谢谢。我得走了。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Alonso does not wish to talk about the past, only the future. There are " -"dark days ahead, but perhaps together we can bring a little light?" -msgstr "阿隆索不愿谈论过去,只想讨论未来。前方的日子会非常黑暗,但是我们在一起或许可以带来一些光明。" - #: lang/json/talk_topic_from_json.py msgid "" "I'm tryin' ta forget, y'know? Don't like thinkin' about the past. Better " @@ -175780,9 +172120,9 @@ msgstr "你知道吗?我在试着忘记过去。我不喜欢回忆,最好为 #: lang/json/talk_topic_from_json.py msgid "" -"Here in the center, Alonso is a bit lonely. We get a few brave, strong " -"travelers like yourself, though, and seeing them brightens Alonso's day." -msgstr "在这个中心,阿隆索有点孤单。不过,我们有几个像你一样勇敢、坚强的旅行者,看到他们会让阿隆索的生活变得更加光明。" +"Alonso does not wish to talk about the past, only the future. There are " +"dark days ahead, but perhaps together we can bring a little light?" +msgstr "阿隆索不愿谈论过去,只想讨论未来。前方的日子会非常黑暗,但是我们在一起或许可以带来一些光明。" #: lang/json/talk_topic_from_json.py msgid "" @@ -175791,8 +172131,10 @@ msgid "" msgstr "本可更好。我在这个中心并无几个好友,但是看到像你这样的旅行者总能照亮我的心房。" #: lang/json/talk_topic_from_json.py -msgid "Ah, another new face. Hello. I am Boris." -msgstr "又一个新面孔。你好。我是鲍里斯。" +msgid "" +"Here in the center, Alonso is a bit lonely. We get a few brave, strong " +"travelers like yourself, though, and seeing them brightens Alonso's day." +msgstr "在这个中心,阿隆索有点孤单。不过,我们有几个像你一样勇敢、坚强的旅行者,看到他们会让阿隆索的生活变得更加光明。" #: lang/json/talk_topic_from_json.py msgid "Well, well. I'm glad you are back." @@ -175806,6 +172148,10 @@ msgstr "你好啊,我的朋友,又见面了。" msgid "It is good to see you again." msgstr "很高兴再次见到你。" +#: lang/json/talk_topic_from_json.py +msgid "Ah, another new face. Hello. I am Boris." +msgstr "又一个新面孔。你好。我是鲍里斯。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." msgstr "很高兴见到你,鲍里斯。" @@ -175874,6 +172220,13 @@ msgstr "对不起。你之前说什么了?" msgid "I'm sorry. I'd better get going." msgstr "对不起。我得走了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, now that you mention it, with the back bay cleared I could probably " +"set up back there and start work. I'll think about it, get back to me " +"later." +msgstr "好吧,你这么一说我才想到,现在后院清理干净了,我也许可以在那里安顿下来开始工作了。我会考虑一下,回头再找我。" + #: lang/json/talk_topic_from_json.py msgid "" "There isn't much to do with a hammer and a saw here indoors, and working " @@ -175885,13 +172238,6 @@ msgid "" msgstr "" "在室内工作的话,锤子和锯子帮不上什么忙,在室外工作的话,又太危险了。如果有足够的空间让我开工的话,我可以在这里建一些隐私帘。我试过在车库里开间小商店,但每次商队来的时候,我都不得不把所有的东西拆掉搬走,以便让大篷车装卸货物,最后什么也完不成。商队给我们带来食物,所以他们有优先权,这点我不能否认。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, now that you mention it, with the back bay cleared I could probably " -"set up back there and start work. I'll think about it, get back to me " -"later." -msgstr "好吧,你这么一说我才想到,现在后院清理干净了,我也许可以在那里安顿下来开始工作了。我会考虑一下,回头再找我。" - #: lang/json/talk_topic_from_json.py msgid "" "Everyone agrees this is bad. Sleeping on a cot on the floor, crowded in " @@ -175921,10 +172267,6 @@ msgstr "关于你让我找的那个酸面团……" msgid "Got any more bread I can trade flour for?" msgstr "我还能用面粉换面包吗?" -#: lang/json/talk_topic_from_json.py -msgid "Hi there. I'm Dana, nice to see a new face." -msgstr "你好啊。我叫达娜,很高兴看到一张新面孔。" - #: lang/json/talk_topic_from_json.py msgid "Hello, nice to see you again." msgstr "哈喽,很高兴又见到你了。" @@ -175933,6 +172275,10 @@ msgstr "哈喽,很高兴又见到你了。" msgid "It's good to see you're still around." msgstr "很高兴看到你还在。" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. I'm Dana, nice to see a new face." +msgstr "你好啊。我叫达娜,很高兴看到一张新面孔。" + #: lang/json/talk_topic_from_json.py msgid "Dana, hey? Nice to meet you." msgstr "达娜,是吗?很高兴见到你。" @@ -175983,11 +172329,9 @@ msgstr "听到你的损失我很难过。" #: lang/json/talk_topic_from_json.py msgid "" -"I do a bit. I got a sourdough starter going almost as soon as I arrived, " -"and it's making passable bread already. I cooked some up yesterday " -"actually, I could probably trade a loaf of fresh bread for, say, about eight" -" cups of flour." -msgstr "有一些。我刚到的时候就做了个酸面团,现在已经可以开始做出不错的面包了。实际上我昨天就已经做了一些,我可以用一块面包跟你交换,嗯,八杯面粉。" +"Not since I last saw you, sorry. Come by in another day or two and I'll try" +" to keep a loaf set aside for you, but they disappear fast." +msgstr "自从上次见你之后还没有,很抱歉。过一两天再来吧,我尽量给你留块面包,它们在这很容易消失不见。" #: lang/json/talk_topic_from_json.py msgid "" @@ -175997,9 +172341,11 @@ msgstr "当然,如果你有八杯面粉给我,我很乐意再换给你一块 #: lang/json/talk_topic_from_json.py msgid "" -"Not since I last saw you, sorry. Come by in another day or two and I'll try" -" to keep a loaf set aside for you, but they disappear fast." -msgstr "自从上次见你之后还没有,很抱歉。过一两天再来吧,我尽量给你留块面包,它们在这很容易消失不见。" +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight" +" cups of flour." +msgstr "有一些。我刚到的时候就做了个酸面团,现在已经可以开始做出不错的面包了。实际上我昨天就已经做了一些,我可以用一块面包跟你交换,嗯,八杯面粉。" #: lang/json/talk_topic_from_json.py msgid "That sounds like a great deal, here's some flour for you." @@ -176020,12 +172366,6 @@ msgid "" "that's a lot more than most." msgstr "谢谢你这么说。我已经尽力放下它了……虽然很心痛,但这件事情原本会更严重的。至少巴勃罗和我还在一起,这已经比这里大多数人都好得多了。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " -"not too bad honestly. Everyone here seems to like it." -msgstr "太棒了,这是我做的在本地闻名、但不是很成熟的酸面包。老实说,味道还行。这里的每个人似乎都喜欢它。" - #: lang/json/talk_topic_from_json.py msgid "" "Great, here's a loaf of the best damn sourdough bread in the world. I used " @@ -176047,6 +172387,12 @@ msgid "" "now." msgstr "希望你和我一样喜欢它,这是现在世界上最好的面包了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "太棒了,这是我做的在本地闻名、但不是很成熟的酸面包。老实说,味道还行。这里的每个人似乎都喜欢它。" + #: lang/json/talk_topic_from_json.py msgid "" "You seem pretty unhappy about the quality of your bread. Is there something" @@ -176078,6 +172424,10 @@ msgid "" msgstr "" "即使情况最好时,这里的气氛也很紧张。我们并不是互相了解,所以不是所有人都能相处得很好。我喜欢珍妮和法蒂玛,但仅靠我们三个幸运的有朋友在这里,并不能弥补我们被一堆不熟悉的面孔包围在一个狭小的空间内。有人要杀人了,记住我的话。" +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "你去农场问过关于工作的事了吗?" + #: lang/json/talk_topic_from_json.py msgid "" "Huh. I've made a few friends here, but not so much as I'd stick around here" @@ -176086,10 +172436,6 @@ msgid "" msgstr "" "嗯。我在这里交了几个朋友,但并没有深交,因为我可不想在这里待得更久,特别是没有前途未来,只能指望楼下有人死掉腾出地方的情况下。如果他们真的想要更多人手的话,那听起来确实不错。" -#: lang/json/talk_topic_from_json.py -msgid "Have you heard anything back from the ranch about jobs yet?" -msgstr "你去农场问过关于工作的事了吗?" - #: lang/json/talk_topic_from_json.py msgid "" "I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " @@ -176128,16 +172474,16 @@ msgid "" msgstr "" "巴勃罗总是快我一步。我们正想要个孩子,你知道吗?我知道目前这个想法看上去非常疯狂,但是我不会改变计划!你听我说好了:只要你的营地有个医生和一些医疗设备,以防我再次怀孕,我会考虑离开这里去你的营地的。" +#: lang/json/talk_topic_from_json.py +msgid "Always good to see you, friend." +msgstr "朋友,总是很高兴见到你。" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, good to see another new face! Welcome to the center, friend, I'm " "Draco." msgstr "看呐,很高兴看到另一张新面孔! 欢迎来到中心,朋友,我是德拉科。" -#: lang/json/talk_topic_from_json.py -msgid "Always good to see you, friend." -msgstr "朋友,总是很高兴见到你。" - #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Draco." msgstr "很高兴认识你,德拉科。" @@ -176378,15 +172724,15 @@ msgstr "也许我能帮你点忙?" msgid "Well then, I'll leave you here where it's safe." msgstr "好吧,那你就留在个安全港里吧,我该走了。" -#: lang/json/talk_topic_from_json.py -msgid "Man, just imagine what I could do with a new guitar." -msgstr "拜托,想象一下我有一把新吉他之后能做的事情。" - #: lang/json/talk_topic_from_json.py msgid "" "My savior! My patron of the arts! You're always welcome here, friend." msgstr "我的救星!我的艺术赞助人!这里随时欢迎你,朋友。" +#: lang/json/talk_topic_from_json.py +msgid "Man, just imagine what I could do with a new guitar." +msgstr "拜托,想象一下我有一把新吉他之后能做的事情。" + #: lang/json/talk_topic_from_json.py msgid "Let's talk about getting you that guitar." msgstr "我们谈谈那把吉他的事。" @@ -176483,18 +172829,18 @@ msgstr "我可以帮忙。" msgid "Find somebody else, dude." msgstr "去找别人吧,伙计。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " -"up some Merch bucks for, say, five joints or joints-worth of the good stuff." -msgstr "太棒了!今天是我的幸运日。让我看看,我能给你些什么……我能替你搜集商币,只要你给我5根大麻烟,或者是等价的叶子。" - #: lang/json/talk_topic_from_json.py msgid "" "Yeah, no worries, though. I'm good at the moment. Ask me again later and " "maybe I'll have scrounged up some more cash for you." msgstr "好的,不过现在不急。我现在还能撑一阵子。过段时间再问我,也许那会儿我能筹到足够商币给你。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " +"up some Merch bucks for, say, five joints or joints-worth of the good stuff." +msgstr "太棒了!今天是我的幸运日。让我看看,我能给你些什么……我能替你搜集商币,只要你给我5根大麻烟,或者是等价的叶子。" + #: lang/json/talk_topic_from_json.py msgid "You have yourself a deal. Here's the marijuana." msgstr "成交了,这是你的叶子。" @@ -176543,12 +172889,6 @@ msgstr "你是怎么到这里来的?" msgid "Is there anything I can do to help you out?" msgstr "我能帮你什么忙吗?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " -"meet new people but there are no beds to share." -msgstr "嘿,新面孔。我是法蒂玛。我希望你只是来看看的,认识新朋友很好,但是我们没有多余的床位可以分享了。" - #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "你好,又见面了。" @@ -176561,6 +172901,12 @@ msgstr "很高兴看到你还在。" msgid "Oh, hi." msgstr "哦,嗨。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "嘿,新面孔。我是法蒂玛。我希望你只是来看看的,认识新朋友很好,但是我们没有多余的床位可以分享了。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you too, Fatima. I'm just passing through." msgstr "很高兴见到你,法蒂玛。我只是路过。" @@ -176627,10 +172973,6 @@ msgid "" msgstr "" "这里气氛很紧张。我想要是我的技能能够派上用场,或是有个安静祈祷的地方的话,我会感觉好很多。在公共场所祈祷有点让我难为情。珍妮在谈论她的一些项目想法,那可以让我重新开始工作,但是我得说外出工作让我感到非常紧张。" -#: lang/json/talk_topic_from_json.py -msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." -msgstr "你好,你好。我是加里,加里·维伦纽夫。" - #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "哦,你好。" @@ -176639,6 +172981,10 @@ msgstr "哦,你好。" msgid "Good to see you again." msgstr "很高兴再次见到你。" +#: lang/json/talk_topic_from_json.py +msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." +msgstr "你好,你好。我是加里,加里·维伦纽夫。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Garry." msgstr "很高兴认识你,加里。" @@ -176704,12 +173050,6 @@ msgid "" msgstr "" "这里气氛紧绷,我不知道怎么办。斯坦、鲍里斯和我都很保守。我想我们还是应该了解这里的其他人。一开始我以为我们只是暂时留在这儿,但现在看来我们要在这里呆很长时间了。如果我们能活那么久的话。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " -"call me Gunny." -msgstr "哦,你好。我想我以前没见过你。我是甘尼特,大伙都叫我甘尼。" - #: lang/json/talk_topic_from_json.py msgid "Hi." msgstr "嗨。" @@ -176718,6 +173058,12 @@ msgstr "嗨。" msgid "Hey again." msgstr "嘿,又来了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " +"call me Gunny." +msgstr "哦,你好。我想我以前没见过你。我是甘尼特,大伙都叫我甘尼。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Gunny." msgstr "很高兴见到你,甘尼。" @@ -176766,15 +173112,15 @@ msgid "" msgstr "" "这里糟透了,毫无疑问。其他人仅仅是因为我们戴着头巾而且家庭完整而不愿意同我们说话。他们认为我们既然家庭完整,就没有失去任何东西。我爸也相信这说法,而且我想我妈也对此犹豫不决。" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you again." +msgstr "很高兴又见到你了。" + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." msgstr "那边那位,你好啊。以前从没在这见过你。我叫珍妮,珍妮 福斯特。" -#: lang/json/talk_topic_from_json.py -msgid "Nice to see you again." -msgstr "很高兴又见到你了。" - #: lang/json/talk_topic_from_json.py msgid "Nice meeting you. What are you doing on that computer?" msgstr "很高兴认识你。你对着那台电脑做什么?" @@ -176935,16 +173281,6 @@ msgid "" msgstr "" "情况越来越糟了。我们已经在这里呆了几个月了,没有任何变化,也没有任何改善。我们不能出去,我们没有足够的食物,也没有选择,只能各自呆在一起。我不知道在有人崩溃之前我们还能这样呆上多久。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a bunch of us. We're starting to form a bit of a community. " -"Fatima and I work together a fair bit, and I've been hanging out with Dana, " -"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " -"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " -"What did you want to know?" -msgstr "" -"嗯,我们有很多人。我们开始形成一个社区了。法蒂玛和我在一起工作了不少次,我经常和达娜、德拉科和阿莱莎在一起。我不太了解波里申科那伙人、或是辛格一家、或是瓦内萨、陈宛或是莱泽尔,但我们已经谈得够多了。你想知道些什么?" - #: lang/json/talk_topic_from_json.py msgid "" "For better or worse, we're a community now. Fatima and I work together a " @@ -176958,6 +173294,16 @@ msgid "" msgstr "" "不管好坏,我们现在是一个社区。法蒂玛和我在一起工作了不少次,而且我认为达娜、德拉科和阿莱莎能称得上是我的朋友,我也自然而然地认识了她丈夫佩德罗。而波里申科一家和我们其他人一样,都是乱七八糟拼成的团队。辛格一家彼此相依为命,但不怎么和其他人来往。瓦内萨和我意见不一,但能有她在我还是很高兴。陈宛和莱泽尔总是为领导层的决定争吵,好像他们决定得了似的。你想知道什么?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" +"嗯,我们有很多人。我们开始形成一个社区了。法蒂玛和我在一起工作了不少次,我经常和达娜、德拉科和阿莱莎在一起。我不太了解波里申科那伙人、或是辛格一家、或是瓦内萨、陈宛或是莱泽尔,但我们已经谈得够多了。你想知道些什么?" + #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" msgstr "你能跟我说说关于自由商会的事情吗?" @@ -177027,15 +173373,6 @@ msgstr "" "嗯,达娜在 " "发生之后不久就失去了她的孩子,大巴翻车了。她很幸运活了下来。我想,她和佩德罗在这里之前经历了一次比我们更艰难的旅行。我们只是刚刚成为朋友,但我很高兴这里还有其他我能真心相处的人。她的丈夫佩德罗还是被吓坏了。他不怎么说话。不过,我喜欢他,每次他开口说话都很搞笑。德拉科只是一个脾气古怪的老家伙,但他还没有真正变老,再给他二十年才会真的变老。我喜欢脾气古怪的老小孩。我们之间的音乐品味也相当相似。阿莱莎是个可爱的孩子,我们大家现在都像是收养了她一般,但她似乎最喜欢和我和达娜在一起。她是一个伟大的艺术家,脑子里充满了疯狂的想法。我想我喜欢她是因为我们所有人中,她似乎最充满希望,一个美好未来的希望。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Boris and Garry are married, I guess. They kinda keep to themselves, they " -"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" -" I'm not totally sure. He seems nice enough, but he's a man of few words. " -"I can't get a good bead on them. I've learned not to pry too much though." -msgstr "" -"我猜鲍里斯和加里应该是夫妻。他们不和别人来往,如果你问我,他们似乎有点冷漠。斯坦是鲍里斯的弟弟,猜的,我也不完全确定。他看起来很好,但是个沉默寡言的人。我对他们不是很了解。不过,我学会了不要多管闲事。" - #: lang/json/talk_topic_from_json.py msgid "" "I didn't get to know Boris, Garry, and Stan so well for the first while. " @@ -177049,12 +173386,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I really can't get a bead on them. They never really talk to anyone outside" -" of their little family group, they just sit in their own spot and speak " -"Punjabi. They always seem nice, and they do their share, they just don't " -"have any social connection." +"Boris and Garry are married, I guess. They kinda keep to themselves, they " +"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" +" I'm not totally sure. He seems nice enough, but he's a man of few words. " +"I can't get a good bead on them. I've learned not to pry too much though." msgstr "" -"我真的不了解他们的事情。除了自己小家庭里的人外,他们从来没有真正和其他任何人交谈过,他们只是坐在自己的角落里说旁遮普语。他们总是看起来很友善,他们做他们份内的事情,只是他们没有其他的社交关系。" +"我猜鲍里斯和加里应该是夫妻。他们不和别人来往,如果你问我,他们似乎有点冷漠。斯坦是鲍里斯的弟弟,猜的,我也不完全确定。他看起来很好,但是个沉默寡言的人。我对他们不是很了解。不过,我学会了不要多管闲事。" #: lang/json/talk_topic_from_json.py msgid "" @@ -177069,16 +173406,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " -"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " -"both seem to want to run the show here, but I try to stay out of those " -"politics and just focus on building stuff. I don't see much good coming of " -"it. Alonso is fine, he's clearly interested in me, and also in every other " -"single woman here. Not my thing, in a group this small. John is a walking " -"stereotype, I imagine there must be more depth to him, but I haven't seen it" -" yet." +"I really can't get a bead on them. They never really talk to anyone outside" +" of their little family group, they just sit in their own spot and speak " +"Punjabi. They always seem nice, and they do their share, they just don't " +"have any social connection." msgstr "" -"瓦内萨……嗯,她是个好人,大概吧。不过我得说,她有点让我发疯,但我们现在被绑在一起,所以我尽量不要太挑剔。尤恩和莱泽尔似乎都想在这里当老大,但我尽量避开那些政治活动,只专注于造东西。我看他们不会有什么好结果。阿隆索很好,他显然对我很感兴趣,他对这里的每个单身女人都有兴趣。在这个小社会里,不关我事。约翰总是一板一眼的老式做派,我想他应该有些更深的背景,但我还没有看到。" +"我真的不了解他们的事情。除了自己小家庭里的人外,他们从来没有真正和其他任何人交谈过,他们只是坐在自己的角落里说旁遮普语。他们总是看起来很友善,他们做他们份内的事情,只是他们没有其他的社交关系。" #: lang/json/talk_topic_from_json.py msgid "" @@ -177095,13 +173428,26 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." -msgstr "你好,伙计。他们叫俺克莱门斯。约翰·克莱门斯。俺是个老牛仔。" +"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " +"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " +"both seem to want to run the show here, but I try to stay out of those " +"politics and just focus on building stuff. I don't see much good coming of " +"it. Alonso is fine, he's clearly interested in me, and also in every other " +"single woman here. Not my thing, in a group this small. John is a walking " +"stereotype, I imagine there must be more depth to him, but I haven't seen it" +" yet." +msgstr "" +"瓦内萨……嗯,她是个好人,大概吧。不过我得说,她有点让我发疯,但我们现在被绑在一起,所以我尽量不要太挑剔。尤恩和莱泽尔似乎都想在这里当老大,但我尽量避开那些政治活动,只专注于造东西。我看他们不会有什么好结果。阿隆索很好,他显然对我很感兴趣,他对这里的每个单身女人都有兴趣。在这个小社会里,不关我事。约翰总是一板一眼的老式做派,我想他应该有些更深的背景,但我还没有看到。" #: lang/json/talk_topic_from_json.py msgid "Howdy, pardner." msgstr "你好,伙计。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +msgstr "你好,伙计。他们叫俺克莱门斯。约翰·克莱门斯。俺是个老牛仔。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, John." msgstr "很高兴见到你,约翰。" @@ -177155,14 +173501,14 @@ msgid "" "we got 'em, it's gonna be tense in here." msgstr "人们没法在没有蓝天的空间里呆太久。像被关在谷仓里的一头牛一样……如果还不懂,俺们需要新鲜空气。在此之前,气氛会很紧张。" -#: lang/json/talk_topic_from_json.py -msgid "Hello ma'am. I am Mandeep Singh." -msgstr "你好,女士。我是曼迪普·辛格。" - #: lang/json/talk_topic_from_json.py msgid "Hello sir. I am Mandeep Singh." msgstr "你好,先生。我是曼迪普·辛格。" +#: lang/json/talk_topic_from_json.py +msgid "Hello ma'am. I am Mandeep Singh." +msgstr "你好,女士。我是曼迪普·辛格。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Mandeep." msgstr "很高兴见到你,曼迪普。" @@ -177203,10 +173549,6 @@ msgid "" msgstr "" "很难说。这里没有人是快乐的。我感到有些人对我和我的家人安然无恙地在世界末日后幸存下来而感到妒忌。这件事,也许还有其他一些事情,使我们很难在这里交到亲密的朋友。" -#: lang/json/talk_topic_from_json.py -msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." -msgstr "啊!你是新来的。对不起,我是曼加普雷特。" - #: lang/json/talk_topic_from_json.py msgid "Hi there." msgstr "你好。" @@ -177215,6 +173557,10 @@ msgstr "你好。" msgid "Oh, hello there." msgstr "哦,你好。" +#: lang/json/talk_topic_from_json.py +msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." +msgstr "啊!你是新来的。对不起,我是曼加普雷特。" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Mangalpreet." msgstr "很高兴见到你,曼加普雷特。" @@ -177418,15 +173764,15 @@ msgstr "真的吗?我说不定会考虑那里的。跟我的妻子达娜谈谈 msgid "What brings you around here? We don't see a lot of new faces." msgstr "是什么风把你吹来的?我们这里很少见到新面孔。" +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "想聊聊吗?" + #: lang/json/talk_topic_from_json.py msgid "" "Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." msgstr "你好。我想我们以前没见过面。我是莱泽尔,人们叫我\"莱\"。" -#: lang/json/talk_topic_from_json.py -msgid "Need to talk?" -msgstr "想聊聊吗?" - #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Rhy." msgstr "很高兴见到你,莱。" @@ -177519,12 +173865,6 @@ msgstr "" msgid "Do you want to talk about your story?" msgstr "你想分享一下你的故事吗?" -#: lang/json/talk_topic_from_json.py -msgid "" -"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " -"Stan." -msgstr "你好,我很抱歉,如果我们之前见过面的话,我已经不记得了。我叫……我叫斯坦。" - #: lang/json/talk_topic_from_json.py msgid "Hm? Oh, hi." msgstr "哈?哦,嗨。" @@ -177533,6 +173873,12 @@ msgstr "哈?哦,嗨。" msgid "...Hi." msgstr "……嗨。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " +"Stan." +msgstr "你好,我很抱歉,如果我们之前见过面的话,我已经不记得了。我叫……我叫斯坦。" + #: lang/json/talk_topic_from_json.py msgid "Stan, hey? Nice to meet you." msgstr "斯坦,是吗?很高兴见到你。" @@ -177645,16 +173991,16 @@ msgstr "嗯……我能稍稍改变一下发型吗?" msgid "Hmm, can we change this shave a little please?" msgstr "嗯……我能稍稍改变一下须型吗?" +#: lang/json/talk_topic_from_json.py +msgid "Oh, you're back." +msgstr "哦,你回来了。" + #: lang/json/talk_topic_from_json.py msgid "" "Oh, great. Another new mouth to feed? Just what we need. Well, I'm " "Vanessa." msgstr "哦,太棒了。又来了张吃饭的嘴?好像我们正缺一样。好吧,我是瓦内萨。" -#: lang/json/talk_topic_from_json.py -msgid "Oh, you're back." -msgstr "哦,你回来了。" - #: lang/json/talk_topic_from_json.py msgid "I'm not a new mouth to feed, but nice to meet you too." msgstr "我可不是个只会吃干饭的新人,但也很高兴见到你。" @@ -177691,15 +174037,6 @@ msgstr "你真心想听的话,我可不想在当前一团糟的情况下谈论 msgid "Could you give me a haircut?" msgstr "你能给我理发吗?" -#: lang/json/talk_topic_from_json.py -msgid "" -"You want the sarcastic version, or the really sarcastic version? I'm stuck " -"in a dank shitty brick building with two dozen strangers, the world's dead, " -"and there's not enough food to go around. Why don't you fuckin' figure it " -"out?" -msgstr "" -"想听风凉话?还是特别风凉版的?我被困在一个又潮又烂的砖砌建筑物里,和两打陌生人待在一起,整个世界都死了,而且食物不足以支撑我四处走动。为啥你自己不去弄弄清楚?" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I'm stuck in a dank shitty brick building with two dozen strangers, " @@ -177709,6 +174046,15 @@ msgid "" msgstr "" "哦,我被困在一个又潮又烂的砖砌建筑物里,和两打陌生人待在一起,整个世界都死了,而且食物不足以支撑我四处走动。至少,这里工作能让我忙起来,而换来的商会币则充实了我的肚子——人们喜欢理发。" +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" +"想听风凉话?还是特别风凉版的?我被困在一个又潮又烂的砖砌建筑物里,和两打陌生人待在一起,整个世界都死了,而且食物不足以支撑我四处走动。为啥你自己不去弄弄清楚?" + #: lang/json/talk_topic_from_json.py msgid "" "I can see you need one, but last time I used these shears it was to stab a " @@ -177890,6 +174236,12 @@ msgid "" msgstr "" "是啊,情况很棘手。当我们刚来这里的时候,没有谁能真正主管全局,我们让太多的人进来了,这超出了我们能养活和支持的能力。当尘埃落定之后,我们建立了一个小小的秩序,现在楼上还有这么多多人在等待一个能住的地方,可我们已经没有空间了。我们尽量为他们安排了一些地方,但并不理想。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "是的,我不知道你做了什么来说服他们搬出去,但是我们的供应链和我都非常感谢你们。希望不会太不得体。" + #: lang/json/talk_topic_from_json.py msgid "" "Even once we got things sorted out, there weren't enough beds for everyone, " @@ -177898,12 +174250,6 @@ msgid "" msgstr "" "即使我们把这一切事情都解决了,这里也没有足够的床位给每个人,而且肯定也没有足够的补给。现在我们处境艰难。我们只能提供些力所能及的帮助……至少他们有个安全的地方呆着。" -#: lang/json/talk_topic_from_json.py -msgid "" -"I do. I don't know what you did to convince them to move out, but our " -"supply chain and I both thank you. I hope it wasn't too unseemly." -msgstr "是的,我不知道你做了什么来说服他们搬出去,但是我们的供应链和我都非常感谢你们。希望不会太不得体。" - #: lang/json/talk_topic_from_json.py msgid "" "Well, there's the downstairs section, we can't fit more people down there so" @@ -178262,14 +174608,14 @@ msgstr "文明点,否则我对你不客气。" msgid "Just on watch, move along." msgstr "我就是个站岗的。走开。" -#: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "女士,你真的不该到处乱跑。" - #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" msgstr "外面很难活下去,不是吗?" +#: lang/json/talk_topic_from_json.py +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "女士,你真的不该到处乱跑。" + #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center…" msgstr "我听说这是一个难民中心……" @@ -178298,14 +174644,14 @@ msgstr "我想你似乎正在寻求帮助……" msgid "Well, I'd better be going. Bye." msgstr "好吧,我最好先走了。再见。" -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "欢迎……" - #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." msgstr "欢迎您,执法官……" +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "欢迎……" + #: lang/json/talk_topic_from_json.py msgid "" "Before you say anything else, we're full. We don't have the space, nor the " @@ -178544,14 +174890,14 @@ msgid "" msgstr "" "不幸的是,没有。离开的大部分人原本就被困在楼上,他们所承担的风险已经比那些有张安全的床的人要小。地下室里只带出了几个人,当我们开始计划的时候地下室已经太拥挤了。我们希望有更多的人到农场去晒晒太阳,呼吸新鲜空气,干点苦活……但是你可能猜到了,人们更害怕被尸群袭击。" -#: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "你好,公民……" - #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "你好,执法官……" +#: lang/json/talk_topic_from_json.py +msgid "Citizen..." +msgstr "你好,公民……" + #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" msgstr "我能换点补给品吗?" @@ -178608,14 +174954,14 @@ msgid "" "buy from you. I don't suppose you want to donate?" msgstr "我们不能。我们这空不出什么可以卖的东西,我也没有任何从你手里买东西的预算。我想你不会免费赠送的吧?" -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "嗨,你看起来像个大人物。" - #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "你那闪亮亮的警徽可真漂亮啊!" +#: lang/json/talk_topic_from_json.py +msgid "Heh, you look important." +msgstr "嗨,你看起来像个大人物。" + #: lang/json/talk_topic_from_json.py msgid "I'm actually new." msgstr "我是新来的。" @@ -178687,16 +175033,16 @@ msgid "" msgstr "" "我不知道啊。不过要按我说,如果你能帮上忙的话,应该能成。但最近的风声很模糊,关键还是得看你问谁。如果我不是在卖东西的话,怕不是早被那个商人给赶出去了。不过……似乎也有例外的家伙。" -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate… mutations. This was an accident." -msgstr "嘘,小点声。这里有些人不欢迎……变种人。这是个意外,别问了。" - #: lang/json/talk_topic_from_json.py msgid "" "Same way you got yours, I bet. Keep quiet about it, some people here look " "down on people like us." msgstr "我打赌就和你得到你的那个一样。别声张,这里的有些人看不起像我们这样的人。" +#: lang/json/talk_topic_from_json.py +msgid "Ssh. Some people in here hate… mutations. This was an accident." +msgstr "嘘,小点声。这里有些人不欢迎……变种人。这是个意外,别问了。" + #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" msgstr "真抱歉不该问你" @@ -178724,22 +175070,22 @@ msgid "" "trade?" msgstr "我用你给我的硝酸铵做了些好东西。来做笔交易吗?" -#: lang/json/talk_topic_from_json.py -msgid "Screw You!" -msgstr "去你妈的!" - #: lang/json/talk_topic_from_json.py msgid "As if you're one to talk. Screw You." msgstr "好像你是能说话的人一样,滚。" #: lang/json/talk_topic_from_json.py -msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "嘿,我闻到了新来的家伙,我能帮你做点什么?" +msgid "Screw You!" +msgstr "去你妈的!" #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest… please don't arrest me." msgstr "我似乎闻到了一头蠢猪的味道。开玩笑的……你可别抓我。" +#: lang/json/talk_topic_from_json.py +msgid "Huh, thought I smelled someone new. Can I help you?" +msgstr "嘿,我闻到了新来的家伙,我能帮你做点什么?" + #: lang/json/talk_topic_from_json.py msgid "You… smelled me?" msgstr "你……闻到了我?" @@ -179017,16 +175363,6 @@ msgstr "我猜你是个大老板。" msgid "Glad to have you aboard." msgstr "欢迎入队。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Hold there. I don't care how you got access to this location, but you are " -"coming no further. Go away." -msgstr "站住。我不管你是怎么进来的,但你不能再往前走了。快离开。" - -#: lang/json/talk_topic_from_json.py -msgid "We haven't changed our mind. Go away." -msgstr "我们还没改变主意,快走开。" - #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" msgstr "所以,你需要什么吗?" @@ -179107,6 +175443,16 @@ msgstr "再说一遍?" msgid "If/you speak to/understand… you/me. Yes?" msgstr "如果……你想讲……理解……你……我。是吧?" +#: lang/json/talk_topic_from_json.py +msgid "We haven't changed our mind. Go away." +msgstr "我们还没改变主意,快走开。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hold there. I don't care how you got access to this location, but you are " +"coming no further. Go away." +msgstr "站住。我不管你是怎么进来的,但你不能再往前走了。快离开。" + #: lang/json/talk_topic_from_json.py msgid "Wait! What??" msgstr "等等!什么??" @@ -179388,14 +175734,6 @@ msgstr "啊,我可没空,对不起。" msgid "Keep it civil, merc." msgstr "文明举止,佣兵。" -#: lang/json/talk_topic_from_json.py -msgid "Here to trade, I hope?" -msgstr "我想,你是来交易的吧?" - -#: lang/json/talk_topic_from_json.py -msgid "Safe travels, scavenger." -msgstr "一路平安,拾荒者。" - #: lang/json/talk_topic_from_json.py msgid "" "Still plenty of outlaws in the roads, perhaps you should tend to your job, " @@ -179411,11 +175749,12 @@ msgid "Oh, a U.S. marshal, how quaint." msgstr "哦,一个联邦执法官,稀奇稀奇真稀奇。" #: lang/json/talk_topic_from_json.py -msgid "" -"We have been supplying this lab here with food from a few hunting and " -"farming communities nearby. The roads are though and dangerous, but it " -"makes good money, and beats scavenging the cities for scraps." -msgstr "我们从周围的猎人和农夫聚落手里收集食物,然后提供给这所实验室补给。道路艰难险阻,但获利颇丰,比起去城里搜寻那些残羹剩饭要强得多。" +msgid "Here to trade, I hope?" +msgstr "我想,你是来交易的吧?" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "一路平安,拾荒者。" #: lang/json/talk_topic_from_json.py msgid "" @@ -179423,6 +175762,13 @@ msgid "" "fair deal?" msgstr "车走车路,马走马路,各不相干,执法官。很公平不是吗?" +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "我们从周围的猎人和农夫聚落手里收集食物,然后提供给这所实验室补给。道路艰难险阻,但获利颇丰,比起去城里搜寻那些残羹剩饭要强得多。" + #: lang/json/talk_topic_from_json.py msgid "Keep safe, then." msgstr "那么,请注意安全。" @@ -179638,16 +175984,16 @@ msgid "I'll talk with them then…" msgstr "好吧,我会去跟他们谈谈……" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "早上好,女士,我能帮你什么忙吗?" +msgid "Can I help you, marshal?" +msgstr "有什么我可以效劳的吗,执法官?" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" msgstr "早上好,先生,我能帮你什么忙吗?" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "有什么我可以效劳的吗,执法官?" +msgid "Morning ma'am, how can I help you?" +msgstr "早上好,女士,我能帮你什么忙吗?" #: lang/json/talk_topic_from_json.py msgid "" @@ -179755,14 +176101,14 @@ msgstr "你有什么样的工作给我?" msgid "Not now." msgstr "现在还不行。" -#: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." -msgstr "如果你和你的同伴受伤了,我也能帮你看看。" - #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." msgstr "现在我有点事要做,待会再来吧。" +#: lang/json/talk_topic_from_json.py +msgid "I can take a look at you or your companions if you are injured." +msgstr "如果你和你的同伴受伤了,我也能帮你看看。" + #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." msgstr "[$200,30分钟]我需要你帮我治疗一下。" @@ -179956,7 +176302,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Only the insane will prosper, I guess." -msgstr "我想,也许只有疯子才能活下去吧。 " +msgstr "我想,也许只有疯子才能活下去吧。" #: lang/json/talk_topic_from_json.py msgid "" @@ -180031,10 +176377,6 @@ msgid "" msgstr "" "我们这里用加密币当钱用。这原本是一次大灾变前的尝试,目的是进一步抽象化货币,创造电子化的现金。现在看来这些实体加密币真是讽刺的很。但物物交换局限很大,而且总有一天我们会把网络重建起来的。" -#: lang/json/talk_topic_from_json.py -msgid "New test subjects! I'm so glad you showed up!" -msgstr "新的测试对象!我很高兴你出现了!" - #: lang/json/talk_topic_from_json.py msgid "What did you bring me?" msgstr "你给我带来了什么?" @@ -180043,6 +176385,10 @@ msgstr "你给我带来了什么?" msgid "Do you smell something?" msgstr "你闻到什么味道了吗?" +#: lang/json/talk_topic_from_json.py +msgid "New test subjects! I'm so glad you showed up!" +msgstr "新的测试对象!我很高兴你出现了!" + #: lang/json/talk_topic_from_json.py msgid "How did you get here?" msgstr "你怎么到这里来的?" @@ -180116,6 +176462,208 @@ msgstr "自从他们把我转到我自己专属的实验室后,我的研究进 msgid "This is not reassuring." msgstr "听上去这并不能让人放心。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more" +" fearsome enforcer." +msgstr "我接受了大企业付钱研发的实验性治疗手段,成为一个更可怕的执法者。" + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "你来自哪里?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "和我一起接受基因治疗的人死了一半,不过你想想,现在全世界的人得死了超过九成了吧?" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "然后呢?" + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "我想只有疯子才能活下去吧。" + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "结果怎么样了?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided" +" to use tactical nukes and buy time for the retreat." +msgstr "当政府决定放弃拯救那些已经深陷尸群包围的城市时,高层中有人决定使用战术核武器,为撤退争取时间。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "这在游荡在城里的尸群中炸出了一个缺口,让我得以逃脱。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "不过,每个抉择都有其后果。但如果这是那时候我唯一能活下来的方法,那么所有后果都是值得的。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "我那时候正在一个核反应堆里工作,有个巨大无比的怪物开始砸碎一切东西。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "我和我的同事通过让反应堆过载防止数十万人死亡。" + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "我想其他工人现在可能也都死了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that" +" were happening in the city, they were beneath me." +msgstr "" +"那会一切都很好。我在一家财阀公司有份很好的工作。我很受尊重,底下有不少人为我工作。我那时候基本上忽略了城市里正在发生的变化,它们一直都藏在我的脚下。" + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "那么,发生什么了?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security" +" notices piled up about routes through the city to avoid. Finally, one day " +"I came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" +"渐渐地,能来公司的隔间码农们越来越少了。关于城内应该避开的道路的安全警示越叠越多。最后,有天我一进公司就能听到暴乱越来越近,夹杂了一些动物的咆哮,巨大的动物。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only" +" chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" +"那是我呆在公司的最后一天了,安保队和科学家们从地下实验室赶过来,把公司里剩下的工作人员都召集起来。他们中的一个说这是我们唯一的生存机会。他们开始用枪指着强迫给我们注射了奇怪的药剂。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "在大灾变之前我是个生化黑客。我靠走私药品、毒品和仿造生化插件谋生。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "你可以想象一下,当我发现自己被某种外星干细胞感染时,我得有多惊讶。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "到目前为止,它确实帮助我活了下来。我难道还有得选吗?" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "我是为了成为一名亿万富翁的同伴而被创造出来的。" + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "他们的财富和人脉并没有拯救他们。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"But they built me with the ability to survive a world beyond imagining." +msgstr "但他们给了我在这个无法想象的世界里生存下去的能力。" + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "但你还是到这里来了?" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "一个度假胜地创造了一系列像我一样的基因擢升人。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "当大灾变来临,我们本应该创造一个只属于我们自己的村庄,远离所有的人类。" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "也许我们做到了,哈哈。" + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "那你怎么没有呢?" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "我在一个岛上和一个医生一起长大。" + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "我曾经有很多兄弟姐妹。" + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "我们把他吃掉了。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "一家动物园把我设计成一个连接我原始物种和人类的纽带,然后研究我们。" + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "大灾变发生时我就在那里。许多动物被感染了。" + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "丧尸熊是可怕的毁灭性生物。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked" +" for the government or a corporation." +msgstr "我曾经是黑色行动部队的一员。我至今仍然不知道我是为政府还是公司工作。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "我的小队被派往一个实验室执行一项灭火任务。我在那里看到的东西不断给我梦魇。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come" +" back." +msgstr "其他人可能还活着,但我不是很确定。我当然希望他们不会被复活。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "我是一个克隆罐培人,近似人,麦克达夫。我是旧世界的产物。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons" +" afraid of mutants." +msgstr "现在活下来的人太少了,再也没法把我区分开了。除了那些害怕变种人的白痴。" + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "现在我可以自己选择了能为之死去的信条了。" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "你好,伙计。" @@ -180208,14 +176756,14 @@ msgstr "祝福你。愿你清除那些不平静之物。" msgid "I must purge this place before I can move on." msgstr "我必须先清理此处之后方能继续前进。" -#: lang/json/talk_topic_from_json.py -msgid "Huh? *mumble mumble* … Who are you?" -msgstr "哼?*喃喃自语*……你是谁?" - #: lang/json/talk_topic_from_json.py msgid "Oh, you again." msgstr "哦,又是你。" +#: lang/json/talk_topic_from_json.py +msgid "Huh? *mumble mumble* … Who are you?" +msgstr "哼?*喃喃自语*……你是谁?" + #: lang/json/talk_topic_from_json.py msgid "I'm busy, what is it?" msgstr "我很忙,怎么了?" @@ -180224,14 +176772,14 @@ msgstr "我很忙,怎么了?" msgid "And leave my tower and all my research? I think not." msgstr "然后丢下我这座塔和我所有的研究?我还是不要了。" -#: lang/json/talk_topic_from_json.py -msgid "Do you seek power as well?" -msgstr "你也在追寻能量吗?" - #: lang/json/talk_topic_from_json.py msgid "Ah, hello again." msgstr "啊,又见面了。" +#: lang/json/talk_topic_from_json.py +msgid "Do you seek power as well?" +msgstr "你也在追寻能量吗?" + #: lang/json/talk_topic_from_json.py msgid "Yes, yes… *electrical crackling* Isn't it beautiful?" msgstr "是的,是的,……*电气爆裂*是不是很漂亮?" @@ -181823,7 +178371,7 @@ msgid " hack at %s with a vicious strike" msgstr "斩击%s的要害" #: lang/json/technique_from_json.py -msgid "Deathblow" +msgid "Mordhau" msgstr "雷霆一击" #: lang/json/technique_from_json.py @@ -182495,66 +179043,66 @@ msgid " smashes %s with a pressurized slam" msgstr "用力击碎了%s" #: lang/json/technique_from_json.py -msgid "Shimmer Flurry" -msgstr "微光乱舞" +msgid "Tipped Intent" +msgstr "刃牙极意" #: lang/json/technique_from_json.py #, python-format -msgid "You release a blindingly fast slash at %s" -msgstr "你手中银芒一闪,一道刀光猛地刺向%s" +msgid "You quickly jab your weapon at %s" +msgstr "你用武器飞刺 %s" #: lang/json/technique_from_json.py #, python-format -msgid " slashes at %s" -msgstr "斩向%s。" +msgid " quickly jabs their weapon at %s" +msgstr " 用武器飞刺 %s" #: lang/json/technique_from_json.py -msgid "Tipped Intent" -msgstr "刃牙极意" +msgid "Shimmer Flurry" +msgstr "微光乱舞" #: lang/json/technique_from_json.py #, python-format -msgid "You swiftly jab your weapon at %s" -msgstr "你迅速将武器刺入%s" +msgid "" +"You release a blindingly fast low slash at %s and topple them off balance" +msgstr "你手中银芒一闪,斩向 %s 下盘并绊倒了它" #: lang/json/technique_from_json.py #, python-format -msgid " swiftly jabs their weapon at %s" -msgstr "迅速将武器刺入%s" +msgid " slashes at %s and shoves them down" +msgstr " 斩向 %s 下盘并绊倒了它" #: lang/json/technique_from_json.py -msgid "Decisive Blow" -msgstr "决断打击" +msgid "Mirage Slash" +msgstr "幻影斩击" #: lang/json/technique_from_json.py #, python-format -msgid "You release a debilitating swipe at %s" -msgstr "你一记猛打,让%s身形恍惚" +msgid "" +"You hold your blade taut, and then launch a piercing slash on %s's top half" +msgstr "你握紧刀把,刺向 %s 上身" #: lang/json/technique_from_json.py #, python-format -msgid " releases a debilitating swipe at %s" -msgstr "一记猛打,让%s身形恍惚" +msgid " lands a piercing blow on %s's face" +msgstr "猛力击打%s的脸。" #: lang/json/technique_from_json.py -msgid "End Slash" -msgstr "终势斩" +msgid "The Point" +msgstr "要点一击" #: lang/json/technique_from_json.py #, python-format -msgid "" -"You envision the tension of a fully drawn bow and then launch a piercing " -"blow on %s's top half" -msgstr "你想象你像扯满弦的弓,激射向%s的上半身。" +msgid "You drive your weapon down into %s's vulnerable center mass" +msgstr "你刺出武器,刺进 %s 脆弱的重心" #: lang/json/technique_from_json.py #, python-format -msgid " lands a piercing blow on %s's face" -msgstr "猛力击打%s的脸。" +msgid " lands a deadly blow on %s's unguarded center mass" +msgstr " 刺进 %s 脆弱的重心" #: lang/json/technique_from_json.py -msgid "Harsh Reprimand" -msgstr "严厉斥责" +msgid "Reprimand" +msgstr "惩戒" #: lang/json/technique_from_json.py #, python-format @@ -182623,18 +179171,18 @@ msgid " swiftly impales their fingers into %s" msgstr "迅速将手指戳入%s的关节。" #: lang/json/technique_from_json.py -msgid "Joint Pain" -msgstr "关节痛击" +msgid "Shifting Feint" +msgstr "补位佯攻" #: lang/json/technique_from_json.py #, python-format -msgid "You explosively jab your weapon at %s joints" -msgstr "你用你的武器猛击%s的关节" +msgid "You fake a quick strike toward %s" +msgstr "你快速佯攻%s" #: lang/json/technique_from_json.py #, python-format -msgid " explosively jabs at %s" -msgstr "猛击了%s的关节" +msgid " fakes a quick strike toward %s" +msgstr "快速佯攻了%s。" #: lang/json/technique_from_json.py msgid "Rapid Jab" @@ -182657,8 +179205,8 @@ msgstr "蓄念冲击" #: lang/json/technique_from_json.py #, python-format msgid "" -"You envision a gathering tempest in and then release it's energy on %s's top" -" half" +"You envision a gathering tempest and then release it's energy on %s's top " +"half" msgstr "你想象你聚集着一场暴风雨,然后向%s的上半身释放出它的能量。" #: lang/json/technique_from_json.py @@ -182710,9 +179258,9 @@ msgstr "控惑" #. ~ Description for BERSERK #: lang/json/technique_from_json.py msgid "" -"50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " -"reduces action cost and adds overall damage (S)" -msgstr "50%移动,77%钝击,77%斩击,77%刺击,击倒两回合,力量(SS+)大大降低行动消耗,增加整体伤害(S)" +"50% AP cost, 77% DMG, Down (2), STR (SS) greatly reduces AP cost and adds " +"(S) DMG" +msgstr "50%行动消耗,77%伤害,击倒两回合,力量(SS)大大降低行动消耗,增加整体伤害(S)" #: lang/json/technique_from_json.py #, python-format @@ -182731,9 +179279,9 @@ msgstr "扫荡" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py msgid "" -"15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," -" and adds a (A) damage bonus, min 4 melee" -msgstr "15%移动,35%伤害,大幅攻击,力量(SS+)显著降低行动消耗,并增加一个(A)伤害加值,需要4近战技能" +"15% AP cost, 35% DMG, wide arc, STR (SS) reduces AP cost, and adds (A) DMG, " +"melee (4)" +msgstr "15%行动消耗,35%伤害,大幅攻击,力量(SS)显著降低行动消耗,并增加整体伤害(A),需要4近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182752,9 +179300,9 @@ msgstr "一刀两断" #. ~ Description for BISECTION #: lang/json/technique_from_json.py msgid "" -"Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " -"reduces action cost and increases overall (B) damage, min 2 melee" -msgstr "仅暴击,35%的移动消耗,105%的钝击和刺击,125%的斩击,敏捷(D)和感知(E)降低行动消耗,增加整体(B)伤害,需要2近战技能" +"Crit!, 35% AP cost, 115% DMG, STR (SS) and DEX (SS) reduces AP cost and PER " +"(B) adds DMG, melee (2)" +msgstr "仅暴击!35%行动消耗,115%伤害,力量(SS)和敏捷(SS)显著降低行动消耗,感知(B)增加整体伤害,需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182768,10 +179316,8 @@ msgstr " 砍击 %s" #. ~ Description for HOOK #: lang/json/technique_from_json.py -msgid "" -"85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " -"reduces action cost" -msgstr "85%移动,66%钝击,76%斩击,86%刺击,击倒两回合,力量(C)大大降低行动消耗" +msgid "85% AP, 88% DMG, Down (2), STR (C) reduces AP cost" +msgstr "85%行动消耗,88%伤害,击倒两回合,力量(C)降低行动消耗" #: lang/json/technique_from_json.py #, python-format @@ -182785,9 +179331,9 @@ msgstr "顺势" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py msgid "" -"75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " -"and adds a (C) damage bonus, min 4 melee" -msgstr "75%移动,60%伤害,大幅攻击,力量(S)显著降低行动消耗,并增加一个(C)伤害加成,需要4近战技能" +"75% AP, 60% DMG, WIDE AOE, STR (S) reduces AP cost, and adds a (C) DMG, " +"melee (4)" +msgstr "75%行动消耗,60%伤害,大幅攻击,力量(S)降低行动消耗,并增加整体伤害(C),需要4近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182801,9 +179347,9 @@ msgstr "骨肉相怜" #. ~ Description for CHOP #: lang/json/technique_from_json.py msgid "" -"Crit only, 118% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E)" -" reduces action cost and increases overall (B) damage, min 2 melee" -msgstr "仅暴击,118%的移动消耗,105%的钝击和刺击,125%的斩击,敏捷(D)和感知(E)降低行动消耗,增加整体(B)伤害,需要2近战技能" +"CRIT!, 118% AP, 125% Cut/Stab, DEX (D) and PER (E) reduces AP cost and adds " +"(B) DMG, melee (2)" +msgstr "仅暴击!118%行动消耗,125%刺击/斩击伤害,敏捷(D)和感知(E)降低行动消耗,并增加整体伤害(B),需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182817,10 +179363,9 @@ msgstr "粉身碎骨" #. ~ Description for SMASH #: lang/json/technique_from_json.py msgid "" -"Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " -"(D) reduces action cost and increases overall (C) damage, min 2 melee" -msgstr "" -"仅暴击,110%的移动消耗,120%的钝击,105%的刺击,110%的斩击,敏捷(C)和力量(D)降低行动消耗,增加整体(C)伤害,需要2近战技能" +"CRIT!, 110% AP, 120% Bash, DEX (C) and STR (D) reduces AP cost and adds (C) " +"Arpen, melee (2)" +msgstr "仅暴击!110%行动消耗,120%钝击伤害,敏捷(C)和力量(D)降低行动消耗,并增加护甲穿透(C),需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182839,9 +179384,8 @@ msgstr "阴招" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py msgid "" -"Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" -" reduces action cost, min melee 1" -msgstr "仅暴击,120%移动,125%伤害,眩晕1.5回合,力量(A)显著降低行动消耗,需要1近战技能" +"Crit!, 120% AP, 125% damage, Stun (1), STR (A) reduces AP cost, melee (1)" +msgstr "仅暴击!120%行动消耗,125%伤害,击晕一回合,力量(A)降低行动消耗,需要1近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182860,9 +179404,9 @@ msgstr "推撞" #. ~ Description for SHOVE #: lang/json/technique_from_json.py msgid "" -"65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " -"(D) and DEX (E) reduce action cost" -msgstr "65%移动,显着降低伤害,击退2格,眩晕1回合,力量(D)和敏捷(E)降低行动消耗" +"65% AP, REDUCED DMG, knockback (2), stun (1), STR (D) and DEX (E) reduce AP " +"cost" +msgstr "65%行动消耗,显着降低伤害,击退两格,击晕一回合,力量(D)和敏捷(E)降低行动消耗" #: lang/json/technique_from_json.py #, python-format @@ -182881,9 +179425,9 @@ msgstr "武装推撞" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py msgid "" -"75% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " -"(B) and DEX (C) reduce action cost, min melee 1" -msgstr "75%移动,无斩击伤害,110%钝击和刺击伤害,击退2格,力量(B)和敏捷(C)降低行动消耗,需要1近战技能" +"75% AP, 110% DMG, knockback (3), STR (B) and DEX (C) reduce AP cost, melee " +"(1)" +msgstr "75%行动消耗,110%伤害,击退三格,力量(B)和敏捷(C)降低行动消耗,需要1近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182896,8 +179440,8 @@ msgstr "撕裂" #. ~ Description for TEAR #: lang/json/technique_from_json.py -msgid "Crit only, 110% Cut, 115% Stab, min melee 2" -msgstr "仅暴击,110%斩击,115%的刺击,需要2近战技能" +msgid "CRIT!, 115% Cut/Stab, melee (2)" +msgstr "仅暴击!115%斩击/刺击伤害,需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182915,9 +179459,8 @@ msgstr "猛刺" #. ~ Description for THRUST #: lang/json/technique_from_json.py -msgid "" -"110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" -msgstr "110%刺击伤害,力量(E)和感知(D)提供额外伤害,需要1近战技能" +msgid "110% Stab DMG, STR (E) and PER (D) adds DMG, melee (1)" +msgstr "110%刺击伤害,力量(E)和感知(D)增加整体伤害,需要1近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182936,9 +179479,8 @@ msgstr "突刺" #. ~ Description for LUNGE #: lang/json/technique_from_json.py msgid "" -"Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " -"provides bonus damage, min 2 melee" -msgstr "仅暴击,115%刺击伤害,仅暴击,力量(D)和感知(D)提供额外伤害,需要2近战技能" +"CRIT!, 115% Stab DMG, Strength (D) and Perception (D) adds DMG, melee (2)" +msgstr "仅暴击!115%刺击伤害,力量(D)和感知(D)增加整体伤害,需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182957,9 +179499,8 @@ msgstr "点刺" #. ~ Description for PROD #: lang/json/technique_from_json.py msgid "" -"66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " -"DEX (C) reduces action cost, min 3 melee" -msgstr "66%移动消耗,70%刺击伤害,力量(E)和感知(C)提供额外伤害,敏捷(C)降低行动消耗,需要3近战技能" +"66% AP, 70% Stab DMG, PER (C) adds Arpen, DEX (B) reduces AP cost, melee (3)" +msgstr "66%行动消耗,70%刺击伤害,感知(C)增加护甲穿透,敏捷(B)降低行动消耗,需要3近战技能" #: lang/json/technique_from_json.py #, python-format @@ -182977,20 +179518,121 @@ msgstr "刺探" #. ~ Description for PROBE #: lang/json/technique_from_json.py +msgid "80% AP, PER (C) adds DMG and Arpen (E), melee (3)" +msgstr "80%行动消耗,感知(C)增加整体伤害和护甲穿透(E),需要3近战技能" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You probe at %s's openings with your weapon" +msgstr "你用武器试探 %s,寻找防御漏洞" + +#: lang/json/technique_from_json.py +#, python-format +msgid " probes their weapon at %s " +msgstr " 用武器试探 %s" + +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format msgid "" -"80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" -" also provides armor pierce (E), min 3 melee" -msgstr "80%移动消耗,75%刺击伤害,力量(C)和感知(C)提供额外伤害,同时提供穿甲(E),需要3近战技能" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You spot %s's weakpoint and strike" +msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You probe %s's openings" -msgstr "你试探性刺击 %s,寻找防御漏洞" +msgid " spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" +msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " probe %s " -msgstr " 试探性刺击 %s。" +msgid "You unleash a spin attack against %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleashes a spin attack against %s and those nearby" +msgstr "" #: lang/json/technique_from_json.py msgid "Ausstoß" @@ -185739,20 +182381,6 @@ msgid "" "press them into basic shapes, ready for further crafting." msgstr "一台液压驱动的金属锻压机,可以将各种金属制品压制成金属块,以用于进一步加工。" -#: lang/json/terrain_from_json.py -msgid "gasoline pump" -msgstr "汽油泵" - -#. ~ Description for gasoline pump -#: lang/json/terrain_from_json.py -msgid "" -"Precious GASOLINE. The former world bowed to their petroleum god as it led " -"them to their ruin. There's plenty left over to fuel your inner road " -"warrior. If this gas dispenser doesn't give up the goods for free, you may " -"have to pay at a nearby terminal." -msgstr "" -"宝贵的汽油。曾经文明世界向他们的石油之神顶礼膜拜,而石油之神却把他们引向毁灭。但它还剩有足够的燃料来给你的车辆加油。如果这个加油泵不免费提供汽油的话,你可能要到附近的支付终端付款。" - #: lang/json/terrain_from_json.py msgid "fuel tank" msgstr "油罐" @@ -185771,6 +182399,20 @@ msgstr "油罐(损坏)" msgid "A broken tank which was filled with gasoline." msgstr "一个曾经装满汽油的坏油箱。" +#: lang/json/terrain_from_json.py +msgid "gasoline pump" +msgstr "汽油泵" + +#. ~ Description for gasoline pump +#: lang/json/terrain_from_json.py +msgid "" +"Precious GASOLINE. The former world bowed to their petroleum god as it led " +"them to their ruin. There's plenty left over to fuel your inner road " +"warrior. If this gas dispenser doesn't give up the goods for free, you may " +"have to pay at a nearby terminal." +msgstr "" +"宝贵的汽油。曾经文明世界向他们的石油之神顶礼膜拜,而石油之神却把他们引向毁灭。但它还剩有足够的燃料来给你的车辆加油。如果这个加油泵不免费提供汽油的话,你可能要到附近的支付终端付款。" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "汽油泵(损坏)" @@ -185782,6 +182424,16 @@ msgid "" "the liquid gold." msgstr "恐怖!这个汽油泵被毁了,你再也无法通过它获得那些液体黄金了。" +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "一个装满柴油的油箱。" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "一个曾经装满柴油的坏油箱。" + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "柴油泵" @@ -188426,17 +185078,6 @@ msgstr "" "一台能够利用“空气电荷”的强大设备,至少新闻是这么说的。由埃尔顿·莫塞克(Elton " "Moosek)和他的\"蓝牛计划\"团队出品,由于有可能产生近乎无限的电力,立即被联邦政府抢购一空。但现在它留在这里什么用也没有。也许可以拆开它回收一些部件。" -#: lang/json/terrain_from_json.py -msgid "LEGACY hydroponics unit" -msgstr "水培单元(废弃)" - -#. ~ Description for LEGACY hydroponics unit -#: lang/json/terrain_from_json.py -msgid "" -"This is a deprecated hydroponics unit. Deconstruct it to receive your " -"materials back." -msgstr "这是一个废弃的水培单元。你可以拆解它来收回材料。" - #: lang/json/terrain_from_json.py msgid "burnt tree" msgstr "烧焦的树" @@ -188534,18 +185175,6 @@ msgstr "安全螺栓控制器" msgid "bridge control" msgstr "桥梁控制台" -#: lang/json/terrain_from_json.py -msgid "mass of blob feed" -msgstr "变形怪培养物团" - -#: lang/json/terrain_from_json.py -msgid "squish!" -msgstr "嘎吱!" - -#: lang/json/terrain_from_json.py -msgid "mound of blob feed" -msgstr "变形怪培养物堆" - #: lang/json/terrain_from_json.py msgid "singing sand" msgstr "鸣沙" @@ -188720,6 +185349,10 @@ msgstr "千斤顶" msgid "self jacking" msgstr "自身千斤顶" +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "抽取" + #: lang/json/tool_quality_from_json.py msgid "chiseling" msgstr "雕凿" @@ -188945,14 +185578,6 @@ msgstr "集雨器" msgid "magic door" msgstr "魔法门" -#: lang/json/trap_from_json.py -msgid "light snare trap" -msgstr "小型捕猎陷阱" - -#: lang/json/trap_from_json.py -msgid "heavy snare trap" -msgstr "大型捕猎陷阱" - #: lang/json/vehicle_from_json.py msgid "work light" msgstr "工作灯" @@ -189485,62 +186110,10 @@ msgstr "核动力轿车" msgid "Flaming Atomic Car" msgstr "火焰核动力车" -#: lang/json/vehicle_from_json.py -msgid "Roadheader" -msgstr "掘进机" - #: lang/json/vehicle_from_json.py msgid "Floating disk" msgstr "飘浮碟" -#: lang/json/vehicle_from_json.py -msgid "Robotic Taxi" -msgstr "机器人出租车" - -#: lang/json/vehicle_from_json.py -msgid "Armored Robot Carrier" -msgstr "装甲机器人运输车" - -#: lang/json/vehicle_from_json.py -msgid "Atomic Mini-Tank" -msgstr "核动力迷你坦克" - -#: lang/json/vehicle_from_json.py -msgid "Light Tank" -msgstr "轻型坦克" - -#: lang/json/vehicle_from_json.py -msgid "Main Battle Tank" -msgstr "主战坦克" - -#: lang/json/vehicle_from_json.py -msgid "Self-Propelled Howitzer" -msgstr "自行榴弹炮" - -#: lang/json/vehicle_from_json.py -msgid "Mobile Gun System" -msgstr "机动火炮系统" - -#: lang/json/vehicle_from_json.py -msgid "Bandit Bulldozer" -msgstr "强盗推土机" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Planter Tractor" -msgstr "重型播种拖拉机" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Plow Tractor" -msgstr "重型挂犁拖拉机" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Reaper Tractor" -msgstr "重型收割拖拉机" - -#: lang/json/vehicle_from_json.py -msgid "Infantry Fighting Vehicle" -msgstr "步兵战车" - #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" msgstr "车载 核聚变枪" @@ -189813,17 +186386,23 @@ msgstr "一个安装在载具外挂架上的备用轮胎。" #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns fuel from a tank in the vehicle." -msgstr "一个内燃引擎。燃烧消耗载具水箱内的燃料。" +msgstr "一个内燃引擎。燃烧消耗载具油箱内的燃料。" + +#: lang/json/vehicle_part_from_json.py +msgid "" +"A combustion engine for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "一个飞机上使用的内燃引擎。燃烧消耗载具油箱内的汽油或航空燃油。" #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " "also burn biodiesel or lamp oil, though somewhat less efficiently." -msgstr "一个内燃引擎。燃烧消耗载具水箱内的柴油。同时也能够消耗乙醇或灯油,但效率会较低。" +msgstr "一个内燃引擎。燃烧消耗载具油箱内的柴油。同时也能够消耗乙醇或灯油,但效率会较低。" #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." -msgstr "一个内燃引擎。燃烧消耗载具水箱内的汽油。" +msgstr "一个内燃引擎。燃烧消耗载具油箱内的汽油。" #: lang/json/vehicle_part_from_json.py msgid "" @@ -189832,7 +186411,7 @@ msgid "" "efficiently. Better power-to-weight ratio than a traditional engine, but " "consumes more fuel." msgstr "" -"一个先进内燃引擎。燃烧消耗载具水箱内的汽油、柴油或航空燃料。同时也能够消耗灯油,但效率会较低。拥有比传统引擎更好的推重比,但会消耗更多燃料。" +"一个先进内燃引擎。燃烧消耗载具油箱内的汽油、柴油或航空燃料。同时也能够消耗灯油,但效率会较低。拥有比传统引擎更好的推重比,但会消耗更多燃料。" #: lang/json/vehicle_part_from_json.py msgid "" @@ -190015,7 +186594,6 @@ msgid "" msgstr "一盏十分昏暗的原子灯,采用内部核能供电,开启时照亮车内一格空间。你无法在这么昏暗的灯光下制造物品。" #. ~ Description for {'str': 'floodlight'} -#. ~ Description for {'str': 'gel floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, circular light that illuminates the area outside the vehicle " @@ -190023,7 +186601,6 @@ msgid "" msgstr "一盏十分明亮的泛光灯,开启时照亮车外大片圆形区域。" #. ~ Description for {'str': 'directed floodlight'} -#. ~ Description for {'str': 'gel directed floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, directed light that illuminates a half-circular area outside " @@ -190036,7 +186613,6 @@ msgid "headlight" msgstr "车头灯" #. ~ Description for {'str': 'headlight'} -#. ~ Description for {'str': 'gel headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a narrow cone outside the vehicle when " @@ -190059,7 +186635,6 @@ msgid "wide angle headlight" msgstr "广角车头灯" #. ~ Description for {'str': 'wide angle headlight'} -#. ~ Description for {'str': 'gel wide angle headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a wide cone outside the vehicle when turned " @@ -190122,6 +186697,10 @@ msgid "" "speed. Extremely fragile and cannot be armored." msgstr "一块超高性能太阳能板。当暴露于阳光照射之下时,会缓慢地为车辆电池充电。云层遮挡会让充电速度更慢。非常容易损坏,且不能安装装甲。" +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "车载地狱犬激光炮" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -190229,7 +186808,7 @@ msgid "" "from a water faucet, if one is installed in the vehicle. You can also use a" " rubber hose to siphon liquids out of a tank." msgstr "" -"一个能够装载液体的车载容器。装入车辆引擎所对应消耗的燃料后,引擎启动时将会自动从对应的水箱内抽取燃料。装入水或其他液体后,可以在车辆水龙头处获取对应液体。你也可以使用一根橡胶软管从水箱中抽取液体。" +"一个能够装载液体的车载容器。装入车辆引擎所对应消耗的燃料后,引擎启动时将会自动从对应的油箱内抽取燃料。装入水或其他液体后,可以在车辆水龙头处获取对应液体。你也可以使用一根橡胶软管从油箱中抽取液体。" #: lang/json/vehicle_part_from_json.py msgid "vehicle tank (10L)" @@ -190257,7 +186836,7 @@ msgid "" "installed in the vehicle. You can also use a rubber hose to siphon liquids " "out of a tank." msgstr "" -"一个安装在车外的能够装载液体的车载容器。装入车辆引擎所对应消耗的燃料后,引擎启动时将会自动从对应的水箱内抽取燃料。装入水或其他液体后,可以在车辆水龙头处获取对应液体。你也可以使用一根橡胶软管从水箱中抽取液体。" +"一个安装在车外的能够装载液体的车载容器。装入车辆引擎所对应消耗的燃料后,引擎启动时将会自动从对应的油箱内抽取燃料。装入水或其他液体后,可以在车辆水龙头处获取对应液体。你也可以使用一根橡胶软管从油箱中抽取液体。" #: lang/json/vehicle_part_from_json.py msgid "roof-mounted external tank (100L)" @@ -190286,7 +186865,7 @@ msgid "" "installed in the vehicle. You can also use a rubber hose to siphon liquids " "out of a tank." msgstr "" -"一个安装在车内货舱或者客舱上的能够装载液体的车载容器。装入车辆引擎所对应消耗的燃料后,引擎启动时将会自动从对应的水箱内抽取燃料。装入水或其他液体后,可以在车辆水龙头处获取对应液体。你也可以使用一根橡胶软管从水箱中抽取液体。" +"一个安装在车内货舱或者客舱上的能够装载液体的车载容器。装入车辆引擎所对应消耗的燃料后,引擎启动时将会自动从对应的油箱内抽取燃料。装入水或其他液体后,可以在车辆水龙头处获取对应液体。你也可以使用一根橡胶软管从油箱中抽取液体。" #. ~ Description for {'str': 'fuel bunker'} #: lang/json/vehicle_part_from_json.py @@ -190320,14 +186899,14 @@ msgstr "车载 PPA-5 等离子枪" msgid "mounted A7 laser rifle" msgstr "车载 A7激光步枪" -#: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" -msgstr "车载地狱犬激光炮" - #: lang/json/vehicle_part_from_json.py msgid "mounted M249" msgstr "车载 M249轻型机枪" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M249S" +msgstr "车载 M249S机枪" + #: lang/json/vehicle_part_from_json.py msgid "mounted gatling shotgun" msgstr "车载 加特林霰弹枪" @@ -190352,6 +186931,10 @@ msgstr "车载 M240通用机枪" msgid "mounted M60" msgstr "车载 M60通用机枪" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "车载 M60 半自动机枪" + #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" msgstr "车载 Mark19榴弹发射器" @@ -191511,6 +188094,13 @@ msgstr "一个提供了更好抓地和越野性能的宽轮胎。" msgid "A wooden wheel." msgstr "一个木制车轮。" +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "在卡车拖车中使用的巨大储物空间,用于运输大量物品。" + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "货槽" @@ -191523,13 +188113,6 @@ msgid "" " makes it fragile." msgstr "一个将薄钢板焊在车底向下凸出的金属盆。尽管它能装很多东西,但粗劣的焊接工艺使其结构脆弱。" -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "在卡车拖车中使用的巨大储物空间,用于运输大量物品。" - #: lang/json/vehicle_part_from_json.py msgid "crude plating" msgstr "简易装甲板" @@ -191541,10 +188124,6 @@ msgid "" "protective as proper armor, but it'll do if there's nothing else available." msgstr "一片被焊接在载具外侧的薄钢板。太薄了以至于没法像正规装甲那么有效,但总比没有好。" -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "车载激光炮" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -191606,168 +188185,16 @@ msgid "" "size." msgstr "一个超轻的钛合金框架。其他载具部件能够安装在它上面,在它四周增加新的车辆框架,就可以增加车辆大小。" -#: lang/json/vehicle_part_from_json.py -msgid "folding extra light quarterpanel" -msgstr "折叠超轻半隔板" - -#: lang/json/vehicle_part_from_json.py -msgid "foldable door" -msgstr "折叠门" - -#: lang/json/vehicle_part_from_json.py -msgid "superalloy coating" -msgstr "高温合金涂层" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tactical shotgun" -msgstr "车载战术霰弹枪" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted heavy machinegun" -msgstr "车载重机枪" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted assault rifle" -msgstr "车载突击步枪" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted light machine gun" -msgstr "车载 轻机枪" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted automatic grenade launcher" -msgstr "车载自动榴弹发射器" - -#. ~ Description for Balancer -#: lang/json/vehicle_part_from_json.py -msgid "A large and heavy metal drum for balancing a vehicle." -msgstr "一根巨大而沉重的金属圆鼓,用来平衡载具的负重。" - -#. ~ Description for roadheader -#: lang/json/vehicle_part_from_json.py -msgid "" -"A large metal jagged metalhead, powered by the vehicle's engines. Use the " -"vehicle controls to turn it on or off. When turned on, it will stop the " -"vehicle unless it has a strong engine. When turned on, it will destroy " -"walls near it." -msgstr "一个由车辆引擎带动的大型金属刀盘。在载具控制菜单中控制开关。开启时会摧毁附近的墙壁。" - -#: lang/json/vehicle_part_from_json.py -msgid "bulette plating" -msgstr "鲨蜥兽骨板" - -#. ~ Description for orichalcum frame -#: lang/json/vehicle_part_from_json.py -msgid "" -"An expensive magical metal framework. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." -msgstr "一个昂贵的魔法金属车辆框架。其他载具部件能够安装在它上面,在它四周增加新的车辆框架,就可以增加载具大小。" - -#: lang/json/vehicle_part_from_json.py -msgid "mana frame" -msgstr "魔法车架" - -#. ~ Description for mana frame -#: lang/json/vehicle_part_from_json.py -msgid "A shape of pure mana that can float and carry items." -msgstr "一个由纯粹魔力构成的飘浮碟,可以用来搬运物品。" - -#: lang/json/vehicle_part_from_json.py -msgid "robot_carrier" -msgstr "机器人托架" - -#. ~ Description for robot_carrier -#: lang/json/vehicle_part_from_json.py -msgid "" -"A cargo space for carrying robots. 'e'xamine it to capture a robot next to " -"you, or to release the robot currently contained. When selecting a robot to" -" capture, choose its tile relative to you, not the part." -msgstr "一个运输机器人的货舱。按\"e\"查看该部件选择需要装载的机器人,或者释放其中的机器人。当选择装载机器人时,机器人需要紧挨着你。" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm tank gun (AL)" -msgstr "120mm 自装填坦克炮" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm RWS" -msgstr "120mm 遥控坦克炮" - -#: lang/json/vehicle_part_from_json.py -msgid "ATGM turret" -msgstr "反坦克导弹炮塔" - -#: lang/json/vehicle_part_from_json.py -msgid "30mm chaingun" -msgstr "30mm链式炮" - #: lang/json/vehicle_part_from_json.py msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" " in the vehicle to produce steam." msgstr "一个闭环外燃蒸汽涡轮机。燃烧消耗载具燃料舱内的木炭并产生蒸汽。" -#: lang/json/vehicle_part_from_json.py -msgid "mounted slingshot cannon" -msgstr "车载弹射加农炮" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted lacerator" -msgstr "车载圆盘加速器" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary cannon" -msgstr "车载转轮加农炮" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted pulse laser" -msgstr "车载脉冲激光炮" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted turbolaser" -msgstr "车载高能激光炮" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted ripper" -msgstr "车载撕裂者炮台" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted scorpion ballista" -msgstr "车载毒蝎型弩炮" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted speargun" -msgstr "车载矛枪" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tesla cannon" -msgstr "车载磁暴线圈加农炮" - #: lang/json/vehicle_part_from_json.py msgid "cargo shelving" msgstr "载具架" -#. ~ Description for {'str': 'solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. Will recharge the vehicle's " -"electrical power when exposed to the sun." -msgstr "" -"一打太阳能电池板被安装在几米高的底盘上。使脆弱的太阳能板能够安全地远离任何潜在威胁,并能跟踪太阳以提高了发电效率。当该部件暴露在阳光下时会为你的载具充电。" - -#. ~ Description for {'str': 'upgraded solar array'} -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able track the sun. Will recharge the " -"vehicle's electrical power when exposed to the sun." -msgstr "" -"一打高能太阳能电池板被安装在在几米高的底盘上。使脆弱的面板能够安全地远离任何潜在威胁,并能跟踪太阳以提高发电效率。当该部件暴露在阳光下时会为你的载具充电。" - #: lang/json/vehicle_part_from_json.py msgid "wiring" msgstr "电线" @@ -191779,34 +188206,6 @@ msgid "" "of a vehicle to another part." msgstr "一条重型铜制电缆的一段,可以在载具不同部件间传输电力。" -#: lang/json/vehicle_part_from_json.py -msgid "pocket dimension cargo" -msgstr "次元货仓" - -#: lang/json/vehicle_part_from_json.py -msgid "rubber treads" -msgstr "橡胶履带" - -#. ~ Description for {'str': 'rubber treads'} -#. ~ Description for {'str': 'steel treads'} -#. ~ Description for {'str': 'tank treads'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A section of continuous track, the kind mounted on construction vehicles and" -" military fighting vehicles. It acts as a wheel, and the broad surface " -"provides plenty of traction to move heavy vehicles off-road, but at the cost" -" of speed due to the heavy weight." -msgstr "" -"一条连续履带中的一段,安装在工程载具或是军用载具上的那种。它能够充当车轮,宽阔的接触面让它为重型载具提供更好的越野性能,但是因其重量和增加的阻力会降低载具速度。" - -#: lang/json/vehicle_part_from_json.py -msgid "steel treads" -msgstr "钢履带" - -#: lang/json/vehicle_part_from_json.py -msgid "tank treads" -msgstr "坦克履带" - #: lang/json/vehicle_part_from_json.py msgid "mounted TDI Vector" msgstr "车载 TDI 维克托冲锋枪" @@ -192027,10 +188426,6 @@ msgstr "车载 RM802 榴弹发射器" msgid "mounted RM88 battle rifle" msgstr "车载 RM88 战斗步枪" -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary speargun" -msgstr "车载转轮矛枪加农炮" - #: lang/json/vehicle_part_from_json.py msgid "mounted Ruger 10/22" msgstr "车载 鲁格 10/22 步枪" @@ -192088,454 +188483,45 @@ msgid "mounted V29 laser" msgstr "车载 V29 激光手枪" #: lang/json/vehicle_part_from_json.py -msgid "gel panel" -msgstr "凝胶侧板" - -#: lang/json/vehicle_part_from_json.py -msgid "gray wall" -msgstr "灰色墙壁" - -#. ~ Description for {'str': 'gray wall'} -#. ~ Description for {'str': 'ooze barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a vehicle wall. Keeps zombies outside the " -"vehicle and prevents people from seeing through it." -msgstr "一只活的变形怪变成的隔板。能够阻挡丧尸和其他人的视线。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel quarterpanel" -msgstr "凝胶半隔板" - -#. ~ Description for {'str': 'gel quarterpanel'} -#. ~ Description for {'str': 'gray barricade'} -#. ~ Description for {'str': 'ooze screen'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a half-height vehicle wall. Keeps zombies " -"outside the vehicle but allows people to see over it." -msgstr "一只活的变形怪变成的半高隔板。能够阻挡丧尸但是无法阻挡其他人的视线。" - -#: lang/json/vehicle_part_from_json.py -msgid "gray barricade" -msgstr "灰色路障" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze screen" -msgstr "软泥屏风" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze barrier" -msgstr "软泥屏障" - -#: lang/json/vehicle_part_from_json.py -msgid "gel framework" -msgstr "凝胶车架" - -#. ~ Description for {'str': 'gel framework'} -#. ~ Description for {'str': 'gray frame'} -#. ~ Description for {'str': 'ooze chassis'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, shaped to provide attachment points for other blobs. Other " -"vehicle components and blobs can be mounted on it. If all the frames and " -"components of a vehicle are foldable or made from blobs, the vehicle can be " -"folding into a small package and picked up as a normal item." -msgstr "" -"一只活的变形怪变成车辆框架,其他变形怪和载具部件能够安装在它上面。如果构成载具的所有框架和部件都可折叠(变形怪可以),那么这辆载具能够被打包折叠并可像普通物品一样被拾取带走。" - -#: lang/json/vehicle_part_from_json.py -msgid "gray frame" -msgstr "灰色车架" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze chassis" -msgstr "软泥底盘" - -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living, glowing blob. Having been filled with electrical power, can " -"release it as light of varying strength." -msgstr "一只活的发光的变形怪。在通电之后能够发出强度可调的光。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel aisle lights" -msgstr "凝胶过道灯" - -#: lang/json/vehicle_part_from_json.py -msgid "gel floodlight" -msgstr "凝胶泛光灯" - -#: lang/json/vehicle_part_from_json.py -msgid "gel directed floodlight" -msgstr "凝胶定向泛光灯" - -#: lang/json/vehicle_part_from_json.py -msgid "gel headlight" -msgstr "凝胶车头灯" - -#: lang/json/vehicle_part_from_json.py -msgid "gel wide angle headlight" -msgstr "凝胶广角车头灯" - -#: lang/json/vehicle_part_from_json.py -msgid "ice ram" -msgstr "变形怪冰冻撞锤" - -#. ~ Description for {'str': 'ice ram'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will absorb damage in a" -" vehicle collision and deliver additional damage to the other object in the " -"collision. It should be mounted on the edge of the vehicle, preferably the " -"front." -msgstr "一只活的处于极寒状态的变形怪变成的载具部件。会大大提升载具碰撞时所造成的伤害。安装在车辆外侧,最好是正前方。" - -#: lang/json/vehicle_part_from_json.py -msgid "Gelatinous tracks" -msgstr "凝胶履带" - -#. ~ Description for {'str': 'Gelatinous tracks'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A set of continuous, interlocking tracks made out of blob. They can be used" -" in place of wheels, and provide good traction and off-road performance." -msgstr "一条由变形怪环环相扣而成的履带。它可以替代轮胎,提供了更好抓地和越野性能。" - -#: lang/json/vehicle_part_from_json.py -msgid "Oozing tracks" -msgstr "软泥履带" - -#: lang/json/vehicle_part_from_json.py -msgid "inert core" -msgstr "无活性核心" - -#. ~ Description for {'str': 'inert core'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A sleeping amorphous core, acting as a rotating, universal mount for a " -"weapon. If your hands are empty, you can stand next to a tentacle and " -"'f'ire the weapon by selecting the tile." -msgstr "一个休眠中的变形怪无定形核心,能够作为自由旋转的通用武器炮塔底座使用。你空着双手紧挨着核心时,按射击键操作它上面所安装的武器开火。" - -#: lang/json/vehicle_part_from_json.py -msgid "A living blob turned into a heavy vehicle weapon." -msgstr "一只活的变形怪变成的重型车载武器。" - -#. ~ Description for {'str': 'frost lancer'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state and transformed into a heavy" -" vehicle weapon." -msgstr "一只活的处于极寒状态的变形怪变成的重型车载武器。" - -#: lang/json/vehicle_part_from_json.py -msgid "ice pack" -msgstr "变形怪冷藏箱" - -#. ~ Description for {'str': 'ice pack'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will keep items stored " -"in it cold, reducing the speed at which food and drink rots." -msgstr "一只活的处于极寒状态的变形怪变成的载具部件。它会让存放在体内的物品保持冰凉状态,降低食物腐败速度。" - -#: lang/json/vehicle_part_from_json.py -msgid "icy windshield" -msgstr "变形怪冰川挡风玻璃" - -#. ~ Description for {'str': 'icy windshield'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It is transparent, and can" -" be used to see out of the vehicle." -msgstr "一只活的处于极寒状态的变形怪变成的载具部件。它全身透明,能够透过它看到车外。" - -#: lang/json/vehicle_part_from_json.py -msgid "gelacier boat hull" -msgstr "变形怪冰川船壳" - -#. ~ Description for {'str': 'gelacier boat hull'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It acts as a boat hull." -msgstr "一只活的处于极寒状态的变形怪变成的船壳。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel retriever" -msgstr "凝胶车铲" - -#. ~ Description for {'str': 'gel retriever'} -#. ~ Description for {'str': 'gray retriever'} -#. ~ Description for {'str': 'ooze retriever'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed to act as a scoop. Use the vehicle controls to turn " -"it on or off. When turned on, it will scoop up any loose items that it " -"travels over, putting them into the vehicle's storage." -msgstr "一只活的变形怪变成的车铲。在载具控制菜单中控制开关。开启时,将其所经过位置的散落物品收集进货舱内。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel harness" -msgstr "凝胶安全带" - -#. ~ Description for {'str': 'gel harness'} -#. ~ Description for {'str': 'gray harness'} -#. ~ Description for {'str': 'ooze harness'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, reformed as a belt and attached to a seat." -msgstr "一只活的变形怪变成的安全带。" - -#: lang/json/vehicle_part_from_json.py -msgid "capsule (10L)" -msgstr "变形怪油箱(10升)" - -#. ~ Description for {'str': 'capsule (10L)'} -#. ~ Description for {'str': 'cocoon (30L)'} -#. ~ Description for {'str': 'pod (20L)'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a storage space for holding liquids. If filled " -"with the appropriate fuel for the vehicle's engine, the engine will " -"automatically draw fuel from the tank when the engine is on. If filled with" -" water, you can access the water from a water faucet, if one is installed in" -" the vehicle. You can also use a rubber hose to siphon liquids out of a " -"tank." -msgstr "" -"一只活的变形怪变成的水箱。装入车辆引擎所对应消耗的燃料后,引擎启动时将会自动从对应的水箱内抽取燃料。装入水或其他液体后,可以在车辆水龙头处获取对应液体。你也可以使用一根橡胶软管从水箱中抽取液体。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel tank (60L)" -msgstr "凝胶油箱(60升)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel reinforcement" -msgstr "凝胶装甲板" - -#. ~ Description for {'str': 'gel reinforcement'} -#. ~ Description for {'str': 'gray reinforcement'} -#. ~ Description for {'str': 'ooze reinforcement'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, acting as armor plate." -msgstr "一只活的变形怪变成的装甲板。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel roof" -msgstr "凝胶车顶盖" - -#. ~ Description for {'str': 'gel roof'} -#. ~ Description for {'str': 'gray roof'} -#. ~ Description for {'str': 'ooze roof'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, placed as roof." -msgstr "一只活的变形怪变成的车顶。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel seat" -msgstr "凝胶座椅" - -#. ~ Description for {'str': 'gel seat'} -#. ~ Description for {'str': 'gray seat'} -#. ~ Description for {'str': 'ooze seat'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a comfy couch. You can sit here." -msgstr "一只活的变形怪变成的座椅。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel receptacle" -msgstr "凝胶容器" - -#. ~ Description for {'str': 'gel receptacle'} -#. ~ Description for {'str': 'gray receptacle'} -#. ~ Description for {'str': 'ooze receptacle'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, shaped into a cargo space." -msgstr "一只活的变形怪变成的货舱。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel pouch (under)" -msgstr "凝胶储存箱(车底)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel walkway" -msgstr "凝胶过道" - -#. ~ Description for {'str': 'gel walkway'} -#. ~ Description for {'str': 'gray walkway'} -#. ~ Description for {'str': 'ooze walkway'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a walkway." -msgstr "一只活的变形怪变成的过道。" - -#: lang/json/vehicle_part_from_json.py -msgid "gel hatch" -msgstr "凝胶舱门" - -#. ~ Description for {'str': 'gel hatch'} -#. ~ Description for {'str': 'gray hatch'} -#. ~ Description for {'str': 'ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Has a transparent patch so you can see out" -" of it, even when closed." -msgstr "一只活的变形怪变成的车门。即使关上门你也可以透过其上的薄膜来观察。" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gel hatch" -msgstr "不透明凝胶舱门" - -#. ~ Description for {'str': 'opaque gel hatch'} -#. ~ Description for {'str': 'opaque gray hatch'} -#. ~ Description for {'str': 'opaque ooze hatch'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Entirely opaque so you can't see through " -"it when closed." -msgstr "一只活的变形怪变成的车门。它是实心的,所以关上门时你不能透过它来观察。" - -#: lang/json/vehicle_part_from_json.py -msgid "gray retriever" -msgstr "灰色车铲" - -#: lang/json/vehicle_part_from_json.py -msgid "gray harness" -msgstr "灰色安全带" - -#: lang/json/vehicle_part_from_json.py -msgid "cocoon (30L)" -msgstr "茧形油箱(30升)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray tank (100L)" -msgstr "灰色油箱(100升)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray reinforcement" -msgstr "灰色加强件" - -#: lang/json/vehicle_part_from_json.py -msgid "gray roof" -msgstr "灰色车顶盖" - -#: lang/json/vehicle_part_from_json.py -msgid "gray seat" -msgstr "灰色座椅" - -#: lang/json/vehicle_part_from_json.py -msgid "gray receptacle" -msgstr "灰色容器" - -#: lang/json/vehicle_part_from_json.py -msgid "gray pouch (under)" -msgstr "灰色储存箱(车底)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray walkway" -msgstr "灰色过道" - -#: lang/json/vehicle_part_from_json.py -msgid "gray hatch" -msgstr "灰色舱门" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gray hatch" -msgstr "不透明灰色舱门" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze retriever" -msgstr "软泥车铲" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze harness" -msgstr "软泥安全带" - -#: lang/json/vehicle_part_from_json.py -msgid "pod (20L)" -msgstr "变形怪油箱(20升)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze tank (80L)" -msgstr "软泥油箱(80升)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze reinforcement" -msgstr "软泥加强件" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze roof" -msgstr "软泥车顶盖" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze seat" -msgstr "软泥座椅" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze receptacle" -msgstr "软泥容器" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze pouch (under)" -msgstr "软泥储存箱(车底)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze walkway" -msgstr "软泥过道" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze hatch" -msgstr "软泥舱门" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque ooze hatch" -msgstr "不透明软泥舱门" - -#: lang/json/vehicle_part_from_json.py -msgid "amorphous core" -msgstr "无定形核心" - -#. ~ Description for {'str': 'amorphous core'} -#: lang/json/vehicle_part_from_json.py -msgid "An amorphous mass, the living heart and brain of a blob vehicle." -msgstr "一坨形状不定的物质,变形怪载具的活着的心脏和大脑。" +msgid "mounted tactical shotgun" +msgstr "车载战术霰弹枪" #: lang/json/vehicle_part_from_json.py -msgid "snow slider" -msgstr "变形怪冰川滑板" +msgid "mounted heavy machinegun" +msgstr "车载重机枪" -#. ~ Description for {'str': 'snow slider'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob, existing in a super-cooled state. It acts as a wheel." -msgstr "一只活的处于极寒状态的变形怪变成的车轮。" +msgid "mounted assault rifle" +msgstr "车载突击步枪" -#. ~ Description for {'str': 'gelatinous wheel'} -#. ~ Description for {'str': 'gray wheel'} #: lang/json/vehicle_part_from_json.py -msgid "A living blob. It acts as a wheel." -msgstr "一只活的变形怪变成的车轮。" +msgid "mounted light machine gun" +msgstr "车载 轻机枪" #: lang/json/vehicle_part_from_json.py -msgid "diamond barrier" -msgstr "钻石屏障" +msgid "mounted automatic grenade launcher" +msgstr "车载自动榴弹发射器" -#. ~ Description for {'str': 'diamond barrier'} #: lang/json/vehicle_part_from_json.py -msgid "A transparent, solid sheet of self-sustaining crystals." -msgstr "一片透明而坚固的可再生的钻石结晶隔板。" +msgid "bulette plating" +msgstr "鲨蜥兽骨板" -#. ~ Description for {'str': 'diamond frame'} +#. ~ Description for orichalcum frame #: lang/json/vehicle_part_from_json.py msgid "" -"A framework of super-strong crystal. Other vehicle components can be " +"An expensive magical metal framework. Other vehicle components can be " "mounted on it, and it can be attached to other frames to increase the " "vehicle's size." -msgstr "一个特别坚固的钻石结晶车辆框架。其他载具部件能够安装在它上面,在它四周增加新的车辆框架,就可以增加车辆大小。" +msgstr "一个昂贵的魔法金属车辆框架。其他载具部件能够安装在它上面,在它四周增加新的车辆框架,就可以增加载具大小。" -#. ~ Description for {'str': 'diamond plating'} #: lang/json/vehicle_part_from_json.py -msgid "" -"Transparent crystal armor plate. Will partially protect other components on" -" the same frame from damage." -msgstr "一块透明的钻石结晶装甲板。能够部分保护安装在此处车架的其他部件免受伤害。" +msgid "mana frame" +msgstr "魔法车架" + +#. ~ Description for mana frame +#: lang/json/vehicle_part_from_json.py +msgid "A shape of pure mana that can float and carry items." +msgstr "一个由纯粹魔力构成的飘浮碟,可以用来搬运物品。" #: lang/json/vitamin_from_json.py msgid "Calcium" @@ -192598,11 +188584,20 @@ msgstr "触发条件:" msgid "%s/%s " msgstr "%s/%s" +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "于 %s 完成" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "于 %s 失败" + #: src/achievement.cpp msgid "" "\n" @@ -192651,10 +188646,6 @@ msgstr "其他" msgid "Debug" msgstr "调试" -#: src/action.cpp -msgid "Back" -msgstr "返回" - #: src/action.cpp msgid "Actions" msgstr "行动" @@ -192669,6 +188660,30 @@ msgstr "主菜单" msgid "%s (Direction button)" msgstr "%s(方向键)" +#. ~ Sound of a shovel digging a pit at work! +#. ~ Sound of a shovel filling a pit or mound at work! +#: src/activity_actor.cpp src/activity_handlers.cpp +msgid "hsh!" +msgstr "哼哧!" + +#: src/activity_actor.cpp +msgid "Something crawls out of the coffin!" +msgstr "从棺材里爬出了一些东西!" + +#: src/activity_actor.cpp +msgid "You finish exhuming a grave." +msgstr "你完成了掘墓。" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging the %s." +msgstr "你完成了%s的挖掘。" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging up %s." +msgstr "你完成了%s的挖掘。" + #: src/activity_actor.cpp msgid "Use electrohack?" msgstr "使用电子黑客仪?" @@ -192693,8 +188708,8 @@ msgstr "你的能量被吸走了!" msgid "You cannot hack this." msgstr "你无法入侵它。" -#: src/activity_actor.cpp src/activity_handlers.cpp src/computer_session.cpp -#: src/computer_session.cpp src/iuse.cpp src/map.cpp +#: src/activity_actor.cpp src/computer_session.cpp src/computer_session.cpp +#: src/iuse.cpp src/map.cpp msgid "an alarm sound!" msgstr "一声警报!" @@ -192722,10 +188737,118 @@ msgstr "你激活了面板!" msgid "The nearby doors unlock." msgstr "附近的门解锁了。" +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "" + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "" + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "红色的线总是能启动引擎,不是么?" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "" + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "移动中断了自动拾取。" +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "随着一声令人满意的咔哒声,勾花围栏大门被打开了。" + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "随着一声令人满意的咔哒声,门上的锁被打开了。" + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "门开了……" + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "你笨拙的尝试开锁,结果把锁眼给堵住了!" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "你想打开门锁,结果失败了,还摧毁了你的工具。" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "你想打开门锁,结果不仅失败了,还损坏了你的工具。" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "你想打开门锁,结果失败了。" + +#: src/activity_actor.cpp src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "不能在骑乘时这样做。" + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "附近没有可以开锁的对象。" + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "在哪儿使用开锁工具?" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "你撬着自己的鼻子,叮!你成功了!" + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" +"你可以挖你的朋友,也可以\n" +"挖你的鼻子,但你不可以挖\n" +"你朋友的鼻子。" + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "门没有锁上。" + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "这里可撬不动。" + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "你觉得你现在应该睡着了,但不知怎么你还醒着。" + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "你辗转反侧……" + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "你尝试睡觉,但睡不着。" + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "你无法入睡,是否继续尝试?" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "停止入睡并起床。" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "继续尝试入睡。" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "继续尝试入睡并不再提示。" + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -192793,9 +188916,9 @@ msgstr "你需要将尸体悬挂起来才能屠宰它,你已经有长绳但是 #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." -msgstr "要对这么大的尸体进行完全屠宰,你需要一个屠宰架或者附近有个悬挂的挂肉钩。如果用长绳和树来悬挂尸体也够用。" +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." +msgstr "要对这么大的尸体进行完全屠宰,你需要一个屠宰架,一台起重机,或者附近有个悬挂的挂肉钩。如果用长绳和树来悬挂尸体也够用。" #: src/activity_handlers.cpp msgid "" @@ -193065,52 +189188,10 @@ msgstr "你没有发现任何东西。" msgid "The %s runs out of batteries." msgstr "%s的电池电量耗尽。" -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "这根线可以启动引擎。" - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "这根线也许可以启动引擎。" - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "根据排除法,这根线可以启动引擎。" - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "红色的线总是能启动引擎,不是么?" - #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "你完成了回收。" -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "没有能够用来制造丧尸奴仆的尸体!" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "你不停地切除尸体的身体组织,直到你确信丧尸再次复苏时已失去攻击性为止。" - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie" -" won't be able to attack when it reanimates." -msgstr "你切开了尸体并且摘除了一些身体组织,你觉得当丧尸再次复苏时将失去攻击性。" - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "你切的太过了,尸体被弄成了一滩烂肉。" - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "你切开了尸体想要让它无法再攻击,但你不确信是否操作正确。" - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -193256,34 +189337,6 @@ msgstr "咝咝咝咝!" msgid "With a satisfying click, the lock on the safe opens!" msgstr "随着一声令人满足的咔哒声,保险箱的锁被打开了。" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "随着一声令人满意的咔哒声,勾花围栏大门被打开了。" - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "随着一声令人满意的咔哒声,门上的锁被打开了。" - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "门开了……" - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "你笨拙的尝试开锁,结果把锁眼给堵住了!" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "你想打开门锁,结果失败了,还摧毁了你的工具。" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "你想打开门锁,结果不仅失败了,还损坏了你的工具。" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "你想打开门锁,结果失败了。" - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "重复一次" @@ -193414,6 +189467,10 @@ msgstr "你感到有东西扯动了鱼线!" msgid "You finish fishing" msgstr "你完成了钓鱼。" +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "光线不足,你无法阅读!" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "你结束了阅读。" @@ -193440,26 +189497,6 @@ msgstr "你完成了休息,感到神清气爽。" msgid "%s finishes chatting with you." msgstr "%s结束了和你的闲聊。" -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "你辗转反侧……" - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "你无法入睡,是否继续尝试?" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "停止入睡并起床。" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "继续尝试入睡。" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "继续尝试入睡并不再提示。" - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "全自动医疗仪遭遇了灾难性故障。" @@ -193548,10 +189585,6 @@ msgid "" "actually stitching 's wounds." msgstr "全自动医疗仪在接下来的程序中四处乱动,并没有缝合的伤口。" -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "你尝试睡觉,但睡不着……" - #: src/activity_handlers.cpp msgid "" "The Autodoc returns to its resting position after successfully performing " @@ -193698,30 +189731,6 @@ msgstr "你完成了钻孔。" msgid " finishes drilling." msgstr "完成了钻孔。" -#. ~ Sound of a shovel digging a pit at work! -#. ~ Sound of a shovel filling a pit or mound at work! -#: src/activity_handlers.cpp -msgid "hsh!" -msgstr "哼哧!" - -#: src/activity_handlers.cpp -msgid "Something crawls out of the coffin!" -msgstr "从棺材里爬出了一些东西!" - -#: src/activity_handlers.cpp -msgid "You finish exhuming a grave." -msgstr "你完成了掘墓。" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging the %s." -msgstr "你完成了%s的挖掘。" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging up %s." -msgstr "你完成了%s的挖掘。" - #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." @@ -194342,10 +190351,6 @@ msgstr "东南" msgid "South East" msgstr "东南" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "西" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "西" @@ -194536,6 +190541,11 @@ msgstr "< [%s] 改变按键设置 >" msgid "Source area is the same as destination (%s)." msgstr "起始区域与目标相同(%s)。" +#: src/advanced_inv.cpp +#, c-format +msgid "You have no space for %s" +msgstr "你没有足够的空间来储存 %s" + #: src/advanced_inv.cpp msgid "Default layout was saved." msgstr "默认布局已保存。" @@ -194564,10 +190574,6 @@ msgstr "源容器是空的。" msgid "You can unload only liquids into target container." msgstr "你无法将非液体物品装进目标容器。" -#: src/advanced_inv.cpp -msgid "You can't partially unload liquids from unsealable container." -msgstr "你无法将液体从无法密封的容器中部分倒出。" - #: src/advanced_inv.cpp msgid "You can't pick up a liquid." msgstr "你无法捡起液体。" @@ -194666,6 +190672,10 @@ msgstr "背系层" msgid "an aura around you" msgstr "外部光环" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "不明衣物层" + #: src/armor_layers.cpp #, c-format msgid "" @@ -194737,11 +190747,6 @@ msgstr "累赘度:" msgid "Warmth:" msgstr "保暖度:" -#: src/armor_layers.cpp -#, c-format -msgid "Storage (%s):" -msgstr "容积(%s):" - #: src/armor_layers.cpp msgid "Protection" msgstr "防护" @@ -194754,6 +190759,10 @@ msgstr "钝击防护:" msgid "Cut:" msgstr "斩击防护:" +#: src/armor_layers.cpp +msgid "Ballistic:" +msgstr "射击:" + #: src/armor_layers.cpp msgid "Acid:" msgstr "防酸:" @@ -194814,16 +190823,6 @@ msgstr "这件装备让你可以在水下看清东西。" msgid "It can occupy the same space as other things." msgstr "它可以与其它物品同层。" -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "%s离得太远了,没法整理装束。" - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "%s可不是你的友军!" - #: src/armor_layers.cpp msgid "Sort Armor" msgstr "整理装束" @@ -194869,6 +190868,16 @@ msgstr "累赘度和保暖度" msgid "Encumbrance" msgstr "累赘度" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "%s离得太远了,没法整理装束。" + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "%s可不是你的友军!" + #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" @@ -195830,10 +191839,6 @@ msgstr "你并不识字,无法读书!" msgid "Your eyes won't focus without reading glasses." msgstr "没有眼镜,你无法阅读!" -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "光线不足,你无法阅读!" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "他也许能读给你听,但是你失聪了!" @@ -196145,11 +192150,15 @@ msgstr "再试一次,必有收获。" msgid "You train for a while." msgstr "你练了一会儿功。" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp +msgid "It looks like you woke up before your alarm." +msgstr "看起来你在闹钟响起前醒了。" + +#: src/avatar.cpp msgid "It looks like you've slept through your internal alarm…" msgstr "看起来你睡过头了,体内的闹钟没能叫醒你……" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp msgid "It looks like you've slept through the alarm…" msgstr "看起来你睡过头了,闹钟没能叫醒你……" @@ -196157,6 +192166,11 @@ msgstr "看起来你睡过头了,闹钟没能叫醒你……" msgid "You retched, but your stomach is empty." msgstr "你干呕了一阵,但胃已经是空的了。" +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "你(%s)" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "你的书不见了!你停止阅读。" @@ -196231,60 +192245,13 @@ msgstr "无效属性" msgid "Are you sure you want to raise %s? %d points available." msgstr "你确定你要继续升级%s?当前可用点数 %d 点。" -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "你将机甲的腿部电机功率设置为疾行挡。" - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "你轻轻触碰你的马,使它平稳地小跑。" - -#: src/avatar.cpp -msgid "You start walking." -msgstr "你开始行走。" - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "你将机甲的腿部电机功率设置为最高挡。" - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "你策马疾驰。" - -#: src/avatar.cpp -msgid "You start running." -msgstr "你加快速度,开始奔跑。" - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "你的马太累了,跑不动了。" - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "你需要双腿才能奔跑。" - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "你力竭了,无法奔跑。" - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "你将机甲的腿部电机功率设置为最低挡。" - -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "你放慢坐骑速度,开始步行。" - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "你开始蹲伏。" - -#. ~ %1$s: weapon name, %2$s: holster name +#. ~ %1$s: weapon name +#. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp #, c-format msgctxt "holster" -msgid "Draw %1$s from %2$s?" -msgstr "从 %2$s 拔出 %1$s?" +msgid "Draw from %1$s?" +msgstr "拔出%1$s中的武器?" #: src/avatar.cpp src/monexamine.cpp #, c-format @@ -196328,11 +192295,11 @@ msgstr "怪物挡道。自动移动取消。" msgid "Move into the monster to attack." msgstr "向怪物移动以进攻。" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" msgstr "你神游物外,你的身体也我行我素!" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything…" msgstr "你太木愣了,无法打击任何物体……" @@ -196543,11 +192510,6 @@ msgstr "这草已枯萎或破碎,你吃不了。" msgid "This grass is tainted with paint and thus inedible." msgstr "这草被油漆污染,你吃不了。" -#: src/avatar_action.cpp -#, c-format -msgid "You leave the empty %s." -msgstr "你丢下空%s。" - #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "你缩在龟壳里无法有效投掷物品。" @@ -197165,10 +193127,6 @@ msgstr "的%s燃料不足,无法自动启动。" msgid "Your %s powers down." msgstr "%s的能量耗尽了。" -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "人工黑夜制造机已激活!" - #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." @@ -197239,6 +193197,14 @@ msgstr "操作失败。" msgid "The %s screws up the operation." msgstr "%s把操作搞砸了。" +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "你没有足够的麻醉剂安装生化插件。" + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "你没有所需要的部件来安装生化插件。" + #: src/bionics.cpp msgid "You prep to begin surgery." msgstr "你准备好接受手术。" @@ -197702,7 +193668,7 @@ msgstr "%1$s %2$s" #, c-format msgctxt "martial art bonus" msgid "* %1$s: %2$d%% of %3$s" -msgstr "* %1$s:乘%3$s的 %2$d%% " +msgstr "* %1$s:乘 %2$d%% %3$s 值" #. ~ %1$s: bonus name, %2$d: bonus percentage #: src/bonuses.cpp @@ -197716,7 +193682,7 @@ msgstr "* %1$s:%2$d%%" #, c-format msgctxt "martial art bonus" msgid "* %1$s: %2$+d%% of %3$s" -msgstr "* %1$s:按%3$s的 %2$+d%% 改变" +msgstr "* %1$s:%2$+d%% %3$s 值" #. ~ %1$s: bonus name, %2$+d: bonus value #: src/bonuses.cpp @@ -197775,7 +193741,7 @@ msgstr[0] "%d 年" #. this same comment #: src/calendar.cpp msgid " forever" -msgstr " 一直" +msgstr " 永远" #. ~ Right-aligned time string. should right-align with other strings with #. this same comment @@ -197980,6 +193946,46 @@ msgstr "升" msgid "quart" msgstr "夸脱" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "公里" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "米" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "厘米" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "毫米" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "英寸" + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "英里" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "码" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "英尺" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -198281,13 +194287,6 @@ msgstr "%s 尺寸过大,穿起来很累赘!也许该裁剪一下……" msgid "This %s is too small to wear comfortably! Maybe it could be refitted." msgstr "%s 尺寸过小,穿起来很累赘!也许该裁剪一下……" -#. ~ %1$s: item name, %2$s: container name -#: src/character.cpp -#, c-format -msgctxt "container" -msgid "You put the %1$s in your %2$s." -msgstr "你将 %1$s 放进 %2$s。" - #: src/character.cpp msgid "You can't place items here!" msgstr "你不能将物品放在那里!" @@ -198521,12 +194520,8 @@ msgid "Slaked" msgstr "喝足" #: src/character.cpp -msgid "Engorged" -msgstr "饱食超量" - -#: src/character.cpp -msgid "Sated" -msgstr "过饱" +msgid "Satisfied" +msgstr "满足" #: src/character.cpp msgid "Hungry" @@ -198536,21 +194531,21 @@ msgstr "饥饿" msgid "Very Hungry" msgstr "非常饥饿" -#: src/character.cpp -msgid "Starving!" -msgstr "几乎饿死!" - #: src/character.cpp msgid "Near starving" msgstr "极度饥饿" +#: src/character.cpp +msgid "Starving!" +msgstr "几乎饿死!" + #: src/character.cpp msgid "Famished" msgstr "严重饥饿" #: src/character.cpp -msgid "Peckish" -msgstr "空腹" +msgid "ERROR!" +msgstr "错误!" #: src/character.cpp src/npctalk.cpp msgid "Exhausted" @@ -198596,22 +194591,42 @@ msgstr "你蜷缩身躯挤进这辆车。" msgid "You have a sudden heart attack!" msgstr "你突然发作心脏病!" +#: src/character.cpp +msgid " has a sudden heart attack!" +msgstr " 突然心脏病发作!" + #: src/character.cpp msgid "Your breathing stops completely." msgstr "你的呼吸完全停止了。" +#: src/character.cpp +msgid "'s breathing stops completely." +msgstr " 停止了呼吸!" + #: src/character.cpp msgid "Your heart spasms painfully and stops." msgstr "你的心脏痛苦地痉挛……随后停止了跳动。" +#: src/character.cpp +msgid "'s heart spasms painfully and stops." +msgstr " 的心脏痛苦地痉挛,然后停止了跳动。" + #: src/character.cpp msgid "Your heart spasms and stops." msgstr "你的心脏痉挛了一阵,然后停止了跳动。" +#: src/character.cpp +msgid "'s heart spasms and stops." +msgstr " 的心脏痉挛了一阵,然后停止了跳动。" + #: src/character.cpp msgid "Your breathing slows down to a stop." msgstr "你的呼吸渐渐停止。" +#: src/character.cpp +msgid "'s breathing slows down to a stop." +msgstr " 的呼吸渐渐停止。" + #: src/character.cpp msgid "You have starved to death." msgstr "你饿死了。" @@ -198884,6 +194899,12 @@ msgstr "没有可用该物品治疗的肢体。" msgid "Cancel" msgstr "取消" +#. ~ you filled to the brim with +#: src/character.cpp +#, c-format +msgid "You filled %1$s to the brim with %2$s." +msgstr "你给 %1$s 注满了 %2$s。" + #: src/character.cpp src/iexamine.cpp #, c-format msgid "You pour %1$s into the %2$s." @@ -199390,7 +195411,7 @@ msgstr "你把 %s 砸碎并收集起来" msgid "You need a hammering tool to crush up frozen liquids!" msgstr "你需要一个捶打工具来砸碎冻住的液体!" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp src/npc.cpp msgid "Wielding: " msgstr "手持:" @@ -199402,11 +195423,6 @@ msgstr "穿着:" msgid "Traits: " msgstr "特性:" -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "你(%s)" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." @@ -200608,7 +196624,7 @@ msgid "This is full of dirt after being on the ground." msgstr "它太脏了,沾满了泥土,不能食用。" #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/player.cpp +#: src/iuse_actor.cpp src/iuse_actor.cpp msgid "You can't do that while underwater." msgstr "你在水下时无法这样做。" @@ -200620,7 +196636,7 @@ msgstr "它已经被冻成冰块了,在食用前需要先解冻。" msgid "You can't drink it while it's frozen." msgstr "你没法喝下已经被冻成冰块的饮料。" -#: src/consumption.cpp src/player.cpp +#: src/consumption.cpp #, c-format msgid "You need a %s to consume that!" msgstr "你需要一个%s来服用它!" @@ -200649,10 +196665,18 @@ msgstr "你不能吃这个。" msgid "This is rotten and smells awful!" msgstr "它已经腐坏,而且闻起来非常恶心!" +#: src/consumption.cpp +msgid "The thought of eating demihuman flesh makes you feel sick." +msgstr "稍有进食半兽人肉的想法都会令你感到恶心。" + #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." msgstr "稍有进食人肉的想法都会令你感到恶心。" +#: src/consumption.cpp +msgid "Eating this raw meat probably isn't very healthy." +msgstr "吃下这块生肉也许不会太健康。" + #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." msgstr "你仍然感到恶心,而且可能会再次呕吐。" @@ -201006,6 +197030,15 @@ msgid " load %1$i charge of %2$s in their %3$s." msgid_plural " load %1$i charges of %2$s in their %3$s." msgstr[0] " 为 %3$s 装填了 %1$i 单位 %2$s。" +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "你没有那东西。" + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "你不能吃你的 %s。" + #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" msgstr "(附近)" @@ -201100,9 +197133,9 @@ msgstr "你无法继续制造那件物品!" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" -msgstr "你没有装%s的容器,可能只能吃掉或倒掉你做的东西!是否继续?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" +msgstr "" #: src/crafting.cpp src/pickup.cpp #, c-format @@ -201865,6 +197898,11 @@ msgctxt "damage type" msgid "stab" msgstr "刺击" +#: src/damage.cpp +msgctxt "damage_type" +msgid "bullet" +msgstr "射击" + #: src/damage.cpp msgctxt "damage type" msgid "heat" @@ -202049,6 +198087,14 @@ msgstr "测试地图事件列表" msgid "Info…" msgstr "信息…" +#: src/debug_menu.cpp +msgid "Enable achievements" +msgstr "启用成就" + +#: src/debug_menu.cpp +msgid "Game…" +msgstr "游戏..." + #: src/debug_menu.cpp msgid "Teleport - short range" msgstr "短距传送" @@ -202495,6 +198541,10 @@ msgstr "口渴" msgid "Fatigue" msgstr "疲劳" +#: src/debug_menu.cpp +msgid "Sleep Deprivation" +msgstr "睡眠不足" + #: src/debug_menu.cpp msgid "Reset all basic needs" msgstr "重置所有基本需求" @@ -202879,6 +198929,14 @@ msgstr "设置回合为?(一日为 %i 回合)" msgid "Enter benchmark length (in milliseconds):" msgstr "输入渲染测试时长(毫秒):" +#: src/debug_menu.cpp +msgid "Achievements are already enabled" +msgstr "已经启用了成就" + +#: src/debug_menu.cpp +msgid "Achievements enabled" +msgstr "成就已启用" + #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " @@ -203121,7 +199179,7 @@ msgstr "%s %d级[%s]%d轮" msgid "trap: %s (%d)" msgstr "陷阱:%s(%d)" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "那里有一辆 %s。部件:" @@ -206050,7 +202108,12 @@ msgstr "树上的花朵绽放出真菌!" #: src/game.cpp #, c-format msgid "You completed the achievement \"%s\"." -msgstr "你完成了成就 “%s”。" +msgstr "你完成了成就\"%s\"。" + +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "你破除了守则\"%s\"。" #: src/game.cpp src/options.cpp #, c-format @@ -206221,6 +202284,16 @@ msgctxt "action" msgid "disassemble" msgstr "拆解" +#: src/game.cpp +msgctxt "action" +msgid "insert" +msgstr "放入" + +#: src/game.cpp +msgctxt "action" +msgid "open" +msgstr "开启" + #: src/game.cpp msgctxt "action" msgid "unfavorite" @@ -206739,11 +202812,6 @@ msgstr "如不添加燃料,将会持续燃烧约%s。" msgid "Without extra fuel it will burn for between %s to %s." msgstr "如不添加燃料,将会持续燃烧%s至%s。" -#: src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "不能在骑乘时这样做。" - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "不能在骑乘时与载具互动。" @@ -206778,6 +202846,44 @@ msgstr "附近没有可以拾取的物品。" msgid "Peek where?" msgstr "窥视哪里?" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "细小" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "较小" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "中等" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "较大" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "巨大" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "你看到一个散发着热量的影像。" + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "它的体型%s。" + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "你感觉到这里有个生物。" + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -206819,17 +202925,17 @@ msgstr "看不见这里。" #: src/game.cpp #, c-format -msgid "%s; Impassable" -msgstr "%s;不可通过" +msgid "Cover: %d%%" +msgstr "隐蔽度:%d%%" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" -msgstr "%s;移动消耗 %d" +msgid "Impassable" +msgstr "不可通过" #: src/game.cpp -msgid "Lighting: " -msgstr "光照:" +#, c-format +msgid "Move cost: %d" +msgstr "移动耗时:%d" #: src/game.cpp #, c-format @@ -206837,8 +202943,8 @@ msgid "Sign: %s" msgstr "标记:%s" #: src/game.cpp -msgid "Sign: ???" -msgstr "标记:???" +msgid "Lighting: " +msgstr "光照:" #: src/game.cpp #, c-format @@ -206850,16 +202956,15 @@ msgstr "下方:%s;无支撑" msgid "Below: %s; Walkable" msgstr "下方:%s;可行走" -#: src/game.cpp -#, c-format -msgid "Coverage: %d%%" -msgstr "隐蔽度:%d%%" - #: src/game.cpp #, c-format msgid "Unfinished task: %s, %d%% complete" msgstr "未完成的任务:%s,当前进度%d%%。" +#: src/game.cpp +msgid "Vehicle: " +msgstr "载具:" + #: src/game.cpp msgid "You cannot see what is inside of it." msgstr "你看不见里头有什么。" @@ -207250,7 +203355,7 @@ msgstr "你至少需要一个%s才能重新装填%s!" msgid "The %s is already full!" msgstr "%s已经满了!" -#: src/game.cpp src/ranged.cpp +#: src/game.cpp #, c-format msgid "You can't reload a %s!" msgstr "你不能重新装填%s!" @@ -207992,8 +204097,40 @@ msgid "Speed %s%d!" msgstr "速度 %s%d!" #: src/game.cpp -msgid "You slip while climbing and fall down again." -msgstr "你爬的时候滑了一下,结果又掉下来了" +msgid "Your skill in parkour makes it easier to climb." +msgstr "" + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "" + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "" + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "" + +#: src/game.cpp +msgid "You slip while climbing and fall down." +msgstr "" #: src/game.cpp msgid "Climbing is impossible in your current state." @@ -208010,6 +204147,11 @@ msgid "" "%d/%d" msgstr "已分配的物品快捷键: %d/%d" +#: src/game_inventory.cpp +#, c-format +msgid "Inventory of %s" +msgstr "%s的物品栏" + #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." msgstr "你的物品栏是空的。" @@ -208034,6 +204176,10 @@ msgstr "钝击" msgid "CUT" msgstr "斩击" +#: src/game_inventory.cpp +msgid "BULLET" +msgstr "子弹" + #: src/game_inventory.cpp msgid "ACID" msgstr "防酸" @@ -208127,6 +204273,15 @@ msgstr "%.2f%s" msgid "VOLUME" msgstr "体积" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "%s" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "消耗时间" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "新鲜度" @@ -208358,6 +204513,10 @@ msgstr "近战" msgid "MOVES" msgstr "行动点" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "手持耗时" + #: src/game_inventory.cpp msgid "Wield item" msgstr "手持物品" @@ -208368,22 +204527,27 @@ msgstr "你没有可以手持的物品。" #: src/game_inventory.cpp #, c-format -msgid "You can't put anything into your %s." -msgstr "你不能把任何东西放进%s。" - -#: src/game_inventory.cpp src/iuse_actor.cpp -msgid "Holster item" -msgstr "收起物品" +msgid "Put item into %s" +msgstr "把物品放进%s" #: src/game_inventory.cpp #, c-format msgid "Choose an item to put into your %s" msgstr "选择要放进%s的物品" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "放入物品" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." -msgstr "你没有可以放进%s的物品。" +msgid "Insert items into %s" +msgstr "把物品放入%s" + +#: src/game_inventory.cpp +#, c-format +msgid "Could not put %s into %s, aborting." +msgstr "无法将 %s 放入 %s,操作已中断。" #: src/game_inventory.cpp src/iuse.cpp msgid "Cut up what?" @@ -208665,34 +204829,6 @@ msgstr "你需要至少选择一类怪物。" msgid "Special Zombies" msgstr "特殊丧尸" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "经典丧尸" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "三尖树" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "机器人" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "异界" - -#: src/gamemode_defense.cpp src/handle_action.cpp -msgid "Food" -msgstr "食物" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "雇佣兵" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "允许存档" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "防御模式" @@ -208769,7 +204905,35 @@ msgstr "每波怪物的奖金增幅。" msgid "Enemy Selection:" msgstr "敌人种类:" -#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "经典丧尸" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "三尖树" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "机器人" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "异界" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "食物" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "雇佣兵" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "允许存档" + +#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp src/options.cpp msgid "Custom" msgstr "自定义" @@ -208853,6 +205017,10 @@ msgstr "购物广场" msgid "Bar" msgstr "酒吧" +#: src/gamemode_defense.cpp +msgid "Mansion" +msgstr "别墅" + #: src/gamemode_defense.cpp msgid "One entrance and many rooms. Some medical supplies." msgstr "一个入口和许多房间。一些医疗用品。" @@ -209137,6 +205305,10 @@ msgstr "你根本不知道怎么让这辆载具飞起来。" msgid "This vehicle doesn't look very airworthy." msgstr "这辆载具看起来无法飞行。" +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "这台载具飞行需要开启实验性Z轴。" + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "你驾驶载具下降。" @@ -209522,16 +205694,8 @@ msgid "Change to which movement mode?" msgstr "切换到哪种移动模式?" #: src/handle_action.cpp -msgid "Run" -msgstr "奔跑" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "行走" - -#: src/handle_action.cpp -msgid "Crouch" -msgstr "蹲伏" +msgid "Cycle move mode" +msgstr "" #: src/handle_action.cpp msgid "You don't know any spells to cast." @@ -210026,6 +206190,10 @@ msgid "Withdraw how much? Max: %d cent. (0 to cancel) " msgid_plural "Withdraw how much? Max: %d cents. (0 to cancel) " msgstr[0] "取出多少?上限:%d 分。(输入 0 取消)" +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "这个自动售货机空了。" @@ -211197,16 +207365,19 @@ msgid "You're illiterate, and can't read the screen." msgstr "文豪,你不识字啊,看什么看呢。" #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" -msgstr "失败!未发现油泵!" +#, c-format +msgid "Failure! No %s pumps found!" +msgstr "失败!未发现 %s 油泵!" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" -msgstr "失败!未发现油箱!" +#, c-format +msgid "Failure! No %s tank found!" +msgstr "失败!未发现 %s 油箱!" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." -msgstr "本站汽油储备已用完。对此我们深表歉意。" +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." +msgstr "本站 %s 储备已用完。对此我们深表歉意。" #: src/iexamine.cpp msgid "Welcome to AutoGas!" @@ -211217,36 +207388,41 @@ msgid "What would you like to do?" msgstr "你想做什么?" #: src/iexamine.cpp -msgid "Buy gas." -msgstr "购买汽油。" +#, c-format +msgid "Buy %s." +msgstr "购买 %s。" #: src/iexamine.cpp msgid "Refund cash." msgstr "退还现金。" #: src/iexamine.cpp -msgid "Current gas pump: " -msgstr "当前油泵:" +#, c-format +msgid "Current %s pump: " +msgstr "当前 %s 油泵:" #: src/iexamine.cpp -msgid "Choose a gas pump." -msgstr "选择油泵:" +#, c-format +msgid "Choose a %s pump." +msgstr "选择 %s 油泵:" #: src/iexamine.cpp msgid "Your discount: " msgstr "你的折扣:" #: src/iexamine.cpp -msgid "Your price per gasoline unit: " -msgstr "汽油价格:" +#, c-format +msgid "Your price per %s unit: " +msgstr "%s 价格:" #: src/iexamine.cpp msgid "Hack console." msgstr "侵入电脑。" #: src/iexamine.cpp -msgid "Please choose gas pump:" -msgstr "请选择油泵:" +#, c-format +msgid "Please choose %s pump:" +msgstr "请选择 %s 油泵:" #: src/iexamine.cpp msgid "Pump " @@ -211258,8 +207434,8 @@ msgstr "没有足够现金,你需要充值。" #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" -msgstr "购买多少升汽油?上限:%d 升。(输入 0 取消)" +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" +msgstr "购买多少升 %s?上限:%d 升。(输入 0 取消)" #: src/iexamine.cpp msgid "Glug Glug Glug" @@ -211312,8 +207488,8 @@ msgid "You jump over an obstacle." msgstr "你跳过了一个障碍物。" #: src/iexamine.cpp -msgid "You can't climb down there" -msgstr "你无法从那里爬下去" +msgid "You can't climb down there." +msgstr "" #: src/iexamine.cpp #, c-format @@ -211339,6 +207515,14 @@ msgstr "从这里下去你可以轻易的再爬上来。要爬下去吗?" msgid "You may have problems climbing back up. Climb down?" msgstr "你再要爬上来可不容易。要爬下去吗?" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "" + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "你决定从洞口边退回来。" @@ -211370,8 +207554,8 @@ msgstr "病人已经死亡。请移走尸体再继续。系统已退出。" #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate." -" Please move patient to appropriate facility. Exiting." +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." msgstr "错误。仿生水平检测:完全改造人。全自动医疗仪 Mk. XI 无法运行,请将患者转移到适当的设施。系统已退出。" #: src/iexamine.cpp @@ -211924,10 +208108,6 @@ msgstr "载具部件" msgid "Traps" msgstr "陷阱" -#: src/init.cpp -msgid "Bionics" -msgstr "生化插件" - #: src/init.cpp msgid "Terrain" msgstr "地形" @@ -211964,6 +208144,10 @@ msgstr "载具原型" msgid "Mapgen weights" msgstr "地图生成权重" +#: src/init.cpp +msgid "Behaviors" +msgstr "行为" + #: src/init.cpp msgid "Monster types" msgstr "怪物种类" @@ -211980,6 +208164,10 @@ msgstr "怪物势力" msgid "Factions" msgstr "阵营" +#: src/init.cpp +msgid "Move modes" +msgstr "" + #: src/init.cpp msgid "Crafting recipes" msgstr "制造配方" @@ -212000,10 +208188,6 @@ msgstr "NPC 职业" msgid "Missions" msgstr "任务" -#: src/init.cpp -msgid "Behaviors" -msgstr "行为" - #: src/init.cpp msgid "Harvest lists" msgstr "收获列表" @@ -212016,8 +208200,8 @@ msgstr "身体构造" msgid "Mutations" msgstr "变异" -#: src/init.cpp -msgid "Achivements" +#: src/init.cpp src/scores_ui.cpp +msgid "Achievements" msgstr "成就" #: src/init.cpp @@ -212076,6 +208260,10 @@ msgstr "地图事件" msgid "Ammunition types" msgstr "弹药类型" +#: src/init.cpp +msgid "Bionics" +msgstr "生化插件" + #: src/init.cpp msgid "Gates" msgstr "大门" @@ -212112,6 +208300,10 @@ msgstr "气味类型" msgid "Scores" msgstr "纪录" +#: src/init.cpp +msgid "Achivements" +msgstr "成就" + #: src/init.cpp msgid "Disease types" msgstr "疾病类型" @@ -212520,7 +208712,7 @@ msgstr "你需要两个物品来比较。用 %s 来选择它们。" msgid "No items were selected. Use %s to select them." msgstr "没有选择任何物品。用 %s 选择它们。" -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "丢下物品" @@ -212642,14 +208834,18 @@ msgstr "对混合" msgid "Material: %s" msgstr "材质:%s" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp src/item_pocket.cpp msgid "Volume: " msgstr "体积:" -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "重量:" +#: src/item.cpp +msgid "Length: " +msgstr "长度:" + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -212781,6 +208977,10 @@ msgstr "兴奋" msgid "Portions: " msgstr "分量:" +#: src/item.cpp +msgid "Consume time: " +msgstr "进食耗时:" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "* 这件物品使用后会 上瘾。" @@ -212858,7 +209058,7 @@ msgstr "* 这份食物的品质会在冰冻时受到损害,解冻后口感会 msgid "" "* It was frozen once and after thawing became mushy and " "tasteless. It will rot quickly if thawed again." -msgstr "* 这份食物被冷冻过一次,解冻后口感变得 粘糊而无味。再次解冻就会快速腐烂。" +msgstr "* 这份食物被冷冻过一次,解冻后口感变得 粘糊而无味。再次解冻就会快速腐烂。" #: src/item.cpp msgid "* It seems that deep freezing killed all parasites." @@ -212880,7 +209080,7 @@ msgstr "* 这份食物已经开始腐坏,但你的变 msgid "" "This food has started to rot. Eating it would be a " "very bad idea." -msgstr "※这份食物已经开始腐坏吃这东西是个坏主意。" +msgstr "* 这份食物已经开始腐坏吃下它是个坏主意。" #: src/item.cpp #, c-format @@ -212981,7 +209181,7 @@ msgstr "实际后坐力:" #: src/item.cpp msgid " (with bipod )" -msgstr "(带三脚架 )" +msgstr "(带双脚架 )" #: src/item.cpp msgid "Recommended strength (burst): " @@ -213025,6 +209225,10 @@ msgstr "50%命中距离:" msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr "" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "瞄准用时:" @@ -213047,6 +209251,10 @@ msgid "Contains %i casing" msgid_plural "Contains %i casings" msgstr[0] "装着 %i 个弹壳" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "" + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -213057,7 +209265,15 @@ msgstr "这个模组必须装在枪上,不能够直接拿来射 msgid "" "When attached to a gun, allows making reach melee " "attacks with it." -msgstr "装在枪械上就能够作出远距近战攻击。" +msgstr "这个模组装上后近战时 能够 远距攻击。" + +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "" + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" #: src/item.cpp msgid "Dispersion modifier: " @@ -213113,6 +209329,10 @@ msgstr "防护:钝击:" msgid "Cut: " msgstr "斩击:" +#: src/item.cpp +msgid "Ballistic: " +msgstr "射击:" + #: src/item.cpp msgid "Acid: " msgstr "防酸:" @@ -213265,11 +209485,11 @@ msgstr "保暖度:" #: src/item.cpp msgid " (fits)" -msgstr " (合身)" +msgstr "(合身)" #: src/item.cpp msgid " (poor fit)" -msgstr " (不合身)" +msgstr "(不合身)" #: src/item.cpp msgid " (too big)" @@ -213295,10 +209515,6 @@ msgstr "累赘度:" msgid "Encumbrance when full: " msgstr "装满时累赘度:" -#: src/item.cpp -msgid "Storage: " -msgstr "容积:" - #: src/item.cpp msgid "Weight capacity modifier: " msgstr "负重系数:" @@ -213307,6 +209523,10 @@ msgstr "负重系数:" msgid "Weight capacity bonus: " msgstr "负重增益:" +#: src/item.cpp +msgid "Storage: " +msgstr "容积:" + #: src/item.cpp msgid "* This item can be worn with a helmet." msgstr "* 这件物品可与 头盔同时穿着。" @@ -213492,7 +209712,7 @@ msgid "" msgid_plural "" "A training session with this book takes " "minutes." -msgstr[0] "阅读本书训练技能一次需要消耗 分钟。" +msgstr[0] "阅读此书 训练一次技能 需要 分钟。" #: src/item.cpp msgid "This book has unread chapter." @@ -213513,27 +209733,6 @@ msgstr "这可以帮助你获得更多配方。" msgid "You need to read this book to see its contents." msgstr "你需要先 阅读本书 才能了解其中内容。" -#: src/item.cpp -msgid "This container " -msgstr "这个容器" - -#: src/item.cpp -msgid "can be resealed, " -msgstr "能重新封装," - -#: src/item.cpp -msgid "is watertight, " -msgstr "水密," - -#: src/item.cpp -msgid "prevents spoiling, " -msgstr "防止腐坏," - -#: src/item.cpp -#, c-format -msgid "can store %s %s." -msgstr "容量为%s %s。" - #: src/item.cpp #, c-format msgid "Capacity: %dmJ" @@ -213558,7 +209757,6 @@ msgstr "可用量:%d" msgid "Compatible magazines: " msgstr "兼容弹匣:" -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -213566,9 +209764,33 @@ msgid_plural "Maximum charges of %s." msgstr[0] "最大 单位的 %s。" #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "最大 单位。" +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard " +"batteries." +msgstr "" +"* 这个工具经过改造使用 UPS 供电并且无法一般电池充电。" + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "" +"* 这个工具使用 可充电能量单元 供电并且无法一般电池充电。" + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" +"* 这个工具使用 可充电能量单元 " +"供电并且可在兼容UPS的充电站充电,可以用一般电池充电,但无法取出。" + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "* 这件工具使用 生化能量。" #: src/item.cpp #, c-format @@ -213650,6 +209872,10 @@ msgstr "钝击防护:" msgid "Cut Protection: " msgstr "斩击防护:" +#: src/item.cpp +msgid "Ballistic Protection: " +msgstr "射击防护:" + #: src/item.cpp msgid "Stat Bonus: " msgstr "属性加成:" @@ -213742,7 +209968,12 @@ msgstr "内容物:" msgid "" "* This item is not rigid. Its volume and encumbrance increase " "with contents." -msgstr "* 这件物品 体积可变。它的体积和累赘会随着内容物的增加而增加。" +msgstr "* 这件物品不够 坚硬。它的体积和累赘会随着内容物的增加而增加。" + +#: src/item.cpp +msgid "" +"* This item is not rigid. Its volume increases with contents." +msgstr "* 这件物品不够 坚硬。它的体积会随着内容物的增加而增加。" #: src/item.cpp msgid "* This item does not conduct electricity." @@ -213761,35 +209992,6 @@ msgstr "* 这件物品 导电。" msgid "* This clothing will give you an allergic reaction." msgstr "* 这件装备会让你穿着时产生 过敏反应。" -#: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard " -"batteries." -msgstr "" -"* 这个工具经过改造使用 UPS 供电并且无法一般电池充电。" - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." -msgstr "" -"* 这个工具使用 可充电能量单元 供电并且无法一般电池充电。" - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." -msgstr "" -"* 这个工具使用 可充电能量单元 " -"供电并且可在兼容UPS的充电站充电,可以用一般电池充电,但无法取出。" - -#: src/item.cpp -msgid "* This tool runs on bionic power." -msgstr "* 这件工具使用 生化能量。" - #: src/item.cpp msgid "" "* This item has been modified to listen to radio signals. It " @@ -213811,18 +210013,6 @@ msgid "" "detonate it immediately." msgstr "* 这件物品接受到 无线电信号 后会立即启动 引爆。" -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "* 这件武器需要 空着双手 来射击。" - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "* 这个模组阻挡主武器的视线。" - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "* 这个模组在主武器发射时可能会 磨损 。" - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -214319,26 +210509,11 @@ msgctxt "magazine" msgid "Eject %1$s from %2$s?" msgstr "从 %2$s 卸下 %1$s 吗?" -#: src/item.cpp -#, c-format -msgid "You can't mix loads in your %s." -msgstr "你不能在 %s 里混合装物品。" - -#: src/item.cpp -#, c-format -msgid "That %s isn't water-tight." -msgstr "%s 不是水密容器。" - #: src/item.cpp #, c-format msgid "That %s must be on the ground or held to hold contents!" msgstr "%s 需要放在地上才能装东西!" -#: src/item.cpp -#, c-format -msgid "You can't seal that %s!" -msgstr "你无法将 %s 密封!" - #: src/item.cpp #, c-format msgid "That %1$s won't hold %2$s." @@ -214373,7 +210548,7 @@ msgstr "天啊,你正扛着的机器人开始动起来了!" #: src/item.cpp msgid "Oh dear god, a corpse you're carrying has started moving!" -msgstr "我的天啊,你扛着的一具尸体动起来了!" +msgstr "天啊,你正扛着的尸体开始动起来了!" #: src/item.cpp #, c-format @@ -214477,6 +210652,31 @@ msgstr "没有可以使用的物品" msgid "Execute which action?" msgstr "执行哪个行动?" +#: src/item_contents.cpp +msgid "is not a container" +msgstr "不是容器" + +#: src/item_contents.cpp +msgid "is not rigid" +msgstr "不够坚硬" + +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "总容量:" + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr " 重量:" + +#: src/item_contents.cpp +#, c-format +msgid "%d Pockets with capacity:" +msgstr "%d 个口袋容量:" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" +msgstr "口袋容量:" + #: src/item_factory.cpp msgid "" "Can be activated to increase environmental protection. Will " @@ -214501,6 +210701,179 @@ msgstr "物品栏" msgid "inside %s" msgstr "在%s内" +#: src/item_pocket.cpp +msgid "sealed" +msgstr "密封" + +#: src/item_pocket.cpp +msgid "open" +msgstr "开启" + +#: src/item_pocket.cpp +#, c-format +msgid "Pocket %d:" +msgstr "口袋 %d:" + +#: src/item_pocket.cpp +msgid "Maximum item length: " +msgstr "最大物品长度:" + +#: src/item_pocket.cpp +#, c-format +msgid "Minimum item volume: %s" +msgstr "最小物品体积:%s" + +#: src/item_pocket.cpp +#, c-format +msgid "Maximum item volume: %s" +msgstr "最大物品体积:%s" + +#: src/item_pocket.cpp +#, c-format +msgid "Base moves to remove item: %d" +msgstr "取出物品基础耗时:%d" + +#: src/item_pocket.cpp +msgid "This pocket is rigid." +msgstr "这个口袋足够 坚硬。" + +#: src/item_pocket.cpp +msgid "This pocket can contain a liquid." +msgstr "这个口袋可以容纳 液体。" + +#: src/item_pocket.cpp +msgid "This pocket can contain a gas." +msgstr "这个口袋可以容纳 气体。" + +#: src/item_pocket.cpp +msgid "This pocket will spill if placed into another item or worn." +msgstr "穿戴或将其放入其他物品中会使 内容物掉落 。" + +#: src/item_pocket.cpp +msgid "This pocket protects its contents from fire." +msgstr "这个口袋能为 内容物防火。" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Contained items spoil at %.0f%% their original rate." +msgstr "内容物的腐坏速率为基础速率的 %.0f%% 。" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Items in this pocket weigh %.0f%% their original weight." +msgstr "内容物的重量为原始重量的 %.0f%% 。" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "内容物的体积为原始体积的 %.0f%%。" + +#: src/item_pocket.cpp +#, c-format +msgid "%s pocket %d" +msgstr "%s(%d 个口袋)" + +#: src/item_pocket.cpp +#, c-format +msgid "pocket %d" +msgstr "(%d 个口袋)" + +#: src/item_pocket.cpp +msgid "This pocket is empty." +msgstr "这个口袋是空的。" + +#: src/item_pocket.cpp +msgid "This pocket is sealed." +msgstr "这个口袋 可密封 。" + +#: src/item_pocket.cpp +msgid " of " +msgstr "的" + +#: src/item_pocket.cpp +msgid "Contents of this pocket:" +msgstr "内容物:" + +#: src/item_pocket.cpp +msgid "only mods can go into mod pocket" +msgstr "模组口袋仅能放入武器模组" + +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "枪套无法装入此类物品" + +#: src/item_pocket.cpp +msgid "holster already contains an item" +msgstr "枪套中已有物品" + +#: src/item_pocket.cpp +msgid "can't contain liquid" +msgstr "不能储存液体" + +#: src/item_pocket.cpp +msgid "can't mix liquid with contained item" +msgstr "不能将液体与内容物混合" + +#: src/item_pocket.cpp +msgid "can't put non liquid into pocket with liquid" +msgstr "不能将非液体物品放入有液体的口袋中" + +#: src/item_pocket.cpp +msgid "can't contain gas" +msgstr "不能储存气体" + +#: src/item_pocket.cpp +msgid "can't mix gas with contained item" +msgstr "不能将气体与内容物混合" + +#: src/item_pocket.cpp +msgid "can't put non gas into pocket with gas" +msgstr "不能将非气体物品放入有气体的口袋中" + +#: src/item_pocket.cpp +msgid "item does not have correct flag" +msgstr "物品没有正确的属性标签" + +#: src/item_pocket.cpp +msgid "item is not an ammo" +msgstr "物品不是弹药" + +#: src/item_pocket.cpp +msgid "item is not the correct ammo type" +msgstr "物品不是正确的弹药类型" + +#: src/item_pocket.cpp +msgid "tried to put too many charges of ammo in item" +msgstr "尝试放入过多弹药" + +#: src/item_pocket.cpp +msgid "item too big" +msgstr "物品太大" + +#: src/item_pocket.cpp +msgid "item is too long" +msgstr "物品太长" + +#: src/item_pocket.cpp +msgid "item is too small" +msgstr "物品太小" + +#: src/item_pocket.cpp +msgid "item is too heavy" +msgstr "物品太重" + +#: src/item_pocket.cpp +msgid "pocket is holding too much weight" +msgstr "可用重量不足" + +#: src/item_pocket.cpp +msgid "not enough space" +msgstr "可用容量不足" + #: src/itype.h msgid "click." msgstr "喀哒。" @@ -214694,6 +211067,12 @@ msgstr "你觉得自己免疫力更强了,但只是暂时的。" msgid "You no longer need to fear the flu, at least for some time." msgstr "你再也不必担心流感了。至少在一段时间内。" +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "你注意到包装上的日期已经很老了。它可能已经失效了。" + #: src/iuse.cpp msgid "" "You no longer need to worry about asthma attacks, at least for a while." @@ -215222,7 +211601,7 @@ msgstr "真的要没事烫自己玩吗?" #: src/iuse.cpp src/iuse_actor.cpp msgid "" "You are not bleeding or bitten, there is no need to cauterize yourself." -msgstr "你不是流血不止或是被咬伤,没有必要烫自己玩。" +msgstr "你没有流血也没有被咬伤,没有必要自己烫自己玩。" #: src/iuse.cpp msgid "Cauterize any open wounds?" @@ -216074,8 +212453,8 @@ msgstr " 的过滤器需要一个新的滤芯!" #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." -msgstr "你没有可供 %s 使用的滤芯。" +msgid "Your %s doesn't have a filter." +msgstr "" #: src/iuse.cpp #, c-format @@ -218221,17 +214600,13 @@ msgstr[0] "你把 %1$d x %2$s子弹装入%3$s。" #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" -msgstr "%s 扫描着你,同时发出愤怒的哔哔声!" +msgid "You deploy the %s wrong. It is hostile!" +msgstr "你没设好%s的程序,它变成敌对的了!" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "%s 扫描着你,炮塔发出滴滴的友军识别声。" - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." -msgstr "激光炮塔上的指示灯闪烁着,表明光线不足。" +msgid "You deploy the %s." +msgstr "你设置好了%s。" #: src/iuse_actor.cpp msgid "Place npc where?" @@ -218255,36 +214630,6 @@ msgstr "你需要动力源来驱动 %s (比如UPS什么的)。" msgid "There is also a certain bionic that helps with this kind of armor." msgstr "某个生化插件也对这种装甲有用。" -#: src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "附近没有可以开锁的对象。" - -#: src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "在哪儿使用开锁工具?" - -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "你撬着自己的鼻子,叮!你成功了!" - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" -"你可以挖你的朋友,也可以\n" -"挖你的鼻子,但你不可以挖\n" -"你朋友的鼻子。" - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "门没有锁上。" - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "这里可撬不动。" - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "充当工作台" @@ -218413,10 +214758,6 @@ msgstr "如果天气不变,大概需要 %d 分钟来生火。" msgid "At your skill level, it will take around %d minutes to light a fire." msgstr "按你当前技能等级,需要约 %d 分钟来生火。" -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "你没有那东西。" - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -218562,38 +214903,6 @@ msgstr "你需要火源(消耗 4 点能量)来灼烧消毒。" msgid "You need at least %d charges to cauterize wounds." msgstr "你需要至少 %d 点能量来烧灼消毒伤口。" -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "没有合适的尸体" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "给尸体做手术让它复苏后成为你的奴隶现在对你来说太难承受了。提升技生存能或者提升心情后再试。" - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "选择将丧尸改造成丧尸奴仆?" - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "制做爱人,不是奴隶。" - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "嗨,至少这比把它们切成肉浆更有用……" - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "你觉得切割并且奴役人类的尸体实在是恐怖极了!" - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "你需要至少 1 级 %s。" - #: src/iuse_actor.cpp msgid "Hsss" msgstr "咝咝" @@ -218684,6 +214993,10 @@ msgstr "这可以教你很多法术。" msgid "Spells Contained:" msgstr "包含法术:" +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "你无法阅读。" + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -218747,31 +215060,11 @@ msgstr "这件魔法道具可以施放 %2$i 级 %1$s。" msgid "This item never fails." msgstr "这件魔法道具不会施法失败。" -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too big to fit in your %2$s" -msgstr "%1$s 对于你的 %2$s 来说太大了!" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too small to fit in your %2$s" -msgstr "%1$s 对于你的 %2$s 来说太小了!" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too heavy to fit in your %2$s" -msgstr "%1$s 对于你的 %2$s 来说太重了!" - #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" msgstr "你认为把 %1$s 放进 %2$s 是个蠢主意。" -#: src/iuse_actor.cpp -#, c-format -msgid "You can't put your %1$s in your %2$s" -msgstr "你不能把 %1$s 放进 %2$s。" - #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" @@ -218782,6 +215075,10 @@ msgstr "你套好%s" msgid "You need to unwield your %s before using it." msgstr "在使用 %s 前请先不要握着它。" +#: src/iuse_actor.cpp +msgid "Holster item" +msgstr "收起物品" + #: src/iuse_actor.cpp #, c-format msgid "Draw %s" @@ -218793,60 +215090,8 @@ msgid "Use %s" msgstr "使用 %s" #: src/iuse_actor.cpp -msgid "Can be activated to store a suitable item." -msgid_plural "Can be activated to store suitable items." -msgstr[0] "可激活用于储存合适的物品。" - -#: src/iuse_actor.cpp -msgid "Num items: " -msgstr "物品数量:" - -#: src/iuse_actor.cpp -msgid "Item volume: Min: " -msgstr "物品体积:最小:" - -#: src/iuse_actor.cpp -msgid " Max: " -msgstr " 最大:" - -#: src/iuse_actor.cpp -msgid "Max item weight: " -msgstr "物品总重:" - -#: src/iuse_actor.cpp -#, c-format -msgid " %s" -msgstr " %s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to store a single round of " -msgid_plural "Can be activated to store up to %i rounds of " -msgstr[0] "可激活并储存 %i 发 " - -#: src/iuse_actor.cpp -#, c-format -msgid "No matching ammo for the %1$s" -msgstr "没有 %1$s 兼容的弹药。" - -#: src/iuse_actor.cpp -#, c-format -msgid "You store the %1$s in your %2$s" -msgstr "你将 %1$s 装进 %2$s" - -#: src/iuse_actor.cpp -msgid "Store ammo" -msgstr "存储弹药" - -#: src/iuse_actor.cpp -#, c-format -msgid "Store ammo in %s" -msgstr "存储弹药进 %s" - -#: src/iuse_actor.cpp src/vehicle_use.cpp -#, c-format -msgid "Unload %s" -msgstr "清空 %s" +msgid "Can be activated to store suitable items." +msgstr "可激活用于储存合适的物品。" #: src/iuse_actor.cpp #, c-format @@ -219161,8 +215406,8 @@ msgid "You can't install bionics while mounted." msgstr "不能在骑乘时安装生化插件。" #: src/iuse_actor.cpp -msgid "You can't self-install bionics." -msgstr "你不能自己帮自己装生化插件。" +msgid "You can't self-install this CBM." +msgstr "你不能自己帮自己装这个生化插件。" #: src/iuse_actor.cpp msgid "You can't install a filthy CBM!" @@ -219307,6 +215552,10 @@ msgstr "钝击防护" msgid "Cut" msgstr "斩击防护" +#: src/iuse_actor.cpp +msgid "Ballistic" +msgstr "射击" + #: src/iuse_actor.cpp msgid "Acid" msgstr "防酸" @@ -219319,10 +215568,6 @@ msgstr "防火" msgid "Warmth" msgstr "保暖度" -#: src/iuse_actor.cpp -msgid "Storage" -msgstr "容积" - #: src/iuse_actor.cpp msgid "Are you sure? You will not gain any materials back." msgstr "你确定吗?你无法拿回原来的材料。" @@ -220202,10 +216447,6 @@ msgstr "那是一只驼鹿,一种极度邪恶的生物。你应该\"快跑!\ msgid "It is SOFTWARE BUG." msgstr "这是软件BUG。" -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "机器人找小猫 v22July2008 - 按\"q\"键退出。" - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "机器人找小猫 v22July2008" @@ -220227,21 +216468,29 @@ msgid ")." msgstr ")。" #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if" " they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" -"你的任务是要找到小猫。它藏在各种混乱的东西里,机器人必须通过碰到物品来检查小猫是否在里边,游戏在机器人找到小猫后就会结束,实际上,你随时都可以按\"q\"/\"Q\"/\"ESC\"键来结束游戏。" +"你的任务是要找到小猫。它藏在各种混乱的东西里,机器人必须通过碰到物品来检查小猫是否在里边,游戏在机器人找到小猫后就会结束,实际上,你随时都可以按 %s " +"键来结束游戏。" #: src/iuse_software_kitten.cpp msgid "Press any key to start." msgstr "按任意键开始。" #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." -msgstr "无效指令:按方向键或者按\"q\"键退出。" +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "机器人找小猫 v22July2008 - 按 %s 键退出。" + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." +msgstr "无效指令:按方向键或者按 %s 键退出。" #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" @@ -220602,8 +216851,8 @@ msgid "Loading" msgstr "读取中" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" -msgstr "错误:能量字符串无效。缺省为无" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" +msgstr "" #: src/magic.cpp msgid "ERROR: Invalid damage type string. Defaulting to none" @@ -220825,6 +217074,12 @@ msgstr "有效目标" msgid "Only affects the monsters: %s" msgstr "有效生物:%s" +#. ~ amount of damage per second, abbreviated +#: src/magic.cpp +#, c-format +msgid ", %d/sec" +msgstr ",%d/秒" + #: src/magic.cpp src/veh_interact.cpp msgid "Damage" msgstr "伤害" @@ -223761,6 +220016,34 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "打开了一座神秘的庙宇。" +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "" + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -225532,12 +221815,35 @@ msgstr "%s 的头颅在一群蠕动的触角中炸裂了!" msgid "The %s lashes its tentacle at you!" msgstr "%s 用它的触手鞭打你!" +#: src/monattack.cpp +#, c-format +msgid "The %s lashes its tentacle at !" +msgstr "%s 用它的触手鞭打 !" + #. ~ 1$s is bodypart name, 2$d is damage value. #: src/monattack.cpp #, c-format msgid "Your %1$s is hit for %2$d damage!" msgstr "你的 %1$s 被击中,受到 %2$d 点伤害!" +#. ~ 1$s is bodypart name, 2$d is damage value. +#: src/monattack.cpp +#, c-format +msgid "'s %1$s is hit for %2$d damage!" +msgstr " 的 %1$s 被击中,受到 %2$d 点伤害!" + +#: src/monattack.cpp +#, c-format +msgid "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" +msgstr "%1$s 伸出触手抓向你的 %2$s,但是被护甲弹开了!" + +#: src/monattack.cpp +#, c-format +msgid "" +"The %1$s lashes its tentacle at 's %2$s, but glances off their " +"armor!" +msgstr "%1$s 伸出触手抓向 的 %2$s,但是被护甲弹开了!" + #: src/monattack.cpp #, c-format msgid "The %s's arms fly out at you, but you dodge!" @@ -225637,6 +221943,10 @@ msgstr "%s 凝视着你,你感到一阵阵的战栗。" msgid "You feel like you're being watched, it makes you sick." msgstr "你感觉像被谁盯着,这让你感到浑身难受。" +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "当幻象突然降临时,你的眼前发黑!" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -226671,18 +222981,6 @@ msgstr "%s 眼中的火焰熄灭了,与此同时,你的武器似乎在微微 msgid "The %s was destroyed! GAME OVER!" msgstr "%s 被摧毁了!GAME OVER!" -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its pockets, but there's nothing left in them." -msgstr "%s 的手伸进口袋,但里面已经什么也不剩了。" - -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its remaining pockets, opening them!" -msgstr "%s 的手伸进口袋,并将其打开 !" - #. ~ %s is the possessive form of the monster's name #: src/mondeath.cpp #, c-format @@ -226725,11 +223023,6 @@ msgstr "\"侦测到来自未知攻击者的射击,反击模式已启动。\"" msgid "zombie slave" msgstr "丧尸奴仆" -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "推开 %s" - #: src/monexamine.cpp msgid "Rename" msgstr "重命名" @@ -227207,10 +223500,6 @@ msgstr "尾随中" msgid "Ignoring." msgstr "无视中" -#: src/monster.cpp -msgid "Zombie slave." -msgstr "尸奴" - #: src/monster.cpp msgid "Hostile!" msgstr "敌对!" @@ -227288,12 +223577,12 @@ msgid "It is nearly dead!" msgstr "濒临死亡!" #: src/monster.cpp -msgid " Difficulty " -msgstr "难度" +msgid "Can see to your current location" +msgstr "能看见你" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" -msgstr "发现了你!" +#: src/monster.cpp +msgid "Can't see to your current location" +msgstr "看不见你" #: src/monster.cpp #, c-format @@ -227343,11 +223632,6 @@ msgstr "这是 %s。%s %s" msgid "It is %s." msgstr "当前状态:%s。" -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "它的体型%s。" - #: src/monster.cpp msgid "an animal" msgstr "一只动物" @@ -227697,6 +223981,15 @@ msgstr "疲劳度:" msgid "Focus trends towards:" msgstr "专注值平衡点:" +#. ~ This should never occur - this is the message when the character swtiches +#. to +#. ~ an invalid move mode or there's not a message for failing to switch to a +#. move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "" + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -228256,8 +224549,8 @@ msgstr "负重:%.1f %s" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" -msgstr "近战伤害加成:%.1f" +msgid "Bash damage bonus: %.1f" +msgstr "" #: src/newcharacter.cpp msgid "" @@ -228606,47 +224899,51 @@ msgstr "场景特点:" #: src/newcharacter.cpp msgid "Spring start" -msgstr "春季开局" +msgstr "春季开局 " #: src/newcharacter.cpp msgid "Summer start" -msgstr "夏季开局" +msgstr "夏季开局 " #: src/newcharacter.cpp msgid "Autumn start" -msgstr "秋季开局" +msgstr "秋季开局 " #: src/newcharacter.cpp msgid "Winter start" -msgstr "冬季开局" +msgstr "冬季开局 " #: src/newcharacter.cpp msgid "Next summer start" -msgstr "次年夏天开局" +msgstr "次年夏天开局 " #: src/newcharacter.cpp msgid "Infected player" -msgstr "玩家被感染" +msgstr "玩家被感染 " #: src/newcharacter.cpp msgid "Drunk and sick player" -msgstr "玩家醉酒且生病" +msgstr "玩家醉酒且生病 " #: src/newcharacter.cpp msgid "Fire nearby" -msgstr "处于火灾现场" +msgstr "玩家被火围困 " #: src/newcharacter.cpp msgid "Zombies nearby" -msgstr "丧尸围困" +msgstr "玩家被丧尸围困 " #: src/newcharacter.cpp msgid "Various limb wounds" -msgstr "四肢多处受伤" +msgstr "四肢多处受伤 " + +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "玩家被真菌感染 " #: src/newcharacter.cpp msgid "No starting NPC" -msgstr "无起始NPC" +msgstr "无起始NPC " #: src/newcharacter.cpp msgid "Search by scenario name." @@ -228660,6 +224957,10 @@ msgstr "身高:" msgid "Age:" msgstr "年龄:" +#: src/newcharacter.cpp src/player_display.cpp +msgid "Blood type:" +msgstr "" + #: src/newcharacter.cpp #, c-format msgid "" @@ -228810,6 +225111,18 @@ msgstr "输入年龄(岁)。最小16,最大55" msgid "Enter height in centimeters. Minimum 145, maximum 200" msgstr "输入身高(厘米)。最低145,最高200" +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "" + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" +msgstr "" + #: src/newcharacter.cpp msgid "Name of template:" msgstr "模板名称:" @@ -228919,13 +225232,12 @@ msgid "%1$s says something but you can't hear it!" msgstr "%1$s 说了些什么但你听不见!" #: src/npc.cpp -msgid "NPC: " -msgstr "NPC:" +msgid "Aware of your presence" +msgstr "发现了你" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" -msgstr "手持着 %s" +msgid "Unaware of you" +msgstr "没发现你" #: src/npc.cpp msgid "Completely untrusting" @@ -229300,8 +225612,13 @@ msgstr "你听到双向无线电里传来 %s 的报告:\"我到了,老大! #: src/npcmove.cpp #, c-format -msgid "%s %s" -msgstr "%s %s " +msgid " %s, %s" +msgstr "" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" +msgstr "" #: src/npcmove.cpp #, c-format @@ -230158,6 +226475,15 @@ msgstr "支付:" msgid "Select a follower" msgstr "选择一名同伴" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to get information on an item." +msgstr "" +"与 %s 交易中。\n" +"按 %s 键切换列表,按字母键选择物品,按 %s 键完成交易,按 %s 键退出交易,按 %s 键查看物品信息。 " + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -230197,12 +226523,7 @@ msgstr "更多 >" #: src/npctrade.cpp msgid "Examine which item?" -msgstr "检查哪个?" - -#: src/npctrade.cpp -#, c-format -msgid "Trade how many containers with %s [MAX: %d]: " -msgstr "交易多少装有%s的容器[最大:%d]:" +msgstr "查看哪个物品?" #: src/npctrade.cpp #, c-format @@ -230238,18 +226559,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "看起来对方同意了!接受这次交易吗?" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to quit,\n" -"? to get information on an item." -msgstr "" -"按\"Tab\"键切换列表,按字母键选择物品,按回车键完成交易,按\"Esc\"键退出交易,\n" -"按\"?\"查看物品信息。" - -#: src/options.cpp -msgid "System language" -msgstr "系统语言" - #: src/options.cpp msgid "General" msgstr "常规" @@ -230270,11 +226579,6 @@ msgstr "默认世界" msgid "Android" msgstr "安卓" -#: src/options.cpp src/overmap_ui.cpp src/ranged.cpp -#, c-format -msgid "%s" -msgstr "%s" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -230320,6 +226624,10 @@ msgstr "Deon" msgid "Basic" msgstr "基础" +#: src/options.cpp +msgid "System language" +msgstr "系统语言" + #: src/options.cpp msgid "Default character name" msgstr "默认角色名称" @@ -230797,6 +227105,11 @@ msgstr "" msgid "12h" msgstr "12小时制" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "军方" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -231276,16 +227589,16 @@ msgid "Terminal width" msgstr "终端宽度" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." -msgstr "设置窗口的宽度(X方向),需要重新启动。" +msgid "Set the size of the terminal along the X axis." +msgstr "" #: src/options.cpp msgid "Terminal height" msgstr "终端高度" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." -msgstr "设置窗口的高度(Y方向),需要重新启动。" +msgid "Set the size of the terminal along the Y axis." +msgstr "" #: src/options.cpp msgid "Font blending" @@ -231405,13 +227718,14 @@ msgid "Choose the tileset you want to use." msgstr "选择你想要的贴图包。" #: src/options.cpp -msgid "Memory map drawing mode" -msgstr "地图记忆绘制模式" +msgid "Memory map overlay preset" +msgstr "地图记忆色彩模式" #: src/options.cpp msgid "" -"Specified the mode in which the memory map is drawn. Requires restart." -msgstr "选择地图记忆的绘制方式。需要重启。" +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." +msgstr "指定地图记忆的绘制色彩模式。需要重新启动。自定义值需要定义明暗色的伽马值和RGB值。" #: src/options.cpp msgid "Darkened" @@ -231421,6 +227735,70 @@ msgstr "变暗" msgid "Sepia" msgstr "旧照片" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "暗色旧照片" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "暗蓝色" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "自定义暗色RGB(红)" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "指定地图记忆自定义暗色RGB值的红色值。" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "自定义暗色RGB(绿)" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "指定地图记忆自定义暗色RGB值的绿色值。" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "自定义暗色RGB(蓝)" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "指定地图记忆自定义暗色RGB值的蓝色值。" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "自定义亮色RGB(红)" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "指定地图记忆自定义亮色RGB值的红色值。" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "自定义亮色RGB(绿)" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "指定地图记忆自定义亮色RGB值的绿色值。" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "自定义亮色RGB(蓝)" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "指定地图记忆自定义亮色RGB值的蓝色值。" + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "自定义伽马" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "指定地图记忆自定义伽马值。" + #: src/options.cpp msgid "Pixel minimap" msgstr "小地图" @@ -231625,126 +228003,6 @@ msgstr "2x" msgid "4x" msgstr "4x" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "起始大地图可视范围" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "决定了游戏开始时大地图已被探索的范围。" - -#: src/options.cpp -msgid "Initial stat points" -msgstr "起始属性点数" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "创建角色时可用属性点数" - -#: src/options.cpp -msgid "Initial trait points" -msgstr "起始特性点数" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "创建角色时可用特性点数" - -#: src/options.cpp -msgid "Initial skill points" -msgstr "起始技能点数" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "创建角色时可用技能点数" - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "最大特性点数" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "创建角色时最大特性点数。" - -#: src/options.cpp -msgid "Skill training speed" -msgstr "技能训练速度" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "技能提升的速度倍率,包括阅读书籍及训练所得的经验。 0.5 代表默认值的一半速度,2.0 快两倍,0.0 时技能只会因NPC 训练提升。" - -#: src/options.cpp -msgid "Skill rust" -msgstr "技能遗忘" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" -" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" -"设置技能遗忘等级。Vanilla:减少经验并降级;Capped:减少经验并降到2级;Int:依据智力水平减少经验并降级;IntCap:依据智力水平减少经验不降级;Off:经验不减少。" - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "Vanilla" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "Capped" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "Int" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "IntCap" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "关" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "3D视野(测试)" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in" -" z-level mode, the vision will extend beyond current z-level. Currently " -"very bugged!" -msgstr "若为 否,视野会仅限于身处的 Z 轴。若为 是 而且启用了 Z 轴,视野会不限于身处的 Z 轴。现在有很多Bug!" - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "3D视野垂直可见范围" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "在实验性的3D视野中能向上向下看多少层。(向上看这么多层,向下也看这么多层)过高的3D视野会严重拖慢游戏速度。能看到的层数越少速度越快。" - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "文件路径编码转换(测试)" - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" -" Windows users." -msgstr "开启时,文件路径在读取时将会从GB18030编码转换到UTF-8编码,写入时反之亦然。供采用CJK系统的Windows玩家使用。" - #: src/options.cpp msgid "Core version data" msgstr "内核版本数据" @@ -232019,6 +228277,126 @@ msgstr "仅独立点数" msgid "No freeform" msgstr "禁用无限制" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "起始大地图可视范围" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "决定了游戏开始时大地图已被探索的范围。" + +#: src/options.cpp +msgid "Initial stat points" +msgstr "起始属性点数" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "创建角色时可用属性点数" + +#: src/options.cpp +msgid "Initial trait points" +msgstr "起始特性点数" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "创建角色时可用特性点数" + +#: src/options.cpp +msgid "Initial skill points" +msgstr "起始技能点数" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "创建角色时可用技能点数" + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "最大特性点数" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "创建角色时最大特性点数。" + +#: src/options.cpp +msgid "Skill training speed" +msgstr "技能训练速度" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "技能提升的速度倍率,包括阅读书籍及训练所得的经验。 0.5 代表默认值的一半速度,2.0 快两倍,0.0 时技能只会因NPC 训练提升。" + +#: src/options.cpp +msgid "Skill rust" +msgstr "技能遗忘" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" +" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" +"设置技能遗忘等级。Vanilla:减少经验并降级;Capped:减少经验并降到2级;Int:依据智力水平减少经验并降级;IntCap:依据智力水平减少经验不降级;Off:经验不减少。" + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "Vanilla" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "Capped" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "Int" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "IntCap" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "关" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "3D视野(测试)" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in" +" z-level mode, the vision will extend beyond current z-level. Currently " +"very bugged!" +msgstr "若为 否,视野会仅限于身处的 Z 轴。若为 是 而且启用了 Z 轴,视野会不限于身处的 Z 轴。现在有很多Bug!" + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "3D视野垂直可见范围" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "在实验性的3D视野中能向上向下看多少层。(向上看这么多层,向下也看这么多层)过高的3D视野会严重拖慢游戏速度。能看到的层数越少速度越快。" + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "文件路径编码转换(测试)" + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" +" Windows users." +msgstr "开启时,文件路径在读取时将会从GB18030编码转换到UTF-8编码,写入时反之亦然。供采用CJK系统的Windows玩家使用。" + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "失焦后自动快速保存" @@ -233040,21 +229418,6 @@ msgstr "智" msgid "PER" msgstr "感" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "跑" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "伏" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "走" - #: src/panels.cpp msgid "DEAF" msgstr "失聪" @@ -233251,7 +229614,7 @@ msgstr "武器:" #: src/panels.cpp msgid "Day " -msgstr "天" +msgstr "日:" #: src/panels.cpp msgid "Temp : " @@ -233388,7 +229751,7 @@ msgstr "穿戴 %s" #: src/pickup.cpp #, c-format -msgid "Spill %s, then pick up %s" +msgid "Spill contents of %s, then pick up %s" msgstr "清空 %s 并捡起 %s" #: src/pickup.cpp @@ -233424,10 +229787,6 @@ msgstr "你无法捡起液体!" msgid "You're overburdened!" msgstr "你负重过高!" -#: src/pickup.cpp -msgid "You struggle to carry such a large volume!" -msgstr "你装不下更多东西了!" - #: src/pickup.cpp msgid "Get items from vehicle cargo" msgstr "从载具中获取物品" @@ -233748,36 +230107,6 @@ msgstr "你的斗篷闪了几下,变得不透明了。" msgid "Your power armor disengages." msgstr "你的动力装甲断开电源了。" -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "用手捧着喝 %s?" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "你不能吃你的 %s。" - -#: src/player.cpp -#, c-format -msgid "You are now wielding an empty %s." -msgstr "你现在拿着一个空的 %s。" - -#: src/player.cpp -#, c-format -msgid "You are now wearing an empty %s." -msgstr "你现在穿着一个空的 %s。" - -#: src/player.cpp -#, c-format -msgid "You drop the empty %s." -msgstr "你丢下了空的 %s。" - -#: src/player.cpp -#, c-format -msgid "%c - %d empty %s" -msgstr "%c - %d 个空的 %s" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -233903,6 +230232,10 @@ msgstr "%s 没有故障可以切换。" msgid "The %s doesn't have any faults to mend." msgstr "%s 没有故障可以修复。" +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "它有些损坏了,但无法被修理。" + #: src/player.cpp #, c-format msgid "" @@ -233991,11 +230324,6 @@ msgstr "你不能脱下那件物品。" msgid " can't take that item off." msgstr "不能脱下那件物品。" -#: src/player.cpp -#, c-format -msgid "No room in inventory for your %s. Drop it?" -msgstr "你的包里装不下 %s 了,把它丢下?" - #: src/player.cpp #, c-format msgid "You take off your %s." @@ -234202,6 +230530,10 @@ msgstr "你感到这个级别的 %s 工作实在是太简单了。" msgid "This task is too simple to train your %s beyond %d." msgstr "这对你来说轻而易举,无法训练 %s 技能超过 %d 级。" +#: src/player.cpp +msgid " (empty)" +msgstr "(空)" + #: src/player.cpp msgid "Wield what?" msgstr "手持什么?" @@ -234260,22 +230592,22 @@ msgstr "速度" #: src/player_display.cpp #, c-format msgid "Swimming movement point cost: %+d\n" -msgstr "游泳行动点消耗:%+d\n" +msgstr "游泳耗时:%+d\n" #: src/player_display.cpp #, c-format -msgid "Running movement point cost: %+d\n" -msgstr "奔跑行动点消耗:%+d\n" +msgid "Movement point cost: %+d\n" +msgstr "移动耗时:%+d\n" #: src/player_display.cpp #, c-format msgid "Reloading movement point cost: %+d\n" -msgstr "装填行动点消耗:%+d\n" +msgstr "装填耗时:%+d\n" #: src/player_display.cpp #, c-format msgid "Melee and thrown attack movement point cost: %+d\n" -msgstr "近战和投掷行动点消耗:%+d\n" +msgstr "近战/投掷耗时:%+d\n" #: src/player_display.cpp #, c-format @@ -234347,6 +230679,10 @@ msgstr "投掷物品时敏捷值:%+.1f\n" msgid "Reduced gun aim speed: %.1f" msgstr "瞄准速度减少:%.1f" +#: src/player_display.cpp +msgid "Weight:" +msgstr "体重:" + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your" @@ -234366,8 +230702,8 @@ msgstr "负重(%s):%.1f" #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" -msgstr "近战伤害:%.1f" +msgid "Bash damage: %.1f" +msgstr "" #: src/player_display.cpp msgid "" @@ -234428,10 +230764,6 @@ msgstr "陷阱侦测水平:%d" msgid "Aiming penalty: %+d" msgstr "瞄准惩罚:%+d" -#: src/player_display.cpp -msgid "Weight:" -msgstr "体重:" - #: src/player_display.cpp msgid "" "Your weight is a general indicator of how much fat your body has stored up, " @@ -234447,6 +230779,20 @@ msgstr "当你站在海平面时,你头顶的海拔高度。๑乛ᴗ乛๑" msgid "This is how old you are." msgstr "这是你的年龄。" +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" +msgstr "" + #: src/player_display.cpp #, c-format msgid "" @@ -234516,6 +230862,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "生化插件加成 +%2d%%" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr " %1$s | %2$s | %3$s" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr " %1$s | %2$s" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "[%s]" + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "职业名称:" + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -234601,18 +230968,6 @@ msgstr "" "阳光极度的刺激你。\n" "力量- 4;敏捷- 4;智力- 4;感知- 4" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr " %1$s | %2$s | %3$s" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr " %1$s | %2$s" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "下一目录" @@ -234622,13 +230977,8 @@ msgid "Cycle to previous category" msgstr "上一目录" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "打开技能训练" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" -msgstr "[%s]" +msgid "Toggle skill training / Upgrade stat" +msgstr "切换技能训练/杀怪属性升级" #: src/player_hardcoded_effects.cpp msgid "You feel nauseous." @@ -234944,10 +231294,6 @@ msgid "" "more." msgstr "你感到很难受,好像中了毒似的,但你还渴求着更多、更加多。" -#: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." -msgstr "几道光芒在你身边闪烁,你被传送了。" - #: src/player_hardcoded_effects.cpp msgid "You are beset with a vision of a prowling beast." msgstr "一只潜行的怪兽的异象困扰着你。" @@ -234956,6 +231302,10 @@ msgstr "一只潜行的怪兽的异象困扰着你。" msgid "Your surroundings are permeated with a foul scent." msgstr "你的周围弥漫着一股难闻的气味。" +#: src/player_hardcoded_effects.cpp +msgid "Glowing lights surround you, and you teleport." +msgstr "几道光芒在你身边闪烁,你被传送了。" + #: src/player_hardcoded_effects.cpp msgid "You pass out." msgstr "你失去了意识。" @@ -235081,6 +231431,10 @@ msgstr "你的 %s 伤口感觉好多了!" msgid "You succumb to the infection." msgstr "你被感染了。" +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "你尝试睡觉,但睡不着……" + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "你觉得精神焕发。" @@ -235116,10 +231470,6 @@ msgstr "你热得辗转反侧。" msgid "It's too hot to sleep." msgstr "你感到太热了,无法睡眠。" -#: src/player_hardcoded_effects.cpp -msgid "It looks like you woke up just before your alarm." -msgstr "看起来你在闹钟响起前醒了。" - #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." msgstr "你的内部计时器响了,而你却还没能睡着过。" @@ -235291,125 +231641,26 @@ msgstr "你手动对%s进行了退膛。" msgid "You feel a surge of euphoria as flames roar out of the %s!" msgstr "在 %s 的火焰呼啸而出时,你感到一阵难以言喻的幸福。" -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "High" -msgstr "高" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Medium" -msgstr "中" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Low" -msgstr "低" - -#: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "None" -msgstr "无" - -#: src/ranged.cpp -#, c-format -msgid "Recoil: %s" -msgstr "后坐力:%s" - -#: src/ranged.cpp -#, c-format -msgid "Firing %s" -msgstr "射击 %s" - -#: src/ranged.cpp -#, c-format -msgid "Throwing %s" -msgstr "投掷 %s" - -#: src/ranged.cpp -#, c-format -msgid "Blind throwing %s" -msgstr "盲掷 %s" - -#: src/ranged.cpp -msgid "Set target" -msgstr "设置目标" - -#: src/ranged.cpp -msgid "< [?] show help >" -msgstr "< [?]显示帮助 >" - -#: src/ranged.cpp -msgid "Move cursor to target with directional keys" -msgstr "使用方向键移动光标到目标" - -#: src/ranged.cpp -msgctxt "[Hotkey] to throw" -msgid "to throw" -msgstr "投掷" - -#: src/ranged.cpp -msgctxt "[Hotkey] to attack" -msgid "to attack" -msgstr "攻击" - -#: src/ranged.cpp -msgctxt "[Hotkey] to cast the spell" -msgid "to cast" -msgstr "施放" - -#: src/ranged.cpp -msgctxt "[Hotkey] to fire" -msgid "to fire" -msgstr "射击" - -#: src/ranged.cpp -#, c-format -msgid "[%s] Cycle targets;" -msgstr "[%s] 切换目标;" - -#: src/ranged.cpp -#, c-format -msgid "[%c] target self; [%c] toggle snap-to-target" -msgstr "[%c] 瞄准自己; [%c] 切换目标锁定" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to steady your aim. (10 moves)" -msgstr "[%c] 继续瞄准目标(10 行动点)。" - -#: src/ranged.cpp -#, c-format -msgid "%sto aim and fire" -msgstr "%s 瞄准并开火射击" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch aiming modes." -msgstr "[%c] 切换瞄准模式。" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch firing modes." -msgstr "[%c] 切换射击模式。" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to reload/switch ammo." -msgstr "[%c] 装填/切换弹药。" - -#: src/ranged.cpp -msgid "RMB: Fire" -msgstr "鼠标右键:射击" - #: src/ranged.cpp msgid "Steadiness" msgstr "稳定度" +#: src/ranged.cpp +msgid "Moves" +msgstr "行动点" + #: src/ranged.cpp msgid "Symbols:" msgstr "符号:" +#: src/ranged.cpp +msgid "" +" Great - Normal - " +"Graze - Moves" +msgstr "" +"暴击 - 普通 - " +"擦伤 - 行动点消耗" + #: src/ranged.cpp msgid "Current" msgstr "当前" @@ -235419,10 +231670,6 @@ msgstr "当前" msgid "%s %s:" msgstr "%s %s:" -#: src/ranged.cpp -msgid "Moves" -msgstr "行动点" - #: src/ranged.cpp #, c-format msgid "" @@ -235444,11 +231691,6 @@ msgctxt "aim_confidence" msgid "Graze" msgstr "擦伤" -#: src/ranged.cpp -#, c-format -msgid "Turrets in range: %d" -msgstr "射程内炮塔:%d" - #: src/ranged.cpp msgctxt "aim_confidence" msgid "Hit" @@ -235481,114 +231723,6 @@ msgstr "精准" msgid "[%c] to take precise aim and fire." msgstr "[%c] 精确瞄准并开火射击。" -#: src/ranged.cpp -msgid "turrets" -msgstr "炮塔" - -#: src/ranged.cpp -#, c-format -msgid "Really attack %s?" -msgstr "真的要攻击 %s?" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d" -msgstr "范围:%s 高度:%d" - -#: src/ranged.cpp -#, c-format -msgid "Targets: %d" -msgstr "目标:%d" - -#: src/ranged.cpp -#, c-format -msgid "Range: %s Elevation: %d Targets: %d" -msgstr "范围:%s 高度:%d 目标:%d" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s %s (%d)" -msgstr "射击模式%s%s(%d)" - -#: src/ranged.cpp -#, c-format -msgid "Firing mode: %s (%d)" -msgstr "射击模式:%s(%d)" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s" -msgstr "子弹:%s" - -#: src/ranged.cpp -#, c-format -msgid "Ammo: %s (%d/%d)" -msgstr "子弹:%s(%d/%d)" - -#: src/ranged.cpp -#, c-format -msgid "%s Delay: %i" -msgstr "%s 延迟:%i" - -#: src/ranged.cpp -#, c-format -msgid "You don't have enough %s to cast this spell" -msgstr "你没有足够的 %s 施法" - -#: src/ranged.cpp -#, c-format -msgid "Casting: %s (Level %u)" -msgstr "施放:%s(%u级)" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s" -msgstr "消耗:%s%s" - -#: src/ranged.cpp -#, c-format -msgid "Cost: %s %s (Current: %s)" -msgstr "消耗:%s%s(当前:%s)" - -#: src/ranged.cpp -#, c-format -msgid "0.0 % Failure Chance" -msgstr "0.0% 几率失败" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d/%d Elevation: %d Targets: %d" -msgstr "范围:%d/%d 高度:%d 目标:%d" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d Elevation: %d Targets: %d" -msgstr "范围:%d 高度:%d 目标:%d" - -#: src/ranged.cpp -#, c-format -msgid "Effective Spell Radius: %s%s" -msgstr "法术有效半径:%s %s" - -#: src/ranged.cpp -msgid " WARNING! IN RANGE" -msgstr "警告!在射程内" - -#: src/ranged.cpp -#, c-format -msgid "Cone Arc: %s degrees" -msgstr "锥弧:%s 度" - -#: src/ranged.cpp -#, c-format -msgid "Line width: %s" -msgstr "线宽:%s" - -#: src/ranged.cpp -#, c-format -msgid "Damage: %s" -msgstr "伤害:%s" - #: src/ranged.cpp msgid "Thunk!" msgstr "咚!" @@ -235669,6 +231803,232 @@ msgstr "咔嘭!" msgid "kerblam!" msgstr "咔嘣!" +#: src/ranged.cpp +#, c-format +msgid "You don't have enough %s to cast this spell" +msgstr "你没有足够的 %s 施法" + +#: src/ranged.cpp +#, c-format +msgid "Really attack %s?" +msgstr "真的要攻击 %s?" + +#: src/ranged.cpp +#, c-format +msgid "Firing %s" +msgstr "射击 %s" + +#: src/ranged.cpp +#, c-format +msgid "Throwing %s" +msgstr "投掷 %s" + +#: src/ranged.cpp +#, c-format +msgid "Blind throwing %s" +msgstr "盲掷 %s" + +#: src/ranged.cpp +msgid "Set target" +msgstr "设置目标" + +#: src/ranged.cpp +msgctxt "[Hotkey] to throw" +msgid "to throw" +msgstr "投掷" + +#: src/ranged.cpp +msgctxt "[Hotkey] to attack" +msgid "to attack" +msgstr "攻击" + +#: src/ranged.cpp +msgctxt "[Hotkey] to cast the spell" +msgid "to cast" +msgstr "施放" + +#: src/ranged.cpp +msgctxt "[Hotkey] to fire" +msgid "to fire" +msgstr "射击" + +#: src/ranged.cpp +msgid "[?] show all controls" +msgstr "[?] 显示全部按键" + +#: src/ranged.cpp +msgid "[?] show help" +msgstr "[?] 显示帮助" + +#: src/ranged.cpp +msgid "Shift view with directional keys" +msgstr "用方向键移动视图" + +#: src/ranged.cpp +msgid "Move cursor with directional keys" +msgstr "用方向键移动光标" + +#: src/ranged.cpp +msgid "Mouse: LMB: Target, Wheel: Cycle," +msgstr "鼠标:左键:瞄准,滚轮:切换," + +#: src/ranged.cpp +msgid "RMB: Fire" +msgstr "鼠标右键:射击" + +#: src/ranged.cpp +#, c-format +msgid "[%s] Cycle targets;" +msgstr "[%s] 切换目标;" + +#: src/ranged.cpp +#, c-format +msgid "[%c] %s." +msgstr "[%c] %s。" + +#: src/ranged.cpp +#, c-format +msgid "[%c] target self; [%c] toggle snap-to-target" +msgstr "[%c] 瞄准自己; [%c] 切换目标锁定" + +#: src/ranged.cpp +msgid "to aim and fire." +msgstr "瞄准并开火。" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to steady your aim. (10 moves)" +msgstr "[%c] 继续瞄准目标(10 行动点)。" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch aiming modes." +msgstr "[%c] 切换瞄准模式。" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to switch firing modes." +msgstr "[%c] 切换射击模式。" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to reload/switch ammo." +msgstr "[%c] 装填/切换弹药。" + +#: src/ranged.cpp +#, c-format +msgctxt "[Hotkey] Show/Hide turrets' lines of fire" +msgid "[%c] %s lines of fire" +msgstr "[%c] %s射击线" + +#: src/ranged.cpp +#, c-format +msgid "Elevation: %d" +msgstr "高度:%d" + +#: src/ranged.cpp +#, c-format +msgid "Targets: %d" +msgstr "目标:%d" + +#: src/ranged.cpp +#, c-format +msgid "Firing mode: %s%s (%d)" +msgstr "射击模式:%s %s(%d)" + +#: src/ranged.cpp +msgid "OUT OF AMMO" +msgstr "弹药耗尽" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s" +msgstr "子弹:%s" + +#: src/ranged.cpp +#, c-format +msgid "Ammo: %s (%d/%d)" +msgstr "子弹:%s(%d/%d)" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "High" +msgstr "高" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Medium" +msgstr "中" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Low" +msgstr "低" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "None" +msgstr "无" + +#: src/ranged.cpp +#, c-format +msgid "Recoil: %s" +msgstr "后坐力:%s" + +#: src/ranged.cpp +#, c-format +msgid "Casting: %s (Level %u)" +msgstr "施放:%s(%u级)" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s" +msgstr "消耗:%s%s" + +#: src/ranged.cpp +#, c-format +msgid "Cost: %s %s (Current: %s)" +msgstr "消耗:%s%s(当前:%s)" + +#: src/ranged.cpp +#, c-format +msgid "0.0 % Failure Chance" +msgstr "0.0% 几率失败" + +#: src/ranged.cpp +#, c-format +msgid "Effective Spell Radius: %s%s" +msgstr "法术有效半径:%s %s" + +#: src/ranged.cpp +msgid " WARNING! IN RANGE" +msgstr "警告!在射程内" + +#: src/ranged.cpp +#, c-format +msgid "Cone Arc: %s degrees" +msgstr "锥弧:%s 度" + +#: src/ranged.cpp +#, c-format +msgid "Line width: %s" +msgstr "线宽:%s" + +#: src/ranged.cpp +#, c-format +msgid "Damage: %s" +msgstr "伤害:%s" + +#: src/ranged.cpp +#, c-format +msgid "%s Delay: %i" +msgstr "%s 延迟:%i" + +#: src/ranged.cpp +#, c-format +msgid "Turrets in range: %d/%d" +msgstr "射程内炮塔:%d / %d" + #: src/recipe.cpp msgid "none" msgstr "无" @@ -235913,14 +232273,36 @@ msgid "Limited" msgstr "受限" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" -msgstr "这局游戏没有有效成就。\n" +msgid "achievements" +msgstr "成就" #: src/scores_ui.cpp +msgid "conducts" +msgstr "守则" + +#: src/scores_ui.cpp +msgid "Conducts" +msgstr "守则" + +#: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." -msgstr "注意:只有当你开始游戏时就已经有成就功能并且现在仍然存在时,这里才会显示成就。" +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." +msgstr "%s被禁用,可能是因为使用了调试菜单。如果你只是为了使用调试菜单来解决游戏中的错误,那么你可以在“调试”->“游戏”菜单下重新启用%s。" + +#: src/scores_ui.cpp +#, c-format +msgid "This game has no valid %s.\n" +msgstr "这局游戏没有有效%s。\n" + +#: src/scores_ui.cpp +#, c-format +msgid "" +"Note that only %s that existed when you started this game and still exist " +"now will appear here." +msgstr "注意:只有当你开始游戏时就已经有%s功能并且现在仍然存在时,这里才会显示。" #: src/scores_ui.cpp msgid "This game has no valid scores.\n" @@ -235938,6 +232320,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "成就" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "守则" + #: src/scores_ui.cpp msgid "SCORES" msgstr "纪录" @@ -236702,7 +233088,7 @@ msgid "A blade swings out and hacks your torso!" msgstr "弹起的刀刃砍到了你的躯干!" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" +msgid "A blade swings out and hacks 's torso!" msgstr "弹起的刀刃砍到了 的躯干!" #: src/trapfunc.cpp @@ -237113,6 +233499,14 @@ msgstr "你不能重新标记此载具,因为它属于:%s。" msgid "Only one %1$s powered engine can be installed." msgstr "只能安装一个 %1$s 引擎。" +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "这台载具不能被这样改造。\n" + +#: src/veh_interact.cpp +msgid "This part cannot be installed.\n" +msgstr "无法安装此部件。\n" + #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." msgstr "集雨器需要被安装在水箱上。" @@ -237264,6 +233658,12 @@ msgstr "光线不足,你无法继续……" msgid "You can't install parts while driving." msgstr "你在驾驶载具时无法安装部件。" +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy." +" Continue?" +msgstr "安装此部件将使载具不可飞行。是否继续?" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "安装此部件将使车辆不可折叠。是否继续?" @@ -237289,8 +233689,22 @@ msgid "Choose a part here to repair:" msgstr "选择所要维修的部件:" #: src/veh_interact.cpp -msgid "This part cannot be repaired" -msgstr "这个部件无法被修理" +msgid "This part cannot be repaired.\n" +msgstr "无法修理此部件。\n" + +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "这台载具不能被修理。\n" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "修理此部件将使载具不可飞行。是否继续?" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "你选择不安装这个部件,以保持载具飞行性能。\n" #: src/veh_interact.cpp msgid "Your morale is too low to mend…" @@ -237353,7 +233767,7 @@ msgstr "电池:%s%+4.1f 千瓦" #: src/veh_interact.cpp msgid "Capacity Status" -msgstr "容量状态" +msgstr "容量" #: src/veh_interact.cpp msgid "Reactors" @@ -237393,6 +233807,10 @@ msgstr "按\"{\"向上滚动列表" msgid "'}' to scroll down" msgstr "按\"}\"向下滚动列表" +#: src/veh_interact.cpp +msgid "This part cannot be uninstalled.\n" +msgstr "无法拆卸此部件。\n" + #: src/veh_interact.cpp #, c-format msgid "" @@ -237402,35 +233820,18 @@ msgstr "移除损坏的 %1$s 可获得部分零件。\n" #: src/veh_interact.cpp #, c-format msgid "" -"Removing the %1$s will yield:\n" +"Removing the %1$s may yield:\n" "> %2$s\n" msgstr "" -"移除 %1$s 可获得:\n" -"> %2$s\n" -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength #: src/veh_interact.cpp #, c-format msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength ( " -"assisted ) %5$i" -msgstr "" -"> %1$s 1 个 %2$s 功能至少 %3$i 级的工具 或 %4$s%5$i " -"力量(含协助者)" - -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength -#: src/veh_interact.cpp -#, c-format -msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength " -"%5$i" +"Removing the %1$s will yield:\n" +"> %2$s\n" msgstr "" -"> %1$s 1 个 %2$s 功能至少 %3$i 级的工具 或 %4$s%5$i " -"力量" +"移除 %1$s 可获得:\n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is pre-translated reason @@ -237455,6 +233856,12 @@ msgstr "你不能拆除连接其他部分的部件。" msgid "Better not remove something while driving." msgstr "驾驶时最好别乱拆部件。" +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "移除此部件将使载具不可飞行。是否继续?" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "这辆载具没有可抽取的液态燃料。" @@ -237904,6 +234311,11 @@ msgstr "你未能达到拆除 %s 的要求。" msgid "You remove the broken %1$s from the %2$s." msgstr "你把损坏的 %1$s 从 %2$s 中拆除。" +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -238612,10 +235024,6 @@ msgstr "你没能在 %s 里找到钥匙。" msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "你没在 %s 里找到钥匙。尝试短接发动载具?" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "拔线打火" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -239120,6 +235528,11 @@ msgstr "关闭洗碗机" msgid "Activate the dishwasher (1.5 hours)" msgstr "启动洗碗机(1.5小时)" +#: src/vehicle_use.cpp +#, c-format +msgid "Unload %s" +msgstr "清空 %s" + #: src/vehicle_use.cpp msgid "Peek through the closed curtains" msgstr "透过窗帘窥视" @@ -239545,11 +235958,6 @@ msgstr "(加标签)" msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" msgstr "[%s]查找,[f]容器,[F]属性标签,[E]所有物品,[%s]退出" -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "%.*s" - #: src/wish.cpp msgid "How many?" msgstr "需要多少?" diff --git a/lang/po/zh_TW.po b/lang/po/zh_TW.po index 96cfa7cf6728f..9757461c5248b 100644 --- a/lang/po/zh_TW.po +++ b/lang/po/zh_TW.po @@ -10,28 +10,28 @@ # Frost Chen , 2019 # Maynard , 2019 # 林楷翌 , 2019 -# Jeremy Wu , 2019 -# kiddragon Chung , 2019 # Julian Lau , 2019 # 鋼龍 , 2019 -# 類凱宇 , 2020 # 菲伊斯 , 2020 # 為勳 周 , 2020 # HOXV , 2020 -# Hsinyu Chan, 2020 # Brett Dong , 2020 -# xap, 2020 -# Laughing Man, 2020 +# 類凱宇 , 2020 # Hao JK , 2020 # Yangerine Yuan , 2020 +# kiddragon Chung , 2020 +# Jeremy Wu , 2020 +# Hsinyu Chan, 2020 +# xap, 2020 +# Laughing Man, 2020 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.E\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-01 12:24+0800\n" +"POT-Creation-Date: 2020-06-05 08:37+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Yangerine Yuan , 2020\n" +"Last-Translator: Laughing Man, 2020\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" @@ -81,6 +81,48 @@ msgid "" "battery cells, but can never be unloaded." msgstr "一些自由浮動的電池料。 可以重填進可充式電池內。 但永遠不能被載卸" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "butane" +msgid_plural "butane" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'butane'} +#: lang/json/AMMO_from_json.py +msgid "A common flammable liquid used in lighters." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "flare pyrotechnic" +msgid_plural "flare pyrotechnic" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'flare pyrotechnic'} +#: lang/json/AMMO_from_json.py +msgid "A pyrotechnic chemical used in flares." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "match" +msgid_plural "matches" +msgstr[0] "" + +#. ~ Description for {'str': 'match', 'str_pl': 'matches'} +#: lang/json/AMMO_from_json.py +msgid "" +"A small stick with a red part at the end. Strike it against a matchbook to " +"light it." +msgstr "" + +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "oxygen" +msgid_plural "oxygen" +msgstr[0] "氧氣" + +#. ~ Description for {'str_sp': 'oxygen'} +#: lang/json/AMMO_from_json.py +msgid "Compressed medical oxygen." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "aluminum foil" msgid_plural "aluminum foils" @@ -99,11 +141,9 @@ msgid_plural "cents" msgstr[0] "分" #. ~ Description for {'str': 'cent'} -#. ~ Description for {'str': 'placeholder ammunition'} -#. ~ Description for {'str_sp': 'software'} -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "IF YOU ARE SEEING THIS IT IS A BUG." -msgstr "你看到這個的話就是有 BUG。" +#: lang/json/AMMO_from_json.py +msgid "A unit of currency equivalent to 0.01 US dollars." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "thread" @@ -239,8 +279,8 @@ msgstr[0] "小石子" #. ~ Description for {'str': 'pebble'} #: lang/json/AMMO_from_json.py -msgid "A handful of pebbles, useful as ammunition for slings or slingshots." -msgstr "一把鵝卵石, 可以用在投石帶或彈弓上。" +msgid "A handful of pebbles, useful as ammunition for slingshots." +msgstr "" #: lang/json/AMMO_from_json.py msgid "clay pellet" @@ -249,10 +289,8 @@ msgstr[0] "陶製彈丸" #. ~ Description for {'str': 'clay pellet'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of round projectiles made of clay, useful for slings or " -"slingshots." -msgstr "一把陶製的圓球, 可以用在投石帶或彈弓上。" +msgid "A handful of round projectiles made of clay, useful for slingshots." +msgstr "" #: lang/json/AMMO_from_json.py msgid "marble" @@ -261,9 +299,8 @@ msgstr[0] "彈珠" #. ~ Description for {'str': 'marble'} #: lang/json/AMMO_from_json.py -msgid "" -"A handful of glass marbles, useful as ammunition for slings or slingshots." -msgstr "一把玻璃彈珠, 可以用在投石帶或彈弓上。" +msgid "A handful of glass marbles, useful as ammunition for slingshots." +msgstr "" #: lang/json/AMMO_from_json.py msgid "bearings" @@ -272,8 +309,8 @@ msgstr[0] "軸承滾珠" #. ~ Description for {'str_sp': 'bearings'} #: lang/json/AMMO_from_json.py -msgid "A box of ball bearings, useful as ammunition for slings or slingshots." -msgstr "一盒滾珠軸承, 可以用在投石帶或彈弓上。" +msgid "A box of ball bearings, useful as ammunition for slingshots." +msgstr "" #: lang/json/AMMO_from_json.py msgid "BB" @@ -282,8 +319,10 @@ msgstr[0] "BB彈" #. ~ Description for {'str': 'BB'} #: lang/json/AMMO_from_json.py -msgid "A box of small steel balls. They deal virtually no damage." -msgstr "一盒小鋼球。幾乎沒有殺傷力。" +msgid "" +"A box of small steel balls that can be fired from a BB gun. They deal " +"virtually no damage." +msgstr "" #: lang/json/AMMO_from_json.py msgid "feather" @@ -395,7 +434,7 @@ msgstr "槍械等級的火藥粉,主要用於裝填大型步槍用子彈。" #: lang/json/AMMO_from_json.py msgid "artillery propellant" msgid_plural "artillery propellants" -msgstr[0] "" +msgstr[0] "火砲推進劑" #. ~ Description for {'str': 'artillery propellant'} #: lang/json/AMMO_from_json.py @@ -407,7 +446,7 @@ msgstr "單基無煙火藥,主要用於火砲推進燃料的裝填。" #: lang/json/AMMO_from_json.py msgid "oxidizer powder" msgid_plural "oxidizer powders" -msgstr[0] "" +msgstr[0] "氧化劑粉" #. ~ Description for {'str': 'oxidizer powder'} #: lang/json/AMMO_from_json.py @@ -417,7 +456,7 @@ msgstr "揮發性粉狀化學氧化劑。" #: lang/json/AMMO_from_json.py msgid "lye powder" msgid_plural "lye powders" -msgstr[0] "" +msgstr[0] "鹼粉" #. ~ Description for {'str': 'lye powder'} #: lang/json/AMMO_from_json.py @@ -523,6 +562,12 @@ msgid "placeholder ammunition" msgid_plural "placeholder ammunitions" msgstr[0] "" +#. ~ Description for {'str': 'placeholder ammunition'} +#. ~ Description for {'str_sp': 'software'} +#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py +msgid "IF YOU ARE SEEING THIS IT IS A BUG." +msgstr "你看到這個的話就是有 BUG。" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "charcoal" msgid_plural "charcoal" @@ -560,6 +605,18 @@ msgid "" "and heating." msgstr "易燃的黑色碳塊, 通常用於烹飪與加熱。" +#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +msgid "albuterol" +msgid_plural "albuterols" +msgstr[0] "" + +#. ~ Description for {'str': 'albuterol'} +#: lang/json/AMMO_from_json.py +msgid "" +"A bronchodilator that relaxes muscles in the airways and increases air flow " +"to the lungs." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" msgid_plural "RA21E medical ampoules" @@ -648,11 +705,6 @@ msgstr[0] "" msgid "A bait used in traps to lure fish." msgstr "一個用於捕魚陷阱的魚餌。" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "oxygen" -msgid_plural "oxygen" -msgstr[0] "氧氣" - #. ~ Description for {'str_sp': 'oxygen'} #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." @@ -2818,8 +2870,8 @@ msgstr[0] "" #: lang/json/AMMO_from_json.py 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 ".45 ACP 全金屬彈使用 230 格令彈頭, 全彈以金屬包覆。.45 彈因優秀的抑止力而聞名, 風行了接近 150 年。" +"the .45 ACP round has been common for over a century." +msgstr "" #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" @@ -3526,7 +3578,7 @@ msgstr[0] "" msgid "" "A high-pressure commercial version of the 7.62x25mm cartridge, loaded with " "an 85 gr. FMJ bullet. It is more powerful than the original." -msgstr "" +msgstr "高壓商業版的 7.62x25mm 彈匣,裝有 85 格令金屬包覆子彈,比原本的子彈更具威力。" #: lang/json/AMMO_from_json.py msgid "7.62x25mm Type P" @@ -3707,9 +3759,8 @@ msgstr[0] "" #: lang/json/AMMO_from_json.py msgid "" "9x19mm ammunition with a brass jacketed 115gr bullet. It is a popular round" -" for military, law enforcement, and civilian use even after almost 150 " -"years." -msgstr "9x19mm 子彈使用以黃銅包覆的 115 克令彈頭。即使生產了將近 150 年, 依然廣泛用於軍隊、警方及民間。" +" for military, law enforcement, and civilian use for over a century." +msgstr "" #: lang/json/AMMO_from_json.py msgid "9x19mm +P" @@ -3867,7 +3918,7 @@ msgstr[0] "" msgid "" "A tube-launched, optically tracked, wire-guided missile contained in a steel" " tube. Designed to be highly effective against vehicles and structures." -msgstr "" +msgstr "一支以炮管發射,鋼管內裝著具有光學追蹤能力的線控導引飛彈。設計針對車輛和建築物,非常有效。" #: lang/json/AMMO_from_json.py msgid "paralyzing barb" @@ -5317,9 +5368,9 @@ msgstr[0] "" #. ~ Description for {'str': 'Kevlar sheet'} #: lang/json/AMMO_from_json.py msgid "" -"A sheet of Kevlar synthetic fabric, suitable for making bulletproof armor. " -"In this form, unlike rigid plates, it can be stitched." -msgstr "一大片凱夫勒合成纖維,適合製作防彈護甲。與剛性板不同,這種形式可以進行縫製。" +"A sheet of Kevlar synthetic fabric, suitable for making cut-resistant, " +"durable clothing. In this form, unlike rigid plates, it can be stitched." +msgstr "" #: lang/json/AMMO_from_json.py msgid "Lycra sheet" @@ -5546,11 +5597,6 @@ msgid "" "fluid. You'd probably best feed it into the bioblaster. " msgstr "" -#: lang/json/AMMO_from_json.py -msgid "plutonium cell" -msgid_plural "plutonium cells" -msgstr[0] "" - #: lang/json/AMMO_from_json.py msgid "titanium" msgid_plural "titanium" @@ -5629,64 +5675,6 @@ msgid "" "without the worry of having a stray shot seriously damaging the environment." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N8" -msgid_plural "6.54x42mm 9N8" -msgstr[0] "6.54x42mm 9N8" - -#. ~ Description for {'str_sp': '6.54x42mm 9N8'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 6.54x42mm cartridge, loaded with a 120 gr. FMJBT bullet. Inspired by the " -"improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " -"rifle cartridge for his new SVS-24 Assault Rifle." -msgstr "" -"一個 6.54x42mm 彈匣, 裝著 120 格令全金屬被甲彈。從改進型 .280 彈藥中獲得啟發, Alexander Sarafanov " -"為他的新型 SVS-24 突擊步槍設計了6.54x42mm 步槍彈。" - -#: lang/json/AMMO_from_json.py -msgid "6.54x42mm 9N12" -msgid_plural "6.54x42mm 9N12" -msgstr[0] "6.54x42mm 9N12" - -#. ~ Description for {'str_sp': '6.54x42mm 9N12'} -#: lang/json/AMMO_from_json.py -msgid "" -"The 6.54x42mm 9N12 has superior armor piercing capabilities thanks to its " -"tungsten carbide core. Tungsten carbide was used in anti-tank rounds of the" -" 20th and 21st century, whenever depleted uranium was unavailable or " -"undesirable." -msgstr "" -"6.54x42mm 9N12 步槍彈內含一個碳化鎢彈芯, 讓它擁有優秀的穿甲能力。 20 至 21 世紀, 每當貧鈾不可用或不合需求時, " -"碳化鎢就被用於的反坦克子彈中。" - -#: lang/json/AMMO_from_json.py -msgid ".20 DREAD Pellet" -msgid_plural ".20 DREAD Pellets" -msgstr[0] ".20 DREAD 彈丸" - -#. ~ Description for {'str': '.20 DREAD Pellet'} -#: lang/json/AMMO_from_json.py -msgid "" -"These metal pellets are propelled with the help of electromagnets, therefore" -" they do not produce sound, flash or heat signature." -msgstr "這種金屬鋼珠利用電磁加速原理發射, 因此完全不會產生聲音、閃光、或是熱。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 6.54x42mm" -msgid_plural "reloaded 6.54x42mm" -msgstr[0] "6.54x42mm (重瑱彈)" - -#. ~ Description for {'str_sp': 'reloaded 6.54x42mm'} -#: lang/json/AMMO_from_json.py -msgid "" -"Inspired by the improved .280, Alexander Sarafanov himself developed the " -"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 " -"步槍彈。這顆是手工裝配的重填彈。" - #. ~ Description for {'str': 'paper cartridge'} #: lang/json/AMMO_from_json.py msgid "" @@ -6289,105 +6277,10 @@ msgid_plural "mana core powers" msgstr[0] "" #. ~ Description for mana core power -#. ~ Description for {'str_sp': 'vortex core'} #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." msgstr "看到這訊息是程式錯誤導致的。" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "fire lance charge" -msgid_plural "fire lance charges" -msgstr[0] "" - -#. ~ Description for fire lance charge -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm. Despite the " -"minimal range, it packs a punch." -msgstr "它的份量比槍械的火藥引信多一點。儘管射程很短, 但還是有一定威力的。" - -#: lang/json/AMMO_from_json.py -msgid "fire lance shot" -msgid_plural "fire lance shots" -msgstr[0] "" - -#. ~ Description for fire lance shot -#: lang/json/AMMO_from_json.py -msgid "" -"Little more than a charge of gunpowder for a basic firearm, with small " -"pellets as shot. Despite the minimal range, it packs a punch." -msgstr "它的份量比槍械的火藥引信多一點, 還加上了幾顆小彈丸。儘管射程很短, 但還是有一定威力的。" - -#: lang/json/AMMO_from_json.py -msgid "lead pellet" -msgid_plural "lead pellets" -msgstr[0] "" - -#. ~ Description for lead pellet -#: lang/json/AMMO_from_json.py -msgid "" -"Hefty round projectiles cast from lead, useful as ammunition for slings." -msgstr "鉛鑄的重磅圓球, 可以用在投石帶上。" - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "wooden javelin" -msgid_plural "wooden javelins" -msgstr[0] "木標槍" - -#: lang/json/AMMO_from_json.py -msgid "stone javelin" -msgid_plural "stone javelins" -msgstr[0] "" - -#. ~ Description for stone javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A throwing spear with a stone spearhead. The grip area has also been carved" -" and covered for better grip." -msgstr "一根有著尖石槍頭的標槍。握把也做了防滑的蝕刻, 讓它變的更好抓。" - -#: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py -msgid "iron javelin" -msgid_plural "iron javelins" -msgstr[0] "鐵標槍" - -#: lang/json/AMMO_from_json.py -msgid "copper javelin" -msgid_plural "copper javelins" -msgstr[0] "" - -#. ~ Description for copper javelin -#: lang/json/AMMO_from_json.py -msgid "" -"A copper-tipped throwing spear. The grip area has also been carved and " -"covered for better grip." -msgstr "一根有著銅槍頭的標槍。握把也做了防滑的蝕刻, 讓它變的更好抓。" - -#: lang/json/AMMO_from_json.py -msgid "40mm EMP grenade" -msgid_plural "40mm EMP grenades" -msgstr[0] "40mm 電磁脈衝榴彈" - -#. ~ Description for {'str': '40mm EMP grenade'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" -" capable of damaging robots and some equipment." -msgstr "帶有電磁脈衝電荷的 40 毫米榴彈。它會釋放出能夠損壞機器人和某些設備的電磁脈衝。" - -#: lang/json/AMMO_from_json.py -msgid "glowball" -msgid_plural "glowballs" -msgstr[0] "" - -#. ~ Description for glowball -#: lang/json/AMMO_from_json.py -msgid "" -"A tube of small glowballs taken off the market due to hazardous chemicals. " -"They deal virtually no damage, but light up on impact. Useful for " -"illuminating an area without lighting up yourself in the process." -msgstr "一筒小發光球, 因含危險化合物而從市場下架。它沒有實質上的傷害, 只在撞擊時發光。用來照明區域很有用, 但別在過程中照到你自己。" - #: lang/json/AMMO_from_json.py msgid "TEST rock" msgid_plural "TEST rocks" @@ -6399,447 +6292,52 @@ msgid_plural "TEST small metal sheets" msgstr[0] "" #: lang/json/AMMO_from_json.py -msgid "TEST platinum bit" -msgid_plural "TEST platinum bits" -msgstr[0] "" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEDP" -msgid_plural "30x113mm HEDP" -msgstr[0] "30x113mm 反戰車穿甲高爆彈" - -#. ~ Description for {'str_sp': '30x113mm HEDP'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " -"Used primarily against light armored vehicles." -msgstr "一顆 30x113mm 雙用途高爆性的機炮炮彈。主要用於打擊輕型裝甲車。" - -#: lang/json/AMMO_from_json.py -msgid "30x113mm HEI" -msgid_plural "30x113mm HEI" -msgstr[0] "30x113mm 高爆燃燒彈" - -#. ~ Description for {'str_sp': '30x113mm HEI'} -#: lang/json/AMMO_from_json.py -msgid "" -"A 30x113mm autocannon round, high explosive incendiary. Designed for use " -"against unarmored vehicles and to suppress infantry." -msgstr "一顆 30x113mm 機炮炮彈, 屬於高爆燃燒彈。專用於打擊沒有裝甲的車輛, 以及對步兵進行火力壓制。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 30x113mm" -msgid_plural "reloaded 30x113mm" -msgstr[0] "30x113mm 重填彈" - -#. ~ Description for {'str_sp': '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 機炮炮彈, 使用新的底火並裝上純鉛彈蕊。效果比不上原裝的炮彈。" - -#. ~ 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 的高爆反坦克砲彈。能夠讓任何人爽一整天。" - -#: lang/json/AMMO_from_json.py -msgid "120mm APFSDS" -msgid_plural "120mm APFSDSs" -msgstr[0] "" - -#. ~ Description for 120mm APFSDS -#: lang/json/AMMO_from_json.py -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 的尾翼穩定脫殼穿甲彈。因彈體使用貧鈾, 被其打中的生物會有一個非常衰的一天。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 120mm shot" -msgid_plural "reloaded 120mm shots" -msgstr[0] "" - -#. ~ Description for reloaded 120mm shot -#: lang/json/AMMO_from_json.py -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 "一發安裝了新型電動底火的 120 釐米砲彈, 砲彈內填充了大量的霰彈。實際上與不再生產的罐裝霰彈相當相似, 但質量比較低。" - -#: lang/json/AMMO_from_json.py -msgid "makeshift 120mm slug" -msgid_plural "makeshift 120mm slugs" -msgstr[0] "" - -#. ~ 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 "一發安裝了新型電動底火的 120 釐米砲彈, 砲彈內填充了大量的手工製重擊霰彈。雖然火力來講不太理想, 但是依舊非常有效。" - -#: lang/json/AMMO_from_json.py -msgid "155mm HEAT" -msgid_plural "155mm HEATs" -msgstr[0] "" - -#. ~ Description for 155mm HEAT -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Anti Tank round. More than enough firepower for " -"whatever you could think to point it at." -msgstr "一顆 155mm 高爆反坦克砲彈。能輕易摧毀任何你找到的目標。" - -#: lang/json/AMMO_from_json.py -msgid "155mm frag" -msgid_plural "155mm frags" -msgstr[0] "" - -#. ~ Description for 155mm frag -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm High Explosive Fragmentation round. Designed to give anything near " -"what you hit a really bad day." -msgstr "155mm 高爆炸性破片彈, 設計來讓任何接近此彈落點的人有非常慘烈的一天。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm shot" -msgid_plural "reloaded 155mm shots" -msgstr[0] "" - -#. ~ Description for reloaded 155mm shot -#: lang/json/AMMO_from_json.py -msgid "" -"A 155mm shell with a new electric primer installed, filled with a huge " -"amount of buckshot. Effectively turns a howitzer into a punt gun on " -"steroids." -msgstr "一發安裝了新型電動底火的 155 釐米砲彈, 砲彈內填充了巨量的霰彈。實際上將一台自走砲轉變成一台打了類固醇的平底船槍。" - -#: lang/json/AMMO_from_json.py -msgid "reloaded 155mm slug" -msgid_plural "reloaded 155mm slugs" +msgid "test wooden broadhead arrow" +msgid_plural "test wooden broadhead arrows" msgstr[0] "" -#. ~ Description for reloaded 155mm slug +#. ~ Description for {'str': 'test wooden broadhead arrow'} #: lang/json/AMMO_from_json.py -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." +msgid "Test arrow" msgstr "" -"一發安裝了新型電動底火的 155 釐米砲彈, 砲彈內填充了巨量的手工製重擊霰彈。雖然火力上來講很低效, 但被其打中的生物絕對不會有這種想法。" - -#: lang/json/AMMO_from_json.py -msgid "small electric primer" -msgid_plural "small electric primers" -msgstr[0] "" - -#. ~ Description for small electric primer -#: lang/json/AMMO_from_json.py -msgid "Primer for an autocannon shell. Seems to use an electric ignition." -msgstr "用於自動砲塔砲彈的底火。其似乎使用的是一種電動式起爆。" - -#: lang/json/AMMO_from_json.py -msgid "large electric primer" -msgid_plural "large electric primers" -msgstr[0] "" - -#. ~ Description for large electric primer -#: lang/json/AMMO_from_json.py -msgid "" -"Primer for a tank or artillery shell. Seems to use an electric ignition." -msgstr "用於坦克砲彈或是火砲砲彈的底火。其似乎使用的是一種電動式起爆。" - -#: lang/json/AMMO_from_json.py -msgid "liquified blob feed" -msgid_plural "liquified blob feed" -msgstr[0] "" - -#. ~ Description for {'str_sp': 'liquified blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"Liquified blob feed, useful for fueling certain blob based vehicle parts" -msgstr "液化團塊飼料, 可用於為某些團塊製的車輛部件提供燃料。" - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "blob feed" -msgid_plural "blob feed" -msgstr[0] "黏球怪飼料" - -#. ~ Description for {'str_sp': 'blob feed'} -#: lang/json/AMMO_from_json.py -msgid "" -"An amalgam of various types of organic material, contains everything the " -"blob needs to be healthy. You think…" -msgstr "各種類型有機材料的混合物,包含一切黏球怪所需的健康元素,至少你是這樣想的。" - -#: lang/json/AMMO_from_json.py -msgid "IED" -msgid_plural "IEDs" -msgstr[0] "" - -#: lang/json/AMMO_from_json.py -msgid "blast canister" -msgid_plural "blast canisters" -msgstr[0] "" - -#. ~ Description for {'str': 'blast canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a substantial explosive payload." -msgstr "一個簡易爆炸裝置, 以定量的材料與觸碰式引信組成。內含可觀的爆裂性酬載。" - -#: lang/json/AMMO_from_json.py -msgid "Big Bang canister" -msgid_plural "Big Bang canisters" -msgstr[0] "" - -#. ~ Description for {'str': 'Big Bang canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material that " -"triggers on impact. Carries a VERY substantial explosive payload." -msgstr "一個簡易爆炸裝置, 以定量的材料與觸碰式引信組成。內含極大量的炸藥。" - -#: lang/json/AMMO_from_json.py -msgid "fire canister" -msgid_plural "fire canisters" -msgstr[0] "" - -#. ~ Description for {'str': 'fire canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a small area with deadly flames." -msgstr "一個簡易爆炸裝置, 以定量的材料與發射藥組成。設計用於特製的發射器上。內含燃燒劑將燃起一小塊致命的火焰區域。" - -#: lang/json/AMMO_from_json.py -msgid "inferno canister" -msgid_plural "inferno canisters" -msgstr[0] "" -#. ~ Description for {'str': 'inferno canister'} #: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to douse a large area with deadly flames." -msgstr "一個簡易爆炸裝置, 以定量的材料與發射藥組成。設計用於特製的發射器上。內含燃燒劑將燃起一大塊致命的火焰區域。" - -#: lang/json/AMMO_from_json.py -msgid "fragmentation canister" -msgid_plural "fragmentation canisters" -msgstr[0] "" - -#. ~ Description for {'str': 'fragmentation canister'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material and a means to" -" trigger it. Intended to be fired from a specialized launcher. This one is" -" designed to spray the immediate area with deadly shrapnel." -msgstr "一個簡易爆炸裝置, 以定量的材料與發射藥組成。設計用於特製的發射器上。榴彈爆炸後會噴灑出致命的破片。" - -#. ~ Description for {'str': 'modified mininuke'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device. Intended to be fired from a " -"specialized launcher, its case has been cut down and it has been rigged to " -"explode on impact. While it is now somewhat lighter than before, it can no " -"longer be triggered manually." -msgstr "經過改造的手提式核武器, 必須裝在專用發射器內使用。外殼被取下以減輕重量。改造後只會在受到強烈撞擊時引爆, 無法再以手動方式觸發。" - -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py -msgid "harpoon" -msgid_plural "harpoons" -msgstr[0] "" - -#. ~ Description for {'str': 'harpoon'} -#: lang/json/AMMO_from_json.py -msgid "" -"A large spear carved from wood. This was fashioned specifically to be fired" -" from a compatible weapon; thus unsuitable for melee combat." -msgstr "從木頭雕刻出來的大型長矛。特別須注意的是這長矛只能被適合的武器發射出去, 因此不適合作為近戰武器。" - -#: lang/json/AMMO_from_json.py -msgid "IED rigged bolt" -msgid_plural "IED rigged bolts" -msgstr[0] "" - -#: lang/json/AMMO_from_json.py -msgid "nova bolt" -msgid_plural "nova bolts" +msgid "Test 9mm ammo" +msgid_plural "Test 9mm ammos" msgstr[0] "" -#. ~ Description for {'str': 'nova bolt'} +#. ~ Description for {'str': 'Test 9mm ammo'} #: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a substantial explosive payload." -msgstr "一個簡易爆炸裝置, 巨大弩箭尾部粘貼了裝有定量炸藥的密封容器。設計用於特製的發射器上。內含大量的炸藥。" - -#: lang/json/AMMO_from_json.py -msgid "supernova bolt" -msgid_plural "supernova bolts" -msgstr[0] "" - -#. ~ Description for {'str': 'supernova bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a sealed container filled with a payload material affixed" -" to the end of a large ballista bolt. Intended to be fired from a " -"specialized launcher. Carries a very substantial explosive payload." -msgstr "一個簡易爆炸裝置, 巨大弩箭尾部粘貼了裝有定量炸藥的密封容器。設計用於特製的發射器上。內含極大量的炸藥。" - -#: lang/json/AMMO_from_json.py -msgid "searing bolt" -msgid_plural "searing bolts" -msgstr[0] "" - -#. ~ Description for {'str': 'searing bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a small area with deadly flames." -msgstr "一個簡易爆炸裝置, 巨大弩箭尾部粘貼了裝有定量炸藥的容器。設計用於特製的發射器上。內含燃燒劑將燃起一小塊致命的火焰區域。" - -#: lang/json/AMMO_from_json.py -msgid "napalm bolt" -msgid_plural "napalm bolts" -msgstr[0] "" - -#. ~ Description for {'str': 'napalm bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to douse a large area with deadly flames." -msgstr "一個簡易爆炸裝置, 巨大弩箭尾部粘貼了裝有定量炸藥的容器。設計用於特製的發射器上。內含燃燒劑將燃起一大塊致命的火焰區域。" - -#: lang/json/AMMO_from_json.py -msgid "shatter bolt" -msgid_plural "shatter bolts" -msgstr[0] "" - -#. ~ Description for {'str': 'shatter bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"An IED composed of a container filled with a payload material affixed to the" -" end of a large ballista bolt. Intended to be fired from a specialized " -"launcher. This one is designed to spray the immediate area with deadly " -"shrapnel." -msgstr "一個簡易爆炸裝置, 巨大弩箭尾部粘貼了裝有定量炸藥的容器。設計用於特製的發射器上。爆炸後會噴灑出致命的破片。" - -#: lang/json/AMMO_from_json.py -msgid "steel ballista bolt" -msgid_plural "steel ballista bolts" -msgstr[0] "" - -#. ~ Description for {'str': 'steel ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A long shaft carved from wood ending in a tip of sharpened metal. It's " -"quite heavy, capable of dealing large amounts of damage, but isn't " -"particularly accurate. Stands a good chance of remaining intact once fired." -msgstr "一根木製長箭桿配上削尖的金屬箭尖。它相當沉重, 能對目標造成嚴重傷害, 但不甚準確。發射後不易損壞, 回收率高。" - -#: lang/json/AMMO_from_json.py -msgid "nuclear bolt" -msgid_plural "nuclear bolts" -msgstr[0] "" - -#. ~ Description for {'str': 'nuclear bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy modified handheld nuclear device affixed to the end of a large " -"ballista bolt. Its case has been cut down and it has been rigged to explode" -" on impact. It can no longer be triggered manually." -msgstr "一個經過複雜改造過的手提式核武器並黏貼在一個大型弩砲箭矢底端。其外殼已被取下並改造成只會在受到撞擊時引爆, 無法再以手動方式觸發。" - -#: lang/json/AMMO_from_json.py -msgid "wood ballista bolt" -msgid_plural "wood ballista bolts" -msgstr[0] "" - -#. ~ Description for {'str': 'wood ballista bolt'} -#: lang/json/AMMO_from_json.py -msgid "" -"A sharpened bolt carved from wood. It's fairly heavy, capable of dealing " -"large amounts of damage, but isn't particularly accurate. Stands a good " -"chance of remaining intact once fired." -msgstr "由木頭刻成並削尖的十字弓箭。它相當沉重, 能對目標造成嚴重傷害, 但不甚準確。發射後不易損壞, 回收率高。" - -#: lang/json/AMMO_from_json.py -msgid "lead ball" -msgid_plural "lead balls" -msgstr[0] "" - -#. ~ Description for {'str': 'lead ball'} -#: lang/json/AMMO_from_json.py -msgid "" -"A heavy lead ball about 8cm in diameter. Could pack quite a bit of a punch " -"if you had something to launch it." -msgstr "一顆直徑 8cm 的沉重鉛球。如果你有可發射它的裝置就可以造成相當的打擊。" - -#: lang/json/AMMO_from_json.py -msgid "serrated disc" -msgid_plural "serrated discs" -msgstr[0] "" - -#. ~ Description for {'str': 'serrated disc'} -#: lang/json/AMMO_from_json.py -msgid "" -"A metal disc surrounded by serrated edges. It's as menacing as it sounds." -msgstr "有著鋸齒邊緣的金屬盤, 它跟聽起來一樣有威脅。" +msgid "Generic 9mm ammo based on JHP." +msgstr "" #: lang/json/AMMO_from_json.py -msgid "metal fragment" -msgid_plural "metal fragments" +msgid "Test .45 ammo" +msgid_plural "Test .45 ammos" msgstr[0] "" -#. ~ Description for {'str': 'metal fragment'} +#. ~ Description for {'str': 'Test .45 ammo'} #: lang/json/AMMO_from_json.py -msgid "Small slivers of metal. Can't see much use for them." -msgstr "小塊金屬碎片。看不出它們有什麼用途。" +msgid "Test ammo based on the .45 JHP." +msgstr "" #: lang/json/AMMO_from_json.py -msgid "glittering carbon" -msgid_plural "glittering carbon" +msgid "test gas" +msgid_plural "test gas" msgstr[0] "" -#. ~ Description for {'str_sp': 'glittering carbon'} +#. ~ Description for {'str_sp': 'test gas'} #: lang/json/AMMO_from_json.py msgid "" -"These small fragments of carbon are have been compressed into a crystalline " -"structure that is beginning to resemble diamonds." +"Some mysterious substance in the form of a gas. Only for testing, do not " +"inhale!" msgstr "" #: lang/json/AMMO_from_json.py -msgid "diamond fragments" -msgid_plural "diamond fragments" +msgid "TEST platinum bit" +msgid_plural "TEST platinum bits" msgstr[0] "" -#. ~ Description for {'str_sp': 'diamond fragments'} -#: lang/json/AMMO_from_json.py -msgid "" -"These small fragments of diamond are formed as a byproduct from the " -"crystallization process of a diamond matrix. While the substance usually " -"decays when separated from the catalyst; these fragments are small enough to" -" remain stable." -msgstr "這些小型的鑽石碎片是鑽石矩陣結晶化過程中的副產品。雖然從觸媒分離出來的物質通常容易衰變, 這些碎片夠小所以能保持穩定。" - -#: lang/json/AMMO_from_json.py -msgid "vortex core" -msgid_plural "vortex core" -msgstr[0] "渦石核心" - #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" msgid_plural "pairs of bone arm guards" @@ -6958,7 +6456,6 @@ msgstr[0] "MBR 背心 (空)" #. 'large grenade pouches'}. #. ~ Use action holster_msg for {'str': 'MBR vest (titanium)', 'str_pl': 'MBR #. vests (titanium)'}. -#. ~ Use action holster_msg for javelin bag. #: lang/json/ARMOR_from_json.py #, no-python-format msgid "You stash your %s." @@ -7307,12 +6804,11 @@ msgstr[0] "生存者工具腰帶" #. 'pairs of knee-high boots'}. #. ~ Use action holster_msg for {'str': 'pair of rollerblades', 'str_pl': #. 'pairs of rollerblades'}. -#. ~ Use action holster_msg for {'str': 'pair of rollerskates', 'str_pl': -#. 'pairs of rollerskates'}. -#. ~ Use action holster_msg for C.R.I.T web belt. +#. ~ Use action holster_msg for CRIT web belt. #. ~ Use action holster_msg for {'str': "technomancer's toolbelt"}. #. ~ Use action holster_msg for {'str': 'hollow cane'}. -#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/ARMOR_from_json.py lang/json/ARMOR_from_json.py +#: lang/json/GENERIC_from_json.py #, no-python-format msgid "You sheath your %s" msgstr "你把你的 %s 收鞘。" @@ -7320,7 +6816,7 @@ msgstr "你把你的 %s 收鞘。" #. ~ Use action holster_prompt for {'str': 'survivor utility belt'}. #. ~ Use action holster_prompt for {'str': 'survivor belt'}. #. ~ Use action holster_prompt for {'str': 'hiking backpack'}. -#. ~ Use action holster_prompt for C.R.I.T web belt. +#. ~ Use action holster_prompt for CRIT web belt. #. ~ Use action holster_prompt for {'str': "technomancer's toolbelt"}. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" @@ -7443,7 +6939,6 @@ msgid_plural "javelin bags" msgstr[0] "標槍袋" #. ~ Use action holster_prompt for {'str': 'javelin bag'}. -#. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" msgstr "存放標槍" @@ -7718,6 +7213,19 @@ msgstr[0] "皮革護臂" msgid "A pair of light leather arm guards, made for archery." msgstr "一對輕巧的皮革護臂, 供弓箭手使用。" +#: lang/json/ARMOR_from_json.py +msgid "pair of cut-resistant arm sleeves" +msgid_plural "pairs of cut-resistant arm sleeves" +msgstr[0] "" + +#. ~ Description for {'str': 'pair of cut-resistant arm sleeves', 'str_pl': +#. 'pairs of cut-resistant arm sleeves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A long pair of cut resistant sleeves, with thumbholes. Useful for chainsaw " +"protection." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "empty ballistic vest" msgid_plural "empty ballistic vests" @@ -7738,7 +7246,7 @@ msgstr[0] "" #. ~ Description for {'str': 'ESAPI ballistic vest'} #: lang/json/ARMOR_from_json.py msgid "Ballistic armor with ESAPI ceramic armor plates." -msgstr "" +msgstr "裝有 ESAPI 陶瓷裝甲板的防彈背心" #: lang/json/ARMOR_from_json.py msgid "dragon skin vest" @@ -8097,7 +7605,7 @@ msgstr[0] "" #. ~ Description for {'str': 'webbing belt'} #: lang/json/ARMOR_from_json.py msgid "A 2-inch nylon webbing belt commonly used by military forces." -msgstr "" +msgstr "一條 2英寸長的尼龍織布腰帶,通常用在軍隊中。" #: lang/json/ARMOR_from_json.py msgid "pair of cord sandals" @@ -8183,6 +7691,32 @@ msgstr[0] "戰鬥靴" msgid "Modern reinforced tactical combat boots. Very durable." msgstr "強化的現代戰術靴。非常耐用。" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD foot protectors" +msgid_plural "pairs of EOD foot protectors" +msgstr[0] "" + +#. ~ Description for {'str': 'pair of EOD foot protectors', 'str_pl': 'pairs +#. of EOD foot protectors'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored foot protectors constructed from steel and nomex for explosive " +"ordnance disposal. They are designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of toecaps" +msgid_plural "pairs of toecaps" +msgstr[0] "" + +#. ~ Description for {'str': 'pair of toecaps', 'str_pl': 'pairs of toecaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Rubbery overshoes that cover your toes with sturdy, ANSI compliant steel " +"toes." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" msgid_plural "pairs of survivor fireboots" @@ -8792,6 +8326,8 @@ msgstr[0] "抗火襪" #. ~ Description for {'str': 'pair of flame-resistant socks', 'str_pl': 'pairs #. of flame-resistant socks'} +#. ~ Description for {'str': 'pair of XL flame-resistant socks', 'str_pl': +#. 'pairs of XL flame-resistant socks'} #: lang/json/ARMOR_from_json.py msgid "" "A snug fitting pair of stockings made from thin and lightweight Nomex fire-" @@ -8799,6 +8335,11 @@ msgid "" "wear under clothing." msgstr "一雙緊密貼身的襪子, 由輕量的諾梅克斯阻燃纖維製成。強韌而透氣, 穿在其他衣物之下仍然輕巧且舒適。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL flame-resistant socks" +msgid_plural "pairs of XL flame-resistant socks" +msgstr[0] "" + #: lang/json/ARMOR_from_json.py msgid "pair of socks" msgid_plural "pairs of socks" @@ -8811,6 +8352,17 @@ msgstr[0] "襪子" msgid "Socks. Put 'em on your feet." msgstr "襪子。穿在腳上的玩意。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL socks" +msgid_plural "pairs of XL socks" +msgstr[0] "" + +#. ~ Description for {'str': 'pair of XL socks', 'str_pl': 'pairs of XL +#. socks'} +#: lang/json/ARMOR_from_json.py +msgid "Socks. Big ones. Put 'em on your feet." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of ankle socks" msgid_plural "pairs of ankle socks" @@ -8859,6 +8411,19 @@ msgstr[0] "羊毛襪" msgid "Warm socks made of wool." msgstr "羊毛製的保暖襪。" +#: lang/json/ARMOR_from_json.py +msgid "pair of XL wool socks" +msgid_plural "pairs of XL wool socks" +msgstr[0] "" + +#. ~ Description for {'str': 'pair of XL wool socks', 'str_pl': 'pairs of XL +#. wool socks'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Warm socks made of wool for a larger than you'd previously thought possible " +"human." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pair of stockings" msgid_plural "pairs of stockings" @@ -10198,9 +9763,9 @@ msgstr[0] "戰術手套" #. tactical gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of reinforced Kevlar tactical gloves. Commonly used by police and " -"military units." -msgstr "一雙強化的戰術手套, 由凱夫勒裝甲製成。通常供警察或軍人使用。" +"A pair of flame and cut resistant aramid fabric gloves. Commonly used by " +"police and military units." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -10244,8 +9809,9 @@ msgstr[0] "防割手套" #. of cut resistant gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"A pair of cut resistant gloves, useful when rapidly breaking down carcasses." -msgstr "一雙防割手套,在快速分解屠宰屍體時很有用。" +"A pair of cut resistant gloves, useful for butchery or routine work with " +"bladed objects." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of hand wraps" @@ -10411,6 +9977,20 @@ msgstr[0] "一雙高爾夫球手套" msgid "A thin pair of black leather golfing gloves." msgstr "一雙輕薄的黑色皮革高爾夫球手套" +#: lang/json/ARMOR_from_json.py +msgid "pair of EOD gloves" +msgid_plural "pairs of EOD gloves" +msgstr[0] "" + +#. ~ Description for {'str': 'pair of EOD gloves', 'str_pl': 'pairs of EOD +#. gloves'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Light armored gloves constructed from kevlar and nomex for explosive " +"ordnance disposal. They are designed to protect against fragmentation and " +"heat." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" @@ -11682,7 +11262,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'garnet and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset garnets." -msgstr "" +msgstr "鑲有石榴石的袖扣" #: lang/json/ARMOR_from_json.py msgid "diamond and gold cufflinks" @@ -11694,7 +11274,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'diamond and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset diamonds." -msgstr "" +msgstr "鑲有鑽石的袖扣" #: lang/json/ARMOR_from_json.py msgid "amethyst and gold cufflinks" @@ -11706,7 +11286,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'amethyst and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset amethysts." -msgstr "" +msgstr "鑲有紫水晶的袖扣" #: lang/json/ARMOR_from_json.py msgid "aquamarine and gold cufflinks" @@ -11718,7 +11298,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'aquamarine and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset aquamarines." -msgstr "" +msgstr "鑲有海藍寶石的袖扣" #: lang/json/ARMOR_from_json.py msgid "emerald and gold cufflinks" @@ -11730,7 +11310,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'emerald and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset emeralds." -msgstr "" +msgstr "鑲有祖母綠的袖扣" #: lang/json/ARMOR_from_json.py msgid "alexandrite and gold cufflinks" @@ -11742,7 +11322,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'alexandrite and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset alexandrites." -msgstr "" +msgstr "鑲有亞歷山大變石的袖扣" #: lang/json/ARMOR_from_json.py msgid "ruby and gold cufflinks" @@ -11754,7 +11334,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'ruby and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset rubies." -msgstr "" +msgstr "鑲有紅寶石的袖扣" #: lang/json/ARMOR_from_json.py msgid "peridot and gold cufflinks" @@ -11766,7 +11346,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'peridot and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset peridots." -msgstr "" +msgstr "鑲有貴橄欖石的袖扣" #: lang/json/ARMOR_from_json.py msgid "sapphire and gold cufflinks" @@ -11778,7 +11358,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'sapphire and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset sapphires." -msgstr "" +msgstr "鑲有藍寶石的袖扣" #: lang/json/ARMOR_from_json.py msgid "tourmaline and gold cufflinks" @@ -11790,7 +11370,7 @@ msgstr[0] "" #. ~ Description for {'str_sp': 'tourmaline and platinum cufflinks'} #: lang/json/ARMOR_from_json.py msgid "A pair of cufflinks with inset tourmalines." -msgstr "" +msgstr "鑲有碧璽的袖扣" #: lang/json/ARMOR_from_json.py msgid "citrine and gold cufflinks" @@ -15176,6 +14756,20 @@ msgid "" "storage." msgstr "一對黑色皮革護腿。非常堅韌且輕巧, 但沒有任何儲物空間。" +#: lang/json/ARMOR_from_json.py +msgid "chainsaw chaps" +msgid_plural "chainsaw chaps" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'chainsaw chaps'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A pair of tough chaps made of kevlar. Chainsaw kickbacks are potentially " +"fatal; personal protective equipment like these chaps help protect your " +"femoral arteries. The layered kevlar is designed to fray on contact with " +"the chain and bind up the tool." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "fencing pants" msgid_plural "fencing pants" @@ -15303,6 +14897,33 @@ msgid "" "built to be durable, comfortable, and easy to wear." msgstr "一件訂製的長褲, 由凱夫勒裝甲製作, 上面佈滿了小袋子和口袋。耐用、舒適、而且便於穿著。" +#: lang/json/ARMOR_from_json.py +msgid "EOD trousers" +msgid_plural "EOD trousers" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Thick armored trousers constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "light EOD trousers" +msgid_plural "light EOD trousers" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'light EOD trousers'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Armored trousers constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "basketball shorts" msgid_plural "basketball shorts" @@ -15635,6 +15256,8 @@ msgid_plural "pairs of work pants" msgstr[0] "工作長褲" #. ~ Description for {'str': 'work pants', 'str_pl': 'pairs of work pants'} +#. ~ Description for {'str': 'XL work pants', 'str_pl': 'pairs of XL work +#. pants'} #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." msgstr "一件灰色的工作長褲。" @@ -15679,6 +15302,18 @@ msgstr[0] "搶匪頭套" msgid "A warm covering that protects the head and face from the cold." msgstr "一頂保暖的罩子, 保護頭部和臉部免於寒冷。" +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant balaclava" +msgid_plural "cut-resistant balaclavas" +msgstr[0] "" + +#. ~ Description for {'str': 'cut-resistant balaclava'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A face covering garment that helps protect from slashes and cuts, in " +"addition to the cold." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bandana" msgid_plural "bandanas" @@ -16030,6 +15665,7 @@ msgstr[0] "" #. ~ Use action activate_msg for {'str': 'combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'heavy combat exoskeleton'}. #. ~ Use action activate_msg for {'str': 'field combat exoskeleton'}. +#. ~ Use action activate_msg for {'str': 'test power armor'}. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." msgstr "你的動力裝甲啟動了。" @@ -16546,8 +16182,8 @@ msgstr "收納高爾夫球桿" #: lang/json/ARMOR_from_json.py msgid "" "A tall canvas and plastic bag with fold-out legs used for golfing. It even " -"has straps to be worn on the back." -msgstr "一個用於高爾夫球的高大帆布袋, 帶有折疊式支架, 甚至附有用於穿在背後的綁帶。" +"has straps to be worn on the back and a slot for an umbrella." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "H&K operational briefcase (empty)" @@ -16834,6 +16470,16 @@ msgstr[0] "工具背心" msgid "A light vest covered in pockets and straps for storage." msgstr "一件輕量背心, 擁有可觀的儲物空間。" +#: lang/json/ARMOR_from_json.py +msgid "debug pocket universe" +msgid_plural "debug pocket universes" +msgstr[0] "" + +#. ~ Description for {'str': 'debug pocket universe'} +#: lang/json/ARMOR_from_json.py +msgid "A pocket universe. Can store approximately 384 * 10^6 bugs." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bondage suit" msgid_plural "bondage suits" @@ -17820,6 +17466,18 @@ msgid "" " from cuts." msgstr "一件圍裙, 由厚實的皮革製成。有點累贅, 但是能提供絕佳的砍劈防護。" +#: lang/json/ARMOR_from_json.py +msgid "cut-resistant apron" +msgid_plural "cut-resistant aprons" +msgstr[0] "" + +#. ~ Description for {'str': 'cut-resistant apron'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An apron made of kevlar fabric which provides excellent protection from " +"cuts." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "blazer" msgid_plural "blazers" @@ -18356,6 +18014,16 @@ msgstr[0] "四角內褲" msgid "The age-old question, boxers or briefs? Your answer? Yes." msgstr "老掉牙的問題, 喜歡四角內褲還是三角內褲? 你的答案是? 前者。" +#: lang/json/ARMOR_from_json.py +msgid "XL boxer briefs" +msgid_plural "XL boxer briefs" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'XL boxer briefs'} +#: lang/json/ARMOR_from_json.py +msgid "The age-old question, boxers or briefs? Your answer? Chonk!" +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "boxer shorts" msgid_plural "boxer shorts" @@ -18367,6 +18035,18 @@ msgid "" "Men's boxer shorts. More fashionable than briefs and just as comfortable." msgstr "男用平口內褲。和三角內褲同樣舒適但是更時尚。" +#: lang/json/ARMOR_from_json.py +msgid "XL boxer shorts" +msgid_plural "XL boxer shorts" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'XL boxer shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Men's XL boxer shorts. For the very big and tall. More fashionable than " +"briefs and just as comfortable." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "boy shorts" msgid_plural "boy shorts" @@ -18378,6 +18058,18 @@ msgid "" "Female underwear similar to men's boxer shorts, but much more close-fitting." msgstr "類似男用平口內褲的女用內衣, 但是更貼身。" +#: lang/json/ARMOR_from_json.py +msgid "XL boy shorts" +msgid_plural "XL boy shorts" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'XL boy shorts'} +#: lang/json/ARMOR_from_json.py +msgid "" +"Female underwear similar to men's boxer shorts, but much more close-fitting." +" This size is made for giants." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "bra" msgid_plural "bras" @@ -18572,6 +18264,19 @@ msgid "" "Typically worn when exercising, it clings to the skin and is easy to wear." msgstr "一個堅韌的尼龍胸罩, 能在運動時提供額外的支撐。通常在運動時穿著, 能夠簡單的穿著並貼合肌膚。" +#: lang/json/ARMOR_from_json.py +msgid "XL sports bra" +msgid_plural "XL sports bras" +msgstr[0] "" + +#. ~ Description for {'str': 'XL sports bra'} +#: lang/json/ARMOR_from_json.py +msgid "" +"A sturdy nylon bra to provide additional support during physical movement. " +"Typically worn when exercising, it clings to the skin and is easy to wear. " +"This one appears to have been made for a massive person." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "tank top" msgid_plural "tank tops" @@ -18803,6 +18508,55 @@ msgid "" "but cannot be repaired" msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL jeans" +msgid_plural "pairs of XL jeans" +msgstr[0] "" + +#. ~ Description for {'str': 'XL jeans', 'str_pl': 'pairs of XL jeans'} +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue jeans with two deep pockets." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL work pants" +msgid_plural "pairs of XL work pants" +msgstr[0] "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL blue work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL gray work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "A pair of XL light-blue work pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL work t-shirt" +msgid_plural "XL work t-shirts" +msgstr[0] "" + +#. ~ Description for {'str': 'XL work t-shirt'} +#: lang/json/ARMOR_from_json.py +msgid "A gray XL work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL blue work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL gray work t-shirt with a small front pocket." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "An XL light-blue work t-shirt with a small front pocket." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Uplifted SWAT armor" msgid_plural "Uplifted SWAT armors" @@ -18873,6 +18627,55 @@ msgid "" "tactical gloves." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL leather belt" +msgid_plural "XL leather belts" +msgstr[0] "" + +#. ~ Description for {'str': 'XL leather belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL leather belt. Useful for making your pair of pants fit if you need " +"really big pants." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL police duty belt" +msgid_plural "XL police duty belts" +msgstr[0] "" + +#. ~ Description for {'str': 'XL police duty belt'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL black leather belt used by extremely large uplifted police officers. " +"It has several pouches and a holder for a baton." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL tactical full helmet" +msgid_plural "XL tactical full helmets" +msgstr[0] "" + +#. ~ Description for {'str': 'XL tactical full helmet'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An all-encompassing massive black helmet that covers your entire face and " +"neck, providing excellent protection from all sorts of damage." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "XL leg ammo pouch" +msgid_plural "XL leg ammo pouches" +msgstr[0] "" + +#. ~ Description for {'str': 'XL leg ammo pouch', 'str_pl': 'XL leg ammo +#. pouches'} +#: lang/json/ARMOR_from_json.py +msgid "" +"An XL fabric ammo pouch that can be strapped to your leg and capable of " +"holding two magazine close at hand." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "titanium watch" msgid_plural "titanium watches" @@ -19010,6 +18813,20 @@ msgid "" "armor, it'll still keep you relatively safe." msgstr "仿照中世紀時期的布面甲,這個粗製軀幹裝甲由層疊的布料組成,下面貼有小塊金屬片。雖然沒有像盔甲那樣的保護性,但它仍然會讓你相對安全。" +#: lang/json/ARMOR_from_json.py +msgid "CRIT Engineering Suit" +msgid_plural "CRIT Engineering Suits" +msgstr[0] "CRIT 工程師套裝" + +#. ~ Description for CRIT Engineering Suit +#: lang/json/ARMOR_from_json.py +msgid "" +"An airtight, flexible suit of woven composite fibers complete with segmented" +" plates of armor. A complex system digitizes items in an individual pocket " +"universe for storage while built in joint-torsion ratchets generate the " +"neccessary energy required to power the interface." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "CRIT face mask" msgid_plural "CRIT face masks" @@ -19018,9 +18835,9 @@ msgstr[0] "CRIT 面罩" #. ~ Description for CRIT face mask #: lang/json/ARMOR_from_json.py msgid "" -"This is the C.R.I.T standard issue face mask, lined with Kevlar for extra " -"protection. A few filters provide decent environmental safety, but it was " -"not intended for extended use. It has a basic integrated HUD." +"A standard issue face mask, lined with Kevlar for extra protection. A few " +"filters provide decent environmental safety, but it was not intended for " +"extended use. It has a basic integrated HUD." msgstr "" #: lang/json/ARMOR_from_json.py @@ -19032,7 +18849,7 @@ msgstr[0] "" #. boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and " +"A pair of standard-issue boots. Next-gen gels keep feet comfortable and " "hygienic during long-term missions while absorbing shock and heat from " "outside-sources. Superalloy mesh and rubber offer quite a bit of chemical " "protection as well. Decently heavy though" @@ -19047,7 +18864,7 @@ msgstr[0] "CRIT LA 靴子" #. LA boots'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor " +"A pair of skeletonized boots. Based off of C.R.I.T boots, the light-armor " "variant was created for missions in warmer climates. The LA boots keep most" " of the old features of the standard issue boots but trade in protection for" " easier movement." @@ -19062,7 +18879,7 @@ msgstr[0] "CRIT 露指手套" #. 'pairs of CRIT fingertip-less gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with " +"A pair of standard-issue gloves. Made with superalloy mesh for those with " "gene-modding and/or mutations while still allowing greater manipulation of " "items and moderate protection." msgstr "" @@ -19076,8 +18893,8 @@ msgstr[0] "CRIT 露指內裡" #. 'pairs of CRIT fingertip-less liners'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue glove liners. Made with neoprene and rubber mesh for" -" warmth and fingertip-less for those with gene-modding and/or mutations " +"A pair of standard-issue glove liners. Made with neoprene and rubber mesh " +"for warmth and fingertip-less for those with gene-modding and/or mutations " "while still allowing greater manipulation of items and moderate protection." msgstr "" @@ -19089,10 +18906,10 @@ msgstr[0] "CRIT 背包" #. ~ Description for CRIT backpack #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this " -"smaller pack strikes a fine balance between storage space and encumbrance " -"and allows a larger weapon to be holstered, drawing and holstering is still " -"rather awkward even with the magnetized clips, but practice helps." +"A standard-issue pack. Based on the MOLLE backpack's design, this smaller " +"pack strikes a fine balance between storage space and encumbrance and allows" +" a larger weapon to be holstered, drawing and holstering is still rather " +"awkward even with the magnetized clips, but practice helps." msgstr "" #: lang/json/ARMOR_from_json.py @@ -19103,8 +18920,8 @@ msgstr[0] "CRIT 胸掛背心" #. ~ Description for CRIT chestrig #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" -" with light-armor padding." +"A slightly modified chestrig, has mesh and MOLLE loops for gear and slots " +"with light-armor padding." msgstr "" #: lang/json/ARMOR_from_json.py @@ -19116,18 +18933,18 @@ msgstr[0] "CRIT 護腿" #. CRIT leg guards'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue leg armor. Simple design and durable material allows" -" for easy movement and the padding keeps the legs safe and warm in colder " +"Leg armor for those who fight. Simple design and durable material allows " +"for easy movement and the padding keeps the legs safe and warm in colder " "conditions." msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of CRIT arm guards" -msgid_plural "pairs of C.R.I.T arm guards" -msgstr[0] "CRIT 護手" +msgid_plural "pairs of CRIT arm guards" +msgstr[0] "" #. ~ Description for {'str': 'pair of CRIT arm guards', 'str_pl': 'pairs of -#. C.R.I.T arm guards'} +#. CRIT arm guards'} #: lang/json/ARMOR_from_json.py msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " @@ -19143,8 +18960,8 @@ msgstr[0] "CRIT 腰帶" #. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on " -"your hip." +"CRIT standard-issue belt. Keeps your trousers up and your weapons on your " +"hip." msgstr "" #: lang/json/ARMOR_from_json.py @@ -19160,20 +18977,6 @@ msgid "" "discharges from the robots. Has several pockets for storage." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "CRIT Engineering Suit" -msgid_plural "CRIT Engineering Suits" -msgstr[0] "CRIT 工程師套裝" - -#. ~ Description for CRIT Engineering Suit -#: lang/json/ARMOR_from_json.py -msgid "" -"An airtight, flexible suit of woven composite fibers complete with segmented" -" plates of armor. A complex system digitizes items in an individual pocket " -"universe for storage while built in joint-torsion ratchets generate the " -"necessary energy required to power the interface." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "CRIT Armored Anomaly Suit" msgid_plural "CRIT Armored Anomaly Suits" @@ -19190,11 +18993,11 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "CRIT drop leg pouch" -msgid_plural "C.R.I.T drop leg pouches" -msgstr[0] "CRIT 腿袋" +msgid_plural "CRIT drop leg pouches" +msgstr[0] "" -#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'C.R.I.T drop -#. leg pouches'} +#. ~ Description for {'str': 'CRIT drop leg pouch', 'str_pl': 'CRIT drop leg +#. pouches'} #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " @@ -19228,7 +19031,7 @@ msgstr[0] "CRIT 執法者裝甲靴" #. of CRIT Enforcer docks'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of " +"CRIT Enforcer docks. Metal plates vaguely molded into the shape of " "oversized feet which clamp down onto your own footwear keep your feet out of" " harms way. It looks terrible and feels clunky unlike most of C.R.I.T's " "designs, but they do seem to be worth using if you were to be in the middle " @@ -19264,91 +19067,90 @@ msgid "" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T blouse" -msgid_plural "C.R.I.T blouses" -msgstr[0] "CRIT 上衣" +msgid "CRIT blouse" +msgid_plural "CRIT blouses" +msgstr[0] "" -#. ~ Description for C.R.I.T blouse +#. ~ Description for CRIT blouse #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage." -" Super-flex neoprene keeps one warm in moderately cold weather while a " -"sleek design keeps it from being too flashy. A zipper at the back and front" -" allows for quick donning and doffing." +"A standard-issue military jacket. Durable, lightweight, and has ample " +"storage. Super-flex neoprene keeps one warm in moderately cold weather " +"while a sleek design keeps it from being too flashy. A zipper at the back " +"and front allows for quick donning and doffing." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T trousers" -msgid_plural "C.R.I.T trousers" +msgid "CRIT trousers" +msgid_plural "CRIT trousers" msgstr[0] "" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#. ~ Description for {'str_sp': 'CRIT trousers'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue trousers. Durable, lightweight and has ample " +"A pair of standard-issue cargo pants. Durable, lightweight and has ample " "storage. Super-flex neoprene keeps one warm in moderately cold weather." msgstr "" -#. ~ Description for {'str_sp': 'C.R.I.T trousers'} +#: lang/json/ARMOR_from_json.py +msgid "CRIT pants" +msgid_plural "CRIT pants" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'CRIT pants'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " -"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " -"cold weather." +"A pair of dress pants. A minimalist sleek design makes the pants " +"lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in" +" moderately cold weather." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T helmet liner" -msgid_plural "C.R.I.T helmet liners" -msgstr[0] "CRIT 頭盔內襯" +msgid "CRIT helmet liner" +msgid_plural "CRIT helmet liners" +msgstr[0] "" -#. ~ Description for C.R.I.T helmet liner +#. ~ Description for CRIT helmet liner #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." +msgid "A standard-issue helmet liner. Keeps the noggin warm." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T shoes" -msgid_plural "pairs of C.R.I.T dress shoes" -msgstr[0] "CRIT 正裝鞋" +msgid "pair of CRIT shoes" +msgid_plural "pairs of CRIT dress shoes" +msgstr[0] "" -#. ~ Description for {'str': 'pair of C.R.I.T shoes', 'str_pl': 'pairs of -#. C.R.I.T dress shoes'} +#. ~ Description for {'str': 'pair of CRIT shoes', 'str_pl': 'pairs of CRIT +#. dress shoes'} #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "pair of C.R.I.T rec gloves" -msgid_plural "pairs of C.R.I.T rec gloves" +msgid "pair of CRIT rec gloves" +msgid_plural "pairs of CRIT rec gloves" msgstr[0] "" -#. ~ Description for {'str': 'pair of C.R.I.T rec gloves', 'str_pl': 'pairs of -#. C.R.I.T rec gloves'} +#. ~ Description for {'str': 'pair of CRIT rec gloves', 'str_pl': 'pairs of +#. CRIT rec gloves'} #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are" -" made with cotton with a neoprene lining for grip-pads and warmth. " +"A pair of standard-issue rec gloves. Skin-hugging and sleek, these gloves " +"are made with cotton with a neoprene lining for grip-pads and warmth. " msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "C.R.I.T web belt" -msgid_plural "C.R.I.T web belts" -msgstr[0] "CRIT 腰帶" - -#. ~ Description for C.R.I.T web belt +#. ~ Description for CRIT web belt #: lang/json/ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " -"hip." +"A standard-issue belt. Keeps your trousers up and your tools on your hip." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec duster" -msgid_plural "C.R.I.T rec dusters" -msgstr[0] "CRIT 休閒防塵大衣" +msgid "CRIT rec duster" +msgid_plural "CRIT rec dusters" +msgstr[0] "" -#. ~ Description for C.R.I.T rec duster +#. ~ Description for CRIT rec duster #: lang/json/ARMOR_from_json.py msgid "" "A waterproofed full-length duster coat. Made with neoprene, comfort and " @@ -19357,18 +19159,42 @@ msgid "" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "C.R.I.T rec hat" -msgid_plural "C.R.I.T rec hats" -msgstr[0] "CRIT 休閒帽" +msgid "CRIT rec hat" +msgid_plural "CRIT rec hats" +msgstr[0] "" -#. ~ Description for C.R.I.T rec hat +#. ~ Description for CRIT rec hat #: lang/json/ARMOR_from_json.py msgid "" -"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " +"Functionality meets fashion in this waterproofed CRIT standard issue rec " "cover. Thick enough to provide warmth in colder weather, this hat shares " "the same sleek design of most of C.R.I.T's gear." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "plant fiber tunic" +msgid_plural "plant fiber tunics" +msgstr[0] "" + +#. ~ Description for plant fiber tunic +#: lang/json/ARMOR_from_json.py +msgid "" +"A loose garment cobbled together from a collection of plant bundles and " +"wound together by makeshift cordage" +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "plant fiber bracelet" +msgid_plural "plant fiber bracelets" +msgstr[0] "" + +#. ~ Description for plant fiber bracelet +#: lang/json/ARMOR_from_json.py +msgid "" +"A bracelet wound together by makeshift cordage. Has some cool looking " +"pebbles. " +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "CRIT canteen" msgid_plural "CRIT canteens" @@ -19377,8 +19203,8 @@ msgstr[0] "CRIT 水壺" #. ~ Description for CRIT canteen #: lang/json/ARMOR_from_json.py msgid "" -"A simple, durable steel canteen that can heat up food with built in " -"plutonium heating elements." +"A durable steel canteen that can heat up food with built in atomic heating " +"elements." msgstr "" #: lang/json/ARMOR_from_json.py @@ -19947,117 +19773,6 @@ msgid "" "the environment." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "wooden shield" -msgid_plural "wooden shields" -msgstr[0] "木盾" - -#. ~ Description for wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A crude wooden shield, lacking any metal or leather reinforcement. " -"Lightweight but not very tough." -msgstr "一面粗糙的木頭盾牌, 缺乏任何金屬或皮革強化。輕量但不太堅韌。" - -#: lang/json/ARMOR_from_json.py -msgid "large wooden shield" -msgid_plural "large wooden shields" -msgstr[0] "大木盾" - -#. ~ Description for large wooden shield -#: lang/json/ARMOR_from_json.py -msgid "" -"An ancient style of wooden shield, lacking any metal or leather " -"reinforcement. Bulky, but offers a decent amount of protection." -msgstr "一面舊式的木頭盾牌, 缺乏任何金屬或是皮革強化。笨重, 但是能提供不錯的防護能力。" - -#: lang/json/ARMOR_from_json.py -msgid "heater shield" -msgid_plural "heater shields" -msgstr[0] "尖底盾" - -#. ~ Description for heater shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A medieval style of shield made of wood overlaid with leather, developed " -"from the longer kite shield. Mainly used in tournaments, but still viable " -"in battle." -msgstr "一塊具有中世紀風格的盾牌。它發展自較長身的鳶盾, 由木頭覆以皮革製成。主要用於比賽上, 但在戰鬥中仍有用武之地。" - -#: lang/json/ARMOR_from_json.py -msgid "kite shield" -msgid_plural "kite shields" -msgstr[0] "鳶盾" - -#. ~ Description for kite shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A classic medieval style of shield, made of wood overlaid with leather, in " -"an elongated teardrop shape. Affords decent protection, but was better " -"suited for cavalry." -msgstr "一塊具有經典中世紀風格的盾牌, 由木頭覆以皮革製成, 呈細長淚珠形狀。能提供不錯的防護能力, 但比較適合騎兵使用。" - -#: lang/json/ARMOR_from_json.py -msgid "round shield" -msgid_plural "round shields" -msgstr[0] "圓盾" - -#. ~ Description for round shield -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple round shield made of wood, with a rim and boss of iron. Made " -"infamous by the Vikings." -msgstr "一個簡單的木製圓盾, 邊框和盾中心以鐵包覆。因北歐海盜而臭名昭著。" - -#: lang/json/ARMOR_from_json.py -msgid "hoplon" -msgid_plural "hoplons" -msgstr[0] "希臘式大圓盾" - -#. ~ Description for hoplon -#: lang/json/ARMOR_from_json.py -msgid "" -"A convex round shield from ancient Greece, made of wood reinforced with " -"bronze. Heavy but effective." -msgstr "源自古希臘的微凸圓盾, 盾身由木頭製成並以銅包覆加固。笨重但相當有用。" - -#: lang/json/ARMOR_from_json.py -msgid "scutum" -msgid_plural "scuta" -msgstr[0] "羅馬戰盾" - -#. ~ Description for {'str': 'scutum', 'str_pl': 'scuta'} -#: lang/json/ARMOR_from_json.py -msgid "" -"A rectangular shield from ancient Rome, made of wood and iron. Perfect for " -"fighting in formation, but not ideal for facing zombies alone." -msgstr "一面來自古羅馬的矩形盾牌, 以木和鐵製成。在編隊作戰中非常有用, 但當要獨自面對殭屍時就不太理想。" - -#: lang/json/ARMOR_from_json.py -msgid "buckler" -msgid_plural "bucklers" -msgstr[0] "小圓盾" - -#. ~ Description for buckler -#: lang/json/ARMOR_from_json.py -msgid "" -"A small metal shield from the late medieval and renaissance periods. " -"Extremely light and tough, but its small size is as much a hindrance as it " -"is an advantage." -msgstr "一面小型金屬盾牌, 源自中世紀晚期和文藝復興時期。極度輕巧且堅韌, 但它的尺寸之小實在好壞參半。" - -#: lang/json/ARMOR_from_json.py -msgid "hooded hat" -msgid_plural "hooded hats" -msgstr[0] "兜帽" - -#. ~ Description for hooded hat -#: lang/json/ARMOR_from_json.py -msgid "" -"A proper wide-brimmed hat, modified by the addition of a hood sewn to it, to" -" better protect the neck from wind and rain." -msgstr "一頂像樣的寬邊帽, 縫上了一個額外的兜帽, 更能保護頸部免受風吹雨淋。" - #: lang/json/ARMOR_from_json.py msgid "TEST pair of socks" msgid_plural "TEST pairs of socks" @@ -20088,6 +19803,26 @@ msgid "TEST briefcase" msgid_plural "TEST briefcases" msgstr[0] "" +#: lang/json/ARMOR_from_json.py +msgid "test quiver" +msgid_plural "test quivers" +msgstr[0] "" + +#. ~ Description for {'str': 'test quiver'} +#: lang/json/ARMOR_from_json.py +msgid "Quiver of Testing, with room for 20 arrows or bolts." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "test power armor" +msgid_plural "test power armors" +msgstr[0] "" + +#. ~ Description for {'str': 'test power armor'} +#: lang/json/ARMOR_from_json.py +msgid "This is a prototype power armor just for testing." +msgstr "" + #: lang/json/BATTERY_from_json.py msgid "test battery" msgid_plural "test batteries" @@ -21711,6 +21446,18 @@ msgid "" "suppressing fear." msgstr "一組微小的仿生神經刺激器,安裝在你大腦的獎勵中心。啟動時,它會消耗能量並定期釋放多巴胺和其他獎勵化學物質,引起興奮狀態並抑制恐懼。" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Cranium Bomb" +msgid_plural "Cranium Bombs" +msgstr[0] "" + +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/BIONIC_ITEM_from_json.py +msgid "" +"A bomb installed where your spine meets your brain stem. It's on a timer " +"from installation and you don't have the codes to reset the timer." +msgstr "" + #: lang/json/BIONIC_ITEM_from_json.py msgid "Ionic Overload Generator CBM" msgid_plural "Ionic Overload Generator CBMs" @@ -21739,6 +21486,21 @@ msgid "" " the better. It can hold up to 100 mL of blood." msgstr "" +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "Crystallized Mana Nose Replacement" +msgid_plural "Crystallized Mana Nose Replacements" +msgstr[0] "" + +#. ~ Description for {'str': 'Crystallized Mana Nose Replacement'} +#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +msgid "" +"A large gem made with crystallized mana and some other stabilizing metals. " +"Comes with a specially designed power pack (installed into the skull) that " +"does not interfere with your mana ley lines. WARNING: for Technomancer use " +"only. By using this spell you are waiving all liability of Frikken Laser " +"Beams Inc. and its subsidiaries." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" msgid_plural "chicken walker schematics" @@ -21801,289 +21563,398 @@ msgid "" msgstr "作者紀錄了非常完整的研究文件, 用一種非常有說服力的方式, 發表了 \"用彈簧發射的核彈\"。上面被蓋了章: \"駁回\"。" #: lang/json/BOOK_from_json.py -msgid "Lessons for the Novice Bowhunter" -msgid_plural "copies of Lessons for the Novice Bowhunter" +msgid "Generic Nonfiction Book" +msgid_plural "Generic Nonfiction Books" msgstr[0] "" -#. ~ Description for {'str': 'Lessons for the Novice Bowhunter', 'str_pl': -#. 'copies of Lessons for the Novice Bowhunter'} +#. ~ Description for Generic Nonfiction Book #: lang/json/BOOK_from_json.py -msgid "" -"This hefty paperback book contains all the information needed for novice " -"archers to get started hunting with a variety of bows and crossbows." -msgstr "這個沉重的平裝書包含新手利用弓和弩進行狩獵所需要的資訊。" +msgid "template for a manuscript purporting to be factual" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Archery for Kids" -msgid_plural "issues of Archery for Kids" +msgid "Generic Fiction Book" +msgid_plural "Generic Fiction Books" msgstr[0] "" -#. ~ Description for {'str': 'Archery for Kids', 'str_pl': 'issues of Archery -#. for Kids'} +#. ~ Description for Generic Fiction Book #: lang/json/BOOK_from_json.py -msgid "" -"Will you be able to place the arrow right into the bullseye? It is not that" -" easy, but once you know how it's done, you will have a lot of fun with " -"archery." -msgstr "你有辦法將箭射中紅心嗎? 這並不簡單, 但如果你知道怎麼做, 你將從射箭中獲得不少樂趣。" +msgid "template for a work of fiction" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Zen and the Art of Archery" -msgid_plural "copies of Zen and the Art of Archery" +msgid "Generic Hard Bound Fiction Book" +msgid_plural "Generic Hard Bound Fiction Books" msgstr[0] "" -#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies -#. of Zen and the Art of Archery'} +#. ~ Description for Generic Hard Bound Fiction Book #: lang/json/BOOK_from_json.py -msgid "" -"This massive book contains a wealth of vital information for the novice " -"archer." -msgstr "一本巨大的書包含了大量對於弓箭初學者的重要資訊。" +msgid "Template for hard bound book of fiction" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "car buyer's guide" -msgid_plural "car buyer's guides" -msgstr[0] "購車指南" +msgid "paperback novel" +msgid_plural "paperbacks" +msgstr[0] "" -#. ~ Description for {'str': "car buyer's guide"} +#. ~ Description for {'str': 'paperback novel', 'str_pl': 'paperbacks'} #: lang/json/BOOK_from_json.py -msgid "" -"Normally this glossy, ad-filled magazine about cars would be pointless, but " -"it has a series of articles on haggling techniques." -msgstr "通常這種亮面雜誌充滿著無意義的汽車廣告, 但是還是有一系列關於討價還價的文章。" +msgid "An ordinary paperback book. Or is it? It is." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "How to Succeed in Business" -msgid_plural "copies of How to Succeed in Business" +msgid "Nonfiction Book" +msgid_plural "Nonfiction Books" msgstr[0] "" -#. ~ Description for {'str': 'How to Succeed in Business', 'str_pl': 'copies -#. of How to Succeed in Business'} +#. ~ Description for Nonfiction Book #: lang/json/BOOK_from_json.py -msgid "Useful if you want to get a good deal when purchasing goods." -msgstr "假如你想要在購物時拿到好價錢的話可以參考看看。" +msgid "template for hard bound nonfiction book" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Advanced Economics" -msgid_plural "copies of Advanced Economics" +msgid "Nonfiction Paperback" +msgid_plural "Nonfiction Paperbacks" msgstr[0] "" -#. ~ Description for {'str': 'Advanced Economics', 'str_pl': 'copies of -#. Advanced Economics'} +#. ~ Description for Nonfiction Paperback #: lang/json/BOOK_from_json.py -msgid "A college textbook on economics." -msgstr "一本有關經濟學的大學課本。" +msgid "template for a paperback nonfiction book" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Batter Up!" -msgid_plural "issues of Batter Up!" +msgid "Homemaking Book" +msgid_plural "Homemaking Books" msgstr[0] "" -#. ~ Description for {'str': 'Batter Up!', 'str_pl': 'issues of Batter Up!'} +#. ~ Description for Homemaking Book #: lang/json/BOOK_from_json.py msgid "" -"A baseball magazine that focuses on batting tips. There are lots of " -"colorful, full-page photos of skilled athletes demonstrating proper form and" -" technique." -msgstr "一本注重打擊技巧的棒球雜誌。內容充滿大量彩色的全版圖片, 以適當的形式展示技術熟練的運動員的動作技巧。" +"This is a template for books about homemaking, style, home decor, and home " +"economics." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "tactical baton defense manual" -msgid_plural "tactical baton defense manuals" -msgstr[0] "戰術甩棍防衛手冊" +msgid "Hardcover Cookbook" +msgid_plural "Hardcover Cookbooks" +msgstr[0] "" -#. ~ Description for {'str': 'tactical baton defense manual'} +#. ~ Description for Hardcover Cookbook +#. ~ Description for Softcover Cookbook #: lang/json/BOOK_from_json.py -msgid "" -"An informative guide to self-defense using clubs and batons. Aimed at the " -"law enforcement and military market, it is packed with time tested, no-" -"nonsense information and written to be understandable for beginners." -msgstr "教導使用棍棒與甩棍自衛的知識性書籍。主要是針對執法人員與軍事用途, 內容充滿實用性, 經過時間考驗, 並且內容也很適合初學者閱讀。" +msgid "This is a template for books about cooking." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "SICP" -msgid_plural "copies of SICP" +msgid "Softcover Cookbook" +msgid_plural "Softcover Cookbooks" msgstr[0] "" -#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} #: lang/json/BOOK_from_json.py -msgid "" -"A classic text, \"The Structure and Interpretation of Computer Programs.\" " -"Written with examples in LISP, but applicable to any language." -msgstr "一本資訊課本, 全名為 \"電腦程式的構造和解釋\"。它的範例以 LISP 程式語言所寫成, 但是可以通用到其他的程式語言。" +msgid "dodge skillbook abstract" +msgid_plural "dodge skillbook abstracts" +msgstr[0] "" +#. ~ Description for dodge skillbook abstract #: lang/json/BOOK_from_json.py -msgid "Computer Science 301" -msgid_plural "copies of Computer Science 301" +msgid "An ordinary book. Or is it? It is." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Philosophy" +msgid_plural "Hardcover Philosophys" msgstr[0] "" -#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of -#. Computer Science 301'} +#. ~ Description for Hardcover Philosophy #: lang/json/BOOK_from_json.py -msgid "A college textbook on computer science." -msgstr "一本大學電腦科學的課本。" +msgid "This is a template for books about philosophy." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "How to Browse the Web" -msgid_plural "copies of How to Browse the Web" +msgid "Softcover Philosophy." +msgid_plural "Softcover Philosophy.s" msgstr[0] "" -#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How -#. to Browse the Web'} +#. ~ Description for Softcover Philosophy. #: lang/json/BOOK_from_json.py -msgid "Very beginner-level information about computers." -msgstr "一本非常基礎的電腦知識書籍。" +msgid "This is a template for paperbacks about philosophy." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Computer World" -msgid_plural "issues of Computer World" +msgid "Hardcover Nonfiction Sports Book" +msgid_plural "Hardcover Nonfiction Sports Books" msgstr[0] "" -#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer -#. World'} +#. ~ Description for Hardcover Nonfiction Sports Book +#. ~ Description for Softcover Nonfiction Sports Book. +#. ~ Description for Hardcover Fictional Sports Book +#. ~ Description for Softcover Fictional Sports Book. +#: lang/json/BOOK_from_json.py +msgid "This is a template." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Nonfiction Sports Book." +msgid_plural "Softcover Nonfiction Sports Book.s" +msgstr[0] "" + +#: lang/json/BOOK_from_json.py +msgid "Hardcover Fictional Sports Book" +msgid_plural "Hardcover Fictional Sports Books" +msgstr[0] "" + +#: lang/json/BOOK_from_json.py +msgid "Softcover Fictional Sports Book." +msgid_plural "Softcover Fictional Sports Book.s" +msgstr[0] "" + +#: lang/json/BOOK_from_json.py +msgid "template for mass produced books on esoteric subjects" +msgid_plural "template for mass produced books on esoteric subjectss" +msgstr[0] "" + +#. ~ Description for template for mass produced books on esoteric subjects #: lang/json/BOOK_from_json.py msgid "" -"An informative magazine all about computers, both hardware and software." -msgstr "一本全部關於電腦知識的雜誌, 包含了硬體與軟體。" +"An ordinary paperback book. Or is it? Is that a glimmer of higher truth?" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Computer Science 101" -msgid_plural "copies of Computer Science 101" +msgid "Sweet Providence Romance Novel" +msgid_plural "Sweet Providence Romance Novels" msgstr[0] "" -#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of -#. Computer Science 101'} +#. ~ Description for Sweet Providence Romance Novel #: lang/json/BOOK_from_json.py -msgid "An entry-level textbook about computers." -msgstr "一本入門級的電腦課本。" +msgid "" +"Sweet Providence Books is a publisher of discount romance paperbacks easily " +"recognized by their blue and yellow cover illustrations. Despite the adult " +"nature of their subject matter, the books tend to be under 250 pages of " +"large print written in a vocabulary consistent with a 4th grade reading " +"level." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Principles of Advanced Programming" -msgid_plural "copies of Principles of Advanced Programming" +msgid "Lorn and Loan Romance Novel" +msgid_plural "Lorn and Loan Romance Novels" msgstr[0] "" -#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': -#. 'copies of Principles of Advanced Programming'} +#. ~ Description for Lorn and Loan Romance Novel #: lang/json/BOOK_from_json.py msgid "" -"A heavy textbook dedicated to advanced-level software design, written for " -"several different programming languages." -msgstr "一個沉重的教科書, 內容是進階水準的程式設計, 並且有許多不同的程式語言。" +"Lorn and Loan Press marketed romance paperbacks to a variety of alt " +"demographics, especially those with a penchant for eyeliner. The books are " +"billed as \"provocative,\" but words like \"malingering\" and \"turgid\" " +"also come to mind." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Advanced Physical Chemistry" -msgid_plural "copies of Advanced Physical Chemistry" +msgid "Vanilla Romance Novel" +msgid_plural "Vanilla Romance Novels" msgstr[0] "" -#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies -#. of Advanced Physical Chemistry'} +#. ~ Description for Vanilla Romance Novel #: lang/json/BOOK_from_json.py msgid "" -"A university-level textbook on advanced principles of chemistry, both " -"organic and inorganic." -msgstr "講述進階化學原理的大學教科書, 包含了有機和無機部分。" +"Vanilla Media is a mainstream publisher providing romantic literature to " +"everyday readers of taste. These stories contain explicit details only in " +"the odd chapters, and invariably end with a conventionally uplifting moral." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Homebrewer's Bible" -msgid_plural "copies of The Homebrewer's Bible" +msgid "The Everyman Library" +msgid_plural "The Everyman Librarys" msgstr[0] "" -#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of -#. The Homebrewer's Bible"} +#. ~ Description for The Everyman Library #: lang/json/BOOK_from_json.py msgid "" -"A book full of easy-to-follow recipes and useful advice on homebrewing, " -"malting, and fermenting. It even smells faintly of booze." -msgstr "一本寫滿了簡單易懂配方和有用建議的私家釀酒指南, 內容包含麥芽發芽、發酵、釀造。它甚至還飄出淡淡酒香。" +"The Everyman Library is an imprint of Vanilla Media that publishes stories " +"about private eyes, cowboys, quarterbacks, and mobsters." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Cooking on a Budget" -msgid_plural "copies of Cooking on a Budget" +msgid "Tween Topics" +msgid_plural "Tween Topicss" msgstr[0] "" -#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of -#. Cooking on a Budget'} +#. ~ Description for Tween Topics #: lang/json/BOOK_from_json.py msgid "" -"A nice cook book that goes beyond recipes and into the chemistry of food." -msgstr "一本很好的書, 講解了許多配方與食物間的化學變化。" +"Tween Topics is an imprint of Vanilla Media that publishes stories that " +"appeal to the youth of today. Or, failing that, the parents of said youth." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "To Serve Man" -msgid_plural "copies of To Serve Man" +msgid "Quiddity Books" +msgid_plural "Quiddity Bookss" msgstr[0] "" -#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve -#. Man'} +#. ~ Description for Quiddity Books #: lang/json/BOOK_from_json.py -msgid "It's… it's a cookbook!" -msgstr "這… 這是一本食譜?!" +msgid "" +"Quiddity publishes books for young adults. They offer stories about self-" +"discovery, personal identity, and contemporary trends." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Cucina Italiana" -msgid_plural "copies of Cucina Italiana" +msgid "Satire Template" +msgid_plural "Satire Templates" msgstr[0] "" -#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina -#. Italiana'} +#. ~ Description for Satire Template +#: lang/json/BOOK_from_json.py +msgid "template for mass produced satirical fiction" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Magazine Template" +msgid_plural "Magazine Templates" +msgstr[0] "" + +#. ~ Description for Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "News Magazine Template" +msgid_plural "News Magazine Templates" +msgstr[0] "" + +#. ~ Description for News Magazine Template +#: lang/json/BOOK_from_json.py +msgid "template for news magazine" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "readable magazine" +msgid_plural "readable magazines" +msgstr[0] "" + +#: lang/json/BOOK_from_json.py +msgid "archery skill training abstract" +msgid_plural "archery skill training abstracts" +msgstr[0] "" + +#. ~ Description for archery skill training abstract +#: lang/json/BOOK_from_json.py +msgid "template for heavy books that confer archery skill training" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Lessons for the Novice Bowhunter" +msgid_plural "copies of Lessons for the Novice Bowhunter" +msgstr[0] "" + +#. ~ Description for {'str': 'Lessons for the Novice Bowhunter', 'str_pl': +#. 'copies of Lessons for the Novice Bowhunter'} #: lang/json/BOOK_from_json.py msgid "" -"This cookbook is written in Italian, but handily illustrated with step by " -"step photo instructions." -msgstr "這是一本義大利文編寫的烹飪書, 但只要照著圖片指示按部就班做就沒問題了。" +"This hefty paperback book contains all the information needed for novice " +"archers to get started hunting with a variety of bows and crossbows." +msgstr "這個沉重的平裝書包含新手利用弓和弩進行狩獵所需要的資訊。" #: lang/json/BOOK_from_json.py -msgid "Sushi Made Easy" -msgid_plural "copies of Sushi Made Easy" -msgstr[0] "壽司一點通" +msgid "Zen and the Art of Archery" +msgid_plural "copies of Zen and the Art of Archery" +msgstr[0] "" -#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi -#. Made Easy'} +#. ~ Description for {'str': 'Zen and the Art of Archery', 'str_pl': 'copies +#. of Zen and the Art of Archery'} #: lang/json/BOOK_from_json.py msgid "" -"A simple text for the aspiring sushi lover, this easy to read guide is " -"filled with lots of helpful illustrations for everything from basic rice " -"preparation to setting a proper Japanese table." -msgstr "一本為想學做壽司的愛好者準備的小冊子, 這本容易閱讀的指南充滿了有用的插圖, 一切從準備基本的米飯和一張和室桌開始。" +"This massive book contains a wealth of vital information for the novice " +"archer." +msgstr "一本巨大的書包含了大量對於弓箭初學者的重要資訊。" #: lang/json/BOOK_from_json.py -msgid "family cookbook" -msgid_plural "family cookbooks" -msgstr[0] "家庭食譜" +msgid "Archery for Kids" +msgid_plural "issues of Archery for Kids" +msgstr[0] "兒童弓箭指南" -#. ~ Description for {'str': 'family cookbook'} +#. ~ Description for {'str': 'Archery for Kids', 'str_pl': 'issues of Archery +#. for Kids'} #: lang/json/BOOK_from_json.py msgid "" -"A big binder full of somebody's family recipes. The well-turned pages and " -"creased corners speak volumes of the culinary knowledge contained within. " -"You could probably learn a lot about cooking from studying this domestic " -"artifact." -msgstr "一本某人的家族烹飪食譜。裡面充滿了各種手寫筆記與烹飪細節的豐富知識。也許你能夠從這本神器中學到許多烹飪技巧。" +"Will you be able to place the arrow right into the bullseye? It is not that" +" easy, but once you know how it's done, you will have a lot of fun with " +"archery." +msgstr "你有辦法將箭射中紅心嗎? 這並不簡單, 但如果你知道怎麼做, 你將從射箭中獲得不少樂趣。" #: lang/json/BOOK_from_json.py -msgid "Bon Appetit" -msgid_plural "issues of Bon Appetit" +msgid "car buyer's guide" +msgid_plural "car buyer's guides" +msgstr[0] "購車指南" + +#. ~ Description for {'str': "car buyer's guide"} +#: lang/json/BOOK_from_json.py +msgid "" +"Normally this glossy, ad-filled magazine about cars would be pointless, but " +"it has a series of articles on haggling techniques." +msgstr "通常這種亮面雜誌充滿著無意義的汽車廣告, 但是還是有一系列關於討價還價的文章。" + +#: lang/json/BOOK_from_json.py +msgid "How to Succeed in Business" +msgid_plural "copies of How to Succeed in Business" msgstr[0] "" -#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#. ~ Description for {'str': 'How to Succeed in Business', 'str_pl': 'copies +#. of How to Succeed in Business'} +#: lang/json/BOOK_from_json.py +msgid "Useful if you want to get a good deal when purchasing goods." +msgstr "假如你想要在購物時拿到好價錢的話可以參考看看。" + +#: lang/json/BOOK_from_json.py +msgid "Advanced Economics" +msgid_plural "copies of Advanced Economics" +msgstr[0] "高等經濟學" + +#. ~ Description for {'str': 'Advanced Economics', 'str_pl': 'copies of +#. Advanced Economics'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on economics." +msgstr "一本有關經濟學的大學課本。" + +#: lang/json/BOOK_from_json.py +msgid "Batter Up!" +msgid_plural "issues of Batter Up!" +msgstr[0] "" + +#. ~ Description for {'str': 'Batter Up!', 'str_pl': 'issues of Batter Up!'} #: lang/json/BOOK_from_json.py msgid "" -"Exciting recipes and restaurant reviews. Full of handy tips about cooking." -msgstr "提供各種令人胃口大開的食譜以及餐廳介紹。充滿了許多關於烹飪的小撇步。" +"A baseball magazine that focuses on batting tips. There are lots of " +"colorful, full-page photos of skilled athletes demonstrating proper form and" +" technique." +msgstr "一本注重打擊技巧的棒球雜誌。內容充滿大量彩色的全版圖片, 以適當的形式展示技術熟練的運動員的動作技巧。" #: lang/json/BOOK_from_json.py -msgid "Glamopolitan" -msgid_plural "issues of Glamopolitan" +msgid "tactical baton defense manual" +msgid_plural "tactical baton defense manuals" +msgstr[0] "戰術甩棍防衛手冊" + +#. ~ Description for {'str': 'tactical baton defense manual'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative guide to self-defense using clubs and batons. Aimed at the " +"law enforcement and military market, it is packed with time tested, no-" +"nonsense information and written to be understandable for beginners." +msgstr "教導使用棍棒與甩棍自衛的知識性書籍。主要是針對執法人員與軍事用途, 內容充滿實用性, 經過時間考驗, 並且內容也很適合初學者閱讀。" + +#: lang/json/BOOK_from_json.py +msgid "Advanced Physical Chemistry" +msgid_plural "copies of Advanced Physical Chemistry" msgstr[0] "" -#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of -#. Glamopolitan'} +#. ~ Description for {'str': 'Advanced Physical Chemistry', 'str_pl': 'copies +#. of Advanced Physical Chemistry'} #: lang/json/BOOK_from_json.py msgid "" -"This is a full-size glossy women's magazine. There are a few unoriginal " -"recipes and some simple cooking tips somewhere in between the fashion photos" -" and the sex advice columns." -msgstr "這是全方位的女性雜誌。有一些非原創的食譜與簡單的烹飪要訣, 還有一些時裝圖片與性愛專欄。" +"A university-level textbook on advanced principles of physical chemistry and" +" all its branches: thermochemistry, electrochemistry, solid-state chemistry," +" photochemistry, quantum chemistry et cetera." +msgstr "" #: lang/json/BOOK_from_json.py msgid "The Modern Tanner" @@ -22258,6 +22129,233 @@ msgid "" "and physical data is your thing, this is the book for you." msgstr "這本龐大的精裝書是許多技術學科相關的參考數據和公式的彙編。如果想鑽研化學和物理數據表的話,那麼這本書適合你。" +#: lang/json/BOOK_from_json.py +msgid "chemistry textbook" +msgid_plural "chemistry textbooks" +msgstr[0] "化學課本" + +#. ~ Description for {'str': 'chemistry textbook'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on chemistry." +msgstr "一本化學的大學課本。" + +#: lang/json/BOOK_from_json.py +msgid "The Essential Oil Enthusiasts Handbook" +msgid_plural "copies of The Essential Oil Enthusiasts Handbook" +msgstr[0] "" + +#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', +#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy hardback book explaining the process of essential oil making, with " +"schematics for the equipment to do it. Good luck, and don't blow yourself " +"up!" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Art and Science of Chemical Warfare" +msgid_plural "copies of Art and Science of Chemical Warfare" +msgstr[0] "" + +#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': +#. 'copies of Art and Science of Chemical Warfare'} +#: lang/json/BOOK_from_json.py +msgid "" +"This in-depth and technical text covers the design, development, " +"dissemination of, and defenses against various chemical weapons throughout " +"the centuries. The photographs the author chose make it a difficult read at" +" times, though the information is top-notch." +msgstr "這本專業讀物深入淺出地講述了從古至今的化學武器歷史。即使包含了一流的資訊, 但是作者照片的攝影技術是三流的。" + +#: lang/json/BOOK_from_json.py +msgid "Chemistry for Kids: Awesome Science Experiments that Really Work" +msgid_plural "" +"copies of Chemistry for Kids: Awesome Science Experiments that Really Work" +msgstr[0] "" + +#. ~ Description for {'str': 'Chemistry for Kids: Awesome Science Experiments +#. that Really Work', 'str_pl': 'copies of Chemistry for Kids: Awesome Science +#. Experiments that Really Work'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book with comprehensive and accurate step-by-step illustrated instructions" +" for many scientific experiments for young researchers and anyone else who " +"want to delve into an amazing world of chemistry." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "SICP" +msgid_plural "copies of SICP" +msgstr[0] "" + +#. ~ Description for {'str': 'SICP', 'str_pl': 'copies of SICP'} +#: lang/json/BOOK_from_json.py +msgid "" +"A classic text, \"The Structure and Interpretation of Computer Programs.\" " +"Written with examples in LISP, but applicable to any language." +msgstr "一本資訊課本, 全名為 \"電腦程式的構造和解釋\"。它的範例以 LISP 程式語言所寫成, 但是可以通用到其他的程式語言。" + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 301" +msgid_plural "copies of Computer Science 301" +msgstr[0] "" + +#. ~ Description for {'str': 'Computer Science 301', 'str_pl': 'copies of +#. Computer Science 301'} +#: lang/json/BOOK_from_json.py +msgid "A college textbook on computer science." +msgstr "一本大學電腦科學的課本。" + +#: lang/json/BOOK_from_json.py +msgid "How to Browse the Web" +msgid_plural "copies of How to Browse the Web" +msgstr[0] "" + +#. ~ Description for {'str': 'How to Browse the Web', 'str_pl': 'copies of How +#. to Browse the Web'} +#: lang/json/BOOK_from_json.py +msgid "Very beginner-level information about computers." +msgstr "一本非常基礎的電腦知識書籍。" + +#: lang/json/BOOK_from_json.py +msgid "Computer World" +msgid_plural "issues of Computer World" +msgstr[0] "" + +#. ~ Description for {'str': 'Computer World', 'str_pl': 'issues of Computer +#. World'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative magazine all about computers, both hardware and software." +msgstr "一本全部關於電腦知識的雜誌, 包含了硬體與軟體。" + +#: lang/json/BOOK_from_json.py +msgid "Computer Science 101" +msgid_plural "copies of Computer Science 101" +msgstr[0] "" + +#. ~ Description for {'str': 'Computer Science 101', 'str_pl': 'copies of +#. Computer Science 101'} +#: lang/json/BOOK_from_json.py +msgid "An entry-level textbook about computers." +msgstr "一本入門級的電腦課本。" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Advanced Programming" +msgid_plural "copies of Principles of Advanced Programming" +msgstr[0] "" + +#. ~ Description for {'str': 'Principles of Advanced Programming', 'str_pl': +#. 'copies of Principles of Advanced Programming'} +#: lang/json/BOOK_from_json.py +msgid "" +"A heavy textbook dedicated to advanced-level software design, written for " +"several different programming languages." +msgstr "一個沉重的教科書, 內容是進階水準的程式設計, 並且有許多不同的程式語言。" + +#: lang/json/BOOK_from_json.py +msgid "The Homebrewer's Bible" +msgid_plural "copies of The Homebrewer's Bible" +msgstr[0] "" + +#. ~ Description for {'str': "The Homebrewer's Bible", 'str_pl': "copies of +#. The Homebrewer's Bible"} +#: lang/json/BOOK_from_json.py +msgid "" +"A book full of easy-to-follow recipes and useful advice on homebrewing, " +"malting, and fermenting. It even smells faintly of booze." +msgstr "一本寫滿了簡單易懂配方和有用建議的私家釀酒指南, 內容包含麥芽發芽、發酵、釀造。它甚至還飄出淡淡酒香。" + +#: lang/json/BOOK_from_json.py +msgid "Cooking on a Budget" +msgid_plural "copies of Cooking on a Budget" +msgstr[0] "" + +#. ~ Description for {'str': 'Cooking on a Budget', 'str_pl': 'copies of +#. Cooking on a Budget'} +#: lang/json/BOOK_from_json.py +msgid "" +"A nice cook book that goes beyond recipes and into the chemistry of food." +msgstr "一本很好的書, 講解了許多配方與食物間的化學變化。" + +#: lang/json/BOOK_from_json.py +msgid "To Serve Man" +msgid_plural "copies of To Serve Man" +msgstr[0] "" + +#. ~ Description for {'str': 'To Serve Man', 'str_pl': 'copies of To Serve +#. Man'} +#: lang/json/BOOK_from_json.py +msgid "It's… it's a cookbook!" +msgstr "這… 這是一本食譜?!" + +#: lang/json/BOOK_from_json.py +msgid "Cucina Italiana" +msgid_plural "copies of Cucina Italiana" +msgstr[0] "" + +#. ~ Description for {'str': 'Cucina Italiana', 'str_pl': 'copies of Cucina +#. Italiana'} +#: lang/json/BOOK_from_json.py +msgid "" +"This cookbook is written in Italian, but handily illustrated with step by " +"step photo instructions." +msgstr "這是一本義大利文編寫的烹飪書, 但只要照著圖片指示按部就班做就沒問題了。" + +#: lang/json/BOOK_from_json.py +msgid "Sushi Made Easy" +msgid_plural "copies of Sushi Made Easy" +msgstr[0] "壽司一點通" + +#. ~ Description for {'str': 'Sushi Made Easy', 'str_pl': 'copies of Sushi +#. Made Easy'} +#: lang/json/BOOK_from_json.py +msgid "" +"A simple text for the aspiring sushi lover, this easy to read guide is " +"filled with lots of helpful illustrations for everything from basic rice " +"preparation to setting a proper Japanese table." +msgstr "一本為想學做壽司的愛好者準備的小冊子, 這本容易閱讀的指南充滿了有用的插圖, 一切從準備基本的米飯和一張和室桌開始。" + +#: lang/json/BOOK_from_json.py +msgid "family cookbook" +msgid_plural "family cookbooks" +msgstr[0] "家庭食譜" + +#. ~ Description for {'str': 'family cookbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"A big binder full of somebody's family recipes. The well-turned pages and " +"creased corners speak volumes of the culinary knowledge contained within. " +"You could probably learn a lot about cooking from studying this domestic " +"artifact." +msgstr "一本某人的家族烹飪食譜。裡面充滿了各種手寫筆記與烹飪細節的豐富知識。也許你能夠從這本神器中學到許多烹飪技巧。" + +#: lang/json/BOOK_from_json.py +msgid "Bon Appetit" +msgid_plural "issues of Bon Appetit" +msgstr[0] "大快朵頤" + +#. ~ Description for {'str': 'Bon Appetit', 'str_pl': 'issues of Bon Appetit'} +#: lang/json/BOOK_from_json.py +msgid "" +"Exciting recipes and restaurant reviews. Full of handy tips about cooking." +msgstr "提供各種令人胃口大開的食譜以及餐廳介紹。充滿了許多關於烹飪的小撇步。" + +#: lang/json/BOOK_from_json.py +msgid "Glamopolitan" +msgid_plural "issues of Glamopolitan" +msgstr[0] "" + +#. ~ Description for {'str': 'Glamopolitan', 'str_pl': 'issues of +#. Glamopolitan'} +#: lang/json/BOOK_from_json.py +msgid "" +"This is a full-size glossy women's magazine. There are a few unoriginal " +"recipes and some simple cooking tips somewhere in between the fashion photos" +" and the sex advice columns." +msgstr "這是全方位的女性雜誌。有一些非原創的食譜與簡單的烹飪要訣, 還有一些時裝圖片與性愛專欄。" + #. ~ That would translate out to The Scottish Book of Cookery, or The Scottish #. Cookbook. #: lang/json/BOOK_from_json.py @@ -22270,24 +22368,11 @@ msgstr[0] "傳統蘇格蘭文化" #. 'str_pl': 'copies of Ye Scots Beuk o Cuikery'} #: lang/json/BOOK_from_json.py msgid "" -"A semi-translated cookbook from thirteenth century Scotland. While a bit " -"difficult to read, as there are a disquieting number of illustrations of " -"people stabbing each other mixed amongst the recipes, it provides insights " -"into medieval Scottish culture and fashion as well as new uses for oatmeal, " -"fish, and sheep liver." +"A semi-translated Gaelic cookbook from sixteenth century Scotland. While a " +"bit difficult to read, as there are a disquieting number of illustrations of" +" people stabbing each other mixed with rants about 'True Scotsman', it " +"provides insights into medieval Scottish cuisine and culture." msgstr "" -"一本翻譯了一半的 13 世紀蘇格蘭食譜。各式配方之間有著大量殺來殺去的插畫, 閱讀起來有點困難。本書不僅介紹了燕麥片、魚、羊肝的新用法, " -"還能一探中世紀的蘇格蘭文化。" - -#: lang/json/BOOK_from_json.py -msgid "chemistry textbook" -msgid_plural "chemistry textbooks" -msgstr[0] "化學課本" - -#. ~ Description for {'str': 'chemistry textbook'} -#: lang/json/BOOK_from_json.py -msgid "A college textbook on chemistry." -msgstr "一本化學的大學課本。" #: lang/json/BOOK_from_json.py msgid "The Vinegar Maker's Handbook" @@ -22465,16 +22550,16 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "Out of the Holler and into the Home: A guide to home distilation. " +msgid "Out of the Holler and into the Home: A guide to home distillation. " msgid_plural "copies of Out of the Holler" msgstr[0] "" #. ~ Description for {'str': 'Out of the Holler and into the Home: A guide to -#. home distilation. ', 'str_pl': 'copies of Out of the Holler'} +#. home distillation. ', 'str_pl': 'copies of Out of the Holler'} #: lang/json/BOOK_from_json.py msgid "" "A book describing the history of at home distillation by liquor. Each " -"chapter contains a complete recipe for it's namesake." +"chapter contains a complete recipe for its namesake." msgstr "" #: lang/json/BOOK_from_json.py @@ -22501,7 +22586,7 @@ msgstr[0] "" #: lang/json/BOOK_from_json.py msgid "" "The smallest cookbook on the market, marketed exclusively to the " -"outdoorsman. Packs a surprising number of recipes for it's tiny size." +"outdoorsman. Packs a surprising number of recipes for its tiny size." msgstr "" #: lang/json/BOOK_from_json.py @@ -22590,6 +22675,20 @@ msgstr[0] "" msgid "The Kids' Guide to Acting and Stagecraft." msgstr "給兒童閱讀的表演與舞台藝術指南。" +#: lang/json/BOOK_from_json.py +msgid "Treasury of Legends about Western Dancing" +msgid_plural "copies of Western Dancing" +msgstr[0] "" + +#. ~ Description for {'str': 'Treasury of Legends about Western Dancing', +#. 'str_pl': 'copies of Western Dancing'} +#: lang/json/BOOK_from_json.py +msgid "" +"Written by Emanuel Nogueira, a constabulario and historian of Nuevo Laredo, " +"this massive book details the movements and cultural legacies of a variety " +"of North American folk dances." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "AAA Guide" msgid_plural "copies of AAA Guide" @@ -22638,7 +22737,7 @@ msgstr "一本觀光導向的城市景點指南。這個特殊的版本顯然是 #: lang/json/BOOK_from_json.py msgid "Advanced Electronics" msgid_plural "copies of Advanced Electronics" -msgstr[0] "" +msgstr[0] "高級電子學" #. ~ Description for {'str': 'Advanced Electronics', 'str_pl': 'copies of #. Advanced Electronics'} @@ -22673,7 +22772,7 @@ msgstr "一本基礎的電子與電路設計的手冊。" #: lang/json/BOOK_from_json.py msgid "Amateur Home Radio for Enthusiasts" msgid_plural "copies of Amateur Home Radio for Enthusiasts" -msgstr[0] "" +msgstr[0] "業餘無線電愛好者" #. ~ Description for {'str': 'Amateur Home Radio for Enthusiasts', 'str_pl': #. 'copies of Amateur Home Radio for Enthusiasts'} @@ -22698,7 +22797,7 @@ msgstr "這表的一面印滿了無意義的混亂字元, 但另一面卻有複 #: lang/json/BOOK_from_json.py msgid "Augmentative Tech Review" msgid_plural "issues of Augmentative Tech Review" -msgstr[0] "" +msgstr[0] "輔助性技術審查" #. ~ Description for {'str': 'Augmentative Tech Review', 'str_pl': 'issues of #. Augmentative Tech Review'} @@ -23208,21 +23307,6 @@ msgid "" "save lives." msgstr "這本專業讀物深入淺出地講述了從古至今的消防歷史, 以救死扶傷技術的革新為敘述核心。" -#: lang/json/BOOK_from_json.py -msgid "Art and Science of Chemical Warfare" -msgid_plural "copies of Art and Science of Chemical Warfare" -msgstr[0] "" - -#. ~ Description for {'str': 'Art and Science of Chemical Warfare', 'str_pl': -#. 'copies of Art and Science of Chemical Warfare'} -#: lang/json/BOOK_from_json.py -msgid "" -"This in-depth and technical text covers the design, development, " -"dissemination of, and defenses against various chemical weapons throughout " -"the centuries. The photographs the author chose make it a difficult read at" -" times, though the information is top-notch." -msgstr "這本專業讀物深入淺出地講述了從古至今的化學武器歷史。即使包含了一流的資訊, 但是作者照片的攝影技術是三流的。" - #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" msgid_plural "copies of The Swords of the Samurai" @@ -23341,20 +23425,6 @@ msgid "" "machining operation, the answer lies somewhere in these pages." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "The Essential Oil Enthusiasts Handbook" -msgid_plural "copies of The Essential Oil Enthusiasts Handbook" -msgstr[0] "" - -#. ~ Description for {'str': 'The Essential Oil Enthusiasts Handbook', -#. 'str_pl': 'copies of The Essential Oil Enthusiasts Handbook'} -#: lang/json/BOOK_from_json.py -msgid "" -"A heavy hardback book explaining the process of essential oil making, with " -"schematics for the equipment to do it. Good luck, and don't blow yourself " -"up!" -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Concrete Constructions" msgid_plural "copies of Concrete Constructions" @@ -23629,6 +23699,19 @@ msgstr[0] "" msgid "A large textbook for college students about biodiesel." msgstr "一本關於生物柴油的大學教科書。" +#: lang/json/BOOK_from_json.py +msgid "Hot Rod Chassis & Suspension Handbook" +msgid_plural "copies of Hot Rod Handbook" +msgstr[0] "" + +#. ~ Description for {'str': 'Hot Rod Chassis & Suspension Handbook', +#. 'str_pl': 'copies of Hot Rod Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"By learning the fundamentals of chassis building and suspension design you " +"will gain the critical knowledge needed to hot rod properly." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" msgid_plural "copies of Mechanical Mastery" @@ -23667,16 +23750,6 @@ msgid "" "techniques for close quarters combat encounters." msgstr "很好翻的一本精裝書, 內容有插畫來說明簡單的近身格鬥策略和技巧。" -#: lang/json/BOOK_from_json.py -msgid "paperback abstract" -msgid_plural "paperback abstracts" -msgstr[0] "" - -#. ~ Description for {'str': 'paperback abstract'} -#: lang/json/BOOK_from_json.py -msgid "An ordinary paperback book. Or is it? It is." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" msgid_plural "copies of Zombie Survival Guide" @@ -23701,19 +23774,6 @@ msgid "" "A full flight log for a military aircraft. Nothing of interest stands out." msgstr "軍機飛行的黑盒子, 紀錄飛行紀錄與相關參數, 沒什麼特別的地方。" -#: lang/json/BOOK_from_json.py -msgid "children's book" -msgid_plural "children's books" -msgstr[0] "童書" - -#. ~ Description for {'str': "children's book"} -#: lang/json/BOOK_from_json.py -msgid "" -"A little book for little readers. The colorful cartoon characters and sweet" -" stories contained herein belong to a different time, before the dead walked" -" and the world moved on." -msgstr "一本給小朋友的小書。有著豐富色彩的卡通角色與甜蜜的故事, 顯然不是這個時間點的產物。" - #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" msgid_plural "Ranch Prospectus" @@ -23745,157 +23805,6 @@ msgid "" "works by Churchill, Mailer, Eco, and Voltaire." msgstr "蒐羅世界各地不同作者的散文作品的合集, 其中包括丘吉爾、梅勒、艾可、和伏爾泰。" -#: lang/json/BOOK_from_json.py -msgid "book of fairy tales" -msgid_plural "books of fairy tales" -msgstr[0] "童話故事集" - -#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy -#. tales'} -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of folklore featuring the usual cast of fairies, " -"goblins, and trolls." -msgstr "一本趣味民間故事集, 通常由小仙子、哥布林和巨魔主演。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale is about a wolf who eats so much salted meat she becomes " -"trapped in the butcher's cellar." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this traditional story of beastly intrigue a clever fox convinces an " -"elderly lion to kill a derogatory wolf." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is an illustrated fairy tale book about a conversation between a mouse " -"and a cat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"An amusing collection of stories featuring \"Goldilocks and The Three " -"Bears\" on the cover." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a well illustrated fairy tale about a war between the birds and the " -"beasts, with particulars on the wartime conduct and eventual fate of the " -"bat." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " -"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" -" page." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This fairy tale book is entitled \"Little Red Cap\". It details a red-" -"cloaked child's various encounters with talking wolves." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of ghost stories warning about the dangers of stealing from the" -" dead." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"An Irish fairy tale in which a Celtic poet marries a princess who has been " -"cursed with the head of a pig." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A book of Italian fairy tales translated into English. The cover features " -"an orange fairy juggling a lemon, a lime, and a tangerine." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "A book of fables about people who change into birds." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This compendium of amusing folk tales about the devil is titled \"Hell's " -"Kettle: Legends of the Devil.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This charming book of Swedish fables is titled, \"The Glass Mountain and the" -" Princess.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a collection of fairy tale stories warning against the consequences " -"of extreme greed." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a book of legends collected by Traveller Johnny Cassidy in the " -"1960s." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of fables expands upon the legend of the Seven Sleepers of " -"Ephesus." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"In this fairy tale a strong man frightens an ogre by squeezing water out of " -"a stone." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of rustic folk tales bears the title: \"How to Shout Down the " -"Devil.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " -"fables about logical errors and foolish misjudgements of the Kadambawa men." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " -"Stories.\"" -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " -"suitable for small children." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" msgid_plural "copies of The Hitchhiker's Guide to the Cataclysm" @@ -23909,257 +23818,6 @@ msgid "" "Panic\"." msgstr "封面上用易讀的字體寫著大大的 \"別慌\"。(此物品引用電影: \"星際大奇航\" 海報的梗)" -#: lang/json/BOOK_from_json.py -msgid "Mycenacean Hymns" -msgid_plural "copies of Mycenacean Hymns" -msgstr[0] "" - -#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of -#. Mycenacean Hymns'} -#: lang/json/BOOK_from_json.py -msgid "" -"A vellum book containing the hymns central to Marloss faith. As the verses " -"lead to each other, the text sings of unity and promised paradise." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "King James Bible" -msgid_plural "copies of King James Bible" -msgstr[0] "" - -#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King -#. James Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, which originated in England " -"in the early 1600s." -msgstr "聖經的英譯本, 最早於十七世紀初的英格蘭出版。" - -#: lang/json/BOOK_from_json.py -msgid "Eastern Orthodox Bible" -msgid_plural "copies of Eastern Orthodox Bible" -msgstr[0] "" - -#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of -#. Eastern Orthodox Bible'} -#: lang/json/BOOK_from_json.py -msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." -msgstr "東正教的聖經英譯本。" - -#: lang/json/BOOK_from_json.py -msgid "Gideon Bible" -msgid_plural "copies of Gideon Bible" -msgstr[0] "" - -#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon -#. Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Christian Bible, distributed free of charge by" -" Gideons International." -msgstr "聖經的英譯本, 由國際基甸會免費發放。" - -#: lang/json/BOOK_from_json.py -msgid "The Guru Granth Sahib" -msgid_plural "copies of The Guru Granth Sahib" -msgstr[0] "永存師尊" - -#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The -#. Guru Granth Sahib'} -#: lang/json/BOOK_from_json.py -msgid "A single-volume copy of the central religious texts of Sikhism." -msgstr "錫克教的宗教核心文本。" - -#: lang/json/BOOK_from_json.py -msgid "Hadith" -msgid_plural "copies of Hadith" -msgstr[0] "" - -#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} -#: lang/json/BOOK_from_json.py -msgid "" -"A Muslim religious text containing an account of the sayings and actions of " -"the prophet Muhammad." -msgstr "穆斯林的典籍, 是先知穆罕默德的言行錄。" - -#: lang/json/BOOK_from_json.py -msgid "Principia Discordia" -msgid_plural "copies of Principia Discordia" -msgstr[0] "渾沌原則" - -#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of -#. Principia Discordia'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of Discordianism. It seems to " -"primarily concern chaos, and features a card in the back which informs you " -"that you are now a 'genuine and authorized Pope of Discordia'." -msgstr "一本體現了渾沌學說主要信仰的書。似乎著眼於混沌學, 在書背的小卡上有 '你現在就是正式授權的渾沌教宗' 字樣。" - -#: lang/json/BOOK_from_json.py -msgid "The Kojiki" -msgid_plural "copies of The Kojiki" -msgstr[0] "古事記" - -#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} -#: lang/json/BOOK_from_json.py -msgid "" -"The oldest extant chronicle of Japan's myths and history, the stories " -"contained in the Kojiki are part of the inspiration behind Shinto practices." -msgstr "現存最古老的日本歷史神話編年史, 古事記中一部分的故事啟發了神道教的發展。" - -#: lang/json/BOOK_from_json.py -msgid "The Book of Mormon" -msgid_plural "copies of The Book of Mormon" -msgstr[0] "摩門之書" - -#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The -#. Book of Mormon'} -#: lang/json/BOOK_from_json.py -msgid "" -"The sacred text of the Latter Day Saint movement of Christianity, originally" -" published in 1830 by Joseph Smith." -msgstr "基督教後期聖徒運動的神聖文本, 最初由約瑟夫·史密斯發表於 1830 年。" - -#: lang/json/BOOK_from_json.py -msgid "The Gospel of the Flying Spaghetti Monster" -msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" -msgstr[0] "飛行義大利麵神教" - -#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', -#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book that embodies the main beliefs of the Church of the Flying Spaghetti " -"Monster. It seems to involve a lot of pirates and some sort of invisible " -"drunken monster made of pasta." -msgstr "一本書, 描述了以飛天麵條怪物為主要信仰的教會。它似乎牽扯了很多關於海盜和隱形的義大利麵製的醉酒怪物。" - -#: lang/json/BOOK_from_json.py -msgid "Quran" -msgid_plural "copies of Quran" -msgstr[0] "" - -#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of the Muslim book of holy scriptures, with " -"explanatory notes and commentaries to aid in understanding." -msgstr "穆斯林聖典的英文譯本, 內含註釋和評論以助讀者理解。" - -#: lang/json/BOOK_from_json.py -msgid "Dianetics" -msgid_plural "copies of Dianetics" -msgstr[0] "戴尼提" - -#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is the canonical text of Scientology. Written by a science " -"fiction author, it contains self-improvement techniques and musings on " -"psychology called Dianetics." -msgstr "這本書是山達基教的經典。它是由一個科幻小說家撰寫, 這種自我幫助系統和心理冥想被稱為戴尼提。" - -#: lang/json/BOOK_from_json.py -msgid "The Book of the SubGenius" -msgid_plural "copies of The Book of the SubGenius" -msgstr[0] "飛碟教之書" - -#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of -#. The Book of the SubGenius'} -#: lang/json/BOOK_from_json.py -msgid "" -"A book about the Church of the SubGenius. It seems to involve a salesman " -"named J. R. \"Bob\" Dobbs and a concept called 'slack'." -msgstr "一本關於飛碟教的書。似乎跟某個叫做 J. R. \"Bob\" 的推銷員有關, 並且有著鬆散的學說。" - -#: lang/json/BOOK_from_json.py -msgid "The Sutras of the Buddha" -msgid_plural "copies of The Sutras of the Buddha" -msgstr[0] "佛陀經藏" - -#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of -#. The Sutras of the Buddha'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of discourses attributed to the Buddha and his close disciples." -msgstr "一本佛陀諸弟子與佛陀間對話的合輯。" - -#: lang/json/BOOK_from_json.py -msgid "Talmud" -msgid_plural "copies of Talmud" -msgstr[0] "" - -#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of Talmud'} -#: lang/json/BOOK_from_json.py -msgid "" -"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " -"Hebrew Bible with teachings and opinions of thousands of rabbis." -msgstr "一個拉比猶太教的核心文本, 猶太法典闡述了在希伯來聖經與教義和數千拉比的意見。" - -#: lang/json/BOOK_from_json.py -msgid "Tanakh" -msgid_plural "copies of Tanakh" -msgstr[0] "" - -#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single-volume book containing the complete canon of the Jewish Bible." -msgstr "一卷書, 包含了猶太聖經的所有章節。" - -#: lang/json/BOOK_from_json.py -msgid "The Tripitaka" -msgid_plural "copies of The Tripitaka" -msgstr[0] "" - -#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The -#. Tripitaka'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Buddhist writings describing their canons of " -"scriptures." -msgstr "神聖的佛教著作合輯, 描述佛教的教規。" - -#: lang/json/BOOK_from_json.py -msgid "The Upanishads" -msgid_plural "copies of The Upanishads" -msgstr[0] "奧義書" - -#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The -#. Upanishads'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of sacred Hindu writings regarding the nature of reality and " -"describing the character and form of human salvation." -msgstr "神聖的印度教著作合輯, 關於現實的本質和描述人類救贖的性質與形式。" - -#: lang/json/BOOK_from_json.py -msgid "The Four Vedas" -msgid_plural "copies of The Four Vedas" -msgstr[0] "四吠陀經" - -#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four -#. Vedas'} -#: lang/json/BOOK_from_json.py -msgid "" -"A single volume containing all four Vedas, which are the oldest scriptures " -"of Hinduism." -msgstr "一個包含所有四個吠陀經的合輯本, 這是印度教最古老的經文。" - -#: lang/json/BOOK_from_json.py -msgid "The Satanic Bible" -msgid_plural "copies of The Satanic Bible" -msgstr[0] "" - -#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The -#. Satanic Bible'} -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of essays, observations, and rituals published by Anton LaVey " -"in 1969." -msgstr "" - #: lang/json/BOOK_from_json.py msgid "comic book" msgid_plural "comic books" @@ -24192,6 +23850,18 @@ msgstr[0] "時代雜誌" msgid "Current events concerning a bunch of people who're all (un)dead now." msgstr "報導一堆有名的人, 不論現在他們現在是死是活, 死了又活, 或是活了又死的。" +#: lang/json/BOOK_from_json.py +msgid "The Analyst" +msgid_plural "issues of The Analyst" +msgstr[0] "" + +#. ~ Description for {'str': 'The Analyst', 'str_pl': 'issues of The Analyst'} +#: lang/json/BOOK_from_json.py +msgid "" +"This news magazine has been described as \"a kind of Reader's Digest for " +"America's corporate elite.\" These concerns are, of course, behind us now." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Playboy" msgid_plural "issues of Playboy" @@ -24304,6 +23974,21 @@ msgid "" "the underworld is eroded by rumor and paranoia." msgstr "" +#: lang/json/BOOK_from_json.py +msgid "Midnight Cop" +msgid_plural "copies of Midnight Cop" +msgstr[0] "" + +#. ~ Description for {'str': 'Midnight Cop', 'str_pl': 'copies of Midnight +#. Cop'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this bare-knuckled potboiler, a ruthless police detective schemes to shut" +" down local crime lords by pitting them against each other. When long-" +"simmering resentments finally flare the city learns why they call it \"the " +"dead of night.\"" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "drama novel" msgid_plural "drama novels" @@ -24377,6 +24062,59 @@ msgid "" "A hardboiled detective tale filled with hard hitting action and intrigue." msgstr "一本冷硬派的偵探小說, 充滿著硬派動作與陰謀。" +#: lang/json/BOOK_from_json.py +msgid "Planet of the Murderous Squids that Time Forgot!" +msgid_plural "Planet of the Murderous Squids that Time Forgot!s" +msgstr[0] "" + +#. ~ Description for Planet of the Murderous Squids that Time Forgot! +#: lang/json/BOOK_from_json.py +msgid "" +"In this psychedelic adventure novel of cosmic exploration, an elderly " +"assassin discovers a planet too good to be true. Only once it is too late " +"does she discover the harrowing truth at the center of \"The Planet of the " +"Murderous Squids that Time Forgot!\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Great Capes of Metropolis" +msgid_plural "The Great Capes of Metropoliss" +msgstr[0] "" + +#. ~ Description for The Great Capes of Metropolis +#: lang/json/BOOK_from_json.py +msgid "" +"In this classic pulp paperback of superheroic exploits, a group of masked " +"vigilantes with diverse superpowers learn to work together to defeat the " +"ultimate villain." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Yesterday's Murdered" +msgid_plural "Yesterday's Murdereds" +msgstr[0] "" + +#. ~ Description for Yesterday's Murdered +#: lang/json/BOOK_from_json.py +msgid "" +"In this fast paced pulp noir, a hard-drinking detective with nerves of steel" +" has one last shot at vengeance." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Flashgun Condor and the Crimson Criminal" +msgid_plural "Flashgun Condor and the Crimson Criminals" +msgstr[0] "" + +#. ~ Description for Flashgun Condor and the Crimson Criminal +#: lang/json/BOOK_from_json.py +msgid "" +"A hot-blooded photographer who fights crime with film, footage, and fists, " +"Condor is more than a mere shutterbug on the crime beat. But will she be " +"able to unravel a devious deception and bring the \"Crimson Criminal\" to " +"justice?" +msgstr "" + #: lang/json/BOOK_from_json.py msgid "road novel" msgid_plural "road novels" @@ -24399,6 +24137,131 @@ msgstr[0] "愛情小說" msgid "Drama and mild smut." msgstr "充滿戲劇性與中二病的小說。" +#: lang/json/BOOK_from_json.py +msgid "Love and Circuses" +msgid_plural "Love and Circusess" +msgstr[0] "" + +#. ~ Description for Love and Circuses +#: lang/json/BOOK_from_json.py +msgid "" +"The passionate saga of two Boston politicians fiercely battling each other " +"for the mayor's office, and for Lydia's hand in marriage." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cloven Kisses" +msgid_plural "Cloven Kissess" +msgstr[0] "" + +#. ~ Description for Cloven Kisses +#: lang/json/BOOK_from_json.py +msgid "" +"When the devil falls in love with a warlock, his proposal must be infernally" +" wicked. Will hooves, horns, and the scent of sulphur condemn love's flames" +" to hellfire?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Conquer Me Sweetly" +msgid_plural "Conquer Me Sweetlys" +msgstr[0] "" + +#. ~ Description for Conquer Me Sweetly +#: lang/json/BOOK_from_json.py +msgid "" +"Sweet Providence Books is delighted to offer you this romantic tale of " +"delicious dalliances and daring delights." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dubliner's Debutante" +msgid_plural "Dubliner's Debutantes" +msgstr[0] "" + +#. ~ Description for Dubliner's Debutante +#: lang/json/BOOK_from_json.py +msgid "" +"His love songs were only for me, but I preferred the banjo over bagpipes. " +"How could I ever love a kilted yankee of foreign breeding?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Blood Diodes" +msgid_plural "Blood Diodess" +msgstr[0] "" + +#. ~ Description for Blood Diodes +#: lang/json/BOOK_from_json.py +msgid "" +"He is an automaton, she is a reformed vampire, can love find a way? In this" +" edgy romance by acclaimed author Kea Dekker, heartbreak is just the " +"beginning." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Envying Heaven" +msgid_plural "Envying Heavens" +msgstr[0] "" + +#. ~ Description for Envying Heaven +#: lang/json/BOOK_from_json.py +msgid "" +"When her fiancee names a star for her Wanda begins to wonder if an " +"astronomer's wife can ever compete with the allure of the cosmos." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Tall, Dark, and Gruesome" +msgid_plural "Tall, Dark, and Gruesomes" +msgstr[0] "" + +#. ~ Description for Tall, Dark, and Gruesome +#: lang/json/BOOK_from_json.py +msgid "" +"Fatima's obsession with the dead threatens to consume her when she falls in " +"love with a restless ghost. In this provocative romp celebrated author Kea " +"Dekker gently lifts the thin veil separating cold bodies from warm. " +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Along Came a Rider" +msgid_plural "Along Came a Riders" +msgstr[0] "" + +#. ~ Description for Along Came a Rider +#: lang/json/BOOK_from_json.py +msgid "" +"When Beth's career as a pro steeplechase jockey threatens to divide her from" +" her lover, Beth has to act fast. Will she ever find a man that can keep up" +" with her racing heart?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Rogue's Virtue" +msgid_plural "Rogue's Virtues" +msgstr[0] "" + +#. ~ Description for Rogue's Virtue +#: lang/json/BOOK_from_json.py +msgid "" +"Can Victoria reform the fugitive from justice who wooed her with false " +"pretenses and true passion?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Death of My Secret Life" +msgid_plural "The Death of My Secret Lifes" +msgstr[0] "" + +#. ~ Description for The Death of My Secret Life +#: lang/json/BOOK_from_json.py +msgid "" +"Makeda comes out to her family, but she's still got plenty of skeletons in " +"her closet. Best selling authoress Kea Dekker breaks all the rules in this " +"macabre story of love and lies." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "samurai novel" msgid_plural "samurai novels" @@ -24424,6 +24287,68 @@ msgid "" "this side of Armageddon makes it seem all the more ridiculous." msgstr "災變前世界的政治諷刺。大災變後回頭來看, 使得它看起來更加諷刺。" +#: lang/json/BOOK_from_json.py +msgid "The House of God" +msgid_plural "The House of Gods" +msgstr[0] "" + +#. ~ Description for The House of God +#: lang/json/BOOK_from_json.py +msgid "" +"Set in a lightly disguised Boston hospital of high repute, Samuel Shem’s " +"novel dives deep into the agony of absurdity." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Catch-22" +msgid_plural "Catch-22s" +msgstr[0] "" + +#. ~ Description for Catch-22 +#: lang/json/BOOK_from_json.py +msgid "" +"There is a short informational forward in this paperback edition of " +"Catch-22. Apparently the original title for Joseph Heller’s excruciatingly " +"brilliant war satire was \"Catch-11.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Master and Margarita" +msgid_plural "The Master and Margaritas" +msgstr[0] "" + +#. ~ Description for The Master and Margarita +#: lang/json/BOOK_from_json.py +msgid "" +"Featuring a cast that includes Satan, Pontius Pilate, Jesus Christ, " +"vampires, a talking cat, and the literary elite of Moscow, this is a satire " +"on Stalinist tyranny written by Mikhail Bulgakov." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Handful of Dust" +msgid_plural "A Handful of Dusts" +msgstr[0] "" + +#. ~ Description for A Handful of Dust +#: lang/json/BOOK_from_json.py +msgid "" +"Laced with cynicism, Evelyn Waugh's \"A Handful of Dust\" satirizes a " +"stratum of characters who have wealth, but lack any other credentials." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Cat’s Cradle" +msgid_plural "Cat’s Cradles" +msgstr[0] "" + +#. ~ Description for Cat’s Cradle +#: lang/json/BOOK_from_json.py +msgid "" +"A paperback edition of Kurt Vonnegut's fourth novel, in which the threat of " +"nuclear destruction isn't much of an influence on human nature." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "scifi novel" msgid_plural "scifi novels" @@ -24527,7 +24452,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "" "This is an almost new copy of \"A Scanner Darkly\" by Philip K. Dick. It " -"still has the smell of new books within it's pages." +"still has the smell of new books within its pages." msgstr "" #: lang/json/BOOK_from_json.py @@ -24744,19 +24669,6 @@ msgid "" "Douglas Adams." msgstr "" -#: lang/json/BOOK_from_json.py -msgid "sports novel" -msgid_plural "sports novels" -msgstr[0] "運動小說" - -#. ~ Description for {'str': 'sports novel'} -#: lang/json/BOOK_from_json.py -msgid "" -"The dramatic tale of a small-time boxer who gets a rare chance to fight the " -"heavy-weight champion, and seize his one chance to make a better life for " -"himself while impressing the cute girl who works in the pet store." -msgstr "這戲劇化的故事講述一個沒沒無聞的拳擊手偶然得到能夠參加重量級拳賽機會, 改善生活, 並讓心儀的寵物店可愛女孩對自己改觀。" - #: lang/json/BOOK_from_json.py msgid "spy novel" msgid_plural "spy novels" @@ -24811,6 +24723,46 @@ msgid "" "variety." msgstr "一個刺激的十七世紀故事, 講述一個被奴役的愛爾蘭醫生與他的同志如何逃脫, 並成為了羅賓漢型的英雄海盜。" +#: lang/json/BOOK_from_json.py +msgid "The Black Freighter" +msgid_plural "copies of The Black Freighter" +msgstr[0] "" + +#. ~ Description for {'str': 'The Black Freighter', 'str_pl': 'copies of The +#. Black Freighter'} +#: lang/json/BOOK_from_json.py +msgid "" +"Who watches the watchmen? Pirate Jenny, that's who! This swashbuckling " +"adventure novel will make you feel swell." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Captain Gosgold and the Sea Rovers of Buzzards Bay" +msgid_plural "copies of The Sea Rovers" +msgstr[0] "" + +#. ~ Description for {'str': 'Captain Gosgold and the Sea Rovers of Buzzards +#. Bay', 'str_pl': 'copies of The Sea Rovers'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lengthy paperback novel describes the ocean exploits of Captain " +"Gosgold. The British consider him an outlaw, but in America he is a " +"patriot." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Code of the Buccaneer" +msgid_plural "copies of The Buccaneer" +msgstr[0] "" + +#. ~ Description for {'str': 'The Code of the Buccaneer', 'str_pl': 'copies of +#. The Buccaneer'} +#: lang/json/BOOK_from_json.py +msgid "" +"The cover of this paperback pirate story shows a shirtless man and a near " +"shirtless woman. Clearly it is not a dress code." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "thriller novel" msgid_plural "thriller novels" @@ -24867,271 +24819,90 @@ msgid "" msgstr "經典的故事, 講述一個小鎮來了一個陌生槍手被雇用來幫忙鎮民防衛, 阻止劫匪的入侵。" #: lang/json/BOOK_from_json.py -msgid "book of philosophy" -msgid_plural "books of philosophy" -msgstr[0] "哲學書籍" - -#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of -#. philosophy'} -#: lang/json/BOOK_from_json.py -msgid "" -"A deep discussion of morality with an emphasis on epistemology and logic." -msgstr "以知識和邏輯進行深入探討道德的重點。" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" -"eared and creased." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " -"translation by Wolfi Landstreicher." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A key work " -"in the existentialist tradition." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A large, extended version of \"Madness and Civilisation\" by Michel " -"Foucault. The cover features a striking image of a Panopticonic Prison." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " -"Lyotard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"A collection of texts and essays by Jacques Derrida. Its pages are loose " -"and yellowed - you should probably handle it with care." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " -"shows rows of adults staring placidly into a screen." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " -"Sex Which Is Not One\" by Luce Irigaray." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " -"contains an image of a man holding a colored pill in each hand, with the " -"caption \"Welcome to the Desert of the Real.\". You think you've seen this " -"movie." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." -" It looks to have been used as a coaster in a past life." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " -"university press." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a photocopied spiral-bound copy of \"Industrial Society and Its " -"Future\" by 'Freedom Club'. The original looks to have been written on a " -"typewriter before being copied." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " -"Its cover is an image of a hand-crafted wooden box filled with wiring and an" -" ominous looking metal tube. Provocative." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a small reader on Hegel's Dialectics." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " -"English, thankfully." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" -" tag on the back cover. It appears to still be active." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " -"It contains a dried and pressed leaf as a bookmark." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " -"scribbled over the contents page in red crayon." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " -"Jacques Lacan." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" -" cover contains an image of a pelican." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Allegory of the Cave\" by Plato." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Principles of Philosophy\" by Descartes." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " -"Science\" by Friederich Nietzsche." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " -"Camus. The cover depicts a bare-chested man and a large boulder." -msgstr "" +msgid "Atwixt a Brace of Cacti" +msgid_plural "Atwixt a Brace of Cactis" +msgstr[0] "" +#. ~ Description for Atwixt a Brace of Cacti #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " -"pages are dotted with post-it notes." +"A grizzled clodhopper interviews a mess of rangehands, flummoxing longhorns " +"and tenderfoot alike in a flusteration of jawing." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" -" title, it does not actually appear to be defending terrorism." -msgstr "" +msgid "Stinky Bart Puts on Starch" +msgid_plural "Stinky Bart Puts on Starchs" +msgstr[0] "" +#. ~ Description for Stinky Bart Puts on Starch #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Enquiry Concerning Political Justice\" by William " -"Godwin. This thick book is filled with antiquated phrases." +"A local bandit, driven by sadistic impulses, begins offering unlicensed " +"dentistry to brave frontiersmen with few options and fewer teeth." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " -"It is likely that \"The Abolition of Work\" is the most famous essay in this" -" book." -msgstr "" +msgid "Six Beans in the Wheel" +msgid_plural "Six Beans in the Wheels" +msgstr[0] "" +#. ~ Description for Six Beans in the Wheel #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" -" like this book has a surprisingly long track record of owners." +"The safety is off in this gun slinging tale of revenge and redemption by " +"acclaimed author El Amor." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " -"picture of an old philosopher with magnificent beard, instead of bread, on " -"the cover." -msgstr "" +msgid "Irons at Calico Queen Annex" +msgid_plural "Irons at Calico Queen Annexs" +msgstr[0] "" +#. ~ Description for Irons at Calico Queen Annex #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" -" might have been printed decades before the Cataclysm since the cover is " -"quite weathered." +"The establishment of a telegraph line into the recently named town of Calico" +" Queen threatens to bring with it the long arm of the law. A trio of " +"enterprising gunfighters hatches a plan to keep Calico Queen wild by looting" +" the supply wagons." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The World as Will and Representation\" by Arthur " -"Schopenhauer. It contains a few undecipherable notes and scribbles." -msgstr "" +msgid "Riot on the Range" +msgid_plural "Riot on the Ranges" +msgstr[0] "" +#. ~ Description for Riot on the Range #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" -" that the author's real name is Fereidoun M. Esfandiary." +"Best selling author El Amor paints a visceral study in red with his latest " +"western saga: Riot on the Range." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"The Bastiat Collection\", a large collection of essays " -"by Frederic Bastiat." -msgstr "" +msgid "Vaquero Sun" +msgid_plural "Vaquero Suns" +msgstr[0] "" +#. ~ Description for Vaquero Sun #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " -"the most influential books of modern libertarianism." +"Western author El Amor relates the story of a dispossessed young man " +"inspired by a heat stroke delusion to pursue justice against an evil land " +"baron." msgstr "" #: lang/json/BOOK_from_json.py -msgid "" -"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " -"of socialism." -msgstr "" +msgid "The Vendetta Riders" +msgid_plural "The Vendetta Riderss" +msgstr[0] "" +#. ~ Description for The Vendetta Riders #: lang/json/BOOK_from_json.py msgid "" -"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " -"most influential books of early Marxism-Leninism." -msgstr "" - -#: lang/json/BOOK_from_json.py -msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +"A wild young man, fast on the draw, who thinks he has nothing to lose, falls" +" in with a group of gun runners." msgstr "" #: lang/json/BOOK_from_json.py @@ -25191,8 +24962,10 @@ msgstr[0] "" #. ~ Description for {'str': "priest's diary", 'str_pl': "priests' diaries"} #: lang/json/BOOK_from_json.py -msgid "A small book filled with journal entries in Latin." -msgstr "一本寫滿拉丁文的小書。" +msgid "" +"A small book filled with journal entries in Latin. You can read Latin, " +"right?" +msgstr "" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -25261,19 +25034,6 @@ msgstr[0] "" msgid "A small book detailing 'visions' a prisoner had on death row." msgstr "一本冊子記載著一位死刑犯在牢裡看到的 \"景象\"。" -#: lang/json/BOOK_from_json.py -msgid "Hávamál" -msgid_plural "copies of Hávamál" -msgstr[0] "\"哈瓦瑪爾\" 的副本" - -#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} -#: lang/json/BOOK_from_json.py -msgid "" -"An English translation of several Old Norse poems. The poems contain " -"proverbs and stories attributed to the god Odin, many transcribed from oral " -"history." -msgstr "一本翻譯成英文的古北歐語詩集。詩集包含了有關歐丁神的諺語與故事的由來, 大部份是謄寫自口述歷史。" - #: lang/json/BOOK_from_json.py msgid "book of classic literature" msgid_plural "books of classic literature" @@ -25689,165 +25449,1297 @@ msgid "" msgstr "這是泰瑞·普萊契的“The Colour of Magic”的初版。在內封面是一個手寫的筆記,寫著“給克里斯,感謝你對我的信心。泰瑞上。”" #: lang/json/BOOK_from_json.py -msgid "Tactical Handgun Digest" -msgid_plural "issues of Tactical Handgun Digest" +msgid "The Economicon of Dobbs" +msgid_plural "copies of The Economicon" msgstr[0] "" -#. ~ Description for {'str': 'Tactical Handgun Digest', 'str_pl': 'issues of -#. Tactical Handgun Digest'} +#. ~ Description for {'str': 'The Economicon of Dobbs', 'str_pl': 'copies of +#. The Economicon'} #: lang/json/BOOK_from_json.py msgid "" -"A glossy magazine all about handguns and shooting. There is a good article " -"about proper sighting near the middle." -msgstr "關於手槍與射擊的時尚雜誌。有一個關於中距離如何瞄準的好文章。" +"These are the prescriptures Pile 18 Disk sg30 File 14. \"Look, small brain " +"of pink earth inside my null-grasping, and she/he receives Logos; and it lay" +" with the Wor.\"" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Tao of the Handgun" -msgid_plural "copies of The Tao of the Handgun" -msgstr[0] "手槍之道" +msgid "The Bobliographon" +msgid_plural "copies of The Bobliographon" +msgstr[0] "" -#. ~ Description for {'str': 'The Tao of the Handgun', 'str_pl': 'copies of -#. The Tao of the Handgun'} +#. ~ Description for {'str': 'The Bobliographon', 'str_pl': 'copies of The +#. Bobliographon'} #: lang/json/BOOK_from_json.py msgid "" -"This introspective volume covers proper usage of handguns, from safety and " -"stance, to maintenance and proper sighting technique." -msgstr "這本書涵蓋了手槍正確使用的方法, 內容包括安全操作與站姿、保養和正確的瞄準技巧。" +"The back cover of this cheaply published paperback reads: \"These newly-" +"released SubGenius revelations will SHOCK those who think they know Bob! " +"Unpredictables are not alone and possess amazing hidden powers of their own!" +" In a world without slack, a yeti lust revival saunters about. WARNING: Do" +" not fail to pay full price for this book; JHVH-1's wrath knows some " +"bounds.\"" +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Modern Rifleman" -msgid_plural "issues of Modern Rifleman" +msgid "Glimpses of Solomon in Yellow" +msgid_plural "copies of Solomon in Yellow" msgstr[0] "" -#. ~ Description for {'str': 'Modern Rifleman', 'str_pl': 'issues of Modern -#. Rifleman'} +#. ~ Description for {'str': 'Glimpses of Solomon in Yellow', 'str_pl': +#. 'copies of Solomon in Yellow'} #: lang/json/BOOK_from_json.py msgid "" -"An informative magazine all about rifles and shooting. There is an " -"excellent article about proper maintenance in this issue." -msgstr "一本談論步槍與射擊的知識性雜誌。裡面有篇關於正確保養的絕佳文章。" +"This paperback is titled \"Glimpses of Solomon in Yellow; The Initiation " +"Rites of the Starry Wisdom Covenant, by Dr. Enoch Craven.\" It describes " +"not just the investiture of new adherents, but the history and beliefs of " +"the Church of Starry Wisdom. Someone has defaced the sparse citations " +"section by scrawling \"PUPPETS OF ROME!\" over its few pages. The book does" +" not provide any biography for Dr. Craven, let alone academic credentials." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "FM 23-16 Army marksmanship manual" -msgid_plural "FM 23-16 Army marksmanship manuals" -msgstr[0] "FM 23-16 陸軍槍法手冊" +msgid "book of philosophy" +msgid_plural "books of philosophy" +msgstr[0] "哲學書籍" -#. ~ Description for {'str': 'FM 23-16 Army marksmanship manual'} +#. ~ Description for {'str': 'book of philosophy', 'str_pl': 'books of +#. philosophy'} #: lang/json/BOOK_from_json.py msgid "" -"A hefty military field manual about automatic rifle usage and techniques " -"which improve marksmanship and proper weapons-handling." -msgstr "一本厚重的軍事手冊, 內容關於自動步槍的使用以及提昇射擊技能, 正確的武器處理操作。" +"A deep discussion of morality with an emphasis on epistemology and logic." +msgstr "以知識和邏輯進行深入探討道德的重點。" #: lang/json/BOOK_from_json.py -msgid "Trap and Field" -msgid_plural "issues of Trap and Field" -msgstr[0] "" +msgid "" +"This is a copy of Nietzsche's \"Beyond Good and Evil\". Its cover is dog-" +"eared and creased." +msgstr "" -#. ~ Description for {'str': 'Trap and Field', 'str_pl': 'issues of Trap and -#. Field'} #: lang/json/BOOK_from_json.py msgid "" -"An in-depth magazine all about shotguns and shooting. There is an " -"informative article about proper shooting stance in the back pages." -msgstr "一本深入探討霰彈槍與射擊的書籍。後面有篇關於射擊站姿的知識性文章。" +"This is a copy of \"The Unique and Its Property\" by Max Stirner. A modern " +"translation by Wolfi Landstreicher." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Shotguns: The Art and Science" -msgid_plural "copies of Shotguns: The Art and Science" -msgstr[0] "" +msgid "" +"A large, extended version of \"Madness and Civilisation\" by Michel " +"Foucault. The cover features a striking image of a Panopticonic Prison." +msgstr "" -#. ~ Description for {'str': 'Shotguns: The Art and Science', 'str_pl': -#. 'copies of Shotguns: The Art and Science'} #: lang/json/BOOK_from_json.py msgid "" -"This book claims to address every problem the shotgunner is likely to face, " -"and offers solutions to ensure that shooters can make every shot count." -msgstr "這本書聲稱能解決霰彈槍用家會面臨的每個問題, 能夠讓每一發子彈發揮最大效用。" +"This is a copy of \"The Postmodern Condition: A Report on Knowledge\" by " +"Lyotard." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Submachine Gun Enthusiast" -msgid_plural "issues of Submachine Gun Enthusiast" -msgstr[0] "" +msgid "" +"A collection of texts and essays by Jacques Derrida. Its pages are loose " +"and yellowed - you should probably handle it with care." +msgstr "" -#. ~ Description for {'str': 'Submachine Gun Enthusiast', 'str_pl': 'issues of -#. Submachine Gun Enthusiast'} #: lang/json/BOOK_from_json.py msgid "" -"An in-depth magazine about submachine guns and shooting. There is an " -"exhaustive article about close quarter combat techniques in the front." -msgstr "一本深入介紹關於衝鋒槍射擊的雜誌。在前面有一篇關於近距離作戰技術的詳盡文章。" +"This is a copy of \"Society of the Spectacle\" by Guy Debord. Its cover " +"shows rows of adults staring placidly into a screen." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Submachine Gun Handbook" -msgid_plural "copies of The Submachine Gun Handbook" -msgstr[0] "" +msgid "" +"This is a split copy of both \"An Ethic of Sexual Difference\" and \"This " +"Sex Which Is Not One\" by Luce Irigaray." +msgstr "" -#. ~ Description for {'str': 'The Submachine Gun Handbook', 'str_pl': 'copies -#. of The Submachine Gun Handbook'} #: lang/json/BOOK_from_json.py msgid "" -"This concise guide details the proper care and operation of most forms of " -"machine pistols and submachine guns currently used by regular armed and " -"reserve forces, as well as several obsolete weapons." +"This is a copy of Baudrillard's \"Simulation and Simulacra\". The cover " +"contains an image of a man holding a colored pill in each hand, with the " +"caption \"Welcome to the Desert of the Real.\". You think you've seen this " +"movie." msgstr "" #: lang/json/BOOK_from_json.py -msgid "US Weekly" -msgid_plural "US Weeklies" -msgstr[0] "美國週報" +msgid "" +"This is a small, pocket version of Sartre's \"Existentialism and Humanism\"." +" It looks to have been used as a coaster in a past life." +msgstr "" -#. ~ Description for {'str': 'US Weekly', 'str_pl': 'US Weeklies'} #: lang/json/BOOK_from_json.py -msgid "Weekly news about a bunch of famous people who're all (un)dead now." -msgstr "每週的新聞以及一堆有名的人, 不論現在他們現在是死是活, 死了又活, 或是活了又死的。" +msgid "" +"This is a copy of \"Practical Ethics\" by Peter Singer. From the local " +"university press." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Self-Esteem for Dummies" -msgid_plural "copies of Self-Esteem for Dummies" -msgstr[0] "" +msgid "" +"This is a photocopied spiral-bound copy of \"Industrial Society and Its " +"Future\" by 'Freedom Club'. The original looks to have been written on a " +"typewriter before being copied." +msgstr "" -#. ~ Description for {'str': 'Self-Esteem for Dummies', 'str_pl': 'copies of -#. Self-Esteem for Dummies'} #: lang/json/BOOK_from_json.py -msgid "Full of useful tips for showing confidence in your speech." -msgstr "充滿了許多展現自信與口才的有用提示。" +msgid "" +"This is a copy of \"Industrial Society and Its Future\" by Ted Kaczynski. " +"Its cover is an image of a hand-crafted wooden box filled with wiring and an" +" ominous looking metal tube. Provocative." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Principles of Effective Communication" -msgid_plural "copies of Principles of Effective Communication" -msgstr[0] "" +msgid "This is a small reader on Hegel's Dialectics." +msgstr "" -#. ~ Description for {'str': 'Principles of Effective Communication', -#. 'str_pl': 'copies of Principles of Effective Communication'} #: lang/json/BOOK_from_json.py -msgid "A hardbound book devoted to being an effective and persuasive speaker." -msgstr "一本精裝書, 教導如何成為一個有效和有說服力的演講者。" +msgid "" +"This is a copy of \"The State and Revolution\" by Vladimir Lenin. In " +"English, thankfully." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Dungeon Master's Guide: 6th Edition" -msgid_plural "copies of Dungeon Master's Guide: 6th Edition" -msgstr[0] "" +msgid "This is a copy of \"In Defense of Marxism\" by Leon Trotsky." +msgstr "" -#. ~ Description for {'str': "Dungeon Master's Guide: 6th Edition", 'str_pl': -#. "copies of Dungeon Master's Guide: 6th Edition"} #: lang/json/BOOK_from_json.py msgid "" -"A thick, hardcover volume with everything needed to weave legendary stories." -" It's full of information, but finding the things you're looking for can be" -" a chore." -msgstr "一本厚重的精裝本, 內容有編述傳奇故事所需的一切資料。雖然它有極豐富的內容, 但要找到你正在尋找的東西可能是件苦差事。" +"This is a copy of \"Steal This Book\" by Abbie Hoffman. There is a security" +" tag on the back cover. It appears to still be active." +msgstr "" #: lang/json/BOOK_from_json.py -msgid "Duelist's Annual" -msgid_plural "Duelist's Annuals" -msgstr[0] "鬥劍年鑑" +msgid "" +"This is a copy of \"Walden: Or Life In The Woods\" by Henry David Thoreau. " +"It contains a dried and pressed leaf as a bookmark." +msgstr "" -#. ~ Description for {'str': "Duelist's Annual"} #: lang/json/BOOK_from_json.py msgid "" -"An annual publication about fencing and dueling. There are many good " -"illustrations which describe proper technique and form." +"This is a copy of \"The Female Eunuch\" by Germaine Greer. A child has " +"scribbled over the contents page in red crayon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"An Introduction to Metaphysics\" by Bergson." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Four Fundamental Concepts of Psychoanalysis\" by " +"Jacques Lacan." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of Machiavelli's \"The Prince\". With intro by Q. Skinner." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"On The Revolution of Everyday Life\" by Raul Vangeigem." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a pocket copy of \"An Essay on Liberation\" by Herbert Marcuse. The" +" cover contains an image of a pelican." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Either-Or\" by Søren Kierkegaard." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Allegory of the Cave\" by Plato." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Leviathan\" by Thomas Hobbes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Critique Of Pure Reason\" by Immanuel Kant." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Principles of Philosophy\" by Descartes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of both \"On The Genealogy of Morals\" and \"The Gay " +"Science\" by Friederich Nietzsche." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Myth of Sisyphus\", and other essays, by Albert " +"Camus. The cover depicts a bare-chested man and a large boulder." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Sickness Unto Death\" by Søren Kierkegaard. The " +"pages are dotted with post-it notes." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Defence of Terrorism\" by Leon Trotsky. Despite the" +" title, it does not actually appear to be defending terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Enquiry Concerning Political Justice\" by William " +"Godwin. This thick book is filled with antiquated phrases." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Abolition of Work and Other Essays\" by Bob Black. " +"It is likely that \"The Abolition of Work\" is the most famous essay in this" +" book." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"What is Property?\" by Pierre-Joseph Proudhon. It looks" +" like this book has a surprisingly long track record of owners." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Conquest of Bread\" by Peter Kropotkin. There is a " +"picture of an old philosopher with magnificent beard, instead of bread, on " +"the cover." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Trouble with Being Born\" by Emil Cioran. This book" +" might have been printed decades before the Cataclysm since the cover is " +"quite weathered." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The World as Will and Representation\" by Arthur " +"Schopenhauer. It contains a few undecipherable notes and scribbles." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Up-Wingers: A Futurist Manifesto\" by FM-2030. It seems" +" that the author's real name is Fereidoun M. Esfandiary." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The Bastiat Collection\", a large collection of essays " +"by Frederic Bastiat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Anarchy, State, and Utopia\" by Robert Nozick, one of " +"the most influential books of modern libertarianism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"Socialism\" by Ludwig von Mises, a critical examination " +"of socialism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a copy of \"The ABC of Communism\" by Nikolai Bukharin, one of the " +"most influential books of early Marxism-Leninism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Modal Logic as Metaphysics" +msgid_plural "copies of Modal Logic" +msgstr[0] "" + +#. ~ Description for {'str': 'Modal Logic as Metaphysics', 'str_pl': 'copies +#. of Modal Logic'} +#: lang/json/BOOK_from_json.py +msgid "" +"A treatise on applying logical tools to questions about that nature of " +"reality, this book contains detailed discussion of metaphysical issues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Aesthetics: A Critical Anthology" +msgid_plural "copies of Aesthetics" +msgstr[0] "" + +#. ~ Description for {'str': 'Aesthetics: A Critical Anthology', 'str_pl': +#. 'copies of Aesthetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardbound anthology presents a collection of readings, scholarly works," +" and critical analyses on the subject of beauty." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Philosophy of Information" +msgid_plural "copies of The Philosophy of Information" +msgstr[0] "" + +#. ~ Description for {'str': 'The Philosophy of Information', 'str_pl': +#. 'copies of The Philosophy of Information'} +#: lang/json/BOOK_from_json.py +msgid "" +"This university text details a critical investigation of the conceptual " +"nature and basic principles of information. The student will gain a " +"thorough appreciation of the conceptual frameworks commonly used to describe" +" and advance semantic investigations." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Being and Nothingness" +msgid_plural "copies of Being and Nothingness" +msgstr[0] "" + +#. ~ Description for {'str': 'Being and Nothingness', 'str_pl': 'copies of +#. Being and Nothingness'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback is a copy of Jean-Paul Sartre's \"Being and Nothingness\". A" +" key work in the existentialist tradition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "sports novel" +msgid_plural "sports novels" +msgstr[0] "運動小說" + +#. ~ Description for {'str': 'sports novel'} +#: lang/json/BOOK_from_json.py +msgid "" +"The dramatic tale of a small-time boxer who gets a rare chance to fight the " +"heavy-weight champion, and seize his one chance to make a better life for " +"himself while impressing the cute girl who works in the pet store." +msgstr "這戲劇化的故事講述一個沒沒無聞的拳擊手偶然得到能夠參加重量級拳賽機會, 改善生活, 並讓心儀的寵物店可愛女孩對自己改觀。" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Bunting" +msgid_plural "copies of The Art of Bunting" +msgstr[0] "" + +#. ~ Description for {'str': 'The Art of Bunting', 'str_pl': 'copies of The +#. Art of Bunting'} +#: lang/json/BOOK_from_json.py +msgid "" +"While you might be forgiven for expecting instructions for party decorating," +" it is in fact a novel about baseball. In the final climactic game a young " +"star proves to himself that he is ready for the big leagues." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Touchdown Special" +msgid_plural "copies of The Touchdown Special" +msgstr[0] "" + +#. ~ Description for {'str': 'The Touchdown Special', 'str_pl': 'copies of The +#. Touchdown Special'} +#: lang/json/BOOK_from_json.py +msgid "" +"In this absorbing novel of football fandom, a pizza delivery driver makes a " +"desperate gamble on the monday night game." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Trophy Envy" +msgid_plural "copies of Trophy Envy" +msgstr[0] "" + +#. ~ Description for {'str': 'Trophy Envy', 'str_pl': 'copies of Trophy Envy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This paperback tells the story of a tennis prodigy who begins to regret her " +"own success." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Semi-Rough" +msgid_plural "copies of Semi-Rough" +msgstr[0] "" + +#. ~ Description for {'str': 'Semi-Rough', 'str_pl': 'copies of Semi-Rough'} +#: lang/json/BOOK_from_json.py +msgid "" +"This novel follows the humorous adventures of a professional athlete turned " +"amateur reporter." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Golf Omnivore" +msgid_plural "copies of The Golf Omnivore" +msgstr[0] "" + +#. ~ Description for {'str': 'The Golf Omnivore', 'str_pl': 'copies of The +#. Golf Omnivore'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book is a collection of short stories in which love and golf " +"are the only two constants." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Uniform Boy" +msgid_plural "copies of Uniform Boy" +msgstr[0] "" + +#. ~ Description for {'str': 'Uniform Boy', 'str_pl': 'copies of Uniform Boy'} +#: lang/json/BOOK_from_json.py +msgid "" +"This hardback book about an equipment manager for a minor league team " +"explores themes of loyalty and resentment." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Budgetball: Winning a Rigged Game" +msgid_plural "copies of Budgetball" +msgstr[0] "" + +#. ~ Description for {'str': 'Budgetball: Winning a Rigged Game', 'str_pl': +#. 'copies of Budgetball'} +#: lang/json/BOOK_from_json.py +msgid "" +"Budgetball tells the true story of the curious case of Benny Bobbin and his " +"quixotic quest to defeat the deep-pocketed Orlando O's." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Lads of Summer" +msgid_plural "copies of The Lads of Summer" +msgstr[0] "" + +#. ~ Description for {'str': 'The Lads of Summer', 'str_pl': 'copies of The +#. Lads of Summer'} +#: lang/json/BOOK_from_json.py +msgid "" +"This well worn paperback details the early baseball careers of one of the " +"greatest teams professional sports has ever known." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Volleyball: Get Ready to Get Ready" +msgid_plural "copies of Volleyball" +msgstr[0] "" + +#. ~ Description for {'str': 'Volleyball: Get Ready to Get Ready', 'str_pl': +#. 'copies of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Volleyball: Get Ready to Get Ready\" is YOUR illustrated guide to level up" +" your game. With full-color photos and diagrams, you will learn the drills " +"and techniques you need to dominate the competition." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "William G. Morgan, the Godfather of Volleyball" +msgid_plural "copies of The Godfather of Volleyball" +msgstr[0] "" + +#. ~ Description for {'str': 'William G. Morgan, the Godfather of Volleyball', +#. 'str_pl': 'copies of The Godfather of Volleyball'} +#: lang/json/BOOK_from_json.py +msgid "" +"This odd little hardbound book is only 98 pages long, and a dozen of those " +"are comprised of grainy black and white photos. If you read this book, you " +"learn that volleyball was originally called \"Mintonette\" and also some " +"biographic details about its inventor." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Legendary Bike Rides" +msgid_plural "copies of Bike Rides" +msgstr[0] "" + +#. ~ Description for {'str': 'Legendary Bike Rides', 'str_pl': 'copies of Bike +#. Rides'} +#: lang/json/BOOK_from_json.py +msgid "" +"This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the " +"WORLD.\" It provides a wealth of detail about paved bike trails in every " +"part of the globe except New England. But if you make it to Patagonia on " +"bike, you're all set." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Natare Ergo Sum" +msgid_plural "copies of Natare Ergo Sum" +msgstr[0] "" + +#. ~ Description for {'str': 'Natare Ergo Sum', 'str_pl': 'copies of Natare +#. Ergo Sum'} +#: lang/json/BOOK_from_json.py +msgid "" +"The poorly translated title is supposed to be Latin for \"I Swim, Therefore " +"I Am.\" This short hardback presents \"A Philosophy of Swimming\" and then " +"playfully attributes a variety of famous philosophical expressions into " +"edorsements for the sport of swimming. It's not a bad book, just a bit odd." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Stratosphere: The Rise of Hoops" +msgid_plural "copies of Stratosphere" +msgstr[0] "" + +#. ~ Description for {'str': 'Stratosphere: The Rise of Hoops', 'str_pl': +#. 'copies of Stratosphere'} +#: lang/json/BOOK_from_json.py +msgid "" +"\"Stratosphere: The Rise of Hoops\" chronicles four decades of professional " +"basketball against a backdrop of sustained social change." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Anything Can Be Beautiful" +msgid_plural "Anything Can Be Beautifuls" +msgstr[0] "" + +#. ~ Description for Anything Can Be Beautiful +#: lang/json/BOOK_from_json.py +msgid "" +"Stylist, designer, and glitter goddess, Tiffynie Blust looks at the world " +"one mantra in mind: anything can be beautiful." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Greatest Rooms of the Century" +msgid_plural "The Greatest Rooms of the Centurys" +msgstr[0] "" + +#. ~ Description for The Greatest Rooms of the Century +#: lang/json/BOOK_from_json.py +msgid "" +"A stunning collection of the best living spaces created and commissioned by " +"the most influential people in interior design." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Hands-On Home" +msgid_plural "The Hands-On Homes" +msgstr[0] "" + +#. ~ Description for The Hands-On Home +#: lang/json/BOOK_from_json.py +msgid "" +"An ecologically-minded take on modern homemaking, this is a practical guide " +"to maximising your time in the kitchen and beyond." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Rooms We Love" +msgid_plural "Rooms We Loves" +msgstr[0] "" + +#. ~ Description for Rooms We Love +#: lang/json/BOOK_from_json.py +msgid "" +"This is a guide on how to affordably decorate rooms to suit your " +"personality. In the book, we visit rooms inspired by the needs of each " +"homeowner and will see how they transformed their rooms." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "New York Parties" +msgid_plural "New York Partiess" +msgstr[0] "" + +#. ~ Description for New York Parties +#: lang/json/BOOK_from_json.py +msgid "" +"Visit the homes of savvy tastemakers from the worlds of fashion, finance, " +"and design, with this book of lavish photography." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Best Signature Outdoor Kitchens" +msgid_plural "Best Signature Outdoor Kitchenss" +msgstr[0] "" + +#. ~ Description for Best Signature Outdoor Kitchens +#: lang/json/BOOK_from_json.py +msgid "" +"Outdoor space is one of the hottest amenities being considered by new and " +"existing homeowners. This book will show you how to turn any deck, patio, " +"or other outside area into a great place to cook." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Art of Using Plants to Transform Your Home" +msgid_plural "The Art of Using Plants to Transform Your Homes" +msgstr[0] "" + +#. ~ Description for The Art of Using Plants to Transform Your Home +#: lang/json/BOOK_from_json.py +msgid "" +"Bring gorgeous greenery into your life with this delightful guide to " +"decorating your living space with a wide variety of plants. Illustrated " +"examples enable you to easily transform every corner of your interior space." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Woman of Color" +msgid_plural "Woman of Colors" +msgstr[0] "" + +#. ~ Description for Woman of Color +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of essays and advice on style, beauty, and motherhood." +" Part memoir, part lifestyle guide, this book reflects the author's " +"experience growing up as a woman of color in Brooklyn." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "10 Cool Things About Being A Ring Bearer" +msgid_plural "10 Cool Things About Being A Ring Bearers" +msgstr[0] "" + +#. ~ Description for 10 Cool Things About Being A Ring Bearer +#: lang/json/BOOK_from_json.py +msgid "" +"This book is for the delightful little ring bearer in your wedding. The " +"author depicts the responsibility and the honor in being a ring bearer your " +"little angel will cherish." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "How to Raise a Gentleman: A Civilized Guide to Parenting" +msgid_plural "How to Raise a Gentleman: A Civilized Guide to Parentings" +msgstr[0] "" + +#. ~ Description for How to Raise a Gentleman: A Civilized Guide to Parenting +#: lang/json/BOOK_from_json.py +msgid "" +"A revised edition for parents who hope their little boy children will grow " +"up to be the kind of men who know which fork to use, how to treat others, " +"and generally make their parents proud." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"International Approaches to Securing Radioactive Sources Against Terrorism" +msgid_plural "" +"International Approaches to Securing Radioactive Sources Against Terrorisms" +msgstr[0] "" + +#. ~ Description for International Approaches to Securing Radioactive Sources +#. Against Terrorism +#: lang/json/BOOK_from_json.py +msgid "" +"This book presents how to enhance cooperation and assistance between " +"countries in support of International Atomic Energy Agency efforts to secure" +" radioactive sources against the threat of terrorism." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Forensic Psychiatry" +msgid_plural "Principles of Forensic Psychiatrys" +msgstr[0] "" + +#. ~ Description for Principles of Forensic Psychiatry +#: lang/json/BOOK_from_json.py +msgid "" +"This text addresses standards in the assessment and treatment of aggression " +"and violence as well as psychological and neuroimaging assessments." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Guide to Reflective Conflict Resolution" +msgid_plural "The Guide to Reflective Conflict Resolutions" +msgstr[0] "" + +#. ~ Description for The Guide to Reflective Conflict Resolution +#: lang/json/BOOK_from_json.py +msgid "" +"The back cover of this hardbound book reads: \"Why should professionals care" +" about reflective practice? How do its principles and methods increase " +"competence? What characteristics distinguish reflective practitioners?\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Oxbridge Handbook of Mood Ailments" +msgid_plural "The Oxbridge Handbook of Mood Ailmentss" +msgstr[0] "" + +#. ~ Description for The Oxbridge Handbook of Mood Ailments +#: lang/json/BOOK_from_json.py +msgid "" +"The Oxbridge Handbook of Mood Ailments provides detailed coverage of the " +"characterization, understanding, and treatment of affective disorders. It " +"provides coverage of unipolar depression, bipolar disorder, and known " +"variants of these illnesses." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Phonological Acquisition and Disorders" +msgid_plural "Phonological Acquisition and Disorderss" +msgstr[0] "" + +#. ~ Description for Phonological Acquisition and Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"Studying the phonologies of children with non-organic speech disorders, this" +" volume details the latest findings in optimality theory, phonological " +"acquisition and disorders. It is intended for linguists and psychologists." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Therapeutic Gardens and Healing Spaces" +msgid_plural "Therapeutic Gardens and Healing Spacess" +msgstr[0] "" + +#. ~ Description for Therapeutic Gardens and Healing Spaces +#: lang/json/BOOK_from_json.py +msgid "" +"This book addresses how to design therapeutic gardens. It illustrates a " +"variety of landscape designs appropriate for public spaces that promote " +"mental health." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Advances in Drug Delivery Systems" +msgid_plural "Advances in Drug Delivery Systemss" +msgstr[0] "" + +#. ~ Description for Advances in Drug Delivery Systems +#: lang/json/BOOK_from_json.py +msgid "" +"This softcover reprint covers an array of topics in pharmacology. The " +"physicochemical concepts of the refinement of bioresponsive drug delivery " +"are presented in detail alongside a variety of current approaches employed " +"in the development of zero order release systems." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Using Art to Treat Eating Disorders" +msgid_plural "Using Art to Treat Eating Disorderss" +msgstr[0] "" + +#. ~ Description for Using Art to Treat Eating Disorders +#: lang/json/BOOK_from_json.py +msgid "" +"This is an introductory guide for those wanting to explore the use of art to" +" address eating disorders. Art therapy is a particularly effective " +"therapeutic intervention, as it allows people to express uncomfortable " +"thoughts and feelings nonverbally." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A Clinical Guide to Video Gamers" +msgid_plural "A Clinical Guide to Video Gamerss" +msgstr[0] "" + +#. ~ Description for A Clinical Guide to Video Gamers +#: lang/json/BOOK_from_json.py +msgid "" +"This scholarly work considers the role that games play in psychological " +"experiences and mental health. Chapters examine the factors that compel " +"individual gamers to select and identify with particular games and " +"characters, as well as the different play styles, genres, and archetypes " +"common in video games." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Paranoia and the History of Madness" +msgid_plural "Paranoia and the History of Madnesss" +msgstr[0] "" + +#. ~ Description for Paranoia and the History of Madness +#: lang/json/BOOK_from_json.py +msgid "" +"This book is an analysis of the use and misuse of paranoia throughout " +"history and in contemporary society. The impact of paranoia on societies is" +" explored in detail." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Psychoanalysis and Colonialism" +msgid_plural "Psychoanalysis and Colonialisms" +msgstr[0] "" + +#. ~ Description for Psychoanalysis and Colonialism +#: lang/json/BOOK_from_json.py +msgid "" +"Freud referred to women's sexuality as a \"dark continent\" for " +"psychoanalysis, drawing on colonial use of the same phrase to refer to " +"Africa. This book details how the problematic universalism of " +"psychoanalysis led theorists to reject its relevance for postcolonial " +"critique." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Psychology of Stalking" +msgid_plural "The Psychology of Stalkings" +msgstr[0] "" + +#. ~ Description for The Psychology of Stalking +#: lang/json/BOOK_from_json.py +msgid "" +"This book explores stalking from social, psychiatric, psychological and " +"behavioral perspectives. Topics include psychiatric diagnoses, offender-" +"victim typologies, cyberstalking, false victimization syndrome, erotomania, " +"domestic violence, the stalking of public figures, and many other aspects of" +" stalking." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Tactical Handgun Digest" +msgid_plural "issues of Tactical Handgun Digest" +msgstr[0] "" + +#. ~ Description for {'str': 'Tactical Handgun Digest', 'str_pl': 'issues of +#. Tactical Handgun Digest'} +#: lang/json/BOOK_from_json.py +msgid "" +"A glossy magazine all about handguns and shooting. There is a good article " +"about proper sighting near the middle." +msgstr "關於手槍與射擊的時尚雜誌。有一個關於中距離如何瞄準的好文章。" + +#: lang/json/BOOK_from_json.py +msgid "The Tao of the Handgun" +msgid_plural "copies of The Tao of the Handgun" +msgstr[0] "手槍之道" + +#. ~ Description for {'str': 'The Tao of the Handgun', 'str_pl': 'copies of +#. The Tao of the Handgun'} +#: lang/json/BOOK_from_json.py +msgid "" +"This introspective volume covers proper usage of handguns, from safety and " +"stance, to maintenance and proper sighting technique." +msgstr "這本書涵蓋了手槍正確使用的方法, 內容包括安全操作與站姿、保養和正確的瞄準技巧。" + +#: lang/json/BOOK_from_json.py +msgid "Modern Rifleman" +msgid_plural "issues of Modern Rifleman" +msgstr[0] "" + +#. ~ Description for {'str': 'Modern Rifleman', 'str_pl': 'issues of Modern +#. Rifleman'} +#: lang/json/BOOK_from_json.py +msgid "" +"An informative magazine all about rifles and shooting. There is an " +"excellent article about proper maintenance in this issue." +msgstr "一本談論步槍與射擊的知識性雜誌。裡面有篇關於正確保養的絕佳文章。" + +#: lang/json/BOOK_from_json.py +msgid "FM 23-16 Army marksmanship manual" +msgid_plural "FM 23-16 Army marksmanship manuals" +msgstr[0] "FM 23-16 陸軍槍法手冊" + +#. ~ Description for {'str': 'FM 23-16 Army marksmanship manual'} +#: lang/json/BOOK_from_json.py +msgid "" +"A hefty military field manual about automatic rifle usage and techniques " +"which improve marksmanship and proper weapons-handling." +msgstr "一本厚重的軍事手冊, 內容關於自動步槍的使用以及提昇射擊技能, 正確的武器處理操作。" + +#: lang/json/BOOK_from_json.py +msgid "Trap and Field" +msgid_plural "issues of Trap and Field" +msgstr[0] "" + +#. ~ Description for {'str': 'Trap and Field', 'str_pl': 'issues of Trap and +#. Field'} +#: lang/json/BOOK_from_json.py +msgid "" +"An in-depth magazine all about shotguns and shooting. There is an " +"informative article about proper shooting stance in the back pages." +msgstr "一本深入探討霰彈槍與射擊的書籍。後面有篇關於射擊站姿的知識性文章。" + +#: lang/json/BOOK_from_json.py +msgid "Shotguns: The Art and Science" +msgid_plural "copies of Shotguns: The Art and Science" +msgstr[0] "" + +#. ~ Description for {'str': 'Shotguns: The Art and Science', 'str_pl': +#. 'copies of Shotguns: The Art and Science'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book claims to address every problem the shotgunner is likely to face, " +"and offers solutions to ensure that shooters can make every shot count." +msgstr "這本書聲稱能解決霰彈槍用家會面臨的每個問題, 能夠讓每一發子彈發揮最大效用。" + +#: lang/json/BOOK_from_json.py +msgid "Submachine Gun Enthusiast" +msgid_plural "issues of Submachine Gun Enthusiast" +msgstr[0] "" + +#. ~ Description for {'str': 'Submachine Gun Enthusiast', 'str_pl': 'issues of +#. Submachine Gun Enthusiast'} +#: lang/json/BOOK_from_json.py +msgid "" +"An in-depth magazine about submachine guns and shooting. There is an " +"exhaustive article about close quarter combat techniques in the front." +msgstr "一本深入介紹關於衝鋒槍射擊的雜誌。在前面有一篇關於近距離作戰技術的詳盡文章。" + +#: lang/json/BOOK_from_json.py +msgid "The Submachine Gun Handbook" +msgid_plural "copies of The Submachine Gun Handbook" +msgstr[0] "" + +#. ~ Description for {'str': 'The Submachine Gun Handbook', 'str_pl': 'copies +#. of The Submachine Gun Handbook'} +#: lang/json/BOOK_from_json.py +msgid "" +"This concise guide details the proper care and operation of most forms of " +"machine pistols and submachine guns currently used by regular armed and " +"reserve forces, as well as several obsolete weapons." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "US Weekly" +msgid_plural "US Weeklies" +msgstr[0] "美國週報" + +#. ~ Description for {'str': 'US Weekly', 'str_pl': 'US Weeklies'} +#: lang/json/BOOK_from_json.py +msgid "Weekly news about a bunch of famous people who're all (un)dead now." +msgstr "每週的新聞以及一堆有名的人, 不論現在他們現在是死是活, 死了又活, 或是活了又死的。" + +#: lang/json/BOOK_from_json.py +msgid "Self-Esteem for Dummies" +msgid_plural "copies of Self-Esteem for Dummies" +msgstr[0] "" + +#. ~ Description for {'str': 'Self-Esteem for Dummies', 'str_pl': 'copies of +#. Self-Esteem for Dummies'} +#: lang/json/BOOK_from_json.py +msgid "Full of useful tips for showing confidence in your speech." +msgstr "充滿了許多展現自信與口才的有用提示。" + +#: lang/json/BOOK_from_json.py +msgid "Principles of Effective Communication" +msgid_plural "copies of Principles of Effective Communication" +msgstr[0] "" + +#. ~ Description for {'str': 'Principles of Effective Communication', +#. 'str_pl': 'copies of Principles of Effective Communication'} +#: lang/json/BOOK_from_json.py +msgid "A hardbound book devoted to being an effective and persuasive speaker." +msgstr "一本精裝書, 教導如何成為一個有效和有說服力的演講者。" + +#: lang/json/BOOK_from_json.py +msgid "Dungeon Master's Guide: 6th Edition" +msgid_plural "copies of Dungeon Master's Guide: 6th Edition" +msgstr[0] "" + +#. ~ Description for {'str': "Dungeon Master's Guide: 6th Edition", 'str_pl': +#. "copies of Dungeon Master's Guide: 6th Edition"} +#: lang/json/BOOK_from_json.py +msgid "" +"A thick, hardcover volume with everything needed to weave legendary stories." +" It's full of information, but finding the things you're looking for can be" +" a chore." +msgstr "一本厚重的精裝本, 內容有編述傳奇故事所需的一切資料。雖然它有極豐富的內容, 但要找到你正在尋找的東西可能是件苦差事。" + +#: lang/json/BOOK_from_json.py +msgid "Nail Your Law Firm Interview" +msgid_plural "copies of Nail Your Law Firm Interview" +msgstr[0] "" + +#. ~ Description for {'str': 'Nail Your Law Firm Interview', 'str_pl': 'copies +#. of Nail Your Law Firm Interview'} +#: lang/json/BOOK_from_json.py +msgid "" +"This lightweight book proclaims itself to be \"the ONLY gold star interview " +"guide for lawyers interviewing in any type of a job interview.\" It was " +"suppsed to help new lawyers find work." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "holybook abstract" +msgid_plural "holybook abstracts" +msgstr[0] "" + +#. ~ Description for holybook abstract +#: lang/json/BOOK_from_json.py +msgid "theoretically this isn't a book at all" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Mycenacean Hymns" +msgid_plural "copies of Mycenacean Hymns" +msgstr[0] "" + +#. ~ Description for {'str': 'Mycenacean Hymns', 'str_pl': 'copies of +#. Mycenacean Hymns'} +#: lang/json/BOOK_from_json.py +msgid "" +"A vellum book containing the hymns central to Marloss faith. As the verses " +"lead to each other, the text sings of unity and promised paradise." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "King James Bible" +msgid_plural "copies of King James Bible" +msgstr[0] "" + +#. ~ Description for {'str': 'King James Bible', 'str_pl': 'copies of King +#. James Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, which originated in England " +"in the early 1600s." +msgstr "聖經的英譯本, 最早於十七世紀初的英格蘭出版。" + +#: lang/json/BOOK_from_json.py +msgid "Eastern Orthodox Bible" +msgid_plural "copies of Eastern Orthodox Bible" +msgstr[0] "" + +#. ~ Description for {'str': 'Eastern Orthodox Bible', 'str_pl': 'copies of +#. Eastern Orthodox Bible'} +#: lang/json/BOOK_from_json.py +msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." +msgstr "東正教的聖經英譯本。" + +#: lang/json/BOOK_from_json.py +msgid "Gideon Bible" +msgid_plural "copies of Gideon Bible" +msgstr[0] "" + +#. ~ Description for {'str': 'Gideon Bible', 'str_pl': 'copies of Gideon +#. Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Christian Bible, distributed free of charge by" +" Gideons International." +msgstr "聖經的英譯本, 由國際基甸會免費發放。" + +#: lang/json/BOOK_from_json.py +msgid "The Guru Granth Sahib" +msgid_plural "copies of The Guru Granth Sahib" +msgstr[0] "永存師尊" + +#. ~ Description for {'str': 'The Guru Granth Sahib', 'str_pl': 'copies of The +#. Guru Granth Sahib'} +#: lang/json/BOOK_from_json.py +msgid "A single-volume copy of the central religious texts of Sikhism." +msgstr "錫克教的宗教核心文本。" + +#: lang/json/BOOK_from_json.py +msgid "Hadith" +msgid_plural "copies of Hadith" +msgstr[0] "" + +#. ~ Description for {'str': 'Hadith', 'str_pl': 'copies of Hadith'} +#: lang/json/BOOK_from_json.py +msgid "" +"A Muslim religious text containing an account of the sayings and actions of " +"the prophet Muhammad." +msgstr "穆斯林的典籍, 是先知穆罕默德的言行錄。" + +#: lang/json/BOOK_from_json.py +msgid "Principia Discordia" +msgid_plural "copies of Principia Discordia" +msgstr[0] "渾沌原則" + +#. ~ Description for {'str': 'Principia Discordia', 'str_pl': 'copies of +#. Principia Discordia'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of Discordianism. It seems to " +"primarily concern chaos, and features a card in the back which informs you " +"that you are now a 'genuine and authorized Pope of Discordia'." +msgstr "一本體現了渾沌學說主要信仰的書。似乎著眼於混沌學, 在書背的小卡上有 '你現在就是正式授權的渾沌教宗' 字樣。" + +#: lang/json/BOOK_from_json.py +msgid "The Kojiki" +msgid_plural "copies of The Kojiki" +msgstr[0] "古事記" + +#. ~ Description for {'str': 'The Kojiki', 'str_pl': 'copies of The Kojiki'} +#: lang/json/BOOK_from_json.py +msgid "" +"The oldest extant chronicle of Japan's myths and history, the stories " +"contained in the Kojiki are part of the inspiration behind Shinto practices." +msgstr "現存最古老的日本歷史神話編年史, 古事記中一部分的故事啟發了神道教的發展。" + +#: lang/json/BOOK_from_json.py +msgid "The Book of Mormon" +msgid_plural "copies of The Book of Mormon" +msgstr[0] "摩門之書" + +#. ~ Description for {'str': 'The Book of Mormon', 'str_pl': 'copies of The +#. Book of Mormon'} +#: lang/json/BOOK_from_json.py +msgid "" +"The sacred text of the Latter Day Saint movement of Christianity, originally" +" published in 1830 by Joseph Smith." +msgstr "基督教後期聖徒運動的神聖文本, 最初由約瑟夫·史密斯發表於 1830 年。" + +#: lang/json/BOOK_from_json.py +msgid "The Gospel of the Flying Spaghetti Monster" +msgid_plural "copies of The Gospel of the Flying Spaghetti Monster" +msgstr[0] "飛行義大利麵神教" + +#. ~ Description for {'str': 'The Gospel of the Flying Spaghetti Monster', +#. 'str_pl': 'copies of The Gospel of the Flying Spaghetti Monster'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book that embodies the main beliefs of the Church of the Flying Spaghetti " +"Monster. It seems to involve a lot of pirates and some sort of invisible " +"drunken monster made of pasta." +msgstr "一本書, 描述了以飛天麵條怪物為主要信仰的教會。它似乎牽扯了很多關於海盜和隱形的義大利麵製的醉酒怪物。" + +#: lang/json/BOOK_from_json.py +msgid "Quran" +msgid_plural "copies of Quran" +msgstr[0] "" + +#. ~ Description for {'str': 'Quran', 'str_pl': 'copies of Quran'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of the Muslim book of holy scriptures, with " +"explanatory notes and commentaries to aid in understanding." +msgstr "穆斯林聖典的英文譯本, 內含註釋和評論以助讀者理解。" + +#: lang/json/BOOK_from_json.py +msgid "The Satanic Bible" +msgid_plural "copies of The Satanic Bible" +msgstr[0] "" + +#. ~ Description for {'str': 'The Satanic Bible', 'str_pl': 'copies of The +#. Satanic Bible'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of essays, observations, and rituals published by Anton LaVey " +"in 1969." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Dianetics" +msgid_plural "copies of Dianetics" +msgstr[0] "戴尼提" + +#. ~ Description for {'str': 'Dianetics', 'str_pl': 'copies of Dianetics'} +#: lang/json/BOOK_from_json.py +msgid "" +"This book is the canonical text of Scientology. Written by a science " +"fiction author, it contains self-improvement techniques and musings on " +"psychology called Dianetics." +msgstr "這本書是山達基教的經典。它是由一個科幻小說家撰寫, 這種自我幫助系統和心理冥想被稱為戴尼提。" + +#: lang/json/BOOK_from_json.py +msgid "The Book of the SubGenius" +msgid_plural "copies of The Book of the SubGenius" +msgstr[0] "飛碟教之書" + +#. ~ Description for {'str': 'The Book of the SubGenius', 'str_pl': 'copies of +#. The Book of the SubGenius'} +#: lang/json/BOOK_from_json.py +msgid "" +"A book about the Church of the SubGenius. It seems to involve a salesman " +"named J. R. \"Bob\" Dobbs and a concept called 'slack'." +msgstr "一本關於飛碟教的書。似乎跟某個叫做 J. R. \"Bob\" 的推銷員有關, 並且有著鬆散的學說。" + +#: lang/json/BOOK_from_json.py +msgid "The Sutras of the Buddha" +msgid_plural "copies of The Sutras of the Buddha" +msgstr[0] "佛陀經藏" + +#. ~ Description for {'str': 'The Sutras of the Buddha', 'str_pl': 'copies of +#. The Sutras of the Buddha'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of discourses attributed to the Buddha and his close disciples." +msgstr "一本佛陀諸弟子與佛陀間對話的合輯。" + +#: lang/json/BOOK_from_json.py +msgid "Talmud" +msgid_plural "copies of the Talmud" +msgstr[0] "" + +#. ~ Description for {'str': 'Talmud', 'str_pl': 'copies of the Talmud'} +#: lang/json/BOOK_from_json.py +msgid "" +"One of the central texts of Rabbinic Judaism, the Talmud expounds upon the " +"Hebrew Bible with teachings and opinions of thousands of rabbis." +msgstr "一個拉比猶太教的核心文本, 猶太法典闡述了在希伯來聖經與教義和數千拉比的意見。" + +#: lang/json/BOOK_from_json.py +msgid "Tanakh" +msgid_plural "copies of Tanakh" +msgstr[0] "" + +#. ~ Description for {'str': 'Tanakh', 'str_pl': 'copies of Tanakh'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single-volume book containing the complete canon of the Jewish Bible." +msgstr "一卷書, 包含了猶太聖經的所有章節。" + +#: lang/json/BOOK_from_json.py +msgid "The Tripitaka" +msgid_plural "copies of The Tripitaka" +msgstr[0] "" + +#. ~ Description for {'str': 'The Tripitaka', 'str_pl': 'copies of The +#. Tripitaka'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Buddhist writings describing their canons of " +"scriptures." +msgstr "神聖的佛教著作合輯, 描述佛教的教規。" + +#: lang/json/BOOK_from_json.py +msgid "The Upanishads" +msgid_plural "copies of The Upanishads" +msgstr[0] "奧義書" + +#. ~ Description for {'str': 'The Upanishads', 'str_pl': 'copies of The +#. Upanishads'} +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of sacred Hindu writings regarding the nature of reality and " +"describing the character and form of human salvation." +msgstr "神聖的印度教著作合輯, 關於現實的本質和描述人類救贖的性質與形式。" + +#: lang/json/BOOK_from_json.py +msgid "The Four Vedas" +msgid_plural "copies of The Four Vedas" +msgstr[0] "四吠陀經" + +#. ~ Description for {'str': 'The Four Vedas', 'str_pl': 'copies of The Four +#. Vedas'} +#: lang/json/BOOK_from_json.py +msgid "" +"A single volume containing all four Vedas, which are the oldest scriptures " +"of Hinduism." +msgstr "一個包含所有四個吠陀經的合輯本, 這是印度教最古老的經文。" + +#: lang/json/BOOK_from_json.py +msgid "Hávamál" +msgid_plural "copies of Hávamál" +msgstr[0] "\"哈瓦瑪爾\" 的副本" + +#. ~ Description for {'str': 'Hávamál', 'str_pl': 'copies of Hávamál'} +#: lang/json/BOOK_from_json.py +msgid "" +"An English translation of several Old Norse poems. The poems contain " +"proverbs and stories attributed to the god Odin, many transcribed from oral " +"history." +msgstr "一本翻譯成英文的古北歐語詩集。詩集包含了有關歐丁神的諺語與故事的由來, 大部份是謄寫自口述歷史。" + +#: lang/json/BOOK_from_json.py +msgid "Duelist's Annual" +msgid_plural "Duelist's Annuals" +msgstr[0] "鬥劍年鑑" + +#. ~ Description for {'str': "Duelist's Annual"} +#: lang/json/BOOK_from_json.py +msgid "" +"An annual publication about fencing and dueling. There are many good " +"illustrations which describe proper technique and form." msgstr "一本關於擊劍以及對戰的年刊。裡面詳細了記載了許多有用的技巧及方法。" #: lang/json/BOOK_from_json.py @@ -26107,6 +26999,20 @@ msgid "" "professional clothing designer." msgstr "一本精裝的裁縫大百科, 充滿了有關專業服裝設計的豐富內容。" +#: lang/json/BOOK_from_json.py +msgid "Ye Scots Beuk o Tailorin'" +msgid_plural "copies of Ye Scots Beuk o Tailorin'" +msgstr[0] "" + +#. ~ Description for {'str': "Ye Scots Beuk o Tailorin'", 'str_pl': "copies of +#. Ye Scots Beuk o Tailorin'"} +#: lang/json/BOOK_from_json.py +msgid "" +"A translated Gaelic book from Scotland. While boring to read due to its " +"technical tone, it provides insights into Scottish culture and information " +"about tailoring." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "Diskobolus" msgid_plural "issues of Diskobolus" @@ -26236,10 +27142,307 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "readable magazine" -msgid_plural "readable magazines" +msgid "children's book" +msgid_plural "children's books" +msgstr[0] "童書" + +#. ~ Description for {'str': "children's book"} +#: lang/json/BOOK_from_json.py +msgid "" +"A little book for little readers. The colorful cartoon characters and sweet" +" stories contained herein belong to a different time, before the dead walked" +" and the world moved on." +msgstr "一本給小朋友的小書。有著豐富色彩的卡通角色與甜蜜的故事, 顯然不是這個時間點的產物。" + +#: lang/json/BOOK_from_json.py +msgid "book of fairy tales" +msgid_plural "books of fairy tales" +msgstr[0] "童話故事集" + +#. ~ Description for {'str': 'book of fairy tales', 'str_pl': 'books of fairy +#. tales'} +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of folklore featuring the usual cast of fairies, " +"goblins, and trolls." +msgstr "一本趣味民間故事集, 通常由小仙子、哥布林和巨魔主演。" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale is about a wolf who eats so much salted meat she becomes " +"trapped in the butcher's cellar." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this traditional story of beastly intrigue a clever fox convinces an " +"elderly lion to kill a derogatory wolf." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is an illustrated fairy tale book about a conversation between a mouse " +"and a cat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This illustrated fairy tale relates how a city mouse did visit his cousin in" +" the country, and how each regarded the other's quality of life." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A fable in which the jackal wins the day via clever foolishness." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A slave mistakenly wanders into a lion's den - thus begins a fable which " +"demonstrates mutual dependence regardless of size or status." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"An amusing collection of stories featuring \"Goldilocks and The Three " +"Bears\" on the cover." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a well illustrated fairy tale about a war between the birds and the " +"beasts, with particulars on the wartime conduct and eventual fate of the " +"bat." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book, titled \"The Rattlesnake's Vengeance\" is a collection of " +"Cherokee myths and legends. \"285D\" is hand-written in pencil on the title" +" page." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This fairy tale book is a regional variant of \"Jack and the Beanstalk.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fairy tale book is entitled \"Little Red Cap\". It details a red-" +"cloaked child's various encounters with talking wolves." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A collection of ghost stories warning about the dangers of stealing from the" +" dead." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"An Irish fairy tale in which a Celtic poet marries a princess who has been " +"cursed with the head of a pig." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"A book of Italian fairy tales translated into English. The cover features " +"an orange fairy juggling a lemon, a lime, and a tangerine." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A book of fables about people who change into birds." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This compendium of amusing folk tales about the devil is titled \"Hell's " +"Kettle: Legends of the Devil.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This charming book of Swedish fables is titled, \"The Glass Mountain and the" +" Princess.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a collection of fairy tale stories warning against the consequences " +"of extreme greed." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This fable book is entitled, \"The Rabbit Herd.\" Inside are woodcut " +"illustrations of a peasant boy playing his flute for a mob of mischievous " +"hares." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "This book is titled, \"The Thieving Pot: Folktales of the Arab World.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This is a book of legends collected by Traveller Johnny Cassidy in the " +"1960s." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "A book by the Brothers Grimm titled, \"Eve's Unequal Children.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of fables expands upon the legend of the Seven Sleepers of " +"Ephesus." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"In this fairy tale a strong man frightens an ogre by squeezing water out of " +"a stone." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of rustic folk tales bears the title: \"How to Shout Down the " +"Devil.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"The title of this book is \"Village Folk-tales of Ceylon.\" It includes " +"fables about logical errors and foolish misjudgements of the Kadambawa men." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"This book of folk tales is titled, \"The Girl with the Ugly Name, and Other " +"Stories.\"" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "" +"Titled \"The Fleeing Pancake\", this collection of silly folk tales is " +"suitable for small children." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "The Adorkable Girl" +msgid_plural "The Adorkable Girls" msgstr[0] "" +#. ~ Description for The Adorkable Girl +#: lang/json/BOOK_from_json.py +msgid "" +"When a therapist's daughter transfers to a new school, she decides to change" +" her personality type. As her social life begins to blossom, can she " +"maintain a healthy boundary between her home life and her public persona?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Becoming Jackson" +msgid_plural "Becoming Jacksons" +msgstr[0] "" + +#. ~ Description for Becoming Jackson +#: lang/json/BOOK_from_json.py +msgid "" +"When Jackson gains the mystical talent to alter his appearance on command, " +"how will he continue to recognize himself in his own mirror?" +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Nothing Burned" +msgid_plural "Nothing Burneds" +msgstr[0] "" + +#. ~ Description for Nothing Burned +#: lang/json/BOOK_from_json.py +msgid "" +"A teenage influencer becomes fast friends with someone who may or may not be" +" an actual demon." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "High and Low" +msgid_plural "High and Lows" +msgstr[0] "" + +#. ~ Description for High and Low +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of adolescent fiction, a young gemini discovers that the " +"astrology section of his small town newspaper is eerily preminiscent. His " +"efforts to uncover the oracle reveal more than the stars could have " +"predicted." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Fire When You See My Eyes" +msgid_plural "Fire When You See My Eyess" +msgstr[0] "" + +#. ~ Description for Fire When You See My Eyes +#: lang/json/BOOK_from_json.py +msgid "" +"In a cataclysmic future, advanced technology gives parents access to video " +"footage of every moment of their teenage children's lives." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Peanut Butter Bruised" +msgid_plural "Peanut Butter Bruiseds" +msgstr[0] "" + +#. ~ Description for Peanut Butter Bruised +#: lang/json/BOOK_from_json.py +msgid "" +"In this work of young adult fiction, a woman raised on food stamps falls in " +"love with a young cook. More importantly, she falls in love with the idea " +"of become a professional chef." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Ready When You Are" +msgid_plural "Ready When You Ares" +msgstr[0] "" + +#. ~ Description for Ready When You Are +#: lang/json/BOOK_from_json.py +msgid "" +"When three teenage girls ditch class to drive cross country together they " +"get a strong dose of life lessons on the road. This work of young adult " +"fiction explores how friendships evolve in early adulthood." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Study of a Boy" +msgid_plural "Study of a Boys" +msgstr[0] "" + +#. ~ Description for Study of a Boy +#: lang/json/BOOK_from_json.py +msgid "" +"A high school sophomore's personal journal is stolen and then leaked on " +"social media. When it goes viral he is forced simultaneously to contend " +"with both fame and betrayal." +msgstr "" + +#: lang/json/BOOK_from_json.py +msgid "Summer Variables" +msgid_plural "Summer Variabless" +msgstr[0] "" + +#. ~ Description for Summer Variables +#: lang/json/BOOK_from_json.py +msgid "" +"In this book written primarily for young adults, a woman's modest summer " +"internship results in an incredible discovery that attracts the attention of" +" unsavory elements." +msgstr "" + #: lang/json/BOOK_from_json.py msgid "original copy of Housefly" msgid_plural "original copies of Housefly" @@ -26391,158 +27594,6 @@ msgid "" "ancient movie?" msgstr "" -#: lang/json/BOOK_from_json.py -msgid "Case #5846, Illegal Gun Modification" -msgid_plural "copies of Case #5846, Illegal Gun Modification" -msgstr[0] "" - -#. ~ Description for {'str': 'Case #5846, Illegal Gun Modification', 'str_pl': -#. 'copies of Case #5846, Illegal Gun Modification'} -#: lang/json/BOOK_from_json.py -msgid "" -"This file details illegal gun modifications. Maybe you could learn " -"something. At least you don't have to worry about the cops anymore." -msgstr "這份文件詳細介紹了非法改造槍械的方式。你可以從中學到些改造槍支的技巧, 而且現在你完全不用擔心有警察來找你麻煩。" - -#: lang/json/BOOK_from_json.py -msgid "chess set" -msgid_plural "chess sets" -msgstr[0] "國際象棋組" - -#. ~ Description for chess set -#: lang/json/BOOK_from_json.py -msgid "" -"A wooden box containing all the equipment needed to play a game of chess." -msgstr "一個木盒子, 裡面裝著玩國際象棋所需的所有東西。" - -#: lang/json/BOOK_from_json.py -msgid "checkers set" -msgid_plural "checkers sets" -msgstr[0] "西洋跳棋組" - -#. ~ Description for checkers set -#: lang/json/BOOK_from_json.py -msgid "A wooden box containing a set of round tokens used to play checkers." -msgstr "一個木盒子, 裡面有一套用來玩西洋跳棋的圓形棋子。" - -#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -msgid "deck of cards" -msgid_plural "decks of cards" -msgstr[0] "一副撲克牌" - -#. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} -#: lang/json/BOOK_from_json.py -msgid "A collection of 52 cards made to play poker." -msgstr "一套 52 張的撲克牌。" - -#: lang/json/BOOK_from_json.py -msgid "deck of Sorcery cards" -msgid_plural "decks of Sorcery cards" -msgstr[0] "一套巫術卡" - -#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of -#. Sorcery cards'} -#: lang/json/BOOK_from_json.py -msgid "" -"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " -"picture of a different monster." -msgstr "一套用於玩 \"巫術\" 遊戲的卡片。每張卡片都有不同怪物的有趣圖畫。" - -#: lang/json/BOOK_from_json.py -msgid "Picturesque" -msgid_plural "sets of Picturesque" -msgstr[0] "" - -#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where one draws an image, and the others attempt to guess what it is." -msgstr "一個人畫圖, 其他人猜他畫什麼的遊戲。" - -#: lang/json/BOOK_from_json.py -msgid "Capitalism" -msgid_plural "sets of Capitalism" -msgstr[0] "" - -#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players traverse around the board buying property and swindling" -" their friends." -msgstr "一套桌遊, 玩家們在遊戲盤上遊轉、購買房產, 和訛詐他們的朋友。" - -#: lang/json/BOOK_from_json.py -msgid "Blobs and Bandits" -msgid_plural "sets of Blobs and Bandits" -msgstr[0] "" - -#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and -#. Bandits'} -#: lang/json/BOOK_from_json.py -msgid "" -"A roleplaying game set in the post-apocalypse, so you can pretend to survive" -" the apocalypse while surviving the apocalypse." -msgstr "一套桌上角色扮演遊戲, 設定在大災變之後, 讓你模擬在大災變中倖存並活下去。" - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer" -msgid_plural "sets of Battlehammer" -msgstr[0] "" - -#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of fantasy creatures." -msgstr "一款桌上戰棋遊戲, 內含一組奇幻生物的小小公仔。" - -#: lang/json/BOOK_from_json.py -msgid "Battlehammer 20k" -msgid_plural "sets of Battlehammer 20k" -msgstr[0] "" - -#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of -#. Battlehammer 20k'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game featuring a set of tiny figurines of space aliens and " -"grotesque space marines." -msgstr "一款桌上戰棋遊戲, 內含一組外星人和異空間海軍陸戰隊員的小小公仔。" - -#: lang/json/BOOK_from_json.py -msgid "Settlers of the Ranch" -msgid_plural "sets of Settlers of the Ranch" -msgstr[0] "" - -#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of -#. Settlers of the Ranch'} -#: lang/json/BOOK_from_json.py -msgid "" -"A strategy game where players build settlements and trade for supplies." -msgstr "一個戰略遊戲, 讓玩家們各自建造拓荒營地並交易各種補給品。" - -#: lang/json/BOOK_from_json.py -msgid "Warships" -msgid_plural "sets of Warships" -msgstr[0] "" - -#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} -#: lang/json/BOOK_from_json.py -msgid "" -"A game where players try to guess where the opponent placed their ships on " -"the board." -msgstr "玩家互猜對手將軍艦放在棋盤上位置的遊戲。" - -#: lang/json/BOOK_from_json.py -msgid "Murder Mystery" -msgid_plural "sets of Murder Mystery" -msgstr[0] "" - -#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder -#. Mystery'} -#: lang/json/BOOK_from_json.py -msgid "A game where players try to figure out who murdered the butler." -msgstr "玩家試圖找出是誰謀殺了管家的遊戲。" - #: lang/json/BOOK_from_json.py msgid "Black Dragons: Swamp Ruins" msgid_plural "copies of Black Dragons: Swamp Ruins" @@ -26673,73 +27724,32 @@ msgid "" msgstr "" #: lang/json/BOOK_from_json.py -msgid "The Weapons of Asgard" -msgid_plural "copies of The Weapons of Asgard" -msgstr[0] "" - -#. ~ Description for {'str': 'The Weapons of Asgard', 'str_pl': 'copies of The -#. Weapons of Asgard'} -#: lang/json/BOOK_from_json.py -msgid "" -"This book is about creating replicas of the weapons used by the Norse Gods, " -"such as the well-known Mjölnir. It is well illustrated with lots of " -"pictures." -msgstr "這本書在討論如何創造北歐神祇的武器複製品, 例如大家都知道的雷神之槌。書內也有大量的武器圖片供仿製參考。" - -#: lang/json/BOOK_from_json.py -msgid "Hacking Robots for Fun & Profit" -msgid_plural "copies of Hacking Robots for Fun & Profit" +msgid "In the Beginning… Was the Command Line" +msgid_plural "copies of In the Beginning… Was the Command Line" msgstr[0] "" -#. ~ Description for {'str': 'Hacking Robots for Fun & Profit', 'str_pl': -#. 'copies of Hacking Robots for Fun & Profit'} +#. ~ Description for {'str': 'In the Beginning… Was the Command Line', +#. 'str_pl': 'copies of In the Beginning… Was the Command Line'} #: lang/json/BOOK_from_json.py msgid "" -"A book on illegally obtaining, reprogramming, and modifying robots. It has " -"lots of helpful step-by-step guides and example blueprints." +"Humorous 1999 essay by Neal Stephenson comparing computer operating system " +"vendors to car dealerships." msgstr "" #: lang/json/BOOK_from_json.py -msgid "Popular Robotics" -msgid_plural "issues of Popular Robotics" +msgid "Principles of Compiler Design" +msgid_plural "copies of Principles of Compiler Design" msgstr[0] "" -#. ~ Description for {'str': 'Popular Robotics', 'str_pl': 'issues of Popular -#. Robotics'} -#: lang/json/BOOK_from_json.py -msgid "A magazine about building and altering your own robots." -msgstr "一本介紹如何組建和改造自己的機器人的雜誌。" - -#: lang/json/BOOK_from_json.py -msgid "Artillery and Field Gunnery" -msgid_plural "copies of Artillery and Field Gunnery" -msgstr[0] "火砲學與火砲武器" - -#. ~ Description for {'str': 'Artillery and Field Gunnery', 'str_pl': 'copies -#. of Artillery and Field Gunnery'} +#. ~ Description for {'str': 'Principles of Compiler Design', 'str_pl': +#. 'copies of Principles of Compiler Design'} #: lang/json/BOOK_from_json.py msgid "" -"A textbook on the history of modern artillery, with a number of " -"illustrations and excerpts from various field manuals. A competent " -"handloader or mechanic might find additional uses for the more technical " -"parts of the text." +"Alfred Aho and Jeffrey Ullman's classic 1977 computer science textbook. " +"Features a cover drawing of a knight wielding an LALR parser generation and " +"syntax directed translation against the metaphorical green dragon, The " +"Complexity of Compiler Design." msgstr "" -"一本敘述現代化火砲的歷史書籍, 有著各種不同野戰手冊上的插圖與摘錄。\n" -"一個厲害的手工製作者或是技工也許可以從書中找到許多有用的部分。" - -#: lang/json/BOOK_from_json.py -msgid "Principles of Postmortem Mind Control" -msgid_plural "copies of Principles of Postmortem Mind Control" -msgstr[0] "" - -#. ~ Description for {'str': 'Principles of Postmortem Mind Control', -#. 'str_pl': 'copies of Principles of Postmortem Mind Control'} -#: lang/json/BOOK_from_json.py -msgid "" -"A thick book containing research notes of a mad scientist. It describes " -"various methods of reanimating and controlling the dead. There's a lot of " -"gory details and technical language mixed in, so it's not easy to read." -msgstr "一本厚厚的書包含一個瘋狂科學家的研究筆記。它描述復活和控制死者的各種方法。有很多血腥的細節和專業術語混雜其中, 所以它不容易閱讀。" #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -27754,6 +28764,16 @@ msgid "" "Prohibition era." msgstr "這是一種流行的雞尾酒,由琴酒和乾苦艾酒製成,可以追溯到禁酒時代。" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin muffin" +msgid_plural "pumpkin muffin" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'pumpkin muffin'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Baked muffins made of pumpkin. Perfect for your fall feast." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "donut holes" msgid_plural "donut holes" @@ -28122,6 +29142,7 @@ msgid_plural "large human stomachs" msgstr[0] "" #. ~ Description for large human stomach +#. ~ Description for large demihuman stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "來自人型生物的大型胃袋, 比想像中結實。" @@ -28133,6 +29154,7 @@ msgstr[0] "" #. ~ Description for {'str': 'chunk of human fat', 'str_pl': 'chunks of human #. fat'} +#. ~ Description for chunk of demihuman fat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly harvested from a human body." msgstr "" @@ -28396,6 +29418,13 @@ msgid "jerk jerky" msgid_plural "jerk jerky" msgstr[0] "醃人肉" +#. ~ Conditional name for {'str_sp': 'meat jerky'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal jerky" +msgid_plural "talking animal jerky" +msgstr[0] "" + #. ~ Conditional name for {'str_sp': 'meat jerky'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -28431,6 +29460,12 @@ msgid "smoked sucker" msgid_plural "smoked sucker" msgstr[0] "" +#. ~ Conditional name for smoked meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked Narnian" +msgid_plural "smoked Narnian" +msgstr[0] "" + #. ~ Conditional name for smoked meat when COMPONENT_ID matches mutant #. ~ Conditional name for canned meat when COMPONENT_ID matches mutant #. ~ Conditional name for salted meat slice when COMPONENT_ID matches mutant @@ -28842,6 +29877,18 @@ msgid "" "storage and tanning, or eat it if you're desperate enough." msgstr "一張細心的從人類身上剝下並折起的生皮。你可以替它加工好以儲存和鞣制, 要是你真的走投無路也可以吃掉它。" +#: lang/json/COMESTIBLE_from_json.py +msgid "raw demihuman skin" +msgid_plural "raw demihuman skins" +msgstr[0] "" + +#. ~ Description for raw demihuman skin +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A carefully folded raw skin harvested from a demihuman. You can cure it for" +" storage and tanning, or eat it if you're desperate enough." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" msgid_plural "raw pelts" @@ -28971,6 +30018,231 @@ msgid "" "blue veins running through it." msgstr "從外星植物取下的乾燥硬樹皮,它是半透明的,如果放在光線下,你可以看到閃閃發光的藍色靜脈。" +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman stomach" +msgid_plural "demihuman stomachs" +msgstr[0] "" + +#. ~ Description for demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "The stomach of an intelligent demihuman. It is surprisingly durable." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "large demihuman stomach" +msgid_plural "large demihuman stomachs" +msgstr[0] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "chunk of demihuman fat" +msgid_plural "chunk of demihuman fats" +msgstr[0] "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman tallow" +msgid_plural "demihuman tallows" +msgstr[0] "" + +#. ~ Description for demihuman tallow +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of cleaned and rendered demihuman fat. It will remain " +"edible for a very long time, and can be used as an ingredient in many foods " +"and projects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman lard" +msgid_plural "demihuman lards" +msgstr[0] "" + +#. ~ Description for demihuman lard +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A smooth white block of dry-rendered demihuman fat. It will remain edible " +"for a very long time, and can be used as an ingredient in many foods and " +"projects." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "demihuman flesh" +msgid_plural "demihuman fleshs" +msgstr[0] "" + +#. ~ Description for demihuman flesh +#: lang/json/COMESTIBLE_from_json.py +msgid "Freshly butchered from a demihuman body." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked mongrel" +msgid_plural "cooked mongrels" +msgstr[0] "" + +#. ~ Description for cooked mongrel +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A freshly cooked slice of something close to being a real person. Tastes " +"like long pig." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "boiled demihuman stomach" +msgid_plural "boiled demihuman stomachs" +msgstr[0] "" + +#. ~ Description for boiled demihuman stomach +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" + +#. ~ Description for {'str': 'boiled demihuman stomach'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A small boiled stomach from a demihuman, nothing else. It looks all but " +"appetizing." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "cereal" +msgid_plural "cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A generic box of cereal, you shouldn't see this." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace cereal" +msgid_plural "FoodPlace cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'FoodPlace cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A generic box of FoodPlace brand sugary cereal, you shouldn't see this." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Snicker-Snacks cereal" +msgid_plural "Snicker-Snacks cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Snicker-Snacks cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Snicker-Snack cereal. Each tiny \"Snicker-Snack\" is shaped" +" like human food!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Carpenter Crunch cereal" +msgid_plural "Carpenter Crunch cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Carpenter Crunch cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This is FoodPlace brand \"Carpenter Crunch\" cereal with the iconic " +"\"Breakfast Beaver\" mascot on the box. It tastes kind of like nails." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Brantastic cereal" +msgid_plural "Brantastic cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Brantastic cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Brantastic\" cereal. An essential part of a complete Bran" +" breakfast." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Sugar Chomps cereal" +msgid_plural "Sugar Chomps cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Sugar Chomps cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Sugar Chomps\" cereal. \"Chocolate Frosted Crunchy Sugar " +"Chomps: 8 essential vitamins packed into that rich, fudgy taste!\"" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Honey Pellet cereal" +msgid_plural "Honey Pellet cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Honey Pellet cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand \"Amorphous Honey Pellet\" cereal. The box promises " +"\"Inconceivable sustenance in tiny morsels of yellow honey.\"" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Fructose Flakes cereal" +msgid_plural "Fructose Flakes" +msgstr[0] "" + +#. ~ Description for {'str': 'Fructose Flakes cereal', 'str_pl': 'Fructose +#. Flakes'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"FoodPlace brand Fructose Flakes cereal. Fortified with energy enriched " +"FoodSyrup™ that supports life most efficiently." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodios cereal" +msgid_plural "Foodios cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Foodios cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "FoodPlace brand \"Foodios\" cereal. Foodios™ are Foodalicious™!" +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sugary cereal" +msgid_plural "sugary cereals" +msgstr[0] "" + +#. ~ Description for sugary cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sugary breakfast cereal with marshmallows. It takes you back to your " +"childhood." +msgstr "含糖的早餐麥片與棉花糖。它會讓你回想起童年。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "wheat cereal" +msgid_plural "wheat cereal" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'wheat cereal'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " +"your heart." +msgstr "全麥的小麥穀片。它出乎意料的營養, 聽說對你的心臟也相當不錯。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "corn cereal" +msgid_plural "corn cereals" +msgstr[0] "" + +#. ~ Description for corn cereal +#: lang/json/COMESTIBLE_from_json.py +msgid "Plain cornflake cereal. They're not that good, but it beats nothing." +msgstr "一般的玉米片。不是很營養, 不過總比什麼都沒有來得好。" + #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "raw milk" msgid_plural "raw milk" @@ -29333,8 +30605,8 @@ msgstr[0] "" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py -msgid "Made from real Massachusetts cranberries. Delicious and nutritious." -msgstr "由真正馬薩諸塞州蔓越莓所製成, 美味又營養。" +msgid "Made from real Massachusetts cranberries. Quite sour, but nutritious." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -29713,6 +30985,68 @@ msgstr[0] "礦泉水" msgid "Fancy mineral water, so fancy it makes you feel fancy just holding it." msgstr "優質的礦泉水, 太優質了讓你連拿著瓶子都覺得優質。" +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee" +msgid_plural "sweetened coffees" +msgstr[0] "" + +#. ~ Description for sweetened coffee +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The morning ritual of the pre-apocalyptic world, created from coffee " +"cherries through a complex process of seed removal, roasting, grinding, and " +"brewing. Coffee is substantially richer in caffeine than its rival tea. " +"With added sweetener for better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened tea" +msgid_plural "sweetened teas" +msgstr[0] "" + +#. ~ Description for sweetened tea +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The beverage of gentlemen everywhere, made from applying hot water to leaves" +" of the tea plant /Camellia sinensis/. Added sweetener for a better taste." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened milk tea" +msgid_plural "sweetened milk teas" +msgstr[0] "" + +#. ~ Description for sweetened milk tea +#: lang/json/COMESTIBLE_from_json.py +msgid "Hot tea with cold milk and added sweetener." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee substitute" +msgid_plural "sweetened coffee substitutes" +msgstr[0] "" + +#. ~ Description for sweetened coffee substitute +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"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. The added sweetness neutralize the bitterness " +"somewhat." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "sweetened coffee milk" +msgid_plural "sweetened coffee milks" +msgstr[0] "" + +#. ~ Description for sweetened coffee milk +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Coffee syrup mixed into milk. It's been the state drink of Rhode Island " +"since 1993. Added sweetener for those who like it even sweeter." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" msgid_plural "red sauces" @@ -29779,28 +31113,6 @@ msgid "" " honey. This honey won't spoil and is good for your digestion." msgstr "蜂蜜, 蜜蜂的產物。這是 \"森林蜜\", 一種液態的蜂蜜。這種蜂蜜不會變質而且對消化有益。" -#: lang/json/COMESTIBLE_from_json.py -msgid "peanut butter" -msgid_plural "peanut butters" -msgstr[0] "" - -#. ~ Description for peanut butter -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"A brown goo that tastes very little like its namesake. It's not bad, but " -"it'll stick to the roof of your mouth." -msgstr "棕色的黏稠物, 吃起來就像它的名字。不難吃, 但是它很容易黏牙。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "imitation peanutbutter" -msgid_plural "imitation peanutbutters" -msgstr[0] "" - -#. ~ Description for imitation peanutbutter -#: lang/json/COMESTIBLE_from_json.py -msgid "A thick, nutty brown paste." -msgstr "濃稠堅果味的棕色糊狀物。" - #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" msgid_plural "vinegar" @@ -29882,6 +31194,18 @@ msgid "chicken egg" msgid_plural "chicken eggs" msgstr[0] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "unfertilized bird egg" +msgid_plural "unfertilized bird eggs" +msgstr[0] "" + +#. ~ Description for {'str': 'unfertilized bird egg'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Nutritious egg laid by a bird. This one is unfertilized and is probably " +"from a farm." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" msgid_plural "grouse eggs" @@ -30295,6 +31619,18 @@ msgid "" "life. Bland, mushy and losing color." msgstr "這些塊狀浸泡的果醬已經用水煮熟並且裝罐。平淡黏糊並且毫無顏色。" +#: lang/json/COMESTIBLE_from_json.py +msgid "pumpkin yeast bread" +msgid_plural "pumpkin yeast bread" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'pumpkin yeast bread'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A festive autumnal bread with a golden color in either rolls or sliced " +"loaves of bread." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" msgid_plural "irradiated rose hips" @@ -31156,28 +32492,6 @@ msgstr "一些焦糖。仍舊對你的健康不太好。" msgid "Betcha can't eat just one." msgstr "我賭你絕對停不下來。" -#: lang/json/COMESTIBLE_from_json.py -msgid "sugary cereal" -msgid_plural "sugary cereals" -msgstr[0] "" - -#. ~ Description for sugary cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Sugary breakfast cereal with marshmallows. It takes you back to your " -"childhood." -msgstr "含糖的早餐麥片與棉花糖。它會讓你回想起童年。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "corn cereal" -msgid_plural "corn cereals" -msgstr[0] "" - -#. ~ Description for corn cereal -#: lang/json/COMESTIBLE_from_json.py -msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "一般的玉米片。不是很營養, 不過總比什麼都沒有來得好。" - #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" msgid_plural "tortilla chips" @@ -31214,6 +32528,13 @@ msgid "niño nachos" msgid_plural "niño nachos" msgstr[0] "加人肉玉米片" +#. ~ Conditional name for {'str_sp': 'meat nachos'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos" +msgid_plural "nibelung nachos" +msgstr[0] "" + #. ~ Conditional name for {'str_sp': 'meat nachos'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -31240,6 +32561,13 @@ msgid "niño nachos with cheese" msgid_plural "niño nachos with cheese" msgstr[0] "人肉起司玉米片" +#. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "nibelung nachos with cheese" +msgid_plural "nibelung nachos with cheese" +msgstr[0] "" + #. ~ Conditional name for {'str_sp': 'meat nachos with cheese'} when #. COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -31469,6 +32797,12 @@ msgid "raw Mannwurst" msgid_plural "raw Mannwursts" msgstr[0] "" +#. ~ Conditional name for raw sausage when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "raw killbasa" +msgid_plural "raw killbasas" +msgstr[0] "" + #. ~ Conditional name for raw sausage when COMPONENT_ID matches mutant #. ~ Conditional name for smoked sausage when COMPONENT_ID matches mutant #. ~ Conditional name for cooked sausage when COMPONENT_ID matches mutant @@ -31496,6 +32830,13 @@ msgid "smoked Mannwurst" msgid_plural "smoked Mannwursts" msgstr[0] "" +#. ~ Conditional name for smoked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "smoked killbasa" +msgid_plural "smoked killbasas" +msgstr[0] "" + #. ~ Description for smoked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." @@ -31512,6 +32853,13 @@ msgid "cooked Mannwurst" msgid_plural "cooked Mannwursts" msgstr[0] "" +#. ~ Conditional name for cooked sausage when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "cooked killbasa" +msgid_plural "cooked killbasas" +msgstr[0] "" + #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." @@ -31538,6 +32886,13 @@ msgid "Mannbrat" msgid_plural "Mannbrats" msgstr[0] "" +#. ~ Conditional name for {'str': 'bratwurst'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "frankenfurter" +msgid_plural "frankenfurters" +msgstr[0] "" + #. ~ Conditional name for {'str': 'bratwurst'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -31645,6 +33000,13 @@ msgid "cheapskate %s" msgid_plural "cheapskate %s" msgstr[0] "" +#. ~ Conditional name for currywurst when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "confusing %s" +msgid_plural "confusing %s" +msgstr[0] "" + #. ~ Conditional name for currywurst when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -31678,6 +33040,14 @@ msgid "amoral %s" msgid_plural "amoral %s" msgstr[0] "" +#. ~ Conditional name for {'str': 'aspic'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orwell's %s" +msgid_plural "Orwell's %s" +msgstr[0] "" + #. ~ Description for {'str': 'aspic'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -31773,6 +33143,14 @@ msgid "brat %s" msgid_plural "brat %s" msgstr[0] "" +#. ~ Conditional name for {'str_sp': 'bologna'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Tumnis %s" +msgid_plural "Tumnis %s" +msgstr[0] "" + #. ~ Conditional name for {'str_sp': 'bologna'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -31850,6 +33228,13 @@ msgid "Mannwurst gravy" msgid_plural "Mannwurst gravies" msgstr[0] "人肉香腸濃湯" +#. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage +#. gravies'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "killbasa gravy" +msgid_plural "killbasa gravies" +msgstr[0] "" + #. ~ Conditional name for {'str': 'sausage gravy', 'str_pl': 'sausage #. gravies'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -31877,6 +33262,14 @@ msgid "prepper %s" msgid_plural "prepper %s" msgstr[0] "" +#. ~ Conditional name for {'str_sp': 'pemmican'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Orley %s" +msgid_plural "Orley %s" +msgstr[0] "" + #. ~ Conditional name for {'str_sp': 'pemmican'} when COMPONENT_ID matches #. mutant #: lang/json/COMESTIBLE_from_json.py @@ -31901,7 +33294,14 @@ msgstr[0] "" #. ~ Conditional name for hamburger helper when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgid_plural "hobo helpers" +msgid_plural "hobo helper" +msgstr[0] "" + +#. ~ Conditional name for hamburger helper when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "halfling helper" +msgid_plural "halfling helper" msgstr[0] "" #. ~ Conditional name for hamburger helper when COMPONENT_ID matches mutant @@ -31940,6 +33340,13 @@ msgid "chili con cabron" msgid_plural "chilis con cabron" msgstr[0] "" +#. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con +#. carne'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "chili con Sindar" +msgid_plural "chilis con Sindar" +msgstr[0] "" + #. ~ Conditional name for {'str': 'chili con carne', 'str_pl': 'chilis con #. carne'} when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py @@ -32099,7 +33506,13 @@ msgstr[0] "" #. ~ Conditional name for meat pie when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgid_plural "prick pies" +msgid_plural "prick pie" +msgstr[0] "" + +#. ~ Conditional name for meat pie when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "talking animal pie" +msgid_plural "talking animal pie" msgstr[0] "" #. ~ Conditional name for meat pie when COMPONENT_ID matches mutant @@ -32122,7 +33535,13 @@ msgstr[0] "" #. ~ Conditional name for meat pizza when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgid_plural "poser pizzas" +msgid_plural "poser pizza" +msgstr[0] "" + +#. ~ Conditional name for meat pizza when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "protesting pizza" +msgid_plural "protesting pizza" msgstr[0] "" #. ~ Conditional name for meat pizza when COMPONENT_ID matches mutant @@ -32176,8 +33595,14 @@ msgstr[0] "" #. ~ Conditional name for canned meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" -msgid_plural "soylent slices" -msgstr[0] "人肉罐頭" +msgid_plural "soylent slice" +msgstr[0] "" + +#. ~ Conditional name for canned meat when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient slice" +msgid_plural "sapient slice" +msgstr[0] "" #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py @@ -32194,7 +33619,14 @@ msgstr[0] "" #. ~ Conditional name for salted meat slice when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slice" -msgid_plural "salted simpleton slices" +msgid_plural "salted simpleton slice" +msgstr[0] "" + +#. ~ Conditional name for salted meat slice when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "salted sapient slice" +msgid_plural "salted sapient slice" msgstr[0] "" #. ~ Description for salted meat slice @@ -32211,7 +33643,14 @@ msgstr[0] "肉醬義大利麵" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" -msgid_plural "scoundrel spaghettis" +msgid_plural "scoundrel spaghetti" +msgstr[0] "" + +#. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "speaking spaghetti" +msgid_plural "speaking spaghetti" msgstr[0] "" #. ~ Conditional name for {'str_sp': 'spaghetti bolognese'} when COMPONENT_ID @@ -32239,6 +33678,13 @@ msgid "Luigi %s" msgid_plural "Luigi %s" msgstr[0] "" +#. ~ Conditional name for lasagne when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "Lab %s" +msgid_plural "Lab %s" +msgstr[0] "" + #. ~ Conditional name for lasagne when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32275,6 +33721,14 @@ msgid "chump %s" msgid_plural "chump %s" msgstr[0] "" +#. ~ Conditional name for cheeseburger when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "elf %s" +msgid_plural "elf %s" +msgstr[0] "" + #. ~ Conditional name for cheeseburger when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32297,7 +33751,13 @@ msgstr[0] "" #. ~ Conditional name for hamburger when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgid_plural "bobburgers" +msgid_plural "bobburger" +msgstr[0] "" + +#. ~ Conditional name for hamburger when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "Moreauburger" +msgid_plural "Moreauburger" msgstr[0] "" #. ~ Conditional name for hamburger when COMPONENT_ID matches mutant @@ -32323,6 +33783,12 @@ msgid "manwich" msgid_plural "manwiches" msgstr[0] "三人治" +#. ~ Conditional name for sloppy joe when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "manfriendwich" +msgid_plural "manfriendwiches" +msgstr[0] "" + #. ~ Conditional name for sloppy joe when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32349,6 +33815,13 @@ msgid "tio %s" msgid_plural "tio %s" msgstr[0] "" +#. ~ Conditional name for taco when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "talking %s" +msgid_plural "talking %s" +msgstr[0] "" + #. ~ Conditional name for taco when COMPONENT_ID matches mutant #: lang/json/COMESTIBLE_from_json.py #, python-format @@ -32371,7 +33844,14 @@ msgstr[0] "" #. ~ Conditional name for pickled meat when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgid_plural "pickled punks" +msgid_plural "pickled punk" +msgstr[0] "" + +#. ~ Conditional name for pickled meat when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "pickled anthro" +msgid_plural "pickled anthro" msgstr[0] "" #. ~ Description for pickled meat @@ -32393,6 +33873,18 @@ msgid "%s, human" msgid_plural "%s, human" msgstr[0] "" +#. ~ Conditional name for dehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for rehydrated meat when FLAG matches +#. STRICT_HUMANITARIANISM +#. ~ Conditional name for {'str': 'haggis', 'str_pl': 'haggises'} when FLAG +#. matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "%s, demihuman" +msgid_plural "%s, demihuman" +msgstr[0] "" + #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -32701,6 +34193,11 @@ msgid "caffeine pill" msgid_plural "caffeine pills" msgstr[0] "" +#. ~ Use action activation_message for caffeine pill. +#: lang/json/COMESTIBLE_from_json.py +msgid "You take a caffeine pill." +msgstr "" + #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -33168,8 +34665,9 @@ msgstr[0] "" #: lang/json/COMESTIBLE_from_json.py msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " -"packaging. Purported to provide immunity to influenza." -msgstr "醫藥流感疫苗是設計於大眾接踵疫苗, 聲稱可以提供對抗流感的免疫力。未拆封。" +"packaging. Purported to provide immunity to influenza, for the flu season " +"for which it was developed." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -33719,8 +35217,8 @@ msgstr "你服用了一些胃藥。" #: lang/json/COMESTIBLE_from_json.py msgid "" "Creamy pink heartburn syrup that soothes upset stomachs and quells vomitous " -"urges; with a twist off cap that doubles as a dosage cup." -msgstr "一罐黏稠的粉紅色胃藥糖漿,用於緩解胃部不適,平息嘔吐衝動;附有一個能當量杯的蓋子。" +"urges." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" @@ -33925,6 +35423,31 @@ msgid "" "it's safe to eat. Exposed to the atmosphere, it has started to go bad." msgstr "一份軍用口糧的義式茄汁肉丸主菜, 能夠保存到近乎永遠。經過輻射消毒, 所以安心可食。一旦拆封後內容物將會開始腐敗。" +#: lang/json/COMESTIBLE_from_json.py +msgid "spinach fettuccine entree" +msgid_plural "spinach fettuccine entrees" +msgstr[0] "" + +#. ~ Description for spinach fettuccine entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The creamy spinach fettuccine entree from an MRE. Sterilized using " +"radiation, so it's safe to eat. Exposed to the atmosphere, it has started " +"to go bad." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "ratatouille entree" +msgid_plural "ratatouille entrees" +msgstr[0] "" + +#. ~ Description for ratatouille entree +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"The ratatouille entree from an MRE. Sterilized using radiation, so it's " +"safe to eat. Exposed to the atmosphere, it has started to go bad." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" msgid_plural "cheese tortellini entrees" @@ -34872,6 +36395,38 @@ msgstr[0] "" msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." msgstr "美味的山核桃香飲, 不愧為神的飲品。" +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter" +msgid_plural "peanut butters" +msgstr[0] "" + +#. ~ Description for peanut butter +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"A brown goo that tastes very little like its namesake. It's not bad, but " +"it'll stick to the roof of your mouth." +msgstr "棕色的黏稠物, 吃起來就像它的名字。不難吃, 但是它很容易黏牙。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "imitation peanutbutter" +msgid_plural "imitation peanutbutters" +msgstr[0] "" + +#. ~ Description for imitation peanutbutter +#: lang/json/COMESTIBLE_from_json.py +msgid "A thick, nutty brown paste." +msgstr "濃稠堅果味的棕色糊狀物。" + +#: lang/json/COMESTIBLE_from_json.py +msgid "peanut butter spread" +msgid_plural "peanut butter spreads" +msgstr[0] "" + +#. ~ Description for peanut butter spread +#: lang/json/COMESTIBLE_from_json.py +msgid "Processed peanut butter spread.." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "acorns" msgid_plural "acorns" @@ -35119,9 +36674,9 @@ msgstr[0] "蜂王漿" #. ~ Description for {'str': 'royal jelly', 'str_pl': 'royal jellies'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A translucent hexagonal chunk of wax, filled with dense, milky jelly. " -"Though some hold it as a panacea, it doesn't have any medical benefit. " -"Still, it is delicious, and rich with the most beneficial substances the " +"A translucent hexagonal chunk of wax, filled with dense, milky, bitter and " +"acidic-tasting jelly. Though some hold it as a panacea, it doesn't have any" +" medical benefit. Still it is rich with the most beneficial substances the " "hive can produce." msgstr "" @@ -35336,6 +36891,16 @@ msgid "" " and is guaranteed 100% edible!" msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "Foodplace's appropriate snack™" +msgid_plural "Foodplace's appropriate snack™" +msgstr[0] "" + +#. ~ Description for {'str_sp': "Foodplace's appropriate snack™"} +#: lang/json/COMESTIBLE_from_json.py +msgid "Real foodstuff now in a pocket size format!" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked lentils" msgid_plural "cooked lentils" @@ -35483,6 +37048,30 @@ msgstr[0] "" msgid "Some nectar. Seeing this item is a bug." msgstr "一些花蜜。看到這個的話就是有 bug。" +#: lang/json/COMESTIBLE_from_json.py +msgid "tea bag" +msgid_plural "tea bags" +msgstr[0] "" + +#. ~ Description for {'str': 'tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with tea leafs inside. Put it into boiling water to get your " +"cup of tea." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py +msgid "herbal tea bag" +msgid_plural "herbal tea bags" +msgstr[0] "" + +#. ~ Description for {'str': 'herbal tea bag'} +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Paper sachet with dried wild herbs inside. Put it into boiling water to " +"make some healthy warm drink." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "protein drink" msgid_plural "protein drinks" @@ -35491,8 +37080,15 @@ msgstr[0] "" #. ~ Conditional name for protein drink when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green drink" -msgid_plural "soylent green drinks" -msgstr[0] "人肉蛋白飲料" +msgid_plural "soylent green drink" +msgstr[0] "" + +#. ~ Conditional name for protein drink when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green drink" +msgid_plural "sapient green drink" +msgstr[0] "" #. ~ Conditional name for protein drink when COMPONENT_ID matches mutant #. ~ Conditional name for {'str_sp': 'protein powder'} when COMPONENT_ID @@ -35525,6 +37121,13 @@ msgid "soylent green powder" msgid_plural "soylent green powder" msgstr[0] "人肉蛋白粉" +#. ~ Conditional name for {'str_sp': 'protein powder'} when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green powder" +msgid_plural "sapient green powder" +msgstr[0] "" + #. ~ Description for {'str_sp': 'protein powder'} #: lang/json/COMESTIBLE_from_json.py msgid "" @@ -35540,18 +37143,15 @@ msgstr[0] "" #. ~ Description for {'str': 'protein ration'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"SoyPelusa ran a highly successful crowdfunding campaign for this protein " -"bar. A person can live on one of these bars, three times a day, presumably " -"forever. After backers received their product, a single flaw was found: " -"most consumers found starvation preferable to the flavor. Warehouses of the" -" product went unsold as the company went bankrupt, providing the perfect " -"opportunity for FEMA to scoop them up and stock the evac shelters. Now, you" -" hold a piece of famous crowdfunding history in your hands. How exciting." +"SoyPelusa ran a highly successful crowdfunding campaign for their signature " +"protein bar, dubbed \"DaiZoom.\" A person can live on one of these bars, " +"three times a day, presumably forever. After backers received their " +"product, a single flaw was found: most consumers found starvation preferable" +" to the flavor. Warehouses of the product went unsold as the company went " +"bankrupt, providing the perfect opportunity for FEMA to scoop them up and " +"stock the evac shelters. Now, you hold a piece of famous crowdfunding " +"history in your hands. How exciting." msgstr "" -"SoyPelusa為了這個蛋白質棒進行了一場非常成功的眾籌活動。 某些人士宣稱這一條蛋白質棒吃一次就能撐三天,說不定再說下去就可以變成永遠。 " -"支持者收到產品之後發現一個缺陷:大部份支持者的飢餓感比那個噁心味道消失還快出現。 " -"之後公司隨之破產,倉庫擺滿了一堆蛋白質棒無法銷售,聯邦緊急事務管理局抓緊了這個機會把所有蛋白質棒低廉的買了進來並放進避難所內。 " -"現在,你手上握著一個著名的眾籌事件物品。真是令人激動阿!" #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" @@ -35561,7 +37161,14 @@ msgstr[0] "" #. ~ Conditional name for protein shake when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgid_plural "soylent green shakes" +msgid_plural "soylent green shake" +msgstr[0] "" + +#. ~ Conditional name for protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "sapient green shake" +msgid_plural "sapient green shake" msgstr[0] "" #. ~ Description for protein shake @@ -35580,7 +37187,14 @@ msgstr[0] "" #. CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgid_plural "fortified soylent green shakes" +msgid_plural "fortified soylent green shake" +msgstr[0] "" + +#. ~ Conditional name for fortified protein shake when FLAG matches +#. STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "fortified sapient green shake" +msgid_plural "fortified sapient green shake" msgstr[0] "" #. ~ Description for fortified protein shake @@ -36402,6 +38016,16 @@ msgid "" "fiddle. Delicious when cooked, but consuming raw can cause food poisoning." msgstr "一些未成熟的蕨葉,仍然像小提琴的頭一樣捲曲。煮熟時味道鮮美,但生食則會導致食物中毒。" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper" +msgid_plural "bell peppers" +msgstr[0] "" + +#. ~ Description for {'str': 'bell pepper'} +#: lang/json/COMESTIBLE_from_json.py +msgid "A green bell pepper. It could be cooked." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "grilled cheese sandwich" msgid_plural "grilled cheese sandwiches" @@ -36522,6 +38146,13 @@ msgid "slob sandwich" msgid_plural "slob sandwiches" msgstr[0] "人肉三明治" +#. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat +#. sandwiches'} when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "satyr sandwich" +msgid_plural "satyr sandwiches" +msgstr[0] "" + #. ~ Conditional name for {'str': 'meat sandwich', 'str_pl': 'meat #. sandwiches'} when COMPONENT_ID matches mutant #. ~ Conditional name for meat soup when COMPONENT_ID matches mutant @@ -37414,6 +39045,21 @@ msgstr "一些洋甘菊種子。" msgid "chamomile" msgstr "洋甘菊" +#: lang/json/COMESTIBLE_from_json.py +msgid "spurge seeds" +msgid_plural "spurge seeds" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'spurge seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some spurge seeds." +msgstr "" + +#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py +msgid "spurge" +msgid_plural "spurges" +msgstr[0] "大戟(翡翠塔)屬植物" + #: lang/json/COMESTIBLE_from_json.py msgid "popcorn seeds" msgid_plural "popcorn seeds" @@ -37444,6 +39090,16 @@ msgstr[0] "" msgid "Some mustard seeds. Could be ground into mustard powder." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "bell pepper seeds" +msgid_plural "bell pepper seeds" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'bell pepper seeds'} +#: lang/json/COMESTIBLE_from_json.py +msgid "Some bell pepper seeds." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "broth" msgid_plural "broths" @@ -37459,6 +39115,13 @@ msgid "bone broth" msgid_plural "bone broths" msgstr[0] "" +#. ~ Conditional name for bone broth when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +#, python-format +msgid "demihuman %s" +msgid_plural "demihuman %s" +msgstr[0] "" + #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." @@ -37482,7 +39145,13 @@ msgstr[0] "" #. ~ Conditional name for meat soup when FLAG matches CANNIBALISM #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgid_plural "sap soups" +msgid_plural "sap soup" +msgstr[0] "" + +#. ~ Conditional name for meat soup when FLAG matches STRICT_HUMANITARIANISM +#: lang/json/COMESTIBLE_from_json.py +msgid "goblin soup" +msgid_plural "goblin soup" msgstr[0] "" #. ~ Description for meat soup @@ -37710,8 +39379,8 @@ msgstr[0] "野生草藥" #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " -"purslane, fireweed, and burdock." -msgstr "一個美味的綜合草藥,包含了紫羅蘭、黃樟、薄荷、三葉草、馬齒莧、和牛蒡" +"purslane, and fireweed." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "soy sauce" @@ -37738,6 +39407,18 @@ msgstr[0] "" msgid "A fragnant yellow powder. Not edible in this form." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "artificial sweetener" +msgid_plural "artificial sweeteners" +msgstr[0] "" + +#. ~ Description for artificial sweetener +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"Sweet, sweet sugar? No, it is bitter-sweet artificial sweetener. No " +"calories, no worries." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" msgid_plural "cooked cattail stalks" @@ -38269,16 +39950,16 @@ msgid "Fiddleheads sauteed in fat. Tender and delicious." msgstr "蕨類嫩芽用脂肪嫩煎過。鮮嫩可口。" #: lang/json/COMESTIBLE_from_json.py -msgid "wheat cereal" -msgid_plural "wheat cereals" +msgid "cooked bell pepper" +msgid_plural "cooked bell peppers" msgstr[0] "" -#. ~ Description for wheat cereal +#. ~ Description for {'str': 'cooked bell pepper'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " -"your heart." -msgstr "全麥的小麥穀片。它出乎意料的營養, 聽說對你的心臟也相當不錯。" +"A cored and cooked bell pepper. It is far more enjoyable now that the seeds" +" are removed." +msgstr "" #. ~ Description for {'str_sp': 'wheat'} #: lang/json/COMESTIBLE_from_json.py @@ -38482,7 +40163,6 @@ msgid_plural "granola" msgstr[0] "" #. ~ Description for {'str_sp': 'granola'} -#. ~ Description for gluten free granola #: lang/json/COMESTIBLE_from_json.py msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " @@ -39073,6 +40753,11 @@ msgid "pachycephalosaurus egg" msgid_plural "pachycephalosaurus eggs" msgstr[0] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "camptosaurus egg" +msgid_plural "camptosaurus eggs" +msgstr[0] "" + #: lang/json/COMESTIBLE_from_json.py msgid "spinosaurus egg" msgid_plural "spinosaurus eggs" @@ -39083,6 +40768,11 @@ msgid "tyrannosaurus egg" msgid_plural "tyrannosaurus eggs" msgstr[0] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "albertosaurus egg" +msgid_plural "albertosaurus eggs" +msgstr[0] "" + #: lang/json/COMESTIBLE_from_json.py msgid "triceratops egg" msgid_plural "triceratops eggs" @@ -39098,6 +40788,11 @@ msgid "ankylosaurus egg" msgid_plural "ankylosaurus eggs" msgstr[0] "" +#: lang/json/COMESTIBLE_from_json.py +msgid "ceratosaurus egg" +msgid_plural "ceratosaurus eggs" +msgstr[0] "" + #: lang/json/COMESTIBLE_from_json.py msgid "allosaurus egg" msgid_plural "allosaurus eggs" @@ -39579,820 +41274,865 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "necrotic head" -msgid_plural "necrotic heads" +msgid "TEST pine nuts" +msgid_plural "TEST pine nuts" msgstr[0] "" -#. ~ Description for necrotic head #: lang/json/COMESTIBLE_from_json.py -msgid "" -"The severed head of a zombie necromancer. Its eyes still roll in its head " -"and its jaws snap menacingly." -msgstr "被切斷的殭屍死靈法師的頭。它的眼睛仍然骨碌滾動,它的下顎猛烈開合。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "mutagenic glob" -msgid_plural "mutagenic globs" +msgid "test bitter almonds" +msgid_plural "test bitter almonds" msgstr[0] "" -#. ~ Description for mutagenic glob +#. ~ Description for {'str_sp': 'test bitter almonds'} #: lang/json/COMESTIBLE_from_json.py -msgid "A gelatinous glob of mutagen." -msgstr "一種凝膠狀的誘變劑。" +msgid "" +"A variety of almonds with traces of hydrocyanic acid, potentially toxic when" +" eaten raw." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "honey" -msgid_plural "honey" -msgstr[0] "蜂蜜" +msgid "test hallucinogenic nutmeg" +msgid_plural "test hallucinogenic nutmeg" +msgstr[0] "" -#. ~ Description for {'str_sp': 'honey'} +#. ~ Description for {'str_sp': 'test hallucinogenic nutmeg'} #: lang/json/COMESTIBLE_from_json.py -msgid "Honey, that stuff bees make." -msgstr "這是蜂群製作的蜂蜜。" +msgid "" +"With high levels of the psychoactive myristicin, high doses of nutmeg can " +"cause hallucinations and euphoria, along with a lot of nasty side effects." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "TEST pine nuts" -msgid_plural "TEST pine nuts" +msgid "test apple" +msgid_plural "test apples" msgstr[0] "" +#. ~ Description for {'str': 'test apple'} #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fish sandwich" -msgid_plural "gluten free fish sandwiches" -msgstr[0] "無麩質魚肉三明治" - -#. ~ Description for {'str': 'gluten free fish sandwich', 'str_pl': 'gluten -#. free fish sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free and a delicious fish sandwich." -msgstr "無麩質而且美味的魚肉三明治。" +msgid "Test apple. May contain worms, but tastes delicious!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable sandwich" -msgid_plural "gluten free vegetable sandwiches" -msgstr[0] "無麩質蔬菜三明治" +msgid "test liquid" +msgid_plural "test liquid" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free vegetable sandwich', 'str_pl': -#. 'gluten free vegetable sandwiches'} +#. ~ Description for {'str_sp': 'test liquid'} #: lang/json/COMESTIBLE_from_json.py -msgid "Gluen free bread and vegetables, that's it." -msgstr "無麩質麵包跟蔬菜, 就這樣。" +msgid "" +"No clue what it's made of, but it's definitely liquid. Only for testing, do" +" not drink!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free granola" -msgid_plural "gluten free granolas" +msgid "tennis ball wine must" +msgid_plural "tennis ball wine musts" msgstr[0] "" +#. ~ Description for tennis ball wine must #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat sandwich" -msgid_plural "gluten free meat sandwiches" -msgstr[0] "無麩質肉三明治" - -#. ~ Description for {'str': 'gluten free meat sandwich', 'str_pl': 'gluten -#. free meat sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free bread and meat, that's it." -msgstr "無麩質麵包跟肉, 就這樣。" +msgid "" +"Unfermented tennis ball wine. A rubbery, boiled juice made from mashed " +"tennis balls." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free peanut butter sandwich" -msgid_plural "gluten free peanut butter sandwiches" -msgstr[0] "無麩質花生醬三明治" +msgid "test tennis ball wine" +msgid_plural "test tennis ball wine" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free peanut butter sandwich', 'str_pl': -#. 'gluten free peanut butter sandwiches'} +#. ~ Description for {'str_sp': 'test tennis ball wine'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some peanut butter smothered between two pieces of gluten free bread. Not " -"very filling and will stick to the roof of your mouth like glue." -msgstr "一些花生醬滑順的抹在兩片無麩質麵包中間。不太能夠填飽肚子, 而且還會像膠水一樣黏在嘴唇上方。" +"Cheap booze made from fermented tennis ball juice. Tastes just like it " +"sounds." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&J sandwich" -msgid_plural "gluten free PB&J sandwiches" -msgstr[0] "無麩質花生果醬三明治" +msgid "test chewing gum" +msgid_plural "test chewing gum" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free PB&J sandwich', 'str_pl': 'gluten -#. free PB&J sandwiches'} +#. ~ Description for {'str_sp': 'test chewing gum'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"A delicious peanut butter and jelly gluten free sandwich. It reminds you of" -" the times your mother would make you lunch." -msgstr "美味的花生果醬無麩質三明治。這讓會令你想起你與你母親一起野餐的時候。" +"Curiously stimulating and thirst-quenching blueberry-flavored chewing gum." +msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&H sandwich" -msgid_plural "gluten free PB&H sandwiches" -msgstr[0] "無麩質蜂蜜花生醬三明治" +msgid "test mutated thumb" +msgid_plural "test mutated thumbs" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free PB&H sandwich', 'str_pl': 'gluten -#. free PB&H sandwiches'} +#. ~ Description for {'str': 'test mutated thumb'} #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some damned fool put honey on this peanut butter sandwich, who in their " -"right mind- oh wait this is pretty good. Gluten free too!" +"A misshapen human thumb. Eating this would be incredibly disgusting and " +"probably cause you to mutate." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free PB&M sandwich" -msgid_plural "gluten free PB&M sandwiches" -msgstr[0] "無麩質楓糖花生醬三明治" +#: lang/json/CONTAINER_from_json.py +msgid "small metal tank" +msgid_plural "small metal tanks" +msgstr[0] "小金屬油箱" -#. ~ Description for {'str': 'gluten free PB&M sandwich', 'str_pl': 'gluten -#. free PB&M sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Who knew you could mix maple syrup and peanut butter to create yet another " -"different gluten free sandwich?" -msgstr "誰知道, 你可以混合楓糖漿和花生醬創造另一個不同的無麩質三明治?" +#. ~ Description for small metal tank +#: lang/json/CONTAINER_from_json.py +msgid "A small metal tank for holding gas or liquids. Useful for crafting." +msgstr "一個小容量金屬製能裝液體或瓦斯的油桶。製作物品時很有用。" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free hickory nut ambrosia" -msgid_plural "lactose free hickory nut ambrosias" +#: lang/json/ENGINE_from_json.py +msgid "internal combustion engine" +msgid_plural "internal combustion engines" msgstr[0] "" -#. ~ Description for lactose free hickory nut ambrosia -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " -"made with an alternative to cows milk." -msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "base diesel engine" +msgid_plural "base diesel engines" +msgstr[0] "" -#. ~ Description for cornmeal -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"You think this is cornflour… or rice flour… Or something else. However, it" -" certainly is not wheat flour! It is useful for baking though." -msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "base gasoline engine" +msgid_plural "base gasoline engines" +msgstr[0] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free johnnycake" -msgid_plural "gluten free johnnycakes" +#: lang/json/ENGINE_from_json.py +msgid "base steam engine" +msgid_plural "base steam engines" msgstr[0] "" -#. ~ Description for gluten free johnnycake -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"We all crave for cake sometimes. This is not perfect, but it is a tasty and" -" nutritious gluten free fried bread treat. " -msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "1-cylinder engine" +msgid_plural "1-cylinder engines" +msgstr[0] "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pancake" -msgid_plural "gluten free fruit pancakes" -msgstr[0] "無麩質水果煎餅" +#. ~ Description for {'str': '1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A single-cylinder 4-stroke combustion engine." +msgstr "一個單缸四行程的內燃式引擎。" -#. ~ Description for {'str': 'gluten free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgid_plural "large 1-cylinder engines" +msgstr[0] "" + +#. ~ Description for {'str': 'large 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "蓬鬆可口的無麩質煎餅淋上了純正的楓糖漿, 成為了甜口味, 另外還加了有益健康的水果。" +"A powerful high-compression single-cylinder 4-stroke combustion engine." +msgstr "強力的高壓縮單缸四行程的內燃式引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free fruit pancake" -msgid_plural "lactose free fruit pancakes" -msgstr[0] "無乳糖水果煎餅" +#: lang/json/ENGINE_from_json.py +msgid "small 1-cylinder engine" +msgid_plural "small 1-cylinder engines" +msgstr[0] "" -#. ~ Description for {'str': 'lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious lactose free pancakes with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "蓬鬆可口的無乳糖煎餅淋上了純正的楓糖漿, 成為了甜口味, 另外還加了有益健康的水果。" +#. ~ Description for {'str': 'small 1-cylinder engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small single-cylinder 2-stroke combustion engine." +msgstr "一個小型的單汽缸雙行程引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit pancake" -msgid_plural "gluten free lactose free fruit pancakes" -msgstr[0] "無乳糖無麩質水果煎餅" +#: lang/json/ENGINE_from_json.py +msgid "light aero-engine" +msgid_plural "light aero-engines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free lactose free fruit pancake'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'light aero-engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Fluffy and delicious pancakes made out of the only things you can still eat." -" But at least it has real maple syrup, made sweeter and healthier with the " -"addition of wholesome fruit." +"An air-cooled, four-cylinder, horizontally opposed internal combustion " +"engine, rated for 150 horsepower. Commonly used on light aircraft." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate pancake" -msgid_plural "gluten free chocolate pancakes" -msgstr[0] "無麩質巧克力煎餅" +#: lang/json/ENGINE_from_json.py +msgid "Inline-4 engine" +msgid_plural "Inline-4 engines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free chocolate pancake'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Fluffy and delicious gluten free pancakes with real maple syrup, with " -"delicious chocolate baked right in." -msgstr "剛出爐的既蓬鬆可口並且淋上純正楓糖漿的美味巧克力無麩質煎餅。" +#. ~ Description for {'str': 'Inline-4 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A small, yet powerful 4-cylinder combustion engine." +msgstr "一個小又有力的四缸內燃式引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free French toast" -msgid_plural "gluten free French toasts" -msgstr[0] "無麩質法國吐司" +#: lang/json/ENGINE_from_json.py +msgid "I6 diesel engine" +msgid_plural "I6 diesel engines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free French toast'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Slices of gluten free bread dipped in a milk and egg mixture then fried." -msgstr "切片的無麩質麵包浸過牛奶和雞蛋的混合物之後再炸。" +#. ~ Description for {'str': 'I6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful straight-6 diesel engine." +msgstr "一個強力的直列式六缸柴油引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free French toast" -msgid_plural "gluten free lactose free French toasts" -msgstr[0] "無乳糖無麩質法國吐司" +#: lang/json/ENGINE_from_json.py +msgid "V-twin engine" +msgid_plural "V-twin engines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free lactose free French toast'} -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Slices of gluten free bread dipped in a lactose free milk and egg mixture " -"then fried. You never thought it was possible, but now you truly feel like " -"a post millennial." -msgstr "" +#. ~ Description for {'str': 'V-twin engine'} +#: lang/json/ENGINE_from_json.py +msgid "A 2-cylinder 4-stroke combustion engine." +msgstr "一個雙缸四行程的內燃式引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free biscuit" -msgid_plural "gluten free biscuits" +#: lang/json/ENGINE_from_json.py +msgid "V6 engine" +msgid_plural "V6 engines" msgstr[0] "" -#. ~ Description for gluten free biscuit -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Delicious and filling, this home made gluten free biscuit is good, and good " -"for you!" -msgstr "美味又飽足, 這個自製的無麩質比司吉麵包很好吃!" +#. ~ Description for {'str': 'V6 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder combustion engine." +msgstr "一個強力的六缸內燃式引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit pie" -msgid_plural "gluten free fruit pies" +#: lang/json/ENGINE_from_json.py +msgid "V6 diesel engine" +msgid_plural "V6 diesel engines" msgstr[0] "" -#. ~ Description for gluten free fruit pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a sweet fruit filling." -msgstr "一個加入許多甜美水果的美味無麩質烘焙派。" +#. ~ Description for {'str': 'V6 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 6-cylinder diesel engine." +msgstr "一個強力的六缸內燃式柴油引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pie" -msgid_plural "gluten free vegetable pies" +#: lang/json/ENGINE_from_json.py +msgid "V8 engine" +msgid_plural "V8 engines" msgstr[0] "" -#. ~ Description for gluten free vegetable pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious vegetable filling." -msgstr "一種有美味蔬菜餡的烤無麩質餡餅。" +#. ~ Description for {'str': 'V8 engine'} +#: lang/json/ENGINE_from_json.py +msgid "A large and very powerful 8-cylinder combustion engine." +msgstr "一個又大又強力的八缸內燃式引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pie" -msgid_plural "gluten free meat pies" +#: lang/json/ENGINE_from_json.py +msgid "V8 diesel engine" +msgid_plural "V8 diesel engines" msgstr[0] "" -#. ~ Description for gluten free meat pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious baked gluten free pie with a delicious meat filling." -msgstr "一種有美味肉餡的無麩質烤餡餅。" +#. ~ Description for {'str': 'V8 diesel engine'} +#: lang/json/ENGINE_from_json.py +msgid "A powerful 8-cylinder diesel engine." +msgstr "一個又大又強力的八缸內燃式柴油引擎。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free maple pie" -msgid_plural "gluten free maple pies" +#: lang/json/ENGINE_from_json.py +msgid "V12 engine" +msgid_plural "V12 engines" msgstr[0] "" -#. ~ Description for gluten free maple pie -#: lang/json/COMESTIBLE_from_json.py -msgid "A sweet and delicious baked gluten free pie with pure maple syrup." -msgstr "香甜可口, 用純楓糖烘焙的無麩質派。" +#. ~ Description for {'str': 'V12 engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive and extremely powerful V12 engine, usually built into high end " +"sports cars." +msgstr "一個巨大而無比強力的十二缸內燃式引擎, 通常用於高級跑車。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free vegetable pizza" -msgid_plural "gluten free vegetable pizzas" +#: lang/json/ENGINE_from_json.py +msgid "V12 diesel engine" +msgid_plural "V12 diesel engines" msgstr[0] "" -#. ~ Description for gluten free vegetable pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'V12 diesel engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " -"crust. Its smell brings back great memories." -msgstr "一個素食的無麩質披薩, 加入美味的番茄沙司與蓬鬆的餅皮。它的香氣喚醒你美好的回憶。" +"A massive and extremely powerful V12 engine, usually built into heavy " +"trucks." +msgstr "一個巨大而無比強力的十二缸內燃式引擎, 通常用於重型卡車。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese pizza" -msgid_plural "gluten free cheese pizzas" +#: lang/json/ENGINE_from_json.py +msgid "makeshift steam engine" +msgid_plural "makeshift steam engines" msgstr[0] "" -#. ~ Description for gluten free cheese pizza -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free pizza with molten cheese on top." -msgstr "一個美味的無麩質披薩, 上面鋪有熔化的起司。" +#. ~ Description for {'str': 'makeshift steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A small, primitive, steam engine. An integrated boiler burns coal to heat " +"water into steam, driving a reciprocating shaft. A condenser recaptures the" +" water, making this a closed cycle system." +msgstr "一台小型且粗糙的蒸汽機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動往復軸。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free meat pizza" -msgid_plural "gluten free meat pizzas" +#: lang/json/ENGINE_from_json.py +msgid "small steam engine" +msgid_plural "small steam engines" msgstr[0] "" -#. ~ Description for gluten free meat pizza -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A meat gluten free pizza, for all the carnivores out there. Chock full of " -"minced meat and heavily seasoned." -msgstr "一個加肉的無麩質披薩,所有肉食者的最愛。加入了大量的肉類以及濃郁的醬料。" +"A small steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condenser recaptures the water, " +"making this a closed cycle system." +msgstr "一台小型的蒸汽機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動往復軸。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheeseburger" -msgid_plural "gluten free cheeseburgers" +#: lang/json/ENGINE_from_json.py +msgid "medium steam engine" +msgid_plural "medium steam engines" msgstr[0] "" -#. ~ Description for gluten free cheeseburger -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of minced meat and cheese with condiments. The apex " -"of pre-Cataclysm culinary achievement." +"A medium-sized steam engine. An integrated boiler burns coal to heat water " +"into steam, driving a reciprocating shaft. A condenser recaptures the " +"water, making this a closed cycle system." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free hamburger" -msgid_plural "gluten free hamburgers" +#: lang/json/ENGINE_from_json.py +msgid "1350 hp gas turbine engine" +msgid_plural "1350 hp gas turbine engines" msgstr[0] "" -#. ~ Description for gluten free hamburger -#: lang/json/COMESTIBLE_from_json.py -msgid "A gluten free sandwich of minced meat with condiments." -msgstr "無麩質,夾著一片漢堡肉以及調味料。" +#. ~ Description for {'str': '1350 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A gas turbine engine, usually used for military vehicles. Known for its " +"high rate of fuel consumption." +msgstr "氣渦輪機引擎,通常用於軍用車輛。以其高油耗率而聞名。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sloppy joe" -msgid_plural "gluten free sloppy joes" +#: lang/json/ENGINE_from_json.py +msgid "1900 hp gas turbine engine" +msgid_plural "1900 hp gas turbine engines" msgstr[0] "" -#. ~ Description for gluten free sloppy joe -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': '1900 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich, consisting of ground meat and tomato sauce served on" -" a hamburger bun." -msgstr "一個無麩質漢堡, 加入了絞肉以及番茄沙司。" +"A large gas turbine engine, usually used for military helicopters. Known " +"for its high rate of fuel consumption." +msgstr "大型氣渦輪機引擎,通常用於軍用直升機。以其高油耗率而聞名。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free BLT" -msgid_plural "gluten free BLTs" +#: lang/json/ENGINE_from_json.py +msgid "6000 hp gas turbine engine" +msgid_plural "6000 hp gas turbine engines" msgstr[0] "" -#. ~ Description for gluten free BLT -#: lang/json/COMESTIBLE_from_json.py -msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." -msgstr "一個用培根、生菜、蕃茄和烤麵包製成的無麩質三明治。" +#. ~ Description for {'str': '6000 hp gas turbine engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " +"high rate of fuel consumption." +msgstr "大型氣渦輪機引擎,用於為 V-22 魚鷹提供動力。以其高油耗率而聞名。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free sweetbread" -msgid_plural "gluten free sweetbreads" -msgstr[0] "無麩質胸腺" +#: lang/json/ENGINE_from_json.py +msgid "large steam engine" +msgid_plural "large steam engines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free sweetbread'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large steam engine'} +#: lang/json/ENGINE_from_json.py msgid "" -"Delicious and tender organ meats. First boiled, then gluten free breaded " -"crumbs added and fried. They have interesting flavor and unparalleled " -"texture." -msgstr "美味和嫩滑的動物臟器。首先用水煮熟, 然後沾上無麩質麵包屑油炸。有著迷人的味道和無與倫比的口感。" +"A large steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "一台大型的蒸汽機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動往復軸。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cheese sandwich" -msgid_plural "gluten free cheese sandwiches" -msgstr[0] "無麩質起司三明治" +#: lang/json/ENGINE_from_json.py +msgid "huge steam engine" +msgid_plural "huge steam engines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free cheese sandwich', 'str_pl': 'gluten -#. free cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A simple gluten free cheese sandwich." -msgstr "一個簡單的無麩質起司三明治。" +#. ~ Description for {'str': 'huge steam engine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam engine. An integrated boiler burns coal to heat water into " +"steam, driving a reciprocating shaft. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "一台巨型的蒸汽機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動往復軸。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free grilled cheese sandwich" -msgid_plural "gluten free grilled cheese sandwiches" -msgstr[0] "烤起士無麩質三明治" +#: lang/json/ENGINE_from_json.py +msgid "small steam turbine" +msgid_plural "small steam turbines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free grilled cheese sandwich', 'str_pl': -#. 'gluten free grilled cheese sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'small steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A delicious gluten free grilled cheese sandwich, because everything is " -"better with melted cheese." -msgstr "一個美味的烤起司無麩質三明治, 因為融化的起司讓世界變得更美好。" +"A small steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "一台小型的蒸汽渦輪機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動旋轉渦輪機。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free deluxe sandwich" -msgid_plural "gluten free deluxe sandwiches" -msgstr[0] "無麩質豪華三明治" +#: lang/json/ENGINE_from_json.py +msgid "medium steam turbine" +msgid_plural "medium steam turbines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free deluxe sandwich', 'str_pl': 'gluten -#. free deluxe sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'medium steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A gluten free sandwich of meat, vegetables, and cheese with condiments. " -"Tasty and nutritious!" -msgstr "一份夾著肉、蔬菜、起司配上調味料的無麩質三明治。美味又營養!" +"A medium sized steam turbine. An integrated boiler burns coal to heat water" +" into steam, driving a spinning turbine. A condensor recaptures the water, " +"making this a closed cycle system." +msgstr "一台中型的蒸汽渦輪機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動旋轉渦輪機。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free cucumber sandwich" -msgid_plural "gluten free cucumber sandwiches" -msgstr[0] "無麩質黃瓜三明治" +#: lang/json/ENGINE_from_json.py +msgid "large steam turbine" +msgid_plural "large steam turbines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free cucumber sandwich', 'str_pl': -#. 'gluten free cucumber sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'large steam turbine'} +#: lang/json/ENGINE_from_json.py msgid "" -"A refreshing gluten free cucumber sandwich. Not very filling, but quite " -"tasty." -msgstr "清爽的無麩質花生醬三明治。不太能夠填飽肚子, 但很美味。" +"A large steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "一台大型的蒸汽渦輪機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動旋轉渦輪機。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free jam sandwich" -msgid_plural "gluten free jam sandwiches" -msgstr[0] "無麩質果醬三明治" +#: lang/json/ENGINE_from_json.py +msgid "huge steam turbine" +msgid_plural "huge steam turbines" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free jam sandwich', 'str_pl': 'gluten -#. free jam sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free jam sandwich." -msgstr "好吃的果醬無麩質三明治" +#. ~ Description for {'str': 'huge steam turbine'} +#: lang/json/ENGINE_from_json.py +msgid "" +"A huge steam turbine. An integrated boiler burns coal to heat water into " +"steam, driving a spinning turbine. A condensor recaptures the water, making" +" this a closed cycle system." +msgstr "一台巨型的蒸汽渦輪機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動旋轉渦輪機。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free honey sandwich" -msgid_plural "gluten free honey sandwiches" -msgstr[0] "無麩質蜂蜜三明治" +#: lang/json/GENERIC_from_json.py +msgid "fetid goop" +msgid_plural "fetid goops" +msgstr[0] "" -#. ~ Description for {'str': 'gluten free honey sandwich', 'str_pl': 'gluten -#. free honey sandwiches'} -#: lang/json/COMESTIBLE_from_json.py -msgid "A delicious gluten free honey sandwich." -msgstr "好吃的蜂蜜無麩質三明治" +#. ~ Description for {'str': 'fetid goop'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A foul smelling goop. It has a disgusting texture and a powerful smell that" +" overrides every other smell around it." +msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free boring sandwich" -msgid_plural "gluten free boring sandwiches" -msgstr[0] "無麩質單調三明治" +#: lang/json/GENERIC_from_json.py +msgid "limestone shard" +msgid_plural "limestone shards" +msgstr[0] "石灰岩碎片" -#. ~ Description for {'str': 'gluten free boring sandwich', 'str_pl': 'gluten -#. free boring sandwiches'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'limestone shard'} +#: lang/json/GENERIC_from_json.py msgid "" -"A simple gluten free sauce sandwich. Not very filling but beats eating just" -" the bread… especially if it is the wrong type of bread!" -msgstr "" +"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" +" alkaline properties may yet find some use." +msgstr "小石灰石碎片。相當脆弱, 不太可能當作武器, 但它是鹼性的, 可能有些別的用途。" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free waffle" -msgid_plural "gluten free waffles" +#: lang/json/GENERIC_from_json.py +msgid "rock salt" +msgid_plural "rock salt" +msgstr[0] "岩鹽" + +#. ~ Description for {'str_sp': 'rock salt'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of rock salt crystals. Could be refined into table salt." +msgstr "一把岩鹽結晶。可以提煉成食鹽。" + +#: lang/json/GENERIC_from_json.py +msgid "rhodonite" +msgid_plural "rhodonite" +msgstr[0] "薔薇輝石" + +#. ~ Description for {'str_sp': 'rhodonite'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A chunk of rhodonite. It has manganese dioxide covering and going through " +"it in veins, which can be obtained using a chisel." +msgstr "一大塊的薔薇輝石,被二氧化錳覆蓋並穿透紋理,可以使用鑿子來採取。" + +#: lang/json/GENERIC_from_json.py +msgid "zincite" +msgid_plural "zincite" +msgstr[0] "紅鋅礦" + +#. ~ Description for {'str_sp': 'zincite'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " +"reduction with a source of carbon." +msgstr "一大塊鋅礦。可以提煉成氧化鋅,然後透過用炭來還原成鋅。" + +#: lang/json/GENERIC_from_json.py lang/json/ammunition_type_from_json.py +msgid "plutonium" +msgid_plural "plutoniums" msgstr[0] "" -#. ~ Description for gluten free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Gluten free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str': 'plutonium'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Some plutonium. You should probably get very far away from this, if you " +"enjoy not being irradiated." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "lactose free waffle" -msgid_plural "lactose free waffles" -msgstr[0] "" +#: lang/json/GENERIC_from_json.py +msgid "hickory root" +msgid_plural "hickory roots" +msgstr[0] "山核桃根" + +#. ~ Description for {'str': 'hickory root'} +#: lang/json/GENERIC_from_json.py +msgid "A root from a hickory tree. It has an earthy smell." +msgstr "山核桃的根, 帶有泥土的氣味。" + +#: lang/json/GENERIC_from_json.py +msgid "hickory nuts" +msgid_plural "hickory nuts" +msgstr[0] "山核桃堅果" + +#. ~ Description for {'str_sp': 'hickory nuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hickory tree, still in their shell." +msgstr "一把來自山核挑樹的堅果, 仍未去殼。" + +#: lang/json/GENERIC_from_json.py +msgid "pecans" +msgid_plural "pecans" +msgstr[0] "長山核桃" + +#. ~ Description for {'str_sp': 'pecans'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pecan tree, still in their shell." +msgstr "一把來自胡桃樹的堅果, 仍未去殼。" + +#: lang/json/GENERIC_from_json.py +msgid "pistachios" +msgid_plural "pistachios" +msgstr[0] "開心果" + +#. ~ Description for {'str_sp': 'pistachios'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a pistachio tree, still in their shell." +msgstr "一把從阿月渾子樹摘下的硬堅果, 仍未去殼。" + +#: lang/json/GENERIC_from_json.py +msgid "almonds" +msgid_plural "almonds" +msgstr[0] "扁桃仁" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "Lactose free waffle. It's basically a pancake in hashtag form." +#. ~ Description for {'str_sp': 'almonds'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from an almond tree, still in their shell." msgstr "" -#. ~ Description for lactose free waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Gluten free and lactose free waffle. It's basically a pancake in hashtag " -"form." -msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "peanuts" +msgid_plural "peanuts" +msgstr[0] "花生" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free fruit waffle" -msgid_plural "gluten free fruit waffles" -msgstr[0] "" +#. ~ Description for {'str_sp': 'peanuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a peanut bush, still in their shell." +msgstr "一把來自花生灌木的堅果, 仍未去殼。" -#. ~ Description for gluten free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, made " -"sweeter and healthier with the addition of wholesome fruit." -msgstr "蓬鬆可口的無麩質鬆餅淋上了純正的楓糖漿, 成為了甜口味, 另外還加了有益健康的水果。" +#: lang/json/GENERIC_from_json.py +msgid "hazelnuts" +msgid_plural "hazelnuts" +msgstr[0] "榛果" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free lactose free fruit waffle" -msgid_plural "gluten free lactose free fruit waffles" -msgstr[0] "" +#. ~ Description for {'str_sp': 'hazelnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a hazelnut tree, still in their shell." +msgstr "一把來自榛子樹的堅果, 仍未去殼。" -#. ~ Description for gluten free lactose free fruit waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free and lactose free waffles with real maple " -"syrup, made sweeter and healthier with the addition of wholesome fruit." -msgstr "蓬鬆可口的無麩質無乳糖鬆餅淋上了純正的楓糖漿, 成為了甜口味, 另外還加了有益健康的水果。" +#: lang/json/GENERIC_from_json.py +msgid "chestnuts" +msgid_plural "chestnuts" +msgstr[0] "栗子" -#: lang/json/COMESTIBLE_from_json.py -msgid "gluten free chocolate waffle" -msgid_plural "gluten free chocolate waffles" -msgstr[0] "" +#. ~ Description for {'str_sp': 'chestnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a chestnut tree, still in their shell." +msgstr "一把來自栗子樹的堅果, 仍未去殼。" -#. ~ Description for gluten free chocolate waffle -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Crunchy and delicious gluten free waffles with real maple syrup, with " -"delicious chocolate baked right in." -msgstr "剛出爐的既蓬鬆可口並且淋上純正楓糖漿的美味巧克力無麩質鬆餅。" +#: lang/json/GENERIC_from_json.py +msgid "walnuts" +msgid_plural "walnuts" +msgstr[0] "核桃" -#: lang/json/COMESTIBLE_from_json.py -msgid "rice milk" -msgid_plural "rice milk" -msgstr[0] "米漿" +#. ~ Description for {'str_sp': 'walnuts'} +#: lang/json/GENERIC_from_json.py +msgid "A handful of hard nuts from a walnut tree, still in their shell." +msgstr "一把來自胡桃樹的堅果, 仍未去殼。" -#. ~ Description for {'str_sp': 'rice milk'} -#: lang/json/COMESTIBLE_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "steel grille" +msgid_plural "steel grilles" +msgstr[0] "鋼格柵" + +#. ~ Description for {'str': 'steel grille'} +#: lang/json/GENERIC_from_json.py msgid "" -"Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " -"rapidly." -msgstr "" +"This is a metal grille. It can be used as a framework for making a chemical" +" catalyst." +msgstr "這是一個金屬格柵。它可以用作製造化學催化劑的框架。" -#: lang/json/COMESTIBLE_from_json.py -msgid "coconut water" -msgid_plural "coconut water" -msgstr[0] "椰子水" +#: lang/json/GENERIC_from_json.py +msgid "cobalt-60 pellet" +msgid_plural "cobalt-60 pellets" +msgstr[0] "" -#. ~ Description for {'str_sp': 'coconut water'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'cobalt-60 pellet'} +#: lang/json/GENERIC_from_json.py msgid "" -"Coconut milk, with water added to make it go further. Tastes ok though. " -"Spoils rapidly." +"Radioactive material that used to be a part of some nuclear industry " +"equipment. You are yet to find some use for it." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "jarred coconut milk" -msgid_plural "jarred coconut milk" -msgstr[0] "罐裝椰奶" +#: lang/json/GENERIC_from_json.py +msgid "sandbag" +msgid_plural "sandbags" +msgstr[0] "沙包" -#. ~ Description for {'str_sp': 'jarred coconut milk'} -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'sandbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"This deliciously rich coconut cream is a more concentrated, thicker version " -"of the coconut milk." -msgstr "這種美味濃郁的椰子奶油是濃縮、濃稠版的椰奶。" - -#: lang/json/COMESTIBLE_from_json.py -msgid "rice flour" -msgid_plural "rice flour" -msgstr[0] "米麵粉" - -#. ~ Description for {'str_sp': 'rice flour'} -#: lang/json/COMESTIBLE_from_json.py -msgid "This rice flour is useful for baking." -msgstr "這個白色的米麵粉在烘焙時很有用。" +"This is a canvas sack filled with sand. It can be used to construct simple " +"barricades." +msgstr "這是一個裝滿沙子的帆布袋。它可以用來建設簡單的路障。" -#: lang/json/COMESTIBLE_from_json.py -msgid "revival serum" -msgid_plural "revival serums" -msgstr[0] "" +#: lang/json/GENERIC_from_json.py +msgid "earthbag" +msgid_plural "earthbags" +msgstr[0] "土包" -#. ~ Description for revival serum -#: lang/json/COMESTIBLE_from_json.py +#. ~ Description for {'str': 'earthbag'} +#: lang/json/GENERIC_from_json.py msgid "" -"A potent drug, necessary when performing a revival operation on larger " -"animals (including humans). It induces a violent allergic reactions in " -"living organisms, so using it on yourself is a REALLY bad idea." -msgstr "強效的藥物, 對大型動物 (包括人類) 進行心肺復甦術時的必需品。用在活物上會引起劇烈的過敏反應, 因此用在自己身上是一個非常糟糕的主意。" +"This is a canvas sack filled with soil. It can be used to construct simple " +"barricades." +msgstr "這是一個裝滿土壤的帆布袋。它可以用來建設簡單的路障。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "2.5L canteen" msgid_plural "2.5L canteens" msgstr[0] "2.5L 水壺" #. ~ Description for {'str': '2.5L canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "一個有背帶的大型塑膠水壺, 有 2.5 公升的容量。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "30 gallon barrel" msgid_plural "30 gallon barrels" msgstr[0] "30 加侖桶" #. ~ Description for {'str': '30 gallon barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "一個附有上蓋, 可以重新密封的大塑膠桶。" -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" msgid_plural "steel drums (100L)" msgstr[0] "鋼桶 (100公升)" #. ~ Description for {'str': 'steel drum (100L)', 'str_pl': 'steel drums #. (100L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A huge steel barrel with a resealable lid." msgstr "一個附有上蓋, 可以重新密封的大鋼桶。" -#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" msgid_plural "steel drums (200L)" msgstr[0] "鋼桶 (200公升)" #. ~ Description for {'str': 'steel drum (200L)', 'str_pl': 'steel drums #. (200L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "一個附有上蓋, 可以重新密封的巨大鋼桶。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas sack" msgid_plural "canvas sacks" msgstr[0] "帆布袋" #. ~ Description for {'str': 'canvas sack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "一個龐大而堅固的帆布袋。依稀還能聞到泥土與辛勤的汗水味。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "canvas bag" msgid_plural "canvas bags" msgstr[0] "帆布包" #. ~ Description for {'str': 'canvas bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "帆布製的小袋子。看起來挺適合拿來裝乾草藥的。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bag" msgid_plural "plastic bags" msgstr[0] "塑膠袋" #. ~ Description for {'str': 'plastic bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "一個小的塑膠袋子。基本上是垃圾。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "zipper bag" msgid_plural "zipper bags" msgstr[0] "拉鍊袋" #. ~ Description for {'str': 'zipper bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_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 +#: lang/json/GENERIC_from_json.py msgid "body bag" msgid_plural "body bags" msgstr[0] "屍袋" #. ~ Description for {'str': 'body bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large, human size, rectangular bag made of strong plastic, with a zipper " "in the middle. Used to hold a dead body." msgstr "一個人體大小的長方形堅固塑膠袋,中間有一條拉鍊。用來裝屍體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "IV bag" msgid_plural "IV bags" msgstr[0] "" #. ~ Description for {'str': 'IV bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, sealed plastic bag for liquids used in intravenous therapy." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass bottle" msgid_plural "glass bottles" msgstr[0] "玻璃瓶" #. ~ Description for {'str': 'glass bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "一個能重新封口的玻璃瓶, 能裝入 750 毫升的液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic bottle" msgid_plural "plastic bottles" msgstr[0] "塑膠瓶" #. ~ Description for {'str': 'plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "一個有瓶蓋能封口的塑膠瓶, 能裝入 500 毫升的液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condiment bottle" msgid_plural "condiment bottles" msgstr[0] "" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An inverted plastic bottle for condiments. Still sealed from factory, " "preserves content from rot until opened." msgstr "" #. ~ Description for {'str': 'condiment bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An inverted plastic bottle for condiments." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small plastic bottle" msgid_plural "small plastic bottles" msgstr[0] "小塑膠瓶" #. ~ Description for {'str': 'small plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "一個有瓶蓋能封口的塑膠瓶, 能裝入 250 毫升的液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large plastic bottle" msgid_plural "large plastic bottles" msgstr[0] "大塑膠瓶" #. ~ Description for {'str': 'large plastic bottle'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." msgstr "一個 2 公升容量的塑膠瓶, 可以用來裝大量的蘇打水, 或者… 在這種時期… 裝開水吧。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay bowl" msgid_plural "clay bowls" msgstr[0] "陶碗" #. ~ Description for {'str': 'clay bowl'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A clay bowl with a waterproofed hide lid. Can be used as a container or as " "a tool. Holds 250 ml of liquid." msgstr "一個陶碗, 配有防水的皮蓋子。可以當作容器或工具使用。可容納 250 毫升的液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "pack" msgid_plural "packs" msgstr[0] "煙盒" #. ~ Description for {'str': 'pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." msgstr "外科醫生警告: 吸煙引致肺癌、心臟病、肺氣腫, 更有可能影響孕婦。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" msgstr[0] "小型紙盒" #. ~ Description for {'str': 'small cardboard box', 'str_pl': 'small cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "一個小紙盒。大概只能裝一雙鞋的大小。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" msgstr[0] "紙盒" #. ~ Description for {'str': 'cardboard box', 'str_pl': 'cardboard boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A sturdy cardboard box, about the size of a banana box. Great for packing." msgstr "堅固的紙板箱,大小與香蕉盒大小相當。非常適合包裝。" -#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" msgstr[0] "大型紙盒" #. ~ Description for {'str': 'large cardboard box', 'str_pl': 'large cardboard #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A very large cardboard box, the sort children would have loved to hide in, " "when there were still children." msgstr "一個非常大的紙板箱,在還有小孩子的時候,小孩子們喜歡躲在裡面。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "bucket" msgid_plural "buckets" msgstr[0] "水桶" #. ~ Description for {'str': 'bucket'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A galvanized bucket for peanuts, chilled wine, iced beer, lobster, crab " "legs, French fries, animal feed, farm use, tailgating, crafts, planting " @@ -40402,1245 +42142,598 @@ msgstr "" "鍍鋅的桶子, 用於裝花生、冰鎮葡萄酒、冰鎮啤酒、龍蝦、蟹腿、薯條、飼料、養殖場使用、停車場野餐派對、工藝製作、花卉種植、拿著禮品籃、裝水果籃和草藥, " "寬鬆的物品的存儲或作為冰桶。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hydration pack" msgid_plural "hydration packs" msgstr[0] "水袋背包" #. ~ Description for {'str': 'hydration pack'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " "allows the wearer to drink hands-free." msgstr "一個穿戴在背上, 纖薄輕巧的絕緣塑料容器。它有一個大口袋, 還有一個方便用軟管注水的蓋子, 可以讓佩戴者空出雙手喝水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum can" msgid_plural "aluminum cans" msgstr[0] "鋁罐" #. ~ Description for {'str': 'aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "An aluminum can, like what soda comes in." msgstr "一個鋁製罐子, 通常裝過了可樂之類的東西。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened aluminum can" msgid_plural "opened aluminum cans" msgstr[0] "打開的鋁罐" #. ~ Description for {'str': 'opened aluminum can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." msgstr "一個鋁製罐子, 通常裝過了可樂之類的東西。這罐已被開啟而且難以封密。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper carton" msgid_plural "paper cartons" msgstr[0] "" #. ~ Description for {'str': 'paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " It has a threaded cap for easy resealing." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened paper carton" msgid_plural "opened paper cartons" msgstr[0] "" #. ~ Description for {'str': 'opened paper carton'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half gallon carton constructed of a paper, aluminum and plastic laminate." " This one is open and its contents will spoil." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "vacuum-packed bag" msgid_plural "vacuum-packed bags" msgstr[0] "真空包裝袋" #. ~ Description for {'str': 'vacuum-packed bag'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "This is a bag of vacuum-packed food." msgstr "這是一袋真空包裝食品。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small tin can" msgid_plural "small tin cans" msgstr[0] "" #. ~ Description for {'str': 'small tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small tin can, like what tuna comes in." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small opened tin can" msgid_plural "small opened tin cans" msgstr[0] "" #. ~ Description for {'str': 'small opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small tin can, like what tuna comes in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium tin can" msgid_plural "medium tin cans" msgstr[0] "" #. ~ Description for {'str': 'medium tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A medium tin can, like what soup comes in." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "medium opened tin can" msgid_plural "medium opened tin cans" msgstr[0] "" #. ~ Description for {'str': 'medium opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A medium tin can, like what soup comes in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic canteen" msgid_plural "plastic canteens" msgstr[0] "塑膠水壺" #. ~ Description for {'str': 'plastic canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." msgstr "一個軍用水壺, 有 1.5 公升的容量。通常穿在臀部位置。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "thermos" msgid_plural "thermoses" msgstr[0] "保溫瓶" #. ~ Description for {'str': 'thermos', 'str_pl': 'thermoses'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." msgstr "膳魔師牌的真空保溫瓶。專為保溫而設計, 有助於內容物的保溫或保冷。可裝 1 公升的液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay canister" msgid_plural "clay canisters" msgstr[0] "陶罐" #. ~ Description for {'str': 'clay canister'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." msgstr "一個易碎的黏土容器‧可以用來粗製衝擊手榴彈, 或是裝一些液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay hydria" msgid_plural "clay hydrias" msgstr[0] "陶製水罐" #. ~ Description for {'str': 'clay hydria'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "一個容量 15 公升的黏土罐, 附有三個把手便於攜帶與使用。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large clay pot" msgid_plural "large clay pots" msgstr[0] "陶製大甕" #. ~ Description for {'str': 'large clay pot'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky and heavy clay pot with a waterproofed hide lid, meant to store " "water, but can carry other liquids in a pinch." msgstr "一個笨重的陶製大甕, 配有防水的皮蓋子。可用來裝水, 有需要時也可拿來裝其他液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic cup" msgid_plural "plastic cups" msgstr[0] "塑膠杯" #. ~ Description for {'str': 'plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup." msgstr "一個真空成型的小杯。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "opened plastic cup" msgid_plural "opened plastic cups" msgstr[0] "打開的塑膠杯" #. ~ Description for {'str': 'opened plastic cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "一個真空成型的小杯, 基本上是垃圾。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass flask" msgid_plural "glass flasks" msgstr[0] "玻璃燒瓶" #. ~ Description for {'str': 'glass flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "一個 250 毫升的實驗室錐形瓶, 有個橡膠塞子。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "test tube" msgid_plural "test tubes" msgstr[0] "試管" #. ~ Description for {'str': 'test tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "一個 10毫升的實驗室試管, 有個橡膠塞子。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "beaker" msgid_plural "beakers" msgstr[0] "燒杯" #. ~ Description for {'str': 'beaker'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250ml laboratory beaker. Basically a cup with delusions of grandeur." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "graduated cylinder" msgid_plural "graduated cylinders" msgstr[0] "刻度量筒" #. ~ Description for {'str': 'graduated cylinder'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A tall, narrow glass cylinder with precise markings for measuring fluid " "quantities. An important science tool, it is also useful for anal retentive" " chefs." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "microcentrifuge tube" msgid_plural "microcentrifuge tubes" msgstr[0] "微量離心管" #. ~ Description for {'str': 'microcentrifuge tube'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "These plastic tubes, with little built in snap-caps, are a great way to " "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 "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "hip flask" msgid_plural "hip flasks" msgstr[0] "隨身酒壺" #. ~ Description for {'str': 'hip flask'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." msgstr "250 毫升帶有一個鉸鏈螺絲蓋的金屬瓶, 通常用來裝酒的。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "3L glass jar" msgid_plural "3L glass jars" msgstr[0] "3 公升玻璃罐" #. ~ Description for {'str': '3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "有著 3 公升容量的金屬蓋玻璃罐, 多用於罐頭。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed 3L glass jar" msgid_plural "sealed 3L glass jars" msgstr[0] "密封的 3 公升玻璃罐" #. ~ Description for {'str': 'sealed 3L glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." msgstr "有著 3 公升容量的金屬旋蓋玻璃罐, 多用於罐頭。此物品已被密封使內容物免於腐敗。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "glass jar" msgid_plural "glass jars" msgstr[0] "玻璃罐" #. ~ Description for {'str': 'glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "有著 500 毫升容量的金屬蓋玻璃罐, 多用於罐頭。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed glass jar" msgid_plural "sealed glass jars" msgstr[0] "密封的玻璃罐" #. ~ Description for {'str': 'sealed glass jar'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A half-liter glass jar with a metal screw top lid, used for canning. Sealed" " tightly and will preserve the contents from rot (assuming it was sterile " "before sealing)." msgstr "有著 500 毫升容量的金屬旋蓋玻璃罐, 多用於罐頭。此物品已被密封使內容物免於腐敗 (預先消毒過的話)。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic jerrycan" msgid_plural "plastic jerrycans" msgstr[0] "塑膠油桶" #. ~ Description for {'str': 'plastic jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." msgstr "一個龐大的塑料油桶, 主要用來裝燃料, 但是也能用來裝其他液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel jerrycan" msgid_plural "steel jerrycans" msgstr[0] "金屬油桶" #. ~ Description for {'str': 'steel jerrycan'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." msgstr "一個鋼製油桶, 主要用來裝燃料, 但是也能用來裝其他液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "clay jug" msgid_plural "clay jugs" msgstr[0] "陶壺" #. ~ Description for {'str': 'clay jug'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "黏土製的附蓋容器, 能用來盛裝液體。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "gallon jug" msgid_plural "gallon jugs" msgstr[0] "加侖壺" #. ~ Description for {'str': 'gallon jug'} #. ~ Description for TEST gallon jug -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "用在裝牛奶或家用清潔化學藥品的標準塑膠罐。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "aluminum keg" msgid_plural "aluminum kegs" msgstr[0] "鋁桶" #. ~ Description for {'str': 'aluminum keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." msgstr "一個能重複使用的輕巧鋁桶, 通常用來裝啤酒。容量為 50 公升。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "steel keg" msgid_plural "steel kegs" msgstr[0] "鋼桶" #. ~ Description for {'str': 'steel keg'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." msgstr "一個能重複使用的重型鋼桶, 通常用來裝啤酒。容量為 50 公升。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large sealed stomach" msgid_plural "large sealed stomachs" msgstr[0] "密封的大型胃袋" #. ~ Description for {'str': 'large sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." msgstr "一個大型生物的胃袋, 清洗後用線密封。可容納 3 公升的水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (60L)" msgid_plural "metal tanks (60L)" msgstr[0] "鐵製油桶 (60 公升)" #. ~ Description for {'str': 'metal tank (60L)', 'str_pl': 'metal tanks #. (60L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "用來裝液體的大型金屬桶。製作物品時很有用。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "metal tank (2L)" msgid_plural "metal tanks (2L)" msgstr[0] "鐵製油桶 (2 公升)" #. ~ Description for {'str': 'metal tank (2L)', 'str_pl': 'metal tanks (2L)'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "用來裝瓦斯或液體的小型金屬桶。製作物品時很有用。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" msgstr[0] "木水壺" #. ~ Description for {'str': 'wooden canteen'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A water canteen made from wood, secured by metal bands and sealed with wax " "or pitch. Holds 1.5 liters and has a simple carry strap." msgstr "用木頭做的水壺, 用金屬帶固定, 並用蠟或瀝青密封。容量 1.5 公升而且有簡單的便攜帶子。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "sealed stomach" msgid_plural "sealed stomachs" msgstr[0] "密封的胃袋" #. ~ Description for {'str': 'sealed stomach'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." msgstr "一個生物的胃袋, 清洗後用線密封。可容納 1.5 公升的水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "small waterskin" msgid_plural "small waterskins" msgstr[0] "小水袋" #. ~ Description for {'str': 'small waterskin'} #. ~ Description for TEST small waterskin -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." msgstr "一個有背帶的水密小皮水袋, 可容納 1.5 公升的水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "waterskin" msgid_plural "waterskins" msgstr[0] "皮製水袋" #. ~ Description for {'str': 'waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "一個有背帶的水密皮水袋, 可容納 3 公升的水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large waterskin" msgid_plural "large waterskins" msgstr[0] "大水袋" #. ~ Description for {'str': 'large waterskin'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." msgstr "一個有背帶的水密大皮水袋, 可容納 5 公升的水。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "wooden barrel" msgid_plural "wooden barrels" msgstr[0] "木桶" #. ~ Description for {'str': 'wooden barrel'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "Traditionally made of white oak; these vessels are known for delivering " "delicious whiskey to the future. It has a capacity of 100 liters." msgstr "以傳統工藝製造, 這些白橡木酒桶為了未來裝著美味的威士忌酒。它的容量為 100 公升。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "paper wrapper" msgid_plural "paper wrappers" msgstr[0] "包裝紙" #. ~ Description for {'str': 'paper wrapper'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." msgstr "包裝用的紙, 外層有蠟可幫助生火。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py +msgid "wrapper" +msgid_plural "wrappers" +msgstr[0] "" + +#. ~ Description for {'str': 'wrapper'} +#: lang/json/GENERIC_from_json.py +msgid "" +"\"DaiZoom Protein Bar, brought to you by SoyPelusa\" is emblazoned proudly " +"upon this greaseproof wrapper." +msgstr "" + +#: lang/json/GENERIC_from_json.py msgid "styrofoam cup" msgid_plural "styrofoam cups" msgstr[0] "保麗龍杯" #. ~ Description for {'str': 'styrofoam cup'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "一個便宜的一次性杯子, 帶有塑料蓋和吸管。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "plastic tub" msgid_plural "plastic tubs" msgstr[0] "塑膠桶" #. ~ Description for {'str': 'plastic tub'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "一個大的方形塑料桶, 通常用於攜帶冰淇淋。" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "condom" msgid_plural "condoms" msgstr[0] "避孕套" #. ~ Description for {'str': 'condom'} -#: lang/json/CONTAINER_from_json.py +#: 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/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "balloon" msgid_plural "balloons" msgstr[0] "" #. ~ Description for {'str': 'balloon'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "A child's balloon. This could be used as a makeshift water container." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large tin can" msgid_plural "large tin cans" msgstr[0] "大型錫罐" #. ~ Description for {'str': 'large tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. Holds a substantial amount of " "food." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "large opened tin can" msgid_plural "large opened tin cans" msgstr[0] "" #. ~ Description for {'str': 'large opened tin can'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "A large tin can, like what beans come in. This one is opened and can't be " "easily sealed." msgstr "" -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "survival kit box" msgid_plural "survival kit boxes" msgstr[0] "" #. ~ Description for {'str': 'survival kit box', 'str_pl': 'survival kit #. boxes'} -#: lang/json/CONTAINER_from_json.py +#: lang/json/GENERIC_from_json.py msgid "" "An aluminum box that used to contain a small survival kit. Can hold 1 liter" " of liquid." msgstr "裝容小型生存工具組的鋁盒。可容納 1 公升的液體。" -#: lang/json/CONTAINER_from_json.py -msgid "plastic bowl" -msgid_plural "plastic bowls" -msgstr[0] "塑膠碗" - -#. ~ Description for {'str': '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 "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "鋼瓶" - -#. ~ Description for {'str': 'steel bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "一個不銹鋼水瓶, 能裝入 750 毫升的液體。" - -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "折疊式塑膠瓶" - -#. ~ Description for {'str': 'foldable plastic bottle'} -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "一個便於存放的軟性塑膠瓶, 能裝入 500 毫升的液體。" - -#: lang/json/CONTAINER_from_json.py -msgid "blood draw kit" -msgid_plural "blood draw kits" -msgstr[0] "抽血工具" - -#. ~ Description for {'str': 'blood draw kit'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This is a kit for drawing blood, including a test tube for holding the " -"sample. Use this tool to draw blood, either from yourself or from a corpse " -"you are standing on." -msgstr "一套採血用的工具, 包含了保存樣本的試管。用它來採集你自己或是腳下屍體的血液。" - -#: lang/json/CONTAINER_from_json.py -msgid "small metal tank" -msgid_plural "small metal tanks" -msgstr[0] "小金屬油箱" - -#. ~ Description for small metal tank -#: lang/json/CONTAINER_from_json.py -msgid "A small metal tank for holding gas or liquids. Useful for crafting." -msgstr "一個小容量金屬製能裝液體或瓦斯的油桶。製作物品時很有用。" - -#: lang/json/CONTAINER_from_json.py -msgctxt "container" -msgid "basin" -msgid_plural "basins" -msgstr[0] "" - -#. ~ Description for {'ctxt': 'container', 'str': 'basin'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " -"metal. Ideal for collecting water." -msgstr "一個寬而淺的盆,用來盛放液體,用一塊金屬板錘打製成。非常適合收集水。" - -#: lang/json/CONTAINER_from_json.py -msgid "hazardous waste drum" -msgid_plural "hazardous waste drums" -msgstr[0] "危險廢料圓桶" - -#. ~ Description for {'str': 'hazardous waste drum'} -#: lang/json/CONTAINER_from_json.py -msgid "A yellow drum meant for the storage of hazardous substances." -msgstr "一個代表用作存放危險物質的黃色圓桶。" - -#: lang/json/CONTAINER_from_json.py -msgid "garden pot" -msgid_plural "garden pots" -msgstr[0] "花盆" - -#. ~ Description for garden pot -#: lang/json/CONTAINER_from_json.py -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 "用於種植植物的小盆,使其保持在舒適環境以獲得最大產量。它可以種植各種種子。" - -#: lang/json/CONTAINER_from_json.py -msgid "endless flask" -msgid_plural "endless flasks" -msgstr[0] "無盡瓶" - -#. ~ Use action msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "You open the flask and discover it full of sweet, sweet, whiskey!" -msgstr "你打開瓶子,發現裡面充滿了甜美的、甜美的,威士忌!" - -#. ~ Use action not_ready_msg for {'str': 'endless flask'}. -#: lang/json/CONTAINER_from_json.py -msgid "The flask isn't done refilling yet." -msgstr "這瓶子還沒完成續滿。" - -#: lang/json/CONTAINER_from_json.py -msgid "cauldron of purification" -msgid_plural "cauldrons of purification" -msgstr[0] "" - -#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons -#. of purification'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"This cauldron made of demon spider chitin seems to absorb the light. It " -"will hold 16 liters of material and will absorb poisons from it. It may " -"have other properties that require discovery." -msgstr "" - -#: lang/json/CONTAINER_from_json.py -msgid "aluminum foil wrap" -msgid_plural "aluminum foil wraps" -msgstr[0] "鋁箔紙" - -#. ~ Description for aluminum foil wrap -#: lang/json/CONTAINER_from_json.py -msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." -msgstr "皺巴巴的鋁箔片, 用於烹飪和烘焙。" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST gallon jug" -msgid_plural "TEST gallon jugs" -msgstr[0] "" - -#: lang/json/CONTAINER_from_json.py -msgid "TEST small waterskin" -msgid_plural "TEST small waterskins" -msgstr[0] "" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous capsule" -msgid_plural "gelatinous capsules" -msgstr[0] "凝膠蒴" - -#. ~ Description for {'str': 'gelatinous capsule'} -#. ~ Description for {'str': 'gray cocoon'} -#. ~ Description for {'str': 'oozing pod'} -#: lang/json/CONTAINER_from_json.py -msgid "" -"While the blob is very eager to be fed, it's not as enthusiastic about " -"giving up liquids. A few alterations are necessary." -msgstr "雖然這團黏稠物質很渴望進食, 但它並不太會排出液體。還需要進行一些修改。" - -#: lang/json/CONTAINER_from_json.py -msgid "gelatinous tank" -msgid_plural "gelatinous tanks" -msgstr[0] "凝膠罐" - -#: lang/json/CONTAINER_from_json.py -msgid "gray cocoon" -msgid_plural "gray cocoons" -msgstr[0] "灰質繭" - -#: lang/json/CONTAINER_from_json.py -msgid "gray tank" -msgid_plural "gray tanks" -msgstr[0] "灰質罐" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing pod" -msgid_plural "oozing pods" -msgstr[0] "軟泥莢" - -#: lang/json/CONTAINER_from_json.py -msgid "oozing tank" -msgid_plural "oozing tanks" -msgstr[0] "軟泥罐" - -#: lang/json/ENGINE_from_json.py -msgid "internal combustion engine" -msgid_plural "internal combustion engines" -msgstr[0] "" - -#: lang/json/ENGINE_from_json.py -msgid "base diesel engine" -msgid_plural "base diesel engines" -msgstr[0] "" - -#: lang/json/ENGINE_from_json.py -msgid "base gasoline engine" -msgid_plural "base gasoline engines" -msgstr[0] "" - -#: lang/json/ENGINE_from_json.py -msgid "base steam engine" -msgid_plural "base steam engines" -msgstr[0] "" - -#: lang/json/ENGINE_from_json.py -msgid "1-cylinder engine" -msgid_plural "1-cylinder engines" -msgstr[0] "" - -#. ~ Description for {'str': '1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A single-cylinder 4-stroke combustion engine." -msgstr "一個單缸四行程的內燃式引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "large 1-cylinder engine" -msgid_plural "large 1-cylinder engines" -msgstr[0] "" - -#. ~ Description for {'str': 'large 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A powerful high-compression single-cylinder 4-stroke combustion engine." -msgstr "強力的高壓縮單缸四行程的內燃式引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "small 1-cylinder engine" -msgid_plural "small 1-cylinder engines" -msgstr[0] "" - -#. ~ Description for {'str': 'small 1-cylinder engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "一個小型的單汽缸雙行程引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "Inline-4 engine" -msgid_plural "Inline-4 engines" -msgstr[0] "" - -#. ~ Description for {'str': 'Inline-4 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "一個小又有力的四缸內燃式引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "I6 diesel engine" -msgid_plural "I6 diesel engines" -msgstr[0] "" - -#. ~ Description for {'str': 'I6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful straight-6 diesel engine." -msgstr "一個強力的直列式六缸柴油引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "V-twin engine" -msgid_plural "V-twin engines" -msgstr[0] "" - -#. ~ Description for {'str': 'V-twin engine'} -#: lang/json/ENGINE_from_json.py -msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "一個雙缸四行程的內燃式引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "V6 engine" -msgid_plural "V6 engines" -msgstr[0] "" - -#. ~ Description for {'str': 'V6 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder combustion engine." -msgstr "一個強力的六缸內燃式引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "V6 diesel engine" -msgid_plural "V6 diesel engines" -msgstr[0] "" - -#. ~ Description for {'str': 'V6 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 6-cylinder diesel engine." -msgstr "一個強力的六缸內燃式柴油引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "V8 engine" -msgid_plural "V8 engines" -msgstr[0] "" - -#. ~ Description for {'str': 'V8 engine'} -#: lang/json/ENGINE_from_json.py -msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "一個又大又強力的八缸內燃式引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "V8 diesel engine" -msgid_plural "V8 diesel engines" -msgstr[0] "" - -#. ~ Description for {'str': 'V8 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "A powerful 8-cylinder diesel engine." -msgstr "一個又大又強力的八缸內燃式柴油引擎。" - -#: lang/json/ENGINE_from_json.py -msgid "V12 engine" -msgid_plural "V12 engines" -msgstr[0] "" - -#. ~ Description for {'str': 'V12 engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into high end " -"sports cars." -msgstr "一個巨大而無比強力的十二缸內燃式引擎, 通常用於高級跑車。" - -#: lang/json/ENGINE_from_json.py -msgid "V12 diesel engine" -msgid_plural "V12 diesel engines" -msgstr[0] "" - -#. ~ Description for {'str': 'V12 diesel engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive and extremely powerful V12 engine, usually built into heavy " -"trucks." -msgstr "一個巨大而無比強力的十二缸內燃式引擎, 通常用於重型卡車。" - -#: lang/json/ENGINE_from_json.py -msgid "makeshift steam engine" -msgid_plural "makeshift steam engines" -msgstr[0] "" - -#. ~ Description for {'str': 'makeshift steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small, primitive, steam engine. An integrated boiler burns coal to heat " -"water into steam, driving a reciprocating shaft. A condenser recaptures the" -" water, making this a closed cycle system." -msgstr "一台小型且粗糙的蒸汽機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動往復軸。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" - -#: lang/json/ENGINE_from_json.py -msgid "small steam engine" -msgid_plural "small steam engines" -msgstr[0] "" - -#. ~ Description for {'str': 'small steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condenser recaptures the water, " -"making this a closed cycle system." -msgstr "一台小型的蒸汽機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動往復軸。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" - -#: lang/json/ENGINE_from_json.py -msgid "medium steam engine" -msgid_plural "medium steam engines" -msgstr[0] "" - -#. ~ Description for {'str': 'medium steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium-sized steam engine. An integrated boiler burns coal to heat water " -"into steam, driving a reciprocating shaft. A condenser recaptures the " -"water, making this a closed cycle system." -msgstr "" - -#: lang/json/ENGINE_from_json.py -msgid "1350 hp gas turbine engine" -msgid_plural "1350 hp gas turbine engines" -msgstr[0] "" - -#. ~ Description for {'str': '1350 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A gas turbine engine, usually used for military vehicles. Known for its " -"high rate of fuel consumption." -msgstr "氣渦輪機引擎,通常用於軍用車輛。以其高油耗率而聞名。" - -#: lang/json/ENGINE_from_json.py -msgid "1900 hp gas turbine engine" -msgid_plural "1900 hp gas turbine engines" -msgstr[0] "" - -#. ~ Description for {'str': '1900 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large gas turbine engine, usually used for military helicopters. Known " -"for its high rate of fuel consumption." -msgstr "大型氣渦輪機引擎,通常用於軍用直升機。以其高油耗率而聞名。" - -#: lang/json/ENGINE_from_json.py -msgid "6000 hp gas turbine engine" -msgid_plural "6000 hp gas turbine engines" -msgstr[0] "" - -#. ~ Description for {'str': '6000 hp gas turbine engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A massive gas turbine engine, used to power the V-22 Osprey. Known for its " -"high rate of fuel consumption." -msgstr "大型氣渦輪機引擎,用於為 V-22 魚鷹提供動力。以其高油耗率而聞名。" - -#: lang/json/ENGINE_from_json.py -msgid "large steam engine" -msgid_plural "large steam engines" -msgstr[0] "" - -#. ~ Description for {'str': 'large steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "一台大型的蒸汽機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動往復軸。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" - -#: lang/json/ENGINE_from_json.py -msgid "huge steam engine" -msgid_plural "huge steam engines" -msgstr[0] "" - -#. ~ Description for {'str': 'huge steam engine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam engine. An integrated boiler burns coal to heat water into " -"steam, driving a reciprocating shaft. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "一台巨型的蒸汽機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動往復軸。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" - -#: lang/json/ENGINE_from_json.py -msgid "small steam turbine" -msgid_plural "small steam turbines" -msgstr[0] "" - -#. ~ Description for {'str': 'small steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A small steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "一台小型的蒸汽渦輪機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動旋轉渦輪機。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" - -#: lang/json/ENGINE_from_json.py -msgid "medium steam turbine" -msgid_plural "medium steam turbines" -msgstr[0] "" - -#. ~ Description for {'str': 'medium steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A medium sized steam turbine. An integrated boiler burns coal to heat water" -" into steam, driving a spinning turbine. A condensor recaptures the water, " -"making this a closed cycle system." -msgstr "一台中型的蒸汽渦輪機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動旋轉渦輪機。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" - -#: lang/json/ENGINE_from_json.py -msgid "large steam turbine" -msgid_plural "large steam turbines" -msgstr[0] "" - -#. ~ Description for {'str': 'large steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A large steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "一台大型的蒸汽渦輪機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動旋轉渦輪機。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" - -#: lang/json/ENGINE_from_json.py -msgid "huge steam turbine" -msgid_plural "huge steam turbines" -msgstr[0] "" - -#. ~ Description for {'str': 'huge steam turbine'} -#: lang/json/ENGINE_from_json.py -msgid "" -"A huge steam turbine. An integrated boiler burns coal to heat water into " -"steam, driving a spinning turbine. A condensor recaptures the water, making" -" this a closed cycle system." -msgstr "一台巨型的蒸汽渦輪機。一體化的鍋爐藉由燃燒煤炭, 將水加熱成蒸汽, 驅動旋轉渦輪機。冷凝器讓蒸汽化成水, 使其成為一個封閉的循環系統。" - -#: lang/json/GENERIC_from_json.py -msgid "fetid goop" -msgid_plural "fetid goops" -msgstr[0] "" - -#. ~ Description for {'str': 'fetid goop'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A foul smelling goop. It has a disgusting texture and a powerful smell that" -" overrides every other smell around it." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "limestone shard" -msgid_plural "limestone shards" -msgstr[0] "石灰岩碎片" - -#. ~ Description for {'str': 'limestone shard'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A small shard of limestone. Pretty flimsy and not much of a weapon, but its" -" alkaline properties may yet find some use." -msgstr "小石灰石碎片。相當脆弱, 不太可能當作武器, 但它是鹼性的, 可能有些別的用途。" - -#: lang/json/GENERIC_from_json.py -msgid "rock salt" -msgid_plural "rock salt" -msgstr[0] "岩鹽" - -#. ~ Description for {'str_sp': 'rock salt'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of rock salt crystals. Could be refined into table salt." -msgstr "一把岩鹽結晶。可以提煉成食鹽。" - -#: lang/json/GENERIC_from_json.py -msgid "rhodonite" -msgid_plural "rhodonite" -msgstr[0] "薔薇輝石" - -#. ~ Description for {'str_sp': 'rhodonite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of rhodonite. It has manganese dioxide covering and going through " -"it in veins, which can be obtained using a chisel." -msgstr "一大塊的薔薇輝石,被二氧化錳覆蓋並穿透紋理,可以使用鑿子來採取。" - -#: lang/json/GENERIC_from_json.py -msgid "zincite" -msgid_plural "zincite" -msgstr[0] "紅鋅礦" - -#. ~ Description for {'str_sp': 'zincite'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A chunk of zincite. Could be refined into zinc oxide, then into zinc by " -"reduction with a source of carbon." -msgstr "一大塊鋅礦。可以提煉成氧化鋅,然後透過用炭來還原成鋅。" - -#: lang/json/GENERIC_from_json.py -msgid "hickory root" -msgid_plural "hickory roots" -msgstr[0] "山核桃根" - -#. ~ Description for {'str': 'hickory root'} -#: lang/json/GENERIC_from_json.py -msgid "A root from a hickory tree. It has an earthy smell." -msgstr "山核桃的根, 帶有泥土的氣味。" - -#: lang/json/GENERIC_from_json.py -msgid "hickory nuts" -msgid_plural "hickory nuts" -msgstr[0] "山核桃堅果" - -#. ~ Description for {'str_sp': 'hickory nuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hickory tree, still in their shell." -msgstr "一把來自山核挑樹的堅果, 仍未去殼。" - -#: lang/json/GENERIC_from_json.py -msgid "pecans" -msgid_plural "pecans" -msgstr[0] "長山核桃" - -#. ~ Description for {'str_sp': 'pecans'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pecan tree, still in their shell." -msgstr "一把來自胡桃樹的堅果, 仍未去殼。" - -#: lang/json/GENERIC_from_json.py -msgid "pistachios" -msgid_plural "pistachios" -msgstr[0] "開心果" - -#. ~ Description for {'str_sp': 'pistachios'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a pistachio tree, still in their shell." -msgstr "一把從阿月渾子樹摘下的硬堅果, 仍未去殼。" - -#: lang/json/GENERIC_from_json.py -msgid "almonds" -msgid_plural "almonds" -msgstr[0] "扁桃仁" - -#. ~ Description for {'str_sp': 'almonds'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from an almond tree, still in their shell." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "peanuts" -msgid_plural "peanuts" -msgstr[0] "花生" - -#. ~ Description for {'str_sp': 'peanuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a peanut bush, still in their shell." -msgstr "一把來自花生灌木的堅果, 仍未去殼。" - -#: lang/json/GENERIC_from_json.py -msgid "hazelnuts" -msgid_plural "hazelnuts" -msgstr[0] "榛果" - -#. ~ Description for {'str_sp': 'hazelnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a hazelnut tree, still in their shell." -msgstr "一把來自榛子樹的堅果, 仍未去殼。" - -#: lang/json/GENERIC_from_json.py -msgid "chestnuts" -msgid_plural "chestnuts" -msgstr[0] "栗子" - -#. ~ Description for {'str_sp': 'chestnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a chestnut tree, still in their shell." -msgstr "一把來自栗子樹的堅果, 仍未去殼。" - -#: lang/json/GENERIC_from_json.py -msgid "walnuts" -msgid_plural "walnuts" -msgstr[0] "核桃" - -#. ~ Description for {'str_sp': 'walnuts'} -#: lang/json/GENERIC_from_json.py -msgid "A handful of hard nuts from a walnut tree, still in their shell." -msgstr "一把來自胡桃樹的堅果, 仍未去殼。" - -#: lang/json/GENERIC_from_json.py -msgid "steel grille" -msgid_plural "steel grilles" -msgstr[0] "鋼格柵" - -#. ~ Description for {'str': 'steel grille'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a metal grille. It can be used as a framework for making a chemical" -" catalyst." -msgstr "這是一個金屬格柵。它可以用作製造化學催化劑的框架。" - #: lang/json/GENERIC_from_json.py -msgid "cobalt-60 pellet" -msgid_plural "cobalt-60 pellets" +msgid "small cardboard box of tea bags" +msgid_plural "small cardboard boxes of tea bags" msgstr[0] "" -#. ~ Description for {'str': 'cobalt-60 pellet'} +#. ~ Description for {'str': 'small cardboard box of tea bags', 'str_pl': +#. 'small cardboard boxes of tea bags'} #: lang/json/GENERIC_from_json.py -msgid "" -"Radioactive material that used to be a part of some nuclear industry " -"equipment. You are yet to find some use for it." +msgid "A very small cardboard box with tea brand written on it." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "sandbag" -msgid_plural "sandbags" -msgstr[0] "沙包" - -#. ~ Description for {'str': 'sandbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with sand. It can be used to construct simple " -"barricades." -msgstr "這是一個裝滿沙子的帆布袋。它可以用來建設簡單的路障。" - -#: lang/json/GENERIC_from_json.py -msgid "earthbag" -msgid_plural "earthbags" -msgstr[0] "土包" - -#. ~ Description for {'str': 'earthbag'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a canvas sack filled with soil. It can be used to construct simple " -"barricades." -msgstr "這是一個裝滿土壤的帆布袋。它可以用來建設簡單的路障。" - #: lang/json/GENERIC_from_json.py msgid "microwave generator" msgid_plural "microwave generators" @@ -41711,6 +42804,11 @@ msgid "" "didn't know you needed." msgstr "20世紀50年代的算命裝置。為你提供了那些你從未意識到過但此時又十分需要的精神支撐。" +#: lang/json/GENERIC_from_json.py +msgid "deck of cards" +msgid_plural "decks of cards" +msgstr[0] "一副撲克牌" + #. ~ Description for {'str': 'deck of cards', 'str_pl': 'decks of cards'} #: lang/json/GENERIC_from_json.py msgid "A deck of 52 playing cards." @@ -41740,6 +42838,135 @@ msgid "" "like a cleaner, happier version of the person you know." msgstr "一張在露營旅行拍攝的全家福照片。父母其中一個看起來像你認識的人,只是照片中的人比較乾淨也比較開心。" +#: lang/json/GENERIC_from_json.py +msgid "chess set" +msgid_plural "chess sets" +msgstr[0] "國際象棋組" + +#. ~ Description for {'str': 'chess set'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wooden box containing all the equipment needed to play a game of chess." +msgstr "一個木盒子, 裡面裝著玩國際象棋所需的所有東西。" + +#: lang/json/GENERIC_from_json.py +msgid "checkers set" +msgid_plural "checkers sets" +msgstr[0] "西洋跳棋組" + +#. ~ Description for {'str': 'checkers set'} +#: lang/json/GENERIC_from_json.py +msgid "A wooden box containing a set of round tokens used to play checkers." +msgstr "一個木盒子, 裡面有一套用來玩西洋跳棋的圓形棋子。" + +#: lang/json/GENERIC_from_json.py +msgid "deck of Sorcery cards" +msgid_plural "decks of Sorcery cards" +msgstr[0] "一套巫術卡" + +#. ~ Description for {'str': 'deck of Sorcery cards', 'str_pl': 'decks of +#. Sorcery cards'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A set of cards meant to play the game \"Sorcery.\" Each card has a fun " +"picture of a different monster." +msgstr "一套用於玩 \"巫術\" 遊戲的卡片。每張卡片都有不同怪物的有趣圖畫。" + +#: lang/json/GENERIC_from_json.py +msgid "Picturesque" +msgid_plural "sets of Picturesque" +msgstr[0] "" + +#. ~ Description for {'str': 'Picturesque', 'str_pl': 'sets of Picturesque'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where one draws an image, and the others attempt to guess what it is." +msgstr "一個人畫圖, 其他人猜他畫什麼的遊戲。" + +#: lang/json/GENERIC_from_json.py +msgid "Capitalism" +msgid_plural "sets of Capitalism" +msgstr[0] "" + +#. ~ Description for {'str': 'Capitalism', 'str_pl': 'sets of Capitalism'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players traverse around the board buying property and swindling" +" their friends." +msgstr "一套桌遊, 玩家們在遊戲盤上遊轉、購買房產, 和訛詐他們的朋友。" + +#: lang/json/GENERIC_from_json.py +msgid "Blobs and Bandits" +msgid_plural "sets of Blobs and Bandits" +msgstr[0] "" + +#. ~ Description for {'str': 'Blobs and Bandits', 'str_pl': 'sets of Blobs and +#. Bandits'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A roleplaying game set in the post-apocalypse, so you can pretend to survive" +" the apocalypse while surviving the apocalypse." +msgstr "一套桌上角色扮演遊戲, 設定在大災變之後, 讓你模擬在大災變中倖存並活下去。" + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer" +msgid_plural "sets of Battlehammer" +msgstr[0] "" + +#. ~ Description for {'str': 'Battlehammer', 'str_pl': 'sets of Battlehammer'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of fantasy creatures." +msgstr "一款桌上戰棋遊戲, 內含一組奇幻生物的小小公仔。" + +#: lang/json/GENERIC_from_json.py +msgid "Battlehammer 20k" +msgid_plural "sets of Battlehammer 20k" +msgstr[0] "" + +#. ~ Description for {'str': 'Battlehammer 20k', 'str_pl': 'sets of +#. Battlehammer 20k'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game featuring a set of tiny figurines of space aliens and " +"grotesque space marines." +msgstr "一款桌上戰棋遊戲, 內含一組外星人和異空間海軍陸戰隊員的小小公仔。" + +#: lang/json/GENERIC_from_json.py +msgid "Settlers of the Ranch" +msgid_plural "sets of Settlers of the Ranch" +msgstr[0] "" + +#. ~ Description for {'str': 'Settlers of the Ranch', 'str_pl': 'sets of +#. Settlers of the Ranch'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A strategy game where players build settlements and trade for supplies." +msgstr "一個戰略遊戲, 讓玩家們各自建造拓荒營地並交易各種補給品。" + +#: lang/json/GENERIC_from_json.py +msgid "Warships" +msgid_plural "sets of Warships" +msgstr[0] "" + +#. ~ Description for {'str': 'Warships', 'str_pl': 'sets of Warships'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A game where players try to guess where the opponent placed their ships on " +"the board." +msgstr "玩家互猜對手將軍艦放在棋盤上位置的遊戲。" + +#: lang/json/GENERIC_from_json.py +msgid "Murder Mystery" +msgid_plural "sets of Murder Mystery" +msgstr[0] "" + +#. ~ Description for {'str': 'Murder Mystery', 'str_pl': 'sets of Murder +#. Mystery'} +#: lang/json/GENERIC_from_json.py +msgid "A game where players try to figure out who murdered the butler." +msgstr "玩家試圖找出是誰謀殺了管家的遊戲。" + #: lang/json/GENERIC_from_json.py msgid "animal" msgid_plural "none" @@ -42403,7 +43630,6 @@ msgid_plural "broken eyebots" msgstr[0] "損壞的眼球機器人" #. ~ Description for {'str': 'broken eyebot'} -#. ~ Description for broken eyebot #: lang/json/GENERIC_from_json.py msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " @@ -42507,7 +43733,6 @@ msgid_plural "broken miner bots" msgstr[0] "損毀的挖礦機器人" #. ~ Description for {'str': 'broken miner bot'} -#. ~ Description for broken miner bot #: lang/json/GENERIC_from_json.py msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " @@ -42570,8 +43795,6 @@ msgid_plural "broken manhacks" msgstr[0] "損壞的鋸鳥" #. ~ Description for {'str': 'broken manhack'} -#. ~ Description for broken hack -#. ~ Description for broken manhack #: lang/json/GENERIC_from_json.py msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " @@ -42584,7 +43807,6 @@ msgid_plural "broken grenade hacks" msgstr[0] "損壞的手榴彈無人機" #. ~ Description for {'str': 'broken grenade hack'} -#. ~ Description for broken grenade hack #: lang/json/GENERIC_from_json.py msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " @@ -42597,7 +43819,6 @@ msgid_plural "broken mininuke hacks" msgstr[0] "損壞的迷你核彈無人機" #. ~ Description for {'str': 'broken mininuke hack'} -#. ~ Description for broken mininuke hack #: lang/json/GENERIC_from_json.py msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " @@ -42610,7 +43831,6 @@ msgid_plural "broken tear gas hacks" msgstr[0] "損壞的催涙彈無人機" #. ~ Description for {'str': 'broken tear gas hack'} -#. ~ Description for broken tear gas hack #: lang/json/GENERIC_from_json.py msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " @@ -42623,7 +43843,6 @@ msgid_plural "broken EMP hacks" msgstr[0] "損壞的電磁脈衝無人機" #. ~ Description for {'str': 'broken EMP hack'} -#. ~ Description for broken EMP hack #: lang/json/GENERIC_from_json.py msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " @@ -42636,7 +43855,6 @@ msgid_plural "broken flashbang hacks" msgstr[0] "損壞的閃光彈無人機" #. ~ Description for {'str': 'broken flashbang hack'} -#. ~ Description for broken flashbang hack #: lang/json/GENERIC_from_json.py msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " @@ -42649,13 +43867,24 @@ msgid_plural "broken C-4 hacks" msgstr[0] "損壞的C-4 無人機" #. ~ Description for {'str': 'broken C-4 hack'} -#. ~ Description for broken C-4 hack #: lang/json/GENERIC_from_json.py msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " "ground. Could be gutted for parts." msgstr "一台損壞的C-4 無人機。現在它癱瘓於地上, 基本上已經沒有威脅了。可以分解出零件。" +#: lang/json/GENERIC_from_json.py +msgid "broken loudspeaker" +msgid_plural "broken loudspeakers" +msgstr[0] "" + +#. ~ Description for {'str': 'broken loudspeaker'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A broken loudspeaker. It's so unusually quiet now… Could be gutted for " +"parts." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "processor board" msgid_plural "processor boards" @@ -43235,7 +44464,7 @@ msgstr[0] "" #. ~ Description for {'str': 'garnet'} #: lang/json/GENERIC_from_json.py msgid "A sparkling garnet." -msgstr "" +msgstr "一顆閃閃發光的石榴石。" #: lang/json/GENERIC_from_json.py msgid "amethyst" @@ -43245,7 +44474,7 @@ msgstr[0] "" #. ~ Description for {'str': 'amethyst'} #: lang/json/GENERIC_from_json.py msgid "A sparkling amethyst." -msgstr "" +msgstr "一顆閃閃發光的紫水晶。" #: lang/json/GENERIC_from_json.py msgid "aquamarine" @@ -43255,7 +44484,7 @@ msgstr[0] "" #. ~ Description for {'str': 'aquamarine'} #: lang/json/GENERIC_from_json.py msgid "A sparkling aquamarine." -msgstr "" +msgstr "一顆閃閃發光的海藍寶石。" #: lang/json/GENERIC_from_json.py msgid "emerald" @@ -43265,7 +44494,7 @@ msgstr[0] "" #. ~ Description for {'str': 'emerald'} #: lang/json/GENERIC_from_json.py msgid "A sparkling emerald." -msgstr "" +msgstr "一顆閃閃發光的祖母綠。" #: lang/json/GENERIC_from_json.py msgid "alexandrite" @@ -43275,7 +44504,7 @@ msgstr[0] "" #. ~ Description for {'str': 'alexandrite'} #: lang/json/GENERIC_from_json.py msgid "A sparkling alexandrite." -msgstr "" +msgstr "一顆閃閃發光的亞歷山大變石。" #: lang/json/GENERIC_from_json.py msgid "pearl" @@ -43285,7 +44514,7 @@ msgstr[0] "" #. ~ Description for {'str': 'pearl'} #: lang/json/GENERIC_from_json.py msgid "A lustrous pearl." -msgstr "" +msgstr "一顆光彩熠熠的珍珠。" #: lang/json/GENERIC_from_json.py msgid "ruby" @@ -43295,7 +44524,7 @@ msgstr[0] "" #. ~ Description for {'str': 'ruby', 'str_pl': 'rubies'} #: lang/json/GENERIC_from_json.py msgid "A sparkling ruby." -msgstr "" +msgstr "一顆閃閃發光的紅寶石。" #: lang/json/GENERIC_from_json.py msgid "peridot" @@ -43305,7 +44534,7 @@ msgstr[0] "" #. ~ Description for {'str': 'peridot'} #: lang/json/GENERIC_from_json.py msgid "A sparkling peridot." -msgstr "" +msgstr "一顆閃閃發光的貴橄欖石。" #: lang/json/GENERIC_from_json.py msgid "sapphire" @@ -43315,7 +44544,7 @@ msgstr[0] "" #. ~ Description for {'str': 'sapphire'} #: lang/json/GENERIC_from_json.py msgid "A sparkling sapphire." -msgstr "" +msgstr "一顆閃閃發光的藍寶石。" #: lang/json/GENERIC_from_json.py msgid "opal" @@ -43325,7 +44554,7 @@ msgstr[0] "" #. ~ Description for {'str': 'opal'} #: lang/json/GENERIC_from_json.py msgid "A lustrous opal." -msgstr "" +msgstr "一顆光彩熠熠的蛋白石。" #: lang/json/GENERIC_from_json.py msgid "tourmaline" @@ -43335,7 +44564,7 @@ msgstr[0] "" #. ~ Description for {'str': 'tourmaline'} #: lang/json/GENERIC_from_json.py msgid "A sparkling tourmaline." -msgstr "" +msgstr "一顆閃閃發光的碧璽。" #: lang/json/GENERIC_from_json.py msgid "citrine" @@ -43345,7 +44574,7 @@ msgstr[0] "" #. ~ Description for {'str': 'citrine'} #: lang/json/GENERIC_from_json.py msgid "A sparkling citrine." -msgstr "" +msgstr "一顆閃閃發光的黃水晶。" #: lang/json/GENERIC_from_json.py msgid "topaz" @@ -43355,7 +44584,7 @@ msgstr[0] "" #. ~ Description for {'str': 'topaz'} #: lang/json/GENERIC_from_json.py msgid "A sparkling blue topaz." -msgstr "" +msgstr "一顆閃閃發光的藍色托帕石。" #: lang/json/GENERIC_from_json.py msgid "cured hide" @@ -43659,18 +44888,6 @@ msgid "" "stretchable clothing." msgstr "一塊中等大小的氯丁橡膠片。能用於製作輕巧又具彈性的衣物。" -#: lang/json/GENERIC_from_json.py -msgid "TX-5LR Laser Cannon" -msgid_plural "TX-5LR Laser Cannons" -msgstr[0] "TX-5LR 雷射砲" - -#. ~ Description for {'str': 'TX-5LR Laser Cannon'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " -"Unusable as a weapon on its own without the necessary parts." -msgstr "這個雷射砲是從 TX-5LR 地獄犬雷射砲塔拆解下來的。因為缺少其必要的元件, 無法作為武器來使用。" - #: lang/json/GENERIC_from_json.py msgid "light bulb" msgid_plural "light bulbs" @@ -43865,11 +45082,6 @@ msgid "broken M2 autonomous CROWS II" msgid_plural "broken M2 autonomous CROWS II turrets" msgstr[0] "" -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "損毀的雷射砲塔" - #: lang/json/GENERIC_from_json.py msgid "broken secubot" msgid_plural "broken secubots" @@ -44139,11 +45351,6 @@ msgid "" "A tulip bud. Contains some substances commonly produced by a tulip flower." msgstr "鬱金香花苞, 含有一些鬱金香常產生的物質。" -#: lang/json/GENERIC_from_json.py -msgid "spurge" -msgid_plural "spurges" -msgstr[0] "大戟(翡翠塔)屬植物" - #. ~ Description for {'str': 'spurge'} #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." @@ -44342,7 +45549,6 @@ msgid_plural "broken tribots" msgstr[0] "損毀的三足機器人" #. ~ Description for {'str': 'broken tribot'} -#. ~ Description for broken tribot #: lang/json/GENERIC_from_json.py msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" @@ -44446,6 +45652,23 @@ msgid "" "like it could support a reinforcing sheet, either." msgstr "這款太陽能板是尖端科技的產物, 擁有極高的光電轉換效能。但它表面覆蓋的特殊物料非常脆弱, 同時也無法進行強化加固。" +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "損毀的雷射砲塔" + +#: lang/json/GENERIC_from_json.py +msgid "TX-5LR Laser Cannon" +msgid_plural "TX-5LR Laser Cannons" +msgstr[0] "TX-5LR 雷射砲" + +#. ~ Description for {'str': 'TX-5LR Laser Cannon'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A laser cannon stripped from the barrel of a TX-5LR Cerberus laser turret. " +"Unusable as a weapon on its own without the necessary parts." +msgstr "這個雷射砲是從 TX-5LR 地獄犬雷射砲塔拆解下來的。因為缺少其必要的元件, 無法作為武器來使用。" + #: lang/json/GENERIC_from_json.py msgid "module template" msgid_plural "module templates" @@ -44784,6 +46007,11 @@ msgid "" "to salvage and reuse these components without them." msgstr "包含幾家主要製造商多種IC電路規格書的龐大檔案。在對的人手中是極有價值的,因為沒有這些規格說明就沒辦法回收並再利用這些組件。" +#: lang/json/GENERIC_from_json.py +msgid "martial art manual" +msgid_plural "martial art manuals" +msgstr[0] "" + #: lang/json/GENERIC_from_json.py msgid "abstract map" msgid_plural "abstract maps" @@ -45226,11 +46454,6 @@ msgid "" "without shield." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "martial art manual" -msgid_plural "martial art manuals" -msgstr[0] "" - #: lang/json/GENERIC_from_json.py msgid "juvenile sourdough starter" msgid_plural "juvenile sourdough starters" @@ -45304,6 +46527,18 @@ msgid "" "feeling sufficiently ghoulish." msgstr "一根來自生物的骨頭, 能夠用於製作其他有用的物品… 如果你的性格足夠殘忍。" +#: lang/json/GENERIC_from_json.py +msgid "demihuman bone" +msgid_plural "demihuman bones" +msgstr[0] "" + +#. ~ Description for {'str': 'demihuman bone'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A bone from a demihuman being. Could be used to make some stuff, if you're " +"feeling sufficiently ghoulish." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "first aid kit" msgid_plural "first aid kits" @@ -45372,10 +46607,11 @@ msgstr[0] "軍用口糧 - 辣炒豆" #. Beans'} #: lang/json/GENERIC_from_json.py msgid "" -"A 'Meal Ready to Eat' with a chili & beans entree and everything a hungry " -"soldier needs. The contents will begin to rot once they're removed from " -"this sealed bag. Activate or disassemble it to get to its contents." -msgstr "一款裝有辣炒豆的 \"即食\" 軍用口糧, 帶有一個飢腸轆轆的士兵所需要的一切。一旦拆封後內容物將會開始腐敗。啟動或拆解它以取得內容物。" +"A 'Meal Ready to Eat' with a chili & beans entree and everything a " +"vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "MRE - BBQ Beef" @@ -45527,6 +46763,35 @@ msgid "" "from this sealed bag. Activate or disassemble it to get to its contents." msgstr "一款裝有紅醬通心粉的 \"即食\" 軍用口糧, 帶有一個飢腸轆轆的士兵所需要的一切。一旦拆封後內容物將會開始腐敗。啟動或拆解它以取得內容物。" +#: lang/json/GENERIC_from_json.py +msgid "MRE - Spinach Fettuccine" +msgid_plural "MREs - Spinach Fettuccine" +msgstr[0] "" + +#. ~ Description for {'str': 'MRE - Spinach Fettuccine', 'str_pl': 'MREs - +#. Spinach Fettuccine'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a creamy spinach fettuccine entree and everything" +" a vegetarian soldier needs. The contents will begin to rot once they're " +"removed from this sealed bag. Activate or disassemble it to get to its " +"contents." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "MRE - Ratatouille" +msgid_plural "MREs - Ratatouille" +msgstr[0] "" + +#. ~ Description for {'str': 'MRE - Ratatouille', 'str_pl': 'MREs - +#. Ratatouille'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A 'Meal Ready to Eat' with a ratatouille entree and everything a vegetarian " +"soldier needs. The contents will begin to rot once they're removed from " +"this sealed bag. Activate or disassemble it to get to its contents." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" msgid_plural "MREs - Cheese Tortellini" @@ -46861,6 +48126,16 @@ msgid "" "looks almost like glass." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "plastic bowl" +msgid_plural "plastic bowls" +msgstr[0] "塑膠碗" + +#. ~ Description for {'str': 'plastic bowl'} +#: lang/json/GENERIC_from_json.py +msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "kiddie bowl" msgid_plural "kiddie bowls" @@ -47530,6 +48805,18 @@ msgid "" "placed on the ground, this can support one guitar in an upright position." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "plectrum" +msgid_plural "plectra" +msgstr[0] "" + +#. ~ Description for {'str': 'plectrum', 'str_pl': 'plectra'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A flat piece of plastic with a pointed tip, designed for plucking the " +"strings of a guitar or mandolin." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "mixer" msgid_plural "mixers" @@ -48599,6 +49886,7 @@ msgid_plural "pointy sticks" msgstr[0] "尖木棍" #. ~ Description for {'str': 'pointy stick'} +#. ~ Description for {'str': 'test pointy stick'} #: lang/json/GENERIC_from_json.py msgid "A simple wood pole with one end sharpened." msgstr "一隻簡單的木棍, 前端是鋒利的。" @@ -48749,6 +50037,11 @@ msgid "" "slashing and stabbing." msgstr "這是一把結實的鋼柄, 末端帶有劍刃, 無論砍劈或穿刺都很合適。" +#: lang/json/GENERIC_from_json.py +msgid "wooden javelin" +msgid_plural "wooden javelins" +msgstr[0] "木標槍" + #. ~ Description for {'str': 'wooden javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -48756,6 +50049,11 @@ msgid "" "been carved and covered for better grip." msgstr "一根經火烤燒硬, 矛頭被削尖了的木製標槍。握把做了防滑的蝕刻。" +#: lang/json/GENERIC_from_json.py +msgid "iron javelin" +msgid_plural "iron javelins" +msgstr[0] "鐵標槍" + #. ~ Description for {'str': 'iron javelin'} #: lang/json/GENERIC_from_json.py msgid "" @@ -49709,26 +51007,30 @@ msgid "A splintered piece of wood, could be used as a skewer or for kindling." msgstr "一塊木頭碎片, 可以拿來當火種生火或是作串燒。" #: lang/json/GENERIC_from_json.py -msgid "heavy stick" -msgid_plural "heavy sticks" -msgstr[0] "木棍" +msgid "stout branch" +msgid_plural "stout branches" +msgstr[0] "" -#. ~ Description for {'str': 'heavy stick'} +#. ~ Description for {'str': 'stout branch', 'str_pl': 'stout branches'} #: lang/json/GENERIC_from_json.py -msgid "A sturdy, heavy stick. Makes a decent melee weapon." -msgstr "一根堅固的重棒。相當適合作為近戰武器。" +msgid "" +"A respectable length of tree branch, just big enough to wrap your hand " +"around. Makes a decent melee weapon." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "long stick" -msgid_plural "long sticks" -msgstr[0] "長木棍" +msgid "long stout branch" +msgid_plural "long stout branches" +msgstr[0] "" -#. ~ Description for {'str': 'long stick'} +#. ~ Description for {'str': 'long stout branch', 'str_pl': 'long stout +#. branches'} #: lang/json/GENERIC_from_json.py msgid "" -"A long stick. Makes a decent melee weapon, and can be broken into heavy " -"sticks for crafting." -msgstr "一根長的木棍。適合用於作為近戰武器, 而且可以切短為製作物品需用的木棍。" +"A straight section of wood from a tree branch, about eight feet long and a " +"couple of inches in diameter. Makes a decent melee weapon, and can be " +"broken into shorter pieces for crafting." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "long pole" @@ -49748,7 +51050,6 @@ msgid_plural "planks" msgstr[0] "角材" #. ~ Description for {'str': 'plank'} -#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" @@ -49799,6 +51100,26 @@ msgid "" msgstr "" "標準的 4x8 平板木板 - 通常是膠合板,OSB或MDF。又大又重,適用於各種類的建設,但在進行小型項目之前,你可能需要將其切割成適合的尺寸。" +#: lang/json/GENERIC_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "鋼瓶" + +#. ~ Description for {'str': 'steel bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "一個不銹鋼水瓶, 能裝入 750 毫升的液體。" + +#: lang/json/GENERIC_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "折疊式塑膠瓶" + +#. ~ Description for {'str': 'foldable plastic bottle'} +#: lang/json/GENERIC_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "一個便於存放的軟性塑膠瓶, 能裝入 500 毫升的液體。" + #: lang/json/GENERIC_from_json.py msgid "atomic coffee maker" msgid_plural "atomic coffee makers" @@ -50456,6 +51777,19 @@ msgid "" msgstr "" "由核衰變的魔力驅動和低能耗的LED組,這種極其昂貴的小燈將提供十年以上的光線讓你閱讀。它還附有一個可愛卡通熊的蓋子,使它能轉成夜光模式,讓一個超極有錢的小孩不再怕黑。蓋子已經蓋上。使用它來打開蓋子並顯示燈光。" +#: lang/json/GENERIC_from_json.py +msgid "blood draw kit" +msgid_plural "blood draw kits" +msgstr[0] "抽血工具" + +#. ~ Description for {'str': 'blood draw kit'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a kit for drawing blood, including a test tube for holding the " +"sample. Use this tool to draw blood, either from yourself or from a corpse " +"you are standing on." +msgstr "一套採血用的工具, 包含了保存樣本的試管。用它來採集你自己或是腳下屍體的血液。" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" msgid_plural "charcoal kilns" @@ -51107,7 +52441,6 @@ msgid "A set of small monitors. Required to view cameras' output." msgstr "一組小型螢幕。檢視攝影機輸出的畫面時需要用到。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "security camera" msgid_plural "security cameras" msgstr[0] "監視攝影機" @@ -51171,7 +52504,6 @@ msgid_plural "electronics control units" msgstr[0] "電子控制元件" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "drive by wire controls" msgid_plural "sets of drive by wire controls" msgstr[0] "電傳操縱系統" @@ -51741,7 +53073,6 @@ msgid "" msgstr "一個安全裝置, 在倒車的時候會嗶嗶響警告附近的行人, 但到了現在似乎是個壞主意。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "stereo system" msgid_plural "stereo systems" msgstr[0] "立體音響系統" @@ -52053,7 +53384,6 @@ msgid "A leather-covered seat designed to be straddled." msgstr "一個設計成跨坐的皮製座椅。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "solar panel" msgid_plural "solar panels" msgstr[0] "太陽能板" @@ -52080,7 +53410,6 @@ msgid "" msgstr "一個增加了強化玻璃窗框的太陽能板, 能夠保護太陽能電池, 以防殭屍或棒球攻擊。這物品能裝在車輛上。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -#: lang/json/vehicle_part_from_json.py msgid "upgraded solar panel" msgid_plural "upgraded solar panels" msgstr[0] "進階太陽能板" @@ -52547,6 +53876,19 @@ msgid "" "sequences embossed on them and RFID chips inside." msgstr "" +#: lang/json/GENERIC_from_json.py +msgctxt "container" +msgid "basin" +msgid_plural "basins" +msgstr[0] "" + +#. ~ Description for {'ctxt': 'container', 'str': 'basin'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A wide, shallow basin used to hold liquid, hammered from a piece of sheet " +"metal. Ideal for collecting water." +msgstr "一個寬而淺的盆,用來盛放液體,用一塊金屬板錘打製成。非常適合收集水。" + #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" msgid_plural "vehicle refrigerators" @@ -52649,6 +53991,16 @@ msgstr[0] "核燃料顆粒" msgid "A small pellet of fissile material. Handle carefully." msgstr "一小塊裂變材料。小心處理。" +#: lang/json/GENERIC_from_json.py +msgid "hazardous waste drum" +msgid_plural "hazardous waste drums" +msgstr[0] "危險廢料圓桶" + +#. ~ Description for {'str': 'hazardous waste drum'} +#: lang/json/GENERIC_from_json.py +msgid "A yellow drum meant for the storage of hazardous substances." +msgstr "一個代表用作存放危險物質的黃色圓桶。" + #: lang/json/GENERIC_from_json.py msgid "folded atomic butter churn" msgid_plural "folded atomic butter churns" @@ -52687,6 +54039,18 @@ msgid "" "bio-compatibility and durability." msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "hauling space" +msgid_plural "hauling spaces" +msgstr[0] "拖運空間" + +#. ~ Description for {'str': 'hauling space'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A huge metal space used in conjunction with extension of a vehicle's roof to" +" create a very large amount of space for transporting goods." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" msgid_plural "hydraulic gauntlets" @@ -53056,18 +54420,6 @@ msgid "" "parts." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "hauling space" -msgid_plural "hauling spaces" -msgstr[0] "拖運空間" - -#. ~ Description for {'str': 'hauling space'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A huge metal space used in conjunction with extension of a vehicle's roof to" -" create a very large amount of space for transporting goods." -msgstr "" - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "ultralight frame" msgid_plural "ultralight frames" @@ -53090,6 +54442,79 @@ msgid "" "camera station, steering tools, and electronics controls." msgstr "軍用車輛上大型的複雜駕駛控制站,包括攝影監控系統、轉向工具與電子控制元件。" +#: lang/json/GENERIC_from_json.py +msgid "vehicle shelving" +msgid_plural "vehicle shelvings" +msgstr[0] "" + +#. ~ Description for {'str': 'vehicle shelving'} +#: lang/json/GENERIC_from_json.py +msgid "" +"Several heavy frames retrofitted to be installed together which are " +"outfitted with tie-downs and attachment points gallore for carrying an " +"extended amount of cargo." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "solar array" +msgid_plural "solar arrays" +msgstr[0] "太陽能板陣列" + +#. ~ Description for {'str': 'solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three solar panels set on a chassis rising above one " +"another on a metal pole with rudimentary tracking and motors. Due to the " +"flimsy nature of the hydraulics and high surface area profile to maximize " +"sunlight, they can't really be installed onto an existing vehicle. Requires" +" a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "reinforced solar array" +msgid_plural "reinforced solar arrays" +msgstr[0] "" + +#. ~ Description for {'str': 'reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three reinforced solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded solar array" +msgid_plural "upgraded solar arrays" +msgstr[0] "進階太陽能板陣列" + +#. ~ Description for {'str': 'upgraded solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded solar panels set on a chassis rising " +"above one another on a metal pole with rudimentary tracking and motors. Due" +" to the flimsy nature of the hydraulics and high surface area profile to " +"maximize sunlight, they can't really be installed onto an existing vehicle." +" Requires a jumper cable or similar to pull power from." +msgstr "" + +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "upgraded reinforced solar array" +msgid_plural "upgraded reinforced solar arrays" +msgstr[0] "進階強化太陽能板陣列" + +#. ~ Description for {'str': 'upgraded reinforced solar array'} +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "" +"A vertical array of three upgraded reinforced solar panels set on a chassis " +"rising above one another on a metal pole with rudimentary tracking and " +"motors. Due to the flimsy nature of the hydraulics and high surface area " +"profile to maximize sunlight, they can't really be installed onto an " +"existing vehicle. Requires a jumper cable or similar to pull power from." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" msgid_plural "withered plant bundles" @@ -53105,21 +54530,45 @@ msgid "CRIT hatchet" msgid_plural "CRIT hatchets" msgstr[0] "CRIT 手斧" +#. ~ Use action msg for CRIT hatchet. +#: lang/json/GENERIC_from_json.py +msgid "You extend your hatchet" +msgstr "" + #. ~ Description for CRIT hatchet #: lang/json/GENERIC_from_json.py msgid "" "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " -"weapon, and is useful both for chopping things and for use as a hammer." +"weapon, and is useful both for chopping things and for use as a hammer when " +"extended." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T Blade-work manual" -msgid_plural "C.R.I.T Blade-work manuals" -msgstr[0] "C.R.I.T 近戰刀術" +msgid "CRIT axe" +msgid_plural "CRIT axes" +msgstr[0] "" -#. ~ Description for {'str': 'C.R.I.T Blade-work manual'} +#. ~ Use action msg for CRIT axe. #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T Blade-work." +msgid "You collapse your axe" +msgstr "" + +#. ~ Description for CRIT axe +#: lang/json/GENERIC_from_json.py +msgid "" +"An incredibly sharp, heavy duty, full length axe. Makes a heavy-hitting " +"melee weapon, and is useful both for chopping things and for use as a hammer" +" when extended." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "CRIT Blade-work manual" +msgid_plural "CRIT Blade-work manuals" +msgstr[0] "" + +#. ~ Description for CRIT Blade-work manual +#: lang/json/GENERIC_from_json.py +msgid "An advanced military manual on CRIT Blade-work." msgstr "" #: lang/json/GENERIC_from_json.py @@ -53133,13 +54582,13 @@ msgid "An advanced military manual on C.R.I.T Enforcer melee." msgstr "" #: lang/json/GENERIC_from_json.py -msgid "C.R.I.T CQB manual" -msgid_plural "C.R.I.T CQB manuals" -msgstr[0] "C.R.I.T 近戰格鬥術" +msgid "CRIT CQB manual" +msgid_plural "CRIT CQB manuals" +msgstr[0] "" -#. ~ Description for {'str': 'C.R.I.T CQB manual'} +#. ~ Description for {'str': 'CRIT CQB manual'} #: lang/json/GENERIC_from_json.py -msgid "An advanced military manual on C.R.I.T general CQB." +msgid "An advanced military manual on CRIT general CQB." msgstr "" #: lang/json/GENERIC_from_json.py @@ -53244,16 +54693,6 @@ msgid "" "upgraded panel. Useful for a vehicle." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "6.54x42mm casing" -msgid_plural "6.54x42mm casings" -msgstr[0] "6.54x42mm 彈殼" - -#. ~ Description for 6.54x42mm casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a 6.54x42 round." -msgstr "一個空的 6.54x42 子彈殼。" - #: lang/json/GENERIC_from_json.py msgid "tiny pistol casing" msgid_plural "tiny pistol casings" @@ -53362,464 +54801,36 @@ msgid_plural "broken rifle TALON UGVs" msgstr[0] "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (growing)" -msgid_plural "garden pots (growing)" +msgid "Scorching Sirocco" +msgid_plural "Scorching Sirocco" msgstr[0] "" -#. ~ Description for {'str': 'garden pot (growing)', 'str_pl': 'garden pots -#. (growing)'} +#. ~ Description for {'str_sp': 'Scorching Sirocco'} #: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot growing some tasty, unnameable plants. You shouldn't see this " -"item." -msgstr "園藝花盆裡種植一些美味的,不可名狀的成長中的植物。你不應該看到這個物件。" +msgid "This book contains the teaching of the Desert Wind discipline." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "garden pot (grown)" -msgid_plural "garden pots (grown)" +msgid "Perfect Clarity of Mind and Body" +msgid_plural "Perfect Clarity of Mind and Body" msgstr[0] "" -#. ~ Description for {'str': 'garden pot (grown)', 'str_pl': 'garden pots -#. (grown)'} +#. ~ Description for {'str_sp': 'Perfect Clarity of Mind and Body'} #: lang/json/GENERIC_from_json.py -msgid "" -"A garden pot with some ripe, unnameable plants. You shouldn't see this " -"item." -msgstr "一個帶有一些成熟,無名植物的園藝花盆。你不應該看到這個物件。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing tomato)" -msgid_plural "garden pots (growing tomatoes)" -msgstr[0] "園藝花盆(成長中的番茄)" - -#. ~ Use action msg for {'str': 'garden pot (growing tomato)', 'str_pl': -#. 'garden pots (growing tomatoes)'}. -#: lang/json/GENERIC_from_json.py -msgid "The tomatoes are ready to harvest!" -msgstr "可以收成番茄囉!" - -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing tomato)', -#. 'str_pl': 'garden pots (growing tomatoes)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing wheat)', -#. 'str_pl': 'garden pots (growing wheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing hops)', -#. 'str_pl': 'garden pots (growing hops)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing buckwheat)', -#. 'str_pl': 'garden pots (growing buckwheat)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing broccoli)', -#. 'str_pl': 'garden pots (growing broccoli)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing oats)', -#. 'str_pl': 'garden pots (growing oats)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing barley)', -#. 'str_pl': 'garden pots (growing barley)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing carrot)', -#. 'str_pl': 'garden pots (growing carrots)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cotton)', -#. 'str_pl': 'garden pots (growing cotton)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cabbage)', -#. 'str_pl': 'garden pots (growing cabbage)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing cucumber)', -#. 'str_pl': 'garden pots (growing cucumber)'}. -#. ~ Use action not_ready_msg for {'str': 'garden pot (growing garlic)', -#. 'str_pl': 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "It isn't done growing yet." -msgstr "這還沒完全長成。" - -#. ~ Description for {'str': 'garden pot (growing tomato)', 'str_pl': 'garden -#. pots (growing tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing tomatoes. Once ripe, it can be activated to " -"prepare them for harvest." -msgstr "這是一個園藝花盆,種著成長中的番茄。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe tomato)" -msgid_plural "garden pots (ripe tomatoes)" -msgstr[0] "園藝花盆(成熟的番茄)" - -#. ~ Description for {'str': 'garden pot (ripe tomato)', 'str_pl': 'garden -#. pots (ripe tomatoes)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with a ripe tomato plant. Disassemble to retrieve the " -"tasty 'matos." -msgstr "園藝花盆種著成熟的番茄。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing wheat)" -msgid_plural "garden pots (growing wheat)" -msgstr[0] "園藝花盆(成長中的小麥)" - -#. ~ Use action msg for {'str': 'garden pot (growing wheat)', 'str_pl': -#. 'garden pots (growing wheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The wheat is ready to harvest!" -msgstr "小麥可以收割了!" - -#. ~ Description for {'str': 'garden pot (growing wheat)', 'str_pl': 'garden -#. pots (growing wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing wheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的小麥。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe wheat)" -msgid_plural "garden pots (ripe wheat)" -msgstr[0] "園藝花盆(成熟的小麥)" - -#. ~ Description for {'str': 'garden pot (ripe wheat)', 'str_pl': 'garden pots -#. (ripe wheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot with wheat ready to harvest. Disassemble to retrieve " -"it." -msgstr "這個園藝花盆種了成熟的小麥。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing hops)" -msgid_plural "garden pots (growing hops)" -msgstr[0] "園藝花盆(成長中的啤酒花)" - -#. ~ Use action msg for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'}. -#: lang/json/GENERIC_from_json.py -msgid "The hops are ready to harvest!" -msgstr "可以收成啤酒花囉!" - -#. ~ Description for {'str': 'garden pot (growing hops)', 'str_pl': 'garden -#. pots (growing hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing hops. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的啤酒花。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe hops)" -msgid_plural "garden pots (ripe hops)" -msgstr[0] "園藝花盆(成熟的啤酒花)" - -#. ~ Description for {'str': 'garden pot (ripe hops)', 'str_pl': 'garden pots -#. (ripe hops)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing blooming hops flowers. Disassemble to " -"harvest them." -msgstr "園藝花盆種著成熟的啤酒花。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing buckwheat)" -msgid_plural "garden pots (growing buckwheat)" -msgstr[0] "園藝花盆(成長中的蕎麥)" - -#. ~ Use action msg for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'}. -#: lang/json/GENERIC_from_json.py -msgid "The buckwheat is ready to harvest!" -msgstr "可以收成蕎麥囉!" - -#. ~ Description for {'str': 'garden pot (growing buckwheat)', 'str_pl': -#. 'garden pots (growing buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing buckwheat. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的蕎麥。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe buckwheat)" -msgid_plural "garden pots (ripe buckwheat)" -msgstr[0] "園藝花盆(成熟的蕎麥)" - -#. ~ Description for {'str': 'garden pot (ripe buckwheat)', 'str_pl': 'garden -#. pots (ripe buckwheat)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe buckwheat stalks. Disassemble to " -"harvest them." -msgstr "園藝花盆種著成熟的蕎麥。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing broccoli)" -msgid_plural "garden pots (growing broccoli)" -msgstr[0] "園藝花盆(成長中的花椰菜)" - -#. ~ Use action msg for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'}. -#: lang/json/GENERIC_from_json.py -msgid "The broccoli is ready to harvest!" -msgstr "可以收成花椰菜囉!" - -#. ~ Description for {'str': 'garden pot (growing broccoli)', 'str_pl': -#. 'garden pots (growing broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing broccoli. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的花椰菜。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe broccoli)" -msgid_plural "garden pots (ripe broccoli)" -msgstr[0] "園藝花盆(成熟的花椰菜)" - -#. ~ Description for {'str': 'garden pot (ripe broccoli)', 'str_pl': 'garden -#. pots (ripe broccoli)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some fully-grown broccoli. Disassemble to " -"harvest it." -msgstr "園藝花盆種著成熟的花椰菜。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing oats)" -msgid_plural "garden pots (growing oats)" -msgstr[0] "園藝花盆(成長中的燕麥)" - -#. ~ Use action msg for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'}. -#: lang/json/GENERIC_from_json.py -msgid "The oats are ready to harvest!" -msgstr "可以收成燕麥囉!" - -#. ~ Description for {'str': 'garden pot (growing oats)', 'str_pl': 'garden -#. pots (growing oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing oats. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的燕麥。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe oats)" -msgid_plural "garden pots (ripe oats)" -msgstr[0] "園藝花盆(成熟的燕麥)" - -#. ~ Description for {'str': 'garden pot (ripe oats)', 'str_pl': 'garden pots -#. (ripe oats)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some golden, fully-grown oats. Disassemble " -"to harvest them." -msgstr "園藝花盆種著金黃色、成熟的燕麥。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing barley)" -msgid_plural "garden pots (growing barley)" -msgstr[0] "園藝花盆(成長中的大麥)" - -#. ~ Use action msg for {'str': 'garden pot (growing barley)', 'str_pl': -#. 'garden pots (growing barley)'}. -#: lang/json/GENERIC_from_json.py -msgid "Barley is ready to harvest!" -msgstr "可以收成大麥囉!" - -#. ~ Description for {'str': 'garden pot (growing barley)', 'str_pl': 'garden -#. pots (growing barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing barley. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的大麥。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe barley)" -msgid_plural "garden pots (ripe barley)" -msgstr[0] "園藝花盆(成熟的大麥)" - -#. ~ Description for {'str': 'garden pot (ripe barley)', 'str_pl': 'garden -#. pots (ripe barley)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ready-to-harvest barley. Disassemble " -"to harvest it." -msgstr "園藝花盆種著成熟的大麥。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing carrot)" -msgid_plural "garden pots (growing carrots)" -msgstr[0] "園藝花盆(成長中的紅蘿蔔)" - -#. ~ Use action msg for {'str': 'garden pot (growing carrot)', 'str_pl': -#. 'garden pots (growing carrots)'}. -#: lang/json/GENERIC_from_json.py -msgid "The carrots are ready to harvest!" -msgstr "可以收成紅蘿蔔囉!" - -#. ~ Description for {'str': 'garden pot (growing carrot)', 'str_pl': 'garden -#. pots (growing carrots)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing carrots. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的紅蘿蔔。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe carrot)" -msgid_plural "garden pots (ripe carrot)" -msgstr[0] "園藝花盆(成熟的紅蘿蔔)" - -#. ~ Description for {'str': 'garden pot (ripe carrot)', 'str_pl': 'garden -#. pots (ripe carrot)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing some ripe carrots. Disassemble to harvest " -"them. Store away from rabbits." -msgstr "園藝花盆種著成熟的紅蘿蔔。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cotton)" -msgid_plural "garden pots (growing cotton)" -msgstr[0] "園藝花盆(成長中的棉花)" - -#. ~ Use action msg for {'str': 'garden pot (growing cotton)', 'str_pl': -#. 'garden pots (growing cotton)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cotton is ready to harvest!" -msgstr "可以收成棉花囉!" - -#. ~ Description for {'str': 'garden pot (growing cotton)', 'str_pl': 'garden -#. pots (growing cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cotton. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的棉花。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cotton)" -msgid_plural "garden pots (ripe cotton)" -msgstr[0] "園藝花盆(成熟的棉花)" - -#. ~ Description for {'str': 'garden pot (ripe cotton)', 'str_pl': 'garden -#. pots (ripe cotton)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing white, fluffy cotton bolls ready for the " -"loom. Disassemble to pluck them." -msgstr "園藝花盆種著成熟的棉花。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cabbage)" -msgid_plural "garden pots (growing cabbage)" -msgstr[0] "園藝花盆(成長中的捲心菜)" - -#. ~ Use action msg for {'str': 'garden pot (growing cabbage)', 'str_pl': -#. 'garden pots (growing cabbage)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cabbages are ready to harvest!" -msgstr "可以收成捲心菜囉!" - -#. ~ Description for {'str': 'garden pot (growing cabbage)', 'str_pl': 'garden -#. pots (growing cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cabbage. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的捲心菜。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cabbage)" -msgid_plural "garden pots (ripe cabbage)" -msgstr[0] "園藝花盆(成熟的捲心菜)" - -#. ~ Description for {'str': 'garden pot (ripe cabbage)', 'str_pl': 'garden -#. pots (ripe cabbage)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing a big cabbage leaf. Disassemble to harvest " -"it." -msgstr "園藝花盆種著成熟的捲心菜。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing cucumber)" -msgid_plural "garden pots (growing cucumber)" -msgstr[0] "園藝花盆(成長中的黃瓜)" - -#. ~ Use action msg for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'}. -#: lang/json/GENERIC_from_json.py -msgid "The cucumbers are ready to harvest!" -msgstr "可以收成黃瓜囉!" - -#. ~ Description for {'str': 'garden pot (growing cucumber)', 'str_pl': -#. 'garden pots (growing cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing cucumber. Once ripe, it can be activated to " -"prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的黃瓜。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe cucumber)" -msgid_plural "garden pots (ripe cucumber)" -msgstr[0] "園藝花盆(成熟的黃瓜)" - -#. ~ Description for {'str': 'garden pot (ripe cucumber)', 'str_pl': 'garden -#. pots (ripe cucumber)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing ripe cucumbers. Disassemble to harvest " -"them." -msgstr "園藝花盆種著成熟的黃瓜。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (growing garlic)" -msgid_plural "garden pots (growing garlic)" -msgstr[0] "園藝花盆(成長中的大蒜)" - -#. ~ Use action msg for {'str': 'garden pot (growing garlic)', 'str_pl': -#. 'garden pots (growing garlic)'}. -#: lang/json/GENERIC_from_json.py -msgid "The garlic is ready to harvest!" -msgstr "可以收成大蒜囉!" - -#. ~ Description for {'str': 'garden pot (growing garlic)', 'str_pl': 'garden -#. pots (growing garlic)'} -#: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot growing garlic bulbs. Once ripe, it can be activated " -"to prepare it for harvest." -msgstr "這是一個園藝花盆,種著成長中的大蒜。一旦成熟,它可以被啟動以準備收穫。" - -#: lang/json/GENERIC_from_json.py -msgid "garden pot (ripe garlic)" -msgid_plural "garden pots (ripe garlic)" -msgstr[0] "園藝花盆(成熟的大蒜)" +msgid "This book contains the teaching of the Diamond Mind discipline." +msgstr "" -#. ~ Description for {'str': 'garden pot (ripe garlic)', 'str_pl': 'garden -#. pots (ripe garlic)'} #: lang/json/GENERIC_from_json.py -msgid "" -"This is a garden pot containing pungent garlic bulbs. Disassemble to " -"harvest them, or wave it at vampires to scare them." -msgstr "園藝花盆種著成熟的大蒜。按下'拆解'鍵來收割。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "roadheader" -msgid_plural "roadheaders" -msgstr[0] "鑽掘機" +msgid "The Book of Mudora" +msgid_plural "The Book of Mudora" +msgstr[0] "" -#. ~ Description for roadheader +#. ~ Description for {'str_sp': 'The Book of Mudora'} #: lang/json/GENERIC_from_json.py msgid "" -"A large and heavy jagged metalhead with a lot of spikes for destroying mine " -"walls." -msgstr "大型沉重的鋸齒狀金屬頭,上面有許多用來破壞礦井壁的尖刺。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "Balancer" -msgid_plural "Balancers" -msgstr[0] "平衡桿" - -#. ~ Description for Balancer -#: lang/json/GENERIC_from_json.py -msgid "A large and heavy metal bar for balancing a vehicle." -msgstr "大型沉重的金屬桿,用於平衡車輛。" +"A collection of ancient Hylian lore and stories. A section on historic " +"battles is bookmarked." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Life and Work of Tiger Sauer" @@ -54088,6 +55099,48 @@ msgid "" "smashed for iron." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "lesser dimensional bag" +msgid_plural "lesser dimensional bags" +msgstr[0] "" + +#. ~ Description for {'str': 'lesser dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a bag that can contain more than it should. The bag magically " +"reduces the weight of its contents and expands less than the amount of stuff" +" you put into it. It takes a few words and hand-waving to take an item out." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "dimensional bag" +msgid_plural "dimensional bags" +msgstr[0] "" + +#: lang/json/GENERIC_from_json.py +msgid "greater dimensional bag" +msgid_plural "greater dimensional bags" +msgstr[0] "" + +#. ~ Description for {'str': 'greater dimensional bag'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This dimensional bag has reached the limits of human innovation with a " +"combination of manufacturing and magical secrets." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "supergravity preservation box" +msgid_plural "supergravity preservation boxs" +msgstr[0] "" + +#. ~ Description for {'str': 'supergravity preservation box'} +#: lang/json/GENERIC_from_json.py +msgid "" +"A box that uses gravity magic to preserve food. It makes the box much " +"heavier, but anything in it lasts far longer and you can store more." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "lesser staff of the magi" msgid_plural "lesser staves of the magi" @@ -54675,6 +55728,21 @@ msgid "" "tips from retracting while in staff configuration. Activate to extend." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "endless flask" +msgid_plural "endless flasks" +msgstr[0] "無盡瓶" + +#. ~ Use action msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "You open the flask and discover it full of sweet, sweet, whiskey!" +msgstr "你打開瓶子,發現裡面充滿了甜美的、甜美的,威士忌!" + +#. ~ Use action not_ready_msg for {'str': 'endless flask'}. +#: lang/json/GENERIC_from_json.py +msgid "The flask isn't done refilling yet." +msgstr "這瓶子還沒完成續滿。" + #: lang/json/GENERIC_from_json.py msgid "magic token" msgid_plural "magic tokens" @@ -55030,7 +56098,7 @@ msgid "" "the edge is impeccable." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py msgid "Laevateinn" msgid_plural "Laevateinns" msgstr[0] "勝利之劍" @@ -56146,12 +57214,12 @@ msgid "" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "Scroll of Overcharge" -msgid_plural "Scrolls of Overcharge" +msgid "Scroll of Optical Sneeze Beam" +msgid_plural "Scrolls of Optical Sneeze Beam" msgstr[0] "" -#. ~ Description for {'str': 'Scroll of Overcharge', 'str_pl': 'Scrolls of -#. Overcharge'} +#. ~ Description for {'str': 'Scroll of Optical Sneeze Beam', 'str_pl': +#. 'Scrolls of Optical Sneeze Beam'} #: lang/json/GENERIC_from_json.py msgid "" "You overcharge your internal batteries to send a semi-directed beam from " @@ -56664,6 +57732,32 @@ msgid "" "hopes to discover a more permanent solution." msgstr "人類是唯一尋求改善自己的生物。本研究考察了可以暫時提升各種感官的不同法術,希望能找到更持久的解決方案。" +#: lang/json/GENERIC_from_json.py +msgid "cauldron of purification" +msgid_plural "cauldrons of purification" +msgstr[0] "" + +#. ~ Description for {'str': 'cauldron of purification', 'str_pl': 'cauldrons +#. of purification'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This cauldron made of demon spider chitin seems to absorb the light. It " +"will hold 16 liters of material and will absorb poisons from it. It may " +"have other properties that require discovery." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "orichalcum cauldron" +msgid_plural "orichalcum cauldrons" +msgstr[0] "" + +#. ~ Description for {'str': 'orichalcum cauldron'} +#: lang/json/GENERIC_from_json.py +msgid "" +"This is an alchemical cauldron made of orichalcum. The metal is especially " +"resistant to the unique types of corrosion caused by alchemy." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "fireproof mortar" msgid_plural "fireproof mortar" @@ -56738,1110 +57832,52 @@ msgid "" "much more expensive." msgstr "" -#. ~ Description for broken turret #: lang/json/GENERIC_from_json.py -msgid "" -"A broken turret. Much less threatening now that it lies limp on solid " -"ground. Could be gutted for parts." -msgstr "一台損毀的砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken military turret" -msgid_plural "broken military turrets" -msgstr[0] "損毀的軍用砲塔" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced turret" -msgid_plural "broken advanced turrets" -msgstr[0] "損毀的先進砲塔" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense turret" -msgid_plural "broken defense turrets" -msgstr[0] "損毀的防禦砲塔" - -#. ~ Description for broken defense turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "一台損毀的防禦砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#. ~ Description for broken military turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military turret. Much less threatening now that it lies limp on " -"solid ground. Could be gutted for parts." -msgstr "一台損毀的軍用砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#. ~ Description for broken advanced turret -#. ~ Description for broken 9mm turret -#. ~ Description for broken riotcontrol turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken 9mm defense turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "一台損毀的9mm防禦砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 9mm turret" -msgid_plural "broken 9mm turrets" -msgstr[0] "損毀的9mm砲塔" - -#. ~ Description for broken 9mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken shotgun defense turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的霰彈槍防禦砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#. ~ Description for broken riot control turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken riot control turret. Much less threatening now that it lies limp " -"on solid ground. Could be gutted for parts." -msgstr "一台損毀的鎮暴砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol turret" -msgid_plural "broken riotcontrol turrets" -msgstr[0] "損壞的鎮暴砲塔" - -#: lang/json/GENERIC_from_json.py -msgid "broken 5.56mm turret" -msgid_plural "broken 5.56mm turrets" -msgstr[0] "損毀的5.56mm砲塔" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5.56mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的軍規5.56mm砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 7.62mm turret" -msgid_plural "broken 7.62mm turrets" -msgstr[0] "損毀的7.62mm砲塔" - -#. ~ Description for broken 7.62mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 7.62mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的軍規7.62mm砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 50cal turret" -msgid_plural "broken 50cal turrets" -msgstr[0] "損毀的50口徑砲塔" - -#. ~ Description for broken 50cal turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 50 caliber turret. Much less threatening now that " -"it lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的軍規50口徑砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 40mm turret" -msgid_plural "broken 40mm turrets" -msgstr[0] "損毀的40mm榴彈砲塔" - -#. ~ Description for broken 40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 40mm grenade turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的軍規40mm榴彈砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#. ~ Description for broken 5.56mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 5x50 flechette turret. Much less threatening now " -"that it lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的軍規5x50鋼標彈砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken 8x40mm turret" -msgid_plural "broken 8x40mm turrets" -msgstr[0] "損毀的8x40mm砲塔" - -#. ~ Description for broken 8x40mm turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade 8x40mm turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的軍規8x40mm砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken flamethrower turret" -msgid_plural "broken flamethrower turrets" -msgstr[0] "損毀的火焰噴射器砲塔" - -#. ~ Description for broken flamethrower turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military-grade flamethrower turret. Much less threatening now that" -" it lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的軍規火焰噴射器砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#. ~ Description for broken laser turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced laser emitter turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的先進雷射發射器砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken acid turret" -msgid_plural "broken acid turrets" -msgstr[0] "損毀的酸液砲塔" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid thrower turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的先進酸液發射器砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken plasma turret" -msgid_plural "broken plasma turrets" -msgstr[0] "損毀的電漿砲塔" - -#. ~ Description for broken plasma turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced plasma ejector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的先進電漿發射器砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken rail gun turret" -msgid_plural "broken rail gun turrets" -msgstr[0] "損毀的軌道砲塔" - -#. ~ Description for broken rail gun turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced rail gun turret. Much less threatening now that it lies " -"limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的先進軌道砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#. ~ Description for broken acid turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced acid projector turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的先進酸液發射器砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken electro turret" -msgid_plural "broken electro turrets" -msgstr[0] "損毀的電擊砲塔" - -#. ~ Description for broken electro turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced electro caster turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的先進電流發射器砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken EMP turret" -msgid_plural "broken EMP turrets" -msgstr[0] "損毀的電磁脈衝砲塔" - -#. ~ Description for broken EMP turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced EMP generator turret. Much less threatening now that it " -"lies limp on solid ground. Could be gutted for parts." -msgstr "一台損毀的先進電磁脈衝發射器砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken gaurdin gnome" -msgid_plural "broken gaurdin gnomes" -msgstr[0] "損毀的花園地精" - -#. ~ Description for broken gaurdin gnome -#: lang/json/GENERIC_from_json.py -msgid "A broken and completely harmless garden gnome." -msgstr "一個損毀的而完全無害的花園地精。" - -#: lang/json/GENERIC_from_json.py -msgid "broken hack" -msgid_plural "broken hacks" -msgstr[0] "損毀的無人機" - -#. ~ Description for broken eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot, now dark and motionless. Could be stripped down for parts." -msgstr "一台損毀的眼球機器人。 現在它很安靜、 死氣沉沉。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed eyebot" -msgid_plural "broken disarmed eyebots" -msgstr[0] "損毀的解除武裝眼球機器人" - -#. ~ Description for broken disarmed eyebot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken eyebot. Its integrated weapon module has been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "一隻損毀的眼球機器人,內建武器模塊已被移除。可以拆解出零件或製成回收的機器人。" - -#: lang/json/GENERIC_from_json.py -msgid "broken utility robot" -msgid_plural "broken utility robots" -msgstr[0] "損毀的輔助機器人" - -#. ~ Description for broken utility robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken utility robot, now limp and unmoving. Could be gutted for parts or" -" crafted into a salvaged robot." -msgstr "一隻損毀的輔助機器人,它現在很安靜、死氣沉沉。可以拆解出零件或製成回收的機器人。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed skitterbot" -msgid_plural "broken disarmed skitterbots" -msgstr[0] "損毀的解除武裝掠行機器人" - -#. ~ Description for broken disarmed skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot. Its internal weapon modules have been removed. Could " -"be gutted for parts or crafted into a salvaged robot." -msgstr "" - -#. ~ Description for broken skitterbot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken skitterbot, now harmless and inert. Could be stripped of integral " -"weapon modules." -msgstr "一台損毀的掠行機器人。 現在它很安靜、 死氣沉沉。可以分解出內置武器模組。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed defense bot" -msgid_plural "broken disarmed defense bots" -msgstr[0] "損毀的解除武裝防衛機器人" - -#. ~ Description for broken disarmed defense bot -#. ~ Description for broken security robot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken security robot -#. ~ Description for broken defense bot -#. ~ Description for broken riotcontrol robot -#. ~ Description for broken disarmed military bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken defense robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken security robot" -msgid_plural "broken security robots" -msgstr[0] "損毀的警衛機器人" - -#: lang/json/GENERIC_from_json.py -msgid "broken riotcontrol robot" -msgid_plural "broken riotcontrol robots" -msgstr[0] "損壞的鎮暴機器人" - -#: lang/json/GENERIC_from_json.py -msgid "broken chickenwalker" -msgid_plural "broken chickenwalkers" -msgstr[0] "損毀的雙足步行機器人" - -#. ~ Description for broken chickenwalker -#: lang/json/GENERIC_from_json.py -msgid "A broken chickenwalker. Could be stripped for parts." -msgstr "一台損毀的雙足步行機器人。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed chickenwalker" -msgid_plural "broken disarmed chickenwalkers" -msgstr[0] "損毀的解除武裝雙足步行機器人" +msgid "TEST plank" +msgid_plural "TEST planks" +msgstr[0] "" -#. ~ Description for broken disarmed chickenwalker +#. ~ Description for TEST plank #: lang/json/GENERIC_from_json.py msgid "" -"A broken chickenwalker. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional" +" lumber. Makes a decent melee weapon, and can be used for all kinds of " +"construction." msgstr "" -#. ~ Description for broken tank drone -#: lang/json/GENERIC_from_json.py -msgid "A broken tank drone. Could be stripped down for parts." -msgstr "一台損毀的無人戰車。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed tank drone" -msgid_plural "broken disarmed tank drones" -msgstr[0] "損毀的解除武裝無人戰車" - -#. ~ Description for broken disarmed tank drone -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken tank drone. Could be gutted for parts or recrafted into a salvaged" -" robot." -msgstr "一隻損毀的無人戰車,內建武器模塊已被移除。可以拆解出零件或製成回收的機器人。" - -#: lang/json/GENERIC_from_json.py -msgid "robot component" -msgid_plural "robot components" -msgstr[0] "機器人零件" - -#. ~ Description for robot component -#: lang/json/GENERIC_from_json.py -msgid "" -"A component for turrets and robots. It is unuseable in its current state." -msgstr "砲塔和機器人的零件。它在目前的狀態下是不可用的。" - -#: lang/json/GENERIC_from_json.py -msgid "integral microreactor" -msgid_plural "integral microreactors" -msgstr[0] "內置微型反應爐" - -#. ~ Description for integral microreactor -#: lang/json/GENERIC_from_json.py -msgid "A compact fusion reactor used to power a robot's energy weapons." -msgstr "緊湊型聚變反應堆,用於為機器人的能量武器提供動力。" - -#: lang/json/GENERIC_from_json.py -msgid "integral flash gun" -msgid_plural "integral flash guns" -msgstr[0] "內置閃光槍" - -#: lang/json/GENERIC_from_json.py -msgid "integral tazer" -msgid_plural "integral tazers" -msgstr[0] "內置電擊槍" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 9mm firearm" -msgid_plural "integral 9mm firearms" -msgstr[0] "內置9mm武器" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 5.56mm firearm" -msgid_plural "integral 5.56mm firearms" -msgstr[0] "內置5.56mm槍械" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral 7.62mm firearm" -msgid_plural "integral 7.62mm firearms" -msgstr[0] "內置7.62mm槍械" - -#: lang/json/GENERIC_from_json.py -msgid "integral shotgun" -msgid_plural "integral shotguns" -msgstr[0] "內置霰彈槍" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral beanbag launcher" -msgid_plural "integral beanbag launchers" -msgstr[0] "內置豆袋發射器" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral teargas launcher" -msgid_plural "integral teargas launchers" -msgstr[0] "內置催淚瓦斯發射器" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py -msgid "integral flamethrower" -msgid_plural "integral flamethrowers" -msgstr[0] "內置火焰噴射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral flechette firearm" -msgid_plural "integral flechette firearms" -msgstr[0] "內置鋼標彈槍械" - -#: lang/json/GENERIC_from_json.py -msgid "integral 8x40mm firearm" -msgid_plural "integral 8x40mm firearms" -msgstr[0] "內置8x40mm槍械" - -#: lang/json/GENERIC_from_json.py -msgid "integral 50 caliber firearm" -msgid_plural "integral 50 caliber firearms" -msgstr[0] "內置50口徑槍械" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral grenade launcher" -msgid_plural "integral grenade launchers" -msgstr[0] "內置榴彈發射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral laser weapon" -msgid_plural "integral laser weapons" -msgstr[0] "內置雷射武器" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral plasma ejector" -msgid_plural "integral plasma ejectors" -msgstr[0] "內置電漿發射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral electromagnetic railgun" -msgid_plural "integral electromagnetic railguns" -msgstr[0] "內置電磁軌道炮" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral acid thrower" -msgid_plural "integral acid throwers" -msgstr[0] "內置酸液發射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral electro caster" -msgid_plural "integral electro casters" -msgstr[0] "內置電擊發射器" - -#: lang/json/GENERIC_from_json.py -msgid "integral EMP projector" -msgid_plural "integral EMP projectors" -msgstr[0] "內置電磁脈衝發射器" - -#. ~ Description for Mjölnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Mjölnir, the hammer of Thor. It is rumored to be able to level" -" mountains with a single blow. It is decorated with gold and silver " -"ornaments." -msgstr "雷神之錘, 雷神武器的複製品。傳說僅僅一擊就能夷平山脈。武器上有金銀裝飾。" - -#. ~ Description for Gungnir -#: lang/json/GENERIC_from_json.py -msgid "" -"A replica of Gungnir, the spear of Odin. It is rumored to be the perfect " -"spear, perfectly hitting any target regardless of the wielder's strength or " -"skill. It is decorated with gold and silver ornaments." -msgstr "昆古尼爾(永恆之槍)的複製品,北歐主神奧丁的長矛。傳說中它是完美的,無論持有者的力量或技能如何,必定擊中目標。裝飾有金銀飾品。" - -#: lang/json/GENERIC_from_json.py -msgid "broken light auto armor" -msgid_plural "broken light auto armors" -msgstr[0] "損毀的輕型自動裝甲" - -#. ~ Description for broken light auto armor -#. ~ Description for broken basic auto armor -#. ~ Description for broken heavy auto armor #: lang/json/GENERIC_from_json.py -msgid "" -"A broken set of power armor fitted with an AI core for automated use. It " -"cannot be worn or disassembled until re-crafted into an undamaged robot." -msgstr "一套損毀的動力裝甲,配有人工智慧核心,可自主行動。在重新製作成未損壞的機器人之前,它不能被穿或拆解。" - -#: lang/json/GENERIC_from_json.py -msgid "broken basic auto armor" -msgid_plural "broken basic auto armors" -msgstr[0] "損毀的基本型自動裝甲" - -#: lang/json/GENERIC_from_json.py -msgid "broken heavy auto armor" -msgid_plural "broken heavy auto armors" -msgstr[0] "損毀的重型自動裝甲" - -#: lang/json/GENERIC_from_json.py -msgid "dead craftbuddy" -msgid_plural "dead craftbuddies" +msgid "TEST pipe" +msgid_plural "TEST pipes" msgstr[0] "" -#. ~ Description for {'str': 'dead craftbuddy', 'str_pl': 'dead craftbuddies'} #: lang/json/GENERIC_from_json.py -msgid "" -"A broken repair robot, now limp and unmoving. Could be gutted for parts or " -"re-crafted into a functioning pal." -msgstr "一隻損毀的修理機器人,它現在很安靜、死氣沉沉。可以拆解出零件或製成製作幫手。" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating lantern" -msgid_plural "broken floating lanterns" -msgstr[0] "損毀的懸浮燈籠" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating lantern, now dark and motionless. Could be gutted for " -"parts." -msgstr "一台損毀的懸浮燈籠。 現在它黯淡無光、 死氣沉沉。可以分解出零件。" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "A broken arson hack, now cold and burnt. Could be gutted for parts." -msgstr "一台損毀的縱火無人機。 現在它冰冷且燃盡。可以分解出零件。" - -#. ~ Description for broken floating lantern -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken distract-o-hack, now silent and still. Could be gutted for parts." -msgstr "一台損毀的誘餌無人機。 現在它沉默且靜止。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken spore hack" -msgid_plural "broken spore hacks" -msgstr[0] "損毀的孢子無人機" - -#. ~ Description for broken spore hack -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken spore hack. Much less threatening now that it lies quiet on solid " -"ground. Could be gutted for parts." -msgstr "一台損毀的孢子無人機。現在它癱瘓於地上,基本上已經沒有威脅了。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken watercannon turret" -msgid_plural "broken watercannon turrets" -msgstr[0] "損毀的水砲砲塔" - -#. ~ Description for broken watercannon turret -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken watercannon turret. Much less threatening now that it lies limp on" -" solid ground. Could be gutted for parts." -msgstr "一台損毀的水砲砲塔, 基本上已經沒有威脅了, 現在它癱瘓於堅實的地板上。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating heater" -msgid_plural "broken floating heaters" -msgstr[0] "損毀的懸浮加熱器" - -#. ~ Description for broken floating heater -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating heater, now cold and motionless. Could be stripped down " -"or re-crafted." -msgstr "一個損毀的懸浮加熱器,現在又冷又安靜,可以拆下來或重新製作" - -#: lang/json/GENERIC_from_json.py -msgid "broken floating furnace" -msgid_plural "broken floating furnaces" -msgstr[0] "損毀的懸浮爐" - -#. ~ Description for broken floating furnace -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken floating furnace, now cold and motionless. Could bestripped down " -"or re-crafted." -msgstr "一個損毀的懸浮爐,現在又冷又安靜,可以拆解或重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken burning eye" -msgid_plural "broken burning eyes" -msgstr[0] "損毀的燃燒之眼" - -#. ~ Description for broken burning eye -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken burning eye, now dark and motionless. Could be stripped down or " -"re-crafted." -msgstr "一個損毀的燃燒之眼,現在又冷又安靜,可以拆解或重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken butler-bot" -msgid_plural "broken butler-bots" -msgstr[0] "損毀的管家機器人" - -#. ~ Description for broken butler-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken butler-bot, now silent and mangled. Could be stripped down for " -"parts." -msgstr "一台損毀的管家機器人。 現在它沉默且破損。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken construction robot" -msgid_plural "broken construction robots" -msgstr[0] "損毀的建造機器人" - -#. ~ Description for broken construction robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken construction robot, now wrecked and immobile. Could be stripped " -"down for parts." -msgstr "一台損毀的建造機器人。 現在它被擊毀而無法行動。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken firefighter robot" -msgid_plural "broken firefighter robots" -msgstr[0] "損毀的消防員機器人" - -#. ~ Description for broken firefighter robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken firefighter robot, now cold and inert. Could be stripped down for " -"parts." -msgstr "一台損毀的消防員機器人。 現在它冰冷且毫無活力。可以分解出零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken blob breeder" -msgid_plural "broken blob breeders" -msgstr[0] "損毀的黏球怪飼養器" - -#. ~ Description for broken blob breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien blobs. Could be stripped down or re-" -"crafted." -msgstr "一個損毀的機械化異形黏球怪恆溫箱。可以拆解或重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken slime breeder" -msgid_plural "broken slime breeders" -msgstr[0] "損毀的黏液飼養器" - -#. ~ Description for broken slime breeder -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken robotic incubator for alien slimes. Could be stripped down or re-" -"crafted." -msgstr "一個損毀的機械化異形黏液恆溫箱。可以拆解或重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken digestron" -msgid_plural "broken digestrons" +msgid "TEST sheet metal" +msgid_plural "TEST sheet metals" msgstr[0] "" -#. ~ Description for broken digestron -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken acid digestor robot, now cold and unmoving. Could be stripped down" -" or re-crafted." -msgstr "這是一個烹飪機器人,現在又冷又安靜。可以拆解或重新制作" - -#: lang/json/GENERIC_from_json.py -msgid "broken bee-bot" -msgid_plural "broken bee-bots" -msgstr[0] "損毀的蜜蜂機器人" - -#. ~ Description for broken bee-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken beehive robot, now still and bee-less. Could be stripped down or " -"re-crafted." -msgstr "這是一個毀損的蜂箱機器人,現在蜜蜂已經都離開了。可以拆解或又重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken medical bot" -msgid_plural "broken medical bots" -msgstr[0] "損毀的醫療機器人" - -#. ~ Description for broken medical bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot, now crumpled and inert. Could be stripped down for " -"parts." -msgstr "這是一台損毀的醫療機器人,現在它一動也不動,可以從身上拆下零件。" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed medical robot" -msgid_plural "broken disarmed medical robots" -msgstr[0] "損毀的解除武裝醫療機器人" - -#. ~ Description for broken disarmed medical robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken medical robot. Its onboard pharma-crafter and integral surgical " -"tools have been removed. Could be gutted for parts or crafted into a " -"salvaged robot." -msgstr "一隻損毀的醫療機器人,車載製藥機及內置手術工具已被移除。可以拆解出零件或製成回收的機器人。" - #: lang/json/GENERIC_from_json.py -msgid "broken assassin robot" -msgid_plural "broken assassin robots" -msgstr[0] "損毀的暗殺機器人" - -#. ~ Description for broken assassin robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken assassin robot, now limp and immobile. Could be stripped down or " -"re-crafted." -msgstr "一台損毀的暗殺機器人。 現在它被癱軟而無法行動。可以分解出零件或重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken elixirator" -msgid_plural "broken elixirators" +msgid "TEST gallon jug" +msgid_plural "TEST gallon jugs" msgstr[0] "" -#. ~ Description for broken elixirator -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken elixirator, now shattered and lifeless. Could be stripped down or " -"re-crafted." -msgstr "這是一個損毀的煉藥機器人,現在破碎又毫無生氣。可以拆解或又重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken party bot" -msgid_plural "broken party bots" -msgstr[0] "損毀的派對機器人" - -#. ~ Description for broken party bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken party robot, now wasted and burnt out. Looks like the party's " -"over. Could be stripped down or re-crafted." -msgstr "這是一個派對機器人,現在破敗又安靜,看來派對結束了。可以拆解或重新制作" - -#: lang/json/GENERIC_from_json.py -msgid "broken insane cyborg" -msgid_plural "broken insane cyborgs" -msgstr[0] "損毀的發瘋生化人" - -#. ~ Description for broken insane cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be gutted for parts or " -"crafted into a salvaged robot." -msgstr "一隻損毀的生化人,它現在很安靜、死氣沉沉。可以拆解出零件或製成回收的機器人。" - -#: lang/json/GENERIC_from_json.py -msgid "broken necrotic cyborg" -msgid_plural "broken necrotic cyborgs" -msgstr[0] "損毀的壞死生化人" - -#. ~ Description for broken necrotic cyborg -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken cyborg, now limp and unmoving. Could be stripped down or re-" -"crafted into a salvaged robot." -msgstr "一隻損毀的生化人,它現在很安靜、死氣沉沉。可以拆解出零件或製成回收的機器人。" - -#: lang/json/GENERIC_from_json.py -msgid "broken rat snatcher" -msgid_plural "broken rat snatchers" -msgstr[0] "損毀的捕鼠者" - -#. ~ Description for broken rat snatcher -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken rat snatcher, now harmless and inert. Could be stripped down or " -"re-crafted." -msgstr "一個損毀的捕鼠者,現在無害又安靜,可以拆解或重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken grab-bot" -msgid_plural "broken grab-bots" -msgstr[0] "損毀的抓鉤機器人" - -#. ~ Description for broken grab-bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken grabber robot, now limp and nonthreatening. Could be stripped down" -" or re-crafted." -msgstr "一台損毀的抓鉤機器人。 現在它癱軟而無威脅性。可以分解出零件或重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken pest hunter" -msgid_plural "broken pest hunters" -msgstr[0] "損毀的害蟲獵手" - -#. ~ Description for broken pest hunter -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken pest hunter, now harmless and inert. Could be gutted for parts or " -"re-crafted." -msgstr "一個損毀的害蟲獵手,現在無害又安靜,可以拆下來或重新製作" - -#: lang/json/GENERIC_from_json.py -msgid "broken defense bot" -msgid_plural "broken defense bots" -msgstr[0] "損毀的防禦機器人" - -#: lang/json/GENERIC_from_json.py -msgid "broken junkyard cowboy" -msgid_plural "broken junkyard cowboys" -msgstr[0] "損毀的垃圾場牛仔" - -#. ~ Description for broken junkyard cowboy -#. ~ Description for broken shortcircuit samurai -#. ~ Description for broken slapdash paladin -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken shortcircuit samurai" -msgid_plural "broken shortcircuit samurais" -msgstr[0] "損毀的秀斗武士" - -#: lang/json/GENERIC_from_json.py -msgid "broken slapdash paladin" -msgid_plural "broken slapdash paladins" -msgstr[0] "損毀的速成聖騎士" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed military bot" -msgid_plural "broken disarmed military bots" -msgstr[0] "損毀的解除武裝軍用機器人" - -#: lang/json/GENERIC_from_json.py -msgid "broken military trainer robot" -msgid_plural "broken military trainer robots" -msgstr[0] "損毀的軍用訓練者機器人" - -#. ~ Description for broken military trainer robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military trainer robot, shattered and inert. This one is armed " -"with an integrated paintball gun. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military robot" -msgid_plural "broken military robots" -msgstr[0] "損毀的軍用機器人" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 5.56mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 7.62mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 50 caliber firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 8x40mm firearm. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flechette gun. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken military robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated 40mm grenade launcher. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken military flame robot" -msgid_plural "broken military flame robots" -msgstr[0] "損毀的軍用火焰機器人" - -#. ~ Description for broken military flame robot #: lang/json/GENERIC_from_json.py -msgid "" -"A broken military robot, shattered and inert. This one is armed with an " -"integrated flamethrower. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-guardian" -msgid_plural "broken robo-guardians" -msgstr[0] "損毀的機械守衛" - -#. ~ Description for broken robo-guardian -#. ~ Description for broken robo-protector -#. ~ Description for broken robo-defender -#. ~ Description for {'str': 'broken glittering lady', 'str_pl': 'broken -#. glittering ladies'} -#. ~ Description for broken bitter spinster -#. ~ Description for broken fist king -#. ~ Description for broken atomic sultan -#: lang/json/GENERIC_from_json.py -msgid "A broken salvaged robot. Could be stripped or recrafted." -msgstr "一台損毀的回收的機器人。 可以分解出零件或重新製作。" - -#: lang/json/GENERIC_from_json.py -msgid "broken robote deluxe" -msgid_plural "broken robote deluxes" -msgstr[0] "損毀的豪華機器人" - -#. ~ Description for broken robote deluxe -#: lang/json/GENERIC_from_json.py -msgid "A broken deluxe robot. Could be stripped or recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-protector" -msgid_plural "broken robo-protectors" -msgstr[0] "損毀的機器保衛者" - -#: lang/json/GENERIC_from_json.py -msgid "broken robo-defender" -msgid_plural "broken robo-defenders" -msgstr[0] "損毀的機械防禦者" - -#: lang/json/GENERIC_from_json.py -msgid "broken disarmed advanced bot" -msgid_plural "broken disarmed advanced bots" -msgstr[0] "損毀的解除武裝先進機器人" - -#. ~ Description for broken disarmed advanced bot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. Its internal weapons have been removed. Could be " -"gutted for parts or crafted into a salvaged robot." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken advanced robot" -msgid_plural "broken advanced robots" -msgstr[0] "損毀的先進機器人" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated laser-" -"emitter. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated plasma-" -"ejector. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated electro-" -"caster. Could be stripped for parts." -msgstr "" - -#. ~ Description for broken advanced robot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken advanced robot. This one is armed with an integrated EMP " -"projector. Could be stripped for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken glittering lady" -msgid_plural "broken glittering ladies" +msgid "TEST small waterskin" +msgid_plural "TEST small waterskins" msgstr[0] "" #: lang/json/GENERIC_from_json.py -msgid "broken bitter spinster" -msgid_plural "broken bitter spinsters" -msgstr[0] "損毀的苦澀敗犬" - -#: lang/json/GENERIC_from_json.py -msgid "broken chainsaw horror" -msgid_plural "broken chainsaw horrors" -msgstr[0] "損毀的恐怖電鋸" - -#. ~ Description for broken chainsaw horror -#. ~ Description for broken screeching terror -#. ~ Description for broken hooked nightmare -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken salvaged robot. Thank God it's finally dead. Could be stripped or" -" recrafted." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken screeching terror" -msgid_plural "broken screeching terrors" -msgstr[0] "損毀的尖銳恐懼" - -#: lang/json/GENERIC_from_json.py -msgid "broken hooked nightmare" -msgid_plural "broken hooked nightmares" -msgstr[0] "損毀的沉醉夢魘" - -#: lang/json/GENERIC_from_json.py -msgid "broken fist king" -msgid_plural "broken fist kings" -msgstr[0] "損毀的拳王" - -#: lang/json/GENERIC_from_json.py -msgid "broken atomic sultan" -msgid_plural "broken atomic sultans" -msgstr[0] "損毀的原子蘇丹" - -#. ~ Description for AI core -#: lang/json/GENERIC_from_json.py -msgid "A computer module for controlling robots." -msgstr "一種用於控制機器人的電子腦模組。" - -#: lang/json/GENERIC_from_json.py -msgid "surgery module" -msgid_plural "surgery modules" -msgstr[0] "手術模組" - -#. ~ Description for surgery module -#: lang/json/GENERIC_from_json.py -msgid "A microsurgery module for a medical robot." -msgstr "用於醫療機器人的微創手術模組。" - -#: lang/json/GENERIC_from_json.py -msgid "pharmaceutical module" -msgid_plural "pharmaceutical modules" -msgstr[0] "製藥模組" - -#. ~ Description for pharmaceutical module -#: lang/json/GENERIC_from_json.py -msgid "A pharmaceutical fabricating module for a medical robot." -msgstr "一種用於醫療機器人的藥物製造模組。" - -#: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py -msgid "integral paintball gun" -msgid_plural "integral paintball guns" -msgstr[0] "內置漆彈槍" - -#. ~ Description for integral paintball gun -#: lang/json/GENERIC_from_json.py -msgid "" -"A high-powered paintball module used for safely testing robots or training " -"soldiers." -msgstr "用於安全測試機器人或訓練機器人的高強度漆彈槍模組。" - -#: lang/json/GENERIC_from_json.py -msgid "robot carrier" -msgid_plural "robot carriers" -msgstr[0] "機器人載貨架" - -#. ~ Description for robot carrier -#: lang/json/GENERIC_from_json.py -msgid "" -"A heavy frame outfitted with tie-downs and attachment points for carrying " -"cargo, with additional railings to keep a large machine in place. It is " -"meant to hold large drones and robots for transport. Use it on a suitable " -"robot to capture, use it on an empty tile to release." -msgstr "" -"重型框架配有繫繩及連接點,用於搬運貨物,安裝有額外的欄杆以保持大型貨物穩定。顯然是專門針對大型無人機和機器人運輸而設計。在合適的機器人上啟動它來捕獲,在空格上啟動它來釋放。" - -#: lang/json/GENERIC_from_json.py -msgid "TEST plank" -msgid_plural "TEST planks" +msgid "test balloon" +msgid_plural "test balloons" msgstr[0] "" +#. ~ Description for {'str': 'test balloon'} #: lang/json/GENERIC_from_json.py -msgid "TEST pipe" -msgid_plural "TEST pipes" -msgstr[0] "" +msgid "Stretchy, watertight, and airtight - the perfect trial balloon." +msgstr "" #: lang/json/GENERIC_from_json.py -msgid "TEST sheet metal" -msgid_plural "TEST sheet metals" +msgid "test pointy stick" +msgid_plural "test pointy sticks" msgstr[0] "" #: lang/json/GENERIC_from_json.py @@ -57875,176 +57911,47 @@ msgid "A well-balanced sword for test purposes" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "a large artillery casing" -msgid_plural "large artillery casings" -msgstr[0] "大型火砲彈殼" - -#: lang/json/GENERIC_from_json.py -msgid "30x113mm autocannon belt linkage" -msgid_plural "30x113mm autocannon belt linkages" -msgstr[0] "30x113mm 機砲鏈帶" - -#: lang/json/GENERIC_from_json.py -msgid "30mm canister" -msgid_plural "30mm canisters" -msgstr[0] "30mm 榴彈殼" - -#. ~ Description for 30mm canister -#: lang/json/GENERIC_from_json.py -msgid "A canister from a spent 30mm shell." -msgstr "一個 30mm 榴彈發射後留下的彈殼。" - -#: lang/json/GENERIC_from_json.py -msgid "120mm canister" -msgid_plural "120mm canisters" -msgstr[0] "120mm 榴彈殼" - -#. ~ Description for 120mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 120mm shell, now an expensive paperweight." -msgstr "一個 120mm 榴彈發射後留下的大彈殼, 大概還可以當紙鎮用。" - -#: lang/json/GENERIC_from_json.py -msgid "155mm canister" -msgid_plural "155mm canisters" -msgstr[0] "155mm 榴彈殼" - -#. ~ Description for 155mm canister -#: lang/json/GENERIC_from_json.py -msgid "" -"A large canister from a spent 155mm shell, now an expensive paperweight." -msgstr "一個 155mm 榴彈發射後留下的大彈殼, 大概還可以當紙鎮用。" - -#: lang/json/GENERIC_from_json.py -msgid "stabilized portal" -msgid_plural "stabilized portals" -msgstr[0] "穩定的傳送門" - -#. ~ Description for {'str': 'stabilized portal'} -#: lang/json/GENERIC_from_json.py -msgid "" -"As you gaze into the seemingly infinite depths of this portable hole in " -"reality, a phrase from a time forever gone echoes in your mind. \"There are" -" two things that are infinite: the universe and human kleptomania.\"" -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "vehicle shelving" -msgid_plural "vehicle shelvings" +msgid "test box" +msgid_plural "test boxs" msgstr[0] "" -#. ~ Description for {'str': 'vehicle shelving'} +#. ~ Description for {'str': 'test box'} #: lang/json/GENERIC_from_json.py -msgid "" -"Several heavy frames retrofitted to be installed together which are " -"outfitted with tie-downs and attachment points gallore for carrying an " -"extended amount of cargo." +msgid "A simple 1-liter cardboard box of deliberately undefined proportions." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "solar array" -msgid_plural "solar arrays" -msgstr[0] "太陽能板陣列" - -#. ~ Description for {'str': 'solar array'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. However, this comes at the " -"cost of being prohibitively heavy." -msgstr "一打太陽能板, 裝設在幾米高的底盤上。它使脆弱的面板遠離任何潛在的威脅, 還能夠跟踪太陽以提高效率。然而, 代價就是令人望而卻步的沉重。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded solar array" -msgid_plural "upgraded solar arrays" -msgstr[0] "進階太陽能板陣列" - -#. ~ Description for {'str': 'upgraded solar array'} #: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able to track the sun. However, this comes" -" at the cost of being prohibitively heavy and obstructive." -msgstr "" -"一打進階太陽能板, 裝設在幾米高的底盤上。它使脆弱的面板遠離任何潛在的威脅, 還能夠跟踪太陽以提高效率。然而, 代價就是令人望而卻步的沉重和妨礙性。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "upgraded reinforced solar array" -msgid_plural "upgraded reinforced solar arrays" -msgstr[0] "進階強化太陽能板陣列" +msgid "test 14 cm rod" +msgid_plural "test 14 cm rods" +msgstr[0] "" -#. ~ Description for {'str': 'upgraded reinforced solar array'} +#. ~ Description for test 14 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A dozen upgraded reinforced solar panels set on a chassis reaching several " -"meters high. It keeps the fragile panels safely away from any potential " -"threats and improves efficiency due to being able to track the sun. " -"However, this comes at the cost of being prohibitively heavy and " -"obstructive." +msgid "A thin rod exactly 14 cm in length" msgstr "" -"12 片進階強化太陽能板, 裝設在數公尺高的底盤上。它使脆弱的面板遠離任何潛在的威脅, 還能夠跟踪太陽以提高效率。然而, " -"代價就是令人望而卻步的沉重和妨礙性。" #: lang/json/GENERIC_from_json.py -msgid "gelectrode" -msgid_plural "gelectrodes" +msgid "test 15 cm rod" +msgid_plural "test 15 cm rods" msgstr[0] "" -#. ~ Description for {'str': 'gelectrode'} +#. ~ Description for test 15 cm rod #: lang/json/GENERIC_from_json.py -msgid "" -"A strange biological anomaly, this blob seems capable of emitting light when" -" electricity is provided to it, from small lamps up to headlights. " -"Unfortunately there is no place to insert a battery, so you'll have to hook " -"it up to a vehicle's power grid. It seems pliable enough to pull apart…" +msgid "A thin rod exactly 15 cm in length" msgstr "" #: lang/json/GENERIC_from_json.py -msgid "amorphous heart" -msgid_plural "amorphous hearts" -msgstr[0] "不定形心臟" +msgid "test nuclear carafe" +msgid_plural "test nuclear carafes" +msgstr[0] "" -#. ~ Description for {'str': 'amorphous heart'} +#. ~ Description for {'str': 'test nuclear carafe'} #: lang/json/GENERIC_from_json.py msgid "" -"This amorphous mass seems to have finished developing; its advanced internal" -" structures testifying to that. It is capable of locomotion through " -"internal hydraulic pressure, capable of moving substantial loads, and, in an" -" astounding display of intelligence, is capable of manipulating anything " -"it's attached to, whether blob-based or otherwise, through extended " -"pseudopods. You think you might be able to manipulate it, and through it, " -"all its attached parts. Though to do so you'll have to position yourself to" -" be in contact with it; and it appears unnervingly willing to accommodate " -"you…" +"This is a test coffee carafe designed to keep atomic beverages extra " +"radioactive. It leaks radiation all the time." msgstr "" -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond frame" -msgid_plural "diamond frames" -msgstr[0] "鑽石框架" - -#. ~ Description for {'str': 'diamond frame'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " -"weight." -msgstr "一個出眾閃亮的鑽石框架。以重量來說, 它不可思議的堅硬。" - -#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond plating" -msgid_plural "diamond platings" -msgstr[0] "鑽石裝甲板" - -#. ~ Description for {'str': 'diamond plating'} -#: lang/json/GENERIC_from_json.py -msgid "" -"A piece of armor plating made of clear diamond. Incredibly strong for its " -"weight." -msgstr "一塊晶瑩通透的鑽石裝甲版。不可思議的堅硬, 考慮到它的重量。" - #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" msgstr "槍械" @@ -59826,8 +59733,8 @@ msgstr[0] "" #. ~ Description for {'str': 'Desert Eagle magazine'} #: lang/json/MAGAZINE_from_json.py msgid "" -"A standard 7-round steel box magazine for use with the IMI Desert Eagle." -msgstr "一個標準的 7 發鋼製盒狀彈匣, 適用於以色列軍工的沙漠之鷹。" +"A standard 8-round steel box magazine for use with the IMI Desert Eagle." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 magazine" @@ -60312,18 +60219,6 @@ msgstr[0] "" msgid "A 50 round box magazine for use with Rivtech 8x40mm caseless firearms." msgstr "一個 50 發的盒型彈匣, 適用於 Rivtech 8x40mm 無殼彈。" -#: lang/json/MAGAZINE_from_json.py -msgid "RMGS5 8x40mm speedloader" -msgid_plural "RMGS5 8x40mm speedloaders" -msgstr[0] "" - -#. ~ Description for {'str': 'RMGS5 8x40mm speedloader'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader, made by Rivtech for use with RM99 revolver, can hold 5 " -"rounds of 8x40mm caseless rounds and quickly reload a compatible revolver." -msgstr "這款由Rivtech 製造,針對RM99 左輪手槍設計的快速裝填器可以容納5發8x40mm無殼彈並快速重新裝填一把相容的的左輪手槍。" - #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" msgid_plural "Calico magazines" @@ -60945,107 +60840,6 @@ msgstr[0] "" msgid "A bin for holding solid fuel." msgstr "放置固體燃料的儲放箱。" -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 auto-magazine" -msgid_plural "CW-24 auto-magazines" -msgstr[0] "" - -#. ~ Description for CW-24 auto-magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "一個用於CW-24步槍的高級彈匣。跟SVS彈匣一樣,使用微型機器人來幫助裝填彈藥。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CW-24 extended magazine" -msgid_plural "CW-24 extended magazines" -msgstr[0] "" - -#. ~ Description for CW-24 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " -"uses microrobotics to load its cartridges." -msgstr "一個用於CW-24步槍的加長彈匣。跟SVS彈匣一樣,使用微型機器人來幫助裝填彈藥。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 extended magazine" -msgid_plural "CWD-63 extended magazines" -msgstr[0] "" - -#. ~ Description for CWD-63 extended magazine -#: lang/json/MAGAZINE_from_json.py -msgid "A cheap 10-round box magazine for the CWD-63. It's not as reliable." -msgstr "一個便宜的 10 發盒狀彈匣, 適用於 CWD-63。它不太可靠。" - -#: lang/json/MAGAZINE_from_json.py -msgid "CWD-63 magazine" -msgid_plural "CWD-63 magazines" -msgstr[0] "" - -#. ~ Description for CWD-63 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"Since it's created for the .308 round, it doesn't need the curved shape of " -"the original magazine." -msgstr "這個彈匣是為.308子彈設計的,因此它不具有原本CWD-63彈匣的彎曲形狀。" - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robodrum" -msgid_plural "SVS-24 robodrums" -msgstr[0] "" - -#. ~ Description for SVS-24 robodrum -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 135-round drum magazine. Like the auto-magazine, it loads " -"cartridges using microrobotics." -msgstr "先進的135發裝彈鼓。如同自動裝填彈匣,它使用微型機器人自動裝載彈藥。" - -#: lang/json/MAGAZINE_from_json.py -msgid "SVS-24 robomag" -msgid_plural "SVS-24 robomags" -msgstr[0] "" - -#. ~ Description for SVS-24 robomag -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An advanced 42-round auto-magazine. Unlike previous generations of " -"magazines, this one uses microrobotics to load cartridges." -msgstr "先進的42發裝自動裝填彈匣。不同於上一代的普通彈匣,它使用微型機器人自動裝載彈藥。" - -#. ~ Description for .454 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 6 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "這個快速裝填器可以容納6發.454子彈並快速重新裝填相容的左輪手槍。" - -#: lang/json/MAGAZINE_from_json.py -msgid ".454 8-round speedloader" -msgid_plural ".454 8-round speedloaders" -msgstr[0] "" - -#. ~ Description for .454 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This speedloader can hold 8 rounds of .454 and quickly reload a compatible " -"revolver." -msgstr "這個快速裝填器可以容納8發.454子彈並快速重新裝填相容的左輪手槍。" - -#: lang/json/MAGAZINE_from_json.py -msgid "Eagle 1776 magazine" -msgid_plural "Eagle 1776 magazines" -msgstr[0] "" - -#. ~ Description for Eagle 1776 magazine -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " -"to the Eagle 1776." -msgstr "美國製造的盒狀彈匣,設計用於為Eagle 1776提供24發的.44 Magnum彈藥。" - #: lang/json/MAGAZINE_from_json.py msgid "grenade machine gun belt" msgid_plural "grenade machine gun belts" @@ -61228,60 +61022,26 @@ msgid "" msgstr "這種小型法力水晶,專門設計用於連接魔杖的尖端。" #: lang/json/MAGAZINE_from_json.py -msgid "30x113mm ammo belt" -msgid_plural "30x113mm ammo belts" -msgstr[0] "" - -#: lang/json/MAGAZINE_from_json.py -msgid "BB hopper" -msgid_plural "BB hoppers" -msgstr[0] "" - -#. ~ Description for {'str': 'BB hopper'} -#. ~ Description for {'str': 'pebble hopper'} -#: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"small round shot into the weapon's chamber below. It is not very reliable, " -"but quick to reload." -msgstr "" -"一種用於車載武器的粗製彈匣。由一個帶有一些塑膠導軌的簡單金屬盒製成,利用重力將一個個小圓彈裝填至其下面的武器室。它不是很可靠,但重新裝填非常快。" - -#: lang/json/MAGAZINE_from_json.py -msgid "bolt hopper" -msgid_plural "bolt hoppers" +msgid "test disposable battery" +msgid_plural "test disposable batteries" msgstr[0] "" -#. ~ Description for {'str': 'bolt hopper'} +#. ~ Description for {'str': 'test disposable battery', 'str_pl': 'test +#. disposable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted crossbow. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"crossbow bolt into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test disposable battery." msgstr "" -"一種用於車載十字弓的粗製彈匣。由一個帶有一些塑膠導軌的簡單金屬盒製成,利用重力將一支支十字弓弩箭裝填至其下面連接的武器。它不是很可靠,且不易重新裝填。" #: lang/json/MAGAZINE_from_json.py -msgid "canister rack" -msgid_plural "canister racks" +msgid "test rechargeable battery" +msgid_plural "test rechargeable batteries" msgstr[0] "" -#. ~ Description for {'str': 'canister rack'} +#. ~ Description for {'str': 'test rechargeable battery', 'str_pl': 'test +#. rechargeable batteries'} #: lang/json/MAGAZINE_from_json.py -msgid "" -"An improvised magazine for a vehicle mounted weapon. A simple metal box " -"with some plastic guide rails, it acts as a gravity fed hopper to drop a " -"heavy canister into the weapon below. It is awkward to reload and not " -"especially reliable." +msgid "This is a test battery that may be recharged." msgstr "" -"一種用於車載武器的粗製彈匣。由一個帶有一些塑膠導軌的簡單金屬盒製成,利用重力將一個個重型鋼瓶裝填至其下面連接的武器。它不是很可靠,且不易重新裝填。" - -#: lang/json/MAGAZINE_from_json.py -msgid "pebble hopper" -msgid_plural "pebble hoppers" -msgstr[0] "" #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" @@ -61302,27 +61062,27 @@ msgid "Drifts the game away from realism and more towards sci-fi." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "C.R.I.T Expansion Mod" -msgstr "C.R.I.T 擴張模組" +msgid "Blaze Industries" +msgstr "" -#. ~ Description for C.R.I.T Expansion Mod +#. ~ Description for Blaze Industries #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds a plethora of content: professions, guns/mods, WIP enemies, mutations, " -"martial arts, melee weapons, and some QOL changes such as plants from " -"cutting grass." +"Introduces the fictional corporation Blaze Industries, bringing advanced " +"vehicle modification to the consumer." msgstr "" #: lang/json/MOD_INFO_from_json.py -msgid "Craftable Gun Pack" -msgstr "自製槍械模組" +msgid "C.R.I.T Expansion Mod" +msgstr "C.R.I.T 擴張模組" -#. ~ Description for Craftable Gun Pack +#. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" -"Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " -"balance." -msgstr "加入更多的自製槍械, 以及火藥粉。警告: 破壞遊戲平衡。" +"Adds a plethora of content: professions, guns/mods/weapons, WIP mobs, " +"mutations, MA styles, and some QOL innawoods changes. Use the readme to see " +"more details!" +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" @@ -61344,17 +61104,6 @@ msgid "" "occupation. Use other mods at your own risk!" msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Folding Parts pack" -msgstr "折疊式零件模組" - -#. ~ Description for Folding Parts pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Makes solar panels and several other parts foldable, and adds foldable " -"quarterboards." -msgstr "使太陽能板和其他數個車輛零件可以折疊, 並加入折疊式的側擋板。" - #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" msgstr "恐龍模組" @@ -61365,26 +61114,6 @@ msgid "" "Adds dinosaurs. Some rideable, others less friendly. Life will find a way." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Icecoon's Arsenal" -msgstr "軍火庫 (by Icecoon)" - -#. ~ Description for Icecoon's Arsenal -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those gun nuts. Don't have enough near-future firearms in your life? " -"Add this mod today!" -msgstr "適合槍狂的模組。你的生活需要更多的近未來槍械? 立即加上這個模組!" - -#: lang/json/MOD_INFO_from_json.py -msgid "DeadLeaves' Fictional Guns" -msgstr "虛構武器包 (by DeadLeaves)" - -#. ~ Description for DeadLeaves' Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a bunch of rare, fictional weapons." -msgstr "加入一堆稀有的虛構武器。" - #: lang/json/MOD_INFO_from_json.py msgid "Fuji's Military Profession Pack" msgstr "Fuji 的軍事職業包" @@ -61436,6 +61165,15 @@ msgstr "" msgid "Fuji Structures mod support for Graphical Overmap." msgstr "" +#: lang/json/MOD_INFO_from_json.py +msgid "Graphical Overmap Magiclysm" +msgstr "" + +#. ~ Description for Graphical Overmap Magiclysm +#: lang/json/MOD_INFO_from_json.py +msgid "Magiclysm support for Graphical Overmap." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Graphical Overmap More Locations" msgstr "" @@ -61454,38 +61192,6 @@ msgstr "" msgid "Urban Development mod support for Graphical Overmap." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Garden Pots" -msgstr "園藝花盆" - -#. ~ Description for Garden Pots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Allows you to grow seeds in craftable garden pots that can be carried around" -" as items. Perfect for the nomadic botanist." -msgstr "製作可以隨身攜帶的園藝花盆,並在其中種植植物。特別適合喜歡到處亂跑又想種點東西的植物學家們。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Roadheader and other mining vehicles" -msgstr "鑽掘機與其他礦用車輛" - -#. ~ Description for Roadheader and other mining vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "Adds a few mining vehicles, requires Vehicle Additions Pack." -msgstr "加入一些採礦車輛,需要和「新增車輛模組包」同時使用。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Hydroponics" -msgstr "水耕栽培" - -#. ~ Description for Hydroponics -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds hydroponic units, a furniture which can have crops planted in it for " -"increased yields. Spawn occasionally in labs or basements. Or build your " -"own." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "Mythical Martial Arts" msgstr "虛構武術大全" @@ -61506,37 +61212,6 @@ msgstr "魔法災變" msgid "Cataclysm but with magic spells!" msgstr "有魔法的大災變!" -#: lang/json/MOD_INFO_from_json.py -msgid "Manual Bionic Installation" -msgstr "手動安裝生化插件" - -#. ~ Description for Manual Bionic Installation -#: lang/json/MOD_INFO_from_json.py -msgid "Allows CBMs to be installed by hand. Pairs well with Safe Autodoc." -msgstr "允許用手安裝生化插件。與 \"安全自動醫生\" 良好配合。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Medieval and Historic Classes and Shields" -msgstr "中世紀與歷史的職業與盾牌" - -#. ~ Description for Medieval and Historic Classes and Shields -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Assorted fun classes and shields for the wannabe knight, legionary, and " -"more." -msgstr "為嚮往騎士、軍團等事物的人,提供一些有趣的職業階級跟盾牌。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Modular Turrets" -msgstr "模組化砲塔" - -#. ~ Description for Modular Turrets -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Gives turrets swappable firearm modules, which can be reclaimed from broken " -"robots." -msgstr "給予砲塔可替換的槍械模組, 可以從破損的機器人中回收。" - #: lang/json/MOD_INFO_from_json.py msgid "More Locations" msgstr "更多地點" @@ -61548,26 +61223,6 @@ msgid "" "generating a world, you can remove subfolders to nix unwanted locations." msgstr "加入新的 Z 軸建築和地城。仍有點粗糙。在創造世界之前, 你可以刪除子文件夾以排除不想要的地點。" -#: lang/json/MOD_INFO_from_json.py -msgid "More Survival Tools" -msgstr "更多生存工具" - -#. ~ Description for More Survival Tools -#: lang/json/MOD_INFO_from_json.py -msgid "" -"For those who prefer being innawoods. Adds several tools, various recipes " -"additions/tweaks, plus two new professions." -msgstr "給那些喜歡進到森林裡的人。加入幾種工具、加入及調整配方、加入兩種新職業。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Mundane Zombies" -msgstr "沒有特殊殭屍" - -#. ~ Description for Mundane Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all special zombies from the game." -msgstr "遊戲中不會出現特殊殭屍。" - #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" msgstr "NPC 突變" @@ -61592,15 +61247,6 @@ msgid "" "sweet treats." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Mythological Replicas" -msgstr "神話武器複製品" - -#. ~ Description for Mythological Replicas -#: lang/json/MOD_INFO_from_json.py -msgid "Adds recipes for replicas of mythological weapons." -msgstr "加入製作神話武器複製品的配方。" - #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" msgstr "Beta 國民警衛隊營地" @@ -61612,71 +61258,6 @@ msgid "" "Provide feedback in the thread under 'The Lab'" msgstr "在 \"國民警衛隊營地\" 正式納入遊戲本體前協助其進行測試。可以到 \"The Lab\" 的討論串提供反饋。" -#: lang/json/MOD_INFO_from_json.py -msgid "No Acid Zombies" -msgstr "沒有酸液殭屍" - -#. ~ Description for No Acid Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all acid-based zombies from the game." -msgstr "從遊戲中移除酸液類殭屍。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Ants" -msgstr "沒有螞蟻" - -#. ~ Description for No Ants -#: lang/json/MOD_INFO_from_json.py -msgid "Removes ants and anthills from the game" -msgstr "遊戲中不會出現螞蟻跟蟻窩" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Bees" -msgstr "移除蜜蜂" - -#. ~ Description for No Bees -#: lang/json/MOD_INFO_from_json.py -msgid "Removes bees and beehives from the game" -msgstr "遊戲中不會出現蜜蜂跟蜂巢。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Big Zombies" -msgstr "無大型殭屍" - -#. ~ Description for No Big Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " -"game." -msgstr "從遊戲中移除電擊獸,殭屍浩克和骸骨巨人。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Explosive Zombies" -msgstr "沒有爆裂殭屍" - -#. ~ Description for No Explosive Zombies -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all explosion-based zombies from the game." -msgstr "從遊戲中移除爆烈性殭屍。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Filthy Clothing" -msgstr "移除骯髒衣物" - -#. ~ Description for No Filthy Clothing -#: lang/json/MOD_INFO_from_json.py -msgid "Clothes dropped by zombies will be completely clean." -msgstr "殭屍將掉落乾淨的衣服。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Flaming Weapons" -msgstr "沒有火焰武器" - -#. ~ Description for No Flaming Weapons -#: lang/json/MOD_INFO_from_json.py -msgid "Removes flaming melee weapons." -msgstr "從遊戲中移除近戰類火焰武器。" - #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" msgstr "沒有真菌怪物" @@ -61686,24 +61267,6 @@ msgstr "沒有真菌怪物" msgid "Removes fungal monsters and regions from the game." msgstr "從遊戲中移除真菌怪物及相應地點。" -#: lang/json/MOD_INFO_from_json.py -msgid "No Medieval Items" -msgstr "沒有中世紀物品" - -#. ~ Description for No Medieval Items -#: lang/json/MOD_INFO_from_json.py -msgid "Removes medieval weapons, armors, and specific books." -msgstr "從遊戲中移除中世紀時期的武器、護甲和特有書籍。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Mutagens" -msgstr "沒有突變劑" - -#. ~ Description for Disable Mutagens -#: lang/json/MOD_INFO_from_json.py -msgid "Removes mutagen items from the game." -msgstr "從遊戲中移除突變劑。" - #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" msgstr "取消 NPC 需求" @@ -61713,15 +61276,6 @@ msgstr "取消 NPC 需求" msgid "Makes NPCs not require food, water or rest." msgstr "使 NPC 不再需要食物、水和休息。" -#: lang/json/MOD_INFO_from_json.py -msgid "No Antique Firearms" -msgstr "沒有古董槍械" - -#. ~ Description for No Antique Firearms -#: lang/json/MOD_INFO_from_json.py -msgid "Removes all black powder and pre-Cold War firearms." -msgstr "從遊戲中移除所有使用黑火藥、以及冷戰前的槍械。" - #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" msgstr "沒有火車站" @@ -61731,42 +61285,6 @@ msgstr "沒有火車站" msgid "Removes above-ground rail stations from the game." msgstr "從遊戲中移除地上火車站。" -#: lang/json/MOD_INFO_from_json.py -msgid "Disable Religious Texts" -msgstr "沒有宗教文書" - -#. ~ Description for Disable Religious Texts -#: lang/json/MOD_INFO_from_json.py -msgid "Removes religious text items from the game." -msgstr "從遊戲中移除宗教文書。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Prevent Zombie Revivication" -msgstr "阻止殭屍復活" - -#. ~ Description for Prevent Zombie Revivication -#: lang/json/MOD_INFO_from_json.py -msgid "Disables zombie revival." -msgstr "殭屍不再會復活。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Fictional Guns" -msgstr "沒有虛構槍械" - -#. ~ Description for No Fictional Guns -#: lang/json/MOD_INFO_from_json.py -msgid "Removes fictional conventional firearms and ammunition." -msgstr "從遊戲中移除虛構的槍械和彈藥。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Survivor Armor" -msgstr "沒有生存者護甲" - -#. ~ Description for No Survivor Armor -#: lang/json/MOD_INFO_from_json.py -msgid "Removes survivor armor." -msgstr "從遊戲中移除生存者護甲。" - #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" msgstr "沒有怪物" @@ -61777,38 +61295,6 @@ msgid "" "Removes all monsters from the game, save for those in the WILDLIFE category." msgstr "從遊戲中移除野生動物分類以外的所有怪物。" -#: lang/json/MOD_INFO_from_json.py -msgid "Classic Roguelike Classes" -msgstr "經典 Roguelike 職業" - -#. ~ Description for Classic Roguelike Classes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a set of professions which correspond to classic Roguelike character " -"archetypes." -msgstr "加入一些符合經典 Roguelike 角色原型的職業。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Salvaged Robots" -msgstr "回收機器人" - -#. ~ Description for Salvaged Robots -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Expands the types of robots and allows players to jury-rig broken robots " -"into functioning companions." -msgstr "擴充機器人的類型, 並允許玩家修復損壞的機器人作為同伴使用。" - -#: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp -msgid "Sleep Deprivation" -msgstr "睡眠剝奪" - -#. ~ Description for Sleep Deprivation -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Enables sleep deprivation mechanics independently of a player's fatigue." -msgstr "啟用睡眠剝奪機制, 與玩家的疲勞度無關。" - #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Skills" msgstr "技能提高屬性" @@ -61828,28 +61314,6 @@ msgid "" "Adds mockup items, recipes, and other content for use by automated tests." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Tanks and Other Vehicles" -msgstr "坦克與其他車輛" - -#. ~ Description for Tanks and Other Vehicles -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Adds a few armored fighting vehicles and other such things, requires Vehicle" -" Additions Pack." -msgstr "加入一些裝甲車與其他類似的東西。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Bens GF recipes" -msgstr "無麩質配方 (by Ben)" - -#. ~ Description for Bens GF recipes -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Some simple gluten free and lactose free alternative recipe options. NOT " -"EXHAUSTIVE." -msgstr "" - #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" msgstr "城市發展" @@ -61859,15 +61323,6 @@ msgstr "城市發展" msgid "Holder for suburban and urban buildings." msgstr "為郊區和城市的建築提供加固。" -#: lang/json/MOD_INFO_from_json.py -msgid "Zombie Nightvision" -msgstr "殭屍夜視" - -#. ~ Description for Zombie Nightvision -#: lang/json/MOD_INFO_from_json.py -msgid "Gives all zombies perfect nightvision." -msgstr "賜予所有殭屍完美的夜視能力。" - #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" msgstr "替換建築代碼" @@ -61879,17 +61334,6 @@ msgid "" "and use initial letter of their names instead of ^v<>." msgstr "" -#: lang/json/MOD_INFO_from_json.py -msgid "Vehicle Additions Pack" -msgstr "新增車輛模組" - -#. ~ Description for Vehicle Additions Pack -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Please see the included PAQ.txt in the mod folder if you encounter any " -"issues." -msgstr "如果你遇到任何問題, 請參閱模組資料夾中的 PAQ.txt。" - #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" msgstr "生化插件插槽" @@ -61934,71 +61378,6 @@ msgstr "沙漠地區" msgid "A testbed/WIP mod to showcase regional_map_settings JSON changes." msgstr "一個測試中/未完成的模組,用於展示 regional_map_settings JSON 的改變。" -#: lang/json/MOD_INFO_from_json.py -msgid "EZ-Mode Medical" -msgstr "醫療簡單化" - -#. ~ Description for EZ-Mode Medical -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Increases broken limb mending speed and the effectiveness of healing items." -msgstr "增加斷肢的痊癒速度,以及醫療物品的效果。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Makeshift Items Mod" -msgstr "土製物品模組" - -#. ~ Description for Makeshift Items Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds more improvised item variants and rebalances existing ones." -msgstr "加入更多變的土製物品, 並且重新平衡既有的土製物品。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Mapgen Demo" -msgstr "地圖產生器測試版" - -#. ~ Description for Mapgen Demo -#: lang/json/MOD_INFO_from_json.py -msgid "Demo for JSONized mapgens (megastore, missile silo)." -msgstr "JSONized 地圖產生器的示範(大賣場、飛彈發射井)。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Classes and Scenarios Mod" -msgstr "職業與劇情模組" - -#. ~ Description for Classes and Scenarios Mod -#: lang/json/MOD_INFO_from_json.py -msgid "Adds new classes and scenarios while rebalancing some existing ones." -msgstr "加入新的職業和劇情, 同時重新平衡一些既有的職業和劇情。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Necromancy" -msgstr "死靈巫毒" - -#. ~ Description for Necromancy -#: lang/json/MOD_INFO_from_json.py -msgid "Adds the ability to revive creatures as minions." -msgstr "增加復活生物做為奴隸的能力。" - -#: lang/json/MOD_INFO_from_json.py -msgid "No Sci-Fi Equipment" -msgstr "沒有科幻裝備" - -#. ~ Description for No Sci-Fi Equipment -#: lang/json/MOD_INFO_from_json.py -msgid "" -"Removes far-future Sci-Fi items such as powered armor and energy weapons." -msgstr "從遊戲中移除未來的科幻物品, 如動力裝甲和能量武器。" - -#: lang/json/MOD_INFO_from_json.py -msgid "Simplified Nutrition" -msgstr "簡化營養需求" - -#. ~ Description for Simplified Nutrition -#: lang/json/MOD_INFO_from_json.py -msgid "Disables vitamin requirements." -msgstr "停用維他命需求。" - #: lang/json/MOD_INFO_from_json.py msgid "Rural-Only Mapgen" msgstr "" @@ -62276,7 +61655,6 @@ msgid_plural "skitterbots" msgstr[0] "爬蟲機器人" #. ~ Description for {'str': 'skitterbot'} -#. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py msgid "" "An insectoid robot the size of a small dog, designed for home security. " @@ -63205,8 +62583,8 @@ msgstr[0] "真菌巨人" #: lang/json/MONSTER_from_json.py msgid "" "Fungi bloom from the crevices in the ossified plates of this ponderous bone " -"titan, and it seems even it's eyes are lost to it. A dust of spores lands " -"on the ground with every sluggish stomp of it's heavy legs." +"titan, and it seems even its eyes are lost to it. A dust of spores lands on" +" the ground with every sluggish stomp of its heavy legs." msgstr "" #: lang/json/MONSTER_from_json.py @@ -63698,7 +63076,7 @@ msgstr[0] "鮮肉跛行獸" #: lang/json/MONSTER_from_json.py msgid "" "An amalgamation of throbbing organs from various creatures have fused " -"together into this lurching, vaguely humanoid shape. It's myriad roughly " +"together into this lurching, vaguely humanoid shape. Its myriad roughly " "formed mouths sussurate in a chorus of sibilant groans and whispers." msgstr "" @@ -63712,7 +63090,7 @@ msgstr[0] "血肉魔像" msgid "" "A seeping conglomeration of spasming muscle and organs have fused together " "into this towering caricature of the human form. Various organs fall off of" -" it's hulking body only to be reabsorbed moments later." +" its hulking body only to be reabsorbed moments later." msgstr "" #: lang/json/MONSTER_from_json.py @@ -65339,7 +64717,7 @@ msgid "" msgstr "" "這是隻來自異界的獵犬。看起來飢餓瘦長,扭曲的紅色血肉緊緊地覆蓋在它畸形的骨架上。伴隨著怪異的奔跑,牠那向前延伸的異常長頸和骷髏般的頭顱貼近地面四處嗅探尋找著獵物。它的汙垢似乎被某種神秘力量所壟罩,你感覺腦中喚醒了某種古老的恐懼感不斷的忽隱忽現。" -#: lang/json/MONSTER_from_json.py +#: lang/json/MONSTER_from_json.py lang/json/field_type_from_json.py msgid "shadow" msgid_plural "shadows" msgstr[0] "暗影怪" @@ -65619,6 +64997,19 @@ msgid "" "was limited due to a legal dispute." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "laser turret" +msgid_plural "laser turrets" +msgstr[0] "雷射砲塔" + +#. ~ Description for {'str': 'laser turret'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " +"of the art revolving laser cannon system with three barrels that charge from" +" solar cells embedded in its hull." +msgstr "這個 TX-5LR 地獄犬槍塔是該系列的新型號。採用了先進的三管旋轉雷射砲系統, 並且能利用嵌入於機體的太陽能板進行充電。" + #: lang/json/MONSTER_from_json.py msgid "leech blossom" msgid_plural "leech blossoms" @@ -66045,19 +65436,6 @@ msgid "" "continually seeking targets." msgstr "三個強力的探照燈被裝在一個機器上, 擁有人工智慧, 會自己尋找目標。" -#: lang/json/MONSTER_from_json.py -msgid "laser turret" -msgid_plural "laser turrets" -msgstr[0] "雷射砲塔" - -#. ~ Description for {'str': 'laser turret'} -#: lang/json/MONSTER_from_json.py -msgid "" -"The TX-5LR Cerberus is an upgrade to its predecessors. It features a state " -"of the art revolving laser cannon system with three barrels that charge from" -" solar cells embedded in its hull." -msgstr "這個 TX-5LR 地獄犬槍塔是該系列的新型號。採用了先進的三管旋轉雷射砲系統, 並且能利用嵌入於機體的太陽能板進行充電。" - #: lang/json/MONSTER_from_json.py msgid "M2HB autonomous CROWS II" msgid_plural "M2HB autonomous CROWS IIs" @@ -66119,6 +65497,17 @@ msgid "" "shoots autonomously, it requires a human operator to relocate, so it's not " "so mobile anymore." msgstr "" +"這種由TALON衍生出來的鎮暴裝置是在大災變來臨之前的數年被廣泛推廣的新型半自動裝置,它可以射出比人類更精準的低殺傷力子彈,確保安全地命中目標的肢體。監獄與市內警隊在示範了「低殺傷力」並不等於「非殺傷」之後很快就被放棄使用。在大災變的前一天,大量的存放品被啟動了。幸運的是,即使它自動開火,它還是需要有人幫它移動位置,所以已沒那麼有機動性。" + +#: lang/json/MONSTER_from_json.py +msgid "loudspeaker" +msgid_plural "loudspeakers" +msgstr[0] "" + +#. ~ Description for loudspeaker +#: lang/json/MONSTER_from_json.py +msgid "High-powered loudspeaker, repeating loud messages over and over again." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -66781,30 +66170,6 @@ msgid "" "disturbances." msgstr "這隻殭屍身上布滿了膿包, 他蒼白的肌膚之下就快要被體內腐敗的氣體撐破, 就算是極其輕微的打擊都能讓他爆炸。" -#: lang/json/MONSTER_from_json.py -msgid "zombie grenadier" -msgid_plural "zombie grenadiers" -msgstr[0] "擲彈兵殭屍" - -#. ~ Description for {'str': 'zombie grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear. Its hands " -"constantly fumble at its many pouches." -msgstr "曾經是個軍人, 它現在從頭到腳都穿著戰鬥裝備。它的雙手在無數口袋中摸索著甚麼。" - -#: lang/json/MONSTER_from_json.py -msgid "zombie elite grenadier" -msgid_plural "zombie elite grenadiers" -msgstr[0] "精英擲彈兵殭屍" - -#. ~ Description for {'str': 'zombie elite grenadier'} -#: lang/json/MONSTER_from_json.py -msgid "" -"Once a soldier, it is dressed head to toe in combat gear and wearing a MOLLE" -" pack. Its hands quickly open and close its many pouches." -msgstr "曾經是個軍人, 它現在從頭到腳都穿著戰鬥裝備, 還背著一個輕型戰術背包。它的雙手在無數口袋中開開合合弄著甚麼。" - #: lang/json/MONSTER_from_json.py msgid "crawler" msgid_plural "crawlers" @@ -67125,6 +66490,21 @@ msgid "" "darker and more dangerous." msgstr "一個扭曲的人形, 骨瘦如柴, 有著漆黑的皮膚與發出紅光的雙眼。不知為何看到它時會喚醒你內心深處的恐懼, 並且在它周圍有黑暗的危險氛圍。" +#: lang/json/MONSTER_from_json.py +msgid "zombie necro-boomer" +msgid_plural "zombie necro-boomers" +msgstr[0] "" + +#. ~ Description for {'str': 'zombie necro-boomer'} +#: lang/json/MONSTER_from_json.py +msgid "" +"At first this creature looks like nothing more than a grotesque and " +"oleaginous husk, bloated and punctured by jet-black pustules. When " +"approached its glowing red eyes and an aching grin take form; its skin tears" +" and guts teem with unmatched fecundity, as its gaze inspires fear of " +"nothing less than cosmic, inhuman ecstasy." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "feral runner" msgid_plural "feral runners" @@ -67625,6 +67005,47 @@ msgid "" "while maintaining visual contact for other pursuers." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder" +msgid_plural "Schwarz Walders" +msgstr[0] "" + +#. ~ Description for {'str': 'Schwarz Walder'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Schwarz Walders were originally developed by a German company as forest " +"rangers for the expanded Black Forest Conservation Area. Shortly afterwards" +" it was determined that they also made excellent long range reconnaissance " +"units that could operate independently indefinitely. Pre-Cataclysm they " +"lived on every continent in a variety of jobs." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Schwarz Walder cub" +msgid_plural "Schwarz Walder cubs" +msgstr[0] "" + +#. ~ Description for {'str': 'Schwarz Walder cub'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A young Schwarz Walder. If one is out here, a very protective parent is " +"likely nearby." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "infeme" +msgid_plural "infemes" +msgstr[0] "" + +#. ~ Description for {'str': 'infeme'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The Infeme are uplifted from apes and other near human ancestors. The Zulu " +"word for monkey became the catch-all term for many species of uplifts " +"whether majority chimp, gorilla or baboon. They've probably formed colonies" +" hidden from the Cataclysm." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "headless zombie" msgid_plural "headless zombies" @@ -67652,6 +67073,43 @@ msgid "" " with its grotesquely-swollen hands." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Haunting Forest Walker" +msgid_plural "Haunting Forest Walkers" +msgstr[0] "" + +#. ~ Description for {'str': 'Haunting Forest Walker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This towering zombie is covered in wounds and shedding fur. Once it may " +"have prevented forest fires in national parks, now it kills anything it " +"catches." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "rotting grodd" +msgid_plural "rotting grodds" +msgstr[0] "" + +#. ~ Description for {'str': 'rotting grodd'} +#: lang/json/MONSTER_from_json.py +msgid "" +"Imagine a gorilla. Now imagine it dead and rotting and somehow looking at " +"you with more hate than you had previously imagined possible." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Ghoulodon" +msgid_plural "Ghoulodons" +msgstr[0] "" + +#. ~ Description for {'str': 'Ghoulodon'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An undead Uplifted Elephant of ginormous size. It still wears its assault " +"grade armor." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Slasher Necromorph" msgid_plural "Slasher Necromorphs" @@ -68014,8 +67472,64 @@ msgstr[0] "" #. ~ Description for {'str': 'stray'} #: lang/json/MONSTER_from_json.py msgid "" -"A mutated human, a hateful shadow of their former self. Patches of cyan-" -"purple crystals grow out of their pale flesh, slowly overtaking it." +"A former human, a hateful shadow of its former self capable of violent " +"outbursts of fury. Large patches of cyan-purple crystals grow out of its " +"bruised flesh, slowly overtaking it." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray cop" +msgid_plural "stray cops" +msgstr[0] "" + +#. ~ Description for stray cop +#: lang/json/MONSTER_from_json.py +msgid "" +"A former law enforcer, no doubt deployed to help civilians evacuate during " +"the Arrival. Unfortunately, despite their best efforts, many were still " +"infested. It still clad from head to toe in light body armor, partially " +"overtaken by crystal." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray soldier" +msgid_plural "stray soldiers" +msgstr[0] "" + +#. ~ Description for {'str': 'stray soldier'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former soldier, no doubt deployed to assist with evacuations and drive off" +" the Order, dressed from head to toe in partially crystalized combat armor." +" Though their training could not have prepared them for what they were up " +"against, they still seem to remember enough to take you on." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray firefighter" +msgid_plural "stray firefighters" +msgstr[0] "" + +#. ~ Description for {'str': 'stray firefighter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A former human body clad in tattered first responder gear, wet sounding " +"breath gurgling through the gas mask encrusted to its face. Staggering " +"aroun the community it once served, it is little more than yet another host " +"for the crystal infestation." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "hungry stray" +msgid_plural "hungry strays" +msgstr[0] "" + +#. ~ Description for {'str': 'hungry stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An obese former human, body studded with irregular crystal growths deforming" +" its body. It howls in mockery of hunger as it wanders, seeking new meals " +"to add to its bulk." msgstr "" #: lang/json/MONSTER_from_json.py @@ -68042,11 +67556,50 @@ msgstr[0] "" msgid "" "Little more than a moving mound of crystal and meat that occasionally spits " "up a tide of glowing, rocky gruel from its many cracks and crevices, this " -"creature trudges to and fro, bearing a heavy burden. From just behind the " -"murky surfaces of its shell, you can almost make out small, moving creatures" -" skittering about in its complex innards. It seems only a matter of time " -"before its bulk grows too heavy for it and it collapses, becoming just " -"another part of this ever-alien world." +"crab-like creature trudges to and fro bearing a heavy burden. From just " +"behind the murky surfaces of its shell, you can almost make out small, " +"moving creatures skittering about in its complex innards. It seems to stay " +"close to other crystal creatures, pouring the goop it secretes onto them " +"like some sort of caretaker. When threatened it is capable of producing " +"harrowing screams, no doubt drawing its friends to its aide." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling stray" +msgid_plural "crackling strays" +msgstr[0] "" + +#. ~ Description for {'str': 'crackling stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A hunched human form, back bristling with a hedge of buzzing blue crystals." +" Its veins visibly glow with some sort of unearthly substance." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "arcing stray" +msgid_plural "arcing strays" +msgstr[0] "" + +#. ~ Description for {'str': 'arcing stray'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A deformed multi-legged creature, its once teresstial body now merely a " +"platform for the massive crystalline pylons that jut from its torso where " +"its head once was. Its arms dangle uselessly at its sides, but is more than" +" capable of simply ramming its prey to deliver dangerous electric shocks." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray sprinter" +msgid_plural "stray sprinters" +msgstr[0] "" + +#. ~ Description for {'str': 'stray sprinter'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This well-toned toned, agile former human was once an athletic figure, and " +"appears to have retained some of its wit to boot." msgstr "" #: lang/json/MONSTER_from_json.py @@ -68057,22 +67610,24 @@ msgstr[0] "" #. ~ Description for {'str': 'stray prowler'} #: lang/json/MONSTER_from_json.py msgid "" -"This once-shambling mutant now moves with feral cunning, mouth menacing with" -" tusks of polished stone and fingers tipped with crystal-fused claws." +"This tightly-wound mutant now moves like some sort of animal, sometimes on " +"two legs and sometimes on four. Its mouth menaces with tusks of polished " +"stone and fingers gleam with crystal-fused claws." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray predator" -msgid_plural "stray predators" +msgid "stray guardian" +msgid_plural "stray guardians" msgstr[0] "" -#. ~ Description for {'str': 'stray predator'} +#. ~ Description for {'str': 'stray guardian'} #: lang/json/MONSTER_from_json.py msgid "" -"Lithe muscle and pulasting crystal fused together, this creature crawls on " -"four, grossly enlongated limbs sharpened to deadly points, spearing " -"intruders to its domain. Though it moves quickly, it seems only a matter of" -" time before the very shell that protects it weighs it down to the ground." +"Lithe muscle and pulasting crystal fused together into a mass that must be " +"made up of multiple bodies, propelled forward by multiple grossly enlongated" +" crystal limbs sharpened to dangerous points. It strides about the streets," +" spearing intruders to its domain like some sort of horrid spider from " +"beyond the stars." msgstr "" #: lang/json/MONSTER_from_json.py @@ -68083,36 +67638,35 @@ msgstr[0] "" #. ~ Description for {'str': 'stray bruiser'} #: lang/json/MONSTER_from_json.py msgid "" -"Standing much steadier than its peers, this formerly human body is laden " -"with thick crystal growths that pulsate as if alive. Its hands are little " -"more than spiked clubs now, dragging behind it as it trudges along." +"A former human, athletic and toned, body menacing with thick crystal armor " +"that pulsates as if alive." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray titan" -msgid_plural "stray titans" +msgid "stray golem" +msgid_plural "stray golems" msgstr[0] "" -#. ~ Description for {'str': 'stray titan'} +#. ~ Description for {'str': 'stray golem'} #: lang/json/MONSTER_from_json.py msgid "" -"This towering mass of fused flesh and stone crushes everything that stands " -"in its way with club-like 'hands'. Despite its great power, it seems only a " -"matter of time before the very shell that protects it crushes it beneath its" -" own weight." +"A human that has grown considerably in stature after accuring plenty of " +"additional biomass, now at least ten foot tall and covered in rocky plates " +"that make it seem more mineral than human." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray husk" -msgid_plural "stray husks" +msgid "stray titan" +msgid_plural "stray titans" msgstr[0] "" -#. ~ Description for {'str': 'stray husk'} +#. ~ Description for {'str': 'stray titan'} #: lang/json/MONSTER_from_json.py msgid "" -"The war-torn and charred body of a human, still smoldering after exposure to" -" alien bioweapons. Clusters of shimmering purple crystals sprout from its " -"wounds like weeds pushing out between cracks in concrete." +"This towering mass of fused flesh and crystal is humanoid, but far beyond " +"merely human now at its towering height. It crushes everything that stands " +"in its way with club-like 'hands' that are even bigger than you are and " +"easily throws anything in its way aside." msgstr "" #: lang/json/MONSTER_from_json.py @@ -68123,50 +67677,92 @@ msgstr[0] "" #. ~ Description for {'str': 'stray waif'} #: lang/json/MONSTER_from_json.py msgid "" -"If not for the patches of irregular crystal growth, it would be easy to " -"mistake this little figure for a normal child. Unfortunately, whatever " -"terrible weapon that the aliens used on much of the population has been no " -"kinder to them. Still, the idea of putting them down still twists your gut " -"in a primal way." +"A small, quick mutant, most likely once a human child, now disfigured by " +"patches of crystal. Their features are still recognizable enough to make " +"the thought of putting them down cause your gut to churn." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray tinder" -msgid_plural "stray tinders" +msgid "stray creep" +msgid_plural "stray creeps" msgstr[0] "" -#. ~ Description for {'str': 'stray tinder'} +#. ~ Description for {'str': 'stray creep'} #: lang/json/MONSTER_from_json.py msgid "" -"A child, still smoking and wounded after firsthand exposure to alien " -"bioweapons. Its features are just intact enough to make your gut churn." +"A terrifying, hairy husk of a creature scrambling about on all fours, a " +"mongrel housepet or the like covered in patches of crystal growths that jut " +"from it like spikes." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray creep" -msgid_plural "stray creeps" +msgid "stray wretch" +msgid_plural "stray wretches" msgstr[0] "" -#. ~ Description for {'str': 'stray creep'} +#. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} #: lang/json/MONSTER_from_json.py msgid "" -"A smouldering husk of a creature scrambling about on all fours, a mongrel " -"housepet or the like only recently mutated by exposure to alien bioweapons." +"This blur of jagged, crystal-fused limbs and hair could've been anything " +"from a housepet to a human at some point, but now it leaps and skitters " +"around like something out of a nightmare." msgstr "" #: lang/json/MONSTER_from_json.py -msgid "stray wretch" -msgid_plural "stray wretches" +msgid "stray stalker" +msgid_plural "stray stalkers" msgstr[0] "" -#. ~ Description for {'str': 'stray wretch', 'str_pl': 'stray wretches'} +#. ~ Description for {'str': 'stray stalker'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A wolf-sized creature made of thick slabs of crystal, small fleshy tendrils " +"drifting off of it like cilia. It seems more than happy to tear the life " +"out of anything living unfortunate enough to cross its path, to drag back to" +" its 'family'." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "flailing wretch" +msgid_plural "flailing wretchs" +msgstr[0] "" + +#. ~ Description for {'str': 'flailing wretch'} #: lang/json/MONSTER_from_json.py msgid "" -"This blur of jagged, crystal-fused limbs and hair might have been a housepet" -" at some point, but now it leaps and skitters around like something out of a" -" nightmare. It is likely that one day the very crystal that arms it will " -"weigh overtake its body and weigh it to the ground, given its slow expansion" -" across its body." +"A person-sized mass of writhing, barbed tendrils that barely seems like it " +"was even any terrestrial animal anymore, originating from a barely visible " +"mass of central crystal. It slithers across the ground, snatching up " +"organic matter to bring back to feed to its smaller companions so that they " +"too may grow larger." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "crackling wretch" +msgid_plural "crackling wretchs" +msgstr[0] "" + +#. ~ Description for {'str': 'crackling wretch'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A flailing mass of tendrils and burnt hair that quickly skirts across the " +"ground like an insect, arched back bristling with loudly arcing crystal " +"spears." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "stray wretchmother" +msgid_plural "stray wretchmothers" +msgstr[0] "" + +#. ~ Description for {'str': 'stray wretchmother'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, crystal-packed creature capable of massive, bounding leaps like " +"some sort of alien wolf. Its topmost layer of crystal sprouts several " +"flailing, fleshy tendrils, which pull in anything they can reach into the " +"gnashing maw just under its body. Something else just as unseemly writhes " +"just beneath the murky surface of its glassy body." msgstr "" #: lang/json/MONSTER_from_json.py @@ -68178,6 +67774,20 @@ msgstr[0] "" #. 'germinating crystal masses'} #: lang/json/MONSTER_from_json.py msgid "" +"A little bulb of crystal rooted into the earth through dirt and concrete " +"alike, noodle-like tendrils squirming across the ground, grabbing any little" +" bit of organic matter it can find and drawing it to its base." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "sprouting crystal mass" +msgid_plural "sprouting crystal masses" +msgstr[0] "" + +#. ~ Description for {'str': 'sprouting crystal mass', 'str_pl': 'sprouting +#. crystal masses'} +#: lang/json/MONSTER_from_json.py +msgid "" "A human-sized mound of shimmering blue-purple crystals growing on the base " "of what looks like a mound of foul smelling garbage and organic leftovers. " "Long, thin tendrils appear to grow out of the mound, and are subtly rooting " @@ -68240,7 +67850,7 @@ msgstr[0] "" #: lang/json/MONSTER_from_json.py msgid "" "A massive wall of thick, blocky crystals that glow faintly and crackle with " -"electric energy." +"residual electric energy." msgstr "" #: lang/json/MONSTER_from_json.py @@ -68261,11 +67871,11 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "crystal mite" -msgid_plural "crystal mites" +msgid "crystal seed" +msgid_plural "crystal seeds" msgstr[0] "" -#. ~ Description for {'str': 'crystal mite'} +#. ~ Description for {'str': 'crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" "A tiny, multilegged creature that appears to be made of a chunk of crystal." @@ -68274,16 +67884,16 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "engorged crystal mite" -msgid_plural "engorged crystal mites" +msgid "engorged crystal seed" +msgid_plural "engorged crystal seeds" msgstr[0] "" -#. ~ Description for {'str': 'engorged crystal mite'} +#. ~ Description for {'str': 'engorged crystal seed'} #: lang/json/MONSTER_from_json.py msgid "" -"A swollen crystal mite, now grown to about the size of a cat, heavy enough " -"with accumulated crystal structure to settle down and begin germinating into" -" a proper crystal mass." +"A swollen crystal seed, now grown to about the size of a cat, heavy enough " +"with accumulated biomass to settle down and begin germinating into a proper " +"crystal mass." msgstr "" #. ~ Description for {'str': 'C-4 hack'} @@ -68329,9 +67939,9 @@ msgstr[0] "美頜龍" #. ~ Description for {'str_sp': 'Compsognathus'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a turkey. Its teeth and claws are " -"small but sharp." -msgstr "跟一隻小貓差不多大的雙足恐龍。它的牙齒和爪子看起來很鋒利。" +"A fast moving bipedal dinosaur about the size of a turkey. Its teeth and " +"claws are small but sharp." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Gallimimus" @@ -68357,6 +67967,18 @@ msgid "" "reptilian ostrich with a round hard-looking domed head." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Camptosaurus" +msgid_plural "Camptosaurus" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Camptosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large feathered bipedal dinosaur with strong legs, broad shoulders and a " +"pointed beak. It moves slowly but with enormous strength." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" msgid_plural "Spinosaurus" @@ -68376,7 +67998,19 @@ msgstr[0] "暴龍" #. ~ Description for {'str_sp': 'Tyrannosaurus rex'} #: lang/json/MONSTER_from_json.py -msgid "Look at those teeth! Tiny little claws though." +msgid "" +"Enormous teeth in a massive jaw, fierce eyes and a powerful frame to drive " +"it forward." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Albertosaurus" +msgid_plural "Albertosaurus" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Albertosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "Looks like a smaller tyrannosaurus rex, but those arms are much longer" msgstr "" #: lang/json/MONSTER_from_json.py @@ -68398,8 +68032,9 @@ msgstr[0] "劍龍" #. ~ Description for {'str_sp': 'Stegosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." -msgstr "一隻具有背部骨板與尖刺尾巴特徵的大型四足恐龍, 。" +msgid "" +"A large slow quadruped dinosaur with plates on its back, and a spiked tail." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Ankylosaurus" @@ -68413,6 +68048,19 @@ msgid "" "massive spiked club of bone." msgstr "這種恐龍看起來像一隻巨大的史前犰狳。牠有根巨型的尾巴棒槌。" +#: lang/json/MONSTER_from_json.py +msgid "Ceratosaurus" +msgid_plural "Ceratosaurus" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Ceratosaurus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A large, fast predatory bipedal dinosaur, decorated with three colorful " +"horns on its head and dotted with bright skin bones with long sharp teeth " +"and a long flexible tail." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Allosaurus" msgid_plural "Allosaurus" @@ -68433,9 +68081,9 @@ msgstr[0] "始盜龍" #. ~ Description for {'str': 'Eoraptor'} #: lang/json/MONSTER_from_json.py msgid "" -"A bipedal dinosaur about the size of a chicken. It roots around the " -"undergrowth, scavenging on small animals and plants." -msgstr "一隻跟雞差不多大的雙足恐龍。正吃著周圍灌木叢根部的小動物和植物。" +"A bipedal dinosaur about the size of a chicken. It darts around quickly and" +" has long arms for grabbing what it desires. It's holding something." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Velociraptor" @@ -68461,6 +68109,18 @@ msgid "" "foot is a large sickle-like claw." msgstr "一隻中等大小的雙足恐龍, 身上覆蓋著羽毛。在雙腳上都有根鐮刀狀的爪子。" +#: lang/json/MONSTER_from_json.py +msgid "Deinonychus bio-operator" +msgid_plural "Deinonychus bio-operator" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Deinonychus bio-operator'} +#: lang/json/MONSTER_from_json.py +msgid "" +"A bipedal dinosaur covered with feathers and crackling bionics. Each foot " +"has a large glowing sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "Utahraptor" msgid_plural "Utahraptors" @@ -68504,8 +68164,10 @@ msgstr[0] "雙脊龍" #. ~ Description for {'str_sp': 'Dilophosaurus'} #: lang/json/MONSTER_from_json.py -msgid "A medium dinosaur with a sticky green bile dripping from its teeth." -msgstr "一隻中等大小的恐龍, 帶有粘性的綠色汁液正從它的齒縫間滴落。" +msgid "" +"A medium dinosaur with sharp teeth and two prominent bony crests on its " +"head." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "greenish yellow hatchling" @@ -68594,6 +68256,19 @@ msgstr[0] "" msgid "Massive piles of ragged, stinking flesh lifting enormous teeth." msgstr "" +#: lang/json/MONSTER_from_json.py +msgid "Z-Deinonychus" +msgid_plural "Z-Deinonychus" +msgstr[0] "" + +#. ~ Description for {'str_sp': 'Z-Deinonychus'} +#: lang/json/MONSTER_from_json.py +msgid "" +"The shuffling corpse of a medium-sized bipedal dinosaur covered with " +"tattered feathers and black putrid liquid. Both feet brandish a large " +"sickle-like claw." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "improvised SMG turret" msgid_plural "improvised SMG turrets" @@ -68755,6 +68430,41 @@ msgid "" "like jaws." msgstr "身披黑色鱗片的怪獸,在那深深的眼窩中有著泛邪惡的亮綠。它的臉和頭骨呈骨骼狀,酸液從匕首狀的下顎滴落。" +#: lang/json/MONSTER_from_json.py +msgid "goblin warrior" +msgid_plural "goblin warriors" +msgstr[0] "" + +#. ~ Description for {'str': 'goblin warrior'} +#: lang/json/MONSTER_from_json.py +msgid "" +"This short humanoid is covered in filth and shouts slurs at you as it " +"brandishes a cudgel." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "goblin slinger" +msgid_plural "goblin slingers" +msgstr[0] "" + +#. ~ Description for {'str': 'goblin slinger'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that slings rocks almost as well as it slings insults." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "goblin chieftain" +msgid_plural "goblin chieftains" +msgstr[0] "" + +#. ~ Description for {'str': 'goblin chieftain'} +#: lang/json/MONSTER_from_json.py +msgid "" +"An ugly creature that was promoted to chieftain because it figured out which" +" end of the weapon is pointy." +msgstr "" + #: lang/json/MONSTER_from_json.py msgid "clay golem" msgid_plural "clay golems" @@ -69013,351 +68723,6 @@ msgid "" "torso." msgstr "" -#: lang/json/MONSTER_from_json.py -msgid "automated turret" -msgid_plural "automated turrets" -msgstr[0] "自動砲塔" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed defense turret" -msgid_plural "disarmed defense turrets" -msgstr[0] "" - -#. ~ Description for disarmed defense turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-series turret, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. It requires an integrated firearm module to " -"work." -msgstr "通用原子公司的TX-1守護者,一種丸形的小型自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。它需要一個完整的槍支模組才能運作。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed military turret" -msgid_plural "disarmed military turrets" -msgstr[0] "解除武裝軍用砲塔" - -#. ~ Description for disarmed military turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX series turret, a military-grade automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. It requires a integrated gun module to operate." -msgstr "" -"Leadworks LLC的TX系列砲塔,一座軍用級自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。它需要一個完整的槍支模組才能運作。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "disarmed advanced turret" -msgid_plural "disarmed advanced turrets" -msgstr[0] "解除武裝先進砲塔" - -#. ~ Description for disarmed advanced turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-series turret, an advanced automated gun turret using state" -" of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. It requires an integrated gun module to function." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "9mm turret" -msgid_plural "9mm turrets" -msgstr[0] "9mm 砲塔" - -#. ~ Description for 9mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-1 Guardian, a small, pill-shaped automated gun turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " -"full 360 degrees." -msgstr "" -"通用原子公司的TX-1守護者, 一種丸形的小型自動砲塔, 採用最先進的ATR系統可以動態調整敵我識別。裝配了9mm雙管機槍槍能夠全方位掃射。" - -#: lang/json/MONSTER_from_json.py -msgid "shotgun turret" -msgid_plural "shotgun turrets" -msgstr[0] "霰彈槍砲塔" - -#. ~ Description for shotgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TX-4 Protector, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 12ga shotgun can swivel a " -"full 360 degrees." -msgstr "通用原子公司的TX-4保護者, 一種丸形的小型自動砲塔, 採用最先進的ATR系統可以動態調整敵我識別。裝配了12口徑霰彈槍能夠全方位掃射。" - -#: lang/json/MONSTER_from_json.py -msgid "riot control turret" -msgid_plural "riot control turrets" -msgstr[0] "鎮暴砲塔" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1a Warden, a small, pill-shaped automated gun turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 40mm teargas launcher can swivel " -"a full 360 degrees." -msgstr "" -"通用原子公司的TZ-1a守望者, 一種丸形的小型自動砲塔, 採用最先進的ATR系統可以動態調整敵我識別。裝配了40mm催淚彈發射器能夠全方位發射。" - -#. ~ Description for riot control turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The General Atomics TZ-1b Pacifier, a small, pill-shaped automated gun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 40mm beanbag launcher can " -"swivel a full 360 degrees." -msgstr "" -"通用原子公司的TZ-1b安撫者, 一種丸形的小型自動砲塔, 採用最先進的ATR系統可以動態調整敵我識別。裝配了40mm豆袋彈發射器能夠全方位發射。" - -#: lang/json/MONSTER_from_json.py -msgid "5.56mm turret" -msgid_plural "5.56mm turrets" -msgstr[0] "5.56mm 砲塔" - -#. ~ Description for 5.56mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32L Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " -"360 degrees." -msgstr "領導工作有限公司的TX-32哨兵,一座軍用級自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。裝配了5.56口徑步槍能夠全方位掃射。" - -#: lang/json/MONSTER_from_json.py -msgid "7.62mm turret" -msgid_plural "7.62mm turrets" -msgstr[0] "7.62mm 砲塔" - -#. ~ Description for 7.62mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-32H Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " -"360 degrees." -msgstr "領導工作有限公司的TX-32哨兵,一座軍用級自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。裝配了7.62口徑步槍能夠全方位掃射。" - -#: lang/json/MONSTER_from_json.py -msgid "50cal turret" -msgid_plural "50cal turrets" -msgstr[0] "50 口徑砲塔" - -#. ~ Description for 50cal turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-13 Sentry, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 50 caliber machinegun can " -"swivel a full 360 degrees." -msgstr "領導工作有限公司的TX13哨兵,一座軍用級自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。裝配了50口徑機槍能夠全方位掃射。" - -#: lang/json/MONSTER_from_json.py -msgid "8x40mm turret" -msgid_plural "8x40mm turrets" -msgstr[0] "8x40mm 砲塔" - -#. ~ Description for 8x40mm turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TX-01A Warden, a military-grade automated machinegun " -"turret using state of the art ATR systems to dynamically reorient itself to " -"new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " -"full 360 degrees." -msgstr "" -"領導工作有限公司的TX-01A守望者,一座軍用級自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。裝配了8x40mm步槍能夠全方位掃射。" - -#: lang/json/MONSTER_from_json.py -msgid "needle turret" -msgid_plural "needle turrets" -msgstr[0] "" - -#. ~ Description for needle turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TN-7 Sentry, a military-grade automated flechette turret" -" using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated 5mm flechette gun can swivel a " -"full 360 degrees." -msgstr "領導工作有限公司的TN-7哨兵,一座軍用級自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。裝配了5mm鋼標彈槍能夠全方位射擊。" - -#: lang/json/MONSTER_from_json.py -msgid "40mm grenade turret" -msgid_plural "40mm grenade turrets" -msgstr[0] "40mm 榴彈砲塔" - -#. ~ Description for 40mm grenade turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TG-7 Sentry, a military-grade automated gun turret using" -" state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated 40mm grenade launcher can swivel a full " -"360 degrees." -msgstr "領導工作有限公司的TG-7哨兵,一座軍用級自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。裝配了40mm榴彈發射器能夠全方位射擊。" - -#: lang/json/MONSTER_from_json.py -msgid "flame turret" -msgid_plural "flame turrets" -msgstr[0] "火焰砲塔" - -#. ~ Description for flame turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The Leadworks LLC's TF-7 Sentry, a military-grade automated flame turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated flamethrower can swivel a full " -"360 degrees." -msgstr "領導工作有限公司的TF-7哨兵,一座軍用級自動砲塔,採用最先進的ATR系統可以動態調整敵我識別。裝配了火焰噴射器能夠全方位射擊。" - -#. ~ Description for laser turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-L3 Scintillator, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated laser emitter can swivel a full 360 " -"degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "acid turret" -msgid_plural "acid turrets" -msgstr[0] "酸液砲塔" - -#. ~ Description for acid turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-A3 Disintegrator, an advanced automated acid turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated acid thrower can swivel a full 360 " -"degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "plasma turret" -msgid_plural "plasma turrets" -msgstr[0] "電漿砲塔" - -#. ~ Description for plasma turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-P3 Scathefire, an advanced automated laser turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated plasma ejector can swivel a full 360 " -"degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "railgun turret" -msgid_plural "railgun turrets" -msgstr[0] "磁軌砲砲塔" - -#. ~ Description for railgun turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-R3 Arbalest, an advanced automated railgun turret using " -"state of the art ATR systems to dynamically reorient itself to new friends " -"and enemies alike. Its integrated railgun can swivel a full 360 degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "advanced electro turret" -msgid_plural "advanced electro turrets" -msgstr[0] "先進的電子砲塔" - -#. ~ Description for advanced electro turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-E3 Thunderstroke, an advanced automated electro turret " -"using state of the art ATR systems to dynamically reorient itself to new " -"friends and enemies alike. Its integrated electro caster can swivel a full " -"360 degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "EMP turret" -msgid_plural "EMP turrets" -msgstr[0] "電磁脈衝砲塔" - -#. ~ Description for EMP turret -#: lang/json/MONSTER_from_json.py -msgid "" -"The DoubleTech T-EMP3 Corona, an advanced automated EMP turret using state " -"of the art ATR systems to dynamically reorient itself to new friends and " -"enemies alike. Its electro magnetic pulse generator can swivel a full 360 " -"degrees." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "guardin gnome" -msgid_plural "guardin gnomes" -msgstr[0] "守衛地侏" - -#. ~ 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 "" - -#: lang/json/MONSTER_from_json.py -msgid "utility robot" -msgid_plural "utility robots" -msgstr[0] "輔助機器人" - -#. ~ Description for utility robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of utility robot formerly in use by government " -"agencies, private corporations, and civilians alike." -msgstr "" - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and trespassers." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "defense robot" -msgid_plural "defense robots" -msgstr[0] "防禦機器人" - -#. ~ Description for defense robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is armed with an electric prod and an integrated 9mm firearm." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "security robot" -msgid_plural "security robots" -msgstr[0] "警衛機器人" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an integrated 9mm firearm." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "riotcontrol robot" -msgid_plural "riotcontrol robots" -msgstr[0] "鎮暴機器人" - -#. ~ Description for riotcontrol robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod, tear gas sprayer, and integrated" -" 40mm beanbag launcher." -msgstr "" - #: lang/json/MONSTER_from_json.py msgid "necco" msgid_plural "neccos" @@ -69598,758 +68963,17 @@ msgid "" msgstr "" #: lang/json/MONSTER_from_json.py -msgid "craftbuddy" -msgid_plural "craftbuddies" -msgstr[0] "製作小幫手" - -#. ~ Description for {'str': 'craftbuddy', 'str_pl': 'craftbuddies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A mobile crafting station used by workers in mines, on oil rigs, and in " -"other remote locales. In it's active state, the craftbuddy merely follows " -"its user. In it's deactivated state, the craft buddy is useable as a " -"toolbench and multipurpose workstation." -msgstr "礦坑、石油鑽井平台和其他偏遠地區的工人使用的行動製作站。啟動時,製作小幫手只跟隨其用戶。停用時,製作小幫手作為工具台和多功能工作站使用。" - -#: lang/json/MONSTER_from_json.py -msgid "automated armor" -msgid_plural "automated armors" -msgstr[0] "自動化裝甲" - -#. ~ Description for automated armor -#: lang/json/MONSTER_from_json.py -msgid "" -"A suit of power armor temporarily controlled by an attached AI-core. " -"Originally intended as a way to retrieve dead or wounded operators from " -"combat, it was more commonly used for transporting the suit itself. The AI " -"is limited, and makes a poor combatant." -msgstr "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "light auto armor" -msgid_plural "light auto armors" +msgid "toilet paper mummy" +msgid_plural "toilet paper mummies" msgstr[0] "" -#: lang/json/MONSTER_from_json.py -msgid "auto armor" -msgid_plural "auto armors" -msgstr[0] "自動裝甲" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "heavy auto armor" -msgid_plural "heavy auto armors" -msgstr[0] "" - -#: lang/json/MONSTER_from_json.py -msgid "floating lantern" -msgid_plural "floating lanterns" -msgstr[0] "懸浮燈籠" - -#. ~ Description for floating lantern -#: lang/json/MONSTER_from_json.py -msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "distract-o-hack" -msgid_plural "distract-o-hacks" -msgstr[0] "" - -#. ~ Description for distract-o-hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed into a makeshift diversion tactic. Once " -"activated it will light up, produce sound, emit sparks, and move towards " -"hostile targets. Although fragile, the distract-o-hack's erratic movements " -"make it difficult to hit." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "arsonhack" -msgid_plural "arsonhacks" -msgstr[0] "" - -#. ~ Description for arsonhack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread flame and cause property damage. It's" -" almost as dangerous to its user as it is to the surroundings. The " -"arsonhack cannot be recovered once activated. Only a reckless madman would " -"dare to build this." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "spore hack" -msgid_plural "spore hacks" -msgstr[0] "孢子無人機" - -#. ~ Description for spore hack -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged drone repurposed to spread alien contaminants. It periodically " -"releases a puff of fungal spores. Who in their right mind would build such " -"a thing?" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "watercannon turret" -msgid_plural "watercannon turrets" -msgstr[0] "水砲砲塔" - -#. ~ Description for watercannon turret -#: lang/json/MONSTER_from_json.py -msgid "" -"A turret equipped with a jury-rigged watercannon in place of a proper " -"firearm. It's highly ineffective but the ammo is cheap." -msgstr "" - -#. ~ Description for eyebot -#: lang/json/MONSTER_from_json.py -msgid "" -"A small aerial robot equipped with a suite of cameras and armed with a " -"blinding flash. No longer linked to police or security network, it " -"continues its unending hunt for criminals and tresspassers." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "floating heater" -msgid_plural "floating heaters" -msgstr[0] "懸浮加熱器" - -#. ~ Description for floating heater -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "floating furnace" -msgid_plural "floating furnaces" -msgstr[0] "懸浮爐" - -#. ~ Description for floating furnace -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. Warning! " -"Can result in rapid heatstroke!" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "burning eye" -msgid_plural "burning eyes" -msgstr[0] "燃燒之眼" - -#. ~ Description for burning eye -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon. The lack of recoil allows " -"the hovering robot to aim and fire without penalty. It has decent range and" -" damage, but requires an extended recharge time between shots." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "hazmat bot" -msgid_plural "hazmat bots" -msgstr[0] "防護衣機器人" - -#. ~ Description for hazmat bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A utility robot designed for cleaning up waste material in hazardous " -"conditions." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "butler-bot" -msgid_plural "butler-bots" -msgstr[0] "管家機器人" - -#. ~ Description for butler-bot -#: lang/json/MONSTER_from_json.py -msgid "A luxury model utility robot for domestic use." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "construction robot" -msgid_plural "construction robots" -msgstr[0] "建造機器人" - -#. ~ Description for construction robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of construction robot formerly in use by government " -"agencies and private corporations. It is equipped with an integrated " -"welder, flashlight, nailgun, and jackhammer." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "firefighter robot" -msgid_plural "firefighter robots" -msgstr[0] "消防機器人" - -#. ~ Description for firefighter robot -#: lang/json/MONSTER_from_json.py -msgid "" -"One of the many models of fire-fighting robot formerly in use by local fire " -"departments and emergency services. Designed for entering burning buildings" -" and other situations deemed too dangerous for human firefighters." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "blob breeder" -msgid_plural "blob breeders" -msgstr[0] "黏球怪飼養器" - -#. ~ Description for blob breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of living blobs. Why on Earth" -" would you build this?" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "slime breeder" -msgid_plural "slime breeders" -msgstr[0] "黏液飼養器" - -#. ~ Description for slime breeder -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It will intermittently release a group of friendly blobs." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "digestron" -msgid_plural "digestrons" -msgstr[0] "烹飪機器人" - -#. ~ Description for digestron -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. A useful helper for keeping your front lawn clean of debris…" -" or corpses." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "bee bot" -msgid_plural "bee bots" -msgstr[0] "蜜蜂機器人" - -#. ~ Description for bee bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers honey combs. It protects the insect " -"colony with a mechanical crossbow mounted to its chassis." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "medical robot" -msgid_plural "medical robots" -msgstr[0] "醫療機器人" - -#. ~ Description for medical robot +#. ~ Description for {'str': 'toilet paper mummy', 'str_pl': 'toilet paper +#. mummies'} #: lang/json/MONSTER_from_json.py msgid "" -"A free roaming medical robot capable of administering powerful anesthetics " -"and performing complex surgical operations, usually in that order. Faulty " -"bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." +"Vaguely humanoid in shape, layered in something resembling toilet paper." msgstr "" -#: lang/json/MONSTER_from_json.py -msgid "assassination robot" -msgid_plural "assassination robots" -msgstr[0] "暗殺機器人" - -#. ~ Description for assassination robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. Its surgical " -"tools have been replaced with a fearsome set of blades, and its hypodermic " -"needle now delivers powerful toxins." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "elixirator" -msgid_plural "elixirators" -msgstr[0] "煉藥機器人" - -#. ~ Description for elixirator -#: lang/json/MONSTER_from_json.py -msgid "" -"This doesn't work yet. Don't build it… A salvaged medibot with its internal" -" pharma-fabricators repurposed to produce mutagen." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "party bot" -msgid_plural "party bots" -msgstr[0] "派對機器人" - -#. ~ Description for party bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Why on Earth would you build this crazy " -"thing?" -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "rat snatcher" -msgid_plural "rat snatchers" -msgstr[0] "捕鼠者" - -#. ~ Description for rat snatcher -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It's faster than " -"the original model but far less sturdy." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "grab-bot" -msgid_plural "grab-bots" -msgstr[0] "抓鉤機器人" - -#. ~ Description for grab-bot -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " -"meant to work in a pack." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "pest hunter" -msgid_plural "pest hunters" -msgstr[0] "害蟲獵手" - -#. ~ Description for pest hunter -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's " -"small size precludes rapid fire, due to recoil, and requires the use of " -"lightweight caseless ammo." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "insane cyborg" -msgid_plural "insane cyborgs" -msgstr[0] "發瘋生化人" - -#. ~ Description for insane cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A robot body with the head of a human. All kinds of electronic wires and " -"devices are implanted in its head. This cyborg moves erratically and has a " -"confused and deranged look in its eyes." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "necrotic cyborg" -msgid_plural "necrotic cyborgs" -msgstr[0] "壞死生化人" - -#. ~ Description for necrotic cyborg -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Why on Earth " -"would anyone build such an abomination?" -msgstr "" - -#. ~ Description for security robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An automated defense robot still active due to its internal power source. " -"This one is equipped with an electric prod and an integrated shotgun." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "military robot" -msgid_plural "military robots" -msgstr[0] "軍用機器人" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5.56mm firearm." -msgstr "" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military training robot still operating due to its internal power core. " -"This one is armed with a high power paintball gun and a foam baton." -msgstr "" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 7.62mm firearm." -msgstr "" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 50 caliber firearm." -msgstr "" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 8mm firearm." -msgstr "" - -#. ~ Description for military robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 5x50mm flechette gun." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "grenadier robot" -msgid_plural "grenadier robots" -msgstr[0] "擲彈機器人" - -#. ~ Description for grenadier robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated 40mm grenade launcher." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "military flame robot" -msgid_plural "military flame robots" -msgstr[0] "軍用火焰機器人" - -#. ~ Description for military flame robot -#: lang/json/MONSTER_from_json.py -msgid "" -"A military robot still operating due to its internal power core. This one " -"is armed with an electric prod and an integrated flamethrower." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "advanced robot" -msgid_plural "advanced robots" -msgstr[0] "先進機器人" - -#. ~ Description for advanced robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is armed with a powerful laser-emitter." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "laser-emitting robot" -msgid_plural "laser-emitting robots" -msgstr[0] "雷射機器人" - -#. ~ Description for laser-emitting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful laser-emitter." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "plasma-ejecting robot" -msgid_plural "plasma-ejecting robots" -msgstr[0] "電漿機器人" - -#. ~ Description for plasma-ejecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful plasma-ejector." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "railgun robot" -msgid_plural "railgun robots" -msgstr[0] "磁軌砲機器人" - -#. ~ Description for railgun robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful railgun." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "electro-casting robot" -msgid_plural "electro-casting robots" -msgstr[0] "電鑄機器人" - -#. ~ Description for electro-casting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful electro-caster." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "EMP-projecting robot" -msgid_plural "EMP-projecting robots" -msgstr[0] "電磁脈衝機器人" - -#. ~ Description for EMP-projecting robot -#: lang/json/MONSTER_from_json.py -msgid "" -"An advanced robot still functioning due to its internal fusion core. This " -"model is furnished with a powerful EMP-projector." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "junkyard cowboy" -msgid_plural "junkyard cowboys" -msgstr[0] "垃圾場牛仔" - -#. ~ Description for junkyard cowboy -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Due to bootleg targeting software, it can only attack nearby targets." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "shortcircuit samurai" -msgid_plural "shortcircuit samurais" -msgstr[0] "秀斗武士" - -#. ~ Description for shortcircuit samurai -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with two electrified blades. The over-" -"taxed power systems result in somewhat sluggish movement and occasional " -"discharges. Keep a safe distance!" -msgstr "一個廢物利用的防衛機器人,改裝成使用兩支通電的刀刃。超負荷的電力系統會令它在某些時候運作不良並不時放電,保持著安全的距離吧。" - -#: lang/json/MONSTER_from_json.py -msgid "slapdash paladin" -msgid_plural "slapdash paladins" -msgstr[0] "速成聖騎士" - -#. ~ Description for slapdash paladin -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. The burning fuel reserves make the robot noisy and " -"smokey." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "robo-guardian" -msgid_plural "robo-guardians" -msgstr[0] "機械守衛" - -#. ~ Description for robo-guardian -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Multiple weapons provide a high rate of fire, but jury-rigged sensors limit " -"the effective range and accuracy. It makes for a good close range " -"bodyguard." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "robote deluxe" -msgid_plural "robote deluxe" -msgstr[0] "豪華機器人" - -#. ~ Description for {'str_sp': 'robote deluxe'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "robo-protector" -msgid_plural "robo-protectors" -msgstr[0] "機械保衛者" - -#. ~ Description for robo-protector -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. The " -"modified firearm is only capable of three round bursts, but range and " -"accuracy are decent. It makes for a solid combat ally." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "robo-defender" -msgid_plural "robo-defenders" -msgstr[0] "機械防禦者" - -#. ~ Description for robo-defender -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Improved" -" optics provide nightvision and excellent range, but glitchy targeting " -"software requires an extended pause between shots. It makes for a good long" -" range sniper." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "glittering lady" -msgid_plural "glittering ladies" -msgstr[0] "閃爍女士" - -#. ~ Description for {'str': 'glittering lady', 'str_pl': 'glittering ladies'} -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It has two integral lasers and emits a steady pulse of blinding flashes. " -"Due to mismatched focusing lenses, the lasers have limited range." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "bitter spinster" -msgid_plural "bitter spinsters" -msgstr[0] "苦澀敗犬" - -#. ~ Description for bitter spinster -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " -"pipes weaken the robot structurally, making it somewhat fragile." -msgstr "" - -#. ~ Description for chicken walker -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a " -"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade " -"launcher, 5.56 anti-personnel gun, and the ability to electrify itself " -"against attackers, it is an effective automated sentry, though production " -"was limited due to a legal dispute." -msgstr "" -"Northrup ATSV 是大型、重裝甲、有一對膝蓋後彎雙腳的武裝機器人, 配備一組 40mm 的反車輛榴彈砲、5.56mm 的人員殺傷機槍, " -"並能讓自己通電來對付攻擊者, 它是一個效率極高的自動化哨兵, 但因為它有合法性的爭議, 製造的數量並不多。" - -#: lang/json/MONSTER_from_json.py -msgid "chainsaw horror" -msgid_plural "chainsaw horrors" -msgstr[0] "恐怖電鋸" - -#. ~ Description for chainsaw horror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"whirring chainsaws. A speaker system has been installed to blast terrifying" -" shrieks of distorted music. No one in their right mind would craft such an" -" awful creature." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "screeching terror" -msgid_plural "screeching terrors" -msgstr[0] "尖嘯恐懼" - -#. ~ Description for screeching terror -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"piston-driven lances. A speaker system has been installed to blast " -"terrifying shrieks of distorted music. No one in their right mind would " -"craft such a hellish beast." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "hooked nightmare" -msgid_plural "hooked nightmares" -msgstr[0] "沉醉夢魘" - -#. ~ Description for hooked nightmare -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It has traded its long range weapons for a set of " -"spinning chains terminating in bloody hooks. A speaker system has been " -"installed to blast terrifying shrieks of distorted music. No one in their " -"right mind would craft such a twisted abomination." -msgstr "" - -#. ~ Description for Beagle Mini-Tank UGV -#: lang/json/MONSTER_from_json.py -msgid "" -"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an " -"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" -"infantry weapons, it's designed for high-risk urban fighting." -msgstr "" -"Northrup Beagle是一個冰箱大小的市區戰鬥用UGV (無人地面載具) " -",搭載反坦克飛彈發射器、40mm榴彈發射器、以及多種反步兵武裝,它是被設計用於高風險城市戰鬥之中。" - -#: lang/json/MONSTER_from_json.py -msgid "fist king" -msgid_plural "fist kings" -msgstr[0] "拳王" - -#. ~ Description for fist king -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Although lacking" -" ranged weapons, its armor and strength make it a match for the even the " -"biggest monsters. Only a madman would dare build such a reckless behemoth." -msgstr "" -"一個回收的坦克機器人裝有一對強大的氣動錘,可用來砸碎包括建築物在內的任何物體。 " -"儘管缺乏遠程武器,但其裝甲和力量使其可以與最大的怪物相提並論。只有喪心病狂的傢伙才敢製造這麼一個魯莽的怪物。" - -#: lang/json/MONSTER_from_json.py -msgid "atomic sultan" -msgid_plural "atomic sultans" -msgstr[0] "原子蘇丹" - -#. ~ Description for atomic sultan -#: lang/json/MONSTER_from_json.py -msgid "" -"A salvaged tankbot refitted with burning hot man-crushers. Although lacking" -" ranged weapons, its armor and strength make it a match for even the biggest" -" foes. Multiple fusion cores give the robot ample power but also cause " -"radioactive gas leaks. Only a lunatic would dare build such a reckless " -"monster." -msgstr "" -"一個回收的坦克機器人, 以滾燙的熱壓碎機改裝。雖然缺乏遠程武器, " -"但它的力量與裝甲使它能與塊頭最大的敵人一較高下。並聯的核融合核心給予這個機器人充足的電力, " -"但同時造成輻射性氣體外洩。只有喪心病狂的傢伙才敢製造這麼一個魯莽的怪物。" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gelatinous mass" -msgid_plural "gelatinous mass" -msgstr[0] "凝膠團塊" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#. ~ Description for {'str_sp': 'gray mass'} -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/MONSTER_from_json.py -msgid "" -"An escaping noisy blob, catch it before it brings in every zombie for miles!" -msgstr "" - -#: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py -msgid "gray mass" -msgid_plural "gray mass" -msgstr[0] "灰質團塊" - #: lang/json/MONSTER_from_json.py msgid "giant scorpion" msgid_plural "giant scorpions" @@ -70700,6 +69324,18 @@ msgid "" "chitin fitted to a thin mesh. You could put this on a friendly horse." msgstr "" +#: lang/json/PET_ARMOR_from_json.py +msgid "meower armor" +msgid_plural "meower armors" +msgstr[0] "" + +#. ~ Description for {'str': 'meower armor'} +#: lang/json/PET_ARMOR_from_json.py +msgid "" +"Sleek and lightweight kevlar cat harness with a protective hood and " +"chestplate. Includes a very small, inconvenient velcro pocket on the back." +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "a mammal" msgstr "" @@ -70796,6 +69432,10 @@ msgstr "畸形" msgid "a human" msgstr "" +#: lang/json/SPECIES_from_json.py +msgid "an intelligent animal created by man before the Cataclysm" +msgstr "" + #: lang/json/SPECIES_from_json.py msgid "an alien" msgstr "" @@ -71431,6 +70071,15 @@ msgstr "" msgid "Holographic Transposition" msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Cranial Explosion" +msgstr "" + +#. ~ Description for Cranial Explosion +#: lang/json/SPELL_from_json.py +msgid "This fake spell occurs on cranial bomb activation. Likely fatal." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "psi stun" msgstr "" @@ -72519,6 +71168,56 @@ msgid "" "have this spell you probably debugged it in." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Pew, Pew" +msgstr "" + +#. ~ Description for Pew, Pew +#: lang/json/SPELL_from_json.py +msgid "You aim your finger at your opponent and make 'Pew, pew' sounds." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "The Floor is Lava" +msgstr "" + +#. ~ Description for The Floor is Lava +#: lang/json/SPELL_from_json.py +msgid "" +"Better find a chair or countertop to climb onto, because the floor is made " +"of lava!" +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Sports Training Montage" +msgstr "" + +#. ~ Description for Sports Training Montage +#: lang/json/SPELL_from_json.py +msgid "" +"When something takes a really long time, and you want to just skip to the " +"end, you're gonna need a montage." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Kiss the Owie" +msgstr "" + +#. ~ Description for Kiss the Owie +#: lang/json/SPELL_from_json.py +msgid "A tender kiss to make the pain go away, just like mother used to give." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Summon Mummy" +msgstr "" + +#. ~ Description for Summon Mummy +#: lang/json/SPELL_from_json.py +msgid "" +"Call forth a flimsy creature of tissue from the broom closet of your soul." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "reactor core expansion device" msgid_plural "reactor core expansion devices" @@ -72667,7 +71366,7 @@ msgid "" "This is a mining helmet with a heavy-duty LED flashlight. Using this will " "turn the flashlight on and provide light, assuming it is charged with " "batteries." -msgstr "" +msgstr "這頂採礦頭盔安裝了重型 LED 頭燈。\"使用\" 以啟動它並提供照明, 前提是電池已經充電。" #: lang/json/TOOL_ARMOR_from_json.py msgid "mining helmet (on)" @@ -72769,7 +71468,7 @@ msgstr "%s 熄滅了。" msgid "" "This is a mining helmet with a heavy-duty LED flashlight. The flashlight is" " turned on, and continually draining its batteries. Use it to turn it off." -msgstr "" +msgstr "這頂採礦頭盔安裝了重型 LED 頭燈。它已經啟動, 並且持續消耗電池。\"使用\" 以關閉它。" #: lang/json/TOOL_ARMOR_from_json.py msgid "game watch" @@ -72806,7 +71505,7 @@ msgid "" "A cloak woven with metallic fibers and covered with hexagonal sheets of " "reflective carbide. When activated, it will create a holographic decoy of " "its wearer." -msgstr "" +msgstr "以金屬纖維紡織而成的斗篷,上面覆蓋著六邊形的反光碳化物。當啟動後,它會產生一個穿戴者的全像投影誘餌成像。" #: lang/json/TOOL_ARMOR_from_json.py msgid "fedora" @@ -73077,6 +71776,8 @@ msgid "" "allows it to be comfortably worn on your head or attached to your helmet. " "Use it to turn it on." msgstr "" +"這是一個訂製的 LED 頭燈,以更大、更高效的電池組強化,使它更耐用、更明亮。附有可調節式綁帶,可以舒適地戴在頭上或安裝在頭盔上。\"使用\" " +"以啟動它。" #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor headlamp (on)" @@ -73092,6 +71793,9 @@ msgid "" "allows it to be comfortably worn on your head or attached to your helmet. " "It is turned on, and continually draining batteries. Use it to turn it off." msgstr "" +"這是一個訂製的 LED " +"頭燈,以更大、更高效的電池組強化,使它更耐用、更明亮。附有可調節式綁帶,可以舒適地戴在頭上或安裝在頭盔上。它已經啟動,並且持續消耗電池。\"使用\" " +"以關閉它。" #: lang/json/TOOL_ARMOR_from_json.py msgid "atomic headlamp" @@ -73101,7 +71805,7 @@ msgstr[0] "" #. ~ Use action msg for {'str': 'atomic headlamp'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You close the headlamp's cover." -msgstr "" +msgstr "你關上了頭燈罩。" #. ~ Description for {'str': 'atomic headlamp'} #: lang/json/TOOL_ARMOR_from_json.py @@ -73110,7 +71814,7 @@ msgid "" "decay, focused for more usable brightness. The adjustable strap allows it " "to be comfortably worn on your head or attached to your helmet. Use it to " "close the cover and hide the light." -msgstr "" +msgstr "這是一個訂製的使用神奇核衰變的強化頭燈,注重在提供方便的光線。附有可調節式綁帶,可以舒適地戴在頭上或安裝在頭盔上。\"使用\" 燈罩把光遮住。" #: lang/json/TOOL_ARMOR_from_json.py msgid "atomic headlamp (covered)" @@ -73121,7 +71825,7 @@ msgstr[0] "" #. headlamps (covered)'}. #: lang/json/TOOL_ARMOR_from_json.py msgid "You open the headlamp's cover." -msgstr "" +msgstr "你打開了頭燈罩。" #. ~ Description for {'str': 'atomic headlamp (covered)', 'str_pl': 'atomic #. headlamps (covered)'} @@ -73132,6 +71836,53 @@ msgid "" "to be comfortably worn on your head or attached to your helmet. Use it to " "open the cover and show the light." msgstr "" +"這是一個訂製的使用神奇核衰變的強化頭燈,注重在提供方便的光線。附有可調節式綁帶,可以舒適地戴在頭上或安裝在頭盔上。\"使用\" 燈罩把光讓光透出來。" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet" +msgid_plural "EOD helmets" +msgstr[0] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn on headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Activating illumination.\"" +msgstr "" + +#. ~ Use action need_charges_msg for {'str': 'EOD helmet'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Illumination disabled, low power.\"" +msgstr "" + +#. ~ Description for {'str': 'EOD helmet'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored electronically shielded helmet containing a camera, a two-way " +"radio, and a headlamp, all of which can be voice-activated for redundancy. " +"It is designed to protect against overpressure, fragmentation, impact and " +"heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD helmet (on)" +msgid_plural "EOD helmets (on)" +msgstr[0] "" + +#. ~ Use action menu_text for {'str': 'EOD helmet (on)', 'str_pl': 'EOD +#. helmets (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "Turn off headlamps" +msgstr "" + +#. ~ Use action msg for {'str': 'EOD helmet (on)', 'str_pl': 'EOD helmets +#. (on)'}. +#: lang/json/TOOL_ARMOR_from_json.py +msgid "\"Disabling illumination.\"" +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" @@ -73347,7 +72098,7 @@ msgid "" "A full gas mask that covers the face and eyes. Provides excellent " "protection from smoke, teargas, and other contaminants. It must be prepared" " before use." -msgstr "" +msgstr "一個完整覆蓋臉部的防毒面具。能夠完整的阻擋煙塵、催淚瓦斯,以及其他的污染。使用前必須準備。" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL gas mask" @@ -73360,7 +72111,7 @@ msgid "" "A rather roomy mask with filters attached, designed to accommodate exotic " "anatomy. Provides excellent protection from smoke, teargas, and other " "contaminants. It must be prepared before use." -msgstr "" +msgstr "一個連接著過濾器的寬敞面具,設計用來貼合你變異的肢體。提供了對於煙塵、催淚瓦斯,與其他污染的絕佳保護。使用前必須準備。" #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor firemask" @@ -73373,7 +72124,7 @@ msgid "" "A custom-built, Nomex-insulated gas mask that covers the face and eyes. It " "provides excellent protection from heat, smoke, teargas, and shrapnel. It " "must be prepared before use." -msgstr "" +msgstr "一件手工製的強化防毒面具,由諾梅克斯阻燃布料製成,保護臉部與眼睛。能夠很好的抵禦高溫、煙塵、催淚瓦斯,以及彈碎片。使用前必須準備。" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor firemask" @@ -73386,7 +72137,7 @@ msgid "" "A custom-built, Nomex-insulated gas mask that covers the face and eyes " "regardless of your state of mutation. It provides excellent protection from" " heat, smoke, teargas, and shrapnel. It must be prepared before use." -msgstr "" +msgstr "一件手工製的強化防毒面具,由諾梅克斯阻燃布料製成,保護你畸形的臉部與眼睛。能夠很好的抵禦高溫、煙塵、催淚瓦斯、以及彈碎片。使用前必須裝填。" #: lang/json/TOOL_ARMOR_from_json.py msgid "firefighter PBA mask" @@ -73412,7 +72163,7 @@ msgid "" "A custom-built, steel reinforced gas mask that covers the face and eyes. " "Provides excellent protection from smoke, teargas, and shrapnel. It must be" " prepared before use." -msgstr "" +msgstr "一件手工製的強化防毒面具,由鋼鐵製成,保護臉部與眼睛。能夠很好的抵禦、煙塵、催淚瓦斯,以及彈碎片。使用前必須準備。" #: lang/json/TOOL_ARMOR_from_json.py msgid "light survivor mask" @@ -73438,7 +72189,7 @@ msgid "" "A custom-built, leather reinforced gas mask that covers the face and eyes. " "Provides excellent protection from smoke, teargas, and shrapnel. It must be" " prepared before use." -msgstr "" +msgstr "一件手工製的強化防毒面具,由皮革製成,保護臉部與眼睛。能夠很好的抵禦、煙塵、催淚瓦斯,以及彈碎片。使用前必須準備。" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor mask" @@ -73451,7 +72202,7 @@ msgid "" "A custom-built, reinforced gas mask that covers the face and eyes regardless" " of your state of mutation. Provides excellent protection from smoke, " "teargas, and shrapnel. It must be prepared before use." -msgstr "" +msgstr "一件訂製的強化防毒面具,保護你畸形的臉部與眼睛。能夠很好的抵禦煙塵、催淚瓦斯、以及彈碎片。使用前必須裝填。" #: lang/json/TOOL_ARMOR_from_json.py msgid "winter survivor mask" @@ -73464,7 +72215,7 @@ msgid "" "A custom-built, fur-trimmed gas mask that covers the face and eyes. Quite " "warm, it still provides excellent protection from smoke, teargas, and " "shrapnel. It must be prepared before use." -msgstr "" +msgstr "一件手工毛皮製的強化防毒面具,能夠保護臉部與眼睛。能夠很好的抵禦煙塵、催淚瓦斯、以及彈碎片。使用前必須準備。" #: lang/json/TOOL_ARMOR_from_json.py msgid "XL winter survivor mask" @@ -74397,6 +73148,33 @@ msgid "Foodperson mask (on)" msgid_plural "Foodperson masks (on)" msgstr[0] "美食人面具(開啟)" +#: lang/json/TOOL_ARMOR_from_json.py +msgid "EOD jacket" +msgid_plural "EOD jackets" +msgstr[0] "" + +#. ~ Description for {'str': 'EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"A thick armored jacket constructed from kevlar and nomex for explosive " +"ordnance disposal. It is designed to protect against overpressure, " +"fragmentation, impact and heat." +msgstr "" + +#: lang/json/TOOL_ARMOR_from_json.py +msgid "light EOD jacket" +msgid_plural "light EOD jackets" +msgstr[0] "" + +#. ~ Description for {'str': 'light EOD jacket'} +#: lang/json/TOOL_ARMOR_from_json.py +msgid "" +"An armored jacket constructed from kevlar and nomex designed to protect " +"against overpressure, fragmentation, impact and heat in hostile " +"environments. It is lighter than normal EOD armor to provide more " +"maneuverability and can be worn over ballistic armor." +msgstr "" + #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak mk.2" msgid_plural "hologram cloak mk.2s" @@ -74544,9 +73322,9 @@ msgstr[0] "" #. ~ Description for CRIT S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into " -"your spinal cord, this device improves your overall physique and provides " -"basic information on your surroundings." +"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" +" spinal cord, this device improves your overall physique and provides basic " +"information on your surroundings." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -74557,7 +73335,7 @@ msgstr[0] "" #. ~ Use action msg for {'str': 'CRIT gasmask (off)', 'str_pl': 'CRIT gasmasks #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD booting up…" +msgid "CRIT HUD booting up…" msgstr "" #. ~ Use action need_charges_msg for {'str': 'CRIT gasmask (off)', 'str_pl': @@ -74570,11 +73348,11 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line " -"electronics and lined with Kevlar for extra protection in order to keep " -"one's head where it should be. Various filters and other high tech wizardry" -" allow for enhanced oxygen intake and safety even under bombardment. It has" -" an integrated HUD and the option to turn it on for more features." +"This is a heavily modified Spec Ops modified gasmask, fitted with top-of-" +"the-line electronics and lined with Kevlar for extra protection in order to " +"keep one's head where it should be. Various filters and other high tech " +"wizardry allow for enhanced oxygen intake and safety even under bombardment." +" It has an integrated HUD and the option to turn it on for more features." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -74585,16 +73363,15 @@ msgstr[0] "" #. ~ Use action msg for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.T HUD deactivating." +msgid "CRIT HUD deactivating." msgstr "" #. ~ Description for {'str': 'CRIT gasmask (on)', 'str_pl': 'CRIT gasmasks #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " -"draining power for the HUD, low-level nightvision and other protective " -"elements." +"This a heavily modified gasmask. It is currently on and draining power for " +"the HUD, low-level nightvision and other protective elements." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -74605,7 +73382,7 @@ msgstr[0] "" #. ~ Use action msg for {'str': 'CRIT EM vest (off)', 'str_pl': 'CRIT EM vests #. (off)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T EM booting up…" +msgid "CRIT EM booting up…" msgstr "" #. ~ Use action need_charges_msg for {'str': 'CRIT EM vest (off)', 'str_pl': @@ -74618,11 +73395,11 @@ msgstr "" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments and reactive servos which protects its wearer and assists in " -"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec" -" Ops for its ease of use and manuverability. Turn it on for suit mode, " -"extra protection and movement." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments and" +" reactive servos which protects its wearer and assists in movement at the " +"cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its " +"ease of use and manuverability. Turn it on for suit mode, extra protection " +"and movement." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -74639,18 +73416,18 @@ msgstr "" #. ~ Use action msg for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'}. #: lang/json/TOOL_ARMOR_from_json.py -msgid "C.R.I.T E.M powering off…" +msgid "CRIT EM powering off…" msgstr "" #. ~ Description for {'str': 'CRIT EM vest (on)', 'str_pl': 'CRIT EM vests #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech " -"filaments, reactive servos and a generator which pumps a crystallized liquid" -" that protects its wearer from most heavy combat situations at the cost of " -"extreme power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is" -" currently in suit form and draining your UPS power at high rates." +"The Spec Ops Enhanced Movement vest is embedded with high-tech filaments, " +"reactive servos and a generator which pumps a crystallized liquid that " +"protects its wearer from most heavy combat situations at the cost of extreme" +" power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " +"currently in suit form and draining your UPS power at high rates." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -74669,8 +73446,8 @@ msgstr "你打開 %s。" #. (off)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -74689,10 +73466,9 @@ msgstr "" #. (on)'} #: lang/json/TOOL_ARMOR_from_json.py msgid "" -"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of " -"insulated steel mesh for neck warmth and protection. A tactically dim " -"flashlight is attached to the side. This light is currently on and drawing " -"power." +"A standard-issue helmet. Protects the noggin and has a stretch of insulated" +" steel mesh for neck warmth and protection. A tactically dim flashlight is " +"attached to the side. This light is currently on and drawing power." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py @@ -75819,16 +74595,14 @@ msgstr "燈光" #. ~ Use action msg for {'str': "jack o'lantern"}. #: lang/json/TOOL_from_json.py -msgid "You light the candle in the jack o'lantern." -msgstr "你點亮了傑克南瓜燈內的蠟燭。" +msgid "You flip the switch in the jack o'lantern." +msgstr "" #. ~ Description for {'str': "jack o'lantern"} #: lang/json/TOOL_from_json.py msgid "" "This is a plastic lantern that is painted to look like a pumpkin with a " -"face. It has a candle inside it, that can be replaced when burnt down. It " -"doesn't provide very much light, but it can burn for quite a long time. " -"You'll need a lighter or matches to light it." +"face. It has a tiny LED light in it. It doesn't provide very much light." msgstr "" #: lang/json/TOOL_from_json.py @@ -75839,7 +74613,7 @@ msgstr[0] "傑克南瓜燈" #. ~ Use action msg for {'str': "spooky jack o'lantern", 'str_pl': "jack #. o'lanterns"}. #: lang/json/TOOL_from_json.py -msgid "The candle winks out inside the lantern." +msgid "The LED winks out inside the lantern." msgstr "" #. ~ Description for {'str': "spooky jack o'lantern", 'str_pl': "jack @@ -75847,7 +74621,7 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "" "There is a thick LED candle inside the pumpkin face. It doesn't provide " -"very much light, but it can burn for quite a long time. This candle is lit." +"very much light, but it can run for quite a long time. This lantern is lit." " The face shifts." msgstr "" @@ -76452,6 +75226,34 @@ msgid "" "been lit, so why are you still holding it?" msgstr "這是根裝著旋風炸藥和沙子的鋼管。前者推動後者形成致命的惡毒破片霧。它的引信已經被點燃了, 為什麼你還拿著它?" +#: lang/json/TOOL_from_json.py +msgid "control laptop" +msgid_plural "control laptops" +msgstr[0] "操控用筆記型電腦" + +#. ~ Description for {'str': 'control laptop'} +#: lang/json/TOOL_from_json.py +msgid "" +"A modified laptop, now capable of transmitting in the ultra-high frequencies" +" utilized by robots. Activate it to command robots from afar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "inactive laser turret" +msgid_plural "inactive laser turrets" +msgstr[0] "未啟動的雷射槍塔" + +#. ~ Description for {'str': 'inactive laser turret'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive laser turret. Using this item involves turning it on " +"and placing it on the ground, where it will attach itself. If reprogrammed " +"and rewired successfully the turret will identify you as a friendly, and " +"attack all enemies with its revolving laser cannons. It requires sunlight " +"in order to fire." +msgstr "" +"這是一台未啟動的雷射槍塔。使用這個物品會將它啟動,放置在地面上會自動組裝。如果改寫程式並重調線路成功的話,槍塔會視你為盟友,並以旋轉雷射砲掃射敵人。它需要日光以獲得開火所需的能量。" + #: lang/json/TOOL_from_json.py msgid "folded poncho" msgid_plural "folded ponchos" @@ -76601,22 +75403,6 @@ msgid "" "matrix is reprogrammed successfully." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "inactive laser turret" -msgid_plural "inactive laser turrets" -msgstr[0] "未啟動的雷射槍塔" - -#. ~ Description for {'str': 'inactive laser turret'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is an inactive laser turret. Using this item involves turning it on " -"and placing it on the ground, where it will attach itself. If reprogrammed " -"and rewired successfully the turret will identify you as a friendly, and " -"attack all enemies with its revolving laser cannons. It requires sunlight " -"in order to fire." -msgstr "" -"這是一台未啟動的雷射槍塔。使用這個物品會將它啟動,放置在地面上會自動組裝。如果改寫程式並重調線路成功的話,槍塔會視你為盟友,並以旋轉雷射砲掃射敵人。它需要日光以獲得開火所需的能量。" - #: lang/json/TOOL_from_json.py msgid "inactive M2HB autonomous CROWS II" msgid_plural "inactive M2HB autonomous CROWS II turrets" @@ -76653,7 +75439,6 @@ msgid "You misprogram the manhack; it's hostile!" msgstr "你把鋸鳥的程式搞亂了。變成敵對狀態!" #. ~ Description for {'str': 'inactive manhack'} -#. ~ Description for inactive hack #: lang/json/TOOL_from_json.py msgid "" "This is an inactive manhack. Manhacks are fist-sized robots that fly " @@ -77169,6 +75954,25 @@ msgid "" "distraction." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "inactive loudspeaker" +msgid_plural "inactive loudspeakers" +msgstr[0] "" + +#. ~ Use action friendly_msg for {'str': 'inactive loudspeaker'}. +#. ~ Use action hostile_msg for {'str': 'inactive loudspeaker'}. +#: lang/json/TOOL_from_json.py +msgid "The loudspeaker activates and begins his non-stopping shouts." +msgstr "" + +#. ~ Description for {'str': 'inactive loudspeaker'} +#: lang/json/TOOL_from_json.py +msgid "" +"This is an inactive automated loudspeaker. Using this item involves placing" +" it on the ground and turning it on. If reprogrammed and rewired " +"successfully the loudspeaker will continuously shout pre-recorded messages." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "clothes hanger" msgid_plural "clothes hangers" @@ -77664,8 +76468,8 @@ msgstr[0] "" #. ~ Description for {'str': 'bone shiv'} #: lang/json/TOOL_from_json.py msgid "" -"A femur or other bone, at least 30 cm long, which has been broken at one end" -" and sharpened into a cutting tool. Its jagged edge is wicked but fragile." +"A femur or other bone, about 20 cm long, which has been broken at one end " +"and sharpened into a cutting tool. Its jagged edge is wicked but fragile." msgstr "" #: lang/json/TOOL_from_json.py @@ -78235,6 +77039,30 @@ msgid "" "but bad for the environment; at least you're recycling it." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "layered kevlar panel" +msgid_plural "layered kevlar panels" +msgstr[0] "" + +#. ~ Description for layered kevlar panel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a small 16-layer thick Kevlar panel. It could be used to repair " +"armor made of Kevlar." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "rigid kevlar plate" +msgid_plural "rigid kevlar plates" +msgstr[0] "" + +#. ~ Description for rigid kevlar plate +#: lang/json/TOOL_from_json.py +msgid "" +"This is a compressed panel of kevlar treated with epoxy or other adhesive. " +"It could be used to repair items made of Kevlar." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "butchering kit" msgid_plural "butchering kits" @@ -78614,13 +77442,11 @@ msgid "fire barrel (200L)" msgid_plural "fire barrels (200L)" msgstr[0] "火桶(200公升)" -#. ~ Description for fire barrel (200L) -#. ~ Description for fire barrel (100L) #. ~ Description for {'str': 'fire barrel (200L)', 'str_pl': 'fire barrels #. (200L)'} #. ~ Description for {'str': 'fire barrel (100L)', 'str_pl': 'fire barrels #. (100L)'} -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py +#: lang/json/TOOL_from_json.py msgid "" "A large metal barrel used to contain a fire. It has multiple holes punched " "in its walls for air supply. Fires set in a fire barrel will not spread to " @@ -78865,18 +77691,6 @@ msgstr[0] "手機 - 手電筒模式" msgid "You stop lighting up the screen." msgstr "你關掉螢幕亮光。" -#: lang/json/TOOL_from_json.py -msgid "control laptop" -msgid_plural "control laptops" -msgstr[0] "操控用筆記型電腦" - -#. ~ Description for {'str': 'control laptop'} -#: lang/json/TOOL_from_json.py -msgid "" -"A modified laptop, now capable of transmitting in the ultra-high frequencies" -" utilized by robots. Activate it to command robots from afar." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "directional antenna" msgid_plural "directional antennas" @@ -78920,7 +77734,6 @@ msgid_plural "electrohacks" msgstr[0] "電子駭客" #. ~ Description for {'str': 'electrohack'} -#. ~ Description for electrohack #: lang/json/TOOL_from_json.py msgid "" "This device has many ports attached, allowing it to connect to almost any " @@ -79066,11 +77879,13 @@ msgstr[0] "智慧型手機" #. ~ Use action msg for {'str': 'smartphone'}. #. ~ Use action msg for {'str': 'atomic smartphone'}. #. ~ Use action msg for {'str': "Wraitheon executive's smartphone"}. +#. ~ Use action msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." msgstr "你啟動了手電筒 app。" #. ~ Use action need_charges_msg for {'str': 'smartphone'}. +#. ~ Use action need_charges_msg for {'str': 'test smartphone'}. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." msgstr "這支智慧型手機的電力不足。" @@ -79212,8 +78027,8 @@ msgstr[0] "鎖匠工具" msgid "" "This is a locksmith's set of sturdy steel lock picks and torsion wrenches. " "It is essential for silently and quickly opening locks, provided you have " -"some mechanical skill." -msgstr "這是一副鎖匠的開鎖工具。想安靜迅速的打開鎖必定少不了, 前提是你要有一定的機械技能。" +"some lock picking and mechanical skills." +msgstr "" #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -79652,7 +78467,6 @@ msgid_plural "active EMP grenades" msgstr[0] "啟動中電磁脈衝手榴彈" #. ~ Description for {'str': 'active EMP grenade'} -#. ~ Description for active EMP grenade #: lang/json/TOOL_from_json.py msgid "" "This EMP grenade is active, and will shortly detonate, creating a large EMP " @@ -81684,18 +80498,6 @@ msgstr[0] "汽車喇叭" msgid "This is a car horn meant to be attached to a car's electrical system." msgstr "這是一個汽車喇叭, 只能連接在汽車的電子系統才有效用。" -#: lang/json/TOOL_from_json.py -msgid "Kevlar plate" -msgid_plural "Kevlar plates" -msgstr[0] "凱夫勒板" - -#. ~ Description for {'str': 'Kevlar plate'} -#: lang/json/TOOL_from_json.py -msgid "" -"This is a plate of reinforced Kevlar. It could be used to repair items made" -" of Kevlar." -msgstr "這是一塊強化的凱夫勒板, 能用於修理凱夫勒製成的物品。" - #: lang/json/TOOL_from_json.py msgid "large space heater" msgid_plural "large space heaters" @@ -81993,6 +80795,18 @@ msgid "" "around it." msgstr "一顆佈滿螺旋紋路與孔洞的石頭。雖然體積很大, 但是重量卻很輕。空氣似乎圍著它。" +#: lang/json/TOOL_from_json.py +msgid "sandbox kit" +msgid_plural "sandbox kits" +msgstr[0] "" + +#. ~ Description for {'str': 'sandbox kit'} +#: lang/json/TOOL_from_json.py +msgid "" +"A plastic bucket holding a small spade and rake, perfect to build sand " +"castles!" +msgstr "" + #: lang/json/TOOL_from_json.py msgid "whistle multitool" msgid_plural "whistle multitools" @@ -84931,11 +83745,10 @@ msgstr[0] "" #. knives'} #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked" -" pry bar at the bottom for opening simple things and bashing in heads. " -"Matte black finish helps it avoid flash in dim-light situations and tanto " -"tip allows for light-armor penetration. Blade length allows for decent " -"reach." +"A modified trench knife. Has a knuckleduster guard and a small, hooked pry " +"bar at the bottom. The matte black finish helps it avoid flash in dim-light " +"situations and tanto tip allows for light-armor penetration. Blade length " +"allows for decent reach." msgstr "" #: lang/json/TOOL_from_json.py @@ -84959,9 +83772,9 @@ msgstr[0] "" #. ~ Description for CRIT Reso-blade #: lang/json/TOOL_from_json.py msgid "" -"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " -"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " -"thrums from within." +"CRIT melee weapon. Alien runes adorn the carbon steel blade. The blade " +"oddly seems to lack sharpness, and yet upon closer oberservation, a hum of " +"energy thrums from within." msgstr "" #: lang/json/TOOL_from_json.py @@ -85915,970 +84728,6 @@ msgid "" "magical metals into their workable ingot form." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "Dusk" -msgid_plural "Dusks" -msgstr[0] "暮色之劍" - -#. ~ Description for Dusk -#: lang/json/TOOL_from_json.py -msgid "" -"A longsword, made out of a very dark, almost black metal. It seems to hold " -"a greater edge than usual steel blades and feels …more comfortable in the " -"hand. While the blade is made out of this dark metal, the crossguard and " -"the pommel seem to be made out of a brighter material, which feels " -"abnormally cool to the touch." -msgstr "" - -#. ~ Description for disarmed defense turret -#: lang/json/TOOL_from_json.py -msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "自動化防禦砲塔。它缺少整合於內的武器。" - -#. ~ Description for disarmed military turret -#: lang/json/TOOL_from_json.py -msgid "An automated military turret. It lacks an integrated weapon." -msgstr "自動化軍用砲塔。它缺少整合於內的武器。" - -#. ~ Description for disarmed advanced turret -#: lang/json/TOOL_from_json.py -msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "高階自動化砲塔。它缺少整合於內的武器。" - -#: lang/json/TOOL_from_json.py -msgid "inactive 9mm defense turret" -msgid_plural "inactive 9mm defense turrets" -msgstr[0] "未啟動的9mm防禦砲塔" - -#. ~ Description for inactive 9mm defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 9mm defense turret. Up to 100 standard 9mm rounds will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive shotgun defense turret" -msgid_plural "inactive shotgun defense turrets" -msgstr[0] "未啟動的霰彈槍防禦砲塔" - -#. ~ Description for inactive shotgun defense turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive shotgun defense turret. Up to 100 standard 12ga shells will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. Consult your safety manual in the event of a malfunction." -msgstr "" - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riotcontrol turret. Up to 50 standard 40mm less-than-lethal " -"beanbag canisters will be automatically loaded from your inventory into the " -"turret upon activation. Place the turret and it will ID you as friendly " -"with its advanced IFF software. Consult your safety manual in the event of " -"a malfunction." -msgstr "" - -#. ~ Description for inactive riot control turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive riot control turret. Up to 50 standard 40mm teargas canisters " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive 5.56mm military turret" -msgid_plural "inactive 5.56mm military turrets" -msgstr[0] "未啟動的5.56mm軍用砲塔" - -#. ~ Description for inactive 5.56mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 5.56mm military turret. Up to 100 standard 5.56mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive 7.62mm military turret" -msgid_plural "inactive 7.62mm military turrets" -msgstr[0] "未啟動的7.62mm軍用砲塔" - -#. ~ Description for inactive 7.62mm military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 7.62mm military turret. Up to 100 standard 7.62mm NATO rounds " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive 50 caliber military turret" -msgid_plural "inactive 50 caliber military turrets" -msgstr[0] "未啟動的50口徑軍用砲塔" - -#. ~ Description for inactive 50 caliber military turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive 50 caliber military turret. Up to 100 standard 50 caliber bmg " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military needle turret" -msgid_plural "inactive military needle turrets" -msgstr[0] "未啟動的軍用鋼鏢砲塔" - -#. ~ Description for inactive military needle turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced needle turret. Up to 100 standard 5x50mm flechette " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military 8x40mm turret" -msgid_plural "inactive military 8x40mm turrets" -msgstr[0] "未啟動的軍用8x40mm砲塔" - -#. ~ Description for inactive military 8x40mm turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced 8x40mm turret. Up to 100 standard 8x40mm caseless " -"rounds will be automatically loaded from your inventory into the turret upon" -" activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military 40mm grenade turret" -msgid_plural "inactive military 40mm grenade turrets" -msgstr[0] "未啟動的軍用40mm榴彈砲塔" - -#. ~ Description for inactive military 40mm grenade turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive military grenade turret. Up to 50 standard 40mm fragmentation " -"grenades will be automatically loaded from your inventory into the turret " -"upon activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military flamethrower turret" -msgid_plural "inactive military flamethrower turrets" -msgstr[0] "未啟動的軍用火焰噴射砲塔" - -#. ~ Description for inactive military flamethrower turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive flame turret. Up to 100 units of napalm will be automatically " -"loaded from your inventory into the turret upon activation. Place the " -"turret and it will ID you as friendly with its advanced IFF software. " -"Consult your safety manual in the event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced laser turret" -msgid_plural "inactive advanced laser turrets" -msgstr[0] "未啟動的先進雷射砲塔" - -#. ~ Description for inactive advanced laser turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced laser turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced plasma turret" -msgid_plural "inactive advanced plasma turrets" -msgstr[0] "未啟動的先進電漿砲塔" - -#. ~ Description for inactive advanced plasma turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced plasma turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced railgun turret" -msgid_plural "inactive advanced railgun turrets" -msgstr[0] "未啟動的先進磁軌砲砲塔" - -#. ~ Description for inactive advanced railgun turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced railgun turret. Up to 50 standard rail projectiles " -"will be automatically loaded from your inventory into the turret upon " -"activation. Place the turret and it will ID you as friendly with its " -"advanced IFF software. Consult your safety manual in the event of a " -"malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced acid turret" -msgid_plural "inactive advanced acid turrets" -msgstr[0] "未啟動的先進酸液砲塔" - -#. ~ Description for inactive advanced acid turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced acid turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced EMP turret" -msgid_plural "inactive advanced EMP turrets" -msgstr[0] "未啟動的先進電磁脈衝砲塔" - -#. ~ Description for inactive advanced EMP turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced EMP turret. Place the turret and it will ID you as " -"friendly with its advanced IFF software. Consult your safety manual in the " -"event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced electro turret" -msgid_plural "inactive advanced electro turrets" -msgstr[0] "未啟動的先進電子砲塔" - -#. ~ Description for inactive advanced electro turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive advanced electro turret. Place the turret and it will ID you as" -" friendly with its advanced IFF software. Consult your safety manual in the" -" event of a malfunction." -msgstr "" - -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "garden gnome" -msgid_plural "garden gnomes" -msgstr[0] "花園地侏" - -#. ~ Description for garden gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. You can place him in your " -"garden or elsewhere." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "gaurdin gnome" -msgid_plural "gaurdin gnomes" -msgstr[0] "守衛地侏" - -#. ~ Description for gaurdin gnome -#: lang/json/TOOL_from_json.py -msgid "" -"A normal and completely harmless garden gnome. He holds up to 100 rounds of" -" 9mm ammo." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "small batch of curdling milk" -msgid_plural "small batches of curdling milk" -msgstr[0] "小批凝化乳" - -#. ~ Use action msg for {'str': 'small batch of curdling milk', 'str_pl': -#. 'small batches of curdling milk'}. -#. ~ Use action msg for {'str': 'batch of curdling milk', 'str_pl': 'batches -#. of curdling milk'}. -#. ~ Use action msg for {'str': 'large batch of curdling milk', 'str_pl': -#. 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "" -"The milk appears to have finished curdling, and is ready for further " -"processing. Checking on it has exposed the mixture to the atmosphere." -msgstr "牛奶似乎已經凝固, 並且準備好進一步加工。它現已開封並暴露於大氣中。" - -#. ~ Use action not_ready_msg for {'str': 'small batch of curdling milk', -#. 'str_pl': 'small batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'batch of curdling milk', 'str_pl': -#. 'batches of curdling milk'}. -#. ~ Use action not_ready_msg for {'str': 'large batch of curdling milk', -#. 'str_pl': 'large batches of curdling milk'}. -#: lang/json/TOOL_from_json.py -msgid "The milk is still curdling." -msgstr "這個牛奶仍在凝結著。" - -#. ~ Description for {'str': 'small batch of curdling milk', 'str_pl': 'small -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed small waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "一個密封的小皮製水袋, 裝滿了牛奶。牛奶添加了醋和天然凝乳酶, 正在轉化成一種原始的起司。" - -#: lang/json/TOOL_from_json.py -msgid "batch of curdling milk" -msgid_plural "batches of curdling milk" -msgstr[0] "一批凝化乳" - -#. ~ Description for {'str': 'batch of curdling milk', 'str_pl': 'batches of -#. curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed waterskin filled with milk that is undergoing the process to become" -" a crude form of cheese, having had vinegar and natural rennet added." -msgstr "一個密封的皮製水袋, 裝滿了牛奶。牛奶添加了醋和天然凝乳酶, 正在轉化成一種原始的起司。" - -#: lang/json/TOOL_from_json.py -msgid "large batch of curdling milk" -msgid_plural "large batches of curdling milk" -msgstr[0] "大批凝化乳" - -#. ~ Description for {'str': 'large batch of curdling milk', 'str_pl': 'large -#. batches of curdling milk'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sealed large waterskin filled with milk that is undergoing the process to " -"become a crude form of cheese, having had vinegar and natural rennet added." -msgstr "一個密封的大皮製水袋, 裝滿了牛奶。牛奶添加了醋和天然凝乳酶, 正在轉化成一種原始的起司。" - -#: lang/json/TOOL_from_json.py -msgid "heavy snare kit" -msgid_plural "heavy snare kits" -msgstr[0] "重型繩套工具" - -#. ~ Use action done_message for heavy snare kit. -#. ~ Use action done_message for light snare kit. -#: lang/json/TOOL_from_json.py -msgid "You set the snare trap." -msgstr "你設置了繩套陷阱。" - -#. ~ Description for heavy snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a rope noose and a snare " -"trigger. It requires a tree nearby. It is effective at trapping monsters." -msgstr "這個陷阱包含一個繩索套與聯接繩, 同時需要一棵樹才可以設置。能夠有效的困住怪物。" - -#: lang/json/TOOL_from_json.py -msgid "light snare kit" -msgid_plural "light snare kits" -msgstr[0] "輕型繩套工具" - -#. ~ Description for light snare kit -#: lang/json/TOOL_from_json.py -msgid "" -"This is a kit for a simple trap consisting of a string noose and a snare " -"trigger. It requires a young tree nearby. It is effective at trapping and " -"killing some small animals." -msgstr "簡易陷阱工具箱, 含有一個活結和繩套觸發器。需要附近有小樹。能夠有效的困住和殺死小動物。" - -#: lang/json/TOOL_from_json.py -msgid "snare trigger" -msgid_plural "snare triggers" -msgstr[0] "觸發陷阱" - -#. ~ Description for snare trigger -#: lang/json/TOOL_from_json.py -msgid "" -"This is a stick that has been cut into a trigger mechanism for a snare trap." -msgstr "一根木材被削成繩套陷阱的觸發裝置。" - -#. ~ Description for Laevateinn -#: lang/json/TOOL_from_json.py -msgid "" -"A replica of Laevateinn, the sword of Freyr. It is rumored to be able to " -"fight by itself. It is decorated with gold and silver ornaments." -msgstr "勝利之劍雷瓦汀, 豐饒之神弗雷的佩劍複製品。傳說能獨自飛舞殺敵。武器上有金銀裝飾。" - -#: lang/json/TOOL_from_json.py -msgid "inactive craftbuddy" -msgid_plural "inactive craftbuddies" -msgstr[0] "" - -#. ~ Description for {'str': 'inactive craftbuddy', 'str_pl': 'inactive -#. craftbuddies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A robot crafting assistant. Useable in its current state as a portable " -"workbench, or deployable as a traveling companion." -msgstr "" - -#. ~ Description for light auto armor -#. ~ Description for basic auto armor -#. ~ Description for heavy auto armor -#: lang/json/TOOL_from_json.py -msgid "" -"A set of light power armor fitted with an AI core for automated use. " -"Activate it to deploy the robot or disassemble it to use as armor." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "basic auto armor" -msgid_plural "basic auto armors" -msgstr[0] "基本型自動裝甲" - -#: lang/json/TOOL_from_json.py -msgid "inactive hack" -msgid_plural "inactive hacks" -msgstr[0] "未啟動的無人機" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating lantern" -msgid_plural "inactive floating lanterns" -msgstr[0] "未啟動的懸浮燈籠" - -#. ~ Use action friendly_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "The floating lantern flies from your hand and lights up the area!" -msgstr "懸浮燈籠從你手中飛出,開始照亮區域。" - -#. ~ Use action hostile_msg for inactive floating lantern. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the lantern." -msgstr "你把懸浮燈籠的程式搞亂了。" - -#. ~ Description for inactive floating lantern -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive floating lantern, a fist-sized robots that flies through the air" -" and illuminates its surroundings with bright LEDs. The lantern is non " -"aggressive and has no means of attack. Activate this item to deploy the " -"salvaged robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive distract-o-hack" -msgid_plural "inactive distract-o-hacks" -msgstr[0] "未啟動的誘餌無人機" - -#. ~ Use action friendly_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "The distract-o-hack flies from your hand and begins sparking!" -msgstr "誘餌無人機從你的手中飛出,開始發出火花。" - -#. ~ Use action hostile_msg for inactive distract-o-hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the distract-o-hack!" -msgstr "你把誘餌無人機的程式搞亂了。" - -#. ~ Description for inactive distract-o-hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive distract-o-hack, a fist-sized robot that flies through the air " -"emitting noise, smoke, and sparks. The salvaged robot has no weapons, but " -"will harass hostile targets to draw their attention. Activate this item to " -"deploy the robot. It cannot be recovered once activated." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive arson hack" -msgid_plural "inactive arson hacks" -msgstr[0] "未啟動的縱火無人機" - -#. ~ Use action friendly_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "The arson hack flies from your hand! Get clear!" -msgstr "縱火無人機從你的手中飛出!保持距離!" - -#. ~ Use action hostile_msg for inactive arson hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the arson hack! Run!" -msgstr "" - -#. ~ Description for inactive arson hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive arson hack, a fist-sized robot that flies through the air " -"chaotically spreading deadly fires. The salvaged robot has no weapons, but " -"will emit intermittent bursts of flame as it moves toward hostile targets. " -"Activate this item to deploy the robot. It cannot be recovered once " -"activated." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive spore hack" -msgid_plural "inactive spore hacks" -msgstr[0] "未啟動的孢子無人機" - -#. ~ Use action friendly_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "The spore hack flies from your hand!" -msgstr "孢子無人機從你的手中飛出!" - -#. ~ Use action hostile_msg for inactive spore hack. -#: lang/json/TOOL_from_json.py -msgid "You misprogram the spore hack!" -msgstr "你把孢子無人機的程式搞亂了。" - -#. ~ Description for inactive spore hack -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive spore hack, a fist-sized robot that flies through the air " -"spreading alien contaminants. The robot will dust hostile targets, and " -"intermittently cover the terrain with puffs of fungal spores. Activate this" -" item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive water turret" -msgid_plural "inactive water turrets" -msgstr[0] "未啟動的水砲塔" - -#. ~ Description for inactive water turret -#: lang/json/TOOL_from_json.py -msgid "" -"An inactive watercannon defense turret. Up to 1000 units of water will be " -"automatically loaded from your inventory into the turret upon activation. " -"Place the turret and it will ID you as friendly with its advanced IFF " -"software. There is no safety manual." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating heater" -msgid_plural "inactive floating heaters" -msgstr[0] "" - -#. ~ Description for inactive floating heater -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of warm air to heat an enclosed space. It is non-aggressive " -"and has no weapons systems. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive floating furnace" -msgid_plural "inactive floating furnaces" -msgstr[0] "" - -#. ~ Description for inactive floating furnace -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot repurposed into a floating space heater. It emits a " -"constant jet of dangerously hot air to heat an enclosed space. It is non-" -"aggressive and has no weapons systems. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive burning eye" -msgid_plural "inactive burning eyes" -msgstr[0] "" - -#. ~ Description for inactive burning eye -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged eyebot refitted with a laser weapon which it will use on hostile " -"targets. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive utilibot" -msgid_plural "inactive utilibots" -msgstr[0] "" - -#: lang/json/TOOL_from_json.py -msgid "inactive blob breeder" -msgid_plural "inactive blob breeders" -msgstr[0] "" - -#. ~ Description for inactive blob breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob. It is non aggressive and has no weapon systems. You can activate " -"this item to deploy the robot and begin the incubation process, but you " -"probably shouldn't." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive slime breeder" -msgid_plural "inactive slime breeders" -msgstr[0] "未啟動的黏液飼養器" - -#. ~ Description for inactive slime breeder -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into a mobile incubator for the alien " -"blob, and upgraded to only produce friendly slimes. It is non aggressive " -"and has no weapon systems. You can activate this item to deploy the robot " -"and begin the incubation process." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive digestron" -msgid_plural "inactive digestrons" -msgstr[0] "未啟動的烹飪機器人" - -#. ~ Description for inactive digestron -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an automated vacuum cleaner. It " -"will suck stray items off the ground and dissolve them with its internal " -"acid reserves. It is non aggressive and has no weapon systems. Activate " -"this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive bee-bot" -msgid_plural "inactive bee-bots" -msgstr[0] "未啟動的蜜蜂機器人" - -#. ~ Description for inactive bee-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged utility robot converted into an ambulatory bee hive that " -"periodically removes and delivers segments of fresh honey comb. It protects" -" the insect colony with a mechanical crossbow mounted to its chassis. " -"Activate this item, with wooden bolts in your inventory, to load and deploy " -"the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive medibot" -msgid_plural "inactive medibots" -msgstr[0] "未啟動的醫療機器人" - -#: lang/json/TOOL_from_json.py -msgid "inactive assassin robot" -msgid_plural "inactive assassin robots" -msgstr[0] "未啟動的暗殺機器人" - -#. ~ Description for inactive assassin robot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medical robot repurposed into a murder machine. It will attack " -"hostile targets with a set of blades and a toxic needle. Activate this item" -" to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive elixirator" -msgid_plural "inactive elixirators" -msgstr[0] "未啟動的煉藥機器人" - -#. ~ Description for inactive elixirator -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot with its internal pharma-fabricators repurposed to " -"produce mutagen. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive party bot" -msgid_plural "inactive party bots" -msgstr[0] "未啟動的派對機器人" - -#. ~ Description for inactive party bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged medibot stuffed with marijuana, covered in multicolored blinking " -"lights, and programmed to dance. Activate this item to get the party " -"started." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive rat snatcher" -msgid_plural "inactive rat snatchers" -msgstr[0] "未啟動的捕鼠者" - -#. ~ Description for inactive rat snatcher -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed for hunting small game. It attacks targets" -" with pincers and an integrated tazer. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive grab-bot" -msgid_plural "inactive grab-bots" -msgstr[0] "未啟動的抓鉤機器人" - -#. ~ Description for inactive grab-bot -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot repurposed to grab onto and immobilize enemies. " -"Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive pest hunter" -msgid_plural "inactive pest hunters" -msgstr[0] "未啟動的害蟲獵手" - -#. ~ Description for inactive pest hunter -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged skitterbot refitted with an 8mm integrated firearm. Activate " -"this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive cyborg" -msgid_plural "inactive cyborgs" -msgstr[0] "未啟動的生化人" - -#: lang/json/TOOL_from_json.py -msgid "inactive necrotic cyborg" -msgid_plural "inactive necrotic cyborgs" -msgstr[0] "未啟動的壞死生化人" - -#. ~ Description for inactive necrotic cyborg -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged cyborg refitted with the head of a zombie necromancer. The " -"animate head retains some of its ability to revive zombies. Activate this " -"item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive defense robot" -msgid_plural "inactive defense robots" -msgstr[0] "未啟動的防禦機器人" - -#: lang/json/TOOL_from_json.py -msgid "inactive junkyard cowboy" -msgid_plural "inactive junkyard cowboys" -msgstr[0] "未啟動的垃圾場牛仔" - -#. ~ Description for inactive junkyard cowboy -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a shotgun and two circular buzzsaws." -" Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive shortcircuit samurai" -msgid_plural "inactive shortcircuit samurais" -msgstr[0] "未啟動的秀斗武士" - -#. ~ Description for inactive shortcircuit samurai -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with an integrated tazer and two " -"electrified blades. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive slapdash paladin" -msgid_plural "inactive slapdash paladins" -msgstr[0] "未啟動的速成聖騎士" - -#. ~ Description for inactive slapdash paladin -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged defense robot refitted with a homemade flamethrower and two " -"searing hot blades. Activate this item, with gasoline in your inventory, to" -" load and deploy the robot… preferably far from anything flammable" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive military robot" -msgid_plural "inactive military robots" -msgstr[0] "未啟動的軍用機器人" - -#. ~ Description for inactive military robot -#: lang/json/TOOL_from_json.py -msgid "" -"An unpowered military robot fitted with an integrated 7.62 firearm and " -"electric prod. Activate this item, with ammo in your inventory, to load and" -" deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-guardian" -msgid_plural "inactive robo-guardians" -msgstr[0] "未啟動的機械守衛" - -#. ~ Description for inactive robo-guardian -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with a pair of integrated 9mm firearms. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive robote deluxe" -msgid_plural "inactive robote deluxes" -msgstr[0] "未啟動的豪華機器人" - -#. ~ Description for inactive robote deluxe -#: lang/json/TOOL_from_json.py -msgid "" -"A diamond-studded gold-plated robot armed with a pair of integrated 9mm " -"firearms. An opulent luxury-bot suitable for those who wish to survive the " -"apocalypse in style. Activate this item, with ammo in your inventory, to " -"load and deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-protector" -msgid_plural "inactive robo-protectors" -msgstr[0] "未啟動的機械保衛者" - -#. ~ Description for inactive robo-protector -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 5.56mm rifle. " -"Activate this item, with ammo in your inventory, to load and deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive robo-defender" -msgid_plural "inactive robo-defenders" -msgstr[0] "未啟動的機械防禦者" - -#. ~ Description for inactive robo-defender -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot refitted with an integrated 50bmg rifle. Activate" -" this item, with ammo in your inventory, to load and deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive advanced robot" -msgid_plural "inactive advanced robots" -msgstr[0] "未啟動的先進機器人" - -#: lang/json/TOOL_from_json.py -msgid "inactive glittering lady" -msgid_plural "inactive glittering ladies" -msgstr[0] "" - -#. ~ Description for {'str': 'inactive glittering lady', 'str_pl': 'inactive -#. glittering ladies'} -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged advanced robot transformed into a luminous beacon of destruction." -" It attacks hostile targets with its two integral lasers and blinding " -"flashes. Activate this item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive bitter spinster" -msgid_plural "inactive bitter spinsters" -msgstr[0] "未啟動的苦澀敗犬" - -#. ~ Description for inactive bitter spinster -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged military robot transformed into a caustic monster. An internal " -"acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " -"to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive chickenwalker" -msgid_plural "inactive chickenwalkers" -msgstr[0] "未啟動的雙足步行機器人" - -#: lang/json/TOOL_from_json.py -msgid "inactive chainsaw horror" -msgid_plural "inactive chainsaw horrors" -msgstr[0] "未啟動的恐怖電鋸" - -#. ~ Description for inactive chainsaw horror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of whirring " -"chainsaws and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive screeching terror" -msgid_plural "inactive screeching terrors" -msgstr[0] "未啟動的尖嘯恐懼" - -#. ~ Description for inactive screeching terror -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of piston-driven " -"lances and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive hooked nightmare" -msgid_plural "inactive hooked nightmares" -msgstr[0] "未啟動的沉醉夢魘" - -#. ~ Description for inactive hooked nightmare -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged chickenwalker modified into a horrific monster adorned with " -"skulls and spikes. It attacks hostile targets with a pair of spinning hooks" -" on chains and a deafening sound system. Activate this item to deploy the " -"robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive tankbot" -msgid_plural "inactive tankbots" -msgstr[0] "未啟動的坦克機器人" - -#: lang/json/TOOL_from_json.py -msgid "inactive fist king" -msgid_plural "inactive fist kings" -msgstr[0] "未啟動的拳王" - -#. ~ Description for inactive fist king -#. ~ Description for inactive atomic sultan -#: lang/json/TOOL_from_json.py -msgid "" -"A salvaged tankbot refitted with a pair of powerful pneumatic hammers which " -"it uses to crush anything in its way, including buildings. Activate this " -"item to deploy the robot." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "inactive atomic sultan" -msgid_plural "inactive atomic sultans" -msgstr[0] "" - -#: lang/json/TOOL_from_json.py -msgid "active glowball" -msgid_plural "active glowballs" -msgstr[0] "" - -#. ~ Use action msg for active glowball. -#: lang/json/TOOL_from_json.py -msgid "The glowball goes dim." -msgstr "螢光球變暗了。" - -#. ~ Description for active glowball -#: lang/json/TOOL_from_json.py -msgid "A small plastic ball filled with glowing chemicals." -msgstr "一個小塑膠球裝滿了發光的化學物質。" - #: lang/json/TOOL_from_json.py msgid "TEST rag" msgid_plural "TEST rags" @@ -86920,427 +84769,24 @@ msgid_plural "TEST scissor jacks" msgstr[0] "" #: lang/json/TOOL_from_json.py -msgid "growing blob frame" -msgid_plural "growing blob frames" -msgstr[0] "成長中的黏稠框架" - -#. ~ Use action msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "" -"You test the frame; It wiggles, and then collapses into an lump of goo." -msgstr "你測試了這個框架。它蠕動著, 然後塌陷成一坨黏稠的物質。" - -#. ~ Use action not_ready_msg for {'str': 'growing blob frame'}. -#: lang/json/TOOL_from_json.py -msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "你測試了這個框架。它很容易變形, 還不夠堅固。" - -#. ~ Description for {'str': 'growing blob frame'} -#: lang/json/TOOL_from_json.py -msgid "" -"A growing vehicle frame made of bone. It's coated in a thick layer of ooze," -" though there's greater amounts on the bindings. It's not quite tough " -"enough to use." -msgstr "一個成長中的骨質車架。它塗著一層厚厚的軟泥, 尤其在接合處更多。它還沒強韌到可以使用。" - -#: lang/json/TOOL_from_json.py -msgid "growing keratinous mass" -msgid_plural "growing keratinous mass" -msgstr[0] "成長中的角質團塊" - -#. ~ Use action msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action msg for {'str_sp': 'growing ooze'}. -#. ~ Use action msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "The blob balloons to full size." -msgstr "團塊膨脹到了成熟尺寸。" - -#. ~ Use action not_ready_msg for {'str_sp': 'growing keratinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing beaded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing icy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing cold mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing hairy mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gelatinous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing glowing mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gray mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spike-studded mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing gasoline-laced mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing acidic mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing ooze'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing mass of tendrils'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiked mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiny mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing spiky mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing bright mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing viscous mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing warm mass'}. -#. ~ Use action not_ready_msg for {'str_sp': 'growing electrified mass'}. -#: lang/json/TOOL_from_json.py -msgid "Whatever it's doing, it's not done yet." -msgstr "不管它在做什麼, 它還沒完成。" - -#. ~ Description for {'str_sp': 'growing keratinous mass'} -#. ~ Description for {'str_sp': 'growing beaded mass'} -#. ~ Description for {'str_sp': 'growing icy mass'} -#. ~ Description for {'str_sp': 'growing cold mass'} -#. ~ Description for {'str_sp': 'growing hairy mass'} -#. ~ Description for {'str_sp': 'growing gelatinous mass'} -#. ~ Description for {'str_sp': 'growing glowing mass'} -#. ~ Description for {'str_sp': 'growing gray mass'} -#. ~ Description for {'str_sp': 'growing spike-studded mass'} -#. ~ Description for {'str_sp': 'growing gasoline-laced mass'} -#. ~ Description for {'str_sp': 'growing acidic mass'} -#. ~ Description for {'str_sp': 'growing ooze'} -#. ~ Description for {'str_sp': 'growing mass of tendrils'} -#. ~ Description for {'str_sp': 'growing spiked mass'} -#. ~ Description for {'str_sp': 'growing spiny mass'} -#. ~ Description for {'str_sp': 'growing spiky mass'} -#. ~ Description for {'str_sp': 'growing bright mass'} -#. ~ Description for {'str_sp': 'growing viscous mass'} -#. ~ Description for {'str_sp': 'growing warm mass'} -#. ~ Description for {'str_sp': 'growing electrified mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Not quite fully grown, this blob requires nourishment to fully develop." -msgstr "還沒完全成熟, 這團黏稠物還需要養料來完全成長。" - -#: lang/json/TOOL_from_json.py -msgid "growing beaded mass" -msgid_plural "growing beaded mass" -msgstr[0] "成長中的珠狀團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing icy mass" -msgid_plural "growing icy mass" -msgstr[0] "成長中的冰冷團塊" - -#: lang/json/TOOL_from_json.py -msgid "gelacier" -msgid_plural "gelaciers" -msgstr[0] "凝膠冰川" - -#. ~ Description for {'str': 'gelacier'} -#: lang/json/TOOL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "growing cold mass" -msgid_plural "growing cold mass" -msgstr[0] "成長中的寒冷團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing hairy mass" -msgid_plural "growing hairy mass" -msgstr[0] "成長中的長毛團塊" - -#. ~ Use action msg for {'str_sp': 'gelatinous mass'}. -#. ~ Use action msg for {'str_sp': 'gray mass'}. -#. ~ Use action msg for {'str_sp': 'oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "You fumble as the blob starts to multiply rapidly!" -msgstr "" - -#. ~ Description for {'str_sp': 'gelatinous mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An experiment gone horribly right. While the original intent was to combine" -" the structure of a bone frame with the impact absorption of the blob; the " -"blob seems to have completely consumed the bone. Instead, what remains is " -"an amorphous mass of goo with what seems to be numerous thin filaments " -"floating within. With a bit of effort, you can grasp the fibers and stretch" -" the mass into a multitude of shapes. The mass is able to retain the new " -"shape even under force, though the mass yields at your touch. With enough " -"strength, you think you can pull it apart." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "multiplying gelatinous mass" -msgid_plural "multiplying gelatinous mass" -msgstr[0] "分裂中的凝膠團塊" - -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gelatinous mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying gray mass'}. -#. ~ Use action friendly_msg for {'str_sp': 'multiplying oozing mass'}. -#. ~ Use action hostile_msg for {'str_sp': 'multiplying oozing mass'}. -#: lang/json/TOOL_from_json.py -msgid "A blob splits and bounces away!" -msgstr "" - -#. ~ Description for {'str_sp': 'multiplying gelatinous mass'} -#. ~ Description for {'str_sp': 'multiplying gray mass'} -#. ~ Description for {'str_sp': 'multiplying oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"Having been fed, this blob is now rapidly multiplying into other copies of " -"itself; extremely noisy copies! And even worse, it's stuck to your hands " -"until whatever it's doing is done! Catch those blobs before they bring in " -"every zombie for miles!" -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "growing gelatinous mass" -msgid_plural "growing gelatinous mass" -msgstr[0] "成長中的凝膠團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing glowing mass" -msgid_plural "growing glowing mass" -msgstr[0] "成長中的發光團塊" - -#. ~ Description for {'str_sp': 'gray mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"This internal structures of this creature have developed significantly. " -"While retaining the resilience and malleability of its once simpler form, it" -" has gained the considerable abilities of perception and stimulus response." -" When directly threatened, it is able to shift and alter its microfibers, " -"hardening its membrane to an almost steel-hard shell. You can still pull it" -" apart with enough force. It's also really gray." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "multiplying gray mass" -msgid_plural "multiplying gray mass" -msgstr[0] "分裂中的灰質團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing gray mass" -msgid_plural "growing gray mass" -msgstr[0] "成長中的灰質團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing spike-studded mass" -msgid_plural "growing spike-studded mass" -msgstr[0] "成長中的滿鑲長釘團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing gasoline-laced mass" -msgid_plural "growing gasoline-laced mass" -msgstr[0] "成長中的飽含汽油團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing acidic mass" -msgid_plural "growing acidic mass" -msgstr[0] "成長中的酸性團塊" - -#: lang/json/TOOL_from_json.py -msgid "oozing mass" -msgid_plural "oozing mass" -msgstr[0] "軟泥團塊" - -#. ~ Description for {'str_sp': 'oozing mass'} -#: lang/json/TOOL_from_json.py -msgid "" -"An amorphous mass that has undergone a significant growth. In addition to " -"the increased amount of goo and sinuous filaments, it seems to have started " -"developing other internal structures. Like its smaller counterpart, it can " -"be shaped into various structures; albeit with significantly greater tensile" -" strength due to the increased number of supporting filaments. You believe " -"you can split it apart with enough force." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "multiplying oozing mass" -msgid_plural "multiplying oozing mass" -msgstr[0] "分裂中的軟泥團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing ooze" -msgid_plural "growing ooze" -msgstr[0] "成長中的軟泥" - -#: lang/json/TOOL_from_json.py -msgid "growing mass of tendrils" -msgid_plural "growing mass of tendrils" -msgstr[0] "成長中的卷鬚團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing spiked mass" -msgid_plural "growing spiked mass" -msgstr[0] "成長中的長釘團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing spiny mass" -msgid_plural "growing spiny mass" -msgstr[0] "成長中的帶刺團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing spiky mass" -msgid_plural "growing spiky mass" -msgstr[0] "成長中的多刺團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing bright mass" -msgid_plural "growing bright mass" -msgstr[0] "成長中的明亮團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing viscous mass" -msgid_plural "growing viscous mass" -msgstr[0] "成長中的黏性團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing warm mass" -msgid_plural "growing warm mass" -msgstr[0] "成長中的溫暖團塊" - -#: lang/json/TOOL_from_json.py -msgid "growing electrified mass" -msgid_plural "growing electrified mass" -msgstr[0] "成長中的帶電團塊" - -#: lang/json/TOOL_from_json.py -msgid "diamond cluster" -msgid_plural "diamond clusters" +msgid "test smartphone" +msgid_plural "test smartphones" msgstr[0] "" -#. ~ Use action msg for {'str': 'diamond cluster'}. +#. ~ Description for {'str': 'test smartphone'} #: lang/json/TOOL_from_json.py -msgid "The cluster comes apart in your hands." +msgid "UPS-powered smartphone with a flashlight, camera, and MP3 player." msgstr "" -#. ~ Description for {'str': 'diamond cluster'} #: lang/json/TOOL_from_json.py -msgid "" -"A cluster of artificial crystals that have broken off of a diamond matrix. " -"While the substance usually decays when separated from the catalyst; this " -"cluster seems to be self-sustaining by some unknown mechanism. " -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "diamond matrix" -msgid_plural "diamond matrices" +msgid "test matchbook" +msgid_plural "test matchbooks" msgstr[0] "" -#. ~ Use action msg for {'str': 'diamond matrix', 'str_pl': 'diamond -#. matrices'}. -#: lang/json/TOOL_from_json.py -msgid "" -"Your senses dull as you gaze into the depths of this gemstone's center…" -msgstr "" - -#. ~ Description for {'str': 'diamond matrix', 'str_pl': 'diamond matrices'} -#: lang/json/TOOL_from_json.py -msgid "" -"A sparkling diamond with a dazzling spiral pattern. Small pieces of " -"glittering crystal form on the edges as you hold it." -msgstr "" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex engine" -msgid_plural "vortex engines" -msgstr[0] "渦石引擎" - -#. ~ Description for {'str': 'vortex engine'} -#: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allows it to be attached to a vehicle to render " -"it mobile." -msgstr "" - -#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex generator" -msgid_plural "vortex generators" -msgstr[0] "渦石發電機" - -#. ~ Description for {'str': 'vortex generator'} +#. ~ Description for {'str': 'test matchbook'} #: lang/json/TOOL_from_json.py -msgid "" -"A tornado in a box, so to speak. Inside this innocuous tank contains either" -" the culmination of human innovation in clean energy, or a weapon of mass " -"destruction capable of wiping civilization - or what's left of it - off the " -"map. An external mechanism allow it to be hooked up to a battery to store " -"the power generated." -msgstr "" - -#: lang/json/TOOL_from_json.py -msgid "control chip" -msgid_plural "control chips" -msgstr[0] "控制晶片" - -#. ~ Description for control chip -#: lang/json/TOOL_from_json.py -msgid "" -"A small device, not bigger than a man's fist. It provides primitive " -"organisms with electric stimulation, reviving them and forcing them to obey " -"your commands. This version only works on blobs." -msgstr "一個比人類拳頭稍微小一點的晶片, 可以發出生物電流控制一些原始的有機生物, 讓他們聽你的話, 這個版本的晶片只對黏球怪有效。" - -#: lang/json/TOOL_from_json.py -msgid "dormant blob" -msgid_plural "dormant blobs" -msgstr[0] "休眠中的黏球怪" - -#. ~ Use action friendly_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "The blob becomes active and starts slithering around." -msgstr "這顆黏球怪醒了過來, 並且開始四處滑行。" - -#. ~ Use action hostile_msg for dormant blob. -#: lang/json/TOOL_from_json.py -msgid "You've made a terrible mistake, the blob is hostile!" -msgstr "你犯了一些可怕的錯誤, 這顆黏球怪現在處於敵對狀態!" - -#. ~ Description for dormant blob -#: lang/json/TOOL_from_json.py -msgid "" -"Several chunks of blob scraps, stuffed with a control chip and sewn back " -"together. A light shock from the UPS started the chip, bringing the blob " -"back to life. Use this item to wake up the blob." +msgid "Test matches - when you must burn things, for science!" msgstr "" -"幾塊黏球怪的碎片被縫回它原本應有的樣子, 但是裡面塞了一塊控制晶片。只要從 UPS 中發出輕微的電流就可以啟動那塊晶片, 並讓這顆黏液球活過來, " -"你現在可以把這個黏球怪從陰間召喚回來。" - -#: lang/json/TOOL_from_json.py -msgid "dormant minion" -msgid_plural "dormant minions" -msgstr[0] "休眠中的殭屍奴隸" - -#. ~ Use action friendly_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "The jabberwock climbs to its feet and shambles around." -msgstr "" - -#. ~ Use action hostile_msg for dormant minion. -#: lang/json/TOOL_from_json.py -msgid "" -"Something has gone wrong; after getting up the jabberwock lumbers toward you" -" menacingly!" -msgstr "" - -#. ~ Description for dormant minion -#: lang/json/TOOL_from_json.py -msgid "" -"Your very own undead servant. The blob controlling its body is in a state " -"of coma, awaiting your orders. Use this item to wake up the minion." -msgstr "只屬於你的不死奴僕, 有一顆黏球怪控制了它的身體, 現在正處於昏迷狀態, 你現在可以叫醒它。" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -87518,6 +84964,18 @@ msgid "" "very menacing." msgstr "一個漂亮的小輪胎。也許是那些賽格威電動車的。好像有點不可靠。" +#: lang/json/WHEEL_from_json.py +msgid "skate wheel" +msgid_plural "skate wheels" +msgstr[0] "" + +#. ~ Description for {'str': 'skate wheel'} +#: lang/json/WHEEL_from_json.py +msgid "" +"A very small plastic wheel with a punk attitude. This wheel was made for " +"skating." +msgstr "" + #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" msgid_plural "sets of tricycle wheels" @@ -87594,158 +85052,66 @@ msgstr[0] "" msgid "A column of mana energy that enables a floating disk to move." msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Rubber Caterpillar Track" -msgid_plural "Rubber Caterpillar Tracks" -msgstr[0] "" - -#. ~ Description for {'str': 'Rubber Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of hard rubber tracks reinforced by stiff wire " -"held in place by a set of smaller wheels. Similar with what you might see " -"used on light construction vehicles. It's significantly stronger than " -"regular tires due to not being at risk of bursting; but is quite heavy." +#: lang/json/achievement_from_json.py +msgid "One down, billions to go…" msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Steel Caterpillar Track" -msgid_plural "Steel Caterpillar Tracks" -msgstr[0] "" - -#. ~ Description for {'str': 'Steel Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on large construction " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is very heavy." +#: lang/json/achievement_from_json.py +msgid "Rude awakening" msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Reinforced Caterpillar Track" -msgid_plural "Reinforced Caterpillar Tracks" -msgstr[0] "" - -#. ~ Description for {'str': 'Reinforced Caterpillar Track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of shaped steel tracks held in place by a set of " -"smaller wheels. Similar with what you might see used on APCs and armored " -"vehicles. It's significantly stronger than regular tires due to not being " -"at risk of bursting; but is extremely heavy." +#: lang/json/achievement_from_json.py +msgid "Decamate" msgstr "" -#: lang/json/WHEEL_from_json.py -msgid "Gelatinous track" -msgid_plural "Gelatinous tracks" -msgstr[0] "" - -#. ~ Description for {'str': 'Gelatinous track'} -#. ~ Description for {'str': 'Oozing track'} -#. ~ Description for {'str': 'Gray track'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A short, interlocking set of tracks created out of some of your monstrosity " -"blob based parts. Similar with what you might see used on light " -"construction vehicles. It's significantly stronger than regular tires due " -"to not being at risk of bursting; but is quite heavy." -msgstr "從你的怪異凝膠產生的一組環環相扣的短履帶。就像你在輕型工程車上看到的一樣。由於沒有爆胎的風險,因此它比一般的輪胎更堅固耐用,但是它非常重。" - -#: lang/json/WHEEL_from_json.py -msgid "Oozing track" -msgid_plural "Oozing tracks" -msgstr[0] "" - -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "Gray track" -msgid_plural "Gray tracks" -msgstr[0] "" - -#: lang/json/WHEEL_from_json.py -msgid "gelacier wheel" -msgid_plural "gelacier wheels" -msgstr[0] "" - -#. ~ Description for {'str': 'gelacier wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A biological mystery, this blob's internal structures exist in within a pool" -" of low-density fluid that remains liquid despite being in a super-cooled " -"state; yet possesses all the malleability of its former self. Fragments of " -"frost continually flake off it. It has formed itself into a wide, crude " -"wheel." +#: lang/json/achievement_from_json.py +msgid "Centinel" msgstr "" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gelatinous wheel" -msgid_plural "gelatinous wheels" -msgstr[0] "" - -#. ~ Description for {'str': 'gelatinous wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gelatinous mass with water has resulted in something that appears " -"to be a cross between a wheel, an otherworldly abomination, and one of those" -" old squeezy toys." -msgstr "用水填充入凝膠狀物質, 型塑出一種十字狀物, 介於超凡憎惡的輪胎與老舊的擠壓玩具之間。" +#: lang/json/achievement_from_json.py +msgid "The first day of the rest of their unlives" +msgstr "" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "gray wheel" -msgid_plural "gray wheels" -msgstr[0] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a day and find a safe place to sleep" +msgstr "" -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling a gray mass with water has resulted in something that appears to be " -"a cross between a wheel, an otherworldly abomination, and one of those old " -"squeezy toys." +#: lang/json/achievement_from_json.py +msgid "Thank God it's Friday" msgstr "" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "earthen roller" -msgid_plural "earthen rollers" -msgstr[0] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a week" +msgstr "" -#. ~ Description for {'str': 'earthen roller'} -#: lang/json/WHEEL_from_json.py -msgid "" -"A large, spherical blob the size of a large truck tire. The outer layer has" -" compacted itself into a solid shell; offering great resilience. Having " -"grown to full size, it seems content to simply sit there." +#: lang/json/achievement_from_json.py +msgid "28 days later" msgstr "" -#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py -msgid "oozing wheel" -msgid_plural "oozing wheels" -msgstr[0] "" +#: lang/json/achievement_from_json.py +msgid "Survive for a month" +msgstr "" -#. ~ Description for {'str': 'oozing wheel'} -#: lang/json/WHEEL_from_json.py -msgid "" -"Filling an oozing mass with water has resulted in something that appears to " -"be a cross between a wheel, an otherworldly abomination, and one of those " -"old squeezy toys." +#: lang/json/achievement_from_json.py +msgid "A time to every purpose under heaven" msgstr "" #: lang/json/achievement_from_json.py -msgid "One down, billions to go…" +msgid "Survive for a season" msgstr "" #: lang/json/achievement_from_json.py -msgid "Rude awakening" +msgid "Brighter days ahead?" msgstr "" #: lang/json/achievement_from_json.py -msgid "The first day of the rest of their unlives" +msgid "Survive for a year" msgstr "" #: lang/json/achievement_from_json.py msgid "Pheidippides was a hack" msgstr "" -#. ~ Description for Pheidippides was a hack #: lang/json/achievement_from_json.py msgid "Run a marathon…plus a little bit more." msgstr "" @@ -87754,7 +85120,6 @@ msgstr "" msgid "Please don't fall down at my door" msgstr "" -#. ~ Description for Please don't fall down at my door #: lang/json/achievement_from_json.py msgid "Walk 500 miles, then walk 500 more." msgstr "" @@ -87775,6 +85140,18 @@ msgstr "" msgid "Ain't no valley low enough" msgstr "" +#: lang/json/achievement_from_json.py +msgid "Freeman's favorite" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "Impenetrable" +msgstr "" + +#: lang/json/achievement_from_json.py +msgid "What are they hiding?" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "reloading" msgstr "重新裝填" @@ -87903,10 +85280,6 @@ msgstr "" msgid "de-stressing" msgstr "紓壓" -#: lang/json/activity_type_from_json.py -msgid "cutting tissues" -msgstr "切割組織" - #: lang/json/activity_type_from_json.py msgid "dropping" msgstr "丟棄" @@ -88336,10 +85709,6 @@ msgstr "電池" msgid "cents" msgstr "分" -#: lang/json/ammunition_type_from_json.py -msgid "plutonium" -msgstr "鈽" - #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" msgstr "12mm 獨頭霰彈" @@ -88464,14 +85833,6 @@ msgstr "射彈罐" msgid "pulse ammo" msgstr "脈衝彈藥" -#: lang/json/ammunition_type_from_json.py -msgid "6.54x42mm" -msgstr "6.54x42mm" - -#: lang/json/ammunition_type_from_json.py -msgid ".20 DREAD Pellets" -msgstr ".20 電磁鋼珠" - #: lang/json/ammunition_type_from_json.py msgid "black powder ammo" msgstr "" @@ -88517,41 +85878,9 @@ msgid "mana energy" msgstr "" #: lang/json/ammunition_type_from_json.py -msgid "javelin" -msgstr "標槍" - -#: lang/json/ammunition_type_from_json.py -msgid "120mm shell" -msgstr "120mm 榴彈殼" - -#: lang/json/ammunition_type_from_json.py -msgid "155mm shell" -msgstr "155mm 榴彈殼" - -#: lang/json/ammunition_type_from_json.py -msgid "30x113mm" -msgstr "30x113mm" - -#: lang/json/ammunition_type_from_json.py -msgid "heavy projectiles" -msgstr "重彈" - -#: lang/json/ammunition_type_from_json.py -msgid "ballista bolt" -msgstr "弩箭" - -#: lang/json/ammunition_type_from_json.py -msgid "bladed disk" -msgstr "刀盤" - -#: lang/json/ammunition_type_from_json.py -msgid "crystalline shards" +msgid "heady vapours" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "vortex energy" -msgstr "渦旋力" - #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" msgstr "腎上腺素幫浦" @@ -88622,10 +85951,10 @@ msgid "" msgstr "" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Head" -msgstr "合金鋼鐵 - 頭部" +msgid "Alloy Plating - head" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Head'} +#. ~ Description for {'str': 'Alloy Plating - head'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your head has been surgically replaced by alloy plating, " @@ -88645,10 +85974,10 @@ msgid "" msgstr "" #: lang/json/bionic_from_json.py -msgid "Alloy Plating - Torso" -msgstr "合金鋼鐵 - 軀幹" +msgid "Alloy Plating - torso" +msgstr "" -#. ~ Description for {'str': 'Alloy Plating - Torso'} +#. ~ Description for {'str': 'Alloy Plating - torso'} #: lang/json/bionic_from_json.py msgid "" "The flesh on your torso has been surgically replaced by alloy plating, " @@ -89999,6 +87328,15 @@ msgid "" "inducing a state of euphoria that notably elevates mood." msgstr "" +#. ~ Description for {'str': 'Cranium Bomb'} +#: lang/json/bionic_from_json.py +msgid "" +"You've worked for some nasty people. People who installed a bomb at the top" +" of your spine. They are all dead now but there is unfortunately a dead man" +" switch if you don't check in roughly every thirty days. You need this out " +"and fast." +msgstr "" + #: lang/json/bionic_from_json.py lang/json/gun_from_json.py msgid "Ionic Overload Generator" msgid_plural "Ionic Overload Generators" @@ -90329,6 +87667,22 @@ msgstr "縫上羊毛" msgid "Destroy wool lining" msgstr "拆走縫上的羊毛" +#: lang/json/conduct_from_json.py lang/json/mutation_from_json.py +msgid "Pacifist" +msgstr "和平主義者" + +#: lang/json/conduct_from_json.py +msgid "Kill no monsters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Kill no characters" +msgstr "" + +#: lang/json/conduct_from_json.py +msgid "Merciful" +msgstr "" + #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -91137,6 +88491,10 @@ msgstr "建造枕頭堡" msgid "Build Cardboard Fort" msgstr "建造紙板堡" +#: lang/json/construction_from_json.py +msgid "Build Sand Castle" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Fire Ring" msgstr "建造火環" @@ -91321,26 +88679,10 @@ msgstr "將樹幹劈成原木" msgid "Makeshift Wall" msgstr "臨時牆" -#: lang/json/construction_from_json.py -msgid "Build Hydroponics" -msgstr "建造水培裝置" - -#: lang/json/construction_from_json.py -msgid "Build Hydroponics Heater" -msgstr "建造水培加熱器" - #: lang/json/construction_from_json.py msgid "Build Translocator Gate" msgstr "" -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" -msgstr "從屍體坑獲取黏球怪飼料: 砸爛以收獲" - -#: lang/json/construction_from_json.py -msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "從黏液獲取黏球怪飼料: 砸爛以收獲" - #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." msgstr "你做了一個有關於蜥蜴的怪夢。" @@ -92193,6 +89535,71 @@ msgstr "" msgid "You have transitioned from a dying race to a glorious future." msgstr "" +#: lang/json/dream_from_json.py +msgid "" +"You have a strange dream about thundering ponderously through ancient, " +"brittle tundras that crackle under your thick round feet." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "Your dreams give you a strange, langourous, heavy feeling." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of swinging your heavy head to shake the clinging snow and ice " +"from your large, limpid brown eyes. The weight is off, as if you had " +"something… extra on either side of your mouth, and though you are surrounded" +" by snow and bitter pelting winds, you feel confident and toasty-warm " +"beneath your shaggy coat." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your dream is a stream of shaggy loam-brown fur trailing into an ocean of " +"punishing, icy white. Together, you are all strong. When you look around, " +"you see elephantine faces looking back from all angles and you know they " +"mirror your own. You just… know." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of your usual patient languor being interrupted by a flash of " +"white teeth against a carmine-soaked muzzle. In an instant a thunderous " +"fury overtakes you and you trumpet your rage… right before you bring that " +"trumpeting snout, bring down those heavy spears of ivory on either side of " +"it, down upon your attacker. They lie, bones shattered, bleeding out their " +"red into the icy white and causing it to steam Just like that, your calm is" +" restored." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"You dream of slowly, patiently, plodding through the world to go from goal " +"to goal, unrushed and unworried, for you are far too large and tough to kill" +" for anyone or anything to bother trying to attack. And if they do… it'll " +"be the last mistake of their life. Waking up gives you a brief jolt of " +"fear and dysphoria, for your body feels so weak and fragile and incorrect " +"compared to the powerful thing you know you are." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Your thoughts within your dream may be slow, and it may take you some time " +"to reach a conclusion, but what's the rush? What's the hurry? You are a " +"huge and ancient thing with a pedigree that stretches back to a time before " +"sapient life first had the gall to raise a sharpened stick and call itself " +"superior. You are huge and powerful and all that work against you shall " +"fall. You… you have all the time in the world, now." +msgstr "" + +#: lang/json/dream_from_json.py +msgid "" +"Life is lonely without a family of Tusked Ones beside you, thundering as one" +" through this desolate world in search of the hidden places. Perhaps… " +"perhaps you should start your family." +msgstr "" + #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." msgstr "" @@ -93014,8 +90421,6 @@ msgid "Stuck in beartrap" msgstr "卡在捕熊陷阱" #. ~ Description of effect 'Stuck in beartrap'. -#. ~ Description of effect 'Stuck in a light snare'. -#. ~ Description of effect 'Stuck in a heavy snare'. #: lang/json/effects_from_json.py msgid "You can't move until you get free!" msgstr "你現在無法移動。" @@ -93373,6 +90778,52 @@ msgctxt "memorial_female" msgid "Cured the fungal infection." msgstr "真菌感染治癒了。" +#: lang/json/effects_from_json.py +msgid "Touched mind" +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "You are disoriented as strange visions flash through your mind." +msgstr "" + +#. ~ Description of effect 'Touched mind'. +#: lang/json/effects_from_json.py +msgid "" +"You are overwhelmed by the disturbing imagery and concepts you're flooded " +"with." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Tainted mind" +msgstr "" + +#. ~ Description of effect 'Tainted mind'. +#: lang/json/effects_from_json.py +msgid "You can't comprehend the things around you…" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Badly tainted mind" +msgstr "" + +#. ~ Description of effect 'Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "You don't know what is and isn't real anymore…" +msgstr "" + +#. ~ Miss message for effect(s) 'Touched mind, Touched mind, Tainted mind, +#. Badly tainted mind'. +#: lang/json/effects_from_json.py +msgid "Your sense of reality warps!" +msgstr "" + +#. ~ Speed name of effect(s) 'Touched mind, Touched mind, Tainted mind, Badly +#. tainted mind'. +#: lang/json/effects_from_json.py +msgid "Tainted" +msgstr "" + #: lang/json/effects_from_json.py msgid "Hallucinating" msgstr "幻覺" @@ -94732,6 +92183,26 @@ msgstr "" msgid "You're disgusted by the goop." msgstr "" +#: lang/json/effects_from_json.py src/character.cpp +msgid "Full" +msgstr "吃飽" + +#. ~ Description of effect 'Full'. +#. ~ Apply message for effect(s) 'Full'. +#: lang/json/effects_from_json.py +msgid "You feel quite full, and a bit sluggish." +msgstr "" + +#: lang/json/effects_from_json.py src/character.cpp +msgid "Engorged" +msgstr "腹脹" + +#. ~ Description of effect 'Engorged'. +#. ~ Apply message for effect(s) 'Engorged'. +#: lang/json/effects_from_json.py +msgid "Your stomach is full to bursting. This was a mistake." +msgstr "" + #: lang/json/effects_from_json.py msgid "Magnesium Supplements" msgstr "鎂補充劑" @@ -94754,10 +92225,6 @@ msgid "" "This is a bug if you have it." msgstr "當你某個對話選項冒犯了 NPC 時使用的 AI 標籤。如果你有這個標記,那就是程式出錯了。" -#: lang/json/effects_from_json.py src/character.cpp src/character.cpp -msgid "Full" -msgstr "吃飽" - #. ~ Description of effect 'Full'. #: lang/json/effects_from_json.py msgid "This beggar in the refugee center has had something to eat recently." @@ -95130,20 +92597,6 @@ msgstr "" msgid "You feel sluggish and weak, from magically-induced poisoning." msgstr "" -#: lang/json/effects_from_json.py -msgid "Stuck in a light snare" -msgstr "被輕型繩套工具纏住" - -#. ~ Apply message for effect(s) 'Stuck in a light snare'. -#. ~ Apply message for effect(s) 'Stuck in a heavy snare'. -#: lang/json/effects_from_json.py -msgid "You are snared!" -msgstr "你被纏住了!" - -#: lang/json/effects_from_json.py -msgid "Stuck in a heavy snare" -msgstr "被重型繩套工具纏住" - #: lang/json/effects_from_json.py msgid "Gummed" msgstr "" @@ -95170,6 +92623,66 @@ msgstr "" msgid "The gum webs constrict your movement." msgstr "" +#: lang/json/effects_from_json.py +msgid "Debugged" +msgstr "" + +#. ~ Description of effect 'Debugged'. +#: lang/json/effects_from_json.py +msgid "" +"You have been debugged!\n" +"Everything is working perfectly now." +msgstr "" + +#. ~ Apply message for effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Diving into your source, you find a rubber duck, and talk it to death." +msgstr "" + +#. ~ Speed name of effect(s) 'Debugged'. +#: lang/json/effects_from_json.py +msgid "Optimized" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Min-Maxed" +msgstr "" + +#. ~ Description of effect 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "" +"All the benefits of being the worst with none of the drawbacks of being the " +"best!" +msgstr "" + +#. ~ Apply message for effect(s) 'Min-Maxed'. +#: lang/json/effects_from_json.py +msgid "You feel your internal metrics stretch like a fun-house mirror." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Whoa" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wut?" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Wow!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "" +"Everything is just way too intense, man!\n" +"You feel confused and disoriented." +msgstr "" + +#. ~ Apply message for effect(s) 'Whoa, Wut?, Wow!'. +#: lang/json/effects_from_json.py +msgid "!!Intensity intensifies!!" +msgstr "" + #: lang/json/faction_from_json.py msgid "Your Followers" msgstr "你的追隨者" @@ -96290,8 +93803,10 @@ msgstr "冷氣機" #. ~ Description for cooling unit #: lang/json/furniture_from_json.py -msgid "A big, blocky metal device for refrigerating large areas." -msgstr "一種大型的塊狀金屬設備,用於大面積製冷。" +msgid "" +"A large, blocky appliance encased in sheet metal. This commonplace fixture " +"is used for cooling large indoor areas." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -96308,15 +93823,17 @@ msgstr "中央空氣濾清器" #. ~ Description for central air filter #: lang/json/furniture_from_json.py -msgid "Cleans out dust mites, smoke particles, and more!" -msgstr "清除塵蟎、煙塵等等!" +msgid "" +"A large synthetic membrane used to filter out dust, smoke, mites, and other " +"contaminants from air that passes through it." +msgstr "" #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" -"This metal box used to spray hot water and soap at dirty dishes to make them" -" clean and to save people an unpleasant chore. Now, with the power gone and" -" it sitting for a while, it's starting to smell a bit off." +"A large, boxy machine that uses hot water and soap to efficiently clean " +"batches of dishes. Now that it's sat powerless for a while, a putrid scent " +"of rot is leaking from inside." msgstr "" #: lang/json/furniture_from_json.py @@ -96325,7 +93842,9 @@ msgstr "烘乾機" #. ~ Description for dryer #: lang/json/furniture_from_json.py -msgid "'Dry your clothes!' would be what you'd do if electricity was running." +msgid "" +"A common household appliance used to quickly dry large batches of clothing " +"after they have been washed." msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py @@ -96335,9 +93854,8 @@ msgstr "冰箱" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py msgid "" -"Freeze your food with the amazing science of electricity! Oh wait, none is " -"flowing. Well, as long as you don't open it, maybe it'll stay cool for " -"awhile." +"A tall metal storage container that, if powered, will freeze food and other " +"perishables for preservation." msgstr "" #: lang/json/furniture_from_json.py @@ -96347,7 +93865,10 @@ msgstr "玻璃門冰箱" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py msgid "" -"Wow! See INTO your fridge before you open it and discover it's not working!" +"A modern refrigerator with a thick sheet of glass in the door, often " +"specially treated to be more insulative. Allows seeing the contents without" +" letting out the cold air, which used to be a minor convenience, and now " +"saves precious minutes until spoilage." msgstr "" #: lang/json/furniture_from_json.py @@ -96358,12 +93879,14 @@ msgstr "壁爐" #: lang/json/furniture_from_json.py msgid "" "A gas-powered forced-air central heating unit, with an internal fan to push " -"the air through a building's air ducts and keep it warm." +"the air through a building's ventilation system to keep it warm." msgstr "" #. ~ Description for washing machine #: lang/json/furniture_from_json.py -msgid "You could wash your dirty clothes if electricity was running." +msgid "" +"A large, chunky machine that uses soap and large amounts of water to wash " +"batches of clothes with minimal effort." msgstr "" #: lang/json/furniture_from_json.py @@ -96373,9 +93896,8 @@ msgstr "烤箱" #. ~ Description for oven #: lang/json/furniture_from_json.py msgid "" -"Used for heating and cooking food with electricity. Doesn't look like it's " -"working, although it still has parts. It might be safe to light a fire " -"inside of it, if you had to." +"A standard convection-based oven, commonly used for heating and cooking " +"food. Despite it no longer working, you could safely light a fire inside." msgstr "" #: lang/json/furniture_from_json.py @@ -96385,9 +93907,10 @@ msgstr "鐵匠鋪風箱" #. ~ Description for blacksmith bellows #: lang/json/furniture_from_json.py msgid "" -"Used for delivering air to increase the combustion and heat output of a " -"forge. Doesn't look like it's working, although it still has parts." -msgstr "用於輸送空氣以增加鍛造爐的燃燒與熱量輸出。儘管它仍有部分的功用,但看起來好像沒有用的樣子。" +"An old device for pushing air into a blacksmith's forge to strengthen the " +"fire and maintain a high temperature. Useless in its current state, but " +"good for parts." +msgstr "" #: lang/json/furniture_from_json.py msgid "blacksmith drop hammer" @@ -96396,9 +93919,10 @@ msgstr "鐵匠鋪落錘" #. ~ Description for blacksmith drop hammer #: lang/json/furniture_from_json.py msgid "" -"Used for fast production of metal items. Doesn't look like it's working, " -"although it still has parts." -msgstr "用於快速生產金屬物品。儘管它仍有部分的功用,但看起來好像沒有用的樣子。" +"An anvil with a large metal hammer suspended above it in a metal framework." +" If it were working, it would be useful for shaping softened metal plates, " +"though now it is only useful for parts." +msgstr "" #: lang/json/furniture_from_json.py msgid "document shredder" @@ -96407,8 +93931,10 @@ msgstr "碎紙機" #. ~ Description for document shredder #: lang/json/furniture_from_json.py msgid "" -"It's not all about hiding government secrets, sometimes you just want to " -"stop identity theft." +"A simple electronic device mounted to a large basket. It is designed to " +"efficiently destroy paper documents with sensitive information. Good for " +"parts, as identity theft and corporate espionage probably aren't big " +"concerns anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -96417,8 +93943,11 @@ msgstr "伺服器堆" #. ~ Description for server stack #: lang/json/furniture_from_json.py -msgid "This is a big pile of computers. They're all turned off." -msgstr "一大堆的電腦。他們都關閉著。" +msgid "" +"A large rack of specialized computers for storing and transmitting " +"information. Powerless and largely useless for its intended purpose, the " +"laptops mounted inside can still be used if removed." +msgstr "" #: lang/json/furniture_from_json.py msgid "large satellite dish" @@ -96427,8 +93956,10 @@ msgstr "大型衛星碟型天線" #. ~ Description for large satellite dish #: lang/json/furniture_from_json.py msgid "" -"Somewhere up there, there are still satellites, orbiting and doing their " -"thing, sending signals down to an Earth that is no longer listening." +"A large concave metal panel with simple electronics used to receive signals " +"from sattelites. While the hundreds of expensive machines orbitting the " +"planet will likely continue to function indefinately, their various purposes" +" have all been lost." msgstr "" #: lang/json/furniture_from_json.py @@ -96437,8 +93968,11 @@ msgstr "架設好的太陽能板" #. ~ Description for mounted solar panel #: lang/json/furniture_from_json.py -msgid "A mounted solar panel." -msgstr "一面架設好的太陽能板。" +msgid "" +"A set of photovoltaic power generators, which turns solar radiation into " +"useable electricity. While useful before the cataclysm, they have become " +"priceless tools, invaluable to any survivor." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -96451,8 +93985,11 @@ msgstr "路障" #. ~ Description for road barricade #: lang/json/furniture_from_json.py -msgid "A road barricade. For barricading roads." -msgstr "一個路障。 用來擋路。" +msgid "" +"A large wooden blockade used to block passage through a road. It is lined " +"with reflective tape to increase visibility. Despite the name, it does " +"little to stop a moving car." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp @@ -96470,7 +94007,9 @@ msgstr "" #. ~ Description for earthbag barricade #: lang/json/furniture_from_json.py -msgid "An earthbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of stacked earthbags, commonly used to catch bullets and " +"block flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -96483,7 +94022,7 @@ msgstr "" #. ~ Description for earthbag wall #: lang/json/furniture_from_json.py -msgid "An earthbag wall." +msgid "A wall of stacked earthbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -96492,7 +94031,7 @@ msgstr "球道分界" #. ~ Description for lane guard #: lang/json/furniture_from_json.py -msgid "Used to be used for keeping traffic." +msgid "A simple wooden post to mark the separation between street lanes." msgstr "" #: lang/json/furniture_from_json.py @@ -96501,7 +94040,9 @@ msgstr "沙袋路障" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py -msgid "A sandbag barricade, typically used for blocking bullets." +msgid "" +"A low wall made of canvas sacks filled with sand, commonly used to catch " +"bullets and prevent flooding." msgstr "" #: lang/json/furniture_from_json.py @@ -96510,7 +94051,7 @@ msgstr "沙袋牆" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py -msgid "A sandbag wall." +msgid "A wall of stacked sandbags, a bit taller than an average adult." msgstr "" #: lang/json/furniture_from_json.py @@ -96519,8 +94060,10 @@ msgstr "直立式鏡子" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py -msgid "Lookin' good - is that blood?" -msgstr "看起來很好 - 那是血嗎?" +msgid "" +"A full-length mirror mounted in a sleek metal frame. You can easily see all" +" of the dirt and blood on your clothes, and the weariness in your eyes." +msgstr "" #: lang/json/furniture_from_json.py msgid "glass breaking" @@ -96533,9 +94076,10 @@ msgstr "破裂的直立式鏡子" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py msgid "" -"You could look at yourself, if the mirror wasn't covered in cracks and " -"fractures." -msgstr "如果鏡子沒有裂縫和破損,你可以看看自己。" +"A metal frame for a full-length mirror, with most of the mirror missing. " +"What remains in the frame are large dangerous-looking shards of fractured " +"glass." +msgstr "" #: lang/json/furniture_from_json.py msgid "bitts" @@ -96544,8 +94088,8 @@ msgstr "" #. ~ Description for bitts #: lang/json/furniture_from_json.py msgid "" -"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " -"to secure mooring lines, ropes, hawsers, or cables." +"A pair of vertical iron posts mounted on a wharf, pier, or other form of " +"dock. They are used to secure mooring lines, ropes, and similar." msgstr "" #: lang/json/furniture_from_json.py @@ -96554,9 +94098,7 @@ msgstr "手銬" #. ~ Description for manacles #: lang/json/furniture_from_json.py -msgid "" -"Chain serfs in your dungeon. All you need now is an iron ball to chain to " -"it." +msgid "A pair of metal shackles with heavy chains mounted to a wall or floor." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -96570,11 +94112,12 @@ msgstr "雕像" #. ~ Description for statue #: lang/json/furniture_from_json.py -msgid "A carved statue made of stone." -msgstr "雕刻石像" +msgid "" +"A massive block of stone that has been carefully carved into a work of " +"timeless art." +msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." msgstr "咚。" @@ -96585,8 +94128,9 @@ msgstr "服裝模特兒" #. ~ Description for mannequin #: lang/json/furniture_from_json.py msgid "" -"Put clothes on it, talk to it. Who's around to judge you? Wait… did it " -"just move?" +"A life-size wooden figure of a person, most commonly used to display " +"clothing in stores, or for tailors to design outfits on. Considering all " +"that's happened, something about it is somewhat unnerving." msgstr "" #: lang/json/furniture_from_json.py @@ -96595,8 +94139,10 @@ msgstr "鳥浴盆" #. ~ Description for birdbath #: lang/json/furniture_from_json.py -msgid "A decorative cement birdbath and pedestal." -msgstr "一個有裝飾的水泥水盆跟基座。" +msgid "" +"A wide stone bowl mounted to a pedestal, usually filled with rainwater, " +"meant for birds to play or bathe in." +msgstr "" #: lang/json/furniture_from_json.py msgid "rotary clothes dryer line" @@ -96604,8 +94150,10 @@ msgstr "旋轉式曬衣繩架" #. ~ Description for rotary clothes dryer line #: lang/json/furniture_from_json.py -msgid "A umbrella shaped clothes line mounted on a pole." -msgstr "傘狀曬衣繩架設在一根長桿上頭。" +msgid "" +"A central metal pole holding up a wide rotating frame, this would be used to" +" hang up clothes to dry in the sunlight." +msgstr "" #: lang/json/furniture_from_json.py msgid "floor lamp" @@ -96613,7 +94161,9 @@ msgstr "" #. ~ Description for floor lamp #: lang/json/furniture_from_json.py -msgid "A tall standing lamp, meant to plug into a wall and light up a room." +msgid "" +"A light mounted on the top of a metal pole, this would be plugged into a " +"wall socket to illuminate a room." msgstr "" #: lang/json/furniture_from_json.py @@ -96629,13 +94179,29 @@ msgstr "" msgid "A decorative wreath for the winter holidays." msgstr "" +#: lang/json/furniture_from_json.py +msgid "sand castle" +msgstr "" + +#. ~ Description for sand castle +#: lang/json/furniture_from_json.py +msgid "" +"A glorious castle made of sand. This mighty fortress will stand tall for " +"the ages to come, a true testimony of the skills of its builder." +msgstr "" + +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +msgid "crunch." +msgstr "咔啦。" + #: lang/json/furniture_from_json.py msgid "decorative tree" msgstr "" #. ~ Description for decorative tree #: lang/json/furniture_from_json.py -msgid "A decorative tree for the winter holidays." +msgid "" +"A decorative pine tree littered with ornaments for the winter holidays." msgstr "" #: lang/json/furniture_from_json.py @@ -96644,7 +94210,9 @@ msgstr "室內植物" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant, used for decoration." +msgid "" +"A small potted plant, used for decoration indoors. It appears to have dried" +" up and died a while ago." msgstr "" #: lang/json/furniture_from_json.py @@ -96653,7 +94221,9 @@ msgstr "黃色室內植物" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py -msgid "A variety of plant for decoration. It's yellow." +msgid "" +"A decorative potted plant with a yellow flower, it looks to have wilted and " +"died some time ago." msgstr "" #: lang/json/furniture_from_json.py @@ -96663,15 +94233,10 @@ msgstr "可採集的植物" #. ~ Description for harvestable plant #: lang/json/furniture_from_json.py msgid "" -"This plant is ready for harvest. Examine it more closely to identify how to" -" harvest the plant appropriately." +"This plant is fully grown and ready to be harvested. Identifying how to " +"harvest it requires closer examination." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py -msgid "crunch." -msgstr "咔啦。" - #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py msgid "whish." @@ -96683,7 +94248,7 @@ msgstr "成熟的植物" #. ~ Description for mature plant #: lang/json/furniture_from_json.py -msgid "This plant has matured." +msgid "This plant has matured, and will be ready to harvest before long." msgstr "" #: lang/json/furniture_from_json.py @@ -96693,8 +94258,8 @@ msgstr "種子" #. ~ Description for seed #: lang/json/furniture_from_json.py msgid "" -"A humble planted seed. Actions are the seed of fate deeds grow into " -"destiny." +"A freshly planted seed. If properly tended to, it could grow into a healthy" +" plant." msgstr "" #: lang/json/furniture_from_json.py @@ -96703,7 +94268,7 @@ msgstr "幼苗" #. ~ Description for seedling #: lang/json/furniture_from_json.py -msgid "This plant is just getting started." +msgid "A seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -96722,22 +94287,34 @@ msgid "planter with harvestable plant" msgstr "" #. ~ Description for planter with harvestable plant -#. ~ Description for planter with mature plant -#. ~ Description for planter with seed #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seed" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a fully grown plant, and will need closer examination to harvest." msgstr "" #: lang/json/furniture_from_json.py msgid "planter with mature plant" msgstr "" +#. ~ Description for planter with mature plant +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a matured plant that should be ready for harvest before long." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seed" msgstr "" +#. ~ Description for planter with seed +#: lang/json/furniture_from_json.py +msgid "" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one contains a planted seed, and will need attention to grow fully." +msgstr "" + #: lang/json/furniture_from_json.py msgid "planter with seedling" msgstr "" @@ -96745,8 +94322,8 @@ msgstr "" #. ~ Description for planter with seedling #: lang/json/furniture_from_json.py msgid "" -"A garden planter full of soil and slatted to allow adequate drainage. Can " -"be used for planting crops. This one contains a planted seedling" +"A garden planter full of soil and slatted to allow adequate drainage. This " +"one has a seed that has just begun to sprout its first roots." msgstr "" #: lang/json/furniture_from_json.py @@ -96756,8 +94333,8 @@ msgstr "蜘蛛卵囊" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Much too large, off-white egg sack. Kind of icky. Something IS moving in " -"there." +"A sizable, off-white sac of large eggs. Upon watching closer, you can see " +"them moving slightly. Gross." msgstr "" #: lang/json/furniture_from_json.py @@ -96767,15 +94344,16 @@ msgstr "啪啦!" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"Bulbous mass of spider eggs. More than kind of icky. Something IS moving " -"in there." +"A bulbous mass of off-white spider eggs. Upon watching closer, you can see " +"them moving a bit. Really gross." msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py msgid "" -"A horrifyingly oversized egg sack. Something IS moving in there. If you're" -" seeing this, you're already too close to it." +"A gigantic sac of spider's eggs, each one larger than your fist. They're " +"definitely moving around. Really gross, just seeing it makes your skin " +"crawl." msgstr "" #: lang/json/furniture_from_json.py @@ -96784,7 +94362,9 @@ msgstr "破裂的蜘蛛卵囊" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py -msgid "Super icky. Spider stuff's spilling out." +msgid "" +"A disgusting ruptured sac of giant spider eggs. The thought of all those " +"massive baby spiders pouring out of it is almost terrifying on its own." msgstr "" #. ~ Description for swamp gas @@ -96835,9 +94415,8 @@ msgstr "壁爐" #. ~ Description for fireplace #: lang/json/furniture_from_json.py msgid "" -"Ah. The relaxation of sitting in front of a fire as the world around you " -"crumbles. Towards the End, you could also get this service on your " -"television." +"A common fixture for safely hosting a fire indoors, with a chimney to vent " +"the smoke to the outside. Dangerous to leave unattended while lit." msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py @@ -96858,14 +94437,29 @@ msgstr "柴爐" #. ~ Description for wood stove #: lang/json/furniture_from_json.py msgid "" -"Wood stove for heating and cooking. Much more efficient than an open flame." -msgstr "柴爐用於加熱和烹飪。比火堆更有效率。" +"A simple metal stove for hosting wood-fueled fires. Good for cooking or " +"heating food, and safe to have indoors." +msgstr "" #. ~ Description for brazier #: lang/json/furniture_from_json.py msgid "A raised metal dish in which to safely burn things." msgstr "" +#. ~ Description for fire barrel (200L) +#: lang/json/furniture_from_json.py +msgid "" +"A huge metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + +#. ~ Description for fire barrel (100L) +#: lang/json/furniture_from_json.py +msgid "" +"A large metal barrel used to safely contain a fire. It has multiple holes " +"punched in the walls for air supply." +msgstr "" + #: lang/json/furniture_from_json.py msgid "fire ring" msgstr "火環" @@ -97014,8 +94608,8 @@ msgstr "馬洛斯花" #: lang/json/furniture_from_json.py msgid "" "This flower is like the other flowers taken by the mushrooms, but its bulb " -"is colored a brilliant cyan color, and it emits an aroma both overwhelming " -"and… delicious?" +"is colored a brilliant cyan color. It emits an aroma both overwhelming and " +"strangely alluring." msgstr "" #: lang/json/furniture_from_json.py @@ -97026,8 +94620,8 @@ msgstr "呼。" #: lang/json/furniture_from_json.py msgid "" "This flower has been overgrown by gray, sinewy tendrils of fungus, and the " -"color has leached from its petals and stem. It gently sways of its own " -"volition." +"color has been leached from its petals and stem. It gently sways of its own" +" volition, maintaining an unsettling rhythm." msgstr "" #: lang/json/furniture_from_json.py @@ -97038,7 +94632,7 @@ msgstr "真菌塊" #: lang/json/furniture_from_json.py msgid "" "Thick ropes of mycal matter have covered the ground here completely. It's " -"soft to the touch, but you sink into it, making moving across it difficult." +"soft to the touch, but not firm enough to hold any weight." msgstr "" #: lang/json/furniture_from_json.py @@ -97048,7 +94642,8 @@ msgstr "真菌叢" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py msgid "" -"Alien mold and stems mingle tightly here, creating a sort of fungal bush." +"Alien mold and stems mingle tightly here, swaying around and weaving " +"together, creating a sort of fungal bush." msgstr "" #: lang/json/furniture_from_json.py @@ -97072,7 +94667,7 @@ msgstr "石板" #. ~ Description for stone slab #: lang/json/furniture_from_json.py -msgid "A flat slab of heavy stone." +msgid "A slab of heavy stone, with a reasonably flat surface." msgstr "" #: lang/json/furniture_from_json.py @@ -97081,8 +94676,11 @@ msgstr "墓石" #. ~ Description for headstone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies." -msgstr "保存屍身。" +msgid "" +"A large slab of stone, engraved with information on the deceased individual " +"buried beneath. While only a solemn reminder of the uncountable losses of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -97096,8 +94694,11 @@ msgstr "墓碑" #. ~ Description for gravestone #: lang/json/furniture_from_json.py -msgid "Keeps the bodies. More fancy." -msgstr "保存屍身。更加花俏。" +msgid "" +"An upright slab of stone with information engraved on the face about whoever" +" lies beneath. While only a solemn reminder of the countless casualties of " +"the Cataclysm, a proper final resting place grants an odd sense of peace." +msgstr "" #: lang/json/furniture_from_json.py msgid "worn gravestone" @@ -97105,7 +94706,10 @@ msgstr "破舊的墓碑" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py -msgid "A worn-out gravestone." +msgid "" +"An aged and eroded gravestone, damaged to the point of rendering the " +"inscription illegible. Whoever's buried here was probably lucky enough to " +"pass before all this chaos began." msgstr "" #: lang/json/furniture_from_json.py @@ -97114,7 +94718,10 @@ msgstr "方尖碑" #. ~ Description for obelisk #: lang/json/furniture_from_json.py -msgid "Monument to pride." +msgid "" +"A magnificent carved statue with an engraved plaque fixed to the base. It " +"serves to honor the passing of somebody significant, something one wishes " +"was still a practical goal." msgstr "" #: lang/json/furniture_from_json.py @@ -97129,7 +94736,8 @@ msgstr "裝配機器人" #: lang/json/furniture_from_json.py msgid "" "A durable and versatile robotic arm with a tool fitted to the end, for " -"working on an assembly line." +"working on an assembly line. Despite its specialized purpose being all but " +"lost now, it could provide a plethora of useful parts if disassembled." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -97139,8 +94747,8 @@ msgstr "化工攪拌機" #. ~ Description for chemical mixer #: lang/json/furniture_from_json.py msgid "" -"When chemicals need to be mixed in large quantities at just the right " -"combinations and temperatures, this is the tool for the job." +"A large vat with a motorized mixing device for combining large quantities of" +" chemicals." msgstr "" #: lang/json/furniture_from_json.py @@ -97150,9 +94758,9 @@ msgstr "機械手臂" #. ~ Description for robotic arm #: lang/json/furniture_from_json.py msgid "" -"Automation! Science! Industry! Make a better horse! This robot arm " -"promises to do it all. Except it's currently unpowered. You could remove " -"the casing and retrieve the electronics through disassembly." +"An automated robotic arm used in assembly lines, which appears to be more " +"general-purpose than specially designed assemblers. Despite being " +"functionless now, the parts could be useful." msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py @@ -97167,8 +94775,10 @@ msgstr "全自動外科醫生 Mk. XI" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py msgid "" -"A surgical apparatus used for installation and removal of bionics. It's " -"only as skilled as its operator." +"A surgical apparatus used for installation and removal of bionics. The term" +" name 'Autodoc' is something of a misnomer, as it can only operate if " +"programmed beforehand, something that a plethora of labels warn against " +"doing without expertise." msgstr "" #: lang/json/furniture_from_json.py @@ -97186,9 +94796,8 @@ msgstr "一張豪華的紅色沙發, 它上面的醫療機械讓人坐起來不 #. ~ Description for filled autoclave #: lang/json/furniture_from_json.py msgid "" -"This thing is basically an extremely high tech laundry machine or " -"dishwasher. It steams things at temperatures that will kill almost " -"anything." +"A device that can steam its contents at high enough tempuratures to " +"completely sterilize them, killing any possible contaminants." msgstr "" #: lang/json/furniture_from_json.py @@ -97202,9 +94811,8 @@ msgstr "" #. ~ Description for sample freezer #: lang/json/furniture_from_json.py msgid "" -"When cold just isn't cold enough, you have this extreme deep freeze. This " -"will store stuff at -80 degrees Celsius. Don't lick the metal on the " -"inside." +"A specialized freezer capable of maintaining tempuratures of -80 Celsieus, " +"and is often used only for the preservation of delicate scientific samples." msgstr "" #: lang/json/furniture_from_json.py @@ -97238,9 +94846,9 @@ msgstr "" #. ~ Description for shaker incubator #: lang/json/furniture_from_json.py msgid "" -"A tool for keeping broth nicely mixed, at just the right temperature to grow" -" bacteria. This is great for microbiology, but terrible for preserving " -"food." +"A tool for keeping chemical broth nicely mixed, at just the right " +"temperature to grow bacteria. Although, more bacteria is probably the last " +"thing you need, considering the circumstances." msgstr "" #: lang/json/furniture_from_json.py @@ -97250,9 +94858,10 @@ msgstr "" #. ~ Description for emergency wash station #: lang/json/furniture_from_json.py msgid "" -"This pole has a lot of weird nozzles and attachments. If there were running" -" water, you could use those attachments to wash harmful chemicals out of " -"your eyes, or to take a pleasant cold shower in a public place." +"A standing sink with a pair of nozzles, along with a large and brightly-" +"colored handle. It is specially designed to quickly remove contaminants " +"from the eyes, and is easily usable without being able to see very well. A " +"sizable notice warns against drinking the water it uses." msgstr "" #: lang/json/furniture_from_json.py @@ -97261,7 +94870,9 @@ msgstr "" #. ~ Description for IV pole #: lang/json/furniture_from_json.py -msgid "This is basically just a stick on wheels with some hooks at the top." +msgid "" +"A tall wire frame on a set of small wheels used for holding an IV bag, " +"useful for unattended administration." msgstr "" #: lang/json/furniture_from_json.py @@ -97272,9 +94883,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a liquid or aqueous phase based on " -"their affinity to a solid state medium in a tube. In other words, it's a " -"fancy way to separate things." +"very useful way to separate chemicals in a liquid or aqueous phase, based on" +" their affinity, to the stationary phase in a tube. At least, that's what " +"the label says." msgstr "" #: lang/json/furniture_from_json.py @@ -97285,9 +94896,9 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "This high-tech tool would, with electricity and an experienced user, be a " -"very useful way to separate chemicals in a gaseous phase based on their " -"affinity to a solid state medium in a tube. In other words, it's a fancy " -"way to separate things." +"very useful way to separate chemicals in a gaseous phase, based on their " +"affinity, to a stationary phase in a tube. At least, that's what the label " +"says." msgstr "" #: lang/json/furniture_from_json.py @@ -97297,10 +94908,11 @@ msgstr "質譜儀" #. ~ Description for mass spectrometer #: lang/json/furniture_from_json.py msgid "" -"Inside this thing is a carefully balanced set of electric field generators " -"that can precisely separate ionized particles based on their charge-to-mass " -"ratio, firing them into a detector that measures the exact mass of the " -"particle hitting it. On the outside, it looks like a very boring white box." +"Inside this large white box is a carefully balanced set of electric field " +"generators that can precisely separate ionized particles based on their " +"charge-to-mass ratio, firing them into a detector that measures the exact " +"mass of the particle hitting it. Invaluable for chemical analysis and other" +" advanced sciences, it's not as useful anymore." msgstr "" #: lang/json/furniture_from_json.py @@ -97310,10 +94922,9 @@ msgstr "核磁共振波譜儀" #. ~ Description for nuclear magnetic resonance spectrometer #: lang/json/furniture_from_json.py msgid "" -"This is a giant electromagnet in a kind of sci-fi looking housing. Somehow " -"it can be used to wiggle molecular bonds or something, and from there, look " -"at the deepest inner workings of chemical structures! Magnets: how do they " -"work?" +"This is a giant electromagnet with carefully tuned measurement equipment " +"used to observe how magnetic fields affect nuclear spins. It is a common " +"workhorse for the discovery and study of chemical structures." msgstr "" #: lang/json/furniture_from_json.py @@ -97323,8 +94934,8 @@ msgstr "電子顯微鏡" #. ~ Description for electron microscope #: lang/json/furniture_from_json.py msgid "" -"An enormous tool for using electron reflections off a surface to see what " -"very tiny things look like. Amazing for taking gross pictures of bugs." +"An enormous observational tool for studying the details of samples on an " +"immensely small scale." msgstr "" #: lang/json/furniture_from_json.py @@ -97334,9 +94945,8 @@ msgstr "電腦斷層掃描機" #. ~ Description for CT scanner #: lang/json/furniture_from_json.py msgid "" -"This giant donut can take hundreds of x-rays in rapid sequence, making a " -"really cool looking picture of all your innards that have varying degrees of" -" radio-opacity." +"A massive piece of machinery used to take hundreds of X-ray images from 360 " +"degrees, often used for medical examinations of patients." msgstr "" #: lang/json/furniture_from_json.py @@ -97346,9 +94956,8 @@ msgstr "磁振造影機" #. ~ Description for MRI machine #: lang/json/furniture_from_json.py msgid "" -"This thing is really an NMR that you stick a person into, but people weren't" -" excited about getting into a tiny hole in a loud machine called a 'nuclear " -"magnetic resonance imager', so they changed it." +"A massive tool used to take NMR images of a patient placed inside, providing" +" invaluable medical insight." msgstr "" #: lang/json/furniture_from_json.py @@ -97358,8 +94967,8 @@ msgstr "掃描機躺床" #. ~ Description for scanner bed #: lang/json/furniture_from_json.py msgid "" -"This is a narrow, uncomfortable bed for putting someone into an imaging " -"machine or other small hole." +"This is a narrow, flat, and frankly uncomfortable bed for putting someone " +"into an imaging machine for medical observations." msgstr "" #: lang/json/furniture_from_json.py @@ -97369,9 +94978,9 @@ msgstr "麻醉機" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py msgid "" -"Keeping a person at just the right level of asleep to do surgery is hard. " -"This machine helps an anesthesiologist keep the right mix of drugs and air " -"to keep a patient asleep." +"A large machine with various tanks, tubes, and monitoring devices used to " +"maintain precise levels of anesthesia in a patient to ensure they, at least " +"ideally, remain asleep, unfeeling, but alive." msgstr "" #: lang/json/furniture_from_json.py @@ -97381,9 +94990,9 @@ msgstr "透析機" #. ~ Description for dialysis machine #: lang/json/furniture_from_json.py 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." +"A large machine for pumping and filtering the blood of somebody without the " +"function of their kidneys. Largely obsolete for those with access to " +"bionics, but a lifeline to those that need it." msgstr "" #: lang/json/furniture_from_json.py @@ -97393,9 +95002,9 @@ msgstr "醫療呼吸器" #. ~ Description for medical ventilator #: lang/json/furniture_from_json.py msgid "" -"When they talk about the 'breathing machine' that you don't want to wind up " -"stuck on, this is what they mean. It just looks like a couple boxes on a " -"trolley." +"A sizable box on a set of wheels that will pump air in and out of a " +"patient's lungs when they are incapable of breathing, though often only " +"needed temporarily." msgstr "" #: lang/json/furniture_from_json.py @@ -97432,7 +95041,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "" "A willowy tendril growing from the floor, gently waving back and forth. A " -"faint illumination spills from it." +"faint light spills from it." msgstr "" #: lang/json/furniture_from_json.py @@ -97448,7 +95057,7 @@ msgstr "" msgid "" "A fleshy white protuberance growing from the floor, with a cluster of " "tendrils pouring out of it. It looks almost exactly like a sea anemone, " -"even waving gently as though in the water." +"even waving gently as though underwater." msgstr "" #: lang/json/furniture_from_json.py @@ -97460,7 +95069,7 @@ msgstr "" msgid "" "This is a meaty green stalactite with a thickened hide like that of a " "starfish, extending from the floor to the ceiling. In the center is a " -"series of ports somewhat like mouths, from which pour bursts of a vile " +"series of ports somewhat like mouths, from which pour bursts of a vile-" "smelling gas." msgstr "" @@ -97471,9 +95080,9 @@ msgstr "" #. ~ Description for twitching frond #: lang/json/furniture_from_json.py msgid "" -"A spine like the antenna of a moth juts from the ground, swaying gently in " -"the air. Every so often, a cascade of energy arcs along it and discharges " -"into the ceiling." +"A spine resembling moth antennae juts from the ground, swaying gently in the" +" air. Every so often, a cascade of energy arcs along it and discharges into" +" the ceiling." msgstr "" #: lang/json/furniture_from_json.py @@ -97483,8 +95092,8 @@ msgstr "" #. ~ Description for scarred lump #: lang/json/furniture_from_json.py msgid "" -"This is a pile of unidentified twitching alien flesh, belching strange gases" -" out of injured vessels." +"This is a pile of nondescript alien flesh, twitching and belching strange " +"gases out of injured orifices." msgstr "" #: lang/json/furniture_from_json.py @@ -97543,9 +95152,10 @@ msgstr "浴缸" #. ~ Description for bathtub #: lang/json/furniture_from_json.py msgid "" -"You could lay in and take a soothing bath, if there were running water. The" -" plug is intact, so you could use it to store liquids." -msgstr "如果有自來水,你可以躺下來享受輕鬆的沐浴。塞子完好無損,因此你可以用它來儲存液體。" +"An ordinary ceramic tub, with a now-functionless steel faucet and a plug " +"fixed over the drain. Watertight and relatively clean, it would make for a " +"good water trough." +msgstr "" #: lang/json/furniture_from_json.py msgid "porcelain breaking!" @@ -97561,8 +95171,11 @@ msgstr "淋浴器" #. ~ Description for shower #: lang/json/furniture_from_json.py -msgid "You would be able to clean yourself if water was running." -msgstr "如果有自來水,你就能夠淋浴。" +msgid "" +"A small enclosed ceramic room with a glass door and plumbing fixtures for " +"cleaning oneself. Before it was a commonplace amenity, but now it's hard to" +" imagine wasting that much water." +msgstr "" #: lang/json/furniture_from_json.py msgid "sink" @@ -97571,8 +95184,9 @@ msgstr "水槽" #. ~ Description for sink #: lang/json/furniture_from_json.py msgid "" -"Emergency relief provider. Water isn't running, so it's basically useless." -msgstr "緊急救援提供者。沒有自來水,基本上它是沒用的。" +"A porcelain water basin with a water tap and drain, designed to be fitted " +"into an opening on a countertop." +msgstr "" #: lang/json/furniture_from_json.py msgid "toilet" @@ -97581,9 +95195,11 @@ msgstr "馬桶" #. ~ Description for toilet #: lang/json/furniture_from_json.py msgid "" -"A porcelain throne. Emergency water source, from the tank, and provider of " -"relief." -msgstr "陶瓷的坐位。水箱中的水能更當作緊急水源來使用。" +"An invaluable fixture in any home, it would be a miracle to have one that " +"works. The standing tank may hold a moderate amount of water, but while " +"better than anything that would be in the bowl, it would not be the " +"cleanest." +msgstr "" #: lang/json/furniture_from_json.py msgid "water heater" @@ -97592,16 +95208,17 @@ msgstr "熱水器" #. ~ Description for water heater #: lang/json/furniture_from_json.py msgid "" -"An insulated metal tank that holds water, kept to a temperature by a small " -"gas flame." -msgstr "裝水的保溫金屬桶,能用瓦斯燃火維持水溫。" +"An insulated metal tank with a small fire used to maintain near-boiling " +"temperatures. Now that there's no way to power it, the large tank could " +"still be used to store large amounts of clean water." +msgstr "" #. ~ Description for water purifier #: lang/json/furniture_from_json.py msgid "" -"This removes ions dissolved in the water, making it pretty clean, if you " -"care about that kind of thing." -msgstr "它可以去除溶解在水中的離子,潔淨水質。如果你注重那類東西的話。" +"This devices effectively sterilizes water, though without a lot of power and" +" proper plumbing, it's only good for parts now." +msgstr "" #: lang/json/furniture_from_json.py msgid "exercise machine" @@ -97610,9 +95227,11 @@ msgstr "健身器材" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py msgid "" -"Typically used for, well, exercising. You're getting quite enough of that; " -"running for your life." -msgstr "通常用於...ㄜ...鍛煉。你早就不需要了;為了活命東奔西跑著。" +"A heavy set of weightlifting equipment for strength training, with a pair of" +" heavy weights affixed to opposite ends of a sturdy pipe. The weights are " +"huge, and using them without a spotter would be a good way to seriously " +"injure yourself." +msgstr "" #: lang/json/furniture_from_json.py msgid "ball machine" @@ -97621,10 +95240,10 @@ msgstr "發球機" #. ~ Description for ball machine #: lang/json/furniture_from_json.py msgid "" -"An unpowered machine that seems like it could've been used to launch various" -" balls for different types of sports. It's only good for parts now if " -"disassembled." -msgstr "一台失去動力的機器,似乎曾經為各種不同種類的運動發射出不同種類的球。現在唯一的用處就是拆解它獲得零件。" +"A simple machine for launching sports balls of various types, with a pair of" +" motorized wheels that, if spun up, would fling the ball at moderate speeds." +" Probably not the most effective ranged weapon against the undead." +msgstr "" #: lang/json/furniture_from_json.py msgid "pool table" @@ -97632,8 +95251,12 @@ msgstr "撞球桌" #. ~ Description for pool table #: lang/json/furniture_from_json.py -msgid "A good-looking pool table. You wish you learned how to play." -msgstr "一張漂亮的撞球桌。可惜你不會撞球。" +msgid "" +"A large wooden table with green felt carpeting on top, and a set of " +"symmetrical holes that carry billiards balls to an opening on one side. " +"While not the most useful as a normal table, there is a substantial amount " +"of wood." +msgstr "" #: lang/json/furniture_from_json.py msgid "diving block" @@ -97641,8 +95264,10 @@ msgstr "跳水台" #. ~ Description for diving block #: lang/json/furniture_from_json.py -msgid "Jump! Jump! Dive!" -msgstr "跳! 跳! 潛水!" +msgid "" +"A chunky plastic stool bolted onto the ground, intended as a safe way of " +"diving forward into a body of water." +msgstr "" #: lang/json/furniture_from_json.py msgid "target" @@ -97650,8 +95275,13 @@ msgstr "目標" #. ~ Description for target #: lang/json/furniture_from_json.py -msgid "A metal shooting target in the rough shape of a human." -msgstr "金屬製的粗糙人形標靶。" +msgid "" +"A long sheet of metal held upright by a pipe frame, the sheet is cut in a " +"roughly human shape. There are two bullseye targets painted onto it, a " +"large one on the torso, and a smaller one on the head. It is peppered with " +"small dents and holes, and a large amount of the paint has flaked or chipped" +" off." +msgstr "" #: lang/json/furniture_from_json.py msgid "arcade machine" @@ -97660,9 +95290,8 @@ msgstr "電玩機台" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py msgid "" -"Play stupid games, win stupid prizes. That was the idea, anyway. Now, " -"without power, it's just stupid. Smarter to disassemble for all kinds of " -"useful electronic parts." +"A bulky upright arcade cabinet, brightly painted and slightyly worn with " +"age. Useless for its intended purpose, it's bound to have valuable parts." msgstr "" #: lang/json/furniture_from_json.py @@ -97672,9 +95301,10 @@ msgstr "兵乓球機器" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py msgid "" -"Most underrated game of the 20th century. Press buttons so the ball doesn't" -" go in the hole. It doesn't seem to be working without electricity. Could " -"be disassembled for various electronic parts." +"An iconic game, this machine has a brightly decorated background on its " +"intricate obstacle course, which is covered by a long sheet of glass. While" +" inoperable without power, it's still impressive to look at, though probably" +" more useful if disassembled." msgstr "" #: lang/json/furniture_from_json.py @@ -97684,8 +95314,9 @@ msgstr "功率計" #. ~ Description for ergometer #: lang/json/furniture_from_json.py msgid "" -"An rowing exercise machine. Without power, it can no longer help you with " -"your workout. Might have useful electronic parts in it." +"An exercise machine with a set of handles and plates meant to emulate rowing" +" a boat. Without power it can't be operated, but it might have useful parts" +" to be scavanged." msgstr "" #: lang/json/furniture_from_json.py @@ -97695,8 +95326,9 @@ msgstr "跑步機" #. ~ Description for treadmill #: lang/json/furniture_from_json.py msgid "" -"Used for training leg muscles. It'll be extra hard without power. Could be" -" taken apart for its… parts." +"A motorized conveyor belt with a control panel for running in place. " +"Without power, it's an immense challenge to move the belt. Regardless, " +"you're probably getting enough cardio on your own." msgstr "" #: lang/json/furniture_from_json.py @@ -97706,8 +95338,9 @@ msgstr "重拳擊沙袋" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py msgid "" -"Punch Punch! Exercise those arms! Main selling point: it doesn't fight " -"back!" +"A hefty leather bag in an oblong shape, suspended from a ceiling mount with " +"a steel chain. It can be used for exercise and combat training, with the " +"notable advantage that it doesn't fight back." msgstr "" #: lang/json/furniture_from_json.py @@ -97721,8 +95354,9 @@ msgstr "" #. ~ Description for piano #: lang/json/furniture_from_json.py msgid "" -"The ol' ebony and ivory. Really classes up the place. You could take it " -"apart if you wanted… you monster." +"An elegant piano, capable of producing beautiful music if used by a skilled " +"player. A set of off-white and black keys all linked to a set of hammers, " +"which strike their corresponding tightly-coiled wire to produce sound." msgstr "" #: lang/json/furniture_from_json.py @@ -97740,9 +95374,9 @@ msgstr "" #. ~ Description for speaker cabinet #: lang/json/furniture_from_json.py msgid "" -"A cabinet loaded with 12-inch speakers, intended to help make various things" -" loud. It can't serve its original purpose these days, but it could be " -"disassembled for various electronic parts." +"An upright wood-panel case of large speakers, built to produce a potentially" +" deafening volume level. While this is a terrible idea to use now, it could" +" hold useful parts." msgstr "" #: lang/json/furniture_from_json.py @@ -97751,7 +95385,10 @@ msgstr "" #. ~ Description for dancing pole #: lang/json/furniture_from_json.py -msgid "Tall metal pole meant for dancing, attached on bottom and top." +msgid "" +"A tall steel pipe mounted vertically, securely fastened to the ceiling and " +"floor. Usually used for various forms of dancing, often in adult-oriented " +"venues." msgstr "" #: lang/json/furniture_from_json.py @@ -97760,13 +95397,22 @@ msgstr "" #. ~ Description for roulette table #: lang/json/furniture_from_json.py -msgid "A big, scratched roulette table." +msgid "" +"A huge table specially made for a specific form of gambling, with a grid " +"painted onto the felt top, and a concave spinning wheel intended to give a " +"random selection of the inscribed possibilities." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "this should never actually show up, it's a pseudo furniture" msgstr "" #. ~ Description for this should never actually show up, it's a pseudo #. furniture #: lang/json/furniture_from_json.py -msgid "this should never actually show up, it's a pseudo furniture" +msgid "" +"This is pseudo-furniture and should never actually show up. Please report " +"this bug." msgstr "" #: lang/json/furniture_from_json.py @@ -97775,8 +95421,11 @@ msgstr "手機信號增強器" #. ~ Description for cell phone signal booster #: lang/json/furniture_from_json.py -msgid "A cell phone signal booster, it may be useful for parts now." -msgstr "手機信號增強器,它現在可能只剩零件有用。" +msgid "" +"A specialized piece of equipment that receives phone signals and amplifies " +"them to reach further destinations with more clarity. Now that there's no " +"longer signals for them to boost, they're only good for parts." +msgstr "" #: lang/json/furniture_from_json.py msgid "womp!" @@ -97788,8 +95437,11 @@ msgstr "衛星碟型天線" #. ~ Description for satellite dish #: lang/json/furniture_from_json.py -msgid "A small satellite dish for home entertainment." -msgstr "家用視聽娛樂的小型衛星碟型訊號接收器。" +msgid "" +"A small sheet metal disc designed to receive radio waves from orbital " +"satellites. Satellites that will assuredly continue to orbit, with nothing " +"to broadcast." +msgstr "" #: lang/json/furniture_from_json.py msgid "chimney crown" @@ -97797,8 +95449,10 @@ msgstr "煙囪頂蓋" #. ~ Description for chimney crown #: lang/json/furniture_from_json.py -msgid "The top of a chimney, it looks sooty." -msgstr "煙囪的頂部,滿佈著煙灰。" +msgid "" +"The top of a brick chimney, the opening is stained black with soot. " +"Definitely too narrow to fit in." +msgstr "" #: lang/json/furniture_from_json.py msgid "TV antenna" @@ -97806,8 +95460,11 @@ msgstr "電視天線" #. ~ Description for TV antenna #: lang/json/furniture_from_json.py -msgid "The television antenna improved reception for televisions." -msgstr "電視天線改善了電視訊號的接收效果。" +msgid "" +"A simple metal antenna to increase the reception of non-cable television " +"broadcasts. Almost wholly obsolete for years, only being good for parts " +"isn't new for this item." +msgstr "" #: lang/json/furniture_from_json.py msgid "vent pipe" @@ -97815,8 +95472,10 @@ msgstr "通風管" #. ~ Description for vent pipe #: lang/json/furniture_from_json.py -msgid "The plumbing vent pipe removes gas and odors from the building." -msgstr "能夠排出建築物內氣體和氣味的通風管道。" +msgid "" +"A sort of chimney spout for a building's internal ventilation system, this " +"can be used for circulation, venting fumes, and other such functions." +msgstr "" #: lang/json/furniture_from_json.py msgid "roof turbine vent" @@ -97825,8 +95484,10 @@ msgstr "屋頂通風球" #. ~ Description for roof turbine vent #: lang/json/furniture_from_json.py msgid "" -"The turbine uses wind power to suck hot and humid air out of the attic." -msgstr "利用風力將高溫和濕氣排出閣樓的渦流器。" +"A rotary wind turbine that will catch the wind and pull out air from inside." +" It is most commonly used for improving air cicrulation, particularly in " +"poorly-ventilated areas like attics." +msgstr "" #: lang/json/furniture_from_json.py msgid "bale of hay" @@ -97834,8 +95495,11 @@ msgstr "" #. ~ Description for bale of hay #: lang/json/furniture_from_json.py -msgid "A bale of hay. You could sleep on it, if desperate." -msgstr "一捆乾草。走投無路時,你可以睡在上面。" +msgid "" +"A massive packed-together block of hay, it makes for easy storage of straw " +"for livestock. If your only other option is the floor, it makes a tolerable" +" bed." +msgstr "" #: lang/json/furniture_from_json.py msgid "whish!" @@ -97847,8 +95511,11 @@ msgstr "一堆木片" #. ~ Description for pile of woodchips #: lang/json/furniture_from_json.py -msgid "Pile of chipped wood pieces. You can move it with a shovel." -msgstr "一堆切削後的木片。你可以用鏟子移動它。" +msgid "" +"A large mound of piled wood chips. Unpleasant to lay on, hard to walk " +"through, and a large fire hazard, it's probably best to shovel it out of the" +" way." +msgstr "" #: lang/json/furniture_from_json.py msgid "bench" @@ -97856,8 +95523,10 @@ msgstr "長椅" #. ~ Description for bench #: lang/json/furniture_from_json.py -msgid "Hobo bed. Airy. Use at your own risk." -msgstr "街友的床。開放格局,自行承擔風險。" +msgid "" +"A simple bench with wood slats nailed to a frame. While uncomfortably flat " +"and just as cold as the ground, it could serve as a bed if needed." +msgstr "" #: lang/json/furniture_from_json.py msgid "arm chair" @@ -97865,8 +95534,10 @@ msgstr "扶手椅" #. ~ Description for arm chair #: lang/json/furniture_from_json.py -msgid "A more comfortable way of sitting down." -msgstr "坐起來更舒服的地方。" +msgid "" +"A simple upholstered chair with armrests. Soft and fairly warm, it " +"definitely beats the ground for sleeping on, though not by much." +msgstr "" #: lang/json/furniture_from_json.py msgid "airplane seat" @@ -97874,18 +95545,22 @@ msgstr "飛機座位" #. ~ Description for airplane seat #: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." -msgstr "附有安全帶的飛機座位。" +msgid "" +"A cheaply upholstered folding airplane seat, it has a simple across-the-lap " +"seatbelt. You likely wouldn't be the first to sleep in this." +msgstr "" #: lang/json/furniture_from_json.py msgid "chair" msgstr "椅子" #. ~ Description for chair -#. ~ Description for stool #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink." -msgstr "坐下喝一杯。" +msgid "" +"A simple wooden chair, with four legs, a seat, and a back. It's nice to " +"rest your feet for once, and if coupled with a suitable table, you could eat" +" a meal properly and almost pretend that things were normal again." +msgstr "" #: lang/json/furniture_from_json.py msgid "sofa" @@ -97893,16 +95568,29 @@ msgstr "沙發" #. ~ Description for sofa #: lang/json/furniture_from_json.py -msgid "Lie down OR sit down! Perfect!" -msgstr "坐著或是躺著更好!太完美了!" +msgid "" +"A wide upholstered bench, large enough for two people to comfortably sit " +"alongside one another, or one person to lay back on. It's not quite a bed, " +"but it's a hell of a lot more comfortable than the floor." +msgstr "" #: lang/json/furniture_from_json.py msgid "stool" msgstr "凳子" +#. ~ Description for stool +#: lang/json/furniture_from_json.py +msgid "" +"A simple stool, with four legs and a seat. While it's a touch more " +"maneuverable to sit on, the lack of back support means it's significantly " +"less comfortable than a normal chair." +msgstr "" + #. ~ Description for camp chair #: lang/json/furniture_from_json.py -msgid "Sit down, have a drink. It can folded for easy transportation." +msgid "" +"A somewhat uncomfortable folding chair, with fabric strung across a metal " +"frame. Not the best, but better than nothing, and a lot easier to pack up." msgstr "" #: lang/json/furniture_from_json.py @@ -97912,8 +95600,8 @@ msgstr "" #. ~ Description for log stool #: lang/json/furniture_from_json.py msgid "" -"A log tipped on its end with any rough edges cut off. Basically a very " -"simple seat." +"A short section from a tree trunk with one of the flat ends smoothed down. " +"Makes for a decent place to sit, but not quite a real chair." msgstr "" #: lang/json/furniture_from_json.py @@ -97923,7 +95611,9 @@ msgstr "" #. ~ Description for deck chair #: lang/json/furniture_from_json.py msgid "" -"A comfortable deck chair for sunbathing. If only you had time for that." +"A folding deck chair with fabric sheets mounted to a wooden frame. While " +"it's built to take outdoor conditions and is an improvement over the ground," +" it's not particularly comfortable." msgstr "" #: lang/json/furniture_from_json.py @@ -97933,9 +95623,9 @@ msgstr "告示牌" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py msgid "" -"A big, cork bulletin board capable of sporting various notices. Pin some " -"notes for other survivors to read." -msgstr "一個大型軟木公告板,能夠張貼各種通知。為其他倖存者寫下一些注意事項吧。" +"A wide wooden frame with a sheet of corkboard inside. Good for pinning " +"various notices for other survivors to read." +msgstr "" #: lang/json/furniture_from_json.py msgid "sign" @@ -97943,8 +95633,10 @@ msgstr "標誌" #. ~ Description for sign #: lang/json/furniture_from_json.py -msgid "Read it. Warnings ahead." -msgstr "閱讀。注意前方。" +msgid "" +"A simple signpost made of wood. Basically two planks alongside each other " +"nailed to another plank that holds them up." +msgstr "" #: lang/json/furniture_from_json.py msgid "warning sign" @@ -97953,9 +95645,9 @@ msgstr "警示牌" #. ~ Description for warning sign #: lang/json/furniture_from_json.py msgid "" -"A triangle-shaped sign on a post meant to indicate something important or " -"hazard." -msgstr "柱子上的三角形標誌表示重要或危險的東西。" +"A triangular signpost painted white with a red border. Designed to easily " +"catch the eye, signs of this nature seldom display anything but bad news." +msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "bed" @@ -97964,8 +95656,10 @@ msgstr "床舖" #. ~ Description for bed #: lang/json/furniture_from_json.py msgid "" -"This is a bed. A luxury in these times. Quite comfortable to sleep in." -msgstr "一張床。在這種時刻算是一種奢侈品。睡在裡面會很舒服。" +"A standard mattress on a sturdy wooden frame. Even without blankets or " +"pillows, and despite being a completely ordinary mattress, it's a sight for " +"sore, tired eyes." +msgstr "" #: lang/json/furniture_from_json.py msgid "bunk bed" @@ -97973,7 +95667,11 @@ msgstr "" #. ~ Description for bunk bed #: lang/json/furniture_from_json.py -msgid "A wooden bunk bed with mattresses for two people." +msgid "" +"A bunk bed with a sturdy wooden frame built to hold two single-person " +"mattresses above one another. While these usually mean sleeping closer than" +" you'd like to somebody you wouldn't normally want to share a mattress with," +" a bed's a bed." msgstr "" #: lang/json/furniture_from_json.py @@ -97983,9 +95681,9 @@ msgstr "床架" #. ~ Description for bed frame #: lang/json/furniture_from_json.py msgid "" -"This is an empty bed frame. With a mattress on it, it would be a nice place" -" to sleep. Sleeping on it right now wouldn't be great." -msgstr "這是一個空床架。裝上床墊的話,它將是一個睡覺的好地方。直接睡上面不太舒服。" +"A sturdy wooden bed frame built to hold most standard mattresses. Despite " +"being one half of a bed, it's just about impossible to lay on by itself." +msgstr "" #: lang/json/furniture_from_json.py msgid "whack." @@ -97994,9 +95692,10 @@ msgstr "嘩。" #. ~ Description for mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable mattress has been tossed on the floor for sleeping here. It's" -" not quite as comfy as a real bed, but it's pretty close." -msgstr "一張舒適的床墊被扔在地板上,你可以在這裡睡覺。它不像真正的床那麼舒服,但已經非常接近了。" +"An ordinary mattress left on the floor. While it's not as comfortable as an" +" entire bed without the mattress, it's pretty close. If it's someplace " +"actually safe to sleep, it's practically a luxury in of itself." +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py src/map.cpp @@ -98006,9 +95705,10 @@ msgstr "劈哩!" #. ~ Description for down mattress #: lang/json/furniture_from_json.py msgid "" -"A comfortable feather down mattress has been tossed on the floor for " -"sleeping here. It's not quite as comfy as a real bed, but it's pretty " -"close." +"A squishy feather-stuffed mattress left on the floor. While it's not as " +"comfortable as an entire bed without the mattress, it's pretty close. If " +"it's someplace actually safe to sleep, it's practically a luxury in of " +"itself." msgstr "" #: lang/json/furniture_from_json.py @@ -98017,8 +95717,11 @@ msgstr "簡便床鋪" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py -msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "不像真正的床那麼舒服,但已經足夠了。" +msgid "" +"An improvised mattress on a flimsy wooden frame. Almost as good as a normal" +" bed, albeit with a slightly lumpy mattress. Considering the circumstances," +" it's not too bad at all." +msgstr "" #: lang/json/furniture_from_json.py msgid "straw bed" @@ -98026,8 +95729,10 @@ msgstr "稻草床" #. ~ Description for straw bed #: lang/json/furniture_from_json.py -msgid "Kinda itches when you lay on it." -msgstr "當你躺在上面時有點癢。" +msgid "" +"An improvised bedding pile made of hay. Better than nothing, but not " +"particularly comfortable, and quite itchy." +msgstr "" #: lang/json/furniture_from_json.py msgid "bookcase" @@ -98035,8 +95740,10 @@ msgstr "書櫃" #. ~ Description for bookcase #: lang/json/furniture_from_json.py -msgid "Stores books. Y'know, those things. Who reads books anymore?" -msgstr "存放書籍。你知道的,就是那種東西。現在還有誰會閱讀書籍?" +msgid "" +"A simple wooden shelf for storing dozens of books. While designed for " +"books, it does a decent job of storing anything else that'll fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "entertainment center" @@ -98044,7 +95751,10 @@ msgstr "視聽櫃" #. ~ Description for entertainment center #: lang/json/furniture_from_json.py -msgid "Stores audio visual equipment, books and collectibles." +msgid "" +"While not quite as cool by itself as the name might imply, this large wooden" +" cabinet can store a variety of things, like a TV and media systems, with " +"shelving space and cupboards for anything that'll fit." msgstr "" #: lang/json/furniture_from_json.py @@ -98053,8 +95763,12 @@ msgstr "棺材" #. ~ Description for coffin #: lang/json/furniture_from_json.py -msgid "Holds the bodies of the countless killed in the Cataclysm." -msgstr "保存在大災變中喪生不計其數的屍身。" +msgid "" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. An honor that countless many will" +" likely never receive." +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "wham!" @@ -98067,9 +95781,11 @@ msgstr "打開棺材" #. ~ Description for open coffin #: lang/json/furniture_from_json.py msgid "" -"You can only hope you'll look good enough for one of these, when the time " -"comes." -msgstr "當你的時辰到了,你會希望自己在裝入這個的時候不會看起來太糟。" +"A humble wooden casket for the respectful burial of the dead. While a " +"standard practice before this all happened, it is now a rare honor for one " +"to be given a proper final resting place. This one is open and unoccupied, " +"and gazing inside fills you with a sense of melancholic weariness." +msgstr "" #: lang/json/furniture_from_json.py msgid "crate" @@ -98078,9 +95794,10 @@ msgstr "木箱" #. ~ Description for crate #: lang/json/furniture_from_json.py msgid "" -"What's inside? Pry it open to find out! Or just smash it, but you might " -"break the contents." -msgstr "裡面有什麼?撬開它就知道了!或者直接敲碎它,但是這樣做可能會破壞內容物。" +"A sealed wooden storage container. Lacking any labels, it could hold just " +"about anything inside. If you don't have a proper tool to pry it open, " +"smashing it is an option, albeit one that risks destroying the contents." +msgstr "" #: lang/json/furniture_from_json.py msgid "open crate" @@ -98088,15 +95805,20 @@ msgstr "開口木箱" #. ~ Description for open crate #: lang/json/furniture_from_json.py -msgid "What's inside? Look in it!" -msgstr "裡面有什麼?看看吧!" +msgid "" +"An open wooden storage box, capable of holding any number of things. The " +"lid has been pried off and is leaned adjacent to it, and with a fresh set of" +" nails, could be sealed back shut." +msgstr "" #. ~ Description for large cardboard box #: lang/json/furniture_from_json.py msgid "" -"A large cardboard box: this could be used to store things, or as a hiding " -"place." -msgstr "一個大紙板箱:這可以用來存放東西,或作為藏身之處。" +"A large box made of a brown paper-based material. Could contain a number of" +" things, or even be hidden inside. Considering it only has two small flaps " +"for carrying, it's very hard to see out of, and won't do anything to protect" +" you if you're found." +msgstr "" #: lang/json/furniture_from_json.py msgid "crumple!" @@ -98112,8 +95834,10 @@ msgstr "衣櫃" #. ~ Description for dresser #: lang/json/furniture_from_json.py -msgid "Dress yourself for the zombie prom, or other occasions." -msgstr "為殭屍舞會或其他場合打扮自己。" +msgid "" +"A simple wooden cabinet with a column of short drawers. While intended for " +"storing clothes, there's nothing stopping you from storing whatever fits." +msgstr "" #: lang/json/furniture_from_json.py msgid "glass front cabinet" @@ -98121,8 +95845,11 @@ msgstr "玻璃門櫃" #. ~ Description for glass front cabinet #: lang/json/furniture_from_json.py -msgid "A tall storage cabinet with a clear glass window." -msgstr "高大的儲物櫃,有著玻璃窗。" +msgid "" +"A tall metal cabinet with a sheet of glass across the front for viewing the " +"contents. Often used for displaying rare, visually pleasing, or otherwise " +"valuable goods, it's odd that it doesn't have a lock." +msgstr "" #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py @@ -98136,8 +95863,12 @@ msgstr "槍枝保險櫃" #. ~ Description for gun safe #: lang/json/furniture_from_json.py -msgid "Oooooohhhh. Shiny." -msgstr "嗚哦~讚啦。" +msgid "" +"A large and heavy container with thick metal walls and a rotary combination " +"lock, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had something to listen close with and a hell of a lot " +"of time, you could probably crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "screeching metal!" @@ -98149,8 +95880,11 @@ msgstr "卡住的槍枝保險櫃" #. ~ Description for jammed gun safe #: lang/json/furniture_from_json.py -msgid "Does it have guns in it? You won't find out. It's jammed." -msgstr "裡面有槍械嗎?你無法得知,因為它卡住了。" +msgid "" +"A heavy and durable metal safe for storing firearms and ammunition. " +"Unfortunately, the lock is completely broken, and short of some pretty " +"serious machinery, you have no possible way of opening it." +msgstr "" #: lang/json/furniture_from_json.py msgid "electronic gun safe" @@ -98158,8 +95892,12 @@ msgstr "電子槍枝保險櫃" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py -msgid "Can you hack it open to get the firearms?" -msgstr "你能破解櫃鎖取出槍械嗎?" +msgid "" +"A large and heavy container with thick metal walls and an electronic locking" +" system, this is designed to securely store firearms, weapon mods, and " +"ammunition. If you had some way of hacking into it, you could probably " +"crack it open." +msgstr "" #: lang/json/furniture_from_json.py msgid "locker" @@ -98167,8 +95905,10 @@ msgstr "儲物櫃" #. ~ Description for locker #: lang/json/furniture_from_json.py -msgid "Usually used for storing equipment or items." -msgstr "通常用於存放設備或物品。" +msgid "" +"A tall sheet metal cabinet, useful for storing just about anything that'll " +"fit." +msgstr "" #: lang/json/furniture_from_json.py msgid "mailbox" @@ -98177,9 +95917,10 @@ msgstr "郵箱" #. ~ Description for mailbox #: lang/json/furniture_from_json.py msgid "" -"A metal box attached to the top of a wooden post. Mail delivery hasn't come" -" for awhile. Doesn't look like it's coming again anytime soon." -msgstr "金屬盒子裝在木柱頂端。郵差已經有段時間沒來了,似乎也不會再來了。" +"A small metal box on top of a wooden post, designed to receive mail " +"deliveries. Although considering the circumstances, it will likely never " +"see proper use again." +msgstr "" #: lang/json/furniture_from_json.py msgid "clothing rail" @@ -98187,7 +95928,10 @@ msgstr "" #. ~ Description for clothing rail #: lang/json/furniture_from_json.py -msgid "A rail for hanging clothes on." +msgid "" +"A metal frame on a set of wheels used for hanging large amounts of clothes." +" Usually used in theater or retail environments, it's easy to use and quick" +" to access." msgstr "" #: lang/json/furniture_from_json.py @@ -98196,8 +95940,10 @@ msgstr "展示架" #. ~ Description for display rack #: lang/json/furniture_from_json.py -msgid "Display your items." -msgstr "展示你的物品。" +msgid "" +"A sheet metal shelving unit, with the storage surfaces angled in such a way " +"as to show off the items stored." +msgstr "" #: lang/json/furniture_from_json.py msgid "wooden rack" @@ -98205,8 +95951,10 @@ msgstr "木架" #. ~ Description for wooden rack #: lang/json/furniture_from_json.py -msgid "A simple wooden rack. Display your items on it." -msgstr "簡單的木架。在上面展示你的物品。" +msgid "" +"A wooden shelving unit with angled storage surfaces designed to show off " +"whatever is stored on it." +msgstr "" #: lang/json/furniture_from_json.py msgid "coat rack" @@ -98214,8 +95962,10 @@ msgstr "衣帽架" #. ~ Description for coat rack #: lang/json/furniture_from_json.py -msgid "A hooked rack for hanging jackets and hats." -msgstr "掛鉤衣架,用於懸掛夾克和帽子。" +msgid "" +"A tall wooden pole with a set of hooks used to store outdoor jackets and " +"hats to allow easy access." +msgstr "" #: lang/json/furniture_from_json.py msgid "recycle bin" @@ -98223,8 +95973,12 @@ msgstr "回收桶" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py -msgid "Stores items for recycling." -msgstr "存放要回收的物品。" +msgid "" +"A large plastic bin painted green with a 'recycle' symbol emblazoned on it." +" While intended to store discarded things to be processed back into a " +"factory, the drastic change in priorities as of late means that these may " +"hold valuable materials." +msgstr "" #: lang/json/furniture_from_json.py msgid "safe" @@ -98232,13 +95986,18 @@ msgstr "保險箱" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "Holds items. Securely." -msgstr "儲藏物品。很堅固。" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. Although, this isn't actually locked, just closed." +msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py -msgid "What needs protection like this?" -msgstr "什麼東西需要這樣的保護?" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock. With something to listen really closely and a hell of a lot of time, " +"you might be able to crack it." +msgstr "" #: lang/json/furniture_from_json.py msgid "open safe" @@ -98246,8 +96005,10 @@ msgstr "開啟的保險箱" #. ~ Description for open safe #: lang/json/furniture_from_json.py -msgid "Grab the firearms!" -msgstr "拿那些槍械!" +msgid "" +"A small, heavy, and near-unbreachable metal box with a rotary combination " +"lock, albeit significantly less secure with the door open." +msgstr "" #: lang/json/furniture_from_json.py msgid "trash can" @@ -98255,8 +96016,11 @@ msgstr "垃圾桶" #. ~ Description for trash can #: lang/json/furniture_from_json.py -msgid "One man's trash is another man's dinner." -msgstr "一個人的垃圾是另一個人的晚餐。" +msgid "" +"A plastic bin for storing discarded waste as to be disposed of later. " +"Although, considering the circumstances, it might be worth seeing what's " +"inside." +msgstr "" #: lang/json/furniture_from_json.py msgid "wardrobe" @@ -98264,7 +96028,10 @@ msgstr "衣櫃" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py -msgid "A tall piece of furniture - basically a freestanding closet." +msgid "" +"A very large wooden cabinet for storing clothes, effectively an upright " +"closet. Could technically be used to store anything else that would fit, " +"though." msgstr "" #: lang/json/furniture_from_json.py @@ -98274,9 +96041,8 @@ msgstr "檔案櫃" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py msgid "" -"A set of drawers in a sturdy metal cabinet, used to hold files. It can be " -"locked to protect important information. If you're lucky, there are often " -"keys nearby." +"A rack of metal drawers designed to hold various files and paperwork. " +"Paperwork that has more than likely lost all worth or value by now." msgstr "" #: lang/json/furniture_from_json.py @@ -98285,8 +96051,10 @@ msgstr "工具架" #. ~ Description for utility shelf #: lang/json/furniture_from_json.py -msgid "A simple heavy-duty plastic and metal shelving unit." -msgstr "簡單的重型塑膠與金屬的貨架組合。" +msgid "" +"A simple heavy-duty plastic and metal shelving unit, intended to store tools" +" and materials for easy access to workers." +msgstr "" #: lang/json/furniture_from_json.py msgid "warehouse shelf" @@ -98295,8 +96063,7 @@ msgstr "" #. ~ Description for warehouse shelf #: lang/json/furniture_from_json.py msgid "" -"A large, sturdy shelf made of metal for storing pallets and crates in " -"warehouses." +"A huge, sturdy steel shelf for storing pallets of crates in warehouses." msgstr "" #: lang/json/furniture_from_json.py @@ -98305,8 +96072,10 @@ msgstr "木桶" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py -msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic." -msgstr "主要由木頭製成桶子。能裝液體,最好是酒類。" +msgid "" +"A large standing wooden barrel, completely watertight. Good for storing " +"liquids of all kinds or fermenting alcohol." +msgstr "" #: lang/json/furniture_from_json.py msgid "display case" @@ -98314,7 +96083,10 @@ msgstr "展示櫃" #. ~ Description for display case #: lang/json/furniture_from_json.py -msgid "Display your stuff fancily and securely." +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Useful for storing valuable things while still showing them off. Not " +"actually as secure as it looks, as the display windows are easily broken." msgstr "" #: lang/json/furniture_from_json.py @@ -98323,8 +96095,12 @@ msgstr "破碎的展示櫃" #. ~ Description for broken display case #: lang/json/furniture_from_json.py -msgid "Display your stuff. It'll get stolen." -msgstr "展示你的物品。會被偷。" +msgid "" +"A secure wooden case at about waist-height, with glass panelling on the top." +" Would be useful for storing valuable things while still showing them off, " +"if the glass hadn't been shattered. Careful not to cut yourself when " +"looting." +msgstr "" #: lang/json/furniture_from_json.py msgid "standing tank" @@ -98332,8 +96108,9 @@ msgstr "水槽" #. ~ Description for standing tank #: lang/json/furniture_from_json.py -msgid "A large freestanding metal tank, useful for holding liquids." -msgstr "一個大型獨立式金屬罐,可用於盛裝液體。" +msgid "" +"A huge metal tank that can be used to safely store large amounts of liquid." +msgstr "" #: lang/json/furniture_from_json.py msgid "dumpster" @@ -98341,8 +96118,11 @@ msgstr "垃圾箱" #. ~ Description for dumpster #: lang/json/furniture_from_json.py -msgid "Stores trash. Doesn't get picked up anymore. Note the smell." -msgstr "存放垃圾。再也不會被清走。注意那味道。" +msgid "" +"A large metal dumpster that will likely not be getting picked up by the " +"city's waste management any time soon. Despite the unpleasant nature of " +"climbing inside, it could make for a viable hiding spot." +msgstr "" #: lang/json/furniture_from_json.py msgid "butter churn" @@ -98350,7 +96130,9 @@ msgstr "" #. ~ Description for butter churn #: lang/json/furniture_from_json.py -msgid "A pedal driven butter churn." +msgid "" +"A metal tube with a built-in mixer for making butter. Rather than needing " +"electricity, it is pedal-driven, allowing use without power." msgstr "" #: lang/json/furniture_from_json.py @@ -99161,68 +96943,6 @@ msgid "" "inducing aroma." msgstr "" -#: lang/json/furniture_from_json.py -msgid "hydroponics unit" -msgstr "水培裝置" - -#. ~ Description for hydroponics unit -#: lang/json/furniture_from_json.py -msgid "This is a self-contained hydroponics unit used to grow crops indoors." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seed" -msgstr "水培裝置(種子)" - -#. ~ Description for hydroponics unit with seed -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seed" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with seedling" -msgstr "水培裝置(幼苗)" - -#. ~ Description for hydroponics unit with seedling -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a planted seedling" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with mature plant" -msgstr "水培裝置(成熟植物)" - -#. ~ Description for hydroponics unit with mature plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics unit with harvestable plant" -msgstr "水培裝置(可收穫植物)" - -#. ~ Description for hydroponics unit with harvestable plant -#: lang/json/furniture_from_json.py -msgid "" -"This is a self-contained hydroponics unit used to grow crops indoors. This " -"one contains a mature plant that is ready for harvest." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "hydroponics heater" -msgstr "水培加熱器" - -#. ~ Description for hydroponics heater -#: lang/json/furniture_from_json.py -msgid "This is a self-contained heater, used to warm hydroponics units." -msgstr "" - #: lang/json/furniture_from_json.py msgid "Translocator Gate" msgstr "" @@ -99331,15 +97051,20 @@ msgid "" msgstr "" #: lang/json/furniture_from_json.py -msgid "krash!" +msgid "tank trap" msgstr "" +#. ~ Description for fungal mass #: lang/json/furniture_from_json.py -msgid "krak." +msgid "" +"Thick ropes of mycal matter have covered the ground here completely. It's " +"soft to the touch, but you sink into it, making moving across it difficult." msgstr "" +#. ~ Description for fungal clump #: lang/json/furniture_from_json.py -msgid "tank trap" +msgid "" +"Alien mold and stems mingle tightly here, creating a sort of fungal bush." msgstr "" #. ~ 'close' action message of some gate object. @@ -99536,13 +97261,13 @@ msgstr[0] "" msgid "Fake gun that fires acid globs." msgstr "能夠發射酸液球的槍。" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -#: src/item_factory.cpp +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gunmod_from_json.py src/item_factory.cpp msgid "auto" 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 +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "步槍" @@ -99552,6 +97277,65 @@ msgid "acid dart gun" msgid_plural "acid dart guns" msgstr[0] "" +#: lang/json/gun_from_json.py +msgid "pipe combination gun" +msgid_plural "pipe combination guns" +msgstr[0] "鋼管拼裝槍" + +#: lang/json/gun_from_json.py +msgid "" +"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " +"other for shotgun shells. It is made from pipes and parts cannibalized from" +" a double barrel shotgun." +msgstr "一把土炮的三管槍械。其中一管的口徑是 .30-06, 另外兩管能裝填霰彈。它是由鋼管和拆解出來的雙管散彈槍零件組合而成。" + +#: lang/json/gun_from_json.py lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "shotgun" +msgstr "霰彈槍" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .30-06" +msgid_plural "pipe rifles: .30-06" +msgstr[0] ".30-06 鋼管步槍" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" +" strike the single round it holds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade heavy carbine" +msgid_plural "handmade heavy carbines" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A homemade lever-action magazine-fed smoothbore rifle. While still a " +"primitive pipe and 2x4 design, some minor improvements have been made, such " +"as being able to accept G3 compatible magazines, and chambering the more " +"powerful .308 rounds." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "handmade carbine" +msgid_plural "handmade carbines" +msgstr[0] "手工製卡賓槍" + +#: lang/json/gun_from_json.py +msgid "" +"A well-designed improvised lever-action carbine with a shortened barrel. " +"Accepting crude detachable magazines or STANAG magazines, this is one of the" +" better homemade weapons." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "pipe rifle: .223" +msgid_plural "pipe rifles: .223" +msgstr[0] ".223 鋼管步槍" + #: lang/json/gun_from_json.py msgid "fusion blaster" msgid_plural "fusion blasters" @@ -99651,9 +97435,7 @@ msgid "" "standard UPS." msgstr "這把雷射手槍是以 21 世紀中葉的 V29 雷射手槍為基礎而設計的,又加了一些大力膠帶跟電子零件的構造,使用標準 UPS 供電。" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py -#: lang/json/gunmod_from_json.py src/item.cpp +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" msgstr "手槍" @@ -99747,11 +97529,6 @@ msgstr "單發" msgid "double" msgstr "雙發" -#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "shotgun" -msgstr "霰彈槍" - #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -99817,6 +97594,34 @@ msgid "" "magazines and is an overall much more effective weapon." msgstr "這是把經過大規模改造的釘槍, 加上了短槍管、槍托和護手。它能使用可拆卸的彈匣重新上彈, 比原來的版本高效好用。" +#: lang/json/gun_from_json.py +msgid "AN-94" +msgid_plural "AN-94s" +msgstr[0] "AN-94 突擊步槍" + +#: lang/json/gun_from_json.py +msgid "" +"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " +"delay felt recoil, along with a very fast two-round burst mode. While its " +"increased complexity prevented it from being adopted by the Russian " +"military, it has seen service among their special forces." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "2 rd." +msgstr "2 連發" + +#: lang/json/gun_from_json.py +msgid "handheld laser cannon" +msgid_plural "handheld laser cannons" +msgstr[0] "手持雷射砲" + +#: lang/json/gun_from_json.py +msgid "" +"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " +"turret that has been modified to use UPS power for firing." +msgstr "這把雷射砲是從 TX-5LR 雷射砲塔上拆下來的, 已經改裝為使用 UPS 供電。" + #: lang/json/gun_from_json.py msgid "base gun" msgid_plural "base guns" @@ -100122,6 +97927,20 @@ msgid "" "retains the integral bipod, though." msgstr "" +#: lang/json/gun_from_json.py +msgid "FS2000" +msgid_plural "FS2000s" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A sleek bullpup carbine designed by FN Herstal, complete with an integrated " +"sight accessory rail. The forward ejecting action and ambidextrous controls" +" make firing comfortable for both left and right-handed shooting. The whole" +" rifle is well sealed from mud and dust for reliability, but this makes it " +"incompatible with many aftermarket magazines." +msgstr "" + #: lang/json/gun_from_json.py msgid "HK416 A5" msgid_plural "HK416 A5s" @@ -100161,6 +97980,18 @@ msgstr "M249是一個可掛載使用的機槍, 常用在美國軍方和特警隊 msgid "burst" msgstr "連發" +#: lang/json/gun_from_json.py +msgid "M249S" +msgid_plural "M249Ss" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"This is a semi-automatic civilian variant of the M249 machine gun, " +"manufactured for sport shooting and collectors market. Notably, it retains " +"the ability to be belt fed, an uncommon feature in civilian firearms." +msgstr "" + #: lang/json/gun_from_json.py msgid "M27 IAR" msgid_plural "M27 IARs" @@ -100213,17 +98044,6 @@ msgid "" "buttstock." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .223" -msgid_plural "pipe rifles: .223" -msgstr[0] ".223 鋼管步槍" - -#: lang/json/gun_from_json.py -msgid "" -"A homemade rifle. It is simply a pipe attached to a stock, with a hammer to" -" strike the single round it holds." -msgstr "" - #: lang/json/gun_from_json.py msgid "Ruger Mini-14" msgid_plural "Ruger Mini-14s" @@ -100271,18 +98091,6 @@ msgid "" "low recoil and high accuracy." msgstr "斯泰爾 AUG 是一把採用了犢牛式設計的澳製突擊步槍。被用在許多國家的武裝部隊以及軍警上, 低後座力且高準確度。" -#: lang/json/gun_from_json.py -msgid "handmade carbine" -msgid_plural "handmade carbines" -msgstr[0] "手工製卡賓槍" - -#: lang/json/gun_from_json.py -msgid "" -"A well-designed improvised lever-action carbine with a shortened barrel. " -"Accepting crude detachable magazines or STANAG magazines, this is one of the" -" better homemade weapons." -msgstr "" - #: lang/json/gun_from_json.py msgid "Remington 700 .270 Win" msgid_plural "Remington 700 .270 Win" @@ -100402,11 +98210,6 @@ msgid "" msgstr "" "一把受歡迎又可靠的步槍, 常用於狩獵或是狙擊。在 SWAT 或是美國海軍陸戰隊的狙擊手中常見。極高的傷害值, 但是可能沒有比其對手白朗寧 BLR 準確。" -#: lang/json/gun_from_json.py -msgid "pipe rifle: .30-06" -msgid_plural "pipe rifles: .30-06" -msgstr[0] ".30-06 鋼管步槍" - #: lang/json/gun_from_json.py msgid "Remington ACR .300BLK" msgid_plural "Remington ACR .300BLKs" @@ -100531,16 +98334,14 @@ msgstr "" "M60 是一把通用機槍, 旨在取代 .30 口徑的 M1918 和 M1919。槍身沉重, 難以在缺乏支撐下提槍射擊, 因為大多數人都不是動作片英雄。" #: lang/json/gun_from_json.py -msgid "handmade heavy carbine" -msgid_plural "handmade heavy carbines" +msgid "M60 Semi Auto" +msgid_plural "M60 Semi Autos" msgstr[0] "" #: lang/json/gun_from_json.py msgid "" -"A homemade lever-action magazine-fed smoothbore rifle. While still a " -"primitive pipe and 2x4 design, some minor improvements have been made, such " -"as being able to accept G3 compatible magazines, and chambering the more " -"powerful .308 rounds." +"This is a semi-automatic civilian variant of the M60 machine gun, retaining " +"the ability to be belt fed, an uncommon feature in civilian firearms." msgstr "" #: lang/json/gun_from_json.py @@ -101297,9 +99098,9 @@ msgid "" msgstr "一把拼裝而成的笨重手槍。外表並不美觀, 但它 .45 口徑的威力不容小覷。另外要注意的是他的後座力。" #: lang/json/gun_from_json.py -msgid "Thompson submachine gun" -msgid_plural "Thompson submachine guns" -msgstr[0] "湯普森衝鋒槍" +msgid "Thompson M1928A1" +msgid_plural "Thompson M1928A1s" +msgstr[0] "" #: lang/json/gun_from_json.py msgid "" @@ -101333,9 +99134,9 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "Walther PPQ .45 ACP" -msgid_plural "Walther PPQ .45 ACPs" -msgstr[0] "華瑟 PPQ .45 ACP 手槍" +msgid "Walther PPQ 45" +msgid_plural "Walther PPQ 45s" +msgstr[0] "" #: lang/json/gun_from_json.py msgid "" @@ -101604,23 +99405,6 @@ msgid "" " the AK series with the high-velocity, lightweight 5.45x39mm cartridge." msgstr "廣為人知的 AK-47 步槍的後繼型號。它結合了 AK 系列的可靠性, 使用高彈速、輕量的 5.45x39mm 子彈。" -#: lang/json/gun_from_json.py -msgid "AN-94" -msgid_plural "AN-94s" -msgstr[0] "AN-94 突擊步槍" - -#: lang/json/gun_from_json.py -msgid "" -"Intended to replace the AK-74, this rifle uses a sophisticated mechanism to " -"delay felt recoil, along with a very fast two-round burst mode. While its " -"increased complexity prevented it from being adopted by the Russian " -"military, it has seen service among their special forces." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "2 rd." -msgstr "2 連發" - #: lang/json/gun_from_json.py msgid "FN Five-Seven" msgid_plural "FN Five-Sevens" @@ -101971,17 +99755,6 @@ msgstr "" "原本設計為軍事用途, Rivtech 公司製造的 RM88 戰鬥步槍研發概念是希望能在惡劣情況下, 仍擁有可靠性能與強大火力, " "有著重型氣孔式槍管以達到最高的可控性。使用盒狀彈匣或 RMGD250 彈鼓。" -#: lang/json/gun_from_json.py -msgid "RM99 revolver" -msgid_plural "RM99 revolvers" -msgstr[0] "RM99 左輪手槍" - -#: lang/json/gun_from_json.py -msgid "" -"Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" -" addition to the arsenal of any gunslinger." -msgstr "儘管有點誇張, RM99滿足了軍武狂熱者眼中的強大火力。" - #: lang/json/gun_from_json.py msgid "Beretta 90-two" msgid_plural "Beretta 90-twos" @@ -102424,18 +100197,6 @@ msgid "" "by their egomaniac descendants in New England." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe combination gun" -msgid_plural "pipe combination guns" -msgstr[0] "鋼管拼裝槍" - -#: lang/json/gun_from_json.py -msgid "" -"A home-made triple-barreled firearm, one barrel chambered in .30-06 and two " -"other for shotgun shells. It is made from pipes and parts cannibalized from" -" a double barrel shotgun." -msgstr "一把土炮的三管槍械。其中一管的口徑是 .30-06, 另外兩管能裝填霰彈。它是由鋼管和拆解出來的雙管散彈槍零件組合而成。" - #: lang/json/gun_from_json.py msgid "flamethrower" msgid_plural "flamethrowers" @@ -102583,6 +100344,18 @@ msgid "" "action means this is much less likely to jam." msgstr "" +#: lang/json/gun_from_json.py +msgid "handmade lever shotgun" +msgid_plural "handmade lever shotguns" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A short homemade lever-action shotgun with a small internal tube magazine. " +"While still a primitive pipe and 2x4 design, it is a formiddable shotgun in " +"it's own right with room for improvement." +msgstr "" + #: lang/json/gun_from_json.py msgid "Browning Auto 5" msgid_plural "Browning Auto 5s" @@ -102938,17 +100711,6 @@ msgid "" "quiet and accurate marksman laser rifle." msgstr "" -#: lang/json/gun_from_json.py -msgid "handheld laser cannon" -msgid_plural "handheld laser cannons" -msgstr[0] "手持雷射砲" - -#: lang/json/gun_from_json.py -msgid "" -"This is a laser cannon stripped from the barrel of a TX-5LR Cerberus laser " -"turret that has been modified to use UPS power for firing." -msgstr "這把雷射砲是從 TX-5LR 雷射砲塔上拆下來的, 已經改裝為使用 UPS 供電。" - #: lang/json/gun_from_json.py msgid "A7 laser rifle" msgid_plural "A7 laser rifles" @@ -103140,8 +100902,8 @@ msgstr[0] "彈丸十字弓" msgid "" "A modified version of the classic crossbow which utilizes stones as " "projectiles instead of the traditional quarrel. Primarily intended for " -"hunting small game, stronger people can reload it much faster." -msgstr "一個典型十字弓的修改版, 它採用石頭作為彈藥, 替代傳統的彈丸。" +"hunting small game." +msgstr "" #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -103162,10 +100924,9 @@ msgstr[0] "十字弓" #: lang/json/gun_from_json.py msgid "" -"A slow-loading hand weapon that launches bolts. Stronger people can reload " -"it much faster. Bolts fired from this weapon have a good chance of " -"remaining intact for re-use." -msgstr "一具裝填緩慢的十字弓。夠強壯的人能以更快的速度重新裝填。由此武器射出的十字弓箭矢多數可以重複使用。" +"A slow-loading hand weapon that launches bolts. Bolts fired from this " +"weapon have a good chance of remaining intact for re-use." +msgstr "" #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -103307,8 +101068,9 @@ msgstr[0] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling, easy to use and accurate. It uses pebbles as ammunition." -msgstr "一個皮製的投石帶, 很易用又準確。以小石子作為彈藥。" +"A leather sling, can launch rocks much further and faster than throwing them" +" by hand." +msgstr "" #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -103322,9 +101084,9 @@ msgstr[0] "彈弓" #: lang/json/gun_from_json.py msgid "" -"A wooden slingshot, easy to use and accurate. It uses pebbles as " -"ammunition." -msgstr "一把木製的彈弓, 很易用又準確。以小石子作為彈藥。" +"A forked piece of wood with an elastic band stretched between two of its " +"tips. Can launch tiny pebbles and similar things at high speeds." +msgstr "" #: lang/json/gun_from_json.py msgid "staff sling" @@ -103333,8 +101095,8 @@ msgstr[0] "" #: lang/json/gun_from_json.py msgid "" -"A leather sling attached to a staff, easy to use and accurate. It uses " -"rocks as ammunition." +"This staff can launch rocks with a whiping motion that sends them flying " +"much further and faster than throwing them." msgstr "" #: lang/json/gun_from_json.py @@ -103344,9 +101106,9 @@ msgstr[0] "緊縛彈弓" #: lang/json/gun_from_json.py msgid "" -"A modern slingshot with a wrist brace, it is easy to use, accurate, and " -"quite powerful." -msgstr "一個現代化的彈弓, 綁在手腕固定, 操作簡單, 準確, 而且威力相當強大。" +"A modern slingshot with a wrist brace, allowing it to fire tiny objects " +"slightly more forcefully than a simple wooden slingshot." +msgstr "" #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -103588,8 +101350,7 @@ msgid "" " mid-range versatility of the 9mm with the power of the 12 gauge shotgun. " "To further compliment the CQB aspect, the stock is built to amplify the " "user's force and the rugged construction with tonfa-like grip can handle " -"bashing in enemy heads. An integrated magazine makes it a pain to reload, " -"but keeps your clip from ejecting accidently." +"bashing in enemy heads." msgstr "" #: lang/json/gun_from_json.py @@ -103640,7 +101401,7 @@ msgid "" "Experimental double purpose tool under development in C.R.I.T R&D. It takes" " a regular nail and then enlongates it within a fraction of a second before " "firing it out, upon reaching a target, the fragile stake explodes into " -"shards." +"shards inside the target." msgstr "" #: lang/json/gun_from_json.py @@ -103755,222 +101516,30 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py -msgid "SVS-24" -msgid_plural "SVS-24" -msgstr[0] "SVS-24" - -#: lang/json/gun_from_json.py -msgid "" -"The Sarafanov Assault Rifle replaced the famous AK family of guns as the " -"service rifle of the Russian Army. It uses the 6.54x42mm cartridge." -msgstr "這把 Sarafanov 突擊步槍取代了 AK 家族成為俄羅斯軍隊的制式步槍。它使用 6.54x42mm 子彈。" - -#: lang/json/gun_from_json.py -msgid "SVS-24C" -msgid_plural "SVS-24C" -msgstr[0] "SVS-24C" - -#: lang/json/gun_from_json.py -msgid "" -"The compact version of the standard SVS-24. It is commonly issued to tank " -"crews or special forces due to its smaller size. The shorter barrel reduces" -" accuracy." -msgstr "小型版的 SVS-24。由於它的尺寸較小, 通常是發給坦克兵和特種兵。其較短的槍管會降低精準度。" - -#: lang/json/gun_from_json.py -msgid "CW-24" -msgid_plural "CW-24" -msgstr[0] "CW-24" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It was made by Clearwater Arms, Georgia, " -"for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" -" cartridge." -msgstr "SVS-24 的民用版本。由美國喬治亞州的 Clearwater 槍械工廠生產。這把是半自動槍, 發射較弱的 5.45x39mm 子彈。" - -#: lang/json/gun_from_json.py -msgid "CW-24M" -msgid_plural "CW-24M" -msgstr[0] "CW-24M" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" -" as the SVS-24." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "CW-24K" -msgid_plural "CW-24K" -msgstr[0] "CW-24K" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. This one fires the cheaper, but still " -"powerful, 7.62x39mm cartridge." -msgstr "SVS-24 的民用版本。這把槍使用更便宜但同樣強的 7.62x39mm 子彈。" - -#: lang/json/gun_from_json.py -msgid "Modified CW-24" -msgid_plural "Modified CW-24" -msgstr[0] "CW-24 改造版" - -#: lang/json/gun_from_json.py -msgid "" -"Civilian version of the SVS-24. It has a modified receiver and a new " -"crudely crafted full-auto bolt carrier. Don't expect the original " -"reliability." -msgstr "SVS-24的民用版本。改裝了供彈機制與重度改造的全自動槍機。只是就不要期待跟原廠一樣的可靠度了。" - -#: lang/json/gun_from_json.py -msgid "Modified CW-24M" -msgid_plural "Modified CW-24M" -msgstr[0] "CW-24M 改造版" - -#: lang/json/gun_from_json.py -msgid "CWD-63" -msgid_plural "CWD-63" -msgstr[0] "CWD-63" - -#: lang/json/gun_from_json.py -msgid "" -"The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " -"rechambered for the .308 round." -msgstr "知名 SVD-63 Dragunov 的 Clearwater 槍械廠版。這把步槍改成使用 .308 子彈。" - -#: lang/json/gun_from_json.py -msgid "Wrist DREAD" -msgid_plural "Wrist DREAD" -msgstr[0] "手腕電磁鋼珠槍" - -#: lang/json/gun_from_json.py -msgid "" -"The miniaturized version of the DREAD MkIX attached to the wrist of the " -"operator. It fires .20 metal pellets at an incredible rate without any " -"flash or noise. It is mainly a defensive weapon." -msgstr "" -"附掛於操作者手腕上的電磁鋼珠槍 MkIX 小型化版本。能夠以不可思議的連發速度發射 .20 鋼珠, 而且不會有任何閃光與噪音。主要作為防衛武器。" - -#: lang/json/gun_from_json.py -msgid "JHEC M128" -msgid_plural "JHEC M128s" -msgstr[0] "JHEC M128" - -#: lang/json/gun_from_json.py -msgid "" -"The Johnson Heavy Equipment Co. M128 autorevolver; all others fail to " -"measure up. Johnson Heavy Equipment Co. is a subsidiary of D&B " -"Minneapolis." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "Boomlighter 454" -msgid_plural "Boomlighter 454s" +msgid "pipe rifle" +msgid_plural "pipe rifles" msgstr[0] "" #: lang/json/gun_from_json.py msgid "" -"Handmade by master gunsmiths at D&B Minneapolis, this deadly accurate and " -"powerful pistol packs a punch with precision, power and flair. Comes with a" -" one of a kind integrated flamethrower." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "gunsword" -msgid_plural "gunswords" -msgstr[0] "槍刃" - -#: lang/json/gun_from_json.py -msgid "" -"A long sharp blade, with two powerful .500 S&W Magnum chambers in the hilt." -" While chambering big rounds, the barrels are so short it slightly reduces " -"outgoing damage." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "gunknife" -msgid_plural "gunknives" -msgstr[0] "槍匕" - -#: lang/json/gun_from_json.py -msgid "" -"A short but sharp blade, with two powerful .500 S&W Magnum chambers in the " -"grip. While chambering big rounds, the barrels are so short it slightly " -"reduces outgoing damage." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "FiveO handcannon" -msgid_plural "FiveO handcannons" -msgstr[0] "50 口徑手砲" - -#: lang/json/gun_from_json.py -msgid "" -"Someone crazy thought that the .50 BMG belonged in a pistol. This massive " -"piece of steel proves otherwise. The sheer bulk however does make it quite " -"adept at smashing face." -msgstr "有些瘋子認為 50 口徑手砲應當歸類為手槍。但是它巨大的鋼管證明了它並不是這麼一回事。無論如何, 就體積而言它確實很適合用來砸爛某人的臉。" - -#: lang/json/gun_from_json.py -msgid "M919" -msgid_plural "M919s" -msgstr[0] "M919" - -#: lang/json/gun_from_json.py -msgid "" -"Manufactured by Sarah and Suhl machine company of Portland, Maine, the M919 " -"submachine gun is the most accurate 9x19mm submachine gun on the market. " -"Intended for police use, it is fitted with an integral grenade launcher." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "Eagle 1776" -msgid_plural "Eagle 1776" -msgstr[0] "Eagle 1776" - -#: lang/json/gun_from_json.py -msgid "" -"You see before you a marvel of American engineering: a powerful .44 Magnum " -"submachine gun, made from fine parts assembled in America, including an " -"integral grenade launcher. Eagle 1776: From the arsenal of freedom!" +"A crude longarm chambered in standard rifle ammunition, reinforced near the " +"chamber. It holds a single a round and has a crude assembly to fire it. " +"There's no extractor, so it might be slow to reload, and its construction " +"makes for poor reliability and longevity." msgstr "" #: lang/json/gun_from_json.py -msgid "L.T. carbine" -msgid_plural "L.T. carbines" +msgid "survivor carbine" +msgid_plural "survivor carbines" msgstr[0] "" #: lang/json/gun_from_json.py msgid "" -"The Lightning Trail carbine was developed for the riot police to quickly " -"blanket an area with lightning clouds. While damaging, it is less lethal " -"than live ammunition." -msgstr "閃電獵手卡賓槍是為了讓鎮暴警察能以雷雲快速制壓一個地區而開發的。雖然它能造成傷害, 但相較於實體彈藥更不致命。" - -#: lang/json/gun_from_json.py -msgid "arc cannon" -msgid_plural "arc cannons" -msgstr[0] "電弧砲" - -#: lang/json/gun_from_json.py -msgid "" -"The arc cannon fires bolts of lightning arcing between targets in close " -"proximity to each other. Originally manufactured to fry insects, now it’s " -"been turned up to fry zombies." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "M1911 DS" -msgid_plural "M1911 DSs" -msgstr[0] "M1911 黑暗潛行者" - -#: lang/json/gun_from_json.py -msgid "" -"The M1911 Darkstalker is a very modified M1911, it has a fully integrated " -"crossbow and added rails. Professional looking with a ebony black finish, " -"laced with lime green details. Now they will know why they fear the night." -" Bat hood sold separately." +"A crudely constructed carbine chambered for standard rifle ammo, fed from " +"service rifle magazines. It locks with a rudimentary lever action system. " +"The high pressures involved and questionable construction make for less than" +" ideal durability and reliability, but this should still be a serviceable " +"weapon, provided you can stay accurate with it." msgstr "" #: lang/json/gun_from_json.py @@ -104306,33 +101875,6 @@ msgid "" "to reload." msgstr "" -#: lang/json/gun_from_json.py -msgid "pipe rifle" -msgid_plural "pipe rifles" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crude longarm chambered in standard rifle ammunition, reinforced near the " -"chamber. It holds a single a round and has a crude assembly to fire it. " -"There's no extractor, so it might be slow to reload, and its construction " -"makes for poor reliability and longevity." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "survivor carbine" -msgid_plural "survivor carbines" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"A crudely constructed carbine chambered for standard rifle ammo, fed from " -"service rifle magazines. It locks with a rudimentary lever action system. " -"The high pressures involved and questionable construction make for less than" -" ideal durability and reliability, but this should still be a serviceable " -"weapon, provided you can stay accurate with it." -msgstr "" - #: lang/json/gun_from_json.py msgid "sniper rifle" msgid_plural "sniper rifles" @@ -104557,616 +102099,34 @@ msgstr "" msgid "Fake gun that fires barbed javelins." msgstr "" -#: lang/json/gun_from_json.py -msgid "fire lance" -msgid_plural "fire lances" -msgstr[0] "火尖槍" - -#: lang/json/gun_from_json.py -msgid "" -"An ancient Chinese spear, with a small tube attached for a charge of " -"gunpowder. While it has an extremely short range, it gives a powerful edge " -"in close combat." -msgstr "一種古老的中式標槍, 有個小小的管子讓你裝入火藥。除了有少許的射程外, 在近戰的時候也有強大爆發力。" - -#: lang/json/gun_from_json.py -msgctxt "gun_type_type" -msgid "melee" -msgstr "近戰" - -#: lang/json/gun_from_json.py -msgid "base robogun" -msgid_plural "base roboguns" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"This is a pseudo item for monster attacks. If you see this, it's a bug." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "integral 12 gauge shotgun" -msgid_plural "integral 12 gauge shotguns" -msgstr[0] "內置 12 高斯霰彈槍" - -#: lang/json/gun_from_json.py -msgid "integral 50 caliber machinegun" -msgid_plural "integral 50 caliber machineguns" -msgstr[0] "內置 50 口徑機槍" - -#: lang/json/gun_from_json.py -msgid "integral needle gun" -msgid_plural "integral needle guns" -msgstr[0] "內置針槍" - -#: lang/json/gun_from_json.py -msgid "integral 8mm firearm" -msgid_plural "integral 8mm firearms" -msgstr[0] "內置 8mm 槍械" - -#: lang/json/gun_from_json.py -msgid "integral laser emitter" -msgid_plural "integral laser emitters" -msgstr[0] "內置雷射器" - -#: lang/json/gun_from_json.py -msgid "integral railgun" -msgid_plural "integral railguns" -msgstr[0] "內置電磁軌道炮" - -#: lang/json/gun_from_json.py -msgid "integral lightning caster" -msgid_plural "integral lightning casters" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "integral EMP generator" -msgid_plural "integral EMP generators" -msgstr[0] "內置電磁脈衝產生器" - -#: lang/json/gun_from_json.py -msgid "atlatl" -msgid_plural "atlatls" -msgstr[0] "投槍器" - -#: lang/json/gun_from_json.py -msgid "" -"A wooden tool for supporting a javelin, to throw it more effectively than by" -" hand." -msgstr "一件能固定標槍尾端的木製工具, 增加投擲標槍時的力量。" - -#: lang/json/gun_from_json.py -msgid "makeshift crossbow" -msgid_plural "makeshift crossbows" -msgstr[0] "粗製十字弓" - -#: lang/json/gun_from_json.py -msgid "" -"A simple, handmade crossbow of the Skane style, with a wooden peg that is " -"pushed up from underneath to loose the bowstring. Not as powerful as other " -"crossbow designs, but it is easier to draw the bow back. Bolts fired from " -"this weapon have a good chance of remaining intact for re-use." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "" -"This is a replica of the bow possessed by Odin, Ichaival, which is rumored " -"to fire 10 arrows with every pull of the string. It has gold and silver " -"ornaments on it." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "integral nailgun" -msgid_plural "integral nailguns" -msgstr[0] "內置釘槍" - -#: lang/json/gun_from_json.py -msgid "mounted crossbow" -msgid_plural "mounted crossbows" -msgstr[0] "掛載十字弓" - -#: lang/json/gun_from_json.py -msgid "Vortical plasma beam" -msgid_plural "Vortical plasma beams" -msgstr[0] "渦旋等離子束" - #: lang/json/gun_from_json.py msgid "TEST compound bow" msgid_plural "TEST compound bows" msgstr[0] "" #: lang/json/gun_from_json.py -msgid "30mm autocannon" -msgid_plural "30mm autocannons" -msgstr[0] "30mm 機砲" - -#: lang/json/gun_from_json.py -msgid "" -"A chain-driven autocannon chambered in 30x113mm, originally designed for " -"aircraft use, but later adapted for armored vehicles. Obviously it needs to" -" be mounted on a vehicle to fire." -msgstr "一門鏈條驅動的 30x113mm 自走炮, 最初設計用於飛機上, 但後來改裝到裝甲車輛上。很明顯地, 這東西要安裝在車輛上使用。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "120mm tank gun" -msgid_plural "120mm tank guns" -msgstr[0] "120mm 坦克炮" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " -"to fire." -msgstr "一門 120mm 坦克炮。很明顯地, 這東西要安裝在車輛上使用。" - -#: lang/json/gun_from_json.py -msgid "120mm autoloading tank gun" -msgid_plural "120mm autoloading tank guns" -msgstr[0] "120mm 自動裝填坦克炮" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "一門 120mm 坦克炮, 附有五發的自動裝填系統。很明顯地, 這東西要安裝在車輛上使用。" - -#: lang/json/gun_from_json.py -msgid "120mm remote weapon system" -msgid_plural "120mm remote weapon systems" -msgstr[0] "120mm 遙控武器系統" - -#: lang/json/gun_from_json.py -msgid "" -"A 120mm cannon with an advanced autoloader, designed to operate via remote " -"control. Obviously it needs to be mounted on a vehicle to fire." -msgstr "一門 120mm 坦克炮, 附有先進的自動裝填系統, 以遙控方式操作。很明顯地, 這東西要安裝在車輛上使用。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "155mm howitzer" -msgid_plural "155mm howitzers" -msgstr[0] "155mm 榴彈砲" - -#: lang/json/gun_from_json.py -msgid "" -"A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " -"to be mounted on a vehicle to fire." -msgstr "一門 155mm 炮, 供炮兵和重型坦克使用。很明顯地, 這東西要安裝在車輛上使用。" - -#: lang/json/gun_from_json.py -msgid "Vehicular ATGM Launcher" -msgid_plural "Vehicular ATGM Launchers" -msgstr[0] "車載反坦克導彈發射器" - -#: lang/json/gun_from_json.py -msgid "" -"A launcher for anti-tank guided missiles. While highly accurate, it isn't " -"fire-and-forget. Obviously it needs to be mounted on a vehicle to fire." -msgstr "一個反坦克導彈發射台。儘管有著高精確度, 它並不具備 \"射後不理\" 的能力。很明顯地, 這東西要安裝在車輛上使用。" - -#: lang/json/gun_from_json.py -msgid "slingshot cannon" -msgid_plural "slingshot cannons" -msgstr[0] "彈射砲" - -#: lang/json/gun_from_json.py -msgid "" -"Essentially several long drawstrings held by two long, reinforced sides and " -"a mechanism attached to a crank to draw and fire it. It's deceptively " -"powerful and surprisingly accurate, but far too large to be used without " -"some sort of stable platform." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "lacerator" -msgid_plural "lacerators" -msgstr[0] "撕裂者" - -#: lang/json/gun_from_json.py -msgid "" -"This weapon launches serrated metal disks at nearby enemies. It draws its " -"power from a vehicle's engines, and thus must be mounted on such in order to" -" be operated." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "rotary cannon" -msgid_plural "rotary cannons" -msgstr[0] "旋轉炮" - -#: lang/json/gun_from_json.py -msgid "" -"This fearsome weapon sports 3 barrels in a cyclic configuration. A " -"specialized mechanism loads the otherwise troublesome rounds; allowing it to" -" be fired in quick succession. However, this renders it incredibly " -"unwieldy, and it must be mounted on a support structure in order to be " -"fired." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "laser cannon" -msgid_plural "laser cannons" -msgstr[0] "雷射砲" - -#: lang/json/gun_from_json.py -msgid "" -"This enhanced laser cannon sacrifices efficiency for destructive power. The" -" increased power requirements require a significant power source and the " -"size of the firing mechanism also requires support." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "pulse laser" -msgid_plural "pulse lasers" -msgstr[0] "脈衝雷射" - -#: lang/json/gun_from_json.py -msgid "" -"Augmented damage capability and rapid bursts make this a powerful weapon. " -"The increased power requirements require a significant power source and the " -"firing mechanism also requires a specialized chassis." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "turbolaser cannon" -msgid_plural "turbolaser cannons" -msgstr[0] "渦輪雷射砲" - -#: lang/json/gun_from_json.py -msgid "" -"With an augmented emitter and capacitor, this mounted laser is capable of " -"superheating most materials to the point of exploding. The firing mechanism" -" also requires the services of a specialized chassis, and one must be wary " -"of the prodigious power needs of such a weapon." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "ripper" -msgid_plural "rippers" -msgstr[0] "撕裂者" - -#: lang/json/gun_from_json.py -msgid "" -"This menacing weapon rapidly launches bladed disks that rips through enemies" -" with devastating effect. It draws its power from a vehicle's engines, and " -"thus must be mounted on such in order to be operated." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "scorpion ballista" -msgid_plural "scorpion ballistae" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"A massive tension-operated crossbow. The hand-crank allows one to draw it " -"without the need for heavy labor. It's far too massive to be used on foot, " -"and thus needs to be mounted on a vehicle in order to be operated." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "harpoon gun" -msgid_plural "harpoon guns" -msgstr[0] "魚叉槍" - -#: lang/json/gun_from_json.py -msgid "" -"A tension-operated speargun. A hand-crank lets one draw the strings " -"quickly, but it's too unwieldy to handle without a support of some sort." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "tesla cannon" -msgid_plural "tesla cannons" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"This alteration of the Chain Lightning bionic fires artificial lightning " -"bolts that arc to nearby enemies. It must be attached to a large power " -"source, but it allows for much more powerful bolts." -msgstr "" -"一個 \"連鎖閃電 (Chain Lightning)\" 生化模組的修改版, 讓你可以對附近的敵人發射人造閃電球。它需要更大的電力來源, " -"但是也更為強力。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "biting blob" -msgid_plural "biting blobs" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. It has evolved the ability to constantly " -"generate calcified protrusions which are then controlled by sinuous tensile " -"strands. These \"teeth\" can then be used to latch and wound anything " -"unfortunate enough to be nearby. The outer membrane has also become " -"significantly thicker in order to support its more strenuous movement; " -"though it seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel shooter" -msgid_plural "gel shooters" -msgstr[0] "凝膠射手" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It trawls the ground for " -"material, which it then strips of nutrition. The remainder is then expelled" -" out at significant velocity towards any nearby threats. The amorphous mass" -" can be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it. It seems pliable enough to pull apart…" -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "frost lancer" -msgid_plural "frost lancers" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A biological aberration " -"that exists at sub-zero temperatures. After filtering nutrients from the " -"water, it freezes the remainder into an incredibly sharp spear of ice; which" -" it then launches at nearby threats. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "snapping ooze" -msgid_plural "snapping oozes" +msgid "Test Glock" +msgid_plural "Test Glocks" msgstr[0] "" #: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A baffling mutation in an " -"already baffling creature, this blob is encased in a thick coat of fur, " -"which serves as a form of protection. In addition, it is capable of " -"projecting rows of calcified sharp fragments in a manner mimicking the jaw " -"of a more recognizable creature. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "blobsaw" -msgid_plural "blobsaws" -msgstr[0] "黏球鋸" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon; meant to be stretched across" -" a frame as a form of barrier. While its simpler cousins have a limit to " -"the number of keratinous protrusions they can project and control; this blob" -" can utilize hundreds of these sharp fangs to shred anything it detects as a" -" threat into unrecognizable ribbons. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"活的團塊變成了一種自主武器。作為一種在框架上延伸的屏障。雖然比起它較簡化的表兄弟在角質突起的數量上有所限制, " -"但它們卻可以投射和操控。這個團塊可以利用數以百計的鋒利尖牙將它所檢測到的任何東西粉碎成無法辨認的條狀物。無定形的質量可以在你觸摸時成形與附著, " -"但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fuel puffer" -msgid_plural "fuel puffers" -msgstr[0] "燃料噴出器" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digestion process turns the " -"result incredibly viscous which, when threats come near, is launched; " -"ensnaring anything it hits. The amorphous mass can be shaped and attached " -"at your touch, but the weapon itself is inert without something to control " -"it." -msgstr "" -"活的團塊變成了一種自主武器。它是一個相當挑剔的食客, 以汽油中的化學物質為食。消化後的物質變得極度粘稠, 並在威脅接近時發射, " -"將擊中的任何東西黏住。無定形的質量可以在你觸摸時成形與附著, 但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "acid puffer" -msgid_plural "acid puffers" -msgstr[0] "酸液噴出器" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, the " -"digestion process produces highly acidic byproducts; which is then expelled " -"at any nearby enemies. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"活的團塊變成了一種自主武器。過濾進料器, 消化過程將產生高度酸性的副產物, 然後排出到附近的任何敵人身上。無定形的質量可以在你觸摸時成形與附著, " -"但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spiker" -msgid_plural "gel spikers" -msgstr[0] "凝膠長釘" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Capable of calcifying large" -" numbers of fang-like fragments within itself. It hurls groups of these " -"fragments along with a small portion of itself. When it reaches its " -"destination, the detached remains shoot these fragments in all directions, " -"expiring in the process. The amorphous mass can be shaped and attached at " -"your touch, but the weapon itself is inert without something to control it." -msgstr "" -"活的團塊變成了一種自主武器。能夠在其內部鈣化大量獠牙般的碎片。它將這些碎片組與其自身的一小部分一起投擲。當投射到目的地時, 將向所有方向爆射出這些碎片," -" 最後在此過程中殞滅。無定形的質量可以在你觸摸時成形與附著, 但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel spouter" -msgid_plural "gel spouters" -msgstr[0] "凝膠噴射器" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It can suck in water from a" -" vehicle tank, and forcibly expel it in a wide cone. The amorphous mass can" -" be shaped and attached at your touch, but the weapon itself is inert " -"without something to control it." -msgstr "" -"活的團塊變成了一種自主武器。它可以從車輛水箱中吸水, 並強迫將水以寬錐形排出。無定形的質量可以在你觸摸時成形與附著, 但武器本身是惰性的, " -"無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel lancer" -msgid_plural "gel lancers" -msgstr[0] "凝膠長矛手" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Evolving incredible " -"abilities of perception, it is capable of locating and discerning possible " -"threats within a large radius. When a potential threat is located, it fires" -" a small, calcified projectile with incredible speed and accuracy. The " -"amorphous mass can be shaped and attached at your touch, but the weapon " -"itself is inert without something to control it." +msgid "A handgun for testing, based on the Glock 9mm." msgstr "" -"活的團塊變成了一種自主武器。它具有令人難以置信的感知能力, 能夠在大半徑範圍內定位和識別可能的威脅。當發現潛在的威脅時, " -"它會以驚人的速度和命中率來發射一個小的鈣化彈丸。無定形的質量可以在你觸摸時成形與附著, 但武器本身是惰性的, 無需額外物件來控管它。" -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel razor" -msgid_plural "gel razors" -msgstr[0] "凝膠剃刀" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. An enhanced metabolism " -"allows it to calcify large, toothy discs which are then launched towards any" -" nearby threats. The amorphous mass can be shaped and attached at your " -"touch, but the weapon itself is inert without something to control it." -msgstr "" -"活的團塊變成了一種自主武器。增強的新陳代謝使其能夠鈣化巨大的銳牙圓盤, 然後朝向附近的威脅發射。無定形的質量可以在你觸摸時成形與附著, " -"但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "shock bulb" -msgid_plural "shock bulbs" -msgstr[0] "震動球狀物" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. Shockingly, it somehow is " -"able to project electricity, which it then discharges at any nearby threats." -" The amorphous mass can be shaped and attached at your touch, but the " -"weapon itself is inert without something to control it." -msgstr "" -"活的團塊變成了一種自主武器。令人震驚的是, 它能夠以某種方式投射電力, 然後在附近的任何威脅中放電。無定形的質量可以在你觸摸時成形與附著, " -"但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "gel puffer" -msgid_plural "gel puffers" -msgstr[0] "凝膠噴出器" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A filter feeder, it strips " -"any water it processes of nutrients and expels the remainder towards any " -"nearby threats. The process of filter-feeding also makes the remaining " -"liquid viscous, though it also dissipates fairly quickly. The amorphous " -"mass can be shaped and attached at your touch, but the weapon itself is " -"inert without something to control it." -msgstr "" -"活的團塊變成了一種自主武器。它是一種過濾進料器, 可以去除任何處理營養物質的水, 並將剩餘的水排向附近的威脅物。過濾進料的過程也使剩餘的液體粘稠, " -"雖說它也很快就會消散。無定形的質量可以在你觸摸時成形與附著, 但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "fire puffer" -msgid_plural "fire puffers" -msgstr[0] "火焰噴出器" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. A rather picky eater, it " -"feeds on chemicals found within gasoline. The digested material is still " -"highly flammable, and when launched, also activates an ignition gland " -"located on the outer membrane. The amorphous mass can be shaped and " -"attached at your touch, but the weapon itself is inert without something to " -"control it." -msgstr "" -"活的團塊變成了一種自主武器。它是一個相當挑剔的食客, 以汽油中的化學物質為食。消化後的物質仍然是高度易燃的, " -"並且在發射時還會激活位於外膜上的點火腺體。無定形的質量可以在你觸摸時成形與附著, 但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "spark blight" -msgid_plural "spark blights" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"A living blob turned into an autonomous weapon. It is capable of storing " -"energy from sunlight inside itself in the form of electricity. Then, in a " -"truly baffling show of force, projects a highly concentrated stream of " -"electricity towards any possible threats. The amorphous mass can be shaped " -"and attached at your touch, but the weapon itself is inert without something" -" to control it." -msgstr "" -"活的團塊變成了一種自主武器。它能夠以電的形式來存儲來自太陽光的能量。用奧妙無法理解的方式投射出高度集中的電流以應對任何可能的威脅。無定形的質量可以在你觸摸時成形與附著," -" 但武器本身是惰性的, 無需額外物件來控管它。" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond lance" -msgid_plural "diamond lances" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst; thus a pre-" -"shaped lump of carbon is brought into contact with the matrix, immediately " -"crystallized and launched just as quickly. The launcher requires a " -"specialized chassis in order to be brought to bear on its unfortunate " -"targets." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "diamond nova" -msgid_plural "diamond novae" -msgstr[0] "" - -#: lang/json/gun_from_json.py -msgid "" -"A weapon that is as deadly as it is dazzling. The diamond matrix in this " -"weapon's center acts as a catalyst; rapidly changing carbon-heavy materials " -"into a crystalline substance that is nearly equal to diamond in hardness. " -"The substance rapidly decays when separated from the catalyst, and at sizes " -"as large as the projectile used, also rapidly decays when in contact with " -"other matter. Thus the projectile is held and launched by the use of " -"pressurized air from a vortex stone. Upon striking its target, the " -"projectile undergoes explosive decomposition; shattering into a brilliant " -"burst of diamond fragments." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex accelerator" -msgid_plural "vortex accelerators" -msgstr[0] "" +#: lang/json/gunmod_from_json.py +msgid "pipe combination gun shotgun" +msgid_plural "pipe combination gun shotguns" +msgstr[0] "鋼管拼裝霰彈槍" -#: lang/json/gun_from_json.py +#: lang/json/gunmod_from_json.py msgid "" -"This weapon uses powerful bursts of air to launch sharp fragments at its " -"target at high speed. You'll need some form of platform to mount it on." -msgstr "" - -#: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py -msgid "vortex cannon" -msgid_plural "vortex cannons" -msgstr[0] "渦石砲" +"The integrated underbarrel shotgun of a pipe combination gun which holds two" +" shots. It's irremovable." +msgstr "整合在鋼管拼裝槍槍管下的霰彈槍, 能容納兩發霰彈。它並不可移除。" -#: lang/json/gun_from_json.py -msgid "" -"Essentially a large pneumatic gun made to hurl sharpened metal rails. " -"Instead of a mechanical system, you've managed to harness the vortex to " -"power this gun. While powerful for its size, you'll need some form of " -"platform to mount it on." -msgstr "" +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "槍管附掛" #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -105395,10 +102355,6 @@ msgid "" "any sort of firearm, greatly expanding its lethality." msgstr "這把手工打造的小型火焰噴射器能夠掛載於幾乎所有槍械上, 大大增加殺傷力。" -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "槍管附掛" - #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" @@ -105730,6 +102686,21 @@ msgid "" "slightly." msgstr "" +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar15_retool_300blk" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "ar_pistol" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "oa93" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -106396,15 +103367,21 @@ msgid "" msgstr "整合在拼裝槍槍管下的霰彈槍, 能容納兩發霰彈。它並不可移除。" #: lang/json/gunmod_from_json.py -msgid "pipe combination gun shotgun" -msgid_plural "pipe combination gun shotguns" -msgstr[0] "鋼管拼裝霰彈槍" +msgid "factory handguard" +msgid_plural "factory handguards" +msgstr[0] "" #: lang/json/gunmod_from_json.py msgid "" -"The integrated underbarrel shotgun of a pipe combination gun which holds two" -" shots. It's irremovable." -msgstr "整合在鋼管拼裝槍槍管下的霰彈槍, 能容納兩發霰彈。它並不可移除。" +"A removable molded grip that comes standard on guns without rails. It's not" +" as efficient as a proper forward grip or bipod at controlling recoil, but " +"it's better than nothing." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgctxt "gun_type_type" +msgid "fs2000" +msgstr "" #: lang/json/gunmod_from_json.py msgid "forward grip" @@ -106795,70 +103772,6 @@ msgid "" "powerful, but good enough for tight hallways." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "5.45 caliber conversion kit" -msgid_plural "5.45 caliber conversion kits" -msgstr[0] "5.45 口徑改裝套件" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " -"results in slight reductions to recoil." -msgstr "此套件可以將 6.54 口徑的步槍改為 5.45 口徑, 將輕微減少後座力。" - -#: lang/json/gunmod_from_json.py -msgid "6.54 caliber conversion kit" -msgid_plural "6.54 caliber conversion kits" -msgstr[0] "6.54 口徑改裝套件" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " -"results in increased recoil." -msgstr "此套件可以將 5.45 口徑的步槍改為 6.54 口徑, 將導致後座力的增加。" - -#: lang/json/gunmod_from_json.py -msgid "7.62 caliber conversion kit" -msgid_plural "7.62 caliber conversion kits" -msgstr[0] "7.62 口徑改裝套件" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " -"results in increased recoil." -msgstr "此套件可以將 6.54 口徑的步槍改為 7.62 口徑, 將導致後座力的增加。" - -#: lang/json/gunmod_from_json.py -msgid "Flaregun conversion kit" -msgid_plural "Flaregun conversion kits" -msgstr[0] "信號槍改裝套件" - -#: lang/json/gunmod_from_json.py -msgid "" -"Replacing several key parts flaregun to convert it to a .40 firearm. The " -"conversion results in reduced accuracy and increased recoil." -msgstr "把信號槍改成 .40 口徑的槍枝, 這些修改將會降低武器的準確度以及增加後座力。" - -#: lang/json/gunmod_from_json.py -msgid "" -"This genuine Herostratus flamethrower is ideal for light brush clearing and " -"self-defense." -msgstr "" - -#: lang/json/gunmod_from_json.py -msgid "E.M.A.S." -msgid_plural "E.M.A.S.s" -msgstr[0] "電磁加速系統" - -#: lang/json/gunmod_from_json.py -msgid "" -"ElectroMagnetic Acceleration System is an array of electromagnets attached " -"to the front of the barrel, accelerating any projectile fired to even higher" -" velocities, increasing damage, recoil and reducing accuracy. It does " -"however drain UPS charges when firing and due to extensive modifications the" -" gun can no longer operate without a UPS." -msgstr "" - #: lang/json/gunmod_from_json.py msgid "underbarrel launcher" msgid_plural "underbarrel launchers" @@ -106949,27 +103862,12 @@ msgid "" msgstr "" #: lang/json/gunmod_from_json.py -msgid "makeshift pistol bayonet" -msgid_plural "makeshift pistol bayonets" -msgstr[0] "粗製手槍刺刀" - -#: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a bayonet meant for a pistol that consists of a mere " -"spike with some string. It still makes a decent melee weapon in a pinch " -"when attached to a pistol." -msgstr "" - -#: lang/json/gunmod_from_json.py -msgid "makeshift sword bayonet" -msgid_plural "makeshift sword bayonets" -msgstr[0] "粗製劍刺刀" +msgid "test suppressor" +msgid_plural "test suppressors" +msgstr[0] "" #: lang/json/gunmod_from_json.py -msgid "" -"A makeshift version of a sword bayonet that consists of a salvaged blade " -"with some string. It still makes a good melee weapon providing reach " -"attacks when attached to long arm or crossbow." +msgid "Gun suppressor mod for testing." msgstr "" #: lang/json/harvest_from_json.py @@ -107012,18 +103910,15 @@ msgid "" "they are something else." msgstr "" -#: lang/json/harvest_from_json.py -msgid "You butcher the fallen zombie and hack off its head" -msgstr "你屠殺了堕落殭屍並砍下他的頭" - #: lang/json/help_from_json.py msgid ": Introduction" msgstr ": 介紹" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " -"have survived the original onslaught, but the future looks pretty grim." +"Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-" +"apocalyptic world. You have survived the original onslaught, but the future" +" looks pretty grim." msgstr "" #: lang/json/help_from_json.py @@ -107036,11 +103931,12 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " -"than exploring an underground dungeon, with a limited area on each level, " -"you are exploring a truly infinite world, stretching in all four cardinal " -"directions. In this survival roguelike, you will have to find food; you " -"also need to keep yourself hydrated and sleep periodically. It's based on " +"Though one can think Cataclysm: Dark Days Ahead is a roguelike, it vastly " +"differs from the traditional roguelikes in several ways. Rather than " +"exploring an underground dungeon, with a limited area on each level, you are" +" exploring a truly infinite world, stretching in all four cardinal " +"directions. In this survival game, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically. It's based on the " "principle of realism, so expect all hardships you'd expect in life in a " "survival situation, and at least a dozen more from the eldritch and sci-fi " "nature of the Cataclysm itself." @@ -107048,12 +103944,11 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"While Cataclysm has more tasks to keep track of than many other roguelikes, " -"the near-future setting of the game makes some tasks easier. Firearms, " -"medications, and a wide variety of tools are all available to help you " -"survive." +"While Cataclysm: Dark Days Ahead has more tasks to keep track of than many " +"other games, the modern setting of the game makes some tasks easier. " +"Firearms, medications, and a wide variety of tools are all available to help" +" you survive." msgstr "" -"大災變相對於其他 roguelike 遊戲有著更多的挑戰, 近未來的設定也讓一些工作變得簡單。槍械、藥物、以及種類廣泛的工具都能夠為你的生存提供幫助。" #: lang/json/help_from_json.py msgid ": Movement" @@ -108624,10 +105519,6 @@ msgstr "在物品上寫字" msgid "Cauterize a wound" msgstr "燒灼傷口" -#: lang/json/item_action_from_json.py -msgid "Create a zombie slave" -msgstr "製作屍奴" - #: lang/json/item_action_from_json.py msgid "Start countdown" msgstr "開始倒數" @@ -108952,10 +105843,6 @@ msgstr "檢查天氣資訊" msgid "Reload" msgstr "重新裝填" -#: lang/json/item_action_from_json.py -msgid "Store/unload ammo" -msgstr "裝上/清空 子彈" - #: lang/json/item_action_from_json.py msgid "Make some noise" msgstr "弄點聲音" @@ -110053,6 +106940,18 @@ msgstr "切換彈藥" msgid "Switch Firing Mode" msgstr "切換射擊模式" +#: lang/json/keybinding_from_json.py +msgid "Toggle turret lines" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Toggle Snap to Target" +msgstr "切換自動瞄準目標" + +#: lang/json/keybinding_from_json.py +msgid "Toggle moving view / cursor" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Select" msgstr "選擇" @@ -110085,10 +106984,6 @@ msgstr "顯示詳細描述" msgid "Travel to destination" msgstr "前往目的地" -#: lang/json/keybinding_from_json.py -msgid "Toggle Snap to Target" -msgstr "切換自動瞄準目標" - #: lang/json/keybinding_from_json.py msgid "Center On Character" msgstr "角色置中" @@ -110305,6 +107200,10 @@ msgstr "向下移一大步" msgid "Toggle category selection mode" msgstr "切換分類選擇模式" +#: lang/json/keybinding_from_json.py +msgid "Toggle inventory view to show item categories" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Set item filter" msgstr "篩選" @@ -110530,7 +107429,6 @@ msgid "Disassemble items" msgstr "拆解物品" #: lang/json/keybinding_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Sleep" msgstr "睡覺" @@ -110754,7 +107652,7 @@ msgstr "顏色管理器" msgid "Active World Mods" msgstr "啟用中的模組" -#: lang/json/keybinding_from_json.py src/handle_action.cpp +#: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" msgstr "循環切換移動模式(跑步/步行/蹲伏)" @@ -111048,6 +107946,30 @@ msgstr "" msgid "Describe terrain" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Switch lists" +msgstr "" + +#: lang/json/keybinding_from_json.py src/action.cpp +msgid "Back" +msgstr "返回" + +#: lang/json/keybinding_from_json.py +msgid "More" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Examine item" +msgstr "" + +#: lang/json/keybinding_from_json.py +msgid "Cancel trading" +msgstr "" + +#: lang/json/keybinding_from_json.py src/player_display.cpp +msgid "Change profession name" +msgstr "" + #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" msgstr "控制多個電子設備" @@ -111200,7 +108122,7 @@ msgstr "設定槍塔瞄準模式" msgid "Nothing" msgstr "沒事" -#. ~ Description for Nothing +#. ~ Description for {'str': 'Nothing'} #: lang/json/map_extra_from_json.py msgid "Nothing of interest is here." msgstr "這裡沒什麼特別的東西。" @@ -111209,7 +108131,7 @@ msgstr "這裡沒什麼特別的東西。" msgid "Crater" msgstr "彈坑" -#. ~ Description for Crater +#. ~ Description for {'str': 'Crater'} #: lang/json/map_extra_from_json.py msgid "There is a crater here." msgstr "這裡有個彈坑。" @@ -111218,7 +108140,7 @@ msgstr "這裡有個彈坑。" msgid "College Kids" msgstr "大學生" -#. ~ Description for College Kids +#. ~ Description for {'str': 'College Kids'} #: lang/json/map_extra_from_json.py msgid "Several corpses of college kids are here." msgstr "這裡有數具大學生的屍體" @@ -111227,7 +108149,7 @@ msgstr "這裡有數具大學生的屍體" msgid "Drug Deal" msgstr "毒品交易" -#. ~ Description for Drug Deal +#. ~ Description for {'str': 'Drug Deal'} #: lang/json/map_extra_from_json.py msgid "Several corpses of drug dealers are here." msgstr "這裡有數具毒品交易者的屍體。" @@ -111236,7 +108158,7 @@ msgstr "這裡有數具毒品交易者的屍體。" msgid "Roadworks" msgstr "道路施工" -#. ~ Description for Roadworks +#. ~ Description for {'str': 'Roadworks'} #: lang/json/map_extra_from_json.py msgid "Roadworks are here." msgstr "這裡正在進行道路工程。" @@ -111245,7 +108167,7 @@ msgstr "這裡正在進行道路工程。" msgid "Road Mayhem" msgstr "" -#. ~ Description for Road Mayhem +#. ~ Description for {'str': 'Road Mayhem'} #: lang/json/map_extra_from_json.py msgid "Road mayhem is here." msgstr "" @@ -111254,7 +108176,7 @@ msgstr "" msgid "Roadblock (Military)" msgstr "路障(軍隊)" -#. ~ Description for Roadblock (Military) +#. ~ Description for {'str': 'Roadblock (Military)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by military." msgstr "這條路被軍方封鎖。" @@ -111263,7 +108185,7 @@ msgstr "這條路被軍方封鎖。" msgid "Roadblock (Bandits)" msgstr "路障(強盜)" -#. ~ Description for Roadblock (Bandits) +#. ~ Description for {'str': 'Roadblock (Bandits)'} #: lang/json/map_extra_from_json.py msgid "This road is blocked by bandits." msgstr "這條路被強盜封鎖。" @@ -111272,7 +108194,7 @@ msgstr "這條路被強盜封鎖。" msgid "Minefield" msgstr "地雷區" -#. ~ Description for Minefield +#. ~ Description for {'str': 'Minefield'} #: lang/json/map_extra_from_json.py msgid "Mines are scattered here." msgstr "地雷分布在這區。" @@ -111281,17 +108203,17 @@ msgstr "地雷分布在這區。" msgid "Supply Drop" msgstr "空投物資" -#. ~ Description for Supply Drop +#. ~ Description for {'str': 'Supply Drop'} #: lang/json/map_extra_from_json.py msgid "Several supply crates were dropped here." msgstr "這裡有一些空投下來的物資箱。" -#. ~ Military time, e.g. 2359 -#: lang/json/map_extra_from_json.py src/options.cpp +#: lang/json/map_extra_from_json.py +msgctxt "Map Extra" msgid "Military" msgstr "軍用" -#. ~ Description for Military +#. ~ Description for {'str': 'Military', 'ctxt': 'Map Extra'} #: lang/json/map_extra_from_json.py msgid "Several corpses of soldiers are here." msgstr "這裡有數具軍人的屍體" @@ -111300,7 +108222,7 @@ msgstr "這裡有數具軍人的屍體" msgid "Helicopter Crash" msgstr "直升機墜毀" -#. ~ Description for Helicopter Crash +#. ~ Description for {'str': 'Helicopter Crash'} #: lang/json/map_extra_from_json.py msgid "Helicopter crashed here." msgstr "直升機墜毀在這裡。" @@ -111309,7 +108231,7 @@ msgstr "直升機墜毀在這裡。" msgid "Scientists" msgstr "科學家" -#. ~ Description for Scientists +#. ~ Description for {'str': 'Scientists'} #: lang/json/map_extra_from_json.py msgid "Several corpses of scientists are here." msgstr "這裡有數具科學家的屍體" @@ -111318,7 +108240,7 @@ msgstr "這裡有數具科學家的屍體" msgid "Portal" msgstr "傳送門" -#. ~ Description for Portal +#. ~ Description for {'str': 'Portal'} #: lang/json/map_extra_from_json.py msgid "Portal is here." msgstr "這裡有座傳送門。" @@ -111327,7 +108249,7 @@ msgstr "這裡有座傳送門。" msgid "Portal In" msgstr "傳送門之中" -#. ~ Description for Portal In +#. ~ Description for {'str': 'Portal In'} #: lang/json/map_extra_from_json.py msgid "Another portal is here." msgstr "另一座傳送門在此。" @@ -111336,7 +108258,7 @@ msgstr "另一座傳送門在此。" msgid "Spider Nest" msgstr "蜘蛛窩" -#. ~ Description for Spider Nest +#. ~ Description for {'str': 'Spider Nest'} #: lang/json/map_extra_from_json.py msgid "Spider nest is here." msgstr "蜘蛛窩在此。" @@ -111345,22 +108267,21 @@ msgstr "蜘蛛窩在此。" msgid "Wasp Nest" msgstr "黃蜂窩" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "Wasp nest is here." msgstr "馬蜂窩在此。" #: lang/json/map_extra_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp msgid "Spiders" msgstr "蜘蛛" -#. ~ Description for Spiders +#. ~ Description for {'str': 'Spiders'} #: lang/json/map_extra_from_json.py msgid "This area is covered with webs. Probably spiders are nearby" msgstr "這區域滿布蜘蛛網。也許有蜘蛛在附近。" -#. ~ Description for Shia LaBeouf +#. ~ Description for {'str': 'Shia LaBeouf'} #: lang/json/map_extra_from_json.py msgid "Cannibal is nearby." msgstr "附近有食人族。" @@ -111369,7 +108290,7 @@ msgstr "附近有食人族。" msgid "Jabberwock" msgstr "變種人魔獸" -#. ~ Description for Jabberwock +#. ~ Description for {'str': 'Jabberwock'} #: lang/json/map_extra_from_json.py msgid "Jabberwock is nearby." msgstr "變種人魔獸在這附近。" @@ -111378,7 +108299,7 @@ msgstr "變種人魔獸在這附近。" msgid "Grove" msgstr "小樹林" -#. ~ Description for Grove +#. ~ Description for {'str': 'Grove'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of trees." msgstr "這個區域生長著單一種類的樹木。" @@ -111387,7 +108308,7 @@ msgstr "這個區域生長著單一種類的樹木。" msgid "Shrubberry" msgstr "漿果叢" -#. ~ Description for Shrubberry +#. ~ Description for {'str': 'Shrubberry'} #: lang/json/map_extra_from_json.py msgid "This area is covered with a single type of shrubs." msgstr "這個區域生長著單一種類的漿果灌木。" @@ -111396,7 +108317,7 @@ msgstr "這個區域生長著單一種類的漿果灌木。" msgid "Clearcut" msgstr "皆伐" -#. ~ Description for Clearcut +#. ~ Description for {'str': 'Clearcut'} #: lang/json/map_extra_from_json.py msgid "Most trees in this area were uniformly cut down." msgstr "這個區域的大多數樹木都被一致地砍伐光了。" @@ -111405,7 +108326,7 @@ msgstr "這個區域的大多數樹木都被一致地砍伐光了。" msgid "Pond" msgstr "池塘" -#. ~ Description for Pond +#. ~ Description for {'str': 'Pond'} #: lang/json/map_extra_from_json.py msgid "Small pond is here." msgstr "這裡有座小池塘。" @@ -111414,7 +108335,7 @@ msgstr "這裡有座小池塘。" msgid "Stand of trees" msgstr "" -#. ~ Description for Stand of trees +#. ~ Description for {'str': 'Stand of trees'} #: lang/json/map_extra_from_json.py msgid "A copse of trees." msgstr "" @@ -111423,7 +108344,7 @@ msgstr "" msgid "Tall grass" msgstr "" -#. ~ Description for Tall grass +#. ~ Description for {'str': 'Tall grass'} #: lang/json/map_extra_from_json.py msgid "A meadow of tall grass." msgstr "" @@ -111432,7 +108353,7 @@ msgstr "" msgid "Derelict shed" msgstr "" -#. ~ Description for Derelict shed +#. ~ Description for {'str': 'Derelict shed'} #: lang/json/map_extra_from_json.py msgid "A collapsed shed." msgstr "" @@ -111441,7 +108362,7 @@ msgstr "" msgid "Clay Deposit" msgstr "黏土礦床" -#. ~ Description for Clay Deposit +#. ~ Description for {'str': 'Clay Deposit'} #: lang/json/map_extra_from_json.py msgid "Small clay deposit is here." msgstr "這裡有座小型黏土礦床。" @@ -111450,8 +108371,8 @@ msgstr "這裡有座小型黏土礦床。" msgid "Dead Vegetation" msgstr "死植披" -#. ~ Description for Dead Vegetation -#. ~ Description for Dead Vegetation (Point) +#. ~ Description for {'str': 'Dead Vegetation'} +#. ~ Description for {'str': 'Dead Vegetation (Point)'} #: lang/json/map_extra_from_json.py msgid "Dead vegetation is here." msgstr "此處為死亡的植披。" @@ -111464,8 +108385,8 @@ msgstr "死植披(單點)" msgid "Burned Ground" msgstr "焚毀地面" -#. ~ Description for Burned Ground -#. ~ Description for Burned Ground (Point) +#. ~ Description for {'str': 'Burned Ground'} +#. ~ Description for {'str': 'Burned Ground (Point)'} #: lang/json/map_extra_from_json.py msgid "Burned ground is here." msgstr "地面已被焚燒殆盡。" @@ -111478,7 +108399,7 @@ msgstr "焚毀地面(單點)" msgid "Marloss Pilgrimage" msgstr "" -#. ~ Description for Marloss Pilgrimage +#. ~ Description for {'str': 'Marloss Pilgrimage'} #: lang/json/map_extra_from_json.py msgid "Marloss Pilgrimage is here." msgstr "" @@ -111487,7 +108408,7 @@ msgstr "" msgid "Casings" msgstr "彈殼" -#. ~ Description for Casings +#. ~ Description for {'str': 'Casings'} #: lang/json/map_extra_from_json.py msgid "Several spent casings are here." msgstr "這裡有數個用過的彈殼。" @@ -111496,7 +108417,7 @@ msgstr "這裡有數個用過的彈殼。" msgid "Looters" msgstr "" -#. ~ Description for Looters +#. ~ Description for {'str': 'Looters'} #: lang/json/map_extra_from_json.py msgid "Some looters gathering everything not nailed down." msgstr "" @@ -111505,12 +108426,12 @@ msgstr "" msgid "Corpses" msgstr "" -#. ~ Description for Corpses +#. ~ Description for {'str': 'Corpses'} #: lang/json/map_extra_from_json.py msgid "Some unfortunates from the billions lost in the Cataclysm." msgstr "" -#. ~ Description for Wasp Nest +#. ~ Description for {'str': 'Wasp Nest'} #: lang/json/map_extra_from_json.py msgid "A wasp nest." msgstr "" @@ -111519,7 +108440,7 @@ msgstr "" msgid "Dermatik Nest" msgstr "" -#. ~ Description for Dermatik Nest +#. ~ Description for {'str': 'Dermatik Nest'} #: lang/json/map_extra_from_json.py msgid "A dermatik nest." msgstr "" @@ -111528,7 +108449,7 @@ msgstr "" msgid "Prison Bus" msgstr "" -#. ~ Description for Prison Bus +#. ~ Description for {'str': 'Prison Bus'} #: lang/json/map_extra_from_json.py msgid "A prison bus." msgstr "" @@ -111537,7 +108458,7 @@ msgstr "" msgid "Mass Grave" msgstr "" -#. ~ Description for Mass Grave +#. ~ Description for {'str': 'Mass Grave'} #: lang/json/map_extra_from_json.py msgid "A mass grave." msgstr "" @@ -111546,11 +108467,20 @@ msgstr "" msgid "Grave" msgstr "" -#. ~ Description for Grave +#. ~ Description for {'str': 'Grave'} #: lang/json/map_extra_from_json.py msgid "A grave." msgstr "" +#: lang/json/map_extra_from_json.py +msgid "Zombie Trap" +msgstr "" + +#. ~ Description for {'str': 'Zombie Trap'} +#: lang/json/map_extra_from_json.py +msgid "Zombie trap." +msgstr "" + #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" @@ -111567,8 +108497,7 @@ msgid "High Security Consolidated Computerized Bank of the Treasury" msgstr "財政部高安全性整合電腦化銀行" #. ~ Computer access denied warning -#: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py src/mapgen.cpp -#: src/mapgen.cpp +#: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "" "ERROR! Access denied! Unauthorized access will be met with lethal force!" msgstr "錯誤!存取遭拒!未經授權的存取將迎來致命的武力!" @@ -112856,16 +109785,6 @@ msgid "" "years.'" msgstr "" -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Hydroponics Entrance" -msgstr "水耕栽培室入口" - -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Missile Control" -msgstr "導彈控制" - #: lang/json/martial_art_from_json.py msgid "No style" msgstr "沒有招式" @@ -113057,6 +109976,19 @@ msgstr "" msgid "%s gets ready to brawl." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Enhanced Blocking" +msgstr "" + +#. ~ Description of buff 'Enhanced Blocking' for martial art '{'str': +#. 'Brawling'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Combat experience has led to you being able to block multiple attacks at a time.\n" +"\n" +"+1 Block attempts." +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Capoeira" msgstr "巴西戰舞" @@ -114608,47 +111540,81 @@ msgid "Sojutsu" msgstr "日本槍術" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Blade-work" +msgid "CRIT Blade-work" msgstr "" -#. ~ Description for martial art 'C.R.I.T Blade-work' +#. ~ Description for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"An offensive style that is centered around rapid slashes and prodding. Each" -" attack landed increases combat ability" +"An offensive style centered around rapid slashes and prodding. Each attack " +"landed increases combat ability but leaves you increasingly vunerable" msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Initiate blade-work." +msgid "You prepare to whittle down your enemies." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T Blade-work' +#. ~ initiate message for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py #, python-format msgid "%s initiates blade-work." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Intensity" +msgid "Unwavering Edge" msgstr "" -#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Unwavering Edge' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py -msgid "Additional DMG, and Arpen per stack. Max of 5 stacks" +msgid "" +"Gain minor Accuracy, Cutting and Stabbing Arpen per stack. Greatly reduces " +"dodge skill. 2 stacks max" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Calculation" +msgid "Ruthlessness" msgstr "" -#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade- -#. work' +#. ~ Description of buff 'Ruthlessness' for martial art 'CRIT Blade-work' #: lang/json/martial_art_from_json.py msgid "" -"Increased accuracy along with minor cut and stab damage with piercing " -"capability." +"Additional Stabbing and Cutting damage per stack. Reduces dodge attempts. 4" +" stacks max." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Rending Strikes" +msgstr "" + +#. ~ Description of buff 'Rending Strikes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Additional Armor penetration per stack. Further reduces dodge attempts. 3 " +"stacks max." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Calculating Eyes" +msgstr "" + +#. ~ Description of buff 'Calculating Eyes' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"You have been taught how to properly utilize small to medium-sized sharp " +"weaponry. Gain great Cutting and Stabbing Armor Penetration on top of minor " +"Accuracy" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Honed Movements" +msgstr "" + +#. ~ Description of buff 'Honed Movements' for martial art 'CRIT Blade-work' +#: lang/json/martial_art_from_json.py +msgid "" +"Your skill and handling with sharp weaponry has improved. Gain extra Cutting" +" and Stabbing damage." msgstr "" #: lang/json/martial_art_from_json.py @@ -114675,65 +111641,267 @@ msgid "%s draws a line in the sand." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Buildup" +msgid "Bulwark" msgstr "" -#. ~ Description of buff 'C.R.I.T Buildup' for martial art 'C.R.I.T -#. Enforcement' +#. ~ Description of buff 'Bulwark' for martial art 'C.R.I.T Enforcement' #: lang/json/martial_art_from_json.py -msgid "+0.05 armor and other small bonuses per stack. Max of 10 stacks" +msgid "+0.5 armor and other small bonuses per stack. Max of 2 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Guard" +msgid "Unyielding Front" msgstr "" -#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement' +#. ~ Description of buff 'Unyielding Front' for martial art 'C.R.I.T +#. Enforcement' #: lang/json/martial_art_from_json.py -msgid "+1 armor. STR provides accuracy and minor bash arpen." +msgid "" +"Stand strong in the face of adversity. +1 armor. STR provides accuracy and " +"minor bash arpen." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T CQB" +msgid "CRIT CQB" msgstr "" -#. ~ Description for martial art 'C.R.I.T CQB' +#. ~ Description for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "A style centered around rapid strikes and piercing jabs. Each attack landed" -" adds a plethora of combat bonuses. 25 percent bash damage." +" adds a plethora of combat bonuses." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py -msgid "Initiate CQB." +msgid "You shift your weight for the oncoming fight." msgstr "" -#. ~ initiate message for martial art 'C.R.I.T CQB' +#. ~ initiate message for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py #, python-format -msgid "%s initiates CQB." +msgid "%s prepares for hand-to-hand battle." msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Tenacity" +msgid "Fluid Tenacity" msgstr "" -#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Fluid Tenacity' for martial art 'CRIT CQB' #: lang/json/martial_art_from_json.py msgid "" "+Atk Speed and other small bonuses based on DEX per stack. Max of 5 stacks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "C.R.I.T Initiative" +msgid "Tactful Initiative" +msgstr "" + +#. ~ Description of buff 'Tactful Initiative' for martial art 'CRIT CQB' +#: lang/json/martial_art_from_json.py +msgid "" +"You have gained an advantage by always remaing mindful of common weaknesses." +" DEX provides dodge ability, accuracy and armor penetration." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Desert Wind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Desert Wind maneuvers focus on quick movement and swirling, flaming strikes." +" The complex spinning and slashing of the curved blade incorporated into " +"many Desert Wind maneuvers are in fact carefully honed gestures that evoke " +"the power of fire, if performed correctly and with the proper focus." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You feel a wave of heat wash over you as you assume a running combat stance." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Desert Wind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s assumes into a running combat stance." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Wind Stride" msgstr "" -#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB' +#. ~ Description of buff 'Wind Stride' for martial art '{'str': 'Desert +#. Wind'}' #: lang/json/martial_art_from_json.py msgid "" -"DEX provides dodge ability, accuracy and minor cut / stab damage with slight" -" piercing capability. 50 Percent Bash Damage." +"A warm breeze swirls about you as you move speedily away.\n" +"\n" +"+1.0 Dodging skill.\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Zephyr Dance" +msgstr "" + +#. ~ Description of buff 'Zephyr Dance' for martial art '{'str': 'Desert +#. Wind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You spin gracefully away from attacks, whirling like the dersert zephyr racing across the sands.\n" +"\n" +"+1.0 Dodging skill, +1 Dodge attempt\n" +"Lasts 1 turn." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Diamond Mind" +msgstr "" + +#. ~ Description for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"True quickness lies in the mind, not the body. A student of the Diamond " +"Mind discipline seeks to hone his perceptions and discipline his thoughts so" +" that he can act in slivers of time so narrow that others cannot even " +"perceive them. A corollary of this speed of thought and action is the " +"concept of the mind as the battleground. An enemy defeated in his mind must" +" inevitably." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "You concentrate and become very still for a moment." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s becomes very still for a moment." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Stance of Alacrity" +msgstr "" + +#. ~ Description of buff 'Stance of Alacrity' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"You move slightly faster than normal due to a combination of confidence, raining, and clarity of mind. This slight edge adds up with each action.\n" +"\n" +"-10% move cost" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Pearl of Black Doubt" +msgstr "" + +#. ~ Description of buff 'Pearl of Black Doubt' for martial art '{'str': +#. 'Diamond Mind'}' +#: lang/json/martial_art_from_json.py +msgid "" +"With every miss, your opponents become more uncertain, their doubt growing like an irritating pearl in the mouth of a helpless oyster.\n" +"\n" +"+1 Dodge attempt\n" +"Lasts 1 turn. Stacks 2 times" +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Hylian Swordsmanship" +msgstr "" + +#. ~ Description for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"This rare form of combat has been practiced by many legendary heroes " +"throughout the ages. Hylian Swordsmanship favors mobility for offense and " +"defense by using spins, jumps, and flips to confuse enemies and strike from " +"unexpected angles." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "You begin to step lightly from side to side." +msgstr "" + +#. ~ initiate message for martial art '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, python-format +msgid "%s begins to step lightly from side to side." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Combat Acrobat' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"Always stay light on your feet. It is better to evade than be hit.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Intermediate Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Intermediate Combat Acrobat' for martial art +#. '{'str': 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"After a great deal of practice, you have become even more nimble in a battle.\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Master Combat Acrobat" +msgstr "" + +#. ~ Description of buff 'Master Combat Acrobat' for martial art '{'str': +#. 'Hylian Swordsmanship'}' +#: lang/json/martial_art_from_json.py +msgid "" +"You have seen so much combat that your dodging skills have become top notch!\n" +"\n" +"+1.0 Dodging skill." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Dash Attack" +msgstr "" + +#. ~ Description of buff 'Dash Attack' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"Taking advantage of momentum, you rush towards foes to deliver a powerful strike.\n" +"\n" +"+10% damage.\n" +"Lasts 1 turn. Stacks 3 times." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Flurry Rush" +msgstr "" + +#. ~ Description of buff 'Flurry Rush' for martial art '{'str': 'Hylian +#. Swordsmanship'}' +#: lang/json/martial_art_from_json.py +#, no-python-format +msgid "" +"When you perfectly dodge an attack, you can attack rapidly for a short time.\n" +"\n" +"-25% move cost.\n" +"Lasts 1 turn." msgstr "" #: lang/json/martial_art_from_json.py @@ -114811,7 +111979,8 @@ msgstr "徹底損毀的" msgid "Resin" msgstr "樹脂" -#: lang/json/material_from_json.py src/veh_interact.cpp +#: lang/json/material_from_json.py lang/json/material_from_json.py +#: src/veh_interact.cpp msgid "dented" msgstr "凹陷的" @@ -115032,7 +112201,7 @@ msgid "Junk Food" msgstr "垃圾食物" #: lang/json/material_from_json.py -msgid "Foodplace'delicious foodstuff" +msgid "Foodplace's delicious foodstuff" msgstr "" #: lang/json/material_from_json.py @@ -115040,12 +112209,12 @@ msgid "Kevlar" msgstr "凱夫勒" #: lang/json/material_from_json.py -msgid "Rigid Kevlar" -msgstr "剛性凱夫勒" +msgid "Layered Kevlar" +msgstr "" #: lang/json/material_from_json.py -msgid "scarred" -msgstr "傷痕的" +msgid "Rigid Kevlar" +msgstr "剛性凱夫勒" #: lang/json/material_from_json.py msgid "Lead" @@ -115173,7 +112342,7 @@ msgstr "蘑菇" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/gamemode_defense.cpp -#: src/gamemode_defense.cpp src/iuse.cpp +#: src/iuse.cpp msgid "Water" msgstr "水" @@ -115245,6 +112414,10 @@ msgstr "鈦" msgid "Graphene Weave" msgstr "" +#: lang/json/material_from_json.py +msgid "scarred" +msgstr "傷痕的" + #: lang/json/material_from_json.py msgid "Arcane Skin" msgstr "奧術皮膚" @@ -120668,47 +117841,6 @@ msgid "" " and stumbles." msgstr "" -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes you!" -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s flashes at !" -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash you, but fails to." -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to flash , but fails to." -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects you with a syringe!" -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s injects with a syringe!" -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "The %1$s tries to inject you, but fails to penetrate your armor!" -msgstr "" - -#: lang/json/monster_attack_from_json.py -#, no-python-format -msgid "" -"The %1$s tries to inject , but fails to penetrate their armor!" -msgstr "" - #: lang/json/morale_type_from_json.py #, no-python-format msgid "Enjoyed %s" @@ -120811,6 +117943,10 @@ msgstr "反感 %s" msgid "Ate Human Flesh" msgstr "吃了人肉" +#: lang/json/morale_type_from_json.py +msgid "Ate Demihuman Flesh" +msgstr "" + #: lang/json/morale_type_from_json.py msgid "Ate Meat" msgstr "吃了肉" @@ -121008,6 +118144,111 @@ msgstr "失敗" msgid "Debug Morale" msgstr "除厝士氣" +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "walk" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "w" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py src/advanced_inv.cpp src/weather.cpp +msgid "W" +msgstr "W" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start walking." +msgstr "你開始步行。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You nudge your steed into a steady trot." +msgstr "你輕推坐騎讓它穩定地快步走。" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set your mech's leg power to a loping fast walk." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "run" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "r" +msgstr "" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "R" +msgstr "跑" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start running." +msgstr "你開始跑步。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You spur your steed into a gallop." +msgstr "你鞭策你的坐騎開始奔馳。" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You set the power of your mech's leg servos to maximum." +msgstr "" + +#. ~ Failure to switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You're too tired to run." +msgstr "你累到無法繼續跑。" + +#. ~ Failure to switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "Your steed is too tired to go faster." +msgstr "你的坐騎太累了,無法走得更快。" + +#. ~ Failure to switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "Your mech's leg servos are unable to operate faster." +msgstr "" + +#. ~ Move mode name +#: lang/json/move_modes_from_json.py +msgid "crouch" +msgstr "" + +#. ~ Move mode character in move mode menu +#: lang/json/move_modes_from_json.py +msgid "c" +msgstr "杯" + +#. ~ movement-type +#: lang/json/move_modes_from_json.py +msgid "C" +msgstr "C" + +#. ~ Successfully switch to this move mode, no steed +#: lang/json/move_modes_from_json.py +msgid "You start crouching." +msgstr "你開始蹲伏。" + +#. ~ Successfully switch to this move mode, animal steed +#: lang/json/move_modes_from_json.py +msgid "You slow your steed to a walk." +msgstr "你放慢坐騎的速度為步行。" + +#. ~ Successfully switch to this move mode, mech steed +#: lang/json/move_modes_from_json.py +msgid "You reduce the power of your mech's leg servos to minimum." +msgstr "" + #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp msgid "Any" @@ -122556,7 +119797,6 @@ msgid "Good Hearing" msgstr "耳聰" #. ~ Description for {'str': 'Good Hearing'} -#. ~ Description for Good Hearing #: lang/json/mutation_from_json.py msgid "" "Your hearing is better than average, and you can hear distant sounds more " @@ -122601,7 +119841,6 @@ msgid "Indefatigable" msgstr "體力充沛" #. ~ Description for {'str': 'Indefatigable'} -#. ~ Description for Indefatigable #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -122644,7 +119883,6 @@ msgid "Fast Healer" msgstr "快速痊癒" #. ~ Description for {'str': 'Fast Healer'} -#. ~ Description for Fast Healer #: lang/json/mutation_from_json.py msgid "" "You heal faster when sleeping and will even recover a small amount of HP " @@ -122688,7 +119926,6 @@ msgid "Pain Resistant" msgstr "耐痛" #. ~ Description for {'str': 'Pain Resistant'} -#. ~ Description for Pain Resistant #: lang/json/mutation_from_json.py msgid "You have a high tolerance for pain." msgstr "你對於疼痛的忍受程度比一般人高。" @@ -122698,7 +119935,6 @@ msgid "Night Vision" msgstr "夜視" #. ~ Description for {'str': 'Night Vision'} -#. ~ Description for Night Vision #: lang/json/mutation_from_json.py msgid "" "You possess natural night vision, and can see further in the dark than most." @@ -122788,8 +120024,9 @@ msgstr "專業馲獸" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You can manage to find space for anything! You can carry 40% more volume." -msgstr "你能夠更有效率的整理你的背包! 你能夠多騰出 40% 的儲物空間。" +"You pack things very efficiently! You can retrieve things from containers " +"10% faster." +msgstr "" #: lang/json/mutation_from_json.py msgid "Strong Back" @@ -122823,11 +120060,10 @@ msgstr "嚴格的餐桌禮儀" #: lang/json/mutation_from_json.py msgid "" "You've been taught proper table manners from your early childhood on. Now " -"you can't even think about eating without a table. Eating without it " -"frustrates you, but eating like a civilized person gives you a bigger morale" -" bonus." +"you can't even think about eating without a table or not taking your time. " +"Eating without it frustrates you, but eating like a civilized person gives " +"you a bigger morale bonus." msgstr "" -"你從幼年起就接受了嚴格的餐桌禮儀教導,現在你甚至不會去想像不使用餐桌進食。沒使用桌子進食會使你失落,但吃得像個文明人的話會獲得更多士氣加成。" #: lang/json/mutation_from_json.py msgid "Strong Stomach" @@ -122857,7 +120093,6 @@ msgid "Deft" msgstr "靈巧" #. ~ Description for {'str': 'Deft'} -#. ~ Description for Deft #: lang/json/mutation_from_json.py msgid "" "While you're not any better at melee combat, you are better at recovering " @@ -122929,7 +120164,6 @@ msgid "Animal Empathy" msgstr "動物之友" #. ~ Description for {'str': 'Animal Empathy'} -#. ~ Description for Animal Empathy #: lang/json/mutation_from_json.py msgid "" "Peaceful animals will not run away from you, and even aggressive animals are" @@ -122942,7 +120176,6 @@ msgid "Animal Kinship" msgstr "動物親屬" #. ~ Description for {'str': 'Animal Kinship'} -#. ~ Description for Animal Kinship #: lang/json/mutation_from_json.py msgid "" "Something about your presence is calming to animals, and they will treat you" @@ -122955,7 +120188,6 @@ msgid "Terrifying" msgstr "霸氣外露" #. ~ Description for {'str': 'Terrifying'} -#. ~ Description for Terrifying #: lang/json/mutation_from_json.py msgid "" "There's something about you that creatures find frightening, and they are " @@ -123039,7 +120271,6 @@ msgid "Light Step" msgstr "躡手躡腳" #. ~ Description for {'str': 'Light Step'} -#. ~ Description for Light Step #: lang/json/mutation_from_json.py msgid "" "You make less noise while walking. You're also less likely to set off " @@ -123086,7 +120317,6 @@ msgid "Cannibal" msgstr "人魔" #. ~ Description for {'str': 'Cannibal'} -#. ~ Description for Cannibal #: lang/json/mutation_from_json.py msgid "" "For your whole life you've been forbidden from indulging in your peculiar " @@ -123094,6 +120324,17 @@ msgid "" "tell you that you can't eat people." msgstr "末日到來, 你終其一生都被限制的禁忌美味, 終於有機會實現了! 若有人阻止你的話, 就吃了他。" +#: lang/json/mutation_from_json.py +msgid "Strict Humanitarian" +msgstr "" + +#. ~ Description for {'str': 'Strict Humanitarian'} +#: lang/json/mutation_from_json.py +msgid "" +"You'd never eat people, but these things that look vaguely human from " +"elsewhere are definitely not people." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Psychopath" msgstr "瘋子" @@ -123179,7 +120420,6 @@ msgid "Weak Scent" msgstr "無味" #. ~ Description for {'str': 'Weak Scent'} -#. ~ Description for Weak Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is quite weak. Animals that track your scent will do so with " @@ -123370,9 +120610,9 @@ msgstr "雜亂無章" #: lang/json/mutation_from_json.py #, no-python-format msgid "" -"You are terrible at organizing and storing your possessions. You can carry " -"40% less volume." -msgstr "要你把東西整理好就是要你的命。你的儲物空間少了 40% 。" +"You are terrible at organizing and storing your possessions. You retrieve " +"things from containers 10% slower." +msgstr "" #: lang/json/mutation_from_json.py msgid "Illiterate" @@ -123416,7 +120656,6 @@ msgid "Insomniac" msgstr "失眠症" #. ~ Description for {'str': 'Insomniac'} -#. ~ Description for Insomniac #: lang/json/mutation_from_json.py msgid "" "You have a hard time falling asleep, even under the best circumstances!" @@ -123592,7 +120831,6 @@ msgid "Strong Scent" msgstr "狐臭" #. ~ Description for {'str': 'Strong Scent'} -#. ~ Description for Strong Scent #: lang/json/mutation_from_json.py msgid "" "Your scent is particularly strong. It's not offensive to humans, but " @@ -123709,10 +120947,6 @@ msgid "" "with Fast Learner will come out to a slower rate of learning for all skills." msgstr "你只專注在其中一個技能而不理會其他的。你只有最高技能的學習速度是全速, 其餘的都是半速。若與快速學習並用的話會造成全部技能學習速度都降低。" -#: lang/json/mutation_from_json.py -msgid "Pacifist" -msgstr "和平主義者" - #. ~ Description for {'str': 'Pacifist'} #: lang/json/mutation_from_json.py msgid "" @@ -123746,7 +120980,6 @@ msgid "Weak Stomach" msgstr "腸胃差" #. ~ Description for {'str': 'Weak Stomach'} -#. ~ Description for Weak Stomach #: lang/json/mutation_from_json.py msgid "You are more likely to throw up from food poisoning, alcohol, etc." msgstr "你很容易受到食物中毒或酒精的影響造成嘔吐。" @@ -123789,7 +121022,6 @@ msgid "Albino" msgstr "白化症" #. ~ Description for {'str': 'Albino'} -#. ~ Description for Albino #: lang/json/mutation_from_json.py msgid "" "You lack skin pigmentation due to a genetic problem. You sunburn extremely " @@ -123802,7 +121034,6 @@ msgid "Flimsy" msgstr "單薄體質" #. ~ Description for {'str': 'Flimsy'} -#. ~ Description for Flimsy #: lang/json/mutation_from_json.py #, no-python-format msgid "" @@ -123859,7 +121090,6 @@ msgid "High Night Vision" msgstr "強化夜視" #. ~ Description for {'str': 'High Night Vision'} -#. ~ Description for High Night Vision #: lang/json/mutation_from_json.py msgid "" "You can see incredibly well in the dark! Activate to toggle NV-visible " @@ -124025,7 +121255,6 @@ msgid "Regeneration" msgstr "再生" #. ~ Description for {'str': 'Regeneration'} -#. ~ Description for Regeneration #: lang/json/mutation_from_json.py msgid "Your flesh regenerates from wounds incredibly quickly." msgstr "你的血肉能夠以不可思議的速度再生。" @@ -124766,7 +121995,6 @@ msgid "Mammal Pheromones" msgstr "哺乳類費洛蒙" #. ~ Description for {'str': 'Mammal Pheromones'} -#. ~ Description for Mammal Pheromones #: lang/json/mutation_from_json.py msgid "" "Your body produces low-level pheromones which put mammals at ease. They " @@ -124836,7 +122064,6 @@ msgid "Venomous" msgstr "劇毒" #. ~ Description for {'str': 'Venomous'} -#. ~ Description for Venomous #: lang/json/mutation_from_json.py msgid "" "Your body produces a potent venom. Cutting or stabbing attacks from " @@ -126628,7 +123855,6 @@ msgid "Solar Sensitivity" msgstr "陽光過敏" #. ~ Description for {'str': 'Solar Sensitivity'} -#. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " @@ -127443,7 +124669,8 @@ msgstr "蛛形" msgid "Well, maybe you'll just have to make your own world wide web." msgstr "嗯, 也許你只需要製作你自己的網路。" -#: lang/json/mutation_from_json.py lang/json/npc_from_json.py +#: lang/json/mutation_from_json.py lang/json/mutation_from_json.py +#: lang/json/npc_from_json.py msgid "Survivor" msgstr "倖存者" @@ -127677,8 +124904,8 @@ msgstr "" #. ~ Description for Helicopter Pilot #: lang/json/mutation_from_json.py msgid "" -"You are a trained pilot, you wonder if you will ever have the chance to fly " -"again." +"You are a trained helicopter pilot. This makes you one of the few living " +"people who can operate a helicopter after the Cataclysm." msgstr "" #: lang/json/mutation_from_json.py @@ -127772,8 +124999,9 @@ msgstr "滑冰選手" #. ~ Description for {'str': 'Skater'} #: lang/json/mutation_from_json.py msgid "" -"You spent a lot of time actively maneuvering on skates before the Cataclysm," -" and are better at staying on your feet when checked or blocked." +"You are skilled in maneuvering on skates. You suffer less dodging penalties" +" and are less likely to fall down if hit in melee combat while you're " +"wearing rollerskates or rollerblades." msgstr "" #: lang/json/mutation_from_json.py @@ -127998,10 +125226,10 @@ msgid "Mind the bugs, would you kindly?" msgstr "記住這些錯誤,你會大發善心嗎?" #: lang/json/mutation_from_json.py -msgid "Debug Carrying Capacity" -msgstr "除錯攜帶容量" +msgid "Debug Very Strong Back" +msgstr "" -#. ~ Description for {'str': 'Debug Carrying Capacity'} +#. ~ Description for {'str': 'Debug Very Strong Back'} #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." msgstr "讓你的下顎可以攜帶 15 倍於你的重量。" @@ -128121,10 +125349,21 @@ msgid "" " off-limits to you, even if your life depended on it." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Fast Reflexes" +msgstr "" + +#. ~ Description for {'str': 'Fast Reflexes'} +#: lang/json/mutation_from_json.py +msgid "You have fast reflexes, allowing you to dodge attacks more easily." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Survivor Story" msgstr "倖存者故事" +#. ~ Description for {'str': 'Survivor Story'} +#. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} #. ~ Description for {'str': 'Survivor'} #. ~ Description for {'str': 'Survivor Story'} @@ -129125,14 +126364,14 @@ msgid "Your muscles are quite slow to move. You move 25% slower." msgstr "" #: lang/json/mutation_from_json.py -msgid "C.R.I.T Melee Training" -msgstr "C.R.I.T近戰訓練" +msgid "CRIT Melee Training" +msgstr "" -#. ~ Description for C.R.I.T Melee Training +#. ~ Description for CRIT Melee Training #: lang/json/mutation_from_json.py msgid "" -"You have received defensive training. For every hit you land, gain various " -"miniscule combat bonuses that scale off of your stats." +"You have received CQB training. For every hit you land, gain themed combat " +"bonuses." msgstr "" #: lang/json/mutation_from_json.py @@ -129178,18 +126417,6 @@ msgid "" "Emerge from the grave of the old world, and become the night once again." msgstr "" -#. ~ Description for Pretty -#: lang/json/mutation_from_json.py -msgid "" -"You are a sight to behold. NPCs who care about such things will react more " -"kindly to you." -msgstr "你超凡脫俗。 關心此事的NPC會對你更加親切。" - -#. ~ Description for Thin-Skinned -#: lang/json/mutation_from_json.py -msgid "Your skin is fragile. Cutting damage is slightly increased for you." -msgstr "你的皮膚很脆弱。稍微增加受到的砍劈傷害。" - #: lang/json/mutation_from_json.py msgid "Forest Guardian" msgstr "" @@ -129233,6 +126460,40 @@ msgstr "" msgid "%1$s tears into %2$s with their blades" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Spurs" +msgstr "" + +#. ~ Description for Spurs +#: lang/json/mutation_from_json.py +msgid "" +"Spurs of bone have erupted all across your arms. A thick, biological " +"secretion oozes out of them promising extra harm to enemies." +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "You ravage %s with your arms" +msgstr "" + +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "%1$s ravages %2$s with their arm spurs" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Persistent Body" +msgstr "" + +#. ~ Description for Persistent Body +#: lang/json/mutation_from_json.py +#, no-python-format +msgid "" +"As you move, the world seems to breath life and energy into your limbs. You " +"simply rarely tire less readily than others. Your maximum stamina is 50% " +"higher than usual." +msgstr "" + #: lang/json/mutation_from_json.py msgid "RP: Combatant" msgstr "" @@ -129296,6 +126557,40 @@ msgid "" "unarmed combat." msgstr "一個酒鬼的傳統武藝在你身上重現! 當你受到酒精影響時, 你的近戰技巧會大幅提昇, 尤其是徒手戰鬥。" +#: lang/json/mutation_from_json.py +msgid "Hero's Spirit" +msgstr "" + +#. ~ Description for {'str': "Hero's Spirit"} +#: lang/json/mutation_from_json.py +msgid "" +"You have studied the deeds and legends of ancient heroes. From your " +"research, you have learned an ancient form of combat called Hylian " +"Swordsmanship." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Ki Strike" +msgstr "" + +#. ~ Description for {'str': 'Ki Strike'} +#: lang/json/mutation_from_json.py +msgid "" +"Who needs weapons? You deal more melee damage while unarmed. This damage " +"improves as your unarmed skill increases." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Martial Adept" +msgstr "" + +#. ~ Description for {'str': 'Martial Adept'} +#: lang/json/mutation_from_json.py +msgid "" +"You are a martial adept and learned one of the martial disciplines of the " +"Sublime Way." +msgstr "" + #: lang/json/mutation_from_json.py msgid "Magus" msgstr "祆教徒" @@ -129479,6 +126774,38 @@ msgstr "" msgid "Mana Vortex" msgstr "" +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Efficiency" +msgstr "" + +#. ~ Description for {'str': 'Manatouched Mana Efficiency'} +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "你的身體能儲存的法力值比平常人多很多。" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Regeneration" +msgstr "" + +#. ~ Description for Manatouched Mana Regeneration +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "你的法力自然再生率比平常人快很多。" + +#: lang/json/mutation_from_json.py +msgid "Manatouched Mana Sensitivity" +msgstr "" + +#. ~ Description for Manatouched Mana Sensitivity +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "你對體內的法力感應能力比一般人好很多,這讓你能運用更多體內的法力。" + #: lang/json/mutation_from_json.py msgid "Lesser Mana Efficiency" msgstr "次級法力效率" @@ -129501,11 +126828,6 @@ msgstr "你的身體能儲存的法力值比平常人多一些。" msgid "Greater Mana Efficiency" msgstr "高級法力效率" -#. ~ Description for Greater Mana Efficiency -#: lang/json/mutation_from_json.py -msgid "You are able to store a lot more mana in your body than usual." -msgstr "你的身體能儲存的法力值比平常人多很多。" - #: lang/json/mutation_from_json.py msgid "Lesser Mana Inefficiency" msgstr "次級法力低效率" @@ -129555,11 +126877,6 @@ msgstr "你的法力自然再生率比平常人快一些。" msgid "Greater Mana Regeneration" msgstr "高級法力再生率" -#. ~ Description for Greater Mana Regeneration -#: lang/json/mutation_from_json.py -msgid "Your natural mana regeneration is much faster than normal." -msgstr "你的法力自然再生率比平常人快很多。" - #: lang/json/mutation_from_json.py msgid "Poor Mana Regeneration" msgstr "低法力再生率" @@ -129613,13 +126930,6 @@ msgstr "你對體內的法力感應能力比一般人好一些,這讓你能運 msgid "Greater Mana Sensitivity" msgstr "高級法力靈敏度" -#. ~ Description for Greater Mana Sensitivity -#: lang/json/mutation_from_json.py -msgid "" -"You can sense the mana in your body much better than normal, allowing you to" -" tap into more of your reserves." -msgstr "你對體內的法力感應能力比一般人好很多,這讓你能運用更多體內的法力。" - #: lang/json/mutation_from_json.py msgid "Poor Mana Sensitivity" msgstr "低法力靈敏度" @@ -130024,26 +127334,6 @@ msgstr "" msgid "I've been studying the mi-go for years…" msgstr "" -#: lang/json/npc_class_from_json.py -msgid "Hive Ganger" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I've survived all my life with the whole world against me, how is this any " -"different." -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "Corporate Wetworks Operative" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "" -"I made a good living working in the shadows of the old world. I can survive" -" it's twilight." -msgstr "" - #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" msgstr "蜥蜴突變體" @@ -130254,6 +127544,26 @@ msgid "" "and I don't plan to keep being one." msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Hive Ganger" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I've survived all my life with the whole world against me, how is this any " +"different." +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "Corporate Wetworks Operative" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "" +"I made a good living working in the shadows of the old world. I can survive" +" it's twilight." +msgstr "" + #: lang/json/npc_class_from_json.py msgid "Mastodon Uplift" msgstr "" @@ -130990,18 +128300,10 @@ msgstr "汽車角落" msgid "shipwreck" msgstr "沉船" -#: lang/json/overmap_terrain_from_json.py -msgid "razorclaw nest" -msgstr "利爪怪巢穴" - #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" msgstr "無線電塔" -#: lang/json/overmap_terrain_from_json.py -msgid "radio tower roof" -msgstr "廣播電塔屋頂" - #: lang/json/overmap_terrain_from_json.py msgid "looted building" msgstr "被劫掠的建築" @@ -131014,10 +128316,6 @@ msgstr "坡道試驗區" msgid "campsite" msgstr "營地" -#: lang/json/overmap_terrain_from_json.py -msgid "campsites" -msgstr "營地" - #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" msgstr "未完成的小屋" @@ -131230,6 +128528,18 @@ msgstr "一般_垃圾場" msgid "generic_brushland" msgstr "一般_灌木叢" +#: lang/json/overmap_terrain_from_json.py +msgid "rural road" +msgstr "鄉間小路" + +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "泥土路" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural building" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sugar house" msgstr "糖果屋" @@ -131238,18 +128548,10 @@ msgstr "糖果屋" msgid "sugar house roof" msgstr "糖果屋屋頂" -#: lang/json/overmap_terrain_from_json.py -msgid "rural road" -msgstr "鄉間小路" - #: lang/json/overmap_terrain_from_json.py msgid "farm field" msgstr "農田" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house" -msgstr "農舍" - #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" msgstr "農舍屋頂" @@ -131266,6 +128568,10 @@ msgstr "農場穀倉屋頂" msgid "farm" msgstr "農場" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house" +msgstr "農舍" + #: lang/json/overmap_terrain_from_json.py msgid "grape farm" msgstr "葡萄園" @@ -131358,10 +128664,6 @@ msgstr "雞舍" msgid "chicken coop roof" msgstr "雞舍屋頂" -#: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" -msgstr "農舍二樓" - #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" msgstr "小型墓地" @@ -131378,10 +128680,6 @@ msgstr "私釀酒廠屋頂" msgid "tree farm" msgstr "林場" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "泥土路" - #: lang/json/overmap_terrain_from_json.py msgid "silos" msgstr "筒倉" @@ -131402,6 +128700,10 @@ msgstr "農村房子屋頂" msgid "farm road" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "farm house 2nd floor" +msgstr "農舍二樓" + #: lang/json/overmap_terrain_from_json.py msgid "barn roof" msgstr "穀倉屋頂" @@ -131514,6 +128816,10 @@ msgstr "電子商店" msgid "electronics store roof" msgstr "電子商店屋頂" +#: lang/json/overmap_terrain_from_json.py +msgid "electronics store 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "sporting goods store" msgstr "運動用品店" @@ -131546,10 +128852,6 @@ msgstr "槍械商店二樓" msgid "clothing store" msgstr "服飾店" -#: lang/json/overmap_terrain_from_json.py -msgid "clothing store roof" -msgstr "服飾店屋頂" - #: lang/json/overmap_terrain_from_json.py msgid "bookstore" msgstr "書店" @@ -131558,6 +128860,10 @@ msgstr "書店" msgid "bookstore roof" msgstr "書店屋頂" +#: lang/json/overmap_terrain_from_json.py +msgid "diner" +msgstr "飯店" + #: lang/json/overmap_terrain_from_json.py msgid "restaurant" msgstr "餐廳" @@ -131686,10 +128992,6 @@ msgstr "旅館" msgid "hotel entrance" msgstr "旅館入口" -#: lang/json/overmap_terrain_from_json.py -msgid "hotel tower" -msgstr "旅館大樓" - #: lang/json/overmap_terrain_from_json.py msgid "hotel basement" msgstr "旅館地下室" @@ -131714,10 +129016,6 @@ msgstr "家具裝飾大賣場" msgid "garage - gas station" msgstr "車庫 - 加油站" -#: lang/json/overmap_terrain_from_json.py -msgid "garage - gas station roof" -msgstr "汽車修理廠 - 加油站屋頂" - #: lang/json/overmap_terrain_from_json.py msgid "dispensary" msgstr "診療所" @@ -131886,14 +129184,14 @@ msgstr "園藝品店屋頂" msgid "craft shop" msgstr "手工商店" -#: lang/json/overmap_terrain_from_json.py -msgid "craft shop roof" -msgstr "工藝品店屋頂" - #: lang/json/overmap_terrain_from_json.py msgid "craft shop upper roof" msgstr "工藝品店上層屋頂" +#: lang/json/overmap_terrain_from_json.py +msgid "craft shop roof" +msgstr "工藝品店屋頂" + #: lang/json/overmap_terrain_from_json.py msgid "craft shop 2nd floor" msgstr "手工商店 2/F" @@ -132002,18 +129300,30 @@ msgstr "狩獵用品店" msgid "hunting supply store roof" msgstr "狩獵用品店屋頂" +#: lang/json/overmap_terrain_from_json.py +msgid "outdoorsman's store" +msgstr "戶外活動用品店" + #: lang/json/overmap_terrain_from_json.py msgid "urban city block" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "road" -msgstr "道路" +msgid "gaming store" +msgstr "電子遊戲機店" + +#: lang/json/overmap_terrain_from_json.py +msgid "gaming store roof" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "refugee center" msgstr "難民中心" +#: lang/json/overmap_terrain_from_json.py +msgid "road" +msgstr "道路" + #: lang/json/overmap_terrain_from_json.py msgid "camp survey" msgstr "調查營地" @@ -132266,6 +129576,22 @@ msgstr "鋼鐵廠" msgid "steel mill depot" msgstr "鋼鐵廠倉庫" +#: lang/json/overmap_terrain_from_json.py +msgid "light industry" +msgstr "輕工業" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "private airport runway" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "helicopter pad" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "science lab" msgstr "實驗室" @@ -132346,13 +129672,17 @@ msgstr "空地" msgid "mall - entrance" msgstr "購物中心-入口區" +#: lang/json/overmap_terrain_from_json.py +msgid "mall - food court" +msgstr "購物中心-美食區" + #: lang/json/overmap_terrain_from_json.py msgid "mall - food court roof" msgstr "購物中心 - 美食區屋頂" #: lang/json/overmap_terrain_from_json.py -msgid "mall - food court" -msgstr "購物中心-美食區" +msgid "mall - subway station" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mansion" @@ -132463,10 +129793,6 @@ msgstr "警察局" msgid "church" msgstr "教堂" -#: lang/json/overmap_terrain_from_json.py -msgid "sewer" -msgstr "下水道" - #: lang/json/overmap_terrain_from_json.py msgid "sewer?" msgstr "下水道?" @@ -132475,6 +129801,14 @@ msgstr "下水道?" msgid "basement" msgstr "地下室" +#: lang/json/overmap_terrain_from_json.py +msgid "sewer" +msgstr "下水道" + +#: lang/json/overmap_terrain_from_json.py +msgid "Vault - Passage" +msgstr "避難所 - 通道" + #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" msgstr "避難所 - 兵營" @@ -132507,10 +129841,6 @@ msgstr "避難所 - 入口" msgid "Vault - Utilities" msgstr "避難所 - 基礎設施" -#: lang/json/overmap_terrain_from_json.py -msgid "Vault - Passage" -msgstr "避難所 - 通道" - #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" msgstr "避難所 - 通訊設施" @@ -132957,16 +130287,16 @@ msgid "marina parking" msgstr "休閒碼頭停車場" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" -msgstr "複式房子" +msgid "house roof" +msgstr "房屋頂蓋" #: lang/json/overmap_terrain_from_json.py -msgid "apartment tower" -msgstr "公寓" +msgid "dense urban" +msgstr "密集居住區" #: lang/json/overmap_terrain_from_json.py -msgid "homeless camp" -msgstr "街友營地" +msgid "apartment tower" +msgstr "公寓" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" @@ -132976,6 +130306,10 @@ msgstr "旅行拖車園區" msgid "trailer park roof" msgstr "旅行拖車園區屋頂" +#: lang/json/overmap_terrain_from_json.py +msgid "homeless camp" +msgstr "街友營地" + #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" msgstr "閒置的住宅用地" @@ -132984,10 +130318,6 @@ msgstr "閒置的住宅用地" msgid "derelict property" msgstr "廢棄建築" -#: lang/json/overmap_terrain_from_json.py -msgid "dense urban" -msgstr "密集居住區" - #: lang/json/overmap_terrain_from_json.py msgid "river" msgstr "河" @@ -133020,26 +130350,14 @@ msgstr "橋" msgid "roadstop" msgstr "路邊小吃店" -#: lang/json/overmap_terrain_from_json.py -msgid "roadstop roof" -msgstr "路邊小吃店屋頂" - #: lang/json/overmap_terrain_from_json.py msgid "public washroom" msgstr "公廁" -#: lang/json/overmap_terrain_from_json.py -msgid "public washroom roof" -msgstr "公廁屋頂" - #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" msgstr "路邊攤" -#: lang/json/overmap_terrain_from_json.py -msgid "roadside foodcart roof" -msgstr "路邊攤屋頂" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "鐵路" @@ -133216,14 +130534,14 @@ msgstr "開放式下水道" msgid "small dump" msgstr "小型垃圾場" -#: lang/json/overmap_terrain_from_json.py -msgid "lake shore" -msgstr "湖岸" - #: lang/json/overmap_terrain_from_json.py msgid "lake" msgstr "湖" +#: lang/json/overmap_terrain_from_json.py +msgid "lake shore" +msgstr "湖岸" + #: lang/json/overmap_terrain_from_json.py msgid "lake (submerged)" msgstr "" @@ -133273,36 +130591,12 @@ msgid "county mortuary roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "wildlife field office" -msgstr "野生動物飼養基地" - -#: lang/json/overmap_terrain_from_json.py -msgid "diner" -msgstr "飯店" - -#: lang/json/overmap_terrain_from_json.py -msgid "apartment" -msgstr "公寓" - -#: lang/json/overmap_terrain_from_json.py -msgid "dealership" -msgstr "經銷商" - -#: lang/json/overmap_terrain_from_json.py -msgid "outdoorsman's store" -msgstr "戶外活動用品店" - -#: lang/json/overmap_terrain_from_json.py -msgid "gaming store" -msgstr "電子遊戲機店" - -#: lang/json/overmap_terrain_from_json.py -msgid "airport" -msgstr "機場" +msgid "Dinosaur Exhibit" +msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "light industry" -msgstr "輕工業" +msgid "wildlife field office" +msgstr "野生動物飼養基地" #: lang/json/overmap_terrain_from_json.py msgid "reception" @@ -133316,6 +130610,10 @@ msgstr "地堡" msgid "scavenger bunker" msgstr "拾荒者地堡" +#: lang/json/overmap_terrain_from_json.py +msgid "goblin encampment" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "magic shop" msgstr "魔術店" @@ -133329,7 +130627,6 @@ msgid "used bookstore" msgstr "二手書店" #: lang/json/overmap_terrain_from_json.py -#: lang/json/start_location_from_json.py msgid "Swamp" msgstr "沼澤" @@ -133361,10 +130658,6 @@ msgstr "門" msgid "house basement" msgstr "房子的地下室" -#: lang/json/overmap_terrain_from_json.py -msgid "house roof" -msgstr "房屋頂蓋" - #: lang/json/overmap_terrain_from_json.py msgid "attached garage" msgstr "附屬車庫" @@ -133473,10 +130766,6 @@ msgstr "微生物學實驗室" msgid "rocketry lab" msgstr "火箭實驗室" -#: lang/json/overmap_terrain_from_json.py -msgid "robot dispatch center" -msgstr "機器人調度中心" - #: lang/json/overmap_terrain_from_json.py msgid "school" msgstr "學校" @@ -133505,6 +130794,14 @@ msgstr "汽車修理工房" msgid "megastore entrance" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "hotel tower" +msgstr "旅館大樓" + +#: lang/json/overmap_terrain_from_json.py +msgid "razorclaw nest" +msgstr "利爪怪巢穴" + #: lang/json/overmap_terrain_from_json.py msgid "sewage treatment" msgstr "污水處理" @@ -133521,6 +130818,10 @@ msgstr "介面" msgid "electric substation" msgstr "變電所" +#: lang/json/overmap_terrain_from_json.py +msgid "campsites" +msgstr "營地" + #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" msgstr "宗教墓地" @@ -133558,10 +130859,10 @@ msgstr "流浪者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." -msgstr "形勢逼你到處漂泊,沒有房子,沒有家人,沒有朋友。但是你認知中的世界已不復存在,也許長期以來你獨立生存的經驗在這新世界中會極有用處。" +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133572,10 +130873,10 @@ msgstr "流浪者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Circumstances left you wandering, with no home, no family, no friends. But " -"the world you knew is gone, and maybe your experiences relying on yourself " -"to survive could be useful in this new one." -msgstr "形勢逼你到處漂泊,沒有房子,沒有家人,沒有朋友。但是你認知中的世界已不復存在,也許長期以來你獨立生存的經驗在這新世界中會極有用處。" +"Circumstance left you wandering the world, alone. Now there is nothing to " +"go back to, even if you wanted to. Perhaps your experience in fending for " +"yourself will prove useful in this new world." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133586,10 +130887,10 @@ msgstr "生化生存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." -msgstr "你早就知道會有這麼一天。你為自己擴充了一些基本的生化插件, 並且接受了一些額外的生存訓練。而今末日來臨, 正是對你的努力進行驗收。" +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133600,10 +130901,10 @@ msgstr "生化生存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You knew the end was coming. You augmented yourself with some basic bionics" -" and got additional survival training. Now the end has come, and it is time" -" to see if your efforts have paid off." -msgstr "你早就知道會有這麼一天。你為自己擴充了一些基本的生化插件, 並且接受了一些額外的生存訓練。而今末日來臨, 正是對你的努力進行驗收。" +"You knew the end was coming. You augmented yourself with some basic bionic " +"tools and underwent extensive survival training. Now the end has come, and " +"it is time to see if your efforts have paid off." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133614,9 +130915,9 @@ msgstr "倖存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." -msgstr "有些人會說你的存在感很低。但至少你還活著, 這是值得慶幸的事。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133627,9 +130928,9 @@ msgstr "倖存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Some would say that there's nothing particularly notable about you. But " +"Some would say that there's nothing particularly notable about you, but " "you've survived, and that's more than most could say right now." -msgstr "有些人會說妳的存在感很低。但至少妳還活著, 這是值得慶幸的事。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133640,10 +130941,10 @@ msgstr "避難所的生存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." -msgstr "在災變開始之時, 你便躲進了防空避難所之中。冬日到來, 希望你從書上學到的那些技能足夠幫助你生存。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133654,10 +130955,10 @@ msgstr "避難所的生存者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope the rag-tag collection of skills you learned from " -"all those books can help you survive." -msgstr "在災變開始之時, 你便躲進了防空避難所之中。冬日到來, 希望你從書上學到的那些技能足夠幫助你生存。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter. You've " +"spent the past months eating canned food, reading books, and tinkering with " +"stuff in the bunker. Now it is winter - time to face the world above." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133668,10 +130969,10 @@ msgstr "民兵避難所" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." -msgstr "在災變開始之時, 你便躲進了防空避難所之中。冬日到來, 希望你從書上學到的那些技能足夠幫助你生存。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133682,10 +130983,10 @@ msgstr "民兵避難所" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"At the start of the Cataclysm, you hunkered down in a bomb shelter. Now, it" -" is winter, and you hope your guns and the skills you have acquired can help" -" you survive." -msgstr "在災變開始之時, 你便躲進了防空避難所之中。冬日到來, 希望你從書上學到的那些技能足夠幫助你生存。" +"At the start of the Cataclysm, you hunkered down in a bomb shelter with your" +" collection of guns. You've spent the past months eating canned food and " +"practicing your aim. Now it is winter - time to face the world above." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133697,9 +130998,9 @@ msgstr "裁縫師" msgctxt "prof_desc_male" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." -msgstr "裁縫技能也許在末日之時不是什麼有用的技能。大部分的人都覺得一個簡單的裁縫師沒辦法活多久。這正是你的機會來證明他們錯了。" +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133711,9 +131012,9 @@ msgstr "裁縫師" msgctxt "prof_desc_female" msgid "" "Tailoring may not seem like the most useful skill when the world has ended." -" Most people wouldn't expect a simple tailor to live long. This is your " -"opportunity to prove them wrong." -msgstr "裁縫技能也許在末日之時不是什麼有用的技能。大部分的人都覺得一個簡單的裁縫師沒辦法活多久。這正是妳的機會來證明他們錯了。" +" Most people wouldn't expect a simple tailor to live very long. This is " +"your opportunity to prove them wrong." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133725,9 +131026,9 @@ msgstr "大廚" msgctxt "prof_desc_male" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." -msgstr "剁剁! 多年的廚房經驗讓你有著大肚暔, 而你逃出這場大屠殺, 手上還拿著菜刀以及身上穿著有點髒髒的制服。" +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133739,9 +131040,9 @@ msgstr "大廚" msgctxt "prof_desc_female" msgid "" "Bork bork! Years in the kitchen have left you carrying a prodigious bulk, " -"but you managed to escape the carnage with a butchers knife and only a small" -" collection of stains on your uniform." -msgstr "剁剁! 多年的廚房經驗讓你有著大肚暔, 而你逃出這場大屠殺, 手上還拿著菜刀以及身上穿著有點髒髒的制服。" +"but you managed to escape the carnage with your trusty butcher knife and " +"only a small collection of stains on your uniform." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133782,10 +131083,10 @@ msgstr "實驗室技術員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" -msgstr "感謝你花在實驗室的時間, 你對一些基本的科學原理相當熟悉。外面的世界已經一團糟了, 問題是: 你能把你搞砸的世界復原嗎?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133796,10 +131097,10 @@ msgstr "實驗室技術員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Thanks to your time in the lab, you're familiar with the basics of " -"conducting science. Now that the world has ended, only one question " -"remains: Can you undo the very Cataclysm you helped create?" -msgstr "感謝你花在實驗室的時間, 你對一些基本的科學原理相當熟悉。外面的世界已經一團糟了, 問題是: 你能把你搞砸的世界復原嗎?" +"Thanks to years of study and hard work in the lab, you're familiar with the " +"basics of scientific inquiry. Only one question remains: can you undo the " +"very Cataclysm your colleagues helped create?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133810,9 +131111,10 @@ msgstr "土砲技工" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." -msgstr "儘管你連駕照都沒考到, 你還是很喜歡折騰車子。身為一個技工, 隨身帶著扳手, 還有一些相關的知識書籍都是很合邏輯的。" +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133823,9 +131125,10 @@ msgstr "土砲技工" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Although you never got your driver's license, you've always loved cars. At " -"least now you'll never be wanting for materials." -msgstr "儘管你連駕照都沒考到, 你還是很喜歡折騰車子。身為一個技工, 隨身帶著扳手, 還有一些相關的知識書籍都是很合邏輯的。" +"You've always loved cars, and there's nothing like getting under the hood " +"and fixing it yourself. You've kept hold of some handy tools for the job, " +"and at least now you'll never want for parts." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133839,8 +131142,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" -msgstr "你有 \"彈性的\" 法律觀念, 在酒吧混戰中打贏 (或躲過), 和你獨特的脫逃能力 - 這些技能幫助你存活。但是還能夠撐多久呢?" +"survival. How much longer will they hold out?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133854,8 +131157,8 @@ msgid "" "Your flexible outlook on the law, the scuffles you've been in (and avoided) " "at the bar, and your impressive ability to weasel your way out of the " "consequences of your actions - all these skills have helped ensure your " -"survival. But how much longer will they hold out?" -msgstr "妳有 \"彈性的\" 法律觀念, 在酒吧混戰中打贏 (或躲過), 和妳獨特的脫逃能力 - 這些技能幫助妳存活。但是還能夠撐多久呢?" +"survival. How much longer will they hold out?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133866,10 +131169,10 @@ msgstr "養蜂人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." -msgstr "你曾經是一位專業的養蜂人。災變爆發時你不得不拋棄你珍愛的蜜蜂們, 但你至少拿了一些容器與蜂蜜。" +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133880,10 +131183,10 @@ msgstr "養蜂人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a professional beekeeper. You had to abandon your precious " -"bees when the Cataclysm struck, but at least you managed to grab some " -"utensils and honey." -msgstr "你曾經是一位專業的養蜂人。災變爆發時你不得不拋棄你珍愛的蜜蜂們, 但你至少拿了一些容器與蜂蜜。" +"You used to be a professional apiarist, building and maintaining beehives. " +"You had to abandon your precious bees when the Cataclysm struck, but at " +"least you managed to grab some utensils and honey." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133894,10 +131197,10 @@ msgstr "籃球員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." -msgstr "你正要開始你的首場要賽時,但災變緊接著就爆發了。感謝你的飛毛腿,讓你成為從那些生物中逃離的少數倖存者。" +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133908,10 +131211,10 @@ msgstr "籃球員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It was going to be your first major game, but then the Cataclysm struck. " -"Thanks to your quick feet, you were among the lucky few to survive and " -"escape from the creatures." -msgstr "你正要開始你的首場要賽時,但災變緊接著就爆發了。感謝你的飛毛腿,讓你成為從那些生物中逃離的少數倖存者。" +"Your first major game was abruptly cancelled when zombies stormed the court." +" Quick feet and good reflexes meant you were among the lucky few to escape " +"the stadium alive." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133922,12 +131225,10 @@ msgstr "真正的美食人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" -"你是真正的美食人,有些人可能認為美食人只是吉祥物,但你知道更多真相。你是美食人,面具已經變成你的臉,你是真實的,站在這個世界與遺忘之間的唯一事物就是你。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133938,12 +131239,10 @@ msgstr "真正的美食人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the true Foodperson, some might think Foodperson is just a mascot, " -"but you know better. You are Foodperson, the mask has become your face, you" -" are real and the only thing standing between this world and oblivion is " -"you." +"You are the true Foodperson. Some might think Foodperson is just a mascot, " +"but you know better. The mask has become your face, you are real, and the " +"only thing standing between this world and oblivion is you." msgstr "" -"你是真正的美食人,有些人可能認為美食人只是吉祥物,但你知道更多真相。你是美食人,面具已經變成你的臉,你是真實的,站在這個世界與遺忘之間的唯一事物就是你。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133956,10 +131255,9 @@ msgctxt "prof_desc_male" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"在災變到來以前, 你是一個前途光明的自行車賽車手, 或許你現在已經不用再比賽了, 但是就像俗話說的: 生命就像騎上一台自行車, 你必須前進。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -133972,10 +131270,9 @@ msgctxt "prof_desc_female" msgid "" "You were a promising young cyclist with a bright career in front of you " "before this all happened. Perhaps you'll never get to participate in the " -"grand tours now, but as the saying goes: Life is like riding a bicycle, you " -"got to keep moving." +"grand tours now, but as the saying goes, life is like riding a bicycle: " +"you've got to keep moving." msgstr "" -"在災變到來以前, 你是一個前途光明的自行車賽車手, 或許你現在已經不用再比賽了, 但是就像俗話說的: 生命就像騎上一台自行車, 你必須前進。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -133986,13 +131283,11 @@ msgstr "志願役軍人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"你高中輟學後心中就只有一個目標: 從軍 。你如願成為軍人, 而現在正出現國際性的大災難。你現在所知道的, 就是當你錯過了緊急撤離之後, 國防布陰了你, " -"下令拋棄你。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134003,13 +131298,11 @@ msgstr "志願役軍人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school drop-out with one goal in mind: to join the military." -" You finally got in, just in time for your training to get interrupted by a" -" national emergency. As far as you can tell, military command abandoned you" -" in this hellhole when you missed the emergency evac." +"Joining the military has been your dream for years. You finally got in, " +"just in time for your training to get interrupted by some sort of national " +"emergency. As far as you can tell, military command abandoned you in this " +"hellhole when you missed the emergency evac." msgstr "" -"妳高中輟學後心中就只有一個目標: 從軍 。妳如願成為軍人, 而現在正出現國際性的大災難。妳現在所知道的, 就是當妳錯過了緊急撤離之後, 國防布陰了妳, " -"下令拋棄妳。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134050,9 +131343,10 @@ msgstr "執事" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." -msgstr "你在有錢人家裡工作, 但爆發災變後, 他們全家就去未知的地方度假了, 只剩下你。" +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134063,9 +131357,10 @@ msgstr "女僕" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked in a wealthy household, but after the Cataclysm they took a " -"family vacation to an unknown place, leaving you to fend for yourself." -msgstr "你在有錢人家裡工作, 但爆發災變後, 他們全家就去未知的地方度假了, 只剩下你。" +"You were hired to take care of the housekeeping for a wealthy family. " +"Naturally, when things got bad, they all took off on a family vacation to " +"somewhere unknown, leaving you to your fate." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134076,10 +131371,11 @@ msgstr "俘虜" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -134091,10 +131387,11 @@ msgstr "俘虜" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were following a road at night trying to get away from the horrors of " -"the city, when you heard a voice calling out in the dark. As you stepped " -"away to investigate, you suddenly felt a searing pain in your head and " -"blacked out. You just woke up in this place… Are you even on earth anymore?" +"You were following a road at night, trying to get away from the horrors of " +"the city, when you heard a voice calling out in the dark. You followed, " +"hoping they were friendly, but suddenly felt a searing pain in your head and" +" blacked out. You just woke up in this strange place… are you even on Earth" +" anymore?" msgstr "" #: lang/json/professions_from_json.py @@ -134107,9 +131404,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -134122,9 +131419,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You were ready. You went in determined to find and rescue your friends. " -"But now as you walk through those strange corridors, the atmosphere grows " -"heavy and you're not so sure anymore. You might be the one in need of a " -"rescue now." +"Now the atmosphere in these twisting corridors grows heavy, and you don't " +"feel quite so confident anymore. You might be the one in need of a rescue " +"soon." msgstr "" #: lang/json/professions_from_json.py @@ -134137,9 +131434,10 @@ msgstr "駐院醫師" msgctxt "prof_desc_male" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." -msgstr "你剛從醫學院畢業, 還記得一些相關知識。你只希望你的技能足夠用以自救。" +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134151,9 +131449,10 @@ msgstr "駐院醫師" msgctxt "prof_desc_female" msgid "" "Fresh out of med school, you've got little in the way of practical " -"experience. You just hope it will be enough if the old adage of 'Doctor, " -"heal thyself' ends up being required." -msgstr "你剛從醫學院畢業, 還記得一些相關知識。你只希望你的技能足夠用以自救。" +"experience and just a handful of first-aid supplies. You just hope it will " +"be enough if 'physician, heal thyself' turns out to be more literal than you" +" expected." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134165,9 +131464,9 @@ msgstr "太保" msgctxt "prof_desc_male" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." -msgstr "老大總是說信賴你能夠完成艱難的工作。可惜老大沒辦法顧好他自己。現在不會有人出現在犯罪現場, 你覺得新世界簡直是像回到家一樣。" +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134179,9 +131478,9 @@ msgstr "太妹" msgctxt "prof_desc_female" msgid "" "The boss always said he could rely on you to pull through on the tough jobs." -" A shame he didn't manage it, himself. No stranger to a spot of violence, " -"you almost feel at home in this new world already." -msgstr "老大總是說信賴妳能夠完成艱難的工作。可惜老大沒辦法顧好他自己。現在不會有人出現在犯罪現場, 妳覺得新世界簡直是像回到家一樣。" +" Shame he got himself smoked. No problem; the world's always got a place " +"for someone with your kind of talents." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134192,11 +131491,10 @@ msgstr "保全" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." -msgstr "作為一個低薪的保全, 現在事情已經變得不是只有巡邏找小偷這麼簡單了。你沒有任何特別有用的技能, 但是你還是有一些有用的裝備在身上。" +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134207,11 +131505,10 @@ msgstr "保全" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A low paid security guard, things have suddenly gotten a lot more dangerous " -"than patrolling the grounds warding off potential thieves. You don't have " -"any particularly useful skills, but you do have some useful equipment since " -"you were on the job when things started going south." -msgstr "作為一個低薪的保全, 現在事情已經變得不是只有巡邏找小偷這麼簡單了。妳沒有任何特別有用的技能, 但是妳還是有一些有用的裝備在身上。" +"You had a boring, underpaid job watching cameras and patrolling hallways, " +"but things have suddenly gotten a lot more dangerous. You have some useful " +"equipment, but you've never had any call to use it until now." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134224,8 +131521,8 @@ msgctxt "prof_desc_male" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." -msgstr "你過去常常為有錢人修剪草坪和修整籬笆。即便在殭屍來臨之前,承包工程早就越來越少,現在除了你的工具和專業知識之外,你什麼都沒有了。" +" except your tools and expertise." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134238,8 +131535,8 @@ msgctxt "prof_desc_female" msgid "" "You used to mow lawns and trim hedges for the wealthy. Contract work was " "getting scarce even before the zombies came, but now you've got nothing left" -" but your tools and expertise." -msgstr "你過去常常為有錢人修剪草坪和修整籬笆。即便在殭屍來臨之前,承包工程早就越來越少,現在除了你的工具和專業知識之外,你什麼都沒有了。" +" except your tools and expertise." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134250,10 +131547,10 @@ msgstr "護理助理員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." -msgstr "即使整個世界都在你周圍崩潰,你依然為老年人提供著家庭護理。你只能祈禱你不會看到你的前客戶在行屍走肉的行列中..." +"clients among the walking dead…" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134264,10 +131561,10 @@ msgstr "護理助理員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were providing in-home care for the elderly, even as the whole world " +"You went on providing in-home care for the elderly even as the whole world " "fell apart around you. You can only pray that you don't see your former " -"clients among the walking dead..." -msgstr "即使整個世界都在你周圍崩潰,你依然為老年人提供著家庭護理。你只能祈禱你不會看到你的前客戶在行屍走肉的行列中..." +"clients among the walking dead…" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134278,13 +131575,10 @@ msgstr "生存專家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" -"你善於在遠離文明的地方生存, 而今這些曾經文明的地方已經充滿要你死的怪物, 你的技能更顯得有用了。你擁有多功能的基本生存裝備 - 以及你熟練的技能, " -"只要你的水壺不要沒水就好!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134295,13 +131589,10 @@ msgstr "生存專家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Skilled at surviving off the land far from civilization, your skills are " -"quite likely to come in useful considering civilization is now full of " -"monsters that want you dead. Your equipment is basic, but versatile - and " -"with your skills, more than you need… except your canteen's run out!" +"Living off the land, far from civilization, is nothing new to you. The only" +" difference is all the monsters that suddenly want you dead. Your equipment" +" is basic, but versatile… except that your canteen's run out!" msgstr "" -"你善於在遠離文明的地方生存, 而今這些曾經文明的地方已經充滿要你死的怪物, 你的技能更顯得有用了。你擁有多功能的基本生存裝備 - 以及你熟練的技能, " -"只要你的水壺不要沒水就好!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134312,11 +131603,10 @@ msgstr "老煙槍" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"你工作地方的每個人都知道你這個人總是嘴上叼著一根或兩根煙。現在末日時期你降到一天只抽一包, 而你期望可以找到更多香煙。你一開始便有很深的尼古丁上癮症狀。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134327,11 +131617,10 @@ msgstr "老煙槍" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone at work knew you as the person who always had a cigarette or two in" -" hand. Now, you're down to a single pack, and you hope you find more soon." -" You start out with a strong nicotine addiction." +"Your coworkers always muttered when you had to duck outside every hour for a" +" smoke, but it ended up saving your life when things got bad. Now you're " +"down to your last pack. You start out with a strong nicotine addiction." msgstr "" -"妳工作地方的每個人都知道妳這個人總是嘴上叼著一根或兩根煙。現在末日時期妳降到一天只抽一包, 而妳期望可以找到更多香煙。妳一開始便有很深的尼古丁上癮症狀。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134344,8 +131633,8 @@ msgctxt "prof_desc_male" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." -msgstr "古柯鹼。沒錯, 是個偉大的東西。你把錢全部都灑在這些白粉上面, 在災變發生前, 你才剛跟本地藥頭耍了詭計, 只是為了要再爽一把。" +"score one more line. Where are you going to get your next fix now?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134358,8 +131647,8 @@ msgctxt "prof_desc_female" msgid "" "Cocaine. It is, indeed, a helluva drug. You blew your money on some dust, " "and before you knew it you were turning tricks behind the local CVS just to " -"score one more line." -msgstr "古柯鹼。沒錯, 是個偉大的東西。妳把錢全部都灑在這些白粉上面, 在災變發生前, 妳才剛跟本地藥頭耍了詭計, 只是為了要再爽一把。" +"score one more line. Where are you going to get your next fix now?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134370,13 +131659,11 @@ msgstr "流浪漢" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"這個社會害你四處流浪, 沒有房子、沒有家庭、沒有朋友, 只有在酒精裡你才能找到慰藉。但現在即使社會已經不存在了, 不管什麼鳥事擋住你的去路, " -"你還是活著。該死, 你需要喝一杯。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134387,13 +131674,11 @@ msgstr "流浪漢" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Society drove you to the fringes and set you wandering, with no home, no " -"family, no friends, until you could only find solace in the bottom of a " -"bottle. But society doesn't mean a thing anymore, and for all the crap " -"thrown your way, you're still standing. God damn, you need a drink." +"Society drove you to the fringes and left you with no home, no family, no " +"friends. You found solace in the bottom of a bottle. Well, society doesn't" +" mean a thing anymore, and for all the crap thrown your way, you're still " +"standing. God damn, you need a drink." msgstr "" -"這個社會害妳四處流浪, 沒有房子、沒有家庭、沒有朋友, 只有在酒精裡妳才能找到慰藉。但現在即使社會已經不存在了, 不管什麼鳥事擋住妳的去路, " -"妳還是活著。該死, 妳需要喝一杯。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134404,10 +131689,10 @@ msgstr "安非毒蟲" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." -msgstr "你還搞不清楚到底發生了什麼事, 所有事情都亂了套, 你腦子現在只想找到下一包安非他命。" +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134418,10 +131703,10 @@ msgstr "安非毒蟲" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You're not entirely sure what happened, but everything has gone to shit, and" -" the only thing running through your head is where you're gonna find your " -"next hit." -msgstr "妳還搞不清楚到底發生了什麼事, 所有事情都亂了套, 妳腦子現在只想找到下一包安非他命。" +"You're not entirely sure what happened last night, but you woke up on the " +"floor and everything has gone completely to shit. The only thing running " +"through your head, though, is where you're gonna find your next hit." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134433,9 +131718,9 @@ msgstr "服藥成癮者" msgctxt "prof_desc_male" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." -msgstr "在年輕時發生意外事故之後,你對治療疼痛的鴉片類藥物上癮了。隨著藥局關閉,藥頭也變成了不死生物,想要滿足你的慾望變得越來越困難了。" +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134447,9 +131732,9 @@ msgstr "服藥成癮者" msgctxt "prof_desc_female" msgid "" "After an accident in your youth, you got addicted to the opiates treating " -"your pain. With the pharmacies shut down and dealers turned undead, " -"satisfying your fix just got a lot more difficult." -msgstr "在年輕時發生意外事故之後,你對治療疼痛的鴉片類藥物上癮了。隨著藥局關閉,藥頭也變成了不死生物,想要滿足你的慾望變得越來越困難了。" +"your pain. With the pharmacies shut down and your dealers turned undead, " +"satisfying those cravings just got a lot more difficult." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134460,8 +131745,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -134473,8 +131759,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You earned a living ferrying businessmen and tourists from helipad to " -"helipad, the Cataclysm has grounded you, but the sky still calls you..." +"You got your pilot's license, and earned a living ferrying businessmen and " +"tourists around. The Cataclysm has grounded you for now, but the sky still " +"calls to you…" msgstr "" #: lang/json/professions_from_json.py @@ -134487,8 +131774,9 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -134501,8 +131789,9 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "You spent your career busting drug smugglers with your faithful canine " -"companion. Now the world has ended and none of that matters anymore. But " -"at least you have a loyal friend." +"companion. Now the world has ended, and none of that matters anymore. Your" +" loyal dog is still at your side, though, ready to face the Cataclysm with " +"you." msgstr "" #: lang/json/professions_from_json.py @@ -134514,9 +131803,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" -msgstr "所有人都死了?隨便啦…你只需要和你的貓貓相處就好啦!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134527,9 +131816,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Everyone is dead? Well, it doesn't matter… your cats are all the friends " -"you need!" -msgstr "所有人都死了?隨便啦…你只需要和你的貓貓相處就好啦!" +"Everyone is dead? Oh well, it doesn't matter; it's not like you got along " +"with people much anyway. Your beloved cats are all the friends you need!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134540,13 +131829,11 @@ msgstr "警察" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"當你接到電話時是個小鎮的副警長, 你才正準備要進行救援時, 才發現其實是你才需要救援 - " -"你很幸運的逃過一劫。當這個警徽所代表的政府可能已經不存在的狀況下, 誰還會尊重你的權威?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134557,13 +131844,11 @@ msgstr "警察" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Just a small-town deputy when you got the call, you were still ready to come" -" to the rescue. Except that soon it was you who needed rescuing - you were " -"lucky to escape with your life. Who's going to respect your authority when " -"the government this badge represents might not even exist anymore?" +"Just a small-town deputy, you got the call and were ready to come to the " +"rescue. Soon it was you who needed rescuing, and you were lucky to escape " +"with your life. Who's going to respect your authority when the government " +"this badge represents might not even exist anymore?" msgstr "" -"當妳接到電話時是個小鎮的副警長, 妳才正準備要進行救援時, 才發現其實是妳才需要救援 - " -"妳很幸運的逃過一劫。當這個警徽所代表的政府可能已經不存在的狀況下, 誰還會尊重妳的權威?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134574,10 +131859,10 @@ msgstr "警探" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." -msgstr "當大災變降臨時, 你所偵辦的最後一件謀殺案正有著突破性的發展。然而當初的殺人嫌疑犯已經死了, 大家也都死了, 你現在最好來一根煙。" +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134588,10 +131873,10 @@ msgstr "警探" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on the brink of a major breakthrough in your last homicide case " -"when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" -" need a smoke." -msgstr "當大災變降臨時, 你所偵辦的最後一件謀殺案正有著突破性的發展。然而當初的殺人嫌疑犯已經死了, 大家也都死了, 你現在最好來一根煙。" +"You were on the brink of a major breakthrough in your latest homicide case " +"when the Cataclysm struck. Now your prime suspect is dead. Everyone's " +"dead. You could really use a smoke." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134604,11 +131889,9 @@ msgctxt "prof_desc_male" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"身為一個警方菁英執法單位的成員, 你比一般人受過更多的訓練, 也有足夠的設備度過各種考驗。但是很不幸的是, 社會的瓦解讓你回到了原始人的狀態, " -"你現在只要想著生存就好。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134621,11 +131904,9 @@ msgctxt "prof_desc_female" msgid "" "As a member of the police force's most elite division, you are more than " "adequately trained and equipped to survive the brutal onslaught of the " -"apocalypse. Unfortunately, the breakdown of society has brought you to your" -" current state of affairs; you now fight to simply stay alive." +"apocalypse. Unfortunately, the chain of command has broken down; your only " +"mission now is to stay alive." msgstr "" -"身為一個警方菁英執法單位的成員, 你比一般人受過更多的訓練, 也有足夠的設備度過各種考驗。但是很不幸的是, 社會的瓦解讓你回到了原始人的狀態, " -"你現在只要想著生存就好。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134636,13 +131917,11 @@ msgstr "SWAT CQC 專家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"身為一個警方菁英執法單位的成員, 你受過的室內近身作戰訓練 (CQC) 讓你活到了現在。但是很不幸的是, 社會的瓦解讓你回到了原始人的狀態, " -"你現在只要想著生存就好。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134653,13 +131932,11 @@ msgstr "SWAT CQC 專家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A member of the police force's most elite division, your close quarters " -"combat training has kept you alive thus far. Unfortunately, the breakdown " -"of society has brought you to your current state of affairs; you now fight " -"to simply stay alive." +"As a member of the police force's most elite division, you were given " +"special training and became an expert in close-quarters combat. " +"Unfortunately, the chain of command has broken down; your only mission now " +"is to stay alive." msgstr "" -"身為一個警方菁英執法單位的成員, 你受過的室內近身作戰訓練 (CQC) 讓你活到了現在。但是很不幸的是, 社會的瓦解讓你回到了原始人的狀態, " -"你現在只要想著生存就好。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134671,10 +131948,10 @@ msgstr "警隊狙擊手" msgctxt "prof_desc_male" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." -msgstr "你精準的狙擊能力使你在工作崗位上表現良好, 以一顆精確的子彈保護無辜大眾。現在你只能顧好自己, 子彈射失的代價也許是你自己的性命。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134686,10 +131963,10 @@ msgstr "警隊狙擊手" msgctxt "prof_desc_female" msgid "" "Your skill as a sharpshooter served you well in the line of duty, protecting" -" the innocent with a single, well placed bullet. Now survival itself is on " +" the innocent with a single, well-placed bullet. Now survival itself is on " "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." -msgstr "你精準的狙擊能力使你在工作崗位上表現良好, 以一顆精確的子彈保護無辜大眾。現在你只能顧好自己, 子彈射失的代價也許是你自己的性命。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134700,11 +131977,11 @@ msgstr "防暴警察" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." -msgstr "那些暴亂相當殘酷。然後有人死後復活, 吞食活人。你的防線快要被突破… 在混亂中你打爆了一堆殭屍的頭, 幸運地全身而退… 但最壞的還在後頭。" +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134715,11 +131992,11 @@ msgstr "防暴警察" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The riots were brutal, and that's before the dead rose and started to devour" -" the living. Soon it became apparent that the line you were holding was " -"about to break - it was only through a bit of luck and a lot of head-bashing" -" that you got away in one piece, and the worst is yet to come." -msgstr "那些暴亂相當殘酷。然後有人死後復活, 吞食活人。你的防線快要被突破… 在混亂中你打爆了一堆殭屍的頭, 幸運地全身而退… 但最壞的還在後頭。" +"The riots were brutal, and that was before the dead rose and started to " +"devour the living. The line you were holding broke. It was only through a " +"bit of luck and a lot of head-bashing that you got away in one piece, and " +"the worst is yet to come." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134730,11 +132007,10 @@ msgstr "二手車商" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" -msgstr "你就是人家所說的那種會把自己老媽用 1 塊錢賣掉的人。這簡直是一種侮辱 - 你怎麼可能會把你媽只用 1 塊錢賣掉呢? 當然是賣更多錢!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134745,11 +132021,10 @@ msgstr "二手車商" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been accused of being the sort of person who'd be willing to sell " -"your own mother for a dollar. It always left you insulted - you've been " -"around the block a time or two, and you'd charge way more than a dollar - " -"and get it, too!" -msgstr "妳就是人家所說的那種會把自己老媽用 1 塊錢賣掉的人。這簡直是一種侮辱 - 妳怎麼可能會把妳媽只用 1 塊錢賣掉呢? 當然是賣更多錢!" +"They said you'd sell your own mother for a dollar. How dare they! You've " +"been around the block a few times, and you'd charge way more than a dollar -" +" and get it, too!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134760,11 +132035,11 @@ msgstr "弓箭獵人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." -msgstr "你從小就愛好打獵, 而且你還特別喜愛使用弓箭來打獵。當末日來臨時你絕對是要有一把信賴的弓。所以, 你絕對是弓不離身。" +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134775,11 +132050,11 @@ msgstr "弓箭獵人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a bow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty bow. So when it did, " -"you made sure to bring it along." -msgstr "妳從小就愛好打獵, 而且妳還特別喜愛使用弓箭來打獵。當末日來臨時妳絕對是要有一把信賴的弓。所以, 妳絕對是弓不離身。" +"Ever since you were a child you loved hunting, and quickly developed a " +"talent for archery. Why, if the world ended, there's nothing you'd want at " +"your side more than your trusty bow. So, when it did, you made sure to " +"bring it along." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134790,11 +132065,11 @@ msgstr "十字弓獵人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." -msgstr "你從小就愛好打獵, 而且你還特別喜愛使用十字弓來打獵。當末日來臨時你絕對是要有一把信賴的十字弓。所以, 你絕對是弓不離身。" +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134805,11 +132080,11 @@ msgstr "十字弓獵人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a crossbow. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty crossbow. So when it " -"did, you made sure to bring it along." -msgstr "妳從小就愛好打獵, 而且妳還特別喜愛使用十字弓來打獵。當末日來臨時妳絕對是要有一把信賴的十字弓。所以, 妳絕對是弓不離身。" +"Ever since you were a child you loved hunting, and crossbow hunting was " +"always your favorite. Why, if the world ended, there's nothing you'd want " +"at your side more than your trusty crossbow. So, when it did, you made sure" +" to bring it along." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134820,11 +132095,11 @@ msgstr "霰彈槍獵人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." -msgstr "你從小就愛好打獵, 而且你還特別喜愛使用霰彈槍來打獵。當末日來臨時你絕對是要有一把信賴的霰彈槍。所以, 你絕對是槍不離身。" +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134835,11 +132110,11 @@ msgstr "霰彈槍獵人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a shotgun. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty shotgun. So when it " -"did, you made sure to bring it along." -msgstr "妳從小就愛好打獵, 而且妳還特別喜愛使用霰彈槍來打獵。當末日來臨時妳絕對是要有一把信賴的霰彈槍。所以, 妳絕對是槍不離身。" +"Ever since you were a child you loved hunting, and one year you got a " +"shotgun for your birthday. Why, if the world ended, there's nothing you'd " +"want at your side more than your trusty shotgun. So, when it did, you made " +"sure to bring it along." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134850,11 +132125,11 @@ msgstr "步槍獵人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." -msgstr "你從小就愛好打獵, 而且你還特別喜愛使用步槍來打獵。當末日來臨時你絕對是要有一把信賴的步槍。所以, 你絕對是槍不離身。" +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134865,11 +132140,11 @@ msgstr "步槍獵人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Ever since you were a child you loved hunting, and you soon took a liking to" -" the challenge of hunting with a rifle. Why, if the world ended there's " -"nothing you'd want at your side more than your trusty rifle. So when it " -"did, you made sure to bring it along." -msgstr "妳從小就愛好打獵, 而且妳還特別喜愛使用步槍來打獵。當末日來臨時妳絕對是要有一把信賴的步槍。所以, 妳絕對是槍不離身。" +"Ever since you were a child you loved hunting, and you fancy yourself a " +"crack shot. Why, if the world ended, there's nothing you'd want at your " +"side more than your trusty rifle. So, when it did, you made sure to bring " +"it along." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134880,13 +132155,11 @@ msgstr "裝修工人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"你之前在特力屋上班, 你做過很多房屋裝修的工作。現在放眼望去都是被鏟平的廢墟, 你不禁懷疑 - 你能夠憑你微薄的技能, 與一些逃命時拿的補給, " -"能夠幫助世界重建嗎?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134897,13 +132170,11 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a local hardware store, and you did a lot of home " +"You used to work at a local hardware store, and you did plenty of home " "renovations yourself. Now you look out at the horizon of a ruined world, " "and wonder - are your meager skills, and the few supplies you grabbed on the" -" way out, sufficient to help it rebuild?" +" way out, sufficient to help rebuild?" msgstr "" -"妳之前在特力屋上班, 妳做過很多房屋裝修的工作。現在放眼望去都是被鏟平的廢墟, 妳不禁懷疑 - 妳能夠憑妳微薄的技能, 與一些逃命時拿的補給, " -"能夠幫助世界重建嗎?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134914,9 +132185,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -134928,9 +132198,8 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You ruled the road in your big rig and managed to drive it somewhere you " -"hoped was safe when the riots hit. Now it's just you and your trusty truck " -"cab." +"You once ruled the road in your big rig. When the riots hit, you hopped in " +"and drove it to safety. Now it's just you and your truck against the world." msgstr "" #: lang/json/professions_from_json.py @@ -134968,10 +132237,11 @@ msgstr "背包客" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." -msgstr "你生存的意義是旅行, 四處觀光, 有你父母的信託基金讓你生活寬裕。但這些已經是過去式了, 你和你的背包就是你現在生存的關鍵。" +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -134982,10 +132252,11 @@ msgstr "背包客" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've traveled for a living, sightseeing here and there, and living off " -"your parents' trust fund. But now they're gone, and the only thing between " -"you and death is the open road and your backpack." -msgstr "妳生存的意義是旅行, 四處觀光, 有妳父母的信託基金讓你生活寬裕。但這些已經是過去式了, 妳和妳的背包就是妳現在生存的關鍵。" +"For the past few years you've been traveling the world, sightseeing and " +"living off your parents' trust fund. You came home to find the world in " +"ruins, and the only thing between you and death is the open road and your " +"backpack." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -134996,9 +132267,10 @@ msgstr "速食店廚師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." -msgstr "你一個星期前才在一間有名的速食店工作, 但現在你就像速食的 \"速\" 字一樣動作迅速的為了你的生命奔波。" +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135009,9 +132281,10 @@ msgstr "速食店廚師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work at a fancy fast food joint a week ago, but now you show the" -" meaning of \"fast\" food by running for your life." -msgstr "妳一個星期前才在一間有名的速食店工作, 但現在妳就像速食的 \"速\" 字一樣動作迅速的為了妳的生命奔波。" +"The diners at the fancy burger joint where you work seem even more irritable" +" and unreasonable than usual today. Time to show the meaning of fast food… " +"by running for your life!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135022,11 +132295,9 @@ msgstr "水電工" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." -msgstr "你平常都承包一些企業有關電力的小案子, 而災變爆發時你正好在避難所工作。不幸的是, 你並沒有接好任何線, 除了現在無用的電腦。" +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135037,11 +132308,9 @@ msgstr "水電工" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to work for some small-time business owners doing minor electrical " -"work, and you just so happened to be working on one of these jokes of an " -"evac shelter when the Cataclysm struck. Unfortunately, you didn't finish " -"wiring anything up except the computer - fat lot of good it's doing you now." -msgstr "你平常都承包一些企業有關電力的小案子, 而災變爆發時你正好在避難所工作。不幸的是, 你並沒有接好任何線, 除了現在無用的電腦。" +"Small businesses often hired you for electrical work. You were halfway " +"through your latest job when the whole power grid went dead." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135052,10 +132321,11 @@ msgstr "駭客" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." -msgstr "咖啡因錠以及提神飲料放滿在電腦螢幕前的結果,讓你學會了一些技術,不過似乎在末日派不太上用場。除非你能找到一台軍用主機。" +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135066,10 +132336,11 @@ msgstr "駭客" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Caffeine pills and all-nighters in front of a computer screen have given you" -" skills in an area that seem, on the face of it, distinctly less-than-useful" -" when the world has ended. Unless you manage to find a military mainframe." -msgstr "咖啡因錠以及提神飲料放滿在電腦螢幕前的結果,讓你學會了一些技術,不過似乎在末日派不太上用場。除非你能找到一台軍用主機。" +"Caffeine pills and all-nighters in front of a computer screen made you an " +"expert. Sadly, the power's gone out, and suddenly your elite skills seem " +"significantly less useful. Unless you manage to find a military mainframe, " +"that is." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135080,10 +132351,11 @@ msgstr "中二生" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." -msgstr "你是一名高校生, 但你現在要面對的考驗將有更高的風險。也許在你過去一整年背著走的書本中會有些用處。" +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135094,10 +132366,11 @@ msgstr "中二生" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a high school student, but the tests you'll face now will have much" -" higher stakes. There might even be something useful in one of these books " -"you've been lugging around all year." -msgstr "妳是一名高校生, 但妳現在要面對的考驗將有更高的風險。也許在妳過去一整年背著走的書本中會有些用處。" +"Just an average high school student, you find yourself facing a test you " +"never studied for, and the stakes are a bit higher than geometry. Maybe " +"there'll be something useful in one of these books you've been lugging " +"around all year." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135108,10 +132381,10 @@ msgstr "淋浴受害者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." -msgstr "災變降臨時, 你正洗著一個舒服的熱水澡, 你逃出來的時候身上帶著肥皂, 還有人類歷史上最有用的東西… 一條毛巾。" +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135122,10 +132395,10 @@ msgstr "淋浴受害者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were in the middle of a nice, hot shower when the Cataclysm struck! You" -" barely managed to escape with some soap and the most massively useful thing" -" ever… a towel." -msgstr "災變降臨時, 你正洗著一個舒服的熱水澡, 你逃出來的時候身上帶著肥皂, 還有人類歷史上最有用的東西… 一條毛巾。" +"You just stepped out of a nice, hot shower to find the world had ended. " +"You've got some soap, along with the most massively useful thing ever… a " +"towel." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135136,9 +132409,9 @@ msgstr "重機騎士" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." -msgstr "你大半日子都在哈雷上度過, 只有在機車上你才能感受生命的意義。" +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135149,9 +132422,9 @@ msgstr "重機騎士" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your life on a Harley, and it's only natural you spend the" -" rest of it riding one." -msgstr "妳大半日子都在哈雷上度過, 只有在機車上妳才能感受生命的意義。" +"You spent most of your life on a Harley, out on the open road with your " +"club. Now they're all dead. Time to ride or die." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135162,9 +132435,10 @@ msgstr "舞廳舞者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." -msgstr "在災變前你是舞廳的舞者, 而你現在利用你的技巧來自救。" +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135175,9 +132449,10 @@ msgstr "舞廳舞者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You used to be a ballroom dancer before the Cataclysm, and now you use your " -"skills to save your life." -msgstr "在災變前你是舞廳的舞者, 而你現在利用你的技巧來自救。" +"Things got a little weird on your way to your weekly dance class. Zombies " +"don't seem to know how to dance, but you're not about to let them step on " +"your toes." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135188,10 +132463,10 @@ msgstr "生化竊賊" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." -msgstr "你幹過很多高調的搶劫, 但你的所得在這個世界已經沒有意義了。你只剩下身上的工具與無可挑剔的技巧。" +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135202,10 +132477,10 @@ msgstr "生化竊賊" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have done many high profile heists, but your gains mean nothing in this " -"world. All you have left are the tools of your trade and your impeccable " -"style." -msgstr "妳幹過很多高調的搶劫, 但妳的所得在這個世界已經沒有意義了。妳只剩下身上的工具與無可挑剔的技巧。" +"Impeccable style and a few bionic tricks up your sleeve have seen you pull " +"off a string of daring, high-profile heists. The cops would love to get " +"their hands on you, but seem otherwise occupied." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135216,13 +132491,11 @@ msgstr "生化病患" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"當你收到陽性反應的檢驗結果後, 你簽下了一系列救你一命的實驗性生化插件手術。由於這一套由代謝功能供電的生化插件, " -"現在你比以前健康多了。充分利用你生命的第二次機會吧。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135233,13 +132506,11 @@ msgstr "生化病患" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive you signed up for a series of " +"When the diagnosis came back positive, you signed up for a series of " "experimental bionic surgeries that saved your life. Now you're healthier " "than you ever were before, thanks to a suite of bionic systems powered by " "your own metabolic functions. Make the most of your second chance at life." msgstr "" -"當你收到陽性反應的檢驗結果後, 你簽下了一系列救你一命的實驗性生化插件手術。由於這一套由代謝功能供電的生化插件, " -"現在你比以前健康多了。充分利用你生命的第二次機會吧。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135250,9 +132521,9 @@ msgstr "病人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." -msgstr "當你通過了診斷之後, 你非常願意為了活下去而奮鬥。現在你必須在未來的時代裡更新你固執的誓言。" +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135263,9 +132534,9 @@ msgstr "病人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the diagnosis came back positive, you were willing to fight to keep " -"living. Now, you must renew your vow of tenacity in these new times." -msgstr "當你通過了診斷之後, 你非常願意為了活下去而奮鬥。現在你必須在未來的時代裡更新你固執的誓言。" +"When the diagnosis came back positive, you made a vow: to fight for your " +"life, and to never give in to despair. Now is the time to renew that vow." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135277,7 +132548,8 @@ msgstr "非自願突變者-男性" msgctxt "prof_desc_male" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" #: lang/json/professions_from_json.py @@ -135290,7 +132562,8 @@ msgstr "非自願突變者-女性" msgctxt "prof_desc_female" msgid "" "You were a human guinea pig, used by laboratory technicians to understand " -"the immense power of mutation." +"the immense power of mutation. You are determined to live on, if only to " +"spite them for what they did to you." msgstr "" #: lang/json/professions_from_json.py @@ -135303,9 +132576,9 @@ msgstr "自願突變者-男性" msgctxt "prof_desc_male" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." -msgstr "你夢想藉由遺傳性的變化成為超人般的突變者, 這個夢想也許跟現實有點差距, 但當災變爆發時, 你跟科學家們已經準備好測試你的新身體了。" +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135317,9 +132590,9 @@ msgstr "自願突變者-女性" msgctxt "prof_desc_female" msgid "" "Your dreams of becoming a super-human mutant through genetic alteration may " -"have fallen a bit short, but when the Cataclysm struck, you and the " -"scientists were ready to put your new body to the test." -msgstr "你夢想藉由遺傳性的變化成為超人般的突變者, 這個夢想也許跟現實有點差距, 但當災變爆發時, 你跟科學家們已經準備好測試你的新身體了。" +"have fallen a bit short, but the scientists say you're ready. It's time for" +" a field test." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135332,8 +132605,9 @@ msgctxt "prof_desc_male" msgid "" "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." -msgstr "你曾經是正常的。但那些測試和實驗剝奪了你作為人類的每一個特徵。現在的你比人類更像個機器, 但是面對這恐怖的世界或許會是個優勢。" +" human now, but that might prove to be an advantage against the horrors that" +" await." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135346,8 +132620,9 @@ msgctxt "prof_desc_female" msgid "" "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." -msgstr "你曾經是正常的。但那些測試和實驗剝奪了你作為人類的每一個特徵。現在的你比人類更像個機器, 但是面對這恐怖的世界或許會是個優勢。" +" human now, but that might prove to be an advantage against the horrors that" +" await." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135392,10 +132667,10 @@ msgstr "生化運動員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." -msgstr "災變的發生真是令人感到羞恥。你永遠都不可能在強化人奧運被眾人矚目了, 現在阻止你被殭屍殺掉的東西, 就只有你那怪物般的強化力量。" +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135406,10 +132681,10 @@ msgstr "生化運動員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"It's a shame the apocalypse happened; you'll never get a shot at the " -"Cyberolympics. Now the only thing between you and death by zombie is your " -"freakish cyborg strength." -msgstr "災變的發生真是令人感到羞恥。你永遠都不可能在強化人奧運被眾人矚目了, 現在阻止你被殭屍殺掉的東西, 就只有你那怪物般的強化力量。" +"You'll never get your shot at the Cyberolympics. All that's left of your " +"dream is a single leftover protein shake. Well, that and your bulging, " +"cybernetically-enhanced muscles." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135420,10 +132695,10 @@ msgstr "生化賽跑運動員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" 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 "你是那種無法離開賽道的運動員。你熱愛跑步,並且增強了身體讓跑步成績變得更好。現在有很多東西讓你不得不跑開,但這是只屬於你自己的比賽。" +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135434,10 +132709,10 @@ msgstr "生化賽跑運動員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" 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 "妳是那種無法離開賽道的運動員。妳熱愛跑步,並且增強了身體讓跑步成績變得更好。現在有很多東西讓妳不得不跑開,但這是只屬於妳自己的比賽。" +"You were the kind of sportsman who couldn't get off the track. You love " +"running, and you enhanced your body with cybernetics to go even faster. Now" +" there's plenty to run from - this is your kind of game." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135477,9 +132752,9 @@ msgstr "生化消防員" msgctxt "prof_desc_male" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." -msgstr "身為第二代的強化消防員, 你被強化的足以應付大多數的緊急狀況, 世界末日應該也算緊急狀況吧。" +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135491,9 +132766,9 @@ msgstr "生化消防員" msgctxt "prof_desc_female" msgid "" "As a second-generation augmented firefighter, you have been cybernetically " -"enhanced to operate in the most dire of emergency situations. The end of " -"the world definitely counts as a dire situation." -msgstr "身為第二代的強化消防員, 你被強化的足以應付大多數的緊急狀況, 世界末日應該也算緊急狀況吧。" +"enhanced to operate in the most dire of emergency situations. You're pretty" +" sure this counts." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135504,10 +132779,10 @@ msgstr "生化研究員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." -msgstr "在末日之前, 你是一家知名大型國際企業的代表兼技術顧問, 充分使用你的強化電子腦進行工作。" +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135518,10 +132793,10 @@ msgstr "生化研究員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Prior to the apocalypse you were employed by a major international " -"corporation as a representative and technical advisor, utilizing the " -"incredible power of your cybernetically augmented mind." -msgstr "在末日之前, 你是一家知名大型國際企業的代表兼技術顧問, 充分使用你的強化電子腦進行工作。" +"You were employed by a major international corporation as a representative " +"and technical advisor, utilizing the incredible power of your cybernetically" +" augmented mind." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135532,10 +132807,10 @@ msgstr "生化軍人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." -msgstr "你是軍方的一個最新且最終研究計劃的結果, 生化軍人原型機。縱使你的戰友都變成殭屍, 但是你還活著, 這一切都得歸功於你的增強系統。" +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135546,10 +132821,10 @@ msgstr "生化軍人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You are the result of one of the military's latest and final research " -"programs, a prototype cyborg soldier. You're still alive thanks to your " -"augmentations, even after all your comrades fell to the undead." -msgstr "妳是軍方的一個最新且最終研究計劃的結果, 生化軍人原型機。縱使妳的戰友都變成殭屍, 但是妳還活著, 這一切都得歸功於妳的增強系統。" +"You are the result of one of the military's last research programs: a " +"prototype cyborg soldier. The wars they expected you to fight have become " +"obsolete, but war never changes." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135560,10 +132835,11 @@ msgstr "生化狙擊手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." -msgstr "你的生化插件、裝備, 以及進階的戰地訓練足夠讓你在敵後滲透幾個星期, 並且把目標在難以置信的距離外放倒。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135574,10 +132850,11 @@ msgstr "生化狙擊手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your bionics, equipment, and extensive field training enable you to drop " +"A top-secret military program sought to convert you into the perfect sniper." +" Your bionics, equipment, and extensive field training enable you to drop " "targets from implausible distances, even after weeks of total isolation in " "enemy territory." -msgstr "你的生化插件、裝備, 以及進階的戰地訓練足夠讓你在敵後滲透幾個星期, 並且把目標在難以置信的距離外放倒。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135588,8 +132865,8 @@ msgstr "生化特務" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" @@ -135603,8 +132880,8 @@ msgstr "生化特務" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body has several bionics worth millions of dollars, paid for by public " -"taxes. The government has turned you into an infiltration and recon " +"Your body conceals several bionic components, worth millions of dollars in " +"public taxes. The government turned you into an infiltration and recon " "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" @@ -135620,7 +132897,7 @@ msgctxt "prof_desc_male" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" #: lang/json/professions_from_json.py @@ -135634,7 +132911,7 @@ msgctxt "prof_desc_female" msgid "" "The product of millions of dollars of clandestine research, you are a bionic" " sleeper agent capable of silently engaging your target while maintaining an" -" innocuous appearance." +" innocuous appearance. Your handler cut all contact a week ago." msgstr "" #: lang/json/professions_from_json.py @@ -135646,11 +132923,10 @@ msgstr "生化幫派份子" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -135662,11 +132938,10 @@ msgstr "生化幫派份子" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were the boss' favorite, their protege; they always counted on you to " -"get the toughest jobs done. Seeing your potential, they invested in " -"\"basic\" augments and the best gear on the market to better aid you in your" -" job. After enjoying some period of freedom to do as you wanted, now you " -"find yourself needing those skills to survive. " +"You were the boss's favorite, their protege; they always counted on you to " +"get the toughest jobs done. They invested in \"basic\" augments and the " +"best gear on the market in preparation for your biggest hit yet. Sadly, you" +" came out of surgery to find your whole gang had been eaten." msgstr "" #: lang/json/professions_from_json.py @@ -135678,10 +132953,10 @@ msgstr "故障的生化人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." -msgstr "你的身體有許多壞掉的生化插件。你有大容量的能量, 但是裝滿了很多損壞的生化插件。只剩你的酒精發電器還能運作。" +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135692,10 +132967,10 @@ msgstr "故障的生化人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your body is a wreck of bionic parts. You have a large capacity for power, " -"but are filled with broken bionics. At least your ethanol power supply " -"still works." -msgstr "妳的身體有許多壞掉的生化插件。妳有大容量的能量, 但是裝滿了很多損壞的生化插件。只剩妳的酒精發電器還能運作。" +"After a series of surgical mistakes, your body is a wreck of bionic parts. " +"You have a large capacity for power, but are filled with broken and useless " +"bionics. Your ethanol power supply still works, at least." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135707,12 +132982,8 @@ msgstr "狂熱生化人" msgctxt "prof_desc_male" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" -"你總要拿到市面上最新最好的巧妙裝置與小工具,大家都很好奇:難道你的智慧型手機升級了你的肉體嗎?只有時間才能證明,你對電子裝置的熱情與作為生化技術界的奇蹟地位,是否能確保你在大災變之後能生存下去。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135724,12 +132995,8 @@ msgstr "狂熱生化人" msgctxt "prof_desc_female" msgid "" "You always had to have the latest and best gadgets and gizmos, so is it any " -"wonder that you upgraded your flesh along with your smart phone? Only time " -"will tell if your passion for electronics and your status as a marvel of " -"bionic technology will be enough to ensure your survival after the " -"apocalypse." +"wonder that you upgraded your flesh along with your smart phone?" msgstr "" -"你總要拿到市面上最新最好的巧妙裝置與小工具,大家都很好奇:難道你的智慧型手機升級了你的肉體嗎?只有時間才能證明,你對電子裝置的熱情與作為生化技術界的奇蹟地位,是否能確保你在大災變之後能生存下去。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135767,9 +133034,9 @@ msgstr "捕獸者" msgctxt "prof_desc_male" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." -msgstr "你和你的父親一生都在使用陷阱打獵。你們利用陷阱捕食, 教人製作陷阱。希望你的技能可以在這非常規的世界派上用場。" +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135781,9 +133048,9 @@ msgstr "捕獸者" msgctxt "prof_desc_female" msgid "" "You spent most of your life trapping with your father. Both of you made a " -"decent living off of your catches, and trapping tutorials. Hopefully, your " -"skills will come in useful against less conventional game." -msgstr "妳和妳的父親一生都在使用陷阱打獵。妳們利用陷阱捕食, 教人製作陷阱。希望妳的技能可以在這非常規的世界派上用場。" +"decent living selling your catches and running trapping tutorials. " +"Hopefully, your skills will come in useful against less conventional game." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135794,10 +133061,10 @@ msgstr "鐵匠" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." -msgstr "你在末日之前在社區大學學過鑄鐵的技術。你在逃命時帶了一些裝備在身上。" +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135808,10 +133075,10 @@ msgstr "鐵匠" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were going through your community college's metalsmithing program when " -"the world ended. You ran into trouble coming out of class - but managed to " -"keep ahold of the equipment you were carrying at the time." -msgstr "妳在末日之前在社區大學學過鑄鐵的技術。妳在逃命時帶了一些裝備在身上。" +"You ran into trouble coming out of class at your community college's " +"metalsmithing program, but despite the havoc you've managed to keep ahold of" +" some of the equipment you were carrying." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135824,8 +133091,8 @@ msgctxt "prof_desc_male" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." -msgstr "你想要的就是讓人們大笑。輟學後並穿梭在幼童派對中曾讓你的夢想成真, 直到末日到來。在你的未來能若見到動物氣球是一種奢求。" +"There are precious few balloon animals in your future now." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135838,8 +133105,8 @@ msgctxt "prof_desc_female" msgid "" "All you ever wanted was to make people laugh. Dropping out of school and " "performing at kids' parties was a dream come true until the world ended. " -"There's precious few balloon animals in your future now." -msgstr "妳想要的就是讓人們大笑。輟學後並穿梭在幼童派對中曾讓妳的夢想成真, 直到末日到來。在妳的未來能若見到動物氣球是一種奢求。" +"There are precious few balloon animals in your future now." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135850,12 +133117,11 @@ msgstr "性奴隸" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"在逃命到安全處所的過程中, 你與你的主人因殘酷的命運分開了。現在你一無所有, 除了身上一套代表性奴榮光的緊身皮衣。不幸的是, 在末日中沒有什麼是安全的。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135866,12 +133132,11 @@ msgstr "性奴隸" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Early in the rush to safety, you were separated from your master by cruel " -"fate. Now you are on your own with nothing to your name but a suit of " -"really kinky black leather. Unfortunately, there's no safewords in the " +"In the rush to safety, you were separated from your master by cruel fate. " +"Now you are on your own, with nothing to your name but a suit of really " +"kinky black leather. Unfortunately, there are no safewords in the " "apocalypse." msgstr "" -"在逃命到安全處所的過程中, 你與你的主人因殘酷的命運分開了。現在你一無所有, 除了身上一套代表性奴榮光的緊身皮衣。不幸的是, 在末日中沒有什麼是安全的。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135910,10 +133175,11 @@ msgstr "御宅族" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." -msgstr "昨晚才跟朋友邊看動畫邊吃雞排, 準備隔天要去動漫大展。結果就發生災變。還好你有 \"萬全的準備\"。" +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135924,10 +133190,11 @@ msgstr "御宅族" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Late nights with friends watching anime and eating snacks has prepared you " -"for the premier anime convention in the Northeast. It just had to be the " -"day of the apocalypse. At least you were ready in case your costume tore." -msgstr "昨晚才跟朋友邊看動畫邊吃雞排, 準備隔天要去動漫大展。結果就發生災變。還好你有 \"萬全的準備\"。" +"After many late nights with friends watching anime and eating snacks, you " +"decided to make the trip to the premier anime convention in the Northeast. " +"Now zombies are eating everyone, and even worse, the convention is " +"cancelled! At least you were ready in case your costume tore." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135964,9 +133231,9 @@ msgstr "龐克搖滾男" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" -msgstr "末日來臨讓你瘋狂的夢想成真了。而今是無政府狀態, 在屍體上開趴的時間到了!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -135977,9 +133244,9 @@ msgstr "龐克搖滾女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The apocalypse has been your psychotic dream come true. Now that the system" -" is dead, it's time to party among the bones of the world!" -msgstr "末日來臨讓你瘋狂的夢想成真了。而今是無政府狀態, 在屍體上開趴的時間到了!" +"All those wicked songs about the apocalypse have come to life. Brutal! Now" +" that the system is dead, it's time to party among the bones of the world!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -135990,11 +133257,11 @@ msgstr "消防員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." -msgstr "作為首先反應的人員,你直接見證了內臟撕裂的末日恐怖景象。你被迫與你大部分的裝備和單位分開,你必須運用你手中僅有的斧頭與裝備來殺出血路。" +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136005,11 +133272,11 @@ msgstr "消防員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"As a first responder you were direct witness to the gut-wrenching horrors of" -" the apocalypse. Separated from most of your equipment and your unit while " -"on call, you were forced to fight your way to safety with little more than " -"your trusty iron and bunker gear to protect you." -msgstr "作為首先反應的人員,你直接見證了內臟撕裂的末日恐怖景象。你被迫與你大部分的裝備和單位分開,你必須運用你手中僅有的斧頭與裝備來殺出血路。" +"As a first responder, you were direct witness to the gut-wrenching horrors " +"of the apocalypse. Separated from most of your equipment and your unit " +"while on call, you were forced to fight your way to safety with little more " +"than your trusty iron and your bunker gear to protect you." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136020,7 +133287,7 @@ msgstr "地下樂團男" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -136033,7 +133300,7 @@ msgstr "地下樂團女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your ska band broke up after the drummer became a zombie, now you're alone " +"Your ska band broke up after the drummer became a zombie. Now you're alone " "in the Cataclysm with some cigarettes and your mp3 player." msgstr "" @@ -136046,9 +133313,9 @@ msgstr "郵差" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." -msgstr "你在送信時躲狗與地上亂丟玩具的技能現在派上用場了。" +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136059,9 +133326,9 @@ msgstr "郵差" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your skill at avoiding dogs and discarded children's toys while delivering " -"the mail gives you an edge in your new role as a survivor." -msgstr "你在送信時躲狗與地上亂丟玩具的技能現在派上用場了。" +"Neither snow nor rain nor heat nor dark of night stays you from delivering " +"the mail, but nobody said anything about aliens." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136072,8 +133339,9 @@ msgstr "囚犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -136085,8 +133353,9 @@ msgstr "囚犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"The Cataclysm gave you a chance to escape, but freedom comes with a steep " -"price." +"Your trial was contentious, but inevitably you found yourself behind bars. " +"The Cataclysm has offered you a chance to escape, but freedom may come with " +"a steep price." msgstr "" #: lang/json/professions_from_json.py @@ -136098,10 +133367,10 @@ msgstr "死刑犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." -msgstr "你曾是個連環殺手,準備走過通往行刑室的「綠色里程」。但是現在其他人都死了,而且真正的死亡應該只能由你的雙手來產生,所以你太適合這份工作了。" +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136112,10 +133381,10 @@ msgstr "死刑犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a serial killer ready to walk the green mile, but now everyone else" -" is dead, and since true death comes only from your hands, you're in for a " -"job." -msgstr "妳曾是個連環殺手,準備走過通往行刑室的「綠色里程」。但是現在其他人都死了,而且真正的死亡應該只能由妳的雙手來產生,所以妳太適合這份工作了。" +"You were a serial killer, ready to walk the green mile, but in a twist of " +"fate you're one of the few still alive. True death comes only from your " +"hands, so you're in for a job." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136128,7 +133397,7 @@ msgctxt "prof_desc_male" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -136142,7 +133411,7 @@ msgctxt "prof_desc_female" msgid "" "You had a genius plan to skim fractions of cents out of your company's " "accounts. This plan immediately failed and got you arrested. They said you" -" were too soft for prison, except right now they're dead and you're not." +" were too soft for prison, but guess what? They're dead, and you're not." msgstr "" #: lang/json/professions_from_json.py @@ -136182,8 +133451,9 @@ msgstr "政治犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -136195,8 +133465,9 @@ msgstr "政治犯" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Exposing what was going on in those labs was a noble idea. You insist you " -"could have stopped the Cataclysm if it weren't for that misdemeanor charge." +"You did your best to expose what was going on in those labs, but they caught" +" you and threw you in prison on trumped-up charges to silence you. Clearly," +" they should have listened." msgstr "" #: lang/json/professions_from_json.py @@ -136236,9 +133507,10 @@ msgstr "竊賊" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" -msgstr "你覺得這就是你的幸運日。如果城裡每個人都*死*了,闖空門還算是偷嗎?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136249,9 +133521,10 @@ msgstr "竊賊" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You thought this would be your lucky break. Does it count as breaking and " -"entering if everyone in town is undead?" -msgstr "你覺得這就是你的幸運日。如果城裡每個人都*死*了,闖空門還算是偷嗎?" +"This could be your lucky break. Plenty of loot to be pilfered, and no cops " +"to be seen. Does it count as breaking and entering if everyone in town is " +"undead?" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136262,12 +133535,9 @@ msgstr "生化男傭兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"通過一系列的痛苦和昂貴的手術, 你成了一個移動的生化武器, 作為傭兵, 你只服務於出價最高者。而今末日到來, 這些生化增強插件將是決定生死的關鍵。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136278,12 +133548,9 @@ msgstr "生化女傭兵" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Through a series of painful and expensive surgeries you became a walking " +"Through a series of painful and expensive surgeries, you became a walking " "bionic weapon, your services as a mercenary available to the highest bidder." -" Now that the world has ended, those bionic enhancements may spell the " -"difference between life and death." msgstr "" -"通過一系列的痛苦和昂貴的手術, 你成了一個移動的生化武器, 作為傭兵, 你只服務於出價最高者。而今末日到來, 這些生化增強插件將是決定生死的關鍵。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136296,11 +133563,9 @@ msgctxt "prof_desc_male" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"過去你迷戀於生化增強科技, 出入在誨暗黑街的地下生化診所, 裝了許多二手生化插件。世界繼續轉動, " -"而你渴望的人格還想要更多。你現在要到哪裡才能修生化插件?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136313,11 +133578,9 @@ msgctxt "prof_desc_female" msgid "" "Long ago your lifelong infatuation with bionic enhancement lead you into a " "shady world of back-alley bionic clinics and self-installed secondhand CBMs." -" The world has moved on but your posthuman hunger still cries out to be " -"fed; where will you get your bionic fix now?" +" Your posthuman hunger still cries out to be fed; where will you get your " +"bionic fix now?" msgstr "" -"過去你迷戀於生化增強科技, 出入在誨暗黑街的地下生化診所, 裝了許多二手生化插件。世界繼續轉動, " -"而你渴望的人格還想要更多。你現在要到哪裡才能修生化插件?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136329,11 +133592,9 @@ msgstr "生化怪人" msgctxt "prof_desc_male" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"你因生化插件誘發精神疾病, 造成你變成畸形的怪人, 在社會上沒有地位。曾經你只能躲在暗處, 現在你發現在這個淒涼的世界, 就算是怪物也能夠有一片天。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136345,11 +133606,9 @@ msgstr "生化怪人" msgctxt "prof_desc_female" msgid "" "Completely overtaken by bionic-induced psychosis, you are a deformed " -"posthuman monster who had no place in society. But now, where once you were" -" forced to hide in the shadows, you find in this new desolation a world " -"where even a creature such as yourself might find its niche." +"posthuman monster, forced to hide in the shadows. Amidst the desolation, " +"however, even a creature such as yourself might find its niche." msgstr "" -"你因生化插件誘發精神疾病, 造成你變成畸形的怪人, 在社會上沒有地位。曾經你只能躲在暗處, 現在你發現在這個淒涼的世界, 就算是怪物也能夠有一片天。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136360,9 +133619,10 @@ msgstr "律師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." -msgstr "現在不是抱怨律師費太少的時候了, 你的客戶要吃了你的腦子。但是, 你不知道到底哪個比較糟。" +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136373,9 +133633,10 @@ msgstr "律師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Now instead of complaining about your fees, your clients try to eat your " -"brain. You can't tell which one is worse though." -msgstr "現在不是抱怨律師費太少的時候了, 你的客戶要吃了你的腦子。但是, 你不知道到底哪個比較糟。" +"The jury were in the palm of your hand, but after the defendant tried to eat" +" your brain, you were forced to flee the courtroom in disgrace. Now nobody " +"seems to care about your objections." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136386,11 +133647,10 @@ msgstr "牧師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." -msgstr "當大災變來臨時。你盡了你的全力保護你教區內的信徒, 但是顯然, 只是祈禱是不夠的。現在他們都死了, 你應該要找到更切實的東西來保護自己。" +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136401,11 +133661,10 @@ msgstr "牧師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"When the apocalypse struck, you did everything you could to protect your " -"parish faithful, but it appears that prayers were not enough. Now that they" -" are all dead, you should probably find something more tangible to protect " -"you." -msgstr "當大災變來臨時。你盡了你的全力保護你教區內的信徒, 但是顯然, 只是祈禱是不夠的。現在他們都死了, 你應該要找到更切實的東西來保護自己。" +"Armageddon has come! You did everything you could to protect your parish " +"faithful, but it appears that prayers were not enough. Now that they are " +"all dead, you should probably find something more tangible to protect you." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136445,12 +133704,10 @@ msgstr "阿訇" msgctxt "prof_desc_male" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"你花費了許多時間在當地的清真寺, 習得先知與古蘭經上之言, 並帶領導當地的信徒們禱告。那時信徒們自各處來到這聆聽你的講解, " -"現在他們則是為了吃掉你的大腦而來。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136462,12 +133719,10 @@ msgstr "莫悉達" msgctxt "prof_desc_female" msgid "" "You spent much of your time prior to the apocalypse at the local mosque, " -"studying the words of the Prophet and the Quran, and guiding your community " -"in prayer. Back then they came from far and wide to listen to you, now they" +"studying the words of the Prophet and the Quran and guiding your community " +"in prayer. Back then they came from far and wide to listen to you; now they" " come to eat your brains." msgstr "" -"你花費了許多時間在當地的清真寺, 習得先知與古蘭經上之言, 並帶領導當地的信徒們禱告。那時信徒們自各處來到這聆聽你的講解, " -"現在他們則是為了吃掉你的大腦而來。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136533,11 +133788,10 @@ msgstr "傳教士" msgctxt "prof_desc_male" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"你投入你的人生致力於散佈福音, 穿梭於各個城鎮的巷弄之間。現在一切都完蛋了, 你沒辦法主持你的日常播客, 而那群不死的傢伙聽了你的佈道似乎也不怎麼感動。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136549,11 +133803,10 @@ msgstr "傳教士" msgctxt "prof_desc_female" msgid "" "You devoted your life to spreading the good word, always on the road, " -"traveling from town to town. Now, everything has gone to hell, you can't " -"host your daily podcast and the undead listening to your sermons don't seem " -"particularly moved." +"traveling from town to town. Now everything has gone to hell, you can't " +"host your daily podcast, and the undead don't seem particularly moved by " +"your sermons." msgstr "" -"你投入你的人生致力於散佈福音, 穿梭於各個城鎮的巷弄之間。現在一切都完蛋了, 你沒辦法主持你的日常播客, 而那群不死的傢伙聽了你的佈道似乎也不怎麼感動。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136564,9 +133817,9 @@ msgstr "初心者武道家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." -msgstr "當末日來臨時, 你才剛要去道場上第一堂課。其實你當初比較想去學游泳。" +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136577,9 +133830,9 @@ msgstr "初心者武道家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were on your way to the dojo for your first lesson when the world ended." -" And you really wanted to learn how to swim, too." -msgstr "當末日來臨時, 你才剛要去道場上第一堂課。其實你當初比較想去學游泳。" +"You've decided today is the day to take your first lesson at the local dojo." +" You'll be great at it, you're sure of it." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136642,9 +133895,9 @@ msgstr "拳擊手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." -msgstr "在大災變發生前, 你為你的生活而戰。現在你只為了繼續活下去。" +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136655,9 +133908,9 @@ msgstr "拳擊手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were training for the fight of your life before the Cataclysm struck. " -"Now you fight just to keep yourself alive." -msgstr "在大災變發生前, 你為你的生活而戰。現在你只為了繼續活下去。" +"Your rival challenged you to the fight of your life, but now you fight just " +"to keep yourself alive." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136669,9 +133922,9 @@ msgstr "披薩外送男" msgctxt "prof_desc_male" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -136684,9 +133937,9 @@ msgstr "披薩外送女" msgctxt "prof_desc_female" msgid "" "You were delivering the last pizza of the night to the local cryogenics lab " -"when the Cataclysm hit. Fleeing to the nearest shelter, you find yourself " -"with only your wits and some leftover pizza. And they didn't even leave a " -"tip!" +"when hungry zombies attempted to make a meal out of you. Fleeing for " +"safety, you find yourself with only your wits and some leftover pizza. And " +"they didn't even leave a tip!" msgstr "" #: lang/json/professions_from_json.py @@ -136698,10 +133951,10 @@ msgstr "考古學家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." -msgstr "正當你追隨去世爺爺日記上的線索, 尋找失落的史前廟宇遺蹟時, 大地發生了巨震… 心感不妙的你決定先去附近的避難所。" +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136712,10 +133965,10 @@ msgstr "考古學家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"While on your way to a long-lost temple following a clue from your dead " -"grandfather's journal, the ground started to shake uncontrollably. Getting " -"a bad feeling about the situation, you head to the nearest shelter." -msgstr "正當你追隨去世爺爺日記上的線索, 尋找失落的史前廟宇遺蹟時, 大地發生了巨震… 心感不妙的你決定先去附近的避難所。" +"Following a clue from your dead grandfather's journal, you made your way to " +"a long-lost temple, but then the ground started to shake uncontrollably. " +"You had a bad feeling about that, so you got out of there quickly." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136726,10 +133979,10 @@ msgstr "送報男孩" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." -msgstr "當你沿著日常路線投遞晨報時, 大災變來襲。那一大群的不死者似乎不怎麼重視最新消息, 但起碼你最信賴的自行車仍能正常運轉。" +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136740,10 +133993,10 @@ msgstr "送報女孩" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were delivering the morning paper along your usual route when the " -"Cataclysm struck. The undead hordes don't seem to value the latest news, " -"but at least your trusty bicycle is still in working order." -msgstr "當你沿著日常路線投遞晨報時, 大災變來襲。那一大群的不死者似乎不怎麼重視最新消息, 但起碼你最信賴的自行車仍能正常運轉。" +"You set out this morning to deliver the news of the apocalypse. The undead " +"hordes don't seem to value the latest news, but at least your trusty bicycle" +" is still in working order." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136754,13 +134007,11 @@ msgstr "直排輪玩家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"災變爆發之前你正在比賽。現在你其他的隊員都不幸喪生了, 要不因為是你天生就愛狂飆直排輪, 你也許就活不到現在。現實是殘酷的, " -"你究竟可以逃多久而不被殭屍逮到?" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136771,13 +134022,11 @@ msgstr "直排輪玩家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were hell on wheels prior to the apocalypse. Now the rest of your team " -"is dead, and you probably wouldn't have lived this long if not for your " -"penchant for high-speed violence. Things are looking grim; how long can you" -" race laps around the undead before you get blocked for good?" +"You were hell on wheels. Now the rest of your team is dead, and you " +"probably wouldn't have lived this long if not for your penchant for high-" +"speed violence. Things are looking grim; how long can you race laps around " +"the undead before you get blocked for good?" msgstr "" -"災變爆發之前你正在比賽。現在你其他的隊員都不幸喪生了, 要不因為是你天生就愛狂飆直排輪, 你也許就活不到現在。現實是殘酷的, " -"你究竟可以逃多久而不被殭屍逮到?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136788,9 +134037,9 @@ msgstr "農夫" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -136802,9 +134051,9 @@ msgstr "農家女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were making a living by raising crops, when the Cataclysm struck. Now, " -"with your trusty hoe and some seeds it's time to rebuild the Earth, one " -"plant at a time." +"A patch of soil, some water, and sunlight were all you ever needed; why " +"should things be any different now? With a handful of seeds and your trusty" +" hoe, it's time to rebuild the Earth, one plant at a time." msgstr "" #: lang/json/professions_from_json.py @@ -136816,12 +134065,10 @@ msgstr "國民警衛隊" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"災變爆發的時候, 你所屬的國民警衛隊單位立即緊急動員。在所有通訊中斷之前, 儘管你盡了最大努力, " -"但仍然無法跟你的同袍會合。現在只剩下你一人獨自對抗殭屍大軍了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136832,12 +134079,10 @@ msgstr "國民警衛隊" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Your National Guard unit was activated when the epidemic struck. Despite " -"your best efforts you did not manage to meet up with them before all " -"communications ceased and you found yourself alone amongst the dead." +"The government activated your National Guard unit to deal with the growing " +"epidemics. Despite your best efforts, you were unable to form up before all" +" communications ceased and you found yourself alone amongst the dead." msgstr "" -"災變爆發的時候, 你所屬的國民警衛隊單位立即緊急動員。在所有通訊中斷之前, 儘管你盡了最大努力, " -"但仍然無法跟你的同袍會合。現在只剩下你一人獨自對抗殭屍大軍了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136849,8 +134094,8 @@ msgstr "久經磨煉的拾荒者" msgctxt "prof_desc_male" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -136863,8 +134108,8 @@ msgstr "久經磨煉的拾荒者" msgctxt "prof_desc_female" msgid "" "One of the lucky few who escaped the Cataclysm, you made a life for yourself" -" on the ruins of others. Whether by force, guile, or luck, you've obtained " -"the best gear you could find." +" amidst the ruins of civilization. Whether through force, guile, or luck, " +"you've obtained the best gear you could find." msgstr "" #: lang/json/professions_from_json.py @@ -136876,11 +134121,11 @@ msgstr "不屈軍人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." -msgstr "你一定很注重在新兵訓練營的生存訓練, 否則你就不會活得比指揮鏈還要長久, 並發現自己處於這種困境。現在剩下的唯一任務就是生存。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136891,11 +134136,11 @@ msgstr "不屈軍人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You must have paid attention to your survival training in boot camp, " -"otherwise you would never have lived long enough to outlast the chain of " +"You must have paid attention to your survival training in boot camp; " +"otherwise, you would never have lived long enough to outlast the chain of " "command and find yourself in this predicament. The only mission left now is" " to survive." -msgstr "你一定很注重在新兵訓練營的生存訓練, 否則你就不會活得比指揮鏈還要長久, 並發現自己處於這種困境。現在剩下的唯一任務就是生存。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136906,11 +134151,10 @@ msgstr "商城保全" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"你是一名大賣場的保全。除了一些保全相關的基本訓練之外, 你沒有學到任何有用的技能。然而幸好你身上還攜帶著一些好夥伴, 電擊槍、警棍以及口袋刀。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136921,11 +134165,10 @@ msgstr "商城保全" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"A mall security guard. You don't have any useful skills, other than some " -"basic training for your job. You do however have your trusty tazer, baton, " -"and pocket knife." +"You spent dull nights guarding the local mall against teen hooligans and " +"petty thieves. Your job training didn't provide any terribly useful skills," +" but you do have your trusty tazer, baton, and pocket knife." msgstr "" -"妳是一名大賣場的保全。除了一些保全相關的基本訓練之外, 妳沒有學到任何有用的技能。然而幸好妳身上還攜帶著一些好夥伴, 電擊槍、警棍以及口袋刀。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136936,10 +134179,10 @@ msgstr "自然主義學家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." -msgstr "因為在荒野經歷了長年自我放逐的生活, 你對這片大自然有深刻的了解。雖然人類文明正面臨著終結, 不過對你倒是沒有什麼影響。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136950,10 +134193,10 @@ msgstr "自然主義學家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You have come to an understanding with Mother Nature over long years of " -"self-imposed exile in the wilderness. The world as they knew it might have " +"Over long years of self-imposed exile in the wilderness, you have come to an" +" understanding with Mother Nature. The world as they knew it might have " "ended for your forsaken species, but you can hardly tell the difference." -msgstr "因為在荒野經歷了長年自我放逐的生活, 你對這片大自然有深刻的了解。雖然人類文明正面臨著終結, 不過對你倒是沒有什麼影響。" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -136964,13 +134207,11 @@ msgstr "漁夫" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"你大部份時間都在沼澤裡釣魚。原本你很喜歡那些悅耳的昆蟲鳴叫聲, 但昆蟲突然長大許多而且變得對你不友善。現在的昆蟲鳴叫聲反而讓你有如驚弓之鳥, " -"你只希望釣起來的魚不會像這些變形昆蟲一樣噁心。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -136981,13 +134222,11 @@ msgstr "漁夫" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You spent most of your days just fishing in the swamps getting by quietly on" -" what you caught. You found the buzzing of insects enjoyable, but they got " -"bigger and more mean. Now their horrible noises have you spooked- you just " -"hope the fish aren't as nasty." +"You spent most of your days fishing in the swamp, getting by quietly on your" +" catch. You found the buzzing of insects enjoyable, but recently they've " +"gotten bigger and meaner. Now their horrible noises have you spooked - you " +"just hope the fish aren't as nasty." msgstr "" -"你大部份時間都在沼澤裡釣魚。原本你很喜歡那些悅耳的昆蟲鳴叫聲, 但昆蟲突然長大許多而且變得對你不友善。現在的昆蟲鳴叫聲反而讓你有如驚弓之鳥, " -"你只希望釣起來的魚不會像這些變形昆蟲一樣噁心。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137055,9 +134294,9 @@ msgstr "無人機操作者" msgctxt "prof_desc_male" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." -msgstr "你有一份替機器編寫程式的工作,像全自動街道清潔機、售報機器人和外送披薩無人機。現在,所有的無人機都掛著槍支,而非披薩。" +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137069,9 +134308,9 @@ msgstr "無人機操作者" msgctxt "prof_desc_female" msgid "" "You had a job programming machines such as automatic street cleaners, " -"newsbots and pizza delivery drones. Now all the drones carry guns instead " -"of pizza." -msgstr "你有一份替機器編寫程式的工作,像全自動街道清潔機、售報機器人和外送披薩無人機。現在,所有的無人機都掛著槍支,而非披薩。" +"newsbots, and pizza delivery drones. Bionic implants helped you control " +"them remotely. Now all the drones carry guns instead of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137082,9 +134321,10 @@ msgstr "滑板男孩" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." -msgstr "你愛玩滑板! 至少現在的大人們都不會叫你不准滑了。" +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137095,9 +134335,10 @@ msgstr "滑板女孩" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You love to skate! At least now the grown-ups aren't telling you where you " -"can't roll." -msgstr "你愛玩滑板! 至少現在的大人們都不會叫你不准滑了。" +"You love to skate! You've probably spent more time on a pair of blades than" +" off. Things have gotten pretty bad, but at least the grown-ups aren't " +"telling you where you can't roll." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137108,12 +134349,11 @@ msgstr "不良少年" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"你從來沒在乎過那群大人們所說的話, 也因而在校長辦公室耗了大半的人生。現在, 不需要大人來告訴你該怎麼做是你活著的唯一理由。天哪, 你今天真該翹課的。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137124,12 +134364,11 @@ msgstr "不良少女" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You never cared for grown-ups telling you what to do, and that's how you " -"ended up spending most of your days in the principal's office. Now, not " -"needing grown-ups to tell you what to do is the only reason you're alive. " -"Man, you really should've played hooky today." +"You never cared for grown-ups telling you what to do, so you ended up " +"spending quite a few days in the principal's office. Now, not needing " +"grown-ups to tell you what to do is the only reason you're alive. Man, you " +"really should've played hooky today." msgstr "" -"你從來沒在乎過那群大人們所說的話, 也因而在校長辦公室耗了大半的人生。現在, 不需要大人來告訴你該怎麼做是你活著的唯一理由。天哪, 你今天真該翹課的。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137171,12 +134410,10 @@ msgstr "生化學生" msgctxt "prof_desc_male" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"你的父母為了要讓你在每次考試時都能出類拔萃, 於是癡迷於對你植入各種生化插件, 只為了讓你變得更聰明並且過目不忘。而今, 你面臨的是最嚴峻的考驗, " -"你最好成功, 否則你就死定了。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137188,12 +134425,10 @@ msgstr "生化學生" msgctxt "prof_desc_female" msgid "" "Your parents were so obsessed with making sure you aced every test that they" -" had you outfitted with bionics to make you smarter and never forget " -"anything. And now, you are facing the most dire test yet, and once again " -"you had better succeed, or else." +" had you outfitted with bionics to enhance your intellect and memory. Now " +"you're facing the hardest test yet, and you're not sure if those are the " +"right kind of tools for the job." msgstr "" -"你的父母為了要讓你在每次考試時都能出類拔萃, 於是癡迷於對你植入各種生化插件, 只為了讓你變得更聰明並且過目不忘。而今, 你面臨的是最嚴峻的考驗, " -"你最好成功, 否則你就死定了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137204,9 +134439,10 @@ msgstr "躲避球選手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." -msgstr "你喜歡打躲避球, 在球場上沒能成功躲開球就代表著你出局了。而現在沒躲開可是會要你的命。別凸槌了。" +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137217,9 +134453,10 @@ msgstr "躲避球選手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You liked to play dodgeball, where failing to dodge the ball meant you were " -"out. Now failing to dodge threatens your life. Don't slip up." -msgstr "你喜歡打躲避球, 在球場上沒能成功躲開球就代表著你出局了。而現在沒躲開可是會要你的命。別凸槌了。" +"In dodgeball, failing to dodge meant taking a ball to the head and being out" +" of the game. In the Cataclysm, it means getting eaten by monsters. Don't " +"slip up." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137230,13 +134467,10 @@ msgstr "科學俱樂部成員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"你是學校科學社的社員, 而你現在感到心煩意亂, 就像當初學校不讓你玩些真正有趣的化學藥劑 (會讓東西爆炸那種) 時一樣。但起碼現在不會有人在你旁邊, " -"叫你不能做什麼。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137247,13 +134481,10 @@ msgstr "科學俱樂部成員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a member of the school science club, and right now you're as upset " -"as you've ever been that the school wouldn't let you play with the really " -"fun chemicals that make things go boom. At least now no one's around to " -"tell you that you can't." +"The school never let your club play with the really fun chemicals, the kind " +"that make things go boom, but there aren't any teachers around to enforce " +"the rules any more." msgstr "" -"你是學校科學社的社員, 而你現在感到心煩意亂, 就像當初學校不讓你玩些真正有趣的化學藥劑 (會讓東西爆炸那種) 時一樣。但起碼現在不會有人在你旁邊, " -"叫你不能做什麼。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137265,9 +134496,9 @@ msgstr "影音社社員" msgctxt "prof_desc_male" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." -msgstr "你是學校影音社的一個社員。你很確信你擁有的科技知識能夠幫助你生存。只是你還沒搞清楚到底要怎麼做出一個強大的死光射線裝置。" +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137279,9 +134510,9 @@ msgstr "影音社社員" msgctxt "prof_desc_female" msgid "" "You were a member of the school A/V club. You're sure there's some way you " -"can use your technical skills to help stay alive. You just haven't figured " -"out how to make an awesome death ray yet." -msgstr "你是學校影音社的一個社員。你很確信你擁有的科技知識能夠幫助你生存。只是你還沒搞清楚到底要怎麼做出一個強大的死光射線裝置。" +"can use your technical skills to help you stay alive. You just haven't " +"figured out how to make an awesome death ray yet." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137292,10 +134523,10 @@ msgstr "老師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." -msgstr "你大半輩子都在教這些小朋友, 而他們通常都很聽你的話。然而, 殭屍才不會乖乖聽從你的教導。" +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137306,10 +134537,10 @@ msgstr "老師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've been teaching kids for the whole of your life, and they've mostly " -"listened to your teachings. However, the dead won't write out lines for " -"eating you alive." -msgstr "你大半輩子都在教這些小朋友, 而他們通常都很聽你的話。然而, 殭屍才不會乖乖聽從你的教導。" +"You've been teaching kids all your life, experiencing the joy and " +"aggravation of imparting knowledge to young minds. If zombies have any " +"interest in education, they're not showing it." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137320,12 +134551,10 @@ msgstr "攝影記者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"在大災變之前你是位自由業的攝影記者。你有機會成為第一位報導大災變的記者, 但現在要找到發行人可是難上加難。你設法握緊你的相機, 希望能拍到一些夢幻照片。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137336,12 +134565,10 @@ msgstr "攝影記者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were a freelance photojournalist before the end. You have a chance to " -"be the first journalist to cover the apocalypse, though finding a publisher " -"seems more difficult a prospect than usual. You managed to hold onto your " -"camera, hopefully you can get some fantastic shots." +"Covering the apocalypse up close could make your career, though finding a " +"publisher seems more difficult a prospect than usual. You managed to hold " +"onto your camera - hopefully you can get some fantastic shots." msgstr "" -"在大災變之前你是位自由業的攝影記者。你有機會成為第一位報導大災變的記者, 但現在要找到發行人可是難上加難。你設法握緊你的相機, 希望能拍到一些夢幻照片。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137352,9 +134579,10 @@ msgstr "健身房教練" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." -msgstr "在教導完討厭運動的小孩後, 這些殭屍居然不聽從你的哨音。" +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137365,9 +134593,10 @@ msgstr "健身房教練" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"After a career of teaching kids the art of sports they mostly hate, the " -"zombies around you refuse to do laps, even at the blow of your whistle." -msgstr "在教導完討厭運動的小孩後, 這些殭屍居然不聽從你的哨音。" +"It was hard enough getting kids to run laps without having to worry about " +"them trying to eat your brains. Zombies won't even line up when you blow " +"your whistle." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137378,12 +134607,10 @@ msgstr "露營者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"在這一切土崩瓦解前, 你總是喜歡在荒野遠足和露營。無腦者搶你的包並在警報器響起時逃跑。世界可能毀了, 但你準備建立家園, 無論如何你可能會找到自我。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137394,12 +134621,10 @@ msgstr "露營者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You always enjoyed hiking and camping in the wilderness before everything " -"fell apart, so it was a no-brainer to grab your bag and run when the sirens " -"sounded. The world may be ruined, but you're prepared to make a home " -"wherever you may find yourself." +"You always enjoyed hiking and camping in the wilderness, so it was a no-" +"brainer to grab your bag and run when the sirens sounded. The cities are " +"overrun, but you're prepared to make a home wherever you may find yourself." msgstr "" -"在這一切土崩瓦解前, 你總是喜歡在荒野遠足和露營。無腦者搶你的包並在警報器響起時逃跑。世界可能毀了, 但你準備建立家園, 無論如何你可能會找到自我。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137411,8 +134636,8 @@ msgstr "礦工" msgctxt "prof_desc_male" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." -msgstr "你是個礦工, 不是小人物! 你的水壺沒水了、你的手持式鑿岩機沒油了, 而你將最後一組電池放入你的採礦帽裡…" +" gas, and you're on your last pair of batteries for your mining helmet…" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137424,8 +134649,8 @@ msgstr "礦工" msgctxt "prof_desc_female" msgid "" "You're a miner, not a minor! Your canteen is dry, your jackhammer is out of" -" gas, and you're on your last pair of batteries for your mining helmet..." -msgstr "你是個礦工, 不是小人物! 你的水壺沒水了、你的手持式鑿岩機沒油了, 而你將最後一組電池放入你的採礦帽裡…" +" gas, and you're on your last pair of batteries for your mining helmet…" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137436,8 +134661,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -137449,8 +134675,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Before this all began you were having the time of your life at your dream " -"job, blowing things up. Now you're finally allowed to do it full time. " +"Before this all began, you were having the time of your life at your dream " +"job: blowing stuff up. The Cataclysm means you're finally allowed to do it " +"full time. " msgstr "" #: lang/json/professions_from_json.py @@ -137490,9 +134717,10 @@ msgstr "遊客" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" -msgstr "你來到這裡打算品味新英格蘭, 現在你只希望新英格蘭不會吞噬你!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137503,9 +134731,10 @@ msgstr "遊客" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You came here to get a taste of New England; Now you hope New England won't " -"get a taste of you!" -msgstr "你來到這裡打算品味新英格蘭, 現在你只希望新英格蘭不會吞噬你!" +"This seemed like a great place for a holiday, but you're starting to regret " +"ever leaving home. You came here to get a taste of New England, but New " +"England keeps trying to get a taste of you!" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137516,9 +134745,10 @@ msgstr "赤裸羔羊" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." -msgstr "你正在樹林裡拍攝真人實境秀節目,演員和工作人員似乎都變成了殭屍。 看起來現在是真的了......" +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137529,9 +134759,10 @@ msgstr "赤裸羔羊" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were out filming a reality TV show in the woods and the cast and crew " -"all seemed to have turned into zombies. Looks like it's for real now..." -msgstr "你正在樹林裡拍攝真人實境秀節目,演員和工作人員似乎都變成了殭屍。 看起來現在是真的了......" +"You were out filming a reality TV show, naked in the woods. Strangely, the " +"cast and crew all seem to have turned into zombies, which is pretty bad " +"timing for you. Looks like it's for real this time…" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137543,12 +134774,10 @@ msgstr "增強行助理" msgctxt "prof_desc_male" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"當仿生學首次出現時,你很快就會將它們帶入你的職業生涯,並花費你的時間來監督它們的安裝。 " -"作為世界上為數不多的能夠校準全自動外科醫生的非殭屍之一,現在世界已經終結,你的技能可能會派上用場。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137560,12 +134789,10 @@ msgstr "增強行助理" msgctxt "prof_desc_female" msgid "" "When bionics first emerged, you were quick to make them into your career, " -"and spent your days overseeing their installation. As one of the few non-" -"zombies in the world that can calibrate an Autodoc, your skills might come " -"in handy now that the world is over." +"and spent your days overseeing their installation. That makes you one of " +"the few non-zombies in the world that can calibrate an Autodoc, which might " +"come in handy." msgstr "" -"當仿生學首次出現時,你很快就會將它們帶入你的職業生涯,並花費你的時間來監督它們的安裝。 " -"作為世界上為數不多的能夠校準全自動外科醫生的非殭屍之一,現在世界已經終結,你的技能可能會派上用場。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137576,12 +134803,11 @@ msgstr "遊戲主持人" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"每個星期嘗試將一群貓集合到一個地點,這已經教會你一些事情:知難而退會有好結果,並且要相信自己的直覺。因此,當有兩個玩家沒出現,而另外兩個又想吃掉你的時候,你就放棄了。也許你能在這世界的廢墟中找到一些新玩家。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137592,12 +134818,11 @@ msgstr "遊戲主持人" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"Trying to herd cats into getting into one place every week has taught you " -"something: it's usually better to cut your losses and trust your gut. For " -"that reason, when you had two no-shows and the other two tried to eat you, " -"you ditched. Maybe you can find some new players in the ruins of the world." +"Trying to herd cats into meeting up every week has taught you something: " +"it's usually better to cut your losses and trust your gut. For that reason," +" when you had two no-shows and the other two tried to eat you, you ditched." +" Maybe you can find some new players in the ruins of the world." msgstr "" -"每個星期嘗試將一群貓集合到一個地點,這已經教會妳一些事情:知難而退會有好結果,並且要相信自己的直覺。因此,當有兩個玩家沒出現,而另外兩個又想吃掉妳的時候,妳就放棄了。也許妳能在這世界的廢墟中找到一些新玩家。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137609,12 +134834,10 @@ msgstr "生化遊戲主持人" msgctxt "prof_desc_male" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"你以運氣或意志大賺了一筆,並為世界上大多數彼此非常熟稔的人們主持了一些遊戲。你有資格寵愛玩家們,而且也就這麼做了。你安裝了生化插件,使自己更聰明,並記住了整本遊戲手冊。希望現在這些知識能對你有所幫助。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137626,12 +134849,10 @@ msgstr "生化遊戲主持人" msgctxt "prof_desc_female" msgid "" "You came into a large fortune, through luck or will, and hosted games for " -"people that most of the world knew on a first-name basis. You could afford " -"to spoil your players, and so you did. You invested in bionics to make you " -"smarter, and memorized the entire handbook. Let's hope that knowledge helps" -" you now." +"world-famous celebrities. You could afford to spoil your players, and so " +"you did. You invested in bionics to make you smarter and memorized the " +"entire handbook. Let's hope that knowledge helps you now." msgstr "" -"妳以運氣或意志大賺了一筆,並為世界上大多數彼此非常熟稔的人們主持了一些遊戲。妳有資格寵愛玩家們,而且也就這麼做了。妳安裝了生化插件,使自己更聰明,並記住了整本遊戲手冊。希望現在這些知識能對妳有所幫助。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137642,9 +134863,9 @@ msgstr "動物園管理員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." -msgstr "你在休假時被叫來餵食動物園的動物們,因為你的同事因某種原因都沒來工作。" +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137655,9 +134876,9 @@ msgstr "動物園管理員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were called in on your day off to feed the animals at the zoo because " -"none of your coworkers showed up for work for one reason or another." -msgstr "妳在休假時被叫來餵食動物園的動物們,因為妳的同事因某種原因都沒來工作。" +"You were called in on your day off to feed the animals at the zoo. For some" +" reason, none of your coworkers bothered showing up for work today." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137668,8 +134889,8 @@ msgstr "高爾夫球手" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" #: lang/json/professions_from_json.py @@ -137681,8 +134902,8 @@ msgstr "高爾夫球手" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You decided to get away from the family for the day to do a little golfing " -"by yourself." +"You decided to get away from the family for the day, so you headed to the " +"fairway for a nice relaxing round of golf." msgstr "" #: lang/json/professions_from_json.py @@ -137722,11 +134943,10 @@ msgstr "現代浪人" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 @@ -137738,41 +134958,38 @@ msgstr "現代女浪人" #: 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." +"You were always an inexplicable sight in town, with your funny hair and odd " +"Japanese clothes. 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 "Competetive Fencer" +msgid "Competitive Fencer" msgstr "" -#. ~ Profession (male Competetive Fencer) description +#. ~ Profession (male Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" -msgid "Competetive Fencer" +msgid "Competitive Fencer" msgstr "" -#. ~ Profession (female Competetive Fencer) description +#. ~ Profession (female Competitive Fencer) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were an avid sport fencer, always practicing at local clubs and " -"competing in tournaments. You were on your way to have a few bouts at the " -"club when the world ended. Now you're in your most important tournament, " -"the refs are all dead, and none of your opponents follow the rules." +"Years of training prepared you for the competitive fencing circuit, but your" +" latest tournament was cut short when zombies invaded the piste. The " +"referee was eaten, so you're not sure if the rules are still in play." msgstr "" #: lang/json/professions_from_json.py @@ -137812,9 +135029,9 @@ msgstr "畜牧員" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." -msgstr "你一生中大部分時間都用在畜養牛跟馬,現在讓我們繼續看下去。" +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137825,9 +135042,9 @@ msgstr "畜牧員" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You've raised cows or horses most of your life, now we'll see what happens " -"next." -msgstr "妳一生中大部分時間都用在畜養牛跟馬,現在讓我們繼續看下去。" +"Taking care of cows, horses, and other animals is your passion, but the ways" +" things are going, this isn't going to be just another day at the ranch." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137838,10 +135055,10 @@ msgstr "巡迴樂團經理" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." -msgstr "你只在聚光燈後工作,確保著所有表演者能獲得所需,並讓一切運作順暢。這些日子風險越來越高了,但是表演還是要繼續下去。" +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137852,10 +135069,10 @@ msgstr "巡迴樂團女經理" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You worked just outside of the limelight, ensuring that the performers got " -"what they needed and that everything ran smoothly. The stakes are higher " -"these days, but the show must go on." -msgstr "妳只在聚光燈後工作,確保著所有表演者能獲得所需,並讓一切運作順暢。這些日子風險越來越高了,但是表演還是要繼續下去。" +"You've always worked just outside of the limelight, carrying and fixing the " +"equipment and ensuring that the performers got what they needed. The show " +"must go on." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137866,10 +135083,10 @@ msgstr "音樂家" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." -msgstr "大災變來襲時,你正要登台表演。一陣恐慌間你無法拿太多東西,但至少你背上還有把電吉他。" +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -137880,10 +135097,10 @@ msgstr "音樂家" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were just about to hit the stage when the Cataclysm struck. You weren't" -" able to grab much during the panic, but at least you have your loaded six " -"string on your back." -msgstr "大災變來襲時,妳正要登台表演。一陣恐慌間你無法拿太多東西,但至少妳背上還有把電吉他。" +"You nailed your solo, but the audience erupted into screams instead of " +"applause. You weren't able to grab much during the panic, but at least you " +"have your loaded six string on your back." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -137895,7 +135112,7 @@ msgstr "" msgctxt "prof_desc_male" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -137908,7 +135125,7 @@ msgstr "" msgctxt "prof_desc_female" msgid "" "At the local mall, you saw a sign advertising a discount on survival kits. " -"You bought one, more for show than for actual use. Now, it's all you have." +"You bought one, more for show than for actual use. Now it's all you have." msgstr "" #: lang/json/professions_from_json.py @@ -137922,7 +135139,8 @@ msgctxt "prof_desc_male" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -137936,7 +135154,8 @@ msgctxt "prof_desc_female" msgid "" "You made your living on Wild West exhibitions and shows, impressing tourists" " with your displays of marksmanship. But that world has ended, so you took " -"your trusty 6-shooter and wandered into a world where it's always high noon." +"your trusty six-shooter and wandered into a world where it's always high " +"noon." msgstr "" #: lang/json/professions_from_json.py @@ -137948,10 +135167,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -137963,10 +135182,10 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You were living the high life, spending your parents money without a care in" -" the world. You were at one of your usual crazy parties when the guests " -"became hungry for more than your drugs. You still have a chance to use the " -"last symbol of your luxurious life - your sport car - and get far away." +"You were living the high life, spending your parents' money without a care " +"in the world. At one of your usual crazy parties, the guests became hungry " +"for more than drugs and booze, but you still have a chance to use the last " +"symbol of your luxurious life - your sports car - and get far away." msgstr "" #: lang/json/professions_from_json.py @@ -138311,6 +135530,40 @@ msgid "" " seems that your combat skills might come useful once again." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (male Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Bionic Operator" +msgstr "" + +#. ~ Profession (female Bionic Operator) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You worked as a mercenary across six continents for a dozen corps. A VP at " +"the last corp decided he wanted to put you on retainer and you agreed to a " +"three month gig in return for some additional bionics. You woke up with an " +"extra bionic, a cranial bomb that needed to be reset every month or so or it" +" blows up. Now you're free until the bomb goes off. Maybe you'll find " +"someone who can remove it." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "CRIT ROTC Member" @@ -139391,256 +136644,6 @@ msgid "" "find some other use." msgstr "在最近的大災變中,你發現的在測試中作弊的方式可能需要找到其他用途。" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Brave of the King" -msgstr "國王的勇士" - -#. ~ Profession (male Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Brave of the King" -msgstr "國王的勇士" - -#. ~ Profession (female Brave of the King) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Elite infantry of ancient Egypt and bodyguards of the Pharaoh. While armor " -"was uncommon due to desert conditions, such equipment did see increased " -"usage during the New Kingdom period." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hoplite" -msgstr "方陣兵" - -#. ~ Profession (male Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "方陣兵起源於希臘城邦, 擅長馬其頓方陣。他們受過良好的方陣戰訓練, 但是被突破後的單打上比較不利。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hoplite" -msgstr "方陣兵" - -#. ~ Profession (female Hoplite) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Heavy infantry of the ancient Greek city-states, before the shift towards " -"the Macedonean phalanx. Well-trained for combat in formation, but less " -"effective when outmaneuvered or on broken ground." -msgstr "方陣兵起源於希臘城邦, 擅長馬其頓方陣。他們受過良好的方陣戰訓練, 但是被突破後的單打上比較不利。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Legionary" -msgstr "軍團兵" - -#. ~ Profession (male Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "羅馬重裝兵, 在經過訓練後會配發標準的裝備。擅長使用飛矛跟劍, 他們也因擅長戰地工事而出名。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Legionary" -msgstr "軍團兵" - -#. ~ Profession (female Legionary) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Roman heavy infantry, after the military reforms that standardized the " -"legion's equipment. Trained to act in formation with javelin and sword, " -"well-known for their field fortifications as well." -msgstr "羅馬重裝兵, 在經過訓練後會配發標準的裝備。擅長使用飛矛跟劍, 他們也因擅長戰地工事而出名。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Viking" -msgstr "維京人" - -#. ~ Profession (male Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "這些臭名昭彰的海盜、掠奪者以及探險家來自有名的斯堪地那維亞諸國。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Viking" -msgstr "維京人" - -#. ~ Profession (female Viking) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The infamous pirates of the early medieval period, raiders and explorers " -"from various Scandinavian countries." -msgstr "這些臭名昭彰的海盜、掠奪者以及探險家來自有名的斯堪地那維亞諸國。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Man-at-Arms" -msgstr "重裝士兵" - -#. ~ Profession (Man-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "歐洲各國的中世紀重騎兵, 無論是否為貴族出生。雖然騎士傳統上都是重裝士兵, 但不是每個重裝士兵都是騎士。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Woman-at-Arms" -msgstr "女性重裝士兵" - -#. ~ Profession (Woman-at-Arms) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The medieval heavy cavalry of various countries in Europe, whether noble-" -"born or of common blood. While knights traditionally were men-at-arms, not " -"every man-at-arms was a knight." -msgstr "歐洲各國的中世紀重騎兵, 無論是否為貴族出生。雖然騎士傳統上都是重裝士兵, 但不是每個重裝士兵都是騎士。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Horse Archer" -msgstr "騎射手" - -#. ~ Profession (male Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "蒙古帝國著名的騎兵。他們最有名的就是騎射戰術。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Horse Archer" -msgstr "騎射手" - -#. ~ Profession (female Horse Archer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"The famed light cavalry of the Mongol Empire. Best known for their skill as" -" mounted archers." -msgstr "蒙古帝國著名的騎兵。他們最有名的就是騎射戰術。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Samurai" -msgstr "武士" - -#. ~ Profession (male Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "日本封建時代的武士貴族。初期的武士是馬術和弓術大師, 到了後來以劍術聞名於世。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Samurai" -msgstr "武士" - -#. ~ Profession (female Samurai) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Warrior nobility of feudal Japan. Known originally as masters of the horse " -"and bow, they become famous for their swordsmanship in later eras." -msgstr "日本封建時代的武士貴族。初期的武士是馬術和弓術大師, 到了後來以劍術聞名於世。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Wanderer" -msgstr "流浪者" - -#. ~ Profession (male Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "你總是喜歡開闊天空的舒適, 遠離現代生活的複雜性。從你最後接觸文明的時候看來, 現在所有事情已經改變了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Wanderer" -msgstr "流浪者" - -#. ~ Profession (female Wanderer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You always preferred the comfort of the open sky, far from the complexities " -"of modern life. Though from the looks of it, things have changed since last" -" time you've been anywhere near civilization." -msgstr "你總是喜歡開闊天空的舒適, 遠離現代生活的複雜性。從你最後接觸文明的時候看來, 現在所有事情已經改變了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Prehistoric Hunter" -msgstr "史前獵人" - -#. ~ Profession (male Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"一個與時代不合的史前人類, 被困在一個陌生而恐怖的世界。從前狩獵採集的生活不容易, 但至少你不需要對上活死人, 也有族人在旁。在這裡, 你能靠你自己了。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Prehistoric Hunter" -msgstr "史前獵人" - -#. ~ Profession (female Prehistoric Hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"An out-of-place living relic of prehistory, stranded in an unfamiliar and " -"terrifying world. Life as a hunter-gatherer was hard, but at least you " -"didn't have to fight the living dead, and you had your kin to stand beside " -"you. Here, you're on your own." -msgstr "" -"一個與時代不合的史前人類, 被困在一個陌生而恐怖的世界。從前狩獵採集的生活不容易, 但至少你不需要對上活死人, 也有族人在旁。在這裡, 你能靠你自己了。" - #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sugar Boy" @@ -139667,754 +136670,6 @@ msgid "" "You have your whole life ahead of you and it's gonna be sweet!" msgstr "" -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Fighter" -msgstr "戰士" - -#. ~ Profession (male Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "一名久經戰場洗練, 精通武器、裝甲與戰鬥技巧的大師。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Fighter" -msgstr "戰士" - -#. ~ Profession (female Fighter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A master of arms and armor and a fearsome martial combatant; you are a " -"fighter, forged in warfare and tempered on the battlefield." -msgstr "一名久經戰場洗練, 精通武器、裝甲與戰鬥技巧的大師。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Rogue" -msgstr "流氓" - -#. ~ Profession (male Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Rogue" -msgstr "街頭混混" - -#. ~ Profession (female Rogue) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A street urchin skilled in legerdemain and deadly with a blade; you are a " -"rogue, a resourceful trickster and master thief." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Barbarian" -msgstr "野蠻人" - -#. ~ Profession (male Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "你是一名野蠻人, 凜冽北境Crom的子民, 就如同他們稱為家鄉的未開化之地一樣, 強大且令人敬畏。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Barbarian" -msgstr "野蠻人" - -#. ~ Profession (female Barbarian) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A child of Crom hailing from the bitter north; you are a barbarian, as " -"fearsome and formidable as the untamed land you call home." -msgstr "你是一名野蠻人, 凜冽北境Crom的子民, 就如同他們稱為家鄉的未開化之地一樣, 強大且令人敬畏。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Skald" -msgstr "吟遊詩人" - -#. ~ Profession (male Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "一個來自北部高地, 神秘的流浪詩人與說書人。你是吟遊詩人、高尚的野蠻人、知識守護者、通靈知秘者。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Skald" -msgstr "吟遊詩人" - -#. ~ Profession (female Skald) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A mysterious wandering minstrel and storyteller hailing from the northern " -"highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" -" spirits." -msgstr "一個來自北部高地, 神秘的流浪詩人與說書人。你是吟遊詩人、高尚的野蠻人、知識守護者、通靈知秘者。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Ranger" -msgstr "遊俠" - -#. ~ Profession (male Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "你是一名遊俠, 對箭術相當精通, 少數可以在森林闖蕩而不迷失方向的專家。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Ranger" -msgstr "遊俠" - -#. ~ Profession (female Ranger) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"One of the few who wander but are never lost; you are a ranger, wise in the " -"ways of the forest and deadly with a bow." -msgstr "你是一名遊俠, 對箭術相當精通, 少數可以在森林闖蕩而不迷失方向的專家。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Monk" -msgstr "武僧" - -#. ~ Profession (male Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "你是一名武僧, 奉守著苦行的紀律, 對赤手搏鬥具有廣泛的知識。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Monk" -msgstr "武僧" - -#. ~ Profession (female Monk) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Servant to an exotic order of ascetics; you are a monk, a pious devotee with" -" extensive knowledge of unarmed combat." -msgstr "你是一名武僧, 奉守著苦行的紀律, 對赤手搏鬥具有廣泛的知識。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Knight" -msgstr "騎士" - -#. ~ Profession (male Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "誓死捍衛國土。你是一位騎士, 一個受過教育的武士, 從小以光榮戰鬥的方式培訓。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Knight" -msgstr "騎士" - -#. ~ Profession (female Knight) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Sworn defender of the land; you are a knight, an educated warrior trained " -"since childhood in the ways of honorable combat." -msgstr "誓死捍衛國土。你是一位騎士, 一個受過教育的武士, 從小以光榮戰鬥的方式培訓。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Sorcerer" -msgstr "術士" - -#. ~ Profession (Sorcerer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "鑽研古代禁忌知識的狡邪研究者。你是巫師, 祕法 (生化技術) 這門藝術的操縱者。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Sorceress" -msgstr "女巫" - -#. ~ Profession (Sorceress) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"A wise student of ancient and forbidden knowledge; you are a wizard, a " -"mystical practitioner of the (bionic) arcane arts." -msgstr "鑽研古代禁忌知識的狡邪研究者。妳是巫師, 祕法 (生化技術) 這門藝術的操縱者。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-Hacker" -msgstr "" - -#. ~ Profession (male Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-Hacker" -msgstr "" - -#. ~ Profession (female Robo-Hacker) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Before the end, your hobby was illegally reprogramming and repurposing " -"commercial robots, but you never thought your survival might depend on it." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Engineer" -msgstr "" - -#. ~ Profession (male Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Engineer" -msgstr "" - -#. ~ Profession (female Robotics Engineer) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a low-level engineer at a robotics manufacturer. The management " -"kept telling you putting flamethrowers on manhacks was 'unnecessary' and " -"'too dangerous,' but there's nothing to stop you now." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robotics Prodigy" -msgstr "" - -#. ~ Profession (male Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robotics Prodigy" -msgstr "" - -#. ~ Profession (female Robotics Prodigy) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You've been building robots since you could hold a soldering iron, and you " -"don't intend to let the end of the world stop that from continuing." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robot Adoptee" -msgstr "" - -#. ~ Profession (male Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robot Adoptee" -msgstr "" - -#. ~ Profession (female Robot Adoptee) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"During the riots a military robot came out of nowhere to rescue you. Maybe " -"it thinks you're someone important, who knows." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Robo-hunter" -msgstr "" - -#. ~ Profession (male Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Robo-hunter" -msgstr "" - -#. ~ Profession (female Robo-hunter) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You paid a local hacker to build you a robotic hunting dog. It's almost as " -"good as the real thing, but it doesn't respond well to being pet." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (male Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Special Operator" -msgstr "" - -#. ~ Profession (female Bionic Special Operator) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Once bionic augmentation proved safe, you were chosen for a top secret " -"soldier augmentation program. As if being a top-tier special forces " -"operator before the procedure wasn't enough, your new enhancements allow you" -" to handle any combat scenario be it human or not." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Seasoned Tourist" -msgstr "老練遊客" - -#. ~ Profession (male Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "你渴望冒險、追求美食, 還有可觀的收入。你到過不少地方旅行。你來到這裡打算品味新英格蘭, 現在你只希望新英格蘭不會吞噬你!" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Seasoned Tourist" -msgstr "老練遊客" - -#. ~ Profession (female Seasoned Tourist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Due to your thirst for adventure, hunger for good food, and disposable " -"income, you have been able to travel extensively. You've traveled here to " -"get a taste of New England; now you hope New England won't get a taste of " -"you!" -msgstr "你渴望冒險、追求美食, 還有可觀的收入。你到過不少地方旅行。你來到這裡打算品味新英格蘭, 現在你只希望新英格蘭不會吞噬你!" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Post-Human Cyborg" -msgstr "廢土生化人" - -#. ~ Profession (male Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Post-Human Cyborg" -msgstr "廢土生化人" - -#. ~ Profession (female Post-Human Cyborg) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"As a wealthy trans-humanist you decided to put yourself on the frontline of " -"augmentative technology to bring forth the future. You are now a walking " -"example of what humanity could have become." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Janitor" -msgstr "清潔員" - -#. ~ Profession (male Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "打掃巧克力包裝和刮掉桌下的口香糖, 這是你賴以為生的工作。而現在你能做的事只剩下一件, 把那些死者的大腦清乾淨。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Janitor" -msgstr "清潔員" - -#. ~ Profession (female Janitor) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You earned a living from sweeping up chocolate wrappers and picking chewing " -"gum from under tables. Now the only thing you'll be sweeping are the brains" -" of the dead." -msgstr "打掃巧克力包裝和刮掉桌下的口香糖, 這是你賴以為生的工作。而現在你能做的事只剩下一件, 把那些死者的大腦清乾淨。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Poor Student" -msgstr "窮學生" - -#. ~ Profession (male Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"你來自一戶低收入家庭, 且因身上穿的二手舊衣以及學校食堂特別提供的免費午餐而受到他人恥笑。更糟的是, " -"你破爛的舊背包終於在最糟糕的時間點解體了。至少現在沒有人會去嘲笑你。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Poor Student" -msgstr "窮學生" - -#. ~ Profession (female Poor Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You come from a low-income family, and got mocked for your old hand-me-down " -"clothes and for getting free school lunches in the cafeteria. Even worse, " -"your ratty old backpack finally fell apart at the worst time. At least no " -"one's mocking you now." -msgstr "" -"你來自一戶低收入家庭, 且因身上穿的二手舊衣以及學校食堂特別提供的免費午餐而受到他人恥笑。更糟的是, " -"你破爛的舊背包終於在最糟糕的時間點解體了。至少現在沒有人會去嘲笑你。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Elementary Student" -msgstr "小學生" - -#. ~ Profession (male Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "你只是個孩子, 現在世界已經變成了你所做的噩夢之一。你所仰仗的大人們都死了--或者死不了--。現在, 你要怎麼辦?" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Elementary Student" -msgstr "小學生" - -#. ~ Profession (female Elementary Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You're just a kid, and now the world has turned into something out of one of" -" your bad dreams. The grown-ups you relied on are all dead--or undead--now." -" What are you going to do?" -msgstr "你只是個孩子, 現在世界已經變成了你所做的噩夢之一。你所仰仗的大人們都死了--或者死不了--。現在, 你要怎麼辦?" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Hockey Player" -msgstr "曲棍球選手" - -#. ~ Profession (male Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "在你隊上其他球員變成殭屍之前, 你是小聯盟的曲棍球球員。你只剩下自己和一身的曲棍球裝備來對付殭屍, 但是至少你能用暴力的犯規動作攻擊他們。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Hockey Player" -msgstr "曲棍球選手" - -#. ~ Profession (female Hockey Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a minor-league hockey goalie before the rest of your team became " -"zombies. It's just you and your hockey equipment versus the undead, but at " -"least you can cross-check them now." -msgstr "在你隊上其他球員變成殭屍之前, 你是小聯盟的曲棍球球員。你只剩下自己和一身的曲棍球裝備來對付殭屍, 但是至少你能用暴力的犯規動作攻擊他們。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Baseball Player" -msgstr "棒球選手" - -#. ~ Profession (male Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Baseball Player" -msgstr "棒球選手" - -#. ~ Profession (female Baseball Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were a batter on a local minor league team before the Cataclysm. You " -"escaped with your equipment, but how long can you survive until your innings" -" are up?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Football Player" -msgstr "美式足球選手" - -#. ~ Profession (male Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "你是本地橄欖球隊的明星, 受到隊友的愛戴與粉絲的崇拜。現在他們只愛你的腦子了。你還好還穿著笨重的美式足球裝備。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Football Player" -msgstr "美式足球選手" - -#. ~ Profession (female Football Player) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were the star player for the local football team, adored by teammates " -"and fans alike. Now they just adore your brain. You've still got your " -"bulky football gear on." -msgstr "你是本地橄欖球隊的明星, 受到隊友的愛戴與粉絲的崇拜。現在他們只愛你的腦子了。你還好還穿著笨重的美式足球裝備。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Preppy Student" -msgstr "預科生" - -#. ~ Profession (male Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"你的父母都是忙碌的重要人士, 他們希望你能具備充分優勢, 好讓你變得 \"成功\", 不論那能代表什麼。他們要是曾讓你體驗過童年, " -"或曾向你表達過他們的愛就好了, 但無論是哪個你現在肯定都不可能感受到。" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Preppy Student" -msgstr "預科生" - -#. ~ Profession (female Preppy Student) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your parents were busy, important people, who wanted you to have every " -"advantage and pushed you to be \"successful,\" whatever that meant. If only" -" they'd ever let you experience childhood, or ever shown you their love. " -"You're certainly not getting either one now." -msgstr "" -"你的父母都是忙碌的重要人士, 他們希望你能具備充分優勢, 好讓你變得 \"成功\", 不論那能代表什麼。他們要是曾讓你體驗過童年, " -"或曾向你表達過他們的愛就好了, 但無論是哪個你現在肯定都不可能感受到。" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Awakened" -msgstr "" - -#. ~ Profession (male Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Awakened" -msgstr "" - -#. ~ Profession (female Awakened) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You were awoken in the middle of the night by a noise. Armed only with a " -"flashlight you went to investigate, now you face the Cataclysm." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Bionic Cyclist" -msgstr "" - -#. ~ Profession (male Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Bionic Cyclist" -msgstr "" - -#. ~ Profession (female Bionic Cyclist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"Your training and augmentation for the Cyber-Olympics cycling competition " -"gave you an edge on escaping the start of the Cataclysm. Can you keep on " -"running from it forever?" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Welder" -msgstr "" - -#. ~ Profession (male Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Welder" -msgstr "" - -#. ~ Profession (female Welder) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You worked as a welder for an off shore company before the Cataclysm. You " -"were on your way back home when it struck. At least you got the tools of " -"your craft." -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_male" -msgid "Primitive Survivalist" -msgstr "" - -#. ~ Profession (male Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_male" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - -#: lang/json/professions_from_json.py -msgctxt "profession_female" -msgid "Primitive Survivalist" -msgstr "" - -#. ~ Profession (female Primitive Survivalist) description -#: lang/json/professions_from_json.py -msgctxt "prof_desc_female" -msgid "" -"You knew the day would come, the day it all went to shit. You prepared " -"yourself, not by gear but sheer skill; all those days in the woods paid off." -" If your ancestors survived with no tech, you'll be damned if you don't" -msgstr "" - #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" @@ -140580,7 +136835,7 @@ msgid "LIGHTING" msgstr "燈具" #. ~ Crafting recipes subcategory of 'ARMOR' category -#: lang/json/recipe_category_from_json.py src/game_inventory.cpp +#: lang/json/recipe_category_from_json.py msgid "STORAGE" msgstr "儲物" @@ -145127,9 +141382,9 @@ msgstr "不論是固執、無知、或只是運氣不好的原因, 你就是錯 #. ~ Starting location for scenario 'Missed'. #. ~ Starting location for scenario 'Surrounded'. #. ~ Starting location for scenario 'Infected'. +#. ~ Starting location for scenario 'Challenge - Fungal Infection'. #. ~ Starting location for scenario 'Burning Building'. #. ~ Starting location for scenario 'Challenge - Really Bad Day'. -#. ~ Starting location for scenario 'Robots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "In Town" @@ -145259,6 +141514,34 @@ msgid "" "didn't get proper medical care, and now the wound has started turning green." msgstr "在撤離行動的慌亂之中, 你被某個東西咬到了! 你沒有做好醫療處置, 傷口開始感染化膿。" +#. ~ Name for scenario 'Challenge - Fungal Infection' for a male character +#: lang/json/scenario_from_json.py +msgctxt "scenario_male" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Name for scenario 'Challenge - Fungal Infection' for a female character +#: lang/json/scenario_from_json.py +msgctxt "scenario_female" +msgid "Challenge - Fungal Infection" +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a male +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_male" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + +#. ~ Description for scenario 'Challenge - Fungal Infection' for a female +#. character. +#: lang/json/scenario_from_json.py +msgctxt "scen_desc_female" +msgid "" +"You feel spores crawling beneath your skin. It's only a matter of time." +msgstr "" + #. ~ Name for scenario 'Burning Building' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" @@ -145960,19 +142243,19 @@ msgctxt "start_name" msgid "Military Base Warehouse" msgstr "" -#. ~ Name for scenario 'Crazy party' for a male character +#. ~ Name for scenario 'Crazy Party' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Name for scenario 'Crazy party' for a female character +#. ~ Name for scenario 'Crazy Party' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" -msgid "Crazy party" +msgid "Crazy Party" msgstr "" -#. ~ Description for scenario 'Crazy party' for a male character. +#. ~ Description for scenario 'Crazy Party' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "" @@ -145982,7 +142265,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Description for scenario 'Crazy party' for a female character. +#. ~ Description for scenario 'Crazy Party' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "" @@ -145992,7 +142275,7 @@ msgid "" "only to find out they hungered for more." msgstr "" -#. ~ Starting location for scenario 'Crazy party'. +#. ~ Starting location for scenario 'Crazy Party'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Private resort" @@ -146315,112 +142598,6 @@ msgctxt "start_name" msgid "Candy Shop" msgstr "糖果店" -#. ~ Name for scenario 'Robots' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Robots" -msgstr "機器人" - -#. ~ Name for scenario 'Robots' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Robots" -msgstr "機器人" - -#. ~ Description for scenario 'Robots' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" - -#. ~ Description for scenario 'Robots' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"During the riots and chaos, you hid in a robot dispatch center hoping the " -"robots would protect you, but they may prove more dangerous than the " -"zombies." -msgstr "" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Challenge-FEMA Death Camp" -msgstr "挑戰-聯邦緊急事務管理署死亡營地" - -#. ~ Name for scenario 'Challenge-FEMA Death Camp' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Challenge-FEMA Death Camp" -msgstr "挑戰-聯邦緊急事務管理署死亡營地" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" - -#. ~ Description for scenario 'Challenge-FEMA Death Camp' for a female -#. character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"You were one of the many law-enforcement and military personnel alike called" -" in to keep order on one of the FEMA camps. It all went to shit fast… " -"wounded, infected, surrounded by fire you lie on the ground… and they just " -"keep coming…" -msgstr "" - -#. ~ Starting location for scenario 'Challenge-FEMA Death Camp'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Fema Camp" -msgstr "聯邦緊急事務管理署營地" - -#. ~ Name for scenario 'Mansion Holdout' for a male character -#: lang/json/scenario_from_json.py -msgctxt "scenario_male" -msgid "Mansion Holdout" -msgstr "豪宅隱匿者" - -#. ~ Name for scenario 'Mansion Holdout' for a female character -#: lang/json/scenario_from_json.py -msgctxt "scenario_female" -msgid "Mansion Holdout" -msgstr "豪宅隱匿者" - -#. ~ Description for scenario 'Mansion Holdout' for a male character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_male" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" - -#. ~ Description for scenario 'Mansion Holdout' for a female character. -#: lang/json/scenario_from_json.py -msgctxt "scen_desc_female" -msgid "" -"While the world ended, you felt relatively safe inside the mansion you have " -"serviced for years. Now the dead have come knocking at your doorstep, and " -"it might be time to leave." -msgstr "" - -#. ~ Starting location for scenario 'Mansion Holdout'. -#: lang/json/scenario_from_json.py -msgctxt "start_name" -msgid "Mansion" -msgstr "豪宅" - #. ~ display string for skill display type 'display_melee' #: lang/json/skill_display_type_from_json.py msgid "Melee skills" @@ -146557,9 +142734,7 @@ msgstr "烹飪" #: lang/json/skill_from_json.py msgid "" "Your skill in combining food ingredients to make other, tastier food items." -" It may also be used in certain chemical mixtures and other, more esoteric " -"tasks." -msgstr "你結合食材成為美味食物的能力。在混和化學原料或其他深奧的工作時也用的到。" +msgstr "" #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -146781,6 +142956,17 @@ msgid "" "chance and decreases time required to successfully pick the lock." msgstr "" +#: lang/json/skill_from_json.py +msgid "chemistry" +msgstr "" + +#. ~ Description for {'str': 'chemistry'} +#: lang/json/skill_from_json.py +msgid "" +"Your skill in creating certain mixtures, solutions and compounds from " +"various chemical ingredients." +msgstr "" + #: lang/json/skill_from_json.py msgid "weapon" msgstr "武器" @@ -148348,6 +144534,12 @@ msgid "" "Don't. This thorazine seriously clouds your mind. You need to stay sharp." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Sure, take thorazine. If you want to lose your mind and wander into a horde" +" of undead!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "Pink tablets! I love those!" msgstr "" @@ -148412,6 +144604,14 @@ msgstr "對不起 。恐怕我辦不到。" msgid "Wish I could, ." msgstr "" +#: lang/json/snippet_from_json.py +msgid "Nothing to trade, sorry ." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Maybe next time?" +msgstr "" + #: lang/json/snippet_from_json.py msgid "No thanks, I really don't feel like it." msgstr "不,謝謝,我真的不喜歡它。" @@ -148444,6 +144644,10 @@ msgstr "" msgid "Not exactly the settlin' type." msgstr "" +#: lang/json/snippet_from_json.py +msgid "I'm more of a free spirit, can't settle, sorry." +msgstr "" + #: lang/json/snippet_from_json.py msgid " " msgstr " " @@ -148757,6 +144961,10 @@ msgid "" " ending, just for a while?" msgstr "" +#: lang/json/snippet_from_json.py +msgid "Pass me one and let's talk about the good ol' days, ." +msgstr "" + #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "" @@ -149297,6 +145505,14 @@ msgstr "嘿, 我在這!" msgid "Hold up a second, will ya?" msgstr "稍等一下,好嗎?" +#: lang/json/snippet_from_json.py +msgid "What's the rush?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Wait for me , I can't keep up with you like this!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." msgstr "我不結黨。" @@ -150534,7 +146750,7 @@ msgstr "\"我真喜歡在早上聞到汽油彈的味道。\"" #: lang/json/snippet_from_json.py msgid "This is the way the fuckin' world ends." -msgstr "" +msgstr "這就是幹他媽末日的原因。" #: lang/json/snippet_from_json.py msgid "Look at this fuckin' shit we're in, man." @@ -151739,6 +147955,117 @@ msgstr "我親愛的" msgid "survivor" msgstr "倖存者" +#: lang/json/snippet_from_json.py +msgid "Clean water, the taste that refreshes!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "I was parched, but not I am not." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Water is nice, but I should get a grog ration." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That wasn't Evian, but I'm not thirsty." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "And now I have eaten and am not hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "That food was good, but I miss real restaurants." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Well, that satisfied me." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I just had some food, but I'm still peckish. Would you mind if I ate more?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, , we're out of food." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Hey, the larder is empty! We're going to starve." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Uhm, , I don't meant to criticize, but we should focus on " +"distributing some food into the basecamp larder." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right on top of us!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "right there!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "danger close!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "almost in melee range!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "too close for comfort!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "only a couple of seconds' away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "just a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "closer than I'd like." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "near enough to see us." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "quite a bit away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "maybe within shooting range." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a good distance." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "far enough away that we could make sneak away." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "out on the horizon, so don't worry much." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "at a long distance." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will use ranged weapons." msgstr " 會使用遠程武器。" @@ -157962,6 +154289,42 @@ msgid "" "Michael Baker" msgstr "" +#: lang/json/snippet_from_json.py +msgid "HEY DUMBASSES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY DUMBHEADS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY MORONS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY WALKERS!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "HEY ZOMBIES!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "GET OVER HERE!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IT'S A TRAP!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, DON'T COME CLOSER!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "IF YOU'RE NOT A ZOMBIE, RUN AWAY AS FAST AS YOU CAN!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "" @@ -158744,7 +155107,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Gonna settle down one day. Nice big orchard, couple of friends/future " -"family to spend time with, and my army of zlaves to guard the place.\"" +"family to spend time with, and a nice system of fortifications to keep us " +"safe.\"" msgstr "" #: lang/json/snippet_from_json.py @@ -159483,6 +155847,51 @@ msgstr "這不是我選擇的世界。他們甚至拿走了我的 CD!" msgid "Dark days are ahead, but is that all?" msgstr "前頭是暗無天日的未來, 可僅只於此嗎?" +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 1: I had a dream and I can vaguely remember seeing a strange " +"truck that had overly round edges, it tooted its horn but instead I heard " +"people screaming, and when I blinked suddenly the truck wasn't just rounded," +" but made of people screaming forever inside a viscous blob.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 2: In last night's dream I was driving a rusty and dusty humvee," +" with my trusty companion using a massive pneumatic weapon to shoot rebar " +"pipes into faceless enemies chasing us. My heart is still pumping, why does" +" it feel like a memory instead of a dream?\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 3: Another dream. This time I dropped a diamond on a sea of " +"charcoal dust, and the diamond begun to shine and make the dust glitter " +"until a shape of a car emerged from the dust made entirely of thick, " +"perfectly angular diamond. A beautiful shape appeared on it, and in a flash" +" of light I was pierced by a glittering lance.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 4: These dreams get weirder. My companion of mine was driving " +"the RV, and I opened the back of the RV and found there was no roof but a " +"whole tray of gargantuan flowers made of solar panels arching toward the sun" +" greedily, light flowing from them into the RV. I stepped back and lost my " +"footing, seeing a strange portal on the side before I fell into a limitless " +"darkness.\"" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"\"Dream Log 5: My most recent dream was better so here it goes. I was " +"walking in a meadow when a strange stone with a perfect spiral on it fell in" +" front of me. I picked it up and blew on it, and a tornado roared from the " +"stone. In its wake, a car appeared, wickedly shaped and the sound of " +"tornadoes coming from its exhaust- and I rode the wind, hurling thunderbolts" +" at any who got in my way.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" msgstr "" @@ -160639,6 +157048,53 @@ msgstr "" msgid "\"It's been a while, hasn't it? Glad I found you again.\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"I've seen some big dinosaurs out there. I know that should be scary, but " +"all I felt was hungry." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I think those little dinosaurs are kind of cute, like a cat kind of. Do you" +" think they eat cat food?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "Dinosaurs are a bow hunter's best friend. Feathers forever!" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"A buddy of mine wandered close to the swamps and was eaten by a T-Rex, a big" +" lizard. I'd be careful unless you have a gun and plenty of ammo." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I hear the zombies have been in the swamps. Bad news if they bite a " +"dinosaur before it bites them." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"I know there aren't alligators in the sewer, but I heard there was some kind" +" of big lizard down there. Probably not a good idea to check." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"Some of those big dinosaurs seem halfway all right. I bet if you fed them " +"something nice and gave them a pet you could ride them like a pony. Or " +"maybe they'd eat you instead." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"One time I found a strange egg out in the woods. It was probably a " +"dinosaur, but I cooked it and it was pretty good!" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Research on our visitors is proceeding nicely. The raptor DNA is of special" @@ -160646,6 +157102,14 @@ msgid "" "breakthroughs." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"Research proceeds apace on our visitors. While Operation Major Laser did " +"not receive enough funding as hoped, our more humble bio-operator protocols " +"were already prepared and are proceeding ahead of schedule. The hosts are " +"most receptive to improvement." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "Dr. Yoshimi has been reprimanded for unauthorized contact with the " @@ -160683,7 +157147,9 @@ msgid "\"Why is that place just fucking crawling with lizards?\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" +msgid "" +"\"I bet dinosaurs can read and play chess so don't eat us because we can " +"teach you important things like magnets and ramen\"" msgstr "" #: lang/json/snippet_from_json.py @@ -160696,26 +157162,33 @@ msgid "" "butterfly?\"" msgstr "" -#: lang/json/snippet_from_json.py -msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" -msgstr "" - #: lang/json/snippet_from_json.py msgid "" -"\"Not sure if wielding this thing makes me feel like a bodybuilder or a " -"theoretical physicist. Both?\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" +"MANY MISSING: A wave of missing persons reports have shaken an already " +"troubled nation, especially among members of the popular Swampers religion " +"and hotel and casino chain. Asked to comment, their charismatic CEO Bo " +"Baronyx refused to explain their whereabouts, saying only 'The great eaters " +"have returned and they will be sated' and winked and smiled in the most " +"charming way. The Swampers are doing their part in this crisis and are " +"accepting donations of meat and money to feed the hungry." msgstr "" #: lang/json/snippet_from_json.py -msgid "\"Nice pistol! Which trigger fires the flamer?\"" +msgid "" +"CUTEST VISITORS: A mysterious portal of shimmering blue energy and flashing " +"lights opened above Cretaceous Kindergarten today, showering children with " +"the cutest tiny fuzzy dinosaurs and dinosaur babies. Local paleontologist " +"and exotic dancer Othniel Marsh expressed skepticism that dinosaurs had not " +"died out millions of years ago but 'at this point why not, at least they're " +"cute'. And cute they are!" msgstr "" #: lang/json/snippet_from_json.py -msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" +msgid "" +"DENIES DINOSAURS: FEMA official Ernst Stromer said late last night that the " +"cities are not safe and reports of dinosaurs outside the cities are wrong " +"and 'possibly drug-related' but cautioned refugees to 'get all the guns you " +"can' because 'it's bad out there'." msgstr "" #: lang/json/snippet_from_json.py @@ -160942,12 +157415,6 @@ msgstr "" msgid "chief" msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " -"repeat.\"" -msgstr "" - #: lang/json/snippet_from_json.py msgid "" "A flyer for some kind of candy. It shows a picture of a gleaming human made" @@ -160955,83 +157422,6 @@ msgid "" "human candy! Are you a real monster? Will you be able to devour it all?\"" msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"\"Tank drone, meet the real deal. See how you handle 120 millimeters of " -"HELL YEAH!\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"big fucking gun, earplugs are good for your brain\"" -msgstr "\"這槍他媽的大, 耳塞對你的大腦有好處\"" - -#: lang/json/snippet_from_json.py -msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Next person to call this infantry fighting vehicle a 'tank' is walking " -"home.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Found what used to be an armored platoon. Most tanks have hatches up top," -" not in the back like the new ones they're using.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Agh, to See the Spiral in such a Distorted Shape! Manipulated for its " -"Vortex motion! Its Perpetual Grace! Its beauty Tarnished…\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"\"I have this laser cannon turret on my shopping cart. I push it around and" -" everything dies. I think I'm gonna toss it in the lake-- this just isn't " -"fair anymore.\"" -msgstr "\"我在購物車上安裝了一台雷射砲。我推著它到到處晃並且殺死了所有東西。我想我要把它扔進湖裡去… 因為這實在太不公平了。\"" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Day 40. Controls broken-- car's magic reactor makes it goes inexorably " -"forward. Giant rollers on front demolish forest. Maine, here I come.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"my car is a diamond in the rough… literally\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"\"If I put one cargo dimension into another cargo dimension, does the " -"universe end?\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "\"one day, i will be part of car, too\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"\"Putta little bitta dynamite and halfa landmine in an old soda can… WHAM!" -" You goin' somewhere.\"" -msgstr "" - #: lang/json/speech_from_json.py msgid "\"Hello?\"" msgstr "\"哈囉? \"" @@ -162514,17 +158904,57 @@ msgid "\"Our food contains up to 95% real food.\"" msgstr "" #: lang/json/speech_from_json.py -msgid "\"FoodPlace: It's the Calories.\"" +msgid "\"At FoodPlace your excellent value brings nourishment and delight.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"At FoodPlace we have a host of solutions for your food needs!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"♪Eat at FoodPlace. ♫It is a place with food.♪\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is a popular food chain selling food items. What else is there " +"to know?\"" msgstr "" #: lang/json/speech_from_json.py msgid "\"You need food, don't you? Then come with me to FOODPLACE!!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"You need food, don't you? It's time for FoodPlace!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: It's the Calories.\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Don’t get caught in the web of unsafe diet.\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "\"FoodPlace: Edible food is OUR guarantee!\"" msgstr "" +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: We bring food to life!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "\"FoodPlace: Edible food is one of our main goals!\"" +msgstr "" + +#: lang/json/speech_from_json.py +msgid "" +"\"FoodPlace is the only way to obtain healthy and strong lifecycle " +"choices!!\"" +msgstr "" + #: lang/json/speech_from_json.py msgid "Wanna play with me?" msgstr "想陪我玩嗎?" @@ -163653,154 +160083,6 @@ msgstr "" msgid "a semi-musical chirping that echos across the landscape." msgstr "" -#: lang/json/speech_from_json.py -msgid "\"bzzzzzz.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Beep.\"" -msgstr "\"嗶。\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep?\"" -msgstr "\"嗶? \"" - -#: lang/json/speech_from_json.py -msgid "\"Beep!\"" -msgstr "\"嗶! \"" - -#: lang/json/speech_from_json.py -msgid "\"Beeeeep beep.\"" -msgstr "\"嗶… 嗶。\"" - -#: lang/json/speech_from_json.py -msgid "\"Bebebeeeep.\"" -msgstr "\"嗶嗶嗶。\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep boop beep?\"" -msgstr "\"嗶… 波… 嗶? \"" - -#: lang/json/speech_from_json.py -msgid "\"Beedoo-Beep.\"" -msgstr "\"嗶嘟… 嗶。\"" - -#: lang/json/speech_from_json.py -msgid "\"Beep Beep. Whirr.\"" -msgstr "\"嗶… 嗶。吪。\"" - -#: lang/json/speech_from_json.py -msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Whirrrrr-click click.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Boodoobeep beep beep.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Brrm Bum Brrm?\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Pwweeee Krsht.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Fshkt fshkt. Booop.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Grrrnd clang whirrrr.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Cla-clang cla-clang!\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Klang!\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "a high pitched alarm." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "a blaring siren." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"CHUG chug chug.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Creak! Clang clang.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Khr Khr Khr.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "a mechanical groaning." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "grinding gears." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "tortured machinery." -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"SQUEE!\"" -msgstr "" - #: lang/json/start_location_from_json.py msgid "Shelter" msgstr "避難所" @@ -164013,45 +160295,17 @@ msgstr "" msgid "Candy Shop" msgstr "糖果店" -#: lang/json/start_location_from_json.py -msgid "Robot Dispatch Center" -msgstr "機器人調度中心" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp (entrance)" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "FEMA camp" -msgstr "" - -#: lang/json/start_location_from_json.py -msgid "Mansion Entrance" -msgstr "豪宅入口" - -#: lang/json/start_location_from_json.py src/gamemode_defense.cpp -msgid "Mansion" -msgstr "豪宅" - -#: lang/json/start_location_from_json.py -msgid "Electronics Store" -msgstr "電子商店" - -#: lang/json/start_location_from_json.py -msgid "Clothing Store" -msgstr "服飾店" - #: lang/json/talk_topic_from_json.py -msgid "You there. Quiet down. Can you hear it? The song?" -msgstr "你那邊。靜下來。你能聽見嗎?這首歌?" +msgid "Acolyte." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You're back. Have you come to listen to the song?" msgstr "你回來了。你有來聽這首歌嗎?" #: lang/json/talk_topic_from_json.py -msgid "Acolyte." -msgstr "" +msgid "You there. Quiet down. Can you hear it? The song?" +msgstr "你那邊。靜下來。你能聽見嗎?這首歌?" #: lang/json/talk_topic_from_json.py msgid "What? What do you mean? What song?" @@ -164198,32 +160452,34 @@ msgid "Yeah, alright." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I know of certain bones that could be of use, if you'd like to know more." +msgid "There are bones to etch, songs to sing. Wish to join me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There is an additional song you could take on, if you'd like." +msgid "Do you wish to take on more songs?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "A song may yet be sung by you, should you wish to." +msgid "Do you believe you can take on the burden of additional bones?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you believe you can take on the burden of additional bones?" +msgid "A song may yet be sung by you, should you wish to." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you wish to take on more songs?" +msgid "There is an additional song you could take on, if you'd like." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "There are bones to etch, songs to sing. Wish to join me?" +msgid "" +"I know of certain bones that could be of use, if you'd like to know more." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That is all for now." +msgid "" +"The song is… quiet for now. Perhaps with time, more notes will be etched in" +" the bones of this world." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164231,9 +160487,7 @@ msgid "An acolyte should not take on too many songs at once." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"The song is… quiet for now. Perhaps with time, more notes will be etched in" -" the bones of this world." +msgid "That is all for now." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164305,16 +160559,16 @@ msgstr "" msgid "I see. Very well then." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Only those who bear my mark will prove themselves worthy of my skills." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "You bear my mark, meaning I believe you have potential to learn to truly " "listen to the Song. Yes, I will lend my skills to you, for now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Only those who bear my mark will prove themselves worthy of my skills." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I am glad to hear it. Let's go then." msgstr "" @@ -164530,14 +160784,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, I can perform first aid. You give me some bandages or a bottle of " -"antiseptic, I'll treat your wounds as best I can." +"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " +"or a bottle of antiseptic, I'm get you fixed when I see you hurting." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Hey, I'm a doctor! I know how to treat trauma. You give me some bandages " -"or a bottle of antiseptic, I'm get you fixed when I see you hurting." +"Yeah, I can perform first aid. You give me some bandages or a bottle of " +"antiseptic, I'll treat your wounds as best I can." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164711,13 +160965,13 @@ msgid "Thanks. I have some things for you to do." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " -"anymore..." +msgid "Hi there, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there, ." +msgid "" +"STOP, Put your hands in the air! Ha, startled you didn't I…there is no law " +"anymore..." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164791,24 +161045,24 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Anything to do before I go to sleep?" -msgstr "在我要睡之前還有什麼要做的嗎?" +msgid "No, just no..." +msgstr "不要, 就只是不要" #: lang/json/talk_topic_from_json.py -msgid "Just few minutes more..." -msgstr "再幾分鐘就好…" +msgid "Just let me sleep, !" +msgstr "就讓我去睡覺吧, !" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." msgstr "快一點啦, 我想要回去睡覺了。" #: lang/json/talk_topic_from_json.py -msgid "Just let me sleep, !" -msgstr "就讓我去睡覺吧, !" +msgid "Just few minutes more..." +msgstr "再幾分鐘就好…" #: lang/json/talk_topic_from_json.py -msgid "No, just no..." -msgstr "不要, 就只是不要" +msgid "Anything to do before I go to sleep?" +msgstr "在我要睡之前還有什麼要做的嗎?" #: lang/json/talk_topic_from_json.py msgid "Wake up!" @@ -164833,14 +161087,14 @@ msgstr "" msgid "no, 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 " *pshhhttt* I'm reading you boss, over." msgstr "\"滋滋扑滋\" 我正聽著呢,老大,完畢。" +#: lang/json/talk_topic_from_json.py +msgid "What is it, friend?" +msgstr "什麼事,朋友?" + #: lang/json/talk_topic_from_json.py msgid "I want to give you some commands for combat." msgstr "我想給你一些戰鬥命令。" @@ -164922,15 +161176,15 @@ msgid "Let's go." msgstr "我們走。" #: lang/json/talk_topic_from_json.py -msgid "*will engage all enemies." +msgid "*will not engage enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage enemies close enough to attack without moving." +msgid "*will engage nearby enemies." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage distant enemies without moving." +msgid "*will engage weak enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164938,19 +161192,15 @@ msgid "*will engage enemies you attack." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will engage weak enemies." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "*will engage nearby enemies." +msgid "*will engage distant enemies without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will not engage enemies." +msgid "*will engage enemies close enough to attack without moving." msgstr "" #: lang/json/talk_topic_from_json.py -msgid " " +msgid "*will engage all enemies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -164958,7 +161208,7 @@ msgid " OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid " " msgstr "" #: lang/json/talk_topic_from_json.py @@ -164966,27 +161216,27 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" +msgid "" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -164994,7 +161244,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165002,13 +161252,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid " What should do?" msgstr "" @@ -165084,7 +161338,8 @@ msgstr "保持戰線:不要移動到與我相鄰的障礙物上。" #: src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp src/iuse.cpp #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/monexamine.cpp src/monexamine.cpp src/npc.cpp -#: src/pickup.cpp src/player.cpp src/veh_interact.cpp src/vehicle_use.cpp +#: src/pickup.cpp src/player.cpp src/player.cpp src/player.cpp +#: src/veh_interact.cpp src/vehicle_use.cpp msgid "Never mind." msgstr "沒事。" @@ -165117,12 +161372,13 @@ msgid "Attack anything you want." msgstr "任意攻擊吧。" #: lang/json/talk_topic_from_json.py -msgid "*will not reserve any power for defense or utility CBMs." +#, no-python-format +msgid "*will reserve 100% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 25% of CBM power for defense or utility CBMs." +msgid "*will reserve 75% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -165132,12 +161388,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will reserve 75% of CBM power for defense or utility CBMs." +msgid "*will reserve 25% of CBM power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py -#, no-python-format -msgid "*will reserve 100% of CBM power for defense or utility CBMs." +msgid "*will not reserve any power for defense or utility CBMs." msgstr "" #: lang/json/talk_topic_from_json.py @@ -165177,12 +161432,12 @@ msgstr "盡情使用生化插件武器。不用保留任何能量給防禦性或 #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 10% of total power." +msgid "*will recharge power CBMs until has 90% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 25% of total power." +msgid "*will recharge power CBMs until has 75% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -165192,12 +161447,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 75% of total power." +msgid "*will recharge power CBMs until has 25% of total power." msgstr "" #: lang/json/talk_topic_from_json.py #, no-python-format -msgid "*will recharge power CBMs until has 90% of total power." +msgid "*will recharge power CBMs until has 10% of total power." msgstr "" #: lang/json/talk_topic_from_json.py @@ -165233,19 +161488,19 @@ msgid "" msgstr "我們快沒補給了。把生化能量充電到 10%。" #: lang/json/talk_topic_from_json.py -msgid "*will not bother to aim at all." +msgid "*will aim when it's convenient." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will take time and aim carefully." +msgid "*will only shoot after taking a long time to aim." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will only shoot after taking a long time to aim." +msgid "*will take time and aim carefully." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "*will aim when it's convenient." +msgid "*will not bother to aim at all." msgstr "" #: lang/json/talk_topic_from_json.py @@ -165289,7 +161544,7 @@ msgid "OVERRIDE: " msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165297,11 +161552,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165309,7 +161560,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165317,7 +161568,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165325,7 +161576,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165333,7 +161584,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165341,7 +161592,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165349,7 +161600,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165357,13 +161608,17 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" +msgid "" msgstr "" #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." msgstr "遵循這位追隨者的一套規則。" @@ -165536,14 +161791,14 @@ msgstr "* 嗤嗤* 十 - 四,我會去那裡,完畢。" msgid "Sure thing, I'll make my way there." msgstr "當然,我會去那裡。" -#: lang/json/talk_topic_from_json.py -msgid "" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, this summer heat is hitting me hard, let's take a quick break, how " @@ -165554,10 +161809,6 @@ msgstr "是的,夏天的炎熱使我難受,讓我們休息一下, msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "好吧,也許這能不讓我在這種天氣被凍僵,如何?" -#: lang/json/talk_topic_from_json.py -msgid "Man it's dark out isn't it? what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, it's the time of day for a quick break surely! How are you holding " @@ -165565,13 +161816,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, I'm feeling pretty sick… are you doing OK though?" +msgid "Man it's dark out isn't it? what's up?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " -"what's up?" +msgid "Well, I'm feeling pretty sick… are you doing OK though?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -165580,6 +161829,12 @@ msgid "" "Anyway, you coping OK, ? " msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"OK, let's take a moment, oh, and thanks for helping me with that thing, so… " +"what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Now, we've got a moment, I was just thinking it's been a month or so since… " @@ -165651,14 +161906,14 @@ msgstr "很好, 別突然亂動…" msgid "Keep your distance!" msgstr "保持你的距離!" -#: lang/json/talk_topic_from_json.py -msgid "This is my territory, ." -msgstr "這是我的地盤,。" - #: lang/json/talk_topic_from_json.py msgid "" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "This is my territory, ." +msgstr "這是我的地盤,。" + #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." msgstr "冷靜點。我不會傷害你。" @@ -165675,14 +161930,14 @@ msgstr "" msgid "&Put hands up." msgstr "&把手舉起來。" -#: lang/json/talk_topic_from_json.py -msgid "*drops_her_weapon." -msgstr "*丟下她的武器。" - #: lang/json/talk_topic_from_json.py msgid "*drops his weapon." msgstr "*丟下他的武器。" +#: lang/json/talk_topic_from_json.py +msgid "*drops_her_weapon." +msgstr "*丟下她的武器。" + #: lang/json/talk_topic_from_json.py msgid "Now get out of here" msgstr "快滾" @@ -165711,14 +161966,6 @@ msgstr "怎麼了?" msgid "I don't care." msgstr "我不在乎。" -#: lang/json/talk_topic_from_json.py -msgid "I just have one job for you. Want to hear about it?" -msgstr "我只有一件工作給你。想要聽看看嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "I have another job for you. Want to hear about it?" -msgstr "我有另一件工作給你。想要聽看看嗎?" - #: lang/json/talk_topic_from_json.py msgid "I have other jobs for you. Want to hear about them?" msgstr "我有其他的工作給你。想要聽看看嗎?" @@ -165728,13 +161975,21 @@ msgid "I have more jobs for you. Want to hear about them?" msgstr "我有更多的工作給你。想要聽看看嗎?" #: lang/json/talk_topic_from_json.py -msgid "I don't have any more jobs for you." -msgstr "我已經沒有可以給你辦的工作了。" +msgid "I have another job for you. Want to hear about it?" +msgstr "我有另一件工作給你。想要聽看看嗎?" + +#: lang/json/talk_topic_from_json.py +msgid "I just have one job for you. Want to hear about it?" +msgstr "我只有一件工作給你。想要聽看看嗎?" #: lang/json/talk_topic_from_json.py msgid "I don't have any jobs for you." msgstr "我沒有可以給你的工作。" +#: lang/json/talk_topic_from_json.py +msgid "I don't have any more jobs for you." +msgstr "我已經沒有可以給你辦的工作了。" + #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." @@ -165745,16 +162000,16 @@ msgid "Never mind, I'm not interested." msgstr "別在意, 我沒興趣。" #: lang/json/talk_topic_from_json.py -msgid "What about it?" -msgstr "這樣如何?" +msgid "You're not working on anything for me now." +msgstr "你現在並沒有幫我做任何工作。" #: lang/json/talk_topic_from_json.py msgid "Which job?" msgstr "哪件工作?" #: lang/json/talk_topic_from_json.py -msgid "You're not working on anything for me now." -msgstr "你現在並沒有幫我做任何工作。" +msgid "What about it?" +msgstr "這樣如何?" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" @@ -165965,48 +162220,48 @@ msgid "Thanks!" msgstr "謝謝!" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for not telling you." -msgstr "我有些苦衷,不能告訴你。" +msgid "Focus on the road, mate!" +msgstr "專心路況,夥伴!" #: lang/json/talk_topic_from_json.py -msgid "Nothing comes to my mind now. Ask me later perhaps?" -msgstr "" +msgid "I'm too thirsty, give me something to drink." +msgstr "我太渴了, 給我點能喝的東西。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm too hungry, give me something to eat." +msgstr "我太餓了, 給我點能吃的東西。" #: lang/json/talk_topic_from_json.py msgid "I'm too tired, let me rest first." msgstr "我太累了, 讓我先休息一下。" #: lang/json/talk_topic_from_json.py -msgid "I'm too hungry, give me something to eat." -msgstr "我太餓了, 給我點能吃的東西。" +msgid "Nothing comes to my mind now. Ask me later perhaps?" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm too thirsty, give me something to drink." -msgstr "我太渴了, 給我點能喝的東西。" +msgid "I have some reason for not telling you." +msgstr "我有些苦衷,不能告訴你。" #: lang/json/talk_topic_from_json.py msgid "I must focus on the road!" msgstr "我必須專心路況!" -#: lang/json/talk_topic_from_json.py -msgid "Focus on the road, mate!" -msgstr "專心路況,夥伴!" - #: lang/json/talk_topic_from_json.py msgid "Ah, okay." msgstr "啊,好的。" #: lang/json/talk_topic_from_json.py -msgid "Why should I travel with you?" -msgstr "為什麼我要跟著你旅行?" +msgid "Not until I get some antibiotics..." +msgstr "我還沒找到抗生素…" #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." msgstr "你沒多久前才問過我, 晚點再說吧。" #: lang/json/talk_topic_from_json.py -msgid "Not until I get some antibiotics..." -msgstr "我還沒找到抗生素…" +msgid "Why should I travel with you?" +msgstr "為什麼我要跟著你旅行?" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." @@ -166097,20 +162352,20 @@ msgid "On second thought, never mind." msgstr "我再想想, 抱歉。" #: lang/json/talk_topic_from_json.py -msgid "I have some reason for denying you training." -msgstr "我有些苦衷,不能接受你的訓練。" +msgid "I can't train you properly while you're operating a vehicle!" +msgstr "你在駕駛車輛時我無法訓練你。" #: lang/json/talk_topic_from_json.py msgid "Give it some time, I'll show you something new later..." msgstr "給我點時間, 我會讓你看些新玩意…" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while I'm operating a vehicle!" -msgstr "我在駕駛車輛時無法訓練你。" +msgid "I have some reason for denying you training." +msgstr "我有些苦衷,不能接受你的訓練。" #: lang/json/talk_topic_from_json.py -msgid "I can't train you properly while you're operating a vehicle!" -msgstr "你在駕駛車輛時我無法訓練你。" +msgid "I can't train you properly while I'm operating a vehicle!" +msgstr "我在駕駛車輛時無法訓練你。" #: lang/json/talk_topic_from_json.py msgid "Not a bloody chance, I'm going to get left behind!" @@ -166148,14 +162403,14 @@ msgstr "我想自己管好自己就好了。" msgid "I understand…" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Why should I share my equipment with you?" -msgstr "為什麼要我分裝備給你?" - #: lang/json/talk_topic_from_json.py msgid "You just asked me for stuff; ask later." msgstr "你沒多久前才跟我要東西, 晚點再說吧。" +#: lang/json/talk_topic_from_json.py +msgid "Why should I share my equipment with you?" +msgstr "為什麼要我分裝備給你?" + #: lang/json/talk_topic_from_json.py msgid "Okay, fine." msgstr "好吧, 算了。" @@ -166299,13 +162554,13 @@ msgid "You might be seeing more of me…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " -"I've seen in a long time." +msgid "Hey again. *kzzz*" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey again. *kzzz*" +msgid "" +"I… I'm free. *Zzzt* I'm actually free! *bzzz* Look, you're the first person " +"I've seen in a long time." msgstr "" #: lang/json/talk_topic_from_json.py @@ -167404,28 +163659,28 @@ msgid "This is a low driving test response." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greeting citizen, what brings you to the FoodLair?" -msgstr "公民你好,是什麼風把你吹來美食巢穴呢?" +msgid "Greetings friend, it's nice to see you." +msgstr "朋友你好,很高興見到你。" #: lang/json/talk_topic_from_json.py -msgid "Still here? Take your time, it's rough out there." -msgstr "還在?慢慢來,這很艱難。" +msgid "So you're back… Explain yourself!" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Greetings friend, it's nice to see you." -msgstr "朋友你好,很高興見到你。" +msgid "What sorcery is this?" +msgstr "這是什麼巫術?" #: lang/json/talk_topic_from_json.py msgid "Welcome home Foodkid!" msgstr "歡迎回家,美食小子!" #: lang/json/talk_topic_from_json.py -msgid "What sorcery is this?" -msgstr "這是什麼巫術?" +msgid "Still here? Take your time, it's rough out there." +msgstr "還在?慢慢來,這很艱難。" #: lang/json/talk_topic_from_json.py -msgid "So you're back… Explain yourself!" -msgstr "" +msgid "Greeting citizen, what brings you to the FoodLair?" +msgstr "公民你好,是什麼風把你吹來美食巢穴呢?" #: lang/json/talk_topic_from_json.py msgid "Greetings… Foodperson?" @@ -168761,6 +165016,10 @@ msgid "" " just busy not dying." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I just can't talk about that right now. I can't." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was at work at the hospital, when it all went down. It's a bit of a blur." @@ -168769,8 +165028,7 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke. I'd seen such horrible injuries, and then I… " -", I can't even talk about it." +"shift I… well, I broke." msgstr "" #: lang/json/talk_topic_from_json.py @@ -168781,11 +165039,8 @@ msgid "" "as usual. Then, towards the end, stuff just skyrocketed. We thought it was" " a Chinese attack, and that's what we were being told. People coming in " "crazed, covered in wounds from bullets and bites. About halfway through my " -"shift I… well, I broke." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I just can't talk about that right now. I can't." +"shift I… well, I broke. I'd seen such horrible injuries, and then I… " +", I can't even talk about it." msgstr "" #: lang/json/talk_topic_from_json.py @@ -169121,13 +165376,13 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"My wife made it out with me, but got eaten by one of those plant " +"My husband made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"My husband made it out with me, but got eaten by one of those plant " +"My wife made it out with me, but got eaten by one of those plant " "monsters a few days before I met you. This hasn't been a great year for me." msgstr "" @@ -169186,7 +165441,8 @@ msgid "I'm sorry you lost someone." msgstr "我很遺憾你失去了某人。" #: lang/json/talk_topic_from_json.py -msgid "Just another tale of love and loss. Not one I like to tell." +msgid "" +"I said, I don't wanna talk about it. How are you not understanding this?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -169196,8 +165452,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I said, I don't wanna talk about it. How are you not understanding this?" +msgid "Just another tale of love and loss. Not one I like to tell." msgstr "" #: lang/json/talk_topic_from_json.py @@ -169222,34 +165477,34 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost her." +msgid "All right, fine. I had someone. I lost him." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "All right, fine. I had someone. I lost him." +msgid "All right, fine. I had someone. I lost her." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"She was at home when the bombs started dropping and the world went to hell." -" I was at work. I tried to make it to our house, but the city was a war " +"He was at home when the bombs started dropping and the world went to hell. " +"I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my wife, I would " -"have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my husband, I would" +" have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"He was at home when the bombs started dropping and the world went to hell. " -"I was at work. I tried to make it to our house, but the city was a war " +"She was at home when the bombs started dropping and the world went to hell." +" I was at work. I tried to make it to our house, but the city was a war " "zone. Things I can't describe lurching through the streets, crushing people" " and cars. Soldiers trying to stop them, but hitting people in the " "crossfire as much as anything. And then the collateral damage would get " -"right back up and join the enemy. If it hadn't been for my husband, I would" -" have just left, but I did what I could and I slipped through. I actually " +"right back up and join the enemy. If it hadn't been for my wife, I would " +"have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" @@ -169301,11 +165556,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My wife was still alive. She'd been in " +"up part? Like, out of all this? My husband was still alive. He'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"she'd lost a ton of blood, she was delirious by the time I found her. I " -"couldn't get her out, so I gave her food and water and just stayed with her " -"and held her hand until she passed. And then… well, then I did what you " +"he'd lost a ton of blood, he was delirious by the time I found him. I " +"couldn't get him out, so I gave him food and water and just stayed with him " +"and held his hand until he passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -169313,11 +165568,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I did. Took a few hours to get an opening. And you wanna know the fucked " -"up part? Like, out of all this? My husband was still alive. He'd been in " +"up part? Like, out of all this? My wife was still alive. She'd been in " "the basement the whole time, pinned under a collapsed piece of floor. And " -"he'd lost a ton of blood, he was delirious by the time I found him. I " -"couldn't get him out, so I gave him food and water and just stayed with him " -"and held his hand until he passed. And then… well, then I did what you " +"she'd lost a ton of blood, she was delirious by the time I found her. I " +"couldn't get her out, so I gave her food and water and just stayed with her " +"and held her hand until she passed. And then… well, then I did what you " "have to do to the dead now. And then I packed up the last few fragments of " "my life, and I try to never look back." msgstr "" @@ -169951,16 +166206,6 @@ msgid "" "Hell on Earth. I wish I'd paid more attention in Sunday School." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I lived alone, on the old family property way out of town. My wife passed " -"away a bit over a month before this started… cancer. If anything good has " -"come out of all this, it's that I finally see a positive to losing her so " -"young. I'd been shut in for a while anyway. When the news started talking " -"about Chinese bio weapons and sleeper agents, and showing the rioting in " -"Boston and such, I curled up with my canned soup and changed the channel." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I lived alone, on the old family property way out of town. My husband " @@ -169972,6 +166217,16 @@ msgid "" "channel." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I lived alone, on the old family property way out of town. My wife passed " +"away a bit over a month before this started… cancer. If anything good has " +"come out of all this, it's that I finally see a positive to losing her so " +"young. I'd been shut in for a while anyway. When the news started talking " +"about Chinese bio weapons and sleeper agents, and showing the rioting in " +"Boston and such, I curled up with my canned soup and changed the channel." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, it built up a bit. There was that acid rain, it burnt up one of my " @@ -170047,14 +166302,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " -"interested in getting attached. You didn't pay me to be your friend." +"Like I said, you want me to tell you a story, you gotta pony up the whisky." +" A full bottle, mind you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Like I said, you want me to tell you a story, you gotta pony up the whisky." -" A full bottle, mind you." +"Listen. I'm gonna cut this off short. I work for you, okay? I'm not " +"interested in getting attached. You didn't pay me to be your friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -170357,15 +166612,6 @@ msgid "" "help, I'd just be another dripping corpse." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " -"peel out of there with her brother - my best man - in his pickup truck as " -"things went bad. So, until I run into them again one way or another, I'm " -"just gonna keep on believing they're out there, doing well. That's more " -"than most of us have." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I have this weird hope. It's probably stupid, but I saw my fiancé " @@ -170376,11 +166622,16 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What were you saying before that?" +msgid "" +"Well, I have this weird hope. It's probably stupid, but I saw my fiancée " +"peel out of there with her brother - my best man - in his pickup truck as " +"things went bad. So, until I run into them again one way or another, I'm " +"just gonna keep on believing they're out there, doing well. That's more " +"than most of us have." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Welcome! You seem new, how can I help you?" +msgid "What were you saying before that?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -170403,6 +166654,10 @@ msgstr "" msgid "How's the weather?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Welcome! You seem new, how can I help you?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What is this place?" msgstr "這是什麼地方?" @@ -170489,16 +166744,16 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. If " -"you had found our community earlier, you could have had a higher chance to " -"join. The newest member joined just a few days ago." +"decisions. But as I said, your chances are low, like everyone else's. The " +"newest member joined just a long time ago." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You have to ask our leader, Helena, first. She's the one who makes those " -"decisions. But as I said, your chances are low, like everyone else's. The " -"newest member joined just a long time ago." +"decisions. But as I said, your chances are low, like everyone else's. If " +"you had found our community earlier, you could have had a higher chance to " +"join. The newest member joined just a few days ago." msgstr "" #: lang/json/talk_topic_from_json.py @@ -170545,15 +166800,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey! What are you doing up here? You are not allowed to come here." +msgid "You're back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You're back." +msgid "So…?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "So…?" +msgid "Hey! What are you doing up here? You are not allowed to come here." msgstr "" #: lang/json/talk_topic_from_json.py @@ -170587,15 +166842,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am sorry, but nobody is allowed to take anything from here. We would like" -" to help you, but we already have enough mouths to feed." +"I am afraid you can't. Look, we are running low on our rations, and we " +"don't want to waste even more. Even if you just want to 'borrow' it. Too " +"bad, we could've helped you if you had come here earlier." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I am afraid you can't. Look, we are running low on our rations, and we " -"don't want to waste even more. Even if you just want to 'borrow' it. Too " -"bad, we could've helped you if you had come here earlier." +"I am sorry, but nobody is allowed to take anything from here. We would like" +" to help you, but we already have enough mouths to feed." msgstr "" #: lang/json/talk_topic_from_json.py @@ -170638,14 +166893,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That information is a bit private, but you can see for yourself. We have " -"about 20 crates full of non-perishables." +"I don't know anymore. You see, we used to have 20 crates full of non-" +"perishables. That was months ago. We are running out." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I don't know anymore. You see, we used to have 20 crates full of non-" -"perishables. That was months ago. We are running out." +"That information is a bit private, but you can see for yourself. We have " +"about 20 crates full of non-perishables." msgstr "" #: lang/json/talk_topic_from_json.py @@ -170714,11 +166969,11 @@ msgid "That's good to hear." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Pleased to meet you." +msgid "Are you here to protect us?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Are you here to protect us?" +msgid "Pleased to meet you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -170775,11 +167030,11 @@ msgid "That's the most hopeful thing I've heard so far." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." +msgid "Same way you got yours, I bet." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Same way you got yours, I bet." +msgid "CRISPR? Radiation? Something in the water? Maybe it was bunnies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -170791,19 +167046,19 @@ msgid "You're disgusting." msgstr "你真噁心。" #: lang/json/talk_topic_from_json.py -msgid "Insulting people who could help you is unlikely to aid survival." +msgid "I'm very sorry to tell you this, but you should look in a mirror." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm very sorry to tell you this, but you should look in a mirror." +msgid "Insulting people who could help you is unlikely to aid survival." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I can't believe my eyes. Please get me outta here…" +msgid "Hey, ." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey, ." +msgid "I can't believe my eyes. Please get me outta here…" msgstr "" #: lang/json/talk_topic_from_json.py @@ -170829,7 +167084,9 @@ msgid "Sounds good, Barry." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello Ma'am, what brings you here?" +msgid "" +"I see that badge, I think you need to keep on walking, straight off this " +"property." msgstr "" #: lang/json/talk_topic_from_json.py @@ -170837,9 +167094,7 @@ msgid "Hello Sir, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need to keep on walking, straight off this " -"property." +msgid "Hello Ma'am, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -170913,16 +167168,16 @@ msgstr "" msgid "Where can I find Chris?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Hi, what's up?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I see that badge. You need to leave our land, my relatives have no fondness" " for Marshals." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi, what's up?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hi, Your dad asked me to come find you, said you've been looking for your " @@ -171014,16 +167269,16 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi, what brings you here?" -msgstr "嗨,什麼風把你吹來這?" +msgid "Is that a U.S. Marshal's badge you're wearing?" +msgstr "你佩戴的是聯邦法警的徽章嗎?" #: lang/json/talk_topic_from_json.py msgid "Hello, what brings you here?" msgstr "哈囉,什麼風把你吹來這呢?" #: lang/json/talk_topic_from_json.py -msgid "Is that a U.S. Marshal's badge you're wearing?" -msgstr "你佩戴的是聯邦法警的徽章嗎?" +msgid "Hi, what brings you here?" +msgstr "嗨,什麼風把你吹來這?" #: lang/json/talk_topic_from_json.py msgid "Yes, I'm a marshal." @@ -171319,14 +167574,14 @@ msgstr "就這樣吧。我們可以討論別的嗎?" msgid "That's all for now. I'd best get going." msgstr "就這樣吧。我該走了。" -#: lang/json/talk_topic_from_json.py -msgid "Hello, We don't see many people these days." -msgstr "哈囉,這些日子裡我們沒見到太多人。" - #: lang/json/talk_topic_from_json.py msgid "Leave our property, Marshal." msgstr "離開我們的財產,法警。" +#: lang/json/talk_topic_from_json.py +msgid "Hello, We don't see many people these days." +msgstr "哈囉,這些日子裡我們沒見到太多人。" + #: lang/json/talk_topic_from_json.py msgid "Hi, it looks like you are doing well here." msgstr "嗨,看來你在這裡過得不錯。" @@ -171523,10 +167778,8 @@ msgid "Tell me about your dad." msgstr "告訴我關於你老爸的事情。" #: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "女士, 我不知道你是怎麼到這裡來的。如果你還有點理智的話, 趁現在你還能離開, 趕緊走吧。" +msgid "Marshal, I hope you're here to assist us." +msgstr "法警, 我希望你是來幫忙的。" #: lang/json/talk_topic_from_json.py msgid "" @@ -171535,8 +167788,10 @@ msgid "" msgstr "先生, 我不知道你是怎麼到這裡來的。如果你還有點理智的話, 趁現在你還能離開, 趕緊走吧。" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "法警, 我希望你是來幫忙的。" +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "女士, 我不知道你是怎麼到這裡來的。如果你還有點理智的話, 趁現在你還能離開, 趕緊走吧。" #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" @@ -171597,16 +167852,16 @@ msgid "Whatever they did it must have worked since we are still alive…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here… you should leave." -msgstr "" +msgid "Marshal, I'm rather surprised to see you here." +msgstr "法警, 在這看到你令我有點驚訝。" #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here… you should leave." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "法警, 在這看到你令我有點驚訝。" +msgid "Ma'am you are not authorized to be here… you should leave." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." @@ -171642,6 +167897,22 @@ msgid "" "hoping a few plain text messages can get picked up though." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "你好,法警。" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "元帥, 抱歉我現在無法跟你交談。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "法警,我不是這裡的負責人。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "法警, 我想這些問題該交由我的領導回答。" + #: lang/json/talk_topic_from_json.py msgid "Hey, citizen… I'm not sure you belong here." msgstr "" @@ -171654,14 +167925,6 @@ msgstr "你應該管好自己的事, 這裡沒什麼好看的。" msgid "If you need something you'll need to talk to someone else." msgstr "如果你想要什麼的話, 你該找別人去。" -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "夫人" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "嘿小姐, 難道你不覺得和我一起會更安全麼?" - #: lang/json/talk_topic_from_json.py msgid "Sir." msgstr "先生。" @@ -171671,20 +167934,12 @@ msgid "Dude, if you can hold your own you should look into enlisting." msgstr "老兄, 如果你靠得住, 你該去報名參軍的。" #: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "你好,法警。" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "元帥, 抱歉我現在無法跟你交談。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "法警,我不是這裡的負責人。" +msgid "Ma'am" +msgstr "夫人" #: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "法警, 我想這些問題該交由我的領導回答。" +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "嘿小姐, 難道你不覺得和我一起會更安全麼?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me…" @@ -171741,14 +167996,15 @@ msgid "I've no use for weaklings. Run. Now." msgstr "我對懦夫沒興趣。快滾,現在。" #: lang/json/talk_topic_from_json.py -msgid "Please, help me. I need food." -msgstr "請幫幫我,我需要食物。" +msgid "" +"So, any luck with convincing the others to come on your crazy adventure yet?" +msgstr "那麼,說服其他人加入你那瘋狂的冒險有什麼進展嗎?" #: lang/json/talk_topic_from_json.py msgid "" -"Please, help me. I need food. Aren't you their sheriff? Can't you help " -"me?" -msgstr "請幫幫我,我需要食物。你不是他們的警長嗎?難道你不能幫我嗎?" +"I'm sorry to say it after all you've done for me, but… I don't suppose " +"you've got anything to eat?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thank you again. I really appreciate the food." @@ -171756,14 +168012,13 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I'm sorry to say it after all you've done for me, but… I don't suppose " -"you've got anything to eat?" -msgstr "" +"Please, help me. I need food. Aren't you their sheriff? Can't you help " +"me?" +msgstr "請幫幫我,我需要食物。你不是他們的警長嗎?難道你不能幫我嗎?" #: lang/json/talk_topic_from_json.py -msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" -msgstr "那麼,說服其他人加入你那瘋狂的冒險有什麼進展嗎?" +msgid "Please, help me. I need food." +msgstr "請幫幫我,我需要食物。" #: lang/json/talk_topic_from_json.py msgid "" @@ -171782,15 +168037,15 @@ 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 "他們說他們人太多了,不能讓我加入。我被允許在這邊紮營只要我能保持乾淨跟不搞事,不過我好餓阿。" +"here as long as I keep it clean and don't make a fuss, but I'm reduced to " +"begging to survive." +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 reduced to " -"begging to survive." -msgstr "" +"here as long as I keep it clean and don't make a fuss, but I'm so hungry." +msgstr "他們說他們人太多了,不能讓我加入。我被允許在這邊紮營只要我能保持乾淨跟不搞事,不過我好餓阿。" #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" @@ -171889,16 +168144,16 @@ msgid "" "hurry to face that again." msgstr "謝謝你的好意,但我想我寧願留在這裡等待機會,也不願再去外面冒險。我還記得,我並不急著再次面對它。" -#: lang/json/talk_topic_from_json.py -msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "對不起,我太餓了,無法做出那麼重大的決定。" - #: lang/json/talk_topic_from_json.py msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " "think you realize how useless I am in this world." msgstr "這是相當棒的提議,但我不認為我會在旅途中倖存下來。我不認為你意識到我在這個世界上是多麼無用。" +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, I'm too hungry to make a big decision like that." +msgstr "對不起,我太餓了,無法做出那麼重大的決定。" + #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." msgstr "我可以保證你的安全。我會親自把你帶到那裡。" @@ -171943,15 +168198,15 @@ msgstr "好! 我們走吧。" msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "朋友,我告訴過你關於硬紙板的事嗎?你有硬紙板嗎?" +#: lang/json/talk_topic_from_json.py +msgid "We've done it! We've solved the list!" +msgstr "我們做到了!我們已經完成這個清單!" + #: lang/json/talk_topic_from_json.py msgid "" "How's things with you? My cardboard collection is getting quite impressive." msgstr "你好嗎?我的紙板收藏已經相當可觀了。" -#: lang/json/talk_topic_from_json.py -msgid "We've done it! We've solved the list!" -msgstr "我們做到了!我們已經完成這個清單!" - #: lang/json/talk_topic_from_json.py msgid "About that shopping list of yours…" msgstr "" @@ -171980,16 +168235,16 @@ msgstr "你是認真的嗎?穿著恐龍裝?" msgid "Do you need something to eat?" msgstr "你需要吃點東西嗎?" +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Yeah, I'm real hungry and they put drugs in most of the food. I can see " "you're not like that." msgstr "是的,我真的很餓,他們把藥物放在大部分食物中。我可以看出你不是那樣的。" -#: lang/json/talk_topic_from_json.py -msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Actually can I ask you something else?" msgstr "事實上,我可以問你別的嗎?" @@ -172079,6 +168334,12 @@ msgid "" "have shields up, to protect ourselves." msgstr "你問我能看到什麼,但我不告訴你你看到了什麼。有時候我們不得不屏蔽起來,保護自己。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well… I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "That's it! I'm just gonna need a little time to get it all set up. Thanks." @@ -172086,12 +168347,6 @@ msgid "" "keep me going." msgstr "就是這樣!我只需要一點時間就可以完成所有設置。謝謝。你幫了我很多忙。我對這一切感覺更加自信讓我繼續前進。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well… I had it all pretty together, but the others have left, and now the " -"masters won't let me build my sanctuary. Can you help me figure them out?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Why don't you leave this place? Come with me, I could use some help out " @@ -172109,19 +168364,16 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Don't bother with these assholes." -msgstr "別理那些混蛋。" +msgid "Fuck off, dickwaddle." +msgstr "滾開,蠢貨。" #: lang/json/talk_topic_from_json.py -msgid "Hey there, not-asshole. Good to see you again." -msgstr "嘿,不混蛋的。很高興再次見到你。" +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgstr "呦。還有其他人熱衷於從這個巴士站搬到你的帳篷城嗎?" #: lang/json/talk_topic_from_json.py -msgid "" -"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " -"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" -" cranky. We cool?" -msgstr "嘿,我很抱歉先前有點嚇壞了。你可能是一個混蛋,但我相信你並不是那個意思。我的血糖很低,我有點暴躁。我們沒問題吧?" +msgid "Hey there. Good to see you again." +msgstr "嘿。很高興再次見到你。" #: lang/json/talk_topic_from_json.py msgid "" @@ -172130,16 +168382,19 @@ msgid "" msgstr "小心點,我現在又累又餓,對自己的行為不負任何責任。" #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." -msgstr "嘿。很高興再次見到你。" +msgid "" +"Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " +"sure you didn't mean it like that. My blood sugar is hella low, I get a bit" +" cranky. We cool?" +msgstr "嘿,我很抱歉先前有點嚇壞了。你可能是一個混蛋,但我相信你並不是那個意思。我的血糖很低,我有點暴躁。我們沒問題吧?" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" -msgstr "呦。還有其他人熱衷於從這個巴士站搬到你的帳篷城嗎?" +msgid "Hey there, not-asshole. Good to see you again." +msgstr "嘿,不混蛋的。很高興再次見到你。" #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." -msgstr "滾開,蠢貨。" +msgid "Don't bother with these assholes." +msgstr "別理那些混蛋。" #: lang/json/talk_topic_from_json.py msgid "What's up?" @@ -172423,12 +168678,6 @@ msgid "" "that?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I dunno, scientific interest? If you don't bring me anything, no worries. " -"I'm positively swimming in entertainment here, as you can see." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "If you get me a sample, I'll join your crazy camp expedition. Hell, if you " @@ -172437,6 +168686,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -172479,14 +168734,14 @@ msgstr "" msgid "I'll see what I can do." msgstr "我會看看我能做什麼。" -#: lang/json/talk_topic_from_json.py -msgid "Hey, are you a big fan of survival of the fittest?" -msgstr "你是適者生存的粉絲嗎?" - #: lang/json/talk_topic_from_json.py msgid "Thanks again for the grub, my friend." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hey, are you a big fan of survival of the fittest?" +msgstr "你是適者生存的粉絲嗎?" + #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" msgstr "你為什麼問?" @@ -172505,14 +168760,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " -"Help a poor sickly soul out?" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Oh you know, the usual: sittin' out here until I starve to death, playin' " -"cards with Dave, that kinda thing." +"Because I sure ain't fit, so I'm sittin' out here until I starve to death. " +"Help a poor sickly soul out?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -172536,12 +168791,12 @@ msgid "Why are you camped out here if they won't let you in?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgid "That's awful kind of you, you really are a wonderful person." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "That's awful kind of you, you really are a wonderful person." +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." msgstr "" #: lang/json/talk_topic_from_json.py @@ -172811,10 +169066,6 @@ msgstr "" msgid "What's your take on the situation here?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, uh… hi. You look new. I'm Aleesha." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." msgstr "" @@ -172827,6 +169078,10 @@ msgstr "" msgid "Aw hey, look who's back." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Oh, uh… hi. You look new. I'm Aleesha." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" msgstr "" @@ -172844,16 +169099,16 @@ msgid "Hi Aleesha. I can't stay to talk." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm fourteen." -msgstr "我不是小孩了,好嗎?我已經十四歲了。" +msgid "I'm not a kid, okay? I'm sixteen." +msgstr "我不是小孩了,好嗎?我已經十六歲了。" #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." msgstr "我不是小孩了,好嗎?我已經十五歲了。" #: lang/json/talk_topic_from_json.py -msgid "I'm not a kid, okay? I'm sixteen." -msgstr "我不是小孩了,好嗎?我已經十六歲了。" +msgid "I'm not a kid, okay? I'm fourteen." +msgstr "我不是小孩了,好嗎?我已經十四歲了。" #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" @@ -172863,14 +169118,6 @@ msgstr "" msgid "Sorry, I didn't mean anything by it. I'll be on my way." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I don't know what's up. I'm not sure what we've even doing here. They say " -"we're supposed to wait until we can be moved to the shelter downstairs, but " -"we've been here days and there's no word on how long we'll be waiting. It's" -" all so stupid, and nobody can tell me anything." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "We're just standing around here waiting, like a bunch of idiots. We're " @@ -172880,6 +169127,14 @@ msgid "" " We can hear them at night." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't know what's up. I'm not sure what we've even doing here. They say " +"we're supposed to wait until we can be moved to the shelter downstairs, but " +"we've been here days and there's no word on how long we'll be waiting. It's" +" all so stupid, and nobody can tell me anything." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You can't just go asking people questions like that nowadays. I'm a " @@ -172917,8 +169172,7 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." +msgid "Hello again, gorgeous" msgstr "" #: lang/json/talk_topic_from_json.py @@ -172928,7 +169182,8 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello again, gorgeous" +msgid "" +"Oh my, you're a beautiful lady, so nice to see you. They call me Alonso." msgstr "" #: lang/json/talk_topic_from_json.py @@ -172958,33 +169213,33 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Now that you are here, everything. Is there anything Alonso can… *do for " -"you*?" +"Well, it's a lot better now that you're here. Nice to see a familiar face." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well, it's a lot better now that you're here. Nice to see a familiar face." +"Now that you are here, everything. Is there anything Alonso can… *do for " +"you*?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Alonso cannot help himself, in the face of someone so fine as you." +msgid "You know me, I gotta be me, right?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You know me, I gotta be me, right?" +msgid "Alonso cannot help himself, in the face of someone so fine as you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " +"Aw man, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Aw man, why you gotta be like that? I'm just tryin' to get an air of " +"Aw come on, why you gotta be like that? I'm just tryin' to get an air of " "mystery okay? Nobody wants to be with a slutty guy from Brooklyn, but " "Alonso the mysterious is another story." msgstr "" @@ -173013,12 +169268,6 @@ msgstr "" msgid "Thanks. I'd better get going." msgstr "謝謝。我該走了。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Alonso does not wish to talk about the past, only the future. There are " -"dark days ahead, but perhaps together we can bring a little light?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I'm tryin' ta forget, y'know? Don't like thinkin' about the past. Better " @@ -173027,8 +169276,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Here in the center, Alonso is a bit lonely. We get a few brave, strong " -"travelers like yourself, though, and seeing them brightens Alonso's day." +"Alonso does not wish to talk about the past, only the future. There are " +"dark days ahead, but perhaps together we can bring a little light?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -173038,7 +169287,9 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, another new face. Hello. I am Boris." +msgid "" +"Here in the center, Alonso is a bit lonely. We get a few brave, strong " +"travelers like yourself, though, and seeing them brightens Alonso's day." msgstr "" #: lang/json/talk_topic_from_json.py @@ -173053,6 +169304,10 @@ msgstr "" msgid "It is good to see you again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Ah, another new face. Hello. I am Boris." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." msgstr "" @@ -173121,6 +169376,13 @@ msgstr "" msgid "I'm sorry. I'd better get going." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, now that you mention it, with the back bay cleared I could probably " +"set up back there and start work. I'll think about it, get back to me " +"later." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "There isn't much to do with a hammer and a saw here indoors, and working " @@ -173131,13 +169393,6 @@ msgid "" "caravans bring food, so they get priority, I can't argue with that." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, now that you mention it, with the back bay cleared I could probably " -"set up back there and start work. I'll think about it, get back to me " -"later." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Everyone agrees this is bad. Sleeping on a cot on the floor, crowded in " @@ -173167,15 +169422,15 @@ msgid "Got any more bread I can trade flour for?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there. I'm Dana, nice to see a new face." +msgid "Hello, nice to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello, nice to see you again." +msgid "It's good to see you're still around." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's good to see you're still around." +msgid "Hi there. I'm Dana, nice to see a new face." msgstr "" #: lang/json/talk_topic_from_json.py @@ -173227,10 +169482,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do a bit. I got a sourdough starter going almost as soon as I arrived, " -"and it's making passable bread already. I cooked some up yesterday " -"actually, I could probably trade a loaf of fresh bread for, say, about eight" -" cups of flour." +"Not since I last saw you, sorry. Come by in another day or two and I'll try" +" to keep a loaf set aside for you, but they disappear fast." msgstr "" #: lang/json/talk_topic_from_json.py @@ -173241,8 +169494,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Not since I last saw you, sorry. Come by in another day or two and I'll try" -" to keep a loaf set aside for you, but they disappear fast." +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight" +" cups of flour." msgstr "" #: lang/json/talk_topic_from_json.py @@ -173264,12 +169519,6 @@ msgid "" "that's a lot more than most." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " -"not too bad honestly. Everyone here seems to like it." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Great, here's a loaf of the best damn sourdough bread in the world. I used " @@ -173291,6 +169540,12 @@ msgid "" "now." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You seem pretty unhappy about the quality of your bread. Is there something" @@ -173320,6 +169575,10 @@ msgid "" "gonna murder someone soon, mark my words." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Huh. I've made a few friends here, but not so much as I'd stick around here" @@ -173327,10 +169586,6 @@ msgid "" "me. It does sound nice, if they're looking for more workers." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Have you heard anything back from the ranch about jobs yet?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " @@ -173368,13 +169623,13 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Well now, good to see another new face! Welcome to the center, friend, I'm " -"Draco." +msgid "Always good to see you, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Always good to see you, friend." +msgid "" +"Well now, good to see another new face! Welcome to the center, friend, I'm " +"Draco." msgstr "" #: lang/json/talk_topic_from_json.py @@ -173611,12 +169866,12 @@ msgid "Well then, I'll leave you here where it's safe." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Man, just imagine what I could do with a new guitar." +msgid "" +"My savior! My patron of the arts! You're always welcome here, friend." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"My savior! My patron of the arts! You're always welcome here, friend." +msgid "Man, just imagine what I could do with a new guitar." msgstr "" #: lang/json/talk_topic_from_json.py @@ -173716,14 +169971,14 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " -"up some Merch bucks for, say, five joints or joints-worth of the good stuff." +"Yeah, no worries, though. I'm good at the moment. Ask me again later and " +"maybe I'll have scrounged up some more cash for you." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Yeah, no worries, though. I'm good at the moment. Ask me again later and " -"maybe I'll have scrounged up some more cash for you." +"Amazing! My lucky day. Let's see here. What can I offer… I can scrounge " +"up some Merch bucks for, say, five joints or joints-worth of the good stuff." msgstr "" #: lang/json/talk_topic_from_json.py @@ -173774,12 +170029,6 @@ msgstr "" msgid "Is there anything I can do to help you out?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " -"meet new people but there are no beds to share." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "" @@ -173792,6 +170041,12 @@ msgstr "" msgid "Oh, hi." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you too, Fatima. I'm just passing through." msgstr "" @@ -173851,15 +170106,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." +msgid "Well, hello." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Well, hello." +msgid "Good to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Good to see you again." +msgid "Hi. Hi there. I'm Garry, Garry Villeneuve." msgstr "" #: lang/json/talk_topic_from_json.py @@ -173924,12 +170179,6 @@ msgid "" "look like we'll be here for the long term. If we live that long." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " -"call me Gunny." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hi." msgstr "嗨。" @@ -173938,6 +170187,12 @@ msgstr "嗨。" msgid "Hey again." msgstr "嘿,又見面了。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hello. I don't think I've seen you around before. I'm Guneet, people " +"call me Gunny." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Gunny." msgstr "" @@ -173985,12 +170240,12 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." +msgid "Nice to see you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nice to see you again." +msgid "" +"Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." msgstr "" #: lang/json/talk_topic_from_json.py @@ -174141,15 +170396,6 @@ msgid "" "like this before somebody snaps." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, there's a bunch of us. We're starting to form a bit of a community. " -"Fatima and I work together a fair bit, and I've been hanging out with Dana, " -"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " -"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " -"What did you want to know?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "For better or worse, we're a community now. Fatima and I work together a " @@ -174162,6 +170408,15 @@ msgid "" "want to know?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's a bunch of us. We're starting to form a bit of a community. " +"Fatima and I work together a fair bit, and I've been hanging out with Dana, " +"Draco, and Aleesha quite a lot. I don't know the Borichenko bunch, the " +"Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " +"What did you want to know?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" msgstr "你能告訴我有關自由商會的事情嗎?" @@ -174227,14 +170482,6 @@ msgid "" "hope that there's a future to be had." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Boris and Garry are married, I guess. They kinda keep to themselves, they " -"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" -" I'm not totally sure. He seems nice enough, but he's a man of few words. " -"I can't get a good bead on them. I've learned not to pry too much though." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "I didn't get to know Boris, Garry, and Stan so well for the first while. " @@ -174247,10 +170494,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I really can't get a bead on them. They never really talk to anyone outside" -" of their little family group, they just sit in their own spot and speak " -"Punjabi. They always seem nice, and they do their share, they just don't " -"have any social connection." +"Boris and Garry are married, I guess. They kinda keep to themselves, they " +"seem a bit standoffish if you ask me. Stan is Boris's brother, I think, but" +" I'm not totally sure. He seems nice enough, but he's a man of few words. " +"I can't get a good bead on them. I've learned not to pry too much though." msgstr "" #: lang/json/talk_topic_from_json.py @@ -174264,14 +170511,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " -"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " -"both seem to want to run the show here, but I try to stay out of those " -"politics and just focus on building stuff. I don't see much good coming of " -"it. Alonso is fine, he's clearly interested in me, and also in every other " -"single woman here. Not my thing, in a group this small. John is a walking " -"stereotype, I imagine there must be more depth to him, but I haven't seen it" -" yet." +"I really can't get a bead on them. They never really talk to anyone outside" +" of their little family group, they just sit in their own spot and speak " +"Punjabi. They always seem nice, and they do their share, they just don't " +"have any social connection." msgstr "" #: lang/json/talk_topic_from_json.py @@ -174288,13 +170531,25 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +"Vanessa… well, she's nice, I guess. I gotta say, she kinda drives me nuts, " +"but we're in this together so I try not to be too harsh. Uyen and Rhyzaea " +"both seem to want to run the show here, but I try to stay out of those " +"politics and just focus on building stuff. I don't see much good coming of " +"it. Alonso is fine, he's clearly interested in me, and also in every other " +"single woman here. Not my thing, in a group this small. John is a walking " +"stereotype, I imagine there must be more depth to him, but I haven't seen it" +" yet." msgstr "" #: lang/json/talk_topic_from_json.py msgid "Howdy, pardner." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Howdy, pardner. They call me Clemens. John Clemens. I'm an ol' cowhand." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, John." msgstr "" @@ -174349,11 +170604,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello ma'am. I am Mandeep Singh." +msgid "Hello sir. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hello sir. I am Mandeep Singh." +msgid "Hello ma'am. I am Mandeep Singh." msgstr "" #: lang/json/talk_topic_from_json.py @@ -174396,15 +170651,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." +msgid "Hi there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi there." +msgid "Oh, hello there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, hello there." +msgid "Ah! You are new. I'm sorry, I'm Mangalpreet." msgstr "" #: lang/json/talk_topic_from_json.py @@ -174605,12 +170860,12 @@ msgid "What brings you around here? We don't see a lot of new faces." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgid "Need to talk?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Need to talk?" +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." msgstr "" #: lang/json/talk_topic_from_json.py @@ -174702,17 +170957,17 @@ msgid "Do you want to talk about your story?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " -"Stan." +msgid "Hm? Oh, hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hm? Oh, hi." +msgid "...Hi." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "...Hi." +msgid "" +"Hello. I'm sorry, if we've met before, I don't really remember. I'm… I'm " +"Stan." msgstr "" #: lang/json/talk_topic_from_json.py @@ -174825,13 +171080,13 @@ msgid "Hmm, can we change this shave a little please?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"Oh, great. Another new mouth to feed? Just what we need. Well, I'm " -"Vanessa." +msgid "Oh, you're back." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, you're back." +msgid "" +"Oh, great. Another new mouth to feed? Just what we need. Well, I'm " +"Vanessa." msgstr "" #: lang/json/talk_topic_from_json.py @@ -174870,14 +171125,6 @@ msgstr "" msgid "Could you give me a haircut?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"You want the sarcastic version, or the really sarcastic version? I'm stuck " -"in a dank shitty brick building with two dozen strangers, the world's dead, " -"and there's not enough food to go around. Why don't you fuckin' figure it " -"out?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, I'm stuck in a dank shitty brick building with two dozen strangers, " @@ -174886,6 +171133,14 @@ msgid "" "to keeping my belly full. People like getting a good haircut." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I can see you need one, but last time I used these shears it was to stab a " @@ -175063,15 +171318,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Even once we got things sorted out, there weren't enough beds for everyone, " -"and definitely not enough supplies. These are harsh times. We're doing what" -" we can for those folks… at least they've got shelter." +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I do. I don't know what you did to convince them to move out, but our " -"supply chain and I both thank you. I hope it wasn't too unseemly." +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks… at least they've got shelter." msgstr "" #: lang/json/talk_topic_from_json.py @@ -175430,14 +171685,14 @@ msgstr "像個文明人, 不然我就讓你生不如死。" msgid "Just on watch, move along." msgstr "看什麼, 快離開。" -#: lang/json/talk_topic_from_json.py -msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "夫人, 你真的不應該旅行到那裏。" - #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" msgstr "外面盡是蠻荒, 對吧?" +#: lang/json/talk_topic_from_json.py +msgid "Ma'am, you really shouldn't be traveling out there." +msgstr "夫人, 你真的不應該旅行到那裏。" + #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center…" msgstr "" @@ -175466,14 +171721,14 @@ msgstr "" msgid "Well, I'd better be going. Bye." msgstr "我想我要走了,再見。" -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "歡迎…" - #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." msgstr "歡迎法警…" +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "歡迎…" + #: lang/json/talk_topic_from_json.py msgid "" "Before you say anything else, we're full. We don't have the space, nor the " @@ -175705,14 +171960,14 @@ msgid "" "attacked by zombie hordes, as you might guess." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Citizen..." -msgstr "公民…" - #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "法警…" +#: lang/json/talk_topic_from_json.py +msgid "Citizen..." +msgstr "公民…" + #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" msgstr "我可以交易補給品嗎?" @@ -175769,14 +172024,14 @@ msgid "" "buy from you. I don't suppose you want to donate?" msgstr "不行。我們沒有多餘的物資能夠賣你,而且我們也沒有辦法跟你買任何東西。我想你應該不會想要捐贈吧?" -#: lang/json/talk_topic_from_json.py -msgid "Heh, you look important." -msgstr "嘿, 你看起來很重要。" - #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" msgstr "你那真是一個閃亮亮的警徽啊!" +#: lang/json/talk_topic_from_json.py +msgid "Heh, you look important." +msgstr "嘿, 你看起來很重要。" + #: lang/json/talk_topic_from_json.py msgid "I'm actually new." msgstr "我其實是新來的。" @@ -175845,16 +172100,16 @@ msgid "" "it." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Ssh. Some people in here hate… mutations. This was an accident." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Same way you got yours, I bet. Keep quiet about it, some people here look " "down on people like us." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Ssh. Some people in here hate… mutations. This was an accident." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" msgstr "很抱歉我問了這樣子的問題" @@ -175881,22 +172136,22 @@ msgid "" "trade?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "As if you're one to talk. Screw You." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Screw You!" msgstr "去你的!" #: lang/json/talk_topic_from_json.py -msgid "As if you're one to talk. Screw You." +msgid "I thought I smelled a pig. I jest… please don't arrest me." msgstr "" #: lang/json/talk_topic_from_json.py msgid "Huh, thought I smelled someone new. Can I help you?" msgstr "嗯, 看來我聞到菜鳥味了。我能幫你什麼?" -#: lang/json/talk_topic_from_json.py -msgid "I thought I smelled a pig. I jest… please don't arrest me." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "You… smelled me?" msgstr "" @@ -176172,16 +172427,6 @@ msgstr "我猜你就是老大。" msgid "Glad to have you aboard." msgstr "很高興有你一同搭乘。" -#: lang/json/talk_topic_from_json.py -msgid "" -"Hold there. I don't care how you got access to this location, but you are " -"coming no further. Go away." -msgstr "等一下。我不在乎你是怎麼進來這裡的,但是你不能再前進了。快離開。" - -#: lang/json/talk_topic_from_json.py -msgid "We haven't changed our mind. Go away." -msgstr "我們沒有改變主意。快離開。" - #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" msgstr "那麼,你需要什麼嗎?" @@ -176262,6 +172507,16 @@ msgstr "" msgid "If/you speak to/understand… you/me. Yes?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "We haven't changed our mind. Go away." +msgstr "我們沒有改變主意。快離開。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hold there. I don't care how you got access to this location, but you are " +"coming no further. Go away." +msgstr "等一下。我不在乎你是怎麼進來這裡的,但是你不能再前進了。快離開。" + #: lang/json/talk_topic_from_json.py msgid "Wait! What??" msgstr "" @@ -176534,14 +172789,6 @@ msgstr "其實,我認為我沒空做那個,抱歉。" msgid "Keep it civil, merc." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Here to trade, I hope?" -msgstr "我希望在這裡進行交易,可以嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "Safe travels, scavenger." -msgstr "旅途平安,拾荒者。" - #: lang/json/talk_topic_from_json.py msgid "" "Still plenty of outlaws in the roads, perhaps you should tend to your job, " @@ -176557,11 +172804,12 @@ msgid "Oh, a U.S. marshal, how quaint." msgstr "喔,一位聯邦法警,多麼復古。" #: lang/json/talk_topic_from_json.py -msgid "" -"We have been supplying this lab here with food from a few hunting and " -"farming communities nearby. The roads are though and dangerous, but it " -"makes good money, and beats scavenging the cities for scraps." -msgstr "我們一直在這里為該實驗室提供附近一些狩獵和農業社區的食物。道路雖然險峻,但是能賺很多錢,而且完勝在城市裡拾荒。" +msgid "Here to trade, I hope?" +msgstr "我希望在這裡進行交易,可以嗎?" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "旅途平安,拾荒者。" #: lang/json/talk_topic_from_json.py msgid "" @@ -176569,6 +172817,13 @@ msgid "" "fair deal?" msgstr "我管好我的事,你管好你自己的,法警。這樣可以接受嗎?" +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "我們一直在這里為該實驗室提供附近一些狩獵和農業社區的食物。道路雖然險峻,但是能賺很多錢,而且完勝在城市裡拾荒。" + #: lang/json/talk_topic_from_json.py msgid "Keep safe, then." msgstr "那麼請注意安全。" @@ -176785,16 +173040,16 @@ msgid "I'll talk with them then…" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Morning ma'am, how can I help you?" -msgstr "早安小姐, 我可以幫你做什麼嗎?" +msgid "Can I help you, marshal?" +msgstr "我能幫你什麼嗎,法警?" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" msgstr "早安先生, 我可以幫你做什麼嗎?" #: lang/json/talk_topic_from_json.py -msgid "Can I help you, marshal?" -msgstr "我能幫你什麼嗎,法警?" +msgid "Morning ma'am, how can I help you?" +msgstr "早安小姐, 我可以幫你做什麼嗎?" #: lang/json/talk_topic_from_json.py msgid "" @@ -176902,14 +173157,14 @@ msgstr "你有什麼類型的工作可以給我做?" msgid "Not now." msgstr "現在不行。" -#: lang/json/talk_topic_from_json.py -msgid "I can take a look at you or your companions if you are injured." -msgstr "如果你或是你的同伴受傷了, 我能照料你們。" - #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." msgstr "晚點再回來, 我手頭上有點事情要忙。" +#: lang/json/talk_topic_from_json.py +msgid "I can take a look at you or your companions if you are injured." +msgstr "如果你或是你的同伴受傷了, 我能照料你們。" + #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." msgstr "[$200, 30分] 我需要你醫療我。" @@ -177172,15 +173427,15 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "New test subjects! I'm so glad you showed up!" +msgid "What did you bring me?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "What did you bring me?" +msgid "Do you smell something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you smell something?" +msgid "New test subjects! I'm so glad you showed up!" msgstr "" #: lang/json/talk_topic_from_json.py @@ -177256,6 +173511,205 @@ msgstr "" msgid "This is not reassuring." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I underwent experimental treatments paid for by the cartels to become a more" +" fearsome enforcer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Where are you from?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Half of the guys I underwent gene therapy with died, but hey if I had to " +"guess 90 percent of everyone is dead now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Only the insane will prosper." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did it end?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"When the government gave up on saving the depths of the city someone decided" +" to use tactical nukes and buy time for the retreat." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It blew an opening in the horde roaming the city and allowed me to escape." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Every choice has consequences though. But every consequence is probably " +"worth it, if it's the only way to survive." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a reactor when something big started smashing everything." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My coworkers and I spiked the reactor to prevent the deaths of hundreds of " +"thousands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I guess the other workers are probably all dead anyway now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things were good. I had a good job working for a zaibatsu. I was " +"respected, and had people working for me. I mostly ignored the changes that" +" were happening in the city, they were beneath me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what happened?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Slowly fewer and fewer of the cubicle drones came into the office. Security" +" notices piled up about routes through the city to avoid. Finally, one day " +"I came in and you could hear the riots coming closer and some kind of " +"animalistic roars, gigantic animals." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That last day security and scientists came up from the underground lab and " +"rounded up all the remaining staff. One of them said that this was the only" +" chance any of us had of surviving. They started injecting people at " +"gunpoint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a biohacker by trade before the Cataclysm. I made a living out of " +"bootlegging medicines, drugs and other copywritten biological products." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Imagine my surprise when I found myself infected with some kind of alien " +"stem cells." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's certainly helped me survive so far. Was there even a choice not to " +"take advantage of that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was created to be a billionaire's companion." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Their wealth and connections didn't save them." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"But they built me with the ability to survive a world beyond imagining." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "But here you are?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "A resort created a whole line of Uplifts just like me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We should have created a whole village of just us away from all the humans " +"once the Cataclysm came." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Maybe we did, haha." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why didn't you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I grew up on an island with a doctor." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I had so many brothers and sisters." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "We ate him." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The zoo designed me to be a link between my original species and humans " +"studying us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was there when the Cataclysm happened. Many animals were infected." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Zombears are terrifying creatures of destruction." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was part of a black ops paramilitary unit. I still don't know if I worked" +" for the government or a corporation." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My team was sent in to a lab on a purge in fire mission. The things I saw " +"in there haunt me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Others may have survived but I doubt it. I certainly hope they haven't come" +" back." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm a vatgrown, an almost man, a MacDuff. I was a product in the Old World." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Now there are too few people left to differentiate. Other than those morons" +" afraid of mutants." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Now I choose the cause I'll die for." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Heya, scav." msgstr "嘿,拾荒仔。" @@ -177348,11 +173802,11 @@ msgid "I must purge this place before I can move on." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Huh? *mumble mumble* … Who are you?" +msgid "Oh, you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Oh, you again." +msgid "Huh? *mumble mumble* … Who are you?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -177364,11 +173818,11 @@ msgid "And leave my tower and all my research? I think not." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Do you seek power as well?" +msgid "Ah, hello again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Ah, hello again." +msgid "Do you seek power as well?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -178962,8 +175416,8 @@ msgid " hack at %s with a vicious strike" msgstr " 用狠毒攻擊劈砍了 %s" #: lang/json/technique_from_json.py -msgid "Deathblow" -msgstr "致命打擊" +msgid "Mordhau" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -179634,65 +176088,65 @@ msgid " smashes %s with a pressurized slam" msgstr "" #: lang/json/technique_from_json.py -msgid "Shimmer Flurry" +msgid "Tipped Intent" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a blindingly fast slash at %s" +msgid "You quickly jab your weapon at %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " slashes at %s" +msgid " quickly jabs their weapon at %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Tipped Intent" +msgid "Shimmer Flurry" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You swiftly jab your weapon at %s" +msgid "" +"You release a blindingly fast low slash at %s and topple them off balance" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " swiftly jabs their weapon at %s" +msgid " slashes at %s and shoves them down" msgstr "" #: lang/json/technique_from_json.py -msgid "Decisive Blow" +msgid "Mirage Slash" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You release a debilitating swipe at %s" +msgid "" +"You hold your blade taut, and then launch a piercing slash on %s's top half" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " releases a debilitating swipe at %s" +msgid " lands a piercing blow on %s's face" msgstr "" #: lang/json/technique_from_json.py -msgid "End Slash" +msgid "The Point" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "" -"You envision the tension of a fully drawn bow and then launch a piercing " -"blow on %s's top half" +msgid "You drive your weapon down into %s's vulnerable center mass" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " lands a piercing blow on %s's face" +msgid " lands a deadly blow on %s's unguarded center mass" msgstr "" #: lang/json/technique_from_json.py -msgid "Harsh Reprimand" +msgid "Reprimand" msgstr "" #: lang/json/technique_from_json.py @@ -179762,17 +176216,17 @@ msgid " swiftly impales their fingers into %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Joint Pain" +msgid "Shifting Feint" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You explosively jab your weapon at %s joints" +msgid "You fake a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " explosively jabs at %s" +msgid " fakes a quick strike toward %s" msgstr "" #: lang/json/technique_from_json.py @@ -179796,8 +176250,8 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "" -"You envision a gathering tempest in and then release it's energy on %s's top" -" half" +"You envision a gathering tempest and then release it's energy on %s's top " +"half" msgstr "" #: lang/json/technique_from_json.py @@ -179849,8 +176303,8 @@ msgstr "發狂" #. ~ Description for BERSERK #: lang/json/technique_from_json.py msgid "" -"50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " -"reduces action cost and adds overall damage (S)" +"50% AP cost, 77% DMG, Down (2), STR (SS) greatly reduces AP cost and adds " +"(S) DMG" msgstr "" #: lang/json/technique_from_json.py @@ -179870,8 +176324,8 @@ msgstr "" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py msgid "" -"15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," -" and adds a (A) damage bonus, min 4 melee" +"15% AP cost, 35% DMG, wide arc, STR (SS) reduces AP cost, and adds (A) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -179891,8 +176345,8 @@ msgstr "" #. ~ Description for BISECTION #: lang/json/technique_from_json.py msgid "" -"Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " -"reduces action cost and increases overall (B) damage, min 2 melee" +"Crit!, 35% AP cost, 115% DMG, STR (SS) and DEX (SS) reduces AP cost and PER " +"(B) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -179907,9 +176361,7 @@ msgstr " 砍了 %s" #. ~ Description for HOOK #: lang/json/technique_from_json.py -msgid "" -"85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " -"reduces action cost" +msgid "85% AP, 88% DMG, Down (2), STR (C) reduces AP cost" msgstr "" #: lang/json/technique_from_json.py @@ -179924,8 +176376,8 @@ msgstr "" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py msgid "" -"75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " -"and adds a (C) damage bonus, min 4 melee" +"75% AP, 60% DMG, WIDE AOE, STR (S) reduces AP cost, and adds a (C) DMG, " +"melee (4)" msgstr "" #: lang/json/technique_from_json.py @@ -179940,8 +176392,8 @@ msgstr "" #. ~ Description for CHOP #: lang/json/technique_from_json.py msgid "" -"Crit only, 118% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E)" -" reduces action cost and increases overall (B) damage, min 2 melee" +"CRIT!, 118% AP, 125% Cut/Stab, DEX (D) and PER (E) reduces AP cost and adds " +"(B) DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -179956,8 +176408,8 @@ msgstr "" #. ~ Description for SMASH #: lang/json/technique_from_json.py msgid "" -"Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " -"(D) reduces action cost and increases overall (C) damage, min 2 melee" +"CRIT!, 110% AP, 120% Bash, DEX (C) and STR (D) reduces AP cost and adds (C) " +"Arpen, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -179977,8 +176429,7 @@ msgstr "" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py msgid "" -"Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" -" reduces action cost, min melee 1" +"Crit!, 120% AP, 125% damage, Stun (1), STR (A) reduces AP cost, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -179998,8 +176449,8 @@ msgstr "" #. ~ Description for SHOVE #: lang/json/technique_from_json.py msgid "" -"65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " -"(D) and DEX (E) reduce action cost" +"65% AP, REDUCED DMG, knockback (2), stun (1), STR (D) and DEX (E) reduce AP " +"cost" msgstr "" #: lang/json/technique_from_json.py @@ -180019,8 +176470,8 @@ msgstr "" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py msgid "" -"75% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " -"(B) and DEX (C) reduce action cost, min melee 1" +"75% AP, 110% DMG, knockback (3), STR (B) and DEX (C) reduce AP cost, melee " +"(1)" msgstr "" #: lang/json/technique_from_json.py @@ -180034,7 +176485,7 @@ msgstr "" #. ~ Description for TEAR #: lang/json/technique_from_json.py -msgid "Crit only, 110% Cut, 115% Stab, min melee 2" +msgid "CRIT!, 115% Cut/Stab, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -180053,8 +176504,7 @@ msgstr "" #. ~ Description for THRUST #: lang/json/technique_from_json.py -msgid "" -"110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" +msgid "110% Stab DMG, STR (E) and PER (D) adds DMG, melee (1)" msgstr "" #: lang/json/technique_from_json.py @@ -180074,8 +176524,7 @@ msgstr "" #. ~ Description for LUNGE #: lang/json/technique_from_json.py msgid "" -"Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " -"provides bonus damage, min 2 melee" +"CRIT!, 115% Stab DMG, Strength (D) and Perception (D) adds DMG, melee (2)" msgstr "" #: lang/json/technique_from_json.py @@ -180095,8 +176544,7 @@ msgstr "" #. ~ Description for PROD #: lang/json/technique_from_json.py msgid "" -"66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " -"DEX (C) reduces action cost, min 3 melee" +"66% AP, 70% Stab DMG, PER (C) adds Arpen, DEX (B) reduces AP cost, melee (3)" msgstr "" #: lang/json/technique_from_json.py @@ -180115,19 +176563,120 @@ msgstr "" #. ~ Description for PROBE #: lang/json/technique_from_json.py +msgid "80% AP, PER (C) adds DMG and Arpen (E), melee (3)" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You probe at %s's openings with your weapon" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " probes their weapon at %s " +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Burning Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " unleash a fiery attack against %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Inferno Blade" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes %s with powerful inferno" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Firesnake" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You strike through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " strikes through %s with a snaking flame" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Ring of Fire" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You become a flaming blur as you strike %s and those around you" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format msgid "" -"80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" -" also provides armor pierce (E), min 3 melee" +" becomes a flaming blur as they strike %s and those around them" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Flashing Sun" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " carve an arc through %s and those nearby" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " spot %s's weakpoint and strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Greater Insightful Strike" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Spin Attack" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You probe %s's openings" +msgid "You unleash a spin attack against %s and those nearby" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " probe %s " +msgid " unleashes a spin attack against %s and those nearby" msgstr "" #: lang/json/technique_from_json.py @@ -182857,19 +179406,6 @@ msgid "" "press them into basic shapes, ready for further crafting." msgstr "" -#: lang/json/terrain_from_json.py -msgid "gasoline pump" -msgstr "汽油泵" - -#. ~ Description for gasoline pump -#: lang/json/terrain_from_json.py -msgid "" -"Precious GASOLINE. The former world bowed to their petroleum god as it led " -"them to their ruin. There's plenty left over to fuel your inner road " -"warrior. If this gas dispenser doesn't give up the goods for free, you may " -"have to pay at a nearby terminal." -msgstr "" - #: lang/json/terrain_from_json.py msgid "fuel tank" msgstr "" @@ -182888,6 +179424,19 @@ msgstr "" msgid "A broken tank which was filled with gasoline." msgstr "" +#: lang/json/terrain_from_json.py +msgid "gasoline pump" +msgstr "汽油泵" + +#. ~ Description for gasoline pump +#: lang/json/terrain_from_json.py +msgid "" +"Precious GASOLINE. The former world bowed to their petroleum god as it led " +"them to their ruin. There's plenty left over to fuel your inner road " +"warrior. If this gas dispenser doesn't give up the goods for free, you may " +"have to pay at a nearby terminal." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "損壞的汽油泵" @@ -182899,6 +179448,16 @@ msgid "" "the liquid gold." msgstr "" +#. ~ Description for fuel tank +#: lang/json/terrain_from_json.py +msgid "A tank filled with diesel." +msgstr "" + +#. ~ Description for broken fuel tank +#: lang/json/terrain_from_json.py +msgid "A broken tank which was filled with diesel." +msgstr "" + #: lang/json/terrain_from_json.py msgid "diesel pump" msgstr "柴油泵" @@ -185527,17 +182086,6 @@ msgid "" "much good here though. Perhaps it could be salvaged for other purposes." msgstr "" -#: lang/json/terrain_from_json.py -msgid "LEGACY hydroponics unit" -msgstr "" - -#. ~ Description for LEGACY hydroponics unit -#: lang/json/terrain_from_json.py -msgid "" -"This is a deprecated hydroponics unit. Deconstruct it to receive your " -"materials back." -msgstr "" - #: lang/json/terrain_from_json.py msgid "burnt tree" msgstr "" @@ -185635,18 +182183,6 @@ msgstr "" msgid "bridge control" msgstr "橋梁控制" -#: lang/json/terrain_from_json.py -msgid "mass of blob feed" -msgstr "黏球怪飼料團" - -#: lang/json/terrain_from_json.py -msgid "squish!" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "mound of blob feed" -msgstr "黏球怪飼料堆" - #: lang/json/terrain_from_json.py msgid "singing sand" msgstr "" @@ -185821,6 +182357,10 @@ msgstr "頂重" msgid "self jacking" msgstr "內建頂重" +#: lang/json/tool_quality_from_json.py +msgid "siphoning" +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "chiseling" msgstr "鑿刻" @@ -186046,14 +182586,6 @@ msgstr "集雨器" msgid "magic door" msgstr "" -#: lang/json/trap_from_json.py -msgid "light snare trap" -msgstr "輕型繩套陷阱" - -#: lang/json/trap_from_json.py -msgid "heavy snare trap" -msgstr "重型繩套陷阱" - #: lang/json/vehicle_from_json.py msgid "work light" msgstr "工作燈" @@ -186586,62 +183118,10 @@ msgstr "原子能車" msgid "Flaming Atomic Car" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Roadheader" -msgstr "鑽掘機" - #: lang/json/vehicle_from_json.py msgid "Floating disk" msgstr "" -#: lang/json/vehicle_from_json.py -msgid "Robotic Taxi" -msgstr "機器人計程車" - -#: lang/json/vehicle_from_json.py -msgid "Armored Robot Carrier" -msgstr "裝甲機器人載體" - -#: lang/json/vehicle_from_json.py -msgid "Atomic Mini-Tank" -msgstr "原子迷你坦克" - -#: lang/json/vehicle_from_json.py -msgid "Light Tank" -msgstr "輕型坦克" - -#: lang/json/vehicle_from_json.py -msgid "Main Battle Tank" -msgstr "主戰坦克" - -#: lang/json/vehicle_from_json.py -msgid "Self-Propelled Howitzer" -msgstr "自走榴彈砲" - -#: lang/json/vehicle_from_json.py -msgid "Mobile Gun System" -msgstr "機動火炮系統" - -#: lang/json/vehicle_from_json.py -msgid "Bandit Bulldozer" -msgstr "強盜推土機" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Planter Tractor" -msgstr "重型播種拖拉機" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Plow Tractor" -msgstr "重型犁具拖拉機" - -#: lang/json/vehicle_from_json.py -msgid "Heavy Reaper Tractor" -msgstr "重型收割拖拉機" - -#: lang/json/vehicle_from_json.py -msgid "Infantry Fighting Vehicle" -msgstr "步兵戰車" - #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" msgstr "車載核融合槍" @@ -186917,6 +183397,12 @@ msgstr "將備胎掛載在車體外部掛架上。" msgid "A combustion engine. Burns fuel from a tank in the vehicle." msgstr "燃油引擎。消耗車輛油箱中的燃料。" +#: lang/json/vehicle_part_from_json.py +msgid "" +"A combustion engine for use on aircraft. Burns gasoline or avgas fuel from " +"a tank in the vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A combustion engine. Burns diesel fuel from a tank in the vehicle. Can " @@ -187108,7 +183594,6 @@ msgid "" msgstr "" #. ~ Description for {'str': 'floodlight'} -#. ~ Description for {'str': 'gel floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, circular light that illuminates the area outside the vehicle " @@ -187116,7 +183601,6 @@ msgid "" msgstr "" #. ~ Description for {'str': 'directed floodlight'} -#. ~ Description for {'str': 'gel directed floodlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A very bright, directed light that illuminates a half-circular area outside " @@ -187129,7 +183613,6 @@ msgid "headlight" msgstr "車頭燈" #. ~ Description for {'str': 'headlight'} -#. ~ Description for {'str': 'gel headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a narrow cone outside the vehicle when " @@ -187152,7 +183635,6 @@ msgid "wide angle headlight" msgstr "廣角車頭燈" #. ~ Description for {'str': 'wide angle headlight'} -#. ~ Description for {'str': 'gel wide angle headlight'} #: lang/json/vehicle_part_from_json.py msgid "" "A bright light that illuminates a wide cone outside the vehicle when turned " @@ -187215,6 +183697,10 @@ msgid "" "speed. Extremely fragile and cannot be armored." msgstr "極高性能的太陽能板。當暴露在陽光下時, 會慢慢地為車輛充電。雲會使充電速度更慢。極度脆弱, 且無法以裝甲來強化。" +#: lang/json/vehicle_part_from_json.py +msgid "mounted Cerberus laser cannon" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "" "A reinforced ram. Place at the edge of vehicle to reduce damage taken in " @@ -187410,14 +183896,14 @@ msgstr "車載 PPA-5 電漿槍" msgid "mounted A7 laser rifle" msgstr "車載 A7 雷射步槍" -#: lang/json/vehicle_part_from_json.py -msgid "mounted Cerberus laser cannon" -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "mounted M249" msgstr "車載M249榴彈發射器" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M249S" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted gatling shotgun" msgstr "" @@ -187442,6 +183928,10 @@ msgstr "車載 M240" msgid "mounted M60" msgstr "車載 M60" +#: lang/json/vehicle_part_from_json.py +msgid "mounted M60 Semi Auto" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" msgstr "車載 Mark 19 榴彈發射器" @@ -188599,6 +185089,13 @@ msgstr "寬輪胎,有著更好的抓地力和越野性能。" msgid "A wooden wheel." msgstr "木輪" +#. ~ Description for {'str': 'hauling space'} +#: lang/json/vehicle_part_from_json.py +msgid "" +"A huge, empty space used in truck trailers to transport vast quantities of " +"stuff." +msgstr "卡車拖車用來運輸大量物品的巨大儲放空間。" + #: lang/json/vehicle_part_from_json.py msgid "cargo trough" msgstr "貨物槽" @@ -188611,13 +185108,6 @@ msgid "" " makes it fragile." msgstr "這只不過是焊接到車輛底部並在下方延展的盆狀板金。儘管它能儲放很多東西,但它粗糙的品質與工法讓它十分脆弱。" -#. ~ Description for {'str': 'hauling space'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A huge, empty space used in truck trailers to transport vast quantities of " -"stuff." -msgstr "卡車拖車用來運輸大量物品的巨大儲放空間。" - #: lang/json/vehicle_part_from_json.py msgid "crude plating" msgstr "粗製裝甲板" @@ -188629,10 +185119,6 @@ msgid "" "protective as proper armor, but it'll do if there's nothing else available." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted laser cannon" -msgstr "車載雷射砲" - #. ~ Description for {'str': 'refrigerator'} #: lang/json/vehicle_part_from_json.py msgid "" @@ -188694,167 +185180,16 @@ msgid "" "size." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "folding extra light quarterpanel" -msgstr "折疊式超輕側擋板" - -#: lang/json/vehicle_part_from_json.py -msgid "foldable door" -msgstr "折疊式門" - -#: lang/json/vehicle_part_from_json.py -msgid "superalloy coating" -msgstr "超合金塗層" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tactical shotgun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted heavy machinegun" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted assault rifle" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted light machine gun" -msgstr "車載輕型機關槍" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted automatic grenade launcher" -msgstr "" - -#. ~ Description for Balancer -#: lang/json/vehicle_part_from_json.py -msgid "A large and heavy metal drum for balancing a vehicle." -msgstr "大型沉重的金屬鼓,用於平衡車輛。" - -#. ~ Description for roadheader -#: lang/json/vehicle_part_from_json.py -msgid "" -"A large metal jagged metalhead, powered by the vehicle's engines. Use the " -"vehicle controls to turn it on or off. When turned on, it will stop the " -"vehicle unless it has a strong engine. When turned on, it will destroy " -"walls near it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "bulette plating" -msgstr "鯊蜥獸甲裝甲板" - -#. ~ Description for orichalcum frame -#: lang/json/vehicle_part_from_json.py -msgid "" -"An expensive magical metal framework. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mana frame" -msgstr "" - -#. ~ Description for mana frame -#: lang/json/vehicle_part_from_json.py -msgid "A shape of pure mana that can float and carry items." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "robot_carrier" -msgstr "機器人托架" - -#. ~ Description for robot_carrier -#: lang/json/vehicle_part_from_json.py -msgid "" -"A cargo space for carrying robots. 'e'xamine it to capture a robot next to " -"you, or to release the robot currently contained. When selecting a robot to" -" capture, choose its tile relative to you, not the part." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm tank gun (AL)" -msgstr "120mm 坦克炮 (自動裝填)" - -#: lang/json/vehicle_part_from_json.py -msgid "120mm RWS" -msgstr "120mm 遙控武器系統" - -#: lang/json/vehicle_part_from_json.py -msgid "ATGM turret" -msgstr "反坦克導彈塔" - -#: lang/json/vehicle_part_from_json.py -msgid "30mm chaingun" -msgstr "30mm 鏈炮" - #: lang/json/vehicle_part_from_json.py msgid "" "A closed cycle, external combustion steam turbine. Burns coal from a bunker" " in the vehicle to produce steam." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted slingshot cannon" -msgstr "車載彈射砲" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted lacerator" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary cannon" -msgstr "車載旋轉炮" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted pulse laser" -msgstr "車載脈衝雷射" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted turbolaser" -msgstr "車載渦輪雷射" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted ripper" -msgstr "車載撕裂者" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted scorpion ballista" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted speargun" -msgstr "車載魚叉槍" - -#: lang/json/vehicle_part_from_json.py -msgid "mounted tesla cannon" -msgstr "車載電磁炮" - #: lang/json/vehicle_part_from_json.py msgid "cargo shelving" msgstr "" -#. ~ Description for {'str': 'solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen solar panels set on a chassis reaching several meters high. It " -"keeps the fragile panels safely away from any potential threats and improves" -" efficiency due to being able track the sun. Will recharge the vehicle's " -"electrical power when exposed to the sun." -msgstr "" - -#. ~ Description for {'str': 'upgraded solar array'} -#. ~ Description for {'str': 'upgraded reinforced solar array'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A dozen upgraded solar panels set on a chassis reaching several meters high." -" It keeps the fragile panels safely away from any potential threats and " -"improves efficiency due to being able track the sun. Will recharge the " -"vehicle's electrical power when exposed to the sun." -msgstr "" -"十二片進階太陽能板,裝設在數公尺高的底盤上。它使脆弱的面板遠離任何潛在的威脅,還能夠跟踪太陽以提高效率。當暴露在陽光下,會為車輛的電力充電。" - #: lang/json/vehicle_part_from_json.py msgid "wiring" msgstr "接線" @@ -188866,33 +185201,6 @@ msgid "" "of a vehicle to another part." msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "pocket dimension cargo" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "rubber treads" -msgstr "橡膠履帶" - -#. ~ Description for {'str': 'rubber treads'} -#. ~ Description for {'str': 'steel treads'} -#. ~ Description for {'str': 'tank treads'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A section of continuous track, the kind mounted on construction vehicles and" -" military fighting vehicles. It acts as a wheel, and the broad surface " -"provides plenty of traction to move heavy vehicles off-road, but at the cost" -" of speed due to the heavy weight." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "steel treads" -msgstr "鋼鐵履帶" - -#: lang/json/vehicle_part_from_json.py -msgid "tank treads" -msgstr "坦克履帶" - #: lang/json/vehicle_part_from_json.py msgid "mounted TDI Vector" msgstr "" @@ -189113,10 +185421,6 @@ msgstr "車載 RM802" msgid "mounted RM88 battle rifle" msgstr "" -#: lang/json/vehicle_part_from_json.py -msgid "mounted rotary speargun" -msgstr "車載旋轉式魚叉槍" - #: lang/json/vehicle_part_from_json.py msgid "mounted Ruger 10/22" msgstr "" @@ -189174,451 +185478,44 @@ msgid "mounted V29 laser" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel panel" -msgstr "凝膠板" - -#: lang/json/vehicle_part_from_json.py -msgid "gray wall" -msgstr "灰質牆" - -#. ~ Description for {'str': 'gray wall'} -#. ~ Description for {'str': 'ooze barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a vehicle wall. Keeps zombies outside the " -"vehicle and prevents people from seeing through it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel quarterpanel" -msgstr "凝膠側擋板" - -#. ~ Description for {'str': 'gel quarterpanel'} -#. ~ Description for {'str': 'gray barricade'} -#. ~ Description for {'str': 'ooze screen'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a half-height vehicle wall. Keeps zombies " -"outside the vehicle but allows people to see over it." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gray barricade" -msgstr "灰質路障" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze screen" -msgstr "軟泥屏風" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze barrier" -msgstr "軟泥屏障" - -#: lang/json/vehicle_part_from_json.py -msgid "gel framework" -msgstr "凝膠框架" - -#. ~ Description for {'str': 'gel framework'} -#. ~ Description for {'str': 'gray frame'} -#. ~ Description for {'str': 'ooze chassis'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, shaped to provide attachment points for other blobs. Other " -"vehicle components and blobs can be mounted on it. If all the frames and " -"components of a vehicle are foldable or made from blobs, the vehicle can be " -"folding into a small package and picked up as a normal item." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gray frame" -msgstr "灰質框架" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze chassis" -msgstr "軟泥底盤" - -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living, glowing blob. Having been filled with electrical power, can " -"release it as light of varying strength." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel aisle lights" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel directed floodlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel wide angle headlight" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ice ram" -msgstr "冰保險桿" - -#. ~ Description for {'str': 'ice ram'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will absorb damage in a" -" vehicle collision and deliver additional damage to the other object in the " -"collision. It should be mounted on the edge of the vehicle, preferably the " -"front." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "Gelatinous tracks" -msgstr "" - -#. ~ Description for {'str': 'Gelatinous tracks'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A set of continuous, interlocking tracks made out of blob. They can be used" -" in place of wheels, and provide good traction and off-road performance." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "Oozing tracks" -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "inert core" -msgstr "惰性核心" - -#. ~ Description for {'str': 'inert core'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A sleeping amorphous core, acting as a rotating, universal mount for a " -"weapon. If your hands are empty, you can stand next to a tentacle and " -"'f'ire the weapon by selecting the tile." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "A living blob turned into a heavy vehicle weapon." -msgstr "" - -#. ~ Description for {'str': 'frost lancer'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state and transformed into a heavy" -" vehicle weapon." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "ice pack" -msgstr "冰袋" - -#. ~ Description for {'str': 'ice pack'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It will keep items stored " -"in it cold, reducing the speed at which food and drink rots." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "icy windshield" -msgstr "冰冷的擋風玻璃" - -#. ~ Description for {'str': 'icy windshield'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It is transparent, and can" -" be used to see out of the vehicle." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gelacier boat hull" -msgstr "" - -#. ~ Description for {'str': 'gelacier boat hull'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, existing in a super-cooled state. It acts as a boat hull." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel retriever" -msgstr "凝膠回收器" - -#. ~ Description for {'str': 'gel retriever'} -#. ~ Description for {'str': 'gray retriever'} -#. ~ Description for {'str': 'ooze retriever'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed to act as a scoop. Use the vehicle controls to turn " -"it on or off. When turned on, it will scoop up any loose items that it " -"travels over, putting them into the vehicle's storage." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel harness" -msgstr "凝膠安全帶" - -#. ~ Description for {'str': 'gel harness'} -#. ~ Description for {'str': 'gray harness'} -#. ~ Description for {'str': 'ooze harness'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, reformed as a belt and attached to a seat." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "capsule (10L)" -msgstr "膠囊 (10 公升)" - -#. ~ Description for {'str': 'capsule (10L)'} -#. ~ Description for {'str': 'cocoon (30L)'} -#. ~ Description for {'str': 'pod (20L)'} -#: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, formed into a storage space for holding liquids. If filled " -"with the appropriate fuel for the vehicle's engine, the engine will " -"automatically draw fuel from the tank when the engine is on. If filled with" -" water, you can access the water from a water faucet, if one is installed in" -" the vehicle. You can also use a rubber hose to siphon liquids out of a " -"tank." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel tank (60L)" -msgstr "凝膠罐 (60 公升)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel reinforcement" -msgstr "凝膠強化板" - -#. ~ Description for {'str': 'gel reinforcement'} -#. ~ Description for {'str': 'gray reinforcement'} -#. ~ Description for {'str': 'ooze reinforcement'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, acting as armor plate." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel roof" -msgstr "凝膠頂蓋" - -#. ~ Description for {'str': 'gel roof'} -#. ~ Description for {'str': 'gray roof'} -#. ~ Description for {'str': 'ooze roof'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, placed as roof." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gel seat" -msgstr "凝膠座椅" - -#. ~ Description for {'str': 'gel seat'} -#. ~ Description for {'str': 'gray seat'} -#. ~ Description for {'str': 'ooze seat'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a comfy couch. You can sit here." +msgid "mounted tactical shotgun" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel receptacle" -msgstr "凝膠容器" - -#. ~ Description for {'str': 'gel receptacle'} -#. ~ Description for {'str': 'gray receptacle'} -#. ~ Description for {'str': 'ooze receptacle'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, shaped into a cargo space." +msgid "mounted heavy machinegun" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel pouch (under)" -msgstr "凝膠袋 (下方)" - -#: lang/json/vehicle_part_from_json.py -msgid "gel walkway" -msgstr "凝膠走道" - -#. ~ Description for {'str': 'gel walkway'} -#. ~ Description for {'str': 'gray walkway'} -#. ~ Description for {'str': 'ooze walkway'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, formed into a walkway." +msgid "mounted assault rifle" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "gel hatch" -msgstr "凝膠艙門" +msgid "mounted light machine gun" +msgstr "車載輕型機關槍" -#. ~ Description for {'str': 'gel hatch'} -#. ~ Description for {'str': 'gray hatch'} -#. ~ Description for {'str': 'ooze hatch'} #: lang/json/vehicle_part_from_json.py -msgid "" -"A living blob, acting as a door. Has a transparent patch so you can see out" -" of it, even when closed." +msgid "mounted automatic grenade launcher" msgstr "" #: lang/json/vehicle_part_from_json.py -msgid "opaque gel hatch" -msgstr "不透明凝膠艙門" +msgid "bulette plating" +msgstr "鯊蜥獸甲裝甲板" -#. ~ Description for {'str': 'opaque gel hatch'} -#. ~ Description for {'str': 'opaque gray hatch'} -#. ~ Description for {'str': 'opaque ooze hatch'} +#. ~ Description for orichalcum frame #: lang/json/vehicle_part_from_json.py msgid "" -"A living blob, acting as a door. Entirely opaque so you can't see through " -"it when closed." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "gray retriever" -msgstr "灰質回收器" - -#: lang/json/vehicle_part_from_json.py -msgid "gray harness" -msgstr "灰質安全帶" - -#: lang/json/vehicle_part_from_json.py -msgid "cocoon (30L)" -msgstr "灰質繭 (30 公升)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray tank (100L)" -msgstr "灰質大桶 (100公升)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray reinforcement" -msgstr "灰質強化板" - -#: lang/json/vehicle_part_from_json.py -msgid "gray roof" -msgstr "灰質頂蓋" - -#: lang/json/vehicle_part_from_json.py -msgid "gray seat" -msgstr "灰質座椅" - -#: lang/json/vehicle_part_from_json.py -msgid "gray receptacle" -msgstr "灰質容器" - -#: lang/json/vehicle_part_from_json.py -msgid "gray pouch (under)" -msgstr "灰質袋 (下方)" - -#: lang/json/vehicle_part_from_json.py -msgid "gray walkway" -msgstr "灰質走道" - -#: lang/json/vehicle_part_from_json.py -msgid "gray hatch" -msgstr "灰質艙門" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque gray hatch" -msgstr "不透明灰質艙門" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze retriever" -msgstr "軟泥回收器" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze harness" -msgstr "軟泥安全帶" - -#: lang/json/vehicle_part_from_json.py -msgid "pod (20L)" -msgstr "莢 (20 公升)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze tank (80L)" -msgstr "黏液罐 (80 公升)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze reinforcement" -msgstr "軟泥強化板" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze roof" -msgstr "軟泥頂蓋" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze seat" -msgstr "軟泥座椅" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze receptacle" -msgstr "軟泥容器" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze pouch (under)" -msgstr "軟泥袋 (下方)" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze walkway" -msgstr "軟泥走道" - -#: lang/json/vehicle_part_from_json.py -msgid "ooze hatch" -msgstr "軟泥艙門" - -#: lang/json/vehicle_part_from_json.py -msgid "opaque ooze hatch" -msgstr "不透明軟泥艙門" - -#: lang/json/vehicle_part_from_json.py -msgid "amorphous core" -msgstr "不定形核心" - -#. ~ Description for {'str': 'amorphous core'} -#: lang/json/vehicle_part_from_json.py -msgid "An amorphous mass, the living heart and brain of a blob vehicle." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "snow slider" -msgstr "" - -#. ~ Description for {'str': 'snow slider'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob, existing in a super-cooled state. It acts as a wheel." -msgstr "" - -#. ~ Description for {'str': 'gelatinous wheel'} -#. ~ Description for {'str': 'gray wheel'} -#: lang/json/vehicle_part_from_json.py -msgid "A living blob. It acts as a wheel." -msgstr "" - -#: lang/json/vehicle_part_from_json.py -msgid "diamond barrier" -msgstr "鑽石屏障" - -#. ~ Description for {'str': 'diamond barrier'} -#: lang/json/vehicle_part_from_json.py -msgid "A transparent, solid sheet of self-sustaining crystals." +"An expensive magical metal framework. Other vehicle components can be " +"mounted on it, and it can be attached to other frames to increase the " +"vehicle's size." msgstr "" -#. ~ Description for {'str': 'diamond frame'} #: lang/json/vehicle_part_from_json.py -msgid "" -"A framework of super-strong crystal. Other vehicle components can be " -"mounted on it, and it can be attached to other frames to increase the " -"vehicle's size." +msgid "mana frame" msgstr "" -#. ~ Description for {'str': 'diamond plating'} +#. ~ Description for mana frame #: lang/json/vehicle_part_from_json.py -msgid "" -"Transparent crystal armor plate. Will partially protect other components on" -" the same frame from damage." +msgid "A shape of pure mana that can float and carry items." msgstr "" #: lang/json/vitamin_from_json.py @@ -189682,11 +185579,20 @@ msgstr "" msgid "%s/%s " msgstr "" +#: src/achievement.cpp +msgid " (further requirements hidden)" +msgstr "" + #: src/achievement.cpp #, c-format msgid "Completed %s" msgstr "" +#: src/achievement.cpp +#, c-format +msgid "Failed %s" +msgstr "" + #: src/achievement.cpp msgid "" "\n" @@ -189733,10 +185639,6 @@ msgstr "其他" msgid "Debug" msgstr "除錯" -#: src/action.cpp -msgid "Back" -msgstr "返回" - #: src/action.cpp msgid "Actions" msgstr "動作" @@ -189751,6 +185653,30 @@ msgstr "主選單" msgid "%s (Direction button)" msgstr "" +#. ~ Sound of a shovel digging a pit at work! +#. ~ Sound of a shovel filling a pit or mound at work! +#: src/activity_actor.cpp src/activity_handlers.cpp +msgid "hsh!" +msgstr "hsh!" + +#: src/activity_actor.cpp +msgid "Something crawls out of the coffin!" +msgstr "有東西從棺材裡爬出來!" + +#: src/activity_actor.cpp +msgid "You finish exhuming a grave." +msgstr "你完成挖掘墳墓了。" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging the %s." +msgstr "你完成了挖掘 %s。" + +#: src/activity_actor.cpp +#, c-format +msgid "You finish digging up %s." +msgstr "你完成了挖掘 %s。" + #: src/activity_actor.cpp msgid "Use electrohack?" msgstr "使用電子駭客?" @@ -189775,8 +185701,8 @@ msgstr "你的能量流失了!" msgid "You cannot hack this." msgstr "" -#: src/activity_actor.cpp src/activity_handlers.cpp src/computer_session.cpp -#: src/computer_session.cpp src/iuse.cpp src/map.cpp +#: src/activity_actor.cpp src/computer_session.cpp src/computer_session.cpp +#: src/iuse.cpp src/map.cpp msgid "an alarm sound!" msgstr "警報聲大作!" @@ -189804,10 +185730,115 @@ msgstr "你啟動了面板!" msgid "The nearby doors unlock." msgstr "" +#: src/activity_actor.cpp +msgid "You found the wire that starts the engine." +msgstr "" + +#: src/activity_actor.cpp +msgid "You found a wire that looks like the right one." +msgstr "" + +#: src/activity_actor.cpp +msgid "The red wire always starts the engine, doesn't it?" +msgstr "紅色的線總是能啟動引擎, 不是麼?" + +#: src/activity_actor.cpp +msgid "By process of elimination, you found the wire that starts the engine." +msgstr "" + #: src/activity_actor.cpp msgid "Moving canceled auto-pickup." msgstr "" +#: src/activity_actor.cpp +msgid "With a satisfying click, the chain-link gate opens." +msgstr "一陣輕響後, 鐵鍊門打開了。" + +#: src/activity_actor.cpp +msgid "With a satisfying click, the lock on the door opens." +msgstr "一陣輕響後, 門的鎖被撬開了。" + +#: src/activity_actor.cpp +msgid "The door swings open…" +msgstr "門緩緩的開啟…" + +#: src/activity_actor.cpp +msgid "Your clumsy attempt jams the lock!" +msgstr "你笨拙地嘗試, 卻把鎖眼堵住了!" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you destroy your tool." +msgstr "這個鎖無情的嘲笑你的開鎖技術, 而你毀壞了你的工具。" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it, and you damage your tool." +msgstr "這個鎖無情的嘲笑你的開鎖技術, 而你損傷了你的工具。" + +#: src/activity_actor.cpp +msgid "The lock stumps your efforts to pick it." +msgstr "這個鎖無情的嘲笑你的開鎖技術。" + +#: src/activity_actor.cpp src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp +#: src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +msgid "You cannot do that while mounted." +msgstr "騎乘時無法做那個。" + +#: src/activity_actor.cpp +msgid "There is nothing to lockpick nearby." +msgstr "" + +#: src/activity_actor.cpp +msgid "Use your lockpick where?" +msgstr "把你的的開鎖器用在哪邊?" + +#: src/activity_actor.cpp +msgid "You pick your nose and your sinuses swing open." +msgstr "你挖鼻孔使你的鼻道暢通。" + +#: src/activity_actor.cpp +msgid "" +"You can pick your friends, and you can\n" +"pick your nose, but you can't pick\n" +"your friend's nose." +msgstr "" + +#: src/activity_actor.cpp +msgid "That door isn't locked." +msgstr "門沒鎖。" + +#: src/activity_actor.cpp +msgid "That cannot be picked." +msgstr "這東西不能被撬鎖。" + +#: src/activity_actor.cpp +msgid "" +"You feel you should've fallen asleep by now, but somehow you're still awake." +msgstr "" + +#: src/activity_actor.cpp +msgid "You toss and turn…" +msgstr "你輾轉反側…" + +#: src/activity_actor.cpp +msgid "You try to sleep, but can't." +msgstr "" + +#: src/activity_actor.cpp +msgid "You have trouble sleeping, keep trying?" +msgstr "你難以入睡,繼續嘗試?" + +#: src/activity_actor.cpp +msgid "Stop trying to fall asleep and get up." +msgstr "停止嘗試入睡並起床。" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep." +msgstr "繼續嘗試入睡。" + +#: src/activity_actor.cpp +msgid "Continue trying to fall asleep and don't ask again." +msgstr "繼續嘗試入睡,不再詢問。" + #. ~ Sound of a Rat mutant burrowing! #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." @@ -189875,8 +185906,8 @@ msgstr "" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " -"butchering rack, a nearby hanging meathook, or both a long rope in your " -"inventory and a nearby tree to hang the corpse from." +"butchering rack, a nearby hanging meathook, a crane, or both a long rope in " +"your inventory and a nearby tree to hang the corpse from." msgstr "" #: src/activity_handlers.cpp @@ -190147,52 +186178,10 @@ msgstr "你什麼都沒發現。" msgid "The %s runs out of batteries." msgstr "%s 沒電了。" -#: src/activity_handlers.cpp -msgid "This wire will start the engine." -msgstr "這根線可以發動引擎。" - -#: src/activity_handlers.cpp -msgid "This wire will probably start the engine." -msgstr "這根線也許可以發動引擎。" - -#: src/activity_handlers.cpp -msgid "By process of elimination, this wire will start the engine." -msgstr "根據排除法, 這根線可以發動引擎。" - -#: src/activity_handlers.cpp -msgid "The red wire always starts the engine, doesn't it?" -msgstr "紅色的線總是能啟動引擎, 不是麼?" - #: src/activity_handlers.cpp msgid "You finish salvaging." msgstr "你結束回收了。" -#: src/activity_handlers.cpp -msgid "There's no corpse to make into a zombie slave!" -msgstr "這裡沒有屍體, 無法製作屍奴!" - -#: src/activity_handlers.cpp -msgid "" -"You slice muscles and tendons, and remove body parts until you're confident " -"the zombie won't be able to attack you when it reanimates." -msgstr "你切斷了屍體的肌肉和筋腱並把它解體, 殭屍即使再次復甦也不會有任何攻擊性了。" - -#: src/activity_handlers.cpp -msgid "" -"You hack into the corpse and chop off some body parts. You think the zombie" -" won't be able to attack when it reanimates." -msgstr "你把屍體砍開並把它解體, 殭屍即使再次復甦也不會有任何攻擊性了。" - -#: src/activity_handlers.cpp -msgid "You cut up the corpse too much, it is thoroughly pulped." -msgstr "屍體被切成了一灘爛肉。" - -#: src/activity_handlers.cpp -msgid "" -"You cut into the corpse trying to make it unable to attack, but you don't " -"think you have it right." -msgstr "你切開了屍體以防止它再次攻擊, 但你不肯定這有沒有效果。" - #. ~ Sound of a Pickaxe at work! #: src/activity_handlers.cpp msgid "CHNK! CHNK! CHNK!" @@ -190338,34 +186327,6 @@ msgstr "嘶嘶嘶嘶兹!" msgid "With a satisfying click, the lock on the safe opens!" msgstr "一陣輕響後,保險箱的鎖被撬開了。" -#: src/activity_handlers.cpp -msgid "With a satisfying click, the chain-link gate opens." -msgstr "一陣輕響後, 鐵鍊門打開了。" - -#: src/activity_handlers.cpp -msgid "With a satisfying click, the lock on the door opens." -msgstr "一陣輕響後, 門的鎖被撬開了。" - -#: src/activity_handlers.cpp -msgid "The door swings open…" -msgstr "門緩緩的開啟…" - -#: src/activity_handlers.cpp -msgid "Your clumsy attempt jams the lock!" -msgstr "你笨拙地嘗試, 卻把鎖眼堵住了!" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you destroy your tool." -msgstr "這個鎖無情的嘲笑你的開鎖技術, 而你毀壞了你的工具。" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it, and you damage your tool." -msgstr "這個鎖無情的嘲笑你的開鎖技術, 而你損傷了你的工具。" - -#: src/activity_handlers.cpp -msgid "The lock stumps your efforts to pick it." -msgstr "這個鎖無情的嘲笑你的開鎖技術。" - #: src/activity_handlers.cpp msgid "Repeat once" msgstr "重複一次" @@ -190496,6 +186457,10 @@ msgstr "你覺得有東西拉扯魚線!" msgid "You finish fishing" msgstr "你釣完了" +#: src/activity_handlers.cpp src/avatar.cpp src/npc.cpp +msgid "It's too dark to read!" +msgstr "太暗了, 沒辦法閱讀!" + #: src/activity_handlers.cpp msgid "You finish reading." msgstr "你結束閱讀了。" @@ -190522,26 +186487,6 @@ msgstr "你結束等待,感覺神清氣爽。" msgid "%s finishes chatting with you." msgstr "%s結束與你閒聊。" -#: src/activity_handlers.cpp -msgid "You toss and turn…" -msgstr "你輾轉反側…" - -#: src/activity_handlers.cpp -msgid "You have trouble sleeping, keep trying?" -msgstr "你難以入睡,繼續嘗試?" - -#: src/activity_handlers.cpp -msgid "Stop trying to fall asleep and get up." -msgstr "停止嘗試入睡並起床。" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep." -msgstr "繼續嘗試入睡。" - -#: src/activity_handlers.cpp -msgid "Continue trying to fall asleep and don't ask again." -msgstr "繼續嘗試入睡,不再詢問。" - #: src/activity_handlers.cpp msgid "The autodoc suffers a catastrophic failure." msgstr "全自動外科醫生發生災難性的失誤。" @@ -190630,10 +186575,6 @@ msgid "" "actually stitching 's wounds." msgstr "全自動外科醫生生在接下來的程序中不規則地移動著,並沒有正確地縫合 的傷口。" -#: src/activity_handlers.cpp src/player_hardcoded_effects.cpp -msgid "You try to sleep, but can't…" -msgstr "你試著睡覺,但睡不著…" - #: src/activity_handlers.cpp msgid "" "The Autodoc returns to its resting position after successfully performing " @@ -190780,30 +186721,6 @@ msgstr "你完成鑽孔。" msgid " finishes drilling." msgstr "" -#. ~ Sound of a shovel digging a pit at work! -#. ~ Sound of a shovel filling a pit or mound at work! -#: src/activity_handlers.cpp -msgid "hsh!" -msgstr "hsh!" - -#: src/activity_handlers.cpp -msgid "Something crawls out of the coffin!" -msgstr "有東西從棺材裡爬出來!" - -#: src/activity_handlers.cpp -msgid "You finish exhuming a grave." -msgstr "你完成挖掘墳墓了。" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging the %s." -msgstr "你完成了挖掘 %s。" - -#: src/activity_handlers.cpp -#, c-format -msgid "You finish digging up %s." -msgstr "你完成了挖掘 %s。" - #: src/activity_handlers.cpp #, c-format msgid "You finish filling up %s." @@ -191436,10 +187353,6 @@ msgstr "SE" msgid "South East" msgstr "東南" -#: src/advanced_inv.cpp src/weather.cpp -msgid "W" -msgstr "W" - #: src/advanced_inv.cpp src/weather.cpp msgid "West" msgstr "西" @@ -191630,6 +187543,11 @@ msgstr "" msgid "Source area is the same as destination (%s)." msgstr "來源地區與目標地區相同 (%s)。" +#: src/advanced_inv.cpp +#, c-format +msgid "You have no space for %s" +msgstr "" + #: src/advanced_inv.cpp msgid "Default layout was saved." msgstr "預設佈局已經儲存。" @@ -191658,10 +187576,6 @@ msgstr "來源容器是空的。" msgid "You can unload only liquids into target container." msgstr "你只能把液體裝入目標容器。" -#: src/advanced_inv.cpp -msgid "You can't partially unload liquids from unsealable container." -msgstr "你無法從不能密封的容器中倒出部分液體。" - #: src/advanced_inv.cpp msgid "You can't pick up a liquid." msgstr "你無法撿起液體。" @@ -191760,6 +187674,10 @@ msgstr "繫結" msgid "an aura around you" msgstr "一層 靈氣 圍繞著你" +#: src/armor_layers.cpp +msgid "Unexpected layer" +msgstr "" + #: src/armor_layers.cpp #, c-format msgid "" @@ -191832,11 +187750,6 @@ msgstr "累贅:" msgid "Warmth:" msgstr "保暖度:" -#: src/armor_layers.cpp -#, c-format -msgid "Storage (%s):" -msgstr "儲物空間 (%s):" - #: src/armor_layers.cpp msgid "Protection" msgstr "防護" @@ -191849,6 +187762,10 @@ msgstr "鈍擊: " msgid "Cut:" msgstr "砍劈: " +#: src/armor_layers.cpp +msgid "Ballistic:" +msgstr "" + #: src/armor_layers.cpp msgid "Acid:" msgstr "防酸:" @@ -191909,16 +187826,6 @@ msgstr "這件衣物讓你在水下看得更遠。" msgid "It can occupy the same space as other things." msgstr "" -#: src/armor_layers.cpp -#, c-format -msgid "%s is too far to sort armor." -msgstr "%s 距離太遠了無法排序裝備。" - -#: src/armor_layers.cpp -#, c-format -msgid "%s is not friendly!" -msgstr "%s 對你並不友善!" - #: src/armor_layers.cpp msgid "Sort Armor" msgstr "排序裝備" @@ -191963,6 +187870,16 @@ msgstr "累贅與保暖" msgid "Encumbrance" msgstr "累贅" +#: src/armor_layers.cpp +#, c-format +msgid "%s is too far to sort armor." +msgstr "%s 距離太遠了無法排序裝備。" + +#: src/armor_layers.cpp +#, c-format +msgid "%s is not friendly!" +msgstr "%s 對你並不友善!" + #: src/armor_layers.cpp #, c-format msgid "Swap side for %s?" @@ -192898,10 +188815,6 @@ msgstr "你不認識字!" msgid "Your eyes won't focus without reading glasses." msgstr "沒戴老花眼鏡你的視線無法集中。" -#: src/avatar.cpp src/npc.cpp -msgid "It's too dark to read!" -msgstr "太暗了, 沒辦法閱讀!" - #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" msgstr "也許別人可以讀給你聽, 但是你聽不見!" @@ -193213,11 +189126,15 @@ msgstr "你再試一次。訓練終會有回報的。" msgid "You train for a while." msgstr "你訓練了一會兒。" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp +msgid "It looks like you woke up before your alarm." +msgstr "看來你在鬧鈴響前就醒了…" + +#: src/avatar.cpp msgid "It looks like you've slept through your internal alarm…" msgstr "看來你睡過頭了…" -#: src/avatar.cpp src/player_hardcoded_effects.cpp +#: src/avatar.cpp msgid "It looks like you've slept through the alarm…" msgstr "看來你睡過頭了…" @@ -193225,6 +189142,11 @@ msgstr "看來你睡過頭了…" msgid "You retched, but your stomach is empty." msgstr "你乾嘔, 但你的胃是空的。" +#: src/avatar.cpp +#, c-format +msgid "You (%s)" +msgstr "你 (%s)" + #: src/avatar.cpp msgid "You lost your book! You stop reading." msgstr "你失去了你的書!你停止閱讀。" @@ -193299,60 +189221,13 @@ msgstr "無效的屬性" msgid "Are you sure you want to raise %s? %d points available." msgstr "你確定要提高%s屬性嗎?還剩%d點可用。" -#: src/avatar.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "" - -#: src/avatar.cpp -msgid "You nudge your steed into a steady trot." -msgstr "你輕推坐騎讓它穩定地快步走。" - -#: src/avatar.cpp -msgid "You start walking." -msgstr "你開始步行。" - -#: src/avatar.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "" - -#: src/avatar.cpp -msgid "You spur your steed into a gallop." -msgstr "你鞭策你的坐騎開始奔馳。" - -#: src/avatar.cpp -msgid "You start running." -msgstr "你開始跑步。" - -#: src/avatar.cpp -msgid "Your steed is too tired to go faster." -msgstr "你的坐騎太累了,無法走得更快。" - -#: src/avatar.cpp -msgid "You need two functional legs to run." -msgstr "你需要有雙健全的腳才能跑步。" - -#: src/avatar.cpp -msgid "You're too tired to run." -msgstr "你累到無法繼續跑。" - -#: src/avatar.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "" - -#: src/avatar.cpp -msgid "You slow your steed to a walk." -msgstr "你放慢坐騎的速度為步行。" - -#: src/avatar.cpp -msgid "You start crouching." -msgstr "你開始蹲伏。" - -#. ~ %1$s: weapon name, %2$s: holster name +#. ~ %1$s: weapon name +#. ~ %1$s: holster name #: src/avatar.cpp src/game.cpp #, c-format msgctxt "holster" -msgid "Draw %1$s from %2$s?" -msgstr "拔出 %1$s 從 %2$s?" +msgid "Draw from %1$s?" +msgstr "" #: src/avatar.cpp src/monexamine.cpp #, c-format @@ -193397,11 +189272,11 @@ msgstr "怪物擋路。自動移動取消。" msgid "Move into the monster to attack." msgstr "" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" msgstr "你的意志力決定了你的力量!" -#: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp +#: src/avatar_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything…" msgstr "你太平靜無法攻擊任何東西…" @@ -193612,11 +189487,6 @@ msgstr "這個草地已經死亡並破碎無法食用。" msgid "This grass is tainted with paint and thus inedible." msgstr "這個草地已經受到油漆汙染,不可食用。" -#: src/avatar_action.cpp -#, c-format -msgid "You leave the empty %s." -msgstr "你留下空的 %s。" - #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "你在殼中無法有效率的投擲。" @@ -194234,10 +190104,6 @@ msgstr "" msgid "Your %s powers down." msgstr "你的 %s 沒有電了。" -#: src/bionics.cpp -msgid "Artificial night generator active!" -msgstr "黑夜產生器啟動!" - #: src/bionics.cpp #, c-format msgid "Your %s has lost connection and is turning off." @@ -194308,6 +190174,14 @@ msgstr "手術失敗了。" msgid "The %s screws up the operation." msgstr "%s 搞砸了這次手術。" +#: src/bionics.cpp +msgid "You don't have enough anesthetic to perform the installation." +msgstr "" + +#: src/bionics.cpp +msgid "You don't have the required components to perform the installation." +msgstr "" + #: src/bionics.cpp msgid "You prep to begin surgery." msgstr "你準備開始手術。" @@ -195046,6 +190920,46 @@ msgstr "公升" msgid "quart" msgstr "夸脫" +#. ~ kilometers +#: src/cata_utility.cpp +msgid "km" +msgstr "" + +#. ~ meters +#: src/cata_utility.cpp +msgid "m" +msgstr "" + +#. ~ centimeters +#: src/cata_utility.cpp +msgid "cm" +msgstr "" + +#. ~ millimeters +#: src/cata_utility.cpp +msgid "mm" +msgstr "" + +#. ~ inches +#: src/cata_utility.cpp +msgid "in." +msgstr "" + +#. ~ miles +#: src/cata_utility.cpp +msgid "mi" +msgstr "" + +#. ~ yards (length) +#: src/cata_utility.cpp +msgid "yd" +msgstr "" + +#. ~ feet (length) +#: src/cata_utility.cpp +msgid "ft" +msgstr "" + #: src/cata_utility.cpp #, c-format msgid "Failed to write %1$s to \"%2$s\": %3$s" @@ -195347,13 +191261,6 @@ msgstr "" msgid "This %s is too small to wear comfortably! Maybe it could be refitted." msgstr "" -#. ~ %1$s: item name, %2$s: container name -#: src/character.cpp -#, c-format -msgctxt "container" -msgid "You put the %1$s in your %2$s." -msgstr "你把 %1$s 放進你的 %2$s。" - #: src/character.cpp msgid "You can't place items here!" msgstr "你不能把物品放到那!" @@ -195587,12 +191494,8 @@ msgid "Slaked" msgstr "喝足" #: src/character.cpp -msgid "Engorged" -msgstr "腹脹" - -#: src/character.cpp -msgid "Sated" -msgstr "飽足" +msgid "Satisfied" +msgstr "" #: src/character.cpp msgid "Hungry" @@ -195602,21 +191505,21 @@ msgstr "飢餓" msgid "Very Hungry" msgstr "非常飢餓" -#: src/character.cpp -msgid "Starving!" -msgstr "營養不良!" - #: src/character.cpp msgid "Near starving" msgstr "營養不良" +#: src/character.cpp +msgid "Starving!" +msgstr "營養不良!" + #: src/character.cpp msgid "Famished" msgstr "極度飢餓" #: src/character.cpp -msgid "Peckish" -msgstr "空腹" +msgid "ERROR!" +msgstr "" #: src/character.cpp src/npctalk.cpp msgid "Exhausted" @@ -195662,22 +191565,42 @@ msgstr "你蜷曲身軀擠進這車輛。" msgid "You have a sudden heart attack!" msgstr "你突然心臟病發!" +#: src/character.cpp +msgid " has a sudden heart attack!" +msgstr "" + #: src/character.cpp msgid "Your breathing stops completely." msgstr "你已經沒有呼吸了。" +#: src/character.cpp +msgid "'s breathing stops completely." +msgstr "" + #: src/character.cpp msgid "Your heart spasms painfully and stops." msgstr "你的心臟痛苦地痙攣… 之後停止了跳動。" +#: src/character.cpp +msgid "'s heart spasms painfully and stops." +msgstr "" + #: src/character.cpp msgid "Your heart spasms and stops." msgstr "你的心臟痙攣並停止跳動。" +#: src/character.cpp +msgid "'s heart spasms and stops." +msgstr "" + #: src/character.cpp msgid "Your breathing slows down to a stop." msgstr "你的呼吸減慢停止。" +#: src/character.cpp +msgid "'s breathing slows down to a stop." +msgstr "" + #: src/character.cpp msgid "You have starved to death." msgstr "你餓死了。" @@ -195950,6 +191873,12 @@ msgstr "沒有任何肢體能從中受益。" msgid "Cancel" msgstr "取消" +#. ~ you filled to the brim with +#: src/character.cpp +#, c-format +msgid "You filled %1$s to the brim with %2$s." +msgstr "" + #: src/character.cpp src/iexamine.cpp #, c-format msgid "You pour %1$s into the %2$s." @@ -196456,7 +192385,7 @@ msgstr "你粉碎了它並取得 %s" msgid "You need a hammering tool to crush up frozen liquids!" msgstr "你需要敲打的工具來粉碎液體結冰!" -#: src/character.cpp src/faction.cpp +#: src/character.cpp src/faction.cpp src/npc.cpp src/npc.cpp msgid "Wielding: " msgstr "手持: " @@ -196468,11 +192397,6 @@ msgstr "穿著: " msgid "Traits: " msgstr "特質: " -#: src/character.cpp -#, c-format -msgid "You (%s)" -msgstr "你 (%s)" - #: src/character_martial_arts.cpp #, c-format msgid "You have learned %s from extensive practice with the CQB Bionic." @@ -197673,7 +193597,7 @@ msgid "This is full of dirt after being on the ground." msgstr "它被放到地上後沾滿了泥土。" #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/iuse_actor.cpp src/player.cpp +#: src/iuse_actor.cpp src/iuse_actor.cpp msgid "You can't do that while underwater." msgstr "你無法在水下那麼做。" @@ -197685,7 +193609,7 @@ msgstr "它冰凍成固體了。你必須先解凍它才能食用它。" msgid "You can't drink it while it's frozen." msgstr "你無法在它冰凍時飲用它。" -#: src/consumption.cpp src/player.cpp +#: src/consumption.cpp #, c-format msgid "You need a %s to consume that!" msgstr "你需要一個 %s 才能食用它! " @@ -197714,10 +193638,18 @@ msgstr "你不能吃這個。" msgid "This is rotten and smells awful!" msgstr "它已經腐敗了, 散發出可怕的味道!" +#: src/consumption.cpp +msgid "The thought of eating demihuman flesh makes you feel sick." +msgstr "" + #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." msgstr "光是想到要吃人肉就讓你覺得不舒服。" +#: src/consumption.cpp +msgid "Eating this raw meat probably isn't very healthy." +msgstr "" + #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." msgstr "你仍然感到噁心, 並且可能再次嘔吐。" @@ -198071,6 +194003,15 @@ msgid " load %1$i charge of %2$s in their %3$s." msgid_plural " load %1$i charges of %2$s in their %3$s." msgstr[0] " 將 %1$i 單位的 %2$s 裝入你的 %3$s。" +#: src/consumption.cpp src/iuse_actor.cpp src/player.cpp +msgid "You do not have that item." +msgstr "你沒有那個物品。" + +#: src/consumption.cpp +#, c-format +msgid "You can't eat your %s." +msgstr "你不能吃你的 %s。" + #: src/craft_command.cpp src/crafting.cpp msgid " (nearby)" msgstr " (在附近)" @@ -198161,9 +194102,9 @@ msgstr "你無法繼續製作物品!" #: src/crafting.cpp #, c-format msgid "" -"You don't have anything in which to store %s and may have to pour it out or " -"consume it as soon as it is prepared! Proceed?" -msgstr "你沒有可以儲存%s的物品,可能需要在製作完成之後倒掉它或是馬上用光它。是否繼續?" +"You don't have anything in which to store %s and may have to pour it out as " +"soon as it is prepared! Proceed?" +msgstr "" #: src/crafting.cpp src/pickup.cpp #, c-format @@ -198916,6 +194857,11 @@ msgctxt "damage type" msgid "stab" msgstr "刺" +#: src/damage.cpp +msgctxt "damage_type" +msgid "bullet" +msgstr "" + #: src/damage.cpp msgctxt "damage type" msgid "heat" @@ -199100,6 +195046,14 @@ msgstr "" msgid "Info…" msgstr "資訊 ... " +#: src/debug_menu.cpp +msgid "Enable achievements" +msgstr "" + +#: src/debug_menu.cpp +msgid "Game…" +msgstr "" + #: src/debug_menu.cpp msgid "Teleport - short range" msgstr "傳送 - 短距" @@ -199546,6 +195500,10 @@ msgstr "口渴" msgid "Fatigue" msgstr "疲勞" +#: src/debug_menu.cpp +msgid "Sleep Deprivation" +msgstr "睡眠剝奪" + #: src/debug_menu.cpp msgid "Reset all basic needs" msgstr "重設所有基礎需求" @@ -199926,6 +195884,14 @@ msgstr "設定回合為?(一日是 %i 回合)" msgid "Enter benchmark length (in milliseconds):" msgstr "輸入繪圖基準測試長度(以毫秒為單位)" +#: src/debug_menu.cpp +msgid "Achievements are already enabled" +msgstr "" + +#: src/debug_menu.cpp +msgid "Achievements enabled" +msgstr "" + #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " @@ -200168,7 +196134,7 @@ msgstr "" msgid "trap: %s (%d)" msgstr "陷阱: %s (%d)" -#: src/editmap.cpp src/game.cpp +#: src/editmap.cpp #, c-format msgid "There is a %s there. Parts:" msgstr "這裡有 %s。零件:" @@ -203071,6 +199037,11 @@ msgstr "樹綻放出了真菌花!" msgid "You completed the achievement \"%s\"." msgstr "" +#: src/game.cpp +#, c-format +msgid "You lost the conduct \"%s\"." +msgstr "" + #: src/game.cpp src/options.cpp #, c-format msgid "Loading the tileset failed: %s" @@ -203235,6 +199206,16 @@ msgctxt "action" msgid "disassemble" msgstr "拆解" +#: src/game.cpp +msgctxt "action" +msgid "insert" +msgstr "" + +#: src/game.cpp +msgctxt "action" +msgid "open" +msgstr "" + #: src/game.cpp msgctxt "action" msgid "unfavorite" @@ -203751,11 +199732,6 @@ msgstr "" msgid "Without extra fuel it will burn for between %s to %s." msgstr "" -#: src/game.cpp src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp -msgid "You cannot do that while mounted." -msgstr "騎乘時無法做那個。" - #: src/game.cpp msgid "You cannot interact with a vehicle while mounted." msgstr "騎乘時無法與車輛互動。" @@ -203790,6 +199766,44 @@ msgstr "" msgid "Peek where?" msgstr "窺看哪邊?" +#: src/game.cpp +msgctxt "infrared size" +msgid "tiny" +msgstr "微小" + +#: src/game.cpp +msgctxt "infrared size" +msgid "small" +msgstr "小" + +#: src/game.cpp +msgctxt "infrared size" +msgid "medium" +msgstr "中" + +#: src/game.cpp +msgctxt "infrared size" +msgid "large" +msgstr "大" + +#: src/game.cpp +msgctxt "infrared size" +msgid "huge" +msgstr "巨大" + +#: src/game.cpp +msgid "You see a figure radiating heat." +msgstr "" + +#: src/game.cpp src/monster.cpp +#, c-format +msgid "It is %s in size." +msgstr "這是 %s 大小。" + +#: src/game.cpp +msgid "You sense a creature here." +msgstr "" + #: src/game.cpp #, c-format msgid "You heard %s from here." @@ -203831,17 +199845,17 @@ msgstr "看不見。" #: src/game.cpp #, c-format -msgid "%s; Impassable" -msgstr "%s, 無法通過" +msgid "Cover: %d%%" +msgstr "" #: src/game.cpp -#, c-format -msgid "%s; Movement cost %d" -msgstr "%s, 移動消耗: %d" +msgid "Impassable" +msgstr "" #: src/game.cpp -msgid "Lighting: " -msgstr "光線: " +#, c-format +msgid "Move cost: %d" +msgstr "" #: src/game.cpp #, c-format @@ -203849,8 +199863,8 @@ msgid "Sign: %s" msgstr "告示牌: %s" #: src/game.cpp -msgid "Sign: ???" -msgstr "告示牌: ???" +msgid "Lighting: " +msgstr "光線: " #: src/game.cpp #, c-format @@ -203862,16 +199876,15 @@ msgstr "正下方: %s, 沒有支撐" msgid "Below: %s; Walkable" msgstr "正下方: %s, 可以行走" -#: src/game.cpp -#, c-format -msgid "Coverage: %d%%" -msgstr "遮蔽率:%d%%" - #: src/game.cpp #, c-format msgid "Unfinished task: %s, %d%% complete" msgstr "未完成的任務:%s,%d%% 進度已完成" +#: src/game.cpp +msgid "Vehicle: " +msgstr "" + #: src/game.cpp msgid "You cannot see what is inside of it." msgstr "你看不出裡面有什麼。" @@ -204264,7 +200277,7 @@ msgstr "你需要至少一個 %s 才能重新裝填 %s!" msgid "The %s is already full!" msgstr "%s 已經滿了!" -#: src/game.cpp src/ranged.cpp +#: src/game.cpp #, c-format msgid "You can't reload a %s!" msgstr "你不能裝填 %s!" @@ -205006,8 +201019,40 @@ msgid "Speed %s%d!" msgstr "速度 %s%d! " #: src/game.cpp -msgid "You slip while climbing and fall down again." -msgstr "你爬的時候滑了一下, 結果又掉下來了。" +msgid "Your skill in parkour makes it easier to climb." +msgstr "" + +#: src/game.cpp +msgid "Your bad knees make it difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet feet make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your wet hands make it harder to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight tries to drag you down." +msgstr "" + +#: src/game.cpp +msgid "You strain to climb with the weight of your possessions." +msgstr "" + +#: src/game.cpp +msgid "You feel the weight of your luggage makes it more difficult to climb." +msgstr "" + +#: src/game.cpp +msgid "Your carried weight makes it a little harder to climb." +msgstr "" + +#: src/game.cpp +msgid "You slip while climbing and fall down." +msgstr "" #: src/game.cpp msgid "Climbing is impossible in your current state." @@ -205024,6 +201069,11 @@ msgid "" "%d/%d" msgstr "已指派的物品代碼: %d/%d" +#: src/game_inventory.cpp +#, c-format +msgid "Inventory of %s" +msgstr "" + #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." msgstr "你的物品欄是空的。" @@ -205048,6 +201098,10 @@ msgstr "鈍擊" msgid "CUT" msgstr "砍劈" +#: src/game_inventory.cpp +msgid "BULLET" +msgstr "" + #: src/game_inventory.cpp msgid "ACID" msgstr "防酸" @@ -205141,6 +201195,15 @@ msgstr "%.2f%s" msgid "VOLUME" msgstr "體積" +#: src/game_inventory.cpp src/options.cpp src/overmap_ui.cpp +#, c-format +msgid "%s" +msgstr "%s" + +#: src/game_inventory.cpp +msgid "CONSUME TIME" +msgstr "" + #: src/game_inventory.cpp msgid "FRESHNESS" msgstr "新鮮程度" @@ -205372,6 +201435,10 @@ msgstr "命中" msgid "MOVES" msgstr "行動點數" +#: src/game_inventory.cpp +msgid "WIELD COST" +msgstr "" + #: src/game_inventory.cpp msgid "Wield item" msgstr "手持物品" @@ -205382,21 +201449,26 @@ msgstr "你沒有可以手持的東西。" #: src/game_inventory.cpp #, c-format -msgid "You can't put anything into your %s." -msgstr "你無法把任何物品放進 %s。" - -#: src/game_inventory.cpp src/iuse_actor.cpp -msgid "Holster item" -msgstr "收納物品" +msgid "Put item into %s" +msgstr "" #: src/game_inventory.cpp #, c-format msgid "Choose an item to put into your %s" msgstr "" +#: src/game_inventory.cpp +msgid "ITEMS TO INSERT" +msgstr "" + +#: src/game_inventory.cpp +#, c-format +msgid "Insert items into %s" +msgstr "" + #: src/game_inventory.cpp #, c-format -msgid "You have no items you could put into your %s." +msgid "Could not put %s into %s, aborting." msgstr "" #: src/game_inventory.cpp src/iuse.cpp @@ -205679,34 +201751,6 @@ msgstr "你至少要選擇一組怪物!" msgid "Special Zombies" msgstr "特殊殭屍" -#: src/gamemode_defense.cpp -msgid "Zombies" -msgstr "殭屍" - -#: src/gamemode_defense.cpp -msgid "Triffids" -msgstr "食人樹" - -#: src/gamemode_defense.cpp -msgid "Robots" -msgstr "機器人" - -#: src/gamemode_defense.cpp -msgid "Subspace" -msgstr "異空間" - -#: src/gamemode_defense.cpp src/handle_action.cpp -msgid "Food" -msgstr "食物" - -#: src/gamemode_defense.cpp -msgid "Mercenaries" -msgstr "傭兵" - -#: src/gamemode_defense.cpp -msgid "Allow save" -msgstr "" - #: src/gamemode_defense.cpp msgid "DEFENSE MODE" msgstr "防禦模式" @@ -205783,7 +201827,35 @@ msgstr "每波的獎金增加幅度。" msgid "Enemy Selection:" msgstr "選擇敵人:" -#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp +#: src/gamemode_defense.cpp +msgid "Zombies" +msgstr "殭屍" + +#: src/gamemode_defense.cpp +msgid "Triffids" +msgstr "食人樹" + +#: src/gamemode_defense.cpp +msgid "Robots" +msgstr "機器人" + +#: src/gamemode_defense.cpp +msgid "Subspace" +msgstr "異空間" + +#: src/gamemode_defense.cpp src/handle_action.cpp +msgid "Food" +msgstr "食物" + +#: src/gamemode_defense.cpp +msgid "Mercenaries" +msgstr "傭兵" + +#: src/gamemode_defense.cpp +msgid "Allow save" +msgstr "" + +#: src/gamemode_defense.cpp src/iuse_software_minesweeper.cpp src/options.cpp msgid "Custom" msgstr "自訂" @@ -205867,6 +201939,10 @@ msgstr "大賣場" msgid "Bar" msgstr "酒吧" +#: src/gamemode_defense.cpp +msgid "Mansion" +msgstr "豪宅" + #: src/gamemode_defense.cpp msgid "One entrance and many rooms. Some medical supplies." msgstr "一個入口以及多個房間。有些許醫療資源。" @@ -206151,6 +202227,10 @@ msgstr "" msgid "This vehicle doesn't look very airworthy." msgstr "" +#: src/handle_action.cpp +msgid "This vehicle cannot be flown without z levels." +msgstr "" + #: src/handle_action.cpp msgid "You steer the vehicle into a descent." msgstr "" @@ -206536,16 +202616,8 @@ msgid "Change to which movement mode?" msgstr "切換至哪種行動模式?" #: src/handle_action.cpp -msgid "Run" -msgstr "跑步" - -#: src/handle_action.cpp -msgid "Walk" -msgstr "步行" - -#: src/handle_action.cpp -msgid "Crouch" -msgstr "蹲伏" +msgid "Cycle move mode" +msgstr "" #: src/handle_action.cpp msgid "You don't know any spells to cast." @@ -207040,6 +203112,10 @@ msgid "Withdraw how much? Max: %d cent. (0 to cancel) " msgid_plural "Withdraw how much? Max: %d cents. (0 to cancel) " msgstr[0] "提領多少?最高: %d 美分。(0 為取消)" +#: src/iexamine.cpp +msgid "All cash cards at maximum capacity" +msgstr "" + #: src/iexamine.cpp msgid "The vending machine is empty." msgstr "" @@ -208210,16 +204286,19 @@ msgid "You're illiterate, and can't read the screen." msgstr "你是文盲, 看不懂螢幕上寫什麼。" #: src/iexamine.cpp -msgid "Failure! No gas pumps found!" -msgstr "失敗!附近沒有加油槍!" +#, c-format +msgid "Failure! No %s pumps found!" +msgstr "" #: src/iexamine.cpp -msgid "Failure! No gas tank found!" -msgstr "失敗!沒有油箱!" +#, c-format +msgid "Failure! No %s tank found!" +msgstr "" #: src/iexamine.cpp -msgid "This station is out of fuel. We apologize for the inconvenience." -msgstr "這個加油站已經沒有汽油庫存了, 造成您的不便很抱歉。" +#, c-format +msgid "This station is out of %s. We apologize for the inconvenience." +msgstr "" #: src/iexamine.cpp msgid "Welcome to AutoGas!" @@ -208230,36 +204309,41 @@ msgid "What would you like to do?" msgstr "請問您想做什麼?" #: src/iexamine.cpp -msgid "Buy gas." -msgstr "購買汽油。" +#, c-format +msgid "Buy %s." +msgstr "" #: src/iexamine.cpp msgid "Refund cash." msgstr "退回現金。" #: src/iexamine.cpp -msgid "Current gas pump: " -msgstr "目前汽油泵: " +#, c-format +msgid "Current %s pump: " +msgstr "" #: src/iexamine.cpp -msgid "Choose a gas pump." -msgstr "選擇汽油泵。" +#, c-format +msgid "Choose a %s pump." +msgstr "" #: src/iexamine.cpp msgid "Your discount: " msgstr "你的折扣: " #: src/iexamine.cpp -msgid "Your price per gasoline unit: " -msgstr "每單位汽油價格: " +#, c-format +msgid "Your price per %s unit: " +msgstr "" #: src/iexamine.cpp msgid "Hack console." msgstr "駭入控制台。" #: src/iexamine.cpp -msgid "Please choose gas pump:" -msgstr "請選擇汽油泵:" +#, c-format +msgid "Please choose %s pump:" +msgstr "" #: src/iexamine.cpp msgid "Pump " @@ -208271,8 +204355,8 @@ msgstr "沒有足夠餘額, 請您儲值現金卡。" #: src/iexamine.cpp #, c-format -msgid "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" -msgstr "要購買多少公升的汽油?最多: %d 公升。(0 為取消)" +msgid "How many liters of %s to buy? Max: %d L. (0 to cancel)" +msgstr "" #: src/iexamine.cpp msgid "Glug Glug Glug" @@ -208325,8 +204409,8 @@ msgid "You jump over an obstacle." msgstr "你跳過了障礙物。" #: src/iexamine.cpp -msgid "You can't climb down there" -msgstr "你無法下去那裏。" +msgid "You can't climb down there." +msgstr "" #: src/iexamine.cpp #, c-format @@ -208352,6 +204436,14 @@ msgstr "從這裡爬下去的話,你可以輕易爬上來。要爬下去嗎? msgid "You may have problems climbing back up. Climb down?" msgstr "你要爬上來也許不容易。要爬下去嗎?" +#: src/iexamine.cpp +msgid "Use your grappling hook to climb down?" +msgstr "" + +#: src/iexamine.cpp +msgid "You tie the rope around your waist and begin to climb down." +msgstr "" + #: src/iexamine.cpp msgid "You decided to step back from the ledge." msgstr "你決定從平台往後退一步。" @@ -208381,9 +204473,9 @@ msgstr "病人已死。請移除屍體以繼續。退出。" #: src/iexamine.cpp msgid "" -"ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate." -" Please move patient to appropriate facility. Exiting." -msgstr "錯誤 - 生化等級評估:完全生化人。自動醫生 Mk. XI 無法運作。請將病患移到適當的設施。正在退出。" +"ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. " +"Please move patient to appropriate facility. Exiting." +msgstr "" #: src/iexamine.cpp msgid "Autodoc Mk. XI. Status: Online. Please choose operation." @@ -208441,7 +204533,7 @@ msgstr "全自動外科醫生 Mk. XI. 狀態:在線。請選擇手術項目。 #: src/iexamine.cpp msgid " WARNING: Operator missing" -msgstr "" +msgstr "警告: 沒有手術人員" #: src/iexamine.cpp msgid "" @@ -208449,6 +204541,9 @@ msgid "" " Using the Autodoc without an operator can lead to serious injuries or death.\n" " By continuing with the operation you accept the risks and acknowledge that you will not take any legal actions against this facility in case of an accident. " msgstr "" +"\n" +"在沒有操作人員下使用自動醫生可導致嚴重受傷或者死亡。\n" +"執行手術代表你接受風險,且同意萬一發生意外,你不會對本機構進行任何法律行動。" #: src/iexamine.cpp msgid "Choose Compact Bionic Module to install" @@ -208932,10 +205027,6 @@ msgstr "車輛零件" msgid "Traps" msgstr "陷阱" -#: src/init.cpp -msgid "Bionics" -msgstr "生化插件" - #: src/init.cpp msgid "Terrain" msgstr "地形" @@ -208972,6 +205063,10 @@ msgstr "車輛樣板" msgid "Mapgen weights" msgstr "地圖權重" +#: src/init.cpp +msgid "Behaviors" +msgstr "行為" + #: src/init.cpp msgid "Monster types" msgstr "怪物類別" @@ -208988,6 +205083,10 @@ msgstr "怪物派系" msgid "Factions" msgstr "陣營" +#: src/init.cpp +msgid "Move modes" +msgstr "" + #: src/init.cpp msgid "Crafting recipes" msgstr "製作配方" @@ -209008,10 +205107,6 @@ msgstr "NPC類別" msgid "Missions" msgstr "任務" -#: src/init.cpp -msgid "Behaviors" -msgstr "行為" - #: src/init.cpp msgid "Harvest lists" msgstr "收穫列表" @@ -209024,8 +205119,8 @@ msgstr "解剖" msgid "Mutations" msgstr "突變" -#: src/init.cpp -msgid "Achivements" +#: src/init.cpp src/scores_ui.cpp +msgid "Achievements" msgstr "" #: src/init.cpp @@ -209084,6 +205179,10 @@ msgstr "地圖特殊區域" msgid "Ammunition types" msgstr "彈藥類型" +#: src/init.cpp +msgid "Bionics" +msgstr "生化插件" + #: src/init.cpp msgid "Gates" msgstr "門" @@ -209120,6 +205219,10 @@ msgstr "" msgid "Scores" msgstr "評分" +#: src/init.cpp +msgid "Achivements" +msgstr "" + #: src/init.cpp msgid "Disease types" msgstr "" @@ -209528,7 +205631,7 @@ msgstr "你需要選擇兩個要比較的物品。使用 %s 以標記它們。" msgid "No items were selected. Use %s to select them." msgstr "沒有選中任何物品。使用 %s 選擇它們。" -#: src/inventory_ui.cpp +#: src/inventory_ui.h msgid "ITEMS TO DROP" msgstr "要丟棄的物品" @@ -209648,14 +205751,18 @@ msgstr "" msgid "Material: %s" msgstr "材質: %s" -#: src/item.cpp +#: src/item.cpp src/item_contents.cpp src/item_pocket.cpp src/item_pocket.cpp msgid "Volume: " msgstr "體積: " -#: src/item.cpp +#: src/item.cpp src/item_pocket.cpp msgid "Weight: " msgstr "重量: " +#: src/item.cpp +msgid "Length: " +msgstr "" + #: src/item.cpp #, c-format msgid "Owner: %s" @@ -209787,6 +205894,10 @@ msgstr "興奮劑" msgid "Portions: " msgstr "份量: " +#: src/item.cpp +msgid "Consume time: " +msgstr "" + #: src/item.cpp msgid "* Consuming this item is addicting." msgstr "* 食用這個物品會導致上癮。" @@ -210031,6 +206142,10 @@ msgstr "對長距離目標的平均命中率: " msgid "" msgstr "" +#: src/item.cpp +msgid " moves" +msgstr "" + #: src/item.cpp msgid "Time to reach aim level: " msgstr "瞄準所需時間: " @@ -210053,6 +206168,10 @@ msgid "Contains %i casing" msgid_plural "Contains %i casings" msgstr[0] "裝有%i個彈殼" +#: src/item.cpp +msgid "This weapon needs two free hands to fire." +msgstr "" + #: src/item.cpp msgid "" "This mod must be attached to a gun, it can not be fired " @@ -210065,6 +206184,14 @@ msgid "" "attacks with it." msgstr "裝在槍械上就能夠用它作出近戰伸延攻擊。" +#: src/item.cpp +msgid "This mod obscures sights of the base weapon." +msgstr "" + +#: src/item.cpp +msgid "This mod might suffer wear when firing the base weapon." +msgstr "" + #: src/item.cpp msgid "Dispersion modifier: " msgstr "彈著分散修正: " @@ -210119,6 +206246,10 @@ msgstr "防護: 鈍擊: " msgid "Cut: " msgstr "砍劈: " +#: src/item.cpp +msgid "Ballistic: " +msgstr "" + #: src/item.cpp msgid "Acid: " msgstr "防酸: " @@ -210301,10 +206432,6 @@ msgstr "累贅: " msgid "Encumbrance when full: " msgstr "裝滿時的累贅: " -#: src/item.cpp -msgid "Storage: " -msgstr "儲物空間: " - #: src/item.cpp msgid "Weight capacity modifier: " msgstr "" @@ -210313,6 +206440,10 @@ msgstr "" msgid "Weight capacity bonus: " msgstr "" +#: src/item.cpp +msgid "Storage: " +msgstr "儲物空間: " + #: src/item.cpp msgid "* This item can be worn with a helmet." msgstr "* 這件物品能 與頭盔一起穿戴。" @@ -210519,27 +206650,6 @@ msgstr "它或許可以幫助你搞清楚更多配方。" msgid "You need to read this book to see its contents." msgstr "你需要閱讀這本書, 以檢視其內容。" -#: src/item.cpp -msgid "This container " -msgstr "這個容器" - -#: src/item.cpp -msgid "can be resealed, " -msgstr "能夠重新封裝, " - -#: src/item.cpp -msgid "is watertight, " -msgstr "是水密的, " - -#: src/item.cpp -msgid "prevents spoiling, " -msgstr "使內容物免於腐敗, " - -#: src/item.cpp -#, c-format -msgid "can store %s %s." -msgstr "能夠儲存 %s %s。" - #: src/item.cpp #, c-format msgid "Capacity: %dmJ" @@ -210564,7 +206674,6 @@ msgstr "電量: %d" msgid "Compatible magazines: " msgstr "" -#. ~ "%s" is ammunition type. This types can't be plural. #: src/item.cpp #, c-format msgid "Maximum charge of %s." @@ -210572,9 +206681,32 @@ msgid_plural "Maximum charges of %s." msgstr[0] "最高 容量的 %s。" #: src/item.cpp -msgid "Maximum charge." -msgid_plural "Maximum charges." -msgstr[0] "最高 的容量。" +msgid "" +"* This tool has been modified to use a universal power supply " +"and is not compatible with standard " +"batteries." +msgstr "" +"* 這個工具已被改造成使用 UPS 並且無法一般電池充電。" + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and is not " +"compatible with standard batteries." +msgstr "* 這個工具裝配了充電電池並且與一般電池不相容。" + +#: src/item.cpp +msgid "" +"* This tool has a rechargeable power cell and can be recharged " +"in any UPS-compatible recharging station. You could " +"charge it with standard batteries, but unloading it is " +"impossible." +msgstr "" +"* 這個工具已被改造成使用充電電池並且可在任何 UPS 相容的車載充電站充電, " +"你能用一般電池填入進行充電, 但無法移出。" + +#: src/item.cpp +msgid "* This tool runs on bionic power." +msgstr "* 這件工具 使用生化能量。" #: src/item.cpp #, c-format @@ -210655,6 +206787,10 @@ msgstr "" msgid "Cut Protection: " msgstr "" +#: src/item.cpp +msgid "Ballistic Protection: " +msgstr "" + #: src/item.cpp msgid "Stat Bonus: " msgstr "" @@ -210749,6 +206885,11 @@ msgid "" "with contents." msgstr "" +#: src/item.cpp +msgid "" +"* This item is not rigid. Its volume increases with contents." +msgstr "" + #: src/item.cpp msgid "* This item does not conduct electricity." msgstr "* 此物品並不導電。" @@ -210766,34 +206907,6 @@ msgstr "* 此物品會導電。" msgid "* This clothing will give you an allergic reaction." msgstr "* 這件衣物會造成你的 過敏反應。" -#: src/item.cpp -msgid "" -"* This tool has been modified to use a universal power supply " -"and is not compatible with standard " -"batteries." -msgstr "" -"* 這個工具已被改造成使用 UPS 並且無法一般電池充電。" - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and is not " -"compatible with standard batteries." -msgstr "* 這個工具裝配了充電電池並且與一般電池不相容。" - -#: src/item.cpp -msgid "" -"* This tool has a rechargeable power cell and can be recharged " -"in any UPS-compatible recharging station. You could " -"charge it with standard batteries, but unloading it is " -"impossible." -msgstr "" -"* 這個工具已被改造成使用充電電池並且可在任何 UPS 相容的車載充電站充電, " -"你能用一般電池填入進行充電, 但無法移出。" - -#: src/item.cpp -msgid "* This tool runs on bionic power." -msgstr "* 這件工具 使用生化能量。" - #: src/item.cpp msgid "" "* This item has been modified to listen to radio signals. It " @@ -210815,18 +206928,6 @@ msgid "" "detonate it immediately." msgstr "* 這件物品接受到無線電信號後會立即啟動引爆。" -#: src/item.cpp -msgid "* This weapon needs two free hands to fire." -msgstr "* 這件武器需要雙手並用才能射擊。" - -#: src/item.cpp -msgid "* This mod obscures sights of the base weapon." -msgstr "* 這個模組遮蓋了武器本身的視線。" - -#: src/item.cpp -msgid "* This mod might suffer wear when firing the base weapon." -msgstr "* 武器射擊時,這件模組可能 遭受磨損。" - #: src/item.cpp msgid "" "* The casing of this item has cracked, revealing an " @@ -211323,26 +207424,11 @@ msgctxt "magazine" msgid "Eject %1$s from %2$s?" msgstr "退出 %1$s 從 %2$s?" -#: src/item.cpp -#, c-format -msgid "You can't mix loads in your %s." -msgstr "你不能混裝你的 %s。" - -#: src/item.cpp -#, c-format -msgid "That %s isn't water-tight." -msgstr "%s 不是水密容器。" - #: src/item.cpp #, c-format msgid "That %s must be on the ground or held to hold contents!" msgstr "這個 %s 必須放在地上或拿在手上才能裝東西!" -#: src/item.cpp -#, c-format -msgid "You can't seal that %s!" -msgstr "你無法把 %s 封住!" - #: src/item.cpp #, c-format msgid "That %1$s won't hold %2$s." @@ -211481,6 +207567,31 @@ msgstr "你沒有可以使用動作選單的物品。" msgid "Execute which action?" msgstr "執行什麼動作?" +#: src/item_contents.cpp +msgid "is not a container" +msgstr "" + +#: src/item_contents.cpp +msgid "is not rigid" +msgstr "" + +#: src/item_contents.cpp +msgid "Total capacity:" +msgstr "" + +#: src/item_contents.cpp src/item_pocket.cpp +msgid " Weight: " +msgstr "" + +#: src/item_contents.cpp +#, c-format +msgid "%d Pockets with capacity:" +msgstr "" + +#: src/item_contents.cpp +msgid "Pocket with capacity:" +msgstr "" + #: src/item_factory.cpp msgid "" "Can be activated to increase environmental protection. Will " @@ -211505,6 +207616,179 @@ msgstr "物品欄" msgid "inside %s" msgstr "" +#: src/item_pocket.cpp +msgid "sealed" +msgstr "" + +#: src/item_pocket.cpp +msgid "open" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Pocket %d:" +msgstr "" + +#: src/item_pocket.cpp +msgid "Maximum item length: " +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Minimum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Maximum item volume: %s" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "Base moves to remove item: %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is rigid." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket can contain a liquid." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket can contain a gas." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket will spill if placed into another item or worn." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket protects its contents from fire." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Contained items spoil at %.0f%% their original rate." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"Items in this pocket weigh %.0f%% their original weight." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "" +"This pocket expands at %.0f%% of the rate of volume of " +"items inside." +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "%s pocket %d" +msgstr "" + +#: src/item_pocket.cpp +#, c-format +msgid "pocket %d" +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is empty." +msgstr "" + +#: src/item_pocket.cpp +msgid "This pocket is sealed." +msgstr "" + +#: src/item_pocket.cpp +msgid " of " +msgstr " " + +#: src/item_pocket.cpp +msgid "Contents of this pocket:" +msgstr "" + +#: src/item_pocket.cpp +msgid "only mods can go into mod pocket" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster does not accept this item type" +msgstr "" + +#: src/item_pocket.cpp +msgid "holster already contains an item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't contain liquid" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't mix liquid with contained item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't put non liquid into pocket with liquid" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't contain gas" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't mix gas with contained item" +msgstr "" + +#: src/item_pocket.cpp +msgid "can't put non gas into pocket with gas" +msgstr "" + +#: src/item_pocket.cpp +msgid "item does not have correct flag" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is not an ammo" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is not the correct ammo type" +msgstr "" + +#: src/item_pocket.cpp +msgid "tried to put too many charges of ammo in item" +msgstr "" + +#: src/item_pocket.cpp +msgid "item too big" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too long" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too small" +msgstr "" + +#: src/item_pocket.cpp +msgid "item is too heavy" +msgstr "" + +#: src/item_pocket.cpp +msgid "pocket is holding too much weight" +msgstr "" + +#: src/item_pocket.cpp +msgid "not enough space" +msgstr "" + #: src/itype.h msgid "click." msgstr "喀哩。" @@ -211698,6 +207982,12 @@ msgstr "你覺得身體變硬朗。" msgid "You no longer need to fear the flu, at least for some time." msgstr "" +#: src/iuse.cpp +msgid "" +"You notice the date on the packaging is pretty old. It may no longer be " +"effective." +msgstr "" + #: src/iuse.cpp msgid "" "You no longer need to worry about asthma attacks, at least for a while." @@ -213078,7 +209368,7 @@ msgstr " 需要使用新的防毒濾罐!" #: src/iuse.cpp #, c-format -msgid "Your %s don't have a filter." +msgid "Your %s doesn't have a filter." msgstr "" #: src/iuse.cpp @@ -215213,17 +211503,13 @@ msgstr[0] "你將 %1$d x %2$s 子彈裝填到 %3$s 中。" #: src/iuse_actor.cpp #, c-format -msgid "The %s scans you and makes angry beeping noises!" -msgstr "%s 掃描了你, 發出了憤怒的警報聲!" +msgid "You deploy the %s wrong. It is hostile!" +msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "The %s emits an IFF beep as it scans you." -msgstr "%s 對著你的方向發出了識別敵我的警報聲。" - -#: src/iuse_actor.cpp -msgid "A flashing LED on the laser turret appears to indicate low light." -msgstr "雷射槍塔上的 LED 閃燈顯示光源不足。" +msgid "You deploy the %s." +msgstr "" #: src/iuse_actor.cpp msgid "Place npc where?" @@ -215247,33 +211533,6 @@ msgstr "你的 %s 需要電力來源 (簡單的 UPS 就行了) 。" msgid "There is also a certain bionic that helps with this kind of armor." msgstr "那裡有一個可以幫助你使用這類裝甲的生化插件。" -#: src/iuse_actor.cpp -msgid "There is nothing to lockpick nearby." -msgstr "" - -#: src/iuse_actor.cpp -msgid "Use your lockpick where?" -msgstr "把你的的開鎖器用在哪邊?" - -#: src/iuse_actor.cpp -msgid "You pick your nose and your sinuses swing open." -msgstr "你挖鼻孔使你的鼻道暢通。" - -#: src/iuse_actor.cpp -msgid "" -"You can pick your friends, and you can\n" -"pick your nose, but you can't pick\n" -"your friend's nose." -msgstr "" - -#: src/iuse_actor.cpp -msgid "That door isn't locked." -msgstr "門沒鎖。" - -#: src/iuse_actor.cpp -msgid "That cannot be picked." -msgstr "這東西不能被撬鎖。" - #: src/iuse_actor.cpp msgid "a crafting station" msgstr "工作台" @@ -215402,10 +211661,6 @@ msgstr "依照目前的天氣情況, 需要大約 %d 分鐘來生火。" msgid "At your skill level, it will take around %d minutes to light a fire." msgstr "依照你的技能等級, 需要大約 %d 分鐘來生火。" -#: src/iuse_actor.cpp src/player.cpp -msgid "You do not have that item." -msgstr "你沒有那個物品。" - #: src/iuse_actor.cpp #, c-format msgid "Can't salvage anything from %s." @@ -215551,38 +211806,6 @@ msgstr "你需要一個火源 (4 電量) 才能燒灼你自己的傷口。" msgid "You need at least %d charges to cauterize wounds." msgstr "你需要至少 %d 電量才能燒灼傷口。" -#: src/iuse_actor.cpp -msgid "No suitable corpses" -msgstr "沒有適合的屍體" - -#: src/iuse_actor.cpp -msgid "" -"The prospect of cutting up the corpse and letting it rise again as a slave " -"is too much for you to deal with right now." -msgstr "切割這些屍體然後讓他們成為奴隸對你現在的心情來說太沉重了。" - -#: src/iuse_actor.cpp -msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "將倒地的殭屍屠宰成屍奴?" - -#: src/iuse_actor.cpp -msgid "Make love, not zlave." -msgstr "做愛, 不做屍奴。" - -#: src/iuse_actor.cpp -msgid "Well, it's more constructive than just chopping 'em into gooey meat…" -msgstr "好吧,這樣比把它們剁成肉醬還要有建設性..." - -#: src/iuse_actor.cpp -msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "殘害並奴役某人的屍體讓你感覺糟透了。" - -#. ~ %s - name of the required skill. -#: src/iuse_actor.cpp -#, c-format -msgid "You need at least %s 1." -msgstr "你需要至少 %s 1 級。" - #: src/iuse_actor.cpp msgid "Hsss" msgstr "嘶" @@ -215673,6 +211896,10 @@ msgstr "這可以教你一些法術。" msgid "Spells Contained:" msgstr "包含這些法術:" +#: src/iuse_actor.cpp +msgid "You can't read." +msgstr "" + #: src/iuse_actor.cpp #, c-format msgid "Level %u" @@ -215736,31 +211963,11 @@ msgstr "這物品施放 %1$s(等級 %2$i)。" msgid "This item never fails." msgstr "這東西絕不失誤。" -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too big to fit in your %2$s" -msgstr "%1$s 太大, 不適合 %2$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too small to fit in your %2$s" -msgstr "%1$s 太小, 不適合 %2$s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Your %1$s is too heavy to fit in your %2$s" -msgstr "%1$s 太重, 不適合 %2$s" - #: src/iuse_actor.cpp #, c-format msgid "You don't think putting your %1$s in your %2$s is a good idea" msgstr "你不認為把你的 %1$s 放在你的 %2$s 是個好主意" -#: src/iuse_actor.cpp -#, c-format -msgid "You can't put your %1$s in your %2$s" -msgstr "你無法把 %1$s 放到 %2$s 裡。" - #: src/iuse_actor.cpp #, c-format msgid "You holster your %s" @@ -215771,6 +211978,10 @@ msgstr "你把你的 %s 收到槍套。" msgid "You need to unwield your %s before using it." msgstr "你必須在非手持 %s 的狀態下才能使用它。" +#: src/iuse_actor.cpp +msgid "Holster item" +msgstr "收納物品" + #: src/iuse_actor.cpp #, c-format msgid "Draw %s" @@ -215782,60 +211993,8 @@ msgid "Use %s" msgstr "使用 %s" #: src/iuse_actor.cpp -msgid "Can be activated to store a suitable item." -msgid_plural "Can be activated to store suitable items." -msgstr[0] "可以啟動來儲放適合的物品。" - -#: src/iuse_actor.cpp -msgid "Num items: " -msgstr "物品數量:" - -#: src/iuse_actor.cpp -msgid "Item volume: Min: " -msgstr "物品體積:最小:" - -#: src/iuse_actor.cpp -msgid " Max: " -msgstr " 最大: " - -#: src/iuse_actor.cpp -msgid "Max item weight: " -msgstr "" - -#: src/iuse_actor.cpp -#, c-format -msgid " %s" -msgstr " %s" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to store a single round of " -msgid_plural "Can be activated to store up to %i rounds of " -msgstr[0] "啟動後可儲存多達 %i 發" - -#: src/iuse_actor.cpp -#, c-format -msgid "No matching ammo for the %1$s" -msgstr "沒有適用於 %1$s 的彈藥" - -#: src/iuse_actor.cpp -#, c-format -msgid "You store the %1$s in your %2$s" -msgstr "你把 %1$s 裝入 %2$s" - -#: src/iuse_actor.cpp -msgid "Store ammo" -msgstr "裝子彈" - -#: src/iuse_actor.cpp -#, c-format -msgid "Store ammo in %s" -msgstr "把子彈裝進 %s" - -#: src/iuse_actor.cpp src/vehicle_use.cpp -#, c-format -msgid "Unload %s" -msgstr "清空 %s" +msgid "Can be activated to store suitable items." +msgstr "可以啟動來儲放適合的物品。" #: src/iuse_actor.cpp #, c-format @@ -216150,8 +212309,8 @@ msgid "You can't install bionics while mounted." msgstr "騎乘時無法安裝生化插件。" #: src/iuse_actor.cpp -msgid "You can't self-install bionics." -msgstr "你不能替自己安裝生化插件。" +msgid "You can't self-install this CBM." +msgstr "" #: src/iuse_actor.cpp msgid "You can't install a filthy CBM!" @@ -216296,6 +212455,10 @@ msgstr "鈍擊" msgid "Cut" msgstr "砍劈" +#: src/iuse_actor.cpp +msgid "Ballistic" +msgstr "" + #: src/iuse_actor.cpp msgid "Acid" msgstr "防酸" @@ -216308,10 +212471,6 @@ msgstr "防火" msgid "Warmth" msgstr "保暖度" -#: src/iuse_actor.cpp -msgid "Storage" -msgstr "儲存空間" - #: src/iuse_actor.cpp msgid "Are you sure? You will not gain any materials back." msgstr "你確定嗎? 你無法拿回任何材料。" @@ -217189,10 +213348,6 @@ msgstr "那是駝鹿,一種純粹邪惡的事物。你應該\"快點逃跑!\ msgid "It is SOFTWARE BUG." msgstr "這是一個軟體臭蟲。" -#: src/iuse_software_kitten.cpp -msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "機器人找貓 v22July2008 - 按 q 離開。" - #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" msgstr "機器人找貓 v22July2008" @@ -217212,22 +213367,27 @@ msgid ")." msgstr ")。" #: src/iuse_software_kitten.cpp +#, c-format msgid "" "Your job is to find kitten. This task is complicated by the existence of " "various things which are not kitten. Robot must touch items to determine if" " they are kitten or not. The game ends when robot finds kitten. " -"Alternatively, you may end the game by hitting 'q', 'Q' or the Escape key." +"Alternatively, you may end the game by hitting %s." msgstr "" -"你的任務是找到小貓。由於存在各種不是小貓的東西,使得這個任務變得複雜。機器人必須觸碰物品才能確定它們是不是小貓。當機器人找到小貓時,遊戲結束。或者,你可以按" -" q,Q 或 Esc 來結束遊戲。" #: src/iuse_software_kitten.cpp msgid "Press any key to start." msgstr "請按任意鍵開始。" #: src/iuse_software_kitten.cpp -msgid "Invalid command: Use direction keys or press 'q'." -msgstr "無效的指令: 按方向鍵移動或按 q 離開。" +#, c-format +msgid "robotfindskitten v22July2008 - press %s to quit." +msgstr "" + +#: src/iuse_software_kitten.cpp +#, c-format +msgid "Invalid command: Use direction keys or press %s to quit." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" @@ -217590,8 +213750,8 @@ msgid "Loading" msgstr "正在讀取" #: src/magic.cpp -msgid "ERROR: Invalid energy string. Defaulting to NONE" -msgstr "錯誤:無效的能量字串。預設成 NONE" +msgid "ERROR: Invalid magic_energy_type string. Defaulting to NONE" +msgstr "" #: src/magic.cpp msgid "ERROR: Invalid damage type string. Defaulting to none" @@ -217813,6 +213973,12 @@ msgstr "有效對象" msgid "Only affects the monsters: %s" msgstr "" +#. ~ amount of damage per second, abbreviated +#: src/magic.cpp +#, c-format +msgid ", %d/sec" +msgstr "" + #: src/magic.cpp src/veh_interact.cpp msgid "Damage" msgstr "傷害" @@ -218140,7 +214306,7 @@ msgstr "馬上玩! (隨機劇情)" msgid "" "Allows you to fully customize points pool, scenario, and character's " "profession, stats, traits, skills and other parameters." -msgstr "" +msgstr "容許你完全自定義點數、劇本、以及角色的職業、屬性、特質、技能以及其他設定。" #: src/main_menu.cpp msgid "Select from one of previously created character templates." @@ -220749,6 +216915,34 @@ msgctxt "memorial_female" msgid "Opened a strange temple." msgstr "開啟了一間奇怪的寺廟。" +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Lost the conduct %s%s." +msgstr "" + +#: src/memorial_logger.cpp +msgid " (disabled)" +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_male" +msgid "Gained the achievement %s%s." +msgstr "" + +#: src/memorial_logger.cpp +#, c-format +msgctxt "memorial_female" +msgid "Gained the achievement %s%s." +msgstr "" + #: src/memorial_logger.cpp #, c-format msgctxt "memorial_male" @@ -222509,12 +218703,35 @@ msgstr "%s 的頭部炸開成了翻攪的觸手!" msgid "The %s lashes its tentacle at you!" msgstr "%s 用觸手鞭打你!" +#: src/monattack.cpp +#, c-format +msgid "The %s lashes its tentacle at !" +msgstr "" + #. ~ 1$s is bodypart name, 2$d is damage value. #: src/monattack.cpp #, c-format msgid "Your %1$s is hit for %2$d damage!" msgstr "你的 %1$s 攻擊造成 %2$d 傷害!" +#. ~ 1$s is bodypart name, 2$d is damage value. +#: src/monattack.cpp +#, c-format +msgid "'s %1$s is hit for %2$d damage!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" +msgstr "" + +#: src/monattack.cpp +#, c-format +msgid "" +"The %1$s lashes its tentacle at 's %2$s, but glances off their " +"armor!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s's arms fly out at you, but you dodge!" @@ -222614,6 +218831,10 @@ msgstr "%s 瞪視你, 讓你不寒而慄。" msgid "You feel like you're being watched, it makes you sick." msgstr "你覺得好像正在被監視著, 這讓你很不舒服。" +#: src/monattack.cpp +msgid "Your sight darkens as the visions overtake you!" +msgstr "" + #: src/monattack.cpp #, c-format msgid "The %s probes your mind, but is rebuffed!" @@ -223647,18 +219868,6 @@ msgstr "隨著 %s 眼中的火焰熄滅, 你的武器光芒似乎變得更盛了 msgid "The %s was destroyed! GAME OVER!" msgstr "%s 被摧毀! 遊戲結束!" -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its pockets, but there's nothing left in them." -msgstr "%s 把手伸到口袋裡面, 不過裡面什麼都沒有了。" - -#. ~ %s is the possessive form of the monster's name -#: src/mondeath.cpp -#, c-format -msgid "The %s's hands fly to its remaining pockets, opening them!" -msgstr "%s 把手伸到其剩餘的口袋中, 全數打開!" - #. ~ %s is the possessive form of the monster's name #: src/mondeath.cpp #, c-format @@ -223701,11 +219910,6 @@ msgstr "" msgid "zombie slave" msgstr "屍奴 " -#: src/monexamine.cpp -#, c-format -msgid "Push %s" -msgstr "推 %s" - #: src/monexamine.cpp msgid "Rename" msgstr "重新命名" @@ -224183,10 +220387,6 @@ msgstr "追蹤中 " msgid "Ignoring." msgstr "無視" -#: src/monster.cpp -msgid "Zombie slave." -msgstr "屍奴 " - #: src/monster.cpp msgid "Hostile!" msgstr "敵對" @@ -224264,12 +220464,12 @@ msgid "It is nearly dead!" msgstr "它瀕臨死亡!" #: src/monster.cpp -msgid " Difficulty " -msgstr "難度" +msgid "Can see to your current location" +msgstr "" -#: src/monster.cpp src/npc.cpp -msgid "Aware of your presence!" -msgstr "注意到你的存在!" +#: src/monster.cpp +msgid "Can't see to your current location" +msgstr "" #: src/monster.cpp #, c-format @@ -224319,11 +220519,6 @@ msgstr "這是 %s。%s %s" msgid "It is %s." msgstr "這是 %s。" -#: src/monster.cpp -#, c-format -msgid "It is %s in size." -msgstr "這是 %s 大小。" - #: src/monster.cpp msgid "an animal" msgstr "動物" @@ -224673,6 +220868,15 @@ msgstr "疲勞等級:" msgid "Focus trends towards:" msgstr "專注力趨向:" +#. ~ This should never occur - this is the message when the character swtiches +#. to +#. ~ an invalid move mode or there's not a message for failing to switch to a +#. move +#. ~ mode +#: src/move_mode.cpp +msgid "You feel bugs crawl over your skin." +msgstr "" + #: src/mtype.cpp msgid "human" msgid_plural "humans" @@ -225222,8 +221426,8 @@ msgstr "負重: %.1f %s" #: src/newcharacter.cpp #, c-format -msgid "Melee damage bonus: %.1f" -msgstr "近戰傷害加成: %.1f" +msgid "Bash damage bonus: %.1f" +msgstr "" #: src/newcharacter.cpp msgid "" @@ -225613,6 +221817,10 @@ msgstr "殭屍臨近" msgid "Various limb wounds" msgstr "四肢帶傷" +#: src/newcharacter.cpp +msgid "Fungal infected player" +msgstr "" + #: src/newcharacter.cpp msgid "No starting NPC" msgstr "沒有初始 NPC" @@ -225629,6 +221837,10 @@ msgstr "" msgid "Age:" msgstr "" +#: src/newcharacter.cpp src/player_display.cpp +msgid "Blood type:" +msgstr "" + #: src/newcharacter.cpp #, c-format msgid "" @@ -225771,6 +221983,18 @@ msgstr "" msgid "Enter height in centimeters. Minimum 145, maximum 200" msgstr "" +#: src/newcharacter.cpp +msgid "Enter blood type (omit Rh):" +msgstr "" + +#: src/newcharacter.cpp +msgid "Invalid blood type." +msgstr "" + +#: src/newcharacter.cpp +msgid "Enter Rh factor:" +msgstr "" + #: src/newcharacter.cpp msgid "Name of template:" msgstr "模板名稱:" @@ -225880,13 +222104,12 @@ msgid "%1$s says something but you can't hear it!" msgstr "%1$s 說了什麼, 但是你聽不到!" #: src/npc.cpp -msgid "NPC: " +msgid "Aware of your presence" msgstr "" #: src/npc.cpp -#, c-format -msgid "Wielding a %s" -msgstr "手持 %s" +msgid "Unaware of you" +msgstr "" #: src/npc.cpp msgid "Completely untrusting" @@ -226261,8 +222484,13 @@ msgstr "你聽到 %s 的聲音從雙向無線電傳來:「老大,我到了 #: src/npcmove.cpp #, c-format -msgid "%s %s" -msgstr "%s %s" +msgid " %s, %s" +msgstr "" + +#: src/npcmove.cpp +#, c-format +msgid "%s %s%s" +msgstr "" #: src/npcmove.cpp #, c-format @@ -227117,6 +223345,13 @@ msgstr "交付:" msgid "Select a follower" msgstr "選擇一位追隨者" +#: src/npctrade.cpp +#, c-format +msgid "" +"Trading with %s.\n" +"%s to switch lists, letters to pick items, %s to finalize, %s to quit, %s to get information on an item." +msgstr "" + #: src/npctrade.cpp #, c-format msgid "Volume: %s %s, Weight: %.1f %s" @@ -227158,11 +223393,6 @@ msgstr "更多 >" msgid "Examine which item?" msgstr "檢視哪個物品?" -#: src/npctrade.cpp -#, c-format -msgid "Trade how many containers with %s [MAX: %d]: " -msgstr "" - #: src/npctrade.cpp #, c-format msgid "Trade how many %s [MAX: %d]: " @@ -227197,18 +223427,6 @@ msgstr "" msgid "Looks like a deal! Accept this trade?" msgstr "似乎是不錯的交易!願意成交嗎?" -#: src/npctrade.h -msgid "" -"TAB key to switch lists, letters to pick items,Enter to finalize, Esc to quit,\n" -"? to get information on an item." -msgstr "" -"[TAB] 切換買賣方物品列表;[字母] 選擇物品;[Enter] 確定交易;[Esc] 結束交易;\n" -"[?] 查詢物品資訊" - -#: src/options.cpp -msgid "System language" -msgstr "系統語言" - #: src/options.cpp msgid "General" msgstr "一般" @@ -227229,11 +223447,6 @@ msgstr "預設世界" msgid "Android" msgstr "Android" -#: src/options.cpp src/overmap_ui.cpp src/ranged.cpp -#, c-format -msgid "%s" -msgstr "%s" - #: src/options.cpp #, c-format msgid "Default: %s - Values: %s" @@ -227279,6 +223492,10 @@ msgstr "Deon's" msgid "Basic" msgstr "基本" +#: src/options.cpp +msgid "System language" +msgstr "系統語言" + #: src/options.cpp msgid "Default character name" msgstr "預設角色名字" @@ -227430,7 +223647,7 @@ msgstr "設定為 [否], 玩家會在超重時自動丟棄剛撿取的物品。" #: src/options.cpp msgid "Dangerous terrain warning prompt" -msgstr "" +msgstr "危險地形警告提示" #: src/options.cpp msgid "" @@ -227440,14 +223657,16 @@ msgid "" "while crouching and will be prompted. Never: You will not be able to move " "onto a dangerous tile unless running and will not be warned or prompted." msgstr "" +"總是: 你會在移動至危險地形時被提醒。 奔跑中: 你只會在奔跑狀態下移動至危險地形時被提醒。 蹲下: 你只會在蹲下狀態下移動至危險地形時被提醒。 永不:" +" 你將無法在非奔跑狀態下移動至危險地形,且不會被警告或提醒。" #: src/options.cpp msgid "Crouching" -msgstr "" +msgstr "蹲下" #: src/options.cpp msgid "Running" -msgstr "" +msgstr "奔跑" #: src/options.cpp msgid "Safe mode" @@ -227755,6 +223974,11 @@ msgstr "" msgid "12h" msgstr "12h" +#. ~ Military time, e.g. 2359 +#: src/options.cpp +msgid "Military" +msgstr "軍用" + #. ~ 24h time, e.g. 23:59 #: src/options.cpp msgid "24h" @@ -227822,13 +224046,13 @@ msgstr "設定為 [是], 可用的動作 (如閱讀、吸煙、包緊) 會顯示 #: src/options.cpp msgid "Autoselect if exactly one valid target" -msgstr "" +msgstr "自動選取單一有效目標" #: src/options.cpp msgid "" "If true, directional actions ( like \"Examine\", \"Open\", \"Pickup\" ) will" " autoselect an adjacent tile if there is exactly one valid target." -msgstr "" +msgstr "若設定為是,指向性行動 (像\"調查\"、\"開啟\"、\"拿取\") 會在只有單一個有效目標的情況下自動選取鄰近地形。" #: src/options.cpp msgid "Diagonal movement with cursor keys and modifiers" @@ -228232,16 +224456,16 @@ msgid "Terminal width" msgstr "視窗寬度" #: src/options.cpp -msgid "Set the size of the terminal along the X axis. Requires restart." -msgstr "設定視窗的寬度, 需要重新啟動遊戲。" +msgid "Set the size of the terminal along the X axis." +msgstr "" #: src/options.cpp msgid "Terminal height" msgstr "視窗高度" #: src/options.cpp -msgid "Set the size of the terminal along the Y axis. Requires restart." -msgstr "設定視窗的高度, 需要重新啟動遊戲。" +msgid "Set the size of the terminal along the Y axis." +msgstr "" #: src/options.cpp msgid "Font blending" @@ -228361,13 +224585,14 @@ msgid "Choose the tileset you want to use." msgstr "選擇你想使用的圖像包。" #: src/options.cpp -msgid "Memory map drawing mode" -msgstr "記憶區域描繪模式" +msgid "Memory map overlay preset" +msgstr "" #: src/options.cpp msgid "" -"Specified the mode in which the memory map is drawn. Requires restart." -msgstr "設定地圖記憶區域的描繪模式。需要重新啟動。" +"Specified the overlay in which the memory map is drawn. Requires restart. " +"For custom overlay define gamma and RGB values for dark and light colors." +msgstr "" #: src/options.cpp msgid "Darkened" @@ -228377,6 +224602,70 @@ msgstr "昏黑" msgid "Sepia" msgstr "深褐色" +#: src/options.cpp +msgid "Sepia Dark" +msgstr "" + +#: src/options.cpp +msgid "Blue Dark" +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom dark color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for dark color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - RED" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color RED for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - GREEN" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color GREEN for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom bright color RGB overlay - BLUE" +msgstr "" + +#: src/options.cpp +msgid "Specify RGB value for color BLUE for bright color overlay." +msgstr "" + +#: src/options.cpp +msgid "Custom gamma for overlay" +msgstr "" + +#: src/options.cpp +msgid "Specify gamma value for overlay." +msgstr "" + #: src/options.cpp msgid "Pixel minimap" msgstr "像素小地圖" @@ -228581,129 +224870,6 @@ msgstr "2x" msgid "4x" msgstr "4x" -#: src/options.cpp -msgid "Distance initial visibility" -msgstr "初始可見範圍" - -#: src/options.cpp -msgid "Determines the scope, which is known in the beginning of the game." -msgstr "在遊戲開始時便已知的地圖半徑。" - -#: src/options.cpp -msgid "Initial stat points" -msgstr "初始屬性點數" - -#: src/options.cpp -msgid "Initial points available to spend on stats on character generation." -msgstr "創造角色時可用的初始屬性點數。" - -#: src/options.cpp -msgid "Initial trait points" -msgstr "初始特質點數" - -#: src/options.cpp -msgid "Initial points available to spend on traits on character generation." -msgstr "創造角色時可用的初始特質點數。" - -#: src/options.cpp -msgid "Initial skill points" -msgstr "初始技能點數" - -#: src/options.cpp -msgid "Initial points available to spend on skills on character generation." -msgstr "創造角色時可用的初始技能點數。" - -#: src/options.cpp -msgid "Maximum trait points" -msgstr "最大特質點數" - -#: src/options.cpp -msgid "Maximum trait points available for character generation." -msgstr "創造角色時允許的最大特質點數。" - -#: src/options.cpp -msgid "Skill training speed" -msgstr "技能訓練速度" - -#: src/options.cpp -msgid "" -"Scales experience gained from practicing skills and reading books. 0.5 is " -"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " -"except for NPC training." -msgstr "" -"設定使用技能和閱讀書本時所得的經驗值比率。 [0.5] 代表一半速度。 [2.0] 代表兩倍速度。 [0.0] 則只能透過 NPC 訓練提升。" - -#: src/options.cpp -msgid "Skill rust" -msgstr "技能衰減" - -#: src/options.cpp -msgid "" -"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" -" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " -"dependent, capped - Off: None at all." -msgstr "" -"技能衰減的程度。 [正常] 一般衰減。 [存在閾值] 等級 2 之後才會衰減。 [智力決定] 智力越高衰減越慢。 [智力閾值] 等級 2 " -"之後依照智力程度衰減。 [關閉] 永不衰減。" - -#. ~ plain, default, normal -#: src/options.cpp -msgid "Vanilla" -msgstr "正常" - -#. ~ capped at a value -#: src/options.cpp -msgid "Capped" -msgstr "存在閾值" - -#. ~ based on intelligence -#: src/options.cpp -msgid "Int" -msgstr "智力決定" - -#. ~ based on intelligence and capped -#: src/options.cpp -msgid "IntCap" -msgstr "智力閾值" - -#: src/options.cpp src/panels.cpp -msgid "Off" -msgstr "關閉" - -#: src/options.cpp -msgid "Experimental 3D field of vision" -msgstr "實驗性 3D 視野" - -#: src/options.cpp -msgid "" -"If false, vision is limited to current z-level. If true and the world is in" -" z-level mode, the vision will extend beyond current z-level. Currently " -"very bugged!" -msgstr "" -"設定為 [否], 視野會僅限於身處的 Z 軸。設定為 [是], 而且世界啟用了 Z 軸, 視野將不限於身處的 Z 軸。目前有非常多 Bug! " - -#: src/options.cpp -msgid "Vertical range of 3D field of vision" -msgstr "" - -#: src/options.cpp -msgid "" -"How many levels up and down the experimental 3D field of vision reaches. " -"(This many levels up, this many levels down.) 3D vision of the full height " -"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." -msgstr "" - -#: src/options.cpp -msgid "Experimental path name encoding conversion" -msgstr "實驗性路徑名稱編碼轉換" - -#: src/options.cpp -msgid "" -"If true, file path names are going to be transcoded from system encoding to " -"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" -" Windows users." -msgstr "設定為 [是], 檔案路徑名稱在讀取時將從系統編碼轉換成 UTF-8 編碼, 寫入時則相反。主要為了 CJK Windows 使用者。" - #: src/options.cpp msgid "Core version data" msgstr "核心版本數據" @@ -228976,6 +225142,129 @@ msgstr "點數分別計算" msgid "No freeform" msgstr "沒有自由形式" +#: src/options.cpp +msgid "Distance initial visibility" +msgstr "初始可見範圍" + +#: src/options.cpp +msgid "Determines the scope, which is known in the beginning of the game." +msgstr "在遊戲開始時便已知的地圖半徑。" + +#: src/options.cpp +msgid "Initial stat points" +msgstr "初始屬性點數" + +#: src/options.cpp +msgid "Initial points available to spend on stats on character generation." +msgstr "創造角色時可用的初始屬性點數。" + +#: src/options.cpp +msgid "Initial trait points" +msgstr "初始特質點數" + +#: src/options.cpp +msgid "Initial points available to spend on traits on character generation." +msgstr "創造角色時可用的初始特質點數。" + +#: src/options.cpp +msgid "Initial skill points" +msgstr "初始技能點數" + +#: src/options.cpp +msgid "Initial points available to spend on skills on character generation." +msgstr "創造角色時可用的初始技能點數。" + +#: src/options.cpp +msgid "Maximum trait points" +msgstr "最大特質點數" + +#: src/options.cpp +msgid "Maximum trait points available for character generation." +msgstr "創造角色時允許的最大特質點數。" + +#: src/options.cpp +msgid "Skill training speed" +msgstr "技能訓練速度" + +#: src/options.cpp +msgid "" +"Scales experience gained from practicing skills and reading books. 0.5 is " +"half as fast as default, 2.0 is twice as fast, 0.0 disables skill training " +"except for NPC training." +msgstr "" +"設定使用技能和閱讀書本時所得的經驗值比率。 [0.5] 代表一半速度。 [2.0] 代表兩倍速度。 [0.0] 則只能透過 NPC 訓練提升。" + +#: src/options.cpp +msgid "Skill rust" +msgstr "技能衰減" + +#: src/options.cpp +msgid "" +"Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at" +" skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence " +"dependent, capped - Off: None at all." +msgstr "" +"技能衰減的程度。 [正常] 一般衰減。 [存在閾值] 等級 2 之後才會衰減。 [智力決定] 智力越高衰減越慢。 [智力閾值] 等級 2 " +"之後依照智力程度衰減。 [關閉] 永不衰減。" + +#. ~ plain, default, normal +#: src/options.cpp +msgid "Vanilla" +msgstr "正常" + +#. ~ capped at a value +#: src/options.cpp +msgid "Capped" +msgstr "存在閾值" + +#. ~ based on intelligence +#: src/options.cpp +msgid "Int" +msgstr "智力決定" + +#. ~ based on intelligence and capped +#: src/options.cpp +msgid "IntCap" +msgstr "智力閾值" + +#: src/options.cpp src/panels.cpp +msgid "Off" +msgstr "關閉" + +#: src/options.cpp +msgid "Experimental 3D field of vision" +msgstr "實驗性 3D 視野" + +#: src/options.cpp +msgid "" +"If false, vision is limited to current z-level. If true and the world is in" +" z-level mode, the vision will extend beyond current z-level. Currently " +"very bugged!" +msgstr "" +"設定為 [否], 視野會僅限於身處的 Z 軸。設定為 [是], 而且世界啟用了 Z 軸, 視野將不限於身處的 Z 軸。目前有非常多 Bug! " + +#: src/options.cpp +msgid "Vertical range of 3D field of vision" +msgstr "" + +#: src/options.cpp +msgid "" +"How many levels up and down the experimental 3D field of vision reaches. " +"(This many levels up, this many levels down.) 3D vision of the full height " +"of the world can slow the game down a lot. Seeing fewer Z-levels is faster." +msgstr "" + +#: src/options.cpp +msgid "Experimental path name encoding conversion" +msgstr "實驗性路徑名稱編碼轉換" + +#: src/options.cpp +msgid "" +"If true, file path names are going to be transcoded from system encoding to " +"UTF-8 when reading and will be transcoded back when writing. Mainly for CJK" +" Windows users." +msgstr "設定為 [是], 檔案路徑名稱在讀取時將從系統編碼轉換成 UTF-8 編碼, 寫入時則相反。主要為了 CJK Windows 使用者。" + #: src/options.cpp msgid "Quicksave on app lose focus" msgstr "快速儲存在應用程序上失去焦點" @@ -229999,21 +226288,6 @@ msgstr "智力" msgid "PER" msgstr "感知" -#: src/panels.cpp -msgctxt "movement-type" -msgid "R" -msgstr "跑" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "C" -msgstr "C" - -#: src/panels.cpp -msgctxt "movement-type" -msgid "W" -msgstr "走" - #: src/panels.cpp msgid "DEAF" msgstr "耳聾" @@ -230347,8 +226621,8 @@ msgstr "穿 %s" #: src/pickup.cpp #, c-format -msgid "Spill %s, then pick up %s" -msgstr "倒掉 %s, 然後撿取 %s" +msgid "Spill contents of %s, then pick up %s" +msgstr "" #: src/pickup.cpp msgid "" @@ -230383,10 +226657,6 @@ msgstr "你不能撿取液體!" msgid "You're overburdened!" msgstr "你負重過重!" -#: src/pickup.cpp -msgid "You struggle to carry such a large volume!" -msgstr "你的儲物空間不足了!" - #: src/pickup.cpp msgid "Get items from vehicle cargo" msgstr "從車輛貨箱中拿取物品" @@ -230707,36 +226977,6 @@ msgstr "你的斗篷閃爍了一下子就變不透明了。" msgid "Your power armor disengages." msgstr "你的動力裝甲關閉了。" -#: src/player.cpp -#, c-format -msgid "Drink %s from your hands?" -msgstr "用手把 %s 捧起來喝嗎?" - -#: src/player.cpp -#, c-format -msgid "You can't eat your %s." -msgstr "你不能吃你的 %s。" - -#: src/player.cpp -#, c-format -msgid "You are now wielding an empty %s." -msgstr "你現在拿著空的 %s。" - -#: src/player.cpp -#, c-format -msgid "You are now wearing an empty %s." -msgstr "你現在穿戴著一個空的 %s。" - -#: src/player.cpp -#, c-format -msgid "You drop the empty %s." -msgstr "你丟棄空的 %s。" - -#: src/player.cpp -#, c-format -msgid "%c - %d empty %s" -msgstr "%c - %d 空的 %s" - #: src/player.cpp src/veh_interact.cpp #, c-format msgid "Refill %s" @@ -230862,6 +227102,10 @@ msgstr "%s 沒有任何故障可供切換。" msgid "The %s doesn't have any faults to mend." msgstr "%s 沒有任何故障可供修補。" +#: src/player.cpp +msgid "It is damaged, but cannot be repaired." +msgstr "" + #: src/player.cpp #, c-format msgid "" @@ -230950,11 +227194,6 @@ msgstr "你無法將該物品脫下。" msgid " can't take that item off." msgstr " 無法將該物品脫下。" -#: src/player.cpp -#, c-format -msgid "No room in inventory for your %s. Drop it?" -msgstr "你的物品欄沒有空間來容納 %s。要丟棄它嗎?" - #: src/player.cpp #, c-format msgid "You take off your %s." @@ -231161,6 +227400,10 @@ msgstr "你覺得在這個等級的 %s 工作變得沒挑戰性了。" msgid "This task is too simple to train your %s beyond %d." msgstr "這事情太簡單而無法讓你訓練 %s 超過 %d。" +#: src/player.cpp +msgid " (empty)" +msgstr "" + #: src/player.cpp msgid "Wield what?" msgstr "手持什麼?" @@ -231223,7 +227466,7 @@ msgstr "" #: src/player_display.cpp #, c-format -msgid "Running movement point cost: %+d\n" +msgid "Movement point cost: %+d\n" msgstr "" #: src/player_display.cpp @@ -231302,6 +227545,10 @@ msgstr "" msgid "Reduced gun aim speed: %.1f" msgstr "" +#: src/player_display.cpp +msgid "Weight:" +msgstr "體重:" + #: src/player_display.cpp msgid "" "Strength affects your melee damage, the amount of weight you can carry, your" @@ -231323,8 +227570,8 @@ msgstr "攜帶重量 (%s): %.1f" #: src/player_display.cpp #, c-format -msgid "Melee damage: %.1f" -msgstr "近戰傷害: %.1f" +msgid "Bash damage: %.1f" +msgstr "" #: src/player_display.cpp msgid "" @@ -231390,10 +227637,6 @@ msgstr "偵測陷阱等級: %d" msgid "Aiming penalty: %+d" msgstr "瞄準懲罰: %+d" -#: src/player_display.cpp -msgid "Weight:" -msgstr "體重:" - #: src/player_display.cpp msgid "" "Your weight is a general indicator of how much fat your body has stored up, " @@ -231409,6 +227652,20 @@ msgstr "" msgid "This is how old you are." msgstr "" +#: src/player_display.cpp +msgid "This is your blood type and Rh factor." +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Blood type: %s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "Rh factor: %s" +msgstr "" + #: src/player_display.cpp #, c-format msgid "" @@ -231478,6 +227735,27 @@ msgctxt "speed bonus" msgid "Bionic Speed +%2d%%" msgstr "" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s | %3$s" +msgstr "" + +#. ~ player info window: 1s - name, 2s - gender '|' - field separator. +#: src/player_display.cpp +#, c-format +msgid " %1$s | %2$s" +msgstr "" + +#: src/player_display.cpp +#, c-format +msgid "[%s]" +msgstr "" + +#: src/player_display.cpp +msgid "Profession Name: " +msgstr "" + #: src/player_display.cpp #, c-format msgid "Strength -%d" @@ -231563,18 +227841,6 @@ msgstr "" "力量 -4 敏捷 -4 智力 -4 感知 -4\n" "陽光要命的荼毒著你。" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s | %3$s" -msgstr "" - -#. ~ player info window: 1s - name, 2s - gender '|' - field separator. -#: src/player_display.cpp -#, c-format -msgid " %1$s | %2$s" -msgstr "" - #: src/player_display.cpp msgid "Cycle to next category" msgstr "移到下個分類" @@ -231584,12 +227850,7 @@ msgid "Cycle to previous category" msgstr "移到上個分類" #: src/player_display.cpp -msgid "Toggle skill training" -msgstr "切換技能訓練" - -#: src/player_display.cpp -#, c-format -msgid "[%s]" +msgid "Toggle skill training / Upgrade stat" msgstr "" #: src/player_hardcoded_effects.cpp @@ -231906,10 +228167,6 @@ msgid "" "more." msgstr "你覺得病厭厭, 就像是中毒了, 但是你需要更多。非常多。" -#: src/player_hardcoded_effects.cpp -msgid "Glowing lights surround you, and you teleport." -msgstr "你被光束圍繞, 然後被傳送走了。" - #: src/player_hardcoded_effects.cpp msgid "You are beset with a vision of a prowling beast." msgstr "" @@ -231918,6 +228175,10 @@ msgstr "" msgid "Your surroundings are permeated with a foul scent." msgstr "你周圍的環境充滿了難聞的氣味。" +#: src/player_hardcoded_effects.cpp +msgid "Glowing lights surround you, and you teleport." +msgstr "你被光束圍繞, 然後被傳送走了。" + #: src/player_hardcoded_effects.cpp msgid "You pass out." msgstr "你昏倒了。" @@ -232043,6 +228304,10 @@ msgstr "你感覺 %s 的傷口好轉了!" msgid "You succumb to the infection." msgstr "你死於感染。" +#: src/player_hardcoded_effects.cpp +msgid "You try to sleep, but can't…" +msgstr "你試著睡覺,但睡不著…" + #: src/player_hardcoded_effects.cpp msgid "You feel well rested." msgstr "你充分的休息了。" @@ -232078,10 +228343,6 @@ msgstr "你熱到打滾。" msgid "It's too hot to sleep." msgstr "太炎熱了沒辦法睡。" -#: src/player_hardcoded_effects.cpp -msgid "It looks like you woke up just before your alarm." -msgstr "看來你在鬧鈴響前就醒了。" - #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." msgstr "你的內部計時器響了, 你一點都沒睡著。" @@ -232254,29 +228515,174 @@ msgid "You feel a surge of euphoria as flames roar out of the %s!" msgstr "當火焰從 %s 的槍口咆哮而出時, 你感到一陣興奮!" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "High" -msgstr "高" +msgid "Steadiness" +msgstr "穩定性" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Medium" -msgstr "中" +msgid "Moves" +msgstr "" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "Low" -msgstr "低" +msgid "Symbols:" +msgstr "" #: src/ranged.cpp -msgctxt "amount of backward momentum" -msgid "None" -msgstr "無" +msgid "" +" Great - Normal - " +"Graze - Moves" +msgstr "" + +#: src/ranged.cpp +msgid "Current" +msgstr "" #: src/ranged.cpp #, c-format -msgid "Recoil: %s" -msgstr "後座力: %s" +msgid "%s %s:" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "" +"[%s] %s %s: Moves to fire: %d" +msgstr "" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Great" +msgstr "爆擊" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Normal" +msgstr "命中" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Graze" +msgstr "擦過" + +#: src/ranged.cpp +msgctxt "aim_confidence" +msgid "Hit" +msgstr "命中" + +#: src/ranged.cpp +msgid "Regular" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to aim and fire." +msgstr "[%c] 瞄準並射擊。" + +#: src/ranged.cpp +msgid "Careful" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to take careful aim and fire." +msgstr "[%c] 仔細瞄準並射擊。" + +#: src/ranged.cpp +msgid "Precise" +msgstr "" + +#: src/ranged.cpp +#, c-format +msgid "[%c] to take precise aim and fire." +msgstr "[%c] 精確瞄準並射擊。" + +#: src/ranged.cpp +msgid "Thunk!" +msgstr "咚!" + +#: src/ranged.cpp +msgid "tz-CRACKck!" +msgstr "嘶-咔啦!" + +#: src/ranged.cpp +msgid "Fwoosh!" +msgstr "嗚-咻!" + +#: src/ranged.cpp +msgid "whizz!" +msgstr "嗖嗖!" + +#: src/ranged.cpp +msgid "thonk!" +msgstr "隆!" + +#: src/ranged.cpp +msgid "Fzzt!" +msgstr "嘶-嘶!" + +#: src/ranged.cpp +msgid "Pew!" +msgstr "砰!" + +#: src/ranged.cpp +msgid "Tsewww!" +msgstr "咻-咻!" + +#: src/ranged.cpp +msgid "Kra-kow!" +msgstr "咔-咕!" + +#: src/ranged.cpp +msgid "Bzzt!" +msgstr "啪-嗞!" + +#: src/ranged.cpp +msgid "Bzap!" +msgstr "啪-嚓!" + +#: src/ranged.cpp +msgid "Bzaapp!" +msgstr "啪-嘶!" + +#: src/ranged.cpp +msgid "Kra-koom!" +msgstr "咔-砰!" + +#: src/ranged.cpp +msgid "Brrrip!" +msgstr "嗶-哩!" + +#: src/ranged.cpp +msgid "plink!" +msgstr "噼-哩!" + +#: src/ranged.cpp +msgid "Brrrap!" +msgstr "啪-啦!" + +#: src/ranged.cpp +msgid "P-p-p-pow!" +msgstr "嗶-嗶-砰!" + +#: src/ranged.cpp +msgid "blam!" +msgstr "嘣!" + +#: src/ranged.cpp +msgid "Kaboom!" +msgstr "喀-砰!" + +#: src/ranged.cpp +msgid "kerblam!" +msgstr "咔-啦-碰!" + +#: src/ranged.cpp +#, c-format +msgid "You don't have enough %s to cast this spell" +msgstr "你沒有足夠的%s來施放此法術" + +#: src/ranged.cpp +#, c-format +msgid "Really attack %s?" +msgstr "確定攻擊 %s?" #: src/ranged.cpp #, c-format @@ -232297,14 +228703,6 @@ msgstr "盲擲 %s" msgid "Set target" msgstr "設定目標" -#: src/ranged.cpp -msgid "< [?] show help >" -msgstr "< [?] 顯示說明 >" - -#: src/ranged.cpp -msgid "Move cursor to target with directional keys" -msgstr "使用方向鍵來移動游標到目標上" - #: src/ranged.cpp msgctxt "[Hotkey] to throw" msgid "to throw" @@ -232326,156 +228724,92 @@ msgid "to fire" msgstr "" #: src/ranged.cpp -#, c-format -msgid "[%s] Cycle targets;" +msgid "[?] show all controls" msgstr "" #: src/ranged.cpp -#, c-format -msgid "[%c] target self; [%c] toggle snap-to-target" -msgstr "[%c] 瞄準自己; [%c] 切換目標置中" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to steady your aim. (10 moves)" -msgstr "[%c] 穩定瞄準。(10 行動值)" - -#: src/ranged.cpp -#, c-format -msgid "%sto aim and fire" -msgstr "%s 瞄準並射擊" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch aiming modes." -msgstr "[%c] 切換瞄準模式。" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to switch firing modes." -msgstr "[%c] 切換射擊模式。" - -#: src/ranged.cpp -#, c-format -msgid "[%c] to reload/switch ammo." -msgstr "[%c] 重新裝填或更換彈藥。" - -#: src/ranged.cpp -msgid "RMB: Fire" +msgid "[?] show help" msgstr "" #: src/ranged.cpp -msgid "Steadiness" -msgstr "穩定性" - -#: src/ranged.cpp -msgid "Symbols:" +msgid "Shift view with directional keys" msgstr "" #: src/ranged.cpp -msgid "Current" +msgid "Move cursor with directional keys" msgstr "" #: src/ranged.cpp -#, c-format -msgid "%s %s:" +msgid "Mouse: LMB: Target, Wheel: Cycle," msgstr "" #: src/ranged.cpp -msgid "Moves" -msgstr "" +msgid "RMB: Fire" +msgstr "右鍵:發射" #: src/ranged.cpp #, c-format -msgid "" -"[%s] %s %s: Moves to fire: %d" -msgstr "" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Great" -msgstr "爆擊" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Normal" -msgstr "命中" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Graze" -msgstr "擦過" +msgid "[%s] Cycle targets;" +msgstr "[%s] 循環切換目標;" #: src/ranged.cpp #, c-format -msgid "Turrets in range: %d" -msgstr "範圍內的槍塔: %d" - -#: src/ranged.cpp -msgctxt "aim_confidence" -msgid "Hit" -msgstr "命中" - -#: src/ranged.cpp -msgid "Regular" +msgid "[%c] %s." msgstr "" #: src/ranged.cpp #, c-format -msgid "[%c] to aim and fire." -msgstr "[%c] 瞄準並射擊。" +msgid "[%c] target self; [%c] toggle snap-to-target" +msgstr "[%c] 瞄準自己; [%c] 切換目標置中" #: src/ranged.cpp -msgid "Careful" +msgid "to aim and fire." msgstr "" #: src/ranged.cpp #, c-format -msgid "[%c] to take careful aim and fire." -msgstr "[%c] 仔細瞄準並射擊。" - -#: src/ranged.cpp -msgid "Precise" -msgstr "" +msgid "[%c] to steady your aim. (10 moves)" +msgstr "[%c] 穩定瞄準。(10 行動值)" #: src/ranged.cpp #, c-format -msgid "[%c] to take precise aim and fire." -msgstr "[%c] 精確瞄準並射擊。" +msgid "[%c] to switch aiming modes." +msgstr "[%c] 切換瞄準模式。" #: src/ranged.cpp -msgid "turrets" -msgstr "槍塔" +#, c-format +msgid "[%c] to switch firing modes." +msgstr "[%c] 切換射擊模式。" #: src/ranged.cpp #, c-format -msgid "Really attack %s?" -msgstr "確定攻擊 %s?" +msgid "[%c] to reload/switch ammo." +msgstr "[%c] 重新裝填或更換彈藥。" #: src/ranged.cpp #, c-format -msgid "Range: %s Elevation: %d" +msgctxt "[Hotkey] Show/Hide turrets' lines of fire" +msgid "[%c] %s lines of fire" msgstr "" #: src/ranged.cpp #, c-format -msgid "Targets: %d" +msgid "Elevation: %d" msgstr "" #: src/ranged.cpp #, c-format -msgid "Range: %s Elevation: %d Targets: %d" +msgid "Targets: %d" msgstr "" #: src/ranged.cpp #, c-format -msgid "Firing mode: %s %s (%d)" -msgstr "射擊模式:%s %s(%d)" +msgid "Firing mode: %s%s (%d)" +msgstr "" #: src/ranged.cpp -#, c-format -msgid "Firing mode: %s (%d)" -msgstr "射擊模式:%s(%d)" +msgid "OUT OF AMMO" +msgstr "" #: src/ranged.cpp #, c-format @@ -232488,14 +228822,29 @@ msgid "Ammo: %s (%d/%d)" msgstr "彈藥: %s (%d/%d)" #: src/ranged.cpp -#, c-format -msgid "%s Delay: %i" -msgstr "%s, 延遲: %i" +msgctxt "amount of backward momentum" +msgid "High" +msgstr "高" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Medium" +msgstr "中" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "Low" +msgstr "低" + +#: src/ranged.cpp +msgctxt "amount of backward momentum" +msgid "None" +msgstr "無" #: src/ranged.cpp #, c-format -msgid "You don't have enough %s to cast this spell" -msgstr "你沒有足夠的%s來施放此法術" +msgid "Recoil: %s" +msgstr "後座力: %s" #: src/ranged.cpp #, c-format @@ -232517,16 +228866,6 @@ msgstr "消耗:%s %s(目前:%s)" msgid "0.0 % Failure Chance" msgstr "0.0 % 失敗機率" -#: src/ranged.cpp -#, c-format -msgid "Range: %d/%d Elevation: %d Targets: %d" -msgstr "範圍:%d/%d 標高:%d 目標:%d" - -#: src/ranged.cpp -#, c-format -msgid "Range: %d Elevation: %d Targets: %d" -msgstr "範圍:%d 標高:%d 目標:%d" - #: src/ranged.cpp #, c-format msgid "Effective Spell Radius: %s%s" @@ -232552,84 +228891,14 @@ msgid "Damage: %s" msgstr "傷害:%s" #: src/ranged.cpp -msgid "Thunk!" -msgstr "咚!" - -#: src/ranged.cpp -msgid "tz-CRACKck!" -msgstr "嘶-咔啦!" - -#: src/ranged.cpp -msgid "Fwoosh!" -msgstr "嗚-咻!" - -#: src/ranged.cpp -msgid "whizz!" -msgstr "嗖嗖!" - -#: src/ranged.cpp -msgid "thonk!" -msgstr "隆!" - -#: src/ranged.cpp -msgid "Fzzt!" -msgstr "嘶-嘶!" - -#: src/ranged.cpp -msgid "Pew!" -msgstr "砰!" - -#: src/ranged.cpp -msgid "Tsewww!" -msgstr "咻-咻!" - -#: src/ranged.cpp -msgid "Kra-kow!" -msgstr "咔-咕!" - -#: src/ranged.cpp -msgid "Bzzt!" -msgstr "啪-嗞!" - -#: src/ranged.cpp -msgid "Bzap!" -msgstr "啪-嚓!" - -#: src/ranged.cpp -msgid "Bzaapp!" -msgstr "啪-嘶!" - -#: src/ranged.cpp -msgid "Kra-koom!" -msgstr "咔-砰!" - -#: src/ranged.cpp -msgid "Brrrip!" -msgstr "嗶-哩!" - -#: src/ranged.cpp -msgid "plink!" -msgstr "噼-哩!" - -#: src/ranged.cpp -msgid "Brrrap!" -msgstr "啪-啦!" - -#: src/ranged.cpp -msgid "P-p-p-pow!" -msgstr "嗶-嗶-砰!" - -#: src/ranged.cpp -msgid "blam!" -msgstr "嘣!" - -#: src/ranged.cpp -msgid "Kaboom!" -msgstr "喀-砰!" +#, c-format +msgid "%s Delay: %i" +msgstr "%s, 延遲: %i" #: src/ranged.cpp -msgid "kerblam!" -msgstr "咔-啦-碰!" +#, c-format +msgid "Turrets in range: %d/%d" +msgstr "" #: src/recipe.cpp msgid "none" @@ -232798,6 +229067,14 @@ msgid "" "*cid*zo*ie multiple * are allowed\n" "AcI*zO*iE case insensitive search" msgstr "" +"* 是一個萬用字元。舉例如下:\n" +"\n" +"human 符合所有 NPC\n" +"zombie 符合名稱完全一樣的怪物\n" +"acidic zo* 符合名稱以 acidic zo 開頭的怪物\n" +"*mbie 符合名稱以 mble 結尾的怪物\n" +"*cid*zo*ie 允許使用多個 * 符號\n" +"AcI*zO*iE 搜尋不區分大小寫" #: src/safemode_ui.cpp msgid "" @@ -232860,13 +229137,35 @@ msgid "Limited" msgstr "限定" #: src/scores_ui.cpp -msgid "This game has no valid achievements.\n" +msgid "achievements" +msgstr "" + +#: src/scores_ui.cpp +msgid "conducts" +msgstr "" + +#: src/scores_ui.cpp +msgid "Conducts" msgstr "" #: src/scores_ui.cpp +#, c-format +msgid "" +"%s are disabled, probably due to use of the debug menu. If you only used " +"the debug menu to work around a game bug, then you can re-enable %s via the " +"debug menu (\"Enable achievements\" under the \"Game\" submenu)." +msgstr "" + +#: src/scores_ui.cpp +#, c-format +msgid "This game has no valid %s.\n" +msgstr "" + +#: src/scores_ui.cpp +#, c-format msgid "" -"Note that only achievements that existed when you started this game and " -"still exist now will appear here." +"Note that only %s that existed when you started this game and still exist " +"now will appear here." msgstr "" #: src/scores_ui.cpp @@ -232885,6 +229184,10 @@ msgstr "" msgid "ACHIEVEMENTS" msgstr "" +#: src/scores_ui.cpp +msgid "CONDUCTS" +msgstr "" + #: src/scores_ui.cpp msgid "SCORES" msgstr "評分" @@ -233649,8 +229952,8 @@ msgid "A blade swings out and hacks your torso!" msgstr "刀刃伸出揮砍你的軀幹!" #: src/trapfunc.cpp -msgid "A blade swings out and hacks s torso!" -msgstr "刀刃伸出揮砍 的軀幹!" +msgid "A blade swings out and hacks 's torso!" +msgstr "" #: src/trapfunc.cpp msgid "Snap!" @@ -234060,6 +230363,14 @@ msgstr "你不能重新標記此載具,因為它是由 %s 所擁有的。" msgid "Only one %1$s powered engine can be installed." msgstr "只能安裝一個 %1$s 為動力的引擎。" +#: src/veh_interact.cpp +msgid "This vehicle cannot be modified in this way.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This part cannot be installed.\n" +msgstr "" + #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." msgstr "集雨器需要安裝在水箱上。" @@ -234211,6 +230522,12 @@ msgstr "太暗了,看不到東西無法進行動作..." msgid "You can't install parts while driving." msgstr "你無法在開車時安裝零件。" +#: src/veh_interact.cpp +msgid "" +"Installing this part will mean that this vehicle is no longer flightworthy." +" Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" msgstr "安裝此部件將使載具無法折疊。是否繼續?" @@ -234236,8 +230553,22 @@ msgid "Choose a part here to repair:" msgstr "選擇要修理的零件:" #: src/veh_interact.cpp -msgid "This part cannot be repaired" -msgstr "這個零件無法修理" +msgid "This part cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "This vehicle cannot be repaired.\n" +msgstr "" + +#: src/veh_interact.cpp +msgid "" +"Repairing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + +#: src/veh_interact.cpp +msgid "You chose not to install this part to keep the vehicle flyable.\n" +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to mend…" @@ -234340,6 +230671,10 @@ msgstr "[{] 向上捲動" msgid "'}' to scroll down" msgstr "[}] 向下捲動" +#: src/veh_interact.cpp +msgid "This part cannot be uninstalled.\n" +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "" @@ -234349,35 +230684,18 @@ msgstr "移除損壞的 %1$s 可能會獲得一些碎片。 #: src/veh_interact.cpp #, c-format msgid "" -"Removing the %1$s will yield:\n" +"Removing the %1$s may yield:\n" "> %2$s\n" msgstr "" -"移除 %1$s 會獲得:\n" -"> %2$s\n" - -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength -#: src/veh_interact.cpp -#, c-format -msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength ( " -"assisted ) %5$i" -msgstr "" -"> %1$s1 個 %2$s %3$i級 以上的工具 或 %4$s 力量(被協助) " -"%5$i" -#. ~ %1$s represents the internal color name which shouldn't be translated, -#. %2$s is the tool quality, %3$i is tool level, %4$s is the internal color -#. name which shouldn't be translated and %5$i is the character's strength #: src/veh_interact.cpp #, c-format msgid "" -"> %1$s1 tool with %2$s %3$i OR %4$sstrength " -"%5$i" +"Removing the %1$s will yield:\n" +"> %2$s\n" msgstr "" -"> %1$s 1 個 %2$s %3$i級 以上的工具 或 %4$s " -"力量%5$i" +"移除 %1$s 會獲得:\n" +"> %2$s\n" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is pre-translated reason @@ -234402,6 +230720,12 @@ msgstr "你不能在有其他零件連結到這個零件時移除它。" msgid "Better not remove something while driving." msgstr "最好不要在開車時移除東西。" +#: src/veh_interact.cpp +msgid "" +"Removing this part will mean that this vehicle is no longer flightworthy. " +"Continue?" +msgstr "" + #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." msgstr "這個車輛已經沒有液體燃料能抽取了。" @@ -234848,6 +231172,11 @@ msgstr "你沒有達成移除 %s 的需求。" msgid "You remove the broken %1$s from the %2$s." msgstr "你將壞掉的 %1$s 從 %2$s 上移除。" +#: src/veh_interact.cpp +#, c-format +msgid "You smash the %1$s to bits, removing it from the %2$s." +msgstr "" + #: src/veh_interact.cpp #, c-format msgid "You remove the %1$s from the %2$s." @@ -235556,10 +231885,6 @@ msgstr "你無法在 %s 找到任何鑰匙。" msgid "You don't find any keys in the %s. Attempt to hotwire vehicle?" msgstr "你無法在 %s 找到任何鑰匙。嘗試短接發動?" -#: src/vehicle_use.cpp -msgid "Hotwire" -msgstr "短接發動" - #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" @@ -236064,6 +232389,11 @@ msgstr "關閉洗碗機" msgid "Activate the dishwasher (1.5 hours)" msgstr "啟動洗碗機 (1.5小時)" +#: src/vehicle_use.cpp +#, c-format +msgid "Unload %s" +msgstr "清空 %s" + #: src/vehicle_use.cpp msgid "Peek through the closed curtains" msgstr "從關閉的窗簾偷看" @@ -236489,11 +232819,6 @@ msgstr " (已標記)" msgid "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" msgstr "" -#: src/wish.cpp -#, c-format -msgid "%.*s" -msgstr "%.*s" - #: src/wish.cpp msgid "How many?" msgstr "多少?" diff --git a/msvc-full-features/Cataclysm-lib-vcpkg-static.vcxproj b/msvc-full-features/Cataclysm-lib-vcpkg-static.vcxproj index 92612114ddb80..66cf377f1163a 100644 --- a/msvc-full-features/Cataclysm-lib-vcpkg-static.vcxproj +++ b/msvc-full-features/Cataclysm-lib-vcpkg-static.vcxproj @@ -70,7 +70,7 @@ true false ProgramDatabase - 4819;4146;26495;26444;26451;4068 + 4819;4146;26495;26444;26451;4068;6319;6237 stdafx.h /bigobj /utf-8 %(AdditionalOptions) _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_CONSOLE;SDL_SOUND;TILES;SDL_BUILDING_LIBRARY;LOCALIZE;USE_VCPKG;%(PreprocessorDefinitions) diff --git a/msvc-full-features/Cataclysm-test-vcpkg-static.vcxproj b/msvc-full-features/Cataclysm-test-vcpkg-static.vcxproj index 389d881705f5a..e1bfccb6bdd0c 100644 --- a/msvc-full-features/Cataclysm-test-vcpkg-static.vcxproj +++ b/msvc-full-features/Cataclysm-test-vcpkg-static.vcxproj @@ -68,7 +68,7 @@ true false ProgramDatabase - 4819;4146;26495;26444;26451;4068 + 4819;4146;26495;26444;26451;4068;6319;6237 stdafx.h /bigobj /utf-8 %(AdditionalOptions) _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_CONSOLE;SDL_SOUND;TILES;SDL_MAIN_HANDLED;LOCALIZE;USE_VCPKG;%(PreprocessorDefinitions) diff --git a/msvc-full-features/Cataclysm-vcpkg-static.vcxproj b/msvc-full-features/Cataclysm-vcpkg-static.vcxproj index 45c572194f2eb..b8021c0e3d405 100644 --- a/msvc-full-features/Cataclysm-vcpkg-static.vcxproj +++ b/msvc-full-features/Cataclysm-vcpkg-static.vcxproj @@ -68,7 +68,7 @@ true false ProgramDatabase - 4819;4146;26495;26444;26451;4068 + 4819;4146;26495;26444;26451;4068;6319;6237 stdafx.h /bigobj /utf-8 %(AdditionalOptions) _SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_WINDOWS;SDL_SOUND;TILES;LOCALIZE;USE_VCPKG;USE_WINMAIN;%(PreprocessorDefinitions) diff --git a/snapcraft.yaml b/snapcraft.yaml index f1d2ff64034aa..7f5cce21ac281 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,12 +1,12 @@ name: cataclysm version: git -summary: Post-apocalyptic survival roguelike +summary: Post-apocalyptic turn-based survival game icon: data/xdg/cataclysm-dda.svg architectures: - build-on: [amd64] run-on: [amd64] description: | - Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world. Surviving is difficult, you have been thrown, ill-equipped, into a landscape now riddled with monstrosities of which flesh eating zombies are neither the strangest nor the deadliest. + Cataclysm: Dark Days Ahead is a turn-based survival game set in a post-apocalyptic world. Surviving is difficult, you have been thrown, ill-equipped, into a landscape now riddled with monstrosities of which flesh eating zombies are neither the strangest nor the deadliest. Note: This snap install the ncurses version of the game. Start playing by running the command `cataclysm` on your favorite terminal after installation. diff --git a/src/achievement.cpp b/src/achievement.cpp index 08f2ef0f28e85..ee1715604d928 100644 --- a/src/achievement.cpp +++ b/src/achievement.cpp @@ -57,6 +57,19 @@ bool string_id::is_valid() const return achievement_factory.is_valid( *this ); } +enum class requirement_visibility : int { + always, + when_requirement_completed, + when_achievement_completed, + never, + last +}; + +template<> +struct enum_traits { + static constexpr requirement_visibility last = requirement_visibility::last; +}; + namespace io { @@ -91,17 +104,34 @@ std::string enum_to_string( achievement::time_bo abort(); } +template<> +std::string enum_to_string( requirement_visibility data ) +{ + switch( data ) { + // *INDENT-OFF* + case requirement_visibility::always: return "always"; + case requirement_visibility::when_requirement_completed: return "when_requirement_completed"; + case requirement_visibility::when_achievement_completed: return "when_achievement_completed"; + case requirement_visibility::never: return "never"; + // *INDENT-ON* + case requirement_visibility::last: + break; + } + debugmsg( "Invalid requirement_visibility" ); + abort(); +} + } // namespace io -static nc_color color_from_completion( achievement_completion comp ) +static nc_color color_from_completion( bool is_conduct, achievement_completion comp ) { switch( comp ) { case achievement_completion::pending: - return c_yellow; + return is_conduct ? c_light_green : c_yellow; case achievement_completion::completed: return c_light_green; case achievement_completion::failed: - return c_light_gray; + return c_red; case achievement_completion::last: break; } @@ -113,6 +143,9 @@ struct achievement_requirement { string_id statistic; achievement_comparison comparison; int target; + requirement_visibility visibility = requirement_visibility::always; + cata::optional description; + bool becomes_false; void deserialize( JsonIn &jin ) { @@ -123,6 +156,9 @@ struct achievement_requirement { jo.read( "target", target ) ) ) ) { jo.throw_error( "Mandatory field missing for achievement requirement" ); } + + jo.read( "visible", visibility, false ); + jo.read( "description", description, false ); } void finalize() { @@ -143,7 +179,7 @@ struct achievement_requirement { abort(); } - void check( const string_id &id ) const { + void check( const achievement_id &id ) const { if( !statistic.is_valid() ) { debugmsg( "score %s refers to invalid statistic %s", id.str(), statistic.str() ); } @@ -164,6 +200,23 @@ struct achievement_requirement { debugmsg( "Invalid achievement_requirement comparison value" ); abort(); } + + bool is_visible( achievement_completion ach_completed, bool req_completed ) const { + switch( visibility ) { + case requirement_visibility::always: + return true; + case requirement_visibility::when_requirement_completed: + return req_completed; + case requirement_visibility::when_achievement_completed: + return ach_completed == achievement_completion::completed; + case requirement_visibility::never: + return false; + case requirement_visibility::last: + break; + } + debugmsg( "Invalid requirement_visibility value" ); + abort(); + } }; static time_point epoch_to_time_point( achievement::time_bound::epoch e ) @@ -190,7 +243,7 @@ void achievement::time_bound::deserialize( JsonIn &jin ) } } -void achievement::time_bound::check( const string_id &id ) const +void achievement::time_bound::check( const achievement_id &id ) const { if( comparison_ == achievement_comparison::anything ) { debugmsg( "Achievement %s has unconstrained \"anything\" time_constraint. " @@ -228,12 +281,28 @@ achievement_completion achievement::time_bound::completed() const abort(); } -std::string achievement::time_bound::ui_text() const +bool achievement::time_bound::becomes_false() const +{ + switch( comparison_ ) { + case achievement_comparison::less_equal: + return true; + case achievement_comparison::greater_equal: + return false; + case achievement_comparison::anything: + return true; + case achievement_comparison::last: + break; + } + debugmsg( "Invalid achievement_comparison" ); + abort(); +} + +std::string achievement::time_bound::ui_text( bool is_conduct ) const { time_point now = calendar::turn; achievement_completion comp = completed(); - nc_color c = color_from_completion( comp ); + nc_color c = color_from_completion( is_conduct, comp ); auto translate_epoch = []( epoch e ) { switch( e ) { @@ -316,6 +385,7 @@ void achievement::reset() void achievement::load( const JsonObject &jo, const std::string & ) { mandatory( jo, was_loaded, "name", name_ ); + is_conduct_ = jo.get_string( "type" ) == "conduct"; optional( jo, was_loaded, "description", description_ ); optional( jo, was_loaded, "hidden_by", hidden_by_ ); optional( jo, was_loaded, "time_constraint", time_constraint_ ); @@ -324,24 +394,50 @@ void achievement::load( const JsonObject &jo, const std::string & ) void achievement::check() const { - for( const string_id &a : hidden_by_ ) { + for( const achievement_id &a : hidden_by_ ) { if( !a.is_valid() ) { debugmsg( "Achievement %s specifies hidden_by achievement %s, but the latter does not " "exist.", id.str(), a.str() ); + continue; + } + if( is_conduct() != a->is_conduct() ) { + debugmsg( "Achievement %s is hidden by achievement %s, but one is a conduct and the " + "other is not. This is not supported.", id.str(), a.str() ); } } + + bool all_requirements_become_false = true; if( time_constraint_ ) { time_constraint_->check( id ); + all_requirements_become_false = time_constraint_->becomes_false(); } + for( const achievement_requirement &req : requirements_ ) { req.check( id ); + if( !req.becomes_false ) { + all_requirements_become_false = false; + } + } + + if( all_requirements_become_false && !is_conduct() ) { + debugmsg( "All requirements for achievement %s become false, so this achievement will be " + "impossible or trivial", id.str() ); + } + if( !all_requirements_become_false && is_conduct() ) { + debugmsg( "All requirements for conduct %s must become false, but at least one does not", + id.str() ); } } -static std::string text_for_requirement( const achievement_requirement &req, - const cata_variant ¤t_value ) +static cata::optional text_for_requirement( + const achievement_requirement &req, + const cata_variant ¤t_value, + achievement_completion ach_completed ) { bool is_satisfied = req.satisifed_by( current_value ); + if( !req.is_visible( ach_completed, is_satisfied ) ) { + return cata::nullopt; + } nc_color c = is_satisfied ? c_green : c_yellow; int current = current_value.get(); int target; @@ -353,10 +449,32 @@ static std::string text_for_requirement( const achievement_requirement &req, target = req.target; result = string_format( _( "%s/%s " ), current, target ); } - result += req.statistic->description().translated( target ); + if( req.description ) { + result = req.description->translated(); + } else { + result += req.statistic->description().translated( target ); + } return colorize( result, c ); } +static std::string format_requirements( const std::vector> &req_texts, + nc_color c ) +{ + bool some_missing = false; + std::string result; + for( const cata::optional &req_text : req_texts ) { + if( req_text ) { + result += " " + *req_text + "\n"; + } else { + some_missing = true; + } + } + if( some_missing && !result.empty() ) { + result += colorize( _( " (further requirements hidden)" ), c ); + } + return result; +} + class requirement_watcher : stat_watcher { public: @@ -382,8 +500,9 @@ class requirement_watcher : stat_watcher return requirement_->satisifed_by( requirement_->statistic->value( stats ) ); } - std::string ui_text() const { - return text_for_requirement( *requirement_, current_value_ ); + cata::optional ui_text() const { + return text_for_requirement( *requirement_, current_value_, + achievement_completion::pending ); } private: cata_variant current_value_; @@ -424,7 +543,7 @@ std::string enum_to_string( achievement_completion data std::string achievement_state::ui_text( const achievement *ach ) const { // First: the achievement name and description - nc_color c = color_from_completion( completion ); + nc_color c = color_from_completion( ach->is_conduct(), completion ); std::string result = colorize( ach->name(), c ) + "\n"; if( !ach->description().empty() ) { result += " " + colorize( ach->description(), c ) + "\n"; @@ -434,10 +553,14 @@ std::string achievement_state::ui_text( const achievement *ach ) const std::string message = string_format( _( "Completed %s" ), to_string( last_state_change ) ); result += " " + colorize( message, c ) + "\n"; + } else if( completion == achievement_completion::failed ) { + std::string message = string_format( + _( "Failed %s" ), to_string( last_state_change ) ); + result += " " + colorize( message, c ) + "\n"; } else { // Next: the time constraint if( ach->time_constraint() ) { - result += " " + ach->time_constraint()->ui_text() + "\n"; + result += " " + ach->time_constraint()->ui_text( ach->is_conduct() ) + "\n"; } } @@ -446,10 +569,12 @@ std::string achievement_state::ui_text( const achievement *ach ) const // If these two vectors are of different sizes then the definition must // have changed since it was complated / failed, so we don't print any // requirements info. + std::vector> req_texts; if( final_values.size() == reqs.size() ) { for( size_t i = 0; i < final_values.size(); ++i ) { - result += " " + text_for_requirement( reqs[i], final_values[i] ) + "\n"; + req_texts.push_back( text_for_requirement( reqs[i], final_values[i], completion ) ); } + result += format_requirements( req_texts, c ); } return result; @@ -460,6 +585,7 @@ void achievement_state::serialize( JsonOut &jsout ) const jsout.start_object(); jsout.member_as_string( "completion", completion ); jsout.member( "last_state_change", last_state_change ); + jsout.member( "final_values", final_values ); jsout.end_object(); } @@ -468,6 +594,7 @@ void achievement_state::deserialize( JsonIn &jsin ) JsonObject jo = jsin.get_object(); jo.read( "completion", completion ); jo.read( "last_state_change", last_state_change ); + jo.read( "final_values", final_values ); } achievement_tracker::achievement_tracker( const achievement &a, achievements_tracker &tracker, @@ -488,7 +615,7 @@ achievement_tracker::achievement_tracker( const achievement &a, achievements_tra void achievement_tracker::set_requirement( requirement_watcher *watcher, bool is_satisfied ) { if( sorted_watchers_[is_satisfied].insert( watcher ).second ) { - // Remove from other; check for completion. + // Remove from other sorted_watchers_[!is_satisfied].erase( watcher ); assert( sorted_watchers_[0].size() + sorted_watchers_[1].size() == watchers_.size() ); } @@ -497,7 +624,8 @@ void achievement_tracker::set_requirement( requirement_watcher *watcher, bool is achievement_->time_constraint() ? achievement_->time_constraint()->completed() : achievement_completion::completed; - if( sorted_watchers_[false].empty() && time_comp == achievement_completion::completed ) { + if( sorted_watchers_[false].empty() && time_comp == achievement_completion::completed && + !achievement_->is_conduct() ) { // report_achievement can result in this being deleted, so it must be // the last thing in the function tracker_->report_achievement( achievement_, achievement_completion::completed ); @@ -540,7 +668,8 @@ std::string achievement_tracker::ui_text() const } // First: the achievement name and description - nc_color c = color_from_completion( achievement_completion::pending ); + nc_color c = color_from_completion( achievement_->is_conduct(), + achievement_completion::pending ); std::string result = colorize( achievement_->name(), c ) + "\n"; if( !achievement_->description().empty() ) { result += " " + colorize( achievement_->description(), c ) + "\n"; @@ -548,22 +677,28 @@ std::string achievement_tracker::ui_text() const // Next: the time constraint if( achievement_->time_constraint() ) { - result += " " + achievement_->time_constraint()->ui_text() + "\n"; + result += " " + achievement_->time_constraint()->ui_text( achievement_->is_conduct() ) + + "\n"; } // Next: the requirements + std::vector> req_texts; for( const std::unique_ptr &watcher : watchers_ ) { - result += " " + watcher->ui_text() + "\n"; + req_texts.push_back( watcher->ui_text() ); } + result += format_requirements( req_texts, c ); + return result; } achievements_tracker::achievements_tracker( stats_tracker &stats, - const std::function &achievement_attained_callback ) : + const std::function &achievement_attained_callback, + const std::function &achievement_failed_callback ) : stats_( &stats ), - achievement_attained_callback_( achievement_attained_callback ) + achievement_attained_callback_( achievement_attained_callback ), + achievement_failed_callback_( achievement_failed_callback ) {} achievements_tracker::~achievements_tracker() = default; @@ -595,11 +730,13 @@ void achievements_tracker::report_achievement( const achievement *a, achievement ); if( comp == achievement_completion::completed ) { achievement_attained_callback_( a, is_enabled() ); + } else if( comp == achievement_completion::failed ) { + achievement_failed_callback_( a, is_enabled() ); } trackers_.erase( tracker_it ); } -achievement_completion achievements_tracker::is_completed( const string_id &id ) const +achievement_completion achievements_tracker::is_completed( const achievement_id &id ) const { auto it = achievements_status_.find( id ); if( it == achievements_status_.end() ) { @@ -615,12 +752,14 @@ achievement_completion achievements_tracker::is_completed( const string_idid ) == achievement_completion::completed ) { + achievement_completion end_state = + ach->is_conduct() ? achievement_completion::failed : achievement_completion::completed; + if( is_completed( ach->id ) == end_state ) { return false; } - for( const string_id &hidden_by : ach->hidden_by() ) { - if( is_completed( hidden_by ) != achievement_completion::completed ) { + for( const achievement_id &hidden_by : ach->hidden_by() ) { + if( is_completed( hidden_by ) != end_state ) { return true; } } @@ -643,6 +782,7 @@ std::string achievements_tracker::ui_text_for( const achievement *ach ) const void achievements_tracker::clear() { + enabled_ = true; trackers_.clear(); initial_achievements_.clear(); achievements_status_.clear(); diff --git a/src/achievement.h b/src/achievement.h index 185b0fa6835c7..b215f0d0366fd 100644 --- a/src/achievement.h +++ b/src/achievement.h @@ -19,7 +19,7 @@ class achievements_tracker; class requirement_watcher; class stats_tracker; -enum class achievement_comparison { +enum class achievement_comparison : int { less_equal, greater_equal, anything, @@ -31,7 +31,7 @@ struct enum_traits { static constexpr achievement_comparison last = achievement_comparison::last; }; -enum class achievement_completion { +enum class achievement_completion : int { pending, completed, failed, @@ -56,7 +56,7 @@ class achievement static const std::vector &get_all(); static void reset(); - string_id id; + achievement_id id; bool was_loaded = false; const translation &name() const { @@ -67,25 +67,30 @@ class achievement return description_; } - const std::vector> &hidden_by() const { + bool is_conduct() const { + return is_conduct_; + } + + const std::vector &hidden_by() const { return hidden_by_; } class time_bound { public: - enum class epoch { + enum class epoch : int { cataclysm, game_start, last }; void deserialize( JsonIn & ); - void check( const string_id & ) const; + void check( const achievement_id & ) const; time_point target() const; achievement_completion completed() const; - std::string ui_text() const; + bool becomes_false() const; + std::string ui_text( bool is_conduct ) const; private: achievement_comparison comparison_; epoch epoch_; @@ -102,7 +107,8 @@ class achievement private: translation name_; translation description_; - std::vector> hidden_by_; + bool is_conduct_ = false; + std::vector hidden_by_; cata::optional time_constraint_; std::vector requirements_; }; @@ -166,7 +172,8 @@ class achievements_tracker : public event_subscriber achievements_tracker( stats_tracker &, - const std::function &achievement_attained_callback ); + const std::function &achievement_attained_callback, + const std::function &achievement_failed_callback ); ~achievements_tracker() override; // Return all scores which are valid now and existed at game start @@ -174,7 +181,7 @@ class achievements_tracker : public event_subscriber void report_achievement( const achievement *, achievement_completion ); - achievement_completion is_completed( const string_id & ) const; + achievement_completion is_completed( const achievement_id & ) const; bool is_hidden( const achievement * ) const; std::string ui_text_for( const achievement * ) const; bool is_enabled() const { @@ -195,12 +202,13 @@ class achievements_tracker : public event_subscriber stats_tracker *stats_ = nullptr; bool enabled_ = true; std::function achievement_attained_callback_; - std::unordered_set> initial_achievements_; + std::function achievement_failed_callback_; + std::unordered_set initial_achievements_; // Class invariant: each valid achievement has exactly one of a watcher // (if it's pending) or a status (if it's completed or failed). - std::unordered_map, achievement_tracker> trackers_; - std::unordered_map, achievement_state> achievements_status_; + std::unordered_map trackers_; + std::unordered_map achievements_status_; }; #endif // CATA_SRC_ACHIEVEMENT_H diff --git a/src/action.cpp b/src/action.cpp index afb969de79792..2de40c0bb08b9 100644 --- a/src/action.cpp +++ b/src/action.cpp @@ -120,7 +120,7 @@ std::vector keys_bound_to( action_id act, const bool restrict_to_printable action_id action_from_key( char ch ) { input_context ctxt = get_default_mode_input_context(); - const input_event event( ch, CATA_INPUT_KEYBOARD ); + const input_event event( ch, input_event_t::keyboard ); const std::string &action = ctxt.input_to_action( event ); return look_up_action( action ); } @@ -618,7 +618,7 @@ bool can_move_vertical_at( const tripoint &p, int movez ) if( movez == -1 ) { return !g->u.is_underwater() && !g->u.worn_with_flag( flag_FLOTATION ); } else { - return g->u.swim_speed() < 500 || g->u.is_wearing( "swim_fins" ); + return g->u.swim_speed() < 500 || g->u.is_wearing( itype_id( "swim_fins" ) ); } } @@ -727,11 +727,11 @@ action_id handle_action_menu() } // If we're already running, make it simple to toggle running to off. - if( g->u.movement_mode_is( CMM_RUN ) ) { + if( g->u.is_running() ) { action_weightings[ACTION_TOGGLE_RUN] = 300; } // If we're already crouching, make it simple to toggle crouching to off. - if( g->u.movement_mode_is( CMM_CROUCH ) ) { + if( g->u.is_crouching() ) { action_weightings[ACTION_TOGGLE_CROUCH] = 300; } @@ -950,19 +950,11 @@ action_id handle_action_menu() title += ": " + catgname; } - int width = 0; - for( uilist_entry &cur_entry : entries ) { - width = std::max( width, utf8_width( cur_entry.txt ) ); - } - //border=2, selectors=3, after=3 for balance. - width += 2 + 3 + 3; - int ix = TERMX > width ? ( TERMX - width ) / 2 - 1 : 0; - int iy = TERMY > static_cast( entries.size() ) + 2 ? ( TERMY - static_cast - ( entries.size() ) - 2 ) / 2 - 1 : 0; - int selection = uilist( point( std::max( ix, 0 ), std::max( iy, 0 ) ), - std::min( width, TERMX - 2 ), title, entries ); - - g->draw(); + uilist smenu; + smenu.settext( title ); + smenu.entries = entries; + smenu.query(); + const int selection = smenu.ret; if( selection < 0 || selection == NUM_ACTIONS ) { return ACTION_NULL; @@ -1006,19 +998,11 @@ action_id handle_main_menu() REGISTER_ACTION( ACTION_SAVE ); REGISTER_ACTION( ACTION_DEBUG ); - int width = 0; - for( uilist_entry &entry : entries ) { - width = std::max( width, utf8_width( entry.txt ) ); - } - //border=2, selectors=3, after=3 for balance. - width += 2 + 3 + 3; - const int ix = TERMX > width ? ( TERMX - width ) / 2 - 1 : 0; - const int iy = TERMY > static_cast( entries.size() ) + 2 ? ( TERMY - static_cast - ( entries.size() ) - 2 ) / 2 - 1 : 0; - int selection = uilist( point( std::max( ix, 0 ), std::max( iy, 0 ) ), - std::min( width, TERMX - 2 ), _( "MAIN MENU" ), entries ); - - g->draw(); + uilist smenu; + smenu.settext( _( "MAIN MENU" ) ); + smenu.entries = entries; + smenu.query(); + int selection = smenu.ret; if( selection < 0 || selection >= NUM_ACTIONS ) { return ACTION_NULL; @@ -1088,31 +1072,33 @@ cata::optional choose_adjacent_highlight( const std::string &message, const std::string &failure_message, const std::function &allowed, const bool allow_vertical ) { - // Highlight nearby terrain according to the highlight function - if( allowed != nullptr ) { - cata::optional single; - bool highlighted = false; + std::vector valid; + if( allowed ) { for( const tripoint &pos : g->m.points_in_radius( g->u.pos(), 1 ) ) { if( allowed( pos ) ) { - if( !highlighted ) { - single = pos; - highlighted = true; - } else { - single = cata::nullopt; - } + valid.emplace_back( pos ); + } + } + } + + const bool auto_select = get_option( "AUTOSELECT_SINGLE_VALID_TARGET" ); + if( valid.empty() && auto_select ) { + add_msg( failure_message ); + return cata::nullopt; + } else if( valid.size() == 1 && auto_select ) { + return valid.back(); + } + + shared_ptr_fast hilite_cb; + if( !valid.empty() ) { + hilite_cb = make_shared_fast( [&]() { + for( const tripoint &pos : valid ) { g->m.drawsq( g->w_terrain, g->u, pos, true, true, g->u.pos() + g->u.view_offset ); } - } - if( highlighted ) { - wrefresh( g->w_terrain ); - } else if( get_option( "AUTOSELECT_SINGLE_VALID_TARGET" ) ) { - add_msg( failure_message ); - return cata::nullopt; - } - if( get_option( "AUTOSELECT_SINGLE_VALID_TARGET" ) && single ) { - return single; - } + } ); + g->add_draw_callback( hilite_cb ); } + return choose_adjacent( message, allow_vertical ); } diff --git a/src/action.h b/src/action.h index 30b6770a0fce2..ad6b004fe8452 100644 --- a/src/action.h +++ b/src/action.h @@ -498,8 +498,9 @@ std::string press_x( action_id act, const std::string &act_desc ); cata::optional press_x_if_bound( action_id act ); // only has effect in iso mode -enum class iso_rotate { - no, yes +enum class iso_rotate : int { + no, + yes }; // Helper function to convert coordinate delta to a movement action diff --git a/src/activity_actor.cpp b/src/activity_actor.cpp index ae1d984ac98da..edd1b02ccc8e2 100644 --- a/src/activity_actor.cpp +++ b/src/activity_actor.cpp @@ -6,6 +6,7 @@ #include "activity_handlers.h" // put_into_vehicle_or_drop and drop_on_map #include "advanced_inv.h" #include "avatar.h" +#include "avatar_action.h" #include "character.h" #include "computer_session.h" #include "debug.h" @@ -21,21 +22,33 @@ #include "map.h" #include "map_iterator.h" #include "npc.h" +#include "options.h" #include "output.h" #include "pickup.h" #include "player.h" #include "player_activity.h" #include "point.h" +#include "ranged.h" #include "timed_event.h" #include "uistate.h" +#include "vehicle.h" +#include "vpart_position.h" static const bionic_id bio_fingerhack( "bio_fingerhack" ); +static const efftype_id effect_sleep( "sleep" ); + +static const itype_id itype_bone_human( "bone_human" ); +static const itype_id itype_electrohack( "electrohack" ); + static const skill_id skill_computer( "computer" ); +static const skill_id skill_lockpick( "lockpick" ); +static const skill_id skill_mechanics( "mechanics" ); static const trait_id trait_ILLITERATE( "ILLITERATE" ); -static const std::string flag_USE_EAT_VERB( "USE_EAT_VERB" ); +static const std::string flag_PERFECT_LOCKPICK( "PERFECT_LOCKPICK" ); +static const std::string flag_RELOAD_AND_SHOOT( "RELOAD_AND_SHOOT" ); static const mtype_id mon_zombie( "mon_zombie" ); static const mtype_id mon_zombie_fat( "mon_zombie_fat" ); @@ -43,6 +56,281 @@ static const mtype_id mon_zombie_rot( "mon_zombie_rot" ); static const mtype_id mon_skeleton( "mon_skeleton" ); static const mtype_id mon_zombie_crawler( "mon_zombie_crawler" ); +static const quality_id qual_LOCKPICK( "LOCKPICK" ); + +template<> +struct enum_traits { + static constexpr aim_activity_actor::WeaponSource last = + aim_activity_actor::WeaponSource::NumWeaponSources; +}; + +namespace io +{ +using WS = aim_activity_actor::WeaponSource; + +template<> +std::string enum_to_string( WS data ) +{ + switch( data ) { + // *INDENT-OFF* + case WS::Wielded: return "Wielded"; + case WS::Bionic: return "Bionic"; + case WS::Mutation: return "Mutation"; + // *INDENT-ON* + case WS::NumWeaponSources: + break; + } + debugmsg( "Invalid weapon source" ); + abort(); +} +} // namespace io + +aim_activity_actor::aim_activity_actor() +{ + initial_view_offset = g->u.view_offset; +} + +aim_activity_actor aim_activity_actor::use_wielded() +{ + return aim_activity_actor(); +} + +aim_activity_actor aim_activity_actor::use_bionic( const item &fake_gun, + const units::energy &cost_per_shot ) +{ + aim_activity_actor act = aim_activity_actor(); + act.weapon_source = WeaponSource::Bionic; + act.bp_cost_per_shot = cost_per_shot; + act.fake_weapon = make_shared_fast( fake_gun ); + return act; +} + +aim_activity_actor aim_activity_actor::use_mutation( const item &fake_gun ) +{ + aim_activity_actor act = aim_activity_actor(); + act.weapon_source = WeaponSource::Mutation; + act.fake_weapon = make_shared_fast( fake_gun ); + return act; +} + +void aim_activity_actor::start( player_activity &act, Character &/*who*/ ) +{ + // Time spent on aiming is determined on the go by the player + act.moves_total = 1; + act.moves_left = 1; + act.interruptable_with_kb = false; +} + +void aim_activity_actor::do_turn( player_activity &act, Character &who ) +{ + if( aborted || finished ) { + // A shortcut that allows terminating this activity by setting 'aborted' or 'finished' + act.moves_left = 0; + return; + } + if( !who.is_avatar() ) { + debugmsg( "ACT_AIM not implemented for NPCs" ); + aborted = true; + return; + } + avatar &you = g->u; + + item *weapon = get_weapon(); + if( !weapon || !avatar_action::can_fire_weapon( you, g->m, *weapon ) ) { + aborted = true; + return; + } + + gun_mode gun = weapon->gun_current_mode(); + if( first_turn && gun->has_flag( flag_RELOAD_AND_SHOOT ) && !gun->ammo_remaining() ) { + if( !load_RAS_weapon() ) { + aborted = true; + return; + } + } + + g->temp_exit_fullscreen(); + target_handler::trajectory trajectory = target_handler::mode_fire( you, *this ); + g->reenter_fullscreen(); + + if( !aborted ) { + if( !trajectory.empty() ) { + finished = true; + fin_trajectory = trajectory; + } + // If aborting on the first turn, keep 'first_turn' as 'true'. + // This allows refunding moves spent on unloading RELOAD_AND_SHOOT weapons + // to simulate avatar not loading them in the first place + first_turn = false; + } +} + +void aim_activity_actor::finish( player_activity &act, Character &who ) +{ + act.set_to_null(); + restore_view(); + if( aborted ) { + unload_RAS_weapon(); + if( reload_requested ) { + // Reload the gun / select different arrows + // May assign ACT_RELOAD + g->reload_wielded( true ); + } + return; + } + + // Fire! + item *weapon = get_weapon(); + gun_mode gun = weapon->gun_current_mode(); + int shots_fired = static_cast( &who )->fire_gun( fin_trajectory.back(), gun.qty, *gun ); + + // TODO: bionic power cost of firing should be derived from a value of the relevant weapon. + if( shots_fired && ( bp_cost_per_shot > 0_J ) ) { + who.mod_power_level( -bp_cost_per_shot * shots_fired ); + } +} + +void aim_activity_actor::canceled( player_activity &/*act*/, Character &/*who*/ ) +{ + restore_view(); + unload_RAS_weapon(); +} + +void aim_activity_actor::serialize( JsonOut &jsout ) const +{ + jsout.start_object(); + + jsout.member( "weapon_source", weapon_source ); + if( weapon_source == WeaponSource::Bionic || weapon_source == WeaponSource::Mutation ) { + jsout.member( "fake_weapon", *fake_weapon ); + } + jsout.member( "bp_cost_per_shot", bp_cost_per_shot ); + jsout.member( "first_turn", first_turn ); + jsout.member( "action", action ); + jsout.member( "snap_to_target", snap_to_target ); + jsout.member( "shifting_view", shifting_view ); + jsout.member( "initial_view_offset", initial_view_offset ); + + jsout.end_object(); +} + +std::unique_ptr aim_activity_actor::deserialize( JsonIn &jsin ) +{ + aim_activity_actor actor = aim_activity_actor(); + + JsonObject data = jsin.get_object(); + + data.read( "weapon_source", actor.weapon_source ); + if( actor.weapon_source == WeaponSource::Bionic || actor.weapon_source == WeaponSource::Mutation ) { + actor.fake_weapon = make_shared_fast(); + data.read( "fake_weapon", *actor.fake_weapon ); + } + data.read( "bp_cost_per_shot", actor.bp_cost_per_shot ); + data.read( "first_turn", actor.first_turn ); + data.read( "action", actor.action ); + data.read( "snap_to_target", actor.snap_to_target ); + data.read( "shifting_view", actor.shifting_view ); + data.read( "initial_view_offset", actor.initial_view_offset ); + + return actor.clone(); +} + +item *aim_activity_actor::get_weapon() +{ + switch( weapon_source ) { + case WeaponSource::Wielded: + // Check for lost gun (e.g. yanked by zombie technician) + // TODO: check that this is the same gun that was used to start aiming + return g->u.weapon.is_null() ? nullptr : &g->u.weapon; + case WeaponSource::Bionic: + case WeaponSource::Mutation: + // TODO: check if the player lost relevant bionic/mutation + return fake_weapon.get(); + default: + debugmsg( "Invalid weapon source value" ); + return nullptr; + } +} + +void aim_activity_actor::restore_view() +{ + bool changed_z = g->u.view_offset.z != initial_view_offset.z; + g->u.view_offset = initial_view_offset; + if( changed_z ) { + g->m.invalidate_map_cache( g->u.view_offset.z ); + g->invalidate_main_ui_adaptor(); + } +} + +bool aim_activity_actor::load_RAS_weapon() +{ + // TODO: use activity for fetching ammo and loading weapon + player &you = g->u; + item *weapon = get_weapon(); + gun_mode gun = weapon->gun_current_mode(); + const auto ammo_location_is_valid = [&]() -> bool { + if( !you.ammo_location ) + { + return false; + } + if( !gun->can_reload_with( you.ammo_location->typeId() ) ) + { + return false; + } + if( square_dist( you.pos(), you.ammo_location.position() ) > 1 ) + { + return false; + } + return true; + }; + item::reload_option opt = ammo_location_is_valid() ? item::reload_option( &you, weapon, + weapon, you.ammo_location ) : you.select_ammo( *gun ); + if( !opt ) { + // Menu canceled + return false; + } + int reload_time = 0; + reload_time += opt.moves(); + if( !gun->reload( you, std::move( opt.ammo ), 1 ) ) { + // Reload not allowed + return false; + } + + // Burn 0.2% max base stamina x the strength required to fire. + you.mod_stamina( gun->get_min_str() * static_cast( 0.002f * + get_option( "PLAYER_MAX_STAMINA" ) ) ); + // At low stamina levels, firing starts getting slow. + int sta_percent = ( 100 * you.get_stamina() ) / you.get_stamina_max(); + reload_time += ( sta_percent < 25 ) ? ( ( 25 - sta_percent ) * 2 ) : 0; + + you.moves -= reload_time; + return true; +} + +void aim_activity_actor::unload_RAS_weapon() +{ + // Unload reload-and-shoot weapons to avoid leaving bows pre-loaded with arrows + avatar &you = g->u; + item *weapon = get_weapon(); + if( !weapon ) { + return; + } + + gun_mode gun = weapon->gun_current_mode(); + if( gun->has_flag( flag_RELOAD_AND_SHOOT ) ) { + int moves_before_unload = you.moves; + + // Note: this code works only for avatar + item_location loc = item_location( you, gun.target ); + g->unload( loc ); + + // Give back time for unloading as essentially nothing has been done. + if( first_turn ) { + you.moves = moves_before_unload; + } + } +} + void dig_activity_actor::start( player_activity &act, Character & ) { act.moves_total = moves_total; @@ -75,7 +363,7 @@ void dig_activity_actor::finish( player_activity &act, Character &who ) g->m.furn_set( location, f_coffin_o ); who.add_msg_if_player( m_warning, _( "Something crawls out of the coffin!" ) ); } else { - g->m.spawn_item( location, "bone_human", rng( 5, 15 ) ); + g->m.spawn_item( location, itype_bone_human, rng( 5, 15 ) ); g->m.furn_set( location, f_coffin_c ); } std::vector dropped = g->m.place_items( "allclothes", 50, location, location, false, @@ -243,7 +531,7 @@ static hack_result hack_attempt( Character &who ) if( who.has_trait( trait_ILLITERATE ) ) { return HACK_UNABLE; } - const bool using_electrohack = who.has_charges( "electrohack", 25 ) && + const bool using_electrohack = who.has_charges( itype_electrohack, 25 ) && query_yn( _( "Use electrohack?" ) ); const bool using_fingerhack = !using_electrohack && who.has_bionic( bio_fingerhack ) && who.get_power_level() > 24_kJ && query_yn( _( "Use fingerhack?" ) ); @@ -260,7 +548,7 @@ static hack_result hack_attempt( Character &who ) if( using_fingerhack ) { who.mod_power_level( -25_kJ ); } else { - who.use_charges( "electrohack", 25 ); + who.use_charges( itype_electrohack, 25 ); } // only skilled supergenius never cause short circuits, but the odds are low for people @@ -272,13 +560,13 @@ static hack_result hack_attempt( Character &who ) if( using_fingerhack ) { who.mod_power_level( -25_kJ ); } else { - who.use_charges( "electrohack", 25 ); + who.use_charges( itype_electrohack, 25 ); } if( success <= -5 ) { if( using_electrohack ) { who.add_msg_if_player( m_bad, _( "Your electrohack is ruined!" ) ); - who.use_amount( "electrohack", 1 ); + who.use_amount( itype_electrohack, 1 ); } else { who.add_msg_if_player( m_bad, _( "Your power is drained!" ) ); who.mod_power_level( units::from_kilojoule( -rng( 25, @@ -332,15 +620,17 @@ void hacking_activity_actor::finish( player_activity &act, Character &who ) break; case HACK_SUCCESS: if( type == HACK_GAS ) { - int tankGasUnits; - const cata::optional pTank_ = iexamine::getNearFilledGasTank( examp, tankGasUnits ); + int tankUnits; + std::string fuelType; + const cata::optional pTank_ = iexamine::getNearFilledGasTank( examp, tankUnits, + fuelType ); if( !pTank_ ) { break; } const tripoint pTank = *pTank_; const cata::optional pGasPump = iexamine::getGasPumpByNumber( examp, uistate.ags_pay_gas_selected_pump ); - if( pGasPump && iexamine::toPumpFuel( pTank, *pGasPump, tankGasUnits ) ) { + if( pGasPump && iexamine::toPumpFuel( pTank, *pGasPump, tankUnits ) ) { who.add_msg_if_player( _( "You hack the terminal and route all available fuel to your pump!" ) ); sounds::sound( examp, 6, sounds::sound_t::activity, _( "Glug Glug Glug Glug Glug Glug Glug Glug Glug" ), true, "tool", "gaspump" ); @@ -375,6 +665,78 @@ std::unique_ptr hacking_activity_actor::deserialize( JsonIn & ) return hacking_activity_actor().clone(); } +void hotwire_car_activity_actor::start( player_activity &act, Character & ) +{ + act.moves_total = moves_total; + act.moves_left = moves_total; +} + +void hotwire_car_activity_actor::do_turn( player_activity &act, Character & ) +{ + if( calendar::once_every( 1_minutes ) ) { + bool lost = !g->m.veh_at( g->m.getlocal( target ) ).has_value(); + if( lost ) { + act.set_to_null(); + debugmsg( "Lost ACT_HOTWIRE_CAR target vehicle" ); + } + } +} + +void hotwire_car_activity_actor::finish( player_activity &act, Character &who ) +{ + act.set_to_null(); + + const optional_vpart_position vp = g->m.veh_at( g->m.getlocal( target ) ); + if( !vp ) { + debugmsg( "Lost ACT_HOTWIRE_CAR target vehicle" ); + return; + } + vehicle &veh = vp->vehicle(); + + int skill = who.get_skill_level( skill_mechanics ); + if( skill > rng( 1, 6 ) ) { + // Success + who.add_msg_if_player( _( "You found the wire that starts the engine." ) ); + veh.is_locked = false; + } else if( skill > rng( 0, 4 ) ) { + // Soft fail + who.add_msg_if_player( _( "You found a wire that looks like the right one." ) ); + veh.is_alarm_on = veh.has_security_working(); + veh.is_locked = false; + } else if( !veh.is_alarm_on ) { + // Hard fail + who.add_msg_if_player( _( "The red wire always starts the engine, doesn't it?" ) ); + veh.is_alarm_on = veh.has_security_working(); + } else { + // Already failed + who.add_msg_if_player( + _( "By process of elimination, you found the wire that starts the engine." ) ); + veh.is_locked = false; + } +} + +void hotwire_car_activity_actor::serialize( JsonOut &jsout ) const +{ + jsout.start_object(); + + jsout.member( "target", target ); + jsout.member( "moves_total", moves_total ); + + jsout.end_object(); +} + +std::unique_ptr hotwire_car_activity_actor::deserialize( JsonIn &jsin ) +{ + hotwire_car_activity_actor actor( 0, tripoint_zero ); + + JsonObject data = jsin.get_object(); + + data.read( "target", actor.target ); + data.read( "moves_total", actor.moves_total ); + + return actor.clone(); +} + void move_items_activity_actor::do_turn( player_activity &act, Character &who ) { const tripoint dest = relative_destination + who.pos(); @@ -404,7 +766,7 @@ void move_items_activity_actor::do_turn( player_activity &act, Character &who ) } // Check that we can pick it up. - if( !newit.made_of_from_type( LIQUID ) ) { + if( !newit.made_of_from_type( phase_id::LIQUID ) ) { // This is for hauling across zlevels, remove when going up and down stairs // is no longer teleportation if( newit.is_owned_by( who, true ) ) { @@ -523,6 +885,176 @@ std::unique_ptr pickup_activity_actor::deserialize( JsonIn &jsin return actor.clone(); } +void lockpick_activity_actor::start( player_activity &act, Character & ) +{ + act.moves_left = moves_total; + act.moves_total = moves_total; +} + +void lockpick_activity_actor::finish( player_activity &act, Character &who ) +{ + act.set_to_null(); + + item *it; + if( lockpick.has_value() ) { + it = ( *lockpick ).get_item(); + } else { + it = &*fake_lockpick; + } + + if( !it ) { + debugmsg( "Lost ACT_LOCKPICK item" ); + return; + } + + const tripoint target = g->m.getlocal( this->target ); + const ter_id ter_type = g->m.ter( target ); + const furn_id furn_type = g->m.furn( target ); + ter_id new_ter_type; + furn_id new_furn_type; + std::string open_message; + if( ter_type == t_chaingate_l ) { + new_ter_type = t_chaingate_c; + open_message = _( "With a satisfying click, the chain-link gate opens." ); + } else if( ter_type == t_door_locked || ter_type == t_door_locked_alarm || + ter_type == t_door_locked_interior ) { + new_ter_type = t_door_c; + open_message = _( "With a satisfying click, the lock on the door opens." ); + } else if( ter_type == t_door_locked_peep ) { + new_ter_type = t_door_c_peep; + open_message = _( "With a satisfying click, the lock on the door opens." ); + } else if( ter_type == t_door_metal_pickable ) { + new_ter_type = t_door_metal_c; + open_message = _( "With a satisfying click, the lock on the door opens." ); + } else if( ter_type == t_door_bar_locked ) { + new_ter_type = t_door_bar_o; + //Bar doors auto-open (and lock if closed again) so show a different message) + open_message = _( "The door swings open…" ); + } else if( furn_type == f_gunsafe_ml ) { + new_furn_type = f_safe_o; + open_message = _( "With a satisfying click, the lock on the door opens." ); + } + + bool perfect = it->has_flag( flag_PERFECT_LOCKPICK ); + bool destroy = false; + + /** @EFFECT_DEX improves chances of successfully picking door lock, reduces chances of bad outcomes */ + /** @EFFECT_MECHANICS improves chances of successfully picking door lock, reduces chances of bad outcomes */ + /** @EFFECT_LOCKPICK greatly improves chances of successfully picking door lock, reduces chances of bad outcomes */ + int pick_roll = std::pow( 1.5, who.get_skill_level( skill_lockpick ) ) * + ( std::pow( 1.3, who.get_skill_level( skill_mechanics ) ) + + it->get_quality( qual_LOCKPICK ) - it->damage() / 2000.0 ) + + who.dex_cur / 4.0; + int lock_roll = rng( 1, 120 ); + int xp_gain = 0; + if( perfect || ( pick_roll >= lock_roll ) ) { + xp_gain += lock_roll; + g->m.has_furn( target ) ? + g->m.furn_set( target, new_furn_type ) : + static_cast( g->m.ter_set( target, new_ter_type ) ); + who.add_msg_if_player( m_good, open_message ); + } else if( furn_type == f_gunsafe_ml && lock_roll > ( 3 * pick_roll ) ) { + who.add_msg_if_player( m_bad, _( "Your clumsy attempt jams the lock!" ) ); + g->m.furn_set( target, furn_str_id( "f_gunsafe_mj" ) ); + } else if( lock_roll > ( 1.5 * pick_roll ) ) { + if( it->inc_damage() ) { + who.add_msg_if_player( m_bad, + _( "The lock stumps your efforts to pick it, and you destroy your tool." ) ); + destroy = true; + } else { + who.add_msg_if_player( m_bad, + _( "The lock stumps your efforts to pick it, and you damage your tool." ) ); + } + } else { + who.add_msg_if_player( m_bad, _( "The lock stumps your efforts to pick it." ) ); + } + + if( avatar *you = dynamic_cast( &who ) ) { + if( !perfect ) { + // You don't gain much skill since the item does all the hard work for you + xp_gain += std::pow( 2, you->get_skill_level( skill_lockpick ) ) + 1; + } + you->practice( skill_lockpick, xp_gain ); + } + + if( !perfect && ter_type == t_door_locked_alarm && ( lock_roll + dice( 1, 30 ) ) > pick_roll ) { + sounds::sound( who.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ), true, "environment", + "alarm" ); + if( !g->timed_events.queued( TIMED_EVENT_WANTED ) ) { + g->timed_events.add( TIMED_EVENT_WANTED, calendar::turn + 30_minutes, 0, + who.global_sm_location() ); + } + } + + if( destroy && lockpick.has_value() ) { + ( *lockpick ).remove_item(); + } +} + +cata::optional lockpick_activity_actor::select_location( avatar &you ) +{ + if( you.is_mounted() ) { + you.add_msg_if_player( m_info, _( "You cannot do that while mounted." ) ); + return cata::nullopt; + } + + const std::function is_pickable = [&you]( const tripoint & p ) { + if( p == you.pos() ) { + return false; + } + return g->m.has_flag( "PICKABLE", p ); + }; + + const cata::optional target = choose_adjacent_highlight( + _( "Use your lockpick where?" ), _( "There is nothing to lockpick nearby." ), is_pickable, false ); + if( !target ) { + return cata::nullopt; + } + + if( is_pickable( *target ) ) { + return target; + } + + const ter_id terr_type = g->m.ter( *target ); + if( *target == you.pos() ) { + you.add_msg_if_player( m_info, _( "You pick your nose and your sinuses swing open." ) ); + } else if( g->critter_at( *target ) ) { + you.add_msg_if_player( m_info, + _( "You can pick your friends, and you can\npick your nose, but you can't pick\nyour friend's nose." ) ); + } else if( terr_type == t_door_c ) { + you.add_msg_if_player( m_info, _( "That door isn't locked." ) ); + } else { + you.add_msg_if_player( m_info, _( "That cannot be picked." ) ); + } + return cata::nullopt; +} + +void lockpick_activity_actor::serialize( JsonOut &jsout ) const +{ + jsout.start_object(); + + jsout.member( "moves_total", moves_total ); + jsout.member( "lockpick", lockpick ); + jsout.member( "fake_lockpick", fake_lockpick ); + jsout.member( "target", target ); + + jsout.end_object(); +} + +std::unique_ptr lockpick_activity_actor::deserialize( JsonIn &jsin ) +{ + lockpick_activity_actor actor( 0, cata::nullopt, cata::nullopt, tripoint_zero ); + + JsonObject data = jsin.get_object(); + + data.read( "moves_total", actor.moves_total ); + data.read( "lockpick", actor.lockpick ); + data.read( "fake_lockpick", actor.fake_lockpick ); + data.read( "target", actor.target ); + + return actor.clone(); +} + void migration_cancel_activity_actor::do_turn( player_activity &act, Character &who ) { // Stop the activity @@ -587,7 +1119,29 @@ std::unique_ptr open_gate_activity_actor::deserialize( JsonIn &j void consume_activity_actor::start( player_activity &act, Character &guy ) { - int moves = to_moves( guy.get_consume_time( *loc ) ); + int moves; + if( consume_location ) { + const auto ret = g->u.will_eat( *consume_location, true ); + if( !ret.success() ) { + open_consume_menu = false; + return; + } else { + force = true; + } + moves = to_moves( guy.get_consume_time( *consume_location ) ); + } else if( !consume_item.is_null() ) { + const auto ret = g->u.will_eat( consume_item, true ); + if( !ret.success() ) { + open_consume_menu = false; + return; + } else { + force = true; + } + moves = to_moves( guy.get_consume_time( consume_item ) ); + } else { + debugmsg( "Item/location to be consumed should not be null." ); + return; + } act.moves_total = moves; act.moves_left = moves; @@ -595,22 +1149,39 @@ void consume_activity_actor::start( player_activity &act, Character &guy ) void consume_activity_actor::finish( player_activity &act, Character & ) { - if( loc.where() == item_location::type::character ) { - g->u.consume( loc ); - } else if( g->u.consume_item( *loc ) ) { - loc.remove_item(); - } - if( g->u.get_value( "THIEF_MODE_KEEP" ) != "YES" ) { - g->u.set_value( "THIEF_MODE", "THIEF_ASK" ); + // Prevent interruptions from this point onwards, so that e.g. pain from + // injecting serum doesn't pop up messages about cancelling consuming (it's + // too late; we've already consumed). + act.interruptable = false; + + if( consume_location ) { + if( consume_location.where() == item_location::type::character ) { + g->u.consume( consume_location, force ); + } else if( g->u.consume( *consume_location, force ) ) { + consume_location.remove_item(); + } + if( g->u.get_value( "THIEF_MODE_KEEP" ) != "YES" ) { + g->u.set_value( "THIEF_MODE", "THIEF_ASK" ); + } + } else if( !consume_item.is_null() ) { + g->u.consume( consume_item, force ); + } else { + debugmsg( "Item location/name to be consumed should not be null." ); } act.set_to_null(); + if( open_consume_menu ) { + avatar_action::eat( g->u ); + } } void consume_activity_actor::serialize( JsonOut &jsout ) const { jsout.start_object(); - jsout.member( "loc", loc ); + jsout.member( "consume_location", consume_location ); + jsout.member( "consume_item", consume_item ); + jsout.member( "open_consume_menu", open_consume_menu ); + jsout.member( "force", force ); jsout.end_object(); } @@ -622,7 +1193,95 @@ std::unique_ptr consume_activity_actor::deserialize( JsonIn &jsi JsonObject data = jsin.get_object(); - data.read( "loc", actor.loc ); + data.read( "consume_location", actor.consume_location ); + data.read( "consume_item", actor.consume_item ); + data.read( "open_consume_menu", actor.open_consume_menu ); + data.read( "force", actor.force ); + + return actor.clone(); +} + +void try_sleep_activity_actor::start( player_activity &act, Character &/*who*/ ) +{ + act.moves_total = to_moves( duration ); + act.moves_left = act.moves_total; +} + +void try_sleep_activity_actor::do_turn( player_activity &act, Character &who ) +{ + if( who.has_effect( effect_sleep ) ) { + return; + } + if( dynamic_cast( &who )->can_sleep() ) { + who.fall_asleep(); // calls act.set_to_null() + if( !who.has_effect( effect_sleep ) ) { + // Character can potentially have immunity for 'effect_sleep' + who.add_msg_if_player( + _( "You feel you should've fallen asleep by now, but somehow you're still awake." ) ); + } + return; + } + if( one_in( 1000 ) ) { + who.add_msg_if_player( _( "You toss and turn…" ) ); + } + if( calendar::once_every( 30_minutes ) ) { + query_keep_trying( act, who ); + } +} + +void try_sleep_activity_actor::finish( player_activity &act, Character &who ) +{ + act.set_to_null(); + if( !who.has_effect( effect_sleep ) ) { + who.add_msg_if_player( _( "You try to sleep, but can't." ) ); + } +} + +void try_sleep_activity_actor::query_keep_trying( player_activity &act, Character &who ) +{ + if( disable_query || !who.is_avatar() ) { + return; + } + + uilist sleep_query; + sleep_query.text = _( "You have trouble sleeping, keep trying?" ); + sleep_query.addentry( 1, true, 'S', _( "Stop trying to fall asleep and get up." ) ); + sleep_query.addentry( 2, true, 'c', _( "Continue trying to fall asleep." ) ); + sleep_query.addentry( 3, true, 'C', + _( "Continue trying to fall asleep and don't ask again." ) ); + sleep_query.query(); + switch( sleep_query.ret ) { + case UILIST_CANCEL: + case 1: + act.set_to_null(); + break; + case 3: + disable_query = true; + break; + case 2: + default: + break; + } +} + +void try_sleep_activity_actor::serialize( JsonOut &jsout ) const +{ + jsout.start_object(); + + jsout.member( "disable_query", disable_query ); + jsout.member( "duration", duration ); + + jsout.end_object(); +} + +std::unique_ptr try_sleep_activity_actor::deserialize( JsonIn &jsin ) +{ + try_sleep_activity_actor actor = try_sleep_activity_actor( 0_seconds ); + + JsonObject data = jsin.get_object(); + + data.read( "disable_query", actor.disable_query ); + data.read( "duration", actor.duration ); return actor.clone(); } @@ -633,14 +1292,18 @@ namespace activity_actors // Please keep this alphabetically sorted const std::unordered_map( * )( JsonIn & )> deserialize_functions = { + { activity_id( "ACT_AIM" ), &aim_activity_actor::deserialize }, { activity_id( "ACT_CONSUME" ), &consume_activity_actor::deserialize }, { activity_id( "ACT_DIG" ), &dig_activity_actor::deserialize }, { activity_id( "ACT_DIG_CHANNEL" ), &dig_channel_activity_actor::deserialize }, { activity_id( "ACT_HACKING" ), &hacking_activity_actor::deserialize }, + { activity_id( "ACT_HOTWIRE_CAR" ), &hotwire_car_activity_actor::deserialize }, + { activity_id( "ACT_LOCKPICK" ), &lockpick_activity_actor::deserialize }, { activity_id( "ACT_MIGRATION_CANCEL" ), &migration_cancel_activity_actor::deserialize }, { activity_id( "ACT_MOVE_ITEMS" ), &move_items_activity_actor::deserialize }, { activity_id( "ACT_OPEN_GATE" ), &open_gate_activity_actor::deserialize }, { activity_id( "ACT_PICKUP" ), &pickup_activity_actor::deserialize }, + { activity_id( "ACT_TRY_SLEEP" ), &try_sleep_activity_actor::deserialize }, }; } // namespace activity_actors diff --git a/src/activity_actor.h b/src/activity_actor.h index d6a8f39badf5a..9462383a8126e 100644 --- a/src/activity_actor.h +++ b/src/activity_actor.h @@ -9,9 +9,13 @@ #include "clone_ptr.h" #include "item_location.h" +#include "item.h" +#include "memory_fast.h" #include "point.h" #include "type_id.h" +#include "units.h" +class avatar; class Character; class JsonIn; class JsonOut; @@ -60,6 +64,12 @@ class activity_actor */ virtual void finish( player_activity &act, Character &who ) = 0; + /** + * Called just before Character::cancel_activity() executes. + * This may be used to perform cleanup + */ + virtual void canceled( player_activity &/*act*/, Character &/*who*/ ) {} + /** * Called in player_activity::can_resume_with * which allows suspended activities to be resumed instead of @@ -96,6 +106,69 @@ class activity_actor virtual void serialize( JsonOut &jsout ) const = 0; }; +class aim_activity_actor : public activity_actor +{ + public: + enum class WeaponSource : int { + Wielded, + Bionic, + Mutation, + NumWeaponSources + }; + + WeaponSource weapon_source = WeaponSource::Wielded; + shared_ptr_fast fake_weapon = nullptr; + units::energy bp_cost_per_shot = 0_J; + bool first_turn = true; + std::string action = ""; + bool snap_to_target = false; + bool shifting_view = false; + tripoint initial_view_offset; + /** Target UI requested to abort aiming */ + bool aborted = false; + /** Target UI requested to fire */ + bool finished = false; + /** + * Target UI requested to abort aiming and reload weapon + * Implies aborted = true + */ + bool reload_requested = false; + std::vector fin_trajectory; + + aim_activity_actor(); + + /** Aiming wielded gun */ + static aim_activity_actor use_wielded(); + + /** Aiming fake gun provided by a bionic */ + static aim_activity_actor use_bionic( const item &fake_gun, const units::energy &cost_per_shot ); + + /** Aiming fake gun provided by a mutation */ + static aim_activity_actor use_mutation( const item &fake_gun ); + + activity_id get_type() const override { + return activity_id( "ACT_AIM" ); + } + + void start( player_activity &act, Character &who ) override; + void do_turn( player_activity &act, Character &who ) override; + void finish( player_activity &act, Character &who ) override; + void canceled( player_activity &act, Character &who ) override; + + std::unique_ptr clone() const override { + return std::make_unique( *this ); + } + + void serialize( JsonOut &jsout ) const override; + static std::unique_ptr deserialize( JsonIn &jsin ); + + item *get_weapon(); + void restore_view(); + // Load/unload a RELOAD_AND_SHOOT weapon + bool load_RAS_weapon(); + void unload_RAS_weapon(); +}; + class dig_activity_actor : public activity_actor { private: @@ -225,7 +298,7 @@ class hacking_activity_actor : public activity_actor } void start( player_activity &act, Character &who ) override; - void do_turn( player_activity &, Character & ) override {}; + void do_turn( player_activity &, Character & ) override {} void finish( player_activity &act, Character &who ) override; std::unique_ptr clone() const override { @@ -236,6 +309,42 @@ class hacking_activity_actor : public activity_actor static std::unique_ptr deserialize( JsonIn &jsin ); }; +class hotwire_car_activity_actor : public activity_actor +{ + private: + int moves_total; + + /** + * Position of first vehicle part; used to identify the vehicle + * TODO: find something more reliable (to cover cases when vehicle is moved/damaged) + */ + tripoint target; + + bool can_resume_with_internal( const activity_actor &other, const Character & ) const override { + const auto &a = static_cast( other ); + return target == a.target && moves_total == a.moves_total; + } + + public: + hotwire_car_activity_actor( int moves_total, const tripoint &target ): moves_total( moves_total ), + target( target ) {} + + activity_id get_type() const override { + return activity_id( "ACT_HOTWIRE_CAR" ); + } + + void start( player_activity &act, Character & ) override; + void do_turn( player_activity &, Character & ) override; + void finish( player_activity &act, Character &who ) override; + + std::unique_ptr clone() const override { + return std::make_unique( *this ); + } + + void serialize( JsonOut &jsout ) const override; + static std::unique_ptr deserialize( JsonIn &jsin ); +}; + class move_items_activity_actor : public activity_actor { private: @@ -254,9 +363,9 @@ class move_items_activity_actor : public activity_actor return activity_id( "ACT_MOVE_ITEMS" ); } - void start( player_activity &, Character & ) override {}; + void start( player_activity &, Character & ) override {} void do_turn( player_activity &act, Character &who ) override; - void finish( player_activity &, Character & ) override {}; + void finish( player_activity &, Character & ) override {} std::unique_ptr clone() const override { return std::make_unique( *this ); @@ -291,9 +400,9 @@ class pickup_activity_actor : public activity_actor return activity_id( "ACT_PICKUP" ); } - void start( player_activity &, Character & ) override {}; + void start( player_activity &, Character & ) override {} void do_turn( player_activity &act, Character &who ) override; - void finish( player_activity &, Character & ) override {}; + void finish( player_activity &, Character & ) override {} std::unique_ptr clone() const override { return std::make_unique( *this ); @@ -303,6 +412,47 @@ class pickup_activity_actor : public activity_actor static std::unique_ptr deserialize( JsonIn &jsin ); }; +class lockpick_activity_actor : public activity_actor +{ + private: + int moves_total; + cata::optional lockpick; + cata::optional fake_lockpick; + tripoint target; + + public: + /** + * When assigning, set either 'lockpick' or 'fake_lockpick' + * @param lockpick Physical lockpick (if using one) + * @param fake_lockpick Fake item spawned by a bionic + * @param target lockpicking target (in global coords) + */ + lockpick_activity_actor( + int moves_total, + const cata::optional &lockpick, + const cata::optional &fake_lockpick, + const tripoint &target + ) : moves_total( moves_total ), lockpick( lockpick ), fake_lockpick( fake_lockpick ), + target( target ) {}; + + activity_id get_type() const override { + return activity_id( "ACT_LOCKPICK" ); + } + + void start( player_activity &act, Character & ) override; + void do_turn( player_activity &, Character & ) override {}; + void finish( player_activity &act, Character &who ) override; + + static cata::optional select_location( avatar &you ); + + std::unique_ptr clone() const override { + return std::make_unique( *this ); + } + + void serialize( JsonOut &jsout ) const override; + static std::unique_ptr deserialize( JsonIn &jsin ); +}; + class migration_cancel_activity_actor : public activity_actor { public: @@ -312,9 +462,9 @@ class migration_cancel_activity_actor : public activity_actor return activity_id( "ACT_MIGRATION_CANCEL" ); } - void start( player_activity &, Character & ) override {}; + void start( player_activity &, Character & ) override {} void do_turn( player_activity &act, Character &who ) override; - void finish( player_activity &, Character & ) override {}; + void finish( player_activity &, Character & ) override {} std::unique_ptr clone() const override { return std::make_unique( *this ); @@ -347,7 +497,7 @@ class open_gate_activity_actor : public activity_actor } void start( player_activity &act, Character & ) override; - void do_turn( player_activity &, Character & ) override {}; + void do_turn( player_activity &, Character & ) override {} void finish( player_activity &act, Character & ) override; std::unique_ptr clone() const override { @@ -361,25 +511,32 @@ class open_gate_activity_actor : public activity_actor class consume_activity_actor : public activity_actor { private: - item_location loc; - + item_location consume_location; + item consume_item; + bool open_consume_menu = false; + bool force = false; /** * @pre @p other is a consume_activity_actor */ bool can_resume_with_internal( const activity_actor &other, const Character & ) const override { const consume_activity_actor &c_actor = static_cast( other ); - return loc == c_actor.loc; + return ( consume_location == c_actor.consume_location && + open_consume_menu == c_actor.open_consume_menu && + force == c_actor.force && &consume_item == &c_actor.consume_item ); } public: - consume_activity_actor( const item_location &loc ) : - loc( loc ) {} + consume_activity_actor( const item_location &consume_location, bool open_consume_menu = false ) : + consume_location( consume_location ), open_consume_menu( open_consume_menu ) {} + + consume_activity_actor( item consume_item, bool open_consume_menu = false ) : + consume_item( consume_item ), open_consume_menu( open_consume_menu ) {} activity_id get_type() const override { return activity_id( "ACT_CONSUME" ); } void start( player_activity &act, Character &guy ) override; - void do_turn( player_activity &, Character & ) override {}; + void do_turn( player_activity &, Character & ) override {} void finish( player_activity &act, Character & ) override; std::unique_ptr clone() const override { @@ -390,6 +547,37 @@ class consume_activity_actor : public activity_actor static std::unique_ptr deserialize( JsonIn &jsin ); }; +class try_sleep_activity_actor : public activity_actor +{ + private: + bool disable_query = false; + time_duration duration; + + public: + /* + * @param dur Total duration, from when the character starts + * trying to fall asleep to when they're supposed to wake up + */ + try_sleep_activity_actor( const time_duration &dur ) : duration( dur ) {} + + activity_id get_type() const override { + return activity_id( "ACT_TRY_SLEEP" ); + } + + void start( player_activity &act, Character &who ) override; + void do_turn( player_activity &act, Character &who ) override; + void finish( player_activity &act, Character &who ) override; + + void query_keep_trying( player_activity &act, Character &who ); + + std::unique_ptr clone() const override { + return std::make_unique( *this ); + } + + void serialize( JsonOut &jsout ) const override; + static std::unique_ptr deserialize( JsonIn &jsin ); +}; + namespace activity_actors { diff --git a/src/activity_handlers.cpp b/src/activity_handlers.cpp index 35d9e99555bc1..3251e3e5c7ff5 100644 --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp @@ -50,6 +50,7 @@ #include "inventory.h" #include "item.h" #include "item_contents.h" +#include "item_factory.h" #include "item_group.h" #include "item_location.h" #include "item_stack.h" @@ -102,12 +103,13 @@ #include "vpart_position.h" #include "weather.h" +enum class creature_size : int; + static const efftype_id effect_sheared( "sheared" ); #define dbg(x) DebugLog((x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " static const activity_id ACT_ADV_INVENTORY( "ACT_ADV_INVENTORY" ); -static const activity_id ACT_AIM( "ACT_AIM" ); static const activity_id ACT_ARMOR_LAYERS( "ACT_ARMOR_LAYERS" ); static const activity_id ACT_ATM( "ACT_ATM" ); static const activity_id ACT_AUTODRIVE( "ACT_AUTODRIVE" ); @@ -147,9 +149,7 @@ static const activity_id ACT_HACKSAW( "ACT_HACKSAW" ); static const activity_id ACT_HAIRCUT( "ACT_HAIRCUT" ); static const activity_id ACT_HAND_CRANK( "ACT_HAND_CRANK" ); static const activity_id ACT_HEATING( "ACT_HEATING" ); -static const activity_id ACT_HOTWIRE_CAR( "ACT_HOTWIRE_CAR" ); static const activity_id ACT_JACKHAMMER( "ACT_JACKHAMMER" ); -static const activity_id ACT_LOCKPICK( "ACT_LOCKPICK" ); static const activity_id ACT_LONGSALVAGE( "ACT_LONGSALVAGE" ); static const activity_id ACT_MEDITATE( "ACT_MEDITATE" ); static const activity_id ACT_MEND_ITEM( "ACT_MEND_ITEM" ); @@ -187,7 +187,6 @@ static const activity_id ACT_TOOLMOD_ADD( "ACT_TOOLMOD_ADD" ); static const activity_id ACT_TRAIN( "ACT_TRAIN" ); static const activity_id ACT_TRAVELLING( "ACT_TRAVELLING" ); static const activity_id ACT_TREE_COMMUNION( "ACT_TREE_COMMUNION" ); -static const activity_id ACT_TRY_SLEEP( "ACT_TRY_SLEEP" ); static const activity_id ACT_UNLOAD_MAG( "ACT_UNLOAD_MAG" ); static const activity_id ACT_VEHICLE( "ACT_VEHICLE" ); static const activity_id ACT_VEHICLE_DECONSTRUCTION( "ACT_VEHICLE_DECONSTRUCTION" ); @@ -206,7 +205,34 @@ static const efftype_id effect_narcosis( "narcosis" ); static const efftype_id effect_pet( "pet" ); static const efftype_id effect_sleep( "sleep" ); static const efftype_id effect_tied( "tied" ); -static const efftype_id effect_under_op( "under_operation" ); +static const efftype_id effect_under_operation( "under_operation" ); + +static const itype_id itype_2x4( "2x4" ); +static const itype_id itype_animal( "animal" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_burnt_out_bionic( "burnt_out_bionic" ); +static const itype_id itype_chain( "chain" ); +static const itype_id itype_grapnel( "grapnel" ); +static const itype_id itype_hd_tow_cable( "hd_tow_cable" ); +static const itype_id itype_log( "log" ); +static const itype_id itype_mind_scan_robofac( "mind_scan_robofac" ); +static const itype_id itype_muscle( "muscle" ); +static const itype_id itype_nail( "nail" ); +static const itype_id itype_pipe( "pipe" ); +static const itype_id itype_rope_30( "rope_30" ); +static const itype_id itype_rope_makeshift_30( "rope_makeshift_30" ); +static const itype_id itype_ruined_chunks( "ruined_chunks" ); +static const itype_id itype_scrap( "scrap" ); +static const itype_id itype_sheet_metal( "sheet_metal" ); +static const itype_id itype_spike( "spike" ); +static const itype_id itype_splinter( "splinter" ); +static const itype_id itype_stick_long( "stick_long" ); +static const itype_id itype_steel_chunk( "steel_chunk" ); +static const itype_id itype_steel_plate( "steel_plate" ); +static const itype_id itype_vine_30( "vine_30" ); +static const itype_id itype_wire( "wire" ); +static const itype_id itype_welder( "welder" ); +static const itype_id itype_wool_staple( "wool_staple" ); static const zone_type_id zone_type_FARM_PLOT( "FARM_PLOT" ); @@ -214,34 +240,24 @@ static const skill_id skill_computer( "computer" ); static const skill_id skill_electronics( "electronics" ); static const skill_id skill_fabrication( "fabrication" ); static const skill_id skill_firstaid( "firstaid" ); -static const skill_id skill_lockpick( "lockpick" ); -static const skill_id skill_mechanics( "mechanics" ); static const skill_id skill_survival( "survival" ); static const quality_id qual_BUTCHER( "BUTCHER" ); static const quality_id qual_CUT_FINE( "CUT_FINE" ); -static const quality_id qual_LOCKPICK( "LOCKPICK" ); static const quality_id qual_SAW_M( "SAW_M" ); static const quality_id qual_SAW_W( "SAW_W" ); -static const species_id HUMAN( "HUMAN" ); -static const species_id ZOMBIE( "ZOMBIE" ); +static const species_id species_HUMAN( "HUMAN" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); static const std::string trait_flag_CANNIBAL( "CANNIBAL" ); static const std::string trait_flag_PSYCHOPATH( "PSYCHOPATH" ); static const std::string trait_flag_SAPIOVORE( "SAPIOVORE" ); -static const mtype_id mon_zombie( "mon_zombie" ); -static const mtype_id mon_zombie_fat( "mon_zombie_fat" ); -static const mtype_id mon_zombie_rot( "mon_zombie_rot" ); -static const mtype_id mon_skeleton( "mon_skeleton" ); -static const mtype_id mon_zombie_crawler( "mon_zombie_crawler" ); - static const bionic_id bio_ears( "bio_ears" ); static const bionic_id bio_painkiller( "bio_painkiller" ); static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); -static const trait_id trait_ILLITERATE( "ILLITERATE" ); static const trait_id trait_NOPAIN( "NOPAIN" ); static const trait_id trait_SPIRITUAL( "SPIRITUAL" ); static const trait_id trait_STOCKY_TROGLO( "STOCKY_TROGLO" ); @@ -290,7 +306,6 @@ activity_handlers::do_turn_functions = { { ACT_VIBE, vibe_do_turn }, { ACT_HAND_CRANK, hand_crank_do_turn }, { ACT_OXYTORCH, oxytorch_do_turn }, - { ACT_AIM, aim_do_turn }, { ACT_WEAR, wear_do_turn }, { ACT_MULTIPLE_FISH, multiple_fish_do_turn }, { ACT_MULTIPLE_CONSTRUCTION, multiple_construction_do_turn }, @@ -334,7 +349,6 @@ activity_handlers::do_turn_functions = { { ACT_FILL_PIT, fill_pit_do_turn }, { ACT_MULTIPLE_CHOP_PLANKS, multiple_chop_planks_do_turn }, { ACT_FERTILIZE_PLOT, fertilize_plot_do_turn }, - { ACT_TRY_SLEEP, try_sleep_do_turn }, { ACT_OPERATION, operation_do_turn }, { ACT_ROBOT_CONTROL, robot_control_do_turn }, { ACT_TREE_COMMUNION, tree_communion_do_turn }, @@ -356,7 +370,6 @@ activity_handlers::finish_functions = { { ACT_FIRSTAID, firstaid_finish }, { ACT_FISH, fish_finish }, { ACT_FORAGE, forage_finish }, - { ACT_HOTWIRE_CAR, hotwire_finish }, { ACT_LONGSALVAGE, longsalvage_finish }, { ACT_PICKAXE, pickaxe_finish }, { ACT_RELOAD, reload_finish }, @@ -369,7 +382,6 @@ activity_handlers::finish_functions = { { ACT_OXYTORCH, oxytorch_finish }, { ACT_PULP, pulp_finish }, { ACT_CRACKING, cracking_finish }, - { ACT_LOCKPICK, lockpicking_finish }, { ACT_REPAIR_ITEM, repair_item_finish }, { ACT_HEATING, heat_item_finish }, { ACT_MEND_ITEM, mend_item_finish }, @@ -383,12 +395,10 @@ activity_handlers::finish_functions = { { ACT_WAIT_NPC, wait_npc_finish }, { ACT_WAIT_STAMINA, wait_stamina_finish }, { ACT_SOCIALIZE, socialize_finish }, - { ACT_TRY_SLEEP, try_sleep_finish }, { ACT_OPERATION, operation_finish }, { ACT_DISASSEMBLE, disassemble_finish }, { ACT_VIBE, vibe_finish }, { ACT_ATM, atm_finish }, - { ACT_AIM, aim_finish }, { ACT_EAT_MENU, eat_menu_finish }, { ACT_CONSUME_FOOD_MENU, eat_menu_finish }, { ACT_CONSUME_DRINK_MENU, eat_menu_finish }, @@ -472,15 +482,15 @@ static bool check_butcher_cbm( const int roll ) return !failed; } -static void butcher_cbm_item( const std::string &what, const tripoint &pos, +static void butcher_cbm_item( const itype_id &what, const tripoint &pos, const time_point &age, const int roll, const std::vector &flags, const std::vector &faults ) { if( roll < 0 ) { return; } - if( item::find_type( itype_id( what ) )->bionic ) { - item cbm( check_butcher_cbm( roll ) ? what : "burnt_out_bionic", age ); + if( item::find_type( what )->bionic ) { + item cbm( check_butcher_cbm( roll ) ? what : itype_burnt_out_bionic, age ); for( const std::string &flg : flags ) { cbm.set_flag( flg ); } @@ -527,7 +537,7 @@ static void butcher_cbm_group( const std::string &group, const tripoint &pos, } } else { //There is a burnt out CBM - item cbm( "burnt_out_bionic", age ); + item cbm( itype_burnt_out_bionic, age ); for( const std::string &flg : flags ) { cbm.set_flag( flg ); } @@ -541,12 +551,12 @@ static void butcher_cbm_group( const std::string &group, const tripoint &pos, static void set_up_butchery( player_activity &act, player &u, butcher_type action ) { - const int factor = u.max_quality( action == DISSECT ? qual_CUT_FINE : qual_BUTCHER ); + const int factor = u.max_quality( action == butcher_type::DISSECT ? qual_CUT_FINE : qual_BUTCHER ); const item &corpse_item = *act.targets.back(); const mtype &corpse = *corpse_item.get_mtype(); - if( action != DISSECT ) { + if( action != butcher_type::DISSECT ) { if( factor == INT_MIN ) { u.add_msg_if_player( m_info, _( "None of your cutting tools are suitable for butchering." ) ); @@ -558,7 +568,7 @@ static void set_up_butchery( player_activity &act, player &u, butcher_type actio } } - if( action == DISSECT ) { + if( action == butcher_type::DISSECT ) { switch( factor ) { case INT_MIN: u.add_msg_if_player( m_info, _( "None of your tools are sharp and precise enough to do that." ) ); @@ -593,11 +603,14 @@ static void set_up_butchery( player_activity &act, player &u, butcher_type actio } } // workshop butchery (full) prequisites - if( action == BUTCHER_FULL ) { - const bool has_rope = u.has_amount( "rope_30", 1 ) || u.has_amount( "rope_makeshift_30", 1 ) || - u.has_amount( "hd_tow_cable", 1 ) || - u.has_amount( "vine_30", 1 ) || u.has_amount( "grapnel", 1 ) || u.has_amount( "chain", 1 ); - const bool big_corpse = corpse.size >= MS_MEDIUM; + if( action == butcher_type::FULL ) { + const bool has_rope = u.has_amount( itype_rope_30, 1 ) || + u.has_amount( itype_rope_makeshift_30, 1 ) || + u.has_amount( itype_hd_tow_cable, 1 ) || + u.has_amount( itype_vine_30, 1 ) || + u.has_amount( itype_grapnel, 1 ) || + u.has_amount( itype_chain, 1 ); + const bool big_corpse = corpse.size >= creature_size::medium; if( big_corpse ) { if( has_rope && !has_tree_nearby && !b_rack_present ) { @@ -627,29 +640,29 @@ static void set_up_butchery( player_activity &act, player &u, butcher_type actio } } - if( action == DISSECT && ( corpse_item.has_flag( flag_QUARTERED ) || - corpse_item.has_flag( flag_FIELD_DRESS_FAILED ) ) ) { + if( action == butcher_type::DISSECT && ( corpse_item.has_flag( flag_QUARTERED ) || + corpse_item.has_flag( flag_FIELD_DRESS_FAILED ) ) ) { u.add_msg_if_player( m_info, _( "It would be futile to search for implants inside this badly damaged corpse." ) ); act.targets.pop_back(); return; } - if( action == F_DRESS && ( corpse_item.has_flag( flag_FIELD_DRESS ) || - corpse_item.has_flag( flag_FIELD_DRESS_FAILED ) ) ) { + if( action == butcher_type::FIELD_DRESS && ( corpse_item.has_flag( flag_FIELD_DRESS ) || + corpse_item.has_flag( flag_FIELD_DRESS_FAILED ) ) ) { u.add_msg_if_player( m_info, _( "This corpse is already field dressed." ) ); act.targets.pop_back(); return; } - if( action == SKIN && corpse_item.has_flag( flag_SKINNED ) ) { + if( action == butcher_type::SKIN && corpse_item.has_flag( flag_SKINNED ) ) { u.add_msg_if_player( m_info, _( "This corpse is already skinned." ) ); act.targets.pop_back(); return; } - if( action == QUARTER ) { - if( corpse.size == MS_TINY ) { + if( action == butcher_type::QUARTER ) { + if( corpse.size == creature_size::tiny ) { u.add_msg_if_player( m_bad, _( "This corpse is too small to quarter without damaging." ), corpse.nname() ); act.targets.pop_back(); @@ -670,8 +683,8 @@ static void set_up_butchery( player_activity &act, player &u, butcher_type actio } // applies to all butchery actions - const bool is_human = corpse.id == mtype_id::NULL_ID() || ( corpse.in_species( HUMAN ) && - !corpse.in_species( ZOMBIE ) ); + const bool is_human = corpse.id == mtype_id::NULL_ID() || ( corpse.in_species( species_HUMAN ) && + !corpse.in_species( species_ZOMBIE ) ); if( is_human && !( u.has_trait_flag( trait_flag_CANNIBAL ) || u.has_trait_flag( trait_flag_PSYCHOPATH ) || u.has_trait_flag( trait_flag_SAPIOVORE ) ) ) { @@ -711,24 +724,24 @@ static void set_up_butchery( player_activity &act, player &u, butcher_type actio int butcher_time_to_cut( const player &u, const item &corpse_item, const butcher_type action ) { const mtype &corpse = *corpse_item.get_mtype(); - const int factor = u.max_quality( action == DISSECT ? qual_CUT_FINE : qual_BUTCHER ); + const int factor = u.max_quality( action == butcher_type::DISSECT ? qual_CUT_FINE : qual_BUTCHER ); int time_to_cut = 0; switch( corpse.size ) { // Time (roughly) in turns to cut up the corpse - case MS_TINY: + case creature_size::tiny: time_to_cut = 150; break; - case MS_SMALL: + case creature_size::small: time_to_cut = 300; break; - case MS_MEDIUM: + case creature_size::medium: time_to_cut = 450; break; - case MS_LARGE: + case creature_size::large: time_to_cut = 600; break; - case MS_HUGE: + case creature_size::huge: time_to_cut = 1800; break; } @@ -740,32 +753,32 @@ int butcher_time_to_cut( const player &u, const item &corpse_item, const butcher } switch( action ) { - case BUTCHER: + case butcher_type::QUICK: break; - case BUTCHER_FULL: + case butcher_type::FULL: if( !corpse_item.has_flag( flag_FIELD_DRESS ) || corpse_item.has_flag( flag_FIELD_DRESS_FAILED ) ) { time_to_cut *= 6; } else { time_to_cut *= 4; } break; - case F_DRESS: - case SKIN: + case butcher_type::FIELD_DRESS: + case butcher_type::SKIN: time_to_cut *= 2; break; - case QUARTER: + case butcher_type::QUARTER: time_to_cut /= 4; if( time_to_cut < 1200 ) { time_to_cut = 1200; } break; - case DISMEMBER: + case butcher_type::DISMEMBER: time_to_cut /= 10; if( time_to_cut < 600 ) { time_to_cut = 600; } break; - case DISSECT: + case butcher_type::DISSECT: time_to_cut *= 6; break; } @@ -847,7 +860,7 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } if( corpse_item->has_flag( flag_GIBBED ) ) { monster_weight = std::round( 0.85 * monster_weight ); - if( action != F_DRESS ) { + if( action != butcher_type::FIELD_DRESS ) { p.add_msg_if_player( m_bad, _( "You salvage what you can from the corpse, but it is badly damaged." ) ); } @@ -878,14 +891,16 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & roll = std::max( corpse_damage_effect( roll, entry.type, corpse_item->damage_level( 4 ) ), entry.base_num.first ); } + itype_id drop_id = itype_id::NULL_ID(); const itype *drop = nullptr; if( entry.type != "bionic_group" ) { - drop = item::find_type( entry.drop ); + drop_id = itype_id( entry.drop ); + drop = item::find_type( drop_id ); } // BIONIC handling - no code for DISSECT to let the bionic drop fall through if( entry.type == "bionic" || entry.type == "bionic_group" ) { - if( action == F_DRESS ) { + if( action == butcher_type::FIELD_DRESS ) { if( drop != nullptr && !drop->bionic ) { if( one_in( 3 ) ) { p.add_msg_if_player( m_bad, @@ -897,7 +912,9 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & _( "You suspect there might be bionics implanted in this corpse, that careful dissection might reveal." ) ); continue; } - if( action == BUTCHER || action == BUTCHER_FULL || action == DISMEMBER ) { + if( action == butcher_type::QUICK || + action == butcher_type::FULL || + action == butcher_type::DISMEMBER ) { if( drop != nullptr && !drop->bionic ) { if( one_in( 3 ) ) { p.add_msg_if_player( m_bad, @@ -922,13 +939,13 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & continue; } } - if( action == DISSECT ) { + if( action == butcher_type::DISSECT ) { int roll = roll_butchery() - corpse_item->damage_level( 4 ); roll = roll < 0 ? 0 : roll; roll = std::min( entry.max, roll ); add_msg( m_debug, _( "Roll penalty for corpse damage = %s" ), 0 - corpse_item->damage_level( 4 ) ); if( entry.type == "bionic" ) { - butcher_cbm_item( entry.drop, p.pos(), calendar::turn, roll, entry.flags, entry.faults ); + butcher_cbm_item( drop_id, p.pos(), calendar::turn, roll, entry.flags, entry.faults ); } else if( entry.type == "bionic_group" ) { butcher_cbm_group( entry.drop, p.pos(), calendar::turn, roll, entry.flags, entry.faults ); } @@ -945,12 +962,12 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } // QUICK BUTCHERY - if( action == BUTCHER ) { + if( action == butcher_type::QUICK ) { if( entry.type == "flesh" ) { roll = roll / 4; } else if( entry.type == "bone" ) { roll /= 2; - } else if( corpse_item->get_mtype()->size >= MS_MEDIUM && ( entry.type == "skin" ) ) { + } else if( corpse_item->get_mtype()->size >= creature_size::medium && ( entry.type == "skin" ) ) { roll /= 2; } else if( entry.type == "offal" ) { roll /= 5; @@ -959,7 +976,7 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } } // RIP AND TEAR - if( action == DISMEMBER ) { + if( action == butcher_type::DISMEMBER ) { if( entry.type == "flesh" ) { roll /= 6; } else { @@ -967,7 +984,7 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } } // field dressing ignores everything outside below list - if( action == F_DRESS ) { + if( action == butcher_type::FIELD_DRESS ) { if( entry.type == "bone" ) { roll = rng( 0, roll / 2 ); } @@ -980,7 +997,7 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } // you only get the skin from skinning - if( action == SKIN ) { + if( action == butcher_type::SKIN ) { if( entry.type != "skin" ) { continue; } @@ -990,7 +1007,8 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } // field dressing removed innards and bones from meatless limbs - if( ( action == BUTCHER_FULL || action == BUTCHER ) && corpse_item->has_flag( flag_FIELD_DRESS ) ) { + if( ( action == butcher_type::FULL || action == butcher_type::QUICK ) && + corpse_item->has_flag( flag_FIELD_DRESS ) ) { if( entry.type == "offal" ) { continue; } @@ -999,7 +1017,7 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } } // unskillfull field dressing may damage the skin, meat, and other parts - if( ( action == BUTCHER_FULL || action == BUTCHER ) && + if( ( action == butcher_type::FULL || action == butcher_type::QUICK ) && corpse_item->has_flag( flag_FIELD_DRESS_FAILED ) ) { if( entry.type == "offal" ) { continue; @@ -1028,16 +1046,16 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & roll *= roll_drops(); monster_weight_remaining -= roll; roll = std::ceil( static_cast( roll ) / - to_gram( item::find_type( entry.drop )->weight ) ); + to_gram( drop->weight ) ); } else { - monster_weight_remaining -= roll * to_gram( ( item::find_type( entry.drop ) )->weight ); + monster_weight_remaining -= roll * to_gram( drop->weight ); } if( roll <= 0 ) { p.add_msg_if_player( m_bad, _( "You fail to harvest: %s" ), drop->nname( 1 ) ); continue; } - if( drop->phase == LIQUID ) { + if( drop->phase == phase_id::LIQUID ) { item obj( drop, calendar::turn, roll ); if( obj.has_temperature() ) { obj.set_item_temperature( 0.00001 * corpse_item->temperature ); @@ -1105,10 +1123,10 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & monster_weight_remaining -= monster_weight / 5; // add the remaining unusable weight as rotting garbage if( monster_weight_remaining > 0 ) { - if( action == F_DRESS ) { + if( action == butcher_type::FIELD_DRESS ) { // 25% of the corpse weight is what's removed during field dressing monster_weight_remaining -= monster_weight * 3 / 4; - } else if( action == SKIN ) { + } else if( action == butcher_type::SKIN ) { monster_weight_remaining -= monster_weight * 0.85; } else { // a carcass is 75% of the weight of the unmodified creature's weight @@ -1124,9 +1142,9 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } } const int item_charges = monster_weight_remaining / to_gram( ( - item::find_type( "ruined_chunks" ) )->weight ); + item::find_type( itype_ruined_chunks ) )->weight ); if( item_charges > 0 ) { - item ruined_parts( "ruined_chunks", calendar::turn, item_charges ); + item ruined_parts( itype_ruined_chunks, calendar::turn, item_charges ); ruined_parts.set_mtype( &mt ); ruined_parts.set_item_temperature( 0.00001 * corpse_item->temperature ); ruined_parts.set_rot( corpse_item->get_rot() ); @@ -1137,10 +1155,12 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & } } - if( action == DISSECT ) { - p.practice( skill_firstaid, std::max( 0, practice ), std::max( mt.size - MS_MEDIUM, 0 ) + 4 ); + if( action == butcher_type::DISSECT ) { + p.practice( skill_firstaid, std::max( 0, practice ), std::max( mt.size - creature_size::medium, + 0 ) + 4 ); } else { - p.practice( skill_survival, std::max( 0, practice ), std::max( mt.size - MS_MEDIUM, 0 ) + 4 ); + p.practice( skill_survival, std::max( 0, practice ), std::max( mt.size - creature_size::medium, + 0 ) + 4 ); } } @@ -1174,21 +1194,21 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) return; } - butcher_type action = BUTCHER; + butcher_type action = butcher_type::QUICK; if( act->id() == ACT_BUTCHER ) { - action = BUTCHER; + action = butcher_type::QUICK; } else if( act->id() == ACT_BUTCHER_FULL ) { - action = BUTCHER_FULL; + action = butcher_type::FULL; } else if( act->id() == ACT_FIELD_DRESS ) { - action = F_DRESS; + action = butcher_type::FIELD_DRESS; } else if( act->id() == ACT_QUARTER ) { - action = QUARTER; + action = butcher_type::QUARTER; } else if( act->id() == ACT_DISSECT ) { - action = DISSECT; + action = butcher_type::DISSECT; } else if( act->id() == ACT_SKIN ) { - action = SKIN; + action = butcher_type::SKIN; } else if( act->id() == ACT_DISMEMBER ) { - action = DISMEMBER; + action = butcher_type::DISMEMBER; } // index is a bool that determines if we are ready to start the next target @@ -1202,18 +1222,18 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) const field_type_id type_blood = corpse->bloodType(); const field_type_id type_gib = corpse->gibType(); - if( action == QUARTER ) { + if( action == butcher_type::QUARTER ) { butchery_quarter( &corpse_item, *p ); act->index = true; return; } int skill_level = p->get_skill_level( skill_survival ); - int factor = p->max_quality( action == DISSECT ? qual_CUT_FINE : + int factor = p->max_quality( action == butcher_type::DISSECT ? qual_CUT_FINE : qual_BUTCHER ); // DISSECT has special case factor calculation and results. - if( action == DISSECT ) { + if( action == butcher_type::DISSECT ) { skill_level = p->get_skill_level( skill_firstaid ); skill_level += p->max_quality( qual_CUT_FINE ); skill_level += p->get_skill_level( skill_electronics ) / 2; @@ -1234,12 +1254,12 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) return static_cast( std::round( skill_shift ) ); }; - if( action == DISMEMBER ) { + if( action == butcher_type::DISMEMBER ) { g->m.add_splatter( type_gib, p->pos(), rng( corpse->size + 2, ( corpse->size + 1 ) * 2 ) ); } //all BUTCHERY types - FATAL FAILURE - if( action != DISSECT && roll_butchery() <= ( -15 ) && one_in( 2 ) ) { + if( action != butcher_type::DISSECT && roll_butchery() <= ( -15 ) && one_in( 2 ) ) { switch( rng( 1, 3 ) ) { case 1: p->add_msg_if_player( m_warning, @@ -1283,7 +1303,7 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) // and the liquid handling was interrupted, then the activity was canceled, // therefore operations on this activities targets and values may be invalidated. // reveal hidden items / hidden content - if( action != F_DRESS && action != SKIN ) { + if( action != butcher_type::FIELD_DRESS && action != butcher_type::SKIN ) { for( item *content : corpse_item.contents.all_items_top() ) { if( ( roll_butchery() + 10 ) * 5 > rng( 0, 100 ) ) { //~ %1$s - item name, %2$s - monster name @@ -1291,16 +1311,16 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) corpse->nname() ); g->m.add_item_or_charges( p->pos(), *content ); } else if( content->is_bionic() ) { - g->m.spawn_item( p->pos(), "burnt_out_bionic", 1, 0, calendar::turn ); + g->m.spawn_item( p->pos(), itype_burnt_out_bionic, 1, 0, calendar::turn ); } } } //end messages and effects switch( action ) { - case QUARTER: + case butcher_type::QUARTER: break; - case BUTCHER: + case butcher_type::QUICK: p->add_msg_if_player( m_good, _( "You apply few quick cuts to the %s and leave what's left of it for scavengers." ), corpse_item.tname() ); @@ -1311,7 +1331,7 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) act->targets.pop_back(); } break; - case BUTCHER_FULL: + case butcher_type::FULL: p->add_msg_if_player( m_good, _( "You finish butchering the %s." ), corpse_item.tname() ); // Remove the target from the map @@ -1320,7 +1340,7 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) act->targets.pop_back(); } break; - case F_DRESS: + case butcher_type::FIELD_DRESS: // partial failure if( roll_butchery() < 0 ) { switch( rng( 1, 3 ) ) { @@ -1379,7 +1399,7 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) act->targets.pop_back(); } break; - case SKIN: + case butcher_type::SKIN: switch( rng( 1, 4 ) ) { case 1: p->add_msg_if_player( m_good, _( "You skin the %s." ), corpse->nname() ); @@ -1403,7 +1423,7 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) act->targets.pop_back(); } break; - case DISMEMBER: + case butcher_type::DISMEMBER: switch( rng( 1, 3 ) ) { case 1: p->add_msg_if_player( m_good, _( "You hack the %s apart." ), corpse_item.tname() ); @@ -1421,7 +1441,7 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) act->targets.pop_back(); } break; - case DISSECT: + case butcher_type::DISSECT: p->add_msg_if_player( m_good, _( "You finish dissecting the %s." ), corpse_item.tname() ); // Remove the target from the map @@ -1458,7 +1478,7 @@ void activity_handlers::shear_finish( player_activity *act, player *p ) } // 22 wool staples corresponds to an average wool-producing sheep yield of 10 lbs or so for( int i = 0; i != 22; ++i ) { - item wool_staple( "wool_staple", calendar::turn ); + item wool_staple( itype_wool_staple, calendar::turn ); g->m.add_item_or_charges( p->pos(), wool_staple ); } source_mon->add_effect( effect_sheared, calendar::season_length() ); @@ -1525,7 +1545,7 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) int part_num = -1; int veh_charges = 0; switch( source_type ) { - case LST_VEHICLE: + case liquid_source_type::VEHICLE: source_veh = veh_pointer_or_null( g->m.veh_at( source_pos ) ); if( source_veh == nullptr ) { throw std::runtime_error( "could not find source vehicle for liquid transfer" ); @@ -1534,11 +1554,11 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) part_num = static_cast( act_ref.values.at( 1 ) ); veh_charges = liquid.charges; break; - case LST_INFINITE_MAP: + case liquid_source_type::INFINITE_MAP: deserialize( liquid, act_ref.str_values.at( 0 ) ); liquid.charges = item::INFINITE_CHARGES; break; - case LST_MAP_ITEM: + case liquid_source_type::MAP_ITEM: if( static_cast( act_ref.values.at( 1 ) ) >= source_stack.size() ) { throw std::runtime_error( "could not find source item on ground for liquid transfer" ); } @@ -1546,7 +1566,7 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) std::advance( on_ground, act_ref.values.at( 1 ) ); liquid = *on_ground; break; - case LST_MONSTER: + case liquid_source_type::MONSTER: Creature *c = g->critter_at( source_pos ); source_mon = dynamic_cast( c ); if( source_mon == nullptr ) { @@ -1569,17 +1589,17 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) // 2. Transfer charges. switch( static_cast( act_ref.values.at( 2 ) ) ) { - case LTT_VEHICLE: + case liquid_target_type::VEHICLE: if( const optional_vpart_position vp = g->m.veh_at( act_ref.coords.at( 1 ) ) ) { p->pour_into( vp->vehicle(), liquid ); } else { throw std::runtime_error( "could not find target vehicle for liquid transfer" ); } break; - case LTT_CONTAINER: + case liquid_target_type::CONTAINER: p->pour_into( *act_ref.targets.at( 0 ), liquid ); break; - case LTT_MAP: + case liquid_target_type::MAP: if( iexamine::has_keg( act_ref.coords.at( 1 ) ) ) { iexamine::pour_into_keg( act_ref.coords.at( 1 ), liquid ); } else { @@ -1588,7 +1608,7 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) liquid.charges = 0; } break; - case LTT_MONSTER: + case liquid_target_type::MONSTER: liquid.charges = 0; break; } @@ -1602,7 +1622,7 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) // 3. Remove charges from source. switch( source_type ) { - case LST_VEHICLE: + case liquid_source_type::VEHICLE: if( part_num != -1 ) { source_veh->drain( part_num, removed_charges ); liquid.charges = veh_charges - removed_charges; @@ -1625,7 +1645,7 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) act_ref.set_to_null(); } break; - case LST_MAP_ITEM: + case liquid_source_type::MAP_ITEM: on_ground->charges -= removed_charges; if( on_ground->charges <= 0 ) { source_stack.erase( on_ground ); @@ -1643,10 +1663,10 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) act_ref.set_to_null(); } break; - case LST_INFINITE_MAP: + case liquid_source_type::INFINITE_MAP: // nothing, the liquid source is infinite break; - case LST_MONSTER: + case liquid_source_type::MONSTER: // liquid source charges handled in monexamine::milk_source if( liquid.charges == 0 ) { act_ref.set_to_null(); @@ -1803,38 +1823,6 @@ void activity_handlers::game_do_turn( player_activity *act, player *p ) } } -void activity_handlers::hotwire_finish( player_activity *act, player *p ) -{ - //Grab this now, in case the vehicle gets shifted - if( const optional_vpart_position vp = g->m.veh_at( g->m.getlocal( tripoint( act->values[0], - act->values[1], - p->posz() ) ) ) ) { - vehicle *const veh = &vp->vehicle(); - const int mech_skill = act->values[2]; - if( mech_skill > static_cast( rng( 1, 6 ) ) ) { - //success - veh->is_locked = false; - add_msg( _( "This wire will start the engine." ) ); - } else if( mech_skill > static_cast( rng( 0, 4 ) ) ) { - //soft fail - veh->is_locked = false; - veh->is_alarm_on = veh->has_security_working(); - add_msg( _( "This wire will probably start the engine." ) ); - } else if( veh->is_alarm_on ) { - veh->is_locked = false; - add_msg( _( "By process of elimination, this wire will start the engine." ) ); - } else { - //hard fail - veh->is_alarm_on = veh->has_security_working(); - add_msg( _( "The red wire always starts the engine, doesn't it?" ) ); - } - } else { - dbg( D_ERROR ) << "game:process_activity: ACT_HOTWIRE_CAR: vehicle not found"; - debugmsg( "process_activity ACT_HOTWIRE_CAR: vehicle not found" ); - } - act->set_to_null(); -} - void activity_handlers::longsalvage_finish( player_activity *act, player *p ) { static const std::string salvage_string = "salvage"; @@ -2068,7 +2056,8 @@ void activity_handlers::reload_finish( player_activity *act, player *p ) } } if( reloadable.type->gun->reload_noise_volume > 0 ) { - sfx::play_variant_sound( "reload", reloadable.typeId(), sfx::get_heard_volume( p->pos() ) ); + sfx::play_variant_sound( "reload", reloadable.typeId().str(), + sfx::get_heard_volume( p->pos() ) ); sounds::ambient_sound( p->pos(), reloadable.type->gun->reload_noise_volume, sounds::sound_t::activity, reloadable.type->gun->reload_noise ); } @@ -2205,7 +2194,6 @@ void activity_handlers::train_finish( player_activity *act, player *p ) } act->set_to_null(); - return; } void activity_handlers::vehicle_finish( player_activity *act, player *p ) @@ -2235,7 +2223,6 @@ void activity_handlers::vehicle_finish( player_activity *act, player *p ) } else { if( vp ) { g->m.invalidate_map_cache( g->get_levz() ); - g->refresh_all(); // TODO: Z (and also where the activity is queued) // Or not, because the vehicle coordinates are dropped anyway if( !resume_for_multi_activities( *p ) ) { @@ -2260,14 +2247,14 @@ void activity_handlers::hand_crank_do_turn( player_activity *act, player *p ) if( calendar::once_every( 144_seconds ) ) { 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( hand_crank_item.ammo_capacity( ammotype( "battery" ) ) > hand_crank_item.ammo_remaining() ) { + hand_crank_item.ammo_set( itype_id( "battery" ), hand_crank_item.ammo_remaining() + 1 ); } else { act->moves_left = 0; add_msg( m_info, _( "You've charged the battery completely." ) ); } } - if( p->get_fatigue() >= DEAD_TIRED ) { + if( p->get_fatigue() >= fatigue_levels::DEAD_TIRED ) { act->moves_left = 0; add_msg( m_info, _( "You're too exhausted to keep cranking." ) ); } @@ -2281,8 +2268,7 @@ void activity_handlers::vibe_do_turn( player_activity *act, player *p ) //Deduct 1 battery charge for every minute in use, or vibrator is much less effective item &vibrator_item = *act->targets.front(); - if( ( p->is_wearing( "rebreather" ) ) || ( p->is_wearing( "rebreather_xl" ) ) || - ( p->is_wearing( "mask_h20survivor" ) ) ) { + if( p->encumb( bp_mouth ) >= 30 ) { act->moves_left = 0; add_msg( m_bad, _( "You have trouble breathing, and stop." ) ); } @@ -2301,7 +2287,7 @@ void activity_handlers::vibe_do_turn( player_activity *act, player *p ) } } // Dead Tired: different kind of relaxation needed - if( p->get_fatigue() >= DEAD_TIRED ) { + if( p->get_fatigue() >= fatigue_levels::DEAD_TIRED ) { act->moves_left = 0; add_msg( m_info, _( "You're too tired to continue." ) ); } @@ -2333,12 +2319,14 @@ void activity_handlers::start_engines_finish( player_activity *act, player *p ) for( size_t e = 0; e < veh->engines.size(); ++e ) { if( veh->is_engine_on( e ) ) { attempted++; - if( !veh->is_engine_type( e, "muscle" ) && !veh->is_engine_type( e, "animal" ) ) { + if( !veh->is_engine_type( e, itype_muscle ) && + !veh->is_engine_type( e, itype_animal ) ) { non_muscle_attempted++; } if( veh->start_engine( e ) ) { started++; - if( !veh->is_engine_type( e, "muscle" ) && !veh->is_engine_type( e, "animal" ) ) { + if( !veh->is_engine_type( e, itype_muscle ) && + !veh->is_engine_type( e, itype_animal ) ) { non_muscle_started++; } else { non_combustion_started++; @@ -2410,44 +2398,44 @@ void activity_handlers::oxytorch_finish( player_activity *act, player *p ) if( g->m.furn( pos ) == f_rack ) { g->m.furn_set( pos, f_null ); - g->m.spawn_item( p->pos(), "steel_chunk", rng( 2, 6 ) ); + g->m.spawn_item( p->pos(), itype_steel_chunk, rng( 2, 6 ) ); } else if( ter == t_chainfence || ter == t_chaingate_c || ter == t_chaingate_l ) { g->m.ter_set( pos, t_dirt ); - g->m.spawn_item( pos, "pipe", rng( 1, 4 ) ); - g->m.spawn_item( pos, "wire", rng( 4, 16 ) ); + g->m.spawn_item( pos, itype_pipe, rng( 1, 4 ) ); + g->m.spawn_item( pos, itype_wire, rng( 4, 16 ) ); } else if( ter == t_chainfence_posts ) { g->m.ter_set( pos, t_dirt ); - g->m.spawn_item( pos, "pipe", rng( 1, 4 ) ); + g->m.spawn_item( pos, itype_pipe, rng( 1, 4 ) ); } else if( ter == t_door_metal_locked || ter == t_door_metal_c || ter == t_door_bar_c || ter == t_door_bar_locked || ter == t_door_metal_pickable ) { g->m.ter_set( pos, t_mdoor_frame ); - g->m.spawn_item( pos, "steel_plate", rng( 0, 1 ) ); - g->m.spawn_item( pos, "steel_chunk", rng( 3, 8 ) ); + g->m.spawn_item( pos, itype_steel_plate, rng( 0, 1 ) ); + g->m.spawn_item( pos, itype_steel_chunk, rng( 3, 8 ) ); } else if( ter == t_window_enhanced || ter == t_window_enhanced_noglass ) { g->m.ter_set( pos, t_window_empty ); - g->m.spawn_item( pos, "steel_plate", rng( 0, 1 ) ); - g->m.spawn_item( pos, "sheet_metal", rng( 1, 3 ) ); + g->m.spawn_item( pos, itype_steel_plate, rng( 0, 1 ) ); + g->m.spawn_item( pos, itype_sheet_metal, rng( 1, 3 ) ); } else if( ter == t_reb_cage ) { g->m.ter_set( pos, t_pit ); - g->m.spawn_item( pos, "spike", rng( 1, 19 ) ); - g->m.spawn_item( pos, "scrap", rng( 1, 8 ) ); + g->m.spawn_item( pos, itype_spike, rng( 1, 19 ) ); + g->m.spawn_item( pos, itype_scrap, rng( 1, 8 ) ); } else if( ter == t_bars ) { if( g->m.ter( pos + point_east ) == t_sewage || g->m.ter( pos + point_south ) == t_sewage || g->m.ter( pos + point_west ) == t_sewage || g->m.ter( pos + point_north ) == t_sewage ) { g->m.ter_set( pos, t_sewage ); - g->m.spawn_item( p->pos(), "pipe", rng( 1, 2 ) ); + g->m.spawn_item( p->pos(), itype_pipe, rng( 1, 2 ) ); } else { g->m.ter_set( pos, t_floor ); - g->m.spawn_item( p->pos(), "pipe", rng( 1, 2 ) ); + g->m.spawn_item( p->pos(), itype_pipe, rng( 1, 2 ) ); } } else if( ter == t_window_bars_alarm ) { g->m.ter_set( pos, t_window_alarm ); - g->m.spawn_item( p->pos(), "pipe", rng( 1, 2 ) ); + g->m.spawn_item( p->pos(), itype_pipe, rng( 1, 2 ) ); } else if( ter == t_window_bars ) { g->m.ter_set( pos, t_window_empty ); - g->m.spawn_item( p->pos(), "pipe", rng( 1, 2 ) ); + g->m.spawn_item( p->pos(), itype_pipe, rng( 1, 2 ) ); } } @@ -2458,91 +2446,6 @@ void activity_handlers::cracking_finish( player_activity *act, player *p ) act->set_to_null(); } -void activity_handlers::lockpicking_finish( player_activity *act, player *p ) -{ - item_location &loc = act->targets[ 0 ]; - item *it = loc.get_item(); - if( it == nullptr ) { - debugmsg( "lockpick item location lost" ); - p->cancel_activity(); - return; - } - - const ter_id ter_type = g->m.ter( act->placement ); - const furn_id furn_type = g->m.furn( act->placement ); - ter_id new_ter_type; - furn_id new_furn_type; - std::string open_message; - if( ter_type == t_chaingate_l ) { - new_ter_type = t_chaingate_c; - open_message = _( "With a satisfying click, the chain-link gate opens." ); - } else if( ter_type == t_door_locked || ter_type == t_door_locked_alarm || - ter_type == t_door_locked_interior ) { - new_ter_type = t_door_c; - open_message = _( "With a satisfying click, the lock on the door opens." ); - } else if( ter_type == t_door_locked_peep ) { - new_ter_type = t_door_c_peep; - open_message = _( "With a satisfying click, the lock on the door opens." ); - } else if( ter_type == t_door_metal_pickable ) { - new_ter_type = t_door_metal_c; - open_message = _( "With a satisfying click, the lock on the door opens." ); - } else if( ter_type == t_door_bar_locked ) { - new_ter_type = t_door_bar_o; - //Bar doors auto-open (and lock if closed again) so show a different message) - open_message = _( "The door swings open…" ); - } else if( furn_type == f_gunsafe_ml ) { - new_furn_type = f_safe_o; - open_message = _( "With a satisfying click, the lock on the door opens." ); - } else { - act->set_to_null(); - } - - bool destroy = false; - - /** @EFFECT_DEX improves chances of successfully picking door lock, reduces chances of bad outcomes */ - /** @EFFECT_MECHANICS improves chances of successfully picking door lock, reduces chances of bad outcomes */ - /** @EFFECT_LOCKPICK greatly improves chances of successfully picking door lock, reduces chances of bad outcomes */ - int pick_roll = std::pow( 1.5, p->get_skill_level( skill_lockpick ) ) * - ( std::pow( 1.3, p->get_skill_level( skill_mechanics ) ) + - it->get_quality( qual_LOCKPICK ) - it->damage() / 2000.0 ) + - p->dex_cur / 4.0; - int lock_roll = rng( 1, 120 ); - if( ( pick_roll >= lock_roll ) || it->has_flag( "PSEUDO" ) ) { - p->practice( skill_lockpick, lock_roll ); - g->m.has_furn( act->placement ) ? - g->m.furn_set( act->placement, new_furn_type ) : - static_cast( g->m.ter_set( act->placement, new_ter_type ) ); - p->add_msg_if_player( m_good, open_message ); - } else if( furn_type == f_gunsafe_ml && lock_roll > ( 3 * pick_roll ) ) { - p->add_msg_if_player( m_bad, _( "Your clumsy attempt jams the lock!" ) ); - g->m.furn_set( act->placement, furn_str_id( "f_gunsafe_mj" ) ); - } else if( lock_roll > ( 1.5 * pick_roll ) ) { - if( it->inc_damage() ) { - p->add_msg_if_player( m_bad, - _( "The lock stumps your efforts to pick it, and you destroy your tool." ) ); - destroy = true; - } else { - p->add_msg_if_player( m_bad, - _( "The lock stumps your efforts to pick it, and you damage your tool." ) ); - } - } else { - p->add_msg_if_player( m_bad, _( "The lock stumps your efforts to pick it." ) ); - } - if( ter_type == t_door_locked_alarm && ( lock_roll + dice( 1, 30 ) ) > pick_roll ) { - sounds::sound( p->pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ), true, "environment", - "alarm" ); - if( !g->timed_events.queued( TIMED_EVENT_WANTED ) ) { - g->timed_events.add( TIMED_EVENT_WANTED, calendar::turn + 30_minutes, 0, - p->global_sm_location() ); - } - } - if( destroy || it->has_flag( "PSEUDO" ) ) { - p->i_rem( it ); - } - - act->set_to_null(); -} - enum repeat_type : int { // REPEAT_INIT should be zero. In some scenarios (veh welder), activity value default to zero. REPEAT_INIT = 0, // Haven't found repeat value yet. @@ -2585,7 +2488,7 @@ struct weldrig_hack { weldrig_hack() : veh( nullptr ) , part( -1 ) - , pseudo( "welder", calendar::turn ) + , pseudo( itype_welder, calendar::turn ) { } bool init( const player_activity &act ) { @@ -2606,7 +2509,7 @@ struct weldrig_hack { item &get_item() { if( veh != nullptr && part >= 0 ) { - pseudo.charges = veh->drain( "battery", 1000 - pseudo.charges ); + pseudo.charges = veh->drain( itype_battery, 1000 - pseudo.charges ); return pseudo; } @@ -2715,7 +2618,6 @@ void activity_handlers::repair_item_finish( player_activity *act, player *p ) // target selection and validation. while( act->targets.size() < 2 ) { - g->draw(); item_location item_loc = game_menus::inv::repair( *p, actor, &main_tool ); if( item_loc == item_location::nowhere ) { @@ -2746,8 +2648,15 @@ void activity_handlers::repair_item_finish( player_activity *act, player *p ) std::string title = string_format( _( "%s %s\n" ), repair_item_actor::action_description( action_type ), fix.tname() ); + ammotype current_ammo; + if( used_tool->ammo_current().is_null() ) { + current_ammo = item_controller->find_template( used_tool->ammo_default() )->ammo->type; + } else { + current_ammo = item_controller->find_template( used_tool->ammo_current() )->ammo->type; + } + title += string_format( _( "Charges: %s/%s %s (%s per use)\n" ), - used_tool->ammo_remaining(), used_tool->ammo_capacity(), + used_tool->ammo_remaining(), used_tool->ammo_capacity( current_ammo ), item::nname( used_tool->ammo_current() ), used_tool->ammo_required() ); title += string_format( _( "Skill used: %s (%s)\n" ), @@ -2761,7 +2670,6 @@ void activity_handlers::repair_item_finish( player_activity *act, player *p ) act->values.resize( 1 ); } do { - g->draw(); repeat = repeat_menu( title, repeat ); if( repeat == REPEAT_CANCEL ) { @@ -2799,7 +2707,7 @@ void activity_handlers::heat_item_finish( player_activity *act, player *p ) } item *const food = heat->get_food(); if( food == nullptr ) { - debugmsg( "item %s is not food", heat->typeId() ); + debugmsg( "item %s is not food", heat->typeId().str() ); return; } item &target = *food; @@ -2891,7 +2799,7 @@ void activity_handlers::gunmod_add_finish( player_activity *act, player *p ) const int risk = act->values[2]; // any tool charges used during installation - const std::string tool = act->name; + const itype_id tool( act->name ); const int qty = act->values[3]; if( !gun.is_gunmod_compatible( mod ).success() ) { @@ -2899,7 +2807,7 @@ void activity_handlers::gunmod_add_finish( player_activity *act, player *p ) return; } - if( !tool.empty() && qty > 0 ) { + if( !tool.is_empty() && qty > 0 ) { p->use_charges( tool, qty ); } @@ -2962,15 +2870,6 @@ void activity_handlers::meditate_finish( player_activity *act, player *p ) act->set_to_null(); } -void activity_handlers::aim_do_turn( player_activity *act, player * ) -{ - if( act->index == 0 ) { - g->m.invalidate_map_cache( g->get_levz() ); - g->m.build_map_cache( g->get_levz() ); - avatar_action::aim_do_turn( g->u, g->m ); - } -} - void activity_handlers::wear_do_turn( player_activity *act, player *p ) { activity_on_turn_wear( *act, *p ); @@ -3047,7 +2946,6 @@ void activity_handlers::travel_do_turn( player_activity *act, player *p ) p->omt_path.pop_back(); if( p->omt_path.empty() ) { p->add_msg_if_player( m_info, _( "You have reached your destination." ) ); - g->draw(); act->set_to_null(); return; } @@ -3074,7 +2972,6 @@ void activity_handlers::travel_do_turn( player_activity *act, player *p ) } else { p->add_msg_if_player( m_info, _( "You have reached your destination." ) ); } - g->draw(); act->set_to_null(); } @@ -3197,6 +3094,13 @@ void activity_handlers::butcher_do_turn( player_activity * /*act*/, player *p ) void activity_handlers::read_do_turn( player_activity *act, player *p ) { + if( p->fine_detail_vision_mod() > 4 ) { + //It got too dark during the process of reading, bail out. + act->set_to_null(); + p->add_msg_if_player( m_bad, _( "It's too dark to read!" ) ); + return; + } + if( p->is_player() ) { if( !act->str_values.empty() && act->str_values[0] == "martial_art" && one_in( 3 ) ) { if( act->values.empty() ) { @@ -3330,48 +3234,6 @@ void activity_handlers::socialize_finish( player_activity *act, player *p ) act->set_to_null(); } -void activity_handlers::try_sleep_do_turn( player_activity *act, player *p ) -{ - if( !p->has_effect( effect_sleep ) ) { - if( p->can_sleep() ) { - act->set_to_null(); - p->fall_asleep(); - p->remove_value( "sleep_query" ); - } else if( one_in( 1000 ) ) { - p->add_msg_if_player( _( "You toss and turn…" ) ); - } - if( calendar::once_every( 30_minutes ) ) { - try_sleep_query( act, p ); - } - } -} - -void activity_handlers::try_sleep_query( player_activity *act, player *p ) -{ - if( p->get_value( "sleep_query" ) == "false" ) { - return; - } - uilist sleep_query; - sleep_query.text = _( "You have trouble sleeping, keep trying?" ); - sleep_query.addentry( 1, true, 'S', _( "Stop trying to fall asleep and get up." ) ); - sleep_query.addentry( 2, true, 'c', _( "Continue trying to fall asleep." ) ); - sleep_query.addentry( 3, true, 'C', - _( "Continue trying to fall asleep and don't ask again." ) ); - sleep_query.query(); - switch( sleep_query.ret ) { - case UILIST_CANCEL: - case 1: - act->set_to_null(); - break; - case 3: - p->set_value( "sleep_query", "false" ); - break; - case 2: - default: - break; - } -} - void activity_handlers::operation_do_turn( player_activity *act, player *p ) { /** @@ -3391,7 +3253,6 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) is_autodoc = 3 }; const bionic_id bid( act->str_values[cbm_id] ); - const bionic_id upbid = bid->upgraded_bionic; const bool autodoc = act->str_values[is_autodoc] == "true"; const bool u_see = g->u.sees( p->pos() ) && ( !g->u.has_effect( effect_narcosis ) || g->u.has_bionic( bio_painkiller ) || g->u.has_trait( trait_NOPAIN ) ); @@ -3409,7 +3270,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) flag_AUTODOC ); if( !g->m.has_flag_furn( flag_AUTODOC_COUCH, p->pos() ) || autodocs.empty() ) { - p->remove_effect( effect_under_op ); + p->remove_effect( effect_under_operation ); act->set_to_null(); if( u_see ) { @@ -3426,7 +3287,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) if( u_see ) { p->add_msg_player_or_npc( m_bad, _( "Your %s is ripped open." ), - _( "'s %s is ripped open." ), body_part_name_accusative( bp->token ) ); + _( "'s %s is ripped open." ), body_part_name_accusative( bp ) ); } if( bp == bodypart_id( "eyes" ) ) { @@ -3447,7 +3308,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) p->add_msg_player_or_npc( m_info, _( "The Autodoc is meticulously cutting your %s open." ), _( "The Autodoc is meticulously cutting 's %s open." ), - body_part_name_accusative( bp->token ) ); + body_part_name_accusative( bp ) ); } } } else { @@ -3468,7 +3329,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) units::from_millijoule( act->values[2] ), act->values[3] ); } else { debugmsg( _( "Tried to uninstall %s, but you don't have this bionic installed." ), bid.c_str() ); - p->remove_effect( effect_under_op ); + p->remove_effect( effect_under_operation ); act->set_to_null(); } } else { @@ -3477,11 +3338,12 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) } if( bid.is_valid() ) { + const bionic_id upbid = bid->upgraded_bionic; p->perform_install( bid, upbid, act->values[0], act->values[1], act->values[3], act->str_values[installer_name], bid->canceled_mutations, p->pos() ); } else { debugmsg( _( "%s is no a valid bionic_id" ), bid.c_str() ); - p->remove_effect( effect_under_op ); + p->remove_effect( effect_under_operation ); act->set_to_null(); } } @@ -3492,7 +3354,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) p->add_msg_player_or_npc( m_info, _( "The Autodoc is stitching your %s back up." ), _( "The Autodoc is stitching 's %s back up." ), - body_part_name_accusative( bp->token ) ); + body_part_name_accusative( bp ) ); } } } else { @@ -3524,14 +3386,6 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) } } -void activity_handlers::try_sleep_finish( player_activity *act, player *p ) -{ - if( !p->has_effect( effect_sleep ) ) { - p->add_msg_if_player( _( "You try to sleep, but can't…" ) ); - } - act->set_to_null(); -} - void activity_handlers::operation_finish( player_activity *act, player *p ) { if( act->str_values[3] == "true" ) { @@ -3563,7 +3417,7 @@ void activity_handlers::operation_finish( player_activity *act, player *p ) _( "The operation is a failure." ) ); } } - p->remove_effect( effect_under_op ); + p->remove_effect( effect_under_operation ); act->set_to_null(); } @@ -3580,7 +3434,7 @@ void activity_handlers::churn_finish( player_activity *act, player *p ) void activity_handlers::plant_seed_finish( player_activity *act, player *p ) { tripoint examp = g->m.getlocal( act->placement ); - const std::string seed_id = act->str_values[0]; + const itype_id seed_id( act->str_values[0] ); std::list used_seed; if( item::count_by_charges( seed_id ) ) { used_seed = p->use_charges( seed_id, 1 ); @@ -3841,16 +3695,9 @@ void activity_handlers::atm_finish( player_activity *act, player * ) } } -void activity_handlers::aim_finish( player_activity *, player * ) -{ - // Aim bails itself by resetting itself every turn, - // you only re-enter if it gets set again. - return; -} void activity_handlers::eat_menu_finish( player_activity *, player * ) { // Only exists to keep the eat activity alive between turns - return; } void activity_handlers::hacksaw_do_turn( player_activity *act, player * ) @@ -3869,45 +3716,45 @@ void activity_handlers::hacksaw_finish( player_activity *act, player *p ) if( g->m.furn( pos ) == f_rack ) { g->m.furn_set( pos, f_null ); - g->m.spawn_item( p->pos(), "pipe", rng( 1, 3 ) ); - g->m.spawn_item( p->pos(), "steel_chunk" ); + g->m.spawn_item( p->pos(), itype_pipe, rng( 1, 3 ) ); + g->m.spawn_item( p->pos(), itype_steel_chunk ); } else if( ter == t_chainfence || ter == t_chaingate_c || ter == t_chaingate_l ) { g->m.ter_set( pos, t_dirt ); - g->m.spawn_item( p->pos(), "pipe", 6 ); - g->m.spawn_item( p->pos(), "wire", 20 ); + g->m.spawn_item( p->pos(), itype_pipe, 6 ); + g->m.spawn_item( p->pos(), itype_wire, 20 ); } else if( ter == t_chainfence_posts ) { g->m.ter_set( pos, t_dirt ); - g->m.spawn_item( p->pos(), "pipe", 6 ); + g->m.spawn_item( p->pos(), itype_pipe, 6 ); } else if( ter == t_window_bars_alarm ) { g->m.ter_set( pos, t_window_alarm ); - g->m.spawn_item( p->pos(), "pipe", 6 ); + g->m.spawn_item( p->pos(), itype_pipe, 6 ); } else if( ter == t_window_bars ) { g->m.ter_set( pos, t_window_empty ); - g->m.spawn_item( p->pos(), "pipe", 6 ); + g->m.spawn_item( p->pos(), itype_pipe, 6 ); } else if( ter == t_window_enhanced ) { g->m.ter_set( pos, t_window_reinforced ); - g->m.spawn_item( p->pos(), "spike", rng( 1, 4 ) ); + g->m.spawn_item( p->pos(), itype_spike, rng( 1, 4 ) ); } else if( ter == t_window_enhanced_noglass ) { g->m.ter_set( pos, t_window_reinforced_noglass ); - g->m.spawn_item( p->pos(), "spike", rng( 1, 4 ) ); + g->m.spawn_item( p->pos(), itype_spike, rng( 1, 4 ) ); } else if( ter == t_reb_cage ) { g->m.ter_set( pos, t_pit ); - g->m.spawn_item( p->pos(), "spike", 19 ); - g->m.spawn_item( p->pos(), "scrap", 8 ); + g->m.spawn_item( p->pos(), itype_spike, 19 ); + g->m.spawn_item( p->pos(), itype_scrap, 8 ); } else if( ter == t_bars ) { if( g->m.ter( pos + point_east ) == t_sewage || g->m.ter( pos + point_south ) == t_sewage || g->m.ter( pos + point_west ) == t_sewage || g->m.ter( pos + point_north ) == t_sewage ) { g->m.ter_set( pos, t_sewage ); - g->m.spawn_item( p->pos(), "pipe", 3 ); + g->m.spawn_item( p->pos(), itype_pipe, 3 ); } else { g->m.ter_set( pos, t_floor ); - g->m.spawn_item( p->pos(), "pipe", 3 ); + g->m.spawn_item( p->pos(), itype_pipe, 3 ); } } else if( ter == t_door_bar_c || ter == t_door_bar_locked ) { g->m.ter_set( pos, t_mdoor_frame ); - g->m.spawn_item( p->pos(), "pipe", 12 ); + g->m.spawn_item( p->pos(), itype_pipe, 12 ); } p->mod_stored_nutr( 5 ); @@ -3967,8 +3814,8 @@ void activity_handlers::pry_nails_finish( player_activity *act, player *p ) p->add_msg_if_player( _( "You pry the boards from the door." ) ); } p->practice( skill_fabrication, 1, 1 ); - g->m.spawn_item( p->pos(), "nail", 0, nails ); - g->m.spawn_item( p->pos(), "2x4", boards ); + g->m.spawn_item( p->pos(), itype_nail, 0, nails ); + g->m.spawn_item( p->pos(), itype_2x4, boards ); g->m.ter_set( pnt, newter ); act->set_to_null(); } @@ -4056,17 +3903,17 @@ void activity_handlers::chop_logs_finish( player_activity *act, player *p ) splint_quan = 0; } for( int i = 0; i != log_quan; ++i ) { - item obj( "log", calendar::turn ); + item obj( itype_log, calendar::turn ); obj.set_var( "activity_var", p->name ); g->m.add_item_or_charges( pos, obj ); } for( int i = 0; i != stick_quan; ++i ) { - item obj( "stick_long", calendar::turn ); + item obj( itype_stick_long, calendar::turn ); obj.set_var( "activity_var", p->name ); g->m.add_item_or_charges( pos, obj ); } for( int i = 0; i != splint_quan; ++i ) { - item obj( "splinter", calendar::turn ); + item obj( itype_splinter, calendar::turn ); obj.set_var( "activity_var", p->name ); g->m.add_item_or_charges( pos, obj ); } @@ -4091,11 +3938,11 @@ void activity_handlers::chop_planks_finish( player_activity *act, player *p ) planks = std::min( planks, max_planks ); if( planks > 0 ) { - g->m.spawn_item( g->m.getlocal( act->placement ), "2x4", planks, 0, calendar::turn ); + g->m.spawn_item( g->m.getlocal( act->placement ), itype_2x4, planks, 0, calendar::turn ); p->add_msg_if_player( m_good, _( "You produce %d planks." ), planks ); } if( scraps > 0 ) { - g->m.spawn_item( g->m.getlocal( act->placement ), "splinter", scraps, 0, calendar::turn ); + g->m.spawn_item( g->m.getlocal( act->placement ), itype_splinter, scraps, 0, calendar::turn ); p->add_msg_if_player( m_good, _( "You produce %d splinters." ), scraps ); } if( planks < max_planks / 2 ) { @@ -4304,19 +4151,19 @@ void activity_handlers::fertilize_plot_do_turn( player_activity *act, player *p { act->str_values.push_back( "" ); } - fertilizer = act->str_values[0]; + fertilizer = itype_id( act->str_values[0] ); /* If unspecified, or if we're out of what we used before, ask */ - if( ask_user && ( fertilizer.empty() || !p->has_charges( fertilizer, 1 ) ) ) + if( ask_user && ( fertilizer.is_empty() || !p->has_charges( fertilizer, 1 ) ) ) { fertilizer = iexamine::choose_fertilizer( *p, "plant", false /* Don't confirm action with player */ ); - act->str_values[0] = fertilizer; + act->str_values[0] = fertilizer.str(); } }; auto have_fertilizer = [&]() { - return !fertilizer.empty() && p->has_charges( fertilizer, 1 ); + return !fertilizer.is_empty() && p->has_charges( fertilizer, 1 ); }; const auto reject_tile = [&]( const tripoint & tile ) { @@ -4487,8 +4334,8 @@ void activity_handlers::tree_communion_do_turn( player_activity *act, player *p static void blood_magic( player *p, int cost ) { - static std::array part = { { - bp_head, bp_torso, bp_arm_l, bp_arm_r, bp_leg_l, bp_leg_r + static std::array part = { { + bodypart_id( "head" ), bodypart_id( "torso" ), bodypart_id( "arm_l" ), bodypart_id( "arm_r" ), bodypart_id( "leg_l" ), bodypart_id( "leg_r" ) } }; int max_hp_part = 0; @@ -4533,15 +4380,16 @@ void activity_handlers::spellcasting_finish( player_activity *act, player *p ) // choose target for spell (if the spell has a range > 0) tripoint target = p->pos(); bool target_is_valid = false; - if( spell_being_cast.range() > 0 && !spell_being_cast.is_valid_target( target_none ) && - !spell_being_cast.has_flag( RANDOM_TARGET ) ) { + if( spell_being_cast.range() > 0 && !spell_being_cast.is_valid_target( spell_target::none ) && + !spell_being_cast.has_flag( spell_flag::RANDOM_TARGET ) ) { do { - std::vector trajectory = target_handler::mode_spell( *p, spell_being_cast, no_fail, + avatar &you = *p->as_avatar(); + std::vector trajectory = target_handler::mode_spell( you, spell_being_cast, no_fail, no_mana ); if( !trajectory.empty() ) { target = trajectory.back(); target_is_valid = spell_being_cast.is_valid_target( *p, target ); - if( !( spell_being_cast.is_valid_target( target_ground ) || p->sees( target ) ) ) { + if( !( spell_being_cast.is_valid_target( spell_target::ground ) || p->sees( target ) ) ) { target_is_valid = false; } } else { @@ -4553,7 +4401,7 @@ void activity_handlers::spellcasting_finish( player_activity *act, player *p ) } } } while( !target_is_valid ); - } else if( spell_being_cast.has_flag( RANDOM_TARGET ) ) { + } else if( spell_being_cast.has_flag( spell_flag::RANDOM_TARGET ) ) { const cata::optional target_ = spell_being_cast.random_valid_target( *p, p->pos() ); if( !target_ ) { p->add_msg_if_player( game_message_params{ m_bad, gmf_bypass_cooldown }, @@ -4591,22 +4439,22 @@ void activity_handlers::spellcasting_finish( player_activity *act, player *p ) // pay the cost int cost = spell_being_cast.energy_cost( *p ); switch( spell_being_cast.energy_source() ) { - case mana_energy: + case magic_energy_type::mana: p->magic.mod_mana( *p, -cost ); break; - case stamina_energy: + case magic_energy_type::stamina: p->mod_stamina( -cost ); break; - case bionic_energy: + case magic_energy_type::bionic: p->mod_power_level( -units::from_kilojoule( cost ) ); break; - case hp_energy: + case magic_energy_type::hp: blood_magic( p, cost ); break; - case fatigue_energy: + case magic_energy_type::fatigue: p->mod_fatigue( cost ); break; - case none_energy: + case magic_energy_type::none: default: break; } @@ -4625,8 +4473,8 @@ void activity_handlers::spellcasting_finish( player_activity *act, player *p ) spell_being_cast.xp() ); } if( spell_being_cast.get_level() != old_level ) { - g->events().send( spell_being_cast.id(), - spell_being_cast.get_level() ); + g->events().send( p->getID(), + spell_being_cast.id(), spell_being_cast.get_level() ); } } } @@ -4685,5 +4533,5 @@ void activity_handlers::mind_splicer_finish( player_activity *act, player *p ) p->add_msg_if_player( m_info, _( "…you finally find the memory banks." ) ); p->add_msg_if_player( m_info, _( "The kit makes a copy of the data inside the bionic." ) ); data_card.contents.clear_items(); - data_card.put_in( item( "mind_scan_robofac" ), item_pocket::pocket_type::SOFTWARE ); + data_card.put_in( item( itype_mind_scan_robofac ), item_pocket::pocket_type::SOFTWARE ); } diff --git a/src/activity_handlers.h b/src/activity_handlers.h index 66dddfd62d694..98f3f8af9325b 100644 --- a/src/activity_handlers.h +++ b/src/activity_handlers.h @@ -21,16 +21,16 @@ std::vector get_sorted_tiles_by_distance( const tripoint &abspos, const std::unordered_set &tiles ); std::vector route_adjacent( const player &p, const tripoint &dest ); -enum requirement_check_result : int { +enum class requirement_check_result : int { SKIP_LOCATION = 0, CAN_DO_LOCATION, RETURN_EARLY //another activity like a fetch activity has been started. }; -enum butcher_type : int { - BUTCHER, // quick butchery - BUTCHER_FULL, // full workshop butchery - F_DRESS, // field dressing a corpse +enum class butcher_type : int { + QUICK, // quick butchery + FULL, // full workshop butchery + FIELD_DRESS, // field dressing a corpse SKIN, // skinning a corpse QUARTER, // quarter a corpse DISMEMBER, // destroy a corpse @@ -60,6 +60,7 @@ enum class do_activity_reason : int { ALREADY_WORKING, // somebody is already working there NEEDS_VEH_DECONST, // There is a vehicle part there that we can deconstruct, given the right tools. NEEDS_VEH_REPAIR, // There is a vehicle part there that can be repaired, given the right tools. + WOULD_PREVENT_VEH_FLYING, // Attempting to perform this activity on a vehicle would prevent it from flying NEEDS_MINING, // This spot can be mined, if the right tool is present. NEEDS_FISHING // This spot can be fished, if the right tool is present. }; @@ -105,7 +106,7 @@ void activity_on_turn_wear( player_activity &act, player &p ); bool find_auto_consume( player &p, bool food ); void try_fuel_fire( player_activity &act, player &p, bool starting_fire = false ); -enum class item_drop_reason { +enum class item_drop_reason : int { deliberate, too_large, too_heavy, @@ -138,7 +139,6 @@ void vibe_do_turn( player_activity *act, player *p ); void hand_crank_do_turn( player_activity *act, player *p ); void multiple_chop_planks_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 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 ); @@ -173,7 +173,6 @@ void tidy_up_do_turn( player_activity *act, player *p ); void build_do_turn( player_activity *act, player *p ); void fill_pit_do_turn( player_activity *act, player *p ); void fertilize_plot_do_turn( player_activity *act, player *p ); -void try_sleep_do_turn( player_activity *act, player *p ); void operation_do_turn( player_activity *act, player *p ); void robot_control_do_turn( player_activity *act, player *p ); void tree_communion_do_turn( player_activity *act, player *p ); @@ -192,7 +191,6 @@ void butcher_finish( player_activity *act, player *p ); void firstaid_finish( player_activity *act, player *p ); void fish_finish( player_activity *act, player *p ); void forage_finish( player_activity *act, player *p ); -void hotwire_finish( player_activity *act, player *p ); void longsalvage_finish( player_activity *act, player *p ); void pulp_finish( player_activity *act, player *p ); void pickaxe_finish( player_activity *act, player *p ); @@ -207,7 +205,6 @@ void churn_finish( player_activity *act, player *p ); void plant_seed_finish( player_activity *act, player *p ); void oxytorch_finish( player_activity *act, player *p ); void cracking_finish( player_activity *act, player *p ); -void lockpicking_finish( player_activity *act, player *p ); void repair_item_finish( player_activity *act, player *p ); void mend_item_finish( player_activity *act, player *p ); void gunmod_add_finish( player_activity *act, player *p ); @@ -221,13 +218,11 @@ void wait_weather_finish( player_activity *act, player *p ); void wait_npc_finish( player_activity *act, player *p ); void wait_stamina_finish( player_activity *act, player *p ); void socialize_finish( player_activity *act, player *p ); -void try_sleep_finish( player_activity *act, player *p ); void operation_finish( player_activity *act, player *p ); void disassemble_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 ); void washing_finish( player_activity *act, player *p ); void hacksaw_finish( player_activity *act, player *p ); @@ -246,8 +241,6 @@ void mind_splicer_finish( player_activity *act, player *p ); void spellcasting_finish( player_activity *act, player *p ); void study_spell_finish( player_activity *act, player *p ); -void try_sleep_query( player_activity *act, player *p ); - // defined in activity_handlers.cpp extern const std::map< activity_id, std::function > finish_functions; diff --git a/src/activity_item_handling.cpp b/src/activity_item_handling.cpp index e5f6a1eff9170..31306d0826e80 100644 --- a/src/activity_item_handling.cpp +++ b/src/activity_item_handling.cpp @@ -91,10 +91,19 @@ static const activity_id ACT_VEHICLE_REPAIR( "ACT_VEHICLE_REPAIR" ); static const efftype_id effect_pet( "pet" ); static const efftype_id effect_nausea( "nausea" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_detergent( "detergent" ); +static const itype_id itype_log( "log" ); +static const itype_id itype_soap( "soap" ); +static const itype_id itype_soldering_iron( "soldering_iron" ); +static const itype_id itype_water( "water" ); +static const itype_id itype_water_clean( "water_clean" ); +static const itype_id itype_welder( "welder" ); + static const trap_str_id tr_firewood_source( "tr_firewood_source" ); static const trap_str_id tr_unfinished_construction( "tr_unfinished_construction" ); -static const zone_type_id zone_type_source_firewood( "SOURCE_FIREWOOD" ); +static const zone_type_id zone_type_SOURCE_FIREWOOD( "SOURCE_FIREWOOD" ); static const zone_type_id zone_type_CHOP_TREES( "CHOP_TREES" ); static const zone_type_id zone_type_CONSTRUCTION_BLUEPRINT( "CONSTRUCTION_BLUEPRINT" ); @@ -107,7 +116,7 @@ static const zone_type_id zone_type_LOOT_UNSORTED( "LOOT_UNSORTED" ); static const zone_type_id zone_type_LOOT_WOOD( "LOOT_WOOD" ); static const zone_type_id zone_type_VEHICLE_DECONSTRUCT( "VEHICLE_DECONSTRUCT" ); static const zone_type_id zone_type_VEHICLE_REPAIR( "VEHICLE_REPAIR" ); -static const zone_type_id z_camp_storage( "CAMP_STORAGE" ); +static const zone_type_id zone_type_CAMP_STORAGE( "CAMP_STORAGE" ); static const quality_id qual_AXE( "AXE" ); static const quality_id qual_BUTCHER( "BUTCHER" ); @@ -561,17 +570,17 @@ void activity_handlers::washing_finish( player_activity *act, player *p ) washing_requirements required = washing_requirements_for_volume( total_volume ); const auto is_liquid_crafting_component = []( const item & it ) { - return is_crafting_component( it ) && ( !it.count_by_charges() || it.made_of( LIQUID ) ); + return is_crafting_component( it ) && ( !it.count_by_charges() || it.made_of( phase_id::LIQUID ) ); }; const inventory &crafting_inv = p->crafting_inventory(); - if( !crafting_inv.has_charges( "water", required.water, is_liquid_crafting_component ) && - !crafting_inv.has_charges( "water_clean", required.water, is_liquid_crafting_component ) ) { + if( !crafting_inv.has_charges( itype_water, required.water, is_liquid_crafting_component ) && + !crafting_inv.has_charges( itype_water_clean, required.water, is_liquid_crafting_component ) ) { p->add_msg_if_player( _( "You need %1$i charges of water or clean water to wash these items." ), required.water ); act->set_to_null(); return; - } else if( !crafting_inv.has_charges( "soap", required.cleanser ) && - !crafting_inv.has_charges( "detergent", required.cleanser ) ) { + } else if( !crafting_inv.has_charges( itype_soap, required.cleanser ) && + !crafting_inv.has_charges( itype_detergent, required.cleanser ) ) { p->add_msg_if_player( _( "You need %1$i charges of cleansing agent to wash these items." ), required.cleanser ); act->set_to_null(); @@ -585,13 +594,13 @@ void activity_handlers::washing_finish( player_activity *act, player *p ) } std::vector comps; - comps.push_back( item_comp( "water", required.water ) ); - comps.push_back( item_comp( "water_clean", required.water ) ); + comps.push_back( item_comp( itype_water, required.water ) ); + comps.push_back( item_comp( itype_water_clean, required.water ) ); p->consume_items( comps, 1, is_liquid_crafting_component ); std::vector comps1; - comps1.push_back( item_comp( "soap", required.cleanser ) ); - comps1.push_back( item_comp( "detergent", required.cleanser ) ); + comps1.push_back( item_comp( itype_soap, required.cleanser ) ); + comps1.push_back( item_comp( itype_detergent, required.cleanser ) ); p->consume_items( comps1 ); p->add_msg_if_player( m_good, _( "You washed your items." ) ); @@ -691,7 +700,7 @@ static int move_cost_cart( const item &it, const tripoint &src, const tripoint & static int move_cost( const item &it, const tripoint &src, const tripoint &dest ) { - if( g->u.get_grab_type() == OBJECT_VEHICLE ) { + if( g->u.get_grab_type() == object_type::VEHICLE ) { tripoint cart_position = g->u.pos() + g->u.grab_point; if( const cata::optional vp = g->m.veh_at( @@ -729,8 +738,8 @@ static bool vehicle_activity( player &p, const tripoint &src_loc, int vpindex, c } } const vpart_info &vp = veh->part_info( vpindex ); - const vehicle_part part = veh->parts[ vpindex ]; if( type == 'r' ) { + const vehicle_part part = veh->parts[ vpindex ]; time_to_take = vp.repair_time( p ) * part.damage() / part.max_damage(); } else if( type == 'o' ) { time_to_take = vp.removal_time( p ); @@ -782,7 +791,7 @@ static void move_item( player &p, item &it, const int quantity, const tripoint & } // Check that we can pick it up. - if( !it.made_of_from_type( LIQUID ) ) { + if( !it.made_of_from_type( phase_id::LIQUID ) ) { p.mod_moves( -move_cost( it, src, dest ) ); if( activity_to_restore == ACT_TIDY_UP ) { it.erase_var( "activity_var" ); @@ -840,7 +849,7 @@ static activity_reason_info find_base_construction( const inventory &inv, const tripoint &loc, const cata::optional &part_con_idx, - const construction_id idx, + const construction_id &idx, std::set &used ) { const construction &build = idx.obj(); @@ -1017,7 +1026,7 @@ static bool are_requirements_nearby( const std::vector &loot_spots, } } for( const auto &elem2 : g->m.i_at( elem ) ) { - if( in_loot_zones && elem2.made_of_from_type( LIQUID ) ) { + if( in_loot_zones && elem2.made_of_from_type( phase_id::LIQUID ) ) { continue; } if( check_weight ) { @@ -1048,12 +1057,12 @@ static bool are_requirements_nearby( const std::vector &loot_spots, vehicle &veh = vp->vehicle(); const cata::optional weldpart = vp.part_with_feature( "WELDRIG", true ); if( weldpart ) { - item welder( "welder", 0 ); - welder.charges = veh.fuel_left( "battery", true ); + item welder( itype_welder, 0 ); + welder.charges = veh.fuel_left( itype_battery, true ); welder.item_tags.insert( "PSEUDO" ); temp_inv.add_item( welder ); - item soldering_iron( "soldering_iron", 0 ); - soldering_iron.charges = veh.fuel_left( "battery", true ); + item soldering_iron( itype_soldering_iron, 0 ); + soldering_iron.charges = veh.fuel_left( itype_battery, true ); soldering_iron.item_tags.insert( "PSEUDO" ); temp_inv.add_item( soldering_iron ); } @@ -1128,6 +1137,10 @@ static activity_reason_info can_do_activity_there( const activity_id &act, playe if( vpindex == -1 || !veh->can_unmount( vpindex ) ) { continue; } + // If removing this part would make the vehicle non-flyable, avoid it + if( veh->would_prevent_flyable( vpinfo ) ) { + return activity_reason_info::fail( do_activity_reason::WOULD_PREVENT_VEH_FLYING ); + } // this is the same part that somebody else wants to work on, or already is. if( std::find( already_working_indexes.begin(), already_working_indexes.end(), vpindex ) != already_working_indexes.end() ) { @@ -1174,6 +1187,10 @@ static activity_reason_info can_do_activity_there( const activity_id &act, playe part_elem->info().repair_requirements().is_empty() ) { continue; } + // If repairing this part would make the vehicle non-flyable, avoid it + if( veh->would_prevent_flyable( vpinfo ) ) { + return activity_reason_info::fail( do_activity_reason::WOULD_PREVENT_VEH_FLYING ); + } if( std::find( already_working_indexes.begin(), already_working_indexes.end(), vpindex ) != already_working_indexes.end() ) { continue; @@ -1245,7 +1262,7 @@ static activity_reason_info can_do_activity_there( const activity_id &act, playe // make sure nobody else is working on that corpse right now if( i.is_corpse() && !i.has_var( "activity_var" ) ) { const mtype corpse = *i.get_mtype(); - if( corpse.size >= MS_MEDIUM ) { + if( corpse.size >= creature_size::medium ) { big_count += 1; } else { small_count += 1; @@ -1285,7 +1302,7 @@ static activity_reason_info can_do_activity_there( const activity_id &act, playe if( act == ACT_MULTIPLE_CHOP_PLANKS ) { //are there even any logs there? for( auto &i : g->m.i_at( src_loc ) ) { - if( i.typeId() == "log" ) { + if( i.typeId() == itype_log ) { // do we have an axe? if( p.has_quality( qual_AXE, 1 ) ) { return activity_reason_info::ok( do_activity_reason::NEEDS_CHOPPING ); @@ -1298,7 +1315,7 @@ static activity_reason_info can_do_activity_there( const activity_id &act, playe } if( act == ACT_TIDY_UP ) { if( mgr.has_near( zone_type_LOOT_UNSORTED, g->m.getabs( src_loc ), distance ) || - mgr.has_near( z_camp_storage, g->m.getabs( src_loc ), distance ) ) { + mgr.has_near( zone_type_CAMP_STORAGE, g->m.getabs( src_loc ), distance ) ) { return activity_reason_info::ok( do_activity_reason::CAN_DO_FETCH ); } return activity_reason_info::fail( do_activity_reason::NO_ZONE ); @@ -1349,10 +1366,10 @@ static activity_reason_info can_do_activity_there( const activity_id &act, playe } else { // do we have the required seed on our person? const plot_options &options = dynamic_cast( zone.get_options() ); - const std::string seed = options.get_seed(); + const itype_id seed = options.get_seed(); // If its a farm zone with no specified seed, and we've checked for tilling and harvesting. // then it means no further work can be done here - if( seed.empty() ) { + if( seed.is_empty() ) { return activity_reason_info::fail( do_activity_reason::ALREADY_DONE ); } std::vector seed_inv = p.items_with( []( const item & itm ) { @@ -1391,7 +1408,7 @@ static void add_basecamp_storage_to_loot_zone_list( zone_manager &mgr, const tri { if( npc *const guy = dynamic_cast( &p ) ) { if( guy->assigned_camp && - mgr.has_near( z_camp_storage, g->m.getabs( src_loc ), ACTIVITY_SEARCH_DISTANCE ) ) { + mgr.has_near( zone_type_CAMP_STORAGE, g->m.getabs( src_loc ), ACTIVITY_SEARCH_DISTANCE ) ) { std::unordered_set bc_storage_set = mgr.get_near( zone_type_id( "CAMP_STORAGE" ), g->m.getabs( src_loc ), ACTIVITY_SEARCH_DISTANCE ); for( const tripoint &elem : bc_storage_set ) { @@ -1678,8 +1695,8 @@ static std::vector> requirements_map( player } } for( const std::tuple &elem : final_map ) { - add_msg( m_debug, "%s is fetching %s from x: %d y: %d ", p.disp_name(), std::get<1>( elem ), - std::get<0>( elem ).x, std::get<0>( elem ).y ); + add_msg( m_debug, "%s is fetching %s from x: %d y: %d ", p.disp_name(), + std::get<1>( elem ).str(), std::get<0>( elem ).x, std::get<0>( elem ).y ); } return final_map; } @@ -1698,7 +1715,6 @@ static bool construction_activity( player &p, const zone_data * /*zone*/, const // create the partial construction struct partial_con pc; pc.id = built_chosen.id; - pc.counter = 0; // Set the trap that has the examine function if( g->m.tr_at( src_loc ).loadid == tr_null ) { g->m.trap_set( src_loc, tr_unfinished_construction ); @@ -1837,10 +1853,10 @@ static bool fetch_activity( player &p, const tripoint &src_loc, leftovers.charges = 0; } it.set_var( "activity_var", p.name ); - const std::string item_name = it.tname(); p.i_add( it ); if( p.is_npc() ) { if( pickup_count == 1 ) { + const std::string item_name = it.tname(); add_msg( _( "%1$s picks up a %2$s." ), p.disp_name(), item_name ); } else { add_msg( _( "%s picks up several items." ), p.disp_name() ); @@ -1872,7 +1888,7 @@ static bool butcher_corpse_activity( player &p, const tripoint &src_loc, for( auto &elem : items ) { if( elem.is_corpse() && !elem.has_var( "activity_var" ) ) { const mtype corpse = *elem.get_mtype(); - if( corpse.size >= MS_MEDIUM && reason != do_activity_reason::NEEDS_BIG_BUTCHERING ) { + if( corpse.size >= creature_size::medium && reason != do_activity_reason::NEEDS_BIG_BUTCHERING ) { continue; } elem.set_var( "activity_var", p.name ); @@ -1895,7 +1911,7 @@ static bool chop_plank_activity( player &p, const tripoint &src_loc ) p.consume_charges( *best_qual, best_qual->type->charges_to_use() ); } for( auto &i : g->m.i_at( src_loc ) ) { - if( i.typeId() == "log" ) { + if( i.typeId() == itype_log ) { g->m.i_rem( src_loc, &i ); int moves = to_moves( 20_minutes ); p.add_msg_if_player( _( "You cut the log into planks." ) ); @@ -2075,7 +2091,7 @@ void activity_on_turn_move_loot( player_activity &act, player &p ) item &thisitem = *it->first; // skip unpickable liquid - if( thisitem.made_of_from_type( LIQUID ) ) { + if( thisitem.made_of_from_type( phase_id::LIQUID ) ) { continue; } @@ -2430,10 +2446,10 @@ static requirement_check_result generic_multi_activity_check_requirement( player // tidy up activity doesn't - it wants things that may not be in a zone already - things that may have been left lying around. if( needs_to_be_in_zone && !zone ) { can_do_it = false; - return SKIP_LOCATION; + return requirement_check_result::SKIP_LOCATION; } if( can_do_it ) { - return CAN_DO_LOCATION; + return requirement_check_result::CAN_DO_LOCATION; } if( reason == do_activity_reason::DONT_HAVE_SKILL || reason == do_activity_reason::NO_ZONE || @@ -2446,7 +2462,7 @@ static requirement_check_result generic_multi_activity_check_requirement( player } else if( reason == do_activity_reason::BLOCKING_TILE ) { p.add_msg_if_player( m_info, _( "There is something blocking the location for this task." ) ); } - return SKIP_LOCATION; + return requirement_check_result::SKIP_LOCATION; } else if( reason == do_activity_reason::NO_COMPONENTS || reason == do_activity_reason::NO_COMPONENTS_PREREQ || reason == do_activity_reason::NO_COMPONENTS_PREREQ_2 || @@ -2480,7 +2496,7 @@ static requirement_check_result generic_multi_activity_check_requirement( player act_id == ACT_MULTIPLE_CONSTRUCTION ) { if( !act_info.con_idx ) { debugmsg( "no construction selected" ); - return SKIP_LOCATION; + return requirement_check_result::SKIP_LOCATION; } // its a construction and we need the components. const construction &built_chosen = act_info.con_idx->obj(); @@ -2491,7 +2507,7 @@ static requirement_check_result generic_multi_activity_check_requirement( player // we already checked this in can_do_activity() but check again just incase. if( !veh ) { p.activity_vehicle_part_index = 1; - return SKIP_LOCATION; + return requirement_check_result::SKIP_LOCATION; } const vpart_info &vpinfo = veh->part_info( p.activity_vehicle_part_index ); requirement_data reqs; @@ -2561,7 +2577,7 @@ static requirement_check_result generic_multi_activity_check_requirement( player reason == do_activity_reason::NEEDS_VEH_REPAIR ) { p.activity_vehicle_part_index = -1; } - return SKIP_LOCATION; + return requirement_check_result::SKIP_LOCATION; } else { if( !check_only ) { p.backlog.push_front( act_id ); @@ -2588,17 +2604,17 @@ static requirement_check_result generic_multi_activity_check_requirement( player p.activity = player_activity(); p.backlog.clear(); check_npc_revert( p ); - return SKIP_LOCATION; + return requirement_check_result::SKIP_LOCATION; } act_prev.coords.push_back( g->m.getabs( candidates[std::max( 0, static_cast( candidates.size() / 2 ) )] ) ); } act_prev.placement = src; } - return RETURN_EARLY; + return requirement_check_result::RETURN_EARLY; } } - return SKIP_LOCATION; + return requirement_check_result::SKIP_LOCATION; } /** Do activity at this location */ @@ -2629,7 +2645,8 @@ static bool generic_multi_activity_do( player &p, const activity_id &act_id, std::vector zones = mgr.get_zones( zone_type_FARM_PLOT, g->m.getabs( src_loc ) ); for( const zone_data &zone : zones ) { - const std::string seed = dynamic_cast( zone.get_options() ).get_seed(); + const itype_id seed = + dynamic_cast( zone.get_options() ).get_seed(); std::vector seed_inv = p.items_with( [seed]( const item & itm ) { return itm.typeId() == itype_id( seed ); } ); @@ -2755,9 +2772,9 @@ bool generic_multi_activity_handler( player_activity &act, player &p, bool check // see activity_handlers.h enum for requirement_check_result const requirement_check_result req_res = generic_multi_activity_check_requirement( p, activity_to_restore, act_info, src, src_loc, src_set, check_only ); - if( req_res == SKIP_LOCATION ) { + if( req_res == requirement_check_result::SKIP_LOCATION ) { continue; - } else if( req_res == RETURN_EARLY ) { + } else if( req_res == requirement_check_result::RETURN_EARLY ) { return true; } @@ -2865,7 +2882,7 @@ static cata::optional find_refuel_spot_zone( const tripoint ¢er ) const tripoint center_abs = g->m.getabs( center ); const std::unordered_set &tiles_abs_unordered = - mgr.get_near( zone_type_source_firewood, center_abs, PICKUP_RANGE ); + mgr.get_near( zone_type_SOURCE_FIREWOOD, center_abs, PICKUP_RANGE ); const std::vector &tiles_abs = get_sorted_tiles_by_distance( center_abs, tiles_abs_unordered ); @@ -2950,7 +2967,7 @@ bool find_auto_consume( player &p, const bool food ) // not quenching enough continue; } - if( !food && it.is_watertight_container() && comest.made_of( SOLID ) ) { + if( !food && it.is_watertight_container() && comest.made_of( phase_id::SOLID ) ) { // its frozen continue; } @@ -3000,7 +3017,8 @@ void try_fuel_fire( player_activity &act, player &p, const bool starting_fire ) for( item &it : fuel_on_fire ) { it.simulate_burn( fd ); // Unconstrained fires grow below -50_minutes age - if( !contained && fire_age < -40_minutes && fd.fuel_produced > 1.0f && !it.made_of( LIQUID ) ) { + if( !contained && fire_age < -40_minutes && fd.fuel_produced > 1.0f && + !it.made_of( phase_id::LIQUID ) ) { // Too much - we don't want a firestorm! // Move item back to refueling pile // Note: move_item() handles messages (they're the generic "you drop x") @@ -3018,7 +3036,7 @@ void try_fuel_fire( player_activity &act, player &p, const bool starting_fire ) // We need to move fuel from stash to fire map_stack potential_fuel = g->m.i_at( *refuel_spot ); for( item &it : potential_fuel ) { - if( it.made_of( LIQUID ) ) { + if( it.made_of( phase_id::LIQUID ) ) { continue; } diff --git a/src/activity_type.cpp b/src/activity_type.cpp index ce3b17b4d0531..0e917fb69452e 100644 --- a/src/activity_type.cpp +++ b/src/activity_type.cpp @@ -55,6 +55,7 @@ void activity_type::load( const JsonObject &jo ) result.id_ = activity_id( jo.get_string( "id" ) ); assign( jo, "rooted", result.rooted_, true ); assign( jo, "verb", result.verb_, true ); + assign( jo, "interruptable", result.interruptable_, true ); assign( jo, "suspendable", result.suspendable_, true ); assign( jo, "no_resume", result.no_resume_, true ); assign( jo, "multi_activity", result.multi_activity_, false ); diff --git a/src/activity_type.h b/src/activity_type.h index f19b7b14db818..b38b8e557f5e9 100644 --- a/src/activity_type.h +++ b/src/activity_type.h @@ -32,6 +32,7 @@ class activity_type activity_id id_; bool rooted_ = false; translation verb_ = to_translation( "THIS IS A BUG" ); + bool interruptable_ = true; bool suspendable_ = true; based_on_type based_on_ = based_on_type::SPEED; bool no_resume_ = false; @@ -47,6 +48,9 @@ class activity_type bool rooted() const { return rooted_; } + bool interruptable() const { + return interruptable_; + } bool suspendable() const { return suspendable_; } diff --git a/src/advanced_inv.cpp b/src/advanced_inv.cpp index 2fce0eec3f702..cfd8a52b8cd70 100644 --- a/src/advanced_inv.cpp +++ b/src/advanced_inv.cpp @@ -77,16 +77,9 @@ enum aim_exit { // *INDENT-OFF* advanced_inventory::advanced_inventory() - : head_height( 5 ) - , min_w_height( 10 ) - , min_w_width( FULL_SCREEN_WIDTH ) - , max_w_width( get_option( "AIM_WIDTH" ) ? TERMX : std::max( 120, TERMX - 2 * ( panel_manager::get_manager().get_width_right() + panel_manager::get_manager().get_width_left() ) ) ) - , inCategoryMode( false ) - , recalc( true ) - , redraw( true ) + : recalc( true ) , src( left ) , dest( right ) - , filter_edit( false ) // panes don't need initialization, they are recalculated immediately , squares( { { @@ -120,12 +113,6 @@ advanced_inventory::~advanced_inventory() } // Only refresh if we exited manually, otherwise we're going to be right back if( exit ) { - werase( head ); - werase( minimap ); - werase( mm_border ); - werase( panes[left].window ); - werase( panes[right].window ); - g->refresh_all(); g->u.check_item_encumbrance_flag(); } } @@ -213,27 +200,6 @@ void advanced_inventory::init() src = ( save_state->active_left ) ? left : right; dest = ( save_state->active_left ) ? right : left; - - w_height = TERMY < min_w_height + head_height ? min_w_height : TERMY - head_height; - w_width = TERMX < min_w_width ? min_w_width : TERMX > max_w_width ? max_w_width : - static_cast( TERMX ); - - //(TERMY>w_height)?(TERMY-w_height)/2:0; - headstart = 0; - colstart = TERMX > w_width ? ( TERMX - w_width ) / 2 : 0; - - head = catacurses::newwin( head_height, w_width - minimap_width, point( colstart, headstart ) ); - mm_border = catacurses::newwin( minimap_height + 2, minimap_width + 2, - point( colstart + ( w_width - ( minimap_width + 2 ) ), headstart ) ); - minimap = catacurses::newwin( minimap_height, minimap_width, - point( colstart + ( w_width - ( minimap_width + 1 ) ), headstart + 1 ) ); - panes[left].window = catacurses::newwin( w_height, w_width / 2, point( colstart, - headstart + head_height ) ); - panes[right].window = catacurses::newwin( w_height, w_width / 2, point( colstart + w_width / 2, - headstart + head_height ) ); - - // 2 for the borders, 5 for the header stuff - itemsPerPage = w_height - 2 - 5; } void advanced_inventory::print_items( const advanced_inventory_pane &pane, bool active ) @@ -364,7 +330,7 @@ void advanced_inventory::print_items( const advanced_inventory_pane &pane, bool // TODO: transition to the item_location system used for the normal inventory unsigned int charges_total = 0; for( const auto item : sitem.items ) { - charges_total += item->charges; + charges_total += item->ammo_remaining(); } if( stolen ) { item_name = string_format( "%s %s", stolen_string, it.display_money( sitem.items.size(), @@ -655,10 +621,7 @@ void advanced_inventory::redraw_pane( side p ) auto &pane = panes[p]; if( recalc || pane.recalc ) { recalc_pane( p ); - } else if( !( redraw || pane.redraw ) ) { - return; } - pane.redraw = false; pane.fix_index(); const bool active = p == src; @@ -708,7 +671,6 @@ void advanced_inventory::redraw_pane( side p ) } std::string fprefix = string_format( _( "[%s] Filter" ), ctxt.get_desc( "FILTER" ) ); - std::string fsuffix = string_format( _( "[%s] Reset" ), ctxt.get_desc( "RESET_FILTER" ) ); if( !filter_edit ) { if( !pane.filter.empty() ) { mvwprintw( w, point( 2, getmaxy( w ) - 1 ), "< %s: %s >", fprefix, pane.filter ); @@ -720,12 +682,13 @@ void advanced_inventory::redraw_pane( side p ) wattroff( w, c_white ); } if( !filter_edit && !pane.filter.empty() ) { + std::string fsuffix = string_format( _( "[%s] Reset" ), ctxt.get_desc( "RESET_FILTER" ) ); mvwprintz( w, point( 6 + utf8_width( fprefix ), getmaxy( w ) - 1 ), c_white, pane.filter ); mvwprintz( w, point( getmaxx( w ) - utf8_width( fsuffix ) - 2, getmaxy( w ) - 1 ), c_white, "%s", fsuffix ); } - wrefresh( w ); + wnoutrefresh( w ); } // be explicit with the values @@ -821,7 +784,7 @@ bool advanced_inventory::move_all_items( bool nested_call ) size_t liquid_items = 0; for( const advanced_inv_listitem &elem : spane.items ) { for( const item *elemit : elem.items ) { - if( elemit->made_of_from_type( LIQUID ) && !elemit->is_frozen_liquid() ) { + if( elemit->made_of_from_type( phase_id::LIQUID ) && !elemit->is_frozen_liquid() ) { liquid_items++; } } @@ -919,9 +882,9 @@ bool advanced_inventory::move_all_items( bool nested_call ) g->u.drop( dropped, g->u.pos() + darea.off ); } else { if( dpane.get_area() == AIM_INVENTORY || dpane.get_area() == AIM_WORN ) { - g->u.assign_activity( activity_id( "ACT_PICKUP" ) ); g->u.activity.coords.push_back( g->u.pos() ); - + std::vector target_items; + std::vector quantities; item_stack::iterator stack_begin, stack_end; if( panes[src].in_vehicle() ) { vehicle_stack targets = sarea.veh->get_items( sarea.vstor ); @@ -947,17 +910,22 @@ bool advanced_inventory::move_all_items( bool nested_call ) continue; } if( spane.in_vehicle() ) { - g->u.activity.targets.emplace_back( vehicle_cursor( *sarea.veh, sarea.vstor ), &*it ); + target_items.emplace_back( vehicle_cursor( *sarea.veh, sarea.vstor ), &*it ); } else { - g->u.activity.targets.emplace_back( map_cursor( sarea.pos ), &*it ); + target_items.emplace_back( map_cursor( sarea.pos ), &*it ); } // quantity of 0 means move all - g->u.activity.values.push_back( 0 ); + quantities.push_back( 0 ); } if( filtered_any_bucket ) { add_msg( m_info, _( "Skipping filled buckets to avoid spilling their contents." ) ); } + g->u.assign_activity( player_activity( pickup_activity_actor( + target_items, + quantities, + cata::optional( g->u.pos() ) + ) ) ); } else { // Vehicle and map destinations are handled the same. @@ -1102,7 +1070,7 @@ void advanced_inventory::redraw_sidebar() input_context ctxt( "ADVANCED_INVENTORY" ); ctxt.register_action( "HELP_KEYBINDINGS" ); - if( redraw && !is_processing() ) { + if( !is_processing() ) { werase( head ); werase( minimap ); werase( mm_border ); @@ -1116,10 +1084,9 @@ void advanced_inventory::redraw_sidebar() const std::string time = to_string_time_of_day( calendar::turn ); mvwprintz( head, point( 2, 0 ), c_white, time ); } - wrefresh( head ); + wnoutrefresh( head ); refresh_minimap(); } - redraw = false; } void advanced_inventory::change_square( const aim_location changeSquare, @@ -1140,7 +1107,6 @@ void advanced_inventory::change_square( const aim_location changeSquare, } else { swap_panes(); } - redraw = true; // we need to check the original area if we can place items in vehicle storage } else if( squares[changeSquare].canputitems( spane.get_cur_item_ptr() ) ) { bool in_vehicle_cargo = false; @@ -1169,11 +1135,8 @@ void advanced_inventory::change_square( const aim_location changeSquare, if( dpane.get_area() == AIM_ALL ) { dpane.recalc = true; } - redraw = true; } else { popup( _( "You can't put items there!" ) ); - // to clear the popup - redraw = true; } } @@ -1279,8 +1242,6 @@ bool advanced_inventory::action_move_item( advanced_inv_listitem *sitem, spane.get_area() != AIM_ALL && spane.in_vehicle() == dpane.in_vehicle() ) { popup( _( "Source area is the same as destination (%s)." ), squares[destarea].name ); - // popup has messed up the screen - redraw = true; return false; } assert( !sitem->items.empty() ); @@ -1297,7 +1258,6 @@ bool advanced_inventory::action_move_item( advanced_inv_listitem *sitem, if( destarea == AIM_CONTAINER ) { if( !move_content( *sitem->items.front(), *squares[destarea].get_container( to_vehicle ) ) ) { - redraw = true; return false; } } else if( srcarea == AIM_INVENTORY && destarea == AIM_WORN ) { @@ -1329,7 +1289,7 @@ bool advanced_inventory::action_move_item( advanced_inv_listitem *sitem, exit = true; } else { // important if item is worn - if( g->u.can_unwield( g->u.i_at( idx ) ).success() ) { + if( g->u.can_unwield( *sitem->items.front() ).success() ) { g->u.assign_activity( ACT_DROP ); g->u.activity.placement = squares[destarea].off; @@ -1338,7 +1298,7 @@ bool advanced_inventory::action_move_item( advanced_inv_listitem *sitem, g->u.activity.str_values.push_back( "force_ground" ); } - g->u.activity.targets.push_back( item_location( g->u, &g->u.i_at( idx ) ) ); + g->u.activity.targets.push_back( item_location( g->u, sitem->items.front() ) ); g->u.activity.values.push_back( amount_to_move ); // exit so that the activity can be carried out @@ -1370,12 +1330,14 @@ void advanced_inventory::action_examine( advanced_inv_listitem *sitem, advanced_inventory_pane &spane ) { int ret = 0; - const int info_width = w_width / 2; - const int info_startx = colstart + ( src == advanced_inventory::side::left ? info_width : 0 ); + const auto info_width = [this]() -> int { + return w_width / 2; + }; + const auto info_startx = [this]() -> int { + return colstart + ( src == advanced_inventory::side::left ? w_width / 2 : 0 ); + }; if( spane.get_area() == AIM_INVENTORY || spane.get_area() == AIM_WORN ) { - int idx = spane.get_area() == AIM_INVENTORY ? sitem->idx : - player::worn_position_to_index( sitem->idx ); - item_location loc( g->u, &g->u.i_at( idx ) ); + item_location loc( g->u, sitem->items.front() ); // Setup a "return to AIM" activity. If examining the item creates a new activity // (e.g. reading, reloading, activating), the new activity will be put on top of // "return to AIM". Once the new activity is finished, "return to AIM" comes back @@ -1405,15 +1367,15 @@ void advanced_inventory::action_examine( advanced_inv_listitem *sitem, item_info_data data( it.tname(), it.type_name(), vThisItem, vDummy ); data.handle_scrolling = true; - ret = draw_item_info( info_startx, info_width, 0, 0, data ).get_first_input(); + ret = draw_item_info( [&]() -> catacurses::window { + return catacurses::newwin( 0, info_width(), point( info_startx(), 0 ) ); + }, data ).get_first_input(); } if( ret == KEY_NPAGE || ret == KEY_DOWN ) { spane.scroll_by( +1 ); } else if( ret == KEY_PPAGE || ret == KEY_UP ) { spane.scroll_by( -1 ); } - // item info window overwrote the other pane and the header - redraw = true; } void advanced_inventory::display() @@ -1426,10 +1388,61 @@ void advanced_inventory::display() exit = false; recalc = true; - redraw = true; - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + std::unique_ptr spopup; + std::unique_ptr ui; + if( !is_processing() ) { + ui = std::make_unique(); + ui->on_screen_resize( [&]( ui_adaptor & ui ) { + constexpr int min_w_height = 10; + const int min_w_width = FULL_SCREEN_WIDTH; + const int max_w_width = get_option( "AIM_WIDTH" ) ? TERMX : std::max( 120, + TERMX - 2 * ( panel_manager::get_manager().get_width_right() + + panel_manager::get_manager().get_width_left() ) ); + + w_height = TERMY < min_w_height + head_height ? min_w_height : TERMY - head_height; + w_width = TERMX < min_w_width ? min_w_width : TERMX > max_w_width ? max_w_width : + static_cast( TERMX ); + + //(TERMY>w_height)?(TERMY-w_height)/2:0; + headstart = 0; + colstart = TERMX > w_width ? ( TERMX - w_width ) / 2 : 0; + + head = catacurses::newwin( head_height, w_width - minimap_width, point( colstart, headstart ) ); + mm_border = catacurses::newwin( minimap_height + 2, minimap_width + 2, + point( colstart + ( w_width - ( minimap_width + 2 ) ), headstart ) ); + minimap = catacurses::newwin( minimap_height, minimap_width, + point( colstart + ( w_width - ( minimap_width + 1 ) ), headstart + 1 ) ); + panes[left].window = catacurses::newwin( w_height, w_width / 2, point( colstart, + headstart + head_height ) ); + panes[right].window = catacurses::newwin( w_height, w_width / 2, point( colstart + w_width / 2, + headstart + head_height ) ); + + // 2 for the borders, 5 for the header stuff + itemsPerPage = w_height - 2 - 5; + + if( filter_edit && spopup ) { + spopup->window( panes[src].window, point( 4, w_height - 1 ), w_width / 2 - 4 ); + } + + ui.position( point( colstart, headstart ), point( w_width, head_height + w_height ) ); + } ); + ui->mark_resize(); + + ui->on_redraw( [&]( const ui_adaptor & ) { + redraw_pane( advanced_inventory::side::left ); + redraw_pane( advanced_inventory::side::right ); + redraw_sidebar(); + + if( filter_edit && spopup ) { + draw_item_filter_rules( panes[dest].window, 1, 11, item_filter_type::FILTER ); + mvwprintz( panes[src].window, point( 2, getmaxy( panes[src].window ) - 1 ), c_cyan, "< " ); + mvwprintz( panes[src].window, point( w_width / 2 - 4, getmaxy( panes[src].window ) - 1 ), c_cyan, + " >" ); + spopup->query_string( /*loop=*/false, /*draw_only=*/true ); + } + } ); + } while( !exit ) { if( g->u.moves < 0 ) { @@ -1439,9 +1452,9 @@ void advanced_inventory::display() dest = src == advanced_inventory::side::left ? advanced_inventory::side::right : advanced_inventory::side::left; - redraw_pane( advanced_inventory::side::left ); - redraw_pane( advanced_inventory::side::right ); - redraw_sidebar(); + if( ui ) { + ui_manager::redraw(); + } recalc = false; // source and destination pane @@ -1454,10 +1467,6 @@ void advanced_inventory::display() const std::string action = is_processing() ? "MOVE_ALL_ITEMS" : ctxt.handle_input(); if( action == "CATEGORY_SELECTION" ) { inCategoryMode = !inCategoryMode; - // We redraw to force the color change of the highlighted line and header text. - spane.redraw = true; - } else if( action == "HELP_KEYBINDINGS" ) { - redraw = true; } else if( action == "ITEMS_DEFAULT" ) { for( side cside : { left, right @@ -1470,12 +1479,10 @@ void advanced_inventory::display() } pane.set_area( squares[location] ); } - redraw = true; } else if( action == "SAVE_DEFAULT" ) { save_state->saved_area = panes[left].get_area(); save_state->saved_area_right = panes[right].get_area(); popup( _( "Default layout was saved." ) ); - redraw = true; } else if( get_square( action, changeSquare ) ) { change_square( changeSquare, dpane, spane ); } else if( action == "TOGGLE_FAVORITE" ) { @@ -1487,7 +1494,6 @@ void advanced_inventory::display() } // In case we've merged faved and unfaved items recalc = true; - redraw = true; } else if( action == "MOVE_SINGLE_ITEM" || action == "MOVE_VARIABLE_ITEM" || action == "MOVE_ITEM_STACK" ) { @@ -1499,35 +1505,31 @@ void advanced_inventory::display() if( show_sort_menu( spane ) ) { recalc = true; } - redraw = true; } else if( action == "FILTER" ) { - string_input_popup spopup; std::string filter = spane.filter; filter_edit = true; - spopup.window( spane.window, point( 4, w_height - 1 ), w_width / 2 - 4 ) - .max_length( 256 ) - .text( filter ); - - draw_item_filter_rules( dpane.window, 1, 11, item_filter_type::FILTER ); + if( ui ) { + spopup = std::make_unique(); + spopup->max_length( 256 ).text( filter ); + ui->mark_resize(); + } ime_sentry sentry; do { - mvwprintz( spane.window, point( 2, getmaxy( spane.window ) - 1 ), c_cyan, "< " ); - mvwprintz( spane.window, point( w_width / 2 - 4, getmaxy( spane.window ) - 1 ), c_cyan, " >" ); - std::string new_filter = spopup.query_string( false ); - if( spopup.context().get_raw_input().get_first_input() == KEY_ESCAPE ) { + if( ui ) { + ui_manager::redraw(); + } + std::string new_filter = spopup->query_string( false ); + if( spopup->canceled() ) { // restore original filter spane.set_filter( filter ); } else { spane.set_filter( new_filter ); } - redraw_pane( src ); - } while( spopup.context().get_raw_input().get_first_input() != '\n' && - spopup.context().get_raw_input().get_first_input() != KEY_ESCAPE ); + } while( !spopup->canceled() && !spopup->confirmed() ); filter_edit = false; - spane.redraw = true; - dpane.redraw = true; + spopup = nullptr; } else if( action == "RESET_FILTER" ) { spane.set_filter( "" ); } else if( action == "TOGGLE_AUTO_PICKUP" ) { @@ -1567,13 +1569,10 @@ void advanced_inventory::display() } } else if( action == "LEFT" ) { src = left; - redraw = true; } else if( action == "RIGHT" ) { src = right; - redraw = true; } else if( action == "TOGGLE_TAB" ) { src = dest; - redraw = true; } else if( action == "TOGGLE_VEH" ) { if( squares[spane.get_area()].can_store_in_vehicle() ) { // swap the panes if going vehicle will show the same tile @@ -1588,12 +1587,9 @@ void advanced_inventory::display() if( dpane.get_area() == AIM_ALL ) { dpane.recalc = true; } - // make sure to update the minimap as well! - redraw = true; } } else { popup( _( "No vehicle storage space there!" ) ); - redraw = true; } } } @@ -1637,7 +1633,7 @@ void query_destination_callback::draw_squares( const uilist *menu ) wprintz( menu->window, kcolor, "%s", key ); wprintz( menu->window, bcolor, "%c", bracket[1] ); } - wrefresh( menu->window ); + wnoutrefresh( menu->window ); } bool advanced_inventory::query_destination( aim_location &def ) @@ -1647,8 +1643,6 @@ bool advanced_inventory::query_destination( aim_location &def ) return true; } popup( _( "You can't put items there!" ) ); - // the popup has messed the screen up. - redraw = true; return false; } @@ -1681,14 +1675,7 @@ bool advanced_inventory::query_destination( aim_location &def ) } // Selected keyed to uilist.entries, which starts at 0. menu.selected = save_state->last_popup_dest - AIM_SOUTHWEST; - // generate and show window. - menu.show(); - // query, but don't loop - while( menu.ret == UILIST_WAIT_INPUT ) { - menu.query( false ); - } - // the menu has messed the screen up. - redraw = true; + menu.query(); if( menu.ret >= AIM_SOUTHWEST && menu.ret <= AIM_NORTHEAST ) { assert( squares[menu.ret].canputitems() ); def = static_cast( menu.ret ); @@ -1714,7 +1701,7 @@ bool advanced_inventory::move_content( item &src_container, item &dest_container item &src_contents = src_container.contents.legacy_front(); - if( !src_contents.made_of( LIQUID ) ) { + if( !src_contents.made_of( phase_id::LIQUID ) ) { popup( _( "You can unload only liquids into target container." ) ); return false; } @@ -1754,9 +1741,8 @@ bool advanced_inventory::query_charges( aim_location destarea, const advanced_in amount = input_amount; // Includes moving from/to inventory and around on the map. - if( it.made_of_from_type( LIQUID ) && !it.is_frozen_liquid() ) { + if( it.made_of_from_type( phase_id::LIQUID ) && !it.is_frozen_liquid() ) { popup( _( "You can't pick up a liquid." ) ); - redraw = true; return false; } @@ -1765,7 +1751,6 @@ bool advanced_inventory::query_charges( aim_location destarea, const advanced_in if( amount > room_for && squares[destarea].id != AIM_WORN ) { if( room_for <= 0 ) { popup( _( "Destination area is full. Remove some items first." ) ); - redraw = true; return false; } amount = std::min( room_for, amount ); @@ -1782,7 +1767,6 @@ bool advanced_inventory::query_charges( aim_location destarea, const advanced_in } ); if( cntmax <= 0 && !adds0 ) { popup( _( "Destination area has too many items. Remove some first." ) ); - redraw = true; return false; } // Items by charge count as a single item, regardless of the charges. As long as the @@ -1800,7 +1784,6 @@ bool advanced_inventory::query_charges( aim_location destarea, const advanced_in const int weightmax = max_weight / unitweight; if( weightmax <= 0 ) { popup( _( "This is too heavy!" ) ); - redraw = true; return false; } amount = std::min( weightmax, amount ); @@ -1838,7 +1821,6 @@ bool advanced_inventory::query_charges( aim_location destarea, const advanced_in .query_int(); } if( amount <= 0 ) { - redraw = true; return false; } if( amount > possible_max ) { @@ -1862,8 +1844,8 @@ void advanced_inventory::refresh_minimap() mvwprintz( mm_border, point( 1, 0 ), c_light_gray, utf8_truncate( _( "All" ), minimap_width ) ); } // refresh border, then minimap - wrefresh( mm_border ); - wrefresh( minimap ); + wnoutrefresh( mm_border ); + wnoutrefresh( minimap ); } void advanced_inventory::draw_minimap() @@ -1943,7 +1925,6 @@ void advanced_inventory::swap_panes() std::swap( panes[left].window, panes[right].window ); // Recalculation required for weight & volume recalc = true; - redraw = true; } void advanced_inventory::do_return_entry() diff --git a/src/advanced_inv.h b/src/advanced_inv.h index 5319f01eeeeff..d68ee83f2377d 100644 --- a/src/advanced_inv.h +++ b/src/advanced_inv.h @@ -57,10 +57,7 @@ class advanced_inventory right = 1, NUM_PANES = 2 }; - const int head_height = 0; - const int min_w_height = 0; - const int min_w_width = 0; - const int max_w_width = 0; + static constexpr int head_height = 5; // swap the panes and windows via std::swap() void swap_panes(); @@ -84,7 +81,6 @@ class advanced_inventory int colstart = 0; bool recalc = false; - bool redraw = false; /** * Which panels is active (item moved from there). */ diff --git a/src/advanced_inv_area.cpp b/src/advanced_inv_area.cpp index 9756d74b6002b..1f1610781242c 100644 --- a/src/advanced_inv_area.cpp +++ b/src/advanced_inv_area.cpp @@ -52,8 +52,8 @@ advanced_inv_area::advanced_inv_area( aim_location id, const point &h, tripoint aim_location relative_location ) : id( id ), hscreen( h ), off( off ), name( name ), shortname( shortname ), - canputitemsloc( false ), veh( nullptr ), vstor( -1 ), volume( 0_ml ), - weight( 0_gram ), max_size( 0 ), minimapname( minimapname ), actionname( actionname ), + vstor( -1 ), volume( 0_ml ), + weight( 0_gram ), minimapname( minimapname ), actionname( actionname ), relative_location( relative_location ) { } @@ -73,7 +73,7 @@ void advanced_inv_area::init() canputitemsloc = true; break; case AIM_DRAGGED: - if( g->u.get_grab_type() != OBJECT_VEHICLE ) { + if( g->u.get_grab_type() != object_type::VEHICLE ) { canputitemsloc = false; desc[0] = _( "Not dragging any vehicle!" ); break; @@ -329,14 +329,14 @@ void advanced_inv_area::set_container( const advanced_inv_listitem *advitem ) uistate.adv_inv_container_index = advitem->idx; uistate.adv_inv_container_type = it->typeId(); uistate.adv_inv_container_content_type = !it->is_container_empty() ? - it->contents.legacy_front().typeId() : "null"; + it->contents.legacy_front().typeId() : itype_id::NULL_ID(); set_container_position(); } else { uistate.adv_inv_container_location = -1; uistate.adv_inv_container_index = 0; uistate.adv_inv_container_in_vehicle = false; - uistate.adv_inv_container_type = "null"; - uistate.adv_inv_container_content_type = "null"; + uistate.adv_inv_container_type = itype_id::NULL_ID(); + uistate.adv_inv_container_content_type = itype_id::NULL_ID(); } } @@ -345,7 +345,7 @@ bool advanced_inv_area::is_container_valid( const item *it ) const if( it != nullptr ) { if( it->typeId() == uistate.adv_inv_container_type ) { if( it->is_container_empty() ) { - if( uistate.adv_inv_container_content_type == "null" ) { + if( uistate.adv_inv_container_content_type.is_null() ) { return true; } } else { diff --git a/src/advanced_inv_listitem.cpp b/src/advanced_inv_listitem.cpp index ab8ceb0a99b19..ebdc5f7939486 100644 --- a/src/advanced_inv_listitem.cpp +++ b/src/advanced_inv_listitem.cpp @@ -42,22 +42,16 @@ advanced_inv_listitem::advanced_inv_listitem( const std::list &list, int } advanced_inv_listitem::advanced_inv_listitem() - : idx() - , area() + : area() , id( "null" ) - , autopickup() - , stacks() , cat( nullptr ) { } advanced_inv_listitem::advanced_inv_listitem( const item_category *cat ) - : idx() - , area() + : area() , id( "null" ) , name( cat->name() ) - , autopickup() - , stacks() , cat( cat ) { } diff --git a/src/advanced_inv_listitem.h b/src/advanced_inv_listitem.h index 856d6004affd6..a815fe839d276 100644 --- a/src/advanced_inv_listitem.h +++ b/src/advanced_inv_listitem.h @@ -5,6 +5,7 @@ #include #include +#include "type_id.h" #include "units.h" // see item_factory.h @@ -21,7 +22,6 @@ enum aim_location : char; class advanced_inv_listitem { public: - using itype_id = std::string; /** * Index of the item in the itemstack. */ diff --git a/src/advanced_inv_pane.cpp b/src/advanced_inv_pane.cpp index c96ca5981080c..c09d7bfbb4c96 100644 --- a/src/advanced_inv_pane.cpp +++ b/src/advanced_inv_pane.cpp @@ -112,30 +112,23 @@ std::vector avatar::get_AIM_inventory( const advanced_inv advanced_inv_area &square ) { std::vector items; - if( has_weapon() && !weapon.contents.empty() ) { - for( std::list it_stack : item_list_to_stack( weapon.contents.all_items_top() ) ) { - advanced_inv_listitem adv_it( it_stack, -1, square.id, false ); - if( !pane.is_filtered( *adv_it.items.front() ) ) { - square.volume += adv_it.volume; - square.weight += adv_it.weight; - items.push_back( adv_it ); - } - } - } + size_t item_index = 0; int worn_index = -2; for( item &worn_item : worn ) { if( worn_item.contents.empty() ) { continue; } - for( std::list it_stack : item_list_to_stack( worn_item.contents.all_items_top() ) ) { - advanced_inv_listitem adv_it( it_stack, worn_index--, square.id, false ); + for( const std::list &it_stack : item_list_to_stack( + worn_item.contents.all_items_top() ) ) { + advanced_inv_listitem adv_it( it_stack, item_index++, square.id, false ); if( !pane.is_filtered( *adv_it.items.front() ) ) { square.volume += adv_it.volume; square.weight += adv_it.weight; items.push_back( adv_it ); } } + worn_index--; } return items; @@ -273,7 +266,6 @@ void advanced_inventory_pane::scroll_by( int offset ) } mod_index( offset ); skip_category_headers( offset > 0 ? +1 : -1 ); - redraw = true; } void advanced_inventory_pane::scroll_category( int offset ) @@ -309,7 +301,6 @@ void advanced_inventory_pane::scroll_category( int offset ) } // Make sure we land on an item entry. skip_category_headers( offset > 0 ? +1 : -1 ); - redraw = true; } advanced_inv_listitem *advanced_inventory_pane::get_cur_item_ptr() diff --git a/src/advanced_inv_pane.h b/src/advanced_inv_pane.h index 1473e8f622018..e92c3f1ee0ca9 100644 --- a/src/advanced_inv_pane.h +++ b/src/advanced_inv_pane.h @@ -80,13 +80,8 @@ class advanced_inventory_pane std::string filter; /** * Whether to recalculate the content of this pane. - * Implies @ref redraw. */ bool recalc = false; - /** - * Whether to redraw this pane. - */ - bool redraw = false; void add_items_from_area( advanced_inv_area &square, bool vehicle_override = false ); /** @@ -103,7 +98,7 @@ class advanced_inventory_pane */ bool is_filtered( const item &it ) const; /** - * Scroll @ref index, by given offset, set redraw to true, + * Scroll @ref index, by given offset, * @param offset Must not be 0. */ void scroll_by( int offset ); diff --git a/src/ammo.cpp b/src/ammo.cpp index a8d55091c4601..8ce5c34df0987 100644 --- a/src/ammo.cpp +++ b/src/ammo.cpp @@ -9,6 +9,8 @@ #include "string_id.h" #include "type_id.h" +static const itype_id itype_UPS( "UPS" ); + namespace { using ammo_map_t = std::unordered_map; @@ -24,7 +26,7 @@ void ammunition_type::load_ammunition_type( const JsonObject &jsobj ) { ammunition_type &res = all_ammunition_types()[ ammotype( jsobj.get_string( "id" ) ) ]; res.name_ = jsobj.get_string( "name" ); - res.default_ammotype_ = jsobj.get_string( "default" ); + jsobj.read( "default", res.default_ammotype_, true ); } /** @relates string_id */ @@ -64,11 +66,11 @@ void ammunition_type::check_consistency() const auto &at = ammo.second.default_ammotype_; // TODO: these ammo types should probably not have default ammo at all. - if( at == "UPS" || at == "components" || at == "thrown" ) { + if( at == itype_UPS || at.str() == "components" || at.str() == "thrown" ) { continue; } - if( !at.empty() && !item::type_is_defined( at ) ) { + if( !at.is_empty() && !item::type_is_defined( at ) ) { debugmsg( "ammo type %s has invalid default ammo %s", id.c_str(), at.c_str() ); } } diff --git a/src/ammo.h b/src/ammo.h index f159354b07730..6adbc6a3583f4 100644 --- a/src/ammo.h +++ b/src/ammo.h @@ -5,9 +5,9 @@ #include #include -class JsonObject; +#include"type_id.h" -using itype_id = std::string; +class JsonObject; class ammunition_type { diff --git a/src/anatomy.cpp b/src/anatomy.cpp index dfcbd1d485ea9..ca87fcc310c38 100644 --- a/src/anatomy.cpp +++ b/src/anatomy.cpp @@ -17,7 +17,7 @@ #include "type_id.h" #include "weighted_list.h" -anatomy_id human_anatomy( "human_anatomy" ); +static const anatomy_id anatomy_human_anatomy( "human_anatomy" ); namespace { @@ -82,7 +82,7 @@ void anatomy::finalize() void anatomy::check_consistency() { anatomy_factory.check(); - if( !human_anatomy.is_valid() ) { + if( !anatomy_human_anatomy.is_valid() ) { debugmsg( "Could not load human anatomy, expect crash" ); } } diff --git a/src/anatomy.h b/src/anatomy.h index 8ae661ee32157..8350b32fff62b 100644 --- a/src/anatomy.h +++ b/src/anatomy.h @@ -57,6 +57,4 @@ class anatomy static void check_consistency(); }; -extern anatomy_id human_anatomy; - #endif // CATA_SRC_ANATOMY_H diff --git a/src/animation.cpp b/src/animation.cpp index 54d9c6ab732e8..414aaeda1d504 100644 --- a/src/animation.cpp +++ b/src/animation.cpp @@ -18,6 +18,7 @@ #include "type_id.h" #include "explosion.h" #include "point.h" +#include "ui_manager.h" #if defined(TILES) #include @@ -44,15 +45,13 @@ class basic_animation } void draw() const { - wrefresh( g->w_terrain ); - g->draw_panels(); - - query_popup() + static_popup popup; + popup .wait_message( "%s", _( "Hang on a bit…" ) ) - .on_top( true ) - .show(); + .on_top( true ); - catacurses::refresh(); + g->invalidate_main_ui_adaptor(); + ui_manager::redraw_invalidated(); refresh_display(); } @@ -118,7 +117,7 @@ tripoint relative_view_pos( const game &g, const tripoint &p ) noexcept return p - g.ter_view_p + point( POSX, POSY ); } -void draw_explosion_curses( const game &g, const tripoint ¢er, const int r, +void draw_explosion_curses( game &g, const tripoint ¢er, const int r, const nc_color &col ) { if( !is_radius_visible( center, r ) ) { @@ -127,33 +126,39 @@ void draw_explosion_curses( const game &g, const tripoint ¢er, const int r, // TODO: Make it look different from above/below const tripoint p = relative_view_pos( g.u, center ); - // TODO: why not always print '*'? - if( r == 0 ) { - mvwputch( g.w_terrain, point( p.y, p.x ), col, '*' ); - } - explosion_animation anim; - for( int i = 1; i <= r; ++i ) { - // corner: top left - mvwputch( g.w_terrain, p.xy() + point( -i, -i ), col, '/' ); - // corner: top right - mvwputch( g.w_terrain, p.xy() + point( i, -i ), col, '\\' ); - // corner: bottom left - mvwputch( g.w_terrain, p.xy() + point( -i, i ), col, '\\' ); - // corner: bottom right - mvwputch( g.w_terrain, p.xy() + point( i, i ), col, '/' ); - for( int j = 1 - i; j < 0 + i; j++ ) { - // edge: top - mvwputch( g.w_terrain, p.xy() + point( j, -i ), col, '-' ); - // edge: bottom - mvwputch( g.w_terrain, p.xy() + point( j, i ), col, '-' ); - // edge: left - mvwputch( g.w_terrain, p.xy() + point( -i, j ), col, '|' ); - // edge: right - mvwputch( g.w_terrain, p.xy() + point( i, j ), col, '|' ); + int frame = 0; + shared_ptr_fast explosion_cb = + make_shared_fast( [&]() { + if( r == 0 ) { + mvwputch( g.w_terrain, point( p.y, p.x ), col, '*' ); + } + + for( int i = 1; i <= frame; ++i ) { + // corner: top left + mvwputch( g.w_terrain, p.xy() + point( -i, -i ), col, '/' ); + // corner: top right + mvwputch( g.w_terrain, p.xy() + point( i, -i ), col, '\\' ); + // corner: bottom left + mvwputch( g.w_terrain, p.xy() + point( -i, i ), col, '\\' ); + // corner: bottom right + mvwputch( g.w_terrain, p.xy() + point( i, i ), col, '/' ); + for( int j = 1 - i; j < 0 + i; j++ ) { + // edge: top + mvwputch( g.w_terrain, p.xy() + point( j, -i ), col, '-' ); + // edge: bottom + mvwputch( g.w_terrain, p.xy() + point( j, i ), col, '-' ); + // edge: left + mvwputch( g.w_terrain, p.xy() + point( -i, j ), col, '|' ); + // edge: right + mvwputch( g.w_terrain, p.xy() + point( i, j ), col, '|' ); + } } + } ); + g.add_draw_callback( explosion_cb ); + for( frame = 1; frame <= r; ++frame ) { anim.progress(); } } @@ -168,7 +173,7 @@ constexpr explosion_neighbors operator ^ ( explosion_neighbors lhs, explosion_ne return static_cast( static_cast< int >( lhs ) ^ static_cast< int >( rhs ) ); } -void draw_custom_explosion_curses( const game &g, +void draw_custom_explosion_curses( game &g, const std::list< std::map > &layers ) { // calculate screen offset relative to player + view offset position @@ -178,57 +183,64 @@ void draw_custom_explosion_curses( const game &g, explosion_animation anim; - for( const auto &layer : layers ) { - for( const auto &pr : layer ) { - // update tripoint in relation to top left corner of curses window - // mvwputch already filters out of bounds coordinates - const tripoint p = pr.first - topleft; - const explosion_neighbors ngh = pr.second.neighborhood; - const nc_color col = pr.second.color; - - switch( ngh ) { - // '^', 'v', '<', '>' - case N_NORTH: - mvwputch( g.w_terrain, p.xy(), col, '^' ); - break; - case N_SOUTH: - mvwputch( g.w_terrain, p.xy(), col, 'v' ); - break; - case N_WEST: - mvwputch( g.w_terrain, p.xy(), col, '<' ); - break; - case N_EAST: - mvwputch( g.w_terrain, p.xy(), col, '>' ); - break; - // '|' and '-' - case N_NORTH | N_SOUTH: - case N_NORTH | N_SOUTH | N_WEST: - case N_NORTH | N_SOUTH | N_EAST: - mvwputch( g.w_terrain, p.xy(), col, '|' ); - break; - case N_WEST | N_EAST: - case N_WEST | N_EAST | N_NORTH: - case N_WEST | N_EAST | N_SOUTH: - mvwputch( g.w_terrain, p.xy(), col, '-' ); - break; - // '/' and '\' - case N_NORTH | N_WEST: - case N_SOUTH | N_EAST: - mvwputch( g.w_terrain, p.xy(), col, '/' ); - break; - case N_SOUTH | N_WEST: - case N_NORTH | N_EAST: - mvwputch( g.w_terrain, p.xy(), col, '\\' ); - break; - case N_NO_NEIGHBORS: - mvwputch( g.w_terrain, p.xy(), col, '*' ); - break; - case N_WEST | N_EAST | N_NORTH | N_SOUTH: - break; + auto last_layer_it = layers.begin(); + shared_ptr_fast explosion_cb = + make_shared_fast( [&]() { + for( auto it = layers.begin(); it != std::next( last_layer_it ); ++it ) { + for( const auto &pr : *it ) { + // update tripoint in relation to top left corner of curses window + // mvwputch already filters out of bounds coordinates + const tripoint p = pr.first - topleft; + const explosion_neighbors ngh = pr.second.neighborhood; + const nc_color col = pr.second.color; + + switch( ngh ) { + // '^', 'v', '<', '>' + case N_NORTH: + mvwputch( g.w_terrain, p.xy(), col, '^' ); + break; + case N_SOUTH: + mvwputch( g.w_terrain, p.xy(), col, 'v' ); + break; + case N_WEST: + mvwputch( g.w_terrain, p.xy(), col, '<' ); + break; + case N_EAST: + mvwputch( g.w_terrain, p.xy(), col, '>' ); + break; + // '|' and '-' + case N_NORTH | N_SOUTH: + case N_NORTH | N_SOUTH | N_WEST: + case N_NORTH | N_SOUTH | N_EAST: + mvwputch( g.w_terrain, p.xy(), col, '|' ); + break; + case N_WEST | N_EAST: + case N_WEST | N_EAST | N_NORTH: + case N_WEST | N_EAST | N_SOUTH: + mvwputch( g.w_terrain, p.xy(), col, '-' ); + break; + // '/' and '\' + case N_NORTH | N_WEST: + case N_SOUTH | N_EAST: + mvwputch( g.w_terrain, p.xy(), col, '/' ); + break; + case N_SOUTH | N_WEST: + case N_NORTH | N_EAST: + mvwputch( g.w_terrain, p.xy(), col, '\\' ); + break; + case N_NO_NEIGHBORS: + mvwputch( g.w_terrain, p.xy(), col, '*' ); + break; + case N_WEST | N_EAST | N_NORTH | N_SOUTH: + break; + } } } + } ); + g.add_draw_callback( explosion_cb ); - if( is_layer_visible( layer ) ) { + for( last_layer_it = layers.begin(); last_layer_it != layers.end(); ++last_layer_it ) { + if( is_layer_visible( *last_layer_it ) ) { anim.progress(); } } @@ -254,10 +266,16 @@ void explosion_handler::draw_explosion( const tripoint &p, const int r, const nc explosion_animation anim; - const bool visible = is_radius_visible( p, r ); - for( int i = 1; i <= r; i++ ) { + int i = 1; + shared_ptr_fast explosion_cb = + make_shared_fast( [&]() { // TODO: not xpos ypos? tilecontext->init_explosion( p, i ); + } ); + g->add_draw_callback( explosion_cb ); + + const bool visible = is_radius_visible( p, r ); + for( i = 1; i <= r; i++ ) { if( visible ) { anim.progress(); } @@ -397,9 +415,15 @@ void explosion_handler::draw_custom_explosion( const tripoint &, explosion_animation anim; // We need to draw all explosions up to now std::map combined_layer; + + shared_ptr_fast explosion_cb = + make_shared_fast( [&]() { + tilecontext->init_custom_explosion_layer( combined_layer ); + } ); + g->add_draw_callback( explosion_cb ); + for( const auto &layer : layers ) { combined_layer.insert( layer.begin(), layer.end() ); - tilecontext->init_custom_explosion_layer( combined_layer ); if( is_layer_visible( layer ) ) { anim.progress(); } @@ -422,15 +446,17 @@ void draw_bullet_curses( map &m, const tripoint &t, const char bullet, const tri const tripoint vp = g->u.pos() + g->u.view_offset; - if( p != nullptr && p->z == vp.z ) { - m.drawsq( g->w_terrain, g->u, *p, false, true, vp ); - } - if( vp.z != t.z ) { return; } - mvwputch( g->w_terrain, t.xy() - vp.xy() + point( POSX, POSY ), c_red, bullet ); + shared_ptr_fast bullet_cb = make_shared_fast( [&]() { + if( p != nullptr && p->z == vp.z ) { + m.drawsq( g->w_terrain, g->u, *p, false, true, vp ); + } + mvwputch( g->w_terrain, t.xy() - vp.xy() + point( POSX, POSY ), c_red, bullet ); + } ); + g->add_draw_callback( bullet_cb ); bullet_animation().progress(); } @@ -462,7 +488,11 @@ void game::draw_bullet( const tripoint &t, const int /*i*/, : bullet == '`' ? bullet_shrapnel : bullet_unknown; - tilecontext->init_draw_bullet( t, bullet_type ); + shared_ptr_fast bullet_cb = make_shared_fast( [&]() { + tilecontext->init_draw_bullet( t, bullet_type ); + } ); + add_draw_callback( bullet_cb ); + bullet_animation().progress(); tilecontext->void_bullet(); } @@ -476,11 +506,35 @@ void game::draw_bullet( const tripoint &t, const int i, const std::vector hit_cb = make_shared_fast( [&]() { + // In case the window is resized during waiting, we always re-calculate the animation position + const tripoint pos = relative_view_pos( u, center ); + if( pos.z == 0 && is_valid_in_w_terrain( pos.xy() ) ) { + mvwprintz( g->w_terrain, pos.xy(), cColor, cTile ); + } + } ); + g->add_draw_callback( hit_cb ); + + ui_manager::redraw(); + inp_mngr.set_timeout( get_option( "ANIMATION_DELAY" ) ); + // Skip input (if any), because holding down a key with nanosleep can get yourself killed + inp_mngr.get_input_event(); + inp_mngr.reset_timeout(); + } +} + void draw_hit_mon_curses( const tripoint ¢er, const monster &m, const player &u, const bool dead ) { - const tripoint p = relative_view_pos( u, center ); - hit_animation( p.xy(), red_background( m.type->color ), dead ? "%" : m.symbol() ); + hit_animation( u, center, red_background( m.type->color ), dead ? "%" : m.symbol() ); } } // namespace @@ -498,7 +552,10 @@ void game::draw_hit_mon( const tripoint &p, const monster &m, const bool dead ) return; } - tilecontext->init_draw_hit( p, m.type->id.str() ); + shared_ptr_fast hit_cb = make_shared_fast( [&]() { + tilecontext->init_draw_hit( p, m.type->id.str() ); + } ); + add_draw_callback( hit_cb ); bullet_animation().progress(); } @@ -513,12 +570,9 @@ namespace { void draw_hit_player_curses( const game &g, const Character &p, const int dam ) { - const tripoint q = relative_view_pos( g.u, p.pos() ); - if( q.z == 0 ) { - nc_color const col = !dam ? yellow_background( p.symbol_color() ) : red_background( - p.symbol_color() ); - hit_animation( q.xy(), col, p.symbol() ); - } + nc_color const col = !dam ? yellow_background( p.symbol_color() ) : red_background( + p.symbol_color() ); + hit_animation( g.u, p.pos(), col, p.symbol() ); } } //namespace @@ -542,7 +596,12 @@ void game::draw_hit_player( const Character &p, const int dam ) const std::string &type = p.is_player() ? ( p.male ? player_male : player_female ) : p.male ? npc_male : npc_female; - tilecontext->init_draw_hit( p.pos(), type ); + + shared_ptr_fast hit_cb = make_shared_fast( [&]() { + tilecontext->init_draw_hit( p.pos(), type ); + } ); + add_draw_callback( hit_cb ); + bullet_animation().progress(); } #else diff --git a/src/armor_layers.cpp b/src/armor_layers.cpp index 0e43ba3b6c65c..3d26971e1d7eb 100644 --- a/src/armor_layers.cpp +++ b/src/armor_layers.cpp @@ -53,8 +53,8 @@ std::vector clothing_protection( const item &worn_item, int width ) std::vector clothing_flags_description( const item &worn_item ); struct item_penalties { - std::vector body_parts_with_stacking_penalty; - std::vector body_parts_with_out_of_order_penalty; + std::vector body_parts_with_stacking_penalty; + std::vector body_parts_with_out_of_order_penalty; std::set bad_items_within; int badness() const { @@ -82,12 +82,12 @@ item_penalties get_item_penalties( std::list::const_iterator worn_item_it, { layer_level layer = worn_item_it->get_layer(); - std::vector body_parts_with_stacking_penalty; - std::vector body_parts_with_out_of_order_penalty; + std::vector body_parts_with_stacking_penalty; + std::vector body_parts_with_out_of_order_penalty; std::vector> lists_of_bad_items_within; - for( body_part bp : all_body_parts ) { - if( bp != tabindex && num_bp != tabindex ) { + for( const bodypart_id &bp : c.get_all_body_parts() ) { + if( bp->token != tabindex && num_bp != tabindex ) { continue; } if( !worn_item_it->covers( bp ) ) { @@ -136,7 +136,7 @@ item_penalties get_item_penalties( std::list::const_iterator worn_item_it, std::move( lists_of_bad_items_within[0] ) }; } -std::string body_part_names( const std::vector &parts ) +std::string body_part_names( const std::vector &parts ) { if( parts.empty() ) { debugmsg( "Asked for names of empty list" ); @@ -146,8 +146,9 @@ std::string body_part_names( const std::vector &parts ) std::vector names; names.reserve( parts.size() ); for( size_t i = 0; i < parts.size(); ++i ) { - const body_part part = parts[i]; - if( i + 1 < parts.size() && parts[i + 1] == static_cast( bp_aiOther[part] ) ) { + const bodypart_id &part = parts[i]; + if( i + 1 < parts.size() && + parts[i + 1] == convert_bp( static_cast( bp_aiOther[part->token] ) ).id() ) { // Can combine two body parts (e.g. arms) names.push_back( body_part_name_accusative( part, 2 ) ); ++i; @@ -204,19 +205,19 @@ void draw_mid_pane( const catacurses::window &w_sort_middle, if( !penalties.body_parts_with_stacking_penalty.empty() ) { std::string layer_description = [&]() { switch( worn_item_it->get_layer() ) { - case PERSONAL_LAYER: + case layer_level::PERSONAL: return _( "in your personal aura" ); - case UNDERWEAR_LAYER: + case layer_level::UNDERWEAR: return _( "close to your skin" ); - case REGULAR_LAYER: + case layer_level::REGULAR: return _( "of normal clothing" ); - case WAIST_LAYER: + case layer_level::WAIST: return _( "on your waist" ); - case OUTER_LAYER: + case layer_level::OUTER: return _( "of outer clothing" ); - case BELTED_LAYER: + case layer_level::BELTED: return _( "strapped to you" ); - case AURA_LAYER: + case layer_level::AURA: return _( "an aura around you" ); default: return _( "Unexpected layer" ); @@ -395,7 +396,7 @@ static std::vector items_cover_bp( const Character &c, int b { std::vector s; for( auto elem_it = c.worn.begin(); elem_it != c.worn.end(); ++elem_it ) { - if( elem_it->covers( static_cast( bp ) ) ) { + if( elem_it->covers( convert_bp( static_cast( bp ) ).id() ) ) { s.push_back( { get_item_penalties( elem_it, c, bp ), elem_it->get_encumber( c ), elem_it->tname() @@ -423,7 +424,7 @@ static void draw_grid( const catacurses::window &w, int left_pane_w, int mid_pan mvwputch( w, point( left_pane_w + mid_pane_w + 2, 2 ), BORDER_COLOR, LINE_OXXX ); mvwputch( w, point( left_pane_w + mid_pane_w + 2, win_h - 1 ), BORDER_COLOR, LINE_XXOX ); - wrefresh( w ); + wnoutrefresh( w ); } void player::sort_armor() @@ -439,7 +440,7 @@ void player::sort_armor() */ int req_right_h = 3 + 1 + 2 + num_bp + 1; - for( const body_part cover : all_body_parts ) { + for( const bodypart_id &cover : get_all_body_parts() ) { for( const item &elem : worn ) { if( elem.covers( cover ) ) { req_right_h++; @@ -544,6 +545,27 @@ void player::sort_armor() int rightListSize = 0; ui.on_redraw( [&]( const ui_adaptor & ) { + // Create ptr list of items to display + tmp_worn.clear(); + if( tabindex == num_bp ) { + // All + for( auto it = worn.begin(); it != worn.end(); ++it ) { + tmp_worn.push_back( it ); + } + } else { + // bp_* + const bodypart_id bp = convert_bp( static_cast( tabindex ) ).id(); + for( auto it = worn.begin(); it != worn.end(); ++it ) { + if( it->covers( bp ) ) { + tmp_worn.push_back( it ); + } + } + } + + // Ensure leftListIndex is in bounds + int new_index_upper_bound = std::max( 0, leftListSize - 1 ); + leftListIndex = std::min( leftListIndex, new_index_upper_bound ); + draw_grid( w_sort_armor, left_w, middle_w ); werase( w_sort_cat ); @@ -649,7 +671,7 @@ void player::sort_armor() } if( curr >= rightListOffset && pos <= rightListLines ) { mvwprintz( w_sort_right, point( 1, pos ), ( cover == tabindex ? c_yellow : c_white ), - "%s:", body_part_name_as_heading( all_body_parts[cover], combined ? 2 : 1 ) ); + "%s:", body_part_name_as_heading( convert_bp( all_body_parts[cover] ).id(), combined ? 2 : 1 ) ); pos++; } curr++; @@ -678,11 +700,11 @@ void player::sort_armor() _( "" ) ); } // F5 - wrefresh( w_sort_cat ); - wrefresh( w_sort_left ); - wrefresh( w_sort_middle ); - wrefresh( w_sort_right ); - wrefresh( w_encumb ); + wnoutrefresh( w_sort_cat ); + wnoutrefresh( w_sort_left ); + wnoutrefresh( w_sort_middle ); + wnoutrefresh( w_sort_right ); + wnoutrefresh( w_encumb ); } ); bool exit = false; @@ -705,27 +727,6 @@ void player::sort_armor() } } - // Create ptr list of items to display - tmp_worn.clear(); - if( tabindex == num_bp ) { - // All - for( auto it = worn.begin(); it != worn.end(); ++it ) { - tmp_worn.push_back( it ); - } - } else { - // bp_* - body_part bp = static_cast( tabindex ); - for( auto it = worn.begin(); it != worn.end(); ++it ) { - if( it->covers( bp ) ) { - tmp_worn.push_back( it ); - } - } - } - - // Ensure leftListIndex is in bounds - int new_index_upper_bound = std::max( 0, leftListSize - 1 ); - leftListIndex = std::min( leftListIndex, new_index_upper_bound ); - ui_manager::redraw(); const std::string action = ctxt.handle_input(); if( is_npc() && action == "ASSIGN_INVLETS" ) { @@ -828,7 +829,7 @@ void player::sort_armor() cata::optional::iterator> new_equip_it = wear( *loc.obtain( *this ) ); if( new_equip_it ) { - body_part bp = static_cast( tabindex ); + const bodypart_id bp = convert_bp( static_cast( tabindex ) ).id(); if( tabindex == num_bp || ( **new_equip_it ).covers( bp ) ) { // Set ourselves up to be pointing at the new item // TODO: This doesn't work yet because we don't save our diff --git a/src/artifact.cpp b/src/artifact.cpp index 9b4658f15c658..351490a4eda79 100644 --- a/src/artifact.cpp +++ b/src/artifact.cpp @@ -457,7 +457,7 @@ static const std::array artifact_arm // Name color Material Vol Wgt Enc MaxEnc Cov Thk Env Wrm Sto Bsh Cut Hit { translate_marker( "Robe" ), def_c_red, material_id( "wool" ), 1500_ml, 700_gram, 1, 1, 90, 3, 0, 2, 0_ml, -8, 0, -3, - { { bp_torso, bp_leg_l, bp_leg_r } }, false, + { { bodypart_str_id( "torso" ), bodypart_str_id( "leg_l" ), bodypart_str_id( "leg_r" ) } }, false, {{ ARMORMOD_LIGHT, ARMORMOD_BULKY, ARMORMOD_POCKETED, ARMORMOD_FURRED, ARMORMOD_PADDED @@ -467,7 +467,7 @@ static const std::array artifact_arm { translate_marker( "Coat" ), def_c_brown, material_id( "leather" ), 3500_ml, 1600_gram, 2, 2, 80, 2, 1, 4, 1_liter, -6, 0, -3, - { bp_torso }, false, + { bodypart_str_id( "torso" ) }, false, {{ ARMORMOD_LIGHT, ARMORMOD_POCKETED, ARMORMOD_FURRED, ARMORMOD_PADDED, ARMORMOD_PLATED @@ -477,7 +477,7 @@ static const std::array artifact_arm { translate_marker( "Mask" ), def_c_white, material_id( "wood" ), 1_liter, 100_gram, 2, 2, 50, 2, 1, 2, 0_ml, 2, 0, -2, - { { bp_eyes, bp_mouth } }, false, + { { bodypart_str_id( "eyes" ), bodypart_str_id( "mouth" ) } }, false, {{ ARMORMOD_FURRED, ARMORMOD_FURRED, ARMORMOD_NULL, ARMORMOD_NULL, ARMORMOD_NULL @@ -488,7 +488,7 @@ static const std::array artifact_arm // Name color Materials Vol Wgt Enc MaxEnc Cov Thk Env Wrm Sto Bsh Cut Hit { translate_marker( "Helm" ), def_c_dark_gray, material_id( "silver" ), 1500_ml, 700_gram, 2, 2, 85, 3, 0, 1, 0_ml, 8, 0, -2, - { bp_head }, false, + { bodypart_str_id( "head" ) }, false, {{ ARMORMOD_BULKY, ARMORMOD_FURRED, ARMORMOD_PADDED, ARMORMOD_PLATED, ARMORMOD_NULL @@ -498,7 +498,7 @@ static const std::array artifact_arm { translate_marker( "Gloves" ), def_c_light_blue, material_id( "leather" ), 500_ml, 100_gram, 1, 1, 90, 3, 1, 2, 0_ml, -4, 0, -2, - { { bp_hand_l, bp_hand_r } }, true, + { { bodypart_str_id( "hand_l" ), bodypart_str_id( "hand_r" ) } }, true, {{ ARMORMOD_BULKY, ARMORMOD_FURRED, ARMORMOD_PADDED, ARMORMOD_PLATED, ARMORMOD_NULL @@ -509,7 +509,7 @@ static const std::array artifact_arm // Name color Materials Vol Wgt Enc MaxEnc Cov Thk Env Wrm Sto Bsh Cut Hit { translate_marker( "Boots" ), def_c_blue, material_id( "leather" ), 1500_ml, 250_gram, 1, 1, 75, 3, 1, 3, 0_ml, 4, 0, -1, - { { bp_foot_l, bp_foot_r } }, true, + { { bodypart_str_id( "foot_l" ), bodypart_str_id( "foot_r" ) } }, true, {{ ARMORMOD_LIGHT, ARMORMOD_BULKY, ARMORMOD_PADDED, ARMORMOD_PLATED, ARMORMOD_NULL @@ -673,7 +673,7 @@ void it_artifact_armor::create_name( const std::string &type ) name = no_translation( artifact_name( type ) ); } -std::string new_artifact() +itype_id new_artifact() { if( one_in( 2 ) ) { // Generate a "tool" artifact @@ -920,7 +920,7 @@ std::string new_artifact() } } -std::string new_natural_artifact( artifact_natural_property prop ) +itype_id new_natural_artifact( artifact_natural_property prop ) { // Natural artifacts are always tools. it_artifact_tool def; @@ -1041,7 +1041,7 @@ std::string new_natural_artifact( artifact_natural_property prop ) } // Make a special debugging artifact. -std::string architects_cube() +itype_id architects_cube() { it_artifact_tool def; @@ -1136,7 +1136,7 @@ void load_artifacts( const std::string &path ) void it_artifact_tool::deserialize( const JsonObject &jo ) { - id = jo.get_string( "id" ); + jo.read( "id", id, true ); name = no_translation( jo.get_string( "name" ) ); description = no_translation( jo.get_string( "description" ) ); if( jo.has_int( "sym" ) ) { @@ -1188,7 +1188,7 @@ void it_artifact_tool::deserialize( const JsonObject &jo ) } tool->revert_to.emplace( jo.get_string( "revert_to", "null" ) ); - if( *tool->revert_to == "null" ) { + if( tool->revert_to->is_null() ) { tool->revert_to.reset(); } @@ -1244,7 +1244,7 @@ void it_artifact_tool::deserialize( const JsonObject &jo ) void it_artifact_armor::deserialize( const JsonObject &jo ) { - id = jo.get_string( "id" ); + jo.read( "id", id, true ); name = no_translation( jo.get_string( "name" ) ); description = no_translation( jo.get_string( "description" ) ); if( jo.has_int( "sym" ) ) { diff --git a/src/artifact.h b/src/artifact.h index 9a5e4818cff05..40829bac967f3 100644 --- a/src/artifact.h +++ b/src/artifact.h @@ -121,9 +121,9 @@ class it_artifact_armor : public itype /* FUNCTIONS */ -std::string new_artifact(); -std::string new_natural_artifact( artifact_natural_property prop ); -std::string architects_cube(); +itype_id new_artifact(); +itype_id new_natural_artifact( artifact_natural_property prop ); +itype_id architects_cube(); // note: needs to be called by main() before MAPBUFFER.load void load_artifacts( const std::string &path ); diff --git a/src/ascii_art.h b/src/ascii_art.h index 5aacbe643fdda..431109f811130 100644 --- a/src/ascii_art.h +++ b/src/ascii_art.h @@ -5,7 +5,6 @@ #include "type_id.h" #include "json.h" - class ascii_art { public: diff --git a/src/auto_note.cpp b/src/auto_note.cpp index 0d8d9d3581b63..5b99612cb153a 100644 --- a/src/auto_note.cpp +++ b/src/auto_note.cpp @@ -229,7 +229,7 @@ void auto_note_manager_gui::show() mvwputch( w_border, point( 0, 2 ), c_light_gray, LINE_XXXO ); mvwputch( w_border, point( 79, 2 ), c_light_gray, LINE_XOXX ); mvwputch( w_border, point( 61, FULL_SCREEN_HEIGHT - 1 ), c_light_gray, LINE_XXOX ); - wrefresh( w_border ); + wnoutrefresh( w_border ); // == Draw header int tmpx = 0; @@ -251,7 +251,7 @@ void auto_note_manager_gui::show() mvwprintz( w_header, point( 53, 2 ), c_white, _( "Symbol" ) ); mvwprintz( w_header, point( 62, 2 ), c_white, _( "Enabled" ) ); - wrefresh( w_header ); + wnoutrefresh( w_header ); mvwprintz( w_header, point( 39, 0 ), c_white, _( "Auto notes enabled:" ) ); @@ -314,9 +314,9 @@ void auto_note_manager_gui::show() } } - wrefresh( w_header ); - wrefresh( w_border ); - wrefresh( w ); + wnoutrefresh( w_header ); + wnoutrefresh( w_border ); + wnoutrefresh( w ); } ); while( true ) { diff --git a/src/auto_pickup.cpp b/src/auto_pickup.cpp index db4707472100a..3433d05fcef2e 100644 --- a/src/auto_pickup.cpp +++ b/src/auto_pickup.cpp @@ -89,7 +89,7 @@ void user_interface::show() mvwputch( w_border, point( 5, FULL_SCREEN_HEIGHT - 1 ), c_light_gray, LINE_XXOX ); mvwputch( w_border, point( 51, FULL_SCREEN_HEIGHT - 1 ), c_light_gray, LINE_XXOX ); mvwputch( w_border, point( 61, FULL_SCREEN_HEIGHT - 1 ), c_light_gray, LINE_XXOX ); - wrefresh( w_border ); + wnoutrefresh( w_border ); // Redraw the header int tmpx = 0; @@ -138,7 +138,7 @@ void user_interface::show() locx += shortcut_print( w_header, point( locx, 1 ), c_white, c_light_green, _( "witch" ) ); shortcut_print( w_header, point( locx, 1 ), c_white, c_light_green, " " ); - wrefresh( w_header ); + wnoutrefresh( w_header ); // Clear the lines for( int i = 0; i < iContentHeight; i++ ) { @@ -152,7 +152,7 @@ void user_interface::show() } draw_scrollbar( w_border, iLine, iContentHeight, cur_rules.size(), point( 0, 5 ) ); - wrefresh( w_border ); + wnoutrefresh( w_border ); calcStartPos( iStartPos, iLine, iContentHeight, cur_rules.size() ); @@ -181,7 +181,7 @@ void user_interface::show() } } - wrefresh( w ); + wnoutrefresh( w ); } ); bStuffChanged = false; @@ -312,7 +312,7 @@ void user_interface::show() ); draw_border( w_help ); - wrefresh( w_help ); + wnoutrefresh( w_help ); } ); const std::string r = string_input_popup() .title( _( "Pickup Rule:" ) ) @@ -471,7 +471,7 @@ void rule::test_pattern() const draw_border( w_test_rule_border, BORDER_COLOR, buf, hilite( c_white ) ); center_print( w_test_rule_border, iContentHeight + 1, red_background( c_white ), _( "Won't display content or suffix matches" ) ); - wrefresh( w_test_rule_border ); + wnoutrefresh( w_test_rule_border ); // Clear the lines for( int i = 0; i < iContentHeight; i++ ) { @@ -502,7 +502,7 @@ void rule::test_pattern() const } } - wrefresh( w_test_rule_content ); + wnoutrefresh( w_test_rule_content ); } ); while( true ) { diff --git a/src/avatar.cpp b/src/avatar.cpp index 05cbe7bb54182..e0012d3de8a11 100644 --- a/src/avatar.cpp +++ b/src/avatar.cpp @@ -44,6 +44,7 @@ #include "monster.h" #include "morale.h" #include "morale_types.h" +#include "move_mode.h" #include "mtype.h" #include "npc.h" #include "optional.h" @@ -71,15 +72,18 @@ static const activity_id ACT_READ( "ACT_READ" ); +static const bionic_id bio_cloak( "bio_cloak" ); static const bionic_id bio_eye_optic( "bio_eye_optic" ); static const bionic_id bio_memory( "bio_memory" ); static const bionic_id bio_watch( "bio_watch" ); static const efftype_id effect_alarm_clock( "alarm_clock" ); +static const efftype_id effect_boomered( "boomered" ); static const efftype_id effect_contacts( "contacts" ); static const efftype_id effect_depressants( "depressants" ); static const efftype_id effect_happy( "happy" ); static const efftype_id effect_irradiated( "irradiated" ); +static const efftype_id effect_onfire( "onfire" ); static const efftype_id effect_pkill( "pkill" ); static const efftype_id effect_sad( "sad" ); static const efftype_id effect_sleep( "sleep" ); @@ -87,6 +91,9 @@ static const efftype_id effect_sleep_deprived( "sleep_deprived" ); static const efftype_id effect_slept_through_alarm( "slept_through_alarm" ); static const efftype_id effect_stim( "stim" ); static const efftype_id effect_stim_overdose( "stim_overdose" ); +static const efftype_id effect_stunned( "stunned" ); + +static const itype_id itype_guidebook( "guidebook" ); static const trait_id trait_ARACHNID_ARMS( "ARACHNID_ARMS" ); static const trait_id trait_ARACHNID_ARMS_OK( "ARACHNID_ARMS_OK" ); @@ -95,6 +102,7 @@ static const trait_id trait_CHITIN2( "CHITIN2" ); static const trait_id trait_CHITIN3( "CHITIN3" ); static const trait_id trait_CHITIN_FUR3( "CHITIN_FUR3" ); static const trait_id trait_COMPOUND_EYES( "COMPOUND_EYES" ); +static const trait_id trait_DEBUG_CLOAK( "DEBUG_CLOAK" ); static const trait_id trait_HYPEROPIC( "HYPEROPIC" ); static const trait_id trait_ILLITERATE( "ILLITERATE" ); static const trait_id trait_INSECT_ARMS( "INSECT_ARMS" ); @@ -117,7 +125,7 @@ avatar::avatar() { show_map_memory = true; active_mission = nullptr; - grab_type = OBJECT_NONE; + grab_type = object_type::NONE; } void avatar::toggle_map_memory() @@ -418,7 +426,7 @@ bool avatar::read( item &it, const bool continuous ) return true; } - if( it.typeId() == "guidebook" ) { + if( it.typeId() == itype_guidebook ) { // special guidebook effect: print a misc. hint when read if( reader != this ) { add_msg( m_info, fail_messages[0] ); @@ -667,7 +675,7 @@ void avatar::grab( object_type grab_type, const tripoint &grab_point ) this->grab_type = grab_type; this->grab_point = grab_point; - path_settings->avoid_rough_terrain = grab_type != OBJECT_NONE; + path_settings->avoid_rough_terrain = grab_type != object_type::NONE; } object_type avatar::get_grab_type() const @@ -922,21 +930,11 @@ void avatar::do_read( item &book ) activity.set_to_null(); } -bool avatar::has_identified( const std::string &item_id ) const +bool avatar::has_identified( const itype_id &item_id ) const { return items_identified.count( item_id ) > 0; } -hint_rating avatar::rate_action_read( const item &it ) const -{ - if( !it.is_book() ) { - return hint_rating::cant; - } - - std::vector dummy; - return get_book_reader( it, dummy ) == nullptr ? hint_rating::iffy : hint_rating::good; -} - void avatar::wake_up() { if( has_effect( effect_sleep ) ) { @@ -976,21 +974,51 @@ void avatar::vomit() Character::vomit(); } +nc_color avatar::basic_symbol_color() const +{ + if( has_effect( effect_onfire ) ) { + return c_red; + } + if( has_effect( effect_stunned ) ) { + return c_light_blue; + } + if( has_effect( effect_boomered ) ) { + return c_pink; + } + if( has_active_mutation( trait_id( "SHELL2" ) ) ) { + return c_magenta; + } + if( underwater ) { + return c_blue; + } + if( has_active_bionic( bio_cloak ) || has_artifact_with( AEP_INVISIBLE ) || + is_wearing_active_optcloak() || has_trait( trait_DEBUG_CLOAK ) ) { + return c_dark_gray; + } + return move_mode->symbol_color(); +} + +int avatar::print_info( const catacurses::window &w, int vStart, int, int column ) const +{ + mvwprintw( w, point( column, vStart++ ), _( "You (%s)" ), name ); + return vStart; +} + void avatar::disp_morale() { int equilibrium = calc_focus_equilibrium(); int fatigue_penalty = 0; - if( get_fatigue() >= MASSIVE_FATIGUE && equilibrium > 20 ) { + if( get_fatigue() >= fatigue_levels::MASSIVE_FATIGUE && equilibrium > 20 ) { fatigue_penalty = equilibrium - 20; equilibrium = 20; - } else if( get_fatigue() >= EXHAUSTED && equilibrium > 40 ) { + } else if( get_fatigue() >= fatigue_levels::EXHAUSTED && equilibrium > 40 ) { fatigue_penalty = equilibrium - 40; equilibrium = 40; - } else if( get_fatigue() >= DEAD_TIRED && equilibrium > 60 ) { + } else if( get_fatigue() >= fatigue_levels::DEAD_TIRED && equilibrium > 60 ) { fatigue_penalty = equilibrium - 60; equilibrium = 60; - } else if( get_fatigue() >= TIRED && equilibrium > 80 ) { + } else if( get_fatigue() >= fatigue_levels::TIRED && equilibrium > 80 ) { fatigue_penalty = equilibrium - 80; equilibrium = 80; } @@ -1096,10 +1124,10 @@ int avatar::calc_focus_change() const gain *= base_change; // Fatigue will incrementally decrease any focus above related cap - if( ( get_fatigue() >= TIRED && focus_pool > 80 ) || - ( get_fatigue() >= DEAD_TIRED && focus_pool > 60 ) || - ( get_fatigue() >= EXHAUSTED && focus_pool > 40 ) || - ( get_fatigue() >= MASSIVE_FATIGUE && focus_pool > 20 ) ) { + if( ( get_fatigue() >= fatigue_levels::TIRED && focus_pool > 80 ) || + ( get_fatigue() >= fatigue_levels::DEAD_TIRED && focus_pool > 60 ) || + ( get_fatigue() >= fatigue_levels::EXHAUSTED && focus_pool > 40 ) || + ( get_fatigue() >= fatigue_levels::MASSIVE_FATIGUE && focus_pool > 20 ) ) { //it can fall faster then 1 if( gain > -1 ) { @@ -1158,7 +1186,7 @@ void avatar::reset_stats() if( has_trait( trait_ARACHNID_ARMS_OK ) ) { if( !wearing_something_on( bodypart_id( "torso" ) ) ) { mod_dex_bonus( 2 ); - } else if( !exclusive_flag_coverage( "OVERSIZE" ).test( bp_torso ) ) { + } else if( !exclusive_flag_coverage( "OVERSIZE" ).test( bodypart_str_id( "torso" ) ) ) { mod_dex_bonus( -2 ); add_miss_reason( _( "Your clothing constricts your arachnid limbs." ), 2 ); } @@ -1410,105 +1438,79 @@ faction *avatar::get_faction() const return g->faction_manager_ptr->get( faction_id( "your_followers" ) ); } -void avatar::set_movement_mode( character_movemode new_mode ) +void avatar::set_movement_mode( const move_mode_id &new_mode ) { - switch( new_mode ) { - case CMM_WALK: { - if( is_mounted() ) { - if( mounted_creature->has_flag( MF_RIDEABLE_MECH ) ) { - add_msg( _( "You set your mech's leg power to a loping fast walk." ) ); - } else { - add_msg( _( "You nudge your steed into a steady trot." ) ); - } - } else { - add_msg( _( "You start walking." ) ); - } - break; - } - case CMM_RUN: { - if( can_run() ) { - if( is_hauling() ) { - stop_hauling(); - } - if( is_mounted() ) { - if( mounted_creature->has_flag( MF_RIDEABLE_MECH ) ) { - add_msg( _( "You set the power of your mech's leg servos to maximum." ) ); - } else { - add_msg( _( "You spur your steed into a gallop." ) ); - } - } else { - add_msg( _( "You start running." ) ); - } - } else { - if( is_mounted() ) { - // mounts don't currently have stamina, but may do in future. - add_msg( m_bad, _( "Your steed is too tired to go faster." ) ); - } else if( get_working_leg_count() < 2 ) { - add_msg( m_bad, _( "You need two functional legs to run." ) ); - } else { - add_msg( m_bad, _( "You're too tired to run." ) ); - } - return; - } - break; - } - case CMM_CROUCH: { - if( is_mounted() ) { - if( mounted_creature->has_flag( MF_RIDEABLE_MECH ) ) { - add_msg( _( "You reduce the power of your mech's leg servos to minimum." ) ); - } else { - add_msg( _( "You slow your steed to a walk." ) ); - } - } else { - add_msg( _( "You start crouching." ) ); - } - break; + steed_type steed; + if( is_mounted() ) { + if( mounted_creature->has_flag( MF_RIDEABLE_MECH ) ) { + steed = steed_type::MECH; + } else { + steed = steed_type::ANIMAL; } - default: { - return; + } else { + steed = steed_type::NONE; + } + + if( can_switch_to( new_mode ) ) { + add_msg( new_mode->change_message( true, steed ) ); + move_mode = new_mode; + if( new_mode->stop_hauling() ) { + stop_hauling(); } + } else { + add_msg( new_mode->change_message( false, steed ) ); } - move_mode = new_mode; } void avatar::toggle_run_mode() { - if( move_mode == CMM_RUN ) { - set_movement_mode( CMM_WALK ); + if( is_running() ) { + set_movement_mode( move_mode_id( "walk" ) ); } else { - set_movement_mode( CMM_RUN ); + set_movement_mode( move_mode_id( "run" ) ); } } void avatar::toggle_crouch_mode() { - if( move_mode == CMM_CROUCH ) { - set_movement_mode( CMM_WALK ); + if( is_crouching() ) { + set_movement_mode( move_mode_id( "walk" ) ); } else { - set_movement_mode( CMM_CROUCH ); + set_movement_mode( move_mode_id( "crouch" ) ); } } void avatar::reset_move_mode() { - if( move_mode != CMM_WALK ) { - set_movement_mode( CMM_WALK ); + if( !is_walking() ) { + set_movement_mode( move_mode_id( "walk" ) ); } } void avatar::cycle_move_mode() { - unsigned char as_uchar = static_cast( move_mode ); - as_uchar = ( as_uchar + 1 + CMM_COUNT ) % CMM_COUNT; - set_movement_mode( static_cast( as_uchar ) ); + const move_mode_id next = current_movement_mode()->cycle(); + set_movement_mode( next ); // if a movemode is disabled then just cycle to the next one - if( !movement_mode_is( static_cast( as_uchar ) ) ) { - as_uchar = ( as_uchar + 1 + CMM_COUNT ) % CMM_COUNT; - set_movement_mode( static_cast( as_uchar ) ); + if( !movement_mode_is( next ) ) { + set_movement_mode( next->cycle() ); } } +bool avatar::wield( item_location target ) +{ + return wield( *target, target.obtain_cost( *this ) ); +} + bool avatar::wield( item &target ) +{ + return wield( target, + item_handling_cost( target, true, + is_worn( target ) ? INVENTORY_HANDLING_PENALTY / 2 : + INVENTORY_HANDLING_PENALTY ) ); +} + +bool avatar::wield( item &target, const int obtain_cost ) { if( is_wielding( target ) ) { return true; @@ -1541,8 +1543,7 @@ bool avatar::wield( item &target ) // There is an additional penalty when wielding items from the inventory whilst currently grabbed. bool worn = is_worn( target ); - int mv = item_handling_cost( target, true, - worn ? INVENTORY_HANDLING_PENALTY / 2 : INVENTORY_HANDLING_PENALTY ); + const int mv = obtain_cost; if( worn ) { target.on_takeoff( *this ); @@ -1562,6 +1563,8 @@ bool avatar::wield( item &target ) weapon.on_wield( *this, mv ); + g->events().send( getID(), last_item ); + inv.update_invlet( weapon ); inv.update_cache_with_item( weapon ); @@ -1603,8 +1606,6 @@ bool avatar::invoke_item( item *used, const tripoint &pt ) const std::string &method = std::next( use_methods.begin(), choice )->first; - g->refresh_all(); - return invoke_item( used, method, pt ); } @@ -1623,20 +1624,6 @@ bool avatar::invoke_item( item *used, const std::string &method ) return Character::invoke_item( used, method ); } -targeting_data &avatar::get_targeting_data() -{ - if( tdata == nullptr ) { - debugmsg( "Tried to get targeting data before setting it" ); - tdata.reset( new targeting_data() ); - } - return *tdata; -} - -void avatar::set_targeting_data( const targeting_data &td ) -{ - tdata.reset( new targeting_data( td ) ); -} - points_left::points_left() { limit = MULTI_POOL; diff --git a/src/avatar.h b/src/avatar.h index 6b76765205a5f..4da97e1b7c29d 100644 --- a/src/avatar.h +++ b/src/avatar.h @@ -36,7 +36,6 @@ class mission_debug; } // namespace debug_menu struct mtype; struct points_left; -struct targeting_data; // Monster visible in different directions (safe mode & compass) struct monster_visible_info { @@ -98,6 +97,9 @@ class avatar : public player size_t max_memorized_tiles() const; void clear_memorized_tile( const tripoint &pos ); + nc_color basic_symbol_color() const override; + int print_info( const catacurses::window &w, int vStart, int vLines, int column ) const override; + /** Provides the window and detailed morale data */ void disp_morale(); /** Uses morale and other factors to return the player's focus target goto value */ @@ -160,9 +162,7 @@ class avatar : public player /** Completes book reading action. **/ void do_read( item &book ); /** Note that we've read a book at least once. **/ - bool has_identified( const std::string &item_id ) const override; - - hint_rating rate_action_read( const item &it ) const; + bool has_identified( const itype_id &item_id ) const override; void wake_up(); // Grab furniture / vehicle @@ -195,7 +195,7 @@ class avatar : public player // Set in npc::talk_to_you for use in further NPC interactions bool dialogue_by_radio = false; - void set_movement_mode( character_movemode mode ) override; + void set_movement_mode( const move_mode_id &mode ) override; // Cycles to the next move mode. void cycle_move_mode(); @@ -206,7 +206,9 @@ class avatar : public player // Toggles crouching on/off. void toggle_crouch_mode(); + bool wield( item_location target ); bool wield( item &target ) override; + bool wield( item &target, int obtain_cost ); /** gets the inventory from the avatar that is interactible via advanced inventory management */ std::vector get_AIM_inventory( const advanced_inventory_pane &pane, @@ -249,7 +251,7 @@ class avatar : public player mission *active_mission; // Items the player has identified. - std::unordered_set items_identified; + std::unordered_set items_identified; object_type grab_type; @@ -261,16 +263,6 @@ class avatar : public player int per_upgrade = 0; monster_visible_info mon_visible; - - /** Targeting data used for aiming the player's weapon across turns. */ - shared_ptr_fast tdata; - - public: - /** Accessor method for weapon targeting data. */ - targeting_data &get_targeting_data(); - - /** Mutator method for weapon targeting data. */ - void set_targeting_data( const targeting_data &td ); }; struct points_left { diff --git a/src/avatar_action.cpp b/src/avatar_action.cpp index 46387d0e54e5e..cea45207f2b73 100644 --- a/src/avatar_action.cpp +++ b/src/avatar_action.cpp @@ -38,6 +38,7 @@ #include "memory_fast.h" #include "messages.h" #include "monster.h" +#include "move_mode.h" #include "mtype.h" #include "npc.h" #include "options.h" @@ -57,8 +58,6 @@ class player; -static const activity_id ACT_AIM( "ACT_AIM" ); - static const efftype_id effect_amigara( "amigara" ); static const efftype_id effect_glowing( "glowing" ); static const efftype_id effect_harnessed( "harnessed" ); @@ -68,6 +67,11 @@ static const efftype_id effect_relax_gas( "relax_gas" ); static const efftype_id effect_ridden( "ridden" ); static const efftype_id effect_stunned( "stunned" ); +static const itype_id itype_adv_UPS_off( "adv_UPS_off" ); +static const itype_id itype_swim_fins( "swim_fins" ); +static const itype_id itype_UPS( "UPS" ); +static const itype_id itype_UPS_off( "UPS_off" ); + static const skill_id skill_swimming( "swimming" ); static const bionic_id bio_ups( "bio_ups" ); @@ -143,13 +147,7 @@ bool avatar_action::move( avatar &you, map &m, const tripoint &d ) // by this point we're either walking, running, crouching, or attacking, so update the activity level to match if( !is_riding ) { - if( you.movement_mode_is( CMM_WALK ) ) { - you.increase_activity_level( LIGHT_EXERCISE ); - } else if( you.movement_mode_is( CMM_CROUCH ) ) { - you.increase_activity_level( MODERATE_EXERCISE ); - } else { - you.increase_activity_level( ACTIVE_EXERCISE ); - } + you.increase_activity_level( you.current_movement_mode()->exertion_level() ); } // If the player is *attempting to* move on the X axis, update facing direction of their sprite to match. @@ -391,7 +389,7 @@ bool avatar_action::move( avatar &you, map &m, const tripoint &d ) // open it if we are walking // vault over it if we are running if( m.passable_ter_furn( dest_loc ) - && you.movement_mode_is( CMM_WALK ) + && you.is_walking() && m.open_door( dest_loc, !m.is_outside( you.pos() ) ) ) { you.moves -= 100; // if auto-move is on, continue moving next turn @@ -532,8 +530,9 @@ void avatar_action::swim( map &m, avatar &you, const tripoint &p ) int movecost = you.swim_speed(); you.practice( skill_swimming, you.is_underwater() ? 2 : 1 ); if( movecost >= 500 ) { - if( !you.is_underwater() && !( you.shoe_type_count( "swim_fins" ) == 2 || - ( you.shoe_type_count( "swim_fins" ) == 1 && one_in( 2 ) ) ) ) { + if( !you.is_underwater() && + !( you.shoe_type_count( itype_swim_fins ) == 2 || + ( you.shoe_type_count( itype_swim_fins ) == 1 && one_in( 2 ) ) ) ) { add_msg( m_bad, _( "You sink like a rock!" ) ); you.set_underwater( true ); ///\EFFECT_STR increases breath-holding capacity while sinking @@ -560,10 +559,11 @@ void avatar_action::swim( map &m, avatar &you, const tripoint &p ) return; } } + tripoint old_abs_pos = m.getabs( you.pos() ); you.setpos( p ); g->update_map( you ); - cata_event_dispatch::avatar_moves( you, m, p ); + cata_event_dispatch::avatar_moves( old_abs_pos, you, m ); if( m.veh_at( you.pos() ).part_with_feature( VPFLAG_BOARDABLE, true ) ) { m.board_vehicle( you.pos(), &you ); @@ -576,13 +576,13 @@ void avatar_action::swim( map &m, avatar &you, const tripoint &p ) } body_part_set drenchFlags{ { - bp_leg_l, bp_leg_r, bp_torso, bp_arm_l, - bp_arm_r, bp_foot_l, bp_foot_r, bp_hand_l, bp_hand_r + bodypart_str_id( "leg_l" ), bodypart_str_id( "leg_r" ), bodypart_str_id( "torso" ), bodypart_str_id( "arm_l" ), + bodypart_str_id( "arm_r" ), bodypart_str_id( "foot_l" ), bodypart_str_id( "foot_r" ), bodypart_str_id( "hand_l" ), bodypart_str_id( "hand_r" ) } }; if( you.is_underwater() ) { - drenchFlags |= { { bp_head, bp_eyes, bp_mouth, bp_hand_l, bp_hand_r } }; + drenchFlags.unify_set( { { bodypart_str_id( "head" ), bodypart_str_id( "eyes" ), bodypart_str_id( "mouth" ), bodypart_str_id( "hand_l" ), bodypart_str_id( "hand_r" ) } } ); } you.drench( 100, drenchFlags, true ); } @@ -601,7 +601,7 @@ static float rate_critter( const Creature &c ) void avatar_action::autoattack( avatar &you, map &m ) { int reach = you.weapon.reach_range( you ); - std::vector critters = you.get_targetable_creatures( reach ); + std::vector critters = you.get_targetable_creatures( reach, true ); critters.erase( std::remove_if( critters.begin(), critters.end(), []( const Creature * c ) { if( !c->is_npc() ) { return false; @@ -691,13 +691,13 @@ static bool gunmode_checks_weapon( avatar &you, const map &m, std::vectoru.mounted_creature.get(); - if( !mons->type->mech_weapon.empty() ) { + if( !mons->type->mech_weapon.is_empty() ) { is_mech_weapon = true; } } if( !is_mech_weapon ) { - if( !( you.has_charges( "UPS_off", ups_drain ) || - you.has_charges( "adv_UPS_off", adv_ups_drain ) || + if( !( you.has_charges( itype_UPS_off, ups_drain ) || + you.has_charges( itype_adv_UPS_off, adv_ups_drain ) || ( you.has_active_bionic( bio_ups ) && you.get_power_level() >= units::from_kilojoule( ups_drain ) ) ) ) { messages.push_back( string_format( @@ -706,7 +706,7 @@ static bool gunmode_checks_weapon( avatar &you, const map &m, std::vectortname() ) ); result = false; @@ -730,11 +730,7 @@ static bool gunmode_checks_weapon( avatar &you, const map &m, std::vectorgun_current_mode(); - - // TODO: use MODERATE_EXERCISE if firing a bow - you.increase_activity_level( LIGHT_EXERCISE ); - - // TODO: move handling "RELOAD_AND_SHOOT" flagged guns to a separate function. - if( gun->has_flag( flag_RELOAD_AND_SHOOT ) ) { - if( !gun->ammo_remaining() ) { - const auto ammo_location_is_valid = [&]() -> bool { - if( !you.ammo_location ) - { - return false; - } - if( !gun->can_reload_with( you.ammo_location->typeId() ) ) - { - return false; - } - if( square_dist( you.pos(), you.ammo_location.position() ) > 1 ) - { - return false; - } - return true; - }; - item::reload_option opt = ammo_location_is_valid() ? item::reload_option( &you, weapon, - weapon, you.ammo_location ) : you.select_ammo( *gun ); - if( !opt ) { - // Menu canceled - return; - } - reload_time += opt.moves(); - if( !gun->reload( you, std::move( opt.ammo ), 1 ) ) { - // Reload not allowed - return; - } - - // Burn 0.2% max base stamina x the strength required to fire. - you.mod_stamina( gun->get_min_str() * static_cast( 0.002f * - get_option( "PLAYER_MAX_STAMINA" ) ) ); - // At low stamina levels, firing starts getting slow. - int sta_percent = ( 100 * you.get_stamina() ) / you.get_stamina_max(); - reload_time += ( sta_percent < 25 ) ? ( ( 25 - sta_percent ) * 2 ) : 0; - - g->refresh_all(); - } - } - - g->temp_exit_fullscreen(); - m.draw( g->w_terrain, you.pos() ); - bool reload_requested; - target_handler::trajectory trajectory = target_handler::mode_fire( you, *weapon, reload_requested ); - - //may be changed in target_ui - gun = weapon->gun_current_mode(); - - if( trajectory.empty() ) { - bool not_aiming = you.activity.id() != ACT_AIM; - if( not_aiming && gun->has_flag( flag_RELOAD_AND_SHOOT ) ) { - const auto previous_moves = you.moves; - g->unload( *gun ); - // Give back time for unloading as essentially nothing has been done. - // Note that reload_time has not been applied either. - you.moves = previous_moves; - } - g->reenter_fullscreen(); - - if( reload_requested ) { - // Reload the gun / select different arrows - g->reload_wielded( true ); - } - return; - } - // Recenter our view - g->draw_ter(); - wrefresh( g->w_terrain ); - g->draw_panels(); - - you.moves -= reload_time; - - int shots_fired = you.fire_gun( trajectory.back(), gun.qty, *gun ); - - // TODO: bionic power cost of firing should be derived from a value of the relevant weapon. - if( shots_fired && ( args.bp_cost_per_shot > 0_J ) ) { - you.mod_power_level( -args.bp_cost_per_shot * shots_fired ); - } - g->reenter_fullscreen(); -} - -void avatar_action::fire_wielded_weapon( avatar &you, map &m ) +void avatar_action::fire_wielded_weapon( avatar &you ) { item &weapon = you.weapon; if( weapon.is_gunmod() ) { @@ -952,30 +829,25 @@ void avatar_action::fire_wielded_weapon( avatar &you, map &m ) return; } else if( !weapon.is_gun() ) { return; - } else if( weapon.ammo_data() && !weapon.ammo_types().count( weapon.ammo_data()->ammo->type ) ) { + } else if( weapon.ammo_data() && weapon.type->gun && + !weapon.type->gun->ammo.count( weapon.ammo_data()->ammo->type ) ) { add_msg( m_info, _( "The %s can't be fired while loaded with incompatible ammunition %s" ), - weapon.tname(), weapon.ammo_current() ); + weapon.tname(), weapon.ammo_current()->nname( 1 ) ); return; } - targeting_data args = targeting_data::use_wielded(); - you.set_targeting_data( args ); - avatar_action::aim_do_turn( you, m ); + you.assign_activity( aim_activity_actor::use_wielded(), false ); } -void avatar_action::fire_ranged_mutation( avatar &you, map &m, const item &fake_gun ) +void avatar_action::fire_ranged_mutation( avatar &you, const item &fake_gun ) { - targeting_data args = targeting_data::use_mutation( fake_gun ); - you.set_targeting_data( args ); - avatar_action::aim_do_turn( you, m ); + you.assign_activity( aim_activity_actor::use_mutation( fake_gun ), false ); } -void avatar_action::fire_ranged_bionic( avatar &you, map &m, const item &fake_gun, - units::energy cost_per_shot ) +void avatar_action::fire_ranged_bionic( avatar &you, const item &fake_gun, + const units::energy &cost_per_shot ) { - targeting_data args = targeting_data::use_bionic( fake_gun, cost_per_shot ); - you.set_targeting_data( args ); - avatar_action::aim_do_turn( you, m ); + you.assign_activity( aim_activity_actor::use_bionic( fake_gun, cost_per_shot ), false ); } void avatar_action::fire_turret_manual( avatar &you, map &m, turret_data &turret ) @@ -985,15 +857,9 @@ void avatar_action::fire_turret_manual( avatar &you, map &m, turret_data &turret } g->temp_exit_fullscreen(); - g->m.draw( g->w_terrain, you.pos() ); target_handler::trajectory trajectory = target_handler::mode_turret_manual( you, turret ); if( !trajectory.empty() ) { - // Recenter our view - g->draw_ter(); - wrefresh( g->w_terrain ); - g->draw_panels(); - turret.fire( you, trajectory.back() ); } g->reenter_fullscreen(); @@ -1023,11 +889,10 @@ bool avatar_action::eat_here( avatar &you ) add_msg( _( "You're too full to eat the leaves from the %s." ), g->m.ter( you.pos() )->name() ); return true; } else { - you.moves -= 400; g->m.ter_set( you.pos(), t_grass ); add_msg( _( "You eat the underbrush." ) ); item food( "underbrush", calendar::turn, 1 ); - you.eat( food ); + you.assign_activity( player_activity( consume_activity_actor( food, false ) ) ); return true; } } @@ -1037,10 +902,9 @@ bool avatar_action::eat_here( avatar &you ) add_msg( _( "You're too full to graze." ) ); return true; } else { - you.moves -= 400; add_msg( _( "You eat the grass." ) ); item food( item( "grass", calendar::turn, 1 ) ); - you.eat( food ); + you.assign_activity( player_activity( consume_activity_actor( food, false ) ) ); if( g->m.ter( you.pos() ) == t_grass_tall ) { g->m.ter_set( you.pos(), t_grass_long ); } else if( g->m.ter( you.pos() ) == t_grass_long ) { @@ -1069,17 +933,17 @@ bool avatar_action::eat_here( avatar &you ) void avatar_action::eat( avatar &you ) { item_location loc = game_menus::inv::consume( you ); - avatar_action::eat( you, loc ); + avatar_action::eat( you, loc, true ); } -void avatar_action::eat( avatar &you, item_location loc ) +void avatar_action::eat( avatar &you, const item_location &loc, bool open_consume_menu ) { if( !loc ) { you.cancel_activity(); add_msg( _( "Never mind." ) ); return; } - you.assign_activity( player_activity( consume_activity_actor( loc ) ) ); + you.assign_activity( player_activity( consume_activity_actor( loc, open_consume_menu ) ) ); } void avatar_action::plthrow( avatar &you, item_location loc, @@ -1103,7 +967,6 @@ void avatar_action::plthrow( avatar &you, item_location loc, if( !loc ) { loc = game_menus::inv::titled_menu( you, _( "Throw item" ), _( "You don't have any items to throw." ) ); - g->refresh_all(); } if( !loc ) { @@ -1160,11 +1023,9 @@ void avatar_action::plthrow( avatar &you, item_location loc, const tripoint original_player_position = you.pos(); if( blind_throw_from_pos ) { you.setpos( *blind_throw_from_pos ); - g->draw_ter(); } g->temp_exit_fullscreen(); - g->m.draw( g->w_terrain, you.pos() ); target_handler::trajectory trajectory = target_handler::mode_throw( you, you.weapon, blind_throw_from_pos.has_value() ); @@ -1243,8 +1104,6 @@ void avatar_action::use_item( avatar &you, item_location &loc ) } } - g->refresh_all(); - if( use_in_place ) { update_lum( loc, false ); you.use( loc ); @@ -1271,13 +1130,5 @@ void avatar_action::unload( avatar &you ) return; } - item *it = loc.get_item(); - if( loc.where() != item_location::type::character ) { - it = loc.obtain( you ).get_item(); - } - if( you.unload( *it ) ) { - if( it->has_flag( "MAG_DESTROY" ) && it->ammo_remaining() == 0 ) { - you.remove_item( *it ); - } - } + you.unload( loc ); } diff --git a/src/avatar_action.h b/src/avatar_action.h index cb13230763b68..8610aef7cabe3 100644 --- a/src/avatar_action.h +++ b/src/avatar_action.h @@ -11,13 +11,14 @@ class item; class item_location; class map; class turret_data; +class aim_activity_actor; namespace avatar_action { /** Eat food or fuel 'E' (or 'a') */ void eat( avatar &you ); -void eat( avatar &you, item_location loc ); +void eat( avatar &you, const item_location &loc, bool open_consume_menu = false ); // special rules for eating: grazing etc // returns false if no rules are needed bool eat_here( avatar &you ); @@ -41,19 +42,20 @@ void autoattack( avatar &you, map &m ); void mend( avatar &you, item_location loc ); /** - * Validates avatar's targeting_data, then handles interactive parts of gun firing - * (target selection, aiming, etc.) + * Checks if the weapon is valid and if the player meets certain conditions for firing it. + * Used for validating ACT_AIM and turret weapon + * @return True if all conditions are true, otherwise false. */ -void aim_do_turn( avatar &you, map &m ); +bool can_fire_weapon( avatar &you, const map &m, const item &weapon ); /** Checks if the wielded weapon is a gun and can be fired then starts interactive aiming */ -void fire_wielded_weapon( avatar &you, map &m ); +void fire_wielded_weapon( avatar &you ); /** Stores fake gun specified by the mutation and starts interactive aiming */ -void fire_ranged_mutation( avatar &you, map &m, const item &fake_gun ); +void fire_ranged_mutation( avatar &you, const item &fake_gun ); /** Stores fake gun specified by the bionic and starts interactive aiming */ -void fire_ranged_bionic( avatar &you, map &m, const item &fake_gun, units::energy cost_per_shot ); +void fire_ranged_bionic( avatar &you, const item &fake_gun, const units::energy &cost_per_shot ); /** * Checks if the player can manually (with their 2 hands, not via vehicle controls) diff --git a/src/ballistics.cpp b/src/ballistics.cpp index d3dd62c2096a9..343720428dc45 100644 --- a/src/ballistics.cpp +++ b/src/ballistics.cpp @@ -92,10 +92,10 @@ static void drop_or_embed_projectile( const dealt_projectile_attack &attack ) bool embed = mon_there && effects.count( "NO_EMBED" ) == 0 && effects.count( "TANGLE" ) == 0; // Don't embed in small creatures if( embed ) { - const m_size critter_size = mon->get_size(); + const creature_size critter_size = mon->get_size(); const units::volume vol = dropped_item.volume(); - embed = embed && ( critter_size > MS_TINY || vol < 250_ml ); - embed = embed && ( critter_size > MS_SMALL || vol < 500_ml ); + embed = embed && ( critter_size > creature_size::tiny || vol < 250_ml ); + embed = embed && ( critter_size > creature_size::small || vol < 500_ml ); // And if we deal enough damage // Item volume bumps up the required damage too embed = embed && diff --git a/src/basecamp.cpp b/src/basecamp.cpp index 8573b5ca59657..f3600e8d82b77 100644 --- a/src/basecamp.cpp +++ b/src/basecamp.cpp @@ -39,7 +39,7 @@ #include "translations.h" #include "type_id.h" -static const zone_type_id zone_type_camp_storage( "CAMP_STORAGE" ); +static const zone_type_id zone_type_CAMP_STORAGE( "CAMP_STORAGE" ); const std::map base_camps::all_directions = { // direction, direction id, tab order, direction abbreviation with bracket, direction tab title @@ -303,7 +303,7 @@ std::vector basecamp::available_upgrades( const point &dir ) expansion_data &e_data = e->second; for( const recipe *recp_p : recipe_dict.all_blueprints() ) { const recipe &recp = *recp_p; - const std::string &bldg = recp.result(); + const std::string &bldg = recp.result().str(); // skip buildings that are completed if( e_data.provides.find( bldg ) != e_data.provides.end() ) { continue; @@ -611,8 +611,8 @@ void basecamp::form_crafting_inventory( map &target_map ) if( g->m.check_vehicle_zones( g->get_levz() ) ) { mgr.cache_vzones(); } - if( mgr.has_near( zone_type_camp_storage, dump_spot, 60 ) ) { - std::unordered_set src_set = mgr.get_near( zone_type_camp_storage, dump_spot, 60 ); + if( mgr.has_near( zone_type_CAMP_STORAGE, dump_spot, 60 ) ) { + std::unordered_set src_set = mgr.get_near( zone_type_CAMP_STORAGE, dump_spot, 60 ); _inv.form_from_zone( target_map, src_set, nullptr, false ); } /* @@ -625,7 +625,6 @@ void basecamp::form_crafting_inventory( map &target_map ) fuels.clear(); for( const itype_id &fuel_id : fuel_types ) { basecamp_fuel bcp_f; - bcp_f.available = 0; bcp_f.ammo_id = fuel_id; fuels.emplace_back( bcp_f ); } @@ -647,7 +646,7 @@ void basecamp::form_crafting_inventory( map &target_map ) bcp_r.consumed = 0; item camp_item( bcp_r.fake_id, 0 ); camp_item.item_tags.insert( "PSEUDO" ); - if( bcp_r.ammo_id != "NULL" ) { + if( !bcp_r.ammo_id.is_null() ) { for( basecamp_fuel &bcp_f : fuels ) { if( bcp_f.ammo_id == bcp_r.ammo_id ) { if( bcp_f.available > 0 ) { @@ -725,7 +724,7 @@ bool basecamp_action_components::choose_components() comp_selection is = g->u.select_item_component( it, batch_size_, base_._inv, true, filter, !base_.by_radio ); - if( is.use_from == cancel ) { + if( is.use_from == usage_from::cancel ) { return false; } item_selections_.push_back( is ); @@ -735,7 +734,7 @@ bool basecamp_action_components::choose_components() comp_selection ts = g->u.select_tool_component( it, batch_size_, base_._inv, DEFAULT_HOTKEYS, true, !base_.by_radio ); - if( ts.use_from == cancel ) { + if( ts.use_from == usage_from::cancel ) { return false; } tool_selections_.push_back( ts ); diff --git a/src/basecamp.h b/src/basecamp.h index 06b28f86930c9..08b595fa76b6c 100644 --- a/src/basecamp.h +++ b/src/basecamp.h @@ -26,7 +26,7 @@ class character_id; class npc; class time_duration; -enum class farm_ops; +enum class farm_ops : int; class item; class mission_data; class recipe; @@ -44,7 +44,6 @@ struct expansion_data { using npc_ptr = shared_ptr_fast; using comp_list = std::vector; using Group_tag = std::string; -using itype_id = std::string; namespace catacurses { @@ -234,7 +233,7 @@ class basecamp inline void set_dumping_spot( const tripoint &spot ) { dumping_spot = spot; } - void place_results( item result ); + void place_results( const item &result ); // mission description functions void add_available_recipes( mission_data &mission_key, const point &dir, diff --git a/src/behavior.cpp b/src/behavior.cpp index f124a9cc81550..92e18fcf4c7a8 100644 --- a/src/behavior.cpp +++ b/src/behavior.cpp @@ -18,9 +18,10 @@ void node_t::set_strategy( const strategy_t *new_strategy ) { strategy = new_strategy; } -void node_t::set_predicate( std::function new_predicate ) +void node_t::add_predicate( std::function + new_predicate, const std::string &argument ) { - predicate = new_predicate; + conditions.emplace_back( std::make_pair( new_predicate, argument ) ); } void node_t::set_goal( const std::string &new_goal ) { @@ -33,13 +34,25 @@ void node_t::add_child( const node_t *new_child ) behavior_return node_t::tick( const oracle_t *subject ) const { - assert( predicate ); if( children.empty() ) { - return { predicate( subject ), this }; + status_t result = status_t::running; + for( std::pair< predicate_type, std::string > predicate_pair : conditions ) { + result = predicate_pair.first( subject, predicate_pair.second ); + if( result != status_t::running ) { + break; + } + } + return { result, this }; } else { assert( strategy != nullptr ); - status_t result = predicate( subject ); - if( result == running ) { + status_t result = status_t::running; + for( std::pair< predicate_type, std::string > predicate_pair : conditions ) { + result = predicate_pair.first( subject, predicate_pair.second ); + if( result != status_t::running ) { + break; + } + } + if( result == status_t::running ) { return strategy->evaluate( subject, children ); } else { return { result, nullptr }; @@ -55,7 +68,7 @@ std::string node_t::goal() const std::string tree::tick( const oracle_t *subject ) { behavior_return result = root->tick( subject ); - active_node = result.result == running ? result.selection : nullptr; + active_node = result.result == status_t::running ? result.selection : nullptr; return goal(); } @@ -83,6 +96,13 @@ generic_factory behavior_factory( "behavior" ); std::list temp_node_data; } // namespace +/** @relates string_id */ +template<> +bool string_id::is_valid() const +{ + return behavior_factory.is_valid( *this ); +} + template<> const node_t &string_id::obj() const { @@ -94,11 +114,6 @@ void behavior::load_behavior( const JsonObject &jo, const std::string &src ) behavior_factory.load( jo, src ); } -node_t::node_t() -{ - predicate = &return_running; -} - void node_t::load( const JsonObject &jo, const std::string & ) { // We don't initialize the node unless it has no children (opportunistic optimization). @@ -120,15 +135,16 @@ void node_t::load( const JsonObject &jo, const std::string & ) jo.throw_error( "Invalid strategy in behavior." ); } } - if( jo.has_string( "predicate" ) ) { - auto new_predicate = predicate_map.find( jo.get_string( "predicate" ) ); - if( new_predicate != predicate_map.end() ) { - predicate = new_predicate->second; - } else { + for( const JsonObject &predicate_object : jo.get_array( "conditions" ) ) { + const std::string predicate_id = predicate_object.get_string( "predicate" ); + auto new_predicate = predicate_map.find( predicate_id ); + if( new_predicate == predicate_map.end() ) { debugmsg( "While loading %s, failed to find predicate %s.", - id.str(), jo.get_string( "predicate" ) ); - jo.throw_error( "Invalid strategy in behavior." ); + id.str(), predicate_id ); + jo.throw_error( "Invalid predicate in behavior." ); } + const std::string predicate_argument = predicate_object.get_string( "argument", "" ); + conditions.emplace_back( std::make_pair( new_predicate->second, predicate_argument ) ); } optional( jo, was_loaded, "goal", _goal ); } diff --git a/src/behavior.h b/src/behavior.h index d6aa2f460ce61..04094b00955aa 100644 --- a/src/behavior.h +++ b/src/behavior.h @@ -4,6 +4,7 @@ #include #include +#include #include #include "string_id.h" @@ -17,7 +18,7 @@ class oracle_t; class node_t; class strategy_t; -enum status_t : char { running, success, failure }; +enum class status_t : char { running, success, failure }; struct behavior_return { status_t result; const node_t *selection; @@ -55,14 +56,15 @@ class tree class node_t { public: - node_t(); + node_t() = default; // Entry point for tree traversal. behavior_return tick( const oracle_t *subject ) const; std::string goal() const; // Interface to construct a node. void set_strategy( const strategy_t *new_strategy ); - void set_predicate( std::function < status_t ( const oracle_t * )> new_predicate ); + void add_predicate( std::function < status_t ( const oracle_t *, const std::string & )> + new_predicate, const std::string &argument = "" ); void set_goal( const std::string &new_goal ); void add_child( const node_t *new_child ); @@ -73,8 +75,9 @@ class node_t bool was_loaded = false; private: std::vector children; - const strategy_t *strategy; - std::function predicate; + const strategy_t *strategy = nullptr; + using predicate_type = std::function; + std::vector> conditions; // TODO: make into an ID? std::string _goal; }; diff --git a/src/behavior_oracle.cpp b/src/behavior_oracle.cpp index 297e8d93e74f7..efeaad32513e5 100644 --- a/src/behavior_oracle.cpp +++ b/src/behavior_oracle.cpp @@ -11,19 +11,26 @@ namespace behavior { -status_t return_running( const oracle_t * ) +status_t return_running( const oracle_t *, const std::string & ) { - return running; + return status_t::running; } // Just a little helper to make populating predicate_map slightly less gross. -static std::function < status_t( const oracle_t * ) > -make_function( status_t ( character_oracle_t::* fun )() const ) +static std::function < status_t( const oracle_t *, const std::string & ) > +make_function( status_t ( character_oracle_t::* fun )( const std::string & ) const ) { - return static_cast( fun ); + return static_cast( fun ); } -std::unordered_map> predicate_map = {{ +static std::function < status_t( const oracle_t *, const std::string & ) > +make_function( status_t ( monster_oracle_t::* fun )( const std::string & ) const ) +{ + return static_cast( fun ); +} + +std::unordered_map> +predicate_map = {{ { "npc_needs_warmth_badly", make_function( &character_oracle_t::needs_warmth_badly ) }, { "npc_needs_water_badly", make_function( &character_oracle_t::needs_water_badly ) }, { "npc_needs_food_badly", make_function( &character_oracle_t::needs_food_badly ) }, @@ -32,9 +39,10 @@ std::unordered_map> pre { "npc_can_take_shelter", make_function( &character_oracle_t::can_take_shelter ) }, { "npc_has_water", make_function( &character_oracle_t::has_water ) }, { "npc_has_food", make_function( &character_oracle_t::has_food ) }, - { "monster_has_special", static_cast( &monster_oracle_t::has_special ) }, - { "monster_not_hallucination", static_cast( &monster_oracle_t::not_hallucination ) }, - { "monster_items_available", static_cast( &monster_oracle_t::items_available ) } + { "monster_not_hallucination", make_function( &monster_oracle_t::not_hallucination ) }, + { "monster_items_available", make_function( &monster_oracle_t::items_available ) }, + { "monster_adjacent_plants", make_function( &monster_oracle_t::adjacent_plants ) }, + { "monster_special_available", make_function( &monster_oracle_t::special_available ) } } }; diff --git a/src/behavior_oracle.h b/src/behavior_oracle.h index 79171642bb53a..eafe3c835a307 100644 --- a/src/behavior_oracle.h +++ b/src/behavior_oracle.h @@ -8,7 +8,7 @@ namespace behavior { -enum status_t : char; +enum class status_t : char; /** * An oracle is a class in charge of introspecting into a game entity in a particular way. @@ -21,9 +21,10 @@ class oracle_t { }; -status_t return_running( const oracle_t * ); +status_t return_running( const oracle_t *, const std::string & ); -extern std::unordered_map> predicate_map; +extern std::unordered_map> + predicate_map; } // namespace behavior #endif // CATA_SRC_BEHAVIOR_ORACLE_H diff --git a/src/behavior_strategy.cpp b/src/behavior_strategy.cpp index 3ee7e7990d78c..8c83842e39bea 100644 --- a/src/behavior_strategy.cpp +++ b/src/behavior_strategy.cpp @@ -26,11 +26,11 @@ behavior_return sequential_t::evaluate( const oracle_t *subject, { for( const node_t *child : children ) { behavior_return outcome = child->tick( subject ); - if( outcome.result == running || outcome.result == failure ) { + if( outcome.result == status_t::running || outcome.result == status_t::failure ) { return outcome; } } - return { success, nullptr }; + return { status_t::success, nullptr }; } // A standard behavior strategy, execute runnable children in order until one succeeds. @@ -39,11 +39,11 @@ behavior_return fallback_t::evaluate( const oracle_t *subject, { for( const node_t *child : children ) { behavior_return outcome = child->tick( subject ); - if( outcome.result == running || outcome.result == success ) { + if( outcome.result == status_t::running || outcome.result == status_t::success ) { return outcome; } } - return { failure, nullptr }; + return { status_t::failure, nullptr }; } // A non-standard behavior strategy, execute runnable children in order unconditionally. @@ -52,9 +52,9 @@ behavior_return sequential_until_done_t::evaluate( const oracle_t *subject, { for( const node_t *child : children ) { behavior_return outcome = child->tick( subject ); - if( outcome.result == running ) { + if( outcome.result == status_t::running ) { return outcome; } } - return { success, nullptr }; + return { status_t::success, nullptr }; } diff --git a/src/behavior_strategy.h b/src/behavior_strategy.h index b1b2ea376d2e1..d88c0681a1c69 100644 --- a/src/behavior_strategy.h +++ b/src/behavior_strategy.h @@ -12,7 +12,7 @@ namespace behavior class node_t; class oracle_t; -enum status_t : char; +enum class status_t : char; struct behavior_return; class strategy_t diff --git a/src/bionics.cpp b/src/bionics.cpp index 1839605669641..b8e92db303a8a 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -71,6 +71,7 @@ #include "teleport.h" #include "translations.h" #include "ui.h" +#include "ui_manager.h" #include "units.h" #include "value_ptr.h" #include "vehicle.h" @@ -115,14 +116,25 @@ static const efftype_id effect_took_flumed( "took_flumed" ); static const efftype_id effect_took_prozac( "took_prozac" ); static const efftype_id effect_took_prozac_bad( "took_prozac_bad" ); static const efftype_id effect_took_xanax( "took_xanax" ); -static const efftype_id effect_under_op( "under_operation" ); +static const efftype_id effect_under_operation( "under_operation" ); static const efftype_id effect_visuals( "visuals" ); static const efftype_id effect_weed_high( "weed_high" ); static const itype_id fuel_type_battery( "battery" ); +static const itype_id fuel_type_metabolism( "metabolism" ); +static const itype_id fuel_type_muscle( "muscle" ); static const itype_id fuel_type_sun_light( "sunlight" ); static const itype_id fuel_type_wind( "wind" ); +static const itype_id itype_adv_UPS_off( "adv_UPS_off" ); +static const itype_id itype_anesthetic( "anesthetic" ); +static const itype_id itype_pseudo_bio_picklock( "pseudo_bio_picklock" ); +static const itype_id itype_radiocontrol( "radiocontrol" ); +static const itype_id itype_remotevehcontrol( "remotevehcontrol" ); +static const itype_id itype_UPS( "UPS" ); +static const itype_id itype_UPS_off( "UPS_off" ); +static const itype_id itype_water_clean( "water_clean" ); + static const fault_id fault_bionic_salvaged( "fault_bionic_salvaged" ); static const skill_id skill_computer( "computer" ); @@ -153,7 +165,6 @@ static const bionic_id bio_lockpick( "bio_lockpick" ); static const bionic_id bio_magnet( "bio_magnet" ); static const bionic_id bio_meteorologist( "bio_meteorologist" ); static const bionic_id bio_nanobots( "bio_nanobots" ); -static const bionic_id bio_night( "bio_night" ); static const bionic_id bio_painkiller( "bio_painkiller" ); static const bionic_id bio_plutdump( "bio_plutdump" ); static const bionic_id bio_power_storage( "bio_power_storage" ); @@ -168,7 +179,7 @@ static const bionic_id bio_time_freeze( "bio_time_freeze" ); static const bionic_id bio_tools( "bio_tools" ); static const bionic_id bio_torsionratchet( "bio_torsionratchet" ); static const bionic_id bio_water_extractor( "bio_water_extractor" ); -static const bionic_id bionic_TOOLS_EXTEND( "bio_tools_extend" ); +static const bionic_id bio_tools_extend( "bio_tools_extend" ); // Aftershock stuff! static const bionic_id afs_bio_dopamine_stimulators( "afs_bio_dopamine_stimulators" ); @@ -234,12 +245,19 @@ bool bionic_data::has_flag( const std::string &flag ) const return flags.count( flag ) > 0; } +itype_id bionic_data::itype() const +{ + // For now we just assume that the bionic id matches the corresponding item + // id (as strings). + return itype_id( id.str() ); +} + bool bionic_data::is_included( const bionic_id &id ) const { return std::find( included_bionics.begin(), included_bionics.end(), id ) != included_bionics.end(); } -void bionic_data::load( const JsonObject &jsobj, const std::string ) +void bionic_data::load( const JsonObject &jsobj, const std::string & ) { mandatory( jsobj, was_loaded, "id", id ); @@ -260,7 +278,7 @@ void bionic_data::load( const JsonObject &jsobj, const std::string ) optional( jsobj, was_loaded, "fuel_efficiency", fuel_efficiency, 0 ); optional( jsobj, was_loaded, "passive_fuel_efficiency", passive_fuel_efficiency, 0 ); - optional( jsobj, was_loaded, "fake_item", fake_item, "" ); + optional( jsobj, was_loaded, "fake_item", fake_item, itype_id() ); optional( jsobj, was_loaded, "enchantments", enchantments ); @@ -294,7 +312,7 @@ void bionic_data::load( const JsonObject &jsobj, const std::string ) // clear data first so that copy-from can override it encumbrance.clear(); for( JsonArray ja : jsobj.get_array( "encumbrance" ) ) { - encumbrance.emplace( get_body_part_token( ja.get_string( 0 ) ), + encumbrance.emplace( bodypart_str_id( ja.get_string( 0 ) ), ja.get_int( 1 ) ); } } @@ -368,7 +386,7 @@ void bionic_data::check_bionic_consistency() if( bio.has_flag( flag_BIO_GUN ) && bio.has_flag( flag_BIO_WEAPON ) ) { debugmsg( "Bionic %s specified as both gun and weapon bionic", bio.id.c_str() ); } - if( !bio.fake_item.empty() && + if( !bio.fake_item.is_empty() && !item::type_is_defined( bio.fake_item ) ) { debugmsg( "Bionic %s has unknown fake_item %s", bio.id.c_str(), bio.fake_item.c_str() ); @@ -402,7 +420,7 @@ void bionic_data::check_bionic_consistency() bio.id.c_str(), bio.upgraded_bionic.c_str() ); } } - if( !item::type_is_defined( bio.id.c_str() ) && !bio.included ) { + if( !item::type_is_defined( bio.itype() ) && !bio.included ) { debugmsg( "Bionic %s has no defined item version", bio.id.c_str() ); } } @@ -467,7 +485,7 @@ void npc::check_or_use_weapon_cbm( const bionic_id &cbm_id ) return; } - const int ups_charges = charges_of( "UPS" ); + const int ups_charges = charges_of( itype_UPS ); int ammo_count = weapon.ammo_remaining(); const int ups_drain = weapon.get_gun_ups_drain(); if( ups_drain > 0 ) { @@ -501,7 +519,7 @@ void npc::check_or_use_weapon_cbm( const bionic_id &cbm_id ) // // Well, because like diseases, which are also in a Big Switch, bionics don't // share functions.... -bool Character::activate_bionic( int b, bool eff_only ) +bool Character::activate_bionic( int b, bool eff_only, bool *close_bionics_ui ) { bionic &bio = ( *my_bionics )[b]; const bool mounted = is_mounted(); @@ -512,9 +530,9 @@ bool Character::activate_bionic( int b, bool eff_only ) } // Special compatibility code for people who updated saves with their claws out - if( ( weapon.typeId() == static_cast( bio_claws_weapon ) && + if( ( weapon.typeId().str() == bio_claws_weapon.str() && bio.id == bio_claws_weapon ) || - ( weapon.typeId() == static_cast( bio_blade_weapon ) && + ( weapon.typeId().str() == bio_blade_weapon.str() && bio.id == bio_blade_weapon ) ) { return deactivate_bionic( b ); } @@ -564,15 +582,14 @@ bool Character::activate_bionic( int b, bool eff_only ) }; item tmp_item; - const w_point weatherPoint = *g->weather.weather_precise; - // On activation effects go here if( bio.info().has_flag( flag_BIO_GUN ) ) { add_msg_activate(); refund_power(); // Power usage calculated later, in avatar_action::fire - g->refresh_all(); - avatar_action::fire_ranged_bionic( g->u, g->m, item( bio.info().fake_item ), - bio.info().power_activate ); + if( close_bionics_ui ) { + *close_bionics_ui = true; + } + avatar_action::fire_ranged_bionic( g->u, item( bio.info().fake_item ), bio.info().power_activate ); } else if( bio.info().has_flag( flag_BIO_WEAPON ) ) { if( weapon.has_flag( flag_NO_UNWIELD ) ) { add_msg_if_player( m_info, _( "Deactivate your %s first!" ), weapon.tname() ); @@ -595,8 +612,7 @@ bool Character::activate_bionic( int b, bool eff_only ) weapon.invlet = '#'; if( bio.ammo_count > 0 ) { weapon.ammo_set( bio.ammo_loaded, bio.ammo_count ); - avatar_action::fire_wielded_weapon( g->u, g->m ); - g->refresh_all(); + avatar_action::fire_wielded_weapon( g->u ); } } else if( bio.id == bio_ears && has_active_bionic( bio_earplugs ) ) { add_msg_activate(); @@ -757,26 +773,48 @@ bool Character::activate_bionic( int b, bool eff_only ) } } - const size_t win_h = std::min( static_cast( TERMY ), bad.size() + good.size() + 2 ); const int win_w = 46; - catacurses::window w = catacurses::newwin( win_h, win_w, point( ( TERMX - win_w ) / 2, - ( TERMY - win_h ) / 2 ) ); - draw_border( w, c_red, string_format( " %s ", _( "Blood Test Results" ) ) ); - if( good.empty() && bad.empty() ) { - trim_and_print( w, point( 2, 1 ), win_w - 3, c_white, _( "No effects." ) ); - } else { - for( size_t line = 1; line < ( win_h - 1 ) && line <= good.size() + bad.size(); ++line ) { - if( line <= bad.size() ) { - trim_and_print( w, point( 2, line ), win_w - 3, c_red, bad[line - 1] ); - } else { - trim_and_print( w, point( 2, line ), win_w - 3, c_green, - good[line - 1 - bad.size()] ); + size_t win_h = 0; + catacurses::window w; + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + win_h = std::min( static_cast( TERMY ), + std::max( 1, bad.size() + good.size() ) + 2 ); + w = catacurses::newwin( win_h, win_w, + point( ( TERMX - win_w ) / 2, ( TERMY - win_h ) / 2 ) ); + ui.position_from_window( w ); + } ); + ui.mark_resize(); + ui.on_redraw( [&]( const ui_adaptor & ) { + draw_border( w, c_red, string_format( " %s ", _( "Blood Test Results" ) ) ); + if( good.empty() && bad.empty() ) { + trim_and_print( w, point( 2, 1 ), win_w - 3, c_white, _( "No effects." ) ); + } else { + for( size_t line = 1; line < ( win_h - 1 ) && line <= good.size() + bad.size(); ++line ) { + if( line <= bad.size() ) { + trim_and_print( w, point( 2, line ), win_w - 3, c_red, bad[line - 1] ); + } else { + trim_and_print( w, point( 2, line ), win_w - 3, c_green, + good[line - 1 - bad.size()] ); + } } } + wnoutrefresh( w ); + } ); + input_context ctxt( "BLOOD_TEST_RESULTS" ); + ctxt.register_action( "CONFIRM" ); + ctxt.register_action( "QUIT" ); + ctxt.register_action( "HELP_KEYBINDINGS" ); + bool stop = false; + // Display new messages + g->invalidate_main_ui_adaptor(); + while( !stop ) { + ui_manager::redraw(); + const std::string action = ctxt.handle_input(); + if( action == "CONFIRM" || action == "QUIT" ) { + stop = true; + } } - wrefresh( w ); - catacurses::refresh(); - inp_mngr.wait_for_any_key(); } else if( bio.id == bio_blood_filter ) { add_msg_activate(); static const std::vector removable = {{ @@ -806,7 +844,6 @@ bool Character::activate_bionic( int b, bool eff_only ) add_msg_activate(); add_msg_if_player( m_info, _( "You can now run faster, assisted by joint servomotors." ) ); } else if( bio.id == bio_lighter ) { - g->refresh_all(); const cata::optional pnt = choose_adjacent( _( "Start a fire where?" ) ); if( pnt && g->m.is_flammable( *pnt ) ) { add_msg_activate(); @@ -838,7 +875,6 @@ bool Character::activate_bionic( int b, bool eff_only ) add_effect( effect_adrenaline, 20_minutes ); } } else if( bio.id == bio_emp ) { - g->refresh_all(); if( const cata::optional pnt = choose_adjacent( _( "Create an EMP where?" ) ) ) { add_msg_activate(); explosion_handler::emp_blast( *pnt ); @@ -864,7 +900,7 @@ bool Character::activate_bionic( int b, bool eff_only ) no_target = false; if( query_yn( _( "Extract water from the %s" ), colorize( it.tname(), it.color_in_inventory() ) ) ) { - item water( "water_clean", calendar::turn, avail ); + item water( itype_water_clean, calendar::turn, avail ); water.set_item_temperature( 0.00001 * it.temperature ); if( liquid_handler::consume_liquid( water ) ) { add_msg_activate(); @@ -907,7 +943,6 @@ bool Character::activate_bionic( int b, bool eff_only ) } } - g->refresh_all(); for( const std::pair &pr : affected ) { projectile proj; proj.speed = 50; @@ -923,22 +958,21 @@ bool Character::activate_bionic( int b, bool eff_only ) mod_moves( -100 ); } else if( bio.id == bio_lockpick ) { - g->refresh_all(); - const cata::optional pnt = choose_adjacent( _( "Use your lockpick where?" ) ); - if( pnt && g->m.has_flag( "PICKABLE", *pnt ) ) { - g->u.i_add( item( "pseudo_bio_picklock" ) ); - std::vector bio_picklocks = g->u.items_with( []( const item & itm ) { - return itm.typeId() == "pseudo_bio_picklock"; - } ); - if( !bio_picklocks.empty() ) { - add_msg_activate(); - g->u.assign_activity( activity_id( "ACT_LOCKPICK" ), 400 ); - g->u.activity.targets.push_back( item_location( g->u, bio_picklocks[0] ) ); - g->u.activity.placement = *pnt; + if( !is_avatar() ) { + return false; + } + cata::optional target = lockpick_activity_actor::select_location( g->u ); + if( target.has_value() ) { + add_msg_activate(); + item fake_lockpick = item( itype_pseudo_bio_picklock ); + int moves = to_moves( 4_seconds ); + assign_activity( lockpick_activity_actor( moves, cata::nullopt, fake_lockpick, + g->m.getabs( *target ) ) ); + if( close_bionics_ui ) { + *close_bionics_ui = true; } } else { refund_power(); - add_msg_if_player( m_info, _( "There is nothing to lockpick nearby." ) ); return false; } } else if( bio.id == bio_flashbang ) { @@ -965,6 +999,7 @@ bool Character::activate_bionic( int b, bool eff_only ) double windpower = 100.0f * get_local_windpower( g->weather.windspeed + vehwindspeed, cur_om_ter, pos(), g->weather.winddirection, g->is_sheltered( pos() ) ); add_msg_if_player( m_info, _( "Temperature: %s." ), print_temperature( player_local_temp ) ); + const w_point weatherPoint = *g->weather.weather_precise; add_msg_if_player( m_info, _( "Relative Humidity: %s." ), print_humidity( get_local_humidity( weatherPoint.humidity, g->weather.weather, @@ -1077,7 +1112,7 @@ bool Character::activate_bionic( int b, bool eff_only ) reset(); // Also reset crafting inventory cache if this bionic spawned a fake item - if( !bio.info().fake_item.empty() ) { + if( !bio.info().fake_item.is_empty() ) { invalidate_crafting_inventory(); } @@ -1131,7 +1166,8 @@ bool Character::deactivate_bionic( int b, bool eff_only ) add_msg_if_npc( m_info, _( " withdraws %s %s." ), disp_name( true ), weapon.tname() ); } - bio.ammo_loaded = weapon.ammo_data() != nullptr ? weapon.ammo_data()->get_id() : "null"; + bio.ammo_loaded = + weapon.ammo_data() != nullptr ? weapon.ammo_data()->get_id() : itype_id::NULL_ID(); bio.ammo_count = static_cast( weapon.ammo_remaining() ); weapon = item(); invalidate_crafting_inventory(); @@ -1139,9 +1175,10 @@ bool Character::deactivate_bionic( int b, bool eff_only ) } else if( bio.id == bio_cqb ) { martial_arts_data.selected_style_check(); } else if( bio.id == bio_remote ) { - if( g->remoteveh() != nullptr && !has_active_item( "remotevehcontrol" ) ) { + if( g->remoteveh() != nullptr && !has_active_item( itype_remotevehcontrol ) ) { g->setremoteveh( nullptr ); - } else if( !get_value( "remote_controlling" ).empty() && !has_active_item( "radiocontrol" ) ) { + } else if( !get_value( "remote_controlling" ).empty() && + !has_active_item( itype_radiocontrol ) ) { set_value( "remote_controlling", "" ); } } else if( bio.id == bio_tools ) { @@ -1156,14 +1193,14 @@ bool Character::deactivate_bionic( int b, bool eff_only ) } // Also reset crafting inventory cache if this bionic spawned a fake item - if( !bio.info().fake_item.empty() ) { + if( !bio.info().fake_item.is_empty() ) { invalidate_crafting_inventory(); } // Compatibility with old saves without the toolset hammerspace - if( !eff_only && bio.id == bio_tools && !has_bionic( bionic_TOOLS_EXTEND ) ) { + if( !eff_only && bio.id == bio_tools && !has_bionic( bio_tools_extend ) ) { // E X T E N D T O O L S - add_bionic( bionic_TOOLS_EXTEND ); + add_bionic( bio_tools_extend ); } return true; @@ -1173,17 +1210,17 @@ bool Character::burn_fuel( int b, bool start ) { bionic &bio = ( *my_bionics )[b]; if( ( bio.info().fuel_opts.empty() && !bio.info().is_remote_fueled ) || - bio.is_this_fuel_powered( "muscle" ) ) { + bio.is_this_fuel_powered( fuel_type_muscle ) ) { return true; } - const bool is_metabolism_powered = bio.is_this_fuel_powered( "metabolism" ); + const bool is_metabolism_powered = bio.is_this_fuel_powered( fuel_type_metabolism ); const bool is_cable_powered = bio.info().is_remote_fueled; std::vector fuel_available = get_fuel_available( bio.id ); float effective_efficiency = get_effective_efficiency( b, bio.info().fuel_efficiency ); if( is_cable_powered ) { const itype_id remote_fuel = find_remote_fuel(); - if( !remote_fuel.empty() ) { + if( !remote_fuel.is_empty() ) { fuel_available.emplace_back( remote_fuel ); if( remote_fuel == fuel_type_sun_light ) { effective_efficiency = item_worn_with_flag( "SOLARPACK_ON" ).type->solar_efficiency; @@ -1222,9 +1259,9 @@ bool Character::burn_fuel( int b, bool start ) } else if( is_perpetual_fuel ) { current_fuel_stock = 1; } else if( is_cable_powered ) { - current_fuel_stock = std::stoi( get_value( "rem_" + fuel ) ); + current_fuel_stock = std::stoi( get_value( "rem_" + fuel.str() ) ); } else { - current_fuel_stock = std::stoi( get_value( fuel ) ); + current_fuel_stock = std::stoi( get_value( fuel.str() ) ); } if( !bio.has_flag( flag_SAFE_FUEL_OFF ) && @@ -1285,10 +1322,10 @@ bool Character::burn_fuel( int b, bool start ) } else if( to_consume == 1 ) { current_fuel_stock = 0; } - set_value( "rem_" + fuel, std::to_string( current_fuel_stock ) ); + set_value( "rem_" + fuel.str(), std::to_string( current_fuel_stock ) ); } else { current_fuel_stock -= 1; - set_value( fuel, std::to_string( current_fuel_stock ) ); + set_value( fuel.str(), std::to_string( current_fuel_stock ) ); update_fuel_storage( fuel ); mod_power_level( units::from_kilojoule( fuel_energy ) * effective_efficiency ); } @@ -1303,7 +1340,7 @@ bool Character::burn_fuel( int b, bool start ) _( "Stored calories are below the safe threshold, 's %s shuts down to preserve their health." ), bio.info().name ); } else { - remove_value( fuel ); + remove_value( fuel.str() ); add_msg_player_or_npc( m_info, _( "Your %s runs out of fuel and turn off." ), _( "'s %s runs out of fuel and turn off." ), @@ -1324,7 +1361,7 @@ void Character::passive_power_gen( int b ) { const bionic &bio = ( *my_bionics )[b]; const float passive_fuel_efficiency = bio.info().passive_fuel_efficiency; - if( bio.info().fuel_opts.empty() || bio.is_this_fuel_powered( "muscle" ) || + if( bio.info().fuel_opts.empty() || bio.is_this_fuel_powered( fuel_type_muscle ) || passive_fuel_efficiency == 0.0 ) { return; } @@ -1387,11 +1424,11 @@ itype_id Character::find_remote_fuel( bool look_only ) return itm.get_var( "cable" ) == "plugged_in"; }; if( !look_only ) { - if( has_charges( "UPS_off", 1, used_ups ) ) { - set_value( "rem_battery", std::to_string( charges_of( "UPS_off", + if( has_charges( itype_UPS_off, 1, used_ups ) ) { + set_value( "rem_battery", std::to_string( charges_of( itype_UPS_off, units::to_kilojoule( max_power_level ), used_ups ) ) ); - } else if( has_charges( "adv_UPS_off", 1, used_ups ) ) { - set_value( "rem_battery", std::to_string( charges_of( "adv_UPS_off", + } else if( has_charges( itype_adv_UPS_off, 1, used_ups ) ) { + set_value( "rem_battery", std::to_string( charges_of( itype_adv_UPS_off, units::to_kilojoule( max_power_level ), used_ups ) ) ); } else { set_value( "rem_battery", std::to_string( 0 ) ); @@ -1437,11 +1474,11 @@ int Character::consume_remote_fuel( int amount ) static const item_filter used_ups = [&]( const item & itm ) { return itm.get_var( "cable" ) == "plugged_in"; }; - if( has_charges( "UPS_off", unconsumed_amount, used_ups ) ) { - use_charges( "UPS_off", unconsumed_amount, used_ups ); + if( has_charges( itype_UPS_off, unconsumed_amount, used_ups ) ) { + use_charges( itype_UPS_off, unconsumed_amount, used_ups ); unconsumed_amount -= 1; - } else if( has_charges( "adv_UPS_off", unconsumed_amount, used_ups ) ) { - use_charges( "adv_UPS_off", roll_remainder( unconsumed_amount * 0.6 ), used_ups ); + } else if( has_charges( itype_adv_UPS_off, unconsumed_amount, used_ups ) ) { + use_charges( itype_adv_UPS_off, roll_remainder( unconsumed_amount * 0.6 ), used_ups ); unconsumed_amount -= 1; } } @@ -1487,7 +1524,7 @@ float Character::get_effective_efficiency( int b, float fuel_efficiency ) const std::map< bodypart_str_id, size_t > &occupied_bodyparts = bio.info().occupied_bodyparts; for( const std::pair< const bodypart_str_id, size_t > &elem : occupied_bodyparts ) { for( const item &i : worn ) { - if( i.covers( elem.first->token ) && !i.has_flag( flag_ALLOWS_NATURAL_ATTACKS ) && + if( i.covers( elem.first ) && !i.has_flag( flag_ALLOWS_NATURAL_ATTACKS ) && !i.has_flag( flag_SEMITANGIBLE ) && !i.has_flag( flag_PERSONAL ) && !i.has_flag( flag_AURA ) ) { coverage += i.get_coverage(); @@ -1513,7 +1550,6 @@ static bool attempt_recharge( Character &p, bionic &bio, units::energy &amount, int rate = 1 ) { const bionic_data &info = bio.info(); - const units::energy armor_power_cost = 1_kJ; units::energy power_cost = info.power_over_time * factor; bool recharged = false; @@ -1525,6 +1561,7 @@ static bool attempt_recharge( Character &p, bionic &bio, units::energy &amount, return w.active && w.is_power_armor(); } ); if( !powered_armor ) { + const units::energy armor_power_cost = 1_kJ; power_cost -= armor_power_cost * factor; } } @@ -1548,12 +1585,13 @@ void Character::process_bionic( int b ) std::vector fuel_available = get_fuel_available( bio.id ); if( bio.id->is_remote_fueled ) { const itype_id rem_fuel = find_remote_fuel(); - const std::string rem_amount = get_value( "rem_" + rem_fuel ); + const std::string rem_amount = get_value( "rem_" + rem_fuel.str() ); int rem_fuel_stock = 0; if( !rem_amount.empty() ) { rem_fuel_stock = std::stoi( rem_amount ); } - if( !rem_fuel.empty() && ( rem_fuel_stock > 0 || item( rem_fuel ).has_flag( flag_PERPETUAL ) ) ) { + if( !rem_fuel.is_empty() && ( rem_fuel_stock > 0 || + item( rem_fuel ).has_flag( flag_PERPETUAL ) ) ) { fuel_available.emplace_back( rem_fuel ); } } @@ -1606,11 +1644,7 @@ void Character::process_bionic( int b ) } // Bionic effects on every turn they are active go here. - if( bio.id == bio_night ) { - if( calendar::once_every( 5_turns ) ) { - add_msg_if_player( m_neutral, _( "Artificial night generator active!" ) ); - } - } else if( bio.id == bio_remote ) { + if( bio.id == bio_remote ) { if( g->remoteveh() == nullptr && get_value( "remote_controlling" ).empty() ) { bio.powered = false; add_msg_if_player( m_warning, _( "Your %s has lost connection and is turning off." ), @@ -1644,7 +1678,7 @@ void Character::process_bionic( int b ) heal( part_to_heal, 1 ); mod_stored_kcal( -5 ); const body_part bp_healed = hp_to_bp( part_to_heal ); - int hp_percent = float( hp_cur[part_to_heal] ) / hp_max[part_to_heal] * 100; + int hp_percent = static_cast( hp_cur[part_to_heal] ) / hp_max[part_to_heal] * 100; if( has_effect( effect_bleed, bp_healed ) && rng( 0, 100 ) < hp_percent ) { remove_effect( effect_bleed, bp_healed ); try_to_heal_bleeding = false; @@ -1720,6 +1754,15 @@ void Character::process_bionic( int b ) } } +void Character::roll_critical_bionics_failure( body_part bp ) +{ + const hp_part limb = bp_to_hp( bp ); + + if( one_in( hp_cur[limb] / 4 ) ) { + hp_cur[limb] -= hp_cur[limb]; + } +} + void Character::bionics_uninstall_failure( int difficulty, int success, float adjusted_skill ) { // "success" should be passed in as a negative integer representing how far off we @@ -1753,14 +1796,14 @@ void Character::bionics_uninstall_failure( int difficulty, int success, float ad case 3: for( const bodypart_id &bp : get_all_body_parts() ) { const body_part enum_bp = bp->token; - if( has_effect( effect_under_op, enum_bp ) && enum_bp != num_bp ) { + if( has_effect( effect_under_operation, enum_bp ) ) { if( bp_hurt.count( mutate_to_main_part( enum_bp ) ) > 0 ) { continue; } bp_hurt.emplace( mutate_to_main_part( enum_bp ) ); - apply_damage( this, bp, rng( 2, 6 ), true ); + apply_damage( this, bp, rng( 5, 10 ), true ); add_msg_player_or_npc( m_bad, _( "Your %s is damaged." ), _( "'s %s is damaged." ), - body_part_name_accusative( enum_bp ) ); + body_part_name_accusative( bp ) ); } } break; @@ -1769,15 +1812,18 @@ void Character::bionics_uninstall_failure( int difficulty, int success, float ad case 5: for( const bodypart_id &bp : get_all_body_parts() ) { const body_part enum_bp = bp->token; - if( has_effect( effect_under_op, enum_bp ) ) { + if( has_effect( effect_under_operation, enum_bp ) ) { if( bp_hurt.count( mutate_to_main_part( enum_bp ) ) > 0 ) { continue; } bp_hurt.emplace( mutate_to_main_part( enum_bp ) ); - apply_damage( this, bp, rng( 30, 80 ), true ); + + apply_damage( this, bp, rng( 25, 50 ), true ); + roll_critical_bionics_failure( enum_bp ); + add_msg_player_or_npc( m_bad, _( "Your %s is severely damaged." ), _( "'s %s is severely damaged." ), - body_part_name_accusative( enum_bp ) ); + body_part_name_accusative( bp ) ); } } break; @@ -1831,7 +1877,7 @@ void Character::bionics_uninstall_failure( monster &installer, player &patient, case 1: if( !has_trait( trait_NOPAIN ) ) { patient.add_msg_if_player( m_bad, _( "It really hurts!" ) ); - patient.mod_pain( rng( failure_level * 3, failure_level * 6 ) ); + patient.mod_pain( rng( 10, 30 ) ); } break; @@ -1839,7 +1885,7 @@ void Character::bionics_uninstall_failure( monster &installer, player &patient, case 3: for( const bodypart_id &bp : get_all_body_parts() ) { const body_part enum_bp = bp->token; - if( has_effect( effect_under_op, enum_bp ) ) { + if( has_effect( effect_under_operation, enum_bp ) ) { if( bp_hurt.count( mutate_to_main_part( enum_bp ) ) > 0 ) { continue; } @@ -1847,7 +1893,7 @@ void Character::bionics_uninstall_failure( monster &installer, player &patient, patient.apply_damage( this, bp, rng( failure_level, failure_level * 2 ), true ); if( u_see ) { patient.add_msg_player_or_npc( m_bad, _( "Your %s is damaged." ), _( "'s %s is damaged." ), - body_part_name_accusative( enum_bp ) ); + body_part_name_accusative( bp ) ); } } } @@ -1857,16 +1903,19 @@ void Character::bionics_uninstall_failure( monster &installer, player &patient, case 5: for( const bodypart_id &bp : get_all_body_parts() ) { const body_part enum_bp = bp->token; - if( has_effect( effect_under_op, enum_bp ) ) { + if( has_effect( effect_under_operation, enum_bp ) ) { if( bp_hurt.count( mutate_to_main_part( enum_bp ) ) > 0 ) { continue; } bp_hurt.emplace( mutate_to_main_part( enum_bp ) ); - patient.apply_damage( this, bp, rng( 30, 80 ), true ); + + patient.apply_damage( this, bp, rng( 25, 50 ), true ); + roll_critical_bionics_failure( enum_bp ); + if( u_see ) { patient.add_msg_player_or_npc( m_bad, _( "Your %s is severely damaged." ), _( "'s %s is severely damaged." ), - body_part_name_accusative( enum_bp ) ); + body_part_name_accusative( bp ) ); } } } @@ -1877,7 +1926,7 @@ void Character::bionics_uninstall_failure( monster &installer, player &patient, bool Character::has_enough_anesth( const itype &cbm, player &patient ) { if( !cbm.bionic ) { - debugmsg( "has_enough_anesth( const itype *cbm ): %s is not a bionic", cbm.get_id() ); + debugmsg( "has_enough_anesth( const itype *cbm ): %s is not a bionic", cbm.get_id().str() ); return false; } @@ -1927,7 +1976,7 @@ void Character::consume_anesth_requirment( const itype &cbm, player &patient ) invalidate_crafting_inventory(); } -bool Character::has_installation_requirment( bionic_id bid ) +bool Character::has_installation_requirment( const bionic_id &bid ) { if( bid->installation_requirement.is_empty() ) { return false; @@ -1945,7 +1994,7 @@ bool Character::has_installation_requirment( bionic_id bid ) return true; } -void Character::consume_installation_requirment( bionic_id bid ) +void Character::consume_installation_requirment( const bionic_id &bid ) { for( const auto &e : bid->installation_requirement->get_components() ) { as_player()->consume_items( e, 1, is_crafting_component ); @@ -1957,13 +2006,9 @@ void Character::consume_installation_requirment( bionic_id bid ) } // bionic manipulation adjusted skill -float Character::bionics_adjusted_skill( const skill_id &most_important_skill, - const skill_id &important_skill, - const skill_id &least_important_skill, - int skill_level ) +float Character::bionics_adjusted_skill( bool autodoc, int skill_level ) const { - int pl_skill = bionics_pl_skill( most_important_skill, important_skill, least_important_skill, - skill_level ); + int pl_skill = bionics_pl_skill( autodoc, skill_level ); // for chance_of_success calculation, shift skill down to a float between ~0.4 - 30 float adjusted_skill = static_cast( pl_skill ) - std::min( static_cast( 40 ), @@ -1972,10 +2017,22 @@ float Character::bionics_adjusted_skill( const skill_id &most_important_skill, return adjusted_skill; } -int Character::bionics_pl_skill( const skill_id &most_important_skill, - const skill_id &important_skill, - const skill_id &least_important_skill, int skill_level ) +int Character::bionics_pl_skill( bool autodoc, int skill_level ) const { + skill_id most_important_skill; + skill_id important_skill; + skill_id least_important_skill; + + if( autodoc ) { + most_important_skill = skill_firstaid; + important_skill = skill_computer; + least_important_skill = skill_electronics; + } else { + most_important_skill = skill_electronics; + important_skill = skill_firstaid; + least_important_skill = skill_mechanics; + } + int pl_skill; if( skill_level == -1 ) { pl_skill = int_cur * 4 + @@ -2003,6 +2060,11 @@ int Character::bionics_pl_skill( const skill_id &most_important_skill, return pl_skill; } +int bionic_success_chance( bool autodoc, int skill_level, int difficulty, const Character &target ) +{ + return bionic_manip_cos( target.bionics_adjusted_skill( autodoc, skill_level ), difficulty ); +} + // bionic manipulation chance of success int bionic_manip_cos( float adjusted_skill, int bionic_difficulty ) { @@ -2030,8 +2092,8 @@ bool Character::can_uninstall_bionic( const bionic_id &b_id, player &installer, { // if malfunctioning bionics doesn't have associated item it gets a difficulty of 12 int difficulty = 12; - if( item::type_is_defined( b_id.c_str() ) ) { - auto type = item::find_type( b_id.c_str() ); + if( item::type_is_defined( b_id->itype() ) ) { + auto type = item::find_type( b_id->itype() ); if( type->bionic ) { difficulty = type->bionic->difficulty; } @@ -2070,19 +2132,8 @@ bool Character::can_uninstall_bionic( const bionic_id &b_id, player &installer, } // removal of bionics adds +2 difficulty over installation - float adjusted_skill; - if( autodoc ) { - adjusted_skill = installer.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics, - skill_level ); - } else { - adjusted_skill = installer.bionics_adjusted_skill( skill_electronics, - skill_firstaid, - skill_mechanics, - skill_level ); - } - int chance_of_success = bionic_manip_cos( adjusted_skill, difficulty + 2 ); + int chance_of_success = bionic_success_chance( autodoc, skill_level, difficulty + 2, + installer ); if( chance_of_success >= 100 ) { if( !g->u.query_yn( @@ -2106,37 +2157,16 @@ bool Character::uninstall_bionic( const bionic_id &b_id, player &installer, bool { // if malfunctioning bionics doesn't have associated item it gets a difficulty of 12 int difficulty = 12; - if( item::type_is_defined( b_id.c_str() ) ) { - auto type = item::find_type( b_id.c_str() ); + if( item::type_is_defined( b_id->itype() ) ) { + auto type = item::find_type( b_id->itype() ); if( type->bionic ) { difficulty = type->bionic->difficulty; } } // removal of bionics adds +2 difficulty over installation - float adjusted_skill; - int pl_skill; - if( autodoc ) { - adjusted_skill = installer.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics, - skill_level ); - pl_skill = installer.bionics_pl_skill( skill_firstaid, - skill_computer, - skill_electronics, - skill_level ); - } else { - adjusted_skill = installer.bionics_adjusted_skill( skill_electronics, - skill_firstaid, - skill_mechanics, - skill_level ); - pl_skill = installer.bionics_pl_skill( skill_electronics, - skill_firstaid, - skill_mechanics, - skill_level ); - } - - int chance_of_success = bionic_manip_cos( adjusted_skill, difficulty + 2 ); + int pl_skill = bionics_pl_skill( autodoc, skill_level ); + int chance_of_success = bionic_success_chance( autodoc, skill_level, difficulty + 2, installer ); // Surgery is imminent, retract claws or blade if active for( size_t i = 0; i < installer.my_bionics->size(); i++ ) { @@ -2166,13 +2196,13 @@ bool Character::uninstall_bionic( const bionic_id &b_id, player &installer, bool activity.str_values.push_back( "false" ); } for( const std::pair &elem : b_id->occupied_bodyparts ) { - add_effect( effect_under_op, difficulty * 20_minutes, elem.first->token, true, difficulty ); + add_effect( effect_under_operation, difficulty * 20_minutes, elem.first->token, true, difficulty ); } return true; } -void Character::perform_uninstall( bionic_id bid, int difficulty, int success, +void Character::perform_uninstall( const bionic_id &bid, int difficulty, int success, const units::energy &power_lvl, int pl_skill ) { if( success > 0 ) { @@ -2188,7 +2218,7 @@ void Character::perform_uninstall( bionic_id bid, int difficulty, int success, mod_max_power_level( -power_lvl ); item cbm( "burnt_out_bionic" ); - if( item::type_is_defined( bid.c_str() ) ) { + if( item::type_is_defined( bid->itype() ) ) { cbm = item( bid.c_str() ); } cbm.set_flag( flag_FILTHY ); @@ -2206,15 +2236,12 @@ void Character::perform_uninstall( bionic_id bid, int difficulty, int success, } g->m.invalidate_map_cache( g->get_levz() ); - g->refresh_all(); } bool Character::uninstall_bionic( const bionic &target_cbm, monster &installer, player &patient, float adjusted_skill ) { - const std::string ammo_type( "anesthetic" ); - - if( installer.ammo[ammo_type] <= 0 ) { + if( installer.ammo[itype_anesthetic] <= 0 ) { if( g->u.sees( installer ) ) { add_msg( _( "The %s's anesthesia kit looks empty." ), installer.name() ); } @@ -2242,7 +2269,7 @@ bool Character::uninstall_bionic( const bionic &target_cbm, monster &installer, installer.name(), patient.disp_name() ); } - installer.ammo[ammo_type] -= 1; + installer.ammo[itype_anesthetic] -= 1; patient.add_effect( effect_narcosis, duration ); patient.add_effect( effect_sleep, duration ); @@ -2269,7 +2296,7 @@ bool Character::uninstall_bionic( const bionic &target_cbm, monster &installer, patient.mod_max_power_level( -target_cbm.info().capacity ); patient.remove_bionic( target_cbm.id ); item cbm( "burnt_out_bionic" ); - if( item::type_is_defined( target_cbm.id.c_str() ) ) { + if( item::type_is_defined( target_cbm.info().itype() ) ) { cbm = item( target_cbm.id.c_str() ); } cbm.set_flag( flag_FILTHY ); @@ -2280,7 +2307,6 @@ bool Character::uninstall_bionic( const bionic &target_cbm, monster &installer, } else { bionics_uninstall_failure( installer, patient, difficulty, success, adjusted_skill ); } - g->refresh_all(); return false; } @@ -2298,7 +2324,6 @@ bool Character::can_install_bionics( const itype &type, Character &installer, bo const bionic_id &bioid = type.bionic->id; const int difficult = type.bionic->difficulty; - float adjusted_skill; // if we're doing self install if( !autodoc && installer.is_avatar() ) { @@ -2306,18 +2331,7 @@ bool Character::can_install_bionics( const itype &type, Character &installer, bo installer.has_installation_requirment( bioid ); } - if( autodoc ) { - adjusted_skill = installer.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics, - skill_level ); - } else { - adjusted_skill = installer.bionics_adjusted_skill( skill_electronics, - skill_firstaid, - skill_mechanics, - skill_level ); - } - int chance_of_success = bionic_manip_cos( adjusted_skill, difficult ); + int chance_of_success = bionic_success_chance( autodoc, skill_level, difficult, installer ); std::vector conflicting_muts; for( const trait_id &mid : bioid->canceled_mutations ) { @@ -2337,10 +2351,10 @@ bool Character::can_install_bionics( const itype &type, Character &installer, bo // show all requirements which are not satisfied if( !issues.empty() ) { std::string detailed_info; - for( auto &elem : issues ) { + for( const std::pair &elem : issues ) { //~ : more slot(s) needed. detailed_info += string_format( _( "\n%s: %i more slot(s) needed." ), - body_part_name_as_heading( elem.first->token, 1 ), + body_part_name_as_heading( elem.first, 1 ), elem.second ); } popup( _( "Not enough space for bionic installation!%s" ), detailed_info ); @@ -2364,7 +2378,7 @@ bool Character::can_install_bionics( const itype &type, Character &installer, bo return true; } -float Character::env_surgery_bonus( int radius ) +float Character::env_surgery_bonus( int radius ) const { float bonus = 1.0; for( const tripoint &cell : g->m.points_in_radius( pos(), radius ) ) { @@ -2386,28 +2400,8 @@ bool Character::install_bionics( const itype &type, player &installer, bool auto const bionic_id &bioid = type.bionic->id; const bionic_id &upbioid = bioid->upgraded_bionic; const int difficulty = type.bionic->difficulty; - float adjusted_skill; - int pl_skill; - if( autodoc ) { - adjusted_skill = installer.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics, - skill_level ); - pl_skill = installer.bionics_pl_skill( skill_firstaid, - skill_computer, - skill_electronics, - skill_level ); - } else { - adjusted_skill = installer.bionics_adjusted_skill( skill_electronics, - skill_firstaid, - skill_mechanics, - skill_level ); - pl_skill = installer.bionics_pl_skill( skill_electronics, - skill_firstaid, - skill_mechanics, - skill_level ); - } - int chance_of_success = bionic_manip_cos( adjusted_skill, difficulty ); + int pl_skill = installer.bionics_pl_skill( autodoc, skill_level ); + int chance_of_success = bionic_success_chance( autodoc, skill_level, difficulty, installer ); // Practice skills only if conducting manual installation if( !autodoc ) { @@ -2441,14 +2435,14 @@ bool Character::install_bionics( const itype &type, player &installer, bool auto activity.str_values.push_back( "false" ); } for( const std::pair &elem : bioid->occupied_bodyparts ) { - add_effect( effect_under_op, difficulty * 20_minutes, elem.first->token, true, difficulty ); + add_effect( effect_under_operation, difficulty * 20_minutes, elem.first->token, true, difficulty ); } return true; } -void Character::perform_install( bionic_id bid, bionic_id upbid, int difficulty, int success, - int pl_skill, const std::string &installer_name, +void Character::perform_install( const bionic_id &bid, const bionic_id &upbid, int difficulty, + int success, int pl_skill, const std::string &installer_name, const std::vector &trait_to_rem, const tripoint &patient_pos ) { if( success > 0 ) { @@ -2483,7 +2477,6 @@ void Character::perform_install( bionic_id bid, bionic_id upbid, int difficulty, bionics_install_failure( bid, installer_name, difficulty, success, adjusted_skill, patient_pos ); } g->m.invalidate_map_cache( g->get_levz() ); - g->refresh_all(); } void Character::bionics_install_failure( const bionic_id &bid, const std::string &installer, @@ -2528,24 +2521,7 @@ void Character::bionics_install_failure( const bionic_id &bid, const std::string break; case 2: - case 3: - for( const bodypart_id &bp : get_all_body_parts() ) { - const body_part enum_bp = bp->token; - if( has_effect( effect_under_op, enum_bp ) && enum_bp != num_bp ) { - if( bp_hurt.count( mutate_to_main_part( enum_bp ) ) > 0 ) { - continue; - } - bp_hurt.emplace( mutate_to_main_part( enum_bp ) ); - apply_damage( this, bp, rng( 30, 80 ), true ); - add_msg_player_or_npc( m_bad, _( "Your %s is damaged." ), _( "'s %s is damaged." ), - body_part_name_accusative( enum_bp ) ); - } - } - drop_cbm = true; - break; - - case 4: - case 5: { + case 3: { add_msg( m_bad, _( "The installation is faulty!" ) ); std::vector valid; std::copy_if( begin( faulty_bionics ), end( faulty_bionics ), std::back_inserter( valid ), @@ -2573,8 +2549,29 @@ void Character::bionics_install_failure( const bionic_id &bid, const std::string add_bionic( id ); g->events().send( getID(), id ); } + + break; + } + case 4: + case 5: { + for( const bodypart_id &bp : get_all_body_parts() ) { + const body_part enum_bp = bp->token; + if( has_effect( effect_under_operation, enum_bp ) ) { + if( bp_hurt.count( mutate_to_main_part( enum_bp ) ) > 0 ) { + continue; + } + bp_hurt.emplace( mutate_to_main_part( enum_bp ) ); + + apply_damage( this, bp, rng( 25, 50 ), true ); + roll_critical_bionics_failure( enum_bp ); + + add_msg_player_or_npc( m_bad, _( "Your %s is damaged." ), _( "'s %s is damaged." ), + body_part_name_accusative( bp ) ); + } + } + drop_cbm = true; + break; } - break; } } if( drop_cbm ) { @@ -2593,11 +2590,11 @@ std::string list_occupied_bps( const bionic_id &bio_id, const std::string &intro return ""; } std::string desc = intro; - for( const std::pair, size_t> &elem : bio_id->occupied_bodyparts ) { + for( const std::pair &elem : bio_id->occupied_bodyparts ) { desc += ( each_bp_on_new_line ? "\n" : " " ); //~ ( slots); desc += string_format( _( "%s (%i slots);" ), - body_part_name_as_heading( elem.first->token, 1 ), + body_part_name_as_heading( elem.first.id(), 1 ), elem.second ); } return desc; @@ -2803,7 +2800,7 @@ bool bionic::has_flag( const std::string &flag ) const int bionic::get_quality( const quality_id &quality ) const { const auto &i = info(); - if( i.fake_item.empty() ) { + if( i.fake_item.is_empty() ) { return INT_MIN; } @@ -2906,7 +2903,7 @@ void bionic::deserialize( JsonIn &jsin ) powered = jo.get_bool( "powered" ); charge_timer = jo.get_int( "charge" ); if( jo.has_string( "ammo_loaded" ) ) { - ammo_loaded = jo.get_string( "ammo_loaded" ); + jo.read( "ammo_loaded", ammo_loaded, true ); } if( jo.has_int( "ammo_count" ) ) { ammo_count = jo.get_int( "ammo_count" ); diff --git a/src/bionics.h b/src/bionics.h index 6d8b856be6b16..4641b24b19d2b 100644 --- a/src/bionics.h +++ b/src/bionics.h @@ -23,8 +23,6 @@ class JsonObject; class JsonOut; class player; -using itype_id = std::string; - struct bionic_data { bionic_data(); @@ -42,8 +40,6 @@ struct bionic_data { int charge_time = 0; /** Power bank size **/ units::energy capacity = 0_kJ; - - /** Is true if a bionic is an active instead of a passive bionic */ bool activated = false; /** @@ -92,12 +88,12 @@ struct bionic_data { /** * Body part encumbered by this bionic, mapped to the amount of encumbrance caused. */ - std::map encumbrance; + std::map encumbrance; /** * Fake item created for crafting with this bionic available. * Also the item used for gun bionics. */ - std::string fake_item; + itype_id fake_item; /** * Mutations/trait that are removed upon installing this CBM. * E.g. enhanced optic bionic may cancel HYPEROPIC trait. @@ -132,10 +128,12 @@ struct bionic_data { cata::flat_set flags; bool has_flag( const std::string &flag ) const; + itype_id itype() const; + bool is_included( const bionic_id &id ) const; bool was_loaded = false; - void load( const JsonObject &obj, std::string ); + void load( const JsonObject &obj, const std::string & ); static void load_bionic( const JsonObject &jo, const std::string &src ); static const std::vector &get_all(); static void check_bionic_consistency(); @@ -147,7 +145,7 @@ struct bionic { char invlet = 'a'; bool powered = false; /* Ammunition actually loaded in this bionic gun in deactivated state */ - itype_id ammo_loaded = "null"; + itype_id ammo_loaded = itype_id::NULL_ID(); /* Ammount of ammo actually held inside by this bionic gun in deactivated state */ unsigned int ammo_count = 0; /* An amount of time during which this bionic has been rendered inoperative. */ @@ -199,6 +197,7 @@ char get_free_invlet( player &p ); std::string list_occupied_bps( const bionic_id &bio_id, const std::string &intro, bool each_bp_on_new_line = true ); +int bionic_success_chance( bool autodoc, int skill_level, int difficulty, const Character &target ); int bionic_manip_cos( float adjusted_skill, int bionic_difficulty ); std::vector bionics_cancelling_trait( const std::vector &bios, diff --git a/src/bionics_ui.cpp b/src/bionics_ui.cpp index af93546e937af..40395bd0318d0 100644 --- a/src/bionics_ui.cpp +++ b/src/bionics_ui.cpp @@ -84,17 +84,17 @@ static void draw_bionics_titlebar( const catacurses::window &window, player *p, fuel_string += colorize( temp_fuel.tname(), c_green ) + " "; continue; } - fuel_string += temp_fuel.tname() + ": " + colorize( p->get_value( fuel ), + fuel_string += temp_fuel.tname() + ": " + colorize( p->get_value( fuel.str() ), c_green ) + "/" + std::to_string( p->get_total_fuel_capacity( fuel ) ) + " "; } if( bio.info().is_remote_fueled && p->has_active_bionic( bio.id ) ) { const itype_id rem_fuel = p->find_remote_fuel( true ); - if( !rem_fuel.empty() ) { + if( !rem_fuel.is_empty() ) { const item tmp_rem_fuel( rem_fuel ); if( tmp_rem_fuel.has_flag( flag_PERPETUAL ) ) { fuel_string += colorize( tmp_rem_fuel.tname(), c_green ) + " "; } else { - fuel_string += tmp_rem_fuel.tname() + ": " + colorize( p->get_value( "rem_" + rem_fuel ), + fuel_string += tmp_rem_fuel.tname() + ": " + colorize( p->get_value( "rem_" + rem_fuel.str() ), c_green ) + " "; } found_fuel = true; @@ -163,7 +163,7 @@ static void draw_bionics_titlebar( const catacurses::window &window, player *p, // NOLINTNEXTLINE(cata-use-named-point-constants) int lines_count = fold_and_print( window, point( 1, 1 ), pwr_str_pos - 2, c_white, desc ); fold_and_print( window, point( 1, ++lines_count ), pwr_str_pos - 2, c_white, fuel_string ); - wrefresh( window ); + wnoutrefresh( window ); } //builds the power usage string of a given bionic @@ -242,7 +242,7 @@ static void draw_bionics_tabs( const catacurses::window &win, const size_t activ // -| mvwputch( win, point( width - 1, height - 1 ), BORDER_COLOR, LINE_XOXX ); - wrefresh( win ); + wnoutrefresh( win ); } static void draw_description( const catacurses::window &win, const bionic &bio ) @@ -263,7 +263,7 @@ static void draw_description( const catacurses::window &win, const bionic &bio ) fold_and_print( win, point( 0, ypos ), width, c_light_gray, list_occupied_bps( bio.id, _( "This bionic occupies the following body parts:" ), each_bp_on_new_line ) ); } - wrefresh( win ); + wnoutrefresh( win ); } static void draw_connectors( const catacurses::window &win, const int start_y, const int start_x, @@ -437,8 +437,13 @@ void player::power_bionics() catacurses::window w_title; catacurses::window w_tabs; + bool hide = false; ui_adaptor ui; ui.on_screen_resize( [&]( ui_adaptor & ui ) { + if( hide ) { + ui.position( point_zero, point_zero ); + return; + } // Main window /** Total required height is: * top frame line: + 1 @@ -509,6 +514,10 @@ void player::power_bionics() ctxt.register_action( "TOGGLE_AUTO_START" ); ui.on_redraw( [&]( const ui_adaptor & ) { + if( hide ) { + return; + } + std::vector *current_bionic_list = ( tab_mode == TAB_ACTIVE ? &active : &passive ); werase( wBio ); @@ -520,7 +529,7 @@ void player::power_bionics() for( const bodypart_id &bp : get_all_body_parts() ) { const int total = get_total_bionics_slots( bp ); const std::string s = string_format( "%s: %d/%d", - body_part_name_as_heading( bp->token, 1 ), + body_part_name_as_heading( bp, 1 ), total - get_free_bionics_slots( bp ), total ); bps.push_back( s ); max_width = std::max( max_width, utf8_width( s ) ); @@ -573,7 +582,7 @@ void player::power_bionics() draw_scrollbar( wBio, cursor, LIST_HEIGHT, current_bionic_list->size(), point( 0, list_start_y ) ); - wrefresh( wBio ); + wnoutrefresh( wBio ); draw_bionics_tabs( w_tabs, active.size(), passive.size(), tab_mode ); draw_bionics_titlebar( w_title, this, menu_mode ); @@ -647,7 +656,6 @@ void player::power_bionics() } const int newch = popup_getkey( _( "%s; enter new letter. Space to clear. Esc to cancel." ), tmp->id->name ); - wrefresh( wBio ); if( newch == ch || newch == KEY_ESCAPE ) { continue; } @@ -747,15 +755,20 @@ void player::power_bionics() if( menu_mode == ACTIVATING ) { if( bio_data.activated ) { int b = tmp - &( *my_bionics )[0]; + hide = true; + ui.mark_resize(); if( tmp->powered ) { deactivate_bionic( b ); } else { - activate_bionic( b ); - // Clear the menu if we are firing a bionic gun - if( tmp->info().has_flag( "BIONIC_GUN" ) || tmp->ammo_count > 0 ) { + bool close_ui = false; + activate_bionic( b, false, &close_ui ); + // Exit this ui if we are firing a complex bionic + if( close_ui || tmp->ammo_count > 0 ) { break; } } + hide = false; + ui.mark_resize(); g->invalidate_main_ui_adaptor(); if( moves < 0 ) { return; diff --git a/src/bodypart.cpp b/src/bodypart.cpp index ad4d53403817e..110bf6d1ec3fd 100644 --- a/src/bodypart.cpp +++ b/src/bodypart.cpp @@ -14,6 +14,8 @@ #include "pldata.h" #include "type_id.h" +static const anatomy_id anatomy_human_anatomy( "human_anatomy" ); + side opposite_side( side s ) { switch( s ) { @@ -227,8 +229,6 @@ void body_part_type::load( const JsonObject &jo, const std::string & ) optional( jo, was_loaded, "stylish_bonus", stylish_bonus, 0 ); optional( jo, was_loaded, "squeamish_penalty", squeamish_penalty, 0 ); - - optional( jo, was_loaded, "bionic_slots", bionic_slots_, 0 ); part_side = jo.get_enum_value( "side" ); @@ -285,44 +285,41 @@ void body_part_type::check() const } } -std::string body_part_name( body_part bp, int number ) +std::string body_part_name( const bodypart_id &bp, int number ) { - const auto &bdy = get_bp( bp ); // See comments in `body_part_type::load` about why these two strings are // not a single translation object with plural enabled. - return number > 1 ? bdy.name_multiple.translated() : bdy.name.translated(); + return number > 1 ? bp->name_multiple.translated() : bp->name.translated(); } -std::string body_part_name_accusative( body_part bp, int number ) +std::string body_part_name_accusative( const bodypart_id &bp, int number ) { - const auto &bdy = get_bp( bp ); // See comments in `body_part_type::load` about why these two strings are // not a single translation object with plural enabled. - return number > 1 ? bdy.accusative_multiple.translated() : bdy.accusative.translated(); + return number > 1 ? bp->accusative_multiple.translated() : bp->accusative.translated(); } -std::string body_part_name_as_heading( body_part bp, int number ) +std::string body_part_name_as_heading( const bodypart_id &bp, int number ) { - const auto &bdy = get_bp( bp ); // See comments in `body_part_type::load` about why these two strings are // not a single translation object with plural enabled. - return number > 1 ? bdy.name_as_heading_multiple.translated() : bdy.name_as_heading.translated(); + return number > 1 ? bp->name_as_heading_multiple.translated() : bp->name_as_heading.translated(); } -std::string body_part_hp_bar_ui_text( body_part bp ) +std::string body_part_hp_bar_ui_text( const bodypart_id &bp ) { - return _( get_bp( bp ).hp_bar_ui_text ); + return _( bp->hp_bar_ui_text ); } -std::string encumb_text( body_part bp ) +std::string encumb_text( const bodypart_id &bp ) { - const std::string &txt = get_bp( bp ).encumb_text; + const std::string &txt = bp->encumb_text; return !txt.empty() ? _( txt ) : txt; } body_part random_body_part( bool main_parts_only ) { - const auto &part = human_anatomy->random_body_part(); + const auto &part = anatomy_human_anatomy->random_body_part(); return main_parts_only ? part->main_part->token : part->token; } @@ -340,3 +337,47 @@ std::string get_body_part_id( body_part bp ) { return get_bp( bp ).legacy_id; } + +body_part_set body_part_set::unify_set( const body_part_set &rhs ) +{ + for( const bodypart_str_id &i : rhs.parts ) { + if( parts.count( i ) == 0 ) { + parts.insert( i ); + } + } + return *this; +} + +body_part_set body_part_set::intersect_set( const body_part_set &rhs ) +{ + for( const bodypart_str_id &j : parts ) { + if( rhs.parts.count( j ) == 0 ) { + parts.erase( j ); + } + } + return *this; +} + +body_part_set body_part_set::substract_set( const body_part_set &rhs ) +{ + for( const bodypart_str_id &j : rhs.parts ) { + if( parts.count( j ) > 0 ) { + parts.erase( j ); + } + } + return *this; +} + +body_part_set body_part_set::make_intersection( const body_part_set &rhs ) +{ + body_part_set new_intersection; + new_intersection.parts = parts; + return new_intersection.intersect_set( rhs ); +} + +void body_part_set::fill( const std::vector &bps ) +{ + for( const bodypart_id &bp : bps ) { + parts.insert( bp.id() ); + } +} diff --git a/src/bodypart.h b/src/bodypart.h index 38035fc0b14a8..cd50ad5cc9bc9 100644 --- a/src/bodypart.h +++ b/src/bodypart.h @@ -8,6 +8,7 @@ #include #include +#include "flat_set.h" #include "int_id.h" #include "string_id.h" #include "translations.h" @@ -133,59 +134,44 @@ struct body_part_type { class body_part_set { private: - std::bitset parts; - explicit body_part_set( const std::bitset &other ) : parts( other ) { } + cata::flat_set parts; + + explicit body_part_set( const cata::flat_set &other ) : parts( other ) { } public: body_part_set() = default; - body_part_set( std::initializer_list bps ) { - for( const auto &bp : bps ) { + body_part_set( std::initializer_list bps ) { + for( const bodypart_str_id &bp : bps ) { set( bp ); } } + body_part_set unify_set( const body_part_set &rhs ); + body_part_set intersect_set( const body_part_set &rhs ); - body_part_set &operator|=( const body_part_set &rhs ) { - parts |= rhs.parts; - return *this; - } - body_part_set &operator&=( const body_part_set &rhs ) { - parts &= rhs.parts; - return *this; - } - - body_part_set operator|( const body_part_set &rhs ) const { - return body_part_set( parts | rhs.parts ); - } - body_part_set operator&( const body_part_set &rhs ) const { - return body_part_set( parts & rhs.parts ); - } + body_part_set make_intersection( const body_part_set &rhs ); + body_part_set substract_set( const body_part_set &rhs ); - body_part_set operator~() const { - return body_part_set( ~parts ); - } + void fill( const std::vector &bps ); - static body_part_set all() { - return ~body_part_set(); - } - bool test( const body_part &bp ) const { - return parts.test( bp ); + bool test( const bodypart_str_id &bp ) const { + return parts.count( bp ) > 0; } - void set( const body_part &bp ) { - parts.set( bp ); + void set( const bodypart_str_id &bp ) { + parts.insert( bp ); } - void reset( const body_part &bp ) { - parts.reset( bp ); + void reset( const bodypart_str_id &bp ) { + parts.erase( bp ); } bool any() const { - return parts.any(); + return !parts.empty(); } bool none() const { - return parts.none(); + return parts.empty(); } size_t count() const { - return parts.count(); + return parts.size(); } template @@ -208,21 +194,21 @@ side opposite_side( side s ); const std::array bp_aiOther = {{0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10}}; /** Returns the matching name of the body_part token. */ -std::string body_part_name( body_part bp, int number = 1 ); +std::string body_part_name( const bodypart_id &bp, int number = 1 ); /** Returns the matching accusative name of the body_part token, i.e. "Shrapnel hits your X". * These are identical to body_part_name above in English, but not in some other languages. */ -std::string body_part_name_accusative( body_part bp, int number = 1 ); +std::string body_part_name_accusative( const bodypart_id &bp, int number = 1 ); /** Returns the name of the body parts in a context where the name is used as * a heading or title e.g. "Left Arm". */ -std::string body_part_name_as_heading( body_part bp, int number ); +std::string body_part_name_as_heading( const bodypart_id &bp, int number ); /** Returns the body part text to be displayed in the HP bar */ -std::string body_part_hp_bar_ui_text( body_part bp ); +std::string body_part_hp_bar_ui_text( const bodypart_id &bp ); /** Returns the matching encumbrance text for a given body_part token. */ -std::string encumb_text( body_part bp ); +std::string encumb_text( const bodypart_id &bp ); /** Returns a random body_part token. main_parts_only will limit it to arms, legs, torso, and head. */ body_part random_body_part( bool main_parts_only = false ); diff --git a/src/calendar.cpp b/src/calendar.cpp index 2a3e119bb5500..3d702bbe708ba 100644 --- a/src/calendar.cpp +++ b/src/calendar.cpp @@ -8,6 +8,7 @@ #include #include "debug.h" +#include "enum_conversions.h" #include "options.h" #include "rng.h" #include "string_formatter.h" @@ -60,11 +61,37 @@ double default_daylight_level() return 100.0; } +time_duration lunar_month() +{ + return 29.530588853 * 1_days; +} + +namespace io +{ +// *INDENT-OFF* +template<> +std::string enum_to_string( moon_phase phase_num ) +{ + switch( phase_num ) { + case moon_phase::MOON_NEW: return "MOON_NEW"; + case moon_phase::MOON_WAXING_CRESCENT: return "MOON_WAXING_CRESCENT"; + case moon_phase::MOON_HALF_MOON_WAXING: return "MOON_HALF_MOON_WAXING"; + case moon_phase::MOON_WAXING_GIBBOUS: return "MOON_WAXING_GIBBOUS"; + case moon_phase::MOON_FULL: return "MOON_FULL"; + case moon_phase::MOON_WANING_CRESCENT: return "MOON_WANING_CRESCENT"; + case moon_phase::MOON_HALF_MOON_WANING: return "MOON_HALF_MOON_WANING"; + case moon_phase::MOON_WANING_GIBBOUS: return "MOON_WANING_GIBBOUS"; + case moon_phase::MOON_PHASE_MAX: break; + } + debugmsg( "Invalid moon_phase %d", phase_num ); + abort(); +} +// *INDENT-ON* +} // namespace io + moon_phase get_moon_phase( const time_point &p ) { - static constexpr time_duration synodic_month = 29.530588853 * 1_days; - const time_duration moon_phase_duration = - calendar::season_from_default_ratio() * synodic_month; + const time_duration moon_phase_duration = calendar::season_from_default_ratio() * lunar_month(); // Switch moon phase at noon so it stays the same all night const int num_middays = to_days( p - calendar::turn_zero + 1_days / 2 ); const time_duration nearest_midnight = num_middays * 1_days; @@ -192,29 +219,28 @@ double current_daylight_level( const time_point &p ) float sunlight( const time_point &p, const bool vision ) { const time_duration now = time_past_midnight( p ); - const time_duration sunrise = time_past_midnight( ::sunrise( p ) ); - const time_duration sunset = time_past_midnight( ::sunset( p ) ); - const double daylight_level = current_daylight_level( p ); + const double daylight = current_daylight_level( p ); int current_phase = static_cast( get_moon_phase( p ) ); if( current_phase > static_cast( MOON_PHASE_MAX ) / 2 ) { current_phase = static_cast( MOON_PHASE_MAX ) - current_phase; } - const int moonlight = vision ? 1 + static_cast( current_phase * moonlight_per_quarter ) : - 0; + const double moonlight = vision ? 1. + moonlight_per_quarter * current_phase : 0.; if( is_night( p ) ) { return moonlight; } else if( is_dawn( p ) ) { + const time_duration sunrise = time_past_midnight( ::sunrise( p ) ); const double percent = ( now - sunrise ) / twilight_duration; - return static_cast( moonlight ) * ( 1. - percent ) + daylight_level * percent; + return moonlight * ( 1. - percent ) + daylight * percent; } else if( is_dusk( p ) ) { + const time_duration sunset = time_past_midnight( ::sunset( p ) ); const double percent = ( now - sunset ) / twilight_duration; - return daylight_level * ( 1. - percent ) + static_cast( moonlight ) * percent; + return daylight * ( 1. - percent ) + moonlight * percent; } else { - return daylight_level; + return daylight; } } diff --git a/src/calendar.h b/src/calendar.h index 3918fb0498c03..22c8c936a1c85 100644 --- a/src/calendar.h +++ b/src/calendar.h @@ -376,12 +376,12 @@ constexpr time_duration operator"" _weeks( const unsigned long long int v ) */ std::string to_string( const time_duration &d ); -enum class clipped_align { +enum class clipped_align : int { none, right, }; -enum class clipped_unit { +enum class clipped_unit : int { forever, second, minute, @@ -453,54 +453,46 @@ class time_point return point.turn_; } - // TODO: implement minutes_of_hour and so on and use it. -}; + friend constexpr inline bool operator<( const time_point &lhs, const time_point &rhs ) { + return to_turn( lhs ) < to_turn( rhs ); + } + friend constexpr inline bool operator<=( const time_point &lhs, const time_point &rhs ) { + return to_turn( lhs ) <= to_turn( rhs ); + } + friend constexpr inline bool operator>( const time_point &lhs, const time_point &rhs ) { + return to_turn( lhs ) > to_turn( rhs ); + } + friend constexpr inline bool operator>=( const time_point &lhs, const time_point &rhs ) { + return to_turn( lhs ) >= to_turn( rhs ); + } + friend constexpr inline bool operator==( const time_point &lhs, const time_point &rhs ) { + return to_turn( lhs ) == to_turn( rhs ); + } + friend constexpr inline bool operator!=( const time_point &lhs, const time_point &rhs ) { + return to_turn( lhs ) != to_turn( rhs ); + } -constexpr inline bool operator<( const time_point &lhs, const time_point &rhs ) -{ - return to_turn( lhs ) < to_turn( rhs ); -} -constexpr inline bool operator<=( const time_point &lhs, const time_point &rhs ) -{ - return to_turn( lhs ) <= to_turn( rhs ); -} -constexpr inline bool operator>( const time_point &lhs, const time_point &rhs ) -{ - return to_turn( lhs ) > to_turn( rhs ); -} -constexpr inline bool operator>=( const time_point &lhs, const time_point &rhs ) -{ - return to_turn( lhs ) >= to_turn( rhs ); -} -constexpr inline bool operator==( const time_point &lhs, const time_point &rhs ) -{ - return to_turn( lhs ) == to_turn( rhs ); -} -constexpr inline bool operator!=( const time_point &lhs, const time_point &rhs ) -{ - return to_turn( lhs ) != to_turn( rhs ); -} + friend constexpr inline time_duration operator-( + const time_point &lhs, const time_point &rhs ) { + return time_duration::from_turns( to_turn( lhs ) - to_turn( rhs ) ); + } + friend constexpr inline time_point operator+( + const time_point &lhs, const time_duration &rhs ) { + return time_point::from_turn( to_turn( lhs ) + to_turns( rhs ) ); + } + friend time_point inline &operator+=( time_point &lhs, const time_duration &rhs ) { + return lhs = time_point::from_turn( to_turn( lhs ) + to_turns( rhs ) ); + } + friend constexpr inline time_point operator-( + const time_point &lhs, const time_duration &rhs ) { + return time_point::from_turn( to_turn( lhs ) - to_turns( rhs ) ); + } + friend time_point inline &operator-=( time_point &lhs, const time_duration &rhs ) { + return lhs = time_point::from_turn( to_turn( lhs ) - to_turns( rhs ) ); + } -constexpr inline time_duration operator-( const time_point &lhs, const time_point &rhs ) -{ - return time_duration::from_turns( to_turn( lhs ) - to_turn( rhs ) ); -} -constexpr inline time_point operator+( const time_point &lhs, const time_duration &rhs ) -{ - return time_point::from_turn( to_turn( lhs ) + to_turns( rhs ) ); -} -time_point inline &operator+=( time_point &lhs, const time_duration &rhs ) -{ - return lhs = time_point::from_turn( to_turn( lhs ) + to_turns( rhs ) ); -} -constexpr inline time_point operator-( const time_point &lhs, const time_duration &rhs ) -{ - return time_point::from_turn( to_turn( lhs ) - to_turns( rhs ) ); -} -time_point inline &operator-=( time_point &lhs, const time_duration &rhs ) -{ - return lhs = time_point::from_turn( to_turn( lhs ) - to_turns( rhs ) ); -} + // TODO: implement minutes_of_hour and so on and use it. +}; inline time_duration time_past_midnight( const time_point &p ) { @@ -538,7 +530,9 @@ season_type season_of_year( const time_point &p ); std::string to_string( const time_point &p ); /// @returns The time point formatted to be shown to the player. Contains only the time of day, not the year, day or season. std::string to_string_time_of_day( const time_point &p ); -/** Returns the current light level of the moon. */ +/** Returns the default duration of a lunar month (duration between syzygies) */ +time_duration lunar_month(); +/** Returns the current phase of the moon. */ moon_phase get_moon_phase( const time_point &p ); /** Returns the current sunrise time based on the time of year. */ time_point sunrise( const time_point &p ); diff --git a/src/cata_tiles.cpp b/src/cata_tiles.cpp index 2693634bcc025..5b910e9d16482 100644 --- a/src/cata_tiles.cpp +++ b/src/cata_tiles.cpp @@ -72,6 +72,8 @@ static const efftype_id effect_ridden( "ridden" ); +static const itype_id itype_corpse( "corpse" ); + static const std::string ITEM_HIGHLIGHT( "highlight_item" ); static const std::string ZOMBIE_REVIVAL_INDICATOR( "zombie_revival_indicator" ); @@ -701,7 +703,7 @@ void tileset_loader::process_variations_after_loading( weighted_int_list> o ) { + [&]( const weighted_object> &o ) { return o.obj.empty(); } ), @@ -980,19 +982,6 @@ struct tile_render_info { } }; -static int divide_round_down( int a, int b ) -{ - if( b < 0 ) { - a = -a; - b = -b; - } - if( a >= 0 ) { - return a / b; - } else { - return -( ( -a + b - 1 ) / b ); - } -} - void cata_tiles::draw( const point &dest, const tripoint ¢er, int width, int height, std::multimap &overlay_strings, color_block_overlay_container &color_blocks ) @@ -1123,10 +1112,10 @@ void cata_tiles::draw( const point &dest, const tripoint ¢er, int width, int if( y < min_visible_y || y > max_visible_y || x < min_visible_x || x > max_visible_x ) { if( has_memory_at( pos ) ) { - ll = LL_MEMORIZED; + ll = lit_level::MEMORIZED; invisible[0] = true; } else if( has_draw_override( pos ) ) { - ll = LL_DARK; + ll = lit_level::DARK; invisible[0] = true; } else { apply_vision_effects( pos, offscreen_type ); @@ -1418,14 +1407,14 @@ void cata_tiles::draw( const point &dest, const tripoint ¢er, int width, int } else if( g->u.view_offset != tripoint_zero && !g->u.in_vehicle ) { // check to see if player is located at ter draw_from_id_string( "cursor", C_NONE, empty_string, - tripoint( g->ter_view_p.xy(), center.z ), 0, 0, LL_LIT, + tripoint( g->ter_view_p.xy(), center.z ), 0, 0, lit_level::LIT, false ); } if( g->u.controlling_vehicle ) { if( cata::optional indicator_offset = g->get_veh_dir_indicator_location( true ) ) { draw_from_id_string( "cursor", C_NONE, empty_string, indicator_offset->xy() + tripoint( g->u.posx(), g->u.posy(), center.z ), - 0, 0, LL_LIT, false ); + 0, 0, lit_level::LIT, false ); } } @@ -1539,15 +1528,15 @@ const tile_type *cata_tiles::find_tile_looks_like( std::string &id, TILE_CATEGOR const vpart_info &new_vpi = new_vpid.obj(); looks_like = "vp_" + new_vpi.looks_like; } else if( category == C_ITEM ) { - if( !item::type_is_defined( looks_like ) ) { + if( !item::type_is_defined( itype_id( looks_like ) ) ) { if( looks_like.substr( 0, 7 ) == "corpse_" ) { looks_like = "corpse"; continue; } return nullptr; } - const itype *new_it = item::find_type( looks_like ); - looks_like = new_it->looks_like; + const itype *new_it = item::find_type( itype_id( looks_like ) ); + looks_like = new_it->looks_like.str(); } else { return nullptr; } @@ -1588,11 +1577,11 @@ bool cata_tiles::find_overlay_looks_like( const bool male, const std::string &ov looks_like = "mutation_" + looks_like.substr( 16 ); continue; } - if( !item::type_is_defined( looks_like ) ) { + if( !item::type_is_defined( itype_id( looks_like ) ) ) { break; } - const itype *new_it = item::find_type( looks_like ); - looks_like = new_it->looks_like; + const itype *new_it = item::find_type( itype_id( looks_like ) ); + looks_like = new_it->looks_like.str(); } return exists; } @@ -1676,7 +1665,7 @@ bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, } else if( category == C_ITEM ) { item tmp; if( 0 == id.compare( 0, 7, "corpse_" ) ) { - tmp = item( "corpse", 0 ); + tmp = item( itype_corpse, 0 ); } else { tmp = item( id, 0 ); } @@ -1975,12 +1964,12 @@ bool cata_tiles::draw_sprite_at( //use night vision colors when in use //then use low light tile if available - if( ll == LL_MEMORIZED ) { + if( ll == lit_level::MEMORIZED ) { if( const auto ptr = tileset_ptr->get_memory_tile( spritelist[sprite_num] ) ) { sprite_tex = ptr; } } else if( apply_night_vision_goggles ) { - if( ll != LL_LOW ) { + if( ll != lit_level::LOW ) { if( const auto ptr = tileset_ptr->get_overexposed_tile( spritelist[sprite_num] ) ) { sprite_tex = ptr; } @@ -1989,7 +1978,7 @@ bool cata_tiles::draw_sprite_at( sprite_tex = ptr; } } - } else if( ll == LL_LOW ) { + } else if( ll == lit_level::LOW ) { if( const auto ptr = tileset_ptr->get_shadow_tile( spritelist[sprite_num] ) ) { sprite_tex = ptr; } @@ -2109,7 +2098,7 @@ bool cata_tiles::apply_vision_effects( const tripoint &pos, } // lighting is never rotated, though, could possibly add in random rotation? - draw_from_id_string( light_name, C_LIGHTING, empty_string, pos, 0, 0, LL_LIT, false ); + draw_from_id_string( light_name, C_LIGHTING, empty_string, pos, 0, 0, lit_level::LIT, false ); return true; } @@ -2239,7 +2228,7 @@ bool cata_tiles::draw_terrain( const tripoint &p, const lit_level ll, int &heigh const std::string &tname = t2.id().str(); // tile overrides are never memorized // tile overrides are always shown with full visibility - const lit_level lit = overridden ? LL_LIT : ll; + const lit_level lit = overridden ? lit_level::LIT : ll; const bool nv = overridden ? false : nv_goggles_activated; return draw_from_id_string( tname, C_TERRAIN, empty_string, p, subtile, rotation, lit, nv, height_3d ); @@ -2248,7 +2237,7 @@ bool cata_tiles::draw_terrain( const tripoint &p, const lit_level ll, int &heigh // try drawing memory if invisible and not overridden const auto &t = get_terrain_memory_at( p ); return draw_from_id_string( t.tile, C_TERRAIN, empty_string, p, t.subtile, t.rotation, - LL_MEMORIZED, nv_goggles_activated, height_3d ); + lit_level::MEMORIZED, nv_goggles_activated, height_3d ); } return false; } @@ -2409,7 +2398,7 @@ bool cata_tiles::draw_furniture( const tripoint &p, const lit_level ll, int &hei const std::string &fname = f2.id().str(); // tile overrides are never memorized // tile overrides are always shown with full visibility - const lit_level lit = overridden ? LL_LIT : ll; + const lit_level lit = overridden ? lit_level::LIT : ll; const bool nv = overridden ? false : nv_goggles_activated; return draw_from_id_string( fname, C_FURNITURE, empty_string, p, subtile, rotation, lit, nv, height_3d ); @@ -2418,7 +2407,7 @@ bool cata_tiles::draw_furniture( const tripoint &p, const lit_level ll, int &hei // try drawing memory if invisible and not overridden const auto &t = get_furniture_memory_at( p ); return draw_from_id_string( t.tile, C_FURNITURE, empty_string, p, t.subtile, t.rotation, - LL_MEMORIZED, nv_goggles_activated, height_3d ); + lit_level::MEMORIZED, nv_goggles_activated, height_3d ); } return false; } @@ -2483,7 +2472,7 @@ bool cata_tiles::draw_trap( const tripoint &p, const lit_level ll, int &height_3 const std::string &trname = tr2.id().str(); // tile overrides are never memorized // tile overrides are always shown with full visibility - const lit_level lit = overridden ? LL_LIT : ll; + const lit_level lit = overridden ? lit_level::LIT : ll; const bool nv = overridden ? false : nv_goggles_activated; return draw_from_id_string( trname, C_TRAP, empty_string, p, subtile, rotation, lit, nv, height_3d ); @@ -2492,7 +2481,7 @@ bool cata_tiles::draw_trap( const tripoint &p, const lit_level ll, int &height_3 // try drawing memory if invisible and not overridden const auto &t = get_trap_memory_at( p ); return draw_from_id_string( t.tile, C_TRAP, empty_string, p, t.subtile, t.rotation, - LL_MEMORIZED, nv_goggles_activated, height_3d ); + lit_level::MEMORIZED, nv_goggles_activated, height_3d ); } return false; } @@ -2505,7 +2494,7 @@ bool cata_tiles::draw_graffiti( const tripoint &p, const lit_level ll, int &heig if( overridden ? !override->second : ( invisible[0] || !g->m.has_graffiti_at( p ) ) ) { return false; } - const lit_level lit = overridden ? LL_LIT : ll; + const lit_level lit = overridden ? lit_level::LIT : ll; return draw_from_id_string( "graffiti", C_NONE, empty_string, p, 0, 0, lit, false, height_3d ); } @@ -2519,7 +2508,7 @@ bool cata_tiles::draw_field_or_item( const tripoint &p, const lit_level ll, int bool ret_draw_field = false; bool ret_draw_items = false; if( ( fld_overridden || !invisible[0] ) && fld.obj().display_field ) { - const lit_level lit = fld_overridden ? LL_LIT : ll; + const lit_level lit = fld_overridden ? lit_level::LIT : ll; const bool nv = fld_overridden ? false : nv_goggles_activated; auto field_at = [&]( const tripoint & q, const bool invis ) -> field_type_id { @@ -2548,7 +2537,7 @@ bool cata_tiles::draw_field_or_item( const tripoint &p, const lit_level ll, int itype_id it_id; mtype_id mon_id; - bool hilite; + bool hilite = false; const itype *it_type; if( it_overridden ) { it_id = std::get<0>( it_override->second ); @@ -2566,11 +2555,11 @@ bool cata_tiles::draw_field_or_item( const tripoint &p, const lit_level ll, int } else { it_type = nullptr; } - if( it_type && it_id != "null" ) { - const std::string disp_id = it_id == "corpse" && mon_id ? - "corpse_" + mon_id.str() : it_id; + if( it_type && !it_id.is_null() ) { + const std::string disp_id = it_id == itype_corpse && mon_id ? + "corpse_" + mon_id.str() : it_id.str(); const std::string it_category = it_type->get_item_type_string(); - const lit_level lit = it_overridden ? LL_LIT : ll; + const lit_level lit = it_overridden ? lit_level::LIT : ll; const bool nv = it_overridden ? false : nv_goggles_activated; ret_draw_items = draw_from_id_string( disp_id, C_ITEM, it_category, p, 0, 0, lit, @@ -2596,7 +2585,7 @@ bool cata_tiles::draw_vpart_below( const tripoint &p, const lit_level /*ll*/, in int height_3d_below = 0; bool below_invisible[5]; std::fill( below_invisible, below_invisible + 5, false ); - return draw_vpart( pbelow, LL_LOW, height_3d_below, below_invisible ); + return draw_vpart( pbelow, lit_level::LOW, height_3d_below, below_invisible ); } bool cata_tiles::draw_vpart( const tripoint &p, lit_level ll, int &height_3d, @@ -2643,7 +2632,7 @@ bool cata_tiles::draw_vpart( const tripoint &p, lit_level ll, int &height_3d, // tile overrides are never memorized // tile overrides are always shown with full visibility const bool ret = draw_from_id_string( vpname, C_VEHICLE_PART, empty_string, p, subtile, rotation, - LL_LIT, false, height_3d ); + lit_level::LIT, false, height_3d ); if( ret && draw_highlight ) { draw_item_highlight( p ); } @@ -2653,7 +2642,7 @@ bool cata_tiles::draw_vpart( const tripoint &p, lit_level ll, int &height_3d, // try drawing memory if invisible and not overridden const auto &t = get_vpart_memory_at( p ); return draw_from_id_string( t.tile, C_VEHICLE_PART, empty_string, p, t.subtile, t.rotation, - LL_MEMORIZED, nv_goggles_activated, height_3d ); + lit_level::MEMORIZED, nv_goggles_activated, height_3d ); } return false; } @@ -2731,8 +2720,8 @@ bool cata_tiles::draw_critter_at( const tripoint &p, lit_level ll, int &height_3 const std::string &chosen_id = id.str(); const std::string &ent_subcategory = id.obj().species.empty() ? empty_string : id.obj().species.begin()->str(); - result = draw_from_id_string( chosen_id, C_MONSTER, ent_subcategory, p, corner, 0, LL_LIT, false, - height_3d ); + result = draw_from_id_string( chosen_id, C_MONSTER, ent_subcategory, p, corner, 0, + lit_level::LIT, false, height_3d ); } else if( !invisible[0] ) { const Creature *pcritter = g->critter_at( p, true ); if( pcritter == nullptr ) { @@ -2743,7 +2732,7 @@ bool cata_tiles::draw_critter_at( const tripoint &p, lit_level ll, int &height_3 if( !g->u.sees( critter ) ) { if( g->u.sees_with_infrared( critter ) || g->u.sees_with_specials( critter ) ) { return draw_from_id_string( "infrared_creature", C_NONE, empty_string, p, 0, 0, - LL_LIT, false, height_3d ); + lit_level::LIT, false, height_3d ); } return false; } @@ -2805,8 +2794,8 @@ bool cata_tiles::draw_critter_at( const tripoint &p, lit_level ll, int &height_3 if( critter && ( g->u.sees_with_infrared( *critter ) || g->u.sees_with_specials( *critter ) ) ) { // try drawing infrared creature if invisible and not overridden // return directly without drawing overlay - return draw_from_id_string( "infrared_creature", C_NONE, empty_string, p, 0, 0, LL_LIT, false, - height_3d ); + return draw_from_id_string( "infrared_creature", C_NONE, empty_string, p, 0, 0, + lit_level::LIT, false, height_3d ); } else { return false; } @@ -2818,7 +2807,7 @@ bool cata_tiles::draw_critter_at( const tripoint &p, lit_level ll, int &height_3 draw_id += "_sees_player"; } if( tileset_ptr->find_tile_type( draw_id ) ) { - draw_from_id_string( draw_id, C_NONE, empty_string, p, 0, 0, LL_LIT, false, height_3d ); + draw_from_id_string( draw_id, C_NONE, empty_string, p, 0, 0, lit_level::LIT, false, height_3d ); } } return result; @@ -2858,8 +2847,8 @@ bool cata_tiles::draw_zombie_revival_indicators( const tripoint &pos, const lit_ item_override.find( pos ) == item_override.end() && g->m.could_see_items( pos, g->u ) ) { for( auto &i : g->m.i_at( pos ) ) { if( i.can_revive() ) { - return draw_from_id_string( ZOMBIE_REVIVAL_INDICATOR, C_NONE, empty_string, pos, 0, 0, LL_LIT, - false ); + return draw_from_id_string( ZOMBIE_REVIVAL_INDICATOR, C_NONE, empty_string, pos, 0, 0, + lit_level::LIT, false ); } } } @@ -2906,7 +2895,8 @@ void cata_tiles::draw_entity_with_overlays( const Character &ch, const tripoint bool cata_tiles::draw_item_highlight( const tripoint &pos ) { - return draw_from_id_string( ITEM_HIGHLIGHT, C_NONE, empty_string, pos, 0, 0, LL_LIT, false ); + return draw_from_id_string( ITEM_HIGHLIGHT, C_NONE, empty_string, pos, 0, 0, + lit_level::LIT, false ); } void tileset_loader::ensure_default_item_highlight() @@ -3152,27 +3142,27 @@ void cata_tiles::draw_explosion_frame() rotation = 0; draw_from_id_string( exp_name, exp_pos + point( -i, -i ), - subtile, rotation++, LL_LIT, nv_goggles_activated ); + subtile, rotation++, lit_level::LIT, nv_goggles_activated ); draw_from_id_string( exp_name, exp_pos + point( -i, i ), - subtile, rotation++, LL_LIT, nv_goggles_activated ); + subtile, rotation++, lit_level::LIT, nv_goggles_activated ); draw_from_id_string( exp_name, exp_pos + point( i, i ), - subtile, rotation++, LL_LIT, nv_goggles_activated ); + subtile, rotation++, lit_level::LIT, nv_goggles_activated ); draw_from_id_string( exp_name, exp_pos + point( i, -i ), - subtile, rotation, LL_LIT, nv_goggles_activated ); + subtile, rotation, lit_level::LIT, nv_goggles_activated ); subtile = edge; for( int j = 1 - i; j < 0 + i; j++ ) { rotation = 0; draw_from_id_string( exp_name, exp_pos + point( j, -i ), - subtile, rotation, LL_LIT, nv_goggles_activated ); + subtile, rotation, lit_level::LIT, nv_goggles_activated ); draw_from_id_string( exp_name, exp_pos + point( j, i ), - subtile, rotation, LL_LIT, nv_goggles_activated ); + subtile, rotation, lit_level::LIT, nv_goggles_activated ); rotation = 1; draw_from_id_string( exp_name, exp_pos + point( -i, j ), - subtile, rotation, LL_LIT, nv_goggles_activated ); + subtile, rotation, lit_level::LIT, nv_goggles_activated ); draw_from_id_string( exp_name, exp_pos + point( i, j ), - subtile, rotation, LL_LIT, nv_goggles_activated ); + subtile, rotation, lit_level::LIT, nv_goggles_activated ); } } } @@ -3241,24 +3231,25 @@ void cata_tiles::draw_custom_explosion_frame() const tripoint &p = pr.first; if( col == c_red ) { - draw_from_id_string( exp_strong, p, subtile, rotation, LL_LIT, nv_goggles_activated ); + draw_from_id_string( exp_strong, p, subtile, rotation, lit_level::LIT, nv_goggles_activated ); } else if( col == c_yellow ) { - draw_from_id_string( exp_medium, p, subtile, rotation, LL_LIT, nv_goggles_activated ); + draw_from_id_string( exp_medium, p, subtile, rotation, lit_level::LIT, nv_goggles_activated ); } else { - draw_from_id_string( exp_weak, p, subtile, rotation, LL_LIT, nv_goggles_activated ); + draw_from_id_string( exp_weak, p, subtile, rotation, lit_level::LIT, nv_goggles_activated ); } } } void cata_tiles::draw_bullet_frame() { - draw_from_id_string( bul_id, C_BULLET, empty_string, bul_pos, 0, 0, LL_LIT, false ); + draw_from_id_string( bul_id, C_BULLET, empty_string, bul_pos, 0, 0, lit_level::LIT, false ); } void cata_tiles::draw_hit_frame() { std::string hit_overlay = "animation_hit"; - draw_from_id_string( hit_entity_id, C_HIT_ENTITY, empty_string, hit_pos, 0, 0, LL_LIT, false ); - draw_from_id_string( hit_overlay, hit_pos, 0, 0, LL_LIT, false ); + draw_from_id_string( hit_entity_id, C_HIT_ENTITY, empty_string, hit_pos, 0, 0, + lit_level::LIT, false ); + draw_from_id_string( hit_overlay, hit_pos, 0, 0, lit_level::LIT, false ); } void cata_tiles::draw_line() { @@ -3268,22 +3259,22 @@ void cata_tiles::draw_line() static std::string line_overlay = "animation_line"; if( !is_target_line || g->u.sees( line_pos ) ) { for( auto it = line_trajectory.begin(); it != line_trajectory.end() - 1; ++it ) { - draw_from_id_string( line_overlay, *it, 0, 0, LL_LIT, false ); + draw_from_id_string( line_overlay, *it, 0, 0, lit_level::LIT, false ); } } - draw_from_id_string( line_endpoint_id, line_trajectory.back(), 0, 0, LL_LIT, false ); + draw_from_id_string( line_endpoint_id, line_trajectory.back(), 0, 0, lit_level::LIT, false ); } void cata_tiles::draw_cursor() { for( const tripoint &p : cursors ) { - draw_from_id_string( "cursor", p, 0, 0, LL_LIT, false ); + draw_from_id_string( "cursor", p, 0, 0, lit_level::LIT, false ); } } void cata_tiles::draw_highlight() { for( const tripoint &p : highlights ) { - draw_from_id_string( "highlight", p, 0, 0, LL_LIT, false ); + draw_from_id_string( "highlight", p, 0, 0, lit_level::LIT, false ); } } void cata_tiles::draw_weather_frame() @@ -3297,7 +3288,7 @@ void cata_tiles::draw_weather_frame() p += o; } draw_from_id_string( weather_name, C_WEATHER, empty_string, p, 0, 0, - LL_LIT, nv_goggles_activated ); + lit_level::LIT, nv_goggles_activated ); } } @@ -3333,7 +3324,7 @@ void cata_tiles::draw_sct_frame( std::multimap &overlay_s if( tileset_ptr->find_tile_type( generic_id ) ) { draw_from_id_string( generic_id, C_NONE, empty_string, - { iDX + iOffsetX, iDY + iOffsetY, g->u.pos().z }, 0, 0, LL_LIT, false ); + { iDX + iOffsetX, iDY + iOffsetY, g->u.pos().z }, 0, 0, lit_level::LIT, false ); } if( tile_iso ) { @@ -3352,7 +3343,7 @@ void cata_tiles::draw_zones_frame() for( int iX = zone_start.x; iX <= zone_end.x; ++iX ) { draw_from_id_string( "highlight", C_NONE, empty_string, zone_offset.xy() + tripoint( iX, iY, g->u.pos().z ), - 0, 0, LL_LIT, false ); + 0, 0, lit_level::LIT, false ); } } @@ -3361,7 +3352,7 @@ void cata_tiles::draw_footsteps_frame() { static const std::string footstep_tilestring = "footstep"; for( const auto &footstep : sounds::get_footstep_markers() ) { - draw_from_id_string( footstep_tilestring, footstep, 0, 0, LL_LIT, false ); + draw_from_id_string( footstep_tilestring, footstep, 0, 0, lit_level::LIT, false ); } } /* END OF ANIMATION FUNCTIONS */ diff --git a/src/cata_tiles.h b/src/cata_tiles.h index d4c35be85583b..99cd04c8486fe 100644 --- a/src/cata_tiles.h +++ b/src/cata_tiles.h @@ -29,8 +29,6 @@ class Character; class JsonObject; class pixel_minimap; -using itype_id = std::string; - extern void set_displaybuffer_rendertarget(); /** Structures */ diff --git a/src/cata_utility.cpp b/src/cata_utility.cpp index a64cca71a7743..1e240c2d320c7 100644 --- a/src/cata_utility.cpp +++ b/src/cata_utility.cpp @@ -44,6 +44,19 @@ double round_up( double val, unsigned int dp ) return std::ceil( denominator * val ) / denominator; } +int divide_round_down( int a, int b ) +{ + if( b < 0 ) { + a = -a; + b = -b; + } + if( a >= 0 ) { + return a / b; + } else { + return -( ( -a + b - 1 ) / b ); + } +} + int modulo( int v, int m ) { // C++11: negative v and positive m result in negative v%m (or 0), @@ -564,7 +577,7 @@ bool read_from_file_optional( const std::string &path, JsonDeserializer &reader } ); } -std::string obscure_message( const std::string &str, std::function f ) +std::string obscure_message( const std::string &str, const std::function &f ) { //~ translators: place some random 1-width characters here in your language if possible, or leave it as is std::string gibberish_narrow = _( "abcdefghijklmnopqrstuvwxyz" ); diff --git a/src/cata_utility.h b/src/cata_utility.h index 5e86810aae331..ef7e2b94c4de4 100644 --- a/src/cata_utility.h +++ b/src/cata_utility.h @@ -84,6 +84,8 @@ T divide_round_up( units::quantity num, units::quantity den ) return divide_round_up( num.value(), den.value() ); } +int divide_round_down( int a, int b ); + /** * Determine whether a value is between two given boundaries. * @@ -463,7 +465,7 @@ std::istream &safe_getline( std::istream &ins, std::string &str ); * */ -std::string obscure_message( const std::string &str, std::function f ); +std::string obscure_message( const std::string &str, const std::function &f ); /** * @group JSON (de)serialization wrappers. @@ -553,8 +555,12 @@ class restore_on_out_of_scope on_out_of_scope impl; public: // *INDENT-OFF* - restore_on_out_of_scope( T &t_in ): t( t_in ), orig_t( t_in ), - impl( [this]() { t = orig_t; } ) { + restore_on_out_of_scope( T &t_in ) : t( t_in ), orig_t( t_in ), + impl( [this]() { t = std::move( orig_t ); } ) { + } + + restore_on_out_of_scope( T &&t_in ) : t( t_in ), orig_t( std::move( t_in ) ), + impl( [this]() { t = std::move( orig_t ); } ) { } // *INDENT-ON* }; diff --git a/src/cata_variant.cpp b/src/cata_variant.cpp index 6dd9dda1dbf3a..5953331b7db03 100644 --- a/src/cata_variant.cpp +++ b/src/cata_variant.cpp @@ -9,21 +9,24 @@ std::string enum_to_string( cata_variant_type type ) switch( type ) { // *INDENT-OFF* case cata_variant_type::void_: return "void"; + case cata_variant_type::achievement_id: return "achievement_id"; case cata_variant_type::add_type: return "add_type"; case cata_variant_type::bionic_id: return "bionic_id"; case cata_variant_type::body_part: return "body_part"; case cata_variant_type::bool_: return "bool"; case cata_variant_type::character_id: return "character_id"; - case cata_variant_type::character_movemode: return "character_movemode"; case cata_variant_type::efftype_id: return "efftype_id"; case cata_variant_type::hp_part: return "hp_part"; case cata_variant_type::int_: return "int"; case cata_variant_type::itype_id: return "itype_id"; case cata_variant_type::matype_id: return "matype_id"; case cata_variant_type::mtype_id: return "mtype_id"; + case cata_variant_type::move_mode_id: return "character_movemode"; case cata_variant_type::mutagen_technique: return "mutagen_technique"; case cata_variant_type::mutation_category_id: return "mutation_category_id"; case cata_variant_type::oter_id: return "oter_id"; + case cata_variant_type::point: return "point"; + case cata_variant_type::profession_id: return "profession_id"; case cata_variant_type::skill_id: return "skill_id"; case cata_variant_type::species_id: return "species_id"; case cata_variant_type::spell_id: return "spell_id"; @@ -31,6 +34,7 @@ std::string enum_to_string( cata_variant_type type ) case cata_variant_type::ter_id: return "ter_id"; case cata_variant_type::trait_id: return "trait_id"; case cata_variant_type::trap_str_id: return "trap_str_id"; + case cata_variant_type::tripoint: return "tripoint"; // *INDENT-ON* case cata_variant_type::num_types: break; diff --git a/src/cata_variant.h b/src/cata_variant.h index c46d5da77848b..280d756d48da6 100644 --- a/src/cata_variant.h +++ b/src/cata_variant.h @@ -14,6 +14,7 @@ #include "enum_conversions.h" #include "hash_utils.h" #include "pldata.h" +#include "point.h" #include "type_id.h" class JsonIn; @@ -23,30 +24,30 @@ template struct enum_traits; enum body_part : int; enum class mutagen_technique : int; enum hp_part : int; -enum character_movemode : int; - -using itype_id = std::string; // cata_variant is a variant-like type that stores a variety of different cata // types. All types are stored by converting them to a string. enum class cata_variant_type : int { void_, // Special type for empty variants + achievement_id, add_type, bionic_id, body_part, bool_, character_id, - character_movemode, efftype_id, hp_part, int_, itype_id, matype_id, mtype_id, + move_mode_id, mutagen_technique, mutation_category_id, oter_id, + point, + profession_id, skill_id, species_id, spell_id, @@ -54,6 +55,7 @@ enum class cata_variant_type : int { ter_id, trait_id, trap_str_id, + tripoint, num_types, // last }; @@ -156,7 +158,7 @@ struct convert_enum { }; // These are the specializations of convert for each value type. -static_assert( static_cast( cata_variant_type::num_types ) == 23, +static_assert( static_cast( cata_variant_type::num_types ) == 27, "This assert is a reminder to add conversion support for any new types to the " "below specializations" ); @@ -165,6 +167,9 @@ struct convert { using type = void; }; +template<> +struct convert : convert_string_id {}; + template<> struct convert : convert_enum {}; @@ -197,7 +202,7 @@ struct convert { }; template<> -struct convert : convert_enum {}; +struct convert : convert_string_id {}; template<> struct convert : convert_string_id {}; @@ -217,7 +222,7 @@ struct convert { }; template<> -struct convert : convert_string {}; +struct convert : convert_string_id {}; template<> struct convert : convert_string_id {}; @@ -234,6 +239,20 @@ struct convert : convert_string struct convert : convert_int_id {}; +template<> +struct convert { + using type = point; + static std::string to_string( const point &v ) { + return v.to_string(); + } + static point from_string( const std::string &v ) { + return point::from_string( v ); + } +}; + +template<> +struct convert : convert_string_id {}; + template<> struct convert : convert_string_id {}; @@ -255,6 +274,17 @@ struct convert : convert_string_id {}; template<> struct convert : convert_string_id {}; +template<> +struct convert { + using type = tripoint; + static std::string to_string( const tripoint &v ) { + return v.to_string(); + } + static tripoint from_string( const std::string &v ) { + return tripoint::from_string( v ); + } +}; + } // namespace cata_variant_detail class cata_variant @@ -322,12 +352,12 @@ class cata_variant friend bool operator op( const cata_variant &l, const cata_variant &r ) { \ return l.as_pair() op r.as_pair(); \ } - CATA_VARIANT_OPERATOR( == ); - CATA_VARIANT_OPERATOR( != ); - CATA_VARIANT_OPERATOR( < ); // NOLINT( cata-use-localized-sorting ) - CATA_VARIANT_OPERATOR( <= ); // NOLINT( cata-use-localized-sorting ) - CATA_VARIANT_OPERATOR( > ); // NOLINT( cata-use-localized-sorting ) - CATA_VARIANT_OPERATOR( >= ); // NOLINT( cata-use-localized-sorting ) + CATA_VARIANT_OPERATOR( == ) + CATA_VARIANT_OPERATOR( != ) + CATA_VARIANT_OPERATOR( < ) // NOLINT( cata-use-localized-sorting ) + CATA_VARIANT_OPERATOR( <= ) // NOLINT( cata-use-localized-sorting ) + CATA_VARIANT_OPERATOR( > ) // NOLINT( cata-use-localized-sorting ) + CATA_VARIANT_OPERATOR( >= ) // NOLINT( cata-use-localized-sorting ) #undef CATA_VARIANT_OPERATOR private: explicit cata_variant( cata_variant_type t, std::string &&v ) diff --git a/src/character.cpp b/src/character.cpp index f8c6bd259030c..1da0c7aa9f8da 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -51,6 +51,7 @@ #include "monster.h" #include "morale.h" #include "morale_types.h" +#include "move_mode.h" #include "mtype.h" #include "mutation.h" #include "npc.h" @@ -89,9 +90,9 @@ struct dealt_projectile_attack; static const activity_id ACT_DROP( "ACT_DROP" ); -static const activity_id ACT_LOCKPICK( "ACT_LOCKPICK" ); static const activity_id ACT_MOVE_ITEMS( "ACT_MOVE_ITEMS" ); static const activity_id ACT_STASH( "ACT_STASH" ); +static const activity_id ACT_TRAVELLING( "ACT_TRAVELLING" ); static const activity_id ACT_TREE_COMMUNION( "ACT_TREE_COMMUNION" ); static const activity_id ACT_TRY_SLEEP( "ACT_TRY_SLEEP" ); static const activity_id ACT_WAIT_STAMINA( "ACT_WAIT_STAMINA" ); @@ -136,14 +137,23 @@ static const efftype_id effect_heating_bionic( "heating_bionic" ); static const efftype_id effect_heavysnare( "heavysnare" ); static const efftype_id effect_hot( "hot" ); static const efftype_id effect_hot_speed( "hot_speed" ); +static const efftype_id effect_hunger_blank( "hunger_blank" ); +static const efftype_id effect_hunger_engorged( "hunger_engorged" ); +static const efftype_id effect_hunger_famished( "hunger_famished" ); +static const efftype_id effect_hunger_full( "hunger_full" ); +static const efftype_id effect_hunger_hungry( "hunger_hungry" ); +static const efftype_id effect_hunger_near_starving( "hunger_near_starving" ); +static const efftype_id effect_hunger_satisfied( "hunger_satisfied" ); +static const efftype_id effect_hunger_starving( "hunger_starving" ); +static const efftype_id effect_hunger_very_hungry( "hunger_very_hungry" ); static const efftype_id effect_in_pit( "in_pit" ); static const efftype_id effect_infected( "infected" ); static const efftype_id effect_jetinjector( "jetinjector" ); static const efftype_id effect_lack_sleep( "lack_sleep" ); static const efftype_id effect_lightsnare( "lightsnare" ); static const efftype_id effect_lying_down( "lying_down" ); -static const efftype_id effect_melatonin_supplements( "melatonin" ); static const efftype_id effect_masked_scent( "masked_scent" ); +static const efftype_id effect_melatonin( "melatonin" ); static const efftype_id effect_mending( "mending" ); static const efftype_id effect_narcosis( "narcosis" ); static const efftype_id effect_nausea( "nausea" ); @@ -155,7 +165,7 @@ static const efftype_id effect_pkill3( "pkill3" ); static const efftype_id effect_recently_coughed( "recently_coughed" ); static const efftype_id effect_ridden( "ridden" ); static const efftype_id effect_riding( "riding" ); -static const efftype_id effect_saddled( "monster_saddled" ); +static const efftype_id effect_monster_saddled( "monster_saddled" ); static const efftype_id effect_sleep( "sleep" ); static const efftype_id effect_slept_through_alarm( "slept_through_alarm" ); static const efftype_id effect_tied( "tied" ); @@ -164,12 +174,30 @@ static const efftype_id effect_took_xanax( "took_xanax" ); static const efftype_id effect_webbed( "webbed" ); static const efftype_id effect_winded( "winded" ); +static const itype_id itype_adv_UPS_off( "adv_UPS_off" ); +static const itype_id itype_apparatus( "apparatus" ); +static const itype_id itype_beartrap( "beartrap" ); +static const itype_id itype_e_handcuffs( "e_handcuffs" ); +static const itype_id itype_fire( "fire" ); +static const itype_id itype_rm13_armor_on( "rm13_armor_on" ); +static const itype_id itype_rope_6( "rope_6" ); +static const itype_id itype_snare_trigger( "snare_trigger" ); +static const itype_id itype_string_36( "string_36" ); +static const itype_id itype_toolset( "toolset" ); +static const itype_id itype_UPS( "UPS" ); +static const itype_id itype_UPS_off( "UPS_off" ); + +static const skill_id skill_archery( "archery" ); static const skill_id skill_dodge( "dodge" ); +static const skill_id skill_pistol( "pistol" ); +static const skill_id skill_rifle( "rifle" ); +static const skill_id skill_shotgun( "shotgun" ); +static const skill_id skill_smg( "smg" ); static const skill_id skill_swimming( "swimming" ); static const skill_id skill_throw( "throw" ); -static const species_id HUMAN( "HUMAN" ); -static const species_id ROBOT( "ROBOT" ); +static const species_id species_HUMAN( "HUMAN" ); +static const species_id species_ROBOT( "ROBOT" ); static const trait_id trait_ACIDBLOOD( "ACIDBLOOD" ); static const trait_id trait_ACIDPROOF( "ACIDPROOF" ); @@ -208,13 +236,10 @@ static const bionic_id bio_night_vision( "bio_night_vision" ); static const bionic_id bio_railgun( "bio_railgun" ); static const bionic_id bio_recycler( "bio_recycler" ); static const bionic_id bio_shock_absorber( "bio_shock_absorber" ); -static const bionic_id bio_storage( "bio_storage" ); static const bionic_id bio_synaptic_regen( "bio_synaptic_regen" ); static const bionic_id bio_tattoo_led( "bio_tattoo_led" ); static const bionic_id bio_tools( "bio_tools" ); static const bionic_id bio_ups( "bio_ups" ); -static const bionic_id str_bio_cloak( "bio_cloak" ); -static const bionic_id str_bio_night( "bio_night" ); // Aftershock stuff! static const bionic_id afs_bio_linguistic_coprocessor( "afs_bio_linguistic_coprocessor" ); @@ -235,7 +260,6 @@ static const trait_id trait_DEBUG_LS( "DEBUG_LS" ); static const trait_id trait_DEBUG_NIGHTVISION( "DEBUG_NIGHTVISION" ); static const trait_id trait_DEBUG_NOTEMP( "DEBUG_NOTEMP" ); static const trait_id trait_DEBUG_STORAGE( "DEBUG_STORAGE" ); -static const trait_id trait_DISORGANIZED( "DISORGANIZED" ); static const trait_id trait_DISRESISTANT( "DISRESISTANT" ); static const trait_id trait_DOWN( "DOWN" ); static const trait_id trait_ELECTRORECEPTORS( "ELECTRORECEPTORS" ); @@ -272,7 +296,6 @@ static const trait_id trait_NOMAD( "NOMAD" ); static const trait_id trait_NOMAD2( "NOMAD2" ); static const trait_id trait_NOMAD3( "NOMAD3" ); static const trait_id trait_NOPAIN( "NOPAIN" ); -static const trait_id trait_PACKMULE( "PACKMULE" ); static const trait_id trait_PADDED_FEET( "PADDED_FEET" ); static const trait_id trait_PAWS( "PAWS" ); static const trait_id trait_PAWS_LARGE( "PAWS_LARGE" ); @@ -286,7 +309,6 @@ static const trait_id trait_ROOTS2( "ROOTS2" ); static const trait_id trait_ROOTS3( "ROOTS3" ); static const trait_id trait_SEESLEEP( "SEESLEEP" ); static const trait_id trait_SELFAWARE( "SELFAWARE" ); -static const trait_id trait_SHELL( "SHELL" ); static const trait_id trait_SHELL2( "SHELL2" ); static const trait_id trait_SHOUT2( "SHOUT2" ); static const trait_id trait_SHOUT3( "SHOUT3" ); @@ -348,24 +370,24 @@ namespace io { template<> -std::string enum_to_string( character_movemode data ) +std::string enum_to_string( blood_type data ) { switch( data ) { // *INDENT-OFF* - case character_movemode::CMM_WALK: return "walk"; - case character_movemode::CMM_RUN: return "run"; - case character_movemode::CMM_CROUCH: return "crouch"; + case blood_type::blood_O: return "O"; + case blood_type::blood_A: return "A"; + case blood_type::blood_B: return "B"; + case blood_type::blood_AB: return "AB"; // *INDENT-ON* - case character_movemode::CMM_COUNT: + case blood_type::num_bt: break; } - debugmsg( "Invalid character_movemode" ); + debugmsg( "Invalid blood_type" ); abort(); } } // namespace io - // *INDENT-OFF* Character::Character() : @@ -379,6 +401,7 @@ Character::Character() : { hp_cur.fill( 0 ); hp_max.fill( 1 ); + randomize_blood(); str_max = 0; dex_max = 0; per_max = 0; @@ -417,7 +440,7 @@ Character::Character() : *path_settings = pathfinding_settings{ 0, 1000, 1000, 0, true, true, true, false, true }; - move_mode = CMM_WALK; + move_mode = move_mode_id( "walk" ); next_expected_position = cata::nullopt; temp_cur.fill( BODYTEMP_NORM ); frostbite_timer.fill( 0 ); @@ -460,6 +483,12 @@ character_id Character::getID() const return this->id; } +void Character::randomize_blood() +{ + my_blood_type = static_cast( rng( 0, static_cast( blood_type::num_bt ) - 1 ) ); + blood_rh_factor = one_in( 2 ); +} + field_type_id Character::bloodType() const { if( has_trait( trait_ACIDBLOOD ) ) { @@ -483,7 +512,7 @@ field_type_id Character::gibType() const bool Character::in_species( const species_id &spec ) const { - return spec == HUMAN; + return spec == species_HUMAN; } bool Character::is_warm() const @@ -527,7 +556,7 @@ int Character::get_fat_to_hp() const return mut_fat_hp * ( get_bmi() - character_weight_category::normal ); } -m_size Character::get_size() const +creature_size Character::get_size() const { return size_class; } @@ -607,9 +636,9 @@ int Character::get_most_accurate_sight( const item &gun ) const double Character::aim_speed_skill_modifier( const skill_id &gun_skill ) const { double skill_mult = 1.0; - if( gun_skill == "pistol" ) { + if( gun_skill == skill_pistol ) { skill_mult = 2.0; - } else if( gun_skill == "rifle" ) { + } else if( gun_skill == skill_rifle ) { skill_mult = 0.9; } /** @EFFECT_PISTOL increases aiming speed for pistols */ @@ -635,15 +664,15 @@ double Character::aim_cap_from_volume( const item &gun ) const skill_id gun_skill = gun.gun_skill(); double aim_cap = std::min( 49.0, 49.0 - static_cast( gun.volume() / 75_ml ) ); // TODO: also scale with skill level. - if( gun_skill == "smg" ) { + if( gun_skill == skill_smg ) { aim_cap = std::max( 12.0, aim_cap ); - } else if( gun_skill == "shotgun" ) { + } else if( gun_skill == skill_shotgun ) { aim_cap = std::max( 12.0, aim_cap ); - } else if( gun_skill == "pistol" ) { + } else if( gun_skill == skill_pistol ) { aim_cap = std::max( 15.0, aim_cap * 1.25 ); - } else if( gun_skill == "rifle" ) { + } else if( gun_skill == skill_rifle ) { aim_cap = std::max( 7.0, aim_cap - 7.0 ); - } else if( gun_skill == "archery" ) { + } else if( gun_skill == skill_archery ) { aim_cap = std::max( 13.0, aim_cap ); } else { // Launchers, etc. aim_cap = std::max( 10.0, aim_cap ); @@ -878,8 +907,8 @@ int Character::swim_speed() const } } const auto usable = exclusive_flag_coverage( "ALLOWS_NATURAL_ATTACKS" ); - float hand_bonus_mult = ( usable.test( bp_hand_l ) ? 0.5f : 0.0f ) + - ( usable.test( bp_hand_r ) ? 0.5f : 0.0f ); + float hand_bonus_mult = ( usable.test( bodypart_str_id( "hand_l" ) ) ? 0.5f : 0.0f ) + + ( usable.test( bodypart_str_id( "hand_r" ) ) ? 0.5f : 0.0f ); // base swim speed. ret = ( 440 * mutation_value( "movecost_swim_modifier" ) ) + weight_carried() / @@ -928,14 +957,7 @@ int Character::swim_speed() const ret -= 50; } - // Running movement mode while swimming means faster swim style, like crawlstroke - if( move_mode == CMM_RUN ) { - ret -= 80; - } - // Crouching movement mode while swimming means slower swim style, like breaststroke - if( move_mode == CMM_CROUCH ) { - ret += 50; - } + ret += move_mode->swim_speed_mod(); if( ret < 30 ) { ret = 30; @@ -1046,9 +1068,9 @@ void Character::mount_creature( monster &z ) if( g->u.is_hauling() ) { g->u.stop_hauling(); } - if( g->u.get_grab_type() != OBJECT_NONE ) { + if( g->u.get_grab_type() != object_type::NONE ) { add_msg( m_warning, _( "You let go of the grabbed object." ) ); - g->u.grab( OBJECT_NONE ); + g->u.grab( object_type::NONE ); } g->place_player( pnt ); } else { @@ -1058,7 +1080,7 @@ void Character::mount_creature( monster &z ) z.facing = facing; add_msg_if_player( m_good, _( "You climb on the %s." ), z.get_name() ); if( z.has_flag( MF_RIDEABLE_MECH ) ) { - if( !z.type->mech_weapon.empty() ) { + if( !z.type->mech_weapon.is_empty() ) { item mechwep = item( z.type->mech_weapon ); wield( mechwep ); } @@ -1101,8 +1123,8 @@ bool Character::check_mount_is_spooked() // / 2 if horse has full tack and saddle. // Monster in spear reach monster and average stat (8) player on saddled horse, 14% -2% -0.8% / 2 = ~5% if( mounted_creature && mounted_creature->type->has_fear_trigger( mon_trigger::HOSTILE_CLOSE ) ) { - const m_size mount_size = mounted_creature->get_size(); - const bool saddled = mounted_creature->has_effect( effect_saddled ); + const creature_size mount_size = mounted_creature->get_size(); + const bool saddled = mounted_creature->has_effect( effect_monster_saddled ); for( const monster &critter : g->all_monsters() ) { double chance = 1.0; Attitude att = critter.attitude_to( *this ); @@ -1139,7 +1161,7 @@ void Character::forced_dismount() bool mech = false; if( mounted_creature ) { auto mon = mounted_creature.get(); - if( mon->has_flag( MF_RIDEABLE_MECH ) && !mon->type->mech_weapon.empty() ) { + if( mon->has_flag( MF_RIDEABLE_MECH ) && !mon->type->mech_weapon.is_empty() ) { mech = true; remove_item( weapon ); } @@ -1216,11 +1238,11 @@ void Character::forced_dismount() add_msg( m_debug, "Forced_dismount could not find a square to deposit player" ); } if( is_avatar() ) { - if( g->u.get_grab_type() != OBJECT_NONE ) { + if( g->u.get_grab_type() != object_type::NONE ) { add_msg( m_warning, _( "You let go of the grabbed object." ) ); - g->u.grab( OBJECT_NONE ); + g->u.grab( object_type::NONE ); } - set_movement_mode( CMM_WALK ); + set_movement_mode( move_mode_id( "walk" ) ); if( g->u.is_auto_moving() || g->u.has_destination() || g->u.has_destination_activity() ) { g->u.clear_destination(); } @@ -1246,21 +1268,20 @@ void Character::dismount() remove_effect( effect_riding ); monster *critter = mounted_creature.get(); critter->mounted_player_id = character_id(); - if( critter->has_flag( MF_RIDEABLE_MECH ) && !critter->type->mech_weapon.empty() ) { + if( critter->has_flag( MF_RIDEABLE_MECH ) && !critter->type->mech_weapon.is_empty() ) { remove_item( weapon ); } - if( is_avatar() && g->u.get_grab_type() != OBJECT_NONE ) { + if( is_avatar() && g->u.get_grab_type() != object_type::NONE ) { add_msg( m_warning, _( "You let go of the grabbed object." ) ); - g->u.grab( OBJECT_NONE ); + g->u.grab( object_type::NONE ); } critter->remove_effect( effect_ridden ); critter->add_effect( effect_controlled, 5_turns ); mounted_creature = nullptr; critter->mounted_player = nullptr; setpos( *pnt ); - g->refresh_all(); mod_moves( -100 ); - set_movement_mode( CMM_WALK ); + set_movement_mode( move_mode_id( "walk" ) ); } } @@ -1305,11 +1326,6 @@ int Character::get_working_leg_count() const return limb_count; } -bool Character::is_limb_hindered( hp_part limb ) const -{ - return hp_cur[limb] < hp_max[limb] * .40; -} - bool Character::is_limb_disabled( hp_part limb ) const { return hp_cur[limb] <= hp_max[limb] * .125; @@ -1322,7 +1338,7 @@ bool Character::is_limb_broken( hp_part limb ) const return hp_cur[limb] == 0; } -bool Character::can_run() +bool Character::can_run() const { return get_stamina() > 0 && !has_effect( effect_winded ) && get_working_leg_count() >= 2; } @@ -1367,8 +1383,8 @@ bool Character::move_effects( bool attacking ) if( x_in_y( mon->type->melee_dice * mon->type->melee_sides, 12 ) ) { mon->remove_effect( effect_lightsnare ); remove_effect( effect_lightsnare ); - g->m.spawn_item( pos(), "string_36" ); - g->m.spawn_item( pos(), "snare_trigger" ); + g->m.spawn_item( pos(), itype_string_36 ); + g->m.spawn_item( pos(), itype_snare_trigger ); add_msg( _( "The %s escapes the light snare!" ), mon->get_name() ); } } else { @@ -1397,8 +1413,8 @@ bool Character::move_effects( bool attacking ) if( x_in_y( mon->type->melee_dice * mon->type->melee_sides, 32 ) ) { mon->remove_effect( effect_heavysnare ); remove_effect( effect_heavysnare ); - g->m.spawn_item( pos(), "rope_6" ); - g->m.spawn_item( pos(), "snare_trigger" ); + g->m.spawn_item( pos(), itype_rope_6 ); + g->m.spawn_item( pos(), itype_snare_trigger ); add_msg( _( "The %s escapes the heavy snare!" ), mon->get_name() ); } } @@ -1435,7 +1451,7 @@ bool Character::move_effects( bool attacking ) if( x_in_y( mon->type->melee_dice * mon->type->melee_sides, 200 ) ) { mon->remove_effect( effect_beartrap ); remove_effect( effect_beartrap ); - g->m.spawn_item( pos(), "beartrap" ); + g->m.spawn_item( pos(), itype_beartrap ); add_msg( _( "The %s escapes the bear trap!" ), mon->get_name() ); } else { add_msg_if_player( m_bad, @@ -1541,23 +1557,44 @@ bool Character::move_effects( bool attacking ) return true; } -character_movemode Character::get_movement_mode() const +move_mode_id Character::current_movement_mode() const { return move_mode; } -bool Character::movement_mode_is( const character_movemode mode ) const +bool Character::movement_mode_is( const move_mode_id &mode ) const { return move_mode == mode; } +bool Character::is_running() const +{ + return move_mode->type() == move_mode_type::RUNNING; +} + +bool Character::is_walking() const +{ + return move_mode->type() == move_mode_type::WALKING; +} + +bool Character::is_crouching() const +{ + return move_mode->type() == move_mode_type::CROUCHING; +} + +bool Character::can_switch_to( const move_mode_id &mode ) const +{ + // Only running modes are restricted at the moment + return mode->type() != move_mode_type::RUNNING || can_run(); +} + void Character::add_effect( const efftype_id &eff_id, const time_duration &dur, body_part bp, bool permanent, int intensity, bool force, bool deferred ) { Creature::add_effect( eff_id, dur, bp, permanent, intensity, force, deferred ); } -void Character::expose_to_disease( const diseasetype_id dis_type ) +void Character::expose_to_disease( const diseasetype_id &dis_type ) { const cata::optional &healt_thresh = dis_type->health_threshold; if( healt_thresh && healt_thresh.value() < get_healthy() ) { @@ -1680,7 +1717,7 @@ void Character::recalc_sight_limits() if( has_nv() ) { vision_mode_cache.set( NV_GOGGLES ); } - if( has_active_mutation( trait_NIGHTVISION3 ) || is_wearing( "rm13_armor_on" ) || + if( has_active_mutation( trait_NIGHTVISION3 ) || is_wearing( itype_rm13_armor_on ) || ( is_mounted() && mounted_creature->has_flag( MF_MECH_RECON_VISION ) ) ) { vision_mode_cache.set( NIGHTVISION_3 ); } @@ -1796,7 +1833,7 @@ void Character::check_item_encumbrance_flag() bool Character::natural_attack_restricted_on( const bodypart_id &bp ) const { for( const item &i : worn ) { - if( i.covers( bp->token ) && !i.has_flag( "ALLOWS_NATURAL_ATTACKS" ) && + if( i.covers( bp ) && !i.has_flag( "ALLOWS_NATURAL_ATTACKS" ) && !i.has_flag( "SEMITANGIBLE" ) && !i.has_flag( "PERSONAL" ) && !i.has_flag( "AURA" ) ) { return true; @@ -1969,7 +2006,7 @@ std::vector Character::get_fuel_available( const bionic_id &bio ) cons std::vector stored_fuels; for( const itype_id &fuel : bio->fuel_opts ) { const item tmp_fuel( fuel ); - if( !get_value( fuel ).empty() || tmp_fuel.has_flag( flag_PERPETUAL ) ) { + if( !get_value( fuel.str() ).empty() || tmp_fuel.has_flag( flag_PERPETUAL ) ) { stored_fuels.emplace_back( fuel ); } } @@ -1979,13 +2016,13 @@ std::vector Character::get_fuel_available( const bionic_id &bio ) cons int Character::get_fuel_capacity( const itype_id &fuel ) const { int amount_stored = 0; - if( !get_value( fuel ).empty() ) { - amount_stored = std::stoi( get_value( fuel ) ); + if( !get_value( fuel.str() ).empty() ) { + amount_stored = std::stoi( get_value( fuel.str() ) ); } int capacity = 0; for( const bionic_id &bid : get_bionics() ) { for( const itype_id &fl : bid->fuel_opts ) { - if( get_value( bid.c_str() ).empty() || get_value( bid.c_str() ) == fl ) { + if( get_value( bid.str() ).empty() || get_value( bid.str() ) == fl.str() ) { if( fl == fuel ) { capacity += bid->fuel_capacity; } @@ -2000,7 +2037,7 @@ int Character::get_total_fuel_capacity( const itype_id &fuel ) const int capacity = 0; for( const bionic_id &bid : get_bionics() ) { for( const itype_id &fl : bid->fuel_opts ) { - if( get_value( bid.c_str() ).empty() || get_value( bid.c_str() ) == fl ) { + if( get_value( bid.str() ).empty() || get_value( bid.str() ) == fl.str() ) { if( fl == fuel ) { capacity += bid->fuel_capacity; } @@ -2013,7 +2050,7 @@ int Character::get_total_fuel_capacity( const itype_id &fuel ) const void Character::update_fuel_storage( const itype_id &fuel ) { const item it( fuel ); - if( get_value( fuel ).empty() ) { + if( get_value( fuel.str() ).empty() ) { for( const bionic_id &bid : get_bionic_fueled_with( it ) ) { remove_value( bid.c_str() ); } @@ -2024,7 +2061,7 @@ void Character::update_fuel_storage( const itype_id &fuel ) if( bids.empty() ) { return; } - int amount_fuel_loaded = std::stoi( get_value( fuel ) ); + int amount_fuel_loaded = std::stoi( get_value( fuel.str() ) ); std::vector loaded_bio; // Sort bionic in order of decreasing capacity @@ -2052,7 +2089,7 @@ void Character::update_fuel_storage( const itype_id &fuel ) } for( const bionic_id &bd : loaded_bio ) { - set_value( bd.c_str(), fuel ); + set_value( bd.str(), fuel.str() ); } } @@ -2069,6 +2106,19 @@ int Character::get_mod_stat_from_bionic( const Character::stat &Stat ) const return ret; } +int Character::get_standard_stamina_cost( item *thrown_item ) +{ + // Previously calculated as 2_gram * std::max( 1, str_cur ) + // using 16_gram normalizes it to 8 str. Same effort expenditure + // for each strike, regardless of weight. This is compensated + // for by the additional move cost as weapon weight increases + //If the item is thrown, override with the thrown item instead. + const int weight_cost = ( thrown_item == nullptr ) ? this->weapon.weight() / + ( 16_gram ) : thrown_item->weight() / ( 16_gram ); + const int encumbrance_cost = this->encumb( bp_arm_l ) + this->encumb( bp_arm_r ); + return ( weight_cost + encumbrance_cost + 50 ) * -1; +} + cata::optional::iterator> Character::wear_item( const item &to_wear, bool interactive ) { @@ -2088,6 +2138,8 @@ cata::optional::iterator> Character::wear_item( const item &to_w std::list::iterator position = position_to_wear_new_item( to_wear ); std::list::iterator new_item_it = worn.insert( position, to_wear ); + g->events().send( getID(), last_item ); + if( interactive ) { add_msg_player_or_npc( _( "You put on your %s." ), @@ -2095,10 +2147,10 @@ cata::optional::iterator> Character::wear_item( const item &to_w to_wear.tname() ); moves -= item_wear_cost( to_wear ); - for( const body_part bp : all_body_parts ) { - if( to_wear.covers( bp ) && encumb( bp ) >= 40 ) { + for( const bodypart_id &bp : get_all_body_parts() ) { + if( to_wear.covers( bp ) && encumb( bp->token ) >= 40 ) { add_msg_if_player( m_warning, - bp == bp_eyes ? + bp == bodypart_id( "eyes" ) ? _( "Your %s are very encumbered! %s" ) : _( "Your %s is very encumbered! %s" ), body_part_name( bp ), encumb_text( bp ) ); } @@ -2115,7 +2167,7 @@ cata::optional::iterator> Character::wear_item( const item &to_w _( "This %s is too small to wear comfortably! Maybe it could be refitted." ), to_wear.tname() ); } - } else { + } else if( is_npc() && g->u.sees( *this ) ) { add_msg_if_npc( _( " puts on their %s." ), to_wear.tname() ); } @@ -2222,7 +2274,7 @@ item *Character::try_add( item it, const item *avoid ) // if there's a desired invlet for this item type, try to use it bool keep_invlet = false; const invlets_bitset cur_inv = allocated_invlets(); - for( auto iter : inv.assigned_invlet ) { + for( const auto &iter : inv.assigned_invlet ) { if( iter.second == item_type_id && !cur_inv[iter.first] ) { it.invlet = iter.first; keep_invlet = true; @@ -2252,8 +2304,8 @@ item *Character::try_add( item it, const item *avoid ) } } } else { - pocket->add( it ); - ret = &pocket->back(); + // this will set ret to either it, or to stack where it was placed + pocket->add( it, &ret ); } if( keep_invlet ) { @@ -2278,7 +2330,7 @@ item &Character::i_add( item it, bool /* should_stack */, const item *avoid ) } } -std::list Character::remove_worn_items_with( std::function filter ) +std::list Character::remove_worn_items_with( const std::function &filter ) { std::list result; for( auto iter = worn.begin(); iter != worn.end(); ) { @@ -2319,6 +2371,20 @@ std::vector Character::all_items_loc() return ret; } +std::vector Character::top_items_loc() +{ + std::vector ret; + if( has_weapon() ) { + item_location weap_loc( *this, &weapon ); + ret.push_back( weap_loc ); + } + for( item &worn_it : worn ) { + item_location worn_loc( *this, &worn_it ); + ret.push_back( worn_loc ); + } + return ret; +} + item *Character::invlet_to_item( const int linvlet ) { // Invlets may come from curses, which may also return any kind of key codes, those being @@ -2388,9 +2454,7 @@ item Character::i_rem( int pos ) { item tmp; if( pos == -1 ) { - tmp = weapon; - weapon = item(); - return tmp; + return remove_weapon(); } else if( pos < -1 && pos > worn_position_to_index( worn.size() ) ) { auto iter = worn.begin(); std::advance( iter, worn_position_to_index( pos ) ); @@ -2422,7 +2486,7 @@ void Character::i_rem_keep_contents( const int idx ) bool Character::i_add_or_drop( item &it, int qty ) { bool retval = true; - bool drop = it.made_of( LIQUID ); + bool drop = it.made_of( phase_id::LIQUID ); bool add = it.is_gun() || !it.is_irremovable(); inv.assign_empty_invlet( it, *this ); for( int i = 0; i < qty; ++i ) { @@ -2520,6 +2584,7 @@ item Character::remove_weapon() { item tmp = weapon; weapon = item(); + g->events().send( getID(), weapon.typeId() ); cached_info.erase( "weapon_value" ); return tmp; } @@ -2575,7 +2640,7 @@ void find_ammo_helper( T &src, const item &obj, bool empty, Output out, bool nes return VisitResponse::SKIP; } - if( ( parent->is_container() && node->made_of( LIQUID ) ) || node->is_frozen_liquid() ) { + if( ( parent->is_container() && node->made_of( phase_id::LIQUID ) ) || node->is_frozen_liquid() ) { out = item_location( src, node ); } return nested ? VisitResponse::NEXT : VisitResponse::SKIP; @@ -2592,11 +2657,11 @@ void find_ammo_helper( T &src, const item &obj, bool empty, Output out, bool nes // guns/tools never contain usable ammo so most efficient to skip them now return VisitResponse::SKIP; } - if( !node->made_of_from_type( SOLID ) ) { + if( !node->made_of_from_type( phase_id::SOLID ) && parent == nullptr ) { // some liquids are ammo but we can't reload with them unless within a container or frozen return VisitResponse::SKIP; } - if( !node->made_of( SOLID ) && parent->is_ammo_container() ) { + if( !node->made_of( phase_id::SOLID ) && parent != nullptr ) { for( const ammotype &at : ammo ) { if( node->ammo_type() == at ) { out = item_location( src, node ); @@ -2665,11 +2730,11 @@ std::vector Character::find_reloadables() bool reloadable = false; if( node->is_gun() && !node->magazine_compatible().empty() ) { reloadable = node->magazine_current() == nullptr || - node->ammo_remaining() < node->ammo_capacity(); + node->remaining_ammo_capacity() > 0; } else { reloadable = ( node->is_magazine() || ( node->is_gun() && node->magazine_integral() ) ) && - node->ammo_remaining() < node->ammo_capacity(); + node->remaining_ammo_capacity() > 0; } if( reloadable ) { reloadables.push_back( item_location( *this, node ) ); @@ -2901,7 +2966,7 @@ ret_val Character::can_wear( const item &it, bool with_equip_change ) cons it.type_name() ); } } - if( it.covers( bp_head ) && !it.has_flag( flag_SEMITANGIBLE ) && + if( it.covers( bodypart_id( "head" ) ) && !it.has_flag( flag_SEMITANGIBLE ) && !it.made_of( material_id( "wool" ) ) && !it.made_of( material_id( "cotton" ) ) && !it.made_of( material_id( "nomex" ) ) && !it.made_of( material_id( "leather" ) ) && ( has_trait( trait_HORNS_POINTED ) || has_trait( trait_ANTENNAE ) || @@ -2915,7 +2980,7 @@ ret_val Character::can_wear( const item &it, bool with_equip_change ) cons if( it.has_flag( flag_SPLINT ) ) { bool need_splint = false; for( const bodypart_id &bp : get_all_body_parts() ) { - if( !it.covers( bp->token ) ) { + if( !it.covers( bp ) ) { continue; } if( is_limb_broken( bp_to_hp( bp->token ) ) && !worn_with_flag( flag_SPLINT, bp ) ) { @@ -2942,12 +3007,12 @@ ret_val Character::can_wear( const item &it, bool with_equip_change ) cons if( it.is_power_armor() ) { for( auto &elem : worn ) { - if( ( elem.get_covered_body_parts() & it.get_covered_body_parts() ).any() && + if( elem.get_covered_body_parts().make_intersection( it.get_covered_body_parts() ).any() && !elem.has_flag( flag_POWERARMOR_COMPATIBLE ) ) { return ret_val::make_failure( _( "Can't wear power armor over other gear!" ) ); } } - if( !it.covers( bp_torso ) ) { + if( !it.covers( bodypart_id( "torso" ) ) ) { bool power_armor = false; if( !worn.empty() ) { for( auto &elem : worn ) { @@ -2973,7 +3038,8 @@ ret_val Character::can_wear( const item &it, bool with_equip_change ) cons // You can't wear headgear if power armor helmet is already sitting on your head. bool has_helmet = false; if( !it.has_flag( flag_POWERARMOR_COMPATIBLE ) && ( ( is_wearing_power_armor( &has_helmet ) && - ( has_helmet || !( it.covers( bp_head ) || it.covers( bp_mouth ) || it.covers( bp_eyes ) ) ) ) ) ) { + ( has_helmet || !( it.covers( bodypart_id( "head" ) ) || it.covers( bodypart_id( "mouth" ) ) || + it.covers( bodypart_id( "eyes" ) ) ) ) ) ) ) { return ret_val::make_failure( _( "Can't wear %s with power armor!" ), it.tname() ); } } @@ -2996,8 +3062,8 @@ ret_val Character::can_wear( const item &it, bool with_equip_change ) cons MAX_WORN_PER_TYPE + 1, it.tname( MAX_WORN_PER_TYPE + 1 ) ); } - if( ( ( it.covers( bp_foot_l ) && is_wearing_shoes( side::LEFT ) ) || - ( it.covers( bp_foot_r ) && is_wearing_shoes( side::RIGHT ) ) ) && + if( ( ( it.covers( bodypart_id( "foot_l" ) ) && is_wearing_shoes( side::LEFT ) ) || + ( it.covers( bodypart_id( "foot_r" ) ) && is_wearing_shoes( side::RIGHT ) ) ) && ( !it.has_flag( flag_OVERSIZE ) || !it.has_flag( flag_OUTER ) ) && !it.has_flag( flag_SKINTIGHT ) && !it.has_flag( flag_BELTED ) && !it.has_flag( flag_PERSONAL ) && !it.has_flag( flag_AURA ) && !it.has_flag( flag_SEMITANGIBLE ) ) { @@ -3006,7 +3072,7 @@ ret_val Character::can_wear( const item &it, bool with_equip_change ) cons : string_format( _( "%s is already wearing footwear!" ), name ) ) ); } - if( it.covers( bp_head ) && + if( it.covers( bodypart_id( "head" ) ) && !it.has_flag( flag_HELMET_COMPAT ) && !it.has_flag( flag_SKINTIGHT ) && !it.has_flag( flag_PERSONAL ) && !it.has_flag( flag_AURA ) && !it.has_flag( flag_SEMITANGIBLE ) && !it.has_flag( flag_OVERSIZE ) && @@ -3016,7 +3082,7 @@ ret_val Character::can_wear( const item &it, bool with_equip_change ) cons : string_format( _( "%s can't wear that with other headgear!" ), name ) ) ); } - if( it.covers( bp_head ) && !it.has_flag( flag_SEMITANGIBLE ) && + if( it.covers( bodypart_id( "head" ) ) && !it.has_flag( flag_SEMITANGIBLE ) && ( it.has_flag( flag_SKINTIGHT ) || it.has_flag( flag_HELMET_COMPAT ) ) && ( head_cloth_encumbrance() + it.get_encumber( *this ) > 40 ) ) { return ret_val::make_failure( ( is_player() ? _( "You can't wear that much on your head!" ) @@ -3040,7 +3106,7 @@ void Character::drop_invalid_inventory() bool dropped_liquid = false; for( const std::list *stack : inv.const_slice() ) { const item &it = stack->front(); - if( it.made_of( LIQUID ) ) { + if( it.made_of( phase_id::LIQUID ) ) { dropped_liquid = true; g->m.add_item_or_charges( pos(), it ); // must be last @@ -3079,7 +3145,7 @@ bool Character::is_wielding( const item &target ) const bool Character::is_wearing( const itype_id &it ) const { - for( auto &i : worn ) { + for( const item &i : worn ) { if( i.typeId() == it ) { return true; } @@ -3089,8 +3155,8 @@ bool Character::is_wearing( const itype_id &it ) const bool Character::is_wearing_on_bp( const itype_id &it, const bodypart_id &bp ) const { - for( auto &i : worn ) { - if( i.typeId() == it && i.covers( bp->token ) ) { + for( const item &i : worn ) { + if( i.typeId() == it && i.covers( bp ) ) { return true; } } @@ -3101,7 +3167,7 @@ bool Character::worn_with_flag( const std::string &flag, const bodypart_id &bp ) { return std::any_of( worn.begin(), worn.end(), [&flag, bp]( const item & it ) { return it.has_flag( flag ) && ( bp == bodypart_id( "num_bp" ) || bp == bodypart_id() || - it.covers( bp->token ) ); + it.covers( bp ) ); } ); } @@ -3110,7 +3176,7 @@ item Character::item_worn_with_flag( const std::string &flag, const bodypart_id item it_with_flag; for( const item &it : worn ) { if( it.has_flag( flag ) && ( bp == bodypart_id( "num_bp" ) || bp == bodypart_id() || - it.covers( bp->token ) ) ) { + it.covers( bp ) ) ) { it_with_flag = it; break; } @@ -3151,17 +3217,17 @@ std::vector Character::get_overlay_ids() const // next clothing // TODO: worry about correct order of clothing overlays for( const item &worn_item : worn ) { - rval.push_back( "worn_" + worn_item.typeId() ); + rval.push_back( "worn_" + worn_item.typeId().str() ); } // last weapon // TODO: might there be clothing that covers the weapon? if( is_armed() ) { - rval.push_back( "wielded_" + weapon.typeId() ); + rval.push_back( "wielded_" + weapon.typeId().str() ); } - if( move_mode != CMM_WALK ) { - rval.push_back( io::enum_to_string( move_mode ) ); + if( !is_walking() ) { + rval.push_back( move_mode->name() ); } return rval; } @@ -3475,7 +3541,7 @@ bool Character::has_nv() void Character::reset_encumbrance() { - encumbrance_cache = calc_encumbrance(); + encumbrance_cache_dirty = true; } std::array Character::calc_encumbrance() const @@ -3512,6 +3578,10 @@ units::mass Character::get_weight() const std::array Character::get_encumbrance() const { + if( encumbrance_cache_dirty ) { + encumbrance_cache = calc_encumbrance(); + encumbrance_cache_dirty = false; + } return encumbrance_cache; } @@ -3522,20 +3592,11 @@ std::array Character::get_encumbrance( const item &new int Character::extraEncumbrance( const layer_level level, const int bp ) const { - return encumbrance_cache[bp].layer_penalty_details[static_cast( level )].total; -} - -hint_rating Character::rate_action_change_side( const item &it ) const -{ - if( !is_worn( it ) ) { - return hint_rating::iffy; - } - - if( !it.is_sided() ) { - return hint_rating::cant; + if( encumbrance_cache_dirty ) { + encumbrance_cache = calc_encumbrance(); + encumbrance_cache_dirty = false; } - - return hint_rating::good; + return encumbrance_cache[bp].layer_penalty_details[static_cast( level )].total; } bool Character::change_side( item &it, bool interactive ) @@ -3600,28 +3661,28 @@ static void layer_item( std::array &vals, encumber_val : std::max( 0, encumber_val - 40 ); body_part_set covered_parts = it.get_covered_body_parts(); - for( const body_part bp : all_body_parts ) { - if( !covered_parts.test( bp ) ) { + for( const bodypart_id &bp : c.get_all_body_parts() ) { + if( !covered_parts.test( bp.id() ) ) { continue; } - highest_layer_so_far[bp] = - std::max( highest_layer_so_far[bp], item_layer ); + highest_layer_so_far[bp->token] = + std::max( highest_layer_so_far[bp->token], item_layer ); // Apply layering penalty to this layer, as well as any layer worn // within it that would normally be worn outside of it. for( layer_level penalty_layer = item_layer; - penalty_layer <= highest_layer_so_far[bp]; ++penalty_layer ) { - vals[bp].layer( penalty_layer, layering_encumbrance ); + penalty_layer <= highest_layer_so_far[bp->token]; ++penalty_layer ) { + vals[bp->token].layer( penalty_layer, layering_encumbrance ); } - vals[bp].armor_encumbrance += armorenc; + vals[bp->token].armor_encumbrance += armorenc; } } bool Character::is_wearing_power_armor( bool *hasHelmet ) const { bool result = false; - for( auto &elem : worn ) { + for( const item &elem : worn ) { if( !elem.is_power_armor() ) { continue; } @@ -3631,7 +3692,7 @@ bool Character::is_wearing_power_armor( bool *hasHelmet ) const } // found power armor, continue search for helmet result = true; - if( elem.covers( bp_head ) ) { + if( elem.covers( bodypart_id( "head" ) ) ) { *hasHelmet = true; return true; } @@ -3641,7 +3702,7 @@ bool Character::is_wearing_power_armor( bool *hasHelmet ) const bool Character::is_wearing_active_power_armor() const { - for( const auto &w : worn ) { + for( const item &w : worn ) { if( w.is_power_armor() && w.active ) { return true; } @@ -3651,7 +3712,7 @@ bool Character::is_wearing_active_power_armor() const bool Character::is_wearing_active_optcloak() const { - for( auto &w : worn ) { + for( const item &w : worn ) { if( w.active && w.has_flag( flag_ACTIVE_CLOAKING ) ) { return true; } @@ -3670,7 +3731,7 @@ bool Character::in_climate_control() in_sleep_state() ) { return true; } - for( auto &w : worn ) { + for( const item &w : worn ) { if( w.active && w.is_power_armor() ) { return true; } @@ -3707,8 +3768,8 @@ int Character::get_wind_resistance( const bodypart_id &bp ) const int totalCoverage = 0; int penalty = 100; - for( auto &i : worn ) { - if( i.covers( bp->token ) ) { + for( const item &i : worn ) { + if( i.covers( bp ) ) { if( i.made_of( material_id( "leather" ) ) || i.made_of( material_id( "plastic" ) ) || i.made_of( material_id( "bone" ) ) || i.made_of( material_id( "chitin" ) ) || i.made_of( material_id( "nomex" ) ) ) { @@ -3817,8 +3878,7 @@ void Character::item_encumb( std::array &vals, // Track highest layer observed so far so we can penalize out-of-order // items std::array highest_layer_so_far; - std::fill( highest_layer_so_far.begin(), highest_layer_so_far.end(), - PERSONAL_LAYER ); + std::fill( highest_layer_so_far.begin(), highest_layer_so_far.end(), layer_level::PERSONAL ); const bool power_armored = is_wearing_active_power_armor(); for( auto w_it = worn.begin(); w_it != worn.end(); ++w_it ) { @@ -3845,6 +3905,10 @@ void Character::item_encumb( std::array &vals, int Character::encumb( body_part bp ) const { + if( encumbrance_cache_dirty ) { + encumbrance_cache = calc_encumbrance(); + encumbrance_cache_dirty = false; + } return encumbrance_cache[bp].encumbrance; } @@ -3852,13 +3916,13 @@ static void apply_mut_encumbrance( std::array &vals, const trait_id &mut, const body_part_set &oversize ) { - for( const std::pair &enc : mut->encumbrance_always ) { - vals[enc.first].encumbrance += enc.second; + for( const std::pair &enc : mut->encumbrance_always ) { + vals[enc.first->token].encumbrance += enc.second; } - for( const std::pair &enc : mut->encumbrance_covered ) { + for( const std::pair &enc : mut->encumbrance_covered ) { if( !oversize.test( enc.first ) ) { - vals[enc.first].encumbrance += enc.second; + vals[enc.first->token].encumbrance += enc.second; } } } @@ -3867,8 +3931,8 @@ void Character::mut_cbm_encumb( std::array &vals ) con { for( const bionic_id &bid : get_bionics() ) { - for( const std::pair &element : bid->encumbrance ) { - vals[element.first].encumbrance += element.second; + for( const std::pair &element : bid->encumbrance ) { + vals[element.first->token].encumbrance += element.second; } } @@ -3888,12 +3952,13 @@ void Character::mut_cbm_encumb( std::array &vals ) con body_part_set Character::exclusive_flag_coverage( const std::string &flag ) const { - body_part_set ret = body_part_set::all(); + body_part_set ret; + ret.fill( get_all_body_parts() ); - for( const auto &elem : worn ) { + for( const item &elem : worn ) { if( !elem.has_flag( flag ) ) { // Unset the parts covered by this item - ret &= ~elem.get_covered_body_parts(); + ret.substract_set( elem.get_covered_body_parts() ); } } @@ -4250,68 +4315,23 @@ std::pair Character::get_thirst_description() const std::pair Character::get_hunger_description() const { - const bool calorie_deficit = get_bmi() < character_weight_category::normal; - const units::volume contains = stomach.contains(); - const units::volume cap = stomach.capacity( *this ); - std::string hunger_string; - nc_color hunger_color = c_white; - // i ate just now! - const bool just_ate = stomach.time_since_ate() < 15_minutes; - // i ate a meal recently enough that i shouldn't need another meal - const bool recently_ate = stomach.time_since_ate() < 3_hours; - if( calorie_deficit ) { - if( contains >= cap ) { - hunger_string = _( "Engorged" ); - hunger_color = c_green; - } else if( contains > cap * 3 / 4 ) { - hunger_string = _( "Sated" ); - hunger_color = c_green; - } else if( just_ate && contains > cap / 2 ) { - hunger_string = _( "Full" ); - hunger_color = c_green; - } else if( just_ate ) { - hunger_string = _( "Hungry" ); - hunger_color = c_yellow; - } else if( recently_ate ) { - hunger_string = _( "Very Hungry" ); - hunger_color = c_yellow; - } else if( get_bmi() < character_weight_category::emaciated ) { - hunger_string = _( "Starving!" ); - hunger_color = c_red; - } else if( get_bmi() < character_weight_category::underweight ) { - hunger_string = _( "Near starving" ); - hunger_color = c_red; - } else { - hunger_string = _( "Famished" ); - hunger_color = c_light_red; - } - } else { - if( contains >= cap * 5 / 6 ) { - hunger_string = _( "Engorged" ); - hunger_color = c_green; - } else if( contains > cap * 11 / 20 ) { - hunger_string = _( "Sated" ); - hunger_color = c_green; - } else if( recently_ate && contains >= cap * 3 / 8 ) { - hunger_string = _( "Full" ); - hunger_color = c_green; - } else if( ( stomach.time_since_ate() > 90_minutes && contains < cap / 8 && recently_ate ) || - ( just_ate && contains > 0_ml && contains < cap * 3 / 8 ) ) { - hunger_string = _( "Peckish" ); - hunger_color = c_dark_gray; - } else if( !just_ate && ( recently_ate || contains > 0_ml ) ) { - hunger_string.clear(); - } else { - if( get_bmi() > character_weight_category::overweight ) { - hunger_string = _( "Hungry" ); - } else { - hunger_string = _( "Very Hungry" ); - } - hunger_color = c_yellow; + std::map > hunger_states = { + { effect_hunger_engorged, std::make_pair( _( "Engorged" ), c_red ) }, + { effect_hunger_full, std::make_pair( _( "Full" ), c_yellow ) }, + { effect_hunger_satisfied, std::make_pair( _( "Satisfied" ), c_green ) }, + { effect_hunger_blank, std::make_pair( "", c_white ) }, + { effect_hunger_hungry, std::make_pair( _( "Hungry" ), c_yellow ) }, + { effect_hunger_very_hungry, std::make_pair( _( "Very Hungry" ), c_yellow ) }, + { effect_hunger_near_starving, std::make_pair( _( "Near starving" ), c_red ) }, + { effect_hunger_starving, std::make_pair( _( "Starving!" ), c_red ) }, + { effect_hunger_famished, std::make_pair( _( "Famished" ), c_light_red ) } + }; + for( auto &hunger_state : hunger_states ) { + if( has_effect( hunger_state.first ) ) { + return hunger_state.second; } } - - return std::make_pair( hunger_string, hunger_color ); + return std::make_pair( _( "ERROR!" ), c_light_red ); } std::pair Character::get_fatigue_description() const @@ -4319,13 +4339,13 @@ std::pair Character::get_fatigue_description() const int fatigue = get_fatigue(); std::string fatigue_string; nc_color fatigue_color = c_white; - if( fatigue > EXHAUSTED ) { + if( fatigue > fatigue_levels::EXHAUSTED ) { fatigue_color = c_red; fatigue_string = _( "Exhausted" ); - } else if( fatigue > DEAD_TIRED ) { + } else if( fatigue > fatigue_levels::DEAD_TIRED ) { fatigue_color = c_light_red; fatigue_string = _( "Dead Tired" ); - } else if( fatigue > TIRED ) { + } else if( fatigue > fatigue_levels::TIRED ) { fatigue_color = c_yellow; fatigue_string = _( "Tired" ); } @@ -4367,6 +4387,11 @@ void Character::set_fatigue( int nfatigue ) } } +void Character::set_fatigue( fatigue_levels nfatigue ) +{ + set_fatigue( static_cast( nfatigue ) ); +} + void Character::set_sleep_deprivation( int nsleep_deprivation ) { sleep_deprivation = std::min( static_cast< int >( SLEEP_DEPRIVATION_MASSIVE ), std::max( 0, @@ -4481,17 +4506,17 @@ void Character::regen( int rate_multiplier ) // include healing effects for( int i = 0; i < num_hp_parts; i++ ) { - body_part bp = hp_to_bp( static_cast( i ) ); - float healing = healing_rate_medicine( rest, convert_bp( bp ).id() ) * to_turns( 5_minutes ); + const bodypart_id &bp = convert_bp( hp_to_bp( static_cast( i ) ) ).id(); + float healing = healing_rate_medicine( rest, bp ) * to_turns( 5_minutes ); int healing_apply = roll_remainder( healing ); healed_bp( i, healing_apply ); - heal( bp, healing_apply ); + heal( bp->token, healing_apply ); if( damage_bandaged[i] > 0 ) { damage_bandaged[i] -= healing_apply; if( damage_bandaged[i] <= 0 ) { damage_bandaged[i] = 0; - remove_effect( effect_bandaged, bp ); + remove_effect( effect_bandaged, bp->token ); add_msg_if_player( _( "Bandaged wounds on your %s healed." ), body_part_name( bp ) ); } } @@ -4499,20 +4524,20 @@ void Character::regen( int rate_multiplier ) damage_disinfected[i] -= healing_apply; if( damage_disinfected[i] <= 0 ) { damage_disinfected[i] = 0; - remove_effect( effect_disinfected, bp ); + remove_effect( effect_disinfected, bp->token ); add_msg_if_player( _( "Disinfected wounds on your %s healed." ), body_part_name( bp ) ); } } // remove effects if the limb was healed by other way - if( has_effect( effect_bandaged, bp ) && ( hp_cur[i] == hp_max[i] ) ) { + if( has_effect( effect_bandaged, bp->token ) && ( hp_cur[i] == hp_max[i] ) ) { damage_bandaged[i] = 0; - remove_effect( effect_bandaged, bp ); + remove_effect( effect_bandaged, bp->token ); add_msg_if_player( _( "Bandaged wounds on your %s healed." ), body_part_name( bp ) ); } - if( has_effect( effect_disinfected, bp ) && ( hp_cur[i] == hp_max[i] ) ) { + if( has_effect( effect_disinfected, bp->token ) && ( hp_cur[i] == hp_max[i] ) ) { damage_disinfected[i] = 0; - remove_effect( effect_disinfected, bp ); + remove_effect( effect_disinfected, bp->token ); add_msg_if_player( _( "Disinfected wounds on your %s healed." ), body_part_name( bp ) ); } } @@ -4687,7 +4712,7 @@ void Character::update_stomach( const time_point &from, const time_point &to ) // you're engorged! your stomach is full to bursting! set_hunger( -61 ); } else if( stomach.contains() >= stomach_capacity / 2 && get_hunger() > -21 ) { - // sated + // full set_hunger( -21 ); } else if( stomach.contains() >= stomach_capacity / 8 && get_hunger() > -1 ) { // that's really all the food you need to feel full @@ -4712,7 +4737,7 @@ void Character::update_stomach( const time_point &from, const time_point &to ) // you're engorged! your stomach is full to bursting! set_hunger( -61 ); } else if( stomach.contains() >= stomach_capacity * 3 / 4 && get_hunger() > -21 ) { - // sated + // full set_hunger( -21 ); } else if( stomach.contains() >= stomach_capacity / 2 && get_hunger() > -1 ) { // that's really all the food you need to feel full @@ -4731,6 +4756,63 @@ void Character::update_stomach( const time_point &from, const time_point &to ) if( mycus || mouse ) { set_thirst( 0 ); } + + const bool calorie_deficit = get_bmi() < character_weight_category::normal; + const units::volume contains = stomach.contains(); + const units::volume cap = stomach.capacity( *this ); + + efftype_id hunger_effect; + // i ate just now! + const bool just_ate = stomach.time_since_ate() < 15_minutes; + // i ate a meal recently enough that i shouldn't need another meal + const bool recently_ate = stomach.time_since_ate() < 3_hours; + if( calorie_deficit ) { + if( contains >= cap ) { + hunger_effect = effect_hunger_engorged; + } else if( contains > cap * 3 / 4 ) { + hunger_effect = effect_hunger_full; + } else if( just_ate && contains > cap / 2 ) { + hunger_effect = effect_hunger_satisfied; + } else if( just_ate ) { + hunger_effect = effect_hunger_hungry; + } else if( recently_ate ) { + hunger_effect = effect_hunger_very_hungry; + } else if( get_bmi() < character_weight_category::underweight ) { + hunger_effect = effect_hunger_near_starving; + } else if( get_bmi() < character_weight_category::emaciated ) { + hunger_effect = effect_hunger_starving; + } else { + hunger_effect = effect_hunger_famished; + } + } else { + if( contains >= cap * 5 / 6 ) { + hunger_effect = effect_hunger_engorged; + } else if( contains > cap * 11 / 20 ) { + hunger_effect = effect_hunger_full; + } else if( recently_ate && contains >= cap * 3 / 8 ) { + hunger_effect = effect_hunger_satisfied; + } else if( !just_ate && ( recently_ate || contains > 0_ml ) ) { + hunger_effect = effect_hunger_blank; + } else { + if( get_bmi() > character_weight_category::overweight ) { + hunger_effect = effect_hunger_hungry; + } else { + hunger_effect = effect_hunger_very_hungry; + } + } + } + if( !has_effect( hunger_effect ) ) { + remove_effect( effect_hunger_engorged ); + remove_effect( effect_hunger_full ); + remove_effect( effect_hunger_satisfied ); + remove_effect( effect_hunger_hungry ); + remove_effect( effect_hunger_very_hungry ); + remove_effect( effect_hunger_near_starving ); + remove_effect( effect_hunger_starving ); + remove_effect( effect_hunger_famished ); + remove_effect( effect_hunger_blank ); + add_effect( hunger_effect, 24_hours, num_bp, true ); + } } void Character::update_needs( int rate_multiplier ) @@ -4748,7 +4830,7 @@ void Character::update_needs( int rate_multiplier ) needs_rates rates = calc_needs_rates(); - const bool wasnt_fatigued = get_fatigue() <= DEAD_TIRED; + const bool wasnt_fatigued = get_fatigue() <= fatigue_levels::DEAD_TIRED; // Don't increase fatigue if sleeping or trying to sleep or if we're at the cap. if( get_fatigue() < 1050 && !asleep && !debug_ls ) { if( rates.fatigue > 0.0f ) { @@ -4765,8 +4847,8 @@ void Character::update_needs( int rate_multiplier ) mod_sleep_deprivation( fatigue_roll * 5 ); } - if( npc_no_food && get_fatigue() > TIRED ) { - set_fatigue( TIRED ); + if( npc_no_food && get_fatigue() > fatigue_levels::TIRED ) { + set_fatigue( fatigue_levels::TIRED ); set_sleep_deprivation( 0 ); } } @@ -4792,7 +4874,7 @@ void Character::update_needs( int rate_multiplier ) // Sleeping on a comfy bed, bionic = 9x rest_modifier float rest_modifier = ( has_active_bionic( bio_synaptic_regen ) ? 3 : 1 ); // Melatonin supplements also add a flat bonus to recovery speed - if( has_effect( effect_melatonin_supplements ) ) { + if( has_effect( effect_melatonin ) ) { rest_modifier += 1; } @@ -4808,9 +4890,9 @@ void Character::update_needs( int rate_multiplier ) // If we're just tired, we'll get a decent boost to our sleep quality. // The opposite is true for very tired characters. - if( get_fatigue() < DEAD_TIRED ) { + if( get_fatigue() < fatigue_levels::DEAD_TIRED ) { rest_modifier += 2; - } else if( get_fatigue() >= EXHAUSTED ) { + } else if( get_fatigue() >= fatigue_levels::EXHAUSTED ) { rest_modifier = ( rest_modifier > 2 ) ? rest_modifier - 2 : 1; } @@ -4820,7 +4902,7 @@ void Character::update_needs( int rate_multiplier ) } } } - if( is_player() && wasnt_fatigued && get_fatigue() > DEAD_TIRED && !lying ) { + if( is_player() && wasnt_fatigued && get_fatigue() > fatigue_levels::DEAD_TIRED && !lying ) { if( !activity ) { add_msg_if_player( m_warning, _( "You're feeling tired. %s to lie down for sleep." ), press_x( ACTION_SLEEP ) ); @@ -4840,7 +4922,8 @@ void Character::update_needs( int rate_multiplier ) } // Huge folks take penalties for cramming themselves in vehicles - if( in_vehicle && ( has_trait( trait_HUGE ) || has_trait( trait_HUGE_OK ) ) ) { + if( in_vehicle && ( ( has_trait( trait_HUGE ) || has_trait( trait_HUGE_OK ) ) ) + && !( has_trait( trait_NOPAIN ) || has_effect( effect_narcosis ) ) ) { vehicle *veh = veh_pointer_or_null( g->m.veh_at( pos() ) ); // it's painful to work the controls, but passengers in open topped vehicles are fine if( veh && ( veh->enclosed_at( pos() ) || veh->player_in_control( *this->as_player() ) ) ) { @@ -4850,7 +4933,8 @@ void Character::update_needs( int rate_multiplier ) npc &as_npc = dynamic_cast( *this ); as_npc.complain_about( "cramped_vehicle", 1_hours, "", false ); } - mod_pain_noresist( 2 * rng( 2, 3 ) ); + + mod_pain( rng( 4, 6 ) ); focus_pool -= 1; } } @@ -5033,8 +5117,8 @@ void Character::check_needs_extremes() } // Check if we're falling asleep, unless we're sleeping - if( get_fatigue() >= EXHAUSTED + 25 && !in_sleep_state() ) { - if( get_fatigue() >= MASSIVE_FATIGUE ) { + if( get_fatigue() >= fatigue_levels::EXHAUSTED + 25 && !in_sleep_state() ) { + if( get_fatigue() >= fatigue_levels::MASSIVE_FATIGUE ) { add_msg_if_player( m_bad, _( "Survivor sleep now." ) ); g->events().send( getID() ); mod_fatigue( -10 ); @@ -5048,7 +5132,7 @@ void Character::check_needs_extremes() // Even if we're not Exhausted, we really should be feeling lack/sleep earlier // Penalties start at Dead Tired and go from there - if( get_fatigue() >= DEAD_TIRED && !in_sleep_state() ) { + if( get_fatigue() >= fatigue_levels::DEAD_TIRED && !in_sleep_state() ) { if( get_fatigue() >= 700 ) { if( calendar::once_every( 30_minutes ) ) { add_msg_if_player( m_warning, _( "You're too physically tired to stop yawning." ) ); @@ -5059,7 +5143,7 @@ void Character::check_needs_extremes() // Rivet's idea: look out for microsleeps! fall_asleep( 30_seconds ); } - } else if( get_fatigue() >= EXHAUSTED ) { + } else if( get_fatigue() >= fatigue_levels::EXHAUSTED ) { if( calendar::once_every( 30_minutes ) ) { add_msg_if_player( m_warning, _( "How much longer until bedtime?" ) ); add_effect( effect_lack_sleep, 30_minutes + 1_turns ); @@ -5068,7 +5152,7 @@ void Character::check_needs_extremes() if( one_in( 100 + int_cur ) ) { fall_asleep( 30_seconds ); } - } else if( get_fatigue() >= DEAD_TIRED && calendar::once_every( 30_minutes ) ) { + } else if( get_fatigue() >= fatigue_levels::DEAD_TIRED && calendar::once_every( 30_minutes ) ) { add_msg_if_player( m_warning, _( "*yawn* You should really get some sleep." ) ); add_effect( effect_lack_sleep, 30_minutes + 1_turns ); } @@ -5127,8 +5211,8 @@ void Character::check_needs_extremes() add_msg_player_or_npc( m_bad, _( "Your body collapses due to sleep deprivation, your neglected fatigue rushing back all at once, and you pass out on the spot." ) , _( " collapses to the ground from exhaustion." ) ); - if( get_fatigue() < EXHAUSTED ) { - set_fatigue( EXHAUSTED ); + if( get_fatigue() < fatigue_levels::EXHAUSTED ) { + set_fatigue( fatigue_levels::EXHAUSTED ); } if( sleep_deprivation >= SLEEP_DEPRIVATION_MAJOR ) { @@ -5259,7 +5343,7 @@ void Character::update_bodytemp() const bool has_bark = has_trait( trait_BARK ); const bool has_sleep = has_effect( effect_sleep ); const bool has_sleep_state = has_sleep || in_sleep_state(); - const bool has_heatsink = has_bionic( bio_heatsink ) || is_wearing( "rm13_armor_on" ) || + const bool has_heatsink = has_bionic( bio_heatsink ) || is_wearing( itype_rm13_armor_on ) || has_trait( trait_M_SKIN2 ) || has_trait( trait_M_SKIN3 ); const bool has_common_cold = has_effect( effect_common_cold ); const bool has_climate_control = in_climate_control(); @@ -5307,7 +5391,7 @@ void Character::update_bodytemp() // Current temperature and converging temperature calculations for( const bodypart_id &bp : get_all_body_parts() ) { // Skip eyes - if( bp == bodypart_id( "eyes" ) || bp == bodypart_id( "num_bp" ) ) { + if( bp == bodypart_id( "eyes" ) ) { continue; } @@ -5625,7 +5709,7 @@ void Character::update_bodytemp() } if( one_in( 100 ) && !has_effect( effect_frostbite, bp->token ) ) { add_msg( m_warning, _( "Your %s will be frostnipped in the next few hours." ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } // Medium risk zones } else if( temp_cur[bp->token] < BODYTEMP_COLD && @@ -5638,7 +5722,7 @@ void Character::update_bodytemp() frostbite_timer[bp->token] += 8; if( one_in( 100 ) && intense < 2 ) { add_msg( m_warning, _( "Your %s will be frostbitten within the hour!" ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } // High risk zones } else if( temp_cur[bp->token] < BODYTEMP_COLD && @@ -5648,7 +5732,7 @@ void Character::update_bodytemp() frostbite_timer[bp->token] += 72; if( one_in( 100 ) && intense < 2 ) { add_msg( m_warning, _( "Your %s will be frostbitten any minute now!" ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } // Risk free, so reduce frostbite timer } else { @@ -5682,27 +5766,27 @@ void Character::update_bodytemp() if( temp_before > BODYTEMP_FREEZING && temp_after < BODYTEMP_FREEZING ) { //~ %s is bodypart add_msg( m_warning, _( "You feel your %s beginning to go numb from the cold!" ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } else if( temp_before > BODYTEMP_VERY_COLD && temp_after < BODYTEMP_VERY_COLD ) { //~ %s is bodypart add_msg( m_warning, _( "You feel your %s getting very cold." ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } else if( temp_before > BODYTEMP_COLD && temp_after < BODYTEMP_COLD ) { //~ %s is bodypart add_msg( m_warning, _( "You feel your %s getting chilly." ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } else if( temp_before < BODYTEMP_SCORCHING && temp_after > BODYTEMP_SCORCHING ) { //~ %s is bodypart add_msg( m_bad, _( "You feel your %s getting red hot from the heat!" ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } else if( temp_before < BODYTEMP_VERY_HOT && temp_after > BODYTEMP_VERY_HOT ) { //~ %s is bodypart add_msg( m_warning, _( "You feel your %s getting very hot." ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } else if( temp_before < BODYTEMP_HOT && temp_after > BODYTEMP_HOT ) { //~ %s is bodypart add_msg( m_warning, _( "You feel your %s getting warm." ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } // Note: Numbers are based off of BODYTEMP at the top of weather.h @@ -5726,14 +5810,14 @@ void Character::update_bodytemp() // But only if it can be a problem, no need to spam player with "wind chills your scorching body" if( temp_conv[bp->token] <= BODYTEMP_COLD && windchill < -10 && one_in( 200 ) ) { add_msg( m_bad, _( "The wind is making your %s feel quite cold." ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } else if( temp_conv[bp->token] <= BODYTEMP_COLD && windchill < -20 && one_in( 100 ) ) { add_msg( m_bad, _( "The wind is very strong, you should find some more wind-resistant clothing for your %s." ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } else if( temp_conv[bp->token] <= BODYTEMP_COLD && windchill < -30 && one_in( 50 ) ) { add_msg( m_bad, _( "Your clothing is not providing enough protection from the wind for your %s!" ), - body_part_name( bp->token ) ); + body_part_name( bp ) ); } } } @@ -6251,7 +6335,7 @@ bool Character::is_immune_field( const field_type_id &fid ) const return is_elec_immune(); } if( ft.has_fire ) { - return has_active_bionic( bio_heatsink ) || is_wearing( "rm13_armor_on" ); + return has_active_bionic( bio_heatsink ) || is_wearing( itype_rm13_armor_on ); } if( ft.has_acid ) { return !is_on_ground() && get_env_resist( bodypart_id( "foot_l" ) ) >= 15 && @@ -6281,7 +6365,7 @@ bool Character::is_immune_effect( const efftype_id &eff ) const } else if( eff == effect_deaf ) { return worn_with_flag( flag_DEAF ) || worn_with_flag( flag_PARTIAL_DEAF ) || has_bionic( bio_ears ) || - is_wearing( "rm13_armor_on" ); + is_wearing( itype_rm13_armor_on ); } else if( eff == effect_corroding ) { return is_immune_damage( DT_ACID ) || has_trait( trait_SLIMY ) || has_trait( trait_VISCOUS ); } else if( eff == effect_nausea ) { @@ -6468,10 +6552,10 @@ float Character::active_light() const for( const std::pair &mut : my_mutations ) { if( mut.second.powered ) { float curr_lum = 0.0f; - for( const auto elem : mut.first->lumination ) { + for( const std::pair elem : mut.first->lumination ) { int coverage = 0; for( const item &i : worn ) { - if( i.covers( elem.first ) && !i.has_flag( flag_ALLOWS_NATURAL_ATTACKS ) && + if( i.covers( elem.first.id() ) && !i.has_flag( flag_ALLOWS_NATURAL_ATTACKS ) && !i.has_flag( flag_SEMITANGIBLE ) && !i.has_flag( flag_PERSONAL ) && !i.has_flag( flag_AURA ) ) { coverage += i.get_coverage(); @@ -6501,7 +6585,7 @@ bool Character::sees_with_specials( const Creature &critter ) const { // electroreceptors grants vision of robots and electric monsters through walls if( has_trait( trait_ELECTRORECEPTORS ) && - ( critter.in_species( ROBOT ) || critter.has_flag( MF_ELECTRIC ) ) ) { + ( critter.in_species( species_ROBOT ) || critter.has_flag( MF_ELECTRIC ) ) ) { return true; } @@ -6579,7 +6663,7 @@ resistances Character::mutation_armor( bodypart_id bp ) const { resistances res; for( const trait_id &iter : get_mutations() ) { - res += iter->damage_resistance( bp->token ); + res += iter->damage_resistance( bp ); } return res; @@ -6630,12 +6714,86 @@ int Character::ammo_count_for( const item &gun ) int ups_drain = gun.get_gun_ups_drain(); if( ups_drain > 0 ) { - ret = std::min( ret, charges_of( "UPS" ) / ups_drain ); + ret = std::min( ret, charges_of( itype_UPS ) / ups_drain ); } return ret; } +bool Character::can_reload( const item &it, const itype_id &ammo ) const +{ + if( !it.is_reloadable_with( ammo ) ) { + return false; + } + + if( it.is_ammo_belt() ) { + const cata::optional &linkage = it.type->magazine->linkage; + if( linkage && !has_charges( *linkage, 1 ) ) { + return false; + } + } + + return true; +} + +hint_rating Character::rate_action_reload( const item &it ) const +{ + hint_rating res = hint_rating::cant; + + // Guns may contain additional reloadable mods so check these first + for( const item *mod : it.gunmods() ) { + switch( rate_action_reload( *mod ) ) { + case hint_rating::good: + return hint_rating::good; + + case hint_rating::cant: + continue; + + case hint_rating::iffy: + res = hint_rating::iffy; + } + } + + if( !it.is_reloadable() ) { + return res; + } + + return can_reload( it ) ? hint_rating::good : hint_rating::iffy; +} + +hint_rating Character::rate_action_unload( const item &it ) const +{ + if( it.is_container() && !it.contents.empty() && + it.can_unload_liquid() ) { + return hint_rating::good; + } + + if( it.has_flag( "NO_UNLOAD" ) ) { + return hint_rating::cant; + } + + if( it.magazine_current() ) { + return hint_rating::good; + } + + for( const item *e : it.gunmods() ) { + if( e->is_gun() && !e->has_flag( "NO_UNLOAD" ) && + ( e->magazine_current() || e->ammo_remaining() > 0 || e->casings_count() > 0 ) ) { + return hint_rating::good; + } + } + + if( it.ammo_types().empty() ) { + return hint_rating::cant; + } + + if( it.ammo_remaining() > 0 || it.casings_count() > 0 ) { + return hint_rating::good; + } + + return hint_rating::iffy; +} + float Character::rest_quality() const { // Just a placeholder for now. @@ -6706,17 +6864,13 @@ std::string Character::extended_description() const // accumulate looks weird here, any better function? int longest = std::accumulate( bps.begin(), bps.end(), 0, []( int m, bodypart_id bp ) { - return std::max( m, utf8_width( body_part_name_as_heading( bp->token, 1 ) ) ); + return std::max( m, utf8_width( body_part_name_as_heading( bp, 1 ) ) ); } ); // This is a stripped-down version of the body_window function // This should be extracted into a separate function later on for( const bodypart_id bp : bps ) { - // Hide appendix from the player - if( bp->id == "num_bp" ) { - continue; - } - const std::string &bp_heading = body_part_name_as_heading( bp->token, 1 ); + const std::string &bp_heading = body_part_name_as_heading( bp, 1 ); hp_part hp = bp_to_hp( bp->token ); const int maximal_hp = hp_max[hp]; @@ -6829,6 +6983,7 @@ mutation_value_map = { { "map_memory_capacity_multiplier", calc_mutation_value_multiplicative<&mutation_branch::map_memory_capacity_multiplier> }, { "reading_speed_multiplier", calc_mutation_value_multiplicative<&mutation_branch::reading_speed_multiplier> }, { "skill_rust_multiplier", calc_mutation_value_multiplicative<&mutation_branch::skill_rust_multiplier> }, + { "obtain_cost_multiplier", calc_mutation_value_multiplicative<&mutation_branch::obtain_cost_multiplier> }, { "consume_time_modifier", calc_mutation_value_multiplicative<&mutation_branch::consume_time_modifier> } }; @@ -7012,7 +7167,7 @@ units::mass Character::bionics_weight() const units::mass bio_weight = 0_gram; for( const bionic_id &bid : get_bionics() ) { if( !bid->included ) { - bio_weight += item::find_type( bid.c_str() )->weight; + bio_weight += item::find_type( bid->itype() )->weight; } } return bio_weight; @@ -7086,15 +7241,15 @@ std::string Character::height_string() const int Character::height() const { switch( get_size() ) { - case MS_TINY: + case creature_size::tiny: return init_height - 100; - case MS_SMALL: + case creature_size::small: return init_height - 50; - case MS_MEDIUM: + case creature_size::medium: return init_height; - case MS_LARGE: + case creature_size::large: return init_height + 50; - case MS_HUGE: + case creature_size::huge: return init_height + 100; } @@ -7180,8 +7335,8 @@ int Character::get_armor_type( damage_type dt, bodypart_id bp ) const case DT_COLD: case DT_ELECTRIC: { int ret = 0; - for( auto &i : worn ) { - if( i.covers( bp->token ) ) { + for( const item &i : worn ) { + if( i.covers( bp ) ) { ret += i.damage_resist( dt ); } } @@ -7202,8 +7357,8 @@ int Character::get_armor_type( damage_type dt, bodypart_id bp ) const int Character::get_armor_bash_base( bodypart_id bp ) const { int ret = 0; - for( auto &i : worn ) { - if( i.covers( bp->token ) ) { + for( const item &i : worn ) { + if( i.covers( bp ) ) { ret += i.bash_resist(); } } @@ -7221,8 +7376,8 @@ int Character::get_armor_bash_base( bodypart_id bp ) const int Character::get_armor_cut_base( bodypart_id bp ) const { int ret = 0; - for( auto &i : worn ) { - if( i.covers( bp->token ) ) { + for( const item &i : worn ) { + if( i.covers( bp ) ) { ret += i.cut_resist(); } } @@ -7240,8 +7395,8 @@ int Character::get_armor_cut_base( bodypart_id bp ) const int Character::get_armor_bullet_base( bodypart_id bp ) const { int ret = 0; - for( auto &i : worn ) { - if( i.covers( bp->token ) ) { + for( const item &i : worn ) { + if( i.covers( bp ) ) { ret += i.bullet_resist(); } } @@ -7260,9 +7415,9 @@ int Character::get_armor_bullet_base( bodypart_id bp ) const int Character::get_env_resist( bodypart_id bp ) const { int ret = 0; - for( auto &i : worn ) { + for( const item &i : worn ) { // Head protection works on eyes too (e.g. baseball cap) - if( i.covers( bp->token ) || ( bp == bodypart_id( "eyes" ) && i.covers( bp_head ) ) ) { + if( i.covers( bp ) || ( bp == bodypart_id( "eyes" ) && i.covers( bodypart_id( "head" ) ) ) ) { ret += i.get_env_resist(); } } @@ -7367,9 +7522,7 @@ void Character::burn_move_stamina( int moves ) } } burn_ratio += overburden_percentage; - if( move_mode == CMM_RUN ) { - burn_ratio = burn_ratio * 7; - } + burn_ratio *= move_mode->stamina_mult(); mod_stamina( -( ( moves * burn_ratio ) / 100.0 ) * stamina_move_cost_modifier() ); add_msg( m_debug, "Stamina burn: %d", -( ( moves * burn_ratio ) / 100 ) ); // Chance to suffer pain if overburden and stamina runs out or has trait BADBACK @@ -7389,14 +7542,7 @@ float Character::stamina_move_cost_modifier() const // Both walk and run speed drop to half their maximums as stamina approaches 0. // Convert stamina to a float first to allow for decimal place carrying float stamina_modifier = ( static_cast( get_stamina() ) / get_stamina_max() + 1 ) / 2; - if( move_mode == CMM_RUN && get_stamina() >= 0 ) { - // Rationale: Average running speed is 2x walking speed. (NOT sprinting) - stamina_modifier *= 2.0; - } - if( move_mode == CMM_CROUCH ) { - stamina_modifier *= 0.5; - } - return stamina_modifier; + return stamina_modifier * move_mode->move_speed_mult(); } void Character::update_stamina( int turns ) @@ -7409,8 +7555,8 @@ void Character::update_stamina( int turns ) // Recover some stamina every turn. // Mutated stamina works even when winded // max stamina modifers from mutation also affect stamina multi - float stamina_multiplier = ( !has_effect( effect_winded ) ? 1.0f : 0.1f ) + - mutation_value( stamina_regen_modifier ) + ( mutation_value( "max_stamina_modifier" ) - 1.0f ); + float stamina_multiplier = std::max( 0.1f, ( !has_effect( effect_winded ) ? 1.0f : 0.1f ) + + mutation_value( stamina_regen_modifier ) + ( mutation_value( "max_stamina_modifier" ) - 1.0f ) ); // But mouth encumbrance interferes, even with mutated stamina. stamina_recovery += stamina_multiplier * std::max( 1.0f, base_regen_rate - ( encumb( bp_mouth ) / 5.0f ) ); @@ -7489,6 +7635,10 @@ bool Character::invoke_item( item *used, const std::string &method, const tripoi } else if( used->is_bionic() || used->is_deployable() || method == "place_trap" ) { i_rem( used ); return true; + } else if( used->is_comestible() ) { + const bool ret = consume_effects( *used ); + used->charges -= charges_used; + return ret; } return false; @@ -7528,7 +7678,6 @@ bool Character::dispose_item( item_location &&obj, const std::string &prompt ) } } ); - opts.emplace_back( dispose_option{ _( "Drop item" ), true, '2', 0, [this, &obj] { put_into_vehicle_or_drop( *this, item_drop_reason::deliberate, { *obj } ); @@ -7595,7 +7744,7 @@ bool Character::has_enough_charges( const item &it, bool show_msg ) const return true; } if( it.has_flag( flag_USE_UPS ) ) { - if( has_charges( "UPS", it.ammo_required() ) || it.ammo_sufficient() ) { + if( has_charges( itype_UPS, it.ammo_required() ) || it.ammo_sufficient() ) { return true; } if( show_msg ) { @@ -7658,7 +7807,7 @@ bool Character::consume_charges( item &used, int qty ) if( used.charges >= qty ) { used.ammo_consume( qty, pos() ); } else { - use_charges( "UPS", qty ); + use_charges( itype_UPS, qty ); } } else { used.ammo_consume( std::min( qty, used.ammo_remaining() ), pos() ); @@ -7674,7 +7823,7 @@ int Character::item_handling_cost( const item &it, bool penalties, int base_cost mv += std::min( 200, it.volume() / 20_ml ); } - if( weapon.typeId() == "e_handcuffs" ) { + if( weapon.typeId() == itype_e_handcuffs ) { mv *= 4; } else if( penalties && has_effect( effect_grabbed ) ) { mv *= 2; @@ -7687,7 +7836,7 @@ int Character::item_handling_cost( const item &it, bool penalties, int base_cost mv += std::min( encumb( bp_hand_l ), encumb( bp_hand_r ) ); } - return std::min( std::max( mv, 0 ), MAX_HANDLING_COST ); + return std::max( mv, 0 ); } int Character::item_store_cost( const item &it, const item & /* container */, bool penalties, @@ -7710,26 +7859,26 @@ int Character::item_wear_cost( const item &it ) const double mv = item_handling_cost( it ); switch( it.get_layer() ) { - case PERSONAL_LAYER: + case layer_level::PERSONAL: break; - case UNDERWEAR_LAYER: + case layer_level::UNDERWEAR: mv *= 1.5; break; - case REGULAR_LAYER: + case layer_level::REGULAR: break; - case WAIST_LAYER: - case OUTER_LAYER: + case layer_level::WAIST: + case layer_level::OUTER: mv /= 1.5; break; - case BELTED_LAYER: + case layer_level::BELTED: mv /= 2.0; break; - case AURA_LAYER: + case layer_level::AURA: break; default: @@ -7982,9 +8131,7 @@ std::string get_stat_name( Character::stat Stat ) case Character::stat::PERCEPTION: return pgettext( "perception stat", "PER" ); // *INDENT-ON* default: - return pgettext( "fake stat there's an error", "ERR" ); break; - } return pgettext( "fake stat there's an error", "ERR" ); } @@ -8036,14 +8183,14 @@ void Character::set_highest_cat_level() void Character::drench_mut_calc() { - for( const body_part bp : all_body_parts ) { + for( const bodypart_id &bp : get_all_body_parts() ) { int ignored = 0; int neutral = 0; int good = 0; for( const trait_id &iter : get_mutations() ) { const mutation_branch &mdata = iter.obj(); - const auto wp_iter = mdata.protection.find( bp ); + const auto wp_iter = mdata.protection.find( bp.id() ); if( wp_iter != mdata.protection.end() ) { ignored += wp_iter->second.x; neutral += wp_iter->second.y; @@ -8051,9 +8198,9 @@ void Character::drench_mut_calc() } } - mut_drench[bp][WT_GOOD] = good; - mut_drench[bp][WT_NEUTRAL] = neutral; - mut_drench[bp][WT_IGNORED] = ignored; + mut_drench[bp->token][WT_GOOD] = good; + mut_drench[bp->token][WT_NEUTRAL] = neutral; + mut_drench[bp->token][WT_IGNORED] = ignored; } } @@ -8281,7 +8428,7 @@ void Character::absorb_hit( const bodypart_id &bp, damage_instance &dam ) for( auto iter = worn.rbegin(); iter != worn.rend(); ) { item &armor = *iter; - if( !armor.covers( bp->token ) ) { + if( !armor.covers( bp ) ) { ++iter; continue; } @@ -8533,7 +8680,7 @@ dealt_damage_instance Character::deal_damage( Creature *source, bodypart_id bp, SCT.add( point( posx(), posy() ), direction_from( point_zero, point( posx() - source->posx(), posy() - source->posy() ) ), get_hp_bar( dam, get_hp_max( player::bp_to_hp( bp->token ) ) ).first, m_bad, - body_part_name( bp->token ), m_neutral ); + body_part_name( bp ), m_neutral ); } } @@ -8600,8 +8747,6 @@ dealt_damage_instance Character::deal_damage( Creature *source, bodypart_id bp, debugmsg( "Wacky body part hit!" ); } - - // TODO: Scale with damage in a way that makes sense for power armors, plate armor and naked skin. recoil += recoil_mul * weapon.volume() / 250_ml; recoil = std::min( MAX_RECOIL, recoil ); @@ -8634,7 +8779,7 @@ dealt_damage_instance Character::deal_damage( Creature *source, bodypart_id bp, int sum_cover = 0; for( const item &i : worn ) { - if( i.covers( bp->token ) && i.is_filthy() ) { + if( i.covers( bp ) && i.is_filthy() ) { sum_cover += i.get_coverage(); } } @@ -8665,22 +8810,21 @@ dealt_damage_instance Character::deal_damage( Creature *source, bodypart_id bp, int Character::reduce_healing_effect( const efftype_id &eff_id, int remove_med, const bodypart_id &hurt ) { - const body_part hurt_token = hurt->token; - effect &e = get_effect( eff_id, hurt_token ); + effect &e = get_effect( eff_id, hurt->token ); int intensity = e.get_intensity(); if( remove_med < intensity ) { if( eff_id == effect_bandaged ) { - add_msg_if_player( m_bad, _( "Bandages on your %s were damaged!" ), body_part_name( hurt_token ) ); + add_msg_if_player( m_bad, _( "Bandages on your %s were damaged!" ), body_part_name( hurt ) ); } else if( eff_id == effect_disinfected ) { add_msg_if_player( m_bad, _( "You got some filth on your disinfected %s!" ), - body_part_name( hurt_token ) ); + body_part_name( hurt ) ); } } else { if( eff_id == effect_bandaged ) { add_msg_if_player( m_bad, _( "Bandages on your %s were destroyed!" ), - body_part_name( hurt_token ) ); + body_part_name( hurt ) ); } else if( eff_id == effect_disinfected ) { - add_msg_if_player( m_bad, _( "Your %s is no longer disinfected!" ), body_part_name( hurt_token ) ); + add_msg_if_player( m_bad, _( "Your %s is no longer disinfected!" ), body_part_name( hurt ) ); } } e.mod_duration( -6_hours * remove_med ); @@ -8960,8 +9104,8 @@ void Character::rooted() bool Character::wearing_something_on( const bodypart_id &bp ) const { - for( auto &i : worn ) { - if( i.covers( bp->token ) ) { + for( const item &i : worn ) { + if( i.covers( bp ) ) { return true; } } @@ -8975,7 +9119,7 @@ bool Character::is_wearing_shoes( const side &which_side ) const if( which_side == side::LEFT || which_side == side::BOTH ) { left = false; for( const item &worn_item : worn ) { - if( worn_item.covers( bp_foot_l ) && !worn_item.has_flag( flag_BELTED ) && + if( worn_item.covers( bodypart_id( "foot_l" ) ) && !worn_item.has_flag( flag_BELTED ) && !worn_item.has_flag( flag_PERSONAL ) && !worn_item.has_flag( flag_AURA ) && !worn_item.has_flag( flag_SEMITANGIBLE ) && !worn_item.has_flag( flag_SKINTIGHT ) ) { left = true; @@ -8986,7 +9130,7 @@ bool Character::is_wearing_shoes( const side &which_side ) const if( which_side == side::RIGHT || which_side == side::BOTH ) { right = false; for( const item &worn_item : worn ) { - if( worn_item.covers( bp_foot_r ) && !worn_item.has_flag( flag_BELTED ) && + if( worn_item.covers( bodypart_id( "foot_r" ) ) && !worn_item.has_flag( flag_BELTED ) && !worn_item.has_flag( flag_PERSONAL ) && !worn_item.has_flag( flag_AURA ) && !worn_item.has_flag( flag_SEMITANGIBLE ) && !worn_item.has_flag( flag_SKINTIGHT ) ) { right = true; @@ -9000,7 +9144,8 @@ bool Character::is_wearing_shoes( const side &which_side ) const bool Character::is_wearing_helmet() const { for( const item &i : worn ) { - if( i.covers( bp_head ) && !i.has_flag( flag_HELMET_COMPAT ) && !i.has_flag( flag_SKINTIGHT ) && + if( i.covers( bodypart_id( "head" ) ) && !i.has_flag( flag_HELMET_COMPAT ) && + !i.has_flag( flag_SKINTIGHT ) && !i.has_flag( flag_PERSONAL ) && !i.has_flag( flag_AURA ) && !i.has_flag( flag_SEMITANGIBLE ) && !i.has_flag( flag_OVERSIZE ) ) { return true; @@ -9012,9 +9157,9 @@ bool Character::is_wearing_helmet() const int Character::head_cloth_encumbrance() const { int ret = 0; - for( auto &i : worn ) { + for( const item &i : worn ) { const item *worn_item = &i; - if( i.covers( bp_head ) && !i.has_flag( flag_SEMITANGIBLE ) && + if( i.covers( bodypart_id( "head" ) ) && !i.has_flag( flag_SEMITANGIBLE ) && ( worn_item->has_flag( flag_HELMET_COMPAT ) || worn_item->has_flag( flag_SKINTIGHT ) ) ) { ret += worn_item->get_encumber( *this ); } @@ -9084,7 +9229,7 @@ bool Character::covered_with_flag( const std::string &flag, const body_part_set continue; } - to_cover &= ~elem.get_covered_body_parts(); + to_cover.substract_set( elem.get_covered_body_parts() ); if( to_cover.none() ) { return true; // Allows early exit. @@ -9373,20 +9518,10 @@ bool Character::has_activity( const std::vector &types ) const void Character::cancel_activity() { + activity.canceled( *this ); if( has_activity( ACT_MOVE_ITEMS ) && is_hauling() ) { stop_hauling(); } - if( has_activity( ACT_TRY_SLEEP ) ) { - remove_value( "sleep_query" ); - } - if( has_activity( ACT_LOCKPICK ) ) { - std::vector bio_picklocks = g->u.items_with( []( const item & itm ) { - return itm.typeId() == "pseudo_bio_picklock"; - } ); - if( !bio_picklocks.empty() ) { - g->u.i_rem( bio_picklocks[0] ); - } - } // Clear any backlog items that aren't auto-resume. for( auto backlog_item = backlog.begin(); backlog_item != backlog.end(); ) { if( backlog_item->auto_resume ) { @@ -9454,7 +9589,7 @@ void Character::fall_asleep() void Character::fall_asleep( const time_duration &duration ) { if( activity ) { - if( activity.id() == "ACT_TRY_SLEEP" ) { + if( activity.id() == ACT_TRY_SLEEP ) { activity.set_to_null(); } else { cancel_activity(); @@ -9508,8 +9643,8 @@ std::string Character::is_snuggling() const if( !candidate->is_armor() ) { continue; } else if( candidate->volume() > 250_ml && candidate->get_warmth() > 0 && - ( candidate->covers( bp_torso ) || candidate->covers( bp_leg_l ) || - candidate->covers( bp_leg_r ) ) ) { + ( candidate->covers( bodypart_id( "torso" ) ) || candidate->covers( bodypart_id( "leg_l" ) ) || + candidate->covers( bodypart_id( "leg_r" ) ) ) ) { floor_armor = &*candidate; ticker++; } @@ -9532,7 +9667,7 @@ int Character::warmth( const bodypart_id &bp ) const int warmth = 0; for( const item &i : worn ) { - if( i.covers( bp->token ) ) { + if( i.covers( bp ) ) { warmth = i.get_warmth(); // Wool items do not lose their warmth due to being wet. // Warmth is reduced by 0 - 66% based on wetness. @@ -9639,15 +9774,15 @@ int Character::floor_item_warmth( const tripoint &pos ) int item_warmth = 0; // Search the floor for items const auto floor_item = g->m.i_at( pos ); - for( const auto &elem : floor_item ) { + for( const item &elem : floor_item ) { if( !elem.is_armor() ) { continue; } // Items that are big enough and covers the torso are used to keep warm. // Smaller items don't do as good a job if( elem.volume() > 250_ml && - ( elem.covers( bp_torso ) || elem.covers( bp_leg_l ) || - elem.covers( bp_leg_r ) ) ) { + ( elem.covers( bodypart_id( "torso" ) ) || elem.covers( bodypart_id( "leg_l" ) ) || + elem.covers( bodypart_id( "leg_r" ) ) ) ) { item_warmth += 60 * elem.get_warmth() * elem.volume() / 2500_ml; } } @@ -9690,7 +9825,7 @@ int Character::bodytemp_modifier_traits_floor() const int Character::temp_corrected_by_climate_control( int temperature ) const { - const int variation = int( BODYTEMP_NORM * 0.5 ); + const int variation = static_cast( BODYTEMP_NORM * 0.5 ); if( temperature < BODYTEMP_SCORCHING + variation && temperature > BODYTEMP_FREEZING - variation ) { if( temperature > BODYTEMP_SCORCHING ) { @@ -9710,6 +9845,11 @@ int Character::temp_corrected_by_climate_control( int temperature ) const return temperature; } +bool Character::in_sleep_state() const +{ + return Creature::in_sleep_state() || activity.id() == ACT_TRY_SLEEP; +} + bool Character::has_item_with_flag( const std::string &flag, bool need_charges ) const { return has_item_with( [&flag, &need_charges]( const item & it ) { @@ -9730,10 +9870,10 @@ std::vector Character::all_items_with_flag( const std::string &fla bool Character::has_charges( const itype_id &it, int quantity, const std::function &filter ) const { - if( it == "fire" || it == "apparatus" ) { + if( it == itype_fire || it == itype_apparatus ) { return has_fire( quantity ); } - if( it == "UPS" && is_mounted() && + if( it == itype_UPS && is_mounted() && mounted_creature.get()->has_flag( MF_RIDEABLE_MECH ) ) { auto mons = mounted_creature.get(); return quantity <= mons->battery_item->ammo_remaining(); @@ -9741,7 +9881,7 @@ bool Character::has_charges( const itype_id &it, int quantity, return charges_of( it, quantity, filter ) == quantity; } -std::list Character::use_amount( itype_id it, int quantity, +std::list Character::use_amount( const itype_id &it, int quantity, const std::function &filter ) { std::list ret; @@ -9781,15 +9921,15 @@ std::list Character::use_charges( const itype_id &what, int qty, if( qty <= 0 ) { return res; - } else if( what == "toolset" ) { + } else if( what == itype_toolset ) { mod_power_level( units::from_kilojoule( -qty ) ); return res; - } else if( what == "fire" ) { + } else if( what == itype_fire ) { use_fire( qty ); return res; - } else if( what == "UPS" ) { + } else if( what == itype_UPS ) { if( is_mounted() && mounted_creature.get()->has_flag( MF_RIDEABLE_MECH ) && mounted_creature.get()->battery_item ) { auto mons = mounted_creature.get(); @@ -9804,16 +9944,16 @@ std::list Character::use_charges( const itype_id &what, int qty, qty -= std::min( qty, bio ); } - int adv = charges_of( "adv_UPS_off", static_cast( std::ceil( qty * 0.6 ) ) ); + int adv = charges_of( itype_adv_UPS_off, static_cast( std::ceil( qty * 0.6 ) ) ); if( adv > 0 ) { - std::list found = use_charges( "adv_UPS_off", adv ); + std::list found = use_charges( itype_adv_UPS_off, adv ); res.splice( res.end(), found ); qty -= std::min( qty, static_cast( adv / 0.6 ) ); } - int ups = charges_of( "UPS_off", qty ); + int ups = charges_of( itype_UPS_off, qty ); if( ups > 0 ) { - std::list found = use_charges( "UPS_off", ups ); + std::list found = use_charges( itype_UPS_off, ups ); res.splice( res.end(), found ); qty -= std::min( qty, ups ); } @@ -9838,7 +9978,7 @@ std::list Character::use_charges( const itype_id &what, int qty, } if( has_tool_with_UPS ) { - use_charges( "UPS", qty ); + use_charges( itype_UPS, qty ); } return res; @@ -10198,7 +10338,7 @@ float Character::speed_rating() const float ret = get_speed() / 100.0f; ret *= 100.0f / run_cost( 100, false ); // Adjustment for player being able to run, but not doing so at the moment - if( move_mode != CMM_RUN ) { + if( !is_running() ) { ret *= 1.0f + ( static_cast( get_stamina() ) / static_cast( get_stamina_max() ) ); } return ret; @@ -10238,17 +10378,17 @@ int Character::run_cost( int base_cost, bool diag ) const } if( has_trait( trait_M_IMMUNE ) && on_fungus ) { if( movecost > 75 ) { - movecost = - 75; // Mycal characters are faster on their home territory, even through things like shrubs + // Mycal characters are faster on their home territory, even through things like shrubs + movecost = 75; } } - if( is_limb_hindered( hp_leg_l ) ) { - movecost += 25; - } - if( is_limb_hindered( hp_leg_r ) ) { - movecost += 25; - } + // Linearly increase move cost relative to individual leg hp. + movecost += 50 * ( 1 - std::sqrt( static_cast( hp_cur[hp_leg_l] ) / + static_cast( hp_max[hp_leg_l] ) ) ); + movecost += 50 * ( 1 - std::sqrt( static_cast( hp_cur[hp_leg_r] ) / + static_cast( hp_max[hp_leg_r] ) ) ); + movecost *= mutation_value( "movecost_modifier" ); if( flatground ) { movecost *= mutation_value( "movecost_flatground_modifier" ); @@ -10257,7 +10397,7 @@ int Character::run_cost( int base_cost, bool diag ) const movecost *= .9f; } if( has_active_bionic( bio_jointservo ) ) { - if( move_mode == CMM_RUN ) { + if( is_running() ) { movecost *= 0.85f; } else { movecost *= 0.95f; @@ -10329,7 +10469,6 @@ int Character::run_cost( int base_cost, bool diag ) const return static_cast( movecost ); } - void Character::place_corpse() { //If the character/NPC is on a distant mission, don't drop their their gear when they die since they still have a local pos @@ -10343,7 +10482,7 @@ void Character::place_corpse() g->m.add_item_or_charges( pos(), *itm ); } for( const bionic &bio : *my_bionics ) { - if( item::type_is_defined( bio.id.str() ) ) { + if( item::type_is_defined( bio.info().itype() ) ) { item cbm( bio.id.str(), calendar::turn ); cbm.set_flag( "FILTHY" ); cbm.set_flag( "NO_STERILE" ); @@ -10392,7 +10531,7 @@ void Character::place_corpse( const tripoint &om_target ) bay.add_item_or_charges( point( finX, finY ), *itm ); } for( const bionic &bio : *my_bionics ) { - if( item::type_is_defined( bio.id.str() ) ) { + if( item::type_is_defined( bio.info().itype() ) ) { body.put_in( item( bio.id.str(), calendar::turn ), item_pocket::pocket_type::CORPSE ); } } @@ -10437,15 +10576,19 @@ std::vector Character::get_visible_creatures( const int range ) cons } ); } -std::vector Character::get_targetable_creatures( const int range ) const +std::vector Character::get_targetable_creatures( const int range, bool melee ) const { - return g->get_creatures_if( [this, range]( const Creature & critter ) -> bool { - bool can_see = sees( critter ) || sees_with_infrared( critter ); - if( can_see ) //handles the case where we can see something with glass in the way or a mutation lets us see through walls + return g->get_creatures_if( [this, range, melee]( const Creature & critter ) -> bool { + //the call to map.sees is to make sure that even if we can see it through walls + //via a mutation or cbm we only attack targets with a line of sight + bool can_see = ( ( sees( critter ) || sees_with_infrared( critter ) ) && g->m.sees( pos(), critter.pos(), 100 ) ); + if( can_see && melee ) //handles the case where we can see something with glass in the way for melee attacks { std::vector path = g->m.find_clear_path( pos(), critter.pos() ); for( const tripoint &point : path ) { - if( g->m.impassable( point ) ) { + if( g->m.impassable( point ) && + !( weapon.has_flag( "SPEAR" ) && // Fences etc. Spears can stab through those + g->m.has_flag( "THIN_OBSTACLE", point ) ) ) { //this mirrors melee.cpp function reach_attack can_see = false; break; } @@ -10557,12 +10700,6 @@ std::string Character::short_description() const return join( short_description_parts(), "; " ); } -int Character::print_info( const catacurses::window &w, int vStart, int, int column ) const -{ - mvwprintw( w, point( column, vStart++ ), _( "You (%s)" ), name ); - return vStart; -} - void Character::shift_destination( const point &shift ) { if( next_expected_position ) { @@ -10665,11 +10802,7 @@ bool Character::sees( const tripoint &t, bool, int ) const if( wanted_range < MAX_CLAIRVOYANCE && wanted_range < clairvoyance() ) { return true; } - // Only check if we need to override if we already came to the opposite conclusion. - if( can_see && wanted_range < 15 && wanted_range > sight_range( 1 ) && - has_active_bionic( str_bio_night ) ) { - can_see = false; - } + if( can_see && wanted_range > unimpaired_range() ) { can_see = false; } @@ -10730,7 +10863,7 @@ void Character::clear_destination() bool Character::has_distant_destination() const { return has_destination() && !get_destination_activity().is_null() && - get_destination_activity().id() == "ACT_TRAVELLING" && !omt_path.empty(); + get_destination_activity().id() == ACT_TRAVELLING && !omt_path.empty(); } bool Character::is_auto_moving() const diff --git a/src/character.h b/src/character.h index c15962949a712..55069d444e0d6 100644 --- a/src/character.h +++ b/src/character.h @@ -97,32 +97,78 @@ enum vision_modes { NUM_VISION_MODES }; -enum character_movemode : int { - CMM_WALK = 0, - CMM_RUN, - CMM_CROUCH, - CMM_COUNT -}; - -template<> -struct enum_traits { - static constexpr auto last = character_movemode::CMM_COUNT; -}; - -enum fatigue_levels { +enum class fatigue_levels : int { TIRED = 191, DEAD_TIRED = 383, EXHAUSTED = 575, MASSIVE_FATIGUE = 1000 }; const std::unordered_map fatigue_level_strs = { { - { "TIRED", TIRED }, - { "DEAD_TIRED", DEAD_TIRED }, - { "EXHAUSTED", EXHAUSTED }, - { "MASSIVE_FATIGUE", MASSIVE_FATIGUE } + { "TIRED", fatigue_levels::TIRED }, + { "DEAD_TIRED", fatigue_levels::DEAD_TIRED }, + { "EXHAUSTED", fatigue_levels::EXHAUSTED }, + { "MASSIVE_FATIGUE", fatigue_levels::MASSIVE_FATIGUE } } }; +constexpr inline bool operator>=( const fatigue_levels &lhs, const fatigue_levels &rhs ) +{ + return static_cast( lhs ) >= static_cast( rhs ); +} + +constexpr inline bool operator<( const fatigue_levels &lhs, const fatigue_levels &rhs ) +{ + return static_cast( lhs ) < static_cast( rhs ); +} + +template +constexpr inline bool operator>=( const T &lhs, const fatigue_levels &rhs ) +{ + return lhs >= static_cast( rhs ); +} + +template +constexpr inline bool operator>( const T &lhs, const fatigue_levels &rhs ) +{ + return lhs > static_cast( rhs ); +} + +template +constexpr inline bool operator<=( const T &lhs, const fatigue_levels &rhs ) +{ + return lhs <= static_cast( rhs ); +} + +template +constexpr inline bool operator<( const T &lhs, const fatigue_levels &rhs ) +{ + return lhs < static_cast( rhs ); +} + +template +constexpr inline int operator/( const fatigue_levels &lhs, const T &rhs ) +{ + return static_cast( lhs ) / rhs; +} + +template +constexpr inline int operator+( const fatigue_levels &lhs, const T &rhs ) +{ + return static_cast( lhs ) + rhs; +} + +template +constexpr inline int operator-( const fatigue_levels &lhs, const T &rhs ) +{ + return static_cast( lhs ) - rhs; +} + +template +constexpr inline int operator-( const T &lhs, const fatigue_levels &rhs ) +{ + return lhs - static_cast( rhs ); +} + // Sleep deprivation is defined in minutes, and although most calculations scale linearly, // maluses are bestowed only upon reaching the tiers defined below. enum sleep_deprivation_levels { @@ -133,6 +179,19 @@ enum sleep_deprivation_levels { SLEEP_DEPRIVATION_MASSIVE = 14 * 24 * 60 }; +enum class blood_type { + blood_O, + blood_A, + blood_B, + blood_AB, + num_bt +}; + +template<> +struct enum_traits { + static constexpr auto last = blood_type::num_bt; +}; + // This tries to represent both rating and // character's decision to respect said rating enum edible_rating { @@ -160,7 +219,7 @@ enum edible_rating { NO_TOOL }; -enum class rechargeable_cbm { +enum class rechargeable_cbm : int { none = 0, reactor, furnace, @@ -188,7 +247,7 @@ struct encumbrance_data { int armor_encumbrance = 0; int layer_penalty = 0; - std::array( layer_level::MAX_CLOTHING_LAYER )> + std::array( layer_level::NUM_LAYER_LEVELS )> layer_penalty_details; void layer( const layer_level level, const int encumbrance ) { @@ -278,9 +337,8 @@ class Character : public Creature, public visitable bool in_species( const species_id &spec ) const override; // Turned to false for simulating NPCs on distant missions so they don't drop all their gear in sight bool death_drops; - const std::string &symbol() const override; - enum class comfort_level { + enum class comfort_level : int { impossible = -999, uncomfortable = -7, neutral = 0, @@ -391,15 +449,18 @@ class Character : public Creature, public visitable virtual void set_hunger( int nhunger ); virtual void set_thirst( int nthirst ); virtual void set_fatigue( int nfatigue ); + virtual void set_fatigue( fatigue_levels nfatigue ); virtual void set_sleep_deprivation( int nsleep_deprivation ); void mod_stat( const std::string &stat, float modifier ) override; + int get_standard_stamina_cost( item *thrown_item = nullptr ); + /**Get bonus to max_hp from excess stored fat*/ int get_fat_to_hp() const; /** Get size class of character **/ - m_size get_size() const override; + creature_size get_size() const override; /** Returns either "you" or the player's name. capitalize_first assumes that the character's name is already upper case and uses it only for @@ -568,10 +629,16 @@ class Character : public Creature, public visitable * Returns false if movement is stopped. */ bool move_effects( bool attacking ) override; /** Check against the character's current movement mode */ - bool movement_mode_is( character_movemode mode ) const; - character_movemode get_movement_mode() const; + bool movement_mode_is( const move_mode_id &mode ) const; + move_mode_id current_movement_mode() const; - virtual void set_movement_mode( character_movemode mode ) = 0; + bool is_running() const; + bool is_walking() const; + bool is_crouching() const; + + bool can_switch_to( const move_mode_id &mode ) const; + + virtual void set_movement_mode( const move_mode_id &mode ) = 0; /** Performs any Character-specific modifications to the arguments before passing to Creature::add_effect(). */ void add_effect( const efftype_id &eff_id, const time_duration &dur, body_part bp = num_bp, @@ -579,7 +646,7 @@ class Character : public Creature, public visitable int intensity = 0, bool force = false, bool deferred = false ) override; /**Determine if character is susceptible to dis_type and if so apply the symptoms*/ - void expose_to_disease( diseasetype_id dis_type ); + void expose_to_disease( const diseasetype_id &dis_type ); /** * Handles end-of-turn processing. */ @@ -687,6 +754,8 @@ class Character : public Creature, public visitable void roll_cut_damage( bool crit, damage_instance &di, bool average, const item &weap ) const; /** Adds player's total stab damage to the damage instance */ void roll_stab_damage( bool crit, damage_instance &di, bool average, const item &weap ) const; + /** Adds player's total non-bash, non-cut, non-stab damage to the damage instance */ + void roll_other_damage( bool crit, damage_instance &di, bool average, const item &weap ) const; private: /** Check if an area-of-effect technique has valid targets */ @@ -785,12 +854,10 @@ class Character : public Creature, public visitable int get_working_leg_count() const; /** Returns true if the limb is disabled(12.5% or less hp)*/ bool is_limb_disabled( hp_part limb ) const; - /** Returns true if the limb is hindered(40% or less hp) */ - bool is_limb_hindered( hp_part limb ) const; /** Returns true if the limb is broken */ bool is_limb_broken( hp_part limb ) const; /** source of truth of whether a Character can run */ - bool can_run(); + bool can_run() const; /** Hurts all body parts for dam, no armor reduction */ void hurtall( int dam, Creature *source, bool disturb = true ); /** Harms all body parts for dam, with armor reduction. If vary > 0 damage to parts are random within vary % (1-100) */ @@ -1000,7 +1067,7 @@ class Character : public Creature, public visitable // --------------- Bionic Stuff --------------- /** Handles bionic activation effects of the entered bionic, returns if anything activated */ - bool activate_bionic( int b, bool eff_only = false ); + bool activate_bionic( int b, bool eff_only = false, bool *close_bionics_ui = nullptr ); std::vector get_bionics() const; /** Returns amount of Storage CBMs in the corpse **/ std::pair amount_of_storage_bionics() const; @@ -1053,8 +1120,8 @@ class Character : public Creature, public visitable bool has_enough_anesth( const itype &cbm ); void consume_anesth_requirment( const itype &cbm, player &patient ); /**Has the required equipement for manual installation*/ - bool has_installation_requirment( bionic_id bid ); - void consume_installation_requirment( bionic_id bid ); + bool has_installation_requirment( const bionic_id &bid ); + void consume_installation_requirment( const bionic_id &bid ); /** Handles process of introducing patient into anesthesia during Autodoc operations. Requires anesthesia kits or NOPAIN mutation */ void introduce_into_anesthesia( const time_duration &duration, player &installer, bool needs_anesthesia ); @@ -1063,17 +1130,11 @@ class Character : public Creature, public visitable /** Adds a bionic to my_bionics[] */ void add_bionic( const bionic_id &b ); /**Calculate skill bonus from tiles in radius*/ - float env_surgery_bonus( int radius ); + float env_surgery_bonus( int radius ) const; /** Calculate skill for (un)installing bionics */ - float bionics_adjusted_skill( const skill_id &most_important_skill, - const skill_id &important_skill, - const skill_id &least_important_skill, - int skill_level = -1 ); + float bionics_adjusted_skill( bool autodoc, int skill_level = -1 ) const; /** Calculate non adjusted skill for (un)installing bionics */ - int bionics_pl_skill( const skill_id &most_important_skill, - const skill_id &important_skill, - const skill_id &least_important_skill, - int skill_level = -1 ); + int bionics_pl_skill( bool autodoc, int skill_level = -1 ) const; /**Is the installation possible*/ bool can_install_bionics( const itype &type, Character &installer, bool autodoc = false, int skill_level = -1 ); @@ -1082,7 +1143,7 @@ class Character : public Creature, public visitable bool install_bionics( const itype &type, player &installer, bool autodoc = false, int skill_level = -1 ); /**Success or failure of installation happens here*/ - void perform_install( bionic_id bid, bionic_id upbid, int difficulty, int success, + void perform_install( const bionic_id &bid, const bionic_id &upbid, int difficulty, int success, int pl_skill, const std::string &installer_name, const std::vector &trait_to_rem, const tripoint &patient_pos ); void bionics_install_failure( const bionic_id &bid, const std::string &installer, int difficulty, @@ -1095,11 +1156,14 @@ class Character : public Creature, public visitable bool uninstall_bionic( const bionic_id &b_id, player &installer, bool autodoc = false, int skill_level = -1 ); /**Succes or failure of removal happens here*/ - void perform_uninstall( bionic_id bid, int difficulty, int success, const units::energy &power_lvl, - int pl_skill ); + void perform_uninstall( const bionic_id &bid, int difficulty, int success, + const units::energy &power_lvl, int pl_skill ); /**When a player fails the surgery*/ void bionics_uninstall_failure( int difficulty, int success, float adjusted_skill ); + /**When a critical failure occurs*/ + void roll_critical_bionics_failure( body_part bp ); + /**Used by monster to perform surgery*/ bool uninstall_bionic( const bionic &target_cbm, monster &installer, player &patient, float adjusted_skill ); @@ -1229,11 +1293,13 @@ class Character : public Creature, public visitable * content (@ref item::contents is not checked). * If the filter function returns true, the item is removed. */ - std::list remove_worn_items_with( std::function filter ); + std::list remove_worn_items_with( const std::function &filter ); // returns a list of all item_location the character has, including items contained in other items. // only for CONTAINER pocket type; does not look for magazines std::vector all_items_loc(); + // Returns list of all the top level item_lodation the character has. Includes worn and held items. + std::vector top_items_loc(); /** Return the item pointer of the item with given invlet, return nullptr if * the player does not have such an item with that invlet. Don't use this on npcs. * Only use the invlet in the user interface, otherwise always use the item position. */ @@ -1342,6 +1408,20 @@ class Character : public Creature, public visitable */ int ammo_count_for( const item &gun ); + /** + * Whether a tool or gun is potentially reloadable (optionally considering a specific ammo) + * @param it Thing to be reloaded + * @param ammo if set also check item currently compatible with this specific ammo or magazine + * @note items currently loaded with a detachable magazine are considered reloadable + * @note items with integral magazines are reloadable if free capacity permits (+/- ammo matches) + */ + bool can_reload( const item &it, const itype_id &ammo = itype_id() ) const; + + /** Same as `Character::can_reload`, but checks for attached gunmods as well. */ + hint_rating rate_action_reload( const item &it ) const; + /** Whether a tool or a gun can be unloaded. */ + hint_rating rate_action_unload( const item &it ) const; + /** Maximum thrown range with a given item, taking all active effects into account. */ int throw_range( const item & ) const; /** Dispersion of a thrown item, against a given target, taking into account whether or not the throw was blind. */ @@ -1572,8 +1652,9 @@ class Character : public Creature, public visitable */ social_modifiers get_mutation_social_mods() const; - /** Color's character's tile's background */ + // Display nc_color symbol_color() const override; + const std::string &symbol() const override; std::string extended_description() const override; @@ -1633,6 +1714,10 @@ class Character : public Creature, public visitable int tank_plut; int reactor_plut; int slow_rad; + blood_type my_blood_type; + bool blood_rh_factor; + // Randomizes characters' blood type and Rh + void randomize_blood(); int focus_pool; int cash; @@ -1678,7 +1763,7 @@ class Character : public Creature, public visitable // has_amount works ONLY for quantity. // has_charges works ONLY for charges. - std::list use_amount( itype_id it, int quantity, + std::list use_amount( const itype_id &it, int quantity, const std::function &filter = return_true ); // Uses up charges bool use_charges_if_avail( const itype_id &it, int quantity ); @@ -1901,7 +1986,7 @@ class Character : public Creature, public visitable * As above, but includes all creatures the player can detect well enough to target * with ranged weapons, e.g. with infrared vision. */ - std::vector get_targetable_creatures( int range ) const; + std::vector get_targetable_creatures( int range, bool melee ) const; /** Returns an enumeration of visible mutations with colors */ std::string visible_mutations( int visibility_cap ) const; player_activity get_destination_activity() const; @@ -1930,10 +2015,7 @@ class Character : public Creature, public visitable /** Value of the body temperature corrected by climate control **/ int temp_corrected_by_climate_control( int temperature ) const; - bool in_sleep_state() const override { - return Creature::in_sleep_state() || activity.id() == "ACT_TRY_SLEEP"; - } - + bool in_sleep_state() const override; /** Set vitamin deficiency/excess disease states dependent upon current vitamin levels */ void update_vitamins( const vitamin_id &vit ); /** @@ -2018,8 +2100,6 @@ class Character : public Creature, public visitable */ item &get_consumable_from( item &it ) const; - hint_rating rate_action_eat( const item &it ) const; - /** Get calorie & vitamin contents for a comestible, taking into * account character traits */ /** Get range of possible nutrient content, for a particular recipe, @@ -2055,10 +2135,6 @@ class Character : public Creature, public visitable bool change_side( item &it, bool interactive = true ); bool change_side( item_location &loc, bool interactive = true ); - /** Used to determine player feedback on item use for the inventory code. - * rates usability lower for non-tools (books, etc.) */ - hint_rating rate_action_change_side( const item &it ) const; - bool get_check_encumbrance() { return check_encumbrance; } @@ -2112,7 +2188,6 @@ class Character : public Creature, public visitable int heartrate_bpm() const; std::vector short_description_parts() const; std::string short_description() const; - int print_info( const catacurses::window &w, int vStart, int vLines, int column ) const override; // Checks whether a player can hear a sound at a given volume and location. bool can_hear( const tripoint &source, int volume ) const; // Returns a multiplier indicating the keenness of a player's hearing. @@ -2193,14 +2268,15 @@ class Character : public Creature, public visitable /**height at character creation*/ int init_height = 175; /** Size class of character. */ - m_size size_class = MS_MEDIUM; + creature_size size_class = creature_size::medium; // the player's activity level for metabolism calculations float activity_level = NO_EXERCISE; trap_map known_traps; - std::array encumbrance_cache; mutable std::map cached_info; + mutable std::array encumbrance_cache; + mutable bool encumbrance_cache_dirty = true; bool bio_soporific_powered_at_last_sleep_check; /** last time we checked for sleep */ time_point last_sleep_check = calendar::turn_zero; @@ -2251,7 +2327,7 @@ class Character : public Creature, public visitable faction_id fac_id; faction *my_fac = nullptr; - character_movemode move_mode; + move_mode_id move_mode; /** Current deficiency/excess quantity for each vitamin */ std::map vitamin_levels; @@ -2337,7 +2413,7 @@ class Character : public Creature, public visitable }; // Little size helper, exposed for use in deserialization code. -m_size calculate_size( const Character &c ); +creature_size calculate_size( const Character &c ); template<> struct enum_traits { diff --git a/src/character_id.h b/src/character_id.h index cf35519de073d..285a00b2c9318 100644 --- a/src/character_id.h +++ b/src/character_id.h @@ -31,28 +31,24 @@ class character_id void serialize( JsonOut & ) const; void deserialize( JsonIn & ); - private: - int value; -}; -inline bool operator==( character_id l, character_id r ) -{ - return l.get_value() == r.get_value(); -} + friend inline bool operator==( character_id l, character_id r ) { + return l.get_value() == r.get_value(); + } -inline bool operator!=( character_id l, character_id r ) -{ - return l.get_value() != r.get_value(); -} + friend inline bool operator!=( character_id l, character_id r ) { + return l.get_value() != r.get_value(); + } -inline bool operator<( character_id l, character_id r ) -{ - return l.get_value() < r.get_value(); -} + friend inline bool operator<( character_id l, character_id r ) { + return l.get_value() < r.get_value(); + } -inline std::ostream &operator<<( std::ostream &o, character_id id ) -{ - return o << id.get_value(); -} + friend inline std::ostream &operator<<( std::ostream &o, character_id id ) { + return o << id.get_value(); + } + private: + int value; +}; #endif // CATA_SRC_CHARACTER_ID_H diff --git a/src/character_martial_arts.cpp b/src/character_martial_arts.cpp index 09af7aa18e3c7..dd097a8eac441 100644 --- a/src/character_martial_arts.cpp +++ b/src/character_martial_arts.cpp @@ -13,8 +13,6 @@ static const matype_id style_kicks( "style_kicks" ); static const matype_id style_none( "style_none" ); -using itype_id = std::string; - character_martial_arts::character_martial_arts() { @@ -91,6 +89,17 @@ void character_martial_arts::reset_style() style_selected = style_none; } +void character_martial_arts::clear_styles() +{ + keep_hands_free = false; + + ma_styles = { { + style_none, style_kicks + } + }; + reset_style(); +} + void character_martial_arts::selected_style_check() { // check if player knows current style naturally, otherwise drop them back to style_none diff --git a/src/character_martial_arts.h b/src/character_martial_arts.h index 7ba9dbd213d27..bffe3c3f32264 100644 --- a/src/character_martial_arts.h +++ b/src/character_martial_arts.h @@ -15,8 +15,6 @@ class JsonOut; class avatar; class item; -using itype_id = std::string; - class character_martial_arts { private: @@ -52,6 +50,7 @@ class character_martial_arts void learn_current_style_CQB( bool is_avatar ); void learn_style( const matype_id &mastyle, bool is_avatar ); void set_style( const matype_id &mastyle, bool force = false ); + void clear_styles(); /** Displays a message if the player can or cannot use the martial art */ void martialart_use_message( const Character &owner ) const; diff --git a/src/character_oracle.cpp b/src/character_oracle.cpp index aece481d2d430..2e930b8ff06a2 100644 --- a/src/character_oracle.cpp +++ b/src/character_oracle.cpp @@ -9,7 +9,6 @@ #include "inventory.h" #include "item.h" #include "itype.h" -#include "player.h" #include "ret_val.h" #include "value_ptr.h" #include "weather.h" @@ -22,95 +21,91 @@ namespace behavior // To avoid a local minima when the character has access to warmth in a shelter but gets cold // when they go outside, this method needs to only alert when travel time to known shelter // approaches time to freeze. -status_t character_oracle_t::needs_warmth_badly() const +status_t character_oracle_t::needs_warmth_badly( const std::string & ) const { - const player *p = dynamic_cast( subject ); // Use player::temp_conv to predict whether the Character is "in trouble". for( const body_part bp : all_body_parts ) { - if( p->temp_conv[ bp ] <= BODYTEMP_VERY_COLD ) { - return running; + if( subject->temp_conv[ bp ] <= BODYTEMP_VERY_COLD ) { + return status_t::running; } } - return success; + return status_t::success; } -status_t character_oracle_t::needs_water_badly() const +status_t character_oracle_t::needs_water_badly( const std::string & ) const { // Check thirst threshold. if( subject->get_thirst() > 520 ) { - return running; + return status_t::running; } - return success; + return status_t::success; } -status_t character_oracle_t::needs_food_badly() const +status_t character_oracle_t::needs_food_badly( const std::string & ) const { // Check hunger threshold. if( subject->get_hunger() >= 300 && subject->get_starvation() > 2500 ) { - return running; + return status_t::running; } - return success; + return status_t::success; } -status_t character_oracle_t::can_wear_warmer_clothes() const +status_t character_oracle_t::can_wear_warmer_clothes( const std::string & ) const { - const player *p = dynamic_cast( subject ); // Check inventory for wearable warmer clothes, greedily. // Don't consider swapping clothes yet, just evaluate adding clothes. - for( const auto &i : subject->inv.const_slice() ) { - const item &candidate = i->front(); - if( candidate.get_warmth() > 0 || p->can_wear( candidate ).success() ) { - return running; - } - } - return failure; + bool found_clothes = subject->has_item_with( [this]( const item & candidate ) { + return candidate.get_warmth() > 0 && subject->can_wear( candidate ).success() && + !subject->is_worn( candidate ); + } ); + return found_clothes ? status_t::running : status_t::failure; } -status_t character_oracle_t::can_make_fire() const +status_t character_oracle_t::can_make_fire( const std::string & ) const { // Check inventory for firemaking tools and fuel bool tool = false; bool fuel = false; - for( const auto &i : subject->inv.const_slice() ) { - const item &candidate = i->front(); + bool found_fire_stuff = subject->has_item_with( [&tool, &fuel]( const item & candidate ) { if( candidate.has_flag( flag_FIRESTARTER ) ) { tool = true; if( fuel ) { - return running; + return true; } } else if( candidate.flammable() ) { fuel = true; if( tool ) { - return running; + return true; } } - } - return success; + return false; + } ); + return found_fire_stuff ? status_t::running : status_t::success; } -status_t character_oracle_t::can_take_shelter() const +status_t character_oracle_t::can_take_shelter( const std::string & ) const { - // See if we know about some shelter - // Don't know how yet. - return failure; + // There be no shelter here. + // The frontline is everywhere. + return status_t::failure; } -status_t character_oracle_t::has_water() const +status_t character_oracle_t::has_water( const std::string & ) const { // Check if we know about water somewhere - bool found_water = subject->inv.has_item_with( []( const item & cand ) { + bool found_water = subject->has_item_with( []( const item & cand ) { return cand.is_food() && cand.get_comestible()->quench > 0; } ); - return found_water ? running : failure; + return found_water ? status_t::running : status_t::failure; } -status_t character_oracle_t::has_food() const +status_t character_oracle_t::has_food( const std::string & ) const { // Check if we know about food somewhere - bool found_food = subject->inv.has_item_with( []( const item & cand ) { + bool found_food = subject->has_item_with( []( const item & cand ) { return cand.is_food() && cand.get_comestible()->has_calories(); } ); - return found_food ? running : failure; + return found_food ? status_t::running : status_t::failure; } } // namespace behavior diff --git a/src/character_oracle.h b/src/character_oracle.h index 01781694f20a7..1353b4fd388b1 100644 --- a/src/character_oracle.h +++ b/src/character_oracle.h @@ -2,6 +2,8 @@ #ifndef CATA_SRC_CHARACTER_ORACLE_H #define CATA_SRC_CHARACTER_ORACLE_H +#include + #include "behavior_oracle.h" class Character; @@ -18,14 +20,14 @@ class character_oracle_t : public oracle_t /** * Predicates used by AI to determine goals. */ - status_t needs_warmth_badly() const; - status_t needs_water_badly() const; - status_t needs_food_badly() const; - status_t can_wear_warmer_clothes() const; - status_t can_make_fire() const; - status_t can_take_shelter() const; - status_t has_water() const; - status_t has_food() const; + status_t needs_warmth_badly( const std::string & ) const; + status_t needs_water_badly( const std::string & ) const; + status_t needs_food_badly( const std::string & ) const; + status_t can_wear_warmer_clothes( const std::string & ) const; + status_t can_make_fire( const std::string & ) const; + status_t can_take_shelter( const std::string & ) const; + status_t has_water( const std::string & ) const; + status_t has_food( const std::string & ) const; private: const Character *subject; }; diff --git a/src/clothing_mod.h b/src/clothing_mod.h index abf55e195c30c..2ee05a58fe5ce 100644 --- a/src/clothing_mod.h +++ b/src/clothing_mod.h @@ -49,7 +49,7 @@ struct clothing_mod { bool was_loaded = false; std::string flag; - std::string item_string; + itype_id item_string; std::string implement_prompt; std::string destroy_prompt; std::vector< mod_value > mod_values; diff --git a/src/clzones.cpp b/src/clzones.cpp index 2811e6ce616e1..1964bd6695fc3 100644 --- a/src/clzones.cpp +++ b/src/clzones.cpp @@ -37,6 +37,8 @@ static const std::string flag_FIREWOOD( "FIREWOOD" ); +static const item_category_id item_category_food( "food" ); + zone_manager::zone_manager() { types.emplace( zone_type_id( "NO_AUTO_PICKUP" ), @@ -269,10 +271,10 @@ plot_options::query_seed_result plot_options::query_seed() if( seed_index > 0 && seed_index < static_cast( seed_entries.size() ) ) { const auto &seed_entry = seed_entries[seed_index]; - const auto &new_seed = std::get<0>( seed_entry ); - std::string new_mark; + const itype_id &new_seed = std::get<0>( seed_entry ); + itype_id new_mark; - item it = item( itype_id( new_seed ) ); + item it = item( new_seed ); if( it.is_seed() ) { new_mark = it.type->seed->fruit_id; } else { @@ -288,9 +290,9 @@ plot_options::query_seed_result plot_options::query_seed() } } else if( seed_index == 0 ) { // No seeds - if( !seed.empty() || !mark.empty() ) { - seed.clear(); - mark.clear(); + if( !seed.is_empty() || !mark.is_empty() ) { + seed = itype_id(); + mark = itype_id(); return changed; } else { return successful; @@ -368,7 +370,7 @@ std::string blueprint_options::get_zone_name_suggestion() const std::string plot_options::get_zone_name_suggestion() const { - if( !seed.empty() ) { + if( !seed.is_empty() ) { auto type = itype_id( seed ); item it = item( type ); if( it.is_seed() ) { @@ -394,8 +396,9 @@ std::vector> blueprint_options::get_descript std::vector> plot_options::get_descriptions() const { auto options = std::vector>(); - options.emplace_back( std::make_pair( _( "Plant seed: " ), - !seed.empty() ? item::nname( itype_id( seed ) ) : _( "No seed" ) ) ); + options.emplace_back( + std::make_pair( _( "Plant seed: " ), + !seed.is_empty() ? item::nname( itype_id( seed ) ) : _( "No seed" ) ) ); return options; } @@ -827,7 +830,7 @@ zone_type_id zone_manager::get_near_zone_type_for_item( const item &it, return *cat.zone(); } - if( cat.get_id() == "food" ) { + if( cat.get_id() == item_category_food ) { // skip food without comestible, like MREs if( const item *it_food = it.get_food() ) { if( it_food->get_comestible()->comesttype == "DRINK" ) { @@ -923,7 +926,7 @@ void zone_manager::create_vehicle_loot_zone( vehicle &vehicle, const point &moun 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, shared_ptr_fast options ) + const tripoint &end, const shared_ptr_fast &options ) { zone_data new_zone = zone_data( name, type, fac, invert, enabled, start, end, options ); //the start is a vehicle tile with cargo space diff --git a/src/clzones.h b/src/clzones.h index 2ca66fd5166dc..481ebdae1ac69 100644 --- a/src/clzones.h +++ b/src/clzones.h @@ -111,8 +111,8 @@ class mark_option class plot_options : public zone_options, public mark_option { private: - std::string mark; - std::string seed; + itype_id mark; + itype_id seed; enum query_seed_result { canceled, @@ -124,9 +124,9 @@ class plot_options : public zone_options, public mark_option public: std::string get_mark() const override { - return mark; + return mark.str(); } - std::string get_seed() const { + itype_id get_seed() const { return seed; } @@ -256,7 +256,7 @@ class zone_data 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, - shared_ptr_fast _options = nullptr ) { + const shared_ptr_fast &_options = nullptr ) { name = _name; type = _type; faction = _faction; @@ -382,7 +382,7 @@ class zone_manager void add( const std::string &name, const zone_type_id &type, const faction_id &faction, bool invert, bool enabled, const tripoint &start, const tripoint &end, - shared_ptr_fast options = nullptr ); + const shared_ptr_fast &options = nullptr ); const zone_data *get_zone_at( const tripoint &where, const zone_type_id &type ) const; void create_vehicle_loot_zone( class vehicle &vehicle, const point &mount_point, zone_data &new_zone ); diff --git a/src/color.cpp b/src/color.cpp index 729fd3fa17e66..a6fd943a5f97d 100644 --- a/src/color.cpp +++ b/src/color.cpp @@ -654,7 +654,7 @@ std::string colorize( const translation &text, const nc_color &color ) std::string get_note_string_from_color( const nc_color &color ) { - for( auto i : color_by_string_map ) { + for( const std::pair &i : color_by_string_map ) { if( i.second.color == color ) { return i.first; } @@ -713,7 +713,7 @@ static void draw_header( const catacurses::window &w ) mvwprintz( w, point( 21, 3 ), c_white, _( "Normal" ) ); mvwprintz( w, point( 52, 3 ), c_white, _( "Invert" ) ); - wrefresh( w ); + wnoutrefresh( w ); } void color_manager::show_gui() @@ -789,7 +789,7 @@ void color_manager::show_gui() mvwputch( w_colors_header, point( iCol, 3 ), BORDER_COLOR, LINE_XOXO ); } } - wrefresh( w_colors_border ); + wnoutrefresh( w_colors_border ); draw_header( w_colors_header ); @@ -809,7 +809,7 @@ void color_manager::show_gui() calcStartPos( iStartPos, iCurrentLine, iContentHeight, iMaxColors ); draw_scrollbar( w_colors_border, iCurrentLine, iContentHeight, iMaxColors, point( 0, 5 ) ); - wrefresh( w_colors_border ); + wnoutrefresh( w_colors_border ); auto iter = name_color_map.begin(); std::advance( iter, iStartPos ); @@ -842,7 +842,7 @@ void color_manager::show_gui() } } - wrefresh( w_colors ); + wnoutrefresh( w_colors ); } ); while( true ) { diff --git a/src/computer_session.cpp b/src/computer_session.cpp index cde58011c12c6..d20b68a3de16c 100644 --- a/src/computer_session.cpp +++ b/src/computer_session.cpp @@ -58,10 +58,22 @@ static const efftype_id effect_amigara( "amigara" ); +static const itype_id itype_black_box( "black_box" ); +static const itype_id itype_blood( "blood" ); +static const itype_id itype_c4( "c4" ); +static const itype_id itype_cobalt_60( "cobalt_60" ); +static const itype_id itype_mininuke( "mininuke" ); +static const itype_id itype_mininuke_act( "mininuke_act" ); +static const itype_id itype_radio_repeater_mod( "radio_repeater_mod" ); +static const itype_id itype_sarcophagus_access_code( "sarcophagus_access_code" ); +static const itype_id itype_sewage( "sewage" ); +static const itype_id itype_usb_drive( "usb_drive" ); +static const itype_id itype_vacutainer( "vacutainer" ); + static const skill_id skill_computer( "computer" ); -static const species_id HUMAN( "HUMAN" ); -static const species_id ZOMBIE( "ZOMBIE" ); +static const species_id species_HUMAN( "HUMAN" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); static const mtype_id mon_manhack( "mon_manhack" ); static const mtype_id mon_secubot( "mon_secubot" ); @@ -220,7 +232,7 @@ bool computer_session::hack_attempt( player &p, int Security ) static item *pick_usb() { auto filter = []( const item & it ) { - return it.typeId() == "usb_drive"; + return it.typeId() == itype_usb_drive; }; item_location loc = game_menus::inv::titled_filter_menu( filter, g->u, _( "Choose drive:" ) ); @@ -359,7 +371,7 @@ void computer_session::action_sample() continue; } bool found_item = false; - item sewage( "sewage", calendar::turn ); + item sewage( itype_sewage, calendar::turn ); for( item &elem : g->m.i_at( n ) ) { int capa = elem.get_remaining_capacity_for_liquid( sewage ); if( capa <= 0 ) { @@ -685,7 +697,7 @@ void computer_session::action_complete_disable_external_power() void computer_session::action_repeater_mod() { - if( g->u.has_amount( "radio_repeater_mod", 1 ) ) { + if( g->u.has_amount( itype_radio_repeater_mod, 1 ) ) { for( auto miss : g->u.get_active_missions() ) { static const mission_type_id commo_3 = mission_type_id( "MISSION_OLD_GUARD_NEC_COMMO_3" ), commo_4 = mission_type_id( "MISSION_OLD_GUARD_NEC_COMMO_4" ); @@ -693,7 +705,7 @@ void computer_session::action_repeater_mod() miss->step_complete( 1 ); print_error( _( "Repeater mod installed…" ) ); print_error( _( "Mission Complete!" ) ); - g->u.use_amount( "radio_repeater_mod", 1 ); + g->u.use_amount( itype_radio_repeater_mod, 1 ); query_any(); comp.options.clear(); activate_failure( COMPFAIL_SHUTDOWN ); @@ -738,15 +750,15 @@ void computer_session::action_blood_anal() print_error( _( "ERROR: Please remove all but one sample from centrifuge." ) ); } else if( items.only_item().contents.empty() ) { print_error( _( "ERROR: Please only use container with blood sample." ) ); - } else if( items.only_item().contents.legacy_front().typeId() != "blood" ) { + } else if( items.only_item().contents.legacy_front().typeId() != itype_blood ) { print_error( _( "ERROR: Please only use blood samples." ) ); } else { // Success! const item &blood = items.only_item().contents.legacy_front(); const mtype *mt = blood.get_mtype(); if( mt == nullptr || mt->id == mtype_id::NULL_ID() ) { print_line( _( "Result: Human blood, no pathogens found." ) ); - } else if( mt->in_species( ZOMBIE ) ) { - if( mt->in_species( HUMAN ) ) { + } else if( mt->in_species( species_ZOMBIE ) ) { + if( mt->in_species( species_HUMAN ) ) { print_line( _( "Result: Human blood. Unknown pathogen found." ) ); } else { print_line( _( "Result: Unknown blood type. Unknown pathogen found." ) ); @@ -782,13 +794,14 @@ void computer_session::action_data_anal() print_error( _( "ERROR: Please place memory bank in scan area." ) ); } else if( items.size() > 1 ) { print_error( _( "ERROR: Please only scan one item at a time." ) ); - } else if( items.only_item().typeId() != "usb_drive" && - items.only_item().typeId() != "black_box" ) { + } else if( items.only_item().typeId() != itype_usb_drive && + items.only_item().typeId() != itype_black_box ) { print_error( _( "ERROR: Memory bank destroyed or not present." ) ); - } else if( items.only_item().typeId() == "usb_drive" && items.only_item().contents.empty() ) { + } else if( items.only_item().typeId() == itype_usb_drive && + items.only_item().contents.empty() ) { print_error( _( "ERROR: Memory bank is empty." ) ); } else { // Success! - if( items.only_item().typeId() == "black_box" ) { + if( items.only_item().typeId() == itype_black_box ) { print_line( _( "Memory Bank: Military Hexron Encryption\nPrinting Transcript\n" ) ); item transcript( "black_box_transcript", calendar::turn ); g->m.add_item_or_charges( g->u.pos(), transcript ); @@ -928,10 +941,10 @@ void computer_session::action_srcf_seal() void computer_session::action_srcf_elevator() { - if( !g->u.has_amount( "sarcophagus_access_code", 1 ) ) { + if( !g->u.has_amount( itype_sarcophagus_access_code, 1 ) ) { print_error( _( "Access code required!" ) ); } else { - g->u.use_amount( "sarcophagus_access_code", 1 ); + g->u.use_amount( itype_sarcophagus_access_code, 1 ); reset_terminal(); print_line( _( "\nPower: Backup Only\nRadiation Level: Very Dangerous\nOperational: Overridden\n\n" ) ); @@ -959,11 +972,13 @@ void computer_session::action_irradiator() g->u.moves -= 300; for( auto it = g->m.i_at( dest ).begin(); it != g->m.i_at( dest ).end(); ++it ) { // actual food processing - if( !it->rotten() && item_controller->has_template( "irradiated_" + it->typeId() ) ) { - it->convert( "irradiated_" + it->typeId() ); + itype_id irradiated_type( "irradiated_" + it->typeId().str() ); + if( !it->rotten() && item_controller->has_template( irradiated_type ) ) { + it->convert( irradiated_type ); } // critical failure - radiation spike sets off electronic detonators - if( it->typeId() == "mininuke" || it->typeId() == "mininuke_act" || it->typeId() == "c4" ) { + if( it->typeId() == itype_mininuke || it->typeId() == itype_mininuke_act || + it->typeId() == itype_c4 ) { explosion_handler::explosion( dest, 40 ); reset_terminal(); print_error( _( "WARNING [409]: Primary sensors offline!" ) ); @@ -1103,7 +1118,7 @@ void computer_session::action_conveyor() print_line( _( "No items detected at: LOADING BAY." ) ); } for( const auto &it : items ) { - if( !it.made_of_from_type( LIQUID ) ) { + if( !it.made_of_from_type( phase_id::LIQUID ) ) { g->m.add_item_or_charges( platform, it ); } } @@ -1134,7 +1149,7 @@ void computer_session::action_extract_rad_source() } } if( p_exists ) { - g->m.spawn_item( platform, "cobalt_60", rng( 8, 15 ) ); + g->m.spawn_item( platform, itype_cobalt_60, rng( 8, 15 ) ); g->m.translate_radius( t_rad_platform, t_concrete, 8.0, g->u.pos(), true ); comp.remove_option( COMPACT_IRRADIATOR ); comp.remove_option( COMPACT_EXTRACT_RAD_SOURCE ); @@ -1338,11 +1353,11 @@ void computer_session::failure_destroy_blood() print_error( _( "ERROR: Please place sample in centrifuge." ) ); } else if( items.size() > 1 ) { print_error( _( "ERROR: Please remove all but one sample from centrifuge." ) ); - } else if( items.only_item().typeId() != "vacutainer" ) { + } else if( items.only_item().typeId() != itype_vacutainer ) { print_error( _( "ERROR: Please use blood-contained samples." ) ); } else if( items.only_item().contents.empty() ) { print_error( _( "ERROR: Blood draw kit, empty." ) ); - } else if( items.only_item().contents.legacy_front().typeId() != "blood" ) { + } else if( items.only_item().contents.legacy_front().typeId() != itype_blood ) { print_error( _( "ERROR: Please only use blood samples." ) ); } else { print_error( _( "ERROR: Blood sample destroyed." ) ); @@ -1363,7 +1378,7 @@ void computer_session::failure_destroy_data() print_error( _( "ERROR: Please place memory bank in scan area." ) ); } else if( items.size() > 1 ) { print_error( _( "ERROR: Please only scan one item at a time." ) ); - } else if( items.only_item().typeId() != "usb_drive" ) { + } else if( items.only_item().typeId() != itype_usb_drive ) { print_error( _( "ERROR: Memory bank destroyed or not present." ) ); } else if( items.only_item().contents.empty() ) { print_error( _( "ERROR: Memory bank is empty." ) ); @@ -1473,9 +1488,6 @@ computer_session::ynq computer_session::query_ynq( const std::string &text, Args return ynq::quit; } } - if( action == "HELP_KEYBINDINGS" ) { - refresh(); - } } while( true ); } @@ -1488,7 +1500,7 @@ void computer_session::refresh() print_colored_text( win, point( left + lines[i].first, top + static_cast( i ) ), dummy, dummy, lines[i].second ); } - wrefresh( win ); + wnoutrefresh( win ); } template diff --git a/src/computer_session.h b/src/computer_session.h index ac12ae5a6e517..f4db88ec18f42 100644 --- a/src/computer_session.h +++ b/src/computer_session.h @@ -62,7 +62,7 @@ class computer_session template void print_text( const std::string &text, Args &&... args ); // Prints a line and waits for Y/N/Q - enum class ynq { + enum class ynq : int { yes, no, quit, diff --git a/src/condition.cpp b/src/condition.cpp index 51460ce658179..82448460bec55 100644 --- a/src/condition.cpp +++ b/src/condition.cpp @@ -245,7 +245,7 @@ template void conditional_t::set_is_wearing( const JsonObject &jo, const std::string &member, bool is_npc ) { - const std::string &item_id = jo.get_string( member ); + const itype_id item_id( jo.get_string( member ) ); condition = [item_id, is_npc]( const T & d ) { player *actor = d.alpha; if( is_npc ) { @@ -258,7 +258,7 @@ void conditional_t::set_is_wearing( const JsonObject &jo, const std::string & template void conditional_t::set_has_item( const JsonObject &jo, const std::string &member, bool is_npc ) { - const std::string &item_id = jo.get_string( member ); + const itype_id item_id( jo.get_string( member ) ); condition = [item_id, is_npc]( const T & d ) { player *actor = d.alpha; if( is_npc ) { @@ -277,7 +277,7 @@ void conditional_t::set_has_items( const JsonObject &jo, const std::string &m return false; }; } else { - const std::string item_id = has_items.get_string( "item" ); + const itype_id item_id( has_items.get_string( "item" ) ); int count = has_items.get_int( "count" ); condition = [item_id, count, is_npc]( const T & d ) { player *actor = d.alpha; diff --git a/src/construction.cpp b/src/construction.cpp index 758ae29a32363..e3d74c508c79e 100644 --- a/src/construction.cpp +++ b/src/construction.cpp @@ -60,6 +60,16 @@ static const activity_id ACT_BUILD( "ACT_BUILD" ); static const activity_id ACT_MULTIPLE_CONSTRUCTION( "ACT_MULTIPLE_CONSTRUCTION" ); +static const construction_category_id construction_category_ALL( "ALL" ); +static const construction_category_id construction_category_FILTER( "FILTER" ); +static const construction_category_id construction_category_REPAIR( "REPAIR" ); + +static const itype_id itype_2x4( "2x4" ); +static const itype_id itype_nail( "nail" ); +static const itype_id itype_sheet( "sheet" ); +static const itype_id itype_stick( "stick" ); +static const itype_id itype_string_36( "string_36" ); + static const trap_str_id tr_firewood_source( "tr_firewood_source" ); static const trap_str_id tr_practice_target( "tr_practice_target" ); static const trap_str_id tr_unfinished_construction( "tr_unfinished_construction" ); @@ -223,7 +233,7 @@ static void draw_grid( const catacurses::window &w, const int list_width ) mvwputch( w, point( 0, 2 ), c_light_gray, LINE_XXXO ); mvwputch( w, point( list_width, 2 ), c_light_gray, LINE_XOXX ); - wrefresh( w ); + wnoutrefresh( w ); } static nc_color construction_color( const std::string &con_name, bool highlight ) @@ -603,13 +613,13 @@ construction_id construction_menu( const bool blueprint ) } draw_scrollbar( w_con, select, w_list_height, constructs.size(), point( 0, 3 ) ); - wrefresh( w_con ); + wnoutrefresh( w_con ); // place the cursor at the selected construction name as expected by screen readers if( cursor_pos ) { wmove( w_list, cursor_pos.value() ); } - wrefresh( w_list ); + wnoutrefresh( w_list ); } ); do { @@ -625,9 +635,9 @@ construction_id construction_menu( const bool blueprint ) last_construction = constructs[select]; } category_id = construct_cat[tabindex].id; - if( category_id == "ALL" ) { + if( category_id == construction_category_ALL ) { constructs = available; - } else if( category_id == "FILTER" ) { + } else if( category_id == construction_category_FILTER ) { constructs.clear(); std::copy_if( available.begin(), available.end(), std::back_inserter( constructs ), @@ -760,6 +770,7 @@ construction_id construction_menu( const bool blueprint ) if( !player_can_see_to_build( g->u, constructs[select] ) ) { add_msg( m_info, _( "It is too dark to construct right now." ) ); } else { + ui.reset(); place_construction( constructs[select] ); uistate.last_construction = constructs[select]; } @@ -874,7 +885,6 @@ bool can_construct( const construction &con ) void place_construction( const std::string &desc ) { - g->refresh_all(); const inventory &total_inv = g->u.crafting_inventory(); std::vector cons = constructions_by_desc( desc ); @@ -887,12 +897,13 @@ void place_construction( const std::string &desc ) } } - for( auto &elem : valid ) { - g->m.drawsq( g->w_terrain, g->u, elem.first, true, false, - g->u.pos() + g->u.view_offset ); - } - wrefresh( g->w_terrain ); - g->draw_panels(); + shared_ptr_fast draw_valid = make_shared_fast( [&]() { + for( auto &elem : valid ) { + g->m.drawsq( g->w_terrain, g->u, elem.first, true, false, + g->u.pos() + g->u.view_offset ); + } + } ); + g->add_draw_callback( draw_valid ); const cata::optional pnt_ = choose_adjacent( _( "Construct where?" ) ); if( !pnt_ ) { @@ -918,7 +929,6 @@ void place_construction( const std::string &desc ) // create the partial construction struct partial_con pc; pc.id = con.id; - pc.counter = 0; // Set the trap that has the examine function // Special handling for constructions that take place on existing traps. // Basically just don't add the unfinished construction trap. @@ -1149,7 +1159,7 @@ void construct::done_grave( const tripoint &p ) g->m.destroy_furn( p, true ); } -static vpart_id vpart_from_item( const std::string &item_id ) +static vpart_id vpart_from_item( const itype_id &item_id ) { for( const auto &e : vpart_info::all() ) { const vpart_info &vp = e.second; @@ -1231,12 +1241,12 @@ void construct::done_deconstruct( const tripoint &p ) } done_deconstruct( top ); } - if( t.id == "t_console_broken" ) { + if( t.id.id() == t_console_broken ) { if( g->u.get_skill_level( skill_electronics ) >= 1 ) { g->u.practice( skill_electronics, 20, 4 ); } } - if( t.id == "t_console" ) { + if( t.id.id() == t_console ) { if( g->u.get_skill_level( skill_electronics ) >= 1 ) { g->u.practice( skill_electronics, 40, 8 ); } @@ -1253,7 +1263,7 @@ static void unroll_digging( const int numer_of_2x4s ) item rope( "rope_30" ); g->m.add_item_or_charges( g->u.pos(), rope ); // presuming 2x4 to conserve lumber. - g->m.spawn_item( g->u.pos(), "2x4", numer_of_2x4s ); + g->m.spawn_item( g->u.pos(), itype_2x4, numer_of_2x4s ); } void construct::done_digormine_stair( const tripoint &p, bool dig ) @@ -1356,10 +1366,10 @@ void construct::done_wood_stairs( const tripoint &p ) void construct::done_window_curtains( const tripoint & ) { // copied from iexamine::curtains - g->m.spawn_item( g->u.pos(), "nail", 1, 4 ); - g->m.spawn_item( g->u.pos(), "sheet", 2 ); - g->m.spawn_item( g->u.pos(), "stick" ); - g->m.spawn_item( g->u.pos(), "string_36" ); + g->m.spawn_item( g->u.pos(), itype_nail, 1, 4 ); + g->m.spawn_item( g->u.pos(), itype_sheet, 2 ); + g->m.spawn_item( g->u.pos(), itype_stick ); + g->m.spawn_item( g->u.pos(), itype_string_36 ); g->u.add_msg_if_player( _( "After boarding up the window the curtains and curtain rod are left." ) ); } @@ -1467,8 +1477,6 @@ void load_construction( const JsonObject &jo ) && con.pre_terrain[0] == 'f' && con.pre_terrain[1] == '_' ) { con.pre_is_furniture = true; - } else { - con.pre_is_furniture = false; } con.post_terrain = jo.get_string( "post_terrain", "" ); @@ -1476,8 +1484,6 @@ void load_construction( const JsonObject &jo ) && con.post_terrain[0] == 'f' && con.post_terrain[1] == '_' ) { con.post_is_furniture = true; - } else { - con.post_is_furniture = false; } con.pre_flags = jo.get_tags( "pre_flags" ); @@ -1719,7 +1725,7 @@ void get_build_reqs_for_furn_ter_ids( const std::pair, std::string build_pre_ter = build.pre_terrain; while( !build_pre_ter.empty() ) { for( const construction &pre_build : constructions ) { - if( pre_build.category == "REPAIR" ) { + if( pre_build.category == construction_category_REPAIR ) { continue; } if( pre_build.post_terrain == build_pre_ter ) { @@ -1740,7 +1746,7 @@ void get_build_reqs_for_furn_ter_ids( const std::pair, for( const auto &ter_data : changed_ids.first ) { for( const construction &build : constructions ) { if( build.post_terrain.empty() || build.post_is_furniture || - build.category == "REPAIR" ) { + build.category == construction_category_REPAIR ) { continue; } if( ter_id( build.post_terrain ) == ter_data.first ) { @@ -1753,7 +1759,7 @@ void get_build_reqs_for_furn_ter_ids( const std::pair, for( const auto &furn_data : changed_ids.second ) { for( const construction &build : constructions ) { if( build.post_terrain.empty() || !build.post_is_furniture || - build.category == "REPAIR" ) { + build.category == construction_category_REPAIR ) { continue; } if( furn_id( build.post_terrain ) == furn_data.first ) { diff --git a/src/consumption.cpp b/src/consumption.cpp index ee7cf695312a3..94dde8ab521f2 100644 --- a/src/consumption.cpp +++ b/src/consumption.cpp @@ -12,6 +12,7 @@ #include "bionics.h" #include "calendar.h" #include "cata_utility.h" +#include "character.h" #include "debug.h" #include "enums.h" #include "flat_set.h" @@ -28,7 +29,9 @@ #include "morale_types.h" #include "mtype.h" #include "mutation.h" +#include "npc.h" #include "options.h" +#include "pickup.h" #include "recipe.h" #include "recipe_dictionary.h" #include "requirements.h" @@ -53,6 +56,7 @@ static const bionic_id bio_advreactor( "bio_advreactor" ); static const bionic_id bio_digestion( "bio_digestion" ); static const bionic_id bio_furnace( "bio_furnace" ); static const bionic_id bio_reactor( "bio_reactor" ); +static const bionic_id bio_syringe( "bio_syringe" ); static const bionic_id bio_taste_blocker( "bio_taste_blocker" ); static const efftype_id effect_bloodworms( "bloodworms" ); @@ -68,19 +72,22 @@ static const efftype_id effect_poison( "poison" ); static const efftype_id effect_tapeworm( "tapeworm" ); static const efftype_id effect_visuals( "visuals" ); +static const item_category_id item_category_chems( "chems" ); + +static const itype_id itype_apparatus( "apparatus" ); +static const itype_id itype_dab_pen_on( "dab_pen_on" ); +static const itype_id itype_syringe( "syringe" ); + static const trait_id trait_ACIDBLOOD( "ACIDBLOOD" ); static const trait_id trait_AMORPHOUS( "AMORPHOUS" ); static const trait_id trait_ANTIFRUIT( "ANTIFRUIT" ); static const trait_id trait_ANTIJUNK( "ANTIJUNK" ); static const trait_id trait_ANTIWHEAT( "ANTIWHEAT" ); -static const trait_id trait_BEAK_HUM( "BEAK_HUM" ); static const trait_id trait_CANNIBAL( "CANNIBAL" ); -static const trait_id trait_STRICT_HUMANITARIAN( "STRICT_HUMANITARIAN" ); static const trait_id trait_CARNIVORE( "CARNIVORE" ); static const trait_id trait_EATDEAD( "EATDEAD" ); static const trait_id trait_EATHEALTH( "EATHEALTH" ); static const trait_id trait_EATPOISON( "EATPOISON" ); -static const trait_id trait_FANGS_SPIDER( "FANGS_SPIDER" ); static const trait_id trait_GIZZARD( "GIZZARD" ); static const trait_id trait_GOURMAND( "GOURMAND" ); static const trait_id trait_HERBIVORE( "HERBIVORE" ); @@ -88,21 +95,17 @@ static const trait_id trait_HIBERNATE( "HIBERNATE" ); static const trait_id trait_LACTOSE( "LACTOSE" ); static const trait_id trait_M_DEPENDENT( "M_DEPENDENT" ); static const trait_id trait_M_IMMUNE( "M_IMMUNE" ); -static const trait_id trait_MANDIBLES( "MANDIBLES" ); static const trait_id trait_MEATARIAN( "MEATARIAN" ); -static const trait_id trait_MOUTH_TENTACLES( "MOUTH_TENTACLES" ); static const trait_id trait_PARAIMMUNE( "PARAIMMUNE" ); static const trait_id trait_PROBOSCIS( "PROBOSCIS" ); static const trait_id trait_PROJUNK( "PROJUNK" ); static const trait_id trait_PROJUNK2( "PROJUNK2" ); static const trait_id trait_PSYCHOPATH( "PSYCHOPATH" ); static const trait_id trait_RUMINANT( "RUMINANT" ); -static const trait_id trait_SABER_TEETH( "SABER_TEETH" ); static const trait_id trait_SAPIOVORE( "SAPIOVORE" ); static const trait_id trait_SAPROPHAGE( "SAPROPHAGE" ); static const trait_id trait_SAPROVORE( "SAPROVORE" ); static const trait_id trait_SCHIZOPHRENIC( "SCHIZOPHRENIC" ); -static const trait_id trait_SHARKTEETH( "SHARKTEETH" ); static const trait_id trait_SLIMESPAWNER( "SLIMESPAWNER" ); static const trait_id trait_SPIRITUAL( "SPIRITUAL" ); static const trait_id trait_STIMBOOST( "STIMBOOST" ); @@ -170,9 +173,9 @@ const units::volume furnace_max_volume( 3_liter ); // TODO: JSONize. const std::map plut_charges = { - { "plut_cell", PLUTONIUM_CHARGES * 10 }, - { "plut_slurry_dense", PLUTONIUM_CHARGES }, - { "plut_slurry", PLUTONIUM_CHARGES / 2 } + { itype_id( "plut_cell" ), PLUTONIUM_CHARGES * 10 }, + { itype_id( "plut_slurry_dense" ), PLUTONIUM_CHARGES }, + { itype_id( "plut_slurry" ), PLUTONIUM_CHARGES / 2 } }; int Character::stomach_capacity() const @@ -403,7 +406,7 @@ std::pair Character::compute_nutrient_range( } if( result_it.typeId() != comest_it.typeId() ) { debugmsg( "When creating recipe result expected %s, got %s\n", - comest_it.typeId(), result_it.typeId() ); + comest_it.typeId().str(), result_it.typeId().str() ); } std::tie( this_min, this_max ) = compute_nutrient_range( result_it, rec, extra_flags ); min_nutr.min_in_place( this_min ); @@ -547,7 +550,7 @@ int Character::vitamin_mod( const vitamin_id &vit, int qty, bool capped ) void Character::vitamins_mod( const std::map &vitamins, bool capped ) { - for( auto vit : vitamins ) { + for( const std::pair &vit : vitamins ) { vitamin_mod( vit.first, vit.second, capped ); } } @@ -683,7 +686,7 @@ ret_val Character::can_eat( const item &food ) const } } - if( comest->tool != "null" ) { + if( !comest->tool.is_null() ) { const bool has = item::count_by_charges( comest->tool ) ? has_charges( comest->tool, 1 ) : has_amount( comest->tool, 1 ); @@ -820,13 +823,13 @@ ret_val Character::will_eat( const item &food, bool interactive ) return ret_val::make_success(); } -bool player::eat( item &food, bool force ) +static bool eat( item &food, player &you, bool force = false ) { if( !food.is_food() ) { return false; } - const auto ret = force ? can_eat( food ) : will_eat( food, is_player() ); + const auto ret = force ? you.can_eat( food ) : you.will_eat( food, you.is_player() ); if( !ret.success() ) { return false; } @@ -837,7 +840,7 @@ bool player::eat( item &food, bool force ) !food.type->can_use( "CATFOOD" ) && !food.type->can_use( "BIRDFOOD" ) && !food.type->can_use( "CATTLEFODDER" ) ) { - charges_used = food.type->invoke( *this, food, pos() ); + charges_used = food.type->invoke( you, food, you.pos() ); if( charges_used <= 0 ) { return false; } @@ -847,8 +850,8 @@ bool player::eat( item &food, bool force ) // Note: the block below assumes we decided to eat it // No coming back from here - const bool hibernate = has_active_mutation( trait_HIBERNATE ); - const int nutr = nutrition_for( food ); + const bool hibernate = you.has_active_mutation( trait_HIBERNATE ); + const int nutr = you.nutrition_for( food ); const int quench = food.get_comestible()->quench; const bool spoiled = food.rotten(); @@ -860,27 +863,27 @@ bool player::eat( item &food, bool force ) // If neither of the above is true then it's a drug and shouldn't get mealtime penalty/bonus if( hibernate && - ( get_hunger() > -60 && get_thirst() > -60 ) && - ( get_hunger() - nutr < -60 || get_thirst() - quench < -60 ) ) { - add_msg_if_player( + ( you.get_hunger() > -60 && you.get_thirst() > -60 ) && + ( you.get_hunger() - nutr < -60 || you.get_thirst() - quench < -60 ) ) { + you.add_msg_if_player( _( "You've begun stockpiling calories and liquid for hibernation. You get the feeling that you should prepare for bed, just in case, but… you're hungry again, and you could eat a whole week's worth of food RIGHT NOW." ) ); } - const bool will_vomit = stomach.stomach_remaining( *this ) < food.volume() && - rng( units::to_milliliter( stomach.capacity( *this ) ) / 2, - units::to_milliliter( stomach.contains() ) ) > units::to_milliliter( - stomach.capacity( *this ) ); - const bool saprophage = has_trait( trait_SAPROPHAGE ); + const bool will_vomit = you.stomach.stomach_remaining( you ) < food.volume() && + rng( units::to_milliliter( you.stomach.capacity( you ) ) / 2, + units::to_milliliter( you.stomach.contains() ) ) > units::to_milliliter( + you.stomach.capacity( you ) ); + const bool saprophage = you.has_trait( trait_SAPROPHAGE ); if( spoiled && !saprophage ) { - add_msg_if_player( m_bad, _( "Ick, this %s doesn't taste so good…" ), food.tname() ); - if( !has_trait( trait_SAPROVORE ) && !has_trait( trait_EATDEAD ) && - ( !has_bionic( bio_digestion ) || one_in( 3 ) ) ) { - add_effect( effect_foodpoison, rng( 6_minutes, ( nutr + 1 ) * 6_minutes ) ); + you.add_msg_if_player( m_bad, _( "Ick, this %s doesn't taste so good…" ), food.tname() ); + if( !you.has_trait( trait_SAPROVORE ) && !you.has_trait( trait_EATDEAD ) && + ( !you.has_bionic( bio_digestion ) || one_in( 3 ) ) ) { + you.add_effect( effect_foodpoison, rng( 6_minutes, ( nutr + 1 ) * 6_minutes ) ); } } else if( spoiled && saprophage ) { - add_msg_if_player( m_good, _( "Mmm, this %s tastes delicious…" ), food.tname() ); + you.add_msg_if_player( m_good, _( "Mmm, this %s tastes delicious…" ), food.tname() ); } - if( !consume_effects( food ) ) { + if( !you.consume_effects( food ) ) { // Already consumed by using `food.type->invoke`? if( charges_used > 0 ) { food.mod_charges( -charges_used ); @@ -889,115 +892,115 @@ bool player::eat( item &food, bool force ) } food.mod_charges( -1 ); - const bool amorphous = has_trait( trait_AMORPHOUS ); + const bool amorphous = you.has_trait( trait_AMORPHOUS ); // If it's poisonous... poison us. // TODO: Move this to a flag - if( food.poison > 0 && !has_trait( trait_EATPOISON ) && - !has_trait( trait_EATDEAD ) ) { + if( food.poison > 0 && !you.has_trait( trait_EATPOISON ) && + !you.has_trait( trait_EATDEAD ) ) { if( food.poison >= rng( 2, 4 ) ) { - add_effect( effect_poison, food.poison * 10_minutes ); + you.add_effect( effect_poison, food.poison * 10_minutes ); } - add_effect( effect_foodpoison, food.poison * 30_minutes ); + you.add_effect( effect_foodpoison, food.poison * 30_minutes ); } if( food.has_flag( flag_HIDDEN_HALLU ) ) { - if( !has_effect( effect_hallu ) ) { - add_effect( effect_hallu, 6_hours ); + if( !you.has_effect( effect_hallu ) ) { + you.add_effect( effect_hallu, 6_hours ); } } if( amorphous ) { - add_msg_player_or_npc( _( "You assimilate your %s." ), _( " assimilates a %s." ), - food.tname() ); + you.add_msg_player_or_npc( _( "You assimilate your %s." ), _( " assimilates a %s." ), + food.tname() ); } else if( drinkable ) { - if( ( has_trait( trait_SCHIZOPHRENIC ) || has_artifact_with( AEP_SCHIZO ) ) && - one_in( 50 ) && !spoiled && food.goes_bad() && is_player() ) { + if( ( you.has_trait( trait_SCHIZOPHRENIC ) || you.has_artifact_with( AEP_SCHIZO ) ) && + one_in( 50 ) && !spoiled && food.goes_bad() && you.is_player() ) { add_msg( m_bad, _( "Ick, this %s (rotten) doesn't taste so good…" ), food.tname() ); add_msg( _( "You drink your %s (rotten)." ), food.tname() ); } else { - add_msg_player_or_npc( _( "You drink your %s." ), _( " drinks a %s." ), - food.tname() ); + you.add_msg_player_or_npc( _( "You drink your %s." ), _( " drinks a %s." ), + food.tname() ); } } else if( chew ) { - if( ( has_trait( trait_SCHIZOPHRENIC ) || has_artifact_with( AEP_SCHIZO ) ) && - one_in( 50 ) && !spoiled && food.goes_bad() && is_player() ) { + if( ( you.has_trait( trait_SCHIZOPHRENIC ) || you.has_artifact_with( AEP_SCHIZO ) ) && + one_in( 50 ) && !spoiled && food.goes_bad() && you.is_player() ) { add_msg( m_bad, _( "Ick, this %s (rotten) doesn't taste so good…" ), food.tname() ); add_msg( _( "You eat your %s (rotten)." ), food.tname() ); } else { - add_msg_player_or_npc( _( "You eat your %s." ), _( " eats a %s." ), - food.tname() ); + you.add_msg_player_or_npc( _( "You eat your %s." ), _( " eats a %s." ), + food.tname() ); } } if( item::find_type( food.get_comestible()->tool )->tool ) { // Tools like lighters get used - use_charges( food.get_comestible()->tool, 1 ); + you.use_charges( food.get_comestible()->tool, 1 ); } - if( has_active_bionic( bio_taste_blocker ) ) { - mod_power_level( units::from_kilojoule( -std::abs( food.get_comestible_fun() ) ) ); + if( you.has_active_bionic( bio_taste_blocker ) ) { + you.mod_power_level( units::from_kilojoule( -std::abs( food.get_comestible_fun() ) ) ); } - if( food.has_flag( flag_FUNGAL_VECTOR ) && !has_trait( trait_M_IMMUNE ) ) { - add_effect( effect_fungus, 1_turns, num_bp, true ); + if( food.has_flag( flag_FUNGAL_VECTOR ) && !you.has_trait( trait_M_IMMUNE ) ) { + you.add_effect( effect_fungus, 1_turns, num_bp, true ); } // The fun changes for these effects are applied in fun_for(). if( food.has_flag( flag_MUSHY ) ) { - add_msg_if_player( m_bad, - _( "You try to ignore its mushy texture, but it leaves you with an awful aftertaste." ) ); + you.add_msg_if_player( m_bad, + _( "You try to ignore its mushy texture, but it leaves you with an awful aftertaste." ) ); } if( food.get_comestible_fun() > 0 ) { - if( has_effect( effect_common_cold ) ) { - add_msg_if_player( m_bad, _( "You can't taste much of anything with this cold." ) ); + if( you.has_effect( effect_common_cold ) ) { + you.add_msg_if_player( m_bad, _( "You can't taste much of anything with this cold." ) ); } - if( has_effect( effect_flu ) ) { - add_msg_if_player( m_bad, _( "You can't taste much of anything with this flu." ) ); + if( you.has_effect( effect_flu ) ) { + you.add_msg_if_player( m_bad, _( "You can't taste much of anything with this flu." ) ); } } // Chance to become parasitised - if( !will_vomit && !( has_bionic( bio_digestion ) || has_trait( trait_PARAIMMUNE ) ) ) { + if( !will_vomit && !( you.has_bionic( bio_digestion ) || you.has_trait( trait_PARAIMMUNE ) ) ) { if( food.get_comestible()->parasites > 0 && !food.has_flag( flag_NO_PARASITES ) && one_in( food.get_comestible()->parasites ) ) { switch( rng( 0, 3 ) ) { case 0: - if( !has_trait( trait_EATHEALTH ) ) { - add_effect( effect_tapeworm, 1_turns, num_bp, true ); + if( !you.has_trait( trait_EATHEALTH ) ) { + you.add_effect( effect_tapeworm, 1_turns, num_bp, true ); } break; case 1: - if( !has_trait( trait_ACIDBLOOD ) ) { - add_effect( effect_bloodworms, 1_turns, num_bp, true ); + if( !you.has_trait( trait_ACIDBLOOD ) ) { + you.add_effect( effect_bloodworms, 1_turns, num_bp, true ); } break; case 2: - add_effect( effect_brainworms, 1_turns, num_bp, true ); + you.add_effect( effect_brainworms, 1_turns, num_bp, true ); break; case 3: - add_effect( effect_paincysts, 1_turns, num_bp, true ); + you.add_effect( effect_paincysts, 1_turns, num_bp, true ); } } } for( const std::pair &elem : food.get_comestible()->contamination ) { if( rng( 1, 100 ) <= elem.second ) { - expose_to_disease( elem.first ); + you.expose_to_disease( elem.first ); } } if( will_vomit ) { - vomit(); + you.vomit(); } - consumption_history.emplace_back( food ); + you.consumption_history.emplace_back( food ); // Clean out consumption_history so it doesn't get bigger than needed. - while( consumption_history.front().time < calendar::turn - 2_days ) { - consumption_history.pop_front(); + while( you.consumption_history.front().time < calendar::turn - 2_days ) { + you.consumption_history.pop_front(); } return true; @@ -1343,22 +1346,6 @@ bool Character::consume_effects( item &food ) return true; } -hint_rating Character::rate_action_eat( const item &it ) const -{ - if( !can_consume( it ) ) { - return hint_rating::cant; - } - - const auto rating = will_eat( it ); - if( rating.success() ) { - return hint_rating::good; - } else if( rating.value() == INEDIBLE || rating.value() == INEDIBLE_MUTATION ) { - return hint_rating::cant; - } - - return hint_rating::iffy; -} - bool Character::can_feed_reactor_with( const item &it ) const { static const std::set acceptable = {{ @@ -1491,7 +1478,7 @@ bool Character::fuel_bionic_with( item &it ) const bionic_id bio = get_most_efficient_bionic( get_bionic_fueled_with( it ) ); const int loadable = std::min( it.charges, get_fuel_capacity( it.typeId() ) ); - const std::string str_loaded = get_value( it.typeId() ); + const std::string str_loaded = get_value( it.typeId().str() ); int loaded = 0; if( !str_loaded.empty() ) { loaded = std::stoi( str_loaded ); @@ -1501,7 +1488,7 @@ bool Character::fuel_bionic_with( item &it ) it.charges -= loadable; // Type and amount of fuel - set_value( it.typeId(), new_charge ); + set_value( it.typeId().str(), new_charge ); update_fuel_storage( it.typeId() ); add_msg_player_or_npc( m_info, //~ %1$i: charge number, %2$s: item name, %3$s: bionics name @@ -1633,14 +1620,18 @@ time_duration Character::get_consume_time( const item &it ) { const int charges = std::max( it.charges, 1 ); int volume = units::to_milliliter( it.volume() ) / charges; + if( 0 == volume && it.type ) { + volume = units::to_milliliter( it.type->volume ); + } time_duration time = time_duration::from_seconds( std::max( ( volume / 5 ), 1 ) ); //Default 5 mL (1 tablespoon) per second float consume_time_modifier = 1;//only for food and drinks - const bool eat_verb = it.has_flag( flag_USE_EAT_VERB ); - if( eat_verb || it.get_comestible()->comesttype == "FOOD" ) { + const bool eat_verb = it.has_flag( flag_USE_EAT_VERB ); + const std::string comest_type = it.get_comestible() ? it.get_comestible()->comesttype : ""; + if( eat_verb || comest_type == "FOOD" ) { time = time_duration::from_seconds( volume / 5 ); //Eat 5 mL (1 teaspoon) per second consume_time_modifier = mutation_value( "consume_time_modifier" ); - } else if( !eat_verb && it.get_comestible()->comesttype == "DRINK" ) { + } else if( !eat_verb && comest_type == "DRINK" ) { time = time_duration::from_seconds( volume / 15 ); //Drink 15 mL (1 tablespoon) per second consume_time_modifier = mutation_value( "consume_time_modifier" ); } else if( it.is_medication() ) { @@ -1651,11 +1642,11 @@ time_duration Character::get_consume_time( const item &it ) if( consume_drug != nullptr ) { //its a drug const auto consume_drug_use = dynamic_cast ( consume_drug->get_actor_ptr() ); - if( consume_drug_use->tools_needed.find( "syringe" ) != consume_drug_use->tools_needed.end() ) { + if( consume_drug_use->tools_needed.find( itype_syringe ) != consume_drug_use->tools_needed.end() ) { time = time_duration::from_minutes( 5 );//sterile injections take 5 minutes - } else if( consume_drug_use->tools_needed.find( "apparatus" ) != + } else if( consume_drug_use->tools_needed.find( itype_apparatus ) != consume_drug_use->tools_needed.end() || - consume_drug_use->tools_needed.find( "dab_pen_on" ) != consume_drug_use->tools_needed.end() ) { + consume_drug_use->tools_needed.find( itype_dab_pen_on ) != consume_drug_use->tools_needed.end() ) { time = time_duration::from_seconds( 30 );//smoke a bowl } else { time = time_duration::from_seconds( 5 );//popping a pill is quick @@ -1669,7 +1660,7 @@ time_duration Character::get_consume_time( const item &it ) } else { time = time_duration::from_seconds( 5 ); //probably pills so quick } - } else if( it.get_category().get_id() == "chems" ) { + } else if( it.get_category().get_id() == item_category_chems ) { time = time_duration::from_seconds( std::max( ( volume / 15 ), 1 ) ); //Consume 15 mL (1 tablespoon) per second consume_time_modifier = mutation_value( "consume_time_modifier" ); @@ -1677,3 +1668,148 @@ time_duration Character::get_consume_time( const item &it ) return time * consume_time_modifier; } + +static bool query_consume_ownership( item &target, player &p ) +{ + if( !target.is_owned_by( p, true ) ) { + bool choice = true; + if( p.get_value( "THIEF_MODE" ) == "THIEF_ASK" ) { + choice = Pickup::query_thief(); + } + if( p.get_value( "THIEF_MODE" ) == "THIEF_HONEST" || !choice ) { + return false; + } + std::vector witnesses; + for( npc &elem : g->all_npcs() ) { + if( rl_dist( elem.pos(), p.pos() ) < MAX_VIEW_DISTANCE && elem.sees( p.pos() ) ) { + witnesses.push_back( &elem ); + } + } + for( npc *elem : witnesses ) { + elem->say( "", 7 ); + } + if( !witnesses.empty() && target.is_owned_by( p, true ) ) { + if( p.add_faction_warning( target.get_owner() ) ) { + for( npc *elem : witnesses ) { + elem->make_angry(); + } + } + } + } + return true; +} + +// TODO: Properly split medications and food instead of hacking around +static bool consume_med( item &target, player &you ) +{ + if( !target.is_medication() ) { + return false; + } + + const itype_id tool_type = target.get_comestible()->tool; + const auto req_tool = item::find_type( tool_type ); + bool tool_override = false; + if( tool_type == itype_syringe && you.has_bionic( bio_syringe ) ) { + tool_override = true; + } + if( req_tool->tool ) { + if( !( you.has_amount( tool_type, 1 ) && + you.has_charges( tool_type, req_tool->tool->charges_per_use ) ) && + !tool_override ) { + you.add_msg_if_player( m_info, _( "You need a %s to consume that!" ), req_tool->nname( 1 ) ); + return false; + } + you.use_charges( tool_type, req_tool->tool->charges_per_use ); + } + + int amount_used = 1; + if( target.type->has_use() ) { + amount_used = target.type->invoke( you, target, you.pos() ); + if( amount_used <= 0 ) { + return false; + } + } + + // TODO: Get the target it was used on + // Otherwise injecting someone will give us addictions etc. + if( target.has_flag( "NO_INGEST" ) ) { + const auto &comest = *target.get_comestible(); + // Assume that parenteral meds don't spoil, so don't apply rot + you.modify_health( comest ); + you.modify_stimulation( comest ); + you.modify_fatigue( comest ); + you.modify_radiation( comest ); + you.modify_addiction( comest ); + you.modify_morale( target ); + } else { + // Take by mouth + you.consume_effects( target ); + } + + target.charges -= amount_used; + return target.charges <= 0; +} + +bool player::consume( item &target, bool force ) +{ + if( target.is_null() ) { + add_msg_if_player( m_info, _( "You do not have that item." ) ); + return false; + } + if( is_underwater() && !has_trait( trait_WATERSLEEP ) ) { + add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); + return false; + } + + // to try to reduce unecessary churn, this was left for now + item &comest = target; + + if( comest.is_null() || target.is_craft() ) { + add_msg_if_player( m_info, _( "You can't eat your %s." ), target.tname() ); + if( is_npc() ) { + debugmsg( "%s tried to eat a %s", name, target.tname() ); + } + return false; + } + if( is_player() && !query_consume_ownership( target, *this ) ) { + return false; + } + if( consume_med( comest, *this ) || + eat( comest, *this, force ) || feed_reactor_with( comest ) || feed_furnace_with( comest ) || + fuel_bionic_with( comest ) ) { + + if( &target != &comest ) { + target.on_contents_changed(); + } + + return comest.charges <= 0; + } + + return false; +} + +bool player::consume( item_location loc, bool force ) +{ + if( !loc ) { + debugmsg( "Null loc to consume." ); + return false; + } + item &target = *loc; + bool wielding = is_wielding( target ); + bool worn = is_worn( target ); + const bool inv_item = !( wielding || worn ); + + if( consume( target, force ) ) { + + i_rem( loc.get_item() ); + + } else if( inv_item ) { + if( Pickup::handle_spillable_contents( *this, target, g->m ) ) { + i_rem( &target ); + } + inv.restack( *this ); + inv.unsort(); + } + + return true; +} diff --git a/src/craft_command.cpp b/src/craft_command.cpp index 6d83371116554..dccb358556af3 100644 --- a/src/craft_command.cpp +++ b/src/craft_command.cpp @@ -27,15 +27,15 @@ template std::string comp_selection::nname() const { switch( use_from ) { - case use_from_map: + case usage_from::map: return item::nname( comp.type, comp.count ) + _( " (nearby)" ); - case use_from_both: + case usage_from::both: return item::nname( comp.type, comp.count ) + _( " (person & nearby)" ); - case use_from_player: + case usage_from::player: // Is the same as the default return; - case use_from_none: - case cancel: - case num_usages: + case usage_from::none: + case usage_from::cancel: + case usage_from::num_usages_from: break; } @@ -46,17 +46,17 @@ namespace io { template<> -std::string enum_to_string( usage data ) +std::string enum_to_string( usage_from data ) { switch( data ) { // *INDENT-OFF* - case usage::use_from_map: return "map"; - case usage::use_from_player: return "player"; - case usage::use_from_both: return "both"; - case usage::use_from_none: return "none"; - case usage::cancel: return "cancel"; + case usage_from::map: return "map"; + case usage_from::player: return "player"; + case usage_from::both: return "both"; + case usage_from::none: return "none"; + case usage_from::cancel: return "cancel"; // *INDENT-ON* - case usage::num_usages: + case usage_from::num_usages_from: break; } debugmsg( "Invalid usage" ); @@ -84,7 +84,7 @@ void comp_selection::deserialize( JsonIn &jsin ) std::string use_from_str; data.read( "use_from", use_from_str ); - use_from = io::string_to_enum( use_from_str ); + use_from = io::string_to_enum( use_from_str ); data.read( "type", comp.type ); data.read( "count", comp.count ); } @@ -154,7 +154,7 @@ void craft_command::execute( const tripoint &new_loc ) for( const auto &it : needs->get_components() ) { comp_selection is = crafter->select_item_component( it, batch_size, map_inv, true, filter ); - if( is.use_from == cancel ) { + if( is.use_from == usage_from::cancel ) { return; } item_selections.push_back( is ); @@ -166,7 +166,7 @@ void craft_command::execute( const tripoint &new_loc ) it, batch_size, map_inv, DEFAULT_HOTKEYS, true, true, []( int charges ) { return charges / 20 + charges % 20; } ); - if( ts.use_from == cancel ) { + if( ts.use_from == usage_from::cancel ) { return; } tool_selections.push_back( ts ); @@ -296,49 +296,49 @@ std::vector> craft_command::check_item_components_miss if( item::count_by_charges( type ) && count > 0 ) { switch( item_sel.use_from ) { - case use_from_player: + case usage_from::player: if( !crafter->has_charges( type, count, filter ) ) { missing.push_back( item_sel ); } break; - case use_from_map: + case usage_from::map: if( !map_inv.has_charges( type, count, filter ) ) { missing.push_back( item_sel ); } break; - case use_from_both: + case usage_from::both: if( !( crafter->charges_of( type, INT_MAX, filter ) + map_inv.charges_of( type, INT_MAX, filter ) >= count ) ) { missing.push_back( item_sel ); } break; - case use_from_none: - case cancel: - case num_usages: + case usage_from::none: + case usage_from::cancel: + case usage_from::num_usages_from: break; } } else { // Counting by units, not charges. switch( item_sel.use_from ) { - case use_from_player: + case usage_from::player: if( !crafter->has_amount( type, count, false, filter ) ) { missing.push_back( item_sel ); } break; - case use_from_map: + case usage_from::map: if( !map_inv.has_components( type, count, filter ) ) { missing.push_back( item_sel ); } break; - case use_from_both: + case usage_from::both: if( !( crafter->amount_of( type, false, std::numeric_limits::max(), filter ) + map_inv.amount_of( type, false, std::numeric_limits::max(), filter ) >= count ) ) { missing.push_back( item_sel ); } break; - case use_from_none: - case cancel: - case num_usages: + case usage_from::none: + case usage_from::cancel: + case usage_from::num_usages_from: break; } } @@ -357,20 +357,20 @@ std::vector> craft_command::check_tool_components_miss if( tool_sel.comp.count > 0 ) { const int count = tool_sel.comp.count * batch_size; switch( tool_sel.use_from ) { - case use_from_player: + case usage_from::player: if( !crafter->has_charges( type, count ) ) { missing.push_back( tool_sel ); } break; - case use_from_map: + case usage_from::map: if( !map_inv.has_charges( type, count ) ) { missing.push_back( tool_sel ); } break; - case use_from_both: - case use_from_none: - case cancel: - case num_usages: + case usage_from::both: + case usage_from::none: + case usage_from::cancel: + case usage_from::num_usages_from: break; } } else if( !crafter->has_amount( type, 1 ) && !map_inv.has_tools( type, 1 ) ) { diff --git a/src/craft_command.h b/src/craft_command.h index 17f345394dd3c..a99e223670faa 100644 --- a/src/craft_command.h +++ b/src/craft_command.h @@ -20,27 +20,33 @@ template struct enum_traits; /** * enum used by comp_selection to indicate where a component should be consumed from. */ -enum usage { - use_from_none = 0, - use_from_map = 1, - use_from_player = 2, - use_from_both = 1 | 2, +enum class usage_from : int { + none = 0, + map = 1, + player = 2, + both = 1 | 2, cancel = 4, // FIXME: hacky. - num_usages + num_usages_from }; template<> -struct enum_traits { - static constexpr usage last = usage::num_usages; +struct enum_traits { + static constexpr usage_from last = usage_from::num_usages_from; }; +inline bool operator&( usage_from l, usage_from r ) +{ + using I = std::underlying_type_t; + return static_cast( l ) & static_cast( r ); +} + /** * Struct that represents a selection of a component for crafting. */ -template +template struct comp_selection { /** Tells us where the selected component should be used from. */ - usage use_from = use_from_none; + usage_from use_from = usage_from::none; CompType comp; /** provides a translated name for 'comp', suffixed with it's location e.g '(nearby)'. */ diff --git a/src/crafting.cpp b/src/crafting.cpp index d05ecb096a4b1..67aa6a6a80660 100644 --- a/src/crafting.cpp +++ b/src/crafting.cpp @@ -80,6 +80,8 @@ static const activity_id ACT_DISASSEMBLE( "ACT_DISASSEMBLE" ); static const efftype_id effect_contacts( "contacts" ); +static const itype_id itype_plut_cell( "plut_cell" ); + static const skill_id skill_electronics( "electronics" ); static const skill_id skill_tailor( "tailor" ); @@ -396,7 +398,7 @@ bool player::check_eligible_containers_for_crafting( const recipe &rec, int batc all.insert( all.end(), bps.begin(), bps.end() ); for( const item &prod : all ) { - if( !prod.made_of( LIQUID ) ) { + if( !prod.made_of( phase_id::LIQUID ) ) { continue; } @@ -428,7 +430,7 @@ bool player::check_eligible_containers_for_crafting( const recipe &rec, int batc if( charges_to_store > 0 ) { if( !query_yn( - _( "You don't have anything in which to store %s and may have to pour it out or consume it as soon as it is prepared! Proceed?" ), + _( "You don't have anything in which to store %s and may have to pour it out as soon as it is prepared! Proceed?" ), prod.tname() ) ) { return false; } @@ -548,7 +550,7 @@ const inventory &Character::crafting_inventory( const tripoint &src_pos, int rad for( const bionic &bio : *my_bionics ) { const bionic_data &bio_data = bio.info(); if( ( !bio_data.activated || bio.powered ) && - !bio_data.fake_item.empty() ) { + !bio_data.fake_item.is_empty() ) { cached_crafting_inventory += item( bio.info().fake_item, calendar::turn, units::to_kilojoule( get_power_level() ) ); } @@ -634,7 +636,7 @@ static cata::optional wield_craft( player &p, item &craft ) static item *set_item_inventory( player &p, item &newit ) { item *ret_val = nullptr; - if( newit.made_of( LIQUID ) ) { + if( newit.made_of( phase_id::LIQUID ) ) { liquid_handler::handle_all_liquid( newit, PICKUP_RANGE ); } else { p.inv.assign_empty_invlet( newit, p ); @@ -1155,7 +1157,7 @@ void player::complete_craft( item &craft, const tripoint &loc ) // if a component item has "cooks_like" it will be replaced by that item as a component for( item &comp : used ) { // only comestibles have cooks_like. any other type of item will throw an exception, so filter those out - if( comp.is_comestible() && !comp.get_comestible()->cooks_like.empty() ) { + if( comp.is_comestible() && !comp.get_comestible()->cooks_like.is_empty() ) { comp = item( comp.get_comestible()->cooks_like, comp.birthday(), comp.charges ); } // If this recipe is cooked, components are no longer raw. @@ -1210,7 +1212,7 @@ void player::complete_craft( item &craft, const tripoint &loc ) food_contained.set_owner( get_faction()->id ); } - if( newit.made_of( LIQUID ) ) { + if( newit.made_of( phase_id::LIQUID ) ) { liquid_handler::handle_all_liquid( newit, PICKUP_RANGE ); } else if( loc == tripoint_zero && can_wield( newit ).success() ) { wield_craft( *this, newit ); @@ -1233,7 +1235,7 @@ void player::complete_craft( item &craft, const tripoint &loc ) } } bp.set_owner( get_faction()->id ); - if( bp.made_of( LIQUID ) ) { + if( bp.made_of( phase_id::LIQUID ) ) { liquid_handler::handle_all_liquid( bp, PICKUP_RANGE ); } else if( loc == tripoint_zero ) { set_item_inventory( *this, bp ); @@ -1297,7 +1299,7 @@ bool player::can_continue_craft( item &craft ) std::vector> item_selections; for( const auto &it : continue_reqs.get_components() ) { comp_selection is = select_item_component( it, batch_size, map_inv, true, filter ); - if( is.use_from == cancel ) { + if( is.use_from == usage_from::cancel ) { cancel_activity(); add_msg( _( "You stop crafting." ) ); return false; @@ -1350,7 +1352,7 @@ bool player::can_continue_craft( item &craft ) map_inv, DEFAULT_HOTKEYS, true, true, []( int charges ) { return charges / 20; } ); - if( selection.use_from == cancel ) { + if( selection.use_from == usage_from::cancel ) { return false; } new_tool_selections.push_back( selection ); @@ -1414,7 +1416,7 @@ comp_selection player::select_item_component( const std::vector player::select_item_component( const std::vector player::select_item_component( const std::vector player::select_item_component( const std::vector( cmenu.ret ) >= map_has.size() + player_has.size() + mixed.size() ) { - selected.use_from = cancel; + selected.use_from = usage_from::cancel; return selected; } size_t uselection = static_cast( cmenu.ret ); if( uselection < map_has.size() ) { - selected.use_from = usage::use_from_map; + selected.use_from = usage_from::map; selected.comp = map_has[uselection]; } else if( uselection < map_has.size() + player_has.size() ) { uselection -= map_has.size(); - selected.use_from = usage::use_from_player; + selected.use_from = usage_from::player; selected.comp = player_has[uselection]; } else { uselection -= map_has.size() + player_has.size(); - selected.use_from = usage::use_from_both; + selected.use_from = usage_from::both; selected.comp = mixed[uselection]; } } @@ -1607,7 +1609,7 @@ std::list player::consume_items( map &m, const comp_selection & int real_count = ( selected_comp.count > 0 ) ? selected_comp.count * batch : std::abs( selected_comp.count ); // First try to get everything from the map, than (remaining amount) from player - if( is.use_from & use_from_map ) { + if( is.use_from & usage_from::map ) { if( by_charges ) { std::list tmp = m.use_charges( loc, radius, selected_comp.type, real_count, filter ); ret.splice( ret.end(), tmp ); @@ -1617,7 +1619,7 @@ std::list player::consume_items( map &m, const comp_selection & ret.splice( ret.end(), tmp ); } } - if( is.use_from & use_from_player ) { + if( is.use_from & usage_from::player ) { if( by_charges ) { std::list tmp = use_charges( selected_comp.type, real_count, filter ); ret.splice( ret.end(), tmp ); @@ -1689,27 +1691,27 @@ player::select_tool_component( const std::vector &tools, int batch, i } } if( found_nocharge ) { - selected.use_from = use_from_none; + selected.use_from = usage_from::none; return selected; // Default to using a tool that doesn't require charges } if( player_has.size() + map_has.size() == 1 ) { if( map_has.empty() ) { - selected.use_from = use_from_player; + selected.use_from = usage_from::player; selected.comp = player_has[0]; } else { - selected.use_from = use_from_map; + selected.use_from = usage_from::map; selected.comp = map_has[0]; } } else if( is_npc() ) { if( !player_has.empty() ) { - selected.use_from = use_from_player; + selected.use_from = usage_from::player; selected.comp = player_has[0]; } else if( !map_has.empty() ) { - selected.use_from = use_from_map; + selected.use_from = usage_from::map; selected.comp = map_has[0]; } else { - selected.use_from = use_from_none; + selected.use_from = usage_from::none; return selected; } } else { // Variety of options, list them and pick one @@ -1740,7 +1742,7 @@ player::select_tool_component( const std::vector &tools, int batch, i } if( tmenu.entries.empty() ) { // This SHOULD only happen if cooking with a fire, - selected.use_from = use_from_none; + selected.use_from = usage_from::none; return selected; // and the fire goes out. } @@ -1751,17 +1753,17 @@ player::select_tool_component( const std::vector &tools, int batch, i tmenu.query(); if( tmenu.ret < 0 || static_cast( tmenu.ret ) >= map_has.size() + player_has.size() ) { - selected.use_from = cancel; + selected.use_from = usage_from::cancel; return selected; } size_t uselection = static_cast( tmenu.ret ); if( uselection < map_has.size() ) { - selected.use_from = use_from_map; + selected.use_from = usage_from::map; selected.comp = map_has[uselection]; } else { uselection -= map_has.size(); - selected.use_from = use_from_player; + selected.use_from = usage_from::player; selected.comp = player_has[uselection]; } } @@ -1811,7 +1813,7 @@ bool player::craft_consume_tools( item &craft, int mulitplier, bool start_craft if( tool_sel.comp.count > 0 ) { const int count = calc_charges( tool_sel.comp.count ); switch( tool_sel.use_from ) { - case use_from_player: + case usage_from::player: if( !has_charges( type, count ) ) { add_msg_player_or_npc( _( "You have insufficient %s charges and can't continue crafting" ), @@ -1821,7 +1823,7 @@ bool player::craft_consume_tools( item &craft, int mulitplier, bool start_craft return false; } break; - case use_from_map: + case usage_from::map: if( !map_inv.has_charges( type, count ) ) { add_msg_player_or_npc( _( "You have insufficient %s charges and can't continue crafting" ), @@ -1831,10 +1833,10 @@ bool player::craft_consume_tools( item &craft, int mulitplier, bool start_craft return false; } break; - case use_from_both: - case use_from_none: - case cancel: - case num_usages: + case usage_from::both: + case usage_from::none: + case usage_from::cancel: + case usage_from::num_usages_from: break; } } else if( !has_amount( type, 1 ) && !map_inv.has_tools( type, 1 ) ) { @@ -1871,14 +1873,14 @@ void player::consume_tools( map &m, const comp_selection &tool, int b const itype *tmp = item::find_type( tool.comp.type ); int quantity = tool.comp.count * batch * tmp->charge_factor(); - if( tool.use_from & use_from_player ) { + if( tool.use_from & usage_from::player ) { use_charges( tool.comp.type, quantity ); } - if( tool.use_from & use_from_map ) { + if( tool.use_from & usage_from::map ) { m.use_charges( origin, radius, tool.comp.type, quantity, return_true, bcp ); } - // else, use_from_none (or cancel), so we don't use up any tools; + // else, usage_from::none (or usage_from::cancel), so we don't use up any tools; } /* This call is in-efficient when doing it for multiple items with the same map inventory. @@ -1894,12 +1896,12 @@ void player::consume_tools( const std::vector &tools, int batch, ret_val player::can_disassemble( const item &obj, const inventory &inv ) const { - const auto &r = recipe_dictionary::get_uncraft( obj.typeId() ); - - if( !r || obj.has_flag( flag_ETHEREAL_ITEM ) ) { + if( !obj.is_disassemblable() ) { return ret_val::make_failure( _( "You cannot disassemble this." ) ); } + const recipe &r = recipe_dictionary::get_uncraft( obj.typeId() ); + // check sufficient light if( lighting_craft_speed_multiplier( r ) == 0.0f ) { return ret_val::make_failure( _( "You can't see to craft!" ) ); @@ -2060,7 +2062,7 @@ bool player::disassemble( item_location target, bool interactive ) // index is used as a bool that indicates if we want recursive uncraft. activity.index = false; activity.targets.emplace_back( std::move( target ) ); - activity.str_values.push_back( r.result() ); + activity.str_values.push_back( r.result().str() ); // Unused position attribute used to store ammo to disassemble activity.position = std::min( num_dis, obj.charges ); @@ -2102,7 +2104,7 @@ void player::complete_disassemble() // Disassembly has 2 parallel vectors: // item location, and recipe id - const recipe &rec = recipe_dictionary::get_uncraft( activity.str_values.back() ); + const recipe &rec = recipe_dictionary::get_uncraft( itype_id( activity.str_values.back() ) ); if( rec ) { complete_disassemble( activity.targets.back(), rec ); @@ -2129,7 +2131,8 @@ void player::complete_disassemble() } // Set get and set duration of next uncraft - const recipe &next_recipe = recipe_dictionary::get_uncraft( activity.str_values.back() ); + const recipe &next_recipe = recipe_dictionary::get_uncraft( itype_id( + activity.str_values.back() ) ); if( !next_recipe ) { debugmsg( "bad disassembly recipe: %d", activity.str_values.back() ); @@ -2215,7 +2218,7 @@ void player::complete_disassemble( item_location &target, const recipe &dis ) // have their component count multiplied by the number of charges. compcount *= std::min( dis_item.charges, dis.create_result().charges ); } - const bool is_liquid = newit.made_of( LIQUID ); + const bool is_liquid = newit.made_of( phase_id::LIQUID ); if( uncraft_liquids_contained && is_liquid && newit.charges != 0 ) { // Spawn liquid item in its default container compcount = compcount / newit.charges; @@ -2238,7 +2241,8 @@ void player::complete_disassemble( item_location &target, const recipe &dis ) // If the recipe has a `FULL_MAGAZINE` flag, spawn any magazines full of ammo if( newit.is_magazine() && dis.has_flag( flag_FULL_MAGAZINE ) ) { - newit.ammo_set( newit.ammo_default(), newit.ammo_capacity() ); + newit.ammo_set( newit.ammo_default(), + newit.ammo_capacity( item::find_type( newit.ammo_default() )->ammo->type ) ); } for( ; compcount > 0; compcount-- ) { @@ -2289,7 +2293,7 @@ void player::complete_disassemble( item_location &target, const recipe &dis ) } } - if( act_item.made_of( LIQUID ) ) { + if( act_item.made_of( phase_id::LIQUID ) ) { liquid_handler::handle_all_liquid( act_item, PICKUP_RANGE ); } else { drop_items.push_back( act_item ); @@ -2325,7 +2329,7 @@ void remove_ammo( std::list &dis_items, player &p ) void drop_or_handle( const item &newit, Character &p ) { - if( newit.made_of( LIQUID ) && p.is_player() ) { // TODO: what about NPCs? + if( newit.made_of( phase_id::LIQUID ) && p.is_player() ) { // TODO: what about NPCs? liquid_handler::handle_all_liquid( newit, PICKUP_RANGE ); } else { item tmp( newit ); @@ -2346,16 +2350,16 @@ void remove_ammo( item &dis_item, player &p ) if( dis_item.has_flag( flag_NO_UNLOAD ) ) { return; } - if( dis_item.is_gun() && dis_item.ammo_current() != "null" ) { + if( dis_item.is_gun() && !dis_item.ammo_current().is_null() ) { item ammodrop( dis_item.ammo_current(), calendar::turn ); ammodrop.charges = dis_item.charges; drop_or_handle( ammodrop, p ); dis_item.charges = 0; } - if( dis_item.is_tool() && dis_item.charges > 0 && dis_item.ammo_current() != "null" ) { + if( dis_item.is_tool() && dis_item.charges > 0 && !dis_item.ammo_current().is_null() ) { item ammodrop( dis_item.ammo_current(), calendar::turn ); ammodrop.charges = dis_item.charges; - if( dis_item.ammo_current() == "plut_cell" ) { + if( dis_item.ammo_current() == itype_plut_cell ) { ammodrop.charges /= PLUTONIUM_CHARGES; } drop_or_handle( ammodrop, p ); diff --git a/src/crafting_gui.cpp b/src/crafting_gui.cpp index e0d5a837c5bb2..b2867fa6fa5a2 100644 --- a/src/crafting_gui.cpp +++ b/src/crafting_gui.cpp @@ -435,7 +435,7 @@ const recipe *select_crafting_recipe( int &batch_size ) const auto &req = current[line]->simple_requirements(); draw_can_craft_indicator( w_head, *current[line] ); - wrefresh( w_head ); + wnoutrefresh( w_head ); int ypos = 0; @@ -457,7 +457,7 @@ const recipe *select_crafting_recipe( int &batch_size ) auto books_with_recipe = g->u.get_books_for_recipe( crafting_inv, current[line] ); std::string enumerated_books = enumerate_as_string( books_with_recipe.begin(), books_with_recipe.end(), - []( itype_id type_id ) { + []( const itype_id & type_id ) { return colorize( item::nname( type_id ), c_cyan ); } ); const std::string text = string_format( _( "Written in: %s" ), enumerated_books ); @@ -561,7 +561,7 @@ const recipe *select_crafting_recipe( int &batch_size ) } draw_scrollbar( w_data, line, dataLines, recmax, point_zero ); - wrefresh( w_data ); + wnoutrefresh( w_data ); if( isWide && !current.empty() ) { item_info_data data = item_info_data_from_recipe( current[line], count, item_info_scroll ); @@ -575,7 +575,7 @@ const recipe *select_crafting_recipe( int &batch_size ) if( cursor_pos ) { // place the cursor at the selected item name as expected by screen readers wmove( w_data, cursor_pos.value() ); - wrefresh( w_data ); + wnoutrefresh( w_data ); } } ); @@ -929,8 +929,8 @@ const recipe *select_crafting_recipe( int &batch_size ) std::string peek_related_recipe( const recipe *current, const recipe_subset &available ) { auto compare_second = - []( const std::pair &a, - const std::pair &b ) { + []( const std::pair &a, + const std::pair &b ) { return localized_compare( a.second, b.second ); }; @@ -1098,7 +1098,7 @@ static void draw_recipe_tabs( const catacurses::window &w, const std::string &ta break; } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_recipe_subtabs( const catacurses::window &w, const std::string &tab, @@ -1145,7 +1145,7 @@ static void draw_recipe_subtabs( const catacurses::window &w, const std::string break; } - wrefresh( w ); + wnoutrefresh( w ); } template diff --git a/src/creature.cpp b/src/creature.cpp index 9b616fe859dce..6abe0c9b39acd 100644 --- a/src/creature.cpp +++ b/src/creature.cpp @@ -46,6 +46,8 @@ #include "vehicle.h" #include "vpart_position.h" +static const anatomy_id anatomy_human_anatomy( "human_anatomy" ); + static const efftype_id effect_blind( "blind" ); static const efftype_id effect_bounced( "bounced" ); static const efftype_id effect_downed( "downed" ); @@ -62,9 +64,12 @@ static const efftype_id effect_stunned( "stunned" ); static const efftype_id effect_tied( "tied" ); static const efftype_id effect_zapped( "zapped" ); -const std::map Creature::size_map = { - {"TINY", MS_TINY}, {"SMALL", MS_SMALL}, {"MEDIUM", MS_MEDIUM}, - {"LARGE", MS_LARGE}, {"HUGE", MS_HUGE} +const std::map Creature::size_map = { + {"TINY", creature_size::tiny}, + {"SMALL", creature_size::small}, + {"MEDIUM", creature_size::medium}, + {"LARGE", creature_size::large}, + {"HUGE", creature_size::huge} }; const std::set Creature::cmat_flesh{ @@ -222,7 +227,7 @@ bool Creature::sees( const Creature &critter ) const if( wanted_range <= 1 && ( posz() == critter.posz() || g->m.sees( pos(), critter.pos(), 1 ) ) ) { return visible( ch ); } else if( ( wanted_range > 1 && critter.digging() ) || - ( critter.has_flag( MF_NIGHT_INVISIBILITY ) && g->m.light_at( critter.pos() ) <= LL_LOW ) || + ( critter.has_flag( MF_NIGHT_INVISIBILITY ) && g->m.light_at( critter.pos() ) <= lit_level::LOW ) || ( critter.is_underwater() && !is_underwater() && g->m.is_divable( critter.pos() ) ) || ( g->m.has_flag_ter_or_furn( TFLAG_HIDE_PLACE, critter.pos() ) && !( std::abs( posx() - critter.posx() ) <= 1 && std::abs( posy() - critter.posy() ) <= 1 && @@ -230,25 +235,25 @@ bool Creature::sees( const Creature &critter ) const return false; } if( ch != nullptr ) { - if( ch->movement_mode_is( CMM_CROUCH ) ) { + if( ch->is_crouching() ) { const int coverage = g->m.obstacle_coverage( pos(), critter.pos() ); if( coverage < 30 ) { return sees( critter.pos(), critter.is_avatar() ) && visible( ch ); } float size_modifier = 1.0; switch( ch->get_size() ) { - case MS_TINY: + case creature_size::tiny: size_modifier = 2.0; break; - case MS_SMALL: + case creature_size::small: size_modifier = 1.4; break; - case MS_MEDIUM: + case creature_size::medium: break; - case MS_LARGE: + case creature_size::large: size_modifier = 0.6; break; - case MS_HUGE: + case creature_size::huge: size_modifier = 0.15; break; } @@ -335,7 +340,6 @@ Creature *Creature::auto_find_hostile_target( int range, int &boo_hoo, int area vehicle *in_veh = is_fake() ? veh_pointer_or_null( g->m.veh_at( pos() ) ) : nullptr; if( pldist < iff_dist && sees( g->u ) ) { area_iff = area > 0; - angle_iff = true; // Player inside vehicle won't be hit by shots from the roof, // so we can fire "through" them just fine. const optional_vpart_position vp = g->m.veh_at( u.pos() ); @@ -464,15 +468,15 @@ Creature *Creature::auto_find_hostile_target( int range, int &boo_hoo, int area int Creature::size_melee_penalty() const { switch( get_size() ) { - case MS_TINY: + case creature_size::tiny: return 30; - case MS_SMALL: + case creature_size::small: return 15; - case MS_MEDIUM: + case creature_size::medium: return 0; - case MS_LARGE: + case creature_size::large: return -10; - case MS_HUGE: + case creature_size::huge: return -20; } @@ -483,6 +487,13 @@ int Creature::size_melee_penalty() const int Creature::deal_melee_attack( Creature *source, int hitroll ) { int hit_spread = hitroll - dodge_roll() - size_melee_penalty(); + if( has_flag( MF_IMMOBILE ) ) { + // Under normal circumstances, even a clumsy person would + // not miss a turret. It should, however, be possible to + // miss a smaller target, especially when wielding a + // clumsy weapon or when severely encumbered. + hit_spread += 40; + } // If attacker missed call targets on_dodge event if( hit_spread <= 0 && source != nullptr && !source->is_hallucination() ) { @@ -496,7 +507,7 @@ void Creature::deal_melee_hit( Creature *source, int hit_spread, bool critical_h const damage_instance &dam, dealt_damage_instance &dealt_dam ) { if( source == nullptr || source->is_hallucination() ) { - dealt_dam.bp_hit = anatomy_id( "human_anatomy" )->random_body_part()->token; + dealt_dam.bp_hit = anatomy_id( "human_anatomy" )->random_body_part(); return; } // If carrying a rider, there is a chance the hits may hit rider instead. @@ -513,7 +524,6 @@ void Creature::deal_melee_hit( Creature *source, int hit_spread, bool critical_h } damage_instance d = dam; // copy, since we will mutate in block_hit bodypart_id bp_hit = convert_bp( select_body_part( source, hit_spread ) ).id(); - const body_part bp_token = bp_hit->token; block_hit( source, bp_hit, d ); // Bashing critical @@ -546,7 +556,7 @@ void Creature::deal_melee_hit( Creature *source, int hit_spread, bool critical_h on_hit( source, bp_hit ); // trigger on-gethit events dealt_dam = deal_damage( source, bp_hit, d ); - dealt_dam.bp_hit = bp_token; + dealt_dam.bp_hit = bp_hit; } /** @@ -616,22 +626,22 @@ void Creature::deal_projectile_attack( Creature *source, dealt_projectile_attack add_effect( effect_bounced, 1_turns ); } - body_part bp_hit; + bodypart_id bp_hit; double hit_value = missed_by + rng_float( -0.5, 0.5 ); // Headshots considered elsewhere if( hit_value <= 0.4 || magic ) { - bp_hit = bp_torso; + bp_hit = bodypart_id( "torso" ); } else if( one_in( 4 ) ) { if( one_in( 2 ) ) { - bp_hit = bp_leg_l; + bp_hit = bodypart_id( "leg_l" ); } else { - bp_hit = bp_leg_r; + bp_hit = bodypart_id( "leg_r" ); } } else { if( one_in( 2 ) ) { - bp_hit = bp_arm_l; + bp_hit = bodypart_id( "arm_l" ); } else { - bp_hit = bp_arm_r; + bp_hit = bodypart_id( "arm_r" ); } } @@ -648,7 +658,7 @@ void Creature::deal_projectile_attack( Creature *source, dealt_projectile_attack gmtSCTcolor = m_headshot; damage_mult *= rng_float( 0.95, 1.05 ); damage_mult *= crit_multiplier; - bp_hit = bp_head; // headshot hits the head, of course + bp_hit = bodypart_id( "head" ); // headshot hits the head, of course } else if( goodhit < accuracy_critical && max_damage * crit_multiplier > get_hp_max( hp_torso ) ) { message = _( "Critical!" ); gmtSCTcolor = m_critical; @@ -684,14 +694,13 @@ void Creature::deal_projectile_attack( Creature *source, dealt_projectile_attack if( proj_effects.count( "NOGIB" ) > 0 ) { float dmg_ratio = static_cast( impact.total_damage() ) / get_hp_max( player::bp_to_hp( - bp_hit ) ); + bp_hit->token ) ); if( dmg_ratio > 1.25f ) { impact.mult_damage( 1.0f / dmg_ratio ); } } - const bodypart_id bp_hit_id = convert_bp( bp_hit ).id(); - dealt_dam = deal_damage( source, bp_hit_id, impact ); + dealt_dam = deal_damage( source, bp_hit, impact ); dealt_dam.bp_hit = bp_hit; // Apply ammo effects to target. @@ -718,19 +727,19 @@ void Creature::deal_projectile_attack( Creature *source, dealt_projectile_attack } if( proj.proj_effects.count( "INCENDIARY" ) ) { if( made_of( material_id( "veggy" ) ) || made_of_any( cmat_flammable ) ) { - add_effect( effect_onfire, rng( 2_turns, 6_turns ), bp_hit ); + add_effect( effect_onfire, rng( 2_turns, 6_turns ), bp_hit->token ); } else if( made_of_any( cmat_flesh ) && one_in( 4 ) ) { - add_effect( effect_onfire, rng( 1_turns, 4_turns ), bp_hit ); + add_effect( effect_onfire, rng( 1_turns, 4_turns ), bp_hit->token ); } } else if( proj.proj_effects.count( "IGNITE" ) ) { if( made_of( material_id( "veggy" ) ) || made_of_any( cmat_flammable ) ) { - add_effect( effect_onfire, 6_turns, bp_hit ); + add_effect( effect_onfire, 6_turns, bp_hit->token ); } else if( made_of_any( cmat_flesh ) ) { - add_effect( effect_onfire, 10_turns, bp_hit ); + add_effect( effect_onfire, 10_turns, bp_hit->token ); } } - if( bp_hit == bp_head && proj_effects.count( "BLINDS_EYES" ) ) { + if( bp_hit == bodypart_id( "head" ) && proj_effects.count( "BLINDS_EYES" ) ) { // TODO: Change this to require bp_eyes add_env_effect( effect_blind, bp_eyes, 5, rng( 3_turns, 10_turns ) ); } @@ -752,19 +761,19 @@ void Creature::deal_projectile_attack( Creature *source, dealt_projectile_attack } if( stun_strength > 0 ) { switch( get_size() ) { - case MS_TINY: + case creature_size::tiny: stun_strength *= 4; break; - case MS_SMALL: + case creature_size::small: stun_strength *= 2; break; - case MS_MEDIUM: + case creature_size::medium: default: break; - case MS_LARGE: + case creature_size::large: stun_strength /= 2; break; - case MS_HUGE: + case creature_size::huge: stun_strength /= 4; break; } @@ -1399,8 +1408,6 @@ int Creature::get_armor_bullet_bonus() const { return armor_bullet_bonus; } - - int Creature::get_speed() const { return get_speed_base() + get_speed_bonus(); @@ -1419,7 +1426,7 @@ anatomy_id Creature::get_anatomy() const return creature_anatomy; } -void Creature::set_anatomy( anatomy_id anat ) +void Creature::set_anatomy( const anatomy_id &anat ) { creature_anatomy = anat; } @@ -1627,19 +1634,19 @@ units::mass Creature::weight_capacity() const { units::mass base_carry = 13_kilogram; switch( get_size() ) { - case MS_TINY: + case creature_size::tiny: base_carry /= 4; break; - case MS_SMALL: + case creature_size::small: base_carry /= 2; break; - case MS_MEDIUM: + case creature_size::medium: default: break; - case MS_LARGE: + case creature_size::large: base_carry *= 2; break; - case MS_HUGE: + case creature_size::huge: base_carry *= 4; break; } @@ -1686,7 +1693,7 @@ body_part Creature::select_body_part( Creature *source, int hit_roll ) const add_msg( m_debug, "target size = %d", get_size() ); add_msg( m_debug, "difference = %d", szdif ); - return human_anatomy->select_body_part( szdif, hit_roll )->token; + return anatomy_human_anatomy->select_body_part( szdif, hit_roll )->token; } void Creature::add_damage_over_time( const damage_over_time_data &DoT ) diff --git a/src/creature.h b/src/creature.h index 6823212c304f6..cf03d0ee2a10a 100644 --- a/src/creature.h +++ b/src/creature.h @@ -51,14 +51,146 @@ struct dealt_projectile_attack; struct pathfinding_settings; struct trap; -enum m_size : int { - MS_TINY = 1, // Squirrel - MS_SMALL, // Dog - MS_MEDIUM, // Human - MS_LARGE, // Cow - MS_HUGE // TAAAANK +enum class creature_size : int { + // Keep it starting at 1 - damage done to monsters depends on it + // Squirrel + tiny = 1, + // Dog + small, + // Human + medium, + // Cow + large, + // TAAAANK + huge }; +using I = std::underlying_type_t; +constexpr I operator+( const creature_size lhs, const creature_size rhs ) +{ + return static_cast( lhs ) + static_cast( rhs ); +} + +constexpr I operator+( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) + rhs; +} + +constexpr I operator+( const I lhs, const creature_size rhs ) +{ + return lhs + static_cast( rhs ); +} + +constexpr I operator-( const creature_size lhs, const creature_size rhs ) +{ + return static_cast( lhs ) - static_cast( rhs ); +} + +constexpr I operator-( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) - rhs; +} + +constexpr I operator-( const I lhs, const creature_size rhs ) +{ + return lhs - static_cast( rhs ); +} + +constexpr I operator*( const creature_size lhs, const creature_size rhs ) +{ + return static_cast( lhs ) * static_cast( rhs ); +} + +constexpr I operator*( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) * rhs; +} + +constexpr I operator*( const I lhs, const creature_size rhs ) +{ + return lhs * static_cast( rhs ); +} + +constexpr I operator/( const creature_size lhs, const creature_size rhs ) +{ + return static_cast( lhs ) / static_cast( rhs ); +} + +constexpr I operator/( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) / rhs; +} + +constexpr bool operator<=( const creature_size lhs, const creature_size rhs ) +{ + return static_cast( lhs ) <= static_cast( rhs ); +} + +constexpr bool operator<=( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) <= rhs; +} + +constexpr bool operator<=( const I lhs, const creature_size rhs ) +{ + return lhs <= static_cast( rhs ); +} + +constexpr bool operator<( const creature_size lhs, const creature_size rhs ) +{ + return static_cast( lhs ) < static_cast( rhs ); +} + +constexpr bool operator<( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) < rhs; +} + +constexpr bool operator<( const I lhs, const creature_size rhs ) +{ + return lhs < static_cast( rhs ); +} + +constexpr bool operator>=( const creature_size lhs, const creature_size rhs ) +{ + return static_cast( lhs ) >= static_cast( rhs ); +} + +constexpr bool operator>=( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) >= rhs; +} + +constexpr bool operator>=( const I lhs, const creature_size rhs ) +{ + return lhs >= static_cast( rhs ); +} + +constexpr bool operator>( const creature_size lhs, const creature_size rhs ) +{ + return static_cast( lhs ) > static_cast( rhs ); +} + +constexpr bool operator>( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) > rhs; +} + +constexpr bool operator>( const I lhs, const creature_size rhs ) +{ + return lhs > static_cast( rhs ); +} + +constexpr bool operator==( const creature_size lhs, const I rhs ) +{ + return static_cast( lhs ) == rhs; +} + +constexpr bool operator==( const I lhs, const creature_size rhs ) +{ + return lhs == static_cast( rhs ); +} + enum FacingDirection { FD_NONE = 0, FD_LEFT = 1, @@ -70,7 +202,7 @@ class Creature public: virtual ~Creature(); - static const std::map size_map; + static const std::map size_map; // Like disp_name, but without any "the" virtual std::string get_name() const = 0; @@ -428,7 +560,7 @@ class Creature virtual float get_hit() const; virtual int get_speed() const; - virtual m_size get_size() const = 0; + virtual creature_size get_size() const = 0; virtual int get_hp( hp_part bp ) const = 0; virtual int get_hp() const = 0; virtual int get_hp_max( hp_part bp ) const = 0; @@ -453,7 +585,7 @@ class Creature anatomy_id creature_anatomy = anatomy_id( "default_anatomy" ); anatomy_id get_anatomy() const; - void set_anatomy( anatomy_id anat ); + void set_anatomy( const anatomy_id &anat ); bodypart_id get_random_body_part( bool main = false ) const; /** @@ -741,8 +873,11 @@ class Creature virtual std::string extended_description() const = 0; + /** Creature symbol background color */ virtual nc_color symbol_color() const = 0; + /** Creature symbol color */ virtual nc_color basic_symbol_color() const = 0; + /** Creature symbol */ virtual const std::string &symbol() const = 0; virtual bool is_symbol_highlighted() const; diff --git a/src/creature_tracker.cpp b/src/creature_tracker.cpp index 64a3411bf9635..dabdee6512878 100644 --- a/src/creature_tracker.cpp +++ b/src/creature_tracker.cpp @@ -52,7 +52,7 @@ shared_ptr_fast Creature_tracker::from_temporary_id( const int id ) } } -bool Creature_tracker::add( shared_ptr_fast critter_ptr ) +bool Creature_tracker::add( const shared_ptr_fast &critter_ptr ) { assert( critter_ptr ); monster &critter = *critter_ptr; @@ -90,7 +90,7 @@ bool Creature_tracker::add( shared_ptr_fast critter_ptr ) return true; } -void Creature_tracker::add_to_faction_map( shared_ptr_fast critter_ptr ) +void Creature_tracker::add_to_faction_map( const shared_ptr_fast &critter_ptr ) { assert( critter_ptr ); monster &critter = *critter_ptr; diff --git a/src/creature_tracker.h b/src/creature_tracker.h index 936aea37ade56..b783bae394208 100644 --- a/src/creature_tracker.h +++ b/src/creature_tracker.h @@ -20,7 +20,7 @@ class Creature_tracker { private: - void add_to_faction_map( shared_ptr_fast critter ); + void add_to_faction_map( const shared_ptr_fast &critter ); class weak_ptr_comparator { @@ -64,7 +64,7 @@ class Creature_tracker * @return Whether the operation was successful. It may fail if there is already * another monster at the location of the new monster. */ - bool add( shared_ptr_fast critter ); + bool add( const shared_ptr_fast &critter ); size_t size() const; /** Updates the position of the given monster to the given point. Returns whether the operation * was successful. */ diff --git a/src/cursesdef.h b/src/cursesdef.h index 75fb370a23841..7be9ee37791d1 100644 --- a/src/cursesdef.h +++ b/src/cursesdef.h @@ -96,8 +96,10 @@ void wborder( const window &win, chtype ls, chtype rs, chtype ts, chtype bs, cht chtype bl, chtype br ); void mvwhline( const window &win, const point &p, chtype ch, int n ); void mvwvline( const window &win, const point &p, chtype ch, int n ); +void wnoutrefresh( const window &win ); void wrefresh( const window &win ); void refresh(); +void doupdate(); void wredrawln( const window &win, int beg_line, int num_lines ); void mvwprintw( const window &win, const point &p, const std::string &text ); template diff --git a/src/cursesport.cpp b/src/cursesport.cpp index 7de5520050de0..adfbb6548a0a7 100644 --- a/src/cursesport.cpp +++ b/src/cursesport.cpp @@ -181,8 +181,7 @@ void catacurses::mvwvline( const window &win, const point &p, chtype ch, int n ) wattroff( win, BORDER_COLOR ); } -//Refreshes a window, causing it to redraw on top. -void catacurses::wrefresh( const window &win_ ) +void catacurses::wnoutrefresh( const window &win_ ) { cata_cursesport::WINDOW *const win = win_.get(); // TODO: log win == nullptr @@ -191,12 +190,24 @@ void catacurses::wrefresh( const window &win_ ) } } +//Refreshes a window, causing it to redraw on top. +void catacurses::wrefresh( const window &win ) +{ + wnoutrefresh( win ); + doupdate(); +} + //Refreshes the main window, causing it to redraw on top. void catacurses::refresh() { return wrefresh( stdscr ); } +void catacurses::doupdate() +{ + refresh_display(); +} + void catacurses::wredrawln( const window &/*win*/, int /*beg_line*/, int /*num_lines*/ ) { /** @@ -381,7 +392,6 @@ void catacurses::werase( const window &win_ ) } win->draw = true; wmove( win_, point_zero ); - // wrefresh(win); handle_additional_window_clear( win ); } diff --git a/src/cursesport.h b/src/cursesport.h index c024657aeeaa0..8ba2e80c6fe42 100644 --- a/src/cursesport.h +++ b/src/cursesport.h @@ -84,6 +84,7 @@ void clear_window_area( const catacurses::window &win ); int projected_window_width(); int projected_window_height(); bool handle_resize( int w, int h ); +void resize_term( int cell_w, int cell_h ); int get_scaling_factor(); #endif diff --git a/src/damage.cpp b/src/damage.cpp index 3c70a3f1269d3..82fb8dc9275b3 100644 --- a/src/damage.cpp +++ b/src/damage.cpp @@ -163,6 +163,7 @@ void damage_instance::deserialize( JsonIn &jsin ) dealt_damage_instance::dealt_damage_instance() { dealt_dams.fill( 0 ); + bp_hit = bodypart_id( "torso" ); } void dealt_damage_instance::set_damage( damage_type dt, int amount ) @@ -373,7 +374,6 @@ damage_instance load_damage_instance( const JsonArray &jarr ) return load_damage_instance_inherit( jarr, blank_damage_instance() ); } - damage_instance load_damage_instance_inherit( const JsonObject &jo, const damage_instance &parent ) { damage_instance di; diff --git a/src/damage.h b/src/damage.h index 3da738de7efa0..d0a84ed070615 100644 --- a/src/damage.h +++ b/src/damage.h @@ -105,7 +105,7 @@ class damage_over_time_data struct dealt_damage_instance { std::array dealt_dams; - body_part bp_hit; + bodypart_id bp_hit; dealt_damage_instance(); void set_damage( damage_type dt, int amount ); diff --git a/src/debug.cpp b/src/debug.cpp index da700717aac16..1bcca7b5e61d8 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -1261,7 +1261,7 @@ std::string game_info::mods_loaded() 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 { + 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() ); } ); diff --git a/src/debug.h b/src/debug.h index 79a7028858358..4f8ab2ffc385a 100644 --- a/src/debug.h +++ b/src/debug.h @@ -152,7 +152,7 @@ enum DebugClass { DC_ALL = ( 1 << 30 ) - 1 }; -enum class DebugOutput { +enum class DebugOutput : int { std_err, file, }; diff --git a/src/debug_menu.cpp b/src/debug_menu.cpp index 4c34d0cd6b9de..7e546052c3215 100644 --- a/src/debug_menu.cpp +++ b/src/debug_menu.cpp @@ -75,6 +75,7 @@ #include "player.h" #include "pldata.h" #include "point.h" +#include "popup.h" #include "recipe_dictionary.h" #include "rng.h" #include "sounds.h" @@ -86,6 +87,7 @@ #include "translations.h" #include "type_id.h" #include "ui.h" +#include "ui_manager.h" #include "units.h" #include "veh_type.h" #include "vitamin.h" @@ -441,7 +443,6 @@ void spawn_nested_mapgen() target_map.save(); g->load_npcs(); g->m.invalidate_map_cache( g->get_levz() ); - g->refresh_all(); } } @@ -476,7 +477,8 @@ void character_edit_menu() data << np->myclass.obj().get_name() << "; " << npc_attitude_name( np->get_attitude() ) << "; " << ( np->get_faction() ? np->get_faction()->name : _( "no faction" ) ) << "; " << - ( np->get_faction() ? np->get_faction()->currency : _( "no currency" ) ) << "; " << + ( np->get_faction() ? np->get_faction()->currency->nname( 1 ) : _( "no currency" ) ) + << "; " << "api: " << np->get_faction_ver() << std::endl; if( np->has_destination() ) { data << string_format( _( "Destination: %d:%d:%d (%s)" ), @@ -589,7 +591,7 @@ void character_edit_menu() } p.worn.clear(); p.inv.clear(); - p.weapon = item(); + p.remove_weapon(); break; case D_ITEM_WORN: { item_location loc = game_menus::inv::titled_menu( g->u, _( "Make target equip" ) ); @@ -602,6 +604,7 @@ void character_edit_menu() p.worn.push_back( to_wear ); } else if( !to_wear.is_null() ) { p.weapon = to_wear; + g->events().send( p.getID(), p.weapon.typeId() ); } } break; @@ -904,7 +907,6 @@ void character_edit_menu() p.add_effect( effect_flu, 1000_minutes ); break; } - break; case D_ASTHMA: { p.set_mutation( trait_ASTHMA ); p.add_effect( effect_asthma, 10_minutes ); @@ -1094,13 +1096,19 @@ void draw_benchmark( const int max_difference ) auto end_tick = std::chrono::steady_clock::now(); int64_t difference = 0; int draw_counter = 0; + + static_popup popup; + popup.on_top( true ).message( "%s", _( "Benchmark in progress…" ) ); + while( true ) { end_tick = std::chrono::steady_clock::now(); difference = std::chrono::duration_cast( end_tick - start_tick ).count(); if( difference >= max_difference ) { break; } - g->draw(); + g->invalidate_main_ui_adaptor(); + ui_manager::redraw_invalidated(); + refresh_display(); draw_counter++; } @@ -1144,7 +1152,6 @@ void debug() } } - g->refresh_all(); avatar &u = g->u; map &m = g->m; switch( action ) { @@ -1246,6 +1253,7 @@ void debug() if( get_option( "STATS_THROUGH_KILLS" ) ) { add_msg( m_info, _( "Kill xp: %d" ), u.kill_xp() ); } + g->invalidate_main_ui_adaptor(); g->disp_NPCs(); break; } @@ -1468,19 +1476,22 @@ void debug() case DEBUG_SHOW_SOUND: { #if defined(TILES) - const point offset { - u.view_offset.xy() + point( POSX - u.posx(), POSY - u.posy() ) - }; - g->draw_ter(); - auto sounds_to_draw = sounds::get_monster_sounds(); - for( const auto &sound : sounds_to_draw.first ) { - mvwputch( g->w_terrain, offset + sound.xy(), c_yellow, '?' ); - } - for( const auto &sound : sounds_to_draw.second ) { - mvwputch( g->w_terrain, offset + sound.xy(), c_red, '?' ); - } - wrefresh( g->w_terrain ); - g->draw_panels(); + const auto &sounds_to_draw = sounds::get_monster_sounds(); + + shared_ptr_fast sound_cb = make_shared_fast( [&]() { + const point offset { + u.view_offset.xy() + point( POSX - u.posx(), POSY - u.posy() ) + }; + for( const auto &sound : sounds_to_draw.first ) { + mvwputch( g->w_terrain, offset + sound.xy(), c_yellow, '?' ); + } + for( const auto &sound : sounds_to_draw.second ) { + mvwputch( g->w_terrain, offset + sound.xy(), c_red, '?' ); + } + } ); + g->add_draw_callback( sound_cb ); + + ui_manager::redraw(); inp_mngr.wait_for_any_key(); #else popup( _( "This binary was not compiled with tiles support." ) ); @@ -1652,7 +1663,6 @@ void debug() MapExtras::apply_function( mx_str[mx_choice], mx_map, where_sm ); g->load_npcs(); g->m.invalidate_map_cache( g->get_levz() ); - g->refresh_all(); } } break; @@ -1812,9 +1822,7 @@ void debug() MapExtras::debug_spawn_test(); break; } - catacurses::erase(); m.invalidate_map_cache( g->get_levz() ); - g->refresh_all(); } } // namespace debug_menu diff --git a/src/dependency_tree.cpp b/src/dependency_tree.cpp index 5834e00de6790..43cf89ff9b239 100644 --- a/src/dependency_tree.cpp +++ b/src/dependency_tree.cpp @@ -18,7 +18,8 @@ dependency_node::dependency_node(): index( -1 ), lowlink( -1 ), on_stack( false availability = true; } -dependency_node::dependency_node( mod_id _key ): index( -1 ), lowlink( -1 ), on_stack( false ) +dependency_node::dependency_node( const mod_id &_key ): index( -1 ), lowlink( -1 ), + on_stack( false ) { key = _key; availability = true; @@ -262,14 +263,14 @@ std::vector dependency_node::get_dependents_as_nodes() dependency_tree::dependency_tree() = default; -void dependency_tree::init( std::map > key_dependency_map ) +void dependency_tree::init( const std::map > &key_dependency_map ) { build_node_map( key_dependency_map ); build_connections( key_dependency_map ); } void dependency_tree::build_node_map( - std::map > key_dependency_map ) + const std::map > &key_dependency_map ) { for( auto &elem : key_dependency_map ) { // check to see if the master node map knows the key @@ -280,7 +281,7 @@ void dependency_tree::build_node_map( } void dependency_tree::build_connections( - std::map > key_dependency_map ) + const std::map > &key_dependency_map ) { for( auto &elem : key_dependency_map ) { const auto iter = master_node_map.find( elem.first ); @@ -311,7 +312,7 @@ void dependency_tree::build_connections( elem.second.inherit_errors(); } } -std::vector dependency_tree::get_dependencies_of_X_as_strings( mod_id key ) +std::vector dependency_tree::get_dependencies_of_X_as_strings( const mod_id &key ) { const auto iter = master_node_map.find( key ); if( iter != master_node_map.end() ) { @@ -319,7 +320,7 @@ std::vector dependency_tree::get_dependencies_of_X_as_strings( mod_id ke } return std::vector(); } -std::vector dependency_tree::get_dependencies_of_X_as_nodes( mod_id key ) +std::vector dependency_tree::get_dependencies_of_X_as_nodes( const mod_id &key ) { const auto iter = master_node_map.find( key ); if( iter != master_node_map.end() ) { @@ -328,7 +329,7 @@ std::vector dependency_tree::get_dependencies_of_X_as_nodes( return std::vector(); } -std::vector dependency_tree::get_dependents_of_X_as_strings( mod_id key ) +std::vector dependency_tree::get_dependents_of_X_as_strings( const mod_id &key ) { const auto iter = master_node_map.find( key ); if( iter != master_node_map.end() ) { @@ -337,7 +338,7 @@ std::vector dependency_tree::get_dependents_of_X_as_strings( mod_id key return std::vector(); } -std::vector dependency_tree::get_dependents_of_X_as_nodes( mod_id key ) +std::vector dependency_tree::get_dependents_of_X_as_nodes( const mod_id &key ) { const auto iter = master_node_map.find( key ); if( iter != master_node_map.end() ) { @@ -346,7 +347,7 @@ std::vector dependency_tree::get_dependents_of_X_as_nodes( mo return std::vector(); } -bool dependency_tree::is_available( mod_id key ) +bool dependency_tree::is_available( const mod_id &key ) { const auto iter = master_node_map.find( key ); if( iter != master_node_map.end() ) { @@ -361,7 +362,7 @@ void dependency_tree::clear() master_node_map.clear(); } -dependency_node *dependency_tree::get_node( mod_id key ) +dependency_node *dependency_tree::get_node( const mod_id &key ) { const auto iter = master_node_map.find( key ); if( iter != master_node_map.end() ) { diff --git a/src/dependency_tree.h b/src/dependency_tree.h index 99fba3bb109d2..2042ca7ec93fc 100644 --- a/src/dependency_tree.h +++ b/src/dependency_tree.h @@ -29,7 +29,7 @@ class dependency_node bool on_stack; dependency_node(); - dependency_node( mod_id _key ); + dependency_node( const mod_id &key ); void add_parent( dependency_node *parent ); void add_child( dependency_node *child ); @@ -55,26 +55,26 @@ class dependency_tree public: dependency_tree(); - void init( std::map > key_dependency_map ); + void init( const std::map > &key_dependency_map ); void clear(); // tree traversal // Upward by key - std::vector get_dependencies_of_X_as_strings( mod_id key ); - std::vector get_dependencies_of_X_as_nodes( mod_id key ); + std::vector get_dependencies_of_X_as_strings( const mod_id &key ); + std::vector get_dependencies_of_X_as_nodes( const mod_id &key ); // Downward by key - std::vector< mod_id > get_dependents_of_X_as_strings( mod_id key ); - std::vector< dependency_node * > get_dependents_of_X_as_nodes( mod_id key ); + std::vector< mod_id > get_dependents_of_X_as_strings( const mod_id &key ); + std::vector< dependency_node * > get_dependents_of_X_as_nodes( const mod_id &key ); - bool is_available( mod_id key ); - dependency_node *get_node( mod_id key ); + bool is_available( const mod_id &key ); + dependency_node *get_node( const mod_id &key ); std::map master_node_map; private: // Don't need to be called directly. Only reason to call these are during initialization phase. - void build_node_map( std::map > key_dependency_map ); - void build_connections( std::map > key_dependency_map ); + void build_node_map( const std::map > &key_dependency_map ); + void build_connections( const std::map > &key_dependency_map ); /* Cyclic Dependency checks using Tarjan's Strongly Connected Components algorithm diff --git a/src/descriptions.cpp b/src/descriptions.cpp index a301d8caa4245..25651b16dd1e6 100644 --- a/src/descriptions.cpp +++ b/src/descriptions.cpp @@ -86,7 +86,7 @@ void game::extended_description( const tripoint &p ) mvwputch( w_head, point( i, top - 1 ), c_white, LINE_OXOX ); } - wrefresh( w_head ); + wnoutrefresh( w_head ); std::string desc; // Allow looking at invisible tiles - player may want to examine hallucinations etc. @@ -127,7 +127,7 @@ void game::extended_description( const tripoint &p ) werase( w_main ); fold_and_print_from( w_main, point_zero, width, 0, c_light_gray, desc ); - wrefresh( w_main ); + wnoutrefresh( w_main ); } ); do { diff --git a/src/dialogue.h b/src/dialogue.h index 14a9073b8de90..4f5921be746c0 100644 --- a/src/dialogue.h +++ b/src/dialogue.h @@ -75,7 +75,7 @@ struct talk_topic { std::string id; /** If we're talking about an item, this should be its type. */ - itype_id item_type = "null"; + itype_id item_type = itype_id::NULL_ID(); /** Reason for denying a request. */ std::string reason; }; @@ -83,13 +83,13 @@ struct talk_topic { struct talk_effect_fun_t { private: std::function function; - std::vector> likely_rewards; + std::vector> likely_rewards; public: talk_effect_fun_t() = default; - talk_effect_fun_t( talkfunction_ptr ); - talk_effect_fun_t( std::function ); - talk_effect_fun_t( std::function ); + talk_effect_fun_t( const talkfunction_ptr & ); + talk_effect_fun_t( const std::function & ); + talk_effect_fun_t( const std::function & ); void set_companion_mission( const std::string &role_id ); void set_add_effect( const JsonObject &jo, const std::string &member, bool is_npc = false ); void set_remove_effect( const JsonObject &jo, const std::string &member, bool is_npc = false ); @@ -98,10 +98,10 @@ struct talk_effect_fun_t { void set_add_var( const JsonObject &jo, const std::string &member, bool is_npc = false ); void set_remove_var( const JsonObject &jo, const std::string &member, bool is_npc = false ); void set_adjust_var( const JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_u_buy_item( const std::string &item_name, int cost, int count, + void set_u_buy_item( const itype_id &item_name, int cost, int count, const std::string &container_name ); void set_u_spend_cash( int amount ); - void set_u_sell_item( const std::string &item_name, int cost, int count ); + void set_u_sell_item( const itype_id &item_name, int cost, int count ); void set_consume_item( const JsonObject &jo, const std::string &member, int count, bool is_npc = false ); void set_remove_item_with( const JsonObject &jo, const std::string &member, bool is_npc = false ); @@ -120,7 +120,7 @@ struct talk_effect_fun_t { void set_bulk_trade_accept( bool is_trade, bool is_npc = false ); void set_npc_gets_item( bool to_use ); void set_add_mission( const std::string &mission_id ); - const std::vector> &get_likely_rewards() const; + const std::vector> &get_likely_rewards() const; void set_u_buy_monster( const std::string &monster_type_id, int cost, int count, bool pacified, const translation &name ); void set_u_learn_recipe( const std::string &learned_recipe_id ); @@ -165,7 +165,7 @@ struct talk_effect_t { * Sets an effect to a function object and consequence to explicitly given one. */ void set_effect_consequence( const talk_effect_fun_t &fun, dialogue_consequence con ); - void set_effect_consequence( std::function ptr, dialogue_consequence con ); + void set_effect_consequence( const std::function &ptr, dialogue_consequence con ); void load_effect( const JsonObject &jo ); void parse_sub_effect( const JsonObject &jo ); @@ -237,7 +237,7 @@ struct dialogue { /** Missions that have been assigned by this npc to the player they currently speak to. */ std::vector missions_assigned; - talk_topic opt( dialogue_window &d_win, const talk_topic &topic ); + talk_topic opt( dialogue_window &d_win, const std::string &npc_name, const talk_topic &topic ); dialogue() = default; @@ -278,14 +278,14 @@ struct dialogue { * action. The response always succeeds. Consequence is based on function used. */ talk_response &add_response( const std::string &text, const std::string &r, - dialogue_fun_ptr effect_success, bool first = false ); + const dialogue_fun_ptr &effect_success, bool first = false ); /** * Add a simple response that switches the topic to the new one and executes the given * action. The response always succeeds. Consequence must be explicitly specified. */ talk_response &add_response( const std::string &text, const std::string &r, - std::function effect_success, + const std::function &effect_success, dialogue_consequence consequence, bool first = false ); /** * Add a simple response that switches the topic to the new one and sets the currently @@ -334,7 +334,7 @@ struct dynamic_line_t { dynamic_line_t() = default; dynamic_line_t( const std::string &line ); dynamic_line_t( const JsonObject &jo ); - dynamic_line_t( JsonArray ja ); + dynamic_line_t( const JsonArray &ja ); static dynamic_line_t from_member( const JsonObject &jo, const std::string &member_name ); std::string operator()( const dialogue &d ) const { @@ -381,7 +381,7 @@ class json_talk_repeat_response json_talk_repeat_response( const JsonObject &jo ); bool is_npc = false; bool include_containers = false; - std::vector for_item; + std::vector for_item; std::vector for_category; json_talk_response response; }; diff --git a/src/dialogue_win.cpp b/src/dialogue_win.cpp index 91efa417358b4..2a9cd209e6f9e 100644 --- a/src/dialogue_win.cpp +++ b/src/dialogue_win.cpp @@ -9,6 +9,7 @@ #include "output.h" #include "point.h" #include "translations.h" +#include "ui_manager.h" void dialogue_window::open_dialogue( bool text_only ) { @@ -16,11 +17,21 @@ void dialogue_window::open_dialogue( bool text_only ) this->text_only = true; return; } - int win_beginy = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 4 : 0; - int win_beginx = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 4 : 0; - int maxy = win_beginy ? TERMY - 2 * win_beginy : FULL_SCREEN_HEIGHT; - int maxx = win_beginx ? TERMX - 2 * win_beginx : FULL_SCREEN_WIDTH; - d_win = catacurses::newwin( maxy, maxx, point( win_beginx, win_beginy ) ); +} + +void dialogue_window::resize_dialogue( ui_adaptor &ui ) +{ + if( text_only ) { + ui.position( point_zero, point_zero ); + } else { + int win_beginy = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 4 : 0; + int win_beginx = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 4 : 0; + int maxy = win_beginy ? TERMY - 2 * win_beginy : FULL_SCREEN_HEIGHT; + int maxx = win_beginx ? TERMX - 2 * win_beginx : FULL_SCREEN_WIDTH; + d_win = catacurses::newwin( maxy, maxx, point( win_beginx, win_beginy ) ); + ui.position_from_window( d_win ); + } + yoffset = 0; } void dialogue_window::print_header( const std::string &name ) @@ -132,25 +143,13 @@ void dialogue_window::refresh_response_display() can_scroll_up = false; } -void dialogue_window::display_responses( const int hilight_lines, - const std::vector &responses, - const int &ch ) +void dialogue_window::handle_scrolling( const int ch ) { if( text_only ) { return; } -#if defined(__ANDROID__) - input_context ctxt( "DIALOGUE_CHOOSE_RESPONSE" ); - for( size_t i = 0; i < responses.size(); i++ ) { - ctxt.register_manual_key( 'a' + i ); - } - ctxt.register_manual_key( 'L', "Look at" ); - ctxt.register_manual_key( 'S', "Size up stats" ); - ctxt.register_manual_key( 'Y', "Yell" ); - ctxt.register_manual_key( 'O', "Check opinion" ); -#endif // adjust scrolling from the last key pressed - int win_maxy = getmaxy( d_win ); + const int win_maxy = getmaxy( d_win ); switch( ch ) { case KEY_DOWN: case KEY_NPAGE: @@ -167,6 +166,15 @@ void dialogue_window::display_responses( const int hilight_lines, default: break; } +} + +void dialogue_window::display_responses( const int hilight_lines, + const std::vector &responses ) +{ + if( text_only ) { + return; + } + const int win_maxy = getmaxy( d_win ); clear_window_texts(); print_history( hilight_lines ); can_scroll_down = print_responses( yoffset, responses ); @@ -177,5 +185,5 @@ void dialogue_window::display_responses( const int hilight_lines, if( can_scroll_down ) { mvwprintz( d_win, point( FULL_SCREEN_WIDTH - 2 - 2, win_maxy - 2 ), c_green, "vv" ); } - wrefresh( d_win ); + wnoutrefresh( d_win ); } diff --git a/src/dialogue_win.h b/src/dialogue_win.h index 0638fcfb0ff3a..931431d619ebe 100644 --- a/src/dialogue_win.h +++ b/src/dialogue_win.h @@ -12,18 +12,21 @@ using talk_data = std::pair; +class ui_adaptor; + class dialogue_window { public: dialogue_window() = default; void open_dialogue( bool text_only = false ); + void resize_dialogue( ui_adaptor &ui ); void print_header( const std::string &name ); bool text_only = false; void clear_window_texts(); - void display_responses( int hilight_lines, const std::vector &responses, - const int &ch ); + void handle_scrolling( int ch ); + void display_responses( int hilight_lines, const std::vector &responses ); void refresh_response_display(); /** * Folds and adds the folded text to @ref history. Returns the number of added lines. diff --git a/src/drawing_primitives.cpp b/src/drawing_primitives.cpp index b87e6738883d1..46551486f7189 100644 --- a/src/drawing_primitives.cpp +++ b/src/drawing_primitives.cpp @@ -8,7 +8,7 @@ #include "rng.h" #include "point.h" -void draw_line( std::functionset, const point &p1, const point &p2 ) +void draw_line( const std::function &set, const point &p1, const point &p2 ) { std::vector line = line_to( p1, p2, 0 ); for( auto &i : line ) { @@ -17,7 +17,7 @@ void draw_line( std::functionset, const point &p1, const set( p1 ); } -void draw_square( std::functionset, point p1, point p2 ) +void draw_square( const std::function &set, point p1, point p2 ) { if( p1.x > p2.x ) { std::swap( p1.x, p2.x ); @@ -32,7 +32,7 @@ void draw_square( std::functionset, point p1, point p2 ) } } -void draw_rough_circle( std::functionset, const point &p, int rad ) +void draw_rough_circle( const std::function &set, const point &p, int rad ) { for( int i = p.x - rad; i <= p.x + rad; i++ ) { for( int j = p.y - rad; j <= p.y + rad; j++ ) { @@ -43,7 +43,7 @@ void draw_rough_circle( std::functionset, const point &p, } } -void draw_circle( std::functionset, const rl_vec2d &p, double rad ) +void draw_circle( const std::function &set, const rl_vec2d &p, double rad ) { for( int i = p.x - rad - 1; i <= p.x + rad + 1; i++ ) { for( int j = p.y - rad - 1; j <= p.y + rad + 1; j++ ) { @@ -54,7 +54,7 @@ void draw_circle( std::functionset, const rl_vec2d &p, do } } -void draw_circle( std::functionset, const point &p, int rad ) +void draw_circle( const std::function &set, const point &p, int rad ) { for( int i = p.x - rad; i <= p.x + rad; i++ ) { for( int j = p.y - rad; j <= p.y + rad; j++ ) { diff --git a/src/drawing_primitives.h b/src/drawing_primitives.h index 840c65364ff68..93967a266cc5a 100644 --- a/src/drawing_primitives.h +++ b/src/drawing_primitives.h @@ -7,14 +7,14 @@ struct point; struct rl_vec2d; -void draw_line( std::functionset, const point &p1, const point &p2 ); +void draw_line( const std::function &set, const point &p1, const point &p2 ); -void draw_square( std::functionset, point p1, point p2 ); +void draw_square( const std::function &set, point p1, point p2 ); -void draw_rough_circle( std::functionset, const point &p, int rad ); +void draw_rough_circle( const std::function &set, const point &p, int rad ); -void draw_circle( std::functionset, const rl_vec2d &p, double rad ); +void draw_circle( const std::function &set, const rl_vec2d &p, double rad ); -void draw_circle( std::functionset, const point &p, int rad ); +void draw_circle( const std::function &set, const point &p, int rad ); #endif // CATA_SRC_DRAWING_PRIMITIVES_H diff --git a/src/dump.cpp b/src/dump.cpp index 196b55f1c4484..703bb07d5a825 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -54,22 +54,26 @@ bool game::dump_stats( const std::string &what, dump_mode mode, int scol = 0; // sorting column std::map test_npcs; - test_npcs[ "S1" ] = standard_npc( "S1", { 0, 0, 2 }, { "gloves_survivor", "mask_lsurvivor" }, - 4, 8, 10, 8, 10 /* DEX 10, PER 10 */ ); - test_npcs[ "S2" ] = standard_npc( "S2", { 0, 0, 3 }, { "gloves_fingerless", "sunglasses" }, - 4, 8, 8, 8, 10 /* PER 10 */ ); - test_npcs[ "S3" ] = standard_npc( "S3", { 0, 0, 4 }, { "gloves_plate", "helmet_plate" }, - 4, 10, 8, 8, 8 /* STAT 10 */ ); + test_npcs[ "S1" ] = standard_npc( + "S1", { 0, 0, 2 }, { "gloves_survivor", "mask_lsurvivor" }, + 4, 8, 10, 8, 10 /* DEX 10, PER 10 */ ); + test_npcs[ "S2" ] = standard_npc( + "S2", { 0, 0, 3 }, { "gloves_fingerless", "sunglasses" }, + 4, 8, 8, 8, 10 /* PER 10 */ ); + test_npcs[ "S3" ] = standard_npc( + "S3", { 0, 0, 4 }, { "gloves_plate", "helmet_plate" }, + 4, 10, 8, 8, 8 /* STAT 10 */ ); test_npcs[ "S4" ] = standard_npc( "S4", { 0, 0, 5 }, {}, 0, 8, 10, 8, 10 /* DEX 10, PER 10 */ ); test_npcs[ "S5" ] = standard_npc( "S5", { 0, 0, 6 }, {}, 4, 8, 10, 8, 10 /* DEX 10, PER 10 */ ); - test_npcs[ "S6" ] = standard_npc( "S6", { 0, 0, 7 }, { "gloves_hsurvivor", "mask_hsurvivor" }, - 4, 8, 10, 8, 10 /* DEX 10, PER 10 */ ); + test_npcs[ "S6" ] = standard_npc( + "S6", { 0, 0, 7 }, { "gloves_hsurvivor", "mask_hsurvivor" }, + 4, 8, 10, 8, 10 /* DEX 10, PER 10 */ ); std::map test_items; - test_items[ "G1" ] = item( "glock_19" ).ammo_set( "9mm" ); - test_items[ "G2" ] = item( "hk_mp5" ).ammo_set( "9mm" ); - test_items[ "G3" ] = item( "ar15" ).ammo_set( "223" ); - test_items[ "G4" ] = item( "remington_700" ).ammo_set( "270" ); + test_items[ "G1" ] = item( "glock_19" ).ammo_set( itype_id( "9mm" ) ); + test_items[ "G2" ] = item( "hk_mp5" ).ammo_set( itype_id( "9mm" ) ); + test_items[ "G3" ] = item( "ar15" ).ammo_set( itype_id( "223" ) ); + test_items[ "G4" ] = item( "remington_700" ).ammo_set( itype_id( "270" ) ); test_items[ "G4" ].put_in( item( "rifle_scope" ), item_pocket::pocket_type::MOD ); if( what == "AMMO" ) { @@ -122,7 +126,7 @@ bool game::dump_stats( const std::string &what, dump_mode mode, for( const itype *e : item_controller->all() ) { if( e->armor ) { item obj( e ); - if( bp == num_bp || obj.covers( bp ) ) { + if( bp == num_bp || obj.covers( convert_bp( bp ).id() ) ) { if( obj.has_flag( flag_VARSIZE ) ) { obj.item_tags.insert( "FIT" ); } @@ -193,7 +197,6 @@ bool game::dump_stats( const std::string &what, dump_mode mode, }, enumeration_conjunction::none ) : "" ); r.push_back( to_string( obj.volume() / units::legacy_volume_factor ) ); r.push_back( to_string( to_gram( obj.weight() ) ) ); - r.push_back( to_string( obj.ammo_capacity() ) ); r.push_back( to_string( obj.gun_range() ) ); r.push_back( to_string( obj.gun_dispersion() ) ); r.push_back( to_string( obj.gun_recoil( who ) ) ); @@ -214,9 +217,9 @@ bool game::dump_stats( const std::string &what, dump_mode mode, if( e->gun ) { item gun( e ); if( !gun.magazine_integral() ) { - gun.put_in( item( gun.magazine_default() ), item_pocket::pocket_type::MAGAZINE ); + gun.put_in( item( gun.magazine_default() ), item_pocket::pocket_type::MAGAZINE_WELL ); } - gun.ammo_set( gun.ammo_default( false ), gun.ammo_capacity() ); + gun.ammo_set( gun.ammo_default( false ) ); dump( test_npcs[ "S1" ], gun ); diff --git a/src/editmap.cpp b/src/editmap.cpp index 5991cbb6ce1df..f947c1f1dbf35 100644 --- a/src/editmap.cpp +++ b/src/editmap.cpp @@ -284,6 +284,37 @@ bool editmap::eget_direction( tripoint &p, const std::string &action ) const return true; } +class editmap::game_draw_callback_t_container +{ + public: + game_draw_callback_t_container( editmap *em ) : em( em ) {} + shared_ptr_fast create_or_get(); + private: + editmap *em; + weak_ptr_fast cbw; +}; + +shared_ptr_fast editmap::game_draw_callback_t_container::create_or_get() +{ + shared_ptr_fast cb = cbw.lock(); + if( !cb ) { + cbw = cb = make_shared_fast( + [this]() { + em->draw_main_ui_overlay(); + } ); + g->add_draw_callback( cb ); + } + return cb; +} + +editmap::game_draw_callback_t_container &editmap::draw_cb_container() +{ + if( !draw_cb_container_ ) { + draw_cb_container_ = std::make_unique( this ); + } + return *draw_cb_container_; +} + shared_ptr_fast editmap::create_or_get_ui_adaptor() { shared_ptr_fast current_ui = ui.lock(); @@ -292,9 +323,7 @@ shared_ptr_fast editmap::create_or_get_ui_adaptor() current_ui->on_screen_resize( [this]( ui_adaptor & ui ) { w_info = catacurses::newwin( infoHeight, width, point( offsetX, TERMY - infoHeight ) ); tmax = point( getmaxx( g->w_terrain ), getmaxy( g->w_terrain ) ); - // We redraw the entire terrain window along with our own window, so - // set the position to that of catacurses::stdscr. - ui.position_from_window( catacurses::stdscr ); + ui.position_from_window( w_info ); } ); current_ui->mark_resize(); @@ -307,6 +336,7 @@ shared_ptr_fast editmap::create_or_get_ui_adaptor() cata::optional editmap::edit() { + restore_on_out_of_scope view_offset_prev( g->u.view_offset ); target = g->u.pos() + g->u.view_offset; input_context ctxt( "EDITMAP" ); ctxt.set_iso( true ); @@ -334,9 +364,10 @@ cata::optional editmap::edit() uberdraw = uistate.editmap_nsa_viewmode; blink = true; + shared_ptr_fast editmap_cb = draw_cb_container().create_or_get(); shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - on_out_of_scope invalidate_current_ui( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope info_txt_prev( info_txt_curr ); restore_on_out_of_scope info_title_prev( info_title_curr ); @@ -363,7 +394,7 @@ cata::optional editmap::edit() ctxt.describe_key_and_name( "EDIT_ITEMS" ), ctxt.describe_key_and_name( "QUIT" ) ); info_title_curr = pgettext( "map editor state", "Looking around" ); - current_ui->invalidate_ui(); + do_ui_invalidation(); ui_manager::redraw(); @@ -461,18 +492,22 @@ void editmap::uber_draw_ter( const catacurses::window &w, map *m ) } } -void editmap::update_view_with_help( const std::string &txt, const std::string &title ) +void editmap::do_ui_invalidation() { - // updating map - const Creature *critter = g->critter_at( target ); + g->u.view_offset = target - g->u.pos(); + g->invalidate_main_ui_adaptor(); + create_or_get_ui_adaptor()->invalidate_ui(); +} - werase( g->w_terrain ); +void editmap::draw_main_ui_overlay() +{ + const Creature *critter = g->critter_at( target ); +#if !defined( TILES ) if( uberdraw ) { uber_draw_ter( g->w_terrain, &g->m ); // Bypassing the usual draw methods; not versatile enough - } else { - g->draw_ter( target ); // But it's optional } +#endif // update target point if( critter != nullptr ) { @@ -594,7 +629,8 @@ void editmap::update_view_with_help( const std::string &txt, const std::string & g->draw_item_override( map_p, itm.typeId(), mon ? mon->id : mtype_id::NULL_ID(), tile.get_item_count() > 1 ); } else { - g->draw_item_override( map_p, "null", mtype_id::NULL_ID(), false ); + g->draw_item_override( map_p, itype_id::NULL_ID(), mtype_id::NULL_ID(), + false ); } const optional_vpart_position vp = tmpmap.veh_at( tmp_p ); if( vp ) { @@ -649,9 +685,10 @@ void editmap::update_view_with_help( const std::string &txt, const std::string & } #endif } - wrefresh( g->w_terrain ); - g->draw_panels(); +} +void editmap::update_view_with_help( const std::string &txt, const std::string &title ) +{ // updating info werase( w_info ); @@ -743,6 +780,7 @@ void editmap::update_view_with_help( const std::string &txt, const std::string & off++; // 11 } + const Creature *critter = g->critter_at( target ); if( critter != nullptr ) { off = critter->print_info( w_info, off, 5, 1 ); } else if( vp ) { @@ -785,7 +823,7 @@ void editmap::update_view_with_help( const std::string &txt, const std::string & nc_color dummy = c_light_gray; print_colored_text( w_info, point( 1, line ), dummy, c_light_gray, *it ); } - wrefresh( w_info ); + wnoutrefresh( w_info ); } static ter_id get_alt_ter( bool isvert, ter_id sel_ter ) @@ -796,12 +834,11 @@ static ter_id get_alt_ter( bool isvert, ter_id sel_ter ) alts["_v_alarm"] = "_h_alarm"; const std::string tersid = sel_ter.obj().id.str(); const int sidlen = tersid.size(); - for( std::map::const_iterator it = alts.begin(); it != alts.end(); - ++it ) { - const std::string suffix = isvert ? it->first : it->second; + for( const auto &it : alts ) { + const std::string suffix = isvert ? it.first : it.second; const int slen = suffix.size(); if( sidlen > slen && tersid.substr( sidlen - slen, slen ) == suffix ) { - const std::string asuffix = isvert ? it->second : it->first; + const std::string asuffix = isvert ? it.second : it.first; const std::string terasid = tersid.substr( 0, sidlen - slen ) + asuffix; const ter_str_id tid( terasid ); @@ -1063,9 +1100,10 @@ void editmap::edit_feature() int current_feature = emenu.selected = feature( target ).to_i(); emenu.entries[current_feature].text_color = c_green; + shared_ptr_fast editmap_cb = draw_cb_container().create_or_get(); shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - on_out_of_scope invalidate_current_ui( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope info_txt_prev( info_txt_curr ); restore_on_out_of_scope info_title_prev( info_title_curr ); @@ -1090,7 +1128,7 @@ void editmap::edit_feature() ctxt.describe_key_and_name( "EDITMAP_TAB" ), ctxt.describe_key_and_name( "EDITMAP_MOVE" ) ); info_title_curr = info_title(); - current_ui->invalidate_ui(); + do_ui_invalidation(); emenu.query( false, BLINK_SPEED ); if( emenu.ret == UILIST_CANCEL ) { @@ -1178,9 +1216,10 @@ void editmap::edit_fld() }; fmenu.allow_additional = true; + shared_ptr_fast editmap_cb = draw_cb_container().create_or_get(); shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - on_out_of_scope invalidate_current_ui( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope info_txt_prev( info_txt_curr ); restore_on_out_of_scope info_title_prev( info_title_curr ); @@ -1207,7 +1246,7 @@ void editmap::edit_fld() ctxt.describe_key_and_name( "QUIT" ), ctxt.describe_key_and_name( "EDITMAP_SHOW_ALL" ) ); info_title_curr = pgettext( "Map editor: Editing field effects", "Field effects" ); - current_ui->invalidate_ui(); + do_ui_invalidation(); fmenu.query( false, BLINK_SPEED ); if( ( fmenu.ret > 0 && static_cast( fmenu.ret ) < field_type::count() ) || @@ -1349,9 +1388,10 @@ void editmap::edit_itm() }; ilmenu.allow_additional = true; + shared_ptr_fast editmap_cb = draw_cb_container().create_or_get(); shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - on_out_of_scope invalidate_current_ui( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope info_txt_prev( info_txt_curr ); restore_on_out_of_scope info_title_prev( info_title_curr ); @@ -1361,7 +1401,7 @@ void editmap::edit_itm() do { info_txt_curr.clear(); info_title_curr.clear(); - current_ui->invalidate_ui(); + do_ui_invalidation(); ilmenu.query(); if( ilmenu.ret >= 0 && ilmenu.ret < static_cast( items.size() ) ) { @@ -1594,9 +1634,10 @@ int editmap::select_shape( shapetype shape, int mode ) } altblink = moveall; + shared_ptr_fast editmap_cb = draw_cb_container().create_or_get(); shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - on_out_of_scope invalidate_current_ui( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope info_txt_prev( info_txt_curr ); restore_on_out_of_scope info_title_prev( info_title_curr ); @@ -1622,7 +1663,7 @@ int editmap::select_shape( shapetype shape, int mode ) ctxt.describe_key_and_name( "EDITMAP_SHOW_ALL" ) ); info_title_curr = _( "Resizing selection" ); } - current_ui->invalidate_ui(); + do_ui_invalidation(); ui_manager::redraw(); action = ctxt.handle_input( BLINK_SPEED ); if( action == "RESIZE" ) { @@ -1642,8 +1683,8 @@ int editmap::select_shape( shapetype shape, int mode ) }; smenu.allow_additional = true; - on_out_of_scope invalidate_current_ui_2( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui_2( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope info_txt_prev_2( info_txt_curr ); restore_on_out_of_scope info_title_prev_2( info_title_curr ); @@ -1651,7 +1692,7 @@ int editmap::select_shape( shapetype shape, int mode ) do { info_txt_curr.clear(); info_title_curr = pgettext( "map editor state", "Select a shape" ); - current_ui->invalidate_ui(); + do_ui_invalidation(); smenu.query(); if( smenu.ret == UILIST_CANCEL ) { @@ -1758,9 +1799,10 @@ void editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) }; gpmenu.allow_additional = true; + shared_ptr_fast editmap_cb = draw_cb_container().create_or_get(); shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - on_out_of_scope invalidate_current_ui( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope tinymap_ptr_prev( tmpmap_ptr ); restore_on_out_of_scope info_txt_prev( info_txt_curr ); @@ -1791,7 +1833,7 @@ void editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) ctxt.describe_key_and_name( "QUIT" ) ); info_title_curr = string_format( pgettext( "map editor state", "Mapgen: %s" ), oter_id( gmenu.selected ).id().str() ); - current_ui->invalidate_ui(); + do_ui_invalidation(); gpmenu.query( false, BLINK_SPEED * 3 ); @@ -1942,9 +1984,10 @@ void editmap::mapgen_retarget() std::string action; tripoint origm = target; + shared_ptr_fast editmap_cb = draw_cb_container().create_or_get(); shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - on_out_of_scope invalidate_current_ui( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope info_txt_prev( info_txt_curr ); restore_on_out_of_scope info_title_prev( info_title_curr ); @@ -1955,7 +1998,7 @@ void editmap::mapgen_retarget() ctxt.describe_key_and_name( "CONFIRM" ), ctxt.describe_key_and_name( "QUIT" ) ); info_title_curr = pgettext( "map generator", "Mapgen: Moving target" ); - current_ui->invalidate_ui(); + do_ui_invalidation(); ui_manager::redraw(); action = ctxt.handle_input( BLINK_SPEED ); @@ -2014,9 +2057,10 @@ void editmap::edit_mapgen() } real_coords tc; + shared_ptr_fast editmap_cb = draw_cb_container().create_or_get(); shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - on_out_of_scope invalidate_current_ui( [current_ui]() { - current_ui->invalidate_ui(); + on_out_of_scope invalidate_current_ui( [this]() { + do_ui_invalidation(); } ); restore_on_out_of_scope info_txt_prev( info_txt_curr ); restore_on_out_of_scope info_title_prev( info_title_curr ); @@ -2048,7 +2092,7 @@ void editmap::edit_mapgen() ctxt.describe_key_and_name( "CONFIRM" ), ctxt.describe_key_and_name( "QUIT" ) ); info_title_curr = pgettext( "map generator", "Mapgen stamp" ); - current_ui->invalidate_ui(); + do_ui_invalidation(); gmenu.query(); diff --git a/src/editmap.h b/src/editmap.h index 20d12d8f67c0f..9231fbf25a4da 100644 --- a/src/editmap.h +++ b/src/editmap.h @@ -109,6 +109,14 @@ class editmap const int infoHeight = 20; point tmax; + + void draw_main_ui_overlay(); + void do_ui_invalidation(); + + // work around the limitation that you can't forward declare an inner class + class game_draw_callback_t_container; + std::unique_ptr draw_cb_container_; + game_draw_callback_t_container &draw_cb_container(); }; #endif // CATA_SRC_EDITMAP_H diff --git a/src/effect.cpp b/src/effect.cpp index 34c8131b5f596..e72a4c2c0eab4 100644 --- a/src/effect.cpp +++ b/src/effect.cpp @@ -18,8 +18,10 @@ #include "string_id.h" #include "units.h" +static const efftype_id effect_bandaged( "bandaged" ); static const efftype_id effect_beartrap( "beartrap" ); static const efftype_id effect_crushed( "crushed" ); +static const efftype_id effect_disinfected( "disinfected" ); static const efftype_id effect_downed( "downed" ); static const efftype_id effect_grabbed( "grabbed" ); static const efftype_id effect_heavysnare( "heavysnare" ); @@ -29,6 +31,9 @@ static const efftype_id effect_tied( "tied" ); static const efftype_id effect_webbed( "webbed" ); static const efftype_id effect_weed_high( "weed_high" ); +static const itype_id itype_holybook_bible( "holybook_bible" ); +static const itype_id itype_money_bundle( "money_bundle" ); + static const trait_id trait_LACTOSE( "LACTOSE" ); static const trait_id trait_VEGETARIAN( "VEGETARIAN" ); @@ -101,7 +106,7 @@ void weed_msg( player &p ) } return; case 4: - if( p.has_amount( "money_bundle", 1 ) ) { // Half Baked + if( p.has_amount( itype_money_bundle, 1 ) ) { // Half Baked p.add_msg_if_player( _( "You ever see the back of a twenty dollar bill… on weed?" ) ); if( one_in( 2 ) ) { p.add_msg_if_player( @@ -110,7 +115,7 @@ void weed_msg( player &p ) p.add_msg_if_player( _( "RED TEAM GO, RED TEAM GO!" ) ); } } - } else if( p.has_amount( "holybook_bible", 1 ) ) { + } else if( p.has_amount( itype_holybook_bible, 1 ) ) { p.add_msg_if_player( _( "You have a sudden urge to flip your bible open to Genesis 1:29…" ) ); } else { // Big Lebowski p.add_msg_if_player( _( "That rug really tied the room together…" ) ); @@ -209,7 +214,8 @@ static void extract_effect( const JsonObject &j, std::unordered_map, double, cata::tuple_hash> &data, - const std::string &mod_type, std::string data_key, std::string type_key, std::string arg_key ) + const std::string &mod_type, const std::string &data_key, + const std::string &type_key, const std::string &arg_key ) { double val = 0; double reduced_val = 0; @@ -524,7 +530,7 @@ std::string effect::disp_name() const } ret += eff_type->name[0].translated(); if( intensity > 1 ) { - if( eff_type->id == "bandaged" || eff_type->id == "disinfected" ) { + if( eff_type->id == effect_bandaged || eff_type->id == effect_disinfected ) { ret += string_format( " [%s]", texitify_healing_power( intensity ) ); } else { ret += string_format( " [%d]", intensity ); @@ -532,7 +538,7 @@ std::string effect::disp_name() const } } if( bp != num_bp ) { - ret += string_format( " (%s)", body_part_name( bp ) ); + ret += string_format( " (%s)", body_part_name( convert_bp( bp ).id() ) ); } return ret; @@ -690,7 +696,7 @@ std::string effect::disp_desc( bool reduced ) const } // Then print the effect description if( use_part_descs() ) { - ret += string_format( _( tmp_str ), body_part_name( bp ) ); + ret += string_format( _( tmp_str ), body_part_name( convert_bp( bp ).id() ) ); } else { if( !tmp_str.empty() ) { ret += _( tmp_str ); @@ -864,7 +870,7 @@ std::vector effect::get_blocks_effects() const return ret; } -int effect::get_mod( std::string arg, bool reduced ) const +int effect::get_mod( const std::string &arg, bool reduced ) const { auto &mod_data = eff_type->mod_data; double min = 0; @@ -896,7 +902,7 @@ int effect::get_mod( std::string arg, bool reduced ) const } } -int effect::get_avg_mod( std::string arg, bool reduced ) const +int effect::get_avg_mod( const std::string &arg, bool reduced ) const { auto &mod_data = eff_type->mod_data; double min = 0; @@ -928,7 +934,7 @@ int effect::get_avg_mod( std::string arg, bool reduced ) const } } -int effect::get_amount( std::string arg, bool reduced ) const +int effect::get_amount( const std::string &arg, bool reduced ) const { int intensity_capped = eff_type->max_effective_intensity > 0 ? std::min( eff_type->max_effective_intensity, intensity ) : intensity; @@ -945,7 +951,7 @@ int effect::get_amount( std::string arg, bool reduced ) const return static_cast( ret ); } -int effect::get_min_val( std::string arg, bool reduced ) const +int effect::get_min_val( const std::string &arg, bool reduced ) const { auto &mod_data = eff_type->mod_data; double ret = 0; @@ -960,7 +966,7 @@ int effect::get_min_val( std::string arg, bool reduced ) const return static_cast( ret ); } -int effect::get_max_val( std::string arg, bool reduced ) const +int effect::get_max_val( const std::string &arg, bool reduced ) const { auto &mod_data = eff_type->mod_data; double ret = 0; @@ -985,7 +991,7 @@ bool effect::get_sizing( const std::string &arg ) const return false; } -double effect::get_percentage( std::string arg, int val, bool reduced ) const +double effect::get_percentage( const std::string &arg, int val, bool reduced ) const { auto &mod_data = eff_type->mod_data; auto found_top_base = mod_data.find( std::make_tuple( "base_mods", reduced, arg, "chance_top" ) ); @@ -1062,7 +1068,7 @@ double effect::get_percentage( std::string arg, int val, bool reduced ) const return ret; } -bool effect::activated( const time_point &when, std::string arg, int val, bool reduced, +bool effect::activated( const time_point &when, const std::string &arg, int val, bool reduced, double mod ) const { auto &mod_data = eff_type->mod_data; diff --git a/src/effect.h b/src/effect.h index eebaad84cc062..e7e1748c366ed 100644 --- a/src/effect.h +++ b/src/effect.h @@ -231,22 +231,22 @@ class effect std::vector get_blocks_effects() const; /** Returns the matching modifier type from an effect, used for getting actual effect effects. */ - int get_mod( std::string arg, bool reduced = false ) const; + int get_mod( const std::string &arg, bool reduced = false ) const; /** Returns the average return of get_mod for a modifier type. Used in effect description displays. */ - int get_avg_mod( std::string arg, bool reduced = false ) const; + int get_avg_mod( const std::string &arg, bool reduced = false ) const; /** Returns the amount of a modifier type applied when a new effect is first added. */ - int get_amount( std::string arg, bool reduced = false ) const; + int get_amount( const std::string &arg, bool reduced = false ) const; /** Returns the minimum value of a modifier type that get_mod() and get_amount() will push the player to. */ - int get_min_val( std::string arg, bool reduced = false ) const; + int get_min_val( const std::string &arg, bool reduced = false ) const; /** Returns the maximum value of a modifier type that get_mod() and get_amount() will push the player to. */ - int get_max_val( std::string arg, bool reduced = false ) const; + int get_max_val( const std::string &arg, bool reduced = false ) const; /** Returns true if the given modifier type's trigger chance is affected by size mutations. */ bool get_sizing( const std::string &arg ) const; /** Returns the approximate percentage chance of a modifier type activating on any given tick, used for descriptions. */ - double get_percentage( std::string arg, int val, bool reduced = false ) const; + double get_percentage( const std::string &arg, int val, bool reduced = false ) const; /** Checks to see if a given modifier type can activate, and performs any rolls required to do so. mod is a direct * multiplier on the overall chance of a modifier type activating. */ - bool activated( const time_point &when, std::string arg, int val, + bool activated( const time_point &when, const std::string &arg, int val, bool reduced = false, double mod = 1 ) const; /** Check if the effect has the specified flag */ diff --git a/src/enums.h b/src/enums.h index 44773f0e76eca..9fe68e903990b 100644 --- a/src/enums.h +++ b/src/enums.h @@ -26,12 +26,12 @@ struct enum_traits { static constexpr holiday last = holiday::num_holiday; }; -enum temperature_flag : int { - TEMP_NORMAL = 0, - TEMP_HEATER, - TEMP_FRIDGE, - TEMP_FREEZER, - TEMP_ROOT_CELLAR +enum class temperature_flag : int { + NORMAL = 0, + HEATER, + FRIDGE, + FREEZER, + ROOT_CELLAR }; //Used for autopickup and safemode rules @@ -51,7 +51,7 @@ enum visibility_type { }; // Matching rules for comparing a string to an overmap terrain id. -enum ot_match_type { +enum class ot_match_type : int { // The provided string must completely match the overmap terrain id, including // linear direction suffixes for linear terrain types or rotation suffixes // for rotated terrain types. @@ -158,8 +158,13 @@ enum artifact_natural_property { ARTPROP_MAX }; -enum phase_id : int { - PNULL, SOLID, LIQUID, GAS, PLASMA, num_phases +enum class phase_id : int { + PNULL, + SOLID, + LIQUID, + GAS, + PLASMA, + num_phases }; template<> @@ -168,26 +173,36 @@ struct enum_traits { }; // Return the class an in-world object uses to interact with the world. -// ex; if ( player.grab_type == OBJECT_VEHICLE ) { ... -// or; if ( baseactor_just_shot_at.object_type() == OBJECT_NPC ) { ... -enum object_type { - OBJECT_NONE, // Nothing, invalid. - OBJECT_ITEM, // item.h - OBJECT_ACTOR, // potential virtual base class, get_object_type() would return one of the types below - OBJECT_PLAYER, // player.h, npc.h - OBJECT_NPC, // nph.h - OBJECT_MONSTER, // monster.h - OBJECT_VEHICLE, // vehicle.h - OBJECT_TRAP, // trap.h - OBJECT_FIELD, // field.h; field_entry - OBJECT_TERRAIN, // Not a real object - OBJECT_FURNITURE, // Not a real object - NUM_OBJECTS, +// ex; if ( player.grab_type == object_type::VEHICLE ) { ... +// or; if ( baseactor_just_shot_at.object_type() == object_type::NPC ) { ... +enum class object_type : int { + NONE, // Nothing, invalid. + ITEM, // item.h + ACTOR, // potential virtual base class, get_object_type() would return one of the types below + PLAYER, // player.h, npc.h + NPC, // nph.h + MONSTER, // monster.h + VEHICLE, // vehicle.h + TRAP, // trap.h + FIELD, // field.h; field_entry + TERRAIN, // Not a real object + FURNITURE, // Not a real object + NUM_OBJECT_TYPES, }; -enum liquid_source_type { LST_INFINITE_MAP = 1, LST_MAP_ITEM = 2, LST_VEHICLE = 3, LST_MONSTER = 4}; +enum class liquid_source_type : int { + INFINITE_MAP = 1, + MAP_ITEM = 2, + VEHICLE = 3, + MONSTER = 4 +}; -enum liquid_target_type { LTT_CONTAINER = 1, LTT_VEHICLE = 2, LTT_MAP = 3, LTT_MONSTER = 4 }; +enum class liquid_target_type : int { + CONTAINER = 1, + VEHICLE = 2, + MAP = 3, + MONSTER = 4 +}; /** * Possible layers that a piece of clothing/armor can occupy @@ -198,33 +213,33 @@ enum liquid_target_type { LTT_CONTAINER = 1, LTT_VEHICLE = 2, LTT_MAP = 3, LTT_M * and by @ref profession to place the characters' clothing in a sane order * when starting the game. */ -enum layer_level { +enum class layer_level : int { /* "Personal effects" layer, corresponds to PERSONAL flag */ - PERSONAL_LAYER = 0, + PERSONAL = 0, /* "Close to skin" layer, corresponds to SKINTIGHT flag. */ - UNDERWEAR_LAYER, + UNDERWEAR, /* "Normal" layer, default if no flags set */ - REGULAR_LAYER, + REGULAR, /* "Waist" layer, corresponds to WAIST flag. */ - WAIST_LAYER, + WAIST, /* "Outer" layer, corresponds to OUTER flag. */ - OUTER_LAYER, + OUTER, /* "Strapped" layer, corresponds to BELTED flag */ - BELTED_LAYER, + BELTED, /* "Aura" layer, corresponds to AURA flag */ - AURA_LAYER, + AURA, /* Not a valid layer; used for C-style iteration through this enum */ - MAX_CLOTHING_LAYER + NUM_LAYER_LEVELS }; inline layer_level &operator++( layer_level &l ) { - l = static_cast( l + 1 ); + l = static_cast( static_cast( l ) + 1 ); return l; } /** Possible reasons to interrupt an activity. */ -enum class distraction_type { +enum class distraction_type : int { noise, pain, attacked, diff --git a/src/event.cpp b/src/event.cpp index f88028bd04e09..34534d5bd79e7 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -12,21 +12,26 @@ std::string enum_to_string( event_type data ) case event_type::activates_mininuke: return "activates_mininuke"; case event_type::administers_mutagen: return "administers_mutagen"; case event_type::angers_amigara_horrors: return "angers_amigara_horrors"; + case event_type::avatar_enters_omt: return "avatar_enters_omt"; case event_type::avatar_moves: return "avatar_moves"; case event_type::awakes_dark_wyrms: return "awakes_dark_wyrms"; case event_type::becomes_wanted: return "becomes_wanted"; case event_type::broken_bone_mends: return "broken_bone_mends"; case event_type::buries_corpse: return "buries_corpse"; case event_type::causes_resonance_cascade: return "causes_resonance_cascade"; + case event_type::character_forgets_spell: return "character_forgets_spell"; case event_type::character_gains_effect: return "character_gains_effect"; case event_type::character_gets_headshot: return "character_gets_headshot"; case event_type::character_heals_damage: return "character_heals_damage"; case event_type::character_kills_character: return "character_kills_character"; case event_type::character_kills_monster: return "character_kills_monster"; + case event_type::character_learns_spell: return "character_learns_spell"; case event_type::character_loses_effect: return "character_loses_effect"; case event_type::character_takes_damage: return "character_takes_damage"; case event_type::character_triggers_trap: return "character_triggers_trap"; case event_type::character_wakes_up: return "character_wakes_up"; + case event_type::character_wears_item: return "character_wears_item"; + case event_type::character_wields_item: return "character_wields_item"; case event_type::consumes_marloss_item: return "consumes_marloss_item"; case event_type::crosses_marloss_threshold: return "crosses_marloss_threshold"; case event_type::crosses_mutation_threshold: return "crosses_mutation_threshold"; @@ -60,6 +65,8 @@ std::string enum_to_string( event_type data ) case event_type::npc_becomes_hostile: return "npc_becomes_hostile"; case event_type::opens_portal: return "opens_portal"; case event_type::opens_temple: return "opens_temple"; + case event_type::player_fails_conduct: return "player_fails_conduct"; + case event_type::player_gets_achievement: return "player_gets_achievement"; case event_type::player_levels_spell: return "player_levels_spell"; case event_type::releases_subspace_specimens: return "releases_subspace_specimens"; case event_type::removes_cbm: return "removes_cbm"; @@ -86,13 +93,15 @@ namespace cata namespace event_detail { -constexpr std::array, - event_spec_empty::fields.size()> event_spec_empty::fields; +#define DEFINE_EVENT_HELPER_FIELDS(type) \ + constexpr std::array, \ + type::fields.size()> type::fields; -constexpr std::array, - event_spec_character::fields.size()> event_spec_character::fields; +DEFINE_EVENT_HELPER_FIELDS( event_spec_empty ) +DEFINE_EVENT_HELPER_FIELDS( event_spec_character ) +DEFINE_EVENT_HELPER_FIELDS( event_spec_character_item ) -static_assert( static_cast( event_type::num_event_types ) == 62, +static_assert( static_cast( event_type::num_event_types ) == 69, "This static_assert is a reminder to add a definition below when you add a new " "event_type. If your event_spec specialization inherits from another struct for " "its fields definition then you probably don't need a definition here." ); @@ -102,21 +111,22 @@ static_assert( static_cast( event_type::num_event_types ) == 62, event_spec::fields.size()> \ event_spec::fields; -DEFINE_EVENT_FIELDS( player_levels_spell ) DEFINE_EVENT_FIELDS( activates_artifact ) DEFINE_EVENT_FIELDS( administers_mutagen ) +DEFINE_EVENT_FIELDS( avatar_enters_omt ) DEFINE_EVENT_FIELDS( avatar_moves ) DEFINE_EVENT_FIELDS( broken_bone_mends ) DEFINE_EVENT_FIELDS( buries_corpse ) +DEFINE_EVENT_FIELDS( character_forgets_spell ) DEFINE_EVENT_FIELDS( character_gains_effect ) DEFINE_EVENT_FIELDS( character_heals_damage ) DEFINE_EVENT_FIELDS( character_kills_character ) DEFINE_EVENT_FIELDS( character_kills_monster ) +DEFINE_EVENT_FIELDS( character_learns_spell ) DEFINE_EVENT_FIELDS( character_loses_effect ) DEFINE_EVENT_FIELDS( character_takes_damage ) DEFINE_EVENT_FIELDS( character_triggers_trap ) DEFINE_EVENT_FIELDS( character_wakes_up ) -DEFINE_EVENT_FIELDS( consumes_marloss_item ) DEFINE_EVENT_FIELDS( crosses_mutation_threshold ) DEFINE_EVENT_FIELDS( dies_from_drug_overdose ) DEFINE_EVENT_FIELDS( evolves_mutation ) @@ -133,6 +143,9 @@ DEFINE_EVENT_FIELDS( installs_faulty_cbm ) DEFINE_EVENT_FIELDS( learns_martial_art ) DEFINE_EVENT_FIELDS( loses_addiction ) DEFINE_EVENT_FIELDS( npc_becomes_hostile ) +DEFINE_EVENT_FIELDS( player_fails_conduct ) +DEFINE_EVENT_FIELDS( player_gets_achievement ) +DEFINE_EVENT_FIELDS( player_levels_spell ) DEFINE_EVENT_FIELDS( removes_cbm ) DEFINE_EVENT_FIELDS( telefrags_creature ) DEFINE_EVENT_FIELDS( teleports_into_wall ) diff --git a/src/event.h b/src/event.h index 60e582c2e30c0..d80c50a8510ff 100644 --- a/src/event.h +++ b/src/event.h @@ -17,33 +17,36 @@ template struct enum_traits; -using itype_id = std::string; - // An event is something to be passed via the event_bus to subscribers // interested in being notified about events. // // Each event is of a specific type, taken from the event_type enum. -enum class event_type { +enum class event_type : int { activates_artifact, activates_mininuke, administers_mutagen, angers_amigara_horrors, + avatar_enters_omt, avatar_moves, awakes_dark_wyrms, becomes_wanted, broken_bone_mends, buries_corpse, causes_resonance_cascade, + character_forgets_spell, character_gains_effect, character_gets_headshot, character_heals_damage, character_kills_character, character_kills_monster, + character_learns_spell, character_loses_effect, character_takes_damage, character_triggers_trap, character_wakes_up, + character_wields_item, + character_wears_item, consumes_marloss_item, crosses_marloss_threshold, crosses_mutation_threshold, @@ -77,6 +80,8 @@ enum class event_type { npc_becomes_hostile, opens_portal, opens_temple, + player_fails_conduct, + player_gets_achievement, player_levels_spell, releases_subspace_specimens, removes_cbm, @@ -139,7 +144,15 @@ struct event_spec_character { }; }; -static_assert( static_cast( event_type::num_event_types ) == 62, +struct event_spec_character_item { + static constexpr std::array, 2> fields = {{ + { "character", cata_variant_type::character_id }, + { "itype", cata_variant_type::itype_id }, + } + }; +}; + +static_assert( static_cast( event_type::num_event_types ) == 69, "This static_assert is to remind you to add a specialization for your new " "event_type below" ); @@ -167,12 +180,21 @@ struct event_spec { template<> struct event_spec : event_spec_empty {}; +template<> +struct event_spec { + static constexpr std::array, 2> fields = {{ + { "pos", cata_variant_type::tripoint }, + { "oter_id", cata_variant_type::oter_id }, + } + }; +}; + template<> struct event_spec { static constexpr std::array, 5> fields = {{ { "mount", cata_variant_type::mtype_id }, { "terrain", cata_variant_type::ter_id }, - { "movement_mode", cata_variant_type::character_movemode }, + { "movement_mode", cata_variant_type::move_mode_id }, { "underwater", cata_variant_type::bool_ }, { "z", cata_variant_type::int_ }, } @@ -207,6 +229,15 @@ struct event_spec { template<> struct event_spec : event_spec_empty {}; +template<> +struct event_spec { + static constexpr std::array, 2> fields = { { + { "character", cata_variant_type::character_id }, + { "spell", cata_variant_type::spell_id } + } + }; +}; + template<> struct event_spec { static constexpr std::array, 2> fields = {{ @@ -247,6 +278,15 @@ struct event_spec { }; }; +template<> +struct event_spec { + static constexpr std::array, 2> fields = { { + { "character", cata_variant_type::character_id }, + { "spell", cata_variant_type::spell_id } + } + }; +}; + template<> struct event_spec { static constexpr std::array, 2> fields = {{ @@ -283,13 +323,13 @@ struct event_spec { }; template<> -struct event_spec { - static constexpr std::array, 2> fields = {{ - { "character", cata_variant_type::character_id }, - { "itype", cata_variant_type::itype_id }, - } - }; -}; +struct event_spec : event_spec_character_item {}; + +template<> +struct event_spec : event_spec_character_item {}; + +template<> +struct event_spec : event_spec_character_item {}; template<> struct event_spec : event_spec_character {}; @@ -426,8 +466,13 @@ struct event_spec { template<> struct event_spec { - static constexpr std::array, 1> fields = {{ + static constexpr std::array, 6> fields = {{ { "avatar_id", cata_variant_type::character_id }, + { "avatar_name", cata_variant_type::string }, + { "avatar_is_male", cata_variant_type::bool_ }, + { "avatar_profession", cata_variant_type::profession_id }, + { "avatar_custom_profession", cata_variant_type::string }, + { "game_version", cata_variant_type::string }, } }; }; @@ -487,8 +532,27 @@ template<> struct event_spec : event_spec_empty {}; template<> -struct event_spec { +struct event_spec { + static constexpr std::array, 2> fields = {{ + { "conduct", cata_variant_type::achievement_id }, + { "achievements_enabled", cata_variant_type::bool_ }, + } + }; +}; + +template<> +struct event_spec { static constexpr std::array, 2> fields = {{ + { "achievement", cata_variant_type::achievement_id }, + { "achievements_enabled", cata_variant_type::bool_ }, + } + }; +}; + +template<> +struct event_spec { + static constexpr std::array, 3> fields = {{ + { "character", cata_variant_type::character_id }, { "spell", cata_variant_type::spell_id }, { "new_level", cata_variant_type::int_ }, } diff --git a/src/event_field_transformations.cpp b/src/event_field_transformations.cpp index 91f42a445b677..081543d6f267b 100644 --- a/src/event_field_transformations.cpp +++ b/src/event_field_transformations.cpp @@ -13,7 +13,7 @@ static std::vector flags_of_terrain( const cata_variant &v ) std::vector result; result.reserve( flags.size() ); for( const std::string &s : flags ) { - result.push_back( cata_variant( s ) ); + result.push_back( cata_variant::make( s ) ); } return result; } diff --git a/src/event_statistics.cpp b/src/event_statistics.cpp index 1c2f8bd980ee4..4f7d41d7f920b 100644 --- a/src/event_statistics.cpp +++ b/src/event_statistics.cpp @@ -165,16 +165,12 @@ class event_statistic::impl struct value_constraint { cata::optional equals_; - cata::optional equals_string_; cata::optional> equals_statistic_; bool permits( const cata_variant &v, stats_tracker &stats ) const { if( equals_ && *equals_ != v ) { return false; } - if( equals_string_ && *equals_string_ != v.get_string() ) { - return false; - } if( equals_statistic_ && stats.value_of( *equals_statistic_ ) != v ) { return false; } @@ -193,9 +189,9 @@ struct value_constraint { equals_ = cata_variant::make( equals_bool ); } - std::string equals_string; - if( jo.read( "equals", equals_string, false ) ) { - equals_string_ = equals_string; + cata_variant equals_variant; + if( jo.read( "equals", equals_variant, false ) ) { + equals_ = equals_variant; } string_id stat; @@ -203,7 +199,7 @@ struct value_constraint { equals_statistic_ = stat; } - if( !equals_ && !equals_string_ && !equals_statistic_ ) { + if( !equals_ && !equals_statistic_ ) { jo.throw_error( "No valid value constraint found" ); } } @@ -294,7 +290,7 @@ struct new_field { // been reported at startup time. return result; } - for( cata_variant v : transformation.function( it->second ) ) { + for( const cata_variant &v : transformation.function( it->second ) ) { result.push_back( data ); result.back().emplace( new_field_name, v ); } @@ -464,11 +460,11 @@ struct event_transformation_impl : public event_transformation::impl { return result; } - event_multiset initialize( const event_multiset::counts_type &input, + event_multiset initialize( const event_multiset::summaries_type &input, stats_tracker &stats ) const { event_multiset result; - for( const std::pair &p : input ) { + for( const std::pair &p : input ) { cata::event::data_type event_data = p.first; EventVector transformed = match_and_transform( event_data, stats ); for( cata::event::data_type &d : transformed ) { @@ -882,12 +878,12 @@ struct event_statistic_unique_value : event_statistic::impl { std::string field_; cata_variant value( stats_tracker &stats ) const override { - const event_multiset::counts_type counts = source_->get( stats ).counts(); - if( counts.size() != 1 ) { + const event_multiset::summaries_type summaries = source_->get( stats ).counts(); + if( summaries.size() != 1 ) { return cata_variant(); } - const cata::event::data_type &d = counts.begin()->first; + const cata::event::data_type &d = summaries.begin()->first; auto it = d.find( field_ ); if( it == d.end() ) { return cata_variant(); @@ -965,6 +961,183 @@ struct event_statistic_unique_value : event_statistic::impl { } }; +struct event_statistic_first_value : event_statistic::impl { + event_statistic_first_value( const string_id &id, + std::unique_ptr s, + const std::string &field ) : + id_( id ), source_( std::move( s ) ), field_( field ) + {} + + string_id id_; + cata::clone_ptr source_; + std::string field_; + + cata_variant value( stats_tracker &stats ) const override { + const event_multiset &events = source_->get( stats ); + const cata::optional d = events.first(); + if( d ) { + auto it = d->first.find( field_ ); + if( it == d->first.end() ) { + return cata_variant(); + } + return it->second; + } + return cata_variant(); + } + + struct state : stats_tracker_state, event_multiset_watcher { + state( const event_statistic_first_value *s, stats_tracker &stats ) : + stat( s ) { + init( stats ); + stat->source_->add_watcher( stats, this ); + } + + void init( stats_tracker &stats ) { + count = stat->source_->get( stats ).count(); + value = stat->value( stats ); + } + + void event_added( const cata::event &e, stats_tracker &stats ) override { + ++count; + if( count == 1 ) { + value = e.get_variant_or_void( stat->field_ ); + stats.stat_value_changed( stat->id_, value ); + } else { + return; + } + } + + void events_reset( const event_multiset &, stats_tracker &stats ) override { + init( stats ); + stats.stat_value_changed( stat->id_, value ); + } + + const event_statistic_first_value *stat; + int count; + cata_variant value; + }; + + std::unique_ptr watch( stats_tracker &stats ) const override { + return std::make_unique( this, stats ); + } + + void check( const std::string &name ) const override { + cata::event::fields_type event_fields = source_->fields(); + auto it = event_fields.find( field_ ); + if( it == event_fields.end() ) { + debugmsg( "event_statistic %s refers to field %s in event source %s, but that source " + "has no such field", name, field_, source_->debug_description() ); + } + } + + cata_variant_type type() const override { + cata::event::fields_type source_fields = source_->fields(); + auto it = source_fields.find( field_ ); + if( it == source_fields.end() ) { + return cata_variant_type::void_; + } else { + return it->second; + } + } + + monotonically monotonicity() const override { + if( source_->is_game_start() ) { + return monotonically::constant; + } else { + return monotonically::unknown; + } + } + + std::unique_ptr clone() const override { + return std::make_unique( *this ); + } +}; + +struct event_statistic_last_value : event_statistic::impl { + event_statistic_last_value( const string_id &id, + std::unique_ptr s, + const std::string &field ) : + id_( id ), source_( std::move( s ) ), field_( field ) + {} + + string_id id_; + cata::clone_ptr source_; + std::string field_; + + cata_variant value( stats_tracker &stats ) const override { + const event_multiset &events = source_->get( stats ); + const cata::optional d = events.last(); + if( d ) { + auto it = d->first.find( field_ ); + if( it == d->first.end() ) { + return cata_variant(); + } + return it->second; + } + return cata_variant(); + } + + struct state : stats_tracker_state, event_multiset_watcher { + state( const event_statistic_last_value *s, stats_tracker &stats ) : + stat( s ) { + init( stats ); + stat->source_->add_watcher( stats, this ); + } + + void init( stats_tracker &stats ) { + value = stat->value( stats ); + } + + void event_added( const cata::event &e, stats_tracker &stats ) override { + value = e.get_variant_or_void( stat->field_ ); + stats.stat_value_changed( stat->id_, value ); + } + + void events_reset( const event_multiset &, stats_tracker &stats ) override { + init( stats ); + stats.stat_value_changed( stat->id_, value ); + } + + const event_statistic_last_value *stat; + cata_variant value; + }; + + std::unique_ptr watch( stats_tracker &stats ) const override { + return std::make_unique( this, stats ); + } + + void check( const std::string &name ) const override { + cata::event::fields_type event_fields = source_->fields(); + auto it = event_fields.find( field_ ); + if( it == event_fields.end() ) { + debugmsg( "event_statistic %s refers to field %s in event source %s, but that source " + "has no such field", name, field_, source_->debug_description() ); + } + } + + cata_variant_type type() const override { + cata::event::fields_type source_fields = source_->fields(); + auto it = source_fields.find( field_ ); + if( it == source_fields.end() ) { + return cata_variant_type::void_; + } else { + return it->second; + } + } + + monotonically monotonicity() const override { + if( source_->is_game_start() ) { + return monotonically::constant; + } else { + return monotonically::unknown; + } + } + + std::unique_ptr clone() const override { + return std::make_unique( *this ); + } +}; + cata_variant event_statistic::value( stats_tracker &stats ) const { return impl_->value( stats ); @@ -1002,6 +1175,16 @@ void event_statistic::load( const JsonObject &jo, const std::string & ) mandatory( jo, was_loaded, "field", field ); impl_ = std::make_unique( id, event_source::load( jo ), field ); + } else if( type == "first_value" ) { + std::string field; + mandatory( jo, was_loaded, "field", field ); + impl_ = std::make_unique( + id, event_source::load( jo ), field ); + } else if( type == "last_value" ) { + std::string field; + mandatory( jo, was_loaded, "field", field ); + impl_ = std::make_unique( + id, event_source::load( jo ), field ); } else { jo.throw_error( "Invalid stat_type '" + type + "'" ); } diff --git a/src/explosion.cpp b/src/explosion.cpp index 7c328cbba7a5f..5fb550f21d0a4 100644 --- a/src/explosion.cpp +++ b/src/explosion.cpp @@ -69,7 +69,11 @@ static const std::string flag_FLASH_PROTECTION( "FLASH_PROTECTION" ); static const itype_id fuel_type_none( "null" ); -static const species_id ROBOT( "ROBOT" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_e_handcuffs( "e_handcuffs" ); +static const itype_id itype_rm13_armor_on( "rm13_armor_on" ); + +static const species_id species_ROBOT( "ROBOT" ); static const trait_id trait_LEG_TENT_BRACE( "LEG_TENT_BRACE" ); static const trait_id trait_PER_SLIME( "PER_SLIME" ); @@ -170,6 +174,7 @@ static void do_blast( const tripoint &p, const float power, std::priority_queue< std::pair, std::vector< std::pair >, pair_greater_cmp_first > open; std::set closed; + std::set bashed{ p }; std::map dist_map; open.push( std::make_pair( 0.0f, p ) ); dist_map[p] = 0.0f; @@ -214,21 +219,24 @@ static void do_blast( const tripoint &p, const float power, continue; } - // Up to 200% bonus for shaped charge - // But not if the explosion is fiery, then only half the force and no bonus - const float bash_force = !fire ? - force + ( 2 * force / empty_neighbors ) : - force / 2; - if( z_offset[i] == 0 ) { - // Horizontal - no floor bashing - 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 - 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 - g->m.bash( pt, bash_force, true, false, true ); + if( bashed.count( dest ) != 0 ) { + bashed.insert( dest ); + // Up to 200% bonus for shaped charge + // But not if the explosion is fiery, then only half the force and no bonus + const float bash_force = !fire ? + force + ( 2 * force / empty_neighbors ) : + force / 2; + if( z_offset[i] == 0 ) { + // Horizontal - no floor bashing + 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 + 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 + g->m.bash( pt, bash_force, true, false, true ); + } } float next_dist = distance; @@ -275,7 +283,9 @@ static void do_blast( const tripoint &p, const float power, continue; } - g->m.smash_items( pt, force, _( "force of the explosion" ) ); + if( g->m.has_items( pt ) ) { + g->m.smash_items( pt, force, _( "force of the explosion" ) ); + } if( fire ) { int intensity = ( force > 50.0f ) + ( force > 100.0f ); @@ -339,7 +349,7 @@ static void do_blast( const tripoint &p, const float power, for( const auto &blp : blast_parts ) { const int part_dam = rng( force * blp.low_mul, force * blp.high_mul ); - const std::string hit_part_name = body_part_name_accusative( blp.bp->token ); + const std::string hit_part_name = body_part_name_accusative( blp.bp ); const auto dmg_instance = damage_instance( DT_BASH, part_dam, 0, blp.armor_mul ); const auto result = pl->deal_damage( nullptr, blp.bp, dmg_instance ); const int res_dmg = result.total_damage(); @@ -515,7 +525,7 @@ void explosion( const tripoint &p, const explosion_data &ex ) auto shrapnel_locations = shrapnel( p, ex.power, shr.casing_mass, shr.fragment_mass ); // If explosion drops shrapnel... - if( shr.recovery > 0 && shr.drop != "null" ) { + if( shr.recovery > 0 && !shr.drop.is_null() ) { // Extract only passable tiles affected by shrapnel std::vector tiles; @@ -543,7 +553,7 @@ void flashbang( const tripoint &p, bool player_immune ) draw_explosion( p, 8, c_white ); int dist = rl_dist( g->u.pos(), p ); if( dist <= 8 && !player_immune ) { - if( !g->u.has_bionic( bio_ears ) && !g->u.is_wearing( "rm13_armor_on" ) ) { + if( !g->u.has_bionic( bio_ears ) && !g->u.is_wearing( itype_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 ) ) { @@ -555,7 +565,7 @@ void flashbang( const tripoint &p, bool player_immune ) } else if( g->u.has_trait( trait_PER_SLIME_OK ) ) { flash_mod = 8; // Just retract those and extrude fresh eyes } else if( g->u.has_bionic( bio_sunglasses ) || - g->u.is_wearing( "rm13_armor_on" ) ) { + g->u.is_wearing( itype_rm13_armor_on ) ) { flash_mod = 6; } else if( g->u.worn_with_flag( flag_BLIND ) || g->u.worn_with_flag( flag_FLASH_PROTECTION ) ) { flash_mod = 3; // Not really proper flash protection, but better than nothing @@ -565,7 +575,7 @@ void flashbang( const tripoint &p, bool player_immune ) } } for( monster &critter : g->all_monsters() ) { - if( critter.type->in_species( ROBOT ) ) { + if( critter.type->in_species( species_ROBOT ) ) { continue; } // TODO: can the following code be called for all types of creatures @@ -680,10 +690,10 @@ void emp_blast( const tripoint &p ) int deact_chance = 0; const auto mon_item_id = critter.type->revert_to_itype; switch( critter.get_size() ) { - case MS_TINY: + case creature_size::tiny: deact_chance = 6; break; - case MS_SMALL: + case creature_size::small: deact_chance = 3; break; default: @@ -691,7 +701,7 @@ void emp_blast( const tripoint &p ) // Maybe export this to json? break; } - if( !mon_item_id.empty() && deact_chance != 0 && one_in( deact_chance ) ) { + if( !mon_item_id.is_empty() && deact_chance != 0 && one_in( deact_chance ) ) { if( sight ) { add_msg( _( "The %s beeps erratically and deactivates!" ), critter.name() ); } @@ -739,7 +749,7 @@ void emp_blast( const tripoint &p ) } // TODO: More effects? //e-handcuffs effects - if( g->u.weapon.typeId() == "e_handcuffs" && g->u.weapon.charges > 0 ) { + if( g->u.weapon.typeId() == itype_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; @@ -749,7 +759,7 @@ void emp_blast( const tripoint &p ) } // Drain any items of their battery charge for( auto &it : g->m.i_at( point( x, y ) ) ) { - if( it.is_tool() && it.ammo_current() == "battery" ) { + if( it.is_tool() && it.ammo_current() == itype_battery ) { it.charges = 0; } } diff --git a/src/explosion.h b/src/explosion.h index c24d5f2087051..b13cbc74ef740 100644 --- a/src/explosion.h +++ b/src/explosion.h @@ -5,7 +5,7 @@ #include #include -using itype_id = std::string; +#include "type_id.h" struct tripoint; class JsonObject; @@ -16,11 +16,11 @@ struct shrapnel_data { float fragment_mass = 0.005; // Percentage int recovery = 0; - itype_id drop = "null"; + itype_id drop = itype_id::NULL_ID(); shrapnel_data() = default; shrapnel_data( int casing_mass, float fragment_mass = 0.005, int recovery = 0, - itype_id drop = "null" ) + itype_id drop = itype_id::NULL_ID() ) : casing_mass( casing_mass ) , fragment_mass( fragment_mass ) , recovery( recovery ) diff --git a/src/faction.cpp b/src/faction.cpp index 92125923ad090..b5fcf2d66f23e 100644 --- a/src/faction.cpp +++ b/src/faction.cpp @@ -49,7 +49,7 @@ faction_template::faction_template() size = 0; power = 0; lone_wolf_faction = false; - currency = "null"; + currency = itype_id::NULL_ID(); } faction::faction( const faction_template &templ ) @@ -106,9 +106,9 @@ faction_template::faction_template( const JsonObject &jsobj ) , wealth( jsobj.get_int( "wealth" ) ) { if( jsobj.has_string( "currency" ) ) { - currency = jsobj.get_string( "currency" ); + jsobj.read( "currency", currency, true ); } else { - currency = "null"; + currency = itype_id::NULL_ID(); } lone_wolf_faction = jsobj.get_bool( "lone_wolf_faction", false ); load_relations( jsobj ); @@ -811,7 +811,7 @@ void faction_manager::display() const default: break; } - wrefresh( w_missions ); + wnoutrefresh( w_missions ); } ); while( true ) { diff --git a/src/faction.h b/src/faction.h index 9c9f2ae1ac506..fef4dbc5845aa 100644 --- a/src/faction.h +++ b/src/faction.h @@ -85,7 +85,7 @@ class faction_template int food_supply; //Total nutritional value held int wealth; //Total trade currency bool lone_wolf_faction; // is this a faction for just one person? - std::string currency; // itype_id of the faction currency + itype_id currency; // id of the faction currency std::map> relations; std::string mon_faction; // mon_faction_id of the monster faction; defaults to human std::set> epilogue_data; diff --git a/src/faction_camp.cpp b/src/faction_camp.cpp index 4bc0114ba3044..2b8a7e810196c 100644 --- a/src/faction_camp.cpp +++ b/src/faction_camp.cpp @@ -82,11 +82,15 @@ class character_id; static const activity_id ACT_MOVE_LOOT( "ACT_MOVE_LOOT" ); +static const itype_id itype_fungal_seeds( "fungal_seeds" ); +static const itype_id itype_log( "log" ); +static const itype_id itype_marloss_seed( "marloss_seed" ); + static const std::string flag_PLOWABLE( "PLOWABLE" ); static const std::string flag_TREE( "TREE" ); -static const zone_type_id zone_type_camp_food( "CAMP_FOOD" ); -static const zone_type_id zone_type_camp_storage( "CAMP_STORAGE" ); +static const zone_type_id zone_type_CAMP_FOOD( "CAMP_FOOD" ); +static const zone_type_id zone_type_CAMP_STORAGE( "CAMP_STORAGE" ); static const skill_id skill_bashing( "bashing" ); static const skill_id skill_cutting( "cutting" ); @@ -374,7 +378,7 @@ int om_harvest_ter_break( npc &comp, const tripoint &omt_tgt, const ter_id &t, i /// Collects all items in @ref omt_tgt with a @ref chance between 0 - 1.0, returns total /// mass and volume /// @ref take, whether you take the item or count it -mass_volume om_harvest_itm( npc_ptr comp, const tripoint &omt_tgt, int chance = 100, +mass_volume om_harvest_itm( const npc_ptr &comp, const tripoint &omt_tgt, int chance = 100, bool take = true ); void apply_camp_ownership( const tripoint &camp_pos, int radius ); /* @@ -429,11 +433,11 @@ time_duration companion_travel_time_calc( const std::vector &journey, int trips = 1, int haulage = 0 ); /// Determines how many round trips a given NPC @ref comp will take to move all of the /// items @ref itms -int om_carry_weight_to_trips( const std::vector &itms, npc_ptr comp = nullptr ); +int om_carry_weight_to_trips( const std::vector &itms, const npc_ptr &comp = nullptr ); /// Determines how many trips it takes to move @ref mass and @ref volume of items /// with @ref carry_mass and @ref carry_volume moved per trip -int om_carry_weight_to_trips( units::mass mass, units::volume volume, units::mass carry_mass, - units::volume carry_volume ); +int om_carry_weight_to_trips( const units::mass &mass, const units::volume &volume, + const units::mass &carry_mass, const units::volume &carry_volume ); /// Formats the variables into a standard looking description to be displayed in a ynquery window std::string camp_trip_description( const time_duration &total_time, const time_duration &working_time, @@ -645,8 +649,8 @@ void talk_function::basecamp_mission( npc &p ) } tripoint src_loc; const auto abspos = p.global_square_location(); - if( mgr.has_near( zone_type_camp_storage, abspos, 60 ) ) { - const auto &src_set = mgr.get_near( zone_type_camp_storage, abspos ); + if( mgr.has_near( zone_type_CAMP_STORAGE, abspos, 60 ) ) { + const auto &src_set = mgr.get_near( zone_type_CAMP_STORAGE, abspos ); const auto &src_sorted = get_sorted_tiles_by_distance( abspos, src_set ); // Find the nearest unsorted zone to dump objects at for( auto &src : src_sorted ) { @@ -681,7 +685,6 @@ void basecamp::add_available_recipes( mission_data &mission_key, const point &di void basecamp::get_available_missions_by_dir( mission_data &mission_key, const point &dir ) { std::string entry; - std::string gather_bldg = "null"; const std::string dir_id = base_camps::all_directions.at( dir ).id; const std::string dir_abbr = base_camps::all_directions.at( dir ).bracket_abbr.translated(); @@ -719,6 +722,7 @@ void basecamp::get_available_missions_by_dir( mission_data &mission_key, const p } if( has_provides( "gathering", dir ) ) { + std::string gather_bldg = "null"; comp_list npc_list = get_mission_workers( "_faction_camp_gathering" ); const base_camps::miss_data &miss_info = base_camps::miss_info[ "_faction_camp_gathering" ]; entry = string_format( _( "Notes:\n" @@ -745,11 +749,11 @@ void basecamp::get_available_missions_by_dir( mission_data &mission_key, const p comp_list npc_list = get_mission_workers( "_faction_camp_firewood" ); const base_camps::miss_data &miss_info = base_camps::miss_info[ "_faction_camp_firewood" ]; entry = string_format( _( "Notes:\n" - "Send a companion to gather light brush and heavy sticks.\n\n" + "Send a companion to gather light brush and stout branches.\n\n" "Skill used: survival\n" "Difficulty: N/A\n" "Gathering Possibilities:\n" - "> heavy sticks\n" + "> stout branches\n" "> withered plants\n" "> splintered wood\n\n" "Risk: Very Low\n" @@ -1203,7 +1207,6 @@ void basecamp::get_available_missions( mission_data &mission_key ) const point &base_dir = base_camps::base_dir; const base_camps::direction_data &base_data = base_camps::all_directions.at( base_dir ); const std::string base_dir_id = base_data.id; - const std::string base_dir_abbr = base_data.bracket_abbr.translated(); reset_camp_resources(); std::string gather_bldg = "null"; @@ -1243,6 +1246,7 @@ void basecamp::get_available_missions( mission_data &mission_key ) std::map craft_recipes = recipe_deck( base_camps::base_dir ); add_available_recipes( mission_key, base_camps::base_dir, craft_recipes ); } else { + const std::string base_dir_abbr = base_data.bracket_abbr.translated(); entry = miss_info.action.translated(); bool avail = update_time_left( entry, npc_list ); mission_key.add_return( base_dir_id + miss_info.ret_miss_id, @@ -1541,10 +1545,6 @@ bool basecamp::handle_mission( const std::string &miss_id, emergency_recall(); } - g->draw_ter(); - wrefresh( g->w_terrain ); - g->draw_panels( true ); - return true; } @@ -1693,7 +1693,7 @@ void basecamp::worker_assignment_ui() } mvwprintz( w_followers, point( 1, FULL_SCREEN_HEIGHT - 1 ), c_light_gray, _( "Press %s to assign this follower to this camp." ), ctxt.get_desc( "CONFIRM" ) ); - wrefresh( w_followers ); + wnoutrefresh( w_followers ); } ); while( true ) { @@ -1806,7 +1806,7 @@ void basecamp::job_assignment_ui() } mvwprintz( w_jobs, point( 1, FULL_SCREEN_HEIGHT - 1 ), c_light_gray, _( "Press %s to change this workers job priorities." ), ctxt.get_desc( "CONFIRM" ) ); - wrefresh( w_jobs ); + wnoutrefresh( w_jobs ); } ); while( true ) { @@ -1917,7 +1917,6 @@ void basecamp::start_cut_logs() chop_time, travel_time, dist, 2, time_to_food( work_time ) ) ) ) { return; } - g->draw_ter(); npc_ptr comp = start_mission( "_faction_camp_cut_log", work_time, true, _( "departs to cut logs…" ), false, {}, @@ -1963,7 +1962,6 @@ void basecamp::start_clearcut() chop_time, travel_time, dist, 2, time_to_food( work_time ) ) ) ) { return; } - g->draw_ter(); npc_ptr comp = start_mission( "_faction_camp_clearcut", work_time, true, _( "departs to clear a forest…" ), false, {}, @@ -2268,11 +2266,11 @@ void basecamp::start_crafting( const std::string &cur_id, const point &cur_dir, static bool farm_valid_seed( const item &itm ) { - return itm.is_seed() && itm.typeId() != "marloss_seed" && itm.typeId() != "fungal_seeds"; + return itm.is_seed() && itm.typeId() != itype_marloss_seed && itm.typeId() != itype_fungal_seeds; } static std::pair farm_action( const tripoint &omt_tgt, farm_ops op, - npc_ptr comp = nullptr ) + const npc_ptr &comp = nullptr ) { size_t plots_cnt = 0; std::string crops; @@ -2492,7 +2490,7 @@ bool basecamp::start_garage_chop( const point &dir, const tripoint &omt_tgt ) if( !broken && !skill_break ) { //Higher level garages will salvage liquids from tanks if( !p_all[prt].is_battery() ) { - p_all[prt].ammo_consume( p_all[prt].ammo_capacity(), + p_all[prt].ammo_consume( p_all[prt].ammo_remaining(), car->global_part_pos3( p_all[prt] ) ); } comp->companion_mission_inv.add_item( p_all[prt].properties_to_item() ); @@ -3010,7 +3008,7 @@ void talk_function::draw_camp_tabs( const catacurses::window &win, tab_space += tab_step + utf8_width( t ); tab_x++; } - wrefresh( win ); + wnoutrefresh( win ); } std::string talk_function::name_mission_tabs( const tripoint &omt_pos, const std::string &role_id, @@ -3252,7 +3250,7 @@ int om_cutdown_trees( const tripoint &omt_tgt, int chance, bool estimate, bool f for( const tripoint &p : target_bay.points_in_rectangle( mapmin, mapmax ) ) { if( target_bay.ter( p ) == ter_id( "t_trunk" ) ) { target_bay.ter_set( p, t_dirt ); - target_bay.spawn_item( p, "log", rng( 2, 3 ), 0, calendar::turn ); + target_bay.spawn_item( p, itype_log, rng( 2, 3 ), 0, calendar::turn ); harvested++; } } @@ -3260,7 +3258,7 @@ int om_cutdown_trees( const tripoint &omt_tgt, int chance, bool estimate, bool f return harvested; } -mass_volume om_harvest_itm( npc_ptr comp, const tripoint &omt_tgt, int chance, bool take ) +mass_volume om_harvest_itm( const npc_ptr &comp, const tripoint &omt_tgt, int chance, bool take ) { tinymap target_bay; target_bay.load( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), false ); @@ -3488,8 +3486,8 @@ time_duration companion_travel_time_calc( const std::vector &journey, return work + one_way * trips * 1_seconds; } -int om_carry_weight_to_trips( units::mass mass, units::volume volume, - units::mass carry_mass, units::volume carry_volume ) +int om_carry_weight_to_trips( const units::mass &mass, const units::volume &volume, + const units::mass &carry_mass, const units::volume &carry_volume ) { int trips_m = 1 + mass / carry_mass; int trips_v = 1 + volume / carry_volume; @@ -3497,7 +3495,7 @@ int om_carry_weight_to_trips( units::mass mass, units::volume volume, return 2 * std::max( trips_m, trips_v ); } -int om_carry_weight_to_trips( const std::vector &itms, npc_ptr comp ) +int om_carry_weight_to_trips( const std::vector &itms, const npc_ptr &comp ) { units::mass total_m = 0_gram; units::volume total_v = 0_ml; @@ -3555,9 +3553,6 @@ std::vector basecamp::give_equipment( std::vector equipment, { std::vector equipment_lost; do { - g->draw_ter(); - wrefresh( g->w_terrain ); - std::vector names; names.reserve( equipment.size() ); for( auto &i : equipment ) { @@ -3583,15 +3578,15 @@ bool basecamp::validate_sort_points() } tripoint src_loc = g->m.getlocal( bb_pos ) + point_north; const tripoint abspos = g->m.getabs( g->u.pos() ); - if( !mgr.has_near( zone_type_camp_storage, abspos, 60 ) || - !mgr.has_near( zone_type_camp_food, abspos, 60 ) ) { + if( !mgr.has_near( zone_type_CAMP_STORAGE, abspos, 60 ) || + !mgr.has_near( zone_type_CAMP_FOOD, abspos, 60 ) ) { if( query_yn( _( "You do not have sufficient sort zones. Do you want to add them?" ) ) ) { return set_sort_points(); } else { return false; } } else { - const std::unordered_set &src_set = mgr.get_near( zone_type_camp_storage, abspos ); + const std::unordered_set &src_set = mgr.get_near( zone_type_CAMP_STORAGE, abspos ); const std::vector &src_sorted = get_sorted_tiles_by_distance( abspos, src_set ); // Find the nearest unsorted zone to dump objects at for( auto &src : src_sorted ) { @@ -3837,7 +3832,7 @@ std::string camp_car_description( vehicle *car ) const vpart_info &vp = pt.info(); entry += string_format( ">%s:%*d%%\n", vp.name(), 32 - utf8_width( vp.name() ), static_cast( 100.0 * pt.ammo_remaining() / - pt.ammo_capacity() ) ); + pt.ammo_capacity( ammotype( "battery" ) ) ) ); } } entry += "\n"; @@ -3885,7 +3880,7 @@ bool basecamp::distribute_food() mgr.cache_vzones(); } const tripoint &abspos = get_dumping_spot(); - const std::unordered_set &z_food = mgr.get_near( zone_type_camp_food, abspos, 60 ); + const std::unordered_set &z_food = mgr.get_near( zone_type_CAMP_FOOD, abspos, 60 ); tripoint p_litter = omt_to_sm_copy( omt_pos ) + point( -7, 0 ); @@ -3969,7 +3964,7 @@ int camp_morale( int change ) return yours->likes_u; } -void basecamp::place_results( item result ) +void basecamp::place_results( const item &result ) { if( by_radio ) { tinymap target_bay; @@ -3984,8 +3979,8 @@ void basecamp::place_results( item result ) mgr.cache_vzones(); } const auto abspos = g->m.getabs( g->u.pos() ); - if( mgr.has_near( zone_type_camp_storage, abspos ) ) { - const auto &src_set = mgr.get_near( zone_type_camp_storage, abspos ); + if( mgr.has_near( zone_type_CAMP_STORAGE, abspos ) ) { + const auto &src_set = mgr.get_near( zone_type_CAMP_STORAGE, abspos ); const auto &src_sorted = get_sorted_tiles_by_distance( abspos, src_set ); // Find the nearest unsorted zone to dump objects at for( auto &src : src_sorted ) { diff --git a/src/faction_camp.h b/src/faction_camp.h index be2f5049caa9f..05ea8883892c1 100644 --- a/src/faction_camp.h +++ b/src/faction_camp.h @@ -17,7 +17,7 @@ struct point; struct tripoint; struct mission_entry; -enum class farm_ops { +enum class farm_ops : int { plow = 1, plant = 2, harvest = 4 diff --git a/src/field.cpp b/src/field.cpp index 08dfb532514cf..bbf8102195051 100644 --- a/src/field.cpp +++ b/src/field.cpp @@ -71,6 +71,11 @@ float field_entry::light_emitted() const return type.obj().get_light_emitted( intensity - 1 ); } +float field_entry::local_light_override() const +{ + return type.obj().get_local_light_override( intensity - 1 ); +} + float field_entry::translucency() const { return type.obj().get_translucency( intensity - 1 ); diff --git a/src/field.h b/src/field.h index 441fa29dd167a..38aabd02041a4 100644 --- a/src/field.h +++ b/src/field.h @@ -43,6 +43,7 @@ class field_entry mongroup_id monster_spawn_group() const; float light_emitted() const; + float local_light_override() const; float translucency() const; bool is_transparent() const; int convection_temperature_mod() const; @@ -90,7 +91,7 @@ class field_entry } bool gas_can_spread() { - return is_field_alive() && type.obj().phase == GAS && type.obj().percent_spread > 0; + return is_field_alive() && type.obj().phase == phase_id::GAS && type.obj().percent_spread > 0; } time_duration get_underwater_age_speedup() const { diff --git a/src/field_type.cpp b/src/field_type.cpp index 9c8371026087d..c08adb314a043 100644 --- a/src/field_type.cpp +++ b/src/field_type.cpp @@ -164,6 +164,8 @@ void field_type::load( const JsonObject &jo, const std::string & ) fallback_intensity_level.monster_spawn_group ); optional( jao, was_loaded, "light_emitted", intensity_level.light_emitted, fallback_intensity_level.light_emitted ); + optional( jao, was_loaded, "light_override", intensity_level.local_light_override, + fallback_intensity_level.local_light_override ); optional( jao, was_loaded, "translucency", intensity_level.translucency, fallback_intensity_level.translucency ); optional( jao, was_loaded, "convection_temperature_mod", intensity_level.convection_temperature_mod, @@ -241,7 +243,7 @@ void field_type::load( const JsonObject &jo, const std::string & ) optional( jo, was_loaded, "description_affix", desc_affix, description_affix_reader, description_affix::DESCRIPTION_AFFIX_IN ); if( jo.has_member( "phase" ) ) { - phase = jo.get_enum_value( "phase", PNULL ); + phase = jo.get_enum_value( "phase", phase_id::PNULL ); } optional( jo, was_loaded, "accelerated_decay", accelerated_decay, false ); optional( jo, was_loaded, "display_items", display_items, true ); diff --git a/src/field_type.h b/src/field_type.h index b2a91eb605fa2..a83ef1b17428a 100644 --- a/src/field_type.h +++ b/src/field_type.h @@ -25,9 +25,6 @@ class JsonObject; template struct enum_traits; -enum phase_id : int; -enum body_part : int; - enum class description_affix : int { DESCRIPTION_AFFIX_IN, DESCRIPTION_AFFIX_COVERED_IN, @@ -109,6 +106,7 @@ struct field_intensity_level { int monster_spawn_radius = 0; mongroup_id monster_spawn_group; float light_emitted = 0.0f; + float local_light_override = -1.0f; float translucency = 0.0f; int convection_temperature_mod = 0; int scent_neutralization = 0; @@ -158,7 +156,7 @@ struct field_type { int priority = 0; time_duration half_life = 0_turns; - phase_id phase = PNULL; + phase_id phase = phase_id::PNULL; bool accelerated_decay = false; bool display_items = true; bool display_field = false; @@ -224,6 +222,9 @@ struct field_type { float get_light_emitted( int level = 0 ) const { return get_intensity_level( level ).light_emitted; } + float get_local_light_override( int level = 0 )const { + return get_intensity_level( level ).local_light_override; + } float get_translucency( int level = 0 ) const { return get_intensity_level( level ).translucency; } diff --git a/src/font_loader.h b/src/font_loader.h index 7ed514ad99993..b4c4d0bb4a56d 100644 --- a/src/font_loader.h +++ b/src/font_loader.h @@ -88,10 +88,10 @@ class font_loader /// @throws std::exception upon any kind of error. void load() { const std::string fontdata = PATH_INFO::fontdata(); - const std::string legacy_fontdata = PATH_INFO::legacy_fontdata(); if( file_exist( fontdata ) ) { load_throws( fontdata ); } else { + const std::string legacy_fontdata = PATH_INFO::legacy_fontdata(); load_throws( legacy_fontdata ); assure_dir_exist( PATH_INFO::config_dir() ); save( fontdata ); diff --git a/src/fragment_cloud.h b/src/fragment_cloud.h index ad29d18923605..900d50a4339f2 100644 --- a/src/fragment_cloud.h +++ b/src/fragment_cloud.h @@ -2,7 +2,7 @@ #ifndef CATA_SRC_FRAGMENT_CLOUD_H #define CATA_SRC_FRAGMENT_CLOUD_H -enum class quadrant; +enum class quadrant : int; /* * fragment_cloud represents the density and velocity of fragments passing through a square. */ diff --git a/src/fungal_effects.cpp b/src/fungal_effects.cpp index 9b9acba8f1bd5..8efcfad91e61c 100644 --- a/src/fungal_effects.cpp +++ b/src/fungal_effects.cpp @@ -36,7 +36,7 @@ static const skill_id skill_melee( "melee" ); static const mtype_id mon_fungal_blossom( "mon_fungal_blossom" ); static const mtype_id mon_spore( "mon_spore" ); -static const species_id FUNGUS( "FUNGUS" ); +static const species_id species_FUNGUS( "FUNGUS" ); static const trait_id trait_TAIL_CATTLE( "TAIL_CATTLE" ); static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" ); @@ -64,7 +64,7 @@ void fungal_effects::fungalize( const tripoint &p, Creature *origin, double spor if( monster *const mon_ptr = g->critter_at( p ) ) { monster &critter = *mon_ptr; if( gm.u.sees( p ) && - !critter.type->in_species( FUNGUS ) ) { + !critter.type->in_species( species_FUNGUS ) ) { add_msg( _( "The %s is covered in tiny spores!" ), critter.name() ); } if( !critter.make_fungus() ) { diff --git a/src/game.cpp b/src/game.cpp index 0a8ea49ece338..80c7ead7a195a 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -71,6 +71,7 @@ #include "game_ui.h" #include "gamemode.h" #include "gates.h" +#include "get_version.h" #include "harvest.h" #include "help.h" #include "iexamine.h" @@ -107,6 +108,7 @@ #include "monexamine.h" #include "monstergenerator.h" #include "morale_types.h" +#include "move_mode.h" #include "mtype.h" #include "npc.h" #include "npc_class.h" @@ -122,6 +124,7 @@ #include "player.h" #include "player_activity.h" #include "popup.h" +#include "profession.h" #include "recipe.h" #include "recipe_dictionary.h" #include "ret_val.h" @@ -155,6 +158,7 @@ #include "wcwidth.h" #include "weather.h" #include "worldfactory.h" +#include "fungal_effects.h" class computer; class inventory; @@ -183,21 +187,21 @@ static constexpr int DANGEROUS_PROXIMITY = 5; /** Will be set to true when running unit tests */ bool test_mode = false; +static const activity_id ACT_OPERATION( "ACT_OPERATION" ); + static const mtype_id mon_manhack( "mon_manhack" ); static const skill_id skill_melee( "melee" ); static const skill_id skill_dodge( "dodge" ); +static const skill_id skill_gun( "gun" ); static const skill_id skill_firstaid( "firstaid" ); static const skill_id skill_survival( "survival" ); -static const skill_id skill_electronics( "electronics" ); -static const skill_id skill_computer( "computer" ); -static const species_id PLANT( "PLANT" ); +static const species_id species_PLANT( "PLANT" ); static const efftype_id effect_adrenaline_mycus( "adrenaline_mycus" ); static const efftype_id effect_assisted( "assisted" ); static const efftype_id effect_blind( "blind" ); -static const efftype_id effect_boomered( "boomered" ); static const efftype_id effect_bouldering( "bouldering" ); static const efftype_id effect_contacts( "contacts" ); static const efftype_id effect_controlled( "controlled" ); @@ -211,7 +215,6 @@ static const efftype_id effect_laserlocked( "laserlocked" ); static const efftype_id effect_no_sight( "no_sight" ); static const efftype_id effect_npc_suspend( "npc_suspend" ); static const efftype_id effect_onfire( "onfire" ); -static const efftype_id effect_pacified( "pacified" ); static const efftype_id effect_paid( "paid" ); static const efftype_id effect_pet( "pet" ); static const efftype_id effect_ridden( "ridden" ); @@ -221,9 +224,21 @@ static const efftype_id effect_stunned( "stunned" ); static const efftype_id effect_tetanus( "tetanus" ); static const efftype_id effect_tied( "tied" ); static const efftype_id effect_winded( "winded" ); +static const efftype_id effect_fungus( "fungus" ); static const bionic_id bio_remote( "bio_remote" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_grapnel( "grapnel" ); +static const itype_id itype_holybook_bible1( "holybook_bible1" ); +static const itype_id itype_holybook_bible2( "holybook_bible2" ); +static const itype_id itype_holybook_bible3( "holybook_bible3" ); +static const itype_id itype_manhole_cover( "manhole_cover" ); +static const itype_id itype_remotevehcontrol( "remotevehcontrol" ); +static const itype_id itype_rm13_armor_on( "rm13_armor_on" ); +static const itype_id itype_rope_30( "rope_30" ); +static const itype_id itype_swim_fins( "swim_fins" ); + static const trait_id trait_BADKNEES( "BADKNEES" ); static const trait_id trait_ILLITERATE( "ILLITERATE" ); static const trait_id trait_INFIMMUNE( "INFIMMUNE" ); @@ -237,7 +252,7 @@ static const trait_id trait_THICKSKIN( "THICKSKIN" ); static const trap_str_id tr_unfinished_construction( "tr_unfinished_construction" ); -static const faction_id your_followers( "your_followers" ); +static const faction_id faction_your_followers( "your_followers" ); #if defined(__ANDROID__) extern std::map> quick_shortcuts_map; @@ -263,33 +278,39 @@ static void achievement_attained( const achievement *a, bool achievements_enable g->u.add_msg_if_player( m_good, _( "You completed the achievement \"%s\"." ), a->name() ); } + g->events().send( a->id, achievements_enabled ); +} + +static void achievement_failed( const achievement *a, bool achievements_enabled ) +{ + if( !a->is_conduct() ) { + return; + } + if( achievements_enabled ) { + g->u.add_msg_if_player( m_bad, _( "You lost the conduct \"%s\"." ), a->name() ); + } + g->events().send( a->id, achievements_enabled ); } // This is the main game set-up process. game::game() : liveview( *liveview_ptr ), scent_ptr( *this ), - achievements_tracker_ptr( *stats_tracker_ptr, achievement_attained ), + achievements_tracker_ptr( *stats_tracker_ptr, achievement_attained, achievement_failed ), m( *map_ptr ), u( *u_ptr ), scent( *scent_ptr ), timed_events( *timed_event_manager_ptr ), uquit( QUIT_NO ), - new_game( false ), safe_mode( SAFE_MODE_ON ), - pixel_minimap_option( 0 ), - mostseen( 0 ), u_shared_ptr( &u, null_deleter{} ), - safe_mode_warning_logged( false ), next_npc_id( 1 ), next_mission_id( 1 ), remoteveh_cache_time( calendar::before_time_starts ), - user_action_counter( 0 ), tileset_zoom( DEFAULT_TILESET_ZOOM ), - seed( 0 ), last_mouse_edge_scroll( std::chrono::steady_clock::now() ) { - player_was_sleeping = false; + first_redraw_since_waiting_started = true; reset_light_level(); events().subscribe( &*stats_tracker_ptr ); events().subscribe( &*kill_tracker_ptr ); @@ -480,89 +501,16 @@ void game::init_ui( const bool resized ) } else { FULL_SCREEN_HEIGHT = 24; } - #endif - // remove some space for the sidebar, this is the maximal space - // (using standard font) that the terrain window can have - int sidebar_left = panel_manager::get_manager().get_width_left(); - int sidebar_right = panel_manager::get_manager().get_width_right(); - - TERRAIN_WINDOW_HEIGHT = TERMY; - TERRAIN_WINDOW_WIDTH = TERMX - ( sidebar_left + sidebar_right ); - TERRAIN_WINDOW_TERM_WIDTH = TERRAIN_WINDOW_WIDTH; - TERRAIN_WINDOW_TERM_HEIGHT = TERRAIN_WINDOW_HEIGHT; - - /** - * In tiles mode w_terrain can have a different font (with a different - * tile dimension) or can be drawn by cata_tiles which uses tiles that again - * might have a different dimension then the normal font used everywhere else. - * - * TERRAIN_WINDOW_WIDTH/TERRAIN_WINDOW_HEIGHT defines how many squares can - * be displayed in w_terrain (using it's specific tile dimension), not - * including partially drawn squares at the right/bottom. You should - * use it whenever you want to draw specific squares in that window or to - * determine whether a specific square is draw on screen (or outside the screen - * and needs scrolling). - * - * TERRAIN_WINDOW_TERM_WIDTH/TERRAIN_WINDOW_TERM_HEIGHT defines the size of - * w_terrain in the standard font dimension (the font that everything else uses). - * You usually don't have to use it, expect for positioning of windows, - * because the window positions use the standard font dimension. - * - * The code here calculates size available for w_terrain, caps it at - * max_view_size (the maximal view range than any character can have at - * any time). - * It is stored in TERRAIN_WINDOW_*. - */ - to_map_font_dimension( TERRAIN_WINDOW_WIDTH, TERRAIN_WINDOW_HEIGHT ); - - // Position of the player in the terrain window, it is always in the center - POSX = TERRAIN_WINDOW_WIDTH / 2; - POSY = TERRAIN_WINDOW_HEIGHT / 2; - - w_terrain = w_terrain_ptr = catacurses::newwin( TERRAIN_WINDOW_HEIGHT, TERRAIN_WINDOW_WIDTH, - point( sidebar_left, 0 ) ); - werase( w_terrain ); - - /** - * Doing the same thing as above for the overmap - */ - OVERMAP_LEGEND_WIDTH = clamp( TERMX / 5, 28, 55 ); - OVERMAP_WINDOW_HEIGHT = TERMY; - OVERMAP_WINDOW_WIDTH = TERMX - OVERMAP_LEGEND_WIDTH; - to_overmap_font_dimension( OVERMAP_WINDOW_WIDTH, OVERMAP_WINDOW_HEIGHT ); - - //Bring the framebuffer to the maximum required dimensions - //Otherwise it segfaults when the overmap needs a bigger buffer size than it provides - reinitialize_framebuffer(); - - // minimap is always MINIMAP_WIDTH x MINIMAP_HEIGHT in size - int _y = 0; - int _x = 0; - - w_minimap = w_minimap_ptr = catacurses::newwin( MINIMAP_HEIGHT, MINIMAP_WIDTH, point( _x, _y ) ); - werase( w_minimap ); - - // need to init in order to avoid crash. gets updated by the panel code. - w_pixel_minimap = catacurses::newwin( 1, 1, point_zero ); - liveview.init(); - - // Only refresh if we are in-game, otherwise all resources are not initialized - // and this refresh will crash the game. - if( resized && u.getID().is_valid() ) { - refresh_all(); - } } void game::toggle_fullscreen() { #if !defined(TILES) fullscreen = !fullscreen; - init_ui(); - refresh_all(); + mark_main_ui_adaptor_resize(); #else toggle_fullscreen_window(); - refresh_all(); #endif } @@ -573,8 +521,7 @@ void game::toggle_pixel_minimap() clear_window_area( w_pixel_minimap ); } pixel_minimap_option = !pixel_minimap_option; - init_ui(); - refresh_all(); + mark_main_ui_adaptor_resize(); #endif // TILES } @@ -589,7 +536,6 @@ void game::reload_tileset() popup( _( "Loading the tileset failed: %s" ), err.what() ); } g->reset_zoom(); - g->refresh_all(); #endif // TILES } @@ -801,6 +747,9 @@ bool game::start_game() if( scen->has_flag( "INFECTED" ) ) { u.add_effect( effect_infected, 1_turns, random_body_part(), true ); } + if( scen->has_flag( "FUNGAL_INFECTION" ) ) { + u.add_effect( effect_fungus, 1_turns, random_body_part(), true ); + } if( scen->has_flag( "BAD_DAY" ) ) { u.add_effect( effect_flu, 1000_minutes ); u.add_effect( effect_drunk, 270_minutes ); @@ -866,7 +815,11 @@ bool game::start_game() mission->assign( u ); } - g->events().send( u.getID() ); + g->events().send( u.getID(), u.name, u.male, u.prof->ident(), + u.custom_profession, getVersionString() ); + tripoint abs_omt = u.global_omt_location(); + const oter_id &cur_ter = overmap_buffer.ter( abs_omt ); + g->events().send( abs_omt, cur_ter ); return true; } @@ -886,8 +839,6 @@ vehicle *game::place_vehicle_nearby( const vproto_id &id, const point &origin, i } for( const std::string &search_type : search_types ) { omt_find_params find_params; - find_params.must_see = false; - find_params.cant_see = false; find_params.types.emplace_back( search_type, ot_match_type::type ); // find nearest road find_params.min_distance = min_distance; @@ -1047,8 +998,8 @@ bool game::cleanup_at_end() int iNameLine = 0; int iInfoLine = 0; - if( u.has_amount( "holybook_bible1", 1 ) || u.has_amount( "holybook_bible2", 1 ) || - u.has_amount( "holybook_bible3", 1 ) ) { + if( u.has_amount( itype_holybook_bible1, 1 ) || u.has_amount( itype_holybook_bible2, 1 ) || + u.has_amount( itype_holybook_bible3, 1 ) ) { if( !( u.has_trait( trait_id( "CANNIBAL" ) ) || u.has_trait( trait_id( "PSYCHOPATH" ) ) ) ) { vRip.emplace_back( " _______ ___" ); vRip.emplace_back( " < `/ |" ); @@ -1618,39 +1569,43 @@ bool game::do_turn() } const bool player_is_sleeping = u.has_effect( effect_sleep ); - + bool wait_redraw = false; + std::string wait_message; + time_duration wait_refresh_rate; if( player_is_sleeping ) { - if( calendar::once_every( 30_minutes ) || !player_was_sleeping ) { - ui_manager::redraw(); - //Putting this in here to save on checking - if( calendar::once_every( 1_hours ) ) { - add_artifact_dreams( ); + wait_redraw = true; + wait_message = _( "Wait till you wake up…" ); + wait_refresh_rate = 30_minutes; + if( calendar::once_every( 1_hours ) ) { + add_artifact_dreams(); + } + } else if( const cata::optional progress = u.activity.get_progress_message( u ) ) { + wait_redraw = true; + wait_message = *progress; + if( u.activity.is_interruptible() && u.activity.interruptable_with_kb ) { + wait_message += string_format( _( "\n%s to interrupt" ), press_x( ACTION_PAUSE ) ); + } + wait_refresh_rate = 5_minutes; + } + if( wait_redraw ) { + if( first_redraw_since_waiting_started || calendar::once_every( 1_minutes ) ) { + if( first_redraw_since_waiting_started || calendar::once_every( wait_refresh_rate ) ) { + ui_manager::redraw(); } - } - - if( calendar::once_every( 1_minutes ) ) { - query_popup() - .wait_message( "%s", _( "Wait till you wake up…" ) ) - .on_top( true ) - .show(); - catacurses::refresh(); - refresh_display(); - } - } else if( calendar::once_every( 1_minutes ) ) { - if( const cata::optional progress = u.activity.get_progress_message( u ) ) { - query_popup() - .wait_message( "%s", *progress ) - .on_top( true ) - .show(); - - catacurses::refresh(); + // Avoid redrawing the main UI every time due to invalidation + ui_adaptor dummy( ui_adaptor::disable_uis_below {} ); + static_popup popup; + popup.on_top( true ).wait_message( "%s", wait_message ); + ui_manager::redraw(); refresh_display(); + first_redraw_since_waiting_started = false; } + } else { + // Nothing to wait for now + first_redraw_since_waiting_started = true; } - player_was_sleeping = player_is_sleeping; - u.update_bodytemp(); u.update_body_wetness( *weather.weather_precise ); u.apply_wetness_morale( weather.temperature ); @@ -1695,11 +1650,6 @@ void game::process_activity() return; } - if( calendar::once_every( 5_minutes ) ) { - ui_manager::redraw(); - refresh_display(); - } - while( u.moves > 0 && u.activity ) { u.activity.do_turn( u ); } @@ -1922,7 +1872,7 @@ void game::remove_npc_follower( const character_id &id ) static void update_faction_api( npc *guy ) { if( guy->get_faction_ver() < 2 ) { - guy->set_fac( your_followers ); + guy->set_fac( faction_your_followers ); guy->set_faction_ver( 2 ); } } @@ -2012,7 +1962,9 @@ void game::handle_key_blocking_activity() const std::string action = ctxt.handle_input( 0 ); bool refresh = true; if( action == "pause" ) { - cancel_activity_query( _( "Confirm:" ) ); + if( u.activity.interruptable_with_kb ) { + cancel_activity_query( _( "Confirm:" ) ); + } } else if( action == "player_data" ) { u.disp_info(); } else if( action == "messages" ) { @@ -2031,7 +1983,7 @@ void game::handle_key_blocking_activity() // call on_contents_changed() for the location's parent and all the way up the chain // used in game::inventory_item_menu() -static void handle_contents_changed( item_location acted_item ) +static void handle_contents_changed( const item_location &acted_item ) { if( acted_item.where() != item_location::type::container ) { return; @@ -2058,6 +2010,111 @@ static void handle_contents_changed( item_location acted_item ) } while( parent.where() == item_location::type::container ); } +static hint_rating rate_action_change_side( const avatar &you, const item &it ) +{ + if( !it.is_sided() ) { + return hint_rating::cant; + } + + return you.is_worn( it ) ? hint_rating::good : hint_rating::iffy; +} + +static hint_rating rate_action_disassemble( avatar &you, const item &it ) +{ + if( you.can_disassemble( it, you.crafting_inventory() ).success() ) { + // Possible right now + return hint_rating::good; + } else if( it.is_disassemblable() ) { + // Potentially possible, but we currently lack requirements + return hint_rating::iffy; + } else { + // Never possible + return hint_rating::cant; + } +} + +static hint_rating rate_action_eat( const avatar &you, const item &it ) +{ + if( !you.can_consume( it ) ) { + return hint_rating::cant; + } + + const auto rating = you.will_eat( it ); + if( rating.success() ) { + return hint_rating::good; + } else if( rating.value() == INEDIBLE || rating.value() == INEDIBLE_MUTATION ) { + return hint_rating::cant; + } + + return hint_rating::iffy; +} + +static hint_rating rate_action_mend( const avatar &, const item &it ) +{ + // TODO: check also if item damage could be repaired via a tool + if( !it.faults.empty() ) { + return hint_rating::good; + } + return it.faults_potential().empty() ? hint_rating::cant : hint_rating::iffy; +} + +static hint_rating rate_action_read( const avatar &you, const item &it ) +{ + if( !it.is_book() ) { + return hint_rating::cant; + } + + std::vector dummy; + return you.get_book_reader( it, dummy ) ? hint_rating::good : hint_rating::iffy; +} + +static hint_rating rate_action_take_off( const avatar &you, const item &it ) +{ + if( !it.is_armor() || it.has_flag( "NO_TAKEOFF" ) ) { + return hint_rating::cant; + } + + if( you.is_worn( it ) ) { + return hint_rating::good; + } + + return hint_rating::iffy; +} + +static hint_rating rate_action_use( const avatar &you, const item &it ) +{ + if( it.is_tool() ) { + return it.ammo_sufficient() ? hint_rating::good : hint_rating::iffy; + } else if( it.is_gunmod() ) { + /** @EFFECT_GUN >0 allows rating estimates for gun modifications */ + if( you.get_skill_level( skill_gun ) == 0 ) { + return hint_rating::iffy; + } else { + return hint_rating::good; + } + } else if( it.is_food() || it.is_medication() || it.is_book() || it.is_armor() ) { + // The rating is subjective, could be argued as hint_rating::cant or hint_rating::good as well + return hint_rating::iffy; + } else if( it.type->has_use() ) { + return hint_rating::good; + } + + return hint_rating::cant; +} + +static hint_rating rate_action_wear( const avatar &you, const item &it ) +{ + if( !it.is_armor() ) { + return hint_rating::cant; + } + + if( you.is_worn( it ) ) { + return hint_rating::iffy; + } + + return you.can_wear( it ).success() ? hint_rating::good : hint_rating::iffy; +} + /* item submenu for 'i' and '/' * It use draw_item_info to draw item info and action menu * @@ -2066,7 +2123,9 @@ static void handle_contents_changed( item_location acted_item ) * @param iWidth width of the item info window (height = height of terminal) * @return getch */ -int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidth, +int game::inventory_item_menu( item_location locThisItem, + const std::function &iStartX, + const std::function &iWidth, const inventory_item_menu_positon position ) { int cMenu = static_cast( '+' ); @@ -2104,20 +2163,20 @@ int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidt break; } }; - addentry( 'a', pgettext( "action", "activate" ), u.rate_action_use( oThisItem ) ); - addentry( 'R', pgettext( "action", "read" ), u.rate_action_read( oThisItem ) ); - addentry( 'E', pgettext( "action", "eat" ), u.rate_action_eat( oThisItem ) ); - addentry( 'W', pgettext( "action", "wear" ), u.rate_action_wear( oThisItem ) ); + addentry( 'a', pgettext( "action", "activate" ), rate_action_use( u, oThisItem ) ); + addentry( 'R', pgettext( "action", "read" ), rate_action_read( u, oThisItem ) ); + addentry( 'E', pgettext( "action", "eat" ), rate_action_eat( u, oThisItem ) ); + addentry( 'W', pgettext( "action", "wear" ), rate_action_wear( u, oThisItem ) ); addentry( 'w', pgettext( "action", "wield" ), hint_rating::good ); addentry( 't', pgettext( "action", "throw" ), hint_rating::good ); - addentry( 'c', pgettext( "action", "change side" ), u.rate_action_change_side( oThisItem ) ); - addentry( 'T', pgettext( "action", "take off" ), u.rate_action_takeoff( oThisItem ) ); + addentry( 'c', pgettext( "action", "change side" ), rate_action_change_side( u, oThisItem ) ); + addentry( 'T', pgettext( "action", "take off" ), rate_action_take_off( u, oThisItem ) ); addentry( 'd', pgettext( "action", "drop" ), rate_drop_item ); addentry( 'U', pgettext( "action", "unload" ), u.rate_action_unload( oThisItem ) ); addentry( 'r', pgettext( "action", "reload" ), u.rate_action_reload( oThisItem ) ); addentry( 'p', pgettext( "action", "part reload" ), u.rate_action_reload( oThisItem ) ); - addentry( 'm', pgettext( "action", "mend" ), u.rate_action_mend( oThisItem ) ); - addentry( 'D', pgettext( "action", "disassemble" ), u.rate_action_disassemble( oThisItem ) ); + addentry( 'm', pgettext( "action", "mend" ), rate_action_mend( u, oThisItem ) ); + addentry( 'D', pgettext( "action", "disassemble" ), rate_action_disassemble( u, oThisItem ) ); if( oThisItem.has_pockets() ) { addentry( 'i', pgettext( "action", "insert" ), hint_rating::good ); if( oThisItem.contents.num_item_stacks() > 0 ) { @@ -2150,9 +2209,9 @@ int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidt case RIGHT_TERMINAL_EDGE: return 0; case LEFT_OF_INFO: - return iStartX - popup_width; + return iStartX() - popup_width; case RIGHT_OF_INFO: - return iStartX + iWidth; + return iStartX() + iWidth(); case LEFT_TERMINAL_EDGE: return TERMX - popup_width; } @@ -2168,18 +2227,19 @@ int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidt catacurses::window w_info; int iScrollHeight = 0; - ui_adaptor ui; - ui.on_screen_resize( [&]( ui_adaptor & ui ) { - w_info = catacurses::newwin( TERMY, iWidth, point( iStartX, 0 ) ); + std::unique_ptr ui = std::make_unique(); + ui->on_screen_resize( [&]( ui_adaptor & ui ) { + w_info = catacurses::newwin( TERMY, iWidth(), point( iStartX(), 0 ) ); iScrollHeight = TERMY - 2; ui.position_from_window( w_info ); } ); - ui.mark_resize(); + ui->mark_resize(); - ui.on_redraw( [&]( const ui_adaptor & ) { + ui->on_redraw( [&]( const ui_adaptor & ) { draw_item_info( w_info, data ); } ); + bool exit = false; do { const int prev_selected = action_menu.selected; action_menu.query( false ); @@ -2200,6 +2260,11 @@ int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidt cMenu = 0; } + if( action_menu.ret != UILIST_WAIT_INPUT && action_menu.ret != UILIST_UNBOUND ) { + exit = true; + ui = nullptr; + } + switch( cMenu ) { case 'a': avatar_action::use_item( u, locThisItem ); @@ -2232,7 +2297,7 @@ int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidt handle_contents_changed( locThisItem ); break; case 'U': - unload( oThisItem ); + unload( locThisItem ); handle_contents_changed( locThisItem ); break; case 'r': @@ -2274,11 +2339,15 @@ int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidt break; case KEY_PPAGE: iScrollPos -= iScrollHeight; - ui.invalidate_ui(); + if( ui ) { + ui->invalidate_ui(); + } break; case KEY_NPAGE: iScrollPos += iScrollHeight; - ui.invalidate_ui(); + if( ui ) { + ui->invalidate_ui(); + } break; case '+': if( !bHPR ) { @@ -2297,7 +2366,7 @@ int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidt default: break; } - } while( action_menu.ret == UILIST_WAIT_INPUT || action_menu.ret == UILIST_UNBOUND ); + } while( !exit ); } return cMenu; } @@ -2307,12 +2376,6 @@ int game::inventory_item_menu( item_location locThisItem, int iStartX, int iWidt bool game::handle_mouseview( input_context &ctxt, std::string &action ) { cata::optional liveview_pos; - auto &mgr = panel_manager::get_manager(); - const bool sidebar_right = get_option( "SIDEBAR_POSITION" ) == "right"; - int width = sidebar_right ? mgr.get_width_right() : mgr.get_width_left(); - - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); do { action = ctxt.handle_input(); @@ -2321,15 +2384,11 @@ bool game::handle_mouseview( input_context &ctxt, std::string &action ) if( mouse_pos && ( !liveview_pos || *mouse_pos != *liveview_pos ) ) { liveview_pos = mouse_pos; liveview.show( *liveview_pos ); - draw_panels( true ); - const catacurses::window &w = catacurses::newwin( TERMY / 2, width, - point( sidebar_right ? TERMX - width : 0, 0 ) ); - liveview.draw( w, TERMY / 2 ); } else if( !mouse_pos ) { liveview_pos.reset(); liveview.hide(); - draw_panels( true ); } + ui_manager::redraw(); } } while( action == "MOUSE_MOVE" ); // Freeze animation when moving the mouse @@ -2364,7 +2423,7 @@ std::pair game::mouse_edge_scrolling( input_context &ctxt, c last_mouse_edge_scroll = now; } const input_event event = ctxt.get_raw_input(); - if( event.type == CATA_INPUT_MOUSE ) { + if( event.type == input_event_t::mouse ) { const int threshold_x = projected_window_width() / 100; const int threshold_y = projected_window_height() / 100; if( event.mouse_pos.x <= threshold_x ) { @@ -2390,7 +2449,7 @@ std::pair game::mouse_edge_scrolling( input_context &ctxt, c } } ret.second = ret.first; - } else if( event.type == CATA_INPUT_TIMEOUT ) { + } else if( event.type == input_event_t::timeout ) { ret.first = ret.second; } #endif @@ -2565,13 +2624,13 @@ vehicle *game::remoteveh() remoteveh_cache_time = calendar::turn; std::stringstream remote_veh_string( u.get_value( "remote_controlling_vehicle" ) ); if( remote_veh_string.str().empty() || - ( !u.has_active_bionic( bio_remote ) && !u.has_active_item( "remotevehcontrol" ) ) ) { + ( !u.has_active_bionic( bio_remote ) && !u.has_active_item( itype_remotevehcontrol ) ) ) { remoteveh_cache = nullptr; } else { tripoint vp; remote_veh_string >> vp.x >> vp.y >> vp.z; vehicle *veh = veh_pointer_or_null( m.veh_at( vp ) ); - if( veh && veh->fuel_left( "battery", true ) > 0 ) { + if( veh && veh->fuel_left( itype_battery, true ) > 0 ) { remoteveh_cache = veh; } else { remoteveh_cache = nullptr; @@ -2585,7 +2644,7 @@ void game::setremoteveh( vehicle *veh ) remoteveh_cache_time = calendar::turn; remoteveh_cache = veh; if( veh != nullptr && !u.has_active_bionic( bio_remote ) && - !u.has_active_item( "remotevehcontrol" ) ) { + !u.has_active_item( itype_remotevehcontrol ) ) { debugmsg( "Tried to set remote vehicle without bio_remote or remotevehcontrol" ); veh = nullptr; } @@ -2813,7 +2872,7 @@ bool game::load( const save_t &name ) u = avatar(); u.name = name.player_name(); // This should be initialized more globally (in player/Character constructor) - u.weapon = item( "null", 0 ); + u.weapon = item(); if( !read_from_file( playerpath + SAVE_EXTENSION, std::bind( &game::unserialize, this, _1 ) ) ) { return false; } @@ -3093,7 +3152,7 @@ bool game::save() world_generator->active_world->add_save( save_t::from_player_name( u.name ) ); return true; } - } catch( std::ios::failure &err ) { + } catch( std::ios::failure & ) { popup( _( "Failed to save game data" ) ); return false; } @@ -3177,32 +3236,33 @@ void game::write_memorial_file( std::string sLastWords ) void game::disp_NPC_epilogues() { - catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( std::max( 0, ( TERMX - FULL_SCREEN_WIDTH ) / 2 ), std::max( 0, - ( TERMY - FULL_SCREEN_HEIGHT ) / 2 ) ) ); // TODO: This search needs to be expanded to all NPCs for( auto elem : follower_ids ) { shared_ptr_fast guy = overmap_buffer.find_npc( elem ); if( !guy ) { continue; } - scrollable_text( w, guy->disp_name(), guy->get_epilogue() ); + const auto new_win = []() { + return catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + point( std::max( 0, ( TERMX - FULL_SCREEN_WIDTH ) / 2 ), + std::max( 0, ( TERMY - FULL_SCREEN_HEIGHT ) / 2 ) ) ); + }; + scrollable_text( new_win, guy->disp_name(), guy->get_epilogue() ); } - - refresh_all(); } void game::display_faction_epilogues() { - catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( std::max( 0, ( TERMX - FULL_SCREEN_WIDTH ) / 2 ), - std::max( 0, ( TERMY - FULL_SCREEN_HEIGHT ) / 2 ) ) ); - for( const auto &elem : faction_manager_ptr->all() ) { if( elem.second.known_by_u ) { const std::vector epilogue = elem.second.epilogue(); if( !epilogue.empty() ) { - scrollable_text( w, elem.second.name, + const auto new_win = []() { + return catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + point( std::max( 0, ( TERMX - FULL_SCREEN_WIDTH ) / 2 ), + std::max( 0, ( TERMY - FULL_SCREEN_HEIGHT ) / 2 ) ) ); + }; + scrollable_text( new_win, elem.second.name, std::accumulate( epilogue.begin() + 1, epilogue.end(), epilogue.front(), []( const std::string & lhs, const std::string & rhs ) -> std::string { return lhs + "\n" + rhs; @@ -3210,8 +3270,6 @@ void game::display_faction_epilogues() } } } - - refresh_all(); } struct npc_dist_to_player { @@ -3229,32 +3287,53 @@ struct npc_dist_to_player { void game::disp_NPCs() { - catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0, - TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ) ); - const tripoint ppos = u.global_omt_location(); const tripoint &lpos = u.pos(); - mvwprintz( w, point_zero, c_white, _( "Your overmap position: %d, %d, %d" ), ppos.x, ppos.y, - ppos.z ); - // NOLINTNEXTLINE(cata-use-named-point-constants) - mvwprintz( w, point( 0, 1 ), c_white, _( "Your local position: %d, %d, %d" ), lpos.x, lpos.y, - lpos.z ); std::vector> npcs = overmap_buffer.get_npcs_near_player( 100 ); std::sort( npcs.begin(), npcs.end(), npc_dist_to_player() ); - size_t i; - for( i = 0; i < 20 && i < npcs.size(); i++ ) { - const tripoint apos = npcs[i]->global_omt_location(); - mvwprintz( w, point( 0, i + 3 ), c_white, "%s: %d, %d, %d", npcs[i]->name, - apos.x, apos.y, apos.z ); - } - for( const monster &m : all_monsters() ) { - mvwprintz( w, point( 0, i + 3 ), c_white, "%s: %d, %d, %d", m.name(), - m.posx(), m.posy(), m.posz() ); - ++i; + + catacurses::window w; + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + point( TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0, + TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ) ); + ui.position_from_window( w ); + } ); + ui.mark_resize(); + ui.on_redraw( [&]( const ui_adaptor & ) { + werase( w ); + mvwprintz( w, point_zero, c_white, _( "Your overmap position: %d, %d, %d" ), ppos.x, ppos.y, + ppos.z ); + // NOLINTNEXTLINE(cata-use-named-point-constants) + mvwprintz( w, point( 0, 1 ), c_white, _( "Your local position: %d, %d, %d" ), lpos.x, lpos.y, + lpos.z ); + size_t i; + for( i = 0; i < 20 && i < npcs.size(); i++ ) { + const tripoint apos = npcs[i]->global_omt_location(); + mvwprintz( w, point( 0, i + 3 ), c_white, "%s: %d, %d, %d", npcs[i]->name, + apos.x, apos.y, apos.z ); + } + for( const monster &m : all_monsters() ) { + mvwprintz( w, point( 0, i + 3 ), c_white, "%s: %d, %d, %d", m.name(), + m.posx(), m.posy(), m.posz() ); + ++i; + } + wnoutrefresh( w ); + } ); + + input_context ctxt( "DISP_NPCS" ); + ctxt.register_action( "CONFIRM" ); + ctxt.register_action( "QUIT" ); + ctxt.register_action( "HELP_KEYBINDINGS" ); + bool stop = false; + while( !stop ) { + ui_manager::redraw(); + const std::string action = ctxt.handle_input(); + if( action == "CONFIRM" || action == "QUIT" ) { + stop = true; + } } - wrefresh( w ); - inp_mngr.wait_for_any_key(); } // A little helper to draw footstep glyphs. @@ -3275,13 +3354,60 @@ shared_ptr_fast game::create_or_get_main_ui_adaptor() shared_ptr_fast ui = main_ui_adaptor.lock(); if( !ui ) { main_ui_adaptor = ui = make_shared_fast(); - ui->position_from_window( catacurses::stdscr ); ui->on_redraw( []( const ui_adaptor & ) { g->draw(); } ); - ui->on_screen_resize( []( ui_adaptor & ui ) { + ui->on_screen_resize( [this]( ui_adaptor & ui ) { + // remove some space for the sidebar, this is the maximal space + // (using standard font) that the terrain window can have + const int sidebar_left = panel_manager::get_manager().get_width_left(); + const int sidebar_right = panel_manager::get_manager().get_width_right(); + + TERRAIN_WINDOW_HEIGHT = TERMY; + TERRAIN_WINDOW_WIDTH = TERMX - ( sidebar_left + sidebar_right ); + TERRAIN_WINDOW_TERM_WIDTH = TERRAIN_WINDOW_WIDTH; + TERRAIN_WINDOW_TERM_HEIGHT = TERRAIN_WINDOW_HEIGHT; + + /** + * In tiles mode w_terrain can have a different font (with a different + * tile dimension) or can be drawn by cata_tiles which uses tiles that again + * might have a different dimension then the normal font used everywhere else. + * + * TERRAIN_WINDOW_WIDTH/TERRAIN_WINDOW_HEIGHT defines how many squares can + * be displayed in w_terrain (using it's specific tile dimension), not + * including partially drawn squares at the right/bottom. You should + * use it whenever you want to draw specific squares in that window or to + * determine whether a specific square is draw on screen (or outside the screen + * and needs scrolling). + * + * TERRAIN_WINDOW_TERM_WIDTH/TERRAIN_WINDOW_TERM_HEIGHT defines the size of + * w_terrain in the standard font dimension (the font that everything else uses). + * You usually don't have to use it, expect for positioning of windows, + * because the window positions use the standard font dimension. + * + * The code here calculates size available for w_terrain, caps it at + * max_view_size (the maximal view range than any character can have at + * any time). + * It is stored in TERRAIN_WINDOW_*. + */ + to_map_font_dimension( TERRAIN_WINDOW_WIDTH, TERRAIN_WINDOW_HEIGHT ); + + // Position of the player in the terrain window, it is always in the center + POSX = TERRAIN_WINDOW_WIDTH / 2; + POSY = TERRAIN_WINDOW_HEIGHT / 2; + + w_terrain = w_terrain_ptr = catacurses::newwin( TERRAIN_WINDOW_HEIGHT, TERRAIN_WINDOW_WIDTH, + point( sidebar_left, 0 ) ); + + // minimap is always MINIMAP_WIDTH x MINIMAP_HEIGHT in size + w_minimap = w_minimap_ptr = catacurses::newwin( MINIMAP_HEIGHT, MINIMAP_WIDTH, point_zero ); + + // need to init in order to avoid crash. gets updated by the panel code. + w_pixel_minimap = catacurses::newwin( 1, 1, point_zero ); + ui.position_from_window( catacurses::stdscr ); } ); + ui->mark_resize(); } return ui; } @@ -3294,8 +3420,105 @@ void game::invalidate_main_ui_adaptor() const } } +void game::mark_main_ui_adaptor_resize() const +{ + shared_ptr_fast ui = main_ui_adaptor.lock(); + if( ui ) { + ui->mark_resize(); + } +} + +game::draw_callback_t::draw_callback_t( const std::function &cb ) + : cb( cb ) +{ +} + +game::draw_callback_t::~draw_callback_t() +{ + if( added ) { + g->invalidate_main_ui_adaptor(); + } +} + +void game::draw_callback_t::operator()() +{ + if( cb ) { + cb(); + } +} + +void game::add_draw_callback( const shared_ptr_fast &cb ) +{ + draw_callbacks.erase( + std::remove_if( draw_callbacks.begin(), draw_callbacks.end(), + []( const weak_ptr_fast &cbw ) { + return cbw.expired(); + } ), + draw_callbacks.end() + ); + draw_callbacks.emplace_back( cb ); + cb->added = true; + invalidate_main_ui_adaptor(); +} + static void draw_trail( const tripoint &start, const tripoint &end, bool bDrawX ); +static shared_ptr_fast create_zone_callback( + const cata::optional &zone_start, + const cata::optional &zone_end, + const bool &zone_blink, + const bool &zone_cursor +) +{ + return make_shared_fast( + [&]() { + if( zone_cursor ) { + if( zone_end ) { + g->draw_cursor( zone_end.value() ); + } else if( zone_start ) { + g->draw_cursor( zone_start.value() ); + } + } + if( zone_blink && zone_start && zone_end ) { + const int offset_x = ( g->u.posx() + g->u.view_offset.x ) - getmaxx( g->w_terrain ) / 2; + const int offset_y = ( g->u.posy() + g->u.view_offset.y ) - getmaxy( g->w_terrain ) / 2; + + tripoint offset; +#if defined(TILES) + if( use_tiles ) { + offset = tripoint_zero; //TILES + } else { +#endif + offset = tripoint( offset_x, offset_y, 0 ); //CURSES +#if defined(TILES) + } +#endif + + const tripoint start( std::min( zone_start->x, zone_end->x ), + std::min( zone_start->y, zone_end->y ), + zone_end->z ); + const tripoint end( std::max( zone_start->x, zone_end->x ), + std::max( zone_start->y, zone_end->y ), + zone_end->z ); + g->draw_zones( start, end, offset ); + } + } ); +} + +static shared_ptr_fast create_trail_callback( + const cata::optional &trail_start, + const cata::optional &trail_end, + const bool &trail_end_x +) +{ + return make_shared_fast( + [&]() { + if( trail_start && trail_end ) { + draw_trail( trail_start.value(), trail_end.value(), trail_end_x ); + } + } ); +} + void game::draw() { if( test_mode ) { @@ -3309,43 +3532,16 @@ void game::draw() werase( w_terrain ); draw_ter(); - - if( zone_cursor ) { - if( zone_end ) { - g->draw_cursor( zone_end.value() ); - } else if( zone_start ) { - g->draw_cursor( zone_start.value() ); - } - } - if( zone_blink && zone_start && zone_end ) { - 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; - - tripoint offset; -#if defined(TILES) - if( use_tiles ) { - offset = tripoint_zero; //TILES + for( auto it = draw_callbacks.begin(); it != draw_callbacks.end(); ) { + shared_ptr_fast cb = it->lock(); + if( cb ) { + ( *cb )(); + ++it; } else { -#endif - offset = tripoint( offset_x, offset_y, 0 ); //CURSES -#if defined(TILES) + it = draw_callbacks.erase( it ); } -#endif - - const tripoint start( std::min( zone_start->x, zone_end->x ), - std::min( zone_start->y, zone_end->y ), - zone_end->z ); - const tripoint end( std::max( zone_start->x, zone_end->x ), - std::max( zone_start->y, zone_end->y ), - zone_end->z ); - draw_zones( start, end, offset ); - } - - if( trail_start && trail_end ) { - draw_trail( trail_start.value(), trail_end.value(), trail_end_x ); } - - wrefresh( w_terrain ); + wnoutrefresh( w_terrain ); draw_panels( true ); } @@ -3386,7 +3582,7 @@ void game::draw_panels( bool force_draw ) TERMX - panel.get_width() - panel_name_width - 1 : panel.get_width() + 1, y ) ); werase( label ); mvwprintz( label, point_zero, c_light_red, panel_name ); - wrefresh( label ); + wnoutrefresh( label ); label = catacurses::newwin( h, 1, point( sidebar_right ? TERMX - panel.get_width() - 1 : panel.get_width(), y ) ); werase( label ); @@ -3399,7 +3595,7 @@ void game::draw_panels( bool force_draw ) } mvwputch( label, point( 0, h - 1 ), c_light_red, sidebar_right ? LINE_XXOO : LINE_XOOX ); } - wrefresh( label ); + wnoutrefresh( label ); } y += h; } @@ -3517,18 +3713,6 @@ void game::draw_veh_dir_indicator( bool next ) } } -void game::refresh_all() -{ - const int minz = m.has_zlevels() ? -OVERMAP_DEPTH : get_levz(); - const int maxz = m.has_zlevels() ? OVERMAP_HEIGHT : get_levz(); - for( int z = minz; z <= maxz; z++ ) { - m.reset_vehicle_cache( z ); - } - - draw(); - catacurses::refresh(); -} - void game::draw_minimap() { @@ -3737,7 +3921,7 @@ void game::draw_minimap() } } - wrefresh( w_minimap ); + wnoutrefresh( w_minimap ); } float game::natural_light_level( const int zlev ) const @@ -3888,7 +4072,6 @@ std::unordered_set game::get_fishable_locations( int distance, const t to_check.push( current_point + point_west ); } } - return; }; // Starting at the provided location, get our fishable terrain @@ -4206,7 +4389,7 @@ void game::mon_info_update( ) monster &critter = *new_seen_mon.back(); cancel_activity_or_ignore_query( distraction_type::hostile_spotted_far, string_format( _( "%s spotted!" ), critter.name() ) ); - if( u.has_trait( trait_id( "M_DEFENDER" ) ) && critter.type->in_species( PLANT ) ) { + if( u.has_trait( trait_id( "M_DEFENDER" ) ) && critter.type->in_species( species_PLANT ) ) { add_msg( m_warning, _( "We have detected a %s - an enemy of the Mycus!" ), critter.name() ); if( !u.has_effect( effect_adrenaline_mycus ) ) { u.add_effect( effect_adrenaline_mycus, 30_minutes ); @@ -4374,7 +4557,7 @@ void game::monmove() if( !guy.has_effect( effect_npc_suspend ) ) { guy.process_turn(); } - while( !guy.is_dead() && ( !guy.in_sleep_state() || guy.activity.id() == "ACT_OPERATION" ) && + while( !guy.is_dead() && ( !guy.in_sleep_state() || guy.activity.id() == ACT_OPERATION ) && guy.moves > 0 && turns < 10 ) { int moves = guy.moves; guy.move(); @@ -4438,7 +4621,6 @@ void game::overmap_npc_move() reload_npcs(); } } - return; } /* Knockback target at t by force number of tiles in direction from s to t @@ -5070,11 +5252,6 @@ void game::save_cyborg( item *cyborg, const tripoint &couch_pos, player &install { int assist_bonus = installer.get_effect_int( effect_assisted ); - float adjusted_skill = installer.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics, - -1 ); - int damage = cyborg->damage(); int dmg_lvl = cyborg->damage_level( 4 ); int difficulty = 12; @@ -5088,7 +5265,8 @@ void game::save_cyborg( item *cyborg, const tripoint &couch_pos, player &install difficulty += dmg_lvl; } - int chance_of_success = bionic_manip_cos( adjusted_skill + assist_bonus, difficulty ); + int chance_of_success = bionic_success_chance( true, -1, std::max( 0, + difficulty - 4 * assist_bonus ), installer ); int success = chance_of_success - rng( 1, 100 ); if( !g->u.query_yn( @@ -5115,7 +5293,7 @@ void game::save_cyborg( item *cyborg, const tripoint &couch_pos, player &install } else { const int failure_level = static_cast( std::sqrt( std::abs( success ) * 4.0 * difficulty / - adjusted_skill ) ); + installer.bionics_adjusted_skill( true, 12 ) ) ); const int fail_type = std::min( 5, failure_level ); switch( fail_type ) { case 1: @@ -5205,13 +5383,13 @@ bool game::forced_door_closing( const tripoint &p, const ter_id &door_type, int if( can_see ) { add_msg( _( "The %1$s hits the %2$s." ), door_name, critter.name() ); } - if( critter.type->size <= MS_SMALL ) { + if( critter.type->size <= creature_size::small ) { critter.die_in_explosion( nullptr ); } else { critter.apply_damage( nullptr, bodypart_id( "torso" ), bash_dmg ); critter.check_dead_state(); } - if( !critter.is_dead() && critter.type->size >= MS_HUGE ) { + if( !critter.is_dead() && critter.type->size >= creature_size::huge ) { // big critters simply prevent the gate from closing // TODO: perhaps damage/destroy the gate // if the critter was really big? @@ -5242,7 +5420,7 @@ bool game::forced_door_closing( const tripoint &p, const ter_id &door_type, int } if( bash_dmg == 0 ) { for( auto &elem : m.i_at( point( x, y ) ) ) { - if( elem.made_of( LIQUID ) ) { + if( elem.made_of( phase_id::LIQUID ) ) { // Liquids are OK, will be destroyed later continue; } else if( elem.volume() < 250_ml ) { @@ -5258,7 +5436,7 @@ bool game::forced_door_closing( const tripoint &p, const ter_id &door_type, int if( m.has_flag( "NOITEM", point( x, y ) ) ) { map_stack items = m.i_at( point( x, y ) ); for( map_stack::iterator it = items.begin(); it != items.end(); ) { - if( it->made_of( LIQUID ) ) { + if( it->made_of( phase_id::LIQUID ) ) { it = items.erase( it ); continue; } @@ -5537,10 +5715,6 @@ void game::examine() return; } u.manual_examine = true; - // redraw terrain to erase 'examine' window - draw_ter(); - wrefresh( w_terrain ); - draw_panels( true ); examine( *examp_ ); u.manual_examine = false; } @@ -5692,9 +5866,6 @@ void game::examine( const tripoint &examp ) if( !m.tr_at( examp ).is_null() && !u.is_mounted() ) { iexamine::trap( u, examp ); - draw_ter(); - wrefresh( w_terrain ); - draw_panels(); } else if( !m.tr_at( examp ).is_null() && u.is_mounted() ) { add_msg( m_warning, _( "You cannot do that while mounted." ) ); } @@ -5744,17 +5915,16 @@ void game::pickup() if( !examp_ ) { return; } - // redraw terrain to erase 'pickup' window - draw_ter(); - // wrefresh is called in pickup( const tripoint & ) pickup( *examp_ ); } void game::pickup( const tripoint &p ) { // Highlight target - g->m.drawsq( w_terrain, u, p, true, true, u.pos() + u.view_offset ); - wrefresh( w_terrain ); + shared_ptr_fast hilite_cb = make_shared_fast( [&]() { + m.drawsq( w_terrain, u, p, true, true, u.pos() + u.view_offset ); + } ); + add_draw_callback( hilite_cb ); Pickup::pick_up( p, 0 ); } @@ -5770,7 +5940,6 @@ void game::peek() { const cata::optional p = choose_direction( _( "Peek where?" ), true ); if( !p ) { - refresh_all(); return; } @@ -5781,10 +5950,7 @@ void game::peek() if( old_pos != u.pos() ) { look_around(); vertical_move( p->z * -1, false ); - draw_ter(); } - wrefresh( w_terrain ); - draw_panels(); return; } @@ -5810,10 +5976,6 @@ void game::peek( const tripoint &p ) avatar_action::plthrow( u, loc, p ); } m.invalidate_map_cache( p.z ); - - draw_ter(); - wrefresh( w_terrain ); - draw_panels(); } //////////////////////////////////////////////////////////////////////////////////////////// cata::optional game::look_debug() @@ -5823,10 +5985,44 @@ cata::optional game::look_debug() } //////////////////////////////////////////////////////////////////////////////////////////// +void game::draw_terrain_indicator( const tripoint &lp, const visibility_variables &cache ) const +{ + visibility_type visibility = VIS_HIDDEN; + const bool inbounds = m.inbounds( lp ); + if( inbounds ) { + visibility = m.get_visibility( m.apparent_light_at( lp, cache ), cache ); + } + const Creature *creature = critter_at( lp, true ); + switch( visibility ) { + case VIS_CLEAR: +#if defined( TILES ) + if( !is_draw_tiles_mode() && !liveview.is_enabled() ) +#endif + { + if( creature != nullptr && u.sees( *creature ) ) { + creature->draw( w_terrain, lp, true ); + } else { + m.drawsq( w_terrain, u, lp, true, true, lp ); + } + } + break; + case VIS_HIDDEN: +#if defined( TILES ) + if( !is_draw_tiles_mode() && !liveview.is_enabled() ) +#endif + { + print_visibility_indicator( visibility ); + } + break; + default: + break; + } +} + void game::print_all_tile_info( const tripoint &lp, const catacurses::window &w_look, const std::string &area_name, int column, int &line, - const int last_line, bool draw_terrain_indicators, + const int last_line, const visibility_variables &cache ) { visibility_type visibility = VIS_HIDDEN; @@ -5846,14 +6042,6 @@ void game::print_all_tile_info( const tripoint &lp, const catacurses::window &w_ last_line ); print_items_info( lp, w_look, column, line, last_line ); print_graffiti_info( lp, w_look, column, line, last_line ); - - if( draw_terrain_indicators && !liveview.is_enabled() ) { - if( creature != nullptr && u.sees( *creature ) ) { - creature->draw( w_terrain, lp, true ); - } else { - m.drawsq( w_terrain, u, lp, true, true, lp ); - } - } } break; case VIS_BOOMER: @@ -5867,19 +6055,19 @@ void game::print_all_tile_info( const tripoint &lp, const catacurses::window &w_ if( u.sees_with_infrared( *creature ) ) { std::string size_str; switch( creature->get_size() ) { - case MS_TINY: + case creature_size::tiny: size_str = pgettext( "infrared size", "tiny" ); break; - case MS_SMALL: + case creature_size::small: size_str = pgettext( "infrared size", "small" ); break; - case MS_MEDIUM: + case creature_size::medium: size_str = pgettext( "infrared size", "medium" ); break; - case MS_LARGE: + case creature_size::large: size_str = pgettext( "infrared size", "large" ); break; - case MS_HUGE: + case creature_size::huge: size_str = pgettext( "infrared size", "huge" ); break; } @@ -5890,10 +6078,6 @@ void game::print_all_tile_info( const tripoint &lp, const catacurses::window &w_ mvwprintw( w_look, point( 1, ++line ), _( "You sense a creature here." ) ); } } - - if( draw_terrain_indicators && !liveview.is_enabled() ) { - print_visibility_indicator( visibility ); - } break; } if( !inbounds ) { @@ -5944,70 +6128,77 @@ void game::print_visibility_info( const catacurses::window &w_look, int column, break; } - mvwprintw( w_look, point( line, column ), visibility_message ); + mvwprintz( w_look, point( line, column ), c_light_gray, visibility_message ); line += 2; } void game::print_terrain_info( const tripoint &lp, const catacurses::window &w_look, - const std::string &area_name, int column, - int &line ) + const std::string &area_name, int column, int &line ) { const int max_width = getmaxx( w_look ) - column - 1; - int lines; + + // Print OMT type and terrain type on first line. std::string tile = m.tername( lp ); - tile = "(" + area_name + ") " + tile; + trim_and_print( w_look, point( column, line ), max_width, c_white, area_name ); + trim_and_print( w_look, point( column + utf8_width( area_name ) + 1, line ), max_width, + c_light_gray, tile ); + + // Furniture on second line if any. if( m.has_furn( lp ) ) { - tile += "; " + m.furnname( lp ); + mvwprintz( w_look, point( column, ++line ), c_light_blue, m.furnname( lp ) ); } + // Cover percentage from terrain and furniture next. + fold_and_print( w_look, point( column, ++line ), max_width, c_light_gray, _( "Cover: %d%%" ), + m.coverage( lp ) ); + // Terrain and furniture flags next. These can be several lines for some combinations of + // furnitures and terrains. + std::vector lines = foldstring( m.features( lp ), max_width ); + int numlines = lines.size(); + for( int i = 0; i < numlines; i++ ) { + mvwprintz( w_look, point( column, ++line ), c_light_gray, lines[i] ); + } + + // Move cost from terrain and furntiure and vehicle parts. + // Vehicle part information is printed in a different function. if( m.impassable( lp ) ) { - lines = fold_and_print( w_look, point( column, line ), max_width, c_light_gray, - _( "%s; Impassable" ), - tile ); + mvwprintz( w_look, point( column, ++line ), c_light_red, _( "Impassable" ) ); } else { - lines = fold_and_print( w_look, point( column, line ), max_width, c_light_gray, - _( "%s; Movement cost %d" ), - tile, m.move_cost( lp ) * 50 ); - - const auto ll = get_light_level( std::max( 1.0, - LIGHT_AMBIENT_LIT - m.ambient_light_at( lp ) + 1.0 ) ); - mvwprintw( w_look, point( column, ++lines ), _( "Lighting: " ) ); - wprintz( w_look, ll.second, ll.first ); + mvwprintz( w_look, point( column, ++line ), c_light_gray, _( "Move cost: %d" ), + m.move_cost( lp ) * 50 ); } + // Next print the string on any SIGN flagged furniture if any. std::string signage = m.get_signage( lp ); if( !signage.empty() ) { - trim_and_print( w_look, point( column, ++lines ), max_width, c_dark_gray, - // NOLINTNEXTLINE(cata-text-style): the question mark does not end a sentence - u.has_trait( trait_ILLITERATE ) ? _( "Sign: ???" ) : _( "Sign: %s" ), signage ); + std::string sign_string = u.has_trait( trait_ILLITERATE ) ? "???" : signage; + mvwprintz( w_look, point( column, ++line ), c_light_gray, _( "Sign: %s" ), sign_string ); } + // Print light level on the selected tile. + std::pair ll = get_light_level( std::max( 1.0, + LIGHT_AMBIENT_LIT - m.ambient_light_at( lp ) + 1.0 ) ); + mvwprintz( w_look, point( column, ++line ), c_light_gray, _( "Lighting: " ) ); + mvwprintz( w_look, point( column + utf8_width( _( "Lighting: " ) ), line ), ll.second, ll.first ); + + // Print the terrain and any furntiure on the tile below and whether it is walkable. if( m.has_zlevels() && lp.z > -OVERMAP_DEPTH && !m.has_floor( lp ) ) { - // Print info about stuff below tripoint below( lp.xy(), lp.z - 1 ); std::string tile_below = m.tername( below ); if( m.has_furn( below ) ) { - tile_below += "; " + m.furnname( below ); + tile_below += ", " + m.furnname( below ); } if( !m.has_floor_or_support( lp ) ) { - fold_and_print( w_look, point( column, ++lines ), max_width, c_dark_gray, - _( "Below: %s; No support" ), - tile_below ); + fold_and_print( w_look, point( column, ++line ), max_width, c_dark_gray, + _( "Below: %s; No support" ), tile_below ); } else { - fold_and_print( w_look, point( column, ++lines ), max_width, c_dark_gray, - _( "Below: %s; Walkable" ), + fold_and_print( w_look, point( column, ++line ), max_width, c_dark_gray, _( "Below: %s; Walkable" ), tile_below ); } } - int map_features = fold_and_print( w_look, point( column, ++lines ), max_width, c_dark_gray, - m.features( lp ) ); - fold_and_print( w_look, point( column, ++lines ), max_width, c_light_gray, _( "Coverage: %d%%" ), - m.coverage( lp ) ); - if( line < lines ) { - line = lines + map_features - 1; - } + ++line; } void game::print_fields_info( const tripoint &lp, const catacurses::window &w_look, int column, @@ -6026,6 +6217,11 @@ void game::print_fields_info( const tripoint &lp, const catacurses::window &w_lo mvwprintz( w_look, point( column, ++line ), cur.color(), cur.name() ); } } + + int size = std::distance( tmpfield.begin(), tmpfield.end() ); + if( size > 0 ) { + mvwprintz( w_look, point( column, ++line ), c_white, "\n" ); + } } void game::print_trap_info( const tripoint &lp, const catacurses::window &w_look, const int column, @@ -6045,6 +6241,8 @@ void game::print_trap_info( const tripoint &lp, const catacurses::window &w_look mvwprintz( w_look, point( column, ++line ), tr.color, tr_name ); } + + ++line; } void game::print_creature_info( const Creature *creature, const catacurses::window &w_look, @@ -6060,12 +6258,16 @@ void game::print_vehicle_info( const vehicle *veh, int veh_part, const catacurse const int column, int &line, const int last_line ) { if( veh ) { - mvwprintw( w_look, point( column, ++line ), _( "There is a %s there. Parts:" ), veh->name ); + // Print the name of the vehicle. + mvwprintz( w_look, point( column, ++line ), c_light_gray, _( "Vehicle: " ) ); + mvwprintz( w_look, point( column + utf8_width( _( "Vehicle: " ) ), line ), c_white, "%s", + veh->name ); + // Then the list of parts on that tile. line = veh->print_part_list( w_look, ++line, last_line, getmaxx( w_look ), veh_part ); } } -void game::print_visibility_indicator( visibility_type visibility ) +void game::print_visibility_indicator( visibility_type visibility ) const { std::string visibility_indicator; nc_color visibility_indicator_color = c_white; @@ -6108,24 +6310,26 @@ void game::print_items_info( const tripoint &lp, const catacurses::window &w_loo _( "There's something there, but you can't see what it is." ) ); return; } else { - std::map item_names; + std::map> item_names; for( auto &item : m.i_at( lp ) ) { - ++item_names[item.tname()]; + ++item_names[item.tname()].first; + item_names[item.tname()].second = item.color_in_inventory(); } const int max_width = getmaxx( w_look ) - column - 1; - for( const auto &it : item_names ) { - if( line >= last_line - 2 ) { + for( auto it = item_names.begin(); it != item_names.end(); ++it ) { + // last line but not last item + if( line + 1 >= last_line && std::next( it ) != item_names.end() ) { mvwprintz( w_look, point( column, ++line ), c_yellow, _( "More items here…" ) ); break; } - if( it.second > 1 ) { - trim_and_print( w_look, point( column, ++line ), max_width, c_white, + if( it->second.first > 1 ) { + trim_and_print( w_look, point( column, ++line ), max_width, it->second.second, pgettext( "%s is the name of the item. %d is the quantity of that item.", "%s [%d]" ), - it.first.c_str(), it.second ); + it->first.c_str(), it->second.first ); } else { - trim_and_print( w_look, point( column, ++line ), max_width, c_white, it.first ); + trim_and_print( w_look, point( column, ++line ), max_width, it->second.second, it->first ); } } } @@ -6182,7 +6386,7 @@ static void zones_manager_shortcuts( const catacurses::window &w_info ) _( "how all / hide distant" ) ) + 2; shortcut_print( w_info, point( tmpx, 3 ), c_white, c_light_green, _( "ap" ) ); - wrefresh( w_info ); + wnoutrefresh( w_info ); } static void zones_manager_draw_borders( const catacurses::window &w_border, @@ -6211,7 +6415,7 @@ static void zones_manager_draw_borders( const catacurses::window &w_border, LINE_XOXX ); // -| mvwprintz( w_border, point( 2, 0 ), c_white, _( "Zones manager" ) ); - wrefresh( w_border ); + wnoutrefresh( w_border ); for( int j = 0; j < iInfoHeight - 1; ++j ) { mvwputch( w_info_border, point( 0, j ), c_light_gray, LINE_XOXO ); @@ -6224,7 +6428,7 @@ static void zones_manager_draw_borders( const catacurses::window &w_border, mvwputch( w_info_border, point( 0, iInfoHeight - 1 ), c_light_gray, LINE_XXOO ); mvwputch( w_info_border, point( width - 1, iInfoHeight - 1 ), c_light_gray, LINE_XOOX ); - wrefresh( w_info_border ); + wnoutrefresh( w_info_border ); } void game::zones_manager() @@ -6247,8 +6451,14 @@ void game::zones_manager() catacurses::window w_zones_info_border; catacurses::window w_zones_options; + bool show = true; + ui_adaptor ui; ui.on_screen_resize( [&]( ui_adaptor & ui ) { + if( !show ) { + ui.position( point_zero, point_zero ); + return; + } offsetX = get_option( "SIDEBAR_POSITION" ) == "left" ? TERMX - width : 0; const int w_zone_height = TERMY - zone_ui_height; @@ -6333,14 +6543,34 @@ void game::zones_manager() } } - wrefresh( w_zones_options ); + wnoutrefresh( w_zones_options ); }; - std::string zones_info_msg; + cata::optional zone_start; + cata::optional zone_end; + bool zone_blink = false; + bool zone_cursor = false; + shared_ptr_fast zone_cb = create_zone_callback( + zone_start, zone_end, zone_blink, zone_cursor ); + add_draw_callback( zone_cb ); auto query_position = - [this, &zones_info_msg]() -> cata::optional> { - zones_info_msg = _( "Select first point." ); + [&]() -> cata::optional> { + on_out_of_scope invalidate_current_ui( [&]() + { + ui.mark_resize(); + } ); + restore_on_out_of_scope show_prev( show ); + restore_on_out_of_scope> zone_start_prev( zone_start ); + restore_on_out_of_scope> zone_end_prev( zone_end ); + show = false; + zone_start = cata::nullopt; + zone_end = cata::nullopt; + ui.mark_resize(); + + static_popup popup; + popup.on_top( true ); + popup.message( "%s", _( "Select first point." ) ); tripoint center = u.pos() + u.view_offset; @@ -6348,7 +6578,7 @@ void game::zones_manager() false ); if( first.position ) { - zones_info_msg = _( "Select second point." ); + popup.message( "%s", _( "Select second point." ) ); const look_around_result second = look_around( /*show_window=*/false, center, *first.position, true, true, false ); @@ -6363,26 +6593,19 @@ void game::zones_manager() std::max( first.position->y, second.position->y ), std::max( first.position->z, second.position->z ) ) ); - zones_info_msg.clear(); - return std::pair( first_abs, second_abs ); } } - zones_info_msg.clear(); - return cata::nullopt; }; ui.on_redraw( [&]( const ui_adaptor & ) { - zones_manager_draw_borders( w_zones_border, w_zones_info_border, zone_ui_height, width ); - if( zones_info_msg.empty() ) { - zones_manager_shortcuts( w_zones_info ); - } else { - werase( w_zones_info ); - mvwprintz( w_zones_info, point( 2, 3 ), c_white, zones_info_msg ); - wrefresh( w_zones_info ); + if( !show ) { + return; } + zones_manager_draw_borders( w_zones_border, w_zones_info_border, zone_ui_height, width ); + zones_manager_shortcuts( w_zones_info ); if( zone_cnt == 0 ) { werase( w_zones ); @@ -6394,7 +6617,7 @@ void game::zones_manager() calcStartPos( start_index, active_index, max_rows, zone_cnt ); draw_scrollbar( w_zones_border, active_index, max_rows, zone_cnt, point_south ); - wrefresh( w_zones_border ); + wnoutrefresh( w_zones_border ); int iNum = 0; @@ -6440,7 +6663,7 @@ void game::zones_manager() zones_manager_options(); } - wrefresh( w_zones ); + wnoutrefresh( w_zones ); } ); zones_manager_open = true; @@ -6467,7 +6690,7 @@ void game::zones_manager() if( !maybe_name.has_value() ) { break; } - const itype_id &name = maybe_name.value(); + const std::string &name = maybe_name.value(); const auto position = query_position(); if( !position ) { @@ -6604,6 +6827,9 @@ void game::zones_manager() ctxt.reset_timeout(); } + // Actually accessed from the terrain overlay callback `zone_cb` in the + // call to `ui_manager::redraw`. + //NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) zone_blink = blink; invalidate_main_ui_adaptor(); @@ -6614,9 +6840,7 @@ void game::zones_manager() } while( action != "QUIT" ); zones_manager_open = false; ctxt.reset_timeout(); - zone_start = zone_end = cata::nullopt; - zone_blink = false; - invalidate_main_ui_adaptor(); + zone_cb = nullptr; if( stuff_changed ) { auto &zones = zone_manager::get_manager(); @@ -6640,8 +6864,7 @@ void game::pre_print_all_tile_info( const tripoint &lp, const catacurses::window const oter_id &cur_ter_m = overmap_buffer.ter( ms_to_omt_copy( g->m.getabs( lp ) ) ); // we only need the area name and then pass it to print_all_tile_info() function below const std::string area_name = cur_ter_m->get_name(); - print_all_tile_info( lp, w_info, area_name, 1, first_line, last_line, !is_draw_tiles_mode(), - cache ); + print_all_tile_info( lp, w_info, area_name, 1, first_line, last_line, cache ); } cata::optional game::look_around() @@ -6747,6 +6970,8 @@ look_around_result game::look_around( const bool show_window, tripoint ¢er, bool blink = true; look_around_result result; + shared_ptr_fast ter_indicator_cb; + if( show_window && ui ) { ui->on_redraw( [&]( const ui_adaptor & ) { werase( w_info ); @@ -6769,12 +6994,23 @@ look_around_result game::look_around( const bool show_window, tripoint ¢er, const int last_line = getmaxy( w_info ) - 2; pre_print_all_tile_info( lp, w_info, first_line, last_line, cache ); - wrefresh( w_info ); + wnoutrefresh( w_info ); + } ); + ter_indicator_cb = make_shared_fast( [&]() { + draw_terrain_indicator( lp, cache ); } ); + add_draw_callback( ter_indicator_cb ); } + cata::optional zone_start; + cata::optional zone_end; + bool zone_blink = false; + bool zone_cursor = true; + shared_ptr_fast zone_cb = create_zone_callback( zone_start, zone_end, zone_blink, + zone_cursor ); + add_draw_callback( zone_cb ); + is_looking = true; - zone_cursor = true; const tripoint prev_offset = u.view_offset; do { u.view_offset = center - u.pos(); @@ -6786,11 +7022,10 @@ look_around_result game::look_around( const bool show_window, tripoint ¢er, zone_start = lp; zone_end = cata::nullopt; } + // Actually accessed from the terrain overlay callback `zone_cb` in the + // call to `ui_manager::redraw`. + //NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) zone_blink = blink; - } else { - zone_start = lp; - zone_end = cata::nullopt; - zone_blink = false; } invalidate_main_ui_adaptor(); ui_manager::redraw(); @@ -6933,11 +7168,8 @@ look_around_result game::look_around( const bool show_window, tripoint ¢er, ctxt.reset_timeout(); u.view_offset = prev_offset; - zone_start = zone_end = cata::nullopt; - zone_blink = false; - zone_cursor = false; + zone_cb = nullptr; is_looking = false; - invalidate_main_ui_adaptor(); reenter_fullscreen(); bVMonsterLookFire = true; @@ -7017,10 +7249,7 @@ void draw_trail( const tripoint &start, const tripoint &end, const bool bDrawX ) void game::draw_trail_to_square( const tripoint &t, bool bDrawX ) { - //Reset terrain - draw_ter(); ::draw_trail( u.pos(), u.pos() + t, bDrawX ); - wrefresh( w_terrain ); } static void centerlistview( const tripoint &active_item_position, int ui_width ) @@ -7234,7 +7463,7 @@ void game::list_items_monsters() } if( ret == game::vmenu_ret::FIRE ) { - avatar_action::fire_wielded_weapon( u, m ); + avatar_action::fire_wielded_weapon( u ); } reenter_fullscreen(); } @@ -7349,7 +7578,7 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) reset_item_list_state( w_items_border, iInfoHeight, sort_radius ); if( ground_items.empty() ) { - wrefresh( w_items_border ); + wnoutrefresh( w_items_border ); mvwprintz( w_items, point( 2, 10 ), c_white, _( "You don't see any items around you!" ) ); } else { int iStartPos = 0; @@ -7444,7 +7673,7 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) draw_item_info( w_item_info, dummy ); } draw_scrollbar( w_items_border, iActive, iMaxRows, iItemNum, point_south ); - wrefresh( w_items_border ); + wnoutrefresh( w_items_border ); } const bool bDrawLeft = ground_items.empty() || filtered_items.empty() || !activeItem || filter_type; @@ -7458,14 +7687,21 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) wprintw( w_item_info, " >" ); } - wrefresh( w_items ); - wrefresh( w_item_info ); + wnoutrefresh( w_items ); + wnoutrefresh( w_item_info ); if( filter_type ) { draw_item_filter_rules( w_item_info, 0, iInfoHeight - 1, filter_type.value() ); } } ); + cata::optional trail_start; + cata::optional trail_end; + bool trail_end_x = false; + shared_ptr_fast trail_cb = create_trail_callback( trail_start, trail_end, + trail_end_x ); + add_draw_callback( trail_cb ); + do { if( action == "COMPARE" && activeItem ) { game_menus::inv::compare( u, active_pos ); @@ -7636,8 +7872,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) iScrollPos++; } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { u.view_offset = stored_view_offset; - trail_start = trail_end = cata::nullopt; - invalidate_main_ui_adaptor(); return game::vmenu_ret::CHANGE_TAB; } @@ -7661,6 +7895,9 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) centerlistview( active_pos, width ); trail_start = u.pos(); trail_end = u.pos() + active_pos; + // Actually accessed from the terrain overlay callback `trail_cb` in the + // call to `ui_manager::redraw`. + //NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) trail_end_x = true; } else { u.view_offset = stored_view_offset; @@ -7674,8 +7911,6 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) } while( action != "QUIT" ); u.view_offset = stored_view_offset; - trail_start = trail_end = cata::nullopt; - invalidate_main_ui_adaptor(); return game::vmenu_ret::QUIT; } @@ -7860,6 +8095,11 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list ::get_hp_bar( critter->get_hp(), critter->get_hp_max(), false ); } mvwprintz( w_monsters, point( width - 25, y ), color, sText ); + const int bar_max_width = 5; + const int bar_width = utf8_width( sText ); + for( int i = 0; i < bar_max_width - bar_width; ++i ) { + mvwprintz( w_monsters, point( width - 21 - i, y ), c_white, "." ); + } if( m != nullptr ) { const auto att = m->get_attitude(); @@ -7912,13 +8152,20 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list point_south ); } - wrefresh( w_monsters_border ); - wrefresh( w_monster_info_border ); - wrefresh( w_monsters ); - wrefresh( w_monster_info ); + wnoutrefresh( w_monsters_border ); + wnoutrefresh( w_monster_info_border ); + wnoutrefresh( w_monsters ); + wnoutrefresh( w_monster_info ); } } ); + cata::optional trail_start; + cata::optional trail_end; + bool trail_end_x = false; + shared_ptr_fast trail_cb = create_trail_callback( trail_start, trail_end, + trail_end_x ); + add_draw_callback( trail_cb ); + do { if( action == "UP" ) { iActive--; @@ -7936,8 +8183,6 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list } } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { u.view_offset = stored_view_offset; - trail_start = trail_end = cata::nullopt; - invalidate_main_ui_adaptor(); return game::vmenu_ret::CHANGE_TAB; } else if( action == "SAFEMODE_BLACKLIST_REMOVE" ) { const auto m = dynamic_cast( cCurMon ); @@ -7965,8 +8210,6 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list u.last_target = shared_from( *cCurMon ); u.recoil = MAX_RECOIL; u.view_offset = stored_view_offset; - trail_start = trail_end = cata::nullopt; - invalidate_main_ui_adaptor(); return game::vmenu_ret::FIRE; } } @@ -7977,6 +8220,9 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list centerlistview( iActivePos, width ); trail_start = u.pos(); trail_end = cCurMon->pos(); + // Actually accessed from the terrain overlay callback `trail_cb` in the + // call to `ui_manager::redraw`. + //NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) trail_end_x = false; } else { cCurMon = nullptr; @@ -7992,8 +8238,6 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list } while( action != "QUIT" ); u.view_offset = stored_view_offset; - trail_start = trail_end = cata::nullopt; - invalidate_main_ui_adaptor(); return game::vmenu_ret::QUIT; } @@ -8006,7 +8250,6 @@ void game::drop() void game::drop_in_direction() { if( const cata::optional pnt = choose_adjacent( _( "Drop where?" ) ) ) { - refresh_all(); u.drop( game_menus::inv::multidrop( u ), *pnt ); } } @@ -8113,7 +8356,7 @@ static void add_disassemblables( uilist &menu, // Butchery sub-menu and time calculation static void butcher_submenu( const std::vector &corpses, int corpse = -1 ) { - auto cut_time = [&]( enum butcher_type bt ) { + auto cut_time = [&]( butcher_type bt ) { int time_to_cut = 0; if( corpse != -1 ) { time_to_cut = butcher_time_to_cut( g->u, *corpses[corpse], bt ); @@ -8159,8 +8402,9 @@ static void butcher_submenu( const std::vector &corpses, in const std::string cannot_see = colorize( _( "can't see!" ), c_red ); - smenu.addentry_col( BUTCHER, enough_light, 'B', _( "Quick butchery" ), - enough_light ? cut_time( BUTCHER ) : cannot_see, + smenu.addentry_col( static_cast( butcher_type::QUICK ), enough_light, + 'B', _( "Quick butchery" ), + enough_light ? cut_time( butcher_type::QUICK ) : cannot_see, string_format( "%s %s", _( "This technique is used when you are in a hurry, " "but still want to harvest something from the corpse. " @@ -8168,8 +8412,9 @@ static void butcher_submenu( const std::vector &corpses, in "but it's useful if you don't want to set up a workshop. " "Prevents zombies from raising." ), msgFactor ) ); - smenu.addentry_col( BUTCHER_FULL, enough_light, 'b', _( "Full butchery" ), - enough_light ? cut_time( BUTCHER_FULL ) : cannot_see, + smenu.addentry_col( static_cast( butcher_type::FULL ), enough_light, + 'b', _( "Full butchery" ), + enough_light ? cut_time( butcher_type::FULL ) : cannot_see, string_format( "%s %s", _( "This technique is used to properly butcher a corpse, " "and requires a rope & a tree or a butchering rack, " @@ -8177,10 +8422,10 @@ static void butcher_submenu( const std::vector &corpses, in "and good tools. Yields are plentiful and varied, " "but it is time consuming." ), msgFactor ) ); - smenu.addentry_col( F_DRESS, enough_light && - has_organs, 'f', _( "Field dress corpse" ), - enough_light ? ( has_organs ? cut_time( F_DRESS ) : colorize( _( "has no organs" ), - c_red ) ) : cannot_see, + smenu.addentry_col( static_cast( butcher_type::FIELD_DRESS ), enough_light && has_organs, + 'f', _( "Field dress corpse" ), + enough_light ? ( has_organs ? cut_time( butcher_type::FIELD_DRESS ) : + colorize( _( "has no organs" ), c_red ) ) : cannot_see, string_format( "%s %s", _( "Technique that involves removing internal organs and " "viscera to protect the corpse from rotting from inside. " @@ -8188,9 +8433,10 @@ static void butcher_submenu( const std::vector &corpses, in "stay fresh longer. Can be combined with other methods for " "better effects." ), msgFactor ) ); - smenu.addentry_col( SKIN, enough_light && - has_skin, 's', _( "Skin corpse" ), - enough_light ? ( has_skin ? cut_time( SKIN ) : colorize( _( "has no skin" ), c_red ) ) : cannot_see, + smenu.addentry_col( static_cast( butcher_type::SKIN ), enough_light && has_skin, + 's', _( "Skin corpse" ), + enough_light ? ( has_skin ? cut_time( butcher_type::SKIN ) : colorize( _( "has no skin" ), + c_red ) ) : cannot_see, string_format( "%s %s", _( "Skinning a corpse is an involved and careful process that " "usually takes some time. You need skill and an appropriately " @@ -8198,8 +8444,9 @@ static void butcher_submenu( const std::vector &corpses, in "too small to yield a full-sized hide and will instead produce " "scraps that can be used in other ways." ), msgFactor ) ); - smenu.addentry_col( QUARTER, enough_light, 'k', _( "Quarter corpse" ), - enough_light ? cut_time( QUARTER ) : cannot_see, + smenu.addentry_col( static_cast( butcher_type::QUARTER ), enough_light, + 'k', _( "Quarter corpse" ), + enough_light ? cut_time( butcher_type::QUARTER ) : cannot_see, string_format( "%s %s", _( "By quartering a previously field dressed corpse you will " "acquire four parts with reduced weight and volume. It " @@ -8207,14 +8454,17 @@ static void butcher_submenu( const std::vector &corpses, in "skin, hide, pelt, etc., so don't use it if you want to " "harvest them later." ), msgFactor ) ); - smenu.addentry_col( DISMEMBER, true, 'm', _( "Dismember corpse" ), cut_time( DISMEMBER ), + smenu.addentry_col( static_cast( butcher_type::DISMEMBER ), true, + 'm', _( "Dismember corpse" ), + cut_time( butcher_type::DISMEMBER ), string_format( "%s %s", _( "If you're aiming to just destroy a body outright and don't " "care about harvesting it, dismembering it will hack it apart " "in a very short amount of time but yields little to no usable flesh." ), msgFactor ) ); - smenu.addentry_col( DISSECT, enough_light, 'd', _( "Dissect corpse" ), - enough_light ? cut_time( DISSECT ) : cannot_see, + smenu.addentry_col( static_cast( butcher_type::DISSECT ), enough_light, + 'd', _( "Dissect corpse" ), + enough_light ? cut_time( butcher_type::DISSECT ) : cannot_see, string_format( "%s %s", _( "By careful dissection of the corpse, you will examine it for " "possible bionic implants, or discrete organs and harvest them " @@ -8224,25 +8474,25 @@ static void butcher_submenu( const std::vector &corpses, in msgFactorD ) ); smenu.query(); switch( smenu.ret ) { - case BUTCHER: + case static_cast( butcher_type::QUICK ): g->u.assign_activity( activity_id( "ACT_BUTCHER" ), 0, true ); break; - case BUTCHER_FULL: + case static_cast( butcher_type::FULL ): g->u.assign_activity( activity_id( "ACT_BUTCHER_FULL" ), 0, true ); break; - case F_DRESS: + case static_cast( butcher_type::FIELD_DRESS ): g->u.assign_activity( activity_id( "ACT_FIELD_DRESS" ), 0, true ); break; - case SKIN: + case static_cast( butcher_type::SKIN ): g->u.assign_activity( activity_id( "ACT_SKIN" ), 0, true ); break; - case QUARTER: + case static_cast( butcher_type::QUARTER ): g->u.assign_activity( activity_id( "ACT_QUARTER" ), 0, true ); break; - case DISMEMBER: + case static_cast( butcher_type::DISMEMBER ): g->u.assign_activity( activity_id( "ACT_DISMEMBER" ), 0, true ); break; - case DISSECT: + case static_cast( butcher_type::DISSECT ): g->u.assign_activity( activity_id( "ACT_DISSECT" ), 0, true ); break; default: @@ -8484,9 +8734,6 @@ void game::butcher() break; case BUTCHER_CORPSE: { butcher_submenu( corpses, indexer_index ); - draw_ter(); - wrefresh( w_terrain ); - draw_panels( true ); u.activity.targets.emplace_back( map_cursor( u.pos() ), &*corpses[indexer_index] ); } break; @@ -8530,7 +8777,7 @@ void game::reload( item_location &loc, bool prompt, bool empty ) switch( u.rate_action_reload( *it ) ) { case hint_rating::iffy: if( ( it->is_ammo_container() || it->is_magazine() ) && it->ammo_remaining() > 0 && - it->ammo_remaining() == it->ammo_capacity() ) { + it->remaining_ammo_capacity() == 0 ) { add_msg( m_info, _( "The %s is already fully loaded!" ), it->tname() ); return; } @@ -8592,8 +8839,6 @@ void game::reload( item_location &loc, bool prompt, bool empty ) } u.activity.targets.push_back( std::move( opt.ammo ) ); } - - refresh_all(); } // Reload something. @@ -8654,8 +8899,8 @@ void game::reload_weapon( bool try_everything ) return ap->is_gun(); } // Finally sort by speed to reload. - return ( ap->get_reload_time() * ( ap->ammo_capacity() - ap->ammo_remaining() ) ) < - ( bp->get_reload_time() * ( bp->ammo_capacity() - bp->ammo_remaining() ) ); + return ( ap->get_reload_time() * ( ap->remaining_ammo_capacity() ) ) < + ( bp->get_reload_time() * ( bp->remaining_ammo_capacity() ) ); } ); for( item_location &candidate : reloadables ) { std::vector ammo_list; @@ -8685,9 +8930,9 @@ void game::reload_weapon( bool try_everything ) reload_item(); } -bool game::unload( item &it ) +bool game::unload( item_location &loc ) { - return u.unload( it ); + return u.unload( loc ); } void game::wield( item_location loc ) @@ -8696,7 +8941,6 @@ void game::wield( item_location loc ) debugmsg( "ERROR: tried to wield null item" ); return; } - std::string name = loc->tname(); if( u.is_armed() ) { const bool is_unwielding = u.is_wielding( *loc ); const auto ret = u.can_unwield( *loc ); @@ -8715,6 +8959,7 @@ void game::wield( item_location loc ) } } if( !loc ) { + std::string name = loc->tname(); /** * If we lost the location here, that means the thing we're * trying to wield was inside a wielded item. @@ -8743,6 +8988,7 @@ void game::wield( item_location loc ) item to_wield = *loc.get_item(); item_location::type location_type = loc.where(); tripoint pos = loc.position(); + const int obtain_cost = loc.obtain_cost( g->u ); int worn_index = INT_MIN; if( u.is_worn( *loc.get_item() ) ) { auto ret = u.can_takeoff( *loc.get_item() ); @@ -8756,7 +9002,7 @@ void game::wield( item_location loc ) } } loc.remove_item(); - if( !u.wield( to_wield ) ) { + if( !u.wield( to_wield, obtain_cost ) ) { switch( location_type ) { case item_location::type::container: // this will not cause things to spill, as it is inside another item @@ -8884,7 +9130,7 @@ bool game::disable_robot( const tripoint &p ) } const auto mid = critter.type->id; const auto mon_item_id = critter.type->revert_to_itype; - if( !mon_item_id.empty() && + if( !mon_item_id.is_empty() && query_yn( _( "Deactivate the %s?" ), critter.name() ) ) { u.moves -= 100; @@ -9005,13 +9251,13 @@ std::vector game::get_dangerous_tile( const tripoint &dest_loc ) co bool game::walk_move( const tripoint &dest_loc ) { if( m.has_flag_ter( TFLAG_SMALL_PASSAGE, dest_loc ) ) { - if( u.get_size() > MS_MEDIUM ) { + if( u.get_size() > creature_size::medium ) { add_msg( m_warning, _( "You can't fit there." ) ); return false; // character too large to fit through a tight passage } if( u.is_mounted() ) { monster *mount = u.mounted_creature.get(); - if( mount->get_size() > MS_MEDIUM ) { + if( mount->get_size() > creature_size::medium ) { add_msg( m_warning, _( "Your mount can't fit there." ) ); return false; // char's mount is too large for tight passages } @@ -9042,7 +9288,7 @@ bool game::walk_move( const tripoint &dest_loc ) const tripoint furn_pos = u.pos() + u.grab_point; const tripoint furn_dest = dest_loc + u.grab_point; - bool grabbed = u.get_grab_type() != OBJECT_NONE; + bool grabbed = u.get_grab_type() != object_type::NONE; if( grabbed ) { const tripoint dp = dest_loc - u.pos(); pushing = dp == u.grab_point; @@ -9051,12 +9297,12 @@ bool game::walk_move( const tripoint &dest_loc ) if( grabbed && dest_loc.z != u.posz() ) { add_msg( m_warning, _( "You let go of the grabbed object." ) ); grabbed = false; - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); } // Now make sure we're actually holding something const vehicle *grabbed_vehicle = nullptr; - if( grabbed && u.get_grab_type() == OBJECT_FURNITURE ) { + if( grabbed && u.get_grab_type() == object_type::FURNITURE ) { // We only care about shifting, because it's the only one that can change our destination if( m.has_furn( u.pos() + u.grab_point ) ) { shifting_furniture = !pushing && !pulling; @@ -9064,7 +9310,7 @@ bool game::walk_move( const tripoint &dest_loc ) // We were grabbing a furniture that isn't there grabbed = false; } - } else if( grabbed && u.get_grab_type() == OBJECT_VEHICLE ) { + } else if( grabbed && u.get_grab_type() == object_type::VEHICLE ) { grabbed_vehicle = veh_pointer_or_null( m.veh_at( u.pos() + u.grab_point ) ); if( grabbed_vehicle == nullptr ) { // We were grabbing a vehicle that isn't there anymore @@ -9076,7 +9322,7 @@ bool game::walk_move( const tripoint &dest_loc ) } if( u.grab_point != tripoint_zero && !grabbed ) { add_msg( m_warning, _( "Can't find grabbed object." ) ); - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); } if( m.impassable( dest_loc ) && !pushing && !shifting_furniture ) { @@ -9113,19 +9359,19 @@ bool game::walk_move( const tripoint &dest_loc ) !prompt_dangerous_tile( dest_loc ) ) { return true; } else if( get_option( "DANGEROUS_TERRAIN_WARNING_PROMPT" ) == "RUNNING" && - ( !u.movement_mode_is( CMM_RUN ) || !prompt_dangerous_tile( dest_loc ) ) ) { + ( !u.is_running() || !prompt_dangerous_tile( dest_loc ) ) ) { add_msg( m_warning, _( "Stepping into that %1$s looks risky. Run into it if you wish to enter anyway." ), enumerate_as_string( harmful_stuff ) ); return true; } else if( get_option( "DANGEROUS_TERRAIN_WARNING_PROMPT" ) == "CROUCHING" && - ( !u.movement_mode_is( CMM_CROUCH ) || !prompt_dangerous_tile( dest_loc ) ) ) { + ( !u.is_crouching() || !prompt_dangerous_tile( dest_loc ) ) ) { add_msg( m_warning, _( "Stepping into that %1$s looks risky. Crouch and move into it if you wish to enter anyway." ), enumerate_as_string( harmful_stuff ) ); return true; } else if( get_option( "DANGEROUS_TERRAIN_WARNING_PROMPT" ) == "NEVER" && - !u.movement_mode_is( CMM_RUN ) ) { + !u.is_running() ) { add_msg( m_warning, _( "Stepping into that %1$s looks risky. Run into it if you wish to enter anyway." ), enumerate_as_string( harmful_stuff ) ); @@ -9136,7 +9382,7 @@ bool game::walk_move( const tripoint &dest_loc ) const int mcost_from = m.move_cost( u.pos() ); //calculate this _before_ calling grabbed_move int modifier = 0; - if( grabbed && u.get_grab_type() == OBJECT_FURNITURE && u.pos() + u.grab_point == dest_loc ) { + if( grabbed && u.get_grab_type() == object_type::FURNITURE && u.pos() + u.grab_point == dest_loc ) { modifier = -m.furn( dest_loc ).obj().movecost; } @@ -9167,13 +9413,7 @@ bool game::walk_move( const tripoint &dest_loc ) const double base_moves = u.run_cost( mcost, diag ) * 100.0 / crit->get_speed(); const double encumb_moves = u.get_weight() / 4800.0_gram; u.moves -= static_cast( std::ceil( base_moves + encumb_moves ) ); - if( u.movement_mode_is( CMM_WALK ) ) { - crit->use_mech_power( -2 ); - } else if( u.movement_mode_is( CMM_CROUCH ) ) { - crit->use_mech_power( -1 ); - } else if( u.movement_mode_is( CMM_RUN ) ) { - crit->use_mech_power( -3 ); - } + crit->use_mech_power( -u.current_movement_mode()->mech_power_use() ); } else { u.moves -= u.run_cost( mcost, diag ); /** @@ -9243,31 +9483,28 @@ bool game::walk_move( const tripoint &dest_loc ) int volume = u.is_stealthy() ? 3 : 6; volume *= u.mutation_value( "noise_modifier" ); if( volume > 0 ) { - if( u.is_wearing( "rm13_armor_on" ) ) { + if( u.is_wearing( itype_rm13_armor_on ) ) { volume = 2; } else if( u.has_bionic( bionic_id( "bio_ankles" ) ) ) { volume = 12; } - if( u.movement_mode_is( CMM_RUN ) ) { - volume *= 1.5; - } else if( u.movement_mode_is( CMM_CROUCH ) ) { - volume /= 2; - } + + volume *= u.current_movement_mode()->sound_mult(); if( u.is_mounted() ) { auto mons = u.mounted_creature.get(); switch( mons->get_size() ) { - case MS_TINY: + case creature_size::tiny: volume = 0; // No sound for the tinies break; - case MS_SMALL: + case creature_size::small: volume /= 3; break; - case MS_MEDIUM: + case creature_size::medium: break; - case MS_LARGE: + case creature_size::large: volume *= 1.5; break; - case MS_HUGE: + case creature_size::huge: volume *= 2; break; default: @@ -9295,15 +9532,19 @@ bool game::walk_move( const tripoint &dest_loc ) add_msg( m_good, _( "You are hiding in the %s." ), m.name( dest_loc ) ); } - if( dest_loc != u.pos() ) { - cata_event_dispatch::avatar_moves( u, m, dest_loc ); - } - tripoint oldpos = u.pos(); + tripoint old_abs_pos = m.getabs( oldpos ); + + bool moving = dest_loc != oldpos; + point submap_shift = place_player( dest_loc ); point ms_shift = sm_to_ms_copy( submap_shift ); oldpos = oldpos - ms_shift; + if( moving ) { + cata_event_dispatch::avatar_moves( old_abs_pos, u, m ); + } + if( pulling ) { const tripoint shifted_furn_pos = furn_pos - ms_shift; const tripoint shifted_furn_dest = furn_dest - ms_shift; @@ -9371,7 +9612,7 @@ point game::place_player( const tripoint &dest_loc ) if( u.deal_damage( nullptr, bp, damage_instance( DT_CUT, rng( 1, 10 ) ) ).total_damage() > 0 ) { //~ 1$s - bodypart name in accusative, 2$s is terrain name. add_msg( m_bad, _( "You cut your %1$s on the %2$s!" ), - body_part_name_accusative( bp->token ), + body_part_name_accusative( bp ), m.has_flag_ter( "SHARP", dest_loc ) ? m.tername( dest_loc ) : m.furnname( dest_loc ) ); if( ( u.has_trait( trait_INFRESIST ) ) && ( one_in( 1024 ) ) ) { @@ -9560,7 +9801,8 @@ point game::place_player( const tripoint &dest_loc ) // Drench the player if swimmable if( m.has_flag( "SWIMMABLE", u.pos() ) && !( u.is_mounted() || ( u.in_vehicle && vp1->vehicle().can_float() ) ) ) { - u.drench( 40, { { bp_foot_l, bp_foot_r, bp_leg_l, bp_leg_r } }, false ); + u.drench( 40, { { bodypart_str_id( "foot_l" ), bodypart_str_id( "foot_r" ), bodypart_str_id( "leg_l" ), bodypart_str_id( "leg_r" ) } }, + false ); } // List items here @@ -9749,7 +9991,7 @@ bool game::phasing_move( const tripoint &dest_loc ) m.board_vehicle( u.pos(), &u ); } - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); on_move_effects(); m.creature_on_trap( u ); return true; @@ -9767,7 +10009,7 @@ bool game::grabbed_furn_move( const tripoint &dp ) if( !m.has_furn( fpos ) ) { // Where did it go? We're grabbing thin air so reset. add_msg( m_info, _( "No furniture at grabbed point." ) ); - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); return false; } @@ -9797,7 +10039,7 @@ bool game::grabbed_furn_move( const tripoint &dp ) const bool only_liquid_items = std::all_of( m.i_at( fdest ).begin(), m.i_at( fdest ).end(), [&]( item & liquid_item ) { - return liquid_item.made_of_from_type( LIQUID ); + return liquid_item.made_of_from_type( phase_id::LIQUID ); } ); const bool dst_item_ok = !m.has_flag( "NOITEM", fdest ) && @@ -9914,7 +10156,7 @@ bool game::grabbed_furn_move( const tripoint &dp ) u.grab_point = d_sum; // furniture moved relative to us } else { // we pushed furniture out of reach add_msg( _( "You let go of the %s." ), furntype.name() ); - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); } return true; // We moved furniture but stayed still. } @@ -9923,7 +10165,7 @@ bool game::grabbed_furn_move( const tripoint &dp ) // Not sure how that chair got into a wall, but don't let player follow. add_msg( _( "You let go of the %1$s as it slides past %2$s." ), furntype.name(), m.tername( fdest ) ); - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); return true; } @@ -9932,7 +10174,7 @@ bool game::grabbed_furn_move( const tripoint &dp ) bool game::grabbed_move( const tripoint &dp ) { - if( u.get_grab_type() == OBJECT_NONE ) { + if( u.get_grab_type() == object_type::NONE ) { return false; } @@ -9942,17 +10184,17 @@ bool game::grabbed_move( const tripoint &dp ) } // vehicle: pulling, pushing, or moving around the grabbed object. - if( u.get_grab_type() == OBJECT_VEHICLE ) { + if( u.get_grab_type() == object_type::VEHICLE ) { return grabbed_veh_move( dp ); } - if( u.get_grab_type() == OBJECT_FURNITURE ) { + if( u.get_grab_type() == object_type::FURNITURE ) { return grabbed_furn_move( dp ); } add_msg( m_info, _( "Nothing at grabbed point %d,%d,%d or bad grabbed object type." ), u.grab_point.x, u.grab_point.y, u.grab_point.z ); - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); return false; } @@ -9970,7 +10212,7 @@ void game::on_move_effects() } if( u.has_active_bionic( bionic_id( "bio_jointservo" ) ) ) { - if( u.movement_mode_is( CMM_RUN ) ) { + if( u.is_running() ) { u.mod_power_level( -55_J ); } else { u.mod_power_level( -35_J ); @@ -9978,7 +10220,7 @@ void game::on_move_effects() } } - if( u.movement_mode_is( CMM_RUN ) ) { + if( u.is_running() ) { if( !u.can_run() ) { u.toggle_run_mode(); } @@ -10104,7 +10346,9 @@ void game::fling_creature( Creature *c, const int &dir, float flvel, bool contro range--; steps++; if( animate && ( seen || u.sees( *c ) ) ) { - draw(); + invalidate_main_ui_adaptor(); + ui_manager::redraw_invalidated(); + refresh_display(); } } @@ -10218,7 +10462,7 @@ void game::vertical_move( int movez, bool force ) u.oxygen = 30 + 2 * u.str_cur; add_msg( _( "You dive underwater!" ) ); } else { - if( u.swim_speed() < 500 || u.shoe_type_count( "swim_fins" ) ) { + if( u.swim_speed() < 500 || u.shoe_type_count( itype_swim_fins ) ) { u.set_underwater( false ); add_msg( _( "You surface." ) ); } else { @@ -10281,7 +10525,7 @@ void game::vertical_move( int movez, bool force ) if( force ) { // Let go of a grabbed cart. - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); } else if( u.grab_point != tripoint_zero ) { add_msg( m_info, _( "You can't drag things up and down stairs." ) ); return; @@ -10435,14 +10679,7 @@ void game::vertical_move( int movez, bool force ) if( u.is_mounted() ) { monster *crit = u.mounted_creature.get(); if( crit->has_flag( MF_RIDEABLE_MECH ) ) { - crit->use_mech_power( -1 ); - if( u.movement_mode_is( CMM_WALK ) ) { - crit->use_mech_power( -2 ); - } else if( u.movement_mode_is( CMM_CROUCH ) ) { - crit->use_mech_power( -1 ); - } else if( u.movement_mode_is( CMM_RUN ) ) { - crit->use_mech_power( -3 ); - } + crit->use_mech_power( -u.current_movement_mode()->mech_power_use() - 1 ); } } else { u.moves -= move_cost; @@ -10453,6 +10690,7 @@ void game::vertical_move( int movez, bool force ) } } const tripoint old_pos = g->u.pos(); + const tripoint old_abs_pos = m.getabs( old_pos ); point submap_shift; vertical_shift( z_after ); if( !force ) { @@ -10557,7 +10795,7 @@ void game::vertical_move( int movez, bool force ) } if( m.ter( stairs ) == t_manhole_cover ) { - m.spawn_item( stairs + point( rng( -1, 1 ), rng( -1, 1 ) ), "manhole_cover" ); + m.spawn_item( stairs + point( rng( -1, 1 ), rng( -1, 1 ) ), itype_manhole_cover ); m.ter_set( stairs, t_manhole ); } @@ -10573,11 +10811,10 @@ void game::vertical_move( int movez, bool force ) } m.invalidate_map_cache( g->get_levz() ); - refresh_all(); // Upon force movement, traps can not be avoided. m.creature_on_trap( u, !force ); - cata_event_dispatch::avatar_moves( u, m, u.pos() ); + cata_event_dispatch::avatar_moves( old_abs_pos, u, m ); } void game::start_hauling( const tripoint &pos ) @@ -10589,7 +10826,7 @@ void game::start_hauling( const tripoint &pos ) map_stack items = m.i_at( pos ); for( item &it : items ) { // Liquid cannot be picked up - if( it.made_of_from_type( LIQUID ) ) { + if( it.made_of_from_type( phase_id::LIQUID ) ) { continue; } target_items.emplace_back( map_cursor( pos ), &it ); @@ -10728,17 +10965,17 @@ cata::optional game::find_or_make_stairs( map &mp, const int z_after, } else { return cata::nullopt; } - } else if( u.has_amount( "grapnel", 1 ) ) { + } else if( u.has_amount( itype_grapnel, 1 ) ) { if( query_yn( _( "There is a sheer drop halfway down. Climb your grappling hook down?" ) ) ) { rope_ladder = true; - u.use_amount( "grapnel", 1 ); + u.use_amount( itype_grapnel, 1 ); } else { return cata::nullopt; } - } else if( u.has_amount( "rope_30", 1 ) ) { + } else if( u.has_amount( itype_rope_30, 1 ) ) { if( query_yn( _( "There is a sheer drop halfway down. Climb your rope down?" ) ) ) { rope_ladder = true; - u.use_amount( "rope_30", 1 ); + u.use_amount( itype_rope_30, 1 ); } else { return cata::nullopt; } @@ -10758,7 +10995,7 @@ void game::vertical_shift( const int z_after ) } // TODO: Implement dragging stuff up/down - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); scent.reset(); @@ -10814,12 +11051,12 @@ void game::vertical_notes( int z_before, int z_after ) } const oter_id &ter = overmap_buffer.ter( cursp_before ); const oter_id &ter2 = overmap_buffer.ter( cursp_after ); - if( z_after > z_before && ter->has_flag( known_up ) && - !ter2->has_flag( known_down ) ) { + if( z_after > z_before && ter->has_flag( oter_flags::known_up ) && + !ter2->has_flag( oter_flags::known_down ) ) { overmap_buffer.set_seen( cursp_after, true ); overmap_buffer.add_note( cursp_after, string_format( ">:W;%s", _( "AUTO: goes down" ) ) ); - } else if( z_after < z_before && ter->has_flag( known_down ) && - !ter2->has_flag( known_up ) ) { + } else if( z_after < z_before && ter->has_flag( oter_flags::known_down ) && + !ter2->has_flag( oter_flags::known_up ) ) { overmap_buffer.set_seen( cursp_after, true ); overmap_buffer.add_note( cursp_after, string_format( "<:W;%s", _( "AUTO: goes up" ) ) ); } @@ -11327,10 +11564,12 @@ void game::display_scent() add_msg( _( "Never mind." ) ); return; } - draw_ter(); - scent.draw( w_terrain, div * 2, u.pos() + u.view_offset ); - wrefresh( w_terrain ); - draw_panels(); + shared_ptr_fast scent_cb = make_shared_fast( [&]() { + scent.draw( w_terrain, div * 2, u.pos() + u.view_offset ); + } ); + g->add_draw_callback( scent_cb ); + + ui_manager::redraw(); inp_mngr.wait_for_any_key(); } } @@ -11490,7 +11729,7 @@ void game::process_artifact( item &it, player &p ) if( it.is_tool() ) { // Recharge it if necessary - if( it.ammo_remaining() < it.ammo_capacity() && calendar::once_every( 1_minutes ) ) { + if( it.remaining_ammo_capacity() > 0 && calendar::once_every( 1_minutes ) ) { //Before incrementing charge, check that any extra requirements are met if( check_art_charge_req( it ) ) { switch( it.type->artifact->charge_type ) { @@ -11700,10 +11939,11 @@ bool check_art_charge_req( item &it ) reqsmet = false; break; } - for( const body_part bp : all_body_parts ) { - if( it.covers( bp ) || ( heldweapon && ( bp == bp_hand_r || bp == bp_hand_l ) ) ) { + for( const bodypart_id bp : p.get_all_body_parts() ) { + if( it.covers( bp ) || ( heldweapon && ( bp == bodypart_id( "hand_r" ) || + bp == bodypart_id( "hand_l" ) ) ) ) { reqsmet = true; - for( auto &i : p.worn ) { + for( const item &i : p.worn ) { if( i.covers( bp ) && ( &it != &i ) && i.get_coverage() > 50 ) { reqsmet = false; break; //This one's no good, check the next body part @@ -11987,8 +12227,7 @@ void game::add_artifact_dreams( ) //Pick only the ones with an applicable dream const cata::value_ptr &art = it->type->artifact; if( art && art->charge_req != ACR_NULL && - ( it->ammo_remaining() < it->ammo_capacity() || - it->ammo_capacity() == 0 ) ) { //or max 0 in case of wacky mod shenanigans + it->remaining_ammo_capacity() > 0 ) { //or max 0 in case of wacky mod shenanigans add_msg( m_debug, "Checking artifact %s", it->tname() ); if( check_art_charge_req( *it ) ) { add_msg( m_debug, " Has freq %s,%s", art->dream_freq_met, art->dream_freq_unmet ); @@ -12176,12 +12415,50 @@ void game::shift_destination_preview( const point &delta ) bool game::slip_down( bool check_for_traps ) { ///\EFFECT_DEX decreases chances of slipping while climbing - int climb = u.dex_cur; + ///\EFFECT_STR decreases chances of slipping while climbing + int climb = u.dex_cur + u.str_cur; + + if( u.has_trait( trait_PARKOUR ) ) { + climb *= 2; + add_msg( m_info, _( "Your skill in parkour makes it easier to climb." ) ); + } if( u.has_trait( trait_BADKNEES ) ) { - climb = climb / 2; + climb /= 2; + add_msg( m_info, _( "Your bad knees make it difficult to climb." ) ); + } + + // Climbing is difficult with wet hands and feet. + float wet_penalty = 1.0f; + + if( u.body_wetness[bp_foot_l] > 0 || u.body_wetness[bp_foot_r] > 0 ) { + wet_penalty += .5; + add_msg( m_info, _( "Your wet feet make it harder to climb." ) ); } + + if( u.body_wetness[bp_hand_l] > 0 || u.body_wetness[bp_hand_r] > 0 ) { + wet_penalty += .5; + add_msg( m_info, _( "Your wet hands make it harder to climb." ) ); + } + + // Apply wetness penalty + climb /= wet_penalty; + + // Being weighed down makes it easier for you to slip. + const double weight_ratio = u.weight_carried() / u.weight_capacity(); + climb -= roll_remainder( 8.0 * weight_ratio ); + + if( weight_ratio >= 1 ) { + add_msg( m_info, _( "Your carried weight tries to drag you down." ) ); + } else if( weight_ratio > .75 ) { + add_msg( m_info, _( "You strain to climb with the weight of your possessions." ) ); + } else if( weight_ratio > .5 ) { + add_msg( m_info, _( "You feel the weight of your luggage makes it more difficult to climb." ) ); + } else if( weight_ratio > .25 ) { + add_msg( m_info, _( "Your carried weight makes it a little harder to climb." ) ); + } + if( one_in( climb ) ) { - add_msg( m_bad, _( "You slip while climbing and fall down again." ) ); + add_msg( m_bad, _( "You slip while climbing and fall down." ) ); if( climb <= 1 ) { add_msg( m_bad, _( "Climbing is impossible in your current state." ) ); } @@ -12195,13 +12472,22 @@ bool game::slip_down( bool check_for_traps ) namespace cata_event_dispatch { -void avatar_moves( const avatar &u, const map &m, const tripoint &p ) +void avatar_moves( const tripoint &old_abs_pos, const avatar &u, const map &m ) { + const tripoint &new_pos = u.pos(); + const tripoint &new_abs_pos = m.getabs( new_pos ); mtype_id mount_type; if( u.is_mounted() ) { mount_type = u.mounted_creature->type->id; } - g->events().send( mount_type, m.ter( p ).id(), - u.get_movement_mode(), u.is_underwater(), p.z ); + g->events().send( mount_type, m.ter( new_pos ).id(), + u.current_movement_mode(), u.is_underwater(), new_pos.z ); + + const tripoint old_abs_omt = ms_to_omt_copy( old_abs_pos ); + const tripoint new_abs_omt = ms_to_omt_copy( new_abs_pos ); + if( old_abs_omt != new_abs_omt ) { + const oter_id &cur_ter = overmap_buffer.ter( new_abs_omt ); + g->events().send( new_abs_omt, cur_ter ); + } } } // namespace cata_event_dispatch diff --git a/src/game.h b/src/game.h index dc5d42d37c1e3..ec3d8d3ef8969 100644 --- a/src/game.h +++ b/src/game.h @@ -67,7 +67,7 @@ class input_context; input_context get_default_mode_input_context(); -enum class dump_mode { +enum class dump_mode : int { TSV, HTML }; @@ -93,8 +93,6 @@ enum action_id : int; struct special_game; -using itype_id = std::string; - class achievements_tracker; class avatar; class event_bus; @@ -224,18 +222,33 @@ class game bool do_turn(); shared_ptr_fast create_or_get_main_ui_adaptor(); void invalidate_main_ui_adaptor() const; + void mark_main_ui_adaptor_resize() const; void draw(); void draw_ter( bool draw_sounds = true ); void draw_ter( const tripoint ¢er, bool looking = false, bool draw_sounds = true ); + + class draw_callback_t + { + public: + draw_callback_t( const std::function &cb ); + ~draw_callback_t(); + void operator()(); + friend class game; + private: + std::function cb; + bool added = false; + }; + /* Add callback that would be called in `game::draw`. This can be used to + * implement map overlays in game menus. If parameters of the callback changes + * during its lifetime, `invaliate_main_ui_adaptor` has to be called for + * the changes to take effect immediately on the next call to `ui_manager::redraw`. + * Otherwise the callback may not take effect until the main ui is invalidated + * due to resizing or other menus closing. The callback is disabled once all + * shared pointers to the callback are deconstructed, and is removed afterwards. */ + void add_draw_callback( const shared_ptr_fast &cb ); private: - cata::optional zone_start; - cata::optional zone_end; - bool zone_blink = false; - bool zone_cursor = false; bool is_looking = false; - cata::optional trail_start; - cata::optional trail_end; - bool trail_end_x = false; + std::vector> draw_callbacks; public: // when force_redraw is true, redraw all panel instead of just animated panels @@ -534,7 +547,6 @@ class game character_id assign_npc_id(); Creature *is_hostile_nearby(); Creature *is_hostile_very_close(); - void refresh_all(); // Handles shifting coordinates transparently when moving between submaps. // Helper to make calling with a player pointer less verbose. point update_map( player &p ); @@ -567,7 +579,9 @@ class game // Shared method to print "look around" info void print_all_tile_info( const tripoint &lp, const catacurses::window &w_look, const std::string &area_name, int column, - int &line, int last_line, bool draw_terrain_indicators, const visibility_variables &cache ); + int &line, int last_line, const visibility_variables &cache ); + + void draw_terrain_indicator( const tripoint &lp, const visibility_variables &cache ) const; /** Long description of (visible) things at tile. */ void extended_description( const tripoint &p ); @@ -580,11 +594,17 @@ class game RIGHT_OF_INFO, LEFT_TERMINAL_EDGE, }; - int inventory_item_menu( item_location locThisItem, int startx = 0, int width = 50, - inventory_item_menu_positon position = RIGHT_OF_INFO ); + int inventory_item_menu( item_location locThisItem, + const std::function &startx = []() { + return 0; + }, + const std::function &width = []() { + return 50; + }, + inventory_item_menu_positon position = RIGHT_OF_INFO ); /** Custom-filtered menu for inventory and nearby items and those that within specified radius */ - item_location inv_map_splice( item_filter filter, const std::string &title, int radius = 0, + item_location inv_map_splice( const item_filter &filter, const std::string &title, int radius = 0, const std::string &none_message = "" ); bool has_gametype() const; @@ -791,7 +811,7 @@ class game point place_player( const tripoint &dest ); void place_player_overmap( const tripoint &om_dest ); - bool unload( item &it ); // Unload a gun/tool 'U' + bool unload( item_location &loc ); // Unload a gun/tool 'U' unsigned int get_seed() const; @@ -826,7 +846,7 @@ class game int column, int &line, int last_line ); void print_visibility_info( const catacurses::window &w_look, int column, int &line, visibility_type visibility ); - void print_visibility_indicator( visibility_type visibility ); + void print_visibility_indicator( visibility_type visibility ) const; void print_items_info( const tripoint &lp, const catacurses::window &w_look, int column, int &line, int last_line ); void print_graffiti_info( const tripoint &lp, const catacurses::window &w_look, int column, @@ -1030,8 +1050,8 @@ class game bool npcs_dirty = false; /** Has anything died in this turn and needs to be cleaned up? */ bool critter_died = false; - /** Was the player sleeping during this turn. */ - bool player_was_sleeping = false; + /** Is this the first redraw since waiting (sleeping or activity) started */ + bool first_redraw_since_waiting_started = true; /** Is Zone manager open or not - changes graphics of some zone tiles */ bool zones_manager_open = false; @@ -1090,10 +1110,10 @@ int get_convection_temperature( const tripoint &location ); namespace cata_event_dispatch { // Constructs and dispatches an avatar movement event with the necessary parameters -// @param u The avatar moving +// @param p The point the avatar moved from in absolute coordinates +// @param u The avatar (should have already moved to the new pos) // @param m The map the avatar is moving on -// @param p The point the avatar is moving to on map m -void avatar_moves( const avatar &u, const map &m, const tripoint &p ); +void avatar_moves( const tripoint &old_abs_pos, const avatar &u, const map &m ); } // namespace cata_event_dispatch #endif // CATA_SRC_GAME_H diff --git a/src/game_inventory.cpp b/src/game_inventory.cpp index e488e20e55b2a..6fd14fd68d518 100644 --- a/src/game_inventory.cpp +++ b/src/game_inventory.cpp @@ -57,14 +57,8 @@ static const activity_id ACT_CONSUME_FOOD_MENU( "ACT_CONSUME_FOOD_MENU" ); static const activity_id ACT_CONSUME_DRINK_MENU( "ACT_CONSUME_DRINK_MENU" ); static const activity_id ACT_CONSUME_MEDS_MENU( "ACT_CONSUME_MEDS_MENU" ); -static const efftype_id effect_assisted( "assisted" ); - static const fault_id fault_bionic_salvaged( "fault_bionic_salvaged" ); -static const skill_id skill_computer( "computer" ); -static const skill_id skill_electronics( "electronics" ); -static const skill_id skill_firstaid( "firstaid" ); - static const quality_id qual_ANESTHESIA( "ANESTHESIA" ); static const bionic_id bio_painkiller( "bio_painkiller" ); @@ -78,7 +72,6 @@ static const std::string flag_ALLOWS_REMOTE_USE( "ALLOWS_REMOTE_USE" ); static const std::string flag_FILTHY( "FILTHY" ); static const std::string flag_IN_CBM( "IN_CBM" ); static const std::string flag_MUSHY( "MUSHY" ); -static const std::string flag_LIQUIDCONT( "LIQUIDCONT" ); static const std::string flag_NO_PACKED( "NO_PACKED" ); static const std::string flag_NO_STERILE( "NO_STERILE" ); static const std::string flag_USE_EAT_VERB( "USE_EAT_VERB" ); @@ -235,14 +228,11 @@ void game_menus::inv::common( avatar &you ) } } - g->refresh_all(); res = g->inventory_item_menu( location ); - g->refresh_all(); - } while( loop_options.count( res ) != 0 ); } -void game_menus::inv::common( item_location loc, avatar &you ) +void game_menus::inv::common( item_location &loc, avatar &you ) { // Return to inventory menu on those inputs static const std::set loop_options = { { '\0', '=', 'f' } }; @@ -271,21 +261,18 @@ void game_menus::inv::common( item_location loc, avatar &you ) } } - g->refresh_all(); res = g->inventory_item_menu( location ); - g->refresh_all(); - } while( loop_options.count( res ) != 0 ); } -item_location game_menus::inv::titled_filter_menu( item_filter filter, avatar &you, +item_location game_menus::inv::titled_filter_menu( const item_filter &filter, avatar &you, const std::string &title, const std::string &none_message ) { return inv_internal( you, inventory_filter_preset( convert_filter( filter ) ), title, -1, none_message ); } -item_location game_menus::inv::titled_filter_menu( item_location_filter filter, avatar &you, +item_location game_menus::inv::titled_filter_menu( const item_location_filter &filter, avatar &you, const std::string &title, const std::string &none_message ) { return inv_internal( you, inventory_filter_preset( filter ), @@ -407,7 +394,7 @@ item_location game_menus::inv::take_off( avatar &you ) _( "You don't wear anything." ) ); } -item_location game::inv_map_splice( item_filter filter, const std::string &title, int radius, +item_location game::inv_map_splice( const item_filter &filter, const std::string &title, int radius, const std::string &none_message ) { return inv_internal( u, inventory_filter_preset( convert_filter( filter ) ), @@ -443,7 +430,7 @@ class pickup_inventory_preset : public inventory_selector_preset std::string get_denial( const item_location &loc ) const override { if( !p.has_item( *loc ) ) { - if( loc->made_of_from_type( LIQUID ) ) { + if( loc->made_of_from_type( phase_id::LIQUID ) ) { return _( "Can't pick up spilt liquids" ); } else if( !p.can_pickVolume( *loc ) && p.is_armed() ) { return _( "Too big to pick up" ); @@ -628,7 +615,7 @@ class comestible_inventory_preset : public inventory_selector_preset std::string get_denial( const item_location &loc ) const override { const item &med = *loc; - if( loc->made_of_from_type( LIQUID ) && loc.where() != item_location::type::container ) { + if( loc->made_of_from_type( phase_id::LIQUID ) && loc.where() != item_location::type::container ) { return _( "Can't drink spilt liquids" ); } @@ -1223,6 +1210,10 @@ class weapon_inventory_preset: public inventory_selector_preset } return std::string(); }, _( "MOVES" ) ); + + append_cell( [this]( const item_location & loc ) { + return string_format( "%d", loc.obtain_cost( this->p ) ); + }, _( "WIELD COST" ) ); } std::string get_denial( const item_location &loc ) const override { @@ -1270,7 +1261,7 @@ class holster_inventory_preset: public weapon_inventory_preset const item &holster; }; -drop_locations game_menus::inv::holster( player &p, item_location holster ) +drop_locations game_menus::inv::holster( player &p, const item_location &holster ) { const std::string holster_name = holster->tname( 1, false ); const use_function *use = holster->type->get_use( "holster" ); @@ -1296,10 +1287,13 @@ drop_locations game_menus::inv::holster( player &p, item_location holster ) return insert_menu.execute(); } -void game_menus::inv::insert_items( avatar &you, item_location holster ) +void game_menus::inv::insert_items( avatar &you, item_location &holster ) { drop_locations holstered_list = game_menus::inv::holster( you, holster ); for( drop_location holstered_item : holstered_list ) { + if( !holstered_item.first ) { + continue; + } item &it = *holstered_item.first; bool success = false; if( !it.count_by_charges() || it.count() == holstered_item.second ) { @@ -1602,7 +1596,6 @@ void game_menus::inv::swap_letters( player &p ) } reassign_letter( p, *loc ); - g->refresh_all(); } } @@ -1749,15 +1742,10 @@ class bionic_install_preset: public inventory_selector_preset int chance_of_failure = 100; player &installer = p; - const int adjusted_skill = installer.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics, - -1 ); - if( g->u.has_trait( trait_DEBUG_BIONICS ) ) { chance_of_failure = 0; } else { - chance_of_failure = 100 - bionic_manip_cos( adjusted_skill, difficulty ); + chance_of_failure = 100 - bionic_success_chance( true, -1, difficulty, installer ); } return string_format( _( "%i%%" ), chance_of_failure ); @@ -1844,16 +1832,10 @@ class bionic_install_surgeon_preset : public inventory_selector_preset int chance_of_failure = 100; player &installer = p; - // Override player's skills with surgeon skill - const int adjusted_skill = installer.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics, - 20 ); - if( g->u.has_trait( trait_DEBUG_BIONICS ) ) { chance_of_failure = 0; } else { - chance_of_failure = 100 - bionic_manip_cos( adjusted_skill, difficulty ); + chance_of_failure = 100 - bionic_success_chance( true, 20, difficulty, installer ); } return string_format( _( "%i%%" ), chance_of_failure ); @@ -1931,15 +1913,10 @@ class bionic_uninstall_preset : public inventory_selector_preset int chance_of_failure = 100; player &installer = p; - const int adjusted_skill = installer.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics, - -1 ); - if( g->u.has_trait( trait_DEBUG_BIONICS ) ) { chance_of_failure = 0; } else { - chance_of_failure = 100 - bionic_manip_cos( adjusted_skill, difficulty ); + chance_of_failure = 100 - bionic_success_chance( true, -1, difficulty, installer ); } return string_format( _( "%i%%" ), chance_of_failure ); diff --git a/src/game_inventory.h b/src/game_inventory.h index 92a21238a458e..ce5d6ae2b4b1d 100644 --- a/src/game_inventory.h +++ b/src/game_inventory.h @@ -47,9 +47,9 @@ namespace inv item_location titled_menu( avatar &you, const std::string &title, const std::string &none_message = "" ); // item selector for items in @you's inventory with a filter -item_location titled_filter_menu( item_filter filter, avatar &you, +item_location titled_filter_menu( const item_filter &filter, avatar &you, const std::string &title, const std::string &none_message = "" ); -item_location titled_filter_menu( item_location_filter filter, avatar &you, +item_location titled_filter_menu( const item_location_filter &filter, avatar &you, const std::string &title, const std::string &none_message = "" ); /** @@ -64,7 +64,7 @@ item_location titled_filter_menu( item_location_filter filter, avatar &you, /*@{*/ void common( avatar &you ); -void common( item_location loc, avatar &you ); +void common( item_location &loc, avatar &you ); void compare( player &p, const cata::optional &offset ); void reassign_letter( player &p, item &it ); void swap_letters( player &p ); @@ -98,8 +98,8 @@ item_location use( avatar &you ); /** Item wielding/unwielding menu. */ item_location wield( avatar &you ); /** Item wielding/unwielding menu. */ -drop_locations holster( player &p, item_location holster ); -void insert_items( avatar &you, item_location holster ); +drop_locations holster( player &p, const item_location &holster ); +void insert_items( avatar &you, item_location &holster ); /** Choosing a gun to saw down it's barrel. */ item_location saw_barrel( player &p, item &tool ); /** Choose item to wear. */ diff --git a/src/gamemode_defense.cpp b/src/gamemode_defense.cpp index 905d43f5d4df4..3a710f18867fb 100644 --- a/src/gamemode_defense.cpp +++ b/src/gamemode_defense.cpp @@ -458,12 +458,25 @@ void defense_game::init_to_style( defense_style new_style ) void defense_game::setup() { - catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0, - TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ) ); + background_pane bg_pane; + + catacurses::window w; + + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + point( TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0, + TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ) ); + ui.position_from_window( w ); + } ); + ui.mark_resize(); + int selection = 1; int selection_max = 20; - refresh_setup( w, selection ); + + ui.on_redraw( [&]( const ui_adaptor & ) { + refresh_setup( w, selection ); + } ); input_context ctxt( "DEFENSE_SETUP" ); ctxt.register_action( "UP", to_translation( "Previous option" ) ); @@ -476,16 +489,13 @@ void defense_game::setup() ctxt.register_action( "START" ); ctxt.register_action( "HELP_KEYBINDINGS" ); - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); - while( true ) { + ui_manager::redraw(); const std::string action = ctxt.handle_input(); if( action == "START" ) { if( !zombies && !specials && !spiders && !triffids && !robots && !subspace ) { popup( _( "You must choose at least one monster group!" ) ); - refresh_setup( w, selection ); } else { return; } @@ -495,14 +505,12 @@ void defense_game::setup() } else { selection++; } - refresh_setup( w, selection ); } else if( action == "UP" ) { if( selection == 1 ) { selection = selection_max; } else { selection--; } - refresh_setup( w, selection ); } else { switch( selection ) { case 1: @@ -540,10 +548,6 @@ void defense_game::setup() location = static_cast( location - 1 ); } } - mvwprintz( w, point( 2, 5 ), c_black, - " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ); - mvwprintz( w, point( 2, 5 ), c_yellow, defense_location_name( location ) ); - mvwprintz( w, point( 28, 5 ), c_light_gray, defense_location_description( location ) ); break; case 3: @@ -554,9 +558,6 @@ void defense_game::setup() if( action == "RIGHT" && initial_difficulty < 995 ) { initial_difficulty += 5; } - mvwprintz( w, point( 22, 7 ), c_black, "xxx" ); - mvwprintz( w, point( NUMALIGN( initial_difficulty ), 7 ), c_yellow, "%d", - initial_difficulty ); break; case 4: @@ -567,9 +568,6 @@ void defense_game::setup() if( action == "RIGHT" && wave_difficulty < 995 ) { wave_difficulty += 5; } - mvwprintz( w, point( 22, 8 ), c_black, "xxx" ); - mvwprintz( w, point( NUMALIGN( wave_difficulty ), 8 ), c_yellow, "%d", - wave_difficulty ); break; case 5: @@ -579,9 +577,6 @@ void defense_game::setup() if( action == "RIGHT" && time_between_waves < 995_minutes ) { time_between_waves += 5_minutes; } - mvwprintz( w, point( 22, 10 ), c_black, "xxx" ); - mvwprintz( w, point( NUMALIGN( to_minutes( time_between_waves ) ), 10 ), - c_yellow, "%d", to_minutes( time_between_waves ) ); break; case 6: @@ -591,9 +586,6 @@ void defense_game::setup() if( action == "RIGHT" && waves_between_caravans < 50 ) { waves_between_caravans += 1; } - mvwprintz( w, point( 22, 11 ), c_black, "xxx" ); - mvwprintz( w, point( NUMALIGN( waves_between_caravans ), 11 ), c_yellow, "%d", - waves_between_caravans ); break; case 7: @@ -603,9 +595,6 @@ void defense_game::setup() if( action == "RIGHT" && initial_cash < 1000000 ) { initial_cash += 100; } - mvwprintz( w, point( 20, 13 ), c_black, "xxxxx" ); - mvwprintz( w, point( NUMALIGN( initial_cash ), 13 ), c_yellow, "%d", - initial_cash / 100 ); break; case 8: @@ -615,9 +604,6 @@ void defense_game::setup() if( action == "RIGHT" && cash_per_wave < 1000000 ) { cash_per_wave += 100; } - mvwprintz( w, point( 21, 14 ), c_black, "xxxx" ); - mvwprintz( w, point( NUMALIGN( cash_per_wave ), 14 ), c_yellow, "%d", - cash_per_wave / 100 ); break; case 9: @@ -627,9 +613,6 @@ void defense_game::setup() if( action == "RIGHT" && cash_increase < 1000000 ) { cash_increase += 50; } - mvwprintz( w, point( 21, 15 ), c_black, "xxxx" ); - mvwprintz( w, point( NUMALIGN( cash_increase ), 15 ), c_yellow, "%d", - cash_increase / 100 ); break; case 10: @@ -646,75 +629,63 @@ void defense_game::setup() specials = !specials; zombies = false; } - mvwprintz( w, point( 2, 18 ), c_yellow, _( "Zombies" ) ); - mvwprintz( w, point( 14, 18 ), ( specials ? c_light_green : c_yellow ), _( "Special Zombies" ) ); break; case 12: if( action == "CONFIRM" ) { spiders = !spiders; } - mvwprintz( w, point( 34, 18 ), ( spiders ? c_light_green : c_yellow ), _( "Spiders" ) ); break; case 13: if( action == "CONFIRM" ) { triffids = !triffids; } - mvwprintz( w, point( 46, 18 ), ( triffids ? c_light_green : c_yellow ), _( "Triffids" ) ); break; case 14: if( action == "CONFIRM" ) { robots = !robots; } - mvwprintz( w, point( 59, 18 ), ( robots ? c_light_green : c_yellow ), _( "Robots" ) ); break; case 15: if( action == "CONFIRM" ) { subspace = !subspace; } - mvwprintz( w, point( 70, 18 ), ( subspace ? c_light_green : c_yellow ), _( "Subspace" ) ); break; case 16: if( action == "CONFIRM" ) { hunger = !hunger; } - mvwprintz( w, point( 2, 21 ), ( hunger ? c_light_green : c_yellow ), _( "Food" ) ); break; case 17: if( action == "CONFIRM" ) { thirst = !thirst; } - mvwprintz( w, point( 14, 21 ), ( thirst ? c_light_green : c_yellow ), _( "Water" ) ); break; case 18: if( action == "CONFIRM" ) { sleep = !sleep; } - mvwprintz( w, point( 34, 21 ), ( sleep ? c_light_green : c_yellow ), _( "Sleep" ) ); break; case 19: if( action == "CONFIRM" ) { mercenaries = !mercenaries; } - mvwprintz( w, point( 46, 21 ), ( mercenaries ? c_light_green : c_yellow ), _( "Mercenaries" ) ); break; case 20: if( action == "CONFIRM" ) { allow_save = !allow_save; } - mvwprintz( w, point( 59, 21 ), ( allow_save ? c_light_green : c_yellow ), _( "Allow save" ) ); break; } } - refresh_setup( w, selection ); } } @@ -771,7 +742,7 @@ void defense_game::refresh_setup( const catacurses::window &w, int selection ) mvwprintz( w, point( 34, 21 ), TOGCOL( 18, sleep ), _( "Sleep" ) ); mvwprintz( w, point( 46, 21 ), TOGCOL( 19, mercenaries ), _( "Mercenaries" ) ); mvwprintz( w, point( 59, 21 ), TOGCOL( 20, allow_save ), _( "Allow save" ) ); - wrefresh( w ); + wnoutrefresh( w ); } std::string defense_style_name( defense_style style ) @@ -897,7 +868,19 @@ void defense_game::caravan() signed total_price = 0; - catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, point_zero ); + background_pane bg_pane; + + catacurses::window w; + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + const int width = FULL_SCREEN_WIDTH; + const int height = FULL_SCREEN_HEIGHT; + const int offsetx = std::max( 0, TERMX - FULL_SCREEN_WIDTH ) / 2; + const int offsety = std::max( 0, TERMY - FULL_SCREEN_HEIGHT ) / 2; + w = catacurses::newwin( height, width, point( offsetx, offsety ) ); + ui.position_from_window( w ); + } ); + ui.mark_resize(); int offset = 0; int item_selected = 0; @@ -905,8 +888,12 @@ void defense_game::caravan() int current_window = 0; - draw_caravan_borders( w, current_window ); - draw_caravan_categories( w, category_selected, total_price, g->u.cash ); + ui.on_redraw( [&]( const ui_adaptor & ) { + draw_caravan_categories( w, category_selected, total_price, g->u.cash ); + draw_caravan_items( w, &( items[category_selected] ), + &( item_count[category_selected] ), offset, item_selected ); + draw_caravan_borders( w, current_window ); + } ); input_context ctxt( "CARAVAN" ); ctxt.register_cardinal(); @@ -916,12 +903,10 @@ void defense_game::caravan() ctxt.register_action( "HELP" ); ctxt.register_action( "HELP_KEYBINDINGS" ); - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); - bool done = false; bool cancel = false; while( !done ) { + ui_manager::redraw(); const std::string action = ctxt.handle_input(); if( action == "HELP" ) { popup_top( _( "CARAVAN:\n" @@ -933,23 +918,14 @@ void defense_game::caravan() ctxt.get_desc( "CONFIRM" ), ctxt.get_desc( "QUIT" ) ); - draw_caravan_categories( w, category_selected, total_price, g->u.cash ); - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, item_selected ); - draw_caravan_borders( w, current_window ); } else if( action == "DOWN" ) { if( current_window == 0 ) { // Categories category_selected++; if( category_selected == NUM_CARAVAN_CATEGORIES ) { category_selected = CARAVAN_CART; } - draw_caravan_categories( w, category_selected, total_price, g->u.cash ); offset = 0; item_selected = 0; - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, - item_selected ); - draw_caravan_borders( w, current_window ); } else if( !items[category_selected].empty() ) { // Items if( item_selected < static_cast( items[category_selected].size() ) - 1 ) { item_selected++; @@ -960,10 +936,6 @@ void defense_game::caravan() if( item_selected > offset + 12 ) { offset++; } - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, - item_selected ); - draw_caravan_borders( w, current_window ); } } else if( action == "UP" ) { if( current_window == 0 ) { // Categories @@ -975,13 +947,8 @@ void defense_game::caravan() if( category_selected == NUM_CARAVAN_CATEGORIES ) { category_selected = CARAVAN_CART; } - draw_caravan_categories( w, category_selected, total_price, g->u.cash ); offset = 0; item_selected = 0; - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, - item_selected ); - draw_caravan_borders( w, current_window ); } else if( !items[category_selected].empty() ) { // Items if( item_selected > 0 ) { item_selected--; @@ -995,10 +962,6 @@ void defense_game::caravan() if( item_selected < offset ) { offset--; } - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, - item_selected ); - draw_caravan_borders( w, current_window ); } } else if( action == "RIGHT" ) { if( current_window == 1 && !items[category_selected].empty() ) { @@ -1026,10 +989,6 @@ void defense_game::caravan() item_count[0].push_back( 1 ); } } - draw_caravan_categories( w, category_selected, total_price, g->u.cash ); - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, item_selected ); - draw_caravan_borders( w, current_window ); } } else if( action == "LEFT" ) { if( current_window == 1 && !items[category_selected].empty() && @@ -1058,23 +1017,13 @@ void defense_game::caravan() } } } - draw_caravan_categories( w, category_selected, total_price, g->u.cash ); - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, item_selected ); - draw_caravan_borders( w, current_window ); } } else if( action == "NEXT_TAB" ) { current_window = ( current_window + 1 ) % 2; - draw_caravan_borders( w, current_window ); } else if( action == "QUIT" ) { if( query_yn( _( "Really buy nothing?" ) ) ) { cancel = true; done = true; - } else { - draw_caravan_categories( w, category_selected, total_price, g->u.cash ); - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, item_selected ); - draw_caravan_borders( w, current_window ); } } else if( action == "CONFIRM" ) { if( total_price > g->u.cash ) { @@ -1088,12 +1037,6 @@ void defense_game::caravan() format_money( static_cast( g->u.cash ) - static_cast( total_price ) ) ) ) ) { done = true; } - if( !done ) { // We canceled, so redraw everything - draw_caravan_categories( w, category_selected, total_price, g->u.cash ); - draw_caravan_items( w, &( items[category_selected] ), - &( item_count[category_selected] ), offset, item_selected ); - draw_caravan_borders( w, current_window ); - } } // "switch" on (action) } // while (!done) @@ -1255,7 +1198,7 @@ void draw_caravan_borders( const catacurses::window &w, int current_window ) // Quick reminded about help. // NOLINTNEXTLINE(cata-text-style): literal question mark mvwprintz( w, point( 2, FULL_SCREEN_HEIGHT - 1 ), c_red, _( "Press ? for help." ) ); - wrefresh( w ); + wnoutrefresh( w ); } void draw_caravan_categories( const catacurses::window &w, int category_selected, @@ -1275,7 +1218,7 @@ void draw_caravan_categories( const catacurses::window &w, int category_selected mvwprintz( w, point( 1, i + 3 ), ( i == category_selected ? h_white : c_white ), caravan_category_name( static_cast( i ) ) ); } - wrefresh( w ); + wnoutrefresh( w ); } void draw_caravan_items( const catacurses::window &w, std::vector *items, @@ -1309,7 +1252,7 @@ void draw_caravan_items( const catacurses::window &w, std::vector *ite wprintz( w, ( price > g->u.cash ? c_red : c_green ), " (%s)", format_money( price ) ); } } - wrefresh( w ); + wnoutrefresh( w ); } int caravan_price( player &u, int price ) diff --git a/src/gamemode_defense.h b/src/gamemode_defense.h index 20232fb614743..c390be1136249 100644 --- a/src/gamemode_defense.h +++ b/src/gamemode_defense.h @@ -14,7 +14,6 @@ #include "type_id.h" enum action_id : int; -using itype_id = std::string; enum defense_style { DEFENSE_CUSTOM = 0, diff --git a/src/gamemode_tutorial.cpp b/src/gamemode_tutorial.cpp index c1d231dc93ceb..bb88f2961064b 100644 --- a/src/gamemode_tutorial.cpp +++ b/src/gamemode_tutorial.cpp @@ -34,6 +34,12 @@ #include "units.h" #include "weather.h" +static const itype_id itype_cig( "cig" ); +static const itype_id itype_codeine( "codeine" ); +static const itype_id itype_flashlight( "flashlight" ); +static const itype_id itype_grenade_act( "grenade_act" ); +static const itype_id itype_water( "water" ); + static const skill_id skill_gun( "gun" ); static const skill_id skill_melee( "melee" ); @@ -161,7 +167,7 @@ void tutorial_game::per_turn() add_message( tut_lesson::LESSON_LOOK ); if( g->light_level( g->u.posz() ) == 1 ) { - if( g->u.has_amount( "flashlight", 1 ) ) { + if( g->u.has_amount( itype_flashlight, 1 ) ) { add_message( tut_lesson::LESSON_DARK ); } else { add_message( tut_lesson::LESSON_DARK_NO_FLASH ); @@ -247,7 +253,7 @@ void tutorial_game::post_action( action_id act ) break; case ACTION_USE: - if( g->u.has_amount( "grenade_act", 1 ) ) { + if( g->u.has_amount( itype_grenade_act, 1 ) ) { add_message( tut_lesson::LESSON_ACT_GRENADE ); } for( const tripoint &dest : g->m.points_in_radius( g->u.pos(), 1 ) ) { @@ -258,11 +264,11 @@ void tutorial_game::post_action( action_id act ) break; case ACTION_EAT: - if( g->u.last_item == "codeine" ) { + if( g->u.last_item == itype_codeine ) { add_message( tut_lesson::LESSON_TOOK_PAINKILLER ); - } else if( g->u.last_item == "cig" ) { + } else if( g->u.last_item == itype_cig ) { add_message( tut_lesson::LESSON_TOOK_CIG ); - } else if( g->u.last_item == "water" ) { + } else if( g->u.last_item == itype_water ) { add_message( tut_lesson::LESSON_DRANK_WATER ); } break; @@ -321,7 +327,7 @@ void tutorial_game::add_message( tut_lesson lesson ) return; } tutorials_seen[lesson] = true; + g->invalidate_main_ui_adaptor(); popup( SNIPPET.get_snippet_by_id( snippet_id( io::enum_to_string( lesson ) ) ).value_or( translation() ).translated(), PF_ON_TOP ); - g->refresh_all(); } diff --git a/src/gates.cpp b/src/gates.cpp index 2c5f1fea2d708..7d4a67fb4e3ae 100644 --- a/src/gates.cpp +++ b/src/gates.cpp @@ -33,8 +33,6 @@ #include "vehicle.h" #include "vpart_position.h" -static const activity_id ACT_OPEN_GATE( "ACT_OPEN_GATE" ); - // Gates namespace namespace diff --git a/src/grab.cpp b/src/grab.cpp index 0a8b784d4dbcf..9d22e96ee2fba 100644 --- a/src/grab.cpp +++ b/src/grab.cpp @@ -22,7 +22,7 @@ bool game::grabbed_veh_move( const tripoint &dp ) const optional_vpart_position grabbed_vehicle_vp = m.veh_at( u.pos() + u.grab_point ); if( !grabbed_vehicle_vp ) { add_msg( m_info, _( "No vehicle at grabbed point." ) ); - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); return false; } vehicle *grabbed_vehicle = &grabbed_vehicle_vp->vehicle(); @@ -36,7 +36,7 @@ bool game::grabbed_veh_move( const tripoint &dp ) if( mon != nullptr && mon->has_effect( effect_harnessed ) ) { add_msg( m_info, _( "You cannot move this vehicle whilst your %s is harnessed!" ), mon->get_name() ); - u.grab( OBJECT_NONE ); + u.grab( object_type::NONE ); return false; } } diff --git a/src/handle_action.cpp b/src/handle_action.cpp index e90c8bb94d384..3e4840d39e556 100644 --- a/src/handle_action.cpp +++ b/src/handle_action.cpp @@ -50,6 +50,7 @@ #include "mapsharing.h" #include "messages.h" #include "monster.h" +#include "move_mode.h" #include "mtype.h" #include "mutation.h" #include "options.h" @@ -68,6 +69,7 @@ #include "string_id.h" #include "translations.h" #include "ui.h" +#include "ui_manager.h" #include "units.h" #include "veh_type.h" #include "vehicle.h" @@ -96,6 +98,10 @@ static const efftype_id effect_alarm_clock( "alarm_clock" ); static const efftype_id effect_laserlocked( "laserlocked" ); static const efftype_id effect_relax_gas( "relax_gas" ); +static const itype_id itype_radio_car_on( "radio_car_on" ); +static const itype_id itype_radiocontrol( "radiocontrol" ); +static const itype_id itype_shoulder_strap( "shoulder_strap" ); + static const skill_id skill_melee( "melee" ); static const quality_id qual_CUT( "CUT" ); @@ -112,8 +118,6 @@ static const std::string flag_LITCIG( "LITCIG" ); static const std::string flag_LOCKED( "LOCKED" ); static const std::string flag_MAGIC_FOCUS( "MAGIC_FOCUS" ); static const std::string flag_NO_QUICKDRAW( "NO_QUICKDRAW" ); -static const std::string flag_REACH_ATTACK( "REACH_ATTACK" ); -static const std::string flag_REACH3( "REACH3" ); static const std::string flag_RELOAD_AND_SHOOT( "RELOAD_AND_SHOOT" ); static const std::string flag_RELOAD_ONE( "RELOAD_ONE" ); @@ -244,7 +248,17 @@ input_context game::get_player_input( std::string &action ) wPrint.vdrops.clear(); ctxt.set_timeout( 125 ); - bool initial_draw = true; + + shared_ptr_fast animation_cb = + make_shared_fast( [&]() { + draw_weather( wPrint ); + + if( uquit != QUIT_WATCH ) { + draw_sct(); + } + } ); + add_draw_callback( animation_cb ); + do { if( bWeatherEffect && get_option( "ANIMATION_RAIN" ) ) { /* @@ -254,24 +268,8 @@ input_context game::get_player_input( std::string &action ) WEATHER_DRIZZLE | WEATHER_LIGHT_DRIZZLE | WEATHER_RAINY | WEATHER_THUNDER | WEATHER_LIGHTNING = "weather_rain_drop" WEATHER_FLURRIES | WEATHER_SNOW | WEATHER_SNOWSTORM = "weather_snowflake" */ + invalidate_main_ui_adaptor(); -#if defined(TILES) - if( !use_tiles ) { -#endif //TILES - //If not using tiles, erase previous drops from w_terrain - for( auto &elem : wPrint.vdrops ) { - const tripoint location( elem.first + offset_x, elem.second + offset_y, get_levz() ); - const lit_level lighting = visibility_cache[location.x][location.y]; - wmove( w_terrain, location.xy() + point( -offset_x, -offset_y ) ); - if( !m.apply_vision_effects( w_terrain, m.get_visibility( lighting, cache ) ) ) { - m.drawsq( w_terrain, u, location, false, true, - u.pos() + u.view_offset, - lighting == LL_LOW, lighting == LL_BRIGHT ); - } - } -#if defined(TILES) - } -#endif //TILES wPrint.vdrops.clear(); for( int i = 0; i < dropCount; i++ ) { @@ -293,28 +291,7 @@ input_context game::get_player_input( std::string &action ) } // don't bother calculating SCT if we won't show it if( uquit != QUIT_WATCH && get_option( "ANIMATION_SCT" ) ) { -#if defined(TILES) - if( !use_tiles ) { -#endif - for( auto &elem : SCT.vSCT ) { - //Erase previous text from w_terrain - if( elem.getStep() > 0 ) { - const int width = utf8_width( elem.getText() ); - for( int i = 0; i < width; ++i ) { - const tripoint location( elem.getPosX() + i, elem.getPosY(), get_levz() ); - const lit_level lighting = visibility_cache[location.x][location.y]; - wmove( w_terrain, location.xy() + point( -offset_x, -offset_y ) ); - if( !m.apply_vision_effects( w_terrain, m.get_visibility( lighting, cache ) ) ) { - m.drawsq( w_terrain, u, location, false, true, - u.pos() + u.view_offset, - lighting == LL_LOW, lighting == LL_BRIGHT ); - } - } - } - } -#if defined(TILES) - } -#endif + invalidate_main_ui_adaptor(); SCT.advanceAllSteps(); @@ -345,27 +322,15 @@ input_context game::get_player_input( std::string &action ) } } - if( initial_draw ) { - werase( w_terrain ); - - draw_ter(); - initial_draw = false; - } - draw_weather( wPrint ); - - if( uquit != QUIT_WATCH ) { - draw_sct(); - } - - wrefresh( w_terrain ); - g->draw_panels(); - + std::unique_ptr deathcam_msg_popup; if( uquit == QUIT_WATCH ) { - query_popup() - .wait_message( c_red, _( "Press %s to accept your fate…" ), ctxt.get_desc( "QUIT" ) ) - .on_top( true ) - .show(); + deathcam_msg_popup = std::make_unique(); + deathcam_msg_popup + ->wait_message( c_red, _( "Press %s to accept your fate…" ), ctxt.get_desc( "QUIT" ) ) + .on_top( true ); } + + ui_manager::redraw_invalidated(); } while( handle_mouseview( ctxt, action ) && uquit != QUIT_WATCH && ( action != "TIMEOUT" || !current_turn.has_timeout_elapsed() ) ); ctxt.reset_timeout(); @@ -401,7 +366,7 @@ inline static void rcdrive( const point &d ) auto rc_pairs = m.get_rc_items( tripoint( cx, cy, cz ) ); auto rc_pair = rc_pairs.begin(); for( ; rc_pair != rc_pairs.end(); ++rc_pair ) { - if( rc_pair->second->typeId() == "radio_car_on" && rc_pair->second->active ) { + if( rc_pair->second->typeId() == itype_radio_car_on && rc_pair->second->active ) { break; } } @@ -474,13 +439,19 @@ static void pldrive( const tripoint &p ) return; } } - if( p.z != 0 && !u.has_trait( trait_PROF_HELI_PILOT ) ) { - u.add_msg_if_player( m_info, _( "You have no idea how to make the vehicle fly." ) ); - return; - } - if( p.z != 0 && !g->m.has_zlevels() ) { - u.add_msg_if_player( m_info, _( "This vehicle doesn't look very airworthy." ) ); - return; + if( p.z != 0 ) { + if( !u.has_trait( trait_PROF_HELI_PILOT ) ) { + u.add_msg_if_player( m_info, _( "You have no idea how to make the vehicle fly." ) ); + return; + } + if( !veh->is_flyable() ) { + u.add_msg_if_player( m_info, _( "This vehicle doesn't look very airworthy." ) ); + return; + } + if( !g->m.has_zlevels() ) { + u.add_msg_if_player( m_info, _( "This vehicle cannot be flown without z levels." ) ); + return; + } } if( p.z == -1 ) { if( veh->check_heli_descend( u ) ) { @@ -622,14 +593,14 @@ static void grab() avatar &you = g->u; map &m = g->m; - if( you.get_grab_type() != OBJECT_NONE ) { + if( you.get_grab_type() != object_type::NONE ) { if( const optional_vpart_position vp = m.veh_at( you.pos() + you.grab_point ) ) { add_msg( _( "You release the %s." ), vp->vehicle().name ); } else if( m.has_furn( you.pos() + you.grab_point ) ) { add_msg( _( "You release the %s." ), m.furnname( you.pos() + you.grab_point ) ); } - you.grab( OBJECT_NONE ); + you.grab( object_type::NONE ); return; } @@ -642,21 +613,21 @@ static void grab() if( grabp == you.pos() ) { add_msg( _( "You get a hold of yourself." ) ); - you.grab( OBJECT_NONE ); + you.grab( object_type::NONE ); return; } if( const optional_vpart_position vp = m.veh_at( grabp ) ) { if( !vp->vehicle().handle_potential_theft( dynamic_cast( g->u ) ) ) { return; } - you.grab( OBJECT_VEHICLE, grabp - you.pos() ); + you.grab( object_type::VEHICLE, grabp - you.pos() ); add_msg( _( "You grab the %s." ), vp->vehicle().name ); } else if( m.has_furn( grabp ) ) { // If not, grab furniture if present if( !m.furn( grabp ).obj().is_movable() ) { add_msg( _( "You can not grab the %s" ), m.furnname( grabp ) ); return; } - you.grab( OBJECT_FURNITURE, grabp - you.pos() ); + you.grab( object_type::FURNITURE, grabp - you.pos() ); if( !m.can_move_furniture( grabp, &you ) ) { add_msg( _( "You grab the %s. It feels really heavy." ), m.furnname( grabp ) ); } else { @@ -779,15 +750,17 @@ static void smash() return; } } + + const int bash_furn = m.furn( smashp )->bash.str_min; + const int bash_ter = m.ter( smashp )->bash.str_min; + didit = m.bash( smashp, smashskill, false, false, smash_floor ).did_bash; if( didit ) { if( !mech_smash ) { u.increase_activity_level( MODERATE_EXERCISE ); u.handle_melee_wear( u.weapon ); - const int weight_cost = u.weapon.weight() / ( 16_gram ); - const int encumbrance_cost = u.encumb( bp_arm_l ) + u.encumb( bp_arm_r ); - const int mod_sta = 2 * ( weight_cost + encumbrance_cost + 50 ) * -1; + const int mod_sta = 2 * u.get_standard_stamina_cost(); u.mod_stamina( mod_sta ); if( u.get_skill_level( skill_melee ) == 0 ) { @@ -808,6 +781,31 @@ static void smash() u.remove_weapon(); u.check_dead_state(); } + + // It hurts if you smash things with your hands. + const bool hard_target = ( ( bash_furn > 2 ) || ( bash_furn == -1 && bash_ter > 2 ) ); + + int glove_coverage = 0; + for( const item &i : u.worn ) { + if( ( i.covers( bodypart_id( "hand_l" ) ) || i.covers( bodypart_id( "hand_r" ) ) ) ) { + int temp_coverage = i.get_coverage(); + if( glove_coverage < temp_coverage ) { + glove_coverage = temp_coverage; + } + } + } + + if( !u.has_weapon() && hard_target ) { + int dam = roll_remainder( 5.0 * ( 1 - glove_coverage / 100.0 ) ); + if( u.hp_cur[hp_arm_r] > u.hp_cur[hp_arm_l] ) { + u.deal_damage( nullptr, bodypart_id( "hand_r" ), damage_instance( DT_BASH, dam ) ); + } else { + u.deal_damage( nullptr, bodypart_id( "hand_l" ), damage_instance( DT_BASH, dam ) ); + } + if( dam > 0 ) { + add_msg( m_bad, _( "You hurt your hands trying to smash the %s." ), m.furnname( smashp ) ); + } + } } u.moves -= move_cost; @@ -1283,25 +1281,21 @@ static void read() } // Perform a reach attach using wielded weapon -static void reach_attack( player &u ) +static void reach_attack( avatar &you ) { g->temp_exit_fullscreen(); - g->m.draw( g->w_terrain, u.pos() ); - target_handler::trajectory traj = target_handler::mode_reach( u, u.weapon ); + target_handler::trajectory traj = target_handler::mode_reach( you, you.weapon ); if( !traj.empty() ) { - u.reach_attack( traj.back() ); + you.reach_attack( traj.back() ); } - g->draw_ter(); - wrefresh( g->w_terrain ); - g->draw_panels(); g->reenter_fullscreen(); } static void fire() { - player &u = g->u; + avatar &u = g->u; // Use vehicle turret or draw a pistol from a holster if unarmed if( !u.is_armed() ) { @@ -1310,7 +1304,7 @@ static void fire() turret_data turret; if( vp && ( turret = vp->vehicle().turret_query( u.pos() ) ) ) { - avatar_action::fire_turret_manual( g->u, g->m, turret ); + avatar_action::fire_turret_manual( u, g->m, turret ); return; } @@ -1339,7 +1333,7 @@ static void fire() actions.emplace_back( [&] { u.invoke_item( &w, "holster" ); } ); - } else if( w.is_gun() && w.gunmod_find( "shoulder_strap" ) ) { + } else if( w.is_gun() && w.gunmod_find( itype_shoulder_strap ) ) { // wield item currently worn using shoulder strap options.push_back( w.display_name() ); actions.emplace_back( [&] { u.wield( w ); } ); @@ -1354,7 +1348,7 @@ static void fire() } if( u.weapon.is_gun() && !u.weapon.gun_current_mode().melee() ) { - avatar_action::fire_wielded_weapon( g->u, g->m ); + avatar_action::fire_wielded_weapon( u ); } else if( u.weapon.current_reach_range( u ) > 1 ) { if( u.has_effect( effect_relax_gas ) ) { if( one_in( 8 ) ) { @@ -1373,22 +1367,27 @@ static void fire() static void open_movement_mode_menu() { avatar &u = g->u; + const std::vector &modes = move_modes_by_speed(); + const int cycle = 1027; uilist as_m; as_m.text = _( "Change to which movement mode?" ); - as_m.entries.emplace_back( CMM_RUN, true, 'r', _( "Run" ) ); - as_m.entries.emplace_back( CMM_WALK, true, 'w', _( "Walk" ) ); - as_m.entries.emplace_back( CMM_CROUCH, true, 'c', _( "Crouch" ) ); - as_m.entries.emplace_back( CMM_COUNT, true, '"', _( "Cycle move mode (run/walk/crouch)" ) ); - as_m.selected = 1; + for( size_t i = 0; i < modes.size(); ++i ) { + const move_mode_id &curr = modes[i]; + as_m.entries.emplace_back( i, u.can_switch_to( curr ), curr->letter(), curr->name() ); + } + as_m.entries.emplace_back( cycle, u.can_switch_to( u.current_movement_mode()->cycle() ), '"', + _( "Cycle move mode" ) ); + // This should select the middle move mode + as_m.selected = std::floor( modes.size() / 2 ); as_m.query(); if( as_m.ret != UILIST_CANCEL ) { - if( as_m.ret == CMM_COUNT ) { + if( as_m.ret == cycle ) { u.cycle_move_mode(); } else { - u.set_movement_mode( static_cast( as_m.ret ) ); + u.set_movement_mode( modes[as_m.ret] ); } } } @@ -1406,7 +1405,7 @@ static void cast_spell() } bool can_cast_spells = false; - for( spell_id sp : spells ) { + for( const spell_id &sp : spells ) { spell temp_spell = u.magic.get_spell( sp ); if( temp_spell.can_cast( u ) ) { can_cast_spells = true; @@ -1439,7 +1438,7 @@ static void cast_spell() return; } - if( sp.energy_source() == hp_energy && !u.has_quality( qual_CUT ) ) { + if( sp.energy_source() == magic_energy_type::hp && !u.has_quality( qual_CUT ) ) { add_msg( game_message_params{ m_bad, gmf_bypass_cooldown }, _( "You cannot cast Blood Magic without a cutting implement." ) ); return; @@ -1539,7 +1538,6 @@ bool game::handle_action() if( act == ACTION_KEYBINDINGS ) { // already handled by input context - refresh_all(); return false; } @@ -1757,7 +1755,8 @@ bool game::handle_action() case ACTION_MOVE_LEFT: case ACTION_MOVE_FORTH_LEFT: if( !u.get_value( "remote_controlling" ).empty() && - ( u.has_active_item( "radiocontrol" ) || u.has_active_bionic( bio_remote ) ) ) { + ( u.has_active_item( itype_radiocontrol ) || + u.has_active_bionic( bio_remote ) ) ) { rcdrive( get_delta_from_movement_action( act, iso_rotate::yes ) ); } else if( veh_ctrl ) { // vehicle control uses x for steering and y for ac/deceleration, @@ -2046,7 +2045,7 @@ bool game::handle_action() case ACTION_FIRE_BURST: { gun_mode_id original_mode = u.weapon.gun_get_mode_id(); if( u.weapon.gun_set_mode( gun_mode_id( "AUTO" ) ) ) { - avatar_action::fire_wielded_weapon( u, m ); + avatar_action::fire_wielded_weapon( u ); u.weapon.gun_set_mode( original_mode ); } break; @@ -2083,16 +2082,13 @@ bool game::handle_action() break; case ACTION_BIONICS: u.power_bionics(); - refresh_all(); break; case ACTION_MUTATIONS: u.power_mutations(); - refresh_all(); break; case ACTION_SORT_ARMOR: u.sort_armor(); - refresh_all(); break; case ACTION_WAIT: @@ -2136,7 +2132,6 @@ bool game::handle_action() add_msg( m_info, _( "You can't disassemble items while you're riding." ) ); } else { u.disassemble(); - refresh_all(); } break; @@ -2242,7 +2237,6 @@ bool game::handle_action() uquit = QUIT_SUICIDE; } } - refresh_all(); break; case ACTION_SAVE: @@ -2252,7 +2246,6 @@ bool game::handle_action() uquit = QUIT_SAVED; } } - refresh_all(); break; case ACTION_QUICKSAVE: @@ -2268,13 +2261,11 @@ bool game::handle_action() break; case ACTION_MAP: - werase( w_terrain ); ui::omap::display(); break; case ACTION_SKY: if( m.is_outside( u.pos() ) ) { - werase( w_terrain ); ui::omap::display_visible_weather(); } else { add_msg( m_info, _( "You can't see the sky from here." ) ); @@ -2295,47 +2286,38 @@ bool game::handle_action() case ACTION_MORALE: u.disp_morale(); - refresh_all(); break; case ACTION_MESSAGES: Messages::display_messages(); - refresh_all(); break; case ACTION_HELP: get_help().display_help(); - refresh_all(); break; case ACTION_OPTIONS: get_options().show( true ); - g->init_ui( true ); break; case ACTION_AUTOPICKUP: get_auto_pickup().show(); - refresh_all(); break; case ACTION_AUTONOTES: get_auto_notes_settings().show_gui(); - refresh_all(); break; case ACTION_SAFEMODE: get_safemode().show(); - refresh_all(); break; case ACTION_COLOR: all_colors.show_gui(); - refresh_all(); break; case ACTION_WORLD_MODS: world_generator->show_active_world_mods( world_generator->active_world->active_mod_order ); - refresh_all(); break; case ACTION_DEBUG: diff --git a/src/handle_liquid.cpp b/src/handle_liquid.cpp index f81833082970e..2282364a9ae65 100644 --- a/src/handle_liquid.cpp +++ b/src/handle_liquid.cpp @@ -44,7 +44,7 @@ static void serialize_liquid_source( player_activity &act, const vehicle &veh, const int part_num, const item &liquid ) { - act.values.push_back( LST_VEHICLE ); + act.values.push_back( static_cast( liquid_source_type::VEHICLE ) ); act.values.push_back( part_num ); act.coords.push_back( veh.global_pos3() ); act.str_values.push_back( serialize( liquid ) ); @@ -59,10 +59,10 @@ static void serialize_liquid_source( player_activity &act, const tripoint &pos, return &i == &liquid; } ); if( iter == stack.end() ) { - act.values.push_back( LST_INFINITE_MAP ); + act.values.push_back( static_cast( liquid_source_type::INFINITE_MAP ) ); act.values.push_back( 0 ); // dummy } else { - act.values.push_back( LST_MAP_ITEM ); + act.values.push_back( static_cast( liquid_source_type::MAP_ITEM ) ); act.values.push_back( std::distance( stack.begin(), iter ) ); } act.coords.push_back( pos ); @@ -71,14 +71,14 @@ static void serialize_liquid_source( player_activity &act, const tripoint &pos, static void serialize_liquid_target( player_activity &act, const vehicle &veh ) { - act.values.push_back( LTT_VEHICLE ); + act.values.push_back( static_cast( liquid_target_type::VEHICLE ) ); act.values.push_back( 0 ); // dummy act.coords.push_back( veh.global_pos3() ); } -static void serialize_liquid_target( player_activity &act, item_location container_item ) +static void serialize_liquid_target( player_activity &act, const item_location &container_item ) { - act.values.push_back( LTT_CONTAINER ); + act.values.push_back( static_cast( liquid_target_type::CONTAINER ) ); act.values.push_back( 0 ); // dummy act.targets.push_back( container_item ); act.coords.push_back( tripoint() ); // dummy @@ -86,7 +86,7 @@ static void serialize_liquid_target( player_activity &act, item_location contain static void serialize_liquid_target( player_activity &act, const tripoint &pos ) { - act.values.push_back( LTT_MAP ); + act.values.push_back( static_cast( liquid_target_type::MAP ) ); act.values.push_back( 0 ); // dummy act.coords.push_back( pos ); } @@ -112,7 +112,7 @@ bool consume_liquid( item &liquid, const int radius ) return original_charges != liquid.charges; } -bool handle_liquid_from_ground( map_stack::iterator on_ground, +bool handle_liquid_from_ground( const map_stack::iterator &on_ground, const tripoint &pos, const int radius ) { @@ -160,7 +160,7 @@ static bool get_liquid_target( item &liquid, item *const source, const int radiu const monster *const source_mon, liquid_dest_opt &target ) { - if( !liquid.made_of_from_type( LIQUID ) ) { + if( !liquid.made_of_from_type( phase_id::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. @@ -187,8 +187,7 @@ static bool get_liquid_target( item &liquid, item *const source, const int radiu menu.text = string_format( pgettext( "liquid", "What to do with the %s?" ), liquid_name ); } std::vector> actions; - - if( g->u.can_consume( liquid ) && !source_mon ) { + if( g->u.can_consume( liquid ) && !source_mon && ( source_veh || source_pos ) ) { if( g->u.can_consume_for_bionic( liquid ) ) { menu.addentry( -1, true, 'e', _( "Fuel bionic with it" ) ); } else { @@ -264,7 +263,6 @@ static bool get_liquid_target( item &liquid, item *const source, const int radiu 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; @@ -292,7 +290,6 @@ static bool get_liquid_target( item &liquid, item *const source, const int radiu } 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). @@ -308,7 +305,7 @@ static bool perform_liquid_transfer( item &liquid, const tripoint *const source_ const monster *const source_mon, liquid_dest_opt &target ) { bool transfer_ok = false; - if( !liquid.made_of_from_type( LIQUID ) ) { + if( !liquid.made_of_from_type( phase_id::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. @@ -333,7 +330,8 @@ static bool perform_liquid_transfer( item &liquid, const tripoint *const source_ switch( target.dest_opt ) { case LD_CONSUME: - g->u.consume_item( liquid ); + g->u.assign_activity( player_activity( consume_activity_actor( liquid, false ) ) ); + liquid.charges--; transfer_ok = true; break; case LD_ITEM: { @@ -400,13 +398,13 @@ bool handle_liquid( item &liquid, item *const source, const int radius, const vehicle *const source_veh, const int part_num, const monster *const source_mon ) { - if( liquid.made_of_from_type( SOLID ) ) { + if( liquid.made_of_from_type( phase_id::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 ) ) { + if( !liquid.made_of( phase_id::LIQUID ) ) { add_msg( _( "The %s froze solid before you could finish." ), liquid.tname() ); return false; } diff --git a/src/handle_liquid.h b/src/handle_liquid.h index 36230171de057..8db1606d94fd1 100644 --- a/src/handle_liquid.h +++ b/src/handle_liquid.h @@ -67,7 +67,7 @@ bool consume_liquid( item &liquid, int radius = 0 ); * The iterator is invalidated in that case. Otherwise the item remains but may have * fewer charges. */ -bool handle_liquid_from_ground( map_stack::iterator on_ground, const tripoint &pos, +bool handle_liquid_from_ground( const map_stack::iterator &on_ground, const tripoint &pos, int radius = 0 ); /** diff --git a/src/harvest.cpp b/src/harvest.cpp index 018a8dd82e48a..f6969e6f72223 100644 --- a/src/harvest.cpp +++ b/src/harvest.cpp @@ -99,7 +99,8 @@ void harvest_list::finalize() { std::transform( entries_.begin(), entries_.end(), std::inserter( names_, names_.begin() ), []( const harvest_entry & entry ) { - return item::type_is_defined( entry.drop ) ? item::nname( entry.drop ) : ""; + return item::type_is_defined( itype_id( entry.drop ) ) ? + item::nname( itype_id( entry.drop ) ) : ""; } ); } @@ -128,8 +129,9 @@ void harvest_list::check_consistency() auto error_func = [&]( const harvest_entry & entry ) { std::string errorlist; bool item_valid = true; - if( !( item::type_is_defined( entry.drop ) || ( entry.type == "bionic_group" && - item_group::group_is_defined( entry.drop ) ) ) ) { + if( !( item::type_is_defined( itype_id( entry.drop ) ) || + ( entry.type == "bionic_group" && + item_group::group_is_defined( entry.drop ) ) ) ) { item_valid = false; errorlist += entry.drop; } @@ -203,7 +205,7 @@ std::string harvest_list::describe( int at_skill ) const } std::string ss; - ss += "" + item::nname( en.drop, max_drops ) + ""; + ss += "" + item::nname( itype_id( en.drop ), max_drops ) + ""; // If the number is unspecified, just list the type if( max_drops >= 1000 && min_drops <= 0 ) { return ss; diff --git a/src/harvest.h b/src/harvest.h index ab6e442125acf..60980e6798f51 100644 --- a/src/harvest.h +++ b/src/harvest.h @@ -13,12 +13,12 @@ #include "translations.h" #include "type_id.h" -using itype_id = std::string; class JsonObject; // Could be reused for butchery struct harvest_entry { - itype_id drop = "null"; + // drop can be either an itype_id or a group id + std::string drop = "null"; std::pair base_num = { 1.0f, 1.0f }; // This is multiplied by survival and added to the above // TODO: Make it a map: skill->scaling diff --git a/src/help.cpp b/src/help.cpp index 060670af19410..302fa6b393d03 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -117,7 +117,7 @@ void help::draw_menu( const catacurses::window &win ) c_white, c_light_blue, cat_name ); } - wrefresh( win ); + wnoutrefresh( win ); } std::string help::get_note_colors() @@ -160,7 +160,7 @@ void help::display_help() ui.on_redraw( [&]( const ui_adaptor & ) { draw_border( w_help_border, BORDER_COLOR, _( " HELP " ), c_black_white ); - wrefresh( w_help_border ); + wnoutrefresh( w_help_border ); draw_menu( w_help ); } ); diff --git a/src/iexamine.cpp b/src/iexamine.cpp index 61ab6b01939f2..019d4f4830567 100644 --- a/src/iexamine.cpp +++ b/src/iexamine.cpp @@ -98,6 +98,7 @@ static const activity_id ACT_BUILD( "ACT_BUILD" ); static const activity_id ACT_CLEAR_RUBBLE( "ACT_CLEAR_RUBBLE" ); static const activity_id ACT_CRACKING( "ACT_CRACKING" ); static const activity_id ACT_FORAGE( "ACT_FORAGE" ); +static const activity_id ACT_OPERATION( "ACT_OPERATION" ); static const activity_id ACT_PLANT_SEED( "ACT_PLANT_SEED" ); static const efftype_id effect_earphones( "earphones" ); @@ -106,13 +107,45 @@ static const efftype_id effect_pkill2( "pkill2" ); static const efftype_id effect_sleep( "sleep" ); static const efftype_id effect_teleglow( "teleglow" ); +static const itype_id itype_2x4( "2x4" ); +static const itype_id itype_bot_broken_cyborg( "bot_broken_cyborg" ); +static const itype_id itype_bot_prototype_cyborg( "bot_prototype_cyborg" ); +static const itype_id itype_cash_card( "cash_card" ); +static const itype_id itype_charcoal( "charcoal" ); +static const itype_id itype_chem_carbide( "chem_carbide" ); +static const itype_id itype_corpse( "corpse" ); +static const itype_id itype_electrohack( "electrohack" ); +static const itype_id itype_hickory_root( "hickory_root" ); +static const itype_id itype_fake_milling_item( "fake_milling_item" ); +static const itype_id itype_fake_smoke_plume( "fake_smoke_plume" ); +static const itype_id itype_fertilizer( "fertilizer" ); +static const itype_id itype_fire( "fire" ); +static const itype_id itype_flour( "flour" ); +static const itype_id itype_fungal_seeds( "fungal_seeds" ); +static const itype_id itype_grapnel( "grapnel" ); +static const itype_id itype_id_industrial( "id_industrial" ); +static const itype_id itype_id_military( "id_military" ); +static const itype_id itype_id_science( "id_science" ); +static const itype_id itype_maple_sap( "maple_sap" ); +static const itype_id itype_maple_syrup( "maple_syrup" ); +static const itype_id itype_marloss_berry( "marloss_berry" ); +static const itype_id itype_marloss_seed( "marloss_seed" ); +static const itype_id itype_mycus_fruit( "mycus_fruit" ); +static const itype_id itype_nail( "nail" ); +static const itype_id itype_petrified_eye( "petrified_eye" ); +static const itype_id itype_sheet( "sheet" ); +static const itype_id itype_stick( "stick" ); +static const itype_id itype_string_36( "string_36" ); +static const itype_id itype_tree_spile( "tree_spile" ); +static const itype_id itype_unfinished_cac2( "unfinished_cac2" ); +static const itype_id itype_unfinished_charcoal( "unfinished_charcoal" ); +static const itype_id itype_UPS( "UPS" ); +static const itype_id itype_water( "water" ); + static const trap_str_id tr_unfinished_construction( "tr_unfinished_construction" ); -static const skill_id skill_computer( "computer" ); static const skill_id skill_cooking( "cooking" ); -static const skill_id skill_electronics( "electronics" ); static const skill_id skill_fabrication( "fabrication" ); -static const skill_id skill_firstaid( "firstaid" ); static const skill_id skill_mechanics( "mechanics" ); static const skill_id skill_survival( "survival" ); @@ -137,9 +170,12 @@ static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" ); static const quality_id qual_ANESTHESIA( "ANESTHESIA" ); static const quality_id qual_DIG( "DIG" ); +static const quality_id qual_LOCKPICK( "LOCKPICK" ); +static const mtype_id mon_broken_cyborg( "mon_broken_cyborg" ); static const mtype_id mon_dark_wyrm( "mon_dark_wyrm" ); static const mtype_id mon_fungal_blossom( "mon_fungal_blossom" ); +static const mtype_id mon_prototype_cyborg( "mon_prototype_cyborg" ); static const mtype_id mon_spider_cellar_giant_s( "mon_spider_cellar_giant_s" ); static const mtype_id mon_spider_web_s( "mon_spider_web_s" ); static const mtype_id mon_spider_widow_giant_s( "mon_spider_widow_giant_s" ); @@ -178,10 +214,6 @@ static const std::string flag_VARSIZE( "VARSIZE" ); static const std::string flag_WALL( "WALL" ); static const std::string flag_WRITE_MESSAGE( "WRITE_MESSAGE" ); -static void pick_plant( player &p, const tripoint &examp, const std::string &itemType, - ter_id new_ter, - bool seeds = false ); - /** * Nothing player can interact with here. */ @@ -296,7 +328,7 @@ void iexamine::gaspump( player &p, const tripoint &examp ) auto items = g->m.i_at( examp ); for( auto item_it = items.begin(); item_it != items.end(); ++item_it ) { - if( item_it->made_of( LIQUID ) ) { + if( item_it->made_of( phase_id::LIQUID ) ) { ///\EFFECT_DEX decreases chance of spilling gas from a pump if( one_in( 10 + p.get_dex() ) ) { add_msg( m_bad, _( "You accidentally spill the %s." ), item_it->type_name() ); @@ -380,7 +412,6 @@ class atm_menu if( !u.activity.is_null() ) { break; } - g->draw(); } } private: @@ -402,8 +433,8 @@ class atm_menu //! Reset and repopulate the menu; with a fair bit of work this could be more efficient. void reset( const bool clear = true ) { - const int card_count = u.amount_of( "cash_card" ); - const int charge_count = card_count ? u.charges_of( "cash_card" ) : 0; + const int card_count = u.amount_of( itype_cash_card ); + const int charge_count = card_count ? u.charges_of( itype_cash_card ) : 0; if( clear ) { amenu.reset(); @@ -480,7 +511,7 @@ class atm_menu } item card( "cash_card", calendar::turn ); - card.charges = 0; + card.ammo_set( card.ammo_default(), 0 ); u.i_add( card ); u.cash -= 1000; u.moves -= to_turns( 5_seconds ); @@ -491,7 +522,7 @@ class atm_menu //!Deposit money from cash card into bank account. bool do_deposit_money() { - int money = u.charges_of( "cash_card" ); + int money = u.charges_of( itype_cash_card ); if( !money ) { popup( _( "You can only deposit money from charged cash cards!" ) ); @@ -507,7 +538,7 @@ class atm_menu } add_msg( m_info, "amount: %d", amount ); - u.use_charges( "cash_card", amount ); + u.use_charges( itype_cash_card, amount ); u.cash += amount; u.moves -= to_turns( 10_seconds ); finish_interaction(); @@ -517,17 +548,11 @@ class atm_menu //!Move money from bank account onto cash card. bool do_withdraw_money() { - //We may want to use visit_items here but that's fairly heavy. - //For now, just check weapon if we didn't find it in the inventory. - int pos = u.inv.position_by_type( "cash_card" ); - item *dst; - if( pos == INT_MIN ) { - dst = &u.weapon; - } else { - dst = &u.i_at( pos ); - } - if( dst->is_null() ) { + std::vector cash_cards_on_hand = u.items_with( []( const item & i ) { + return i.typeId() == itype_cash_card; + } ); + if( cash_cards_on_hand.empty() ) { //Just in case we run into an edge case popup( _( "You do not have a cash card to withdraw money!" ) ); return false; @@ -541,8 +566,35 @@ class atm_menu return false; } - dst->charges += amount; - u.cash -= amount; + int inserted = 0; + int remaining = amount; + ammotype money( "money" ); + + std::sort( cash_cards_on_hand.begin(), cash_cards_on_hand.end(), []( item * one, item * two ) { + int balance_one = one->ammo_remaining(); + int balance_two = two->ammo_remaining(); + return balance_one > balance_two; + } ); + + + for( item * const &cc : cash_cards_on_hand ) { + if( inserted == amount ) { + break; + } + int max_cap = cc->ammo_capacity( money ) - cc->ammo_remaining(); + int to_insert = std::min( max_cap, remaining ); + // insert whatever there's room for + the old balance. + cc->ammo_set( cc->ammo_default(), to_insert + cc->ammo_remaining() ); + inserted += to_insert; + remaining -= to_insert; + } + + if( remaining ) { + add_msg( m_info, _( "All cash cards at maximum capacity" ) ); + } + + //dst->charges += amount; + u.cash -= amount - remaining; u.moves -= to_turns( 10_seconds ); finish_interaction(); @@ -552,23 +604,25 @@ class atm_menu //!Move the money from all the cash cards in inventory to a single card. bool do_transfer_all_money() { item *dst; + std::vector cash_cards_on_hand = u.items_with( []( const item & i ) { + return i.typeId() == itype_cash_card; + } ); if( u.activity.id() == ACT_ATM ) { u.activity.set_to_null(); // stop for now, if required, it will be created again. dst = u.activity.targets.front().get_item(); - if( dst->is_null() || dst->typeId() != "cash_card" ) { + if( dst->is_null() || dst->typeId() != itype_cash_card ) { return false; } } else { - const int pos = u.inv.position_by_type( "cash_card" ); - if( pos == INT_MIN ) { + if( cash_cards_on_hand.empty() ) { return false; } - dst = &u.i_at( pos ); + dst = cash_cards_on_hand.front(); } - for( auto &i : u.inv_dump() ) { - if( i == dst || i->charges <= 0 || i->typeId() != "cash_card" ) { + for( item *i : cash_cards_on_hand ) { + if( i == dst || i->ammo_remaining() <= 0 || i->typeId() != itype_cash_card ) { continue; } if( u.moves < 0 ) { @@ -579,9 +633,9 @@ class atm_menu u.activity.targets.push_back( item_location( u, dst ) ); break; } - - dst->charges += i->charges; - i->charges = 0; + // should we check for max capacity here? + dst->ammo_set( dst->ammo_default(), i->ammo_remaining() + dst->ammo_remaining() ); + i->ammo_set( i->ammo_default(), 0 ); u.moves -= 10; } @@ -607,7 +661,7 @@ void iexamine::atm( player &p, const tripoint & ) void iexamine::vending( player &p, const tripoint &examp ) { constexpr int moves_cost = to_turns( 5_seconds ); - int money = p.charges_of( "cash_card" ); + int money = p.charges_of( itype_cash_card ); auto vend_items = g->m.i_at( examp ); if( vend_items.empty() ) { @@ -711,7 +765,7 @@ void iexamine::vending( player &p, const tripoint &examp ) } draw_scrollbar( w, cur_pos, list_lines, num_items, point( 0, first_item_offset ) ); - wrefresh( w ); + wnoutrefresh( w ); // Item info auto &cur_items = item_list[static_cast( cur_pos )]->second; @@ -729,7 +783,7 @@ void iexamine::vending( player &p, const tripoint &examp ) const std::string name = utf8_truncate( cur_item->display_name(), static_cast( w_info_w - 4 ) ); mvwprintw( w_item_info, point_east, "<%s>", name ); - wrefresh( w_item_info ); + wnoutrefresh( w_item_info ); } ); for( ;; ) { @@ -760,7 +814,7 @@ void iexamine::vending( player &p, const tripoint &examp ) } money -= iprice; - p.use_charges( "cash_card", iprice ); + p.use_charges( itype_cash_card, iprice ); p.i_add_or_drop( *cur_item ); vend_items.erase( cur_item ); @@ -790,14 +844,14 @@ void iexamine::toilet( player &p, const tripoint &examp ) auto items = g->m.i_at( examp ); auto water = items.begin(); for( ; water != items.end(); ++water ) { - if( water->typeId() == "water" ) { + if( water->typeId() == itype_water ) { break; } } if( water == items.end() ) { add_msg( m_info, _( "This toilet is empty." ) ); - } else if( !water->made_of( LIQUID ) ) { + } else if( !water->made_of( phase_id::LIQUID ) ) { add_msg( m_info, _( "The toilet water is frozen solid!" ) ); } else { // Use a different poison value each time water is drawn from the toilet. @@ -883,8 +937,9 @@ void iexamine::controls_gate( player &p, const tripoint &examp ) void iexamine::cardreader( player &p, const tripoint &examp ) { bool open = false; - itype_id card_type = ( g->m.ter( examp ) == t_card_science ? "id_science" : - g->m.ter( examp ) == t_card_military ? "id_military" : "id_industrial" ); + itype_id card_type = ( g->m.ter( examp ) == t_card_science ? itype_id_science : + g->m.ter( examp ) == t_card_military ? itype_id_military : + itype_id_industrial ); if( p.has_amount( card_type, 1 ) && query_yn( _( "Swipe your ID card?" ) ) ) { p.mod_moves( -to_turns( 1_seconds ) ); for( const tripoint &tmp : g->m.points_in_radius( examp, 3 ) ) { @@ -916,7 +971,7 @@ void iexamine::cardreader( player &p, const tripoint &examp ) void iexamine::cardreader_robofac( player &p, const tripoint &examp ) { - itype_id card_type = "id_science"; + itype_id card_type = itype_id_science; if( p.has_amount( card_type, 1 ) && query_yn( _( "Swipe your ID card?" ) ) ) { p.mod_moves( -100 ); p.use_amount( card_type, 1 ); @@ -1009,7 +1064,6 @@ void iexamine::rubble( player &p, const tripoint &examp ) } p.assign_activity( ACT_CLEAR_RUBBLE, moves, -1, 0 ); p.activity.placement = examp; - return; } /** @@ -1130,7 +1184,7 @@ void iexamine::portable_structure( player &p, const tripoint &examp ) { const furn_str_id fid = g->m.furn( examp ).id(); const std::pair tent_item_type = find_tent_itype( fid ); - if( tent_item_type.first == "null" ) { + if( tent_item_type.first.is_null() ) { debugmsg( "unknown furniture %s: don't know how to transform it into an item", fid.str() ); return; } @@ -1175,12 +1229,12 @@ void iexamine::portable_structure( player &p, const tripoint &examp ) void iexamine::pit( player &p, const tripoint &examp ) { const inventory &crafting_inv = p.crafting_inventory(); - if( !crafting_inv.has_amount( "2x4", 1 ) ) { + if( !crafting_inv.has_amount( itype_2x4, 1 ) ) { none( p, examp ); return; } std::vector planks; - planks.push_back( item_comp( "2x4", 1 ) ); + planks.push_back( item_comp( itype_2x4, 1 ) ); if( query_yn( _( "Place a plank over the pit?" ) ) ) { p.consume_items( planks, 1, is_crafting_component ); @@ -1347,9 +1401,8 @@ void iexamine::locked_object( player &p, const tripoint &examp ) // 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 ); - dummy.crowbar( &p, &temporary_item, false, examp ); + iuse::crowbar( &p, &temporary_item, false, examp ); } /** @@ -1358,9 +1411,9 @@ void iexamine::locked_object( player &p, const tripoint &examp ) void iexamine::locked_object_pickable( player &p, const tripoint &examp ) { std::vector picklocks = p.items_with( [&p]( const item & it ) { - // Don't search for worn items such as hairpins - if( p.get_item_position( &it ) >= -1 ) { - return it.type->get_use( "picklock" ) != nullptr; + // Don't include worn items such as hairpins + if( !p.is_worn( it ) ) { + return it.type->get_use( "PICK_LOCK" ) != nullptr; } return false; } ); @@ -1373,21 +1426,16 @@ void iexamine::locked_object_pickable( player &p, const tripoint &examp ) // Sort by their picklock level. std::sort( picklocks.begin(), picklocks.end(), [&]( const item * a, const item * b ) { - const auto actor_a = dynamic_cast - ( a->type->get_use( "picklock" )->get_actor_ptr() ); - const auto actor_b = dynamic_cast - ( b->type->get_use( "picklock" )->get_actor_ptr() ); - return actor_a->pick_quality > actor_b->pick_quality; + return a->get_quality( qual_LOCKPICK ) > b->get_quality( qual_LOCKPICK ); } ); for( item *it : picklocks ) { - const auto actor = dynamic_cast - ( it->type->get_use( "picklock" )->get_actor_ptr() ); + const use_function *iuse_fn = it->type->get_use( "PICK_LOCK" ); p.add_msg_if_player( _( "You attempt to pick lock of %1$s using your %2$s…" ), g->m.has_furn( examp ) ? g->m.furnname( examp ) : g->m.tername( examp ), it->tname() ); - const ret_val can_use = actor->can_use( p, *it, false, examp ); + const ret_val can_use = iuse_fn->can_call( p, *it, false, examp ); if( can_use.success() ) { - actor->use( p, *it, false, examp ); + iuse_fn->call( p, *it, false, examp ); return; } else { p.add_msg_if_player( m_bad, can_use.str() ); @@ -1459,14 +1507,14 @@ void iexamine::pedestal_wyrm( player &p, const tripoint &examp ) void iexamine::pedestal_temple( player &p, const tripoint &examp ) { map_stack items = g->m.i_at( examp ); - if( !items.empty() && items.only_item().typeId() == "petrified_eye" ) { + if( !items.empty() && items.only_item().typeId() == itype_petrified_eye ) { add_msg( _( "The pedestal sinks into the ground…" ) ); g->m.ter_set( examp, t_dirt ); g->m.i_clear( examp ); g->timed_events.add( TIMED_EVENT_TEMPLE_OPEN, calendar::turn + 10_seconds ); - } else if( p.has_amount( "petrified_eye", 1 ) && + } else if( p.has_amount( itype_petrified_eye, 1 ) && query_yn( _( "Place your petrified eye on the pedestal?" ) ) ) { - p.use_amount( "petrified_eye", 1 ); + p.use_amount( itype_petrified_eye, 1 ); add_msg( _( "The pedestal sinks into the ground…" ) ); g->m.ter_set( examp, t_dirt ); g->timed_events.add( TIMED_EVENT_TEMPLE_OPEN, calendar::turn + 10_seconds ); @@ -1609,10 +1657,9 @@ static bool can_drink_nectar( const player &p ) static bool drink_nectar( player &p ) { if( can_drink_nectar( p ) ) { - p.moves -= to_moves( 30_seconds ); add_msg( _( "You drink some nectar." ) ); item nectar( "nectar", calendar::turn, 1 ); - p.eat( nectar ); + p.assign_activity( player_activity( consume_activity_actor( nectar, false ) ) ); return true; } @@ -1653,10 +1700,9 @@ void iexamine::flower_poppy( player &p, const tripoint &examp ) g->m.furnname( examp ) ) ) { return; } - p.moves -= to_moves( 30_seconds ); // You take your time... add_msg( _( "You slowly suck up the nectar." ) ); item poppy( "poppy_nectar", calendar::turn, 1 ); - p.eat( poppy ); + p.assign_activity( player_activity( consume_activity_actor( poppy, false ) ) ); p.mod_fatigue( 20 ); p.add_effect( effect_pkill2, 7_minutes ); // Please drink poppy nectar responsibly. @@ -1882,7 +1928,7 @@ void iexamine::flower_marloss( player &p, const tripoint &examp ) return; } g->m.furn_set( examp, f_null ); - g->m.spawn_item( p.pos(), "marloss_seed", 1, 3, calendar::turn ); + g->m.spawn_item( p.pos(), itype_marloss_seed, 1, 3, calendar::turn ); handle_harvest( p, "withered", false ); } @@ -2125,11 +2171,11 @@ void iexamine::harvest_plant( player &p, const tripoint &examp, bool from_activi return; } - const std::string &seedType = seed->typeId(); - if( seedType == "fungal_seeds" ) { + const itype_id &seedType = seed->typeId(); + if( seedType == itype_fungal_seeds ) { fungus( p, examp ); g->m.i_clear( examp ); - } else if( seedType == "marloss_seed" ) { + } else if( seedType == itype_marloss_seed ) { fungus( p, examp ); g->m.i_clear( examp ); if( p.has_trait( trait_M_DEPENDENT ) && ( p.get_kcal_percent() < 0.8f || p.get_thirst() > 300 ) ) { @@ -2225,7 +2271,7 @@ void iexamine::fertilize_plant( player &p, const tripoint &tile, const itype_id // must be on the square of the plant, therefore this hack: const auto old_furn = g->m.furn( tile ); g->m.furn_set( tile, f_null ); - g->m.spawn_item( tile, "fertilizer", 1, 1, calendar::turn ); + g->m.spawn_item( tile, itype_fertilizer, 1, 1, calendar::turn ); g->m.furn_set( tile, old_furn ); p.mod_moves( -to_moves( 10_seconds ) ); @@ -2294,7 +2340,7 @@ void iexamine::aggie_plant( player &p, const tripoint &examp ) } itype_id fertilizer = choose_fertilizer( p, pname, true /*ask player for confirmation */ ); - if( !fertilizer.empty() ) { + if( !fertilizer.is_empty() ) { fertilize_plant( p, examp, fertilizer ); } } @@ -2319,7 +2365,7 @@ void iexamine::kiln_empty( player &p, const tripoint &examp ) bool fuel_present = false; auto items = g->m.i_at( examp ); for( const item &i : items ) { - if( i.typeId() == "charcoal" ) { + if( i.typeId() == itype_charcoal ) { add_msg( _( "This kiln already contains charcoal." ) ); add_msg( _( "Remove it before firing the kiln again." ) ); return; @@ -2348,14 +2394,14 @@ void iexamine::kiln_empty( player &p, const tripoint &examp ) total_volume += i.volume(); } - auto char_type = item::find_type( "unfinished_charcoal" ); + auto char_type = item::find_type( itype_unfinished_charcoal ); int char_charges = char_type->charges_per_volume( ( 100 - loss ) * total_volume / 100 ); if( char_charges < 1 ) { add_msg( _( "The batch in this kiln is too small to yield any charcoal." ) ); return; } - if( !p.has_charges( "fire", 1 ) ) { + if( !p.has_charges( itype_fire, 1 ) ) { add_msg( _( "This kiln is ready to be fired, but you have no fire source." ) ); return; } else { @@ -2366,7 +2412,7 @@ void iexamine::kiln_empty( player &p, const tripoint &examp ) } } - p.use_charges( "fire", 1 ); + p.use_charges( itype_fire, 1 ); g->m.i_clear( examp ); g->m.furn_set( examp, next_kiln_type ); item result( "unfinished_charcoal", calendar::turn ); @@ -2395,7 +2441,7 @@ void iexamine::kiln_full( player &, const tripoint &examp ) g->m.furn_set( examp, next_kiln_type ); return; } - auto char_type = item::find_type( "charcoal" ); + auto char_type = item::find_type( itype_charcoal ); add_msg( _( "There's a charcoal kiln there." ) ); const time_duration firing_time = 6_hours; // 5 days in real life const time_duration time_left = firing_time - items.only_item().age(); @@ -2417,7 +2463,7 @@ void iexamine::kiln_full( player &, const tripoint &examp ) units::volume total_volume = 0_ml; // Burn stuff that should get charred, leave out the rest for( auto item_it = items.begin(); item_it != items.end(); ) { - if( item_it->typeId() == "unfinished_charcoal" || item_it->typeId() == "charcoal" ) { + if( item_it->typeId() == itype_unfinished_charcoal || item_it->typeId() == itype_charcoal ) { total_volume += item_it->volume(); item_it = items.erase( item_it ); } else { @@ -2448,7 +2494,7 @@ void iexamine::arcfurnace_empty( player &p, const tripoint &examp ) bool fuel_present = false; auto items = g->m.i_at( examp ); for( const item &i : items ) { - if( i.typeId() == "chem_carbide" ) { + if( i.typeId() == itype_chem_carbide ) { add_msg( _( "This furnace already contains calcium carbide." ) ); add_msg( _( "Remove it before activating the arc furnace again." ) ); return; @@ -2477,14 +2523,14 @@ void iexamine::arcfurnace_empty( player &p, const tripoint &examp ) total_volume += i.volume(); } - auto char_type = item::find_type( "unfinished_cac2" ); + auto char_type = item::find_type( itype_unfinished_cac2 ); int char_charges = char_type->charges_per_volume( ( 100 - loss ) * total_volume / 100 ); if( char_charges < 1 ) { add_msg( _( "The batch in this furance is too small to yield usable calcium carbide." ) ); return; } //arc furnaces require a huge amount of current, so 1 full storage battery would work as a stand in - if( !p.has_charges( "UPS", 1250 ) ) { + if( !p.has_charges( itype_UPS, 1250 ) ) { add_msg( _( "This furnace is ready to be turned on, but you lack a UPS with sufficient power." ) ); return; } else { @@ -2495,7 +2541,7 @@ void iexamine::arcfurnace_empty( player &p, const tripoint &examp ) } } - p.use_charges( "UPS", 1250 ); + p.use_charges( itype_UPS, 1250 ); g->m.i_clear( examp ); g->m.furn_set( examp, next_arcfurnace_type ); item result( "unfinished_cac2", calendar::turn ); @@ -2522,7 +2568,7 @@ void iexamine::arcfurnace_full( player &, const tripoint &examp ) g->m.furn_set( examp, next_arcfurnace_type ); return; } - auto char_type = item::find_type( "chem_carbide" ); + auto char_type = item::find_type( itype_chem_carbide ); add_msg( _( "There's an arc furnace there." ) ); const time_duration firing_time = 2_hours; // Arc furnaces work really fast in reality const time_duration time_left = firing_time - items.only_item().age(); @@ -2544,7 +2590,7 @@ void iexamine::arcfurnace_full( player &, const tripoint &examp ) units::volume total_volume = 0_ml; // Burn stuff that should get charred, leave out the rest for( auto item_it = items.begin(); item_it != items.end(); ) { - if( item_it->typeId() == "unfinished_cac2" || item_it->typeId() == "chem_carbide" ) { + if( item_it->typeId() == itype_unfinished_cac2 || item_it->typeId() == itype_chem_carbide ) { total_volume += item_it->volume(); item_it = items.erase( item_it ); } else { @@ -2679,7 +2725,7 @@ void iexamine::autoclave_full( player &, const tripoint &examp ) void iexamine::fireplace( player &p, const tripoint &examp ) { const bool already_on_fire = g->m.has_nearby_fire( examp, 0 ); - const bool furn_is_deployed = !g->m.furn( examp ).obj().deployed_item.empty(); + const bool furn_is_deployed = !g->m.furn( examp ).obj().deployed_item.is_empty(); std::multimap firestarters; for( item *it : p.items_with( []( const item & it ) { @@ -2849,7 +2895,7 @@ void iexamine::fvat_empty( player &p, const tripoint &examp ) selectmenu.text = _( "Select an action" ); selectmenu.addentry( ADD_BREW, ( p.charges_of( brew_type ) > 0 ), MENU_AUTOASSIGN, _( "Add more %s to the vat" ), brew_nname ); - selectmenu.addentry( REMOVE_BREW, brew.made_of( LIQUID ), MENU_AUTOASSIGN, + selectmenu.addentry( REMOVE_BREW, brew.made_of( phase_id::LIQUID ), MENU_AUTOASSIGN, _( "Remove %s from the vat" ), brew.tname() ); selectmenu.addentry( START_FERMENT, true, MENU_AUTOASSIGN, _( "Start fermenting cycle" ) ); selectmenu.query(); @@ -2914,7 +2960,7 @@ void iexamine::fvat_full( player &p, const tripoint &examp ) } for( item &it : items_here ) { - if( !it.made_of_from_type( LIQUID ) ) { + if( !it.made_of_from_type( phase_id::LIQUID ) ) { add_msg( _( "You remove %s from the vat." ), it.tname() ); g->m.add_item_or_charges( p.pos(), it ); g->m.i_rem( examp, &it ); @@ -2955,7 +3001,7 @@ void iexamine::fvat_full( player &p, const tripoint &examp ) // TODO: Different age based on settings item booze( result, brew_i.birthday(), brew_i.charges ); g->m.add_item( examp, booze ); - if( booze.made_of_from_type( LIQUID ) ) { + if( booze.made_of_from_type( phase_id::LIQUID ) ) { add_msg( _( "The %s is now ready for bottling." ), booze.tname() ); } } @@ -2999,7 +3045,7 @@ static void displace_items_except_one_liquid( const tripoint &examp ) bool liquid_present = false; map_stack items = g->m.i_at( examp ); for( map_stack::iterator it = items.begin(); it != items.end(); ) { - if( !it->made_of_from_type( LIQUID ) || liquid_present ) { + if( !it->made_of_from_type( phase_id::LIQUID ) || liquid_present ) { // This isn't a liquid or there was already another kind of liquid inside, // so this has to be moved. // This will add items to a space near the vat, because it's flagged as NOITEM. @@ -3025,14 +3071,14 @@ void iexamine::keg( player &p, const tripoint &examp ) return !it.is_container_empty() && it.can_unload_liquid(); } ); const bool liquid_present = map_cursor( examp ).has_item_with( []( const item & it ) { - return it.made_of_from_type( LIQUID ); + return it.made_of_from_type( phase_id::LIQUID ); } ); if( !liquid_present || has_container_with_liquid ) { add_msg( m_info, _( "It is empty." ) ); // Get list of all drinks auto drinks_inv = p.items_with( []( const item & it ) { - return it.made_of( LIQUID ); + return it.made_of( phase_id::LIQUID ); } ); if( drinks_inv.empty() ) { add_msg( m_info, _( "You don't have any drinks to fill the %s with." ), keg_name ); @@ -3112,9 +3158,9 @@ void iexamine::keg( player &p, const tripoint &examp ) EXAMINE, }; uilist selectmenu; - selectmenu.addentry( DISPENSE, drink.made_of( LIQUID ), MENU_AUTOASSIGN, + selectmenu.addentry( DISPENSE, drink.made_of( phase_id::LIQUID ), MENU_AUTOASSIGN, _( "Dispense or dump %s" ), drink_tname ); - selectmenu.addentry( HAVE_A_DRINK, drink.is_food() && drink.made_of( LIQUID ), + selectmenu.addentry( HAVE_A_DRINK, drink.is_food() && drink.made_of( phase_id::LIQUID ), MENU_AUTOASSIGN, _( "Have a drink" ) ); selectmenu.addentry( REFILL, true, MENU_AUTOASSIGN, _( "Refill" ) ); selectmenu.addentry( EXAMINE, true, MENU_AUTOASSIGN, _( "Examine" ) ); @@ -3131,16 +3177,16 @@ void iexamine::keg( player &p, const tripoint &examp ) return; case HAVE_A_DRINK: - if( !p.eat( drink ) ) { + if( !p.can_consume( drink ) ) { return; // They didn't actually drink } - + p.assign_activity( player_activity( consume_activity_actor( drink, false ) ) ); + drink.charges--; if( drink.charges == 0 ) { add_msg( _( "You squeeze the last drops of %1$s from the %2$s." ), drink_tname, keg_name ); g->m.i_clear( examp ); } - p.moves -= to_moves( 5_seconds ); return; case REFILL: { @@ -3211,8 +3257,8 @@ bool iexamine::pour_into_keg( const tripoint &pos, item &liquid ) return true; } -void pick_plant( player &p, const tripoint &examp, - const std::string &itemType, ter_id new_ter, bool seeds ) +static void pick_plant( player &p, const tripoint &examp, + const itype_id &itemType, ter_id new_ter, bool seeds = false ) { bool auto_forage = get_option( "AUTO_FEATURES" ) && get_option( "AUTO_FORAGING" ) != "off"; @@ -3233,7 +3279,8 @@ void pick_plant( player &p, const tripoint &examp, g->m.spawn_item( p.pos(), itemType, plantCount, 0, calendar::turn ); if( seeds ) { - g->m.spawn_item( p.pos(), "seed_" + itemType, 1, + // FIXME: shouldn't derive seed type by string manipulation + g->m.spawn_item( p.pos(), itype_id( "seed_" + itemType.str() ), 1, rng( plantCount / 4, plantCount / 2 ), calendar::turn ); } @@ -3255,7 +3302,7 @@ void iexamine::tree_hickory( player &p, const tripoint &examp ) } ///\EFFECT_SURVIVAL increases hickory root number per tree - g->m.spawn_item( p.pos(), "hickory_root", rng( 1, 3 + p.get_skill_level( skill_survival ) ), 0, + g->m.spawn_item( p.pos(), itype_hickory_root, rng( 1, 3 + p.get_skill_level( skill_survival ) ), 0, calendar::turn ); g->m.ter_set( examp, t_tree_hickory_dead ); ///\EFFECT_SURVIVAL speeds up hickory root digging @@ -3285,14 +3332,14 @@ void iexamine::tree_maple( player &p, const tripoint &examp ) const inventory &crafting_inv = p.crafting_inventory(); - if( !crafting_inv.has_amount( "tree_spile", 1 ) ) { + if( !crafting_inv.has_amount( itype_tree_spile, 1 ) ) { add_msg( m_info, _( "You need a %s to tap this maple tree." ), - item::nname( "tree_spile" ) ); + item::nname( itype_tree_spile ) ); return; } std::vector comps; - comps.push_back( item_comp( "tree_spile", 1 ) ); + comps.push_back( item_comp( itype_tree_spile, 1 ) ); p.consume_items( comps, 1, is_crafting_component ); p.mod_moves( -to_moves( 20_seconds ) ); @@ -3316,7 +3363,7 @@ void iexamine::tree_maple_tapped( player &p, const tripoint &examp ) item *container = nullptr; int charges = 0; - const std::string maple_sap_name = item::nname( "maple_sap" ); + const std::string maple_sap_name = item::nname( itype_maple_sap ); map_stack items = g->m.i_at( examp ); if( !items.empty() ) { @@ -3325,7 +3372,7 @@ void iexamine::tree_maple_tapped( player &p, const tripoint &examp ) container = ⁢ it.visit_items( [&charges, &has_sap]( const item * it ) { - if( it->typeId() == "maple_syrup" ) { + if( it->typeId() == itype_maple_syrup ) { has_sap = true; charges = it->charges; return VisitResponse::ABORT; @@ -3408,20 +3455,20 @@ void iexamine::tree_maple_tapped( player &p, const tripoint &examp ) void iexamine::shrub_marloss( player &p, const tripoint &examp ) { if( p.has_trait( trait_THRESH_MYCUS ) ) { - pick_plant( p, examp, "mycus_fruit", t_shrub_fungal ); + pick_plant( p, examp, itype_mycus_fruit, t_shrub_fungal ); } else if( p.has_trait( trait_THRESH_MARLOSS ) ) { - g->m.spawn_item( p.pos(), "mycus_fruit", 1, 0, calendar::turn ); + g->m.spawn_item( p.pos(), itype_mycus_fruit, 1, 0, calendar::turn ); g->m.ter_set( examp, t_fungus ); add_msg( m_info, _( "The shrub offers up a fruit, then crumbles into a fungal bed." ) ); } else { - pick_plant( p, examp, "marloss_berry", t_shrub_fungal ); + pick_plant( p, examp, itype_marloss_berry, t_shrub_fungal ); } } void iexamine::tree_marloss( player &p, const tripoint &examp ) { if( p.has_trait( trait_THRESH_MYCUS ) ) { - pick_plant( p, examp, "mycus_fruit", t_tree_fungal ); + pick_plant( p, examp, itype_mycus_fruit, t_tree_fungal ); if( p.has_trait( trait_M_DEPENDENT ) && one_in( 3 ) ) { // Folks have a better shot at keeping fed. add_msg( m_info, @@ -3430,11 +3477,11 @@ void iexamine::tree_marloss( player &p, const tripoint &examp ) g->m.ter_set( examp, t_marloss_tree ); } } else if( p.has_trait( trait_THRESH_MARLOSS ) ) { - g->m.spawn_item( p.pos(), "mycus_fruit", 1, 0, calendar::turn ); + g->m.spawn_item( p.pos(), itype_mycus_fruit, 1, 0, calendar::turn ); g->m.ter_set( examp, t_tree_fungal ); add_msg( m_info, _( "The tree offers up a fruit, then shrivels into a fungal tree." ) ); } else { - pick_plant( p, examp, "marloss_berry", t_tree_fungal ); + pick_plant( p, examp, itype_marloss_berry, t_tree_fungal ); } } @@ -3458,7 +3505,6 @@ void iexamine::shrub_wildveggies( player &p, const tripoint &examp ) p.assign_activity( ACT_FORAGE, move_cost, 0 ); p.activity.placement = g->m.getabs( examp ); p.activity.auto_resume = true; - return; } void iexamine::recycle_compactor( player &, const tripoint &examp ) @@ -3639,7 +3685,7 @@ void iexamine::clean_water_source( player &, const tripoint &examp ) const itype *furn_t::crafting_pseudo_item_type() const { - if( crafting_pseudo_item.empty() ) { + if( crafting_pseudo_item.is_empty() ) { return nullptr; } return item::find_type( crafting_pseudo_item ); @@ -3773,10 +3819,10 @@ void iexamine::curtains( player &p, const tripoint &examp ) g->m.ter_set( examp, t_window_bars ); } - g->m.spawn_item( p.pos(), "nail", 1, 4, calendar::turn ); - g->m.spawn_item( p.pos(), "sheet", 2, 0, calendar::turn ); - g->m.spawn_item( p.pos(), "stick", 1, 0, calendar::turn ); - g->m.spawn_item( p.pos(), "string_36", 1, 0, calendar::turn ); + g->m.spawn_item( p.pos(), itype_nail, 1, 4, calendar::turn ); + g->m.spawn_item( p.pos(), itype_sheet, 2, 0, calendar::turn ); + g->m.spawn_item( p.pos(), itype_stick, 1, 0, calendar::turn ); + g->m.spawn_item( p.pos(), itype_string_36, 1, 0, calendar::turn ); p.moves -= to_moves( 10_seconds ); p.add_msg_if_player( _( "You tear the curtains and curtain rod off the windowframe." ) ); } else { @@ -3836,27 +3882,41 @@ void iexamine::sign( player &p, const tripoint &examp ) } } -static int getNearPumpCount( const tripoint &p ) +static int getNearPumpCount( const tripoint &p, std::string &fuel_type ) { int result = 0; for( const tripoint &tmp : g->m.points_in_radius( p, 12 ) ) { const auto t = g->m.ter( tmp ); if( t == ter_str_id( "t_gas_pump" ) || t == ter_str_id( "t_gas_pump_a" ) ) { result++; + fuel_type = "gasoline"; + } else if( t == ter_str_id( "t_diesel_pump" ) || t == ter_str_id( "t_diesel_pump_a" ) ) { + result++; + fuel_type = "diesel"; } } return result; } -cata::optional iexamine::getNearFilledGasTank( const tripoint ¢er, int &gas_units ) +cata::optional iexamine::getNearFilledGasTank( const tripoint ¢er, int &fuel_units, + const std::string &fuel_type ) { cata::optional tank_loc; int distance = INT_MAX; - gas_units = 0; + fuel_units = 0; for( const tripoint &tmp : g->m.points_in_radius( center, SEEX * 2 ) ) { - if( g->m.ter( tmp ) != ter_str_id( "t_gas_tank" ) ) { - continue; + + auto checkingTerr = g->m.ter( tmp ); + + if( fuel_type == "gasoline" ) { + if( checkingTerr != ter_str_id( "t_gas_tank" ) ) { + continue; + } + } else if( fuel_type == "diesel" ) { + if( checkingTerr != ter_str_id( "t_diesel_tank" ) ) { + continue; + } } const int new_distance = rl_dist( center, tmp ); @@ -3869,10 +3929,10 @@ cata::optional iexamine::getNearFilledGasTank( const tripoint ¢er, tank_loc.emplace( tmp ); } for( auto &k : g->m.i_at( tmp ) ) { - if( k.made_of( LIQUID ) ) { + if( k.made_of( phase_id::LIQUID ) ) { distance = new_distance; tank_loc.emplace( tmp ); - gas_units = k.charges; + fuel_units = k.charges; break; } } @@ -3961,7 +4021,8 @@ cata::optional iexamine::getGasPumpByNumber( const tripoint &p, int nu int k = 0; for( const tripoint &tmp : g->m.points_in_radius( p, 12 ) ) { const auto t = g->m.ter( tmp ); - if( ( t == ter_str_id( "t_gas_pump" ) || t == ter_str_id( "t_gas_pump_a" ) ) && number == k++ ) { + if( ( t == ter_str_id( "t_gas_pump" ) || t == ter_str_id( "t_gas_pump_a" ) + || t == ter_str_id( "t_diesel_pump" ) || t == ter_str_id( "t_diesel_pump_a" ) ) && number == k++ ) { return tmp; } } @@ -3972,7 +4033,7 @@ bool iexamine::toPumpFuel( const tripoint &src, const tripoint &dst, int units ) { auto items = g->m.i_at( src ); for( auto item_it = items.begin(); item_it != items.end(); ++item_it ) { - if( item_it->made_of( LIQUID ) ) { + if( item_it->made_of( phase_id::LIQUID ) ) { if( item_it->charges < units ) { return false; } @@ -4001,7 +4062,7 @@ static int fromPumpFuel( const tripoint &dst, const tripoint &src ) { auto items = g->m.i_at( src ); for( auto item_it = items.begin(); item_it != items.end(); ++item_it ) { - if( item_it->made_of( LIQUID ) ) { + if( item_it->made_of( phase_id::LIQUID ) ) { // how much do we have in the pump? item liq_d( item_it->type, calendar::turn, item_it->charges ); @@ -4020,16 +4081,26 @@ static int fromPumpFuel( const tripoint &dst, const tripoint &src ) return -1; } -static void turnOnSelectedPump( const tripoint &p, int number ) +static void turnOnSelectedPump( const tripoint &p, int number, const std::string &fuel_type ) { int k = 0; for( const tripoint &tmp : g->m.points_in_radius( p, 12 ) ) { const auto t = g->m.ter( tmp ); - if( t == ter_str_id( "t_gas_pump" ) || t == ter_str_id( "t_gas_pump_a" ) ) { - if( number == k++ ) { - g->m.ter_set( tmp, ter_str_id( "t_gas_pump_a" ) ); - } else { - g->m.ter_set( tmp, ter_str_id( "t_gas_pump" ) ); + if( fuel_type == "gasoline" ) { + if( t == ter_str_id( "t_gas_pump" ) || t == ter_str_id( "t_gas_pump_a" ) ) { + if( number == k++ ) { + g->m.ter_set( tmp, ter_str_id( "t_gas_pump_a" ) ); + } else { + g->m.ter_set( tmp, ter_str_id( "t_gas_pump" ) ); + } + } + } else if( fuel_type == "diesel" ) { + if( t == ter_str_id( "t_diesel_pump" ) || t == ter_str_id( "t_diesel_pump_a" ) ) { + if( number == k++ ) { + g->m.ter_set( tmp, ter_str_id( "t_diesel_pump_a" ) ); + } else { + g->m.ter_set( tmp, ter_str_id( "t_diesel_pump" ) ); + } } } } @@ -4048,23 +4119,25 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) popup( _( "You're illiterate, and can't read the screen." ) ); } - int pumpCount = getNearPumpCount( examp ); + std::string fuelType; + int pumpCount = getNearPumpCount( examp, fuelType ); if( pumpCount == 0 ) { - popup( str_to_illiterate_str( _( "Failure! No gas pumps found!" ) ) ); + popup( str_to_illiterate_str( string_format( _( "Failure! No %s pumps found!" ), fuelType ) ) ); return; } - int tankGasUnits; - const cata::optional pTank_ = getNearFilledGasTank( examp, tankGasUnits ); + int tankUnits; + const cata::optional pTank_ = getNearFilledGasTank( examp, tankUnits, fuelType ); if( !pTank_ ) { - popup( str_to_illiterate_str( _( "Failure! No gas tank found!" ) ) ); + popup( str_to_illiterate_str( string_format( _( "Failure! No %s tank found!" ), fuelType ) ) ); return; } const tripoint pTank = *pTank_; - if( tankGasUnits == 0 ) { + if( tankUnits == 0 ) { popup( str_to_illiterate_str( - _( "This station is out of fuel. We apologize for the inconvenience." ) ) ); + string_format( _( "This station is out of %s. We apologize for the inconvenience." ), + fuelType ) ) ); return; } @@ -4077,24 +4150,30 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) int pricePerUnit = getGasPricePerLiter( discount ); - bool can_hack = ( !p.has_trait( trait_ILLITERATE ) && ( ( p.has_charges( "electrohack", 25 ) ) || - ( p.has_bionic( bio_fingerhack ) && p.get_power_level() > 24_kJ ) ) ); + bool can_hack = ( !p.has_trait( trait_ILLITERATE ) && + ( ( p.has_charges( itype_electrohack, 25 ) ) || + ( p.has_bionic( bio_fingerhack ) && p.get_power_level() > 24_kJ ) ) ); uilist amenu; amenu.selected = 1; amenu.text = str_to_illiterate_str( _( "Welcome to AutoGas!" ) ); amenu.addentry( 0, false, -1, str_to_illiterate_str( _( "What would you like to do?" ) ) ); - amenu.addentry( buy_gas, true, 'b', str_to_illiterate_str( _( "Buy gas." ) ) ); + amenu.addentry( buy_gas, true, 'b', str_to_illiterate_str( string_format( _( "Buy %s." ), + fuelType ) ) ); amenu.addentry( refund, true, 'r', str_to_illiterate_str( _( "Refund cash." ) ) ); - std::string gaspumpselected = str_to_illiterate_str( _( "Current gas pump: " ) ) + - to_string( uistate.ags_pay_gas_selected_pump + 1 ); + std::string gaspumpselected = str_to_illiterate_str( string_format( _( "Current %s pump: " ), + fuelType ) + + to_string( uistate.ags_pay_gas_selected_pump + 1 ) ); amenu.addentry( 0, false, -1, gaspumpselected ); - amenu.addentry( choose_pump, true, 'p', str_to_illiterate_str( _( "Choose a gas pump." ) ) ); + amenu.addentry( choose_pump, true, 'p', + str_to_illiterate_str( string_format( _( "Choose a %s pump." ), fuelType ) ) ); amenu.addentry( 0, false, -1, str_to_illiterate_str( _( "Your discount: " ) ) + discountName ); - amenu.addentry( 0, false, -1, str_to_illiterate_str( _( "Your price per gasoline unit: " ) ) + + amenu.addentry( 0, false, -1, string_format( str_to_illiterate_str( + _( "Your price per %s unit: " ) ), fuelType ) + + format_money( pricePerUnit ) ); if( can_hack ) { @@ -4107,7 +4186,7 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) if( choose_pump == choice ) { uilist amenu; amenu.selected = uistate.ags_pay_gas_selected_pump; - amenu.text = str_to_illiterate_str( _( "Please choose gas pump:" ) ); + amenu.text = str_to_illiterate_str( string_format( _( "Please choose %s pump:" ), fuelType ) ); for( int i = 0; i < pumpCount; i++ ) { amenu.addentry( i, true, -1, @@ -4122,14 +4201,14 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) uistate.ags_pay_gas_selected_pump = choice; - turnOnSelectedPump( examp, uistate.ags_pay_gas_selected_pump ); + turnOnSelectedPump( examp, uistate.ags_pay_gas_selected_pump, fuelType ); return; } if( buy_gas == choice ) { - int money = p.charges_of( "cash_card" ); + int money = p.charges_of( itype_cash_card ); if( money < pricePerUnit ) { popup( str_to_illiterate_str( @@ -4137,10 +4216,10 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) return; } - int maximum_liters = std::min( money / pricePerUnit, tankGasUnits / 1000 ); + int maximum_liters = std::min( money / pricePerUnit, tankUnits / 1000 ); - std::string popupmsg = string_format( - _( "How many liters of gasoline to buy? Max: %d L. (0 to cancel)" ), maximum_liters ); + std::string popupmsg = str_to_illiterate_str( string_format( + _( "How many liters of %s to buy? Max: %d L. (0 to cancel)" ), fuelType, maximum_liters ) ); int liters = string_input_popup() .title( popupmsg ) .width( 20 ) @@ -4165,7 +4244,7 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) int cost = liters * pricePerUnit; money -= cost; - p.use_charges( "cash_card", cost ); + p.use_charges( itype_cash_card, cost ); add_msg( m_info, _( "Your cash cards now hold %s." ), format_money( money ) ); p.moves -= to_moves( 5_seconds ); @@ -4194,7 +4273,8 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) 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" ) ) ); + add_msg( m_info, _( "Your cash cards now hold %s." ), + format_money( p.charges_of( itype_cash_card ) ) ); p.moves -= to_moves( 5_seconds ); return; } else { @@ -4211,6 +4291,7 @@ void iexamine::ledge( player &p, const tripoint &examp ) cmenu.text = _( "There is a ledge here. What do you want to do?" ); cmenu.addentry( 1, true, 'j', _( "Jump over." ) ); cmenu.addentry( 2, true, 'c', _( "Climb down." ) ); + cmenu.query(); switch( cmenu.ret ) { @@ -4256,28 +4337,35 @@ void iexamine::ledge( player &p, const tripoint &examp ) const int height = examp.z - where.z; if( height == 0 ) { - p.add_msg_if_player( _( "You can't climb down there" ) ); + p.add_msg_if_player( _( "You can't climb down there." ) ); return; } + const bool has_grapnel = p.has_amount( itype_grapnel, 1 ); const int climb_cost = p.climbing_cost( where, examp ); const auto fall_mod = p.fall_damage_mod(); std::string query_str = ngettext( "Looks like %d story. Jump down?", "Looks like %d stories. Jump down?", height ); + if( height > 1 && !query_yn( query_str.c_str(), height ) ) { return; } else if( height == 1 ) { std::string query; p.increase_activity_level( MODERATE_EXERCISE ); - if( climb_cost <= 0 && fall_mod > 0.8 ) { - query = _( "You probably won't be able to get up and jumping down may hurt. Jump?" ); - } else if( climb_cost <= 0 ) { - query = _( "You probably won't be able to get back up. Climb down?" ); - } else if( climb_cost < 200 ) { - query = _( "You should be able to climb back up easily if you climb down there. Climb down?" ); + + if( !has_grapnel ) { + if( climb_cost <= 0 && fall_mod > 0.8 ) { + query = _( "You probably won't be able to get up and jumping down may hurt. Jump?" ); + } else if( climb_cost <= 0 ) { + query = _( "You probably won't be able to get back up. Climb down?" ); + } else if( climb_cost < 200 ) { + query = _( "You should be able to climb back up easily if you climb down there. Climb down?" ); + } else { + query = _( "You may have problems climbing back up. Climb down?" ); + } } else { - query = _( "You may have problems climbing back up. Climb down?" ); + query = _( "Use your grappling hook to climb down?" ); } if( !query_yn( query.c_str() ) ) { @@ -4288,7 +4376,9 @@ void iexamine::ledge( player &p, const tripoint &examp ) p.moves -= to_moves( 1_seconds + 1_seconds * fall_mod ); p.setpos( examp ); - if( g->m.has_flag( "UNSTABLE", examp + tripoint_below ) && g->slip_down( true ) ) { + if( has_grapnel ) { + p.add_msg_if_player( _( "You tie the rope around your waist and begin to climb down." ) ); + } else if( g->m.has_flag( "UNSTABLE", examp + tripoint_below ) && g->slip_down( true ) ) { return; } @@ -4346,11 +4436,11 @@ static Character &operator_present( Character &p, const tripoint &autodoc_loc, static item &cyborg_on_couch( const tripoint &couch_pos, item &null_cyborg ) { for( item &it : g->m.i_at( couch_pos ) ) { - if( it.typeId() == "bot_broken_cyborg" || it.typeId() == "bot_prototype_cyborg" ) { + if( it.typeId() == itype_bot_broken_cyborg || it.typeId() == itype_bot_prototype_cyborg ) { return it; } - if( it.typeId() == "corpse" ) { - if( it.get_mtype()->id == "mon_broken_cyborg" || it.get_mtype()->id == "mon_prototype_cyborg" ) { + if( it.typeId() == itype_corpse ) { + if( it.get_mtype()->id == mon_broken_cyborg || it.get_mtype()->id == mon_prototype_cyborg ) { return it; } } @@ -4360,38 +4450,31 @@ static item &cyborg_on_couch( const tripoint &couch_pos, item &null_cyborg ) static player &best_installer( player &p, player &null_player, int difficulty ) { - float player_skill = p.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics ); - - std::vector< std::pair> ally_skills; - ally_skills.reserve( g->allies().size() ); + std::vector< std::pair> ally_chances; + ally_chances.reserve( g->allies().size() ); for( size_t i = 0; i < g->allies().size() ; i ++ ) { - std::pair ally_skill; + std::pair ally_skill; const npc *e = g->allies()[ i ]; player &ally = *g->critter_by_id( e->getID() ); ally_skill.second = i; - ally_skill.first = ally.bionics_adjusted_skill( skill_firstaid, - skill_computer, - skill_electronics ); - ally_skills.push_back( ally_skill ); + ally_skill.first = bionic_success_chance( true, -1, difficulty, ally ); + ally_chances.push_back( ally_skill ); } - std::sort( ally_skills.begin(), ally_skills.end(), [&]( const std::pair &lhs, - const std::pair &rhs ) { + std::sort( ally_chances.begin(), ally_chances.end(), [&]( const std::pair &lhs, + const std::pair &rhs ) { return rhs.first < lhs.first; } ); - int player_cos = bionic_manip_cos( player_skill, difficulty ); + int player_cos = bionic_success_chance( true, -1, difficulty, p ); for( size_t i = 0; i < g->allies().size() ; i ++ ) { - if( ally_skills[ i ].first > player_skill ) { - const npc *e = g->allies()[ ally_skills[ i ].second ]; + if( ally_chances[ i ].first > player_cos ) { + const npc *e = g->allies()[ ally_chances[ i ].second ]; player &ally = *g->critter_by_id( e->getID() ); - int ally_cos = bionic_manip_cos( ally_skills[ i ].first, difficulty ); if( e->has_effect( effect_sleep ) ) { if( !g->u.query_yn( //~ %1$s is the name of the ally _( "%1$s is asleep, but has a %2$d chance of success compared to your %3$d chance of success. Continue with a higher risk of failure?" ), - ally.disp_name(), ally_cos, player_cos ) ) { + ally.disp_name(), ally_chances[i].first, player_cos ) ) { return null_player; } else { continue; @@ -4399,7 +4482,7 @@ static player &best_installer( player &p, player &null_player, int difficulty ) } //~ %1$s is the name of the ally add_msg( _( "%1$s will perform the operation with a %2$d chance of success." ), ally.disp_name(), - ally_cos ); + ally_chances[i].first ); return ally; } else { break; @@ -4443,11 +4526,12 @@ void iexamine::autodoc( player &p, const tripoint &examp ) } if( &patient == &null_player ) { if( &cyborg != &null_cyborg ) { - if( cyborg.typeId() == "corpse" && !cyborg.active ) { + if( cyborg.typeId() == itype_corpse && !cyborg.active ) { popup( _( "Patient is dead. Please remove corpse to proceed. Exiting." ) ); return; - } else if( cyborg.typeId() == "bot_broken_cyborg" || cyborg.typeId() == "corpse" ) { - popup( _( "ERROR Bionic Level Assessement: FULL CYBORG. Autodoc Mk. XI can't opperate. Please move patient to appropriate facility. Exiting." ) ); + } else if( cyborg.typeId() == itype_id( "bot_broken_cyborg" ) || + cyborg.typeId() == itype_id( "corpse" ) ) { + popup( _( "ERROR Bionic Level Assessment: FULL CYBORG. Autodoc Mk. XI can't operate. Please move patient to appropriate facility. Exiting." ) ); return; } @@ -4485,7 +4569,7 @@ void iexamine::autodoc( player &p, const tripoint &examp ) popup( _( "No patient found located on the connected couches. Operation impossible. Exiting." ) ); return; } - } else if( patient.activity.id() == "ACT_OPERATION" ) { + } else if( patient.activity.id() == ACT_OPERATION ) { popup( _( "Operation underway. Please wait until the end of the current procedure. Estimated time remaining: %s." ), to_string( time_duration::from_turns( patient.activity.moves_left / 100 ) ) ); p.add_msg_if_player( m_info, _( "The autodoc is working on %s." ), patient.disp_name() ); @@ -4580,7 +4664,7 @@ void iexamine::autodoc( player &p, const tripoint &examp ) for( const bionic &bio : installed_bionics ) { if( bio.id != bio_power_storage || bio.id != bio_power_storage_mkII ) { - if( item::type_is_defined( bio.id.str() ) ) {// put cbm items in your inventory + if( item::type_is_defined( bio.info().itype() ) ) {// put cbm items in your inventory item bionic_to_uninstall( bio.id.str(), calendar::turn ); bionic_to_uninstall.set_flag( flag_IN_CBM ); bionic_to_uninstall.set_flag( flag_NO_STERILE ); @@ -4633,8 +4717,8 @@ void iexamine::autodoc( player &p, const tripoint &examp ) int broken_limbs_count = 0; for( int i = 0; i < num_hp_parts; i++ ) { const bool broken = patient.is_limb_broken( static_cast( i ) ); - body_part part = player::hp_to_bp( static_cast( i ) ); - effect &existing_effect = patient.get_effect( effect_mending, part ); + const bodypart_id &part = convert_bp( player::hp_to_bp( static_cast( i ) ) ).id(); + effect &existing_effect = patient.get_effect( effect_mending, part->token ); // Skip part if not broken or already healed 50% if( !broken || ( !existing_effect.is_null() && existing_effect.get_duration() > @@ -4647,7 +4731,7 @@ void iexamine::autodoc( player &p, const tripoint &examp ) _( "The machine rapidly sets and splints 's broken %s." ), body_part_name( part ) ); // TODO: fail here if unable to perform the action, i.e. can't wear more, trait mismatch. - if( !patient.worn_with_flag( flag_SPLINT, convert_bp( part ).id() ) ) { + if( !patient.worn_with_flag( flag_SPLINT, part ) ) { item splint; if( i == hp_arm_l || i == hp_arm_r ) { splint = item( "arm_splint", 0 ); @@ -4658,8 +4742,8 @@ void iexamine::autodoc( player &p, const tripoint &examp ) cata::optional::iterator> worn_item = patient.wear( equipped_splint, false ); } - patient.add_effect( effect_mending, 0_turns, part, true ); - effect &mending_effect = patient.get_effect( effect_mending, part ); + patient.add_effect( effect_mending, 0_turns, part->token, true ); + effect &mending_effect = patient.get_effect( effect_mending, part->token ); mending_effect.set_duration( mending_effect.get_max_duration() - 5_days ); } if( broken_limbs_count == 0 ) { @@ -4712,7 +4796,7 @@ static void mill_activate( player &p, const tripoint &examp ) units::volume food_volume = 0_ml; for( item &it : items ) { - if( it.typeId() == "flour" ) { + if( it.typeId() == itype_flour ) { add_msg( _( "This mill already contains flour." ) ); add_msg( _( "Remove it before starting the mill again." ) ); return; @@ -4791,11 +4875,11 @@ static void smoker_activate( player &p, const tripoint &examp ) food_volume += it.volume(); continue; } - if( it.typeId() == "charcoal" ) { + if( it.typeId() == itype_charcoal ) { charcoal_present = true; charcoal = ⁢ } - if( it.typeId() != "charcoal" && !it.has_flag( flag_SMOKABLE ) ) { + if( it.typeId() != itype_charcoal && !it.has_flag( flag_SMOKABLE ) ) { add_msg( m_bad, _( "This rack contains %s, which can't be smoked!" ), it.tname( 1, false ) ); add_msg( _( "You remove %s from the rack." ), it.tname() ); @@ -4837,14 +4921,14 @@ static void smoker_activate( player &p, const tripoint &examp ) return; } - if( !p.has_charges( "fire", 1 ) ) { + if( !p.has_charges( itype_fire, 1 ) ) { add_msg( _( "This smoking rack is ready to be fired, but you have no fire source." ) ); return; } else if( !query_yn( _( "Fire the smoking rack?" ) ) ) { return; } - p.use_charges( "fire", 1 ); + p.use_charges( itype_fire, 1 ); for( auto &it : g->m.i_at( examp ) ) { if( it.has_flag( flag_SMOKABLE ) ) { it.process_temperature_rot( 1, examp, nullptr ); @@ -4920,7 +5004,7 @@ static void smoker_finalize( player &, const tripoint &examp, const time_point & for( item &it : items ) { if( it.has_flag( flag_SMOKABLE ) && it.get_comestible() ) { - if( it.get_comestible()->smoking_result.empty() ) { + if( it.get_comestible()->smoking_result.is_empty() ) { it.unset_flag( flag_PROCESSING ); } else { it.calc_rot_while_processing( 6_hours ); @@ -4936,7 +5020,7 @@ static void smoker_finalize( player &, const tripoint &examp, const time_point & result.inherit_flags( it, rec ); if( !result.has_flag( flag_NUTRIENT_OVERRIDE ) ) { // If the item has "cooks_like" it will be replaced by that item as a component. - if( !it.get_comestible()->cooks_like.empty() ) { + if( !it.get_comestible()->cooks_like.is_empty() ) { // Set charges to 1 for stacking purposes. it = item( it.get_comestible()->cooks_like, it.birthday(), 1 ); } @@ -5205,7 +5289,7 @@ void iexamine::quern_examine( player &p, const tripoint &examp ) return; } - if( items_here.size() == 1 && items_here.begin()->typeId() == "fake_milling_item" ) { + if( items_here.size() == 1 && items_here.begin()->typeId() == itype_fake_milling_item ) { debugmsg( "f_mill_active was empty, and had fake_milling_item!" ); if( g->m.furn( examp ) == furn_str_id( "f_water_mill_active" ) ) { g->m.furn_set( examp, f_water_mill ); @@ -5227,7 +5311,7 @@ void iexamine::quern_examine( player &p, const tripoint &examp ) f_check = true; f_volume += it.volume(); } - if( active && it.typeId() == "fake_milling_item" ) { + if( active && it.typeId() == itype_fake_milling_item ) { time_left = time_duration::from_turns( it.item_counter ); hours_left = to_hours( time_left ); minutes_left = to_minutes( time_left ) + 1; @@ -5292,7 +5376,7 @@ void iexamine::quern_examine( player &p, const tripoint &examp ) pop += _( "…that it is empty." ); } else { for( const item &it : items_here ) { - if( it.typeId() == "fake_milling_item" ) { + if( it.typeId() == itype_fake_milling_item ) { pop += "\n" + colorize( _( "You see some grains that are not yet milled to fine flour." ), c_red ) + "\n"; continue; @@ -5370,12 +5454,12 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) g->m.furn_set( examp, f_smoking_rack ); return; } - if( portable && items_here.size() == 1 && items_here.begin()->typeId() == "fake_smoke_plume" ) { + if( portable && items_here.size() == 1 && items_here.begin()->typeId() == itype_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" ) { + } else if( items_here.size() == 1 && items_here.begin()->typeId() == itype_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() ); @@ -5394,7 +5478,7 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) f_check = true; f_volume += it.volume(); } - if( active && it.typeId() == "fake_smoke_plume" ) { + if( active && it.typeId() == itype_fake_smoke_plume ) { time_left = time_duration::from_turns( it.item_counter ); hours_left = to_hours( time_left ); minutes_left = to_minutes( time_left ) + 1; @@ -5406,8 +5490,8 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) 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 has_coal_in_inventory = p.charges_of( itype_charcoal ) > 0; + const auto coal_charges = count_charges_in_list( item::find_type( itype_charcoal ), items_here ); const auto need_charges = get_charcoal_charges( f_volume ); const bool has_coal = coal_charges > 0; const bool has_enough_coal = coal_charges >= need_charges; @@ -5497,7 +5581,7 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) pop += _( "…that it is empty." ); } else { for( const item &it : items_here ) { - if( it.typeId() == "fake_smoke_plume" ) { + if( it.typeId() == itype_fake_smoke_plume ) { pop += "\n" + colorize( _( "You see some smoldering embers there." ), c_red ) + "\n"; continue; } @@ -5534,7 +5618,7 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) case 5: { //remove charcoal for( map_stack::iterator it = items_here.begin(); it != items_here.end(); ) { - if( ( rem_f_opt && it->is_food() ) || ( !rem_f_opt && ( it->typeId() == "charcoal" ) ) ) { + if( ( rem_f_opt && it->is_food() ) || ( !rem_f_opt && ( it->typeId() == itype_charcoal ) ) ) { // get handling cost before the item reference is invalidated const int handling_cost = -p.item_handling_cost( *it ); diff --git a/src/iexamine.h b/src/iexamine.h index 537a2312ede11..9e4b2e2ca4c33 100644 --- a/src/iexamine.h +++ b/src/iexamine.h @@ -115,7 +115,8 @@ void workbench_internal( player &p, const tripoint &examp, bool pour_into_keg( const tripoint &pos, item &liquid ); cata::optional getGasPumpByNumber( const tripoint &p, int number ); bool toPumpFuel( const tripoint &src, const tripoint &dst, int units ); -cata::optional getNearFilledGasTank( const tripoint ¢er, int &gas_units ); +cata::optional getNearFilledGasTank( const tripoint ¢er, int &fuel_units, + const std::string &fuel_type ); bool has_keg( const tripoint &pos ); diff --git a/src/init.cpp b/src/init.cpp index 8c7f2f54d6852..20132236b1e48 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -59,6 +59,7 @@ #include "mongroup.h" #include "monstergenerator.h" #include "morale_types.h" +#include "move_mode.h" #include "mutation.h" #include "npc.h" #include "npc_class.h" @@ -155,8 +156,8 @@ static void load_ignored_type( const JsonObject &jo ) } void DynamicDataLoader::add( const std::string &type, - std::function - f ) + const std::function + &f ) { const auto pair = type_function_map.emplace( type, f ); if( !pair.second ) { @@ -165,7 +166,7 @@ void DynamicDataLoader::add( const std::string &type, } void DynamicDataLoader::add( const std::string &type, - std::function f ) + const std::function &f ) { const auto pair = type_function_map.emplace( type, [f]( const JsonObject & obj, const std::string & src, @@ -177,7 +178,8 @@ void DynamicDataLoader::add( const std::string &type, } } -void DynamicDataLoader::add( const std::string &type, std::function f ) +void DynamicDataLoader::add( const std::string &type, + const std::function &f ) { const auto pair = type_function_map.emplace( type, [f]( const JsonObject & obj, const std::string &, const std::string &, const std::string & ) { @@ -203,6 +205,7 @@ void DynamicDataLoader::initialize() add( "ammo_effect", &ammo_effects::load ); add( "emit", &emit::load_emit ); add( "activity_type", &activity_type::load ); + add( "movement_mode", &move_mode::load_move_mode ); add( "vitamin", &vitamin::load_vitamin ); add( "material", &materials::load ); add( "bionic", &bionic_data::load_bionic ); @@ -397,6 +400,7 @@ void DynamicDataLoader::initialize() add( "event_statistic", &event_statistic::load_statistic ); add( "score", &score::load_score ); add( "achievement", &achievement::load_achievement ); + add( "conduct", &achievement::load_achievement ); #if defined(TILES) add( "mod_tileset", &load_mod_tileset ); #else @@ -501,6 +505,7 @@ void DynamicDataLoader::unload_data() json_flag::reset(); materials::reset(); mission_type::reset(); + move_mode::reset(); MonsterGenerator::generator().reset(); MonsterGroupManager::ClearMonsterGroups(); morale_type_data::reset(); @@ -593,6 +598,7 @@ void DynamicDataLoader::finalize_loaded_data( loading_ui &ui ) { _( "Start locations" ), &start_locations::finalize_all }, { _( "Vehicle prototypes" ), &vehicle_prototype::finalize }, { _( "Mapgen weights" ), &calculate_mapgen_weights }, + { _( "Behaviors" ), &behavior::finalize }, { _( "Monster types" ), []() { @@ -602,13 +608,13 @@ void DynamicDataLoader::finalize_loaded_data( loading_ui &ui ) { _( "Monster groups" ), &MonsterGroupManager::FinalizeMonsterGroups }, { _( "Monster factions" ), &monfactions::finalize }, { _( "Factions" ), &npc_factions::finalize }, + { _( "Move modes" ), &move_mode::finalize }, { _( "Constructions" ), &finalize_constructions }, { _( "Crafting recipes" ), &recipe_dictionary::finalize }, { _( "Recipe groups" ), &recipe_group::check }, { _( "Martial arts" ), &finialize_martial_arts }, { _( "NPC classes" ), &npc_class::finalize_all }, { _( "Missions" ), &mission_type::finalize }, - { _( "Behaviors" ), &behavior::finalize }, { _( "Harvest lists" ), &harvest_list::finalize_all }, { _( "Anatomies" ), &anatomy::finalize_all }, { _( "Mutations" ), &mutation_branch::finalize }, @@ -719,6 +725,4 @@ void DynamicDataLoader::check_consistency( loading_ui &ui ) e.second(); ui.proceed(); } - catacurses::erase(); - catacurses::refresh(); } diff --git a/src/init.h b/src/init.h index 62502b16c5dc3..6c83ae1977e34 100644 --- a/src/init.h +++ b/src/init.h @@ -72,12 +72,12 @@ class DynamicDataLoader * functor that loads that kind of object from json. */ t_type_function_map type_function_map; - void add( const std::string &type, std::function f ); + void add( const std::string &type, const std::function &f ); void add( const std::string &type, - std::function f ); + const std::function &f ); void add( const std::string &type, - std::function - f ); + const std::function + &f ); /** * Load all the types from that json data. * @param jsin Might contain single object, diff --git a/src/input.cpp b/src/input.cpp index 45a27b69acae3..9e5ecbc9f47f3 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -33,6 +33,7 @@ #include "ui_manager.h" #include "color.h" #include "point.h" +#include "sdltiles.h" using std::min; // from using std::max; @@ -139,15 +140,15 @@ void input_manager::init() } t_actions &actions = action_contexts["DEFAULTMODE"]; std::set touched; - for( std::map::const_iterator a = keymap.begin(); a != keymap.end(); ++a ) { - const std::string action_id = action_ident( a->second ); + for( const std::pair &a : keymap ) { + const std::string action_id = action_ident( a.second ); // Put the binding from keymap either into the global context // (if an action with that ident already exists there - think movement keys) // or otherwise to the DEFAULTMODE context. std::string context = "DEFAULTMODE"; if( action_contexts[default_context_id].count( action_id ) > 0 ) { context = default_context_id; - } else if( touched.count( a->second ) == 0 ) { + } else if( touched.count( a.second ) == 0 ) { // Note: movement keys are somehow special as the default in keymap // does not contain the arrow keys, so we don't clear existing keybindings // for them. @@ -155,9 +156,9 @@ void input_manager::init() // previously (default!) existing bindings, to only keep the bindings, // the user is used to action_contexts[action_id].clear(); - touched.insert( a->second ); + touched.insert( a.second ); } - add_input_for_action( action_id, context, input_event( a->first, CATA_INPUT_KEYBOARD ) ); + add_input_for_action( action_id, context, input_event( a.first, input_event_t::keyboard ) ); } // Unmap actions that are explicitly not mapped for( const auto &elem : unbound_keymap ) { @@ -223,11 +224,11 @@ void input_manager::load( const std::string &file_name, bool is_user_preferences std::string input_method = keybinding.get_string( "input_method" ); input_event new_event; if( input_method == "keyboard" ) { - new_event.type = CATA_INPUT_KEYBOARD; + new_event.type = input_event_t::keyboard; } else if( input_method == "gamepad" ) { - new_event.type = CATA_INPUT_GAMEPAD; + new_event.type = input_event_t::gamepad; } else if( input_method == "mouse" ) { - new_event.type = CATA_INPUT_MOUSE; + new_event.type = input_event_t::mouse; } if( keybinding.has_array( "key" ) ) { @@ -274,15 +275,14 @@ void input_manager::save() JsonOut jsout( data_file, true ); jsout.start_array(); - for( t_action_contexts::const_iterator a = action_contexts.begin(); a != action_contexts.end(); - ++a ) { - const t_actions &actions = a->second; + for( const auto &a : action_contexts ) { + const t_actions &actions = a.second; for( const auto &action : actions ) { const t_input_event_list &events = action.second.input_events; jsout.start_object(); jsout.member( "id", action.first ); - jsout.member( "category", a->first ); + jsout.member( "category", a.first ); bool is_user_created = action.second.is_user_created; if( is_user_created ) { jsout.member( "is_user_created", is_user_created ); @@ -293,13 +293,13 @@ void input_manager::save() for( const auto &event : events ) { jsout.start_object(); switch( event.type ) { - case CATA_INPUT_KEYBOARD: + case input_event_t::keyboard: jsout.member( "input_method", "keyboard" ); break; - case CATA_INPUT_GAMEPAD: + case input_event_t::gamepad: jsout.member( "input_method", "gamepad" ); break; - case CATA_INPUT_MOUSE: + case input_event_t::mouse: jsout.member( "input_method", "mouse" ); break; default: @@ -410,7 +410,7 @@ int input_manager::get_keycode( const std::string &name ) const std::string input_manager::get_keyname( int ch, input_event_t inp_type, bool portable ) const { cata::optional raw; - if( inp_type == CATA_INPUT_KEYBOARD ) { + if( inp_type == input_event_t::keyboard ) { const t_key_to_name_map::const_iterator a = keycode_to_keyname.find( ch ); if( a != keycode_to_keyname.end() ) { if( IS_F_KEY( ch ) ) { @@ -427,7 +427,7 @@ std::string input_manager::get_keyname( int ch, input_event_t inp_type, bool por } raw = a->second; } - } else if( inp_type == CATA_INPUT_MOUSE ) { + } else if( inp_type == input_event_t::mouse ) { if( ch == MOUSE_BUTTON_LEFT ) { raw = translate_marker_context( "key name", "MOUSE_LEFT" ); } else if( ch == MOUSE_BUTTON_RIGHT ) { @@ -439,7 +439,7 @@ std::string input_manager::get_keyname( int ch, input_event_t inp_type, bool por } else if( ch == MOUSE_MOVE ) { raw = translate_marker_context( "key name", "MOUSE_MOVE" ); } - } else if( inp_type == CATA_INPUT_GAMEPAD ) { + } else if( inp_type == input_event_t::gamepad ) { const t_key_to_name_map::const_iterator a = gamepad_keycode_to_keyname.find( ch ); if( a != gamepad_keycode_to_keyname.end() ) { raw = a->second; @@ -604,11 +604,9 @@ void input_context::clear_conflicting_keybindings( const input_event &event ) input_manager::t_actions &default_actions = inp_mngr.action_contexts[default_context_id]; input_manager::t_actions &category_actions = inp_mngr.action_contexts[category]; - for( std::vector::const_iterator registered_action = registered_actions.begin(); - registered_action != registered_actions.end(); - ++registered_action ) { - input_manager::t_actions::iterator default_action = default_actions.find( *registered_action ); - input_manager::t_actions::iterator category_action = category_actions.find( *registered_action ); + for( const auto ®istered_action : registered_actions ) { + input_manager::t_actions::iterator default_action = default_actions.find( registered_action ); + input_manager::t_actions::iterator category_action = category_actions.find( registered_action ); if( default_action != default_actions.end() ) { std::vector &events = default_action->second.input_events; events.erase( std::remove( events.begin(), events.end(), event ), events.end() ); @@ -696,7 +694,7 @@ 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 ) { + if( events_event.type == input_event_t::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() ) ); @@ -715,15 +713,13 @@ std::string input_context::key_bound_to( const std::string &action_descriptor, c std::string input_context::get_available_single_char_hotkeys( std::string requested_keys ) { - for( std::vector::const_iterator registered_action = registered_actions.begin(); - registered_action != registered_actions.end(); - ++registered_action ) { + for( const auto ®istered_action : registered_actions ) { - const std::vector &events = inp_mngr.get_input_for_action( *registered_action, + const std::vector &events = inp_mngr.get_input_for_action( registered_action, category ); for( const auto &events_event : events ) { // Only consider keyboard events without modifiers - if( events_event.type == CATA_INPUT_KEYBOARD && events_event.modifiers.empty() ) { + if( events_event.type == input_event_t::keyboard && events_event.modifiers.empty() ) { requested_keys.erase( std::remove_if( requested_keys.begin(), requested_keys.end(), ContainsPredicate, char>( events_event.sequence ) ), @@ -737,7 +733,7 @@ std::string input_context::get_available_single_char_hotkeys( std::string reques const input_context::input_event_filter input_context::disallow_lower_case = []( const input_event &evt ) -> bool { - return evt.type != CATA_INPUT_KEYBOARD || + return evt.type != input_event_t::keyboard || // std::lower from is undefined outside unsigned char range // and std::lower from may throw bad_cast for some locales evt.get_first_input() < 'a' || evt.get_first_input() > 'z'; @@ -770,7 +766,7 @@ std::string input_context::get_desc( const std::string &action_descriptor, if( evt_filter( event ) && // Only display gamepad buttons if a gamepad is available. - ( gamepad_available() || event.type != CATA_INPUT_GAMEPAD ) ) { + ( gamepad_available() || event.type != input_event_t::gamepad ) ) { inputs_to_show.push_back( event ); } @@ -816,10 +812,10 @@ std::string input_context::get_desc( const std::string &action_descriptor, for( const auto &evt : events ) { if( evt_filter( evt ) && // Only display gamepad buttons if a gamepad is available. - ( gamepad_available() || evt.type != CATA_INPUT_GAMEPAD ) ) { + ( gamepad_available() || evt.type != input_event_t::gamepad ) ) { na = false; - if( evt.type == CATA_INPUT_KEYBOARD && evt.sequence.size() == 1 ) { + if( evt.type == input_event_t::keyboard && evt.sequence.size() == 1 ) { const int ch = evt.get_first_input(); const std::string key = utf32_to_utf8( ch ); const auto pos = ci_find_substr( text, key ); @@ -857,11 +853,11 @@ const std::string &input_context::handle_input( const int timeout ) if( timeout >= 0 ) { inp_mngr.set_timeout( timeout ); } - next_action.type = CATA_INPUT_ERROR; + next_action.type = input_event_t::error; const std::string *result = &CATA_ERROR; while( true ) { next_action = inp_mngr.get_input_event(); - if( next_action.type == CATA_INPUT_TIMEOUT ) { + if( next_action.type == input_event_t::timeout ) { result = &TIMEOUT; break; } @@ -877,7 +873,7 @@ const std::string &input_context::handle_input( const int timeout ) break; } - if( next_action.type == CATA_INPUT_MOUSE ) { + if( next_action.type == input_event_t::mouse ) { if( !handling_coordinate_input && action == CATA_ERROR ) { continue; // Ignore this mouse input. } @@ -1124,7 +1120,7 @@ action_id input_context::display_menu( const bool permit_execute_action ) mvwprintz( w_help, point( 52, i + 10 ), col, "%s", get_desc( action_id ) ); } - // spopup.query_string() will call wrefresh( w_help ) + // spopup.query_string() will call wnoutrefresh( w_help ) spopup.text( filter_phrase ); spopup.query_string( false, true ); }; @@ -1287,8 +1283,6 @@ action_id input_context::display_menu( const bool permit_execute_action ) } else if( changed ) { inp_mngr.action_contexts.swap( old_action_contexts ); } - werase( w_help ); - wrefresh( w_help ); return action_to_execute; } @@ -1311,13 +1305,13 @@ void input_manager::wait_for_any_key() while( true ) { const input_event evt = inp_mngr.get_input_event(); switch( evt.type ) { - case CATA_INPUT_KEYBOARD: + case input_event_t::keyboard: if( !evt.sequence.empty() ) { return; } break; // errors are accepted as well to avoid an infinite loop - case CATA_INPUT_ERROR: + case input_event_t::error: return; default: break; @@ -1355,6 +1349,39 @@ cata::optional input_context::get_coordinates( const catacurses::windo } #endif +std::pair input_context::get_coordinates_text( const catacurses::window + &capture_win ) const +{ +#if !defined( TILES ) + ( void ) capture_win; + return std::make_pair( point(), false ); +#else + if( !coordinate_input_received ) { + return std::make_pair( point(), false ); + } + + const window_dimensions dim = get_window_dimensions( capture_win ); + + const int &fw = dim.scaled_font_size.x; + const int &fh = dim.scaled_font_size.y; + const point &win_min = dim.window_pos_pixel; + const point &win_size = dim.window_size_pixel; + const point win_max = win_min + win_size; + + const rectangle win_bounds( win_min, win_max ); + + const point screen_pos = coordinate - win_min; + const point selected( divide_round_down( screen_pos.x, fw ), + divide_round_down( screen_pos.y, fh ) ); + + if( !win_bounds.contains_half_open( coordinate ) ) { + return std::make_pair( selected, false ); + } + + return std::make_pair( selected, true ); +#endif +} + std::string input_context::get_action_name( const std::string &action_id ) const { // 1) Check action name overrides specific to this input_context diff --git a/src/input.h b/src/input.h index c8e434343c2c6..5d7a7be5de52a 100644 --- a/src/input.h +++ b/src/input.h @@ -76,12 +76,12 @@ 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 }; -enum input_event_t { - CATA_INPUT_ERROR, - CATA_INPUT_TIMEOUT, - CATA_INPUT_KEYBOARD, - CATA_INPUT_GAMEPAD, - CATA_INPUT_MOUSE +enum class input_event_t : int { + error, + timeout, + keyboard, + gamepad, + mouse }; /** @@ -116,7 +116,7 @@ struct input_event { #endif input_event() : edit_refresh( false ) { - type = CATA_INPUT_ERROR; + type = input_event_t::error; #if defined(__ANDROID__) shortcut_last_used_action_counter = 0; #endif @@ -634,6 +634,8 @@ class input_context */ input_event get_raw_input(); + std::pair get_coordinates_text( const catacurses::window &capture_win ) const; + /** * Get the human-readable name for an action. */ @@ -675,7 +677,7 @@ class input_context * Sets input polling timeout as appropriate for the current interface system. * Use this method to set timeouts when using input_context, rather than calling * the old timeout() method or using input_manager::(re)set_timeout, as using - * this method will cause CATA_INPUT_TIMEOUT events to be generated correctly, + * this method will cause input_event_t::timeout events to be generated correctly, * and will reset timeout correctly when a new input context is entered. */ void set_timeout( int val ); diff --git a/src/inventory.cpp b/src/inventory.cpp index 7389ebe795c1a..1f766607ec895 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -35,6 +35,14 @@ #include "point.h" #include "inventory_ui.h" // auto inventory blocking +static const itype_id itype_aspirin( "aspirin" ); +static const itype_id itype_codeine( "codeine" ); +static const itype_id itype_heroin( "heroin" ); +static const itype_id itype_salt_water( "salt_water" ); +static const itype_id itype_tramadol( "tramadol" ); +static const itype_id itype_oxycodone( "oxycodone" ); +static const itype_id itype_water( "water" ); + static const std::string flag_LEAK_ALWAYS( "LEAK_ALWAYS" ); static const std::string flag_LEAK_DAM( "LEAK_DAM" ); static const std::string flag_WATERPROOF( "WATERPROOF" ); @@ -63,9 +71,9 @@ invlet_favorites::invlet_favorites( const std::unordered_map pts, const Characte if( pl && !i.is_owned_by( *pl, true ) ) { continue; } - if( !i.made_of( LIQUID ) ) { + if( !i.made_of( phase_id::LIQUID ) ) { add_item( i, false, assign_invlet ); } } @@ -480,7 +488,7 @@ void inventory::form_from_map( map &m, std::vector pts, const Characte auto toilet = m.i_at( p ); auto water = toilet.end(); for( auto candidate = toilet.begin(); candidate != toilet.end(); ++candidate ) { - if( candidate->typeId() == "water" ) { + if( candidate->typeId() == itype_water ) { water = candidate; break; } @@ -494,7 +502,7 @@ void inventory::form_from_map( map &m, std::vector pts, const Characte if( m.furn( p ).obj().examine == &iexamine::keg ) { auto liq_contained = m.i_at( p ); for( auto &i : liq_contained ) { - if( i.made_of( LIQUID ) ) { + if( i.made_of( phase_id::LIQUID ) ) { add_item( i ); } } @@ -529,18 +537,23 @@ void inventory::form_from_map( map &m, std::vector pts, const Characte if( faupart ) { for( const auto &it : veh->fuels_left() ) { item fuel( it.first, 0 ); - if( fuel.made_of( LIQUID ) ) { + if( fuel.made_of( phase_id::LIQUID ) ) { fuel.charges = it.second; add_item( fuel ); } } } - + const auto item_with_battery = []( const std::string & id, const int qty ) { + item it( id ); + item it_batt( it.magazine_default() ); + it_batt.ammo_set( it_batt.ammo_default(), qty ); + it.put_in( it_batt, item_pocket::pocket_type::MAGAZINE_WELL ); + it.item_tags.insert( "PSEUDO" ); + return it; + }; + int veh_battery = veh->fuel_left( itype_id( "battery" ), true ); if( kpart ) { - int veh_battery = veh->fuel_left( "battery", true ); - item hotplate( "hotplate", 0 ); - hotplate.ammo_set( hotplate.ammo_default(), veh_battery ); - hotplate.item_tags.insert( "PSEUDO" ); + item hotplate = item_with_battery( "hotplate", veh_battery ); add_item( hotplate ); item pot( "pot", 0 ); @@ -551,63 +564,37 @@ void inventory::form_from_map( map &m, std::vector pts, const Characte add_item( pan ); } if( weldpart ) { - int veh_battery = veh->fuel_left( "battery", true ); - item welder( "welder", 0 ); - welder.ammo_set( welder.ammo_default(), veh_battery ); - welder.item_tags.insert( "PSEUDO" ); + item welder = item_with_battery( "welder", veh_battery ); add_item( welder ); - - item soldering_iron( "soldering_iron", 0 ); - soldering_iron.ammo_set( soldering_iron.ammo_default(), veh_battery ); - soldering_iron.item_tags.insert( "PSEUDO" ); + item soldering_iron = item_with_battery( "soldering_iron", veh_battery ); add_item( soldering_iron ); } if( craftpart ) { - int veh_battery = veh->fuel_left( "battery", true ); - item vac_sealer( "vac_sealer", 0 ); - vac_sealer.ammo_set( vac_sealer.ammo_default(), veh_battery ); - vac_sealer.item_tags.insert( "PSEUDO" ); + item vac_sealer = item_with_battery( "vac_sealer", veh_battery ); add_item( vac_sealer ); - item dehydrator( "dehydrator", 0 ); - dehydrator.ammo_set( dehydrator.ammo_default(), veh_battery ) ; - dehydrator.item_tags.insert( "PSEUDO" ); + item dehydrator = item_with_battery( "dehydrator", veh_battery ); add_item( dehydrator ); - item food_processor( "food_processor", 0 ); - food_processor.ammo_set( food_processor.ammo_default(), veh_battery ) ; - food_processor.item_tags.insert( "PSEUDO" ); + item food_processor = item_with_battery( "food_processor", veh_battery ); add_item( food_processor ); - item press( "press", 0 ); - press.ammo_set( press.ammo_default(), veh_battery ); - press.item_tags.insert( "PSEUDO" ); + item press = item_with_battery( "press", veh_battery ); add_item( press ); } if( forgepart ) { - int veh_battery = veh->fuel_left( "battery", true ); - item forge( "forge", 0 ); - forge.ammo_set( forge.ammo_default(), veh_battery ); - forge.item_tags.insert( "PSEUDO" ); + item forge = item_with_battery( "forge", veh_battery ); add_item( forge ); } if( kilnpart ) { - int veh_battery = veh->fuel_left( "battery", true ); - item kiln( "kiln", 0 ); - kiln.ammo_set( kiln.ammo_default(), veh_battery ); - kiln.item_tags.insert( "PSEUDO" ); + item kiln = item_with_battery( "kiln", veh_battery ); add_item( kiln ); } if( chempart ) { - int veh_battery = veh->fuel_left( "battery", true ); - item chemistry_set( "chemistry_set", 0 ); - chemistry_set.ammo_set( chemistry_set.ammo_default(), veh_battery ); - chemistry_set.item_tags.insert( "PSEUDO" ); + item chemistry_set = item_with_battery( "chemistry_set", veh_battery ); add_item( chemistry_set ); - item electrolysis_kit( "electrolysis_kit", 0 ); - electrolysis_kit.ammo_set( electrolysis_kit.ammo_default(), veh_battery ); - electrolysis_kit.item_tags.insert( "PSEUDO" ); + item electrolysis_kit = item_with_battery( "electrolysis_kit", veh_battery ); add_item( electrolysis_kit ); } } @@ -770,7 +757,7 @@ int inventory::position_by_type( const itype_id &type ) const return INT_MIN; } -std::list inventory::use_amount( itype_id it, int quantity, +std::list inventory::use_amount( const itype_id &it, int quantity, const std::function &filter ) { items.sort( stack_compare ); @@ -848,9 +835,9 @@ bool inventory::has_enough_painkiller( int pain ) const { for( const auto &elem : items ) { const item &it = elem.front(); - if( ( pain <= 35 && it.typeId() == "aspirin" ) || - ( pain >= 50 && it.typeId() == "oxycodone" ) || - it.typeId() == "tramadol" || it.typeId() == "codeine" ) { + if( ( pain <= 35 && it.typeId() == itype_aspirin ) || + ( pain >= 50 && it.typeId() == itype_oxycodone ) || + it.typeId() == itype_tramadol || it.typeId() == itype_codeine ) { return true; } } @@ -864,15 +851,15 @@ item *inventory::most_appropriate_painkiller( int pain ) for( auto &elem : items ) { int diff = 9999; itype_id type = elem.front().typeId(); - if( type == "aspirin" ) { + if( type == itype_aspirin ) { diff = std::abs( pain - 15 ); - } else if( type == "codeine" ) { + } else if( type == itype_codeine ) { diff = std::abs( pain - 30 ); - } else if( type == "oxycodone" ) { + } else if( type == itype_oxycodone ) { diff = std::abs( pain - 60 ); - } else if( type == "heroin" ) { + } else if( type == itype_heroin ) { diff = std::abs( pain - 100 ); - } else if( type == "tramadol" ) { + } else if( type == itype_tramadol ) { diff = std::abs( pain - 40 ) / 2; // Bonus since it's long-acting } @@ -895,11 +882,15 @@ void inventory::rust_iron_items() //Passivation layer prevents further rusting one_in( 500 ) && //Scale with volume, bigger = slower (see #24204) - one_in( static_cast( 14 * std::cbrt( 0.5 * std::max( 0.05, - static_cast( elem_stack_iter.base_volume().value() ) / 250 ) ) ) ) && + one_in( + static_cast( + 14 * std::cbrt( + 0.5 * std::max( + 0.05, static_cast( + elem_stack_iter.base_volume().value() ) / 250 ) ) ) ) && // ^season length ^14/5*0.75/pi (from volume of sphere) - g->m.water_from( g->u.pos() ).typeId() == - "salt_water" ) { //Freshwater without oxygen rusts slower than air + //Freshwater without oxygen rusts slower than air + g->m.water_from( g->u.pos() ).typeId() == itype_salt_water ) { elem_stack_iter.inc_damage( DT_ACID ); // rusting never completely destroys an item add_msg( m_bad, _( "Your %s is damaged by rust." ), elem_stack_iter.tname() ); } @@ -1036,7 +1027,7 @@ void inventory::assign_empty_invlet( item &it, const Character &p, const bool fo invlets_bitset cur_inv = p.allocated_invlets(); itype_id target_type = it.typeId(); - for( auto iter : assigned_invlet ) { + for( const auto &iter : assigned_invlet ) { if( iter.second == target_type && !cur_inv[iter.first] ) { it.invlet = iter.first; return; diff --git a/src/inventory.h b/src/inventory.h index a7aed98076f42..1cfd9ebe899c0 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -98,7 +98,7 @@ class inventory : public visitable std::map assigned_invlet; inventory(); - inventory( inventory && ) = default; + inventory( inventory && ) noexcept = default; inventory( const inventory & ) = default; inventory &operator=( inventory && ) = default; inventory &operator=( const inventory & ) = default; @@ -170,7 +170,7 @@ class inventory : public visitable // Below, "amount" refers to quantity // "charges" refers to charges - std::list use_amount( itype_id it, int quantity, + std::list use_amount( const itype_id &it, int quantity, const std::function &filter = return_true ); bool has_tools( const itype_id &it, int quantity, @@ -234,7 +234,7 @@ class inventory : public visitable private: invlet_favorites invlet_cache; - char find_usable_cached_invlet( const std::string &item_type ); + char find_usable_cached_invlet( const itype_id &item_type ); invstack items; diff --git a/src/inventory_ui.cpp b/src/inventory_ui.cpp index f42ccbbaaaf0b..84cba7e2634c1 100644 --- a/src/inventory_ui.cpp +++ b/src/inventory_ui.cpp @@ -87,7 +87,6 @@ class selection_column_preset : public inventory_selector_preset { public: selection_column_preset() = default; - std::string get_caption( const inventory_entry &entry ) const override { std::string res; const size_t available_count = entry.get_available_count(); @@ -103,10 +102,10 @@ class selection_column_preset : public inventory_selector_preset if( item->is_money() ) { assert( available_count == entry.get_stack_size() ); if( entry.chosen_count > 0 && entry.chosen_count < available_count ) { - res += item->display_money( available_count, entry.get_total_charges(), + res += item->display_money( available_count, item->ammo_remaining(), entry.get_selected_charges() ); } else { - res += item->display_money( available_count, entry.get_total_charges() ); + res += item->display_money( available_count, item->ammo_remaining() ); } } else { res += item->display_name( available_count ); @@ -264,7 +263,7 @@ std::string inventory_selector_preset::get_caption( const inventory_entry &entry const size_t count = entry.get_stack_size(); std::string disp_name; if( entry.any_item()->is_money() ) { - disp_name = entry.any_item()->display_money( count, entry.get_total_charges() ); + disp_name = entry.any_item()->display_money( count, entry.any_item()->ammo_remaining() ); } else { disp_name = entry.any_item()->display_name( count ); } @@ -700,6 +699,58 @@ void inventory_column::on_input( const inventory_input &input ) } } +void inventory_column::order_by_parent() +{ + std::vector base_entries; + std::vector child_entries; + for( const inventory_entry &entry : entries ) { + if( entry.is_item() && entry.locations.front().where() == + item_location::type::container ) { + child_entries.push_back( entry ); + } else { + base_entries.push_back( entry ); + } + } + + int tries = 0; + const int max_tries = entries.size() * 2; + while( !child_entries.empty() ) { + const inventory_entry &possible = child_entries.back(); + const item_location parent = possible.locations.front().parent_item(); + bool found = false; + for( auto base_entry_iter = base_entries.begin(); base_entry_iter != base_entries.end(); ) { + if( base_entry_iter->is_item() ) { + for( const item_location &loc : base_entry_iter->locations ) { + if( loc == parent ) { + base_entries.insert( base_entry_iter + 1, possible ); + child_entries.pop_back(); + found = true; + break; + } + } + if( found ) { + tries = 0; + break; + } + } + ++base_entry_iter; + } + if( !found ) { + // move it to the front of the vector to check it again later + child_entries.insert( child_entries.begin(), possible ); + child_entries.pop_back(); + tries++; + } + if( tries > max_tries ) { + // the parent might not be in the list, so we add it to the top + base_entries.insert( base_entries.begin(), child_entries.begin(), child_entries.end() ); + child_entries.clear(); + } + } + + entries = base_entries; +} + void inventory_column::add_entry( const inventory_entry &entry ) { if( std::find( entries.begin(), entries.end(), entry ) != entries.end() ) { @@ -877,7 +928,7 @@ int inventory_column::reassign_custom_invlets( const player &p, int min_invlet, return cur_invlet; } -static int num_parents( item_location loc ) +static int num_parents( const item_location &loc ) { if( loc.where() != item_location::type::container ) { return 0; @@ -885,7 +936,7 @@ static int num_parents( item_location loc ) return 2 + num_parents( loc.parent_item() ); } -void inventory_column::draw( const catacurses::window &win, size_t x, size_t y ) const +void inventory_column::draw( const catacurses::window &win, size_t x, size_t y ) { if( !visible() ) { return; @@ -901,7 +952,7 @@ void inventory_column::draw( const catacurses::window &win, size_t x, size_t y ) // Do the actual drawing for( size_t index = page_offset, line = 0; index < entries.size() && line < entries_per_page; ++index, ++line ) { - const inventory_entry &entry = entries[index]; + inventory_entry &entry = entries[index]; const inventory_column::entry_cell_cache_t &entry_cell_cache = get_entry_cell_cache( index ); if( !entry ) { @@ -920,8 +971,13 @@ void inventory_column::draw( const catacurses::window &win, size_t x, size_t y ) const bool selected = active && is_selected( entry ); + entry.drawn_info.text_x_start = x1; + const int hx_max = x + get_width() + contained_offset; + entry.drawn_info.text_x_end = hx_max; + entry.drawn_info.y = yy; + if( selected && visible_cells() > 1 ) { - for( int hx = x1, hx_max = x + get_width() + contained_offset; hx < hx_max; ++hx ) { + for( int hx = x1; hx < hx_max; ++hx ) { mvwputch( win, point( hx, yy ), h_white, ' ' ); } } @@ -1224,12 +1280,12 @@ void inventory_selector::add_items( inventory_column &target_column, } } -void inventory_selector::add_contained_items( item_location container ) +void inventory_selector::add_contained_items( item_location &container ) { add_contained_items( container, own_inv_column ); } -void inventory_selector::add_contained_items( item_location container, inventory_column &column ) +void inventory_selector::add_contained_items( item_location &container, inventory_column &column ) { for( item *it : container->contents.all_items_top() ) { item_location child( container, it ); @@ -1361,6 +1417,26 @@ inventory_entry *inventory_selector::find_entry_by_invlet( int invlet ) const return nullptr; } +inventory_entry *inventory_selector::find_entry_by_coordinate( point coordinate ) const +{ + std::vector columns = get_visible_columns(); + const auto filter_to_selected = [&]( const inventory_entry & entry ) { + return entry.is_selectable(); + }; + for( inventory_column *column : columns ) { + std::vector entries = column->get_entries( filter_to_selected ); + for( inventory_entry *entry : entries ) { + if( entry->drawn_info.text_x_start <= coordinate.x && + coordinate.x <= entry->drawn_info.text_x_end && + entry->drawn_info.y == coordinate.y ) { + return entry; + } + } + } + return nullptr; +} + + // FIXME: if columns are merged due to low screen width, they will not be splitted // once screen width becomes enough for the columns. void inventory_selector::rearrange_columns( size_t client_width ) @@ -1597,7 +1673,7 @@ void inventory_selector::resize_window( int width, int height ) } } -void inventory_selector::refresh_window() const +void inventory_selector::refresh_window() { assert( w_inv ); @@ -1608,7 +1684,7 @@ void inventory_selector::refresh_window() const draw_columns( w_inv ); draw_footer( w_inv ); - wrefresh( w_inv ); + wnoutrefresh( w_inv ); } void inventory_selector::set_filter() @@ -1660,7 +1736,7 @@ std::string inventory_selector::get_filter() const return filter; } -void inventory_selector::draw_columns( const catacurses::window &w ) const +void inventory_selector::draw_columns( const catacurses::window &w ) { const auto columns = get_visible_columns(); @@ -1775,6 +1851,7 @@ inventory_selector::inventory_selector( player &u, const inventory_selector_pres ctxt.register_action( "PREV_TAB", to_translation( "Page up" ) ); ctxt.register_action( "HOME", to_translation( "Home" ) ); ctxt.register_action( "END", to_translation( "End" ) ); + ctxt.register_action( "SELECT" ); ctxt.register_action( "HELP_KEYBINDINGS" ); ctxt.register_action( "VIEW_CATEGORY_MODE" ); ctxt.register_action( "ANY_INPUT" ); // For invlets @@ -1805,12 +1882,20 @@ inventory_input inventory_selector::get_input() res.action = ctxt.handle_input(); res.ch = ctxt.get_raw_input().get_first_input(); - res.entry = find_entry_by_invlet( res.ch ); + std::pair ct_pair = ctxt.get_coordinates_text( w_inv ); + if( ct_pair.second ) { + point p = ct_pair.first; + res.entry = find_entry_by_coordinate( p ); + if( res.entry != nullptr ) { + return res; + } + } + + res.entry = find_entry_by_invlet( res.ch ); if( res.entry != nullptr && !res.entry->is_selectable() ) { res.entry = nullptr; } - return res; } @@ -1936,6 +2021,7 @@ void inventory_selector::toggle_categorize_contained() &item_category_id( "ITEMS_WORN" ).obj() ); } } + own_gear_column.order_by_parent(); own_inv_column.clear(); } @@ -2405,7 +2491,7 @@ void inventory_drop_selector::set_chosen_count( inventory_entry &entry, size_t c if( count == 0 ) { entry.chosen_count = 0; - for( item_location loc : entry.locations ) { + for( const item_location &loc : entry.locations ) { for( auto iter = dropping.begin(); iter != dropping.end(); ) { if( iter->first == loc ) { dropping.erase( iter ); @@ -2417,9 +2503,9 @@ void inventory_drop_selector::set_chosen_count( inventory_entry &entry, size_t c } else { entry.chosen_count = std::min( std::min( count, max_chosen_count ), entry.get_available_count() ); if( it->count_by_charges() ) { - dropping.emplace_back( it, entry.chosen_count ); + dropping.emplace_back( it, static_cast( entry.chosen_count ) ); } else { - for( item_location loc : entry.locations ) { + for( const item_location &loc : entry.locations ) { if( count == 0 ) { break; } diff --git a/src/inventory_ui.h b/src/inventory_ui.h index 661d384e379a8..2998097979b73 100644 --- a/src/inventory_ui.h +++ b/src/inventory_ui.h @@ -48,6 +48,12 @@ struct inventory_input; using drop_location = std::pair; using drop_locations = std::list; +struct inventory_entry_drawn_info { + int text_x_start; + int text_x_end; + int y; +}; + class inventory_entry { public: @@ -123,6 +129,8 @@ class inventory_entry nc_color get_invlet_color() const; void update_cache(); + inventory_entry_drawn_info drawn_info; + private: const item_category *custom_category = nullptr; bool enabled = true; @@ -285,9 +293,12 @@ class inventory_column std::vector get_entries( const std::function &filter_func ) const; + // orders the child entries in this column to be under their parent + void order_by_parent(); + inventory_entry *find_by_invlet( int invlet ) const; - void draw( const catacurses::window &win, size_t x, size_t y ) const; + void draw( const catacurses::window &win, size_t x, size_t y ); void add_entry( const inventory_entry &entry ); void move_entries_to( inventory_column &dest ); @@ -356,7 +367,7 @@ class inventory_column } else { return preset.indent_entries(); } - }; + } void set_indent_entries_override( bool entry_override ) { indent_entries_override = entry_override; @@ -471,8 +482,8 @@ class inventory_selector inventory_selector( player &u, const inventory_selector_preset &preset = default_preset ); virtual ~inventory_selector(); /** These functions add items from map / vehicles. */ - void add_contained_items( item_location container ); - void add_contained_items( item_location container, inventory_column &column ); + void add_contained_items( item_location &container ); + void add_contained_items( item_location &container, inventory_column &column ); void add_character_items( Character &character ); void add_map_items( const tripoint &target ); void add_vehicle_items( const tripoint &target ); @@ -568,6 +579,8 @@ class inventory_selector /** @return an entry from all entries by its invlet */ inventory_entry *find_entry_by_invlet( int invlet ) const; + inventory_entry *find_entry_by_coordinate( point coordinate ) const; + const std::vector &get_all_columns() const { return columns; } @@ -580,11 +593,11 @@ class inventory_selector void prepare_layout(); void resize_window( int width, int height ); - void refresh_window() const; + void refresh_window(); void draw_header( const catacurses::window &w ) const; void draw_footer( const catacurses::window &w ) const; - void draw_columns( const catacurses::window &w ) const; + void draw_columns( const catacurses::window &w ); void draw_frame( const catacurses::window &w ) const; public: @@ -756,5 +769,4 @@ class inventory_drop_selector : public inventory_multiselector std::vector> dropping; size_t max_chosen_count; }; - #endif // CATA_SRC_INVENTORY_UI_H diff --git a/src/item.cpp b/src/item.cpp index 968c7a38e8b03..431bb45ec6a44 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -99,6 +99,10 @@ static const std::string CLOTHING_MOD_VAR_PREFIX( "clothing_mod_" ); static const ammotype ammo_battery( "battery" ); static const ammotype ammo_plutonium( "plutonium" ); +static const item_category_id item_category_drugs( "drugs" ); +static const item_category_id item_category_food( "food" ); +static const item_category_id item_category_maps( "maps" ); + static const efftype_id effect_cig( "cig" ); static const efftype_id effect_shakes( "shakes" ); static const efftype_id effect_sleep( "sleep" ); @@ -106,6 +110,26 @@ static const efftype_id effect_weed_high( "weed_high" ); static const fault_id fault_gun_blackpowder( "fault_gun_blackpowder" ); +static const gun_mode_id gun_mode_REACH( "REACH" ); + +static const itype_id itype_adv_UPS_off( "adv_UPS_off" ); +static const itype_id itype_barrel_small( "barrel_small" ); +static const itype_id itype_blood( "blood" ); +static const itype_id itype_brass_catcher( "brass_catcher" ); +static const itype_id itype_bullet_crossbow( "bullet_crossbow" ); +static const itype_id itype_cig_butt( "cig_butt" ); +static const itype_id itype_cig_lit( "cig_lit" ); +static const itype_id itype_cigar_butt( "cigar_butt" ); +static const itype_id itype_cigar_lit( "cigar_lit" ); +static const itype_id itype_hand_crossbow( "hand_crossbow" ); +static const itype_id itype_joint_roach( "joint_roach" ); +static const itype_id itype_plut_cell( "plut_cell" ); +static const itype_id itype_rad_badge( "rad_badge" ); +static const itype_id itype_tuned_mechanism( "tuned_mechanism" ); +static const itype_id itype_UPS( "UPS" ); +static const itype_id itype_UPS_off( "UPS_off" ); +static const itype_id itype_waterproof_gunmod( "waterproof_gunmod" ); + static const skill_id skill_cooking( "cooking" ); static const skill_id skill_melee( "melee" ); static const skill_id skill_survival( "survival" ); @@ -114,7 +138,7 @@ static const skill_id skill_weapon( "weapon" ); static const quality_id qual_JACK( "JACK" ); static const quality_id qual_LIFT( "LIFT" ); -static const species_id ROBOT( "ROBOT" ); +static const species_id species_ROBOT( "ROBOT" ); static const std::string trait_flag_CANNIBAL( "CANNIBAL" ); @@ -128,7 +152,6 @@ static const trait_id trait_LIGHTWEIGHT( "LIGHTWEIGHT" ); static const trait_id trait_SAPROVORE( "SAPROVORE" ); static const trait_id trait_SMALL_OK( "SMALL_OK" ); static const trait_id trait_SMALL2( "SMALL2" ); -static const trait_id trait_SQUEAMISH( "SQUEAMISH" ); static const trait_id trait_TOLERANCE( "TOLERANCE" ); static const trait_id trait_WOOLALLERGY( "WOOLALLERGY" ); @@ -139,7 +162,6 @@ static const std::string flag_BIPOD( "BIPOD" ); static const std::string flag_BYPRODUCT( "BYPRODUCT" ); static const std::string flag_CABLE_SPOOL( "CABLE_SPOOL" ); static const std::string flag_CANNIBALISM( "CANNIBALISM" ); -static const std::string flag_CASING( "CASING" ); static const std::string flag_CHARGEDIM( "CHARGEDIM" ); static const std::string flag_COLD( "COLD" ); static const std::string flag_COLLAPSIBLE_STOCK( "COLLAPSIBLE_STOCK" ); @@ -180,8 +202,6 @@ static const std::string flag_LIQUID( "LIQUID" ); static const std::string flag_LIQUIDCONT( "LIQUIDCONT" ); static const std::string flag_LITCIG( "LITCIG" ); static const std::string flag_MAG_BELT( "MAG_BELT" ); -static const std::string flag_MAG_DESTROY( "MAG_DESTROY" ); -static const std::string flag_MAG_EJECT( "MAG_EJECT" ); static const std::string flag_MELTS( "MELTS" ); static const std::string flag_MUSHY( "MUSHY" ); static const std::string flag_NANOFAB_TEMPLATE( "NANOFAB_TEMPLATE" ); @@ -243,7 +263,7 @@ static const std::string flag_WATER_EXTINGUISH( "WATER_EXTINGUISH" ); static const std::string flag_WET( "WET" ); static const std::string flag_WIND_EXTINGUISH( "WIND_EXTINGUISH" ); -static const matec_id rapid_strike( "RAPID" ); +static const matec_id RAPID( "RAPID" ); class npc_class; @@ -351,16 +371,16 @@ item::item( const itype *type, time_point turn, int qty ) : type( type ), bday( if( has_flag( flag_NANOFAB_TEMPLATE ) ) { itype_id nanofab_recipe = item_group::item_from( "nanofab_recipes" ).typeId(); - set_var( "NANOFAB_ITEM_ID", nanofab_recipe ); + set_var( "NANOFAB_ITEM_ID", nanofab_recipe.str() ); } if( type->gun ) { - for( const std::string &mod : type->gun->built_in_mods ) { + for( const itype_id &mod : type->gun->built_in_mods ) { item it( mod, turn, qty ); it.item_tags.insert( "IRREMOVABLE" ); put_in( it, item_pocket::pocket_type::MOD ); } - for( const std::string &mod : type->gun->default_mods ) { + for( const itype_id &mod : type->gun->default_mods ) { put_in( item( mod, turn, qty ), item_pocket::pocket_type::MOD ); } @@ -389,7 +409,7 @@ item::item( const itype *type, time_point turn, int qty ) : type( type ), bday( snip_id = SNIPPET.random_id_from_category( type->snippet_category ); } - if( current_phase == PNULL ) { + if( current_phase == phase_id::PNULL ) { current_phase = type->phase; } // item always has any relic properties from itype. @@ -555,18 +575,23 @@ units::energy item::set_energy( const units::energy &qty ) item &item::ammo_set( const itype_id &ammo, int qty ) { + if( !ammo->ammo ) { + debugmsg( "can't set ammo %s in %s as it is not an ammo", ammo.c_str(), type_name() ); + return *this; + } + const ammotype &ammo_type = ammo->ammo->type; if( qty < 0 ) { // completely fill an integral or existing magazine if( magazine_integral() || magazine_current() ) { - qty = ammo_capacity(); + qty = ammo_capacity( ammo_type ); // else try to add a magazine using default ammo count property if set - } else if( magazine_default() != "null" ) { + } else if( !magazine_default().is_null() ) { item mag( magazine_default() ); if( mag.type->magazine->count > 0 ) { qty = mag.type->magazine->count; } else { - qty = mag.ammo_capacity(); + qty = mag.ammo_capacity( ammo_type ); } } } @@ -577,13 +602,13 @@ item &item::ammo_set( const itype_id &ammo, int qty ) } // handle reloadable tools and guns with no specific ammo type as special case - if( ( ( ammo == "null" || ammo == "NULL" ) && ammo_types().empty() ) || is_money() ) { + if( ammo.is_null() && ammo_types().empty() ) { if( magazine_integral() ) { if( is_tool() ) { curammo = nullptr; - charges = std::min( qty, ammo_capacity() ); + charges = std::min( qty, ammo_capacity( ammo_type ) ); } else if( is_gun() ) { - const item temp_ammo( ammo_default(), calendar::turn, std::min( qty, ammo_capacity() ) ); + const item temp_ammo( ammo_default(), calendar::turn, std::min( qty, ammo_capacity( ammo_type ) ) ); put_in( temp_ammo, item_pocket::pocket_type::MAGAZINE ); } } @@ -592,24 +617,21 @@ item &item::ammo_set( const itype_id &ammo, int qty ) // check ammo is valid for the item const itype *atype = item_controller->find_template( ammo ); - if( !atype->ammo || !ammo_types().count( atype->ammo->type ) ) { + if( atype->ammo && ammo_types().count( atype->ammo->type ) == 0 && + !magazine_compatible().count( atype->get_id() ) ) { debugmsg( "Tried to set invalid ammo of %s for %s", atype->nname( qty ), tname() ); return *this; } if( is_magazine() ) { ammo_unset(); - item set_ammo( ammo, calendar::turn, std::min( qty, ammo_capacity() ) ); + item set_ammo( ammo, calendar::turn, std::min( qty, ammo_capacity( ammo_type ) ) ); if( has_flag( flag_NO_UNLOAD ) ) { set_ammo.item_tags.insert( "NO_DROP" ); set_ammo.item_tags.insert( "IRREMOVABLE" ); } put_in( set_ammo, item_pocket::pocket_type::MAGAZINE ); - } else if( magazine_integral() ) { - const item temp_ammo( atype, calendar::turn, std::min( qty, ammo_capacity() ) ); - put_in( temp_ammo, item_pocket::pocket_type::MAGAZINE ); - } else { if( !magazine_current() ) { const itype *mag = find_type( magazine_default() ); @@ -625,7 +647,7 @@ item &item::ammo_set( const itype_id &ammo, int qty ) auto iter = type->magazines.find( atype->ammo->type ); if( iter == type->magazines.end() ) { debugmsg( "%s doesn't have a magazine for %s", - tname(), ammo ); + tname(), ammo.str() ); return *this; } std::vector opts( iter->second.begin(), iter->second.end() ); @@ -633,14 +655,14 @@ item &item::ammo_set( const itype_id &ammo, int qty ) return find_type( lhs )->magazine->capacity < find_type( rhs )->magazine->capacity; } ); mag = find_type( opts.back() ); - for( const std::string &e : opts ) { + for( const itype_id &e : opts ) { if( find_type( e )->magazine->capacity >= qty ) { mag = find_type( e ); break; } } } - put_in( item( mag ), item_pocket::pocket_type::MAGAZINE ); + put_in( item( mag ), item_pocket::pocket_type::MAGAZINE_WELL ); } item *mag_cur = magazine_current(); if( mag_cur != nullptr ) { @@ -655,6 +677,9 @@ item &item::ammo_unset() if( !is_tool() && !is_gun() && !is_magazine() ) { // do nothing } else if( is_magazine() ) { + if( is_money() ) { // charges are set wrong on cash cards. + charges = 0; + } contents.clear_items(); } else if( magazine_integral() ) { curammo = nullptr; @@ -706,9 +731,8 @@ item item::split( int qty ) bool item::is_null() const { - static const std::string s_null( "null" ); // used a lot, no need to repeat // Actually, type should never by null at all. - return ( type == nullptr || type == nullitem() || typeId() == s_null ); + return ( type == nullptr || type == nullitem() || typeId().is_null() ); } bool item::is_unarmed_weapon() const @@ -718,12 +742,12 @@ bool item::is_unarmed_weapon() const bool item::is_frozen_liquid() const { - return made_of( SOLID ) && made_of_from_type( LIQUID ); + return made_of( phase_id::SOLID ) && made_of_from_type( phase_id::LIQUID ); } -bool item::covers( const body_part bp ) const +bool item::covers( const bodypart_id &bp ) const { - return get_covered_body_parts().test( bp ); + return get_covered_body_parts().test( bp.id() ); } body_part_set item::get_covered_body_parts() const @@ -738,7 +762,7 @@ body_part_set item::get_covered_body_parts( const side s ) const if( is_gun() ) { // Currently only used for guns with the should strap mod, other guns might // go on another bodypart. - res.set( bp_torso ); + res.set( bodypart_str_id( "torso" ) ); } const islot_armor *armor = find_armor_data(); @@ -746,7 +770,7 @@ body_part_set item::get_covered_body_parts( const side s ) const return res; } - res |= armor->covers; + res.unify_set( armor->covers ); if( !armor->sided ) { return res; // Just ignore the side. @@ -758,17 +782,17 @@ body_part_set item::get_covered_body_parts( const side s ) const break; case side::LEFT: - res.reset( bp_arm_r ); - res.reset( bp_hand_r ); - res.reset( bp_leg_r ); - res.reset( bp_foot_r ); + res.reset( bodypart_str_id( "arm_r" ) ); + res.reset( bodypart_str_id( "hand_r" ) ); + res.reset( bodypart_str_id( "leg_r" ) ); + res.reset( bodypart_str_id( "foot_r" ) ); break; case side::RIGHT: - res.reset( bp_arm_l ); - res.reset( bp_hand_l ); - res.reset( bp_leg_l ); - res.reset( bp_foot_l ); + res.reset( bodypart_str_id( "arm_l" ) ); + res.reset( bodypart_str_id( "hand_l" ) ); + res.reset( bodypart_str_id( "leg_l" ) ); + res.reset( bodypart_str_id( "foot_l" ) ); break; } @@ -810,21 +834,21 @@ bool item::swap_side() bool item::is_worn_only_with( const item &it ) const { - return is_power_armor() && it.is_power_armor() && it.covers( bp_torso ); + return is_power_armor() && it.is_power_armor() && it.covers( bodypart_id( "torso" ) ); } -item item::in_its_container() const +item item::in_its_container( int qty ) const { - return in_container( type->default_container.value_or( "null" ) ); + return in_container( type->default_container.value_or( "null" ), qty ); } -item item::in_container( const itype_id &cont ) const +item item::in_container( const itype_id &cont, int qty ) const { - if( cont != "null" ) { + if( !cont.is_null() ) { item ret( cont, birthday() ); if( ret.has_pockets() ) { if( count_by_charges() ) { - ret.fill_with( *type, charges ); + ret.fill_with( *type, qty ); } else { ret.put_in( *this, item_pocket::pocket_type::CONTAINER ); } @@ -1227,11 +1251,14 @@ static int get_base_env_resist( const item &it ) { const islot_armor *t = it.find_armor_data(); if( t == nullptr ) { - return 0; + if( it.is_pet_armor() ) { + return it.type->pet_armor->env_resist * it.get_relative_health(); + } else { + return 0; + } } return t->env_resist * it.get_relative_health(); - } bool item::is_owned_by( const Character &c, bool available_to_take ) const @@ -1380,7 +1407,7 @@ double item::effective_dps( const player &guy, monster &mon ) const subtotal_damage = damage_per_hit * num_strikes; double subtotal_moves = moves_per_attack * num_strikes; - if( has_technique( rapid_strike ) ) { + if( has_technique( RAPID ) ) { monster temp_rs_mon = mon; damage_instance rs_base_damage; guy.roll_all_damage( crit, rs_base_damage, true, *this ); @@ -1459,7 +1486,7 @@ double item::average_dps( const player &guy ) const } void item::basic_info( std::vector &info, const iteminfo_query *parts, int batch, - bool debug /* debug */ ) const + bool /* debug */ ) const { const std::string space = " "; if( parts->test( iteminfo_parts::BASE_MATERIAL ) ) { @@ -1473,22 +1500,11 @@ void item::basic_info( std::vector &info, const iteminfo_query *parts, } } if( parts->test( iteminfo_parts::BASE_VOLUME ) ) { - int converted_volume_scale = 0; - const double converted_volume = round_up( convert_volume( volume().value(), - &converted_volume_scale ) * batch, 3 ); - iteminfo::flags f = iteminfo::lower_is_better | iteminfo::no_newline; - if( converted_volume_scale != 0 ) { - f |= iteminfo::is_three_decimal; - } - info.push_back( iteminfo( "BASE", _( "Volume: " ), - string_format( " %s", volume_units_abbr() ), - f, converted_volume ) ); + info.push_back( vol_to_info( "BASE", _( "Volume: " ), volume() * batch, 3 ) ); } if( parts->test( iteminfo_parts::BASE_WEIGHT ) ) { - info.push_back( iteminfo( "BASE", space + _( "Weight: " ), - string_format( " %s", weight_units() ), - iteminfo::lower_is_better | iteminfo::is_decimal, - convert_weight( weight() ) * batch ) ); + info.push_back( weight_to_info( "BASE", space + _( "Weight: " ), weight() * batch ) ); + info.back().bNewLine = true; } if( parts->test( iteminfo_parts::BASE_LENGTH ) && length() > 0_mm ) { info.push_back( iteminfo( "BASE", _( "Length: " ), @@ -1496,7 +1512,7 @@ void item::basic_info( std::vector &info, const iteminfo_query *parts, iteminfo::lower_is_better, convert_length( length() ) ) ); } - if( !owner.is_null() ) { + if( parts->test( iteminfo_parts::BASE_OWNER ) && !owner.is_null() ) { info.push_back( iteminfo( "BASE", string_format( _( "Owner: %s" ), _( get_owner_name() ) ) ) ); } @@ -1571,6 +1587,11 @@ void item::basic_info( std::vector &info, const iteminfo_query *parts, info.push_back( iteminfo( "BASE", _( "Amount: " ), "", iteminfo::no_flags, charges * batch ) ); } +} + +void item::debug_info( std::vector &info, const iteminfo_query *parts, int /* batch */, + bool debug ) const +{ if( debug && parts->test( iteminfo_parts::BASE_DEBUG ) ) { if( g != nullptr ) { info.push_back( iteminfo( "BASE", _( "age (hours): " ), "", iteminfo::lower_is_better, @@ -1592,6 +1613,7 @@ void item::basic_info( std::vector &info, const iteminfo_query *parts, } const item *food = get_food(); + const std::string space = " "; if( food && food->goes_bad() ) { info.push_back( iteminfo( "BASE", _( "age (turns): " ), "", iteminfo::lower_is_better, @@ -1656,6 +1678,11 @@ void item::med_info( const item *med_item, std::vector &info, const it std::abs( static_cast( med_item->charges ) * batch ) ) ); } + if( parts->test( iteminfo_parts::MED_CONSUME_TIME ) ) { + info.push_back( iteminfo( "MED", _( "Consume time: " ), + to_string( g->u.get_consume_time( *med_item ) ) ) ); + } + if( med_com->addict && parts->test( iteminfo_parts::DESCRIPTION_MED_ADDICTING ) ) { info.emplace_back( "DESCRIPTION", _( "* Consuming this item is addicting." ) ); } @@ -1687,7 +1714,6 @@ void item::food_info( const item *food_item, std::vector &info, } } - const std::string space = " "; if( max_nutr.kcal != 0 || food_item->get_comestible()->quench != 0 ) { if( parts->test( iteminfo_parts::FOOD_NUTRITION ) ) { info.push_back( iteminfo( "FOOD", _( "Calories (kcal): " ), @@ -1698,6 +1724,7 @@ void item::food_info( const item *food_item, std::vector &info, } } if( parts->test( iteminfo_parts::FOOD_QUENCH ) ) { + const std::string space = " "; info.push_back( iteminfo( "FOOD", space + _( "Quench: " ), food_item->get_comestible()->quench ) ); } @@ -1718,6 +1745,11 @@ void item::food_info( const item *food_item, std::vector &info, info.push_back( iteminfo( "FOOD", _( "Smells like: " ) + food_item->corpse->nname() ) ); } + if( parts->test( iteminfo_parts::FOOD_CONSUME_TIME ) ) { + info.push_back( iteminfo( "FOOD", _( "Consume time: " ), + to_string( g->u.get_consume_time( *food_item ) ) ) ); + } + auto format_vitamin = [&]( const std::pair &v, bool display_vitamins ) { const bool is_vitamin = v.first->type() == vitamin_type::VITAMIN; // only display vitamins that we actually require @@ -1758,7 +1790,8 @@ void item::food_info( const item *food_item, std::vector &info, insert_separation_line( info ); - if( g->u.allergy_type( *food_item ) != morale_type( "morale_null" ) ) { + if( parts->test( iteminfo_parts::FOOD_ALLERGEN ) + && g->u.allergy_type( *food_item ) != morale_type( "morale_null" ) ) { info.emplace_back( "DESCRIPTION", _( "* This food will cause an allergic reaction." ) ); } @@ -1852,13 +1885,13 @@ void item::magazine_info( std::vector &info, const iteminfo_query *par if( parts->test( iteminfo_parts::MAGAZINE_CAPACITY ) ) { for( const ammotype &at : ammo_types() ) { const std::string fmt = string_format( ngettext( " round of %s", - " rounds of %s", ammo_capacity() ), + " rounds of %s", ammo_capacity( at ) ), at->name() ); info.emplace_back( "MAGAZINE", _( "Capacity: " ), fmt, iteminfo::no_flags, - ammo_capacity() ); + ammo_capacity( at ) ); } } - if( parts->test( iteminfo_parts::MAGAZINE_RELOAD ) ) { + if( parts->test( iteminfo_parts::MAGAZINE_RELOAD ) && type->magazine ) { info.emplace_back( "MAGAZINE", _( "Reload time: " ), _( " moves per round" ), iteminfo::lower_is_better, type->magazine->reload_time ); } @@ -1868,11 +1901,12 @@ void item::magazine_info( std::vector &info, const iteminfo_query *par void item::ammo_info( std::vector &info, const iteminfo_query *parts, int /* batch */, bool /* debug */ ) const { - if( is_gun() || !ammo_data() || !parts->test( iteminfo_parts::AMMO_REMAINING_OR_TYPES ) ) { + // Skip this section for guns, items without ammo data, and items with "battery" ammo + if( is_gun() || !ammo_data() || ammo_data()->nname( 1 ) == "battery" || + !parts->test( iteminfo_parts::AMMO_REMAINING_OR_TYPES ) ) { return; } - const std::string space = " "; if( ammo_remaining() > 0 ) { info.emplace_back( "AMMO", _( "Ammunition: " ), ammo_data()->nname( ammo_remaining() ) ); @@ -1882,6 +1916,7 @@ void item::ammo_info( std::vector &info, const iteminfo_query *parts, const islot_ammo &ammo = *ammo_data()->ammo; if( !ammo.damage.empty() || ammo.force_stat_display ) { + const std::string space = " "; if( !ammo.damage.empty() && ammo.damage.damage_units.front().amount > 0 ) { if( parts->test( iteminfo_parts::AMMO_DAMAGE_VALUE ) ) { info.emplace_back( "AMMO", _( "Damage: " ), "", @@ -1951,26 +1986,46 @@ void item::gun_info( const item *mod, std::vector &info, const iteminf // if item is unloaded (or is RELOAD_AND_SHOOT) shows approximate stats using default ammo const item *loaded_mod = mod; item tmp; + const itype *curammo = nullptr; if( mod->ammo_required() && !mod->ammo_remaining() ) { tmp = *mod; - tmp.ammo_set( mod->magazine_current() ? tmp.common_ammo_default() : tmp.ammo_default() ); + itype_id default_ammo = mod->magazine_current() ? tmp.common_ammo_default() : tmp.ammo_default(); + if( !default_ammo.is_null() ) { + tmp.ammo_set( default_ammo ); + } else if( !tmp.magazine_default().is_null() ) { + item tmp_mag( tmp.magazine_default() ); + tmp_mag.ammo_set( tmp_mag.ammo_default() ); + tmp.put_in( tmp_mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } loaded_mod = &tmp; - if( loaded_mod->typeId() == "none" || loaded_mod == nullptr || - loaded_mod->ammo_data() == nullptr ) { - debugmsg( "loaded a nun or ammo_data() is nullptr" ); - return; + curammo = loaded_mod->ammo_data(); + // TODO: Should this be .is_null(), rather than comparing to "none"? + if( loaded_mod->typeId().str() == "none" || loaded_mod == nullptr || + curammo == nullptr ) { + if( magazine_current() ) { + const itype_id mag_default = magazine_current()->ammo_default(); + if( mag_default.is_null() ) { + debugmsg( "gun %s has magazine %s with no default ammo", + typeId().c_str(), magazine_current()->typeId().c_str() ); + return; + } + curammo = &mag_default.obj(); + } else { + debugmsg( "loaded a nun or ammo_data() is nullptr" ); + return; + } } if( parts->test( iteminfo_parts::GUN_DEFAULT_AMMO ) ) { insert_separation_line( info ); info.emplace_back( "GUN", _( "Weapon is not loaded, so stats below assume the default ammo: " ), string_format( "%s", - loaded_mod->ammo_data()->nname( 1 ) ) ); + curammo->nname( 1 ) ) ); } + } else { + curammo = loaded_mod->ammo_data(); } - const itype *curammo = loaded_mod->ammo_data(); - if( parts->test( iteminfo_parts::GUN_DAMAGE ) ) { insert_separation_line( info ); info.push_back( iteminfo( "GUN", _( "Ranged damage: " ), "", iteminfo::no_newline, @@ -2124,20 +2179,23 @@ void item::gun_info( const item *mod, std::vector &info, const iteminf string_format( "%s", mod->magazine_current()->tname() ) ); } - if( mod->ammo_capacity() && parts->test( iteminfo_parts::GUN_CAPACITY ) ) { + if( !mod->ammo_types().empty() && parts->test( iteminfo_parts::GUN_CAPACITY ) ) { for( const ammotype &at : mod->ammo_types() ) { const std::string fmt = string_format( ngettext( " round of %s", " rounds of %s", - mod->ammo_capacity() ), at->name() ); + mod->ammo_capacity( at ) ), at->name() ); info.emplace_back( "GUN", _( "Capacity: " ), fmt, iteminfo::no_flags, - mod->ammo_capacity() ); + mod->ammo_capacity( at ) ); } } } else if( parts->test( iteminfo_parts::GUN_TYPE ) ) { - info.emplace_back( "GUN", _( "Type: " ), enumerate_as_string( mod->ammo_types().begin(), - mod->ammo_types().end(), []( const ammotype & at ) { - return at->name(); - }, enumeration_conjunction::none ) ); + const std::set types_of_ammo = mod->ammo_types(); + if( !types_of_ammo.empty() ) { + info.emplace_back( "GUN", _( "Type: " ), enumerate_as_string( types_of_ammo.begin(), + types_of_ammo.end(), []( const ammotype & at ) { + return at->name(); + }, enumeration_conjunction::none ) ); + } } if( mod->ammo_data() && parts->test( iteminfo_parts::AMMO_REMAINING ) ) { @@ -2171,7 +2229,7 @@ void item::gun_info( const item *mod, std::vector &info, const iteminf info.emplace_back( tag, _( "Even chance of good hit at range: " ), _( "" ), iteminfo::no_flags, range ); int aim_mv = g->u.gun_engagement_moves( *mod, type.threshold ); - info.emplace_back( tag, _( "Time to reach aim level: " ), _( " moves " ), + info.emplace_back( tag, _( "Time to reach aim level: " ), _( " moves" ), iteminfo::lower_is_better, aim_mv ); } } @@ -2192,11 +2250,13 @@ void item::gun_info( const item *mod, std::vector &info, const iteminf if( !magazine_integral() && parts->test( iteminfo_parts::GUN_ALLOWED_MAGAZINES ) ) { insert_separation_line( info ); - const std::set compat = magazine_compatible(); - info.emplace_back( "DESCRIPTION", _( "Compatible magazines: " ) + - enumerate_as_string( compat.begin(), compat.end(), []( const itype_id & id ) { - return item::nname( id ); - } ) ); + const std::set compat = magazine_compatible(); + if( !compat.empty() ) { + info.emplace_back( "DESCRIPTION", _( "Compatible magazines: " ) + + enumerate_as_string( compat.begin(), compat.end(), []( const itype_id & id ) { + return item::nname( id ); + } ) ); + } } if( !gun.valid_mod_locations.empty() && parts->test( iteminfo_parts::DESCRIPTION_GUN_MODS ) ) { @@ -2238,6 +2298,12 @@ void item::gun_info( const item *mod, std::vector &info, const iteminf "Contains %i casings", mod->casings_count() ); info.emplace_back( "DESCRIPTION", string_format( tmp, mod->casings_count() ) ); } + + if( is_gun() && has_flag( flag_FIRE_TWOHAND ) && + parts->test( iteminfo_parts::DESCRIPTION_TWOHANDED ) ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "This weapon needs two free hands to fire." ) ) ); + } } void item::gunmod_info( std::vector &info, const iteminfo_query *parts, int /* batch */, @@ -2258,6 +2324,21 @@ void item::gunmod_info( std::vector &info, const iteminfo_query *parts _( "When attached to a gun, allows making " "reach melee attacks with it." ) ) ); } + + if( is_gunmod() && has_flag( flag_DISABLE_SIGHTS ) && + parts->test( iteminfo_parts::DESCRIPTION_GUNMOD_DISABLESSIGHTS ) ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "This mod obscures sights of the " + "base weapon." ) ) ); + } + + if( is_gunmod() && has_flag( flag_CONSUMABLE ) && + parts->test( iteminfo_parts::DESCRIPTION_GUNMOD_CONSUMABLE ) ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "This mod might suffer wear when firing " + "the base weapon." ) ) ); + } + if( mod.dispersion != 0 && parts->test( iteminfo_parts::GUNMOD_DISPERSION ) ) { info.push_back( iteminfo( "GUNMOD", _( "Dispersion modifier: " ), "", iteminfo::lower_is_better | iteminfo::show_plus, @@ -2323,9 +2404,7 @@ void item::gunmod_info( std::vector &info, const iteminfo_query *parts if( parts->test( iteminfo_parts::GUNMOD_USEDON ) ) { std::string used_on_str = _( "Used on: " ) + enumerate_as_string( mod.usable.begin(), mod.usable.end(), []( const gun_type_type & used_on ) { - std::string id_string = item_controller->has_template( used_on.name() ) ? nname( used_on.name(), - 1 ) : used_on.name(); - return string_format( "%s", id_string ); + return string_format( "%s", used_on.name() ); } ); info.push_back( iteminfo( "GUNMOD", used_on_str ) ); } @@ -2359,9 +2438,8 @@ void item::armor_protection_info( std::vector &info, const iteminfo_qu return; } - const std::string space = " "; - if( parts->test( iteminfo_parts::ARMOR_PROTECTION ) ) { + const std::string space = " "; info.push_back( iteminfo( "ARMOR", _( "Protection: Bash: " ), "", iteminfo::no_newline, bash_resist() ) ); info.push_back( iteminfo( "ARMOR", space + _( "Cut: " ), "", iteminfo::no_newline, cut_resist() ) ); @@ -2410,56 +2488,56 @@ void item::armor_info( std::vector &info, const iteminfo_query *parts, if( parts->test( iteminfo_parts::ARMOR_BODYPARTS ) ) { insert_separation_line( info ); std::string coverage = _( "Covers: " ); - if( covers( bp_head ) ) { + if( covers( bodypart_id( "head" ) ) ) { coverage += _( "The head. " ); } - if( covers( bp_eyes ) ) { + if( covers( bodypart_id( "eyes" ) ) ) { coverage += _( "The eyes. " ); } - if( covers( bp_mouth ) ) { + if( covers( bodypart_id( "mouth" ) ) ) { coverage += _( "The mouth. " ); } - if( covers( bp_torso ) ) { + if( covers( bodypart_id( "torso" ) ) ) { coverage += _( "The torso. " ); } - if( is_sided() && ( covers( bp_arm_l ) || covers( bp_arm_r ) ) ) { + if( is_sided() && ( covers( bodypart_id( "arm_l" ) ) || covers( bodypart_id( "arm_r" ) ) ) ) { coverage += _( "Either arm. " ); - } else if( covers( bp_arm_l ) && covers( bp_arm_r ) ) { + } else if( covers( bodypart_id( "arm_l" ) ) && covers( bodypart_id( "arm_r" ) ) ) { coverage += _( "The arms. " ); - } else if( covers( bp_arm_l ) ) { + } else if( covers( bodypart_id( "arm_l" ) ) ) { coverage += _( "The left arm. " ); - } else if( covers( bp_arm_r ) ) { + } else if( covers( bodypart_id( "arm_r" ) ) ) { coverage += _( "The right arm. " ); } - if( is_sided() && ( covers( bp_hand_l ) || covers( bp_hand_r ) ) ) { + if( is_sided() && ( covers( bodypart_id( "hand_l" ) ) || covers( bodypart_id( "hand_r" ) ) ) ) { coverage += _( "Either hand. " ); - } else if( covers( bp_hand_l ) && covers( bp_hand_r ) ) { + } else if( covers( bodypart_id( "hand_l" ) ) && covers( bodypart_id( "hand_r" ) ) ) { coverage += _( "The hands. " ); - } else if( covers( bp_hand_l ) ) { + } else if( covers( bodypart_id( "hand_l" ) ) ) { coverage += _( "The left hand. " ); - } else if( covers( bp_hand_r ) ) { + } else if( covers( bodypart_id( "hand_r" ) ) ) { coverage += _( "The right hand. " ); } - if( is_sided() && ( covers( bp_leg_l ) || covers( bp_leg_r ) ) ) { + if( is_sided() && ( covers( bodypart_id( "leg_l" ) ) || covers( bodypart_id( "leg_r" ) ) ) ) { coverage += _( "Either leg. " ); - } else if( covers( bp_leg_l ) && covers( bp_leg_r ) ) { + } else if( covers( bodypart_id( "leg_l" ) ) && covers( bodypart_id( "leg_r" ) ) ) { coverage += _( "The legs. " ); - } else if( covers( bp_leg_l ) ) { + } else if( covers( bodypart_id( "leg_l" ) ) ) { coverage += _( "The left leg. " ); - } else if( covers( bp_leg_r ) ) { + } else if( covers( bodypart_id( "leg_r" ) ) ) { coverage += _( "The right leg. " ); } - if( is_sided() && ( covers( bp_foot_l ) || covers( bp_foot_r ) ) ) { + if( is_sided() && ( covers( bodypart_id( "foot_l" ) ) || covers( bodypart_id( "foot_r" ) ) ) ) { coverage += _( "Either foot. " ); - } else if( covers( bp_foot_l ) && covers( bp_foot_r ) ) { + } else if( covers( bodypart_id( "foot_l" ) ) && covers( bodypart_id( "foot_r" ) ) ) { coverage += _( "The feet. " ); - } else if( covers( bp_foot_l ) ) { + } else if( covers( bodypart_id( "foot_l" ) ) ) { coverage += _( "The left foot. " ); - } else if( covers( bp_foot_r ) ) { + } else if( covers( bodypart_id( "foot_r" ) ) ) { coverage += _( "The right foot. " ); } @@ -2575,13 +2653,11 @@ void item::animal_armor_info( std::vector &info, const iteminfo_query if( !is_pet_armor() ) { return; } - - const std::string space = " "; - int converted_storage_scale = 0; const double converted_storage = round_up( convert_volume( type->pet_armor->storage.value(), &converted_storage_scale ), 2 ); if( parts->test( iteminfo_parts::ARMOR_STORAGE ) && converted_storage > 0 ) { + const std::string space = " "; const iteminfo::flags f = converted_storage_scale == 0 ? iteminfo::no_flags : iteminfo::is_decimal; info.push_back( iteminfo( "ARMOR", space + _( "Storage: " ), string_format( " %s", volume_units_abbr() ), @@ -2732,7 +2808,7 @@ void item::armor_fit_info( std::vector &info, const iteminfo_query *pa info.push_back( iteminfo( "DESCRIPTION", _( "* This gear is a part of power armor." ) ) ); if( parts->test( iteminfo_parts::DESCRIPTION_FLAGS_POWERARMOR_RADIATIONHINT ) ) { - if( covers( bp_head ) ) { + if( covers( bodypart_id( "head" ) ) ) { info.push_back( iteminfo( "DESCRIPTION", _( "* When worn with a power armor suit, it will " "fully protect you from " @@ -2740,11 +2816,13 @@ void item::armor_fit_info( std::vector &info, const iteminfo_query *pa } else { info.push_back( iteminfo( "DESCRIPTION", _( "* When worn with a power armor helmet, it will " - "fully protect you from " "radiation." ) ) ); + "fully protect you from " + "radiation." ) ) ); } } } - if( typeId() == "rad_badge" && parts->test( iteminfo_parts::DESCRIPTION_IRRADIATION ) ) { + + if( typeId() == itype_rad_badge && parts->test( iteminfo_parts::DESCRIPTION_IRRADIATION ) ) { info.push_back( iteminfo( "DESCRIPTION", string_format( _( "* The film strip on the badge is %s." ), rad_badge_color( irradiation ) ) ) ); @@ -2845,42 +2923,44 @@ void item::book_info( std::vector &info, const iteminfo_query *parts, info.push_back( iteminfo( "BOOK", "", fmt, iteminfo::no_flags, unread ) ); } - std::vector recipe_list; - for( const islot_book::recipe_with_description_t &elem : book.recipes ) { - const bool knows_it = g->u.knows_recipe( elem.recipe ); - const bool can_learn = g->u.get_skill_level( elem.recipe->skill_used ) >= elem.skill_level; - // If the player knows it, they recognize it even if it's not clearly stated. - if( elem.is_hidden() && !knows_it ) { - continue; - } - if( knows_it ) { - // In case the recipe is known, but has a different name in the book, use the - // real name to avoid confusing the player. - const std::string name = elem.recipe->result_name(); - recipe_list.push_back( "" + name + "" ); - } else if( !can_learn ) { - recipe_list.push_back( "" + elem.name + "" ); - } else { - recipe_list.push_back( "" + elem.name + "" ); + if( parts->test( iteminfo_parts::BOOK_INCLUDED_RECIPES ) ) { + std::vector recipe_list; + for( const islot_book::recipe_with_description_t &elem : book.recipes ) { + const bool knows_it = g->u.knows_recipe( elem.recipe ); + const bool can_learn = g->u.get_skill_level( elem.recipe->skill_used ) >= elem.skill_level; + // If the player knows it, they recognize it even if it's not clearly stated. + if( elem.is_hidden() && !knows_it ) { + continue; + } + if( knows_it ) { + // In case the recipe is known, but has a different name in the book, use the + // real name to avoid confusing the player. + const std::string name = elem.recipe->result_name(); + recipe_list.push_back( "" + name + "" ); + } else if( !can_learn ) { + recipe_list.push_back( "" + elem.name + "" ); + } else { + recipe_list.push_back( "" + elem.name + "" ); + } } - } - if( !recipe_list.empty() && parts->test( iteminfo_parts::DESCRIPTION_BOOK_RECIPES ) ) { - std::string recipe_line = - string_format( ngettext( "This book contains %1$d crafting recipe: %2$s", - "This book contains %1$d crafting recipes: %2$s", - recipe_list.size() ), - recipe_list.size(), enumerate_as_string( recipe_list ) ); + if( !recipe_list.empty() && parts->test( iteminfo_parts::DESCRIPTION_BOOK_RECIPES ) ) { + std::string recipe_line = + string_format( ngettext( "This book contains %1$d crafting recipe: %2$s", + "This book contains %1$d crafting recipes: %2$s", + recipe_list.size() ), + recipe_list.size(), enumerate_as_string( recipe_list ) ); - insert_separation_line( info ); - info.push_back( iteminfo( "DESCRIPTION", recipe_line ) ); - } + insert_separation_line( info ); + info.push_back( iteminfo( "DESCRIPTION", recipe_line ) ); + } - if( recipe_list.size() != book.recipes.size() && - parts->test( iteminfo_parts::DESCRIPTION_BOOK_ADDITIONAL_RECIPES ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "It might help you figuring out some more " - "recipes." ) ) ); + if( recipe_list.size() != book.recipes.size() && + parts->test( iteminfo_parts::DESCRIPTION_BOOK_ADDITIONAL_RECIPES ) ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "It might help you figuring out some more " + "recipes." ) ) ); + } } } else { @@ -2922,7 +3002,7 @@ void item::tool_info( std::vector &info, const iteminfo_query *parts, } insert_separation_line( info ); - if( ammo_capacity() != 0 && parts->test( iteminfo_parts::TOOL_CHARGES ) ) { + if( !ammo_types().empty() && parts->test( iteminfo_parts::TOOL_CHARGES ) ) { info.emplace_back( "TOOL", string_format( _( "Charges: %d" ), ammo_remaining() ) ); } @@ -2934,32 +3014,58 @@ void item::tool_info( std::vector &info, const iteminfo_query *parts, } if( parts->test( iteminfo_parts::TOOL_MAGAZINE_COMPATIBLE ) ) { - const std::set compat = magazine_compatible(); - info.emplace_back( "TOOL", _( "Compatible magazines: " ), - enumerate_as_string( compat.begin(), compat.end(), []( const itype_id & id ) { - return item::nname( id ); - } ) ); + const std::set compat = magazine_compatible(); + if( !compat.empty() ) { + info.emplace_back( "TOOL", _( "Compatible magazines: " ), + enumerate_as_string( compat.begin(), compat.end(), []( const itype_id & id ) { + return item::nname( id ); + } ) ); + } } - } else if( ammo_capacity() != 0 && parts->test( iteminfo_parts::TOOL_CAPACITY ) ) { - std::string tmp; - bool bionic_tool = has_flag( flag_USES_BIONIC_POWER ); + } else if( !ammo_types().empty() && parts->test( iteminfo_parts::TOOL_CAPACITY ) ) { if( !ammo_types().empty() ) { - //~ "%s" is ammunition type. This types can't be plural. - tmp = ngettext( "Maximum charge of %s.", "Maximum charges of %s.", - ammo_capacity() ); - tmp = string_format( tmp, enumerate_as_string( ammo_types().begin(), - ammo_types().end(), []( const ammotype & at ) { - return at->name(); - }, enumeration_conjunction::none ) ); + for( const ammotype &at : ammo_types() ) { + info.emplace_back( + "TOOL", + "", + string_format( + ngettext( + "Maximum charge of %s.", + "Maximum charges of %s.", + ammo_capacity( at ) ), + at->name() ), + iteminfo::no_flags, + ammo_capacity( at ) ); + } // No need to display max charges, since charges are always equal to bionic power - } else if( !bionic_tool ) { - tmp = ngettext( "Maximum charge.", "Maximum charges.", ammo_capacity() ); - } - if( !bionic_tool ) { - info.emplace_back( "TOOL", "", tmp, iteminfo::no_flags, ammo_capacity() ); } } + + // UPS, rechargeable power cells, and bionic power + if( has_flag( flag_USE_UPS ) && parts->test( iteminfo_parts::DESCRIPTION_RECHARGE_UPSMODDED ) ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This tool has been modified to use a universal " + "power supply and is not compatible" + " with standard batteries." ) ) ); + } else if( has_flag( flag_RECHARGE ) && has_flag( flag_NO_RELOAD ) && + parts->test( iteminfo_parts::DESCRIPTION_RECHARGE_NORELOAD ) ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This tool has a rechargeable power cell " + "and is not compatible with " + "standard batteries." ) ) ); + } else if( has_flag( flag_RECHARGE ) && + parts->test( iteminfo_parts::DESCRIPTION_RECHARGE_UPSCAPABLE ) ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This tool has a rechargeable power cell " + "and can be recharged in any UPS-compatible " + "recharging station. You could charge it with " + "standard batteries, but unloading it is " + "impossible." ) ) ); + } else if( has_flag( flag_USES_BIONIC_POWER ) ) { + info.emplace_back( "DESCRIPTION", + _( "* This tool runs on bionic power." ) ); + } } void item::component_info( std::vector &info, const iteminfo_query *parts, int /*batch*/, @@ -2984,7 +3090,7 @@ void item::repair_info( std::vector &info, const iteminfo_query *parts return; } insert_separation_line( info ); - const std::set &rep = repaired_with(); + const std::set &rep = repaired_with(); if( !rep.empty() ) { info.emplace_back( "DESCRIPTION", string_format( _( "Repair using %s." ), enumerate_as_string( rep.begin(), rep.end(), []( const itype_id & e ) { @@ -3119,8 +3225,8 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts if( !bid->encumbrance.empty() ) { info.push_back( iteminfo( "DESCRIPTION", _( "Encumbrance: " ), iteminfo::no_newline ) ); - for( const auto &element : bid->encumbrance ) { - info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first, 1 ), + for( const std::pair &element : bid->encumbrance ) { + info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first.id(), 1 ), " ", iteminfo::no_newline, element.second ) ); } } @@ -3130,7 +3236,7 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts _( "Environmental Protection: " ), iteminfo::no_newline ) ); for( const std::pair< const bodypart_str_id, size_t > &element : bid->env_protec ) { - info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first->token, 1 ), + info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first, 1 ), " ", iteminfo::no_newline, element.second ) ); } } @@ -3140,7 +3246,7 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts _( "Bash Protection: " ), iteminfo::no_newline ) ); for( const std::pair< const bodypart_str_id, size_t > &element : bid->bash_protec ) { - info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first->token, 1 ), + info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first, 1 ), " ", iteminfo::no_newline, element.second ) ); } } @@ -3150,7 +3256,7 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts _( "Cut Protection: " ), iteminfo::no_newline ) ); for( const std::pair< const bodypart_str_id, size_t > &element : bid->cut_protec ) { - info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first->token, 1 ), + info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first, 1 ), " ", iteminfo::no_newline, element.second ) ); } } @@ -3159,7 +3265,7 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts info.push_back( iteminfo( "DESCRIPTION", _( "Ballistic Protection: " ), iteminfo::no_newline ) ); for( const std::pair &element : bid->bullet_protec ) { - info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first->token, 1 ), + info.push_back( iteminfo( "CBM", body_part_name_as_heading( element.first, 1 ), " ", iteminfo::no_newline, element.second ) ); } } @@ -3236,6 +3342,10 @@ void item::combat_info( std::vector &info, const iteminfo_query *parts if( parts->test( iteminfo_parts::BASE_MOVES ) ) { info.push_back( iteminfo( "BASE", _( "Moves per attack: " ), "", iteminfo::lower_is_better, attack_time() ) ); + + } + + if( parts->test( iteminfo_parts::BASE_DPS ) ) { info.emplace_back( "BASE", _( "Typical damage per second:" ), "" ); const std::map &dps_data = dps( true, false ); std::string sep; @@ -3300,6 +3410,7 @@ void item::combat_info( std::vector &info, const iteminfo_query *parts if( parts->test( iteminfo_parts::DESCRIPTION_MELEEDMG ) ) { info.push_back( iteminfo( "DESCRIPTION", _( "Average melee damage:" ) ) ); } + // Chance of critical hit if( parts->test( iteminfo_parts::DESCRIPTION_MELEEDMG_CRIT ) ) { info.push_back( iteminfo( "DESCRIPTION", string_format( _( "Critical hit chance %d%% - %d%%" ), @@ -3308,29 +3419,37 @@ void item::combat_info( std::vector &info, const iteminfo_query *parts static_cast( g->u.crit_chance( 100, 0, *this ) * 100 ) ) ) ); } + // Bash damage if( parts->test( iteminfo_parts::DESCRIPTION_MELEEDMG_BASH ) ) { - info.push_back( iteminfo( "DESCRIPTION", - string_format( _( "%d bashing (%d on a critical hit)" ), - static_cast( non_crit.type_damage( DT_BASH ) ), - static_cast( crit.type_damage( DT_BASH ) ) ) ) ); - } + // NOTE: Using "BASE" instead of "DESCRIPTION", so numerical formatting will work + // (output.cpp:format_item_info does not interpolate for DESCRIPTION info) + info.push_back( iteminfo( "BASE", _( "Bashing: " ), "", iteminfo::no_newline, + non_crit.type_damage( DT_BASH ) ) ); + info.push_back( iteminfo( "BASE", space + _( "Critical bash: " ), "", iteminfo::no_flags, + crit.type_damage( DT_BASH ) ) ); + } + // Cut damage if( ( non_crit.type_damage( DT_CUT ) > 0.0f || crit.type_damage( DT_CUT ) > 0.0f ) && parts->test( iteminfo_parts::DESCRIPTION_MELEEDMG_CUT ) ) { - info.push_back( iteminfo( "DESCRIPTION", - string_format( _( "%d cutting (%d on a critical hit)" ), - static_cast( non_crit.type_damage( DT_CUT ) ), - static_cast( crit.type_damage( DT_CUT ) ) ) ) ); + + info.push_back( iteminfo( "BASE", _( "Cutting: " ), "", iteminfo::no_newline, + non_crit.type_damage( DT_CUT ) ) ); + info.push_back( iteminfo( "BASE", space + _( "Critical cut: " ), "", iteminfo::no_flags, + crit.type_damage( DT_CUT ) ) ); } + // Pierce/stab damage if( ( non_crit.type_damage( DT_STAB ) > 0.0f || crit.type_damage( DT_STAB ) > 0.0f ) && parts->test( iteminfo_parts::DESCRIPTION_MELEEDMG_PIERCE ) ) { - info.push_back( iteminfo( "DESCRIPTION", - string_format( _( "%d piercing (%d on a critical hit)" ), - static_cast( non_crit.type_damage( DT_STAB ) ), - static_cast( crit.type_damage( DT_STAB ) ) ) ) ); + + info.push_back( iteminfo( "BASE", _( "Piercing: " ), "", iteminfo::no_newline, + non_crit.type_damage( DT_STAB ) ) ); + info.push_back( iteminfo( "BASE", space + _( "Critical pierce: " ), "", iteminfo::no_flags, + crit.type_damage( DT_STAB ) ) ); } + // Moves if( parts->test( iteminfo_parts::DESCRIPTION_MELEEDMG_MOVES ) ) { - info.push_back( iteminfo( "DESCRIPTION", - string_format( _( "%d moves per attack" ), attack_cost ) ) ); + info.push_back( iteminfo( "BASE", _( "Moves per attack: " ), "", + iteminfo::lower_is_better, attack_cost ) ); } insert_separation_line( info ); } @@ -3373,20 +3492,10 @@ void item::contents_info( std::vector &info, const iteminfo_query *par const translation &description = contents_item->type->description; - if( contents_item->made_of_from_type( LIQUID ) ) { + if( contents_item->made_of_from_type( phase_id::LIQUID ) ) { units::volume contents_volume = contents_item->volume() * batch; - int converted_volume_scale = 0; - const double converted_volume = - round_up( convert_volume( contents_volume.value(), - &converted_volume_scale ), 2 ); info.emplace_back( "DESCRIPTION", contents_item->display_name() ); - iteminfo::flags f = iteminfo::no_newline; - if( converted_volume_scale != 0 ) { - f |= iteminfo::is_decimal; - } - info.emplace_back( "CONTAINER", description + space, - string_format( " %s", volume_units_abbr() ), f, - converted_volume ); + info.emplace_back( vol_to_info( "CONTAINER", description + space, contents_volume ) ); } else { info.emplace_back( "DESCRIPTION", contents_item->display_name() ); info.emplace_back( "DESCRIPTION", description.translated() ); @@ -3402,8 +3511,6 @@ void item::final_info( std::vector &info, const iteminfo_query *parts, return; } - const std::string space = " "; - insert_separation_line( info ); if( parts->test( iteminfo_parts::BASE_RIGIDITY ) ) { @@ -3433,11 +3540,13 @@ void item::final_info( std::vector &info, const iteminfo_query *parts, } } - if( is_armor() && g->u.has_trait( trait_WOOLALLERGY ) && - ( made_of( material_id( "wool" ) ) || item_tags.count( "wooled" ) ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This clothing will give you an allergic " - "reaction." ) ) ); + if( parts->test( iteminfo_parts::DESCRIPTION_ALLERGEN ) ) { + if( is_armor() && g->u.has_trait( trait_WOOLALLERGY ) && + ( made_of( material_id( "wool" ) ) || item_tags.count( "wooled" ) ) ) { + info.push_back( iteminfo( "DESCRIPTION", + _( "* This clothing will give you an allergic " + "reaction." ) ) ); + } } if( parts->test( iteminfo_parts::DESCRIPTION_FLAGS ) ) { @@ -3458,32 +3567,6 @@ void item::final_info( std::vector &info, const iteminfo_query *parts, armor_fit_info( info, parts, batch, debug ); - if( is_tool() ) { - if( has_flag( flag_USE_UPS ) && parts->test( iteminfo_parts::DESCRIPTION_RECHARGE_UPSMODDED ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This tool has been modified to use a universal " - "power supply and is not compatible" - " with standard batteries." ) ) ); - } else if( has_flag( flag_RECHARGE ) && has_flag( flag_NO_RELOAD ) && - parts->test( iteminfo_parts::DESCRIPTION_RECHARGE_NORELOAD ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This tool has a rechargeable power cell " - "and is not compatible with " - "standard batteries." ) ) ); - } else if( has_flag( flag_RECHARGE ) && - parts->test( iteminfo_parts::DESCRIPTION_RECHARGE_UPSCAPABLE ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This tool has a rechargeable power cell " - "and can be recharged in any UPS-compatible " - "recharging station. You could charge it with " - "standard batteries, but unloading it is " - "impossible." ) ) ); - } else if( has_flag( flag_USES_BIONIC_POWER ) ) { - info.emplace_back( "DESCRIPTION", - _( "* This tool runs on bionic power." ) ); - } - } - if( has_flag( flag_RADIO_ACTIVATION ) && parts->test( iteminfo_parts::DESCRIPTION_RADIO_ACTIVATION ) ) { if( has_flag( flag_RADIO_MOD ) ) { @@ -3520,27 +3603,6 @@ void item::final_info( std::vector &info, const iteminfo_query *parts, bionic_info( info, parts, batch, debug ); - if( is_gun() && has_flag( flag_FIRE_TWOHAND ) && - parts->test( iteminfo_parts::DESCRIPTION_TWOHANDED ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This weapon needs two free hands " - "to fire." ) ) ); - } - - if( is_gunmod() && has_flag( flag_DISABLE_SIGHTS ) && - parts->test( iteminfo_parts::DESCRIPTION_GUNMOD_DISABLESSIGHTS ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This mod obscures sights of the " - "base weapon." ) ) ); - } - - if( is_gunmod() && has_flag( flag_CONSUMABLE ) && - parts->test( iteminfo_parts::DESCRIPTION_GUNMOD_CONSUMABLE ) ) { - info.push_back( iteminfo( "DESCRIPTION", - _( "* This mod might suffer wear when firing " - "the base weapon." ) ) ); - } - if( has_flag( flag_LEAK_DAM ) && has_flag( flag_RADIOACTIVE ) && damage() > 0 && parts->test( iteminfo_parts::DESCRIPTION_RADIOACTIVITY_DAMAGED ) ) { info.push_back( iteminfo( "DESCRIPTION", @@ -3576,7 +3638,7 @@ void item::final_info( std::vector &info, const iteminfo_query *parts, } } if( parts->test( iteminfo_parts::DESCRIPTION_BREWABLE_PRODUCTS ) ) { - for( const std::string &res : brewed.brewing_results() ) { + for( const itype_id &res : brewed.brewing_results() ) { info.push_back( iteminfo( "DESCRIPTION", string_format( _( "* Fermenting this will produce " "%s." ), @@ -3634,16 +3696,19 @@ void item::final_info( std::vector &info, const iteminfo_query *parts, } std::map::const_iterator item_note = item_vars.find( "item_note" ); - std::map::const_iterator item_note_tool = - item_vars.find( "item_note_tool" ); if( item_note != item_vars.end() && parts->test( iteminfo_parts::DESCRIPTION_NOTES ) ) { insert_separation_line( info ); std::string ntext; - const use_function *use_func = item_note_tool != item_vars.end() ? - item_controller->find_template( item_note_tool->second )->get_use( "inscribe" ) : nullptr; - const inscribe_actor *use_actor = use_func ? - dynamic_cast( use_func->get_actor_ptr() ) : nullptr; + std::map::const_iterator item_note_tool = + item_vars.find( "item_note_tool" ); + const use_function *use_func = + item_note_tool != item_vars.end() ? + item_controller->find_template( + itype_id( item_note_tool->second ) )->get_use( "inscribe" ) : + nullptr; + const inscribe_actor *use_actor = + use_func ? dynamic_cast( use_func->get_actor_ptr() ) : nullptr; if( use_actor ) { //~ %1$s: gerund (e.g. carved), %2$s: item name, %3$s: inscription text ntext = string_format( pgettext( "carving", "%1$s on the %2$s is: %3$s" ), @@ -3655,7 +3720,7 @@ void item::final_info( std::vector &info, const iteminfo_query *parts, info.push_back( iteminfo( "DESCRIPTION", ntext ) ); } - if( this->get_var( "die_num_sides", 0 ) != 0 ) { + if( parts->test( iteminfo_parts::DESCRIPTION_DIE ) && this->get_var( "die_num_sides", 0 ) != 0 ) { info.emplace_back( "DESCRIPTION", string_format( _( "* This item can be used as a die, " "and has %d sides." ), @@ -3673,6 +3738,7 @@ void item::final_info( std::vector &info, const iteminfo_query *parts, static_cast( price_preapoc ) / 100 ) ); } if( price_preapoc != price_postapoc && parts->test( iteminfo_parts::BASE_BARTER ) ) { + const std::string space = " "; info.push_back( iteminfo( "BASE", space + _( "Barter value: " ), _( "$" ), iteminfo::is_decimal | iteminfo::lower_is_better, static_cast( price_postapoc ) / 100 ) ); @@ -3744,6 +3810,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( !is_null() ) { basic_info( info, parts, batch, debug ); + debug_info( info, parts, batch, debug ); } if( is_medication() ) { @@ -4012,9 +4079,9 @@ void item::on_wear( Character &p ) if( is_sided() && get_side() == side::BOTH ) { if( has_flag( flag_SPLINT ) ) { set_side( side::LEFT ); - if( ( covers( bp_leg_l ) && p.is_limb_broken( hp_leg_r ) && + if( ( covers( bodypart_id( "leg_l" ) ) && p.is_limb_broken( hp_leg_r ) && !p.worn_with_flag( flag_SPLINT, bodypart_id( "leg_r" ) ) ) || - ( covers( bp_arm_l ) && p.is_limb_broken( hp_arm_r ) && + ( covers( bodypart_id( "arm_l" ) ) && p.is_limb_broken( hp_arm_r ) && !p.worn_with_flag( flag_SPLINT, bodypart_id( "arm_r" ) ) ) ) { set_side( side::RIGHT ); } @@ -4256,7 +4323,7 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t } std::string burntext; - if( with_prefix && !made_of_from_type( LIQUID ) ) { + if( with_prefix && !made_of_from_type( phase_id::LIQUID ) ) { if( volume() >= 1_liter && burnt * 125_ml >= volume() ) { burntext = pgettext( "burnt adjective", "badly burnt " ); } else if( burnt > 0 ) { @@ -4265,7 +4332,7 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t } std::string maintext; - if( is_corpse() || typeId() == "blood" || item_vars.find( "name" ) != item_vars.end() ) { + if( is_corpse() || typeId() == itype_blood || item_vars.find( "name" ) != item_vars.end() ) { maintext = type_name( quantity ); } else if( is_gun() || is_tool() || is_magazine() ) { int amt = 0; @@ -4289,7 +4356,7 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t maintext += string_format( " (%d%%)", percent_progress ); } else if( contents.num_item_stacks() == 1 ) { const item &contents_item = contents.only_item(); - if( contents_item.made_of( LIQUID ) || contents_item.is_food() ) { + if( contents_item.made_of( phase_id::LIQUID ) || contents_item.is_food() ) { const unsigned contents_count = contents_item.charges > 1 ? contents_item.charges : quantity; //~ %1$s: item name, %2$s: content liquid, food, or drink name maintext = string_format( pgettext( "item name", "%1$s of %2$s" ), label( quantity ), @@ -4377,7 +4444,7 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t } if( has_var( "NANOFAB_ITEM_ID" ) ) { - tagtext += string_format( " (%s)", nname( get_var( "NANOFAB_ITEM_ID" ) ) ); + tagtext += string_format( " (%s)", nname( itype_id( get_var( "NANOFAB_ITEM_ID" ) ) ) ); } if( has_flag( flag_RADIO_MOD ) ) { @@ -4404,8 +4471,8 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t tagtext += _( " (lit)" ); } else if( has_flag( flag_IS_UPS ) && get_var( "cable" ) == "plugged_in" ) { tagtext += _( " (plugged in)" ); - } else if( active && !is_food() && !is_corpse() && ( typeId().length() < 3 || - typeId().compare( typeId().length() - 3, 3, "_on" ) != 0 ) ) { + } else if( active && !is_food() && !is_corpse() && + !string_ends_with( typeId().str(), "_on" ) ) { // Usually the items whose ids end in "_on" have the "active" or "on" string already contained // in their name, also food is active while it rots. tagtext += _( " (active)" ); @@ -4416,7 +4483,7 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t } std::string modtext; - if( gunmod_find( "barrel_small" ) ) { + if( gunmod_find( itype_barrel_small ) ) { modtext += _( "sawn-off " ); } if( has_flag( flag_DIAMOND ) ) { @@ -4484,16 +4551,38 @@ std::string item::display_name( unsigned int quantity ) const if( is_book() && get_chapters() > 0 ) { // a book which has remaining unread chapters amount = get_remaining_chapters( g->u ); - } else if( ammo_capacity() > 0 ) { + } else if( magazine_current() ) { + show_amt = true; + const item *mag = magazine_current(); + amount = ammo_remaining(); + const itype *adata = mag->ammo_data(); + if( adata ) { + max_amount = mag->ammo_capacity( adata->ammo->type ); + } else { + max_amount = mag->ammo_capacity( item_controller->find_template( + mag->ammo_default() )->ammo->type ); + } + + } else if( !ammo_types().empty() ) { // anything that can be reloaded including tools, magazines, guns and auxiliary gunmods // but excluding bows etc., which have ammo, but can't be reloaded amount = ammo_remaining(); - max_amount = ammo_capacity(); + const itype *adata = ammo_data(); + if( adata ) { + max_amount = ammo_capacity( adata->ammo->type ); + } else { + max_amount = ammo_capacity( item_controller->find_template( ammo_default() )->ammo->type ); + } show_amt = !has_flag( flag_RELOAD_AND_SHOOT ); } else if( count_by_charges() && !has_infinite_charges() ) { // A chargeable item amount = charges; - max_amount = ammo_capacity(); + const itype *adata = ammo_data(); + if( adata ) { + max_amount = ammo_capacity( adata->ammo->type ); + } else if( !ammo_default().is_null() ) { + max_amount = ammo_capacity( item_controller->find_template( ammo_default() )->ammo->type ); + } } else if( is_battery() ) { show_amt = true; amount = to_joule( energy_remaining() ); @@ -4501,11 +4590,21 @@ std::string item::display_name( unsigned int quantity ) const } std::string ammotext; - if( ( ( is_gun() && ammo_required() ) || is_magazine() ) && get_option( "AMMO_IN_NAMES" ) ) { - if( ammo_current() != "null" ) { + if( !is_ammo() && ( ( is_gun() && ammo_required() ) || is_magazine() ) && + get_option( "AMMO_IN_NAMES" ) ) { + if( !ammo_current().is_null() ) { + // Loaded with ammo ammotext = find_type( ammo_current() )->ammo->type->name(); - } else { + } else if( !ammo_types().empty() ) { + // Is not loaded but can be loaded ammotext = ammotype( *ammo_types().begin() )->name(); + } else if( magazine_current() ) { + // Is not loaded but has magazine that can be loaded + ammotext = magazine_current()->ammo_default()->ammo->type->name(); + } else if( !magazine_default().is_null() ) { + // Is not loaded and doesn't have magazine but can use magazines that could be loaded + item tmp_mag( magazine_default() ); + ammotext = tmp_mag.ammo_default()->ammo->type->name(); } } @@ -4566,7 +4665,7 @@ int item::price( bool practical ) const child -= child * static_cast( e->damage_level( 4 ) ) / 10; } - if( e->count_by_charges() || e->made_of( LIQUID ) ) { + if( e->count_by_charges() || e->made_of( phase_id::LIQUID ) ) { // price from json data is for default-sized stack child *= e->charges / static_cast( e->type->stack_size ); @@ -4574,7 +4673,7 @@ int item::price( bool practical ) const // items with integral magazines may contain ammunition which can affect the price child += item( e->ammo_data(), calendar::turn, e->charges ).price( practical ); - } else if( e->is_tool() && e->ammo_types().empty() && e->ammo_capacity() ) { + } else if( e->is_tool() && e->type->tool->max_charges != 0 ) { // if tool has no ammo (e.g. spray can) reduce price proportional to remaining charges child *= e->ammo_remaining() / static_cast( std::max( e->type->charges_default(), 1 ) ); } @@ -4645,7 +4744,7 @@ units::mass item::weight( bool, bool integral ) const } } else if( magazine_integral() && !is_magazine() ) { - if( ammo_current() == "plut_cell" ) { + if( ammo_current() == itype_plut_cell ) { ret += ammo_remaining() * find_type( ammotype( *ammo_types().begin() )->default_ammotype() )->weight / PLUTONIUM_CHARGES; } else if( ammo_data() ) { @@ -4654,14 +4753,14 @@ units::mass item::weight( bool, bool integral ) const } // if this is an ammo belt add the weight of any implicitly contained linkages - if( is_magazine() && type->magazine->linkage ) { + if( type->magazine && type->magazine->linkage ) { item links( *type->magazine->linkage ); links.charges = ammo_remaining(); ret += links.weight(); } // reduce weight for sawn-off weapons capped to the apportioned weight of the barrel - if( gunmod_find( "barrel_small" ) ) { + if( gunmod_find( itype_barrel_small ) ) { const units::volume b = type->gun->barrel_length; const units::mass max_barrel_weight = units::from_gram( to_milliliter( b ) ); const units::mass barrel_weight = units::from_gram( b.value() * type->weight.value() / @@ -4682,9 +4781,12 @@ units::mass item::weight( bool, bool integral ) const units::length item::length() const { - if( made_of( LIQUID ) || is_soft() ) { + if( made_of( phase_id::LIQUID ) || is_soft() ) { return 0_mm; } + if( is_corpse() ) { + return units::default_length_from_volume( corpse->volume ); + } return type->longest_side; } @@ -4766,11 +4868,11 @@ units::volume item::volume( bool integral ) const ret = type->volume; } - if( count_by_charges() || made_of( LIQUID ) ) { + if( count_by_charges() || made_of( phase_id::LIQUID ) ) { units::quantity num = ret * static_cast ( charges ); if( type->stack_size <= 0 ) { - debugmsg( "Item type %s has invalid stack_size %d", typeId(), type->stack_size ); + debugmsg( "Item type %s has invalid stack_size %d", typeId().str(), type->stack_size ); ret = num; } else { ret = num / type->stack_size; @@ -4809,7 +4911,7 @@ units::volume item::volume( bool integral ) const } } - if( gunmod_find( "barrel_small" ) ) { + if( gunmod_find( itype_barrel_small ) ) { ret -= type->gun->barrel_length; } } @@ -5194,9 +5296,9 @@ int item::spoilage_sort_order() } if( get_comestible() ) { - if( get_category().get_id() == "food" ) { + if( get_category().get_id() == item_category_food ) { return bottom - 3; - } else if( get_category().get_id() == "drugs" ) { + } else if( get_category().get_id() == item_category_drugs ) { return bottom - 2; } else { return bottom - 1; @@ -5427,19 +5529,19 @@ layer_level item::get_layer() const } if( has_flag( flag_PERSONAL ) ) { - return PERSONAL_LAYER; + return layer_level::PERSONAL; } else if( has_flag( flag_SKINTIGHT ) ) { - return UNDERWEAR_LAYER; + return layer_level::UNDERWEAR; } else if( has_flag( flag_WAIST ) ) { - return WAIST_LAYER; + return layer_level::WAIST; } else if( has_flag( flag_OUTER ) ) { - return OUTER_LAYER; + return layer_level::OUTER; } else if( has_flag( flag_BELTED ) ) { - return BELTED_LAYER; + return layer_level::BELTED; } else if( has_flag( flag_AURA ) ) { - return AURA_LAYER; + return layer_level::AURA; } else { - return REGULAR_LAYER; + return layer_level::REGULAR; } } @@ -5582,13 +5684,12 @@ int item::bash_resist( bool to_self ) const float resist = 0; float mod = get_clothing_mod_val( clothing_mod_type_bash ); - int eff_thickness = 1; // base resistance // Don't give reinforced items +armor, just more resistance to ripping const int dmg = damage_level( 4 ); const int eff_damage = to_self ? std::min( dmg, 0 ) : std::max( dmg, 0 ); - eff_thickness = std::max( 1, get_thickness() - eff_damage ); + const int eff_thickness = std::max( 1, get_thickness() - eff_damage ); const std::vector mat_types = made_of_types(); if( !mat_types.empty() ) { @@ -5611,13 +5712,12 @@ int item::cut_resist( bool to_self ) const const int base_thickness = get_thickness(); float resist = 0; float mod = get_clothing_mod_val( clothing_mod_type_cut ); - int eff_thickness = 1; // base resistance // Don't give reinforced items +armor, just more resistance to ripping const int dmg = damage_level( 4 ); const int eff_damage = to_self ? std::min( dmg, 0 ) : std::max( dmg, 0 ); - eff_thickness = std::max( 1, base_thickness - eff_damage ); + const int eff_thickness = std::max( 1, base_thickness - eff_damage ); const std::vector mat_types = made_of_types(); if( !mat_types.empty() ) { @@ -5650,13 +5750,12 @@ int item::bullet_resist( bool to_self ) const const int base_thickness = get_thickness(); float resist = 0; float mod = get_clothing_mod_val( clothing_mod_type_bullet ); - int eff_thickness = 1; // base resistance // Don't give reinforced items +armor, just more resistance to ripping const int dmg = damage_level( 4 ); const int eff_damage = to_self ? std::min( dmg, 0 ) : std::max( dmg, 0 ); - eff_thickness = std::max( 1, base_thickness - eff_damage ); + const int eff_thickness = std::max( 1, base_thickness - eff_damage ); const std::vector mat_types = made_of_types(); if( !mat_types.empty() ) { @@ -6079,8 +6178,14 @@ int item::get_reload_time() const if( !is_gun() && !is_magazine() ) { return 0; } - - int reload_time = is_gun() ? type->gun->reload_time : type->magazine->reload_time; + int reload_time = 0; + if( is_gun() ) { + reload_time = type->gun->reload_time; + } else if( type->magazine ) { + reload_time = type->magazine->reload_time; + } else { + reload_time = INVENTORY_HANDLING_PENALTY; + } for( const item *mod : gunmods() ) { reload_time = static_cast( reload_time * ( 100 + mod->type->gunmod->reload_modifier ) / 100 ); } @@ -6105,7 +6210,7 @@ bool item::is_bionic() const bool item::is_magazine() const { - return !!type->magazine; + return !!type->magazine || contents.has_pocket_type( item_pocket::pocket_type::MAGAZINE ); } bool item::is_battery() const @@ -6135,13 +6240,15 @@ bool item::is_comestible() const bool item::is_food() const { - return is_comestible() && ( get_comestible()->comesttype == "FOOD" || - get_comestible()->comesttype == "DRINK" ); + const std::string comest_type = get_comestible() ? get_comestible()->comesttype : ""; + return is_comestible() && ( comest_type == "FOOD" || + comest_type == "DRINK" ); } bool item::is_medication() const { - return is_comestible() && get_comestible()->comesttype == "MED"; + const std::string comest_type = get_comestible() ? get_comestible()->comesttype : ""; + return is_comestible() && comest_type == "MED"; } bool item::is_brewable() const @@ -6246,7 +6353,6 @@ bool item::is_ammo_container() const }, item_pocket::pocket_type::CONTAINER ); } - bool item::is_melee() const { for( int idx = DT_NULL + 1; idx != NUM_DT; ++idx ) { @@ -6296,7 +6402,7 @@ bool item::is_book() const bool item::is_map() const { - return get_category().get_id() == "maps"; + return get_category().get_id() == item_category_maps; } bool item::seal() @@ -6414,27 +6520,29 @@ bool item::is_reloadable_with( const itype_id &ammo ) const bool item::is_reloadable_helper( const itype_id &ammo, bool now ) const { - // empty ammo is passed for listing possible ammo apparently, so it needs to return true. if( !is_reloadable() ) { return false; - } else if( magazine_integral() ) { - if( !ammo.empty() ) { - if( ammo_data() ) { - if( ammo_current() != ammo ) { - return false; - } - } else { - const itype *at = find_type( ammo ); - if( ( !at->ammo || !ammo_types().count( at->ammo->type ) ) && - !magazine_compatible().count( ammo ) ) { - return false; - } + } + + // empty ammo is passed for listing possible ammo, so it needs to return true. + if( ammo.is_empty() ) { + return true; + } + + if( magazine_integral() ) { + if( ammo_data() ) { + if( ammo_current() != ammo ) { + return false; + } + } else { + if( ( !ammo->ammo || !ammo_types().count( ammo->ammo->type ) ) && + !magazine_compatible().count( ammo ) ) { + return false; } } - return now ? ( ammo_remaining() < ammo_capacity() ) : true; - } else { - return ammo.empty() ? true : magazine_compatible().count( ammo ); + return now ? ammo_remaining() < ammo_capacity( ammo->ammo->type ) : true; } + return magazine_compatible().count( ammo ); } bool item::is_salvageable() const @@ -6451,6 +6559,11 @@ bool item::is_salvageable() const return !has_flag( flag_NO_SALVAGE ); } +bool item::is_disassemblable() const +{ + return recipe_dictionary::get_uncraft( typeId() ) && !has_flag( flag_ETHEREAL_ITEM ); +} + bool item::is_craft() const { return craft_data_ != nullptr; @@ -6546,6 +6659,11 @@ bool item::can_contain( const item &it ) const // does the set of all sets contain itself? return false; } + // disallow putting portable holes into bags of holding + if( contents.bigger_on_the_inside( volume() ) && + it.contents.bigger_on_the_inside( it.volume() ) ) { + return false; + } for( const item *internal_it : contents.all_items_top( item_pocket::pocket_type::CONTAINER ) ) { if( internal_it->contents.can_contain_rigid( it ).success() ) { return true; @@ -6714,7 +6832,7 @@ gun_type_type item::gun_type() const // TODO: move to JSON and remove extraction of this from "GUN" (via skill id) //and from "GUNMOD" (via "mod_targets") in lang/extract_json_strings.py if( gun_skill() == skill_archery ) { - if( ammo_types().count( ammotype( "bolt" ) ) || typeId() == "bullet_crossbow" ) { + if( ammo_types().count( ammotype( "bolt" ) ) || typeId() == itype_bullet_crossbow ) { return gun_type_type( translate_marker_context( "gun_type_type", "crossbow" ) ); } else { return gun_type_type( translate_marker_context( "gun_type_type", "bow" ) ); @@ -6911,11 +7029,11 @@ int item::ammo_remaining() const if( is_tool() ) { // dirty hack for UPS, hopefully temporary - if( typeId() == "UPS_off" || typeId() == "adv_UPS_off" ) { + if( typeId() == itype_UPS_off || typeId() == itype_adv_UPS_off ) { return charges; } - if( type->tool->ammo_id.empty() || + if( ammo_types().empty() || !contents.has_pocket_type( item_pocket::pocket_type::MAGAZINE ) ) { // includes auxiliary gunmods if( has_flag( flag_USES_BIONIC_POWER ) ) { @@ -6945,42 +7063,28 @@ int item::ammo_remaining() const return 0; } -int item::ammo_capacity() const +int item::remaining_ammo_capacity() const { - return ammo_capacity( false ); + if( ammo_types().empty() ) { + return 0; + } + + const itype *loaded_ammo = ammo_data(); + if( loaded_ammo == nullptr ) { + return ammo_capacity( item::find_type( ammo_default() )->ammo->type ) - ammo_remaining(); + } else { + return ammo_capacity( loaded_ammo->ammo->type ) - ammo_remaining(); + } } -int item::ammo_capacity( bool potential_capacity ) const +int item::ammo_capacity( const ammotype &ammo ) const { - int res = 0; - const item *mag = magazine_current(); if( mag ) { - return mag->ammo_capacity(); + return mag->ammo_capacity( ammo ); } - if( is_tool() ) { - res = type->tool->max_charges; - if( res == 0 && magazine_default() != "null" && potential_capacity ) { - res = find_type( magazine_default() )->magazine->capacity; - } - for( const item *e : toolmods() ) { - res *= e->type->mod->capacity_multiplier; - } - } - - if( is_gun() ) { - res = type->gun->clip; - for( const item *e : gunmods() ) { - res *= e->type->mod->capacity_multiplier; - } - } - - if( is_magazine() ) { - res = type->magazine->capacity; - } - - return res; + return contents.ammo_capacity( ammo ); } int item::ammo_required() const @@ -6990,7 +7094,7 @@ int item::ammo_required() const } if( is_gun() ) { - if( ammo_types().empty() ) { + if( type->gun->ammo.empty() ) { return 0; } else if( has_flag( flag_FIRE_100 ) ) { return 100; @@ -7018,22 +7122,8 @@ int item::ammo_consume( int qty, const tripoint &pos ) return 0; } - item *mag = magazine_current(); - if( mag ) { - const int res = mag->ammo_consume( qty, pos ); - if( res && ammo_remaining() == 0 ) { - if( mag->has_flag( flag_MAG_DESTROY ) ) { - remove_item( *mag ); - } else if( mag->has_flag( flag_MAG_EJECT ) ) { - g->m.add_item( pos, *mag ); - remove_item( *mag ); - } - } - return res; - } - - if( is_magazine() ) { - return contents.ammo_consume( qty ); + if( is_magazine() || contents.has_pocket_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { + return contents.ammo_consume( qty, pos ); } else if( is_tool() || is_gun() ) { if( !contents.has_pocket_type( item_pocket::pocket_type::MAGAZINE ) || @@ -7047,15 +7137,6 @@ int item::ammo_consume( int qty, const tripoint &pos ) if( charges == 0 ) { curammo = nullptr; } - return qty; - } else { - for( item *it : contents.all_items_top( item_pocket::pocket_type::MAGAZINE ) ) { - qty = std::min( qty, it->charges ); - it->charges -= qty; - } - - on_contents_changed(); - return qty; } } @@ -7080,7 +7161,7 @@ const itype *item::ammo_data() const auto mods = is_gun() ? gunmods() : toolmods(); for( const item *e : mods ) { - if( !e->type->mod->ammo_modifier.empty() && e->ammo_current() != "null" && + if( !e->type->mod->ammo_modifier.empty() && !e->ammo_current().is_null() && item_controller->has_template( e->ammo_current() ) ) { return item_controller->find_template( e->ammo_current() ); } @@ -7095,10 +7176,10 @@ const itype *item::ammo_data() const itype_id item::ammo_current() const { const itype *ammo = ammo_data(); - return ammo ? ammo->get_id() : "null"; + return ammo ? ammo->get_id() : itype_id::NULL_ID(); } -const std::set &item::ammo_types( bool conversion ) const +std::set item::ammo_types( bool conversion ) const { if( conversion ) { const std::vector &mods = is_gun() ? gunmods() : toolmods(); @@ -7109,16 +7190,7 @@ const std::set &item::ammo_types( bool conversion ) const } } - if( is_gun() ) { - return type->gun->ammo; - } else if( is_tool() ) { - return type->tool->ammo_id; - } else if( is_magazine() ) { - return type->magazine->type; - } - - static std::set atypes = {}; - return atypes; + return contents.ammo_types(); } ammotype item::ammo_type() const @@ -7133,11 +7205,11 @@ itype_id item::ammo_default( bool conversion ) const { if( !ammo_types( conversion ).empty() ) { itype_id res = ammotype( *ammo_types( conversion ).begin() )->default_ammotype(); - if( !res.empty() ) { + if( !res.is_empty() ) { return res; } } - return "NULL"; + return itype_id::NULL_ID(); } itype_id item::common_ammo_default( bool conversion ) const @@ -7147,13 +7219,13 @@ itype_id item::common_ammo_default( bool conversion ) const const item *mag = magazine_current(); if( mag && mag->type->magazine->type.count( at ) ) { itype_id res = at->default_ammotype(); - if( !res.empty() ) { + if( !res.is_empty() ) { return res; } } } } - return "NULL"; + return itype_id::NULL_ID(); } std::set item::ammo_effects( bool with_ammo ) const @@ -7190,22 +7262,12 @@ std::string item::ammo_sort_name() const bool item::magazine_integral() const { - if( is_gun() && type->gun->clip > 0 ) { - return true; - } - for( const item *m : is_gun() ? gunmods() : toolmods() ) { - if( !m->type->mod->magazine_adaptor.empty() ) { - return false; - } - } - - // We have an integral magazine if we're a gun with an ammo capacity (clip) or we have no magazines. - return ( is_gun() && type->gun->clip > 0 ) || type->magazines.empty(); + return contents.has_pocket_type( item_pocket::pocket_type::MAGAZINE ); } itype_id item::magazine_default( bool conversion ) const { - if( !ammo_types( conversion ).empty() ) { + if( !magazine_compatible( conversion ).empty() ) { if( conversion ) { for( const item *m : is_gun() ? gunmods() : toolmods() ) { if( !m->type->mod->magazine_adaptor.empty() ) { @@ -7216,12 +7278,15 @@ itype_id item::magazine_default( bool conversion ) const } } } - auto mag = type->magazine_default.find( ammotype( *ammo_types( conversion ).begin() ) ); - if( mag != type->magazine_default.end() ) { - return mag->second; + if( !ammo_types( conversion ).empty() ) { + auto mag = type->magazine_default.find( ammotype( *ammo_types( conversion ).begin() ) ); + if( mag != type->magazine_default.end() ) { + return mag->second; + } } + return *magazine_compatible( conversion ).begin(); } - return "null"; + return itype_id::NULL_ID(); } std::set item::magazine_compatible( bool conversion ) const @@ -7241,13 +7306,7 @@ std::set item::magazine_compatible( bool conversion ) const } } - for( const ammotype &atype : ammo_types( conversion ) ) { - if( type->magazines.count( atype ) ) { - std::set magazines_for_atype = type->magazines.find( atype )->second; - mags.insert( magazines_for_atype.begin(), magazines_for_atype.end() ); - } - } - return mags; + return contents.magazine_compatible(); } item *item::magazine_current() @@ -7309,10 +7368,11 @@ ret_val item::is_gunmod_compatible( const item &mod ) const mod.type->gunmod->location.name() ); } else if( !mod.type->gunmod->usable.count( gun_type() ) && - !mod.type->gunmod->usable.count( typeId() ) ) { + !mod.type->gunmod->usable.count( typeId().str() ) ) { return ret_val::make_failure( _( "cannot have a %s" ), mod.tname() ); - } else if( typeId() == "hand_crossbow" && !mod.type->gunmod->usable.count( pistol_gun_type ) ) { + } else if( typeId() == itype_hand_crossbow && + !mod.type->gunmod->usable.count( pistol_gun_type ) ) { return ret_val::make_failure( _( "isn't big enough to use that mod" ) ); } else if( mod.type->gunmod->location.str() == "underbarrel" && @@ -7330,13 +7390,13 @@ ret_val item::is_gunmod_compatible( const item &mod ) const return ret_val::make_failure( _( "%1$s cannot be used on item with no compatible ammo types" ), mod.tname( 1 ) ); } - } else if( mod.typeId() == "waterproof_gunmod" && has_flag( flag_WATERPROOF_GUN ) ) { + } else if( mod.typeId() == itype_waterproof_gunmod && has_flag( flag_WATERPROOF_GUN ) ) { return ret_val::make_failure( _( "is already waterproof" ) ); - } else if( mod.typeId() == "tuned_mechanism" && has_flag( flag_NEVER_JAMS ) ) { + } else if( mod.typeId() == itype_tuned_mechanism && has_flag( flag_NEVER_JAMS ) ) { return ret_val::make_failure( _( "is already eminently reliable" ) ); - } else if( mod.typeId() == "brass_catcher" && has_flag( flag_RELOAD_EJECT ) ) { + } else if( mod.typeId() == itype_brass_catcher && has_flag( flag_RELOAD_EJECT ) ) { return ret_val::make_failure( _( "cannot have a brass catcher" ) ); } else if( ( mod.type->mod->ammo_modifier.empty() || !mod.type->mod->magazine_adaptor.empty() ) @@ -7386,7 +7446,7 @@ std::map item::gun_all_modes() const } else if( e->is_gunmod() ) { for( const std::pair &m : e->type->gunmod->mode_modifier ) { //checks for melee gunmod, points to gunmod - if( m.first == "REACH" ) { + if( m.first == gun_mode_REACH ) { res.emplace( m.first, gun_mode { m.second.name(), const_cast( e ), m.second.qty(), m.second.flags() } ); //otherwise points to the parent gun, not the gunmod @@ -7454,8 +7514,6 @@ void item::gun_cycle_mode() } } gun_set_mode( modes.begin()->first ); - - return; } const use_function *item::get_use( const std::string &use_name ) const @@ -7510,7 +7568,7 @@ int item::units_remaining( const Character &ch, int limit ) const int res = ammo_remaining(); if( res < limit && has_flag( flag_USE_UPS ) ) { - res += ch.charges_of( "UPS", limit - res ); + res += ch.charges_of( itype_UPS, limit - res ); } return std::min( static_cast( res ), limit ); @@ -7561,7 +7619,7 @@ void item::reload_option::qty( int val ) *ammo->contents.all_items_top( item_pocket::pocket_type::CONTAINER ).front() : *ammo; if( ( ammo_in_container && !ammo_obj.is_ammo() ) || - ( ammo_in_liquid_container && !ammo_obj.made_of( LIQUID ) ) ) { + ( ammo_in_liquid_container && !ammo_obj.made_of( phase_id::LIQUID ) ) ) { debugmsg( "Invalid reload option: %s", ammo_obj.tname() ); return; } @@ -7570,7 +7628,7 @@ void item::reload_option::qty( int val ) // This gets rounded up to 1 later. int remaining_capacity = target->is_watertight_container() ? target->get_remaining_capacity_for_liquid( ammo_obj, true ) : - target->ammo_capacity() - target->ammo_remaining(); + target->remaining_ammo_capacity(); if( target->has_flag( flag_RELOAD_ONE ) && !ammo->has_flag( flag_SPEEDLOADER ) ) { remaining_capacity = 1; } @@ -7625,9 +7683,9 @@ bool item::reload( player &u, item_location ammo, int qty ) } item_location container; - if( ammo->is_ammo_container() ) { + if( ammo->has_flag( flag_SPEEDLOADER ) ) { container = ammo; - // if the thing passed in isn't ammo, we get the first ammo contained + // if the thing passed in is a speed loader, we want the ammo ammo = item_location( ammo, &ammo->contents.first_ammo() ); } @@ -7636,9 +7694,12 @@ bool item::reload( player &u, item_location ammo, int qty ) } // limit quantity of ammo loaded to remaining capacity - int limit = is_watertight_container() - ? get_remaining_capacity_for_liquid( *ammo ) - : ammo_capacity() - ammo_remaining(); + int limit = 0; + if( is_watertight_container() ) { + limit = get_remaining_capacity_for_liquid( *ammo ); + } else if( ammo->ammo_data() && ammo->ammo_data()->ammo ) { + limit = ammo_capacity( ammo->ammo_data()->ammo->type ) - ammo_remaining(); + } if( ammo->ammo_type() == ammo_plutonium ) { limit = limit / PLUTONIUM_CHARGES + ( limit % PLUTONIUM_CHARGES != 0 ); @@ -7659,21 +7720,32 @@ bool item::reload( player &u, item_location ammo, int qty ) } } - item to_reload = *ammo; - to_reload.charges = qty; - ammo->charges -= qty; - bool merged = false; - for( item *it : contents.all_items_top() ) { - if( it->merge_charges( to_reload ) ) { - merged = true; - break; - } - } - if( !merged ) { - put_in( to_reload, item_pocket::pocket_type::MAGAZINE ); + if( ammo->has_flag( flag_SPEEDLOADER ) ) { + // sets curammo to one of the ammo types contained + curammo = ammo->contents.first_ammo().type; + qty = std::min( qty, ammo->ammo_remaining() ); + item ammo_copy( ammo->contents.first_ammo() ); + ammo_copy.charges = qty; + put_in( ammo_copy, item_pocket::pocket_type::MAGAZINE ); + ammo->ammo_consume( qty, tripoint_zero ); + } else if( ammo->ammo_type() == ammo_plutonium ) { + curammo = ammo->type; + ammo->charges -= qty; + + // any excess is wasted rather than overfilling the item + item plut( *ammo ); + plut.charges = std::min( qty * PLUTONIUM_CHARGES, ammo_capacity( ammotype( "plut_cell" ) ) ); + put_in( plut, item_pocket::pocket_type::MAGAZINE ); + } else { + curammo = ammo->type; + qty = std::min( qty, ammo->charges ); + item item_copy( *ammo ); + ammo->charges -= qty; + item_copy.charges = qty; + put_in( item_copy, item_pocket::pocket_type::MAGAZINE ); } } else if( is_watertight_container() ) { - if( !ammo->made_of_from_type( LIQUID ) ) { + if( !ammo->made_of_from_type( phase_id::LIQUID ) ) { debugmsg( "Tried to reload liquid container with non-liquid." ); return false; } @@ -7681,7 +7753,7 @@ bool item::reload( player &u, item_location ammo, int qty ) container->on_contents_changed(); } fill_with( *ammo->type, qty ); - } else if( !magazine_integral() ) { + } else { // if we already have a magazine loaded prompt to eject it if( magazine_current() ) { //~ %1$s: magazine name, %2$s: weapon name @@ -7694,35 +7766,9 @@ bool item::reload( player &u, item_location ammo, int qty ) remove_item( *magazine_current() ); } - put_in( *ammo, item_pocket::pocket_type::MAGAZINE ); + put_in( *ammo, item_pocket::pocket_type::MAGAZINE_WELL ); ammo.remove_item(); return true; - - } else { - if( ammo->has_flag( flag_SPEEDLOADER ) ) { - // sets curammo to one of the ammo types contained - curammo = ammo->contents.first_ammo().type; - qty = std::min( qty, ammo->ammo_remaining() ); - item ammo_copy( ammo->contents.first_ammo() ); - ammo_copy.charges = qty; - put_in( ammo_copy, item_pocket::pocket_type::MAGAZINE ); - ammo->ammo_consume( qty, tripoint_zero ); - } else if( ammo->ammo_type() == "plutonium" ) { - curammo = ammo->type; - ammo->charges -= qty; - - // any excess is wasted rather than overfilling the item - item plut( *ammo ); - plut.charges = std::min( qty * PLUTONIUM_CHARGES, ammo_capacity() ); - put_in( plut, item_pocket::pocket_type::MAGAZINE ); - } else { - curammo = ammo->type; - qty = std::min( qty, ammo->charges ); - item item_copy( *ammo ); - ammo->charges -= qty; - item_copy.charges = qty; - put_in( item_copy, item_pocket::pocket_type::MAGAZINE ); - } } if( ammo->charges == 0 && !ammo->has_flag( flag_SPEEDLOADER ) ) { @@ -7763,7 +7809,7 @@ float item::simulate_burn( fire_data &frd ) const } // Liquids that don't burn well smother fire well instead - if( made_of( LIQUID ) && time_added < 200 ) { + if( made_of( phase_id::LIQUID ) && time_added < 200 ) { time_added -= rng( 400.0 * to_liter( vol ), 1200.0 * to_liter( vol ) ); } else if( mats.size() > 1 ) { // Average the materials @@ -7867,7 +7913,7 @@ bool item::flammable( int threshold ) const itype_id item::typeId() const { - return type ? type->get_id() : "null"; + return type ? type->get_id() : itype_id::NULL_ID(); } bool item::getlight( float &luminance, int &width, int &direction ) const @@ -7895,14 +7941,17 @@ bool item::getlight( float &luminance, int &width, int &direction ) const int item::getlight_emit() const { float lumint = type->light_emission; - - if( lumint == 0 ) { + if( ammo_required() == 0 ) { + return lumint; + } + if( lumint == 0 || ammo_remaining() == 0 ) { return 0; } if( has_flag( flag_CHARGEDIM ) && is_tool() && !has_flag( flag_USE_UPS ) ) { // Falloff starts at 1/5 total charge and scales linearly from there to 0. - if( ammo_capacity() && ammo_remaining() < ( ammo_capacity() / 5 ) ) { - lumint *= ammo_remaining() * 5.0 / ammo_capacity(); + const ammotype &loaded_ammo = ammo_data()->ammo->type; + if( ammo_capacity( loaded_ammo ) && ammo_remaining() < ( ammo_capacity( loaded_ammo ) / 5 ) ) { + lumint *= ammo_remaining() * 5.0 / ammo_capacity( loaded_ammo ); } } return lumint; @@ -7989,7 +8038,7 @@ bool item::use_amount( const itype_id &it, int &quantity, std::list &used, bool item::use_amount_internal( const itype_id &it, int &quantity, std::list &used, const std::function &filter ) { - if( typeId() == "null" ) { + if( typeId().is_null() ) { return false; } if( typeId() == it && quantity > 0 && filter( *this ) ) { @@ -8081,7 +8130,7 @@ void item::set_item_specific_energy( const float new_specific_energy ) item_tags.insert( "HOT" ); } else if( freeze_percentage > 0.5 ) { item_tags.insert( "FROZEN" ); - current_phase = SOLID; + current_phase = phase_id::SOLID; // If below freezing temp AND the food may have parasites AND food does not have "NO_PARASITES" tag then add the "NO_PARASITES" tag. if( is_food() && new_item_temperature < freezing_temperature && get_comestible()->parasites > 0 ) { if( !( item_tags.count( "NO_PARASITES" ) ) ) { @@ -8158,7 +8207,7 @@ void item::set_item_temperature( float new_temperature ) item_tags.insert( "HOT" ); } else if( freeze_percentage > 0.5 ) { item_tags.insert( "FROZEN" ); - current_phase = SOLID; + current_phase = phase_id::SOLID; // If below freezing temp AND the food may have parasites AND food does not have "NO_PARASITES" tag then add the "NO_PARASITES" tag. if( is_food() && new_temperature < freezing_temperature && get_comestible()->parasites > 0 ) { if( !( item_tags.count( "NO_PARASITES" ) ) ) { @@ -8234,7 +8283,17 @@ bool item::use_charges( const itype_id &what, int &qty, std::list &used, int n = std::min( e->ammo_remaining(), qty ); qty -= n; - used.push_back( item( *e ).ammo_set( e->ammo_current(), n ) ); + item temp( *e ); + if( temp.is_magazine() ) { + temp.ammo_set( e->ammo_current(), n ); + } else if( e->magazine_current() != nullptr ) { + item temp_mag( *e->magazine_current() ); + temp_mag.ammo_set( e->ammo_current(), n ); + temp.put_in( temp_mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } else { + return VisitResponse::SKIP; + } + used.push_back( temp ); e->ammo_consume( n, pos ); } return VisitResponse::SKIP; @@ -8329,13 +8388,12 @@ iteminfo::iteminfo( const std::string &Type, const std::string &Name, double Val } iteminfo vol_to_info( const std::string &type, const std::string &left, - const units::volume &vol ) + const units::volume &vol, int decimal_places ) { iteminfo::flags f = iteminfo::lower_is_better | iteminfo::no_newline; int converted_volume_scale = 0; const double converted_volume = - convert_volume( vol.value(), - &converted_volume_scale ); + round_up( convert_volume( vol.value(), &converted_volume_scale ), decimal_places ); if( converted_volume_scale != 0 ) { f |= iteminfo::is_decimal; } @@ -8344,12 +8402,12 @@ iteminfo vol_to_info( const std::string &type, const std::string &left, } iteminfo weight_to_info( const std::string &type, const std::string &left, - const units::mass &weight ) + const units::mass &weight, int /* decimal_places */ ) { iteminfo::flags f = iteminfo::lower_is_better | iteminfo::no_newline; const double converted_weight = convert_weight( weight ); f |= iteminfo::is_decimal; - return iteminfo( type, left, string_format( " %s", volume_units_abbr() ), f, + return iteminfo( type, left, string_format( " %s", weight_units() ), f, converted_weight ); } @@ -8363,13 +8421,6 @@ bool item::will_explode_in_fire() const return true; } - // Most containers do nothing to protect the contents from fire - if( !is_magazine() || !type->magazine->protects_contents ) { - return has_item_with( [&]( const item & it ) { - return this != &it && it.will_explode_in_fire(); - } ); - } - return false; } @@ -8381,15 +8432,11 @@ bool item::detonate( const tripoint &p, std::vector &drops ) } else if( type->ammo && ( type->ammo->special_cookoff || type->ammo->cookoff ) ) { int charges_remaining = charges; const int rounds_exploded = rng( 1, charges_remaining / 2 ); - // Yank the exploding item off the map for the duration of the explosion - // so it doesn't blow itself up. - const islot_ammo &ammo_type = *type->ammo; - - if( ammo_type.special_cookoff ) { + if( type->ammo->special_cookoff ) { // If it has a special effect just trigger it. - apply_ammo_effects( p, ammo_type.ammo_effects ); + apply_ammo_effects( p, type->ammo->ammo_effects ); } - if( ammo_type.cookoff ) { + if( type->ammo->cookoff ) { // If ammo type can burn, then create an explosion proportional to quantity. explosion_handler::explosion( p, 3.0f * sqrtf( sqrtf( rounds_exploded / 25.0f ) ), 0.0f, false, 0 ); } @@ -8401,19 +8448,6 @@ bool item::detonate( const tripoint &p, std::vector &drops ) } return true; - } else if( !contents.empty() && ( !type->magazine || !type->magazine->protects_contents ) ) { - std::vector removed_items; - bool detonated = false; - for( item *it : contents.all_items_top() ) { - if( it->detonate( p, drops ) ) { - removed_items.push_back( it ); - detonated = true; - } - } - for( item *it : removed_items ) { - remove_item( *it ); - } - return detonated; } return false; @@ -8430,7 +8464,7 @@ bool item::has_rotten_away() const bool item::has_rotten_away( const tripoint &pnt, float spoil_multiplier ) { if( goes_bad() ) { - process_temperature_rot( 1, pnt, nullptr, temperature_flag::TEMP_NORMAL, spoil_multiplier ); + process_temperature_rot( 1, pnt, nullptr, temperature_flag::NORMAL, spoil_multiplier ); return has_rotten_away(); } else { contents.remove_rotten( pnt ); @@ -8523,11 +8557,11 @@ uint64_t item::make_component_hash() const // First we need to sort the IDs so that identical ingredients give identical hashes. std::multiset id_set; for( const item &it : components ) { - id_set.insert( it.typeId() ); + id_set.insert( it.typeId().str() ); } std::string concatenated_ids; - for( std::string id : id_set ) { + for( const std::string &id : id_set ) { concatenated_ids += id; } @@ -8592,19 +8626,19 @@ bool item::process_temperature_rot( float insulation, const tripoint &pos, int temp = g->weather.get_temperature( pos ); switch( flag ) { - case TEMP_NORMAL: + case temperature_flag::NORMAL: // Just use the temperature normally break; - case TEMP_FRIDGE: + case temperature_flag::FRIDGE: temp = std::min( temp, temperatures::fridge ); break; - case TEMP_FREEZER: + case temperature_flag::FREEZER: temp = std::min( temp, temperatures::freezer ); break; - case TEMP_HEATER: + case temperature_flag::HEATER: temp = std::max( temp, temperatures::normal ); break; - case TEMP_ROOT_CELLAR: + case temperature_flag::ROOT_CELLAR: temp = AVERAGE_ANNUAL_TEMPERATURE; break; default: @@ -8664,19 +8698,19 @@ bool item::process_temperature_rot( float insulation, const tripoint &pos, } switch( flag ) { - case TEMP_NORMAL: + case temperature_flag::NORMAL: // Just use the temperature normally break; - case TEMP_FRIDGE: + case temperature_flag::FRIDGE: env_temperature = std::min( env_temperature, static_cast( temperatures::fridge ) ); break; - case TEMP_FREEZER: + case temperature_flag::FREEZER: env_temperature = std::min( env_temperature, static_cast( temperatures::freezer ) ); break; - case TEMP_HEATER: + case temperature_flag::HEATER: env_temperature = std::max( env_temperature, static_cast( temperatures::normal ) ); break; - case TEMP_ROOT_CELLAR: + case temperature_flag::ROOT_CELLAR: env_temperature = AVERAGE_ANNUAL_TEMPERATURE; break; default: @@ -8887,7 +8921,7 @@ void item::calc_temp( const int temp, const float insulation, const time_point & item_tags.insert( "HOT" ); } else if( freeze_percentage > 0.5 ) { item_tags.insert( "FROZEN" ); - current_phase = SOLID; + current_phase = phase_id::SOLID; // If below freezing temp AND the food may have parasites AND food does not have "NO_PARASITES" tag then add the "NO_PARASITES" tag. if( is_food() && new_item_temperature < freezing_temperature && get_comestible()->parasites > 0 ) { if( !( item_tags.count( "NO_PARASITES" ) ) ) { @@ -8992,14 +9026,14 @@ bool item::process_corpse( player *carrier, const tripoint &pos ) if( rng( 0, volume() / units::legacy_volume_factor ) > burnt && g->revive_corpse( pos, *this ) ) { if( carrier == nullptr ) { if( g->u.sees( pos ) ) { - if( corpse->in_species( ROBOT ) ) { + if( corpse->in_species( species_ROBOT ) ) { add_msg( m_warning, _( "A nearby robot has repaired itself and stands up!" ) ); } else { add_msg( m_warning, _( "A nearby corpse rises and moves towards you!" ) ); } } } else { - if( corpse->in_species( ROBOT ) ) { + if( corpse->in_species( species_ROBOT ) ) { carrier->add_msg_if_player( m_warning, _( "Oh dear god, a robot you're carrying has started moving!" ) ); } else { @@ -9102,12 +9136,12 @@ bool item::process_litcig( player *carrier, const tripoint &pos ) if( carrier != nullptr ) { carrier->add_msg_if_player( m_neutral, _( "You finish your %s." ), tname() ); } - if( typeId() == "cig_lit" ) { - convert( "cig_butt" ); - } else if( typeId() == "cigar_lit" ) { - convert( "cigar_butt" ); + if( typeId() == itype_cig_lit ) { + convert( itype_cig_butt ); + } else if( typeId() == itype_cigar_lit ) { + convert( itype_cigar_butt ); } else { // joint - convert( "joint_roach" ); + convert( itype_joint_roach ); if( carrier != nullptr ) { carrier->add_effect( effect_weed_high, 1_minutes ); // one last puff g->m.add_field( pos + point( rng( -1, 1 ), rng( -1, 1 ) ), fd_weedsmoke, 2 ); @@ -9181,12 +9215,12 @@ bool item::process_extinguish( player *carrier, const tripoint &pos ) // cig dies out if( has_flag( flag_LITCIG ) ) { - if( typeId() == "cig_lit" ) { - convert( "cig_butt" ); - } else if( typeId() == "cigar_lit" ) { - convert( "cigar_butt" ); + if( typeId() == itype_cig_lit ) { + convert( itype_cig_butt ); + } else if( typeId() == itype_cigar_lit ) { + convert( itype_cigar_butt ); } else { // joint - convert( "joint_roach" ); + convert( itype_joint_roach ); } } else { // transform (lit) items if( type->tool->revert_to ) { @@ -9344,7 +9378,7 @@ bool item::process_tool( player *carrier, const tripoint &pos ) // for items in player possession if insufficient charges within tool try UPS if( carrier && has_flag( flag_USE_UPS ) ) { - if( carrier->use_charges_if_avail( "UPS", energy ) ) { + if( carrier->use_charges_if_avail( itype_UPS, energy ) ) { energy = 0; } } @@ -9384,7 +9418,8 @@ bool item::process_blackpowder_fouling( player *carrier ) bool item::process( player *carrier, const tripoint &pos, bool activate, float insulation, temperature_flag flag, float spoil_multiplier_parent ) { - contents.process( carrier, pos, activate, insulation, flag, spoil_multiplier_parent ); + contents.process( carrier, pos, activate, type->insulation_factor * insulation, flag, + spoil_multiplier_parent ); return process_internal( carrier, pos, activate, insulation, flag, spoil_multiplier_parent ); } @@ -9600,21 +9635,18 @@ bool item::is_reloadable() const if( has_flag( flag_NO_RELOAD ) && !has_flag( flag_VEHICLE ) ) { return false; // turrets ignore NO_RELOAD flag - } else if( !is_gun() && !is_tool() && !is_magazine() ) { - return false; - - } else if( ammo_types().empty() ) { - return false; + } else if( is_magazine() || contents.has_pocket_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { + return true; } - return true; + return false; } std::string item::type_name( unsigned int quantity ) const { const auto iter = item_vars.find( "name" ); std::string ret_name; - if( typeId() == "blood" ) { + if( typeId() == itype_blood ) { if( corpse == nullptr || corpse->id.is_null() ) { return npgettext( "item name", "human blood", "human blood", quantity ); } else { @@ -9632,9 +9664,9 @@ std::string item::type_name( unsigned int quantity ) const for( const conditional_name &cname : type->conditional_names ) { // Lambda for recursively searching for a item ID among all components. std::function )> component_id_contains = - [&]( std::list components ) { + [&]( const std::list &components ) { for( const item &component : components ) { - if( component.typeId().find( cname.condition ) != std::string::npos || + if( component.typeId().str().find( cname.condition ) != std::string::npos || component_id_contains( component.components ) ) { return true; } @@ -9766,7 +9798,7 @@ bool item::on_drop( const tripoint &pos, map &m ) { // dropping liquids, even currently frozen ones, on the ground makes them // dirty - if( made_of_from_type( LIQUID ) && !m.has_flag( flag_LIQUIDCONT, pos ) && + if( made_of_from_type( phase_id::LIQUID ) && !m.has_flag( flag_LIQUIDCONT, pos ) && !item_tags.count( "DIRTY" ) ) { item_tags.insert( "DIRTY" ); } diff --git a/src/item.h b/src/item.h index d5c83542af22a..42d6dd29fd1bb 100644 --- a/src/item.h +++ b/src/item.h @@ -61,13 +61,9 @@ struct islot_armor; struct use_function; enum art_effect_passive : int; -enum phase_id : int; enum body_part : int; -enum m_size : int; enum class side : int; class body_part_set; - -using itype_id = std::string; class map; struct damage_instance; struct damage_unit; @@ -155,9 +151,9 @@ struct iteminfo { }; iteminfo vol_to_info( const std::string &type, const std::string &left, - const units::volume &vol ); + const units::volume &vol, int decimal_places = 2 ); iteminfo weight_to_info( const std::string &type, const std::string &left, - const units::mass &weight ); + const units::mass &weight, int decimal_places = 2 ); inline iteminfo::flags operator|( iteminfo::flags l, iteminfo::flags r ) { @@ -198,6 +194,13 @@ class item : public visitable /** For constructing in-progress crafts */ item( const recipe *rec, int qty, std::list items, std::vector selections ); + // Legacy constructor for constructing from string rather than itype_id + // TODO: remove this and migrate code using it. + template + item( const std::string &itype, Args &&... args ) : + item( itype_id( itype ), std::forward( args )... ) + {} + ~item(); /** Return a pointer-like type that's automatically invalidated if this @@ -391,6 +394,8 @@ class item : public visitable /* type specific helper functions for info() that should probably be in itype() */ void basic_info( std::vector &info, const iteminfo_query *parts, int batch, bool debug ) const; + void debug_info( std::vector &info, const iteminfo_query *parts, int batch, + bool debug ) const; void med_info( const item *med_item, std::vector &info, const iteminfo_query *parts, int batch, bool debug ) const; void food_info( const item *food_item, std::vector &info, const iteminfo_query *parts, @@ -725,8 +730,8 @@ class item : public visitable * Returns this item into its default container. If it does not have a default container, * returns this. It's intended to be used like \code newitem = newitem.in_its_container();\endcode */ - item in_its_container() const; - item in_container( const itype_id &container_type ) const; + item in_its_container( int qty = INFINITE_CHARGES ) const; + item in_container( const itype_id &container_type, int qty = INFINITE_CHARGES ) const; bool item_has_uses_recursive() const; @@ -791,7 +796,7 @@ class item : public visitable * @return true if the item is fully rotten and is ready to be removed */ bool process_temperature_rot( float insulation, const tripoint &pos, player *carrier, - temperature_flag flag = temperature_flag::TEMP_NORMAL, float spoil_modifier = 1.0f ); + temperature_flag flag = temperature_flag::NORMAL, float spoil_modifier = 1.0f ); /** Set the item to HOT */ void heat_up(); @@ -1099,7 +1104,7 @@ class item : public visitable * Returns false if the item is not destroyed. */ bool process( player *carrier, const tripoint &pos, bool activate, float insulation = 1, - temperature_flag flag = temperature_flag::TEMP_NORMAL, float spoil_multiplier_parent = 1.0f ); + temperature_flag flag = temperature_flag::NORMAL, float spoil_multiplier_parent = 1.0f ); /** * Gets the point (vehicle tile) the cable is connected to. @@ -1149,6 +1154,7 @@ class item : public visitable bool is_book() const; bool is_map() const; bool is_salvageable() const; + bool is_disassemblable() const; bool is_craft() const; bool is_deployable() const; @@ -1492,7 +1498,7 @@ class item : public visitable /** * Whether this item (when worn) covers the given body part. */ - bool covers( body_part bp ) const; + bool covers( const bodypart_id &bp ) const; /** * Bitset of all covered body parts. * @@ -1555,7 +1561,7 @@ class item : public visitable */ int get_coverage() const; - enum class encumber_flags { + enum class encumber_flags : int { none = 0, assume_full = 1, }; @@ -1697,10 +1703,15 @@ class item : public visitable /** Quantity of ammunition currently loaded in tool, gun or auxiliary gunmod */ int ammo_remaining() const; - /** Maximum quantity of ammunition loadable for tool, gun or auxiliary gunmod */ - int ammo_capacity() const; - /** @param potential_capacity whether to try a default magazine if necessary */ - int ammo_capacity( bool potential_capacity ) const; + /** + * ammo capacity for a specific ammo + */ + int ammo_capacity( const ammotype &ammo ) const; + /** + * how much more ammo can fit into this item + * if this item is not loaded, gives remaining capacity of its default ammo + */ + int remaining_ammo_capacity() const; /** Quantity of ammunition consumed per usage of tool or with each shot of gun */ int ammo_required() const; @@ -1733,15 +1744,16 @@ class item : public visitable /** Set of ammo types (@ref ammunition_type) used by item * @param conversion whether to include the effect of any flags or mods which convert the type * @return empty set if item does not use a specific ammo type (and is consequently not reloadable) */ - const std::set &ammo_types( bool conversion = true ) const; + std::set ammo_types( bool conversion = true ) const; /** Ammo type of an ammo item * @return ammotype of ammo item or a null id if the item is not ammo */ ammotype ammo_type() const; - /** Get default ammo used by item or "NULL" if item does not have a default ammo type + /** Get default ammo used by item or a null id if item does not have a default ammo type * @param conversion whether to include the effect of any flags or mods which convert the type - * @return NULL if item does not use a specific ammo type (and is consequently not reloadable) */ + * @return itype_id::NULL_ID() if item does not use a specific ammo type + * (and is consequently not reloadable) */ itype_id ammo_default( bool conversion = true ) const; /** Get default ammo for the first ammotype common to an item and its current magazine or "NULL" if none exists @@ -2091,7 +2103,7 @@ class item : public visitable const std::function &filter = return_true ); const use_function *get_use_internal( const std::string &use_name ) const; bool process_internal( player *carrier, const tripoint &pos, bool activate, float insulation = 1, - temperature_flag flag = temperature_flag::TEMP_NORMAL, float spoil_modifier = 1.0f ); + temperature_flag flag = temperature_flag::NORMAL, float spoil_modifier = 1.0f ); /** * Calculate the thermal energy and temperature change of the item * @param temp Temperature of surroundings @@ -2112,7 +2124,7 @@ class item : public visitable bool is_reloadable_helper( const itype_id &ammo, bool now ) const; public: - enum class sizing { + enum class sizing : int { human_sized_human_char = 0, big_sized_human_char, small_sized_human_char, @@ -2258,18 +2270,16 @@ bool item_compare_by_charges( const item &left, const item &right ); bool item_ptr_compare_by_charges( const item *left, const item *right ); /** - * Hint value used in a hack to decide text color. - * - * This is assigned as a result of some legacy logic in @ref draw_item_info(). This - * will eventually be rewritten to eliminate the need for this hack. + * Hint value used for item examination screen and filtering items by action. + * Represents whether an item permits given action (reload, wear, read, etc.). */ -enum class hint_rating : int { - /** Item should display as gray */ - cant = 0, - /** Item should display as red */ - iffy = 1, - /** Item should display as green */ - good = -999 +enum class hint_rating { + /** Item permits this action */ + good, + /** Item permits this action, but circumstances don't */ + iffy, + /** Item does not permit this action */ + cant }; /** diff --git a/src/item_action.cpp b/src/item_action.cpp index 8dc9c397f482b..d9b773b4917c0 100644 --- a/src/item_action.cpp +++ b/src/item_action.cpp @@ -172,7 +172,7 @@ item_action_map item_action_generator::map_actions_to_items( player &p, } if( better ) { - candidates[use] = i; + candidates[use] = actual_item; if( actual_item->ammo_required() == 0 ) { to_remove.insert( use ); } @@ -287,7 +287,7 @@ void game::item_action_menu() []( const std::pair &elem ) { std::string ss = elem.second->display_name(); if( elem.second->ammo_required() ) { - ss += string_format( " (%d/%d)", elem.second->ammo_required(), elem.second->ammo_remaining() ); + ss += string_format( "(-%d)", elem.second->ammo_required() ); } const auto method = elem.second->get_use( elem.first ); @@ -337,10 +337,6 @@ void game::item_action_menu() return; } - draw_ter(); - wrefresh( w_terrain ); - draw_panels( true ); - const item_action_id action = std::get<0>( menu_items[kmenu.ret] ); item *it = iactions[action]; diff --git a/src/item_contents.cpp b/src/item_contents.cpp index d87f9d107f1d4..b9d186ae3c34b 100644 --- a/src/item_contents.cpp +++ b/src/item_contents.cpp @@ -17,7 +17,8 @@ struct tripoint; static const std::vector avail_types{ item_pocket::pocket_type::CONTAINER, - item_pocket::pocket_type::MAGAZINE + item_pocket::pocket_type::MAGAZINE, + item_pocket::pocket_type::MAGAZINE_WELL }; item_contents::item_contents( const std::vector &pockets ) @@ -72,6 +73,21 @@ bool item_contents::full( bool allow_bucket ) const return true; } +bool item_contents::bigger_on_the_inside( const units::volume &container_volume ) const +{ + units::volume min_logical_volume = 0_ml; + for( const item_pocket &pocket : contents ) { + if( pocket.is_type( item_pocket::pocket_type::CONTAINER ) ) { + if( pocket.rigid() ) { + min_logical_volume += pocket.max_contains_volume(); + } else { + min_logical_volume += pocket.magazine_well(); + } + } + } + return container_volume < min_logical_volume; +} + size_t item_contents::size() const { return contents.size(); @@ -79,14 +95,36 @@ size_t item_contents::size() const void item_contents::combine( const item_contents &read_input ) { + std::vector uninserted_items; + size_t pocket_index = 0; + for( const item_pocket &pocket : read_input.contents ) { - for( const item *it : pocket.all_items_top() ) { - const ret_val inserted = insert_item( *it, pocket.saved_type() ); - if( !inserted.success() ) { - debugmsg( "error: tried to put an item into a pocket that can't fit into it while loading. err: %s", - inserted.str() ); + if( pocket_index < contents.size() ) { + auto current_pocket_iter = contents.begin(); + std::advance( current_pocket_iter, pocket_index ); + + for( const item *it : pocket.all_items_top() ) { + const ret_val inserted = current_pocket_iter->insert_item( *it ); + if( !inserted.success() ) { + uninserted_items.push_back( *it ); + debugmsg( "error: tried to put an item into a pocket that can't fit into it while loading. err: %s", + inserted.str() ); + } + } + + if( pocket.saved_sealed() ) { + current_pocket_iter->seal(); + } + } else { + for( const item *it : pocket.all_items_top() ) { + uninserted_items.push_back( *it ); } } + ++pocket_index; + } + + for( const item &uninserted_item : uninserted_items ) { + insert_item( uninserted_item, item_pocket::pocket_type::MIGRATION ); } } @@ -102,6 +140,7 @@ ret_val item_contents::find_pocket_for( const item &it, } if( pk_type != item_pocket::pocket_type::CONTAINER && pk_type != item_pocket::pocket_type::MAGAZINE && + pk_type != item_pocket::pocket_type::MAGAZINE_WELL && pocket.is_type( pk_type ) ) { return ret_val::make_success( &pocket, "special pocket type override" ); } @@ -265,8 +304,7 @@ ret_val item_contents::can_contain( const item &it ) const ret_val ret = ret_val::make_failure( _( "is not a container" ) ); for( const item_pocket &pocket : contents ) { // mod, migration, corpse, and software aren't regular pockets. - if( !( pocket.is_type( item_pocket::pocket_type::CONTAINER ) || - pocket.is_type( item_pocket::pocket_type::MAGAZINE ) ) ) { + if( !pocket.is_standard_type() ) { continue; } const ret_val pocket_contain_code = pocket.can_contain( it ); @@ -347,34 +385,80 @@ void item_contents::heat_up() } } -int item_contents::ammo_consume( int qty ) +int item_contents::ammo_consume( int qty, const tripoint &pos ) { + int consumed = 0; for( item_pocket &pocket : contents ) { - if( !pocket.is_type( item_pocket::pocket_type::MAGAZINE ) ) { - continue; + if( pocket.is_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { + // we are assuming only one magazine per well + if( pocket.empty() ) { + return 0; + } + // assuming only one mag + item &mag = pocket.front(); + const int res = mag.ammo_consume( qty, pos ); + if( res && mag.ammo_remaining() == 0 ) { + if( mag.has_flag( "MAG_DESTROY" ) ) { + pocket.remove_item( mag ); + } else if( mag.has_flag( "MAG_EJECT" ) ) { + g->m.add_item( pos, mag ); + pocket.remove_item( mag ); + } + } + qty -= res; + consumed += res; + } else if( pocket.is_type( item_pocket::pocket_type::MAGAZINE ) ) { + const int res = pocket.ammo_consume( qty ); + consumed += res; + qty -= res; } - qty = pocket.ammo_consume( qty ); } - return qty; + return consumed; } item *item_contents::magazine_current() { for( item_pocket &pocket : contents ) { - if( !pocket.is_type( item_pocket::pocket_type::MAGAZINE ) ) { - continue; - } - item *mag = pocket.magazine_current(); - if( mag != nullptr ) { - return mag; + if( pocket.is_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { + item *mag = pocket.magazine_current(); + if( mag != nullptr ) { + return mag; + } } } return nullptr; } +int item_contents::ammo_capacity( const ammotype &ammo ) const +{ + int ret = 0; + for( const item_pocket &pocket : contents ) { + if( pocket.is_type( item_pocket::pocket_type::MAGAZINE ) ) { + ret += pocket.ammo_capacity( ammo ); + } + } + return ret; +} + +std::set item_contents::ammo_types() const +{ + std::set ret; + for( const item_pocket &pocket : contents ) { + if( pocket.is_type( item_pocket::pocket_type::MAGAZINE ) ) { + for( const ammotype &ammo : pocket.ammo_types() ) { + ret.emplace( ammo ); + } + } + } + return ret; +} + item &item_contents::first_ammo() { for( item_pocket &pocket : contents ) { + if( pocket.is_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { + return pocket.front().contents.first_ammo(); + } if( !pocket.is_type( item_pocket::pocket_type::MAGAZINE ) || pocket.empty() ) { continue; } @@ -387,6 +471,9 @@ item &item_contents::first_ammo() const item &item_contents::first_ammo() const { for( const item_pocket &pocket : contents ) { + if( pocket.is_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { + return pocket.front().contents.first_ammo(); + } if( !pocket.is_type( item_pocket::pocket_type::MAGAZINE ) || pocket.empty() ) { continue; } @@ -455,10 +542,10 @@ void item_contents::set_item_defaults() { /* For Items with a magazine or battery in its contents */ for( item_pocket &pocket : contents ) { - if( !( pocket.is_type( item_pocket::pocket_type::CONTAINER ) || - pocket.is_type( item_pocket::pocket_type::MAGAZINE ) ) ) { + if( !pocket.is_standard_type() ) { continue; } + pocket.set_item_defaults(); } } @@ -714,6 +801,30 @@ std::vector item_contents::gunmods() const return mods; } +std::set item_contents::magazine_compatible() const +{ + std::set ret; + for( const item_pocket &pocket : contents ) { + if( pocket.is_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { + for( const itype_id &id : pocket.item_type_restrictions() ) { + ret.emplace( id ); + } + } + } + return ret; +} + +units::mass item_contents::total_container_weight_capacity() const +{ + units::mass total_weight = 0_gram; + for( const item_pocket &pocket : contents ) { + if( pocket.is_type( item_pocket::pocket_type::CONTAINER ) ) { + total_weight += pocket.weight_capacity(); + } + } + return total_weight; +} + units::volume item_contents::total_container_capacity() const { units::volume total_vol = 0_ml; @@ -889,12 +1000,32 @@ void item_contents::info( std::vector &info, const iteminfo_query *par } } if( parts->test( iteminfo_parts::DESCRIPTION_POCKETS ) ) { + // If multiple pockets and/or multiple kinds of pocket, show total capacity section + if( found_pockets.size() > 1 || pocket_num[0] > 1 ) { + insert_separation_line( info ); + info.emplace_back( "CONTAINER", _( "Total capacity:" ) ); + info.push_back( vol_to_info( "CONTAINER", _( "Volume: " ), total_container_capacity() ) ); + info.push_back( weight_to_info( "CONTAINER", _( " Weight: " ), + total_container_weight_capacity() ) ); + info.back().bNewLine = true; + } + int idx = 0; for( const item_pocket &pocket : found_pockets ) { insert_separation_line( info ); + // If there are multiple similar pockets, show their capacity as a set if( pocket_num[idx] > 1 ) { - info.emplace_back( "DESCRIPTION", string_format( _( "Pockets (%d)" ), + info.emplace_back( "DESCRIPTION", string_format( _( "%d Pockets with capacity:" ), pocket_num[idx] ) ); + } else { + // If this is the only pocket the item has, label it "Total capacity" + // Otherwise, give it a generic "Pocket" heading (is one of several pockets) + bool only_one_pocket = ( found_pockets.size() == 1 && pocket_num[0] == 1 ); + if( only_one_pocket ) { + info.emplace_back( "DESCRIPTION", _( "Total capacity:" ) ); + } else { + info.emplace_back( "DESCRIPTION", _( "Pocket with capacity:" ) ); + } } idx++; pocket.general_info( info, idx, false ); diff --git a/src/item_contents.h b/src/item_contents.h index 50f6df91d62e6..58ec6742b1861 100644 --- a/src/item_contents.h +++ b/src/item_contents.h @@ -23,9 +23,6 @@ class JsonIn; class JsonOut; class item; struct tripoint; - -using itype_id = std::string; - class item; class item_location; class player; @@ -54,6 +51,8 @@ class item_contents bool empty_container() const; // checks if CONTAINER pockets are all full bool full( bool allow_bucket ) const; + // are any CONTAINER pockets bigger on the inside than the container's volume? + bool bigger_on_the_inside( const units::volume &container_volume ) const; // number of pockets size_t size() const; @@ -79,6 +78,9 @@ class item_contents std::vector gunmods(); /** gets all gunmods in the item */ std::vector gunmods() const; + // all magazines compatible with any pockets. + // this only checks MAGAZINE_WELL + std::set magazine_compatible() const; /** * This function is to aid migration to using nested containers. * The call sites of this function need to be updated to search the @@ -90,6 +92,9 @@ class item_contents units::volume item_size_modifier() const; units::mass item_weight_modifier() const; + // gets the total weight capacity of all pockets + units::mass total_container_weight_capacity() const; + /** * gets the total volume available to be used. * does not guarantee that an item of that size can be inserted. @@ -111,6 +116,8 @@ class item_contents int best_quality( const quality_id &id ) const; // what will the move cost be of taking @it out of this container? + // should only be used from item_location if possible, to account for + // player inventory handling penalties from traits int obtain_cost( const item &it ) const; // what will the move cost be of storing @it into this container? (CONTAINER pocket type) int insert_cost( const item &it ) const; @@ -145,9 +152,11 @@ class item_contents // heats up the contents if they have temperature void heat_up(); - // returns qty - need - int ammo_consume( int qty ); + // returns amount of ammo consumed + int ammo_consume( int qty, const tripoint &pos ); item *magazine_current(); + std::set ammo_types() const; + int ammo_capacity( const ammotype &ammo ) const; // gets the first ammo in all magazine pockets // does not support multiple magazine pockets! item &first_ammo(); @@ -179,7 +188,7 @@ class item_contents * NOTE: this destroys the items that get processed */ void process( player *carrier, const tripoint &pos, bool activate, float insulation = 1, - temperature_flag flag = temperature_flag::TEMP_NORMAL, float spoil_multiplier_parent = 1.0f ); + temperature_flag flag = temperature_flag::NORMAL, float spoil_multiplier_parent = 1.0f ); void migrate_item( item &obj, const std::set &migrations ); bool item_has_uses_recursive() const; diff --git a/src/item_factory.cpp b/src/item_factory.cpp index a84b7fc2cbc30..1050e7b49dc11 100644 --- a/src/item_factory.cpp +++ b/src/item_factory.cpp @@ -55,19 +55,27 @@ class player; struct tripoint; -using t_string_set = std::set; -static t_string_set item_blacklist; +static std::set item_blacklist; static DynamicDataLoader::deferred_json deferred; std::unique_ptr item_controller = std::make_unique(); +/** @relates string_id */ +template<> +const itype &string_id::obj() const +{ + const itype *result = item_controller->find_template( *this ); + static const itype dummy{}; + return result ? *result : dummy; +} + static item_category_id calc_category( const itype &obj ); static void set_allergy_flags( itype &item_template ); static void hflesh_to_flesh( itype &item_template ); static void npc_implied_flags( itype &item_template ); -bool item_is_blacklisted( const std::string &id ) +bool item_is_blacklisted( const itype_id &id ) { return item_blacklist.count( id ); } @@ -90,19 +98,19 @@ static bool assign_coverage_from_json( const JsonObject &jo, const std::string & { auto parse = [&parts, &sided]( const std::string & val ) { if( val == "ARMS" || val == "ARM_EITHER" ) { - parts.set( bp_arm_l ); - parts.set( bp_arm_r ); + parts.set( bodypart_str_id( "arm_l" ) ); + parts.set( bodypart_str_id( "arm_r" ) ); } else if( val == "HANDS" || val == "HAND_EITHER" ) { - parts.set( bp_hand_l ); - parts.set( bp_hand_r ); + parts.set( bodypart_str_id( "hand_l" ) ); + parts.set( bodypart_str_id( "hand_r" ) ); } else if( val == "LEGS" || val == "LEG_EITHER" ) { - parts.set( bp_leg_l ); - parts.set( bp_leg_r ); + parts.set( bodypart_str_id( "leg_l" ) ); + parts.set( bodypart_str_id( "leg_r" ) ); } else if( val == "FEET" || val == "FOOT_EITHER" ) { - parts.set( bp_foot_l ); - parts.set( bp_foot_r ); + parts.set( bodypart_str_id( "foot_l" ) ); + parts.set( bodypart_str_id( "foot_r" ) ); } else { - parts.set( get_body_part_token( val ) ); + parts.set( convert_bp( get_body_part_token( val ) ) ); } sided |= val == "ARM_EITHER" || val == "HAND_EITHER" || val == "LEG_EITHER" || val == "FOOT_EITHER"; @@ -179,7 +187,7 @@ void Item_factory::finalize_pre( itype &obj ) if( obj.stack_size == 0 ) { obj.stack_size = obj.charges_default(); } else if( obj.stack_size > 200 ) { - debugmsg( obj.id + " stack size is too large, reducing to 200" ); + debugmsg( obj.id.str() + " stack size is too large, reducing to 200" ); obj.stack_size = 200; } } @@ -243,7 +251,7 @@ void Item_factory::finalize_pre( itype &obj ) if( obj.magazine ) { // ensure default_ammo is set - if( obj.magazine->default_ammo == "NULL" ) { + if( obj.magazine->default_ammo.is_null() ) { obj.magazine->default_ammo = ammotype( *obj.magazine->type.begin() )->default_ammotype(); } @@ -413,7 +421,7 @@ void Item_factory::finalize_pre( itype &obj ) } if( obj.tool ) { - if( !obj.tool->subtype.empty() && has_template( obj.tool->subtype ) ) { + if( !obj.tool->subtype.is_empty() && has_template( obj.tool->subtype ) ) { tool_subtypes[ obj.tool->subtype ].insert( obj.id ); } } @@ -427,30 +435,32 @@ void Item_factory::finalize_pre( itype &obj ) } if( obj.item_tags.count( "PERSONAL" ) ) { - obj.layer = PERSONAL_LAYER; + obj.layer = layer_level::PERSONAL; } else if( obj.item_tags.count( "SKINTIGHT" ) ) { - obj.layer = UNDERWEAR_LAYER; + obj.layer = layer_level::UNDERWEAR; } else if( obj.item_tags.count( "WAIST" ) ) { - obj.layer = WAIST_LAYER; + obj.layer = layer_level::WAIST; } else if( obj.item_tags.count( "OUTER" ) ) { - obj.layer = OUTER_LAYER; + obj.layer = layer_level::OUTER; } else if( obj.item_tags.count( "BELTED" ) ) { - obj.layer = BELTED_LAYER; + obj.layer = layer_level::BELTED; } else if( obj.item_tags.count( "AURA" ) ) { - obj.layer = AURA_LAYER; + obj.layer = layer_level::AURA; } else { - obj.layer = REGULAR_LAYER; + obj.layer = layer_level::REGULAR; } if( obj.can_use( "MA_MANUAL" ) && obj.book && obj.book->martial_art.is_null() && - string_starts_with( obj.get_id(), "manual_" ) ) { + string_starts_with( obj.get_id().str(), "manual_" ) ) { // HACK: Legacy martial arts books rely on a hack whereby the name of the // martial art is derived from the item id - obj.book->martial_art = matype_id( "style_" + obj.get_id().substr( 7 ) ); + obj.book->martial_art = matype_id( "style_" + obj.get_id().str().substr( 7 ) ); } if( obj.longest_side == -1_mm ) { - obj.longest_side = units::cube_to_volume( obj.volume ); + units::volume effective_volume = obj.count_by_charges() ? + ( obj.volume / obj.stack_size ) : obj.volume; + obj.longest_side = units::default_length_from_volume( effective_volume ); } } @@ -515,7 +525,8 @@ void Item_factory::finalize_post( itype &obj ) for( const std::pair elem : obj.comestible->contamination ) { const diseasetype_id dtype = elem.first; if( !dtype.is_valid() ) { - debugmsg( "contamination in %s contains invalid diseasetype_id %s.", obj.id, dtype.c_str() ); + debugmsg( "contamination in %s contains invalid diseasetype_id %s.", + obj.id.str(), dtype.str() ); } } } @@ -562,7 +573,7 @@ void Item_factory::finalize() void Item_factory::finalize_item_blacklist() { - for( const std::string &blackout : item_blacklist ) { + for( const itype_id &blackout : item_blacklist ) { std::unordered_map::iterator candidate = m_templates.find( blackout ); if( candidate == m_templates.end() ) { debugmsg( "item on blacklist %s does not exist", blackout.c_str() ); @@ -624,8 +635,8 @@ void Item_factory::finalize_item_blacklist() if( replacement->second.ammo ) { migrated_ammo.emplace( std::make_pair( migrate.first, replacement->second.ammo->type ) ); } else { - debugmsg( "Replacement item %s for migrated ammo %s is not ammo.", migrate.second.replace, - migrate.first ); + debugmsg( "Replacement item %s for migrated ammo %s is not ammo.", + migrate.second.replace.str(), migrate.first.str() ); } } @@ -636,8 +647,8 @@ void Item_factory::finalize_item_blacklist() if( replacement->second.magazine ) { migrated_magazines.emplace( std::make_pair( migrate.first, migrate.second.replace ) ); } else { - debugmsg( "Replacement item %s for migrated magazine %s is not a magazine.", migrate.second.replace, - migrate.first ); + debugmsg( "Replacement item %s for migrated magazine %s is not a magazine.", + migrate.second.replace.str(), migrate.first.str() ); } } } @@ -657,7 +668,7 @@ void Item_factory::finalize_item_blacklist() void Item_factory::load_item_blacklist( const JsonObject &json ) { - add_array_to_set( item_blacklist, json, "items" ); + json.read( "items", item_blacklist, true ); } Item_factory::~Item_factory() = default; @@ -677,8 +688,7 @@ class iuse_function_wrapper : public iuse_actor ~iuse_function_wrapper() override = default; int use( player &p, item &it, bool a, const tripoint &pos ) const override { - iuse tmp; - return ( tmp.*cpp_function )( &p, &it, a, pos ); + return cpp_function( &p, &it, a, pos ); } std::unique_ptr clone() const override { return std::make_unique( *this ); @@ -871,6 +881,7 @@ void Item_factory::init() add_iuse( "PACK_CBM", &iuse::pack_cbm ); add_iuse( "PACK_ITEM", &iuse::pack_item ); add_iuse( "PHEROMONE", &iuse::pheromone ); + add_iuse( "PICK_LOCK", &iuse::pick_lock ); add_iuse( "PICKAXE", &iuse::pickaxe ); add_iuse( "PLANTBLECH", &iuse::plantblech ); add_iuse( "POISON", &iuse::poison ); @@ -949,7 +960,6 @@ void Item_factory::init() add_actor( std::make_unique() ); add_actor( std::make_unique() ); add_actor( std::make_unique() ); - add_actor( std::make_unique() ); add_actor( std::make_unique() ); add_actor( std::make_unique() ); add_actor( std::make_unique() ); @@ -1003,6 +1013,29 @@ void Item_factory::check_definitions() const std::string msg; const itype *type = &elem.second; + if( !type->item_tags.count( "TARDIS" ) ) { + bool is_container = false; + for( const pocket_data &pocket : type->pockets ) { + if( pocket.type == item_pocket::pocket_type::CONTAINER ) { + is_container = true; + // no need to look further + break; + } + } + if( is_container ) { + units::volume volume = type->volume; + if( type->count_by_charges() ) { + volume /= type->charges_default(); + } + if( item_contents( type->pockets ).bigger_on_the_inside( volume ) ) { + msg += "is bigger on the inside. consider using TARDIS flag.\n"; + } + for( const pocket_data &data : type->pockets ) { + msg += data.check_definition(); + } + } + } + if( !type->category_force.is_valid() ) { msg += "undefined category " + type->category_force.str() + "\n"; } @@ -1013,7 +1046,7 @@ void Item_factory::check_definitions() const if( type->volume < 0_ml ) { msg += "negative volume\n"; } - if( type->count_by_charges() || type->phase == LIQUID ) { + if( type->count_by_charges() || type->phase == phase_id::LIQUID ) { if( type->stack_size <= 0 ) { msg += string_format( "invalid stack_size %d on type using charges\n", type->stack_size ); } @@ -1057,7 +1090,7 @@ void Item_factory::check_definitions() const } } if( type->default_container && !has_template( *type->default_container ) ) { - if( *type->default_container != "null" ) { + if( !type->default_container->is_null() ) { msg += string_format( "invalid container property %s\n", type->default_container->c_str() ); } } @@ -1075,7 +1108,7 @@ void Item_factory::check_definitions() const } if( type->comestible ) { - if( type->comestible->tool != "null" ) { + if( !type->comestible->tool.is_null() ) { auto req_tool = find_template( type->comestible->tool ); if( !req_tool->tool ) { msg += string_format( "invalid tool property %s\n", type->comestible->tool.c_str() ); @@ -1130,10 +1163,10 @@ void Item_factory::check_definitions() const } check_ammo_type( msg, type->ammo->type ); if( type->ammo->casing && ( !has_template( *type->ammo->casing ) || - *type->ammo->casing == "null" ) ) { + type->ammo->casing->is_null() ) ) { msg += string_format( "invalid casing property %s\n", type->ammo->casing->c_str() ); } - if( type->ammo->drop != "null" && !has_template( type->ammo->drop ) ) { + if( !type->ammo->drop.is_null() && !has_template( type->ammo->drop ) ) { msg += string_format( "invalid drop item %s\n", type->ammo->drop.c_str() ); } } @@ -1211,7 +1244,7 @@ void Item_factory::check_definitions() const for( const itype_id &opt : e.second ) { const itype *mag = find_template( opt ); if( !mag->magazine || !mag->magazine->type.count( e.first ) ) { - msg += string_format( "invalid magazine %s in magazine adapter\n", opt ); + msg += string_format( "invalid magazine %s in magazine adapter\n", opt.str() ); } } } @@ -1231,39 +1264,39 @@ void Item_factory::check_definitions() const } const itype *da = find_template( type->magazine->default_ammo ); if( !( da->ammo && type->magazine->type.count( da->ammo->type ) ) ) { - msg += string_format( "invalid default_ammo %s\n", type->magazine->default_ammo.c_str() ); - } - if( type->magazine->reliability < 0 || type->magazine->reliability > 100 ) { - msg += string_format( "invalid reliability %i\n", type->magazine->reliability ); + msg += string_format( "invalid default_ammo %s\n", type->magazine->default_ammo.str() ); } if( type->magazine->reload_time < 0 ) { msg += string_format( "invalid reload_time %i\n", type->magazine->reload_time ); } if( type->magazine->linkage && ( !has_template( *type->magazine->linkage ) || - *type->magazine->linkage == "null" ) ) { + type->magazine->linkage->is_null() ) ) { msg += string_format( "invalid linkage property %s\n", type->magazine->linkage->c_str() ); } } - for( const std::pair, std::set> &ammo_variety : + for( const std::pair, std::set> &ammo_variety : type->magazines ) { if( ammo_variety.second.empty() ) { msg += string_format( "no magazine specified for %s\n", ammo_variety.first.str() ); } - for( const std::string &magazine : ammo_variety.second ) { + for( const itype_id &magazine : ammo_variety.second ) { const itype *mag_ptr = find_template( magazine ); if( mag_ptr == nullptr ) { - msg += string_format( "magazine \"%s\" specified for \"%s\" does not exist\n", magazine, - ammo_variety.first.str() ); + msg += string_format( "magazine \"%s\" specified for \"%s\" does not exist\n", + magazine.str(), ammo_variety.first.str() ); } else if( !mag_ptr->magazine ) { - msg += string_format( "magazine \"%s\" specified for \"%s\" is not a magazine\n", magazine, - ammo_variety.first.str() ); + msg += string_format( + "magazine \"%s\" specified for \"%s\" is not a magazine\n", magazine.str(), + ammo_variety.first.str() ); } else if( !mag_ptr->magazine->type.count( ammo_variety.first ) ) { - msg += string_format( "magazine \"%s\" does not take compatible ammo\n", magazine ); + msg += string_format( "magazine \"%s\" does not take compatible ammo\n", + magazine.str() ); } else if( mag_ptr->item_tags.count( "SPEEDLOADER" ) && mag_ptr->magazine->capacity != type->gun->clip ) { - msg += string_format( "speedloader %s capacity (%d) does not match gun capacity (%d).\n", magazine, - mag_ptr->magazine->capacity, type->gun->clip ); + msg += string_format( + "speedloader %s capacity (%d) does not match gun capacity (%d).\n", + magazine.str(), mag_ptr->magazine->capacity, type->gun->clip ); } } } @@ -1273,14 +1306,14 @@ void Item_factory::check_definitions() const check_ammo_type( msg, at ); } if( type->tool->revert_to && ( !has_template( *type->tool->revert_to ) || - *type->tool->revert_to == "null" ) ) { + type->tool->revert_to->is_null() ) ) { msg += string_format( "invalid revert_to property %s\n", type->tool->revert_to->c_str() ); } if( !type->tool->revert_msg.empty() && !type->tool->revert_to ) { msg += "cannot specify revert_msg without revert_to\n"; } - if( !type->tool->subtype.empty() && !has_template( type->tool->subtype ) ) { - msg += string_format( "invalid tool subtype %s\n", type->tool->subtype ); + if( !type->tool->subtype.is_empty() && !has_template( type->tool->subtype ) ) { + msg += string_format( "invalid tool subtype %s\n", type->tool->subtype.str() ); } } if( type->bionic ) { @@ -1360,7 +1393,7 @@ const itype *Item_factory::find_template( const itype_id &id ) const return def; } -Item_spawn_data *Item_factory::get_group( const Item_tag &group_tag ) +Item_spawn_data *Item_factory::get_group( const Group_tag &group_tag ) { GroupMap::iterator group_iter = m_template_groups.find( group_tag ); if( group_iter != m_template_groups.end() ) { @@ -1422,19 +1455,21 @@ bool Item_factory::load_definition( const JsonObject &jo, const std::string &src return true; } - auto base = m_templates.find( jo.get_string( "copy-from" ) ); + itype_id copy_from; + jo.read( "copy-from", copy_from, true ); + auto base = m_templates.find( copy_from ); if( base != m_templates.end() ) { def = base->second; - def.looks_like = jo.get_string( "copy-from" ); + def.looks_like = copy_from; def.was_loaded = true; return true; } - auto abstract = m_abstracts.find( jo.get_string( "copy-from" ) ); + auto abstract = m_abstracts.find( copy_from ); if( abstract != m_abstracts.end() ) { def = abstract->second; - if( def.looks_like.empty() ) { - def.looks_like = jo.get_string( "copy-from" ); + if( def.looks_like.is_empty() ) { + def.looks_like = copy_from; } def.was_loaded = true; return true; @@ -1466,7 +1501,7 @@ void islot_ammo::load( const JsonObject &jo ) { mandatory( jo, was_loaded, "ammo_type", type ); optional( jo, was_loaded, "casing", casing, cata::nullopt ); - optional( jo, was_loaded, "drop", drop, "null" ); + optional( jo, was_loaded, "drop", drop, itype_id::NULL_ID() ); optional( jo, was_loaded, "drop_chance", drop_chance, 1.0f ); optional( jo, was_loaded, "drop_active", drop_active, true ); // Damage instance assign reader handles pierce and prop_damage @@ -1615,6 +1650,7 @@ void Item_factory::load_gun( const JsonObject &jo, const std::string &src ) } } +// TODO: Refactor this with load_tool_armor void Item_factory::load_armor( const JsonObject &jo, const std::string &src ) { itype def; @@ -1769,7 +1805,7 @@ void Item_factory::load( islot_mod &slot, const JsonObject &jo, const std::strin ammotype ammo( arr.get_string( 0 ) ); // an ammo type (e.g. 9mm) // compatible magazines for this ammo type for( const std::string line : arr.get_array( 1 ) ) { - slot.magazine_adaptor[ ammo ].insert( line ); + slot.magazine_adaptor[ ammo ].insert( itype_id( line ) ); } } } @@ -1783,12 +1819,25 @@ void Item_factory::load_toolmod( const JsonObject &jo, const std::string &src ) } } +// TODO: Refactor this with load_armor +// This function does load_slot( def.tool ), but otherwise they are the same void Item_factory::load_tool_armor( const JsonObject &jo, const std::string &src ) { itype def; if( load_definition( jo, src, def ) ) { load_slot( def.tool, jo, src ); - load_armor( jo, src ); + if( def.was_loaded ) { + if( def.armor ) { + def.armor->was_loaded = true; + } else { + def.armor = cata::make_value(); + def.armor->was_loaded = true; + } + } else { + def.armor = cata::make_value(); + } + def.armor->load( jo ); + load_basic_info( jo, def, src ); } } @@ -1961,7 +2010,7 @@ void Item_factory::load( islot_comestible &slot, const JsonObject &jo, const std void Item_factory::load( islot_brewable &slot, const JsonObject &jo, const std::string & ) { assign( jo, "time", slot.time, false, 1_turns ); - slot.results = jo.get_string_array( "results" ); + jo.read( "results", slot.results, true ); } void Item_factory::load_comestible( const JsonObject &jo, const std::string &src ) @@ -2053,7 +2102,6 @@ void Item_factory::load( islot_magazine &slot, const JsonObject &jo, const std:: assign( jo, "capacity", slot.capacity, strict, 0 ); assign( jo, "count", slot.count, strict, 0 ); assign( jo, "default_ammo", slot.default_ammo, strict ); - assign( jo, "reliability", slot.reliability, strict, 0, 10 ); assign( jo, "reload_time", slot.reload_time, strict, 0 ); assign( jo, "linkage", slot.linkage, strict ); } @@ -2207,36 +2255,49 @@ void Item_factory::check_and_create_magazine_pockets( itype &def ) // we assume they're good to go, or error elsewhere return; } - if( def.magazine ) { - pocket_data mag_data; - mag_data.type = item_pocket::pocket_type::MAGAZINE; - for( const ammotype &amtype : def.magazine->type ) { - mag_data.ammo_restriction.emplace( amtype, def.magazine->capacity ); - } - mag_data.fire_protection = def.magazine->protects_contents; - mag_data.volume_capacity = 200_liter; - mag_data.max_contains_weight = 400_kilogram; - mag_data.max_item_length = 2_km; - mag_data.rigid = true; - mag_data.watertight = true; - def.pockets.push_back( mag_data ); + // the item we're trying to migrate must actually have data for ammo + if( def.magazines.empty() && !( def.gun || def.magazine || def.tool ) ) { return; - } else if( def.gun || !def.magazines.empty() ) { - pocket_data mag_data; - mag_data.type = item_pocket::pocket_type::MAGAZINE; - // only one magazine in a pocket, for now - mag_data.holster = true; - // guns are, in code terms, nonrigid objects with optional magazine_wells. - mag_data.rigid = false; - mag_data.watertight = true; - mag_data.volume_capacity = 200_liter; - mag_data.max_contains_weight = 400_kilogram; - mag_data.max_item_length = 2_km; - // the magazine pocket does not use can_contain like normal CONTAINER pockets - // so we don't have to worry about having random items be put into the mag - def.pockets.push_back( mag_data ); + } + if( def.pockets.empty() && def.tool && def.tool->max_charges == 0 ) { + // if a tool has no max charges, it doesn't need an ammo return; } + + pocket_data mag_data; + mag_data.holster = true; + mag_data.volume_capacity = 200_liter; + mag_data.max_contains_weight = 400_kilogram; + mag_data.max_item_length = 2_km; + mag_data.watertight = true; + if( !def.magazines.empty() ) { + mag_data.type = item_pocket::pocket_type::MAGAZINE_WELL; + mag_data.rigid = false; + for( const std::pair> &mag_pair : def.magazines ) { + for( const itype_id &mag_type : mag_pair.second ) { + mag_data.item_id_restriction.insert( mag_type ); + } + } + } else { + mag_data.type = item_pocket::pocket_type::MAGAZINE; + mag_data.rigid = true; + if( def.magazine ) { + for( const ammotype &amtype : def.magazine->type ) { + mag_data.ammo_restriction.emplace( amtype, def.magazine->capacity ); + } + } + if( def.gun ) { + for( const ammotype &amtype : def.gun->ammo ) { + mag_data.ammo_restriction.emplace( amtype, def.gun->clip ); + } + } + if( def.tool ) { + for( const ammotype &amtype : def.tool->ammo_id ) { + mag_data.ammo_restriction.emplace( amtype, def.tool->max_charges ); + } + } + } + def.pockets.push_back( mag_data ); } static bool has_pocket_type( const std::vector &data, item_pocket::pocket_type pk ) @@ -2369,10 +2430,10 @@ void Item_factory::load_basic_info( const JsonObject &jo, itype &def, const std: JsonArray compat = arr.get_array( 1 ); // compatible magazines for this ammo type // the first magazine for this ammo type is the default - def.magazine_default[ ammo ] = compat.get_string( 0 ); + def.magazine_default[ ammo ] = itype_id( compat.get_string( 0 ) ); while( compat.has_more() ) { - def.magazines[ ammo ].insert( compat.next_string() ); + def.magazines[ ammo ].insert( itype_id( compat.next_string() ) ); } } } @@ -2490,16 +2551,16 @@ void Item_factory::load_basic_info( const JsonObject &jo, itype &def, const std: add_special_pockets( def ); if( jo.has_string( "abstract" ) ) { - def.id = jo.get_string( "abstract" ); + jo.read( "abstract", def.id, true ); } else { - def.id = jo.get_string( "id" ); + jo.read( "id", def.id, true ); } // snippet_category should be loaded after def.id is determined if( jo.has_array( "snippet_category" ) ) { // auto-create a category that is unlikely to already be used and put the // snippets in it. - def.snippet_category = std::string( "auto:" ) + def.id; + def.snippet_category = "auto:" + def.id.str(); SNIPPET.add_snippets_from_json( def.snippet_category, jo.get_array( "snippet_category" ) ); } else { def.snippet_category = jo.get_string( "snippet_category", "" ); @@ -2521,11 +2582,13 @@ void Item_factory::load_migration( const JsonObject &jo ) assign( jo, "contents", m.contents ); if( jo.has_string( "id" ) ) { - m.id = jo.get_string( "id" ); + jo.read( "id", m.id, true ); migrations[ m.id ] = m; } else if( jo.has_array( "id" ) ) { - for( const std::string line : jo.get_array( "id" ) ) { - m.id = line; + std::vector ids; + jo.read( "id", ids, true ); + for( const itype_id &id : ids ) { + m.id = id; migrations[ m.id ] = m; } } else { @@ -2701,8 +2764,6 @@ bool Item_factory::load_sub_ref( std::unique_ptr &ptr, const Js if( obj.has_member( name ) ) { obj.throw_error( string_format( "This has been a TODO: since 2014. Use '%s' and/or '%s' instead.", iname, gname ) ); - // TODO: ! - return false; } if( obj.has_string( iname ) ) { entries.push_back( std::make_pair( obj.get_string( iname ), false ) ); @@ -2713,7 +2774,6 @@ bool Item_factory::load_sub_ref( std::unique_ptr &ptr, const Js if( entries.size() > 1 && name != "contents" ) { obj.throw_error( string_format( "You can only use one of '%s' and '%s'", iname, gname ) ); - return false; } else if( entries.size() == 1 ) { const auto type = entries.front().second ? Single_item_creator::Type::S_ITEM_GROUP : Single_item_creator::Type::S_ITEM; @@ -2731,7 +2791,7 @@ bool Item_factory::load_sub_ref( std::unique_ptr &ptr, const Js if( elem.second ) { result->add_group_entry( elem.first, prob ); } else { - result->add_item_entry( elem.first, prob ); + result->add_item_entry( itype_id( elem.first ), prob ); } } return true; @@ -2811,7 +2871,7 @@ void Item_factory::add_entry( Item_group &ig, const JsonObject &obj ) // Load an item group from JSON void Item_factory::load_item_group( const JsonObject &jsobj ) { - const Item_tag group_id = jsobj.get_string( "id" ); + const Group_tag group_id = jsobj.get_string( "id" ); const std::string subtype = jsobj.get_string( "subtype", "old" ); load_item_group( jsobj, group_id, subtype ); } @@ -2849,7 +2909,7 @@ void Item_factory::load_item_group( const JsonObject &jsobj, const Group_tag &gr add_entry( *ig, subobj ); } else { JsonArray pair = entry.get_array(); - ig->add_item_entry( pair.get_string( 0 ), pair.get_int( 1 ) ); + ig->add_item_entry( itype_id( pair.get_string( 0 ) ), pair.get_int( 1 ) ); } } return; @@ -2863,10 +2923,10 @@ void Item_factory::load_item_group( const JsonObject &jsobj, const Group_tag &gr if( jsobj.has_member( "items" ) ) { for( const JsonValue entry : jsobj.get_array( "items" ) ) { if( entry.test_string() ) { - ig->add_item_entry( entry.get_string(), 100 ); + ig->add_item_entry( itype_id( entry.get_string() ), 100 ); } else if( entry.test_array() ) { JsonArray subitem = entry.get_array(); - ig->add_item_entry( subitem.get_string( 0 ), subitem.get_int( 1 ) ); + ig->add_item_entry( itype_id( subitem.get_string( 0 ) ), subitem.get_int( 1 ) ); } else { JsonObject subobj = entry.get_object(); add_entry( *ig, subobj ); @@ -2979,13 +3039,13 @@ std::string enum_to_string( phase_id data ) { switch( data ) { // *INDENT-OFF* - case PNULL: return "null"; - case LIQUID: return "liquid"; - case SOLID: return "solid"; - case GAS: return "gas"; - case PLASMA: return "plasma"; + case phase_id::PNULL: return "null"; + case phase_id::LIQUID: return "liquid"; + case phase_id::SOLID: return "solid"; + case phase_id::GAS: return "gas"; + case phase_id::PLASMA: return "plasma"; // *INDENT-ON* - case num_phases: + case phase_id::num_phases: break; } debugmsg( "Invalid phase" ); @@ -3043,7 +3103,7 @@ std::vector Item_factory::get_all_group_names() return rval; } -bool Item_factory::add_item_to_group( const Group_tag &group_id, const Item_tag &item_id, +bool Item_factory::add_item_to_group( const Group_tag &group_id, const itype_id &item_id, int chance ) { if( m_template_groups.find( group_id ) == m_template_groups.end() ) { @@ -3148,13 +3208,13 @@ std::vector Item_factory::find( const std::function class value_ptr; } // namespace cata -bool item_is_blacklisted( const std::string &id ); +bool item_is_blacklisted( const itype_id &id ); -using Item_tag = std::string; using Group_tag = std::string; +using item_action_id = std::string; using Item_list = std::vector; class Item_factory; @@ -41,11 +41,11 @@ extern std::unique_ptr item_controller; class migration { public: - std::string id; - std::string replace; + itype_id id; + itype_id replace; std::set flags; int charges = 0; - std::set contents; + std::set contents; }; /** @@ -137,7 +137,7 @@ class Item_factory * group. * @return false if the group doesn't exist. */ - bool add_item_to_group( const Group_tag &group_id, const Item_tag &item_id, int chance ); + bool add_item_to_group( const Group_tag &group_id, const itype_id &item_id, int chance ); /*@}*/ /** @@ -220,7 +220,7 @@ class Item_factory * Check if an iuse is known to the Item_factory. * @param type Iuse type id. */ - bool has_iuse( const std::string &type ) const { + bool has_iuse( const item_action_id &type ) const { return iuse_function_list.find( type ) != iuse_function_list.end(); } @@ -238,7 +238,7 @@ class Item_factory /** * Create a new (and currently unused) item type id. */ - Item_tag create_artifact_id() const; + itype_id create_artifact_id() const; std::list subtype_replacement( const itype_id & ) const; @@ -246,7 +246,7 @@ class Item_factory /** Set at finalization and prevents alterations to the static item templates */ bool frozen = false; - std::map m_abstracts; + std::map m_abstracts; std::unordered_map m_templates; @@ -350,7 +350,7 @@ class Item_factory void finalize_post( itype &obj ); //iuse stuff - std::map iuse_function_list; + std::map iuse_function_list; void add_iuse( const std::string &type, use_function_pointer f ); void add_iuse( const std::string &type, use_function_pointer f, diff --git a/src/item_group.cpp b/src/item_group.cpp index 8c984121dae42..ddfaa377a1ae1 100644 --- a/src/item_group.cpp +++ b/src/item_group.cpp @@ -74,8 +74,12 @@ item Single_item_creator::create_single( const time_point &birthday, RecursionLi if( modifier ) { modifier->modify( tmp ); } else { + int qty = tmp.charges; + if( modifier ) { + qty = rng( modifier->charges.first, modifier->charges.second ); + } // TODO: change the spawn lists to contain proper references to containers - tmp = tmp.in_its_container(); + tmp = tmp.in_its_container( qty ); } return tmp; } @@ -123,7 +127,7 @@ Item_spawn_data::ItemList Single_item_creator::create( const time_point &birthda void Single_item_creator::check_consistency( const std::string &context ) const { if( type == S_ITEM ) { - if( !item::type_is_defined( id ) ) { + if( !item::type_is_defined( itype_id( id ) ) ) { debugmsg( "item id %s is unknown (in %s)", id, context ); } } else if( type == S_ITEM_GROUP ) { @@ -140,7 +144,7 @@ void Single_item_creator::check_consistency( const std::string &context ) const } } -bool Single_item_creator::remove_item( const Item_tag &itemid ) +bool Single_item_creator::remove_item( const itype_id &itemid ) { if( modifier ) { if( modifier->remove_item( itemid ) ) { @@ -149,7 +153,7 @@ bool Single_item_creator::remove_item( const Item_tag &itemid ) } } if( type == S_ITEM ) { - if( itemid == id ) { + if( itemid.str() == id ) { type = S_NONE; return true; } @@ -162,7 +166,7 @@ bool Single_item_creator::remove_item( const Item_tag &itemid ) return type == S_NONE; } -bool Single_item_creator::replace_item( const Item_tag &itemid, const Item_tag &replacementid ) +bool Single_item_creator::replace_item( const itype_id &itemid, const itype_id &replacementid ) { if( modifier ) { if( modifier->replace_item( itemid, replacementid ) ) { @@ -170,8 +174,8 @@ bool Single_item_creator::replace_item( const Item_tag &itemid, const Item_tag & } } if( type == S_ITEM ) { - if( itemid == id ) { - id = replacementid; + if( itemid.str() == id ) { + id = replacementid.str(); return true; } } else if( type == S_ITEM_GROUP ) { @@ -183,16 +187,16 @@ bool Single_item_creator::replace_item( const Item_tag &itemid, const Item_tag & return type == S_NONE; } -bool Single_item_creator::has_item( const Item_tag &itemid ) const +bool Single_item_creator::has_item( const itype_id &itemid ) const { - return type == S_ITEM && itemid == id; + return type == S_ITEM && itemid.str() == id; } std::set Single_item_creator::every_item() const { switch( type ) { case S_ITEM: - return { item::find_type( id ) }; + return { item::find_type( itype_id( id ) ) }; case S_ITEM_GROUP: { Item_spawn_data *isd = item_controller->get_group( id ); if( isd != nullptr ) { @@ -258,20 +262,21 @@ void Item_modifier::modify( item &new_item ) const } if( cont.is_null() && new_item.type->default_container.has_value() ) { const itype_id &cont_value = new_item.type->default_container.value_or( "null" ); - if( cont_value != "null" ) { + if( !cont_value.is_null() ) { cont = item( cont_value, new_item.birthday() ); } } int max_capacity = -1; - if( charges.first != -1 && charges.second == -1 ) { - const int max_ammo = new_item.ammo_capacity(); + if( charges.first != -1 && charges.second == -1 && new_item.is_magazine() ) { + const int max_ammo = new_item.ammo_capacity( item_controller->find_template( + new_item.ammo_default() )->ammo->type ); if( max_ammo > 0 ) { max_capacity = max_ammo; } } - if( max_capacity == -1 && !cont.is_null() && ( new_item.made_of( LIQUID ) || + if( max_capacity == -1 && !cont.is_null() && ( new_item.made_of( phase_id::LIQUID ) || ( !new_item.is_tool() && !new_item.is_gun() && !new_item.is_magazine() ) ) ) { max_capacity = new_item.charges_per_volume( cont.get_total_capacity() ); } @@ -297,21 +302,26 @@ void Item_modifier::modify( item &new_item ) const ch = charges_min == charges_max ? charges_min : rng( charges_min, charges_max ); - } else if( !cont.is_null() && new_item.made_of( LIQUID ) ) { + } else if( !cont.is_null() && new_item.made_of( phase_id::LIQUID ) ) { new_item.charges = std::max( 1, max_capacity ); } if( ch != -1 ) { - if( new_item.count_by_charges() || new_item.made_of( LIQUID ) ) { + if( new_item.count_by_charges() || new_item.made_of( phase_id::LIQUID ) ) { // food, ammo // count_by_charges requires that charges is at least 1. It makes no sense to // spawn a "water (0)" item. new_item.charges = std::max( 1, ch ); } else if( new_item.is_tool() ) { - const int qty = std::min( ch, new_item.ammo_capacity() ); - new_item.charges = qty; - if( !new_item.ammo_types().empty() && qty > 0 ) { - new_item.ammo_set( new_item.ammo_default(), qty ); + if( !new_item.magazine_default().is_null() ) { + item mag( new_item.magazine_default() ); + mag.ammo_set( mag.ammo_default(), ch ); + new_item.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } else if( new_item.is_magazine() ) { + new_item.ammo_set( new_item.ammo_default(), ch ); + } else { + debugmsg( "tried to set ammo for %s which does not have ammo or a magazine", + new_item.typeId().c_str() ); } } else if( new_item.type->can_have_charges() ) { new_item.charges = ch; @@ -326,28 +336,37 @@ void Item_modifier::modify( item &new_item ) const } } else { const item am = ammo->create_single( new_item.birthday() ); - new_item.ammo_set( am.typeId(), ch ); + if( !new_item.magazine_default().is_null() ) { + item mag( new_item.magazine_default() ); + mag.ammo_set( am.typeId(), ch ); + new_item.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } else { + new_item.ammo_set( am.typeId(), ch ); + } } // Make sure the item is in valid state - if( new_item.ammo_data() && new_item.magazine_integral() ) { - new_item.charges = std::min( new_item.charges, new_item.ammo_capacity() ); + if( new_item.magazine_integral() ) { + new_item.charges = std::min( new_item.charges, + new_item.ammo_capacity( item_controller->find_template( new_item.ammo_default() )->ammo->type ) ); } else { new_item.charges = 0; } } - if( new_item.is_tool() || new_item.is_gun() || new_item.is_magazine() ) { + if( new_item.is_magazine() || + new_item.contents.has_pocket_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { bool spawn_ammo = rng( 0, 99 ) < with_ammo && new_item.ammo_remaining() == 0 && ch == -1 && ( !new_item.is_tool() || new_item.type->tool->rand_charges.empty() ); bool spawn_mag = rng( 0, 99 ) < with_magazine && !new_item.magazine_integral() && !new_item.magazine_current(); if( spawn_mag ) { - new_item.put_in( item( new_item.magazine_default(), new_item.birthday() ), - item_pocket::pocket_type::MAGAZINE ); - } - - if( spawn_ammo ) { + item mag( new_item.magazine_default(), new_item.birthday() ); + if( spawn_ammo ) { + mag.ammo_set( mag.ammo_default() ); + } + new_item.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } else if( spawn_ammo && !new_item.ammo_default().is_null() ) { if( ammo ) { const item am = ammo->create_single( new_item.birthday() ); new_item.ammo_set( am.typeId() ); @@ -390,7 +409,7 @@ void Item_modifier::check_consistency( const std::string &context ) const } } -bool Item_modifier::remove_item( const Item_tag &itemid ) +bool Item_modifier::remove_item( const itype_id &itemid ) { if( ammo != nullptr ) { if( ammo->remove_item( itemid ) ) { @@ -406,7 +425,7 @@ bool Item_modifier::remove_item( const Item_tag &itemid ) return false; } -bool Item_modifier::replace_item( const Item_tag &itemid, const Item_tag &replacementid ) +bool Item_modifier::replace_item( const itype_id &itemid, const itype_id &replacementid ) { if( ammo != nullptr ) { ammo->replace_item( itemid, replacementid ); @@ -437,10 +456,10 @@ Item_group::Item_group( Type t, int probability, int ammo_chance, int magazine_c } } -void Item_group::add_item_entry( const Item_tag &itemid, int probability ) +void Item_group::add_item_entry( const itype_id &itemid, int probability ) { add_entry( std::make_unique( - itemid, Single_item_creator::S_ITEM, probability ) ); + itemid.str(), Single_item_creator::S_ITEM, probability ) ); } void Item_group::add_group_entry( const Group_tag &groupid, int probability ) @@ -525,7 +544,7 @@ void Item_group::check_consistency( const std::string &context ) const } } -bool Item_group::remove_item( const Item_tag &itemid ) +bool Item_group::remove_item( const itype_id &itemid ) { for( prop_list::iterator a = items.begin(); a != items.end(); ) { if( ( *a )->remove_item( itemid ) ) { @@ -538,7 +557,7 @@ bool Item_group::remove_item( const Item_tag &itemid ) return items.empty(); } -bool Item_group::replace_item( const Item_tag &itemid, const Item_tag &replacementid ) +bool Item_group::replace_item( const itype_id &itemid, const itype_id &replacementid ) { for( const std::unique_ptr &elem : items ) { ( elem )->replace_item( itemid, replacementid ); @@ -546,7 +565,7 @@ bool Item_group::replace_item( const Item_tag &itemid, const Item_tag &replaceme return items.empty(); } -bool Item_group::has_item( const Item_tag &itemid ) const +bool Item_group::has_item( const itype_id &itemid ) const { for( const std::unique_ptr &elem : items ) { if( ( elem )->has_item( itemid ) ) { @@ -664,9 +683,6 @@ Group_tag item_group::load_item_group( const JsonValue &value, const std::string item_controller->load_item_group( jarr, group, default_subtype == "collection", 0, 0 ); return group; - } else { - value.throw_error( "invalid item group, must be string (group id) or object/array (the group data)" ); - // stream.error always throws, this is here to prevent a warning - return Group_tag{}; } + value.throw_error( "invalid item group, must be string (group id) or object/array (the group data)" ); } diff --git a/src/item_group.h b/src/item_group.h index 1badea4caa7bc..1288a4c186421 100644 --- a/src/item_group.h +++ b/src/item_group.h @@ -13,7 +13,6 @@ struct itype; -using Item_tag = std::string; using Group_tag = std::string; class JsonObject; class JsonValue; @@ -56,7 +55,7 @@ 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 ); +bool group_contains_item( const Group_tag &group_id, const itype_id & ); /** * Return every item type that can possibly be spawned by the item group */ @@ -106,7 +105,7 @@ class Item_spawn_data { public: using ItemList = std::vector; - using RecursionList = std::vector; + using RecursionList = std::vector; Item_spawn_data( int _probability ) : probability( _probability ) { } virtual ~Item_spawn_data() = default; @@ -133,9 +132,9 @@ class Item_spawn_data * For item blacklisted, remove the given item from this and * all linked groups. */ - virtual bool remove_item( const Item_tag &itemid ) = 0; - virtual bool replace_item( const Item_tag &itemid, const Item_tag &replacementid ) = 0; - virtual bool has_item( const Item_tag &itemid ) const = 0; + virtual bool remove_item( const itype_id &itemid ) = 0; + virtual bool replace_item( const itype_id &itemid, const itype_id &replacementid ) = 0; + virtual bool has_item( const itype_id &itemid ) const = 0; virtual std::set every_item() const = 0; @@ -189,8 +188,8 @@ class Item_modifier void modify( item &new_item ) const; void check_consistency( const std::string &context ) const; - bool remove_item( const Item_tag &itemid ); - bool replace_item( const Item_tag &itemid, const Item_tag &replacementid ); + bool remove_item( const itype_id &itemid ); + bool replace_item( const itype_id &itemid, const itype_id &replacementid ); // Currently these always have the same chance as the item group it's part of, but // theoretically it could be defined per-item / per-group. @@ -237,10 +236,10 @@ class Single_item_creator : public Item_spawn_data ItemList create( const time_point &birthday, RecursionList &rec ) const override; item create_single( const time_point &birthday, RecursionList &rec ) const override; void check_consistency( const std::string &context ) const override; - bool remove_item( const Item_tag &itemid ) override; - bool replace_item( const Item_tag &itemid, const Item_tag &replacementid ) override; + bool remove_item( const itype_id &itemid ) override; + bool replace_item( const itype_id &itemid, const itype_id &replacementid ) override; - bool has_item( const Item_tag &itemid ) const override; + bool has_item( const itype_id &itemid ) const override; std::set every_item() const override; }; @@ -271,7 +270,7 @@ class Item_group : public Item_spawn_data */ using prop_list = std::vector >; - void add_item_entry( const Item_tag &itemid, int probability ); + void add_item_entry( const itype_id &itemid, int probability ); void add_group_entry( const Group_tag &groupid, int probability ); /** * Once the relevant data has been read from JSON, this function is always called (either from @@ -283,9 +282,9 @@ class Item_group : public Item_spawn_data ItemList create( const time_point &birthday, RecursionList &rec ) const override; item create_single( const time_point &birthday, RecursionList &rec ) const override; void check_consistency( const std::string &context ) const override; - bool remove_item( const Item_tag &itemid ) override; - bool replace_item( const Item_tag &itemid, const Item_tag &replacementid ) override; - bool has_item( const Item_tag &itemid ) const override; + bool remove_item( const itype_id &itemid ) override; + bool replace_item( const itype_id &itemid, const itype_id &replacementid ) override; + bool has_item( const itype_id &itemid ) const override; std::set every_item() const override; /** diff --git a/src/item_location.cpp b/src/item_location.cpp index bf915f372f7e5..4991a6ed3c902 100644 --- a/src/item_location.cpp +++ b/src/item_location.cpp @@ -342,31 +342,18 @@ class item_location::impl::item_on_person : public item_location::impl obj = *target(); } - if( who->is_armed() && &who->weapon == target() ) { - // no penalties because we already have this item in our hands - mv += dynamic_cast( who )->item_handling_cost( obj, false, 0 ); + item &target_ref = *target(); + if( who->is_wielding( target_ref ) ) { + mv = who->item_handling_cost( obj, false, 0 ); } else { - auto parents = who->parents( *target() ); - if( !parents.empty() && who->is_worn( *parents.back() ) ) { - // if outermost parent item is worn status effects (e.g. GRABBED) are not applied - // holsters may also adjust the volume cost factor - - if( parents.back()->can_holster( obj, true ) ) { - mv += who->as_player()->item_handling_cost( obj, false, - parents.back()->contents.obtain_cost( obj ) ); - - } else { - // it is more expensive to obtain items from the inventory - // TODO: calculate cost for searching in inventory proportional to item volume - mv += dynamic_cast( who )->item_handling_cost( obj, true, INVENTORY_HANDLING_PENALTY ); - } - } - - if( &ch != who ) { - // TODO: implement movement cost for transferring item between characters - } + // then we are wearing it + mv = who->item_handling_cost( obj, true, INVENTORY_HANDLING_PENALTY / 2 ); + } + if( &ch != who ) { + // TODO: implement movement cost for transferring item between characters } + return mv; } @@ -583,7 +570,16 @@ class item_location::impl::item_in_container : public item_location::impl debugmsg( "ERROR: %s does not contain %s", container->tname(), target()->tname() ); return 0; } - return container_mv + container.obtain_cost( ch, qty ); + int parent_obtain_cost = container.obtain_cost( ch, qty ); + if( container.where() != item_location::type::container ) { + // a little bonus for grabbing something from what you're wearing + // TODO: Differentiate holsters from backpacks + parent_obtain_cost /= 2; + } + return ch.mutation_value( "obtain_cost_multiplier" ) * + ch.item_handling_cost( *target(), true, container_mv ) + + // we aren't "obtaining" the parent item, just digging through it + parent_obtain_cost; } }; diff --git a/src/item_pocket.cpp b/src/item_pocket.cpp index 678cb584d71d0..554993b647786 100644 --- a/src/item_pocket.cpp +++ b/src/item_pocket.cpp @@ -25,6 +25,7 @@ std::string enum_to_string( item_pocket::pocket_type d switch ( data ) { case item_pocket::pocket_type::CONTAINER: return "CONTAINER"; case item_pocket::pocket_type::MAGAZINE: return "MAGAZINE"; + case item_pocket::pocket_type::MAGAZINE_WELL: return "MAGAZINE_WELL"; case item_pocket::pocket_type::MOD: return "MOD"; case item_pocket::pocket_type::CORPSE: return "CORPSE"; case item_pocket::pocket_type::SOFTWARE: return "SOFTWARE"; @@ -37,10 +38,33 @@ std::string enum_to_string( item_pocket::pocket_type d // *INDENT-ON* } // namespace io +std::string pocket_data::check_definition() const +{ + if( type == item_pocket::pocket_type::MOD || + type == item_pocket::pocket_type::CORPSE || + type == item_pocket::pocket_type::MIGRATION ) { + return ""; + } + if( magazine_well > 0_ml && rigid ) { + return "rigid overrides magazine_well\n"; + } + if( magazine_well >= max_contains_volume() ) { + return "magazine well larger than pocket volume. consider using rigid instead.\n"; + } + if( max_item_volume && *max_item_volume < min_item_volume ) { + return "max_item_volume is greater than min_item_volume. no item can fit.\n"; + } + if( ( watertight || airtight ) && min_item_volume > 0_ml ) { + return "watertight or gastight is incompatible with min_item_volume\n"; + } + return ""; +} + void pocket_data::load( const JsonObject &jo ) { optional( jo, was_loaded, "pocket_type", type, item_pocket::pocket_type::CONTAINER ); optional( jo, was_loaded, "ammo_restriction", ammo_restriction ); + optional( jo, was_loaded, "item_restriction", item_id_restriction ); // ammo_restriction is a type of override, making the mandatory members not mandatory and superfluous // putting it in an if statement like this should allow for report_unvisited_member to work here if( ammo_restriction.empty() ) { @@ -53,15 +77,16 @@ void pocket_data::load( const JsonObject &jo ) mandatory( jo, was_loaded, "max_contains_volume", volume_capacity, volume_reader() ); mandatory( jo, was_loaded, "max_contains_weight", max_contains_weight, mass_reader() ); optional( jo, was_loaded, "max_item_length", max_item_length, - units::cube_to_volume( volume_capacity ) * M_SQRT2 ); + units::default_length_from_volume( volume_capacity ) * M_SQRT2 ); } optional( jo, was_loaded, "spoil_multiplier", spoil_multiplier, 1.0f ); optional( jo, was_loaded, "weight_multiplier", weight_multiplier, 1.0f ); + optional( jo, was_loaded, "volume_multiplier", volume_multiplier, 1.0f ); optional( jo, was_loaded, "magazine_well", magazine_well, volume_reader(), 0_ml ); optional( jo, was_loaded, "moves", moves, 100 ); optional( jo, was_loaded, "fire_protection", fire_protection, false ); optional( jo, was_loaded, "watertight", watertight, false ); - optional( jo, was_loaded, "gastight", gastight, false ); + optional( jo, was_loaded, "airtight", airtight, false ); optional( jo, was_loaded, "open_container", open_container, false ); optional( jo, was_loaded, "flag_restriction", flag_restriction ); optional( jo, was_loaded, "rigid", rigid, false ); @@ -83,7 +108,7 @@ bool pocket_data::operator==( const pocket_data &rhs ) const { return rigid == rhs.rigid && watertight == rhs.watertight && - gastight == rhs.gastight && + airtight == rhs.airtight && fire_protection == rhs.fire_protection && flag_restriction == rhs.flag_restriction && type == rhs.type && @@ -132,6 +157,36 @@ void item_pocket::restack() } } +item *item_pocket::restack( /*const*/ item *it ) +{ + item *ret = it; + if( contents.size() <= 1 ) { + return ret; + } + for( auto outer_iter = contents.begin(); outer_iter != contents.end(); ++outer_iter ) { + if( !outer_iter->count_by_charges() ) { + continue; + } + for( auto inner_iter = contents.begin(); inner_iter != contents.end(); ) { + if( outer_iter == inner_iter || !inner_iter->count_by_charges() ) { + ++inner_iter; + continue; + } + if( outer_iter->combine( *inner_iter ) ) { + // inner was placed in outer, check if inner was the item that we track + if( &( *inner_iter ) == ret ) { + ret = &( *outer_iter ); + } + inner_iter = contents.erase( inner_iter ); + outer_iter = contents.begin(); + } else { + ++inner_iter; + } + } + } + return ret; +} + bool item_pocket::has_item_stacks_with( const item &it ) const { for( const item &inside : contents ) { @@ -160,7 +215,7 @@ bool item_pocket::better_pocket( const item_pocket &rhs, const item &it ) const // a lower spoil multiplier is better return rhs.spoil_multiplier() < spoil_multiplier(); } - if( it.made_of( SOLID ) ) { + if( it.made_of( phase_id::SOLID ) ) { if( data->watertight != rhs.data->watertight ) { return !rhs.data->watertight; } @@ -292,6 +347,16 @@ units::volume item_pocket::volume_capacity() const return data->volume_capacity; } +units::volume item_pocket::magazine_well() const +{ + return data->magazine_well; +} + +units::mass item_pocket::weight_capacity() const +{ + return data->max_contains_weight; +} + units::volume item_pocket::max_contains_volume() const { return data->max_contains_volume(); @@ -325,13 +390,10 @@ units::volume item_pocket::item_size_modifier() const } units::volume total_vol = 0_ml; for( const item &it : contents ) { - if( is_type( item_pocket::pocket_type::MOD ) ) { - total_vol += it.volume( true ); - } else { - total_vol += it.volume(); - } + total_vol += it.volume( is_type( item_pocket::pocket_type::MOD ) ); } total_vol -= data->magazine_well; + total_vol *= data->volume_multiplier; return std::max( 0_ml, total_vol ); } @@ -388,6 +450,11 @@ std::vector item_pocket::gunmods() const return mods; } +cata::flat_set item_pocket::item_type_restrictions() const +{ + return data->item_id_restriction; +} + item *item_pocket::magazine_current() { auto iter = std::find_if( contents.begin(), contents.end(), []( const item & it ) { @@ -399,18 +466,39 @@ item *item_pocket::magazine_current() int item_pocket::ammo_consume( int qty ) { int need = qty; + int used = 0; while( !contents.empty() ) { item &e = contents.front(); if( need >= e.charges ) { need -= e.charges; + used += e.charges; contents.erase( contents.begin() ); } else { e.charges -= need; - need = 0; + used = need; break; } } - return qty - need; + return used; +} + +int item_pocket::ammo_capacity( const ammotype &ammo ) const +{ + const auto found_ammo = data->ammo_restriction.find( ammo ); + if( found_ammo == data->ammo_restriction.end() ) { + return 0; + } else { + return found_ammo->second; + } +} + +std::set item_pocket::ammo_types() const +{ + std::set ret; + for( const std::pair &type_pair : data->ammo_restriction ) { + ret.emplace( type_pair.first ); + } + return ret; } void item_pocket::casings_handle( const std::function &func ) @@ -432,7 +520,7 @@ void item_pocket::casings_handle( const std::function &func ) void item_pocket::handle_liquid_or_spill( Character &guy ) { for( auto iter = contents.begin(); iter != contents.end(); ) { - if( iter->made_of( LIQUID ) ) { + if( iter->made_of( phase_id::LIQUID ) ) { item liquid( *iter ); iter = contents.erase( iter ); liquid_handler::handle_all_liquid( liquid, 1 ); @@ -580,7 +668,9 @@ void item_pocket::set_item_defaults() /* for guns and other items defined to have a magazine but don't use "ammo" */ if( contained_item.is_magazine() ) { contained_item.ammo_set( - contained_item.ammo_default(), contained_item.ammo_capacity() / 2 + contained_item.ammo_default(), + contained_item.ammo_capacity( item_controller->find_template( + contained_item.ammo_default() )->ammo->type ) / 2 ); } else { //Contents are batteries or food contained_item.charges = @@ -605,43 +695,44 @@ void item_pocket::general_info( std::vector &info, int pocket_number, const std::string pocket_num = string_format( _( "Pocket %d:" ), pocket_number ); info.emplace_back( "DESCRIPTION", pocket_num ); } - if( data->rigid ) { - info.emplace_back( "DESCRIPTION", _( "This pocket is rigid." ) ); + + info.push_back( vol_to_info( "CONTAINER", _( "Volume: " ), volume_capacity() ) ); + info.push_back( weight_to_info( "CONTAINER", _( " Weight: " ), weight_capacity() ) ); + info.back().bNewLine = true; + + if( data->max_item_length != 0_mm ) { + info.back().bNewLine = true; + info.push_back( iteminfo( "BASE", _( "Maximum item length: " ), + string_format( " %s", length_units( data->max_item_length ) ), + iteminfo::lower_is_better, + convert_length( data->max_item_length ) ) ); } + if( data->min_item_volume > 0_ml ) { info.emplace_back( "DESCRIPTION", - string_format( _( "Minimum volume of item allowed: %s" ), + string_format( _( "Minimum item volume: %s" ), vol_to_string( data->min_item_volume ) ) ); } if( data->max_item_volume ) { info.emplace_back( "DESCRIPTION", - string_format( _( "Maximum volume of item allowed: %s" ), + string_format( _( "Maximum item volume: %s" ), vol_to_string( *data->max_item_volume ) ) ); } - if( data->max_item_length != 0_mm ) { - info.push_back( iteminfo( "BASE", _( "Max Item Length: " ), - string_format( " %s", length_units( data->max_item_length ) ), - iteminfo::lower_is_better, - convert_length( data->max_item_length ) ) ); - } - - info.emplace_back( "DESCRIPTION", string_format( _( "Volume Capacity: %s" ), - vol_to_string( volume_capacity() ) ) ); - - info.emplace_back( "DESCRIPTION", string_format( _( "Weight Capacity: %s" ), - weight_to_string( data->max_contains_weight ) ) ); - info.emplace_back( "DESCRIPTION", - string_format( _( "Base moves to take an item out: %d" ), + string_format( _( "Base moves to remove item: %d" ), data->moves ) ); + if( data->rigid ) { + info.emplace_back( "DESCRIPTION", _( "This pocket is rigid." ) ); + } + if( data->watertight ) { info.emplace_back( "DESCRIPTION", _( "This pocket can contain a liquid." ) ); } - if( data->gastight ) { + if( data->airtight ) { info.emplace_back( "DESCRIPTION", _( "This pocket can contain a gas." ) ); } @@ -667,6 +758,12 @@ void item_pocket::general_info( std::vector &info, int pocket_number, string_format( _( "Items in this pocket weigh %.0f%% their original weight." ), data->weight_multiplier * 100 ) ); } + if( data->volume_multiplier != 1.0f ) { + info.emplace_back( "DESCRIPTION", + string_format( + _( "This pocket expands at %.0f%% of the rate of volume of items inside." ), + data->weight_multiplier * 100 ) ); + } } void item_pocket::contents_info( std::vector &info, int pocket_number, @@ -692,14 +789,13 @@ void item_pocket::contents_info( std::vector &info, int pocket_number, if( sealed() ) { info.emplace_back( "DESCRIPTION", _( "This pocket is sealed." ) ); } - info.emplace_back( "DESCRIPTION", - string_format( "%s: %s / %s", _( "Volume" ), - vol_to_string( contains_volume() ), - vol_to_string( volume_capacity() ) ) ); - info.emplace_back( "DESCRIPTION", - string_format( "%s: %s / %s", _( "Weight" ), - weight_to_string( contains_weight() ), - weight_to_string( data->max_contains_weight ) ) ); + + info.emplace_back( vol_to_info( "CONTAINER", _( "Volume: " ), contains_volume() ) ); + info.emplace_back( vol_to_info( "CONTAINER", _( " of " ), volume_capacity() ) ); + + info.back().bNewLine = true; + info.emplace_back( weight_to_info( "CONTAINER", _( "Weight: " ), contains_weight() ) ); + info.emplace_back( weight_to_info( "CONTAINER", _( " of " ), weight_capacity() ) ); bool contents_header = false; for( const item &contents_item : contents ) { @@ -714,7 +810,7 @@ void item_pocket::contents_info( std::vector &info, int pocket_number, const translation &description = contents_item.type->description; - if( contents_item.made_of_from_type( LIQUID ) ) { + if( contents_item.made_of_from_type( phase_id::LIQUID ) ) { info.emplace_back( "DESCRIPTION", contents_item.display_name() ); info.emplace_back( vol_to_info( "CONTAINER", description + space, contents_item.volume() ) ); @@ -743,6 +839,12 @@ ret_val item_pocket::can_contain( const item &it ) co } } + if( !data->item_id_restriction.empty() && + data->item_id_restriction.count( it.typeId() ) == 0 ) { + return ret_val::make_failure( + contain_code::ERR_FLAG, _( "holster does not accept this item type" ) ); + } + if( data->holster && !contents.empty() ) { item item_copy( contents.front() ); if( item_copy.combine( it ) ) { @@ -767,7 +869,7 @@ ret_val item_pocket::can_contain( const item &it ) co contain_code::ERR_LIQUID, _( "can't put non liquid into pocket with liquid" ) ); } if( it.made_of( phase_id::GAS ) ) { - if( !data->gastight ) { + if( !data->airtight ) { return ret_val::make_failure( contain_code::ERR_GAS, _( "can't contain gas" ) ); } @@ -821,7 +923,7 @@ ret_val item_pocket::can_contain( const item &it ) co // liquids and gases avoid the size limit altogether // soft items also avoid the size limit - if( !it.made_of( LIQUID ) && !it.made_of( GAS ) && + if( !it.made_of( phase_id::LIQUID ) && !it.made_of( phase_id::GAS ) && !it.is_soft() && data->max_item_volume && it.volume() > *data->max_item_volume ) { return ret_val::make_failure( @@ -836,7 +938,7 @@ ret_val item_pocket::can_contain( const item &it ) co return ret_val::make_failure( contain_code::ERR_TOO_SMALL, _( "item is too small" ) ); } - if( it.weight() > data->max_contains_weight ) { + if( it.weight() > weight_capacity() ) { return ret_val::make_failure( contain_code::ERR_TOO_HEAVY, _( "item is too heavy" ) ); } @@ -1092,10 +1194,26 @@ bool item_pocket::watertight() const return data->watertight; } -void item_pocket::add( const item &it ) +bool item_pocket::is_standard_type() const +{ + return data->type == pocket_type::CONTAINER || + data->type == pocket_type::MAGAZINE || + data->type == pocket_type::MAGAZINE_WELL; +} + +bool item_pocket::airtight() const +{ + return data->airtight; +} + +void item_pocket::add( const item &it, item **ret ) { contents.push_back( it ); - restack(); + if( ret == nullptr ) { + restack(); + } else { + *ret = restack( &contents.back() ); + } } void item_pocket::fill_with( item contained ) @@ -1116,7 +1234,8 @@ bool item_pocket::can_unload_liquid() const } const item &cts = contents.front(); - bool cts_is_frozen_liquid = cts.made_of_from_type( LIQUID ) && cts.made_of( SOLID ); + bool cts_is_frozen_liquid = cts.made_of_from_type( phase_id::LIQUID ) && + cts.made_of( phase_id::SOLID ); return will_spill() || !cts_is_frozen_liquid; } @@ -1127,7 +1246,7 @@ std::list &item_pocket::edit_contents() void item_pocket::migrate_item( item &obj, const std::set &migrations ) { - for( const std::string &c : migrations ) { + for( const itype_id &c : migrations ) { if( std::none_of( contents.begin(), contents.end(), [&]( const item & e ) { return e.typeId() == c; } ) ) { @@ -1138,8 +1257,7 @@ void item_pocket::migrate_item( item &obj, const std::set &migrations ret_val item_pocket::insert_item( const item &it ) { - const bool contain_override = !is_type( pocket_type::CONTAINER ) && - !is_type( pocket_type::MAGAZINE ); + const bool contain_override = !is_standard_type(); const ret_val ret = can_contain( it ); if( contain_override || ret.success() ) { contents.push_back( it ); @@ -1186,7 +1304,7 @@ units::mass item_pocket::contains_weight() const units::mass item_pocket::remaining_weight() const { - return data->max_contains_weight - contains_weight(); + return weight_capacity() - contains_weight(); } int item_pocket::best_quality( const quality_id &id ) const diff --git a/src/item_pocket.h b/src/item_pocket.h index 89fb05608b750..23d0257ed3dd6 100644 --- a/src/item_pocket.h +++ b/src/item_pocket.h @@ -6,6 +6,7 @@ #include "enums.h" #include "enum_traits.h" +#include "flat_set.h" #include "optional.h" #include "type_id.h" #include "ret_val.h" @@ -26,27 +27,26 @@ struct iteminfo; struct itype; struct tripoint; -using itype_id = std::string; - class item_pocket { public: enum pocket_type { CONTAINER, MAGAZINE, + MAGAZINE_WELL, //holds magazines MOD, // the gunmods or toolmods CORPSE, // the "corpse" pocket - bionics embedded in a corpse SOFTWARE, // software put into usb or some such MIGRATION, // this allows items to load contents that are too big, in order to spill them later. LAST }; - enum class contain_code { + enum class contain_code : int { SUCCESS, // only mods can go into the pocket for mods ERR_MOD, // trying to put a liquid into a non-watertight container ERR_LIQUID, - // trying to put a gas in a non-gastight container + // trying to put a gas in a non-airtight container ERR_GAS, // trying to put an item that wouldn't fit if the container were empty ERR_TOO_BIG, @@ -76,8 +76,14 @@ class item_pocket bool empty() const; bool full( bool allow_bucket ) const; + // Convenience accessors for pocket data attributes with the same name bool rigid() const; bool watertight() const; + bool airtight() const; + + // is this pocket one of the standard types? + // exceptions are MOD, CORPSE, SOFTWARE, MIGRATION, etc. + bool is_standard_type() const; std::list all_items_top(); std::list all_items_top() const; @@ -100,6 +106,9 @@ class item_pocket // how many more of @it can this pocket hold? int remaining_capacity_for_item( const item &it ) const; units::volume volume_capacity() const; + // the amount of space this pocket can hold before it starts expanding + units::volume magazine_well() const; + units::mass weight_capacity() const; // The largest volume of contents this pocket can have. Different from // volume_capacity because that doesn't take into account ammo containers. units::volume max_contains_volume() const; @@ -123,8 +132,13 @@ class item_pocket std::vector gunmods(); // returns a list of pointers of all gunmods in the pocket std::vector gunmods() const; + cata::flat_set item_type_restrictions() const; item *magazine_current(); + // returns amount of ammo consumed int ammo_consume( int qty ); + // returns all allowable ammotypes + std::set ammo_types() const; + int ammo_capacity( const ammotype &ammo ) const; void casings_handle( const std::function &func ); bool use_amount( const itype_id &it, int &quantity, std::list &used ); bool will_explode_in_a_fire() const; @@ -173,18 +187,22 @@ class item_pocket * NOTE: this destroys the items that get processed */ void process( player *carrier, const tripoint &pos, bool activate, float insulation = 1, - temperature_flag flag = temperature_flag::TEMP_NORMAL, float spoil_multiplier_parent = 1.0f ); + temperature_flag flag = temperature_flag::NORMAL, float spoil_multiplier_parent = 1.0f ); pocket_type saved_type() const { return _saved_type; } + bool saved_sealed() const { + return _saved_sealed; + } + // tries to put an item in the pocket. returns false if failure ret_val insert_item( const item &it ); /** * adds an item to the pocket with no checks * may create a new pocket */ - void add( const item &it ); + void add( const item &it, item **ret = nullptr ); /** fills the pocket to the brim with the item */ void fill_with( item contained ); bool can_unload_liquid() const; @@ -214,6 +232,8 @@ class item_pocket bool same_contents( const item_pocket &rhs ) const; /** stacks like items inside the pocket */ void restack(); + /** same as above, except returns the stack where input item was placed */ + item *restack( /*const*/ item *it ); bool has_item_stacks_with( const item &it ) const; bool better_pocket( const item_pocket &rhs, const item &it ) const; @@ -222,6 +242,7 @@ class item_pocket private: // the type of pocket, saved to json pocket_type _saved_type = pocket_type::LAST; + bool _saved_sealed = false; const pocket_data *data = nullptr; // the items inside the pocket std::list contents; @@ -275,6 +296,8 @@ class pocket_data float spoil_multiplier = 1.0f; // items' weight in this pocket are modified by this number float weight_multiplier = 1.0f; + // items' volume in this pocket are modified by this number for calculation of the containing object + float volume_multiplier = 1.0f; // the size that gets subtracted from the contents before it starts enlarging the item units::volume magazine_well = 0_ml; // base time it takes to pull an item out of the pocket @@ -284,7 +307,7 @@ class pocket_data // can hold liquids bool watertight = false; // can hold gas - bool gastight = false; + bool airtight = false; // the pocket will spill its contents if placed in another container bool open_container = false; @@ -296,6 +319,9 @@ class pocket_data // items stored are restricted to these ammo types: // the pocket can only contain one of them since the amount is also defined for each ammotype std::map ammo_restriction; + // items stored are restricted to these item ids. + // this takes precedence over the other two restrictions + cata::flat_set item_id_restriction; // container's size and encumbrance does not change based on contents. bool rigid = false; @@ -303,6 +329,8 @@ class pocket_data units::volume max_contains_volume() const; + std::string check_definition() const; + void load( const JsonObject &jo ); void deserialize( JsonIn &jsin ); }; diff --git a/src/iteminfo_query.h b/src/iteminfo_query.h index e270f62e516aa..4611a14d2b0c9 100644 --- a/src/iteminfo_query.h +++ b/src/iteminfo_query.h @@ -11,6 +11,7 @@ enum class iteminfo_parts : size_t { BASE_CATEGORY = 0, BASE_PRICE, BASE_BARTER, + BASE_OWNER, BASE_VOLUME, BASE_WEIGHT, BASE_LENGTH, @@ -18,6 +19,7 @@ enum class iteminfo_parts : size_t { BASE_DAMAGE, BASE_TOHIT, BASE_MOVES, + BASE_DPS, BASE_REQUIREMENTS, BASE_MATERIAL, BASE_CONTENTS, @@ -28,6 +30,7 @@ enum class iteminfo_parts : size_t { MED_PORTIONS, MED_STIMULATION, MED_QUENCH, + MED_CONSUME_TIME, FOOD_NUTRITION, FOOD_QUENCH, @@ -39,8 +42,10 @@ enum class iteminfo_parts : size_t { FOOD_CANNIBALISM, FOOD_TAINT, FOOD_POISON, + FOOD_ALLERGEN, FOOD_HALLUCINOGENIC, FOOD_ROT, + FOOD_CONSUME_TIME, MAGAZINE_CAPACITY, MAGAZINE_RELOAD, @@ -135,6 +140,7 @@ enum class iteminfo_parts : size_t { DESCRIPTION_BOOK_ADDITIONAL_RECIPES, BOOK_UNREAD, + BOOK_INCLUDED_RECIPES, CONTAINER_DETAILS, @@ -162,6 +168,7 @@ enum class iteminfo_parts : size_t { DESCRIPTION_USE_METHODS, DESCRIPTION_REPAIREDWITH, + DESCRIPTION_ALLERGEN, DESCRIPTION_CONDUCTIVITY, DESCRIPTION_FLAGS, DESCRIPTION_FLAGS_HELMETCOMPAT, @@ -201,6 +208,8 @@ enum class iteminfo_parts : size_t { DESCRIPTION_NOTES, + DESCRIPTION_DIE, + DESCRIPTION_CONTENTS, DESCRIPTION_APPLICABLE_RECIPES, diff --git a/src/itype.cpp b/src/itype.cpp index 5472f675a6612..f36b90fdbc1be 100644 --- a/src/itype.cpp +++ b/src/itype.cpp @@ -41,7 +41,7 @@ std::string itype::nname( unsigned int quantity ) const { // Always use singular form for liquids. // (Maybe gases too? There are no gases at the moment) - if( phase == LIQUID ) { + if( phase == phase_id::LIQUID ) { quantity = 1; } return name.translated( quantity ); diff --git a/src/itype.h b/src/itype.h index 9fa08f77db13a..bed6bf3359c65 100644 --- a/src/itype.h +++ b/src/itype.h @@ -37,7 +37,6 @@ enum art_effect_active : int; enum art_charge : int; enum art_charge_req : int; enum art_effect_passive : int; -using itype_id = std::string; class gun_modifier_data { @@ -97,7 +96,7 @@ struct islot_tool { cata::optional revert_to; std::string revert_msg; - std::string subtype; + itype_id subtype; int max_charges = 0; int def_charges = 0; @@ -117,7 +116,7 @@ struct islot_comestible { std::string comesttype; /** tool needed to consume (e.g. lighter for cigarettes) */ - std::string tool = "null"; + itype_id tool = itype_id::NULL_ID(); /** Defaults # of charges (drugs, loaf of bread? etc) */ int def_charges = 1; @@ -197,7 +196,7 @@ struct islot_comestible { struct islot_brewable { /** What are the results of fermenting this item? */ - std::vector results; + std::vector results; /** How long for this brew to ferment. */ time_duration time = 0_turns; @@ -560,7 +559,7 @@ namespace std template<> struct hash { - size_t operator()( const gun_type_type &t ) const { + size_t operator()( const gun_type_type &t ) const noexcept { return hash()( t.name_ ); } }; @@ -637,22 +636,13 @@ struct islot_magazine { int count = 0; /** Default type of ammo contained by a magazine (often set for ammo belts) */ - itype_id default_ammo = "NULL"; - - /** - * How reliable this magazine on a range of 0 to 10? - * @see doc/GAME_BALANCE.md - */ - int reliability = 0; + itype_id default_ammo = itype_id::NULL_ID(); /** How long it takes to load each unit of ammo into the magazine */ int reload_time = 100; /** For ammo belts one linkage (of given type) is dropped for each unit of ammo consumed */ cata::optional linkage; - - /** If false, ammo will cook off if this mag is affected by fire */ - bool protects_contents = false; }; struct islot_battery { @@ -673,7 +663,7 @@ struct islot_ammo : common_ranged_data { /** * Control chance for and state of any items dropped at ranged target *@{*/ - itype_id drop = "null"; + itype_id drop = itype_id::NULL_ID(); float drop_chance = 1.0; @@ -766,7 +756,7 @@ struct islot_seed { /** * Type id of the fruit item. */ - std::string fruit_id; + itype_id fruit_id; /** * Whether to spawn seed items additionally to the fruit items. */ @@ -774,7 +764,7 @@ struct islot_seed { /** * Additionally items (a list of their item ids) that will spawn when harvesting the plant. */ - std::vector byproducts; + std::vector byproducts; islot_seed() = default; }; @@ -844,7 +834,7 @@ struct itype { /*@}*/ // a hint for tilesets: if it doesn't have a tile, what does it look like? - std::string looks_like; + itype_id looks_like; // What item this item repairs like if it doesn't have a recipe itype_id repairs_like; @@ -885,7 +875,7 @@ struct itype { int min_int = 0; int min_per = 0; - phase_id phase = SOLID; // e.g. solid, liquid, gas + phase_id phase = phase_id::SOLID; // e.g. solid, liquid, gas // How should the item explode explosion_data explosion; @@ -972,7 +962,7 @@ struct itype { // information related to being able to store things inside the item. std::vector pockets; - layer_level layer = layer_level::MAX_CLOTHING_LAYER; + layer_level layer = layer_level::NUM_LAYER_LEVELS; /** * How much insulation this item provides, either as a container, or as @@ -1001,7 +991,7 @@ struct itype { /// @} protected: - std::string id = "null"; /** unique string identifier for this type */ + itype_id id = itype_id::NULL_ID(); /** unique string identifier for this type */ // private because is should only be accessed through itype::nname! // nname() is used for display purposes diff --git a/src/iuse.cpp b/src/iuse.cpp index 2ca64518631e7..be8daca4e192c 100644 --- a/src/iuse.cpp +++ b/src/iuse.cpp @@ -177,7 +177,7 @@ static const efftype_id effect_jetinjector( "jetinjector" ); static const efftype_id effect_lack_sleep( "lack_sleep" ); static const efftype_id effect_laserlocked( "laserlocked" ); static const efftype_id effect_lying_down( "lying_down" ); -static const efftype_id effect_melatonin_supplements( "melatonin" ); +static const efftype_id effect_melatonin( "melatonin" ); static const efftype_id effect_meth( "meth" ); static const efftype_id effect_monster_armor( "monster_armor" ); static const efftype_id effect_music( "music" ); @@ -189,7 +189,7 @@ static const efftype_id effect_ridden( "ridden" ); static const efftype_id effect_riding( "riding" ); static const efftype_id effect_run( "run" ); static const efftype_id effect_sad( "sad" ); -static const efftype_id effect_saddled( "monster_saddled" ); +static const efftype_id effect_monster_saddled( "monster_saddled" ); static const efftype_id effect_sap( "sap" ); static const efftype_id effect_shakes( "shakes" ); static const efftype_id effect_sleep( "sleep" ); @@ -222,11 +222,85 @@ static const efftype_id effect_weak_antibiotic_visible( "weak_antibiotic_visible static const efftype_id effect_webbed( "webbed" ); static const efftype_id effect_weed_high( "weed_high" ); +static const itype_id itype_adv_UPS_off( "adv_UPS_off" ); +static const itype_id itype_advanced_ecig( "advanced_ecig" ); +static const itype_id itype_afs_atomic_smartphone( "afs_atomic_smartphone" ); +static const itype_id itype_afs_atomic_smartphone_music( "afs_atomic_smartphone_music" ); +static const itype_id itype_afs_wraitheon_smartphone( "afs_wraitheon_smartphone" ); +static const itype_id itype_afs_atomic_wraitheon_music( "afs_atomic_wraitheon_music" ); +static const itype_id itype_apparatus( "apparatus" ); +static const itype_id itype_arrow_flamming( "arrow_flamming" ); +static const itype_id itype_atomic_coffeepot( "atomic_coffeepot" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_barometer( "barometer" ); +static const itype_id itype_c4armed( "c4armed" ); +static const itype_id itype_canister_empty( "canister_empty" ); +static const itype_id itype_chainsaw_off( "chainsaw_off" ); +static const itype_id itype_chainsaw_on( "chainsaw_on" ); +static const itype_id itype_cig( "cig" ); +static const itype_id itype_cigar( "cigar" ); +static const itype_id itype_cow_bell( "cow_bell" ); +static const itype_id itype_data_card( "data_card" ); +static const itype_id itype_detergent( "detergent" ); +static const itype_id itype_e_handcuffs( "e_handcuffs" ); +static const itype_id itype_ecig( "ecig" ); +static const itype_id itype_fire( "fire" ); +static const itype_id itype_firecracker_act( "firecracker_act" ); +static const itype_id itype_firecracker_pack_act( "firecracker_pack_act" ); +static const itype_id itype_geiger_off( "geiger_off" ); +static const itype_id itype_geiger_on( "geiger_on" ); +static const itype_id itype_granade_act( "granade_act" ); +static const itype_id itype_handrolled_cig( "handrolled_cig" ); +static const itype_id itype_heatpack_used( "heatpack_used" ); +static const itype_id itype_hygrometer( "hygrometer" ); +static const itype_id itype_joint( "joint" ); +static const itype_id itype_log( "log" ); +static const itype_id itype_manhole_cover( "manhole_cover" ); +static const itype_id itype_mask_h20survivor_on( "mask_h20survivor_on" ); +static const itype_id itype_mininuke_act( "mininuke_act" ); +static const itype_id itype_molotov( "molotov" ); +static const itype_id itype_mobile_memory_card( "mobile_memory_card" ); +static const itype_id itype_mobile_memory_card_used( "mobile_memory_card_used" ); +static const itype_id itype_mp3( "mp3" ); +static const itype_id itype_mp3_on( "mp3_on" ); +static const itype_id itype_multi_cooker( "multi_cooker" ); +static const itype_id itype_multi_cooker_filled( "multi_cooker_filled" ); +static const itype_id itype_nicotine_liquid( "nicotine_liquid" ); +static const itype_id itype_noise_emitter( "noise_emitter" ); +static const itype_id itype_noise_emitter_on( "noise_emitter_on" ); +static const itype_id itype_radio( "radio" ); +static const itype_id itype_radio_car( "radio_car" ); +static const itype_id itype_radio_car_on( "radio_car_on" ); +static const itype_id itype_radio_on( "radio_on" ); +static const itype_id itype_rebreather_on( "rebreather_on" ); +static const itype_id itype_rebreather_xl_on( "rebreather_xl_on" ); +static const itype_id itype_rmi2_corpse( "rmi2_corpse" ); +static const itype_id itype_sheet( "sheet" ); +static const itype_id itype_shocktonfa_off( "shocktonfa_off" ); +static const itype_id itype_shocktonfa_on( "shocktonfa_on" ); +static const itype_id itype_smart_phone( "smart_phone" ); +static const itype_id itype_smartphone_music( "smartphone_music" ); +static const itype_id itype_soap( "soap" ); +static const itype_id itype_soldering_iron( "soldering_iron" ); +static const itype_id itype_spiral_stone( "spiral_stone" ); +static const itype_id itype_stick( "stick" ); +static const itype_id itype_string_36( "string_36" ); +static const itype_id itype_thermometer( "thermometer" ); +static const itype_id itype_towel( "towel" ); +static const itype_id itype_towel_soiled( "towel_soiled" ); +static const itype_id itype_towel_wet( "towel_wet" ); +static const itype_id itype_UPS_off( "UPS_off" ); +static const itype_id itype_water( "water" ); +static const itype_id itype_water_clean( "water_clean" ); +static const itype_id itype_wax( "wax" ); +static const itype_id itype_weather_reader( "weather_reader" ); + static const skill_id skill_computer( "computer" ); static const skill_id skill_cooking( "cooking" ); static const skill_id skill_electronics( "electronics" ); static const skill_id skill_fabrication( "fabrication" ); static const skill_id skill_firstaid( "firstaid" ); +static const skill_id skill_lockpick( "lockpick" ); static const skill_id skill_mechanics( "mechanics" ); static const skill_id skill_melee( "melee" ); static const skill_id skill_survival( "survival" ); @@ -263,12 +337,13 @@ static const trait_id trait_WAYFARER( "WAYFARER" ); static const quality_id qual_AXE( "AXE" ); static const quality_id qual_DIG( "DIG" ); +static const quality_id qual_LOCKPICK( "LOCKPICK" ); -static const species_id FUNGUS( "FUNGUS" ); -static const species_id HALLUCINATION( "HALLUCINATION" ); -static const species_id INSECT( "INSECT" ); -static const species_id ROBOT( "ROBOT" ); -static const species_id ZOMBIE( "ZOMBIE" ); +static const species_id species_FUNGUS( "FUNGUS" ); +static const species_id species_HALLUCINATION( "HALLUCINATION" ); +static const species_id species_INSECT( "INSECT" ); +static const species_id species_ROBOT( "ROBOT" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); static const mongroup_id GROUP_FISH( "GROUP_FISH" ); @@ -293,6 +368,7 @@ static const std::string flag_CURRENT( "CURRENT" ); static const std::string flag_DIGGABLE( "DIGGABLE" ); static const std::string flag_FISHABLE( "FISHABLE" ); static const std::string flag_FIX_FARSIGHT( "FIX_FARSIGHT" ); +static const std::string flag_PERFECT_LOCKPICK( "PERFECT_LOCKPICK" ); static const std::string flag_PLANT( "PLANT" ); static const std::string flag_PLOWABLE( "PLOWABLE" ); @@ -403,7 +479,7 @@ int iuse::sewage( player *p, item *it, bool, const tripoint & ) int iuse::honeycomb( player *p, item *it, bool, const tripoint & ) { - g->m.spawn_item( p->pos(), "wax", 2 ); + g->m.spawn_item( p->pos(), itype_wax, 2 ); return it->type->charges_to_use(); } @@ -469,7 +545,7 @@ int iuse::alcohol_strong( player *p, item *it, bool, const tripoint & ) */ int iuse::smoking( player *p, item *it, bool, const tripoint & ) { - bool hasFire = ( p->has_charges( "fire", 1 ) ); + bool hasFire = ( p->has_charges( itype_fire, 1 ) ); // make sure we're not already smoking something if( !check_litcig( *p ) ) { @@ -482,24 +558,24 @@ int iuse::smoking( player *p, item *it, bool, const tripoint & ) } item cig; - if( it->typeId() == "cig" ) { + if( it->typeId() == itype_cig ) { cig = item( "cig_lit", calendar::turn ); cig.item_counter = to_turns( 4_minutes ); p->mod_hunger( -3 ); p->mod_thirst( 2 ); - } else if( it->typeId() == "handrolled_cig" ) { + } else if( it->typeId() == itype_handrolled_cig ) { // This transforms the hand-rolled into a normal cig, which isn't exactly // what I want, but leaving it for now. cig = item( "cig_lit", calendar::turn ); cig.item_counter = to_turns( 4_minutes ); p->mod_thirst( 2 ); p->mod_hunger( -3 ); - } else if( it->typeId() == "cigar" ) { + } else if( it->typeId() == itype_cigar ) { cig = item( "cigar_lit", calendar::turn ); cig.item_counter = to_turns( 12_minutes ); p->mod_thirst( 3 ); p->mod_hunger( -4 ); - } else if( it->typeId() == "joint" ) { + } else if( it->typeId() == itype_joint ) { cig = item( "joint_lit", calendar::turn ); cig.item_counter = to_turns( 4_minutes ); p->mod_hunger( 4 ); @@ -514,13 +590,13 @@ int iuse::smoking( player *p, item *it, bool, const tripoint & ) return 0; } // If we're here, we better have a cig to light. - p->use_charges_if_avail( "fire", 1 ); + p->use_charges_if_avail( itype_fire, 1 ); cig.active = true; p->inv.add_item( cig, false, true ); p->add_msg_if_player( m_neutral, _( "You light a %s." ), cig.tname() ); // Parting messages - if( it->typeId() == "joint" ) { + if( it->typeId() == itype_joint ) { // Would group with the joint, but awkward to mutter before lighting up. if( one_in( 5 ) ) { weed_msg( *p ); @@ -536,13 +612,13 @@ int iuse::smoking( player *p, item *it, bool, const tripoint & ) int iuse::ecig( player *p, item *it, bool, const tripoint & ) { - if( it->typeId() == "ecig" ) { + if( it->typeId() == itype_ecig ) { p->add_msg_if_player( m_neutral, _( "You take a puff from your electronic cigarette." ) ); - } else if( it->typeId() == "advanced_ecig" ) { - if( p->has_charges( "nicotine_liquid", 1 ) ) { + } else if( it->typeId() == itype_advanced_ecig ) { + if( p->has_charges( itype_nicotine_liquid, 1 ) ) { p->add_msg_if_player( m_neutral, _( "You inhale some vapor from your advanced electronic cigarette." ) ); - p->use_charges( "nicotine_liquid", 1 ); + p->use_charges( itype_nicotine_liquid, 1 ); item dummy_ecig = item( "ecig", calendar::turn ); p->consume_effects( dummy_ecig ); } else { @@ -639,7 +715,7 @@ int iuse::fungicide( player *p, item *it, bool, const tripoint & ) if( monster *const mon_ptr = g->critter_at( dest ) ) { monster &critter = *mon_ptr; if( g->u.sees( dest ) && - !critter.type->in_species( FUNGUS ) ) { + !critter.type->in_species( species_FUNGUS ) ) { add_msg( m_warning, _( "The %s is covered in tiny spores!" ), critter.name() ); } @@ -787,7 +863,7 @@ int iuse::meth( player *p, item *it, bool, const tripoint & ) { /** @EFFECT_STR reduces duration of meth */ time_duration duration = 1_minutes * ( 60 - p->str_cur ); - if( p->has_amount( "apparatus", 1 ) && p->use_charges_if_avail( "fire", 1 ) ) { + if( p->has_amount( itype_apparatus, 1 ) && p->use_charges_if_avail( itype_fire, 1 ) ) { p->add_msg_if_player( m_neutral, _( "You smoke your meth." ) ); p->add_msg_if_player( m_good, _( "The world seems to sharpen." ) ); p->mod_fatigue( -375 ); @@ -1014,7 +1090,7 @@ int iuse::oxygen_bottle( player *p, item *it, bool, const tripoint & ) int iuse::blech( player *p, item *it, bool, const tripoint & ) { // TODO: Add more effects? - if( it->made_of( LIQUID ) ) { + if( it->made_of( phase_id::LIQUID ) ) { if( !p->query_yn( _( "This looks unhealthy, sure you want to drink it?" ) ) ) { return 0; } @@ -1049,7 +1125,7 @@ int iuse::blech( player *p, item *it, bool, const tripoint & ) int iuse::blech_because_unclean( player *p, item *it, bool, const tripoint & ) { if( !p->is_npc() ) { - if( it->made_of( LIQUID ) ) { + if( it->made_of( phase_id::LIQUID ) ) { if( !p->query_yn( _( "This looks unclean, sure you want to drink it?" ) ) ) { return 0; } @@ -1297,8 +1373,7 @@ static void marloss_common( player &p, item &it, const trait_id ¤t_color ) } else if( effect <= 6 ) { // Radiation cleanse is below p.add_msg_if_player( m_good, _( "You feel better all over." ) ); p.mod_painkiller( 30 ); - iuse dummy; - dummy.purifier( &p, &it, false, p.pos() ); + iuse::purifier( &p, &it, false, p.pos() ); if( effect == 6 ) { p.set_rad( 0 ); } @@ -1444,7 +1519,7 @@ int iuse::mycus( player *p, item *it, bool t, const tripoint &pos ) _( "It tastes amazing, and you finish it quickly." ) ); p->add_msg_if_player( m_good, _( "You feel better all over." ) ); p->mod_painkiller( 30 ); - this->purifier( p, it, t, pos ); // Clear out some of that goo you may have floating around + iuse::purifier( p, it, t, pos ); // Clear out some of that goo you may have floating around p->set_rad( 0 ); p->healall( 4 ); // Can't make you a whole new person, but not for lack of trying p->add_msg_if_player( m_good, @@ -1456,7 +1531,7 @@ int iuse::mycus( player *p, item *it, bool t, const tripoint &pos ) p->fall_asleep( 5_hours - p->int_cur * 1_minutes ); p->unset_mutation( trait_THRESH_MARLOSS ); p->set_mutation( trait_THRESH_MYCUS ); - g->refresh_all(); + g->invalidate_main_ui_adaptor(); //~ The Mycus does not use the term (or encourage the concept of) "you". The PC is a local/native organism, but is now the Mycus. //~ It still understands the concept, but uninitelligent fungaloids and mind-bent symbiotes should not need it. //~ We are the Mycus. @@ -1464,22 +1539,22 @@ int iuse::mycus( player *p, item *it, bool t, const tripoint &pos ) p->add_msg_if_player( " " ); p->add_msg_if_player( m_good, _( "A sea of white caps, waving gently. A haze of spores wafting silently over a forest." ) ); - g->refresh_all(); + g->invalidate_main_ui_adaptor(); popup( _( "The natives have a saying: \"E Pluribus Unum.\" Out of many, one." ) ); p->add_msg_if_player( " " ); p->add_msg_if_player( m_good, _( "The blazing pink redness of the berry. The juices spreading across your tongue, the warmth draping over us like a lover's embrace." ) ); - g->refresh_all(); + g->invalidate_main_ui_adaptor(); popup( _( "We welcome the union of our lines in our local guide. We will prosper, and unite this world. Even now, our fruits adapt to better serve local physiology." ) ); p->add_msg_if_player( " " ); p->add_msg_if_player( m_good, _( "The sky-blue of the seed. The nutty, creamy flavors intermingling with the berry, a memory that will never leave us." ) ); - g->refresh_all(); + g->invalidate_main_ui_adaptor(); popup( _( "As, in time, shall we adapt to better welcome those who have not received us." ) ); p->add_msg_if_player( " " ); p->add_msg_if_player( m_good, _( "The amber-yellow of the sap. Feel it flowing through our veins, taking the place of the strange, thin red gruel called \"blood.\"" ) ); - g->refresh_all(); + g->invalidate_main_ui_adaptor(); popup( _( "We are the Mycus." ) ); /*p->add_msg_if_player( m_good, _( "We welcome into us. We have endured long in this forbidding world." ) ); @@ -1729,7 +1804,7 @@ int iuse::remove_all_mods( player *p, item *, bool, const tripoint & ) return 0; } - if( !loc->ammo_remaining() || g->unload( *loc ) ) { + if( !loc->ammo_remaining() || g->unload( loc ) ) { item *mod = loc->contents.get_item_with( []( const item & e ) { return e.is_toolmod() && !e.is_irremovable(); @@ -1925,7 +2000,6 @@ int iuse::extinguisher( player *p, item *it, bool, const tripoint & ) if( !it->ammo_sufficient() ) { return 0; } - g->draw(); // If anyone other than the player wants to use one of these, // they're going to need to figure out how to aim it. const cata::optional dest_ = choose_adjacent( _( "Spray where?" ) ); @@ -1954,7 +2028,7 @@ int iuse::extinguisher( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "The %s looks blinded." ), critter.name() ); } } - if( critter.made_of( LIQUID ) ) { + if( critter.made_of( phase_id::LIQUID ) ) { if( g->u.sees( critter ) ) { p->add_msg_if_player( _( "The %s is frozen!" ), critter.name() ); } @@ -1981,7 +2055,7 @@ int iuse::rm13armor_off( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "The RM13 combat armor's fuel cells are dead." ) ); return 0; } else { - std::string oname = it->typeId() + "_on"; + std::string oname = it->typeId().str() + "_on"; p->add_msg_if_player( _( "You activate your RM13 combat armor." ) ); p->add_msg_if_player( _( "Rivtech Model 13 RivOS v2.19: ONLINE." ) ); p->add_msg_if_player( _( "CBRN defense system: ONLINE." ) ); @@ -1990,7 +2064,7 @@ int iuse::rm13armor_off( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "Vision enhancement system: ONLINE." ) ); p->add_msg_if_player( _( "Electro-reactive armor system: ONLINE." ) ); p->add_msg_if_player( _( "All systems nominal." ) ); - it->convert( oname ).active = true; + it->convert( itype_id( oname ) ).active = true; p->reset_encumbrance(); return it->type->charges_to_use(); } @@ -2000,8 +2074,8 @@ int iuse::rm13armor_on( player *p, item *it, bool t, const tripoint & ) { if( t ) { // Normal use } else { // Turning it off - std::string oname = it->typeId(); - if( oname.length() > 3 && oname.compare( oname.length() - 3, 3, "_on" ) == 0 ) { + std::string oname = it->typeId().str(); + if( string_ends_with( oname, "_on" ) ) { oname.erase( oname.length() - 3, 3 ); } else { debugmsg( "no item type to turn it into (%s)!", oname ); @@ -2010,7 +2084,7 @@ int iuse::rm13armor_on( player *p, item *it, bool t, const tripoint & ) p->add_msg_if_player( _( "RivOS v2.19 shutdown sequence initiated." ) ); p->add_msg_if_player( _( "Shutting down." ) ); p->add_msg_if_player( _( "Your RM13 combat armor turns off." ) ); - it->convert( oname ).active = false; + it->convert( itype_id( oname ) ).active = false; p->reset_encumbrance(); } return it->type->charges_to_use(); @@ -2022,10 +2096,10 @@ int iuse::unpack_item( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); return 0; } - std::string oname = it->typeId() + "_on"; + std::string oname = it->typeId().str() + "_on"; p->moves -= to_moves( 10_seconds ); p->add_msg_if_player( _( "You unpack your %s for use." ), it->tname() ); - it->convert( oname ).active = false; + it->convert( itype_id( oname ) ).active = false; return 0; } @@ -2073,8 +2147,8 @@ int iuse::pack_item( player *p, item *it, bool t, const tripoint & ) it->tname() ); return 0; } else { // Turning it off - std::string oname = it->typeId(); - if( oname.length() > 3 && oname.compare( oname.length() - 3, 3, "_on" ) == 0 ) { + std::string oname = it->typeId().str(); + if( string_ends_with( oname, "_on" ) ) { oname.erase( oname.length() - 3, 3 ); } else { debugmsg( "no item type to turn it into (%s)!", oname ); @@ -2082,14 +2156,14 @@ int iuse::pack_item( player *p, item *it, bool t, const tripoint & ) } p->moves -= to_moves( 10_seconds ); p->add_msg_if_player( _( "You pack your %s for storage." ), it->tname() ); - it->convert( oname ).active = false; + it->convert( itype_id( oname ) ).active = false; } return 0; } static int cauterize_elec( player &p, item &it ) { - if( it.charges == 0 && it.ammo_capacity() ) { + if( it.ammo_remaining() == 0 ) { p.add_msg_if_player( m_info, _( "You need batteries to cauterize wounds." ) ); return 0; } else if( !p.has_effect( effect_bite ) && !p.has_effect( effect_bleed ) && !p.is_underwater() ) { @@ -2116,7 +2190,7 @@ int iuse::water_purifier( player *p, item *it, bool, const tripoint & ) } item_location obj = g->inv_map_splice( []( const item & e ) { return !e.contents.empty() && e.has_item_with( []( const item & it ) { - return it.typeId() == "water"; + return it.typeId() == itype_water; } ); }, _( "Purify what?" ), 1, _( "You don't have water to purify." ) ); @@ -2126,7 +2200,7 @@ int iuse::water_purifier( player *p, item *it, bool, const tripoint & ) } const std::vector liquids = obj->items_with( []( const item & it ) { - return it.typeId() == "water"; + return it.typeId() == itype_water; } ); int charges_of_water = 0; for( const item *water : liquids ) { @@ -2140,7 +2214,7 @@ int iuse::water_purifier( player *p, item *it, bool, const tripoint & ) p->moves -= to_moves( 2_seconds ); for( item *water : liquids ) { - water->convert( "water_clean" ).poison = 0; + water->convert( itype_water_clean ).poison = 0; } return charges_of_water; } @@ -2151,7 +2225,7 @@ int iuse::radio_off( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "It's dead." ) ); } else { p->add_msg_if_player( _( "You turn the radio on." ) ); - it->convert( "radio_on" ).active = true; + it->convert( itype_radio_on ).active = true; } return it->type->charges_to_use(); } @@ -2160,7 +2234,7 @@ int iuse::directional_antenna( player *p, item *it, bool, const tripoint & ) { // Find out if we have an active radio auto radios = p->items_with( []( const item & it ) { - return it.typeId() == "radio_on"; + return it.typeId() == itype_radio_on; } ); if( radios.empty() ) { add_msg( m_info, _( "Must have an active radio to check for signal direction." ) ); @@ -2258,7 +2332,7 @@ int iuse::radio_on( player *p, item *it, bool t, const tripoint &pos ) break; case 1: p->add_msg_if_player( _( "The radio dies." ) ); - it->convert( "radio" ).active = false; + it->convert( itype_radio ).active = false; sfx::fade_audio_channel( sfx::channel::radio, 300 ); break; default: @@ -2274,7 +2348,7 @@ int iuse::noise_emitter_off( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "It's dead." ) ); } else { p->add_msg_if_player( _( "You turn the noise emitter on." ) ); - it->convert( "noise_emitter_on" ).active = true; + it->convert( itype_noise_emitter_on ).active = true; } return it->type->charges_to_use(); } @@ -2287,7 +2361,7 @@ int iuse::noise_emitter_on( player *p, item *it, bool t, const tripoint &pos ) "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; + it->convert( itype_noise_emitter ).active = false; } return it->type->charges_to_use(); } @@ -2517,7 +2591,7 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) sounds::sound( pnt, 12, sounds::sound_t::combat, _( "crunch!" ), true, "tool", "crowbar" ); } if( type == t_manhole_cover ) { - g->m.spawn_item( pnt, "manhole_cover" ); + g->m.spawn_item( pnt, itype_manhole_cover ); } if( type == t_door_locked_alarm ) { g->events().send( p->getID() ); @@ -2539,9 +2613,9 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) p->add_msg_if_player( m_mixed, _( "You break the glass." ) ); 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" ); - g->m.spawn_item( pnt, "string_36" ); + g->m.spawn_item( pnt, itype_sheet, 2 ); + g->m.spawn_item( pnt, itype_stick ); + g->m.spawn_item( pnt, itype_string_36 ); return it->type->charges_to_use(); } } @@ -3041,7 +3115,7 @@ static int toolweapon_off( player &p, item &it, const bool fast_startup, { p.moves -= fast_startup ? 60 : 80; if( condition && it.units_sufficient( p ) ) { - if( it.typeId() == "chainsaw_off" ) { + if( it.typeId() == itype_chainsaw_off ) { sfx::play_variant_sound( "chainsaw_cord", "chainsaw_on", sfx::get_heard_volume( p.pos() ) ); sfx::play_variant_sound( "chainsaw_start", "chainsaw_on", sfx::get_heard_volume( p.pos() ) ); sfx::play_ambient_variant_sound( "chainsaw_idle", "chainsaw_on", sfx::get_heard_volume( p.pos() ), @@ -3051,11 +3125,12 @@ static int toolweapon_off( player &p, item &it, const bool fast_startup, 3000 ); } sounds::sound( p.pos(), volume, sounds::sound_t::combat, msg_success ); - it.convert( it.typeId().substr( 0, it.typeId().size() - 4 ) + "_on" ); // 4 is the length of "_off". + // 4 is the length of "_off". + it.convert( itype_id( it.typeId().str().substr( 0, it.typeId().str().size() - 4 ) + "_on" ) ); it.active = true; return it.type->charges_to_use(); } else { - if( it.typeId() == "chainsaw_off" ) { + if( it.typeId() == itype_chainsaw_off ) { sfx::play_variant_sound( "chainsaw_cord", "chainsaw_on", sfx::get_heard_volume( p.pos() ) ); } p.add_msg_if_player( msg_failure ); @@ -3141,7 +3216,7 @@ static int toolweapon_on( player &p, item &it, const bool t, const std::string &sound, const bool double_charge_cost = false ) { std::string off_type = - it.typeId().substr( 0, it.typeId().size() - 3 ) + + it.typeId().str().substr( 0, it.typeId().str().size() - 3 ) + // 3 is the length of "_on". "_off"; if( t ) { // Effects while simply on @@ -3150,18 +3225,18 @@ static int toolweapon_on( player &p, item &it, const bool t, } if( !works_underwater && p.is_underwater() ) { p.add_msg_if_player( _( "Your %s gurgles in the water and stops." ), tname ); - it.convert( off_type ).active = false; + it.convert( itype_id( off_type ) ).active = false; } else if( one_in( sound_chance ) ) { sounds::ambient_sound( p.pos(), volume, sounds::sound_t::activity, sound ); } } else { // Toggling - if( it.typeId() == "chainsaw_on" ) { + if( it.typeId() == itype_chainsaw_on ) { sfx::play_variant_sound( "chainsaw_stop", "chainsaw_on", sfx::get_heard_volume( p.pos() ) ); sfx::fade_audio_channel( sfx::channel::idle_chainsaw, 100 ); sfx::fade_audio_channel( sfx::channel::chainsaw_theme, 3000 ); } p.add_msg_if_player( _( "Your %s goes quiet." ), tname ); - it.convert( off_type ).active = false; + it.convert( itype_id( off_type ) ).active = false; return 0; // Don't consume charges when turning off. } return it.type->charges_to_use(); @@ -3292,6 +3367,47 @@ int iuse::jackhammer( player *p, item *it, bool, const tripoint &pos ) return it->type->charges_to_use(); } +int iuse::pick_lock( player *p, item *it, bool, const tripoint &pos ) +{ + if( p->is_npc() ) { + return 0; + } + avatar &you = dynamic_cast( *p ); + + cata::optional target; + // Prompt for a target lock to pick, or use the given tripoint + if( pos == you.pos() ) { + target = lockpick_activity_actor::select_location( you ); + } else { + target = pos; + } + if( !target.has_value() ) { + return 0; + } + + int qual = it->get_quality( qual_LOCKPICK ); + if( qual < 1 ) { + debugmsg( "Item %s with 'PICK_LOCK' use action requires LOCKPICK quality of at least 1.", + it->typeId().c_str() ); + qual = 1; + } + + /** @EFFECT_DEX speeds up door lock picking */ + /** @EFFECT_LOCKPICK speeds up door lock picking */ + int duration; + if( it->has_flag( flag_PERFECT_LOCKPICK ) ) { + duration = to_moves( 5_seconds ); + } else { + duration = std::max( to_moves( 10_seconds ), + to_moves( 10_minutes - time_duration::from_minutes( qual ) ) - ( you.dex_cur + + you.get_skill_level( skill_lockpick ) ) * 2300 ); + } + + you.assign_activity( lockpick_activity_actor( duration, item_location( you, it ), cata::nullopt, + g->m.getabs( *target ) ) ); + return it->type->charges_to_use(); +} + int iuse::pickaxe( player *p, item *it, bool, const tripoint &pos ) { if( p->is_npc() ) { @@ -3429,9 +3545,9 @@ int iuse::geiger( player *p, item *it, bool t, const tripoint &pos ) return it->type->charges_to_use(); } // Otherwise, we're activating the geiger counter - if( it->typeId() == "geiger_on" ) { + if( it->typeId() == itype_geiger_on ) { add_msg( _( "The geiger counter's SCANNING LED turns off." ) ); - it->convert( "geiger_off" ).active = false; + it->convert( itype_geiger_off ).active = false; return 0; } @@ -3469,7 +3585,7 @@ int iuse::geiger( player *p, item *it, bool t, const tripoint &pos ) break; case 2: p->add_msg_if_player( _( "The geiger counter's scan LED turns on." ) ); - it->convert( "geiger_on" ).active = true; + it->convert( itype_geiger_on ).active = true; break; default: return 0; @@ -3499,7 +3615,7 @@ int iuse::teleport( player *p, item *it, bool, const tripoint & ) int iuse::can_goo( player *p, item *it, bool, const tripoint & ) { - it->convert( "canister_empty" ); + it->convert( itype_canister_empty ); int tries = 0; tripoint goop; goop.z = p->posz(); @@ -3575,7 +3691,7 @@ int iuse::throwable_extinguisher_act( player *, item *it, bool, const tripoint & int iuse::granade( player *p, item *it, bool, const tripoint & ) { p->add_msg_if_player( _( "You pull the pin on the Granade." ) ); - it->convert( "granade_act" ); + it->convert( itype_granade_act ); it->charges = 5; it->active = true; return it->type->charges_to_use(); @@ -3589,7 +3705,7 @@ int iuse::granade_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::electronic_speech, _( "Merged!" ), - true, "speech", it->typeId() ); + true, "speech", it->typeId().str() ); } else if( it->charges > 0 ) { p->add_msg_if_player( m_info, _( "You've already pulled the %s's pin, try throwing it instead." ), it->tname() ); @@ -3604,11 +3720,11 @@ int iuse::granade_act( player *p, item *it, bool t, const tripoint &pos ) switch( effect_roll ) { case 1: sounds::sound( pos, 100, sounds::sound_t::electronic_speech, _( "BUGFIXES!" ), - true, "speech", it->typeId() ); + true, "speech", it->typeId().str() ); 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() ) ) { + if( mon && ( mon->type->in_species( species_INSECT ) || mon->is_hallucination() ) ) { mon->die_in_explosion( nullptr ); } } @@ -3616,7 +3732,7 @@ int iuse::granade_act( player *p, item *it, bool t, const tripoint &pos ) case 2: sounds::sound( pos, 100, sounds::sound_t::electronic_speech, _( "BUFFS!" ), - true, "speech", it->typeId() ); + true, "speech", it->typeId().str() ); 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 ) ) { @@ -3655,7 +3771,7 @@ int iuse::granade_act( player *p, item *it, bool t, const tripoint &pos ) case 3: sounds::sound( pos, 100, sounds::sound_t::electronic_speech, _( "NERFS!" ), - true, "speech", it->typeId() ); + true, "speech", it->typeId().str() ); 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 ) ) { @@ -3693,7 +3809,7 @@ int iuse::granade_act( player *p, item *it, bool t, const tripoint &pos ) case 4: sounds::sound( pos, 100, sounds::sound_t::electronic_speech, _( "REVERTS!" ), - true, "speech", it->typeId() ); + true, "speech", it->typeId().str() ); 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 ) ) { @@ -3711,7 +3827,7 @@ int iuse::granade_act( player *p, item *it, bool t, const tripoint &pos ) break; case 5: sounds::sound( pos, 100, sounds::sound_t::electronic_speech, _( "BEES!" ), - true, "speech", it->typeId() ); + true, "speech", it->typeId().str() ); 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 ) ) { @@ -3733,7 +3849,7 @@ int iuse::c4( player *p, item *it, bool, const tripoint & ) return 0; } p->add_msg_if_player( _( "You set the timer to %d." ), time ); - it->convert( "c4armed" ); + it->convert( itype_c4armed ); it->charges = time; it->active = true; return it->type->charges_to_use(); @@ -3787,18 +3903,18 @@ int iuse::arrow_flammable( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); return 0; } - if( !p->use_charges_if_avail( "fire", 1 ) ) { + if( !p->use_charges_if_avail( itype_fire, 1 ) ) { p->add_msg_if_player( m_info, _( "You need a source of fire!" ) ); return 0; } p->add_msg_if_player( _( "You light the arrow!" ) ); p->moves -= to_moves( 1_seconds ); if( it->charges == 1 ) { - it->convert( "arrow_flamming" ); + it->convert( itype_arrow_flamming ); return 0; } item lit_arrow( *it ); - lit_arrow.convert( "arrow_flamming" ).charges = 1; + lit_arrow.convert( itype_arrow_flamming ).charges = 1; p->i_add( lit_arrow ); return 1; } @@ -3815,7 +3931,7 @@ int iuse::molotov_lit( player *p, item *it, bool t, const tripoint &pos ) it->charges += 1; if( one_in( 5 ) ) { p->add_msg_if_player( _( "Your lit Molotov goes out." ) ); - it->convert( "molotov" ).active = false; + it->convert( itype_molotov ).active = false; } } else { if( !t ) { @@ -3834,12 +3950,12 @@ int iuse::firecracker_pack( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); return 0; } - if( !p->has_charges( "fire", 1 ) ) { + if( !p->has_charges( itype_fire, 1 ) ) { p->add_msg_if_player( m_info, _( "You need a source of fire!" ) ); return 0; } p->add_msg_if_player( _( "You light the pack of firecrackers." ) ); - it->convert( "firecracker_pack_act" ); + it->convert( itype_firecracker_pack_act ); it->charges = 26; it->set_age( 0_turns ); it->active = true; @@ -3875,12 +3991,12 @@ int iuse::firecracker( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); return 0; } - if( !p->use_charges_if_avail( "fire", 1 ) ) { + if( !p->use_charges_if_avail( itype_fire, 1 ) ) { p->add_msg_if_player( m_info, _( "You need a source of fire!" ) ); return 0; } p->add_msg_if_player( _( "You light the firecracker." ) ); - it->convert( "firecracker_act" ); + it->convert( itype_firecracker_act ); it->charges = 2; it->active = true; return it->type->charges_to_use(); @@ -3914,7 +4030,7 @@ int iuse::mininuke( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "You set the timer to %s." ), to_string( time_duration::from_turns( time ) ) ); g->events().send( p->getID() ); - it->convert( "mininuke_act" ); + it->convert( itype_mininuke_act ); it->charges = time; it->active = true; return it->type->charges_to_use(); @@ -3946,7 +4062,7 @@ int iuse::pheromone( player *p, item *it, bool, const tripoint &pos ) continue; } monster &critter = *mon_ptr; - if( critter.type->in_species( ZOMBIE ) && critter.friendly == 0 && + if( critter.type->in_species( species_ZOMBIE ) && critter.friendly == 0 && rng( 0, 500 ) > critter.get_hp() ) { converts++; critter.anger = 0; @@ -4079,7 +4195,7 @@ int iuse::shocktonfa_off( player *p, item *it, bool t, const tripoint &pos ) return 0; } else { p->add_msg_if_player( _( "You turn the light on." ) ); - it->convert( "shocktonfa_on" ).active = true; + it->convert( itype_shocktonfa_on ).active = true; return it->type->charges_to_use(); } } @@ -4094,7 +4210,7 @@ int iuse::shocktonfa_on( player *p, item *it, bool t, const tripoint &pos ) } else { if( !it->units_sufficient( *p ) ) { p->add_msg_if_player( m_info, _( "Your tactical tonfa is out of power." ) ); - it->convert( "shocktonfa_off" ).active = false; + it->convert( itype_shocktonfa_off ).active = false; } else { int choice = uilist( _( "tactical tonfa" ), { _( "Zap something" ), _( "Turn off light" ) @@ -4106,7 +4222,7 @@ int iuse::shocktonfa_on( player *p, item *it, bool t, const tripoint &pos ) } case 1: { p->add_msg_if_player( _( "You turn off the light." ) ); - it->convert( "shocktonfa_off" ).active = false; + it->convert( itype_shocktonfa_off ).active = false; } } } @@ -4119,20 +4235,20 @@ int iuse::mp3( player *p, item *it, bool, const tripoint & ) // TODO: avoid item id hardcoding to make this function usable for pure json-defined devices. if( !it->units_sufficient( *p ) ) { p->add_msg_if_player( m_info, _( "The device's batteries are dead." ) ); - } else if( p->has_active_item( "mp3_on" ) || p->has_active_item( "smartphone_music" ) || - p->has_active_item( "afs_atomic_smartphone_music" ) || - p->has_active_item( "afs_atomic_wraitheon_music" ) ) { + } else if( p->has_active_item( itype_mp3_on ) || p->has_active_item( itype_smartphone_music ) || + p->has_active_item( itype_afs_atomic_smartphone_music ) || + p->has_active_item( itype_afs_atomic_wraitheon_music ) ) { p->add_msg_if_player( m_info, _( "You are already listening to music!" ) ); } else { p->add_msg_if_player( m_info, _( "You put in the earbuds and start listening to music." ) ); - if( it->typeId() == "mp3" ) { - it->convert( "mp3_on" ).active = true; - } else if( it->typeId() == "smart_phone" ) { - it->convert( "smartphone_music" ).active = true; - } else if( it->typeId() == "afs_atomic_smartphone" ) { - it->convert( "afs_atomic_smartphone_music" ).active = true; - } else if( it->typeId() == "afs_wraitheon_smartphone" ) { - it->convert( "afs_atomic_wraitheon_music" ).active = true; + if( it->typeId() == itype_mp3 ) { + it->convert( itype_mp3_on ).active = true; + } else if( it->typeId() == itype_smart_phone ) { + it->convert( itype_smartphone_music ).active = true; + } else if( it->typeId() == itype_afs_atomic_smartphone ) { + it->convert( itype_afs_atomic_smartphone_music ).active = true; + } else if( it->typeId() == itype_afs_wraitheon_smartphone ) { + it->convert( itype_afs_atomic_wraitheon_music ).active = true; } p->mod_moves( -200 ); } @@ -4208,18 +4324,18 @@ int iuse::mp3_on( player *p, item *it, bool t, const tripoint &pos ) play_music( *p, pos, 0, 20 ); } } else { // Turning it off - if( it->typeId() == "mp3_on" ) { + if( it->typeId() == itype_mp3_on ) { p->add_msg_if_player( _( "The mp3 player turns off." ) ); - it->convert( "mp3" ).active = false; - } else if( it->typeId() == "smartphone_music" ) { + it->convert( itype_mp3 ).active = false; + } else if( it->typeId() == itype_smartphone_music ) { p->add_msg_if_player( _( "The phone turns off." ) ); - it->convert( "smart_phone" ).active = false; - } else if( it->typeId() == "afs_atomic_smartphone_music" ) { + it->convert( itype_smart_phone ).active = false; + } else if( it->typeId() == itype_afs_atomic_smartphone_music ) { p->add_msg_if_player( _( "The phone turns off." ) ); - it->convert( "afs_atomic_smartphone" ).active = false; - } else if( it->typeId() == "afs_atomic_wraitheon_music" ) { + it->convert( itype_afs_atomic_smartphone ).active = false; + } else if( it->typeId() == itype_afs_atomic_wraitheon_music ) { p->add_msg_if_player( _( "The phone turns off." ) ); - it->convert( "afs_wraitheon_smartphone" ).active = false; + it->convert( itype_afs_wraitheon_smartphone ).active = false; } p->mod_moves( -200 ); } @@ -4262,11 +4378,13 @@ int iuse::dive_tank( player *p, item *it, bool t, const tripoint & ) if( it->charges == 0 ) { p->add_msg_if_player( m_bad, _( "Air in your %s runs out." ), it->tname() ); it->set_var( "overwrite_env_resist", 0 ); - it->convert( it->typeId().substr( 0, it->typeId().size() - 3 ) ).active = false; // 3 = "_on" + it->convert( itype_id( it->typeId().str().substr( 0, + it->typeId().str().size() - 3 ) ) ).active = false; // 3 = "_on" } } else { // not worn = off thanks to on-demand regulator it->set_var( "overwrite_env_resist", 0 ); - it->convert( it->typeId().substr( 0, it->typeId().size() - 3 ) ).active = false; // 3 = "_on" + it->convert( itype_id( it->typeId().str().substr( 0, + it->typeId().str().size() - 3 ) ) ).active = false; // 3 = "_on" } } else { // Turning it on/off @@ -4275,20 +4393,22 @@ int iuse::dive_tank( player *p, item *it, bool t, const tripoint & ) } else if( it->active ) { //off p->add_msg_if_player( _( "You turn off the regulator and close the air valve." ) ); it->set_var( "overwrite_env_resist", 0 ); - it->convert( it->typeId().substr( 0, it->typeId().size() - 3 ) ).active = false; // 3 = "_on" + it->convert( itype_id( it->typeId().str().substr( 0, + it->typeId().str().size() - 3 ) ) ).active = false; // 3 = "_on" } else { //on if( !p->is_worn( *it ) ) { p->add_msg_if_player( _( "You should wear it first." ) ); } else { p->add_msg_if_player( _( "You turn on the regulator and open the air valve." ) ); it->set_var( "overwrite_env_resist", it->get_base_env_resist_w_filter() ); - it->convert( it->typeId() + "_on" ).active = true; + it->convert( itype_id( it->typeId().str() + "_on" ) ).active = true; } } } if( it->charges == 0 ) { it->set_var( "overwrite_env_resist", 0 ); - it->convert( it->typeId().substr( 0, it->typeId().size() - 3 ) ).active = false; // 3 = "_on" + it->convert( itype_id( it->typeId().str().substr( 0, + it->typeId().str().size() - 3 ) ) ).active = false; // 3 = "_on" } return it->type->charges_to_use(); } @@ -4318,7 +4438,7 @@ int iuse::solarpack( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "You unfold solar array from the pack. You still need to connect it with a cable." ) ); - it->convert( it->typeId() + "_on" ); + it->convert( itype_id( it->typeId().str() + "_on" ) ); return 0; } @@ -4330,7 +4450,9 @@ int iuse::solarpack_off( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "You unplug and fold your portable solar array into the pack." ) ); } - it->convert( it->typeId().substr( 0, it->typeId().size() - 3 ) ).active = false; // 3 = "_on" + // 3 = "_on" + it->convert( itype_id( it->typeId().str().substr( 0, + it->typeId().str().size() - 3 ) ) ).active = false; return 0; } @@ -4350,7 +4472,7 @@ int iuse::gasmask( player *p, item *it, bool t, const tripoint &pos ) it->ammo_consume( 1, p->pos() ); it->set_var( "gas_absorbed", 0 ); } - if( it->charges == 0 ) { + if( it->ammo_remaining() == 0 ) { p->add_msg_player_or_npc( m_bad, _( "Your %s requires new filter!" ), @@ -4359,15 +4481,15 @@ int iuse::gasmask( player *p, item *it, bool t, const tripoint &pos ) } } } else { // activate - if( it->charges == 0 ) { - p->add_msg_if_player( _( "Your %s don't have a filter." ), it->tname() ); + if( it->ammo_remaining() == 0 ) { + p->add_msg_if_player( _( "Your %s doesn't have a filter." ), it->tname() ); } else { p->add_msg_if_player( _( "You prepared your %s." ), it->tname() ); it->active = true; it->set_var( "overwrite_env_resist", it->get_base_env_resist_w_filter() ); } } - if( it->charges == 0 ) { + if( it->ammo_remaining() == 0 ) { it->set_var( "overwrite_env_resist", 0 ); it->active = false; } @@ -4515,7 +4637,7 @@ int iuse::hand_crank( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "It's not waterproof enough to work underwater." ) ); return 0; } - if( p->get_fatigue() >= DEAD_TIRED ) { + if( p->get_fatigue() >= fatigue_levels::DEAD_TIRED ) { p->add_msg_if_player( m_info, _( "You're too exhausted to keep cranking." ) ); return 0; } @@ -4524,7 +4646,7 @@ int iuse::hand_crank( player *p, item *it, bool, const tripoint & ) // 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 moves = to_moves( 1600_minutes ); - if( it->ammo_capacity() > it->ammo_remaining() ) { + if( it->ammo_capacity( ammotype( "battery" ) ) > it->ammo_remaining() ) { p->add_msg_if_player( _( "You start cranking the %s to charge its %s." ), it->tname(), it->magazine_current()->tname() ); p->assign_activity( ACT_HAND_CRANK, moves, -1, 0, "hand-cranking" ); @@ -4551,8 +4673,9 @@ int iuse::vibe( player *p, item *it, bool, const tripoint & ) return 0; } if( ( p->is_underwater() ) && ( !( ( p->has_trait( trait_GILLS ) ) || - ( p->is_wearing( "rebreather_on" ) ) || - ( p->is_wearing( "rebreather_xl_on" ) ) || ( p->is_wearing( "mask_h20survivor_on" ) ) ) ) ) { + ( p->is_wearing( itype_rebreather_on ) ) || + ( p->is_wearing( itype_rebreather_xl_on ) ) || + ( p->is_wearing( itype_mask_h20survivor_on ) ) ) ) ) { p->add_msg_if_player( m_info, _( "It's waterproof, but oxygen maybe?" ) ); return 0; } @@ -4560,7 +4683,7 @@ int iuse::vibe( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "The %s's batteries are dead." ), it->tname() ); return 0; } - if( p->get_fatigue() >= DEAD_TIRED ) { + if( p->get_fatigue() >= fatigue_levels::DEAD_TIRED ) { p->add_msg_if_player( m_info, _( "*Your* batteries are dead." ) ); return 0; } else { @@ -4596,14 +4719,14 @@ int iuse::vortex( player *p, item *it, bool, const tripoint & ) } p->add_msg_if_player( m_warning, _( "Air swirls all over…" ) ); p->moves -= to_moves( 1_seconds ); - it->convert( "spiral_stone" ); + it->convert( itype_spiral_stone ); mon->friendly = -1; return it->type->charges_to_use(); } // Only reachable when no monster has been spawned. p->add_msg_if_player( m_warning, _( "Air swirls around you for a moment." ) ); - return it->convert( "spiral_stone" ).type->charges_to_use(); + return it->convert( itype_spiral_stone ).type->charges_to_use(); } int iuse::dog_whistle( player *p, item *it, bool, const tripoint & ) @@ -4717,12 +4840,12 @@ int iuse::mind_splicer( player *p, item *it, bool, const tripoint & ) return 0; } for( auto &map_it : g->m.i_at( point( p->posx(), p->posy() ) ) ) { - if( map_it.typeId() == "rmi2_corpse" && + if( map_it.typeId() == itype_rmi2_corpse && query_yn( _( "Use the mind splicer kit on the %s?" ), colorize( map_it.tname(), map_it.color_in_inventory() ) ) ) { auto filter = []( const item & it ) { - return it.typeId() == "data_card"; + return it.typeId() == itype_data_card; }; avatar *you = p->as_avatar(); item_location loc; @@ -4773,7 +4896,7 @@ int iuse::lumber( player *p, item *it, bool t, const tripoint & ) } // Check if player is standing on any lumber for( auto &i : g->m.i_at( p->pos() ) ) { - if( i.typeId() == "log" ) { + if( i.typeId() == itype_log ) { g->m.i_rem( p->pos(), &i ); cut_log_into_planks( *p ); return it->type->charges_to_use(); @@ -4784,7 +4907,7 @@ int iuse::lumber( player *p, item *it, bool t, const tripoint & ) avatar *you = p->as_avatar(); item_location loc; auto filter = []( const item & it ) { - return it.typeId() == "log"; + return it.typeId() == itype_log; }; if( you != nullptr ) { loc = game_menus::inv::titled_filter_menu( filter, *you, _( "Cut up what?" ) ); @@ -5153,7 +5276,7 @@ int iuse::mop( player *p, item *it, bool, const tripoint & ) if( !g->m.has_flag( "LIQUIDCONT", pnt ) ) { map_stack items = g->m.i_at( pnt ); auto found = std::find_if( items.begin(), items.end(), []( const item & it ) { - return it.made_of( LIQUID ); + return it.made_of( phase_id::LIQUID ); } ); if( found != items.end() ) { return true; @@ -5174,7 +5297,7 @@ int iuse::mop( player *p, item *it, bool, const tripoint & ) } vehicle_stack items = veh->get_items( elem ); auto found = std::find_if( items.begin(), items.end(), []( const item & it ) { - return it.made_of( LIQUID ); + return it.made_of( phase_id::LIQUID ); } ); if( found != items.end() ) { return true; @@ -5637,7 +5760,7 @@ static bool heat_item( player &p ) int iuse::heatpack( player *p, item *it, bool, const tripoint & ) { if( heat_item( *p ) ) { - it->convert( "heatpack_used" ); + it->convert( itype_heatpack_used ); } return 0; } @@ -5664,7 +5787,7 @@ int iuse::hotplate( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "You cannot do that while mounted." ) ); return 0; } - if( it->typeId() != "atomic_coffeepot" && ( !it->units_sufficient( *p ) ) ) { + if( it->typeId() != itype_atomic_coffeepot && ( !it->units_sufficient( *p ) ) ) { p->add_msg_if_player( m_info, _( "The %s's batteries are dead." ), it->tname() ); return 0; } @@ -5721,8 +5844,8 @@ int iuse::towel_common( player *p, item *it, bool t ) name ); towelUsed = true; - if( it && it->typeId() == "towel" ) { - it->convert( "towel_soiled" ); + if( it && it->typeId() == itype_towel ) { + it->convert( itype_towel_soiled ); } // dry off from being wet @@ -5750,8 +5873,8 @@ int iuse::towel_common( player *p, item *it, bool t ) p->moves -= 50 * mult; if( it ) { // change "towel" to a "towel_wet" (different flavor text/color) - if( it->typeId() == "towel" ) { - it->convert( "towel_wet" ); + if( it->typeId() == itype_towel ) { + it->convert( itype_towel_wet ); } // WET, active items have their timer decremented every turn @@ -5948,10 +6071,10 @@ int iuse::talking_doll( player *p, item *it, bool, const tripoint & ) return 0; } - const SpeechBubble speech = get_speech( it->typeId() ); + const SpeechBubble speech = get_speech( it->typeId().str() ); sounds::sound( p->pos(), speech.volume, sounds::sound_t::electronic_speech, - speech.text.translated(), true, "speech", it->typeId() ); + speech.text.translated(), true, "speech", it->typeId().str() ); // Sound code doesn't describe noises at the player position if( p->can_hear( p->pos(), speech.volume ) ) { @@ -6071,8 +6194,9 @@ int iuse::toolmod_attach( player *p, item *it, bool, const tripoint & ) auto filter = [&it]( const item & e ) { // don't allow ups battery mods on a UPS or UPS-powered tools - if( it->has_flag( "USE_UPS" ) && ( e.typeId() == "UPS_off" || e.typeId() == "adv_UPS_off" || - e.has_flag( "USE_UPS" ) ) ) { + if( it->has_flag( "USE_UPS" ) && + ( e.typeId() == itype_UPS_off || e.typeId() == itype_adv_UPS_off || + e.has_flag( "USE_UPS" ) ) ) { return false; } @@ -6093,7 +6217,7 @@ int iuse::toolmod_attach( player *p, item *it, bool, const tripoint & ) } if( loc->ammo_remaining() ) { - if( !g->unload( *loc ) ) { + if( !g->unload( loc ) ) { p->add_msg_if_player( m_info, _( "You cancel unloading the tool." ) ); return 0; } @@ -6105,7 +6229,7 @@ int iuse::toolmod_attach( player *p, item *it, bool, const tripoint & ) int iuse::bell( player *p, item *it, bool, const tripoint & ) { - if( it->typeId() == "cow_bell" ) { + if( it->typeId() == itype_cow_bell ) { sounds::sound( p->pos(), 12, sounds::sound_t::music, _( "Clank! Clank!" ), true, "misc", "cow_bell" ); if( !p->is_deaf() ) { @@ -6137,7 +6261,7 @@ int iuse::seed( player *p, item *it, bool, const tripoint & ) bool iuse::robotcontrol_can_target( player *p, const monster &m ) { return !m.is_dead() - && m.type->in_species( ROBOT ) + && m.type->in_species( species_ROBOT ) && m.friendly == 0 && rl_dist( p->pos(), m.pos() ) <= 10; } @@ -6218,7 +6342,7 @@ int iuse::robotcontrol( player *p, item *it, bool, const tripoint & ) p->moves -= to_moves( 1_seconds ); int f = 0; //flag to check if you have robotic allies for( monster &critter : g->all_monsters() ) { - if( critter.friendly != 0 && critter.type->in_species( ROBOT ) ) { + if( critter.friendly != 0 && critter.type->in_species( species_ROBOT ) ) { p->add_msg_if_player( _( "A following %s goes into passive mode." ), critter.name() ); critter.add_effect( effect_docile, 1_turns, num_bp, true ); @@ -6263,7 +6387,7 @@ static void init_memory_card_with_random_stuff( item &it ) bool encrypted = false; if( it.has_flag( "MC_MAY_BE_ENCRYPTED" ) && one_in( 8 ) ) { - it.convert( it.typeId() + "_encrypted" ); + it.convert( itype_id( it.typeId().str() + "_encrypted" ) ); } //some special cards can contain "MC_ENCRYPTED" flag @@ -6470,7 +6594,7 @@ static bool einkpc_download_memory_card( player &p, item &eink, item &mc ) if( mc.has_flag( "MC_TURN_USED" ) ) { mc.clear_vars(); mc.unset_flags(); - mc.convert( "mobile_memory_card_used" ); + mc.convert( itype_mobile_memory_card_used ); } if( !something_downloaded ) { @@ -6815,7 +6939,7 @@ int iuse::einktabletpc( player *p, item *it, bool t, const tripoint &pos ) _( "You tripped the firmware protection, and the card deleted its data!" ) ); mc.clear_vars(); mc.unset_flags(); - mc.convert( "mobile_memory_card_used" ); + mc.convert( itype_mobile_memory_card_used ); } } return it->type->charges_to_use(); @@ -7016,7 +7140,7 @@ static std::string effects_description_for_creature( Creature *const creature, s { effect_lying_down, ef_con( to_translation( " is sleeping. " ), to_translation( "lies" ) ) }, { effect_sleep, ef_con( to_translation( " is sleeping. " ), to_translation( "lies" ) ) }, { effect_haslight, ef_con( to_translation( " is lit. " ) ) }, - { effect_saddled, ef_con( to_translation( " is saddled. " ) ) }, + { effect_monster_saddled, ef_con( to_translation( " is saddled. " ) ) }, { effect_harnessed, ef_con( to_translation( " is being harnessed by a vehicle. " ) ) }, { effect_monster_armor, ef_con( to_translation( " is wearing armor. " ) ) }, { effect_has_bag, ef_con( to_translation( " have bag attached. " ) ) }, @@ -7276,7 +7400,7 @@ static extended_photo_def photo_def_for_camera_point( const tripoint &aim_point, if( guy->is_hallucination() ) { continue; // do not include hallucinations } - if( guy->movement_mode_is( CMM_CROUCH ) ) { + if( guy->is_crouching() ) { pose = _( "sits" ); } else { pose = _( "stands" ); @@ -7288,7 +7412,7 @@ static extended_photo_def photo_def_for_camera_point( const tripoint &aim_point, creature = guy; player_vec.push_back( guy ); } else { - if( mon->is_hallucination() || mon->type->in_species( HALLUCINATION ) ) { + if( mon->is_hallucination() || mon->type->in_species( species_HALLUCINATION ) ) { continue; // do not include hallucinations } pose = _( "stands" ); @@ -7696,8 +7820,9 @@ int iuse::camera( player *p, item *it, bool, const tripoint & ) monster &z = *mon; // shoot past small monsters and hallucinations - if( trajectory_point != aim_point && ( z.type->size <= MS_SMALL || z.is_hallucination() || - z.type->in_species( HALLUCINATION ) ) ) { + if( trajectory_point != aim_point && ( z.type->size <= creature_size::small || + z.is_hallucination() || + z.type->in_species( species_HALLUCINATION ) ) ) { continue; } if( !aim_bounds.is_point_inside( trajectory_point ) ) { @@ -7709,7 +7834,7 @@ int iuse::camera( player *p, item *it, bool, const tripoint & ) } // get an special message if the target is a hallucination if( trajectory_point == aim_point && ( z.is_hallucination() || - z.type->in_species( HALLUCINATION ) ) ) { + z.type->in_species( species_HALLUCINATION ) ) ) { p->add_msg_if_player( _( "Strange… there's nothing in the center of picture?" ) ); } } else if( guy ) { @@ -7882,7 +8007,7 @@ int iuse::camera( player *p, item *it, bool, const tripoint & ) } } - mc.convert( "mobile_memory_card" ); + mc.convert( itype_mobile_memory_card ); mc.clear_vars(); mc.unset_flags(); mc.item_tags.insert( "MC_HAS_DATA" ); @@ -7917,7 +8042,7 @@ int iuse::ehandcuffs( player *p, item *it, bool t, const tripoint &pos ) it->item_tags.erase( "NO_UNWIELD" ); it->active = false; - if( p->has_item( *it ) && p->weapon.typeId() == "e_handcuffs" ) { + if( p->has_item( *it ) && p->weapon.typeId() == itype_e_handcuffs ) { add_msg( m_good, _( "%s on your hands opened!" ), it->tname() ); } @@ -7950,7 +8075,7 @@ int iuse::ehandcuffs( player *p, item *it, bool t, const tripoint &pos ) if( ( it->ammo_remaining() > it->type->maximum_charges() - 1000 ) && ( x != pos.x || y != pos.y ) ) { - if( p->has_item( *it ) && p->weapon.typeId() == "e_handcuffs" ) { + if( p->has_item( *it ) && p->weapon.typeId() == itype_e_handcuffs ) { if( p->is_elec_immune() ) { if( one_in( 10 ) ) { @@ -8039,7 +8164,7 @@ int iuse::radiocar( player *p, item *it, bool, const tripoint & ) return 0; } - it->convert( "radio_car_on" ).active = true; + it->convert( itype_radio_car_on ).active = true; p->add_msg_if_player( _( "You turned on your RC car, now place it on ground, and use radio control to play." ) ); @@ -8113,7 +8238,7 @@ int iuse::radiocaron( player *p, item *it, bool t, const tripoint &pos ) } if( choice == 0 ) { - it->convert( "radio_car" ).active = false; + it->convert( itype_radio_car ).active = false; p->add_msg_if_player( _( "You turned off your RC car." ) ); return it->type->charges_to_use(); @@ -8193,7 +8318,7 @@ int iuse::radiocontrol( player *p, item *it, bool t, const tripoint & ) tripoint rc_item_location = {999, 999, 999}; // TODO: grab the closest car or similar? for( auto &rc_pairs_rc_pair : rc_pairs ) { - if( rc_pairs_rc_pair.second->typeId() == "radio_car_on" && + if( rc_pairs_rc_pair.second->typeId() == itype_radio_car_on && rc_pairs_rc_pair.second->active ) { rc_item_location = rc_pairs_rc_pair.first; } @@ -8319,7 +8444,7 @@ static vehicle *pickveh( const tripoint ¢er, bool advanced ) for( auto &veh : g->m.get_vehicles() ) { auto &v = veh.v; if( rl_dist( center, v->global_pos3() ) < 40 && - v->fuel_left( "battery", true ) > 0 && + v->fuel_left( itype_battery, true ) > 0 && ( !empty( v->get_avail_parts( advctrl ) ) || ( !advanced && !empty( v->get_avail_parts( ctrl ) ) ) ) ) { vehs.push_back( v ); @@ -8360,7 +8485,7 @@ int iuse::remoteveh( player *p, item *it, bool t, const tripoint &pos ) } else if( remote == nullptr ) { p->add_msg_if_player( _( "Lost contact with the vehicle." ) ); stop = true; - } else if( remote->fuel_left( "battery", true ) == 0 ) { + } else if( remote->fuel_left( itype_battery, true ) == 0 ) { p->add_msg_if_player( m_bad, _( "The vehicle's battery died." ) ); stop = true; } @@ -8711,7 +8836,7 @@ int iuse::multicooker( player *p, item *it, bool t, const tripoint &pos ) } const std::string dish_name = dish.tname( dish.charges, false ); const bool is_delicious = dish.has_flag( "HOT" ) && dish.has_flag( "EATEN_HOT" ); - if( dish.made_of( LIQUID ) ) { + if( dish.made_of( phase_id::LIQUID ) ) { if( !p->check_eligible_containers_for_crafting( *recipe_id( it->get_var( "RECIPE" ) ), 1 ) ) { p->add_msg_if_player( m_info, _( "You don't have a suitable container to store your %s." ), dish_name ); @@ -8725,7 +8850,7 @@ int iuse::multicooker( player *p, item *it, bool t, const tripoint &pos ) it->remove_item( *dish_it ); it->erase_var( "RECIPE" ); - it->convert( "multi_cooker" ); + it->convert( itype_multi_cooker ); if( is_delicious ) { p->add_msg_if_player( m_good, _( "You got the dish from the multi-cooker. The %s smells delicious." ), @@ -8796,18 +8921,18 @@ int iuse::multicooker( player *p, item *it, bool t, const tripoint &pos ) return 0; } - for( auto component : reqs->get_components() ) { + for( const auto &component : reqs->get_components() ) { p->consume_items( component, 1, filter ); } it->set_var( "RECIPE", meal->ident().str() ); - it->set_var( "DISH", meal->result() ); + it->set_var( "DISH", meal->result().str() ); it->set_var( "COOKTIME", mealtime ); p->add_msg_if_player( m_good, _( "The screen flashes blue symbols and scales as the multi-cooker begins to shake." ) ); - it->convert( "multi_cooker_filled" ).active = true; + it->convert( itype_multi_cooker_filled ).active = true; it->ammo_consume( charges_to_start, pos ); p->practice( skill_cooking, meal->difficulty * 3 ); //little bonus @@ -8827,8 +8952,9 @@ int iuse::multicooker( player *p, item *it, bool t, const tripoint &pos ) const inventory &cinv = g->u.crafting_inventory(); - if( !cinv.has_amount( "soldering_iron", 1 ) ) { - p->add_msg_if_player( m_warning, _( "You need a %s." ), item::nname( "soldering_iron" ) ); + if( !cinv.has_amount( itype_soldering_iron, 1 ) ) { + p->add_msg_if_player( m_warning, _( "You need a %s." ), + item::nname( itype_soldering_iron ) ); has_tools = false; } @@ -8995,7 +9121,7 @@ int iuse::tow_attach( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "You can't attach the tow-line to an internal part." ) ); return 0; } - const vpart_id vpid( it->typeId() ); + const vpart_id vpid( it->typeId().str() ); point vcoords = source_vp->mount(); vehicle_part source_part( vpid, vcoords, item( *it ) ); source_veh->install_part( vcoords, source_part ); @@ -9022,7 +9148,7 @@ int iuse::cable_attach( player *p, item *it, bool, const tripoint & ) const bool has_solar_pack = p->worn_with_flag( "SOLARPACK" ); const bool has_solar_pack_on = p->worn_with_flag( "SOLARPACK_ON" ); const bool wearing_solar_pack = has_solar_pack || has_solar_pack_on; - const bool has_ups = p->has_charges( "UPS_off", 1 ) || p->has_charges( "adv_UPS_off", 1 ); + const bool has_ups = p->has_charges( itype_UPS_off, 1 ) || p->has_charges( itype_adv_UPS_off, 1 ); item_location loc; avatar *you = p->as_avatar(); @@ -9229,7 +9355,7 @@ int iuse::cable_attach( player *p, item *it, bool, const tripoint & ) tripoint target_global = g->m.getabs( vpos ); // TODO: make sure there is always a matching vpart id here. Maybe transform this into // a iuse_actor class, or add a check in item_factory. - const vpart_id vpid( it->typeId() ); + const vpart_id vpid( it->typeId().str() ); point vcoords = source_vp->mount(); vehicle_part source_part( vpid, vcoords, item( *it ) ); @@ -9291,12 +9417,12 @@ int iuse::weather_tool( player *p, item *it, bool, const tripoint & ) /* Possibly used twice. Worth spending the time to precalculate. */ const auto player_local_temp = g->weather.get_temperature( g->u.pos() ); - if( it->typeId() == "weather_reader" ) { + if( it->typeId() == itype_weather_reader ) { p->add_msg_if_player( m_neutral, _( "The %s's monitor slowly outputs the data…" ), it->tname() ); } if( it->has_flag( "THERMOMETER" ) ) { - if( it->typeId() == "thermometer" ) { + if( it->typeId() == itype_thermometer ) { p->add_msg_if_player( m_neutral, _( "The %1$s reads %2$s." ), it->tname(), print_temperature( player_local_temp ) ); } else { @@ -9305,7 +9431,7 @@ int iuse::weather_tool( player *p, item *it, bool, const tripoint & ) } } if( it->has_flag( "HYGROMETER" ) ) { - if( it->typeId() == "hygrometer" ) { + if( it->typeId() == itype_hygrometer ) { p->add_msg_if_player( m_neutral, _( "The %1$s reads %2$s." ), it->tname(), print_humidity( get_local_humidity( weatherPoint.humidity, g->weather.weather, @@ -9318,7 +9444,7 @@ int iuse::weather_tool( player *p, item *it, bool, const tripoint & ) } } if( it->has_flag( "BAROMETER" ) ) { - if( it->typeId() == "barometer" ) { + if( it->typeId() == itype_barometer ) { p->add_msg_if_player( m_neutral, _( "The %1$s reads %2$s." ), it->tname(), print_pressure( static_cast( weatherPoint.pressure ) ) ); @@ -9328,7 +9454,7 @@ int iuse::weather_tool( player *p, item *it, bool, const tripoint & ) } } - if( it->typeId() == "weather_reader" ) { + if( it->typeId() == itype_weather_reader ) { int vehwindspeed = 0; if( optional_vpart_position vp = g->m.veh_at( p->pos() ) ) { vehwindspeed = std::abs( vp->vehicle().velocity / 100 ); // For mph @@ -9471,13 +9597,13 @@ int iuse::capture_monster_act( player *p, item *it, bool, const tripoint &pos ) return 0; } } else { - if( !it->has_property( "monster_size_capacity" ) ) { - debugmsg( "%s has no monster_size_capacity.", it->tname() ); + if( !it->has_property( "creature_size_capacity" ) ) { + debugmsg( "%s has no creature_size_capacity.", it->tname() ); return 0; } - const std::string capacity = it->get_property_string( "monster_size_capacity" ); + const std::string capacity = it->get_property_string( "creature_size_capacity" ); if( Creature::size_map.count( capacity ) == 0 ) { - debugmsg( "%s has invalid monster_size_capacity %s.", + debugmsg( "%s has invalid creature_size_capacity %s.", it->tname(), capacity.c_str() ); return 0; } @@ -9631,14 +9757,14 @@ int iuse::wash_items( player *p, bool soft_items, bool hard_items ) const inventory &crafting_inv = p->crafting_inventory(); auto is_liquid = []( const item & it ) { - return it.made_of( LIQUID ); + return it.made_of( phase_id::LIQUID ); }; int available_water = std::max( - crafting_inv.charges_of( "water", INT_MAX, is_liquid ), - crafting_inv.charges_of( "water_clean", INT_MAX, is_liquid ) + crafting_inv.charges_of( itype_water, INT_MAX, is_liquid ), + crafting_inv.charges_of( itype_water_clean, INT_MAX, is_liquid ) ); - int available_cleanser = std::max( crafting_inv.charges_of( "soap" ), - crafting_inv.charges_of( "detergent" ) ); + int available_cleanser = std::max( crafting_inv.charges_of( itype_soap ), + crafting_inv.charges_of( itype_detergent ) ); const inventory_filter_preset preset( [soft_items, hard_items]( const item_location & location ) { return location->has_flag( "FILTHY" ) && ( ( soft_items && location->is_soft() ) || @@ -9693,13 +9819,13 @@ int iuse::wash_items( player *p, bool soft_items, bool hard_items ) washing_requirements required = washing_requirements_for_volume( total_volume ); - if( !crafting_inv.has_charges( "water", required.water, is_liquid ) && - !crafting_inv.has_charges( "water_clean", required.water, is_liquid ) ) { + if( !crafting_inv.has_charges( itype_water, required.water, is_liquid ) && + !crafting_inv.has_charges( itype_water_clean, required.water, is_liquid ) ) { p->add_msg_if_player( _( "You need %1$i charges of water or clean water to wash these items." ), required.water ); return 0; - } else if( !crafting_inv.has_charges( "soap", required.cleanser ) && - !crafting_inv.has_charges( "detergent", required.cleanser ) ) { + } else if( !crafting_inv.has_charges( itype_soap, required.cleanser ) && + !crafting_inv.has_charges( itype_detergent, required.cleanser ) ) { p->add_msg_if_player( _( "You need %1$i charges of cleansing agent to wash these items." ), required.cleanser ); return 0; @@ -9714,7 +9840,7 @@ int iuse::wash_items( player *p, bool soft_items, bool hard_items ) // Assign the activity values. p->assign_activity( ACT_WASH, required.time ); - for( drop_location pair : to_clean ) { + for( const drop_location &pair : to_clean ) { p->activity.targets.push_back( pair.first ); p->activity.values.push_back( pair.second ); } @@ -9845,11 +9971,11 @@ int iuse::disassemble( player *p, item *it, bool, const tripoint & ) int iuse::melatonin_tablet( player *p, item *it, bool, const tripoint & ) { p->add_msg_if_player( _( "You pop a %s." ), it->tname() ); - if( p->has_effect( effect_melatonin_supplements ) ) { + if( p->has_effect( effect_melatonin ) ) { p->add_msg_if_player( m_warning, _( "Simply taking more melatonin won't help. You have to go to sleep for it to work." ) ); } - p->add_effect( effect_melatonin_supplements, 16_hours ); + p->add_effect( effect_melatonin, 16_hours ); return it->type->charges_to_use(); } diff --git a/src/iuse.h b/src/iuse.h index f051087df6353..c359c2ff73567 100644 --- a/src/iuse.h +++ b/src/iuse.h @@ -8,6 +8,7 @@ #include #include "clone_ptr.h" +#include "type_id.h" #include "units.h" class Character; @@ -17,228 +18,229 @@ class monster; class player; struct iteminfo; template class ret_val; - -using itype_id = std::string; struct tripoint; // iuse methods returning a bool indicating whether to consume a charge of the item being used. -class iuse +namespace iuse { - public: - // FOOD AND DRUGS (ADMINISTRATION) - int sewage( player *, item *, bool, const tripoint & ); - int honeycomb( player *, item *, bool, const tripoint & ); - int alcohol_weak( player *, item *, bool, const tripoint & ); - int alcohol_medium( player *, item *, bool, const tripoint & ); - int alcohol_strong( player *, item *, bool, const tripoint & ); - int xanax( player *, item *, bool, const tripoint & ); - int smoking( player *, item *, bool, const tripoint & ); - int ecig( player *, item *, bool, const tripoint & ); - int antibiotic( player *, item *, bool, const tripoint & ); - int eyedrops( player *, item *, bool, const tripoint & ); - int fungicide( player *, item *, bool, const tripoint & ); - int antifungal( player *, item *, bool, const tripoint & ); - int antiparasitic( player *, item *, bool, const tripoint & ); - int anticonvulsant( player *, item *, bool, const tripoint & ); - int weed_cake( player *, item *, bool, const tripoint & ); - int coke( player *, item *, bool, const tripoint & ); - int meth( player *, item *, bool, const tripoint & ); - int vaccine( player *, item *, bool, const tripoint & ); - int flu_vaccine( player *, item *, bool, const tripoint & ); - int poison( player *, item *, bool, const tripoint & ); - int meditate( player *, item *, bool, const tripoint & ); - int thorazine( player *, item *, bool, const tripoint & ); - int prozac( player *, item *, bool, const tripoint & ); - int sleep( player *, item *, bool, const tripoint & ); - int datura( player *, item *, bool, const tripoint & ); - int flumed( player *, item *, bool, const tripoint & ); - int flusleep( player *, item *, bool, const tripoint & ); - int inhaler( player *, item *, bool, const tripoint & ); - int blech( player *, item *, bool, const tripoint & ); - int blech_because_unclean( player *, item *, bool, const tripoint & ); - int plantblech( player *, item *, bool, const tripoint & ); - int chew( player *, item *, bool, const tripoint & ); - int purifier( player *, item *, bool, const tripoint & ); - int purify_iv( player *, item *, bool, const tripoint & ); - int purify_smart( player *, item *, bool, const tripoint & ); - int marloss( player *, item *, bool, const tripoint & ); - int marloss_seed( player *, item *, bool, const tripoint & ); - int marloss_gel( player *, item *, bool, const tripoint & ); - int mycus( player *, item *, bool, const tripoint & ); - int dogfood( player *, item *, bool, const tripoint & ); - int catfood( player *, item *, bool, const tripoint & ); - int feedcattle( player *, item *, bool, const tripoint & ); - int feedbird( player *, item *, bool, const tripoint & ); - int antiasthmatic( player *, item *, bool, const tripoint & ); - // TOOLS - int extinguisher( player *, item *, bool, const tripoint & ); - int hammer( player *, item *, bool, const tripoint & ); - int water_purifier( player *, item *, bool, const tripoint & ); - int directional_antenna( player *, item *, bool, const tripoint & ); - int radio_off( player *, item *, bool, const tripoint & ); - int radio_on( player *, item *, bool, const tripoint & ); - int noise_emitter_off( player *, item *, bool, const tripoint & ); - int noise_emitter_on( player *, item *, bool, const tripoint & ); - int ma_manual( player *, item *, bool, const tripoint & ); - int crowbar( player *, item *, bool, const tripoint & ); - int makemound( player *, item *, bool, const tripoint & ); - int dig( player *, item *, bool, const tripoint & ); - int dig_channel( player *, item *, bool, const tripoint & ); - int fill_pit( player *, item *, bool, const tripoint & ); - int clear_rubble( player *, item *, bool, const tripoint & ); - int siphon( player *, item *, bool, const tripoint & ); - int chainsaw_off( player *, item *, bool, const tripoint & ); - int chainsaw_on( player *, item *, bool, const tripoint & ); - int elec_chainsaw_off( player *, item *, bool, const tripoint & ); - int elec_chainsaw_on( player *, item *, bool, const tripoint & ); - int cs_lajatang_off( player *, item *, bool, const tripoint & ); - int cs_lajatang_on( player *, item *, bool, const tripoint & ); - int ecs_lajatang_off( player *, item *, bool, const tripoint & ); - int ecs_lajatang_on( player *, item *, bool, const tripoint & ); - int carver_off( player *, item *, bool, const tripoint & ); - int carver_on( player *, item *, bool, const tripoint & ); - int trimmer_off( player *, item *, bool, const tripoint & ); - int trimmer_on( player *, item *, bool, const tripoint & ); - int circsaw_on( player *, item *, bool, const tripoint & ); - int combatsaw_off( player *, item *, bool, const tripoint & ); - int combatsaw_on( player *, item *, bool, const tripoint & ); - int e_combatsaw_off( player *, item *, bool, const tripoint & ); - 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 & ); - int throwable_extinguisher_act( player *, item *, bool, const tripoint & ); - int directional_hologram( player *, item *, bool, const tripoint & ); - int capture_monster_veh( player *, item *, bool, const tripoint & ); - int capture_monster_act( player *, item *, bool, const tripoint & ); - int granade( player *, item *, bool, const tripoint & ); - int granade_act( player *, item *, bool, const tripoint & ); - int c4( player *, item *, bool, const tripoint & ); - int arrow_flammable( player *, item *, bool, const tripoint & ); - int acidbomb_act( player *, item *, bool, const tripoint & ); - int grenade_inc_act( player *, item *, bool, const tripoint & ); - int molotov_lit( player *, item *, bool, const tripoint & ); - int firecracker_pack( player *, item *, bool, const tripoint & ); - int firecracker_pack_act( player *, item *, bool, const tripoint & ); - int firecracker( player *, item *, bool, const tripoint & ); - int firecracker_act( player *, item *, bool, const tripoint & ); - int mininuke( player *, item *, bool, const tripoint & ); - int pheromone( player *, item *, bool, const tripoint & ); - int portal( player *, item *, bool, const tripoint & ); - int tazer( player *, item *, bool, const tripoint & ); - int tazer2( player *, item *, bool, const tripoint & ); - int shocktonfa_off( player *, item *, bool, const tripoint & ); - int shocktonfa_on( player *, item *, bool, const tripoint & ); - int mp3( player *, item *, bool, const tripoint & ); - int mp3_on( player *, item *, bool, const tripoint & ); - int rpgdie( player *, item *, bool, const tripoint & ); - int dive_tank( player *, item *, bool, const tripoint & ); - int gasmask( player *, item *, bool, const tripoint & ); - int portable_game( player *, item *, bool, const tripoint & ); - int fitness_check( player *p, item *it, 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 call_of_tindalos( player *, item *, bool, const tripoint & ); - int blood_draw( player *, item *, bool, const tripoint & ); - int mind_splicer( player *, item *, bool, const tripoint & ); - static void cut_log_into_planks( player & ); - int lumber( player *, item *, bool, const tripoint & ); - int chop_tree( player *, item *, bool, const tripoint & ); - int chop_logs( player *, item *, bool, const tripoint & ); - int oxytorch( player *, item *, bool, const tripoint & ); - int hacksaw( player *, item *, bool, const tripoint & ); - int boltcutters( player *, item *, bool, const tripoint & ); - int mop( player *, item *, bool, const tripoint & ); - int spray_can( player *, item *, bool, const tripoint & ); - int heatpack( player *, item *, bool, const tripoint & ); - int heat_food( player *, item *, bool, const tripoint & ); - int hotplate( player *, item *, bool, const tripoint & ); - int towel( player *, item *, bool, const tripoint & ); - int unfold_generic( player *, item *, bool, const tripoint & ); - int adrenaline_injector( player *, item *, bool, const tripoint & ); - int jet_injector( player *, item *, bool, const tripoint & ); - int stimpack( player *, item *, bool, const tripoint & ); - int contacts( player *, item *, bool, const tripoint & ); - int talking_doll( player *, item *, bool, const tripoint & ); - int bell( player *, item *, bool, const tripoint & ); - int seed( player *, item *, bool, const tripoint & ); - int oxygen_bottle( player *, item *, bool, const tripoint & ); - int radio_mod( player *, item *, bool, const tripoint & ); - int remove_all_mods( player *, item *, bool, const tripoint & ); - int fishing_rod( player *, item *, bool, const tripoint & ); - int fish_trap( player *, item *, bool, const tripoint & ); - int gun_repair( player *, item *, bool, const tripoint & ); - int gunmod_attach( player *, item *, bool, const tripoint & ); - int toolmod_attach( player *, item *, bool, const tripoint & ); - int rm13armor_off( player *, item *, bool, const tripoint & ); - int rm13armor_on( player *, item *, bool, const tripoint & ); - int unpack_item( player *, item *, bool, const tripoint & ); - int pack_cbm( player *p, item *it, bool, const tripoint & ); - int pack_item( player *, item *, bool, const tripoint & ); - int radglove( player *, item *, bool, const tripoint & ); - int robotcontrol( player *, item *, bool, const tripoint & ); - // Helper for validating a potential taget of robot control - static bool robotcontrol_can_target( player *, const monster & ); - int einktabletpc( player *, item *, bool, const tripoint & ); - int camera( player *, item *, bool, const tripoint & ); - int ehandcuffs( player *, item *, bool, const tripoint & ); - int foodperson( player *, item *, bool, const tripoint & ); - int tow_attach( player *, item *, bool, const tripoint & ); - int cable_attach( player *, item *, bool, const tripoint & ); - int shavekit( player *, item *, bool, const tripoint & ); - int hairkit( player *, item *, bool, const tripoint & ); - int weather_tool( player *, item *, bool, const tripoint & ); - int ladder( player *, item *, bool, const tripoint & ); - int wash_soft_items( player *, item *, bool, const tripoint & ); - int wash_hard_items( player *, item *, bool, const tripoint & ); - int wash_all_items( player *, item *, bool, const tripoint & ); - int wash_items( player *p, bool soft_items, bool hard_items ); - int solarpack( player *, item *, bool, const tripoint & ); - int solarpack_off( player *, item *, bool, const tripoint & ); - int break_stick( player *, item *, bool, const tripoint & ); - int weak_antibiotic( player *, item *, bool, const tripoint & ); - int strong_antibiotic( player *, item *, bool, const tripoint & ); - int melatonin_tablet( player *, item *, bool, const tripoint & ); - int coin_flip( player *, item *, bool, const tripoint & ); - int play_game( player *, item *, bool, const tripoint & ); - int magic_8_ball( player *, item *, bool, const tripoint & ); - - // MACGUFFINS - - int radiocar( player *, item *, bool, const tripoint & ); - int radiocaron( player *, item *, bool, const tripoint & ); - int radiocontrol( player *, item *, bool, const tripoint & ); - - int autoclave( player *, item *, bool, const tripoint & ); - - int multicooker( player *, item *, bool, const tripoint & ); - - int remoteveh( player *, item *, bool, const tripoint & ); - - int craft( player *, item *, bool, const tripoint & ); - - int disassemble( player *, item *, bool, const tripoint & ); - - // ARTIFACTS - /* This function is used when an artifact is activated. - It examines the item's artifact-specific properties. - See artifact.h for a list. */ - int artifact( player *, item *, bool, const tripoint & ); - - // Helper for listening to music, might deserve a better home, but not sure where. - static void play_music( player &p, const tripoint &source, int volume, int max_morale ); - static int towel_common( player *, item *, bool ); - - // Helper for handling pesky wannabe-artists - static int handle_ground_graffiti( player &p, item *it, const std::string &prefix, - const tripoint &where ); -}; +// FOOD AND DRUGS (ADMINISTRATION) +int alcohol_medium( player *, item *, bool, const tripoint & ); +int alcohol_strong( player *, item *, bool, const tripoint & ); +int alcohol_weak( player *, item *, bool, const tripoint & ); +int antiasthmatic( player *, item *, bool, const tripoint & ); +int antibiotic( player *, item *, bool, const tripoint & ); +int anticonvulsant( player *, item *, bool, const tripoint & ); +int antifungal( player *, item *, bool, const tripoint & ); +int antiparasitic( player *, item *, bool, const tripoint & ); +int blech( player *, item *, bool, const tripoint & ); +int blech_because_unclean( player *, item *, bool, const tripoint & ); +int catfood( player *, item *, bool, const tripoint & ); +int chew( player *, item *, bool, const tripoint & ); +int coke( player *, item *, bool, const tripoint & ); +int datura( player *, item *, bool, const tripoint & ); +int dogfood( player *, item *, bool, const tripoint & ); +int ecig( player *, item *, bool, const tripoint & ); +int eyedrops( player *, item *, bool, const tripoint & ); +int feedbird( player *, item *, bool, const tripoint & ); +int feedcattle( player *, item *, bool, const tripoint & ); +int flu_vaccine( player *, item *, bool, const tripoint & ); +int flumed( player *, item *, bool, const tripoint & ); +int flusleep( player *, item *, bool, const tripoint & ); +int fungicide( player *, item *, bool, const tripoint & ); +int honeycomb( player *, item *, bool, const tripoint & ); +int inhaler( player *, item *, bool, const tripoint & ); +int marloss( player *, item *, bool, const tripoint & ); +int marloss_gel( player *, item *, bool, const tripoint & ); +int marloss_seed( player *, item *, bool, const tripoint & ); +int meditate( player *, item *, bool, const tripoint & ); +int meth( player *, item *, bool, const tripoint & ); +int mycus( player *, item *, bool, const tripoint & ); +int plantblech( player *, item *, bool, const tripoint & ); +int poison( player *, item *, bool, const tripoint & ); +int prozac( player *, item *, bool, const tripoint & ); +int purifier( player *, item *, bool, const tripoint & ); +int purify_iv( player *, item *, bool, const tripoint & ); +int purify_smart( player *, item *, bool, const tripoint & ); +int sewage( player *, item *, bool, const tripoint & ); +int sleep( player *, item *, bool, const tripoint & ); +int smoking( player *, item *, bool, const tripoint & ); +int thorazine( player *, item *, bool, const tripoint & ); +int vaccine( player *, item *, bool, const tripoint & ); +int weed_cake( player *, item *, bool, const tripoint & ); +int xanax( player *, item *, bool, const tripoint & ); + +// TOOLS +int acidbomb_act( player *, item *, bool, const tripoint & ); +int adrenaline_injector( player *, item *, bool, const tripoint & ); +int arrow_flammable( player *, item *, bool, const tripoint & ); +int bell( player *, item *, bool, const tripoint & ); +int blood_draw( player *, item *, bool, const tripoint & ); +int boltcutters( player *, item *, bool, const tripoint & ); +int break_stick( player *, item *, bool, const tripoint & ); +int burrow( player *, item *, bool, const tripoint & ); +int c4( player *, item *, bool, const tripoint & ); +int cable_attach( player *, item *, bool, const tripoint & ); +int call_of_tindalos( player *, item *, bool, const tripoint & ); +int camera( player *, item *, bool, const tripoint & ); +int can_goo( player *, item *, bool, const tripoint & ); +int capture_monster_act( player *, item *, bool, const tripoint & ); +int capture_monster_veh( player *, item *, bool, const tripoint & ); +int carver_off( player *, item *, bool, const tripoint & ); +int carver_on( player *, item *, bool, const tripoint & ); +int chainsaw_off( player *, item *, bool, const tripoint & ); +int chainsaw_on( player *, item *, bool, const tripoint & ); +int chop_logs( player *, item *, bool, const tripoint & ); +int chop_tree( player *, item *, bool, const tripoint & ); +int circsaw_on( player *, item *, bool, const tripoint & ); +int clear_rubble( player *, item *, bool, const tripoint & ); +int coin_flip( player *, item *, bool, const tripoint & ); +int combatsaw_off( player *, item *, bool, const tripoint & ); +int combatsaw_on( player *, item *, bool, const tripoint & ); +int contacts( player *, item *, bool, const tripoint & ); +int crowbar( player *, item *, bool, const tripoint & ); +int cs_lajatang_off( player *, item *, bool, const tripoint & ); +int cs_lajatang_on( player *, item *, bool, const tripoint & ); +int dig( player *, item *, bool, const tripoint & ); +int dig_channel( player *, item *, bool, const tripoint & ); +int directional_antenna( player *, item *, bool, const tripoint & ); +int directional_hologram( player *, item *, bool, const tripoint & ); +int dive_tank( player *, item *, bool, const tripoint & ); +int dog_whistle( player *, item *, bool, const tripoint & ); +int e_combatsaw_off( player *, item *, bool, const tripoint & ); +int e_combatsaw_on( player *, item *, bool, const tripoint & ); +int ecs_lajatang_off( player *, item *, bool, const tripoint & ); +int ecs_lajatang_on( player *, item *, bool, const tripoint & ); +int ehandcuffs( player *, item *, bool, const tripoint & ); +int einktabletpc( player *, item *, bool, const tripoint & ); +int elec_chainsaw_off( player *, item *, bool, const tripoint & ); +int elec_chainsaw_on( player *, item *, bool, const tripoint & ); +int extinguisher( player *, item *, bool, const tripoint & ); +int fill_pit( player *, item *, bool, const tripoint & ); +int firecracker( player *, item *, bool, const tripoint & ); +int firecracker_act( player *, item *, bool, const tripoint & ); +int firecracker_pack( player *, item *, bool, const tripoint & ); +int firecracker_pack_act( player *, item *, bool, const tripoint & ); +int fish_trap( player *, item *, bool, const tripoint & ); +int fishing_rod( player *, item *, bool, const tripoint & ); +int fitness_check( player *p, item *it, bool, const tripoint & ); +int foodperson( player *, item *, bool, const tripoint & ); +int gasmask( player *, item *, bool, const tripoint & ); +int geiger( player *, item *, bool, const tripoint & ); +int granade( player *, item *, bool, const tripoint & ); +int granade_act( player *, item *, bool, const tripoint & ); +int grenade_inc_act( player *, item *, bool, const tripoint & ); +int gun_repair( player *, item *, bool, const tripoint & ); +int gunmod_attach( player *, item *, bool, const tripoint & ); +int hacksaw( player *, item *, bool, const tripoint & ); +int hairkit( player *, item *, bool, const tripoint & ); +int hammer( player *, item *, bool, const tripoint & ); +int hand_crank( player *, item *, bool, const tripoint & ); +int heat_food( player *, item *, bool, const tripoint & ); +int heatpack( player *, item *, bool, const tripoint & ); +int hotplate( player *, item *, bool, const tripoint & ); +int jackhammer( player *, item *, bool, const tripoint & ); +int jet_injector( player *, item *, bool, const tripoint & ); +int ladder( player *, item *, bool, const tripoint & ); +int lumber( player *, item *, bool, const tripoint & ); +int ma_manual( player *, item *, bool, const tripoint & ); +int magic_8_ball( player *, item *, bool, const tripoint & ); +int makemound( player *, item *, bool, const tripoint & ); +int melatonin_tablet( player *, item *, bool, const tripoint & ); +int mind_splicer( player *, item *, bool, const tripoint & ); +int mininuke( player *, item *, bool, const tripoint & ); +int molotov_lit( player *, item *, bool, const tripoint & ); +int mop( player *, item *, bool, const tripoint & ); +int mp3( player *, item *, bool, const tripoint & ); +int mp3_on( player *, item *, bool, const tripoint & ); +int noise_emitter_off( player *, item *, bool, const tripoint & ); +int noise_emitter_on( player *, item *, bool, const tripoint & ); +int oxygen_bottle( player *, item *, bool, const tripoint & ); +int oxytorch( player *, item *, bool, const tripoint & ); +int pack_cbm( player *p, item *it, bool, const tripoint & ); +int pack_item( player *, item *, bool, const tripoint & ); +int pheromone( player *, item *, bool, const tripoint & ); +int pick_lock( player *p, item *it, bool, const tripoint &pos ); +int pickaxe( player *, item *, bool, const tripoint & ); +int play_game( player *, item *, bool, const tripoint & ); +int portable_game( player *, item *, bool, const tripoint & ); +int portal( player *, item *, bool, const tripoint & ); +int radglove( player *, item *, bool, const tripoint & ); +int radio_mod( player *, item *, bool, const tripoint & ); +int radio_off( player *, item *, bool, const tripoint & ); +int radio_on( player *, item *, bool, const tripoint & ); +int remove_all_mods( player *, item *, bool, const tripoint & ); +int rm13armor_off( player *, item *, bool, const tripoint & ); +int rm13armor_on( player *, item *, bool, const tripoint & ); +int robotcontrol( player *, item *, bool, const tripoint & ); +int rpgdie( player *, item *, bool, const tripoint & ); +int seed( player *, item *, bool, const tripoint & ); +int shavekit( player *, item *, bool, const tripoint & ); +int shocktonfa_off( player *, item *, bool, const tripoint & ); +int shocktonfa_on( player *, item *, bool, const tripoint & ); +int siphon( player *, item *, bool, const tripoint & ); +int solarpack( player *, item *, bool, const tripoint & ); +int solarpack_off( player *, item *, bool, const tripoint & ); +int spray_can( player *, item *, bool, const tripoint & ); +int stimpack( player *, item *, bool, const tripoint & ); +int strong_antibiotic( player *, item *, bool, const tripoint & ); +int talking_doll( player *, item *, bool, const tripoint & ); +int tazer( player *, item *, bool, const tripoint & ); +int tazer2( player *, item *, bool, const tripoint & ); +int teleport( player *, item *, bool, const tripoint & ); +int throwable_extinguisher_act( player *, item *, bool, const tripoint & ); +int toolmod_attach( player *, item *, bool, const tripoint & ); +int tow_attach( player *, item *, bool, const tripoint & ); +int towel( player *, item *, bool, const tripoint & ); +int trimmer_off( player *, item *, bool, const tripoint & ); +int trimmer_on( player *, item *, bool, const tripoint & ); +int unfold_generic( player *, item *, bool, const tripoint & ); +int unpack_item( player *, item *, bool, const tripoint & ); +int vibe( player *, item *, bool, const tripoint & ); +int vortex( player *, item *, bool, const tripoint & ); +int wash_all_items( player *, item *, bool, const tripoint & ); +int wash_hard_items( player *, item *, bool, const tripoint & ); +int wash_items( player *p, bool soft_items, bool hard_items ); +int wash_soft_items( player *, item *, bool, const tripoint & ); +int water_purifier( player *, item *, bool, const tripoint & ); +int weak_antibiotic( player *, item *, bool, const tripoint & ); +int weather_tool( player *, item *, bool, const tripoint & ); + +// MACGUFFINS + +int radiocar( player *, item *, bool, const tripoint & ); +int radiocaron( player *, item *, bool, const tripoint & ); +int radiocontrol( player *, item *, bool, const tripoint & ); + +int autoclave( player *, item *, bool, const tripoint & ); + +int multicooker( player *, item *, bool, const tripoint & ); + +int remoteveh( player *, item *, bool, const tripoint & ); + +int craft( player *, item *, bool, const tripoint & ); + +int disassemble( player *, item *, bool, const tripoint & ); + +// ARTIFACTS +/* This function is used when an artifact is activated. + It examines the item's artifact-specific properties. + See artifact.h for a list. */ +int artifact( player *, item *, bool, const tripoint & ); + +// Helper functions for other iuse functions +void cut_log_into_planks( player & ); +void play_music( player &p, const tripoint &source, int volume, int max_morale ); +int towel_common( player *, item *, bool ); + +// Helper for validating a potential taget of robot control +bool robotcontrol_can_target( player *, const monster & ); + +// Helper for handling pesky wannabe-artists +int handle_ground_graffiti( player &p, item *it, const std::string &prefix, + const tripoint &where ); + +} // namespace iuse void remove_radio_mod( item &it, player &p ); @@ -250,7 +252,7 @@ struct washing_requirements { }; washing_requirements washing_requirements_for_volume( const units::volume & ); -using use_function_pointer = int ( iuse::* )( player *, item *, bool, const tripoint & ); +using use_function_pointer = int ( * )( player *, item *, bool, const tripoint & ); class iuse_actor { diff --git a/src/iuse_actor.cpp b/src/iuse_actor.cpp index 39d6ca1cb2d7f..3e72a1d700f52 100644 --- a/src/iuse_actor.cpp +++ b/src/iuse_actor.cpp @@ -109,33 +109,30 @@ static const fault_id fault_bionic_salvaged( "fault_bionic_salvaged" ); static const bionic_id bio_syringe( "bio_syringe" ); +static const itype_id itype_barrel_small( "barrel_small" ); +static const itype_id itype_brazier( "brazier" ); +static const itype_id itype_char_smoker( "char_smoker" ); +static const itype_id itype_fire( "fire" ); +static const itype_id itype_syringe( "syringe" ); +static const itype_id itype_UPS( "UPS" ); + static const skill_id skill_fabrication( "fabrication" ); static const skill_id skill_firstaid( "firstaid" ); -static const skill_id skill_lockpick( "lockpick" ); -static const skill_id skill_mechanics( "mechanics" ); static const skill_id skill_survival( "survival" ); -static const species_id HUMAN( "HUMAN" ); -static const species_id ZOMBIE( "ZOMBIE" ); - static const trait_id trait_CENOBITE( "CENOBITE" ); static const trait_id trait_DEBUG_BIONICS( "DEBUG_BIONICS" ); static const trait_id trait_TOLERANCE( "TOLERANCE" ); static const trait_id trait_LIGHTWEIGHT( "LIGHTWEIGHT" ); -static const trait_id trait_PACIFIST( "PACIFIST" ); -static const trait_id trait_PSYCHOPATH( "PSYCHOPATH" ); static const trait_id trait_PYROMANIA( "PYROMANIA" ); static const trait_id trait_NOPAIN( "NOPAIN" ); static const trait_id trait_MASOCHIST( "MASOCHIST" ); static const trait_id trait_MASOCHIST_MED( "MASOCHIST_MED" ); static const trait_id trait_MUT_JUNKIE( "MUT_JUNKIE" ); -static const trait_id trait_SAPIOVORE( "SAPIOVORE" ); static const trait_id trait_SELFAWARE( "SELFAWARE" ); static const trait_id trait_SMALL_OK( "SMALL_OK" ); static const trait_id trait_SMALL2( "SMALL2" ); -static const quality_id qual_LOCKPICK( "LOCKPICK" ); - static const std::string flag_FIT( "FIT" ); static const std::string flag_OVERSIZE( "OVERSIZE" ); static const std::string flag_UNDERSIZE( "UNDERSIZE" ); @@ -150,7 +147,7 @@ std::unique_ptr iuse_transform::clone() const void iuse_transform::load( const JsonObject &obj ) { - target = obj.get_string( "target" ); // required + obj.read( "target", target, true ); obj.read( "msg", msg_transform ); obj.read( "container", container ); @@ -171,7 +168,7 @@ void iuse_transform::load( const JsonObject &obj ) obj.read( "countdown", countdown ); - if( !ammo_type.empty() && !container.empty() ) { + if( !ammo_type.is_empty() && !container.is_empty() ) { obj.throw_error( "Transform actor specified both ammo type and container type", "target_ammo" ); } @@ -227,7 +224,7 @@ int iuse_transform::use( player &p, item &it, bool t, const tripoint &pos ) cons } if( need_fire && possess ) { - if( !p.use_charges_if_avail( "fire", need_fire ) ) { + if( !p.use_charges_if_avail( itype_fire, need_fire ) ) { p.add_msg_if_player( m_info, need_fire_msg, it.tname() ); return 0; } @@ -249,7 +246,7 @@ int iuse_transform::use( player &p, item &it, bool t, const tripoint &pos ) cons item *obj; // defined here to allow making a new item assigned to the pointer item obj_it; - if( container.empty() ) { + if( container.is_empty() ) { obj = &it.convert( target ); if( ammo_qty >= 0 || !random_ammo_qty.empty() ) { int qty; @@ -259,9 +256,9 @@ int iuse_transform::use( player &p, item &it, bool t, const tripoint &pos ) cons } else { qty = ammo_qty; } - if( !ammo_type.empty() ) { + if( !ammo_type.is_empty() ) { obj->ammo_set( ammo_type, qty ); - } else if( obj->ammo_current() != "null" ) { + } else if( !obj->ammo_current().is_null() ) { obj->ammo_set( obj->ammo_current(), qty ); } else { obj->set_countdown( qty ); @@ -321,7 +318,7 @@ void iuse_transform::finalize( const itype_id & ) debugmsg( "Invalid transform target: %s", target.c_str() ); } - if( !container.empty() ) { + if( !container.is_empty() ) { if( !item::type_is_defined( container ) ) { debugmsg( "Invalid transform container: %s", container.c_str() ); } @@ -630,7 +627,7 @@ int unfold_vehicle_iuse::use( player &p, item &it, bool, const tripoint & ) cons // Mark the vehicle as foldable. veh->tags.insert( "convertible" ); // Store the id of the item the vehicle is made of. - veh->tags.insert( std::string( "convertible:" ) + it.typeId() ); + veh->tags.insert( std::string( "convertible:" ) + it.typeId().str() ); if( !unfold_msg.empty() ) { p.add_msg_if_player( _( unfold_msg ), it.tname() ); } @@ -737,7 +734,7 @@ void consume_drug_iuse::info( const item &, std::vector &dump ) const dump.emplace_back( "TOOL", _( "Vitamins (RDA): " ), vits ); } - if( tools_needed.count( "syringe" ) ) { + if( tools_needed.count( itype_syringe ) ) { dump.emplace_back( "TOOL", _( "You need a syringe to inject this drug." ) ); } } @@ -745,8 +742,8 @@ void consume_drug_iuse::info( const item &, std::vector &dump ) const int consume_drug_iuse::use( player &p, item &it, bool, const tripoint & ) const { auto need_these = tools_needed; - if( need_these.count( "syringe" ) && p.has_bionic( bio_syringe ) ) { - need_these.erase( "syringe" ); // no need for a syringe with bionics like these! + if( need_these.count( itype_syringe ) && p.has_bionic( bio_syringe ) ) { + need_these.erase( itype_syringe ); // no need for a syringe with bionics like these! } // Check prerequisites first. for( const auto &tool : need_these ) { @@ -861,8 +858,12 @@ void place_monster_iuse::load( const JsonObject &obj ) obj.read( "difficulty", difficulty ); obj.read( "moves", moves ); obj.read( "place_randomly", place_randomly ); - skill1 = skill_id( obj.get_string( "skill1", skill1.str() ) ); - skill2 = skill_id( obj.get_string( "skill2", skill2.str() ) ); + if( obj.has_array( "skills" ) ) { + JsonArray skills_ja = obj.get_array( "skills" ); + for( JsonValue s : skills_ja ) { + skills.emplace( skill_id( s.get_string() ) ); + } + } } int place_monster_iuse::use( player &p, item &it, bool, const tripoint & ) const @@ -911,35 +912,29 @@ int place_monster_iuse::use( player &p, item &it, bool, const tripoint & ) const newmon.name() ); amdef.second = ammo_item.charges; } + } else { + newmon.ammo = newmon.type->starting_ammo; } + int skill_offset = 0; - if( skill1 ) { - skill_offset += p.get_skill_level( skill1 ) / 2; - } - if( skill2 ) { - skill_offset += p.get_skill_level( skill2 ); + for( const skill_id &sk : skills ) { + skill_offset += p.get_skill_level( sk ) / 2; } /** @EFFECT_INT increases chance of a placed turret being friendly */ if( rng( 0, p.int_cur / 2 ) + skill_offset < rng( 0, difficulty ) ) { if( hostile_msg.empty() ) { - p.add_msg_if_player( m_bad, _( "The %s scans you and makes angry beeping noises!" ), - newmon.name() ); + p.add_msg_if_player( m_bad, _( "You deploy the %s wrong. It is hostile!" ), newmon.name() ); } else { p.add_msg_if_player( m_bad, "%s", _( hostile_msg ) ); } } else { if( friendly_msg.empty() ) { - p.add_msg_if_player( m_warning, _( "The %s emits an IFF beep as it scans you." ), - newmon.name() ); + p.add_msg_if_player( m_warning, _( "You deploy the %s." ), newmon.name() ); } else { p.add_msg_if_player( m_warning, "%s", _( friendly_msg ) ); } newmon.friendly = -1; } - // TODO: add a flag instead of monster id or something? - if( newmon.type->id == mtype_id( "mon_laserturret" ) && !g->is_in_sunlight( newmon.pos() ) ) { - p.add_msg_if_player( _( "A flashing LED on the laser turret appears to indicate low light." ) ); - } return 1; } @@ -999,7 +994,7 @@ static bool has_powersource( const item &i, const player &p ) if( i.is_power_armor() && p.can_interface_armor() && p.has_power() ) { return true; } - return p.has_charges( "UPS", 1 ); + return p.has_charges( itype_UPS, 1 ); } int ups_based_armor_actor::use( player &p, item &it, bool t, const tripoint & ) const @@ -1040,69 +1035,6 @@ int ups_based_armor_actor::use( player &p, item &it, bool t, const tripoint & ) return 0; } -std::unique_ptr pick_lock_actor::clone() const -{ - return std::make_unique( *this ); -} - -void pick_lock_actor::load( const JsonObject &obj ) -{ - pick_quality = obj.get_int( "pick_quality" ); -} - -int pick_lock_actor::use( player &p, item &it, bool, const tripoint & ) const -{ - if( p.is_npc() ) { - return 0; - } - - if( p.is_mounted() ) { - p.add_msg_if_player( m_info, _( "You cannot do that while mounted." ) ); - return 0; - } - - const std::function f = []( const tripoint & pnt ) { - if( pnt == g->u.pos() ) { - return false; - } - return g->m.has_flag( "PICKABLE", pnt ); - }; - - const cata::optional pnt_ = choose_adjacent_highlight( - _( "Use your lockpick where?" ), _( "There is nothing to lockpick nearby." ), f, false ); - if( !pnt_ ) { - return 0; - } - const tripoint &pnt = *pnt_; - const ter_id type = g->m.ter( pnt ); - if( !f( pnt ) ) { - if( pnt == p.pos() ) { - p.add_msg_if_player( m_info, _( "You pick your nose and your sinuses swing open." ) ); - } else if( g->critter_at( pnt ) ) { - p.add_msg_if_player( m_info, - _( "You can pick your friends, and you can\npick your nose, but you can't pick\nyour friend's nose." ) ); - } else if( type == t_door_c ) { - p.add_msg_if_player( m_info, _( "That door isn't locked." ) ); - } else { - p.add_msg_if_player( m_info, _( "That cannot be picked." ) ); - } - return 0; - } - - /** @EFFECT_DEX speeds up door lock picking */ - /** @EFFECT_LOCKPICK speeds up door lock picking */ - const int duration = std::max( 0, - to_moves( 10_minutes - time_duration::from_minutes( it.get_quality( qual_LOCKPICK ) ) ) - - ( p.dex_cur + p.get_skill_level( skill_lockpick ) ) * 2300 ); - p.practice( skill_lockpick, std::pow( 2, p.get_skill_level( skill_lockpick ) ) + 1 ); - - p.assign_activity( activity_id( "ACT_LOCKPICK" ), duration, -1, p.get_item_position( &it ) ); - p.activity.targets.push_back( item_location( p, &it ) ); - p.activity.placement = pnt; - - return it.type->charges_to_use(); -} - std::unique_ptr deploy_furn_actor::clone() const { return std::make_unique( *this ); @@ -1134,7 +1066,7 @@ void deploy_furn_actor::info( const item &, std::vector &dump ) const if( the_furn.has_flag( "FIRE_CONTAINER" ) ) { can_function_as.emplace_back( _( "a safe place to contain a fire" ) ); } - if( the_furn.crafting_pseudo_item == "char_smoker" ) { + if( the_furn.crafting_pseudo_item == itype_char_smoker ) { can_function_as.emplace_back( _( "a place to smoke or dry food for preservation" ) ); } @@ -1284,7 +1216,6 @@ bool firestarter_actor::prep_firestarter_use( const player &p, tripoint &pos ) if( const cata::optional pnt_ = choose_adjacent( _( "Light where?" ) ) ) { pos = *pnt_; } else { - g->refresh_all(); return false; } } @@ -1301,7 +1232,7 @@ bool firestarter_actor::prep_firestarter_use( const player &p, tripoint &pos ) // Check for a brazier. bool has_unactivated_brazier = false; for( const auto &i : g->m.i_at( pos ) ) { - if( i.typeId() == "brazier" ) { + if( i.typeId() == itype_brazier ) { has_unactivated_brazier = true; } } @@ -1498,7 +1429,7 @@ bool salvage_actor::try_to_cut_up( player &p, item &it ) const // There must be some historical significance to these items. if( !it.is_salvageable() ) { add_msg( m_info, _( "Can't salvage anything from %s." ), it.tname() ); - if( p.rate_action_disassemble( it ) != hint_rating::cant ) { + if( it.is_disassemblable() ) { add_msg( m_info, _( "Try disassembling the %s instead." ), it.tname() ); } return false; @@ -1548,7 +1479,7 @@ int salvage_actor::cut_up( player &p, item &it, item_location &cut ) const // What material components can we get back? std::vector cut_material_components = cut.get_item()->made_of(); // What materials do we salvage (ids and counts). - std::map materials_salvaged; + std::map materials_salvaged; // Final just in case check (that perhaps was not done elsewhere); if( cut.get_item() == &it ) { @@ -1610,7 +1541,7 @@ int salvage_actor::cut_up( player &p, item &it, item_location &cut ) const p.reset_encumbrance(); for( const auto &salvaged : materials_salvaged ) { - std::string mat_name = salvaged.first; + itype_id mat_name = salvaged.first; int amount = salvaged.second; item result( mat_name, calendar::turn ); if( amount > 0 ) { @@ -1662,7 +1593,7 @@ std::unique_ptr inscribe_actor::clone() const bool inscribe_actor::item_inscription( item &tool, item &cut ) const { - if( !cut.made_of( SOLID ) ) { + if( !cut.made_of( phase_id::SOLID ) ) { add_msg( m_info, _( "You can't inscribe an item that isn't solid!" ) ); return false; } @@ -1724,7 +1655,7 @@ bool inscribe_actor::item_inscription( item &tool, item &cut ) const cut.erase_var( carving_tool ); } else { cut.set_var( carving, message ); - cut.set_var( carving_tool, tool.typeId() ); + cut.set_var( carving_tool, tool.typeId().str() ); } return true; @@ -1858,7 +1789,7 @@ int cauterize_actor::use( player &p, item &it, bool t, const tripoint & ) const } if( flame ) { - p.use_charges( "fire", 4 ); + p.use_charges( itype_fire, 4 ); return 0; } else { @@ -1883,7 +1814,7 @@ ret_val cauterize_actor::can_use( const Character &p, const item &it, bool } if( flame ) { - if( !p.has_charges( "fire", 4 ) ) { + if( !p.has_charges( itype_fire, 4 ) ) { return ret_val::make_failure( _( "You need a source of flame (4 charges worth) before you can cauterize yourself." ) ); } @@ -1903,7 +1834,7 @@ ret_val cauterize_actor::can_use( const Character &p, const item &it, bool void fireweapon_off_actor::load( const JsonObject &obj ) { - target_id = obj.get_string( "target_id" ); + obj.read( "target_id", target_id, true ); success_message = obj.get_string( "success_message", "hsss" ); lacks_fuel_message = obj.get_string( "lacks_fuel_message" ); failure_message = obj.get_string( "failure_message", "hsss" ); @@ -2165,10 +2096,10 @@ int musical_instrument_actor::use( player &p, item &it, bool t, const tripoint & if( morale_effect >= 0 ) { sounds::sound( p.pos(), volume, sounds::sound_t::music, desc, true, "musical_instrument", - it.typeId() ); + it.typeId().str() ); } else { sounds::sound( p.pos(), volume, sounds::sound_t::music, desc, true, "musical_instrument_bad", - it.typeId() ); + it.typeId().str() ); } if( !p.has_effect( effect_music ) && p.can_hear( p.pos(), volume ) ) { @@ -2229,6 +2160,10 @@ int learn_spell_actor::use( player &p, item &, bool, const tripoint & ) const p.add_msg_if_player( _( "It's too dark to read." ) ); return 0; } + if( p.has_trait( trait_id( "ILLITERATE" ) ) ) { + p.add_msg_if_player( _( "You can't read." ) ); + return 0; + } std::vector uilist_initializer; uilist spellbook_uilist; spellbook_callback sp_cb; @@ -2472,7 +2407,8 @@ int holster_actor::use( player &p, item &it, bool, const tripoint & ) const return 0; } // may not strictly be the correct item_location, but plumbing item_location through all iuse_actor::use won't work - game_menus::inv::insert_items( *p.as_avatar(), item_location( p, &it ) ); + item_location item_loc( p, &it ); + game_menus::inv::insert_items( *p.as_avatar(), item_loc ); } return 0; @@ -2491,7 +2427,7 @@ std::unique_ptr ammobelt_actor::clone() const void ammobelt_actor::load( const JsonObject &obj ) { - belt = obj.get_string( "belt" ); + belt = itype_id( obj.get_string( "belt" ) ); } void ammobelt_actor::info( const item &, std::vector &dump ) const @@ -2756,7 +2692,7 @@ int repair_item_actor::repair_recipe_difficulty( const player &pl, int diff = find_repair_difficulty( pl, fix.typeId(), training ); // If we don't find a recipe, see if there's a repairs_like that has a recipe - if( diff == -1 && !fix.type->repairs_like.empty() ) { + if( diff == -1 && !fix.type->repairs_like.is_empty() ) { diff = find_repair_difficulty( pl, fix.type->repairs_like, training ); } @@ -3139,10 +3075,10 @@ void heal_actor::load( const JsonObject &obj ) } if( obj.has_string( "used_up_item" ) ) { - used_up_item_id = obj.get_string( "used_up_item", used_up_item_id ); + obj.read( "used_up_item", used_up_item_id, true ); } else if( obj.has_object( "used_up_item" ) ) { JsonObject u = obj.get_object( "used_up_item" ); - used_up_item_id = u.get_string( "id", used_up_item_id ); + u.read( "id", used_up_item_id, true ); used_up_item_quantity = u.get_int( "quantity", used_up_item_quantity ); used_up_item_charges = u.get_int( "charges", used_up_item_charges ); used_up_item_flags = u.get_tags( "flags" ); @@ -3330,7 +3266,7 @@ int heal_actor::finish_using( player &healer, player &patient, item &it, hp_part patient.add_effect( eff.id, eff.duration, eff.bp, eff.permanent ); } - if( !used_up_item_id.empty() ) { + if( !used_up_item_id.is_empty() ) { // If the item is a tool, `make` it the new form // Otherwise it probably was consumed, so create a new one if( it.is_tool() ) { @@ -3786,7 +3722,7 @@ ret_val saw_barrel_actor::can_use_on( const player &, const item &, const return ret_val::make_failure( _( "The barrel is too short." ) ); } - if( target.gunmod_find( "barrel_small" ) ) { + if( target.gunmod_find( itype_barrel_small ) ) { return ret_val::make_failure( _( "The barrel is already sawn-off." ) ); } @@ -4294,7 +4230,7 @@ int sew_advanced_actor::use( player &p, item &it, bool, const tripoint & ) const tmenu.text = _( "How do you want to modify it?" ); int index = 0; - for( auto cm : clothing_mods ) { + for( const clothing_mod_id &cm : clothing_mods ) { auto obj = cm.obj(); item temp_item = modded_copy( mod, obj.flag ); temp_item.update_clothing_mod_val(); @@ -4311,7 +4247,7 @@ int sew_advanced_actor::use( player &p, item &it, bool, const tripoint & ) const return t; }; // Mod not already present, check if modification is possible - if( it.charges < thread_needed ) { + if( !it.ammo_sufficient( thread_needed ) ) { //~ %1$s: modification desc, %2$d: number of thread needed prompt = string_format( _( "Can't %1$s (need %2$d thread loaded)" ), tolower( obj.implement_prompt ), thread_needed ); diff --git a/src/iuse_actor.h b/src/iuse_actor.h index 5cc7edcb25153..08ddb919df766 100644 --- a/src/iuse_actor.h +++ b/src/iuse_actor.h @@ -33,8 +33,6 @@ struct tripoint; enum hp_part : int; enum body_part : int; class JsonObject; - -using itype_id = std::string; class item_location; struct furn_t; struct itype; @@ -56,10 +54,10 @@ class iuse_transform : public iuse_actor translation msg_transform; /** type of the resulting item */ - std::string target; + itype_id target; /** if set transform item to container and place new item (of type @ref target) inside */ - std::string container; + itype_id container; /** if zero or positive set remaining ammo of @ref target to this (after transformation) */ int ammo_qty = -1; @@ -71,7 +69,7 @@ class iuse_transform : public iuse_actor int countdown = 0; /** if both this and ammo_qty are specified then set @ref target to this specific ammo */ - std::string ammo_type; + itype_id ammo_type; /** used to set the active property of the transformed @ref target */ bool active = false; @@ -218,7 +216,7 @@ class unfold_vehicle_iuse : public iuse_actor std::string unfold_msg; /** Creature::moves it takes to unfold. */ int moves = 0; - std::map tools_needed; + std::map tools_needed; unfold_vehicle_iuse( const std::string &type = "unfold_vehicle" ) : iuse_actor( type ) {} @@ -250,9 +248,9 @@ class consume_drug_iuse : public iuse_actor /** Fields to produce when you take the drug, mostly intended for various kinds of smoke. **/ std::map fields_produced; /** Tool charges needed to take the drug, e.g. fire. **/ - std::map charges_needed; + std::map charges_needed; /** Tools needed, but not consumed, e.g. "smoking apparatus". **/ - std::map tools_needed; + std::map tools_needed; /** An effect or effects (conditions) to give the player for the stated duration. **/ std::vector effects; /** A list of stats and adjustments to them. **/ @@ -329,8 +327,7 @@ class place_monster_iuse : public iuse_actor /** Shown when programming the monster failed and it's hostile. Can be empty. */ std::string hostile_msg; /** Skills used to make the monster not hostile when activated. **/ - skill_id skill1 = skill_id::NULL_ID(); - skill_id skill2 = skill_id::NULL_ID(); + std::set skills; place_monster_iuse() : iuse_actor( "place_monster" ) { } ~place_monster_iuse() override = default; @@ -408,25 +405,6 @@ class ups_based_armor_actor : public iuse_actor std::unique_ptr clone() const override; }; -/** - * This implements lock picking. - */ -class pick_lock_actor : public iuse_actor -{ - public: - /** - * How good the used tool is at picking a lock. - */ - int pick_quality = 0; - - pick_lock_actor() : iuse_actor( "picklock" ) {} - - ~pick_lock_actor() override = default; - void load( const JsonObject &obj ) override; - int use( player &, item &, bool, const tripoint & ) const override; - std::unique_ptr clone() const override; -}; - /** * Implements deployable furniture from items */ @@ -538,6 +516,7 @@ class salvage_actor : public iuse_actor material_id( "faux_fur" ), material_id( "fur" ), material_id( "kevlar" ), + material_id( "kevlar_layered" ), material_id( "kevlar_rigid" ), material_id( "leather" ), material_id( "lycra" ), @@ -629,7 +608,7 @@ class cauterize_actor : public iuse_actor class fireweapon_off_actor : public iuse_actor { public: - std::string target_id; + itype_id target_id; std::string success_message; std::string lacks_fuel_message; std::string failure_message; // Due to bad roll @@ -937,7 +916,7 @@ class heal_actor : public iuse_actor * If the used item is a tool it, it will be turned into the used up item. * If it is not a tool a new item with this id will be created. */ - std::string used_up_item_id; + itype_id used_up_item_id; int used_up_item_quantity = 1; int used_up_item_charges = 1; std::set used_up_item_flags; diff --git a/src/iuse_software.cpp b/src/iuse_software.cpp index 3d96ded5d1a42..f323017b897fa 100644 --- a/src/iuse_software.cpp +++ b/src/iuse_software.cpp @@ -24,13 +24,7 @@ bool play_videogame( const std::string &function_name, return true; // generic game } if( function_name == "robot_finds_kitten" ) { - catacurses::window bkatwin = catacurses::newwin( 22, 62, point( ( TERMX - 62 ) / 2, - ( TERMY - 22 ) / 2 ) ); - draw_border( bkatwin ); - wrefresh( bkatwin ); - catacurses::window katwin = catacurses::newwin( 20, 60, point( ( TERMX - 60 ) / 2, - ( TERMY - 20 ) / 2 ) ); - robot_finds_kitten findkitten( katwin ); + robot_finds_kitten findkitten; bool foundkitten = findkitten.ret; if( foundkitten ) { game_data["end_message"] = _( "You found kitten!" ); diff --git a/src/iuse_software_kitten.cpp b/src/iuse_software_kitten.cpp index 3d623d9ef9414..20ba8cb642647 100644 --- a/src/iuse_software_kitten.cpp +++ b/src/iuse_software_kitten.cpp @@ -3,7 +3,6 @@ #include // Needed for rand() #include -#include "cursesdef.h" #include "input.h" #include "output.h" #include "posix_time.h" @@ -14,7 +13,7 @@ #define EMPTY (-1) #define ROBOT 0 #define KITTEN 1 -std::string robot_finds_kitten::getmessage( int idx ) +std::string robot_finds_kitten::getmessage( int idx ) const { std::string rfimessages[MAXMESSAGES] = { _( "\"I pity the fool who mistakes me for kitten!\", sez Mr. T." ), @@ -227,18 +226,13 @@ std::string robot_finds_kitten::getmessage( int idx ) } } -robot_finds_kitten::robot_finds_kitten( const catacurses::window &w ) +robot_finds_kitten::robot_finds_kitten() { -#if defined(__ANDROID__) - input_context ctxt( "IUSE_SOFTWARE_KITTEN" ); -#endif - ret = false; char ktile[83] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#&()*+./:;=?![]{|}y"; int used_messages[MAXMESSAGES]; - const int numbogus = 20; nummessages = 201; // NOLINTNEXTLINE(cata-use-named-point-constants) empty.pos = point( -1, -1 ); @@ -307,198 +301,217 @@ robot_finds_kitten::robot_finds_kitten( const catacurses::window &w ) used_messages[index] = 1; } - instructions( w ); - - werase( w ); - mvwprintz( w, point_zero, c_white, _( "robotfindskitten v22July2008 - press q to quit." ) ); - for( int c = 0; c < rfkCOLS; c++ ) { - mvwputch( w, point( c, 2 ), BORDER_COLOR, '_' ); - } - wmove( w, kitten.pos ); - draw_kitten( w ); - - for( int c = 0; c < numbogus; c++ ) { - mvwputch( w, bogus[c].pos, bogus[c].color, bogus[c].character ); - } + ui_adaptor ui; + ui.on_screen_resize( [this]( ui_adaptor & ui ) { + bkatwin = catacurses::newwin( rfkLINES + 2, rfkCOLS + 2, + point( ( TERMX - rfkCOLS - 2 ) / 2, ( TERMY - rfkLINES - 2 ) / 2 ) ); + w = catacurses::newwin( rfkLINES, rfkCOLS, + point( ( TERMX - rfkCOLS ) / 2, ( TERMY - rfkLINES ) / 2 ) ); + ui.position_from_window( bkatwin ); + } ); + ui.mark_resize(); - wmove( w, robot.pos ); - draw_robot( w ); - point old_pos = robot.pos; - - wrefresh( w ); - - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + ui.on_redraw( [this]( const ui_adaptor & ) { + show(); + } ); /* Now the fun begins. */ - // TODO: use input context - int input = inp_mngr.get_input_event().get_first_input(); - - while( input != 'q' && input != 'Q' && input != KEY_ESCAPE ) { - process_input( input, w ); - if( ret ) { - break; - } - /* Redraw robot, where available */ - if( old_pos != robot.pos ) { - wmove( w, old_pos ); - wputch( w, c_white, ' ' ); - wmove( w, robot.pos ); - draw_robot( w ); - rfkscreen[old_pos.x][old_pos.y] = EMPTY; - rfkscreen[robot.pos.x][robot.pos.y] = ROBOT; - old_pos = robot.pos; - } - wrefresh( w ); - // TODO: use input context / rewrite loop so this is only called at one place - input = inp_mngr.get_input_event().get_first_input(); + current_ui_state = ui_state::instructions; + while( current_ui_state != ui_state::exit ) { + ui_manager::redraw(); + process_input(); } } -void robot_finds_kitten::instructions( const catacurses::window &w ) +void robot_finds_kitten::show() const { - int pos = 1; - // NOLINTNEXTLINE(cata-use-named-point-constants) - pos += fold_and_print( w, point( 1, 0 ), getmaxx( w ) - 4, c_light_gray, - _( "robotfindskitten v22July2008" ) ); - pos += 1 + fold_and_print( w, point( 1, pos ), getmaxx( w ) - 4, c_light_gray, - _( "Originally by the illustrious Leonard Richardson, " - "rewritten in PDCurses by Joseph Larson, " - "ported to CDDA gaming system by a nutcase." ) ); + input_context ctxt( "IUSE_SOFTWARE_KITTEN" ); - pos += 1 + fold_and_print( w, point( 1, pos ), getmaxx( w ) - 4, c_light_gray, - _( "In this game, you are robot (" ) ); - draw_robot( w ); - wprintz( w, c_light_gray, _( ")." ) ); - pos += 1 + fold_and_print( w, point( 1, pos ), getmaxx( w ) - 4, c_light_gray, - _( "Your job is to find kitten. This task is complicated by the existence of various things " - "which are not kitten. Robot must touch items to determine if they are kitten or not. " - "The game ends when robot finds kitten. Alternatively, you may end the game by hitting " - "'q', 'Q' or the Escape key." ) ); - fold_and_print( w, point( 1, pos ), getmaxx( w ) - 4, c_light_gray, - _( "Press any key to start." ) ); - wrefresh( w ); - inp_mngr.wait_for_any_key(); -} + draw_border( bkatwin ); + wnoutrefresh( bkatwin ); -void robot_finds_kitten::process_input( int input, const catacurses::window &w ) -{ - timespec ts; - ts.tv_sec = 1; - ts.tv_nsec = 0; + werase( w ); + if( current_ui_state != ui_state::instructions ) { + for( int c = 0; c < rfkCOLS; c++ ) { + mvwputch( w, point( c, 2 ), BORDER_COLOR, '_' ); + } + wmove( w, kitten.pos ); + draw_kitten(); - point check = robot.pos; + for( int c = 0; c < numbogus; c++ ) { + mvwputch( w, bogus[c].pos, bogus[c].color, bogus[c].character ); + } - switch( input ) { - case KEY_UP: /* up */ - check.y--; - break; - case KEY_DOWN: /* down */ - check.y++; + wmove( w, robot.pos ); + draw_robot(); + } + switch( current_ui_state ) { + case ui_state::instructions: { + int pos = 1; + // NOLINTNEXTLINE(cata-use-named-point-constants) + pos += fold_and_print( w, point( 1, 0 ), getmaxx( w ) - 4, c_light_gray, + _( "robotfindskitten v22July2008" ) ); + pos += 1 + fold_and_print( w, point( 1, pos ), getmaxx( w ) - 4, c_light_gray, + _( "Originally by the illustrious Leonard Richardson, " + "rewritten in PDCurses by Joseph Larson, " + "ported to CDDA gaming system by a nutcase." ) ); + + pos += 1 + fold_and_print( w, point( 1, pos ), getmaxx( w ) - 4, c_light_gray, + _( "In this game, you are robot (" ) ); + draw_robot(); + wprintz( w, c_light_gray, _( ")." ) ); + pos += 1 + fold_and_print( w, point( 1, pos ), getmaxx( w ) - 4, c_light_gray, + _( "Your job is to find kitten. This task is complicated by the existence of various things " + "which are not kitten. Robot must touch items to determine if they are kitten or not. " + "The game ends when robot finds kitten. Alternatively, you may end the game by hitting %s." ), + ctxt.get_desc( "QUIT" ) ); + fold_and_print( w, point( 1, pos ), getmaxx( w ) - 4, c_light_gray, + _( "Press any key to start." ) ); break; - case KEY_LEFT: /* left */ - check.x--; + } + case ui_state::main: + mvwprintz( w, point_zero, c_white, _( "robotfindskitten v22July2008 - press %s to quit." ), + ctxt.get_desc( "QUIT" ) ); break; - case KEY_RIGHT: /* right */ - check.x++; + case ui_state::invalid_input: + mvwprintz( w, point_zero, c_white, _( "Invalid command: Use direction keys or press %s to quit." ), + ctxt.get_desc( "QUIT" ) ); break; - case 0: + case ui_state::bogus_message: { + std::vector bogusvstr = foldstring( getmessage( bogus_message_idx ), rfkCOLS ); + for( size_t c = 0; c < bogusvstr.size(); c++ ) { + mvwprintz( w, point( 0, c ), c_white, bogusvstr[c] ); + } break; - default: { /* invalid command */ - for( int c = 0; c < rfkCOLS; c++ ) { - mvwputch( w, point( c, 0 ), c_white, ' ' ); - mvwputch( w, point( c, 1 ), c_white, ' ' ); + } + case ui_state::end_animation: { + /* The grand cinema scene. */ + const int c = std::min( end_animation_frame, 3 ); + wmove( w, point( rfkCOLS / 2 - 4 + c, 1 ) ); + if( end_animation_last_input_left_or_up ) { + draw_kitten(); + } else { + draw_robot(); + } + wmove( w, point( rfkCOLS / 2 + 3 - c, 1 ) ); + if( end_animation_last_input_left_or_up ) { + draw_robot(); + } else { + draw_kitten(); + } + if( end_animation_frame >= 4 ) { + /* They're in love! */ + mvwprintz( w, point( ( rfkCOLS - 6 ) / 2 - 1, 0 ), c_light_red, "<3<3<3" ); } - mvwprintz( w, point_zero, c_white, _( "Invalid command: Use direction keys or press 'q'." ) ); - return; + if( end_animation_frame >= 5 ) { + mvwprintz( w, point_zero, c_white, _( "You found kitten! Way to go, robot!" ) ); + } + break; } + case ui_state::exit: + break; } + wnoutrefresh( w ); +} - constexpr rectangle bounds( point( 0, 3 ), point( rfkCOLS, rfkLINES ) ); - if( !bounds.contains_half_open( check ) ) { - return; - } - - if( rfkscreen[check.x][check.y] != EMPTY ) { - switch( rfkscreen[check.x][check.y] ) { - case ROBOT: - /* We didn't move. */ - break; - case KITTEN: {/* Found it! */ - for( int c = 0; c < rfkCOLS; c++ ) { - mvwputch( w, point( c, 0 ), c_white, ' ' ); +void robot_finds_kitten::process_input() +{ + input_context ctxt( "IUSE_SOFTWARE_KITTEN" ); + ctxt.register_action( "QUIT" ); + ctxt.register_action( "HELP_KEYBINDINGS" ); + ctxt.register_action( "ANY_INPUT" ); + switch( current_ui_state ) { + case ui_state::instructions: { + const std::string action = ctxt.handle_input(); + if( action == "QUIT" ) { + current_ui_state = ui_state::exit; + } else if( action == "ANY_INPUT" && !ctxt.get_raw_input().sequence.empty() ) { + current_ui_state = ui_state::main; + } + break; + } + case ui_state::main: + case ui_state::invalid_input: + case ui_state::bogus_message: { + ctxt.register_cardinal(); + const std::string action = ctxt.handle_input(); + if( action == "QUIT" ) { + current_ui_state = ui_state::exit; + } else if( action == "ANY_INPUT" ) { + if( !ctxt.get_raw_input().sequence.empty() ) { + current_ui_state = ui_state::invalid_input; } - - /* The grand cinema scene. */ - for( int c = 0; c <= 3; c++ ) { - - wmove( w, point( rfkCOLS / 2 - 5 + c, 1 ) ); - wputch( w, c_white, ' ' ); - wmove( w, point( rfkCOLS / 2 + 4 - c, 1 ) ); - wputch( w, c_white, ' ' ); - wmove( w, point( rfkCOLS / 2 - 4 + c, 1 ) ); - if( input == KEY_LEFT || input == KEY_UP ) { - draw_kitten( w ); - } else { - draw_robot( w ); - } - wmove( w, point( rfkCOLS / 2 + 3 - c, 1 ) ); - if( input == KEY_LEFT || input == KEY_UP ) { - draw_robot( w ); - } else { - draw_kitten( w ); - } - wrefresh( w ); - refresh_display(); - nanosleep( &ts, nullptr ); + } else if( action != "HELP_KEYBINDINGS" ) { + current_ui_state = ui_state::main; + point check = robot.pos; + + if( action == "UP" ) { + check.y--; + } else if( action == "DOWN" ) { + check.y++; + } else if( action == "LEFT" ) { + check.x--; + } else if( action == "RIGHT" ) { + check.x++; } - /* They're in love! */ - mvwprintz( w, point( ( rfkCOLS - 6 ) / 2 - 1, 0 ), c_light_red, "<3<3<3" ); - wrefresh( w ); - refresh_display(); - nanosleep( &ts, nullptr ); - for( int c = 0; c < rfkCOLS; c++ ) { - mvwputch( w, point( c, 0 ), c_white, ' ' ); - mvwputch( w, point( c, 1 ), c_white, ' ' ); + constexpr rectangle bounds( point( 0, 3 ), point( rfkCOLS, rfkLINES ) ); + if( !bounds.contains_half_open( check ) ) { + /* Can't move past edge */ + } else if( rfkscreen[check.x][check.y] != EMPTY ) { + switch( rfkscreen[check.x][check.y] ) { + case ROBOT: + /* We didn't move. */ + break; + case KITTEN: + /* Found it! */ + ret = true; + current_ui_state = ui_state::end_animation; + end_animation_frame = 0; + end_animation_last_input_left_or_up = action == "UP" || action == "LEFT"; + break; + default: + current_ui_state = ui_state::bogus_message; + bogus_message_idx = bogus_messages[rfkscreen[check.x][check.y] - 2]; + break; + } + } else { + /* Otherwise, move the robot. */ + rfkscreen[robot.pos.x][robot.pos.y] = EMPTY; + robot.pos = check; + rfkscreen[robot.pos.x][robot.pos.y] = ROBOT; } - mvwprintz( w, point_zero, c_white, _( "You found kitten! Way to go, robot!" ) ); - wrefresh( w ); - refresh_display(); - ret = true; - inp_mngr.wait_for_any_key(); } break; - - default: { - for( int c = 0; c < rfkCOLS; c++ ) { - mvwputch( w, point( c, 0 ), c_white, ' ' ); - mvwputch( w, point( c, 1 ), c_white, ' ' ); - } - std::vector bogusvstr = foldstring( getmessage( - bogus_messages[rfkscreen[check.x][check.y] - 2] ), rfkCOLS ); - for( size_t c = 0; c < bogusvstr.size(); c++ ) { - mvwprintw( w, point( 0, c ), bogusvstr[c] ); + } + case ui_state::end_animation: + if( end_animation_frame + 1 == num_end_animation_frames ) { + const std::string action = ctxt.handle_input(); + if( action != "HELP_KEYBINDINGS" ) { + current_ui_state = ui_state::exit; } - wrefresh( w ); + } else { + refresh_display(); + end_animation_frame++; + timespec ts; + ts.tv_sec = 1; + ts.tv_nsec = 0; + nanosleep( &ts, nullptr ); } break; - } - wmove( w, point( 0, 2 ) ); - return; + case ui_state::exit: + break; } - /* Otherwise, move the robot. */ - robot.pos = check; } -void robot_finds_kitten::draw_robot( const catacurses::window - &w ) /* Draws robot at current position */ +/* Draws robot at current position */ +void robot_finds_kitten::draw_robot() const { wputch( w, robot.color, robot.character ); } -void robot_finds_kitten::draw_kitten( const catacurses::window - &w ) /* Draws kitten at current position */ +/* Draws kitten at current position */ +void robot_finds_kitten::draw_kitten() const { wputch( w, kitten.color, kitten.character ); } diff --git a/src/iuse_software_kitten.h b/src/iuse_software_kitten.h index e2adc1791b822..266eb264f49f8 100644 --- a/src/iuse_software_kitten.h +++ b/src/iuse_software_kitten.h @@ -5,12 +5,10 @@ #include #include "color.h" +#include "cursesdef.h" #include "point.h" -namespace catacurses -{ -class window; -} // namespace catacurses +class ui_adaptor; struct kobject { point pos; @@ -24,21 +22,40 @@ class robot_finds_kitten { public: bool ret; - std::string getmessage( int idx ); - robot_finds_kitten( const catacurses::window &w ); - void instructions( const catacurses::window &w ); - void draw_robot( const catacurses::window &w ); - void draw_kitten( const catacurses::window &w ); - void process_input( int input, const catacurses::window &w ); + robot_finds_kitten(); + private: + std::string getmessage( int idx ) const; + void draw_robot() const; + void draw_kitten() const; + void show() const; + void process_input(); + catacurses::window bkatwin; + catacurses::window w; kobject robot; kobject kitten; kobject empty; + static constexpr int numbogus = 20; kobject bogus[MAXMESSAGES]; static constexpr int rfkLINES = 20; static constexpr int rfkCOLS = 60; int rfkscreen[rfkCOLS][rfkLINES]; int nummessages; int bogus_messages[MAXMESSAGES]; + + enum class ui_state : int { + instructions, + main, + invalid_input, + bogus_message, + end_animation, + exit, + }; + ui_state current_ui_state = ui_state::instructions; + + int bogus_message_idx = 0; + int end_animation_frame = 0; + static constexpr int num_end_animation_frames = 6; + bool end_animation_last_input_left_or_up = false; }; #endif // CATA_SRC_IUSE_SOFTWARE_KITTEN_H diff --git a/src/iuse_software_lightson.cpp b/src/iuse_software_lightson.cpp index 87708ff8f6ac1..d1b027866267e 100644 --- a/src/iuse_software_lightson.cpp +++ b/src/iuse_software_lightson.cpp @@ -42,9 +42,6 @@ void lightson_game::reset_level() } ); position = point_zero; - - werase( w ); - draw_border( w ); } bool lightson_game::get_value_at( const point &pt ) @@ -64,6 +61,8 @@ void lightson_game::toggle_value_at( const point &pt ) void lightson_game::draw_level() { + werase( w ); + draw_border( w ); for( int i = 0; i < level_size.y; i++ ) { for( int j = 0; j < level_size.x; j++ ) { point current = point( j, i ); @@ -74,7 +73,7 @@ void lightson_game::draw_level() mvwputch( w, current + point_south_east, selected ? hilite( c_white ) : fg, symbol ); } } - wrefresh( w ); + wnoutrefresh( w ); } void lightson_game::generate_change_coords( int changes ) @@ -130,11 +129,16 @@ void lightson_game::toggle_lights_at( const point &pt ) int lightson_game::start_game() { const int w_height = 15; - const int iOffsetX = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; - const int iOffsetY = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; - w_border = catacurses::newwin( w_height, FULL_SCREEN_WIDTH, point( iOffsetX, iOffsetY ) ); - w = catacurses::newwin( w_height - 6, FULL_SCREEN_WIDTH - 2, point( iOffsetX + 1, iOffsetY + 1 ) ); - draw_border( w_border ); + + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + const int iOffsetX = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; + const int iOffsetY = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; + w_border = catacurses::newwin( w_height, FULL_SCREEN_WIDTH, point( iOffsetX, iOffsetY ) ); + w = catacurses::newwin( w_height - 6, FULL_SCREEN_WIDTH - 2, point( iOffsetX + 1, iOffsetY + 1 ) ); + ui.position_from_window( w_border ); + } ); + ui.mark_resize(); input_context ctxt( "LIGHTSON" ); ctxt.register_directions(); @@ -142,45 +146,49 @@ int lightson_game::start_game() ctxt.register_action( "TOGGLE_5" ); ctxt.register_action( "RESET" ); ctxt.register_action( "QUIT" ); + ctxt.register_action( "HELP_KEYBINDINGS" ); + + ui.on_redraw( [&]( const ui_adaptor & ) { + std::vector shortcuts; + shortcuts.push_back( _( " toggle lights" ) ); + shortcuts.push_back( _( "eset" ) ); + shortcuts.push_back( _( "uit" ) ); + + int iWidth = 0; + for( auto &shortcut : shortcuts ) { + if( iWidth > 0 ) { + iWidth += 1; + } + iWidth += utf8_width( shortcut ); + } - std::vector shortcuts; - shortcuts.push_back( _( " toggle lights" ) ); - shortcuts.push_back( _( "eset" ) ); - shortcuts.push_back( _( "uit" ) ); - - int iWidth = 0; - for( auto &shortcut : shortcuts ) { - if( iWidth > 0 ) { - iWidth += 1; + werase( w_border ); + draw_border( w_border ); + int iPos = FULL_SCREEN_WIDTH - iWidth - 1; + for( auto &shortcut : shortcuts ) { + shortcut_print( w_border, point( iPos, 0 ), c_white, c_light_green, shortcut ); + iPos += utf8_width( shortcut ) + 1; } - iWidth += utf8_width( shortcut ); - } - int iPos = FULL_SCREEN_WIDTH - iWidth - 1; - for( auto &shortcut : shortcuts ) { - shortcut_print( w_border, point( iPos, 0 ), c_white, c_light_green, shortcut ); - iPos += utf8_width( shortcut ) + 1; - } + mvwputch( w_border, point( 2, 0 ), hilite( c_white ), _( "Lights on!" ) ); + fold_and_print( w_border, point( 2, w_height - 5 ), FULL_SCREEN_WIDTH - 4, c_light_gray, + "%s\n%s\n%s", _( "Game goal: Switch all the lights on." ), + _( "Legend: # on, - off." ), + _( "Toggle lights switches selected light and 4 its neighbors." ) ); - mvwputch( w_border, point( 2, 0 ), hilite( c_white ), _( "Lights on!" ) ); - fold_and_print( w_border, point( 2, w_height - 5 ), FULL_SCREEN_WIDTH - 4, c_light_gray, - "%s\n%s\n%s", _( "Game goal: Switch all the lights on." ), - _( "Legend: # on, - off." ), - _( "Toggle lights switches selected light and 4 its neighbors." ) ); + wnoutrefresh( w_border ); - wrefresh( w_border ); + draw_level(); + } ); win = true; int hasWon = 0; - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); - do { if( win ) { new_level(); - draw_level(); } + ui_manager::redraw(); std::string action = ctxt.handle_input(); if( const cata::optional vec = ctxt.get_direction( action ) ) { position.y = clamp( position.y + vec->y, 0, level_size.y - 1 ); @@ -189,7 +197,7 @@ int lightson_game::start_game() toggle_lights(); win = check_win(); if( win ) { - draw_level(); + ui.invalidate_ui(); popup_top( _( "Congratulations, you won!" ) ); hasWon++; } @@ -198,7 +206,6 @@ int lightson_game::start_game() } else if( action == "QUIT" ) { break; } - draw_level(); } while( true ); return hasWon; diff --git a/src/iuse_software_minesweeper.cpp b/src/iuse_software_minesweeper.cpp index 00df08856281a..984ff66da83c0 100644 --- a/src/iuse_software_minesweeper.cpp +++ b/src/iuse_software_minesweeper.cpp @@ -28,16 +28,8 @@ minesweeper_game::minesweeper_game() offset = point_zero; } -void minesweeper_game::new_level( const catacurses::window &w_minesweeper ) +void minesweeper_game::new_level() { - max.y = getmaxy( w_minesweeper ) - 2; - max.x = getmaxx( w_minesweeper ) - 2; - - werase( w_minesweeper ); - - mLevel.clear(); - mLevelReveal.clear(); - auto set_num = [&]( const std::string & sType, int &iVal, const int iMin, const int iMax ) { const std::string desc = string_format( _( "Min: %d Max: %d" ), iMin, iMax ); @@ -78,38 +70,44 @@ void minesweeper_game::new_level( const catacurses::window &w_minesweeper ) break; case 3: default: - level = min; + point new_level = min; - set_num( _( "Level width:" ), level.x, min.x, max.x ); - set_num( _( "Level height:" ), level.y, min.y, max.y ); + set_num( _( "Level width:" ), new_level.x, min.x, max.x ); + set_num( _( "Level height:" ), new_level.y, min.y, max.y ); - const int area = level.x * level.y; - iBombs = area * 0.1; + const int area = new_level.x * new_level.y; + int new_ibombs = area * 0.1; - set_num( _( "Number of bombs:" ), iBombs, iBombs, area * 0.6 ); + set_num( _( "Number of bombs:" ), new_ibombs, new_ibombs, area * 0.6 ); + + level = new_level; + iBombs = new_ibombs; break; } // NOLINTNEXTLINE(cata-use-named-point-constants) offset = ( max - level ) / 2 + point( 1, 1 ); + mLevel.clear(); + mLevelReveal.clear(); + int iRandX; int iRandY; for( int i = 0; i < iBombs; i++ ) { do { iRandX = rng( 0, level.x - 1 ); iRandY = rng( 0, level.y - 1 ); - } while( mLevel[iRandY][iRandX] == static_cast( bomb ) ); + } while( mLevel[iRandY][iRandX] == bomb ); - mLevel[iRandY][iRandX] = static_cast( bomb ); + mLevel[iRandY][iRandX] = bomb; } for( int y = 0; y < level.y; y++ ) { for( int x = 0; x < level.x; x++ ) { - if( mLevel[y][x] == static_cast( bomb ) ) { + if( mLevel[y][x] == bomb ) { for( const point &p : closest_points_first( {x, y}, 1 ) ) { if( p.x >= 0 && p.x < level.x && p.y >= 0 && p.y < level.y ) { - if( mLevel[p.y][p.x] != static_cast( bomb ) ) { + if( mLevel[p.y][p.x] != bomb ) { mLevel[p.y][p.x]++; } } @@ -117,16 +115,6 @@ void minesweeper_game::new_level( const catacurses::window &w_minesweeper ) } } } - - for( int y = 0; y < level.y; y++ ) { - mvwputch( w_minesweeper, offset + point( 0, y ), c_white, std::string( level.x, '#' ) ); - } - - mvwputch( w_minesweeper, offset, hilite( c_white ), "#" ); - - draw_custom_border( w_minesweeper, 1, 1, 1, 1, 1, 1, 1, 1, BORDER_COLOR, - // NOLINTNEXTLINE(cata-use-named-point-constants) - offset + point( -1, -1 ), level.y + 2, level.x + 2 ); } bool minesweeper_game::check_win() @@ -134,7 +122,7 @@ bool minesweeper_game::check_win() for( int y = 0; y < level.y; y++ ) { for( int x = 0; x < level.x; x++ ) { if( ( mLevelReveal[y][x] == flag || mLevelReveal[y][x] == unknown ) && - mLevel[y][x] != static_cast( bomb ) ) { + mLevel[y][x] != bomb ) { return false; } } @@ -145,38 +133,22 @@ bool minesweeper_game::check_win() int minesweeper_game::start_game() { - const int iCenterX = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; - const int iCenterY = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; - - catacurses::window w_minesweeper_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( iCenterX, iCenterY ) ); - catacurses::window w_minesweeper = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, - FULL_SCREEN_WIDTH - 2, point( iCenterX + 1, iCenterY + 1 ) ); - - draw_border( w_minesweeper_border ); - - std::vector shortcuts; - shortcuts.push_back( _( "ew level" ) ); - shortcuts.push_back( _( "lag" ) ); - shortcuts.push_back( _( "uit" ) ); - - int iWidth = 0; - for( auto &shortcut : shortcuts ) { - if( iWidth > 0 ) { - iWidth += 1; - } - iWidth += utf8_width( shortcut ); - } - - int iPos = FULL_SCREEN_WIDTH - iWidth - 1; - for( auto &shortcut : shortcuts ) { - shortcut_print( w_minesweeper_border, point( iPos, 0 ), c_white, c_light_green, shortcut ); - iPos += utf8_width( shortcut ) + 1; - } - - mvwputch( w_minesweeper_border, point( 2, 0 ), hilite( c_white ), _( "Minesweeper" ) ); - - wrefresh( w_minesweeper_border ); + catacurses::window w_minesweeper_border; + catacurses::window w_minesweeper; + + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + const int iCenterX = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; + const int iCenterY = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; + + w_minesweeper_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + point( iCenterX, iCenterY ) ); + w_minesweeper = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, + point( iCenterX + 1, iCenterY + 1 ) ); + max = point( FULL_SCREEN_WIDTH - 4, FULL_SCREEN_HEIGHT - 4 ); + ui.position_from_window( w_minesweeper_border ); + } ); + ui.mark_resize(); input_context ctxt( "MINESWEEPER" ); ctxt.register_cardinal(); @@ -204,6 +176,89 @@ int minesweeper_game::start_game() int iPlayerY = 0; int iPlayerX = 0; + bool started = false; + bool boom = false; + ui.on_redraw( [&]( const ui_adaptor & ) { + werase( w_minesweeper_border ); + draw_border( w_minesweeper_border ); + + std::vector shortcuts; + shortcuts.push_back( _( "ew level" ) ); + shortcuts.push_back( _( "lag" ) ); + shortcuts.push_back( _( "uit" ) ); + + int iWidth = 0; + for( auto &shortcut : shortcuts ) { + if( iWidth > 0 ) { + iWidth += 1; + } + iWidth += utf8_width( shortcut ); + } + + int iPos = FULL_SCREEN_WIDTH - iWidth - 1; + for( auto &shortcut : shortcuts ) { + shortcut_print( w_minesweeper_border, point( iPos, 0 ), c_white, c_light_green, shortcut ); + iPos += utf8_width( shortcut ) + 1; + } + + mvwputch( w_minesweeper_border, point( 2, 0 ), hilite( c_white ), _( "Minesweeper" ) ); + + wnoutrefresh( w_minesweeper_border ); + + if( !started ) { + return; + } + + werase( w_minesweeper ); + draw_custom_border( w_minesweeper, 1, 1, 1, 1, 1, 1, 1, 1, BORDER_COLOR, + // NOLINTNEXTLINE(cata-use-named-point-constants) + offset + point( -1, -1 ), level.y + 2, level.x + 2 ); + for( int y = 0; y < level.y; ++y ) { + for( int x = 0; x < level.x; ++x ) { + char ch = '?'; + nc_color col = c_red; + const int num = mLevel[y][x]; + switch( mLevelReveal[y][x] ) { + case unknown: + if( boom && num == bomb ) { + ch = '*'; + col = h_red; + } else { + ch = '#'; + col = c_white; + } + break; + case flag: + ch = '!'; + if( boom && num == bomb ) { + col = h_red; + } else { + col = c_yellow; + } + break; + case seen: { + if( num == bomb ) { + ch = '*'; + col = boom ? h_red : c_red; + } else if( num == 0 ) { + ch = ' '; + col = aColors[num]; + } else if( num >= 1 && num <= 8 ) { + ch = '0' + num; + col = aColors[num]; + } + break; + } + } + if( !boom && iPlayerX == x && iPlayerY == y ) { + col = hilite( col ); + } + mvwputch( w_minesweeper, offset + point( x, y ), col, ch ); + } + } + wnoutrefresh( w_minesweeper ); + } ); + std::function rec_reveal = [&]( const int y, const int x ) { if( mLevelReveal[y][x] == unknown || mLevelReveal[y][x] == flag ) { mLevelReveal[y][x] = seen; @@ -216,108 +271,72 @@ int minesweeper_game::start_game() } } } + } + } + }; - mvwputch( w_minesweeper, offset + point( x, y ), c_black, " " ); - - } else { - mvwputch( w_minesweeper, offset + point( x, y ), - x == iPlayerX && y == iPlayerY ? hilite( aColors[mLevel[y][x]] ) : aColors[mLevel[y][x]], - to_string( mLevel[y][x] ) ); + const auto &reveal_all = [&]() { + for( int y = 0; y < level.y; ++y ) { + for( int x = 0; x < level.x; ++x ) { + if( mLevelReveal[y][x] == unknown || ( mLevelReveal[y][x] == flag && mLevel[y][x] != bomb ) ) { + mLevelReveal[y][x] = seen; + } } } }; std::string action = "NEW"; - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); - do { if( action == "NEW" ) { - new_level( w_minesweeper ); + new_level(); iPlayerY = 0; iPlayerX = 0; - } - wrefresh( w_minesweeper ); + started = true; + boom = false; + } if( check_win() ) { + reveal_all(); + ui.invalidate_ui(); popup_top( _( "Congratulations, you won!" ) ); iScore = 30; action = "QUIT"; } else { + ui_manager::redraw(); action = ctxt.handle_input(); } if( const cata::optional vec = ctxt.get_direction( action ) ) { - if( iPlayerX + vec->x >= 0 && iPlayerX + vec->x < level.x && iPlayerY + vec->y >= 0 && - iPlayerY + vec->y < level.y ) { - - std::string sGlyph; - - for( int i = 0; i < 2; i++ ) { - nc_color cColor = c_white; - if( mLevelReveal[iPlayerY][iPlayerX] == flag ) { - sGlyph = "!"; - cColor = c_yellow; - } else if( mLevelReveal[iPlayerY][iPlayerX] == seen ) { - if( mLevel[iPlayerY][iPlayerX] == 0 ) { - sGlyph = " "; - cColor = c_black; - } else { - sGlyph = to_string( mLevel[iPlayerY][iPlayerX] ); - cColor = aColors[mLevel[iPlayerY][iPlayerX]]; - } - } else { - sGlyph = '#'; - } - - mvwputch( w_minesweeper, offset + point( iPlayerX, iPlayerY ), - i == 0 ? cColor : hilite( cColor ), sGlyph ); - - if( i == 0 ) { - iPlayerX += vec->x; - iPlayerY += vec->y; - } - } + const int new_x = iPlayerX + vec->x; + const int new_y = iPlayerY + vec->y; + if( new_x >= 0 && new_x < level.x && new_y >= 0 && new_y < level.y ) { + iPlayerX = new_x; + iPlayerY = new_y; } } else if( action == "FLAG" ) { if( mLevelReveal[iPlayerY][iPlayerX] == unknown ) { mLevelReveal[iPlayerY][iPlayerX] = flag; - mvwputch( w_minesweeper, offset + point( iPlayerX, iPlayerY ), hilite( c_yellow ), - "!" ); - } else if( mLevelReveal[iPlayerY][iPlayerX] == flag ) { mLevelReveal[iPlayerY][iPlayerX] = unknown; - mvwputch( w_minesweeper, offset + point( iPlayerX, iPlayerY ), hilite( c_white ), - "#" ); } } else if( action == "CONFIRM" ) { if( mLevelReveal[iPlayerY][iPlayerX] != seen ) { - if( mLevel[iPlayerY][iPlayerX] == static_cast( bomb ) ) { - for( int y = 0; y < level.y; y++ ) { - for( int x = 0; x < level.x; x++ ) { - if( mLevel[y][x] == static_cast( bomb ) ) { - mvwputch( w_minesweeper, offset + point( x, y ), hilite( c_red ), - mLevelReveal[y][x] == flag ? "!" : "*" ); - } - } - } - - wrefresh( w_minesweeper ); - + if( mLevel[iPlayerY][iPlayerX] == bomb ) { + boom = true; + reveal_all(); + ui.invalidate_ui(); popup_top( _( "Boom, you're dead! Better luck next time." ) ); action = "QUIT"; - } else if( mLevelReveal[iPlayerY][iPlayerX] == unknown ) { rec_reveal( iPlayerY, iPlayerX ); } } } - } while( action != "QUIT" ); return iScore; diff --git a/src/iuse_software_minesweeper.h b/src/iuse_software_minesweeper.h index ac1fbfdc5ded8..6301c5205083b 100644 --- a/src/iuse_software_minesweeper.h +++ b/src/iuse_software_minesweeper.h @@ -15,7 +15,7 @@ class minesweeper_game { private: bool check_win(); - void new_level( const catacurses::window &w_minesweeper ); + void new_level(); point max; point min; point level; @@ -23,9 +23,9 @@ class minesweeper_game int iBombs = 0; std::map > mLevel; + static constexpr int bomb = -1; enum reveal { - bomb = -1, unknown, flag, seen diff --git a/src/iuse_software_snake.cpp b/src/iuse_software_snake.cpp index 6fdeeb5de7dab..040770b3b4cc9 100644 --- a/src/iuse_software_snake.cpp +++ b/src/iuse_software_snake.cpp @@ -81,7 +81,7 @@ void snake_game::snake_over( const catacurses::window &w_snake, int iScore ) center_print( w_snake, 17, c_yellow, string_format( _( "TOTAL SCORE: %d" ), iScore ) ); // TODO: print actual bound keys center_print( w_snake, 21, c_white, _( "Press 'q' or ESC to exit." ) ); - wrefresh( w_snake ); + wnoutrefresh( w_snake ); } int snake_game::start_game() @@ -89,18 +89,22 @@ int snake_game::start_game() std::vector > vSnakeBody; std::map > mSnakeBody; - int iOffsetX = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; - int iOffsetY = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; + catacurses::window w_snake; + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + const int iOffsetX = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; + const int iOffsetY = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; - catacurses::window w_snake = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( iOffsetX, iOffsetY ) ); - print_header( w_snake ); + w_snake = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + point( iOffsetX, iOffsetY ) ); + + ui.position_from_window( w_snake ); + } ); + ui.mark_resize(); //Snake start position vSnakeBody.push_back( std::make_pair( FULL_SCREEN_HEIGHT / 2, FULL_SCREEN_WIDTH / 2 ) ); mSnakeBody[FULL_SCREEN_HEIGHT / 2][FULL_SCREEN_WIDTH / 2] = true; - mvwputch( w_snake, point( vSnakeBody.back().second, vSnakeBody[vSnakeBody.size() - 1].first ), - c_white, '#' ); //Snake start direction int iDirY = 0; @@ -117,18 +121,25 @@ int snake_game::start_game() int iFruitPosY = 0; int iFruitPosX = 0; - //Draw Score - print_score( w_snake, iScore ); - input_context ctxt( "SNAKE" ); ctxt.register_cardinal(); ctxt.register_action( "CONFIRM" ); ctxt.register_action( "QUIT" ); ctxt.register_action( "HELP_KEYBINDINGS" ); - ctxt.register_action( "ANY_INPUT" ); - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + ui.on_redraw( [&]( const ui_adaptor & ) { + werase( w_snake ); + print_header( w_snake ); + for( auto it = vSnakeBody.begin(); it != vSnakeBody.end(); ++it ) { + const nc_color col = it + 1 == vSnakeBody.end() ? c_white : c_light_gray; + mvwputch( w_snake, point( it->second, it->first ), col, '#' ); + } + if( iFruitPosX != 0 && iFruitPosY != 0 ) { + mvwputch( w_snake, point( iFruitPosX, iFruitPosY ), c_light_red, '*' ); + } + print_score( w_snake, iScore ); + wnoutrefresh( w_snake ); + } ); do { //Check if we hit a border @@ -175,8 +186,6 @@ int snake_game::start_game() iSnakeBody += 10; iGameSpeed -= 3; - print_score( w_snake, iScore ); - iFruitPosY = 0; iFruitPosX = 0; } @@ -184,27 +193,18 @@ int snake_game::start_game() //Check if we are longer than our max size if( vSnakeBody.size() > iSnakeBody ) { mSnakeBody[vSnakeBody[0].first][vSnakeBody[0].second] = false; - mvwputch( w_snake, point( vSnakeBody[0].second, vSnakeBody[0].first ), c_black, ' ' ); vSnakeBody.erase( vSnakeBody.begin(), vSnakeBody.begin() + 1 ); } - //Draw Snake - mvwputch( w_snake, point( vSnakeBody[vSnakeBody.size() - 1].second, - vSnakeBody[vSnakeBody.size() - 1].first ), c_white, '#' ); - mvwputch( w_snake, point( vSnakeBody[vSnakeBody.size() - 2].second, - vSnakeBody[vSnakeBody.size() - 2].first ), c_light_gray, '#' ); - //On full length add a fruit if( iFruitPosX == 0 && iFruitPosY == 0 ) { do { iFruitPosY = rng( 1, FULL_SCREEN_HEIGHT - 2 ); iFruitPosX = rng( 1, FULL_SCREEN_WIDTH - 2 ); } while( mSnakeBody[iFruitPosY][iFruitPosX] ); - - mvwputch( w_snake, point( iFruitPosX, iFruitPosY ), c_light_red, '*' ); } - wrefresh( w_snake ); + ui_manager::redraw(); const std::string action = ctxt.handle_input( iGameSpeed ); @@ -234,10 +234,16 @@ int snake_game::start_game() } while( true ); - snake_over( w_snake, iScore ); - while( ctxt.handle_input() != "QUIT" ) { - // try again - } + ui.on_redraw( [&]( const ui_adaptor & ) { + snake_over( w_snake, iScore ); + } ); + do { + ui_manager::redraw(); + const std::string action = ctxt.handle_input(); + if( action == "QUIT" ) { + break; + } + } while( true ); return iScore; } diff --git a/src/iuse_software_sokoban.cpp b/src/iuse_software_sokoban.cpp index 50a1e4463bbd6..fcf63697e77fe 100644 --- a/src/iuse_software_sokoban.cpp +++ b/src/iuse_software_sokoban.cpp @@ -160,18 +160,6 @@ int sokoban_game::get_wall_connection( const point &i ) return '#'; } -void sokoban_game::clear_level( const catacurses::window &w_sokoban ) -{ - const int iOffsetX = ( FULL_SCREEN_WIDTH - 2 - mLevelInfo[iCurrentLevel]["MaxLevelX"] ) / 2; - const int iOffsetY = ( FULL_SCREEN_HEIGHT - 2 - mLevelInfo[iCurrentLevel]["MaxLevelY"] ) / 2; - - for( size_t iY = 0; iY < mLevelInfo[iCurrentLevel]["MaxLevelY"]; iY++ ) { - for( size_t iX = 0; iX < mLevelInfo[iCurrentLevel]["MaxLevelX"]; iX++ ) { - mvwputch( w_sokoban, point( iOffsetX + iX, iOffsetY + iY ), c_black, ' ' ); - } - } -} - void sokoban_game::draw_level( const catacurses::window &w_sokoban ) { const int iOffsetX = ( FULL_SCREEN_WIDTH - 2 - mLevelInfo[iCurrentLevel]["MaxLevelX"] ) / 2; @@ -230,15 +218,20 @@ int sokoban_game::start_game() int iDirY = 0; int iDirX = 0; - const int iOffsetX = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; - const int iOffsetY = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; - using namespace std::placeholders; read_from_file( PATH_INFO::sokoban(), std::bind( &sokoban_game::parse_level, this, _1 ) ); - const catacurses::window w_sokoban = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( iOffsetX, iOffsetY ) ); - draw_border( w_sokoban, BORDER_COLOR, _( "Sokoban" ), hilite( c_white ) ); + catacurses::window w_sokoban; + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ) { + const int iOffsetX = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; + const int iOffsetY = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; + w_sokoban = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + point( iOffsetX, iOffsetY ) ); + ui.position_from_window( w_sokoban ); + } ); + ui.mark_resize(); + input_context ctxt( "SOKOBAN" ); ctxt.register_cardinal(); ctxt.register_action( "NEXT" ); @@ -248,30 +241,37 @@ int sokoban_game::start_game() ctxt.register_action( "UNDO" ); ctxt.register_action( "HELP_KEYBINDINGS" ); - std::vector shortcuts; - shortcuts.push_back( _( "<+> next" ) ); // '+': next - shortcuts.push_back( _( "<-> prev" ) ); // '-': prev - shortcuts.push_back( _( "eset" ) ); // 'r': reset - shortcuts.push_back( _( "uit" ) ); // 'q': quit - shortcuts.push_back( _( "ndo move" ) ); // 'u': undo move + ui.on_redraw( [&]( const ui_adaptor & ) { + werase( w_sokoban ); + draw_border( w_sokoban, BORDER_COLOR, _( "Sokoban" ), hilite( c_white ) ); - int indent = 10; - for( auto &shortcut : shortcuts ) { - indent = std::max( indent, utf8_width( shortcut ) + 1 ); - } - indent = std::min( indent, 30 ); + std::vector shortcuts; + shortcuts.push_back( _( "<+> next" ) ); // '+': next + shortcuts.push_back( _( "<-> prev" ) ); // '-': prev + shortcuts.push_back( _( "eset" ) ); // 'r': reset + shortcuts.push_back( _( "uit" ) ); // 'q': quit + shortcuts.push_back( _( "ndo move" ) ); // 'u': undo move - for( size_t i = 0; i < shortcuts.size(); i++ ) { - shortcut_print( w_sokoban, point( FULL_SCREEN_WIDTH - indent, i + 1 ), - c_white, c_light_green, shortcuts[i] ); - } + int indent = 10; + for( auto &shortcut : shortcuts ) { + indent = std::max( indent, utf8_width( shortcut ) + 1 ); + } + indent = std::min( indent, 30 ); + + for( size_t i = 0; i < shortcuts.size(); i++ ) { + shortcut_print( w_sokoban, point( FULL_SCREEN_WIDTH - indent, i + 1 ), + c_white, c_light_green, shortcuts[i] ); + } + + print_score( w_sokoban, iScore, iMoves ); + + draw_level( w_sokoban ); + wnoutrefresh( w_sokoban ); + } ); int iPlayerY = 0; int iPlayerX = 0; - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); - bool bNewLevel = true; bool bMoved = false; do { @@ -286,8 +286,6 @@ int sokoban_game::start_game() mLevel = vLevel[iCurrentLevel]; } - print_score( w_sokoban, iScore, iMoves ); - std::string action; if( check_win() ) { //we won yay @@ -298,9 +296,7 @@ int sokoban_game::start_game() action = "NEXT"; } else { - draw_level( w_sokoban ); - wrefresh( w_sokoban ); - + ui_manager::redraw(); //Check input action = ctxt.handle_input(); } @@ -352,7 +348,6 @@ int sokoban_game::start_game() bNewLevel = true; } else if( action == "NEXT" ) { //next level - clear_level( w_sokoban ); iCurrentLevel++; if( iCurrentLevel >= iNumLevel ) { iCurrentLevel = 0; @@ -360,7 +355,6 @@ int sokoban_game::start_game() bNewLevel = true; } else if( action == "PREV" ) { //previous level - clear_level( w_sokoban ); iCurrentLevel--; if( iCurrentLevel < 0 ) { iCurrentLevel = iNumLevel - 1; diff --git a/src/iuse_software_sokoban.h b/src/iuse_software_sokoban.h index 1fad010b53fb5..864eb96ffc18b 100644 --- a/src/iuse_software_sokoban.h +++ b/src/iuse_software_sokoban.h @@ -51,7 +51,6 @@ class sokoban_game bool check_win(); int get_wall_connection( const point & ); void draw_level( const catacurses::window &w_sokoban ); - void clear_level( const catacurses::window &w_sokoban ); void print_score( const catacurses::window &w_sokoban, int iScore, int iMoves ); public: int start_game(); diff --git a/src/json.cpp b/src/json.cpp index 270072a8446b5..0c060c5afeffb 100644 --- a/src/json.cpp +++ b/src/json.cpp @@ -200,7 +200,7 @@ std::string JsonObject::str() const } } -void JsonObject::throw_error( std::string err, const std::string &name ) const +void JsonObject::throw_error( const std::string &err, const std::string &name ) const { if( !jsin ) { throw JsonError( err ); @@ -209,7 +209,7 @@ void JsonObject::throw_error( std::string err, const std::string &name ) const jsin->error( err ); } -void JsonArray::throw_error( std::string err ) +void JsonArray::throw_error( const std::string &err ) { if( !jsin ) { throw JsonError( err ); @@ -217,7 +217,7 @@ void JsonArray::throw_error( std::string err ) jsin->error( err ); } -void JsonArray::throw_error( std::string err, int idx ) +void JsonArray::throw_error( const std::string &err, int idx ) { if( !jsin ) { throw JsonError( err ); @@ -228,7 +228,7 @@ void JsonArray::throw_error( std::string err, int idx ) jsin->error( err ); } -void JsonObject::throw_error( std::string err ) const +void JsonObject::throw_error( const std::string &err ) const { if( !jsin ) { throw JsonError( err ); @@ -1241,7 +1241,6 @@ bool JsonIn::get_bool() } err << "not a boolean value! expected 't' or 'f' but got '" << ch << "'"; error( err.str(), -1 ); - throw JsonError( "warnings are silly" ); } JsonObject JsonIn::get_object() diff --git a/src/json.h b/src/json.h index 61844e9593b4f..f9a7c8e5aa7a5 100644 --- a/src/json.h +++ b/src/json.h @@ -844,8 +844,8 @@ class JsonObject void allow_omitted_members() const; bool has_member( const std::string &name ) const; // true iff named member exists std::string str() const; // copy object json as string - [[noreturn]] void throw_error( std::string err ) const; - [[noreturn]] void throw_error( std::string err, const std::string &name ) const; + [[noreturn]] void throw_error( const std::string &err ) const; + [[noreturn]] void throw_error( const std::string &err, const std::string &name ) const; // seek to a value and return a pointer to the JsonIn (member must exist) JsonIn *get_raw( const std::string &name ) const; JsonValue get_member( const std::string &name ) const; @@ -1022,8 +1022,8 @@ class JsonArray size_t size() const; bool empty(); std::string str(); // copy array json as string - [[noreturn]] void throw_error( std::string err ); - [[noreturn]] void throw_error( std::string err, int idx ); + [[noreturn]] void throw_error( const std::string &err ); + [[noreturn]] void throw_error( const std::string &err, int idx ); // iterative access bool next_bool(); @@ -1087,10 +1087,10 @@ class JsonArray return jsin->read( t ); } // random-access read values by reference - template bool read( size_t i, T &t ) const { + template bool read( size_t i, T &t, bool throw_on_error = false ) const { verify_index( i ); jsin->seek( positions[i] ); - return jsin->read( t ); + return jsin->read( t, throw_on_error ); } }; @@ -1124,8 +1124,8 @@ class JsonValue return seek().get_array(); } template - bool read( T &t ) const { - return seek().read( t ); + bool read( T &t, bool throw_on_error = false ) const { + return seek().read( t, throw_on_error ); } bool test_string() const { diff --git a/src/lightmap.cpp b/src/lightmap.cpp index 1bb768286f153..9f81f92f98108 100644 --- a/src/lightmap.cpp +++ b/src/lightmap.cpp @@ -39,8 +39,6 @@ #include "vpart_range.h" #include "weather.h" -static const bionic_id bio_night( "bio_night" ); - static const efftype_id effect_haslight( "haslight" ); static const efftype_id effect_onfire( "onfire" ); @@ -59,8 +57,8 @@ std::string four_quadrants::to_string() const ( *this )[quadrant::SW], ( *this )[quadrant::NW] ); } -void map::add_light_from_items( const tripoint &p, item_stack::iterator begin, - item_stack::iterator end ) +void map::add_light_from_items( const tripoint &p, const item_stack::iterator &begin, + const item_stack::iterator &end ) { for( auto itm_it = begin; itm_it != end; ++itm_it ) { float ilum = 0.0; // brightness @@ -164,7 +162,7 @@ bool map::build_vision_transparency_cache( const int zlev ) bool dirty = false; - bool is_crouching = g->u.movement_mode_is( CMM_CROUCH ); + bool is_crouching = g->u.is_crouching(); for( const tripoint &loc : points_in_radius( p, 1 ) ) { if( loc == p ) { // The tile player is standing on should always be visible @@ -324,6 +322,7 @@ void map::generate_lightmap( const int zlev ) apply_character_light( guy ); } + std::vector> lm_override; // Traverse the submaps in order for( int smx = 0; smx < my_MAPSIZE; ++smx ) { for( int smy = 0; smy < my_MAPSIZE; ++smy ) { @@ -376,6 +375,10 @@ void map::generate_lightmap( const int zlev ) if( light_emitted > 0 ) { add_light_source( p, light_emitted ); } + const float light_override = cur->local_light_override(); + if( light_override >= 0.0f ) { + lm_override.push_back( std::pair( p, light_override ) ); + } } } } @@ -428,13 +431,13 @@ void map::generate_lightmap( const int zlev ) } if( vp.has_flag( VPFLAG_CONE_LIGHT ) ) { - if( veh_luminance > LL_LIT ) { + if( veh_luminance > lit_level::LIT ) { add_light_source( src, M_SQRT2 ); // Add a little surrounding light apply_light_arc( src, v->face.dir() + pt->direction, veh_luminance, 45 ); } } else if( vp.has_flag( VPFLAG_WIDE_CONE_LIGHT ) ) { - if( veh_luminance > LL_LIT ) { + if( veh_luminance > lit_level::LIT ) { add_light_source( src, M_SQRT2 ); // Add a little surrounding light apply_light_arc( src, v->face.dir() + pt->direction, veh_luminance, 90 ); } @@ -482,13 +485,8 @@ void map::generate_lightmap( const int zlev ) apply_light_source( p, light_source_buffer[p.x][p.y] ); } } - - if( g->u.has_active_bionic( bio_night ) ) { - for( const tripoint &p : points_in_rectangle( cache_start, cache_end ) ) { - if( rl_dist( p, g->u.pos() ) < 2 ) { - lm[p.x][p.y].fill( LIGHT_AMBIENT_MINIMAL ); - } - } + for( const std::pair &elem : lm_override ) { + lm[elem.first.x][elem.first.y].fill( elem.second ); } } @@ -503,26 +501,26 @@ void map::add_light_source( const tripoint &p, float luminance ) lit_level map::light_at( const tripoint &p ) const { if( !inbounds( p ) ) { - return LL_DARK; // Out of bounds + return lit_level::DARK; // Out of bounds } const auto &map_cache = get_cache_ref( p.z ); const auto &lm = map_cache.lm; const auto &sm = map_cache.sm; if( sm[p.x][p.y] >= LIGHT_SOURCE_BRIGHT ) { - return LL_BRIGHT; + return lit_level::BRIGHT; } const float max_light = lm[p.x][p.y].max(); if( max_light >= LIGHT_AMBIENT_LIT ) { - return LL_LIT; + return lit_level::LIT; } if( max_light >= LIGHT_AMBIENT_LOW ) { - return LL_LOW; + return lit_level::LOW; } - return LL_DARK; + return lit_level::DARK; } float map::ambient_light_at( const tripoint &p ) const @@ -613,11 +611,11 @@ lit_level map::apparent_light_at( const tripoint &p, const visibility_variables // Clairvoyance overrides everything. if( cache.u_clairvoyance > 0 && dist <= cache.u_clairvoyance ) { - return LL_BRIGHT; + return lit_level::BRIGHT; } const field_type_str_id fd_clairvoyant( "fd_clairvoyant" ); if( fd_clairvoyant.is_valid() && field_at( p ).find_field( fd_clairvoyant ) ) { - return LL_BRIGHT; + return lit_level::BRIGHT; } const auto &map_cache = get_cache_ref( p.z ); const apparent_light_info a = apparent_light_helper( map_cache, p ); @@ -626,9 +624,9 @@ lit_level map::apparent_light_at( const tripoint &p, const visibility_variables // but the player can still see light sources. if( dist > g->u.unimpaired_range() ) { if( !a.obstructed && map_cache.sm[p.x][p.y] > 0.0 ) { - return LL_BRIGHT_ONLY; + return lit_level::BRIGHT_ONLY; } else { - return LL_DARK; + return lit_level::DARK; } } if( a.obstructed ) { @@ -636,26 +634,26 @@ lit_level map::apparent_light_at( const tripoint &p, const visibility_variables if( a.apparent_light > cache.g_light_level ) { // This represents too hazy to see detail, // but enough light getting through to illuminate. - return LL_BRIGHT_ONLY; + return lit_level::BRIGHT_ONLY; } else { // If it's not brighter than the surroundings, it just ends up shadowy. - return LL_LOW; + return lit_level::LOW; } } else { - return LL_BLANK; + return lit_level::BLANK; } } // Then we just search for the light level in descending order. if( a.apparent_light > LIGHT_SOURCE_BRIGHT || map_cache.sm[p.x][p.y] > 0.0 ) { - return LL_BRIGHT; + return lit_level::BRIGHT; } if( a.apparent_light > LIGHT_AMBIENT_LIT ) { - return LL_LIT; + return lit_level::LIT; } if( a.apparent_light > cache.vision_threshold ) { - return LL_LOW; + return lit_level::LOW; } else { - return LL_BLANK; + return lit_level::BLANK; } } @@ -1276,13 +1274,13 @@ void map::apply_light_source( const tripoint &p, float luminance ) const int y = p.y; if( inbounds( p ) ) { - const float min_light = std::max( static_cast( LL_LOW ), luminance ); + const float min_light = std::max( static_cast( lit_level::LOW ), luminance ); lm[x][y] = elementwise_max( lm[x][y], min_light ); sm[x][y] = std::max( sm[x][y], luminance ); } - if( luminance <= LL_LOW ) { + if( luminance <= lit_level::LOW ) { return; - } else if( luminance <= LL_BRIGHT_ONLY ) { + } else if( luminance <= lit_level::BRIGHT_ONLY ) { luminance = 1.49f; } diff --git a/src/lightmap.h b/src/lightmap.h index 6a16e3ee6379d..e428650cb5780 100644 --- a/src/lightmap.h +++ b/src/lightmap.h @@ -3,6 +3,7 @@ #define CATA_SRC_LIGHTMAP_H #include +#include #define LIGHT_SOURCE_LOCAL 0.1f #define LIGHT_SOURCE_BRIGHT 10 @@ -25,14 +26,37 @@ #define LIGHT_RANGE(b) static_cast( -std::log(LIGHT_AMBIENT_LOW / static_cast(b)) * (1.0 / LIGHT_TRANSPARENCY_OPEN_AIR) ) -enum lit_level { - LL_DARK = 0, - LL_LOW, // Hard to see - LL_BRIGHT_ONLY, // bright but indistinct - LL_LIT, - LL_BRIGHT, // Probably only for light sources - LL_MEMORIZED, // Not a light level but behaves similarly - LL_BLANK // blank space, not an actual light level +enum class lit_level : int { + DARK = 0, + LOW, // Hard to see + BRIGHT_ONLY, // bright but indistinct + LIT, + BRIGHT, // Probably only for light sources + MEMORIZED, // Not a light level but behaves similarly + BLANK // blank space, not an actual light level }; +template +constexpr inline bool operator>( const T &lhs, const lit_level &rhs ) +{ + return lhs > static_cast( rhs ); +} + +template +constexpr inline bool operator<=( const T &lhs, const lit_level &rhs ) +{ + return !operator>( lhs, rhs ); +} + +template +constexpr inline bool operator!=( const lit_level &lhs, const T &rhs ) +{ + return static_cast( lhs ) != rhs; +} + +inline std::ostream &operator<<( std::ostream &os, const lit_level &ll ) +{ + return os << static_cast( ll ); +} + #endif // CATA_SRC_LIGHTMAP_H diff --git a/src/live_view.cpp b/src/live_view.cpp index edf48efb5b41b..ffa8dd666e224 100644 --- a/src/live_view.cpp +++ b/src/live_view.cpp @@ -8,8 +8,11 @@ #include "cursesport.h" #include "game.h" #include "map.h" +#include "options.h" #include "output.h" +#include "panels.h" #include "translations.h" +#include "ui_manager.h" namespace { @@ -19,61 +22,57 @@ constexpr int MIN_BOX_HEIGHT = 3; } //namespace +live_view::live_view() = default; +live_view::~live_view() = default; + void live_view::init() { hide(); } -int live_view::draw( const catacurses::window &win, const int max_height ) -{ - if( !enabled ) { - return 0; - } - - // -1 for border. -1 because getmaxy() actually returns height, not y position. - const int line_limit = max_height - 2; - const visibility_variables &cache = g->m.get_visibility_variables_cache(); - int line_out = START_LINE; - g->pre_print_all_tile_info( mouse_position, win, line_out, line_limit, cache ); - - const int live_view_box_height = std::min( max_height, std::max( line_out + 2, MIN_BOX_HEIGHT ) ); - -#if defined(TILES) || defined(_WIN32) - // HACK: Because of the way the status UI is done, the live view window must - // be tall enough to clear the entire height of the viewport below the - // status bar. This hack allows the border around the live view box to - // be drawn only as big as it needs to be, while still leaving the - // window tall enough. Won't work for ncurses in Linux, but that doesn't - // currently support the mouse. If and when it does, there will need to - // be a different code path here that works for ncurses. - const int original_height = win.get()->height; - win.get()->height = live_view_box_height; - g->draw_panels(); -#endif - - draw_border( win ); - center_print( win, 0, c_white, _( "< Mouse View >" ) ); - wrefresh( win ); - -#if defined(TILES) || defined(_WIN32) - win.get()->height = original_height; -#endif - - return live_view_box_height; -} - void live_view::hide() { - enabled = false; + ui = nullptr; } void live_view::show( const tripoint &p ) { - enabled = true; mouse_position = p; + if( !ui ) { + ui = std::make_unique(); + ui->on_screen_resize( [this]( ui_adaptor & ui ) { + auto &mgr = panel_manager::get_manager(); + const bool sidebar_right = get_option( "SIDEBAR_POSITION" ) == "right"; + const int width = sidebar_right ? mgr.get_width_right() : mgr.get_width_left(); + + const int max_height = TERMY / 2; + const int line_limit = max_height - 2; + const visibility_variables &cache = g->m.get_visibility_variables_cache(); + int line_out = START_LINE; + // HACK: using dummy window to get the window height without refreshing. + win = catacurses::newwin( 1, width, point_zero ); + g->pre_print_all_tile_info( mouse_position, win, line_out, line_limit, cache ); + const int live_view_box_height = std::min( max_height, std::max( line_out + 2, MIN_BOX_HEIGHT ) ); + + win = catacurses::newwin( live_view_box_height, width, + point( sidebar_right ? TERMX - width : 0, 0 ) ); + ui.position_from_window( win ); + } ); + ui->on_redraw( [this]( const ui_adaptor & ) { + werase( win ); + const visibility_variables &cache = g->m.get_visibility_variables_cache(); + int line_out = START_LINE; + g->pre_print_all_tile_info( mouse_position, win, line_out, getmaxy( win ) - 2, cache ); + draw_border( win ); + center_print( win, 0, c_white, _( "< Mouse View >" ) ); + wnoutrefresh( win ); + } ); + } + // Always mark ui for resize as the required box height may have changed. + ui->mark_resize(); } bool live_view::is_enabled() { - return enabled; + return ui != nullptr; } diff --git a/src/live_view.h b/src/live_view.h index 9d5b42704f4bb..5c386a6ba0848 100644 --- a/src/live_view.h +++ b/src/live_view.h @@ -2,20 +2,20 @@ #ifndef CATA_SRC_LIVE_VIEW_H #define CATA_SRC_LIVE_VIEW_H +#include + +#include "cursesdef.h" #include "point.h" -namespace catacurses -{ -class window; -} // namespace catacurses +class ui_adaptor; class live_view { public: - live_view() = default; + live_view(); + ~live_view(); void init(); - int draw( const catacurses::window &win, int max_height ); void show( const tripoint &p ); bool is_enabled(); void hide(); @@ -23,7 +23,8 @@ class live_view private: tripoint mouse_position; - bool enabled = false; + catacurses::window win; + std::unique_ptr ui; }; #endif // CATA_SRC_LIVE_VIEW_H diff --git a/src/magic.cpp b/src/magic.cpp index c534dba227799..3be2c5c10ca87 100644 --- a/src/magic.cpp +++ b/src/magic.cpp @@ -34,6 +34,7 @@ #include "magic_enchantment.h" #include "map.h" #include "messages.h" +#include "mongroup.h" #include "monster.h" #include "mtype.h" #include "mutation.h" @@ -55,18 +56,18 @@ namespace io { // *INDENT-OFF* template<> -std::string enum_to_string( valid_target data ) +std::string enum_to_string( spell_target data ) { switch( data ) { - case valid_target::target_ally: return "ally"; - case valid_target::target_hostile: return "hostile"; - case valid_target::target_self: return "self"; - case valid_target::target_ground: return "ground"; - case valid_target::target_none: return "none"; - case valid_target::target_item: return "item"; - case valid_target::target_fd_fire: return "fd_fire"; - case valid_target::target_fd_blood: return "fd_blood"; - case valid_target::_LAST: break; + case spell_target::ally: return "ally"; + case spell_target::hostile: return "hostile"; + case spell_target::self: return "self"; + case spell_target::ground: return "ground"; + case spell_target::none: return "none"; + case spell_target::item: return "item"; + case spell_target::fire: return "fd_fire"; + case spell_target::blood: return "fd_blood"; + case spell_target::num_spell_targets: break; } debugmsg( "Invalid valid_target" ); abort(); @@ -116,6 +117,7 @@ std::string enum_to_string( spell_flag data ) case spell_flag::MUTATE_TRAIT: return "MUTATE_TRAIT"; case spell_flag::PAIN_NORESIST: return "PAIN_NORESIST"; case spell_flag::WITH_CONTAINER: return "WITH_CONTAINER"; + case spell_flag::SPAWN_GROUP: return "SPAWN_GROUP"; case spell_flag::WONDER: return "WONDER"; case spell_flag::LAST: break; } @@ -151,23 +153,23 @@ void spell_type::load_spell( const JsonObject &jo, const std::string &src ) spell_factory.load( jo, src ); } -static energy_type energy_source_from_string( const std::string &str ) +static magic_energy_type energy_source_from_string( const std::string &str ) { if( str == "MANA" ) { - return mana_energy; + return magic_energy_type::mana; } else if( str == "HP" ) { - return hp_energy; + return magic_energy_type::hp; } else if( str == "BIONIC" ) { - return bionic_energy; + return magic_energy_type::bionic; } else if( str == "STAMINA" ) { - return stamina_energy; + return magic_energy_type::stamina; } else if( str == "FATIGUE" ) { - return fatigue_energy; + return magic_energy_type::fatigue; } else if( str == "NONE" ) { - return none_energy; + return magic_energy_type::none; } else { - debugmsg( _( "ERROR: Invalid energy string. Defaulting to NONE" ) ); - return none_energy; + debugmsg( _( "ERROR: Invalid magic_energy_type string. Defaulting to NONE" ) ); + return magic_energy_type::none; } } @@ -261,14 +263,14 @@ void spell_type::load( const JsonObject &jo, const std::string & ) effect = found_effect->second; } - const auto effect_targets_reader = enum_flags_reader { "effect_targets" }; + const auto effect_targets_reader = enum_flags_reader { "effect_targets" }; optional( jo, was_loaded, "effect_filter", effect_targets, effect_targets_reader ); const auto targeted_monster_ids_reader = auto_flags_reader {}; optional( jo, was_loaded, "targeted_monster_ids", targeted_monster_ids, targeted_monster_ids_reader ); - const auto trigger_reader = enum_flags_reader { "valid_targets" }; + const auto trigger_reader = enum_flags_reader { "valid_targets" }; mandatory( jo, was_loaded, "valid_targets", valid_targets, trigger_reader ); if( jo.has_array( "extra_effects" ) ) { @@ -674,10 +676,10 @@ int spell::energy_cost( const Character &guy ) const default: cost += 10 * hands_encumb; break; - case hp_energy: + case magic_energy_type::hp: cost += hands_encumb; break; - case stamina_energy: + case magic_energy_type::stamina: cost += 100 * hands_encumb; break; } @@ -698,11 +700,11 @@ bool spell::is_spell_class( const trait_id &mid ) const bool spell::can_cast( const Character &guy ) const { switch( type->energy_source ) { - case mana_energy: + case magic_energy_type::mana: return guy.magic.available_mana() >= energy_cost( guy ); - case stamina_energy: + case magic_energy_type::stamina: return guy.get_stamina() >= energy_cost( guy ); - case hp_energy: { + case magic_energy_type::hp: { for( int i = 0; i < num_hp_parts; i++ ) { if( energy_cost( guy ) < guy.hp_cur[i] ) { return true; @@ -710,11 +712,11 @@ bool spell::can_cast( const Character &guy ) const } return false; } - case bionic_energy: + case magic_energy_type::bionic: return guy.get_power_level() >= units::from_kilojoule( energy_cost( guy ) ); - case fatigue_energy: - return guy.get_fatigue() < EXHAUSTED; - case none_energy: + case magic_energy_type::fatigue: + return guy.get_fatigue() < fatigue_levels::EXHAUSTED; + case magic_energy_type::none: default: return true; } @@ -844,15 +846,15 @@ void spell::set_exp( int nxp ) std::string spell::energy_string() const { switch( type->energy_source ) { - case hp_energy: + case magic_energy_type::hp: return _( "health" ); - case mana_energy: + case magic_energy_type::mana: return _( "mana" ); - case stamina_energy: + case magic_energy_type::stamina: return _( "stamina" ); - case bionic_energy: + case magic_energy_type::bionic: return _( "bionic power" ); - case fatigue_energy: + case magic_energy_type::fatigue: return _( "fatigue" ); default: return ""; @@ -861,21 +863,21 @@ std::string spell::energy_string() const std::string spell::energy_cost_string( const Character &guy ) const { - if( energy_source() == none_energy ) { + if( energy_source() == magic_energy_type::none ) { return _( "none" ); } - if( energy_source() == bionic_energy || energy_source() == mana_energy ) { + if( energy_source() == magic_energy_type::bionic || energy_source() == magic_energy_type::mana ) { return colorize( to_string( energy_cost( guy ) ), c_light_blue ); } - if( energy_source() == hp_energy ) { + if( energy_source() == magic_energy_type::hp ) { auto pair = get_hp_bar( energy_cost( guy ), guy.get_hp_max() / num_hp_parts ); return colorize( pair.first, pair.second ); } - if( energy_source() == stamina_energy ) { + if( energy_source() == magic_energy_type::stamina ) { auto pair = get_hp_bar( energy_cost( guy ), guy.get_stamina_max() ); return colorize( pair.first, pair.second ); } - if( energy_source() == fatigue_energy ) { + if( energy_source() == magic_energy_type::fatigue ) { return colorize( to_string( energy_cost( guy ) ), c_cyan ); } debugmsg( "ERROR: Spell %s has invalid energy source.", id().c_str() ); @@ -884,23 +886,23 @@ std::string spell::energy_cost_string( const Character &guy ) const std::string spell::energy_cur_string( const Character &guy ) const { - if( energy_source() == none_energy ) { + if( energy_source() == magic_energy_type::none ) { return _( "infinite" ); } - if( energy_source() == bionic_energy ) { + if( energy_source() == magic_energy_type::bionic ) { return colorize( to_string( units::to_kilojoule( guy.get_power_level() ) ), c_light_blue ); } - if( energy_source() == mana_energy ) { + if( energy_source() == magic_energy_type::mana ) { return colorize( to_string( guy.magic.available_mana() ), c_light_blue ); } - if( energy_source() == stamina_energy ) { + if( energy_source() == magic_energy_type::stamina ) { auto pair = get_hp_bar( guy.get_stamina(), guy.get_stamina_max() ); return colorize( pair.first, pair.second ); } - if( energy_source() == hp_energy ) { + if( energy_source() == magic_energy_type::hp ) { return ""; } - if( energy_source() == fatigue_energy ) { + if( energy_source() == magic_energy_type::fatigue ) { const std::pair pair = guy.get_fatigue_description(); return colorize( pair.first, pair.second ); } @@ -960,7 +962,7 @@ std::string spell::effect() const return type->effect_name; } -energy_type spell::energy_source() const +magic_energy_type spell::energy_source() const { return type->energy_source; } @@ -970,7 +972,7 @@ bool spell::is_target_in_range( const Creature &caster, const tripoint &p ) cons return rl_dist( caster.pos(), p ) <= range(); } -bool spell::is_valid_target( valid_target t ) const +bool spell::is_valid_target( spell_target t ) const { return type->valid_targets[t]; } @@ -980,18 +982,18 @@ bool spell::is_valid_target( const Creature &caster, const tripoint &p ) const bool valid = false; if( Creature *const cr = g->critter_at( p ) ) { Creature::Attitude cr_att = cr->attitude_to( caster ); - valid = valid || ( cr_att != Creature::A_FRIENDLY && is_valid_target( target_hostile ) ); - valid = valid || ( cr_att == Creature::A_FRIENDLY && is_valid_target( target_ally ) && + valid = valid || ( cr_att != Creature::A_FRIENDLY && is_valid_target( spell_target::hostile ) ); + valid = valid || ( cr_att == Creature::A_FRIENDLY && is_valid_target( spell_target::ally ) && p != caster.pos() ); - valid = valid || ( is_valid_target( target_self ) && p == caster.pos() ); + valid = valid || ( is_valid_target( spell_target::self ) && p == caster.pos() ); valid = valid && target_by_monster_id( p ); } else { - valid = is_valid_target( target_ground ); + valid = is_valid_target( spell_target::ground ); } return valid; } -bool spell::is_valid_effect_target( valid_target t ) const +bool spell::is_valid_effect_target( spell_target t ) const { return type->effect_targets[t]; } @@ -1113,10 +1115,10 @@ int spell::casting_exp( const Character &guy ) const std::string spell::enumerate_targets() const { std::vector all_valid_targets; - int last_target = static_cast( valid_target::_LAST ); + int last_target = static_cast( spell_target::num_spell_targets ); for( int i = 0; i < last_target; ++i ) { - valid_target t = static_cast( i ); - if( is_valid_target( t ) && t != target_none ) { + spell_target t = static_cast( i ); + if( is_valid_target( t ) && t != spell_target::none ) { all_valid_targets.emplace_back( io::enum_to_string( t ) ); } } @@ -1218,7 +1220,7 @@ void spell::cast_all_effects( Creature &source, const tripoint &target ) const // if a message is added to the casting spell, it will be sent as well. source.add_msg_if_player( sp.message() ); - if( sp.has_flag( RANDOM_TARGET ) ) { + if( sp.has_flag( spell_flag::RANDOM_TARGET ) ) { if( const cata::optional new_target = sp.random_valid_target( source, _self ? source.pos() : target ) ) { sp.cast_all_effects( source, *new_target ); @@ -1236,7 +1238,7 @@ void spell::cast_all_effects( Creature &source, const tripoint &target ) const cast_spell_effect( source, target ); for( const fake_spell &extra_spell : type->additional_spells ) { spell sp = extra_spell.get_spell( get_level() ); - if( sp.has_flag( RANDOM_TARGET ) ) { + if( sp.has_flag( spell_flag::RANDOM_TARGET ) ) { if( const cata::optional new_target = sp.random_valid_target( source, extra_spell.self ? source.pos() : target ) ) { sp.cast_all_effects( source, *new_target ); @@ -1386,6 +1388,7 @@ void known_magic::learn_spell( const spell_type *sp, Character &guy, bool force } if( force || can_learn_spell( guy, sp->id ) ) { spellbook.emplace( sp->id, temp_spell ); + g->events().send( guy.getID(), sp->id ); guy.add_msg_if_player( m_good, _( "You learned %s!" ), sp->name ); } else { guy.add_msg_if_player( m_bad, _( "You can't learn this spell." ) ); @@ -1404,6 +1407,8 @@ void known_magic::forget_spell( const spell_id &sp ) return; } add_msg( m_bad, _( "All knowledge of %s leaves you." ), sp->name ); + // TODO: add parameter for owner of known_magic for this function + g->events().send( g->u.getID(), sp->id ); spellbook.erase( sp ); } @@ -1470,7 +1475,7 @@ void known_magic::update_mana( const Character &guy, float turns ) std::vector known_magic::spells() const { std::vector spell_ids; - for( auto pair : spellbook ) { + for( const std::pair &pair : spellbook ) { spell_ids.emplace_back( pair.first ); } return spell_ids; @@ -1481,22 +1486,22 @@ bool known_magic::has_enough_energy( const Character &guy, spell &sp ) const { int cost = sp.energy_cost( guy ); switch( sp.energy_source() ) { - case mana_energy: + case magic_energy_type::mana: return available_mana() >= cost; - case bionic_energy: + case magic_energy_type::bionic: return guy.get_power_level() >= units::from_kilojoule( cost ); - case stamina_energy: + case magic_energy_type::stamina: return guy.get_stamina() >= cost; - case hp_energy: + case magic_energy_type::hp: for( int i = 0; i < num_hp_parts; i++ ) { if( guy.hp_cur[i] > cost ) { return true; } } return false; - case fatigue_energy: - return guy.get_fatigue() < EXHAUSTED; - case none_energy: + case magic_energy_type::fatigue: + return guy.get_fatigue() < fatigue_levels::EXHAUSTED; + case magic_energy_type::none: return true; default: return false; @@ -1581,7 +1586,7 @@ class spellcasting_callback : public uilist_callback if( menu->selected >= 0 && static_cast( menu->selected ) < known_spells.size() ) { draw_spell_info( *known_spells[menu->selected], menu ); } - wrefresh( menu->window ); + wnoutrefresh( menu->window ); } }; @@ -1687,8 +1692,8 @@ void spellcasting_callback::draw_spell_info( const spell &sp, const uilist *menu const bool cost_encumb = energy_cost_encumbered( sp, g->u ); std::string cost_string = cost_encumb ? _( "Casting Cost (impeded)" ) : _( "Casting Cost" ); - std::string energy_cur = sp.energy_source() == hp_energy ? "" : string_format( _( " (%s current)" ), - sp.energy_cur_string( g->u ) ); + std::string energy_cur = sp.energy_source() == magic_energy_type::hp ? "" : + string_format( _( " (%s current)" ), sp.energy_cur_string( g->u ) ); if( !sp.can_cast( g->u ) ) { cost_string = colorize( _( "Not Enough Energy" ), c_red ); energy_cur = ""; @@ -1707,7 +1712,7 @@ void spellcasting_callback::draw_spell_info( const spell &sp, const uilist *menu } std::string targets; - if( sp.is_valid_target( target_none ) ) { + if( sp.is_valid_target( spell_target::none ) ) { targets = _( "self" ); } else { targets = sp.enumerate_targets(); @@ -1728,6 +1733,7 @@ void spellcasting_callback::draw_spell_info( const spell &sp, const uilist *menu const int damage = sp.damage(); std::string damage_string; + std::string range_string; std::string aoe_string; // if it's any type of attack spell, the stats are normal. if( fx == "target_attack" || fx == "projectile_attack" || fx == "cone_attack" || @@ -1761,21 +1767,35 @@ void spellcasting_callback::draw_spell_info( const spell &sp, const uilist *menu aoe_string = string_format( "%s: %d", _( "Variance" ), sp.aoe() ); } } else if( fx == "spawn_item" ) { - damage_string = string_format( "%s %d %s", _( "Spawn" ), sp.damage(), item::nname( sp.effect_data(), - sp.damage() ) ); + damage_string = string_format( "%s %d %s", _( "Spawn" ), sp.damage(), + item::nname( itype_id( sp.effect_data() ), sp.damage() ) ); } else if( fx == "summon" ) { - damage_string = string_format( "%s %d %s", _( "Summon" ), sp.damage(), - _( monster( mtype_id( sp.effect_data() ) ).get_name( ) ) ); + std::string monster_name = "FIXME"; + if( sp.has_flag( spell_flag::SPAWN_GROUP ) ) { + // TODO: Get a more user-friendly group name + if( MonsterGroupManager::isValidMonsterGroup( mongroup_id( sp.effect_data() ) ) ) { + monster_name = "from " + sp.effect_data(); + } else { + debugmsg( "Unknown monster group: %s", sp.effect_data() ); + } + } else { + monster_name = monster( mtype_id( sp.effect_data() ) ).get_name( ); + } + damage_string = string_format( "%s %d %s", _( "Summon" ), sp.damage(), _( monster_name ) ); aoe_string = string_format( "%s: %d", _( "Spell Radius" ), sp.aoe() ); } else if( fx == "ter_transform" ) { aoe_string = string_format( "%s: %s", _( "Spell Radius" ), sp.aoe_string() ); } - print_colored_text( w_menu, point( h_col1, line ), gray, gray, damage_string ); + range_string = string_format( "%s: %s", _( "Range" ), + sp.range() <= 0 ? _( "self" ) : to_string( sp.range() ) ); + + // Range / AOE in two columns + print_colored_text( w_menu, point( h_col1, line ), gray, gray, range_string ); print_colored_text( w_menu, point( h_col2, line++ ), gray, gray, aoe_string ); - print_colored_text( w_menu, point( h_col1, line++ ), gray, gray, - string_format( "%s: %s", _( "Range" ), sp.range() <= 0 ? _( "self" ) : to_string( sp.range() ) ) ); + // One line for damage / healing / spawn / summon effect + print_colored_text( w_menu, point( h_col1, line++ ), gray, gray, damage_string ); // todo: damage over time here, when it gets implemeted @@ -2026,7 +2046,7 @@ void spellbook_callback::refresh( uilist *menu ) if( menu->selected >= 0 && static_cast( menu->selected ) < spells.size() ) { draw_spellbook_info( spells[menu->selected], menu ); } - wrefresh( menu->window ); + wnoutrefresh( menu->window ); } void fake_spell::load( const JsonObject &jo ) @@ -2107,9 +2127,9 @@ void spell_events::notify( const cata::event &e ) spell_type spell_cast = spell_factory.obj( sid ); for( std::map::iterator it = spell_cast.learn_spells.begin(); it != spell_cast.learn_spells.end(); ++it ) { - std::string learn_spell_id = it->first; int learn_at_level = it->second; if( learn_at_level == slvl ) { + std::string learn_spell_id = it->first; g->u.magic.learn_spell( learn_spell_id, g->u ); spell_type spell_learned = spell_factory.obj( spell_id( learn_spell_id ) ); add_msg( diff --git a/src/magic.h b/src/magic.h index b859515c46e43..511ccb77fd51d 100644 --- a/src/magic.h +++ b/src/magic.h @@ -35,7 +35,7 @@ class event; } // namespace cata template struct enum_traits; -enum spell_flag { +enum class spell_flag : int { PERMANENT, // items or creatures spawned with this spell do not disappear and die as normal IGNORE_WALLS, // spell's aoe goes through walls SWAP_POS, // a projectile spell swaps the positions of the caster and target @@ -57,33 +57,34 @@ enum spell_flag { WONDER, // instead of casting each of the extra_spells, it picks N of them and casts them (where N is std::min( damage(), number_of_spells )) PAIN_NORESIST, // pain altering spells can't be resisted (like with the deadened trait) WITH_CONTAINER, // items spawned with container + SPAWN_GROUP, // spawn or summon from an item or monster group, instead of individual item/monster ID LAST }; -enum energy_type { - hp_energy, - mana_energy, - stamina_energy, - bionic_energy, - fatigue_energy, - none_energy +enum class magic_energy_type : int { + hp, + mana, + stamina, + bionic, + fatigue, + none }; -enum valid_target { - target_ally, - target_hostile, - target_self, - target_ground, - target_none, - target_item, - target_fd_fire, - target_fd_blood, - _LAST +enum class spell_target : int { + ally, + hostile, + self, + ground, + none, + item, + fire, + blood, + num_spell_targets }; template<> -struct enum_traits { - static constexpr auto last = valid_target::_LAST; +struct enum_traits { + static constexpr auto last = spell_target::num_spell_targets; }; template<> @@ -250,15 +251,15 @@ class spell_type std::map learn_spells; // what energy do you use to cast this spell - energy_type energy_source = energy_type::none_energy; + magic_energy_type energy_source = magic_energy_type::none; damage_type dmg_type = damage_type::DT_NULL; // list of valid targets to be affected by the area of effect. - enum_bitset effect_targets; + enum_bitset effect_targets; // list of valid targets enum - enum_bitset valid_targets; + enum_bitset valid_targets; std::set targeted_monster_ids; @@ -404,8 +405,8 @@ class spell std::string aoe_string() const; std::string duration_string() const; - // energy source enum - energy_type energy_source() const; + // magic energy source enum + magic_energy_type energy_source() const; // the color that's representative of the damage type nc_color damage_type_color() const; std::string damage_type_string() const; @@ -433,8 +434,8 @@ class spell // is the target valid for this spell? bool is_valid_target( const Creature &caster, const tripoint &p ) const; - bool is_valid_target( valid_target t ) const; - bool is_valid_effect_target( valid_target t ) const; + bool is_valid_target( spell_target t ) const; + bool is_valid_effect_target( spell_target t ) const; bool target_by_monster_id( const tripoint &p ) const; // picks a random valid tripoint from @area diff --git a/src/magic_spell_effect.cpp b/src/magic_spell_effect.cpp index 6c4ead7e85f1e..dbd3006d73fa0 100644 --- a/src/magic_spell_effect.cpp +++ b/src/magic_spell_effect.cpp @@ -353,8 +353,8 @@ std::set spell_effect::spell_effect_line( const spell &, const tripoin // spells do not reduce in damage the further away from the epicenter the targets are // rather they do their full damage in the entire area of effect std::set calculate_spell_effect_area( const spell &sp, const tripoint &target, - std::function( const spell &, const tripoint &, const tripoint &, int, bool )> - aoe_func, const Creature &caster, bool ignore_walls ) + const std::function( const spell &, const tripoint &, const tripoint &, int, bool )> + &aoe_func, const Creature &caster, bool ignore_walls ) { std::set targets = { target }; // initialize with epicenter if( sp.aoe() <= 1 && sp.effect() != "line_attack" ) { @@ -376,8 +376,8 @@ std::set calculate_spell_effect_area( const spell &sp, const tripoint } static std::set spell_effect_area( const spell &sp, const tripoint &target, - std::function( const spell &, const tripoint &, const tripoint &, int, bool )> - aoe_func, const Creature &caster, bool ignore_walls = false ) + const std::function( const spell &, const tripoint &, const tripoint &, int, bool )> + &aoe_func, const Creature &caster, bool ignore_walls = false ) { // calculate spell's effect area std::set targets = calculate_spell_effect_area( sp, target, aoe_func, caster, @@ -597,16 +597,16 @@ static void spell_move( const spell &sp, const Creature &caster, } // Moving creatures - bool can_target_creature = sp.is_valid_effect_target( target_self ) || - sp.is_valid_effect_target( target_ally ) || - sp.is_valid_effect_target( target_hostile ); + bool can_target_creature = sp.is_valid_effect_target( spell_target::self ) || + sp.is_valid_effect_target( spell_target::ally ) || + sp.is_valid_effect_target( spell_target::hostile ); if( can_target_creature ) { if( Creature *victim = g->critter_at( from ) ) { Creature::Attitude cr_att = victim->attitude_to( g->u ); - bool valid = cr_att != Creature::A_FRIENDLY && sp.is_valid_effect_target( target_hostile ); - valid |= cr_att == Creature::A_FRIENDLY && sp.is_valid_effect_target( target_ally ); - valid |= victim == &caster && sp.is_valid_effect_target( target_self ); + bool valid = cr_att != Creature::A_FRIENDLY && sp.is_valid_effect_target( spell_target::hostile ); + valid |= cr_att == Creature::A_FRIENDLY && sp.is_valid_effect_target( spell_target::ally ); + valid |= victim == &caster && sp.is_valid_effect_target( spell_target::self ); if( valid ) { victim->knock_back_to( to ); } @@ -614,7 +614,7 @@ static void spell_move( const spell &sp, const Creature &caster, } // Moving items - if( sp.is_valid_effect_target( target_item ) ) { + if( sp.is_valid_effect_target( spell_target::item ) ) { auto src_items = g->m.i_at( from ); auto dst_items = g->m.i_at( to ); for( const item &item : src_items ) { @@ -624,7 +624,7 @@ static void spell_move( const spell &sp, const Creature &caster, } // Helper function to move particular field type if corresponding target flag is enabled. - auto move_field = [&sp, from, to]( valid_target target, field_type_id fid ) { + auto move_field = [&sp, from, to]( spell_target target, field_type_id fid ) { if( !sp.is_valid_effect_target( target ) ) { return; } @@ -636,9 +636,9 @@ static void spell_move( const spell &sp, const Creature &caster, } }; // Moving fields. - move_field( target_fd_fire, fd_fire ); - move_field( target_fd_blood, fd_blood ); - move_field( target_fd_blood, fd_gibs_flesh ); + move_field( spell_target::fire, fd_fire ); + move_field( spell_target::blood, fd_blood ); + move_field( spell_target::blood, fd_gibs_flesh ); } void spell_effect::area_pull( const spell &sp, Creature &caster, const tripoint ¢er ) @@ -693,8 +693,8 @@ void spell_effect::spawn_ethereal_item( const spell &sp, Creature &caster, const if( g->u.can_wear( granted ).success() ) { granted.set_flag( "FIT" ); g->u.wear_item( granted, false ); - } else if( !g->u.is_armed() ) { - g->u.weapon = granted; + } else if( !g->u.is_armed() && g->u.wield( granted, 0 ) ) { + // nothing to do } else { g->u.i_add( granted ); } @@ -733,7 +733,7 @@ void spell_effect::recover_energy( const spell &sp, Creature &caster, const trip } } else if( energy_source == "PAIN" ) { // pain is backwards - if( sp.has_flag( PAIN_NORESIST ) ) { + if( sp.has_flag( spell_flag::PAIN_NORESIST ) ) { p->mod_pain_noresist( -healing ); } else { p->mod_pain( -healing ); @@ -783,10 +783,19 @@ static bool is_summon_friendly( const spell &sp ) return friendly; } -static bool add_summoned_mon( const mtype_id &id, const tripoint &pos, const time_duration &time, - const spell &sp ) +static bool add_summoned_mon( const tripoint &pos, const time_duration &time, const spell &sp ) { - monster *const mon_ptr = g->place_critter_at( id, pos ); + std::string monster_id = sp.effect_data(); + + // Spawn a monster from a group, or a specific monster ID + if( sp.has_flag( spell_flag::SPAWN_GROUP ) ) { + const mongroup_id group_id( sp.effect_data() ); + monster_id = MonsterGroupManager::GetRandomMonsterFromGroup( group_id ).str(); + } + + const mtype_id mon_id( monster_id ); + monster *const mon_ptr = g->place_critter_at( mon_id, pos ); + if( !mon_ptr ) { return false; } @@ -807,7 +816,6 @@ static bool add_summoned_mon( const mtype_id &id, const tripoint &pos, const tim void spell_effect::spawn_summoned_monster( const spell &sp, Creature &caster, const tripoint &target ) { - const mtype_id mon_id( sp.effect_data() ); std::set area = spell_effect_area( sp, target, spell_effect_blast, caster ); // this should never be negative, but this'll keep problems from happening size_t num_mons = std::abs( sp.damage() ); @@ -816,7 +824,7 @@ void spell_effect::spawn_summoned_monster( const spell &sp, Creature &caster, const size_t mon_spot = rng( 0, area.size() - 1 ); auto iter = area.begin(); std::advance( iter, mon_spot ); - if( add_summoned_mon( mon_id, *iter, summon_time, sp ) ) { + if( add_summoned_mon( *iter, summon_time, sp ) ) { num_mons--; sp.make_sound( *iter ); } else { @@ -836,9 +844,8 @@ void spell_effect::spawn_summoned_vehicle( const spell &sp, Creature &caster, } if( vehicle *veh = g->m.add_vehicle( sp.summon_vehicle_id(), target, -90, 100, 0 ) ) { veh->magic = true; - const time_duration summon_time = sp.duration_turns(); if( !sp.has_flag( spell_flag::PERMANENT ) ) { - veh->summon_time_limit = summon_time; + veh->summon_time_limit = sp.duration_turns(); } if( caster.as_character() ) { veh->set_owner( *caster.as_character() ); @@ -902,7 +909,7 @@ void spell_effect::explosion( const spell &sp, Creature &, const tripoint &targe void spell_effect::flashbang( const spell &sp, Creature &caster, const tripoint &target ) { explosion_handler::flashbang( target, caster.is_avatar() && - !sp.is_valid_target( valid_target::target_self ) ); + !sp.is_valid_target( spell_target::self ) ); } void spell_effect::mod_moves( const spell &sp, Creature &caster, const tripoint &target ) diff --git a/src/magic_spell_effect_helpers.h b/src/magic_spell_effect_helpers.h index ceaede275f4c1..27229f47c9221 100644 --- a/src/magic_spell_effect_helpers.h +++ b/src/magic_spell_effect_helpers.h @@ -12,7 +12,7 @@ struct tripoint; // spells do not reduce in damage the further away from the epicenter the targets are // rather they do their full damage in the entire area of effect std::set calculate_spell_effect_area( const spell &sp, const tripoint &target, - std::function( const spell &, const tripoint &, const tripoint &, int, bool )> - aoe_func, const Creature &caster, bool ignore_walls = false ); + const std::function( const spell &, const tripoint &, const tripoint &, int, bool )> + &aoe_func, const Creature &caster, bool ignore_walls = false ); #endif // CATA_SRC_MAGIC_SPELL_EFFECT_HELPERS_H diff --git a/src/magic_teleporter_list.cpp b/src/magic_teleporter_list.cpp index 0298279beb683..c50bb36e846a2 100644 --- a/src/magic_teleporter_list.cpp +++ b/src/magic_teleporter_list.cpp @@ -176,14 +176,13 @@ class teleporter_callback : public uilist_callback rl_dist( ms_to_omt_copy( g->m.getabs( g->u.pos() ) ), index_pairs[entnum] ), index_pairs[entnum].x, index_pairs[entnum].y ) ); } - wrefresh( menu->window ); + wnoutrefresh( menu->window ); } }; cata::optional teleporter_list::choose_teleport_location() { cata::optional ret = cata::nullopt; - g->refresh_all(); uilist teleport_selector; teleport_selector.w_height_setup = 24; diff --git a/src/main.cpp b/src/main.cpp index 963b59ba27c1e..a2073d9126148 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -754,8 +754,6 @@ void exit_handler( int s ) const int old_timeout = inp_mngr.get_timeout(); inp_mngr.reset_timeout(); if( s != 2 || query_yn( _( "Really Quit? All unsaved changes will be lost." ) ) ) { - catacurses::erase(); // Clear screen - deinitDebug(); int exit_status = 0; diff --git a/src/main_menu.cpp b/src/main_menu.cpp index e939ad760ddc0..052f2722ab7de 100644 --- a/src/main_menu.cpp +++ b/src/main_menu.cpp @@ -218,9 +218,7 @@ void main_menu::print_menu( const catacurses::window &w_open, int iSel, const po print_menu_items( w_open, vMenuItems, iSel, point( final_offset, offset.y ), spacing ); - catacurses::refresh(); - wrefresh( w_open ); - catacurses::refresh(); + wnoutrefresh( w_open ); } std::vector main_menu::load_file( const std::string &path, @@ -455,9 +453,8 @@ void main_menu::display_text( const std::string &text, const std::string &title, fold_and_print_from( w_text, point_zero, width, selected, c_light_gray, text ); draw_scrollbar( w_border, selected, height, iLines, point_south, BORDER_COLOR, true ); - wrefresh( w_border ); - wrefresh( w_text ); - catacurses::refresh(); + wnoutrefresh( w_border ); + wnoutrefresh( w_text ); } void main_menu::load_char_templates() @@ -487,9 +484,7 @@ bool main_menu::opening_screen() world_generator->init(); get_help().load(); - init_windows(); init_strings(); - print_menu( w_open, 0, menu_offset ); if( !assure_dir_exist( PATH_INFO::config_dir() ) ) { popup( _( "Unable to make config directory. Check permissions." ) ); @@ -524,11 +519,15 @@ bool main_menu::opening_screen() load_char_templates(); ctxt.register_cardinal(); + ctxt.register_action( "NEXT_TAB" ); + ctxt.register_action( "PREV_TAB" ); + ctxt.register_action( "QUIT" ); ctxt.register_action( "CONFIRM" ); ctxt.register_action( "DELETE_TEMPLATE" ); ctxt.register_action( "PAGE_UP" ); ctxt.register_action( "PAGE_DOWN" ); + // for the menu shortcuts ctxt.register_action( "ANY_INPUT" ); bool start = false; @@ -567,7 +566,7 @@ bool main_menu::opening_screen() point offset( menu_offset + point( -( xlen / 4 ) + 32 + extra_w / 2, -2 ) ); print_menu_items( w_open, special_names, sel2, offset ); - wrefresh( w_open ); + wnoutrefresh( w_open ); } else if( sel1 == 5 ) { // Settings Menu int settings_subs_to_display = vSettingsSubItems.size(); std::vector settings_subs; @@ -583,7 +582,7 @@ bool main_menu::opening_screen() offset.x -= 6; } print_menu_items( w_open, settings_subs, sel2, offset ); - wrefresh( w_open ); + wnoutrefresh( w_open ); } } } ); @@ -591,7 +590,7 @@ bool main_menu::opening_screen() init_windows(); ui.position_from_window( w_open ); } ); - ui.position_from_window( w_open ); + ui.mark_resize(); while( !start ) { ui_manager::redraw(); @@ -625,7 +624,7 @@ bool main_menu::opening_screen() sel1 = 8; action = "CONFIRM"; } - } else if( action == "LEFT" ) { + } else if( action == "LEFT" || action == "PREV_TAB" ) { sel_line = 0; if( sel1 > 0 ) { sel1--; @@ -633,7 +632,7 @@ bool main_menu::opening_screen() sel1 = 8; } on_move(); - } else if( action == "RIGHT" ) { + } else if( action == "RIGHT" || action == "NEXT_TAB" ) { sel_line = 0; if( sel1 < 8 ) { sel1++; @@ -685,14 +684,14 @@ bool main_menu::opening_screen() } std::string action = ctxt.handle_input(); - if( action == "LEFT" ) { + if( action == "LEFT" || action == "PREV_TAB" ) { if( sel2 > 0 ) { sel2--; } else { sel2 = NUM_SPECIAL_GAMES - 2; } on_move(); - } else if( action == "RIGHT" ) { + } else if( action == "RIGHT" || action == "NEXT_TAB" ) { if( sel2 < NUM_SPECIAL_GAMES - 2 ) { sel2++; } else { @@ -742,14 +741,14 @@ bool main_menu::opening_screen() } } - if( action == "LEFT" ) { + if( action == "LEFT" || action == "PREV_TAB" ) { if( sel2 > 0 ) { --sel2; } else { sel2 = settings_subs_to_display - 1; } on_move(); - } else if( action == "RIGHT" ) { + } else if( action == "RIGHT" || action == "NEXT_TAB" ) { if( sel2 < settings_subs_to_display - 1 ) { ++sel2; } else { @@ -779,10 +778,6 @@ bool main_menu::opening_screen() } } } - if( start ) { - g->refresh_all(); - g->draw(); - } return start; } @@ -822,7 +817,7 @@ bool main_menu::new_character_tab() center_print( w_open, getmaxy( w_open ) - 7, c_yellow, hints[sel2] ); print_menu_items( w_open, vSubItems, sel2, menu_offset + point( 0, -2 ) ); - wrefresh( w_open ); + wnoutrefresh( w_open ); } else if( layer == 3 && sel1 == 1 ) { // Then view presets if( templates.empty() ) { @@ -838,7 +833,7 @@ bool main_menu::new_character_tab() templates[i] ); } } - wrefresh( w_open ); + wnoutrefresh( w_open ); } } ); ui.on_screen_resize( [this]( ui_adaptor & ui ) { @@ -869,13 +864,13 @@ bool main_menu::new_character_tab() } } } - if( action == "LEFT" ) { + if( action == "LEFT" || action == "PREV_TAB" ) { sel2--; if( sel2 < 0 ) { sel2 = vSubItems.size() - 1; } on_move(); - } else if( action == "RIGHT" ) { + } else if( action == "RIGHT" || action == "NEXT_TAB" ) { sel2++; if( sel2 >= static_cast( vSubItems.size() ) ) { sel2 = 0; @@ -891,6 +886,7 @@ bool main_menu::new_character_tab() g->u = avatar(); world_generator->set_active_world( nullptr ); } ); + g->gamemode = nullptr; // First load the mods, this is done by // loading the world. // Pick a world, suppressing prompts if it's "play now" mode. @@ -959,7 +955,7 @@ bool main_menu::new_character_tab() } else { sel3 = 0; } - } else if( action == "LEFT" || action == "QUIT" ) { + } else if( action == "LEFT" || action == "PREV_TAB" || action == "QUIT" ) { sel1 = 1; layer = 2; } else if( !templates.empty() && action == "DELETE_TEMPLATE" ) { @@ -975,11 +971,12 @@ bool main_menu::new_character_tab() } } } - } else if( action == "RIGHT" || action == "CONFIRM" ) { + } else if( action == "RIGHT" || action == "NEXT_TAB" || action == "CONFIRM" ) { on_out_of_scope cleanup( []() { g->u = avatar(); world_generator->set_active_world( nullptr ); } ); + g->gamemode = nullptr; WORLDPTR world = world_generator->pick_world(); if( world == nullptr ) { continue; @@ -1075,7 +1072,7 @@ bool main_menu::load_character_tab( bool transfer ) world_name, savegames_count ); } } - wrefresh( w_open ); + wnoutrefresh( w_open ); } else if( layer == 3 && sel1 == 2 ) { savegames = world_generator->get_world( all_worldnames[sel2] )->world_saves; @@ -1097,7 +1094,7 @@ bool main_menu::load_character_tab( bool transfer ) "%s", savename.player_name() ); } } - wrefresh( w_open ); + wnoutrefresh( w_open ); } } ); ui.on_screen_resize( [this]( ui_adaptor & ui ) { @@ -1128,9 +1125,9 @@ bool main_menu::load_character_tab( bool transfer ) } else { sel2 = 0; } - } else if( action == "LEFT" || action == "QUIT" ) { + } else if( action == "LEFT" || action == "PREV_TAB" || action == "QUIT" ) { layer = 1; - } else if( action == "RIGHT" || action == "CONFIRM" ) { + } else if( action == "RIGHT" || action == "NEXT_TAB" || action == "CONFIRM" ) { if( sel2 >= 0 && sel2 < static_cast( all_worldnames.size() ) ) { layer = 3; } @@ -1165,17 +1162,18 @@ bool main_menu::load_character_tab( bool transfer ) } else { sel3 = 0; } - } else if( action == "LEFT" || action == "QUIT" ) { + } else if( action == "LEFT" || action == "PREV_TAB" || action == "QUIT" ) { layer = transfer ? 1 : 2; sel3 = 0; } - if( action == "RIGHT" || action == "CONFIRM" ) { + if( action == "RIGHT" || action == "NEXT_TAB" || action == "CONFIRM" ) { if( sel3 >= 0 && sel3 < static_cast( savegames.size() ) ) { on_out_of_scope cleanup( []() { g->u = avatar(); world_generator->set_active_world( nullptr ); } ); + g->gamemode = nullptr; WORLDPTR world = world_generator->get_world( all_worldnames[sel2] ); world_generator->last_world_name = world->world_name; world_generator->last_character_name = savegames[sel3].player_name(); @@ -1237,7 +1235,7 @@ void main_menu::world_tab() wprintz( w_open, c_light_gray, "]" ); } - wrefresh( w_open ); + wnoutrefresh( w_open ); } else if( layer == 2 ) { // Show world names mvwprintz( w_open, menu_offset + point( 25 + extra_w / 2, -2 ), ( sel2 == 0 ? h_white : c_white ), "%s", _( "Create World" ) ); @@ -1259,7 +1257,7 @@ void main_menu::world_tab() ( sel2 == i ? color2 : color1 ), "%s (%d)", ( *it ).c_str(), savegames_count ); } - wrefresh( w_open ); + wnoutrefresh( w_open ); } } } ); @@ -1324,11 +1322,11 @@ void main_menu::world_tab() sel3 = 0; } on_move(); - } else if( action == "LEFT" || action == "QUIT" ) { + } else if( action == "LEFT" || action == "PREV_TAB" || action == "QUIT" ) { layer = 2; } - if( action == "RIGHT" || action == "CONFIRM" ) { + if( action == "RIGHT" || action == "NEXT_TAB" || action == "CONFIRM" ) { if( sel3 == 2 ) { // Active World Mods WORLDPTR world = world_generator->get_world( all_worldnames[sel2 - 1] ); world_generator->show_active_world_mods( world->active_mod_order ); @@ -1392,10 +1390,10 @@ void main_menu::world_tab() } else { sel2 = 0; } - } else if( action == "LEFT" || action == "QUIT" ) { + } else if( action == "LEFT" || action == "PREV_TAB" || action == "QUIT" ) { layer = 1; } - if( action == "RIGHT" || action == "CONFIRM" ) { + if( action == "RIGHT" || action == "NEXT_TAB" || action == "CONFIRM" ) { if( sel2 == 0 ) { world_generator->make_new_world(); diff --git a/src/map.cpp b/src/map.cpp old mode 100755 new mode 100644 index 157ec0fd0b475..52e3cb2d4c86e --- a/src/map.cpp +++ b/src/map.cpp @@ -84,6 +84,7 @@ #include "timed_event.h" #include "translations.h" #include "trap.h" +#include "ui_manager.h" #include "value_ptr.h" #include "veh_type.h" #include "vehicle.h" @@ -92,6 +93,24 @@ #include "weather.h" #include "weighted_list.h" +static const itype_id itype_battery( "battery" ); +static const itype_id itype_chemistry_set( "chemistry_set" ); +static const itype_id itype_dehydrator( "dehydrator" ); +static const itype_id itype_electrolysis_kit( "electrolysis_kit" ); +static const itype_id itype_food_processor( "food_processor" ); +static const itype_id itype_forge( "forge" ); +static const itype_id itype_glass_shard( "glass_shard" ); +static const itype_id itype_hotplate( "hotplate" ); +static const itype_id itype_kiln( "kiln" ); +static const itype_id itype_nail( "nail" ); +static const itype_id itype_press( "press" ); +static const itype_id itype_sheet( "sheet" ); +static const itype_id itype_soldering_iron( "soldering_iron" ); +static const itype_id itype_stick( "stick" ); +static const itype_id itype_string_36( "string_36" ); +static const itype_id itype_vac_sealer( "vac_sealer" ); +static const itype_id itype_welder( "welder" ); + static const mtype_id mon_zombie( "mon_zombie" ); static const skill_id skill_traps( "traps" ); @@ -663,7 +682,8 @@ vehicle *map::move_vehicle( vehicle &veh, const tripoint &dp, const tileray &fac // Redraw scene // But only if the vehicle was seen before or after the move if( seen || sees_veh( g->u, veh, true ) ) { - g->draw(); + g->invalidate_main_ui_adaptor(); + ui_manager::redraw_invalidated(); refresh_display(); } return new_vehicle; @@ -1283,9 +1303,10 @@ void map::furn_set( const tripoint &p, const furn_id &new_furniture ) const furn_t &new_t = new_furniture.obj(); // If player has grabbed this furniture and it's no longer grabbable, release the grab. - if( g->u.get_grab_type() == OBJECT_FURNITURE && g->u.grab_point == p && !new_t.is_movable() ) { + if( g->u.get_grab_type() == object_type::FURNITURE && g->u.grab_point == p && + !new_t.is_movable() ) { add_msg( _( "The %s you were grabbing is destroyed!" ), old_t.name() ); - g->u.grab( OBJECT_NONE ); + g->u.grab( object_type::NONE ); } // If a creature was crushed under a rubble -> free it if( old_id == f_rubble && new_furniture == f_null ) { @@ -2401,7 +2422,7 @@ void map::make_rubble( const tripoint &p, const furn_id &rubble_type, const bool for( int i = 0; i < splinter_count; i++ ) { add_item_or_charges( p, splinter ); } - spawn_item( p, "nail", 1, rng( 20, 50 ) ); + spawn_item( p, itype_nail, 1, rng( 20, 50 ) ); } } @@ -2655,7 +2676,7 @@ bool map::mop_spills( const tripoint &p ) if( !has_flag( "LIQUIDCONT", p ) ) { auto items = i_at( p ); auto new_end = std::remove_if( items.begin(), items.end(), []( const item & it ) { - return it.made_of( LIQUID ); + return it.made_of( phase_id::LIQUID ); } ); retval = new_end != items.end(); while( new_end != items.end() ) { @@ -2692,7 +2713,7 @@ bool map::mop_spills( const tripoint &p ) //remove any liquids that somehow didn't fall through to the ground vehicle_stack here = veh->get_items( elem ); auto new_end = std::remove_if( here.begin(), here.end(), []( const item & it ) { - return it.made_of( LIQUID ); + return it.made_of( phase_id::LIQUID ); } ); retval |= ( new_end != here.end() ); while( new_end != here.end() ) { @@ -2811,7 +2832,7 @@ void map::smash_items( const tripoint &p, const int power, const std::string &ca std::vector contents; map_stack items = i_at( p ); for( auto i = items.begin(); i != items.end(); ) { - if( i->made_of( LIQUID ) ) { + if( i->made_of( phase_id::LIQUID ) ) { i++; continue; } @@ -3501,9 +3522,9 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) if( dam > 0 ) { break_glass( p, 16 ); ter_set( p, t_window_frame ); - spawn_item( p, "sheet", 1 ); - spawn_item( p, "stick" ); - spawn_item( p, "string_36" ); + spawn_item( p, itype_sheet, 1 ); + spawn_item( p, itype_stick ); + spawn_item( p, itype_string_36 ); } } } else if( terrain == t_window_taped || @@ -3531,7 +3552,7 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) if( dam > 0 ) { break_glass( p, 16 ); ter_set( p, t_window_bars ); - spawn_item( p, "glass_shard", 5 ); + spawn_item( p, itype_glass_shard, 5 ); } } else if( terrain == t_window_boarded ) { dam -= rng( 10, 30 ); @@ -3618,7 +3639,7 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) if( one_in( 3 ) ) { break_glass( p, 16 ); ter_set( p, t_thconc_floor ); - spawn_item( p, "glass_shard", rng( 8, 16 ) ); + spawn_item( p, itype_glass_shard, rng( 8, 16 ) ); dam = 0; //Prevent damaging additional items, since we shot at the ceiling. } } else if( impassable( p ) && !is_transparent( p ) ) { @@ -3952,7 +3973,7 @@ map_stack map::i_at( const tripoint &p ) return map_stack{ ¤t_submap->get_items( l ), p, this }; } -map_stack::iterator map::i_rem( const tripoint &p, map_stack::const_iterator it ) +map_stack::iterator map::i_rem( const tripoint &p, const map_stack::const_iterator &it ) { point l; submap *const current_submap = get_submap_at( p, l ); @@ -4002,7 +4023,7 @@ item &map::spawn_an_item( const tripoint &p, item new_item, new_item.charges = charges; } new_item = new_item.in_its_container(); - if( ( new_item.made_of( LIQUID ) && has_flag( "SWIMMABLE", p ) ) || + if( ( new_item.made_of( phase_id::LIQUID ) && has_flag( "SWIMMABLE", p ) ) || has_flag( "DESTROY_ITEM", p ) ) { return null_item_reference(); } @@ -4021,7 +4042,7 @@ std::vector map::spawn_items( const tripoint &p, const std::vector const bool swimmable = has_flag( "SWIMMABLE", p ); for( const item &new_item : new_items ) { - if( new_item.made_of( LIQUID ) && swimmable ) { + if( new_item.made_of( phase_id::LIQUID ) && swimmable ) { continue; } item &it = add_item_or_charges( p, new_item ); @@ -4043,11 +4064,11 @@ void map::spawn_natural_artifact( const tripoint &p, artifact_natural_property p add_item_or_charges( p, item( new_natural_artifact( prop ), 0 ) ); } -void map::spawn_item( const tripoint &p, const std::string &type_id, +void map::spawn_item( const tripoint &p, const itype_id &type_id, const unsigned quantity, const int charges, const time_point &birthday, const int damlevel ) { - if( type_id == "null" ) { + if( type_id.is_null() ) { return; } @@ -4099,7 +4120,7 @@ item &map::add_item_or_charges( const tripoint &pos, item obj, bool overflow ) } // Cannot drop liquids into tiles that are comprised of liquid - if( obj.made_of_from_type( LIQUID ) && has_flag( "SWIMMABLE", e ) ) { + if( obj.made_of_from_type( phase_id::LIQUID ) && has_flag( "SWIMMABLE", e ) ) { return false; } @@ -4140,10 +4161,11 @@ item &map::add_item_or_charges( const tripoint &pos, item obj, bool overflow ) return null_item_reference(); } - if( ( !has_flag( "NOITEM", pos ) || ( has_flag( "LIQUIDCONT", pos ) && obj.made_of( LIQUID ) ) ) + if( ( !has_flag( "NOITEM", pos ) || ( has_flag( "LIQUIDCONT", pos ) && + obj.made_of( phase_id::LIQUID ) ) ) && valid_limits( pos ) ) { // Pass map into on_drop, because this map may not be the global map object (in mapgen, for instance). - if( obj.made_of( LIQUID ) || !obj.has_flag( "DROP_ACTION_ONLY_IF_LIQUID" ) ) { + if( obj.made_of( phase_id::LIQUID ) || !obj.has_flag( "DROP_ACTION_ONLY_IF_LIQUID" ) ) { if( obj.on_drop( pos, *this ) ) { return null_item_reference(); } @@ -4168,7 +4190,7 @@ item &map::add_item_or_charges( const tripoint &pos, item obj, bool overflow ) if( route( pos, e, setting ).empty() ) { continue; } - if( obj.made_of( LIQUID ) || !obj.has_flag( "DROP_ACTION_ONLY_IF_LIQUID" ) ) { + if( obj.made_of( phase_id::LIQUID ) || !obj.has_flag( "DROP_ACTION_ONLY_IF_LIQUID" ) ) { if( obj.on_drop( e, *this ) ) { return null_item_reference(); } @@ -4204,7 +4226,7 @@ item &map::add_item( const tripoint &p, item new_item ) new_item.process( nullptr, p, false ); } - if( new_item.made_of( LIQUID ) && has_flag( "SWIMMABLE", p ) ) { + if( new_item.made_of( phase_id::LIQUID ) && has_flag( "SWIMMABLE", p ) ) { return null_item_reference(); } @@ -4400,7 +4422,7 @@ static void process_vehicle_items( vehicle &cur_veh, int part ) continue; } // TODO: BATTERIES this should be rewritten when vehicle power and items both use energy quantities - if( n.ammo_capacity() > n.ammo_remaining() || + if( n.ammo_capacity( ammotype( "battery" ) ) > n.ammo_remaining() || ( n.type->battery && n.type->battery->max_capacity > n.energy_remaining() ) ) { int power = recharge_part.info().bonus; while( power >= 1000 || x_in_y( power, 1000 ) ) { @@ -4410,7 +4432,7 @@ static void process_vehicle_items( vehicle &cur_veh, int part ) if( n.is_battery() ) { n.set_energy( 1_kJ ); } else { - n.ammo_set( "battery", n.ammo_remaining() + 1 ); + n.ammo_set( itype_battery, n.ammo_remaining() + 1 ); } } power -= 1000; @@ -4490,9 +4512,9 @@ void map::process_items_in_submap( submap ¤t_submap, const tripoint &gridp const tripoint map_location = tripoint( grid_offset + active_item_ref.location, gridp.z ); // root cellars are special - temperature_flag flag = temperature_flag::TEMP_NORMAL; + temperature_flag flag = temperature_flag::NORMAL; if( ter( map_location ) == t_rootcellar ) { - flag = temperature_flag::TEMP_ROOT_CELLAR; + flag = temperature_flag::ROOT_CELLAR; } map_stack items = i_at( map_location ); process_map_items( items, active_item_ref.item_ref, map_location, 1, flag ); @@ -4553,21 +4575,21 @@ void map::process_items_in_vehicle( vehicle &cur_veh, submap ¤t_submap ) const tripoint item_loc = it->pos(); auto items = cur_veh.get_items( static_cast( it->part_index() ) ); float it_insulation = 1.0; - temperature_flag flag = temperature_flag::TEMP_NORMAL; + temperature_flag flag = temperature_flag::NORMAL; if( target.has_temperature() || target.is_food_container() ) { const vpart_info &pti = pt.info(); if( engine_heater_is_on ) { - flag = temperature_flag::TEMP_HEATER; + flag = temperature_flag::HEATER; } // some vehicle parts provide insulation, default is 1 it_insulation = item::find_type( pti.item )->insulation_factor; if( pt.enabled && pti.has_flag( VPFLAG_FRIDGE ) ) { it_insulation = 1; // ignore fridge insulation if on - flag = temperature_flag::TEMP_FRIDGE; + flag = temperature_flag::FRIDGE; } else if( pt.enabled && pti.has_flag( VPFLAG_FREEZER ) ) { it_insulation = 1; // ignore freezer insulation if on - flag = temperature_flag::TEMP_FREEZER; + flag = temperature_flag::FREEZER; } } if( !process_map_items( items, active_item_ref.item_ref, item_loc, it_insulation, flag ) ) { @@ -4702,7 +4724,7 @@ std::list use_charges_from_stack( Stack stack, const itype_id &type, int & { std::list ret; for( auto a = stack.begin(); a != stack.end() && quantity > 0; ) { - if( !a->made_of( LIQUID ) && a->use_charges( type, quantity, ret, pos, filter ) ) { + if( !a->made_of( phase_id::LIQUID ) && a->use_charges( type, quantity, ret, pos, filter ) ) { a = stack.erase( a ); } else { ++a; @@ -4719,7 +4741,8 @@ static void use_charges_from_furn( const furn_t &f, const itype_id &type, int &q auto current_item = item_list.begin(); for( ; current_item != item_list.end(); ++current_item ) { // looking for a liquid that matches - if( filter( *current_item ) && current_item->made_of( LIQUID ) && type == current_item->typeId() ) { + if( filter( *current_item ) && current_item->made_of( phase_id::LIQUID ) && + type == current_item->typeId() ) { ret.push_back( *current_item ); if( current_item->charges - quantity > 0 ) { // Update the returned liquid amount to match the requested amount @@ -4826,11 +4849,11 @@ std::list map::use_charges( const tripoint &origin, const int range, const cata::optional cargo = vp.part_with_feature( "CARGO", true ); if( kpart ) { // we have a faucet, now to see what to drain - itype_id ftype = "null"; + itype_id ftype = itype_id::NULL_ID(); // Special case hotplates which draw battery power - if( type == "hotplate" ) { - ftype = "battery"; + if( type == itype_hotplate ) { + ftype = itype_battery; } else { ftype = type; } @@ -4848,12 +4871,12 @@ std::list map::use_charges( const tripoint &origin, const int range, } if( weldpart ) { // we have a weldrig, now to see what to drain - itype_id ftype = "null"; + itype_id ftype = itype_id::NULL_ID(); - if( type == "welder" ) { - ftype = "battery"; - } else if( type == "soldering_iron" ) { - ftype = "battery"; + if( type == itype_welder ) { + ftype = itype_battery; + } else if( type == itype_soldering_iron ) { + ftype = itype_battery; } // TODO: add a sane birthday arg item tmp( type, 0 ); @@ -4867,16 +4890,16 @@ std::list map::use_charges( const tripoint &origin, const int range, } if( craftpart ) { // we have a craftrig, now to see what to drain - itype_id ftype = "null"; + itype_id ftype = itype_id::NULL_ID(); - if( type == "press" ) { - ftype = "battery"; - } else if( type == "vac_sealer" ) { - ftype = "battery"; - } else if( type == "dehydrator" ) { - ftype = "battery"; - } else if( type == "food_processor" ) { - ftype = "battery"; + if( type == itype_press ) { + ftype = itype_battery; + } else if( type == itype_vac_sealer ) { + ftype = itype_battery; + } else if( type == itype_dehydrator ) { + ftype = itype_battery; + } else if( type == itype_food_processor ) { + ftype = itype_battery; } // TODO: add a sane birthday arg @@ -4891,10 +4914,10 @@ std::list map::use_charges( const tripoint &origin, const int range, } if( forgepart ) { // we have a veh_forge, now to see what to drain - itype_id ftype = "null"; + itype_id ftype = itype_id::NULL_ID(); - if( type == "forge" ) { - ftype = "battery"; + if( type == itype_forge ) { + ftype = itype_battery; } // TODO: add a sane birthday arg @@ -4909,10 +4932,10 @@ std::list map::use_charges( const tripoint &origin, const int range, } if( kilnpart ) { // we have a veh_kiln, now to see what to drain - itype_id ftype = "null"; + itype_id ftype = itype_id::NULL_ID(); - if( type == "kiln" ) { - ftype = "battery"; + if( type == itype_kiln ) { + ftype = itype_battery; } // TODO: add a sane birthday arg @@ -4927,14 +4950,14 @@ std::list map::use_charges( const tripoint &origin, const int range, } if( chempart ) { // we have a chem_lab, now to see what to drain - itype_id ftype = "null"; + itype_id ftype = itype_id::NULL_ID(); - if( type == "chemistry_set" ) { - ftype = "battery"; - } else if( type == "hotplate" ) { - ftype = "battery"; - } else if( type == "electrolysis_kit" ) { - ftype = "battery"; + if( type == itype_chemistry_set ) { + ftype = itype_battery; + } else if( type == itype_hotplate ) { + ftype = itype_battery; + } else if( type == itype_electrolysis_kit ) { + ftype = itype_battery; } // TODO: add a sane birthday arg @@ -5460,7 +5483,7 @@ void map::update_visibility_cache( const int zlev ) for( y = 0; y < MAPSIZE_Y; y++ ) { lit_level ll = apparent_light_at( p, visibility_variables_cache ); visibility_cache[x][y] = ll; - sm_squares_seen[ x / SEEX ][ y / SEEY ] += ( ll == LL_BRIGHT || ll == LL_LIT ); + sm_squares_seen[ x / SEEX ][ y / SEEY ] += ( ll == lit_level::BRIGHT || ll == lit_level::LIT ); } } @@ -5484,14 +5507,14 @@ const visibility_variables &map::get_visibility_variables_cache() const visibility_type map::get_visibility( const lit_level ll, const visibility_variables &cache ) const { switch( ll ) { - case LL_DARK: + case lit_level::DARK: // can't see this square at all if( cache.u_is_boomered ) { return VIS_BOOMER_DARK; } else { return VIS_DARK; } - case LL_BRIGHT_ONLY: + case lit_level::BRIGHT_ONLY: // can only tell that this square is bright if( cache.u_is_boomered ) { return VIS_BOOMER; @@ -5499,15 +5522,15 @@ visibility_type map::get_visibility( const lit_level ll, const visibility_variab return VIS_LIT; } - case LL_LOW: + case lit_level::LOW: // low light, square visible in monochrome - case LL_LIT: + case lit_level::LIT: // normal light - case LL_BRIGHT: + case lit_level::BRIGHT: // bright light return VIS_CLEAR; - case LL_BLANK: - case LL_MEMORIZED: + case lit_level::BLANK: + case lit_level::MEMORIZED: return VIS_HIDDEN; } return VIS_HIDDEN; @@ -5538,8 +5561,6 @@ bool map::apply_vision_effects( const catacurses::window &w, const visibility_ty case VIS_DARK: // can't see this square at all case VIS_HIDDEN: - symbol = ' '; - color = c_black; break; } wputch( w, color, symbol ); @@ -5624,12 +5645,12 @@ void map::draw( const catacurses::window &w, const tripoint ¢er ) const bool just_this_zlevel = draw_maptile( w, g->u, p, curr_maptile, false, true, center, - lighting == LL_LOW, lighting == LL_BRIGHT, true ); + lighting == lit_level::LOW, lighting == lit_level::BRIGHT, true ); if( !just_this_zlevel ) { p.z--; const maptile tile_below = maptile( sm_below, l ); draw_from_above( w, g->u, p, tile_below, false, center, - lighting == LL_LOW, lighting == LL_BRIGHT, false ); + lighting == lit_level::LOW, lighting == lit_level::BRIGHT, false ); p.z++; } } else if( do_map_memory && ( vis == VIS_HIDDEN || vis == VIS_DARK ) ) { @@ -6573,7 +6594,6 @@ void map::vertical_shift( const int newz ) set_abs_sub( tripoint( trp.xy(), newz ) ); // TODO: Remove the function when it's safe - return; } // saven saves a single nonant. worldx and worldy are used for the file @@ -6750,13 +6770,14 @@ void map::rotten_item_spawn( const item &item, const tripoint &pnt ) } const auto &comest = item.get_comestible(); mongroup_id mgroup = comest->rot_spawn; - if( mgroup == "GROUP_NULL" ) { + if( mgroup.is_null() ) { return; } - const int chance = ( comest->rot_spawn_chance * get_option( "CARRION_SPAWNRATE" ) ) / 100; + const int chance = static_cast( comest->rot_spawn_chance * + get_option( "CARRION_SPAWNRATE" ) ); if( rng( 0, 100 ) < chance ) { MonsterGroupResult spawn_details = MonsterGroupManager::GetResultFromGroup( mgroup ); - add_spawn( spawn_details.name, 1, pnt, false ); + add_spawn( spawn_details, pnt ); if( g->u.sees( pnt ) ) { if( item.is_seed() ) { add_msg( m_warning, _( "Something has crawled out of the %s plants!" ), item.get_plant_name() ); @@ -7315,6 +7336,13 @@ void map::spawn_monsters_submap( const tripoint &gp, bool ignore_sight ) if( i.friendly ) { tmp.friendly = -1; } + if( !i.data.ammo.empty() ) { + for( std::pair ap : i.data.ammo ) { + tmp.ammo.emplace( ap.first, ap.second.get() ); + } + } else { + tmp.ammo = tmp.type->starting_ammo; + } const auto valid_location = [&]( const tripoint & p ) { // Checking for creatures via g is only meaningful if this is the main game map. @@ -8257,7 +8285,7 @@ level_cache::level_cache() std::fill_n( &vision_transparency_cache[0][0], map_dimensions, 0.0f ); std::fill_n( &seen_cache[0][0], map_dimensions, 0.0f ); std::fill_n( &camera_cache[0][0], map_dimensions, 0.0f ); - std::fill_n( &visibility_cache[0][0], map_dimensions, LL_DARK ); + std::fill_n( &visibility_cache[0][0], map_dimensions, lit_level::DARK ); veh_in_active_range = false; std::fill_n( &veh_exists_at[0][0], map_dimensions, false ); max_populated_zlev = OVERMAP_HEIGHT; diff --git a/src/map.h b/src/map.h index f4399d71138bd..a7c0c5186c98d 100644 --- a/src/map.h +++ b/src/map.h @@ -29,6 +29,7 @@ #include "line.h" #include "lru_cache.h" #include "mapdata.h" +#include "mapgen.h" #include "point.h" #include "rng.h" #include "shadowcasting.h" @@ -67,11 +68,11 @@ struct rl_vec2d; struct trap; enum class special_item_type : int; -using itype_id = std::string; class npc_template; class tileray; class vpart_reference; struct mongroup; +struct MonsterGroupResult; struct projectile; struct veh_collision; template @@ -999,8 +1000,8 @@ class map } // i_rem() methods that return values act like container::erase(), // returning an iterator to the next item after removal. - map_stack::iterator i_rem( const tripoint &p, map_stack::const_iterator it ); - map_stack::iterator i_rem( const point &location, map_stack::const_iterator it ) { + map_stack::iterator i_rem( const tripoint &p, const map_stack::const_iterator &it ); + map_stack::iterator i_rem( const point &location, const map_stack::const_iterator &it ) { return i_rem( tripoint( location, abs_sub.z ), it ); } void i_rem( const tripoint &p, item *it ); @@ -1009,9 +1010,22 @@ class map } void spawn_artifact( const tripoint &p ); void spawn_natural_artifact( const tripoint &p, artifact_natural_property prop ); - void spawn_item( const tripoint &p, const std::string &type_id, + void spawn_item( const tripoint &p, const itype_id &type_id, unsigned quantity = 1, int charges = 0, const time_point &birthday = calendar::start_of_cataclysm, int damlevel = 0 ); + void spawn_item( const point &p, const itype_id &type_id, + unsigned quantity = 1, int charges = 0, + const time_point &birthday = calendar::start_of_cataclysm, int damlevel = 0 ) { + spawn_item( tripoint( p, abs_sub.z ), type_id, quantity, charges, birthday, damlevel ); + } + + // FIXME: remove these overloads and require spawn_item to take an + // itype_id + void spawn_item( const tripoint &p, const std::string &type_id, + unsigned quantity = 1, int charges = 0, + const time_point &birthday = calendar::start_of_cataclysm, int damlevel = 0 ) { + spawn_item( p, itype_id( type_id ), quantity, charges, birthday, damlevel ); + } void spawn_item( const point &p, const std::string &type_id, unsigned quantity = 1, int charges = 0, const time_point &birthday = calendar::start_of_cataclysm, int damlevel = 0 ) { @@ -1338,7 +1352,8 @@ class map void apply_faction_ownership( const point &p1, const point &p2, const faction_id &id ); void add_spawn( const mtype_id &type, int count, const tripoint &p, bool friendly = false, int faction_id = -1, int mission_id = -1, - const std::string &name = "NONE" ) const; + const std::string &name = "NONE", const spawn_data &data = spawn_data() ) const; + void add_spawn( const MonsterGroupResult &spawn_details, const tripoint &p ) const; void do_vehicle_caching( int z ); // Note: in 3D mode, will actually build caches on ALL z-levels void build_map_cache( int zlev, bool skip_lightmap = false ); @@ -1671,8 +1686,8 @@ class map void apply_light_arc( const tripoint &p, int angle, float luminance, int wideangle = 30 ); void apply_light_ray( bool lit[MAPSIZE_X][MAPSIZE_Y], const tripoint &s, const tripoint &e, float luminance ); - void add_light_from_items( const tripoint &p, item_stack::iterator begin, - item_stack::iterator end ); + void add_light_from_items( const tripoint &p, const item_stack::iterator &begin, + const item_stack::iterator &end ); std::unique_ptr add_vehicle_to_map( std::unique_ptr veh, bool merge_wrecks ); // Internal methods used to bash just the selected features diff --git a/src/map_extras.cpp b/src/map_extras.cpp index afc4681bb9006..92d938d057122 100644 --- a/src/map_extras.cpp +++ b/src/map_extras.cpp @@ -68,14 +68,58 @@ static const std::string flag_SHRUB( "SHRUB" ); static const std::string flag_TREE( "TREE" ); static const std::string flag_YOUNG( "YOUNG" ); -static const ter_str_id ter_dirt( "t_dirt" ); -static const ter_str_id ter_grass_dead( "t_grass_dead" ); -static const ter_str_id ter_stump( "t_stump" ); -static const ter_str_id ter_tree_dead( "t_tree_dead" ); -static const ter_str_id ter_tree_deadpine( "t_tree_deadpine" ); -static const ter_str_id ter_tree_birch_harvested( "t_tree_birch_harvested" ); -static const ter_str_id ter_tree_hickory_dead( "t_tree_hickory_dead" ); -static const ter_str_id ter_trunk( "t_trunk" ); +static const itype_id itype_223_casing( "223_casing" ); +static const itype_id itype_762_51_casing( "762_51_casing" ); +static const itype_id itype_9mm_casing( "9mm_casing" ); +static const itype_id itype_acoustic_guitar( "acoustic_guitar" ); +static const itype_id itype_anbc_suit( "anbc_suit" ); +static const itype_id itype_ash( "ash" ); +static const itype_id itype_bag_canvas( "bag_canvas" ); +static const itype_id itype_bottle_glass( "bottle_glass" ); +static const itype_id itype_bullwhip( "bullwhip" ); +static const itype_id itype_chunk_sulfur( "chunk_sulfur" ); +static const itype_id itype_coke( "coke" ); +static const itype_id itype_crowbar( "crowbar" ); +static const itype_id itype_fedora( "fedora" ); +static const itype_id itype_glasses_eye( "glasses_eye" ); +static const itype_id itype_hatchet( "hatchet" ); +static const itype_id itype_heroin( "heroin" ); +static const itype_id itype_holybook_bible1( "holybook_bible1" ); +static const itype_id itype_indoor_volleyball( "indoor_volleyball" ); +static const itype_id itype_jacket_leather( "jacket_leather" ); +static const itype_id itype_katana( "katana" ); +static const itype_id itype_landmine( "landmine" ); +static const itype_id itype_machete( "machete" ); +static const itype_id itype_material_sand( "material_sand" ); +static const itype_id itype_material_soil( "material_soil" ); +static const itype_id itype_meth( "meth" ); +static const itype_id itype_rag_bloody( "rag_bloody" ); +static const itype_id itype_remington_870_breacher( "remington_870_breacher" ); +static const itype_id itype_shot_hull( "shot_hull" ); +static const itype_id itype_splinter( "splinter" ); +static const itype_id itype_stanag30( "stanag30" ); +static const itype_id itype_stick( "stick" ); +static const itype_id itype_stick_long( "stick_long" ); +static const itype_id itype_sunglasses( "sunglasses" ); +static const itype_id itype_sw_619( "sw_619" ); +static const itype_id itype_touring_suit( "touring_suit" ); +static const itype_id itype_tux( "tux" ); +static const itype_id itype_umbrella( "umbrella" ); +static const itype_id itype_usp_45( "usp_45" ); +static const itype_id itype_vodka( "vodka" ); +static const itype_id itype_weed( "weed" ); +static const itype_id itype_wheel( "wheel" ); +static const itype_id itype_withered( "withered" ); +static const itype_id itype_wrench( "wrench" ); + +static const ter_str_id ter_t_dirt( "t_dirt" ); +static const ter_str_id ter_t_grass_dead( "t_grass_dead" ); +static const ter_str_id ter_t_stump( "t_stump" ); +static const ter_str_id ter_t_tree_dead( "t_tree_dead" ); +static const ter_str_id ter_t_tree_deadpine( "t_tree_deadpine" ); +static const ter_str_id ter_t_tree_birch_harvested( "t_tree_birch_harvested" ); +static const ter_str_id ter_t_tree_hickory_dead( "t_tree_hickory_dead" ); +static const ter_str_id ter_t_trunk( "t_trunk" ); static const mongroup_id GROUP_FISH( "GROUP_FISH" ); static const mongroup_id GROUP_FUNGI_FUNGALOID( "GROUP_FUNGI_FUNGALOID" ); @@ -168,22 +212,22 @@ static void dead_vegetation_parser( map &m, const tripoint &loc ) if( fid.has_flag( flag_PLANT ) || fid.has_flag( flag_FLOWER ) || fid.has_flag( flag_ORGANIC ) ) { m.i_clear( loc ); m.furn_set( loc, f_null ); - m.spawn_item( loc, "withered" ); + m.spawn_item( loc, itype_withered ); } // terrain specific conversions const ter_id tid = m.ter( loc ); static const std::map dies_into {{ - {t_grass, ter_grass_dead}, - {t_grass_long, ter_grass_dead}, - {t_grass_tall, ter_grass_dead}, - {t_moss, ter_grass_dead}, - {t_tree_pine, ter_tree_deadpine}, - {t_tree_birch, ter_tree_birch_harvested}, - {t_tree_willow, ter_tree_dead}, - {t_tree_hickory, ter_tree_hickory_dead}, - {t_tree_hickory_harvested, ter_tree_hickory_dead}, - {t_grass_golf, ter_grass_dead}, - {t_grass_white, ter_grass_dead}, + {t_grass, ter_t_grass_dead}, + {t_grass_long, ter_t_grass_dead}, + {t_grass_tall, ter_t_grass_dead}, + {t_moss, ter_t_grass_dead}, + {t_tree_pine, ter_t_tree_deadpine}, + {t_tree_birch, ter_t_tree_birch_harvested}, + {t_tree_willow, ter_t_tree_dead}, + {t_tree_hickory, ter_t_tree_hickory_dead}, + {t_tree_hickory_harvested, ter_t_tree_hickory_dead}, + {t_grass_golf, ter_t_grass_dead}, + {t_grass_white, ter_t_grass_dead}, }}; const auto iter = dies_into.find( tid ); @@ -195,20 +239,20 @@ static void dead_vegetation_parser( map &m, const tripoint &loc ) if( tr.has_flag( flag_SHRUB ) ) { m.ter_set( loc, t_dirt ); if( one_in( 2 ) ) { - m.spawn_item( loc, "stick" ); + m.spawn_item( loc, itype_stick ); } } else if( tr.has_flag( flag_TREE ) ) { if( one_in( 4 ) ) { - m.ter_set( loc, ter_trunk ); + m.ter_set( loc, ter_t_trunk ); } else if( one_in( 4 ) ) { - m.ter_set( loc, ter_stump ); + m.ter_set( loc, ter_t_stump ); } else { - m.ter_set( loc, ter_tree_dead ); + m.ter_set( loc, ter_t_tree_dead ); } } else if( tr.has_flag( flag_YOUNG ) ) { - m.ter_set( loc, ter_dirt ); + m.ter_set( loc, ter_t_dirt ); if( one_in( 2 ) ) { - m.spawn_item( loc, "stick_long" ); + m.spawn_item( loc, itype_stick_long ); } } } @@ -833,7 +877,7 @@ static bool mx_drugdeal( map &m, const tripoint &abs_sub ) case 1: // Weed num_drugs = rng( 20, 30 ); - drugtype = "weed"; + drugtype = itype_weed; break; case 2: case 3: @@ -841,20 +885,20 @@ static bool mx_drugdeal( map &m, const tripoint &abs_sub ) case 5: // Cocaine num_drugs = rng( 10, 20 ); - drugtype = "coke"; + drugtype = itype_coke; break; case 6: case 7: case 8: // Meth num_drugs = rng( 8, 14 ); - drugtype = "meth"; + drugtype = itype_meth; break; case 9: case 10: // Heroin num_drugs = rng( 6, 12 ); - drugtype = "heroin"; + drugtype = itype_heroin; break; } int num_bodies_a = dice( 3, 3 ); @@ -1088,7 +1132,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) //7.62x51mm casings left from m60 of the humvee for( const auto &loc : m.points_in_radius( { 6, 4, abs_sub.z }, 3, 0 ) ) { if( one_in( 4 ) ) { - m.spawn_item( loc, "762_51_casing" ); + m.spawn_item( loc, itype_762_51_casing ); } } @@ -1105,7 +1149,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) //5.56x45mm casings left from a soldier for( const auto &loc : m.points_in_radius( { 17, 4, abs_sub.z }, 2, 0 ) ) { if( one_in( 4 ) ) { - m.spawn_item( loc, "223_casing" ); + m.spawn_item( loc, itype_223_casing ); } } @@ -1121,7 +1165,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( point( 15, 5 ), point( 20, 5 ) ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i, abs_sub.z }, itype_stanag30 ); } } @@ -1213,14 +1257,14 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) //5.56x45mm casings left from a soldier for( const auto &loc : m.points_in_radius( { 9, 15, abs_sub.z }, 2, 0 ) ) { if( one_in( 4 ) ) { - m.spawn_item( loc, "223_casing" ); + m.spawn_item( loc, itype_223_casing ); } } //5.56x45mm casings left from another soldier for( const auto &loc : m.points_in_radius( { 15, 15, abs_sub.z }, 2, 0 ) ) { if( one_in( 4 ) ) { - m.spawn_item( loc, "223_casing" ); + m.spawn_item( loc, itype_223_casing ); } } @@ -1228,7 +1272,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( point( 5, 16 ), point( 18, 16 ) ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i, abs_sub.z }, itype_stanag30 ); } } @@ -1321,8 +1365,8 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) //Spill sand from damaged sandbags std::vector sandbag_positions = squares_in_direction( point( 10, 7 ), point( 11, 8 ) ); for( auto &i : sandbag_positions ) { - m.spawn_item( { i, abs_sub.z }, "bag_canvas", rng( 5, 13 ) ); - m.spawn_item( { i, abs_sub.z }, "material_sand", rng( 3, 8 ) ); + m.spawn_item( { i, abs_sub.z }, itype_bag_canvas, rng( 5, 13 ) ); + m.spawn_item( { i, abs_sub.z }, itype_material_sand, rng( 3, 8 ) ); } } else { m.put_items_from_loc( "army_bed", { 1, 6, abs_sub.z } ); @@ -1331,7 +1375,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) //5.56x45mm casings left from a soldier for( const auto &loc : m.points_in_radius( { 9, 8, abs_sub.z }, 2, 0 ) ) { if( one_in( 4 ) ) { - m.spawn_item( loc, "223_casing" ); + m.spawn_item( loc, itype_223_casing ); } } @@ -1339,7 +1383,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( point( 9, 3 ), point( 9, 13 ) ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i, abs_sub.z }, itype_stanag30 ); } } //Intact sandbag barricade @@ -1363,7 +1407,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) //5.56x45mm casings left from another soldier for( const auto &loc : m.points_in_radius( { 9, 18, abs_sub.z }, 2, 0 ) ) { if( one_in( 4 ) ) { - m.spawn_item( loc, "223_casing" ); + m.spawn_item( loc, itype_223_casing ); } } @@ -1371,7 +1415,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( point( 9, 16 ), point( 9, 20 ) ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i, abs_sub.z }, itype_stanag30 ); } } @@ -1443,7 +1487,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) //5.56x45mm casings left from soldiers for( const auto &loc : m.points_in_radius( { 15, 5, abs_sub.z }, 2, 0 ) ) { if( one_in( 4 ) ) { - m.spawn_item( loc, "223_casing" ); + m.spawn_item( loc, itype_223_casing ); } } @@ -1451,7 +1495,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( point( 15, 2 ), point( 15, 8 ) ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i, abs_sub.z }, itype_stanag30 ); } } @@ -1461,8 +1505,8 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) m.furn_set( { 17, 18, abs_sub.z }, f_crate_o ); //...and fill them with mines - m.spawn_item( { 16, 18, abs_sub.z }, "landmine", rng( 0, 5 ) ); - m.spawn_item( { 16, 19, abs_sub.z }, "landmine", rng( 0, 5 ) ); + m.spawn_item( { 16, 18, abs_sub.z }, itype_landmine, rng( 0, 5 ) ); + m.spawn_item( { 16, 19, abs_sub.z }, itype_landmine, rng( 0, 5 ) ); // Set some resting place with fire ring, camp chairs, tourist table and benches m.furn_set( { 20, 12, abs_sub.z }, f_crate_o ); @@ -1471,12 +1515,12 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) line_furn( &m, f_bench, point( 23, 11 ), point( 23, 13 ) ); line_furn( &m, f_camp_chair, point( 20, 14 ), point( 21, 14 ) ); - m.spawn_item( { 21, 12, abs_sub.z }, "splinter", rng( 5, 10 ) ); + m.spawn_item( { 21, 12, abs_sub.z }, itype_splinter, rng( 5, 10 ) ); //33% chance for an argument between drunk soldiers gone terribly wrong if( one_in( 3 ) ) { - m.spawn_item( { 22, 12, abs_sub.z }, "bottle_glass" ); - m.spawn_item( { 23, 11, abs_sub.z }, "hatchet" ); + m.spawn_item( { 22, 12, abs_sub.z }, itype_bottle_glass ); + m.spawn_item( { 23, 11, abs_sub.z }, itype_hatchet ); //Spawn chopped soldier corpse item body = item::make_corpse(); @@ -1486,7 +1530,7 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) //Spawn broken bench and splintered wood m.furn_set( { 23, 13, abs_sub.z }, f_null ); - m.spawn_item( { 23, 13, abs_sub.z }, "splinter", rng( 5, 10 ) ); + m.spawn_item( { 23, 13, abs_sub.z }, itype_splinter, rng( 5, 10 ) ); //Spawn blood for( const auto &loc : m.points_in_radius( { 23, 12, abs_sub.z }, 1, 0 ) ) { @@ -1498,9 +1542,9 @@ static bool mx_minefield( map &m, const tripoint &abs_sub ) m.place_items( "trash_cart", 80, { 19, 11, abs_sub.z }, { 21, 13, abs_sub.z }, false, calendar::start_of_cataclysm ); } else { - m.spawn_item( { 20, 11, abs_sub.z }, "hatchet" ); - m.spawn_item( { 22, 12, abs_sub.z }, "vodka" ); - m.spawn_item( { 20, 14, abs_sub.z }, "acoustic_guitar" ); + m.spawn_item( { 20, 11, abs_sub.z }, itype_hatchet ); + m.spawn_item( { 22, 12, abs_sub.z }, itype_vodka ); + m.spawn_item( { 20, 14, abs_sub.z }, itype_acoustic_guitar ); //Spawn trash in a crate m.place_items( "trash_cart", 80, { 20, 12, abs_sub.z }, { 20, 12, abs_sub.z }, false, @@ -1601,7 +1645,7 @@ static void place_fumarole( map &m, const point &p1, const point &p2, std::set

dies_into {{ - {t_grass, ter_grass_dead}, - {t_grass_long, ter_grass_dead}, - {t_grass_tall, ter_grass_dead}, - {t_moss, ter_grass_dead}, - {t_fungus, ter_dirt}, - {t_grass_golf, ter_grass_dead}, - {t_grass_white, ter_grass_dead}, + {t_grass, ter_t_grass_dead}, + {t_grass_long, ter_t_grass_dead}, + {t_grass_tall, ter_t_grass_dead}, + {t_moss, ter_t_grass_dead}, + {t_fungus, ter_t_dirt}, + {t_grass_golf, ter_t_grass_dead}, + {t_grass_white, ter_t_grass_dead}, }}; const auto iter = dies_into.find( tid ); if( iter != dies_into.end() ) { if( one_in( 6 ) ) { m.ter_set( loc, t_dirt ); - m.spawn_item( loc, "ash", 1, rng( 1, 5 ) ); + m.spawn_item( loc, itype_ash, 1, rng( 1, 5 ) ); } else if( one_in( 10 ) ) { // do nothing, save some spots from fire } else { @@ -2081,21 +2125,21 @@ static void burned_ground_parser( map &m, const tripoint &loc ) if( tr.has_flag( flag_FUNGUS ) ) { m.ter_set( loc, t_dirt ); if( one_in( 5 ) ) { - m.spawn_item( loc, "ash", 1, rng( 1, 5 ) ); + m.spawn_item( loc, itype_ash, 1, rng( 1, 5 ) ); } } // destruction of trees is not absolute if( tr.has_flag( flag_TREE ) ) { if( one_in( 4 ) ) { - m.ter_set( loc, ter_trunk ); + m.ter_set( loc, ter_t_trunk ); } else if( one_in( 4 ) ) { - m.ter_set( loc, ter_stump ); + m.ter_set( loc, ter_t_stump ); } else if( one_in( 4 ) ) { - m.ter_set( loc, ter_tree_dead ); + m.ter_set( loc, ter_t_tree_dead ); } else { - m.ter_set( loc, ter_dirt ); + m.ter_set( loc, ter_t_dirt ); m.furn_set( loc, f_ash ); - m.spawn_item( loc, "ash", 1, rng( 1, 100 ) ); + m.spawn_item( loc, itype_ash, 1, rng( 1, 100 ) ); } // everything else is destroyed, ash is added } else if( ter_furn_has_flag( tr, fid, TFLAG_FLAMMABLE ) || @@ -2104,7 +2148,7 @@ static void burned_ground_parser( map &m, const tripoint &loc ) m.destroy( loc, true ); } if( one_in( 5 ) && !tr.has_flag( flag_LIQUID ) ) { - m.spawn_item( loc, "ash", 1, rng( 1, 10 ) ); + m.spawn_item( loc, itype_ash, 1, rng( 1, 10 ) ); } } else if( ter_furn_has_flag( tr, fid, TFLAG_FLAMMABLE_ASH ) ) { while( m.is_bashable( loc ) ) { @@ -2112,7 +2156,7 @@ static void burned_ground_parser( map &m, const tripoint &loc ) } m.furn_set( loc, f_ash ); if( !tr.has_flag( flag_LIQUID ) ) { - m.spawn_item( loc, "ash", 1, rng( 1, 100 ) ); + m.spawn_item( loc, itype_ash, 1, rng( 1, 100 ) ); } } @@ -2463,7 +2507,7 @@ static bool mx_roadworks( map &m, const tripoint &abs_sub ) // soil generator for( int i = 1; i <= 10; i++ ) { m.spawn_item( point( rng( defects_from.x, defects_to.x ), - rng( defects_from.y, defects_to.y ) ), "material_soil" ); + rng( defects_from.y, defects_to.y ) ), itype_material_soil ); } // vehicle placer switch( rng( 1, 6 ) ) { @@ -2498,13 +2542,13 @@ static bool mx_mayhem( map &m, const tripoint &abs_sub ) m.add_vehicle( vproto_id( "car" ), point( 18, 9 ), 270 ); m.add_vehicle( vproto_id( "4x4_car" ), point( 20, 5 ), 0 ); - m.spawn_item( { 16, 10, abs_sub.z }, "shot_hull" ); + m.spawn_item( { 16, 10, abs_sub.z }, itype_shot_hull ); m.add_corpse( { 16, 9, abs_sub.z } ); m.add_field( { 16, 9, abs_sub.z }, fd_blood, rng( 1, 3 ) ); for( const auto &loc : m.points_in_radius( { 16, 3, abs_sub.z }, 1 ) ) { if( one_in( 2 ) ) { - m.spawn_item( loc, "9mm_casing" ); + m.spawn_item( loc, itype_9mm_casing ); } } @@ -2524,7 +2568,7 @@ static bool mx_mayhem( map &m, const tripoint &abs_sub ) for( const auto &loc : m.points_in_radius( { 12, 11, abs_sub.z }, 2 ) ) { if( one_in( 3 ) ) { - m.spawn_item( loc, "223_casing" ); + m.spawn_item( loc, itype_223_casing ); } } break; @@ -2535,12 +2579,12 @@ static bool mx_mayhem( map &m, const tripoint &abs_sub ) m.add_field( { 16, 15, abs_sub.z }, fd_blood, rng( 1, 3 ) ); - m.spawn_item( { 16, 16, abs_sub.z }, "wheel", 1, 0, calendar::start_of_cataclysm, 4 ); - m.spawn_item( { 16, 16, abs_sub.z }, "wrench" ); + m.spawn_item( { 16, 16, abs_sub.z }, itype_wheel, 1, 0, calendar::start_of_cataclysm, 4 ); + m.spawn_item( { 16, 16, abs_sub.z }, itype_wrench ); if( one_in( 2 ) ) { //Unknown people killed and robbed the poor guy m.put_items_from_loc( "everyday_corpse", { 16, 15, abs_sub.z } ); - m.spawn_item( { 21, 15, abs_sub.z }, "shot_hull" ); + m.spawn_item( { 21, 15, abs_sub.z }, itype_shot_hull ); } else { //Wolves charged to the poor guy... m.add_corpse( { 16, 15, abs_sub.z } ); m.add_splatter_trail( fd_gibs_flesh, { 16, 13, abs_sub.z }, { 16, 16, abs_sub.z } ); @@ -2548,7 +2592,7 @@ static bool mx_mayhem( map &m, const tripoint &abs_sub ) for( const auto &loc : m.points_in_radius( { 16, 15, abs_sub.z }, 1 ) ) { if( one_in( 2 ) ) { - m.spawn_item( loc, "9mm_casing" ); + m.spawn_item( loc, itype_9mm_casing ); } } @@ -2602,7 +2646,7 @@ static bool mx_casings( map &m, const tripoint &abs_sub ) m.add_field( location, fd_blood, rng( 1, 3 ) ); if( one_in( 2 ) ) { const tripoint bloody_rag_loc = random_entry( m.points_in_radius( location, 3 ) ); - m.spawn_item( bloody_rag_loc, "rag_bloody" ); + m.spawn_item( bloody_rag_loc, itype_rag_bloody ); } if( one_in( 2 ) ) { m.add_splatter_trail( fd_blood, location, @@ -2635,7 +2679,7 @@ static bool mx_casings( map &m, const tripoint &abs_sub ) m.add_field( random_place, fd_blood, rng( 1, 3 ) ); if( one_in( 2 ) ) { const tripoint bloody_rag_loc = random_entry( m.points_in_radius( random_place, 3 ) ); - m.spawn_item( bloody_rag_loc, "rag_bloody" ); + m.spawn_item( bloody_rag_loc, itype_rag_bloody ); } } break; @@ -2665,7 +2709,7 @@ static bool mx_casings( map &m, const tripoint &abs_sub ) m.add_field( from, fd_blood, rng( 1, 3 ) ); if( one_in( 2 ) ) { const tripoint bloody_rag_loc = random_entry( m.points_in_radius( to, 3 ) ); - m.spawn_item( bloody_rag_loc, "rag_bloody" ); + m.spawn_item( bloody_rag_loc, itype_rag_bloody ); } } break; @@ -2698,7 +2742,7 @@ static bool mx_casings( map &m, const tripoint &abs_sub ) m.add_field( first_loc, fd_blood, rng( 1, 3 ) ); if( one_in( 2 ) ) { const tripoint bloody_rag_loc = random_entry( m.points_in_radius( first_loc, 3 ) ); - m.spawn_item( bloody_rag_loc, "rag_bloody" ); + m.spawn_item( bloody_rag_loc, itype_rag_bloody ); } if( one_in( 2 ) ) { m.add_splatter_trail( fd_blood, first_loc, @@ -2710,7 +2754,7 @@ static bool mx_casings( map &m, const tripoint &abs_sub ) m.add_field( second_loc, fd_blood, rng( 1, 3 ) ); if( one_in( 2 ) ) { const tripoint bloody_rag_loc = random_entry( m.points_in_radius( second_loc, 3 ) ); - m.spawn_item( bloody_rag_loc, "rag_bloody" ); + m.spawn_item( bloody_rag_loc, itype_rag_bloody ); } if( one_in( 2 ) ) { m.add_splatter_trail( fd_blood, second_loc, @@ -2752,7 +2796,6 @@ static bool mx_looters( map &m, const tripoint &abs_sub ) static bool mx_corpses( map &m, const tripoint &abs_sub ) { const int num_corpses = rng( 1, 5 ); - const auto gibs = item_group::items_from( "remains_human_generic", calendar::start_of_cataclysm ); //Spawn up to 5 human corpses in random places for( int i = 0; i < num_corpses; i++ ) { const tripoint corpse_location = { rng( 1, SEEX * 2 - 1 ), rng( 1, SEEY * 2 - 1 ), abs_sub.z }; @@ -2770,6 +2813,8 @@ static bool mx_corpses( map &m, const tripoint &abs_sub ) //10% chance to spawn a flock of stray dogs feeding on human flesh if( one_in( 10 ) && num_corpses <= 4 ) { const tripoint corpse_location = { rng( 1, SEEX * 2 - 1 ), rng( 1, SEEY * 2 - 1 ), abs_sub.z }; + const std::vector gibs = item_group::items_from( "remains_human_generic", + calendar::start_of_cataclysm ); m.spawn_items( corpse_location, gibs ); m.add_field( corpse_location, fd_gibs_flesh, rng( 1, 3 ) ); //50% chance to spawn gibs and dogs in every tile around what's left of human corpse in 1-tile radius @@ -2811,12 +2856,12 @@ static bool mx_grave( map &m, const tripoint &abs_sub ) case 1: { m.ter_set( point( SEEX, SEEY ), t_grave_new ); m.spawn_item( point( SEEX, SEEY ), - "sw_619" ); //TODO: Replace this with Colt Python if we ever have it in game + itype_sw_619 ); //TODO: Replace this with Colt Python if we ever have it in game m.furn_set( point( SEEX, SEEY - 1 ), f_sign ); m.set_signage( tripoint( SEEX, SEEY - 1, abs_sub.z ), pgettext( "R as a letter", "R." ) ); m.ter_set( point( SEEX + 1, SEEY ), t_grave_new ); - m.spawn_item( point( SEEX + 1, SEEY ), "katana" ); + m.spawn_item( point( SEEX + 1, SEEY ), itype_katana ); m.furn_set( point( SEEX + 1, SEEY - 1 ), f_sign ); m.set_signage( tripoint( SEEX + 1, SEEY - 1, abs_sub.z ), pgettext( "M as a letter", "M." ) ); break; @@ -2824,9 +2869,9 @@ static bool mx_grave( map &m, const tripoint &abs_sub ) //HL2 protagonist case 2: { m.ter_set( point( SEEX, SEEY ), t_grave_new ); - m.spawn_item( point( SEEX, SEEY ), "glasses_eye" ); - m.spawn_item( point( SEEX, SEEY ), "anbc_suit" ); - m.spawn_item( point( SEEX, SEEY ), "crowbar" ); + m.spawn_item( point( SEEX, SEEY ), itype_glasses_eye ); + m.spawn_item( point( SEEX, SEEY ), itype_anbc_suit ); + m.spawn_item( point( SEEX, SEEY ), itype_crowbar ); m.furn_set( point( SEEX, SEEY - 1 ), f_sign ); m.set_signage( tripoint( SEEX, SEEY - 1, abs_sub.z ), _( "- Man of few words, aren't you?\n- …" ) ); @@ -2835,9 +2880,9 @@ static bool mx_grave( map &m, const tripoint &abs_sub ) //Famous archeologist case 3: { m.ter_set( point( SEEX, SEEY ), t_grave_new ); - m.spawn_item( point( SEEX, SEEY ), "cowboy_hat" ); - m.spawn_item( point( SEEX, SEEY ), "jacket_leather" ); - m.spawn_item( point( SEEX, SEEY ), "bullwhip" ); + m.spawn_item( point( SEEX, SEEY ), itype_fedora ); + m.spawn_item( point( SEEX, SEEY ), itype_jacket_leather ); + m.spawn_item( point( SEEX, SEEY ), itype_bullwhip ); m.furn_set( point( SEEX, SEEY - 1 ), f_sign ); m.set_signage( tripoint( SEEX, SEEY - 1, abs_sub.z ), _( "Fortune and glory, kid. Fortune and glory." ) ); @@ -2846,7 +2891,7 @@ static bool mx_grave( map &m, const tripoint &abs_sub ) //Outcast's friend case 4: { m.ter_set( point( SEEX, SEEY ), t_grave_new ); - m.spawn_item( point( SEEX, SEEY ), "indoor_volleyball" ); + m.spawn_item( point( SEEX, SEEY ), itype_indoor_volleyball ); m.furn_set( point( SEEX, SEEY - 1 ), f_sign ); m.set_signage( tripoint( SEEX, SEEY - 1, abs_sub.z ), _( "Wilson" ) ); break; @@ -2854,12 +2899,12 @@ static bool mx_grave( map &m, const tripoint &abs_sub ) //One religious blind man case 5: { m.ter_set( point( SEEX, SEEY ), t_grave_new ); - m.spawn_item( point( SEEX, SEEY ), "machete" ); - m.spawn_item( point( SEEX, SEEY ), - "usp_45" ); //TODO: Replace this with HK45 if we ever have it in game - m.spawn_item( point( SEEX, SEEY ), "remington_870_breacher" ); - m.spawn_item( point( SEEX, SEEY ), "holybook_bible1" ); - m.spawn_item( point( SEEX, SEEY ), "sunglasses" ); + m.spawn_item( point( SEEX, SEEY ), itype_machete ); + //TODO: Replace this with HK45 if we ever have it in game + m.spawn_item( point( SEEX, SEEY ), itype_usp_45 ); + m.spawn_item( point( SEEX, SEEY ), itype_remington_870_breacher ); + m.spawn_item( point( SEEX, SEEY ), itype_holybook_bible1 ); + m.spawn_item( point( SEEX, SEEY ), itype_sunglasses ); m.furn_set( point( SEEX, SEEY - 1 ), f_sign ); m.set_signage( tripoint( SEEX, SEEY - 1, abs_sub.z ), _( "I walk by faith, not by sight." ) ); break; @@ -2867,11 +2912,11 @@ static bool mx_grave( map &m, const tripoint &abs_sub ) //Post-apocalyptic Buddy case 6: { m.ter_set( point( SEEX, SEEY ), t_grave_new ); - m.spawn_item( point( SEEX, SEEY ), "glasses_eye" ); - m.spawn_item( point( SEEX, SEEY ), "katana" ); - m.spawn_item( point( SEEX, SEEY ), "acoustic_guitar" ); - m.spawn_item( point( SEEX, SEEY ), "umbrella" ); - m.spawn_item( point( SEEX, SEEY ), "tux" ); + m.spawn_item( point( SEEX, SEEY ), itype_glasses_eye ); + m.spawn_item( point( SEEX, SEEY ), itype_katana ); + m.spawn_item( point( SEEX, SEEY ), itype_acoustic_guitar ); + m.spawn_item( point( SEEX, SEEY ), itype_umbrella ); + m.spawn_item( point( SEEX, SEEY ), itype_tux ); m.furn_set( point( SEEX, SEEY - 1 ), f_sign ); m.set_signage( tripoint( SEEX, SEEY - 1, abs_sub.z ), _( "Float away, little butterfly. Just flutter away. I got a gig in Vegas. And the wastelands ain't no place for kids." ) ); @@ -2880,8 +2925,8 @@ static bool mx_grave( map &m, const tripoint &abs_sub ) //The Bride case 7: { m.ter_set( point( SEEX, SEEY ), t_grave_new ); - m.spawn_item( point( SEEX, SEEY ), "touring_suit" ); - m.spawn_item( point( SEEX, SEEY ), "katana" ); + m.spawn_item( point( SEEX, SEEY ), itype_touring_suit ); + m.spawn_item( point( SEEX, SEEY ), itype_katana ); m.furn_set( point( SEEX, SEEY - 1 ), f_sign ); m.set_signage( tripoint( SEEX, SEEY - 1, abs_sub.z ), _( "Wiggle your big toe." ) ); break; diff --git a/src/map_field.cpp b/src/map_field.cpp index 0df0744b73a8d..258098502faf9 100644 --- a/src/map_field.cpp +++ b/src/map_field.cpp @@ -60,9 +60,12 @@ #include "vpart_position.h" #include "weather.h" -static const species_id FUNGUS( "FUNGUS" ); -static const species_id INSECT( "INSECT" ); -static const species_id SPIDER( "SPIDER" ); +static const itype_id itype_rm13_armor_on( "rm13_armor_on" ); +static const itype_id itype_rock( "rock" ); + +static const species_id species_FUNGUS( "FUNGUS" ); +static const species_id species_INSECT( "INSECT" ); +static const species_id species_SPIDER( "SPIDER" ); static const bionic_id bio_heatsink( "bio_heatsink" ); @@ -516,17 +519,17 @@ bool map::process_fields_in_submap( submap *const current_submap, if( !is_sealed && map_tile.get_item_count() > 0 ) { map_stack items_here = i_at( p ); std::vector new_content; - for( auto explosive = items_here.begin(); explosive != items_here.end(); ) { - if( explosive->will_explode_in_fire() ) { + for( auto it = items_here.begin(); it != items_here.end(); ) { + if( it->will_explode_in_fire() ) { // We need to make a copy because the iterator validity is not predictable - item copy = *explosive; - explosive = items_here.erase( explosive ); + item copy = *it; + it = items_here.erase( it ); if( copy.detonate( p, new_content ) ) { // Need to restart, iterators may not be valid - explosive = items_here.begin(); + it = items_here.begin(); } } else { - ++explosive; + ++it; } } @@ -1102,7 +1105,7 @@ bool map::process_fields_in_submap( submap *const current_submap, [this]( const tripoint & n ) { return passable( n ); } ) ) { - add_spawn( spawn_details.name, spawn_details.pack_size, *spawn_point ); + add_spawn( spawn_details, *spawn_point ); } } } @@ -1110,7 +1113,7 @@ bool map::process_fields_in_submap( submap *const current_submap, if( curtype == fd_push_items ) { map_stack items = i_at( p ); for( auto pushee = items.begin(); pushee != items.end(); ) { - if( pushee->typeId() != "rock" || + if( pushee->typeId() != itype_rock || pushee->age() < 1_turns ) { pushee++; } else { @@ -1442,7 +1445,7 @@ void map::player_in_field( player &u ) } if( ft == fd_fire ) { // Heatsink or suit prevents ALL fire damage. - if( !u.has_active_bionic( bio_heatsink ) && !u.is_wearing( "rm13_armor_on" ) ) { + if( !u.has_active_bionic( bio_heatsink ) && !u.is_wearing( itype_rm13_armor_on ) ) { // To modify power of a field based on... whatever is relevant for the effect. int adjusted_intensity = cur.get_field_intensity(); @@ -1563,7 +1566,7 @@ void map::player_in_field( player &u ) // Fireballs can't touch you inside a car. // Heatsink or suit stops fire. if( !u.has_active_bionic( bio_heatsink ) && - !u.is_wearing( "rm13_armor_on" ) ) { + !u.is_wearing( itype_rm13_armor_on ) ) { u.add_msg_player_or_npc( m_bad, _( "You're torched by flames!" ), _( " is torched by flames!" ) ); u.deal_damage( nullptr, bodypart_id( "leg_l" ), damage_instance( DT_HEAT, rng( 2, 6 ) ) ); @@ -1622,7 +1625,7 @@ void map::player_in_field( player &u ) bodypart_id bp = u.get_random_body_part(); int sum_cover = 0; for( const item &i : u.worn ) { - if( i.covers( bp->token ) ) { + if( i.covers( bp ) ) { sum_cover += i.get_coverage(); } } @@ -1631,7 +1634,7 @@ void map::player_in_field( player &u ) if( ( u.get_armor_cut( bp ) <= 1 || ( sum_cover < 100 && x_in_y( 100 - sum_cover, 100 ) ) ) && u.add_env_effect( effect_stung, bp->token, intensity, 9_minutes ) ) { u.add_msg_if_player( m_bad, _( "The bees sting you in %s!" ), - body_part_name_accusative( bp->token ) ); + body_part_name_accusative( bp ) ); } } } @@ -1805,7 +1808,7 @@ void map::monster_in_field( monster &z ) if( z.made_of( material_id( "veggy" ) ) ) { dam += 12; } - if( z.made_of( LIQUID ) || z.made_of_any( Creature::cmat_flammable ) ) { + if( z.made_of( phase_id::LIQUID ) || z.made_of_any( Creature::cmat_flammable ) ) { dam += 20; } if( z.made_of_any( Creature::cmat_flameres ) ) { @@ -1919,7 +1922,7 @@ void map::monster_in_field( monster &z ) if( z.made_of( material_id( "veggy" ) ) ) { dam += 12; } - if( z.made_of( LIQUID ) || z.made_of_any( Creature::cmat_flammable ) ) { + if( z.made_of( phase_id::LIQUID ) || z.made_of_any( Creature::cmat_flammable ) ) { dam += 50; } if( z.made_of_any( Creature::cmat_flameres ) ) { @@ -1950,7 +1953,7 @@ void map::monster_in_field( monster &z ) if( z.made_of( material_id( "veggy" ) ) ) { dam += 12; } - if( z.made_of( LIQUID ) || z.made_of_any( Creature::cmat_flammable ) ) { + if( z.made_of( phase_id::LIQUID ) || z.made_of_any( Creature::cmat_flammable ) ) { dam += 20; } if( z.made_of_any( Creature::cmat_flameres ) ) { @@ -1962,19 +1965,19 @@ void map::monster_in_field( monster &z ) } else if( cur.get_field_intensity() == 2 ) { dam += rng( 6, 12 ); z.moves -= 20; - if( !z.made_of( LIQUID ) && !z.made_of_any( Creature::cmat_flameres ) ) { + if( !z.made_of( phase_id::LIQUID ) && !z.made_of_any( Creature::cmat_flameres ) ) { z.add_effect( effect_onfire, rng( 8_turns, 12_turns ) ); } } else if( cur.get_field_intensity() == 3 ) { dam += rng( 10, 20 ); z.moves -= 40; - if( !z.made_of( LIQUID ) && !z.made_of_any( Creature::cmat_flameres ) ) { + if( !z.made_of( phase_id::LIQUID ) && !z.made_of_any( Creature::cmat_flameres ) ) { z.add_effect( effect_onfire, rng( 12_turns, 16_turns ) ); } } } if( cur_field_type == fd_fungal_haze ) { - if( !z.type->in_species( FUNGUS ) && + if( !z.type->in_species( species_FUNGUS ) && !z.type->has_flag( MF_NO_BREATHE ) && !z.make_fungus() ) { // Don't insta-kill jabberwocks, that's silly @@ -1984,14 +1987,14 @@ void map::monster_in_field( monster &z ) } } if( cur_field_type == fd_fungicidal_gas ) { - if( z.type->in_species( FUNGUS ) ) { + if( z.type->in_species( species_FUNGUS ) ) { const int intensity = cur.get_field_intensity(); z.moves -= rng( 10 * intensity, 30 * intensity ); dam += rng( 4, 7 * intensity ); } } if( cur_field_type == fd_insecticidal_gas ) { - if( z.type->in_species( INSECT ) || z.type->in_species( SPIDER ) ) { + if( z.type->in_species( species_INSECT ) || z.type->in_species( species_SPIDER ) ) { const int intensity = cur.get_field_intensity(); z.moves -= rng( 10 * intensity, 30 * intensity ); dam += rng( 4, 7 * intensity ); @@ -2060,7 +2063,7 @@ void map::propagate_field( const tripoint ¢er, const field_type_id &type, in std::set closed; open.push( { 0.0f, center } ); - const bool not_gas = type.obj().phase != GAS; + const bool not_gas = type.obj().phase != phase_id::GAS; while( amount > 0 && !open.empty() ) { if( closed.count( open.top().second ) ) { diff --git a/src/mapdata.cpp b/src/mapdata.cpp index c4c6e532b1b58..f60526a8b849d 100644 --- a/src/mapdata.cpp +++ b/src/mapdata.cpp @@ -1276,7 +1276,7 @@ void furn_t::load( const JsonObject &jo, const std::string &src ) optional( jo, was_loaded, "keg_capacity", keg_capacity, legacy_volume_reader, 0_ml ); mandatory( jo, was_loaded, "required_str", move_str_req ); optional( jo, was_loaded, "max_volume", max_volume, volume_reader(), DEFAULT_MAX_VOLUME_IN_SQUARE ); - optional( jo, was_loaded, "crafting_pseudo_item", crafting_pseudo_item, "" ); + optional( jo, was_loaded, "crafting_pseudo_item", crafting_pseudo_item, itype_id() ); optional( jo, was_loaded, "deployed_item", deployed_item ); load_symbol( jo ); transparent = false; diff --git a/src/mapdata.h b/src/mapdata.h index 32d075d6f9975..c94e6fead708e 100644 --- a/src/mapdata.h +++ b/src/mapdata.h @@ -25,8 +25,6 @@ struct tripoint; using iexamine_function = void ( * )( player &, const tripoint & ); -using itype_id = std::string; - struct map_bash_info { int str_min; // min str(*) required to bash int str_max; // max str required: bash succeeds if str >= random # between str_min & str_max @@ -363,7 +361,7 @@ struct furn_t : map_data_common_t { furn_str_id id; furn_str_id open; // Open action: transform into furniture with matching id furn_str_id close; // Close action: transform into furniture with matching id - std::string crafting_pseudo_item; + itype_id crafting_pseudo_item; units::volume keg_capacity = 0_ml; int comfort = 0; int floor_bedding_warmth = 0; diff --git a/src/mapgen.cpp b/src/mapgen.cpp index d3b70621fe1e7..de50662111412 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -186,7 +186,7 @@ void map::generate( const tripoint &p, const time_point &when ) random_point( *this, [this]( const tripoint & n ) { return passable( n ); } ) ) { - add_spawn( spawn_details.name, spawn_details.pack_size, *pt ); + add_spawn( spawn_details, *pt ); } } } @@ -226,7 +226,7 @@ class mapgen_basic_container weighted_int_list> weights_; public: - int add( const std::shared_ptr ptr ) { + int add( const std::shared_ptr &ptr ) { assert( ptr ); mapgens_.push_back( ptr ); return mapgens_.size() - 1; @@ -334,7 +334,7 @@ class mapgen_factory return mapgens_.count( key ) != 0; } /// @see mapgen_basic_container::add - int add( const std::string &key, const std::shared_ptr ptr ) { + int add( const std::string &key, const std::shared_ptr &ptr ) { return mapgens_[key].add( ptr ); } /// @see mapgen_basic_container::generate @@ -561,12 +561,10 @@ static bool common_check_bounds( const jmapgen_int &x, const jmapgen_int &y, 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; @@ -1159,23 +1157,24 @@ class jmapgen_loot : public jmapgen_piece jsi.get_int( "magazine", 0 ) ) , chance( jsi.get_int( "chance", 100 ) ) { const std::string group = jsi.get_string( "group", std::string() ); - const std::string name = jsi.get_string( "item", std::string() ); + itype_id ity; + jsi.read( "item", ity ); - if( group.empty() == name.empty() ) { + if( group.empty() == ity.is_empty() ) { jsi.throw_error( "must provide either item or group" ); } if( !group.empty() && !item_group::group_is_defined( group ) ) { set_mapgen_defer( jsi, "group", "no such item group" ); } - if( !name.empty() && !item::type_is_defined( name ) ) { - set_mapgen_defer( jsi, "item", "no such item type '" + name + "'" ); + if( !ity.is_empty() && !item::type_is_defined( ity ) ) { + set_mapgen_defer( jsi, "item", "no such item type '" + ity.str() + "'" ); } // All the probabilities are 100 because we do the roll in @ref apply. if( group.empty() ) { // Migrations are applied to item *groups* on load, but single item spawns must be // migrated individually - result_group.add_item_entry( item_controller->migrate_id( name ), 100 ); + result_group.add_item_entry( item_controller->migrate_id( ity ), 100 ); } else { result_group.add_group_entry( group, 100 ); } @@ -1243,6 +1242,7 @@ class jmapgen_monster : public jmapgen_piece bool friendly; std::string name; bool target; + struct spawn_data data; jmapgen_monster( const JsonObject &jsi ) : chance( jsi, "chance", 100, 100 ) , pack_size( jsi, "pack_size", 1, 1 ) @@ -1282,6 +1282,16 @@ class jmapgen_monster : public jmapgen_piece } ids.add( id, 100 ); } + + if( jsi.has_object( "spawn_data" ) ) { + const JsonObject &sd = jsi.get_object( "spawn_data" ); + if( sd.has_array( "ammo" ) ) { + const JsonArray &ammos = sd.get_array( "ammo" ); + for( const JsonObject &adata : ammos ) { + data.ammo.emplace( itype_id( adata.get_string( "ammo_id" ) ), jmapgen_int( adata, "qty" ) ); + } + } + } } void apply( mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y ) const override { @@ -1320,11 +1330,11 @@ class jmapgen_monster : public jmapgen_piece MonsterGroupResult spawn_details = MonsterGroupManager::GetResultFromGroup( m_id ); dat.m.add_spawn( spawn_details.name, spawn_count * pack_size.get(), { x.get(), y.get(), dat.m.get_abs_sub().z }, - friendly, -1, mission_id, name ); + friendly, -1, mission_id, name, data ); } else { dat.m.add_spawn( *( ids.pick() ), spawn_count * pack_size.get(), { x.get(), y.get(), dat.m.get_abs_sub().z }, - friendly, -1, mission_id, name ); + friendly, -1, mission_id, name, data ); } } }; @@ -1639,7 +1649,7 @@ class jmapgen_sealed_item : public jmapgen_piece const itype *spawned_type = item::find_type( item_spawner->type ); if( !spawned_type->seed ) { debugmsg( "%s (with flag PLANT) spawns item type %s which is not a seed.", - summary, spawned_type->get_id() ); + summary, spawned_type->get_id().str() ); return; } } @@ -1657,7 +1667,7 @@ class jmapgen_sealed_item : public jmapgen_piece 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() ); + summary, group_id, type->get_id().str() ); return; } } @@ -1872,13 +1882,13 @@ bool jmapgen_objects::check_bounds( const jmapgen_place &place, const JsonObject } void jmapgen_objects::add( const jmapgen_place &place, - shared_ptr_fast piece ) + const shared_ptr_fast &piece ) { objects.emplace_back( place, piece ); } template -void jmapgen_objects::load_objects( JsonArray parray ) +void jmapgen_objects::load_objects( const JsonArray &parray ) { for( JsonObject jsi : parray ) { jmapgen_place where( jsi ); @@ -1893,7 +1903,7 @@ void jmapgen_objects::load_objects( JsonArray parray ) } template<> -void jmapgen_objects::load_objects( JsonArray parray ) +void jmapgen_objects::load_objects( const JsonArray &parray ) { for( JsonObject jsi : parray ) { jmapgen_place where( jsi ); @@ -2795,11 +2805,11 @@ void jmapgen_objects::apply( mapgendata &dat, const point &offset ) const return; } - for( auto &obj : objects ) { - auto where = obj.first; + for( const jmapgen_obj &obj : objects ) { + jmapgen_place where = obj.first; where.offset( -offset ); - const auto &what = *obj.second; + const jmapgen_piece &what = *obj.second; // The user will only specify repeat once in JSON, but it may get loaded both // into the what and where in some cases--we just need the greater value of the two. const int repeat = std::max( where.repeat.get(), what.repeat.get() ); @@ -3686,7 +3696,7 @@ void map::draw_lab( mapgendata &dat ) } // Top left if( one_in( 2 ) ) { - ter_set( point( SEEX - 2, int( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( point( SEEX - 2, static_cast( SEEY / 2 ) ), t_door_glass_frosted_c ); science_room( this, point( lw, tw ), point( SEEX - 3, SEEY - 3 ), dat.zlevel(), 1 ); } else { ter_set( point( SEEX / 2, SEEY - 2 ), t_door_glass_frosted_c ); @@ -3694,11 +3704,11 @@ void map::draw_lab( mapgendata &dat ) } // Top right if( one_in( 2 ) ) { - ter_set( point( SEEX + 1, int( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( point( SEEX + 1, static_cast( SEEY / 2 ) ), t_door_glass_frosted_c ); science_room( this, point( SEEX + 2, tw ), point( EAST_EDGE - rw, SEEY - 3 ), dat.zlevel(), 3 ); } else { - ter_set( point( SEEX + int( SEEX / 2 ), SEEY - 2 ), t_door_glass_frosted_c ); + ter_set( point( SEEX + static_cast( SEEX / 2 ), SEEY - 2 ), t_door_glass_frosted_c ); science_room( this, point( SEEX + 2, tw ), point( EAST_EDGE - rw, SEEY - 3 ), dat.zlevel(), 2 ); } @@ -3708,17 +3718,17 @@ void map::draw_lab( mapgendata &dat ) science_room( this, point( lw, SEEY + 2 ), point( SEEX - 3, SOUTH_EDGE - bw ), dat.zlevel(), 0 ); } else { - ter_set( point( SEEX - 2, SEEY + int( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( point( SEEX - 2, SEEY + static_cast( SEEY / 2 ) ), t_door_glass_frosted_c ); science_room( this, point( lw, SEEY + 2 ), point( SEEX - 3, SOUTH_EDGE - bw ), dat.zlevel(), 1 ); } // Bottom right if( one_in( 2 ) ) { - ter_set( point( SEEX + int( SEEX / 2 ), SEEY + 1 ), t_door_glass_frosted_c ); + ter_set( point( SEEX + static_cast( SEEX / 2 ), SEEY + 1 ), t_door_glass_frosted_c ); science_room( this, point( SEEX + 2, SEEY + 2 ), point( EAST_EDGE - rw, SOUTH_EDGE - bw ), dat.zlevel(), 0 ); } else { - ter_set( point( SEEX + 1, SEEY + int( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( point( SEEX + 1, SEEY + static_cast( SEEY / 2 ) ), t_door_glass_frosted_c ); science_room( this, point( SEEX + 2, SEEY + 2 ), point( EAST_EDGE - rw, SOUTH_EDGE - bw ), dat.zlevel(), 3 ); } @@ -3756,14 +3766,14 @@ void map::draw_lab( mapgendata &dat ) stair_points.push_back( point( 2, SEEY ) ); stair_points.push_back( point( 2, SEEY ) ); } - stair_points.push_back( point( int( SEEX / 2 ), SEEY ) ); - stair_points.push_back( point( int( SEEX / 2 ), SEEY - 1 ) ); - stair_points.push_back( point( int( SEEX / 2 ) + SEEX, SEEY ) ); - stair_points.push_back( point( int( SEEX / 2 ) + SEEX, SEEY - 1 ) ); - stair_points.push_back( point( SEEX, int( SEEY / 2 ) ) ); - stair_points.push_back( point( SEEX + 2, int( SEEY / 2 ) ) ); - stair_points.push_back( point( SEEX, int( SEEY / 2 ) + SEEY ) ); - stair_points.push_back( point( SEEX + 2, int( SEEY / 2 ) + SEEY ) ); + stair_points.push_back( point( static_cast( SEEX / 2 ), SEEY ) ); + stair_points.push_back( point( static_cast( SEEX / 2 ), SEEY - 1 ) ); + stair_points.push_back( point( static_cast( SEEX / 2 ) + SEEX, SEEY ) ); + stair_points.push_back( point( static_cast( SEEX / 2 ) + SEEX, SEEY - 1 ) ); + stair_points.push_back( point( SEEX, static_cast( SEEY / 2 ) ) ); + stair_points.push_back( point( SEEX + 2, static_cast( SEEY / 2 ) ) ); + stair_points.push_back( point( SEEX, static_cast( SEEY / 2 ) + SEEY ) ); + stair_points.push_back( point( SEEX + 2, static_cast( SEEY / 2 ) + SEEY ) ); const point p = random_entry( stair_points ); ter_set( p, t_stairs_down ); } @@ -3795,14 +3805,14 @@ void map::draw_lab( mapgendata &dat ) ter_set( point( SEEX - rng( 0, 1 ), SEEY + 3 ), t_door_glass_frosted_c ); ter_set( point( SEEX - 4, SEEY + rng( 0, 1 ) ), t_door_glass_frosted_c ); ter_set( point( SEEX + 3, SEEY + rng( 0, 1 ) ), t_door_glass_frosted_c ); - ter_set( point( SEEX - 4, int( SEEY / 2 ) ), t_door_glass_frosted_c ); - ter_set( point( SEEX + 3, int( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( point( SEEX - 4, static_cast( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( point( SEEX + 3, static_cast( SEEY / 2 ) ), t_door_glass_frosted_c ); ter_set( point( SEEX / 2, SEEY - 4 ), t_door_glass_frosted_c ); ter_set( point( SEEX / 2, SEEY + 3 ), t_door_glass_frosted_c ); - ter_set( point( SEEX + int( SEEX / 2 ), SEEY - 4 ), t_door_glass_frosted_c ); - ter_set( point( SEEX + int( SEEX / 2 ), SEEY + 3 ), t_door_glass_frosted_c ); - ter_set( point( SEEX - 4, SEEY + int( SEEY / 2 ) ), t_door_glass_frosted_c ); - ter_set( point( SEEX + 3, SEEY + int( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( point( SEEX + static_cast( SEEX / 2 ), SEEY - 4 ), t_door_glass_frosted_c ); + ter_set( point( SEEX + static_cast( SEEX / 2 ), SEEY + 3 ), t_door_glass_frosted_c ); + ter_set( point( SEEX - 4, SEEY + static_cast( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( point( SEEX + 3, SEEY + static_cast( SEEY / 2 ) ), t_door_glass_frosted_c ); science_room( this, point( lw, tw ), point( SEEX - 5, SEEY - 5 ), dat.zlevel(), rng( 1, 2 ) ); science_room( this, point( SEEX - 3, tw ), point( SEEX + 2, SEEY - 5 ), dat.zlevel(), 2 ); @@ -5558,7 +5568,7 @@ void map::draw_connections( mapgendata &dat ) } // finally, any terrain with SIDEWALKS should contribute sidewalks to neighboring diagonal roads - if( terrain_type->has_flag( has_sidewalk ) ) { + if( terrain_type->has_flag( oter_flags::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( dat.t_nesw[dir] ), n_roads_nesw ); @@ -5632,9 +5642,8 @@ void map::place_spawns( const mongroup_id &group, const int chance, // Pick a monster type MonsterGroupResult spawn_details = MonsterGroupManager::GetResultFromGroup( group, &num ); - add_spawn( spawn_details.name, spawn_details.pack_size, { x, y, abs_sub.z }, - friendly, -1, mission_id, name ); + friendly, -1, mission_id, name, spawn_details.data ); } } @@ -5759,7 +5768,7 @@ std::vector map::place_items( const items_location &loc, const int chanc e->put_in( item( e->magazine_default(), e->birthday() ), item_pocket::pocket_type::MAGAZINE ); } if( rng( 0, 99 ) < ammo && e->ammo_remaining() == 0 ) { - e->ammo_set( e->ammo_default(), e->ammo_capacity() ); + e->ammo_set( e->ammo_default() ); } } } @@ -5773,8 +5782,14 @@ std::vector map::put_items_from_loc( const items_location &loc, const tr return spawn_items( p, items ); } +void map::add_spawn( const MonsterGroupResult &spawn_details, const tripoint &p ) const +{ + add_spawn( spawn_details.name, spawn_details.pack_size, p, false, -1, -1, "NONE", + spawn_details.data ); +} + void map::add_spawn( const mtype_id &type, int count, const tripoint &p, bool friendly, - int faction_id, int mission_id, const std::string &name ) const + int faction_id, int mission_id, const std::string &name, const spawn_data &data ) const { if( p.x < 0 || p.x >= SEEX * my_MAPSIZE || p.y < 0 || p.y >= SEEY * my_MAPSIZE ) { debugmsg( "Bad add_spawn(%s, %d, %d, %d)", type.c_str(), count, p.x, p.y ); @@ -5791,7 +5806,7 @@ void map::add_spawn( const mtype_id &type, int count, const tripoint &p, bool fr if( MonsterGroupManager::monster_is_blacklisted( type ) ) { return; } - spawn_point tmp( type, count, offset, faction_id, mission_id, friendly, name ); + spawn_point tmp( type, count, offset, faction_id, mission_id, friendly, name, data ); place_on_submap->spawns.push_back( tmp ); } @@ -6012,8 +6027,6 @@ void map::rotate( int turns, const bool setpos_safe ) for( const shared_ptr_fast &i : npcs ) { npc &np = *i; const tripoint sq = np.global_square_location(); - const point local_sq = getlocal( sq ).xy(); - real_coords np_rc; np_rc.fromabs( sq.x, sq.y ); // Note: We are rotating the entire overmap square (2x2 of submaps) @@ -6036,6 +6049,7 @@ void map::rotate( int turns, const bool setpos_safe ) const point new_pos = point{ old_x, old_y } .rotate( turns, { SEEX * 2, SEEY * 2 } ); if( setpos_safe ) { + const point local_sq = getlocal( sq ).xy(); // setpos can't be used during mapgen, but spawn_at_precise clips position // to be between 0-11,0-11 and teleports NPCs when used inside of update_mapgen // calls diff --git a/src/mapgen.h b/src/mapgen.h index 4bf70a5ba397f..b70a0660c5b86 100644 --- a/src/mapgen.h +++ b/src/mapgen.h @@ -126,6 +126,10 @@ struct jmapgen_setmap { bool has_vehicle_collision( mapgendata &dat, const point &offset ) const; }; +struct spawn_data { + std::map ammo; +}; + /** * Basic mapgen object. It is supposed to place or do something on a specific square on the map. * Inherit from this class and implement the @ref apply function. @@ -262,7 +266,7 @@ struct jmapgen_objects { bool check_bounds( const jmapgen_place &place, const JsonObject &jso ); - void add( const jmapgen_place &place, shared_ptr_fast piece ); + void add( const jmapgen_place &place, const shared_ptr_fast &piece ); /** * PieceType must be inheriting from jmapgen_piece. It must have constructor that accepts a @@ -270,7 +274,7 @@ struct jmapgen_objects { * them in @ref objects. */ template - void load_objects( JsonArray parray ); + void load_objects( const JsonArray &parray ); /** * Loads the mapgen objects from the array inside of jsi. If jsi has no member of that name, diff --git a/src/mapgen_functions.cpp b/src/mapgen_functions.cpp index 5d94ca4d103ef..4ad9194fe4945 100644 --- a/src/mapgen_functions.cpp +++ b/src/mapgen_functions.cpp @@ -36,16 +36,16 @@ #include "vehicle_group.h" #include "weighted_list.h" +static const itype_id itype_hat_hard( "hat_hard" ); +static const itype_id itype_jackhammer( "jackhammer" ); +static const itype_id itype_mask_dust( "mask_dust" ); + static const mtype_id mon_ant_larva( "mon_ant_larva" ); static const mtype_id mon_ant_queen( "mon_ant_queen" ); -static const mtype_id mon_bat( "mon_bat" ); static const mtype_id mon_bee( "mon_bee" ); static const mtype_id mon_beekeeper( "mon_beekeeper" ); -static const mtype_id mon_rat_king( "mon_rat_king" ); -static const mtype_id mon_sewer_rat( "mon_sewer_rat" ); static const mtype_id mon_zombie_jackson( "mon_zombie_jackson" ); -static const mongroup_id GROUP_CAVE( "GROUP_CAVE" ); static const mongroup_id GROUP_ZOMBIE( "GROUP_ZOMBIE" ); class npc_template; @@ -565,7 +565,7 @@ void mapgen_road( mapgendata &dat ) int neighbor_sidewalks = 0; // N E S W NE SE SW NW for( int dir = 0; dir < 8; dir++ ) { - sidewalks_neswx[dir] = dat.t_nesw[dir]->has_flag( has_sidewalk ); + sidewalks_neswx[dir] = dat.t_nesw[dir]->has_flag( oter_flags::has_sidewalk ); neighbor_sidewalks += sidewalks_neswx[dir]; } @@ -828,7 +828,7 @@ void mapgen_road( mapgendata &dat ) // draw round pavement for cul de sac late, to overdraw the yellow dots if( cul_de_sac ) { - circle( m, t_pavement, double( SEEX ) - 0.5, double( SEEY ) - 0.5, 11.0 ); + circle( m, t_pavement, static_cast( SEEX ) - 0.5, static_cast( SEEY ) - 0.5, 11.0 ); } // overwrite part of intersection with rotary/plaza @@ -913,7 +913,7 @@ void mapgen_subway( mapgendata &dat ) // N E S W for( int dir = 0; dir < 4; dir++ ) { - if( dat.t_nesw[dir]->has_flag( subway_connection ) && !subway_nesw[dir] ) { + if( dat.t_nesw[dir]->has_flag( oter_flags::subway_connection ) && !subway_nesw[dir] ) { num_dirs++; subway_nesw[dir] = true; } @@ -928,7 +928,7 @@ void mapgen_subway( mapgendata &dat ) } if( dat.t_nesw[dir]->get_type_id().str() != "subway" && - !dat.t_nesw[dir]->has_flag( subway_connection ) ) { + !dat.t_nesw[dir]->has_flag( oter_flags::subway_connection ) ) { continue; } // n_* contain details about the neighbor being considered @@ -936,7 +936,7 @@ void mapgen_subway( mapgendata &dat ) // TODO: figure out how to call this function without creating a new oter_id object int n_num_dirs = terrain_type_to_nesw_array( dat.t_nesw[dir], n_subway_nesw ); for( int dir = 0; dir < 4; dir++ ) { - if( dat.t_nesw[dir]->has_flag( subway_connection ) && !n_subway_nesw[dir] ) { + if( dat.t_nesw[dir]->has_flag( oter_flags::subway_connection ) && !n_subway_nesw[dir] ) { n_num_dirs++; n_subway_nesw[dir] = true; } @@ -1973,13 +1973,13 @@ void mapgen_cavern( mapgendata &dat ) y = rng( 0, SEEY * 2 - 1 ); } while( m->impassable( point( x, y ) ) ); if( !one_in( 3 ) ) { - m->spawn_item( point( x, y ), "jackhammer" ); + m->spawn_item( point( x, y ), itype_jackhammer ); } if( one_in( 3 ) ) { - m->spawn_item( point( x, y ), "mask_dust" ); + m->spawn_item( point( x, y ), itype_mask_dust ); } if( one_in( 2 ) ) { - m->spawn_item( point( x, y ), "hat_hard" ); + m->spawn_item( point( x, y ), itype_hat_hard ); } while( !one_in( 3 ) ) { for( int i = 0; i < 3; ++i ) { diff --git a/src/martialarts.cpp b/src/martialarts.cpp index a881ae6f1c2d2..89167bb24519f 100644 --- a/src/martialarts.cpp +++ b/src/martialarts.cpp @@ -58,7 +58,7 @@ matype_id martial_art_learned_from( const itype &type ) if( !type.book || type.book->martial_art.is_null() ) { debugmsg( "Item '%s' which claims to teach a martial art is missing martial_art", - type.get_id() ); + type.get_id().str() ); return {}; } @@ -1463,7 +1463,7 @@ bool ma_style_callback::key( const input_context &ctxt, const input_event &event if( !ma.weapons.empty() ) { std::vector weapons; std::transform( ma.weapons.begin(), ma.weapons.end(), - std::back_inserter( weapons ), []( const std::string & wid )-> std::string { return item::nname( wid ); } ); + std::back_inserter( weapons ), []( const itype_id & wid )-> std::string { return item::nname( wid ); } ); // Sorting alphabetically makes it easier to find a specific weapon std::sort( weapons.begin(), weapons.end(), localized_compare ); // This removes duplicate names (e.g. a real weapon and a replica sharing the same name) from the weapon list. @@ -1516,7 +1516,7 @@ bool ma_style_callback::key( const input_context &ctxt, const input_event &event fold_and_print_from( w, point( 2, 1 ), width, selected, c_light_gray, text ); draw_border( w, BORDER_COLOR, string_format( _( " Style: %s " ), ma.name ) ); draw_scrollbar( w, selected, height, iLines, point_south, BORDER_COLOR, true ); - wrefresh( w ); + wnoutrefresh( w ); } ); do { diff --git a/src/martialarts.h b/src/martialarts.h index f78c91b8cb311..8355178d5eba5 100644 --- a/src/martialarts.h +++ b/src/martialarts.h @@ -232,7 +232,7 @@ class martialart // determines if a technique is valid or not for this style bool has_technique( const Character &u, const matec_id &tec_id ) const; // determines if a weapon is valid for this style - bool has_weapon( const std::string &itt ) const; + bool has_weapon( const itype_id & ) const; // Is this weapon OK with this art? bool weapon_valid( const item &it ) const; // Getter for Character style change message @@ -253,7 +253,7 @@ class martialart bool arm_block_with_bio_armor_arms = false; bool leg_block_with_bio_armor_legs = false; std::set techniques; // all available techniques - std::set weapons; // all style weapons + std::set weapons; // all style weapons bool strictly_unarmed = false; // Punch daggers etc. bool strictly_melee = false; // Must have a weapon. bool allow_melee = false; // Can use unarmed or with ANY weapon diff --git a/src/material.cpp b/src/material.cpp index 801621f5cd631..79eadb59442a2 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -74,7 +74,7 @@ void material_type::load( const JsonObject &jsobj, const std::string & ) optional( jsobj, was_loaded, "freeze_point", _freeze_point ); assign( jsobj, "salvaged_into", _salvaged_into ); - optional( jsobj, was_loaded, "repaired_with", _repaired_with, "null" ); + optional( jsobj, was_loaded, "repaired_with", _repaired_with, itype_id::NULL_ID() ); optional( jsobj, was_loaded, "edible", _edible, false ); optional( jsobj, was_loaded, "rotting", _rotting, false ); optional( jsobj, was_loaded, "soft", _soft, false ); @@ -103,13 +103,11 @@ void material_type::load( const JsonObject &jsobj, const std::string & ) _burn_data.emplace_back( mbd ); } - for( JsonArray pair : jsobj.get_array( "burn_products" ) ) { - _burn_products.emplace_back( pair.get_string( 0 ), static_cast< float >( pair.get_float( 1 ) ) ); - } + jsobj.read( "burn_products", _burn_products, true ); optional( jsobj, was_loaded, "compact_accepts", _compact_accepts, auto_flags_reader() ); - optional( jsobj, was_loaded, "compacts_into", _compacts_into, string_reader() ); + optional( jsobj, was_loaded, "compacts_into", _compacts_into, auto_flags_reader() ); } void material_type::check() const @@ -120,7 +118,7 @@ void material_type::check() const if( _dmg_adj.size() < 4 ) { debugmsg( "material %s specifies insufficient damaged adjectives.", id.c_str() ); } - if( _salvaged_into && ( !item::type_is_defined( *_salvaged_into ) || *_salvaged_into == "null" ) ) { + if( _salvaged_into && ( !item::type_is_defined( *_salvaged_into ) || _salvaged_into->is_null() ) ) { debugmsg( "invalid \"salvaged_into\" %s for %s.", _salvaged_into->c_str(), id.c_str() ); } if( !item::type_is_defined( _repaired_with ) ) { diff --git a/src/material.h b/src/material.h index 1975443bdb969..4e1e5d59c0129 100644 --- a/src/material.h +++ b/src/material.h @@ -17,7 +17,6 @@ class material_type; enum damage_type : int; -using itype_id = std::string; class JsonObject; using mat_burn_products = std::vector>; diff --git a/src/mattack_actors.cpp b/src/mattack_actors.cpp index 5f8fcddbb5c1b..b4be3cc0c55e5 100644 --- a/src/mattack_actors.cpp +++ b/src/mattack_actors.cpp @@ -304,7 +304,7 @@ bool melee_actor::call( monster &z ) const target->on_hit( &z, convert_bp( bp_hit ).id() ); dealt_damage_instance dealt_damage = target->deal_damage( &z, convert_bp( bp_hit ).id(), damage ); - dealt_damage.bp_hit = bp_hit; + dealt_damage.bp_hit = convert_bp( bp_hit ).id(); int damage_total = dealt_damage.total_damage(); add_msg( m_debug, "%s's melee_attack did %d damage", z.name(), damage_total ); @@ -314,7 +314,7 @@ bool melee_actor::call( monster &z ) const sfx::play_variant_sound( "mon_bite", "bite_miss", sfx::get_heard_volume( z.pos() ), sfx::get_heard_angle( z.pos() ) ); target->add_msg_player_or_npc( m_neutral, no_dmg_msg_u, no_dmg_msg_npc, z.name(), - body_part_name_accusative( bp_hit ) ); + body_part_name_accusative( convert_bp( bp_hit ).id() ) ); } return true; @@ -328,13 +328,13 @@ void melee_actor::on_damage( monster &z, Creature &target, dealt_damage_instance sfx::do_player_death_hurt( dynamic_cast( target ), false ); } auto msg_type = target.attitude_to( g->u ) == Creature::A_FRIENDLY ? m_bad : m_neutral; - const body_part bp = dealt.bp_hit; + const bodypart_id &bp = dealt.bp_hit ; target.add_msg_player_or_npc( msg_type, hit_dmg_u, hit_dmg_npc, z.name(), body_part_name_accusative( bp ) ); for( const auto &eff : effects ) { if( x_in_y( eff.chance, 100 ) ) { - const body_part affected_bp = eff.affect_hit_bp ? bp : eff.bp; + const body_part affected_bp = eff.affect_hit_bp ? bp->token : eff.bp; target.add_effect( eff.id, time_duration::from_turns( eff.duration ), affected_bp, eff.permanent ); } } @@ -357,13 +357,13 @@ void bite_actor::on_damage( monster &z, Creature &target, dealt_damage_instance { melee_actor::on_damage( z, target, dealt ); if( target.has_effect( effect_grabbed ) && one_in( no_infection_chance - dealt.total_damage() ) ) { - const body_part hit = dealt.bp_hit; - if( target.has_effect( effect_bite, hit ) ) { - target.add_effect( effect_bite, 40_minutes, hit, true ); - } else if( target.has_effect( effect_infected, hit ) ) { - target.add_effect( effect_infected, 25_minutes, hit, true ); + const bodypart_id &hit = dealt.bp_hit; + if( target.has_effect( effect_bite, hit->token ) ) { + target.add_effect( effect_bite, 40_minutes, hit->token, true ); + } else if( target.has_effect( effect_infected, hit->token ) ) { + target.add_effect( effect_infected, 25_minutes, hit->token, true ); } else { - target.add_effect( effect_bite, 1_turns, hit, true ); + target.add_effect( effect_bite, 1_turns, hit->token, true ); } } if( target.has_trait( trait_TOXICFLESH ) ) { @@ -384,7 +384,7 @@ gun_actor::gun_actor() : description( _( "The %1$s fires its %2$s!" ) ), void gun_actor::load_internal( const JsonObject &obj, const std::string & ) { - gun_type = obj.get_string( "gun_type" ); + obj.read( "gun_type", gun_type, true ); obj.read( "ammo_type", ammo_type ); @@ -529,9 +529,20 @@ void gun_actor::shoot( monster &z, Creature &target, const gun_mode_id &mode ) c item gun( gun_type ); gun.gun_set_mode( mode ); - itype_id ammo = ( ammo_type != "null" ) ? ammo_type : gun.ammo_default(); - if( ammo != "null" ) { - gun.ammo_set( ammo, z.ammo[ ammo ] ); + itype_id ammo; + if( gun.magazine_integral() ) { + ammo = gun.ammo_default(); + } else { + ammo = item( gun.magazine_default() ).ammo_default(); + } + if( !ammo.is_null() ) { + if( gun.magazine_integral() ) { + gun.ammo_set( ammo, z.ammo[ammo] ); + } else { + item mag( gun.magazine_default() ); + mag.ammo_set( ammo, z.ammo[ammo] ); + gun.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } } if( !gun.ammo_sufficient() ) { diff --git a/src/mattack_actors.h b/src/mattack_actors.h index cb0e202ca1feb..3cc6caeeabddd 100644 --- a/src/mattack_actors.h +++ b/src/mattack_actors.h @@ -133,7 +133,7 @@ class gun_actor : public mattack_actor itype_id gun_type; /** Specific ammo type to use or for gun default if unspecified */ - itype_id ammo_type = "null"; + itype_id ammo_type = itype_id::NULL_ID(); /*@{*/ /** Balanced against player. If fake_skills unspecified defaults to GUN 4, WEAPON 8 */ @@ -147,7 +147,7 @@ class gun_actor : public mattack_actor /** Specify weapon mode to use at different engagement distances */ std::map, gun_mode_id> ranges; - int max_ammo = INT_MAX; /** limited also by monster starting_ammo */ + int max_ammo = INT_MAX; /** limited also by monster starting ammo */ /** Description of the attack being run */ std::string description; @@ -155,7 +155,7 @@ class gun_actor : public mattack_actor /** Message to display (if any) for failures to fire excluding lack of ammo */ std::string failure_msg; - /** Sound (if any) when either starting_ammo depleted or max_ammo reached */ + /** Sound (if any) when either ammo depleted or max_ammo reached */ std::string no_ammo_sound; /** Number of moves required for each attack */ diff --git a/src/melee.cpp b/src/melee.cpp index 547e9fcd76ea8..a0999349d6cf0 100644 --- a/src/melee.cpp +++ b/src/melee.cpp @@ -65,6 +65,10 @@ static const bionic_id bio_cqb( "bio_cqb" ); static const bionic_id bio_memory( "bio_memory" ); +static const itype_id itype_fur( "fur" ); +static const itype_id itype_leather( "leather" ); +static const itype_id itype_rag( "rag" ); + static const matec_id tec_none( "tec_none" ); static const matec_id WBLOCK_1( "WBLOCK_1" ); static const matec_id WBLOCK_2( "WBLOCK_2" ); @@ -91,21 +95,27 @@ static const efftype_id effect_narcosis( "narcosis" ); static const efftype_id effect_poison( "poison" ); static const efftype_id effect_stunned( "stunned" ); +static const trait_id trait_ARM_TENTACLES( "ARM_TENTACLES" ); +static const trait_id trait_ARM_TENTACLES_4( "ARM_TENTACLES_4" ); +static const trait_id trait_ARM_TENTACLES_8( "ARM_TENTACLES_8" ); +static const trait_id trait_BEAK_PECK( "BEAK_PECK" ); static const trait_id trait_CLAWS_TENTACLE( "CLAWS_TENTACLE" ); static const trait_id trait_CLUMSY( "CLUMSY" ); static const trait_id trait_DEBUG_NIGHTVISION( "DEBUG_NIGHTVISION" ); static const trait_id trait_DEFT( "DEFT" ); static const trait_id trait_DRUNKEN( "DRUNKEN" ); static const trait_id trait_HYPEROPIC( "HYPEROPIC" ); +static const trait_id trait_KI_STRIKE( "KI_STRIKE" ); static const trait_id trait_NAILS( "NAILS" ); static const trait_id trait_POISONOUS2( "POISONOUS2" ); static const trait_id trait_POISONOUS( "POISONOUS" ); static const trait_id trait_PROF_SKATER( "PROF_SKATER" ); -static const trait_id trait_THORNS( "THORNS" ); +static const trait_id trait_VINES2( "VINES2" ); +static const trait_id trait_VINES3( "VINES3" ); static const efftype_id effect_amigara( "amigara" ); -static const species_id HUMAN( "HUMAN" ); +static const species_id species_HUMAN( "HUMAN" ); void player_hit_message( Character *attacker, const std::string &message, Creature &t, int dam, bool crit = false ); @@ -175,7 +185,7 @@ bool Character::handle_melee_wear( item &shield, float wear_multiplier ) float material_factor; itype_id weak_comp; - itype_id big_comp = "null"; + itype_id big_comp = itype_id::NULL_ID(); // Fragile items that fall apart easily when used as a weapon due to poor construction quality if( shield.has_flag( "FRAGILE_MELEE" ) ) { const float fragile_factor = 6; @@ -183,10 +193,7 @@ bool Character::handle_melee_wear( item &shield, float wear_multiplier ) units::volume big_vol = 0_ml; // Items that should have no bearing on durability - const std::set blacklist = { "rag", - "leather", - "fur" - }; + const std::set blacklist = { itype_rag, itype_leather, itype_fur }; for( auto &comp : shield.components ) { if( blacklist.count( comp.typeId() ) <= 0 ) { @@ -352,6 +359,7 @@ void Character::roll_all_damage( bool crit, damage_instance &di, bool average, roll_bash_damage( crit, di, average, weap ); roll_cut_damage( crit, di, average, weap ); roll_stab_damage( crit, di, average, weap ); + roll_other_damage( crit, di, average, weap ); } static void melee_train( Character &p, int lo, int hi, const item &weap ) @@ -590,18 +598,13 @@ void Character::melee_attack( Creature &t, bool allow_special, const matec_id &f } } - const int melee = get_skill_level( skill_melee ); + /** @EFFECT_MELEE reduces stamina cost of melee attacks */ + const int mod_sta = get_standard_stamina_cost(); - // Previously calculated as 2_gram * std::max( 1, str_cur ) - // using 16_gram normalizes it to 8 str. Same effort expenditure - // for each strike, regardless of weight. This is compensated - // for by the additional move cost as weapon weight increases - const int weight_cost = cur_weapon.weight() / ( 16_gram ); - const int encumbrance_cost = encumb( bp_arm_l ) + encumb( bp_arm_r ); + const int melee = get_skill_level( skill_melee ); const int deft_bonus = hit_spread < 0 && has_trait( trait_DEFT ) ? 50 : 0; - /** @EFFECT_MELEE reduces stamina cost of melee attacks */ - const int mod_sta = ( weight_cost + encumbrance_cost - melee - deft_bonus + 50 ) * -1; - mod_stamina( std::min( -50, mod_sta ) ); + + mod_stamina( std::min( -50, mod_sta + melee + deft_bonus ) ); add_msg( m_debug, "Stamina burn: %d", std::min( -50, mod_sta ) ); mod_moves( -move_cost ); // trigger martial arts on-attack effects @@ -613,7 +616,6 @@ void Character::melee_attack( Creature &t, bool allow_special, const matec_id &f dealt_projectile_attack dp = dealt_projectile_attack(); t.as_character()->on_hit( this, bodypart_id( "num_bp" ), 0.0f, &dp ); } - return; } void player::reach_attack( const tripoint &p ) @@ -626,7 +628,7 @@ void player::reach_attack( const tripoint &p ) Creature *critter = g->critter_at( p ); // Original target size, used when there are monsters in front of our target - int target_size = critter != nullptr ? critter->get_size() : 2; + const int target_size = critter != nullptr ? static_cast( critter->get_size() ) : 2; // Reset last target pos last_target_pos = cata::nullopt; // Max out recoil @@ -859,6 +861,11 @@ void Character::roll_bash_damage( bool crit, damage_instance &di, bool average, skill = BIO_CQB_LEVEL; } + if( has_trait( trait_KI_STRIKE ) && unarmed && weap.is_null() ) { + // Pure unarmed doubles the bonuses from unarmed skill + skill *= 2; + } + const int stat = get_str(); /** @EFFECT_STR increases bashing damage */ float stat_bonus = bonus_damage( !average ); @@ -918,6 +925,11 @@ void Character::roll_bash_damage( bool crit, damage_instance &di, bool average, float bash_cap = 2 * stat + 2 * skill; float bash_mul = 1.0f; + if( has_trait( trait_KI_STRIKE ) && unarmed ) { + /** @EFFECT_UNARMED increases bashing damage with unarmed weapons when paired with the Ki Strike trait */ + weap_dam += skill; + } + // 80%, 88%, 96%, 104%, 112%, 116%, 120%, 124%, 128%, 132% if( skill < 5 ) { bash_mul = 0.8 + 0.08 * skill; @@ -956,13 +968,14 @@ void Character::roll_cut_damage( bool crit, damage_instance &di, bool average, float cut_dam = mabuff_damage_bonus( DT_CUT ) + weap.damage_melee( DT_CUT ); float cut_mul = 1.0f; - int cutting_skill = get_skill_level( skill_cutting ); + const bool unarmed = weap.is_unarmed_weapon(); + int skill = get_skill_level( unarmed ? skill_unarmed : skill_cutting ); if( has_active_bionic( bio_cqb ) ) { - cutting_skill = BIO_CQB_LEVEL; + skill = BIO_CQB_LEVEL; } - if( weap.is_unarmed_weapon() ) { + if( unarmed ) { // TODO: 1-handed weapons that aren't unarmed attacks const bool left_empty = !natural_attack_restricted_on( bodypart_id( "hand_l" ) ); const bool right_empty = !natural_attack_restricted_on( bodypart_id( "hand_r" ) ) && @@ -1006,10 +1019,10 @@ void Character::roll_cut_damage( bool crit, damage_instance &di, bool average, // 80%, 88%, 96%, 104%, 112%, 116%, 120%, 124%, 128%, 132% /** @EFFECT_CUTTING increases cutting damage multiplier */ - if( cutting_skill < 5 ) { - cut_mul *= 0.8 + 0.08 * cutting_skill; + if( skill < 5 ) { + cut_mul *= 0.8 + 0.08 * skill; } else { - cut_mul *= 0.96 + 0.04 * cutting_skill; + cut_mul *= 0.96 + 0.04 * skill; } cut_mul *= mabuff_damage_mult( DT_CUT ); @@ -1027,14 +1040,14 @@ void Character::roll_stab_damage( bool crit, damage_instance &di, bool /*average { float cut_dam = mabuff_damage_bonus( DT_STAB ) + weap.damage_melee( DT_STAB ); - int unarmed_skill = get_skill_level( skill_unarmed ); - int stabbing_skill = get_skill_level( skill_stabbing ); + const bool unarmed = weap.is_unarmed_weapon(); + int skill = get_skill_level( unarmed ? skill_unarmed : skill_stabbing ); if( has_active_bionic( bio_cqb ) ) { - stabbing_skill = BIO_CQB_LEVEL; + skill = BIO_CQB_LEVEL; } - if( weap.is_unarmed_weapon() ) { + if( unarmed ) { const bool left_empty = !natural_attack_restricted_on( bodypart_id( "hand_l" ) ); const bool right_empty = !natural_attack_restricted_on( bodypart_id( "hand_r" ) ) && weap.is_null(); @@ -1045,7 +1058,7 @@ void Character::roll_stab_damage( bool crit, damage_instance &di, bool /*average per_hand += mut->pierce_dmg_bonus; if( mut->flags.count( "UNARMED_BONUS" ) > 0 && cut_bonus > 0 ) { - per_hand += std::min( unarmed_skill / 2, 4 ); + per_hand += std::min( skill / 2, 4 ); } } @@ -1068,10 +1081,10 @@ void Character::roll_stab_damage( bool crit, damage_instance &di, bool /*average float stab_mul = 1.0f; // 66%, 76%, 86%, 96%, 106%, 116%, 122%, 128%, 134%, 140% /** @EFFECT_STABBING increases stabbing damage multiplier */ - if( stabbing_skill <= 5 ) { - stab_mul = 0.66 + 0.1 * stabbing_skill; + if( skill <= 5 ) { + stab_mul = 0.66 + 0.1 * skill; } else { - stab_mul = 0.86 + 0.06 * stabbing_skill; + stab_mul = 0.86 + 0.06 * skill; } stab_mul *= mabuff_damage_mult( DT_STAB ); @@ -1079,7 +1092,7 @@ void Character::roll_stab_damage( bool crit, damage_instance &di, bool /*average if( crit ) { // Critical damage bonus for stabbing scales with skill - stab_mul *= 1.0 + ( stabbing_skill / 10.0 ); + stab_mul *= 1.0 + ( skill / 10.0 ); // Stab criticals have extra %arpen armor_mult = 0.66f; } @@ -1087,6 +1100,30 @@ void Character::roll_stab_damage( bool crit, damage_instance &di, bool /*average di.add_damage( DT_STAB, cut_dam, 0, armor_mult, stab_mul ); } +void Character::roll_other_damage( bool /*crit*/, damage_instance &di, bool /*average*/, + const item &weap ) const +{ + std::map dt_map = get_dt_map(); + + for( const std::pair &dt : dt_map ) { + damage_type type_name = dt.second; + + if( type_name == DT_BASH || type_name == DT_CUT || type_name == DT_STAB ) { + continue; + } + + float other_dam = mabuff_damage_bonus( type_name ) + weap.damage_melee( type_name ); + + // No negative damage! + if( other_dam > 0 ) { + float other_mul = 1.0f * mabuff_damage_mult( type_name ); + float armor_mult = 1.0f; + + di.add_damage( type_name, other_dam, 0, armor_mult, other_mul ); + } + } +} + matec_id Character::pick_technique( Creature &t, const item &weap, bool crit, bool dodge_counter, bool block_counter ) { @@ -1162,7 +1199,7 @@ matec_id Character::pick_technique( Creature &t, const item &weap, } // Don't apply humanoid-only techniques to non-humanoids - if( tec.human_target && !t.in_species( HUMAN ) ) { + if( tec.human_target && !t.in_species( species_HUMAN ) ) { continue; } // if aoe, check if there are valid targets @@ -1538,16 +1575,21 @@ bool Character::block_hit( Creature *source, bodypart_id &bp_hit, damage_instanc { // Shouldn't block if player is asleep or winded - if( blocks_left < 1 || in_sleep_state() || has_effect( effect_narcosis ) || + if( in_sleep_state() || has_effect( effect_narcosis ) || has_effect( efftype_id( "winded" ) ) ) { return false; } - blocks_left--; // fire martial arts on-getting-hit-triggered effects // these fire even if the attack is blocked (you still got hit) martial_arts_data.ma_ongethit_effects( *this ); + if( blocks_left < 1 ) { + return false; + } + + blocks_left--; + // This bonus absorbs damage from incoming attacks before they land, // but it still counts as a block even if it absorbs all the damage. float total_phys_block = mabuff_block_bonus(); @@ -1580,6 +1622,9 @@ bool Character::block_hit( Creature *source, bodypart_id &bp_hit, damage_instanc } else if( has_shield ) { // We can still block with a worn item while unarmed. Use higher of melee and unarmed block_score = str_cur + block_bonus + std::max( melee_skill, unarmed_skill ); + } else { + // We don't have a shield or a technique. How are we blocking? + return false; } } else if( has_shield ) { block_score = str_cur + block_bonus + get_skill_level( skill_melee ); @@ -1620,12 +1665,12 @@ bool Character::block_hit( Creature *source, bodypart_id &bp_hit, damage_instanc } } - thing_blocked_with = body_part_name( bp_hit->token ); + thing_blocked_with = body_part_name( bp_hit ); } if( has_shield ) { // Does our shield cover the limb we blocked with? If so, add the block bonus. - block_score += shield.covers( bp_hit->token ) ? block_bonus : 0; + block_score += shield.covers( bp_hit ) ? block_bonus : 0; } // Map block_score to the logistic curve for a number between 1 and 0. @@ -1852,7 +1897,7 @@ std::string Character::melee_special_effects( Creature &t, damage_instance &d, i static damage_instance hardcoded_mutation_attack( const Character &u, const trait_id &id ) { - if( id == "BEAK_PECK" ) { + if( id == trait_BEAK_PECK ) { // method open to improvement, please feel free to suggest // a better way to simulate target's anti-peck efforts /** @EFFECT_DEX increases number of hits with BEAK_PECK */ @@ -1863,11 +1908,11 @@ static damage_instance hardcoded_mutation_attack( const Character &u, const trai return damage_instance::physical( 0, 0, num_hits * 10 ); } - if( id == "ARM_TENTACLES" || id == "ARM_TENTACLES_4" || id == "ARM_TENTACLES_8" ) { + if( id == trait_ARM_TENTACLES || id == trait_ARM_TENTACLES_4 || id == trait_ARM_TENTACLES_8 ) { int num_attacks = 1; - if( id == "ARM_TENTACLES_4" ) { + if( id == trait_ARM_TENTACLES_4 ) { num_attacks = 3; - } else if( id == "ARM_TENTACLES_8" ) { + } else if( id == trait_ARM_TENTACLES_8 ) { num_attacks = 7; } // Note: we're counting arms, so we want wielded item here, not weapon used for attack @@ -1892,8 +1937,8 @@ static damage_instance hardcoded_mutation_attack( const Character &u, const trai return ret; } - if( id == "VINES2" || id == "VINES3" ) { - const int num_attacks = id == "VINES2" ? 2 : 3; + if( id == trait_VINES2 || id == trait_VINES3 ) { + const int num_attacks = id == trait_VINES2 ? 2 : 3; /** @EFFECT_STR increases damage with VINES* */ damage_instance ret; ret.add_damage( DT_BASH, u.get_str() / 2.0f, 0, 1.0f, num_attacks ); @@ -1917,7 +1962,7 @@ std::vector Character::mutation_attacks( Creature &t ) const const mutation_branch &branch = pr.obj(); for( const mut_attack &mut_atk : branch.attacks_granted ) { // Covered body part - if( mut_atk.bp != num_bp && !usable_body_parts.test( mut_atk.bp ) ) { + if( !mut_atk.bp.is_empty() && !usable_body_parts.test( mut_atk.bp ) ) { continue; } @@ -2217,7 +2262,7 @@ double player::weapon_value( const item &weap, int 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.type->get_id(), ammo, my_val ); + add_msg( m_debug, "%s (%ld ammo) sum value: %.1f", weap.type->get_id().str(), ammo, my_val ); if( is_wielding( weap ) ) { cached_info.emplace( "weapon_value", my_val ); } @@ -2244,7 +2289,7 @@ double player::melee_value( const item &weap ) const my_value *= 1.5; } - add_msg( m_debug, "%s as melee: %.1f", weap.type->get_id(), my_value ); + add_msg( m_debug, "%s as melee: %.1f", weap.type->get_id().str(), my_value ); return std::max( 0.0, my_value ); } diff --git a/src/memorial_logger.cpp b/src/memorial_logger.cpp index 2fb6689593bec..c9e0668d16266 100644 --- a/src/memorial_logger.cpp +++ b/src/memorial_logger.cpp @@ -7,6 +7,7 @@ #include #include +#include "achievement.h" #include "addiction.h" #include "avatar.h" #include "bionics.h" @@ -437,7 +438,7 @@ void memorial_logger::notify( const cata::event &e ) //~ %s is bodypart add( pgettext( "memorial_male", "Broken %s began to mend." ), pgettext( "memorial_female", "Broken %s began to mend." ), - body_part_name( part ) ); + body_part_name( convert_bp( part ).id() ) ); } break; } @@ -839,9 +840,9 @@ void memorial_logger::notify( const cata::event &e ) case event_type::gains_skill_level: { character_id ch = e.get( "character" ); if( ch == g->u.getID() ) { - skill_id skill = e.get( "skill" ); int new_level = e.get( "new_level" ); if( new_level % 4 == 0 ) { + skill_id skill = e.get( "skill" ); add( pgettext( "memorial_male", //~ %d is skill level %s is skill name "Reached skill level %1$d in %2$s." ), @@ -939,11 +940,48 @@ void memorial_logger::notify( const cata::event &e ) pgettext( "memorial_female", "Opened a strange temple." ) ); break; } + case event_type::player_fails_conduct: { + add( pgettext( "memorial_male", "Lost the conduct %s%s." ), + pgettext( "memorial_female", "Lost the conduct %s%s." ), + e.get( "conduct" )->name(), + e.get( "achievements_enabled" ) ? "" : _( " (disabled)" ) ); + break; + } + case event_type::player_gets_achievement: { + add( pgettext( "memorial_male", "Gained the achievement %s%s." ), + pgettext( "memorial_female", "Gained the achievement %s%s." ), + e.get( "achievement" )->name(), + e.get( "achievements_enabled" ) ? "" : _( " (disabled)" ) ); + break; + } + case event_type::character_forgets_spell: { + character_id ch = e.get( "character" ); + if( ch == g->u.getID() ) { + std::string spell_name = e.get( "spell" )->name.translated(); + add( pgettext( "memorial_male", "Forgot the spell %s." ), + pgettext( "memorial_female", "Forgot the spell %s." ), + spell_name ); + } + break; + } + case event_type::character_learns_spell: { + character_id ch = e.get( "character" ); + if( ch == g->u.getID() ) { + std::string spell_name = e.get( "spell" )->name.translated(); + add( pgettext( "memorial_male", "Learned the spell %s." ), + pgettext( "memorial_female", "Learned the spell %s." ), + spell_name ); + } + break; + } case event_type::player_levels_spell: { - std::string spell_name = e.get( "spell" )->name.translated(); - add( pgettext( "memorial_male", "Gained a spell level on %s." ), - pgettext( "memorial_female", "Gained a spell level on %s." ), - spell_name ); + character_id ch = e.get( "character" ); + if( ch == g->u.getID() ) { + std::string spell_name = e.get( "spell" )->name.translated(); + add( pgettext( "memorial_male", "Gained a spell level on %s." ), + pgettext( "memorial_female", "Gained a spell level on %s." ), + spell_name ); + } break; } case event_type::releases_subspace_specimens: { @@ -1013,11 +1051,14 @@ void memorial_logger::notify( const cata::event &e ) break; } // All the events for which we have no memorial log are here + case event_type::avatar_enters_omt: case event_type::avatar_moves: case event_type::character_gets_headshot: case event_type::character_heals_damage: case event_type::character_takes_damage: case event_type::character_wakes_up: + case event_type::character_wears_item: + case event_type::character_wields_item: break; case event_type::num_event_types: { debugmsg( "Invalid event type" ); diff --git a/src/messages.cpp b/src/messages.cpp index acb4979127dde..0115960a91363 100644 --- a/src/messages.cpp +++ b/src/messages.cpp @@ -619,7 +619,7 @@ void Messages::dialog::show() } if( filtering ) { - wrefresh( w ); + wnoutrefresh( w ); // Print the help text werase( w_filter_help ); draw_border( w_filter_help, border_color ); @@ -631,7 +631,7 @@ void Messages::dialog::show() mvwprintz( w_filter_help, point( border_width, w_fh_height - 1 ), border_color, "< " ); mvwprintz( w_filter_help, point( w_fh_width - border_width - 2, w_fh_height - 1 ), border_color, " >" ); - wrefresh( w_filter_help ); + wnoutrefresh( w_filter_help ); // This line is preventing this method from being const filter.query( false, true ); // Draw only @@ -644,7 +644,7 @@ void Messages::dialog::show() mvwprintz( w, point( border_width, w_height - 1 ), border_color, "< %s >", filter_str ); mvwprintz( w, point( border_width + 2, w_height - 1 ), filter_color, "%s", filter_str ); } - wrefresh( w ); + wnoutrefresh( w ); } } diff --git a/src/mission.cpp b/src/mission.cpp index 72359f5caeb81..0fd633679f6d4 100644 --- a/src/mission.cpp +++ b/src/mission.cpp @@ -295,7 +295,7 @@ void mission::wrap_up() tmp_inv.dump( items ); Group_tag grp_type = type->group_id; itype_id container = type->container_id; - bool specific_container_required = container != "null"; + bool specific_container_required = !container.is_null(); bool remove_container = type->remove_container; itype_id empty_container = type->empty_container; @@ -304,9 +304,8 @@ void mission::wrap_up() items, grp_type, matches, container, itype_id( "null" ), specific_container_required ); - std::map::iterator cnt_it; - for( cnt_it = matches.begin(); cnt_it != matches.end(); cnt_it++ ) { - comps.push_back( item_comp( cnt_it->first, cnt_it->second ) ); + for( std::pair &cnt : matches ) { + comps.push_back( item_comp( cnt.first, cnt.second ) ); } @@ -314,7 +313,7 @@ void mission::wrap_up() if( remove_container ) { std::vector container_comp = std::vector(); - if( empty_container != "null" ) { + if( !empty_container.is_null() ) { container_comp.push_back( item_comp( empty_container, type->item_count ) ); u.consume_items( container_comp ); } else { @@ -364,7 +363,7 @@ bool mission::is_complete( const character_id &_npc_id ) const tmp_inv.dump( items ); Group_tag grp_type = type->group_id; itype_id container = type->container_id; - bool specific_container_required = container != "null"; + bool specific_container_required = !container.is_null(); std::map matches = std::map(); get_all_item_group_matches( @@ -372,7 +371,7 @@ bool mission::is_complete( const character_id &_npc_id ) const container, itype_id( "null" ), specific_container_required ); int total_match = std::accumulate( matches.begin(), matches.end(), 0, - []( const std::size_t previous, const std::pair &p ) { + []( const std::size_t previous, const std::pair &p ) { return static_cast( previous + p.second ); } ); @@ -479,7 +478,7 @@ void mission::get_all_item_group_matches( std::vector &items, //check whether item itself is target if( item_in_group && correct_container ) { - std::map::iterator it = matches.find( itm->typeId() ); + std::map::iterator it = matches.find( itm->typeId() ); if( it != matches.end() ) { it->second = ( it->second ) + 1; } else { @@ -562,7 +561,7 @@ int mission::get_id() const return uid; } -const std::string &mission::get_item_id() const +const itype_id &mission::get_item_id() const { return item_id; } @@ -595,7 +594,7 @@ character_id mission::get_npc_id() const return npc_id; } -const std::vector> &mission::get_likely_rewards() const +const std::vector> &mission::get_likely_rewards() const { return type->likely_rewards; } @@ -688,7 +687,7 @@ mission::mission() value = 0; uid = -1; target = tripoint_min; - item_id = "null"; + item_id = itype_id::NULL_ID(); item_count = 1; target_id = string_id::NULL_ID(); recruit_class = NC_NONE; diff --git a/src/mission.h b/src/mission.h index edc510edcabb6..7243c571a2035 100644 --- a/src/mission.h +++ b/src/mission.h @@ -219,15 +219,15 @@ struct mission_type { bool has_generic_rewards = true; // A limited subset of the talk_effects on the mission - std::vector> likely_rewards; + std::vector> likely_rewards; // Points of origin std::vector origins; - itype_id item_id = "null"; + itype_id item_id = itype_id::NULL_ID(); Group_tag group_id = "null"; - itype_id container_id = "null"; + itype_id container_id = itype_id::NULL_ID(); bool remove_container = false; - itype_id empty_container = "null"; + itype_id empty_container = itype_id::NULL_ID(); int item_count = 1; npc_class_id recruit_class = npc_class_id( "NC_NONE" ); // The type of NPC you are to recruit character_id target_npc_id; @@ -289,7 +289,7 @@ struct mission_type { class mission { public: - enum class mission_status { + enum class mission_status : int { yet_to_start, in_progress, success, @@ -363,9 +363,9 @@ class mission mission_type_id get_follow_up() const; int get_value() const; int get_id() const; - const std::string &get_item_id() const; + const itype_id &get_item_id() const; character_id get_npc_id() const; - const std::vector> &get_likely_rewards() const; + const std::vector> &get_likely_rewards() const; bool has_generic_rewards() const; /** * Whether the mission is assigned to a player character. If not, the mission is free and diff --git a/src/mission_companion.cpp b/src/mission_companion.cpp index 6cda4f10cc53b..abbe8b5f495b7 100644 --- a/src/mission_companion.cpp +++ b/src/mission_companion.cpp @@ -64,6 +64,9 @@ static const efftype_id effect_riding( "riding" ); +static const itype_id itype_fungal_seeds( "fungal_seeds" ); +static const itype_id itype_marloss_seed( "marloss_seed" ); + static const skill_id skill_bashing( "bashing" ); static const skill_id skill_cutting( "cutting" ); static const skill_id skill_dodge( "dodge" ); @@ -506,7 +509,7 @@ bool talk_function::display_and_choose_opts( mission_data &mission_key, const tr .viewport_size( info_height + 1 ) .apply( w_list ); } - wrefresh( w_list ); + wnoutrefresh( w_list ); werase( w_info ); // Fold mission text, store it for scrolling @@ -533,12 +536,12 @@ bool talk_function::display_and_choose_opts( mission_data &mission_key, const tr mission_text[start_line + info_offset] ); } - wrefresh( w_info ); + wnoutrefresh( w_info ); if( role_id == "FACTION_CAMP" ) { werase( w_tabs ); draw_camp_tabs( w_tabs, tab_mode, mission_key.entries ); - wrefresh( w_tabs ); + wnoutrefresh( w_tabs ); } } ); @@ -668,10 +671,6 @@ bool talk_function::handle_outpost_mission( const mission_entry &cur_key, npc &p forage_return( p ); } - g->draw_ter(); - wrefresh( g->w_terrain ); - g->draw_panels( true ); - return true; } @@ -966,7 +965,8 @@ void talk_function::field_plant( npc &p, const std::string &place ) return; } std::vector seed_inv = g->u.items_with( []( const item & itm ) { - return itm.is_seed() && itm.typeId() != "marloss_seed" && itm.typeId() != "fungal_seeds"; + return itm.is_seed() && itm.typeId() != itype_marloss_seed && + itm.typeId() != itype_fungal_seeds; } ); if( seed_inv.empty() ) { popup( _( "You have no seeds to plant!" ) ); @@ -1882,7 +1882,7 @@ npc_ptr talk_function::companion_choose( const std::map &required basecamp *player_camp = *bcp; std::vector camp_npcs = player_camp->get_npcs_assigned(); if( std::any_of( camp_npcs.begin(), camp_npcs.end(), - [guy]( npc_ptr i ) { + [guy]( const npc_ptr & i ) { return i == guy; } ) ) { available.push_back( guy ); @@ -1895,7 +1895,7 @@ npc_ptr talk_function::companion_choose( const std::map &required basecamp *temp_camp = *guy_camp; std::vector assigned_npcs = temp_camp->get_npcs_assigned(); if( std::any_of( assigned_npcs.begin(), assigned_npcs.end(), - [guy]( npc_ptr i ) { + [guy]( const npc_ptr & i ) { return i == guy; } ) ) { available.push_back( guy ); @@ -2076,7 +2076,7 @@ void talk_function::loot_building( const tripoint &site ) map_stack items = bay.i_at( p ); for( map_stack::iterator it = items.begin(); it != items.end(); ) { if( ( ( it->is_food() || it->is_food_container() ) && !one_in( 8 ) ) || - ( it->made_of( LIQUID ) && !one_in( 8 ) ) || + ( it->made_of( phase_id::LIQUID ) && !one_in( 8 ) ) || ( it->price( true ) > 1000 && !one_in( 4 ) ) || one_in( 5 ) ) { it = items.erase( it ); } else { diff --git a/src/mission_start.cpp b/src/mission_start.cpp index ccf6d8a2b27f4..8ec3f52507ec5 100644 --- a/src/mission_start.cpp +++ b/src/mission_start.cpp @@ -27,8 +27,12 @@ #include "string_formatter.h" #include "translations.h" -static const mtype_id mon_dog( "mon_dog" ); +static const itype_id itype_software_hacking( "software_hacking" ); +static const itype_id itype_software_math( "software_math" ); +static const itype_id itype_software_medical( "software_medical" ); +static const itype_id itype_software_useless( "software_useless" ); +static const mtype_id mon_dog( "mon_dog" ); static const mtype_id mon_zombie( "mon_zombie" ); static const mtype_id mon_zombie_brute( "mon_zombie_brute" ); static const mtype_id mon_zombie_dog( "mon_zombie_dog" ); @@ -194,15 +198,15 @@ void mission_start::place_npc_software( mission *miss ) std::string type = "house"; if( dev->myclass == NC_HACKER ) { - miss->item_id = "software_hacking"; + miss->item_id = itype_software_hacking; } else if( dev->myclass == NC_DOCTOR ) { - miss->item_id = "software_medical"; + miss->item_id = itype_software_medical; type = "s_pharm"; miss->follow_up = mission_type_id( "MISSION_GET_ZOMBIE_BLOOD_ANAL" ); } else if( dev->myclass == NC_SCIENTIST ) { - miss->item_id = "software_math"; + miss->item_id = itype_software_math; } else { - miss->item_id = "software_useless"; + miss->item_id = itype_software_useless; } tripoint place; diff --git a/src/mission_ui.cpp b/src/mission_ui.cpp index e40dd206e7c4c..bc6bfeaeb3278 100644 --- a/src/mission_ui.cpp +++ b/src/mission_ui.cpp @@ -104,10 +104,10 @@ void game::list_missions() miss->name() + for_npc ); auto format_tokenized_description = []( const std::string & description, - const std::vector> &rewards ) { + const std::vector> &rewards ) { std::string formatted_description = description; for( const auto &reward : rewards ) { - std::string token = ""; + std::string token = ""; formatted_description = string_replace( formatted_description, token, string_format( "%d", reward.first ) ); } @@ -155,7 +155,7 @@ void game::list_missions() mvwprintz( w_missions, point( 31, 4 ), c_light_red, _( nope.at( tab ) ) ); } - wrefresh( w_missions ); + wnoutrefresh( w_missions ); } ); while( true ) { diff --git a/src/missiondef.cpp b/src/missiondef.cpp index c6fbc4e029e73..f6da779457fcd 100644 --- a/src/missiondef.cpp +++ b/src/missiondef.cpp @@ -345,7 +345,7 @@ void mission_type::finalize() void mission_type::check_consistency() { for( const auto &m : get_all() ) { - if( !m.item_id.empty() && !item::type_is_defined( m.item_id ) ) { + if( !m.item_id.is_empty() && !item::type_is_defined( m.item_id ) ) { debugmsg( "Mission %s has undefined item id %s", m.id.c_str(), m.item_id.c_str() ); } } diff --git a/src/mod_manager_ui.cpp b/src/mod_manager_ui.cpp index 1f95309e88667..e6d7dd8338e84 100644 --- a/src/mod_manager_ui.cpp +++ b/src/mod_manager_ui.cpp @@ -89,7 +89,7 @@ void mod_ui::try_add( const mod_id &mod_to_add, return; } errs = checknode->has_errors(); - } catch( std::exception &e ) { + } catch( std::exception & ) { errs = true; } diff --git a/src/monattack.cpp b/src/monattack.cpp index f9f60fffa780f..925a5f75f3bf2 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -75,6 +75,7 @@ #include "translations.h" #include "type_id.h" #include "ui.h" +#include "ui_manager.h" #include "units.h" #include "value_ptr.h" #include "weighted_list.h" @@ -102,6 +103,7 @@ static const efftype_id effect_got_checked( "got_checked" ); static const efftype_id effect_grabbed( "grabbed" ); static const efftype_id effect_grabbing( "grabbing" ); static const efftype_id effect_grown_of_fuse( "grown_of_fuse" ); +static const efftype_id effect_hallu( "hallu" ); static const efftype_id effect_has_bag( "has_bag" ); static const efftype_id effect_infected( "infected" ); static const efftype_id effect_laserlocked( "laserlocked" ); @@ -115,9 +117,30 @@ static const efftype_id effect_rat( "rat" ); static const efftype_id effect_shrieking( "shrieking" ); static const efftype_id effect_slimed( "slimed" ); static const efftype_id effect_stunned( "stunned" ); +static const efftype_id effect_taint( "taint" ); static const efftype_id effect_targeted( "targeted" ); -static const efftype_id effect_teleglow( "teleglow" ); -static const efftype_id effect_under_op( "under_operation" ); +static const efftype_id effect_tindrift( "tindrift" ); +static const efftype_id effect_under_operation( "under_operation" ); + +static const itype_id itype_ant_egg( "ant_egg" ); +static const itype_id itype_badge_cybercop( "badge_cybercop" ); +static const itype_id itype_badge_deputy( "badge_deputy" ); +static const itype_id itype_badge_detective( "badge_detective" ); +static const itype_id itype_badge_doctor( "badge_doctor" ); +static const itype_id itype_badge_marshal( "badge_marshal" ); +static const itype_id itype_badge_swat( "badge_swat" ); +static const itype_id itype_bot_c4_hack( "bot_c4_hack" ); +static const itype_id itype_bot_flashbang_hack( "bot_flashbang_hack" ); +static const itype_id itype_bot_gasbomb_hack( "bot_gasbomb_hack" ); +static const itype_id itype_bot_grenade_hack( "bot_grenade_hack" ); +static const itype_id itype_bot_manhack( "bot_manhack" ); +static const itype_id itype_bot_mininuke_hack( "bot_mininuke_hack" ); +static const itype_id itype_bot_pacification_hack( "bot_pacification_hack" ); +static const itype_id itype_c4( "c4" ); +static const itype_id itype_c4armed( "c4armed" ); +static const itype_id itype_e_handcuffs( "e_handcuffs" ); +static const itype_id itype_mininuke( "mininuke" ); +static const itype_id itype_mininuke_act( "mininuke_act" ); static const skill_id skill_gun( "gun" ); static const skill_id skill_launcher( "launcher" ); @@ -126,8 +149,8 @@ static const skill_id skill_rifle( "rifle" ); static const skill_id skill_unarmed( "unarmed" ); static const species_id species_BLOB( "BLOB" ); -static const species_id LEECH_PLANT( "LEECH_PLANT" ); -static const species_id ZOMBIE( "ZOMBIE" ); +static const species_id species_LEECH_PLANT( "LEECH_PLANT" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); static const std::string flag_AUTODOC_COUCH( "AUTODOC_COUCH" ); @@ -157,7 +180,7 @@ static const mtype_id mon_breather( "mon_breather" ); static const mtype_id mon_breather_hub( "mon_breather_hub" ); static const mtype_id mon_creeper_hub( "mon_creeper_hub" ); static const mtype_id mon_creeper_vine( "mon_creeper_vine" ); -static const mtype_id mon_defective_robot_nurse( "mon_nursebot_defective" ); +static const mtype_id mon_nursebot_defective( "mon_nursebot_defective" ); static const mtype_id mon_dermatik( "mon_dermatik" ); static const mtype_id mon_fungal_hedgerow( "mon_fungal_hedgerow" ); static const mtype_id mon_fungal_tendril( "mon_fungal_tendril" ); @@ -301,13 +324,19 @@ bool mattack::none( monster * ) bool mattack::eat_crop( monster *z ) { + cata::optional target; + int num_targets = 1; for( const auto &p : g->m.points_in_radius( z->pos(), 1 ) ) { - if( g->m.has_flag( "PLANT", p ) && one_in( 4 ) ) { - g->m.furn_set( p, furn_str_id( g->m.furn( p )->plant->base ) ); - g->m.i_clear( p ); - return true; + if( g->m.has_flag( "PLANT", p ) && one_in( num_targets ) ) { + num_targets++; + target = p; } } + if( target ) { + g->m.furn_set( *target, furn_str_id( g->m.furn( *target )->plant->base ) ); + g->m.i_clear( *target ); + return true; + } return true; } @@ -359,7 +388,7 @@ bool mattack::antqueen( monster *z ) if( g->is_empty( dest ) && g->m.has_items( dest ) ) { for( auto &i : g->m.i_at( dest ) ) { - if( i.typeId() == "ant_egg" ) { + if( i.typeId() == itype_ant_egg ) { egg_points.push_back( dest ); // Done looking at this tile break; @@ -393,7 +422,7 @@ bool mattack::antqueen( monster *z ) for( const tripoint &egg_pos : egg_points ) { map_stack items = g->m.i_at( egg_pos ); for( map_stack::iterator it = items.begin(); it != items.end(); ) { - if( it->typeId() != "ant_egg" ) { + if( it->typeId() != itype_ant_egg ) { ++it; continue; } @@ -633,11 +662,12 @@ bool mattack::acid_barf( monster *z ) return true; } - body_part hit = target->get_random_body_part()->token; + const bodypart_id &hit = target->get_random_body_part(); int dam = rng( 5, 12 ); - dam = target->deal_damage( z, convert_bp( hit ).id(), damage_instance( DT_ACID, + dam = target->deal_damage( z, hit, damage_instance( DT_ACID, dam ) ).total_damage(); - target->add_env_effect( effect_corroding, hit, 5, time_duration::from_turns( dam / 2 + 5 ), hit ); + target->add_env_effect( effect_corroding, hit->token, 5, time_duration::from_turns( dam / 2 + 5 ), + hit->token ); if( dam > 0 ) { auto msg_type = target == &g->u ? m_bad : m_info; @@ -650,7 +680,7 @@ bool mattack::acid_barf( monster *z ) body_part_name_accusative( hit ), dam ); - if( hit == bp_eyes ) { + if( hit == bodypart_id( "eyes" ) ) { target->add_env_effect( effect_blind, bp_eyes, 3, 1_minutes ); } } else { @@ -661,7 +691,7 @@ bool mattack::acid_barf( monster *z ) body_part_name_accusative( hit ) ); } - target->on_hit( z, convert_bp( hit ).id(), z->type->melee_skill ); + target->on_hit( z, hit, z->type->melee_skill ); return true; } @@ -942,7 +972,7 @@ bool mattack::resurrect( monster *z ) for( auto &i : g->m.i_at( p ) ) { const mtype *mt = i.get_mtype(); if( !( i.is_corpse() && i.can_revive() && i.active && mt->has_flag( MF_REVIVES ) && - mt->in_species( ZOMBIE ) && !mt->has_flag( MF_NO_NECRO ) ) ) { + mt->in_species( species_ZOMBIE ) && !mt->has_flag( MF_NO_NECRO ) ) ) { continue; } @@ -983,7 +1013,8 @@ bool mattack::resurrect( monster *z ) // Check to see if there are any nearby living zombies to see if we should get angry const bool allies = g->get_creature_if( [&]( const Creature & critter ) { const monster *const zed = dynamic_cast( &critter ); - return zed && zed != z && zed->type->has_flag( MF_REVIVES ) && zed->type->in_species( ZOMBIE ) && + return zed && zed != z && zed->type->has_flag( MF_REVIVES ) && + zed->type->in_species( species_ZOMBIE ) && z->attitude_to( *zed ) == Creature::Attitude::A_FRIENDLY && within_target_range( z, zed, 10 ); } ); @@ -1238,7 +1269,7 @@ bool mattack::science( monster *const z ) // I said SCIENCE again! const size_t empty_neighbor_count = empty_neighbors.second; if( empty_neighbor_count ) { - if( z->ammo["bot_manhack"] > 0 ) { + if( z->ammo[itype_bot_manhack] > 0 ) { valid_attacks[valid_attack_count++] = att_manhack; } valid_attacks[valid_attack_count++] = att_acid_pool; @@ -1301,7 +1332,7 @@ bool mattack::science( monster *const z ) // I said SCIENCE again! break; case att_manhack : { z->moves -= att_cost_manhack; - z->ammo["bot_manhack"]--; + z->ammo[itype_bot_manhack]--; // if the player can see it if( g->u.sees( *z ) ) { @@ -1429,7 +1460,7 @@ bool mattack::growplants( monster *z ) _( "A tree bursts forth from the earth and pierces your %s!" ), //~ %s is bodypart name in accusative. _( "A tree bursts forth from the earth and pierces 's %s!" ), - body_part_name_accusative( hit ) ); + body_part_name_accusative( convert_bp( hit ).id() ) ); critter->deal_damage( z, convert_bp( hit ).id(), damage_instance( DT_STAB, rng( 10, 30 ) ) ); } @@ -1464,7 +1495,7 @@ bool mattack::growplants( monster *z ) _( "The underbrush beneath your feet grows and pierces your %s!" ), //~ %s is bodypart name in accusative. _( "Underbrush grows into a tree, and it pierces 's %s!" ), - body_part_name_accusative( hit ) ); + body_part_name_accusative( convert_bp( hit ).id() ) ); critter->deal_damage( z, convert_bp( hit ).id(), damage_instance( DT_STAB, rng( 10, 30 ) ) ); } } @@ -1512,13 +1543,13 @@ bool mattack::vine( monster *z ) return true; } - bodypart_id bphit = critter->get_random_body_part(); + const bodypart_id &bphit = critter->get_random_body_part(); critter->add_msg_player_or_npc( m_bad, //~ 1$s monster name(vine), 2$s bodypart in accusative _( "The %1$s lashes your %2$s!" ), _( "The %1$s lashes 's %2$s!" ), z->name(), - body_part_name_accusative( bphit->token ) ); + body_part_name_accusative( bphit ) ); damage_instance d; d.add_damage( DT_CUT, 8 ); d.add_damage( DT_BASH, 8 ); @@ -1811,7 +1842,7 @@ bool mattack::fungus_inject( monster *z ) if( dam > 0 ) { //~ 1$s is monster name, 2$s bodypart in accusative add_msg( m_bad, _( "The %1$s sinks its point into your %2$s!" ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); if( one_in( 10 - dam ) ) { g->u.add_effect( effect_fungus, 10_minutes, num_bp, true ); @@ -1820,7 +1851,7 @@ bool mattack::fungus_inject( monster *z ) } else { //~ 1$s is monster name, 2$s bodypart in accusative add_msg( _( "The %1$s strikes your %2$s, but your armor protects you." ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); } target->on_hit( z, hit, z->type->melee_skill ); @@ -1867,7 +1898,7 @@ bool mattack::fungus_bristle( monster *z ) //~ 1$s is monster name, 2$s bodypart in accusative target->add_msg_if_player( m_bad, _( "The %1$s sinks several needlelike barbs into your %2$s!" ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); if( one_in( 15 - dam ) ) { target->add_effect( effect_fungus, 20_minutes, num_bp, true ); @@ -1878,7 +1909,7 @@ bool mattack::fungus_bristle( monster *z ) //~ 1$s is monster name, 2$s bodypart in accusative target->add_msg_if_player( _( "The %1$s slashes your %2$s, but your armor protects you." ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); } target->on_hit( z, hit, z->type->melee_skill ); @@ -2003,7 +2034,7 @@ bool mattack::fungus_fortify( monster *z ) const body_part hit = body_part_hit_by_plant(); //~ %s is bodypart name in accusative. add_msg( m_bad, _( "A fungal tendril bursts forth from the earth and pierces your %s!" ), - body_part_name_accusative( hit ) ); + body_part_name_accusative( convert_bp( hit ).id() ) ); g->u.deal_damage( z, convert_bp( hit ).id(), damage_instance( DT_CUT, rng( 5, 11 ) ) ); g->u.check_dead_state(); // Probably doesn't have spores available *just* yet. Let's be nice. @@ -2037,13 +2068,13 @@ bool mattack::fungus_fortify( monster *z ) if( dam > 0 ) { //~ 1$s is monster name, 2$s bodypart in accusative add_msg( m_bad, _( "The %1$s sinks its point into your %2$s!" ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); g->u.add_effect( effect_fungus, 40_minutes, num_bp, true ); add_msg( m_warning, _( "You feel millions of live spores pumping into you…" ) ); } else { //~ 1$s is monster name, 2$s bodypart in accusative add_msg( _( "The %1$s strikes your %2$s, but your armor protects you." ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); } target->on_hit( z, hit, z->type->melee_skill ); @@ -2175,7 +2206,7 @@ bool mattack::dermatik( monster *z ) if( 4 < g->u.get_armor_cut( targeted ) / 3 ) { //~ 1$s monster name(dermatik), 2$s bodypart name in accusative. target->add_msg_if_player( _( "The %1$s lands on your %2$s, but can't penetrate your armor." ), - z->name(), body_part_name_accusative( targeted->token ) ); + z->name(), body_part_name_accusative( targeted ) ); z->moves -= 150; // Attempted laying takes a while return true; } @@ -2185,7 +2216,7 @@ bool mattack::dermatik( monster *z ) //~ 1$s monster name(dermatik), 2$s bodypart name in accusative. target->add_msg_if_player( m_bad, _( "The %1$s sinks its ovipositor into your %2$s!" ), z->name(), - body_part_name_accusative( targeted->token ) ); + body_part_name_accusative( targeted ) ); if( !foe->has_trait( trait_PARAIMMUNE ) || !foe->has_trait( trait_ACIDBLOOD ) ) { foe->add_effect( effect_dermatik, 1_turns, targeted->token, true ); g->events().send( foe->getID() ); @@ -2265,21 +2296,21 @@ static bool blobify( monster &blob, monster &target ) } switch( target.get_size() ) { - case MS_TINY: + case creature_size::tiny: // Just consume it target.set_hp( 0 ); blob.set_speed_base( blob.get_speed_base() + 5 ); return false; - case MS_SMALL: + case creature_size::small: target.poly( mon_blob_small ); break; - case MS_MEDIUM: + case creature_size::medium: target.poly( mon_blob ); break; - case MS_LARGE: + case creature_size::large: target.poly( mon_blob_large ); break; - case MS_HUGE: + case creature_size::huge: // No polymorphing huge stuff target.add_effect( effect_slimed, rng( 2_turns, 10_turns ) ); break; @@ -2422,7 +2453,7 @@ bool mattack::jackson( monster *z ) std::list allies; std::vector nearby_points = closest_tripoints_first( z->pos(), 3 ); for( monster &candidate : g->all_monsters() ) { - if( candidate.type->in_species( ZOMBIE ) && candidate.type->id != mon_zombie_jackson ) { + if( candidate.type->in_species( species_ZOMBIE ) && candidate.type->id != mon_zombie_jackson ) { // Just give the allies consistent assignments. // Don't worry about trying to make the orders optimal. allies.push_back( &candidate ); @@ -2548,7 +2579,6 @@ bool mattack::tentacle( monster *z ) } const bodypart_id hit = target->get_random_body_part(); - const body_part hit_token = hit->token; int dam = rng( 10, 20 ); dam = target->deal_damage( z, hit, damage_instance( DT_BASH, dam ) ).total_damage(); @@ -2558,14 +2588,14 @@ bool mattack::tentacle( monster *z ) _( "Your %1$s is hit for %2$d damage!" ), //~ 1$s is bodypart name, 2$d is damage value. _( "'s %1$s is hit for %2$d damage!" ), - body_part_name( hit_token ), + body_part_name( hit ), dam ); } else { target->add_msg_player_or_npc( _( "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" ), _( "The %1$s lashes its tentacle at 's %2$s, but glances off their armor!" ), z->name(), - body_part_name_accusative( hit_token ) ); + body_part_name_accusative( hit ) ); } target->on_hit( z, hit, z->type->melee_skill ); @@ -2643,7 +2673,9 @@ bool mattack::ranged_pull( monster *z ) target->setpos( pt ); range--; if( target->is_player() && seen ) { - g->draw(); + g->invalidate_main_ui_adaptor(); + ui_manager::redraw_invalidated(); + refresh_display(); } } // The monster might drag a target that's not on it's z level @@ -2738,7 +2770,7 @@ bool mattack::grab_drag( monster *z ) return false; } - if( target->has_effect( effect_under_op ) ) { + if( target->has_effect( effect_under_operation ) ) { target->add_msg_player_or_npc( m_good, _( "The %s tries to drag you, but you're securely fastened in the autodoc." ), _( "The %s tries to drag , but they're securely fastened in the autodoc." ), z->name() ); @@ -2861,9 +2893,23 @@ bool mattack::stare( monster *z ) } else { add_msg( m_bad, _( "You feel like you're being watched, it makes you sick." ) ); } - g->u.add_effect( effect_teleglow, 80_minutes ); + g->u.add_effect( effect_taint, rng( 2_minutes, 5_minutes ) ); + //Check severity before adding more debuffs + if( g->u.get_effect_int( effect_taint ) > 2 ) { + g->u.add_effect( effect_hallu, 30_minutes ); + //Check if target is a player before spawning hallucinations + if( g->u.is_player() && one_in( 2 ) ) { + g->spawn_hallucination( g->u.pos() + tripoint( rng( -10, 10 ), rng( -10, 10 ), 0 ) ); + } + if( one_in( 12 ) ) { + g->u.add_effect( effect_blind, 5_minutes ); + add_msg( m_bad, _( "Your sight darkens as the visions overtake you!" ) ); + } + } + if( g->u.get_effect_int( effect_taint ) >= 3 && one_in( 12 ) ) { + g->u.add_effect( effect_tindrift, 1_turns ); + } } - return true; } @@ -2959,7 +3005,7 @@ bool mattack::nurse_assist( monster *z ) } if( found_target ) { - if( target->is_wearing( "badge_doctor" ) || + if( target->is_wearing( itype_badge_doctor ) || z->attitude_to( *target ) == Creature::Attitude::A_FRIENDLY ) { sounds::sound( z->pos(), 8, sounds::sound_t::electronic_speech, string_format( @@ -2973,7 +3019,7 @@ bool mattack::nurse_assist( monster *z ) } bool mattack::nurse_operate( monster *z ) { - const std::string ammo_type( "anesthetic" ); + const itype_id ammo_type( "anesthetic" ); if( z->has_effect( effect_dragging ) || z->has_effect( effect_operating ) ) { return false; @@ -2984,7 +3030,7 @@ bool mattack::nurse_operate( monster *z ) add_msg( m_info, _( "The %s is scanning its surroundings." ), z->name() ); } - if( ( ( g->u.is_wearing( "badge_doctor" ) || + if( ( ( g->u.is_wearing( itype_badge_doctor ) || z->attitude_to( g->u ) == Creature::Attitude::A_FRIENDLY ) && u_see ) && one_in( 100 ) ) { add_msg( m_info, _( "The %s doesn't seem to register you as a doctor." ), z->name() ); @@ -3045,7 +3091,7 @@ bool mattack::nurse_operate( monster *z ) for( auto critter : g->m.get_creatures_in_radius( target->pos(), 1 ) ) { monster *mon = dynamic_cast( critter ); if( mon != nullptr && mon != z ) { - if( mon->type->id != mon_defective_robot_nurse ) { + if( mon->type->id != mon_nursebot_defective ) { sounds::sound( z->pos(), 8, sounds::sound_t::electronic_speech, string_format( _( "a soft robotic voice say, \"Unhand this patient immediately! If you keep interfering with the procedure I'll be forced to call law enforcement.\"" ) ) ); @@ -3129,7 +3175,7 @@ bool mattack::photograph( monster *z ) // If you are in fact listed as a police officer if( g->u.has_trait( trait_PROF_POLICE ) ) { // And you're wearing your badge - if( g->u.is_wearing( "badge_deputy" ) ) { + if( g->u.is_wearing( itype_badge_deputy ) ) { if( one_in( 3 ) ) { add_msg( m_info, _( "The %s flashes a LED and departs. Human officer on scene." ), z->name() ); @@ -3149,7 +3195,7 @@ bool mattack::photograph( monster *z ) if( g->u.has_trait( trait_PROF_PD_DET ) ) { // And you have your shield on - if( g->u.is_wearing( "badge_detective" ) ) { + if( g->u.is_wearing( itype_badge_detective ) ) { if( one_in( 4 ) ) { add_msg( m_info, _( "The %s flashes a LED and departs. Human officer on scene." ), z->name() ); @@ -3167,7 +3213,7 @@ bool mattack::photograph( monster *z ) } } else if( g->u.has_trait( trait_PROF_SWAT ) ) { // And you're wearing your badge - if( g->u.is_wearing( "badge_swat" ) ) { + if( g->u.is_wearing( itype_badge_swat ) ) { if( one_in( 3 ) ) { add_msg( m_info, _( "The %s flashes a LED and departs. SWAT's working the area." ), z->name() ); @@ -3184,7 +3230,7 @@ bool mattack::photograph( monster *z ) } } else if( g->u.has_trait( trait_PROF_CYBERCO ) ) { // And you're wearing your badge - if( g->u.is_wearing( "badge_cybercop" ) ) { + if( g->u.is_wearing( itype_badge_cybercop ) ) { if( one_in( 3 ) ) { add_msg( m_info, _( "The %s winks a LED and departs. One machine to another?" ), z->name() ); @@ -3204,7 +3250,7 @@ bool mattack::photograph( monster *z ) if( g->u.has_trait( trait_PROF_FED ) ) { // And you're wearing your badge - if( g->u.is_wearing( "badge_marshal" ) ) { + if( g->u.is_wearing( itype_badge_marshal ) ) { add_msg( m_info, _( "The %s flashes a LED and departs. The Feds got this." ), z->name() ); z->no_corpse_quiet = true; z->no_extra_death_drops = true; @@ -3213,7 +3259,7 @@ bool mattack::photograph( monster *z ) } } - if( z->friendly || g->u.weapon.typeId() == "e_handcuffs" ) { + if( z->friendly || g->u.weapon.typeId() == itype_e_handcuffs ) { // Friendly (hacked?) bot ignore the player. Arrested suspect ignored too. // TODO: might need to be revisited when it can target npcs. return false; @@ -3282,7 +3328,7 @@ void mattack::taze( monster *z, Creature *target ) void mattack::rifle( monster *z, Creature *target ) { - const std::string ammo_type( "556" ); + const itype_id ammo_type( "556" ); // Make sure our ammo isn't weird. if( z->ammo[ammo_type] > 3000 ) { debugmsg( "Generated too much ammo (%d) for %s in mattack::rifle", z->ammo[ammo_type], @@ -3331,7 +3377,7 @@ void mattack::rifle( monster *z, Creature *target ) void mattack::frag( monster *z, Creature *target ) // This is for the bots, not a standalone turret { - const std::string ammo_type( "40x46mm_m433" ); + const itype_id ammo_type( "40x46mm_m433" ); // Make sure our ammo isn't weird. if( z->ammo[ammo_type] > 200 ) { debugmsg( "Generated too much ammo (%d) for %s in mattack::frag", z->ammo[ammo_type], @@ -3391,7 +3437,7 @@ void mattack::frag( monster *z, Creature *target ) // This is for the bots, not void mattack::tankgun( monster *z, Creature *target ) { - const std::string ammo_type( "120mm_HEAT" ); + const itype_id ammo_type( "120mm_HEAT" ); // Make sure our ammo isn't weird. if( z->ammo[ammo_type] > 40 ) { debugmsg( "Generated too much ammo (%d) for %s in mattack::tankgun", z->ammo[ammo_type], @@ -3730,7 +3776,7 @@ bool mattack::copbot( monster *z ) // TODO: Make it recognize zeds as human, but ignore animals player *foe = dynamic_cast( target ); bool sees_u = foe != nullptr && z->sees( *foe ); - bool cuffed = foe != nullptr && foe->weapon.typeId() == "e_handcuffs"; + bool cuffed = foe != nullptr && foe->weapon.typeId() == itype_e_handcuffs; // Taze first, then ask questions (simplifies later checks for non-humans) if( !cuffed && is_adjacent( z, target, true ) ) { taze( z, target ); @@ -4110,7 +4156,7 @@ bool mattack::stretch_bite( monster *z ) //~ 1$s is monster name, 2$s bodypart in accusative _( "The %1$s's teeth sink into 's %2$s!" ), z->name(), - body_part_name_accusative( hit_token ) ); + body_part_name_accusative( hit ) ); if( one_in( 16 - dam ) ) { if( target->has_effect( effect_bite, hit_token ) ) { @@ -4125,7 +4171,7 @@ bool mattack::stretch_bite( monster *z ) target->add_msg_player_or_npc( _( "The %1$s's head hits your %2$s, but glances off your armor!" ), _( "The %1$s's head hits 's %2$s, but glances off armor!" ), z->name(), - body_part_name_accusative( hit_token ) ); + body_part_name_accusative( hit ) ); } target->on_hit( z, hit, z->type->melee_skill ); @@ -4207,7 +4253,7 @@ bool mattack::flesh_golem( monster *z ) //~ 1$s is bodypart name, 2$d is damage value. target->add_msg_if_player( m_bad, _( "Your %1$s is battered for %2$d damage!" ), - body_part_name( hit->token ), dam ); + body_part_name( hit ), dam ); target->on_hit( z, hit, z->type->melee_skill ); return true; @@ -4325,12 +4371,12 @@ bool mattack::lunge( monster *z ) target->add_msg_player_or_npc( msg_type, _( "The %1$s lunges at your %2$s, battering it for %3$d damage!" ), _( "The %1$s lunges at 's %2$s, battering it for %3$d damage!" ), - z->name(), body_part_name( hit->token ), dam ); + z->name(), body_part_name( hit ), dam ); } else { target->add_msg_player_or_npc( _( "The %1$s lunges at your %2$s, but your armor prevents injury!" ), _( "The %1$s lunges at 's %2$s, but their armor prevents injury!" ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); } if( one_in( 6 ) ) { target->add_effect( effect_downed, 3_turns ); @@ -4395,13 +4441,13 @@ bool mattack::longswipe( monster *z ) _( "The %1$s thrusts a claw at your %2$s, slashing it for %3$d damage!" ), //~ 1$s is bodypart name, 2$d is damage value. _( "The %1$s thrusts a claw at 's %2$s, slashing it for %3$d damage!" ), - z->name(), body_part_name( hit->token ), dam ); + z->name(), body_part_name( hit ), dam ); } else { target->add_msg_player_or_npc( _( "The %1$s thrusts a claw at your %2$s, but glances off your armor!" ), _( "The %1$s thrusts a claw at 's %2$s, but glances off armor!" ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); } target->on_hit( z, hit, z->type->melee_skill ); return true; @@ -4441,7 +4487,7 @@ bool mattack::longswipe( monster *z ) target->add_msg_player_or_npc( _( "The %1$s slashes at your %2$s, but glances off your armor!" ), _( "The %1$s slashes at 's %2$s, but glances off armor!" ), z->name(), - body_part_name_accusative( bp_head ) ); + body_part_name_accusative( bodypart_id( "head" ) ) ); } target->on_hit( z, bodypart_id( "head" ), z->type->melee_skill ); target->check_dead_state(); @@ -4668,7 +4714,7 @@ bool mattack::riotbot( monster *z ) //already arrested? //and yes, if the player has no hands, we are not going to arrest him. if( foe != nullptr && - ( foe->weapon.typeId() == "e_handcuffs" || !foe->has_two_arms() ) ) { + ( foe->weapon.typeId() == itype_e_handcuffs || !foe->has_two_arms() ) ) { z->anger = 0; if( calendar::once_every( 25_turns ) ) { @@ -4918,7 +4964,7 @@ bool mattack::leech_spawner( monster *z ) const bool u_see = g->u.sees( *z ); std::list allies; for( monster &candidate : g->all_monsters() ) { - if( candidate.in_species( LEECH_PLANT ) && !candidate.has_flag( MF_IMMOBILE ) ) { + if( candidate.in_species( species_LEECH_PLANT ) && !candidate.has_flag( MF_IMMOBILE ) ) { allies.push_back( &candidate ); } } @@ -4951,7 +4997,7 @@ bool mattack::mon_leech_evolution( monster *z ) const bool is_queen = z->has_flag( MF_QUEEN ); std::list queens; for( monster &candidate : g->all_monsters() ) { - if( candidate.in_species( LEECH_PLANT ) && candidate.has_flag( MF_QUEEN ) && + if( candidate.in_species( species_LEECH_PLANT ) && candidate.has_flag( MF_QUEEN ) && rl_dist( z->pos(), candidate.pos() ) < 35 ) { queens.push_back( &candidate ); } @@ -4987,8 +5033,8 @@ bool mattack::tindalos_teleport( monster *z ) } } const int distance_to_target = rl_dist( z->pos(), target->pos() ); - const tripoint oldpos = z->pos(); if( distance_to_target > 5 ) { + const tripoint oldpos = z->pos(); for( const tripoint &dest : g->m.points_in_radius( target->pos(), 4 ) ) { if( g->m.is_cornerfloor( dest ) ) { if( g->is_empty( dest ) ) { @@ -5172,7 +5218,7 @@ bool mattack::bio_op_takedown( monster *z ) // TODO: Literally "The zombie kicks" vvvvv | Fix message or comment why Literally. //~ 1$s is bodypart name in accusative, 2$d is damage value. target->add_msg_if_player( m_bad, _( "The zombie kicks your %1$s for %2$d damage…" ), - body_part_name_accusative( hit->token ), dam ); + body_part_name_accusative( hit ), dam ); foe->deal_damage( z, hit, damage_instance( DT_BASH, dam ) ); // At this point, Judo or Tentacle Bracing can make this much less painful if( !foe->is_throw_immune() ) { @@ -5269,7 +5315,7 @@ bool mattack::bio_op_impale( monster *z ) target->add_msg_player_or_npc( _( "The %1$s tries to impale your %s…" ), _( "The %1$s tries to impale 's %s…" ), - z->name(), body_part_name_accusative( hit->token ) ); + z->name(), body_part_name_accusative( hit ) ); if( t_dam > 0 ) { target->add_msg_if_player( m_bad, _( "and deals %d damage!" ), t_dam ); @@ -5379,11 +5425,11 @@ bool mattack::kamikaze( monster *z ) const itype *act_bomb_type; int charges; // Hardcoded data for charge variant items - if( z->ammo.begin()->first == "mininuke" ) { - act_bomb_type = item::find_type( "mininuke_act" ); + if( z->ammo.begin()->first == itype_mininuke ) { + act_bomb_type = item::find_type( itype_mininuke_act ); charges = 20; - } else if( z->ammo.begin()->first == "c4" ) { - act_bomb_type = item::find_type( "c4armed" ); + } else if( z->ammo.begin()->first == itype_c4 ) { + act_bomb_type = item::find_type( itype_c4armed ); charges = 10; } else { auto usage = bomb_type->get_use( "transform" ); @@ -5505,12 +5551,11 @@ bool mattack::kamikaze( monster *z ) struct grenade_helper_struct { std::string message; int chance = 1; - float ammo_percentage = 1; }; // Returns 0 if this should be retired, 1 if it was successful, and -1 if something went horribly wrong static int grenade_helper( monster *const z, Creature *const target, const int dist, - const int moves, std::map data ) + const int moves, std::map data ) { // Can't do anything if we can't act if( !z->can_act() ) { @@ -5527,38 +5572,25 @@ static int grenade_helper( monster *const z, Creature *const target, const int d return 0; } - int total_ammo = 0; - // Sum up the ammo entries to get a ratio. - for( const auto &ammo_entry : z->type->starting_ammo ) { - total_ammo += ammo_entry.second; - } - if( total_ammo == 0 ) { - // Should never happen, but protect us from a div/0 if it does. - return -1; - } - - // Find how much ammo we currently have to get the total ratio + // Find how much ammo we currently have int curr_ammo = 0; - for( const auto &amm : z->ammo ) { + for( const std::pair &amm : z->ammo ) { curr_ammo += amm.second; } - float rat = curr_ammo / static_cast( total_ammo ); - if( curr_ammo == 0 ) { // We've run out of ammo, get angry and toggle the special off. z->anger = 100; return -1; } - // Hey look! another weighted list! - // Grab all attacks that pass their chance check and we've spent enough ammo for - weighted_float_list possible_attacks; - for( const auto &amm : z->ammo ) { - if( amm.second > 0 && data[amm.first].ammo_percentage >= rat ) { + // Grab all attacks that pass their chance check + weighted_float_list possible_attacks; + for( const std::pair &amm : z->ammo ) { + if( amm.second > 0 ) { possible_attacks.add( amm.first, 1.0 / data[amm.first].chance ); } } - std::string att = *possible_attacks.pick(); + itype_id att = *possible_attacks.pick(); z->moves -= moves; z->ammo[att]--; @@ -5573,14 +5605,15 @@ static int grenade_helper( monster *const z, Creature *const target, const int d } // Get our monster type - auto bomb_type = item::find_type( att ); - auto usage = bomb_type->get_use( "place_monster" ); + const itype *bomb_type = item::find_type( att ); + const use_function *usage = bomb_type->get_use( "place_monster" ); if( usage == nullptr ) { // Invalid bomb item usage, Toggle this special off so we stop processing add_msg( m_debug, "Invalid bomb item usage in grenadier special for %s.", z->name() ); return -1; } - auto *actor = dynamic_cast( usage->get_actor_ptr() ); + const place_monster_iuse *actor = dynamic_cast + ( usage->get_actor_ptr() ); if( actor == nullptr ) { // Invalid bomb item, Toggle this special off so we stop processing add_msg( m_debug, "Invalid bomb type in grenadier special for %s.", z->name() ); @@ -5598,19 +5631,19 @@ static int grenade_helper( monster *const z, Creature *const target, const int d bool mattack::grenadier( monster *const z ) { // Build our grenade map - std::map grenades; + std::map grenades; // Grenades - grenades["bot_pacification_hack"].message = + grenades[itype_bot_pacification_hack].message = _( "The %s deploys a pacification hack!" ); // Flashbangs - grenades["bot_flashbang_hack"].message = + grenades[itype_bot_flashbang_hack].message = _( "The %s deploys a flashbang hack!" ); // Gasbombs - grenades["bot_gasbomb_hack"].message = + grenades[itype_bot_gasbomb_hack].message = _( "The %s deploys a tear gas hack!" ); // C-4 - grenades["bot_c4_hack"].message = _( "The %s buzzes and deploys a C-4 hack!" ); - grenades["bot_c4_hack"].chance = 8; + grenades[itype_bot_c4_hack].message = _( "The %s buzzes and deploys a C-4 hack!" ); + grenades[itype_bot_c4_hack].chance = 8; // Only can actively target the player right now. Once we have the ability to grab targets that we aren't // actively attacking change this to use that instead. @@ -5629,23 +5662,21 @@ bool mattack::grenadier( monster *const z ) bool mattack::grenadier_elite( monster *const z ) { // Build our grenade map - std::map grenades; + std::map grenades; // Grenades - grenades["bot_grenade_hack"].message = _( "The %s deploys a grenade hack!" ); + grenades[itype_bot_grenade_hack].message = _( "The %s deploys a grenade hack!" ); // Flashbangs - grenades["bot_flashbang_hack"].message = + grenades[itype_bot_flashbang_hack].message = _( "The %s deploys a flashbang hack!" ); // Gasbombs - grenades["bot_gasbomb_hack"].message = _( "The %s deploys a tear gas hack!" ); + grenades[itype_bot_gasbomb_hack].message = _( "The %s deploys a tear gas hack!" ); // C-4 - grenades["bot_c4_hack"].message = _( "The %s buzzes and deploys a C-4 hack!" ); - grenades["bot_c4_hack"].chance = 8; - grenades["bot_c4_hack"].ammo_percentage = .75; + grenades[itype_bot_c4_hack].message = _( "The %s buzzes and deploys a C-4 hack!" ); + grenades[itype_bot_c4_hack].chance = 8; // Mininuke - grenades["bot_mininuke_hack"].message = + grenades[itype_bot_mininuke_hack].message = _( "A klaxon blares from %s as it deploys a mininuke hack!" ); - grenades["bot_mininuke_hack"].chance = 50; - grenades["bot_mininuke_hack"].ammo_percentage = .75; + grenades[itype_bot_mininuke_hack].chance = 50; // Only can actively target the player right now. Once we have the ability to grab targets that we aren't // actively attacking change this to use that instead. @@ -5714,14 +5745,14 @@ bool mattack::stretch_attack( monster *z ) //~ 1$s is monster name, 2$s bodypart in accusative _( "The %1$s arm pierces 's %2$s!" ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); target->check_dead_state(); } else { target->add_msg_player_or_npc( _( "The %1$s arm hits your %2$s, but glances off your armor!" ), _( "The %1$s hits 's %2$s, but glances off armor!" ), z->name(), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); } target->on_hit( z, hit, z->type->melee_skill ); diff --git a/src/mondeath.cpp b/src/mondeath.cpp index 3e0d87a9d6c96..4c2d4b59474c6 100644 --- a/src/mondeath.cpp +++ b/src/mondeath.cpp @@ -58,11 +58,13 @@ static const efftype_id effect_controlled( "controlled" ); static const efftype_id effect_darkness( "darkness" ); static const efftype_id effect_glowing( "glowing" ); static const efftype_id effect_no_ammo( "no_ammo" ); -static const efftype_id effect_pacified( "pacified" ); static const efftype_id effect_rat( "rat" ); +static const itype_id itype_processor( "processor" ); +static const itype_id itype_ruined_chunks( "ruined_chunks" ); + static const species_id species_BLOB( "BLOB" ); -static const species_id ZOMBIE( "ZOMBIE" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); static const mtype_id mon_blob( "mon_blob" ); static const mtype_id mon_blob_brain( "mon_blob_brain" ); @@ -88,7 +90,7 @@ void mdeath::normal( monster &z ) return; } - if( z.type->in_species( ZOMBIE ) ) { + if( z.type->in_species( species_ZOMBIE ) ) { sfx::play_variant_sound( "mon_death", "zombie_death", sfx::get_heard_volume( z.pos() ) ); } @@ -119,7 +121,7 @@ void mdeath::normal( monster &z ) } } -static void scatter_chunks( const std::string &chunk_name, int chunk_amt, monster &z, int distance, +static void scatter_chunks( const itype_id &chunk_name, int chunk_amt, monster &z, int distance, int pile_size = 1 ) { // can't have less than one item in a pile or it would cause an infinite loop @@ -183,7 +185,7 @@ void mdeath::splatter( monster &z ) const auto area = g->m.points_in_radius( z.pos(), 1 ); int number_of_gibs = std::min( std::floor( corpse_damage ) - 1, 1 + max_hp / 5.0f ); - if( pulverized && z.type->size >= MS_MEDIUM ) { + if( pulverized && z.type->size >= creature_size::medium ) { number_of_gibs += rng( 1, 6 ); sfx::play_variant_sound( "mon_death", "zombie_gibbed", sfx::get_heard_volume( z.pos() ) ); } @@ -207,15 +209,18 @@ void mdeath::splatter( monster &z ) // only flesh and bones survive. if( entry.type == "flesh" || entry.type == "bone" ) { // the larger the overflow damage, the less you get - const int chunk_amt = entry.mass_ratio / overflow_ratio / 10 * to_gram( - z.get_weight() ) / to_gram( ( item::find_type( entry.drop ) )->weight ); - scatter_chunks( entry.drop, chunk_amt, z, gib_distance, chunk_amt / ( gib_distance - 1 ) ); + const int chunk_amt = + entry.mass_ratio / overflow_ratio / 10 * + z.get_weight() / ( item::find_type( itype_id( entry.drop ) ) )->weight; + scatter_chunks( itype_id( entry.drop ), chunk_amt, z, gib_distance, + chunk_amt / ( gib_distance - 1 ) ); gibbed_weight -= entry.mass_ratio / overflow_ratio / 20 * to_gram( z.get_weight() ); } } if( gibbed_weight > 0 ) { - const int chunk_amount = gibbed_weight / to_gram( ( item::find_type( "ruined_chunks" ) )->weight ); - scatter_chunks( "ruined_chunks", chunk_amount, z, gib_distance, + const int chunk_amount = + gibbed_weight / to_gram( ( item::find_type( itype_ruined_chunks ) )->weight ); + scatter_chunks( itype_ruined_chunks, chunk_amount, z, gib_distance, chunk_amount / ( gib_distance + 1 ) ); } // add corpse with gib flag @@ -438,7 +443,6 @@ void mdeath::guilt( monster &z ) msg = ( _( "Culling the weak is distasteful, but necessary." ) ); msgtype = m_neutral; } else { - msgtype = m_bad; for( auto &guilt_treshold : guilt_tresholds ) { if( kill_count >= guilt_treshold.first ) { msg = guilt_treshold.second; @@ -453,7 +457,7 @@ void mdeath::guilt( monster &z ) int maxMalus = -250 * ( 1.0 - ( static_cast( kill_count ) / maxKills ) ); time_duration duration = 30_minutes * ( 1.0 - ( static_cast( kill_count ) / maxKills ) ); time_duration decayDelay = 3_minutes * ( 1.0 - ( static_cast( kill_count ) / maxKills ) ); - if( z.type->in_species( ZOMBIE ) ) { + if( z.type->in_species( species_ZOMBIE ) ) { moraleMalus /= 10; if( g->u.has_trait( trait_PACIFIST ) ) { moraleMalus *= 5; @@ -556,19 +560,19 @@ void mdeath::explode( monster &z ) { int size = 0; switch( z.type->size ) { - case MS_TINY: + case creature_size::tiny: size = 4; break; - case MS_SMALL: + case creature_size::small: size = 8; break; - case MS_MEDIUM: + case creature_size::medium: size = 14; break; - case MS_LARGE: + case creature_size::large: size = 20; break; - case MS_HUGE: + case creature_size::huge: size = 26; break; } @@ -579,7 +583,7 @@ void mdeath::focused_beam( monster &z ) { map_stack items = g->m.i_at( z.pos() ); for( map_stack::iterator it = items.begin(); it != items.end(); ) { - if( it->typeId() == "processor" ) { + if( it->typeId() == itype_processor ) { it = items.erase( it ); } else { ++it; @@ -633,8 +637,8 @@ void mdeath::broken( monster &z ) g->m.add_item_or_charges( z.pos(), broken_mon ); if( z.type->has_flag( MF_DROPS_AMMO ) ) { - for( const std::pair &ammo_entry : z.type->starting_ammo ) { - if( z.ammo[ammo_entry.first] > 0 ) { + for( const std::pair &ammo_entry : z.ammo ) { + if( ammo_entry.second > 0 ) { bool spawned = false; for( const std::pair &attack : z.type->special_attacks ) { if( attack.second->id == "gun" ) { @@ -649,7 +653,7 @@ void mdeath::broken( monster &z ) const bool uses_mags = !gun.magazine_compatible().empty(); if( same_ammo && uses_mags ) { std::vector mags; - int ammo_count = z.ammo[ammo_entry.first]; + int ammo_count = ammo_entry.second; while( ammo_count > 0 ) { item mag = item( gun.type->magazine_default.find( item( ammo_entry.first ).ammo_type() )->second ); mag.ammo_set( ammo_entry.first, @@ -664,7 +668,7 @@ void mdeath::broken( monster &z ) } } if( !spawned ) { - g->m.spawn_item( z.pos(), ammo_entry.first, z.ammo[ammo_entry.first], 1, + g->m.spawn_item( z.pos(), ammo_entry.first, ammo_entry.second, 1, calendar::turn ); } } diff --git a/src/mondefense.cpp b/src/mondefense.cpp index 7b98d39da7d8f..f6ce84891c099 100644 --- a/src/mondefense.cpp +++ b/src/mondefense.cpp @@ -57,7 +57,7 @@ void mdefense::zapback( monster &m, Creature *const source, if( const player *const foe = dynamic_cast( source ) ) { // Players/NPCs can avoid the shock if they wear non-conductive gear on their hands for( const item &i : foe->worn ) { - if( ( i.covers( bp_hand_l ) || i.covers( bp_hand_r ) ) && + if( ( i.covers( bodypart_id( "hand_l" ) ) || i.covers( bodypart_id( "hand_r" ) ) ) && !i.conductive() && i.get_coverage() >= 95 ) { return; } @@ -190,10 +190,10 @@ void mdefense::return_fire( monster &m, Creature *source, const dealt_projectile // ...skills... for( const std::pair skill : gunactor->fake_skills ) { - if( skill.first == "gun" ) { + if( skill.first == skill_gun ) { tmp.set_skill_level( skill_gun, skill.second ); } - if( skill.first == "rifle" ) { + if( skill.first == skill_rifle ) { tmp.set_skill_level( skill_rifle, skill.second ); } } diff --git a/src/monexamine.cpp b/src/monexamine.cpp index 58ff661b2d4cb..70aa814c2c181 100644 --- a/src/monexamine.cpp +++ b/src/monexamine.cpp @@ -39,7 +39,7 @@ #include "units.h" #include "value_ptr.h" -static const quality_id qual_shear( "SHEAR" ); +static const quality_id qual_SHEAR( "SHEAR" ); static const efftype_id effect_sheared( "sheared" ); @@ -53,11 +53,14 @@ static const efftype_id effect_monster_armor( "monster_armor" ); static const efftype_id effect_paid( "paid" ); static const efftype_id effect_pet( "pet" ); static const efftype_id effect_ridden( "ridden" ); -static const efftype_id effect_saddled( "monster_saddled" ); +static const efftype_id effect_monster_saddled( "monster_saddled" ); static const efftype_id effect_tied( "tied" ); +static const itype_id itype_cash_card( "cash_card" ); +static const itype_id itype_id_military( "id_military" ); + static const skill_id skill_survival( "survival" ); -static const species_id ZOMBIE( "ZOMBIE" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); bool monexamine::pet_menu( monster &z ) { @@ -87,7 +90,7 @@ bool monexamine::pet_menu( monster &z ) uilist amenu; std::string pet_name = z.get_name(); - bool is_zombie = z.type->in_species( ZOMBIE ); + bool is_zombie = z.type->in_species( species_ZOMBIE ); if( is_zombie ) { pet_name = _( "zombie slave" ); } @@ -148,19 +151,19 @@ bool monexamine::pet_menu( monster &z ) available = false; } if( available ) { - if( g->u.has_quality( qual_shear, 1 ) ) { + if( g->u.has_quality( qual_SHEAR, 1 ) ) { amenu.addentry( shear, true, 'S', _( "Shear %s." ), pet_name ); } else { amenu.addentry( shear, false, 'S', _( "You cannot shear this animal without shears." ) ); } } } - if( z.has_flag( MF_PET_MOUNTABLE ) && !z.has_effect( effect_saddled ) && + if( z.has_flag( MF_PET_MOUNTABLE ) && !z.has_effect( effect_monster_saddled ) && g->u.has_item_with_flag( "TACK" ) && g->u.get_skill_level( skill_survival ) >= 1 ) { amenu.addentry( attach_saddle, true, 'h', _( "Tack up %s" ), pet_name ); - } else if( z.has_flag( MF_PET_MOUNTABLE ) && z.has_effect( effect_saddled ) ) { + } else if( z.has_flag( MF_PET_MOUNTABLE ) && z.has_effect( effect_monster_saddled ) ) { amenu.addentry( remove_saddle, true, 'h', _( "Remove tack from %s" ), pet_name ); - } else if( z.has_flag( MF_PET_MOUNTABLE ) && !z.has_effect( effect_saddled ) && + } else if( z.has_flag( MF_PET_MOUNTABLE ) && !z.has_effect( effect_monster_saddled ) && g->u.has_item_with_flag( "TACK" ) && g->u.get_skill_level( skill_survival ) < 1 ) { amenu.addentry( remove_saddle, false, 'h', _( "You don't know how to saddle %s" ), pet_name ); } @@ -178,7 +181,7 @@ bool monexamine::pet_menu( monster &z ) amenu.addentry( mount, false, 'r', _( "You have no knowledge of riding at all" ) ); } else if( g->u.get_weight() >= z.get_weight() * z.get_mountable_weight_ratio() ) { amenu.addentry( mount, false, 'r', _( "You are too heavy to mount %s" ), pet_name ); - } else if( !z.has_effect( effect_saddled ) && g->u.get_skill_level( skill_survival ) < 4 ) { + } else if( !z.has_effect( effect_monster_saddled ) && g->u.get_skill_level( skill_survival ) < 4 ) { amenu.addentry( mount, false, 'r', _( "You are not skilled enough to ride without a saddle" ) ); } } else { @@ -281,7 +284,7 @@ bool monexamine::pet_menu( monster &z ) void monexamine::shear_animal( monster &z ) { const int moves = to_moves( time_duration::from_minutes( 30 / g->u.max_quality( - qual_shear ) ) ); + qual_SHEAR ) ) ); g->u.assign_activity( activity_id( "ACT_SHEAR" ), moves, -1 ); g->u.activity.coords.push_back( g->m.getabs( z.pos() ) ); @@ -290,7 +293,7 @@ void monexamine::shear_animal( monster &z ) z.add_effect( effect_tied, 1_turns, num_bp, true ); g->u.activity.str_values.push_back( "temp_tie" ); } - g->u.activity.targets.push_back( item_location( g->u, g->u.best_quality_item( qual_shear ) ) ); + g->u.activity.targets.push_back( item_location( g->u, g->u.best_quality_item( qual_SHEAR ) ) ); add_msg( _( "You start shearing the %s." ), z.get_name() ); } @@ -357,7 +360,7 @@ void monexamine::insert_battery( monster &z ) bool monexamine::mech_hack( monster &z ) { - itype_id card_type = "id_military"; + itype_id card_type = itype_id_military; if( g->u.has_amount( card_type, 1 ) ) { if( query_yn( _( "Swipe your ID card into the mech's security port?" ) ) ) { g->u.mod_moves( -100 ); @@ -390,7 +393,7 @@ static int prompt_for_amount( const char *const msg, const int max ) bool monexamine::pay_bot( monster &z ) { time_duration friend_time = z.get_effect_dur( effect_pet ); - const int charge_count = g->u.charges_of( "cash_card" ); + const int charge_count = g->u.charges_of( itype_cash_card ); int amount = 0; uilist bot_menu; @@ -411,7 +414,7 @@ bool monexamine::pay_bot( monster &z ) "How much friendship do you get? Max: %d minutes.", charge_count / 10 ), charge_count / 10 ); if( amount > 0 ) { time_duration time_bought = time_duration::from_minutes( amount ); - g->u.use_charges( "cash_card", amount * 10 ); + g->u.use_charges( itype_cash_card, amount * 10 ); z.add_effect( effect_pet, time_bought ); z.add_effect( effect_paid, time_bought, num_bp, true ); z.friendly = -1; @@ -429,8 +432,8 @@ bool monexamine::pay_bot( monster &z ) void monexamine::attach_or_remove_saddle( monster &z ) { - if( z.has_effect( effect_saddled ) ) { - z.remove_effect( effect_saddled ); + if( z.has_effect( effect_monster_saddled ) ) { + z.remove_effect( effect_monster_saddled ); g->u.i_add( *z.tack_item ); z.tack_item.reset(); } else { @@ -440,7 +443,7 @@ void monexamine::attach_or_remove_saddle( monster &z ) add_msg( _( "Never mind." ) ); return; } - z.add_effect( effect_saddled, 1_turns, num_bp, true ); + z.add_effect( effect_monster_saddled, 1_turns, num_bp, true ); z.tack_item = cata::make_value( *loc.get_item() ); loc.remove_item(); } @@ -456,7 +459,7 @@ bool Character::can_mount( const monster &critter ) const } return ( critter.has_flag( MF_PET_MOUNTABLE ) && critter.friendly == -1 && !critter.has_effect( effect_controlled ) && !critter.has_effect( effect_ridden ) ) && - ( ( critter.has_effect( effect_saddled ) && get_skill_level( skill_survival ) >= 1 ) || + ( ( critter.has_effect( effect_monster_saddled ) && get_skill_level( skill_survival ) >= 1 ) || get_skill_level( skill_survival ) >= 4 ) && ( critter.get_size() >= ( get_size() + 1 ) && get_weight() <= critter.get_weight() * critter.get_mountable_weight_ratio() ); } @@ -676,8 +679,7 @@ void monexamine::kill_zslave( monster &z ) if( !one_in( 3 ) ) { g->u.add_msg_if_player( _( "You tear out the pheromone ball from the zombie slave." ) ); item ball( "pheromone", 0 ); - iuse pheromone; - pheromone.pheromone( &g->u, &ball, true, g->u.pos() ); + iuse::pheromone( &g->u, &ball, true, g->u.pos() ); } } @@ -722,10 +724,10 @@ void monexamine::tie_or_untie( monster &z ) void monexamine::milk_source( monster &source_mon ) { - std::string milked_item = source_mon.type->starting_ammo.begin()->first; + itype_id milked_item = source_mon.type->starting_ammo.begin()->first; auto milkable_ammo = source_mon.ammo.find( milked_item ); if( milkable_ammo == source_mon.ammo.end() ) { - debugmsg( "The %s has no milkable %s.", source_mon.get_name(), milked_item ); + debugmsg( "The %s has no milkable %s.", source_mon.get_name(), milked_item.str() ); return; } if( milkable_ammo->second > 0 ) { diff --git a/src/mongroup.cpp b/src/mongroup.cpp index 50d1ca7e62022..21b22101cdea0 100644 --- a/src/mongroup.cpp +++ b/src/mongroup.cpp @@ -101,7 +101,7 @@ MonsterGroupResult MonsterGroupManager::GetResultFromGroup( auto &group = GetUpgradedMonsterGroup( group_name ); int spawn_chance = rng( 1, group.freq_total ); //Default 1000 unless specified //Our spawn details specify, by default, a single instance of the default monster - MonsterGroupResult spawn_details = MonsterGroupResult( group.defaultMonster, 1 ); + MonsterGroupResult spawn_details = MonsterGroupResult( group.defaultMonster, 1, spawn_data() ); bool monster_found = false; // Loop invariant values @@ -174,9 +174,9 @@ MonsterGroupResult MonsterGroupManager::GetResultFromGroup( //If the monsters frequency is greater than the spawn_chance, select this spawn rule if( it->frequency >= spawn_chance ) { if( it->pack_maximum > 1 ) { - spawn_details = MonsterGroupResult( it->name, rng( it->pack_minimum, it->pack_maximum ) ); + spawn_details = MonsterGroupResult( it->name, rng( it->pack_minimum, it->pack_maximum ), it->data ); } else { - spawn_details = MonsterGroupResult( it->name, 1 ); + spawn_details = MonsterGroupResult( it->name, 1, it->data ); } //And if a quantity pointer with remaining value was passed, will modify the external value as a side effect //We will reduce it by the spawn rule's cost multiplier @@ -368,8 +368,18 @@ void MonsterGroupManager::LoadMonsterGroup( const JsonObject &jo ) if( mon.has_member( "ends" ) ) { ends = tdfactor * mon.get_int( "ends" ) * ( mon_upgrade_factor > 0 ? mon_upgrade_factor : 1 ); } - MonsterGroupEntry new_mon_group = MonsterGroupEntry( name, freq, cost, pack_min, pack_max, starts, - ends ); + spawn_data data; + if( mon.has_object( "spawn_data" ) ) { + const JsonObject &sd = mon.get_object( "spawn_data" ); + if( sd.has_array( "ammo" ) ) { + const JsonArray &ammos = sd.get_array( "ammo" ); + for( const JsonObject &adata : ammos ) { + data.ammo.emplace( itype_id( adata.get_string( "ammo_id" ) ), jmapgen_int( adata, "qty" ) ); + } + } + } + MonsterGroupEntry new_mon_group = MonsterGroupEntry( name, freq, cost, pack_min, pack_max, data, + starts, ends ); if( mon.has_member( "conditions" ) ) { for( const std::string line : mon.get_array( "conditions" ) ) { new_mon_group.conditions.push_back( line ); diff --git a/src/mongroup.h b/src/mongroup.h index 5d3bf1a0e4e61..a19e581e79187 100644 --- a/src/mongroup.h +++ b/src/mongroup.h @@ -9,6 +9,7 @@ #include "calendar.h" #include "io_tags.h" +#include "mapgen.h" #include "monster.h" #include "point.h" #include "type_id.h" @@ -29,6 +30,7 @@ struct MonsterGroupEntry { int cost_multiplier; int pack_minimum; int pack_maximum; + spawn_data data; std::vector conditions; time_duration starts; time_duration ends; @@ -36,13 +38,15 @@ struct MonsterGroupEntry { return ends <= 0_turns; } - MonsterGroupEntry( const mtype_id &id, int new_freq, int new_cost, - int new_pack_min, int new_pack_max, const time_duration &new_starts, const time_duration &new_ends ) + MonsterGroupEntry( const mtype_id &id, int new_freq, int new_cost, int new_pack_min, + int new_pack_max, spawn_data new_data, const time_duration &new_starts, + const time_duration &new_ends ) : name( id ) , frequency( new_freq ) , cost_multiplier( new_cost ) , pack_minimum( new_pack_min ) , pack_maximum( new_pack_max ) + , data( new_data ) , starts( new_starts ) , ends( new_ends ) { } @@ -51,19 +55,20 @@ struct MonsterGroupEntry { struct MonsterGroupResult { mtype_id name; int pack_size; + spawn_data data; MonsterGroupResult() : name( mtype_id::NULL_ID() ), pack_size( 0 ) { } - MonsterGroupResult( const mtype_id &id, int new_pack_size ) - : name( id ), pack_size( new_pack_size ) { + MonsterGroupResult( const mtype_id &id, int new_pack_size, spawn_data new_data ) + : name( id ), pack_size( new_pack_size ), data( new_data ) { } }; struct MonsterGroup { mongroup_id name; mtype_id defaultMonster; - FreqDef monsters; + FreqDef monsters; bool IsMonsterInGroup( const mtype_id &id ) const; bool is_animal = false; // replaces this group after a period of diff --git a/src/monmove.cpp b/src/monmove.cpp index 25df312439527..ae3756d265b61 100644 --- a/src/monmove.cpp +++ b/src/monmove.cpp @@ -61,15 +61,17 @@ static const efftype_id effect_pacified( "pacified" ); static const efftype_id effect_pushed( "pushed" ); static const efftype_id effect_stunned( "stunned" ); -static const species_id FUNGUS( "FUNGUS" ); -static const species_id INSECT( "INSECT" ); -static const species_id SPIDER( "SPIDER" ); -static const species_id ZOMBIE( "ZOMBIE" ); +static const itype_id itype_pressurized_tank( "pressurized_tank" ); + +static const species_id species_FUNGUS( "FUNGUS" ); +static const species_id species_INSECT( "INSECT" ); +static const species_id species_SPIDER( "SPIDER" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); static const std::string flag_AUTODOC_COUCH( "AUTODOC_COUCH" ); static const std::string flag_LIQUID( "LIQUID" ); -#define MONSTER_FOLLOW_DIST 8 +static constexpr int MONSTER_FOLLOW_DIST = 8; bool monster::wander() { @@ -79,13 +81,13 @@ bool monster::wander() bool monster::is_immune_field( const field_type_id &fid ) const { if( fid == fd_fungal_haze ) { - return has_flag( MF_NO_BREATHE ) || type->in_species( FUNGUS ); + return has_flag( MF_NO_BREATHE ) || type->in_species( species_FUNGUS ); } if( fid == fd_fungicidal_gas ) { - return !type->in_species( FUNGUS ); + return !type->in_species( species_FUNGUS ); } if( fid == fd_insecticidal_gas ) { - return !type->in_species( INSECT ) && !type->in_species( SPIDER ); + return !type->in_species( species_INSECT ) && !type->in_species( species_SPIDER ); } const field_type &ft = fid.obj(); if( ft.has_fume ) { @@ -140,7 +142,7 @@ bool monster::will_move_to( const tripoint &p ) const return false; } - if( get_size() > MS_MEDIUM && g->m.has_flag_ter( TFLAG_SMALL_PASSAGE, p ) ) { + if( get_size() > creature_size::medium && g->m.has_flag_ter( TFLAG_SMALL_PASSAGE, p ) ) { return false; // if a large critter, can't move through tight passages } @@ -181,7 +183,7 @@ bool monster::will_move_to( const tripoint &p ) const } // Don't enter open pits ever unless tiny, can fly or climb well - if( !( type->size == MS_TINY || can_climb() ) && + if( !( type->size == creature_size::tiny || can_climb() ) && ( target == t_pit || target == t_pit_spiked || target == t_pit_glass ) ) { return false; } @@ -191,7 +193,7 @@ bool monster::will_move_to( const tripoint &p ) const if( attitude( &g->u ) != MATT_ATTACK ) { // Sharp terrain is ignored while attacking if( avoid_simple && g->m.has_flag( "SHARP", p ) && - !( type->size == MS_TINY || flies() ) ) { + !( type->size == creature_size::tiny || flies() ) ) { return false; } } @@ -200,12 +202,12 @@ bool monster::will_move_to( const tripoint &p ) const // Higher awareness is needed for identifying these as threats. if( avoid_complex ) { - const trap &target_trap = g->m.tr_at( p ); // Don't enter any dangerous fields if( is_dangerous_fields( target_field ) ) { return false; } // Don't step on any traps (if we can see) + const trap &target_trap = g->m.tr_at( p ); if( has_flag( MF_SEES ) && !target_trap.is_benign() && g->m.has_floor( p ) ) { return false; } @@ -281,7 +283,7 @@ float monster::rate_target( Creature &c, float best, bool smart ) const } if( !smart ) { - return int( d ); + return static_cast( d ); } float power = c.power_rating(); @@ -292,7 +294,7 @@ float monster::rate_target( Creature &c, float best, bool smart ) const } if( power > 0 ) { - return int( d ) / power; + return static_cast( d ) / power; } return FLT_MAX; @@ -500,19 +502,16 @@ void monster::plan() // Operating monster keep you safe while they operate, how nice.... if( type->has_special_attack( "OPERATE" ) ) { - int prev_friendlyness = friendly; if( has_effect( effect_operating ) ) { friendly = 100; for( auto critter : g->m.get_creatures_in_radius( pos(), 6 ) ) { monster *mon = dynamic_cast( critter ); - if( mon != nullptr && mon->type->in_species( ZOMBIE ) ) { + if( mon != nullptr && mon->type->in_species( species_ZOMBIE ) ) { anger = 100; } else { anger = 0; } } - } else { - friendly = prev_friendlyness; } } @@ -662,6 +661,15 @@ void monster::move() } } g->m.i_clear( pos() ); + } else if( action == "eat_crop" ) { + // TODO: Create a special attacks whitelist unordered map instead of an if chain. + std::map::const_iterator attack = + type->special_attacks.find( action ); + if( attack != type->special_attacks.end() && attack->second->call( *this ) ) { + if( special_attacks.count( action ) != 0 ) { + reset_special( action ); + } + } } // record position before moving to put the player there if we're dragging tripoint drag_to = g->m.getabs( pos() ); @@ -904,8 +912,11 @@ void monster::move() moved = true; next_step = candidate_abs; break; - } else if( att == A_FRIENDLY && ( target->is_player() || target->is_npc() ) ) { - continue; // Friendly firing the player or an NPC is illegal for gameplay reasons + } else if( att == A_FRIENDLY && ( target->is_player() || target->is_npc() || + target->has_flag( MF_QUEEN ) ) ) { + // Friendly firing the player or an NPC is illegal for gameplay reasons. + // Monsters should instinctively avoid attacking queens that regenerate their own population. + continue; } else if( !has_flag( MF_ATTACKMON ) && !has_flag( MF_PUSH_MON ) ) { // Bail out if there's a non-hostile monster in the way and we're not pushy. continue; @@ -952,8 +963,8 @@ void monster::move() const bool can_open_doors = has_flag( MF_CAN_OPEN_DOORS ); // Finished logic section. By this point, we should have chosen a square to // move to (moved = true). - const tripoint local_next_step = g->m.getlocal( next_step ); if( moved ) { // Actual effects of moving to the square we've chosen + const tripoint local_next_step = g->m.getlocal( next_step ); const bool did_something = ( !pacified && attack_at( local_next_step ) ) || ( !pacified && can_open_doors && g->m.open_door( local_next_step, !g->m.is_outside( pos() ) ) ) || @@ -1073,18 +1084,18 @@ void monster::footsteps( const tripoint &p ) volume = 10; } switch( type->size ) { - case MS_TINY: + case creature_size::tiny: volume = 0; // No sound for the tinies break; - case MS_SMALL: + case creature_size::small: volume /= 3; break; - case MS_MEDIUM: + case creature_size::medium: break; - case MS_LARGE: + case creature_size::large: volume *= 1.5; break; - case MS_HUGE: + case creature_size::huge: volume *= 2; break; default: @@ -1098,7 +1109,6 @@ void monster::footsteps( const tripoint &p ) } int dist = rl_dist( p, g->u.pos() ); sounds::add_footstep( p, volume, dist, this, type->get_footsteps() ); - return; } tripoint monster::scent_move() @@ -1515,19 +1525,19 @@ bool monster::move_to( const tripoint &p, bool force, bool step_on_critter, bool will_be_water = on_ground && can_submerge() && g->m.is_divable( destination ); //Birds and other flying creatures flying over the deep water terrain - if( was_water && flies() && g->u.sees( destination ) ) { + if( was_water && flies() && g->u.sees( *this ) ) { if( one_in( 4 ) ) { add_msg( m_warning, _( "A %1$s flies over the %2$s!" ), name(), g->m.tername( pos() ) ); } - } else if( was_water && !will_be_water && g->u.sees( p ) ) { + } else if( was_water && !will_be_water && g->u.sees( *this ) ) { // Use more dramatic messages for swimming monsters //~ Message when a monster emerges from water //~ %1$s: monster name, %2$s: leaps/emerges, %3$s: terrain name add_msg( m_warning, pgettext( "monster movement", "A %1$s %2$s from the %3$s!" ), name(), swims() || has_flag( MF_AQUATIC ) ? _( "leaps" ) : _( "emerges" ), g->m.tername( pos() ) ); - } else if( !was_water && will_be_water && g->u.sees( destination ) ) { + } else if( !was_water && will_be_water && g->u.sees( *this ) ) { //~ Message when a monster enters water //~ %1$s: monster name, %2$s: dives/sinks, %3$s: terrain name add_msg( m_warning, pgettext( "monster movement", "A %1$s %2$s into the %3$s!" ), name(), @@ -1543,7 +1553,7 @@ bool monster::move_to( const tripoint &p, bool force, bool step_on_critter, return true; } - if( type->size != MS_TINY && on_ground ) { + if( type->size != creature_size::tiny && on_ground ) { const int sharp_damage = rng( 1, 10 ); const int rough_damage = rng( 1, 2 ); if( g->m.has_flag( "SHARP", pos() ) && !one_in( 4 ) && @@ -1579,19 +1589,19 @@ bool monster::move_to( const tripoint &p, bool force, bool step_on_critter, if( digging() && g->m.has_flag( "DIGGABLE", pos() ) ) { int factor = 0; switch( type->size ) { - case MS_TINY: + case creature_size::tiny: factor = 100; break; - case MS_SMALL: + case creature_size::small: factor = 30; break; - case MS_MEDIUM: + case creature_size::medium: factor = 6; break; - case MS_LARGE: + case creature_size::large: factor = 3; break; - case MS_HUGE: + case creature_size::huge: factor = 1; break; } @@ -1624,9 +1634,9 @@ bool monster::move_to( const tripoint &p, bool force, bool step_on_critter, if( has_flag( MF_DRIPS_NAPALM ) ) { if( one_in( 10 ) ) { // if it has more napalm, drop some and reduce ammo in tank - if( ammo["pressurized_tank"] > 0 ) { + if( ammo[itype_pressurized_tank] > 0 ) { g->m.add_item_or_charges( pos(), item( "napalm", calendar::turn, 50 ) ); - ammo["pressurized_tank"] -= 50; + ammo[itype_pressurized_tank] -= 50; } else { // TODO: remove MF_DRIPS_NAPALM flag since no more napalm in tank // Not possible for now since flag check is done on type, not individual monster @@ -1833,14 +1843,14 @@ void monster::knock_back_to( const tripoint &to ) // First, see if we hit another monster if( monster *const z = g->critter_at( to ) ) { - apply_damage( z, bodypart_id( "torso" ), z->type->size ); + apply_damage( z, bodypart_id( "torso" ), static_cast( z->type->size ) ); add_effect( effect_stunned, 1_turns ); if( type->size > 1 + z->type->size ) { z->knock_back_from( pos() ); // Chain reaction! - z->apply_damage( this, bodypart_id( "torso" ), type->size ); + z->apply_damage( this, bodypart_id( "torso" ), static_cast( type->size ) ); z->add_effect( effect_stunned, 1_turns ); } else if( type->size > z->type->size ) { - z->apply_damage( this, bodypart_id( "torso" ), type->size ); + z->apply_damage( this, bodypart_id( "torso" ), static_cast( type->size ) ); z->add_effect( effect_stunned, 1_turns ); } z->check_dead_state(); @@ -1855,7 +1865,8 @@ void monster::knock_back_to( const tripoint &to ) if( npc *const p = g->critter_at( to ) ) { apply_damage( p, bodypart_id( "torso" ), 3 ); add_effect( effect_stunned, 1_turns ); - p->deal_damage( this, bodypart_id( "torso" ), damage_instance( DT_BASH, type->size ) ); + p->deal_damage( this, bodypart_id( "torso" ), + damage_instance( DT_BASH, static_cast( type->size ) ) ); if( u_see ) { add_msg( _( "The %1$s bounces off %2$s!" ), name(), p->name ); } @@ -1877,7 +1888,7 @@ void monster::knock_back_to( const tripoint &to ) if( g->m.impassable( to ) ) { // It's some kind of wall. - apply_damage( nullptr, bodypart_id( "torso" ), type->size ); + apply_damage( nullptr, bodypart_id( "torso" ), static_cast( type->size ) ); add_effect( effect_stunned, 2_turns ); if( u_see ) { add_msg( _( "The %1$s bounces off a %2$s." ), name(), @@ -1972,10 +1983,10 @@ void monster::shove_vehicle( const tripoint &remote_destination, float shove_damage_min = 0.00F; float shove_damage_max = 0.00F; switch( this->get_size() ) { - case MS_TINY: - case MS_SMALL: + case creature_size::tiny: + case creature_size::small: break; - case MS_MEDIUM: + case creature_size::medium: if( veh_mass < 500_kilogram ) { shove_moves_minimal = 150; shove_veh_mass_moves_factor = 20; @@ -1984,7 +1995,7 @@ void monster::shove_vehicle( const tripoint &remote_destination, shove_damage_max = 0.01F; } break; - case MS_LARGE: + case creature_size::large: if( veh_mass < 1000_kilogram ) { shove_moves_minimal = 100; shove_veh_mass_moves_factor = 8; @@ -1993,7 +2004,7 @@ void monster::shove_vehicle( const tripoint &remote_destination, shove_damage_max = 0.03F; } break; - case MS_HUGE: + case creature_size::huge: if( veh_mass < 2000_kilogram ) { shove_moves_minimal = 50; shove_veh_mass_moves_factor = 4; diff --git a/src/monster.cpp b/src/monster.cpp index cece4410620d0..baaaf4a217f05 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -85,14 +85,18 @@ static const efftype_id effect_supercharged( "supercharged" ); static const efftype_id effect_tied( "tied" ); static const efftype_id effect_webbed( "webbed" ); -static const species_id FISH( "FISH" ); -static const species_id FUNGUS( "FUNGUS" ); -static const species_id INSECT( "INSECT" ); -static const species_id MAMMAL( "MAMMAL" ); -static const species_id MOLLUSK( "MOLLUSK" ); -static const species_id ROBOT( "ROBOT" ); -static const species_id SPIDER( "SPIDER" ); -static const species_id ZOMBIE( "ZOMBIE" ); +static const itype_id itype_corpse( "corpse" ); +static const itype_id itype_milk( "milk" ); +static const itype_id itype_milk_raw( "milk_raw" ); + +static const species_id species_FISH( "FISH" ); +static const species_id species_FUNGUS( "FUNGUS" ); +static const species_id species_INSECT( "INSECT" ); +static const species_id species_MAMMAL( "MAMMAL" ); +static const species_id species_MOLLUSK( "MOLLUSK" ); +static const species_id species_ROBOT( "ROBOT" ); +static const species_id species_SPIDER( "SPIDER" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); static const trait_id trait_ANIMALDISCORD( "ANIMALDISCORD" ); static const trait_id trait_ANIMALDISCORD2( "ANIMALDISCORD2" ); @@ -166,14 +170,14 @@ struct pathfinding_settings; // Limit the number of iterations for next upgrade_time calculations. // This also sets the percentage of monsters that will never upgrade. // The rough formula is 2^(-x), e.g. for x = 5 it's 0.03125 (~ 3%). -#define UPGRADE_MAX_ITERS 5 - -static const std::map size_names { - { m_size::MS_TINY, to_translation( "size adj", "tiny" ) }, - { m_size::MS_SMALL, to_translation( "size adj", "small" ) }, - { m_size::MS_MEDIUM, to_translation( "size adj", "medium" ) }, - { m_size::MS_LARGE, to_translation( "size adj", "large" ) }, - { m_size::MS_HUGE, to_translation( "size adj", "huge" ) }, +static constexpr int UPGRADE_MAX_ITERS = 5; + +static const std::map size_names { + { creature_size::tiny, to_translation( "size adj", "tiny" ) }, + { creature_size::small, to_translation( "size adj", "small" ) }, + { creature_size::medium, to_translation( "size adj", "medium" ) }, + { creature_size::large, to_translation( "size adj", "large" ) }, + { creature_size::huge, to_translation( "size adj", "huge" ) }, }; static const std::map> attitude_names { @@ -227,13 +231,6 @@ monster::monster( const mtype_id &id ) : monster() anger = type->agro; morale = type->morale; faction = type->default_faction; - if( in_species( ROBOT ) ) { - for( const auto &ammo_entry : type->starting_ammo ) { - ammo[ammo_entry.first] = rng( 1, ammo_entry.second ); - } - } else { - ammo = type->starting_ammo; - } upgrades = type->upgrades && ( type->half_life || type->age_grow ); reproduces = type->reproduces && type->baby_timer && !monster::has_flag( MF_NO_BREED ); biosignatures = type->biosignatures; @@ -481,12 +478,12 @@ void monster::refill_udders() // legacy animals got empty ammo map, fill them up now if needed. ammo[type->starting_ammo.begin()->first] = type->starting_ammo.begin()->second; } - auto current_milk = ammo.find( "milk_raw" ); + auto current_milk = ammo.find( itype_milk_raw ); if( current_milk == ammo.end() ) { - current_milk = ammo.find( "milk" ); + current_milk = ammo.find( itype_milk ); if( current_milk != ammo.end() ) { // take this opportunity to update milk udders to raw_milk - ammo["milk_raw"] = current_milk->second; + ammo[itype_milk_raw] = current_milk->second; // Erase old key-value from map ammo.erase( current_milk ); } @@ -555,7 +552,7 @@ std::string monster::name( unsigned int quantity ) const std::string monster::name_with_armor() const { std::string ret; - if( type->in_species( INSECT ) ) { + if( type->in_species( species_INSECT ) ) { ret = _( "carapace" ); } else if( made_of( material_id( "veggy" ) ) ) { ret = _( "thick bark" ); @@ -566,7 +563,7 @@ std::string monster::name_with_armor() const ret = _( "thick hide" ); } else if( made_of( material_id( "iron" ) ) || made_of( material_id( "steel" ) ) ) { ret = _( "armor plating" ); - } else if( made_of( LIQUID ) ) { + } else if( made_of( phase_id::LIQUID ) ) { ret = _( "dense jelly mass" ); } else { ret = _( "armor" ); @@ -634,11 +631,6 @@ static std::pair hp_description( int cur_hp, int max_hp ) damage_info = _( "It is nearly dead!" ); col = c_red; } - /* - // This is unused code that allows the player to see the exact amount of monster HP, to be implemented later! - if( true ) ) { - damage_info = string_format( _( "It has %d/%d HP." ), cur_hp, max_hp ); - }*/ return std::make_pair( damage_info, col ); } @@ -646,42 +638,50 @@ static std::pair hp_description( int cur_hp, int max_hp ) int monster::print_info( const catacurses::window &w, int vStart, int vLines, int column ) const { const int vEnd = vStart + vLines; - - mvwprintz( w, point( column, vStart ), basic_symbol_color(), name() ); - wprintw( w, " " ); - const auto att = get_attitude(); - wprintz( w, att.second, att.first ); - - if( debug_mode ) { - wprintz( w, c_light_gray, _( " Difficulty " ) + to_string( type->difficulty ) ); - } - - if( sees( g->u ) ) { - mvwprintz( w, point( column, ++vStart ), c_yellow, _( "Aware of your presence!" ) ); - } - - std::string effects = get_effect_status(); - if( !effects.empty() ) { - trim_and_print( w, point( column, ++vStart ), getmaxx( w ) - 2, h_white, effects ); + const int max_width = getmaxx( w ) - column - 1; + + // Print health bar, monster name, then statuses on the first line. + nc_color color = c_white; + std::string bar_str; + get_HP_Bar( color, bar_str ); + mvwprintz( w, point( column, vStart ), color, bar_str ); + const int bar_max_width = 5; + const int bar_width = utf8_width( bar_str ); + for( int i = 0; i < bar_max_width - bar_width; ++i ) { + mvwprintz( w, point( column + 4 - i, vStart ), c_white, "." ); + } + mvwprintz( w, point( column + bar_max_width + 1, vStart ), basic_symbol_color(), name() ); + trim_and_print( w, point( column + bar_max_width + utf8_width( " " + name() + " " ), vStart ), + max_width - bar_max_width - utf8_width( " " + name() + " " ), h_white, get_effect_status() ); + + // Hostility indicator on the second line. + std::pair att = get_attitude(); + mvwprintz( w, point( column, ++vStart ), att.second, att.first ); + + // Awareness indicator in the third line. + std::string senses_str = sees( g->u ) ? _( "Can see to your current location" ) : + _( "Can't see to your current location" ); + mvwprintz( w, point( column, ++vStart ), sees( g->u ) ? c_red : c_green, senses_str ); + + // Monster description on following lines. + std::vector lines = foldstring( type->get_description(), max_width ); + int numlines = lines.size(); + for( int i = 0; i < numlines && vStart < vEnd; i++ ) { + mvwprintz( w, point( column, ++vStart ), c_light_gray, lines[i] ); } - const auto hp_desc = hp_description( hp, type->hp ); - mvwprintz( w, point( column, ++vStart ), hp_desc.second, hp_desc.first ); + // Riding indicator on next line after description. if( has_effect( effect_ridden ) && mounted_player ) { mvwprintz( w, point( column, ++vStart ), c_white, _( "Rider: %s" ), mounted_player->disp_name() ); } + // Show monster size on the last line if( size_bonus > 0 ) { - wprintz( w, c_light_gray, _( " It is %s." ), size_names.at( get_size() ) ); - } - - std::vector lines = foldstring( type->get_description(), getmaxx( w ) - 1 - column ); - int numlines = lines.size(); - for( int i = 0; i < numlines && vStart <= vEnd; i++ ) { - mvwprintz( w, point( column, ++vStart ), c_white, lines[i] ); + mvwprintz( w, point( column, ++vStart ), c_light_gray, _( " It is %s." ), + size_names.at( get_size() ) ); } - return vStart; + return ++vStart; } std::string monster::extended_description() const @@ -1048,7 +1048,7 @@ monster_attitude monster::attitude( const Character *u ) const } // Zombies don't understand not attacking NPCs, but dogs and bots should. const npc *np = dynamic_cast< const npc * >( u ); - if( np != nullptr && np->get_attitude() != NPCATT_KILL && !type->in_species( ZOMBIE ) ) { + if( np != nullptr && np->get_attitude() != NPCATT_KILL && !type->in_species( species_ZOMBIE ) ) { return MATT_FRIEND; } if( np != nullptr && np->is_hallucination() ) { @@ -1073,14 +1073,14 @@ monster_attitude monster::attitude( const Character *u ) const } } - if( type->in_species( FUNGUS ) && ( u->has_trait( trait_THRESH_MYCUS ) || - u->has_trait( trait_MYCUS_FRIEND ) ) ) { + if( type->in_species( species_FUNGUS ) && ( u->has_trait( trait_THRESH_MYCUS ) || + u->has_trait( trait_MYCUS_FRIEND ) ) ) { return MATT_FRIEND; } if( effective_anger >= 10 && - ( ( type->in_species( MAMMAL ) && u->has_trait( trait_PHEROMONE_MAMMAL ) ) || - ( type->in_species( INSECT ) && u->has_trait( trait_PHEROMONE_INSECT ) ) ) ) { + ( ( type->in_species( species_MAMMAL ) && u->has_trait( trait_PHEROMONE_MAMMAL ) ) || + ( type->in_species( species_INSECT ) && u->has_trait( trait_PHEROMONE_INSECT ) ) ) ) { effective_anger -= 20; } @@ -1261,7 +1261,7 @@ bool monster::is_immune_effect( const efftype_id &effect ) const { if( effect == effect_onfire ) { return is_immune_damage( DT_HEAT ) || - made_of( LIQUID ) || + made_of( phase_id::LIQUID ) || has_flag( MF_FIREY ); } @@ -1379,7 +1379,6 @@ void monster::melee_attack( Creature &target, float accuracy ) if( hitspread >= 0 ) { target.deal_melee_hit( this, hitspread, false, damage, dealt_dam ); } - body_part bp_hit = dealt_dam.bp_hit; const int total_dealt = dealt_dam.total_damage(); if( hitspread < 0 ) { @@ -1406,7 +1405,7 @@ void monster::melee_attack( Creature &target, float accuracy ) sfx::do_player_death_hurt( dynamic_cast( target ), false ); //~ 1$s is attacker name, 2$s is bodypart name in accusative. add_msg( m_bad, _( "The %1$s hits your %2$s." ), name(), - body_part_name_accusative( bp_hit ) ); + body_part_name_accusative( dealt_dam.bp_hit ) ); } else if( target.is_npc() ) { if( has_effect( effect_ridden ) && has_flag( MF_RIDEABLE_MECH ) && pos() == g->u.pos() ) { //~ %1$s: name of your mount, %2$s: target NPC name, %3$d: damage value @@ -1416,7 +1415,7 @@ void monster::melee_attack( Creature &target, float accuracy ) //~ %1$s: attacker name, %2$s: target NPC name, %3$s: bodypart name in accusative add_msg( _( "The %1$s hits %2$s %3$s." ), name(), target.disp_name( true ), - body_part_name_accusative( bp_hit ) ); + body_part_name_accusative( dealt_dam.bp_hit ) ); } } else { if( has_effect( effect_ridden ) && has_flag( MF_RIDEABLE_MECH ) && pos() == g->u.pos() ) { @@ -1431,7 +1430,7 @@ void monster::melee_attack( Creature &target, float accuracy ) } else if( target.is_player() ) { //~ %s is bodypart name in accusative. add_msg( m_bad, _( "Something hits your %s." ), - body_part_name_accusative( bp_hit ) ); + body_part_name_accusative( dealt_dam.bp_hit ) ); } } else { // No damage dealt @@ -1439,14 +1438,14 @@ void monster::melee_attack( Creature &target, float accuracy ) if( target.is_player() ) { //~ 1$s is attacker name, 2$s is bodypart name in accusative, 3$s is armor name add_msg( _( "The %1$s hits your %2$s, but your %3$s protects you." ), name(), - body_part_name_accusative( bp_hit ), target.skin_name() ); + body_part_name_accusative( dealt_dam.bp_hit ), target.skin_name() ); } else if( target.is_npc() ) { //~ $1s is monster name, %2$s is that monster target name, //~ $3s is target bodypart name in accusative, $4s is the monster target name, //~ 5$s is target armor name. add_msg( _( "The %1$s hits %2$s %3$s but is stopped by %4$s %5$s." ), name(), target.disp_name( true ), - body_part_name_accusative( bp_hit ), + body_part_name_accusative( dealt_dam.bp_hit ), target.disp_name( true ), target.skin_name() ); } else { @@ -1460,7 +1459,7 @@ void monster::melee_attack( Creature &target, float accuracy ) } else if( target.is_player() ) { //~ 1$s is bodypart name in accusative, 2$s is armor name. add_msg( _( "Something hits your %1$s, but your %2$s protects you." ), - body_part_name_accusative( bp_hit ), target.skin_name() ); + body_part_name_accusative( dealt_dam.bp_hit ), target.skin_name() ); } } @@ -1480,7 +1479,7 @@ void monster::melee_attack( Creature &target, float accuracy ) // Add any on damage effects for( const auto &eff : type->atk_effs ) { if( x_in_y( eff.chance, 100 ) ) { - const body_part affected_bp = eff.affect_hit_bp ? bp_hit : eff.bp; + const body_part affected_bp = eff.affect_hit_bp ? dealt_dam.bp_hit->token : eff.bp; target.add_effect( eff.id, time_duration::from_turns( eff.duration ), affected_bp, eff.permanent ); } } @@ -1506,9 +1505,9 @@ void monster::melee_attack( Creature &target, float accuracy ) if( total_dealt > 6 && stab_cut > 0 && has_flag( MF_BLEED ) ) { // Maybe should only be if DT_CUT > 6... Balance question if( target.is_player() || target.is_npc() ) { - target.as_character()->make_bleed( convert_bp( bp_hit ).id(), 6_minutes ); + target.as_character()->make_bleed( dealt_dam.bp_hit, 6_minutes ); } else { - target.add_effect( effect_bleed, 6_minutes, bp_hit ); + target.add_effect( effect_bleed, 6_minutes, dealt_dam.bp_hit->token ); } } @@ -1655,8 +1654,8 @@ bool monster::move_effects( bool ) } // non-friendly monster will struggle to get free occasionally. // some monsters can't be tangled up with a net/bolas/lasso etc. - bool immediate_break = type->in_species( FISH ) || type->in_species( MOLLUSK ) || - type->in_species( ROBOT ) || type->bodytype == "snake" || type->bodytype == "blob"; + bool immediate_break = type->in_species( species_FISH ) || type->in_species( species_MOLLUSK ) || + type->in_species( species_ROBOT ) || type->bodytype == "snake" || type->bodytype == "blob"; if( !immediate_break && rng( 0, 900 ) > type->melee_dice * type->melee_sides * 1.5 ) { if( u_see_me ) { add_msg( _( "The %s struggles to break free of its bonds." ), name() ); @@ -1898,19 +1897,19 @@ float monster::stability_roll() const { int size_bonus = 0; switch( type->size ) { - case MS_TINY: + case creature_size::tiny: size_bonus -= 7; break; - case MS_SMALL: + case creature_size::small: size_bonus -= 3; break; - case MS_LARGE: + case creature_size::large: size_bonus += 5; break; - case MS_HUGE: + case creature_size::huge: size_bonus += 10; break; - case MS_MEDIUM: + case creature_size::medium: break; // keep default } @@ -1962,15 +1961,15 @@ float monster::fall_damage_mod() const } switch( type->size ) { - case MS_TINY: + case creature_size::tiny: return 0.2f; - case MS_SMALL: + case creature_size::small: return 0.6f; - case MS_MEDIUM: + case creature_size::medium: return 1.0f; - case MS_LARGE: + case creature_size::large: return 1.4f; - case MS_HUGE: + case creature_size::huge: return 2.0f; } @@ -2032,35 +2031,11 @@ void monster::disable_special( const std::string &special_name ) special_attacks.at( special_name ).enabled = false; } -int monster::shortest_special_cooldown() const +bool monster::special_available( const std::string &special_name ) const { - int countdown = std::numeric_limits::max(); - for( const std::pair &sp_type : special_attacks ) { - const mon_special_attack &local_attack_data = sp_type.second; - if( !local_attack_data.enabled ) { - continue; - } - countdown = std::min( countdown, local_attack_data.cooldown ); - } - return countdown; -} - -void monster::normalize_ammo( const int old_ammo ) -{ - int total_ammo = 0; - // Sum up the ammo entries to get a ratio. - for( const auto &ammo_entry : type->starting_ammo ) { - total_ammo += ammo_entry.second; - } - if( total_ammo == 0 ) { - // Should never happen, but protect us from a div/0 if it does. - return; - } - // Previous code gave robots 100 rounds of ammo. - // This reassigns whatever is left from that in the appropriate proportions. - for( const auto &ammo_entry : type->starting_ammo ) { - ammo[ammo_entry.first] = old_ammo * ammo_entry.second / ( 100 * total_ammo ); - } + std::map::const_iterator iter = special_attacks.find( + special_name ); + return iter != special_attacks.end() && iter->second.enabled && iter->second.cooldown == 0; } void monster::explode() @@ -2145,7 +2120,7 @@ void monster::process_turn() const bool player_sees = g->u.sees( zap ); const auto items = g->m.i_at( zap ); for( const auto &item : items ) { - if( item.made_of( LIQUID ) && item.flammable() ) { // start a fire! + if( item.made_of( phase_id::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!" ), false, "fire", "ignition" ); break; @@ -2379,7 +2354,8 @@ void monster::drop_items_on_death() // Temporary vector, to remember which items will be dropped std::vector remaining; for( const item &it : items ) { - if( rng_float( 0, 1 ) < spawn_rate ) { + // Mission items are not affected by item spawn rate + if( rng_float( 0, 1 ) < spawn_rate || it.has_flag( "MISSION_ITEM" ) ) { remaining.push_back( it ); } } @@ -2532,7 +2508,7 @@ bool monster::make_fungus() } char polypick = 0; const mtype_id &tid = type->id; - if( type->in_species( FUNGUS ) ) { // No friendly-fungalizing ;-) + if( type->in_species( species_FUNGUS ) ) { // No friendly-fungalizing ;-) return true; } if( !made_of( material_id( "flesh" ) ) && !made_of( material_id( "hflesh" ) ) && @@ -2571,7 +2547,7 @@ bool monster::make_fungus() polypick = 7; } else if( tid == mon_zombie_gasbag ) { polypick = 8; - } else if( type->in_species( SPIDER ) && get_size() > MS_TINY ) { + } else if( type->in_species( species_SPIDER ) && get_size() > creature_size::tiny ) { polypick = 9; } @@ -2654,9 +2630,9 @@ field_type_id monster::gibType() const return type->gibType(); } -m_size monster::get_size() const +creature_size monster::get_size() const { - return m_size( type->size + size_bonus ); + return creature_size( type->size + size_bonus ); } units::mass monster::get_weight() const @@ -2746,7 +2722,7 @@ bool monster::is_dead() const void monster::init_from_item( const item &itm ) { - if( itm.typeId() == "corpse" ) { + if( itm.typeId() == itype_corpse ) { set_speed_base( get_speed_base() * 0.8 ); const int burnt_penalty = itm.burnt; hp = static_cast( hp * 0.7 ); @@ -2776,7 +2752,7 @@ void monster::init_from_item( const item &itm ) item monster::to_item() const { - if( type->revert_to_itype.empty() ) { + if( type->revert_to_itype.is_empty() ) { return item(); } // Birthday is wrong, but the item created here does not use it anyway (I hope). diff --git a/src/monster.h b/src/monster.h index 406d68431c723..cbf28dd57c7bb 100644 --- a/src/monster.h +++ b/src/monster.h @@ -39,7 +39,7 @@ struct dealt_projectile_attack; struct pathfinding_settings; struct trap; -enum class mon_trigger; +enum class mon_trigger : int; class mon_special_attack { @@ -106,7 +106,7 @@ class monster : public Creature void try_biosignature(); void refill_udders(); void spawn( const tripoint &p ); - m_size get_size() const override; + creature_size get_size() const override; units::mass get_weight() const override; units::mass weight_capacity() const override; units::volume get_volume() const; @@ -392,8 +392,8 @@ class monster : public Creature void set_special( const std::string &special_name, int time ); /** Sets the enabled flag for the given special to false */ void disable_special( const std::string &special_name ); - /** Return the lowest cooldown for an enabled special */ - int shortest_special_cooldown() const; + /** Test whether the specified special is ready. */ + bool special_available( const std::string &special_name ) const; void process_turn() override; /** Resets the value of all bonus fields to 0, clears special effect flags. */ @@ -500,7 +500,7 @@ class monster : public Creature int staircount; // Ammunition if we use a gun. - std::map ammo; + std::map ammo; /** * Convert this monster into an item (see @ref mtype::revert_to_itype). @@ -544,8 +544,6 @@ class monster : public Creature tripoint goal; tripoint position; bool dead; - /** Legacy loading logic for monsters that are packing ammo. **/ - void normalize_ammo( int old_ammo ); /** Normal upgrades **/ int next_upgrade_time(); bool upgrades; diff --git a/src/monster_oracle.cpp b/src/monster_oracle.cpp index 88ba91621bb38..1fce4c3c16cff 100644 --- a/src/monster_oracle.cpp +++ b/src/monster_oracle.cpp @@ -3,31 +3,40 @@ #include "behavior.h" #include "game.h" #include "map.h" +#include "map_iterator.h" #include "monster.h" #include "monster_oracle.h" namespace behavior { -status_t monster_oracle_t::has_special() const +status_t monster_oracle_t::not_hallucination( const std::string & ) const { - if( subject->shortest_special_cooldown() == 0 ) { - return running; - } - return failure; + return subject->is_hallucination() ? status_t::failure : status_t::running; } -status_t monster_oracle_t::not_hallucination() const +status_t monster_oracle_t::items_available( const std::string & ) const { - return subject->is_hallucination() ? failure : running; + if( !g->m.has_flag( TFLAG_SEALED, subject->pos() ) && g->m.has_items( subject->pos() ) ) { + return status_t::running; + } + return status_t::failure; } -status_t monster_oracle_t::items_available() const +// TODO: Have it select a target and stash it somewhere. +status_t monster_oracle_t::adjacent_plants( const std::string & ) const { - if( !g->m.has_flag( TFLAG_SEALED, subject->pos() ) && g->m.has_items( subject->pos() ) ) { - return running; + for( const tripoint &p : g->m.points_in_radius( subject->pos(), 1 ) ) { + if( g->m.has_flag( "PLANT", p ) ) { + return status_t::running; + } } - return failure; + return status_t::failure; +} + +status_t monster_oracle_t::special_available( const std::string &special_name ) const +{ + return subject->special_available( special_name ) ? status_t::running : status_t::failure; } } // namespace behavior diff --git a/src/monster_oracle.h b/src/monster_oracle.h index d4452d49e8205..dfdc8e5d13cdd 100644 --- a/src/monster_oracle.h +++ b/src/monster_oracle.h @@ -2,6 +2,8 @@ #ifndef CATA_SRC_MONSTER_ORACLE_H #define CATA_SRC_MONSTER_ORACLE_H +#include + #include "behavior_oracle.h" class monster; @@ -18,9 +20,10 @@ class monster_oracle_t : public oracle_t /** * Predicates used by AI to determine goals. */ - status_t has_special() const; - status_t not_hallucination() const; - status_t items_available() const; + status_t not_hallucination( const std::string & ) const; + status_t items_available( const std::string & ) const; + status_t adjacent_plants( const std::string & ) const; + status_t special_available( const std::string &special_name ) const; private: const monster *subject; }; diff --git a/src/monstergenerator.cpp b/src/monstergenerator.cpp index 35fff35149eef..6513e56235a77 100644 --- a/src/monstergenerator.cpp +++ b/src/monstergenerator.cpp @@ -260,18 +260,18 @@ static int calc_bash_skill( const mtype &t ) return ret; } -static m_size volume_to_size( const units::volume &vol ) +static creature_size volume_to_size( const units::volume &vol ) { if( vol <= 7500_ml ) { - return MS_TINY; + return creature_size::tiny; } else if( vol <= 46250_ml ) { - return MS_SMALL; + return creature_size::small; } else if( vol <= 77500_ml ) { - return MS_MEDIUM; + return creature_size::medium; } else if( vol <= 483750_ml ) { - return MS_LARGE; + return creature_size::large; } - return MS_HUGE; + return creature_size::huge; } struct monster_adjustment { @@ -339,6 +339,11 @@ static void build_behavior_tree( mtype &type ) if( type.has_flag( MF_ABSORBS ) || type.has_flag( MF_ABSORBS_SPLITS ) ) { type.add_goal( "absorb_items" ); } + for( const std::pair &attack : type.special_attacks ) { + if( string_id( attack.first ).is_valid() ) { + type.add_goal( attack.first ); + } /* TODO: Make this an error once all the special attacks are migrated. */ + } } void MonsterGenerator::finalize_mtypes() @@ -427,11 +432,11 @@ void MonsterGenerator::finalize_pathfinding_settings( mtype &mon ) void MonsterGenerator::init_phases() { - phase_map["NULL"] = PNULL; - phase_map["SOLID"] = SOLID; - phase_map["LIQUID"] = LIQUID; - phase_map["GAS"] = GAS; - phase_map["PLASMA"] = PLASMA; + phase_map["NULL"] = phase_id::PNULL; + phase_map["SOLID"] = phase_id::SOLID; + phase_map["LIQUID"] = phase_id::LIQUID; + phase_map["GAS"] = phase_id::GAS; + phase_map["PLASMA"] = phase_id::PLASMA; } void MonsterGenerator::init_death() @@ -708,7 +713,8 @@ void mtype::load( const JsonObject &jo, const std::string &src ) assign( jo, "volume", volume, strict, 0_ml ); assign( jo, "weight", weight, strict, 0_gram ); - optional( jo, was_loaded, "phase", phase, make_flag_reader( gen.phase_map, "phase id" ), SOLID ); + optional( jo, was_loaded, "phase", phase, make_flag_reader( gen.phase_map, "phase id" ), + phase_id::SOLID ); assign( jo, "diff", difficulty_base, strict, 0 ); assign( jo, "hp", hp, strict, 1 ); @@ -742,11 +748,11 @@ void mtype::load( const JsonObject &jo, const std::string &src ) optional( jo, was_loaded, "starting_ammo", starting_ammo ); optional( jo, was_loaded, "luminance", luminance, 0 ); - optional( jo, was_loaded, "revert_to_itype", revert_to_itype, "" ); + optional( jo, was_loaded, "revert_to_itype", revert_to_itype, itype_id() ); optional( jo, was_loaded, "attack_effs", atk_effs, mon_attack_effect_reader{} ); - optional( jo, was_loaded, "mech_weapon", mech_weapon, "" ); + optional( jo, was_loaded, "mech_weapon", mech_weapon, itype_id() ); optional( jo, was_loaded, "mech_str_bonus", mech_str_bonus, 0 ); - optional( jo, was_loaded, "mech_battery", mech_battery, "" ); + optional( jo, was_loaded, "mech_battery", mech_battery, itype_id() ); // TODO: make this work with `was_loaded` if( jo.has_array( "melee_damage" ) ) { @@ -863,7 +869,7 @@ void mtype::load( const JsonObject &jo, const std::string &src ) optional( repro, was_loaded, "baby_monster", baby_monster, auto_flags_reader {}, mtype_id::NULL_ID() ); optional( repro, was_loaded, "baby_egg", baby_egg, auto_flags_reader {}, - "null" ); + itype_id::NULL_ID() ); reproduces = true; } @@ -885,7 +891,7 @@ void mtype::load( const JsonObject &jo, const std::string &src ) } optional( biosig, was_loaded, "biosig_item", biosig_item, auto_flags_reader {}, - "null" ); + itype_id::NULL_ID() ); biosignatures = true; } @@ -1139,16 +1145,16 @@ void mtype::remove_special_attacks( const JsonObject &jo, const std::string &mem void MonsterGenerator::check_monster_definitions() const { for( const auto &mon : mon_templates->get_all() ) { - if( mon.harvest == "null" && !mon.has_flag( MF_ELECTRONIC ) && mon.id != mtype_id( "mon_null" ) ) { + if( mon.harvest.is_null() && !mon.has_flag( MF_ELECTRONIC ) && !mon.id.is_null() ) { debugmsg( "monster %s has no harvest entry", mon.id.c_str(), mon.harvest.c_str() ); } if( mon.has_flag( MF_MILKABLE ) && mon.starting_ammo.empty() ) { debugmsg( "monster %s is flagged milkable, but has no starting ammo", mon.id.c_str() ); } if( mon.has_flag( MF_MILKABLE ) && !mon.starting_ammo.empty() && - !item( itype_id( mon.starting_ammo.begin()->first ) ).made_of( LIQUID ) ) { + !item( mon.starting_ammo.begin()->first ).made_of( phase_id::LIQUID ) ) { debugmsg( "monster % is flagged milkable, but starting ammo %s is not a liquid type", - mon.id.c_str(), mon.starting_ammo.begin()->first ); + mon.id.c_str(), mon.starting_ammo.begin()->first.str() ); } if( mon.has_flag( MF_MILKABLE ) && mon.starting_ammo.size() > 1 ) { debugmsg( "monster % is flagged milkable, but has multiple starting_ammo defined", mon.id.c_str() ); @@ -1167,15 +1173,15 @@ void MonsterGenerator::check_monster_definitions() const debugmsg( "monster %s has unknown material: %s", mon.id.c_str(), m.c_str() ); } } - if( !mon.revert_to_itype.empty() && !item::type_is_defined( mon.revert_to_itype ) ) { + if( !mon.revert_to_itype.is_empty() && !item::type_is_defined( mon.revert_to_itype ) ) { debugmsg( "monster %s has unknown revert_to_itype: %s", mon.id.c_str(), mon.revert_to_itype.c_str() ); } - if( !mon.mech_weapon.empty() && !item::type_is_defined( mon.mech_weapon ) ) { + if( !mon.mech_weapon.is_empty() && !item::type_is_defined( mon.mech_weapon ) ) { debugmsg( "monster %s has unknown mech_weapon: %s", mon.id.c_str(), mon.mech_weapon.c_str() ); } - if( !mon.mech_battery.empty() && !item::type_is_defined( mon.mech_battery ) ) { + if( !mon.mech_battery.is_empty() && !item::type_is_defined( mon.mech_battery ) ) { debugmsg( "monster %s has unknown mech_battery: %s", mon.id.c_str(), mon.mech_battery.c_str() ); } @@ -1237,10 +1243,10 @@ void MonsterGenerator::check_monster_definitions() const debugmsg( "Number of children (%d) is invalid for %s", mon.baby_count, mon.id.c_str() ); } - if( !mon.baby_monster && mon.baby_egg == "null" ) { + if( !mon.baby_monster && mon.baby_egg.is_null() ) { debugmsg( "No baby or egg defined for monster %s", mon.id.c_str() ); } - if( mon.baby_monster && mon.baby_egg != "null" ) { + if( mon.baby_monster && !mon.baby_egg.is_null() ) { debugmsg( "Both an egg and a live birth baby are defined for %s", mon.id.c_str() ); } if( !mon.baby_monster.is_valid() ) { @@ -1258,7 +1264,7 @@ void MonsterGenerator::check_monster_definitions() const debugmsg( "Time between biosignature drops (%d) is invalid for %s", mon.biosig_timer ? to_turns( *mon.biosig_timer ) : -1, mon.id.c_str() ); } - if( mon.biosig_item == "null" ) { + if( mon.biosig_item.is_null() ) { debugmsg( "No biosignature drop defined for monster %s", mon.id.c_str() ); } if( !item::type_is_defined( mon.biosig_item ) ) { diff --git a/src/morale.cpp b/src/morale.cpp index 0f15f4cec977f..60fa1efb85f50 100644 --- a/src/morale.cpp +++ b/src/morale.cpp @@ -9,6 +9,7 @@ #include #include +#include "avatar.h" #include "bodypart.h" #include "cata_utility.h" #include "catacharset.h" @@ -16,6 +17,7 @@ #include "cursesdef.h" #include "debug.h" #include "enums.h" +#include "game.h" #include "input.h" #include "int_id.h" #include "item.h" @@ -285,7 +287,7 @@ player_morale::player_morale() : mutations[trait_CENOBITE] = mutation_data( update_masochist ); } -void player_morale::add( morale_type type, int bonus, int max_bonus, +void player_morale::add( const morale_type &type, int bonus, int max_bonus, const time_duration &duration, const time_duration &decay_start, bool capped, const itype *item_type ) { @@ -490,13 +492,13 @@ void player_morale::display( int focus_eq, int pain_penalty, int fatigue_penalty class morale_line { public: - enum class number_format { + enum class number_format : int { normal, signed_or_dash, percent, }; - enum class line_color { + enum class line_color : int { normal, green_gray_red, red_gray_green, @@ -762,7 +764,7 @@ void player_morale::display( int focus_eq, int pain_penalty, int fatigue_penalty draw_scrollbar( w, offset, rows_visible, rows_total, point( 0, top_lines.size() ), c_white, true ); - wrefresh( w ); + wnoutrefresh( w ); } ); input_context ctxt( "MORALE" ); @@ -901,10 +903,9 @@ void player_morale::on_worn_item_washed( const item &it ) const body_part_set covered( it.get_covered_body_parts() ); if( covered.any() ) { - for( const body_part bp : all_body_parts ) { - if( covered.test( bp ) ) { - const bodypart_id bp_id = convert_bp( bp ).id(); - update_body_part( body_parts[bp_id] ); + for( const bodypart_id &bp : g->u.get_all_body_parts() ) { + if( covered.test( bp.id() ) ) { + update_body_part( body_parts[bp] ); } } } else { @@ -948,10 +949,9 @@ void player_morale::set_worn( const item &it, bool worn ) const body_part_set covered( it.get_covered_body_parts() ); if( covered.any() ) { - for( const body_part bp : all_body_parts ) { - if( covered.test( bp ) ) { - const bodypart_id bp_id = convert_bp( bp ).id(); - update_body_part( body_parts[bp_id] ); + for( const bodypart_id &bp : g->u.get_all_body_parts() ) { + if( covered.test( bp.id() ) ) { + update_body_part( body_parts[bp] ); } } } else { diff --git a/src/morale.h b/src/morale.h index 1a4300731638b..04c3b352f1105 100644 --- a/src/morale.h +++ b/src/morale.h @@ -25,13 +25,13 @@ class player_morale public: player_morale(); - player_morale( player_morale && ) = default; + player_morale( player_morale && ) noexcept = default; player_morale( const player_morale & ) = default; player_morale &operator =( player_morale && ) = default; player_morale &operator =( const player_morale & ) = default; /** Adds morale to existing or creates one */ - void add( morale_type type, int bonus, int max_bonus = 0, + void add( const morale_type &type, int bonus, int max_bonus = 0, const time_duration &duration = 6_minutes, const time_duration &decay_start = 3_minutes, bool capped = false, const itype *item_type = nullptr ); /** Sets the new level for the permanent morale, or creates one */ @@ -181,11 +181,11 @@ class player_morale struct mutation_data { public: mutation_data() = default; - mutation_data( mutation_handler on_gain_and_loss ) : + mutation_data( const mutation_handler &on_gain_and_loss ) : on_gain( on_gain_and_loss ), on_loss( on_gain_and_loss ), active( false ) {} - mutation_data( mutation_handler on_gain, mutation_handler on_loss ) : + mutation_data( const mutation_handler &on_gain, const mutation_handler &on_loss ) : on_gain( on_gain ), on_loss( on_loss ), active( false ) {} @@ -199,7 +199,7 @@ class player_morale }; std::map mutations; - std::map super_fancy_items; + std::map super_fancy_items; // Mutability is required for lazy initialization mutable int level; diff --git a/src/move_mode.cpp b/src/move_mode.cpp new file mode 100644 index 0000000000000..e73a2d6e1a0d3 --- /dev/null +++ b/src/move_mode.cpp @@ -0,0 +1,207 @@ +#include "move_mode.h" +#include "game_constants.h" + +std::vector move_modes_sorted; + +const std::vector &move_modes_by_speed() +{ + return move_modes_sorted; +} + +namespace +{ +generic_factory move_mode_factory( "move_mode" ); +} // namespace + + +template<> +const move_mode &move_mode_id::obj() const +{ + return move_mode_factory.obj( *this ); +} + +static const std::map move_types { + { "crouching", move_mode_type::CROUCHING }, + { "walking", move_mode_type::WALKING }, + { "running", move_mode_type::RUNNING } +}; + +static const std::map activity_levels = { + { "NO_EXERCISE", NO_EXERCISE }, + { "LIGHT_EXERCISE", LIGHT_EXERCISE }, + { "MODERATE_EXERCISE", MODERATE_EXERCISE }, + { "ACTIVE_EXERCISE", ACTIVE_EXERCISE }, + { "EXTRA_EXERCISE", EXTRA_EXERCISE } +}; + +void move_mode::load_move_mode( const JsonObject &jo, const std::string &src ) +{ + move_mode_factory.load( jo, src ); +} + +void move_mode::load( const JsonObject &jo, const std::string &src ) +{ + bool strict = src == "dda"; + + mandatory( jo, was_loaded, "character", _letter, unicode_codepoint_from_symbol_reader ); + mandatory( jo, was_loaded, "name", _name ); + + mandatory( jo, was_loaded, "panel_char", _panel_letter, unicode_codepoint_from_symbol_reader ); + assign( jo, "panel_color", _panel_color, strict ); + assign( jo, "symbol_color", _symbol_color, strict ); + + std::string exert = jo.get_string( "exertion_level" ); + if( !activity_levels.count( exert ) ) { + jo.throw_error( "Invalid activity level for move mode %s", id.str() ); + } + _exertion_level = activity_levels.at( exert ); + + mandatory( jo, was_loaded, "change_good_none", change_messages_success[steed_type::NONE] ); + mandatory( jo, was_loaded, "change_good_animal", change_messages_success[steed_type::ANIMAL] ); + mandatory( jo, was_loaded, "change_good_mech", change_messages_success[steed_type::MECH] ); + + optional( jo, was_loaded, "change_bad_none", change_messages_fail[steed_type::NONE], + to_translation( "You feel bugs crawl over your skin." ) ); + optional( jo, was_loaded, "change_bad_animal", change_messages_fail[steed_type::ANIMAL], + to_translation( "You feel bugs crawl over your skin." ) ); + optional( jo, was_loaded, "change_bad_mech", change_messages_fail[steed_type::MECH], + to_translation( "You feel bugs crawl over your skin." ) ); + + mandatory( jo, was_loaded, "move_type", _type, make_flag_reader( move_types, "move type" ) ); + + optional( jo, was_loaded, "stamina_multiplier", _stamina_multiplier, 1.0 ); + optional( jo, was_loaded, "sound_multiplier", _sound_multiplier, 1.0 ); + optional( jo, was_loaded, "move_speed_multiplier", _move_speed_mult, 1.0 ); + optional( jo, was_loaded, "mech_power_use", _mech_power_use, 2 ); + optional( jo, was_loaded, "swim_speed_mod", _swim_speed_mod, 0 ); + + optional( jo, was_loaded, "stop_hauling", _stop_hauling ); +} + +void move_mode::reset() +{ + move_mode_factory.reset(); + move_modes_sorted.clear(); +} + +void move_mode::finalize() +{ + for( const move_mode &mode : move_mode_factory.get_all() ) { + move_modes_sorted.emplace_back( mode.ident() ); + } + + // Sort it fastest to slowest + auto stamina_sorter = [&]( const move_mode_id & lhs, const move_mode_id & rhs ) { + return lhs->move_speed_mult() < rhs->move_speed_mult(); + }; + + std::sort( move_modes_sorted.begin(), move_modes_sorted.end(), stamina_sorter ); + + // Cycle to the move mode above ours + for( size_t i = move_modes_sorted.size(); i > 0; --i ) { + const move_mode &curr = *move_modes_sorted[i - 1]; + if( i == move_modes_sorted.size() ) { + curr.set_cycle( move_modes_sorted[0] ); + } else { + curr.set_cycle( move_modes_sorted[i] ); + } + } + +} + +std::string move_mode::name() const +{ + return _name.translated(); +} + +std::string move_mode::change_message( bool success, steed_type steed ) const +{ + if( steed == steed_type::NUM ) { + debugmsg( "Attempted to switch to bad movement mode!" ); + //~ This should never occur - this is the message when the character swtiches to + //~ an invalid move mode or there's not a message for failing to switch to a move + //~ mode + return _( "You feel bugs crawl over your skin." ); + } + + if( success ) { + return change_messages_success.at( steed ).translated(); + } + + return change_messages_fail.at( steed ).translated(); +} + +move_mode_id move_mode::cycle() const +{ + return cycle_to; +} + +move_mode_id move_mode::ident() const +{ + return id; +} + +float move_mode::sound_mult() const +{ + return _sound_multiplier; +} + +float move_mode::stamina_mult() const +{ + return _stamina_multiplier; +} + +float move_mode::exertion_level() const +{ + return _exertion_level; +} + +float move_mode::move_speed_mult() const +{ + return _move_speed_mult; +} + +int move_mode::mech_power_use() const +{ + return _mech_power_use; +} + +int move_mode::swim_speed_mod() const +{ + return _swim_speed_mod; +} + +nc_color move_mode::panel_color() const +{ + return _panel_color; +} + +nc_color move_mode::symbol_color() const +{ + return _symbol_color; +} + +char move_mode::panel_letter() const +{ + return _panel_letter; +} + +char move_mode::letter() const +{ + return _letter; +} + +bool move_mode::stop_hauling() const +{ + return _stop_hauling; +} + +move_mode_type move_mode::type() const +{ + return _type; +} + +void move_mode::set_cycle( const move_mode_id &mode ) const +{ + cycle_to = mode; +} diff --git a/src/move_mode.h b/src/move_mode.h new file mode 100644 index 0000000000000..fa47368b3a72c --- /dev/null +++ b/src/move_mode.h @@ -0,0 +1,95 @@ +#pragma once +#ifndef CATA_SRC_MOVE_MODE_H +#define CATA_SRC_MOVE_MODE_H + +#include +#include + +#include "generic_factory.h" +#include "translations.h" +#include "type_id.h" + +enum class steed_type : int { + NONE, + ANIMAL, + MECH, + NUM +}; + +enum class move_mode_type : int { + CROUCHING, + WALKING, + RUNNING +}; + +class move_mode +{ + + friend class generic_factory; + + bool was_loaded = false; + move_mode_id id; + + std::map change_messages_success; + std::map change_messages_fail; + + bool _stop_hauling = false; + + // Mutable because I couldn't figure out how to set this after it had been loaded + // Which was necessary, because I needed to know the values of the other ones + // before I could set it + mutable move_mode_id cycle_to; + move_mode_type _type; + + float _exertion_level; + float _move_speed_mult; + float _sound_multiplier; + float _stamina_multiplier; + + int _mech_power_use; + int _swim_speed_mod; + + nc_color _panel_color; + nc_color _symbol_color; + uint32_t _panel_letter; + uint32_t _letter; + translation _name; + + + public: + static void load_move_mode( const JsonObject &jo, const std::string &src ); + void load( const JsonObject &jo, const std::string &src ); + static void finalize(); + static void reset(); + + move_mode() = default; + + std::string name() const; + std::string change_message( bool success, steed_type steed ) const; + + move_mode_id cycle() const; + move_mode_id ident() const; + + float sound_mult() const; + float stamina_mult() const; + float exertion_level() const; + float move_speed_mult() const; + + int mech_power_use() const; + int swim_speed_mod() const; + + nc_color panel_color() const; + nc_color symbol_color() const; + + char panel_letter() const; + char letter() const; + bool stop_hauling() const; + move_mode_type type() const; + + // Const because it's modifying a mutable + void set_cycle( const move_mode_id &mode ) const; +}; + +const std::vector &move_modes_by_speed(); + +#endif // CATA_SRC_MOVE_MODE_H diff --git a/src/mtype.cpp b/src/mtype.cpp index b5f102d6f8fa2..d3264398d43b3 100644 --- a/src/mtype.cpp +++ b/src/mtype.cpp @@ -12,7 +12,16 @@ #include "monstergenerator.h" #include "translations.h" -static const species_id MOLLUSK( "MOLLUSK" ); +static const itype_id itype_bone( "bone" ); +static const itype_id itype_bone_tainted( "bone_tainted" ); +static const itype_id itype_fish( "fish" ); +static const itype_id itype_human_flesh( "human_flesh" ); +static const itype_id itype_meat( "meat" ); +static const itype_id itype_meat_tainted( "meat_tainted" ); +static const itype_id itype_veggy( "veggy" ); +static const itype_id itype_veggy_tainted( "veggy_tainted" ); + +static const species_id species_MOLLUSK( "MOLLUSK" ); mtype::mtype() { @@ -20,11 +29,11 @@ mtype::mtype() name = pl_translation( "human", "humans" ); sym = " "; color = c_white; - size = MS_MEDIUM; + size = creature_size::medium; volume = 62499_ml; weight = 81499_gram; mat = { material_id( "flesh" ) }; - phase = SOLID; + phase = phase_id::SOLID; def_chance = 0; upgrades = false; half_life = -1; @@ -35,10 +44,10 @@ mtype::mtype() reproduces = false; baby_count = -1; baby_monster = mtype_id::NULL_ID(); - baby_egg = "null"; + baby_egg = itype_id::NULL_ID(); biosignatures = false; - biosig_item = "null"; + biosig_item = itype_id::NULL_ID(); burn_into = mtype_id::NULL_ID(); dies.push_back( &mdeath::normal ); @@ -167,7 +176,7 @@ field_type_id mtype::bloodType() const field_type_id mtype::gibType() const { - if( has_flag( MF_LARVA ) || in_species( MOLLUSK ) ) { + if( has_flag( MF_LARVA ) || in_species( species_MOLLUSK ) ) { return fd_gibs_invertebrate; } if( made_of( material_id( "veggy" ) ) ) { @@ -187,34 +196,34 @@ itype_id mtype::get_meat_itype() const { if( has_flag( MF_POISON ) ) { if( made_of( material_id( "flesh" ) ) || made_of( material_id( "hflesh" ) ) ) { - return "meat_tainted"; + return itype_meat_tainted; } else if( made_of( material_id( "iflesh" ) ) ) { //In the future, insects could drop insect flesh rather than plain ol' meat. - return "meat_tainted"; + return itype_meat_tainted; } else if( made_of( material_id( "veggy" ) ) ) { - return "veggy_tainted"; + return itype_veggy_tainted; } else if( made_of( material_id( "bone" ) ) ) { - return "bone_tainted"; + return itype_bone_tainted; } } else { if( made_of( material_id( "flesh" ) ) || made_of( material_id( "hflesh" ) ) ) { if( has_flag( MF_HUMAN ) ) { - return "human_flesh"; + return itype_human_flesh; } else if( has_flag( MF_AQUATIC ) ) { - return "fish"; + return itype_fish; } else { - return "meat"; + return itype_meat; } } else if( made_of( material_id( "iflesh" ) ) ) { //In the future, insects could drop insect flesh rather than plain ol' meat. - return "meat"; + return itype_meat; } else if( made_of( material_id( "veggy" ) ) ) { - return "veggy"; + return itype_veggy; } else if( made_of( material_id( "bone" ) ) ) { - return "bone"; + return itype_bone; } } - return "null"; + return itype_id::NULL_ID(); } int mtype::get_meat_chunks_count() const diff --git a/src/mtype.h b/src/mtype.h index c625972ab3845..aa3c6dfab5666 100644 --- a/src/mtype.h +++ b/src/mtype.h @@ -27,7 +27,7 @@ struct species_type; template struct enum_traits; enum body_part : int; -enum m_size : int; +enum class creature_size : int; using mon_action_death = void ( * )( monster & ); using mon_action_attack = bool ( * )( monster * ); @@ -36,11 +36,9 @@ using bodytype_id = std::string; class JsonArray; class JsonObject; -using itype_id = std::string; - // 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 { +enum class mon_trigger : int { STALK, // Increases when following the player MEAT, // Meat or a corpse nearby HOSTILE_WEAK, // Hurt hostile player/npc/monster seen @@ -74,7 +72,7 @@ enum m_flag : int { MF_STUMBLES, // Stumbles in its movement MF_WARM, // Warm blooded MF_NOHEAD, // Headshots not allowed! - MF_HARDTOSHOOT, // It's one size smaller for ranged attacks, no less then MS_TINY + MF_HARDTOSHOOT, // It's one size smaller for ranged attacks, no less then creature_size::tiny MF_GRABS, // Its attacks may grab us! MF_BASHES, // Bashes down doors MF_DESTROYS, // Bashes down walls and more @@ -176,7 +174,7 @@ enum m_flag : int { MF_LOUDMOVES, // This monster makes move noises as if ~2 sizes louder, even if flying. MF_CAN_OPEN_DOORS, // This monster can open doors. MF_STUN_IMMUNE, // This monster is immune to the stun effect - MF_DROPS_AMMO, // This monster drops ammo. Check to make sure starting_ammo paramter is present for this monster type! + MF_DROPS_AMMO, // This monster drops ammo. Should not be set for monsters that use pseudo ammo. MF_MAX // Sets the length of the flags - obviously must be LAST }; @@ -227,7 +225,7 @@ struct mtype { public: mtype_id id; - std::map starting_ammo; // Amount of ammo the monster spawns with. + std::map starting_ammo; // Amount of ammo the monster spawns with. // Name of item group that is used to create item dropped upon death, or empty. std::string death_drops; @@ -244,7 +242,7 @@ struct mtype { mfaction_id default_faction; bodytype_id bodytype; nc_color color = c_white; - m_size size; + creature_size size; units::volume volume; units::mass weight; phase_id phase; diff --git a/src/mutation.cpp b/src/mutation.cpp index 197e5f04f6bc4..62e1cafa97a2b 100644 --- a/src/mutation.cpp +++ b/src/mutation.cpp @@ -36,11 +36,13 @@ static const activity_id ACT_TREE_COMMUNION( "ACT_TREE_COMMUNION" ); static const efftype_id effect_stunned( "stunned" ); +static const trait_id trait_BURROW( "BURROW" ); static const trait_id trait_CARNIVORE( "CARNIVORE" ); static const trait_id trait_CHAOTIC_BAD( "CHAOTIC_BAD" ); static const trait_id trait_DEBUG_BIONIC_POWER( "DEBUG_BIONIC_POWER" ); static const trait_id trait_DEBUG_BIONIC_POWERGEN( "DEBUG_BIONIC_POWERGEN" ); static const trait_id trait_DEX_ALPHA( "DEX_ALPHA" ); +static const trait_id trait_GLASSJAW( "GLASSJAW" ); static const trait_id trait_HUGE( "HUGE" ); static const trait_id trait_HUGE_OK( "HUGE_OK" ); static const trait_id trait_INT_ALPHA( "INT_ALPHA" ); @@ -213,8 +215,8 @@ bool mutation_branch::conflicts_with_item( const item &it ) const return false; } - for( body_part bp : restricts_gear ) { - if( it.covers( bp ) ) { + for( const bodypart_str_id &bp : restricts_gear ) { + if( it.covers( bp.id() ) ) { return true; } } @@ -222,9 +224,9 @@ bool mutation_branch::conflicts_with_item( const item &it ) const return false; } -const resistances &mutation_branch::damage_resistance( body_part bp ) const +const resistances &mutation_branch::damage_resistance( const bodypart_id &bp ) const { - const auto iter = armor.find( bp ); + const auto iter = armor.find( bp.id() ); if( iter == armor.end() ) { static const resistances nulres; return nulres; @@ -233,22 +235,22 @@ const resistances &mutation_branch::damage_resistance( body_part bp ) const return iter->second; } -m_size calculate_size( const Character &c ) +creature_size calculate_size( const Character &c ) { if( c.has_trait( trait_id( "SMALL2" ) ) || c.has_trait( trait_id( "SMALL_OK" ) ) || c.has_trait( trait_id( "SMALL" ) ) ) { - return MS_SMALL; + return creature_size::small; } else if( c.has_trait( trait_LARGE ) || c.has_trait( trait_LARGE_OK ) ) { - return MS_LARGE; + return creature_size::large; } else if( c.has_trait( trait_HUGE ) || c.has_trait( trait_HUGE_OK ) ) { - return MS_HUGE; + return creature_size::huge; } - return MS_MEDIUM; + return creature_size::medium; } void Character::mutation_effect( const trait_id &mut ) { - if( mut == "GLASSJAW" ) { + if( mut == trait_GLASSJAW ) { recalc_hp(); } else if( mut == trait_STR_ALPHA ) { @@ -320,7 +322,7 @@ void Character::mutation_effect( const trait_id &mut ) void Character::mutation_loss_effect( const trait_id &mut ) { - if( mut == "GLASSJAW" ) { + if( mut == trait_GLASSJAW ) { recalc_hp(); } else if( mut == trait_STR_ALPHA ) { @@ -474,7 +476,7 @@ void Character::activate_mutation( const trait_id &mut ) // Fatigue can go to Exhausted. if( ( mdata.hunger && get_kcal_percent() < 0.5f ) || ( mdata.thirst && get_thirst() >= 260 ) || - ( mdata.fatigue && get_fatigue() >= EXHAUSTED ) ) { + ( mdata.fatigue && get_fatigue() >= fatigue_levels::EXHAUSTED ) ) { // Insufficient Foo to *maintain* operation is handled in player::suffer add_msg_if_player( m_warning, _( "You feel like using your %s would kill you!" ), mdata.name() ); @@ -515,7 +517,7 @@ void Character::activate_mutation( const trait_id &mut ) if( mut == trait_WEB_WEAVER ) { g->m.add_field( pos(), fd_web, 1 ); add_msg_if_player( _( "You start spinning web with your spinnerets!" ) ); - } else if( mut == "BURROW" ) { + } else if( mut == trait_BURROW ) { tdata.powered = false; item burrowing_item( itype_id( "fake_burrowing" ) ); invoke_item( &burrowing_item ); @@ -615,16 +617,15 @@ void Character::activate_mutation( const trait_id &mut ) tdata.powered = false; } return; - } else if( !mdata.spawn_item.empty() ) { + } else if( !mdata.spawn_item.is_empty() ) { item tmpitem( mdata.spawn_item ); i_add_or_drop( tmpitem ); add_msg_if_player( mdata.spawn_item_message() ); tdata.powered = false; return; - } else if( !mdata.ranged_mutation.empty() ) { + } else if( !mdata.ranged_mutation.is_empty() ) { add_msg_if_player( mdata.ranged_mutation_message() ); - g->refresh_all(); - avatar_action::fire_ranged_mutation( g->u, g->m, item( mdata.ranged_mutation ) ); + avatar_action::fire_ranged_mutation( g->u, item( mdata.ranged_mutation ) ); tdata.powered = false; return; } diff --git a/src/mutation.h b/src/mutation.h index 3c109220013d9..1f07a4f86bc98 100644 --- a/src/mutation.h +++ b/src/mutation.h @@ -28,8 +28,6 @@ class player; struct dream; template struct enum_traits; template class string_id; - -using itype_id = std::string; class JsonArray; extern std::vector dreams; @@ -62,8 +60,8 @@ struct mut_attack { /** Need none of those to qualify for this attack */ std::set blocker_mutations; - /** If not num_bp, this body part needs to be uncovered for the attack to proc */ - body_part bp = num_bp; + /** If not empty, this body part needs to be uncovered for the attack to proc */ + bodypart_str_id bp; /** Chance to proc is one_in( chance - dex - unarmed ) */ int chance = 0; @@ -177,7 +175,7 @@ struct mutation_branch { cata::optional scent_typeid; /**Map of glowing body parts and their glow intensity*/ - std::map lumination; + std::map lumination; /**Rate at which bmi above character_weight_category::normal increases the character max_hp*/ float fat_to_max_hp = 0.0f; @@ -202,6 +200,8 @@ struct mutation_branch { float fatigue_regen_modifier = 0.0f; // Modifier for the rate at which stamina regenerates. float stamina_regen_modifier = 0.0f; + // the modifier for obtaining an item from a container as a handling penalty + float obtain_cost_multiplier = 1.0f; // Adjusts sight range on the overmap. Positives make it farther, negatives make it closer. float overmap_sight = 0.0f; @@ -284,16 +284,16 @@ struct mutation_branch { std::vector additions; // Mutations that add to this one std::vector category; // Mutation Categories std::set flags; // Mutation flags - std::map protection; // Mutation wet effects - std::map encumbrance_always; // Mutation encumbrance that always applies + std::map protection; // Mutation wet effects + std::map encumbrance_always; // Mutation encumbrance that always applies // Mutation encumbrance that applies when covered with unfitting item - std::map encumbrance_covered; + std::map encumbrance_covered; // Body parts that now need OVERSIZE gear - std::set restricts_gear; + std::set restricts_gear; // Mutation stat mods /** Key pair is */ std::unordered_map, int, cata::tuple_hash> mods; - std::map armor; + std::map armor; std::vector initial_ma_styles; // Martial art styles that can be chosen upon character generation private: @@ -314,7 +314,7 @@ struct mutation_branch { /** * Returns damage resistance on a given body part granted by this mutation. */ - const resistances &damage_resistance( body_part bp ) const; + const resistances &damage_resistance( const bodypart_id &bp ) const; /** * Shortcut for getting the name of a (translated) mutation, same as * @code get( mutation_id ).name @endcode @@ -512,7 +512,7 @@ struct enum_traits { static constexpr mutagen_technique last = mutagen_technique::num_mutagen_techniques; }; -enum class mutagen_rejection { +enum class mutagen_rejection : int { accepted, rejected, destroyed diff --git a/src/mutation_data.cpp b/src/mutation_data.cpp index 438d33f5127e3..06121e80d208e 100644 --- a/src/mutation_data.cpp +++ b/src/mutation_data.cpp @@ -210,7 +210,7 @@ static mut_attack load_mutation_attack( const JsonObject &jo ) jo.read( "hardcoded_effect", ret.hardcoded_effect ); if( jo.has_string( "body_part" ) ) { - ret.bp = get_body_part_token( jo.get_string( "body_part" ) ); + ret.bp = bodypart_str_id( jo.get_string( "body_part" ) ); } jo.read( "chance", ret.chance ); @@ -260,7 +260,7 @@ void mutation_branch::load_trait( const JsonObject &jo, const std::string &src ) trait_factory.load( jo, src ); } -mut_transform::mut_transform() : active( false ), moves( 0 ) {} +mut_transform::mut_transform() = default; bool mut_transform::load( const JsonObject &jsobj, const std::string &member ) { @@ -368,6 +368,7 @@ void mutation_branch::load( const JsonObject &jo, const std::string & ) optional( jo, was_loaded, "fatigue_modifier", fatigue_modifier, 0.0f ); optional( jo, was_loaded, "fatigue_regen_modifier", fatigue_regen_modifier, 0.0f ); optional( jo, was_loaded, "stamina_regen_modifier", stamina_regen_modifier, 0.0f ); + optional( jo, was_loaded, "obtain_cost_multiplier", obtain_cost_multiplier, 1.0f ); optional( jo, was_loaded, "overmap_sight", overmap_sight, 0.0f ); optional( jo, was_loaded, "overmap_multiplier", overmap_multiplier, 1.0f ); optional( jo, was_loaded, "map_memory_capacity_multiplier", map_memory_capacity_multiplier, 1.0f ); @@ -447,7 +448,7 @@ void mutation_branch::load( const JsonObject &jo, const std::string & ) } for( JsonArray ja : jo.get_array( "lumination" ) ) { - const body_part bp = get_body_part_token( ja.next_string() ); + const bodypart_str_id bp = bodypart_str_id( ja.next_string() ); lumination.emplace( bp, static_cast( ja.next_float() ) ); } @@ -458,46 +459,34 @@ void mutation_branch::load( const JsonObject &jo, const std::string & ) } for( JsonObject wp : jo.get_array( "wet_protection" ) ) { - std::string part_id = wp.get_string( "part" ); int ignored = wp.get_int( "ignored", 0 ); int neutral = wp.get_int( "neutral", 0 ); int good = wp.get_int( "good", 0 ); tripoint protect = tripoint( ignored, neutral, good ); - protection[get_body_part_token( part_id )] = protect; + protection[bodypart_str_id( wp.get_string( "part" ) )] = protect; } for( JsonArray ea : jo.get_array( "encumbrance_always" ) ) { - std::string part_id = ea.next_string(); - int enc = ea.next_int(); - encumbrance_always[get_body_part_token( part_id )] = enc; + const bodypart_str_id bp = bodypart_str_id( ea.next_string() ); + const int enc = ea.next_int(); + encumbrance_always[bp] = enc; } for( JsonArray ec : jo.get_array( "encumbrance_covered" ) ) { - std::string part_id = ec.next_string(); + const bodypart_str_id bp = bodypart_str_id( ec.next_string() ); int enc = ec.next_int(); - encumbrance_covered[get_body_part_token( part_id )] = enc; + encumbrance_covered[bp] = enc; } for( const std::string line : jo.get_array( "restricts_gear" ) ) { - restricts_gear.insert( get_body_part_token( line ) ); + restricts_gear.insert( bodypart_str_id( line ) ); } for( JsonObject ao : jo.get_array( "armor" ) ) { - auto parts = ao.get_tags( "parts" ); - std::set bps; - for( const std::string &part_string : parts ) { - if( part_string == "ALL" ) { - // Shorthand, since many mutations protect whole body - bps.insert( all_body_parts.begin(), all_body_parts.end() ); - } else { - bps.insert( get_body_part_token( part_string ) ); - } - } - - resistances res = load_resistances_instance( ao ); + const resistances res = load_resistances_instance( ao ); - for( body_part bp : bps ) { - armor[ bp ] = res; + for( const std::string &part_string : ao.get_tags( "parts" ) ) { + armor[bodypart_str_id( part_string )] = res; } } diff --git a/src/mutation_ui.cpp b/src/mutation_ui.cpp index 959aede87a1a8..8f5173d2621fa 100644 --- a/src/mutation_ui.cpp +++ b/src/mutation_ui.cpp @@ -34,7 +34,7 @@ const auto shortcut_desc = []( const std::string &comment, const std::string &ke return string_format( comment, string_format( "[%s]", keys ) ); }; -enum class mutation_menu_mode { +enum class mutation_menu_mode : int { activating, examining, reassigning, @@ -65,7 +65,7 @@ static void show_mutations_titlebar( const catacurses::window &window, desc += shortcut_desc( _( "%s to change keybindings." ), ctxt.get_desc( "HELP_KEYBINDINGS" ) ); // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( window, point( 1, 0 ), getmaxx( window ) - 1, c_white, desc ); - wrefresh( window ); + wnoutrefresh( window ); } void player::power_mutations() @@ -260,13 +260,13 @@ void player::power_mutations() draw_scrollbar( wBio, scroll_position, list_height, mutations_count, point( 0, list_start_y ), c_white, true ); - wrefresh( wBio ); + wnoutrefresh( wBio ); show_mutations_titlebar( w_title, menu_mode, ctxt ); if( menu_mode == mutation_menu_mode::examining && examine_id.has_value() ) { werase( w_description ); fold_and_print( w_description, point_zero, WIDTH - 2, c_light_blue, examine_id.value()->desc() ); - wrefresh( w_description ); + wnoutrefresh( w_description ); } } ); @@ -277,7 +277,7 @@ void player::power_mutations() bool handled = false; const std::string action = ctxt.handle_input(); const input_event evt = ctxt.get_raw_input(); - if( evt.type == CATA_INPUT_KEYBOARD && !evt.sequence.empty() ) { + if( evt.type == input_event_t::keyboard && !evt.sequence.empty() ) { const int ch = evt.get_first_input(); const trait_id mut_id = trait_by_invlet( ch ); if( !mut_id.is_null() ) { @@ -295,7 +295,7 @@ void player::power_mutations() while( !pop_exit ) { const query_popup::result ret = pop.query(); bool pop_handled = false; - if( ret.evt.type == CATA_INPUT_KEYBOARD && !ret.evt.sequence.empty() ) { + if( ret.evt.type == input_event_t::keyboard && !ret.evt.sequence.empty() ) { const int newch = ret.evt.get_first_input(); if( mutation_chars.valid( newch ) ) { const trait_id other_mut_id = trait_by_invlet( newch ); @@ -312,7 +312,7 @@ void player::power_mutations() if( ret.action == "QUIT" ) { pop_exit = true; } else if( ret.action != "HELP_KEYBINDINGS" && - ret.evt.type == CATA_INPUT_KEYBOARD ) { + ret.evt.type == input_event_t::keyboard ) { popup( _( "Invalid mutation letter. Only those characters are valid:\n\n%s" ), mutation_chars.get_allowed_chars() ); } diff --git a/src/ncurses_def.cpp b/src/ncurses_def.cpp index 0338176f17b93..930c16d91f2df 100644 --- a/src/ncurses_def.cpp +++ b/src/ncurses_def.cpp @@ -39,6 +39,11 @@ catacurses::window catacurses::newwin( const int nlines, const int ncols, const } ); } +void catacurses::wnoutrefresh( const window &win ) +{ + return curses_check_result( ::wnoutrefresh( win.get<::WINDOW>() ), OK, "wnoutrefresh" ); +} + void catacurses::wrefresh( const window &win ) { return curses_check_result( ::wrefresh( win.get<::WINDOW>() ), OK, "wrefresh" ); @@ -111,6 +116,16 @@ void catacurses::refresh() return curses_check_result( ::refresh(), OK, "refresh" ); } +void refresh_display() +{ + catacurses::doupdate(); +} + +void catacurses::doupdate() +{ + return curses_check_result( ::doupdate(), OK, "doupdate" ); +} + void catacurses::clear() { return curses_check_result( ::clear(), OK, "clear" ); @@ -238,6 +253,8 @@ input_event input_manager::get_input_event() input_event rval; do { previously_pressed_key = 0; + // flush any output + catacurses::doupdate(); key = getch(); if( key != ERR ) { int newch; @@ -256,9 +273,9 @@ input_event input_manager::get_input_event() rval = input_event(); if( key == ERR ) { if( input_timeout > 0 ) { - rval.type = CATA_INPUT_TIMEOUT; + rval.type = input_event_t::timeout; } else { - rval.type = CATA_INPUT_ERROR; + rval.type = input_event_t::error; } // ncurses mouse handling } else if( key == KEY_RESIZE ) { @@ -266,7 +283,7 @@ input_event input_manager::get_input_event() } else if( key == KEY_MOUSE ) { MEVENT event; if( getmouse( &event ) == OK ) { - rval.type = CATA_INPUT_MOUSE; + rval.type = input_event_t::mouse; rval.mouse_pos = point( event.x, event.y ); if( event.bstate & BUTTON1_CLICKED ) { rval.add_input( MOUSE_BUTTON_LEFT ); @@ -279,17 +296,17 @@ input_event input_manager::get_input_event() set_timeout( input_timeout ); } } else { - rval.type = CATA_INPUT_ERROR; + rval.type = input_event_t::error; } } else { - rval.type = CATA_INPUT_ERROR; + rval.type = input_event_t::error; } } else { if( key == 127 ) { // == Unicode DELETE previously_pressed_key = KEY_BACKSPACE; - return input_event( KEY_BACKSPACE, CATA_INPUT_KEYBOARD ); + return input_event( KEY_BACKSPACE, input_event_t::keyboard ); } - rval.type = CATA_INPUT_KEYBOARD; + rval.type = input_event_t::keyboard; rval.text.append( 1, static_cast( key ) ); // Read the UTF-8 sequence (if any) if( key < 127 ) { @@ -307,7 +324,7 @@ input_event input_manager::get_input_event() // Other control character, etc. - no text at all, return an event // without the text property previously_pressed_key = key; - return input_event( key, CATA_INPUT_KEYBOARD ); + return input_event( key, input_event_t::keyboard ); } // Now we have loaded an UTF-8 sequence (possibly several bytes) // but we should only return *one* key, so return the code point of it. @@ -316,7 +333,7 @@ input_event input_manager::get_input_event() // Invalid UTF-8 sequence, this should never happen, what now? // Maybe return any error instead? previously_pressed_key = key; - return input_event( key, CATA_INPUT_KEYBOARD ); + return input_event( key, input_event_t::keyboard ); } previously_pressed_key = cp; // for compatibility only add the first byte, not the code point @@ -331,7 +348,7 @@ input_event input_manager::get_input_event() void input_manager::set_timeout( const int delay ) { timeout( delay ); - // Use this to determine when curses should return a CATA_INPUT_TIMEOUT event. + // Use this to determine when curses should return a input_event_t::timeout event. input_timeout = delay; } diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index d2dcb425f88b6..fc05a757fb91a 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -43,6 +43,7 @@ #include "path_info.h" #include "pimpl.h" #include "pldata.h" +#include "popup.h" #include "profession.h" #include "recipe.h" #include "recipe_dictionary.h" @@ -94,9 +95,11 @@ static const trait_id trait_XXXL( "XXXL" ); #define COL_HEADER c_white // Captions, like "Profession items" #define COL_NOTE_MINOR c_light_gray // Just regular note -#define HIGH_STAT 12 // The point after which stats cost double +// The point after which stats cost double +static constexpr int HIGH_STAT = 12; -#define NEWCHAR_TAB_MAX 6 // The ID of the rightmost tab +// The ID of the rightmost tab +static constexpr int NEWCHAR_TAB_MAX = 6 ; static int skill_increment_cost( const Character &u, const skill_id &skill ); @@ -185,6 +188,7 @@ void avatar::randomize( const bool random_scenario, points_left &points, bool pl init_age = rng( 16, 55 ); // if adjusting min and max height from 145 and 200, make sure to see set_description() init_height = rng( 145, 200 ); + randomize_blood(); bool cities_enabled = world_generator->active_world->WORLD_OPTIONS["CITY_SIZE"].getValue() != "0"; if( random_scenario ) { std::vector scenarios; @@ -399,7 +403,7 @@ void avatar::add_profession_items() bool avatar::create( character_type type, const std::string &tempname ) { - weapon = item( "null", 0 ); + weapon = item(); prof = profession::generic(); g->scen = scenario::generic(); @@ -533,7 +537,7 @@ bool avatar::create( character_type type, const std::string &tempname ) scent = 300; } - weapon = item( "null", 0 ); + weapon = item(); // Grab the skills from the profession, if there are any // We want to do this before the recipes @@ -560,7 +564,7 @@ bool avatar::create( character_type type, const std::string &tempname ) learn_recipe( &r ); } } - for( mtype_id elem : prof->pets() ) { + for( const mtype_id &elem : prof->pets() ) { starting_pets.push_back( elem ); } @@ -576,9 +580,8 @@ bool avatar::create( character_type type, const std::string &tempname ) migrate_items_to_storage( true ); std::vector prof_addictions = prof->addictions(); - for( std::vector::const_iterator iter = prof_addictions.begin(); - iter != prof_addictions.end(); ++iter ) { - addictions.push_back( *iter ); + for( const addiction &iter : prof_addictions ) { + addictions.push_back( iter ); } for( auto &bio : prof->CBMs() ) { @@ -736,8 +739,8 @@ tab_direction set_points( avatar &, points_left &points ) fold_and_print( w_description, point_zero, getmaxx( w_description ), COL_SKILL_USED, std::get<2>( cur_opt ) ); - wrefresh( w ); - wrefresh( w_description ); + wnoutrefresh( w ); + wnoutrefresh( w_description ); } ); do { @@ -851,7 +854,7 @@ tab_direction set_stats( avatar &u, points_left &points ) // NOLINTNEXTLINE(cata-use-named-point-constants) mvwprintz( w_description, point( 0, 1 ), COL_STAT_NEUTRAL, _( "Carry weight: %.1f %s" ), convert_weight( u.weight_capacity() ), weight_units() ); - mvwprintz( w_description, point( 0, 2 ), COL_STAT_BONUS, _( "Melee damage bonus: %.1f" ), + mvwprintz( w_description, point( 0, 2 ), COL_STAT_BONUS, _( "Bash damage bonus: %.1f" ), u.bonus_damage( false ) ); fold_and_print( w_description, point( 0, 4 ), getmaxx( w_description ) - 1, COL_STAT_NEUTRAL, _( "Strength also makes you more resistant to many diseases and poisons, and makes actions which require brute force more effective." ) ); @@ -915,8 +918,8 @@ tab_direction set_stats( avatar &u, points_left &points ) break; } - wrefresh( w ); - wrefresh( w_description ); + wnoutrefresh( w ); + wnoutrefresh( w_description ); } ); do { @@ -1000,17 +1003,6 @@ tab_direction set_traits( avatar &u, points_left &points ) { const int max_trait_points = get_option( "MAX_TRAIT_POINTS" ); - ui_adaptor ui; - catacurses::window w; - catacurses::window w_description; - const auto init_windows = [&]( ui_adaptor & ui ) { - w = catacurses::newwin( TERMY, TERMX, point_zero ); - w_description = catacurses::newwin( 3, TERMX - 2, point( 1, TERMY - 4 ) ); - ui.position_from_window( w ); - }; - init_windows( ui ); - ui.on_screen_resize( init_windows ); - // Track how many good / bad POINTS we have; cap both at MAX_TRAIT_POINTS int num_good = 0; int num_bad = 0; @@ -1023,21 +1015,34 @@ tab_direction set_traits( avatar &u, points_left &points ) continue; } + const std::set scentraits = g->scen->get_locked_traits(); + const bool is_scentrait = std::find( scentraits.begin(), scentraits.end(), + traits_iter.id ) != scentraits.end(); + // Always show profession locked traits, regardless of if they are forbidden const std::vector proftraits = u.prof->get_locked_traits(); const bool is_proftrait = std::find( proftraits.begin(), proftraits.end(), traits_iter.id ) != proftraits.end(); + // We show all starting traits, even if we can't pick them, to keep the interface consistent. if( traits_iter.startingtrait || g->scen->traitquery( traits_iter.id ) || is_proftrait ) { if( traits_iter.points > 0 ) { vStartingTraits[0].push_back( traits_iter.id ); + if( is_proftrait || is_scentrait ) { + continue; + } + if( u.has_trait( traits_iter.id ) ) { num_good += traits_iter.points; } } else if( traits_iter.points < 0 ) { vStartingTraits[1].push_back( traits_iter.id ); + if( is_proftrait || is_scentrait ) { + continue; + } + if( u.has_trait( traits_iter.id ) ) { num_bad += traits_iter.points; } @@ -1053,9 +1058,7 @@ tab_direction set_traits( avatar &u, points_left &points ) std::sort( vStartingTrait.begin(), vStartingTrait.end(), trait_display_sort ); } - const size_t iContentHeight = TERMY - 9; int iCurWorkingPage = 0; - int iStartPos[3] = { 0, 0, 0 }; int iCurrentLine[3] = { 0, 0, 0 }; size_t traits_size[3]; @@ -1063,7 +1066,28 @@ tab_direction set_traits( avatar &u, points_left &points ) traits_size[i] = vStartingTraits[i].size(); } - const size_t page_width = std::min( ( TERMX - 4 ) / used_pages, 38 ); + size_t iContentHeight; + size_t page_width; + + ui_adaptor ui; + catacurses::window w; + catacurses::window w_description; + const auto init_windows = [&]( ui_adaptor & ui ) { + w = catacurses::newwin( TERMY, TERMX, point_zero ); + w_description = catacurses::newwin( 3, TERMX - 2, point( 1, TERMY - 4 ) ); + ui.position_from_window( w ); + page_width = std::min( ( TERMX - 4 ) / used_pages, 38 ); + iContentHeight = TERMY - 9; + + for( int i = 0; i < 3; i++ ) { + // Shift start position to avoid iterating beyond end + int total = static_cast( traits_size[i] ); + int heigth = static_cast( iContentHeight ); + iStartPos[i] = std::min( iStartPos[i], std::max( 0, total - heigth ) ); + } + }; + init_windows( ui ); + ui.on_screen_resize( init_windows ); input_context ctxt( "NEW_CHAR_TRAITS" ); ctxt.register_cardinal(); @@ -1074,6 +1098,9 @@ tab_direction set_traits( avatar &u, points_left &points ) ctxt.register_action( "QUIT" ); ui.on_redraw( [&]( const ui_adaptor & ) { + werase( w ); + werase( w_description ); + draw_character_tabs( w, _( "TRAITS" ) ); draw_points( w, points ); @@ -1090,10 +1117,7 @@ tab_direction set_traits( avatar &u, points_left &points ) full_string_length = remaining_points_length + 3; } - // Clear the bottom of the screen. - werase( w_description ); - - for( int iCurrentPage = 0; iCurrentPage < 3; iCurrentPage++ ) { //Good/Bad + for( int iCurrentPage = 0; iCurrentPage < 3; iCurrentPage++ ) { nc_color col_on_act, col_off_act, col_on_pas, col_off_pas, hi_on, hi_off, col_tr; switch( iCurrentPage ) { case 0: @@ -1124,29 +1148,22 @@ tab_direction set_traits( avatar &u, points_left &points ) hi_off = hilite( col_off_act ); break; } - int start_y = iStartPos[iCurrentPage]; - int cur_line_y = iCurrentLine[iCurrentPage]; - calcStartPos( start_y, cur_line_y, iContentHeight, - traits_size[iCurrentPage] ); - //Draw Traits - for( int i = start_y; i < static_cast( traits_size[iCurrentPage] ); i++ ) { - if( i < start_y || - i >= start_y + static_cast( std::min( traits_size[iCurrentPage], iContentHeight ) ) ) { - continue; - } - auto &cur_trait = vStartingTraits[iCurrentPage][i]; - auto &mdata = cur_trait.obj(); - if( cur_line_y == i && iCurrentPage == iCurWorkingPage ) { - // Clear line beginning from end of (remaining points + positive/negative traits) text to end of line (minus border) - mvwprintz( w, point( full_string_length, 3 ), c_light_gray, - std::string( getmaxx( w ) - full_string_length - 1, ' ' ) ); + int &start = iStartPos[iCurrentPage]; + int current = iCurrentLine[iCurrentPage]; + calcStartPos( start, current, iContentHeight, traits_size[iCurrentPage] ); + int end = start + static_cast( std::min( traits_size[iCurrentPage], iContentHeight ) ); + + for( int i = start; i < end; i++ ) { + const trait_id &cur_trait = vStartingTraits[iCurrentPage][i]; + const mutation_branch &mdata = cur_trait.obj(); + if( current == i && iCurrentPage == iCurWorkingPage ) { int points = mdata.points; bool negativeTrait = points < 0; if( negativeTrait ) { points *= -1; } - mvwprintz( w, point( full_string_length + 3, 3 ), col_tr, + mvwprintz( w, point( full_string_length + 3, 3 ), col_tr, ngettext( "%s %s %d point", "%s %s %d points", points ), mdata.name(), negativeTrait ? _( "earns" ) : _( "costs" ), @@ -1159,7 +1176,7 @@ tab_direction set_traits( avatar &u, points_left &points ) nc_color cLine = col_off_pas; if( iCurWorkingPage == iCurrentPage ) { cLine = col_off_act; - if( cur_line_y == i ) { + if( current == i ) { cLine = hi_off; if( u.has_conflicting_trait( cur_trait ) ) { cLine = hilite( c_dark_gray ); @@ -1181,21 +1198,18 @@ tab_direction set_traits( avatar &u, points_left &points ) cLine = c_light_gray; } - // Clear the line - int cur_line_y = 5 + i - start_y; + int cur_line_y = 5 + i - start; int cur_line_x = 2 + iCurrentPage * page_width; - mvwprintz( w, point( cur_line_x, cur_line_y ), c_light_gray, std::string( page_width, ' ' ) ); mvwprintz( w, point( cur_line_x, cur_line_y ), cLine, utf8_truncate( mdata.name(), page_width - 2 ) ); } - for( int i = 0; i < used_pages; i++ ) { - draw_scrollbar( w, iCurrentLine[i], iContentHeight, traits_size[i], point( page_width * i, 5 ) ); - } + draw_scrollbar( w, iCurrentLine[iCurrentPage], iContentHeight, traits_size[iCurrentPage], + point( page_width * iCurrentPage, 5 ) ); } - wrefresh( w ); - wrefresh( w_description ); + wnoutrefresh( w ); + wnoutrefresh( w_description ); } ); do { @@ -1539,7 +1553,7 @@ tab_direction set_profession( avatar &u, points_left &points, // Profession pet if( !sorted_profs[cur_id]->pets().empty() ) { buffer += colorize( _( "Pets:" ), c_light_blue ) + "\n"; - for( auto elem : sorted_profs[cur_id]->pets() ) { + for( const auto &elem : sorted_profs[cur_id]->pets() ) { monster mon( elem ); buffer += mon.get_name() + "\n"; } @@ -1579,11 +1593,11 @@ tab_direction set_profession( avatar &u, points_left &points, draw_scrollbar( w, cur_id, iContentHeight, profs_length, point( 0, 5 ) ); - wrefresh( w ); - wrefresh( w_description ); - wrefresh( w_items ); - wrefresh( w_genderswap ); - wrefresh( w_sorting ); + wnoutrefresh( w ); + wnoutrefresh( w_description ); + wnoutrefresh( w_items ); + wnoutrefresh( w_genderswap ); + wnoutrefresh( w_sorting ); } ); do { @@ -1859,8 +1873,8 @@ tab_direction set_skills( avatar &u, points_left &points ) draw_scrollbar( w, cur_pos, iContentHeight, num_skills, point( 0, 5 ) ); - wrefresh( w ); - wrefresh( w_description ); + wnoutrefresh( w ); + wnoutrefresh( w_description ); } ); do { @@ -2163,6 +2177,10 @@ tab_direction set_scenario( avatar &u, points_left &points, wprintz( w_flags, c_light_gray, _( "Various limb wounds" ) ); wprintz( w_flags, c_light_gray, ( "\n" ) ); } + if( sorted_scens[cur_id]->has_flag( "FUNGAL_INFECTION" ) ) { + wprintz( w_flags, c_light_gray, _( "Fungal infected player" ) ); + wprintz( w_flags, c_light_gray, ( "\n" ) ); + } if( get_option( "STARTING_NPC" ) == "scenario" && sorted_scens[cur_id]->has_flag( "LONE_START" ) ) { wprintz( w_flags, c_light_gray, _( "No starting NPC" ) ); @@ -2171,13 +2189,13 @@ tab_direction set_scenario( avatar &u, points_left &points, } draw_scrollbar( w, cur_id, iContentHeight, scens_length, point( 0, 5 ) ); - wrefresh( w ); - wrefresh( w_description ); - wrefresh( w_sorting ); - wrefresh( w_profession ); - wrefresh( w_location ); - wrefresh( w_vehicle ); - wrefresh( w_flags ); + wnoutrefresh( w ); + wnoutrefresh( w_description ); + wnoutrefresh( w_sorting ); + wnoutrefresh( w_profession ); + wnoutrefresh( w_location ); + wnoutrefresh( w_vehicle ); + wnoutrefresh( w_flags ); } ); do { @@ -2273,7 +2291,8 @@ namespace char_creation enum description_selector { NAME, HEIGHT, - AGE + AGE, + BLOOD }; static void draw_height( const catacurses::window &w_height, const avatar &you, @@ -2284,7 +2303,7 @@ static void draw_height( const catacurses::window &w_height, const avatar &you, unsigned height_pos = 1 + utf8_width( _( "Height:" ) ); mvwprintz( w_height, point( height_pos, 0 ), c_white, string_format( "%d cm", you.base_height() ) ); - wrefresh( w_height ); + wnoutrefresh( w_height ); } static void draw_age( const catacurses::window &w_age, const avatar &you, const bool highlight ) @@ -2293,7 +2312,17 @@ static void draw_age( const catacurses::window &w_age, const avatar &you, const mvwprintz( w_age, point_zero, highlight ? h_light_gray : c_light_gray, _( "Age:" ) ); unsigned age_pos = 1 + utf8_width( _( "Age:" ) ); mvwprintz( w_age, point( age_pos, 0 ), c_white, string_format( "%d", you.base_age() ) ); - wrefresh( w_age ); + wnoutrefresh( w_age ); +} + +static void draw_blood( const catacurses::window &w_blood, const avatar &you, const bool highlight ) +{ + werase( w_blood ); + mvwprintz( w_blood, point_zero, highlight ? h_light_gray : c_light_gray, _( "Blood type:" ) ); + unsigned blood_pos = 1 + utf8_width( _( "Blood type:" ) ); + mvwprintz( w_blood, point( blood_pos, 0 ), c_white, + io::enum_to_string( you.my_blood_type ) + ( you.blood_rh_factor ? "+" : "-" ) ); + wnoutrefresh( w_blood ); } } // namespace char_creation @@ -2301,9 +2330,6 @@ tab_direction set_description( avatar &you, const bool allow_reroll, points_left &points ) { static constexpr int RANDOM_START_LOC_ENTRY = INT_MIN; - const std::string RANDOM_START_LOC_TEXT_TEMPLATE = - _( "* Random location * (%d variants)" ); - const std::string START_LOC_TEXT_TEMPLATE = _( "%s (%d variants)" ); ui_adaptor ui; catacurses::window w; @@ -2319,6 +2345,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, catacurses::window w_guide; catacurses::window w_height; catacurses::window w_age; + catacurses::window w_blood; const auto init_windows = [&]( ui_adaptor & ui ) { w = catacurses::newwin( TERMY, TERMX, point_zero ); w_name = catacurses::newwin( 3, 42, point( 2, 5 ) ); @@ -2333,6 +2360,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, w_guide = catacurses::newwin( 6, TERMX - 3, point( 2, TERMY - 7 ) ); w_height = catacurses::newwin( 1, 20, point( 80, 5 ) ); w_age = catacurses::newwin( 1, 12, point( 80, 6 ) ); + w_blood = catacurses::newwin( 1, 20, point( 80, 7 ) ); ui.position_from_window( w ); }; init_windows( ui ); @@ -2359,15 +2387,19 @@ tab_direction set_description( avatar &you, const bool allow_reroll, uilist select_location; select_location.text = _( "Select a starting location." ); int offset = 1; - const std::string random_start_location_text = string_format( RANDOM_START_LOC_TEXT_TEMPLATE, - g->scen->start_location_targets_count() ); + const std::string random_start_location_text = string_format( ngettext( + "* Random location * (%d variant)", + "* Random location * (%d variants)", + g->scen->start_location_targets_count() ), g->scen->start_location_targets_count() ); uilist_entry entry_random_start_location( RANDOM_START_LOC_ENTRY, true, -1, random_start_location_text ); select_location.entries.emplace_back( entry_random_start_location ); for( const auto &loc : start_locations::get_all() ) { if( g->scen->allowed_start( loc.id ) ) { - uilist_entry entry( loc.id.get_cid().to_i(), true, -1, - string_format( START_LOC_TEXT_TEMPLATE, loc.name(), loc.targets_count() ) ); + uilist_entry entry( loc.id.get_cid().to_i(), true, -1, string_format( + ngettext( "%s (%d variant)", + "%s (%d variants)", + loc.targets_count() ), loc.name(), loc.targets_count() ) ); select_location.entries.emplace_back( entry ); @@ -2406,7 +2438,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, wputch( w, BORDER_COLOR, LINE_OXOX ); } } - wrefresh( w ); + wnoutrefresh( w ); wclear( w_stats ); wclear( w_traits ); @@ -2429,7 +2461,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, mvwprintz( w_stats, point( pos + 1, 2 ), c_light_gray, "%2d", you.dex_max ); mvwprintz( w_stats, point( pos + 1, 3 ), c_light_gray, "%2d", you.int_max ); mvwprintz( w_stats, point( pos + 1, 4 ), c_light_gray, "%2d", you.per_max ); - wrefresh( w_stats ); + wnoutrefresh( w_stats ); mvwprintz( w_traits, point_zero, COL_HEADER, _( "Traits: " ) ); std::vector current_traits = points.limit == points_left::TRANSFER ? you.get_mutations() : @@ -2444,7 +2476,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, current_trait->get_display_color(), current_trait->name() ); } } - wrefresh( w_traits ); + wnoutrefresh( w_traits ); mvwprintz( w_skills, point_zero, COL_HEADER, _( "Skills:" ) ); @@ -2483,8 +2515,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, if( !has_skills ) { mvwprintz( w_skills, point( utf8_width( _( "Skills:" ) ) + 1, 0 ), c_light_red, _( "None!" ) ); } - wrefresh( w_skills ); - + wnoutrefresh( w_skills ); fold_and_print( w_guide, point( 0, getmaxy( w_guide ) - 4 ), ( TERMX / 2 ), c_light_gray, _( "Press %s or %s " @@ -2518,7 +2549,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, _( "Press %s to save a template of this character." ), ctxt.get_desc( "SAVE_TEMPLATE" ) ); } - wrefresh( w_guide ); + wnoutrefresh( w_guide ); //We draw this stuff every loop because this is user-editable mvwprintz( w_name, point_zero, @@ -2537,7 +2568,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, _( "Press %s to edit.\nPress %s to randomize description." ), ctxt.get_desc( "CONFIRM" ), ctxt.get_desc( "RANDOMIZE_CHAR_DESCRIPTION" ) ); } - wrefresh( w_name ); + wnoutrefresh( w_name ); mvwprintz( w_gender, point_zero, c_light_gray, _( "Gender:" ) ); mvwprintz( w_gender, point( male_pos, 0 ), ( you.male ? c_light_cyan : c_light_gray ), @@ -2548,10 +2579,11 @@ tab_direction set_description( avatar &you, const bool allow_reroll, fold_and_print( w_gender, point( 0, 1 ), ( TERMX / 2 ), c_light_gray, _( "Press %s to switch gender" ), ctxt.get_desc( "CHANGE_GENDER" ) ); - wrefresh( w_gender ); + wnoutrefresh( w_gender ); char_creation::draw_age( w_age, you, current_selector == char_creation::AGE ); char_creation::draw_height( w_height, you, current_selector == char_creation::HEIGHT ); + char_creation::draw_blood( w_blood, you, current_selector == char_creation::BLOOD ); const std::string location_prompt = string_format( _( "Press %s to select location." ), @@ -2565,10 +2597,10 @@ tab_direction set_description( avatar &you, const bool allow_reroll, mvwprintz( w_location, point( utf8_width( _( "Starting location:" ) ) + 1, 0 ), you.random_start_location ? c_red : c_white, you.random_start_location ? remove_color_tags( random_start_location_text ) : - string_format( remove_color_tags( START_LOC_TEXT_TEMPLATE ), - you.start_location.obj().name(), - you.start_location.obj().targets_count() ) ); - wrefresh( w_location ); + string_format( ngettext( "%s (%d variant)", "%s (%d variants)", + you.start_location.obj().targets_count() ), + you.start_location.obj().name(), you.start_location.obj().targets_count() ) ); + wnoutrefresh( w_location ); werase( w_vehicle ); mvwprintz( w_vehicle, point_zero, c_light_gray, _( "Starting Vehicle: " ) ); @@ -2579,17 +2611,17 @@ tab_direction set_description( avatar &you, const bool allow_reroll, } else if( prof_veh ) { wprintz( w_vehicle, c_light_green, prof_veh->name ); } - wrefresh( w_vehicle ); + wnoutrefresh( w_vehicle ); werase( w_scenario ); mvwprintz( w_scenario, point_zero, COL_HEADER, _( "Scenario: " ) ); wprintz( w_scenario, c_light_gray, g->scen->gender_appropriate_name( you.male ) ); - wrefresh( w_scenario ); + wnoutrefresh( w_scenario ); werase( w_profession ); mvwprintz( w_profession, point_zero, COL_HEADER, _( "Profession: " ) ); wprintz( w_profession, c_light_gray, you.prof->gender_appropriate_name( you.male ) ); - wrefresh( w_profession ); + wnoutrefresh( w_profession ); } ); // do not switch IME mode now, but restore previous mode on return @@ -2644,13 +2676,16 @@ tab_direction set_description( avatar &you, const bool allow_reroll, current_selector = char_creation::AGE; break; case char_creation::AGE: + current_selector = char_creation::BLOOD; + break; + case char_creation::BLOOD: current_selector = char_creation::NAME; break; } } else if( action == "LEFT" ) { switch( current_selector ) { case char_creation::NAME: - current_selector = char_creation::AGE; + current_selector = char_creation::BLOOD; break; case char_creation::HEIGHT: current_selector = char_creation::NAME; @@ -2658,6 +2693,9 @@ tab_direction set_description( avatar &you, const bool allow_reroll, case char_creation::AGE: current_selector = char_creation::HEIGHT; break; + case char_creation::BLOOD: + current_selector = char_creation::AGE; + break; } } else if( action == "UP" ) { switch( current_selector ) { @@ -2671,6 +2709,19 @@ tab_direction set_description( avatar &you, const bool allow_reroll, you.mod_base_age( 1 ); } break; + case char_creation::BLOOD: + if( !you.blood_rh_factor ) { + you.blood_rh_factor = true; + break; + } + if( static_cast( static_cast( you.my_blood_type ) + 1 ) != blood_type::num_bt ) { + you.my_blood_type = static_cast( static_cast( you.my_blood_type ) + 1 ); + you.blood_rh_factor = false; + } else { + you.my_blood_type = static_cast( 0 ); + you.blood_rh_factor = false; + } + break; default: break; } @@ -2686,6 +2737,19 @@ tab_direction set_description( avatar &you, const bool allow_reroll, you.mod_base_age( -1 ); } break; + case char_creation::BLOOD: + if( you.blood_rh_factor ) { + you.blood_rh_factor = false; + break; + } + if( you.my_blood_type != static_cast( 0 ) ) { + you.my_blood_type = static_cast( static_cast( you.my_blood_type ) - 1 ); + you.blood_rh_factor = true; + } else { + you.my_blood_type = static_cast( static_cast( blood_type::num_bt ) - 1 ); + you.blood_rh_factor = true; + } + break; default: break; } @@ -2711,6 +2775,7 @@ tab_direction set_description( avatar &you, const bool allow_reroll, } you.set_base_age( rng( 16, 55 ) ); you.set_base_height( rng( 145, 200 ) ); + you.randomize_blood(); } else if( action == "CHANGE_GENDER" ) { you.male = !you.male; } else if( action == "CHOOSE_LOCATION" ) { @@ -2760,6 +2825,38 @@ tab_direction set_description( avatar &you, const bool allow_reroll, } break; } + case char_creation::BLOOD: { + popup.title( _( "Enter blood type (omit Rh):" ) ) + .text( io::enum_to_string( you.my_blood_type ) ) + .only_digits( false ); + std::string answer = popup.query_string(); + if( answer == "O" || answer == "o" || answer == "0" ) { + you.my_blood_type = blood_type::blood_O; + } else if( answer == "A" || answer == "a" ) { + you.my_blood_type = blood_type::blood_A; + } else if( answer == "B" || answer == "b" ) { + you.my_blood_type = blood_type::blood_B; + } else if( answer == "AB" || answer == "ab" ) { + you.my_blood_type = blood_type::blood_AB; + } else { + popup_getkey( "%s", _( "Invalid blood type." ) ); + break; + } + string_input_popup popup2; + popup2.title( _( "Enter Rh factor:" ) ) + .text( you.blood_rh_factor ? "+" : "-" ) + .only_digits( false ); + answer = popup2.query_string(); + if( answer == "+" || answer == "plus" || answer == "positive" ) { + you.blood_rh_factor = true; + } else if( answer == "-" || answer == "minus" || answer == "negative" ) { + you.blood_rh_factor = false; + } else { + popup_getkey( "%s", _( "Invalid blood type." ) ); + break; + } + break; + } } } else if( action == "QUIT" && query_yn( _( "Return to main menu?" ) ) ) { diff --git a/src/npc.cpp b/src/npc.cpp index 0846ad82080ca..89e31b7007266 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -53,6 +53,7 @@ #include "output.h" #include "overmap.h" #include "overmapbuffer.h" +#include "options.h" #include "pathfinding.h" #include "player_activity.h" #include "pldata.h" @@ -91,6 +92,8 @@ static const efftype_id effect_pkill3( "pkill3" ); static const efftype_id effect_ridden( "ridden" ); static const efftype_id effect_riding( "riding" ); +static const itype_id itype_UPS_off( "UPS_off" ); + static const skill_id skill_archery( "archery" ); static const skill_id skill_barter( "barter" ); static const skill_id skill_bashing( "bashing" ); @@ -166,7 +169,7 @@ npc::npc() } standard_npc::standard_npc( const std::string &name, const tripoint &pos, - const std::vector &clothing, + const std::vector &clothing, int sk_lvl, int s_str, int s_dex, int s_int, int s_per ) { this->name = name; @@ -190,7 +193,7 @@ standard_npc::standard_npc( const std::string &name, const tripoint &pos, } for( const auto &e : clothing ) { - wear_item( item( e ) ); + wear_item( item( e ), false ); } for( item &e : worn ) { @@ -592,23 +595,23 @@ void starting_inv( npc &who, const npc_class_id &type ) res.emplace_back( "lighter" ); // If wielding a gun, get some additional ammo for it if( who.weapon.is_gun() ) { - item ammo( who.weapon.ammo_default() ); - ammo = ammo.in_its_container(); - if( ammo.made_of( LIQUID ) ) { - item container( "bottle_plastic" ); - container.put_in( ammo, item_pocket::pocket_type::CONTAINER ); - ammo = container; - } - - // TODO: Move to npc_class - // NC_COWBOY and NC_BOUNTY_HUNTER get 5-15 whilst all others get 3-6 - int qty = 1 + ( type == NC_COWBOY || - type == NC_BOUNTY_HUNTER ); - qty = rng( qty, qty * 2 ); - - while( qty-- != 0 && who.can_pickVolume( ammo ) ) { - // TODO: give NPC a default magazine instead - res.push_back( ammo ); + item ammo; + if( !who.weapon.magazine_default().is_null() ) { + item mag( who.weapon.magazine_default() ); + mag.ammo_set( mag.ammo_default() ); + ammo = item( mag.ammo_default() ); + res.push_back( mag ); + } else if( !who.weapon.ammo_default().is_null() ) { + ammo = item( who.weapon.ammo_default() ); + // TODO: Move to npc_class + // NC_COWBOY and NC_BOUNTY_HUNTER get 5-15 whilst all others get 3-6 + int qty = 1 + ( type == NC_COWBOY || + type == NC_BOUNTY_HUNTER ); + qty = rng( qty, qty * 2 ); + + while( qty-- != 0 && who.can_stash( ammo ) ) { + res.push_back( ammo ); + } } } @@ -827,8 +830,19 @@ void npc::starting_weapon( const npc_class_id &type ) } if( weapon.is_gun() ) { - weapon.ammo_set( weapon.ammo_default() ); + if( !weapon.magazine_default().is_null() ) { + item mag( weapon.magazine_default() ); + mag.ammo_set( mag.ammo_default() ); + weapon.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } else if( !weapon.ammo_default().is_null() ) { + weapon.ammo_set( weapon.ammo_default() ); + } else { + debugmsg( "tried setting ammo for %s which has no magazine or ammo", weapon.typeId().c_str() ); + } } + + g->events().send( getID(), weapon.typeId() ); + weapon.set_owner( get_faction()->id ); } @@ -940,9 +954,7 @@ void npc::finish_read( item &book ) max_ex = std::max( min_ex, max_ex ); skill_level.readBook( min_ex, max_ex, reading->level ); - - std::string skill_name = skill.obj().name(); - + const std::string skill_name = skill.obj().name(); if( skill_level != originalSkillLevel ) { g->events().send( getID(), skill, skill_level.level() ); if( display_messages ) { @@ -954,7 +966,7 @@ void npc::finish_read( item &book ) } else { continuous = true; if( display_messages ) { - add_msg( m_info, _( "%s learns a little about %s!" ), disp_name(), skill.obj().name() ); + add_msg( m_info, _( "%s learns a little about %s!" ), disp_name(), skill_name ); } } @@ -1048,7 +1060,8 @@ bool npc::wear_if_wanted( const item &it, std::string &reason ) for( int i = 0; i < num_hp_parts; i++ ) { hp_part hpp = static_cast( i ); body_part bp = player::hp_to_bp( hpp ); - if( is_limb_broken( hpp ) && !has_effect( effect_mending, bp ) && it.covers( bp ) ) { + if( is_limb_broken( hpp ) && !has_effect( effect_mending, bp ) && + it.covers( convert_bp( bp ).id() ) ) { reason = _( "Thanks, I'll wear that now." ); return !!wear_item( it, false ); } @@ -1072,7 +1085,7 @@ bool npc::wear_if_wanted( const item &it, std::string &reason ) } // Otherwise, maybe we should take off one or more items and replace them bool took_off = false; - for( const body_part bp : all_body_parts ) { + for( const bodypart_id bp : get_all_body_parts() ) { if( !it.covers( bp ) ) { continue; } @@ -1080,7 +1093,8 @@ bool npc::wear_if_wanted( const item &it, std::string &reason ) auto iter = std::find_if( worn.begin(), worn.end(), [bp]( const item & armor ) { return armor.covers( bp ); } ); - if( iter != worn.end() && !( is_limb_broken( bp_to_hp( bp ) ) && iter->has_flag( "SPLINT" ) ) ) { + if( iter != worn.end() && !( is_limb_broken( bp_to_hp( bp->token ) ) && + iter->has_flag( "SPLINT" ) ) ) { took_off = takeoff( *iter ); break; } @@ -1144,6 +1158,7 @@ bool npc::wield( item &it ) if( it.is_null() ) { weapon = item(); + g->events().send( getID(), weapon.typeId() ); return true; } @@ -1172,6 +1187,8 @@ bool npc::wield( item &it ) weapon = it; } + g->events().send( getID(), weapon.typeId() ); + if( g->u.sees( pos() ) ) { add_msg_if_npc( m_info, _( " wields a %s." ), weapon.tname() ); } @@ -1368,8 +1385,8 @@ float npc::vehicle_danger( int radius ) const int ax = wrapped_veh.v->global_pos3().x; int ay = wrapped_veh.v->global_pos3().y; - int bx = int( ax + std::cos( facing * M_PI / 180.0 ) * radius ); - int by = int( ay + std::sin( facing * M_PI / 180.0 ) * radius ); + int bx = static_cast( ax + std::cos( facing * M_PI / 180.0 ) * radius ); + int by = static_cast( ay + std::sin( facing * M_PI / 180.0 ) * radius ); // fake size /* This will almost certainly give the wrong size/location on customized @@ -1470,8 +1487,8 @@ void npc::decide_needs() if( weapon.is_gun() ) { int ups_drain = weapon.get_gun_ups_drain(); if( ups_drain > 0 ) { - int ups_charges = charges_of( "UPS_off", ups_drain ) + - charges_of( "UPS_off", ups_drain ); + int ups_charges = charges_of( itype_UPS_off, ups_drain ) + + charges_of( itype_UPS_off, ups_drain ); needrank[need_ammo] = static_cast( ups_charges ) / ups_drain; } else { needrank[need_ammo] = get_ammo( ammotype( *weapon.type->gun->ammo.begin() ) ).size(); @@ -1664,7 +1681,7 @@ void npc::shop_restock() int shop_value = 75000; if( my_fac ) { shop_value = my_fac->wealth * 0.0075; - if( mission == NPC_MISSION_SHOPKEEP && !my_fac->currency.empty() ) { + if( mission == NPC_MISSION_SHOPKEEP && !my_fac->currency.is_empty() ) { item my_currency( my_fac->currency ); if( !my_currency.is_null() ) { my_currency.set_owner( *this ); @@ -1690,6 +1707,14 @@ void npc::shop_restock() } } + // This removes some items according to item spawn scaling factor, + const float spawn_rate = get_option( "ITEM_SPAWNRATE" ); + if( spawn_rate < 1 ) { + ret.remove_if( [spawn_rate]( auto & ) { + return !( rng_float( 0, 1 ) < spawn_rate ); + } ); + } + has_new_items = true; inv.clear(); inv.push_back( ret ); @@ -1721,7 +1746,8 @@ int npc::value( const item &it ) const int npc::value( const item &it, int market_price ) const { - if( it.is_dangerous() || ( it.has_flag( "BOMB" ) && it.active ) || it.made_of( LIQUID ) ) { + if( it.is_dangerous() || ( it.has_flag( "BOMB" ) && it.active ) || + it.made_of( phase_id::LIQUID ) ) { // NPCs won't be interested in buying active explosives or spilled liquids return -1000; } @@ -2120,7 +2146,7 @@ void npc::npc_dismount() } remove_effect( effect_riding ); if( mounted_creature->has_flag( MF_RIDEABLE_MECH ) && - !mounted_creature->type->mech_weapon.empty() ) { + !mounted_creature->type->mech_weapon.is_empty() ) { remove_item( weapon ); } mounted_creature->remove_effect( effect_ridden ); @@ -2217,31 +2243,45 @@ int npc::print_info( const catacurses::window &w, int line, int vLines, int colu // is a blank line. w is 13 characters tall, and we can't use the last one // because it's a border as well; so we have lines 6 through 11. // w is also 48 characters wide - 2 characters for border = 46 characters for us - mvwprintz( w, point( column, line++ ), c_white, _( "NPC: " ) ); - wprintz( w, basic_symbol_color(), name ); - if( sees( g->u ) ) { - mvwprintz( w, point( column, line++ ), c_yellow, _( "Aware of your presence!" ) ); + // Print health bar and NPC name on the first line. + std::pair bar = get_hp_bar( hp_percentage(), 100 ); + mvwprintz( w, point( column, line ), bar.second, bar.first ); + const int bar_max_width = 5; + const int bar_width = utf8_width( bar.first ); + for( int i = 0; i < bar_max_width - bar_width; ++i ) { + mvwprintz( w, point( column + 4 - i, line ), c_white, "." ); } + trim_and_print( w, point( column + bar.first.length() + 1, line ), iWidth, basic_symbol_color(), + name ); + + // Hostility indicator in the second line. + Attitude att = attitude_to( g->u ); + const std::pair res = Creature::get_attitude_ui_data( att ); + mvwprintz( w, point( column, ++line ), res.second, res.first.translated() ); + + // Awareness indicator on the third line. + std::string senses_str = sees( g->u ) ? _( "Aware of your presence" ) : + _( "Unaware of you" ); + mvwprintz( w, point( column, ++line ), sees( g->u ) ? c_yellow : c_green, senses_str ); + // Print what item the NPC is holding if any on the fourth line. if( is_armed() ) { - trim_and_print( w, point( column, line++ ), iWidth, c_red, _( "Wielding a %s" ), weapon.tname() ); + mvwprintz( w, point( column, ++line ), c_light_gray, _( "Wielding: " ) ); + trim_and_print( w, point( column + utf8_width( _( "Wielding: " ) ), line ), iWidth, c_red, + weapon.tname() ); } - const auto enumerate_print = [ w, last_line, column, iWidth, &line ]( const std::string & str_in, - nc_color color ) { - const std::vector folded = foldstring( str_in, iWidth ); - for( auto it = folded.begin(); it < folded.end() && line < last_line; ++it, ++line ) { - trim_and_print( w, point( column, line ), iWidth, color, *it ); - } - }; - + // Worn gear list on following lines. const std::string worn_str = enumerate_as_string( worn.begin(), worn.end(), []( const item & it ) { return it.tname(); } ); if( !worn_str.empty() ) { - const std::string wearing = _( "Wearing: " ) + worn_str; - enumerate_print( wearing, c_light_blue ); + std::vector worn_lines = foldstring( _( "Wearing: " ) + worn_str, iWidth ); + int worn_numlines = worn_lines.size(); + for( int i = 0; i < worn_numlines && line < last_line; i++ ) { + trim_and_print( w, point( column, ++line ), iWidth, c_light_gray, worn_lines[i] ); + } } // as of now, visibility of mutations is between 0 and 10 @@ -2259,10 +2299,13 @@ int npc::print_info( const catacurses::window &w, int line, int vLines, int colu visibility_cap = std::round( dist * dist / 20.0 / ( per - 1 ) ); } - const auto trait_str = visible_mutations( visibility_cap ); + const std::string trait_str = visible_mutations( visibility_cap ); if( !trait_str.empty() ) { - const std::string mutations = _( "Traits: " ) + trait_str; - enumerate_print( mutations, c_green ); + std::vector trait_lines = foldstring( _( "Traits: " ) + trait_str, iWidth ); + int trait_numlines = trait_lines.size(); + for( int i = 0; i < trait_numlines && line < last_line; i++ ) { + trim_and_print( w, point( column, ++line ), iWidth, c_light_gray, trait_lines[i] ); + } } return line; @@ -2740,7 +2783,7 @@ bool npc::dispose_item( item_location &&obj, const std::string & ) if( e.can_holster( *obj ) ) { auto ptr = dynamic_cast( e.type->get_use( "holster" )->get_actor_ptr() ); opts.emplace_back( dispose_option { - item_store_cost( *obj, e, false, e.contents.obtain_cost( *obj ) ), + item_store_cost( *obj, e, false, obj.obtain_cost( *this ) ), [this, ptr, &e, &obj]{ ptr->store( *this, e, *obj ); } } ); } diff --git a/src/npc.h b/src/npc.h index 5dc090f390169..e76e14c545b53 100644 --- a/src/npc.h +++ b/src/npc.h @@ -67,7 +67,7 @@ using drop_location = std::pair; using drop_locations = std::list; void parse_tags( std::string &phrase, const Character &u, const Character &me, - const itype_id &item_type = "null" ); + const itype_id &item_type = itype_id::NULL_ID() ); /* * Talk: Trust midlow->high, fear low->mid, need doesn't matter @@ -168,7 +168,7 @@ class job_data const std::pair &b ) { return a.second > b.second; } ); - for( std::pair elem : pairs ) { + for( const std::pair &elem : pairs ) { ret.push_back( elem.first ); } return ret; @@ -346,7 +346,7 @@ const std::unordered_map cbm_reserve_strs = { { } }; -enum class ally_rule { +enum class ally_rule : int { DEFAULT = 0, use_guns = 1, use_grenades = 2, @@ -956,7 +956,7 @@ class npc : public player bool took_painkiller() const; void use_painkiller(); void activate_item( int item_index ); - bool has_identified( const std::string & ) const override { + bool has_identified( const itype_id & ) const override { return true; } bool has_artifact_with( const art_effect_passive ) const override { @@ -1045,7 +1045,7 @@ class npc : public player // wrapper for complain_about that warns about a specific type of threat, with // 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 = "" ); + const std::string &name = "", int range = -1, const tripoint &danger_pos = tripoint_zero ); // Finds something to complain about and complains. Returns if complained. bool complain(); @@ -1147,7 +1147,7 @@ class npc : public player // Same as if the player pressed '.' void move_pause(); - void set_movement_mode( character_movemode mode ) override; + void set_movement_mode( const move_mode_id &mode ) override; const pathfinding_settings &get_pathfinding_settings() const override; const pathfinding_settings &get_pathfinding_settings( bool no_bashing ) const; @@ -1162,7 +1162,8 @@ class npc : public player // Move to, or grab, our targeted item void pick_up_item(); // Drop wgt and vol, including all items with less value than min_val - void drop_items( units::mass drop_weight, units::volume drop_volume, int min_val = 0 ); + void drop_items( const units::mass &drop_weight, const units::volume &drop_volume, + int min_val = 0 ); /** 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 ); @@ -1403,7 +1404,7 @@ class standard_npc : public npc public: standard_npc( const std::string &name = "", const tripoint &pos = tripoint( HALF_MAPSIZE_X, HALF_MAPSIZE_Y, 0 ), - const std::vector &clothing = {}, + const std::vector &clothing = {}, int sk_lvl = 4, int s_str = 8, int s_dex = 8, int s_int = 8, int s_per = 8 ); }; @@ -1416,7 +1417,7 @@ class npc_template npc guy; translation name_unique; translation name_suffix; - enum class gender { + enum class gender : int { random, male, female diff --git a/src/npc_class.cpp b/src/npc_class.cpp index b734bd0142f9a..298e3d1dac86a 100644 --- a/src/npc_class.cpp +++ b/src/npc_class.cpp @@ -40,25 +40,25 @@ static const std::array legacy_ids = {{ } }; -npc_class_id NC_NONE( "NC_NONE" ); -npc_class_id NC_EVAC_SHOPKEEP( "NC_EVAC_SHOPKEEP" ); -npc_class_id NC_SHOPKEEP( "NC_SHOPKEEP" ); -npc_class_id NC_HACKER( "NC_HACKER" ); -npc_class_id NC_CYBORG( "NC_CYBORG" ); -npc_class_id NC_DOCTOR( "NC_DOCTOR" ); -npc_class_id NC_TRADER( "NC_TRADER" ); -npc_class_id NC_NINJA( "NC_NINJA" ); -npc_class_id NC_COWBOY( "NC_COWBOY" ); -npc_class_id NC_SCIENTIST( "NC_SCIENTIST" ); -npc_class_id NC_BOUNTY_HUNTER( "NC_BOUNTY_HUNTER" ); -npc_class_id NC_THUG( "NC_THUG" ); -npc_class_id NC_SCAVENGER( "NC_SCAVENGER" ); -npc_class_id NC_ARSONIST( "NC_ARSONIST" ); -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" ); +const npc_class_id NC_NONE( "NC_NONE" ); +const npc_class_id NC_EVAC_SHOPKEEP( "NC_EVAC_SHOPKEEP" ); +const npc_class_id NC_SHOPKEEP( "NC_SHOPKEEP" ); +const npc_class_id NC_HACKER( "NC_HACKER" ); +const npc_class_id NC_CYBORG( "NC_CYBORG" ); +const npc_class_id NC_DOCTOR( "NC_DOCTOR" ); +const npc_class_id NC_TRADER( "NC_TRADER" ); +const npc_class_id NC_NINJA( "NC_NINJA" ); +const npc_class_id NC_COWBOY( "NC_COWBOY" ); +const npc_class_id NC_SCIENTIST( "NC_SCIENTIST" ); +const npc_class_id NC_BOUNTY_HUNTER( "NC_BOUNTY_HUNTER" ); +const npc_class_id NC_THUG( "NC_THUG" ); +const npc_class_id NC_SCAVENGER( "NC_SCAVENGER" ); +const npc_class_id NC_ARSONIST( "NC_ARSONIST" ); +const npc_class_id NC_HUNTER( "NC_HUNTER" ); +const npc_class_id NC_SOLDIER( "NC_SOLDIER" ); +const npc_class_id NC_BARTENDER( "NC_BARTENDER" ); +const npc_class_id NC_JUNK_SHOPKEEP( "NC_JUNK_SHOPKEEP" ); +const npc_class_id NC_HALLU( "NC_HALLU" ); generic_factory npc_class_factory( "npc_class" ); @@ -96,7 +96,7 @@ void apply_all_to_unassigned( T &skills ) { auto iter = std::find_if( skills.begin(), skills.end(), []( decltype( *begin( skills ) ) &pr ) { - return pr.first == "ALL"; + return pr.first.str() == "ALL"; } ); if( iter != skills.end() ) { @@ -209,7 +209,6 @@ static distribution load_distribution( const JsonObject &jo ) } jo.throw_error( "Invalid distribution" ); - return distribution(); } static distribution load_distribution( const JsonObject &jo, const std::string &name ) @@ -228,7 +227,6 @@ static distribution load_distribution( const JsonObject &jo, const std::string & } jo.throw_error( "Invalid distribution type", name ); - return distribution(); } void npc_class::load( const JsonObject &jo, const std::string & ) @@ -399,7 +397,7 @@ distribution::distribution( const distribution &d ) generator_function = d.generator_function; } -distribution::distribution( std::function gen ) +distribution::distribution( const std::function &gen ) { generator_function = gen; } diff --git a/src/npc_class.h b/src/npc_class.h index c2011da2a03c4..1584d75a8c1c0 100644 --- a/src/npc_class.h +++ b/src/npc_class.h @@ -30,7 +30,7 @@ class distribution { private: std::function generator_function; - distribution( std::function gen ); + distribution( const std::function &gen ); public: distribution(); @@ -112,24 +112,24 @@ class npc_class }; // TODO: Get rid of that -extern npc_class_id NC_NONE; -extern npc_class_id NC_EVAC_SHOPKEEP; -extern npc_class_id NC_SHOPKEEP; -extern npc_class_id NC_HACKER; -extern npc_class_id NC_CYBORG; -extern npc_class_id NC_DOCTOR; -extern npc_class_id NC_TRADER; -extern npc_class_id NC_NINJA; -extern npc_class_id NC_COWBOY; -extern npc_class_id NC_SCIENTIST; -extern npc_class_id NC_BOUNTY_HUNTER; -extern npc_class_id NC_THUG; -extern npc_class_id NC_SCAVENGER; -extern npc_class_id NC_ARSONIST; -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; +extern const npc_class_id NC_NONE; +extern const npc_class_id NC_EVAC_SHOPKEEP; +extern const npc_class_id NC_SHOPKEEP; +extern const npc_class_id NC_HACKER; +extern const npc_class_id NC_CYBORG; +extern const npc_class_id NC_DOCTOR; +extern const npc_class_id NC_TRADER; +extern const npc_class_id NC_NINJA; +extern const npc_class_id NC_COWBOY; +extern const npc_class_id NC_SCIENTIST; +extern const npc_class_id NC_BOUNTY_HUNTER; +extern const npc_class_id NC_THUG; +extern const npc_class_id NC_SCAVENGER; +extern const npc_class_id NC_ARSONIST; +extern const npc_class_id NC_HUNTER; +extern const npc_class_id NC_SOLDIER; +extern const npc_class_id NC_BARTENDER; +extern const npc_class_id NC_JUNK_SHOPKEEP; +extern const npc_class_id NC_HALLU; #endif // CATA_SRC_NPC_CLASS_H diff --git a/src/npc_favor.h b/src/npc_favor.h index 5b953ba6ee3eb..3a38ed8f3e444 100644 --- a/src/npc_favor.h +++ b/src/npc_favor.h @@ -6,7 +6,6 @@ #include "type_id.h" -using itype_id = std::string; class JsonIn; class JsonOut; @@ -28,7 +27,7 @@ struct npc_favor { npc_favor() { type = FAVOR_NULL; value = 0; - item_id = "null"; + item_id = itype_id::NULL_ID(); skill = skill_id::NULL_ID(); } diff --git a/src/npcmove.cpp b/src/npcmove.cpp index 609656814c43b..271c5a09f7871 100644 --- a/src/npcmove.cpp +++ b/src/npcmove.cpp @@ -36,6 +36,7 @@ #include "gun_mode.h" #include "item.h" #include "item_contents.h" +#include "item_factory.h" #include "itype.h" #include "iuse.h" #include "iuse_actor.h" @@ -69,6 +70,7 @@ #include "vpart_position.h" #include "vpart_range.h" +static const activity_id ACT_OPERATION( "ACT_OPERATION" ); static const activity_id ACT_PULP( "ACT_PULP" ); static const ammotype ammo_reactor_slurry( "reactor_slurry" ); @@ -87,7 +89,7 @@ static const bionic_id bio_heatsink( "bio_heatsink" ); static const bionic_id bio_hydraulics( "bio_hydraulics" ); static const bionic_id bio_laser( "bio_laser" ); static const bionic_id bio_leukocyte( "bio_leukocyte" ); -static const bionic_id bio_lightning( "bio_chain_lightning" ); +static const bionic_id bio_chain_lightning( "bio_chain_lightning" ); static const bionic_id bio_nanobots( "bio_nanobots" ); static const bionic_id bio_ods( "bio_ods" ); static const bionic_id bio_painkiller( "bio_painkiller" ); @@ -111,11 +113,22 @@ static const efftype_id effect_lying_down( "lying_down" ); static const efftype_id effect_no_sight( "no_sight" ); static const efftype_id effect_npc_fire_bad( "npc_fire_bad" ); static const efftype_id effect_npc_flee_player( "npc_flee_player" ); -static const efftype_id effect_npc_player_looking( "npc_player_still_looking" ); +static const efftype_id effect_npc_player_still_looking( "npc_player_still_looking" ); static const efftype_id effect_npc_run_away( "npc_run_away" ); static const efftype_id effect_onfire( "onfire" ); static const efftype_id effect_stunned( "stunned" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_chem_ethanol( "chem_ethanol" ); +static const itype_id itype_chem_methanol( "chem_methanol" ); +static const itype_id itype_denat_alcohol( "denat_alcohol" ); +static const itype_id itype_inhaler( "inhaler" ); +static const itype_id itype_lsd( "lsd" ); +static const itype_id itype_smoxygen_tank( "smoxygen_tank" ); +static const itype_id itype_thorazine( "thorazine" ); +static const itype_id itype_oxygen_tank( "oxygen_tank" ); +static const itype_id itype_UPS( "UPS" ); + static constexpr float NPC_DANGER_VERY_LOW = 5.0f; static constexpr float NPC_DANGER_MAX = 150.0f; static constexpr float MAX_FLOAT = 5000000000.0f; @@ -168,7 +181,7 @@ const std::vector health_cbms = { { // lightning, laser, blade, claws in order of use priority const std::vector weapon_cbms = { { - bio_lightning, + bio_chain_lightning, bio_laser, bio_blade, bio_claws @@ -444,10 +457,11 @@ void npc::assess_danger() } float critter_threat = evaluate_enemy( critter ); // warn and consider the odds for distant enemies + int dist = rl_dist( pos(), critter.pos() ); if( ( is_enemy() || !critter.friendly ) ) { assessment += critter_threat; if( critter_threat > ( 8.0f + personality.bravery + rng( 0, 5 ) ) ) { - warn_about( "monster", 10_minutes, critter.type->nname() ); + warn_about( "monster", 10_minutes, critter.type->nname(), dist, critter.pos() ); } } // ignore targets behind glass even if we can see them @@ -455,7 +469,6 @@ void npc::assess_danger() continue; } - int dist = rl_dist( pos(), critter.pos() ); float scaled_distance = std::max( 1.0f, dist / critter.speed_rating() ); float hp_percent = 1.0f - static_cast( critter.get_hp() ) / critter.get_hp_max(); float critter_danger = std::max( critter_threat * ( hp_percent * 0.5f + 0.5f ), @@ -500,11 +513,11 @@ void npc::assess_danger() } const auto handle_hostile = [&]( const player & foe, float foe_threat, const std::string & bogey, const std::string & warning ) { + int dist = rl_dist( pos(), foe.pos() ); if( foe_threat > ( 8.0f + personality.bravery + rng( 0, 5 ) ) ) { - warn_about( "monster", 10_minutes, bogey ); + warn_about( "monster", 10_minutes, bogey, dist, foe.pos() ); } - int dist = rl_dist( pos(), foe.pos() ); int scaled_distance = std::max( 1, ( 100 * dist ) / foe.get_speed() ); ai_cache.total_danger += foe_threat / scaled_distance; // ignore targets behind glass even if we can see them @@ -656,7 +669,7 @@ void npc::regen_ai_cache() const mission_goal &mgoal = miss->get_type().goal; if( ( mgoal == MGOAL_FIND_ITEM || mgoal == MGOAL_FIND_ANY_ITEM || mgoal == MGOAL_FIND_ITEM_GROUP ) && - has_effect( effect_npc_player_looking ) ) { + has_effect( effect_npc_player_still_looking ) ) { continue; } if( global_omt_location() != g->u.global_omt_location() ) { @@ -682,7 +695,7 @@ void npc::move() regen_ai_cache(); adjust_power_cbms(); // NPCs under operation should just stay still - if( activity.id() == "ACT_OPERATION" ) { + if( activity.id() == ACT_OPERATION ) { execute_action( npc_player_activity ); return; } @@ -743,9 +756,9 @@ void npc::move() action = method_of_fleeing(); } else if( has_effect( effect_npc_run_away ) ) { action = method_of_fleeing(); - } else if( has_effect( effect_asthma ) && ( has_charges( "inhaler", 1 ) || - has_charges( "oxygen_tank", 1 ) || - has_charges( "smoxygen_tank", 1 ) ) ) { + } else if( has_effect( effect_asthma ) && ( has_charges( itype_inhaler, 1 ) || + has_charges( itype_oxygen_tank, 1 ) || + has_charges( itype_smoxygen_tank, 1 ) ) ) { action = npc_heal; } else if( target != nullptr && ai_cache.danger > 0 ) { action = method_of_attack(); @@ -1298,7 +1311,7 @@ npc_action npc::method_of_attack() // if there's enough of a threat to be here, power up the combat CBMs activate_combat_cbms(); - int ups_charges = charges_of( "UPS" ); + int ups_charges = charges_of( itype_UPS ); // get any suitable modes excluding melee, any forbidden to NPCs and those without ammo // if we require a silent weapon inappropriate modes are also removed @@ -1428,7 +1441,16 @@ static bool wants_to_reload( const npc &who, const item &it ) } const int remaining = it.ammo_remaining(); - return remaining < required || remaining < it.ammo_capacity(); + // return early just in case there is no ammo + if( remaining < required ) { + return true; + } + + if( !it.ammo_data() || !it.ammo_data()->ammo ) { + return false; + } + + return remaining < it.ammo_capacity( it.ammo_data()->ammo->type ); } static bool wants_to_reload_with( const item &weap, const item &ammo ) @@ -1614,9 +1636,11 @@ bool npc::consume_cbm_items( const std::function &filter ) if( filtered_items.empty() ) { return false; } - int old_moves = moves; + item_location loc = item_location( *this, filtered_items.front() ); - return consume( loc ) && old_moves != moves; + const time_duration &consume_time = get_consume_time( *loc ); + moves -= to_moves( consume_time ); + return consume( loc ); } bool npc::recharge_cbm() @@ -1648,12 +1672,15 @@ bool npc::recharge_cbm() return true; } else { const std::vector fuel_op = bid->fuel_opts; - const bool need_alcohol = std::find( fuel_op.begin(), fuel_op.end(), - "chem_ethanol" ) != fuel_op.end() || - std::find( fuel_op.begin(), fuel_op.end(), "chem_methanol" ) != fuel_op.end() || - std::find( fuel_op.begin(), fuel_op.end(), "denat_alcohol" ) != fuel_op.end(); - - if( std::find( fuel_op.begin(), fuel_op.end(), "battery" ) != fuel_op.end() ) { + const bool need_alcohol = + std::find( fuel_op.begin(), fuel_op.end(), itype_chem_ethanol ) != + fuel_op.end() || + std::find( fuel_op.begin(), fuel_op.end(), itype_chem_methanol ) != + fuel_op.end() || + std::find( fuel_op.begin(), fuel_op.end(), itype_denat_alcohol ) != + fuel_op.end(); + + if( std::find( fuel_op.begin(), fuel_op.end(), itype_battery ) != fuel_op.end() ) { complain_about( "need_batteries", 3_hours, "", false ); } else if( need_alcohol ) { complain_about( "need_booze", 3_hours, "", false ); @@ -1845,10 +1872,10 @@ npc_action npc::address_needs( float danger ) const auto could_sleep = [&]() { if( danger <= 0.01 ) { - if( get_fatigue() >= TIRED ) { + if( get_fatigue() >= fatigue_levels::TIRED ) { return true; } else if( is_walking_with() && g->u.in_sleep_state() && - get_fatigue() > ( TIRED / 2 ) ) { + get_fatigue() > ( fatigue_levels::TIRED / 2 ) ) { return true; } } @@ -1862,7 +1889,7 @@ npc_action npc::address_needs( float danger ) return npc_undecided; } - if( rules.has_flag( ally_rule::allow_sleep ) || get_fatigue() > MASSIVE_FATIGUE ) { + if( rules.has_flag( ally_rule::allow_sleep ) || get_fatigue() > fatigue_levels::MASSIVE_FATIGUE ) { return npc_sleep; } else if( g->u.in_sleep_state() ) { // TODO: "Guard me while I sleep" command @@ -2070,7 +2097,8 @@ bool npc::wont_hit_friend( const tripoint &tar, const item &it, bool throwing ) bool npc::enough_time_to_reload( const item &gun ) const { int rltime = item_reload_cost( gun, item( gun.ammo_default() ), - gun.ammo_capacity() ); + gun.ammo_capacity( + item_controller->find_template( gun.ammo_default() )->ammo->type ) ); const float turns_til_reloaded = static_cast( rltime ) / get_speed(); const Creature *target = current_target(); @@ -2716,8 +2744,8 @@ void npc::see_item_say_smth( const itype_id &object, const std::string &smth ) void npc::find_item() { if( is_hallucination() ) { - see_item_say_smth( "thorazine", "" ); - see_item_say_smth( "lsd", "" ); + see_item_say_smth( itype_thorazine, "" ); + see_item_say_smth( itype_lsd, "" ); return; } @@ -2749,7 +2777,7 @@ void npc::find_item() const auto consider_item = [&wanted, &best_value, whitelisting, volume_allowed, weight_allowed, this] ( const item & it, const tripoint & p ) { - if( it.made_of_from_type( LIQUID ) ) { + if( it.made_of_from_type( phase_id::LIQUID ) ) { // Don't even consider liquids. return; } @@ -3001,7 +3029,7 @@ std::list npc_pickup_from_stack( npc &who, T &items ) for( auto iter = items.begin(); iter != items.end(); ) { const item &it = *iter; - if( it.made_of_from_type( LIQUID ) ) { + if( it.made_of_from_type( phase_id::LIQUID ) ) { iter++; continue; } @@ -3058,7 +3086,8 @@ struct ratio_index { }; /* As of October 2019, this is buggy, do not use!! */ -void npc::drop_items( units::mass drop_weight, units::volume drop_volume, int min_val ) +void npc::drop_items( const units::mass &drop_weight, const units::volume &drop_volume, + int min_val ) { /* Remove this when someone debugs it back to functionality */ return; @@ -3326,7 +3355,7 @@ bool npc::wield_better_weapon() item *best = &weapon; double best_value = -100.0; - const int ups_charges = charges_of( "UPS" ); + const int ups_charges = charges_of( itype_UPS ); const auto compare_weapon = [this, &best, &best_value, ups_charges, can_use_gun, use_silent]( const item & it ) { @@ -3374,12 +3403,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->type->get_id(), + add_msg( m_debug, "Wielded %s is best at %.1f, not switching", best->type->get_id().str(), best_value ); return false; } - add_msg( m_debug, "Wielding %s at value %.1f", best->type->get_id(), best_value ); + add_msg( m_debug, "Wielding %s at value %.1f", best->type->get_id().str(), best_value ); wield( *best ); return true; @@ -3619,13 +3648,13 @@ void npc::heal_self() if( has_effect( effect_asthma ) ) { item &treatment = null_item_reference(); std::string iusage = "OXYGEN_BOTTLE"; - if( has_charges( "inhaler", 1 ) ) { - treatment = inv.find_item( inv.position_by_type( "inhaler" ) ); + if( has_charges( itype_inhaler, 1 ) ) { + treatment = inv.find_item( inv.position_by_type( itype_inhaler ) ); iusage = "INHALER"; - } else if( has_charges( "oxygen_tank", 1 ) ) { - treatment = inv.find_item( inv.position_by_type( "oxygen_tank" ) ); - } else if( has_charges( "smoxygen_tank", 1 ) ) { - treatment = inv.find_item( inv.position_by_type( "smoxygen_tank" ) ); + } else if( has_charges( itype_oxygen_tank, 1 ) ) { + treatment = inv.find_item( inv.position_by_type( itype_oxygen_tank ) ); + } else if( has_charges( itype_smoxygen_tank, 1 ) ) { + treatment = inv.find_item( inv.position_by_type( itype_smoxygen_tank ) ); } if( !treatment.is_null() ) { treatment.type->invoke( *this, treatment, pos(), iusage ); @@ -3664,8 +3693,9 @@ void npc::use_painkiller() add_msg( _( "%1$s takes some %2$s." ), disp_name(), it->tname() ); } item_location loc = item_location( *this, it ); + const time_duration &consume_time = get_consume_time( *loc ); + moves -= to_moves( consume_time ); consume( loc ); - moves = 0; } } @@ -3775,6 +3805,7 @@ bool npc::consume_food_from_camp() } basecamp *bcp = *potential_bc; if( get_thirst() > 40 && bcp->has_water() ) { + complain_about( "camp_water_thanks", 1_hours, "", false ); set_thirst( 0 ); return true; } @@ -3782,11 +3813,13 @@ bool npc::consume_food_from_camp() int camp_kcals = std::min( std::max( 0, 19 * get_healthy_kcal() / 20 - get_stored_kcal() - stomach.get_calories() ), yours->food_supply ); if( camp_kcals > 0 ) { + complain_about( "camp_food_thanks", 1_hours, "", false ); mod_hunger( -camp_kcals ); mod_stored_kcal( camp_kcals ); yours->food_supply -= camp_kcals; return true; } + complain_about( "camp_larder_empty", 1_hours, "( consume_time ); + bool consumed = consume( loc ); if( !consumed ) { debugmsg( "%s failed to consume %s", name, i_at( index ).tname() ); } @@ -3913,7 +3947,6 @@ void npc::look_for_player( const player &sought ) complain_about( "look_for_player", 5_minutes, "", false ); update_path( sought.pos() ); move_to_next(); - return; // The part below is not implemented properly /* if( sees( sought ) ) { @@ -4069,9 +4102,6 @@ void npc::set_omt_destination() temp_types.push_back( temp_pair ); } find_params.search_range = 75; - find_params.min_distance = 0; - find_params.must_see = false; - find_params.cant_see = false; find_params.types = temp_types; find_params.existing_only = false; goal = overmap_buffer.find_closest( surface_omt_loc, find_params ); @@ -4287,7 +4317,21 @@ static body_part bp_affected( npc &who, const efftype_id &effect_type ) return ret; } -void npc::warn_about( const std::string &type, const time_duration &d, const std::string &name ) +static std::string distance_string( int range ) +{ + if( range < 6 ) { + return ""; + } else if( range < 11 ) { + return ""; + } else if( range < 26 ) { + return ""; + } else { + return ""; + } +} + +void npc::warn_about( const std::string &type, const time_duration &d, const std::string &name, + int range, const tripoint &danger_pos ) { std::string snip; sounds::sound_t spriority = sounds::sound_t::alert; @@ -4327,9 +4371,16 @@ void npc::warn_about( const std::string &type, const time_duration &d, const std return; } const std::string warning_name = "warning_" + type + name; - const std::string speech = name.empty() ? snip : - string_format( _( "%s %s" ), snip, name ); - complain_about( warning_name, d, speech, is_enemy(), spriority ); + if( name.empty() ) { + complain_about( warning_name, d, snip, is_enemy(), spriority ); + } else { + const std::string range_str = range < 1 ? "" : + string_format( _( " %s, %s" ), + direction_name( direction_from( pos(), danger_pos ) ), + distance_string( range ) ); + const std::string speech = string_format( _( "%s %s%s" ), snip, name, range_str ); + complain_about( warning_name, d, speech, is_enemy(), spriority ); + } } bool npc::complain_about( const std::string &issue, const time_duration &dur, @@ -4380,8 +4431,8 @@ bool npc::complain() // When infected, complain every (4-intensity) hours // At intensity 3, ignore player wanting us to shut up if( has_effect( effect_infected ) ) { - body_part bp = bp_affected( *this, effect_infected ); - const auto &eff = get_effect( effect_infected, bp ); + const bodypart_id &bp = convert_bp( bp_affected( *this, effect_infected ) ).id(); + const auto &eff = get_effect( effect_infected, bp->token ); int intensity = eff.get_intensity(); const std::string speech = string_format( _( "My %s wound is infected…" ), body_part_name( bp ) ); @@ -4394,7 +4445,7 @@ bool npc::complain() // When bitten, complain every hour, but respect restrictions if( has_effect( effect_bite ) ) { - body_part bp = bp_affected( *this, effect_bite ); + const bodypart_id &bp = convert_bp( bp_affected( *this, effect_bite ) ); const std::string speech = string_format( _( "The bite wound on my %s looks bad." ), body_part_name( bp ) ); if( complain_about( bite_string, 1_hours, speech ) ) { @@ -4404,8 +4455,9 @@ bool npc::complain() // When tired, complain every 30 minutes // If massively tired, ignore restrictions - if( get_fatigue() > TIRED && complain_about( fatigue_string, 30_minutes, _( "" ), - get_fatigue() > MASSIVE_FATIGUE - 100 ) ) { + if( get_fatigue() > fatigue_levels::TIRED && + complain_about( fatigue_string, 30_minutes, _( "" ), + get_fatigue() > fatigue_levels::MASSIVE_FATIGUE - 100 ) ) { return true; } @@ -4436,7 +4488,7 @@ bool npc::complain() //Bleeding every 5 minutes if( has_effect( effect_bleed ) ) { - body_part bp = bp_affected( *this, effect_bleed ); + const bodypart_id &bp = convert_bp( bp_affected( *this, effect_bleed ) ); std::string speech = string_format( _( "My %s is bleeding!" ), body_part_name( bp ) ); if( complain_about( bleed_string, 5_minutes, speech ) ) { return true; @@ -4461,7 +4513,7 @@ void npc::do_reload( const item &it ) item_location &usable_ammo = reload_opt.ammo; int qty = std::max( 1, std::min( usable_ammo->charges, - it.ammo_capacity() - it.ammo_remaining() ) ); + it.ammo_capacity( usable_ammo->ammo_data()->ammo->type ) - it.ammo_remaining() ) ); int reload_time = item_reload_cost( it, *usable_ammo, qty ); // TODO: Consider printing this info to player too const std::string ammo_name = usable_ammo->tname(); @@ -4476,7 +4528,7 @@ void npc::do_reload( const item &it ) if( g->u.sees( *this ) ) { add_msg( _( "%1$s reloads their %2$s." ), name, it.tname() ); - sfx::play_variant_sound( "reload", it.typeId(), sfx::get_heard_volume( pos() ), + sfx::play_variant_sound( "reload", it.typeId().str(), sfx::get_heard_volume( pos() ), sfx::get_heard_angle( pos() ) ); } @@ -4500,7 +4552,7 @@ bool npc::adjust_worn() const auto covers_broken = [this]( const item & it, side s ) { const auto covered = it.get_covered_body_parts( s ); for( size_t i = 0; i < num_hp_parts; i++ ) { - if( hp_cur[ i ] <= 0 && covered.test( hp_to_bp( static_cast( i ) ) ) ) { + if( hp_cur[ i ] <= 0 && covered.test( convert_bp( hp_to_bp( static_cast( i ) ) ) ) ) { return true; } } @@ -4524,7 +4576,7 @@ bool npc::adjust_worn() return false; } -void npc::set_movement_mode( character_movemode new_mode ) +void npc::set_movement_mode( const move_mode_id &new_mode ) { move_mode = new_mode; } diff --git a/src/npctalk.cpp b/src/npctalk.cpp index e2448f095800d..f6dc8e82dbf34 100644 --- a/src/npctalk.cpp +++ b/src/npctalk.cpp @@ -92,12 +92,12 @@ static const efftype_id effect_pacified( "pacified" ); static const efftype_id effect_pet( "pet" ); static const efftype_id effect_riding( "riding" ); static const efftype_id effect_sleep( "sleep" ); -static const efftype_id effect_under_op( "under_operation" ); +static const efftype_id effect_under_operation( "under_operation" ); static const itype_id fuel_type_animal( "animal" ); -static const zone_type_id zone_type_npc_investigate_only( "NPC_INVESTIGATE_ONLY" ); -static const zone_type_id zone_type_npc_no_investigate( "NPC_NO_INVESTIGATE" ); +static const zone_type_id zone_type_NPC_INVESTIGATE_ONLY( "NPC_INVESTIGATE_ONLY" ); +static const zone_type_id zone_type_NPC_NO_INVESTIGATE( "NPC_NO_INVESTIGATE" ); static const skill_id skill_speech( "speech" ); @@ -112,7 +112,7 @@ static const trait_id trait_PROF_FOODP( "PROF_FOODP" ); static std::map json_talk_topics; // Every OWED_VAL that the NPC owes you counts as +1 towards convincing -#define OWED_VAL 1000 +static constexpr int OWED_VAL = 1000; #define dbg(x) DebugLog((x),D_GAME) << __FILE__ << ":" << __LINE__ << ": " @@ -279,7 +279,6 @@ static void npc_temp_orders_menu( const std::vector &npc_list ) output_string += std::string( "\n" ) + _( "Other followers might have different temporary orders." ); } - g->refresh_all(); nmenu.reset(); nmenu.text = _( "Issue what temporary order?" ); nmenu.desc_enabled = true; @@ -623,7 +622,6 @@ void game::chat() } u.moves -= 100; - refresh_all(); } void npc::handle_sound( const sounds::sound_t spriority, const std::string &description, @@ -695,10 +693,10 @@ void npc::handle_sound( const sounds::sound_t spriority, const std::string &desc bool should_check = rl_dist( pos(), spos ) < investigate_dist; if( should_check ) { const zone_manager &mgr = zone_manager::get_manager(); - if( mgr.has( zone_type_npc_no_investigate, s_abs_pos, fac_id ) ) { + if( mgr.has( zone_type_NPC_NO_INVESTIGATE, s_abs_pos, fac_id ) ) { should_check = false; - } else if( mgr.has( zone_type_npc_investigate_only, my_abs_pos, fac_id ) && - !mgr.has( zone_type_npc_investigate_only, s_abs_pos, fac_id ) ) { + } else if( mgr.has( zone_type_NPC_INVESTIGATE_ONLY, my_abs_pos, fac_id ) && + !mgr.has( zone_type_NPC_INVESTIGATE_ONLY, s_abs_pos, fac_id ) ) { should_check = false; } } @@ -865,8 +863,7 @@ void npc::talk_to_u( bool text_only, bool radio_contact ) chatbin.mission_selected = d.missions_assigned.front(); } } - d_win.print_header( name ); - const talk_topic next = d.opt( d_win, d.topic_stack.back() ); + const talk_topic next = d.opt( d_win, name, d.topic_stack.back() ); if( next.id == "TALK_NONE" ) { int cat = topic_category( d.topic_stack.back() ); do { @@ -880,7 +877,6 @@ void npc::talk_to_u( bool text_only, bool radio_contact ) d.add_topic( next ); } } while( !d.done ); - g->refresh_all(); if( g->u.activity.id() == ACT_AIM && !g->u.has_weapon() ) { g->u.cancel_activity(); @@ -892,7 +888,7 @@ void npc::talk_to_u( bool text_only, bool radio_contact ) return; } - if( !g->u.has_effect( effect_under_op ) ) { + if( !g->u.has_effect( effect_under_operation ) ) { g->cancel_activity_or_ignore_query( distraction_type::talked_to, string_format( _( "%s talked to you." ), name ) ); } @@ -900,7 +896,7 @@ void npc::talk_to_u( bool text_only, bool radio_contact ) std::string dialogue::dynamic_line( const talk_topic &the_topic ) const { - if( the_topic.item_type != "null" ) { + if( !the_topic.item_type.is_null() ) { cur_item = the_topic.item_type; } @@ -1002,7 +998,7 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const int miles = dist / 25; // *100, e.g. quarter mile is "25" miles -= miles % 25; // Round to nearest quarter-mile int fullmiles = ( miles - miles % 100 ) / 100; // Left of the decimal point - if( fullmiles <= 0 ) { + if( fullmiles < 0 ) { fullmiles = 0; } response = string_format( _( "%d.%d miles." ), fullmiles, miles ); @@ -1078,16 +1074,16 @@ std::string dialogue::dynamic_line( const talk_topic &the_topic ) const needs_rates rates = p->calc_needs_rates(); if( ability >= 100 - ( p->get_fatigue() / 10 ) ) { std::string how_tired; - if( p->get_fatigue() > EXHAUSTED ) { + if( p->get_fatigue() > fatigue_levels::EXHAUSTED ) { how_tired = _( "Exhausted" ); - } else if( p->get_fatigue() > DEAD_TIRED ) { + } else if( p->get_fatigue() > fatigue_levels::DEAD_TIRED ) { how_tired = _( "Dead tired" ); - } else if( p->get_fatigue() > TIRED ) { + } else if( p->get_fatigue() > fatigue_levels::TIRED ) { how_tired = _( "Tired" ); } else { how_tired = _( "Not tired" ); if( ability >= 100 ) { - time_duration sleep_at = 5_minutes * ( TIRED - p->get_fatigue() ) / + time_duration sleep_at = 5_minutes * ( fatigue_levels::TIRED - p->get_fatigue() ) / rates.fatigue; how_tired += _( ". Will need sleep in " ) + to_string_approx( sleep_at ); } @@ -1173,7 +1169,7 @@ talk_response &dialogue::add_response_none( const std::string &text ) } talk_response &dialogue::add_response( const std::string &text, const std::string &r, - talkfunction_ptr effect_success, const bool first ) + const talkfunction_ptr &effect_success, const bool first ) { talk_response &result = add_response( text, r, first ); result.success.set_effect( effect_success ); @@ -1181,7 +1177,7 @@ talk_response &dialogue::add_response( const std::string &text, const std::strin } talk_response &dialogue::add_response( const std::string &text, const std::string &r, - std::function effect_success, + const std::function &effect_success, dialogue_consequence consequence, const bool first ) { talk_response &result = add_response( text, r, first ); @@ -1227,7 +1223,7 @@ talk_response &dialogue::add_response( const std::string &text, const std::strin talk_response &dialogue::add_response( const std::string &text, const std::string &r, const itype_id &item_type, const bool first ) { - if( item_type == "null" ) { + if( item_type.is_null() ) { debugmsg( "explicitly specified null item" ); } @@ -1604,7 +1600,7 @@ void parse_tags( std::string &phrase, const Character &u, const Character &me, if( !me.weapon.is_gun() ) { phrase.replace( fa, l, _( "BADAMMO" ) ); } else { - phrase.replace( fa, l, me.weapon.ammo_current() ); + phrase.replace( fa, l, me.weapon.ammo_current()->nname( 1 ) ); } } else if( tag == "" ) { std::string activity_name; @@ -1733,7 +1729,8 @@ const talk_topic &special_talk( char ch ) return no_topic; } -talk_topic dialogue::opt( dialogue_window &d_win, const talk_topic &topic ) +talk_topic dialogue::opt( dialogue_window &d_win, const std::string &npc_name, + const talk_topic &topic ) { bool text_only = d_win.text_only; std::string challenge = dynamic_line( topic ); @@ -1771,29 +1768,49 @@ talk_topic dialogue::opt( dialogue_window &d_win, const talk_topic &topic ) response_lines.push_back( responses[i].create_option_line( *this, 'a' + i ) ); } - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); +#if defined(__ANDROID__) + input_context ctxt( "DIALOGUE_CHOOSE_RESPONSE" ); + for( size_t i = 0; i < responses.size(); i++ ) { + ctxt.register_manual_key( 'a' + i ); + } + ctxt.register_manual_key( 'L', "Look at" ); + ctxt.register_manual_key( 'S', "Size up stats" ); + ctxt.register_manual_key( 'Y', "Yell" ); + ctxt.register_manual_key( 'O', "Check opinion" ); +#endif + + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + d_win.resize_dialogue( ui ); + } ); + ui.mark_resize(); + + ui.on_redraw( [&]( const ui_adaptor & ) { + d_win.print_header( npc_name ); + d_win.display_responses( hilight_lines, response_lines ); + } ); int ch = text_only ? 'a' + responses.size() - 1 : ' '; bool okay; do { d_win.refresh_response_display(); do { - d_win.display_responses( hilight_lines, response_lines, ch ); + ui_manager::redraw(); if( !text_only ) { ch = inp_mngr.get_input_event().get_first_input(); } + d_win.handle_scrolling( ch ); auto st = special_talk( ch ); if( st.id != "TALK_NONE" ) { return st; } switch( ch ) { - // send scroll control keys back to the display window case KEY_DOWN: case KEY_NPAGE: case KEY_UP: case KEY_PPAGE: - continue; + ch = -1; + break; default: ch -= 'a'; break; @@ -1878,7 +1895,7 @@ static talk_topic load_inline_topic( const JsonObject &jo ) return talk_topic( id ); } -talk_effect_fun_t::talk_effect_fun_t( talkfunction_ptr ptr ) +talk_effect_fun_t::talk_effect_fun_t( const talkfunction_ptr &ptr ) { function = [ptr]( const dialogue & d ) { npc &p = *d.beta; @@ -1886,7 +1903,7 @@ talk_effect_fun_t::talk_effect_fun_t( talkfunction_ptr ptr ) }; } -talk_effect_fun_t::talk_effect_fun_t( std::function ptr ) +talk_effect_fun_t::talk_effect_fun_t( const std::function &ptr ) { function = [ptr]( const dialogue & d ) { npc &p = *d.beta; @@ -1894,7 +1911,7 @@ talk_effect_fun_t::talk_effect_fun_t( std::function ptr ) }; } -talk_effect_fun_t::talk_effect_fun_t( std::function fun ) +talk_effect_fun_t::talk_effect_fun_t( const std::function &fun ) { function = [fun]( const dialogue & d ) { fun( d ); @@ -2022,7 +2039,7 @@ void talk_effect_fun_t::set_adjust_var( const JsonObject &jo, const std::string }; } -void talk_effect_fun_t::set_u_buy_item( const std::string &item_name, int cost, int count, +void talk_effect_fun_t::set_u_buy_item( const itype_id &item_name, int cost, int count, const std::string &container_name ) { function = [item_name, cost, count, container_name]( const dialogue & d ) { @@ -2060,11 +2077,11 @@ void talk_effect_fun_t::set_u_buy_item( const std::string &item_name, int cost, // Update structure used by mission descriptions. if( cost <= 0 ) { - likely_rewards.push_back( std::pair( count, item_name ) ); + likely_rewards.push_back( std::pair( count, item_name ) ); } } -void talk_effect_fun_t::set_u_sell_item( const std::string &item_name, int cost, int count ) +void talk_effect_fun_t::set_u_sell_item( const itype_id &item_name, int cost, int count ) { function = [item_name, cost, count]( const dialogue & d ) { npc &p = *d.beta; @@ -2097,10 +2114,11 @@ void talk_effect_fun_t::set_consume_item( const JsonObject &jo, const std::strin int count, bool is_npc ) { - const std::string &item_name = jo.get_string( member ); + itype_id item_name; + jo.read( member, item_name, true ); function = [is_npc, item_name, count]( const dialogue & d ) { // this is stupid, but I couldn't get the assignment to work - const auto consume_item = [&]( player & p, const std::string & item_name, int count ) { + const auto consume_item = [&]( player & p, const itype_id & item_name, int count ) { item old_item( item_name ); if( p.has_charges( item_name, count ) ) { p.use_charges( item_name, count ); @@ -2300,7 +2318,7 @@ void talk_effect_fun_t::set_bulk_trade_accept( bool is_trade, bool is_npc ) tmp.charges = seller_has; if( is_trade ) { int price = tmp.price( true ) * ( is_npc ? -1 : 1 ) + d.beta->op_of_u.owed; - if( d.beta->get_faction() && !d.beta->get_faction()->currency.empty() ) { + if( d.beta->get_faction() && !d.beta->get_faction()->currency.is_empty() ) { const itype_id &pay_in = d.beta->get_faction()->currency; item pay( pay_in ); if( d.beta->value( pay ) > 0 ) { @@ -2350,7 +2368,7 @@ void talk_effect_fun_t::set_add_mission( const std::string &mission_id ) }; } -const std::vector> &talk_effect_fun_t::get_likely_rewards() const +const std::vector> &talk_effect_fun_t::get_likely_rewards() const { return likely_rewards; } @@ -2412,7 +2430,7 @@ void talk_effect_t::set_effect_consequence( const talk_effect_fun_t &fun, dialog guaranteed_consequence = std::max( guaranteed_consequence, con ); } -void talk_effect_t::set_effect_consequence( std::function ptr, +void talk_effect_t::set_effect_consequence( const std::function &ptr, dialogue_consequence con ) { talk_effect_fun_t npctalk_setter( ptr ); @@ -2546,10 +2564,12 @@ void talk_effect_t::parse_sub_effect( const JsonObject &jo ) container_name = jo.get_string( "container" ); } if( jo.has_string( "u_sell_item" ) ) { - const std::string &item_name = jo.get_string( "u_sell_item" ); + itype_id item_name; + jo.read( "u_sell_item", item_name, true ); subeffect_fun.set_u_sell_item( item_name, cost, count ); } else if( jo.has_string( "u_buy_item" ) ) { - const std::string &item_name = jo.get_string( "u_buy_item" ); + itype_id item_name; + jo.read( "u_buy_item", item_name, true ); subeffect_fun.set_u_buy_item( item_name, cost, count, container_name ); } else if( jo.has_string( "u_consume_item" ) ) { subeffect_fun.set_consume_item( jo, "u_consume_item", count ); @@ -3026,7 +3046,7 @@ dynamic_line_t::dynamic_line_t( const JsonObject &jo ) } } -dynamic_line_t::dynamic_line_t( JsonArray ja ) +dynamic_line_t::dynamic_line_t( const JsonArray &ja ) { std::vector lines; for( const JsonValue entry : ja ) { @@ -3132,7 +3152,7 @@ bool json_talk_topic::gen_responses( dialogue &d ) const actor = dynamic_cast( d.beta ); } std::function filter = return_true; - for( const std::string &item_id : repeat.for_item ) { + for( const itype_id &item_id : repeat.for_item ) { if( actor->charges_of( item_id ) > 0 || actor->has_amount( item_id, 1 ) ) { switch_done |= repeat.response.gen_repeat_response( d, item_id, switch_done ); } @@ -3230,6 +3250,10 @@ static consumption_result try_consume( npc &p, item &it, std::string &reason ) { // TODO: Unify this with 'player::consume_item()' item &to_eat = it; + if( to_eat.is_null() ) { + debugmsg( "Null item to try_consume." ); + return REFUSED; + } const auto &comest = to_eat.get_comestible(); if( !comest ) { // Don't inform the player that we don't want to eat the lighter @@ -3244,14 +3268,18 @@ static consumption_result try_consume( npc &p, item &it, std::string &reason ) // TODO: Make it not a copy+paste from player::consume_item int amount_used = 1; if( to_eat.is_food() ) { - if( !p.eat( to_eat ) ) { + if( !p.can_consume( to_eat ) ) { reason = _( "It doesn't look like a good idea to consume this…" ); return REFUSED; } else { + const time_duration &consume_time = p.get_consume_time( to_eat ); + p.moves -= to_moves( consume_time ); + p.consume( to_eat ); reason = _( "Thanks, that hit the spot." ); + } } else if( to_eat.is_medication() ) { - if( comest->tool != "null" ) { + if( !comest->tool.is_null() ) { bool has = p.has_amount( comest->tool, 1 ); if( item::count_by_charges( comest->tool ) ) { has = p.has_charges( comest->tool, 1 ); @@ -3317,9 +3345,9 @@ std::string give_item_to( npc &p, bool allow_use ) const double new_weapon_value = p.weapon_value( given, new_ammo ); const double cur_weapon_value = p.weapon_value( p.weapon, our_ammo ); add_msg( m_debug, "NPC evaluates own %s (%d ammo): %0.1f", - p.weapon.typeId(), our_ammo, cur_weapon_value ); + p.weapon.typeId().str(), our_ammo, cur_weapon_value ); add_msg( m_debug, "NPC evaluates your %s (%d ammo): %0.1f", - given.typeId(), new_ammo, new_weapon_value ); + given.typeId().str(), new_ammo, new_weapon_value ); if( allow_use ) { // Eating first, to avoid evaluating bread as a weapon const auto consume_res = try_consume( p, given, reason ); diff --git a/src/npctalk_funcs.cpp b/src/npctalk_funcs.cpp index dc473bdf840a6..781d9aba5cc0c 100644 --- a/src/npctalk_funcs.cpp +++ b/src/npctalk_funcs.cpp @@ -481,11 +481,12 @@ void talk_function::bionic_remove( npc &p ) std::vector bionic_types; std::vector bionic_names; for( const bionic &bio : all_bio ) { - if( std::find( bionic_types.begin(), bionic_types.end(), bio.id.str() ) == bionic_types.end() ) { + if( std::find( bionic_types.begin(), bionic_types.end(), + bio.info().itype() ) == bionic_types.end() ) { if( bio.id != bio_power_storage || bio.id != bio_power_storage_mkII ) { - bionic_types.push_back( bio.id.str() ); - if( item::type_is_defined( bio.id.str() ) ) { + bionic_types.push_back( bio.info().itype() ); + if( item::type_is_defined( bio.info().itype() ) ) { item tmp = item( bio.id.str(), 0 ); bionic_names.push_back( tmp.tname() + " - " + format_money( 50000 + ( tmp.price( true ) / 4 ) ) ); } else { @@ -514,9 +515,9 @@ void talk_function::bionic_remove( npc &p ) } //Makes the doctor awesome at installing but not perfect - if( g->u.can_uninstall_bionic( bionic_id( bionic_types[bionic_index] ), p, false ) ) { + if( g->u.can_uninstall_bionic( bionic_id( bionic_types[bionic_index].str() ), p, false ) ) { g->u.amount_of( bionic_types[bionic_index] ); // ??? this does nothing, it just queries the count - g->u.uninstall_bionic( bionic_id( bionic_types[bionic_index] ), p, false ); + g->u.uninstall_bionic( bionic_id( bionic_types[bionic_index].str() ), p, false ); } } @@ -608,7 +609,7 @@ static void generic_barber( const std::string &mut_type ) hair_menu.addentry( index, true, 'q', _( "Actually… I've changed my mind." ) ); std::vector hair_muts = get_mutations_in_type( mut_type ); trait_id cur_hair; - for( auto elem : hair_muts ) { + for( const trait_id &elem : hair_muts ) { if( g->u.has_trait( elem ) ) { cur_hair = elem; } diff --git a/src/npctrade.cpp b/src/npctrade.cpp index d539b288f3ca3..6e5cf4312193f 100644 --- a/src/npctrade.cpp +++ b/src/npctrade.cpp @@ -278,8 +278,7 @@ void trading_window::update_win( npc &np, const std::string &deal ) bool npc_out_of_space = volume_left < 0_ml || weight_left < 0_gram; // Colors for hinting if the trade will be accepted or not. - const nc_color trade_color = npc_will_accept_trade( np ) ? c_green : c_red; - const nc_color trade_color_light = npc_will_accept_trade( np ) ? c_light_green : c_light_red; + const nc_color trade_color = npc_will_accept_trade( np ) ? c_green : c_red; input_context ctxt( "NPC_TRADE" ); @@ -316,6 +315,7 @@ void trading_window::update_win( npc &np, const std::string &deal ) trade_color, cost_str ); if( !deal.empty() ) { + const nc_color trade_color_light = npc_will_accept_trade( np ) ? c_light_green : c_light_red; mvwprintz( w_head, point( ( TERMX - utf8_width( deal ) ) / 2, 3 ), trade_color_light, deal ); } @@ -386,9 +386,9 @@ void trading_window::update_win( npc &np, const std::string &deal ) mvwprintw( w_whose, point( 9, entries_per_page + 2 ), _( "More >" ) ); } } - wrefresh( w_head ); - wrefresh( w_them ); - wrefresh( w_you ); + wnoutrefresh( w_head ); + wnoutrefresh( w_them ); + wnoutrefresh( w_you ); } void trading_window::show_item_data( size_t offset, @@ -409,7 +409,7 @@ void trading_window::show_item_data( size_t offset, // NOLINTNEXTLINE(cata-use-named-point-constants) mvwprintz( w_tmp, point( 1, 1 ), c_red, _( "Examine which item?" ) ); draw_border( w_tmp ); - wrefresh( w_tmp ); + wnoutrefresh( w_tmp ); } ); input_context ctxt( "NPC_TRADE" ); @@ -425,7 +425,7 @@ void trading_window::show_item_data( size_t offset, exit = true; } else if( action == "ANY_INPUT" ) { const input_event evt = ctxt.get_raw_input(); - if( evt.type != CATA_INPUT_KEYBOARD || evt.sequence.empty() ) { + if( evt.type != input_event_t::keyboard || evt.sequence.empty() ) { continue; } size_t help = evt.get_first_input(); @@ -560,7 +560,7 @@ bool trading_window::perform_trade( npc &np, const std::string &deal ) confirm = false; } else if( action == "ANY_INPUT" ) { const input_event evt = ctxt.get_raw_input(); - if( evt.type != CATA_INPUT_KEYBOARD || evt.sequence.empty() ) { + if( evt.type != input_event_t::keyboard || evt.sequence.empty() ) { continue; } size_t ch = evt.get_first_input(); @@ -699,7 +699,6 @@ bool npc_trading::trade( npc &np, int cost, const std::string &deal ) g->u.practice( skill_barter, practice / 10000 ); } } - g->refresh_all(); return traded; } diff --git a/src/omdata.h b/src/omdata.h index c80728c6d24f5..75505a478245b 100644 --- a/src/omdata.h +++ b/src/omdata.h @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include @@ -15,6 +14,7 @@ #include "catacharset.h" #include "color.h" #include "common_types.h" +#include "enum_bitset.h" #include "int_id.h" #include "point.h" #include "string_id.h" @@ -153,7 +153,7 @@ struct overmap_static_spawns : public overmap_spawns { }; //terrain flags enum! this is for tracking the indices of each flag. -enum oter_flags { +enum class oter_flags : int { known_down = 0, known_up, no_rotate, // this tile doesn't have four rotated versions (north, east, south, west) @@ -191,6 +191,11 @@ enum oter_flags { num_oter_flags }; +template<> +struct enum_traits { + static constexpr auto last = oter_flags::num_oter_flags; +}; + struct oter_type_t { public: static const oter_type_t null_type; @@ -222,7 +227,7 @@ struct oter_type_t { } void set_flag( oter_flags flag, bool value = true ) { - flags[flag] = value; + flags.set( flag, value ); } void load( const JsonObject &jo, const std::string &src ); @@ -230,15 +235,15 @@ struct oter_type_t { void finalize(); bool is_rotatable() const { - return !has_flag( no_rotate ) && !has_flag( line_drawing ); + return !has_flag( oter_flags::no_rotate ) && !has_flag( oter_flags::line_drawing ); } bool is_linear() const { - return has_flag( line_drawing ); + return has_flag( oter_flags::line_drawing ); } private: - std::bitset flags; + enum_bitset flags; std::vector directional_peers; void register_terrain( const oter_t &peer, size_t n, size_t max_n ); @@ -326,7 +331,7 @@ struct oter_t { } bool is_river() const { - return type->has_flag( river_tile ); + return type->has_flag( oter_flags::river_tile ); } bool is_wooded() const { @@ -337,11 +342,11 @@ struct oter_t { } bool is_lake() const { - return type->has_flag( lake ); + return type->has_flag( oter_flags::lake ); } bool is_lake_shore() const { - return type->has_flag( lake_shore ); + return type->has_flag( oter_flags::lake_shore ); } private: diff --git a/src/optional.h b/src/optional.h index b944394d17673..f4bb77209cb78 100644 --- a/src/optional.h +++ b/src/optional.h @@ -65,7 +65,7 @@ class optional construct( other.get() ); } } - optional( optional &&other ) : full( false ) { + optional( optional &&other ) noexcept : full( false ) { if( other.full ) { construct( std::move( other.get() ) ); } @@ -173,7 +173,7 @@ class optional } return *this; } - optional &operator=( optional &&other ) { + optional &operator=( optional &&other ) noexcept { if( full && other.full ) { get() = std::move( other.get() ); } else if( full ) { diff --git a/src/options.cpp b/src/options.cpp index b7401efed26f6..d830569f50074 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -68,21 +68,19 @@ options_manager::options_manager() : general_page_( "general", to_translation( "General" ) ), interface_page_( "interface", to_translation( "Interface" ) ), graphics_page_( "graphics", to_translation( "Graphics" ) ), - debug_page_( "debug", to_translation( "Debug" ) ), world_default_page_( "world_default", to_translation( "World Defaults" ) ), + debug_page_( "debug", to_translation( "Debug" ) ), android_page_( "android", to_translation( "Android" ) ) { pages_.emplace_back( general_page_ ); pages_.emplace_back( interface_page_ ); pages_.emplace_back( graphics_page_ ); // when sharing maps only admin is allowed to change these. - if( !MAP_SHARING::isCompetitive() || MAP_SHARING::isAdmin() ) { - pages_.emplace_back( debug_page_ ); - } - // when sharing maps only admin is allowed to change these. if( !MAP_SHARING::isCompetitive() || MAP_SHARING::isAdmin() ) { pages_.emplace_back( world_default_page_ ); + pages_.emplace_back( debug_page_ ); } + #if defined(__ANDROID__) pages_.emplace_back( android_page_ ); #endif @@ -841,7 +839,7 @@ void options_manager::cOpt::setValue( int iSetIn ) } //set value -void options_manager::cOpt::setValue( std::string sSetIn ) +void options_manager::cOpt::setValue( const std::string &sSetIn ) { if( sType == "string_select" ) { if( getItemPos( sSetIn ) != -1 ) { @@ -965,7 +963,7 @@ std::vector options_manager::build_tilesets_list // Load from user directory std::vector user_tilesets = load_tilesets_from( PATH_INFO::user_gfx() ); - for( options_manager::id_and_option id : user_tilesets ) { + for( const options_manager::id_and_option &id : user_tilesets ) { if( std::find( result.begin(), result.end(), id ) == result.end() ) { result.emplace_back( id ); } @@ -1112,8 +1110,8 @@ void options_manager::init() add_options_general(); add_options_interface(); add_options_graphics(); - add_options_debug(); add_options_world_default(); + add_options_debug(); add_options_android(); for( Page &p : pages_ ) { @@ -1708,12 +1706,12 @@ void options_manager::add_options_graphics() add_empty_line(); add( "TERMINAL_X", "graphics", translate_marker( "Terminal width" ), - translate_marker( "Set the size of the terminal along the X axis. Requires restart." ), + translate_marker( "Set the size of the terminal along the X axis." ), 80, 960, 80, COPT_POSIX_CURSES_HIDE ); add( "TERMINAL_Y", "graphics", translate_marker( "Terminal height" ), - translate_marker( "Set the size of the terminal along the Y axis. Requires restart." ), + translate_marker( "Set the size of the terminal along the Y axis." ), 24, 270, 24, COPT_POSIX_CURSES_HIDE ); @@ -1796,13 +1794,62 @@ void options_manager::add_options_graphics() add_empty_line(); - add( "MEMORY_MAP_MODE", "graphics", translate_marker( "Memory map drawing mode" ), - translate_marker( "Specified the mode in which the memory map is drawn. Requires restart." ), { + add( "MEMORY_MAP_MODE", "graphics", translate_marker( "Memory map overlay preset" ), + translate_marker( "Specified the overlay in which the memory map is drawn. Requires restart. For custom overlay define gamma and RGB values for dark and light colors." ), { { "color_pixel_darken", translate_marker( "Darkened" ) }, - { "color_pixel_sepia", translate_marker( "Sepia" ) } - }, "color_pixel_sepia", COPT_CURSES_HIDE + { "color_pixel_sepia_light", translate_marker( "Sepia" ) }, + { "color_pixel_sepia_dark", translate_marker( "Sepia Dark" ) }, + { "color_pixel_blue_dark", translate_marker( "Blue Dark" ) }, + { "color_pixel_custom", translate_marker( "Custom" ) }, + }, "color_pixel_sepia_light", COPT_CURSES_HIDE ); + add( "MEMORY_RGB_DARK_RED", "graphics", translate_marker( "Custom dark color RGB overlay - RED" ), + translate_marker( "Specify RGB value for color RED for dark color overlay." ), + 0, 255, 39, COPT_CURSES_HIDE ); + + get_option( "MEMORY_RGB_DARK_RED" ).setPrerequisite( "MEMORY_MAP_MODE", "color_pixel_custom" ); + + add( "MEMORY_RGB_DARK_GREEN", "graphics", + translate_marker( "Custom dark color RGB overlay - GREEN" ), + translate_marker( "Specify RGB value for color GREEN for dark color overlay." ), + 0, 255, 23, COPT_CURSES_HIDE ); + + get_option( "MEMORY_RGB_DARK_GREEN" ).setPrerequisite( "MEMORY_MAP_MODE", "color_pixel_custom" ); + + add( "MEMORY_RGB_DARK_BLUE", "graphics", translate_marker( "Custom dark color RGB overlay - BLUE" ), + translate_marker( "Specify RGB value for color BLUE for dark color overlay." ), + 0, 255, 19, COPT_CURSES_HIDE ); + + get_option( "MEMORY_RGB_DARK_BLUE" ).setPrerequisite( "MEMORY_MAP_MODE", "color_pixel_custom" ); + + add( "MEMORY_RGB_BRIGHT_RED", "graphics", + translate_marker( "Custom bright color RGB overlay - RED" ), + translate_marker( "Specify RGB value for color RED for bright color overlay." ), + 0, 255, 241, COPT_CURSES_HIDE ); + + get_option( "MEMORY_RGB_BRIGHT_RED" ).setPrerequisite( "MEMORY_MAP_MODE", "color_pixel_custom" ); + + add( "MEMORY_RGB_BRIGHT_GREEN", "graphics", + translate_marker( "Custom bright color RGB overlay - GREEN" ), + translate_marker( "Specify RGB value for color GREEN for bright color overlay." ), + 0, 255, 220, COPT_CURSES_HIDE ); + + get_option( "MEMORY_RGB_BRIGHT_GREEN" ).setPrerequisite( "MEMORY_MAP_MODE", "color_pixel_custom" ); + + add( "MEMORY_RGB_BRIGHT_BLUE", "graphics", + translate_marker( "Custom bright color RGB overlay - BLUE" ), + translate_marker( "Specify RGB value for color BLUE for bright color overlay." ), + 0, 255, 163, COPT_CURSES_HIDE ); + + get_option( "MEMORY_RGB_BRIGHT_BLUE" ).setPrerequisite( "MEMORY_MAP_MODE", "color_pixel_custom" ); + + add( "MEMORY_GAMMA", "graphics", translate_marker( "Custom gamma for overlay" ), + translate_marker( "Specify gamma value for overlay." ), + 1.0f, 3.0f, 1.6f, 0.1f, COPT_CURSES_HIDE ); + + get_option( "MEMORY_GAMMA" ).setPrerequisite( "MEMORY_MAP_MODE", "color_pixel_custom" ); + add_empty_line(); add( "PIXEL_MINIMAP", "graphics", translate_marker( "Pixel minimap" ), @@ -1948,82 +1995,6 @@ void options_manager::add_options_graphics() } -void options_manager::add_options_debug() -{ - const auto add_empty_line = [&]() { - debug_page_.items_.emplace_back(); - }; - - add( "DISTANCE_INITIAL_VISIBILITY", "debug", translate_marker( "Distance initial visibility" ), - translate_marker( "Determines the scope, which is known in the beginning of the game." ), - 3, 20, 15 - ); - - add_empty_line(); - - add( "INITIAL_STAT_POINTS", "debug", translate_marker( "Initial stat points" ), - translate_marker( "Initial points available to spend on stats on character generation." ), - 0, 1000, 6 - ); - - add( "INITIAL_TRAIT_POINTS", "debug", translate_marker( "Initial trait points" ), - translate_marker( "Initial points available to spend on traits on character generation." ), - 0, 1000, 0 - ); - - add( "INITIAL_SKILL_POINTS", "debug", translate_marker( "Initial skill points" ), - translate_marker( "Initial points available to spend on skills on character generation." ), - 0, 1000, 2 - ); - - add( "MAX_TRAIT_POINTS", "debug", translate_marker( "Maximum trait points" ), - translate_marker( "Maximum trait points available for character generation." ), - 0, 1000, 12 - ); - - add_empty_line(); - - add( "SKILL_TRAINING_SPEED", "debug", translate_marker( "Skill training speed" ), - translate_marker( "Scales experience gained from practicing skills and reading books. 0.5 is half as fast as default, 2.0 is twice as fast, 0.0 disables skill training except for NPC training." ), - 0.0, 100.0, 1.0, 0.1 - ); - - add_empty_line(); - - add( "SKILL_RUST", "debug", translate_marker( "Skill rust" ), - translate_marker( "Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence dependent, capped - Off: None at all." ), - //~ plain, default, normal - { { "vanilla", translate_marker( "Vanilla" ) }, - //~ capped at a value - { "capped", translate_marker( "Capped" ) }, - //~ based on intelligence - { "int", translate_marker( "Int" ) }, - //~ based on intelligence and capped - { "intcap", translate_marker( "IntCap" ) }, - { "off", translate_marker( "Off" ) } - }, - "off" ); - - add_empty_line(); - - add( "FOV_3D", "debug", translate_marker( "Experimental 3D field of vision" ), - translate_marker( "If false, vision is limited to current z-level. If true and the world is in z-level mode, the vision will extend beyond current z-level. Currently very bugged!" ), - false - ); - - add( "FOV_3D_Z_RANGE", "debug", translate_marker( "Vertical range of 3D field of vision" ), - translate_marker( "How many levels up and down the experimental 3D field of vision reaches. (This many levels up, this many levels down.) 3D vision of the full height of the world can slow the game down a lot. Seeing fewer Z-levels is faster." ), - 0, OVERMAP_LAYERS, 4 - ); - - get_option( "FOV_3D_Z_RANGE" ).setPrerequisite( "FOV_3D" ); - - add( "ENCODING_CONV", "debug", translate_marker( "Experimental path name encoding conversion" ), - translate_marker( "If true, file path names are going to be transcoded from system encoding to UTF-8 when reading and will be transcoded back when writing. Mainly for CJK Windows users." ), - true - ); -} - void options_manager::add_options_world_default() { const auto add_empty_line = [&]() { @@ -2063,7 +2034,7 @@ void options_manager::add_options_world_default() add( "CARRION_SPAWNRATE", "world_default", translate_marker( "Carrion spawn rate scaling factor" ), translate_marker( "A scaling factor that determines how often creatures spawn from rotting material." ), - 0, 1000, 100, COPT_NO_HIDE, "%i%%" + 0.0, 10.0, 1.0, 0.01, COPT_NO_HIDE ); add( "ITEM_SPAWNRATE", "world_default", translate_marker( "Item spawn scaling factor" ), @@ -2188,6 +2159,82 @@ void options_manager::add_options_world_default() ); } +void options_manager::add_options_debug() +{ + const auto add_empty_line = [&]() { + debug_page_.items_.emplace_back(); + }; + + add( "DISTANCE_INITIAL_VISIBILITY", "debug", translate_marker( "Distance initial visibility" ), + translate_marker( "Determines the scope, which is known in the beginning of the game." ), + 3, 20, 15 + ); + + add_empty_line(); + + add( "INITIAL_STAT_POINTS", "debug", translate_marker( "Initial stat points" ), + translate_marker( "Initial points available to spend on stats on character generation." ), + 0, 1000, 6 + ); + + add( "INITIAL_TRAIT_POINTS", "debug", translate_marker( "Initial trait points" ), + translate_marker( "Initial points available to spend on traits on character generation." ), + 0, 1000, 0 + ); + + add( "INITIAL_SKILL_POINTS", "debug", translate_marker( "Initial skill points" ), + translate_marker( "Initial points available to spend on skills on character generation." ), + 0, 1000, 2 + ); + + add( "MAX_TRAIT_POINTS", "debug", translate_marker( "Maximum trait points" ), + translate_marker( "Maximum trait points available for character generation." ), + 0, 1000, 12 + ); + + add_empty_line(); + + add( "SKILL_TRAINING_SPEED", "debug", translate_marker( "Skill training speed" ), + translate_marker( "Scales experience gained from practicing skills and reading books. 0.5 is half as fast as default, 2.0 is twice as fast, 0.0 disables skill training except for NPC training." ), + 0.0, 100.0, 1.0, 0.1 + ); + + add_empty_line(); + + add( "SKILL_RUST", "debug", translate_marker( "Skill rust" ), + translate_marker( "Set the level of skill rust. Vanilla: Vanilla Cataclysm - Capped: Capped at skill levels 2 - Int: Intelligence dependent - IntCap: Intelligence dependent, capped - Off: None at all." ), + //~ plain, default, normal + { { "vanilla", translate_marker( "Vanilla" ) }, + //~ capped at a value + { "capped", translate_marker( "Capped" ) }, + //~ based on intelligence + { "int", translate_marker( "Int" ) }, + //~ based on intelligence and capped + { "intcap", translate_marker( "IntCap" ) }, + { "off", translate_marker( "Off" ) } + }, + "off" ); + + add_empty_line(); + + add( "FOV_3D", "debug", translate_marker( "Experimental 3D field of vision" ), + translate_marker( "If false, vision is limited to current z-level. If true and the world is in z-level mode, the vision will extend beyond current z-level. Currently very bugged!" ), + false + ); + + add( "FOV_3D_Z_RANGE", "debug", translate_marker( "Vertical range of 3D field of vision" ), + translate_marker( "How many levels up and down the experimental 3D field of vision reaches. (This many levels up, this many levels down.) 3D vision of the full height of the world can slow the game down a lot. Seeing fewer Z-levels is faster." ), + 0, OVERMAP_LAYERS, 4 + ); + + get_option( "FOV_3D_Z_RANGE" ).setPrerequisite( "FOV_3D" ); + + add( "ENCODING_CONV", "debug", translate_marker( "Experimental path name encoding conversion" ), + translate_marker( "If true, file path names are going to be transcoded from system encoding to UTF-8 when reading and will be transcoded back when writing. Mainly for CJK Windows users." ), + true + ); +} + void options_manager::add_options_android() { #if defined(__ANDROID__) @@ -2454,17 +2501,13 @@ static void refresh_tiles( bool used_tiles_changed, bool pixel_minimap_height_ch tilecontext->load_tileset( get_option( "TILES" ) ); //g->init_ui is called when zoom is changed g->reset_zoom(); - if( ingame ) { - g->refresh_all(); - } tilecontext->do_tile_loading_report(); } catch( const std::exception &err ) { popup( _( "Loading the tileset failed: %s" ), err.what() ); use_tiles = false; } } else if( ingame && g->pixel_minimap_option && pixel_minimap_height_changed ) { - g->init_ui(); - g->refresh_all(); + g->mark_main_ui_adaptor_resize(); } } #else @@ -2488,7 +2531,7 @@ static void draw_borders_external( mvwputch( w, point( mapLine.first + 1, getmaxy( w ) - 1 ), BORDER_COLOR, LINE_XXOX ); // _|_ } } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_borders_internal( const catacurses::window &w, std::map &mapLines ) @@ -2502,7 +2545,7 @@ static void draw_borders_internal( const catacurses::window &w, std::map( "TERMINAL_X" ), ::get_option( "TERMINAL_Y" ) ); } #else ( void ) terminal_size_changed; @@ -3086,24 +3129,26 @@ bool options_manager::has_option( const std::string &name ) const options_manager::cOpt &options_manager::get_option( const std::string &name ) { - if( options.count( name ) == 0 ) { + std::unordered_map::iterator opt = options.find( name ); + if( opt == options.end() ) { debugmsg( "requested non-existing option %s", name ); } if( !world_options.has_value() ) { // Global options contains the default for new worlds, which is good enough here. - return options[name]; + return opt->second; } - auto &wopts = *world_options.value(); - if( wopts.count( name ) == 0 ) { - auto &opt = options[name]; - if( opt.getPage() != "world_default" ) { + std::unordered_map::iterator wopt = ( *world_options )->find( name ); + if( wopt == ( *world_options )->end() ) { + if( opt->second.getPage() != "world_default" ) { // Requested a non-world option, deliver it. - return opt; + return opt->second; } // May be a new option and an old world - import default from global options. - wopts[name] = opt; + cOpt &new_world_option = ( **world_options )[name]; + new_world_option = opt->second; + return new_world_option; } - return wopts[name]; + return wopt->second; } options_manager::options_container options_manager::get_world_defaults() const @@ -3157,7 +3202,7 @@ void options_manager::update_global_locale() } else if( lang == "zh_TW" ) { std::locale::global( std::locale( "zh_TW.UTF-8" ) ); } - } catch( std::runtime_error &e ) { + } catch( std::runtime_error & ) { std::locale::global( std::locale() ); } diff --git a/src/options.h b/src/options.h index 49de30dd33f15..b2a74849c35e6 100644 --- a/src/options.h +++ b/src/options.h @@ -110,7 +110,7 @@ class options_manager //set to previous item void setPrev(); //set value - void setValue( std::string sSetIn ); + void setValue( const std::string &sSetIn ); void setValue( float fSetIn ); void setValue( int iSetIn ); @@ -195,8 +195,8 @@ class options_manager void add_options_general(); void add_options_interface(); void add_options_graphics(); - void add_options_debug(); void add_options_world_default(); + void add_options_debug(); void add_options_android(); void load(); bool save(); @@ -297,8 +297,8 @@ class options_manager Page general_page_; Page interface_page_; Page graphics_page_; - Page debug_page_; Page world_default_page_; + Page debug_page_; Page android_page_; std::vector> pages_; diff --git a/src/output.cpp b/src/output.cpp index de358870451e9..9af3df0ad0bc0 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -336,14 +336,6 @@ int fold_and_print_from( const catacurses::window &w, const point &begin, int wi return textformatted.size(); } -void scrollable_text( const catacurses::window &w, const std::string &title, - const std::string &text ) -{ - scrollable_text( [&w]() { - return w; - }, title, text ); -} - void scrollable_text( const std::function &init_window, const std::string &title, const std::string &text ) { @@ -394,7 +386,7 @@ void scrollable_text( const std::function &init_window, } scrollbar().offset_x( width - 1 ).offset_y( text_y ).content_size( lines.size() ) .viewport_pos( std::min( beg_line, max_beg_line ) ).viewport_size( text_h ).apply( w ); - wrefresh( w ); + wnoutrefresh( w ); } ); std::string action; @@ -520,7 +512,7 @@ void draw_custom_border( const catacurses::window &w, const catacurses::chtype ls, const catacurses::chtype rs, const catacurses::chtype ts, const catacurses::chtype bs, const catacurses::chtype tl, const catacurses::chtype tr, const catacurses::chtype bl, const catacurses::chtype br, - const nc_color FG, const point &pos, int height, int width ) + const nc_color &FG, const point &pos, int height, int width ) { wattron( w, FG ); @@ -594,6 +586,102 @@ void draw_border_below_tabs( const catacurses::window &w, nc_color border_color mvwputch( w, point( width - 1, height - 1 ), border_color, LINE_XOOX ); // _| } +border_helper::border_info::border_info( border_helper &helper ) + : helper( helper ) +{ +} + +void border_helper::border_info::set( const point &pos, const point &size ) +{ + this->pos = pos; + this->size = size; + helper.get().border_connection_map.reset(); +} + +border_helper::border_info &border_helper::add_border() +{ + border_info_list.emplace_front( border_info( *this ) ); + return border_info_list.front(); +} + +void border_helper::draw_border( const catacurses::window &win ) +{ + if( !border_connection_map.has_value() ) { + border_connection_map.emplace(); + for( const border_info &info : border_info_list ) { + const point beg = info.pos; + const point end = info.pos + info.size; + for( int x = beg.x; x < end.x; ++x ) { + const point ptop( x, beg.y ); + const point pbottom( x, end.y - 1 ); + if( x > beg.x ) { + border_connection_map.value()[ptop].left = + border_connection_map.value()[pbottom].left = true; + } + if( x < end.x - 1 ) { + border_connection_map.value()[ptop].right = + border_connection_map.value()[pbottom].right = true; + } + } + for( int y = beg.y; y < end.y; ++y ) { + const point pleft( beg.x, y ); + const point pright( end.x - 1, y ); + if( y > beg.y ) { + border_connection_map.value()[pleft].top = + border_connection_map.value()[pright].top = true; + } + if( y < end.y - 1 ) { + border_connection_map.value()[pleft].bottom = + border_connection_map.value()[pright].bottom = true; + } + } + } + } + const point win_beg( getbegx( win ), getbegy( win ) ); + const point win_end = win_beg + point( getmaxx( win ), getmaxy( win ) ); + for( const std::pair &conn : border_connection_map.value() ) { + if( conn.first.x >= win_beg.x && conn.first.x < win_end.x && + conn.first.y >= win_beg.y && conn.first.y < win_end.y ) { + mvwputch( win, conn.first - win_beg, BORDER_COLOR, conn.second.as_curses_line() ); + } + } +} + +int border_helper::border_connection::as_curses_line() const +{ + constexpr int t = 0x8; + constexpr int r = 0x4; + constexpr int b = 0x2; + constexpr int l = 0x1; + const int conn = ( top ? t : 0 ) | ( right ? r : 0 ) | ( bottom ? b : 0 ) | ( left ? l : 0 ); + switch( conn ) { + default: + return '?'; + case 0x3: + return LINE_OOXX; + case 0x5: + return LINE_OXOX; + case 0x6: + return LINE_OXXO; + case 0x7: + return LINE_OXXX; + case 0x9: + return LINE_XOOX; + case 0xA: + return LINE_XOXO; + case 0xB: + return LINE_XOXX; + case 0xC: + return LINE_XXOO; + case 0xD: + return LINE_XXOX; + case 0xE: + return LINE_XXXO; + case 0xF: + return LINE_XXXX; + } +} + bool query_yn( const std::string &text ) { const bool force_uc = get_option( "FORCE_CAPITAL_YN" ); @@ -663,7 +751,7 @@ int popup( const std::string &text, PopupFlags flags ) pop.context( "POPUP_WAIT" ); const auto &res = pop.query(); - if( res.evt.type == CATA_INPUT_KEYBOARD ) { + if( res.evt.type == input_event_t::keyboard ) { return res.evt.get_first_input(); } else { return UNKNOWN_UNICODE; @@ -685,7 +773,7 @@ input_event draw_item_info( const int iLeft, const int iWidth, const int iTop, c clear_window_area( win ); #endif // TILES wclear( win ); - wrefresh( win ); + wnoutrefresh( win ); const input_event result = draw_item_info( win, data ); return result; @@ -773,7 +861,7 @@ void draw_item_filter_rules( const catacurses::window &win, int starty, int heig fold_and_print( win, point( 1, starty ), len, c_white, //~ An example of how to filter items based on category or material. _( "Examples: c:food,m:iron,q:hammering,n:toolshelf,d:pipe" ) ); - wrefresh( win ); + wnoutrefresh( win ); } std::string format_item_info( const std::vector &vItemDisplay, @@ -917,7 +1005,7 @@ input_event draw_item_info( const std::function &init_wind if( !data.without_border ) { draw_custom_border( win, buffer.empty() ); } - wrefresh( win ); + wnoutrefresh( win ); }; if( data.without_getch ) { @@ -949,7 +1037,8 @@ input_event draw_item_info( const std::function &init_wind } std::string action; - do { + bool exit = false; + while( !exit ) { ui_manager::redraw(); action = ctxt.handle_input(); if( data.handle_scrolling && action == "PAGE_UP" ) { @@ -961,8 +1050,12 @@ input_event draw_item_info( const std::function &init_wind ( height > 0 && static_cast( *data.ptr_selected + height ) < folded.size() ) ) { ++*data.ptr_selected; } + } else if( action == "CONFIRM" || action == "QUIT" ) { + exit = true; + } else if( data.any_input && action == "ANY_INPUT" && !ctxt.get_raw_input().sequence.empty() ) { + exit = true; } - } while( action != "QUIT" && action != "CONFIRM" && action != "ANY_INPUT" ); + } return ctxt.get_raw_input(); } @@ -1426,7 +1519,7 @@ void scrolling_text_view::draw( const nc_color &base_color ) text_[line_num + offset_] ); } - wrefresh( w_ ); + wnoutrefresh( w_ ); } int scrolling_text_view::text_width() @@ -1465,25 +1558,6 @@ void calcStartPos( int &iStartPos, const int iCurrentLine, const int iContentHei } } -catacurses::window w_hit_animation; -void hit_animation( const point &p, nc_color cColor, const std::string &cTile ) -{ - catacurses::window w_hit = - catacurses::newwin( 1, 1, p ); - if( !w_hit ) { - return; //we passed in negative values (semi-expected), so let's not segfault - } - w_hit_animation = w_hit; - - mvwprintz( w_hit, point_zero, cColor, cTile ); - wrefresh( w_hit ); - - inp_mngr.set_timeout( get_option( "ANIMATION_DELAY" ) ); - // Skip input (if any), because holding down a key with nanosleep can get yourself killed - inp_mngr.get_input_event(); - inp_mngr.reset_timeout(); -} - #if defined(_MSC_VER) std::string cata::string_formatter::raw_string_format( const char *const format, ... ) { @@ -1899,9 +1973,10 @@ scrollingcombattext::cSCT::cSCT( const point &p_pos, const direction p_oDir, oDir = p_oDir; // translate from player relative to screen relative direction - iso_mode = false; #if defined(TILES) iso_mode = tile_iso && use_tiles; +#else + iso_mode = false; #endif oUp = iso_mode ? direction::NORTHEAST : direction::NORTH; oUpRight = iso_mode ? direction::EAST : direction::NORTHEAST; @@ -2315,10 +2390,6 @@ bool is_draw_tiles_mode() { return false; } - -void refresh_display() -{ -} #endif void mvwprintz( const catacurses::window &w, const point &p, const nc_color &FG, diff --git a/src/output.h b/src/output.h index 19c2ac70b81a7..74f8082135816 100644 --- a/src/output.h +++ b/src/output.h @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -123,7 +124,6 @@ inline std::string string_from_int( const catacurses::chtype ch ) charcode = LINE_XXXX_C; break; default: - charcode = ch; break; } char buffer[2] = { static_cast( charcode ), '\0' }; @@ -326,8 +326,6 @@ int right_print( const catacurses::window &w, int line, int right_indent, void insert_table( const catacurses::window &w, int pad, int line, int columns, const nc_color &FG, const std::string ÷r, bool r_align, const std::vector &data ); -void scrollable_text( const catacurses::window &w, const std::string &title, - const std::string &text ); void scrollable_text( const std::function &init_window, const std::string &title, const std::string &text ); std::string name_and_value( const std::string &name, int value, int field_width ); @@ -366,11 +364,52 @@ void draw_custom_border( const catacurses::window &w, catacurses::chtype ls = 1, catacurses::chtype rs = 1, catacurses::chtype ts = 1, catacurses::chtype bs = 1, catacurses::chtype tl = 1, catacurses::chtype tr = 1, catacurses::chtype bl = 1, catacurses::chtype br = 1, - nc_color FG = BORDER_COLOR, const point &pos = point_zero, int height = 0, int width = 0 ); + const nc_color &FG = BORDER_COLOR, const point &pos = point_zero, int height = 0, int width = 0 ); void draw_border( const catacurses::window &w, nc_color border_color = BORDER_COLOR, const std::string &title = "", nc_color title_color = c_light_red ); void draw_border_below_tabs( const catacurses::window &w, nc_color border_color = BORDER_COLOR ); +class border_helper +{ + public: + class border_info + { + public: + void set( const point &pos, const point &size ); + + // Prevent accidentally copying the return value from border_helper::add_border + border_info( const border_info & ) = delete; + border_info( border_info && ) = default; + border_info &operator=( const border_info & ) = delete; + border_info &operator=( border_info && ) = default; + + friend class border_helper; + private: + border_info( border_helper &helper ); + + point pos; + point size; + std::reference_wrapper helper; + }; + + border_info &add_border(); + void draw_border( const catacurses::window &win ); + + friend class border_info; + private: + struct border_connection { + bool top = false; + bool right = false; + bool bottom = false; + bool left = false; + + int as_curses_line() const; + }; + cata::optional> border_connection_map; + + std::forward_list border_info_list; +}; + std::string word_rewrap( const std::string &ins, int width, uint32_t split = ' ' ); std::vector get_tag_positions( const std::string &s ); std::vector split_by_color( const std::string &s ); @@ -463,8 +502,7 @@ struct item_info_data { item_info_data( const std::string &sItemName, const std::string &sTypeName, const std::vector &vItemDisplay, const std::vector &vItemCompare ) : sItemName( sItemName ), sTypeName( sTypeName ), - vItemDisplay( vItemDisplay ), vItemCompare( vItemCompare ), - selected( 0 ), ptr_selected( &selected ) {} + vItemDisplay( vItemDisplay ), vItemCompare( vItemCompare ) {} item_info_data( const std::string &sItemName, const std::string &sTypeName, const std::vector &vItemDisplay, const std::vector &vItemCompare, @@ -549,10 +587,6 @@ size_t shortcut_print( const catacurses::window &w, nc_color text_color, nc_colo const std::string &fmt ); std::string shortcut_text( nc_color shortcut_color, const std::string &fmt ); -// short visual animation (player, monster, ...) (hit, dodge, ...) -// cTile is a UTF-8 strings, and must be a single cell wide! -void hit_animation( const point &p, nc_color cColor, const std::string &cTile ); - /** * @return Pair of a string containing the bar, and its color * @param cur Current value being formatted @@ -619,7 +653,7 @@ inline std::string get_labeled_bar( const double val, const int width, const std return result; } -enum class enumeration_conjunction { +enum class enumeration_conjunction : int { none, and_, or_ @@ -806,7 +840,7 @@ class scrollbar // Update the text with set_text (it will be wrapped for you). // scroll_up and scroll_down are expected to be called from handlers for the // keys used for that purpose. -// Call draw when drawing related UI stuff. draw calls werase/wrefresh for its +// Call draw when drawing related UI stuff. draw calls werase/wnoutrefresh for its // window internally. class scrolling_text_view { diff --git a/src/overmap.cpp b/src/overmap.cpp index 3f11893b6bb03..ca75fbd5856b3 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -50,9 +50,7 @@ #include "string_formatter.h" #include "translations.h" -static const efftype_id effect_pet( "pet" ); - -static const species_id ZOMBIE( "ZOMBIE" ); +static const species_id species_ZOMBIE( "ZOMBIE" ); static const mongroup_id GROUP_CHUD( "GROUP_CHUD" ); static const mongroup_id GROUP_RIVER( "GROUP_RIVER" ); @@ -66,11 +64,11 @@ class map_extra; #define dbg(x) DebugLog((x),D_MAP_GEN) << __FILE__ << ":" << __LINE__ << ": " -#define BUILDINGCHANCE 4 -#define MIN_ANT_SIZE 8 -#define MAX_ANT_SIZE 20 -#define MIN_GOO_SIZE 1 -#define MAX_GOO_SIZE 2 +static constexpr int BUILDINGCHANCE = 4; +static constexpr int MIN_ANT_SIZE = 8; +static constexpr int MAX_ANT_SIZE = 20; +static constexpr int MIN_GOO_SIZE = 1; +static constexpr int MAX_GOO_SIZE = 2; using oter_type_id = int_id; using oter_type_str_id = string_id; @@ -226,7 +224,7 @@ int city::get_distance_from( const tripoint &p ) const return std::max( static_cast( trig_dist( p, { pos, 0 } ) ) - size, 0 ); } -std::map radio_type_names = +std::map radio_type_names = {{ {radio_type::MESSAGE_BROADCAST, "broadcast"}, {radio_type::WEATHER_RADIO, "weather"} }}; /** @relates string_id */ @@ -569,8 +567,8 @@ void oter_type_t::load( const JsonObject &jo, const std::string &src ) const auto flag_reader = make_flag_reader( oter_flags_map, "overmap terrain flag" ); optional( jo, was_loaded, "flags", flags, flag_reader ); - if( has_flag( line_drawing ) ) { - if( has_flag( no_rotate ) ) { + if( has_flag( oter_flags::line_drawing ) ) { + if( has_flag( oter_flags::no_rotate ) ) { jo.throw_error( R"(Mutually exclusive flags: "NO_ROTATE" and "LINEAR".)" ); } @@ -603,7 +601,7 @@ void oter_type_t::finalize() for( om_direction::type dir : om_direction::all ) { register_terrain( oter_t( *this, dir ), static_cast( dir ), om_direction::size ); } - } else if( has_flag( line_drawing ) ) { + } else if( has_flag( oter_flags::line_drawing ) ) { for( size_t i = 0; i < om_lines::size; ++i ) { register_terrain( oter_t( *this, i ), i, om_lines::size ); } @@ -647,7 +645,7 @@ oter_id oter_type_t::get_rotated( om_direction::type dir ) const oter_id oter_type_t::get_linear( size_t n ) const { - if( !has_flag( line_drawing ) ) { + if( !has_flag( oter_flags::line_drawing ) ) { debugmsg( "Overmap terrain \"%s \" isn't drawn with lines.", id.c_str() ); return ot_null; } @@ -685,14 +683,14 @@ oter_t::oter_t( const oter_type_t &type, size_t line ) : std::string oter_t::get_mapgen_id() const { - return type->has_flag( line_drawing ) + return type->has_flag( oter_flags::line_drawing ) ? type->id.str() + om_lines::mapgen_suffixes[om_lines::all[line].mapgen] : type->id.str(); } oter_id oter_t::get_rotated( om_direction::type dir ) const { - return type->has_flag( line_drawing ) + return type->has_flag( oter_flags::line_drawing ) ? type->get_linear( om_lines::rotate( this->line, dir ) ) : type->get_rotated( om_direction::add( this->dir, dir ) ); } @@ -1007,7 +1005,7 @@ void overmap_special::check() const if( !elem.terrain ) { debugmsg( "In overmap special \"%s\", connection [%d,%d,%d] doesn't have a terrain.", id.c_str(), elem.p.x, elem.p.y, elem.p.z ); - } else if( !elem.existing && !elem.terrain->has_flag( line_drawing ) ) { + } else if( !elem.existing && !elem.terrain->has_flag( oter_flags::line_drawing ) ) { debugmsg( "In overmap special \"%s\", connection [%d,%d,%d] \"%s\" isn't drawn with lines.", id.c_str(), elem.p.x, elem.p.y, elem.p.z, elem.terrain.c_str() ); } else if( oter.terrain && !oter.terrain->type_is( elem.terrain ) ) { @@ -1218,7 +1216,7 @@ bool overmap::monster_check( const std::pair &candidate ) con } ) != matching_range.second; } -void overmap::insert_npc( shared_ptr_fast who ) +void overmap::insert_npc( const shared_ptr_fast &who ) { npcs.push_back( who ); g->set_npcs_dirty(); @@ -1969,7 +1967,7 @@ void overmap::move_hordes() // Check if the monster is a zombie. auto &type = *( this_monster.type ); if( - !type.species.count( ZOMBIE ) || // Only add zombies to hordes. + !type.species.count( species_ZOMBIE ) || // Only add zombies to hordes. type.id == mtype_id( "mon_jabberwock" ) || // Jabberwockies are an exception. this_monster.get_speed() <= 30 || // So are very slow zombies, like crawling zombies. !this_monster.will_join_horde( INT_MAX ) || // So are zombies who won't join a horde of any size. @@ -2746,24 +2744,24 @@ void overmap::place_river( point pa, point pb ) } } } - if( pb.x > x && ( rng( 0, int( OMAPX * 1.2 ) - 1 ) < pb.x - x || - ( rng( 0, int( OMAPX * .2 ) - 1 ) > pb.x - x && - rng( 0, int( OMAPY * .2 ) - 1 ) > std::abs( pb.y - y ) ) ) ) { + if( pb.x > x && ( rng( 0, static_cast( OMAPX * 1.2 ) - 1 ) < pb.x - x || + ( rng( 0, static_cast( OMAPX * 0.2 ) - 1 ) > pb.x - x && + rng( 0, static_cast( OMAPY * 0.2 ) - 1 ) > std::abs( pb.y - y ) ) ) ) { x++; } - if( pb.x < x && ( rng( 0, int( OMAPX * 1.2 ) - 1 ) < x - pb.x || - ( rng( 0, int( OMAPX * .2 ) - 1 ) > x - pb.x && - rng( 0, int( OMAPY * .2 ) - 1 ) > std::abs( pb.y - y ) ) ) ) { + if( pb.x < x && ( rng( 0, static_cast( OMAPX * 1.2 ) - 1 ) < x - pb.x || + ( rng( 0, static_cast( OMAPX * 0.2 ) - 1 ) > x - pb.x && + rng( 0, static_cast( OMAPY * 0.2 ) - 1 ) > std::abs( pb.y - y ) ) ) ) { x--; } - if( pb.y > y && ( rng( 0, int( OMAPY * 1.2 ) - 1 ) < pb.y - y || - ( rng( 0, int( OMAPY * .2 ) - 1 ) > pb.y - y && - rng( 0, int( OMAPX * .2 ) - 1 ) > std::abs( x - pb.x ) ) ) ) { + if( pb.y > y && ( rng( 0, static_cast( OMAPY * 1.2 ) - 1 ) < pb.y - y || + ( rng( 0, static_cast( OMAPY * 0.2 ) - 1 ) > pb.y - y && + rng( 0, static_cast( OMAPX * 0.2 ) - 1 ) > std::abs( x - pb.x ) ) ) ) { y++; } - if( pb.y < y && ( rng( 0, int( OMAPY * 1.2 ) - 1 ) < y - pb.y || - ( rng( 0, int( OMAPY * .2 ) - 1 ) > y - pb.y && - rng( 0, int( OMAPX * .2 ) - 1 ) > std::abs( x - pb.x ) ) ) ) { + if( pb.y < y && ( rng( 0, static_cast( OMAPY * 1.2 ) - 1 ) < y - pb.y || + ( rng( 0, static_cast( OMAPY * 0.2 ) - 1 ) > y - pb.y && + rng( 0, static_cast( OMAPX * 0.2 ) - 1 ) > std::abs( x - pb.x ) ) ) ) { y--; } x += rng( -1, 1 ); @@ -4465,12 +4463,12 @@ std::string enum_to_string( ot_match_type data ) { switch( data ) { // *INDENT-OFF* - case exact: return "EXACT"; - case type: return "TYPE"; - case prefix: return "PREFIX"; - case contains: return "CONTAINS"; + case ot_match_type::exact: return "EXACT"; + case ot_match_type::type: return "TYPE"; + case ot_match_type::prefix: return "PREFIX"; + case ot_match_type::contains: return "CONTAINS"; // *INDENT-ON* - case num_ot_match_type: + case ot_match_type::num_ot_match_type: break; } debugmsg( "Invalid ot_match_type" ); diff --git a/src/overmap.h b/src/overmap.h index 164a66dd5583c..e8680c5f62a24 100644 --- a/src/overmap.h +++ b/src/overmap.h @@ -79,7 +79,7 @@ enum class radio_type : int { WEATHER_RADIO }; -extern std::map radio_type_names; +extern std::map radio_type_names; #define RADIO_MIN_STRENGTH 80 #define RADIO_MAX_STRENGTH 200 @@ -156,40 +156,40 @@ class overmap_special_batch }; static const std::map oter_flags_map = { - { "KNOWN_DOWN", known_down }, - { "KNOWN_UP", known_up }, - { "RIVER", river_tile }, - { "SIDEWALK", has_sidewalk }, - { "NO_ROTATE", no_rotate }, - { "LINEAR", line_drawing }, - { "SUBWAY", subway_connection }, - { "LAKE", lake }, - { "LAKE_SHORE", lake_shore }, - { "GENERIC_LOOT", generic_loot }, - { "RISK_HIGH", risk_high }, - { "RISK_LOW", risk_low }, - { "SOURCE_AMMO", source_ammo }, - { "SOURCE_ANIMALS", source_animals }, - { "SOURCE_BOOKS", source_books }, - { "SOURCE_CHEMISTRY", source_chemistry }, - { "SOURCE_CLOTHING", source_clothing }, - { "SOURCE_CONSTRUCTION", source_construction }, - { "SOURCE_COOKING", source_cooking }, - { "SOURCE_DRINK", source_drink }, - { "SOURCE_ELECTRONICS", source_electronics }, - { "SOURCE_FABRICATION", source_fabrication }, - { "SOURCE_FARMING", source_farming }, - { "SOURCE_FOOD", source_food }, - { "SOURCE_FORAGE", source_forage }, - { "SOURCE_FUEL", source_fuel }, - { "SOURCE_GUN", source_gun }, - { "SOURCE_LUXURY", source_luxury }, - { "SOURCE_MEDICINE", source_medicine }, - { "SOURCE_PEOPLE", source_people }, - { "SOURCE_SAFETY", source_safety }, - { "SOURCE_TAILORING", source_tailoring }, - { "SOURCE_VEHICLES", source_vehicles }, - { "SOURCE_WEAPON", source_weapon } + { "KNOWN_DOWN", oter_flags::known_down }, + { "KNOWN_UP", oter_flags::known_up }, + { "RIVER", oter_flags::river_tile }, + { "SIDEWALK", oter_flags::has_sidewalk }, + { "NO_ROTATE", oter_flags::no_rotate }, + { "LINEAR", oter_flags::line_drawing }, + { "SUBWAY", oter_flags::subway_connection }, + { "LAKE", oter_flags::lake }, + { "LAKE_SHORE", oter_flags::lake_shore }, + { "GENERIC_LOOT", oter_flags::generic_loot }, + { "RISK_HIGH", oter_flags::risk_high }, + { "RISK_LOW", oter_flags::risk_low }, + { "SOURCE_AMMO", oter_flags::source_ammo }, + { "SOURCE_ANIMALS", oter_flags::source_animals }, + { "SOURCE_BOOKS", oter_flags::source_books }, + { "SOURCE_CHEMISTRY", oter_flags::source_chemistry }, + { "SOURCE_CLOTHING", oter_flags::source_clothing }, + { "SOURCE_CONSTRUCTION", oter_flags::source_construction }, + { "SOURCE_COOKING", oter_flags::source_cooking }, + { "SOURCE_DRINK", oter_flags::source_drink }, + { "SOURCE_ELECTRONICS", oter_flags::source_electronics }, + { "SOURCE_FABRICATION", oter_flags::source_fabrication }, + { "SOURCE_FARMING", oter_flags::source_farming }, + { "SOURCE_FOOD", oter_flags::source_food }, + { "SOURCE_FORAGE", oter_flags::source_forage }, + { "SOURCE_FUEL", oter_flags::source_fuel }, + { "SOURCE_GUN", oter_flags::source_gun }, + { "SOURCE_LUXURY", oter_flags::source_luxury }, + { "SOURCE_MEDICINE", oter_flags::source_medicine }, + { "SOURCE_PEOPLE", oter_flags::source_people }, + { "SOURCE_SAFETY", oter_flags::source_safety }, + { "SOURCE_TAILORING", oter_flags::source_tailoring }, + { "SOURCE_VEHICLES", oter_flags::source_vehicles }, + { "SOURCE_WEAPON", oter_flags::source_weapon } }; class overmap @@ -223,7 +223,7 @@ class overmap tripoint find_random_omt( const std::string &omt_base_type, ot_match_type match_type = ot_match_type::type ) const { return find_random_omt( std::make_pair( omt_base_type, match_type ) ); - }; + } /** * Return a vector containing the absolute coordinates of * every matching terrain on the current z level of the current overmap. @@ -324,7 +324,7 @@ class overmap std::map, std::vector> connections_out; cata::optional find_camp( const point &p ); /// Adds the npc to the contained list of npcs ( @ref npcs ). - void insert_npc( shared_ptr_fast who ); + void insert_npc( const shared_ptr_fast &who ); /// Removes the npc and returns it ( or returns nullptr if not found ). shared_ptr_fast erase_npc( const character_id &id ); diff --git a/src/overmap_connection.h b/src/overmap_connection.h index 03cf98a09ea9b..a680eba2dc635 100644 --- a/src/overmap_connection.h +++ b/src/overmap_connection.h @@ -23,7 +23,7 @@ class overmap_connection friend overmap_connection; public: - enum class flag { orthogonal }; + enum class flag : int { orthogonal }; public: string_id terrain; diff --git a/src/overmap_location.cpp b/src/overmap_location.cpp index 1210c0b40fa8f..b30fa62647abc 100644 --- a/src/overmap_location.cpp +++ b/src/overmap_location.cpp @@ -56,7 +56,7 @@ void overmap_location::load( const JsonObject &jo, const std::string & ) std::vector overmap_location::get_all_terrains() const { std::vector ret; - for( oter_type_str_id elem : terrains ) { + for( const oter_type_str_id &elem : terrains ) { ret.push_back( elem ); } return ret; diff --git a/src/overmap_ui.cpp b/src/overmap_ui.cpp index 5c214a1911f63..76c98cac809cc 100644 --- a/src/overmap_ui.cpp +++ b/src/overmap_ui.cpp @@ -28,6 +28,7 @@ #include "enums.h" #include "game.h" #include "game_constants.h" +#include "game_ui.h" #include "ime.h" #include "input.h" #include "int_id.h" @@ -168,7 +169,7 @@ static void update_note_preview( const std::string ¬e, draw_border( *w_preview ); // NOLINTNEXTLINE(cata-use-named-point-constants) mvwprintz( *w_preview, point( 1, 1 ), c_white, _( "Note preview" ) ); - wrefresh( *w_preview ); + wnoutrefresh( *w_preview ); werase( *w_preview_title ); nc_color default_color = c_unset; @@ -179,7 +180,7 @@ static void update_note_preview( const std::string ¬e, mvwputch( *w_preview_title, point( i, 1 ), c_white, LINE_OXOX ); } mvwputch( *w_preview_title, point( note_text_width, 1 ), c_white, LINE_XOOX ); - wrefresh( *w_preview_title ); + wnoutrefresh( *w_preview_title ); const int npm_offset_x = 1; const int npm_offset_y = 1; @@ -193,7 +194,7 @@ static void update_note_preview( const std::string ¬e, } mvwputch( *w_preview_map, point( npm_width / 2 + npm_offset_x, npm_height / 2 + npm_offset_y ), note_color, symbol ); - wrefresh( *w_preview_map ); + wnoutrefresh( *w_preview_map ); } static weather_type get_weather_at_point( const tripoint &pos ) @@ -1059,9 +1060,9 @@ void draw( const catacurses::window &w, const catacurses::window &wbar, const tr mvwputch( w, point( om_half_width + 1, om_half_height + 1 ), c_light_gray, LINE_XOOX ); } // Done with all drawing! - wrefresh( wbar ); + wnoutrefresh( wbar ); wmove( w, point( om_half_width, om_half_height ) ); - wrefresh( w ); + wnoutrefresh( w ); } void create_note( const tripoint &curs ) @@ -1234,7 +1235,7 @@ static bool search( const ui_adaptor &om_ui, tripoint &curs, const tripoint &ori mvwprintz( w_search, point( 1, 10 ), c_white, _( "Enter/Spacebar to select." ) ); mvwprintz( w_search, point( 1, 11 ), c_white, _( "q or ESC to return." ) ); draw_border( w_search ); - wrefresh( w_search ); + wnoutrefresh( w_search ); } ); std::string action; @@ -1360,7 +1361,7 @@ static void place_ter_or_special( const ui_adaptor &om_ui, tripoint &curs, mvwprintz( w_editor, point( 1, 12 ), c_white, _( "[%s] Apply" ), ctxt.get_desc( "CONFIRM" ) ); mvwprintz( w_editor, point( 1, 13 ), c_white, _( "[ESCAPE/Q] Cancel" ) ); - wrefresh( w_editor ); + wnoutrefresh( w_editor ); } ); std::string action; @@ -1403,8 +1404,18 @@ static void place_ter_or_special( const ui_adaptor &om_ui, tripoint &curs, static tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() ) { + background_pane bg_pane; + ui_adaptor ui; ui.on_screen_resize( []( ui_adaptor & ui ) { + /** + * Handle possibly different overmap font size + */ + OVERMAP_LEGEND_WIDTH = clamp( TERMX / 5, 28, 55 ); + OVERMAP_WINDOW_HEIGHT = TERMY; + OVERMAP_WINDOW_WIDTH = TERMX - OVERMAP_LEGEND_WIDTH; + to_overmap_font_dimension( OVERMAP_WINDOW_WIDTH, OVERMAP_WINDOW_HEIGHT ); + /* please do not change point( TERMX - OVERMAP_LEGEND_WIDTH, 0 ) to point( OVERMAP_WINDOW_WIDTH, 0 ) */ /* because overmap legend will be absent */ g->w_omlegend = catacurses::newwin( TERMY, OVERMAP_LEGEND_WIDTH, diff --git a/src/panels.cpp b/src/panels.cpp index 93c4dde60c3df..f00a7050b4d1e 100644 --- a/src/panels.cpp +++ b/src/panels.cpp @@ -35,6 +35,7 @@ #include "magic.h" #include "map.h" #include "messages.h" +#include "move_mode.h" #include "omdata.h" #include "options.h" #include "output.h" @@ -674,7 +675,7 @@ static std::pair temp_stat( const avatar &u ) return std::make_pair( temp_color, temp_string ); } -static std::string get_armor( const avatar &u, body_part bp, unsigned int truncate = 0 ) +static std::string get_armor( const avatar &u, bodypart_id bp, unsigned int truncate = 0 ) { for( std::list::const_iterator it = u.worn.end(); it != u.worn.begin(); ) { --it; @@ -930,7 +931,7 @@ static void draw_limb2( avatar &u, const catacurses::window &w ) werase( w ); // print limb health for( int i = 0; i < num_hp_parts; i++ ) { - const std::string str = body_part_hp_bar_ui_text( part[i]->token ); + const std::string str = body_part_hp_bar_ui_text( part[i] ); if( i % 2 == 0 ) { wmove( w, point( 0, i / 2 ) ); } else { @@ -967,7 +968,7 @@ static void draw_limb2( avatar &u, const catacurses::window &w ) const auto pwr = power_stat( u ); mvwprintz( w, point( 31 - utf8_width( pwr.second ), 1 ), pwr.first, pwr.second ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_stats( avatar &u, const catacurses::window &w ) @@ -993,29 +994,17 @@ static void draw_stats( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 25, 0 ), c_light_gray, _( "PER" ) ); mvwprintz( w, point( stat < 10 ? 30 : 29, 0 ), stat_clr, stat < 100 ? to_string( stat ) : "99+" ); - wrefresh( w ); + wnoutrefresh( w ); } static nc_color move_mode_color( avatar &u ) { - if( u.movement_mode_is( CMM_RUN ) ) { - return c_red; - } else if( u.movement_mode_is( CMM_CROUCH ) ) { - return c_light_blue; - } else { - return c_light_gray; - } + return u.current_movement_mode()->panel_color(); } -static std::string move_mode_string( avatar &u ) +static char move_mode_string( avatar &u ) { - if( u.movement_mode_is( CMM_RUN ) ) { - return pgettext( "movement-type", "R" ); - } else if( u.movement_mode_is( CMM_CROUCH ) ) { - return pgettext( "movement-type", "C" ); - } else { - return pgettext( "movement-type", "W" ); - } + return u.current_movement_mode()->panel_letter(); } static void draw_stealth( avatar &u, const catacurses::window &w ) @@ -1034,7 +1023,7 @@ static void draw_stealth( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 30 - utf8_width( snd ), 0 ), u.volume != 0 ? c_yellow : c_light_gray, snd ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_time_graphic( const catacurses::window &w ) @@ -1103,7 +1092,7 @@ static void draw_time( const avatar &u, const catacurses::window &w ) nc_color clr = c_white; print_colored_text( w, point( 27, 0 ), clr, c_white, get_moon_graphic() ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_needs_compact( const avatar &u, const catacurses::window &w ) @@ -1128,7 +1117,7 @@ static void draw_needs_compact( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 17, 2 ), c_light_gray, _( "Focus" ) ); mvwprintz( w, point( 24, 2 ), focus_color( u.focus_pool ), to_string( u.focus_pool ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_limb_narrow( avatar &u, const catacurses::window &w ) @@ -1166,12 +1155,12 @@ static void draw_limb_narrow( avatar &u, const catacurses::window &w ) nx = 19; } - std::string str = body_part_hp_bar_ui_text( part[i]->token ); + std::string str = body_part_hp_bar_ui_text( part[i] ); wmove( w, point( nx, ny ) ); str = left_justify( str, 5 ); wprintz( w, u.limb_color( part[i], true, true, true ), str + ":" ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_limb_wide( avatar &u, const catacurses::window &w ) @@ -1190,12 +1179,12 @@ static void draw_limb_wide( avatar &u, const catacurses::window &w ) int ny = offset / 45; int nx = offset % 45; std::string str = string_format( " %s: ", - left_justify( body_part_hp_bar_ui_text( parts[i].first->token ), 5 ) ); + left_justify( body_part_hp_bar_ui_text( parts[i].first ), 5 ) ); nc_color part_color = u.limb_color( parts[i].first, true, true, true ); print_colored_text( w, point( nx, ny ), part_color, c_white, str ); draw_limb_health( u, w, parts[i].second ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_char_narrow( avatar &u, const catacurses::window &w ) @@ -1212,7 +1201,7 @@ static void draw_char_narrow( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 19, 2 ), c_light_gray, _( "Move :" ) ); nc_color move_color = move_mode_color( u ); - std::string move_char = move_mode_string( u ); + char move_char = move_mode_string( u ); std::string movecost = std::to_string( u.movecounter ) + "(" + move_char + ")"; bool m_style = get_option( "MORALE_STYLE" ) == "horizontal"; std::string smiley = morale_emotion( morale_pair.second, get_face_type( u ), m_style ); @@ -1236,7 +1225,7 @@ static void draw_char_narrow( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 26, 0 ), morale_pair.first, "%s", smiley ); mvwprintz( w, point( 26, 1 ), focus_color( u.get_speed() ), "%s", u.get_speed() ); mvwprintz( w, point( 26, 2 ), move_color, "%s", movecost ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_char_wide( avatar &u, const catacurses::window &w ) @@ -1253,7 +1242,7 @@ static void draw_char_wide( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 31, 1 ), c_light_gray, _( "Move :" ) ); nc_color move_color = move_mode_color( u ); - std::string move_char = move_mode_string( u ); + char move_char = move_mode_string( u ); std::string movecost = std::to_string( u.movecounter ) + "(" + move_char + ")"; bool m_style = get_option( "MORALE_STYLE" ) == "horizontal"; std::string smiley = morale_emotion( morale_pair.second, get_face_type( u ), m_style ); @@ -1273,7 +1262,7 @@ static void draw_char_wide( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 23, 1 ), focus_color( u.get_speed() ), "%s", u.get_speed() ); mvwprintz( w, point( 38, 1 ), move_color, "%s", movecost ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_stat_narrow( avatar &u, const catacurses::window &w ) @@ -1301,7 +1290,7 @@ static void draw_stat_narrow( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 19, 2 ), c_light_gray, _( "Safe :" ) ); mvwprintz( w, point( 8, 2 ), pwr_pair.first, "%s", pwr_pair.second ); mvwprintz( w, point( 26, 2 ), safe_color(), g->safe_mode ? _( "On" ) : _( "Off" ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_stat_wide( avatar &u, const catacurses::window &w ) @@ -1327,7 +1316,7 @@ static void draw_stat_wide( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 31, 1 ), c_light_gray, _( "Safe :" ) ); mvwprintz( w, point( 38, 0 ), pwr_pair.first, "%s", pwr_pair.second ); mvwprintz( w, point( 38, 1 ), safe_color(), g->safe_mode ? _( "On" ) : _( "Off" ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_loc_labels( const avatar &u, const catacurses::window &w, bool minimap ) @@ -1373,7 +1362,7 @@ static void draw_loc_labels( const avatar &u, const catacurses::window &w, bool const tripoint curs = u.global_omt_location(); overmap_ui::draw_overmap_chunk( w, u, curs, point( offset, -1 ), 5, 5 ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_loc_narrow( const avatar &u, const catacurses::window &w ) @@ -1398,7 +1387,7 @@ static void draw_moon_narrow( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 1, 0 ), c_light_gray, _( "Moon : %s" ), get_moon() ); // NOLINTNEXTLINE(cata-use-named-point-constants) mvwprintz( w, point( 1, 1 ), c_light_gray, _( "Temp : %s" ), get_temp( u ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_moon_wide( const avatar &u, const catacurses::window &w ) @@ -1407,7 +1396,7 @@ static void draw_moon_wide( const avatar &u, const catacurses::window &w ) // NOLINTNEXTLINE(cata-use-named-point-constants) mvwprintz( w, point( 1, 0 ), c_light_gray, _( "Moon : %s" ), get_moon() ); mvwprintz( w, point( 23, 0 ), c_light_gray, _( "Temp : %s" ), get_temp( u ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_weapon_labels( const avatar &u, const catacurses::window &w ) @@ -1420,7 +1409,7 @@ static void draw_weapon_labels( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 1, 1 ), c_light_gray, _( "Style:" ) ); print_colored_text( w, point( 8, 0 ), color, c_light_gray, u.weapname( getmaxx( w ) - 8 ) ); mvwprintz( w, point( 8, 1 ), c_light_gray, "%s", u.martial_arts_data.selected_style_name( u ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_needs_narrow( const avatar &u, const catacurses::window &w ) @@ -1443,7 +1432,7 @@ static void draw_needs_narrow( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 8, 2 ), rest_pair.second, rest_pair.first ); mvwprintz( w, point( 8, 3 ), pain_pair.second, pain_pair.first ); mvwprintz( w, point( 8, 4 ), temp_pair.first, temp_pair.second ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_needs_labels( const avatar &u, const catacurses::window &w ) @@ -1467,7 +1456,7 @@ static void draw_needs_labels( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 30, 1 ), hunger_pair.second, hunger_pair.first ); mvwprintz( w, point( 1, 2 ), c_light_gray, _( "Heat :" ) ); mvwprintz( w, point( 8, 2 ), temp_pair.first, temp_pair.second ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_sound_labels( const avatar &u, const catacurses::window &w ) @@ -1480,7 +1469,7 @@ static void draw_sound_labels( const avatar &u, const catacurses::window &w ) } else { mvwprintz( w, point( 8, 0 ), c_red, _( "Deaf!" ) ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_sound_narrow( const avatar &u, const catacurses::window &w ) @@ -1493,7 +1482,7 @@ static void draw_sound_narrow( const avatar &u, const catacurses::window &w ) } else { mvwprintz( w, point( 8, 0 ), c_red, _( "Deaf!" ) ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_env_compact( avatar &u, const catacurses::window &w ) @@ -1531,7 +1520,7 @@ static void draw_env_compact( avatar &u, const catacurses::window &w ) mvwprintz( w, point( 31 - utf8_width( temp ), 5 ), c_light_gray, temp ); } - wrefresh( w ); + wnoutrefresh( w ); } static void render_wind( avatar &u, const catacurses::window &w, const std::string &formatstr ) @@ -1545,7 +1534,7 @@ static void render_wind( avatar &u, const catacurses::window &w, const std::stri u.pos(), g->weather.winddirection, g->is_sheltered( u.pos() ) ); mvwprintz( w, point( 8, 0 ), get_wind_color( windpower ), get_wind_desc( windpower ) + " " + get_wind_arrow( g->weather.winddirection ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_wind( avatar &u, const catacurses::window &w ) @@ -1577,7 +1566,7 @@ static void draw_health_classic( avatar &u, const catacurses::window &w ) // print limb health for( int i = 0; i < num_hp_parts; i++ ) { - const std::string str = body_part_hp_bar_ui_text( part[i]->token ); + const std::string str = body_part_hp_bar_ui_text( part[i] ); wmove( w, point( 8, i ) ); wprintz( w, u.limb_color( part[i], true, true, true ), str ); wmove( w, point( 14, i ) ); @@ -1635,7 +1624,7 @@ static void draw_health_classic( avatar &u, const catacurses::window &w ) if( !veh ) { mvwprintz( w, point( 21, 5 ), u.get_speed() < 100 ? c_red : c_white, _( "Spd " ) + to_string( u.get_speed() ) ); - nc_color move_color = u.movement_mode_is( CMM_WALK ) ? c_white : move_mode_color( u ); + nc_color move_color = move_mode_color( u ); std::string move_string = to_string( u.movecounter ) + " " + move_mode_string( u ); mvwprintz( w, point( 29, 5 ), move_color, move_string ); } @@ -1670,7 +1659,7 @@ static void draw_health_classic( avatar &u, const catacurses::window &w ) } } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_armor_padding( const avatar &u, const catacurses::window &w ) @@ -1686,12 +1675,17 @@ static void draw_armor_padding( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 1, 4 ), color, _( "Feet :" ) ); unsigned int max_length = getmaxx( w ) - 8; - print_colored_text( w, point( 8, 0 ), color, color, get_armor( u, bp_head, max_length ) ); - print_colored_text( w, point( 8, 1 ), color, color, get_armor( u, bp_torso, max_length ) ); - print_colored_text( w, point( 8, 2 ), color, color, get_armor( u, bp_arm_r, max_length ) ); - print_colored_text( w, point( 8, 3 ), color, color, get_armor( u, bp_leg_r, max_length ) ); - print_colored_text( w, point( 8, 4 ), color, color, get_armor( u, bp_foot_r, max_length ) ); - wrefresh( w ); + print_colored_text( w, point( 8, 0 ), color, color, get_armor( u, bodypart_id( "head" ), + max_length ) ); + print_colored_text( w, point( 8, 1 ), color, color, get_armor( u, bodypart_id( "torso" ), + max_length ) ); + print_colored_text( w, point( 8, 2 ), color, color, get_armor( u, bodypart_id( "arm_r" ), + max_length ) ); + print_colored_text( w, point( 8, 3 ), color, color, get_armor( u, bodypart_id( "leg_r" ), + max_length ) ); + print_colored_text( w, point( 8, 4 ), color, color, get_armor( u, bodypart_id( "foot_r" ), + max_length ) ); + wnoutrefresh( w ); } static void draw_armor( const avatar &u, const catacurses::window &w ) @@ -1706,12 +1700,17 @@ static void draw_armor( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 0, 4 ), color, _( "Feet :" ) ); unsigned int max_length = getmaxx( w ) - 7; - print_colored_text( w, point( 7, 0 ), color, color, get_armor( u, bp_head, max_length ) ); - print_colored_text( w, point( 7, 1 ), color, color, get_armor( u, bp_torso, max_length ) ); - print_colored_text( w, point( 7, 2 ), color, color, get_armor( u, bp_arm_r, max_length ) ); - print_colored_text( w, point( 7, 3 ), color, color, get_armor( u, bp_leg_r, max_length ) ); - print_colored_text( w, point( 7, 4 ), color, color, get_armor( u, bp_foot_r, max_length ) ); - wrefresh( w ); + print_colored_text( w, point( 7, 0 ), color, color, get_armor( u, bodypart_id( "head" ), + max_length ) ); + print_colored_text( w, point( 7, 1 ), color, color, get_armor( u, bodypart_id( "torso" ), + max_length ) ); + print_colored_text( w, point( 7, 2 ), color, color, get_armor( u, bodypart_id( "arm_r" ), + max_length ) ); + print_colored_text( w, point( 7, 3 ), color, color, get_armor( u, bodypart_id( "leg_r" ), + max_length ) ); + print_colored_text( w, point( 7, 4 ), color, color, get_armor( u, bodypart_id( "foot_r" ), + max_length ) ); + wnoutrefresh( w ); } static void draw_messages( avatar &, const catacurses::window &w ) @@ -1720,7 +1719,7 @@ static void draw_messages( avatar &, const catacurses::window &w ) int line = getmaxy( w ) - 2; int maxlength = getmaxx( w ); Messages::display_messages( w, 1, 0 /*topline*/, maxlength - 1, line ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_messages_classic( avatar &, const catacurses::window &w ) @@ -1729,7 +1728,7 @@ static void draw_messages_classic( avatar &, const catacurses::window &w ) int line = getmaxy( w ) - 2; int maxlength = getmaxx( w ); Messages::display_messages( w, 0, 0 /*topline*/, maxlength, line ); - wrefresh( w ); + wnoutrefresh( w ); } #if defined(TILES) @@ -1737,7 +1736,7 @@ static void draw_mminimap( avatar &, const catacurses::window &w ) { werase( w ); g->draw_pixel_minimap( w ); - wrefresh( w ); + wnoutrefresh( w ); } #endif @@ -1745,14 +1744,14 @@ static void draw_compass( avatar &, const catacurses::window &w ) { werase( w ); g->mon_info( w ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_compass_padding( avatar &, const catacurses::window &w ) { werase( w ); g->mon_info( w, 1 ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_veh_compact( const avatar &u, const catacurses::window &w ) @@ -1784,7 +1783,7 @@ static void draw_veh_compact( const avatar &u, const catacurses::window &w ) } } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_veh_padding( const avatar &u, const catacurses::window &w ) @@ -1801,10 +1800,10 @@ static void draw_veh_padding( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 7, 0 ), c_light_gray, to_string( ( veh->face.dir() + 90 ) % 360 ) + "°" ); // target speed > current speed const float strain = veh->strain(); - nc_color col_vel = strain <= 0 ? c_light_blue : - ( strain <= 0.2 ? c_yellow : - ( strain <= 0.4 ? c_light_red : c_red ) ); if( veh->cruise_on ) { + nc_color col_vel = strain <= 0 ? c_light_blue : + ( strain <= 0.2 ? c_yellow : + ( strain <= 0.4 ? c_light_red : c_red ) ); int t_speed = static_cast( convert_velocity( veh->cruise_velocity, VU_VEHICLE ) ); int c_speed = static_cast( convert_velocity( veh->velocity, VU_VEHICLE ) ); int offset = get_int_digits( t_speed ); @@ -1816,7 +1815,7 @@ static void draw_veh_padding( const avatar &u, const catacurses::window &w ) } } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_ai_goal( const avatar &u, const catacurses::window &w ) @@ -1828,7 +1827,7 @@ static void draw_ai_goal( const avatar &u, const catacurses::window &w ) std::string current_need = needs.tick( &player_oracle ); // NOLINTNEXTLINE(cata-use-named-point-constants) mvwprintz( w, point( 1, 0 ), c_light_gray, _( "Goal: %s" ), current_need ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_location_classic( const avatar &u, const catacurses::window &w ) @@ -1839,7 +1838,7 @@ static void draw_location_classic( const avatar &u, const catacurses::window &w mvwprintz( w, point( 10, 0 ), c_white, utf8_truncate( overmap_buffer.ter( u.global_omt_location() )->get_name(), getmaxx( w ) - 13 ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_weather_classic( avatar &, const catacurses::window &w ) @@ -1857,7 +1856,7 @@ static void draw_weather_classic( avatar &, const catacurses::window &w ) nc_color clr = c_white; print_colored_text( w, point( 38, 0 ), clr, c_white, get_moon_graphic() ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_lighting_classic( const avatar &u, const catacurses::window &w ) @@ -1875,7 +1874,7 @@ static void draw_lighting_classic( const avatar &u, const catacurses::window &w mvwprintz( w, point( 31, 0 ), c_red, _( "Deaf!" ) ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_weapon_classic( const avatar &u, const catacurses::window &w ) @@ -1894,7 +1893,7 @@ static void draw_weapon_classic( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 31, 0 ), style_color, style ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_time_classic( const avatar &u, const catacurses::window &w ) @@ -1922,7 +1921,7 @@ static void draw_time_classic( const avatar &u, const catacurses::window &w ) mvwprintz( w, point( 31, 0 ), c_light_gray, _( "Temp : " ) + temp ); } - wrefresh( w ); + wnoutrefresh( w ); } static void draw_hint( const avatar &, const catacurses::window &w ) @@ -1933,7 +1932,7 @@ static void draw_hint( const avatar &, const catacurses::window &w ) mvwprintz( w, point( 1, 0 ), c_light_green, press ); mvwprintz( w, point( 2 + utf8_width( press ), 0 ), c_white, _( "to open sidebar options" ) ); - wrefresh( w ); + wnoutrefresh( w ); } static void print_mana( const player &u, const catacurses::window &w, const std::string &fmt_string, @@ -1952,7 +1951,7 @@ static void print_mana( const player &u, const catacurses::window &w, const std: nc_color gray = c_light_gray; print_colored_text( w, point_zero, gray, gray, mana_string ); - wrefresh( w ); + wnoutrefresh( w ); } static void draw_mana_classic( const player &u, const catacurses::window &w ) @@ -2341,7 +2340,7 @@ void panel_manager::show_adm() col_width ) + ":" ); mvwprintz( w, point( col_offset, 6 ), c_white, _( "Exit" ) ); - wrefresh( w ); + wnoutrefresh( w ); } ); while( !exit ) { @@ -2405,8 +2404,7 @@ void panel_manager::show_adm() int h; // to_map_font_dimension needs a second input to_map_font_dimension( width, h ); // tell the game that the main screen might have a different size now. - g->init_ui( false ); - g->invalidate_main_ui_adaptor(); + g->mark_main_ui_adaptor_resize(); recalc = true; } else if( !swapping && ( action == "RIGHT" || action == "LEFT" ) ) { // there are only two columns diff --git a/src/pickup.cpp b/src/pickup.cpp index 1c25a75a1528b..7ba747e0617e4 100644 --- a/src/pickup.cpp +++ b/src/pickup.cpp @@ -57,6 +57,8 @@ using ItemCount = std::pair; using PickupMap = std::map; +static const itype_id itype_water( "water" ); + // Pickup helper functions static bool pick_one_up( item_location &loc, int quantity, bool &got_water, bool &offered_swap, PickupMap &mapPickup, bool autopickup ); @@ -262,6 +264,9 @@ bool pick_one_up( item_location &loc, int quantity, bool &got_water, bool &offer bool did_prompt = false; if( newit.count_by_charges() ) { newit.charges -= u.i_add( newit ).charges; + // if the item stacks with another item when added, + // the charges returned may be larger than the charges of the item added. + newit.charges = std::max( 0, newit.charges ); } if( newit.is_ammo() && newit.charges <= 0 ) { picked_up = true; @@ -270,7 +275,7 @@ bool pick_one_up( item_location &loc, int quantity, bool &got_water, bool &offer if( !( got_water = !( u.crush_frozen_liquid( newloc ) ) ) ) { option = STASH; } - } else if( newit.made_of_from_type( LIQUID ) && !newit.is_frozen_liquid() ) { + } else if( newit.made_of_from_type( phase_id::LIQUID ) && !newit.is_frozen_liquid() ) { got_water = true; } else if( !u.can_pickWeight( newit, false ) ) { if( !autopickup ) { @@ -449,7 +454,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) if( ( !isEmpty ) && g->m.furn( p ) == f_toilet ) { isEmpty = true; for( const item &maybe_water : g->m.i_at( p ) ) { - if( maybe_water.typeId() != "water" || maybe_water.is_frozen_liquid() ) { + if( maybe_water.typeId() != itype_water || maybe_water.is_frozen_liquid() ) { isEmpty = false; break; } @@ -516,7 +521,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) } std::vector> stacked_here; - for( item_stack::iterator it : here ) { + for( const item_stack::iterator &it : here ) { bool found_stack = false; for( std::list &stack : stacked_here ) { if( stack.front()->display_stacked_with( *it ) ) { @@ -650,7 +655,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) draw_item_info( w_item_info, dummy ); } else { werase( w_item_info ); - wrefresh( w_item_info ); + wnoutrefresh( w_item_info ); } draw_custom_border( w_item_info, 0 ); @@ -659,7 +664,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) trim_and_print( w_item_info, point( 4, 0 ), pickupW - 8, selected_item.color_in_inventory(), selected_item.display_name() ); wprintw( w_item_info, " >" ); - wrefresh( w_item_info ); + wnoutrefresh( w_item_info ); const std::string pickup_chars = ctxt.get_available_single_char_hotkeys( all_pickup_chars ); @@ -702,7 +707,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) // TODO: transition to the item_location system used for the inventory unsigned int charges_total = 0; for( const item_stack::iterator &it : stacked_here[true_it] ) { - charges_total += it->charges; + charges_total += it->ammo_remaining(); } //Picking up none or all the cards in a stack if( !getitem[true_it].pick || getitem[true_it].count == 0 ) { @@ -713,7 +718,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) int c = getitem[true_it].count; for( std::list::iterator it = stacked_here[true_it].begin(); it != stacked_here[true_it].end() && c > 0; ++it, --c ) { - charges += ( *it )->charges; + charges += ( *it )->ammo_remaining(); } item_name = stacked_here[true_it].front()->display_money( getitem[true_it].count, charges_total, charges ); @@ -772,7 +777,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) fmted_weight_predict, fmted_weight_capacity, fmted_volume_predict, fmted_volume_capacity ) ); - wrefresh( w_pickup ); + wnoutrefresh( w_pickup ); } ); // Now print the two lists; those on the ground and about to be added to inv diff --git a/src/pimpl.h b/src/pimpl.h index f09d39eb03763..783745f8af1b5 100644 --- a/src/pimpl.h +++ b/src/pimpl.h @@ -45,13 +45,13 @@ class pimpl : private std::unique_ptr ... args ) : std::unique_ptr( new T( std::forward

+// +// Each xxx_info function takes a std::vector reference, where each line or snippet of +// info will be appended. The main item::info function assembles all these into a string. +// +// The test cases here mostly test item::info directly, using std::vector flags to +// request only the parts relevant to the current test. +// +// To run all the tests in this file: +// +// tests/cata_test [iteminfo] +// +// Other tags: [book], [food], [pocket], [quality], [weapon], [volume], [weight], and many others + + +// Call the info() function on an item with given flags, and return the formatted string. +static std::string item_info_str( const item &it, const std::vector &part_flags ) +{ + // Old captures from test_info_equals/contains, in case needed + //int encumber = i.type->armor ? i.type->armor->encumber : -1; + //int max_encumber = i.type->armor ? i.type->armor->max_encumber : -1; + //CAPTURE( encumber ); + //CAPTURE( max_encumber ); + //CAPTURE( i.typeId() ); + //CAPTURE( i.has_flag( "FIT" ) ); + //CAPTURE( i.has_flag( "VARSIZE" ) ); + //CAPTURE( i.get_clothing_mod_val( clothing_mod_type_encumbrance ) ); + //CAPTURE( i.get_sizing( g->u, true ) ); + std::vector info_v; - std::string info = i.info( info_v, &q, 1 ); - using Catch::Matchers::Contains; - REQUIRE_THAT( info, Contains( reference ) ); + const iteminfo_query query_v( part_flags ); + it.info( info_v, &query_v, 1 ); + return format_item_info( info_v, {} ); } -/* - * Wrap the iteminfo_query() constructor to avoid MacOS clang compiler errors like this: - * - * iteminfo_test.cpp:NN: error: call to constructor of 'iteminfo_query' is ambiguous - * iteminfo_query q( { iteminfo_parts::BASE_RIGIDITY, iteminfo_parts::ARMOR_ENCUMBRANCE } ); - * ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * ../src/iteminfo_query.h:245:9: note: candidate constructor - * iteminfo_query( const std::string &bits ); - * ../src/iteminfo_query.h:246:9: note: candidate constructor - * iteminfo_query( const std::vector &setBits ); - * - * Using this wrapper should force it to use the vector constructor. - */ -static iteminfo_query q_vec( const std::vector &part_flags ) +// Related JSON fields: +// "volume" +// "weight" +// "longest_side" +// +// Functions: +// item::basic_info +TEST_CASE( "item volume and weight", "[iteminfo][volume][weight]" ) { - return iteminfo_query( part_flags ); + clear_avatar(); + + item plank( "test_2x4" ); + + // Volume and weight are shown together, though the units may differ + std::vector vol_weight = { iteminfo_parts::BASE_VOLUME, iteminfo_parts::BASE_WEIGHT }; + + SECTION( "metric volume" ) { + override_option opt_volume( "VOLUME_UNITS", "l" ); + SECTION( "metric weight" ) { + override_option opt_weight( "USE_METRIC_WEIGHTS", "kg" ); + CHECK( item_info_str( plank, vol_weight ) == + "Volume: 4.40 L Weight: 2.20 kg\n" ); + } + SECTION( "imperial weight" ) { + override_option opt_weight( "USE_METRIC_WEIGHTS", "lbs" ); + CHECK( item_info_str( plank, vol_weight ) == + "Volume: 4.40 L Weight: 4.85 lbs\n" ); + } + } + + SECTION( "imperial volume" ) { + override_option opt_volume( "VOLUME_UNITS", "qt" ); + SECTION( "metric weight" ) { + override_option opt_weight( "USE_METRIC_WEIGHTS", "kg" ); + CHECK( item_info_str( plank, vol_weight ) == + "Volume: 4.65 qt Weight: 2.20 kg\n" ); + } + SECTION( "imperial weight" ) { + override_option opt_weight( "USE_METRIC_WEIGHTS", "lbs" ); + CHECK( item_info_str( plank, vol_weight ) == + "Volume: 4.65 qt Weight: 4.85 lbs\n" ); + } + } + + SECTION( "imperial length" ) { + override_option opt_dist( "DISTANCE_UNITS", "imperial" ); + CHECK( item_info_str( plank, { iteminfo_parts::BASE_LENGTH } ) == + "Length: 51 in.\n" ); + } + + SECTION( "metric length" ) { + override_option opt_dist( "DISTANCE_UNITS", "metric" ); + CHECK( item_info_str( plank, { iteminfo_parts::BASE_LENGTH } ) == + "Length: 130 cm\n" ); + } } -TEST_CASE( "item description and physical attributes", "[item][iteminfo][primary]" ) +// Related JSON fields: +// "material" +// "category" +// "description" +// +// Functions: +// item::basic_info +TEST_CASE( "item material, category, description", "[iteminfo][material][category][description]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::BASE_CATEGORY, iteminfo_parts::BASE_MATERIAL, - iteminfo_parts::BASE_VOLUME, iteminfo_parts::BASE_WEIGHT, - iteminfo_parts::DESCRIPTION - } ); - override_option opt( "USE_METRIC_WEIGHTS", "lbs" ); - SECTION( "volume, weight, category, material, description" ) { - test_info_equals( - item( "test_jug_plastic" ), q, - "Material: Plastic\n" - "Volume: 3.750 L Weight: 0.42 lbs\n" - "Category: CONTAINERS\n" - "--\n" - "A standard plastic jug used for milk and household cleaning chemicals.\n" ); + // TODO: Test magical focus, in-progress crafts (also part of DESCRIPTION) + + std::vector material = { iteminfo_parts::BASE_MATERIAL }; + std::vector category = { iteminfo_parts::BASE_CATEGORY }; + std::vector description = { iteminfo_parts::DESCRIPTION }; + + SECTION( "fire ax" ) { + item axe( "test_fire_ax" ); + CHECK( item_info_str( axe, material ) == + "Material: Steel, Wood\n" ); + + CHECK( item_info_str( axe, category ) == + "Category: TOOLS\n" ); + + CHECK( item_info_str( axe, description ) == + "--\n" + "This is a large, two-handed pickhead axe normally used by firefighters." + " It makes a powerful melee weapon, but is a bit slow to recover between swings.\n" ); + } + + SECTION( "plank" ) { + item plank( "test_2x4" ); + + CHECK( item_info_str( plank, material ) == + "Material: Wood\n" ); + + CHECK( item_info_str( plank, category ) == + "Category: SPARE PARTS\n" ); + + CHECK( item_info_str( plank, description ) == + "--\n" + "A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional lumber." + " Makes a decent melee weapon, and can be used for all kinds of construction.\n" ); } } -TEST_CASE( "item owner, price, and barter value", "[item][iteminfo][price]" ) +// Related JSON fields: +// none +// +// Functions: +// item::basic_info +TEST_CASE( "item owner", "[iteminfo][owner]" ) { clear_avatar(); - iteminfo_query q = q_vec( std::vector( { iteminfo_parts::BASE_PRICE, iteminfo_parts::BASE_BARTER } ) ); - SECTION( "owner and price" ) { + SECTION( "item owned by player" ) { item my_rock( "test_rock" ); my_rock.set_owner( g->u ); - test_info_equals( - my_rock, q, - "Owner: Your Followers\n" - "--\n" - "Price: $0.00" ); + REQUIRE_FALSE( my_rock.get_owner().is_null() ); + CHECK( item_info_str( my_rock, { iteminfo_parts::BASE_OWNER } ) == "Owner: Your Followers\n" ); + } + + SECTION( "item with no owner" ) { + item nobodys_rock( "test_rock" ); + REQUIRE( nobodys_rock.get_owner().is_null() ); + CHECK( item_info_str( nobodys_rock, { iteminfo_parts::BASE_OWNER } ).empty() ); + } +} + +// Related JSON fields: +// "min_skills" +// "min_strength" +// "min_intelligence" +// "min_perception" +// +// Functions: +// item::basic_info +TEST_CASE( "item requirements", "[iteminfo][requirements]" ) +{ + // TODO: + // - get_min_str() - type->min_str with special gun/gunmod handling + + // NOTE: BOOK_REQUIREMENTS_INT is separate + // NOTE: There are presently no in-game items with min_dex, min_int, or min_per + + clear_avatar(); + + std::vector reqs = { iteminfo_parts::BASE_REQUIREMENTS }; + + item compbow( "test_compbow" ); + item sonic( "test_sonic_screwdriver" ); + + REQUIRE( compbow.type->min_str == 6 ); + CHECK( item_info_str( compbow, reqs ) == + "--\n" + "Minimum requirements:\n" + "strength 6\n" ); + + REQUIRE( sonic.type->min_int == 9 ); + REQUIRE( sonic.type->min_per == 5 ); + CHECK( item_info_str( sonic, reqs ) == + "--\n" + "Minimum requirements:\n" + "intelligence 9, perception 5, electronics 3, and lock picking 2\n" ); +} + +// Functions: +// item::basic_info +TEST_CASE( "item contents", "[iteminfo][contents]" ) +{ + clear_avatar(); + + // TODO: Test "Contains:", if it is still possible (couldn't find any items with it) + //std::vector contents = { iteminfo_parts::BASE_CONTENTS }; + + // Amount is shown for items having count_by_charges(), and are not food or medication + // This includes all kinds of ammo and arrows, thread, and some chemicals like sulfur. + item ammo( "test_9mm_ammo" ); + std::vector amount = { iteminfo_parts::BASE_AMOUNT }; + CHECK( item_info_str( ammo, amount ) == "--\nAmount: 50\n" ); +} + +// Related JSON fields: +// "comestible_type": "MED": +// "quench" +// "fun" +// "stim" +// "charges" (portions) +// "addiction_potential" +// +// Functions: +// item::med_info +TEST_CASE( "med_info", "[iteminfo][med]" ) +{ + clear_avatar(); + + // Parts to test + std::vector quench = { iteminfo_parts::MED_QUENCH }; + std::vector joy = { iteminfo_parts::MED_JOY }; + std::vector stimulation = { iteminfo_parts::MED_STIMULATION }; + std::vector portions = { iteminfo_parts::MED_PORTIONS }; + std::vector consume_time = { iteminfo_parts::MED_CONSUME_TIME }; + std::vector addicting = { iteminfo_parts::DESCRIPTION_MED_ADDICTING }; + + // Items with comestible_type "MED" + SECTION( "item that is medication shows medicinal attributes in med_info" ) { + item gum( "test_gum" ); + REQUIRE( gum.is_medication() ); + + CHECK( item_info_str( gum, quench ) == + "--\nQuench: 50\n" ); + + CHECK( item_info_str( gum, joy ) == + "--\nEnjoyability: 5\n" ); + + CHECK( item_info_str( gum, stimulation ) == + "--\nStimulation: Upper\n" ); + + CHECK( item_info_str( gum, portions ) == + "--\nPortions: 10\n" ); + + CHECK( item_info_str( gum, consume_time ) == + "--\nConsume time: 5 seconds\n" ); + + CHECK( item_info_str( gum, addicting ) == + "--\n* Consuming this item is addicting.\n" ); } - SECTION( "owner, price and barter value" ) { - item my_pipe( "test_pipe" ); - my_pipe.set_owner( g->u ); - test_info_equals( - my_pipe, q, - "Owner: Your Followers\n" - "--\n" - "Price: $75.00 Barter value: $3.00\n" ); + SECTION( "item that is not medication does not show med_info" ) { + item apple( "test_apple" ); + REQUIRE_FALSE( apple.is_medication() ); + + CHECK( item_info_str( apple, quench ).empty() ); + CHECK( item_info_str( apple, joy ).empty() ); + CHECK( item_info_str( apple, stimulation ).empty() ); + CHECK( item_info_str( apple, portions ).empty() ); + CHECK( item_info_str( apple, consume_time ).empty() ); + CHECK( item_info_str( apple, addicting ).empty() ); } +} + +// Related JSON fields: +// "price" +// "price_postapoc" +// +// Functions: +// item::final_info +TEST_CASE( "item price and barter value", "[iteminfo][price]" ) +{ + clear_avatar(); + + // Price and barter value are displayed together on a single line + std::vector price_barter = { iteminfo_parts::BASE_PRICE, iteminfo_parts::BASE_BARTER }; - SECTION( "zero price item with no owner" ) { - test_info_equals( - item( "test_rock" ), q, - "--\n" - "Price: $0.00" ); + SECTION( "item with different price and barter value" ) { + item pipe( "test_pipe" ); + REQUIRE( pipe.price( false ) == 7500 ); + REQUIRE( pipe.price( true ) == 300 ); + + CHECK( item_info_str( pipe, price_barter ) == + "--\n" + "Price: $75.00 Barter value: $3.00\n" ); + } + + SECTION( "item with same price and barter value shows only price" ) { + item nuts( "test_pine_nuts" ); + REQUIRE( nuts.price( false ) == 136 ); + REQUIRE( nuts.price( true ) == 136 ); + + CHECK( item_info_str( nuts, price_barter ) == + "--\n" + "Price: $1.36" ); + } + + SECTION( "item with no price or barter value" ) { + item rock( "test_rock" ); + REQUIRE( rock.price( false ) == 0 ); + REQUIRE( rock.price( true ) == 0 ); + + CHECK( item_info_str( rock, price_barter ) == + "--\n" + "Price: $0.00" ); } } -TEST_CASE( "item rigidity", "[item][iteminfo][rigidity]" ) +// Related JSON fields: +// "encumbrance" +// "max_encumbrance" +// "pocket_data" +// - "rigid" +// - "max_contains_volume" +// +// Functions: +// item::armor_info +TEST_CASE( "item rigidity", "[iteminfo][rigidity]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::BASE_RIGIDITY, iteminfo_parts::ARMOR_ENCUMBRANCE } ); + + // Rigidity and encumbrance are related; non-rigid items have flexible encumbrance. + std::vector rigidity = { iteminfo_parts::BASE_RIGIDITY }; + std::vector encumbrance = { iteminfo_parts::ARMOR_ENCUMBRANCE }; + + SECTION( "items with rigid pockets have a single encumbrance value" ) { + item briefcase( "test_briefcase" ); + REQUIRE( briefcase.contents.all_pockets_rigid() ); + CHECK( item_info_str( briefcase, encumbrance ) == + "--\n" + "Encumbrance: 30\n" ); + } SECTION( "non-rigid items indicate their flexible volume/encumbrance" ) { - // Waterskin uses the default encumbrance increase of 1 per 250ml - test_info_equals( - item( "test_waterskin" ), q, - "--\n" - "Encumbrance: 0" - " Encumbrance when full: 6\n" - "--\n" - "* This item is not rigid." - " Its volume and encumbrance increase with contents.\n" ); - - // test_backpack has an explicit max_encumbrance - test_info_equals( - item( "test_backpack" ), q, - "--\n" - "Encumbrance: 2" - " Encumbrance when full: 15\n" - "--\n" - "* This item is not rigid." - " Its volume and encumbrance increase with contents.\n" ); - - // quiver has no volume, only an implicit volume via ammo - test_info_equals( - item( "quiver" ), q, - "--\n" - "Encumbrance: 3" - " Encumbrance when full: 11\n" - "--\n" - "* This item is not rigid." - " Its volume and encumbrance increase with contents.\n" ); - } - - SECTION( "rigid items do not indicate they are rigid, since almost all items are" ) { - test_info_equals( - item( "test_briefcase" ), q, - "--\n" - "Encumbrance: 30\n" ); - - test_info_equals( item( "test_jug_plastic" ), q, "" ); - test_info_equals( item( "test_pipe" ), q, "" ); - test_info_equals( item( "test_pine_nuts" ), q, "" ); - } -} - -TEST_CASE( "weapon attack ratings and moves", "[item][iteminfo][weapon]" ) + item waterskin( "test_waterskin" ); + item backpack( "test_backpack" ); + item quiver( "test_quiver" ); + + SECTION( "rigidity indicator" ) { + REQUIRE_FALSE( waterskin.contents.all_pockets_rigid() ); + REQUIRE_FALSE( backpack.contents.all_pockets_rigid() ); + REQUIRE_FALSE( quiver.contents.all_pockets_rigid() ); + + CHECK( item_info_str( waterskin, rigidity ) == + "--\n" + "* This item is not rigid." + " Its volume and encumbrance increase with contents.\n" ); + + CHECK( item_info_str( backpack, rigidity ) == + "--\n" + "* This item is not rigid." + " Its volume and encumbrance increase with contents.\n" ); + + CHECK( item_info_str( quiver, rigidity ) == + "--\n" + "* This item is not rigid." + " Its volume and encumbrance increase with contents.\n" ); + } + + SECTION( "encumbrance when empty and full" ) { + // test_waterskin does not define "encumbrance" or "max_encumbrance", so base + // encumbrance is 0, and max_encumbrance is set by the item factory (finalize_post) + // based on the pocket "max_contains_volume" (1 encumbrance per 250 ml). + CHECK( item_info_str( waterskin, encumbrance ) == + "--\n" + "Encumbrance: 0" + " Encumbrance when full: 6\n" ); + + // test_backpack has an explicit "encumbrance" and "max_encumbrance" + CHECK( item_info_str( backpack, encumbrance ) == + "--\n" + "Encumbrance: 2" + " Encumbrance when full: 15\n" ); + + // quiver has no volume, only an implicit volume via ammo + CHECK( item_info_str( quiver, encumbrance ) == + "--\n" + "Encumbrance: 3" + " Encumbrance when full: 11\n" ); + } + } +} + +// Related JSON fields: +// "bashing" +// "cutting" +// "to_hit" +// +// Functions: +// item::combat_info +TEST_CASE( "weapon attack ratings and moves", "[iteminfo][weapon]" ) { clear_avatar(); // new DPS calculations depend on the avatar's stats, so make sure they're consistent REQUIRE( g->u.get_str() == 8 ); REQUIRE( g->u.get_dex() == 8 ); - iteminfo_query q = q_vec( { iteminfo_parts::BASE_DAMAGE, iteminfo_parts::BASE_TOHIT, - iteminfo_parts::BASE_MOVES - } ); - - SECTION( "bash damage" ) { - test_info_equals( - item( "test_rock" ), q, - "--\n" - "Melee damage: Bash: 7" - " To-hit bonus: -2\n" - "Moves per attack: 79\n" - "Typical damage per second:\n" - "Best: 4.92" - " Vs. Agile: 2.05" - " Vs. Armored: 0.15\n" ); + + item rag( "test_rag" ); + item rock( "test_rock" ); + item halligan( "test_halligan" ); + item mr_pointy( "test_pointy_stick" ); + item arrow( "test_arrow_wood" ); + + SECTION( "melee damage" ) { + // Melee damage comes from the "bashing" and "cutting" attributes in JSON + + // NOTE: BASE_DAMAGE info has no newline, since BASE_TOHIT always follows it + std::vector damage = { iteminfo_parts::BASE_DAMAGE }; + + SECTION( "no damage" ) { + CHECK( item_info_str( rag, damage ).empty() ); + } + + SECTION( "bash" ) { + CHECK( item_info_str( rock, damage ) == + "--\n" + "Melee damage:" + " Bash: 7" ); + } + SECTION( "bash and cut" ) { + CHECK( item_info_str( halligan, damage ) == + "--\n" + "Melee damage:" + " Bash: 20" + " Cut: 5" ); + } + SECTION( "bash and pierce" ) { + // Pierce damage comes from "cut" value, if item has the STAB or SPEAR flag + REQUIRE( mr_pointy.has_flag( "SPEAR" ) ); + CHECK( item_info_str( mr_pointy, damage ) == + "--\n" + "Melee damage:" + " Bash: 5" + " Pierce: 9" ); + } + SECTION( "bash and cut (ranged ammo)" ) { + CHECK( item_info_str( arrow, damage ) == + "--\n" + "Melee damage:" + " Bash: 2" + " Cut: 1" ); + } + } + + SECTION( "to-hit rating" ) { + // To-hit rating comes from the "to_hit" attribute in the item's JSON. + + std::vector to_hit = { iteminfo_parts::BASE_TOHIT }; + + CHECK( item_info_str( rock, to_hit ) == + "--\n" + " To-hit bonus: -2\n" ); + + CHECK( item_info_str( halligan, to_hit ) == + "--\n" + " To-hit bonus: +2\n" ); + + CHECK( item_info_str( mr_pointy, to_hit ) == + "--\n" + " To-hit bonus: -1\n" ); + + CHECK( item_info_str( arrow, to_hit ) == + "--\n" + " To-hit bonus: +0\n" ); } - SECTION( "bash and cut damage" ) { - test_info_equals( - item( "test_halligan" ), q, - "--\n" - "Melee damage: Bash: 20" - " Cut: 5" - " To-hit bonus: +2\n" - "Moves per attack: 145\n" - "Typical damage per second:\n" - "Best: 9.38" - " Vs. Agile: 5.74" - " Vs. Armored: 2.84\n" ); + SECTION( "base moves" ) { + // Moves are calculated in item::attack_time based on item volume, weight, and count. + // Those calculations are outside the scope of these tests, but we can at least ensure + // they have expected values before checking the item info string. + // If one of these fails, it suggests attack_time() changed: + REQUIRE( rock.attack_time() == 79 ); + REQUIRE( halligan.attack_time() == 145 ); + REQUIRE( mr_pointy.attack_time() == 100 ); + REQUIRE( arrow.attack_time() == 65 ); + + std::vector moves = { iteminfo_parts::BASE_MOVES }; + + CHECK( item_info_str( rock, moves ) == + "--\n" + "Moves per attack: 79\n" ); + + CHECK( item_info_str( halligan, moves ) == + "--\n" + "Moves per attack: 145\n" ); + + CHECK( item_info_str( mr_pointy, moves ) == + "--\n" + "Moves per attack: 100\n" ); + + CHECK( item_info_str( arrow, moves ) == + "--\n" + "Moves per attack: 65\n" ); } - SECTION( "bash and pierce damage" ) { - test_info_equals( - item( "pointy_stick" ), q, - "--\n" - "Melee damage: Bash: 5" - " Pierce: 9" - " To-hit bonus: -1\n" - "Moves per attack: 100\n" - "Typical damage per second:\n" - "Best: 6.87" - " Vs. Agile: 3.20" - " Vs. Armored: 0.12\n" ); + SECTION( "base damage per second" ) { + // Damage per second is dynamically calculated in item::dps and item::effective_dps based on + // many different factors, all outside the scope of these tests. Here we just hope they + // have the expected values in the item info summary. + + std::vector dps = { iteminfo_parts::BASE_DPS }; + + CHECK( item_info_str( rock, dps ) == + "--\n" + "Typical damage per second:\n" + "Best: 4.92" + " Vs. Agile: 2.05" + " Vs. Armored: 0.15\n" ); + + CHECK( item_info_str( halligan, dps ) == + "--\n" + "Typical damage per second:\n" + "Best: 9.38" + " Vs. Agile: 5.74" + " Vs. Armored: 2.84\n" ); + + CHECK( item_info_str( mr_pointy, dps ) == + "--\n" + "Typical damage per second:\n" + "Best: 6.87" + " Vs. Agile: 3.20" + " Vs. Armored: 0.12\n" ); + + CHECK( item_info_str( arrow, dps ) == + "--\n" + "Typical damage per second:\n" + "Best: 4.90" + " Vs. Agile: 2.46" + " Vs. Armored: 0.00\n" ); } +} + +// Related JSON fields: +// "techniques" - list of technique ids, ex. [ "WBLOCK_1", "BRUTAL", "SWEEP" ] +// +// Technique descriptions are defined in data/json/techniques.json +// +// Functions: +// item::combat_info +TEST_CASE( "techniques when wielded", "[iteminfo][weapon][techniques]" ) +{ + clear_avatar(); + + item halligan( "test_halligan" ); + CHECK( item_info_str( halligan, { iteminfo_parts::DESCRIPTION_TECHNIQUES } ) == + "--\n" + "Techniques when wielded:" + " Brutal Strike:" + " Stun 1 turn, knockback 1 tile, crit only," + " Sweep Attack:" + " Down 2 turns, and" + " Block:" + " Medium blocking ability\n" ); + + item plank( "test_2x4" ); + CHECK( item_info_str( plank, { iteminfo_parts::DESCRIPTION_TECHNIQUES } ) == + "--\n" + "Techniques when wielded:" + " Block:" + " Medium blocking ability\n" ); +} + +// Related JSON fields: +// "covers" +// "coverage" +// "warmth" +// "encumbrance" +// +// Functions: +// item::armor_info +TEST_CASE( "armor coverage, warmth, and encumbrance", "[iteminfo][armor][coverage]" ) +{ + clear_avatar(); - SECTION( "melee and ranged damaged" ) { - test_info_equals( - item( "arrow_wood" ), q, - "--\n" - "Melee damage: Bash: 2" - " Cut: 1" - " To-hit bonus: +0\n" - "Moves per attack: 65\n" - "Typical damage per second:\n" - "Best: 4.90" - " Vs. Agile: 2.46" - " Vs. Armored: 0.00\n" ); + SECTION( "armor with coverage shows covered body parts, warmth, encumbrance, and protection values" ) { + // Long-sleeved shirt covering torso and arms + item longshirt( "test_longshirt" ); + REQUIRE( longshirt.get_covered_body_parts().any() ); + + CHECK( item_info_str( longshirt, { iteminfo_parts::ARMOR_BODYPARTS } ) == + "--\n" + "Covers:" + " The torso." + " The arms. \n" ); // NOLINT(cata-text-style) + + CHECK( item_info_str( longshirt, { iteminfo_parts::ARMOR_LAYER } ) == + "--\n" + "Layer: Normal. \n" ); // NOLINT(cata-text-style) + + // Coverage and warmth are displayed together on a single line + std::vector cov_warm = { iteminfo_parts::ARMOR_COVERAGE, iteminfo_parts::ARMOR_WARMTH }; + REQUIRE( longshirt.get_coverage() == 90 ); + REQUIRE( longshirt.get_warmth() == 5 ); + CHECK( item_info_str( longshirt, cov_warm ) + == + "--\n" + "Coverage: 90% Warmth: 5\n" ); + + REQUIRE( longshirt.get_encumber( g->u ) == 3 ); + CHECK( item_info_str( longshirt, { iteminfo_parts::ARMOR_ENCUMBRANCE } ) == + "--\n" + "Encumbrance:" + " 3" + " (poor fit)\n" ); } - SECTION( "no damage" ) { - test_info_equals( item( "test_rag" ), q, "" ); + SECTION( "armor with no coverage omits irrelevant info" ) { + // Ear plugs with no coverage, and no other info to display + item ear_plugs( "test_ear_plugs" ); + REQUIRE_FALSE( ear_plugs.get_covered_body_parts().any() ); + + CHECK( item_info_str( ear_plugs, { iteminfo_parts::ARMOR_BODYPARTS, iteminfo_parts::ARMOR_LAYER, + iteminfo_parts::ARMOR_COVERAGE, iteminfo_parts::ARMOR_WARMTH, + iteminfo_parts::ARMOR_ENCUMBRANCE, iteminfo_parts::ARMOR_PROTECTION + } ) == + "--\n" + "Covers: Nothing.\n" ); } } -TEST_CASE( "techniques when wielded", "[item][iteminfo][weapon]" ) +// Related JSON fields: +// "covers" +// "flags" +// "power_armor" +// +// Functions: +// item::armor_fit_info +TEST_CASE( "armor fit and sizing", "[iteminfo][armor][fit]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::DESCRIPTION_TECHNIQUES } ); - test_info_equals( - item( "test_halligan" ), q, - "--\n" - "Techniques when wielded:" - " Brutal Strike: Stun 1 turn, knockback 1 tile, crit only," - " Sweep Attack: Down 2 turns, and" - " Block: Medium blocking ability\n" ); + std::vector varsize = { iteminfo_parts::DESCRIPTION_FLAGS_VARSIZE }; + std::vector sided = { iteminfo_parts::DESCRIPTION_FLAGS_SIDED }; + std::vector powerarmor = { iteminfo_parts::DESCRIPTION_FLAGS_POWERARMOR }; + + // TODO: Test items with these + //std::vector helmet_compat = { iteminfo_parts::DESCRIPTION_FLAGS_HELMETCOMPAT }; + //std::vector fits = { iteminfo_parts::DESCRIPTION_FLAGS_FITS }; + //std::vector irradiation = { iteminfo_parts::DESCRIPTION_IRRADIATION }; + //std::vector powerarmor_rad = { iteminfo_parts::DESCRIPTION_FLAGS_POWERARMOR_RADIATIONHINT }; + + // Items with VARSIZE flag can be fitted + item socks( "test_socks" ); + CHECK( item_info_str( socks, varsize ) == + "--\n" + "* This clothing can be refitted.\n" ); + + // Items with "covers" LEG_EITHER, ARM_EITHER, FOOT_EITHER, HAND_EITHER are "sided" + item briefcase( "test_briefcase" ); + CHECK( item_info_str( briefcase, sided ) == + "--\n" + "* This item can be worn on either side of the body.\n" ); + + item power_armor( "test_power_armor" ); + CHECK( item_info_str( power_armor, powerarmor ) == + "--\n" + "* This gear is a part of power armor.\n" ); } -TEST_CASE( "armor coverage and protection values", "[item][iteminfo][armor]" ) +// Armor protction is based on materials, thickness, and/or environmental protection rating. +// For armor defined in JSON: +// +// - "materials" determine the resistance factors (bash, cut, fire etc.) +// - "material_thickness" multiplies bash, cut, and bullet resistance +// - "environmental_protection" gives acid and fire resist (N/10 if less than 10) +// +// See doc/DEVELOPER_FAQ.md "How armor protection is calculated" for more. +// +// Materials and protection calculations are not tested here; only their display in item info. +// +// item::armor_protection_info +TEST_CASE( "armor protection", "[iteminfo][armor][protection]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::ARMOR_BODYPARTS, iteminfo_parts::ARMOR_LAYER, - iteminfo_parts::ARMOR_COVERAGE, iteminfo_parts::ARMOR_WARMTH, - iteminfo_parts::ARMOR_ENCUMBRANCE, iteminfo_parts::ARMOR_PROTECTION - } ); - SECTION( "shows coverage, encumbrance, and protection for armor with coverage" ) { - test_info_equals( - item( "test_longshirt" ), q, - "--\n" - // NOLINTNEXTLINE(cata-text-style) - "Covers: The torso. The arms. \n" - // NOLINTNEXTLINE(cata-text-style) - "Layer: Normal. \n" - "Coverage: 90% Warmth: 5\n" - "--\n" - "Encumbrance: 3 (poor fit)\n" - "Protection: Bash: 1 Cut: 1 Ballistic: 1\n" - " Acid: 0 Fire: 0 Environmental: 0\n" ); + std::vector protection = { iteminfo_parts::ARMOR_PROTECTION }; + + // TODO: + // - Air filtration or gas mask (inactive/active) + // - Damaged armor reduces protection + + SECTION( "minimal protection from physical, no protection from environmental" ) { + // Long-sleeved shirt, material:cotton, thickness:1 + // 1/1/1 bash/cut/bullet x 1 thickness + // 0/0/0 acid/fire/env + item longshirt( "test_longshirt" ); + REQUIRE( longshirt.get_covered_body_parts().any() ); + REQUIRE( longshirt.bash_resist() == 1 ); + REQUIRE( longshirt.cut_resist() == 1 ); + REQUIRE( longshirt.bullet_resist() == 1 ); + REQUIRE( longshirt.acid_resist() == 0 ); + REQUIRE( longshirt.fire_resist() == 0 ); + REQUIRE( longshirt.get_env_resist() == 0 ); + + // Protection info displayed on two lines + CHECK( item_info_str( longshirt, protection ) == + "--\n" + "Protection:" + " Bash: 1" + " Cut: 1" + " Ballistic: 1\n" + " Acid: 0" + " Fire: 0" + " Environmental: 0\n" ); } - SECTION( "omits irrelevant info if it covers nothing" ) { - test_info_equals( - item( "test_ear_plugs" ), q, - "--\n" - "Covers: Nothing.\n" ); + SECTION( "moderate protection from physical and environmental damage" ) { + // Hazmat suit, material:plastic, thickness:2 + // 2/2/2 bash/cut/bullet x 2 thickness + // 9/1/20 acid/fire/env + item hazmat( "test_hazmat_suit" ); + REQUIRE( hazmat.get_covered_body_parts().any() ); + REQUIRE( hazmat.bash_resist() == 4 ); + REQUIRE( hazmat.cut_resist() == 4 ); + REQUIRE( hazmat.bullet_resist() == 4 ); + REQUIRE( hazmat.acid_resist() == 9 ); + REQUIRE( hazmat.fire_resist() == 1 ); + REQUIRE( hazmat.get_env_resist() == 20 ); + + // Protection info displayed on two lines + CHECK( item_info_str( hazmat, protection ) == + "--\n" + "Protection:" + " Bash: 4" + " Cut: 4" + " Ballistic: 4\n" + " Acid: 9" + " Fire: 1" + " Environmental: 20\n" ); + } + + SECTION( "pet armor with good physical and environmental protection" ) { + // Kevlar cat harness, for reasons + // material:layered_kevlar, thickness:2 + // 2/3/5 bash/cut/bullet x 2 thickness + // 5/3/10 acid/fire/env + item meower_armor( "test_meower_armor" ); + REQUIRE( meower_armor.bash_resist() == 4 ); + REQUIRE( meower_armor.cut_resist() == 6 ); + REQUIRE( meower_armor.bullet_resist() == 10 ); + REQUIRE( meower_armor.acid_resist() == 5 ); + REQUIRE( meower_armor.fire_resist() == 3 ); + REQUIRE( meower_armor.get_env_resist() == 10 ); + + CHECK( item_info_str( meower_armor, protection ) == + "--\n" + "Protection:" + " Bash: 4" + " Cut: 6" + " Ballistic: 10\n" + " Acid: 5" + " Fire: 3" + " Environmental: 10\n" ); + } +} + +// Related JSON fields: +// "fun" +// "time" +// "skill" +// "required_level" +// "max_level" +// "intelligence" +// +// Functions: +// item::book_info +TEST_CASE( "book info", "[iteminfo][book]" ) +{ + clear_avatar(); + + // Parts to test + std::vector summary = { iteminfo_parts::BOOK_SUMMARY }; + std::vector reqs_begin = { iteminfo_parts::BOOK_REQUIREMENTS_BEGINNER }; + std::vector skill_min = { iteminfo_parts::BOOK_SKILLRANGE_MIN }; + std::vector skill_max = { iteminfo_parts::BOOK_SKILLRANGE_MAX }; + std::vector reqs_int = { iteminfo_parts::BOOK_REQUIREMENTS_INT }; + std::vector morale = { iteminfo_parts::BOOK_MORALECHANGE }; + std::vector time_per_chapter = { iteminfo_parts::BOOK_TIMEPERCHAPTER }; + + // TODO: include test for these: + // std::vector num_unread = { iteminfo_parts::BOOK_NUMUNREADCHAPTERS }; + // std::vector included_recipes = { iteminfo_parts::BOOK_INCLUDED_RECIPES }; + + item dragon( "test_dragon_book" ); + item cmdline( "test_cmdline_book" ); + // TODO: add martial arts book to test data + + REQUIRE( dragon.is_book() ); + REQUIRE( cmdline.is_book() ); + + // summary is shown for martial arts books and "just for fun" books, but no others + WHEN( "book has not been identified" ) { + THEN( "some basic book info is shown" ) { + // Some info is always shown + CHECK( item_info_str( cmdline, summary ) == + "--\n" + "Just for fun.\n" ); + + CHECK( item_info_str( cmdline, reqs_begin ) == + "--\n" + "It can be understood by beginners.\n" ); + } + + THEN( "other book info is hidden" ) { + CHECK( item_info_str( cmdline, skill_min ).empty() ); + CHECK( item_info_str( cmdline, skill_max ).empty() ); + CHECK( item_info_str( cmdline, reqs_int ).empty() ); + CHECK( item_info_str( cmdline, morale ).empty() ); + CHECK( item_info_str( cmdline, time_per_chapter ).empty() ); + } + } + + WHEN( "book has been identified" ) { + g->u.do_read( cmdline ); + g->u.do_read( dragon ); + + THEN( "some basic book info is shown" ) { + CHECK( item_info_str( cmdline, summary ) == + "--\n" + "Just for fun.\n" ); + + CHECK( item_info_str( cmdline, reqs_begin ) == + "--\n" + "It can be understood by beginners.\n" ); + + } + + THEN( "morale (fun) info is shown" ) { + // JSON field: "fun" + CHECK( item_info_str( cmdline, morale ) == + "--\n" + "Reading this book affects your morale by +2\n" ); + + CHECK( item_info_str( dragon, morale ) == + "--\n" + "Reading this book affects your morale by -1\n" ); + } + + THEN( "time per chapter is shown" ) { + // JSON field: "time" + CHECK( item_info_str( cmdline, time_per_chapter ) == + "--\n" + "A chapter of this book takes 5" + " minutes to read.\n" ); + + CHECK( item_info_str( dragon, time_per_chapter ) == + "--\n" + "A chapter of this book takes 50" + " minutes to read.\n" ); + } + + THEN( "book requirement info is shown" ) { + // Book with skill min/max and intelligence requirement + // JSON fields: "required_level", "max_level", "intelligence" + CHECK( item_info_str( dragon, skill_min ) == + "--\n" + "Requires computers level 4 to understand.\n" ); + + CHECK( item_info_str( dragon, skill_max ) == + "--\n" + "Can bring your computers skill to 7.\n" + "Your current computers skill is 0.\n" ); + + CHECK( item_info_str( dragon, reqs_int ) == + "--\n" + "Requires intelligence of 12 to easily read.\n" ); + } + + THEN( "no requirement info is shown if book has none" ) { + // Book with no requirements + CHECK( item_info_str( cmdline, skill_min ).empty() ); + CHECK( item_info_str( cmdline, skill_max ).empty() ); + CHECK( item_info_str( cmdline, reqs_int ).empty() ); + } } } -TEST_CASE( "ranged weapon attributes", "[item][iteminfo][weapon][ranged][gun]" ) +// Related JSON fields: +// "range" +// "ranged_damage" +// - "amount" +// "skill" +// "critical_multiplier" (ammo) +// "magazines" +// +// Functions: +// item::gun_info +TEST_CASE( "gun or other ranged weapon attributes", "[iteminfo][weapon][gun]" ) { clear_avatar(); + item compbow( "test_compbow" ); + item glock( "test_glock" ); + item rag( "test_rag" ); + + SECTION( "weapon damage including floating-point multiplier" ) { + // Ranged damage info is displayed on a single line, in three parts: + // + // - base ranged damage (GUN_DAMAGE) + // - floating-point multiplier (GUN_DAMAGE_AMMOPROP) + // - total damage calculation (GUN_DAMAGE_TOTAL) + // + std::vector damage = { iteminfo_parts::GUN_DAMAGE, + iteminfo_parts::GUN_DAMAGE_AMMOPROP, + iteminfo_parts::GUN_DAMAGE_TOTAL + }; + + CHECK( item_info_str( compbow, damage ) == + "--\n" + "Ranged damage:" + " 18*1.50 = 27\n" ); + } + // TODO: Test glock damage with and without ammo (test_glock has -1 damage when unloaded) + + SECTION( "maximum range" ) { + std::vector max_range = { iteminfo_parts::GUN_MAX_RANGE }; + + CHECK( item_info_str( compbow, max_range ) == + "--\n" + "Maximum range: 18\n" ); + + CHECK( item_info_str( glock, max_range ) == + "--\n" + "Maximum range: 14\n" ); + } + SECTION( "skill used" ) { - iteminfo_query q = q_vec( { iteminfo_parts::GUN_USEDSKILL } ); - test_info_equals( - item( "test_compbow" ), q, - "--\n" - "Skill used: archery\n" ); + std::vector used_skill = { iteminfo_parts::GUN_USEDSKILL }; + + CHECK( item_info_str( compbow, used_skill ) == + "--\n" + "Skill used: archery\n" ); + + CHECK( item_info_str( glock, used_skill ) == + "--\n" + "Skill used: handguns\n" ); } SECTION( "ammo capacity of weapon" ) { - iteminfo_query q = q_vec( { iteminfo_parts::GUN_CAPACITY } ); - test_info_equals( - item( "test_compbow" ), q, - "--\n" - "Capacity: 1 round of arrows\n" ); + std::vector gun_capacity = { iteminfo_parts::GUN_CAPACITY }; + + CHECK( item_info_str( compbow, gun_capacity ) == + "--\n" + "Capacity: 1 round of arrows\n" ); + + // FIXME: Why empty? + CHECK( item_info_str( glock, gun_capacity ).empty() ); } SECTION( "default ammo when weapon is unloaded" ) { - iteminfo_query q = q_vec( { iteminfo_parts::GUN_DEFAULT_AMMO } ); - test_info_equals( - item( "test_compbow" ), q, - "--\n" - "Weapon is not loaded, so stats below assume the default ammo:" - " wooden broadhead arrow\n" ); + std::vector default_ammo = { iteminfo_parts::GUN_DEFAULT_AMMO }; + + CHECK( item_info_str( compbow, default_ammo ) == + "--\n" + "Weapon is not loaded, so stats below assume the default ammo:" + " wooden broadhead arrow\n" ); + + CHECK( item_info_str( glock, default_ammo ) == + "--\n" + "Weapon is not loaded, so stats below assume the default ammo:" + " 9x19mm JHP\n" ); } - SECTION( "weapon damage including floating-point multiplier" ) { - iteminfo_query q = q_vec( { iteminfo_parts::GUN_DAMAGE, iteminfo_parts::GUN_DAMAGE_AMMOPROP, - iteminfo_parts::GUN_DAMAGE_TOTAL, iteminfo_parts::GUN_ARMORPIERCE, - iteminfo_parts::AMMO_DAMAGE_CRIT_MULTIPLIER - } ); - test_info_equals( - item( "test_compbow" ), q, - "--\n" - "Ranged damage:" - " 18*1.50 = 27\n" - "Critical multiplier: 10\n" - "Armor-pierce: 0\n" ); + SECTION( "critical multiplier" ) { + std::vector crit_multiplier = { iteminfo_parts::AMMO_DAMAGE_CRIT_MULTIPLIER }; + + CHECK( item_info_str( compbow, crit_multiplier ) == + "--\n" + "Critical multiplier: 10\n" ); + + CHECK( item_info_str( glock, crit_multiplier ) == + "--\n" + "Critical multiplier: 2\n" ); + } + + SECTION( "recoil" ) { + std::vector recoil = { iteminfo_parts::GUN_RECOIL }; + + CHECK( item_info_str( compbow, recoil ).empty() ); + + CHECK( item_info_str( glock, recoil ) == + "--\n" + "Effective recoil: 312\n" ); + } + + SECTION( "gun type and current magazine" ) { + std::vector gun_type = { iteminfo_parts::GUN_TYPE }; + std::vector magazine = { iteminfo_parts::GUN_MAGAZINE }; + + // When unloaded, the "Type:" and "Magazine:" sections should not be shown + CHECK( item_info_str( glock, gun_type ).empty() ); + CHECK( item_info_str( glock, magazine ).empty() ); + + // TODO: Test guns having "Type:" (not many exist; ex. ar15_retool_300blk) + + // TODO: Test with magazine inserted, ex. "Magazine: Glock 17 17-round magazine" + } + + SECTION( "gun aiming stats" ) { + std::vector aim_stats = { iteminfo_parts::GUN_AIMING_STATS }; + CHECK( item_info_str( glock, aim_stats ) == + "--\n" + "Base aim speed: 104\n" + "Regular\n" + "Even chance of good hit at range: 3\n" + "Time to reach aim level: 115 moves\n" + "Careful\n" + "Even chance of good hit at range: 4\n" + "Time to reach aim level: 145 moves\n" + "Precise\n" + "Even chance of good hit at range: 6\n" + "Time to reach aim level: 174 moves\n" ); + } + + SECTION( "compatible magazines" ) { + std::vector allowed_mags = { iteminfo_parts::GUN_ALLOWED_MAGAZINES }; + + // expect magazine_compatible().empty() if magazine_integral() + + // Compound bow has integral magazine, not compatible ones + REQUIRE( compbow.magazine_integral() ); + REQUIRE( compbow.magazine_compatible().empty() ); + // No compatible magazine info should be shown + CHECK( item_info_str( compbow, allowed_mags ).empty() ); + + // Glock has compatible magazines, not integral + REQUIRE_FALSE( glock.magazine_integral() ); + REQUIRE_FALSE( glock.magazine_compatible().empty() ); + // Should show compatible magazines + CHECK( item_info_str( glock, allowed_mags ) == + "--\n" + "Compatible magazines:" + " Glock extended magazine and Glock magazine\n" ); + + // Rag does not have integral or compatible magazines + REQUIRE_FALSE( rag.magazine_integral() ); + REQUIRE( rag.magazine_compatible().empty() ); + // No magazine info should be shown + CHECK( item_info_str( rag, allowed_mags ).empty() ); + } + + SECTION( "armor piercing" ) { + CHECK( item_info_str( compbow, { iteminfo_parts::GUN_ARMORPIERCE } ) == + "--\n" + "Armor-pierce: 0\n" ); } SECTION( "time to reload weapon" ) { - iteminfo_query q = q_vec( { iteminfo_parts::GUN_RELOAD_TIME } ); - test_info_equals( - item( "test_compbow" ), q, - "--\n" - "Reload time: 110 moves \n" ); // NOLINT(cata-text-style) + CHECK( item_info_str( compbow, { iteminfo_parts::GUN_RELOAD_TIME } ) == + "--\n" + "Reload time: 110 moves \n" ); // NOLINT(cata-text-style) } SECTION( "weapon firing modes" ) { - iteminfo_query q = q_vec( { iteminfo_parts::GUN_FIRE_MODES } ); - test_info_equals( - item( "test_compbow" ), q, - "--\n" - "Fire modes: manual (1)\n" ); + CHECK( item_info_str( compbow, { iteminfo_parts::GUN_FIRE_MODES } ) == + "--\n" + "Fire modes: manual (1)\n" ); } SECTION( "weapon mods" ) { - iteminfo_query q = q_vec( { iteminfo_parts::DESCRIPTION_GUN_MODS } ); - test_info_equals( - item( "test_compbow" ), q, - "--\n" - "Mods: 0/2 accessories;" - " 0/1 dampening; 0/1 sights;" - " 0/1 stabilizer; 0/1 underbarrel.\n" ); + CHECK( item_info_str( compbow, { iteminfo_parts::DESCRIPTION_GUN_MODS } ) == + "--\n" + "Mods: 0/2 accessories;" + " 0/1 dampening; 0/1 sights;" + " 0/1 stabilizer; 0/1 underbarrel.\n" ); } SECTION( "weapon dispersion" ) { - iteminfo_query q = q_vec( { iteminfo_parts::GUN_DISPERSION } ); - test_info_equals( - item( "test_compbow" ), q, - "--\n" - "Dispersion: 850\n" ); + CHECK( item_info_str( compbow, { iteminfo_parts::GUN_DISPERSION } ) == + "--\n" + "Dispersion: 850\n" ); + } + + SECTION( "needing two hands to fire" ) { + REQUIRE( compbow.has_flag( "FIRE_TWOHAND" ) ); + + CHECK( item_info_str( compbow, { iteminfo_parts::DESCRIPTION_TWOHANDED } ) == + "--\n" + "This weapon needs two free hands to fire.\n" ); } } -TEST_CASE( "ammunition", "[item][iteminfo][ammo]" ) +// Functions: +// item::gun_info +TEST_CASE( "gun armor piercing, dispersion and other stats", "[iteminfo][gun][misc]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::AMMO_REMAINING_OR_TYPES, iteminfo_parts::AMMO_DAMAGE_VALUE, - iteminfo_parts::AMMO_DAMAGE_PROPORTIONAL, iteminfo_parts::AMMO_DAMAGE_AP, - iteminfo_parts::AMMO_DAMAGE_RANGE, iteminfo_parts::AMMO_DAMAGE_DISPERSION, - iteminfo_parts::AMMO_DAMAGE_RECOIL, iteminfo_parts::AMMO_DAMAGE_CRIT_MULTIPLIER - } ); + + std::vector dmg_loaded = { iteminfo_parts::GUN_DAMAGE_LOADEDAMMO }; + std::vector ap_loaded = { iteminfo_parts::GUN_ARMORPIERCE_LOADEDAMMO }; + std::vector ap_total = { iteminfo_parts::GUN_ARMORPIERCE_TOTAL }; + std::vector disp_loaded = { iteminfo_parts::GUN_DISPERSION_LOADEDAMMO }; + std::vector disp_total = { iteminfo_parts::GUN_DISPERSION_TOTAL }; + std::vector disp_sight = { iteminfo_parts::GUN_DISPERSION_SIGHT }; + + // TODO: Test these + //std::vector recoil_bipod = { iteminfo_parts::GUN_RECOIL_BIPOD }; + //std::vector ammo_remain = { iteminfo_parts::AMMO_REMAINING }; + //std::vector ammo_upscost = { iteminfo_parts::AMMO_UPSCOST }; + //std::vector gun_casings = { iteminfo_parts::DESCRIPTION_GUN_CASINGS }; + + item glock( "test_glock" ); + + CHECK( item_info_str( glock, dmg_loaded ) == + "--\n+26\n" ); + + CHECK( item_info_str( glock, ap_loaded ) == + "--\n+0\n" ); + CHECK( item_info_str( glock, ap_total ) == + "--\n = 0\n" ); + + CHECK( item_info_str( glock, disp_loaded ) == + "--\n+60\n" ); + CHECK( item_info_str( glock, disp_total ) == + "--\n = 540\n" ); + + CHECK( item_info_str( glock, disp_sight ) == + "--\n" + "Sight dispersion: 30" + "+14" + " = 44\n" ); + + // TODO: Add a test gun with thest attributes + //CHECK( item_info_str( glock, recoil_bipod ).empty() ); + //CHECK( item_info_str( glock, ammo_remain ).empty() ); + //CHECK( item_info_str( glock, ammo_upscost ).empty() ); + //CHECK( item_info_str( glock, gun_casings ).empty() ); +} + +// Related JSON fields: +// "sight_dispersion" +// "aim_speed" +// "handling_modifier" +// "damage_modifier" +// - "amount" +// "flags" +// "mod_targets" +// "location" +// +// Functions: +// item::gunmod_info +TEST_CASE( "gunmod info", "[iteminfo][gunmod]" ) +{ + clear_avatar(); + + std::vector reach = { iteminfo_parts::DESCRIPTION_GUNMOD_REACH }; + std::vector no_sights = { iteminfo_parts::DESCRIPTION_GUNMOD_DISABLESSIGHTS }; + std::vector consumable = { iteminfo_parts::DESCRIPTION_GUNMOD_CONSUMABLE }; + std::vector disp_sight = { iteminfo_parts::GUNMOD_DISPERSION_SIGHT }; + std::vector aim_speed = { iteminfo_parts::GUNMOD_AIMSPEED }; + std::vector damage = { iteminfo_parts::GUNMOD_DAMAGE }; + std::vector handling = { iteminfo_parts::GUNMOD_HANDLING }; + std::vector usedon = { iteminfo_parts::GUNMOD_USEDON }; + std::vector location = { iteminfo_parts::GUNMOD_LOCATION }; + + // TODO for gunmod_info: + //std::vector gunmod = { iteminfo_parts::DESCRIPTION_GUNMOD }; + //std::vector armorpierce = { iteminfo_parts::GUNMOD_ARMORPIERCE }; + //std::vector ammo = { iteminfo_parts::GUNMOD_AMMO }; + //std::vector reload = { iteminfo_parts::GUNMOD_RELOAD }; + //std::vector strength = { iteminfo_parts::GUNMOD_STRENGTH }; + //std::vector add_mod = { iteminfo_parts::GUNMOD_ADD_MOD }; + //std::vector blacklist_mod = { iteminfo_parts::GUNMOD_BLACKLIST_MOD }; + + item supp( "test_crafted_suppressor" ); + REQUIRE( supp.is_gunmod() ); + + /* FIXME: This only applies if is_gun() ?? + CHECK( item_info_str( supp, { iteminfo_parts::DESCRIPTION_GUNMOD } ) == + "--\n" + "* This mod must be attached to a gun, it can not be fired separately.\n" ); + */ + + SECTION( "gunmod flags" ) { + REQUIRE( supp.has_flag( "REACH_ATTACK" ) ); + CHECK( item_info_str( supp, reach ) == + "--\n" + "When attached to a gun, allows making" + " reach melee attacks with it.\n" ); + + REQUIRE( supp.has_flag( "DISABLE_SIGHTS" ) ); + CHECK( item_info_str( supp, no_sights ) == + "--\n" + "This mod obscures sights of the base weapon.\n" ); + + REQUIRE( supp.has_flag( "CONSUMABLE" ) ); + CHECK( item_info_str( supp, consumable ) == + "--\n" + "This mod might suffer wear when firing the base weapon.\n" ); + } + + CHECK( item_info_str( supp, disp_sight ) == + "--\n" + "Sight dispersion: 11\n" ); + + CHECK( item_info_str( supp, aim_speed ) == + "--\n" + "Aim speed: 4\n" ); + + CHECK( item_info_str( supp, damage ) == + "--\n" + "Damage: -5\n" ); + + CHECK( item_info_str( supp, handling ) == + "--\n" + "Handling modifier: +1\n" ); + + // FIXME: This is a different order than given in JSON, and not alphabetical either; + // could be made more predictable by making enumerate_as_string do sorting + /* + CHECK( item_info_str( supp, usedon ) == + "--\n" + "Used on: rifle and pistol\n" ); + */ + + CHECK( item_info_str( supp, location ) == + "--\n" + "Location: muzzle\n" ); + +} + +// Functions: +// item::ammo_info +TEST_CASE( "ammunition", "[iteminfo][ammo]" ) +{ + clear_avatar(); + + std::vector ammo = { iteminfo_parts::AMMO_REMAINING_OR_TYPES, + iteminfo_parts::AMMO_DAMAGE_VALUE, + iteminfo_parts::AMMO_DAMAGE_PROPORTIONAL, + iteminfo_parts::AMMO_DAMAGE_AP, + iteminfo_parts::AMMO_DAMAGE_RANGE, + iteminfo_parts::AMMO_DAMAGE_DISPERSION, + iteminfo_parts::AMMO_DAMAGE_RECOIL, + iteminfo_parts::AMMO_DAMAGE_CRIT_MULTIPLIER + }; SECTION( "simple item with ammo damage" ) { - test_info_equals( - item( "test_rock" ), q, - "--\n" - "Ammunition type: rocks\n" - "Damage: 7 Armor-pierce: 0\n" - "Range: 10 Dispersion: 14\n" - "Recoil: 0 Critical multiplier: 2\n" ); + item rock( "test_rock" ); + + CHECK( item_info_str( rock, ammo ) == + "--\n" + "Ammunition type: rocks\n" + "Damage: 7 Armor-pierce: 0\n" + "Range: 10 Dispersion: 14\n" + "Recoil: 0 Critical multiplier: 2\n" ); + } + + SECTION( "batteries" ) { + item batt_dispose( "test_battery_disposable" ); + + // FIXME: is_battery is only true if type = "BATTERY" + // no items in the game have this property anymore + //REQUIRE( batt_dispose.is_battery() ); + + REQUIRE( batt_dispose.ammo_data() ); + REQUIRE( batt_dispose.ammo_data()->nname( 1 ) == "battery" ); + + // No ammo info should be displayed + CHECK( item_info_str( batt_dispose, ammo ).empty() ); } } -TEST_CASE( "nutrients in food", "[item][iteminfo][food]" ) +// Functions: +// item::food_info +TEST_CASE( "nutrients in food", "[iteminfo][food]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::FOOD_NUTRITION, iteminfo_parts::FOOD_VITAMINS, - iteminfo_parts::FOOD_QUENCH - } ); + + item ice_cream( "icecream" ); + SECTION( "fixed nutrient values in regular item" ) { - item i( "icecream" ); - test_info_equals( - i, q, - "--\n" - "Calories (kcal): 325 " - "Quench: 0\n" - "Vitamins (RDA): Calcium (9%), Vitamin A (9%), and Vitamin B12 (11%)\n" ); + CHECK( item_info_str( ice_cream, { iteminfo_parts::FOOD_NUTRITION, iteminfo_parts::FOOD_QUENCH } ) + == + "--\n" + "Calories (kcal): 325" + " Quench: 0\n" ); + + CHECK( item_info_str( ice_cream, { iteminfo_parts::FOOD_VITAMINS } ) == + "--\n" + "Vitamins (RDA): Calcium (9%), Vitamin A (9%), and Vitamin B12 (11%)\n" ); } - SECTION( "nutrient ranges for recipe exemplars", "[item][iteminfo]" ) { - item i( "icecream" ); - i.set_var( "recipe_exemplar", "icecream" ); - test_info_equals( - i, q, - "--\n" - "Nutrition will vary with chosen ingredients.\n" - "Calories (kcal): 317-" - "469 Quench: 0\n" - "Vitamins (RDA): Calcium (7-28%), Iron (0-83%), " - "Vitamin A (3-11%), Vitamin B12 (2-6%), and Vitamin C (1-85%)\n" ); + SECTION( "nutrient ranges for recipe exemplars", "[iteminfo]" ) { + ice_cream.set_var( "recipe_exemplar", "icecream" ); + + CHECK( item_info_str( ice_cream, { iteminfo_parts::FOOD_NUTRITION, iteminfo_parts::FOOD_QUENCH } ) + == + "--\n" + "Nutrition will vary with chosen ingredients.\n" + "Calories (kcal):" + " 317-469" + " Quench: 0\n" ); + + CHECK( item_info_str( ice_cream, { iteminfo_parts::FOOD_VITAMINS } ) == + "--\n" + "Nutrition will vary with chosen ingredients.\n" + "Vitamins (RDA): Calcium (7-28%), Iron (0-83%), " + "Vitamin A (3-11%), Vitamin B12 (2-6%), and Vitamin C (1-85%)\n" ); } } -TEST_CASE( "food freshness and lifetime", "[item][iteminfo][food]" ) +// Related JSON fields: +// "spoils_in" +// +// Functions: +// item::food_info +TEST_CASE( "food freshness and lifetime", "[iteminfo][food]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::FOOD_ROT } ); // Ensure test character has no skill estimating spoilage g->u.empty_skills(); REQUIRE_FALSE( g->u.can_estimate_rot() ); + item nuts( "test_pine_nuts" ); + REQUIRE( nuts.goes_bad() ); + + // TODO: + // - flags FREEZERBURN, MUSHY, NO_PARASITES + // - traits: SAPROVORE, bio_digestion + // - with can_estimate_rot() == true + SECTION( "food is fresh" ) { - test_info_equals( - item( "test_pine_nuts" ), q, - "--\n" - "* This food is perishable, and at room temperature has" - " an estimated nominal shelf life of 6 weeks.\n" - "* This food looks as fresh as it can be.\n" ); + REQUIRE( nuts.is_fresh() ); + CHECK( item_info_str( nuts, { iteminfo_parts::FOOD_ROT } ) == + "--\n" + "* This food is perishable, and at room temperature has" + " an estimated nominal shelf life of 6 weeks.\n" + "* This food looks as fresh as it can be.\n" ); } SECTION( "food is old" ) { - item nuts( "test_pine_nuts" ); nuts.mod_rot( nuts.type->comestible->spoils ); - test_info_equals( - nuts, q, - "--\n" - "* This food is perishable, and at room temperature has" - " an estimated nominal shelf life of 6 weeks.\n" - "* This food looks old. It's on the brink of becoming inedible.\n" ); + REQUIRE( nuts.is_going_bad() ); + CHECK( item_info_str( nuts, { iteminfo_parts::FOOD_ROT } ) == + "--\n" + "* This food is perishable, and at room temperature has" + " an estimated nominal shelf life of 6 weeks.\n" + "* This food looks old. It's on the brink of becoming inedible.\n" ); + } +} + +// Related JSON fields: +// "fun" +// "charges" +// +// Functions: +// item::food_info +TEST_CASE( "basic food info", "[iteminfo][food]" ) +{ + clear_avatar(); + + std::vector joy = { iteminfo_parts::FOOD_JOY }; + std::vector portions = { iteminfo_parts::FOOD_PORTIONS }; + std::vector consume_time = { iteminfo_parts::FOOD_CONSUME_TIME }; + + // TODO: Test these: + //std::vector smell = { iteminfo_parts::FOOD_SMELL }; + //std::vector vit_effects = { iteminfo_parts::FOOD_VIT_EFFECTS }; + + item apple( "test_apple" ); + item nuts( "test_pine_nuts" ); + item wine( "test_wine" ); + + REQUIRE( apple.is_food() ); + REQUIRE( nuts.is_food() ); + REQUIRE( wine.is_food() ); + + CHECK( item_info_str( apple, joy ) == + "--\nEnjoyability: 10\n" ); + CHECK( item_info_str( apple, portions ) == + "--\nPortions: 1\n" ); + CHECK( item_info_str( apple, consume_time ) == + "--\nConsume time: 50 seconds\n" ); + + CHECK( item_info_str( nuts, joy ) == + "--\nEnjoyability: 2\n" ); + CHECK( item_info_str( nuts, portions ) == + "--\nPortions: 4\n" ); + CHECK( item_info_str( nuts, consume_time ) == + "--\nConsume time: 12 seconds\n" ); + + CHECK( item_info_str( wine, joy ) == + "--\nEnjoyability: -5\n" ); + CHECK( item_info_str( wine, portions ) == + "--\nPortions: 7\n" ); + CHECK( item_info_str( wine, consume_time ) == + "--\nConsume time: 2 seconds\n" ); +} + +// Related JSON fields: +// "material" (determines allergen) +// +// Functions: +// item::food_info +TEST_CASE( "food character is allergic to", "[iteminfo][food][allergy]" ) +{ + clear_avatar(); + + std::vector allergen = { iteminfo_parts::FOOD_ALLERGEN }; + + GIVEN( "character allergic to fruit" ) { + g->u.toggle_trait( trait_id( "ANTIFRUIT" ) ); + REQUIRE( g->u.has_trait( trait_id( "ANTIFRUIT" ) ) ); + + THEN( "fruit indicates an allergic reaction" ) { + item apple( "test_apple" ); + REQUIRE( apple.has_flag( "ALLERGEN_FRUIT" ) ); + CHECK( item_info_str( apple, allergen ) == + "--\n" + "* This food will cause an allergic reaction.\n" ); + } + + THEN( "nuts do not indicate an allergic reaction" ) { + item nuts( "test_pine_nuts" ); + REQUIRE_FALSE( nuts.has_flag( "ALLERGEN_FRUIT" ) ); + CHECK( item_info_str( nuts, allergen ).empty() ); + } + } +} + +// Related JSON fields: +// "flags" +// +// Functions: +// item::food_info +TEST_CASE( "food with hidden poison or hallucinogen", "[iteminfo][food][poison][hallu]" ) +{ + clear_avatar(); + + // Test food with hidden effects + item almond( "test_bitter_almond" ); + item nutmeg( "test_hallu_nutmeg" ); + + // Ensure they are food + REQUIRE( almond.is_food() ); + REQUIRE( nutmeg.is_food() ); + + // Ensure they have the expected flags + REQUIRE( almond.has_flag( "HIDDEN_POISON" ) ); + REQUIRE( nutmeg.has_flag( "HIDDEN_HALLU" ) ); + + // Parts flags for display + std::vector poison = { iteminfo_parts::FOOD_POISON }; + std::vector hallu = { iteminfo_parts::FOOD_HALLUCINOGENIC }; + + // Seeing hidden poison or hallucinogen depends on character survival skill + // At low level, no info is shown + GIVEN( "survival 2" ) { + g->u.set_skill_level( skill_id( "survival" ), 2 ); + REQUIRE( g->u.get_skill_level( skill_id( "survival" ) ) == 2 ); + + THEN( "cannot see hidden poison or hallucinogen" ) { + CHECK( item_info_str( almond, poison ).empty() ); + CHECK( item_info_str( nutmeg, hallu ).empty() ); + } + } + + // Hidden poison is visible at survival level 3 + GIVEN( "survival 3" ) { + g->u.set_skill_level( skill_id( "survival" ), 3 ); + REQUIRE( g->u.get_skill_level( skill_id( "survival" ) ) == 3 ); + + THEN( "can see hidden poison" ) { + CHECK( item_info_str( almond, poison ) == + "--\n" + "* On closer inspection, this appears to be" + " poisonous.\n" ); + } + + THEN( "cannot see hidden hallucinogen" ) { + CHECK( item_info_str( nutmeg, hallu ).empty() ); + } + } + + // Hidden hallucinogen is not visible until survival level 5 + GIVEN( "survival 4" ) { + g->u.set_skill_level( skill_id( "survival" ), 4 ); + REQUIRE( g->u.get_skill_level( skill_id( "survival" ) ) == 4 ); + + THEN( "still cannot see hidden hallucinogen" ) { + CHECK( item_info_str( nutmeg, hallu ).empty() ); + } + } + + GIVEN( "survival 5" ) { + g->u.set_skill_level( skill_id( "survival" ), 5 ); + REQUIRE( g->u.get_skill_level( skill_id( "survival" ) ) == 5 ); + + THEN( "can see hidden hallucinogen" ) { + CHECK( item_info_str( nutmeg, hallu ) == + "--\n" + "* On closer inspection, this appears to be" + " hallucinogenic.\n" ); + } } } -TEST_CASE( "item conductivity", "[item][iteminfo][conductivity]" ) +// Related JSON fields: +// "material" (human flesh is "hflesh") +// +// Functions: +// item::food_info +TEST_CASE( "food that is made of human flesh", "[iteminfo][food][cannibal]" ) { + // TODO: Test food that is_tainted(): "This food is *tainted* and will poison you" + clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::DESCRIPTION_CONDUCTIVITY } ); + + std::vector cannibal = { iteminfo_parts::FOOD_CANNIBALISM }; + + item thumb( "test_thumb" ); + REQUIRE( thumb.has_flag( "CANNIBALISM" ) ); + + GIVEN( "character is not a cannibal" ) { + REQUIRE_FALSE( g->u.has_trait( trait_id( "CANNIBAL" ) ) ); + THEN( "human flesh is indicated as bad" ) { + // red highlight + CHECK( item_info_str( thumb, cannibal ) == + "--\n" + "* This food contains human flesh.\n" ); + } + } + + GIVEN( "character is a cannibal" ) { + g->u.toggle_trait( trait_id( "CANNIBAL" ) ); + REQUIRE( g->u.has_trait( trait_id( "CANNIBAL" ) ) ); + + THEN( "human flesh is indicated as good" ) { + // green highlight + CHECK( item_info_str( thumb, cannibal ) == + "--\n" + "* This food contains human flesh.\n" ); + } + } +} + +// Related JSON fields: +// "flags" +// +// Functions: +// item::final_info +// FIXME: Move conducivity out of final_info +TEST_CASE( "item conductivity", "[iteminfo][conductivity]" ) +{ + clear_avatar(); + + std::vector conductivity = { iteminfo_parts::DESCRIPTION_CONDUCTIVITY }; SECTION( "non-conductive items" ) { - test_info_equals( - item( "test_2x4" ), q, - "--\n" - "* This item does not conduct electricity.\n" ); - test_info_equals( - item( "test_fire_ax" ), q, - "--\n" - "* This item does not conduct electricity.\n" ); + item plank( "test_2x4" ); + REQUIRE_FALSE( plank.conductive() ); + CHECK( item_info_str( plank, conductivity ) == + "--\n" + "* This item does not conduct electricity.\n" ); + + item axe( "test_fire_ax" ); + REQUIRE_FALSE( axe.conductive() ); + CHECK( item_info_str( axe, conductivity ) == + "--\n" + "* This item does not conduct electricity.\n" ); } SECTION( "conductive items" ) { - test_info_equals( - item( "test_pipe" ), q, - "--\n" - "* This item conducts electricity.\n" ); - test_info_equals( - item( "test_halligan" ), q, - "--\n" - "* This item conducts electricity.\n" ); + // Pipe is made of conductive material (steel) + item pipe( "test_pipe" ); + REQUIRE( pipe.conductive() ); + CHECK( item_info_str( pipe, conductivity ) == + "--\n" + "* This item conducts electricity.\n" ); + + // Halligan bar is made of conductive material (steel) + item halligan( "test_halligan" ); + REQUIRE( halligan.conductive() ); + CHECK( item_info_str( halligan, conductivity ) == + "--\n" + "* This item conducts electricity.\n" ); + + // Balloon is made of non-conductive rubber, but has CONDUCTIVE flag + item balloon( "test_balloon" ); + REQUIRE( balloon.conductive() ); + CHECK( item_info_str( balloon, conductivity ) == + "--\n" + "* This item effectively conducts" + " electricity, as it has no guard.\n" ); } } -TEST_CASE( "list of item qualities", "[item][iteminfo][quality]" ) +// Related JSON fields: +// "qualities" +// +// Functions: +// item::qualities_info +TEST_CASE( "list of item qualities", "[iteminfo][quality]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::QUALITIES } ); + + std::vector qualities = { iteminfo_parts::QUALITIES }; SECTION( "Halligan bar" ) { - test_info_equals( - item( "test_halligan" ), q, - "--\n" - "Has level 1 digging quality.\n" - "Has level 2 hammering quality.\n" - "Has level 4 prying quality.\n" ); + item halligan( "test_halligan" ); + CHECK( item_info_str( halligan, qualities ) == + "--\n" + "Has level 1 digging quality.\n" + "Has level 2 hammering quality.\n" + "Has level 4 prying quality.\n" ); } SECTION( "bottle jack" ) { - override_option opt( "USE_METRIC_WEIGHTS", "lbs" ); - test_info_equals( - item( "test_jack_small" ), q, - "--\n" - "Has level 4 jacking quality and is rated at 4409 lbs\n" ); + item jack( "test_jack_small" ); + + SECTION( "metric units" ) { + override_option opt_kg( "USE_METRIC_WEIGHTS", "kg" ); + CHECK( item_info_str( jack, qualities ) == + "--\n" + "Has level 4 jacking quality and is rated at" + " 2000 kg\n" ); + } + SECTION( "imperial units" ) { + override_option opt_lbs( "USE_METRIC_WEIGHTS", "lbs" ); + CHECK( item_info_str( jack, qualities ) == + "--\n" + "Has level 4 jacking quality and is rated at" + " 4409 lbs\n" ); + } } SECTION( "sonic screwdriver" ) { - test_info_equals( - item( "test_sonic_screwdriver" ), q, - "--\n" - "Has level 2 prying quality.\n" - "Has level 2 screw driving quality.\n" - "Has level 1 fine screw driving quality.\n" - "Has level 1 bolt turning quality.\n" ); + item sonic( "test_sonic_screwdriver" ); + + CHECK( item_info_str( sonic, qualities ) == + "--\n" + "Has level 30 lockpicking quality.\n" + "Has level 2 prying quality.\n" + "Has level 2 screw driving quality.\n" + "Has level 1 fine screw driving quality.\n" + "Has level 1 bolt turning quality.\n" ); } } -TEST_CASE( "repairable and with what tools", "[item][iteminfo][repair]" ) +// Related JSON fields: +// "flags" (USE_UPS, RECHARGE) +// +// Functions: +// item::tool_info +TEST_CASE( "tool info", "[iteminfo][tool]" ) { + // TODO: Find a tool using this + //std::vector mag_current = { iteminfo_parts::TOOL_MAGAZINE_CURRENT }; + clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::DESCRIPTION_REPAIREDWITH } ); - test_info_contains( - item( "test_halligan" ), q, - "Repair using extended toolset, arc welder, or makeshift arc welder.\n" ); + SECTION( "maximum charges" ) { + std::vector capacity = { iteminfo_parts::TOOL_CAPACITY }; + + item matches( "test_matches" ); + CHECK( item_info_str( matches, capacity ) == + "--\n" + "Maximum 20 charges of match.\n" ); + } + + SECTION( "tool with charges" ) { + std::vector charges = { iteminfo_parts::TOOL_CHARGES }; + + item matches( "test_matches" ); + matches.ammo_set( itype_id( "match" ) ); + REQUIRE( matches.ammo_remaining() > 0 ); + + CHECK( item_info_str( matches, charges ) == + "--\n" + "Charges: 20\n" ); + } + + SECTION( "UPS charged tool" ) { + std::vector recharge_ups = { iteminfo_parts::DESCRIPTION_RECHARGE_UPSMODDED }; + + item smartphone( "test_smart_phone" ); + REQUIRE( smartphone.has_flag( "USE_UPS" ) ); + + CHECK( item_info_str( smartphone, recharge_ups ) == + "--\n" + "* This tool has been modified to use a" + " universal power supply and is" + " not compatible with" + " standard batteries.\n" ); + } + + SECTION( "compatible magazines" ) { + std::vector magazine_compat = { iteminfo_parts::TOOL_MAGAZINE_COMPATIBLE }; + + // Rag has no magazine capacity + item rag( "test_rag" ); + REQUIRE_FALSE( rag.magazine_integral() ); + REQUIRE( rag.magazine_compatible().empty() ); - test_info_contains( - item( "test_hazmat_suit" ), q, - "Repair using soldering iron, TEST soldering iron, or extended toolset.\n" ); + CHECK( item_info_str( rag, magazine_compat ).empty() ); - test_info_contains( - item( "test_rock" ), q, "* This item is not repairable.\n" ); + // Acetylene torch is a tool with compatible magazines + // Other tools with "Compatible magazine": electric hair trimmer, circular saw + item oxy_torch( "oxy_torch" ); + REQUIRE_FALSE( oxy_torch.magazine_integral() ); + REQUIRE_FALSE( oxy_torch.magazine_compatible().empty() ); - test_info_contains( - item( "test_socks" ), q, "* This item can be reinforced.\n" ); + CHECK( item_info_str( oxy_torch, magazine_compat ) == + "--\n" + "Compatible magazines: small welding tank and welding tank\n" ); + } } -TEST_CASE( "disassembly time and yield", "[item][iteminfo][disassembly]" ) +// Related JSON fields: +// "type": "bionic" +// "capacity" +// "occupied_bodyparts" +// "fuel_capacity" +// "env_protec" +// +// Functions: +// item::bionic_info +TEST_CASE( "bionic info", "[iteminfo][bionic]" ) { + // TODO: Add a test for this + //std::vector slots = { iteminfo_parts::DESCRIPTION_CBM_SLOTS }; + // FIXME: bionic_info has NO OTHER iteminfo_parts filters! + + // TODO: Add tests for: + // - bash protection + // - cut protection + // - balliastic protection + // - stat bonus + // - weight capacity modifier + // - weight capacity bonus + clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::DESCRIPTION_COMPONENTS_DISASSEMBLE } ); - test_info_equals( - item( "test_soldering_iron" ), q, - "--\n" - "Disassembly takes about 20 minutes and might yield:" - " 2 electronic scraps, copper (1), scrap metal (1), and copper wire (5).\n" ); + item burner( "bio_ethanol" ); + item power( "bio_power_storage" ); + item nostril( "bio_nostril" ); + item purifier( "bio_purifier" ); + + REQUIRE( burner.is_bionic() ); + REQUIRE( power.is_bionic() ); + REQUIRE( nostril.is_bionic() ); + REQUIRE( purifier.is_bionic() ); + + CHECK( item_info_str( burner, {} ) == + "--\n" + "* This bionic can produce power from the following fuels:" + " ethanol," + " methanol," + " and denatured alcohol\n" ); + + // NOTE: No trailing newline + CHECK( item_info_str( power, {} ) == + "--\n" + "Power Capacity:" + " 100000000 mJ" ); + + // NOTE: Funky trailing space + CHECK( item_info_str( nostril, {} ) == + "--\n" + "Encumbrance: \n" // NOLINT(cata-text-style) + "Mouth 10 " ); + + CHECK( item_info_str( purifier, {} ) == + "--\n" + "Environmental Protection: \n" // NOLINT(cata-text-style) + "Mouth 7 " ); +} - test_info_equals( - item( "test_sheet_metal" ), q, - "--\n" - "Disassembly takes about 2 minutes and might yield: TEST small metal sheet (24).\n" ); +// Functions: +// item::repair_info +TEST_CASE( "repairable and with what tools", "[iteminfo][repair]" ) +{ + clear_avatar(); + + item halligan( "test_halligan" ); + item hazmat( "test_hazmat_suit" ); + item rock( "test_rock" ); + + std::vector repaired = { iteminfo_parts::DESCRIPTION_REPAIREDWITH }; + + // TODO: Move reinforcement to a different part flag ? Repair tools interfere here (especially + // with Magiclysm, which has enchanted tailor's kit) + /* + item socks( "test_socks" ); + CHECK( item_info_str( socks, repaired ) == + "--\n" + "* This item can be reinforced.\n" ); + */ + + CHECK( item_info_str( halligan, repaired ) == + "--\n" + "Repair using extended toolset, arc welder, or makeshift arc welder.\n" ); + + // FIXME: Use an item that can only be repaired by test tools + CHECK( item_info_str( hazmat, repaired ) == + "--\n" + "Repair using soldering iron, TEST soldering iron, or extended toolset.\n" ); + + CHECK( item_info_str( rock, repaired ) == + "--\n" + "* This item is not repairable.\n" ); } -TEST_CASE( "item description flags", "[item][iteminfo]" ) +// Functions: +// item::disassembly_info +TEST_CASE( "disassembly time and yield", "[iteminfo][disassembly]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::DESCRIPTION_FLAGS } ); - test_info_equals( - item( "test_halligan" ), q, - "--\n" - "* This item can be clipped on to a belt loop of the appropriate size.\n" - "* As a weapon, this item is well-made and will" - " withstand the punishment of combat.\n" ); + std::vector disassemble = { iteminfo_parts::DESCRIPTION_COMPONENTS_DISASSEMBLE }; + + item iron( "test_soldering_iron" ); + item metal( "test_sheet_metal" ); - test_info_equals( - item( "test_hazmat_suit" ), q, - "--\n" - "* This gear completely protects you from" - " electric discharges.\n" - "* This gear completely protects you from" - " any gas.\n" - "* This gear is generally worn over clothing.\n" - "* This clothing completely protects you from" - " radiation.\n" - "* This clothing is designed to keep you dry in the rain.\n" - "* This clothing won't let water through." - " Unless you jump in the river or something like that.\n" ); + CHECK( item_info_str( iron, disassemble ) == + "--\n" + "Disassembly takes about 20 minutes and might yield:" + " 2 electronic scraps, copper (1), scrap metal (1), and copper wire (5).\n" ); + + CHECK( item_info_str( metal, disassemble ) == + "--\n" + "Disassembly takes about 2 minutes and might yield:" + " TEST small metal sheet (24).\n" ); } -TEST_CASE( "show available recipes with item as an ingredient", "[item][iteminfo][recipes]" ) +// Related JSON fields: +// "flags" +// +// The DESCRIPTION_FLAGS part shows descriptions of item "flags" from data/json/flags.json. +// +// Functions: +// item::final_info +// FIXME: Factor out of final_info +TEST_CASE( "item description flags", "[iteminfo][flags]" ) { clear_avatar(); - iteminfo_query q = q_vec( { iteminfo_parts::DESCRIPTION_APPLICABLE_RECIPES } ); + + std::vector flags = { iteminfo_parts::DESCRIPTION_FLAGS }; + + item halligan( "test_halligan" ); + item hazmat( "test_hazmat_suit" ); + + // Halligan bar has a couple flags + REQUIRE( halligan.has_flag( "BELT_CLIP" ) ); + REQUIRE( halligan.has_flag( "DURABLE_MELEE" ) ); + CHECK( item_info_str( halligan, flags ) == + "--\n" + "* This item can be clipped on to a belt loop of the appropriate size.\n" + "* As a weapon, this item is well-made and will" + " withstand the punishment of combat.\n" ); + + // Hazmat suit has a lot of flags + REQUIRE( hazmat.has_flag( "ELECTRIC_IMMUNE" ) ); + REQUIRE( hazmat.has_flag( "GAS_PROOF" ) ); + REQUIRE( hazmat.has_flag( "OUTER" ) ); + REQUIRE( hazmat.has_flag( "RAD_PROOF" ) ); + REQUIRE( hazmat.has_flag( "RAINPROOF" ) ); + REQUIRE( hazmat.has_flag( "WATERPROOF" ) ); + CHECK( item_info_str( hazmat, flags ) == + "--\n" + "* This gear completely protects you from" + " electric discharges.\n" + "* This gear completely protects you from" + " any gas.\n" + "* This gear is generally worn over clothing.\n" + "* This clothing completely protects you from" + " radiation.\n" + "* This clothing is designed to keep you dry in the rain.\n" + "* This clothing won't let water through." + " Unless you jump in the river or something like that.\n" ); +} + +// Functions: +// item::final_info +TEST_CASE( "show available recipes with item as an ingredient", "[iteminfo][recipes]" ) +{ + clear_avatar(); + const recipe *purtab = &recipe_id( "pur_tablets" ).obj(); recipe_subset &known_recipes = const_cast( g->u.get_learned_recipes() ); known_recipes.clear(); + // FIXME: Factor out of final_info + std::vector crafting = { iteminfo_parts::DESCRIPTION_APPLICABLE_RECIPES }; + GIVEN( "character has a potassium iodide tablet and no skill" ) { g->u.worn.push_back( item( "backpack" ) ); item &iodine = g->u.i_add( item( "iodine" ) ); @@ -584,9 +1943,8 @@ TEST_CASE( "show available recipes with item as an ingredient", "[item][iteminfo REQUIRE( !g->u.knows_recipe( purtab ) ); THEN( "nothing is craftable from it" ) { - test_info_equals( - iodine, q, - "--\nYou know of nothing you could craft with it.\n" ); + CHECK( item_info_str( iodine, crafting ) == + "--\nYou know of nothing you could craft with it.\n" ); } WHEN( "they acquire the needed skills" ) { @@ -594,9 +1952,8 @@ TEST_CASE( "show available recipes with item as an ingredient", "[item][iteminfo REQUIRE( g->u.get_skill_level( purtab->skill_used ) == purtab->difficulty ); THEN( "still nothing is craftable from it" ) { - test_info_equals( - iodine, q, - "--\nYou know of nothing you could craft with it.\n" ); + CHECK( item_info_str( iodine, crafting ) == + "--\nYou know of nothing you could craft with it.\n" ); } WHEN( "they have no book, but have the recipe memorized" ) { @@ -604,29 +1961,299 @@ TEST_CASE( "show available recipes with item as an ingredient", "[item][iteminfo REQUIRE( g->u.knows_recipe( purtab ) ); THEN( "they can use potassium iodide tablets to craft it" ) { - test_info_equals( - iodine, q, - "--\n" - "You could use it to craft: " - "water purification tablet\n" ); + CHECK( item_info_str( iodine, crafting ) == + "--\n" + "You could use it to craft: " + "water purification tablet\n" ); } } WHEN( "they have the recipe in a book, but not memorized" ) { item &textbook = g->u.i_add( item( "textbook_chemistry" ) ); g->u.do_read( textbook ); - REQUIRE( g->u.has_identified( "textbook_chemistry" ) ); + REQUIRE( g->u.has_identified( itype_id( "textbook_chemistry" ) ) ); // update the crafting inventory cache g->u.moves++; THEN( "they can use potassium iodide tablets to craft it" ) { - test_info_equals( - iodine, q, - "--\n" - "You could use it to craft: " - "water purification tablet\n" ); + CHECK( item_info_str( iodine, crafting ) == + "--\n" + "You could use it to craft: " + "water purification tablet" + " and antiseptic powder\n" ); } } } } } + +// Pocket tests below relate to te JSON "pocket_data" fields: +// +// - "max_contains_volume" +// - "max_contains_weight" +// - "max_item_length" +// - "max_item_volume" +// - "watertight" +// - "moves" +// - "rigid" + +// Functions: +// item_contents::info +// item_pocket::general_info +TEST_CASE( "pocket info for a simple container", "[iteminfo][pocket][container]" ) +{ + clear_avatar(); + + item test_waterskin( "test_waterskin" ); + std::vector pockets = { iteminfo_parts::DESCRIPTION_POCKETS }; + + override_option opt_vol( "VOLUME_UNITS", "l" ); + override_option opt_weight( "USE_METRIC_WEIGHTS", "kg" ); + override_option opt_dist( "DISTANCE_UNITS", "metric" ); + + // Simple containers with only one pocket show a "Total capacity" section + // with all the pocket's restrictions and other attributes + CHECK( item_info_str( test_waterskin, pockets ) == + "--\n" + "Total capacity:\n" + "Volume: 1.50 L Weight: 3.00 kg\n" + "Maximum item length: 12 cm\n" + "Maximum item volume: 0.015 L\n" + "Base moves to remove item: 220\n" + "This pocket can contain a liquid.\n" ); +} + +// Functions: +// item_contents::info +// item_pocket::general_info +TEST_CASE( "pocket info units - imperial or metric", "[iteminfo][pocket][units]" ) +{ + clear_avatar(); + + item test_jug( "test_jug_plastic" ); + std::vector pockets = { iteminfo_parts::DESCRIPTION_POCKETS }; + + GIVEN( "metric units" ) { + override_option opt_vol( "VOLUME_UNITS", "l" ); + override_option opt_weight( "USE_METRIC_WEIGHTS", "kg" ); + override_option opt_dist( "DISTANCE_UNITS", "metric" ); + + THEN( "pocket capacity is shown in liters, kilograms, and millimeters" ) { + CHECK( item_info_str( test_jug, pockets ) == + "--\n" + "Total capacity:\n" + "Volume: 3.75 L Weight: 5.00 kg\n" + "Maximum item length: 226 mm\n" + "Maximum item volume: 0.015 L\n" + "Base moves to remove item: 100\n" + "This pocket is rigid.\n" + "This pocket can contain a liquid.\n" ); + } + } + + GIVEN( "imperial units" ) { + override_option opt_vol( "VOLUME_UNITS", "qt" ); + override_option opt_weight( "USE_METRIC_WEIGHTS", "lbs" ); + override_option opt_dist( "DISTANCE_UNITS", "imperial" ); + + THEN( "pocket capacity is shown in quarts, pounds, and inches" ) { + CHECK( item_info_str( test_jug, pockets ) == + "--\n" + "Total capacity:\n" + "Volume: 3.97 qt Weight: 11.02 lbs\n" + "Maximum item length: 8 in.\n" + "Maximum item volume: 0.016 qt\n" + "Base moves to remove item: 100\n" + "This pocket is rigid.\n" + "This pocket can contain a liquid.\n" ); + } + } +} + +// Functions: +// item_contents::info +// item_pocket::general_info +TEST_CASE( "pocket info for a multi-pocket item", "[iteminfo][pocket][multiple]" ) +{ + clear_avatar(); + + item test_belt( "test_tool_belt" ); + std::vector pockets = { iteminfo_parts::DESCRIPTION_POCKETS }; + + override_option opt_vol( "VOLUME_UNITS", "l" ); + override_option opt_weight( "USE_METRIC_WEIGHTS", "kg" ); + override_option opt_dist( "DISTANCE_UNITS", "metric" ); + + // When two pockets have the same attributes, they are combined with a heading like: + // + // 2 Pockets with capacity: + // Volume: ... Weight: ... + // + // The "Total capacity" indicates the sum Volume/Weight capacity of all pockets. + CHECK( item_info_str( test_belt, pockets ) == + "--\n" + "Total capacity:\n" + "Volume: 6.00 L Weight: 4.00 kg\n" + "--\n" + "4 Pockets with capacity:\n" + "Volume: 1.50 L Weight: 1.00 kg\n" + "Maximum item length: 155 mm\n" + "Minimum item volume: 0.050 L\n" + "Base moves to remove item: 50\n" ); +} + +// Functions: +// vol_to_info from item.cpp +TEST_CASE( "vol_to_info", "[iteminfo][volume]" ) +{ + clear_avatar(); + + override_option opt_vol( "VOLUME_UNITS", "l" ); + iteminfo vol = vol_to_info( "BASE", "Volume", 3_liter ); + // strings + CHECK( vol.sType == "BASE" ); + CHECK( vol.sName == "Volume" ); + CHECK( vol.sFmt == " L" ); + CHECK( vol.sValue == "3.00" ); + // doubles + CHECK( vol.dValue == 3.0 ); + // booleans + CHECK( vol.bDrawName == true ); + CHECK( vol.bLowerIsBetter == true ); + CHECK( vol.bNewLine == false ); + CHECK( vol.bShowPlus == false ); + CHECK( vol.is_int == false ); + CHECK( vol.three_decimal == false ); +} + +// Functions: +// weight_to_info from item.cpp +TEST_CASE( "weight_to_info", "[iteminfo][weight]" ) +{ + clear_avatar(); + + override_option opt( "USE_METRIC_WEIGHTS", "kg" ); + iteminfo wt = weight_to_info( "BASE", "Weight", 3_kilogram ); + // strings + CHECK( wt.sType == "BASE" ); + CHECK( wt.sName == "Weight" ); + CHECK( wt.sFmt == " kg" ); + CHECK( wt.sValue == "3.00" ); + // doubles + CHECK( wt.dValue == 3.0 ); + // booleans + CHECK( wt.bDrawName == true ); + CHECK( wt.bLowerIsBetter == true ); + CHECK( wt.bNewLine == false ); + CHECK( wt.bShowPlus == false ); + CHECK( wt.is_int == false ); + CHECK( wt.three_decimal == false ); +} + +// Functions: +// item::final_info +TEST_CASE( "final info", "[iteminfo][final]" ) +{ + clear_avatar(); + + SECTION( "material allergy" ) { + item socks( "test_socks" ); + REQUIRE( socks.made_of( material_id( "wool" ) ) ); + + WHEN( "avatar has a wool allergy" ) { + g->u.toggle_trait( trait_id( "WOOLALLERGY" ) ); + REQUIRE( g->u.has_trait( trait_id( "WOOLALLERGY" ) ) ); + + CHECK( item_info_str( socks, { iteminfo_parts::DESCRIPTION_ALLERGEN } ) == + "--\n" + "* This clothing will give you an allergic reaction.\n" ); + } + } + + SECTION( "fermentation and brewing" ) { + std::vector brew_duration = { iteminfo_parts::DESCRIPTION_BREWABLE_DURATION }; + std::vector brew_products = { iteminfo_parts::DESCRIPTION_BREWABLE_PRODUCTS }; + + item wine_must( "test_brew_wine" ); + REQUIRE( wine_must.brewing_time() == 12_hours ); + + // TODO: DESCRIPTION_ACTIVATABLE_TRANSFORMATION (sourdough?) + + CHECK( item_info_str( wine_must, brew_duration ) == + "--\n" + "* Once set in a vat, this will ferment in around 12 hours.\n" ); + + CHECK( item_info_str( wine_must, brew_products ) == + "--\n" + "* Fermenting this will produce test tennis ball wine.\n" + "* Fermenting this will produce yeast.\n" ); + } + + SECTION( "radioactivity" ) { + std::vector radioactive = { iteminfo_parts::DESCRIPTION_RADIOACTIVITY_ALWAYS }; + + item carafe( "test_nuclear_carafe" ); + REQUIRE( carafe.has_flag( "RADIOACTIVE" ) ); + REQUIRE( carafe.has_flag( "LEAK_ALWAYS" ) ); + + CHECK( item_info_str( carafe, radioactive ) == + "--\n" + "* This object is surrounded" + " by a sickly green glow.\n" ); + } +} + +// Each item::xxx_info function has a `debug` argument, though only a few use it. The main +// item::info function sets it based on whether the global game variable `debug_mode` is true. +// +// The item::debug_info function prints debug info for the item if iteminfo_parts::BASE_DEBUG is +// given, and the `debug` argument passed to the function is true. This function used to be part of +// item::basic_info, and as of this writing is now invoked just after that function. +// +// Functions: +// item::debug_info +// FIXME: This fails when run with other tests. May not be worth having a test on... +TEST_CASE( "item debug info", "[iteminfo][debug][!mayfail][.]" ) +{ + clear_avatar(); + + SECTION( "debug info displayed when debug_mode is true" ) { + // Lightly aged pine nuts + item nuts( "test_pine_nuts" ); + calendar::turn += 8_hours; + // Quick-check a couple expected values for debug info + REQUIRE( nuts.age() == 8_hours ); + REQUIRE( nuts.charges == 4 ); + + // Debug info may be enabled with an iteminfo_parts flag + std::vector debug_part = { iteminfo_parts::BASE_DEBUG }; + const iteminfo_query debug_query( debug_part ); + + // Invoke item::debug_info directly, so we can pass debug = true + // (instead of relying on item::info to use the debug_mode global setting) + std::vector info_vec; + nuts.debug_info( info_vec, &debug_query, 1, true ); + + // FIXME: "last rot" and "last temp" are expected to be 0, but may have values (ex. 43200) + // Neex to figure out what processing to do before this check to make them predictable + CHECK( format_item_info( info_vec, {} ) == + "age (hours): 8\n" + "charges: 4\n" + "damage: 0\n" + "active: 1\n" + "burn: 0\n" + "tags: \n" // NOLINT(cata-text-style) + "age (turns): 28800\n" + "rot (turns): 0\n" + " max rot (turns): 3888000\n" + "last rot: 0\n" + "last temp: 0\n" + "Temp: 0\n" + "Spec ener: -10\n" + "Spec heat lq: 2200\n" + "Spec heat sld: 2200\n" + "latent heat: 20\n" + "Freeze point: 32\n" ); + } +} + diff --git a/tests/iuse_actor_test.cpp b/tests/iuse_actor_test.cpp index ed73bf81068ee..91cadb681680c 100644 --- a/tests/iuse_actor_test.cpp +++ b/tests/iuse_actor_test.cpp @@ -20,7 +20,7 @@ static player &get_sanitized_player( ) // Remove first worn item until there are none left. std::list temp; - while( dummy.takeoff( dummy.i_at( -2 ), &temp ) ); + while( dummy.takeoff( dummy.i_at( -2 ), &temp ) ) {} dummy.inv.clear(); dummy.remove_weapon(); @@ -58,7 +58,7 @@ TEST_CASE( "manhack", "[iuse_actor][manhack]" ) dummy.invoke_item( &test_item ); REQUIRE( !dummy.has_item_with( []( const item & it ) { - return it.typeId() == "bot_manhack"; + return it.typeId() == itype_id( "bot_manhack" ); } ) ); new_manhack = find_adjacent_monster( dummy.pos() ); diff --git a/tests/iuse_test.cpp b/tests/iuse_test.cpp index 72279f0d25c8f..f9f70635edde7 100644 --- a/tests/iuse_test.cpp +++ b/tests/iuse_test.cpp @@ -188,9 +188,11 @@ TEST_CASE( "anticonvulsant", "[iuse][anticonvulsant]" ) TEST_CASE( "oxygen tank", "[iuse][oxygen_bottle]" ) { avatar dummy; - item oxygen( "oxygen_tank", 0, item::default_charges_tag{} ); + item oxygen( "oxygen_tank" ); + itype_id o2_ammo( "oxygen" ); + oxygen.ammo_set( o2_ammo ); - int charges_before = oxygen.charges; + int charges_before = oxygen.ammo_remaining(); REQUIRE( charges_before > 0 ); // Ensure baseline painkiller value to measure painkiller effects @@ -203,7 +205,7 @@ TEST_CASE( "oxygen tank", "[iuse][oxygen_bottle]" ) THEN( "a dose of oxygen relieves the smoke inhalation" ) { dummy.invoke_item( &oxygen ); - CHECK( oxygen.charges == charges_before - 1 ); + CHECK( oxygen.ammo_remaining() == charges_before - 1 ); CHECK_FALSE( dummy.has_effect( efftype_id( "smoke" ) ) ); AND_THEN( "it acts as a mild painkiller" ) { @@ -218,7 +220,7 @@ TEST_CASE( "oxygen tank", "[iuse][oxygen_bottle]" ) THEN( "a dose of oxygen relieves the effects of tear gas" ) { dummy.invoke_item( &oxygen ); - CHECK( oxygen.charges == charges_before - 1 ); + CHECK( oxygen.ammo_remaining() == charges_before - 1 ); CHECK_FALSE( dummy.has_effect( efftype_id( "teargas" ) ) ); AND_THEN( "it acts as a mild painkiller" ) { @@ -233,7 +235,7 @@ TEST_CASE( "oxygen tank", "[iuse][oxygen_bottle]" ) THEN( "a dose of oxygen relieves the effects of asthma" ) { dummy.invoke_item( &oxygen ); - CHECK( oxygen.charges == charges_before - 1 ); + CHECK( oxygen.ammo_remaining() == charges_before - 1 ); CHECK_FALSE( dummy.has_effect( efftype_id( "asthma" ) ) ); AND_THEN( "it acts as a mild painkiller" ) { @@ -253,7 +255,7 @@ TEST_CASE( "oxygen tank", "[iuse][oxygen_bottle]" ) THEN( "a dose of oxygen is stimulating" ) { dummy.invoke_item( &oxygen ); - CHECK( oxygen.charges == charges_before - 1 ); + CHECK( oxygen.ammo_remaining() == charges_before - 1 ); // values should match iuse function `oxygen_bottle` CHECK( dummy.get_stim() == 8 ); @@ -273,7 +275,7 @@ TEST_CASE( "oxygen tank", "[iuse][oxygen_bottle]" ) THEN( "a dose of oxygen has no additional stimulation effects" ) { dummy.invoke_item( &oxygen ); - CHECK( oxygen.charges == charges_before - 1 ); + CHECK( oxygen.ammo_remaining() == charges_before - 1 ); CHECK( dummy.get_stim() == max_stim ); AND_THEN( "it acts as a mild painkiller" ) { @@ -301,14 +303,14 @@ TEST_CASE( "caffeine and atomic caffeine", "[iuse][caff][atomic_caff]" ) SECTION( "coffee reduces fatigue, but does not give stimulant effect" ) { item coffee( "coffee", 0, item::default_charges_tag{} ); - dummy.consume_item( coffee ); + dummy.consume( coffee ); CHECK( dummy.get_fatigue() == fatigue_before - coffee.get_comestible()->fatigue_mod ); CHECK( dummy.get_stim() == coffee.get_comestible()->stim ); } SECTION( "atomic caffeine greatly reduces fatigue, and increases stimulant effect" ) { item atomic_coffee( "atomic_coffee", 0, item::default_charges_tag{} ); - dummy.consume_item( atomic_coffee ); + dummy.consume( atomic_coffee ); CHECK( dummy.get_fatigue() == fatigue_before - atomic_coffee.get_comestible()->fatigue_mod ); CHECK( dummy.get_stim() == atomic_coffee.get_comestible()->stim ); } @@ -321,7 +323,8 @@ TEST_CASE( "towel", "[iuse][towel]" ) GIVEN( "avatar is wet" ) { // Saturate torso, head, and both arms - dummy.drench( 100, { bp_torso, bp_head, bp_arm_l, bp_arm_r }, false ); + dummy.drench( 100, { bodypart_str_id( "torso" ), bodypart_str_id( "head" ), bodypart_str_id( "arm_l" ), bodypart_str_id( "arm_r" ) }, + false ); REQUIRE( dummy.body_wetness[bp_torso] > 0 ); REQUIRE( dummy.body_wetness[bp_head] > 0 ); REQUIRE( dummy.body_wetness[bp_arm_l] > 0 ); @@ -342,13 +345,13 @@ TEST_CASE( "towel", "[iuse][towel]" ) CHECK( dummy.body_wetness[bp_arm_r] == 0 ); AND_THEN( "the towel becomes wet" ) { - CHECK( towel.typeId() == "towel_wet" ); + CHECK( towel.typeId().str() == "towel_wet" ); } } } WHEN( "they use a wet towel" ) { - towel.convert( "towel_wet" ); + towel.convert( itype_id( "towel_wet" ) ); REQUIRE( towel.has_flag( flag_WET ) ); dummy.invoke_item( &towel ); @@ -366,7 +369,7 @@ TEST_CASE( "towel", "[iuse][towel]" ) REQUIRE( dummy.has_morale( MORALE_WET ) == -10 ); WHEN( "they use a wet towel" ) { - towel.convert( "towel_wet" ); + towel.convert( itype_id( "towel_wet" ) ); REQUIRE( towel.has_flag( flag_WET ) ); dummy.invoke_item( &towel ); @@ -383,7 +386,7 @@ TEST_CASE( "towel", "[iuse][towel]" ) CHECK( dummy.has_morale( MORALE_WET ) == 0 ); AND_THEN( "the towel becomes wet" ) { - CHECK( towel.typeId() == "towel_wet" ); + CHECK( towel.typeId() == itype_id( "towel_wet" ) ); } } } @@ -407,7 +410,7 @@ TEST_CASE( "towel", "[iuse][towel]" ) CHECK_FALSE( dummy.has_effect( efftype_id( "glowing" ) ) ); AND_THEN( "the towel becomes soiled" ) { - CHECK( towel.typeId() == "towel_soiled" ); + CHECK( towel.typeId() == itype_id( "towel_soiled" ) ); } } } @@ -427,7 +430,7 @@ TEST_CASE( "towel", "[iuse][towel]" ) CHECK( std::abs( dummy.has_morale( MORALE_WET ) ) ); AND_THEN( "the towel becomes soiled" ) { - CHECK( towel.typeId() == "towel_soiled" ); + CHECK( towel.typeId() == itype_id( "towel_soiled" ) ); } } } @@ -510,7 +513,9 @@ TEST_CASE( "prozac", "[iuse][prozac]" ) TEST_CASE( "inhaler", "[iuse][inhaler]" ) { avatar dummy; - item inhaler( "inhaler", 0, item::default_charges_tag{} ); + item inhaler( "inhaler" ); + inhaler.ammo_set( itype_id( "albuterol" ) ); + REQUIRE( inhaler.ammo_remaining() > 0 ); GIVEN( "avatar is suffering from smoke inhalation" ) { dummy.add_effect( efftype_id( "smoke" ), 1_hours ); @@ -551,7 +556,7 @@ TEST_CASE( "panacea", "[iuse][panacea]" ) SECTION( "panacea gives cure-all effect" ) { REQUIRE_FALSE( dummy.has_effect( efftype_id( "cureall" ) ) ); - dummy.consume_item( panacea ); + dummy.consume( panacea ); CHECK( dummy.has_effect( efftype_id( "cureall" ) ) ); } } diff --git a/tests/magic_spell_effect_test.cpp b/tests/magic_spell_effect_test.cpp index b9943d12623bc..cc91d664e1d03 100644 --- a/tests/magic_spell_effect_test.cpp +++ b/tests/magic_spell_effect_test.cpp @@ -5,6 +5,7 @@ #include "magic.h" #include "magic_spell_effect_helpers.h" #include "npc.h" +#include "player_helpers.h" TEST_CASE( "line_attack", "[magic]" ) { @@ -31,7 +32,8 @@ TEST_CASE( "line_attack", "[magic]" ) spell sp( spell_id( "test_line_spell" ) ); // set up Character to test with, only need position - npc c; + npc &c = spawn_npc( point_zero, "test_talker" ); + clear_character( c ); c.setpos( tripoint_zero ); // target point 5 tiles east of zero diff --git a/tests/magic_spell_test.cpp b/tests/magic_spell_test.cpp index 533168975192d..b7af678a8a473 100644 --- a/tests/magic_spell_test.cpp +++ b/tests/magic_spell_test.cpp @@ -23,7 +23,6 @@ // All these test cases use spells from data/mods/TEST_DATA/magic.json, to have predictable data // unaffected by in-game balance and mods. - // Spell name // ---------- // @@ -52,7 +51,6 @@ TEST_CASE( "spell name", "[magic][spell][name]" ) CHECK( montage_spell.name() == "Sports Training Montage" ); } - // Spell level // ----------- // @@ -99,7 +97,7 @@ TEST_CASE( "spell level", "[magic][spell][level]" ) } // Return experience points needed to level up a spell, starting at from_level -static int spell_xp_to_next_level( const spell_id sp_id, const int from_level ) +static int spell_xp_to_next_level( const spell_id &sp_id, const int from_level ) { spell test_spell( sp_id ); test_spell.set_level( from_level ); @@ -223,7 +221,7 @@ TEST_CASE( "experience to gain spell levels", "[magic][spell][level][xp]" ) // spell::damage // Return spell damage at a given level -static int spell_damage( const spell_id sp_id, const int spell_level ) +static int spell_damage( const spell_id &sp_id, const int spell_level ) { spell test_spell( sp_id ); test_spell.set_level( spell_level ); @@ -275,7 +273,7 @@ TEST_CASE( "spell damage", "[magic][spell][damage]" ) // spell::duration_string // Return spell duration at a given level -static std::string spell_duration_string( const spell_id sp_id, const int spell_level ) +static std::string spell_duration_string( const spell_id &sp_id, const int spell_level ) { spell test_spell( sp_id ); test_spell.set_level( spell_level ); @@ -341,7 +339,7 @@ TEST_CASE( "spell duration", "[magic][spell][duration]" ) // spell::range // Return spell range at a given level -static int spell_range( const spell_id sp_id, const int spell_level ) +static int spell_range( const spell_id &sp_id, const int spell_level ) { spell test_spell( sp_id ); test_spell.set_level( spell_level ); @@ -395,7 +393,7 @@ TEST_CASE( "spell range", "[magic][spell][range]" ) // spell::aoe // Return spell AOE at a given level -static int spell_aoe( const spell_id sp_id, const int spell_level ) +static int spell_aoe( const spell_id &sp_id, const int spell_level ) { spell test_spell( sp_id ); test_spell.set_level( spell_level ); @@ -568,7 +566,7 @@ TEST_CASE( "spell effect - recover_energy", "[magic][spell][effect][recover_ener REQUIRE( montage_type.effect_str == "STAMINA" ); // at the cost of a substantial amount of mana REQUIRE( montage_type.base_energy_cost == 800 ); - REQUIRE( montage_type.energy_source == mana_energy ); + REQUIRE( montage_type.energy_source == magic_energy_type::mana ); // At level 0, recovers 1000 stamina (10% of maximum) REQUIRE( montage_type.min_damage == 1000 ); diff --git a/tests/map_extra_test.cpp b/tests/map_extra_test.cpp index 9f0c6be715db3..01f690463e9a8 100644 --- a/tests/map_extra_test.cpp +++ b/tests/map_extra_test.cpp @@ -9,7 +9,7 @@ TEST_CASE( "mx_minefield real spawn", "[map_extra][overmap]" ) { // Pick a point in the middle of the overmap so we don't generate quite so // many overmaps when searching. - const tripoint origin = tripoint( 90, 90, 0 );; + const tripoint origin = tripoint( 90, 90, 0 ); // Find all of the bridges within a 180 OMT radius of this location. omt_find_params find_params; @@ -33,7 +33,7 @@ TEST_CASE( "mx_minefield real spawn", "[map_extra][overmap]" ) // Count the number of mx_minefield map extras that have been generated. const string_id mx_minefield( "mx_minefield" ); int successes = std::count_if( extras.begin(), - extras.end(), [&mx_minefield]( std::pair> e ) { + extras.end(), [&mx_minefield]( const std::pair> &e ) { return e.second == mx_minefield; } ); diff --git a/tests/map_test.cpp b/tests/map_test.cpp index 5ccbb52d6b428..a4e04e191d7e6 100644 --- a/tests/map_test.cpp +++ b/tests/map_test.cpp @@ -19,11 +19,11 @@ TEST_CASE( "destroy_grabbed_furniture" ) g->u.setpos( test_origin ); const tripoint grab_point = test_origin + tripoint_east; g->m.furn_set( grab_point, furn_id( "f_chair" ) ); - g->u.grab( OBJECT_FURNITURE, grab_point ); + g->u.grab( object_type::FURNITURE, grab_point ); WHEN( "The furniture grabbed by the player is destroyed" ) { g->m.destroy( grab_point ); THEN( "The player's grab is released" ) { - CHECK( g->u.get_grab_type() == OBJECT_NONE ); + CHECK( g->u.get_grab_type() == object_type::NONE ); CHECK( g->u.grab_point == tripoint_zero ); } } diff --git a/tests/melee_dodge_hit_test.cpp b/tests/melee_dodge_hit_test.cpp index 92c22134b12cf..c47127dd67845 100644 --- a/tests/melee_dodge_hit_test.cpp +++ b/tests/melee_dodge_hit_test.cpp @@ -14,9 +14,6 @@ // - Character::get_dodge_base, monster::get_dodge_base // - player::get_dodge, monster::get_dodge -static const efftype_id effect_grabbed( "grabbed" ); -static const efftype_id effect_grabbing( "grabbing" ); - // Return the avatar's `get_hit_base` with a given DEX stat. static float hit_base_with_dex( avatar &dummy, int dexterity ) { @@ -37,7 +34,7 @@ static float dodge_base_with_dex_and_skill( avatar &dummy, int dexterity, int do } // Return the Creature's `get_dodge` with the given effect. -static float dodge_with_effect( Creature &critter, std::string effect_name ) +static float dodge_with_effect( Creature &critter, const std::string &effect_name ) { // Set one effect and leave other attributes alone critter.clear_effects(); @@ -51,7 +48,7 @@ static float dodge_wearing_item( avatar &dummy, item &clothing ) { // Get nekkid and wear just this one item std::list temp; - while( dummy.takeoff( dummy.i_at( -2 ), &temp ) ); + while( dummy.takeoff( dummy.i_at( -2 ), &temp ) ) {} dummy.wear_item( clothing ); return dummy.get_dodge(); diff --git a/tests/memorial_test.cpp b/tests/memorial_test.cpp index 4e90c294b6a2c..8e50562820139 100644 --- a/tests/memorial_test.cpp +++ b/tests/memorial_test.cpp @@ -14,6 +14,7 @@ #include "output.h" #include "player_helpers.h" #include "pldata.h" +#include "profession.h" #include "type_id.h" class event_bus; @@ -186,7 +187,8 @@ TEST_CASE( "memorials" ) m, b, u_name + " was killed.\nLast words: last_words", false, "last_words" ); check_memorial( - m, b, u_name + " began their journey into the Cataclysm.", ch ); + m, b, u_name + " began their journey into the Cataclysm.", ch, u_name, g->u.male, + g->u.prof->ident(), g->u.custom_profession, "VERSION_STRING" ); check_memorial( m, b, "Installed bionic: Alarm System.", ch, cbm ); @@ -209,8 +211,25 @@ TEST_CASE( "memorials" ) check_memorial( m, b, "Opened a strange temple." ); + // In magiclysm, the first character_forgets_spell event will trigger an + // achievement which also enters the log. We don't want that to pollute + // the test case, so send another event first. + b.send( ch, spell_id( "pain_damage" ) ); + + check_memorial( + m, b, "Forgot the spell Pain.", ch, spell_id( "pain_damage" ) ); + + // Similarly for character_learns_spell + b.send( ch, spell_id( "pain_damage" ) ); + + check_memorial( + m, b, "Learned the spell Pain.", ch, spell_id( "pain_damage" ) ); + + // Similarly for character_levels_spell + b.send( ch, spell_id( "pain_damage" ), 5 ); + check_memorial( - m, b, "Gained a spell level on Pain.", spell_id( "pain_damage" ), 5 ); + m, b, "Gained a spell level on Pain.", ch, spell_id( "pain_damage" ), 5 ); check_memorial( m, b, "Released subspace specimens." ); diff --git a/tests/modify_morale_test.cpp b/tests/modify_morale_test.cpp index 3db579476dda0..25a1293b4fa74 100644 --- a/tests/modify_morale_test.cpp +++ b/tests/modify_morale_test.cpp @@ -132,7 +132,7 @@ TEST_CASE( "dining with table and chair", "[food][modify_morale][table][chair]" CHECK( dummy.has_morale( MORALE_ATE_WITHOUT_TABLE ) <= -2 ); } - for( std::string item_name : no_table_eating_bonus ) { + for( const std::string &item_name : no_table_eating_bonus ) { item test_item( item_name ); THEN( "they get no morale penalty for using " + item_name + " at a table" ) { @@ -159,7 +159,7 @@ TEST_CASE( "dining with table and chair", "[food][modify_morale][table][chair]" CHECK( dummy.has_morale( MORALE_ATE_WITH_TABLE ) >= 1 ); } - for( std::string item_name : no_table_eating_bonus ) { + for( const std::string &item_name : no_table_eating_bonus ) { item test_item( item_name ); THEN( "they get no morale bonus for using " + item_name + " at a table" ) { @@ -180,7 +180,7 @@ TEST_CASE( "dining with table and chair", "[food][modify_morale][table][chair]" CHECK( dummy.has_morale( MORALE_ATE_WITH_TABLE ) >= 3 ); } - for( std::string item_name : no_table_eating_bonus ) { + for( const std::string &item_name : no_table_eating_bonus ) { item test_item( item_name ); THEN( "they get no morale bonus for using " + item_name + " at a table" ) { @@ -225,13 +225,11 @@ TEST_CASE( "eating hot food", "[food][modify_morale][hot]" ) } } - TEST_CASE( "drugs", "[food][modify_morale][drug]" ) { avatar dummy; std::pair fun; - const std::vector drugs_to_test = { { "gum", @@ -255,7 +253,7 @@ TEST_CASE( "drugs", "[food][modify_morale][drug]" ) dummy.clear_morale(); REQUIRE( dummy.has_morale( MORALE_FOOD_GOOD ) == 0 ); - for( std::string drug_name : drugs_to_test ) { + for( const std::string &drug_name : drugs_to_test ) { item drug( drug_name ); fun = dummy.fun_for( drug ); REQUIRE( fun.first > 0 ); diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index 541e37b15844e..346f473536c57 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -89,7 +89,7 @@ static int can_catch_player( const std::string &monster_type, const tripoint &di player &test_player = g->u; // Strip off any potentially encumbering clothing. std::list temp; - while( test_player.takeoff( test_player.i_at( -2 ), &temp ) ); + while( test_player.takeoff( test_player.i_at( -2 ), &temp ) ) {} const tripoint center{ 65, 65, 0 }; test_player.setpos( center ); @@ -111,10 +111,10 @@ static int can_catch_player( const std::string &monster_type, const tripoint &di test_player.mod_moves( target_speed ); while( test_player.moves >= 0 ) { test_player.setpos( test_player.pos() + direction_of_flight ); - if( test_player.pos().x < SEEX * int( MAPSIZE / 2 ) || - test_player.pos().y < SEEY * int( MAPSIZE / 2 ) || - test_player.pos().x >= SEEX * ( 1 + int( MAPSIZE / 2 ) ) || - test_player.pos().y >= SEEY * ( 1 + int( MAPSIZE / 2 ) ) ) { + if( test_player.pos().x < SEEX * static_cast( MAPSIZE / 2 ) || + test_player.pos().y < SEEY * static_cast( MAPSIZE / 2 ) || + test_player.pos().x >= SEEX * ( 1 + static_cast( MAPSIZE / 2 ) ) || + test_player.pos().y >= SEEY * ( 1 + static_cast( MAPSIZE / 2 ) ) ) { tripoint offset = center - test_player.pos(); test_player.setpos( center ); test_monster.setpos( test_monster.pos() + offset ); diff --git a/tests/moon_test.cpp b/tests/moon_test.cpp new file mode 100644 index 0000000000000..a20092120207d --- /dev/null +++ b/tests/moon_test.cpp @@ -0,0 +1,346 @@ +#include "calendar.h" +#include "enum_conversions.h" + +#include "catch/catch.hpp" + +// MOON TESTS +// +// Summary of moon phases and moonlight +// +// In-game, the moon goes through several discrete phases based on season length. The phases are +// represented by an integer enum defined in calendar.h called `moon_phase` with these values: +// +// enum name light +// 0: MOON_NEW 1.00 +// 1: MOON_WAXING_CRESCENT 3.25 +// 2: MOON_HALF_MOON_WAXING 5.50 +// 3: MOON_WAXING_GIBBOUS 7.75 +// 4: MOON_FULL 10.00 +// 5: MOON_WANING_GIBBOUS 7.75 +// 6: MOON_HALF_MOON_WANING 5.50 +// 7: MOON_WANING_CRESCENT 3.25 +// +// During each phase, the amount of light emitted is is constant for the entire phase (indicated by +// the last column above). In other words, at no point does the moon emit 8.0 light. +// +// Phase changes take place at noon, so the change in the moon's light level occurs while the moon +// is "down" (so to speak). The relative positions of sun and moon are not actually modeled. +// +// At night, moonlight prevails. At dawn, light gradually goes from moonlight-level to +// sunlight-level over the course of the twilight time (1 hour), and at dusk the reverse occurs. + +// ------ +// Phases +// ------ + +// The full lunar cycle takes a duration defined by lunar_month(), by default the synodic month +// ~29.53 days when using the default season length of 91 days. +TEST_CASE( "moon phase repeats once per synodic month", "[calendar][moon][phase][synodic]" ) +{ + calendar::set_season_length( 91 ); + REQUIRE( calendar::season_from_default_ratio() == Approx( 1.0f ) ); + + // Synodic month is ~29.53 days + REQUIRE( to_days( lunar_month() ) == Approx( 29.53f ).margin( 0.001f ) ); + + // We will check the tenth and hundredth cycle + const time_duration ten_moons = 295_days; + const time_duration hundred_moons = 2953_days; + const time_point zero = calendar::turn_zero; + + // First day of cataclysm is a new moon, with full moon 14 days later + SECTION( "first moon on day 0" ) { + CHECK( get_moon_phase( zero ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 14_days ) == MOON_FULL ); + } + + // The 10th moon, late in year 1 of cataclysm + SECTION( "tenth moon on day 295" ) { + CHECK( get_moon_phase( zero + ten_moons ) == MOON_NEW ); + CHECK( get_moon_phase( zero + ten_moons + 14_days ) == MOON_FULL ); + } + + // The 100th moon, about 8 years into the cataclysm + SECTION( "hundredth moon on day 2953" ) { + CHECK( get_moon_phase( zero + hundred_moons ) == MOON_NEW ); + CHECK( get_moon_phase( zero + hundred_moons + 14_days ) == MOON_FULL ); + } +} + +// The user-defined season length influences the lunar month duration. At the 91-day default season +// length, one lunar (synodic) month is about 29.53 days. Longer or shorter seasons scale the lunar +// month accordingly. +// +TEST_CASE( "lunar month is scaled by season default ratio", "[calendar][moon][month][season]" ) +{ + const time_point zero = calendar::turn_zero; + + // Normal 91-day season length - 2 weeks from new moon to full moon + WHEN( "seasons are 91 days" ) { + calendar::set_season_length( 91 ); + REQUIRE( calendar::season_from_default_ratio() == Approx( 1.0f ) ); + + THEN( "it takes 14 days from new moon to full moon" ) { + CHECK( get_moon_phase( zero ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 14_days ) == MOON_FULL ); + } + } + + // Double normal season length - 4 weeks from new moon to full moon + WHEN( "seasons are 182 days" ) { + calendar::set_season_length( 182 ); + REQUIRE( calendar::season_from_default_ratio() == Approx( 2.0f ) ); + + THEN( "it takes 28 days from new moon to full moon" ) { + CHECK( get_moon_phase( zero ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 28_days ) == MOON_FULL ); + } + } + + // One-half normal season length - 1 week from new moon to full moon + WHEN( "seasons are 45 days" ) { + calendar::set_season_length( 45 ); + REQUIRE( calendar::season_from_default_ratio() == Approx( 0.5f ).margin( 0.01f ) ); + + THEN( "it takes 7 days from new moon to full moon" ) { + CHECK( get_moon_phase( zero ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 7_days ) == MOON_FULL ); + } + } +} + +// With 8 discrete phases during a 29-day period, each phase lasts three or four days. +// Over a 1-month period of 30 or 31 days, the moon should go through all 8 phases. +// +TEST_CASE( "moon phases each day for a month", "[calendar][moon][phase]" ) +{ + calendar::set_season_length( 91 ); + REQUIRE( calendar::season_from_default_ratio() == Approx( 1.0f ) ); + + const time_point zero = calendar::turn_zero; + + CHECK( get_moon_phase( zero + 0_days ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 1_days ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 2_days ) == MOON_WAXING_CRESCENT ); + CHECK( get_moon_phase( zero + 3_days ) == MOON_WAXING_CRESCENT ); + CHECK( get_moon_phase( zero + 4_days ) == MOON_WAXING_CRESCENT ); + CHECK( get_moon_phase( zero + 5_days ) == MOON_WAXING_CRESCENT ); + CHECK( get_moon_phase( zero + 6_days ) == MOON_HALF_MOON_WAXING ); + CHECK( get_moon_phase( zero + 7_days ) == MOON_HALF_MOON_WAXING ); + CHECK( get_moon_phase( zero + 8_days ) == MOON_HALF_MOON_WAXING ); + CHECK( get_moon_phase( zero + 9_days ) == MOON_HALF_MOON_WAXING ); + CHECK( get_moon_phase( zero + 10_days ) == MOON_WAXING_GIBBOUS ); + CHECK( get_moon_phase( zero + 11_days ) == MOON_WAXING_GIBBOUS ); + CHECK( get_moon_phase( zero + 12_days ) == MOON_WAXING_GIBBOUS ); + CHECK( get_moon_phase( zero + 13_days ) == MOON_FULL ); + CHECK( get_moon_phase( zero + 14_days ) == MOON_FULL ); + CHECK( get_moon_phase( zero + 15_days ) == MOON_FULL ); + CHECK( get_moon_phase( zero + 16_days ) == MOON_FULL ); + CHECK( get_moon_phase( zero + 17_days ) == MOON_WANING_GIBBOUS ); + CHECK( get_moon_phase( zero + 18_days ) == MOON_WANING_GIBBOUS ); + CHECK( get_moon_phase( zero + 19_days ) == MOON_WANING_GIBBOUS ); + CHECK( get_moon_phase( zero + 20_days ) == MOON_WANING_GIBBOUS ); + CHECK( get_moon_phase( zero + 21_days ) == MOON_HALF_MOON_WANING ); + CHECK( get_moon_phase( zero + 22_days ) == MOON_HALF_MOON_WANING ); + CHECK( get_moon_phase( zero + 23_days ) == MOON_HALF_MOON_WANING ); + CHECK( get_moon_phase( zero + 24_days ) == MOON_WANING_CRESCENT ); + CHECK( get_moon_phase( zero + 25_days ) == MOON_WANING_CRESCENT ); + CHECK( get_moon_phase( zero + 26_days ) == MOON_WANING_CRESCENT ); + CHECK( get_moon_phase( zero + 27_days ) == MOON_WANING_CRESCENT ); + CHECK( get_moon_phase( zero + 28_days ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 29_days ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 30_days ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 31_days ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 32_days ) == MOON_WAXING_CRESCENT ); +} + +// To prevent the light level from abruptly changing in the middle of the night, the moon's phase +// change occurs at noon (rather than midnight) on the appropriate day during the lunar cycle. +// +TEST_CASE( "moon phase changes at noon", "[calendar][moon][phase][change]" ) +{ + calendar::set_season_length( 91 ); + REQUIRE( calendar::season_from_default_ratio() == Approx( 1.0f ) ); + + const time_point zero = calendar::turn_zero; + + CHECK( get_moon_phase( zero + 1_days + 11_hours ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 1_days + 13_hours ) == MOON_WAXING_CRESCENT ); + + CHECK( get_moon_phase( zero + 5_days + 11_hours ) == MOON_WAXING_CRESCENT ); + CHECK( get_moon_phase( zero + 5_days + 13_hours ) == MOON_HALF_MOON_WAXING ); + + CHECK( get_moon_phase( zero + 9_days + 11_hours ) == MOON_HALF_MOON_WAXING ); + CHECK( get_moon_phase( zero + 9_days + 13_hours ) == MOON_WAXING_GIBBOUS ); + + CHECK( get_moon_phase( zero + 12_days + 11_hours ) == MOON_WAXING_GIBBOUS ); + CHECK( get_moon_phase( zero + 12_days + 13_hours ) == MOON_FULL ); + + CHECK( get_moon_phase( zero + 16_days + 11_hours ) == MOON_FULL ); + CHECK( get_moon_phase( zero + 16_days + 13_hours ) == MOON_WANING_GIBBOUS ); + + CHECK( get_moon_phase( zero + 20_days + 11_hours ) == MOON_WANING_GIBBOUS ); + CHECK( get_moon_phase( zero + 20_days + 13_hours ) == MOON_HALF_MOON_WANING ); + + CHECK( get_moon_phase( zero + 23_days + 11_hours ) == MOON_HALF_MOON_WANING ); + CHECK( get_moon_phase( zero + 23_days + 13_hours ) == MOON_WANING_CRESCENT ); + + CHECK( get_moon_phase( zero + 27_days + 11_hours ) == MOON_WANING_CRESCENT ); + CHECK( get_moon_phase( zero + 27_days + 13_hours ) == MOON_NEW ); + + CHECK( get_moon_phase( zero + 31_days + 11_hours ) == MOON_NEW ); + CHECK( get_moon_phase( zero + 31_days + 13_hours ) == MOON_WAXING_CRESCENT ); +} + +// --------- +// Moonlight +// --------- + +// At dawn, light transitions from moonlight to sunlight level. +// At dusk, light transitions from sunlight to moonlight level. +TEST_CASE( "moonlight at dawn and dusk", "[calendar][moon][moonlight][dawn][dusk]" ) +{ + calendar::set_season_length( 91 ); + REQUIRE( calendar::season_from_default_ratio() == Approx( 1.0f ) ); + + WHEN( "moon is new" ) { + time_point new_phase = calendar::turn_zero; + // Midnight of new moon + time_point new_midnight = new_phase - time_past_midnight( new_phase ); + time_point new_sunrise = sunrise( new_midnight ); + time_point new_sunset = sunset( new_midnight ); + time_point new_noon = new_midnight + 12_hours; + + // Daylight level should be 100 at first new moon + float daylight_level = current_daylight_level( new_noon ); + float half_twilight = ( daylight_level + 1 ) / 2; + float moonlight_level = 1.0f; + + THEN( "at night, light is only moonlight" ) { + CHECK( sunlight( new_sunset + 61_minutes ) == moonlight_level ); + CHECK( sunlight( new_midnight ) == moonlight_level ); + CHECK( sunlight( new_sunrise - 1_minutes ) == moonlight_level ); + } + THEN( "at dawn, light increases from moonlight to daylight" ) { + CHECK( sunlight( new_sunrise ) == moonlight_level ); + CHECK( sunlight( new_sunrise + 30_minutes ) == Approx( half_twilight ) ); + CHECK( sunlight( new_sunrise + 1_hours ) == daylight_level ); + } + THEN( "after dawn, until dusk, light is full daylight" ) { + CHECK( sunlight( new_sunrise + 61_minutes ) == daylight_level ); + CHECK( sunlight( new_noon ) == daylight_level ); + CHECK( sunlight( new_sunset - 1_minutes ) == daylight_level ); + } + THEN( "at dusk, light decreases from daylight to moonlight" ) { + CHECK( sunlight( new_sunset ) == daylight_level ); + CHECK( sunlight( new_sunset + 30_minutes ) == Approx( half_twilight ) ); + CHECK( sunlight( new_sunset + 1_hours ) == moonlight_level ); + } + } + + WHEN( "moon is full" ) { + time_point full_phase = calendar::turn_zero + lunar_month() / 2; + // Midnight of full moon + time_point full_midnight = full_phase - time_past_midnight( full_phase ); + time_point full_sunrise = sunrise( full_midnight ); + time_point full_sunset = sunset( full_midnight ); + time_point full_noon = full_midnight + 12_hours; + + // Daylight level is higher, later in the season (~104 at first full moon) + float daylight_level = current_daylight_level( full_noon ); + float half_twilight = ( daylight_level + 10 ) / 2; + float moonlight_level = 10.0f; + + THEN( "at night, light is only moonlight" ) { + CHECK( sunlight( full_sunset + 61_minutes ) == moonlight_level ); + CHECK( sunlight( full_midnight ) == moonlight_level ); + CHECK( sunlight( full_sunrise - 1_minutes ) == moonlight_level ); + } + THEN( "at dawn, light increases from moonlight to daylight" ) { + CHECK( sunlight( full_sunrise ) == moonlight_level ); + CHECK( sunlight( full_sunrise + 30_minutes ) == Approx( half_twilight ) ); + CHECK( sunlight( full_sunrise + 1_hours ) == daylight_level ); + } + THEN( "after dawn, until dusk, light is full daylight" ) { + CHECK( sunlight( full_sunrise + 61_minutes ) == daylight_level ); + CHECK( sunlight( full_noon ) == daylight_level ); + CHECK( sunlight( full_sunset - 1_minutes ) == daylight_level ); + } + THEN( "at dusk, light decreases from daylight to moonlight" ) { + CHECK( sunlight( full_sunset ) == daylight_level ); + CHECK( sunlight( full_sunset + 30_minutes ) == Approx( half_twilight ) ); + CHECK( sunlight( full_sunset + 1_hours ) == moonlight_level ); + } + } +} + +// Return the midnight of a day in the lunar month, scaled as [0=new, 0.5=half, 1=full, 2=new] +static time_point lunar_month_night( const float phase_scale ) +{ + REQUIRE( 0.0f <= phase_scale ); + REQUIRE( phase_scale <= 2.0f ); + + // Adjust clock such that 1.0 is the full moon, and 2.0 is the full lunar month + time_point this_phase = calendar::turn_zero + phase_scale * lunar_month() / 2; + + // Roll back or forward to the nearest midnight + time_point this_night; + time_duration past_midnight = time_past_midnight( this_phase ); + + // Use this midnight if it's still morning (a.m.), otherwise tomorrow midnight + if( past_midnight < 12_hours ) { + this_night = this_phase - past_midnight; + } else { + this_night = this_phase - past_midnight + 24_hours; + } + + return this_night; +} + +// Return moonlight with moon phase on a scale of (0=new, 0.5=half, 1.0=full, .. 2.0=new again) +static float phase_moonlight( const float phase_scale, const moon_phase expect_phase_enum ) +{ + // Get midnight on the desired day of the lunary month + time_point this_night = lunar_month_night( phase_scale ); + + // Ensure we are in the expected phase + CAPTURE( phase_scale ); + CHECK( io::enum_to_string( get_moon_phase( this_night ) ) == io::enum_to_string( + expect_phase_enum ) ); + + // Finally, get the amount of moonlight + return sunlight( this_night ); +} + +// Moonlight level varies with moon phase, from 1.0 at new moon to 10.0 at full moon. +TEST_CASE( "moonlight for each phase", "[calendar][moon][phase][moonlight]" ) +{ + calendar::set_season_length( 91 ); + REQUIRE( calendar::season_from_default_ratio() == Approx( 1.0f ) ); + + // At the start of each phase, moonlight is 1.0 + (2.25 per quarter) + SECTION( "moonlight increases as moon goes from new to full" ) { + CHECK( 1.00f == phase_moonlight( 0.0f, MOON_NEW ) ); + CHECK( 3.25f == phase_moonlight( 0.25f, MOON_WAXING_CRESCENT ) ); + CHECK( 5.50f == phase_moonlight( 0.5f, MOON_HALF_MOON_WAXING ) ); + CHECK( 7.75f == phase_moonlight( 0.75f, MOON_WAXING_GIBBOUS ) ); + CHECK( 10.0f == phase_moonlight( 1.0f, MOON_FULL ) ); + CHECK( 7.75f == phase_moonlight( 1.25f, MOON_WANING_GIBBOUS ) ); + CHECK( 5.50f == phase_moonlight( 1.5f, MOON_HALF_MOON_WANING ) ); + CHECK( 3.25f == phase_moonlight( 1.75f, MOON_WANING_CRESCENT ) ); + } + + SECTION( "moonlight is constant during each phase" ) { + // FIXME: Moonlight should follow a curve, rather than discrete plateaus based on phase + // http://adsabs.harvard.edu/full/1966JRASC..60..221E + CHECK( 1.0f == phase_moonlight( 0.0f, MOON_NEW ) ); + CHECK( 1.0f == phase_moonlight( 0.10f, MOON_NEW ) ); + // FIXME: Make moonlight gradually transition from one phase to the next + // ex., from NEW to WAXING_CRESCENT should smoothly go from 1.0 to 3.25 + // instead of jumping suddenly in the middle. + CHECK( 3.25f == phase_moonlight( 0.11f, MOON_WAXING_CRESCENT ) ); + CHECK( 3.25f == phase_moonlight( 0.20f, MOON_WAXING_CRESCENT ) ); + CHECK( 3.25f == phase_moonlight( 0.30f, MOON_WAXING_CRESCENT ) ); + } +} + diff --git a/tests/new_character_test.cpp b/tests/new_character_test.cpp index d89a377f6dd7f..38c9a90c1a600 100644 --- a/tests/new_character_test.cpp +++ b/tests/new_character_test.cpp @@ -184,7 +184,7 @@ TEST_CASE( "starting_items", "[slow]" ) std::stringstream failure_messages; for( const failure &f : failures ) { failure_messages << f.prof.c_str() << " " << f.mut << - " " << f.item_name << ": " << f.reason << "\n"; + " " << f.item_name.str() << ": " << f.reason << "\n"; } INFO( failure_messages.str() ); REQUIRE( failures.empty() ); diff --git a/tests/npc_talk_test.cpp b/tests/npc_talk_test.cpp index ba1bbdcdc2f9b..f32cf30306219 100644 --- a/tests/npc_talk_test.cpp +++ b/tests/npc_talk_test.cpp @@ -190,7 +190,7 @@ TEST_CASE( "npc_talk_wearing_and_trait", "[npc_talk]" ) dialogue d; npc &talker_npc = prep_test( d ); - for( trait_id tr : g->u.get_mutations() ) { + for( const trait_id &tr : g->u.get_mutations() ) { g->u.unset_mutation( tr ); } @@ -366,7 +366,7 @@ TEST_CASE( "npc_talk_needs", "[npc_talk]" ) CHECK( d.responses[0].text == "This is a basic test response." ); talker_npc.set_thirst( 90 ); talker_npc.set_hunger( 90 ); - talker_npc.set_fatigue( EXHAUSTED ); + talker_npc.set_fatigue( fatigue_levels::EXHAUSTED ); gen_response_lines( d, 4 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a npc thirst test response." ); @@ -570,7 +570,7 @@ TEST_CASE( "npc_talk_items", "[npc_talk]" ) g->u.remove_items_with( []( const item & it ) { return it.get_category().get_id() == item_category_id( "books" ) || it.get_category().get_id() == item_category_id( "food" ) || - it.typeId() == "bottle_glass"; + it.typeId() == itype_id( "bottle_glass" ); } ); d.add_topic( "TALK_TEST_HAS_ITEM" ); gen_response_lines( d, 1 ); @@ -684,24 +684,24 @@ TEST_CASE( "npc_talk_items", "[npc_talk]" ) CHECK( d.responses[5].text == "This is a u_has_item_category books test response." ); CHECK( d.responses[6].text == "This is a u_has_item_category books count 2 test response." ); CHECK( d.responses[0].text == "This is a repeated item manual_speech test response" ); - CHECK( d.responses[0].success.next_topic.item_type == "manual_speech" ); + CHECK( d.responses[0].success.next_topic.item_type == itype_id( "manual_speech" ) ); d.add_topic( "TALK_TEST_ITEM_REPEAT" ); gen_response_lines( d, 8 ); CHECK( d.responses[0].text == "This is a repeated category books, food test response" ); - CHECK( d.responses[0].success.next_topic.item_type == "beer" ); + CHECK( d.responses[0].success.next_topic.item_type == itype_id( "beer" ) ); CHECK( d.responses[1].text == "This is a repeated category books, food test response" ); - CHECK( d.responses[1].success.next_topic.item_type == "dnd_handbook" ); + CHECK( d.responses[1].success.next_topic.item_type == itype_id( "dnd_handbook" ) ); CHECK( d.responses[2].text == "This is a repeated category books, food test response" ); - CHECK( d.responses[2].success.next_topic.item_type == "manual_speech" ); + CHECK( d.responses[2].success.next_topic.item_type == itype_id( "manual_speech" ) ); CHECK( d.responses[3].text == "This is a repeated category books test response" ); - CHECK( d.responses[3].success.next_topic.item_type == "dnd_handbook" ); + CHECK( d.responses[3].success.next_topic.item_type == itype_id( "dnd_handbook" ) ); CHECK( d.responses[4].text == "This is a repeated category books test response" ); - CHECK( d.responses[4].success.next_topic.item_type == "manual_speech" ); + CHECK( d.responses[4].success.next_topic.item_type == itype_id( "manual_speech" ) ); CHECK( d.responses[5].text == "This is a repeated item beer, bottle_glass test response" ); - CHECK( d.responses[5].success.next_topic.item_type == "bottle_glass" ); + CHECK( d.responses[5].success.next_topic.item_type == itype_id( "bottle_glass" ) ); CHECK( d.responses[6].text == "This is a repeated item beer, bottle_glass test response" ); - CHECK( d.responses[6].success.next_topic.item_type == "beer" ); + CHECK( d.responses[6].success.next_topic.item_type == itype_id( "beer" ) ); CHECK( d.responses[7].text == "This is a basic test response." ); // test sell and consume @@ -710,7 +710,7 @@ TEST_CASE( "npc_talk_items", "[npc_talk]" ) REQUIRE( has_item( g->u, "bottle_plastic", 1 ) ); REQUIRE( has_beer_bottle( g->u, 2 ) ); const std::vector glass_bottles = g->u.items_with( []( const item & it ) { - return it.typeId() == "bottle_glass"; + return it.typeId() == itype_id( "bottle_glass" ); } ); REQUIRE( !glass_bottles.empty() ); REQUIRE( g->u.wield( *glass_bottles.front() ) ); diff --git a/tests/overmap_test.cpp b/tests/overmap_test.cpp index 3645758cb6936..9a3d612e42037 100644 --- a/tests/overmap_test.cpp +++ b/tests/overmap_test.cpp @@ -66,9 +66,9 @@ TEST_CASE( "default_overmap_generation_has_non_mandatory_specials_at_origin", "[ // This should probably be replaced with some custom specials created in // memory rather than tying this test to these, but it works for now... for( const auto &elem : overmap_specials::get_all() ) { - if( elem.id == "Cabin" ) { + if( elem.id == overmap_special_id( "Cabin" ) ) { optional = elem; - } else if( elem.id == "Lab" ) { + } else if( elem.id == overmap_special_id( "Lab" ) ) { mandatory = elem; } } diff --git a/tests/player_helpers.cpp b/tests/player_helpers.cpp index ecdd6ff3658a0..2ee69b55e0955 100644 --- a/tests/player_helpers.cpp +++ b/tests/player_helpers.cpp @@ -29,7 +29,7 @@ int get_remaining_charges( const std::string &tool_id ) const inventory crafting_inv = g->u.crafting_inventory(); std::vector items = crafting_inv.items_with( [tool_id]( const item & i ) { - return i.typeId() == tool_id; + return i.typeId() == itype_id( tool_id ); } ); int remaining_charges = 0; for( const item *instance : items ) { @@ -42,7 +42,7 @@ bool player_has_item_of_type( const std::string &type ) { std::vector matching_items = g->u.inv.items_with( [&]( const item & i ) { - return i.type->get_id() == type; + return i.type->get_id() == itype_id( type ); } ); return !matching_items.empty(); @@ -69,9 +69,10 @@ void clear_character( player &dummy, bool debug_storage ) dummy.stomach.empty(); dummy.guts.empty(); item food( "debug_nutrition" ); - dummy.eat( food ); + dummy.consume( food ); dummy.empty_skills(); + dummy.martial_arts_data.clear_styles(); dummy.clear_morale(); dummy.clear_bionics(); dummy.activity.set_to_null(); @@ -83,7 +84,7 @@ void clear_character( player &dummy, bool debug_storage ) // Restore all stamina and go to walk mode dummy.set_stamina( dummy.get_stamina_max() ); - dummy.set_movement_mode( CMM_WALK ); + dummy.set_movement_mode( move_mode_id( "walk" ) ); dummy.reset_activity_level(); // Make sure we don't carry around weird effects. @@ -162,20 +163,26 @@ void give_and_activate_bionic( player &p, bionic_id const &bioid ) if( bio.id->has_flag( "BIONIC_TOGGLED" ) && !bio.powered ) { const std::vector fuel_opts = bio.info().fuel_opts; if( !fuel_opts.empty() ) { - p.set_value( fuel_opts.front(), "2" ); + p.set_value( fuel_opts.front().str(), "2" ); } p.activate_bionic( bioindex ); INFO( "bionic " + bio.id.str() + " with index " + std::to_string( bioindex ) + " is active " ); REQUIRE( p.has_active_bionic( bioid ) ); if( !fuel_opts.empty() ) { - p.remove_value( fuel_opts.front() ); + p.remove_value( fuel_opts.front().str() ); } } } -item tool_with_ammo( const itype_id &tool, const int qty ) +item tool_with_ammo( const std::string &tool, const int qty ) { item tool_it( tool ); - tool_it.ammo_set( tool_it.ammo_default(), qty ); + if( !tool_it.ammo_default().is_null() ) { + tool_it.ammo_set( tool_it.ammo_default(), qty ); + } else if( !tool_it.magazine_default().is_null() ) { + item tool_it_mag( tool_it.magazine_default() ); + tool_it_mag.ammo_set( tool_it_mag.ammo_default(), qty ); + tool_it.put_in( tool_it_mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } return tool_it; } diff --git a/tests/player_helpers.h b/tests/player_helpers.h index 136d1d937f411..09bcdc2abc48a 100644 --- a/tests/player_helpers.h +++ b/tests/player_helpers.h @@ -11,8 +11,6 @@ class npc; class player; struct point; -using itype_id = std::string; - int get_remaining_charges( const std::string &tool_id ); bool player_has_item_of_type( const std::string & ); void clear_character( player &, bool debug_storage = true ); @@ -22,6 +20,6 @@ void process_activity( player &dummy ); npc &spawn_npc( const point &, const std::string &npc_class ); void give_and_activate_bionic( player &, bionic_id const & ); -item tool_with_ammo( const itype_id &tool, int qty ); +item tool_with_ammo( const std::string &tool, int qty ); #endif // CATA_TESTS_PLAYER_HELPERS_H diff --git a/tests/player_test.cpp b/tests/player_test.cpp index 5f519f8690f25..d9109d3223c5a 100644 --- a/tests/player_test.cpp +++ b/tests/player_test.cpp @@ -67,7 +67,7 @@ TEST_CASE( "Player body temperatures converge on expected values.", "[.bodytemp] // Remove first worn item until there are none left. std::list temp; - while( dummy.takeoff( dummy.i_at( -2 ), &temp ) ); + while( dummy.takeoff( dummy.i_at( -2 ), &temp ) ) {} // See http://personal.cityu.edu.hk/~bsapplec/heat.htm for temperature basis. // As we aren't modeling metabolic rate, assume 2 METS when not sleeping. diff --git a/tests/pocket_test.cpp b/tests/pocket_test.cpp new file mode 100644 index 0000000000000..ffb7114c04162 --- /dev/null +++ b/tests/pocket_test.cpp @@ -0,0 +1,891 @@ +#include "ammo.h" +#include "item.h" +#include "item_pocket.h" + +#include "catch/catch.hpp" + +// Pocket Tests +// ------------ +// +// These tests are focused on the `item_pocket` and `pocket_data` classes, and how they implement +// the "pocket_data" section of JSON item definitions (as documented in doc/JSON_FLAGS.md). +// +// To run all tests in this file: +// +// tests/cata_test [pocket] +// +// Other tags used include: [holster], [magazine], [airtight], [watertight], [rigid], and more. +// +// Most of the items used for testing here are defined in data/mods/TEST_DATA/items.json, to have +// a predictable set of data unaffected by in-game balance changes. + +// TODO: Add tests focusing on these JSON pocket_data fields: +// - pocket_type +// - spoil_multiplier +// - weight_multiplier +// - magazine_well +// - fire_protection +// - open_container +// - sealed_data +// - moves + +// FIXME: The failure messaging from these helper functions is pretty terrible, due to the multiple +// CHECKs in each function. Capturing it.tname() helps only slightly. The `rate_can.value()` is an +// integer, so it is difficult to see when a failure reason is returned instead of success. + +// Expect pocket.can_contain( it ) to be successful (contain_code::SUCCESS) +static void expect_can_contain( const item_pocket &pocket, const item &it ) +{ + CAPTURE( it.tname() ); + const ret_val rate_can = pocket.can_contain( it ); + CHECK( rate_can.success() ); + CHECK( rate_can.str().empty() ); + CHECK( rate_can.value() == item_pocket::contain_code::SUCCESS ); +} + +// Expect pocket.can_contain( it ) to fail, with an expected reason and contain_code +static void expect_cannot_contain( const item_pocket &pocket, const item &it, + const std::string &expect_reason, + item_pocket::contain_code expect_code ) +{ + CAPTURE( it.tname() ); + ret_val rate_can = pocket.can_contain( it ); + CHECK_FALSE( rate_can.success() ); + CHECK( rate_can.str() == expect_reason ); + CHECK( rate_can.value() == expect_code ); +} + +// Call pocket.insert_item( it ) and expect it to be successful (contain_code::SUCCESS) +static void expect_can_insert( item_pocket &pocket, const item &it ) +{ + CAPTURE( it.tname() ); + ret_val rate_can = pocket.insert_item( it ); + CHECK( rate_can.success() ); + CHECK( rate_can.str().empty() ); + CHECK( rate_can.value() == item_pocket::contain_code::SUCCESS ); +} + +// Call pocket.insert_item( it ) and expect it to fail, with an expected reason and contain_code +static void expect_cannot_insert( item_pocket &pocket, const item &it, + const std::string &expect_reason, + item_pocket::contain_code expect_code ) +{ + CAPTURE( it.tname() ); + ret_val rate_can = pocket.insert_item( it ); + CHECK_FALSE( rate_can.success() ); + CHECK( rate_can.str() == expect_reason ); + CHECK( rate_can.value() == expect_code ); +} + +// Max item length +// --------------- +// Pocket "max_item_length" is the biggest item (by longest side) that can fit. +// +// Related JSON fields: +// "max_item_length" +// +// Functions: +// item_pocket::can_contain +// +TEST_CASE( "max item length", "[pocket][max_item_length]" ) +{ + // Test items with different lengths + item screwdriver( "test_screwdriver" ); + item sonic( "test_sonic_screwdriver" ); + item sword( "test_clumsy_sword" ); + + // Sheath that may contain items + pocket_data data_sheath( item_pocket::pocket_type::CONTAINER ); + // Has plenty of weight/ volume, since we're only testing length + data_sheath.volume_capacity = 10_liter; + data_sheath.max_contains_weight = 10_kilogram; + + GIVEN( "pocket has max_item_length enough for some items, but not others" ) { + // Sheath is just long enough for sonic screwdriver + const units::length max_length = sonic.length(); + data_sheath.max_item_length = max_length; + item_pocket pocket_sheath( &data_sheath ); + + THEN( "it can contain an item with longest_side shorter than max_item_length" ) { + REQUIRE( screwdriver.length() < max_length ); + expect_can_contain( pocket_sheath, screwdriver ); + } + + THEN( "it can contain an item with longest_side equal to max_item_length" ) { + REQUIRE( sonic.length() == max_length ); + expect_can_contain( pocket_sheath, sonic ); + } + + THEN( "it cannot contain an item with longest_side longer than max_item_length" ) { + REQUIRE( sword.length() > max_length ); + expect_cannot_contain( pocket_sheath, sword, "item is too long", + item_pocket::contain_code::ERR_TOO_BIG ); + } + } + + // Default max_item_length assumes pocket is a cube, limiting max length to the diagonal + // dimension of one side of the cube (the opening into the box, so to speak). + // + // For a 1-liter volume, a 10 cm cube encloses it, so the longest diagonal is: + // + // 10 cm * sqrt(2) =~ 14.14 cm + // + // This test ensures that a 1-liter box with unspecified max_item_length can indeed contain + // items up to 14 cm in length, but not ones that are 15 cm. + // + // NOTE: In theory, the interior space of the cube can accommodate a longer item between its + // opposite diagonals, assuming it is infinitely thin: + // + // 10 cm * sqrt(3) =~ 17.32 cm + // + // Items of such length are not currently allowed in a 1-liter pocket. + + GIVEN( "a 1-liter box without a defined max_item_length" ) { + item box( "test_box" ); + REQUIRE( box.get_total_capacity() == 1_liter ); + + THEN( "it can hold an item 14 cm in length" ) { + item rod_14( "test_rod_14cm" ); + REQUIRE( rod_14.length() == 14_cm ); + + REQUIRE( box.is_container_empty() ); + box.put_in( rod_14, item_pocket::pocket_type::CONTAINER ); + // Item went into the box + CHECK_FALSE( box.is_container_empty() ); + } + + THEN( "it cannot hold an item 15 cm in length" ) { + item rod_15( "test_rod_15cm" ); + REQUIRE( rod_15.length() == 15_cm ); + + REQUIRE( box.is_container_empty() ); + box.put_in( rod_15, item_pocket::pocket_type::CONTAINER ); + // Box should still be empty + CHECK( box.is_container_empty() ); + } + } +} + +// Max item volume +// --------------- +// "max_item_volume" is the size of the mouth or opening into the pocket. Liquids and gases, as well +// as "soft" items, can always fit through. All other items must fit within "max_item_volume" to be +// put in the pocket. +// +// Related JSON fields: +// "max_item_volume" +// +// Functions: +// item_pocket::can_contain +// +TEST_CASE( "max item volume", "[pocket][max_item_volume]" ) +{ + // Test items + item screwdriver( "test_screwdriver" ); + item rag( "test_rag" ); + item rock( "test_rock" ); + item gas( "test_gas" ); + item liquid( "test_liquid" ); + + // Air-tight, water-tight, jug-style container + pocket_data data_jug( item_pocket::pocket_type::CONTAINER ); + data_jug.airtight = true; + data_jug.watertight = true; + + // No significant limits on length or weight + data_jug.max_item_length = 1_meter; + data_jug.max_contains_weight = 10_kilogram; + + // Jug capacity is more than enough for several rocks, rags, or screwdrivers + data_jug.volume_capacity = 2_liter; + REQUIRE( data_jug.volume_capacity > 5 * rock.volume() ); + REQUIRE( data_jug.volume_capacity > 5 * rag.volume() ); + REQUIRE( data_jug.volume_capacity > 10 * screwdriver.volume() ); + + // But it has a narrow mouth, just barely enough to fit a screwdriver + const units::volume max_volume = screwdriver.volume(); + data_jug.max_item_volume = max_volume; + + // The screwdriver will fit + REQUIRE( screwdriver.volume() <= max_volume ); + // All other items have too much volume to fit the opening + REQUIRE( rag.volume() > max_volume ); + REQUIRE( rock.volume() > max_volume ); + REQUIRE( gas.volume() > max_volume ); + REQUIRE( liquid.volume() > max_volume ); + + GIVEN( "large airtight and watertight pocket with a narrow opening" ) { + item_pocket pocket_jug( &data_jug ); + + THEN( "it can contain liquids" ) { + REQUIRE( liquid.made_of( phase_id::LIQUID ) ); + expect_can_contain( pocket_jug, liquid ); + } + THEN( "it can contain gases" ) { + REQUIRE( gas.made_of( phase_id::GAS ) ); + expect_can_contain( pocket_jug, gas ); + } + THEN( "it can contain solid items that fit through the opening" ) { + REQUIRE_FALSE( screwdriver.is_soft() ); + expect_can_contain( pocket_jug, screwdriver ); + } + THEN( "it can contain soft items larger than the opening" ) { + REQUIRE( rag.is_soft() ); + expect_can_contain( pocket_jug, rag ); + } + THEN( "it cannot contain solid items larger than the opening" ) { + REQUIRE_FALSE( rock.is_soft() ); + expect_cannot_contain( pocket_jug, rock, "item too big", + item_pocket::contain_code::ERR_TOO_BIG ); + } + } +} + +// Max container volume +// -------------------- +// Normally, the "max_contains_volume" from pocket data JSON is the largest total volume of +// items the pocket can hold. It is returned by the pocket_data::max_contains_volume() function. +// +// However, pockets with an "ammo_restriction", the pocket_data::max_contains_volume() is derived +// from the size of the ammo given in the restriction. +// +// Related JSON fields: +// "max_contains_volume" +// "ammo_restriction" +// +// Functions: +// pocket_data::max_contains_volume +// +TEST_CASE( "max container volume", "[pocket][max_contains_volume]" ) +{ + // TODO: Add tests for having multiple ammo types in the ammo_restriction + + WHEN( "pocket has no ammo_restriction" ) { + pocket_data data_box( item_pocket::pocket_type::CONTAINER ); + // Just a normal 1-liter box + data_box.volume_capacity = 1_liter; + REQUIRE( data_box.ammo_restriction.empty() ); + + THEN( "max_contains_volume is the pocket's volume_capacity" ) { + CHECK( data_box.max_contains_volume() == 1_liter ); + } + } + + WHEN( "pocket has ammo_restriction" ) { + pocket_data data_ammo_box( item_pocket::pocket_type::CONTAINER ); + + // 9mm ammo is 50 rounds per 250ml (or 200 rounds per liter), so this ammo box + // should be exactly 1 liter in size, so it can contain this much ammo. + data_ammo_box.ammo_restriction.emplace( ammotype( "9mm" ), 200 ); + REQUIRE_FALSE( data_ammo_box.ammo_restriction.empty() ); + + // And because actual volume is derived from ammo needs, this volume should be ignored. + data_ammo_box.volume_capacity = 1_ml; + + THEN( "max_contains_volume is based on the pocket's ammo type" ) { + CHECK( data_ammo_box.max_contains_volume() == 1_liter ); + } + } +} + +// Ammo restriction +// ---------------- +// Pockets with "ammo_restriction" defined have capacity based on those restrictions (from the +// type(s) of ammo and quantity of each. They can only contain ammo of those types and counts, +// and mixing different ammos in the same pocket is prohibited. +// +// Related JSON fields: +// "ammo_restriction" +// +// Functions: +// item_pocket::can_contain +// item_pocket::insert_item +// +TEST_CASE( "magazine with ammo restriction", "[pocket][magazine][ammo_restriction]" ) +{ + pocket_data data_mag( item_pocket::pocket_type::MAGAZINE ); + + // ammo_restriction takes precedence over volume/length/weight, + // so it doesn't matter what these are set to - they can even be 0. + data_mag.volume_capacity = 0_liter; + data_mag.min_item_volume = 0_liter; + data_mag.max_item_length = 0_meter; + data_mag.max_contains_weight = 0_gram; + + // TODO: Add tests for multiple ammo types in the same clip + + GIVEN( "magazine has 9mm ammo_restriction" ) { + // Magazine ammo_restriction may be a single { ammotype, count } or a list of ammotypes and + // counts. This mag 10 rounds of 9mm, as if it were defined in JSON as: + // + // "ammo_restriction": { "9mm", 10 } + // + const int full_clip_qty = 10; + data_mag.ammo_restriction.emplace( ammotype( "9mm" ), full_clip_qty ); + item_pocket pocket_mag( &data_mag ); + + WHEN( "it does not already contain any ammo" ) { + REQUIRE( pocket_mag.empty() ); + + THEN( "it can contain a full clip of 9mm ammo" ) { + const item ammo_9mm( "test_9mm_ammo", 0, full_clip_qty ); + expect_can_contain( pocket_mag, ammo_9mm ); + } + + THEN( "it cannot contain items of the wrong ammo type" ) { + item rock( "test_rock" ); + item ammo_45( "test_45_ammo", 0, 1 ); + expect_cannot_contain( pocket_mag, rock, "item is not the correct ammo type", + item_pocket::contain_code::ERR_AMMO ); + expect_cannot_contain( pocket_mag, ammo_45, "item is not the correct ammo type", + item_pocket::contain_code::ERR_AMMO ); + } + + THEN( "it cannot contain items that are not ammo" ) { + item rag( "test_rag" ); + expect_cannot_contain( pocket_mag, rag, "item is not an ammo", + item_pocket::contain_code::ERR_AMMO ); + } + } + + WHEN( "it is partly full of ammo" ) { + const int half_clip_qty = full_clip_qty / 2; + item ammo_9mm_half_clip( "test_9mm_ammo", 0, half_clip_qty ); + expect_can_insert( pocket_mag, ammo_9mm_half_clip ); + + THEN( "it can contain more of the same ammo" ) { + item ammo_9mm_refill( "test_9mm_ammo", 0, full_clip_qty - half_clip_qty ); + expect_can_contain( pocket_mag, ammo_9mm_refill ); + } + + THEN( "it cannot contain more ammo than ammo_restriction allows" ) { + item ammo_9mm_overfill( "test_9mm_ammo", 0, full_clip_qty - half_clip_qty + 1 ); + expect_cannot_contain( pocket_mag, ammo_9mm_overfill, + "tried to put too many charges of ammo in item", + item_pocket::contain_code::ERR_NO_SPACE ); + } + } + + WHEN( "it is completely full of ammo" ) { + item ammo_9mm_full_clip( "test_9mm_ammo", 0, full_clip_qty ); + expect_can_insert( pocket_mag, ammo_9mm_full_clip ); + + THEN( "it cannot contain any more of the same ammo" ) { + item ammo_9mm_bullet( "test_9mm_ammo", 0, 1 ); + expect_cannot_contain( pocket_mag, ammo_9mm_bullet, + "tried to put too many charges of ammo in item", + item_pocket::contain_code::ERR_NO_SPACE ); + } + } + } +} + +// Flag restriction +// ---------------- +// The "flag_restriction" list from pocket data JSON gives compatible item flag(s) for this pocket. +// An item with any one of those tags may be inserted into the pocket. +// +// Related JSON fields: +// "flag_restriction" +// "min_item_volume" +// "max_contains_volume" +// +// Functions: +// item_pocket::can_contain +// pocket_data::max_contains_volume +// +TEST_CASE( "pocket with item flag restriction", "[pocket][flag_restriction]" ) +{ + // Items with BELT_CLIP flag + item screwdriver( "test_screwdriver" ); + item sonic( "test_sonic_screwdriver" ); + item halligan( "test_halligan" ); + item axe( "test_fire_ax" ); + + // Items without BELT_CLIP flag + item rag( "test_rag" ); + item rock( "test_rock" ); + + // Ensure the tools have expected volume relationships + // (too small, minimum size, maximum size, too big) + REQUIRE( screwdriver.volume() < sonic.volume() ); + REQUIRE( sonic.volume() < halligan.volume() ); + REQUIRE( halligan.volume() < axe.volume() ); + + // Test pocket with BELT_CLIP flag + pocket_data data_belt( item_pocket::pocket_type::CONTAINER ); + + // Sonic screwdriver is the smallest item it can hold + data_belt.min_item_volume = sonic.volume(); + // Halligan bar is the largest item it can hold + data_belt.volume_capacity = halligan.volume(); + + // Plenty of length and weight, since we only care about flag restrictions here + data_belt.max_item_length = 10_meter; + data_belt.max_contains_weight = 10_kilogram; + + // TODO: Add test for pocket with multiple flag_restriction entries, and ensure + // items with any of those flags can be inserted in the pocket. + + GIVEN( "pocket with BELT_CLIP flag restriction" ) { + data_belt.flag_restriction.push_back( "BELT_CLIP" ); + item_pocket pocket_belt( &data_belt ); + + GIVEN( "item has BELT_CLIP flag" ) { + REQUIRE( screwdriver.has_flag( "BELT_CLIP" ) ); + REQUIRE( sonic.has_flag( "BELT_CLIP" ) ); + REQUIRE( halligan.has_flag( "BELT_CLIP" ) ); + REQUIRE( axe.has_flag( "BELT_CLIP" ) ); + + WHEN( "item volume is less than min_item_volume" ) { + REQUIRE( screwdriver.volume() < data_belt.min_item_volume ); + + THEN( "pocket cannot contain it, because it is too small" ) { + expect_cannot_contain( pocket_belt, screwdriver, "item is too small", + item_pocket::contain_code::ERR_TOO_SMALL ); + } + + THEN( "item cannot be inserted into the pocket" ) { + expect_cannot_insert( pocket_belt, screwdriver, "item is too small", + item_pocket::contain_code::ERR_TOO_SMALL ); + } + } + + WHEN( "item volume is equal to min_item_volume" ) { + REQUIRE( sonic.volume() == data_belt.min_item_volume ); + + THEN( "pocket can contain it" ) { + expect_can_contain( pocket_belt, sonic ); + } + + THEN( "item can be inserted successfully" ) { + expect_can_insert( pocket_belt, sonic ); + } + } + + WHEN( "item volume is equal to max_contains_volume" ) { + REQUIRE( halligan.volume() == data_belt.max_contains_volume() ); + + THEN( "pocket can contain it" ) { + expect_can_contain( pocket_belt, halligan ); + } + + THEN( "item can be inserted successfully" ) { + expect_can_insert( pocket_belt, halligan ); + } + } + + WHEN( "item volume is greater than max_contains_volume" ) { + REQUIRE( axe.volume() > data_belt.max_contains_volume() ); + + THEN( "pocket cannot contain it, because it is too big" ) { + expect_cannot_contain( pocket_belt, axe, "item too big", + item_pocket::contain_code::ERR_TOO_BIG ); + } + + THEN( "item cannot be inserted into the pocket" ) { + expect_cannot_insert( pocket_belt, axe, "item too big", + item_pocket::contain_code::ERR_TOO_BIG ); + } + } + } + + GIVEN( "item without BELT_CLIP flag" ) { + REQUIRE_FALSE( rag.has_flag( "BELT_CLIP" ) ); + REQUIRE_FALSE( rock.has_flag( "BELT_CLIP" ) ); + // Ensure they are not too large otherwise + REQUIRE_FALSE( rag.volume() > data_belt.max_contains_volume() ); + REQUIRE_FALSE( rock.volume() > data_belt.max_contains_volume() ); + + THEN( "pocket cannot contain it, because it does not have the flag" ) { + expect_cannot_contain( pocket_belt, rag, "item does not have correct flag", + item_pocket::contain_code::ERR_FLAG ); + expect_cannot_contain( pocket_belt, rock, "item does not have correct flag", + item_pocket::contain_code::ERR_FLAG ); + } + } + } +} + +// Holster +// ------- +// Pockets with the "holster" attribute set to true may hold only a single item or stack. +// +// Related JSON fields: +// "holster" +// "max_item_length" +// "max_contains_volume" +// "max_contains_weight" +// +// Functions: +// item_pocket::can_contain +// item_pocket::insert_item +// +TEST_CASE( "holster can contain one fitting item", "[pocket][holster]" ) +{ + // Start with a basic test handgun from data/mods/TEST_DATA/items.json + item glock( "test_glock" ); + + // Construct data for a holster to perfectly fit this gun + pocket_data data_holster( item_pocket::pocket_type::CONTAINER ); + data_holster.holster = true; + data_holster.volume_capacity = glock.volume(); + data_holster.max_item_length = glock.length(); + data_holster.max_contains_weight = glock.weight(); + + GIVEN( "holster has enough volume, length, and weight capacity" ) { + // Use the perfectly-fitted holster data + item_pocket pocket_holster( &data_holster ); + + THEN( "it can contain the item" ) { + expect_can_contain( pocket_holster, glock ); + } + + THEN( "item can be successfully inserted" ) { + expect_can_insert( pocket_holster, glock ); + } + } + + GIVEN( "holster has not enough weight capacity" ) { + // Reduce perfect holster weight capacity by 1 gram + data_holster.max_contains_weight = glock.weight() - 1_gram; + item_pocket pocket_holster( &data_holster ); + + THEN( "it cannot contain the item, because it is too heavy" ) { + expect_cannot_contain( pocket_holster, glock, "item is too heavy", + item_pocket::contain_code::ERR_TOO_HEAVY ); + } + + THEN( "item cannot be successfully inserted" ) { + expect_cannot_insert( pocket_holster, glock, "item is too heavy", + item_pocket::contain_code::ERR_TOO_HEAVY ); + } + } + + GIVEN( "holster has not enough volume capacity" ) { + // Reduce perfect holster volume capacity by 1 ml + data_holster.volume_capacity = glock.volume() - 1_ml; + item_pocket pocket_holster( &data_holster ); + + THEN( "it cannot contain the item, because it is too big" ) { + expect_cannot_contain( pocket_holster, glock, "item too big", + item_pocket::contain_code::ERR_TOO_BIG ); + } + + THEN( "item cannot be successfully inserted" ) { + expect_cannot_insert( pocket_holster, glock, "item too big", + item_pocket::contain_code::ERR_TOO_BIG ); + } + } + + // TODO: Add test for item with longest_side greater than max_item_length + + GIVEN( "holster already contains an item" ) { + // Put another item in the holster first + item_pocket pocket_holster( &data_holster ); + expect_can_insert( pocket_holster, item( "test_glock" ) ); + + THEN( "it cannot contain the item, because holster can only hold one item" ) { + expect_cannot_contain( pocket_holster, glock, "holster already contains an item", + item_pocket::contain_code::ERR_NO_SPACE ); + } + + THEN( "another item cannot be successfully inserted" ) { + expect_cannot_insert( pocket_holster, glock, "holster already contains an item", + item_pocket::contain_code::ERR_NO_SPACE ); + } + } +} + +// Watertight pockets +// ------------------ +// To contain liquids, a pocket must have the "watertight" attribute set to true. After a pocket has +// been partially filled with a liquid, adding a different liquid to it is prohibited, since liquids +// can't mix. +// +// Related JSON fields: +// "watertight" +// +// Functions: +// item_pocket::watertight +// +TEST_CASE( "pockets containing liquids", "[pocket][watertight][liquid]" ) +{ + // Liquids + item ketchup( "ketchup", 0, item::default_charges_tag{} ); + item mustard( "mustard", 0, item::default_charges_tag{} ); + + // Non-liquids + item rock( "test_rock" ); + item glock( "test_glock" ); + + // Large watertight container + pocket_data data_bucket( item_pocket::pocket_type::CONTAINER ); + data_bucket.watertight = true; + data_bucket.volume_capacity = 10_liter; + data_bucket.max_item_length = 1_meter; + data_bucket.max_contains_weight = 10_kilogram; + + GIVEN( "pocket is watertight" ) { + item_pocket pocket_bucket( &data_bucket ); + REQUIRE( pocket_bucket.watertight() ); + + WHEN( "pocket is empty" ) { + REQUIRE( pocket_bucket.empty() ); + + THEN( "it can contain liquid items" ) { + expect_can_contain( pocket_bucket, ketchup ); + expect_can_contain( pocket_bucket, mustard ); + } + + THEN( "it can contain non-liquid items" ) { + expect_can_contain( pocket_bucket, rock ); + expect_can_contain( pocket_bucket, glock ); + } + } + + WHEN( "pocket already contains some liquid" ) { + expect_can_insert( pocket_bucket, ketchup ); + REQUIRE_FALSE( pocket_bucket.empty() ); + + THEN( "it can contain more of the same liquid" ) { + expect_can_contain( pocket_bucket, ketchup ); + } + + THEN( "it cannot contain a different liquid" ) { + expect_cannot_contain( pocket_bucket, mustard, "can't mix liquid with contained item", + item_pocket::contain_code::ERR_LIQUID ); + } + + THEN( "it cannot contain a non-liquid" ) { + expect_cannot_contain( pocket_bucket, rock, "can't put non liquid into pocket with liquid", + item_pocket::contain_code::ERR_LIQUID ); + } + } + + WHEN( "pocket already contains a non-liquid" ) { + expect_can_insert( pocket_bucket, rock ); + REQUIRE_FALSE( pocket_bucket.empty() ); + + THEN( "it can contain other non-liquids" ) { + expect_can_contain( pocket_bucket, glock ); + } + + THEN( "it cannot contain a liquid" ) { + expect_cannot_contain( pocket_bucket, ketchup, "can't mix liquid with contained item", + item_pocket::contain_code::ERR_LIQUID ); + expect_cannot_contain( pocket_bucket, mustard, "can't mix liquid with contained item", + item_pocket::contain_code::ERR_LIQUID ); + } + } + } + + GIVEN( "pocket is not watertight" ) { + // Poke a hole in the bucket + data_bucket.watertight = false; + item_pocket pocket_bucket( &data_bucket ); + + THEN( "it cannot contain liquid items" ) { + expect_cannot_contain( pocket_bucket, ketchup, "can't contain liquid", + item_pocket::contain_code::ERR_LIQUID ); + expect_cannot_contain( pocket_bucket, mustard, "can't contain liquid", + item_pocket::contain_code::ERR_LIQUID ); + } + + THEN( "it can still contain non-liquid items" ) { + expect_can_contain( pocket_bucket, rock ); + expect_can_contain( pocket_bucket, glock ); + } + } +} + +// Airtight pockets +// ---------------- +// To contain gases, a pocket must have the "airtight" attribute set to true. +// +// Related JSON fields: +// "airtight" +// +// Functions: +// item_pocket::airtight +// +TEST_CASE( "pockets containing gases", "[pocket][airtight][gas]" ) +{ + item gas( "test_gas", 0, item::default_charges_tag{} ); + + // A potentially airtight container + pocket_data data_balloon( item_pocket::pocket_type::CONTAINER ); + + // Has capacity for several charges of gas + data_balloon.volume_capacity = 4 * gas.volume(); + data_balloon.max_contains_weight = 4 * gas.weight(); + // Avoid any length restrictions + data_balloon.max_item_length = 1_meter; + + GIVEN( "pocket is airtight" ) { + data_balloon.airtight = true; + item_pocket pocket_balloon( &data_balloon ); + REQUIRE( pocket_balloon.airtight() ); + + THEN( "it can contain a gas" ) { + expect_can_contain( pocket_balloon, gas ); + } + + // TODO: Test that mixing gases in a pocket is prohibited, like it is for liquids. + } + + GIVEN( "pocket is not airtight" ) { + // Leaky balloon! + data_balloon.airtight = false; + item_pocket pocket_balloon( &data_balloon ); + REQUIRE_FALSE( pocket_balloon.airtight() ); + + THEN( "it cannot contain a gas" ) { + expect_cannot_contain( pocket_balloon, gas, "can't contain gas", + item_pocket::contain_code::ERR_GAS ); + } + } +} + +// Pocket rigidity +// --------------- +// When a pocket is "rigid", the total volume of the pocket itself does not change, like it were a +// glass jar (having the same outer volume whether full or empty). +// +// When "rigid" is false (the default), the pocket grows larger as items fill it up. +// +// Related JSON fields: +// "rigid" +// +// Functions: +// item_pocket::can_contain +// item_pocket::insert_item +// item_pocket::item_size_modifier +// +TEST_CASE( "rigid and non-rigid or flexible pockets", "[pocket][rigid][flexible]" ) +{ + item rock( "test_rock" ); + + // Pocket with enough space for 2 rocks + pocket_data data_sock( item_pocket::pocket_type::CONTAINER ); + data_sock.volume_capacity = 2 * rock.volume(); + + // Can hold plenty of length and weight (we only care about volume here) + data_sock.max_item_length = 5 * rock.length(); + data_sock.max_contains_weight = 10 * rock.weight(); + + GIVEN( "a non-rigid pocket" ) { + // Sock is freshly washed, so it's non-rigid + data_sock.rigid = false; + item_pocket pocket_sock( &data_sock ); + + WHEN( "pocket is empty" ) { + REQUIRE( pocket_sock.empty() ); + THEN( "it can contain an item" ) { + expect_can_contain( pocket_sock, rock ); + } + + THEN( "item_size_modifier is zero" ) { + CHECK( pocket_sock.item_size_modifier() == 0_ml ); + } + } + + WHEN( "pocket is partially filled" ) { + // One rock should fill the sock half-way + expect_can_insert( pocket_sock, item( "test_rock" ) ); + REQUIRE_FALSE( pocket_sock.empty() ); + + THEN( "it can contain another item" ) { + expect_can_contain( pocket_sock, rock ); + } + + THEN( "item_size_modifier is the contained item volume" ) { + CHECK( pocket_sock.item_size_modifier() == rock.volume() ); + } + } + + WHEN( "pocket is full" ) { + // Two rocks should be enough to fill it + expect_can_insert( pocket_sock, item( "test_rock" ) ); + expect_can_insert( pocket_sock, item( "test_rock" ) ); + + REQUIRE_FALSE( pocket_sock.empty() ); + REQUIRE( pocket_sock.full( true ) ); + + THEN( "it cannot contain another item" ) { + expect_cannot_contain( pocket_sock, rock, "not enough space", + item_pocket::contain_code::ERR_NO_SPACE ); + } + + THEN( "item_size_modifier is the total of contained item volumes" ) { + CHECK( pocket_sock.item_size_modifier() == 2 * rock.volume() ); + } + } + } + + GIVEN( "a rigid pocket" ) { + // Our sock got all crusty with zombie guts and is rigid now. + data_sock.rigid = true; + item_pocket pocket_sock( &data_sock ); + REQUIRE( pocket_sock.rigid() ); + + WHEN( "pocket is empty" ) { + REQUIRE( pocket_sock.empty() ); + + THEN( "it can contain an item" ) { + expect_can_contain( pocket_sock, rock ); + } + + THEN( "item_size_modifier is zero" ) { + CHECK( pocket_sock.item_size_modifier() == 0_ml ); + } + } + + WHEN( "pocket is full" ) { + expect_can_insert( pocket_sock, item( "test_rock" ) ); + expect_can_insert( pocket_sock, item( "test_rock" ) ); + + REQUIRE_FALSE( pocket_sock.empty() ); + REQUIRE( pocket_sock.full( true ) ); + + THEN( "it cannot contain another item" ) { + expect_cannot_contain( pocket_sock, rock, "not enough space", + item_pocket::contain_code::ERR_NO_SPACE ); + } + + THEN( "item_size_modifier is still zero" ) { + CHECK( pocket_sock.item_size_modifier() == 0_ml ); + } + } + } +} + +// Corpses +// ------- +// +// Functions: +// item_pocket::can_contain +// item_pocket::insert_item +// +TEST_CASE( "corpse can contain anything", "[pocket][corpse]" ) +{ + item rock( "test_rock" ); + item glock( "test_glock" ); + + pocket_data data_corpse( item_pocket::pocket_type::CORPSE ); + + GIVEN( "a corpse" ) { + item_pocket pocket_corpse( &data_corpse ); + + // For corpses, can_contain is true to prevent unnecessary "spilling" + THEN( "it can contain items" ) { + expect_can_contain( pocket_corpse, rock ); + expect_can_contain( pocket_corpse, glock ); + } + + THEN( "items can be added to the corpse" ) { + expect_can_insert( pocket_corpse, rock ); + expect_can_insert( pocket_corpse, glock ); + } + } +} diff --git a/tests/point_test.cpp b/tests/point_test.cpp index a2dc6e728bd83..cf24f5abee8c6 100644 --- a/tests/point_test.cpp +++ b/tests/point_test.cpp @@ -38,10 +38,22 @@ TEST_CASE( "box_shrinks", "[point]" ) CHECK( b.contains_half_open( tripoint( 1, 1, 2 ) ) ); } -TEST_CASE( "point_to_string", "[point]" ) +TEST_CASE( "point_to_from_string", "[point]" ) { - CHECK( point_south.to_string() == "(0,1)" ); - CHECK( tripoint( -1, 0, 1 ).to_string() == "(-1,0,1)" ); + SECTION( "points_from_string" ) { + CHECK( point_south.to_string() == "(0,1)" ); + CHECK( tripoint( -1, 0, 1 ).to_string() == "(-1,0,1)" ); + } + + SECTION( "point_round_trip" ) { + point p( 10, -777 ); + CHECK( point::from_string( p.to_string() ) == p ); + } + + SECTION( "tripoint_round_trip" ) { + tripoint p( 10, -777, 6 ); + CHECK( tripoint::from_string( p.to_string() ) == p ); + } } TEST_CASE( "tripoint_xy", "[point]" ) diff --git a/tests/projectile_test.cpp b/tests/projectile_test.cpp index 9c7b2731938de..8ba6c87fcb0ef 100644 --- a/tests/projectile_test.cpp +++ b/tests/projectile_test.cpp @@ -50,7 +50,9 @@ TEST_CASE( "projectiles_through_obstacles", "[projectile]" ) // Create a gun to fire a projectile from item gun( itype_id( "m1a" ) ); - gun.ammo_set( "308", 5 ); + item mag( gun.magazine_default() ); + mag.ammo_set( itype_id( "308" ), 5 ); + gun.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); // Check that a bullet with the correct amount of speed can through obstacles CHECK( projectile_end_point( range, gun, 1000, 3 ) == range[2] ); diff --git a/tests/ranged_balance_test.cpp b/tests/ranged_balance_test.cpp index af2db467763d0..fae734b679735 100644 --- a/tests/ranged_balance_test.cpp +++ b/tests/ranged_balance_test.cpp @@ -18,6 +18,7 @@ #include "inventory.h" #include "item.h" #include "item_location.h" +#include "itype.h" #include "json.h" #include "map_helpers.h" #include "npc.h" @@ -35,7 +36,7 @@ class Threshold public: Threshold( const double accuracy, const double chance ) : _accuracy( accuracy ), _chance( chance ) { - }; + } double accuracy() const { return _accuracy; } @@ -77,27 +78,39 @@ static void arm_shooter( npc &shooter, const std::string &gun_type, const std::string &ammo_type = "" ) { shooter.remove_weapon(); - if( !shooter.is_wearing( "backpack" ) ) { + if( !shooter.is_wearing( itype_id( "backpack" ) ) ) { shooter.worn.push_back( item( "backpack" ) ); } - const itype_id &gun_id( gun_type ); + const itype_id &gun_id{ itype_id( gun_type ) }; // Give shooter a loaded gun of the requested type. item &gun = shooter.i_add( item( gun_id ) ); - const itype_id ammo_id = ammo_type.empty() ? gun.ammo_default() : itype_id( ammo_type ); + itype_id ammo_id; + // if ammo is not supplied we want the default + if( ammo_type.empty() ) { + if( gun.ammo_default().is_null() ) { + ammo_id = item( gun.magazine_default() ).ammo_default(); + } else { + ammo_id = gun.ammo_default(); + } + } else { + ammo_id = itype_id( ammo_type ); + } + const ammotype &type_of_ammo = item::find_type( ammo_id )->ammo->type; if( gun.magazine_integral() ) { - item &ammo = shooter.i_add( item( ammo_id, calendar::turn, gun.ammo_capacity() ) ); + item &ammo = shooter.i_add( item( ammo_id, calendar::turn, gun.ammo_capacity( type_of_ammo ) ) ); REQUIRE( gun.is_reloadable_with( ammo_id ) ); REQUIRE( shooter.can_reload( gun, ammo_id ) ); - gun.reload( shooter, item_location( shooter, &ammo ), gun.ammo_capacity() ); + gun.reload( shooter, item_location( shooter, &ammo ), gun.ammo_capacity( type_of_ammo ) ); } else { const itype_id magazine_id = gun.magazine_default(); item &magazine = shooter.i_add( item( magazine_id ) ); - item &ammo = shooter.i_add( item( ammo_id, calendar::turn, magazine.ammo_capacity() ) ); + item &ammo = shooter.i_add( item( ammo_id, calendar::turn, + magazine.ammo_capacity( type_of_ammo ) ) ); REQUIRE( magazine.is_reloadable_with( ammo_id ) ); REQUIRE( shooter.can_reload( magazine, ammo_id ) ); - magazine.reload( shooter, item_location( shooter, &ammo ), magazine.ammo_capacity() ); - gun.reload( shooter, item_location( shooter, &magazine ), magazine.ammo_capacity() ); + magazine.reload( shooter, item_location( shooter, &ammo ), magazine.ammo_capacity( type_of_ammo ) ); + gun.reload( shooter, item_location( shooter, &magazine ), magazine.ammo_capacity( type_of_ammo ) ); } for( const auto &mod : mods ) { gun.put_in( item( itype_id( mod ) ), item_pocket::pocket_type::MOD ); @@ -243,9 +256,9 @@ static void test_fast_shooting( npc &shooter, const int moves, float hit_rate ) static void assert_encumbrance( npc &shooter, int encumbrance ) { - for( const body_part bp : all_body_parts ) { + for( const bodypart_id &bp : shooter.get_all_body_parts() ) { INFO( "Body Part: " << body_part_name( bp ) ); - REQUIRE( shooter.encumb( bp ) == encumbrance ); + REQUIRE( shooter.encumb( bp->token ) == encumbrance ); } } @@ -389,7 +402,7 @@ static void range_test( const Threshold &test_threshold, bool write_data = false } // The intent here is to skip over dispersion values proportionally to how far from converging we are. // As long as we check several adjacent dispersion values before a hit, we're good. - d -= int( ( 1 - ( stats.avg() / test_threshold.chance() ) ) * 15 ) * 5; + d -= static_cast( ( 1 - ( stats.avg() / test_threshold.chance() ) ) * 15 ) * 5; } if( found_dispersion == -1 ) { WARN( "No matching dispersion found" ); diff --git a/tests/reading_test.cpp b/tests/reading_test.cpp index e65beaea1f82e..e13bb96ad78f3 100644 --- a/tests/reading_test.cpp +++ b/tests/reading_test.cpp @@ -305,10 +305,10 @@ TEST_CASE( "reasons for not being able to read", "[reading][reasons]" ) } THEN( "you cannot read without enough skill to understand the book" ) { - dummy.set_skill_level( skill_id( "cooking" ), 7 ); + dummy.set_skill_level( skill_id( "chemistry" ), 5 ); CHECK( dummy.get_book_reader( alpha, reasons ) == nullptr ); - expect_reasons = { "cooking 8 needed to understand. You have 7" }; + expect_reasons = { "chemistry 6 needed to understand. You have 5" }; CHECK( reasons == expect_reasons ); } diff --git a/tests/reload_magazine_test.cpp b/tests/reload_magazine_test.cpp index 80ecd4b3f19be..0bcd9b8e6401d 100644 --- a/tests/reload_magazine_test.cpp +++ b/tests/reload_magazine_test.cpp @@ -17,14 +17,14 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) { - const itype_id gun_id = "m4a1"; + const itype_id gun_id( "m4a1" ); const ammotype gun_ammo( "223" ); - const itype_id ammo_id = "556"; // any type of compatible ammo - const itype_id alt_ammo = "223"; // any alternative type of compatible ammo - const itype_id bad_ammo = "9mm"; // any type of incompatible ammo - const itype_id mag_id = "stanag30"; // must be set to default magazine - const itype_id bad_mag = "glockmag"; // any incompatible magazine - const int mag_cap = 30; + const itype_id ammo_id( "556" ); // any type of compatible ammo + const itype_id alt_ammo( "223" ); // any alternative type of compatible ammo + const itype_id bad_ammo( "9mm" ); // any type of incompatible ammo + const itype_id mag_id( "stanag10" ); // must be set to default magazine + const itype_id bad_mag( "glockmag" ); // any incompatible magazine + const int mag_cap = 10; // amount of bullets that fit into default magazine CHECK( ammo_id != alt_ammo ); CHECK( ammo_id != bad_ammo ); @@ -49,8 +49,8 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) CHECK( p.can_reload( mag, alt_ammo ) == true ); CHECK( p.can_reload( mag, bad_ammo ) == false ); CHECK( mag.ammo_types().count( gun_ammo ) ); - CHECK( mag.ammo_capacity() == mag_cap ); - CHECK( mag.ammo_current() == "null" ); + CHECK( mag.ammo_capacity( gun_ammo ) == mag_cap ); + CHECK( mag.ammo_current().is_null() ); CHECK( mag.ammo_data() == nullptr ); GIVEN( "An empty magazine" ) { @@ -58,7 +58,7 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) WHEN( "the magazine is reloaded with incompatible ammo" ) { item &ammo = p.i_add( item( bad_ammo ) ); - bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity() ); + bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity( gun_ammo ) ); THEN( "reloading should fail" ) { REQUIRE_FALSE( ok ); REQUIRE( mag.ammo_remaining() == 0 ); @@ -69,7 +69,7 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) item &ammo = p.i_add( item( ammo_id, calendar::turn, mag_cap + 5 ) ); REQUIRE( ammo.charges == mag_cap + 5 ); - bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity() ); + bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity( gun_ammo ) ); THEN( "reloading is successful" ) { REQUIRE( ok ); @@ -78,7 +78,7 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) REQUIRE( mag.ammo_data() ); } AND_THEN( "the magazine is filled to capacity" ) { - REQUIRE( mag.ammo_remaining() == mag.ammo_capacity() ); + REQUIRE( mag.remaining_ammo_capacity() == 0 ); } AND_THEN( "a single correctly sized ammo stack remains in the inventory" ) { std::vector found; @@ -99,7 +99,7 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) item &ammo = p.i_add( item( ammo_id, calendar::turn, mag_cap - 2 ) ); REQUIRE( ammo.charges == mag_cap - 2 ); - bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity() ); + bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity( gun_ammo ) ); THEN( "reloading is successful" ) { REQUIRE( ok == true ); @@ -128,12 +128,12 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) REQUIRE( ammo.charges == 10 ); REQUIRE( mag.ammo_remaining() == mag_cap - 2 ); - bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity() ); + bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity( gun_ammo ) ); THEN( "further reloading is successful" ) { REQUIRE( ok ); AND_THEN( "the magazine is filled to capacity" ) { - REQUIRE( mag.ammo_remaining() == mag.ammo_capacity() ); + REQUIRE( mag.remaining_ammo_capacity() == 0 ); } AND_THEN( "a single correctly sized ammo stack remains in the inventory" ) { std::vector found; @@ -152,7 +152,7 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) AND_WHEN( "the magazine is further reloaded with compatible but different ammo" ) { item &ammo = p.i_add( item( alt_ammo ) ); - bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity() ); + bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity( gun_ammo ) ); THEN( "further reloading should fail" ) { REQUIRE_FALSE( ok ); REQUIRE( mag.ammo_remaining() == mag_cap - 2 ); @@ -161,7 +161,7 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) AND_WHEN( "the magazine is further reloaded with incompatible ammo" ) { item &ammo = p.i_add( item( bad_ammo ) ); - bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity() ); + bool ok = mag.reload( g->u, item_location( p, &ammo ), mag.ammo_capacity( gun_ammo ) ); THEN( "further reloading should fail" ) { REQUIRE_FALSE( ok ); REQUIRE( mag.ammo_remaining() == mag_cap - 2 ); @@ -181,10 +181,10 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) CHECK( gun.magazine_default() == mag_id ); CHECK( gun.magazine_compatible().count( mag_id ) == 1 ); CHECK( gun.magazine_current() == nullptr ); - CHECK( gun.ammo_types().count( gun_ammo ) ); - CHECK( gun.ammo_capacity() == 0 ); + CHECK( item( gun.magazine_default() ).ammo_types().count( gun_ammo ) ); + CHECK( gun.ammo_capacity( gun_ammo ) == 0 ); CHECK( gun.ammo_remaining() == 0 ); - CHECK( gun.ammo_current() == "null" ); + CHECK( gun.ammo_current().is_null() ); CHECK( gun.ammo_data() == nullptr ); WHEN( "the gun is reloaded with an incompatible magazine" ) { @@ -208,13 +208,13 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) REQUIRE( gun.magazine_current()->typeId() == mag_id ); } AND_THEN( "the ammo type for the gun remains unchanged" ) { - REQUIRE( gun.ammo_types().count( gun_ammo ) ); + REQUIRE( item( gun.magazine_default() ).ammo_types().count( gun_ammo ) ); } AND_THEN( "the ammo capacity is correctly set" ) { - REQUIRE( gun.ammo_capacity() == mag_cap ); + REQUIRE( gun.ammo_capacity( gun_ammo ) == mag_cap ); } AND_THEN( "the gun contains no ammo" ) { - REQUIRE( gun.ammo_current() == "null" ); + REQUIRE( gun.ammo_current().is_null() ); REQUIRE( gun.ammo_remaining() == 0 ); REQUIRE( gun.ammo_data() == nullptr ); } @@ -235,10 +235,10 @@ TEST_CASE( "reload_magazine", "[magazine] [visitable] [item] [item_location]" ) REQUIRE( gun.magazine_current()->typeId() == mag_id ); } AND_THEN( "the ammo type for the gun remains unchanged" ) { - REQUIRE( gun.ammo_types().count( gun_ammo ) ); + REQUIRE( item( gun.magazine_default() ).ammo_types().count( gun_ammo ) ); } AND_THEN( "the ammo capacity is correctly set" ) { - REQUIRE( gun.ammo_capacity() == mag_cap ); + REQUIRE( gun.ammo_capacity( gun_ammo ) == mag_cap ); } AND_THEN( "the gun contains the correct amount and type of ammo" ) { REQUIRE( gun.ammo_remaining() == mag_cap - 2 ); diff --git a/tests/reload_option_test.cpp b/tests/reload_option_test.cpp index 00f893d62e8d6..d427c00432e60 100644 --- a/tests/reload_option_test.cpp +++ b/tests/reload_option_test.cpp @@ -2,6 +2,7 @@ #include "catch/catch.hpp" #include "item.h" #include "item_location.h" +#include "itype.h" TEST_CASE( "revolver_reload_option", "[reload],[reload_option],[gun]" ) { @@ -9,7 +10,8 @@ TEST_CASE( "revolver_reload_option", "[reload],[reload_option],[gun]" ) dummy.worn.push_back( item( "backpack" ) ); item &gun = dummy.i_add( item( "sw_619", 0, 0 ) ); - item &ammo = dummy.i_add( item( "38_special", 0, gun.ammo_capacity() ) ); + const ammotype &gun_ammo_type = item::find_type( gun.ammo_default() )->ammo->type; + item &ammo = dummy.i_add( item( "38_special", 0, gun.ammo_capacity( gun_ammo_type ) ) ); item_location ammo_location( dummy, &ammo ); REQUIRE( gun.has_flag( "RELOAD_ONE" ) ); REQUIRE( gun.ammo_remaining() == 0 ); @@ -23,13 +25,13 @@ TEST_CASE( "revolver_reload_option", "[reload],[reload_option],[gun]" ) const item::reload_option speedloader_option( &dummy, &speedloader, &speedloader, ammo_location ); - CHECK( speedloader_option.qty() == speedloader.ammo_capacity() ); + CHECK( speedloader_option.qty() == speedloader.ammo_capacity( gun_ammo_type ) ); speedloader.put_in( ammo, item_pocket::pocket_type::MAGAZINE ); item_location speedloader_location( dummy, &speedloader ); const item::reload_option gun_speedloader_option( &dummy, &gun, &gun, speedloader_location ); - CHECK( gun_speedloader_option.qty() == speedloader.ammo_capacity() ); + CHECK( gun_speedloader_option.qty() == speedloader.ammo_capacity( gun_ammo_type ) ); } TEST_CASE( "magazine_reload_option", "[reload],[reload_option],[gun]" ) @@ -38,12 +40,13 @@ TEST_CASE( "magazine_reload_option", "[reload],[reload_option],[gun]" ) dummy.worn.push_back( item( "backpack" ) ); item &magazine = dummy.i_add( item( "glockmag", 0, 0 ) ); - item &ammo = dummy.i_add( item( "9mm", 0, magazine.ammo_capacity() ) ); + const ammotype &mag_ammo_type = item::find_type( magazine.ammo_default() )->ammo->type; + item &ammo = dummy.i_add( item( "9mm", 0, magazine.ammo_capacity( mag_ammo_type ) ) ); item_location ammo_location( dummy, &ammo ); const item::reload_option magazine_option( &dummy, &magazine, &magazine, ammo_location ); - CHECK( magazine_option.qty() == magazine.ammo_capacity() ); + CHECK( magazine_option.qty() == magazine.ammo_capacity( mag_ammo_type ) ); magazine.put_in( ammo, item_pocket::pocket_type::MAGAZINE ); item_location magazine_location( dummy, &magazine ); @@ -58,15 +61,16 @@ TEST_CASE( "belt_reload_option", "[reload],[reload_option],[gun]" ) dummy.worn.push_back( item( "backpack" ) ); item &belt = dummy.i_add( item( "belt308", 0, 0 ) ); - item &ammo = dummy.i_add( item( "308", 0, belt.ammo_capacity() ) ); - dummy.i_add( item( "ammolink308", 0, belt.ammo_capacity() ) ); + const ammotype &belt_ammo_type = item::find_type( belt.ammo_default() )->ammo->type; + item &ammo = dummy.i_add( item( "308", 0, belt.ammo_capacity( belt_ammo_type ) ) ); + dummy.i_add( item( "ammolink308", 0, belt.ammo_capacity( belt_ammo_type ) ) ); item_location ammo_location( dummy, &ammo ); // Belt is populated with "charges" rounds by the item constructor. belt.ammo_unset(); REQUIRE( belt.ammo_remaining() == 0 ); const item::reload_option belt_option( &dummy, &belt, &belt, ammo_location ); - CHECK( belt_option.qty() == belt.ammo_capacity() ); + CHECK( belt_option.qty() == belt.ammo_capacity( belt_ammo_type ) ); belt.put_in( ammo, item_pocket::pocket_type::MAGAZINE ); item_location belt_location( dummy, &ammo ); diff --git a/tests/reloading_test.cpp b/tests/reloading_test.cpp index b39064afbd779..2121acd958e12 100644 --- a/tests/reloading_test.cpp +++ b/tests/reloading_test.cpp @@ -36,7 +36,7 @@ TEST_CASE( "reload_gun_with_integral_magazine", "[reload],[gun]" ) bool success = gun.reload( dummy, item_location( dummy, &ammo ), ammo.charges ); REQUIRE( success ); - REQUIRE( gun.ammo_remaining() == gun.ammo_capacity() ); + REQUIRE( gun.remaining_ammo_capacity() == 0 ); } TEST_CASE( "reload_gun_with_integral_magazine_using_speedloader", "[reload],[gun]" ) @@ -61,13 +61,13 @@ TEST_CASE( "reload_gun_with_integral_magazine_using_speedloader", "[reload],[gun bool speedloader_success = speedloader.reload( dummy, item_location( dummy, &ammo ), ammo.charges ); REQUIRE( speedloader_success ); - REQUIRE( speedloader.ammo_remaining() == speedloader.ammo_capacity() ); + REQUIRE( speedloader.remaining_ammo_capacity() == 0 ); bool success = gun.reload( dummy, item_location( dummy, &speedloader ), speedloader.ammo_remaining() ); REQUIRE( success ); - REQUIRE( gun.ammo_remaining() == gun.ammo_capacity() ); + REQUIRE( gun.remaining_ammo_capacity() == 0 ); // Speedloader is still in inventory. REQUIRE( dummy.has_item( speedloader ) ); } @@ -90,21 +90,22 @@ TEST_CASE( "reload_gun_with_swappable_magazine", "[reload],[gun]" ) REQUIRE( magazine_type->type.count( ammo_type->type ) != 0 ); item gun( "glock_19" ); - gun.put_in( mag, item_pocket::pocket_type::MAGAZINE ); + gun.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); REQUIRE( gun.magazine_current() != nullptr ); - REQUIRE( gun.ammo_types().count( ammo_type->type ) != 0 ); + REQUIRE( gun.magazine_current()->ammo_types().count( ammo_type->type ) != 0 ); dummy.i_add( gun ); const std::vector guns = dummy.items_with( []( const item & it ) { - return it.typeId() == "glock_19"; + return it.typeId() == itype_id( "glock_19" ); } ); REQUIRE( guns.size() == 1 ); item &glock = *guns.front(); REQUIRE( glock.magazine_current() != nullptr ); // We're expecting the magazine to end up in the inventory. - REQUIRE( g->unload( glock ) ); + item_location glock_loc( dummy, &glock ); + REQUIRE( g->unload( glock_loc ) ); const std::vector glock_mags = dummy.items_with( []( const item & it ) { - return it.typeId() == "glockmag"; + return it.typeId() == itype_id( "glockmag" ); } ); REQUIRE( glock_mags.size() == 1 ); item &magazine = *glock_mags.front(); @@ -115,7 +116,7 @@ TEST_CASE( "reload_gun_with_swappable_magazine", "[reload],[gun]" ) bool magazine_success = magazine.reload( dummy, item_location( dummy, &ammo ), ammo.charges ); REQUIRE( magazine_success ); - REQUIRE( magazine.ammo_remaining() == magazine.ammo_capacity() ); + REQUIRE( magazine.remaining_ammo_capacity() == 0 ); REQUIRE( gun.ammo_remaining() == 0 ); REQUIRE( gun.magazine_integral() == false ); @@ -123,7 +124,7 @@ TEST_CASE( "reload_gun_with_swappable_magazine", "[reload],[gun]" ) bool gun_success = gun.reload( dummy, item_location( dummy, &magazine ), 1 ); CHECK( gun_success ); - REQUIRE( gun.ammo_remaining() == gun.ammo_capacity() ); + REQUIRE( gun.remaining_ammo_capacity() == 0 ); } static void reload_a_revolver( player &dummy, item &gun, item &ammo ) @@ -136,7 +137,7 @@ static void reload_a_revolver( player &dummy, item &gun, item &ammo ) } dummy.wield( gun ); } - while( dummy.weapon.ammo_remaining() < dummy.weapon.ammo_capacity() ) { + while( dummy.weapon.remaining_ammo_capacity() > 0 ) { g->reload_weapon( false ); REQUIRE( dummy.activity ); process_activity( dummy ); @@ -224,7 +225,7 @@ TEST_CASE( "automatic_reloading_action", "[reload],[gun]" ) THEN( "the associated magazine is reloaded" ) { const std::vector mags = dummy.items_with( []( const item & it ) { - return it.typeId() == "glockmag"; + return it.typeId() == itype_id( "glockmag" ); } ); REQUIRE( mags.size() == 1 ); REQUIRE( !mags.front()->contents.empty() ); @@ -260,7 +261,7 @@ TEST_CASE( "automatic_reloading_action", "[reload],[gun]" ) THEN( "the associated magazine is reloaded" ) { const std::vector mags = dummy.items_with( []( const item & it ) { - return it.typeId() == "glockmag"; + return it.typeId() == itype_id( "glockmag" ); } ); REQUIRE( mags.size() == 1 ); REQUIRE( !mags.front()->contents.empty() ); @@ -281,7 +282,7 @@ TEST_CASE( "automatic_reloading_action", "[reload],[gun]" ) THEN( "the second associated magazine is reloaded" ) { const std::vector mags = dummy.items_with( []( const item & it ) { - return it.typeId() == "glockbigmag"; + return it.typeId() == itype_id( "glockbigmag" ); } ); REQUIRE( mags.size() == 1 ); REQUIRE( !mags.front()->contents.empty() ); diff --git a/tests/requirements_test.cpp b/tests/requirements_test.cpp index 890e98235bd66..50d93c3a3c042 100644 --- a/tests/requirements_test.cpp +++ b/tests/requirements_test.cpp @@ -6,6 +6,13 @@ #include "catch/catch.hpp" +static const itype_id itype_acid( "acid" ); +static const itype_id itype_ash( "ash" ); +static const itype_id itype_lye( "lye" ); +static const itype_id itype_rock( "rock" ); +static const itype_id itype_soap( "soap" ); +static const itype_id itype_yarn( "yarn" ); + static void test_requirement_deduplication( const requirement_data::alter_item_comp_vector &before, std::vector after @@ -27,16 +34,16 @@ static void test_requirement_deduplication( TEST_CASE( "simple_requirements_dont_multiply", "[requirement]" ) { - test_requirement_deduplication( { { { "rock", 1 } } }, { { { { "rock", 1 } } } } ); + test_requirement_deduplication( { { { itype_rock, 1 } } }, { { { { itype_rock, 1 } } } } ); } TEST_CASE( "survivor_telescope_inspired_example", "[requirement]" ) { requirement_data::alter_item_comp_vector before; test_requirement_deduplication( - { { { "rock", 1 }, { "soap", 1 } }, { { "rock", 1 } } }, { - { { { "soap", 1 } }, { { "rock", 1 } } }, - { { { "rock", 2 } } } + { { { itype_rock, 1 }, { itype_soap, 1 } }, { { itype_rock, 1 } } }, { + { { { itype_soap, 1 } }, { { itype_rock, 1 } } }, + { { { itype_rock, 2 } } } } ); } @@ -44,9 +51,9 @@ TEST_CASE( "survivor_telescope_inspired_example_2", "[requirement]" ) { requirement_data::alter_item_comp_vector before; test_requirement_deduplication( - { { { "ash", 1 } }, { { "rock", 1 }, { "soap", 1 } }, { { "rock", 1 } }, { { "lye", 1 } } }, { - { { { "ash", 1 } }, { { "soap", 1 } }, { { "rock", 1 } }, { { "lye", 1 } } }, - { { { "ash", 1 } }, { { "rock", 2 } }, { { "lye", 1 } } } + { { { itype_ash, 1 } }, { { itype_rock, 1 }, { itype_soap, 1 } }, { { itype_rock, 1 } }, { { itype_lye, 1 } } }, { + { { { itype_ash, 1 } }, { { itype_soap, 1 } }, { { itype_rock, 1 } }, { { itype_lye, 1 } } }, + { { { itype_ash, 1 } }, { { itype_rock, 2 } }, { { itype_lye, 1 } } } } ); } @@ -54,10 +61,10 @@ TEST_CASE( "woods_soup_inspired_example", "[requirement]" ) { requirement_data::alter_item_comp_vector before; test_requirement_deduplication( - { { { "rock", 1 }, { "soap", 1 } }, { { "rock", 1 }, { "yarn", 1 } } }, { - { { { "soap", 1 } }, { { "rock", 1 }, { "yarn", 1 } } }, - { { { "rock", 1 } }, { { "yarn", 1 } } }, - { { { "rock", 2 } } } + { { { itype_rock, 1 }, { itype_soap, 1 } }, { { itype_rock, 1 }, { itype_yarn, 1 } } }, { + { { { itype_soap, 1 } }, { { itype_rock, 1 }, { itype_yarn, 1 } } }, + { { { itype_rock, 1 } }, { { itype_yarn, 1 } } }, + { { { itype_rock, 2 } } } } ); } @@ -65,12 +72,12 @@ TEST_CASE( "triple_overlap_1", "[requirement]" ) { requirement_data::alter_item_comp_vector before; test_requirement_deduplication( { - { { "rock", 1 }, { "soap", 1 } }, - { { "rock", 1 } }, - { { "soap", 1 } } + { { itype_rock, 1 }, { itype_soap, 1 } }, + { { itype_rock, 1 } }, + { { itype_soap, 1 } } }, { - { { { "rock", 1 } }, { { "soap", 2 } } }, - { { { "rock", 2 } }, { { "soap", 1 } } }, + { { { itype_rock, 1 } }, { { itype_soap, 2 } } }, + { { { itype_rock, 2 } }, { { itype_soap, 1 } } }, } ); } @@ -78,14 +85,14 @@ TEST_CASE( "triple_overlap_2", "[requirement]" ) { requirement_data::alter_item_comp_vector before; test_requirement_deduplication( { - { { "rock", 1 }, { "soap", 1 } }, - { { "rock", 1 }, { "yarn", 1 } }, - { { "soap", 1 }, { "acid", 1 } } + { { itype_rock, 1 }, { itype_soap, 1 } }, + { { itype_rock, 1 }, { itype_yarn, 1 } }, + { { itype_soap, 1 }, { itype_acid, 1 } } }, { - { { { "soap", 1 } }, { { "rock", 1 }, { "yarn", 1 } }, { { "acid", 1 } } }, - { { { "rock", 1 }, { "yarn", 1 } }, { { "soap", 2 } } }, - { { { "rock", 1 } }, { { "yarn", 1 } }, { { "acid", 1 }, { "soap", 1 } } }, - { { { "rock", 2 } }, { { "acid", 1 }, { "soap", 1 } } }, + { { { itype_soap, 1 } }, { { itype_rock, 1 }, { itype_yarn, 1 } }, { { itype_acid, 1 } } }, + { { { itype_rock, 1 }, { itype_yarn, 1 } }, { { itype_soap, 2 } } }, + { { { itype_rock, 1 } }, { { itype_yarn, 1 } }, { { itype_acid, 1 }, { itype_soap, 1 } } }, + { { { itype_rock, 2 } }, { { itype_acid, 1 }, { itype_soap, 1 } } }, } ); } @@ -93,20 +100,20 @@ TEST_CASE( "triple_overlap_3", "[requirement]" ) { requirement_data::alter_item_comp_vector before; test_requirement_deduplication( { - { { "rock", 1 }, { "soap", 1 } }, - { { "rock", 1 }, { "yarn", 1 } }, - { { "soap", 1 }, { "yarn", 1 } } + { { itype_rock, 1 }, { itype_soap, 1 } }, + { { itype_rock, 1 }, { itype_yarn, 1 } }, + { { itype_soap, 1 }, { itype_yarn, 1 } } }, { // These results are not ideal. Two of them are equivalent and // another two could be merged. But they are correct, and that // seems good enough for now. I don't anticipate any real recipes // being as complicated to resolve as this one. - { { { "soap", 1 } }, { { "rock", 1 } }, { { "yarn", 1 } } }, - { { { "soap", 1 } }, { { "yarn", 2 } } }, - { { { "rock", 1 }, { "yarn", 1 } }, { { "soap", 2 } } }, - { { { "rock", 1 } }, { { "yarn", 1 } }, { { "soap", 1 } } }, - { { { "rock", 1 } }, { { "yarn", 2 } } }, - { { { "rock", 2 } }, { { "yarn", 1 }, { "soap", 1 } } }, + { { { itype_soap, 1 } }, { { itype_rock, 1 } }, { { itype_yarn, 1 } } }, + { { { itype_soap, 1 } }, { { itype_yarn, 2 } } }, + { { { itype_rock, 1 }, { itype_yarn, 1 } }, { { itype_soap, 2 } } }, + { { { itype_rock, 1 } }, { { itype_yarn, 1 } }, { { itype_soap, 1 } } }, + { { { itype_rock, 1 } }, { { itype_yarn, 2 } } }, + { { { itype_rock, 2 } }, { { itype_yarn, 1 }, { itype_soap, 1 } } }, } ); } @@ -114,8 +121,8 @@ TEST_CASE( "deduplicate_repeated_requirements", "[requirement]" ) { requirement_data::alter_item_comp_vector before; test_requirement_deduplication( { - { { "rock", 1 } }, { { "yarn", 1 } }, { { "rock", 1 } }, { { "yarn", 1 } } + { { itype_rock, 1 } }, { { itype_yarn, 1 } }, { { itype_rock, 1 } }, { { itype_yarn, 1 } } }, { - { { { "rock", 2 } }, { { "yarn", 2 } } }, + { { { itype_rock, 2 } }, { { itype_yarn, 2 } } }, } ); } diff --git a/tests/rot_test.cpp b/tests/rot_test.cpp index 08dc97c7ce9cc..eb2a781cf383f 100644 --- a/tests/rot_test.cpp +++ b/tests/rot_test.cpp @@ -38,9 +38,9 @@ TEST_CASE( "Rate of rotting" ) set_map_temperature( 65 ); // 18,3 C - normal_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_NORMAL ); - sealed_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_NORMAL ); - freeze_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_NORMAL ); + normal_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::NORMAL ); + sealed_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::NORMAL ); + freeze_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::NORMAL ); // Item should exist with no rot when it is brand new CHECK( normal_item.get_rot() == 0_turns ); @@ -50,9 +50,9 @@ TEST_CASE( "Rate of rotting" ) INFO( "Initial turn: " << to_turn( calendar::turn ) ); calendar::turn += 20_minutes; - normal_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_NORMAL ); - sealed_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_NORMAL ); - freeze_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_FREEZER ); + normal_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::NORMAL ); + sealed_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::NORMAL ); + freeze_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::FREEZER ); // After 20 minutes the normal item should have 20 minutes of rot CHECK( to_turns( normal_item.get_rot() ) @@ -63,8 +63,8 @@ TEST_CASE( "Rate of rotting" ) // Move time 110 minutes calendar::turn += 110_minutes; - sealed_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_NORMAL ); - freeze_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_FREEZER ); + sealed_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::NORMAL ); + freeze_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::FREEZER ); // In freezer and in preserving container still should be no rot CHECK( sealed_item.get_rot() == 0_turns ); CHECK( freeze_item.get_rot() == 0_turns ); @@ -86,14 +86,14 @@ TEST_CASE( "Items rot away" ) item test_item( "meat_cooked" ); // Process item once to set all of its values. - test_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::TEMP_HEATER ); + test_item.process( nullptr, tripoint_zero, false, 1, temperature_flag::HEATER ); // Set rot to >2 days and process again. process_temperature_rot should return true. calendar::turn += 20_minutes; test_item.mod_rot( 2_days ); CHECK( test_item.process_temperature_rot( 1, tripoint_zero, nullptr, - temperature_flag::TEMP_HEATER ) ); + temperature_flag::HEATER ) ); INFO( "Rot: " << to_turns( test_item.get_rot() ) ); } } diff --git a/tests/stats_tracker_test.cpp b/tests/stats_tracker_test.cpp index 29643c0acfa5d..8cc023d09c95c 100644 --- a/tests/stats_tracker_test.cpp +++ b/tests/stats_tracker_test.cpp @@ -1,7 +1,9 @@ #include +#include #include "achievement.h" #include "avatar.h" +#include "calendar.h" #include "cata_variant.h" #include "catch/catch.hpp" #include "character_id.h" @@ -9,12 +11,17 @@ #include "event_bus.h" #include "event_statistics.h" #include "game.h" +#include "optional.h" #include "stats_tracker.h" #include "string_id.h" #include "stringmaker.h" #include "type_id.h" #include "options_helpers.h" +static const move_mode_id move_mode_walk( "walk" ); +static const move_mode_id move_mode_run( "run" ); +static const move_mode_id move_mode_crouch( "crouch" ); + TEST_CASE( "stats_tracker_count_events", "[stats]" ) { stats_tracker s; @@ -82,19 +89,19 @@ TEST_CASE( "stats_tracker_minimum_events", "[stats]" ) constexpr event_type am = event_type::avatar_moves; CHECK( s.get_events( am ).minimum( "z" ) == 0 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, false, 0 ); + b.send( no_monster, t_null, move_mode_walk, false, 0 ); CHECK( s.get_events( am ).minimum( "z" ) == 0 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, false, -1 ); + b.send( no_monster, t_null, move_mode_walk, false, -1 ); CHECK( s.get_events( am ).minimum( "z" ) == -1 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, false, 1 ); + b.send( no_monster, t_null, move_mode_walk, false, 1 ); CHECK( s.get_events( am ).minimum( "z" ) == -1 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, false, -3 ); + b.send( no_monster, t_null, move_mode_walk, false, -3 ); CHECK( s.get_events( am ).minimum( "z" ) == -3 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, true, -1 ); + b.send( no_monster, t_null, move_mode_walk, true, -1 ); CHECK( s.get_events( am ).minimum( "z" ) == -3 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, true, 1 ); + b.send( no_monster, t_null, move_mode_walk, true, 1 ); CHECK( s.get_events( am ).minimum( "z" ) == -3 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, true, -5 ); + b.send( no_monster, t_null, move_mode_walk, true, -5 ); CHECK( s.get_events( am ).minimum( "z" ) == -5 ); } @@ -110,22 +117,51 @@ TEST_CASE( "stats_tracker_maximum_events", "[stats]" ) constexpr event_type am = event_type::avatar_moves; CHECK( s.get_events( am ).maximum( "z" ) == 0 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, false, 0 ); + b.send( no_monster, t_null, move_mode_walk, false, 0 ); CHECK( s.get_events( am ).maximum( "z" ) == 0 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, false, 1 ); + b.send( no_monster, t_null, move_mode_walk, false, 1 ); CHECK( s.get_events( am ).maximum( "z" ) == 1 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, false, 1 ); + b.send( no_monster, t_null, move_mode_walk, false, 1 ); CHECK( s.get_events( am ).maximum( "z" ) == 1 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, false, 3 ); + b.send( no_monster, t_null, move_mode_walk, false, 3 ); CHECK( s.get_events( am ).maximum( "z" ) == 3 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, true, 1 ); + b.send( no_monster, t_null, move_mode_walk, true, 1 ); CHECK( s.get_events( am ).maximum( "z" ) == 3 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, true, 1 ); + b.send( no_monster, t_null, move_mode_walk, true, 1 ); CHECK( s.get_events( am ).maximum( "z" ) == 3 ); - b.send( no_monster, t_null, character_movemode::CMM_WALK, true, 5 ); + b.send( no_monster, t_null, move_mode_walk, true, 5 ); CHECK( s.get_events( am ).maximum( "z" ) == 5 ); } +TEST_CASE( "stats_tracker_event_time_bounds", "[stats]" ) +{ + stats_tracker s; + event_bus b; + b.subscribe( &s ); + + const character_id u_id = g->u.getID(); + constexpr event_type ctd = event_type::character_takes_damage; + + const time_point start = calendar::turn; + + CHECK( !s.get_events( ctd ).first() ); + CHECK( !s.get_events( ctd ).last() ); + b.send( u_id, 10 ); + CHECK( s.get_events( ctd ).first()->second.first == start ); + CHECK( s.get_events( ctd ).last()->second.last == calendar::turn ); + calendar::turn += 1_minutes; + b.send( u_id, 10 ); + CHECK( s.get_events( ctd ).first()->second.first == start ); + CHECK( s.get_events( ctd ).last()->second.last == calendar::turn ); +} + +static void send_game_start( event_bus &b, const character_id &u_id ) +{ + b.send( + u_id, "Avatar name", /*is_male=*/false, profession_id::NULL_ID(), "CUSTOM_PROFESSION", + "VERION_STRING" ); +} + TEST_CASE( "stats_tracker_with_event_statistics", "[stats]" ) { stats_tracker s; @@ -139,18 +175,18 @@ TEST_CASE( "stats_tracker_with_event_statistics", "[stats]" ) const ter_id t_water_dp( "t_water_dp" ); const cata::event walk = cata::event::make( no_monster, t_null, - character_movemode::CMM_WALK, false, 0 ); + move_mode_walk, false, 0 ); const cata::event ride = cata::event::make( horse, t_null, - character_movemode::CMM_WALK, + move_mode_walk, false, 0 ); const cata::event run = cata::event::make( no_monster, t_null, - character_movemode::CMM_RUN, false, 0 ); + move_mode_run, false, 0 ); const cata::event crouch = cata::event::make( no_monster, t_null, - character_movemode::CMM_CROUCH, false, 0 ); + move_mode_crouch, false, 0 ); const cata::event swim = cata::event::make( no_monster, t_water_dp, - character_movemode::CMM_WALK, false, 0 ); + move_mode_walk, false, 0 ); const cata::event swim_underwater = cata::event::make( no_monster, - t_water_dp, character_movemode::CMM_WALK, true, 0 ); + t_water_dp, move_mode_walk, true, 0 ); const string_id score_moves( "score_moves" ); const string_id score_walked( "score_distance_walked" ); @@ -242,21 +278,21 @@ TEST_CASE( "stats_tracker_with_event_statistics", "[stats]" ) const cata::event other_kill = cata::event::make( other_id, mon_zombie ); const string_id avatar_id( "avatar_id" ); - const string_id num_avatar_kills( "num_avatar_kills" ); + const string_id num_avatar_monster_kills( "num_avatar_monster_kills" ); const string_id num_avatar_zombie_kills( "num_avatar_zombie_kills" ); const string_id score_kills( "score_kills" ); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( avatar_id->value( s ) == cata_variant( u_id ) ); CHECK( score_kills->value( s ).get() == 0 ); CHECK( score_kills->description( s ) == "0 monsters killed" ); b.send( avatar_zombie_kill ); - CHECK( num_avatar_kills->value( s ).get() == 1 ); + CHECK( num_avatar_monster_kills->value( s ).get() == 1 ); CHECK( num_avatar_zombie_kills->value( s ).get() == 1 ); CHECK( score_kills->value( s ).get() == 1 ); CHECK( score_kills->description( s ) == "1 monster killed" ); b.send( avatar_dog_kill ); - CHECK( num_avatar_kills->value( s ).get() == 2 ); + CHECK( num_avatar_monster_kills->value( s ).get() == 2 ); CHECK( num_avatar_zombie_kills->value( s ).get() == 1 ); CHECK( score_kills->value( s ).get() == 2 ); b.send( other_kill ); @@ -270,11 +306,40 @@ TEST_CASE( "stats_tracker_with_event_statistics", "[stats]" ) cata::event::make( u_id, 2 ); const string_id damage_taken( "score_damage_taken" ); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( damage_taken->value( s ).get() == 0 ); b.send( avatar_2_damage ); CHECK( damage_taken->value( s ).get() == 2 ); } + + SECTION( "first_last_events" ) { + const character_id u_id = g->u.getID(); + const oter_id field( "field" ); + const itype_id crowbar( "crowbar" ); + const itype_id pipe( "pipe" ); + const string_id first_omt( "first_omt" ); + const string_id last_wielded( "avatar_last_item_wielded" ); + + send_game_start( b, u_id ); + CHECK( first_omt->value( s ) == cata_variant() ); + CHECK( last_wielded->value( s ) == cata_variant() ); + b.send( tripoint_zero, field ); + b.send( u_id, crowbar ); + CHECK( first_omt->value( s ) == cata_variant( tripoint_zero ) ); + CHECK( last_wielded->value( s ) == cata_variant( crowbar ) ); + + calendar::turn += 1_minutes; + b.send( tripoint_below, field ); + b.send( u_id, pipe ); + CHECK( first_omt->value( s ) == cata_variant( tripoint_zero ) ); + CHECK( last_wielded->value( s ) == cata_variant( pipe ) ); + + calendar::turn += 1_minutes; + b.send( tripoint_zero, field ); + b.send( u_id, crowbar ); + CHECK( first_omt->value( s ) == cata_variant( tripoint_zero ) ); + CHECK( last_wielded->value( s ) == cata_variant( crowbar ) ); + } } struct watch_stat : stat_watcher { @@ -297,18 +362,18 @@ TEST_CASE( "stats_tracker_watchers", "[stats]" ) const ter_id t_water_dp( "t_water_dp" ); const cata::event walk = cata::event::make( no_monster, t_null, - character_movemode::CMM_WALK, false, 0 ); + move_mode_walk, false, 0 ); const cata::event ride = cata::event::make( horse, t_null, - character_movemode::CMM_WALK, + move_mode_walk, false, 0 ); const cata::event run = cata::event::make( no_monster, t_null, - character_movemode::CMM_RUN, false, 0 ); + move_mode_run, false, 0 ); const cata::event crouch = cata::event::make( no_monster, t_null, - character_movemode::CMM_CROUCH, false, 0 ); + move_mode_crouch, false, 0 ); const cata::event swim = cata::event::make( no_monster, t_water_dp, - character_movemode::CMM_WALK, false, 0 ); + move_mode_walk, false, 0 ); const cata::event swim_underwater = cata::event::make( no_monster, - t_water_dp, character_movemode::CMM_WALK, true, 0 ); + t_water_dp, move_mode_walk, true, 0 ); const string_id stat_moves( "num_moves" ); const string_id stat_walked( "num_moves_walked" ); @@ -415,15 +480,15 @@ TEST_CASE( "stats_tracker_watchers", "[stats]" ) cata::event::make( u_id, mon_dog ); const cata::event other_kill = cata::event::make( other_id, mon_zombie ); - const string_id num_avatar_kills( "num_avatar_kills" ); + const string_id num_avatar_monster_kills( "num_avatar_monster_kills" ); const string_id num_avatar_zombie_kills( "num_avatar_zombie_kills" ); watch_stat kills_watcher; watch_stat zombie_kills_watcher; - s.add_watcher( num_avatar_kills, &kills_watcher ); + s.add_watcher( num_avatar_monster_kills, &kills_watcher ); s.add_watcher( num_avatar_zombie_kills, &zombie_kills_watcher ); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( kills_watcher.value == cata_variant( 0 ) ); b.send( avatar_zombie_kill ); CHECK( kills_watcher.value == cata_variant( 1 ) ); @@ -445,7 +510,7 @@ TEST_CASE( "stats_tracker_watchers", "[stats]" ) s.add_watcher( damage_taken, &damage_watcher ); CHECK( damage_watcher.value == cata_variant() ); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( damage_watcher.value == cata_variant( 0 ) ); b.send( avatar_2_damage ); CHECK( damage_watcher.value == cata_variant( 2 ) ); @@ -456,25 +521,30 @@ TEST_CASE( "achievments_tracker", "[stats]" ) { override_option opt( "24_HOUR", "military" ); - std::map, const achievement *> achievements_completed; + std::map achievements_completed; + std::map achievements_failed; event_bus b; stats_tracker s; b.subscribe( &s ); achievements_tracker a( s, [&]( const achievement * a, bool /*achievements_enabled*/ ) { achievements_completed.emplace( a->id, a ); + }, + [&]( const achievement * a, bool /*achievements_enabled*/ ) { + achievements_failed.emplace( a->id, a ); } ); b.subscribe( &a ); + const character_id u_id = g->u.getID(); + SECTION( "time" ) { calendar::turn = calendar::start_of_game; - const character_id u_id = g->u.getID(); const cata::event avatar_wakes_up = cata::event::make( u_id ); - string_id a_survive_one_day( "achievement_survive_one_day" ); + achievement_id a_survive_one_day( "achievement_survive_one_day" ); - b.send( u_id ); + send_game_start( b, u_id ); // Waking up before the time in question should do nothing b.send( avatar_wakes_up ); @@ -486,24 +556,72 @@ TEST_CASE( "achievments_tracker", "[stats]" ) CHECK( achievements_completed.count( a_survive_one_day ) ); } + SECTION( "first_and_last" ) { + calendar::turn = calendar::start_of_game; + oter_id field( "field" ); + + auto send_enter_omt_zero = [&]() { + b.send( tripoint_zero, field ); + }; + + auto send_enter_omt_other = [&]() { + b.send( tripoint_below, field ); + }; + + achievement_id a_return_to_first_omt( "achievement_return_to_first_omt" ); + + send_game_start( b, u_id ); + send_enter_omt_zero(); + CHECK( !achievements_completed.count( a_return_to_first_omt ) ); + + calendar::turn += 30_days; + send_enter_omt_other(); + CHECK( !achievements_completed.count( a_return_to_first_omt ) ); + send_enter_omt_zero(); + CHECK( !achievements_completed.count( a_return_to_first_omt ) ); + + calendar::turn += 30_days; + send_enter_omt_other(); + CHECK( !achievements_completed.count( a_return_to_first_omt ) ); + send_enter_omt_zero(); + CHECK( !achievements_completed.count( a_return_to_first_omt ) ); + + calendar::turn += 30_days; + send_enter_omt_other(); + CHECK( !achievements_completed.count( a_return_to_first_omt ) ); + send_enter_omt_zero(); + CHECK( !achievements_completed.count( a_return_to_first_omt ) ); + + calendar::turn += 30_days; + send_enter_omt_other(); + CHECK( !achievements_completed.count( a_return_to_first_omt ) ); + send_enter_omt_zero(); + CHECK( achievements_completed.count( a_return_to_first_omt ) ); + } + SECTION( "hidden_kills" ) { - const character_id u_id = g->u.getID(); const mtype_id mon_zombie( "mon_zombie" ); const cata::event avatar_zombie_kill = cata::event::make( u_id, mon_zombie ); - string_id a_kill_10( "achievement_kill_10_monsters" ); - string_id a_kill_100( "achievement_kill_100_monsters" ); + achievement_id a_kill_10( "achievement_kill_10_monsters" ); + achievement_id a_kill_100( "achievement_kill_100_monsters" ); + achievement_id c_pacifist( "conduct_zero_kills" ); + achievement_id c_merciful( "conduct_zero_character_kills" ); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( !a.is_hidden( &*a_kill_10 ) ); CHECK( a.is_hidden( &*a_kill_100 ) ); + CHECK( !a.is_hidden( &*c_pacifist ) ); + CHECK( a.is_hidden( &*c_merciful ) ); for( int i = 0; i < 10; ++i ) { b.send( avatar_zombie_kill ); } CHECK( !a.is_hidden( &*a_kill_10 ) ); CHECK( !a.is_hidden( &*a_kill_100 ) ); + CHECK( !a.is_hidden( &*c_pacifist ) ); + CHECK( !a.is_hidden( &*c_merciful ) ); } SECTION( "kills" ) { @@ -511,15 +629,16 @@ TEST_CASE( "achievments_tracker", "[stats]" ) CAPTURE( time_since_game_start ); calendar::turn = calendar::start_of_game + time_since_game_start; - const character_id u_id = g->u.getID(); const mtype_id mon_zombie( "mon_zombie" ); const cata::event avatar_zombie_kill = cata::event::make( u_id, mon_zombie ); - string_id a_kill_zombie( "achievement_kill_zombie" ); - string_id a_kill_in_first_minute( "achievement_kill_in_first_minute" ); + achievement_id c_pacifist( "conduct_zero_kills" ); + achievement_id c_merciful( "conduct_zero_character_kills" ); + achievement_id a_kill_zombie( "achievement_kill_zombie" ); + achievement_id a_kill_in_first_minute( "achievement_kill_in_first_minute" ); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( a.ui_text_for( &*a_kill_zombie ) == "One down, billions to go…\n" @@ -531,12 +650,22 @@ TEST_CASE( "achievments_tracker", "[stats]" ) " 0/1 monster killed\n" ); } else { CHECK( a.ui_text_for( &*a_kill_in_first_minute ) == - "Rude awakening\n" - " Within 1 minute of start of game (passed)\n" + "Rude awakening\n" + " Failed Year 1, Spring, day 1 0001.00\n" " 0/1 monster killed\n" ); } + CHECK( a.ui_text_for( &*c_pacifist ) == + "Pacifist\n" + " Kill no monsters\n" + " Kill no characters\n" ); + + CHECK( a.ui_text_for( &*c_merciful ) == + "Merciful\n" + " Kill no characters\n" ); + CHECK( achievements_completed.empty() ); + CHECK( achievements_failed.empty() ); b.send( avatar_zombie_kill ); if( time_since_game_start < 1_minutes ) { @@ -555,11 +684,32 @@ TEST_CASE( "achievments_tracker", "[stats]" ) " 1/1 zombie killed\n" ); CHECK( !achievements_completed.count( a_kill_in_first_minute ) ); CHECK( a.ui_text_for( &*a_kill_in_first_minute ) == - "Rude awakening\n" - " Within 1 minute of start of game (passed)\n" + "Rude awakening\n" + " Failed Year 1, Spring, day 1 0010.00\n" " 0/1 monster killed\n" ); } + if( time_since_game_start < 1_minutes ) { + CHECK( a.ui_text_for( &*c_pacifist ) == + "Pacifist\n" + " Failed Year 1, Spring, day 1 0000.30\n" + " Kill no monsters\n" + " Kill no characters\n" ); + } else { + CHECK( a.ui_text_for( &*c_pacifist ) == + "Pacifist\n" + " Failed Year 1, Spring, day 1 0010.00\n" + " Kill no monsters\n" + " Kill no characters\n" ); + } + + CHECK( a.ui_text_for( &*c_merciful ) == + "Merciful\n" + " Kill no characters\n" ); + + CHECK( achievements_failed.count( c_pacifist ) ); + CHECK( !achievements_failed.count( c_merciful ) ); + // Advance a minute and kill again calendar::turn += 1_minutes; b.send( avatar_zombie_kill ); @@ -580,8 +730,8 @@ TEST_CASE( "achievments_tracker", "[stats]" ) " 1/1 zombie killed\n" ); CHECK( !achievements_completed.count( a_kill_in_first_minute ) ); CHECK( a.ui_text_for( &*a_kill_in_first_minute ) == - "Rude awakening\n" - " Within 1 minute of start of game (passed)\n" + "Rude awakening\n" + " Failed Year 1, Spring, day 1 0010.00\n" " 0/1 monster killed\n" ); } } @@ -592,28 +742,27 @@ TEST_CASE( "achievments_tracker", "[stats]" ) const ter_id t_water_dp( "t_water_dp" ); const ter_id t_shrub_raspberry( "t_shrub_raspberry" ); const cata::event walk = cata::event::make( no_monster, t_null, - character_movemode::CMM_WALK, false, 0 ); + move_mode_walk, false, 0 ); const cata::event run = cata::event::make( no_monster, t_null, - character_movemode::CMM_RUN, false, 0 ); + move_mode_run, false, 0 ); const cata::event sharp_move = cata::event::make( no_monster, - t_shrub_raspberry, character_movemode::CMM_WALK, false, 0 ); + t_shrub_raspberry, move_mode_walk, false, 0 ); const cata::event swim = cata::event::make( no_monster, t_water_dp, - character_movemode::CMM_WALK, false, 0 ); + move_mode_walk, false, 0 ); const cata::event swim_underwater = cata::event::make( no_monster, - t_water_dp, character_movemode::CMM_WALK, true, 0 ); + t_water_dp, move_mode_walk, true, 0 ); const cata::event swim_underwater_deep = cata::event::make( no_monster, - t_water_dp, character_movemode::CMM_WALK, true, -5 ); + t_water_dp, move_mode_walk, true, -5 ); const cata::event walk_max_z = cata::event::make( no_monster, t_null, - character_movemode::CMM_WALK, false, OVERMAP_HEIGHT ); + move_mode_walk, false, OVERMAP_HEIGHT ); const cata::event walk_min_z = cata::event::make( no_monster, t_null, - character_movemode::CMM_WALK, false, -OVERMAP_DEPTH ); + move_mode_walk, false, -OVERMAP_DEPTH ); SECTION( "achievement_marathon" ) { - string_id a_marathon( "achievement_marathon" ); + achievement_id a_marathon( "achievement_marathon" ); GIVEN( "a new game" ) { - const character_id u_id = g->u.getID(); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( achievements_completed.empty() ); WHEN( "the avatar runs the required distance" ) { @@ -628,11 +777,10 @@ TEST_CASE( "achievments_tracker", "[stats]" ) } SECTION( "achievement_traverse_sharp_terrain" ) { - string_id a_traverse_sharp_terrain( "achievement_traverse_sharp_terrain" ); + achievement_id a_traverse_sharp_terrain( "achievement_traverse_sharp_terrain" ); GIVEN( "a new game" ) { - const character_id u_id = g->u.getID(); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( achievements_completed.empty() ); WHEN( "the avatar traverses the required number of sharp terrain" ) { @@ -647,11 +795,10 @@ TEST_CASE( "achievments_tracker", "[stats]" ) } SECTION( "achievement_swim_merit_badge" ) { - string_id a_swim_merit_badge( "achievement_swim_merit_badge" ); + achievement_id a_swim_merit_badge( "achievement_swim_merit_badge" ); GIVEN( "a new game" ) { - const character_id u_id = g->u.getID(); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( achievements_completed.empty() ); WHEN( "the avatar does the required actions" ) { @@ -670,11 +817,10 @@ TEST_CASE( "achievments_tracker", "[stats]" ) } SECTION( "achievement_reach_max_z_level" ) { - string_id a_reach_max_z_level( "achievement_reach_max_z_level" ); + achievement_id a_reach_max_z_level( "achievement_reach_max_z_level" ); GIVEN( "a new game" ) { - const character_id u_id = g->u.getID(); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( achievements_completed.empty() ); WHEN( "the avatar does the required actions" ) { @@ -687,11 +833,10 @@ TEST_CASE( "achievments_tracker", "[stats]" ) } SECTION( "achievement_reach_min_z_level" ) { - string_id a_reach_min_z_level( "achievement_reach_min_z_level" ); + achievement_id a_reach_min_z_level( "achievement_reach_min_z_level" ); GIVEN( "a new game" ) { - const character_id u_id = g->u.getID(); - b.send( u_id ); + send_game_start( b, u_id ); CHECK( achievements_completed.empty() ); WHEN( "the avatar does the required actions" ) { @@ -712,3 +857,84 @@ TEST_CASE( "stats_tracker_in_game", "[stats]" ) g->events().send( e ); CHECK( g->stats().get_events( e.type() ).count( e.data() ) == 1 ); } + +struct test_subscriber : public event_subscriber { + void notify( const cata::event &e ) override { + if( e.type() == event_type::player_gets_achievement || + e.type() == event_type::player_fails_conduct ) { + events.push_back( e ); + } + } + + std::vector events; +}; + +TEST_CASE( "achievements_tracker_in_game", "[stats]" ) +{ + g->achievements().clear(); + test_subscriber sub; + g->events().subscribe( &sub ); + + const character_id u_id = g->u.getID(); + send_game_start( g->events(), u_id ); + + const mtype_id mon_zombie( "mon_zombie" ); + const cata::event avatar_zombie_kill = + cata::event::make( u_id, mon_zombie ); + g->events().send( avatar_zombie_kill ); + + achievement_id c_pacifist( "conduct_zero_kills" ); + achievement_id a_kill_zombie( "achievement_kill_zombie" ); + + { + auto e = std::find_if( sub.events.begin(), sub.events.end(), + [&]( const cata::event & e ) { + return e.type() == event_type::player_fails_conduct && + e.get( "conduct" ) == c_pacifist; + } + ); + REQUIRE( e != sub.events.end() ); + CHECK( e->get( "achievements_enabled" ) == true ); + } + { + auto e = std::find_if( sub.events.begin(), sub.events.end(), + [&]( const cata::event & e ) { + return e.type() == event_type::player_gets_achievement && + e.get( "achievement" ) == a_kill_zombie; + } + ); + REQUIRE( e != sub.events.end() ); + CHECK( e->get( "achievements_enabled" ) == true ); + } +} + +TEST_CASE( "legacy_stats_tracker_save_loading", "[stats]" ) +{ + std::string json_string = R"({ + "data": { + "character_triggers_trap": { + "event_counts": [ + [ + { + "character": [ "character_id", "20" ], + "trap": [ "trap_str_id", "tr_goo" ] + }, + 2 + ] + ] + }, + "character_kills_monster": { + "event_counts": [] + } + }, + "initial_scores": [ + "score_distance_walked" + ] + })"; + std::istringstream is( json_string ); + JsonIn jsin( is ); + stats_tracker s; + s.deserialize( jsin ); + CHECK( s.get_events( event_type::character_triggers_trap ).count() == 2 ); + CHECK( s.get_events( event_type::character_kills_monster ).count() == 0 ); +} diff --git a/tests/stomach_contents_test.cpp b/tests/stomach_contents_test.cpp index 58bc71af684c3..33c80899df04a 100644 --- a/tests/stomach_contents_test.cpp +++ b/tests/stomach_contents_test.cpp @@ -80,7 +80,7 @@ static void eat_all_nutrients( player &p ) // Vitamin target: 100% DV -- or 96 vitamin "units" since all vitamins currently decay every 15m. // Energy target: 2100 kcal -- debug target will be completely sedentary. item f( "debug_nutrition" ); - p.eat( f ); + p.consume( f ); } // how long does it take to starve to death @@ -244,9 +244,9 @@ TEST_CASE( "hunger" ) CHECK( hunger_time <= 270 ); CHECK( hunger_time >= 240 ); item f( "meat_cooked" ); - dummy.eat( f ); + dummy.consume( f ); f = item( "meat_cooked" ); - dummy.eat( f ); + dummy.consume( f ); dummy.set_thirst( 0 ); dummy.update_body(); print_stomach_contents( dummy, print_tests ); @@ -259,9 +259,9 @@ TEST_CASE( "hunger" ) CHECK( hunger_time <= 240 ); CHECK( hunger_time >= 210 ); f = item( "beansnrice" ); - dummy.eat( f ); + dummy.consume( f ); f = item( "beansnrice" ); - dummy.eat( f ); + dummy.consume( f ); dummy.update_body(); print_stomach_contents( dummy, print_tests ); hunger_time = to_minutes( time_until_hungry( dummy ) ); @@ -276,7 +276,7 @@ TEST_CASE( "hunger" ) } for( int i = 0; i < 16; i++ ) { f = item( "veggy" ); - dummy.eat( f ); + dummy.consume( f ); } dummy.update_body(); print_stomach_contents( dummy, print_tests ); @@ -295,7 +295,7 @@ TEST_CASE( "hunger" ) } for( int i = 0; i < 16; i++ ) { f = item( "veggy" ); - dummy.eat( f ); + dummy.consume( f ); } dummy.update_body(); print_stomach_contents( dummy, print_tests ); diff --git a/tests/stringmaker.h b/tests/stringmaker.h index 909ab22089c58..f65d7fc3c2450 100644 --- a/tests/stringmaker.h +++ b/tests/stringmaker.h @@ -12,10 +12,17 @@ namespace Catch { +template +struct StringMaker> { + static std::string convert( const string_id &i ) { + return string_format( "string_id( \"%s\" )", i.str() ); + } +}; + template<> struct StringMaker { static std::string convert( const item &i ) { - return string_format( "item( \"%s\" )", i.typeId() ); + return string_format( "item( itype_id( \"%s\" ) )", i.typeId().str() ); } }; diff --git a/tests/temperature_test.cpp b/tests/temperature_test.cpp index ff4b4e6aa3758..012efda58e774 100644 --- a/tests/temperature_test.cpp +++ b/tests/temperature_test.cpp @@ -273,19 +273,19 @@ TEST_CASE( "Temperature controlled location" ) set_map_temperature( 0 ); // -17 C water1.process_temperature_rot( 1, tripoint_zero, nullptr, - temperature_flag::TEMP_HEATER ); + temperature_flag::HEATER ); CHECK( is_nearly( water1.temperature, 100000 * temp_to_kelvin( temperatures::normal ) ) ); calendar::turn = to_turn( calendar::turn + 15_minutes ); water1.process_temperature_rot( 1, tripoint_zero, nullptr, - temperature_flag::TEMP_HEATER ); + temperature_flag::HEATER ); CHECK( is_nearly( water1.temperature, 100000 * temp_to_kelvin( temperatures::normal ) ) ); calendar::turn = to_turn( calendar::turn + 2_hours + 3_minutes ); water1.process_temperature_rot( 1, tripoint_zero, nullptr, - temperature_flag::TEMP_HEATER ); + temperature_flag::HEATER ); CHECK( is_nearly( water1.temperature, 100000 * temp_to_kelvin( temperatures::normal ) ) ); } diff --git a/tests/text_snippets_test.cpp b/tests/text_snippets_test.cpp new file mode 100644 index 0000000000000..b43a2db40fba5 --- /dev/null +++ b/tests/text_snippets_test.cpp @@ -0,0 +1,22 @@ +#include "catch/catch.hpp" +#include "text_snippets.h" + +TEST_CASE( "random_snippet_with_small_seed", "[text_snippets][rng]" ) +{ + const int seed_start = -10; + const int seed_end = 10; + int snip_change = 0; + cata::optional prev_snip; + for( int seed = seed_start; seed <= seed_end; ++seed ) { + const cata::optional snip = SNIPPET.random_from_category( "lab_notes", seed ); + REQUIRE( snip.has_value() ); + if( prev_snip.has_value() && *prev_snip != *snip ) { + snip_change++; + } + prev_snip = snip; + } + // Random snippets change at least 90% of the time when the seed has changed. + // This is a very weak requirement, but should rule out the possibility of + // using `std::minstd_rand0` with `std::uniform_int_distribution`. + CHECK( snip_change >= ( seed_end - seed_start ) * 0.9 ); +} diff --git a/tests/vehicle_drag_test.cpp b/tests/vehicle_drag_test.cpp index ab45b9a7e204f..d749fb75c1498 100644 --- a/tests/vehicle_drag_test.cpp +++ b/tests/vehicle_drag_test.cpp @@ -19,7 +19,7 @@ using efficiency_stat = statistics; -const efftype_id effect_blind( "blind" ); +static const efftype_id effect_blind( "blind" ); static void clear_game_drag( const ter_id &terrain ) { @@ -36,7 +36,6 @@ static void clear_game_drag( const ter_id &terrain ) // Make sure the ST is 8 so that muscle powered results are consistent g->u.str_cur = 8; - clear_vehicles(); build_test_map( terrain ); // hard force a rebuild of caches @@ -46,8 +45,7 @@ static void clear_game_drag( const ter_id &terrain ) static vehicle *setup_drag_test( const vproto_id &veh_id ) { - clear_game_drag( ter_id( "t_pavement" ) ); - + clear_vehicles(); const tripoint map_starting_point( 60, 60, 0 ); vehicle *veh_ptr = g->m.add_vehicle( veh_id, map_starting_point, -90, 0, 0 ); @@ -133,13 +131,11 @@ static void print_drag_test_strings( const std::string &type ) } static void test_vehicle_drag( - std::string type, const double expected_c_air, const double expected_c_rr, + const std::string &type, const double expected_c_air, const double expected_c_rr, const double expected_c_water, const int expected_safe, const int expected_max ) { - SECTION( type ) { - test_drag( vproto_id( type ), expected_c_air, expected_c_rr, expected_c_water, - expected_safe, expected_max, true ); - } + test_drag( vproto_id( type ), expected_c_air, expected_c_rr, expected_c_water, + expected_safe, expected_max, true ); } std::vector vehs_to_test_drag = { @@ -219,6 +215,8 @@ std::vector vehs_to_test_drag = { /** This is even less of a test. It generates C++ lines for the actual test below */ TEST_CASE( "vehicle_drag_calc_baseline", "[.]" ) { + clear_game_drag( ter_id( "t_pavement" ) ); + for( const std::string &veh : vehs_to_test_drag ) { print_drag_test_strings( veh ); } @@ -228,27 +226,29 @@ TEST_CASE( "vehicle_drag_calc_baseline", "[.]" ) // coeffs are dimensionless, speeds are 100ths of mph, so 6101 is 61.01 mph TEST_CASE( "vehicle_drag", "[vehicle] [engine]" ) { - test_vehicle_drag( "bicycle", 0.609525, 0.017205, 43.304167, 2355, 3078 ); - test_vehicle_drag( "bicycle_electric", 0.609525, 0.027581, 69.420833, 2753, 3268 ); + clear_game_drag( ter_id( "t_pavement" ) ); + + test_vehicle_drag( "bicycle", 0.609525, 0.008953, 22.535417, 2360, 3082 ); + test_vehicle_drag( "bicycle_electric", 0.609525, 0.019330, 48.652083, 2756, 3271 ); test_vehicle_drag( "motorcycle", 0.609525, 0.569952, 254.820312, 7296, 8687 ); test_vehicle_drag( "motorcycle_sidecart", 0.880425, 0.859065, 455.206250, 6423, 7657 ); test_vehicle_drag( "quad_bike", 0.537285, 1.112797, 710.745536, 7457, 8918 ); - test_vehicle_drag( "scooter", 0.609525, 0.172681, 130.389583, 4273, 5082 ); - test_vehicle_drag( "scooter_electric", 0.609525, 0.183133, 138.281250, 4825, 5001 ); + test_vehicle_drag( "scooter", 0.609525, 0.154345, 116.543750, 4279, 5088 ); + test_vehicle_drag( "scooter_electric", 0.609525, 0.164796, 124.435417, 4831, 5006 ); test_vehicle_drag( "superbike", 0.609525, 0.846042, 378.257812, 9912, 11797 ); - test_vehicle_drag( "tandem", 0.609525, 0.021592, 40.759375, 2353, 3076 ); + test_vehicle_drag( "tandem", 0.609525, 0.010590, 19.990625, 2359, 3081 ); test_vehicle_drag( "unicycle", 0.690795, 0.002493, 25.100000, 2266, 2958 ); test_vehicle_drag( "beetle", 0.785610, 1.800385, 1274.482813, 8969, 10711 ); - test_vehicle_drag( "bubble_car", 0.823987, 1.918740, 1293.586310, 9280, 9627 ); + test_vehicle_drag( "bubble_car", 0.823987, 1.764712, 1189.742560, 9304, 9651 ); test_vehicle_drag( "car", 0.294604, 2.473484, 1167.310417, 11916, 14350 ); test_vehicle_drag( "car_mini", 0.294604, 1.816015, 1285.546875, 12157, 14580 ); test_vehicle_drag( "car_sports", 0.294604, 2.547639, 1442.767500, 20848, 24904 ); test_vehicle_drag( "car_sports_atomic", 0.294604, 3.788275, 1787.798958, 23696, 24593 ); - test_vehicle_drag( "car_sports_electric", 0.294604, 3.397004, 1923.776250, 23815, 24712 ); - test_vehicle_drag( "electric_car", 0.304763, 2.485556, 1173.007292, 16208, 16826 ); - test_vehicle_drag( "rara_x", 0.880425, 2.267517, 1180.809267, 8353, 8670 ); + test_vehicle_drag( "car_sports_electric", 0.294604, 3.279649, 1857.316250, 23851, 24748 ); + test_vehicle_drag( "electric_car", 0.304763, 2.309523, 1089.932292, 16266, 16883 ); + test_vehicle_drag( "rara_x", 0.880425, 2.068105, 1076.965517, 8383, 8699 ); test_vehicle_drag( "suv", 0.294604, 2.914201, 1178.826786, 13988, 16827 ); - test_vehicle_drag( "suv_electric", 0.304763, 2.667296, 1078.950893, 16149, 16767 ); + test_vehicle_drag( "suv_electric", 0.304763, 2.461925, 995.875893, 16216, 16833 ); test_vehicle_drag( "golf_cart", 0.943313, 1.472114, 926.312500, 7039, 7303 ); test_vehicle_drag( "golf_cart_4seat", 0.943313, 1.439476, 905.775000, 7044, 7308 ); test_vehicle_drag( "hearse", 0.355556, 3.216780, 1301.223214, 11046, 13340 ); @@ -292,8 +292,8 @@ TEST_CASE( "vehicle_drag", "[vehicle] [engine]" ) test_vehicle_drag( "security_van", 0.541800, 7.617575, 6252.103125, 11074, 13079 ); test_vehicle_drag( "wienermobile", 1.063697, 2.385608, 1957.981250, 11253, 13409 ); test_vehicle_drag( "canoe", 0.609525, 7.741047, 2.191938, 298, 628 ); - test_vehicle_drag( "kayak", 0.609525, 4.036067, 1.523792, 544, 1067 ); - test_vehicle_drag( "kayak_racing", 0.609525, 3.704980, 1.398792, 586, 1133 ); + test_vehicle_drag( "kayak", 0.609525, 2.935863, 1.108417, 710, 1314 ); + test_vehicle_drag( "kayak_racing", 0.609525, 2.604776, 0.983417, 779, 1406 ); test_vehicle_drag( "DUKW", 0.776902, 3.850773, 83.288765, 10283, 12339 ); test_vehicle_drag( "raft", 0.997815, 9.743243, 5.517750, 239, 508 ); test_vehicle_drag( "inflatable_boat", 0.469560, 3.616690, 2.048188, 602, 1173 ); diff --git a/tests/vehicle_efficiency_test.cpp b/tests/vehicle_efficiency_test.cpp index 12d41193eebaa..50437ff9686d0 100644 --- a/tests/vehicle_efficiency_test.cpp +++ b/tests/vehicle_efficiency_test.cpp @@ -32,7 +32,7 @@ using efficiency_stat = statistics; -const efftype_id effect_blind( "blind" ); +static const efftype_id effect_blind( "blind" ); static void clear_game( const ter_id &terrain ) { @@ -70,13 +70,13 @@ static std::map set_vehicle_fuel( vehicle &v, const float veh_fue } // We ignore battery when setting fuel because it uses designated "tanks" - actually_used.erase( "battery" ); + actually_used.erase( itype_id( "battery" ) ); // Currently only one liquid fuel supported REQUIRE( actually_used.size() <= 1 ); - itype_id liquid_fuel = "null"; + itype_id liquid_fuel = itype_id::NULL_ID(); for( const auto &ft : actually_used ) { - if( item::find_type( ft )->phase == LIQUID ) { + if( item::find_type( ft )->phase == phase_id::LIQUID ) { liquid_fuel = ft; break; } @@ -85,14 +85,16 @@ static std::map set_vehicle_fuel( vehicle &v, const float veh_fue // Set fuel to a given percentage // Batteries are special cased because they aren't liquid fuel std::map ret; + const itype_id itype_battery( "battery" ); + const ammotype ammo_battery( "battery" ); for( const vpart_reference vp : v.get_all_parts() ) { vehicle_part &pt = vp.part(); if( pt.is_battery() ) { - pt.ammo_set( "battery", pt.ammo_capacity() * veh_fuel_mult ); - ret[ "battery" ] += pt.ammo_capacity() * veh_fuel_mult; - } else if( pt.is_tank() && liquid_fuel != "null" ) { - float qty = pt.ammo_capacity() * veh_fuel_mult; + pt.ammo_set( itype_battery, pt.ammo_capacity( ammo_battery ) * veh_fuel_mult ); + ret[itype_battery] += pt.ammo_capacity( ammo_battery ) * veh_fuel_mult; + } else if( pt.is_tank() && !liquid_fuel.is_null() ) { + float qty = pt.ammo_capacity( item::find_type( liquid_fuel )->ammo->type ) * veh_fuel_mult; qty *= std::max( item::find_type( liquid_fuel )->stack_size, 1 ); qty /= to_milliliter( units::legacy_volume_factor ); pt.ammo_set( liquid_fuel, qty ); @@ -103,7 +105,7 @@ static std::map set_vehicle_fuel( vehicle &v, const float veh_fue } // We re-add battery because we want it accounted for, just not in the section above - actually_used.insert( "battery" ); + actually_used.insert( itype_id( "battery" ) ); for( auto iter = ret.begin(); iter != ret.end(); ) { if( iter->second <= 0 || actually_used.count( iter->first ) == 0 ) { iter = ret.erase( iter ); @@ -124,11 +126,11 @@ static float fuel_percentage_left( vehicle &v, const std::map &st vehicle_part &pt = vp.part(); if( ( pt.is_battery() || pt.is_reactor() || pt.is_tank() ) && - pt.ammo_current() != "null" ) { + !pt.ammo_current().is_null() ) { fuel_amount[ pt.ammo_current() ] += pt.ammo_remaining(); } - if( pt.is_engine() && pt.info().fuel_type != "null" ) { + if( pt.is_engine() && !pt.info().fuel_type.is_null() ) { consumed_fuels.insert( pt.info().fuel_type ); } } @@ -333,7 +335,7 @@ static void print_test_strings( const std::string &type ) } static void test_vehicle( - std::string type, int expected_mass, + const std::string &type, int expected_mass, const int pavement_target, const int dirt_target, const int pavement_target_w_stops, const int dirt_target_w_stops, const int pavement_target_smooth_stops = 0, const int dirt_target_smooth_stops = 0 ) @@ -413,14 +415,14 @@ TEST_CASE( "vehicle_make_efficiency_case", "[.]" ) // Fix test for electric vehicles TEST_CASE( "vehicle_efficiency", "[vehicle] [engine]" ) { - test_vehicle( "beetle", 815669, 277800, 211800, 70490, 53160 ); + test_vehicle( "beetle", 816469, 277800, 211800, 70490, 53160 ); test_vehicle( "car", 1120618, 473700, 277500, 45440, 25170 ); - test_vehicle( "car_sports", 1154214, 360300, 260700, 36450, 20770 ); - test_vehicle( "electric_car", 1126087, 213400, 116100, 16900, 8492 ); + test_vehicle( "car_sports", 1155014, 360300, 260700, 36420, 20740 ); + test_vehicle( "electric_car", 1047135, 220900, 127900, 18490, 9907 ); test_vehicle( "suv", 1320286, 902100, 451700, 67740, 30810 ); test_vehicle( "motorcycle", 163085, 74030, 61180, 46200, 38100 ); test_vehicle( "quad_bike", 265345, 73170, 73170, 34300, 34300 ); - test_vehicle( "scooter", 62587, 228800, 216400, 170200, 161900 ); + test_vehicle( "scooter", 55941, 229200, 229200, 174700, 174700 ); test_vehicle( "superbike", 242085, 68580, 45170, 33670, 21220 ); test_vehicle( "ambulance", 1839299, 404800, 323500, 62240, 43840 ); test_vehicle( "fire_engine", 2628611, 1136000, 924100, 242300, 209600 ); diff --git a/tests/vehicle_power_test.cpp b/tests/vehicle_power_test.cpp index 0729c45afa4a4..79a5d8d546da1 100644 --- a/tests/vehicle_power_test.cpp +++ b/tests/vehicle_power_test.cpp @@ -37,7 +37,6 @@ TEST_CASE( "vehicle power with reactor and solar panels", "[vehicle][power]" ) const tripoint reactor_origin = tripoint( 10, 10, 0 ); vehicle *veh_ptr = g->m.add_vehicle( vproto_id( "reactor_test" ), reactor_origin, 0, 0, 0 ); REQUIRE( veh_ptr != nullptr ); - g->refresh_all(); REQUIRE( !veh_ptr->reactors.empty() ); vehicle_part &reactor = veh_ptr->parts[ veh_ptr->reactors.front() ]; @@ -66,7 +65,6 @@ TEST_CASE( "vehicle power with reactor and solar panels", "[vehicle][power]" ) const tripoint solar_origin = tripoint( 5, 5, 0 ); vehicle *veh_ptr = g->m.add_vehicle( vproto_id( "solar_panel_test" ), solar_origin, 0, 0, 0 ); REQUIRE( veh_ptr != nullptr ); - g->refresh_all(); GIVEN( "it is 3 hours after sunrise, with sunny weather" ) { calendar::turn = calendar::turn_zero + calendar::season_length() + 1_days; @@ -131,7 +129,6 @@ TEST_CASE( "maximum reverse velocity", "[vehicle][power][reverse]" ) const tripoint origin = tripoint( 10, 0, 0 ); vehicle *veh_ptr = g->m.add_vehicle( vproto_id( "scooter_test" ), origin, 0, 0, 0 ); REQUIRE( veh_ptr != nullptr ); - g->refresh_all(); veh_ptr->charge_battery( 500 ); REQUIRE( veh_ptr->fuel_left( fuel_type_battery ) == 500 ); @@ -157,7 +154,6 @@ TEST_CASE( "maximum reverse velocity", "[vehicle][power][reverse]" ) const tripoint origin = tripoint( 15, 0, 0 ); vehicle *veh_ptr = g->m.add_vehicle( vproto_id( "scooter_electric_test" ), origin, 0, 0, 0 ); REQUIRE( veh_ptr != nullptr ); - g->refresh_all(); veh_ptr->charge_battery( 5000 ); REQUIRE( veh_ptr->fuel_left( fuel_type_battery ) == 5000 ); diff --git a/tests/vehicle_split_test.cpp b/tests/vehicle_split_test.cpp index 1f3a022d82b5c..100c5cbe047fa 100644 --- a/tests/vehicle_split_test.cpp +++ b/tests/vehicle_split_test.cpp @@ -23,7 +23,6 @@ TEST_CASE( "vehicle_split_section" ) veh_ptr = vehs_v.v; g->m.destroy_vehicle( veh_ptr ); } - g->refresh_all(); REQUIRE( g->m.get_vehicles().empty() ); veh_ptr = g->m.add_vehicle( vproto_id( "cross_split_test" ), vehicle_origin, dir, 0, 0 ); REQUIRE( veh_ptr != nullptr ); @@ -65,7 +64,6 @@ TEST_CASE( "vehicle_split_section" ) g->m.destroy_vehicle( vehs[ 1 ].v ); g->m.destroy_vehicle( vehs[ 0 ].v ); } - g->refresh_all(); REQUIRE( g->m.get_vehicles().empty() ); vehicle_origin = tripoint( 20, 20, 0 ); veh_ptr = g->m.add_vehicle( vproto_id( "circle_split_test" ), vehicle_origin, dir, 0, 0 ); diff --git a/tests/vehicle_test.cpp b/tests/vehicle_test.cpp index 69f237c551691..b2e255bb83729 100644 --- a/tests/vehicle_test.cpp +++ b/tests/vehicle_test.cpp @@ -35,14 +35,14 @@ TEST_CASE( "destroy_grabbed_vehicle_section" ) vehicle *veh_ptr = g->m.add_vehicle( vproto_id( "bicycle" ), vehicle_origin, -90, 0, 0 ); REQUIRE( veh_ptr != nullptr ); tripoint grab_point = test_origin + tripoint_east; - g->u.grab( OBJECT_VEHICLE, grab_point ); - REQUIRE( g->u.get_grab_type() != OBJECT_NONE ); + g->u.grab( object_type::VEHICLE, grab_point ); + REQUIRE( g->u.get_grab_type() != object_type::NONE ); REQUIRE( g->u.grab_point == grab_point ); WHEN( "The vehicle section grabbed by the player is destroyed" ) { g->m.destroy( grab_point ); REQUIRE( veh_ptr->get_parts_at( grab_point, "", part_status_flag::available ).empty() ); THEN( "The player's grab is released" ) { - CHECK( g->u.get_grab_type() == OBJECT_NONE ); + CHECK( g->u.get_grab_type() == object_type::NONE ); CHECK( g->u.grab_point == tripoint_zero ); } } diff --git a/tests/vehicle_turrets_test.cpp b/tests/vehicle_turrets_test.cpp index 4927d9145bf9d..25b7e5e92b93c 100644 --- a/tests/vehicle_turrets_test.cpp +++ b/tests/vehicle_turrets_test.cpp @@ -72,7 +72,8 @@ TEST_CASE( "vehicle_turret", "[vehicle] [gun] [magazine] [.]" ) REQUIRE( veh->install_part( point_zero, vpart_id( "storage_battery" ), true ) >= 0 ); veh->charge_battery( 10000 ); - auto ammo = ammotype( veh->turret_query( veh->parts[idx] ).base()->ammo_default() ); + auto ammo = + ammotype( veh->turret_query( veh->parts[idx] ).base()->ammo_default().str() ); if( veh->part_flag( idx, "USE_TANKS" ) ) { auto *tank = biggest_tank( ammo ); diff --git a/tests/vision_test.cpp b/tests/vision_test.cpp index 22bf0e25480e5..a9d218973675b 100644 --- a/tests/vision_test.cpp +++ b/tests/vision_test.cpp @@ -23,6 +23,10 @@ #include "shadowcasting.h" #include "type_id.h" +static const move_mode_id move_mode_walk( "walk" ); +static const move_mode_id move_mode_run( "run" ); +static const move_mode_id move_mode_crouch( "crouch" ); + enum class vision_test_flags { none = 0, no_3d = 1 << 0, @@ -51,7 +55,6 @@ static void full_map_test( const std::vector &setup, const ter_id t_utility_light( "t_utility_light" ); const efftype_id effect_narcosis( "narcosis" ); const ter_id t_flat_roof( "t_flat_roof" ); - const ter_id t_open_air( "t_open_air" ); g->place_player( tripoint( 60, 60, 0 ) ); g->u.worn.clear(); // Remove any light-emitting clothing @@ -60,9 +63,9 @@ static void full_map_test( const std::vector &setup, g->reset_light_level(); if( !!( flags & vision_test_flags::crouching ) ) { - g->u.set_movement_mode( character_movemode::CMM_CROUCH ); + g->u.set_movement_mode( move_mode_crouch ); } else { - g->u.set_movement_mode( character_movemode::CMM_WALK ); + g->u.set_movement_mode( move_mode_walk ); } REQUIRE( !g->u.is_blind() ); @@ -96,6 +99,9 @@ static void full_map_test( const std::vector &setup, origin = g->u.pos() - point( x, y ); if( setup[y][x] == 'V' ) { item headlamp( "wearable_light_on" ); + item battery( "light_battery_cell" ); + battery.ammo_set( battery.ammo_default(), -1 ); + headlamp.put_in( battery, item_pocket::pocket_type::MAGAZINE_WELL ); g->u.worn.push_back( headlamp ); } break; diff --git a/tests/visitable_remove_test.cpp b/tests/visitable_remove_test.cpp index 324bbc172abf4..696208e169996 100644 --- a/tests/visitable_remove_test.cpp +++ b/tests/visitable_remove_test.cpp @@ -38,9 +38,9 @@ static int count_items( const T &src, const itype_id &id ) TEST_CASE( "visitable_remove", "[visitable]" ) { - const std::string liquid_id = "water"; - const std::string container_id = "bottle_plastic"; - const std::string worn_id = "flask_hip"; + const itype_id liquid_id( "water" ); + const itype_id container_id( "bottle_plastic" ); + const itype_id worn_id( "flask_hip" ); const int count = 5; REQUIRE( item( container_id ).is_container() ); @@ -499,10 +499,10 @@ TEST_CASE( "inventory_remove_invalidates_binning_cache", "[visitable][inventory] inventory inv; std::list items = { item( "bone" ) }; inv += items; - CHECK( inv.charges_of( "bone" ) == 1 ); + CHECK( inv.charges_of( itype_id( "bone" ) ) == 1 ); inv.remove_items_with( return_true ); CHECK( inv.size() == 0 ); // The following used to be a heap use-after-free due to a caching bug. // Now should be safe. - CHECK( inv.charges_of( "bone" ) == 0 ); + CHECK( inv.charges_of( itype_id( "bone" ) ) == 0 ); } diff --git a/tests/visitable_test.cpp b/tests/visitable_test.cpp index bd72d18afb0f9..eea64b80f3042 100644 --- a/tests/visitable_test.cpp +++ b/tests/visitable_test.cpp @@ -16,5 +16,5 @@ TEST_CASE( "visitable_summation" ) const item unlimited_water( "water", 0, item::INFINITE_CHARGES ); test_inv.add_item( unlimited_water ); - CHECK( test_inv.charges_of( "water", item::INFINITE_CHARGES ) > 1 ); + CHECK( test_inv.charges_of( itype_id( "water" ), item::INFINITE_CHARGES ) > 1 ); } diff --git a/tests/wield_times_test.cpp b/tests/wield_times_test.cpp index d066e55d2aab1..a1fcebdaacc99 100644 --- a/tests/wield_times_test.cpp +++ b/tests/wield_times_test.cpp @@ -31,7 +31,7 @@ static void wield_check_from_inv( avatar &guy, const itype_id &item_name, const guy.set_moves( 1000 ); const int old_moves = guy.moves; - REQUIRE( guy.wield( *item_loc ) ); + REQUIRE( guy.wield( item_loc ) ); CAPTURE( guy.weapon.typeId() ); int move_cost = old_moves - guy.moves; @@ -79,25 +79,20 @@ TEST_CASE( "Wield time test", "[wield]" ) item_location knife_loc( sheath_loc, &sheath_loc->contents.only_item() ); const int knife_obtain_cost = knife_loc.obtain_cost( guy ); - const int total_obtain_cost = sheath_loc->contents.obtain_cost( *knife_loc ) + - cargo_pants_loc->contents.obtain_cost( *sheath_loc ) + - plastic_bag_loc->contents.obtain_cost( *cargo_pants_loc ) + - backpack_loc->contents.obtain_cost( *plastic_bag_loc ) + - backpack_loc.obtain_cost( guy ); - REQUIRE( knife_obtain_cost == total_obtain_cost ); + REQUIRE( knife_obtain_cost == 1257 ); } SECTION( "Wielding without hand encumbrance" ) { avatar guy; clear_character( guy ); - wield_check_from_inv( guy, "halberd", 287 ); + wield_check_from_inv( guy, itype_id( "halberd" ), 612 ); clear_character( guy ); - wield_check_from_inv( guy, "aspirin", 100 ); + wield_check_from_inv( guy, itype_id( "aspirin" ), 375 ); clear_character( guy ); - wield_check_from_inv( guy, "knife_combat", 125 ); + wield_check_from_inv( guy, itype_id( "knife_combat" ), 412 ); clear_character( guy ); - wield_check_from_ground( guy, "metal_tank", 300 ); + wield_check_from_ground( guy, itype_id( "metal_tank" ), 300 ); clear_character( guy ); } } diff --git a/tools/clang-tidy-plugin/CMakeLists.txt b/tools/clang-tidy-plugin/CMakeLists.txt index 969b8617c79b8..f6c7803b0e301 100644 --- a/tools/clang-tidy-plugin/CMakeLists.txt +++ b/tools/clang-tidy-plugin/CMakeLists.txt @@ -13,6 +13,7 @@ add_library( NoStaticGettextCheck.cpp PointInitializationCheck.cpp SimplifyPointConstructorsCheck.cpp + StaticStringIdConstantsCheck.cpp StringLiteralIterator.cpp TestFilenameCheck.cpp TextStyleCheck.cpp diff --git a/tools/clang-tidy-plugin/CataTidyModule.cpp b/tools/clang-tidy-plugin/CataTidyModule.cpp index cd8666dcc28c6..e9030c885e513 100644 --- a/tools/clang-tidy-plugin/CataTidyModule.cpp +++ b/tools/clang-tidy-plugin/CataTidyModule.cpp @@ -9,6 +9,7 @@ #include "NoStaticGettextCheck.h" #include "PointInitializationCheck.h" #include "SimplifyPointConstructorsCheck.h" +#include "StaticStringIdConstantsCheck.h" #include "TestFilenameCheck.h" #include "TextStyleCheck.h" #include "TranslatorCommentsCheck.h" @@ -37,6 +38,8 @@ class CataModule : public ClangTidyModule CheckFactories.registerCheck( "cata-point-initialization" ); CheckFactories.registerCheck( "cata-simplify-point-constructors" ); + CheckFactories.registerCheck( + "cata-static-string_id-constants" ); CheckFactories.registerCheck( "cata-test-filename" ); CheckFactories.registerCheck( "cata-text-style" ); CheckFactories.registerCheck( "cata-translator-comments" ); diff --git a/tools/clang-tidy-plugin/StaticStringIdConstantsCheck.cpp b/tools/clang-tidy-plugin/StaticStringIdConstantsCheck.cpp new file mode 100644 index 0000000000000..6aad8e9748268 --- /dev/null +++ b/tools/clang-tidy-plugin/StaticStringIdConstantsCheck.cpp @@ -0,0 +1,209 @@ +#include "StaticStringIdConstantsCheck.h" +#include "Utils.h" +#include + +using namespace clang::ast_matchers; + +namespace clang +{ +namespace tidy +{ +namespace cata +{ + +static auto isStringIdType() +{ + return cxxRecordDecl( hasName( "string_id" ) ); +} + +static auto isStringIdConstructor() +{ + return cxxConstructorDecl( ofClass( isStringIdType() ) ); +} + +static auto isStringIdConstructExpr() +{ + return cxxConstructExpr( + hasDeclaration( isStringIdConstructor().bind( "constructorDecl" ) ), + testWhetherConstructingTemporary(), + testWhetherParentIsVarDecl(), + testWhetherGrandparentIsTranslationUnitDecl(), + hasArgument( 0, stringLiteral().bind( "arg" ) ) + ).bind( "constructorCall" ); +} + +void StaticStringIdConstantsCheck::registerMatchers( MatchFinder *Finder ) +{ + Finder->addMatcher( + isStringIdConstructExpr(), + this + ); + Finder->addMatcher( + declRefExpr( + hasDeclaration( varDecl( hasInitializer( isStringIdConstructExpr() ) ) ) + ).bind( "declRef" ), + this + ); +} + +static std::string GetPrefixFor( const CXXRecordDecl *Type ) +{ + const ClassTemplateSpecializationDecl *CTSDecl = + dyn_cast( Type ); + QualType ArgType = CTSDecl->getTemplateArgs()[0].getAsType(); + PrintingPolicy Policy( LangOptions{} ); + Policy.SuppressTagKeyword = true; + std::string TypeName = ArgType.getAsString( Policy ); + + static const std::unordered_map HardcodedPrefixes = { + { "activity_type", "" }, + { "ammunition_type", "ammo_" }, + { "bionic_data", "" }, + { "fault", "" }, + { "ma_technique", "" }, + { "martialart", "" }, + { "MonsterGroup", "" }, + { "morale_type_data", "" }, + { "mtype", "" }, + { "mutation_branch", "trait_" }, + { "npc_class", "" }, + { "quality", "qual_" }, + { "Skill", "skill_" }, + { "ter_t", "ter_" }, + { "trap", "" }, + { "zone_type", "zone_type_" }, + }; + + auto HardcodedPrefix = HardcodedPrefixes.find( TypeName ); + if( HardcodedPrefix != HardcodedPrefixes.end() ) { + return HardcodedPrefix->second; + } + + for( const char *Suffix : { + "_type", "_info" + } ) { + if( StringRef( TypeName ).endswith( Suffix ) ) { + TypeName.erase( TypeName.end() - strlen( Suffix ), TypeName.end() ); + } + } + + return TypeName + "_"; +} + +static std::string GetCanonicalName( const CXXRecordDecl *Type, const StringRef &Id ) +{ + std::string Result = ( GetPrefixFor( Type ) + Id ).str(); + + for( char &c : Result ) { + if( !isalnum( c ) ) { + c = '_'; + } + } + + return Result; +} + +static void CheckConstructor( StaticStringIdConstantsCheck &Check, + const MatchFinder::MatchResult &Result ) +{ + const CXXConstructExpr *ConstructorCall = + Result.Nodes.getNodeAs( "constructorCall" ); + const CXXConstructorDecl *ConstructorDecl = + Result.Nodes.getNodeAs( "constructorDecl" ); + const StringLiteral *Arg = Result.Nodes.getNodeAs( "arg" ); + const VarDecl *VarDeclParent = Result.Nodes.getNodeAs( "parentVarDecl" ); + const TranslationUnitDecl *TranslationUnit = + Result.Nodes.getNodeAs( "grandparentTranslationUnit" ); + if( !ConstructorCall || !ConstructorDecl || !Arg ) { + return; + } + + const SourceManager &SM = *Result.SourceManager; + + // Ignore cases in header files for now + if( !SM.isInMainFile( ConstructorCall->getBeginLoc() ) ) { + return; + } + + std::string CanonicalName = GetCanonicalName( ConstructorDecl->getParent(), Arg->getString() ); + + if( VarDeclParent && TranslationUnit ) { + const VarDecl *PreviousDecl = dyn_cast_or_null( VarDeclParent->getPreviousDecl() ); + bool PreviousDeclIsExtern = + PreviousDecl ? PreviousDecl->getStorageClass() == SC_Extern : false; + + // This is already a global-scope declaration. Verify that it's const + // and static. + if( !VarDeclParent->getType().isConstQualified() ) { + Check.diag( + ConstructorCall->getBeginLoc(), + "Global declaration of %0 should be const." + ) << VarDeclParent << + FixItHint::CreateInsertion( VarDeclParent->getTypeSpecStartLoc(), "const " ); + } else if( VarDeclParent->getStorageClass() != SC_Static && !PreviousDeclIsExtern ) { + Check.diag( + ConstructorCall->getBeginLoc(), + "Global declaration of %0 should be static." + ) << VarDeclParent << + FixItHint::CreateInsertion( VarDeclParent->getSourceRange().getBegin(), "static " ); + } + std::string CurrentName = VarDeclParent->getNameAsString(); + if( CurrentName != CanonicalName && + !PreviousDeclIsExtern && + !StringRef( CurrentName ).startswith( "fuel_type_" ) ) { + SourceRange Range = DeclarationNameInfo( + VarDeclParent->getDeclName(), VarDeclParent->getLocation() ).getSourceRange(); + Check.diag( + ConstructorCall->getBeginLoc(), + "Declaration of string_id %0 should be named '%1'." + ) << VarDeclParent << CanonicalName << + FixItHint::CreateReplacement( Range, CanonicalName ); + } + return; + } +} + +static void CheckDeclRef( StaticStringIdConstantsCheck &Check, + const MatchFinder::MatchResult &Result ) +{ + const DeclRefExpr *Ref = Result.Nodes.getNodeAs( "declRef" ); + const CXXConstructorDecl *ConstructorDecl = + Result.Nodes.getNodeAs( "constructorDecl" ); + const StringLiteral *Arg = Result.Nodes.getNodeAs( "arg" ); + const VarDecl *VarDeclParent = Result.Nodes.getNodeAs( "parentVarDecl" ); + const TranslationUnitDecl *TranslationUnit = + Result.Nodes.getNodeAs( "grandparentTranslationUnit" ); + + if( !Ref || !ConstructorDecl || !Arg || !VarDeclParent || !TranslationUnit ) { + return; + } + + const SourceManager &SM = *Result.SourceManager; + + // Ignore cases in header files for now + if( !SM.isInMainFile( VarDeclParent->getBeginLoc() ) ) { + return; + } + + std::string CanonicalName = GetCanonicalName( ConstructorDecl->getParent(), Arg->getString() ); + std::string CurrentName = VarDeclParent->getNameAsString(); + + if( CurrentName != CanonicalName && + !StringRef( CurrentName ).startswith( "fuel_type_" ) ) { + Check.diag( + Ref->getBeginLoc(), + "Use of string_id %0 should be named '%1'." + ) << Ref->getDecl() << CanonicalName << + FixItHint::CreateReplacement( Ref->getSourceRange(), CanonicalName ); + } +} + +void StaticStringIdConstantsCheck::check( const MatchFinder::MatchResult &Result ) +{ + CheckConstructor( *this, Result ); + CheckDeclRef( *this, Result ); +} + +} // namespace cata +} // namespace tidy +} // namespace clang diff --git a/tools/clang-tidy-plugin/StaticStringIdConstantsCheck.h b/tools/clang-tidy-plugin/StaticStringIdConstantsCheck.h new file mode 100644 index 0000000000000..7a56037f0ace3 --- /dev/null +++ b/tools/clang-tidy-plugin/StaticStringIdConstantsCheck.h @@ -0,0 +1,32 @@ +#ifndef CATA_TOOLS_CLANG_TIDY_PLUGIN_STATICSTRINGIDCONSTANTSCHECK_H +#define CATA_TOOLS_CLANG_TIDY_PLUGIN_STATICSTRINGIDCONSTANTSCHECK_H + +#include +#include + +#include "ClangTidy.h" + +namespace clang +{ + +namespace tidy +{ +class ClangTidyContext; + +namespace cata +{ + +class StaticStringIdConstantsCheck : public ClangTidyCheck +{ + public: + StaticStringIdConstantsCheck( StringRef Name, ClangTidyContext *Context ) + : ClangTidyCheck( Name, Context ) {} + void registerMatchers( ast_matchers::MatchFinder *Finder ) override; + void check( const ast_matchers::MatchFinder::MatchResult &Result ) override; +}; + +} // namespace cata +} // namespace tidy +} // namespace clang + +#endif // CATA_TOOLS_CLANG_TIDY_PLUGIN_STATICSTRINGIDCONSTANTSCHECK_H diff --git a/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.cpp b/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.cpp index 3bcb644202402..cb244c2ddee6e 100644 --- a/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.cpp +++ b/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.cpp @@ -44,16 +44,6 @@ static auto isInteger( const std::string &bind ) ).bind( bind ); } -static auto testWhetherParentIsVarDecl() -{ - return expr( - anyOf( - hasParent( varDecl().bind( "parentVarDecl" ) ), - anything() - ) - ); -} - void UseNamedPointConstantsCheck::registerMatchers( MatchFinder *Finder ) { Finder->addMatcher( diff --git a/tools/clang-tidy-plugin/Utils.h b/tools/clang-tidy-plugin/Utils.h index 063db1b52e15f..3f869bd169224 100644 --- a/tools/clang-tidy-plugin/Utils.h +++ b/tools/clang-tidy-plugin/Utils.h @@ -107,6 +107,32 @@ inline auto testWhetherConstructingTemporary() ); } +inline auto testWhetherParentIsVarDecl() +{ + using namespace clang::ast_matchers; + return expr( + anyOf( + hasParent( varDecl().bind( "parentVarDecl" ) ), + anything() + ) + ); +} + +inline auto testWhetherGrandparentIsTranslationUnitDecl() +{ + using namespace clang::ast_matchers; + return expr( + anyOf( + hasParent( + varDecl( + hasParent( translationUnitDecl().bind( "grandparentTranslationUnit" ) ) + ) + ), + anything() + ) + ); +} + inline auto isXParam() { using namespace clang::ast_matchers; diff --git a/tools/clang-tidy-plugin/XYCheck.cpp b/tools/clang-tidy-plugin/XYCheck.cpp index d762a48ef3feb..4fb02abe4793f 100644 --- a/tools/clang-tidy-plugin/XYCheck.cpp +++ b/tools/clang-tidy-plugin/XYCheck.cpp @@ -53,6 +53,9 @@ static void CheckField( XYCheck &Check, const MatchFinder::MatchResult &Result ) return; } const NameConvention NameMatcher( XVar->getName() ); + if( !NameMatcher ) { + return; + } if( NameMatcher.Match( YVar->getName() ) != NameConvention::YName ) { return; } diff --git a/tools/clang-tidy-plugin/test/static-string_id-constants.cpp b/tools/clang-tidy-plugin/test/static-string_id-constants.cpp new file mode 100644 index 0000000000000..6157040975a9d --- /dev/null +++ b/tools/clang-tidy-plugin/test/static-string_id-constants.cpp @@ -0,0 +1,62 @@ +// RUN: %check_clang_tidy %s cata-static-string_id-constants %t -- -plugins=%cata_plugin -- -isystem %cata_include + +template +class string_id +{ + public: + template + explicit string_id( S &&, int cid = -1 ) { + } +}; + +class activity_type; +using activity_id = string_id; + +struct bionic_data; +using bionic_id = string_id; + +struct construction_category; +using construction_category_id = string_id; + +class effect_type; +using efftype_id = string_id; + +struct MonsterGroup; +using mongroup_id = string_id; + +class scent_type; +using scenttype_id = string_id; + +static const construction_category_id construction_cat_FILTER( "FILTER" ); +// CHECK-MESSAGES: warning: Declaration of string_id 'construction_cat_FILTER' should be named 'construction_category_FILTER'. [cata-static-string_id-constants] +// CHECK-FIXES: static const construction_category_id construction_category_FILTER( "FILTER" ); +const efftype_id effect_sleep( "sleep" ); +// CHECK-MESSAGES: warning: Global declaration of 'effect_sleep' should be static. [cata-static-string_id-constants] +// CHECK-FIXES: static const efftype_id effect_sleep( "sleep" ); + +// Don't suggest static if there is a prior extern decl +extern const efftype_id effect_hallu; +const efftype_id effect_hallu( "hallu" ); + +static scenttype_id scent_human( "human" ); +// CHECK-MESSAGES: warning: Global declaration of 'scent_human' should be const. [cata-static-string_id-constants] +// CHECK-FIXES: static const scenttype_id scent_human( "human" ); + +// Verify than non-alphanumerics are replaced by underscores +static const mongroup_id MI_GO_CAMP_OM( "GROUP_MI-GO_CAMP_OM" ); +// CHECK-MESSAGES: warning: Declaration of string_id 'MI_GO_CAMP_OM' should be named 'GROUP_MI_GO_CAMP_OM'. [cata-static-string_id-constants] +// CHECK-FIXES: static const mongroup_id GROUP_MI_GO_CAMP_OM( "GROUP_MI-GO_CAMP_OM" ); + +activity_id f() +{ + efftype_id effect( "sleep" ); + // Uses of local variables should not be renamed + ( void )effect; + const bionic_id bio_cloak( "bio_cloak" ); + // CH/ECK-MESSAGES: warning: Construction of 'const bionic_id' (aka 'const string_id') from string literal should be global static constant. [cata-static-string_id-constants] + ( void )construction_cat_FILTER; + // CHECK-MESSAGES: warning: Use of string_id 'construction_cat_FILTER' should be named 'construction_category_FILTER'. [cata-static-string_id-constants] + // CHECK-FIXES: ( void )construction_category_FILTER; + return activity_id( "ACT_WASH" ); + // CH/ECK-MESSAGES: warning: Construction of 'activity_id' (aka 'string_id') from string literal should be global static constant. [cata-static-string_id-constants] +} diff --git a/tools/clang-tidy-plugin/test/xy-fields.cpp b/tools/clang-tidy-plugin/test/xy-fields.cpp index 8b089ecf7186f..a81ddd4b643fe 100644 --- a/tools/clang-tidy-plugin/test/xy-fields.cpp +++ b/tools/clang-tidy-plugin/test/xy-fields.cpp @@ -55,3 +55,11 @@ struct D { float x; float y; }; + +struct E { + // Verify that there is not warning for this case, which was causing a + // false positive + int text_x_start; + int text_x_end; + int y; +}; diff --git a/tools/format/format.cpp b/tools/format/format.cpp index f661c172f8163..69c9f99fc7df5 100644 --- a/tools/format/format.cpp +++ b/tools/format/format.cpp @@ -63,7 +63,7 @@ static void write_object( JsonIn &jsin, JsonOut &jsout, int depth, bool force_wr } static void format_collection( JsonIn &jsin, JsonOut &jsout, int depth, - std::functionwrite_func, + const std::function &write_func, bool force_wrap ) { if( depth > 1 && !force_wrap ) { @@ -198,7 +198,7 @@ int main( int argc, char *argv[] ) header = "Content-type: application/json\n\n"; } - if( in.str().size() == 0 ) { + if( in.str().empty() ) { std::cout << "Error, input empty." << std::endl; exit( EXIT_FAILURE ); } @@ -223,11 +223,9 @@ int main( int argc, char *argv[] ) #else bool supports_color = isatty( STDOUT_FILENO ); #endif - std::string color_good = supports_color ? "\x1b[32m" : std::string(); std::string color_bad = supports_color ? "\x1b[31m" : std::string(); std::string color_end = supports_color ? "\x1b[0m" : std::string(); if( in_str == out.str() ) { - std::cout << color_good << "Well formatted: " << color_end << filename << std::endl; exit( EXIT_SUCCESS ); } else { std::ofstream fout( filename, std::ios::binary | std::ios::trunc ); diff --git a/tools/format/getpost.h b/tools/format/getpost.h index 1502fcb8415e0..6f33c71882879 100644 --- a/tools/format/getpost.h +++ b/tools/format/getpost.h @@ -25,9 +25,9 @@ THE SOFTWARE. #ifndef __GETPOST_H__ #define __GETPOST_H__ +#include #include #include -#include #include #include @@ -71,7 +71,7 @@ inline void initializeGet( std::map &Get ) } while( *raw_get != '\0' ) { if( *raw_get == '&' ) { - if( tmpkey != "" ) { + if( !tmpkey.empty() ) { Get[urlDecode( tmpkey )] = urlDecode( tmpvalue ); } tmpkey.clear(); @@ -85,7 +85,7 @@ inline void initializeGet( std::map &Get ) raw_get++; } //enter the last pair to the map - if( tmpkey != "" ) { + if( !tmpkey.empty() ) { Get[urlDecode( tmpkey )] = urlDecode( tmpvalue ); tmpkey.clear(); tmpvalue.clear(); @@ -112,7 +112,7 @@ inline void initializePost( std::map &Post ) try { buffer = new char[content_length * sizeof( char )]; - } catch( std::bad_alloc &xa ) { + } catch( std::bad_alloc & ) { Post.clear(); return; } @@ -125,7 +125,7 @@ inline void initializePost( std::map &Post ) ibuffer = buffer; while( *ibuffer != '\0' ) { if( *ibuffer == '&' ) { - if( tmpkey != "" ) { + if( !tmpkey.empty() ) { Post[urlDecode( tmpkey )] = urlDecode( tmpvalue ); } tmpkey.clear(); @@ -139,7 +139,7 @@ inline void initializePost( std::map &Post ) ibuffer++; } //enter the last pair to the map - if( tmpkey != "" ) { + if( !tmpkey.empty() ) { Post[urlDecode( tmpkey )] = urlDecode( tmpvalue ); tmpkey.clear(); tmpvalue.clear(); diff --git a/tools/json_tools/adjust_values.py b/tools/json_tools/adjust_values.py index f7f11863ef2ea..8a9287f75e7c6 100755 --- a/tools/json_tools/adjust_values.py +++ b/tools/json_tools/adjust_values.py @@ -14,9 +14,8 @@ def gen_new(path): with open(path, "r") as json_file: json_data = json.load(json_file) for jo in json_data: - if "ammo_type" in jo and type(jo["ammo_type"]) != list and jo["type"] == "MAGAZINE": - ammo_list = [jo["ammo_type"]] - jo["ammo_type"] = ammo_list + if "reliability" in jo and jo["type"] == "MAGAZINE": + del jo["reliability"] change = True return json_data if change else None

( head ), std::forward( args )... ) ) { } explicit pimpl( const pimpl &rhs ) : std::unique_ptr( new T( *rhs ) ) { } - explicit pimpl( pimpl &&rhs ) : std::unique_ptr( new T( std::move( *rhs ) ) ) { } + explicit pimpl( pimpl &&rhs ) noexcept : std::unique_ptr( new T( std::move( *rhs ) ) ) { } pimpl &operator=( const pimpl &rhs ) { operator*() = *rhs; return *this; } - pimpl &operator=( pimpl &&rhs ) { + pimpl &operator=( pimpl &&rhs ) noexcept { operator*() = std::move( *rhs ); return *this; } diff --git a/src/pixel_minimap.cpp b/src/pixel_minimap.cpp index 36a5bceb8a22b..edb6522c86239 100644 --- a/src/pixel_minimap.cpp +++ b/src/pixel_minimap.cpp @@ -310,7 +310,7 @@ void pixel_minimap::update_cache_at( const tripoint &sm_pos ) SDL_Color color; - if( lighting == LL_BLANK || lighting == LL_DARK ) { + if( lighting == lit_level::BLANK || lighting == lit_level::DARK ) { // TODO: Map memory? color = { 0x00, 0x00, 0x00, 0xFF }; } else { @@ -318,12 +318,12 @@ void pixel_minimap::update_cache_at( const tripoint &sm_pos ) //color terrain according to lighting conditions if( nv_goggle ) { - if( lighting == LL_LOW ) { + if( lighting == lit_level::LOW ) { color = color_pixel_nightvision( color ); - } else if( lighting != LL_DARK && lighting != LL_BLANK ) { + } else if( lighting != lit_level::DARK && lighting != lit_level::BLANK ) { color = color_pixel_overexposed( color ); } - } else if( lighting == LL_LOW ) { + } else if( lighting == lit_level::LOW ) { color = color_pixel_grayscale( color ); } @@ -509,7 +509,7 @@ void pixel_minimap::render_critters( const tripoint ¢er ) const tripoint p = tripoint{ start_x + x, start_y + y, center.z }; const lit_level lighting = access_cache.visibility_cache[p.x][p.y]; - if( lighting == LL_DARK || lighting == LL_BLANK ) { + if( lighting == lit_level::DARK || lighting == lit_level::BLANK ) { continue; } diff --git a/src/pixel_minimap.h b/src/pixel_minimap.h index a3505ca3b6ec3..7d403a0fdd994 100644 --- a/src/pixel_minimap.h +++ b/src/pixel_minimap.h @@ -10,12 +10,12 @@ class pixel_minimap_projector; -enum class pixel_minimap_type { +enum class pixel_minimap_type : int { ortho, iso }; -enum class pixel_minimap_mode { +enum class pixel_minimap_mode : int { solid, squares, dots diff --git a/src/player.cpp b/src/player.cpp index de5a3ed1605ea..94308472739a3 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -87,25 +87,17 @@ #include "weather_gen.h" static const efftype_id effect_adrenaline( "adrenaline" ); -static const efftype_id effect_bandaged( "bandaged" ); static const efftype_id effect_bite( "bite" ); static const efftype_id effect_blind( "blind" ); static const efftype_id effect_bloodworms( "bloodworms" ); static const efftype_id effect_boomered( "boomered" ); static const efftype_id effect_brainworms( "brainworms" ); static const efftype_id effect_darkness( "darkness" ); -static const efftype_id effect_deaf( "deaf" ); static const efftype_id effect_dermatik( "dermatik" ); -static const efftype_id effect_disinfected( "disinfected" ); static const efftype_id effect_downed( "downed" ); -static const efftype_id effect_drunk( "drunk" ); -static const efftype_id effect_earphones( "earphones" ); static const efftype_id effect_fungus( "fungus" ); -static const efftype_id effect_grabbed( "grabbed" ); -static const efftype_id effect_grabbing( "grabbing" ); static const efftype_id effect_infected( "infected" ); static const efftype_id effect_masked_scent( "masked_scent" ); -static const efftype_id effect_mending( "mending" ); static const efftype_id effect_meth( "meth" ); static const efftype_id effect_narcosis( "narcosis" ); static const efftype_id effect_nausea( "nausea" ); @@ -117,10 +109,18 @@ static const efftype_id effect_stunned( "stunned" ); static const efftype_id effect_tapeworm( "tapeworm" ); static const efftype_id effect_weed_high( "weed_high" ); +static const itype_id itype_adv_UPS_off( "adv_UPS_off" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_brass_catcher( "brass_catcher" ); +static const itype_id itype_cookbook_human( "cookbook_human" ); +static const itype_id itype_large_repairkit( "large_repairkit" ); +static const itype_id itype_plut_cell( "plut_cell" ); +static const itype_id itype_small_repairkit( "small_repairkit" ); +static const itype_id itype_UPS( "UPS" ); +static const itype_id itype_UPS_off( "UPS_off" ); + static const trait_id trait_ACIDBLOOD( "ACIDBLOOD" ); -static const trait_id trait_ANTENNAE( "ANTENNAE" ); static const trait_id trait_DEBUG_NODMG( "DEBUG_NODMG" ); - static const trait_id trait_CANNIBAL( "CANNIBAL" ); static const trait_id trait_CENOBITE( "CENOBITE" ); static const trait_id trait_CF_HAIR( "CF_HAIR" ); @@ -131,18 +131,15 @@ static const trait_id trait_CHLOROMORPH( "CHLOROMORPH" ); static const trait_id trait_CLUMSY( "CLUMSY" ); static const trait_id trait_COLDBLOOD4( "COLDBLOOD4" ); static const trait_id trait_DEBUG_BIONIC_POWER( "DEBUG_BIONIC_POWER" ); -static const trait_id trait_DEBUG_CLOAK( "DEBUG_CLOAK" ); static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); static const trait_id trait_DEFT( "DEFT" ); static const trait_id trait_EASYSLEEPER( "EASYSLEEPER" ); static const trait_id trait_EASYSLEEPER2( "EASYSLEEPER2" ); static const trait_id trait_EATHEALTH( "EATHEALTH" ); -static const trait_id trait_FASTLEARNER( "FASTLEARNER" ); static const trait_id trait_FAT( "FAT" ); static const trait_id trait_FELINE_FUR( "FELINE_FUR" ); static const trait_id trait_FUR( "FUR" ); static const trait_id trait_HATES_BOOKS( "HATES_BOOKS" ); -static const trait_id trait_HOOVES( "HOOVES" ); static const trait_id trait_HUGE( "HUGE" ); static const trait_id trait_HUGE_OK( "HUGE_OK" ); static const trait_id trait_INFIMMUNE( "INFIMMUNE" ); @@ -150,46 +147,39 @@ static const trait_id trait_INSOMNIA( "INSOMNIA" ); static const trait_id trait_INT_SLIME( "INT_SLIME" ); static const trait_id trait_LARGE( "LARGE" ); static const trait_id trait_LARGE_OK( "LARGE_OK" ); -static const trait_id trait_LEG_TENTACLES( "LEG_TENTACLES" ); static const trait_id trait_LIGHTFUR( "LIGHTFUR" ); static const trait_id trait_LIGHTSTEP( "LIGHTSTEP" ); static const trait_id trait_LOVES_BOOKS( "LOVES_BOOKS" ); static const trait_id trait_LUPINE_FUR( "LUPINE_FUR" ); static const trait_id trait_M_IMMUNE( "M_IMMUNE" ); static const trait_id trait_M_SKIN3( "M_SKIN3" ); -static const trait_id trait_MOREPAIN( "MORE_PAIN" ); -static const trait_id trait_MOREPAIN2( "MORE_PAIN2" ); -static const trait_id trait_MOREPAIN3( "MORE_PAIN3" ); +static const trait_id trait_MORE_PAIN( "MORE_PAIN" ); +static const trait_id trait_MORE_PAIN2( "MORE_PAIN2" ); +static const trait_id trait_MORE_PAIN3( "MORE_PAIN3" ); static const trait_id trait_NAUSEA( "NAUSEA" ); static const trait_id trait_NOMAD( "NOMAD" ); static const trait_id trait_NOMAD2( "NOMAD2" ); static const trait_id trait_NOMAD3( "NOMAD3" ); static const trait_id trait_NOPAIN( "NOPAIN" ); static const trait_id trait_PACIFIST( "PACIFIST" ); -static const trait_id trait_PADDED_FEET( "PADDED_FEET" ); static const trait_id trait_PAINRESIST( "PAINRESIST" ); static const trait_id trait_PAINRESIST_TROGLO( "PAINRESIST_TROGLO" ); static const trait_id trait_PARAIMMUNE( "PARAIMMUNE" ); static const trait_id trait_PARKOUR( "PARKOUR" ); -static const trait_id trait_PER_SLIME( "PER_SLIME" ); static const trait_id trait_PER_SLIME_OK( "PER_SLIME_OK" ); static const trait_id trait_PROF_SKATER( "PROF_SKATER" ); static const trait_id trait_PSYCHOPATH( "PSYCHOPATH" ); static const trait_id trait_QUILLS( "QUILLS" ); -static const trait_id trait_ROOTS2( "ROOTS2" ); -static const trait_id trait_ROOTS3( "ROOTS3" ); static const trait_id trait_SAPIOVORE( "SAPIOVORE" ); static const trait_id trait_SAVANT( "SAVANT" ); static const trait_id trait_SHELL2( "SHELL2" ); static const trait_id trait_SLIMY( "SLIMY" ); -static const trait_id trait_SLOWLEARNER( "SLOWLEARNER" ); static const trait_id trait_SPINES( "SPINES" ); static const trait_id trait_SPIRITUAL( "SPIRITUAL" ); static const trait_id trait_STRONGSTOMACH( "STRONGSTOMACH" ); static const trait_id trait_SUNLIGHT_DEPENDENT( "SUNLIGHT_DEPENDENT" ); static const trait_id trait_THORNS( "THORNS" ); static const trait_id trait_THRESH_SPIDER( "THRESH_SPIDER" ); -static const trait_id trait_TOUGH_FEET( "TOUGH_FEET" ); static const trait_id trait_URSINE_FUR( "URSINE_FUR" ); static const trait_id trait_VOMITOUS( "VOMITOUS" ); static const trait_id trait_WATERSLEEP( "WATERSLEEP" ); @@ -204,16 +194,10 @@ static const skill_id skill_dodge( "dodge" ); static const skill_id skill_gun( "gun" ); static const skill_id skill_swimming( "swimming" ); -static const bionic_id bio_cloak( "bio_cloak" ); static const bionic_id bio_cqb( "bio_cqb" ); -static const bionic_id bio_earplugs( "bio_earplugs" ); -static const bionic_id bio_ears( "bio_ears" ); static const bionic_id bio_ground_sonar( "bio_ground_sonar" ); -static const bionic_id bio_jointservo( "bio_jointservo" ); -static const bionic_id bio_memory( "bio_memory" ); static const bionic_id bio_soporific( "bio_soporific" ); static const bionic_id bio_speed( "bio_speed" ); -static const bionic_id bio_syringe( "bio_syringe" ); static const bionic_id bio_uncanny_dodge( "bio_uncanny_dodge" ); stat_mod player::get_pain_penalty() const @@ -463,7 +447,7 @@ void player::process_turn() } } -int player::kcal_speed_penalty() +int player::kcal_speed_penalty() const { static const std::vector> starv_thresholds = { { std::make_pair( 0.0f, -90.0f ), @@ -599,36 +583,6 @@ void player::set_underwater( bool u ) } } -nc_color player::basic_symbol_color() const -{ - if( has_effect( effect_onfire ) ) { - return c_red; - } - if( has_effect( effect_stunned ) ) { - return c_light_blue; - } - if( has_effect( effect_boomered ) ) { - return c_pink; - } - if( has_active_mutation( trait_id( "SHELL2" ) ) ) { - return c_magenta; - } - if( underwater ) { - return c_blue; - } - if( has_active_bionic( bio_cloak ) || has_artifact_with( AEP_INVISIBLE ) || - is_wearing_active_optcloak() || has_trait( trait_DEBUG_CLOAK ) ) { - return c_dark_gray; - } - if( move_mode == CMM_RUN ) { - return c_yellow; - } - if( move_mode == CMM_CROUCH ) { - return c_light_gray; - } - return c_white; -} - void player::mod_stat( const std::string &stat, float modifier ) { if( stat == "thirst" ) { @@ -802,22 +756,23 @@ void player::pause() if( underwater ) { practice( skill_swimming, 1 ); drench( 100, { { - bp_leg_l, bp_leg_r, bp_torso, bp_arm_l, - bp_arm_r, bp_head, bp_eyes, bp_mouth, - bp_foot_l, bp_foot_r, bp_hand_l, bp_hand_r + bodypart_str_id( "leg_l" ), bodypart_str_id( "leg_r" ), bodypart_str_id( "torso" ), bodypart_str_id( "arm_l" ), + bodypart_str_id( "arm_r" ), bodypart_str_id( "head" ), bodypart_str_id( "eyes" ), bodypart_str_id( "mouth" ), + bodypart_str_id( "foot_l" ), bodypart_str_id( "foot_r" ), bodypart_str_id( "hand_l" ), bodypart_str_id( "hand_r" ) } }, true ); } else if( g->m.has_flag( TFLAG_DEEP_WATER, pos() ) ) { practice( skill_swimming, 1 ); // Same as above, except no head/eyes/mouth drench( 100, { { - bp_leg_l, bp_leg_r, bp_torso, bp_arm_l, - bp_arm_r, bp_foot_l, bp_foot_r, bp_hand_l, - bp_hand_r + bodypart_str_id( "leg_l" ), bodypart_str_id( "leg_r" ), bodypart_str_id( "torso" ), bodypart_str_id( "arm_l" ), + bodypart_str_id( "arm_r" ), bodypart_str_id( "foot_l" ), bodypart_str_id( "foot_r" ), bodypart_str_id( "hand_l" ), + bodypart_str_id( "hand_r" ) } }, true ); } else if( g->m.has_flag( "SWIMMABLE", pos() ) ) { - drench( 40, { { bp_foot_l, bp_foot_r, bp_leg_l, bp_leg_r } }, false ); + drench( 40, { { bodypart_str_id( "foot_l" ), bodypart_str_id( "foot_r" ), bodypart_str_id( "leg_l" ), bodypart_str_id( "leg_r" ) } }, + false ); } } @@ -1093,7 +1048,7 @@ bool player::immune_to( const bodypart_id &bp, damage_unit dam ) const passive_absorb_hit( bp, dam ); for( const item &cloth : worn ) { - if( cloth.get_coverage() == 100 && cloth.covers( bp->token ) ) { + if( cloth.get_coverage() == 100 && cloth.covers( bp ) ) { cloth.mitigate_damage( dam ); } } @@ -1108,11 +1063,11 @@ void player::mod_pain( int npain ) return; } // always increase pain gained by one from these bad mutations - if( has_trait( trait_MOREPAIN ) ) { + if( has_trait( trait_MORE_PAIN ) ) { npain += std::max( 1, roll_remainder( npain * 0.25 ) ); - } else if( has_trait( trait_MOREPAIN2 ) ) { + } else if( has_trait( trait_MORE_PAIN2 ) ) { npain += std::max( 1, roll_remainder( npain * 0.5 ) ); - } else if( has_trait( trait_MOREPAIN3 ) ) { + } else if( has_trait( trait_MORE_PAIN3 ) ) { npain += std::max( 1, roll_remainder( npain * 1.0 ) ); } @@ -1328,7 +1283,8 @@ void player::knock_back_to( const tripoint &to ) // First, see if we hit a monster if( monster *const critter = g->critter_at( to ) ) { - deal_damage( critter, bodypart_id( "torso" ), damage_instance( DT_BASH, critter->type->size ) ); + deal_damage( critter, bodypart_id( "torso" ), damage_instance( DT_BASH, + static_cast( critter->type->size ) ) ); add_effect( effect_stunned, 1_turns ); /** @EFFECT_STR_MAX allows knocked back player to knock back, damage, stun some monsters */ if( ( str_max - 6 ) / 4 > critter->type->size ) { @@ -1347,7 +1303,8 @@ void player::knock_back_to( const tripoint &to ) } if( npc *const np = g->critter_at( to ) ) { - deal_damage( np, bodypart_id( "torso" ), damage_instance( DT_BASH, np->get_size() ) ); + deal_damage( np, bodypart_id( "torso" ), + damage_instance( DT_BASH, static_cast( np->get_size() ) ) ); add_effect( effect_stunned, 1_turns ); np->deal_damage( this, bodypart_id( "torso" ), damage_instance( DT_BASH, 3 ) ); add_msg_player_or_npc( _( "You bounce off %s!" ), _( " bounces off %s!" ), @@ -1429,19 +1386,19 @@ void player::add_pain_msg( int val, const bodypart_id &bp ) const } else { if( val > 20 ) { add_msg_if_player( _( "Your %s is wracked with excruciating pain!" ), - body_part_name_accusative( bp->token ) ); + body_part_name_accusative( bp ) ); } else if( val > 10 ) { add_msg_if_player( _( "Your %s is wracked with terrible pain!" ), - body_part_name_accusative( bp->token ) ); + body_part_name_accusative( bp ) ); } else if( val > 5 ) { add_msg_if_player( _( "Your %s is wracked with pain!" ), - body_part_name_accusative( bp->token ) ); + body_part_name_accusative( bp ) ); } else if( val > 1 ) { add_msg_if_player( _( "Your %s pains you!" ), - body_part_name_accusative( bp->token ) ); + body_part_name_accusative( bp ) ); } else { add_msg_if_player( _( "Your %s aches." ), - body_part_name_accusative( bp->token ) ); + body_part_name_accusative( bp ) ); } } } @@ -1450,7 +1407,7 @@ void player::process_one_effect( effect &it, bool is_new ) { bool reduced = resists_effect( it ); double mod = 1; - body_part bp = it.get_bp(); + const bodypart_id &bp = convert_bp( it.get_bp() ).id(); int val = 0; // Still hardcoded stuff, do this first since some modify their other traits @@ -1568,7 +1525,7 @@ void player::process_one_effect( effect &it, bool is_new ) int pain_inc = bound_mod_to_vals( get_pain(), val, it.get_max_val( "PAIN", reduced ), 0 ); mod_pain( pain_inc ); if( pain_inc > 0 ) { - add_pain_msg( val, convert_bp( bp ).id() ); + add_pain_msg( val, bp ); } } } @@ -1589,11 +1546,11 @@ void player::process_one_effect( effect &it, bool is_new ) } } if( is_new || it.activated( calendar::turn, "HURT", val, reduced, mod ) ) { - if( bp == num_bp ) { + if( bp == bodypart_id( "num_bp" ) ) { if( val > 5 ) { - add_msg_if_player( _( "Your %s HURTS!" ), body_part_name_accusative( bp_torso ) ); + add_msg_if_player( _( "Your %s HURTS!" ), body_part_name_accusative( bodypart_id( "torso" ) ) ); } else { - add_msg_if_player( _( "Your %s hurts!" ), body_part_name_accusative( bp_torso ) ); + add_msg_if_player( _( "Your %s hurts!" ), body_part_name_accusative( bodypart_id( "torso" ) ) ); } apply_damage( nullptr, bodypart_id( "torso" ), val, true ); } else { @@ -1602,7 +1559,7 @@ void player::process_one_effect( effect &it, bool is_new ) } else { add_msg_if_player( _( "Your %s hurts!" ), body_part_name_accusative( bp ) ); } - apply_damage( nullptr, convert_bp( bp ).id(), val, true ); + apply_damage( nullptr, bp, val, true ); } } } @@ -1805,11 +1762,11 @@ void player::on_worn_item_transform( const item &old_it, const item &new_it ) void player::process_items() { if( weapon.needs_processing() && weapon.process( this, pos(), false ) ) { - weapon = item(); + remove_weapon(); } std::vector removed_items; - for( item_location it : all_items_loc() ) { + for( item_location it : top_items_loc() ) { if( !it ) { continue; } @@ -1823,11 +1780,6 @@ void player::process_items() removed.remove_item(); } - // worn items - remove_worn_items_with( [this]( item & itm ) { - return itm.needs_processing() && itm.process( this, pos(), false ); - } ); - // Active item processing done, now we're recharging. item *cloak = nullptr; item *power_armor = nullptr; @@ -1839,9 +1791,9 @@ void player::process_items() for( size_t index = 0; index < inv.size(); index++ ) { item &it = inv.find_item( index ); itype_id identifier = it.type->get_id(); - if( identifier == "UPS_off" ) { + if( identifier == itype_UPS_off ) { ch_UPS += it.ammo_remaining(); - } else if( identifier == "adv_UPS_off" ) { + } else if( identifier == itype_adv_UPS_off ) { ch_UPS += it.ammo_remaining() / 0.6; } if( it.has_flag( "USE_UPS" ) && it.charges < it.type->maximum_charges() ) { @@ -1865,9 +1817,9 @@ void player::process_items() } // Necessary for UPS in Aftershock - check worn items for charge const itype_id &identifier = w.typeId(); - if( identifier == "UPS_off" ) { + if( identifier == itype_UPS_off ) { ch_UPS += w.ammo_remaining(); - } else if( identifier == "adv_UPS_off" ) { + } else if( identifier == itype_adv_UPS_off ) { ch_UPS += w.ammo_remaining() / 0.6; } if( !update_required && w.encumbrance_update_ ) { @@ -1884,13 +1836,13 @@ void player::process_items() int ch_UPS_used = 0; if( cloak != nullptr ) { if( ch_UPS >= 20 ) { - use_charges( "UPS", 20 ); + use_charges( itype_UPS, 20 ); ch_UPS -= 20; if( ch_UPS < 200 && one_in( 3 ) ) { add_msg_if_player( m_warning, _( "Your cloaking flickers for a moment!" ) ); } } else if( ch_UPS > 0 ) { - use_charges( "UPS", ch_UPS ); + use_charges( itype_UPS, ch_UPS ); return; } else { add_msg_if_player( m_bad, @@ -1908,7 +1860,7 @@ void player::process_items() // Bionic power costs are handled elsewhere. if( !bio_powered ) { if( ch_UPS >= power_cost ) { - use_charges( "UPS", power_cost ); + use_charges( itype_UPS, power_cost ); ch_UPS -= power_cost; } else { // Deactivate armor here, bypassing the usual deactivation message. @@ -1940,7 +1892,7 @@ void player::process_items() worn_item->charges++; } if( ch_UPS_used > 0 ) { - use_charges( "UPS", ch_UPS_used ); + use_charges( itype_UPS, ch_UPS_used ); } } @@ -1989,166 +1941,6 @@ bool player::has_mission_item( int mission_id ) const return mission_id != -1 && has_item_with( has_mission_item_filter{ mission_id } ); } -//Returns the amount of charges that were consumed by the player -int player::drink_from_hands( item &water ) -{ - int charges_consumed = 0; - if( query_yn( _( "Drink %s from your hands?" ), - colorize( water.type_name(), water.color_in_inventory() ) ) ) { - // Create a dose of water no greater than the amount of water remaining. - item water_temp( water ); - // If player is slaked water might not get consumed. - consume_item( water_temp ); - charges_consumed = water.charges - water_temp.charges; - if( charges_consumed > 0 ) { - moves -= 350; - } - } - - return charges_consumed; -} - -// TODO: Properly split medications and food instead of hacking around -bool player::consume_med( item &target ) -{ - if( !target.is_medication() ) { - return false; - } - - const itype_id tool_type = target.get_comestible()->tool; - const auto req_tool = item::find_type( tool_type ); - bool tool_override = false; - if( tool_type == "syringe" && has_bionic( bio_syringe ) ) { - tool_override = true; - } - if( req_tool->tool ) { - if( !( has_amount( tool_type, 1 ) && has_charges( tool_type, req_tool->tool->charges_per_use ) ) && - !tool_override ) { - add_msg_if_player( m_info, _( "You need a %s to consume that!" ), req_tool->nname( 1 ) ); - return false; - } - use_charges( tool_type, req_tool->tool->charges_per_use ); - } - - int amount_used = 1; - if( target.type->has_use() ) { - amount_used = target.type->invoke( *this, target, pos() ); - if( amount_used <= 0 ) { - return false; - } - } - - // TODO: Get the target it was used on - // Otherwise injecting someone will give us addictions etc. - if( target.has_flag( "NO_INGEST" ) ) { - const auto &comest = *target.get_comestible(); - // Assume that parenteral meds don't spoil, so don't apply rot - modify_health( comest ); - modify_stimulation( comest ); - modify_fatigue( comest ); - modify_radiation( comest ); - modify_addiction( comest ); - modify_morale( target ); - } else { - // Take by mouth - consume_effects( target ); - } - - mod_moves( -250 ); - target.charges -= amount_used; - return target.charges <= 0; -} - -static bool query_consume_ownership( item &target, player &p ) -{ - if( !target.is_owned_by( p, true ) ) { - bool choice = true; - if( p.get_value( "THIEF_MODE" ) == "THIEF_ASK" ) { - choice = Pickup::query_thief(); - } - if( p.get_value( "THIEF_MODE" ) == "THIEF_HONEST" || !choice ) { - return false; - } - std::vector witnesses; - for( npc &elem : g->all_npcs() ) { - if( rl_dist( elem.pos(), p.pos() ) < MAX_VIEW_DISTANCE && elem.sees( p.pos() ) ) { - witnesses.push_back( &elem ); - } - } - for( npc *elem : witnesses ) { - elem->say( "", 7 ); - } - if( !witnesses.empty() && target.is_owned_by( p, true ) ) { - if( p.add_faction_warning( target.get_owner() ) ) { - for( npc *elem : witnesses ) { - elem->make_angry(); - } - } - } - } - return true; -} - -bool player::consume_item( item &target ) -{ - if( target.is_null() ) { - add_msg_if_player( m_info, _( "You do not have that item." ) ); - return false; - } - if( is_underwater() && !has_trait( trait_WATERSLEEP ) ) { - add_msg_if_player( m_info, _( "You can't do that while underwater." ) ); - return false; - } - - // to try to reduce unecessary churn, this was left for now - item &comest = target; - - if( comest.is_null() || target.is_craft() ) { - add_msg_if_player( m_info, _( "You can't eat your %s." ), target.tname() ); - if( is_npc() ) { - debugmsg( "%s tried to eat a %s", name, target.tname() ); - } - return false; - } - if( is_player() && !query_consume_ownership( target, *this ) ) { - return false; - } - if( consume_med( comest ) || - eat( comest ) || feed_reactor_with( comest ) || feed_furnace_with( comest ) || - fuel_bionic_with( comest ) ) { - - if( &target != &comest ) { - target.on_contents_changed(); - } - - return comest.charges <= 0; - } - - return false; -} - -bool player::consume( item_location loc ) -{ - item &target = *loc; - bool wielding = is_wielding( target ); - bool worn = is_worn( target ); - const bool inv_item = !( wielding || worn ); - - if( consume_item( target ) ) { - - i_rem( loc.get_item() ); - - } else if( inv_item ) { - if( Pickup::handle_spillable_contents( *this, target, g->m ) ) { - i_rem( &target ); - } - inv.restack( *this ); - inv.unsort(); - } - - return true; -} - bool player::add_faction_warning( const faction_id &id ) { const auto it = warning_record.find( id ); @@ -2216,7 +2008,7 @@ item::reload_option player::select_ammo( const item &base, std::transform( opts.begin(), opts.end(), std::back_inserter( names ), [&]( const item::reload_option & e ) { if( e.ammo->is_magazine() && e.ammo->ammo_data() ) { - if( e.ammo->ammo_current() == "battery" ) { + if( e.ammo->ammo_current() == itype_battery ) { // This battery ammo is not a real object that can be recovered but pseudo-object that represents charge //~ battery storage (charges) return string_format( pgettext( "magazine", "%1$s (%2$d)" ), e.ammo->type_name(), @@ -2302,7 +2094,8 @@ item::reload_option player::select_ammo( const item &base, return row; }; - itype_id last = uistate.lastreload[ ammotype( base.ammo_default() ) ]; + const ammotype base_ammotype( base.ammo_default().str() ); + itype_id last = uistate.lastreload[ base_ammotype ]; // We keep the last key so that pressing the key twice (for example, r-r for reload) // will always pick the first option on the list. int last_key = inp_mngr.get_previously_pressed_key(); @@ -2410,10 +2203,10 @@ item::reload_option player::select_ammo( const item &base, } const item_location &sel = opts[ menu.ret ].ammo; - uistate.lastreload[ ammotype( base.ammo_default() ) ] = sel->is_ammo_container() ? - // get first item in all magazine pockets - sel->contents.first_ammo().typeId() : - sel->typeId(); + uistate.lastreload[ base_ammotype ] = sel->is_ammo_container() ? + // get first item in all magazine pockets + sel->contents.first_ammo().typeId() : + sel->typeId(); return opts[ menu.ret ]; } @@ -2473,8 +2266,9 @@ item::reload_option player::select_ammo( const item &base, bool prompt, bool emp } else if( base.is_watertight_container() ) { name = base.is_container_empty() ? "liquid" : base.contents.legacy_front().tname(); } else { - name = enumerate_as_string( base.ammo_types().begin(), - base.ammo_types().end(), []( const ammotype & at ) { + const std::set types_of_ammo = base.ammo_types(); + name = enumerate_as_string( types_of_ammo.begin(), + types_of_ammo.end(), []( const ammotype & at ) { return at->name(); }, enumeration_conjunction::none ); } @@ -2513,7 +2307,7 @@ item::reload_option player::select_ammo( const item &base, bool prompt, bool emp ret_val player::can_wield( const item &it ) const { - if( it.made_of_from_type( LIQUID ) ) { + if( it.made_of_from_type( phase_id::LIQUID ) ) { return ret_val::make_failure( _( "Can't wield spilt liquids." ) ); } @@ -2651,33 +2445,6 @@ bool character_martial_arts::pick_style( const avatar &you ) // Style selection return true; } -hint_rating player::rate_action_wear( const item &it ) const -{ - // TODO: flag already-worn items as hint_rating::iffy - - if( !it.is_armor() ) { - return hint_rating::cant; - } - - return can_wear( it ).success() ? hint_rating::good : hint_rating::iffy; -} - -bool player::can_reload( const item &it, const itype_id &ammo ) const -{ - if( !it.is_reloadable_with( ammo ) ) { - return false; - } - - if( it.is_ammo_belt() ) { - const auto &linkage = it.type->magazine->linkage; - if( linkage && !has_charges( *linkage, 1 ) ) { - return false; - } - } - - return true; -} - void player::mend_item( item_location &&obj, bool interactive ) { if( has_trait( trait_DEBUG_HS ) ) { @@ -2733,8 +2500,10 @@ void player::mend_item( item_location &&obj, bool interactive ) if( interactive ) { add_msg( m_info, _( "The %s doesn't have any faults to mend." ), obj->tname() ); if( obj->damage() > 0 ) { - const std::set &rep = obj->repaired_with(); - if( !rep.empty() ) { + const std::set &rep = obj->repaired_with(); + if( rep.empty() ) { + add_msg( m_info, _( "It is damaged, but cannot be repaired." ) ); + } else { const std::string repair_options = enumerate_as_string( rep.begin(), rep.end(), []( const itype_id & e ) { return item::nname( e ); @@ -2882,7 +2651,14 @@ int player::item_reload_cost( const item &it, const item &ammo, int qty ) const /** @EFFECT_SHOTGUN decreases time taken to reload a shotgun */ /** @EFFECT_LAUNCHER decreases time taken to reload a launcher */ - int cost = ( it.is_gun() ? it.get_reload_time() : it.type->magazine->reload_time ) * qty; + int cost = 0; + if( it.is_gun() ) { + cost = it.get_reload_time(); + } else if( it.type->magazine ) { + cost = it.type->magazine->reload_time * qty; + } else { + cost = it.contents.obtain_cost( ammo ); + } skill_id sk = it.is_gun() ? it.type->gun->skill_used : skill_gun; mv += cost / ( 1.0f + std::min( get_skill_level( sk ) * 0.1f, 1.0f ) ); @@ -2951,20 +2727,11 @@ player::wear( item &to_wear, bool interactive ) return cata::nullopt; } - return result; -} - -hint_rating player::rate_action_takeoff( const item &it ) const -{ - if( !it.is_armor() ) { - return hint_rating::cant; - } - - if( is_worn( it ) ) { - return hint_rating::good; + if( was_weapon ) { + g->events().send( getID(), weapon.typeId() ); } - return hint_rating::iffy; + return result; } ret_val player::can_takeoff( const item &it, const std::list *res ) @@ -3032,7 +2799,7 @@ bool player::takeoff( int pos ) bool player::add_or_drop_with_msg( item &it, const bool unloading, const item *avoid ) { - if( it.made_of( LIQUID ) ) { + if( it.made_of( phase_id::LIQUID ) ) { liquid_handler::consume_liquid( it, 1 ); return it.charges <= 0; } @@ -3051,8 +2818,9 @@ bool player::add_or_drop_with_msg( item &it, const bool unloading, const item *a return true; } -bool player::unload( item &it ) +bool player::unload( item_location &loc ) { + item &it = *loc; // Unload a container consuming moves per item successfully removed if( it.is_container() ) { if( it.contents.empty() ) { @@ -3071,7 +2839,7 @@ bool player::unload( item &it ) changed = changed || consumed || contained->charges != old_charges; if( consumed ) { this->mod_moves( -this->item_handling_cost( *contained ) ); - this->remove_item( *contained ); + it.remove_item( *contained ); } } @@ -3108,7 +2876,7 @@ bool player::unload( item &it ) } // Next check for any reasons why the item cannot be unloaded - if( target->ammo_types().empty() || target->ammo_capacity() <= 0 ) { + if( target->ammo_types().empty() && target->magazine_compatible().empty() ) { add_msg( m_info, _( "You can't unload a %s!" ), target->tname() ); return false; } @@ -3138,7 +2906,7 @@ bool player::unload( item &it ) if( target->is_magazine() ) { player_activity unload_mag_act( activity_id( "ACT_UNLOAD_MAG" ) ); assign_activity( unload_mag_act ); - activity.targets.emplace_back( item_location( *this, target ) ); + activity.targets.emplace_back( loc ); // Calculate the time to remove the contained ammo (consuming half as much time as required to load the magazine) int mv = 0; @@ -3169,7 +2937,7 @@ bool player::unload( item &it ) } else if( target->ammo_remaining() ) { int qty = target->ammo_remaining(); - if( target->ammo_current() == "plut_cell" ) { + if( target->ammo_current() == itype_plut_cell ) { if( qty / PLUTONIUM_CHARGES > 0 ) { add_msg( _( "You recover %i unused plutonium." ), qty / PLUTONIUM_CHARGES ); } else { @@ -3184,7 +2952,7 @@ bool player::unload( item &it ) ammo.set_flag( "FILTHY" ); } - if( ammo.made_of_from_type( LIQUID ) ) { + if( ammo.made_of_from_type( phase_id::LIQUID ) ) { if( !this->add_or_drop_with_msg( ammo ) ) { qty -= ammo.charges; // only handled part (or none) of the liquid } @@ -3208,117 +2976,17 @@ bool player::unload( item &it ) } add_msg( _( "You unload your %s." ), target->tname() ); - return true; -} -void player::use_wielded() -{ - use( -1 ); -} - -hint_rating player::rate_action_reload( const item &it ) const -{ - hint_rating res = hint_rating::cant; - - // Guns may contain additional reloadable mods so check these first - for( const auto mod : it.gunmods() ) { - switch( rate_action_reload( *mod ) ) { - case hint_rating::good: - return hint_rating::good; - - case hint_rating::cant: - continue; - - case hint_rating::iffy: - res = hint_rating::iffy; - } + if( it.has_flag( "MAG_DESTROY" ) && it.ammo_remaining() == 0 ) { + loc.remove_item(); } - if( !it.is_reloadable() ) { - return res; - } - - return can_reload( it ) ? hint_rating::good : hint_rating::iffy; -} - -hint_rating player::rate_action_unload( const item &it ) const -{ - if( it.is_container() && !it.contents.empty() && - it.can_unload_liquid() ) { - return hint_rating::good; - } - - if( it.has_flag( "NO_UNLOAD" ) ) { - return hint_rating::cant; - } - - if( it.magazine_current() ) { - return hint_rating::good; - } - - for( auto e : it.gunmods() ) { - if( e->is_gun() && !e->has_flag( "NO_UNLOAD" ) && - ( e->magazine_current() || e->ammo_remaining() > 0 || e->casings_count() > 0 ) ) { - return hint_rating::good; - } - } - - if( it.ammo_types().empty() ) { - return hint_rating::cant; - } - - if( it.ammo_remaining() > 0 || it.casings_count() > 0 ) { - return hint_rating::good; - } - - if( it.ammo_capacity() > 0 ) { - return hint_rating::iffy; - } - - return hint_rating::cant; -} - -hint_rating player::rate_action_mend( const item &it ) const -{ - // TODO: check also if item damage could be repaired via a tool - if( !it.faults.empty() ) { - return hint_rating::good; - } - return it.faults_potential().empty() ? hint_rating::cant : hint_rating::iffy; -} - -hint_rating player::rate_action_disassemble( const item &it ) -{ - if( can_disassemble( it, crafting_inventory() ).success() ) { - return hint_rating::good; // possible - - } else if( recipe_dictionary::get_uncraft( it.typeId() ) ) { - return hint_rating::iffy; // potentially possible but we currently lack requirements - - } else { - return hint_rating::cant; // never possible - } + return true; } -hint_rating player::rate_action_use( const item &it ) const +void player::use_wielded() { - if( it.is_tool() ) { - return it.ammo_sufficient() ? hint_rating::good : hint_rating::iffy; - - } else if( it.is_gunmod() ) { - /** @EFFECT_GUN >0 allows rating estimates for gun modifications */ - if( get_skill_level( skill_gun ) == 0 ) { - return hint_rating::iffy; - } else { - return hint_rating::good; - } - } else if( it.is_food() || it.is_medication() || it.is_book() || it.is_armor() ) { - return hint_rating::iffy; //the rating is subjective, could be argued as hint_rating::cant or hint_rating::good as well - } else if( it.type->has_use() ) { - return hint_rating::good; - } - - return hint_rating::cant; + use( -1 ); } void player::use( int inventory_position ) @@ -3354,8 +3022,13 @@ void player::use( item_location loc ) } else if( !used.is_craft() && ( used.is_medication() || ( !used.type->has_use() && used.is_food() ) ) ) { - consume( loc ); - + if( avatar *u = as_avatar() ) { + u->assign_activity( player_activity( consume_activity_actor( item_location( *u, &used ) ) ) ); + } else { + const time_duration &consume_time = get_consume_time( used ); + moves -= to_moves( consume_time ); + consume( used ); + } } else if( used.is_book() ) { // TODO: Handle this with dynamic dispatch. if( avatar *u = as_avatar() ) { @@ -3417,14 +3090,16 @@ bool player::gunmod_remove( item &gun, item &mod ) debugmsg( "Cannot remove non-existent gunmod" ); return false; } - if( mod.ammo_remaining() && !g->unload( mod ) ) { + + item_location loc = item_location( *this, &mod ); + if( mod.ammo_remaining() && !g->unload( loc ) ) { return false; } gun.gun_set_mode( gun_mode_id( "DEFAULT" ) ); //TODO: add activity for removing gunmods - if( mod.typeId() == "brass_catcher" ) { + if( mod.typeId() == itype_brass_catcher ) { gun.casings_handle( [&]( item & e ) { return i_add_or_drop( e ); } ); @@ -3473,7 +3148,7 @@ std::pair player::gunmod_installation_odds( const item &gun, const ite for( const auto &e : mod.type->min_skills ) { // gain an additional chance for every level above the minimum requirement - skill_id sk = e.first == "weapon" ? gun.gun_skill() : skill_id( e.first ); + skill_id sk = e.first.str() == "weapon" ? gun.gun_skill() : e.first; chances += std::max( get_skill_level( sk ) - e.second, 0 ); } // cap success from skill alone to 1 in 5 (~83% chance) @@ -3539,7 +3214,7 @@ void player::gunmod_add( item &gun, item &mod ) string_format( _( "Try without tools (%i%%) risking damage (%i%%)" ), roll, risk ) ); actions.emplace_back( [&] {} ); - prompt.addentry( -1, has_charges( "small_repairkit", 100 ), 'f', + prompt.addentry( -1, has_charges( itype_small_repairkit, 100 ), 'f', string_format( _( "Use 100 charges of firearm repair kit (%i%%)" ), std::min( roll * 2, 100 ) ) ); actions.emplace_back( [&] { @@ -3549,7 +3224,7 @@ void player::gunmod_add( item &gun, item &mod ) risk /= 2; // ...and reduces the risk of damage upon failure } ); - prompt.addentry( -1, has_charges( "large_repairkit", 25 ), 'g', + prompt.addentry( -1, has_charges( itype_large_repairkit, 25 ), 'g', string_format( _( "Use 25 charges of gunsmith repair kit (%i%%)" ), std::min( roll * 3, 100 ) ) ); actions.emplace_back( [&] { @@ -3606,7 +3281,7 @@ bool player::fun_to_read( const item &book ) const // If you don't have a problem with eating humans, To Serve Man becomes rewarding if( ( has_trait( trait_CANNIBAL ) || has_trait( trait_PSYCHOPATH ) || has_trait( trait_SAPIOVORE ) ) && - book.typeId() == "cookbook_human" ) { + book.typeId() == itype_cookbook_human ) { return true; } else if( has_trait( trait_SPIRITUAL ) && book.has_flag( "INSPIRATIONAL" ) ) { return true; @@ -3626,7 +3301,7 @@ int player::book_fun_for( const item &book, const player &p ) const // If you don't have a problem with eating humans, To Serve Man becomes rewarding if( ( p.has_trait( trait_CANNIBAL ) || p.has_trait( trait_PSYCHOPATH ) || p.has_trait( trait_SAPIOVORE ) ) && - book.typeId() == "cookbook_human" ) { + book.typeId() == itype_cookbook_human ) { fun_bonus = std::abs( fun_bonus ); } else if( p.has_trait( trait_SPIRITUAL ) && book.has_flag( "INSPIRATIONAL" ) ) { fun_bonus = std::abs( fun_bonus * 3 ); @@ -3855,7 +3530,7 @@ void player::try_to_sleep( const time_duration &dur ) add_msg_if_player( m_bad, _( "Your soporific inducer doesn't have enough power to operate." ) ); } } - assign_activity( activity_id( "ACT_TRY_SLEEP" ), to_moves( dur ) ); + assign_activity( player_activity( try_sleep_activity_actor( dur ) ) ); } int player::sleep_spot( const tripoint &p ) const @@ -3892,10 +3567,10 @@ int player::sleep_spot( const tripoint &p ) const sleepy += 10; //comfy water! } - if( get_fatigue() < TIRED + 1 ) { - sleepy -= static_cast( ( TIRED + 1 - get_fatigue() ) / 4 ); + if( get_fatigue() < fatigue_levels::TIRED + 1 ) { + sleepy -= static_cast( ( fatigue_levels::TIRED + 1 - get_fatigue() ) / 4 ); } else { - sleepy += static_cast( ( get_fatigue() - TIRED + 1 ) / 16 ); + sleepy += static_cast( ( get_fatigue() - fatigue_levels::TIRED + 1 ) / 16 ); } if( current_stim > 0 || !has_trait( trait_INSOMNIA ) ) { @@ -3978,8 +3653,6 @@ void player::practice( const skill_id &id, int amount, int cap, bool suppress_wa { SkillLevel &level = get_skill_level_object( id ); const Skill &skill = id.obj(); - std::string skill_name = skill.name(); - if( !level.can_train() && !in_sleep_state() ) { // If leveling is disabled, don't train, don't drain focus, don't print anything // Leaving as a skill method rather than global for possible future skill cap setting @@ -4034,6 +3707,7 @@ void player::practice( const skill_id &id, int amount, int cap, bool suppress_wa int oldLevel = get_skill_level( id ); get_skill_level_object( id ).train( amount ); int newLevel = get_skill_level( id ); + std::string skill_name = skill.name(); if( is_player() && newLevel > oldLevel ) { add_msg( m_good, _( "Your skill in %s has increased to %d!" ), skill_name, newLevel ); } @@ -4138,39 +3812,25 @@ 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().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" ); - - const auto mods = weapon.gunmods(); - bool aux = std::any_of( mods.begin(), mods.end(), [&]( const item * e ) { - return e->is_gun() && e->ammo_capacity() > 0 && !e->has_flag( "RELOAD_AND_SHOOT" ); - } ); - - if( base || aux ) { - str += " ("; - if( base ) { - str += std::to_string( weapon.ammo_remaining() ); - if( weapon.magazine_integral() ) { - str += "/" + std::to_string( weapon.ammo_capacity() ); - } + std::string gunmode; + // only required for empty mags and empty guns + std::string mag_ammo; + if( weapon.gun_all_modes().size() > 1 ) { + gunmode = weapon.gun_current_mode().tname(); + } + + if( weapon.ammo_remaining() == 0 ) { + if( weapon.magazine_current() != nullptr ) { + const item *mag = weapon.magazine_current(); + mag_ammo = string_format( " (0/%d)", + mag->ammo_capacity( item( mag->ammo_default() ).ammo_type() ) ); } else { - str += "---"; - } - str += ")"; - - for( auto e : mods ) { - if( e->is_gun() && e->ammo_capacity() > 0 && !e->has_flag( "RELOAD_AND_SHOOT" ) ) { - str += " (" + std::to_string( e->ammo_remaining() ); - if( e->magazine_integral() ) { - str += "/" + std::to_string( e->ammo_capacity() ); - } - str += ")"; - } + mag_ammo = _( " (empty)" ); } } - return str; + + return utf8_truncate( string_format( "%s%s%s", + gunmode, weapon.display_name(), mag_ammo ), truncate ); } else if( !is_armed() ) { return _( "fists" ); @@ -4246,6 +3906,8 @@ bool player::wield_contents( item &container, item *internal_item, bool penaltie weapon.on_wield( *this, mv ); + g->events().send( getID(), weapon.typeId() ); + return true; } diff --git a/src/player.h b/src/player.h index bdf958b66cfc4..45c3471332510 100644 --- a/src/player.h +++ b/src/player.h @@ -63,9 +63,6 @@ class JsonOut; class dispersion_sources; struct bionic; struct dealt_projectile_attack; - -using itype_id = std::string; -using faction_id = string_id; class profession; struct trap; @@ -87,7 +84,6 @@ template<> struct ret_val::default_failure : public std::integral_constant {}; - struct stat_mod { int strength = 0; int dexterity = 0; @@ -142,9 +138,6 @@ class player : public Character return false; // Overloaded for NPCs in npc.h } - /** Returns what color the player should be drawn as */ - nc_color basic_symbol_color() const override; - // populate variables, inventory items, and misc from json object virtual void deserialize( JsonIn &jsin ) = 0; @@ -258,7 +251,6 @@ class player : public Character void on_hit( Creature *source, bodypart_id bp_hit, float difficulty = INT_MIN, dealt_projectile_attack const *proj = nullptr ) override; - /** NPC-related item rating functions */ double weapon_value( const item &weap, int ammo = 10 ) const; // Evaluates item as a weapon double gun_value( const item &weap, int ammo = 10 ) const; // Evaluates item as a gun @@ -333,16 +325,12 @@ class player : public Character */ void siphon( vehicle &veh, const itype_id &desired_liquid ); - /** used for drinking from hands, returns how many charges were consumed */ - int drink_from_hands( item &water ); /** Used for eating object at pos, returns true if object is removed from inventory (last charge was consumed) */ - bool consume( item_location loc ); + bool consume( item_location loc, bool force = false ); /** Used for eating a particular item that doesn't need to be in inventory. * Returns true if the item is to be removed (doesn't remove). */ - bool consume_item( item &target ); + bool consume( item &target, bool force = false ); - /** Used for eating entered comestible, returns true if comestible is successfully eaten */ - bool eat( item &food, bool force = false ); /** Handles the enjoyability value for a book. **/ int book_fun_for( const item &book, const player &p ) const; @@ -393,15 +381,6 @@ class player : public Character bool unwield(); - /** - * Whether a tool or gun is potentially reloadable (optionally considering a specific ammo) - * @param it Thing to be reloaded - * @param ammo if set also check item currently compatible with this specific ammo or magazine - * @note items currently loaded with a detachable magazine are considered reloadable - * @note items with integral magazines are reloadable if free capacity permits (+/- ammo matches) - */ - bool can_reload( const item &it, const itype_id &ammo = std::string() ) const; - /** * Attempt to mend an item (fix any current faults) * @param obj Object to mend @@ -433,7 +412,7 @@ class player : public Character */ bool add_or_drop_with_msg( item &it, bool unloading = false, const item *avoid = nullptr ); - bool unload( item &it ); + bool unload( item_location &loc ); /** * Try to wield a contained item consuming moves proportional to weapon skill and volume. @@ -480,10 +459,10 @@ class player : public Character bool fun_to_read( const item &book ) const; /** Note that we've read a book at least once. **/ - virtual bool has_identified( const std::string &item_id ) const = 0; + virtual bool has_identified( const itype_id &item_id ) const = 0; /** Handles sleep attempts by the player, starts ACT_TRY_SLEEP activity */ - void try_to_sleep( const time_duration &dur = 30_minutes ); + void try_to_sleep( const time_duration &dur ); /** Rate point's ability to serve as a bed. Takes all mutations, fatigue and stimulants into account. */ int sleep_spot( const tripoint &p ) const; /** Checked each turn during "lying_down", returns true if the player falls asleep */ @@ -502,23 +481,13 @@ class player : public Character * if they will potentially have enough light when player gets there */ float fine_detail_vision_mod( const tripoint &p = tripoint_zero ) const; - /** Used to determine player feedback on item use for the inventory code. - * rates usability lower for non-tools (books, etc.) */ - hint_rating rate_action_use( const item &it ) const; - hint_rating rate_action_wear( const item &it ) const; - hint_rating rate_action_takeoff( const item &it ) const; - hint_rating rate_action_reload( const item &it ) const; - hint_rating rate_action_unload( const item &it ) const; - hint_rating rate_action_mend( const item &it ) const; - hint_rating rate_action_disassemble( const item &it ); - //returns true if the warning is now beyond final and results in hostility. bool add_faction_warning( const faction_id &id ); int current_warnings_fac( const faction_id &id ); bool beyond_final_warning( const faction_id &id ); /** Returns the effect of pain on stats */ stat_mod get_pain_penalty() const; - int kcal_speed_penalty(); + int kcal_speed_penalty() const; /** Returns the penalty to speed from thirst */ static int thirst_speed_penalty( int thirst ); /** This handles giving xp for a skill */ @@ -768,7 +737,6 @@ class player : public Character using Character::query_yn; bool query_yn( const std::string &mes ) const override; - /** * Try to disarm the NPC. May result in fail attempt, you receiving the wepon and instantly wielding it, * or the weapon falling down on the floor nearby. NPC is always getting angry with you. @@ -786,15 +754,6 @@ class player : public Character /** Processes human-specific effects of an effect. */ void process_one_effect( effect &it, bool is_new ) override; - private: - - /** - * Consumes an item as medication. - * @param target Item consumed. Must be a medication or a container of medication. - * @return Whether the target was fully consumed. - */ - bool consume_med( item &target ); - private: /** warnings from a faction about bad behavior */ diff --git a/src/player_activity.cpp b/src/player_activity.cpp index 562cc7a7db085..c264407196648 100644 --- a/src/player_activity.cpp +++ b/src/player_activity.cpp @@ -23,16 +23,17 @@ #include "units.h" #include "value_ptr.h" +static const activity_id ACT_ATM( "ACT_ATM" ); static const activity_id ACT_FIRSTAID( "ACT_FIRSTAID" ); +static const activity_id ACT_FISH( "ACT_FISH" ); static const activity_id ACT_GAME( "ACT_GAME" ); +static const activity_id ACT_GUNMOD_ADD( "ACT_GUNMOD_ADD" ); +static const activity_id ACT_HAND_CRANK( "ACT_HAND_CRANK" ); +static const activity_id ACT_OXYTORCH( "ACT_OXYTORCH" ); static const activity_id ACT_PICKAXE( "ACT_PICKAXE" ); static const activity_id ACT_START_FIRE( "ACT_START_FIRE" ); -static const activity_id ACT_HAND_CRANK( "ACT_HAND_CRANK" ); +static const activity_id ACT_TRAVELLING( "ACT_TRAVELLING" ); static const activity_id ACT_VIBE( "ACT_VIBE" ); -static const activity_id ACT_OXYTORCH( "ACT_OXYTORCH" ); -static const activity_id ACT_FISH( "ACT_FISH" ); -static const activity_id ACT_ATM( "ACT_ATM" ); -static const activity_id ACT_GUNMOD_ADD( "ACT_GUNMOD_ADD" ); player_activity::player_activity() : type( activity_id::NULL_ID() ) { } @@ -41,12 +42,12 @@ player_activity::player_activity( activity_id t, int turns, int Index, int pos, type( t ), moves_total( turns ), moves_left( turns ), index( Index ), position( pos ), name( name_in ), - placement( tripoint_min ), auto_resume( false ) + placement( tripoint_min ) { } player_activity::player_activity( const activity_actor &actor ) : type( actor.get_type() ), - actor( actor.clone() ), moves_total( 0 ), moves_left( 0 ) + actor( actor.clone() ) { } @@ -228,7 +229,7 @@ void player_activity::do_turn( player &p ) p.drop_invalid_inventory(); return; } - const bool travel_activity = id() == "ACT_TRAVELLING"; + const bool travel_activity = id() == ACT_TRAVELLING; // This might finish the activity (set it to null) if( actor ) { actor->do_turn( *this, p ); @@ -282,6 +283,13 @@ void player_activity::do_turn( player &p ) } } +void player_activity::canceled( Character &who ) +{ + if( *this && actor ) { + actor->canceled( *this, who ); + } +} + template bool containers_equal( const T &left, const T &right ) { @@ -331,9 +339,15 @@ bool player_activity::can_resume_with( const player_activity &other, const Chara position == other.position && name == other.name && targets == other.targets; } -bool player_activity::is_distraction_ignored( distraction_type type ) const +bool player_activity::is_interruptible() const +{ + return ( type.is_null() || type->interruptable() ) && interruptable; +} + +bool player_activity::is_distraction_ignored( distraction_type distraction ) const { - return ignored_distractions.find( type ) != ignored_distractions.end(); + return !is_interruptible() || + ignored_distractions.find( distraction ) != ignored_distractions.end(); } void player_activity::ignore_distraction( distraction_type type ) diff --git a/src/player_activity.h b/src/player_activity.h index 4000c4af66c4e..419d8c66e4b88 100644 --- a/src/player_activity.h +++ b/src/player_activity.h @@ -39,6 +39,10 @@ class player_activity int moves_total = 0; /** The number of moves remaining in this activity before it is complete. */ int moves_left = 0; + /** Controls whether this activity can be cancelled at all */ + bool interruptable = true; + /** Controls whether this activity can be cancelled with 'pause' action */ + bool interruptable_with_kb = true; // The members in the following block are deprecated, prefer creating a new // activity_actor. @@ -74,7 +78,7 @@ class player_activity */ player_activity( const activity_actor &actor ); - player_activity( player_activity && ) = default; + player_activity( player_activity && ) noexcept = default; player_activity( const player_activity & ) = default; player_activity &operator=( player_activity && ) = default; player_activity &operator=( const player_activity & ) = default; @@ -138,14 +142,20 @@ class player_activity */ void do_turn( player &p ); + /** + * Performs activity-specific cleanup when Character::cancel_activity() is called + */ + void canceled( Character &who ); + /** * Returns true if activities are similar enough that this activity * can be resumed instead of starting the other activity. */ bool can_resume_with( const player_activity &other, const Character &who ) const; - bool is_distraction_ignored( distraction_type type ) const; - void ignore_distraction( distraction_type type ); + bool is_interruptible() const; + bool is_distraction_ignored( distraction_type ) const; + void ignore_distraction( distraction_type ); void allow_distractions(); void inherit_distractions( const player_activity & ); }; diff --git a/src/player_display.cpp b/src/player_display.cpp index 3fdfe46a6f2b9..d7266c3e23e98 100644 --- a/src/player_display.cpp +++ b/src/player_display.cpp @@ -63,7 +63,9 @@ static bool should_combine_bps( const player &p, body_part l, body_part r, enc_data[l] == enc_data[r] && temperature_print_rescaling( p.temp_conv[l] ) == temperature_print_rescaling( p.temp_conv[r] ) && // selected_clothing covers both or neither parts - ( !selected_clothing || ( selected_clothing->covers( l ) == selected_clothing->covers( r ) ) ); + ( !selected_clothing || + ( selected_clothing->covers( convert_bp( l ).id() ) == selected_clothing->covers( convert_bp( + r ).id() ) ) ); } static std::vector> list_and_combine_bps( const player &p, @@ -119,8 +121,9 @@ void player::print_encumbrance( const catacurses::window &win, const int line, const body_part bp = bps[thisline].first; const bool combine = bps[thisline].second; const encumbrance_data &e = enc_data[bp]; - const bool highlighted = selected_clothing ? selected_clothing->covers( bp ) : false; - std::string out = body_part_name_as_heading( bp, combine ? 2 : 1 ); + const bool highlighted = selected_clothing ? selected_clothing->covers( convert_bp( + bp ).id() ) : false; + std::string out = body_part_name_as_heading( convert_bp( bp ).id(), combine ? 2 : 1 ); if( utf8_width( out ) > 7 ) { out = utf8_truncate( out, 7 ); } @@ -162,7 +165,7 @@ static std::string swim_cost_text( int moves ) static std::string run_cost_text( int moves ) { - return string_format( _( "Running movement point cost: %+d\n" ), moves ); + return string_format( _( "Movement point cost: %+d\n" ), moves ); } static std::string reload_cost_text( int moves ) @@ -278,22 +281,104 @@ static bool is_cqb_skill( const skill_id &id ) return std::find( cqb_skills.begin(), cqb_skills.end(), id ) != cqb_skills.end(); } -static void draw_stats_tab( const catacurses::window &w_stats, const catacurses::window &w_info, - player &you, unsigned int &line, int &curtab, input_context &ctxt, bool &done, - std::string &action ) +namespace { +enum class player_display_tab : int { + stats, + encumbrance, + skills, + traits, + bionics, + effects, + num_tabs, +}; +} // namespace + +static player_display_tab next_tab( const player_display_tab tab ) +{ + if( static_cast( tab ) + 1 < static_cast( player_display_tab::num_tabs ) ) { + return static_cast( static_cast( tab ) + 1 ); + } else { + return static_cast( 0 ); + } +} + +static player_display_tab prev_tab( const player_display_tab tab ) +{ + if( static_cast( tab ) > 0 ) { + return static_cast( static_cast( tab ) - 1 ); + } else { + return static_cast( static_cast( player_display_tab::num_tabs ) - 1 ); + } +} + +static void draw_stats_tab( const catacurses::window &w_stats, + const player &you, const unsigned int line, const player_display_tab curtab ) +{ + werase( w_stats ); + const nc_color title_col = curtab == player_display_tab::stats ? h_light_gray : c_light_gray; + center_print( w_stats, 0, title_col, _( title_STATS ) ); - mvwprintz( w_stats, point_zero, h_light_gray, header_spaces ); - center_print( w_stats, 0, h_light_gray, _( title_STATS ) ); + const auto line_color = [curtab, line]( const unsigned int line_to_draw ) { + if( curtab == player_display_tab::stats && line == line_to_draw ) { + return h_light_gray; + } else { + return c_light_gray; + } + }; - // Clear bonus/penalty menu. - mvwprintz( w_stats, point( 0, 8 ), c_light_gray, std::string( 26, ' ' ) ); + // Stats + const auto display_stat = [&w_stats]( const char *name, int cur, int max, int line_n, + const nc_color col ) { + nc_color cstatus; + if( cur <= 0 ) { + cstatus = c_dark_gray; + } else if( cur < max / 2 ) { + cstatus = c_red; + } else if( cur < max ) { + cstatus = c_light_red; + } else if( cur == max ) { + cstatus = c_white; + } else if( cur < max * 1.5 ) { + cstatus = c_light_green; + } else { + cstatus = c_green; + } + + mvwprintz( w_stats, point( 1, line_n ), col, name ); + mvwprintz( w_stats, point( 18, line_n ), cstatus, "%2d", cur ); + mvwprintz( w_stats, point( 21, line_n ), c_light_gray, "(%2d)", max ); + }; + + display_stat( _( "Strength:" ), you.get_str(), you.get_str_base(), 1, line_color( 0 ) ); + display_stat( _( "Dexterity:" ), you.get_dex(), you.get_dex_base(), 2, line_color( 1 ) ); + display_stat( _( "Intelligence:" ), you.get_int(), you.get_int_base(), 3, line_color( 2 ) ); + display_stat( _( "Perception:" ), you.get_per(), you.get_per_base(), 4, line_color( 3 ) ); + mvwprintz( w_stats, point( 1, 5 ), line_color( 4 ), _( "Weight:" ) ); + mvwprintz( w_stats, point( 25 - utf8_width( you.get_weight_string() ), 5 ), line_color( 4 ), + you.get_weight_string() ); + mvwprintz( w_stats, point( 1, 6 ), line_color( 5 ), _( "Height:" ) ); + mvwprintz( w_stats, point( 25 - utf8_width( you.height_string() ), 6 ), line_color( 5 ), + you.height_string() ); + mvwprintz( w_stats, point( 1, 7 ), line_color( 6 ), _( "Age:" ) ); + mvwprintz( w_stats, point( 25 - utf8_width( you.age_string() ), 7 ), line_color( 6 ), + you.age_string() ); + mvwprintz( w_stats, point( 1, 8 ), line_color( 7 ), _( "Blood type:" ) ); + mvwprintz( w_stats, point( 25 - utf8_width( io::enum_to_string( you.my_blood_type ) + + ( you.blood_rh_factor ? "+" : "-" ) ), 8 ), + line_color( 7 ), + io::enum_to_string( you.my_blood_type ) + ( you.blood_rh_factor ? "+" : "-" ) ); + + wnoutrefresh( w_stats ); +} + +static void draw_stats_info( const catacurses::window &w_info, + const player &you, const unsigned int line ) +{ + werase( w_info ); nc_color col_temp = c_light_gray; if( line == 0 ) { - // Display information on player strength in appropriate window - // NOLINTNEXTLINE(cata-use-named-point-constants) - mvwprintz( w_stats, point( 1, 1 ), h_light_gray, _( "Strength:" ) ); // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_magenta, _( "Strength affects your melee damage, the amount of weight you can carry, your total HP, " @@ -304,10 +389,8 @@ static void draw_stats_tab( const catacurses::window &w_stats, const catacurses: string_format( _( "Carry weight (%s): %.1f" ), weight_units(), convert_weight( you.weight_capacity() ) ) ); print_colored_text( w_info, point( 1, 5 ), col_temp, c_light_gray, - string_format( _( "Melee damage: %.1f" ), you.bonus_damage( false ) ) ); + string_format( _( "Bash damage: %.1f" ), you.bonus_damage( false ) ) ); } else if( line == 1 ) { - // Display information on player dexterity in appropriate window - mvwprintz( w_stats, point( 1, 2 ), h_light_gray, _( "Dexterity:" ) ); // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_magenta, _( "Dexterity affects your chance to hit in melee combat, helps you steady your " @@ -321,8 +404,6 @@ static void draw_stats_tab( const catacurses::window &w_stats, const catacurses: string_format( _( "Throwing penalty per target's dodge: %+d" ), you.throw_dispersion_per_dodge( false ) ) ); } else if( line == 2 ) { - // Display information on player intelligence in appropriate window - mvwprintz( w_stats, point( 1, 3 ), h_light_gray, _( "Intelligence:" ) ); // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_magenta, _( "Intelligence is less important in most situations, but it is vital for more complex tasks like " @@ -336,8 +417,6 @@ static void draw_stats_tab( const catacurses::window &w_stats, const catacurses: print_colored_text( w_info, point( 1, 5 ), col_temp, c_light_gray, string_format( _( "Crafting bonus: %d%%" ), you.get_int() ) ); } else if( line == 3 ) { - // Display information on player perception in appropriate window - mvwprintz( w_stats, point( 1, 4 ), h_light_gray, _( "Perception:" ) ); // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_magenta, _( "Perception is the most important stat for ranged combat. It's also used for " @@ -349,9 +428,6 @@ static void draw_stats_tab( const catacurses::window &w_stats, const catacurses: string_format( _( "Aiming penalty: %+d" ), -you.ranged_per_mod() ) ); } } else if( line == 4 ) { - mvwprintz( w_stats, point( 1, 5 ), h_light_gray, _( "Weight:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.get_weight_string() ), 5 ), h_light_gray, - you.get_weight_string() ); // NOLINTNEXTLINE(cata-use-named-point-constants) const int lines = fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_magenta, _( "Your weight is a general indicator of how much fat your body has stored up," @@ -360,79 +436,49 @@ static void draw_stats_tab( const catacurses::window &w_stats, const catacurses: fold_and_print( w_info, point( 1, 1 + lines ), FULL_SCREEN_WIDTH - 2, c_light_gray, you.get_weight_description() ); } else if( line == 5 ) { - mvwprintz( w_stats, point( 1, 6 ), h_light_gray, _( "Height:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.height_string() ), 6 ), h_light_gray, - you.height_string() ); // NOLINTNEXTLINE(cata-use-named-point-constants) const int lines = fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_magenta, _( "Your height. Simply how tall you are." ) ); fold_and_print( w_info, point( 1, 1 + lines ), FULL_SCREEN_WIDTH - 2, c_light_gray, you.height_string() ); } else if( line == 6 ) { - mvwprintz( w_stats, point( 1, 7 ), h_light_gray, _( "Age:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.age_string() ), 7 ), h_light_gray, - you.age_string() ); // NOLINTNEXTLINE(cata-use-named-point-constants) const int lines = fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_magenta, _( "This is how old you are." ) ); fold_and_print( w_info, point( 1, 1 + lines ), FULL_SCREEN_WIDTH - 2, c_light_gray, you.age_string() ); + } else if( line == 7 ) { + // NOLINTNEXTLINE(cata-use-named-point-constants) + const int lines = fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_magenta, + _( "This is your blood type and Rh factor." ) ); + fold_and_print( w_info, point( 1, 1 + lines ), FULL_SCREEN_WIDTH - 2, c_light_gray, + string_format( _( "Blood type: %s" ), io::enum_to_string( you.my_blood_type ) ) ); + fold_and_print( w_info, point( 1, 2 + lines ), FULL_SCREEN_WIDTH - 2, c_light_gray, + string_format( _( "Rh factor: %s" ), you.blood_rh_factor ? "positive (+)" : "negative (-)" ) ); } - wrefresh( w_stats ); - wrefresh( w_info ); + wnoutrefresh( w_info ); +} - action = ctxt.handle_input(); - if( action == "DOWN" ) { - line++; - if( line == 7 ) { - line = 0; - } - } else if( action == "UP" ) { - if( line == 0 ) { - line = 6; - } else { - line--; - } - } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { - mvwprintz( w_stats, point_zero, c_light_gray, header_spaces ); - center_print( w_stats, 0, c_light_gray, _( title_STATS ) ); - wrefresh( w_stats ); - line = 0; - curtab = action == "NEXT_TAB" ? curtab + 1 : 6; - } else if( action == "QUIT" ) { - done = true; - } else if( action == "CONFIRM" && line < 4 && get_option( "STATS_THROUGH_KILLS" ) && - you.is_player() ) { - g->u.upgrade_stat_prompt( static_cast( line ) ); +static void draw_encumbrance_tab( const catacurses::window &w_encumb, + const player &you, const unsigned int line, const player_display_tab curtab ) +{ + werase( w_encumb ); + const bool is_current_tab = curtab == player_display_tab::encumbrance; + const nc_color title_col = is_current_tab ? h_light_gray : c_light_gray; + center_print( w_encumb, 0, title_col, _( title_ENCUMB ) ); + if( is_current_tab ) { + you.print_encumbrance( w_encumb, line ); + } else { + you.print_encumbrance( w_encumb ); } - // NOLINTNEXTLINE(cata-use-named-point-constants) - mvwprintz( w_stats, point( 1, 1 ), c_light_gray, _( "Strength:" ) ); - mvwprintz( w_stats, point( 1, 2 ), c_light_gray, _( "Dexterity:" ) ); - mvwprintz( w_stats, point( 1, 3 ), c_light_gray, _( "Intelligence:" ) ); - mvwprintz( w_stats, point( 1, 4 ), c_light_gray, _( "Perception:" ) ); - mvwprintz( w_stats, point( 1, 5 ), c_light_gray, _( "Weight:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.get_weight_string() ), 5 ), c_light_gray, - you.get_weight_string() ); - mvwprintz( w_stats, point( 1, 6 ), c_light_gray, _( "Height:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.height_string() ), 6 ), c_light_gray, - you.height_string() ); - mvwprintz( w_stats, point( 1, 7 ), c_light_gray, _( "Age:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.age_string() ), 7 ), c_light_gray, - you.age_string() ); - wrefresh( w_stats ); + wnoutrefresh( w_encumb ); } -static void draw_encumbrance_tab( const catacurses::window &w_encumb, - const catacurses::window &w_info, player &you, unsigned int &line, int &curtab, input_context &ctxt, - bool &done, std::string &action ) +static void draw_encumbrance_info( const catacurses::window &w_info, + const player &you, const unsigned int line ) { const std::vector> bps = list_and_combine_bps( you, nullptr ); - werase( w_encumb ); - center_print( w_encumb, 0, h_light_gray, _( title_ENCUMB ) ); - you.print_encumbrance( w_encumb, line ); - wrefresh( w_encumb ); - werase( w_info ); body_part bp = num_bp; bool combined_here = false; @@ -443,52 +489,34 @@ static void draw_encumbrance_tab( const catacurses::window &w_encumb, const std::string s = get_encumbrance_description( you, bp, combined_here ); // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_light_gray, s ); - wrefresh( w_info ); - - action = ctxt.handle_input(); - if( action == "DOWN" ) { - if( line + 1 < bps.size() ) { - ++line; - } - } else if( action == "UP" ) { - if( line > 0 ) { - --line; - } - } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { - mvwprintz( w_encumb, point_zero, c_light_gray, header_spaces ); - center_print( w_encumb, 0, c_light_gray, _( title_ENCUMB ) ); - wrefresh( w_encumb ); - line = 0; - curtab = action == "NEXT_TAB" ? curtab + 1 : curtab - 1; - } else if( action == "QUIT" ) { - done = true; - } + wnoutrefresh( w_info ); } -static void draw_traits_tab( const catacurses::window &w_traits, const catacurses::window &w_info, - unsigned int &line, int &curtab, input_context &ctxt, bool &done, - std::string &action, std::vector &traitslist, +static void draw_traits_tab( const catacurses::window &w_traits, + const unsigned int line, const player_display_tab curtab, + const std::vector &traitslist, const size_t trait_win_size_y ) { werase( w_traits ); - mvwprintz( w_traits, point_zero, h_light_gray, header_spaces ); - center_print( w_traits, 0, h_light_gray, _( title_TRAITS ) ); + const bool is_current_tab = curtab == player_display_tab::traits; + const nc_color title_col = is_current_tab ? h_light_gray : c_light_gray; + center_print( w_traits, 0, title_col, _( title_TRAITS ) ); size_t min = 0; size_t max = 0; - if( line <= ( trait_win_size_y - 1 ) / 2 ) { + if( !is_current_tab || line <= ( trait_win_size_y - 2 ) / 2 ) { min = 0; - max = trait_win_size_y; + max = trait_win_size_y - 1; if( traitslist.size() < max ) { max = traitslist.size(); } - } else if( line >= traitslist.size() - ( trait_win_size_y + 1 ) / 2 ) { - min = ( traitslist.size() < trait_win_size_y ? 0 : traitslist.size() - trait_win_size_y ); + } else if( line >= traitslist.size() - trait_win_size_y / 2 ) { + min = ( traitslist.size() < trait_win_size_y - 1 ? 0 : traitslist.size() - trait_win_size_y + 1 ); max = traitslist.size(); } else { - min = line - ( trait_win_size_y - 1 ) / 2; - max = line + trait_win_size_y / 2 + 1; + min = line - ( trait_win_size_y - 2 ) / 2; + max = line + ( trait_win_size_y + 1 ) / 2; if( traitslist.size() < max ) { max = traitslist.size(); } @@ -498,66 +526,45 @@ static void draw_traits_tab( const catacurses::window &w_traits, const catacurse const auto &mdata = traitslist[i].obj(); const auto color = mdata.get_display_color(); trim_and_print( w_traits, point( 1, static_cast( 1 + i - min ) ), getmaxx( w_traits ) - 1, - i == line ? hilite( color ) : color, mdata.name() ); + is_current_tab && i == line ? hilite( color ) : color, mdata.name() ); } + wnoutrefresh( w_traits ); +} + +static void draw_traits_info( const catacurses::window &w_info, const unsigned int line, + const std::vector &traitslist ) +{ + werase( w_info ); if( line < traitslist.size() ) { const auto &mdata = traitslist[line].obj(); // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_light_gray, string_format( "%s: %s", colorize( mdata.name(), mdata.get_display_color() ), traitslist[line]->desc() ) ); } - wrefresh( w_traits ); - wrefresh( w_info ); - - action = ctxt.handle_input(); - if( action == "DOWN" ) { - if( line < traitslist.size() - 1 ) { - line++; - } - return; - } else if( action == "UP" ) { - if( line > 0 ) { - line--; - } - } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { - mvwprintz( w_traits, point_zero, c_light_gray, header_spaces ); - center_print( w_traits, 0, c_light_gray, _( title_TRAITS ) ); - for( size_t i = 0; i < traitslist.size() && i < trait_win_size_y; i++ ) { - const auto &mdata = traitslist[i].obj(); - mvwprintz( w_traits, point( 1, static_cast( i + 1 ) ), c_black, " " ); - const auto color = mdata.get_display_color(); - trim_and_print( w_traits, point( 1, static_cast( i + 1 ) ), getmaxx( w_traits ) - 1, - color, mdata.name() ); - } - wrefresh( w_traits ); - line = 0; - curtab = action == "NEXT_TAB" ? curtab + 1 : curtab - 1; - } else if( action == "QUIT" ) { - done = true; - } + wnoutrefresh( w_info ); } -static void draw_bionics_tab( const catacurses::window &w_bionics, const catacurses::window &w_info, - player &you, unsigned int &line, int &curtab, input_context &ctxt, bool &done, - std::string &action, std::vector &bionicslist, - const size_t bionics_win_size_y ) +static void draw_bionics_tab( const catacurses::window &w_bionics, + const player &you, const unsigned int line, const player_display_tab curtab, + const std::vector &bionicslist, const size_t bionics_win_size_y ) { werase( w_bionics ); - mvwprintz( w_bionics, point_zero, h_light_gray, header_spaces ); - center_print( w_bionics, 0, h_light_gray, _( title_BIONICS ) ); + const bool is_current_tab = curtab == player_display_tab::bionics; + const nc_color title_col = is_current_tab ? h_light_gray : c_light_gray; + center_print( w_bionics, 0, title_col, _( title_BIONICS ) ); // NOLINTNEXTLINE(cata-use-named-point-constants) trim_and_print( w_bionics, point( 1, 1 ), getmaxx( w_bionics ) - 1, c_white, string_format( _( "Bionic Power: %1$d" " / %2$d" ), units::to_kilojoule( you.get_power_level() ), units::to_kilojoule( you.get_max_power_level() ) ) ); - const size_t useful_y = bionics_win_size_y - 1; + const size_t useful_y = bionics_win_size_y - 2; const size_t half_y = useful_y / 2; size_t min = 0; size_t max = 0; - if( line <= half_y ) { // near the top + if( !is_current_tab || line <= half_y ) { // near the top min = 0; max = std::min( bionicslist.size(), useful_y ); } else if( line >= bionicslist.size() - half_y ) { // near the bottom @@ -570,74 +577,52 @@ static void draw_bionics_tab( const catacurses::window &w_bionics, const catacur for( size_t i = min; i < max; i++ ) { trim_and_print( w_bionics, point( 1, static_cast( 2 + i - min ) ), getmaxx( w_bionics ) - 1, - i == line ? hilite( c_white ) : c_white, "%s", bionicslist[i].info().name ); + is_current_tab && i == line ? hilite( c_white ) : c_white, "%s", bionicslist[i].info().name ); } + wnoutrefresh( w_bionics ); +} + +static void draw_bionics_info( const catacurses::window &w_info, const unsigned int line, + const std::vector &bionicslist ) +{ + werase( w_info ); if( line < bionicslist.size() ) { // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_light_gray, "%s", bionicslist[line].info().description ); } - wrefresh( w_bionics ); - wrefresh( w_info ); - - action = ctxt.handle_input(); - if( action == "DOWN" ) { - if( line < bionicslist.size() - 1 ) { - line++; - } - return; - } else if( action == "UP" ) { - if( line > 0 ) { - line--; - } - } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { - mvwprintz( w_bionics, point_zero, c_light_gray, header_spaces ); - center_print( w_bionics, 0, c_light_gray, _( title_BIONICS ) ); - // NOLINTNEXTLINE(cata-use-named-point-constants) - trim_and_print( w_bionics, point( 1, 1 ), getmaxx( w_bionics ) - 1, c_white, - string_format( _( "Bionic Power: %1$d" - " / %2$d" ), - units::to_kilojoule( you.get_power_level() ), units::to_kilojoule( you.get_max_power_level() ) ) ); - for( size_t i = 0; i < bionicslist.size() && i < bionics_win_size_y - 1; i++ ) { - mvwprintz( w_bionics, point( 1, static_cast( i + 2 ) ), c_black, " " ); - trim_and_print( w_bionics, point( 1, static_cast( i + 2 ) ), getmaxx( w_bionics ) - 1, - c_white, "%s", bionicslist[i].info().name ); - } - wrefresh( w_bionics ); - line = 0; - curtab = action == "NEXT_TAB" ? curtab + 1 : curtab - 1; - } else if( action == "QUIT" ) { - done = true; - } + wnoutrefresh( w_info ); } -static void draw_effects_tab( const catacurses::window &w_effects, const catacurses::window &w_info, - unsigned int &line, int &curtab, input_context &ctxt, bool &done, - std::string &action, std::vector> &effect_name_and_text, +static void draw_effects_tab( const catacurses::window &w_effects, + const unsigned int line, const player_display_tab curtab, + const std::vector> &effect_name_and_text, const size_t effect_win_size_y ) { - mvwprintz( w_effects, point_zero, h_light_gray, header_spaces ); - center_print( w_effects, 0, h_light_gray, _( title_EFFECTS ) ); + werase( w_effects ); + const bool is_current_tab = curtab == player_display_tab::effects; + const nc_color title_col = is_current_tab ? h_light_gray : c_light_gray; + center_print( w_effects, 0, title_col, _( title_EFFECTS ) ); - const size_t half_y = effect_win_size_y / 2; + const size_t half_y = ( effect_win_size_y - 1 ) / 2; size_t min = 0; size_t max = 0; const size_t actual_size = effect_name_and_text.size(); - if( line <= half_y ) { + if( !is_current_tab || line <= half_y ) { min = 0; - max = effect_win_size_y; + max = effect_win_size_y - 1; if( actual_size < max ) { max = actual_size; } } else if( line >= actual_size - half_y ) { - min = ( actual_size < effect_win_size_y ? 0 : actual_size - effect_win_size_y ); + min = ( actual_size < effect_win_size_y - 1 ? 0 : actual_size - effect_win_size_y + 1 ); max = actual_size; } else { min = line - half_y; - max = line - half_y + effect_win_size_y; + max = line - half_y + effect_win_size_y - 1; if( actual_size < max ) { max = actual_size; } @@ -645,40 +630,22 @@ static void draw_effects_tab( const catacurses::window &w_effects, const catacur for( size_t i = min; i < max; i++ ) { trim_and_print( w_effects, point( 0, static_cast( 1 + i - min ) ), getmaxx( w_effects ) - 1, - i == line ? h_light_gray : c_light_gray, effect_name_and_text[i].first ); + is_current_tab && i == line ? h_light_gray : c_light_gray, effect_name_and_text[i].first ); } + wnoutrefresh( w_effects ); +} + +static void draw_effects_info( const catacurses::window &w_info, const unsigned int line, + const std::vector> &effect_name_and_text ) +{ + werase( w_info ); + const size_t actual_size = effect_name_and_text.size(); if( line < actual_size ) { // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_light_gray, effect_name_and_text[line].second ); } - wrefresh( w_effects ); - wrefresh( w_info ); - - action = ctxt.handle_input(); - if( action == "DOWN" ) { - if( line < actual_size - 1 ) { - line++; - } - return; - } else if( action == "UP" ) { - if( line > 0 ) { - line--; - } - } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { - mvwprintz( w_effects, point_zero, c_light_gray, header_spaces ); - center_print( w_effects, 0, c_light_gray, _( title_EFFECTS ) ); - for( size_t i = 0; i < actual_size && i < 7; i++ ) { - trim_and_print( w_effects, point( 0, static_cast( i ) + 1 ), getmaxx( w_effects ) - 1, - c_light_gray, - effect_name_and_text[i].first ); - } - wrefresh( w_effects ); - line = 0; - curtab = action == "NEXT_TAB" ? 1 : curtab - 1; - } else if( action == "QUIT" ) { - done = true; - } + wnoutrefresh( w_info ); } struct HeaderSkill { @@ -688,39 +655,36 @@ struct HeaderSkill { } }; -static const Skill *draw_skills_list( const catacurses::window &w_skills, - player &you, unsigned int &line, - std::vector &skillslist, - const size_t skill_win_size_y ) +static void draw_skills_tab( const catacurses::window &w_skills, + player &you, unsigned int line, const player_display_tab curtab, + std::vector &skillslist, + const size_t skill_win_size_y ) { const int col_width = 25; if( line == 0 ) { //can't point to a header; line = 1; } - nc_color cstatus = c_light_gray; - if( line < 100 ) { - mvwprintz( w_skills, point_zero, h_light_gray, header_spaces ); - cstatus = hilite( cstatus ); - } + werase( w_skills ); + const bool is_current_tab = curtab == player_display_tab::skills; + nc_color cstatus = is_current_tab ? h_light_gray : c_light_gray; center_print( w_skills, 0, cstatus, _( title_SKILLS ) ); size_t min = 0; size_t max = 0; - const size_t half_y = skill_win_size_y / 2; + const size_t half_y = ( skill_win_size_y - 1 ) / 2; - if( line <= half_y || line > 100 ) { + if( !is_current_tab || line <= half_y ) { min = 0; } else if( line >= skillslist.size() - half_y ) { - min = ( skillslist.size() < skill_win_size_y ? 0 : skillslist.size() - - skill_win_size_y ); + min = ( skillslist.size() < skill_win_size_y - 1 ? 0 : skillslist.size() - + skill_win_size_y + 1 ); } else { min = line - half_y; } - max = std::min( min + skill_win_size_y, skillslist.size() ); + max = std::min( min + skill_win_size_y - 1, skillslist.size() ); - const Skill *selectedSkill = nullptr; int y_pos = 1; for( size_t i = min; i < max; i++, y_pos++ ) { const Skill *aSkill = skillslist[i].skill; @@ -743,8 +707,7 @@ static const Skill *draw_skills_list( const catacurses::window &w_skills, exercise = 0; locked = true; } - if( i == line ) { - selectedSkill = aSkill; + if( is_current_tab && i == line ) { if( locked ) { cstatus = h_yellow; } else if( !can_train ) { @@ -781,22 +744,25 @@ static const Skill *draw_skills_list( const catacurses::window &w_skills, } } - return selectedSkill; + if( is_current_tab && skillslist.size() > skill_win_size_y - 1 ) { + draw_scrollbar( w_skills, line - 1, skill_win_size_y - 1, skillslist.size() - 1, + // NOLINTNEXTLINE(cata-use-named-point-constants) + point( 0, 1 ) ); + } + wnoutrefresh( w_skills ); } -static void draw_skills_tab( const catacurses::window &w_skills, const catacurses::window &w_info, - player &you, unsigned int &line, int &curtab, input_context &ctxt, bool &done, - std::string &action, std::vector &skillslist, - const size_t skill_win_size_y ) +static void draw_skills_info( const catacurses::window &w_info, unsigned int line, + const std::vector &skillslist ) { - - const Skill *selectedSkill = draw_skills_list( w_skills, you, line, skillslist, skill_win_size_y ); - int list_size = skillslist.size(); - if( skillslist.size() > skill_win_size_y ) { - draw_scrollbar( w_skills, line, skill_win_size_y, list_size, - point_south ); + werase( w_info ); + if( line < 1 ) { + line = 1; + } + const Skill *selectedSkill = nullptr; + if( line < skillslist.size() && !skillslist[line].is_header ) { + selectedSkill = skillslist[line].skill; } - wrefresh( w_skills ); werase( w_info ); @@ -805,249 +771,14 @@ static void draw_skills_tab( const catacurses::window &w_skills, const catacurse fold_and_print( w_info, point( 1, 0 ), FULL_SCREEN_WIDTH - 2, c_light_gray, selectedSkill->description() ); } - wrefresh( w_info ); - - action = ctxt.handle_input(); - if( action == "DOWN" ) { - line++; - if( static_cast( line ) >= skillslist.size() ) { - line %= skillslist.size(); - } - if( skillslist[line].is_header ) { //ok not to check for wraparound because header can't be at the end of the list - line++; - } - } else if( action == "UP" ) { - //ok not to check for -1 because header is always first in the list - line--; - if( skillslist[line].is_header ) { - if( line > 0 ) { - line--; - } else { - line = skillslist.size() - 1; - } - } - } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { - werase( w_skills ); - line = 1000; - draw_skills_list( w_skills, you, line, skillslist, skill_win_size_y ); - wrefresh( w_skills ); - line = 0; - curtab = action == "NEXT_TAB" ? curtab + 1 : curtab - 1; - } else if( action == "CONFIRM" ) { - if( selectedSkill ) { - you.get_skill_level_object( selectedSkill->ident() ).toggleTraining(); - } - } else if( action == "QUIT" ) { - done = true; - } -} - -static void draw_grid_borders( const catacurses::window &w_grid_top, - const catacurses::window &w_grid_skill, const catacurses::window &w_grid_trait, - const catacurses::window &w_grid_bionics, const catacurses::window &w_grid_effect, - const unsigned int &info_win_size_y, const unsigned int &infooffsetybottom, - const unsigned int &skill_win_size_y, const unsigned int &trait_win_size_y, - const unsigned int &bionics_win_size_y, const unsigned int &effect_win_size_y ) -{ - unsigned upper_info_border = 10; - unsigned lower_info_border = 1 + upper_info_border + info_win_size_y; - for( unsigned i = 0; i < static_cast( FULL_SCREEN_WIDTH + 1 ); i++ ) { - //Horizontal line top grid - mvwputch( w_grid_top, point( i, upper_info_border ), BORDER_COLOR, LINE_OXOX ); - mvwputch( w_grid_top, point( i, lower_info_border ), BORDER_COLOR, LINE_OXOX ); - - //Vertical line top grid - if( i <= infooffsetybottom ) { - mvwputch( w_grid_top, point( 26, i ), BORDER_COLOR, LINE_XOXO ); - mvwputch( w_grid_top, point( 53, i ), BORDER_COLOR, LINE_XOXO ); - mvwputch( w_grid_top, point( FULL_SCREEN_WIDTH, i ), BORDER_COLOR, LINE_XOXO ); - } - - //Horizontal line skills - if( i <= 26 ) { - mvwputch( w_grid_skill, point( i, skill_win_size_y ), BORDER_COLOR, LINE_OXOX ); - } - - //Vertical line skills - if( i <= skill_win_size_y ) { - mvwputch( w_grid_skill, point( 26, i ), BORDER_COLOR, LINE_XOXO ); - } - - //Horizontal line traits - if( i <= 26 ) { - mvwputch( w_grid_trait, point( i, trait_win_size_y ), BORDER_COLOR, LINE_OXOX ); - } - - //Vertical line traits - if( i <= trait_win_size_y ) { - mvwputch( w_grid_trait, point( 26, i ), BORDER_COLOR, LINE_XOXO ); - } - - //Horizontal line bionics - if( i <= 26 ) { - mvwputch( w_grid_bionics, point( i, bionics_win_size_y ), BORDER_COLOR, LINE_OXOX ); - } - - //Vertical line bionics - if( i <= bionics_win_size_y ) { - mvwputch( w_grid_bionics, point( 26, i ), BORDER_COLOR, LINE_XOXO ); - } - - //Horizontal line effects - if( i <= 27 ) { - mvwputch( w_grid_effect, point( i, effect_win_size_y ), BORDER_COLOR, LINE_OXOX ); - } - - //Vertical line effects - if( i <= effect_win_size_y ) { - mvwputch( w_grid_effect, point( 0, i ), BORDER_COLOR, LINE_XOXO ); - mvwputch( w_grid_effect, point( 27, i ), BORDER_COLOR, LINE_XOXO ); - } - } - - //Intersections top grid - mvwputch( w_grid_top, point( 26, lower_info_border ), BORDER_COLOR, LINE_OXXX ); // T - mvwputch( w_grid_top, point( 53, lower_info_border ), BORDER_COLOR, LINE_OXXX ); // T - mvwputch( w_grid_top, point( 26, upper_info_border ), BORDER_COLOR, LINE_XXOX ); // _|_ - mvwputch( w_grid_top, point( 53, upper_info_border ), BORDER_COLOR, LINE_XXOX ); // _|_ - mvwputch( w_grid_top, point( FULL_SCREEN_WIDTH, upper_info_border ), BORDER_COLOR, - LINE_XOXX ); // -| - mvwputch( w_grid_top, point( FULL_SCREEN_WIDTH, lower_info_border ), BORDER_COLOR, - LINE_XOXX ); // -| - wrefresh( w_grid_top ); - - mvwputch( w_grid_skill, point( 26, skill_win_size_y ), BORDER_COLOR, LINE_XOOX ); // _| - - if( skill_win_size_y > trait_win_size_y ) { - mvwputch( w_grid_skill, point( 26, trait_win_size_y ), BORDER_COLOR, LINE_XXXO ); // |- - } else if( skill_win_size_y == trait_win_size_y ) { - mvwputch( w_grid_skill, point( 26, trait_win_size_y ), BORDER_COLOR, LINE_XXOX ); // _|_ - } - - mvwputch( w_grid_trait, point( 26, trait_win_size_y ), BORDER_COLOR, LINE_XOXX ); // -| - - if( trait_win_size_y > effect_win_size_y ) { - mvwputch( w_grid_trait, point( 26, effect_win_size_y ), BORDER_COLOR, LINE_XXXO ); // |- - } else if( trait_win_size_y == effect_win_size_y ) { - mvwputch( w_grid_trait, point( 26, effect_win_size_y ), BORDER_COLOR, LINE_XXOX ); // _|_ - } else if( trait_win_size_y < effect_win_size_y ) { - mvwputch( w_grid_trait, point( 26, trait_win_size_y ), BORDER_COLOR, LINE_XOXX ); // -| - mvwputch( w_grid_trait, point( 26, effect_win_size_y ), BORDER_COLOR, LINE_XXOO ); // |_ - } - - if( ( trait_win_size_y + bionics_win_size_y ) > effect_win_size_y ) { - mvwputch( w_grid_bionics, point( 26, bionics_win_size_y ), BORDER_COLOR, LINE_XOOX ); // _| - } else if( ( trait_win_size_y + bionics_win_size_y ) == effect_win_size_y ) { - mvwputch( w_grid_bionics, point( 26, effect_win_size_y ), BORDER_COLOR, LINE_XXOX ); // _|_ - } else if( ( trait_win_size_y + bionics_win_size_y ) < effect_win_size_y ) { - mvwputch( w_grid_bionics, point( 26, bionics_win_size_y ), BORDER_COLOR, LINE_XOXX ); // -| - mvwputch( w_grid_bionics, point( 26, effect_win_size_y ), BORDER_COLOR, LINE_XXOO ); // |_ - } - - mvwputch( w_grid_effect, point( 0, effect_win_size_y ), BORDER_COLOR, LINE_XXOO ); // |_ - mvwputch( w_grid_effect, point( 27, effect_win_size_y ), BORDER_COLOR, LINE_XOOX ); // _| - - wrefresh( w_grid_skill ); - wrefresh( w_grid_effect ); - wrefresh( w_grid_trait ); - wrefresh( w_grid_bionics ); - + wnoutrefresh( w_info ); } -static void draw_initial_windows( const catacurses::window &w_stats, - const catacurses::window &w_encumb, const catacurses::window &w_traits, - const catacurses::window &w_bionics, const catacurses::window &w_effects, - const catacurses::window &w_skills, const catacurses::window &w_speed, player &you, - unsigned int &line, std::vector &traitslist, std::vector &bionicslist, - std::vector> &effect_name_and_text, - std::vector &skillslist, - const size_t bionics_win_size_y, const size_t effect_win_size_y, const size_t trait_win_size_y, - const size_t skill_win_size_y ) +static void draw_speed_tab( const catacurses::window &w_speed, + const player &you, + const std::map &speed_effects ) { - // First! Default STATS screen. - center_print( w_stats, 0, c_light_gray, _( title_STATS ) ); - - // Stats - const auto display_stat = [&w_stats]( const char *name, int cur, int max, int line_n ) { - nc_color cstatus; - if( cur <= 0 ) { - cstatus = c_dark_gray; - } else if( cur < max / 2 ) { - cstatus = c_red; - } else if( cur < max ) { - cstatus = c_light_red; - } else if( cur == max ) { - cstatus = c_white; - } else if( cur < max * 1.5 ) { - cstatus = c_light_green; - } else { - cstatus = c_green; - } - - mvwprintz( w_stats, point( 1, line_n ), c_light_gray, name ); - mvwprintz( w_stats, point( 18, line_n ), cstatus, "%2d", cur ); - mvwprintz( w_stats, point( 21, line_n ), c_light_gray, "(%2d)", max ); - }; - - display_stat( _( "Strength:" ), you.get_str(), you.get_str_base(), 1 ); - display_stat( _( "Dexterity:" ), you.get_dex(), you.get_dex_base(), 2 ); - display_stat( _( "Intelligence:" ), you.get_int(), you.get_int_base(), 3 ); - display_stat( _( "Perception:" ), you.get_per(), you.get_per_base(), 4 ); - mvwprintz( w_stats, point( 1, 5 ), c_light_gray, _( "Weight:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.get_weight_string() ), 5 ), c_light_gray, - you.get_weight_string() ); - mvwprintz( w_stats, point( 1, 6 ), c_light_gray, _( "Height:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.height_string() ), 6 ), c_light_gray, - you.height_string() ); - mvwprintz( w_stats, point( 1, 7 ), c_light_gray, _( "Age:" ) ); - mvwprintz( w_stats, point( 25 - utf8_width( you.age_string() ), 7 ), c_light_gray, - you.age_string() ); - - wrefresh( w_stats ); - - // Next, draw encumbrance. - center_print( w_encumb, 0, c_light_gray, _( title_ENCUMB ) ); - you.print_encumbrance( w_encumb ); - wrefresh( w_encumb ); - - // Next, draw traits. - center_print( w_traits, 0, c_light_gray, _( title_TRAITS ) ); - std::sort( traitslist.begin(), traitslist.end(), trait_display_sort ); - for( size_t i = 0; i < traitslist.size() && i < trait_win_size_y; i++ ) { - const auto &mdata = traitslist[i].obj(); - const auto color = mdata.get_display_color(); - trim_and_print( w_traits, point( 1, static_cast( i ) + 1 ), getmaxx( w_traits ) - 1, color, - mdata.name() ); - } - wrefresh( w_traits ); - - // Next, draw bionics - center_print( w_bionics, 0, c_light_gray, _( title_BIONICS ) ); - // NOLINTNEXTLINE(cata-use-named-point-constants) - trim_and_print( w_bionics, point( 1, 1 ), getmaxx( w_bionics ) - 1, c_white, - string_format( _( "Bionic Power: %1$d" - " / %2$d" ), - units::to_kilojoule( you.get_power_level() ), units::to_kilojoule( you.get_max_power_level() ) ) ); - for( size_t i = 0; i < bionicslist.size() && i < bionics_win_size_y - 1; i++ ) { - trim_and_print( w_bionics, point( 1, static_cast( i ) + 2 ), getmaxx( w_bionics ) - 1, c_white, - "%s", bionicslist[i].info().name ); - } - wrefresh( w_bionics ); - - // Next, draw effects. - center_print( w_effects, 0, c_light_gray, _( title_EFFECTS ) ); - for( size_t i = 0; i < effect_name_and_text.size() && i < effect_win_size_y; i++ ) { - trim_and_print( w_effects, point( 0, static_cast( i ) + 1 ), getmaxx( w_effects ) - 1, - c_light_gray, - effect_name_and_text[i].first ); - } - wrefresh( w_effects ); - - // Next, draw skills. - line = 1000; - draw_skills_list( w_skills, you, line, skillslist, skill_win_size_y ); - wrefresh( w_skills ); - + werase( w_speed ); // Finally, draw speed. center_print( w_speed, 0, c_light_gray, _( title_SPEED ) ); // NOLINTNEXTLINE(cata-use-named-point-constants) @@ -1055,7 +786,7 @@ static void draw_initial_windows( const catacurses::window &w_stats, mvwprintz( w_speed, point( 1, 2 ), c_light_gray, _( "Current Speed:" ) ); int newmoves = you.get_speed(); int pen = 0; - line = 3; + unsigned int line = 3; if( you.weight_carried() > you.weight_capacity() ) { pen = 25 * ( you.weight_carried() - you.weight_capacity() ) / ( you.weight_capacity() ); mvwprintz( w_speed, point( 1, line ), c_red, @@ -1125,6 +856,16 @@ static void draw_initial_windows( const catacurses::window &w_stats, if( you.has_bionic( bionic_id( "bio_speed" ) ) ) { mvwprintz( w_speed, point( 1, line ), c_green, pgettext( "speed bonus", "Bionic Speed +%2d%%" ), bio_speed_bonus ); + line++; + } + + for( const std::pair &speed_effect : speed_effects ) { + nc_color col = ( speed_effect.second > 0 ? c_green : c_red ); + mvwprintz( w_speed, point( 1, line ), col, "%s", speed_effect.first ); + mvwprintz( w_speed, point( 21, line ), col, ( speed_effect.second > 0 ? "+" : "-" ) ); + mvwprintz( w_speed, point( std::abs( speed_effect.second ) >= 10 ? 22 : 23, line ), col, "%d%%", + std::abs( speed_effect.second ) ); + line++; } int runcost = you.run_cost( 100 ); @@ -1134,12 +875,212 @@ static void draw_initial_windows( const catacurses::window &w_stats, col = ( newmoves >= 100 ? c_green : c_red ); mvwprintz( w_speed, point( 21 + ( newmoves >= 100 ? 0 : ( newmoves < 10 ? 2 : 1 ) ), 2 ), col, "%d", newmoves ); - wrefresh( w_speed ); + wnoutrefresh( w_speed ); +} + +static void draw_info_window( const catacurses::window &w_info, const player &you, + const unsigned int line, const player_display_tab curtab, + const std::vector &traitslist, + const std::vector &bionicslist, + const std::vector> &effect_name_and_text, + const std::vector &skillslist ) +{ + switch( curtab ) { + case player_display_tab::stats: + draw_stats_info( w_info, you, line ); + break; + case player_display_tab::encumbrance: + draw_encumbrance_info( w_info, you, line ); + break; + case player_display_tab::skills: + draw_skills_info( w_info, line, skillslist ); + break; + case player_display_tab::traits: + draw_traits_info( w_info, line, traitslist ); + break; + case player_display_tab::bionics: + draw_bionics_info( w_info, line, bionicslist ); + break; + case player_display_tab::effects: + draw_effects_info( w_info, line, effect_name_and_text ); + break; + case player_display_tab::num_tabs: + abort(); + } +} + +static void draw_tip( const catacurses::window &w_tip, const player &you, + const std::string &race, const input_context &ctxt ) +{ + werase( w_tip ); + + // Print name and header + if( you.custom_profession.empty() ) { + if( you.crossed_threshold() ) { + //~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name + mvwprintz( w_tip, point_zero, c_white, _( " %1$s | %2$s | %3$s" ), you.name, + you.male ? _( "Male" ) : _( "Female" ), race ); + } else if( you.prof == nullptr || you.prof == profession::generic() ) { + // Regular person. Nothing interesting. + //~ player info window: 1s - name, 2s - gender '|' - field separator. + mvwprintz( w_tip, point_zero, c_white, _( " %1$s | %2$s" ), you.name, + you.male ? _( "Male" ) : _( "Female" ) ); + } else { + mvwprintz( w_tip, point_zero, c_white, _( " %1$s | %2$s | %3$s" ), you.name, + you.male ? _( "Male" ) : _( "Female" ), you.prof->gender_appropriate_name( you.male ) ); + } + } else { + mvwprintz( w_tip, point_zero, c_white, _( " %1$s | %2$s | %3$s" ), you.name, + you.male ? _( "Male" ) : _( "Female" ), you.custom_profession ); + } + + right_print( w_tip, 0, 1, c_white, string_format( + _( "[%s]" ), + ctxt.get_desc( "HELP_KEYBINDINGS" ) ) ); + + wnoutrefresh( w_tip ); +} + +static bool handle_player_display_action( player &you, unsigned int &line, + player_display_tab &curtab, input_context &ctxt, + const ui_adaptor &ui_tip, const ui_adaptor &ui_info, + const ui_adaptor &ui_stats, const ui_adaptor &ui_encumb, + const ui_adaptor &ui_traits, const ui_adaptor &ui_bionics, + const ui_adaptor &ui_effects, const ui_adaptor &ui_skills, + const std::vector &traitslist, + const std::vector &bionicslist, + const std::vector> &effect_name_and_text, + const std::vector &skillslist ) +{ + const auto invalidate_tab = [&]( const player_display_tab tab ) { + switch( tab ) { + case player_display_tab::stats: + ui_stats.invalidate_ui(); + break; + case player_display_tab::encumbrance: + ui_encumb.invalidate_ui(); + break; + case player_display_tab::traits: + ui_traits.invalidate_ui(); + break; + case player_display_tab::bionics: + ui_bionics.invalidate_ui(); + break; + case player_display_tab::effects: + ui_effects.invalidate_ui(); + break; + case player_display_tab::skills: + ui_skills.invalidate_ui(); + break; + case player_display_tab::num_tabs: + abort(); + } + }; + + unsigned int line_beg = 0; + unsigned int line_end = 0; + switch( curtab ) { + case player_display_tab::stats: + line_end = 8; + break; + case player_display_tab::encumbrance: { + const std::vector> bps = list_and_combine_bps( you, nullptr ); + line_end = bps.size(); + break; + } + case player_display_tab::traits: + line_end = traitslist.size(); + break; + case player_display_tab::bionics: + line_end = bionicslist.size(); + break; + case player_display_tab::effects: + line_end = effect_name_and_text.size(); + break; + case player_display_tab::skills: + line_beg = 1; // skip first header + line_end = skillslist.size(); + break; + case player_display_tab::num_tabs: + abort(); + } + if( line_beg >= line_end || line < line_beg ) { + line = line_beg; + } else if( line > line_end - 1 ) { + line = line_end - 1; + } + + bool done = false; + std::string action = ctxt.handle_input(); + + if( action == "UP" ) { + if( line > line_beg ) { + --line; + } else { + line = line_end - 1; + } + if( curtab == player_display_tab::skills && skillslist[line].is_header ) { + --line; + } + invalidate_tab( curtab ); + ui_info.invalidate_ui(); + } else if( action == "DOWN" ) { + if( line + 1 < line_end ) { + ++line; + } else { + line = line_beg; + } + if( curtab == player_display_tab::skills && skillslist[line].is_header ) { + ++line; + } + invalidate_tab( curtab ); + ui_info.invalidate_ui(); + } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { + line = 0; + invalidate_tab( curtab ); + curtab = action == "NEXT_TAB" ? next_tab( curtab ) : prev_tab( curtab ); + invalidate_tab( curtab ); + ui_info.invalidate_ui(); + } else if( action == "QUIT" ) { + done = true; + } else if( action == "CONFIRM" ) { + switch( curtab ) { + default: + break; + case player_display_tab::stats: + if( line < 4 && get_option( "STATS_THROUGH_KILLS" ) && you.is_avatar() ) { + you.as_avatar()->upgrade_stat_prompt( static_cast( line ) ); + } + invalidate_tab( curtab ); + break; + case player_display_tab::skills: { + const Skill *selectedSkill = nullptr; + if( line < skillslist.size() && !skillslist[line].is_header ) { + selectedSkill = skillslist[line].skill; + } + if( selectedSkill ) { + you.get_skill_level_object( selectedSkill->ident() ).toggleTraining(); + } + invalidate_tab( curtab ); + break; + } + } + } else if( action == "CHANGE_PROFESSION_NAME" ) { + string_input_popup popup; + popup.title( _( "Profession Name: " ) ) + .width( 25 ) + .text( "" ) + .max_length( 25 ) + .query(); + + you.custom_profession = popup.text(); + ui_tip.invalidate_ui(); + } + return done; } void player::disp_info() { - unsigned int line = 0; std::vector> effect_name_and_text; for( auto &elem : *effects ) { for( auto &_effect_it : elem.second ) { @@ -1221,15 +1162,14 @@ void player::disp_info() } } - unsigned int maxy = static_cast( TERMY ); - - unsigned int effect_win_size_y = 1 + static_cast( effect_name_and_text.size() ); + const unsigned int effect_win_size_y = 1 + static_cast( effect_name_and_text.size() ); std::vector traitslist = get_mutations( false ); - unsigned int trait_win_size_y = 1 + static_cast( traitslist.size() ); + std::sort( traitslist.begin(), traitslist.end(), trait_display_sort ); + const unsigned int trait_win_size_y_max = 1 + static_cast( traitslist.size() ); std::vector bionicslist = *my_bionics; - unsigned int bionics_win_size_y = 2 + bionicslist.size(); + const unsigned int bionics_win_size_y_max = 2 + bionicslist.size(); const std::vector player_skill = Skill::get_skills_sorted_by( [&]( const Skill & a, const Skill & b ) { @@ -1249,88 +1189,42 @@ void player::disp_info() } skillslist.emplace_back( s, false ); } - unsigned int skill_win_size_y = 1 + skillslist.size(); - unsigned int info_win_size_y = 6; + const unsigned int skill_win_size_y_max = 1 + skillslist.size(); + const unsigned int info_win_size_y = 6; + + const unsigned int grid_width = 26; + const unsigned int grid_height = 9; - unsigned int infooffsetytop = 11; + const unsigned int infooffsetytop = grid_height + 2; unsigned int infooffsetybottom = infooffsetytop + 1 + info_win_size_y; - if( ( bionics_win_size_y + trait_win_size_y + infooffsetybottom ) > maxy ) { - // maximum space for either window if they're both the same size - unsigned max_shared_y = ( maxy - infooffsetybottom ) / 2; - // both are larger than the shared size - if( std::min( bionics_win_size_y, trait_win_size_y ) > max_shared_y ) { - bionics_win_size_y = max_shared_y; - // trait window is less than the shared size, so give space to bionics - } else if( trait_win_size_y <= max_shared_y ) { - bionics_win_size_y = maxy - infooffsetybottom - trait_win_size_y; + const auto calculate_trait_and_bionic_height = [&]() { + const unsigned int maxy = static_cast( TERMY ); + unsigned int trait_win_size_y = trait_win_size_y_max; + unsigned int bionics_win_size_y = bionics_win_size_y_max; + if( ( bionics_win_size_y_max + 1 + trait_win_size_y_max + infooffsetybottom ) > maxy ) { + // maximum space for either window if they're both the same size + unsigned max_shared_y = ( maxy - infooffsetybottom - 1 ) / 2; + if( std::min( bionics_win_size_y_max, trait_win_size_y_max ) > max_shared_y ) { + // both are larger than the shared size + bionics_win_size_y = max_shared_y; + trait_win_size_y = maxy - infooffsetybottom - 1 - bionics_win_size_y; + } else if( trait_win_size_y_max <= max_shared_y ) { + // trait window is less than the shared size, so give space to bionics + bionics_win_size_y = maxy - infooffsetybottom - 1 - trait_win_size_y_max; + } else { + // bionics window is less than the shared size + trait_win_size_y = maxy - infooffsetybottom - 1 - bionics_win_size_y; + } } - // fall through if bionics is smaller - trait_win_size_y = maxy - infooffsetybottom - bionics_win_size_y; - - bionics_win_size_y--; - } - - if( skill_win_size_y + infooffsetybottom > maxy ) { - skill_win_size_y = maxy - infooffsetybottom; - } - - catacurses::window w_grid_top = - catacurses::newwin( infooffsetybottom, FULL_SCREEN_WIDTH + 1, - point_zero ); - catacurses::window w_grid_skill = - catacurses::newwin( skill_win_size_y + 1, 27, - point( 0, infooffsetybottom ) ); - catacurses::window w_grid_trait = - catacurses::newwin( trait_win_size_y + 1, 27, - point( 27, infooffsetybottom ) ); - catacurses::window w_grid_bionics = - catacurses::newwin( bionics_win_size_y + 1, 27, - point( 27, - infooffsetybottom + trait_win_size_y + 1 ) ); - catacurses::window w_grid_effect = - catacurses::newwin( effect_win_size_y + 1, 28, - point( 53, infooffsetybottom ) ); - - catacurses::window w_tip = - catacurses::newwin( 1, FULL_SCREEN_WIDTH, point_zero ); - catacurses::window w_stats = - catacurses::newwin( 9, 26, point( 0, 1 ) ); //NOLINT(cata-use-named-point-constants) - catacurses::window w_traits = - catacurses::newwin( trait_win_size_y, 26, - point( 27, infooffsetybottom ) ); - catacurses::window w_bionics = - catacurses::newwin( bionics_win_size_y, 26, - point( 27, - infooffsetybottom + trait_win_size_y + 1 ) ); - catacurses::window w_encumb = - catacurses::newwin( 9, 26, point( 27, 1 ) ); - catacurses::window w_effects = - catacurses::newwin( effect_win_size_y, 26, - point( 54, infooffsetybottom ) ); - catacurses::window w_speed = - catacurses::newwin( 9, 26, point( 54, 1 ) ); - catacurses::window w_skills = - catacurses::newwin( skill_win_size_y, 26, - point( 0, infooffsetybottom ) ); - catacurses::window w_info = - catacurses::newwin( info_win_size_y, FULL_SCREEN_WIDTH, - point( 0, infooffsetytop ) ); - - draw_grid_borders( w_grid_top, w_grid_skill, w_grid_trait, w_grid_bionics, w_grid_effect, - info_win_size_y, infooffsetybottom, skill_win_size_y, trait_win_size_y, - bionics_win_size_y, effect_win_size_y ); - //-1 for header - trait_win_size_y--; - bionics_win_size_y--; - skill_win_size_y--; - effect_win_size_y--; + return std::make_pair( trait_win_size_y, bionics_win_size_y ); + }; // Print name and header // Post-humanity trumps your pre-Cataclysm life // Unless you have a custom profession. std::string race; - if( g->u.custom_profession.empty() ) { + if( custom_profession.empty() ) { if( crossed_threshold() ) { for( const trait_id &mut : get_mutations() ) { const mutation_branch &mdata = mut.obj(); @@ -1339,21 +1233,7 @@ void player::disp_info() break; } } - //~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name - mvwprintw( w_tip, point_zero, _( " %1$s | %2$s | %3$s" ), name, - male ? _( "Male" ) : _( "Female" ), race ); - } else if( prof == nullptr || prof == profession::generic() ) { - // Regular person. Nothing interesting. - //~ player info window: 1s - name, 2s - gender '|' - field separator. - mvwprintw( w_tip, point_zero, _( " %1$s | %2$s" ), name, - male ? _( "Male" ) : _( "Female" ) ); - } else { - mvwprintw( w_tip, point_zero, _( " %1$s | %2$s | %3$s" ), name, - male ? _( "Male" ) : _( "Female" ), prof->gender_appropriate_name( male ) ); } - } else { - mvwprintw( w_tip, point_zero, _( " %1$s | %2$s | %3$s" ), name, - male ? _( "Male" ) : _( "Female" ), g->u.custom_profession ); } input_context ctxt( "PLAYER_INFO" ); @@ -1361,19 +1241,9 @@ void player::disp_info() ctxt.register_action( "NEXT_TAB", to_translation( "Cycle to next category" ) ); ctxt.register_action( "PREV_TAB", to_translation( "Cycle to previous category" ) ); ctxt.register_action( "QUIT" ); - ctxt.register_action( "CONFIRM", to_translation( "Toggle skill training" ) ); + ctxt.register_action( "CONFIRM", to_translation( "Toggle skill training / Upgrade stat" ) ); ctxt.register_action( "CHANGE_PROFESSION_NAME", to_translation( "Change profession name" ) ); ctxt.register_action( "HELP_KEYBINDINGS" ); - std::string action; - - right_print( w_tip, 0, 0, c_white, string_format( - _( "[%s]" ), - ctxt.get_desc( "HELP_KEYBINDINGS" ) ) ); - wrefresh( w_tip ); - - draw_initial_windows( w_stats, w_encumb, w_traits, w_bionics, w_effects, w_skills, w_speed, *this, - line, traitslist, bionicslist, effect_name_and_text, skillslist, bionics_win_size_y, - effect_win_size_y, trait_win_size_y, skill_win_size_y ); std::map speed_effects; for( auto &elem : *effects ) { @@ -1388,113 +1258,202 @@ void player::disp_info() } } - for( std::pair &speed_effect : speed_effects ) { - nc_color col = ( speed_effect.second > 0 ? c_green : c_red ); - mvwprintz( w_speed, point( 1, line ), col, "%s", speed_effect.first ); - mvwprintz( w_speed, point( 21, line ), col, ( speed_effect.second > 0 ? "+" : "-" ) ); - mvwprintz( w_speed, point( std::abs( speed_effect.second ) >= 10 ? 22 : 23, line ), col, "%d%%", - std::abs( speed_effect.second ) ); - line++; - } + border_helper borders; - catacurses::refresh(); + player_display_tab curtab = player_display_tab::stats; + unsigned int line = 0; - int curtab = 1; - line = 0; - bool done = false; + catacurses::window w_tip; + ui_adaptor ui_tip; + ui_tip.on_screen_resize( [&]( ui_adaptor & ui_tip ) { + w_tip = catacurses::newwin( 1, FULL_SCREEN_WIDTH + 1, point_zero ); + ui_tip.position_from_window( w_tip ); + } ); + ui_tip.mark_resize(); + ui_tip.on_redraw( [&]( const ui_adaptor & ) { + draw_tip( w_tip, *this, race, ctxt ); + } ); - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + catacurses::window w_stats; + catacurses::window w_stats_border; + border_helper::border_info &border_stats = borders.add_border(); + ui_adaptor ui_stats; + ui_stats.on_screen_resize( [&]( ui_adaptor & ui_stats ) { + // NOLINTNEXTLINE(cata-use-named-point-constants) + w_stats = catacurses::newwin( grid_height, grid_width, point( 0, 1 ) ); + // Every grid draws the bottom and right borders. The top and left borders + // are either not displayed or drawn by another grid. + // NOLINTNEXTLINE(cata-use-named-point-constants) + w_stats_border = catacurses::newwin( grid_height + 1, grid_width + 1, point( 0, 1 ) ); + // But we need to specify the full border for border_helper to calculate the + // border connection. + // NOLINTNEXTLINE(cata-use-named-point-constants) + border_stats.set( point( -1, 0 ), point( grid_width + 2, grid_height + 2 ) ); + ui_stats.position_from_window( w_stats_border ); + } ); + ui_stats.mark_resize(); + ui_stats.on_redraw( [&]( const ui_adaptor & ) { + borders.draw_border( w_stats_border ); + wnoutrefresh( w_stats_border ); + draw_stats_tab( w_stats, *this, line, curtab ); + } ); - // Initial printing is DONE. Now we give the player a chance to scroll around - // and "hover" over different items for more info. - do { - werase( w_info ); - - if( action == "CHANGE_PROFESSION_NAME" ) { - string_input_popup popup; - popup.title( _( "Profession Name: " ) ) - .width( 25 ) - .text( "" ) - .max_length( 25 ) - .query(); - - g->u.custom_profession = popup.text(); - - werase( w_tip ); - - g->refresh_all(); - - draw_grid_borders( w_grid_top, w_grid_skill, w_grid_trait, w_grid_bionics, w_grid_effect, - info_win_size_y, infooffsetybottom, skill_win_size_y + 1, trait_win_size_y + 1, - bionics_win_size_y + 1, effect_win_size_y + 1 ); - - // Print name and header - if( g->u.custom_profession.empty() ) { - if( crossed_threshold() ) { - //~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name - mvwprintw( w_tip, point_zero, _( " %1$s | %2$s | %3$s" ), name, - male ? _( "Male" ) : _( "Female" ), race ); - } else if( prof == nullptr || prof == profession::generic() ) { - // Regular person. Nothing interesting. - //~ player info window: 1s - name, 2s - gender '|' - field separator. - mvwprintw( w_tip, point_zero, _( " %1$s | %2$s" ), name, - male ? _( "Male" ) : _( "Female" ) ); - } else { - mvwprintw( w_tip, point_zero, _( " %1$s | %2$s | %3$s" ), name, - male ? _( "Male" ) : _( "Female" ), prof->gender_appropriate_name( male ) ); - } - } else { - mvwprintw( w_tip, point_zero, _( " %1$s | %2$s | %3$s" ), name, - male ? _( "Male" ) : _( "Female" ), g->u.custom_profession ); - } + unsigned int trait_win_size_y = 0; + catacurses::window w_traits; + catacurses::window w_traits_border; + border_helper::border_info &border_traits = borders.add_border(); + ui_adaptor ui_traits; + ui_traits.on_screen_resize( [&]( ui_adaptor & ui_traits ) { + trait_win_size_y = calculate_trait_and_bionic_height().first; + w_traits = catacurses::newwin( trait_win_size_y, grid_width, + point( grid_width + 1, infooffsetybottom ) ); + w_traits_border = catacurses::newwin( trait_win_size_y + 1, grid_width + 1, + point( grid_width + 1, infooffsetybottom ) ); + border_traits.set( point( grid_width, infooffsetybottom - 1 ), + point( grid_width + 2, trait_win_size_y + 2 ) ); + ui_traits.position_from_window( w_traits_border ); + } ); + ui_traits.mark_resize(); + ui_traits.on_redraw( [&]( const ui_adaptor & ) { + borders.draw_border( w_traits_border ); + wnoutrefresh( w_traits_border ); + draw_traits_tab( w_traits, line, curtab, traitslist, trait_win_size_y ); + } ); - right_print( w_tip, 0, 0, c_white, string_format( - _( "[%s]" ), - ctxt.get_desc( "HELP_KEYBINDINGS" ) ) ); + unsigned int bionics_win_size_y = 0; + catacurses::window w_bionics; + catacurses::window w_bionics_border; + border_helper::border_info &border_bionics = borders.add_border(); + ui_adaptor ui_bionics; + ui_bionics.on_screen_resize( [&]( ui_adaptor & ui_bionics ) { + bionics_win_size_y = calculate_trait_and_bionic_height().second; + w_bionics = catacurses::newwin( bionics_win_size_y, grid_width, + point( grid_width + 1, + infooffsetybottom + trait_win_size_y + 1 ) ); + w_bionics_border = catacurses::newwin( bionics_win_size_y + 1, grid_width + 1, + point( grid_width + 1, + infooffsetybottom + trait_win_size_y + 1 ) ); + border_bionics.set( point( grid_width, infooffsetybottom + trait_win_size_y ), + point( grid_width + 2, bionics_win_size_y + 2 ) ); + ui_bionics.position_from_window( w_bionics_border ); + } ); + ui_bionics.mark_resize(); + ui_bionics.on_redraw( [&]( const ui_adaptor & ) { + borders.draw_border( w_bionics_border ); + wnoutrefresh( w_bionics_border ); + draw_bionics_tab( w_bionics, *this, line, curtab, bionicslist, bionics_win_size_y ); + } ); - wrefresh( w_tip ); + catacurses::window w_encumb; + catacurses::window w_encumb_border; + border_helper::border_info &border_encumb = borders.add_border(); + ui_adaptor ui_encumb; + ui_encumb.on_screen_resize( [&]( ui_adaptor & ui_encumb ) { + w_encumb = catacurses::newwin( grid_height, grid_width, point( grid_width + 1, 1 ) ); + w_encumb_border = catacurses::newwin( grid_height + 1, grid_width + 1, point( grid_width + 1, 1 ) ); + border_encumb.set( point( grid_width, 0 ), point( grid_width + 2, grid_height + 2 ) ); + ui_encumb.position_from_window( w_encumb_border ); + } ); + ui_encumb.mark_resize(); + ui_encumb.on_redraw( [&]( const ui_adaptor & ) { + borders.draw_border( w_encumb_border ); + wnoutrefresh( w_encumb_border ); + draw_encumbrance_tab( w_encumb, *this, line, curtab ); + } ); - draw_initial_windows( w_stats, w_encumb, w_traits, w_bionics, w_effects, w_skills, w_speed, *this, - line, traitslist, bionicslist, effect_name_and_text, skillslist, bionics_win_size_y, - effect_win_size_y, trait_win_size_y, skill_win_size_y ); - } + catacurses::window w_effects; + catacurses::window w_effects_border; + border_helper::border_info &border_effects = borders.add_border(); + ui_adaptor ui_effects; + ui_effects.on_screen_resize( [&]( ui_adaptor & ui_effects ) { + w_effects = catacurses::newwin( effect_win_size_y, grid_width, + point( grid_width * 2 + 2, infooffsetybottom ) ); + w_effects_border = catacurses::newwin( effect_win_size_y + 1, grid_width + 1, + point( grid_width * 2 + 2, infooffsetybottom ) ); + border_effects.set( point( grid_width * 2 + 1, infooffsetybottom - 1 ), + point( grid_width + 2, effect_win_size_y + 2 ) ); + ui_effects.position_from_window( w_effects_border ); + } ); + ui_effects.mark_resize(); + ui_effects.on_redraw( [&]( const ui_adaptor & ) { + borders.draw_border( w_effects_border ); + wnoutrefresh( w_effects_border ); + draw_effects_tab( w_effects, line, curtab, effect_name_and_text, effect_win_size_y ); + } ); - switch( curtab ) { - case 1: - // Stats tab - draw_stats_tab( w_stats, w_info, *this, line, curtab, ctxt, done, action ); - break; - case 2: - // Encumbrance tab - draw_encumbrance_tab( w_encumb, w_info, *this, line, curtab, ctxt, done, action ); - break; + catacurses::window w_speed; + catacurses::window w_speed_border; + border_helper::border_info &border_speed = borders.add_border(); + ui_adaptor ui_speed; + ui_speed.on_screen_resize( [&]( ui_adaptor & ui_speed ) { + w_speed = catacurses::newwin( grid_height, grid_width, point( grid_width * 2 + 2, 1 ) ); + w_speed_border = catacurses::newwin( grid_height + 1, grid_width + 1, + point( grid_width * 2 + 2, 1 ) ); + border_speed.set( point( grid_width * 2 + 1, 0 ), + point( grid_width + 2, grid_height + 2 ) ); + ui_speed.position_from_window( w_speed_border ); + } ); + ui_speed.mark_resize(); + ui_speed.on_redraw( [&]( const ui_adaptor & ) { + borders.draw_border( w_speed_border ); + wnoutrefresh( w_speed_border ); + draw_speed_tab( w_speed, *this, speed_effects ); + } ); - case 4: - // Traits tab - draw_traits_tab( w_traits, w_info, line, curtab, ctxt, done, action, - traitslist, trait_win_size_y ); - break; + unsigned int skill_win_size_y = 0; + catacurses::window w_skills; + catacurses::window w_skills_border; + border_helper::border_info &border_skills = borders.add_border(); + ui_adaptor ui_skills; + ui_skills.on_screen_resize( [&]( ui_adaptor & ui_skills ) { + const unsigned int maxy = static_cast( TERMY ); + skill_win_size_y = skill_win_size_y_max; + if( skill_win_size_y + infooffsetybottom > maxy ) { + skill_win_size_y = maxy - infooffsetybottom; + } + w_skills = catacurses::newwin( skill_win_size_y, grid_width, + point( 0, infooffsetybottom ) ); + w_skills_border = catacurses::newwin( skill_win_size_y + 1, grid_width + 1, + point( 0, infooffsetybottom ) ); + border_skills.set( point( -1, infooffsetybottom - 1 ), + point( grid_width + 2, skill_win_size_y + 2 ) ); + ui_skills.position_from_window( w_skills_border ); + } ); + ui_skills.mark_resize(); + ui_skills.on_redraw( [&]( const ui_adaptor & ) { + borders.draw_border( w_skills_border ); + wnoutrefresh( w_skills_border ); + draw_skills_tab( w_skills, *this, line, curtab, skillslist, skill_win_size_y ); + } ); - case 5: - // Bionics tab - draw_bionics_tab( w_bionics, w_info, *this, line, curtab, ctxt, done, action, - bionicslist, bionics_win_size_y ); - break; + catacurses::window w_info; + catacurses::window w_info_border; + border_helper::border_info &border_info = borders.add_border(); + ui_adaptor ui_info; + ui_info.on_screen_resize( [&]( ui_adaptor & ui_info ) { + w_info = catacurses::newwin( info_win_size_y, FULL_SCREEN_WIDTH, + point( 0, infooffsetytop ) ); + w_info_border = catacurses::newwin( info_win_size_y + 1, FULL_SCREEN_WIDTH + 1, + point( 0, infooffsetytop ) ); + border_info.set( point( -1, infooffsetytop - 1 ), + point( FULL_SCREEN_WIDTH + 2, info_win_size_y + 2 ) ); + ui_info.position_from_window( w_info_border ); + } ); + ui_info.mark_resize(); + ui_info.on_redraw( [&]( const ui_adaptor & ) { + borders.draw_border( w_info_border ); + wnoutrefresh( w_info_border ); + draw_info_window( w_info, *this, line, curtab, + traitslist, bionicslist, effect_name_and_text, skillslist ); + } ); - case 6: - // Effects tab - draw_effects_tab( w_effects, w_info, line, curtab, ctxt, done, action, - effect_name_and_text, effect_win_size_y ); - break; + bool done = false; - case 3: - // Skills tab - draw_skills_tab( w_skills, w_info, *this, line, curtab, ctxt, done, action, - skillslist, skill_win_size_y ); + do { + ui_manager::redraw_invalidated(); - } + done = handle_player_display_action( *this, line, curtab, ctxt, ui_tip, ui_info, + ui_stats, ui_encumb, ui_traits, ui_bionics, ui_effects, ui_skills, + traitslist, bionicslist, effect_name_and_text, skillslist ); } while( !done ); - - g->refresh_all(); } diff --git a/src/player_hardcoded_effects.cpp b/src/player_hardcoded_effects.cpp index 849e21169ac3a..e76a6d80a4729 100644 --- a/src/player_hardcoded_effects.cpp +++ b/src/player_hardcoded_effects.cpp @@ -86,13 +86,14 @@ static const efftype_id effect_strong_antibiotic( "strong_antibiotic" ); static const efftype_id effect_stunned( "stunned" ); static const efftype_id effect_tapeworm( "tapeworm" ); static const efftype_id effect_teleglow( "teleglow" ); +static const efftype_id effect_tindrift( "tindrift" ); static const efftype_id effect_tetanus( "tetanus" ); static const efftype_id effect_toxin_buildup( "toxin_buildup" ); static const efftype_id effect_valium( "valium" ); static const efftype_id effect_visuals( "visuals" ); static const efftype_id effect_weak_antibiotic( "weak_antibiotic" ); -const vitamin_id vitamin_iron( "iron" ); +static const vitamin_id vitamin_iron( "iron" ); static const mongroup_id GROUP_NETHER( "GROUP_NETHER" ); @@ -486,7 +487,7 @@ void player::hardcoded_effects( effect &it ) const time_duration dur = it.get_duration(); int intense = it.get_intensity(); - body_part bp = it.get_bp(); + const bodypart_id &bp = convert_bp( it.get_bp() ).id(); bool sleeping = has_effect( effect_sleep ); if( id == effect_dermatik ) { bool triggered = false; @@ -495,7 +496,7 @@ void player::hardcoded_effects( effect &it ) formication_chance += 14400 - to_turns( dur ); } if( one_in( formication_chance ) ) { - add_effect( effect_formication, 60_minutes, bp ); + add_effect( effect_formication, 60_minutes, bp->token ); } if( dur < 1_days && one_in( 14400 ) ) { vomit(); @@ -505,7 +506,7 @@ void player::hardcoded_effects( effect &it ) // Choose how many insects; more for large characters ///\EFFECT_STR_MAX increases number of insects hatched from dermatik infection int num_insects = rng( 1, std::min( 3, str_max / 3 ) ); - apply_damage( nullptr, convert_bp( bp ).id(), rng( 2, 4 ) * num_insects ); + apply_damage( nullptr, bp, rng( 2, 4 ) * num_insects ); // Figure out where they may be placed add_msg_player_or_npc( m_bad, _( "Your flesh crawls; insects tear through the flesh and begin to emerge!" ), @@ -518,7 +519,7 @@ void player::hardcoded_effects( effect &it ) } } g->events().send( getID() ); - remove_effect( effect_formication, bp ); + remove_effect( effect_formication, bp->token ); moves -= 600; triggered = true; } @@ -534,14 +535,16 @@ void player::hardcoded_effects( effect &it ) if( x_in_y( intense, 600 + 300 * get_int() ) && !has_effect( effect_narcosis ) ) { if( !is_npc() ) { //~ %s is bodypart in accusative. - add_msg( m_warning, _( "You start scratching your %s!" ), body_part_name_accusative( bp ) ); + add_msg( m_warning, _( "You start scratching your %s!" ), + body_part_name_accusative( bp ) ); g->u.cancel_activity(); } else if( g->u.sees( pos() ) ) { //~ 1$s is NPC name, 2$s is bodypart in accusative. - add_msg( _( "%1$s starts scratching their %2$s!" ), name, body_part_name_accusative( bp ) ); + add_msg( _( "%1$s starts scratching their %2$s!" ), name, + body_part_name_accusative( bp ) ); } moves -= 150; - apply_damage( nullptr, convert_bp( bp ).id(), 1 ); + apply_damage( nullptr, bp, 1 ); } } else if( id == effect_evil ) { // Worn or wielded; diminished effects @@ -622,6 +625,16 @@ void player::hardcoded_effects( effect &it ) mod_fatigue( dice( 1, 6 ) ); } } + } else if( id == effect_tindrift ) { + add_msg_if_player( m_bad, _( "You are beset with a vision of a prowling beast." ) ); + for( const tripoint &dest : g->m.points_in_radius( pos(), 6 ) ) { + if( g->m.is_cornerfloor( dest ) ) { + g->m.add_field( dest, fd_tindalos_rift, 3 ); + add_msg_if_player( m_info, _( "Your surroundings are permeated with a foul scent." ) ); + //Remove the effect, since it's done all it needs to do to the target. + remove_effect( effect_tindrift ); + } + } } else if( id == effect_teleglow ) { // Default we get around 300 duration points per teleport (possibly more // depending on the source). @@ -644,29 +657,22 @@ void player::hardcoded_effects( effect &it ) it.set_duration( 0_turns ); } } - if( one_in( 7200 - ( dur - 360_minutes ) / 4_turns ) ) { - add_msg_if_player( m_bad, _( "You are beset with a vision of a prowling beast." ) ); - for( const tripoint &dest : g->m.points_in_radius( pos(), 6 ) ) { - if( g->m.is_cornerfloor( dest ) ) { - g->m.add_field( dest, fd_tindalos_rift, 3 ); - add_msg_if_player( m_info, _( "Your surroundings are permeated with a foul scent." ) ); - break; - } - } - if( one_in( 2 ) ) { - // Set ourselves up for removal - it.set_duration( 0_turns ); - } + } + if( one_in( 7200 - ( dur - 360_minutes ) / 4_turns ) ) { + //Spawn a tindalos rift via effect_tindrift rather than it being hard-coded to teleglow + add_effect( effect_tindrift, 5_turns ); + + if( one_in( 2 ) ) { + // Set ourselves up for removal + it.set_duration( 0_turns ); } - if( one_in( 7200 - ( ( dur - 600_minutes ) / 30_seconds ) ) && one_in( 20 ) ) { - if( !is_npc() ) { - add_msg( m_bad, _( "You pass out." ) ); - } - fall_asleep( 2_hours ); - if( one_in( 6 ) ) { - // Set ourselves up for removal - it.set_duration( 0_turns ); - } + } + if( one_in( 7200 - ( ( dur - 600_minutes ) / 30_seconds ) ) && one_in( 20 ) ) { + add_msg_if_player( m_bad, _( "You pass out." ) ); + fall_asleep( 2_hours ); + if( one_in( 6 ) ) { + // Set ourselves up for removal + it.set_duration( 0_turns ); } } if( dur > 6_hours ) { @@ -948,7 +954,7 @@ void player::hardcoded_effects( effect &it ) if( !recovered ) { // Move up to infection if( dur > 6_hours ) { - add_effect( effect_infected, 1_turns, bp, true ); + add_effect( effect_infected, 1_turns, bp->token, true ); // Set ourselves up for removal it.set_duration( 0_turns ); } else if( has_effect( effect_strong_antibiotic ) ) { @@ -1299,11 +1305,11 @@ void player::hardcoded_effects( effect &it ) } } } else if( id == effect_mending ) { - if( !is_limb_broken( bp_to_hp( bp ) ) ) { + if( !is_limb_broken( bp_to_hp( bp->token ) ) ) { it.set_duration( 0_turns ); } } else if( id == effect_disabled ) { - if( !is_limb_broken( bp_to_hp( bp ) ) ) { + if( !is_limb_broken( bp_to_hp( bp->token ) ) ) { // Just unpause, in case someone added it as a temporary effect (numbing poison etc.) it.unpause_effect(); } diff --git a/src/pldata.h b/src/pldata.h index 47c07a0a61184..e6012f5b35fcc 100644 --- a/src/pldata.h +++ b/src/pldata.h @@ -20,10 +20,20 @@ enum class character_type : int { enum class add_type : int { NONE, - CAFFEINE, ALCOHOL, SLEEP, PKILLER, SPEED, CIG, - COKE, CRACK, MUTAGEN, DIAZEPAM, - MARLOSS_R, MARLOSS_B, MARLOSS_Y, - NUM_ADD_TYPES // last + CAFFEINE, + ALCOHOL, + SLEEP, + PKILLER, + SPEED, + CIG, + COKE, + CRACK, + MUTAGEN, + DIAZEPAM, + MARLOSS_R, + MARLOSS_B, + MARLOSS_Y, + NUM_ADD_TYPES }; template<> diff --git a/src/point.cpp b/src/point.cpp index b40a961321b24..18107f7771f35 100644 --- a/src/point.cpp +++ b/src/point.cpp @@ -6,6 +6,18 @@ #include "cata_utility.h" +point point::from_string( const std::string &s ) +{ + std::istringstream is( s ); + point result; + is >> result; + if( !is ) { + debugmsg( "Could not convert string '" + s + "' to point" ); + return point_zero; + } + return result; +} + std::string point::to_string() const { std::ostringstream os; @@ -13,6 +25,18 @@ std::string point::to_string() const return os.str(); } +tripoint tripoint::from_string( const std::string &s ) +{ + std::istringstream is( s ); + tripoint result; + is >> result; + if( !is ) { + debugmsg( "Could not convert string '" + s + "' to tripoint" ); + return tripoint_zero; + } + return result; +} + std::string tripoint::to_string() const { std::ostringstream os; @@ -30,6 +54,22 @@ std::ostream &operator<<( std::ostream &os, const tripoint &pos ) return os << "(" << pos.x << "," << pos.y << "," << pos.z << ")"; } +std::istream &operator>>( std::istream &is, point &pos ) +{ + char c; + is.get( c ) &&c == '(' &&is >> pos.x &&is.get( c ) &&c == ',' &&is >> pos.y && + is.get( c ) &&c == ')'; + return is; +} + +std::istream &operator>>( std::istream &is, tripoint &pos ) +{ + char c; + is.get( c ) &&c == '(' &&is >> pos.x &&is.get( c ) &&c == ',' &&is >> pos.y && + is.get( c ) &&c == ',' &&is >> pos.z &&is.get( c ) &&c == ')'; + return is; +} + point clamp_half_open( const point &p, const rectangle &r ) { return point( clamp( p.x, r.p_min.x, r.p_max.x - 1 ), clamp( p.y, r.p_min.y, r.p_max.y - 1 ) ); diff --git a/src/point.h b/src/point.h index 95acee62eaaf0..b14fcec8d9b2d 100644 --- a/src/point.h +++ b/src/point.h @@ -38,6 +38,8 @@ struct point { constexpr point() = default; constexpr point( int X, int Y ) : x( X ), y( Y ) {} + static point from_string( const std::string & ); + constexpr point operator+( const point &rhs ) const { return point( x + rhs.x, y + rhs.y ); } @@ -101,26 +103,26 @@ struct point { } std::string to_string() const; -}; -std::ostream &operator<<( std::ostream &, const point & ); + friend inline constexpr bool operator<( const point &a, const point &b ) { + return a.x < b.x || ( a.x == b.x && a.y < b.y ); + } + friend inline constexpr bool operator==( const point &a, const point &b ) { + return a.x == b.x && a.y == b.y; + } + friend inline constexpr bool operator!=( const point &a, const point &b ) { + return !( a == b ); + } + +#ifndef CATA_NO_STL + friend std::ostream &operator<<( std::ostream &, const point & ); + friend std::istream &operator>>( std::istream &, point & ); +#endif +}; void serialize( const point &p, JsonOut &jsout ); void deserialize( point &p, JsonIn &jsin ); -inline constexpr bool operator<( const point &a, const point &b ) -{ - return a.x < b.x || ( a.x == b.x && a.y < b.y ); -} -inline constexpr bool operator==( const point &a, const point &b ) -{ - return a.x == b.x && a.y == b.y; -} -inline constexpr bool operator!=( const point &a, const point &b ) -{ - return !( a == b ); -} - // NOLINTNEXTLINE(cata-xy) struct tripoint { int x = 0; @@ -130,6 +132,8 @@ struct tripoint { constexpr tripoint( int X, int Y, int Z ) : x( X ), y( Y ), z( Z ) {} constexpr tripoint( const point &p, int Z ) : x( p.x ), y( p.y ), z( Z ) {} + static tripoint from_string( const std::string & ); + constexpr tripoint operator+( const tripoint &rhs ) const { return tripoint( x + rhs.x, y + rhs.y, z + rhs.z ); } @@ -198,31 +202,31 @@ struct tripoint { void serialize( JsonOut &jsout ) const; void deserialize( JsonIn &jsin ); -}; -std::ostream &operator<<( std::ostream &, const tripoint & ); +#ifndef CATA_NO_STL + friend std::ostream &operator<<( std::ostream &, const tripoint & ); + friend std::istream &operator>>( std::istream &, tripoint & ); +#endif -inline constexpr bool operator==( const tripoint &a, const tripoint &b ) -{ - return a.x == b.x && a.y == b.y && a.z == b.z; -} -inline constexpr bool operator!=( const tripoint &a, const tripoint &b ) -{ - return !( a == b ); -} -inline bool operator<( const tripoint &a, const tripoint &b ) -{ - if( a.x != b.x ) { - return a.x < b.x; + friend inline constexpr bool operator==( const tripoint &a, const tripoint &b ) { + return a.x == b.x && a.y == b.y && a.z == b.z; } - if( a.y != b.y ) { - return a.y < b.y; + friend inline constexpr bool operator!=( const tripoint &a, const tripoint &b ) { + return !( a == b ); } - if( a.z != b.z ) { - return a.z < b.z; + friend inline bool operator<( const tripoint &a, const tripoint &b ) { + if( a.x != b.x ) { + return a.x < b.x; + } + if( a.y != b.y ) { + return a.y < b.y; + } + if( a.z != b.z ) { + return a.z < b.z; + } + return false; } - return false; -} +}; struct rectangle { point p_min; diff --git a/src/popup.cpp b/src/popup.cpp index e2457776075eb..9ccacdb66041e 100644 --- a/src/popup.cpp +++ b/src/popup.cpp @@ -236,7 +236,7 @@ void query_popup::show() const col, col, btn.text ); } - wrefresh( win ); + wnoutrefresh( win ); } std::shared_ptr query_popup::create_or_get_adaptor() @@ -298,9 +298,9 @@ query_popup::result query_popup::query_once() res.evt = ctxt.get_raw_input(); } while( // Always ignore mouse movement - ( res.evt.type == CATA_INPUT_MOUSE && res.evt.get_first_input() == MOUSE_MOVE ) || + ( res.evt.type == input_event_t::mouse && res.evt.get_first_input() == MOUSE_MOVE ) || // Ignore window losing focus in SDL - ( res.evt.type == CATA_INPUT_KEYBOARD && res.evt.sequence.empty() ) + ( res.evt.type == input_event_t::keyboard && res.evt.sequence.empty() ) ); if( cancel && res.action == "QUIT" ) { @@ -350,11 +350,6 @@ query_popup::result query_popup::query() do { res = query_once(); } while( res.wait_input ); - // Erase the window so there's feedback during consecutive popups - werase( win ); - wrefresh( win ); - catacurses::refresh(); - refresh_display(); return res; } diff --git a/src/profession.cpp b/src/profession.cpp index 9892806376979..aa04dd14be116 100644 --- a/src/profession.cpp +++ b/src/profession.cpp @@ -79,8 +79,7 @@ profession::profession() : _name_male( no_translation( "null" ) ), _name_female( no_translation( "null" ) ), _description_male( no_translation( "null" ) ), - _description_female( no_translation( "null" ) ), - _point_cost( 0 ) + _description_female( no_translation( "null" ) ) { } @@ -139,7 +138,7 @@ class item_reader : public generic_typed_reader void erase_next( JsonIn &jin, C &container ) const { const std::string id = jin.get_string(); reader_detail::handler().erase_if( container, [&id]( const profession::itypedec & e ) { - return e.type_id == id; + return e.type_id.str() == id; } ); } }; @@ -256,15 +255,16 @@ void profession::check_item_definitions( const itypedecvec &items ) const { for( auto &itd : items ) { if( !item::type_is_defined( itd.type_id ) ) { - debugmsg( "profession %s: item %s does not exist", id.str(), itd.type_id ); + debugmsg( "profession %s: item %s does not exist", id.str(), itd.type_id.str() ); } else if( !itd.snip_id.is_null() ) { const itype *type = item::find_type( itd.type_id ); if( type->snippet_category.empty() ) { - debugmsg( "profession %s: item %s has no snippet category - no description can be set", - id.str(), itd.type_id ); + debugmsg( "profession %s: item %s has no snippet category - no description can " + "be set", id.str(), itd.type_id.str() ); } else { if( !itd.snip_id.is_valid() ) { - debugmsg( "profession %s: there's no snippet with id %s", id.str(), itd.snip_id.str() ); + debugmsg( "profession %s: there's no snippet with id %s", + id.str(), itd.snip_id.str() ); } } } @@ -276,7 +276,7 @@ void profession::check_definition() const check_item_definitions( legacy_starting_items ); check_item_definitions( legacy_starting_items_female ); check_item_definitions( legacy_starting_items_male ); - if( !no_bonus.empty() && !item::type_is_defined( no_bonus ) ) { + if( !no_bonus.is_empty() && !item::type_is_defined( no_bonus ) ) { debugmsg( "no_bonus item '%s' is not an itype_id", no_bonus.c_str() ); } @@ -530,10 +530,10 @@ void json_item_substitution::reset() json_item_substitution::substitution::info::info( const JsonValue &value ) { if( value.test_string() ) { - new_item = value.get_string(); + value.read( new_item, true ); } else { const JsonObject jo = value.get_object(); - new_item = jo.get_string( "item" ); + jo.read( "item", new_item, true ); ratio = jo.get_float( "ratio" ); if( ratio <= 0.0 ) { jo.throw_error( "Ratio must be positive", "ratio" ); @@ -563,13 +563,14 @@ void json_item_substitution::load( const JsonObject &jo ) return p.first == it; } ) != bonuses.end(); }; - if( item_mode && check_duplicate_item( title ) ) { + if( item_mode && check_duplicate_item( itype_id( title ) ) ) { jo.throw_error( "Duplicate definition of item" ); } if( item_mode ) { if( jo.has_member( "bonus" ) ) { - bonuses.emplace_back( title, trait_requirements( jo.get_object( "bonus" ) ) ); + bonuses.emplace_back( itype_id( title ), + trait_requirements( jo.get_object( "bonus" ) ) ); } for( const JsonValue sub : jo.get_array( "sub" ) ) { @@ -579,12 +580,13 @@ void json_item_substitution::load( const JsonObject &jo ) for( const JsonValue info : obj.get_array( "new" ) ) { s.infos.emplace_back( info ); } - substitutions[title].push_back( s ); + substitutions[itype_id( title )].push_back( s ); } } else { for( const JsonObject sub : jo.get_array( "sub" ) ) { substitution s; - const itype_id old_it = sub.get_string( "item" ); + itype_id old_it; + sub.read( "item", old_it, true ); if( check_duplicate_item( old_it ) ) { sub.throw_error( "Duplicate definition of item" ); } @@ -667,21 +669,17 @@ std::vector json_item_substitution::get_substitution( const item &it, const int old_amt = it.count(); for( const substitution::info &inf : sub->infos ) { item result( inf.new_item, advanced_spawn_time() ); - const int new_amt = std::max( 1, static_cast( std::round( inf.ratio * old_amt ) ) ); + int new_amount = std::max( 1, static_cast( std::round( inf.ratio * old_amt ) ) ); if( !result.count_by_charges() ) { - for( int i = 0; i < new_amt; i++ ) { + for( int i = 0; i < new_amount; i++ ) { ret.push_back( result.in_its_container() ); } } else { - result.mod_charges( -result.charges + new_amt ); - while( result.charges > 0 ) { - const item pushed = result.in_its_container(); + while( new_amount > 0 ) { + const item pushed = result.in_its_container( new_amount ); + new_amount -= pushed.charges_of( inf.new_item ); ret.push_back( pushed ); - const int charges = pushed.contents.empty() ? -pushed.charges : - -pushed.contents.only_item().charges; - // get the first contained item (there's only one because of in_its_container()) - result.mod_charges( charges ); } } } diff --git a/src/profession.h b/src/profession.h index f3f7ccc812242..94e9c7cf01a23 100644 --- a/src/profession.h +++ b/src/profession.h @@ -20,8 +20,6 @@ class generic_factory; using Group_tag = std::string; class item; - -using itype_id = std::string; class JsonObject; class avatar; class player; @@ -32,7 +30,7 @@ class profession using StartingSkill = std::pair; using StartingSkillList = std::vector; struct itypedec { - std::string type_id; + itype_id type_id; /** Snippet id, @see snippet_library. */ snippet_id snip_id; // compatible with when this was just a std::string diff --git a/src/ranged.cpp b/src/ranged.cpp index add2302c3453b..9630ab746f851 100644 --- a/src/ranged.cpp +++ b/src/ranged.cpp @@ -41,6 +41,7 @@ #include "material.h" #include "math_defines.h" #include "messages.h" +#include "memory_fast.h" #include "monster.h" #include "morale_types.h" #include "mtype.h" @@ -67,12 +68,23 @@ #include "vehicle.h" #include "vpart_position.h" -static const activity_id ACT_AIM( "ACT_AIM" ); - static const efftype_id effect_downed( "downed" ); static const efftype_id effect_hit_by_player( "hit_by_player" ); static const efftype_id effect_on_roof( "on_roof" ); +static const itype_id itype_12mm( "12mm" ); +static const itype_id itype_40x46mm( "40x46mm" ); +static const itype_id itype_40x53mm( "40x53mm" ); +static const itype_id itype_66mm( "66mm" ); +static const itype_id itype_84x246mm( "84x246mm" ); +static const itype_id itype_arrow( "arrow" ); +static const itype_id itype_bolt( "bolt" ); +static const itype_id itype_brass_catcher( "brass_catcher" ); +static const itype_id itype_flammable( "flammable" ); +static const itype_id itype_m235( "m235" ); +static const itype_id itype_metal_rail( "metal_rail" ); +static const itype_id itype_UPS( "UPS" ); + static const trap_str_id tr_practice_target( "tr_practice_target" ); static const fault_id fault_gun_blackpowder( "fault_gun_blackpowder" ); @@ -109,7 +121,7 @@ class target_ui public: /* None of the public members (except ammo and range) should be modified during execution */ - enum class TargetMode { + enum class TargetMode : int { Fire, Throw, ThrowBlind, @@ -119,6 +131,8 @@ class target_ui Spell }; + // Avatar + avatar *you; // Interface mode TargetMode mode = TargetMode::Fire; // Weapon being fired/thrown @@ -139,21 +153,21 @@ class target_ui bool no_fail = false; // Spell does not require mana bool no_mana = false; + // Relevant activity + aim_activity_actor *activity = nullptr; - enum class ExitCode { + enum class ExitCode : int { Abort, Fire, Timeout, Reload }; - // Initialize UI and run the event loop. - // Uses public members to determine UI contents - // If exit_code != nullptr, exit code will be written into provided address - target_handler::trajectory run( player &pc, ExitCode *exit_code = nullptr ); + // Initialize UI and run the event loop + target_handler::trajectory run(); private: - enum class Status { + enum class Status : int { Good, // All UI elements are enabled BadTarget, // Bad 'dst' selected; forbid aiming/firing OutOfAmmo, // Selected gun mode is out of ammo; forbid moving cursor,aiming and firing @@ -161,7 +175,7 @@ class target_ui }; // Ui status (affects which UI controls are temporarily disabled) - Status status; + Status status = Status::Good; // Current trajectory std::vector traj; @@ -177,21 +191,21 @@ class target_ui std::vector targets; // 'true' if map has z levels and 3D fov is on - bool allow_zlevel_shift; + bool allow_zlevel_shift = false; // Snap camera to cursor. Can be permanently toggled in settings // or temporarily in this window - bool snap_to_target; + bool snap_to_target = false; // If true, LEVEL_UP, LEVEL_DOWN and directional keys // responsible for moving cursor will shift view instead. bool shifting_view = false; // Compact layout - bool compact; + bool compact = false; // Tiny layout - when extremely short on space - bool tiny; + bool tiny = false; // Narrow layout - to keep in theme with // "compact" and "labels-narrow" sidebar styles. - bool narrow; + bool narrow = false; // Window catacurses::window w_target; // Input context @@ -209,7 +223,7 @@ class target_ui // 'recoil' while they are actively spending moves to aim, // but increases the further away the new aim point will be // relative to the current one. - double predicted_recoil; + double predicted_recoil = 0; // For AOE spells, list of tiles affected by the spell // relevant for TargetMode::Spell @@ -229,30 +243,30 @@ class target_ui bool draw_turret_lines = false; // Create window and set up input context - void init_window_and_input( player &pc ); + void init_window_and_input(); // Handle input related to cursor movement. // Returns 'true' if action was recognized and processed. // 'skip_redraw' is set to 'true' if there is no need to redraw the UI. - bool handle_cursor_movement( player &pc, const std::string &action, bool &skip_redraw ); + bool handle_cursor_movement( const std::string &action, bool &skip_redraw ); // Set cursor position. If new position is out of range, // selects closest position in range. // Returns 'false' if cursor position did not change - bool set_cursor_pos( player &pc, const tripoint &new_pos ); + bool set_cursor_pos( const tripoint &new_pos ); // Called when range/ammo changes (or may have changed) - void on_range_ammo_changed( player &pc ); + void on_range_ammo_changed(); // Updates 'targets' for current range - void update_target_list( player &pc ); + void update_target_list(); // Tries to find something to aim at. // reentered - true if UI was re-entered (e.g. during multi-turn aiming) // Validates pc.last_target and pc.last_target_pos. // Sets 'new_dst' as the initial aiming point. // Returns 'true' if we can proceed with aim-and-shoot. - bool choose_initial_target( player &pc, bool reentered, tripoint &new_dst ); + bool choose_initial_target( bool reentered, tripoint &new_dst ); // Update 'status' variable void update_status(); @@ -261,56 +275,53 @@ class target_ui int dist_fn( const tripoint &p ); // Checks if player can see target. For consistency, prefer using this over pc.sees() - bool pl_can_target( const player &pc, const Creature *cr ); + bool pl_can_target( const Creature *cr ); // Set creature (or tile) under cursor as player's last target - void set_last_target( player &pc ); + void set_last_target(); // Prompts player to confirm attack on neutral NPC bool confirm_non_enemy_target(); // Toggle snap-to-target - void toggle_snap_to_target( player &pc ); + void toggle_snap_to_target(); // Cycle targets. 'direction' is either 1 or -1 - void cycle_targets( player &pc, int direction ); + void cycle_targets( int direction ); // Set new view offset. Updates map cache if necessary - void set_view_offset( player &pc, const tripoint &new_offset ); + void set_view_offset( const tripoint &new_offset ); // Updates 'turrets_in_range' void update_turrets_in_range(); // Recalculate 'recoil' penalty. This should be called if - // player's 'recoil' value has been modified + // avatar's 'recoil' value has been modified // Relevant for TargetMode::Fire - void recalc_aim_turning_penalty( player &pc ); + void recalc_aim_turning_penalty(); - // Apply penalty to player's 'recoil' value based on + // Apply penalty to avatar's 'recoil' value based on // how much they moved their aim point. // Relevant for TargetMode::Fire - void apply_aim_turning_penalty( player &pc ); + void apply_aim_turning_penalty(); // Switch firing mode. - void action_switch_mode( player &pc ); + void action_switch_mode(); // Switch ammo. Returns 'false' if requires a reloading UI. - bool action_switch_ammo( player &pc ); + bool action_switch_ammo(); // Aim for 10 turns. Returns 'false' if ran out of moves - bool action_aim( player &pc ); + bool action_aim(); // Aim and shoot. Returns 'false' if ran out of moves - bool action_aim_and_shoot( player &pc, const std::string &action ); + bool action_aim_and_shoot( const std::string &action ); - // Drawing routines - void draw( player &pc ); - - // Draw terrain with UI-specific overlays - void draw_terrain( player &pc ); + // Draw UI-specific terrain overlays + void draw_terrain_overlay(); // Draw aiming window - void draw_ui_window( player &pc ); + void draw_ui_window(); // Generate ui window title std::string uitext_title(); @@ -327,67 +338,68 @@ class target_ui void panel_cursor_info( int &text_y ); void panel_gun_info( int &text_y ); - void panel_recoil( player &pc, int &text_y ); - void panel_spell_info( player &pc, int &text_y ); + void panel_recoil( int &text_y ); + void panel_spell_info( int &text_y ); void panel_target_info( int &text_y, bool fill_with_blank_if_no_target ); - void panel_fire_mode_aim( player &pc, int &text_y ); + void panel_fire_mode_aim( int &text_y ); void panel_turret_list( int &text_y ); // On-selected-as-target checks that act as if they are on-hit checks. // `harmful` is `false` if using a non-damaging spell - void on_target_accepted( player &pc, bool harmful ); + void on_target_accepted( bool harmful ); }; -target_handler::trajectory target_handler::mode_fire( player &pc, item &weapon, - bool &reload_requested ) +target_handler::trajectory target_handler::mode_fire( avatar &you, aim_activity_actor &activity ) { target_ui ui = target_ui(); + ui.you = &you; ui.mode = target_ui::TargetMode::Fire; - ui.relevant = &weapon; - gun_mode gun = weapon.gun_current_mode(); - ui.range = gun.target->gun_range( &pc ); + ui.activity = &activity; + ui.relevant = activity.get_weapon(); + gun_mode gun = ui.relevant->gun_current_mode(); + ui.range = gun.target->gun_range( &you ); ui.ammo = gun->ammo_data(); - target_ui::ExitCode exit_code; - trajectory result = ui.run( pc, &exit_code ); - reload_requested = exit_code == target_ui::ExitCode::Reload; - return result; + return ui.run(); } -target_handler::trajectory target_handler::mode_throw( player &pc, item &relevant, +target_handler::trajectory target_handler::mode_throw( avatar &you, item &relevant, bool blind_throwing ) { target_ui ui = target_ui(); + ui.you = &you; ui.mode = blind_throwing ? target_ui::TargetMode::ThrowBlind : target_ui::TargetMode::Throw; ui.relevant = &relevant; - ui.range = pc.throw_range( relevant ); + ui.range = you.throw_range( relevant ); - return ui.run( pc ); + return ui.run(); } -target_handler::trajectory target_handler::mode_reach( player &pc, item &weapon ) +target_handler::trajectory target_handler::mode_reach( avatar &you, item &weapon ) { target_ui ui = target_ui(); + ui.you = &you; ui.mode = target_ui::TargetMode::Reach; ui.relevant = &weapon; - ui.range = weapon.current_reach_range( pc ); + ui.range = weapon.current_reach_range( you ); - return ui.run( pc ); + return ui.run(); } -target_handler::trajectory target_handler::mode_turret_manual( player &pc, turret_data &turret ) +target_handler::trajectory target_handler::mode_turret_manual( avatar &you, turret_data &turret ) { target_ui ui = target_ui(); + ui.you = &you; ui.mode = target_ui::TargetMode::TurretManual; ui.turret = &turret; ui.relevant = &*turret.base(); ui.range = turret.range(); ui.ammo = turret.ammo_data(); - return ui.run( pc ); + return ui.run(); } -target_handler::trajectory target_handler::mode_turrets( player &pc, vehicle &veh, +target_handler::trajectory target_handler::mode_turrets( avatar &you, vehicle &veh, const std::vector &turrets ) { // Find radius of a circle centered at u encompassing all points turrets can aim at @@ -399,106 +411,55 @@ target_handler::trajectory target_handler::mode_turrets( player &pc, vehicle &ve tripoint pos = veh.global_part_pos3( *t ); int res = 0; - res = std::max( res, rl_dist( g->u.pos(), pos + point( range, 0 ) ) ); - res = std::max( res, rl_dist( g->u.pos(), pos + point( -range, 0 ) ) ); - res = std::max( res, rl_dist( g->u.pos(), pos + point( 0, range ) ) ); - res = std::max( res, rl_dist( g->u.pos(), pos + point( 0, -range ) ) ); + res = std::max( res, rl_dist( you.pos(), pos + point( range, 0 ) ) ); + res = std::max( res, rl_dist( you.pos(), pos + point( -range, 0 ) ) ); + res = std::max( res, rl_dist( you.pos(), pos + point( 0, range ) ) ); + res = std::max( res, rl_dist( you.pos(), pos + point( 0, -range ) ) ); range_total = std::max( range_total, res ); } target_ui ui = target_ui(); + ui.you = &you; ui.mode = target_ui::TargetMode::Turrets; ui.veh = &veh; ui.vturrets = &turrets; ui.range = range_total; - return ui.run( pc ); + return ui.run(); } -target_handler::trajectory target_handler::mode_spell( player &pc, spell &casting, bool no_fail, +target_handler::trajectory target_handler::mode_spell( avatar &you, spell &casting, bool no_fail, bool no_mana ) { target_ui ui = target_ui(); + ui.you = &you; ui.mode = target_ui::TargetMode::Spell; ui.casting = &casting; ui.range = casting.range(); ui.no_fail = no_fail; ui.no_mana = no_mana; - return ui.run( pc ); -} - -target_handler::trajectory target_handler::mode_spell( player &pc, spell_id sp, bool no_fail, - bool no_mana ) -{ - return mode_spell( pc, g->u.magic.get_spell( sp ), no_fail, no_mana ); + return ui.run(); } -bool targeting_data::is_valid() const +target_handler::trajectory target_handler::mode_spell( avatar &you, const spell_id &sp, + bool no_fail, bool no_mana ) { - return weapon_source != WEAPON_SOURCE_INVALID; -} - -targeting_data targeting_data::use_wielded() -{ - return targeting_data{ - WEAPON_SOURCE_WIELDED, - nullptr, - 0_J, - }; -} - -targeting_data targeting_data::use_bionic( const item &fake_gun, - const units::energy &cost_per_shot ) -{ - return targeting_data{ - WEAPON_SOURCE_BIONIC, - shared_ptr_fast( new item( fake_gun ) ), - cost_per_shot - }; -} - -targeting_data targeting_data::use_mutation( const item &fake_gun ) -{ - return targeting_data{ - WEAPON_SOURCE_MUTATION, - shared_ptr_fast( new item( fake_gun ) ), - 0_J - }; -} - -namespace io -{ -template<> -std::string enum_to_string( weapon_source_enum data ) -{ - switch( data ) { - // *INDENT-OFF* - case WEAPON_SOURCE_INVALID: return "WS_INVALID"; - case WEAPON_SOURCE_WIELDED: return "WS_WIELDED"; - case WEAPON_SOURCE_BIONIC: return "WS_BIONIC"; - case WEAPON_SOURCE_MUTATION: return "WS_MUTATION"; - // *INDENT-ON* - case NUM_WEAPON_SOURCES: - break; - } - debugmsg( "Invalid weapon source" ); - abort(); + return mode_spell( you, you.magic.get_spell( sp ), no_fail, no_mana ); } -} // namespace io -static double occupied_tile_fraction( m_size target_size ) +static double occupied_tile_fraction( creature_size target_size ) { switch( target_size ) { - case MS_TINY: + case creature_size::tiny: return 0.1; - case MS_SMALL: + case creature_size::small: return 0.25; - case MS_MEDIUM: + case creature_size::medium: return 0.5; - case MS_LARGE: + case creature_size::large: return 0.75; - case MS_HUGE: + case creature_size::huge: return 1.0; } @@ -509,15 +470,15 @@ double Creature::ranged_target_size() const { if( has_flag( MF_HARDTOSHOOT ) ) { switch( get_size() ) { - case MS_TINY: - case MS_SMALL: - return occupied_tile_fraction( MS_TINY ); - case MS_MEDIUM: - return occupied_tile_fraction( MS_SMALL ); - case MS_LARGE: - return occupied_tile_fraction( MS_MEDIUM ); - case MS_HUGE: - return occupied_tile_fraction( MS_LARGE ); + case creature_size::tiny: + case creature_size::small: + return occupied_tile_fraction( creature_size::tiny ); + case creature_size::medium: + return occupied_tile_fraction( creature_size::small ); + case creature_size::large: + return occupied_tile_fraction( creature_size::medium ); + case creature_size::huge: + return occupied_tile_fraction( creature_size::large ); } } return occupied_tile_fraction( get_size() ); @@ -762,7 +723,7 @@ int player::fire_gun( const tripoint &target, int shots, item &gun ) // cap our maximum burst size by the amount of UPS power left if( !gun.has_flag( flag_VEHICLE ) && gun.get_gun_ups_drain() > 0 ) { - shots = std::min( shots, static_cast( charges_of( "UPS" ) / gun.get_gun_ups_drain() ) ); + shots = std::min( shots, static_cast( charges_of( itype_UPS ) / gun.get_gun_ups_drain() ) ); } if( shots <= 0 ) { @@ -782,7 +743,8 @@ int player::fire_gun( const tripoint &target, int shots, item &gun ) /** @EFFECT_SMG delays effects of recoil during automatic fire */ /** @EFFECT_RIFLE delays effects of recoil during automatic fire */ /** @EFFECT_SHOTGUN delays effects of recoil during automatic fire */ - double absorb = std::min( get_skill_level( gun.gun_skill() ), MAX_SKILL ) / double( MAX_SKILL * 2 ); + double absorb = std::min( get_skill_level( gun.gun_skill() ), + MAX_SKILL ) / static_cast( MAX_SKILL * 2 ); tripoint aim = target; int curshot = 0; @@ -820,8 +782,8 @@ int player::fire_gun( const tripoint &target, int shots, item &gun ) cycle_action( gun, pos() ); if( has_trait( trait_PYROMANIA ) && !has_morale( MORALE_PYROMANIA_STARTFIRE ) ) { - if( gun.ammo_current() == "flammable" || gun.ammo_current() == "66mm" || - gun.ammo_current() == "84x246mm" || gun.ammo_current() == "m235" ) { + if( gun.ammo_current() == itype_flammable || gun.ammo_current() == itype_66mm || + gun.ammo_current() == itype_84x246mm || gun.ammo_current() == itype_m235 ) { add_msg_if_player( m_good, _( "You feel a surge of euphoria as flames roar out of the %s!" ), gun.tname() ); add_morale( MORALE_PYROMANIA_STARTFIRE, 15, 15, 8_hours, 6_hours ); @@ -835,7 +797,7 @@ int player::fire_gun( const tripoint &target, int shots, item &gun ) } if( !gun.has_flag( flag_VEHICLE ) ) { - use_charges( "UPS", gun.get_gun_ups_drain() ); + use_charges( itype_UPS, gun.get_gun_ups_drain() ); } if( shot.missed_by <= .1 ) { @@ -987,13 +949,6 @@ dealt_projectile_attack player::throw_item( const tripoint &target, const item & units::volume volume = to_throw.volume(); units::mass weight = to_throw.weight(); - // Previously calculated as 2_gram * std::max( 1, str_cur ) - // using 16_gram normalizes it to 8 str. Same effort expenditure - // for being able to throw farther. - const int weight_cost = weight / ( 16_gram ); - const int encumbrance_cost = encumb( bp_arm_l ) + encumb( bp_arm_r ); - const int stamina_cost = ( weight_cost + encumbrance_cost - throwing_skill + 50 ) * -1; - bool throw_assist = false; int throw_assist_str = 0; if( is_mounted() ) { @@ -1005,7 +960,8 @@ dealt_projectile_attack player::throw_item( const tripoint &target, const item & } } if( !throw_assist ) { - mod_stamina( stamina_cost ); + const int stamina_cost = get_standard_stamina_cost( &thrown ); + mod_stamina( stamina_cost + throwing_skill ); } const skill_id &skill_used = skill_throw; @@ -1535,7 +1491,7 @@ static projectile make_gun_projectile( const item &gun ) auto &fx = proj.proj_effects; - if( ( gun.ammo_data() && gun.ammo_data()->phase == LIQUID ) || + if( ( gun.ammo_data() && gun.ammo_data()->phase == phase_id::LIQUID ) || fx.count( "SHOT" ) || fx.count( "BOUNCE" ) ) { fx.insert( "WIDE" ); } @@ -1555,7 +1511,7 @@ static projectile make_gun_projectile( const item &gun ) const auto &ammo = gun.ammo_data()->ammo; proj.critical_multiplier = ammo->critical_multiplier; - if( ammo->drop != "null" && x_in_y( ammo->drop_chance, 1.0 ) ) { + if( !ammo->drop.is_null() && x_in_y( ammo->drop_chance, 1.0 ) ) { item drop( ammo->drop ); if( ammo->drop_active ) { drop.activate(); @@ -1598,7 +1554,7 @@ static void cycle_action( item &weap, const tripoint &pos ) if( weap.ammo_data() && weap.ammo_data()->ammo->casing ) { const itype_id casing = *weap.ammo_data()->ammo->casing; - if( weap.has_flag( "RELOAD_EJECT" ) || weap.gunmod_find( "brass_catcher" ) ) { + if( weap.has_flag( "RELOAD_EJECT" ) || weap.gunmod_find( itype_brass_catcher ) ) { weap.put_in( item( casing ).set_flag( "CASING" ), item_pocket::pocket_type::CONTAINER ); } else { if( cargo.empty() ) { @@ -1616,7 +1572,7 @@ static void cycle_action( item &weap, const tripoint &pos ) const auto mag = weap.magazine_current(); if( mag && mag->type->magazine->linkage ) { item linkage( *mag->type->magazine->linkage, calendar::turn, 1 ); - if( weap.gunmod_find( "brass_catcher" ) ) { + if( weap.gunmod_find( itype_brass_catcher ) ) { linkage.set_flag( "CASING" ); weap.put_in( linkage, item_pocket::pocket_type::CONTAINER ); } else if( cargo.empty() ) { @@ -1652,21 +1608,21 @@ item::sound_data item::gun_noise( const bool burst ) const noise = std::max( noise, 0 ); - if( ammo_current() == "40x46mm" || ammo_current() == "40x53mm" ) { + if( ammo_current() == itype_40x46mm || ammo_current() == itype_40x53mm ) { // Grenade launchers return { 8, _( "Thunk!" ) }; - } else if( ammo_current() == "12mm" || ammo_current() == "metal_rail" ) { + } else if( ammo_current() == itype_12mm || ammo_current() == itype_metal_rail ) { // Railguns return { 24, _( "tz-CRACKck!" ) }; - } else if( ammo_current() == "flammable" || ammo_current() == "66mm" || - ammo_current() == "84x246mm" || ammo_current() == "m235" ) { + } else if( ammo_current() == itype_flammable || ammo_current() == itype_66mm || + ammo_current() == itype_84x246mm || ammo_current() == itype_m235 ) { // Rocket launchers and flamethrowers return { 4, _( "Fwoosh!" ) }; - } else if( ammo_current() == "arrow" ) { + } else if( ammo_current() == itype_arrow ) { return { noise, _( "whizz!" ) }; - } else if( ammo_current() == "bolt" ) { + } else if( ammo_current() == itype_bolt ) { return { noise, _( "thonk!" ) }; } @@ -1723,14 +1679,14 @@ static double dispersion_from_skill( double skill, double weapon_dispersion ) if( skill >= MAX_SKILL ) { return 0.0; } - double skill_shortfall = double( MAX_SKILL ) - skill; + double skill_shortfall = static_cast( MAX_SKILL ) - skill; double dispersion_penalty = 3 * skill_shortfall; double skill_threshold = 5; if( skill >= skill_threshold ) { - double post_threshold_skill_shortfall = double( MAX_SKILL ) - skill; + double post_threshold_skill_shortfall = static_cast( MAX_SKILL ) - skill; // Lack of mastery multiplies the dispersion of the weapon. return dispersion_penalty + ( weapon_dispersion * post_threshold_skill_shortfall * 1.25 ) / - ( double( MAX_SKILL ) - skill_threshold ); + ( static_cast( MAX_SKILL ) - skill_threshold ); } // Unskilled shooters suffer greater penalties, still scaling with weapon penalties. double pre_threshold_skill_shortfall = skill_threshold - skill; @@ -1792,21 +1748,34 @@ double player::gun_value( const item &weap, int ammo ) const } const islot_gun &gun = *weap.type->gun; - itype_id ammo_type; - if( weap.ammo_current() != "null" ) { + itype_id ammo_type = itype_id::NULL_ID(); + if( !weap.ammo_current().is_null() ) { ammo_type = weap.ammo_current(); } else if( weap.magazine_current() ) { ammo_type = weap.common_ammo_default(); - } else { + } else if( weap.is_magazine() ) { ammo_type = weap.ammo_default(); + } else if( !weap.magazine_default().is_null() ) { + ammo_type = item( weap.magazine_default() ).ammo_default(); } - const itype *def_ammo_i = ammo_type != "NULL" ? + const itype *def_ammo_i = !ammo_type.is_null() ? item::find_type( ammo_type ) : nullptr; damage_instance gun_damage = weap.gun_damage(); item tmp = weap; - tmp.ammo_set( ammo_type ); + if( tmp.is_magazine() ) { + tmp.ammo_set( ammo_type ); + } else if( tmp.contents.has_pocket_type( item_pocket::pocket_type::MAGAZINE_WELL ) ) { + item mag; + if( weap.magazine_current() ) { + mag = item( *weap.magazine_current() ); + } else { + mag = item( weap.magazine_default() ); + } + mag.ammo_set( ammo_type ); + tmp.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } int total_dispersion = get_weapon_dispersion( tmp ).max() + effective_dispersion( tmp.sight_dispersion() ); @@ -1893,18 +1862,18 @@ double player::gun_value( const item &weap, int 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.type->get_id(), gun_value, dispersion_factor, damage_factor, + weap.type->get_id().str(), gun_value, dispersion_factor, damage_factor, capacity_factor ); return std::max( 0.0, gun_value ); } -target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) +target_handler::trajectory target_ui::run() { - if( mode == TargetMode::Spell && !no_mana && !casting->can_cast( pc ) ) { - pc.add_msg_if_player( m_bad, _( "You don't have enough %s to cast this spell" ), - casting->energy_string() ); + if( mode == TargetMode::Spell && !no_mana && !casting->can_cast( *you ) ) { + you->add_msg_if_player( m_bad, _( "You don't have enough %s to cast this spell" ), + casting->energy_string() ); } else if( mode == TargetMode::Fire ) { - sight_dispersion = pc.effective_dispersion( relevant->sight_dispersion() ); + sight_dispersion = you->effective_dispersion( relevant->sight_dispersion() ); } // Load settings @@ -1916,58 +1885,65 @@ target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) draw_turret_lines = vturrets->size() == 1; } - // Create window - init_window_and_input( pc ); - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + on_out_of_scope cleanup( []() { + g->m.invalidate_map_cache( g->u.pos().z + g->u.view_offset.z ); + } ); + restore_on_out_of_scope view_offset_prev( g->u.view_offset ); + + shared_ptr_fast target_ui_cb = make_shared_fast( + [&]() { + draw_terrain_overlay(); + } ); + g->add_draw_callback( target_ui_cb ); + + ui_adaptor ui; + ui.on_screen_resize( [&]( ui_adaptor & ui ) { + init_window_and_input(); + ui.position_from_window( w_target ); + } ); + ui.mark_resize(); + + ui.on_redraw( [&]( const ui_adaptor & ) { + draw_ui_window(); + } ); // Handle multi-turn aiming std::string action; bool attack_was_confirmed = false; bool reentered = false; - tripoint manual_view_offset = pc.view_offset; - if( mode == TargetMode::Fire ) { - if( pc.activity.id() == ACT_AIM ) { - // We were in this UI during previous turn... - reentered = true; - std::string act_data = pc.activity.str_values[0]; - if( act_data == "AIM" ) { - // ...and ran out of moves while aiming. - } else { - // ...and selected 'aim and shoot', but ran out of moves. - // So, skip retrieving input and go straight to the action. - action = act_data; - attack_was_confirmed = true; - } - // Load state to keep the ui consistent across turns - snap_to_target = pc.activity.str_values[1] == "snap"; - shifting_view = pc.activity.values[0] == 1; - manual_view_offset = pc.activity.coords[0]; - // Clear the activity, we'll re-set it later if we need to. - pc.cancel_activity(); + if( mode == TargetMode::Fire && !activity->first_turn ) { + // We were in this UI during previous turn... + reentered = true; + std::string act_data = activity->action; + if( act_data == "AIM" ) { + // ...and ran out of moves while aiming. + } else { + // ...and selected 'aim and shoot', but ran out of moves. + // So, skip retrieving input and go straight to the action. + action = act_data; + attack_was_confirmed = true; } + // Load state to keep the ui consistent across turns + snap_to_target = activity->snap_to_target; + shifting_view = activity->shifting_view; } - // Restore view to how it was during previos turn in this ui - const tripoint saved_view_offset = pc.view_offset; - set_view_offset( pc, manual_view_offset ); - // Initialize cursor position - src = pc.pos(); + src = you->pos(); tripoint initial_dst = src; - update_target_list( pc ); - if( !choose_initial_target( pc, reentered, initial_dst ) ) { + update_target_list(); + if( !choose_initial_target( reentered, initial_dst ) ) { // We've lost our target from previous turn action.clear(); attack_was_confirmed = false; - pc.last_target.reset(); + you->last_target.reset(); } - set_cursor_pos( pc, initial_dst ); + set_cursor_pos( initial_dst ); if( dst != initial_dst ) { // Our target moved out of range action.clear(); attack_was_confirmed = false; - pc.last_target.reset(); + you->last_target.reset(); } // Event loop! @@ -1976,7 +1952,8 @@ target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) bool skip_redraw = false; for( ;; action.clear() ) { if( !skip_redraw ) { - draw( pc ); + g->invalidate_main_ui_adaptor(); + ui_manager::redraw(); } skip_redraw = false; @@ -1992,15 +1969,15 @@ target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) } // Handle received input - if( handle_cursor_movement( pc, action, skip_redraw ) ) { + if( handle_cursor_movement( action, skip_redraw ) ) { continue; } else if( action == "TOGGLE_SNAP_TO_TARGET" ) { - toggle_snap_to_target( pc ); + toggle_snap_to_target(); } else if( action == "TOGGLE_TURRET_LINES" ) { draw_turret_lines = !draw_turret_lines; } else if( action == "TOGGLE_MOVE_CURSOR_VIEW" ) { if( snap_to_target ) { - toggle_snap_to_target( pc ); + toggle_snap_to_target(); } shifting_view = !shifting_view; } else if( action == "zoom_in" ) { @@ -2011,9 +1988,9 @@ target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) loop_exit_code = ExitCode::Abort; break; } else if( action == "SWITCH_MODE" ) { - action_switch_mode( pc ); + action_switch_mode(); } else if( action == "SWITCH_AMMO" ) { - if( !action_switch_ammo( pc ) ) { + if( !action_switch_ammo() ) { loop_exit_code = ExitCode::Reload; break; } @@ -2033,7 +2010,7 @@ target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) if( !can_skip_confirm && !confirm_non_enemy_target() ) { continue; } - set_last_target( pc ); + set_last_target(); loop_exit_code = ExitCode::Fire; break; } else if( action == "AIM" ) { @@ -2044,7 +2021,7 @@ target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) // No confirm_non_enemy_target here because we have not initiated the firing. // Aiming can be stopped / aborted at any time. - if( !action_aim( pc ) ) { + if( !action_aim() ) { timed_out_action = "AIM"; loop_exit_code = ExitCode::Timeout; break; @@ -2060,7 +2037,7 @@ target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) continue; } - if( action_aim_and_shoot( pc, action ) ) { + if( action_aim_and_shoot( action ) ) { loop_exit_code = ExitCode::Fire; } else { timed_out_action = action; @@ -2070,49 +2047,39 @@ target_handler::trajectory target_ui::run( player &pc, ExitCode *exit_code ) } } // for(;;) - // Since the activity can be cancelled at any time, we restore the view now - // but save it if we need it in this ui on the next turn - manual_view_offset = pc.view_offset; - set_view_offset( pc, saved_view_offset ); - switch( loop_exit_code ) { case ExitCode::Abort: { traj.clear(); + if( mode == TargetMode::Fire ) { + activity->aborted = true; + } break; } case ExitCode::Fire: { bool harmful = !( mode == TargetMode::Spell && casting->damage() <= 0 ); - on_target_accepted( pc, harmful ); + on_target_accepted( harmful ); break; } case ExitCode::Timeout: { - // We've ran out of moves. Set activity to ACT_AIM, so we'll - // automatically re-enter the aiming UI on the next turn. - // pc.activity.str_values[0] remembers which action, AIM or *_SHOT, - // we didn't have the time to finish. + // We've ran out of moves, save UI state traj.clear(); - pc.assign_activity( ACT_AIM, 0, 0 ); - pc.activity.str_values.push_back( timed_out_action ); - // Save UI state - pc.activity.str_values.push_back( snap_to_target ? "snap" : "nosnap" ); - pc.activity.values.push_back( shifting_view ? 1 : 0 ); - pc.activity.coords.push_back( manual_view_offset ); + activity->action = timed_out_action; + activity->snap_to_target = snap_to_target; + activity->shifting_view = shifting_view; break; } case ExitCode::Reload: { - // Calling function will handle reloading for us traj.clear(); + activity->aborted = true; + activity->reload_requested = true; break; } } - if( exit_code ) { - *exit_code = loop_exit_code; - } return traj; } -void target_ui::init_window_and_input( player &pc ) +void target_ui::init_window_and_input() { std::string display_type = get_option( "ACCURACY_DISPLAY" ); std::string panel_type = panel_manager::get_manager().get_current_layout_id(); @@ -2177,7 +2144,7 @@ void target_ui::init_window_and_input( player &pc ) ctxt.register_action( "AIM" ); ctxt.register_action( "SWITCH_AIM" ); - aim_types = pc.get_aim_types( *relevant ); + aim_types = you->get_aim_types( *relevant ); for( aim_type &type : aim_types ) { if( type.has_threshold ) { ctxt.register_action( type.action ); @@ -2190,14 +2157,14 @@ void target_ui::init_window_and_input( player &pc ) } } -bool target_ui::handle_cursor_movement( player &pc, const std::string &action, bool &skip_redraw ) +bool target_ui::handle_cursor_movement( const std::string &action, bool &skip_redraw ) { cata::optional mouse_pos; - const auto shift_view_or_cursor = [&pc, this]( const tripoint & delta ) { + const auto shift_view_or_cursor = [this]( const tripoint & delta ) { if( this->shifting_view ) { - this->set_view_offset( pc, pc.view_offset + delta ); + this->set_view_offset( this->you->view_offset + delta ); } else { - this->set_cursor_pos( pc, dst + delta ); + this->set_cursor_pos( dst + delta ); } }; @@ -2211,9 +2178,9 @@ bool target_ui::handle_cursor_movement( player &pc, const std::string &action, b edge_scroll *= 2; } if( snap_to_target ) { - set_cursor_pos( pc, dst + edge_scroll ); + set_cursor_pos( dst + edge_scroll ); } else { - set_view_offset( pc, pc.view_offset + edge_scroll ); + set_view_offset( you->view_offset + edge_scroll ); } } } else if( const cata::optional delta = ctxt.get_direction( action ) ) { @@ -2221,8 +2188,8 @@ bool target_ui::handle_cursor_movement( player &pc, const std::string &action, b shift_view_or_cursor( *delta ); } else if( action == "SELECT" && ( mouse_pos = ctxt.get_coordinates( g->w_terrain ) ) ) { // Set pos by clicking with mouse - mouse_pos->z = pc.pos().z + pc.view_offset.z; - set_cursor_pos( pc, *mouse_pos ); + mouse_pos->z = you->pos().z + you->view_offset.z; + set_cursor_pos( *mouse_pos ); } else if( action == "LEVEL_UP" || action == "LEVEL_DOWN" ) { // Shift view/cursor up/down one z level tripoint delta = tripoint( @@ -2232,14 +2199,14 @@ bool target_ui::handle_cursor_movement( player &pc, const std::string &action, b ); shift_view_or_cursor( delta ); } else if( action == "NEXT_TARGET" ) { - cycle_targets( pc, 1 ); + cycle_targets( 1 ); } else if( action == "PREV_TARGET" ) { - cycle_targets( pc, -1 ); + cycle_targets( -1 ); } else if( action == "CENTER" ) { if( shifting_view ) { - set_view_offset( pc, tripoint_zero ); + set_view_offset( tripoint_zero ); } else { - set_cursor_pos( pc, src ); + set_cursor_pos( src ); } } else { return false; @@ -2248,7 +2215,7 @@ bool target_ui::handle_cursor_movement( player &pc, const std::string &action, b return true; } -bool target_ui::set_cursor_pos( player &pc, const tripoint &new_pos ) +bool target_ui::set_cursor_pos( const tripoint &new_pos ) { if( dst == new_pos ) { return false; @@ -2317,7 +2284,7 @@ bool target_ui::set_cursor_pos( player &pc, const tripoint &new_pos ) } if( snap_to_target ) { - set_view_offset( pc, dst - src ); + set_view_offset( dst - src ); } // Make player's sprite flip to face the current target @@ -2325,23 +2292,23 @@ bool target_ui::set_cursor_pos( player &pc, const tripoint &new_pos ) int dy = dst.y - src.y; if( !tile_iso ) { if( dx > 0 ) { - g->u.facing = FD_RIGHT; + you->facing = FD_RIGHT; } else if( dx < 0 ) { - g->u.facing = FD_LEFT; + you->facing = FD_LEFT; } } else { if( dx >= 0 && dy >= 0 ) { - g->u.facing = FD_RIGHT; + you->facing = FD_RIGHT; } if( dy <= 0 && dx <= 0 ) { - g->u.facing = FD_LEFT; + you->facing = FD_LEFT; } } // Cache creature under cursor if( src != dst ) { Creature *cr = g->critter_at( dst, true ); - if( cr && pl_can_target( pc, cr ) ) { + if( cr && pl_can_target( cr ) ) { dst_critter = cr; } else { dst_critter = nullptr; @@ -2352,7 +2319,7 @@ bool target_ui::set_cursor_pos( player &pc, const tripoint &new_pos ) // Update mode-specific stuff if( mode == TargetMode::Fire ) { - recalc_aim_turning_penalty( pc ); + recalc_aim_turning_penalty(); } else if( mode == TargetMode::Spell ) { const std::string fx = casting->effect(); if( fx == "target_attack" || fx == "projectile_attack" || fx == "ter_transform" ) { @@ -2374,13 +2341,13 @@ bool target_ui::set_cursor_pos( player &pc, const tripoint &new_pos ) return true; } -void target_ui::on_range_ammo_changed( player &pc ) +void target_ui::on_range_ammo_changed() { update_status(); - update_target_list( pc ); + update_target_list(); } -void target_ui::update_target_list( player &pc ) +void target_ui::update_target_list() { if( range == 0 ) { targets.clear(); @@ -2388,23 +2355,21 @@ void target_ui::update_target_list( player &pc ) } // Get targets in range and sort them by distance (targets[0] is the closest) - // FIXME: get_targetable_creatures does not consider some of the visible creatures - // as targets (e.g. those behind fences), but you can still see and shoot them - targets = pc.get_targetable_creatures( range ); + targets = you->get_targetable_creatures( range, mode == TargetMode::Reach ); std::sort( targets.begin(), targets.end(), [&]( const Creature * lhs, const Creature * rhs ) { - return rl_dist_exact( lhs->pos(), pc.pos() ) < rl_dist_exact( rhs->pos(), pc.pos() ); + return rl_dist_exact( lhs->pos(), you->pos() ) < rl_dist_exact( rhs->pos(), you->pos() ); } ); } -bool target_ui::choose_initial_target( player &pc, bool reentered, tripoint &new_dst ) +bool target_ui::choose_initial_target( bool reentered, tripoint &new_dst ) { // Determine if we had a target and it is still visible - if( !pc.last_target.expired() ) { - Creature *cr = pc.last_target.lock().get(); - if( pl_can_target( pc, cr ) ) { + if( !you->last_target.expired() ) { + Creature *cr = you->last_target.lock().get(); + if( pl_can_target( cr ) ) { // There it is! new_dst = cr->pos(); - pc.last_target_pos = g->m.getabs( new_dst ); + you->last_target_pos = g->m.getabs( new_dst ); return true; } } @@ -2412,19 +2377,19 @@ bool target_ui::choose_initial_target( player &pc, bool reentered, tripoint &new // Check if we were aiming at a tile or a (now missing) creature in a tile // and still can aim at that tile. cata::optional local_last_tgt_pos = cata::nullopt; - if( pc.last_target_pos ) { - tripoint local = g->m.getlocal( *pc.last_target_pos ); + if( you->last_target_pos ) { + tripoint local = g->m.getlocal( *you->last_target_pos ); if( dist_fn( local ) > range ) { // No luck - pc.last_target_pos = cata::nullopt; + you->last_target_pos = cata::nullopt; } else if( reentered ) { local_last_tgt_pos = local; } } - if( mode == TargetMode::Fire && pc.recoil == MAX_RECOIL ) { + if( mode == TargetMode::Fire && you->recoil == MAX_RECOIL ) { // We've either moved away, used a bow or a gun with MASSIVE recoil. It doesn't really matter // where we were aiming at, might as well start from scratch. - pc.last_target_pos = cata::nullopt; + you->last_target_pos = cata::nullopt; local_last_tgt_pos = cata::nullopt; } if( local_last_tgt_pos ) { @@ -2437,8 +2402,8 @@ bool target_ui::choose_initial_target( player &pc, bool reentered, tripoint &new // The closest practice target const std::vector nearby = closest_tripoints_first( src, range ); const auto target_spot = std::find_if( nearby.begin(), nearby.end(), - [&pc]( const tripoint & pt ) { - return g->m.tr_at( pt ).id == tr_practice_target && pc.sees( pt ); + [this]( const tripoint & pt ) { + return g->m.tr_at( pt ).id == tr_practice_target && this->you->sees( pt ); } ); if( target_spot != nearby.end() ) { @@ -2465,7 +2430,7 @@ void target_ui::update_status() // Selected gun mode is empty status = Status::OutOfAmmo; } else if( ( src == dst ) && !( mode == TargetMode::Spell && - casting->is_valid_target( target_self ) ) ) { + casting->is_valid_target( spell_target::self ) ) ) { // TODO: consider allowing targeting yourself with turrets status = Status::BadTarget; } else if( dist_fn( dst ) > range ) { @@ -2483,18 +2448,18 @@ int target_ui::dist_fn( const tripoint &p ) return static_cast( std::round( rl_dist_exact( src, p ) ) ); } -bool target_ui::pl_can_target( const player &pc, const Creature *cr ) +bool target_ui::pl_can_target( const Creature *cr ) { - return pc.sees( *cr ) || pc.sees_with_infrared( *cr ); + return you->sees( *cr ) || you->sees_with_infrared( *cr ); } -void target_ui::set_last_target( player &pc ) +void target_ui::set_last_target() { - pc.last_target_pos = g->m.getabs( dst ); + you->last_target_pos = g->m.getabs( dst ); if( dst_critter ) { - pc.last_target = g->shared_from( *dst_critter ); + you->last_target = g->shared_from( *dst_critter ); } else { - pc.last_target.reset(); + you->last_target.reset(); } } @@ -2507,18 +2472,18 @@ bool target_ui::confirm_non_enemy_target() return true; } -void target_ui::toggle_snap_to_target( player &pc ) +void target_ui::toggle_snap_to_target() { shifting_view = false; if( snap_to_target ) { // Keep current view offset } else { - set_view_offset( pc, dst - src ); + set_view_offset( dst - src ); } snap_to_target = !snap_to_target; } -void target_ui::cycle_targets( player &pc, int direction ) +void target_ui::cycle_targets( int direction ) { if( targets.empty() ) { // Nothing to cycle @@ -2531,7 +2496,7 @@ void target_ui::cycle_targets( player &pc, int direction ) if( t != targets.end() ) { size_t idx = std::distance( targets.begin(), t ); new_target = ( idx + targets.size() + direction ) % targets.size(); - set_cursor_pos( pc, targets[new_target]->pos() ); + set_cursor_pos( targets[new_target]->pos() ); return; } } @@ -2539,26 +2504,25 @@ void target_ui::cycle_targets( player &pc, int direction ) // There is either no creature under the cursor or the player can't see it. // Use the closest/farthest target in this case if( direction == 1 ) { - set_cursor_pos( pc, targets.front()->pos() ); + set_cursor_pos( targets.front()->pos() ); } else { - set_cursor_pos( pc, targets.back()->pos() ); + set_cursor_pos( targets.back()->pos() ); } } -void target_ui::set_view_offset( player &pc, const tripoint &new_offset ) +void target_ui::set_view_offset( const tripoint &new_offset ) { int new_x = new_offset.x; int new_y = new_offset.y; int new_z = clamp( new_offset.z, -fov_3d_z_range, fov_3d_z_range ); new_z = clamp( new_z + src.z, -OVERMAP_DEPTH, OVERMAP_HEIGHT ) - src.z; - bool changed_z = pc.view_offset.z != new_z; - pc.view_offset = tripoint( new_x, new_y, new_z ); + bool changed_z = you->view_offset.z != new_z; + you->view_offset = tripoint( new_x, new_y, new_z ); if( changed_z ) { // We need to do a bunch of cache updates since we're // looking at a different z-level. g->m.invalidate_map_cache( new_z ); - g->refresh_all(); } } @@ -2574,7 +2538,7 @@ void target_ui::update_turrets_in_range() } } -void target_ui::recalc_aim_turning_penalty( player &pc ) +void target_ui::recalc_aim_turning_penalty() { if( status != Status::Good ) { // We don't care about invalid situations @@ -2582,13 +2546,13 @@ void target_ui::recalc_aim_turning_penalty( player &pc ) return; } - double curr_recoil = pc.recoil; + double curr_recoil = you->recoil; tripoint curr_recoil_pos; - const Creature *lt_ptr = pc.last_target.lock().get(); + const Creature *lt_ptr = you->last_target.lock().get(); if( lt_ptr ) { curr_recoil_pos = lt_ptr->pos(); - } else if( pc.last_target_pos ) { - curr_recoil_pos = g->m.getlocal( *pc.last_target_pos ); + } else if( you->last_target_pos ) { + curr_recoil_pos = g->m.getlocal( *you->last_target_pos ); } else { curr_recoil_pos = src; } @@ -2611,12 +2575,12 @@ void target_ui::recalc_aim_turning_penalty( player &pc ) } } -void target_ui::apply_aim_turning_penalty( player &pc ) +void target_ui::apply_aim_turning_penalty() { - pc.recoil = predicted_recoil; + you->recoil = predicted_recoil; } -void target_ui::action_switch_mode( player &pc ) +void target_ui::action_switch_mode() { relevant->gun_cycle_mode(); if( relevant->gun_current_mode().flags.count( "REACH_ATTACK" ) ) { @@ -2624,7 +2588,7 @@ void target_ui::action_switch_mode( player &pc ) } if( mode == TargetMode::TurretManual ) { itype_id ammo_current = turret->ammo_current(); - if( ammo_current == "null" ) { + if( ammo_current.is_null() ) { ammo = nullptr; range = 0; } else { @@ -2633,12 +2597,12 @@ void target_ui::action_switch_mode( player &pc ) } } else { ammo = relevant->gun_current_mode().target->ammo_data(); - range = relevant->gun_current_mode().target->gun_range( &pc ); + range = relevant->gun_current_mode().target->gun_range( you ); } - on_range_ammo_changed( pc ); + on_range_ammo_changed(); } -bool target_ui::action_switch_ammo( player &pc ) +bool target_ui::action_switch_ammo() { if( mode == TargetMode::TurretManual ) { // For turrets that use vehicle tanks & can fire multiple liquids @@ -2654,26 +2618,26 @@ bool target_ui::action_switch_ammo( player &pc ) // reloading annihilates our aim anyway return false; } - on_range_ammo_changed( pc ); + on_range_ammo_changed(); return true; } -bool target_ui::action_aim( player &pc ) +bool target_ui::action_aim() { - set_last_target( pc ); - apply_aim_turning_penalty( pc ); - const double min_recoil = calculate_aim_cap( pc, dst ); + set_last_target(); + apply_aim_turning_penalty(); + const double min_recoil = calculate_aim_cap( *you, dst ); for( int i = 0; i < 10; ++i ) { - do_aim( pc, *relevant, min_recoil ); + do_aim( *you, *relevant, min_recoil ); } // We've changed pc.recoil, update penalty - recalc_aim_turning_penalty( pc ); + recalc_aim_turning_penalty(); - return pc.moves > 0; + return you->moves > 0; } -bool target_ui::action_aim_and_shoot( player &pc, const std::string &action ) +bool target_ui::action_aim_and_shoot( const std::string &action ) { std::vector::iterator it; for( it = aim_types.begin(); it != aim_types.end(); it++ ) { @@ -2686,34 +2650,26 @@ bool target_ui::action_aim_and_shoot( player &pc, const std::string &action ) aim_mode = aim_types.begin(); } int aim_threshold = it->threshold; - set_last_target( pc ); - apply_aim_turning_penalty( pc ); - const double min_recoil = calculate_aim_cap( pc, dst ); + set_last_target(); + apply_aim_turning_penalty(); + const double min_recoil = calculate_aim_cap( *you, dst ); do { - do_aim( pc, relevant ? *relevant : null_item_reference(), min_recoil ); - } while( pc.moves > 0 && pc.recoil > aim_threshold && pc.recoil - sight_dispersion > min_recoil ); + do_aim( *you, relevant ? *relevant : null_item_reference(), min_recoil ); + } while( you->moves > 0 && you->recoil > aim_threshold && + you->recoil - sight_dispersion > min_recoil ); // If we made it under the aim threshold, go ahead and fire. // Also fire if we're at our best aim level already. // If no critter is at dst then sight dispersion does not apply, // so it would lock into an infinite loop. - bool done_aiming = pc.recoil <= aim_threshold || pc.recoil - sight_dispersion == min_recoil || - ( !g->critter_at( dst ) && pc.recoil == min_recoil ); + bool done_aiming = you->recoil <= aim_threshold || you->recoil - sight_dispersion == min_recoil || + ( !g->critter_at( dst ) && you->recoil == min_recoil ); return done_aiming; } -void target_ui::draw( player &pc ) +void target_ui::draw_terrain_overlay() { - draw_terrain( pc ); - g->draw_panels(); - draw_ui_window( pc ); - catacurses::refresh(); -} - -void target_ui::draw_terrain( player &pc ) -{ - tripoint center = pc.pos() + pc.view_offset; - g->draw_ter( center, true ); + tripoint center = you->pos() + you->view_offset; // Removes parts that don't belong to currently visible Z level const auto filter_this_z = [¢er]( const std::vector &traj ) { @@ -2772,14 +2728,20 @@ void target_ui::draw_terrain( player &pc ) if( tile.z != center.z ) { continue; } - g->m.drawsq( g->w_terrain, pc, tile, true, true, center ); +#ifdef TILES + if( use_tiles ) { + g->draw_highlight( tile ); + } else { +#endif + g->m.drawsq( g->w_terrain, *you, tile, true, true, center ); +#ifdef TILES + } +#endif } } - - wrefresh( g->w_terrain ); } -void target_ui::draw_ui_window( player &pc ) +void target_ui::draw_ui_window() { // Clear target window and make it non-transparent. int width = getmaxx( w_target ); @@ -2801,10 +2763,10 @@ void target_ui::draw_ui_window( player &pc ) if( mode == TargetMode::Fire || mode == TargetMode::TurretManual ) { panel_gun_info( text_y ); - panel_recoil( pc, text_y ); + panel_recoil( text_y ); text_y += compact ? 0 : 1; } else if( mode == TargetMode::Spell ) { - panel_spell_info( pc, text_y ); + panel_spell_info( text_y ); text_y += compact ? 0 : 1; } @@ -2817,10 +2779,10 @@ void target_ui::draw_ui_window( player &pc ) } else if( status == Status::Good ) { // TODO: these are old, consider refactoring if( mode == TargetMode::Fire ) { - panel_fire_mode_aim( pc, text_y ); + panel_fire_mode_aim( text_y ); } else if( mode == TargetMode::Throw || mode == TargetMode::ThrowBlind ) { bool blind = ( mode == TargetMode::ThrowBlind ); - draw_throw_aim( pc, w_target, text_y, ctxt, *relevant, dst, blind ); + draw_throw_aim( *you, w_target, text_y, ctxt, *relevant, dst, blind ); } } @@ -2828,7 +2790,7 @@ void target_ui::draw_ui_window( player &pc ) draw_controls_list( text_y ); } - wrefresh( w_target ); + wnoutrefresh( w_target ); } std::string target_ui::uitext_title() @@ -3035,7 +2997,7 @@ void target_ui::panel_gun_info( int &text_y ) } else if( ammo ) { str = string_format( m->ammo_remaining() ? _( "Ammo: %s (%d/%d)" ) : _( "Ammo: %s" ), colorize( ammo->nname( std::max( m->ammo_remaining(), 1 ) ), ammo->color ), m->ammo_remaining(), - m->ammo_capacity() ); + m->ammo_capacity( ammo->ammo->type ) ); print_colored_text( w_target, point( 1, text_y++ ), clr, clr, str ); } else { // Weapon doesn't use ammunition @@ -3043,10 +3005,10 @@ void target_ui::panel_gun_info( int &text_y ) } } -void target_ui::panel_recoil( player &pc, int &text_y ) +void target_ui::panel_recoil( int &text_y ) { - const int val = pc.recoil_total(); - const int min_recoil = pc.effective_dispersion( relevant->sight_dispersion() ); + const int val = you->recoil_total(); + const int min_recoil = you->effective_dispersion( relevant->sight_dispersion() ); const int recoil_range = MAX_RECOIL - min_recoil; std::string str; if( val >= min_recoil + ( recoil_range * 2 / 3 ) ) { @@ -3063,23 +3025,23 @@ void target_ui::panel_recoil( player &pc, int &text_y ) print_colored_text( w_target, point( 1, text_y++ ), clr, clr, str ); } -void target_ui::panel_spell_info( player &pc, int &text_y ) +void target_ui::panel_spell_info( int &text_y ) { nc_color clr = c_light_gray; mvwprintz( w_target, point( 1, text_y++ ), c_light_green, _( "Casting: %s (Level %u)" ), casting->name(), casting->get_level() ); - if( !no_mana || casting->energy_source() == none_energy ) { - if( casting->energy_source() == hp_energy ) { + if( !no_mana || casting->energy_source() == magic_energy_type::none ) { + if( casting->energy_source() == magic_energy_type::hp ) { text_y += fold_and_print( w_target, point( 1, text_y ), getmaxx( w_target ) - 2, clr, - _( "Cost: %s %s" ), casting->energy_cost_string( pc ), casting->energy_string() ); + _( "Cost: %s %s" ), casting->energy_cost_string( *you ), casting->energy_string() ); } else { text_y += fold_and_print( w_target, point( 1, text_y ), getmaxx( w_target ) - 2, clr, - _( "Cost: %s %s (Current: %s)" ), casting->energy_cost_string( pc ), casting->energy_string(), - casting->energy_cur_string( pc ) ); + _( "Cost: %s %s (Current: %s)" ), casting->energy_cost_string( *you ), casting->energy_string(), + casting->energy_cur_string( *you ) ); } } @@ -3087,7 +3049,7 @@ void target_ui::panel_spell_info( player &pc, int &text_y ) if( no_fail ) { fail_str = colorize( _( "0.0 % Failure Chance" ), c_light_green ); } else { - fail_str = casting->colorized_fail_percent( pc ); + fail_str = casting->colorized_fail_percent( *you ); } print_colored_text( w_target, point( 1, text_y++ ), clr, clr, fail_str ); @@ -3136,17 +3098,17 @@ void target_ui::panel_target_info( int &text_y, bool fill_with_blank_if_no_targe } } -void target_ui::panel_fire_mode_aim( player &pc, int &text_y ) +void target_ui::panel_fire_mode_aim( int &text_y ) { // TODO: saving & restoring pc.recoil may actually be unnecessary - double saved_pc_recoil = pc.recoil; - pc.recoil = predicted_recoil; + double saved_pc_recoil = you->recoil; + you->recoil = predicted_recoil; - double predicted_recoil = pc.recoil; + double predicted_recoil = you->recoil; int predicted_delay = 0; - if( aim_mode->has_threshold && aim_mode->threshold < pc.recoil ) { + if( aim_mode->has_threshold && aim_mode->threshold < you->recoil ) { do { - const double aim_amount = pc.aim_per_move( *relevant, predicted_recoil ); + const double aim_amount = you->aim_per_move( *relevant, predicted_recoil ); if( aim_amount > 0 ) { predicted_delay++; predicted_recoil = std::max( predicted_recoil - aim_amount, 0.0 ); @@ -3154,13 +3116,13 @@ void target_ui::panel_fire_mode_aim( player &pc, int &text_y ) } while( predicted_recoil > aim_mode->threshold && predicted_recoil - sight_dispersion > 0 ); } else { - predicted_recoil = pc.recoil; + predicted_recoil = you->recoil; } const double target_size = dst_critter ? dst_critter->ranged_target_size() : - occupied_tile_fraction( MS_MEDIUM ); + occupied_tile_fraction( creature_size::medium ); - text_y = print_aim( pc, w_target, text_y, ctxt, &*relevant->gun_current_mode(), + text_y = print_aim( *you, w_target, text_y, ctxt, &*relevant->gun_current_mode(), target_size, dst, predicted_recoil ); if( aim_mode->has_threshold ) { @@ -3168,7 +3130,7 @@ void target_ui::panel_fire_mode_aim( player &pc, int &text_y ) predicted_delay ); } - pc.recoil = saved_pc_recoil; + you->recoil = saved_pc_recoil; } void target_ui::panel_turret_list( int &text_y ) @@ -3183,10 +3145,10 @@ void target_ui::panel_turret_list( int &text_y ) } } -void target_ui::on_target_accepted( player &pc, bool harmful ) +void target_ui::on_target_accepted( bool harmful ) { // TODO: all of this should be moved into on-hit code - const auto lt_ptr = pc.last_target.lock(); + const auto lt_ptr = you->last_target.lock(); if( npc *const guy = dynamic_cast( lt_ptr.get() ) ) { if( harmful ) { if( !guy->guaranteed_hostile() ) { diff --git a/src/ranged.h b/src/ranged.h index eae11bfc44485..31eff63b328de 100644 --- a/src/ranged.h +++ b/src/ranged.h @@ -3,70 +3,17 @@ #include -#include "memory_fast.h" #include "type_id.h" -#include "units.h" -class JsonIn; -class JsonOut; +class aim_activity_actor; +class avatar; class item; -class player; class spell; class turret_data; class vehicle; struct itype; struct tripoint; struct vehicle_part; -template struct enum_traits; - -/** - * Specifies weapon source for aiming across turns and - * (de-)serialization of targeting_data - */ -enum weapon_source_enum { - /** Invalid weapon source */ - WEAPON_SOURCE_INVALID, - /** Firing wielded weapon */ - WEAPON_SOURCE_WIELDED, - /** Firing fake gun provided by a bionic */ - WEAPON_SOURCE_BIONIC, - /** Firing fake gun provided by a mutation */ - WEAPON_SOURCE_MUTATION, - NUM_WEAPON_SOURCES -}; - -template <> -struct enum_traits { - static constexpr weapon_source_enum last = NUM_WEAPON_SOURCES; -}; - -/** Stores data for aiming the player's weapon across turns */ -struct targeting_data { - weapon_source_enum weapon_source; - - /** Cached fake weapon provided by bionic/mutation */ - shared_ptr_fast cached_fake_weapon; - - /** Bionic power cost per shot */ - units::energy bp_cost_per_shot; - - bool is_valid() const; - - /** Use wielded gun */ - static targeting_data use_wielded(); - - /** Use fake gun provided by a bionic */ - static targeting_data use_bionic( const item &fake_gun, const units::energy &cost_per_shot ); - - /** Use fake gun provided by a mutation */ - static targeting_data use_mutation( const item &fake_gun ); - - // Since only avatar uses targeting_data, - // (de-)serialization is implemented in savegame_json.cpp - // near avatar (de-)serialization - void serialize( JsonOut &json ) const; - void deserialize( JsonIn &jsin ); -}; namespace target_handler { @@ -75,25 +22,24 @@ using trajectory = std::vector; /** * Firing ranged weapon. This mode allows spending moves on aiming. - * 'reload_requested' is set to 'true' if user aborted aiming to reload the gun/change ammo */ -trajectory mode_fire( player &pc, item &weapon, bool &reload_requested ); +trajectory mode_fire( avatar &you, aim_activity_actor &activity ); /** Throwing item */ -trajectory mode_throw( player &pc, item &relevant, bool blind_throwing ); +trajectory mode_throw( avatar &you, item &relevant, bool blind_throwing ); /** Reach attacking */ -trajectory mode_reach( player &pc, item &weapon ); +trajectory mode_reach( avatar &you, item &weapon ); /** Manually firing vehicle turret */ -trajectory mode_turret_manual( player &pc, turret_data &turret ); +trajectory mode_turret_manual( avatar &you, turret_data &turret ); /** Selecting target for turrets (when using vehicle controls) */ -trajectory mode_turrets( player &pc, vehicle &veh, const std::vector &turrets ); +trajectory mode_turrets( avatar &you, vehicle &veh, const std::vector &turrets ); /** Casting a spell */ -trajectory mode_spell( player &pc, spell &casting, bool no_fail, bool no_mana ); -trajectory mode_spell( player &pc, spell_id sp, bool no_fail, bool no_mana ); +trajectory mode_spell( avatar &you, spell &casting, bool no_fail, bool no_mana ); +trajectory mode_spell( avatar &you, const spell_id &sp, bool no_fail, bool no_mana ); } // namespace target_handler int range_with_even_chance_of_good_hit( int dispersion ); diff --git a/src/recipe.cpp b/src/recipe.cpp index 8b6ae47100308..14a33433bcbff 100644 --- a/src/recipe.cpp +++ b/src/recipe.cpp @@ -29,6 +29,8 @@ #include "units.h" #include "value_ptr.h" +static const itype_id itype_hotplate( "hotplate" ); + extern bool test_mode; recipe::recipe() : skill_used( skill_id::NULL_ID() ) {} @@ -96,8 +98,8 @@ void recipe::load( const JsonObject &jo, const std::string &src ) if( abstract ) { ident_ = recipe_id( jo.get_string( "abstract" ) ); } else { - result_ = jo.get_string( "result" ); - ident_ = recipe_id( result_ ); + jo.read( "result", result_, true ); + ident_ = recipe_id( result_.str() ); } if( jo.has_bool( "obsolete" ) ) { @@ -183,7 +185,8 @@ void recipe::load( const JsonObject &jo, const std::string &src ) if( jo.has_member( "book_learn" ) ) { booksets.clear(); for( JsonArray arr : jo.get_array( "book_learn" ) ) { - booksets.emplace( arr.get_string( 0 ), arr.size() > 1 ? arr.get_int( 1 ) : -1 ); + booksets.emplace( itype_id( arr.get_string( 0 ) ), + arr.size() > 1 ? arr.get_int( 1 ) : -1 ); } } @@ -233,7 +236,8 @@ void recipe::load( const JsonObject &jo, const std::string &src ) } byproducts.clear(); for( JsonArray arr : jo.get_array( "byproducts" ) ) { - byproducts[ arr.get_string( 0 ) ] += arr.size() == 2 ? arr.get_int( 1 ) : 1; + itype_id byproduct( arr.get_string( 0 ) ); + byproducts[ byproduct ] += arr.size() == 2 ? arr.get_int( 1 ) : 1; } } assign( jo, "construction_blueprint", blueprint ); @@ -248,13 +252,13 @@ void recipe::load( const JsonObject &jo, const std::string &src ) provide.get_int( "amount", 1 ) ) ); } // all blueprints provide themselves with needing it written in JSON - bp_provides.emplace_back( std::make_pair( result_, 1 ) ); + bp_provides.emplace_back( std::make_pair( result_.str(), 1 ) ); for( JsonObject require : jo.get_array( "blueprint_requires" ) ) { bp_requires.emplace_back( std::make_pair( require.get_string( "id" ), require.get_int( "amount", 1 ) ) ); } // all blueprints exclude themselves with needing it written in JSON - bp_excludes.emplace_back( std::make_pair( result_, 1 ) ); + bp_excludes.emplace_back( std::make_pair( result_.str(), 1 ) ); for( JsonObject exclude : jo.get_array( "blueprint_excludes" ) ) { bp_excludes.emplace_back( std::make_pair( exclude.get_string( "id" ), exclude.get_int( "amount", 1 ) ) ); @@ -326,7 +330,7 @@ void recipe::finalize() deduped_requirements_ = deduped_requirement_data( requirements_, ident() ); - if( contained && container == "null" ) { + if( contained && container.is_null() ) { container = item::find_type( result_ )->default_container.value_or( "null" ); } @@ -371,7 +375,7 @@ std::string recipe::get_consistency_error() const return "defines invalid byproducts"; } - if( !contained && container != "null" ) { + if( !contained && !container.is_null() ) { return "defines container but not contained"; } @@ -414,7 +418,11 @@ item recipe::create_result() const } if( contained ) { - newit = newit.in_container( container ); + if( newit.count_by_charges() ) { + newit = newit.in_container( container, newit.charges ); + } else { + newit = newit.in_container( container ); + } } return newit; @@ -619,7 +627,11 @@ std::function recipe::get_component_filter( std::function magazine_filter = return_true; if( has_flag( "FULL_MAGAZINE" ) ) { magazine_filter = []( const item & component ) { - return !component.is_magazine() || ( component.ammo_remaining() >= component.ammo_capacity() ); + if( component.ammo_remaining() == 0 ) { + return false; + } + return !component.is_magazine() || + ( component.ammo_remaining() >= component.ammo_capacity( component.ammo_data()->ammo->type ) ); }; } @@ -744,7 +756,7 @@ bool recipe::hot_result() const const requirement_data::alter_tool_comp_vector &tool_lists = simple_requirements().get_tools(); for( const std::vector &tools : tool_lists ) { for( const tool_comp &t : tools ) { - if( t.type == "hotplate" ) { + if( t.type == itype_hotplate ) { return true; } } diff --git a/src/recipe.h b/src/recipe.h index 58a219420a475..65e81e55cf408 100644 --- a/src/recipe.h +++ b/src/recipe.h @@ -18,8 +18,6 @@ class JsonObject; class item; class time_duration; - -using itype_id = std::string; // From itype.h class Character; enum class recipe_filter_flags : int { @@ -38,13 +36,13 @@ class recipe friend class recipe_dictionary; private: - itype_id result_ = "null"; + itype_id result_ = itype_id::NULL_ID(); public: recipe(); operator bool() const { - return result_ != "null"; + return !result_.is_null(); } const itype_id &result() const { @@ -130,7 +128,6 @@ class recipe // This is used by the basecamp bulletin board. std::string required_all_skills_string() const; - // Create a string to describe the time savings of batch-crafting, if any. // Format: "N% at >M units" or "none" std::string batch_savings_string() const; @@ -197,7 +194,7 @@ class recipe bool reversible = false; /** What does the item spawn contained in? Unset ("null") means default container. */ - itype_id container = "null"; + itype_id container = itype_id::NULL_ID(); /** External requirements (via "using" syntax) where second field is multiplier */ std::vector> reqs_external; diff --git a/src/recipe_dictionary.cpp b/src/recipe_dictionary.cpp index c871bacc07f77..79fc04a551292 100644 --- a/src/recipe_dictionary.cpp +++ b/src/recipe_dictionary.cpp @@ -71,7 +71,7 @@ bool string_id::is_valid() const const recipe &recipe_dictionary::get_uncraft( const itype_id &id ) { - auto iter = recipe_dict.uncraft.find( recipe_id( id ) ); + auto iter = recipe_dict.uncraft.find( recipe_id( id.str() ) ); return iter != recipe_dict.uncraft.end() ? iter->second : null_recipe; } @@ -390,9 +390,9 @@ void recipe_dictionary::find_items_on_loops() std::vector> loops = cata::find_cycles( potential_components_of ); for( const std::vector &loop : loops ) { std::string error_message = - "loop in comestible recipes detected: " + loop.back(); + "loop in comestible recipes detected: " + loop.back().str(); for( const itype_id &i : loop ) { - error_message += " -> " + i; + error_message += " -> " + i.str(); items_on_loops.insert( i ); } error_message += ". Such loops can be broken by either removing or altering " @@ -429,15 +429,15 @@ void recipe_dictionary::finalize() } // if reversible and no specific uncraft recipe exists use this recipe - if( r.is_reversible() && !recipe_dict.uncraft.count( recipe_id( r.result() ) ) ) { - recipe_dict.uncraft[ recipe_id( r.result() ) ] = r; + if( r.is_reversible() && !recipe_dict.uncraft.count( recipe_id( r.result().str() ) ) ) { + recipe_dict.uncraft[ recipe_id( r.result().str() ) ] = r; } } // add pseudo uncrafting recipes for( const itype *e : item_controller->all() ) { const itype_id id = e->get_id(); - const recipe_id rid = recipe_id( id ); + const recipe_id rid = recipe_id( id.str() ); // books that don't already have an uncrafting recipe if( e->book && !recipe_dict.uncraft.count( rid ) && e->volume > 0_ml ) { diff --git a/src/recipe_dictionary.h b/src/recipe_dictionary.h index a9667404e0c61..27b87ba772dc0 100644 --- a/src/recipe_dictionary.h +++ b/src/recipe_dictionary.h @@ -18,8 +18,6 @@ class JsonIn; class JsonOut; class JsonObject; -using itype_id = std::string; - class recipe_dictionary { friend class Item_factory; // allow removal of blacklisted recipes @@ -126,7 +124,7 @@ class recipe_subset /** Returns all recipes which could use component */ const std::set &of_component( const itype_id &id ) const; - enum class search_type { + enum class search_type : int { name, skill, primary_skill, diff --git a/src/relic.h b/src/relic.h index fda75a1c19f3e..64ae0e5362acf 100644 --- a/src/relic.h +++ b/src/relic.h @@ -24,9 +24,9 @@ class relic // the item's name will be replaced with this if the string is not empty translation item_name_override; - int charges_per_activation; + int charges_per_activation = 0; // activating an artifact overrides all spell casting costs - int moves; + int moves = 0; public: std::string name() const; // returns number of charges that should be consumed diff --git a/src/requirements.cpp b/src/requirements.cpp index 9de5599c6347c..ba2881792e15c 100644 --- a/src/requirements.cpp +++ b/src/requirements.cpp @@ -31,6 +31,18 @@ #include "translations.h" #include "visitable.h" +static const itype_id itype_char_forge( "char_forge" ); +static const itype_id itype_crucible( "crucible" ); +static const itype_id itype_fire( "fire" ); +static const itype_id itype_forge( "forge" ); +static const itype_id itype_mold_plastic( "mold_plastic" ); +static const itype_id itype_oxy_torch( "oxy_torch" ); +static const itype_id itype_press( "press" ); +static const itype_id itype_sewing_kit( "sewing_kit" ); +static const itype_id itype_UPS( "UPS" ); +static const itype_id itype_welder( "welder" ); +static const itype_id itype_welder_crude( "welder_crude" ); + static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); static std::map requirements_all; @@ -188,11 +200,11 @@ void tool_comp::load( const JsonValue &value ) { if( value.test_string() ) { // constructions uses this format: [ "tool", ... ] - type = value.get_string(); + value.read( type, true ); count = -1; } else { JsonArray comp = value.get_array(); - type = comp.get_string( 0 ); + comp.read( 0, type, true ); count = comp.get_int( 1 ); requirement = comp.size() > 2 && comp.get_string( 2 ) == "LIST"; } @@ -216,7 +228,7 @@ void tool_comp::dump( JsonOut &jsout ) const void item_comp::load( const JsonValue &value ) { JsonArray comp = value.get_array(); - type = comp.get_string( 0 ); + comp.read( 0, type, true ); count = comp.get_int( 1 ); size_t handled = 2; while( comp.size() > handled ) { @@ -457,7 +469,7 @@ template void inline_requirements( std::vector< std::vector > &list, Getter getter ) { std::set already_nested; - for( auto &vec : list ) { + for( std::vector &vec : list ) { // We always need to restart from the beginning in case of vector relocation while( true ) { auto iter = std::find_if( vec.begin(), vec.end(), []( const T & req ) { @@ -467,7 +479,7 @@ void inline_requirements( std::vector< std::vector > &list, Getter getter ) break; } - const auto req_id = requirement_id( iter->type ); + const auto req_id = requirement_id( iter->type.str() ); if( !req_id.is_valid() ) { debugmsg( "Tried to inline unknown requirement %s", req_id.c_str() ); return; @@ -523,7 +535,7 @@ void requirement_data::reset() std::vector requirement_data::get_folded_components_list( int width, nc_color col, const inventory &crafting_inv, const std::function &filter, int batch, - std::string hilite, requirement_display_flags flags ) const + const std::string &hilite, requirement_display_flags flags ) const { std::vector out_buffer; if( components.empty() ) { @@ -560,7 +572,7 @@ std::vector requirement_data::get_folded_list( int width, const std::string color_tag = get_tag_from_color( color ); int qty = 0; if( component.get_component_type() == component_type::ITEM ) { - const itype_id item_id = static_cast( component.type ); + const itype_id item_id = itype_id( component.type.str() ); if( item::count_by_charges( item_id ) ) { qty = crafting_inv.charges_of( item_id, INT_MAX, filter ); } else { @@ -675,7 +687,7 @@ bool requirement_data::has_comps( const inventory &crafting_inv, } if( total_UPS_charges_used > 0 && - total_UPS_charges_used > crafting_inv.charges_of( "UPS" ) ) { + total_UPS_charges_used > crafting_inv.charges_of( itype_UPS ) ) { return false; } return retval; @@ -683,7 +695,7 @@ bool requirement_data::has_comps( const inventory &crafting_inv, bool quality_requirement::has( const inventory &crafting_inv, const std::function &, int, - craft_flags, std::function ) const + craft_flags, const std::function & ) const { if( g->u.has_trait( trait_DEBUG_HS ) ) { return true; @@ -702,7 +714,7 @@ nc_color quality_requirement::get_color( bool has_one, const inventory &, bool tool_comp::has( const inventory &crafting_inv, const std::function &filter, int batch, - craft_flags flags, std::function visitor ) const + craft_flags flags, const std::function &visitor ) const { if( g->u.has_trait( trait_DEBUG_HS ) ) { return true; @@ -734,7 +746,7 @@ nc_color tool_comp::get_color( bool has_one, const inventory &crafting_inv, bool item_comp::has( const inventory &crafting_inv, const std::function &filter, int batch, - craft_flags, std::function ) const + craft_flags, const std::function & ) const { if( g->u.has_trait( trait_DEBUG_HS ) ) { return true; @@ -838,7 +850,7 @@ bool requirement_data::check_enough_materials( const item_comp &comp, const inve } template -static bool apply_blacklist( std::vector> &vec, const std::string &id ) +static bool apply_blacklist( std::vector> &vec, const itype_id &id ) { // remove all instances of @id type from each of the options for( auto &opts : vec ) { @@ -860,15 +872,15 @@ static bool apply_blacklist( std::vector> &vec, const std::string return blacklisted; } -void requirement_data::blacklist_item( const std::string &id ) +void requirement_data::blacklist_item( const itype_id &id ) { blacklisted |= apply_blacklist( tools, id ); blacklisted |= apply_blacklist( components, id ); } template -static void apply_replacement( std::vector> &vec, const std::string &id, - const std::string &replacement ) +static void apply_replacement( std::vector> &vec, const itype_id &id, + const itype_id &replacement ) { // If the target and replacement are both present, remove the target. // If only the target is present, replace it. @@ -938,32 +950,32 @@ requirement_data requirement_data::disassembly_requirements() const const itype_id &type = tool.type; // If crafting required a welder or forge then disassembly requires metal sawing - if( type == "welder" || type == "welder_crude" || type == "oxy_torch" || - type == "forge" || type == "char_forge" ) { + if( type == itype_welder || type == itype_welder_crude || type == itype_oxy_torch || + type == itype_forge || type == itype_char_forge ) { new_qualities.emplace_back( quality_id( "SAW_M_FINE" ), 1, 1 ); replaced = true; break; } //This only catches instances where the two tools are explicitly stated, and not just the required sewing quality - if( type == "sewing_kit" || - type == "mold_plastic" ) { + if( type == itype_sewing_kit || + type == itype_mold_plastic ) { new_qualities.emplace_back( quality_id( "CUT" ), 1, 1 ); replaced = true; break; } - if( type == "crucible" ) { + if( type == itype_crucible ) { replaced = true; break; } //This ensures that you don't need a hand press to break down reloaded ammo. - if( type == "press" ) { + if( type == itype_press ) { replaced = true; remove_fire = true; new_qualities.emplace_back( quality_id( "PULL" ), 1, 1 ); break; } - if( type == "fire" && remove_fire ) { + if( type == itype_fire && remove_fire ) { replaced = true; break; } diff --git a/src/requirements.h b/src/requirements.h index 4b9dc34d57be8..3b885de80d5be 100644 --- a/src/requirements.h +++ b/src/requirements.h @@ -25,9 +25,6 @@ class item; class nc_color; class player; -// Denotes the id of an item type -using itype_id = std::string; - enum class available_status : int { a_true = +1, // yes, it's available a_false = -1, // no, it's not available @@ -54,7 +51,7 @@ struct quality { }; struct component { - itype_id type = "null"; + itype_id type = itype_id::NULL_ID(); int count = 0; // -1 means the player doesn't have the item, 1 means they do, // 0 means they have item but not enough for both tool and component @@ -93,7 +90,7 @@ struct tool_comp : public component { void dump( JsonOut &jsout ) const; bool has( const inventory &crafting_inv, const std::function &filter, int batch = 1, craft_flags = craft_flags::none, - std::function visitor = std::function() ) const; + const std::function &visitor = std::function() ) const; std::string to_string( int batch = 1, int avail = 0 ) const; nc_color get_color( bool has_one, const inventory &crafting_inv, const std::function &filter, int batch = 1 ) const; @@ -111,7 +108,7 @@ struct item_comp : public component { void dump( JsonOut &jsout ) const; bool has( const inventory &crafting_inv, const std::function &filter, int batch = 1, craft_flags = craft_flags::none, - std::function visitor = std::function() ) const; + const std::function &visitor = std::function() ) const; std::string to_string( int batch = 1, int avail = 0 ) const; nc_color get_color( bool has_one, const inventory &crafting_inv, const std::function &filter, int batch = 1 ) const; @@ -150,7 +147,7 @@ struct quality_requirement { void dump( JsonOut &jsout ) const; bool has( const inventory &crafting_inv, const std::function &filter, int = 0, craft_flags = craft_flags::none, - std::function visitor = std::function() ) const; + const std::function &visitor = std::function() ) const; std::string to_string( int batch = 1, int avail = 0 ) const; void check_consistency( const std::string &display_name ) const; nc_color get_color( bool has_one, const inventory &crafting_inv, @@ -160,7 +157,7 @@ struct quality_requirement { } }; -enum class requirement_display_flags { +enum class requirement_display_flags : int { none = 0, no_unavailable = 1, }; @@ -320,7 +317,7 @@ struct requirement_data { /** @param filter see @ref can_make_with_inventory */ std::vector get_folded_components_list( int width, nc_color col, const inventory &crafting_inv, const std::function &filter, - int batch = 1, std::string hilite = "", + int batch = 1, const std::string &hilite = "", requirement_display_flags = requirement_display_flags::none ) const; std::vector get_folded_tools_list( int width, nc_color col, diff --git a/src/safemode_ui.cpp b/src/safemode_ui.cpp index 27ab655a95759..732dbbb498015 100644 --- a/src/safemode_ui.cpp +++ b/src/safemode_ui.cpp @@ -132,7 +132,7 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) mvwputch( w_border, point( column.second + 1, FULL_SCREEN_HEIGHT - 1 ), c_light_gray, LINE_XXOX ); } - wrefresh( w_border ); + wnoutrefresh( w_border ); static const std::vector hotkeys = {{ translate_marker( "dd" ), translate_marker( "emove" ), @@ -186,7 +186,7 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) locx += shortcut_print( w_header, point( locx, 1 ), c_white, c_light_green, _( "witch" ) ); shortcut_print( w_header, point( locx, 1 ), c_white, c_light_green, " " ); - wrefresh( w_header ); + wnoutrefresh( w_header ); // Clear the lines for( int i = 0; i < content_height; i++ ) { @@ -211,7 +211,7 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) } draw_scrollbar( w_border, line, content_height, current_tab.size(), point( 0, 5 ) ); - wrefresh( w_border ); + wnoutrefresh( w_border ); calcStartPos( start_pos, line, content_height, current_tab.size() ); @@ -245,7 +245,7 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) } } - wrefresh( w ); + wnoutrefresh( w ); } ); while( true ) { @@ -370,7 +370,7 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) break; } draw_border( w_help ); - wrefresh( w_help ); + wnoutrefresh( w_help ); } ); current_tab[line].rule = wildcard_trim_rule( string_input_popup() @@ -544,7 +544,7 @@ void safemode::test_pattern( const int tab_in, const int row_in ) center_print( w_test_rule_border, content_height + 1, red_background( c_white ), _( "Lists monsters regardless of their attitude." ) ); - wrefresh( w_test_rule_border ); + wnoutrefresh( w_test_rule_border ); // Clear the lines for( int i = 0; i < content_height; i++ ) { @@ -571,7 +571,7 @@ void safemode::test_pattern( const int tab_in, const int row_in ) } } - wrefresh( w_test_rule_content ); + wnoutrefresh( w_test_rule_content ); } ); while( true ) { diff --git a/src/savegame.cpp b/src/savegame.cpp index 7d8379d11c98d..4f97c04ba4333 100644 --- a/src/savegame.cpp +++ b/src/savegame.cpp @@ -53,7 +53,7 @@ extern std::map> quick_shortcuts_map; * Changes that break backwards compatibility should bump this number, so the game can * load a legacy format loader. */ -const int savegame_version = 28; +const int savegame_version = 29; /* * This is a global set by detected version header in .sav, maps.txt, or overmap. @@ -286,7 +286,7 @@ void game::load_shortcuts( std::istream &fin ) for( const JsonMember &member : data.get_object( "quick_shortcuts" ) ) { std::list &qslist = quick_shortcuts_map[member.name()]; for( const int i : member.get_array() ) { - qslist.push_back( input_event( i, CATA_INPUT_KEYBOARD ) ); + qslist.push_back( input_event( i, input_event_t::keyboard ) ); } } } diff --git a/src/savegame_json.cpp b/src/savegame_json.cpp index 265a8db106aa7..ffab1d239fcd8 100644 --- a/src/savegame_json.cpp +++ b/src/savegame_json.cpp @@ -90,7 +90,6 @@ #include "player_activity.h" #include "point.h" #include "profession.h" -#include "ranged.h" #include "recipe.h" #include "recipe_dictionary.h" #include "requirements.h" @@ -114,11 +113,25 @@ struct mutation_branch; struct oter_type_t; -static const activity_id ACT_AIM( "ACT_AIM" ); - static const efftype_id effect_riding( "riding" ); -static const std::array obj_type_name = { { "OBJECT_NONE", "OBJECT_ITEM", "OBJECT_ACTOR", "OBJECT_PLAYER", +static const itype_id itype_battery( "battery" ); +static const itype_id itype_rad_badge( "rad_badge" ); +static const itype_id itype_radio( "radio" ); +static const itype_id itype_radio_on( "radio_on" ); +static const itype_id itype_usb_drive( "usb_drive" ); + +static const ter_str_id ter_t_ash( "t_ash" ); +static const ter_str_id ter_t_rubble( "t_rubble" ); +static const ter_str_id ter_t_pwr_sb_support_l( "t_pwr_sb_support_l" ); +static const ter_str_id ter_t_pwr_sb_switchgear_l( "t_pwr_sb_switchgear_l" ); +static const ter_str_id ter_t_pwr_sb_switchgear_s( "t_pwr_sb_switchgear_s" ); +static const ter_str_id ter_t_wreckage( "t_wreckage" ); + +static const trap_str_id tr_brazier( "tr_brazier" ); + +static const std::array( object_type::NUM_OBJECT_TYPES )> +obj_type_name = { { "OBJECT_NONE", "OBJECT_ITEM", "OBJECT_ACTOR", "OBJECT_PLAYER", "OBJECT_NPC", "OBJECT_MONSTER", "OBJECT_VEHICLE", "OBJECT_TRAP", "OBJECT_FIELD", "OBJECT_TERRAIN", "OBJECT_FURNITURE" } @@ -188,6 +201,7 @@ void item_pocket::serialize( JsonOut &json ) const json.start_object(); json.member( "pocket_type", data->type ); json.member( "contents", contents ); + json.member( "_sealed", _sealed ); json.end_object(); } } @@ -199,6 +213,8 @@ void item_pocket::deserialize( JsonIn &jsin ) int saved_type_int; data.read( "pocket_type", saved_type_int ); _saved_type = static_cast( saved_type_int ); + data.read( "_sealed", _sealed ); + _saved_sealed = _sealed; } void pocket_data::deserialize( JsonIn &jsin ) @@ -437,6 +453,10 @@ void Character::load( const JsonObject &data ) data.read( "base_age", init_age ); data.read( "base_height", init_height ); + if( !data.read( "blood_type", my_blood_type ) || + !data.read( "blood_rh_factor", blood_rh_factor ) ) { + randomize_blood(); + }; data.read( "custom_profession", custom_profession ); @@ -603,7 +623,7 @@ void Character::load( const JsonObject &data ) stashed_outbounds_backlog.migrate_item_position( *this ); } - weapon = item( "null", 0 ); + weapon = item(); data.read( "weapon", weapon ); data.read( "move_mode", move_mode ); @@ -621,9 +641,15 @@ void Character::load( const JsonObject &data ) morale->load( data ); _skills->clear(); - for( const JsonMember member : data.get_object( "skills" ) ) { + JsonObject skill_data = data.get_object( "skills" ); + for( const JsonMember member : skill_data ) { member.read( ( *_skills )[skill_id( member.name() )] ); } + if( savegame_loading_version <= 28 ) { + if( !skill_data.has_member( "chemistry" ) && skill_data.has_member( "cooking" ) ) { + skill_data.get_member( "cooking" ).read( ( *_skills )[skill_id( "chemistry" )] ); + } + } on_stat_change( "thirst", thirst ); on_stat_change( "hunger", hunger ); @@ -699,6 +725,8 @@ void Character::store( JsonOut &json ) const json.member( "base_age", init_age ); json.member( "base_height", init_height ); + json.member_as_string( "blood_type", my_blood_type ); + json.member( "blood_rh_factor", blood_rh_factor ); json.member( "custom_profession", custom_profession ); @@ -1016,11 +1044,6 @@ void avatar::store( JsonOut &json ) const json.member( "int_upgrade", std::abs( int_upgrade ) ); json.member( "per_upgrade", std::abs( per_upgrade ) ); - // targeting - if( activity.id() == ACT_AIM ) { - json.member( "targeting_data", *tdata ); - } - // npc: unimplemented, potentially useful json.member( "learned_recipes", *learned_recipes ); @@ -1040,7 +1063,7 @@ void avatar::store( JsonOut &json ) const json.member( "assigned_invlet" ); json.start_array(); - for( auto iter : inv.assigned_invlet ) { + for( const auto &iter : inv.assigned_invlet ) { json.start_array(); json.write( iter.first ); json.write( iter.second ); @@ -1079,7 +1102,7 @@ void avatar::load( const JsonObject &data ) } const auto iter = std::find( obj_type_name.begin(), obj_type_name.end(), grab_typestr ); grab( iter == obj_type_name.end() ? - OBJECT_NONE : static_cast( std::distance( obj_type_name.begin(), iter ) ), + object_type::NONE : static_cast( std::distance( obj_type_name.begin(), iter ) ), grab_point ); data.read( "focus_pool", focus_pool ); @@ -1090,13 +1113,6 @@ void avatar::load( const JsonObject &data ) data.read( "int_upgrade", int_upgrade ); data.read( "per_upgrade", per_upgrade ); - // targeting - targeting_data tdata = targeting_data(); - data.read( "targeting_data", tdata ); - if( tdata.is_valid() ) { - set_targeting_data( tdata ); - } - // this is so we don't need to call get_option in a draw function if( !get_option( "STATS_THROUGH_KILLS" ) ) { str_upgrade = -str_upgrade; @@ -1197,7 +1213,8 @@ void avatar::load( const JsonObject &data ) data.read( "show_map_memory", show_map_memory ); for( JsonArray pair : data.get_array( "assigned_invlet" ) ) { - inv.assigned_invlet[static_cast( pair.get_int( 0 ) )] = pair.get_string( 1 ); + inv.assigned_invlet[static_cast( pair.get_int( 0 ) )] = + itype_id( pair.get_string( 1 ) ); } if( data.has_member( "invcache" ) ) { @@ -1206,32 +1223,6 @@ void avatar::load( const JsonObject &data ) } } -//////////////////////////////////////////////////////////////////////////////////////////////////// -///// ranged.h - -void targeting_data::serialize( JsonOut &json ) const -{ - json.start_object(); - json.member( "weapon_source", io::enum_to_string( weapon_source ) ); - if( cached_fake_weapon ) { - json.member( "cached_fake_weapon", *cached_fake_weapon ); - } - json.member( "bp_cost", bp_cost_per_shot ); - json.end_object(); -} - -void targeting_data::deserialize( JsonIn &jsin ) -{ - JsonObject data = jsin.get_object(); - data.read( "weapon_source", weapon_source ); - if( weapon_source == WEAPON_SOURCE_BIONIC || weapon_source == WEAPON_SOURCE_MUTATION ) { - cached_fake_weapon = shared_ptr_fast( new item() ); - data.read( "cached_fake_weapon", *cached_fake_weapon ); - } - - data.read( "bp_cost", bp_cost_per_shot ); -} - //////////////////////////////////////////////////////////////////////////////////////////////////// ///// npc.h @@ -1686,7 +1677,7 @@ void npc::load( const JsonObject &data ) data.read( "misc_rules", rules ); data.read( "combat_rules", rules ); } - real_weapon = item( "null", 0 ); + real_weapon = item(); data.read( "real_weapon", real_weapon ); cbm_weapon_index = -1; data.read( "cbm_weapon_index", cbm_weapon_index ); @@ -1787,7 +1778,7 @@ void inventory::json_save_invcache( JsonOut &json ) const json.start_array(); for( const auto &elem : invlet_cache.get_invlets_by_id() ) { json.start_object(); - json.member( elem.first ); + json.member( elem.first.str() ); json.start_array(); for( const auto &_sym : elem.second ) { json.write( static_cast( _sym ) ); @@ -1811,7 +1802,7 @@ void inventory::json_load_invcache( JsonIn &jsin ) for( const int i : member.get_array() ) { invlets.push_back( i ); } - map[member.name()] = invlets; + map[itype_id( member.name() )] = invlets; } } invlet_cache = { map }; @@ -1989,20 +1980,7 @@ void monster::load( const JsonObject &data ) data.read( "inv", inv ); data.read( "dragged_foe_id", dragged_foe_id ); - if( data.has_int( "ammo" ) && !type->starting_ammo.empty() ) { - // Legacy loading for ammo. - normalize_ammo( data.get_int( "ammo" ) ); - } else { - data.read( "ammo", ammo ); - // legacy loading for milkable creatures, fix mismatch. - if( has_flag( MF_MILKABLE ) && !type->starting_ammo.empty() && !ammo.empty() && - type->starting_ammo.begin()->first != ammo.begin()->first ) { - const std::string old_type = ammo.begin()->first; - const int old_value = ammo.begin()->second; - ammo[type->starting_ammo.begin()->first] = old_value; - ammo.erase( old_type ); - } - } + data.read( "ammo", ammo ); faction = mfaction_str_id( data.get_string( "faction", "" ) ); if( !data.read( "last_updated", last_updated ) ) { @@ -2121,22 +2099,6 @@ void time_duration::deserialize( JsonIn &jsin ) } } -template -void units::quantity::serialize( JsonOut &jsout ) const -{ - jsout.write( value_ ); -} - -// TODO: BATTERIES this template specialization should be in the global namespace - see GCC bug 56480 -namespace units -{ -template<> -void units::energy::deserialize( JsonIn &jsin ) -{ - *this = from_millijoule( jsin.get_int() ); -} -} // namespace units - //////////////////////////////////////////////////////////////////////////////////////////////////// ///// item.h @@ -2186,7 +2148,7 @@ static std::set charge_removal_blacklist; void load_charge_removal_blacklist( const JsonObject &jo, const std::string &src ); void load_charge_removal_blacklist( const JsonObject &jo, const std::string &/*src*/ ) { - charge_removal_blacklist = jo.get_tags( "list" ); + jo.read( "list", charge_removal_blacklist ); } template @@ -2194,16 +2156,16 @@ void item::io( Archive &archive ) { itype_id orig; // original ID as loaded from JSON - const auto load_type = [&]( const itype_id & id ) { - orig = id; - convert( item_controller->migrate_id( id ) ); + const auto load_type = [&]( const std::string & id ) { + orig = itype_id( id ); + convert( item_controller->migrate_id( orig ) ); }; const auto load_curammo = [this]( const std::string & id ) { - curammo = item::find_type( item_controller->migrate_id( id ) ); + curammo = item::find_type( item_controller->migrate_id( itype_id( id ) ) ); }; const auto load_corpse = [this]( const std::string & id ) { - if( id == "null" ) { + if( itype_id( id ).is_null() ) { // backwards compatibility, nullptr should not be stored at all corpse = nullptr; } else { @@ -2211,7 +2173,7 @@ void item::io( Archive &archive ) } }; archive.template io( "typeid", type, load_type, []( const itype & i ) { - return i.get_id(); + return i.get_id().str(); }, io::required_tag() ); // normalize legacy saves to always have charges >= 0 @@ -2253,7 +2215,7 @@ void item::io( Archive &archive ) archive.io( "recipe_charges", recipe_charges, 1 ); archive.template io( "curammo", curammo, load_curammo, []( const itype & i ) { - return i.get_id(); + return i.get_id().str(); } ); archive.template io( "corpse", corpse, load_corpse, []( const mtype & i ) { @@ -2290,10 +2252,10 @@ void item::io( Archive &archive ) if( poison != 0 && note == 0 && !type->snippet_category.empty() ) { std::swap( note, poison ); } - if( poison != 0 && frequency == 0 && ( typeId() == "radio_on" || typeId() == "radio" ) ) { + if( poison != 0 && frequency == 0 && ( typeId() == itype_radio_on || typeId() == itype_radio ) ) { std::swap( frequency, poison ); } - if( poison != 0 && irradiation == 0 && typeId() == "rad_badge" ) { + if( poison != 0 && irradiation == 0 && typeId() == itype_rad_badge ) { std::swap( irradiation, poison ); } @@ -2349,8 +2311,8 @@ void item::io( Archive &archive ) current_phase = static_cast( cur_phase ); // override phase if frozen, needed for legacy save - if( item_tags.count( "FROZEN" ) && current_phase == LIQUID ) { - current_phase = SOLID; + if( item_tags.count( "FROZEN" ) && current_phase == phase_id::LIQUID ) { + current_phase = phase_id::SOLID; } // Activate corpses from old saves @@ -2362,7 +2324,8 @@ void item::io( Archive &archive ) // Types that are known to have charges, but should not have them. // We fix it here, but it's expected from bugged saves and does not require a message. if( charge_removal_blacklist.count( type->get_id() ) == 0 ) { - debugmsg( "Item %s was loaded with charges, but can not have any!", type->get_id() ); + debugmsg( "Item %s was loaded with charges, but can not have any!", + type->get_id().str() ); } charges = 0; } @@ -2372,10 +2335,10 @@ void item::migrate_content_item( const item &contained ) { if( contained.is_gunmod() || contained.is_toolmod() ) { put_in( contained, item_pocket::pocket_type::MOD ); - } else if( !contained.made_of( LIQUID ) + } else if( !contained.made_of( phase_id::LIQUID ) && ( contained.is_magazine() || contained.is_ammo() ) ) { put_in( contained, item_pocket::pocket_type::MAGAZINE ); - } else if( typeId() == "usb_drive" ) { + } else if( typeId() == itype_usb_drive ) { // as of this migration, only usb_drive has any software in it. put_in( contained, item_pocket::pocket_type::SOFTWARE ); } else if( is_corpse() ) { @@ -2442,7 +2405,7 @@ void vehicle_part::deserialize( JsonIn &jsin ) vpart_id pid; data.read( "id", pid ); - std::map> deprecated = { + std::map> deprecated = { { "laser_gun", { "laser_rifle", "none" } }, { "seat_nocargo", { "seat", "none" } }, { "engine_plasma", { "minireactor", "none" } }, @@ -2489,7 +2452,7 @@ void vehicle_part::deserialize( JsonIn &jsin ) auto dep = deprecated.find( pid.str() ); if( dep != deprecated.end() ) { pid = vpart_id( dep->second.first ); - legacy_fuel = dep->second.second; + legacy_fuel = itype_id( dep->second.second ); } // if we don't know what type of part it is, it'll cause problems later. @@ -2532,19 +2495,19 @@ void vehicle_part::deserialize( JsonIn &jsin ) data.read( "target_second_z", target.second.z ); data.read( "ammo_pref", ammo_pref ); - if( legacy_fuel.empty() ) { + if( legacy_fuel.is_empty() ) { legacy_fuel = id.obj().fuel_type; } // with VEHICLE tag migrate fuel tanks only if amount field exists if( base.has_flag( "VEHICLE" ) ) { - if( data.has_int( "amount" ) && ammo_capacity() > 0 && legacy_fuel != "battery" ) { + if( data.has_int( "amount" ) && !base.ammo_types().empty() && legacy_fuel != itype_battery ) { ammo_set( legacy_fuel, data.get_int( "amount" ) ); } // without VEHICLE flag always migrate both batteries and fuel tanks } else { - if( ammo_capacity() > 0 ) { + if( !base.ammo_types().empty() ) { ammo_set( legacy_fuel, data.get_int( "amount" ) ); } base.item_tags.insert( "VEHICLE" ); @@ -2692,6 +2655,7 @@ void vehicle::deserialize( JsonIn &jsin ) data.read( "is_following", is_following ); data.read( "is_patrolling", is_patrolling ); data.read( "autodrive_local_target", autodrive_local_target ); + data.read( "airworthy", flyable ); data.read( "summon_time_limit", summon_time_limit ); data.read( "magic", magic ); // Need to manually backfill the active item cache since the part loader can't call its vehicle. @@ -2854,6 +2818,7 @@ void vehicle::serialize( JsonOut &json ) const json.member( "is_following", is_following ); json.member( "is_patrolling", is_patrolling ); json.member( "autodrive_local_target", autodrive_local_target ); + json.member( "airworthy", flyable ); json.member( "summon_time_limit", summon_time_limit ); json.member( "magic", magic ); json.end_object(); @@ -2909,7 +2874,7 @@ void mission::deserialize( JsonIn &jsin ) follow_up = mission_type_id( jo.get_string( "follow_up" ) ); } - item_id = itype_id( jo.get_string( "item_id", item_id ) ); + jo.read( "item_id", item_id ); const std::string omid = jo.get_string( "target_id", "" ); if( !omid.empty() ) { @@ -3045,7 +3010,7 @@ void Creature::store( JsonOut &jsout ) const // Because JSON requires string keys we need to convert our int keys std::unordered_map> tmp_map; - for( auto maps : *effects ) { + for( const auto &maps : *effects ) { for( const auto i : maps.second ) { std::ostringstream convert; convert << i.first; @@ -3100,18 +3065,18 @@ void Creature::load( const JsonObject &jsin ) std::unordered_map> tmp_map; jsin.read( "effects", tmp_map ); int key_num = 0; - for( auto maps : tmp_map ) { + for( const auto &maps : tmp_map ) { const efftype_id id( maps.first ); if( !id.is_valid() ) { debugmsg( "Invalid effect: %s", id.c_str() ); continue; } - for( auto i : maps.second ) { + for( const auto &i : maps.second ) { if( !( std::istringstream( i.first ) >> key_num ) ) { key_num = 0; } const body_part bp = static_cast( key_num ); - effect &e = i.second; + const effect &e = i.second; ( *effects )[id][bp] = e; on_effect_int_change( id, e.get_intensity(), bp ); @@ -3161,7 +3126,7 @@ void player_morale::morale_point::deserialize( JsonIn &jsin ) if( !jo.read( "type", type ) ) { type = morale_type_data::convert_legacy( jo.get_int( "type_enum" ) ); } - std::string tmpitype; + itype_id tmpitype; if( jo.read( "item_type", tmpitype ) && item::type_is_defined( tmpitype ) ) { item_type = item::find_type( tmpitype ); } @@ -3562,7 +3527,7 @@ void cata_variant::deserialize( JsonIn &jsin ) void event_multiset::serialize( JsonOut &jsout ) const { jsout.start_object(); - std::vector copy( counts_.begin(), counts_.end() ); + std::vector copy( summaries_.begin(), summaries_.end() ); jsout.member( "event_counts", copy ); jsout.end_object(); } @@ -3570,9 +3535,23 @@ void event_multiset::serialize( JsonOut &jsout ) const void event_multiset::deserialize( JsonIn &jsin ) { JsonObject jo = jsin.get_object(); - std::vector> copy; - jo.read( "event_counts", copy ); - counts_ = { copy.begin(), copy.end() }; + JsonArray events = jo.get_array( "event_counts" ); + if( !events.empty() && events.get_array( 0 ).has_int( 1 ) ) { + // TEMPORARY until 0.F + // Read legacy format with just ints + std::vector> copy; + jo.read( "event_counts", copy ); + summaries_.clear(); + for( const std::pair &p : copy ) { + event_summary summary{ p.second, calendar::start_of_game, calendar::start_of_game }; + summaries_.emplace( p.first, summary ); + } + } else { + // Read actual summaries + std::vector> copy; + jo.read( "event_counts", copy ); + summaries_ = { copy.begin(), copy.end() }; + } } void stats_tracker::serialize( JsonOut &jsout ) const @@ -3830,24 +3809,24 @@ void submap::load( JsonIn &jsin, const std::string &member_name, int version ) for( int i = 0; i < SEEX; i++ ) { const ter_str_id tid( jsin.get_string() ); - if( tid == "t_rubble" ) { + if( tid == ter_t_rubble ) { ter[i][j] = ter_id( "t_dirt" ); frn[i][j] = furn_id( "f_rubble" ); itm[i][j].insert( rock ); itm[i][j].insert( rock ); - } else if( tid == "t_wreckage" ) { + } else if( tid == ter_t_wreckage ) { ter[i][j] = ter_id( "t_dirt" ); frn[i][j] = furn_id( "f_wreckage" ); itm[i][j].insert( chunk ); itm[i][j].insert( chunk ); - } else if( tid == "t_ash" ) { + } else if( tid == ter_t_ash ) { ter[i][j] = ter_id( "t_dirt" ); frn[i][j] = furn_id( "f_ash" ); - } else if( tid == "t_pwr_sb_support_l" ) { + } else if( tid == ter_t_pwr_sb_support_l ) { ter[i][j] = ter_id( "t_support_l" ); - } else if( tid == "t_pwr_sb_switchgear_l" ) { + } else if( tid == ter_t_pwr_sb_switchgear_l ) { ter[i][j] = ter_id( "t_switchgear_l" ); - } else if( tid == "t_pwr_sb_switchgear_s" ) { + } else if( tid == ter_t_pwr_sb_switchgear_s ) { ter[i][j] = ter_id( "t_switchgear_s" ); } else { ter[i][j] = tid.id(); @@ -3939,7 +3918,7 @@ void submap::load( JsonIn &jsin, const std::string &member_name, int version ) const point p( i, j ); // TODO: jsin should support returning an id like jsin.get_id() const trap_str_id trid( jsin.get_string() ); - if( trid == "tr_brazier" ) { + if( trid == tr_brazier ) { frn[p.x][p.y] = furn_id( "f_brazier" ); } else { trp[p.x][p.y] = trid.id(); diff --git a/src/scenario.cpp b/src/scenario.cpp index 45385f768a2e7..bc94dd7972071 100644 --- a/src/scenario.cpp +++ b/src/scenario.cpp @@ -395,7 +395,6 @@ std::string scenario::start_name() const return _start_name.translated(); } - int scenario::start_location_count() const { return _allowed_locs.size(); diff --git a/src/scores_ui.cpp b/src/scores_ui.cpp index 429ca58e4ff94..5dab52482da32 100644 --- a/src/scores_ui.cpp +++ b/src/scores_ui.cpp @@ -18,19 +18,24 @@ #include "ui.h" #include "ui_manager.h" -static std::string get_achievements_text( const achievements_tracker &achievements ) +static std::string get_achievements_text( const achievements_tracker &achievements, + bool use_conducts ) { + std::string thing_name = use_conducts ? _( "conducts" ) : _( "achievements" ); + std::string cap_thing_name = use_conducts ? _( "Conducts" ) : _( "Achievements" ); if( !achievements.is_enabled() ) { - return _( "Achievements are disabled, probably due to use of the debug menu. " - "If you only used the debug menu to work around a game bug, then you " - "can re-enable achievements via the debug menu (under the Game submenu)." ); + return string_format( + _( "%s are disabled, probably due to use of the debug menu. If you only used " + "the debug menu to work around a game bug, then you can re-enable %s via the " + "debug menu (\"Enable achievements\" under the \"Game\" submenu)." ), + cap_thing_name, thing_name ); } std::string os; std::vector valid_achievements = achievements.valid_achievements(); valid_achievements.erase( std::remove_if( valid_achievements.begin(), valid_achievements.end(), [&]( const achievement * a ) { - return achievements.is_hidden( a ); + return achievements.is_hidden( a ) || a->is_conduct() != use_conducts; } ), valid_achievements.end() ); using sortable_achievement = std::tuple; @@ -46,10 +51,10 @@ static std::string get_achievements_text( const achievements_tracker &achievemen os += achievements.ui_text_for( std::get( ach ) ) + "\n"; } if( valid_achievements.empty() ) { - os += _( "This game has no valid achievements.\n" ); + os += string_format( _( "This game has no valid %s.\n" ), thing_name ); } - os += _( "Note that only achievements that existed when you started this game and still " - "exist now will appear here." ); + os += string_format( _( "Note that only %s that existed when you started this game and still " + "exist now will appear here." ), thing_name ); return os; } @@ -73,8 +78,9 @@ void show_scores_ui( const achievements_tracker &achievements, stats_tracker &st { catacurses::window w; - enum class tab_mode { + enum class tab_mode : int { achievements, + conducts, scores, kills, num_tabs, @@ -108,6 +114,7 @@ void show_scores_ui( const achievements_tracker &achievements, stats_tracker &st const std::vector> tabs = { { tab_mode::achievements, _( "ACHIEVEMENTS" ) }, + { tab_mode::conducts, _( "CONDUCTS" ) }, { tab_mode::scores, _( "SCORES" ) }, { tab_mode::kills, _( "KILLS" ) }, }; @@ -116,7 +123,7 @@ void show_scores_ui( const achievements_tracker &achievements, stats_tracker &st werase( w ); draw_tabs( w, tabs, tab ); draw_border_below_tabs( w ); - wrefresh( w ); + wnoutrefresh( w ); view.draw( c_white ); } ); @@ -125,7 +132,10 @@ void show_scores_ui( const achievements_tracker &achievements, stats_tracker &st if( new_tab ) { switch( tab ) { case tab_mode::achievements: - view.set_text( get_achievements_text( achievements ) ); + view.set_text( get_achievements_text( achievements, false ) ); + break; + case tab_mode::conducts: + view.set_text( get_achievements_text( achievements, true ) ); break; case tab_mode::scores: view.set_text( get_scores_text( stats ) ); diff --git a/src/sdl_utils.cpp b/src/sdl_utils.cpp index da04cdde42f05..a1f01f5d3bd35 100644 --- a/src/sdl_utils.cpp +++ b/src/sdl_utils.cpp @@ -14,7 +14,10 @@ color_pixel_function_map builtin_color_pixel_functions = { { "color_pixel_none", nullptr }, { "color_pixel_darken", color_pixel_darken }, - { "color_pixel_sepia", color_pixel_sepia }, + { "color_pixel_sepia_light", color_pixel_sepia_light }, + { "color_pixel_sepia_dark", color_pixel_sepia_dark }, + { "color_pixel_blue_dark", color_pixel_blue_dark }, + { "color_pixel_custom", color_pixel_custom }, { "color_pixel_grayscale", color_pixel_grayscale }, { "color_pixel_nightvision", color_pixel_nightvision }, { "color_pixel_overexposed", color_pixel_overexposed }, diff --git a/src/sdl_utils.h b/src/sdl_utils.h index 5c76560799cd2..49bd42a3c73e9 100644 --- a/src/sdl_utils.h +++ b/src/sdl_utils.h @@ -9,6 +9,7 @@ #include #include "color.h" +#include "options.h" #include "sdl_wrappers.h" using color_pixel_function_pointer = SDL_Color( * )( const SDL_Color &color ); @@ -121,7 +122,8 @@ inline SDL_Color color_pixel_darken( const SDL_Color &color ) } -inline SDL_Color color_pixel_sepia( const SDL_Color &color ) +inline SDL_Color color_pixel_mixer( const SDL_Color &color, const float &gammav, + const SDL_Color &color_a, const SDL_Color &color_b ) { if( is_black( color ) ) { return color; @@ -129,20 +131,43 @@ inline SDL_Color color_pixel_sepia( const SDL_Color &color ) /* * Objective is to provide a gradient between two color points - * (sepia_dark and sepia_light) based on the grayscale value. - * This presents an effect intended to mimic a faded sepia photograph. + * (color_a and color_b) based on the grayscale value. */ - const SDL_Color sepia_dark = { 39, 23, 19, color.a}; - const SDL_Color sepia_light = { 241, 220, 163, color.a}; - const Uint8 av = average_pixel_color( color ); - const float gammav = 1.6; const float pv = av / 255.0; const Uint8 finalv = std::min( static_cast( std::round( std::pow( pv, gammav ) * 150 ) ), 100 ); - return mix_colors( sepia_dark, sepia_light, finalv ); + return mix_colors( color_a, color_b, finalv ); +} + +inline SDL_Color color_pixel_sepia_light( const SDL_Color &color ) +{ + const SDL_Color dark = { 39, 23, 19, color.a }; + const SDL_Color light = { 241, 220, 163, color.a }; + return color_pixel_mixer( color, 1.6f, dark, light ); +} + +inline SDL_Color color_pixel_sepia_dark( const SDL_Color &color ) +{ + const SDL_Color dark = { 39, 23, 19, color.a }; + const SDL_Color light = { 70, 66, 60, color.a }; + return color_pixel_mixer( color, 1.0f, dark, light ); +} + +inline SDL_Color color_pixel_blue_dark( const SDL_Color &color ) +{ + const SDL_Color dark = { 19, 23, 39, color.a }; + const SDL_Color light = { 60, 66, 70, color.a }; + return color_pixel_mixer( color, 1.0f, dark, light ); +} + +inline SDL_Color color_pixel_custom( const SDL_Color &color ) +{ + const SDL_Color dark = { static_cast( get_option( "MEMORY_RGB_DARK_RED" ) ), static_cast( get_option( "MEMORY_RGB_DARK_GREEN" ) ), static_cast( get_option( "MEMORY_RGB_DARK_BLUE" ) ), color.a }; + const SDL_Color light = { static_cast( get_option( "MEMORY_RGB_BRIGHT_RED" ) ), static_cast( get_option( "MEMORY_RGB_BRIGHT_GREEN" ) ), static_cast( get_option( "MEMORY_RGB_BRIGHT_BLUE" ) ), color.a }; + return color_pixel_mixer( color, get_option( "MEMORY_GAMMA" ), dark, light ); } SDL_Color curses_color_to_SDL( const nc_color &color ); diff --git a/src/sdl_wrappers.cpp b/src/sdl_wrappers.cpp index 30ed894cbbc7e..1942dca987cbf 100644 --- a/src/sdl_wrappers.cpp +++ b/src/sdl_wrappers.cpp @@ -10,13 +10,11 @@ #include "debug.h" #include "point.h" -#if defined(TILES) -# if defined(_MSC_VER) && defined(USE_VCPKG) -# include -# else -# include -# endif -#endif // TILES +#if defined(_MSC_VER) && defined(USE_VCPKG) +# include +#else +# include +#endif #define dbg(x) DebugLog((x),D_SDL) << __FILE__ << ":" << __LINE__ << ": " diff --git a/src/sdltiles.cpp b/src/sdltiles.cpp index 59f4a4ae04bb7..3b5e27d038b1b 100644 --- a/src/sdltiles.cpp +++ b/src/sdltiles.cpp @@ -255,7 +255,6 @@ static std::vector oversized_framebuffer; static std::vector terminal_framebuffer; static std::weak_ptr winBuffer; //tracking last drawn window to fix the framebuffer static int fontScaleBuffer; //tracking zoom levels to fix framebuffer w/tiles -extern catacurses::window w_hit_animation; //this window overlays w_terrain which can be oversized //*********************************** //Non-curses, Window functions * @@ -1033,16 +1032,22 @@ static void invalidate_framebuffer( std::vector &framebuffer ) void reinitialize_framebuffer() { + static int prev_height = -1; + static int prev_width = -1; //Re-initialize the framebuffer with new values. - const int new_height = std::max( TERMY, std::max( OVERMAP_WINDOW_HEIGHT, TERRAIN_WINDOW_HEIGHT ) ); - const int new_width = std::max( TERMX, std::max( OVERMAP_WINDOW_WIDTH, TERRAIN_WINDOW_WIDTH ) ); - oversized_framebuffer.resize( new_height ); - for( int i = 0; i < new_height; i++ ) { - oversized_framebuffer[i].chars.assign( new_width, cursecell( "" ) ); - } - terminal_framebuffer.resize( new_height ); - for( int i = 0; i < new_height; i++ ) { - terminal_framebuffer[i].chars.assign( new_width, cursecell( "" ) ); + const int new_height = std::max( { TERMY, OVERMAP_WINDOW_HEIGHT, TERRAIN_WINDOW_HEIGHT } ); + const int new_width = std::max( { TERMX, OVERMAP_WINDOW_WIDTH, TERRAIN_WINDOW_WIDTH } ); + if( new_height != prev_height || new_width != prev_width ) { + prev_height = new_height; + prev_width = new_width; + oversized_framebuffer.resize( new_height ); + for( int i = 0; i < new_height; i++ ) { + oversized_framebuffer[i].chars.assign( new_width, cursecell( "" ) ); + } + terminal_framebuffer.resize( new_height ); + for( int i = 0; i < new_height; i++ ) { + terminal_framebuffer[i].chars.assign( new_width, cursecell( "" ) ); + } } } @@ -1060,7 +1065,7 @@ static void invalidate_framebuffer_proportion( cata_cursesport::WINDOW *win ) if( !g || win == nullptr ) { return; } - if( win == g->w_overmap || win == g->w_terrain || win == w_hit_animation ) { + if( win == g->w_overmap || win == g->w_terrain ) { return; } @@ -1236,13 +1241,6 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) } else if( g && w == g->w_overmap && overmap_font ) { // Special font for the terrain window update = overmap_font->draw_window( w ); - } else if( w == w_hit_animation && map_font ) { - // The animation window overlays the terrain window, - // it uses the same font, but it's only 1 square in size. - // The offset must not use the global font, but the map font - int offsetx = win->pos.x * map_font->fontwidth; - int offsety = win->pos.y * map_font->fontheight; - update = map_font->draw_window( w, point( offsetx, offsety ) ); } else if( g && w == g->w_pixel_minimap && g->pixel_minimap_option ) { // ensure the space the minimap covers is "dirtied". // this is necessary when it's the only part of the sidebar being drawn @@ -1298,8 +1296,7 @@ bool Font::draw_window( const catacurses::window &w, const point &offset ) invalidate_framebuffer_proportion( win ); // use the oversize buffer when dealing with windows that can have a different font than the main text font - bool use_oversized_framebuffer = g && ( w == g->w_terrain || w == g->w_overmap || - w == w_hit_animation ); + bool use_oversized_framebuffer = g && ( w == g->w_terrain || w == g->w_overmap ); std::vector &framebuffer = use_oversized_framebuffer ? oversized_framebuffer : terminal_framebuffer; @@ -1515,7 +1512,7 @@ static int HandleDPad() return 0; } - last_input = input_event( lc, CATA_INPUT_GAMEPAD ); + last_input = input_event( lc, input_event_t::gamepad ); lastdpad = lc; queued_dpad = ERR; @@ -1535,7 +1532,7 @@ static int HandleDPad() // If we didn't hold it down for a while, just // fire the last registered press. if( queued_dpad != ERR ) { - last_input = input_event( queued_dpad, CATA_INPUT_GAMEPAD ); + last_input = input_event( queued_dpad, input_event_t::gamepad ); queued_dpad = ERR; return 1; } @@ -1773,6 +1770,7 @@ bool handle_resize( int w, int h ) WindowHeight = h; TERMINAL_WIDTH = WindowWidth / fontwidth / scaling_factor; TERMINAL_HEIGHT = WindowHeight / fontheight / scaling_factor; + catacurses::stdscr = catacurses::newwin( TERMINAL_HEIGHT, TERMINAL_WIDTH, point_zero ); SetupRenderTarget(); game_ui::init_ui(); ui_manager::screen_resized(); @@ -1781,6 +1779,15 @@ bool handle_resize( int w, int h ) return false; } +void resize_term( const int cell_w, const int cell_h ) +{ + int w = cell_w * fontwidth * scaling_factor; + int h = cell_h * fontheight * scaling_factor; + SDL_SetWindowSize( window.get(), w, h ); + SDL_GetWindowSize( window.get(), &w, &h ); + handle_resize( w, h ); +} + void toggle_fullscreen_window() { static int restore_win_w = get_option( "TERMINAL_X" ) * fontwidth * scaling_factor; @@ -2010,7 +2017,7 @@ int choose_best_key_for_action( const std::string &action, const std::string &ca const std::vector &events = inp_mngr.get_input_for_action( action, category ); int best_key = -1; for( const auto &events_event : events ) { - if( events_event.type == CATA_INPUT_KEYBOARD && events_event.sequence.size() == 1 ) { + if( events_event.type == input_event_t::keyboard && events_event.sequence.size() == 1 ) { bool is_ascii_char = isprint( events_event.sequence.front() ) && events_event.sequence.front() < 0xFF; bool is_best_ascii_char = best_key >= 0 && isprint( best_key ) && best_key < 0xFF; @@ -2026,7 +2033,7 @@ bool add_key_to_quick_shortcuts( int key, const std::string &category, bool back { if( key > 0 ) { quick_shortcuts_t &qsl = quick_shortcuts_map[get_quick_shortcut_name( category )]; - input_event event = input_event( key, CATA_INPUT_KEYBOARD ); + input_event event = input_event( key, input_event_t::keyboard ); quick_shortcuts_t::iterator it = std::find( qsl.begin(), qsl.end(), event ); if( it != qsl.end() ) { // already exists ( *it ).shortcut_last_used_action_counter = @@ -2199,7 +2206,7 @@ void draw_quick_shortcuts() std::vector ®istered_manual_keys = touch_input_context.get_registered_manual_keys(); for( const auto &manual_key : registered_manual_keys ) { - input_event event( manual_key.key, CATA_INPUT_KEYBOARD ); + input_event event( manual_key.key, input_event_t::keyboard ); add_quick_shortcut( qsl, event, !shortcut_right, true ); } } @@ -2440,56 +2447,56 @@ void handle_finger_input( uint32_t ticks ) WindowHeight ) ) ) { if( !handle_diagonals ) { if( delta_x >= 0 && delta_y >= 0 ) { - last_input = input_event( delta_x > delta_y ? KEY_RIGHT : KEY_DOWN, CATA_INPUT_KEYBOARD ); + last_input = input_event( delta_x > delta_y ? KEY_RIGHT : KEY_DOWN, input_event_t::keyboard ); } else if( delta_x < 0 && delta_y >= 0 ) { - last_input = input_event( -delta_x > delta_y ? KEY_LEFT : KEY_DOWN, CATA_INPUT_KEYBOARD ); + last_input = input_event( -delta_x > delta_y ? KEY_LEFT : KEY_DOWN, input_event_t::keyboard ); } else if( delta_x >= 0 && delta_y < 0 ) { - last_input = input_event( delta_x > -delta_y ? KEY_RIGHT : KEY_UP, CATA_INPUT_KEYBOARD ); + last_input = input_event( delta_x > -delta_y ? KEY_RIGHT : KEY_UP, input_event_t::keyboard ); } else if( delta_x < 0 && delta_y < 0 ) { - last_input = input_event( -delta_x > -delta_y ? KEY_LEFT : KEY_UP, CATA_INPUT_KEYBOARD ); + last_input = input_event( -delta_x > -delta_y ? KEY_LEFT : KEY_UP, input_event_t::keyboard ); } } else { if( delta_x > 0 ) { if( std::abs( delta_y ) < delta_x * 0.5f ) { // swipe right - last_input = input_event( KEY_RIGHT, CATA_INPUT_KEYBOARD ); + last_input = input_event( KEY_RIGHT, input_event_t::keyboard ); } else if( std::abs( delta_y ) < delta_x * 2.0f ) { if( delta_y < 0 ) { // swipe up-right - last_input = input_event( JOY_RIGHTUP, CATA_INPUT_GAMEPAD ); + last_input = input_event( JOY_RIGHTUP, input_event_t::gamepad ); } else { // swipe down-right - last_input = input_event( JOY_RIGHTDOWN, CATA_INPUT_GAMEPAD ); + last_input = input_event( JOY_RIGHTDOWN, input_event_t::gamepad ); } } else { if( delta_y < 0 ) { // swipe up - last_input = input_event( KEY_UP, CATA_INPUT_KEYBOARD ); + last_input = input_event( KEY_UP, input_event_t::keyboard ); } else { // swipe down - last_input = input_event( KEY_DOWN, CATA_INPUT_KEYBOARD ); + last_input = input_event( KEY_DOWN, input_event_t::keyboard ); } } } else { if( std::abs( delta_y ) < -delta_x * 0.5f ) { // swipe left - last_input = input_event( KEY_LEFT, CATA_INPUT_KEYBOARD ); + last_input = input_event( KEY_LEFT, input_event_t::keyboard ); } else if( std::abs( delta_y ) < -delta_x * 2.0f ) { if( delta_y < 0 ) { // swipe up-left - last_input = input_event( JOY_LEFTUP, CATA_INPUT_GAMEPAD ); + last_input = input_event( JOY_LEFTUP, input_event_t::gamepad ); } else { // swipe down-left - last_input = input_event( JOY_LEFTDOWN, CATA_INPUT_GAMEPAD ); + last_input = input_event( JOY_LEFTDOWN, input_event_t::gamepad ); } } else { if( delta_y < 0 ) { // swipe up - last_input = input_event( KEY_UP, CATA_INPUT_KEYBOARD ); + last_input = input_event( KEY_UP, input_event_t::keyboard ); } else { // swipe down - last_input = input_event( KEY_DOWN, CATA_INPUT_KEYBOARD ); + last_input = input_event( KEY_DOWN, input_event_t::keyboard ); } } } @@ -2501,13 +2508,13 @@ void handle_finger_input( uint32_t ticks ) // We only allow repeats for waiting, not confirming in menus as that's a bit silly if( is_default_mode ) { last_input = input_event( get_key_event_from_string( get_option( "ANDROID_TAP_KEY" ) ), - CATA_INPUT_KEYBOARD ); + input_event_t::keyboard ); } } else { if( last_tap_time > 0 && ticks - last_tap_time < static_cast( get_option( "ANDROID_INITIAL_DELAY" ) ) ) { // Double tap - last_input = input_event( is_default_mode ? KEY_ESCAPE : KEY_ESCAPE, CATA_INPUT_KEYBOARD ); + last_input = input_event( is_default_mode ? KEY_ESCAPE : KEY_ESCAPE, input_event_t::keyboard ); last_tap_time = 0; } else { // First tap detected, waiting to decide whether it's a single or a double tap input @@ -2634,11 +2641,11 @@ static void CheckMessages() } // If we're already running, make it simple to toggle running to off. - if( g->u.movement_mode_is( CMM_RUN ) ) { + if( g->u.is_running() ) { actions.insert( ACTION_TOGGLE_RUN ); } // If we're already crouching, make it simple to toggle crouching to off. - if( g->u.movement_mode_is( CMM_CROUCH ) ) { + if( g->u.is_crouching() ) { actions.insert( ACTION_TOGGLE_CROUCH ); } @@ -2755,7 +2762,7 @@ static void CheckMessages() } // Check if we're dead tired - if so, add sleep - if( g->u.get_fatigue() > DEAD_TIRED ) { + if( g->u.get_fatigue() > fatigue_levels::DEAD_TIRED ) { actions.insert( ACTION_SLEEP ); } @@ -2822,7 +2829,7 @@ static void CheckMessages() // Single tap last_tap_time = ticks; last_input = input_event( is_default_mode ? get_key_event_from_string( - get_option( "ANDROID_TAP_KEY" ) ) : '\n', CATA_INPUT_KEYBOARD ); + get_option( "ANDROID_TAP_KEY" ) ) : '\n', input_event_t::keyboard ); last_tap_time = 0; return; } @@ -2917,7 +2924,7 @@ static void CheckMessages() } else if( add_alt_code( lc ) ) { // key was handled } else { - last_input = input_event( lc, CATA_INPUT_KEYBOARD ); + last_input = input_event( lc, input_event_t::keyboard ); #if defined(__ANDROID__) if( !android_is_hardware_keyboard_available() ) { if( !is_string_input( touch_input_context ) && !touch_input_context.allow_text_entry ) { @@ -2926,7 +2933,7 @@ static void CheckMessages() } // add a quick shortcut - if( !last_input.text.empty() || !inp_mngr.get_keyname( lc, CATA_INPUT_KEYBOARD ).empty() ) { + if( !last_input.text.empty() || !inp_mngr.get_keyname( lc, input_event_t::keyboard ).empty() ) { qsl.remove( last_input ); add_quick_shortcut( qsl, last_input, false, true ); refresh_display(); @@ -2960,7 +2967,7 @@ static void CheckMessages() if( ev.key.keysym.sym == SDLK_LALT || ev.key.keysym.sym == SDLK_RALT ) { int code = end_alt_code(); if( code ) { - last_input = input_event( code, CATA_INPUT_KEYBOARD ); + last_input = input_event( code, input_event_t::keyboard ); last_input.text = utf32_to_utf8( code ); } } @@ -2970,7 +2977,7 @@ static void CheckMessages() if( !add_alt_code( *ev.text.text ) ) { if( strlen( ev.text.text ) > 0 ) { const unsigned lc = UTF8_getch( ev.text.text ); - last_input = input_event( lc, CATA_INPUT_KEYBOARD ); + last_input = input_event( lc, input_event_t::keyboard ); #if defined(__ANDROID__) if( !android_is_hardware_keyboard_available() ) { if( !is_string_input( touch_input_context ) && !touch_input_context.allow_text_entry ) { @@ -2993,7 +3000,7 @@ static void CheckMessages() } else { // no key pressed in this event last_input = input_event(); - last_input.type = CATA_INPUT_KEYBOARD; + last_input.type = input_event_t::keyboard; } last_input.text = ev.text.text; text_refresh = true; @@ -3002,11 +3009,11 @@ static void CheckMessages() case SDL_TEXTEDITING: { if( strlen( ev.edit.text ) > 0 ) { const unsigned lc = UTF8_getch( ev.edit.text ); - last_input = input_event( lc, CATA_INPUT_KEYBOARD ); + last_input = input_event( lc, input_event_t::keyboard ); } else { // no key pressed in this event last_input = input_event(); - last_input.type = CATA_INPUT_KEYBOARD; + last_input.type = input_event_t::keyboard; } last_input.edit = ev.edit.text; last_input.edit_refresh = true; @@ -3014,7 +3021,7 @@ static void CheckMessages() } break; case SDL_JOYBUTTONDOWN: - last_input = input_event( ev.jbutton.button, CATA_INPUT_KEYBOARD ); + last_input = input_event( ev.jbutton.button, input_event_t::keyboard ); break; case SDL_JOYAXISMOTION: // on gamepads, the axes are the analog sticks @@ -3028,26 +3035,26 @@ static void CheckMessages() } // Only monitor motion when cursor is visible - last_input = input_event( MOUSE_MOVE, CATA_INPUT_MOUSE ); + last_input = input_event( MOUSE_MOVE, input_event_t::mouse ); } break; case SDL_MOUSEBUTTONUP: switch( ev.button.button ) { case SDL_BUTTON_LEFT: - last_input = input_event( MOUSE_BUTTON_LEFT, CATA_INPUT_MOUSE ); + last_input = input_event( MOUSE_BUTTON_LEFT, input_event_t::mouse ); break; case SDL_BUTTON_RIGHT: - last_input = input_event( MOUSE_BUTTON_RIGHT, CATA_INPUT_MOUSE ); + last_input = input_event( MOUSE_BUTTON_RIGHT, input_event_t::mouse ); break; } break; case SDL_MOUSEWHEEL: if( ev.wheel.y > 0 ) { - last_input = input_event( SCROLLWHEEL_UP, CATA_INPUT_MOUSE ); + last_input = input_event( SCROLLWHEEL_UP, input_event_t::mouse ); } else if( ev.wheel.y < 0 ) { - last_input = input_event( SCROLLWHEEL_DOWN, CATA_INPUT_MOUSE ); + last_input = input_event( SCROLLWHEEL_DOWN, input_event_t::mouse ); } break; @@ -3143,7 +3150,7 @@ static void CheckMessages() if( std::max( d1, d2 ) < get_option( "ANDROID_DEADZONE_RANGE" ) * longest_window_edge ) { last_input = input_event( get_key_event_from_string( - get_option( "ANDROID_2_TAP_KEY" ) ), CATA_INPUT_KEYBOARD ); + get_option( "ANDROID_2_TAP_KEY" ) ), input_event_t::keyboard ); } else { float dot = ( x1 * x2 + y1 * y2 ) / ( d1 * d2 ); // dot product of two finger vectors, -1 to +1 if( dot > 0.0f ) { // both fingers mostly heading in same direction, check for double-finger swipe gesture @@ -3156,16 +3163,16 @@ static void CheckMessages() float yavg = 0.5f * ( y1 + y2 ); if( xavg > 0 && xavg > std::abs( yavg ) ) { last_input = input_event( get_key_event_from_string( - get_option( "ANDROID_2_SWIPE_LEFT_KEY" ) ), CATA_INPUT_KEYBOARD ); + get_option( "ANDROID_2_SWIPE_LEFT_KEY" ) ), input_event_t::keyboard ); } else if( xavg < 0 && -xavg > std::abs( yavg ) ) { last_input = input_event( get_key_event_from_string( - get_option( "ANDROID_2_SWIPE_RIGHT_KEY" ) ), CATA_INPUT_KEYBOARD ); + get_option( "ANDROID_2_SWIPE_RIGHT_KEY" ) ), input_event_t::keyboard ); } else if( yavg > 0 && yavg > std::abs( xavg ) ) { last_input = input_event( get_key_event_from_string( - get_option( "ANDROID_2_SWIPE_DOWN_KEY" ) ), CATA_INPUT_KEYBOARD ); + get_option( "ANDROID_2_SWIPE_DOWN_KEY" ) ), input_event_t::keyboard ); } else { last_input = input_event( get_key_event_from_string( - get_option( "ANDROID_2_SWIPE_UP_KEY" ) ), CATA_INPUT_KEYBOARD ); + get_option( "ANDROID_2_SWIPE_UP_KEY" ) ), input_event_t::keyboard ); } } } else { @@ -3181,10 +3188,10 @@ static void CheckMessages() const float zoom_ratio = 0.9f; if( curr_dist < down_dist * zoom_ratio ) { last_input = input_event( get_key_event_from_string( - get_option( "ANDROID_PINCH_IN_KEY" ) ), CATA_INPUT_KEYBOARD ); + get_option( "ANDROID_PINCH_IN_KEY" ) ), input_event_t::keyboard ); } else if( curr_dist > down_dist / zoom_ratio ) { last_input = input_event( get_key_event_from_string( - get_option( "ANDROID_PINCH_OUT_KEY" ) ), CATA_INPUT_KEYBOARD ); + get_option( "ANDROID_PINCH_OUT_KEY" ) ), input_event_t::keyboard ); } } } @@ -3606,7 +3613,7 @@ std::unique_ptr Font::load_font( const std::string &typeface, int fontsize try { return std::unique_ptr( std::make_unique( fontwidth, fontheight, PATH_INFO::user_font() + typeface ) ); - } catch( std::exception &err ) { + } catch( std::exception & ) { try { return std::unique_ptr( std::make_unique( fontwidth, fontheight, PATH_INFO::fontdir() + typeface ) ); @@ -3667,11 +3674,11 @@ input_event input_manager::get_input_event() if( inputdelay < 0 ) { do { CheckMessages(); - if( last_input.type != CATA_INPUT_ERROR ) { + if( last_input.type != input_event_t::error ) { break; } SDL_Delay( 1 ); - } while( last_input.type == CATA_INPUT_ERROR ); + } while( last_input.type == input_event_t::error ); } else if( inputdelay > 0 ) { uint32_t starttime = SDL_GetTicks(); uint32_t endtime = 0; @@ -3679,29 +3686,29 @@ input_event input_manager::get_input_event() do { CheckMessages(); endtime = SDL_GetTicks(); - if( last_input.type != CATA_INPUT_ERROR ) { + if( last_input.type != input_event_t::error ) { break; } SDL_Delay( 1 ); timedout = endtime >= starttime + inputdelay; if( timedout ) { - last_input.type = CATA_INPUT_TIMEOUT; + last_input.type = input_event_t::timeout; } } while( !timedout ); } else { CheckMessages(); } - if( last_input.type == CATA_INPUT_MOUSE ) { + if( last_input.type == input_event_t::mouse ) { SDL_GetMouseState( &last_input.mouse_pos.x, &last_input.mouse_pos.y ); - } else if( last_input.type == CATA_INPUT_KEYBOARD ) { + } else if( last_input.type == input_event_t::keyboard ) { previously_pressed_key = last_input.get_first_input(); #if defined(__ANDROID__) android_vibrate(); #endif } #if defined(__ANDROID__) - else if( last_input.type == CATA_INPUT_GAMEPAD ) { + else if( last_input.type == input_event_t::gamepad ) { android_vibrate(); } #endif @@ -3717,7 +3724,7 @@ bool gamepad_available() void rescale_tileset( int size ) { tilecontext->set_draw_scale( size ); - game_ui::init_ui(); + g->mark_main_ui_adaptor_resize(); } static window_dimensions get_window_dimensions( const catacurses::window &win, diff --git a/src/shadowcasting.h b/src/shadowcasting.h index 6538cecdce612..2ab0fa3311935 100644 --- a/src/shadowcasting.h +++ b/src/shadowcasting.h @@ -19,8 +19,11 @@ struct tripoint; // player is looking at is lit. // For non-opaque tiles direction doesn't matter so we just use the single // default_ value. -enum class quadrant { - NE, SE, SW, NW, +enum class quadrant : int { + NE, + SE, + SW, + NW, default_ = NE }; diff --git a/src/sounds.cpp b/src/sounds.cpp index 22bb394f44809..5dc96f490df2f 100644 --- a/src/sounds.cpp +++ b/src/sounds.cpp @@ -81,10 +81,13 @@ static 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" ); +static const itype_id itype_weapon_fire_suppressed( "weapon_fire_suppressed" ); + struct sound_event { int volume; sounds::sound_t category; @@ -984,7 +987,7 @@ void sfx::generate_gun_sound( const player &source_arg, const item &firing ) []( const item * e ) { return e->type->gunmod->loudness < 0; } ) ) { - weapon_id = "weapon_fire_suppressed"; + weapon_id = itype_weapon_fire_suppressed; } } else { @@ -997,7 +1000,7 @@ void sfx::generate_gun_sound( const player &source_arg, const item &firing ) } } - play_variant_sound( selected_sound, weapon_id, heard_volume, angle, 0.8, 1.2 ); + play_variant_sound( selected_sound, weapon_id.str(), heard_volume, angle, 0.8, 1.2 ); start_sfx_timestamp = std::chrono::high_resolution_clock::now(); } @@ -1432,8 +1435,9 @@ void sfx::do_obstacle( const std::string &obst ) int heard_volume = sfx::get_heard_volume( g->u.pos() ); if( sfx::has_variant_sound( "plmove", obst ) ) { play_variant_sound( "plmove", obst, heard_volume, 0, 0.8, 1.2 ); - } else if( ter_id( obst )->has_flag( TFLAG_SHALLOW_WATER ) || - ter_id( obst )->has_flag( TFLAG_DEEP_WATER ) ) { + } else if( ter_str_id( obst ).is_valid() && + ( ter_id( obst )->has_flag( TFLAG_SHALLOW_WATER ) || + ter_id( obst )->has_flag( TFLAG_DEEP_WATER ) ) ) { 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 ); diff --git a/src/start_location.cpp b/src/start_location.cpp index 2cda68838ff14..e7266ca7580a5 100644 --- a/src/start_location.cpp +++ b/src/start_location.cpp @@ -73,8 +73,8 @@ void start_location::load( const JsonObject &jo, const std::string & ) { mandatory( jo, was_loaded, "name", _name ); std::string ter; - ot_match_type ter_match_type = ot_match_type::type; for( const JsonValue entry : jo.get_array( "terrain" ) ) { + ot_match_type ter_match_type = ot_match_type::type; if( entry.test_string() ) { ter = entry.get_string(); } else { diff --git a/src/stats_tracker.cpp b/src/stats_tracker.cpp index f82a18a6bb8b6..3cba3dacf8c09 100644 --- a/src/stats_tracker.cpp +++ b/src/stats_tracker.cpp @@ -5,7 +5,10 @@ #include #include +#include "calendar.h" #include "event_statistics.h" +#include "json.h" +#include "optional.h" static bool event_data_matches( const cata::event::data_type &data, const cata::event::data_type &criteria ) @@ -19,6 +22,58 @@ static bool event_data_matches( const cata::event::data_type &data, return true; } +event_summary::event_summary() : + count( 0 ), + first( calendar::before_time_starts ), + last( calendar::before_time_starts ) +{ +} + +event_summary::event_summary( int c, time_point f, time_point l ) : + count( c ), + first( f ), + last( l ) +{ +} + +void event_summary::add( const cata::event &e ) +{ + if( count == 0 ) { + first = last = e.time(); + } else { + last = std::max( last, e.time() ); + } + ++count; +} + +void event_summary::add( const event_summary &s ) +{ + if( count == 0 ) { + *this = s; + } else { + count += s.count; + first = std::min( first, s.first ); + last = std::max( last, s.last ); + } +} + +void event_summary::serialize( JsonOut &jsout ) const +{ + jsout.start_object(); + jsout.member( "count", count ); + jsout.member( "first", first ); + jsout.member( "last", last ); + jsout.end_object(); +} + +void event_summary::deserialize( JsonIn &jsin ) +{ + JsonObject jo = jsin.get_object(); + jo.read( "count", count, true ); + jo.read( "first", first, true ); + jo.read( "last", last, true ); +} + void event_multiset::set_type( event_type type ) { // Used during stats_tracker deserialization to set the type @@ -29,8 +84,8 @@ void event_multiset::set_type( event_type type ) int event_multiset::count() const { int total = 0; - for( const auto &pair : counts_ ) { - total += pair.second; + for( const auto &pair : summaries_ ) { + total += pair.second.count; } return total; } @@ -38,9 +93,9 @@ int event_multiset::count() const int event_multiset::count( const cata::event::data_type &criteria ) const { int total = 0; - for( const auto &pair : counts_ ) { + for( const auto &pair : summaries_ ) { if( event_data_matches( pair.first, criteria ) ) { - total += pair.second; + total += pair.second.count; } } return total; @@ -54,13 +109,13 @@ int event_multiset::total( const std::string &field ) const int event_multiset::total( const std::string &field, const cata::event::data_type &criteria ) const { int total = 0; - for( const auto &pair : counts_ ) { + for( const auto &pair : summaries_ ) { auto it = pair.first.find( field ); if( it == pair.first.end() ) { continue; } if( event_data_matches( pair.first, criteria ) ) { - total += pair.second * it->second.get(); + total += pair.second.count * it->second.get(); } } return total; @@ -69,7 +124,7 @@ int event_multiset::total( const std::string &field, const cata::event::data_typ int event_multiset::minimum( const std::string &field ) const { int minimum = 0; - for( const auto &pair : counts_ ) { + for( const auto &pair : summaries_ ) { auto it = pair.first.find( field ); if( it == pair.first.end() ) { continue; @@ -85,7 +140,7 @@ int event_multiset::minimum( const std::string &field ) const int event_multiset::maximum( const std::string &field ) const { int maximum = 0; - for( const auto &pair : counts_ ) { + for( const auto &pair : summaries_ ) { auto it = pair.first.find( field ); if( it == pair.first.end() ) { continue; @@ -98,14 +153,42 @@ int event_multiset::maximum( const std::string &field ) const return maximum; } +template +struct compare_times { + bool operator()( const event_multiset::summaries_type::value_type &l, + const event_multiset::summaries_type::value_type &r ) const { + return l.second.*Member < r.second.*Member; + } +}; + +cata::optional event_multiset::first() const +{ + auto minimum = std::min_element( summaries_.begin(), summaries_.end(), + compare_times<&event_summary::first>() ); + if( minimum == summaries_.end() ) { + return cata::nullopt; + } + return *minimum; +} + +cata::optional event_multiset::last() const +{ + auto minimum = std::max_element( summaries_.begin(), summaries_.end(), + compare_times<&event_summary::last>() ); + if( minimum == summaries_.end() ) { + return cata::nullopt; + } + return *minimum; +} + void event_multiset::add( const cata::event &e ) { - counts_[e.data()]++; + summaries_[e.data()].add( e ); } -void event_multiset::add( const counts_type::value_type &e ) +void event_multiset::add( const summaries_type::value_type &e ) { - counts_[e.first] += e.second; + summaries_[e.first].add( e.second ); } base_watcher::~base_watcher() @@ -157,14 +240,14 @@ cata_variant stats_tracker::value_of( const string_id &stat ) void stats_tracker::add_watcher( event_type type, event_multiset_watcher *watcher ) { - event_type_watchers[type].push_back( watcher ); + event_type_watchers[type].insert( watcher ); watcher->on_subscribe( this ); } void stats_tracker::add_watcher( const string_id &id, event_multiset_watcher *watcher ) { - event_transformation_watchers[id].push_back( watcher ); + event_transformation_watchers[id].insert( watcher ); watcher->on_subscribe( this ); std::unique_ptr &state = event_transformation_states[ id ]; if( !state ) { @@ -174,7 +257,7 @@ void stats_tracker::add_watcher( const string_id &id, void stats_tracker::add_watcher( const string_id &id, stat_watcher *watcher ) { - stat_watchers[id].push_back( watcher ); + stat_watchers[id].insert( watcher ); watcher->on_subscribe( this ); std::unique_ptr &state = stat_states[ id ]; if( !state ) { @@ -186,19 +269,16 @@ void stats_tracker::unwatch( base_watcher *watcher ) { // Use a slow O(n) approach for now; if it proves problematic we can build // an index, but that seems over-complex. - auto erase_from = [watcher]( auto & map_of_vectors ) { - for( auto &p : map_of_vectors ) { - auto &vector = p.second; - auto it = std::find( vector.begin(), vector.end(), watcher ); - if( it != vector.end() ) { - vector.erase( it ); + auto erase_from = [watcher]( auto & map_of_watcher_sets ) { + for( auto &p : map_of_watcher_sets ) { + auto &set = p.second; + if( set.erase( watcher ) ) { return true; } } return false; }; - if( erase_from( event_type_watchers ) || erase_from( event_transformation_watchers ) || erase_from( stat_watchers ) ) { @@ -212,9 +292,7 @@ void stats_tracker::transformed_set_changed( const string_idsecond ) { - watcher->event_added( new_element, *this ); - } + it->second.send_to_all( &event_multiset_watcher::event_added, new_element, *this ); } } @@ -223,9 +301,7 @@ void stats_tracker::transformed_set_changed( const string_idsecond ) { - watcher->events_reset( new_value, *this ); - } + it->second.send_to_all( &event_multiset_watcher::events_reset, new_value, *this ); } } @@ -234,9 +310,7 @@ void stats_tracker::stat_value_changed( const string_id &id, { auto it = stat_watchers.find( id ); if( it != stat_watchers.end() ) { - for( stat_watcher *watcher : it->second ) { - watcher->new_value( new_value, *this ); - } + it->second.send_to_all( &stat_watcher::new_value, new_value, *this ); } } @@ -262,14 +336,12 @@ void stats_tracker::clear() void stats_tracker::unwatch_all() { - auto unsub_all = [&]( auto & map_of_vectors ) { - for( auto const &p : map_of_vectors ) { - const auto &vector = p.second; - for( base_watcher *watcher : vector ) { - watcher->on_unsubscribe( this ); - } + auto unsub_all = [&]( auto & map_of_watcher_sets ) { + for( auto const &p : map_of_watcher_sets ) { + const auto &set = p.second; + set.send_to_all( &base_watcher::on_unsubscribe, this ); } - map_of_vectors.clear(); + map_of_watcher_sets.clear(); }; unsub_all( event_type_watchers ); unsub_all( event_transformation_watchers ); @@ -283,9 +355,7 @@ void stats_tracker::notify( const cata::event &e ) auto it = event_type_watchers.find( type ); if( it != event_type_watchers.end() ) { - for( event_multiset_watcher *watcher : it->second ) { - watcher->event_added( e, *this ); - } + it->second.send_to_all( &event_multiset_watcher::event_added, e, *this ); } if( e.type() == event_type::game_start ) { diff --git a/src/stats_tracker.h b/src/stats_tracker.h index 49123b05e4c85..4fe44744a8de4 100644 --- a/src/stats_tracker.h +++ b/src/stats_tracker.h @@ -2,7 +2,9 @@ #define CATA_SRC_STATS_TRACKER_H #include +#include #include +#include #include #include #include @@ -23,16 +25,33 @@ class stats_tracker; // The stats_tracker is intended to keep a summary of events that have occured. // For each event_type it stores an event_multiset. -// Within the event_tracker, counts are kept. The events are partitioned -// according to their data (an event::data_type object, which is a map of keys -// to values). +// Within the event_tracker, the events are partitioned according to their data +// (an event::data_type object, which is a map of keys to values). +// Within each partition, an event_summary is stored, which contains the first +// and last times such events were seen, and the number of them seen. // The stats_tracker can be queried in various ways to get summary statistics // about events that have occured. +struct event_summary { + event_summary(); + event_summary( int c, time_point f, time_point l ); + + int count; + time_point first; + time_point last; + + void add( const cata::event & ); + void add( const event_summary & ); + + void serialize( JsonOut & ) const; + void deserialize( JsonIn & ); +}; + class event_multiset { public: - using counts_type = std::unordered_map; + using summaries_type = + std::unordered_map; // Default constructor for deserialization deliberately uses invalid // type @@ -41,8 +60,8 @@ class event_multiset void set_type( event_type ); - const counts_type &counts() const { - return counts_; + const summaries_type &counts() const { + return summaries_; } // count returns the number of events matching given criteria that have @@ -65,15 +84,17 @@ class event_multiset int total( const std::string &field, const cata::event::data_type &criteria ) const; int minimum( const std::string &field ) const; int maximum( const std::string &field ) const; + cata::optional first() const; + cata::optional last() const; void add( const cata::event & ); - void add( const counts_type::value_type & ); + void add( const summaries_type::value_type & ); void serialize( JsonOut & ) const; void deserialize( JsonIn & ); private: event_type type_; - counts_type counts_; + summaries_type summaries_; }; class base_watcher @@ -104,6 +125,40 @@ class event_multiset_watcher : public base_watcher virtual void events_reset( const event_multiset &, stats_tracker & ) = 0; }; +template +class watcher_set +{ + static_assert( std::is_base_of::value, + "Watcher must be derived from base_watcher" ); + public: + void insert( Watcher *watcher ) { + watchers_.insert( watcher ); + } + + bool erase( base_watcher *watcher ) { + return watchers_.erase( watcher ); + } + + template + void send_to_all( void ( Class::*mem_fn )( FnArgs... ), Args &&... args ) const { + static_assert( std::is_base_of::value, + "Watcher must be derived from Class" ); + // Sending an event to a watcher can cause it to be erased, so we + // need to always ensure we have the next iterator prepared in + // advance. + auto current = watchers_.begin(); + + while( current != watchers_.end() ) { + auto next = current; + ++next; + ( static_cast( *current )->*mem_fn )( args... ); + current = next; + } + } + private: + std::set watchers_; +}; + class stats_tracker_state { public: @@ -146,10 +201,10 @@ class stats_tracker : public event_subscriber std::unordered_map data; - std::unordered_map> event_type_watchers; - std::unordered_map, std::vector> + std::unordered_map> event_type_watchers; + std::unordered_map, watcher_set> event_transformation_watchers; - std::unordered_map, std::vector> stat_watchers; + std::unordered_map, watcher_set> stat_watchers; std::unordered_map, std::unique_ptr> event_transformation_states; std::unordered_map, std::unique_ptr> diff --git a/src/stomach.cpp b/src/stomach.cpp index 884a70a767ae0..a3c31c9ecbb64 100644 --- a/src/stomach.cpp +++ b/src/stomach.cpp @@ -118,7 +118,7 @@ stomach_contents::stomach_contents( units::volume max_vol, bool is_stomach ) last_ate = calendar::before_time_starts; } -static std::string ml_to_string( units::volume vol ) +static std::string ml_to_string( const units::volume &vol ) { return to_string( units::to_milliliter( vol ) ) + "_ml"; } @@ -274,7 +274,7 @@ void stomach_contents::mod_nutr( int nutr ) mod_calories( -1 * std::round( nutr * 2500.0f / ( 12 * 24 ) ) ); } -void stomach_contents::mod_water( units::volume h2o ) +void stomach_contents::mod_water( const units::volume &h2o ) { if( h2o > 0_ml ) { water += h2o; @@ -286,7 +286,7 @@ void stomach_contents::mod_quench( int quench ) mod_water( 5_ml * quench ); } -void stomach_contents::mod_contents( units::volume vol ) +void stomach_contents::mod_contents( const units::volume &vol ) { if( -vol >= contents ) { contents = 0_ml; diff --git a/src/stomach.h b/src/stomach.h index 47878018c23a8..3a95c0f835f84 100644 --- a/src/stomach.h +++ b/src/stomach.h @@ -132,12 +132,12 @@ class stomach_contents void mod_nutr( int nutr ); // changes water amount in stomach // overflow draws from player thirst - void mod_water( units::volume h2o ); + void mod_water( const units::volume &h2o ); // changes water amount in stomach converted from quench value // TODO: Move to mL values of water void mod_quench( int quench ); // adds volume to your stomach - void mod_contents( units::volume vol ); + void mod_contents( const units::volume &vol ); // how long has it been since i ate? // only really relevant for player::stomach diff --git a/src/string_id.h b/src/string_id.h index 7eb3cb0373f66..f5d2c6b179d57 100644 --- a/src/string_id.h +++ b/src/string_id.h @@ -82,12 +82,6 @@ class string_id bool operator!=( const This &rhs ) const { return _id != rhs._id; } - /** - * The unusual comparator, compares the string id to char * - */ - bool operator==( const char *rhs ) const { - return _id == rhs; - } /** * Interface to the plain C-string of the id. This function mimics the std::string * object. Ids are often used in debug messages, where they are forwarded as C-strings diff --git a/src/string_id_null_ids.cpp b/src/string_id_null_ids.cpp index d64b2a2ef422c..85eadd9279391 100644 --- a/src/string_id_null_ids.cpp +++ b/src/string_id_null_ids.cpp @@ -18,6 +18,7 @@ MAKE_NULL_ID( material_type, "null", 0 ) MAKE_NULL_ID( overmap_land_use_code, "", 0 ) MAKE_NULL_ID( overmap_special, "", 0 ) MAKE_NULL_ID( overmap_connection, "", 0 ) +MAKE_NULL_ID( profession, "null", 0 ) MAKE_NULL_ID( map_extra, "", 0 ) MAKE_NULL_ID( Skill, "none" ) MAKE_NULL_ID( SkillDisplayType, "none" ) @@ -38,6 +39,7 @@ MAKE_NULL_ID( translation, "null" ) return id; \ } +MAKE_NULL_ID2( itype, "null" ) MAKE_NULL_ID2( mtype, "mon_null" ) MAKE_NULL_ID2( oter_t, "", 0 ) MAKE_NULL_ID2( oter_type_t, "", 0 ) diff --git a/src/string_input_popup.cpp b/src/string_input_popup.cpp index dc9e0384193c6..6bf4a2dac3990 100644 --- a/src/string_input_popup.cpp +++ b/src/string_input_popup.cpp @@ -146,8 +146,6 @@ void string_input_popup::show_history( utf8_wrapper &ret ) finished = true; } } while( !finished ); - werase( hmenu.window ); - wrefresh( hmenu.window ); } } @@ -273,7 +271,7 @@ void string_input_popup::draw( const utf8_wrapper &ret, const utf8_wrapper &edit mvwprintz( w, point( start_x_edit, _starty ), _cursor_color, "%s", edit.c_str() ); } - wrefresh( w ); + wnoutrefresh( w ); } void string_input_popup::query( const bool loop, const bool draw_only ) @@ -373,7 +371,7 @@ const std::string &string_input_popup::query_string( const bool loop, const bool const std::string action = ctxt->handle_input(); const input_event ev = ctxt->get_raw_input(); - ch = ev.type == CATA_INPUT_KEYBOARD ? ev.get_first_input() : 0; + ch = ev.type == input_event_t::keyboard ? ev.get_first_input() : 0; if( callbacks[ch] ) { if( callbacks[ch]() ) { diff --git a/src/submap.h b/src/submap.h index ad0e510647817..420a094f28dcf 100644 --- a/src/submap.h +++ b/src/submap.h @@ -18,8 +18,9 @@ #include "field.h" #include "game_constants.h" #include "item.h" -#include "type_id.h" +#include "mapgen.h" #include "point.h" +#include "type_id.h" class JsonIn; class JsonOut; @@ -38,11 +39,12 @@ struct spawn_point { int mission_id; bool friendly; std::string name; + spawn_data data; 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, - const std::string &N = "NONE" ) : + const std::string &N = "NONE", spawn_data SD = spawn_data() ) : pos( P ), count( C ), type( T ), faction_id( FAC ), - mission_id( MIS ), friendly( F ), name( N ) {} + mission_id( MIS ), friendly( F ), name( N ), data( SD ) {} }; template diff --git a/src/suffer.cpp b/src/suffer.cpp index f7d161aac34bf..762ea1d9d2779 100644 --- a/src/suffer.cpp +++ b/src/suffer.cpp @@ -103,6 +103,12 @@ static const efftype_id effect_valium( "valium" ); static const efftype_id effect_visuals( "visuals" ); static const efftype_id effect_winded( "winded" ); +static const itype_id itype_e_handcuffs( "e_handcuffs" ); +static const itype_id itype_inhaler( "inhaler" ); +static const itype_id itype_smoxygen_tank( "smoxygen_tank" ); +static const itype_id itype_oxygen_tank( "oxygen_tank" ); +static const itype_id itype_rad_badge( "rad_badge" ); + static const trait_id trait_ADDICTIVE( "ADDICTIVE" ); static const trait_id trait_ALBINO( "ALBINO" ); static const trait_id trait_ASTHMA( "ASTHMA" ); @@ -173,17 +179,17 @@ static float addiction_scaling( float at_min, float at_max, float add_lvl ) void Character::suffer_water_damage( const mutation_branch &mdata ) { - for( const body_part bp : all_body_parts ) { - const float wetness_percentage = static_cast( body_wetness[bp] ) / - drench_capacity[bp]; + for( const bodypart_id &bp : get_all_body_parts() ) { + const float wetness_percentage = static_cast( body_wetness[bp->token] ) / + drench_capacity[bp->token]; const int dmg = mdata.weakness_to_water * wetness_percentage; if( dmg > 0 ) { - apply_damage( nullptr, convert_bp( bp ).id(), dmg ); + apply_damage( nullptr, bp, dmg ); add_msg_player_or_npc( m_bad, _( "Your %s is damaged by the water." ), _( "'s %s is damaged by the water." ), body_part_name( bp ) ); - } else if( dmg < 0 && hp_cur[bp_to_hp( bp )] != hp_max[bp_to_hp( bp )] ) { - heal( bp, std::abs( dmg ) ); + } else if( dmg < 0 && hp_cur[bp_to_hp( bp->token )] != hp_max[bp_to_hp( bp->token )] ) { + heal( bp->token, std::abs( dmg ) ); add_msg_player_or_npc( m_good, _( "Your %s is healed by the water." ), _( "'s %s is healed by the water." ), body_part_name( bp ) ); @@ -226,7 +232,7 @@ void Character::suffer_mutation_power( const mutation_branch &mdata, if( mdata.fatigue ) { mod_fatigue( mdata.cost ); // Exhausted - if( get_fatigue() >= EXHAUSTED ) { + if( get_fatigue() >= fatigue_levels::EXHAUSTED ) { add_msg_if_player( m_warning, _( "You're too exhausted to keep your %s going." ), mdata.name() ); @@ -613,8 +619,8 @@ void Character::suffer_from_asthma( const int current_stim ) ( has_effect( effect_sleep ) ? 10 : 1 ) ) ) { return; } - bool auto_use = has_charges( "inhaler", 1 ) || has_charges( "oxygen_tank", 1 ) || - has_charges( "smoxygen_tank", 1 ); + bool auto_use = has_charges( itype_inhaler, 1 ) || has_charges( itype_oxygen_tank, 1 ) || + has_charges( itype_smoxygen_tank, 1 ); bool oxygenator = has_bionic( bio_gills ) && get_power_level() >= 3_kJ; if( underwater ) { oxygen = oxygen / 2; @@ -628,29 +634,29 @@ void Character::suffer_from_asthma( const int current_stim ) inventory map_inv; map_inv.form_from_map( g->u.pos(), 2, &g->u ); // check if an inhaler is somewhere near - bool nearby_use = auto_use || oxygenator || map_inv.has_charges( "inhaler", 1 ) || - map_inv.has_charges( "oxygen_tank", 1 ) || - map_inv.has_charges( "smoxygen_tank", 1 ); + bool nearby_use = auto_use || oxygenator || map_inv.has_charges( itype_inhaler, 1 ) || + map_inv.has_charges( itype_oxygen_tank, 1 ) || + map_inv.has_charges( itype_smoxygen_tank, 1 ); // check if character has an oxygenator first if( oxygenator ) { mod_power_level( -3_kJ ); add_msg_if_player( m_info, _( "You use your Oxygenator to clear it up, " "then go back to sleep." ) ); } else if( auto_use ) { - if( use_charges_if_avail( "inhaler", 1 ) ) { + if( use_charges_if_avail( itype_inhaler, 1 ) ) { add_msg_if_player( m_info, _( "You use your inhaler and go back to sleep." ) ); - } else if( use_charges_if_avail( "oxygen_tank", 1 ) || - use_charges_if_avail( "smoxygen_tank", 1 ) ) { + } else if( use_charges_if_avail( itype_oxygen_tank, 1 ) || + use_charges_if_avail( itype_smoxygen_tank, 1 ) ) { add_msg_if_player( m_info, _( "You take a deep breath from your oxygen tank " "and go back to sleep." ) ); } } else if( nearby_use ) { // create new variable to resolve a reference issue int amount = 1; - if( !g->m.use_charges( g->u.pos(), 2, "inhaler", amount ).empty() ) { + if( !g->m.use_charges( g->u.pos(), 2, itype_inhaler, amount ).empty() ) { add_msg_if_player( m_info, _( "You use your inhaler and go back to sleep." ) ); - } else if( !g->m.use_charges( g->u.pos(), 2, "oxygen_tank", amount ).empty() || - !g->m.use_charges( g->u.pos(), 2, "smoxygen_tank", amount ).empty() ) { + } else if( !g->m.use_charges( g->u.pos(), 2, itype_oxygen_tank, amount ).empty() || + !g->m.use_charges( g->u.pos(), 2, itype_smoxygen_tank, amount ).empty() ) { add_msg_if_player( m_info, _( "You take a deep breath from your oxygen tank " "and go back to sleep." ) ); } @@ -667,9 +673,9 @@ void Character::suffer_from_asthma( const int current_stim ) } } else if( auto_use ) { int charges = 0; - if( use_charges_if_avail( "inhaler", 1 ) ) { + if( use_charges_if_avail( itype_inhaler, 1 ) ) { moves -= 40; - charges = charges_of( "inhaler" ); + charges = charges_of( itype_inhaler ); if( charges == 0 ) { add_msg_if_player( m_bad, _( "You use your last inhaler charge." ) ); } else { @@ -679,10 +685,10 @@ void Character::suffer_from_asthma( const int current_stim ) "only %d charges left.", charges ), charges ); } - } else if( use_charges_if_avail( "oxygen_tank", 1 ) || - use_charges_if_avail( "smoxygen_tank", 1 ) ) { + } else if( use_charges_if_avail( itype_oxygen_tank, 1 ) || + use_charges_if_avail( itype_smoxygen_tank, 1 ) ) { moves -= 500; // synched with use action - charges = charges_of( "oxygen_tank" ) + charges_of( "smoxygen_tank" ); + charges = charges_of( itype_oxygen_tank ) + charges_of( itype_smoxygen_tank ); if( charges == 0 ) { add_msg_if_player( m_bad, _( "You breathe in last bit of oxygen " "from the tank." ) ); @@ -803,28 +809,28 @@ void Character::suffer_from_albinism() } //calculate total coverage of skin body_part_set affected_bp { { - bp_leg_l, bp_leg_r, bp_torso, bp_head, bp_mouth, bp_arm_l, - bp_arm_r, bp_foot_l, bp_foot_r, bp_hand_l, bp_hand_r + bodypart_str_id( "leg_l" ), bodypart_str_id( "leg_r" ), bodypart_str_id( "torso" ), bodypart_str_id( "head" ), bodypart_str_id( "mouth" ), bodypart_str_id( "arm_l" ), + bodypart_str_id( "arm_r" ), bodypart_str_id( "foot_l" ), bodypart_str_id( "foot_r" ), bodypart_str_id( "hand_l" ), bodypart_str_id( "hand_r" ) } }; //pecentage of "open skin" by body part std::map open_percent; //initialize coverage - for( const body_part &bp : all_body_parts ) { - if( affected_bp.test( bp ) ) { - open_percent[bp] = 1.0; + for( const bodypart_id &bp : get_all_body_parts() ) { + if( affected_bp.test( bp.id() ) ) { + open_percent[bp->token] = 1.0; } } //calculate coverage for every body part for( const item &i : worn ) { body_part_set covered = i.get_covered_body_parts(); - for( const body_part &bp : all_body_parts ) { - if( !affected_bp.test( bp ) || !covered.test( bp ) ) { + for( const bodypart_id &bp : get_all_body_parts() ) { + if( !affected_bp.test( bp.id() ) || !covered.test( bp.id() ) ) { continue; } //percent of "not covered skin" float p = 1.0 - i.get_coverage() / 100.0; - open_percent[bp] = open_percent[bp] * p; + open_percent[bp->token] = open_percent[bp->token] * p; } } @@ -856,7 +862,7 @@ void Character::suffer_from_albinism() ++parts_count; } } - std::string bp_name = body_part_name( max_affected_bp, parts_count ); + std::string bp_name = body_part_name( convert_bp( max_affected_bp ).id(), parts_count ); if( count_affected_bp > parts_count ) { bp_name = string_format( _( "%s and other body parts" ), bp_name ); } @@ -1165,7 +1171,7 @@ void Character::suffer_from_bad_bionics() moves -= 150; mod_power_level( -10_kJ ); - if( weapon.typeId() == "e_handcuffs" && weapon.charges > 0 ) { + if( weapon.typeId() == itype_e_handcuffs && weapon.charges > 0 ) { weapon.charges -= rng( 1, 3 ) * 50; if( weapon.charges < 1 ) { weapon.charges = 1; @@ -1512,7 +1518,7 @@ bool Character::irradiate( float rads, bool bypass ) // Apply rads to any radiation badges. for( item *const it : inv_dump() ) { - if( it->typeId() != "rad_badge" ) { + if( it->typeId() != itype_rad_badge ) { continue; } @@ -1589,7 +1595,7 @@ void Character::mend( int rate_multiplier ) // Bed rest speeds up mending if( has_effect( effect_sleep ) ) { healing_factor *= 4.0; - } else if( get_fatigue() > DEAD_TIRED ) { + } else if( get_fatigue() > fatigue_levels::DEAD_TIRED ) { // but being dead tired does not... healing_factor *= 0.75; } else { @@ -1628,15 +1634,15 @@ void Character::mend( int rate_multiplier ) continue; } - body_part part = hp_to_bp( static_cast( i ) ); - if( needs_splint && !worn_with_flag( "SPLINT", convert_bp( part ).id() ) ) { + const bodypart_id &part = convert_bp( hp_to_bp( static_cast( i ) ) ).id(); + if( needs_splint && !worn_with_flag( "SPLINT", part ) ) { continue; } const time_duration dur_inc = 1_turns * roll_remainder( rate_multiplier * healing_factor ); - auto &eff = get_effect( effect_mending, part ); + auto &eff = get_effect( effect_mending, part->token ); if( eff.is_null() ) { - add_effect( effect_mending, dur_inc, part, true ); + add_effect( effect_mending, dur_inc, part->token, true ); continue; } @@ -1644,8 +1650,8 @@ void Character::mend( int rate_multiplier ) if( eff.get_duration() >= eff.get_max_duration() ) { hp_cur[i] = 1; - remove_effect( effect_mending, part ); - g->events().send( getID(), part ); + remove_effect( effect_mending, part->token ); + g->events().send( getID(), part->token ); //~ %s is bodypart add_msg_if_player( m_good, _( "Your %s has started to mend!" ), body_part_name( part ) ); @@ -1715,11 +1721,11 @@ void Character::drench( int saturation, const body_part_set &flags, bool ignore_ } // Make the body wet - for( const body_part bp : all_body_parts ) { + for( const bodypart_id &bp : get_all_body_parts() ) { // Different body parts have different size, they can only store so much water int bp_wetness_max = 0; - if( flags.test( bp ) ) { - bp_wetness_max = drench_capacity[bp]; + if( flags.test( bp.id() ) ) { + bp_wetness_max = drench_capacity[bp->token]; } if( bp_wetness_max == 0 ) { @@ -1730,8 +1736,8 @@ void Character::drench( int saturation, const body_part_set &flags, bool ignore_ int wetness_increment = ignore_waterproof ? 100 : 2; // Respect maximums const int wetness_max = std::min( source_wet_max, bp_wetness_max ); - if( body_wetness[bp] < wetness_max ) { - body_wetness[bp] = std::min( wetness_max, body_wetness[bp] + wetness_increment ); + if( body_wetness[bp->token] < wetness_max ) { + body_wetness[bp->token] = std::min( wetness_max, body_wetness[bp->token] + wetness_increment ); } } @@ -1769,14 +1775,14 @@ void Character::apply_wetness_morale( int temperature ) int total_morale = 0; const auto wet_friendliness = exclusive_flag_coverage( "WATER_FRIENDLY" ); - for( const body_part bp : all_body_parts ) { + for( const bodypart_id &bp : get_all_body_parts() ) { // Sum of body wetness can go up to 103 - const int part_drench = body_wetness[bp]; + const int part_drench = body_wetness[bp->token]; if( part_drench == 0 ) { continue; } - const auto &part_arr = mut_drench[bp]; + const auto &part_arr = mut_drench[bp->token]; const int part_ignored = part_arr[WT_IGNORED]; const int part_neutral = part_arr[WT_NEUTRAL]; const int part_good = part_arr[WT_GOOD]; @@ -1786,7 +1792,7 @@ void Character::apply_wetness_morale( int temperature ) } int bp_morale = 0; - const bool is_friendly = wet_friendliness.test( bp ); + const bool is_friendly = wet_friendliness.test( bp.id() ); const int effective_drench = part_drench - part_ignored; if( is_friendly ) { // Using entire bonus from mutations and then some "human" bonus @@ -1803,7 +1809,7 @@ void Character::apply_wetness_morale( int temperature ) // Clamp to [COLD,HOT] and cast to double const double part_temperature = - std::min( BODYTEMP_HOT, std::max( BODYTEMP_COLD, temp_cur[bp] ) ); + std::min( BODYTEMP_HOT, std::max( BODYTEMP_COLD, temp_cur[bp->token] ) ); // 0.0 at COLD, 1.0 at HOT const double part_mod = ( part_temperature - BODYTEMP_COLD ) / ( BODYTEMP_HOT - BODYTEMP_COLD ); diff --git a/src/text_snippets.cpp b/src/text_snippets.cpp index f35937dababc6..d0f6464d2cd8a 100644 --- a/src/text_snippets.cpp +++ b/src/text_snippets.cpp @@ -158,9 +158,12 @@ cata::optional snippet_library::random_from_category( const std::st return cata::nullopt; } const size_t count = it->second.ids.size() + it->second.no_id.size(); - // This engine is deterministcally seeded, so acceptable. + // uniform_int_distribution always returns zero when the random engine is + // cata_default_random_engine aka std::minstd_rand0 and the seed is small, + // so std::mt19937 is used instead. This engine is deterministcally seeded, + // so acceptable. // NOLINTNEXTLINE(cata-determinism) - cata_default_random_engine generator( seed ); + std::mt19937 generator( seed ); std::uniform_int_distribution dis( 0, count - 1 ); const size_t index = dis( generator ); if( index < it->second.ids.size() ) { diff --git a/src/text_style_check.h b/src/text_style_check.h index 2d91207843f8a..fa70bcf08e8b9 100644 --- a/src/text_style_check.h +++ b/src/text_style_check.h @@ -7,18 +7,18 @@ #include #include -enum class text_style_fix { +enum class text_style_fix : int { removal, insertion, replacement }; -enum class fix_end_of_string_spaces { +enum class fix_end_of_string_spaces : int { no, yes }; -enum class escape_unicode { +enum class escape_unicode : int { no, yes }; diff --git a/src/tileray.cpp b/src/tileray.cpp index b5724b2656188..cab50875ec923 100644 --- a/src/tileray.cpp +++ b/src/tileray.cpp @@ -9,9 +9,7 @@ static const int sx[4] = { 1, -1, -1, 1 }; static const int sy[4] = { 1, 1, -1, -1 }; -tileray::tileray(): leftover( 0 ), direction( 0 ), steps( 0 ), infinite( false ) -{ -} +tileray::tileray() = default; tileray::tileray( const point &ad ) { diff --git a/src/timed_event.cpp b/src/timed_event.cpp index ae43c35299d2e..150c26b49d51e 100644 --- a/src/timed_event.cpp +++ b/src/timed_event.cpp @@ -27,6 +27,8 @@ #include "translations.h" #include "type_id.h" +static const itype_id itype_petrified_eye( "petrified_eye" ); + static const mtype_id mon_amigara_horror( "mon_amigara_horror" ); static const mtype_id mon_copbot( "mon_copbot" ); static const mtype_id mon_dark_wyrm( "mon_dark_wyrm" ); @@ -79,7 +81,7 @@ void timed_event::actualize() } } // You could drop the flag, you know. - if( g->u.has_amount( "petrified_eye", 1 ) ) { + if( g->u.has_amount( itype_petrified_eye, 1 ) ) { sounds::sound( g->u.pos(), 60, sounds::sound_t::alert, _( "a tortured scream!" ), false, "shout", "scream_tortured" ); if( !g->u.is_deaf() ) { diff --git a/src/translations.cpp b/src/translations.cpp index b48f2dd6af4a6..94b704d0f9a42 100644 --- a/src/translations.cpp +++ b/src/translations.cpp @@ -153,8 +153,6 @@ void select_language() return lang.first.empty() || lang.second.empty(); } ), languages.end() ); - wrefresh( catacurses::stdscr ); - uilist sm; sm.allow_cancel = false; sm.text = _( "Select your language" ); diff --git a/src/trap.cpp b/src/trap.cpp index 4c6cbfa5087c1..1876e035b224b 100644 --- a/src/trap.cpp +++ b/src/trap.cpp @@ -128,20 +128,20 @@ void trap::load( const JsonObject &jo, const std::string & ) optional( jo, was_loaded, "spell_data", spell_data ); assign( jo, "trigger_weight", trigger_weight ); for( const JsonValue entry : jo.get_array( "drops" ) ) { - std::string item_type; + itype_id item_type; int quantity = 0; int charges = 0; if( entry.test_object() ) { JsonObject jc = entry.get_object(); - item_type = jc.get_string( "item" ); + jc.read( "item", item_type, true ); quantity = jc.get_int( "quantity", 1 ); charges = jc.get_int( "charges", 1 ); } else { - item_type = entry.get_string(); + entry.read( item_type, true ); quantity = 1; charges = 1; } - if( !item_type.empty() && quantity > 0 && charges > 0 ) { + if( !item_type.is_empty() && quantity > 0 && charges > 0 ) { components.emplace_back( std::make_tuple( item_type, quantity, charges ) ); } } @@ -162,9 +162,10 @@ void trap::load( const JsonObject &jo, const std::string & ) for( const JsonValue entry : jv.get_array( "spawn_items" ) ) { if( entry.test_object() ) { JsonObject joitm = entry.get_object(); - vehicle_data.spawn_items.emplace_back( joitm.get_string( "id" ), joitm.get_float( "chance" ) ); + vehicle_data.spawn_items.emplace_back( + itype_id( joitm.get_string( "id" ) ), joitm.get_float( "chance" ) ); } else { - vehicle_data.spawn_items.emplace_back( entry.get_string(), 1.0 ); + vehicle_data.spawn_items.emplace_back( itype_id( entry.get_string() ), 1.0 ); } } } @@ -261,7 +262,7 @@ bool trap::is_funnel() const void trap::on_disarmed( map &m, const tripoint &p ) const { for( auto &i : components ) { - const std::string &item_type = std::get<0>( i ); + const itype_id &item_type = std::get<0>( i ); const int quantity = std::get<1>( i ); const int charges = std::get<2>( i ); m.spawn_item( p.xy(), item_type, quantity, charges ); @@ -321,9 +322,9 @@ void trap::check_consistency() { for( const auto &t : trap_factory.get_all() ) { for( auto &i : t.components ) { - const std::string &item_type = std::get<0>( i ); + const itype_id &item_type = std::get<0>( i ); if( !item::type_is_defined( item_type ) ) { - debugmsg( "trap %s has unknown item as component %s", t.id.c_str(), item_type.c_str() ); + debugmsg( "trap %s has unknown item as component %s", t.id.str(), item_type.str() ); } } } diff --git a/src/trap.h b/src/trap.h index 3d7691739f5f8..bbc8cafd08137 100644 --- a/src/trap.h +++ b/src/trap.h @@ -66,8 +66,6 @@ bool cast_spell( const tripoint &p, Creature *critter, item * ); } // namespace trapfunc struct vehicle_handle_trap_data { - using itype_id = std::string; - bool remove_trap = false; bool do_explosion = false; bool is_falling = false; @@ -86,7 +84,6 @@ struct vehicle_handle_trap_data { using trap_function = std::function; struct trap { - using itype_id = std::string; trap_str_id id; trap_id loadid; @@ -115,7 +112,7 @@ struct trap { units::mass trigger_weight = units::mass( -1, units::mass::unit_type{} ); int funnel_radius_mm = 0; // For disassembly? - std::vector> components; + std::vector> components; public: // data required for trapfunc::spell() fake_spell spell_data; diff --git a/src/trapfunc.cpp b/src/trapfunc.cpp index bcb5ace97dce8..793b308cef5f4 100644 --- a/src/trapfunc.cpp +++ b/src/trapfunc.cpp @@ -38,7 +38,7 @@ static const skill_id skill_throw( "throw" ); -static const species_id ROBOT( "ROBOT" ); +static const species_id species_ROBOT( "ROBOT" ); static const bionic_id bio_shock_absorber( "bio_shock_absorber" ); @@ -50,6 +50,10 @@ static const efftype_id effect_ridden( "ridden" ); static const efftype_id effect_slimed( "slimed" ); static const efftype_id effect_tetanus( "tetanus" ); +static const itype_id itype_bullwhip( "bullwhip" ); +static const itype_id itype_grapnel( "grapnel" ); +static const itype_id itype_rope_30( "rope_30" ); + static const trait_id trait_INFIMMUNE( "INFIMMUNE" ); static const trait_id trait_INFRESIST( "INFRESIST" ); static const trait_id trait_WINGS_BIRD( "WINGS_BIRD" ); @@ -83,7 +87,7 @@ bool trapfunc::none( const tripoint &, Creature *, item * ) bool trapfunc::bubble( const tripoint &p, Creature *c, item * ) { // tiny animals don't trigger bubble wrap - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && c->get_size() == creature_size::tiny ) { return false; } if( c != nullptr ) { @@ -102,7 +106,7 @@ bool trapfunc::glass( const tripoint &p, Creature *c, item * ) { if( c != nullptr ) { // tiny animals and hallucinations don't trigger glass trap - if( c->get_size() == MS_TINY || c->is_hallucination() ) { + if( c->get_size() == creature_size::tiny || c->is_hallucination() ) { return false; } c->add_msg_player_or_npc( m_warning, _( "You step on some glass!" ), @@ -139,7 +143,7 @@ bool trapfunc::cot( const tripoint &, Creature *c, item * ) bool trapfunc::beartrap( const tripoint &p, Creature *c, item * ) { // tiny animals don't trigger bear traps - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && c->get_size() == creature_size::tiny ) { return false; } sounds::sound( p, 8, sounds::sound_t::combat, _( "SNAP!" ), false, "trap", "bear_trap" ); @@ -183,7 +187,7 @@ bool trapfunc::board( const tripoint &, Creature *c, item * ) return false; } // tiny animals don't trigger spiked boards, they can squeeze between the nails - if( c->get_size() == MS_TINY ) { + if( c->get_size() == creature_size::tiny ) { return false; } c->add_msg_player_or_npc( m_bad, _( "You step on a spiked board!" ), @@ -219,7 +223,7 @@ bool trapfunc::caltrops( const tripoint &, Creature *c, item * ) return false; } // tiny animals don't trigger caltrops, they can squeeze between them - if( c->get_size() == MS_TINY ) { + if( c->get_size() == creature_size::tiny ) { return false; } c->add_msg_player_or_npc( m_bad, _( "You step on a sharp metal caltrop!" ), @@ -248,7 +252,7 @@ bool trapfunc::caltrops_glass( const tripoint &p, Creature *c, item * ) return false; } // tiny animals don't trigger caltrops, they can squeeze between them - if( c->get_size() == MS_TINY || c->is_hallucination() ) { + if( c->get_size() == creature_size::tiny || c->is_hallucination() ) { return false; } c->add_msg_player_or_npc( m_bad, _( "You step on a sharp glass caltrop!" ), @@ -278,7 +282,7 @@ bool trapfunc::tripwire( const tripoint &p, Creature *c, item * ) return false; } // tiny animals don't trigger tripwires, they just squeeze under it - if( c->get_size() == MS_TINY ) { + if( c->get_size() == creature_size::tiny ) { return false; } c->add_msg_player_or_npc( m_bad, _( "You trip over a tripwire!" ), @@ -375,7 +379,7 @@ bool trapfunc::crossbow( const tripoint &p, Creature *c, item * ) break; } //~ %s is bodypart - n->add_msg_if_player( m_bad, _( "Your %s is hit!" ), body_part_name( hit->token ) ); + n->add_msg_if_player( m_bad, _( "Your %s is hit!" ), body_part_name( hit ) ); c->deal_damage( nullptr, hit, damage_instance( DT_CUT, rng( 20, 30 ) ) ); add_bolt = !one_in( 10 ); } else { @@ -387,19 +391,19 @@ bool trapfunc::crossbow( const tripoint &p, Creature *c, item * ) int chance = 0; // adapted from shotgun code - chance of getting hit depends on size switch( z->type->size ) { - case MS_TINY: + case creature_size::tiny: chance = 50; break; - case MS_SMALL: + case creature_size::small: chance = 8; break; - case MS_MEDIUM: + case creature_size::medium: chance = 6; break; - case MS_LARGE: + case creature_size::large: chance = 4; break; - case MS_HUGE: + case creature_size::huge: chance = 1; break; } @@ -475,7 +479,7 @@ bool trapfunc::shotgun( const tripoint &p, Creature *c, item * ) break; } //~ %s is bodypart - n->add_msg_if_player( m_bad, _( "Your %s is hit!" ), body_part_name( hit->token ) ); + n->add_msg_if_player( m_bad, _( "Your %s is hit!" ), body_part_name( hit ) ); c->deal_damage( nullptr, hit, damage_instance( DT_BULLET, rng( 40 * shots, 60 * shots ) ) ); } else { n->add_msg_player_or_npc( m_neutral, _( "You dodge the shot!" ), @@ -485,19 +489,19 @@ bool trapfunc::shotgun( const tripoint &p, Creature *c, item * ) bool seen = g->u.sees( *z ); int chance = 0; switch( z->type->size ) { - case MS_TINY: + case creature_size::tiny: chance = 100; break; - case MS_SMALL: + case creature_size::small: chance = 16; break; - case MS_MEDIUM: + case creature_size::medium: chance = 12; break; - case MS_LARGE: + case creature_size::large: chance = 8; break; - case MS_HUGE: + case creature_size::huge: chance = 2; break; } @@ -557,7 +561,7 @@ bool trapfunc::snare_light( const tripoint &p, Creature *c, item * ) // Actual effects c->add_effect( effect_lightsnare, 1_turns, hit->token, true ); monster *z = dynamic_cast( c ); - if( z != nullptr && z->type->size == MS_TINY ) { + if( z != nullptr && z->type->size == creature_size::tiny ) { z->deal_damage( nullptr, hit, damage_instance( DT_BASH, 10 ) ); } c->check_dead_state(); @@ -578,7 +582,7 @@ bool trapfunc::snare_heavy( const tripoint &p, Creature *c, item * ) } //~ %s is bodypart name in accusative. c->add_msg_player_or_npc( m_bad, _( "A snare closes on your %s." ), - _( "A snare closes on s %s." ), body_part_name_accusative( hit->token ) ); + _( "A snare closes on s %s." ), body_part_name_accusative( hit ) ); // Actual effects c->add_effect( effect_heavysnare, 1_turns, hit->token, true ); @@ -591,11 +595,11 @@ bool trapfunc::snare_heavy( const tripoint &p, Creature *c, item * ) } else if( z != nullptr ) { int damage; switch( z->type->size ) { - case MS_TINY: - case MS_SMALL: + case creature_size::tiny: + case creature_size::small: damage = 20; break; - case MS_MEDIUM: + case creature_size::medium: damage = 10; break; default: @@ -610,7 +614,7 @@ bool trapfunc::snare_heavy( const tripoint &p, Creature *c, item * ) bool trapfunc::landmine( const tripoint &p, Creature *c, item * ) { // tiny animals are too light to trigger land mines - if( c != nullptr && c->get_size() == MS_TINY ) { + if( c != nullptr && c->get_size() == creature_size::tiny ) { return false; } if( c != nullptr ) { @@ -679,7 +683,7 @@ bool trapfunc::goo( const tripoint &p, Creature *c, item * ) if( z->type->id != mon_blob ) { z->set_speed_base( z->get_speed_base() - 15 ); //All monsters that aren't blobs or robots transform into a blob - if( !z->type->in_species( ROBOT ) ) { + if( !z->type->in_species( species_ROBOT ) ) { z->poly( mon_blob ); z->set_hp( z->get_speed() ); } @@ -700,7 +704,7 @@ bool trapfunc::dissector( const tripoint &p, Creature *c, item * ) } monster *z = dynamic_cast( c ); if( z != nullptr ) { - if( z->type->in_species( ROBOT ) ) { + if( z->type->in_species( species_ROBOT ) ) { //The monster is a robot. So the dissector should not try to dissect the monsters flesh. //Dissector error sound. sounds::sound( p, 4, sounds::sound_t::electronic_speech, @@ -756,7 +760,7 @@ bool trapfunc::pit( const tripoint &p, Creature *c, item * ) return false; } // tiny animals aren't hurt by falling into pits - if( c->get_size() == MS_TINY ) { + if( c->get_size() == creature_size::tiny ) { return false; } const float eff = pit_effectiveness( p ); @@ -803,7 +807,7 @@ bool trapfunc::pit_spikes( const tripoint &p, Creature *c, item * ) return false; } // tiny animals aren't hurt by falling into spiked pits - if( c->get_size() == MS_TINY ) { + if( c->get_size() == creature_size::tiny ) { return false; } c->add_msg_player_or_npc( m_bad, _( "You fall in a spiked pit!" ), @@ -848,7 +852,7 @@ bool trapfunc::pit_spikes( const tripoint &p, Creature *c, item * ) break; } n->add_msg_if_player( m_bad, _( "The spikes impale your %s!" ), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); n->deal_damage( nullptr, hit, damage_instance( DT_CUT, damage ) ); if( ( n->has_trait( trait_INFRESIST ) ) && ( one_in( 256 ) ) ) { n->add_effect( effect_tetanus, 1_turns, num_bp, true ); @@ -886,7 +890,7 @@ bool trapfunc::pit_glass( const tripoint &p, Creature *c, item * ) return false; } // tiny animals aren't hurt by falling into glass pits - if( c->get_size() == MS_TINY ) { + if( c->get_size() == creature_size::tiny ) { return false; } c->add_msg_player_or_npc( m_bad, _( "You fall in a pit filled with glass shards!" ), @@ -935,7 +939,7 @@ bool trapfunc::pit_glass( const tripoint &p, Creature *c, item * ) break; } n->add_msg_if_player( m_bad, _( "The glass shards slash your %s!" ), - body_part_name_accusative( hit->token ) ); + body_part_name_accusative( hit ) ); n->deal_damage( nullptr, hit, damage_instance( DT_CUT, damage ) ); if( ( n->has_trait( trait_INFRESIST ) ) && ( one_in( 256 ) ) ) { n->add_effect( effect_tetanus, 1_turns, num_bp, true ); @@ -993,7 +997,7 @@ bool trapfunc::lava( const tripoint &p, Creature *c, item * ) if( z->made_of( material_id( "veggy" ) ) ) { dam = 80; } - if( z->made_of( LIQUID ) || z->made_of_any( Creature::cmat_flammable ) ) { + if( z->made_of( phase_id::LIQUID ) || z->made_of_any( Creature::cmat_flammable ) ) { dam = 200; } if( z->made_of( material_id( "stone" ) ) ) { @@ -1016,7 +1020,7 @@ bool trapfunc::portal( const tripoint &p, Creature *c, item *i ) } // Don't ask NPCs - they always want to do the first thing that comes to their minds -static bool query_for_item( const player *pl, const std::string &itemname, const char *que ) +static bool query_for_item( const player *pl, const itype_id &itemname, const char *que ) { return pl->has_amount( itemname, 1 ) && ( !pl->is_player() || query_yn( que ) ); } @@ -1028,7 +1032,7 @@ static tripoint random_neighbor( tripoint center ) return center; } -static bool sinkhole_safety_roll( player *p, const std::string &itemname, const int diff ) +static bool sinkhole_safety_roll( player *p, const itype_id &itemname, const int diff ) { ///\EFFECT_STR increases chance to attach grapnel, bullwhip, or rope when falling into a sinkhole @@ -1070,7 +1074,7 @@ static bool sinkhole_safety_roll( player *p, const std::string &itemname, const bool trapfunc::sinkhole( const tripoint &p, Creature *c, item *i ) { // tiny creatures don't trigger the sinkhole to collapse - if( c == nullptr || c->get_size() == MS_TINY ) { + if( c == nullptr || c->get_size() == creature_size::tiny ) { return false; } monster *z = dynamic_cast( c ); @@ -1082,15 +1086,15 @@ bool trapfunc::sinkhole( const tripoint &p, Creature *c, item *i ) } } else if( pl != nullptr ) { bool success = false; - if( query_for_item( pl, "grapnel", + if( query_for_item( pl, itype_grapnel, _( "You step into a sinkhole! Throw your grappling hook out to try to catch something?" ) ) ) { - success = sinkhole_safety_roll( pl, "grapnel", 6 ); - } else if( query_for_item( pl, "bullwhip", + success = sinkhole_safety_roll( pl, itype_grapnel, 6 ); + } else if( query_for_item( pl, itype_bullwhip, _( "You step into a sinkhole! Throw your whip out to try and snag something?" ) ) ) { - success = sinkhole_safety_roll( pl, "bullwhip", 8 ); - } else if( query_for_item( pl, "rope_30", + success = sinkhole_safety_roll( pl, itype_bullwhip, 8 ); + } else if( query_for_item( pl, itype_rope_30, _( "You step into a sinkhole! Throw your rope out to try to catch something?" ) ) ) { - success = sinkhole_safety_roll( pl, "rope_30", 12 ); + success = sinkhole_safety_roll( pl, itype_rope_30, 12 ); } pl->add_msg_player_or_npc( m_warning, _( "The sinkhole collapses!" ), diff --git a/src/turret.cpp b/src/turret.cpp index 43cbb93eed626..8ecd3c4463af7 100644 --- a/src/turret.cpp +++ b/src/turret.cpp @@ -102,12 +102,12 @@ int turret_data::ammo_remaining() const return part->base.ammo_remaining(); } -int turret_data::ammo_capacity() const +int turret_data::ammo_capacity( const ammotype &ammo ) const { if( !veh || !part || part->info().has_flag( "USE_TANKS" ) ) { return 0; } - return part->base.ammo_capacity(); + return part->base.ammo_capacity( ammo ); } const itype *turret_data::ammo_data() const @@ -116,7 +116,7 @@ const itype *turret_data::ammo_data() const return nullptr; } if( part->info().has_flag( "USE_TANKS" ) ) { - return ammo_current() != "null" ? item::find_type( ammo_current() ) : nullptr; + return !ammo_current().is_null() ? item::find_type( ammo_current() ) : nullptr; } return part->base.ammo_data(); } @@ -133,7 +133,7 @@ itype_id turret_data::ammo_current() const if( opts.count( part->base.ammo_default() ) ) { return part->base.ammo_default(); } - return opts.empty() ? "null" : *opts.begin(); + return opts.empty() ? itype_id::NULL_ID() : *opts.begin(); } std::set turret_data::ammo_options() const @@ -145,7 +145,7 @@ std::set turret_data::ammo_options() const } if( !part->info().has_flag( "USE_TANKS" ) ) { - if( part->base.ammo_current() != "null" ) { + if( !part->base.ammo_current().is_null() ) { opts.insert( part->base.ammo_current() ); } @@ -216,7 +216,11 @@ bool turret_data::can_reload() const // always allow changing of magazines return true; } - return part->base.ammo_remaining() < part->base.ammo_capacity(); + if( part->base.ammo_remaining() == 0 ) { + return true; + } + return part->base.ammo_remaining() < + part->base.ammo_capacity( part->base.ammo_data()->ammo->type ); } bool turret_data::can_unload() const diff --git a/src/type_id.h b/src/type_id.h index 3e9b86584e029..07bb86ee9c559 100644 --- a/src/type_id.h +++ b/src/type_id.h @@ -5,6 +5,9 @@ #include "int_id.h" #include "string_id.h" +class achievement; +using achievement_id = string_id; + class activity_type; using activity_id = string_id; @@ -66,6 +69,9 @@ using harvest_id = string_id; class item_category; using item_category_id = string_id; +struct itype; +using itype_id = string_id; + class ma_buff; using mabuff_id = string_id; @@ -107,6 +113,9 @@ struct oter_t; using oter_id = int_id; using oter_str_id = string_id; +class profession; +using profession_id = string_id; + class recipe; using recipe_id = string_id; @@ -128,6 +137,9 @@ using spell_id = string_id; class start_location; using start_location_id = string_id; +class move_mode; +using move_mode_id = string_id; + struct ter_t; using ter_id = int_id; using ter_str_id = string_id; diff --git a/src/ui.cpp b/src/ui.cpp index b27961e257276..41eed88461d57 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -121,46 +121,6 @@ uilist::uilist( const std::string &msg, std::initializer_list query(); } -uilist::uilist( const point &start, int width, const std::string &msg, - const std::vector &opts ) -{ - init(); - w_x = start.x; - w_y = start.y; - w_width = width; - text = msg; - entries = opts; - query(); -} - -uilist::uilist( const point &start, int width, const std::string &msg, - const std::vector &opts ) -{ - init(); - w_x = start.x; - w_y = start.y; - w_width = width; - text = msg; - for( const auto &opt : opts ) { - entries.emplace_back( opt ); - } - query(); -} - -uilist::uilist( const point &start, int width, const std::string &msg, - std::initializer_list opts ) -{ - init(); - w_x = start.x; - w_y = start.y; - w_width = width; - text = msg; - for( auto opt : opts ) { - entries.emplace_back( opt ); - } - query(); -} - uilist::~uilist() { shared_ptr_fast current_ui = ui.lock(); @@ -263,7 +223,7 @@ void uilist::filterlist() fentries.push_back( i ); if( i == selected && ( hilight_disabled || entries[i].enabled ) ) { fselected = f; - } else if( i > selected && fselected == -1 ) { + } else if( i > selected && fselected == -1 && ( hilight_disabled || entries[i].enabled ) ) { // Past the previously selected entry, which has been filtered out, // choose another nearby entry instead. fselected = f; @@ -295,24 +255,30 @@ void uilist::filterlist() void uilist::inputfilter() { + input_context ctxt( input_category ); + ctxt.register_updown(); + ctxt.register_action( "PAGE_UP" ); + ctxt.register_action( "PAGE_DOWN" ); + ctxt.register_action( "SCROLL_UP" ); + ctxt.register_action( "SCROLL_DOWN" ); + ctxt.register_action( "ANY_INPUT" ); filter_popup = std::make_unique(); - filter_popup->text( filter ) + filter_popup->context( ctxt ).text( filter ) .max_length( 256 ) .window( window, point( 4, w_height - 1 ), w_width - 4 ); - input_event event; ime_sentry sentry; do { ui_manager::redraw(); filter = filter_popup->query_string( false ); - event = filter_popup->context().get_raw_input(); - if( event.get_first_input() != KEY_ESCAPE ) { - if( !scrollby( scroll_amount_from_key( event.get_first_input() ) ) ) { + if( !filter_popup->canceled() ) { + const std::string action = ctxt.input_to_action( ctxt.get_raw_input() ); + if( !scrollby( scroll_amount_from_action( action ) ) ) { filterlist(); } } - } while( event.get_first_input() != '\n' && event.get_first_input() != KEY_ESCAPE ); + } while( !filter_popup->confirmed() && !filter_popup->canceled() ); - if( event.get_first_input() == KEY_ESCAPE ) { + if( filter_popup->canceled() ) { filterlist(); } @@ -704,27 +670,12 @@ void uilist::show() } apply_scrollbar(); - wrefresh( window ); + wnoutrefresh( window ); if( callback != nullptr ) { callback->refresh( this ); } } -int uilist::scroll_amount_from_key( const int key ) -{ - if( key == KEY_UP ) { - return -1; - } else if( key == KEY_PPAGE ) { - return ( -vmax + 1 ); - } else if( key == KEY_DOWN ) { - return 1; - } else if( key == KEY_NPAGE ) { - return vmax - 1; - } else { - return 0; - } -} - int uilist::scroll_amount_from_action( const std::string &action ) { if( action == "UP" ) { @@ -951,33 +902,60 @@ void uilist::settext( const std::string &str ) text = str; } -pointmenu_cb::pointmenu_cb( const std::vector< tripoint > &pts ) : points( pts ) +struct pointmenu_cb::impl_t { + const std::vector< tripoint > &points; + int last; // to suppress redrawing + tripoint last_view; // to reposition the view after selecting + shared_ptr_fast terrain_draw_cb; + + impl_t( const std::vector &pts ); + ~impl_t(); + + void select( uilist *menu ); +}; + +pointmenu_cb::impl_t::impl_t( const std::vector &pts ) : points( pts ) { last = INT_MIN; last_view = g->u.view_offset; + terrain_draw_cb = make_shared_fast( [this]() { + if( last >= 0 && static_cast( last ) < points.size() ) { + g->draw_trail_to_square( g->u.view_offset, true ); + } + } ); + g->add_draw_callback( terrain_draw_cb ); +} + +pointmenu_cb::impl_t::~impl_t() +{ + g->u.view_offset = last_view; } -void pointmenu_cb::refresh( uilist *menu ) +void pointmenu_cb::impl_t::select( uilist *const menu ) { if( last == menu->selected ) { return; } + last = menu->selected; if( menu->selected < 0 || menu->selected >= static_cast( points.size() ) ) { - last = menu->selected; g->u.view_offset = tripoint_zero; - g->draw_ter(); - wrefresh( g->w_terrain ); - g->draw_panels(); - menu->show(); - return; + } else { + const tripoint ¢er = points[menu->selected]; + g->u.view_offset = center - g->u.pos(); + // TODO: Remove this line when it's safe + g->u.view_offset.z = 0; } + g->invalidate_main_ui_adaptor(); +} - last = menu->selected; - const tripoint ¢er = points[menu->selected]; - g->u.view_offset = center - g->u.pos(); - // TODO: Remove this line when it's safe - g->u.view_offset.z = 0; - g->draw_trail_to_square( g->u.view_offset, true ); - menu->show(); +pointmenu_cb::pointmenu_cb( const std::vector &pts ) : impl( pts ) +{ +} + +pointmenu_cb::~pointmenu_cb() = default; + +void pointmenu_cb::select( uilist *const menu ) +{ + impl->select( menu ); } diff --git a/src/ui.h b/src/ui.h index 35394ea0165da..1a2585d2d7cb9 100644 --- a/src/ui.h +++ b/src/ui.h @@ -12,6 +12,7 @@ #include "color.h" #include "cursesdef.h" #include "memory_fast.h" +#include "pimpl.h" #include "point.h" #include "string_formatter.h" @@ -105,7 +106,7 @@ struct uilist_entry { * void refresh( uilist *menu ) { * if( menu->selected >= 0 && static_cast( menu->selected ) < game_z.size() ) { * mvwprintz( menu->window, 0, 0, c_red, "( %s )",game_z[menu->selected]->name() ); - * wrefresh( menu->window ); + * wnoutrefresh( menu->window ); * } * } * } @@ -132,6 +133,10 @@ class uilist; class uilist_callback { public: + + /** + * After a new item is selected, call this once + */ virtual void select( uilist * ) {} virtual bool key( const input_context &, const input_event &/*key*/, int /*entnum*/, uilist * ) { @@ -188,12 +193,6 @@ class uilist // NOLINT(cata-xy) uilist( const std::string &msg, const std::vector &opts ); uilist( const std::string &msg, const std::vector &opts ); uilist( const std::string &msg, std::initializer_list opts ); - uilist( const point &start, int width, const std::string &msg, - const std::vector &opts ); - uilist( const point &start, int width, const std::string &msg, - const std::vector &opts ); - uilist( const point &start, int width, const std::string &msg, - std::initializer_list opts ); ~uilist(); @@ -236,7 +235,6 @@ class uilist // NOLINT(cata-xy) operator int() const; private: - int scroll_amount_from_key( int key ); int scroll_amount_from_action( const std::string &action ); void apply_scrollbar(); // This function assumes it's being called from `query` and should @@ -351,13 +349,12 @@ class uilist // NOLINT(cata-xy) class pointmenu_cb : public uilist_callback { private: - const std::vector< tripoint > &points; - int last; // to suppress redrawing - tripoint last_view; // to reposition the view after selecting + struct impl_t; + pimpl impl; public: pointmenu_cb( const std::vector< tripoint > &pts ); - ~pointmenu_cb() override = default; - void refresh( uilist *menu ) override; + ~pointmenu_cb() override; + void select( uilist *menu ) override; }; #endif // CATA_SRC_UI_H diff --git a/src/ui_manager.cpp b/src/ui_manager.cpp index d8419b2c40c89..77118393d86ed 100644 --- a/src/ui_manager.cpp +++ b/src/ui_manager.cpp @@ -6,6 +6,7 @@ #include #include "cursesdef.h" +#include "game_ui.h" #include "point.h" #include "sdltiles.h" @@ -39,17 +40,21 @@ ui_adaptor::~ui_adaptor() void ui_adaptor::position_from_window( const catacurses::window &win ) { - const rectangle old_dimensions = dimensions; - // ensure position is updated before calling invalidate + if( !win ) { + position( point_zero, point_zero ); + } else { + const rectangle old_dimensions = dimensions; + // ensure position is updated before calling invalidate #ifdef TILES - const window_dimensions dim = get_window_dimensions( win ); - dimensions = rectangle( dim.window_pos_pixel, dim.window_pos_pixel + dim.window_size_pixel ); + const window_dimensions dim = get_window_dimensions( win ); + dimensions = rectangle( dim.window_pos_pixel, dim.window_pos_pixel + dim.window_size_pixel ); #else - const point origin( getbegx( win ), getbegy( win ) ); - dimensions = rectangle( origin, origin + point( getmaxx( win ), getmaxy( win ) ) ); + const point origin( getbegx( win ), getbegy( win ) ); + dimensions = rectangle( origin, origin + point( getmaxx( win ), getmaxy( win ) ) ); #endif - invalidated = true; - ui_manager::invalidate( old_dimensions ); + invalidated = true; + ui_manager::invalidate( old_dimensions ); + } } void ui_adaptor::position( const point &topleft, const point &size ) @@ -173,6 +178,14 @@ void ui_adaptor::invalidate( const rectangle &rect ) } void ui_adaptor::redraw() +{ + if( !ui_stack.empty() ) { + ui_stack.back().get().invalidated = true; + } + redraw_invalidated(); +} + +void ui_adaptor::redraw_invalidated() { // apply deferred resizing auto first = ui_stack.rbegin(); @@ -191,11 +204,11 @@ void ui_adaptor::redraw() ui.deferred_resize = false; } } + reinitialize_framebuffer(); // redraw invalidated uis // TODO refresh only when all stacked UIs are drawn if( !ui_stack.empty() ) { - ui_stack.back().get().invalidated = true; auto first = ui_stack.crbegin(); for( ; first != ui_stack.crend(); ++first ) { if( first->get().disabling_uis_below ) { @@ -231,7 +244,7 @@ background_pane::background_pane() ui.position_from_window( catacurses::stdscr ); ui.on_redraw( []( const ui_adaptor & ) { catacurses::erase(); - catacurses::refresh(); + wnoutrefresh( catacurses::stdscr ); } ); } @@ -248,6 +261,11 @@ void redraw() ui_adaptor::redraw(); } +void redraw_invalidated() +{ + ui_adaptor::redraw_invalidated(); +} + void screen_resized() { ui_adaptor::screen_resized(); diff --git a/src/ui_manager.h b/src/ui_manager.h index 53921a92a7b97..c2f4a2cf6c623 100644 --- a/src/ui_manager.h +++ b/src/ui_manager.h @@ -22,8 +22,7 @@ class ui_adaptor ui_adaptor(); // ui_adaptor constructed this way will block any uis below from being - // redrawn or resized until it is deconstructed. It is used for `debug_msg` - // and for temporarily disabling redrawing of lower UIs in unmigrated UIs. + // redrawn or resized until it is deconstructed. It is used for `debug_msg`. ui_adaptor( disable_uis_below ); ui_adaptor( const ui_adaptor &rhs ) = delete; ui_adaptor( ui_adaptor &&rhs ) = delete; @@ -32,6 +31,7 @@ class ui_adaptor ui_adaptor &operator=( const ui_adaptor &rhs ) = delete; ui_adaptor &operator=( ui_adaptor &&rhs ) = delete; + // If win is null, the function has the same effect as position( point_zero, point_zero ) void position_from_window( const catacurses::window &win ); // Set the position and size of the ui to that of an imaginary normal // catacurses::window, except that size can be zero. @@ -62,6 +62,7 @@ class ui_adaptor static void invalidate( const rectangle &rect ); static void redraw(); + static void redraw_invalidated(); static void screen_resized(); private: static void invalidation_consistency_and_optimization(); @@ -94,6 +95,8 @@ namespace ui_manager void invalidate( const rectangle &rect ); // invalidate the top window and redraw all invalidated windows void redraw(); +// redraw all invalidated windows without invalidating the top window +void redraw_invalidated(); void screen_resized(); } // namespace ui_manager diff --git a/src/uistate.h b/src/uistate.h index e673a92996bee..770e1d67f25a0 100644 --- a/src/uistate.h +++ b/src/uistate.h @@ -89,8 +89,6 @@ class uistatedata { /**** this will set a default value on startup, however to save, see below ****/ private: - // not needed for compilation, but keeps syntax plugins happy - using itype_id = std::string; enum side { left = 0, right = 1, NUM_PANES = 2 }; public: int ags_pay_gas_selected_pump = 0; @@ -102,8 +100,8 @@ class uistatedata int adv_inv_container_location = -1; int adv_inv_container_index = 0; - itype_id adv_inv_container_type = "null"; - itype_id adv_inv_container_content_type = "null"; + itype_id adv_inv_container_type = itype_id::NULL_ID(); + itype_id adv_inv_container_content_type = itype_id::NULL_ID(); bool adv_inv_container_in_vehicle = false; advanced_inv_save_state transfer_save; diff --git a/src/units.cpp b/src/units.cpp index e116592b1c345..ee5d76f7b5a86 100644 --- a/src/units.cpp +++ b/src/units.cpp @@ -27,22 +27,26 @@ void mass::serialize( JsonOut &jsout ) const } template<> -void length::serialize( JsonOut &jsout ) const +void length::deserialize( JsonIn &jsin ) +{ + *this = read_from_json_string( jsin, units::length_units ); +} + +template<> +void energy::serialize( JsonOut &jsout ) const { - if( value_ % 1'000'000 ) { - jsout.write( string_format( "%d km", value_ / 1'000'000 ) ); - } else if( value_ % 1'000 ) { - jsout.write( string_format( "%d meter", value_ / 1'000'000 ) ); - } else if( value_ % 10 ) { - jsout.write( string_format( "%d cm", value_ / 10 ) ); + if( value_ % 1000000 == 0 ) { + jsout.write( string_format( "%d kJ", value_ / 1000000 ) ); + } else if( value_ % 1000 == 0 ) { + jsout.write( string_format( "%d J", value_ / 1000 ) ) ; } else { - jsout.write( string_format( "%d mm", value_ ) ); + jsout.write( string_format( "%d mJ", value_ ) ); } } template<> -void length::deserialize( JsonIn &jsin ) +void energy::deserialize( JsonIn &jsin ) { - *this = read_from_json_string( jsin, units::length_units ); + *this = read_from_json_string( jsin, units::energy_units ); } } // namespace units diff --git a/src/units.h b/src/units.h index 5a105d8c28b14..9cf336d95ee6b 100644 --- a/src/units.h +++ b/src/units.h @@ -540,7 +540,7 @@ inline constexpr value_type to_kilometer( const quantity -inline constexpr quantity cube_to_volume( +inline constexpr quantity default_length_from_volume( const quantity &v ) { return units::from_centimeter( @@ -587,12 +587,12 @@ inline std::string display( const units::energy v ) const int kj = units::to_kilojoule( v ); const int j = units::to_joule( v ); // at least 1 kJ and there is no fraction - if( kj >= 1 && float( j ) / kj == 1000 ) { + if( kj >= 1 && static_cast( j ) / kj == 1000 ) { return to_string( kj ) + ' ' + pgettext( "energy unit: kilojoule", "kJ" ); } const int mj = units::to_millijoule( v ); // at least 1 J and there is no fraction - if( j >= 1 && float( mj ) / j == 1000 ) { + if( j >= 1 && static_cast( mj ) / j == 1000 ) { return to_string( j ) + ' ' + pgettext( "energy unit: joule", "J" ); } return to_string( mj ) + ' ' + pgettext( "energy unit: millijoule", "mJ" ); diff --git a/src/veh_interact.cpp b/src/veh_interact.cpp index 44eef2ed0bae0..5923c48a7fc32 100644 --- a/src/veh_interact.cpp +++ b/src/veh_interact.cpp @@ -66,10 +66,14 @@ static const itype_id fuel_type_battery( "battery" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_plut_cell( "plut_cell" ); + static const skill_id skill_mechanics( "mechanics" ); static const quality_id qual_JACK( "JACK" ); static const quality_id qual_LIFT( "LIFT" ); +static const quality_id qual_HOSE( "HOSE" ); static const quality_id qual_SELF_JACK( "SELF_JACK" ); static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); @@ -160,7 +164,6 @@ player_activity veh_interact::run( vehicle &veh, const point &p ) { veh_interact vehint( veh, p ); vehint.do_main_loop(); - g->refresh_all(); return vehint.serialize_activity(); } @@ -172,7 +175,6 @@ vehicle_part &veh_interact::select_part( const vehicle &veh, const part_selector auto act = [&]( const vehicle_part & pt ) { res = const_cast( &pt ); - return false; // avoid redraw }; int opts = std::count_if( veh.parts.cbegin(), veh.parts.cend(), sel ); @@ -182,9 +184,8 @@ vehicle_part &veh_interact::select_part( const vehicle &veh, const part_selector } else if( opts != 0 ) { veh_interact vehint( const_cast( veh ) ); - vehint.set_title( title.empty() ? _( "Select part" ) : title ); + vehint.title = title.empty() ? _( "Select part" ) : title; vehint.overview( sel, act ); - g->refresh_all(); } return *res; @@ -199,7 +200,7 @@ veh_interact::veh_interact( vehicle &veh, const point &p ) // Only build the shapes map and the wheel list once for( const auto &e : vpart_info::all() ) { const vpart_info &vp = e.second; - vpart_shapes[ vp.name() + vp.item ].push_back( &vp ); + vpart_shapes[ vp.name() + vp.item.str() ].push_back( &vp ); if( vp.has_flag( "WHEEL" ) ) { wheel_types.push_back( &vp ); } @@ -228,10 +229,12 @@ veh_interact::veh_interact( vehicle &veh, const point &p ) main_context.register_action( "CONFIRM" ); main_context.register_action( "HELP_KEYBINDINGS" ); main_context.register_action( "FILTER" ); + main_context.register_action( "ANY_INPUT" ); count_durability(); cache_tool_availability(); - allocate_windows(); + // Initialize info of selected parts + move_cursor( point_zero ); } veh_interact::~veh_interact() = default; @@ -239,55 +242,48 @@ veh_interact::~veh_interact() = default; void veh_interact::allocate_windows() { // grid window + const int grid_x = 1; + const int grid_y = 1; const int grid_w = TERMX - 2; // exterior borders take 2 const int grid_h = TERMY - 2; // exterior borders take 2 - // NOLINTNEXTLINE(cata-use-named-point-constants) - w_grid = catacurses::newwin( grid_h, grid_w, point( 1, 1 ) ); - int mode_h = 1; - int name_h = 1; + const int mode_h = 1; + const int name_h = 1; page_size = grid_h - ( mode_h + stats_h + name_h ) - 2; - int pane_y = 1 + mode_h + 1; + const int pane_y = grid_y + mode_h + 1; + + const int pane_w = ( grid_w / 3 ) - 1; + + const int disp_w = grid_w - ( pane_w * 2 ) - 2; + const int disp_h = page_size * 0.45; + const int parts_h = page_size - disp_h; + const int parts_y = pane_y + disp_h; - int pane_w = ( grid_w / 3 ) - 1; + const int name_y = pane_y + page_size + 1; + const int stats_y = name_y + name_h; - int disp_w = grid_w - ( pane_w * 2 ) - 2; - int disp_h = page_size * 0.45; - int parts_h = page_size - disp_h; - int parts_y = pane_y + disp_h; + const int list_x = grid_x + disp_w + 1; + const int msg_x = list_x + pane_w + 1; - int name_y = pane_y + page_size + 1; - int stats_y = name_y + name_h; + // covers right part of w_name and w_stats in vertical/hybrid + const int details_y = name_y; + const int details_x = list_x; - int list_x = 1 + disp_w + 1; - int msg_x = list_x + pane_w + 1; + const int details_h = 7; + const int details_w = grid_x + grid_w - details_x; // make the windows - // NOLINTNEXTLINE(cata-use-named-point-constants) - w_mode = catacurses::newwin( mode_h, grid_w, point( 1, 1 ) ); + w_border = catacurses::newwin( TERMY, TERMX, point_zero ); + w_mode = catacurses::newwin( mode_h, grid_w, point( grid_x, grid_y ) ); w_msg = catacurses::newwin( page_size, pane_w, point( msg_x, pane_y ) ); - w_disp = catacurses::newwin( disp_h, disp_w, point( 1, pane_y ) ); - w_parts = catacurses::newwin( parts_h, disp_w, point( 1, parts_y ) ); + w_disp = catacurses::newwin( disp_h, disp_w, point( grid_x, pane_y ) ); + w_parts = catacurses::newwin( parts_h, disp_w, point( grid_x, parts_y ) ); w_list = catacurses::newwin( page_size, pane_w, point( list_x, pane_y ) ); - w_stats = catacurses::newwin( stats_h, grid_w, point( 1, stats_y ) ); - w_name = catacurses::newwin( name_h, grid_w, point( 1, name_y ) ); - - display_grid(); - display_name(); - display_stats(); - display_veh(); - move_cursor( point_zero ); // display w_disp & w_parts -} - -void veh_interact::set_title( const std::string &msg ) const -{ - werase( w_mode ); - nc_color col = c_light_gray; - // NOLINTNEXTLINE(cata-use-named-point-constants) - print_colored_text( w_mode, point( 1, 0 ), col, col, msg ); - wrefresh( w_mode ); + w_stats = catacurses::newwin( stats_h, grid_w, point( grid_x, stats_y ) ); + w_name = catacurses::newwin( name_h, grid_w, point( grid_x, name_y ) ); + w_details = catacurses::newwin( details_h, details_w, point( details_x, details_y ) ); } bool veh_interact::format_reqs( std::string &msg, const requirement_data &reqs, @@ -328,6 +324,56 @@ bool veh_interact::format_reqs( std::string &msg, const requirement_data &reqs, return ok; } +struct veh_interact::install_info_t { + int pos; + size_t tab; + std::vector tab_vparts; + std::array tab_list; + std::array tab_list_short; +}; + +shared_ptr_fast veh_interact::create_or_get_ui_adaptor() +{ + shared_ptr_fast current_ui = ui.lock(); + if( !current_ui ) { + ui = current_ui = make_shared_fast(); + current_ui->on_screen_resize( [this]( ui_adaptor & current_ui ) { + allocate_windows(); + current_ui.position_from_window( catacurses::stdscr ); + } ); + current_ui->mark_resize(); + current_ui->on_redraw( [this]( const ui_adaptor & ) { + display_grid(); + display_name(); + display_stats(); + display_veh(); + + werase( w_parts ); + veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, highlight_part, + true ); + wnoutrefresh( w_parts ); + + werase( w_msg ); + if( !msg.has_value() ) { + veh->print_vparts_descs( w_msg, getmaxy( w_msg ), getmaxx( w_msg ), cpart, start_at, start_limit ); + } else { + // NOLINTNEXTLINE(cata-use-named-point-constants) + fold_and_print( w_msg, point( 1, 0 ), getmaxx( w_msg ) - 2, c_light_red, msg.value() ); + } + wnoutrefresh( w_msg ); + + if( install_info ) { + display_list( install_info->pos, install_info->tab_vparts, 2 ); + display_details( sel_vpart_info ); + } else { + display_overview(); + } + display_mode(); + } ); + } + return current_ui; +} + void veh_interact::do_main_loop() { bool finish = false; @@ -339,65 +385,48 @@ void veh_interact::do_main_loop() owner_fac = g->faction_manager_ptr->get( faction_id( "no_faction" ) ); } - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + shared_ptr_fast current_ui = create_or_get_ui_adaptor(); while( !finish ) { - overview(); - display_mode(); + calc_overview(); + ui_manager::redraw(); const std::string action = main_context.handle_input(); - werase( w_msg ); - wrefresh( w_msg ); - std::string msg; - bool redraw = false; + msg.reset(); if( const cata::optional vec = main_context.get_direction( action ) ) { move_cursor( vec->xy() ); } else if( action == "QUIT" ) { finish = true; - } else if( action == "HELP_KEYBINDINGS" ) { - redraw = true; } else if( action == "INSTALL" ) { - if( !veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { - redraw = true; - } else { - redraw = do_install( msg ); + if( veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { + do_install(); } } else if( action == "REPAIR" ) { - if( !veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { - redraw = true; - } else { - redraw = do_repair( msg ); + if( veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { + do_repair(); } } else if( action == "MEND" ) { - if( !veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { - redraw = true; - } else { - redraw = do_mend( msg ); + if( veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { + do_mend(); } } else if( action == "REFILL" ) { - if( !veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { - redraw = true; - } else { - redraw = do_refill( msg ); + if( veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { + do_refill(); } } else if( action == "REMOVE" ) { - if( !veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { - redraw = true; - } else { - redraw = do_remove( msg ); + if( veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { + do_remove(); } } else if( action == "RENAME" ) { if( owned_by_player ) { - redraw = do_rename( msg ); + do_rename(); } else { if( owner_fac ) { popup( _( "You cannot rename this vehicle as it is owned by: %s." ), _( owner_fac->name ) ); } - redraw = true; } } else if( action == "SIPHON" ) { if( veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { - redraw = do_siphon( msg ); + do_siphon(); // Siphoning may have started a player activity. If so, we should close the // vehicle dialog and continue with the activity. finish = !g->u.activity.is_null(); @@ -405,34 +434,27 @@ void veh_interact::do_main_loop() // it's possible we just invalidated our crafting inventory cache_tool_availability(); } - } else { - redraw = true; } } else if( action == "UNLOAD" ) { if( veh->handle_potential_theft( dynamic_cast( g->u ) ) ) { - redraw = do_unload( msg ); - finish = redraw; - } else { - redraw = true; + finish = do_unload(); } } else if( action == "ASSIGN_CREW" ) { if( owned_by_player ) { - redraw = do_assign_crew( msg ); + do_assign_crew(); } else { if( owner_fac ) { popup( _( "You cannot assign crew on this vehicle as it is owned by: %s." ), _( owner_fac->name ) ); } - redraw = true; } } else if( action == "RELABEL" ) { if( owned_by_player ) { - redraw = do_relabel( msg ); + do_relabel(); } else { if( owner_fac ) { popup( _( "You cannot relabel this vehicle as it is owned by: %s." ), _( owner_fac->name ) ); } - redraw = true; } } else if( action == "FUEL_LIST_DOWN" ) { move_fuel_cursor( 1 ); @@ -450,22 +472,6 @@ void veh_interact::do_main_loop() if( sel_cmd != ' ' ) { finish = true; } - - if( !finish && redraw ) { - display_grid(); - display_name(); - display_stats(); - display_veh(); - } - - if( !msg.empty() ) { - werase( w_msg ); - // NOLINTNEXTLINE(cata-use-named-point-constants) - fold_and_print( w_msg, point( 1, 0 ), getmaxx( w_msg ) - 2, c_light_red, msg ); - wrefresh( w_msg ); - } else { - move_cursor( point_zero ); - } } } @@ -538,9 +544,9 @@ task_reason veh_interact::cant_do( char mode ) valid_target = std::any_of( veh->parts.begin(), veh->parts.end(), [toggling]( const vehicle_part & pt ) { if( toggling ) { - return !pt.faults_potential().empty(); + return pt.is_available() && !pt.faults_potential().empty(); } else { - return !pt.faults().empty(); + return pt.is_available() && !pt.faults().empty(); } } ); enough_light = g->u.fine_detail_vision_mod() <= 4; @@ -570,13 +576,13 @@ task_reason veh_interact::cant_do( char mode ) valid_target = false; for( const vpart_reference &vp : veh->get_any_parts( VPFLAG_FLUIDTANK ) ) { if( vp.part().base.has_item_with( []( const item & it ) { - return it.made_of( LIQUID ); + return it.made_of( phase_id::LIQUID ); } ) ) { valid_target = true; break; } } - has_tools = crafting_inv.has_tools( "hose", 1 ); + has_tools = g->u.has_quality( qual_HOSE ); break; case 'd': @@ -584,7 +590,7 @@ task_reason veh_interact::cant_do( char mode ) valid_target = false; has_tools = true; for( auto &e : veh->fuels_left() ) { - if( e.first != fuel_type_battery && item::find_type( e.first )->phase == SOLID ) { + if( e.first != fuel_type_battery && item::find_type( e.first )->phase == phase_id::SOLID ) { valid_target = true; break; } @@ -640,13 +646,9 @@ bool veh_interact::is_drive_conflict() bool has_conflict = veh->has_engine_conflict( sel_vpart_info, conflict_type ); if( has_conflict ) { - werase( w_msg ); - // NOLINTNEXTLINE(cata-use-named-point-constants) - fold_and_print( w_msg, point( 1, 0 ), getmaxx( w_msg ) - 2, c_light_red, - //~ %1$s is fuel_type - string_format( _( "Only one %1$s powered engine can be installed." ), - conflict_type ) ); - wrefresh( w_msg ); + //~ %1$s is fuel_type + msg = string_format( _( "Only one %1$s powered engine can be installed." ), + conflict_type ); } return has_conflict; } @@ -663,20 +665,9 @@ bool veh_interact::can_self_jack() return false; } -static void print_message_to( catacurses::window &w_msg, const nc_color col, - const std::string &msg ) -{ - werase( w_msg ); - // NOLINTNEXTLINE(cata-use-named-point-constants) - fold_and_print( w_msg, point( 1, 0 ), getmaxx( w_msg ) - 2, col, msg ); - wrefresh( w_msg ); -} - bool veh_interact::can_install_part() { if( sel_vpart_info == nullptr ) { - werase( w_msg ); - wrefresh( w_msg ); return false; } @@ -684,10 +675,10 @@ bool veh_interact::can_install_part() return false; } if( veh->has_part( "NO_MODIFY_VEHICLE" ) && !sel_vpart_info->has_flag( "SIMPLE_PART" ) ) { - print_message_to( w_msg, c_light_red, _( "This vehicle cannot be modified in this way.\n" ) ); + msg = _( "This vehicle cannot be modified in this way.\n" ); return false; } else if( sel_vpart_info->has_flag( "NO_INSTALL_PLAYER" ) ) { - print_message_to( w_msg, c_light_red, _( "This part cannot be installed.\n" ) ); + msg = _( "This part cannot be installed.\n" ); return false; } @@ -695,7 +686,7 @@ bool veh_interact::can_install_part() if( std::none_of( parts_here.begin(), parts_here.end(), [&]( const int e ) { return veh->parts[e].is_tank(); } ) ) { - print_message_to( w_msg, c_light_red, _( "Funnels need to be installed over a tank." ) ); + msg = _( "Funnels need to be installed over a tank." ); return false; } } @@ -704,7 +695,7 @@ bool veh_interact::can_install_part() if( std::any_of( parts_here.begin(), parts_here.end(), [&]( const int e ) { return veh->parts[e].is_turret(); } ) ) { - print_message_to( w_msg, c_light_red, _( "Can't install turret on another turret." ) ); + msg = _( "Can't install turret on another turret." ); return false; } } @@ -741,20 +732,20 @@ bool veh_interact::can_install_part() const auto reqs = sel_vpart_info->install_requirements(); - std::string msg; - bool ok = format_reqs( msg, reqs, sel_vpart_info->install_skills, + std::string nmsg; + bool ok = format_reqs( nmsg, reqs, sel_vpart_info->install_skills, sel_vpart_info->install_time( g->u ) ); - msg += _( "Additional requirements:\n" ); + nmsg += _( "Additional requirements:\n" ); if( dif_eng > 0 ) { if( g->u.get_skill_level( skill_mechanics ) < dif_eng ) { ok = false; } //~ %1$s represents the internal color name which shouldn't be translated, %2$s is skill name, and %3$i is skill level - msg += string_format( _( "> %1$s%2$s %3$i for extra engines." ), - status_color( g->u.get_skill_level( skill_mechanics ) >= dif_eng ), - skill_mechanics.obj().name(), dif_eng ) + "\n"; + nmsg += string_format( _( "> %1$s%2$s %3$i for extra engines." ), + status_color( g->u.get_skill_level( skill_mechanics ) >= dif_eng ), + skill_mechanics.obj().name(), dif_eng ) + "\n"; } if( dif_steering > 0 ) { @@ -762,9 +753,9 @@ bool veh_interact::can_install_part() ok = false; } //~ %1$s represents the internal color name which shouldn't be translated, %2$s is skill name, and %3$i is skill level - msg += string_format( _( "> %1$s%2$s %3$i for extra steering axles." ), - status_color( g->u.get_skill_level( skill_mechanics ) >= dif_steering ), - skill_mechanics.obj().name(), dif_steering ) + "\n"; + nmsg += string_format( _( "> %1$s%2$s %3$i for extra steering axles." ), + status_color( g->u.get_skill_level( skill_mechanics ) >= dif_steering ), + skill_mechanics.obj().name(), dif_steering ) + "\n"; } int lvl = 0; @@ -772,7 +763,6 @@ bool veh_interact::can_install_part() quality_id qual; bool use_aid = false; bool use_str = false; - item base( sel_vpart_info->item ); if( sel_vpart_info->has_flag( "NEEDS_JACKING" ) ) { qual = qual_JACK; lvl = jack_quality( *veh ); @@ -780,6 +770,7 @@ bool veh_interact::can_install_part() use_aid = ( max_jack >= lvl ) || can_self_jack(); use_str = g->u.can_lift( *veh ); } else { + item base( sel_vpart_info->item ); qual = qual_LIFT; lvl = std::ceil( units::quantity( base.weight() ) / TOOL_LIFT_FACTOR ); @@ -805,13 +796,13 @@ bool veh_interact::can_install_part() //~ %1$s is quality name, %2$d is quality level std::string aid_string = string_format( _( "1 tool with %1$s %2$d" ), qual.obj().name, lvl ); - msg += string_format( _( "> %1$s OR %2$s" ), - colorize( aid_string, aid_color ), - colorize( str_string, str_color ) ) + "\n"; + nmsg += string_format( _( "> %1$s OR %2$s" ), + colorize( aid_string, aid_color ), + colorize( str_string, str_color ) ) + "\n"; - sel_vpart_info->format_description( msg, c_light_gray, getmaxx( w_msg ) - 4 ); + sel_vpart_info->format_description( nmsg, c_light_gray, getmaxx( w_msg ) - 4 ); - print_message_to( w_msg, c_light_gray, msg ); + msg = colorize( nmsg, c_light_gray ); return ok || g->u.has_trait( trait_DEBUG_HS ); } @@ -831,8 +822,6 @@ void veh_interact::move_fuel_cursor( int delta ) } else if( fuel_index > max_fuel_indicators - height ) { fuel_index = std::max( max_fuel_indicators - height, 0 ); } - - display_stats(); } static void sort_uilist_entries_by_line_drawing( std::vector &shape_ui_entries ) @@ -864,18 +853,23 @@ static void sort_uilist_entries_by_line_drawing( std::vector &shap } ); } -bool veh_interact::do_install( std::string &msg ) +void veh_interact::do_install() { task_reason reason = cant_do( 'i' ); if( reason == INVALID_TARGET ) { msg = _( "Cannot install any part here." ); - return false; + return; } - set_title( _( "Choose new part to install here:" ) ); + restore_on_out_of_scope> prev_title( title ); + title = _( "Choose new part to install here:" ); + + restore_on_out_of_scope> prev_install_info( std::move( + install_info ) ); + install_info = std::make_unique(); - std::array tab_list = { { + std::array &tab_list = install_info->tab_list = { { pgettext( "Vehicle Parts|", "All" ), pgettext( "Vehicle Parts|", "Cargo" ), pgettext( "Vehicle Parts|", "Light" ), @@ -887,7 +881,7 @@ bool veh_interact::do_install( std::string &msg ) } }; - std::array tab_list_short = { { + install_info->tab_list_short = { { pgettext( "Vehicle Parts|", "A" ), pgettext( "Vehicle Parts|", "C" ), pgettext( "Vehicle Parts|", "L" ), @@ -987,34 +981,22 @@ bool veh_interact::do_install( std::string &msg ) }; // full list of mountable parts, to be filtered according to tab - std::vector tab_vparts = can_mount; + std::vector &tab_vparts = install_info->tab_vparts = can_mount; - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); - - int pos = 0; - size_t tab = 0; - while( true ) { - display_list( pos, tab_vparts, 2 ); + shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - // draw tab menu - int tab_x = 0; - for( size_t i = 0; i < tab_list.size(); i++ ) { - std::string tab_name = ( tab == i ) ? tab_list[i] : tab_list_short[i]; // full name for selected tab - tab_x += ( tab == i ); // add a space before selected tab - draw_subtab( w_list, tab_x, tab_name, tab == i, false ); - tab_x += ( 1 + utf8_width( tab_name ) + ( tab == - i ) ); // one space padding and add a space after selected tab - } - wrefresh( w_list ); + int &pos = install_info->pos = 0; + size_t &tab = install_info->tab = 0; + while( true ) { sel_vpart_info = tab_vparts.empty() ? nullptr : tab_vparts[pos]; // filtered list can be empty - display_details( sel_vpart_info ); - bool can_install = can_install_part(); + ui_manager::redraw(); + const std::string action = main_context.handle_input(); + msg.reset(); if( action == "FILTER" ) { string_input_popup() .title( _( "Search for part" ) ) @@ -1023,10 +1005,6 @@ bool veh_interact::do_install( std::string &msg ) .max_length( 100 ) .edit( filter ); tab = 7; // Move to the user filter tab. - display_grid(); - display_stats(); - display_veh(); // Fix the (currently) mangled windows - move_cursor( point_zero ); // Wake up the vehicle display } if( action == "REPAIR" ) { filter.clear(); @@ -1037,21 +1015,32 @@ bool veh_interact::do_install( std::string &msg ) switch( reason ) { case LOW_MORALE: msg = _( "Your morale is too low to construct…" ); - return false; + return; case LOW_LIGHT: msg = _( "It's too dark to see what you are doing…" ); - return false; + return; case MOVING_VEHICLE: msg = _( "You can't install parts while driving." ); - return false; + return; default: break; } + // Modifying a vehicle with rotors will make in not flightworthy (until we've got a better model) + // It can only be the player doing this - an npc won't work well with query_yn + if( veh->would_prevent_flyable( *sel_vpart_info ) ) { + if( query_yn( + _( "Installing this part will mean that this vehicle is no longer flightworthy. Continue?" ) ) ) { + veh->set_flyable( false ); + } else { + return; + } + } if( veh->is_foldable() && !sel_vpart_info->has_flag( "FOLDABLE" ) && !query_yn( _( "Installing this part will make the vehicle unfoldable. Continue?" ) ) ) { - return true; + return; } - const auto &shapes = vpart_shapes[ sel_vpart_info->name() + sel_vpart_info->item ]; + const auto &shapes = + vpart_shapes[ sel_vpart_info->name() + sel_vpart_info->item.str() ]; int selected_shape = -1; if( shapes.size() > 1 ) { // more than one shape available, display selection std::vector shape_ui_entries; @@ -1063,24 +1052,31 @@ bool veh_interact::do_install( std::string &msg ) shape_ui_entries.push_back( entry ); } sort_uilist_entries_by_line_drawing( shape_ui_entries ); - selected_shape = uilist( - point( getbegx( w_list ), getbegy( w_list ) ), getmaxx( w_list ), - _( "Choose shape:" ), shape_ui_entries ); + uilist smenu; + smenu.settext( _( "Choose shape:" ) ); + smenu.entries = shape_ui_entries; + smenu.w_width_setup = [this]() { + return getmaxx( w_list ); + }; + smenu.w_x_setup = [this]( const int ) { + return getbegx( w_list ); + }; + smenu.w_y_setup = [this]( const int ) { + return getbegy( w_list ); + }; + smenu.query(); + selected_shape = smenu.ret; } else { // only one shape available, default to first one selected_shape = 0; } if( selected_shape >= 0 && static_cast( selected_shape ) < shapes.size() ) { sel_vpart_info = shapes[selected_shape]; sel_cmd = 'i'; - return true; // force redraw + return; } } } else if( action == "QUIT" ) { sel_vpart_info = nullptr; - werase( w_list ); - wrefresh( w_list ); - werase( w_msg ); - wrefresh( w_msg ); break; } else if( action == "PREV_TAB" || action == "NEXT_TAB" || action == "FILTER" || action == "REPAIR" ) { @@ -1098,16 +1094,6 @@ bool veh_interact::do_install( std::string &msg ) move_in_list( pos, action, tab_vparts.size(), 2 ); } } - - //destroy w_details - werase( w_details ); - w_details = catacurses::window(); - - //restore windows that had been covered by w_details - display_stats(); - display_name(); - - return false; } bool veh_interact::move_in_list( int &pos, const std::string &action, const int size, @@ -1134,7 +1120,7 @@ bool veh_interact::move_in_list( int &pos, const std::string &action, const int return true; } -bool veh_interact::do_repair( std::string &msg ) +void veh_interact::do_repair() { task_reason reason = cant_do( 'r' ); @@ -1142,11 +1128,11 @@ bool veh_interact::do_repair( std::string &msg ) vehicle_part *most_repairable = get_most_repariable_part(); if( most_repairable ) { move_cursor( ( most_repairable->mount + dd ).rotate( 3 ) ); - return false; + return; } } - auto can_repair = [&msg, &reason]() { + auto can_repair = [this, &reason]() { switch( reason ) { case LOW_MORALE: msg = _( "Your morale is too low to repair…" ); @@ -1167,22 +1153,26 @@ bool veh_interact::do_repair( std::string &msg ) }; if( !can_repair() ) { - return false; + return; } - set_title( _( "Choose a part here to repair:" ) ); + restore_on_out_of_scope> prev_title( title ); + title = _( "Choose a part here to repair:" ); - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + shared_ptr_fast current_ui = create_or_get_ui_adaptor(); int pos = 0; + + restore_on_out_of_scope prev_hilight_part( highlight_part ); + while( true ) { vehicle_part &pt = veh->parts[parts_here[need_repair[pos]]]; const vpart_info &vp = pt.info(); std::string nmsg; - bool ok; + // this will always be set, but the gcc thinks that sometimes it won't be + bool ok = true; if( pt.is_broken() ) { ok = format_reqs( nmsg, vp.install_requirements(), vp.install_skills, vp.install_time( g->u ) ); } else { @@ -1193,6 +1183,17 @@ bool veh_interact::do_repair( std::string &msg ) } else if( veh->has_part( "NO_MODIFY_VEHICLE" ) && !vp.has_flag( "SIMPLE_PART" ) ) { nmsg += colorize( _( "This vehicle cannot be repaired.\n" ), c_light_red ); ok = false; + } else if( veh->would_prevent_flyable( vp ) ) { + // Modifying a vehicle with rotors will make in not flightworthy (until we've got a better model) + // It can only be the player doing this - an npc won't work well with query_yn + if( query_yn( + _( "Repairing this part will mean that this vehicle is no longer flightworthy. Continue?" ) ) ) { + veh->set_flyable( false ); + } else { + nmsg += colorize( _( "You chose not to install this part to keep the vehicle flyable.\n" ), + c_light_red ); + ok = false; + } } else { ok = format_reqs( nmsg, vp.repair_requirements() * pt.base.damage_level( 4 ), vp.repair_skills, vp.repair_time( g->u ) * pt.base.damage() / pt.base.max_damage() ); @@ -1202,21 +1203,18 @@ bool veh_interact::do_repair( std::string &msg ) const nc_color desc_color = pt.is_broken() ? c_dark_gray : c_light_gray; vp.format_description( nmsg, desc_color, getmaxx( w_msg ) - 4 ); - werase( w_msg ); - // NOLINTNEXTLINE(cata-use-named-point-constants) - fold_and_print( w_msg, point( 1, 0 ), getmaxx( w_msg ) - 2, c_light_gray, nmsg ); - wrefresh( w_msg ); + msg = colorize( nmsg, c_light_gray ); - werase( w_parts ); - veh->print_part_list( w_parts, 0, getmaxy( w_parts ) - 1, getmaxx( w_parts ), cpart, - need_repair[pos], true ); - wrefresh( w_parts ); + highlight_part = need_repair[pos]; + + ui_manager::redraw(); const std::string action = main_context.handle_input(); + msg.reset(); if( ( action == "REPAIR" || action == "CONFIRM" ) && ok ) { reason = cant_do( 'r' ); if( !can_repair() ) { - return false; + return; } sel_vehicle_part = &pt; sel_vpart_info = &vp; @@ -1228,41 +1226,35 @@ bool veh_interact::do_repair( 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, true ); - wrefresh( w_parts ); - werase( w_msg ); - wrefresh( w_msg ); break; } else { move_in_list( pos, action, need_repair.size() ); } } - - return false; } -bool veh_interact::do_mend( std::string &msg ) +void veh_interact::do_mend() { switch( cant_do( 'm' ) ) { case LOW_MORALE: msg = _( "Your morale is too low to mend…" ); - return false; + return; case LOW_LIGHT: msg = _( "It's too dark to see what you are doing…" ); - return false; + return; case INVALID_TARGET: msg = _( "No faulty parts require mending." ); - return false; + return; case MOVING_VEHICLE: msg = _( "You can't mend stuff while driving." ); - return false; + return; default: break; } - set_title( _( "Choose a part here to mend:" ) ); + restore_on_out_of_scope> prev_title( title ); + title = _( "Choose a part here to mend:" ); const bool toggling = g->u.has_trait( trait_DEBUG_HS ); auto sel = [toggling]( const vehicle_part & pt ) { @@ -1276,28 +1268,28 @@ bool veh_interact::do_mend( std::string &msg ) auto act = [&]( const vehicle_part & pt ) { g->u.mend_item( veh->part_base( veh->index_of_part( &pt ) ) ); sel_cmd = 'q'; - return true; // force redraw }; - return overview( sel, act ); + overview( sel, act ); } -bool veh_interact::do_refill( std::string &msg ) +void veh_interact::do_refill() { switch( cant_do( 'f' ) ) { case MOVING_VEHICLE: msg = _( "You can't refill a moving vehicle." ); - return false; + return; case INVALID_TARGET: msg = _( "No parts can currently be refilled." ); - return false; + return; default: break; } - set_title( _( "Select part to refill:" ) ); + restore_on_out_of_scope> prev_title( title ); + title = _( "Select part to refill:" ); auto act = [&]( const vehicle_part & pt ) { auto validate = [&]( const item & obj ) { @@ -1323,70 +1315,64 @@ bool veh_interact::do_refill( std::string &msg ) sel_vpart_info = &pt.info(); sel_cmd = 'f'; } - - return true; // force redraw }; - return overview( can_refill, act ); + overview( can_refill, act ); } -bool veh_interact::overview( std::function enable, - std::function action ) +void veh_interact::calc_overview() { - struct part_option { - part_option( const std::string &key, vehicle_part *part, char hotkey, - std::function details ) : - key( key ), part( part ), hotkey( hotkey ), details( details ) {} - - part_option( const std::string &key, vehicle_part *part, char hotkey, - std::function details, - std::function message ) : - key( key ), part( part ), hotkey( hotkey ), details( details ), message( message ) {} - - std::string key; - vehicle_part *part; - - /** Can @param action be run for this entry? */ - char hotkey; - - /** Writes any extra details for this entry */ - std::function details; - - /** Writes to message window when part is selected */ - std::function message; - }; - - const auto next_hotkey = [&]( char &hotkey ) { - hotkey += 1; - if( hotkey == '{' ) { - hotkey = 'A'; - } - - while( hotkey == 'c' || hotkey == 'g' || hotkey == 'j' || hotkey == 'k' || hotkey == 'l' || - hotkey == 'p' || hotkey == 'q' || hotkey == 't' || hotkey == 'v' || hotkey == 'x' || - hotkey == 'z' ) { - hotkey += 1; + const auto next_hotkey = [&]( const vehicle_part & pt, char &hotkey ) { + if( overview_action && overview_enable && overview_enable( pt ) ) { + const char ret = hotkey; + // Calculate next hotkey + ++hotkey; + bool finish = false; + while( !finish ) { + switch( hotkey ) { + default: + finish = true; + break; + case '{': + hotkey = 'A'; + break; + case 'c': + case 'g': + case 'j': + case 'k': + case 'l': + case 'p': + case 'q': + case 't': + case 'v': + case 'x': + case 'z': + ++hotkey; + break; + } + } + return ret; + } else { + return '\0'; } - return hotkey; }; - std::vector opts; - - std::map> headers; + overview_opts.clear(); + overview_headers.clear(); int epower_w = veh->net_battery_charge_rate_w(); - headers["ENGINE"] = [this]( const catacurses::window & w, int y ) { + overview_headers["ENGINE"] = [this]( const catacurses::window & w, int y ) { trim_and_print( w, point( 1, y ), getmaxx( w ) - 2, c_light_gray, string_format( _( "Engines: %sSafe %4d kW %sMax %4d kW" ), health_color( true ), veh->total_power_w( true, true ) / 1000, health_color( false ), veh->total_power_w() / 1000 ) ); right_print( w, y, 1, c_light_gray, _( "Fuel Use" ) ); }; - headers["TANK"] = []( const catacurses::window & w, int y ) { + overview_headers["TANK"] = []( const catacurses::window & w, int y ) { trim_and_print( w, point( 1, y ), getmaxx( w ) - 2, c_light_gray, _( "Tanks" ) ); right_print( w, y, 1, c_light_gray, _( "Contents Qty" ) ); }; - headers["BATTERY"] = [epower_w]( const catacurses::window & w, int y ) { + overview_headers["BATTERY"] = [epower_w]( const catacurses::window & w, int y ) { std::string batt; if( std::abs( epower_w ) < 10000 ) { batt = string_format( _( "Batteries: %s%+4d W" ), @@ -1398,7 +1384,7 @@ bool veh_interact::overview( std::function enabl trim_and_print( w, point( 1, y ), getmaxx( w ) - 2, c_light_gray, batt ); right_print( w, y, 1, c_light_gray, _( "Capacity Status" ) ); }; - headers["REACTOR"] = [this, epower_w]( const catacurses::window & w, int y ) { + overview_headers["REACTOR"] = [this, epower_w]( const catacurses::window & w, int y ) { int reactor_epower_w = veh->max_reactor_epower_w(); if( reactor_epower_w > 0 && epower_w < 0 ) { reactor_epower_w += epower_w; @@ -1416,11 +1402,11 @@ bool veh_interact::overview( std::function enabl trim_and_print( w, point( 1, y ), getmaxx( w ) - 2, c_light_gray, reactor ); right_print( w, y, 1, c_light_gray, _( "Contents Qty" ) ); }; - headers["TURRET"] = []( const catacurses::window & w, int y ) { + overview_headers["TURRET"] = []( const catacurses::window & w, int y ) { trim_and_print( w, point( 1, y ), getmaxx( w ) - 2, c_light_gray, _( "Turrets" ) ); right_print( w, y, 1, c_light_gray, _( "Ammo Qty" ) ); }; - headers["SEAT"] = []( const catacurses::window & w, int y ) { + overview_headers["SEAT"] = []( const catacurses::window & w, int y ) { trim_and_print( w, point( 1, y ), getmaxx( w ) - 2, c_light_gray, _( "Seats" ) ); right_print( w, y, 1, c_light_gray, _( "Who" ) ); }; @@ -1431,35 +1417,31 @@ bool veh_interact::overview( std::function enabl if( pt.is_engine() && pt.is_available() ) { // if tank contains something then display the contents in milliliters auto details = []( const vehicle_part & pt, const catacurses::window & w, int y ) { - right_print( w, y, 1, item::find_type( pt.ammo_current() )->color, - string_format( "%s %s", - pt.fuel_current() != "null" ? item::nname( pt.fuel_current() ) : "", - //~ translation should not exceed 3 console cells - right_justify( pt.enabled ? _( "Yes" ) : _( "No" ), 3 ) ) ); + right_print( + w, y, 1, item::find_type( pt.ammo_current() )->color, + string_format( + "%s %s", + !pt.fuel_current().is_null() ? item::nname( pt.fuel_current() ) : "", + //~ translation should not exceed 3 console cells + right_justify( pt.enabled ? _( "Yes" ) : _( "No" ), 3 ) ) ); }; // display engine faults (if any) - auto msg = [&]( const vehicle_part & pt ) { - werase( w_msg ); - int y = 0; + auto msg_cb = [&]( const vehicle_part & pt ) { + msg = std::string(); for( const auto &e : pt.faults() ) { - y += fold_and_print( w_msg, point( 1, y ), getmaxx( w_msg ) - 2, c_red, - "%s", e.obj().name() ); - y += fold_and_print( w_msg, point( 3, y ), getmaxx( w_msg ) - 4, c_light_gray, - "%s", e.obj().description() ); - y++; + msg = msg.value() + string_format( "%s\n %s\n\n", colorize( e->name(), c_red ), + colorize( e->description(), c_light_gray ) ); } - wrefresh( w_msg ); }; - opts.emplace_back( "ENGINE", &pt, action && enable && - enable( pt ) ? next_hotkey( hotkey ) : '\0', details, msg ); + overview_opts.emplace_back( "ENGINE", &pt, next_hotkey( pt, hotkey ), details, msg_cb ); } } for( vehicle_part &pt : veh->parts ) { if( pt.is_tank() && pt.is_available() ) { auto details = []( const vehicle_part & pt, const catacurses::window & w, int y ) { - if( pt.ammo_current() != "null" ) { + if( !pt.ammo_current().is_null() ) { std::string specials; // vehicle parts can only have one pocket, and we are showing a liquid, which can only be one. const item &it = pt.base.contents.legacy_front(); @@ -1490,11 +1472,10 @@ bool veh_interact::overview( std::function enabl } } }; - opts.emplace_back( "TANK", &pt, action && enable && - enable( pt ) ? next_hotkey( hotkey ) : '\0', details ); + overview_opts.emplace_back( "TANK", &pt, next_hotkey( pt, hotkey ), details ); } else if( pt.is_fuel_store() && !( pt.is_battery() || pt.is_reactor() ) && !pt.is_broken() ) { auto details = []( const vehicle_part & pt, const catacurses::window & w, int y ) { - if( pt.ammo_current() != "null" ) { + if( !pt.ammo_current().is_null() ) { const itype *pt_ammo_cur = item::find_type( pt.ammo_current() ); auto stack = units::legacy_volume_factor / pt_ammo_cur->stack_size; int offset = 1; @@ -1508,8 +1489,7 @@ bool veh_interact::overview( std::function enabl round_up( to_liter( pt.ammo_remaining() * stack ), 1 ) ) ); } }; - opts.emplace_back( "TANK", &pt, action && enable && - enable( pt ) ? next_hotkey( hotkey ) : '\0', details ); + overview_opts.emplace_back( "TANK", &pt, next_hotkey( pt, hotkey ), details ); } } @@ -1517,7 +1497,8 @@ bool veh_interact::overview( std::function enabl if( pt.is_battery() && pt.is_available() ) { // always display total battery capacity and percentage charge auto details = []( const vehicle_part & pt, const catacurses::window & w, int y ) { - int pct = ( static_cast( pt.ammo_remaining() ) / pt.ammo_capacity() ) * 100; + int pct = ( static_cast( pt.ammo_remaining() ) / pt.ammo_capacity( + ammotype( "battery" ) ) ) * 100; int offset = 1; std::string fmtstring = "%i %3i%%"; if( pt.is_leaking() ) { @@ -1525,10 +1506,9 @@ bool veh_interact::overview( std::function enabl offset = 0; } right_print( w, y, offset, item::find_type( pt.ammo_current() )->color, - string_format( fmtstring, pt.ammo_capacity(), pct ) ); + string_format( fmtstring, pt.ammo_capacity( ammotype( "battery" ) ), pct ) ); }; - opts.emplace_back( "BATTERY", &pt, action && enable && - enable( pt ) ? next_hotkey( hotkey ) : '\0', details ); + overview_opts.emplace_back( "BATTERY", &pt, next_hotkey( pt, hotkey ), details ); } } @@ -1547,15 +1527,13 @@ bool veh_interact::overview( std::function enabl for( auto &pt : veh->parts ) { if( pt.is_reactor() && pt.is_available() ) { - opts.emplace_back( "REACTOR", &pt, action && enable && - enable( pt ) ? next_hotkey( hotkey ) : '\0', details_ammo ); + overview_opts.emplace_back( "REACTOR", &pt, next_hotkey( pt, hotkey ), details_ammo ); } } for( auto &pt : veh->parts ) { if( pt.is_turret() && pt.is_available() ) { - opts.emplace_back( "TURRET", &pt, action && enable && - enable( pt ) ? next_hotkey( hotkey ) : '\0', details_ammo ); + overview_opts.emplace_back( "TURRET", &pt, next_hotkey( pt, hotkey ), details_ammo ); } } @@ -1567,90 +1545,113 @@ bool veh_interact::overview( std::function enabl } }; if( pt.is_seat() && pt.is_available() ) { - opts.emplace_back( "SEAT", &pt, action && enable && - enable( pt ) ? next_hotkey( hotkey ) : '\0', details ); + overview_opts.emplace_back( "SEAT", &pt, next_hotkey( pt, hotkey ), details ); } } +} - int pos = -1; - if( enable && action ) { - do { - if( ++pos >= static_cast( opts.size() ) ) { - pos = -1; - break; // nothing could be selected - } - } while( !opts[pos].hotkey ); +void veh_interact::display_overview() +{ + werase( w_list ); + std::string last; + int y = 0; + if( overview_offset ) { + trim_and_print( w_list, point( 1, y ), getmaxx( w_list ) - 1, + c_yellow, _( "'{' to scroll up" ) ); + y++; + } + for( int idx = overview_offset; idx != static_cast( overview_opts.size() ); ++idx ) { + const auto &pt = *overview_opts[idx].part; + + // if this is a new section print a header row + if( last != overview_opts[idx].key ) { + y += last.empty() ? 0 : 1; + overview_headers[overview_opts[idx].key]( w_list, y ); + y += 2; + last = overview_opts[idx].key; + } + + bool highlighted = false; + // No action means no selecting, just highlight relevant ones + if( overview_pos < 0 && overview_enable && !overview_action ) { + highlighted = overview_enable( pt ); + } else if( overview_pos == idx ) { + highlighted = true; + } + + // print part name + nc_color col = overview_opts[idx].hotkey ? c_white : c_dark_gray; + trim_and_print( w_list, point( 1, y ), getmaxx( w_list ) - 1, + highlighted ? hilite( col ) : col, + "%c %s", + overview_opts[idx].hotkey ? overview_opts[idx].hotkey : ' ', pt.name() ); + + // print extra columns (if any) + overview_opts[idx].details( pt, w_list, y ); + y++; + if( y < ( getmaxy( w_list ) - 1 ) ) { + overview_limit = overview_offset; + } else { + overview_limit = idx; + trim_and_print( w_list, point( 1, y ), getmaxx( w_list ) - 1, + c_yellow, _( "'}' to scroll down" ) ); + break; + } } - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + wnoutrefresh( w_list ); +} - bool redraw = false; - while( true ) { - werase( w_list ); - std::string last; - int y = 0; - if( overview_offset ) { - trim_and_print( w_list, point( 1, y ), getmaxx( w_list ) - 1, - c_yellow, _( "'{' to scroll up" ) ); - y++; - } - for( int idx = overview_offset; idx != static_cast( opts.size() ); ++idx ) { - const auto &pt = *opts[idx].part; +void veh_interact::overview( const overview_enable_t &enable, + const overview_action_t &action ) +{ + restore_on_out_of_scope prev_overview_enable( overview_enable ); + restore_on_out_of_scope prev_overview_action( overview_action ); + overview_enable = enable; + overview_action = action; - // if this is a new section print a header row - if( last != opts[idx].key ) { - y += last.empty() ? 0 : 1; - headers[opts[idx].key]( w_list, y ); - y += 2; - last = opts[idx].key; - } + restore_on_out_of_scope prev_overview_pos( overview_pos ); - bool highlighted = false; - // No action means no selecting, just highlight relevant ones - if( pos < 0 && enable && !action ) { - highlighted = enable( pt ); - } else if( pos == idx ) { - highlighted = true; - } + shared_ptr_fast current_ui = create_or_get_ui_adaptor(); - // print part name - nc_color col = opts[idx].hotkey ? c_white : c_dark_gray; - trim_and_print( w_list, point( 1, y ), getmaxx( w_list ) - 1, - highlighted ? hilite( col ) : col, - "%c %s", - opts[idx].hotkey ? opts[idx].hotkey : ' ', pt.name() ); - - // print extra columns (if any) - opts[idx].details( pt, w_list, y ); - y++; - if( y < ( getmaxy( w_list ) - 1 ) ) { - overview_limit = overview_offset; - } else { - overview_limit = idx; - trim_and_print( w_list, point( 1, y ), getmaxx( w_list ) - 1, - c_yellow, _( "'}' to scroll down" ) ); - break; - } - } + while( true ) { + calc_overview(); - wrefresh( w_list ); + if( overview_pos < 0 || static_cast( overview_pos ) >= overview_opts.size() ) { + overview_pos = -1; + do { + if( ++overview_pos >= static_cast( overview_opts.size() ) ) { + overview_pos = -1; + break; // nothing could be selected + } + } while( !overview_opts[overview_pos].hotkey ); + } - if( !std::any_of( opts.begin(), opts.end(), []( const part_option & e ) { - return e.hotkey; - } ) ) { - return false; // nothing is selectable + const bool has_any_hotkey = std::any_of( overview_opts.begin(), overview_opts.end(), + []( const part_option & e ) { + return e.hotkey; + } ); + if( !has_any_hotkey ) { + return; // nothing is selectable } - move_cursor( ( opts[pos].part->mount + dd ).rotate( 3 ) ); + if( overview_pos >= 0 && static_cast( overview_pos ) < overview_opts.size() ) { + move_cursor( ( overview_opts[overview_pos].part->mount + dd ).rotate( 3 ) ); + } - if( opts[pos].message ) { - opts[pos].message( *opts[pos].part ); + if( overview_pos >= 0 && static_cast( overview_pos ) < overview_opts.size() && + overview_opts[overview_pos].message ) { + overview_opts[overview_pos].message( *overview_opts[overview_pos].part ); + } else { + msg.reset(); } + ui_manager::redraw(); + const std::string input = main_context.handle_input(); - if( input == "CONFIRM" && opts[pos].hotkey ) { - redraw = action( *opts[pos].part ); + msg.reset(); + if( input == "CONFIRM" && overview_opts[overview_pos].hotkey && overview_action ) { + overview_action( *overview_opts[overview_pos].part ); break; } else if( input == "QUIT" ) { @@ -1659,37 +1660,32 @@ bool veh_interact::overview( std::function enabl } else if( input == "UP" ) { do { move_overview_line( -1 ); - if( --pos < 0 ) { - pos = opts.size() - 1; + if( --overview_pos < 0 ) { + overview_pos = overview_opts.size() - 1; } - } while( !opts[pos].hotkey ); - + } while( !overview_opts[overview_pos].hotkey ); } else if( input == "DOWN" ) { do { move_overview_line( 1 ); - if( ++pos >= static_cast( opts.size() ) ) { - pos = 0; + if( ++overview_pos >= static_cast( overview_opts.size() ) ) { + overview_pos = 0; } - } while( !opts[pos].hotkey ); - + } while( !overview_opts[overview_pos].hotkey ); } else { // did we try and activate a hotkey option? char hotkey = main_context.get_raw_input().get_first_input(); - if( hotkey ) { - auto iter = std::find_if( opts.begin(), opts.end(), [&hotkey]( const part_option & e ) { + if( hotkey && overview_action ) { + auto iter = std::find_if( overview_opts.begin(), + overview_opts.end(), [&hotkey]( const part_option & e ) { return e.hotkey == hotkey; } ); - if( iter != opts.end() ) { - action( *iter->part ); + if( iter != overview_opts.end() ) { + overview_action( *iter->part ); break; } } } } - - werase( w_list ); - wrefresh( w_list ); - return redraw; } void veh_interact::move_overview_line( int amount ) @@ -1726,39 +1722,47 @@ bool veh_interact::can_remove_part( int idx, const player &p ) { sel_vehicle_part = &veh->parts[idx]; sel_vpart_info = &sel_vehicle_part->info(); - std::string msg; + std::string nmsg; + bool smash_remove = sel_vpart_info->has_flag( "SMASH_REMOVE" ); - if( veh->has_part( "NO_MODIFY_VEHICLE" ) && !sel_vpart_info->has_flag( "SIMPLE_PART" ) ) { - print_message_to( w_msg, c_light_red, _( "This vehicle cannot be modified in this way.\n" ) ); + if( veh->has_part( "NO_MODIFY_VEHICLE" ) && !sel_vpart_info->has_flag( "SIMPLE_PART" ) && + !smash_remove ) { + msg = _( "This vehicle cannot be modified in this way.\n" ); return false; } else if( sel_vpart_info->has_flag( "NO_UNINSTALL" ) ) { - print_message_to( w_msg, c_light_red, _( "This part cannot be uninstalled.\n" ) ); + msg = _( "This part cannot be uninstalled.\n" ); return false; } if( sel_vehicle_part->is_broken() ) { - msg += string_format( - _( "Removing the broken %1$s may yield some fragments.\n" ), - sel_vehicle_part->name() ); + nmsg += string_format( + _( "Removing the broken %1$s may yield some fragments.\n" ), + sel_vehicle_part->name() ); + } else if( smash_remove ) { + std::set removed_names; + for( const item &it : sel_vehicle_part->pieces_for_broken_part() ) { + removed_names.insert( it.tname() ); + } + nmsg += string_format( _( "Removing the %1$s may yield:\n> %2$s\n" ), + sel_vehicle_part->name(), enumerate_as_string( removed_names ) ); } else { item result_of_removal = sel_vehicle_part->properties_to_item(); - msg += string_format( - _( "Removing the %1$s will yield:\n> %2$s\n" ), - sel_vehicle_part->name(), result_of_removal.display_name() ); + nmsg += string_format( + _( "Removing the %1$s will yield:\n> %2$s\n" ), + sel_vehicle_part->name(), result_of_removal.display_name() ); } const auto reqs = sel_vpart_info->removal_requirements(); - bool ok = format_reqs( msg, reqs, sel_vpart_info->removal_skills, + bool ok = format_reqs( nmsg, reqs, sel_vpart_info->removal_skills, sel_vpart_info->removal_time( p ) ); - msg += _( "Additional requirements:\n" ); + nmsg += _( "Additional requirements:\n" ); int lvl = 0; int str = 0; quality_id qual; bool use_aid = false; bool use_str = false; - item base( sel_vpart_info->item ); if( sel_vpart_info->has_flag( "NEEDS_JACKING" ) ) { qual = qual_JACK; lvl = jack_quality( *veh ); @@ -1766,6 +1770,7 @@ bool veh_interact::can_remove_part( int idx, const player &p ) use_aid = ( max_jack >= lvl ) || can_self_jack(); use_str = g->u.can_lift( *veh ); } else { + item base( sel_vpart_info->item ); qual = qual_LIFT; lvl = std::ceil( units::quantity( base.weight() ) / TOOL_LIFT_FACTOR ); @@ -1791,32 +1796,33 @@ bool veh_interact::can_remove_part( int idx, const player &p ) str_string = string_format( _( "strength %d" ), str ); } - msg += string_format( _( "> %1$s OR %2$s" ), - colorize( aid_string, aid_color ), - colorize( str_string, str_color ) ) + "\n"; + nmsg += string_format( _( "> %1$s OR %2$s" ), + colorize( aid_string, aid_color ), + colorize( str_string, str_color ) ) + "\n"; std::string reason; if( !veh->can_unmount( idx, reason ) ) { //~ %1$s represents the internal color name which shouldn't be translated, %2$s is pre-translated reason - msg += string_format( _( "> %1$s%2$s" ), status_color( false ), reason ) + "\n"; + nmsg += string_format( _( "> %1$s%2$s" ), status_color( false ), reason ) + "\n"; ok = false; } const nc_color desc_color = sel_vehicle_part->is_broken() ? c_dark_gray : c_light_gray; - sel_vehicle_part->info().format_description( msg, desc_color, getmaxx( w_msg ) - 4 ); + sel_vehicle_part->info().format_description( nmsg, desc_color, getmaxx( w_msg ) - 4 ); - print_message_to( w_msg, c_light_gray, msg ); + msg = colorize( nmsg, c_light_gray ); return ok || g->u.has_trait( trait_DEBUG_HS ); } -bool veh_interact::do_remove( std::string &msg ) +void veh_interact::do_remove() { task_reason reason = cant_do( 'o' ); if( reason == INVALID_TARGET ) { msg = _( "No parts here." ); - return false; + return; } - set_title( _( "Choose a part here to remove:" ) ); + restore_on_out_of_scope> prev_title( title ); + title = _( "Choose a part here to remove:" ); int pos = 0; for( size_t i = 0; i < parts_here.size(); i++ ) { @@ -1825,43 +1831,59 @@ bool veh_interact::do_remove( std::string &msg ) break; } } + msg.reset(); - // FIXME: temporarily disable redrawing of lower UIs before this UI is migrated to `ui_adaptor` - ui_adaptor ui( ui_adaptor::disable_uis_below {} ); + shared_ptr_fast current_ui = create_or_get_ui_adaptor(); + + restore_on_out_of_scope prev_overview_enable( overview_enable ); + + restore_on_out_of_scope prev_hilight_part( highlight_part ); 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, true ); - wrefresh( w_parts ); int part = parts_here[ pos ]; bool can_remove = can_remove_part( part, g->u ); - auto sel = [&]( const vehicle_part & pt ) { + overview_enable = [this, part]( const vehicle_part & pt ) { return &pt == &veh->parts[part]; }; - overview( sel ); + + highlight_part = pos; + + calc_overview(); + ui_manager::redraw(); //read input const std::string action = main_context.handle_input(); + msg.reset(); if( can_remove && ( action == "REMOVE" || action == "CONFIRM" ) ) { switch( reason ) { case LOW_MORALE: msg = _( "Your morale is too low to construct…" ); - return false; + return; case LOW_LIGHT: msg = _( "It's too dark to see what you are doing…" ); - return false; + return; case NOT_FREE: msg = _( "You cannot remove that part while something is attached to it." ); - return false; + return; case MOVING_VEHICLE: msg = _( "Better not remove something while driving." ); - return false; + return; default: break; } + + // Modifying a vehicle with rotors will make in not flightworthy (until we've got a better model) + // It can only be the player doing this - an npc won't work well with query_yn + if( veh->would_prevent_flyable( veh->parts[part].info() ) ) { + if( query_yn( + _( "Removing this part will mean that this vehicle is no longer flightworthy. Continue?" ) ) ) { + veh->set_flyable( false ); + } else { + return; + } + } const std::vector helpers = g->u.get_crafting_helpers(); for( const npc *np : helpers ) { add_msg( m_info, _( "%s helps with this task…" ), np->name ); @@ -1869,44 +1891,38 @@ bool veh_interact::do_remove( std::string &msg ) sel_cmd = 'o'; break; } else if( action == "QUIT" ) { - werase( w_parts ); - 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 ); break; } else { move_in_list( pos, action, parts_here.size() ); } } - - return false; } -bool veh_interact::do_siphon( std::string &msg ) +void veh_interact::do_siphon() { switch( cant_do( 's' ) ) { case INVALID_TARGET: msg = _( "The vehicle has no liquid fuel left to siphon." ); - return false; + return; case LACK_TOOLS: msg = _( "You need a hose to siphon liquid fuel." ); - return false; + return; case MOVING_VEHICLE: msg = _( "You can't siphon from a moving vehicle." ); - return false; + return; default: break; } - set_title( _( "Select part to siphon:" ) ); + restore_on_out_of_scope> prev_title( title ); + title = _( "Select part to siphon:" ); auto sel = [&]( const vehicle_part & pt ) { return( pt.is_tank() && !pt.base.contents.empty() && - pt.base.contents.only_item().made_of( LIQUID ) ); + pt.base.contents.only_item().made_of( phase_id::LIQUID ) ); }; auto act = [&]( const vehicle_part & pt ) { @@ -1917,13 +1933,12 @@ bool veh_interact::do_siphon( std::string &msg ) if( liquid_handler::handle_liquid( liquid, nullptr, 1, nullptr, veh, idx ) ) { veh->drain( idx, liq_charges - liquid.charges ); } - return true; }; - return overview( sel, act ); + overview( sel, act ); } -bool veh_interact::do_unload( std::string &msg ) +bool veh_interact::do_unload() { switch( cant_do( 'd' ) ) { case INVALID_TARGET: @@ -1939,18 +1954,18 @@ bool veh_interact::do_unload( std::string &msg ) } act_vehicle_unload_fuel( veh ); - // force redraw return true; } -bool veh_interact::do_assign_crew( std::string &msg ) +void veh_interact::do_assign_crew() { if( cant_do( 'w' ) != CAN_DO ) { msg = _( "Need at least one seat and an ally to assign crew members." ); - return false; + return; } - set_title( _( "Assign crew positions:" ) ); + restore_on_out_of_scope> prev_title( title ); + title = _( "Assign crew positions:" ); auto sel = []( const vehicle_part & pt ) { return pt.is_seat(); @@ -1975,15 +1990,12 @@ bool veh_interact::do_assign_crew( std::string &msg ) const auto &who = *g->critter_by_id( character_id( menu.ret ) ); veh->assign_seat( pt, who ); } - - // force redraw - return true; }; - return overview( sel, act ); + overview( sel, act ); } -bool veh_interact::do_rename( std::string & ) +void veh_interact::do_rename() { std::string name = string_input_popup() .title( _( "Enter new vehicle name:" ) ) @@ -1997,15 +2009,13 @@ bool veh_interact::do_rename( std::string & ) overmap_buffer.add_vehicle( veh ); } } - - return true; } -bool veh_interact::do_relabel( std::string &msg ) +void veh_interact::do_relabel() { if( cant_do( 'a' ) == INVALID_TARGET ) { msg = _( "There are no parts here to label." ); - return false; + return; } const vpart_position vp( *veh, cpart ); @@ -2016,10 +2026,6 @@ bool veh_interact::do_relabel( std::string &msg ) .query_string(); // empty input removes the label vp.set_label( text ); - // refresh w_disp & w_part windows: - move_cursor( point_zero ); - - return false; } /** @@ -2051,9 +2057,6 @@ bool veh_interact::can_potentially_install( const vpart_info &vpart ) */ void veh_interact::move_cursor( const point &d, int dstart_at ) { - const int hw = getmaxx( w_disp ) / 2; - const int hh = getmaxy( w_disp ) / 2; - dd += d.rotate( 3 ); if( d != point_zero ) { start_limit = 0; @@ -2061,7 +2064,6 @@ void veh_interact::move_cursor( const point &d, int dstart_at ) start_at += dstart_at; } - display_veh(); // Update the current active component index to the new position. cpart = part_at( point_zero ); const point vd = -dd; @@ -2073,18 +2075,6 @@ void veh_interact::move_cursor( const point &d, int dstart_at ) if( ovp && &ovp->vehicle() != veh ) { obstruct = true; } - nc_color col = cpart >= 0 ? veh->part_color( cpart ) : c_black; - int sym = cpart >= 0 ? veh->part_sym( cpart ) : ' '; - mvwputch( w_disp, point( hw, hh ), obstruct ? red_background( col ) : hilite( col ), - 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, true ); - wrefresh( w_parts ); - - werase( w_msg ); - veh->print_vparts_descs( w_msg, getmaxy( w_msg ), getmaxx( w_msg ), cpart, start_at, start_limit ); - wrefresh( w_msg ); can_mount.clear(); if( !obstruct ) { @@ -2095,7 +2085,7 @@ void veh_interact::move_cursor( const point &d, int dstart_at ) continue; } if( veh->can_mount( vd, vp.get_id() ) ) { - if( vp.get_id() != vpart_shapes[ vp.name() + vp.item ][ 0 ]->get_id() ) { + if( vp.get_id() != vpart_shapes[ vp.name() + vp.item.str() ][ 0 ]->get_id() ) { // only add first shape to install list continue; } @@ -2132,7 +2122,6 @@ void veh_interact::move_cursor( const point &d, int dstart_at ) void veh_interact::display_grid() { // border window - catacurses::window w_border = catacurses::newwin( TERMY, TERMX, point_zero ); draw_border( w_border ); // match grid lines @@ -2146,39 +2135,38 @@ void veh_interact::display_grid() mvwputch( w_border, point( 0, y_list ), BORDER_COLOR, LINE_XXXO ); // -| mvwputch( w_border, point( TERMX - 1, y_list ), BORDER_COLOR, LINE_XOXX ); - wrefresh( w_border ); - // TODO: move code using w_border into a separate scope - w_border = catacurses::window(); - const int grid_w = getmaxx( w_grid ); + const int grid_w = getmaxx( w_border ) - 2; // Two lines dividing the three middle sections. for( int i = 1 + getmaxy( w_mode ); i < ( 1 + getmaxy( w_mode ) + page_size ); ++i ) { // | - mvwputch( w_grid, point( getmaxx( w_disp ), i ), BORDER_COLOR, LINE_XOXO ); + mvwputch( w_border, point( getmaxx( w_disp ) + 1, i + 1 ), BORDER_COLOR, LINE_XOXO ); // | - mvwputch( w_grid, point( getmaxx( w_disp ) + 1 + getmaxx( w_list ), i ), BORDER_COLOR, LINE_XOXO ); + mvwputch( w_border, point( getmaxx( w_disp ) + 2 + getmaxx( w_list ), i + 1 ), BORDER_COLOR, + LINE_XOXO ); } // Two lines dividing the vertical menu sections. for( int i = 0; i < grid_w; ++i ) { // - - mvwputch( w_grid, point( i, getmaxy( w_mode ) ), BORDER_COLOR, LINE_OXOX ); + mvwputch( w_border, point( i + 1, getmaxy( w_mode ) + 1 ), BORDER_COLOR, LINE_OXOX ); // - - mvwputch( w_grid, point( i, getmaxy( w_mode ) + 1 + page_size ), BORDER_COLOR, LINE_OXOX ); + mvwputch( w_border, point( i + 1, getmaxy( w_mode ) + 2 + page_size ), BORDER_COLOR, LINE_OXOX ); } // Fix up the line intersections. - mvwputch( w_grid, point( getmaxx( w_disp ), getmaxy( w_mode ) ), BORDER_COLOR, LINE_OXXX ); + mvwputch( w_border, point( getmaxx( w_disp ) + 1, getmaxy( w_mode ) + 1 ), BORDER_COLOR, + LINE_OXXX ); // _|_ - mvwputch( w_grid, point( getmaxx( w_disp ), getmaxy( w_mode ) + 1 + page_size ), BORDER_COLOR, + mvwputch( w_border, point( getmaxx( w_disp ) + 1, getmaxy( w_mode ) + 2 + page_size ), BORDER_COLOR, LINE_XXOX ); - mvwputch( w_grid, point( getmaxx( w_disp ) + 1 + getmaxx( w_list ), getmaxy( w_mode ) ), + mvwputch( w_border, point( getmaxx( w_disp ) + 2 + getmaxx( w_list ), getmaxy( w_mode ) + 1 ), BORDER_COLOR, LINE_OXXX ); // _|_ - mvwputch( w_grid, point( getmaxx( w_disp ) + 1 + getmaxx( w_list ), - getmaxy( w_mode ) + 1 + page_size ), + mvwputch( w_border, point( getmaxx( w_disp ) + 2 + getmaxx( w_list ), + getmaxy( w_mode ) + 2 + page_size ), BORDER_COLOR, LINE_XXOX ); - wrefresh( w_grid ); + wnoutrefresh( w_border ); } /** @@ -2247,7 +2235,22 @@ void veh_interact::display_veh() } mvwputch( w_disp, h_size + q, col, special_symbol( sym ) ); } - wrefresh( w_disp ); + + const int hw = getmaxx( w_disp ) / 2; + const int hh = getmaxy( w_disp ) / 2; + const point vd = -dd; + const point q = veh->coord_translate( vd ); + const tripoint vehp = veh->global_pos3() + q; + bool obstruct = g->m.impassable_ter_furn( vehp ); + const optional_vpart_position ovp = g->m.veh_at( vehp ); + if( ovp && &ovp->vehicle() != veh ) { + obstruct = true; + } + nc_color col = cpart >= 0 ? veh->part_color( cpart ) : c_black; + int sym = cpart >= 0 ? veh->part_sym( cpart ) : ' '; + mvwputch( w_disp, point( hw, hh ), obstruct ? red_background( col ) : hilite( col ), + special_symbol( sym ) ); + wnoutrefresh( w_disp ); } static std::string wheel_state_description( const vehicle &veh ) @@ -2494,7 +2497,18 @@ void veh_interact::display_stats() const ( x[ i ] + 10 < getmaxx( w_stats ) ), ( x[ i ] + 10 < getmaxx( w_stats ) ) ); - wrefresh( w_stats ); + if( install_info ) { + const int details_w = getmaxx( w_details ); + // clear rightmost blocks of w_stats to avoid overlap + int stats_col_2 = 33; + int stats_col_3 = 65 + ( ( TERMX - FULL_SCREEN_WIDTH ) / 4 ); + int clear_x = getmaxx( w_stats ) - details_w + 1 >= stats_col_3 ? stats_col_3 : stats_col_2; + for( int i = 0; i < getmaxy( w_stats ); i++ ) { + mvwhline( w_stats, point( clear_x, i ), ' ', getmaxx( w_stats ) - clear_x ); + } + } + + wnoutrefresh( w_stats ); } void veh_interact::display_name() @@ -2506,7 +2520,7 @@ void veh_interact::display_name() mvwprintz( w_name, point( 1 + utf8_width( _( "Name: " ) ), 0 ), !veh->is_owned_by( g->u, true ) ? c_light_red : c_light_green, string_format( _( "%s (%s)" ), veh->name, veh->get_owner_name() ) ); - wrefresh( w_name ); + wnoutrefresh( w_name ); } /** @@ -2516,52 +2530,57 @@ void veh_interact::display_mode() { werase( w_mode ); - size_t esc_pos = display_esc( w_mode ); - - // broken indentation preserved to avoid breaking git history for large number of lines - const std::array actions = { { - { _( "nstall" ) }, - { _( "epair" ) }, - { _( "end" ) }, - { _( "reill" ) }, - { _( "remve" ) }, - { _( "iphon" ) }, - { _( "unloa" ) }, - { _( "cre" ) }, - { _( "rname" ) }, - { _( "lbel" ) }, - } - }; + if( title.has_value() ) { + nc_color title_col = c_light_gray; + // NOLINTNEXTLINE(cata-use-named-point-constants) + print_colored_text( w_mode, point( 1, 0 ), title_col, title_col, title.value() ); + } else { + size_t esc_pos = display_esc( w_mode ); + + // broken indentation preserved to avoid breaking git history for large number of lines + const std::array actions = { { + { _( "nstall" ) }, + { _( "epair" ) }, + { _( "end" ) }, + { _( "reill" ) }, + { _( "remve" ) }, + { _( "iphon" ) }, + { _( "unloa" ) }, + { _( "cre" ) }, + { _( "rname" ) }, + { _( "lbel" ) }, + } + }; - const std::array::value> enabled = { { - !cant_do( 'i' ), - !cant_do( 'r' ), - !cant_do( 'm' ), - !cant_do( 'f' ), - !cant_do( 'o' ), - !cant_do( 's' ), - !cant_do( 'd' ), - !cant_do( 'w' ), - true, // 'rename' is always available - !cant_do( 'a' ), - } - }; + const std::array::value> enabled = { { + !cant_do( 'i' ), + !cant_do( 'r' ), + !cant_do( 'm' ), + !cant_do( 'f' ), + !cant_do( 'o' ), + !cant_do( 's' ), + !cant_do( 'd' ), + !cant_do( 'w' ), + true, // 'rename' is always available + !cant_do( 'a' ), + } + }; - int pos[std::tuple_size::value + 1]; - pos[0] = 1; - for( size_t i = 0; i < actions.size(); i++ ) { - pos[i + 1] = pos[i] + utf8_width( actions[i] ) - 2; - } - int spacing = static_cast( ( esc_pos - 1 - pos[actions.size()] ) / actions.size() ); - int shift = static_cast( ( esc_pos - pos[actions.size()] - spacing * - ( actions.size() - 1 ) ) / 2 ) - 1; - for( size_t i = 0; i < actions.size(); i++ ) { - shortcut_print( w_mode, point( pos[i] + spacing * i + shift, 0 ), - enabled[i] ? c_light_gray : c_dark_gray, enabled[i] ? c_light_green : c_green, - actions[i] ); + int pos[std::tuple_size::value + 1]; + pos[0] = 1; + for( size_t i = 0; i < actions.size(); i++ ) { + pos[i + 1] = pos[i] + utf8_width( actions[i] ) - 2; + } + int spacing = static_cast( ( esc_pos - 1 - pos[actions.size()] ) / actions.size() ); + int shift = static_cast( ( esc_pos - pos[actions.size()] - spacing * + ( actions.size() - 1 ) ) / 2 ) - 1; + for( size_t i = 0; i < actions.size(); i++ ) { + shortcut_print( w_mode, point( pos[i] + spacing * i + shift, 0 ), + enabled[i] ? c_light_gray : c_dark_gray, enabled[i] ? c_light_green : c_green, + actions[i] ); + } } - - wrefresh( w_mode ); + wnoutrefresh( w_mode ); } size_t veh_interact::display_esc( const catacurses::window &win ) @@ -2570,7 +2589,6 @@ size_t veh_interact::display_esc( const catacurses::window &win ) // right text align size_t pos = getmaxx( win ) - utf8_width( backstr ) + 2; shortcut_print( win, point( pos, 0 ), c_light_gray, c_light_green, backstr ); - wrefresh( win ); return pos; } @@ -2595,7 +2613,22 @@ void veh_interact::display_list( size_t pos, const std::vectortab_list; + auto &tab_list_short = install_info->tab_list_short; + auto &tab = install_info->tab; + // draw tab menu + int tab_x = 0; + for( size_t i = 0; i < tab_list.size(); i++ ) { + std::string tab_name = ( tab == i ) ? tab_list[i] : tab_list_short[i]; // full name for selected tab + tab_x += ( tab == i ); // add a space before selected tab + draw_subtab( w_list, tab_x, tab_name, tab == i, false ); + tab_x += ( 1 + utf8_width( tab_name ) + ( tab == + i ) ); // one space padding and add a space after selected tab + } + } + wnoutrefresh( w_list ); } /** @@ -2604,40 +2637,17 @@ void veh_interact::display_list( size_t pos, const std::vector= stats_col_3 ? stats_col_3 : stats_col_2; - for( int i = 0; i < getmaxy( w_stats ); i++ ) { - mvwhline( w_stats, point( clear_x, i ), ' ', getmaxx( w_stats ) - clear_x ); - } - - wrefresh( w_stats ); - - w_details = catacurses::newwin( details_h, details_w, point( details_x, details_y ) ); - } else { - werase( w_details ); - } + werase( w_details ); wborder( w_details, LINE_XOXO, LINE_XOXO, LINE_OXOX, LINE_OXOX, LINE_OXXO, LINE_OOXX, LINE_XXOO, LINE_XOOX ); if( part == nullptr ) { - wrefresh( w_details ); + wnoutrefresh( w_details ); return; } - int details_w = getmaxx( w_details ); // displays data in two columns int column_width = details_w / 2; int col_1 = 2; @@ -2728,7 +2738,7 @@ void veh_interact::display_details( const vpart_info *part ) // line 4 [horizontal]: fuel_type (if applicable) // line 4 [vertical/hybrid]: (column 1) fuel_type (if applicable) (column 2) power (if applicable) // line 5 [horizontal]: power (if applicable) - if( part->fuel_type != "null" ) { + if( !part->fuel_type.is_null() ) { fold_and_print( w_details, point( col_1, line + 4 ), column_width, c_white, _( "Charge: %s" ), item::nname( part->fuel_type ) ); @@ -2751,7 +2761,7 @@ void veh_interact::display_details( const vpart_info *part ) // 6 [horizontal]: (column 1) flags (column 2) battery capacity (if applicable) fold_and_print( w_details, point( col_1, line + 5 ), details_w, c_yellow, label ); - if( part->fuel_type == "battery" && !part->has_flag( VPFLAG_ENGINE ) && + if( part->fuel_type == itype_battery && !part->has_flag( VPFLAG_ENGINE ) && !part->has_flag( VPFLAG_ALTERNATOR ) ) { const cata::value_ptr &battery = item::find_type( part->item )->magazine; fold_and_print( w_details, point( col_2, line + 5 ), column_width, c_white, @@ -2769,7 +2779,7 @@ void veh_interact::display_details( const vpart_info *part ) } } - wrefresh( w_details ); + wnoutrefresh( w_details ); } void veh_interact::count_durability() @@ -2813,7 +2823,7 @@ void act_vehicle_siphon( vehicle *veh ) std::vector fuels; bool has_liquid = false; for( const vpart_reference &vp : veh->get_any_parts( VPFLAG_FLUIDTANK ) ) { - if( vp.part().get_base().contents.legacy_front().made_of( LIQUID ) ) { + if( vp.part().get_base().contents.legacy_front().made_of( phase_id::LIQUID ) ) { has_liquid = true; break; } @@ -2825,7 +2835,7 @@ void act_vehicle_siphon( vehicle *veh ) std::string title = _( "Select tank to siphon:" ); auto sel = []( const vehicle_part & pt ) { - return pt.is_tank() && pt.get_base().contents.legacy_front().made_of( LIQUID ); + return pt.is_tank() && pt.get_base().contents.legacy_front().made_of( phase_id::LIQUID ); }; vehicle_part &tank = veh_interact::select_part( *veh, sel, title ); if( tank ) { @@ -2846,7 +2856,7 @@ void act_vehicle_unload_fuel( vehicle *veh ) for( auto &e : veh->fuels_left() ) { const itype *type = item::find_type( e.first ); - if( e.first == fuel_type_battery || type->phase != SOLID ) { + if( e.first == fuel_type_battery || type->phase != phase_id::SOLID ) { // This skips battery and plutonium cells continue; } @@ -2861,7 +2871,7 @@ void act_vehicle_unload_fuel( vehicle *veh ) uilist smenu; smenu.text = _( "Remove what?" ); for( auto &fuel : fuels ) { - if( fuel == "plut_cell" && veh->fuel_left( fuel ) < PLUTONIUM_CHARGES ) { + if( fuel == itype_plut_cell && veh->fuel_left( fuel ) < PLUTONIUM_CHARGES ) { continue; } smenu.addentry( item::nname( fuel ) ); @@ -2877,7 +2887,7 @@ void act_vehicle_unload_fuel( vehicle *veh ) } int qty = veh->fuel_left( fuel ); - if( fuel == "plut_cell" ) { + if( fuel == itype_plut_cell ) { if( qty / PLUTONIUM_CHARGES == 0 ) { add_msg( m_info, _( "The vehicle has no charged plutonium cells." ) ); return; @@ -3048,7 +3058,7 @@ void veh_interact::complete_vehicle( player &p ) contained.charges -= pt.base.fill_with( *contained.type, contained.charges ); src->on_contents_changed(); - if( pt.ammo_remaining() != pt.ammo_capacity() ) { + if( pt.remaining_ammo_capacity() ) { //~ 1$s vehicle name, 2$s tank name p.add_msg_if_player( m_good, _( "You refill the %1$s's %2$s." ), veh->name, pt.name() ); } else { @@ -3127,25 +3137,33 @@ void veh_interact::complete_vehicle( player &p ) veh->tow_data.clear_towing(); } bool broken = veh->parts[ vehicle_part ].is_broken(); + bool smash_remove = veh->parts[vehicle_part].info().has_flag( "SMASH_REMOVE" ); if( broken ) { p.add_msg_if_player( _( "You remove the broken %1$s from the %2$s." ), veh->parts[ vehicle_part ].name(), veh->name ); + } else if( smash_remove ) { + p.add_msg_if_player( _( "You smash the %1$s to bits, removing it from the %2$s." ), + veh->parts[ vehicle_part ].name(), veh->name ); } else { p.add_msg_if_player( _( "You remove the %1$s from the %2$s." ), veh->parts[ vehicle_part ].name(), veh->name ); } - if( !broken ) { - resulting_items.push_back( veh->parts[vehicle_part].properties_to_item() ); - for( const auto &sk : vpinfo.install_skills ) { + if( broken ) { + item_group::ItemList pieces = veh->parts[vehicle_part].pieces_for_broken_part(); + resulting_items.insert( resulting_items.end(), pieces.begin(), pieces.end() ); + } else { + if( smash_remove ) { + item_group::ItemList pieces = veh->parts[vehicle_part].pieces_for_broken_part(); + resulting_items.insert( resulting_items.end(), pieces.begin(), pieces.end() ); + } else { + resulting_items.push_back( veh->parts[vehicle_part].properties_to_item() ); + } + for( const std::pair &sk : vpinfo.install_skills ) { // removal is half as educational as installation p.practice( sk.first, veh_utils::calc_xp_gain( vpinfo, sk.first ) / 2 ); } - - } else { - auto pieces = veh->parts[vehicle_part].pieces_for_broken_part(); - resulting_items.insert( resulting_items.end(), pieces.begin(), pieces.end() ); } if( veh->parts.size() < 2 ) { diff --git a/src/veh_interact.h b/src/veh_interact.h index 2cb78e140d5d8..588950b78c336 100644 --- a/src/veh_interact.h +++ b/src/veh_interact.h @@ -13,6 +13,7 @@ #include "input.h" #include "inventory.h" #include "item_location.h" +#include "memory_fast.h" #include "player_activity.h" #include "point.h" #include "type_id.h" @@ -34,6 +35,7 @@ enum task_reason { LOW_LIGHT // Player cannot see enough to work (for operations that require it) }; +class ui_adaptor; class vehicle; struct vehicle_part; @@ -78,7 +80,7 @@ class veh_interact int fuel_index = 0; /** Starting index of where to start printing fuels from */ // height of the stats window const int stats_h = 8; - catacurses::window w_grid; + catacurses::window w_border; catacurses::window w_mode; catacurses::window w_msg; catacurses::window w_disp; @@ -87,7 +89,16 @@ class veh_interact catacurses::window w_list; catacurses::window w_details; catacurses::window w_name; - catacurses::window w_owner; + + weak_ptr_fast ui; + + cata::optional title; + cata::optional msg; + + int highlight_part = -1; + + struct install_info_t; + std::unique_ptr install_info; vehicle *veh; inventory crafting_inv; @@ -98,9 +109,9 @@ class veh_interact // maximum level of available jacking equipment (if any) int max_jack; - player_activity serialize_activity(); + shared_ptr_fast create_or_get_ui_adaptor(); - void set_title( const std::string &msg ) const; + player_activity serialize_activity(); /** Format list of requirements returning true if all are met */ bool format_reqs( std::string &msg, const requirement_data &reqs, @@ -128,19 +139,19 @@ class veh_interact * One function for each specific task * @warning presently functions may mutate local state * @param msg failure message to display (if any) - * @return whether a redraw is required (typically necessary if task opened subwindows) */ /*@{*/ - bool do_install( std::string &msg ); - bool do_repair( std::string &msg ); - bool do_mend( std::string &msg ); - bool do_refill( std::string &msg ); - bool do_remove( std::string &msg ); - bool do_rename( std::string &msg ); - bool do_siphon( std::string &msg ); - bool do_unload( std::string &msg ); - bool do_assign_crew( std::string &msg ); - bool do_relabel( std::string &msg ); + void do_install(); + void do_repair(); + void do_mend(); + void do_refill(); + void do_remove(); + void do_rename(); + void do_siphon(); + // Returns true if exiting the screen + bool do_unload(); + void do_assign_crew(); + void do_relabel(); /*@}*/ void display_grid(); @@ -152,17 +163,48 @@ class veh_interact void display_details( const vpart_info *part ); size_t display_esc( const catacurses::window &win ); + struct part_option { + part_option( const std::string &key, vehicle_part *part, char hotkey, + std::function details ) : + key( key ), part( part ), hotkey( hotkey ), details( details ) {} + + part_option( const std::string &key, vehicle_part *part, char hotkey, + std::function details, + std::function message ) : + key( key ), part( part ), hotkey( hotkey ), details( details ), message( message ) {} + + std::string key; + vehicle_part *part; + + /** Can @param action be run for this entry? */ + char hotkey; + + /** Writes any extra details for this entry */ + std::function details; + + /** Writes to message window when part is selected */ + std::function message; + }; + std::vector overview_opts; + std::map> overview_headers; + using overview_enable_t = std::function; + using overview_action_t = std::function; + overview_enable_t overview_enable; + overview_action_t overview_action; + int overview_pos = -1; + + void calc_overview(); + void display_overview(); /** * Display overview of parts, optionally with interactive selection of one part * * @param enable used to determine parts of interest. If \p action also present, these parts are the ones that can be selected. Otherwise, these are the parts that will be highlighted - * @param action callback when part is selected, should return true if redraw required. - * @return whether redraw is required (always false if no action was run) + * @param action callback when part is selected. */ - bool overview( std::function enable = {}, - std::function action = {} ); + void overview( const overview_enable_t &enable = {}, + const overview_action_t &action = {} ); void move_overview_line( int ); void count_durability(); diff --git a/src/veh_type.cpp b/src/veh_type.cpp index 159981176e4af..433e57782b73c 100644 --- a/src/veh_type.cpp +++ b/src/veh_type.cpp @@ -73,6 +73,7 @@ static const std::unordered_map vpart_bitflag_map = { "SEATBELT", VPFLAG_SEATBELT }, { "WHEEL", VPFLAG_WHEEL }, { "ROTOR", VPFLAG_ROTOR }, + { "ROTOR_SIMPLE", VPFLAG_ROTOR_SIMPLE }, { "FLOATS", VPFLAG_FLOATS }, { "DOME_LIGHT", VPFLAG_DOME_LIGHT }, { "AISLE_LIGHT", VPFLAG_AISLE_LIGHT }, @@ -336,6 +337,7 @@ void vpart_info::load( const JsonObject &jo, const std::string &src ) assign( jo, "power", def.power ); assign( jo, "epower", def.epower ); assign( jo, "emissions", def.emissions ); + assign( jo, "exhaust", def.exhaust ); assign( jo, "fuel_type", def.fuel_type ); assign( jo, "default_ammo", def.default_ammo ); assign( jo, "folded_volume", def.folded_volume ); @@ -421,7 +423,7 @@ void vpart_info::load( const JsonObject &jo, const std::string &src ) load_wheel( def.wheel_info, jo ); } - if( def.has_flag( "ROTOR" ) ) { + if( def.has_flag( "ROTOR" ) || def.has_flag( "ROTOR_SIMPLE" ) ) { load_rotor( def.rotor_info, jo ); } @@ -612,14 +614,14 @@ void vpart_info::check() // Fuel type errors are serious and need fixing now if( !item::type_is_defined( part.fuel_type ) ) { debugmsg( "vehicle part %s uses undefined fuel %s", part.id.c_str(), part.item.c_str() ); - part.fuel_type = "null"; - } else if( part.fuel_type != "null" && !item::find_type( part.fuel_type )->fuel && + part.fuel_type = itype_id::NULL_ID(); + } else if( !part.fuel_type.is_null() && !item::find_type( part.fuel_type )->fuel && !type_can_contain( base_item_type, part.fuel_type ) ) { // HACK: Tanks are allowed to specify non-fuel "fuel", // because currently legacy blazemod uses it as a hack to restrict content types debugmsg( "non-tank vehicle part %s uses non-fuel item %s as fuel, setting to null", part.id.c_str(), part.fuel_type.c_str() ); - part.fuel_type = "null"; + part.fuel_type = itype_id::NULL_ID(); } if( part.has_flag( "TURRET" ) && !base_item_type.gun ) { debugmsg( "vehicle part %s has the TURRET flag, but is not made from a gun item", part.id.c_str() ); @@ -627,9 +629,13 @@ void vpart_info::check() if( !part.emissions.empty() && !part.has_flag( "EMITTER" ) ) { debugmsg( "vehicle part %s has emissions set, but the EMITTER flag is not set", part.id.c_str() ); } + if( !part.exhaust.empty() && !part.has_flag( "EMITTER" ) ) { + debugmsg( "vehicle part %s has exhaust set, but the EMITTER flag is not set", part.id.c_str() ); + } if( part.has_flag( "EMITTER" ) ) { - if( part.emissions.empty() ) { - debugmsg( "vehicle part %s has the EMITTER flag, but no emissions were set", part.id.c_str() ); + if( part.emissions.empty() && part.exhaust.empty() ) { + debugmsg( "vehicle part %s has the EMITTER flag, but no emissions or exhaust were set", + part.id.c_str() ); } else { for( const emit_id &e : part.emissions ) { if( !e.is_valid() ) { @@ -637,11 +643,17 @@ void vpart_info::check() part.id.c_str(), e.str().c_str() ); } } + for( const emit_id &e : part.exhaust ) { + if( !e.is_valid() ) { + debugmsg( "vehicle part %s has the EMITTER flag, but invalid exhaust %s was set", + part.id.c_str(), e.str().c_str() ); + } + } } } if( part.has_flag( "WHEEL" ) && !base_item_type.wheel ) { - debugmsg( "vehicle part %s has the WHEEL flag, but base item %s is not a wheel. THIS WILL CRASH!", - part.id.c_str(), part.item ); + debugmsg( "vehicle part %s has the WHEEL flag, but base item %s is not a wheel. " + "THIS WILL CRASH!", part.id.str(), part.item.str() ); } for( auto &q : part.qualities ) { if( !q.first.is_valid() ) { @@ -892,7 +904,10 @@ float vpart_info::wheel_or_rating() const int vpart_info::rotor_diameter() const { - return has_flag( VPFLAG_ROTOR ) ? rotor_info->rotor_diameter : 0; + if( has_flag( VPFLAG_ROTOR ) || has_flag( VPFLAG_ROTOR_SIMPLE ) ) { + return rotor_info->rotor_diameter; + } + return 0; } const cata::optional &vpart_info::get_workbench_info() const @@ -1018,12 +1033,10 @@ void vehicle_prototype::load( const JsonObject &jo ) if( spawn_info.has_array( "items" ) ) { //Array of items that all spawn together (i.e. jack+tire) - for( const std::string line : spawn_info.get_array( "items" ) ) { - next_spawn.item_ids.push_back( line ); - } + spawn_info.read( "items", next_spawn.item_ids, true ); } else if( spawn_info.has_string( "items" ) ) { //Treat single item as array - next_spawn.item_ids.push_back( spawn_info.get_string( "items" ) ); + next_spawn.item_ids.push_back( itype_id( spawn_info.get_string( "items" ) ) ); } if( spawn_info.has_array( "item_groups" ) ) { //Pick from a group of items, just like map::place_items @@ -1106,7 +1119,7 @@ void vehicle_prototype::finalize() debugmsg( "init_vehicles: tank %s specified invalid fuel in %s", pt.part.c_str(), id.c_str() ); } } else { - if( pt.fuel != "null" ) { + if( !pt.fuel.is_null() ) { debugmsg( "init_vehicles: non-fuel store part %s with fuel in %s", pt.part.c_str(), id.c_str() ); } } diff --git a/src/veh_type.h b/src/veh_type.h index af006bf9b0113..36727e6fac291 100644 --- a/src/veh_type.h +++ b/src/veh_type.h @@ -22,9 +22,6 @@ #include "units.h" class player; - -using itype_id = std::string; - class JsonObject; class vehicle; @@ -49,6 +46,7 @@ enum vpart_bitflags : int { VPFLAG_COOLER, VPFLAG_WHEEL, VPFLAG_ROTOR, + VPFLAG_ROTOR_SIMPLE, VPFLAG_MOUNTABLE, VPFLAG_FLOATS, VPFLAG_DOME_LIGHT, @@ -209,10 +207,10 @@ class vpart_info std::set emissions; /** Fuel type of engine or tank */ - itype_id fuel_type = "null"; + itype_id fuel_type = itype_id::NULL_ID(); /** Default ammo (for turrets) */ - itype_id default_ammo = "null"; + itype_id default_ammo = itype_id::NULL_ID(); /** Volume of a foldable part when folded */ units::volume folded_volume = 0_ml; @@ -361,6 +359,14 @@ class vpart_info static void reset(); static const std::map &all(); + + /** + * Exhaust emissions of part + + * If the vehicle has an exhaust part, it is emitted there; + * otherwise, it is emitted in place + */ + std::set exhaust; }; struct vehicle_item_spawn { @@ -385,7 +391,7 @@ struct vehicle_prototype { int with_ammo = 0; std::set ammo_types; std::pair ammo_qty = { -1, -1 }; - itype_id fuel = "null"; + itype_id fuel = itype_id::NULL_ID(); }; vehicle_prototype(); diff --git a/src/vehicle.cpp b/src/vehicle.cpp index af840ba27e6c2..7a24cb9978a1c 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -46,6 +46,7 @@ #include "math_defines.h" #include "messages.h" #include "monster.h" +#include "move_mode.h" #include "npc.h" #include "options.h" #include "output.h" @@ -78,10 +79,10 @@ static const itype_id fuel_type_muscle( "muscle" ); static const itype_id fuel_type_plutonium_cell( "plut_cell" ); static const itype_id fuel_type_wind( "wind" ); -static const fault_id fault_belt( "fault_engine_belt_drive" ); -static const fault_id fault_filter_air( "fault_engine_filter_air" ); -static const fault_id fault_filter_fuel( "fault_engine_filter_fuel" ); -static const fault_id fault_immobiliser( "fault_engine_immobiliser" ); +static const fault_id fault_engine_belt_drive( "fault_engine_belt_drive" ); +static const fault_id fault_engine_filter_air( "fault_engine_filter_air" ); +static const fault_id fault_engine_filter_fuel( "fault_engine_filter_fuel" ); +static const fault_id fault_engine_immobiliser( "fault_engine_immobiliser" ); static const activity_id ACT_VEHICLE( "ACT_VEHICLE" ); @@ -90,6 +91,12 @@ static const bionic_id bio_jointservo( "bio_jointservo" ); static const efftype_id effect_harnessed( "harnessed" ); static const efftype_id effect_winded( "winded" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_plut_cell( "plut_cell" ); +static const itype_id itype_water( "water" ); +static const itype_id itype_water_clean( "water_clean" ); +static const itype_id itype_water_purifier( "water_purifier" ); + static const std::string flag_PERPETUAL( "PERPETUAL" ); static bool is_sm_tile_outside( const tripoint &real_global_pos ); @@ -143,10 +150,11 @@ class DefaultRemovePartHandler : public RemovePartHandler } // TODO: maybe do this for all the nearby NPCs as well? - if( g->u.get_grab_type() == OBJECT_VEHICLE && g->u.grab_point == veh.global_part_pos3( part ) ) { + if( g->u.get_grab_type() == object_type::VEHICLE && + g->u.grab_point == veh.global_part_pos3( part ) ) { if( veh.parts_at_relative( veh.parts[part].mount, false ).empty() ) { add_msg( m_info, _( "The vehicle part you were holding has been destroyed!" ) ); - g->u.grab( OBJECT_NONE ); + g->u.grab( object_type::NONE ); } } @@ -500,37 +508,43 @@ void vehicle::init_state( int init_veh_fuel, int init_veh_status ) } if( pt.is_reactor() ) { + const ammotype plut( "plut_cell" ); if( veh_fuel_mult == 100 ) { // Mint condition vehicle - pt.ammo_set( "plut_cell", pt.ammo_capacity() ); + pt.ammo_set( itype_plut_cell ); } 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 ); + pt.ammo_set( itype_plut_cell, pt.ammo_capacity( plut ) * ( 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 ); + pt.ammo_set( itype_plut_cell, pt.ammo_capacity( plut ) * ( veh_fuel_mult - rng( 0, 10 ) ) / 100 ); } else { - pt.ammo_set( "plut_cell", pt.ammo_capacity() * veh_fuel_mult / 100 ); + pt.ammo_set( itype_plut_cell, pt.ammo_capacity( plut ) * veh_fuel_mult / 100 ); } } if( pt.is_battery() ) { + const ammotype battery( "battery" ); if( veh_fuel_mult == 100 ) { // Mint condition vehicle - pt.ammo_set( "battery", pt.ammo_capacity() ); + pt.ammo_set( itype_battery ); } else if( one_in( 2 ) && veh_fuel_mult > 0 ) { // Randomize battery ammo a bit - pt.ammo_set( "battery", pt.ammo_capacity() * ( veh_fuel_mult + rng( 0, 10 ) ) / 100 ); + pt.ammo_set( itype_battery, pt.ammo_capacity( battery ) * ( veh_fuel_mult + rng( 0, 10 ) ) / 100 ); } else if( one_in( 2 ) && veh_fuel_mult > 0 ) { - pt.ammo_set( "battery", pt.ammo_capacity() * ( veh_fuel_mult - rng( 0, 10 ) ) / 100 ); + pt.ammo_set( itype_battery, pt.ammo_capacity( battery ) * ( veh_fuel_mult - rng( 0, 10 ) ) / 100 ); } else { - pt.ammo_set( "battery", pt.ammo_capacity() * veh_fuel_mult / 100 ); + pt.ammo_set( itype_battery, pt.ammo_capacity( battery ) * veh_fuel_mult / 100 ); } } - if( pt.is_tank() && type->parts[p].fuel != "null" ) { - int qty = pt.ammo_capacity() * veh_fuel_mult / 100; - qty *= std::max( item::find_type( type->parts[p].fuel )->stack_size, 1 ); - qty /= to_milliliter( units::legacy_volume_factor ); - pt.ammo_set( type->parts[ p ].fuel, qty ); - } else if( pt.is_fuel_store() && type->parts[p].fuel != "null" ) { - int qty = pt.ammo_capacity() * veh_fuel_mult / 100; - pt.ammo_set( type->parts[ p ].fuel, qty ); + if( !type->parts[p].fuel.is_null() ) { + const itype *loaded = item::find_type( type->parts[p].fuel ); + const ammotype loaded_ammotype = loaded->ammo->type; + if( pt.is_tank() ) { + int qty = pt.ammo_capacity( loaded_ammotype ) * veh_fuel_mult / 100; + qty *= std::max( loaded->stack_size, 1 ); + qty /= to_milliliter( units::legacy_volume_factor ); + pt.ammo_set( type->parts[p].fuel, qty ); + } else if( pt.is_fuel_store() ) { + int qty = pt.ammo_capacity( loaded_ammotype ) * veh_fuel_mult / 100; + pt.ammo_set( type->parts[p].fuel, qty ); + } } if( vp.has_feature( "OPENABLE" ) ) { // doors are closed @@ -625,7 +639,7 @@ void vehicle::init_state( int init_veh_fuel, int init_veh_status ) if( one_in( 2 ) ) { // if vehicle has immobilizer 50% chance to add additional fault - pt.fault_set( fault_immobiliser ); + pt.fault_set( fault_engine_immobiliser ); } } } @@ -885,12 +899,7 @@ void vehicle::drive_to_local_target( const tripoint &target, bool follow_protoco // we really want to avoid running the player over. // If its a helicopter, we dont need to worry about airborne obstacles so much // And fuel efficiency is terrible at low speeds. - int safe_player_follow_speed = 400; - if( g->u.movement_mode_is( CMM_RUN ) ) { - safe_player_follow_speed = 800; - } else if( g->u.movement_mode_is( CMM_CROUCH ) ) { - safe_player_follow_speed = 200; - } + const int safe_player_follow_speed = 400 * g->u.current_movement_mode()->move_speed_mult(); if( follow_protocol ) { if( ( ( turn_x > 0 || turn_x < 0 ) && velocity > safe_player_follow_speed ) || rl_dist( vehpos, g->m.getabs( g->u.pos() ) ) < 7 + ( ( mount_max.y * 3 ) + 4 ) ) { @@ -1125,7 +1134,7 @@ bool vehicle::has_engine_conflict( const vpart_info *possible_conflict, bool vehicle::is_engine_type( const int e, const itype_id &ft ) const { - return parts[engines[e]].ammo_current() == "null" ? parts[engines[e]].fuel_current() == ft : + return parts[engines[e]].ammo_current().is_null() ? parts[engines[e]].fuel_current() == ft : parts[engines[e]].ammo_current() == ft; } @@ -1156,7 +1165,7 @@ bool vehicle::is_alternator_on( const int a ) const auto &eng = parts [ idx ]; //fuel_left checks that the engine can produce power to be absorbed return eng.is_available() && eng.enabled && fuel_left( eng.fuel_current() ) && - eng.mount == alt.mount && !eng.faults().count( fault_belt ); + eng.mount == alt.mount && !eng.faults().count( fault_engine_belt_drive ); } ); } @@ -1805,7 +1814,7 @@ bool vehicle::merge_rackable_vehicle( vehicle *carry_veh, const std::vector const point mount_zero = point_zero; if( found_all_parts ) { decltype( loot_zones ) new_zones; - for( auto carry_map : carry_data ) { + for( const mapping &carry_map : carry_data ) { std::string offset = string_format( "%s%3d", carry_map.old_mount == mount_zero ? axis : " ", axis == "X" ? carry_map.old_mount.x : carry_map.old_mount.y ); std::string unique_id = string_format( "%s%3d%s", offset, relative_dir, carry_veh->name ); @@ -1964,8 +1973,8 @@ bool vehicle::remove_part( const int p, RemovePartHandler &handler ) for( auto &i : get_items( p ) ) { // Note: this can spawn items on the other side of the wall! // TODO: fix this ^^ - tripoint dest( part_loc + point( rng( -3, 3 ), rng( -3, 3 ) ) ); if( !magic ) { + tripoint dest( part_loc + point( rng( -3, 3 ), rng( -3, 3 ) ) ); // This new point might be out of the map bounds. It's not // reasonable to try to spawn it outside the currently valid map, // so we pass true here to cause such points to be clamped to the @@ -3214,7 +3223,7 @@ int vehicle::fuel_left( const itype_id &ftype, bool recurse ) const const vehicle_part & rhs ) { // don't count frozen liquid if( rhs.is_tank() && !rhs.base.contents.empty() && - rhs.base.contents.legacy_front().made_of( SOLID ) ) { + rhs.base.contents.legacy_front().made_of( phase_id::SOLID ) ) { return lhs; } return lhs + ( rhs.ammo_current() == ftype ? rhs.ammo_remaining() : 0 ); @@ -3273,7 +3282,8 @@ int vehicle::fuel_capacity( const itype_id &ftype ) const { return std::accumulate( parts.begin(), parts.end(), 0, [&ftype]( const int &lhs, const vehicle_part & rhs ) { - return lhs + ( rhs.ammo_current() == ftype ? rhs.ammo_capacity() : 0 ); + return lhs + ( rhs.ammo_current() == ftype ? rhs.ammo_capacity( item::find_type( + ftype )->ammo->type ) : 0 ); } ); } @@ -3283,7 +3293,7 @@ float vehicle::fuel_specific_energy( const itype_id &ftype ) const float total_mass = 0; for( auto vehicle_part : parts ) { if( vehicle_part.is_tank() && vehicle_part.ammo_current() == ftype && - vehicle_part.base.contents.legacy_front().made_of( LIQUID ) ) { + vehicle_part.base.contents.legacy_front().made_of( phase_id::LIQUID ) ) { float energy = vehicle_part.base.contents.legacy_front().specific_energy; float mass = to_gram( vehicle_part.base.contents.legacy_front().weight() ); total_energy += energy * mass; @@ -3356,7 +3366,7 @@ int vehicle::basic_consumption( const itype_id &ftype ) const } else if( !is_perpetual_type( e ) ) { fcon += part_vpower_w( engines[e] ); - if( parts[ e ].faults().count( fault_filter_air ) ) { + if( parts[ e ].faults().count( fault_engine_filter_air ) ) { fcon *= 2; } } @@ -3406,7 +3416,7 @@ int vehicle::total_power_w( const bool fueled, const bool safe ) const int p = engines[e]; if( is_engine_on( e ) && ( !fueled || engine_fuel_left( e ) ) ) { int m2c = safe ? part_info( engines[e] ).engine_m2c() : 100; - if( parts[ engines[e] ].faults().count( fault_filter_fuel ) ) { + if( parts[ engines[e] ].faults().count( fault_engine_filter_fuel ) ) { m2c *= 0.6; } pwr += part_vpower_w( p ) * m2c / 100; @@ -3703,14 +3713,8 @@ void vehicle::spew_field( double joules, int part, field_type_id type, int inten if( rng( 1, 10000 ) > joules ) { return; } - point p = parts[part].mount; intensity = std::max( joules / 10000, static_cast( intensity ) ); - // Move back from engine/muffler until we find an open space - while( relative_parts.find( p ) != relative_parts.end() ) { - p.x += ( velocity < 0 ? 1 : -1 ); - } - point q = coord_translate( p ); - const tripoint dest = global_pos3() + tripoint( q, 0 ); + const tripoint dest = exhaust_dest( part ); g->m.mod_field_intensity( dest, type, intensity ); } @@ -3731,16 +3735,9 @@ void vehicle::noise_and_smoke( int load, time_duration time ) const std::string heli_noise = translate_marker( "WUMPWUMPWUMP!" ); double noise = 0.0; double mufflesmoke = 0.0; - double muffle = 1.0; - double m = 0.0; - int exhaust_part = -1; - for( const vpart_reference &vp : get_avail_parts( "MUFFLER" ) ) { - m = 1.0 - ( 1.0 - vp.info().bonus / 100.0 ) * vp.part().health_percent(); - if( m < muffle ) { - muffle = m; - exhaust_part = static_cast( vp.part_index() ); - } - } + double muffle; + int exhaust_part; + std::tie( exhaust_part, muffle ) = get_exhaust_part(); bool bad_filter = false; bool combustion = false; @@ -3761,7 +3758,7 @@ void vehicle::noise_and_smoke( int load, time_duration time ) if( part_info( p ).has_flag( "E_COMBUSTION" ) ) { combustion = true; double health = parts[p].health_percent(); - if( parts[ p ].base.faults.count( fault_filter_fuel ) ) { + if( parts[ p ].base.faults.count( fault_engine_filter_fuel ) ) { health = 0.0; } if( health < part_info( p ).engine_backfire_threshold() && one_in( 50 + 150 * health ) ) { @@ -3769,7 +3766,7 @@ void vehicle::noise_and_smoke( int load, time_duration time ) } double j = cur_stress * to_turns( time ) * muffle * 1000; - if( parts[ p ].base.faults.count( fault_filter_air ) ) { + if( parts[ p ].base.faults.count( fault_engine_filter_air ) ) { bad_filter = true; j *= j; } @@ -3933,6 +3930,7 @@ double vehicle::coeff_air_drag() const d_check_max( drag[ col ].panel, pa, pa.info().has_flag( "SOLAR_PANEL" ) ); d_check_max( drag[ col ].windmill, pa, pa.info().has_flag( "WIND_TURBINE" ) ); d_check_max( drag[ col ].rotor, pa, pa.info().has_flag( "ROTOR" ) ); + d_check_max( drag[ col ].rotor, pa, pa.info().has_flag( "ROTOR_SIMPLE" ) ); d_check_max( drag[ col ].sail, pa, pa.info().has_flag( "WIND_POWERED" ) ); d_check_max( drag[ col ].exposed, pa, d_exposed( pa ) ); d_check_min( drag[ col ].last, pa, pa.info().has_flag( "LOW_FINAL_AIR_DRAG" ) || @@ -4094,7 +4092,18 @@ bool vehicle::has_sufficient_rotorlift() const bool vehicle::is_rotorcraft() const { - return has_part( "ROTOR" ) && has_sufficient_rotorlift() && player_in_control( g->u ); + return ( has_part( "ROTOR" ) || has_part( "ROTOR_SIMPLE" ) ) && has_sufficient_rotorlift() && + player_in_control( g->u ); +} + +bool vehicle::is_flyable() const +{ + return flyable; +} + +void vehicle::set_flyable( bool val ) +{ + flyable = val; } int vehicle::get_z_change() const @@ -4102,6 +4111,11 @@ int vehicle::get_z_change() const return requested_z_change; } +bool vehicle::would_prevent_flyable( const vpart_info &vpinfo ) const +{ + return is_flyable() && has_part( "ROTOR" ) && !vpinfo.has_flag( "SIMPLE_PART" ); +} + bool vehicle::is_flying_in_air() const { return is_flying; @@ -4435,7 +4449,7 @@ std::map vehicle::fuel_usage() const if( !is_perpetual_type( i ) ) { int usage = info.energy_consumption; - if( parts[ e ].faults().count( fault_filter_air ) ) { + if( parts[ e ].faults().count( fault_engine_filter_air ) ) { usage *= 2; } @@ -4888,8 +4902,9 @@ int vehicle::charge_battery( int amount, bool include_other_vehicles ) // Key parts by percentage charge level. std::multimap chargeable_parts; for( vehicle_part &p : parts ) { - if( p.is_available() && p.is_battery() && p.ammo_capacity() > p.ammo_remaining() ) { - chargeable_parts.insert( { ( p.ammo_remaining() * 100 ) / p.ammo_capacity(), &p } ); + if( p.is_available() && p.is_battery() && + p.ammo_capacity( ammotype( "battery" ) ) > p.ammo_remaining() ) { + chargeable_parts.insert( { ( p.ammo_remaining() * 100 ) / p.ammo_capacity( ammotype( "battery" ) ), &p } ); } } while( amount > 0 && !chargeable_parts.empty() ) { @@ -4900,13 +4915,13 @@ int vehicle::charge_battery( int amount, bool include_other_vehicles ) chargeable_parts.erase( iter ); // Calculate number of charges to reach the next %, but insure it's at least // one more than current charge. - int next_charge_level = ( ( charge_level + 1 ) * p->ammo_capacity() ) / 100; + int next_charge_level = ( ( charge_level + 1 ) * p->ammo_capacity( ammotype( "battery" ) ) ) / 100; next_charge_level = std::max( next_charge_level, p->ammo_remaining() + 1 ); int qty = std::min( amount, next_charge_level - p->ammo_remaining() ); p->ammo_set( fuel_type_battery, p->ammo_remaining() + qty ); amount -= qty; - if( p->ammo_capacity() > p->ammo_remaining() ) { - chargeable_parts.insert( { ( p->ammo_remaining() * 100 ) / p->ammo_capacity(), p } ); + if( p->ammo_capacity( ammotype( "battery" ) ) > p->ammo_remaining() ) { + chargeable_parts.insert( { ( p->ammo_remaining() * 100 ) / p->ammo_capacity( ammotype( "battery" ) ), p } ); } } @@ -4928,7 +4943,7 @@ int vehicle::discharge_battery( int amount, bool recurse ) std::multimap dischargeable_parts; for( vehicle_part &p : parts ) { if( p.is_available() && p.is_battery() && p.ammo_remaining() > 0 ) { - dischargeable_parts.insert( { ( p.ammo_remaining() * 100 ) / p.ammo_capacity(), &p } ); + dischargeable_parts.insert( { ( p.ammo_remaining() * 100 ) / p.ammo_capacity( ammotype( "battery" ) ), &p } ); } } while( amount > 0 && !dischargeable_parts.empty() ) { @@ -4938,12 +4953,12 @@ int vehicle::discharge_battery( int amount, bool recurse ) vehicle_part *p = iter->second; dischargeable_parts.erase( iter ); // Calculate number of charges to reach the previous %. - int prev_charge_level = ( ( charge_level - 1 ) * p->ammo_capacity() ) / 100; + int prev_charge_level = ( ( charge_level - 1 ) * p->ammo_capacity( ammotype( "battery" ) ) ) / 100; int amount_to_discharge = std::min( p->ammo_remaining() - prev_charge_level, amount ); p->ammo_consume( amount_to_discharge, global_part_pos3( *p ) ); amount -= amount_to_discharge; if( p->ammo_remaining() > 0 ) { - dischargeable_parts.insert( { ( p->ammo_remaining() * 100 ) / p->ammo_capacity(), p } ); + dischargeable_parts.insert( { ( p->ammo_remaining() * 100 ) / p->ammo_capacity( ammotype( "battery" ) ), p } ); } } @@ -5206,7 +5221,7 @@ bool vehicle::remove_item( int part, item *it ) return true; } -vehicle_stack::iterator vehicle::remove_item( int part, vehicle_stack::const_iterator it ) +vehicle_stack::iterator vehicle::remove_item( int part, const vehicle_stack::const_iterator &it ) { cata::colony &veh_items = parts[part].items; @@ -5236,7 +5251,7 @@ void vehicle::place_spawn_items() return; } - for( const auto &pt : type->parts ) { + for( const vehicle_prototype::part_def &pt : type->parts ) { if( pt.with_ammo ) { int turret = part_with_feature( pt.pos, "TURRET", true ); if( turret >= 0 && x_in_y( pt.with_ammo, 100 ) ) { @@ -5265,7 +5280,7 @@ void vehicle::place_spawn_items() } for( const std::string &e : spawn.item_groups ) { item_group::ItemList group_items = item_group::items_from( e, calendar::start_of_cataclysm ); - for( auto spawn_item : group_items ) { + for( const auto &spawn_item : group_items ) { created.emplace_back( spawn_item ); } } @@ -5283,9 +5298,12 @@ void vehicle::place_spawn_items() !e.magazine_current(); if( spawn_mag ) { - e.put_in( item( e.magazine_default(), e.birthday() ), item_pocket::pocket_type::MAGAZINE ); - } - if( spawn_ammo ) { + item mag( e.magazine_default(), e.birthday() ); + if( spawn_ammo ) { + mag.ammo_set( mag.ammo_default() ); + } + e.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } else if( spawn_ammo && e.is_magazine() ) { e.ammo_set( e.ammo_default() ); } } @@ -5502,7 +5520,7 @@ void vehicle::refresh() if( vpi.has_flag( VPFLAG_SOLAR_PANEL ) ) { solar_panels.push_back( p ); } - if( vpi.has_flag( VPFLAG_ROTOR ) ) { + if( vpi.has_flag( VPFLAG_ROTOR ) || vpi.has_flag( VPFLAG_ROTOR_SIMPLE ) ) { rotors.push_back( p ); } if( vpi.has_flag( "WIND_TURBINE" ) ) { @@ -6024,8 +6042,8 @@ void vehicle::shed_loose_parts() tow_data.clear_towing(); } auto part = &parts[elem]; - item drop = part->properties_to_item(); if( !magic ) { + item drop = part->properties_to_item(); g->m.add_item_or_charges( global_part_pos3( *part ), drop ); } @@ -6320,8 +6338,8 @@ int vehicle::break_off( int p, int dmg ) add_msg( m_bad, _( "The %1$s's %2$s is torn off!" ), name, parts[ parts_in_square[ index ] ].name() ); } - item part_as_item = parts[parts_in_square[index]].properties_to_item(); if( !magic ) { + item part_as_item = parts[parts_in_square[index]].properties_to_item(); g->m.add_item_or_charges( pos, part_as_item ); } } @@ -6468,7 +6486,7 @@ std::map vehicle::fuels_left() const { std::map result; for( const auto &p : parts ) { - if( p.is_fuel_store() && p.ammo_current() != "null" ) { + if( p.is_fuel_store() && !p.ammo_current().is_null() ) { result[ p.ammo_current() ] += p.ammo_remaining(); } } @@ -6599,6 +6617,10 @@ static bool is_sm_tile_outside( const tripoint &real_global_pos ) void vehicle::update_time( const time_point &update_to ) { + double muffle; + int exhaust_part; + std::tie( exhaust_part, muffle ) = get_exhaust_part(); + // Parts emitting fields for( int idx : emitters ) { const vehicle_part &pt = parts[idx]; @@ -6608,6 +6630,13 @@ void vehicle::update_time( const time_point &update_to ) for( const emit_id &e : pt.info().emissions ) { g->m.emit_field( global_part_pos3( pt ), e ); } + for( const emit_id &e : pt.info().exhaust ) { + if( exhaust_part == -1 ) { + g->m.emit_field( global_part_pos3( pt ), e ); + } else { + g->m.emit_field( exhaust_dest( exhaust_part ), e ); + } + } discharge_battery( pt.info().epower ); } @@ -6661,15 +6690,15 @@ void vehicle::update_time( const time_point &update_to ) double area = std::pow( pt.info().size / units::legacy_volume_factor, 2 ) * M_PI; int qty = roll_remainder( funnel_charges_per_turn( area, accum_weather.rain_amount ) ); int c_qty = qty + ( tank->can_reload( water_clean ) ? tank->ammo_remaining() : 0 ); - int cost_to_purify = c_qty * item::find_type( "water_purifier" )->charges_to_use(); + int cost_to_purify = c_qty * item::find_type( itype_water_purifier )->charges_to_use(); if( qty > 0 ) { if( has_part( global_part_pos3( pt ), "WATER_PURIFIER", true ) && - ( fuel_left( "battery", true ) > cost_to_purify ) ) { - tank->ammo_set( "water_clean", c_qty ); + ( fuel_left( itype_battery, true ) > cost_to_purify ) ) { + tank->ammo_set( itype_water_clean, c_qty ); discharge_battery( cost_to_purify ); } else { - tank->ammo_set( "water", tank->ammo_remaining() + qty ); + tank->ammo_set( itype_water, tank->ammo_remaining() + qty ); } invalidate_mass(); } @@ -6854,6 +6883,32 @@ bool vehicle::refresh_zones() return false; } +std::pair vehicle::get_exhaust_part() const +{ + double muffle = 1.0; + double m = 0.0; + int exhaust_part = -1; + for( const vpart_reference &vp : get_avail_parts( "MUFFLER" ) ) { + m = 1.0 - ( 1.0 - vp.info().bonus / 100.0 ) * vp.part().health_percent(); + if( m < muffle ) { + muffle = m; + exhaust_part = static_cast( vp.part_index() ); + } + } + return std::make_pair( exhaust_part, muffle ); +} + +tripoint vehicle::exhaust_dest( int part ) const +{ + point p = parts[part].mount; + // Move back from engine/muffler until we find an open space + while( relative_parts.find( p ) != relative_parts.end() ) { + p.x += ( velocity < 0 ? 1 : -1 ); + } + point q = coord_translate( p ); + return global_pos3() + tripoint( q, 0 ); +} + template<> bool vehicle_part_with_feature_range::matches( const size_t part ) const { diff --git a/src/vehicle.h b/src/vehicle.h index 826f2c865ec49..f9849db1c2527 100644 --- a/src/vehicle.h +++ b/src/vehicle.h @@ -225,10 +225,11 @@ struct vehicle_part { itype_id ammo_current() const; /** Maximum amount of fuel, charges or ammunition that can be contained by a part */ - int ammo_capacity() const; + int ammo_capacity( const ammotype &ammo ) const; /** Amount of fuel, charges or ammunition currently contained by a part */ int ammo_remaining() const; + int remaining_ammo_capacity() const; /** Type of fuel used by an engine */ itype_id fuel_current() const; @@ -434,7 +435,7 @@ struct vehicle_part { cata::colony items; // inventory /** Preferred ammo type when multiple are available */ - itype_id ammo_pref = "null"; + itype_id ammo_pref = itype_id::NULL_ID(); /** * What NPC (if any) is assigned to this part (seat, turret etc)? @@ -489,7 +490,7 @@ class turret_data int ammo_remaining() const; /** Maximum quantity of ammunition turret can itself contain */ - int ammo_capacity() const; + int ammo_capacity( const ammotype &ammo ) const; /** Specific ammo data or returns nullptr if no ammo available */ const itype *ammo_data() const; @@ -541,7 +542,7 @@ class turret_data bool can_reload() const; bool can_unload() const; - enum class status { + enum class status : int { invalid, no_ammo, no_power, @@ -1332,6 +1333,12 @@ class vehicle bool is_flying_in_air() const; void set_flying( bool new_flying_value ); bool is_rotorcraft() const; + // Can the vehicle safely fly? E.g. there haven't been any player modifications + // of non-simple parts + bool is_flyable() const; + void set_flyable( bool val ); + // Would interacting with this part prevent the vehicle from being flyable? + bool would_prevent_flyable( const vpart_info &vpinfo ) const; /** * Traction coefficient of the vehicle. * 1.0 on road. Outside roads, depends on mass divided by wheel area @@ -1454,7 +1461,7 @@ class vehicle // remove item from part's cargo bool remove_item( int part, item *it ); - vehicle_stack::iterator remove_item( int part, vehicle_stack::const_iterator it ); + vehicle_stack::iterator remove_item( int part, const vehicle_stack::const_iterator &it ); vehicle_stack get_items( int part ) const; vehicle_stack get_items( int part ); @@ -1870,6 +1877,7 @@ class vehicle mutable bool in_water = false; // is the vehicle currently flying mutable bool is_flying = false; + bool flyable = true; int requested_z_change = 0; public: @@ -1903,6 +1911,12 @@ class vehicle // current noise of vehicle (engine working, etc.) unsigned char vehicle_noise = 0; + + // return vehicle part index and muffle value + std::pair get_exhaust_part() const; + + // destination for exhaust emissions + tripoint exhaust_dest( int part ) const; }; #endif // CATA_SRC_VEHICLE_H diff --git a/src/vehicle_display.cpp b/src/vehicle_display.cpp index 74b524c6c293c..2727e02d12c4a 100644 --- a/src/vehicle_display.cpp +++ b/src/vehicle_display.cpp @@ -22,6 +22,7 @@ #include "optional.h" static const std::string part_location_structure( "structure" ); +static const itype_id itype_battery( "battery" ); static const itype_id fuel_type_muscle( "muscle" ); std::string vehicle::disp_name() const @@ -155,10 +156,11 @@ 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" ) { + if( vp.is_fuel_store() && !vp.ammo_current().is_null() ) { if( detail ) { - if( vp.ammo_current() == "battery" ) { - partname += string_format( _( " (%s/%s charge)" ), vp.ammo_remaining(), vp.ammo_capacity() ); + if( vp.ammo_current() == itype_battery ) { + partname += string_format( _( " (%s/%s charge)" ), vp.ammo_remaining(), + vp.ammo_capacity( ammotype( "battery" ) ) ); } else { const itype *pt_ammo_cur = item::find_type( vp.ammo_current() ); auto stack = units::legacy_volume_factor / pt_ammo_cur->stack_size; @@ -294,7 +296,7 @@ void vehicle::print_vparts_descs( const catacurses::window &win, int max_y, int // -2 for left & right padding // NOLINTNEXTLINE(cata-use-named-point-constants) fold_and_print( win, point( 1, 0 ), width - 2, c_light_gray, msg ); - wrefresh( win ); + wnoutrefresh( win ); } /** @@ -305,7 +307,7 @@ std::vector vehicle::get_printable_fuel_types() const { std::set opts; for( const auto &pt : parts ) { - if( pt.is_fuel_store() && pt.ammo_current() != "null" ) { + if( pt.is_fuel_store() && !pt.ammo_current().is_null() ) { opts.emplace( pt.ammo_current() ); } } diff --git a/src/vehicle_part.cpp b/src/vehicle_part.cpp index 9b4deab67d426..0d0baf7e9fad1 100644 --- a/src/vehicle_part.cpp +++ b/src/vehicle_part.cpp @@ -28,6 +28,9 @@ static const itype_id fuel_type_battery( "battery" ); static const itype_id fuel_type_none( "null" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_muscle( "muscle" ); + /*----------------------------------------------------------------------------- * VEHICLE_PART *-----------------------------------------------------------------------------*/ @@ -171,14 +174,14 @@ bool vehicle_part::is_available( const bool carried ) const itype_id vehicle_part::fuel_current() const { if( is_engine() ) { - if( ammo_pref == "null" ) { - return info().fuel_type != "muscle" ? info().fuel_type : "null"; + if( ammo_pref.is_null() ) { + return info().fuel_type != itype_muscle ? info().fuel_type : itype_id::NULL_ID(); } else { return ammo_pref; } } - return "null"; + return itype_id::NULL_ID(); } bool vehicle_part::fuel_set( const itype_id &fuel ) @@ -197,7 +200,7 @@ bool vehicle_part::fuel_set( const itype_id &fuel ) itype_id vehicle_part::ammo_current() const { if( is_battery() ) { - return "battery"; + return itype_battery; } if( is_tank() && !base.contents.empty() ) { @@ -208,17 +211,17 @@ itype_id vehicle_part::ammo_current() const return base.ammo_current(); } - return "null"; + return itype_id::NULL_ID(); } -int vehicle_part::ammo_capacity() const +int vehicle_part::ammo_capacity( const ammotype &ammo ) const { if( is_tank() ) { return item::find_type( ammo_current() )->charges_per_volume( base.get_total_capacity() ); } if( is_fuel_store( false ) || is_turret() ) { - return base.ammo_capacity(); + return base.ammo_capacity( ammo ); } return 0; @@ -237,15 +240,21 @@ int vehicle_part::ammo_remaining() const return 0; } +int vehicle_part::remaining_ammo_capacity() const +{ + return base.remaining_ammo_capacity(); +} + int vehicle_part::ammo_set( const itype_id &ammo, int qty ) { const itype *liquid = item::find_type( ammo ); // We often check if ammo is set to see if tank is empty, if qty == 0 don't set ammo - if( is_tank() && liquid->phase >= LIQUID && qty != 0 ) { + if( is_tank() && liquid->phase >= phase_id::LIQUID && qty != 0 ) { base.contents.clear_items(); const auto stack = units::legacy_volume_factor / std::max( liquid->stack_size, 1 ); - const int limit = units::from_milliliter( ammo_capacity() ) / stack; + const int limit = units::from_milliliter( ammo_capacity( item::find_type( + ammo )->ammo->type ) ) / stack; // assuming "ammo" isn't really going into a magazine as this is a vehicle part base.put_in( item( ammo, calendar::turn, qty > 0 ? std::min( qty, limit ) : limit ), item_pocket::pocket_type::CONTAINER ); @@ -253,11 +262,17 @@ int vehicle_part::ammo_set( const itype_id &ammo, int qty ) } if( is_turret() ) { - return base.ammo_set( ammo, qty ).ammo_remaining(); + if( base.is_magazine() ) { + return base.ammo_set( ammo, qty ).ammo_remaining(); + } else if( !base.magazine_default().is_null() ) { + item mag( base.magazine_default() ); + mag.ammo_set( ammo, qty ); + base.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } } if( is_fuel_store() ) { - base.ammo_set( ammo, qty >= 0 ? qty : ammo_capacity() ); + base.ammo_set( ammo, qty >= 0 ? qty : ammo_capacity( item::find_type( ammo )->ammo->type ) ); return base.ammo_remaining(); } @@ -330,15 +345,15 @@ bool vehicle_part::can_reload( const item &obj ) const } // forbid filling tanks with solids or non-material things - if( is_tank() && ( obj.made_of( SOLID ) || obj.made_of( PNULL ) ) ) { + if( is_tank() && ( obj.made_of( phase_id::SOLID ) || obj.made_of( phase_id::PNULL ) ) ) { return false; } // forbid putting liquids, gasses, and plasma in things that aren't tanks - else if( !obj.made_of( SOLID ) && !is_tank() ) { + else if( !obj.made_of( phase_id::SOLID ) && !is_tank() ) { return false; } // prevent mixing of different ammo - if( ammo_current() != "null" && ammo_current() != obj_type ) { + if( !ammo_current().is_null() && ammo_current() != obj_type ) { return false; } // For storage with set type, prevent filling with different types @@ -351,7 +366,7 @@ bool vehicle_part::can_reload( const item &obj ) const } } - return ammo_remaining() < ammo_capacity(); + return ammo_remaining() < ammo_capacity( item::find_type( ammo_current() )->ammo->type ); } void vehicle_part::process_contents( const tripoint &pos, const bool e_heater ) @@ -361,9 +376,9 @@ void vehicle_part::process_contents( const tripoint &pos, const bool e_heater ) if( base.has_item_with( []( const item & it ) { return it.needs_processing(); } ) ) { - temperature_flag flag = temperature_flag::TEMP_NORMAL; + temperature_flag flag = temperature_flag::NORMAL; if( e_heater ) { - flag = temperature_flag::TEMP_HEATER; + flag = temperature_flag::HEATER; } base.process( nullptr, pos, false, 1, flag ); } diff --git a/src/vehicle_use.cpp b/src/vehicle_use.cpp index f795c43daa729..a7898706755e1 100644 --- a/src/vehicle_use.cpp +++ b/src/vehicle_use.cpp @@ -23,6 +23,7 @@ #include "int_id.h" #include "inventory.h" #include "item.h" +#include "item_factory.h" #include "itype.h" #include "iuse.h" #include "json.h" @@ -52,7 +53,6 @@ #include "vpart_range.h" #include "weather.h" -static const activity_id ACT_HOTWIRE_CAR( "ACT_HOTWIRE_CAR" ); static const activity_id ACT_RELOAD( "ACT_RELOAD" ); static const activity_id ACT_REPAIR_ITEM( "ACT_REPAIR_ITEM" ); static const activity_id ACT_START_ENGINES( "ACT_START_ENGINES" ); @@ -62,14 +62,24 @@ static const itype_id fuel_type_muscle( "muscle" ); static const itype_id fuel_type_none( "null" ); static const itype_id fuel_type_wind( "wind" ); +static const itype_id itype_battery( "battery" ); +static const itype_id itype_detergent( "detergent" ); +static const itype_id itype_fungal_seeds( "fungal_seeds" ); +static const itype_id itype_hotplate( "hotplate" ); +static const itype_id itype_marloss_seed( "marloss_seed" ); +static const itype_id itype_water( "water" ); +static const itype_id itype_water_clean( "water_clean" ); +static const itype_id itype_water_purifier( "water_purifier" ); +static const itype_id itype_welder( "welder" ); + static const efftype_id effect_harnessed( "harnessed" ); static const efftype_id effect_tied( "tied" ); -static const fault_id fault_diesel( "fault_engine_pump_diesel" ); -static const fault_id fault_glowplug( "fault_engine_glow_plug" ); -static const fault_id fault_immobiliser( "fault_engine_immobiliser" ); -static const fault_id fault_pump( "fault_engine_pump_fuel" ); -static const fault_id fault_starter( "fault_engine_starter" ); +static const fault_id fault_engine_pump_diesel( "fault_engine_pump_diesel" ); +static const fault_id fault_engine_glow_plug( "fault_engine_glow_plug" ); +static const fault_id fault_engine_immobiliser( "fault_engine_immobiliser" ); +static const fault_id fault_engine_pump_fuel( "fault_engine_pump_fuel" ); +static const fault_id fault_engine_starter( "fault_engine_starter" ); static const skill_id skill_mechanics( "mechanics" ); @@ -423,40 +433,29 @@ int vehicle::select_engine() bool vehicle::interact_vehicle_locked() { - if( is_locked ) { - const inventory &crafting_inv = g->u.crafting_inventory(); - add_msg( _( "You don't find any keys in the %s." ), name ); - if( crafting_inv.has_quality( quality_id( "SCREW" ) ) ) { - if( query_yn( _( "You don't find any keys in the %s. Attempt to hotwire vehicle?" ), - name ) ) { - ///\EFFECT_MECHANICS speeds up vehicle hotwiring - int mechanics_skill = g->u.get_skill_level( skill_mechanics ); - const int hotwire_time = 6000 / ( ( mechanics_skill > 0 ) ? mechanics_skill : 1 ); - const int moves = to_moves( time_duration::from_turns( hotwire_time ) ); - //assign long activity - g->u.assign_activity( ACT_HOTWIRE_CAR, moves, -1, INT_MIN, _( "Hotwire" ) ); - // use part 0 as the reference point - point q = coord_translate( parts[0].mount ); - const tripoint abs_veh_pos = g->m.getabs( global_pos3() ); - //[0] - g->u.activity.values.push_back( abs_veh_pos.x + q.x ); - //[1] - g->u.activity.values.push_back( abs_veh_pos.y + q.y ); - //[2] - g->u.activity.values.push_back( g->u.get_skill_level( skill_mechanics ) ); - } else { - if( has_security_working() && query_yn( _( "Trigger the %s's Alarm?" ), name ) ) { - is_alarm_on = true; - } else { - add_msg( _( "You leave the controls alone." ) ); - } - } + if( !is_locked ) { + return true; + } + + add_msg( _( "You don't find any keys in the %s." ), name ); + const inventory &inv = g->u.crafting_inventory(); + if( inv.has_quality( quality_id( "SCREW" ) ) ) { + if( query_yn( _( "You don't find any keys in the %s. Attempt to hotwire vehicle?" ), name ) ) { + ///\EFFECT_MECHANICS speeds up vehicle hotwiring + int skill = g->u.get_skill_level( skill_mechanics ); + const int moves = to_moves( 6000_seconds / ( ( skill > 0 ) ? skill : 1 ) ); + tripoint target = g->m.getabs( global_pos3() ) + coord_translate( parts[0].mount ); + g->u.assign_activity( hotwire_car_activity_actor( moves, target ) ); + } else if( has_security_working() && query_yn( _( "Trigger the %s's Alarm?" ), name ) ) { + is_alarm_on = true; } else { - add_msg( _( "You could use a screwdriver to hotwire it." ) ); + add_msg( _( "You leave the controls alone." ) ); } + } else { + add_msg( _( "You could use a screwdriver to hotwire it." ) ); } - return !( is_locked ); + return false; } void vehicle::smash_security_system() @@ -793,8 +792,8 @@ bool vehicle::fold_up() add_msg( _( "You painstakingly pack the %s into a portable configuration." ), name ); - if( g->u.get_grab_type() != OBJECT_NONE ) { - g->u.grab( OBJECT_NONE ); + if( g->u.get_grab_type() != object_type::NONE ) { + g->u.grab( object_type::NONE ); add_msg( _( "You let go of %s as you fold it." ), name ); } @@ -861,7 +860,7 @@ double vehicle::engine_cold_factor( const int e ) const } int eff_temp = g->weather.get_temperature( g->u.pos() ); - if( !parts[ engines[ e ] ].faults().count( fault_glowplug ) ) { + if( !parts[ engines[ e ] ].faults().count( fault_engine_glow_plug ) ) { eff_temp = std::min( eff_temp, 20 ); } @@ -942,7 +941,7 @@ bool vehicle::start_engine( const int e ) } // Immobilizers need removing before the vehicle can be started - if( eng.faults().count( fault_immobiliser ) ) { + if( eng.faults().count( fault_engine_immobiliser ) ) { sounds::sound( pos, 5, sounds::sound_t::alarm, string_format( _( "the %s making a long beep" ), eng.name() ), true, "vehicle", "fault_immobiliser_beep" ); @@ -950,8 +949,8 @@ bool vehicle::start_engine( const int e ) } // 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 ) ) { + if( eng.faults_potential().count( fault_engine_starter ) ) { + if( eng.faults().count( fault_engine_starter ) ) { 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" ); @@ -970,7 +969,8 @@ bool vehicle::start_engine( const int e ) } // Engines always fail to start with faulty fuel pumps - if( eng.faults().count( fault_pump ) || eng.faults().count( fault_diesel ) ) { + if( eng.faults().count( fault_engine_pump_fuel ) || + eng.faults().count( fault_engine_pump_diesel ) ) { 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" ); @@ -1284,8 +1284,8 @@ void vehicle::operate_reaper() map_stack::iterator seed = std::find_if( items.begin(), items.end(), []( const item & it ) { return it.is_seed(); } ); - if( seed == items.end() || seed->typeId() == "fungal_seeds" || - seed->typeId() == "marloss_seed" ) { + if( seed == items.end() || seed->typeId() == itype_fungal_seeds || + seed->typeId() == itype_marloss_seed ) { // Otherworldly plants, the earth-made reaper can not handle those. continue; } @@ -1524,7 +1524,7 @@ void vehicle::use_autoclave( int p ) _( "You turn the autoclave off before it's finished the program, and open its door." ) ); } else if( items.empty() ) { add_msg( m_bad, _( "The autoclave is empty, there's no point in starting it." ) ); - } else if( fuel_left( "water" ) < 8 && fuel_left( "water_clean" ) < 8 ) { + } else if( fuel_left( itype_water ) < 8 && fuel_left( itype_water_clean ) < 8 ) { add_msg( m_bad, _( "You need 8 charges of water in tanks of the %s for the autoclave to run." ), name ); } else if( filthy_items ) { @@ -1540,10 +1540,10 @@ void vehicle::use_autoclave( int p ) n.set_age( 0_turns ); } - if( fuel_left( "water" ) >= 8 ) { - drain( "water", 8 ); + if( fuel_left( itype_water ) >= 8 ) { + drain( itype_water, 8 ); } else { - drain( "water_clean", 8 ); + drain( itype_water_clean, 8 ); } add_msg( m_good, @@ -1576,7 +1576,7 @@ void vehicle::use_washing_machine( int p ) } else if( items.empty() ) { add_msg( m_bad, _( "The washing machine is empty, there's no point in starting it." ) ); - } else if( fuel_left( "water" ) < 24 && fuel_left( "water_clean" ) < 24 ) { + } else if( fuel_left( itype_water ) < 24 && fuel_left( itype_water_clean ) < 24 ) { add_msg( m_bad, _( "You need 24 charges of water in tanks of the %s to fill the washing machine." ), name ); } else if( detergents.empty() ) { @@ -1621,10 +1621,10 @@ void vehicle::use_washing_machine( int p ) n.set_age( 0_turns ); } - if( fuel_left( "water" ) >= 24 ) { - drain( "water", 24 ); + if( fuel_left( itype_water ) >= 24 ) { + drain( itype_water, 24 ); } else { - drain( "water_clean", 24 ); + drain( itype_water_clean, 24 ); } std::vector detergent; @@ -1638,7 +1638,7 @@ void vehicle::use_washing_machine( int p ) void vehicle::use_dishwasher( int p ) { - bool detergent_is_enough = g->u.crafting_inventory().has_charges( "detergent", 5 ); + bool detergent_is_enough = g->u.crafting_inventory().has_charges( itype_detergent, 5 ); auto items = get_items( p ); static const std::string filthy( "FILTHY" ); bool filthy_items = std::all_of( items.begin(), items.end(), []( const item & i ) { @@ -1662,7 +1662,7 @@ void vehicle::use_dishwasher( int p ) } else if( items.empty() ) { add_msg( m_bad, _( "The dishwasher is empty, there's no point in starting it." ) ); - } else if( fuel_left( "water" ) < 24 && fuel_left( "water_clean" ) < 24 ) { + } else if( fuel_left( itype_water ) < 24 && fuel_left( itype_water_clean ) < 24 ) { add_msg( m_bad, _( "You need 24 charges of water in tanks of the %s to fill the dishwasher." ), name ); } else if( !detergent_is_enough ) { @@ -1678,14 +1678,14 @@ void vehicle::use_dishwasher( int p ) n.set_age( 0_turns ); } - if( fuel_left( "water" ) >= 24 ) { - drain( "water", 24 ); + if( fuel_left( itype_water ) >= 24 ) { + drain( itype_water, 24 ); } else { - drain( "water_clean", 24 ); + drain( itype_water_clean, 24 ); } std::vector detergent; - detergent.push_back( item_comp( "detergent", 5 ) ); + detergent.push_back( item_comp( itype_detergent, 5 ) ); g->u.consume_items( detergent, 1, is_crafting_component ); add_msg( m_good, @@ -1861,7 +1861,6 @@ void vehicle::use_bike_rack( int part ) } if( success ) { g->m.invalidate_map_cache( g->get_levz() ); - g->refresh_all(); } } @@ -1963,25 +1962,25 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) if( curtain_part >= 0 && curtain_closed ) { selectmenu.addentry( PEEK_CURTAIN, true, 'p', _( "Peek through the closed curtains" ) ); } - if( ( has_kitchen || has_chemlab ) && fuel_left( "battery", true ) > 0 ) { + if( ( has_kitchen || has_chemlab ) && fuel_left( itype_battery, true ) > 0 ) { selectmenu.addentry( USE_HOTPLATE, true, 'h', _( "Use the hotplate" ) ); } - if( has_faucet && fuel_left( "water_clean" ) > 0 ) { + if( has_faucet && fuel_left( itype_water_clean ) > 0 ) { selectmenu.addentry( FILL_CONTAINER, true, 'c', _( "Fill a container with water" ) ); selectmenu.addentry( DRINK, true, 'd', _( "Have a drink" ) ); } if( has_towel ) { selectmenu.addentry( USE_TOWEL, true, 't', _( "Use a towel" ) ); } - if( has_weldrig && fuel_left( "battery", true ) > 0 ) { + if( has_weldrig && fuel_left( itype_battery, true ) > 0 ) { selectmenu.addentry( USE_WELDER, true, 'w', _( "Use the welding rig" ) ); } if( has_purify ) { - bool can_purify = fuel_left( "battery", true ) >= - item::find_type( "water_purifier" )->charges_to_use(); + bool can_purify = fuel_left( itype_battery, true ) >= + item::find_type( itype_water_purifier )->charges_to_use(); selectmenu.addentry( USE_PURIFIER, can_purify, 'p', _( "Purify water in carried container" ) ); - selectmenu.addentry( PURIFY_TANK, can_purify && fuel_left( "water" ), + selectmenu.addentry( PURIFY_TANK, can_purify && fuel_left( itype_water ), 'P', _( "Purify water in vehicle tank" ) ); } if( has_monster_capture ) { @@ -2016,12 +2015,12 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) } auto veh_tool = [&]( const itype_id & obj ) { item pseudo( obj ); - if( fuel_left( "battery", true ) < pseudo.ammo_required() ) { + if( fuel_left( itype_battery, true ) < pseudo.ammo_required() ) { return false; } - auto capacity = pseudo.ammo_capacity( true ); - auto qty = capacity - discharge_battery( capacity ); - pseudo.ammo_set( "battery", qty ); + int capacity = pseudo.ammo_capacity( ammotype( "battery" ) ); + int qty = capacity - discharge_battery( capacity ); + pseudo.ammo_set( itype_battery, qty ); g->u.invoke_item( &pseudo ); charge_battery( pseudo.ammo_remaining() ); return true; @@ -2046,7 +2045,7 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) return; } case USE_HOTPLATE: { - veh_tool( "hotplate" ); + veh_tool( itype_hotplate ); return; } case USE_TOWEL: { @@ -2066,19 +2065,19 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) return; } case FILL_CONTAINER: { - g->u.siphon( *this, "water_clean" ); + g->u.siphon( *this, itype_water_clean ); return; } case DRINK: { item water( "water_clean", 0 ); - if( g->u.eat( water ) ) { - drain( "water_clean", 1 ); - g->u.moves -= 250; + if( g->u.can_consume( water ) ) { + g->u.assign_activity( player_activity( consume_activity_actor( water, false ) ) ); + drain( itype_water_clean, 1 ); } return; } case USE_WELDER: { - if( veh_tool( "welder" ) ) { + if( veh_tool( itype_welder ) ) { // HACK: Evil hack incoming auto &act = g->u.activity; if( act.id() == ACT_REPAIR_ITEM ) { @@ -2094,19 +2093,20 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) return; } case USE_PURIFIER: { - veh_tool( "water_purifier" ); + veh_tool( itype_water_purifier ); return; } case PURIFY_TANK: { auto sel = []( const vehicle_part & pt ) { - return pt.is_tank() && pt.ammo_current() == "water"; + return pt.is_tank() && pt.ammo_current() == itype_water; }; - auto title = string_format( _( "Purify water in tank" ), - get_all_colors().get_name( item::find_type( "water" )->color ) ); + auto title = string_format( + _( "Purify water in tank" ), + get_all_colors().get_name( item::find_type( itype_water )->color ) ); auto &tank = veh_interact::select_part( *this, sel, title ); if( tank ) { - double cost = item::find_type( "water_purifier" )->charges_to_use(); - if( fuel_left( "battery", true ) < tank.ammo_remaining() * cost ) { + double cost = item::find_type( itype_water_purifier )->charges_to_use(); + if( fuel_left( itype_battery, true ) < tank.ammo_remaining() * cost ) { //~ $1 - vehicle name, $2 - part name add_msg( m_bad, _( "Insufficient power to purify the contents of the %1$s's %2$s" ), name, tank.name() ); @@ -2114,13 +2114,14 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) //~ $1 - vehicle name, $2 - part name add_msg( m_good, _( "You purify the contents of the %1$s's %2$s" ), name, tank.name() ); discharge_battery( tank.ammo_remaining() * cost ); - tank.ammo_set( "water_clean", tank.ammo_remaining() ); + tank.ammo_set( itype_water_clean, tank.ammo_remaining() ); } } return; } case UNLOAD_TURRET: { - g->unload( *turret.base() ); + item_location loc = turret.base(); + g->unload( loc ); return; } case RELOAD_TURRET: { @@ -2173,5 +2174,4 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) return; } } - return; } diff --git a/src/version.cmake b/src/version.cmake index 0da0e78d8ff06..0b73e2f6503d7 100644 --- a/src/version.cmake +++ b/src/version.cmake @@ -1,6 +1,6 @@ IF(GIT_EXECUTABLE) EXECUTE_PROCESS( - COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty --match "[0-9]*.[0-9]*" + COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty --match "[0-9A-Z]*.[0-9A-Z]*" OUTPUT_VARIABLE VERSION OUTPUT_STRIP_TRAILING_WHITESPACE ) diff --git a/src/visitable.cpp b/src/visitable.cpp index 4d3984d673d26..b60e3c61d9b88 100644 --- a/src/visitable.cpp +++ b/src/visitable.cpp @@ -33,14 +33,13 @@ #include "vehicle.h" #include "vehicle_selector.h" -static const quality_id qual_BUTCHER( "BUTCHER" ); +static const itype_id itype_apparatus( "apparatus" ); +static const itype_id itype_adv_UPS_off( "adv_UPS_off" ); +static const itype_id itype_toolset( "toolset" ); +static const itype_id itype_UPS( "UPS" ); +static const itype_id itype_UPS_off( "UPS_off" ); -static const trait_id trait_CLAWS( "CLAWS" ); -static const trait_id trait_CLAWS_RAT( "CLAWS_RAT" ); -static const trait_id trait_CLAWS_RETRACT( "CLAWS_RETRACT" ); -static const trait_id trait_CLAWS_ST( "CLAWS_ST" ); -static const trait_id trait_MANDIBLES( "MANDIBLES" ); -static const trait_id trait_TALONS( "TALONS" ); +static const quality_id qual_BUTCHER( "BUTCHER" ); static const bionic_id bio_tools( "bio_tools" ); static const bionic_id bio_ups( "bio_ups" ); @@ -791,7 +790,7 @@ std::list visitable::remove_items_with( const template static int charges_of_internal( const T &self, const M &main, const itype_id &id, int limit, const std::function &filter, - std::function visitor ) + const std::function &visitor ) { int qty = 0; @@ -821,7 +820,7 @@ static int charges_of_internal( const T &self, const M &main, const itype_id &id } ); if( qty < limit && found_tool_with_UPS ) { - qty += main.charges_of( "UPS", limit - qty ); + qty += main.charges_of( itype_UPS, limit - qty ); if( visitor ) { visitor( qty ); } @@ -832,23 +831,23 @@ static int charges_of_internal( const T &self, const M &main, const itype_id &id /** @relates visitable */ template -int visitable::charges_of( const std::string &what, int limit, +int visitable::charges_of( const itype_id &what, int limit, const std::function &filter, - std::function visitor ) const + const std::function &visitor ) const { return charges_of_internal( *this, *this, what, limit, filter, visitor ); } /** @relates visitable */ template <> -int visitable::charges_of( const std::string &what, int limit, +int visitable::charges_of( const itype_id &what, int limit, const std::function &filter, - std::function visitor ) const + const std::function &visitor ) const { - if( what == "UPS" ) { + if( what == itype_UPS ) { int qty = 0; - qty = sum_no_wrap( qty, charges_of( "UPS_off" ) ); - qty = sum_no_wrap( qty, static_cast( charges_of( "adv_UPS_off" ) / 0.6 ) ); + qty = sum_no_wrap( qty, charges_of( itype_UPS_off ) ); + qty = sum_no_wrap( qty, static_cast( charges_of( itype_adv_UPS_off ) / 0.6 ) ); return std::min( qty, limit ); } const auto &binned = static_cast( this )->get_binned_items(); @@ -869,14 +868,14 @@ int visitable::charges_of( const std::string &what, int limit, /** @relates visitable */ template <> -int visitable::charges_of( const std::string &what, int limit, +int visitable::charges_of( const itype_id &what, int limit, const std::function &filter, - std::function visitor ) const + const std::function &visitor ) const { auto self = static_cast( this ); auto p = dynamic_cast( self ); - if( what == "toolset" ) { + if( what == itype_toolset ) { if( p && p->has_active_bionic( bio_tools ) ) { return std::min( units::to_kilojoule( p->get_power_level() ), limit ); } else { @@ -884,10 +883,10 @@ int visitable::charges_of( const std::string &what, int limit, } } - if( what == "UPS" ) { + if( what == itype_UPS ) { int qty = 0; - qty = sum_no_wrap( qty, charges_of( "UPS_off" ) ); - qty = sum_no_wrap( qty, static_cast( charges_of( "adv_UPS_off" ) / 0.6 ) ); + qty = sum_no_wrap( qty, charges_of( itype_UPS_off ) ); + qty = sum_no_wrap( qty, static_cast( charges_of( itype_adv_UPS_off ) / 0.6 ) ); if( p && p->has_active_bionic( bio_ups ) ) { qty = sum_no_wrap( qty, units::to_kilojoule( p->get_power_level() ) ); } @@ -909,7 +908,7 @@ static int amount_of_internal( const T &self, const itype_id &id, bool pseudo, i { int qty = 0; self.visit_items( [&qty, &id, &pseudo, &limit, &filter]( const item * e ) { - if( ( id == "any" || e->typeId() == id ) && filter( *e ) && ( pseudo || + if( ( id.str() == "any" || e->typeId() == id ) && filter( *e ) && ( pseudo || !e->has_flag( "PSEUDO" ) ) ) { qty = sum_no_wrap( qty, 1 ); } @@ -920,7 +919,7 @@ static int amount_of_internal( const T &self, const itype_id &id, bool pseudo, i /** @relates visitable */ template -int visitable::amount_of( const std::string &what, bool pseudo, int limit, +int visitable::amount_of( const itype_id &what, bool pseudo, int limit, const std::function &filter ) const { return amount_of_internal( *this, what, pseudo, limit, filter ); @@ -928,17 +927,17 @@ int visitable::amount_of( const std::string &what, bool pseudo, int limit, /** @relates visitable */ template <> -int visitable::amount_of( const std::string &what, bool pseudo, int limit, +int visitable::amount_of( const itype_id &what, bool pseudo, int limit, const std::function &filter ) const { const auto &binned = static_cast( this )->get_binned_items(); const auto iter = binned.find( what ); - if( iter == binned.end() && what != "any" ) { + if( iter == binned.end() && what != itype_id( "any" ) ) { return 0; } int res = 0; - if( what == "any" ) { + if( what.str() == "any" ) { for( const auto &kv : binned ) { for( const item *it : kv.second ) { res = sum_no_wrap( res, it->amount_of( what, pseudo, limit, filter ) ); @@ -955,16 +954,16 @@ int visitable::amount_of( const std::string &what, bool pseudo, int l /** @relates visitable */ template <> -int visitable::amount_of( const std::string &what, bool pseudo, int limit, +int visitable::amount_of( const itype_id &what, bool pseudo, int limit, const std::function &filter ) const { auto self = static_cast( this ); - if( what == "toolset" && pseudo && self->has_active_bionic( bio_tools ) ) { + if( what == itype_toolset && pseudo && self->has_active_bionic( bio_tools ) ) { return 1; } - if( what == "apparatus" && pseudo ) { + if( what == itype_apparatus && pseudo ) { int qty = 0; visit_items( [&qty, &limit, &filter]( const item * e ) { if( e->get_quality( quality_id( "SMOKE_PIPE" ) ) >= 1 && filter( *e ) ) { @@ -980,7 +979,7 @@ int visitable::amount_of( const std::string &what, bool pseudo, int l /** @relates visitable */ template -bool visitable::has_amount( const std::string &what, int qty, bool pseudo, +bool visitable::has_amount( const itype_id &what, int qty, bool pseudo, const std::function &filter ) const { return amount_of( what, pseudo, qty, filter ) == qty; diff --git a/src/visitable.h b/src/visitable.h index 40210068901ad..6135741ec5b1a 100644 --- a/src/visitable.h +++ b/src/visitable.h @@ -13,7 +13,7 @@ class item; -enum class VisitResponse { +enum class VisitResponse : int { ABORT, // Stop processing after this node NEXT, // Descend vertically to any child nodes and then horizontally to next sibling SKIP // Skip any child nodes and move directly to the next sibling @@ -76,9 +76,9 @@ class visitable * @param filter only count charges of items that match the filter * @param visitor is called when UPS charge is used (parameter is the charge itself) */ - int charges_of( const std::string &what, int limit = INT_MAX, + int charges_of( const itype_id &what, int limit = INT_MAX, const std::function &filter = return_true, - std::function visitor = nullptr ) const; + const std::function &visitor = nullptr ) const; /** * Count items matching id including both this instance and any contained items @@ -88,12 +88,12 @@ class visitable * @param filter only count items that match the filter * @note items must be empty to be considered a match */ - int amount_of( const std::string &what, bool pseudo = true, + int amount_of( const itype_id &what, bool pseudo = true, int limit = INT_MAX, const std::function &filter = return_true ) const; /** Check instance provides at least qty of an item (@see amount_of) */ - bool has_amount( const std::string &what, int qty, bool pseudo = true, + bool has_amount( const itype_id &what, int qty, bool pseudo = true, const std::function &filter = return_true ) const; /** Returns all items (including those within a container) matching the filter */ diff --git a/src/vitamin.h b/src/vitamin.h index 03cc84a2a0642..ef6770cca8fe9 100644 --- a/src/vitamin.h +++ b/src/vitamin.h @@ -15,7 +15,7 @@ class JsonObject; template struct enum_traits; -enum vitamin_type { +enum class vitamin_type : int { VITAMIN, TOXIN, DRUG, diff --git a/src/weather.cpp b/src/weather.cpp index e264a8cd09df0..9e93656e2ec3f 100644 --- a/src/weather.cpp +++ b/src/weather.cpp @@ -42,6 +42,10 @@ static const efftype_id effect_glare( "glare" ); static const efftype_id effect_sleep( "sleep" ); static const efftype_id effect_snow_glare( "snow_glare" ); +static const itype_id itype_water( "water" ); +static const itype_id itype_water_acid( "water_acid" ); +static const itype_id itype_water_acid_weak( "water_acid_weak" ); + static const trait_id trait_CEPH_VISION( "CEPH_VISION" ); static const trait_id trait_FEATHERS( "FEATHERS" ); @@ -57,8 +61,8 @@ static bool is_player_outside() return g->m.is_outside( point( g->u.posx(), g->u.posy() ) ) && g->get_levz() >= 0; } -#define THUNDER_CHANCE 50 -#define LIGHTNING_CHANCE 600 +static constexpr int THUNDER_CHANCE = 50; +static constexpr int LIGHTNING_CHANCE = 600; /** * Glare. @@ -216,10 +220,10 @@ void item::add_rain_to_container( bool acid, int charges ) } put_in( ret, item_pocket::pocket_type::CONTAINER ); } else { - static const std::set allowed_liquid_types{ - "water", - "water_acid", - "water_acid_weak" + static const std::set allowed_liquid_types{ + itype_water, + itype_water_acid, + itype_water_acid_weak }; item *found_liq = contents.get_item_with( [&]( const item & liquid ) { return allowed_liquid_types.count( liquid.typeId() ); @@ -236,7 +240,7 @@ void item::add_rain_to_container( bool acid, int charges ) liq.charges += added; } - if( liq.typeId() == ret.typeId() || liq.typeId() == "water_acid_weak" ) { + if( liq.typeId() == ret.typeId() || liq.typeId() == itype_water_acid_weak ) { // The container already contains this liquid or weakly acidic water. // Don't do anything special -- we already added liquid. } else { @@ -253,7 +257,7 @@ void item::add_rain_to_container( bool acid, int charges ) if( transmute ) { liq = item( "water_acid_weak", calendar::turn, liq.charges ); - } else if( liq.typeId() == "water" ) { + } else if( liq.typeId() == itype_water ) { // The container has water, and the acid rain didn't turn it // into weak acid. Poison the water instead, assuming 1 // charge of acid would act like a charge of water with poison 5. @@ -393,10 +397,10 @@ static void wet_player( int amount ) const auto &wet = g->u.body_wetness; const auto &capacity = g->u.drench_capacity; - body_part_set drenched_parts{ { bp_torso, bp_arm_l, bp_arm_r, bp_head } }; + body_part_set drenched_parts{ { bodypart_str_id( "torso" ), bodypart_str_id( "arm_l" ), bodypart_str_id( "arm_r" ), bodypart_str_id( "head" ) } }; if( wet[bp_torso] * 100 >= capacity[bp_torso] * 50 ) { // Once upper body is 50%+ drenched, start soaking the legs too - drenched_parts |= { { bp_leg_l, bp_leg_r } }; + drenched_parts.unify_set( { { bodypart_str_id( "leg_l" ), bodypart_str_id( "leg_r" ) } } ); } g->u.drench( amount, drenched_parts, false ); diff --git a/src/wincurse.cpp b/src/wincurse.cpp index 7dfb19ae025e2..784eb1348d3bf 100644 --- a/src/wincurse.cpp +++ b/src/wincurse.cpp @@ -77,6 +77,9 @@ static std::wstring widen( const std::string &s ) return std::wstring( buffer.data(), newlen ); } +static constexpr uint32_t WndStyle = WS_CAPTION | WS_MINIMIZEBOX | WS_SIZEBOX | + WS_MAXIMIZEBOX | WS_SYSMENU | WS_VISIBLE; + // Registers, creates, and shows the Window!! static bool WinCreate() { @@ -102,8 +105,6 @@ static 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; RECT WndRect; WndRect.left = WndRect.top = 0; WndRect.right = WindowWidth; @@ -180,6 +181,7 @@ bool handle_resize( int, int ) TERMINAL_HEIGHT = WndRect.bottom / fontheight; WindowWidth = TERMINAL_WIDTH * fontwidth; WindowHeight = TERMINAL_HEIGHT * fontheight; + catacurses::stdscr = catacurses::newwin( TERMINAL_HEIGHT, TERMINAL_WIDTH, point_zero ); catacurses::resizeterm(); create_backbuffer(); SetBkMode( backbuffer, TRANSPARENT ); //Transparent font backgrounds @@ -188,13 +190,30 @@ bool handle_resize( int, int ) if( SetDIBColorTable( backbuffer, 0, windowsPalette.size(), windowsPalette.data() ) == 0 ) { throw std::runtime_error( "SetDIBColorTable failed" ); } - catacurses::refresh(); ui_manager::screen_resized(); } return true; } +void resize_term( const int cell_w, const int cell_h ) +{ + RECT WndRect; + WndRect.left = WndRect.top = 0; + WndRect.right = cell_w * fontwidth * get_scaling_factor(); + WndRect.bottom = cell_h * fontheight * get_scaling_factor(); + if( !AdjustWindowRect( &WndRect, WndStyle, false ) ) { + return; + } + if( !SetWindowPos( WindowHandle, nullptr, 0, 0, + WndRect.right - WndRect.left, WndRect.bottom - WndRect.top, + SWP_NOMOVE | SWP_NOZORDER ) ) { + return; + } + GetClientRect( WindowHandle, &WndRect ); + handle_resize( WndRect.right - WndRect.left, WndRect.bottom - WndRect.top ); +} + // Copied from sdlcurses.cpp #define ALT_BUFFER_SIZE 8 static char alt_buffer[ALT_BUFFER_SIZE] = {}; @@ -336,8 +355,11 @@ LRESULT CALLBACK ProcessMessages( HWND__ *hWnd, unsigned int Msg, return 0; case WM_SIZE: - case WM_SIZING: - needs_resize = true; + WINDOWPLACEMENT win_placement; + win_placement.length = sizeof( win_placement ); + if( GetWindowPlacement( hWnd, &win_placement ) && win_placement.showCmd != SW_SHOWMINIMIZED ) { + needs_resize = true; + } return 0; case WM_SYSCHAR: @@ -373,9 +395,6 @@ LRESULT CALLBACK ProcessMessages( HWND__ *hWnd, unsigned int Msg, case WM_PAINT: BitBlt( WindowDC, 0, 0, WindowWidth, WindowHeight, backbuffer, 0, 0, SRCCOPY ); - ui_manager::invalidate( rectangle( point_zero, point( getmaxx( catacurses::stdscr ), - getmaxy( catacurses::stdscr ) ) ) ); - ui_manager::redraw(); ValidateRect( WindowHandle, nullptr ); return 0; @@ -421,17 +440,9 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) int drawx = 0; int drawy = 0; wchar_t tmp; - RECT update = {win->pos.x * fontwidth, -1, - ( win->pos.x + win->width ) *fontwidth, -1 - }; for( j = 0; j < win->height; j++ ) { if( win->line[j].touched ) { - update.bottom = ( win->pos.y + j + 1 ) * fontheight; - if( update.top == -1 ) { - update.top = update.bottom - fontheight; - } - win->line[j].touched = false; for( i = 0; i < win->width; i++ ) { @@ -536,9 +547,6 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) }// for (j=0;jheight;j++) // We drew the window, mark it as so win->draw = false; - if( update.top != -1 ) { - RedrawWindow( WindowHandle, &update, nullptr, RDW_INVALIDATE | RDW_UPDATENOW ); - } } // Check for any window messages (keypress, paint, mousemove, etc) @@ -551,6 +559,7 @@ static void CheckMessages() } if( needs_resize ) { handle_resize( 0, 0 ); + refresh_display(); } } @@ -689,17 +698,17 @@ input_event input_manager::get_input_event() input_event rval; if( lastchar == ERR ) { if( input_timeout > 0 ) { - rval.type = CATA_INPUT_TIMEOUT; + rval.type = input_event_t::timeout; } else { - rval.type = CATA_INPUT_ERROR; + rval.type = input_event_t::error; } } else { // == Unicode DELETE if( lastchar == 127 ) { previously_pressed_key = KEY_BACKSPACE; - return input_event( KEY_BACKSPACE, CATA_INPUT_KEYBOARD ); + return input_event( KEY_BACKSPACE, input_event_t::keyboard ); } - rval.type = CATA_INPUT_KEYBOARD; + rval.type = input_event_t::keyboard; rval.text = utf32_to_utf8( lastchar ); previously_pressed_key = lastchar; // for compatibility only add the first byte, not the code point @@ -765,4 +774,9 @@ HWND getWindowHandle() return WindowHandle; } +void refresh_display() +{ + RedrawWindow( WindowHandle, nullptr, nullptr, RDW_INVALIDATE | RDW_UPDATENOW ); +} + #endif diff --git a/src/wish.cpp b/src/wish.cpp index 3066e03bcfa9f..1c8691355e6ad 100644 --- a/src/wish.cpp +++ b/src/wish.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -201,7 +202,7 @@ class wish_mutate_callback: public uilist_callback _( "[%s] find, [%s] quit, [t] toggle base trait" ), ctxt.get_desc( "FILTER" ), ctxt.get_desc( "QUIT" ) ); - wrefresh( menu->window ); + wnoutrefresh( menu->window ); } ~wish_mutate_callback() override = default; @@ -370,7 +371,7 @@ class wish_monster_callback: public uilist_callback _( "[%s] find, [f]riendly, [h]allucination, [i]ncrease group, [d]ecrease group, [%s] quit" ), ctxt.get_desc( "FILTER" ), ctxt.get_desc( "QUIT" ) ); - wrefresh( w_info ); + wnoutrefresh( w_info ); } ~wish_monster_callback() override = default; @@ -445,8 +446,21 @@ class wish_item_callback: public uilist_callback wish_item_callback( const std::vector &ids ) : incontainer( false ), has_flag( false ), spawn_everything( false ), standard_itype_ids( ids ) { } + + void select( uilist *menu ) override { + if( menu->selected < 0 ) { + return; + } + if( standard_itype_ids[menu->selected]->phase == phase_id::LIQUID ) { + incontainer = true; + } else { + incontainer = false; + } + } + bool key( const input_context &, const input_event &event, int /*entnum*/, uilist * /*menu*/ ) override { + if( event.get_first_input() == 'f' ) { incontainer = !incontainer; return true; @@ -495,7 +509,7 @@ class wish_item_callback: public uilist_callback mvwprintw( menu->window, point( startx, menu->w_height - 2 ), _( "[%s] find, [f] container, [F] flag, [E] everything, [%s] quit" ), ctxt.get_desc( "FILTER" ), ctxt.get_desc( "QUIT" ) ); - wrefresh( menu->window ); + wnoutrefresh( menu->window ); } }; @@ -510,7 +524,16 @@ void debug_menu::wishitem( player *p, const tripoint &pos ) debugmsg( "game::wishitem(): invalid parameters" ); return; } - const auto opts = item_controller->all(); + std::vector> opts; + for( const itype *i : item_controller->all() ) { + opts.emplace_back( item( i, 0 ).tname( 1, false ), i ); + } + std::sort( opts.begin(), opts.end(), localized_compare ); + std::vector itypes; + std::transform( opts.begin(), opts.end(), std::back_inserter( itypes ), + []( const auto & pair ) { + return pair.second; + } ); int prev_amount = 1; int amount = 1; @@ -523,12 +546,12 @@ void debug_menu::wishitem( player *p, const tripoint &pos ) return std::max( TERMX / 2, TERMX - 50 ); }; wmenu.selected = uistate.wishitem_selected; - wish_item_callback cb( opts ); + wish_item_callback cb( itypes ); wmenu.callback = &cb; for( size_t i = 0; i < opts.size(); i++ ) { - item ity( opts[i], 0 ); - wmenu.addentry( i, true, 0, ity.tname( 1, false ) ); + item ity( opts[i].second, 0 ); + wmenu.addentry( i, true, 0, opts[i].first ); mvwzstr &entry_extra_text = wmenu.entries[i].extratxt; entry_extra_text.txt = ity.symbol(); entry_extra_text.color = ity.color(); @@ -541,7 +564,7 @@ void debug_menu::wishitem( player *p, const tripoint &pos ) } bool did_amount_prompt = false; while( wmenu.ret >= 0 ) { - item granted( opts[wmenu.ret] ); + item granted( opts[wmenu.ret].second ); if( cb.incontainer ) { granted = granted.in_its_container(); } @@ -549,7 +572,7 @@ void debug_menu::wishitem( player *p, const tripoint &pos ) granted.item_tags.insert( cb.flag ); } // If the item has an ammunition, this loads it to capacity, including magazines. - if( granted.ammo_default() != "NULL" ) { + if( !granted.ammo_default().is_null() ) { granted.ammo_set( granted.ammo_default(), -1 ); } @@ -661,9 +684,6 @@ void debug_menu::wishskill( player *p ) sksetmenu.addentry( i, true, i + 48, "%d%s", i, skcur == i ? _( " (current)" ) : "" ); } sksetmenu.query(); - g->draw_ter(); - wrefresh( g->w_terrain ); - g->draw_panels( true ); skset = sksetmenu.ret; } diff --git a/src/worldfactory.cpp b/src/worldfactory.cpp index 8b4b4dc67596c..fcb4788660099 100644 --- a/src/worldfactory.cpp +++ b/src/worldfactory.cpp @@ -157,7 +157,7 @@ WORLDPTR worldfactory::make_new_world( bool show_prompt, const std::string &worl ui.on_redraw( [&]( const ui_adaptor & ) { draw_worldgen_tabs( wf_win, static_cast( curtab ) ); - wrefresh( wf_win ); + wnoutrefresh( wf_win ); } ); const size_t numtabs = tabs.size(); @@ -261,17 +261,17 @@ void worldfactory::init() { load_last_world_info(); - std::vector qualifiers; - qualifiers.push_back( PATH_INFO::worldoptions() ); - qualifiers.push_back( PATH_INFO::legacy_worldoptions() ); - qualifiers.push_back( SAVE_MASTER ); - all_worlds.clear(); - // get the master files. These determine the validity of a world - // worlds exist by having an option file - // create worlds - for( const auto &world_dir : get_directories_with( qualifiers, PATH_INFO::savedir(), true ) ) { + // The validity of a world is determined by the existance of any + // option files or the master save file. + static const auto is_save_dir = []( const std::string & maybe_save_dir ) { + return file_exist( maybe_save_dir + "/" + PATH_INFO::worldoptions() ) || + file_exist( maybe_save_dir + "/" + PATH_INFO::legacy_worldoptions() ) || + file_exist( maybe_save_dir + "/" + SAVE_MASTER ); + }; + + const auto add_existing_world = [&]( const std::string & world_dir ) { // get the save files auto world_sav_files = get_files_from_path( SAVE_EXTENSION, world_dir, false ); // split the save file names between the directory and the extension @@ -280,6 +280,7 @@ void worldfactory::init() world_sav_file = world_sav_file.substr( world_dir.size() + 1, save_index - ( world_dir.size() + 1 ) ); } + // the directory name is the name of the world std::string worldname; size_t name_index = world_dir.find_last_of( "/\\" ); @@ -301,11 +302,24 @@ void worldfactory::init() all_worlds[worldname]->WORLD_OPTIONS["WORLD_END"].setValue( "delete" ); all_worlds[worldname]->save(); } + }; + + // This returns files as well, but they are going to be discared later as + // we look for files *within* these dirs. If it's a file, there won't be + // be any of those inside it and is_save_dir will return false. + for( const std::string &dir : get_files_from_path( "", PATH_INFO::savedir(), false ) ) { + if( !is_save_dir( dir ) ) { + continue; + } + add_existing_world( dir ); } - // check to see if there exists a worldname "save" which denotes that a world exists in the save - // directory and not in a sub-world directory - if( has_world( "save" ) ) { + // In old versions, there was only one world, stored directly in the "save" directory. + // If that directory contains the expected files, it's an old save and must be converted. + if( is_save_dir( "save" ) ) { + // @TODO import directly into the new world instead of having this dummy "save" world. + add_existing_world( "save" ); + const WORLD &old_world = *all_worlds["save"]; std::unique_ptr newworld = std::make_unique(); @@ -435,7 +449,7 @@ WORLDPTR worldfactory::pick_world( bool show_prompt ) } } - wrefresh( w_worlds_border ); + wnoutrefresh( w_worlds_border ); for( int i = 0; i < getmaxx( w_worlds_border ); i++ ) { if( mapLines[i] ) { @@ -445,7 +459,7 @@ WORLDPTR worldfactory::pick_world( bool show_prompt ) } } - wrefresh( w_worlds_header ); + wnoutrefresh( w_worlds_header ); //Clear the lines for( int i = 0; i < iContentHeight; i++ ) { @@ -493,12 +507,12 @@ WORLDPTR worldfactory::pick_world( bool show_prompt ) } } - wrefresh( w_worlds_header ); + wnoutrefresh( w_worlds_header ); fold_and_print( w_worlds_tooltip, point_zero, 78, c_white, _( "Pick a world to enter game" ) ); - wrefresh( w_worlds_tooltip ); + wnoutrefresh( w_worlds_tooltip ); - wrefresh( w_worlds ); + wnoutrefresh( w_worlds ); } ); input_context ctxt( "PICK_WORLD_DIALOG" ); @@ -730,8 +744,8 @@ void worldfactory::draw_mod_list( const catacurses::window &w, int &start, size_ draw_scrollbar( w, static_cast( iActive ), iMaxRows, static_cast( iModNum ), point_zero ); } - wrefresh( w ); - wrefresh( w_shift ); + wnoutrefresh( w ); + wnoutrefresh( w_shift ); } void worldfactory::show_active_world_mods( const std::vector &world_mods ) @@ -766,11 +780,11 @@ void worldfactory::show_active_world_mods( const std::vector &world_mods ui.on_redraw( [&]( const ui_adaptor & ) { draw_border( w_border, BORDER_COLOR, _( " ACTIVE WORLD MODS " ) ); - wrefresh( w_border ); + wnoutrefresh( w_border ); draw_mod_list( w_mods, start, static_cast( cursor ), world_mods, true, _( "--NO ACTIVE MODS--" ), catacurses::window() ); - wrefresh( w_mods ); + wnoutrefresh( w_mods ); } ); while( true ) { @@ -910,7 +924,7 @@ int worldfactory::show_worldgen_tab_modselection( const catacurses::window &win, mvwputch( header_windows[i], point( header_x + utf8_width( headers[i] ) + 2, 0 ), c_red, '>' ); } - wrefresh( header_windows[i] ); + wnoutrefresh( header_windows[i] ); } // Redraw description @@ -944,8 +958,8 @@ int worldfactory::show_worldgen_tab_modselection( const catacurses::window &win, wputch( win, BORDER_COLOR, LINE_OXOX ); } - wrefresh( w_description ); - wrefresh( win ); + wnoutrefresh( w_description ); + wnoutrefresh( win ); // Redraw list draw_mod_list( w_list, startsel[0], cursel[0], current_tab_mods, active_header == 0, @@ -1160,8 +1174,8 @@ int worldfactory::show_worldgen_tab_confirm( const catacurses::window &win, WORL } } - wrefresh( win ); - wrefresh( w_confirmation ); + wnoutrefresh( win ); + wnoutrefresh( w_confirmation ); } ); do { @@ -1289,8 +1303,7 @@ void worldfactory::draw_modselection_borders( const catacurses::window &win, ctxtp.get_desc( "NEXT_CATEGORY_TAB" ), ctxtp.get_desc( "HELP_KEYBINDINGS" ) ); - wrefresh( win ); - catacurses::refresh(); + wnoutrefresh( win ); } void worldfactory::draw_worldgen_tabs( const catacurses::window &w, size_t current ) @@ -1374,10 +1387,9 @@ void WORLD::load_legacy_options( std::istream &fin ) // make sure that the option being loaded is part of the world_default page in OPTIONS // In 0.C some lines consisted of a space and nothing else const std::string name = opts.migrateOptionName( sLine.substr( 0, ipos ) ); - const std::string value = opts.migrateOptionValue( sLine.substr( 0, ipos ), sLine.substr( ipos + 1, - sLine.length() ) ); - if( ipos != 0 && opts.get_option( name ).getPage() == "world_default" ) { + const std::string value = opts.migrateOptionValue( sLine.substr( 0, ipos ), sLine.substr( ipos + 1, + sLine.length() ) ); WORLD_OPTIONS[name].setValue( value ); } } diff --git a/tests/Makefile b/tests/Makefile index 89f2ec82f9e1f..96fb3204a6749 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -46,7 +46,7 @@ clean: $(shell mkdir -p $(ODIR)) $(ODIR)/%.o: %.cpp - $(CXX) $(DEFINES) $(CXXFLAGS) -c $< -o $@ + $(CXX) $(CPPFLAGS) $(DEFINES) $(CXXFLAGS) -c $< -o $@ .PHONY: clean check tests diff --git a/tests/archery_damage_test.cpp b/tests/archery_damage_test.cpp index 506340be7301e..5be08c27c436d 100644 --- a/tests/archery_damage_test.cpp +++ b/tests/archery_damage_test.cpp @@ -51,8 +51,8 @@ static void test_projectile_hitting_wall( const std::string &target_type, bool s } } -static void test_projectile_attack( std::string target_type, bool killable, - dealt_projectile_attack &attack, std::string weapon_type ) +static void test_projectile_attack( const std::string &target_type, bool killable, + dealt_projectile_attack &attack, const std::string &weapon_type ) { for( int i = 0; i < 10; ++i ) { monster target{ mtype_id( target_type ), tripoint_zero }; @@ -66,12 +66,12 @@ static void test_projectile_attack( std::string target_type, bool killable, } } -static void test_archery_balance( std::string weapon_type, std::string ammo_type, - std::string killable, std::string unkillable ) +static void test_archery_balance( const std::string &weapon_type, const std::string &ammo_type, + const std::string &killable, const std::string &unkillable ) { item weapon( weapon_type ); // The standard modern hunting arrow, make this a parameter if we extend to crossbows. - weapon.ammo_set( ammo_type, 1 ); + weapon.ammo_set( itype_id( ammo_type ), 1 ); projectile test_projectile; test_projectile.speed = 1000; diff --git a/tests/behavior_test.cpp b/tests/behavior_test.cpp index 1290ebd2fa3a5..129d7cfdb9bb3 100644 --- a/tests/behavior_test.cpp +++ b/tests/behavior_test.cpp @@ -9,6 +9,8 @@ #include "game.h" #include "item.h" #include "item_location.h" +#include "map.h" +#include "map_iterator.h" #include "monster_oracle.h" #include "mtype.h" #include "npc.h" @@ -25,13 +27,13 @@ extern fallback_t default_fallback; extern sequential_until_done_t default_until_done; } // namespace behavior -static behavior::node_t make_test_node( std::string goal, const behavior::status_t *status ) +static behavior::node_t make_test_node( const std::string &goal, const behavior::status_t *status ) { behavior::node_t node; if( !goal.empty() ) { node.set_goal( goal ); } - node.set_predicate( [status]( const behavior::oracle_t * ) { + node.add_predicate( [status]( const behavior::oracle_t *, const std::string & ) { return *status; } ); return node; @@ -39,13 +41,13 @@ static behavior::node_t make_test_node( std::string goal, const behavior::status TEST_CASE( "behavior_tree", "[behavior]" ) { - behavior::status_t cold_state = behavior::running; - behavior::status_t thirsty_state = behavior::running; - behavior::status_t hungry_state = behavior::running; - behavior::status_t clothes_state = behavior::running; - behavior::status_t fire_state = behavior::running; - behavior::status_t water_state = behavior::running; - behavior::status_t clean_water_state = behavior::running; + behavior::status_t cold_state = behavior::status_t::running; + behavior::status_t thirsty_state = behavior::status_t::running; + behavior::status_t hungry_state = behavior::status_t::running; + behavior::status_t clothes_state = behavior::status_t::running; + behavior::status_t fire_state = behavior::status_t::running; + behavior::status_t water_state = behavior::status_t::running; + behavior::status_t clean_water_state = behavior::status_t::running; behavior::node_t clothes = make_test_node( "wear", &clothes_state ); behavior::node_t fire = make_test_node( "fire", &fire_state ); @@ -73,71 +75,71 @@ TEST_CASE( "behavior_tree", "[behavior]" ) // First and therefore highest priority goal. CHECK( maslows.tick( nullptr ) == "wear" ); - thirsty_state = behavior::success; + thirsty_state = behavior::status_t::success; // Later states don't matter. CHECK( maslows.tick( nullptr ) == "wear" ); - hungry_state = behavior::success; + hungry_state = behavior::status_t::success; // This one either. CHECK( maslows.tick( nullptr ) == "wear" ); - cold_state = behavior::success; - thirsty_state = behavior::running; + cold_state = behavior::status_t::success; + thirsty_state = behavior::status_t::running; // First need met, second branch followed. CHECK( maslows.tick( nullptr ) == "get_water" ); - cold_state = behavior::failure; + cold_state = behavior::status_t::failure; // First need failed, second branch followed. CHECK( maslows.tick( nullptr ) == "get_water" ); - water_state = behavior::success; + water_state = behavior::status_t::success; // Got water, proceed to next goal. CHECK( maslows.tick( nullptr ) == "clean_water" ); - clean_water_state = behavior::success; - hungry_state = behavior::running; + clean_water_state = behavior::status_t::success; + hungry_state = behavior::status_t::running; // Got clean water, proceed to food. CHECK( maslows.tick( nullptr ) == "get_food" ); - water_state = behavior::failure; - clean_water_state = behavior::running; + water_state = behavior::status_t::failure; + clean_water_state = behavior::status_t::running; // Failed to get water, give up. CHECK( maslows.tick( nullptr ) == "get_food" ); - water_state = behavior::running; + water_state = behavior::status_t::running; CHECK( maslows.tick( nullptr ) == "get_water" ); - cold_state = behavior::success; - thirsty_state = behavior::success; - hungry_state = behavior::running; + cold_state = behavior::status_t::success; + thirsty_state = behavior::status_t::success; + hungry_state = behavior::status_t::running; // Second need also met, third branch taken. CHECK( maslows.tick( nullptr ) == "get_food" ); - cold_state = behavior::success; - // Failure also causes third branch to be taken. + cold_state = behavior::status_t::success; + // Status_T::Failure also causes third branch to be taken. CHECK( maslows.tick( nullptr ) == "get_food" ); - thirsty_state = behavior::success; - // Failure in second branch too. + thirsty_state = behavior::status_t::success; + // Status_T::Failure in second branch too. CHECK( maslows.tick( nullptr ) == "get_food" ); - thirsty_state = behavior::running; - cold_state = behavior::running; + thirsty_state = behavior::status_t::running; + cold_state = behavior::status_t::running; // First need appears again and becomes highest priority again. CHECK( maslows.tick( nullptr ) == "wear" ); - clothes_state = behavior::failure; + clothes_state = behavior::status_t::failure; // First alternative failed, attempting second. CHECK( maslows.tick( nullptr ) == "fire" ); - fire_state = behavior::failure; + fire_state = behavior::status_t::failure; // Both alternatives failed, check other needs. CHECK( maslows.tick( nullptr ) == "get_water" ); - clothes_state = behavior::success; - // Either failure or success meets requirements. + clothes_state = behavior::status_t::success; + // Either status_t::failure or status_t::success meets requirements. CHECK( maslows.tick( nullptr ) == "get_water" ); - clothes_state = behavior::failure; - fire_state = behavior::success; + clothes_state = behavior::status_t::failure; + fire_state = behavior::status_t::success; // Either order does it. CHECK( maslows.tick( nullptr ) == "get_water" ); - hungry_state = behavior::running; + hungry_state = behavior::status_t::running; // Still thirsty, so changes to hunger are irrelevant. CHECK( maslows.tick( nullptr ) == "get_water" ); - thirsty_state = behavior::success; - hungry_state = behavior::success; + thirsty_state = behavior::status_t::success; + hungry_state = behavior::status_t::success; // All needs met, so no goals remain. CHECK( maslows.tick( nullptr ) == "idle" ); } // Make assertions about loaded behaviors. -TEST_CASE( "check_npc_behavior_tree", "[npc][behavior][!mayfail]" ) +TEST_CASE( "check_npc_behavior_tree", "[npc][behavior]" ) { clear_map(); behavior::tree npc_needs; @@ -167,7 +169,7 @@ TEST_CASE( "check_npc_behavior_tree", "[npc][behavior][!mayfail]" ) item &food = test_npc.i_add( item( itype_id( "sandwich_cheese_grilled" ) ) ); item_location loc = item_location( test_npc, &food ); CHECK( npc_needs.tick( &oracle ) == "eat_food" ); - test_npc.consume( loc ); + loc.remove_item(); CHECK( npc_needs.tick( &oracle ) == "idle" ); } SECTION( "Thirsty" ) { @@ -176,25 +178,35 @@ TEST_CASE( "check_npc_behavior_tree", "[npc][behavior][!mayfail]" ) item &water = test_npc.i_add( item( itype_id( "water" ) ) ); item_location loc = item_location( test_npc, &water ); CHECK( npc_needs.tick( &oracle ) == "drink_water" ); - test_npc.consume( loc ); + loc.remove_item(); CHECK( npc_needs.tick( &oracle ) == "idle" ); } } TEST_CASE( "check_monster_behavior_tree", "[monster][behavior]" ) { + const tripoint monster_location( 5, 5, 0 ); + clear_map(); + monster &test_monster = spawn_test_monster( "mon_locust", monster_location ); + + behavior::monster_oracle_t oracle( &test_monster ); behavior::tree monster_goals; - monster_goals.add( &string_id( "monster_special" ).obj() ); - monster &test_monster = spawn_test_monster( "mon_zombie", { 5, 5, 0 } ); + monster_goals.add( test_monster.type->get_goals() ); + for( const std::string &special_name : test_monster.type->special_attacks_names ) { test_monster.reset_special( special_name ); } - behavior::monster_oracle_t oracle( &test_monster ); CHECK( monster_goals.tick( &oracle ) == "idle" ); + for( const tripoint &near_monster : g->m.points_in_radius( monster_location, 1 ) ) { + g->m.ter_set( near_monster, ter_id( "t_grass" ) ); + g->m.furn_set( near_monster, furn_id( "f_null" ) ); + } SECTION( "Special Attack" ) { - test_monster.set_special( "bite", 0 ); - CHECK( monster_goals.tick( &oracle ) == "do_special" ); - test_monster.set_special( "bite", 1 ); + test_monster.set_special( "EAT_CROP", 0 ); + CHECK( monster_goals.tick( &oracle ) == "idle" ); + g->m.furn_set( monster_location, furn_id( "f_plant_seedling" ) ); + CHECK( monster_goals.tick( &oracle ) == "EAT_CROP" ); + test_monster.set_special( "EAT_CROP", 1 ); CHECK( monster_goals.tick( &oracle ) == "idle" ); } } diff --git a/tests/bionics_test.cpp b/tests/bionics_test.cpp index cd07d0b9c87d7..07b1098be8229 100644 --- a/tests/bionics_test.cpp +++ b/tests/bionics_test.cpp @@ -48,7 +48,14 @@ static void test_consumable_ammo( player &p, std::string &itemname, bool when_em INFO( "consume \'" + it.tname() + "\' with " + std::to_string( it.ammo_remaining() ) + " charges" ); REQUIRE( p.can_consume( it ) == when_empty ); - it.ammo_set( it.ammo_default(), -1 ); // -1 -> full + if( !it.magazine_default().is_null() ) { + item mag( it.magazine_default() ); + mag.ammo_set( mag.ammo_default() ); + it.put_in( mag, item_pocket::pocket_type::MAGAZINE_WELL ); + } else if( !it.ammo_default().is_null() ) { + it.ammo_set( it.ammo_default() ); // fill + } + INFO( "consume \'" + it.tname() + "\' with " + std::to_string( it.ammo_remaining() ) + " charges" ); REQUIRE( p.can_consume( it ) == when_full ); } diff --git a/tests/calendar_test.cpp b/tests/calendar_test.cpp index b0f589e4b5f22..1126c5fdf4c69 100644 --- a/tests/calendar_test.cpp +++ b/tests/calendar_test.cpp @@ -2,39 +2,6 @@ #include "catch/catch.hpp" #include "options_helpers.h" -TEST_CASE( "moon_phases_take_28_days", "[calendar]" ) -{ - CAPTURE( calendar::season_length() ); - // This test only makes sense if the seasons are set to the default length - REQUIRE( calendar::season_from_default_ratio() == Approx( 1.0f ) ); - - const int num_days = GENERATE( take( 100, random( 0, 1000 ) ) ); - const time_point first_time = calendar::turn_zero + time_duration::from_days( num_days ); - const time_point later_14_days = first_time + 14_days; - const time_point later_29_days = first_time + 29_days; - const time_point later_30_days = first_time + 30_days; - - CAPTURE( num_days ); - CHECK( get_moon_phase( first_time ) != get_moon_phase( later_14_days ) ); - // Phase should match either 29 or 30 days later - CHECK( ( get_moon_phase( first_time ) == get_moon_phase( later_29_days ) || - get_moon_phase( first_time ) == get_moon_phase( later_30_days ) ) ); -} - -TEST_CASE( "moon_phase_changes_at_noon", "[calendar]" ) -{ - // This test only makes sense if the seasons are set to the default length - REQUIRE( calendar::season_from_default_ratio() == Approx( 1.0f ) ); - - const int num_days = GENERATE( take( 100, random( 0, 1000 ) ) ); - const time_point midnight = calendar::turn_zero + time_duration::from_days( num_days ); - const time_point earlier_11_hours = midnight - 11_hours; - const time_point later_11_hours = midnight + 11_hours; - - CAPTURE( num_days ); - CHECK( get_moon_phase( earlier_11_hours ) == get_moon_phase( later_11_hours ) ); -} - TEST_CASE( "time_duration_to_string", "[calendar]" ) { CHECK( to_string( 10_seconds ) == "10 seconds" ); diff --git a/tests/cata_variant_test.cpp b/tests/cata_variant_test.cpp index 6ef4e396d4cd0..b3c62353fee60 100644 --- a/tests/cata_variant_test.cpp +++ b/tests/cata_variant_test.cpp @@ -38,6 +38,14 @@ TEST_CASE( "variant_construction", "[variant]" ) CHECK( v2.get() == mtype_id( "zombie" ) ); CHECK( v2.get() == mtype_id( "zombie" ) ); } + SECTION( "point" ) { + point p( 7, 63 ); + cata_variant v = cata_variant::make( p ); + CHECK( v.type() == cata_variant_type::point ); + CHECK( v.get() == p ); + CHECK( v.get() == p ); + CHECK( v.get_string() == p.to_string() ); + } SECTION( "construction_from_const_lvalue" ) { const character_id i; cata_variant v( i ); diff --git a/tests/char_biometrics_test.cpp b/tests/char_biometrics_test.cpp index 260c829dd47cc..536f9271d166a 100644 --- a/tests/char_biometrics_test.cpp +++ b/tests/char_biometrics_test.cpp @@ -63,7 +63,7 @@ static float bodyweight_kg_at_bmi( player &dummy, float bmi ) } // Clear player traits and give them a single trait by name -static void set_single_trait( player &dummy, std::string trait_name ) +static void set_single_trait( player &dummy, const std::string &trait_name ) { dummy.clear_mutations(); dummy.toggle_trait( trait_id( trait_name ) ); @@ -71,7 +71,7 @@ static void set_single_trait( player &dummy, std::string trait_name ) } // Return player `metabolic_rate_base` with a given mutation -static float metabolic_rate_with_mutation( player &dummy, std::string trait_name ) +static float metabolic_rate_with_mutation( player &dummy, const std::string &trait_name ) { set_single_trait( dummy, trait_name ); return dummy.metabolic_rate_base(); @@ -87,7 +87,8 @@ static int bmr_at_act_level( player &dummy, float activity_level ) } // Return player `height()` with a given base height and size trait (SMALL, MEDIUM, LARGE, HUGE). -static int height_with_base_and_size( player &dummy, int base_height, std::string size_trait ) +static int height_with_base_and_size( player &dummy, int base_height, + const std::string &size_trait ) { clear_character( dummy ); dummy.mod_base_height( base_height - dummy.base_height() ); @@ -239,7 +240,7 @@ TEST_CASE( "character height and body size mutations", "[biometrics][height][mut REQUIRE( dummy.base_height() == init_height ); WHEN( "they are normal-sized (MEDIUM)" ) { - REQUIRE( dummy.get_size() == MS_MEDIUM ); + REQUIRE( dummy.get_size() == creature_size::medium ); THEN( "height is initial height" ) { CHECK( dummy.height() == init_height ); @@ -248,7 +249,7 @@ TEST_CASE( "character height and body size mutations", "[biometrics][height][mut WHEN( "they become SMALL" ) { set_single_trait( dummy, "SMALL" ); - REQUIRE( dummy.get_size() == MS_SMALL ); + REQUIRE( dummy.get_size() == creature_size::small ); THEN( "they are 50cm shorter" ) { CHECK( dummy.height() == init_height - 50 ); @@ -257,7 +258,7 @@ TEST_CASE( "character height and body size mutations", "[biometrics][height][mut WHEN( "they become LARGE" ) { set_single_trait( dummy, "LARGE" ); - REQUIRE( dummy.get_size() == MS_LARGE ); + REQUIRE( dummy.get_size() == creature_size::large ); THEN( "they are 50cm taller" ) { CHECK( dummy.height() == init_height + 50 ); @@ -266,7 +267,7 @@ TEST_CASE( "character height and body size mutations", "[biometrics][height][mut WHEN( "they become HUGE" ) { set_single_trait( dummy, "HUGE" ); - REQUIRE( dummy.get_size() == MS_HUGE ); + REQUIRE( dummy.get_size() == creature_size::huge ); THEN( "they are 100cm taler" ) { CHECK( dummy.height() == init_height + 100 ); @@ -312,8 +313,7 @@ TEST_CASE( "size and height determine body weight", "[biometrics][bodyweight]" ) REQUIRE_FALSE( dummy.has_trait( trait_id( "SMALL" ) ) ); REQUIRE_FALSE( dummy.has_trait( trait_id( "LARGE" ) ) ); REQUIRE_FALSE( dummy.has_trait( trait_id( "HUGE" ) ) ); - REQUIRE( dummy.get_size() == MS_MEDIUM ); - + REQUIRE( dummy.get_size() == creature_size::medium ); THEN( "bodyweight varies from ~49-107kg" ) { // BMI [16-35] is "Emaciated/Underweight" to "Obese/Very Obese" @@ -325,7 +325,7 @@ TEST_CASE( "size and height determine body weight", "[biometrics][bodyweight]" ) WHEN( "character is small" ) { set_single_trait( dummy, "SMALL" ); - REQUIRE( dummy.get_size() == MS_SMALL ); + REQUIRE( dummy.get_size() == creature_size::small ); THEN( "bodyweight varies from ~25-55kg" ) { CHECK( bodyweight_kg_at_bmi( dummy, 16.0f ) == Approx( 25.0f ).margin( 0.1f ) ); @@ -336,7 +336,7 @@ TEST_CASE( "size and height determine body weight", "[biometrics][bodyweight]" ) WHEN( "character is large" ) { set_single_trait( dummy, "LARGE" ); - REQUIRE( dummy.get_size() == MS_LARGE ); + REQUIRE( dummy.get_size() == creature_size::large ); THEN( "bodyweight varies from ~81-177kg" ) { CHECK( bodyweight_kg_at_bmi( dummy, 16.0f ) == Approx( 81.0f ).margin( 0.1f ) ); @@ -347,7 +347,7 @@ TEST_CASE( "size and height determine body weight", "[biometrics][bodyweight]" ) WHEN( "character is huge" ) { set_single_trait( dummy, "HUGE" ); - REQUIRE( dummy.get_size() == MS_HUGE ); + REQUIRE( dummy.get_size() == creature_size::huge ); THEN( "bodyweight varies from ~121-265kg" ) { CHECK( bodyweight_kg_at_bmi( dummy, 16.0f ) == Approx( 121.0f ).margin( 0.1f ) ); @@ -365,8 +365,7 @@ TEST_CASE( "size and height determine body weight", "[biometrics][bodyweight]" ) REQUIRE_FALSE( dummy.has_trait( trait_id( "SMALL" ) ) ); REQUIRE_FALSE( dummy.has_trait( trait_id( "LARGE" ) ) ); REQUIRE_FALSE( dummy.has_trait( trait_id( "HUGE" ) ) ); - REQUIRE( dummy.get_size() == MS_MEDIUM ); - + REQUIRE( dummy.get_size() == creature_size::medium ); THEN( "bodyweight varies from ~57-126kg" ) { CHECK( bodyweight_kg_at_bmi( dummy, 16.0 ) == Approx( 57.8 ).margin( 0.1f ) ); @@ -377,7 +376,7 @@ TEST_CASE( "size and height determine body weight", "[biometrics][bodyweight]" ) WHEN( "character is small" ) { set_single_trait( dummy, "SMALL" ); - REQUIRE( dummy.get_size() == MS_SMALL ); + REQUIRE( dummy.get_size() == creature_size::small ); THEN( "bodyweight varies from ~31-68kg" ) { CHECK( bodyweight_kg_at_bmi( dummy, 16.0f ) == Approx( 31.4f ).margin( 0.1f ) ); @@ -388,7 +387,7 @@ TEST_CASE( "size and height determine body weight", "[biometrics][bodyweight]" ) WHEN( "character is large" ) { set_single_trait( dummy, "LARGE" ); - REQUIRE( dummy.get_size() == MS_LARGE ); + REQUIRE( dummy.get_size() == creature_size::large ); THEN( "bodyweight varies from ~92-201kg" ) { CHECK( bodyweight_kg_at_bmi( dummy, 16.0f ) == Approx( 92.16f ).margin( 0.1f ) ); @@ -399,7 +398,7 @@ TEST_CASE( "size and height determine body weight", "[biometrics][bodyweight]" ) WHEN( "character is huge" ) { set_single_trait( dummy, "HUGE" ); - REQUIRE( dummy.get_size() == MS_HUGE ); + REQUIRE( dummy.get_size() == creature_size::huge ); THEN( "bodyweight varies from ~134-294kg" ) { CHECK( bodyweight_kg_at_bmi( dummy, 16.0f ) == Approx( 134.6f ).margin( 0.1f ) ); @@ -549,7 +548,7 @@ TEST_CASE( "basal metabolic rate with various size and metabolism", "[biometrics // CHECK expressions have expected value on the left hand side for better readability. SECTION( "normal body size" ) { - REQUIRE( dummy.get_size() == MS_MEDIUM ); + REQUIRE( dummy.get_size() == creature_size::medium ); SECTION( "normal metabolism" ) { CHECK( 2087 == bmr_at_act_level( dummy, NO_EXERCISE ) ); @@ -578,7 +577,7 @@ TEST_CASE( "basal metabolic rate with various size and metabolism", "[biometrics SECTION( "small body size" ) { set_single_trait( dummy, "SMALL" ); - REQUIRE( dummy.get_size() == MS_SMALL ); + REQUIRE( dummy.get_size() == creature_size::small ); CHECK( 1262 == bmr_at_act_level( dummy, NO_EXERCISE ) ); CHECK( 1630 == bmr_at_act_level( dummy, MODERATE_EXERCISE ) ); @@ -587,7 +586,7 @@ TEST_CASE( "basal metabolic rate with various size and metabolism", "[biometrics SECTION( "large body size" ) { set_single_trait( dummy, "LARGE" ); - REQUIRE( dummy.get_size() == MS_LARGE ); + REQUIRE( dummy.get_size() == creature_size::large ); CHECK( 3062 == bmr_at_act_level( dummy, NO_EXERCISE ) ); CHECK( 3955 == bmr_at_act_level( dummy, MODERATE_EXERCISE ) ); diff --git a/tests/char_edible_rating_test.cpp b/tests/char_edible_rating_test.cpp index 7ccc5b2776d1f..241b349c0e2cc 100644 --- a/tests/char_edible_rating_test.cpp +++ b/tests/char_edible_rating_test.cpp @@ -22,7 +22,7 @@ static void expect_can_eat( avatar &dummy, item &food ) CHECK( rate_can.value() == EDIBLE ); } -static void expect_cannot_eat( avatar &dummy, item &food, std::string expect_reason, +static void expect_cannot_eat( avatar &dummy, item &food, const std::string &expect_reason, int expect_rating = INEDIBLE ) { auto rate_can = dummy.can_eat( food ); @@ -31,7 +31,7 @@ static void expect_cannot_eat( avatar &dummy, item &food, std::string expect_rea CHECK( rate_can.value() == expect_rating ); } -static void expect_will_eat( avatar &dummy, item &food, std::string expect_consequence, +static void expect_will_eat( avatar &dummy, item &food, const std::string &expect_consequence, int expect_rating ) { // will_eat returns the first element in a vector of ret_val diff --git a/tests/char_healing_test.cpp b/tests/char_healing_test.cpp index 1d2d14275fe8b..78bf6adf0982a 100644 --- a/tests/char_healing_test.cpp +++ b/tests/char_healing_test.cpp @@ -36,7 +36,7 @@ static const efftype_id effect_bandaged( "bandaged" ); static const efftype_id effect_disinfected( "disinfected" ); // Empty `dummy` of all traits, and give them a single trait with name `trait_name` -static void give_one_trait( player &dummy, const std::string trait_name ) +static void give_one_trait( player &dummy, const std::string &trait_name ) { const trait_id trait( trait_name ); dummy.clear_mutations(); @@ -52,7 +52,6 @@ static float healing_rate_at_health( Character &dummy, const int healthy_value, return dummy.healing_rate( rest_quality ); } - // At baseline human defaults, with no treatment or traits, the character only heals while sleeping. // Default as of this writing is is 0.0001, or 8.64 HP per day. TEST_CASE( "baseline healing rate with no healing traits", "[heal][baseline]" ) @@ -258,14 +257,14 @@ TEST_CASE( "health effects on healing rate", "[heal][health]" ) // using a local avatar instance to avoid any cross-contamination. Tests may be contagious! // Return `healing_rate_medicine` for an untreated body part at a given rest quality -static float untreated_rate( const std::string bp_name, const float rest_quality ) +static float untreated_rate( const std::string &bp_name, const float rest_quality ) { avatar dummy; return dummy.healing_rate_medicine( rest_quality, bodypart_id( bp_name ) ); } // Return `healing_rate_medicine` for a `bandaged` body part at a given rest quality -static float bandaged_rate( const std::string bp_name, const float rest_quality ) +static float bandaged_rate( const std::string &bp_name, const float rest_quality ) { avatar dummy; const bodypart_id &bp = bodypart_id( bp_name ); @@ -274,7 +273,7 @@ static float bandaged_rate( const std::string bp_name, const float rest_quality } // Return `healing_rate_medicine` for a `disinfected` body part at a given rest quality -static float disinfected_rate( const std::string bp_name, const float rest_quality ) +static float disinfected_rate( const std::string &bp_name, const float rest_quality ) { avatar dummy; const bodypart_id &bp = bodypart_id( bp_name ); @@ -283,7 +282,7 @@ static float disinfected_rate( const std::string bp_name, const float rest_quali } // Return `healing_rate_medicine` for a `bandaged` AND `disinfected` body part at a given rest quality -static float together_rate( const std::string bp_name, const float rest_quality ) +static float together_rate( const std::string &bp_name, const float rest_quality ) { avatar dummy; const bodypart_id &bp = bodypart_id( bp_name ); diff --git a/tests/char_stamina_test.cpp b/tests/char_stamina_test.cpp index 4a2f04902db8a..031d154c1629d 100644 --- a/tests/char_stamina_test.cpp +++ b/tests/char_stamina_test.cpp @@ -15,6 +15,9 @@ static const efftype_id effect_winded( "winded" ); +static const move_mode_id move_mode_walk( "walk" ); +static const move_mode_id move_mode_run( "run" ); +static const move_mode_id move_mode_crouch( "crouch" ); // These test cases cover stamina-related functions in the `Character` class, including: // // - stamina_move_cost_modifier @@ -46,7 +49,7 @@ static void catch_breath( player &dummy ) } // Return `stamina_move_cost_modifier` in the given move_mode with [0.0 .. 1.0] stamina remaining -static float move_cost_mod( player &dummy, character_movemode move_mode, +static float move_cost_mod( player &dummy, const move_mode_id &move_mode, float stamina_proportion = 1.0 ) { // Reset and be able to run @@ -68,7 +71,7 @@ static float move_cost_mod( player &dummy, character_movemode move_mode, } // Return amount of stamina burned per turn by `burn_move_stamina` in the given movement mode. -static int actual_burn_rate( player &dummy, character_movemode move_mode ) +static int actual_burn_rate( player &dummy, const move_mode_id &move_mode ) { // Ensure we can run if necessary (aaaa zombies!) dummy.set_stamina( dummy.get_stamina_max() ); @@ -107,7 +110,7 @@ static void burden_player( player &dummy, float burden_proportion ) // Return amount of stamina burned per turn by `burn_move_stamina` in the given movement mode, // while carrying the given proportion [0.0, inf) of their maximum weight capacity. -static int burdened_burn_rate( player &dummy, character_movemode move_mode, +static int burdened_burn_rate( player &dummy, const move_mode_id &move_mode, float burden_proportion = 0.0 ) { clear_character( dummy, false ); @@ -137,39 +140,45 @@ TEST_CASE( "stamina movement cost modifier", "[stamina][cost]" ) player &dummy = g->u; SECTION( "running cost is double walking cost for the same stamina level" ) { - CHECK( move_cost_mod( dummy, CMM_RUN, 1.0 ) == 2 * move_cost_mod( dummy, CMM_WALK, 1.0 ) ); - CHECK( move_cost_mod( dummy, CMM_RUN, 0.5 ) == 2 * move_cost_mod( dummy, CMM_WALK, 0.5 ) ); - CHECK( move_cost_mod( dummy, CMM_RUN, 0.0 ) == 2 * move_cost_mod( dummy, CMM_WALK, 0.0 ) ); + CHECK( move_cost_mod( dummy, move_mode_run, 1.0 ) == 2 * move_cost_mod( dummy, move_mode_walk, + 1.0 ) ); + CHECK( move_cost_mod( dummy, move_mode_run, 0.5 ) == 2 * move_cost_mod( dummy, move_mode_walk, + 0.5 ) ); + CHECK( move_cost_mod( dummy, move_mode_run, 0.0 ) == 2 * move_cost_mod( dummy, move_mode_walk, + 0.0 ) ); } SECTION( "walking cost is double crouching cost for the same stamina level" ) { - CHECK( move_cost_mod( dummy, CMM_WALK, 1.0 ) == 2 * move_cost_mod( dummy, CMM_CROUCH, 1.0 ) ); - CHECK( move_cost_mod( dummy, CMM_WALK, 0.5 ) == 2 * move_cost_mod( dummy, CMM_CROUCH, 0.5 ) ); - CHECK( move_cost_mod( dummy, CMM_WALK, 0.0 ) == 2 * move_cost_mod( dummy, CMM_CROUCH, 0.0 ) ); + CHECK( move_cost_mod( dummy, move_mode_walk, 1.0 ) == 2 * move_cost_mod( dummy, move_mode_crouch, + 1.0 ) ); + CHECK( move_cost_mod( dummy, move_mode_walk, 0.5 ) == 2 * move_cost_mod( dummy, move_mode_crouch, + 0.5 ) ); + CHECK( move_cost_mod( dummy, move_mode_walk, 0.0 ) == 2 * move_cost_mod( dummy, move_mode_crouch, + 0.0 ) ); } SECTION( "running cost goes from 2.0 to 1.0 as stamina goes to zero" ) { - CHECK( move_cost_mod( dummy, CMM_RUN, 1.00 ) == Approx( 2.00 ) ); - CHECK( move_cost_mod( dummy, CMM_RUN, 0.75 ) == Approx( 1.75 ) ); - CHECK( move_cost_mod( dummy, CMM_RUN, 0.50 ) == Approx( 1.50 ) ); - CHECK( move_cost_mod( dummy, CMM_RUN, 0.25 ) == Approx( 1.25 ) ); - CHECK( move_cost_mod( dummy, CMM_RUN, 0.00 ) == Approx( 1.00 ) ); + CHECK( move_cost_mod( dummy, move_mode_run, 1.00 ) == Approx( 2.00 ) ); + CHECK( move_cost_mod( dummy, move_mode_run, 0.75 ) == Approx( 1.75 ) ); + CHECK( move_cost_mod( dummy, move_mode_run, 0.50 ) == Approx( 1.50 ) ); + CHECK( move_cost_mod( dummy, move_mode_run, 0.25 ) == Approx( 1.25 ) ); + CHECK( move_cost_mod( dummy, move_mode_run, 0.00 ) == Approx( 1.00 ) ); } SECTION( "walking cost goes from 1.0 to 0.5 as stamina goes to zero" ) { - CHECK( move_cost_mod( dummy, CMM_WALK, 1.00 ) == Approx( 1.000 ) ); - CHECK( move_cost_mod( dummy, CMM_WALK, 0.75 ) == Approx( 0.875 ) ); - CHECK( move_cost_mod( dummy, CMM_WALK, 0.50 ) == Approx( 0.750 ) ); - CHECK( move_cost_mod( dummy, CMM_WALK, 0.25 ) == Approx( 0.625 ) ); - CHECK( move_cost_mod( dummy, CMM_WALK, 0.00 ) == Approx( 0.500 ) ); + CHECK( move_cost_mod( dummy, move_mode_walk, 1.00 ) == Approx( 1.000 ) ); + CHECK( move_cost_mod( dummy, move_mode_walk, 0.75 ) == Approx( 0.875 ) ); + CHECK( move_cost_mod( dummy, move_mode_walk, 0.50 ) == Approx( 0.750 ) ); + CHECK( move_cost_mod( dummy, move_mode_walk, 0.25 ) == Approx( 0.625 ) ); + CHECK( move_cost_mod( dummy, move_mode_walk, 0.00 ) == Approx( 0.500 ) ); } SECTION( "crouching cost goes from 0.5 to 0.25 as stamina goes to zero" ) { - CHECK( move_cost_mod( dummy, CMM_CROUCH, 1.00 ) == Approx( 0.5000 ) ); - CHECK( move_cost_mod( dummy, CMM_CROUCH, 0.75 ) == Approx( 0.4375 ) ); - CHECK( move_cost_mod( dummy, CMM_CROUCH, 0.50 ) == Approx( 0.3750 ) ); - CHECK( move_cost_mod( dummy, CMM_CROUCH, 0.25 ) == Approx( 0.3125 ) ); - CHECK( move_cost_mod( dummy, CMM_CROUCH, 0.00 ) == Approx( 0.2500 ) ); + CHECK( move_cost_mod( dummy, move_mode_crouch, 1.00 ) == Approx( 0.5000 ) ); + CHECK( move_cost_mod( dummy, move_mode_crouch, 0.75 ) == Approx( 0.4375 ) ); + CHECK( move_cost_mod( dummy, move_mode_crouch, 0.50 ) == Approx( 0.3750 ) ); + CHECK( move_cost_mod( dummy, move_mode_crouch, 0.25 ) == Approx( 0.3125 ) ); + CHECK( move_cost_mod( dummy, move_mode_crouch, 0.00 ) == Approx( 0.2500 ) ); } } @@ -258,55 +267,55 @@ TEST_CASE( "stamina burn for movement", "[stamina][burn][move]" ) GIVEN( "player is naked and unburdened" ) { THEN( "walking burns the normal amount of stamina per turn" ) { - CHECK( burdened_burn_rate( dummy, CMM_WALK, 0.0 ) == normal_burn_rate ); + CHECK( burdened_burn_rate( dummy, move_mode_walk, 0.0 ) == normal_burn_rate ); } THEN( "running burns 14 times the normal amount of stamina per turn" ) { - CHECK( burdened_burn_rate( dummy, CMM_RUN, 0.0 ) == normal_burn_rate * 14 ); + CHECK( burdened_burn_rate( dummy, move_mode_run, 0.0 ) == normal_burn_rate * 14 ); } THEN( "crouching burns 1/2 the normal amount of stamina per turn" ) { - CHECK( burdened_burn_rate( dummy, CMM_CROUCH, 0.0 ) == normal_burn_rate / 2 ); + CHECK( burdened_burn_rate( dummy, move_mode_crouch, 0.0 ) == normal_burn_rate / 2 ); } } GIVEN( "player is at their maximum weight capacity" ) { THEN( "walking burns the normal amount of stamina per turn" ) { - CHECK( burdened_burn_rate( dummy, CMM_WALK, 1.0 ) == normal_burn_rate ); + CHECK( burdened_burn_rate( dummy, move_mode_walk, 1.0 ) == normal_burn_rate ); } THEN( "running burns 14 times the normal amount of stamina per turn" ) { - CHECK( burdened_burn_rate( dummy, CMM_RUN, 1.0 ) == normal_burn_rate * 14 ); + CHECK( burdened_burn_rate( dummy, move_mode_run, 1.0 ) == normal_burn_rate * 14 ); } THEN( "crouching burns 1/2 the normal amount of stamina per turn" ) { - CHECK( burdened_burn_rate( dummy, CMM_CROUCH, 1.0 ) == normal_burn_rate / 2 ); + CHECK( burdened_burn_rate( dummy, move_mode_crouch, 1.0 ) == normal_burn_rate / 2 ); } } GIVEN( "player is overburdened" ) { THEN( "walking burn rate increases by 1 for each percent overburdened" ) { - CHECK( burdened_burn_rate( dummy, CMM_WALK, 1.01 ) == normal_burn_rate + 1 ); - CHECK( burdened_burn_rate( dummy, CMM_WALK, 1.02 ) == normal_burn_rate + 2 ); - CHECK( burdened_burn_rate( dummy, CMM_WALK, 1.50 ) == normal_burn_rate + 50 ); - CHECK( burdened_burn_rate( dummy, CMM_WALK, 1.99 ) == normal_burn_rate + 99 ); - CHECK( burdened_burn_rate( dummy, CMM_WALK, 2.00 ) == normal_burn_rate + 100 ); + CHECK( burdened_burn_rate( dummy, move_mode_walk, 1.01 ) == normal_burn_rate + 1 ); + CHECK( burdened_burn_rate( dummy, move_mode_walk, 1.02 ) == normal_burn_rate + 2 ); + CHECK( burdened_burn_rate( dummy, move_mode_walk, 1.50 ) == normal_burn_rate + 50 ); + CHECK( burdened_burn_rate( dummy, move_mode_walk, 1.99 ) == normal_burn_rate + 99 ); + CHECK( burdened_burn_rate( dummy, move_mode_walk, 2.00 ) == normal_burn_rate + 100 ); } THEN( "running burn rate increases by 14 for each percent overburdened" ) { - CHECK( burdened_burn_rate( dummy, CMM_RUN, 1.01 ) == ( normal_burn_rate + 1 ) * 14 ); - CHECK( burdened_burn_rate( dummy, CMM_RUN, 1.02 ) == ( normal_burn_rate + 2 ) * 14 ); - CHECK( burdened_burn_rate( dummy, CMM_RUN, 1.50 ) == ( normal_burn_rate + 50 ) * 14 ); - CHECK( burdened_burn_rate( dummy, CMM_RUN, 1.99 ) == ( normal_burn_rate + 99 ) * 14 ); - CHECK( burdened_burn_rate( dummy, CMM_RUN, 2.00 ) == ( normal_burn_rate + 100 ) * 14 ); + CHECK( burdened_burn_rate( dummy, move_mode_run, 1.01 ) == ( normal_burn_rate + 1 ) * 14 ); + CHECK( burdened_burn_rate( dummy, move_mode_run, 1.02 ) == ( normal_burn_rate + 2 ) * 14 ); + CHECK( burdened_burn_rate( dummy, move_mode_run, 1.50 ) == ( normal_burn_rate + 50 ) * 14 ); + CHECK( burdened_burn_rate( dummy, move_mode_run, 1.99 ) == ( normal_burn_rate + 99 ) * 14 ); + CHECK( burdened_burn_rate( dummy, move_mode_run, 2.00 ) == ( normal_burn_rate + 100 ) * 14 ); } THEN( "crouching burn rate increases by 1/2 for each percent overburdened" ) { - CHECK( burdened_burn_rate( dummy, CMM_CROUCH, 1.01 ) == ( normal_burn_rate + 1 ) / 2 ); - CHECK( burdened_burn_rate( dummy, CMM_CROUCH, 1.02 ) == ( normal_burn_rate + 2 ) / 2 ); - CHECK( burdened_burn_rate( dummy, CMM_CROUCH, 1.50 ) == ( normal_burn_rate + 50 ) / 2 ); - CHECK( burdened_burn_rate( dummy, CMM_CROUCH, 1.99 ) == ( normal_burn_rate + 99 ) / 2 ); - CHECK( burdened_burn_rate( dummy, CMM_CROUCH, 2.00 ) == ( normal_burn_rate + 100 ) / 2 ); + CHECK( burdened_burn_rate( dummy, move_mode_crouch, 1.01 ) == ( normal_burn_rate + 1 ) / 2 ); + CHECK( burdened_burn_rate( dummy, move_mode_crouch, 1.02 ) == ( normal_burn_rate + 2 ) / 2 ); + CHECK( burdened_burn_rate( dummy, move_mode_crouch, 1.50 ) == ( normal_burn_rate + 50 ) / 2 ); + CHECK( burdened_burn_rate( dummy, move_mode_crouch, 1.99 ) == ( normal_burn_rate + 99 ) / 2 ); + CHECK( burdened_burn_rate( dummy, move_mode_crouch, 2.00 ) == ( normal_burn_rate + 100 ) / 2 ); } } } @@ -389,16 +398,16 @@ TEST_CASE( "stamina regen in different movement modes", "[stamina][update][regen int turn_moves = to_moves( 1_turns ); - dummy.set_movement_mode( CMM_RUN ); - REQUIRE( dummy.movement_mode_is( CMM_RUN ) ); + dummy.set_movement_mode( move_mode_run ); + REQUIRE( dummy.movement_mode_is( move_mode_run ) ); float run_regen_rate = actual_regen_rate( dummy, turn_moves ); - dummy.set_movement_mode( CMM_WALK ); - REQUIRE( dummy.movement_mode_is( CMM_WALK ) ); + dummy.set_movement_mode( move_mode_walk ); + REQUIRE( dummy.movement_mode_is( move_mode_walk ) ); float walk_regen_rate = actual_regen_rate( dummy, turn_moves ); - dummy.set_movement_mode( CMM_CROUCH ); - REQUIRE( dummy.movement_mode_is( CMM_CROUCH ) ); + dummy.set_movement_mode( move_mode_crouch ); + REQUIRE( dummy.movement_mode_is( move_mode_crouch ) ); float crouch_regen_rate = actual_regen_rate( dummy, turn_moves ); THEN( "run and walk mode give the same stamina regen per turn" ) { diff --git a/tests/colony_list_test_helpers.h b/tests/colony_list_test_helpers.h index 57bed9ca10840..c903adf5b5feb 100644 --- a/tests/colony_list_test_helpers.h +++ b/tests/colony_list_test_helpers.h @@ -29,7 +29,7 @@ struct small_struct { int number; unsigned int empty_field4; - small_struct( const int num ) noexcept: number( num ) {}; + small_struct( const int num ) noexcept: number( num ) {} }; struct perfect_forwarding_test { diff --git a/tests/colony_test.cpp b/tests/colony_test.cpp index ba774b6983c7d..e982134564347 100644 --- a/tests/colony_test.cpp +++ b/tests/colony_test.cpp @@ -347,7 +347,7 @@ TEST_CASE( "colony insert and erase", "[colony]" ) it = test_colony.erase( it ); } } - } while( !test_colony.empty() );; + } while( !test_colony.empty() ); // Random insert/erase till empty CHECK( test_colony.empty() ); diff --git a/tests/comestible_test.cpp b/tests/comestible_test.cpp index 07def3ae2e843..d39c58267970d 100644 --- a/tests/comestible_test.cpp +++ b/tests/comestible_test.cpp @@ -27,9 +27,9 @@ struct all_stats { static int comp_calories( const std::vector &components ) { int calories = 0; - for( item_comp it : components ) { + for( const item_comp &it : components ) { const cata::value_ptr &temp = item::find_type( it.type )->comestible; - if( temp && temp->cooks_like.empty() ) { + if( temp && temp->cooks_like.is_empty() ) { calories += temp->default_nutrition.kcal * it.count; } else if( temp ) { const itype *cooks_like = item::find_type( temp->cooks_like ); diff --git a/tests/crafting_test.cpp b/tests/crafting_test.cpp index 4de95ae039234..6ade7cef7c72c 100644 --- a/tests/crafting_test.cpp +++ b/tests/crafting_test.cpp @@ -55,7 +55,7 @@ TEST_CASE( "recipe_subset" ) CHECK( std::find( cat_recipes.begin(), cat_recipes.end(), r ) != cat_recipes.end() ); } THEN( "it uses water" ) { - const auto comp_recipes( subset.of_component( "water" ) ); + const auto comp_recipes( subset.of_component( itype_id( "water" ) ) ); CHECK( comp_recipes.size() == 1 ); CHECK( std::find( comp_recipes.begin(), comp_recipes.end(), r ) != comp_recipes.end() ); @@ -372,8 +372,8 @@ TEST_CASE( "UPS shows as a crafting component", "[crafting][ups]" ) item &ups = dummy.i_add( item( "UPS_off", -1, 500 ) ); REQUIRE( dummy.has_item( ups ) ); REQUIRE( ups.charges == 500 ); - REQUIRE( dummy.charges_of( "UPS_off" ) == 500 ); - REQUIRE( dummy.charges_of( "UPS" ) == 500 ); + REQUIRE( dummy.charges_of( itype_id( "UPS_off" ) ) == 500 ); + REQUIRE( dummy.charges_of( itype_id( "UPS" ) ) == 500 ); } TEST_CASE( "tools use charge to craft", "[crafting][charge]" ) @@ -405,8 +405,12 @@ TEST_CASE( "tools use charge to craft", "[crafting][charge]" ) // - 10 charges of surface heat WHEN( "each tool has enough charges" ) { - tools.push_back( tool_with_ammo( "hotplate", 20 ) ); - tools.push_back( tool_with_ammo( "soldering_iron", 20 ) ); + item hotplate = tool_with_ammo( "hotplate", 20 ); + REQUIRE( hotplate.ammo_remaining() == 20 ); + tools.push_back( hotplate ); + item soldering = tool_with_ammo( "soldering_iron", 20 ); + REQUIRE( soldering.ammo_remaining() == 20 ); + tools.push_back( soldering ); THEN( "crafting succeeds, and uses charges from each tool" ) { int turns = actually_test_craft( recipe_id( "carver_off" ), tools, INT_MAX ); @@ -434,7 +438,11 @@ TEST_CASE( "tools use charge to craft", "[crafting][charge]" ) item soldering_iron( "soldering_iron" ); soldering_iron.put_in( item( "battery_ups" ), item_pocket::pocket_type::MOD ); tools.push_back( soldering_iron ); - tools.emplace_back( "UPS_off", -1, 500 ); + item UPS( "UPS_off" ); + item UPS_mag( UPS.magazine_default() ); + UPS_mag.ammo_set( UPS_mag.ammo_default(), 500 ); + UPS.put_in( UPS_mag, item_pocket::pocket_type::MAGAZINE_WELL ); + tools.emplace_back( UPS ); THEN( "crafting succeeds, and uses charges from the UPS" ) { actually_test_craft( recipe_id( "carver_off" ), tools, INT_MAX ); @@ -519,18 +527,20 @@ static void verify_inventory( const std::vector &has, std::ostringstream os; os << "Inventory:\n"; for( const item *i : g->u.inv_dump() ) { - os << " " << i->typeId() << " (" << i->charges << ")\n"; + os << " " << i->typeId().str() << " (" << i->charges << ")\n"; } os << "Wielded:\n" << g->u.weapon.tname() << "\n"; INFO( os.str() ); for( const std::string &i : has ) { INFO( "expecting " << i ); - const bool has_item = player_has_item_of_type( i ) || g->u.weapon.type->get_id() == i; + const bool has_item = + player_has_item_of_type( i ) || g->u.weapon.type->get_id() == itype_id( i ); REQUIRE( has_item ); } for( const std::string &i : hasnt ) { INFO( "not expecting " << i ); - const bool hasnt_item = !player_has_item_of_type( i ) && !( g->u.weapon.type->get_id() == i ); + const bool hasnt_item = + !player_has_item_of_type( i ) && !( g->u.weapon.type->get_id() == itype_id( i ) ); REQUIRE( hasnt_item ); } } diff --git a/tests/creature_test.cpp b/tests/creature_test.cpp index 62d3f27d4554c..0cd2b6f074d53 100644 --- a/tests/creature_test.cpp +++ b/tests/creature_test.cpp @@ -19,7 +19,7 @@ float expected_weights_max[][12] = { { 2000, 0, 0, 0, 1191.49, 1191.49, 0, 0 { 3657, 2861.78, 113.73, 0, 1815.83, 1815.83, 0, 0, 508.904, 508.904, 0, 0 } }; -static void calculate_bodypart_distribution( const enum m_size asize, const enum m_size dsize, +static void calculate_bodypart_distribution( const creature_size asize, const creature_size dsize, const int hit_roll, float ( &expected )[12] ) { INFO( "hit roll = " << hit_roll ); @@ -49,7 +49,7 @@ static void calculate_bodypart_distribution( const enum m_size asize, const enum } for( auto weight : selected_part_histogram ) { - INFO( body_part_name( weight.first ) ); + INFO( body_part_name( convert_bp( weight.first ).id() ) ); const double expected_proportion = expected[weight.first] / total_weight; CHECK_THAT( weight.second, IsBinomialObservation( num_tests, expected_proportion ) ); } @@ -59,25 +59,34 @@ TEST_CASE( "Check distribution of attacks to body parts for same sized opponents { srand( 4242424242 ); - calculate_bodypart_distribution( MS_SMALL, MS_SMALL, 0, expected_weights_base[1] ); - calculate_bodypart_distribution( MS_SMALL, MS_SMALL, 1, expected_weights_base[1] ); - calculate_bodypart_distribution( MS_SMALL, MS_SMALL, 100, expected_weights_max[1] ); + calculate_bodypart_distribution( creature_size::small, creature_size::small, 0, + expected_weights_base[1] ); + calculate_bodypart_distribution( creature_size::small, creature_size::small, 1, + expected_weights_base[1] ); + calculate_bodypart_distribution( creature_size::small, creature_size::small, 100, + expected_weights_max[1] ); } TEST_CASE( "Check distribution of attacks to body parts for smaller attacker." ) { srand( 4242424242 ); - calculate_bodypart_distribution( MS_SMALL, MS_MEDIUM, 0, expected_weights_base[0] ); - calculate_bodypart_distribution( MS_SMALL, MS_MEDIUM, 1, expected_weights_base[0] ); - calculate_bodypart_distribution( MS_SMALL, MS_MEDIUM, 100, expected_weights_max[0] ); + calculate_bodypart_distribution( creature_size::small, creature_size::medium, 0, + expected_weights_base[0] ); + calculate_bodypart_distribution( creature_size::small, creature_size::medium, 1, + expected_weights_base[0] ); + calculate_bodypart_distribution( creature_size::small, creature_size::medium, 100, + expected_weights_max[0] ); } TEST_CASE( "Check distribution of attacks to body parts for larger attacker." ) { srand( 4242424242 ); - calculate_bodypart_distribution( MS_MEDIUM, MS_SMALL, 0, expected_weights_base[2] ); - calculate_bodypart_distribution( MS_MEDIUM, MS_SMALL, 1, expected_weights_base[2] ); - calculate_bodypart_distribution( MS_MEDIUM, MS_SMALL, 100, expected_weights_max[2] ); + calculate_bodypart_distribution( creature_size::medium, creature_size::small, 0, + expected_weights_base[2] ); + calculate_bodypart_distribution( creature_size::medium, creature_size::small, 1, + expected_weights_base[2] ); + calculate_bodypart_distribution( creature_size::medium, creature_size::small, 100, + expected_weights_max[2] ); } diff --git a/tests/effect_test.cpp b/tests/effect_test.cpp index 3e1a9a6bbfa9b..2436af55bb41c 100644 --- a/tests/effect_test.cpp +++ b/tests/effect_test.cpp @@ -15,9 +15,9 @@ // effect::get_start_time // // Create an `effect` object with given parameters, and check they were initialized correctly. -static void check_effect_init( const std::string eff_name, const time_duration dur, - const std::string bp_name, const bool permanent, const int intensity, - const time_point start_time ) +static void check_effect_init( const std::string &eff_name, const time_duration &dur, + const std::string &bp_name, const bool permanent, const int intensity, + const time_point &start_time ) { const efftype_id eff_id( eff_name ); const effect_type &type = eff_id.obj(); diff --git a/tests/effective_dps_test.cpp b/tests/effective_dps_test.cpp index 3e715c2be032f..3e73fed99f159 100644 --- a/tests/effective_dps_test.cpp +++ b/tests/effective_dps_test.cpp @@ -214,3 +214,188 @@ TEST_CASE( "accuracy increases success", "[accuracy][dps]" ) check_accuracy_dps( dummy, survivor, clumsy_sword, normal_sword, good_sword ); } } + +static void make_experienced_tester( avatar &test_guy ) +{ + clear_character( test_guy ); + test_guy.str_max = 10; + test_guy.dex_max = 10; + test_guy.int_max = 10; + test_guy.per_max = 10; + test_guy.set_str_bonus( 0 ); + test_guy.set_dex_bonus( 0 ); + test_guy.set_int_bonus( 0 ); + test_guy.set_per_bonus( 0 ); + test_guy.reset_bonuses(); + test_guy.set_speed_base( 100 ); + test_guy.set_speed_bonus( 0 ); + test_guy.hp_cur.fill( test_guy.get_hp_max() ); + test_guy.set_skill_level( skill_id( "bashing" ), 4 ); + test_guy.set_skill_level( skill_id( "cutting" ), 4 ); + test_guy.set_skill_level( skill_id( "stabbing" ), 4 ); + test_guy.set_skill_level( skill_id( "unarmed" ), 4 ); + test_guy.set_skill_level( skill_id( "melee" ), 4 ); + + REQUIRE( test_guy.get_str() == 10 ); + REQUIRE( test_guy.get_dex() == 10 ); + REQUIRE( test_guy.get_per() == 10 ); + REQUIRE( test_guy.get_skill_level( skill_id( "bashing" ) ) == 4 ); + REQUIRE( test_guy.get_skill_level( skill_id( "cutting" ) ) == 4 ); + REQUIRE( test_guy.get_skill_level( skill_id( "stabbing" ) ) == 4 ); + REQUIRE( test_guy.get_skill_level( skill_id( "unarmed" ) ) == 4 ); + REQUIRE( test_guy.get_skill_level( skill_id( "melee" ) ) == 4 ); +} +static void calc_expected_dps( avatar &test_guy, const std::string &weapon_id, double target ) +{ + item weapon( weapon_id ); + CHECK( test_guy.melee_value( weapon ) == Approx( target ).margin( 0.75 ) ); + if( test_guy.melee_value( weapon ) != Approx( target ).margin( 0.75 ) ) { + std::cout << weapon_id << " out of range, expected: " << target; + std::cout << " got " << test_guy.melee_value( weapon ) << std::endl; + } +} +/* + * A super tedious set of test cases to make sure that weapon values do not drift too far out + * of range without anyone noticing them and adjusting them. + * Used expected_dps(), which should make actual dps because of the calculations above. + */ +TEST_CASE( "expected weapon dps", "[expected][dps]" ) +{ + avatar &test_guy = g->u; + make_experienced_tester( test_guy ); + + SECTION( "staves" ) { // typical value around 18 + calc_expected_dps( test_guy, "i_staff", 18.0 ); + calc_expected_dps( test_guy, "q_staff", 17.0 ); + calc_expected_dps( test_guy, "l-stick_on", 18.0 ); + calc_expected_dps( test_guy, "l-stick", 18.0 ); + calc_expected_dps( test_guy, "shock_staff", 17.0 ); + calc_expected_dps( test_guy, "hockey_stick", 13.0 ); + calc_expected_dps( test_guy, "pool_cue", 10.0 ); + calc_expected_dps( test_guy, "broom", 4.0 ); + } + SECTION( "spear" ) { // typical value around 24 + calc_expected_dps( test_guy, "spear_steel", 24.0 ); + calc_expected_dps( test_guy, "pike", 23.0 ); + calc_expected_dps( test_guy, "qiang", 23.0 ); + calc_expected_dps( test_guy, "spear_dory", 23 ); + calc_expected_dps( test_guy, "spear_homemade_halfpike", 20.0 ); + calc_expected_dps( test_guy, "spear_copper", 19.0 ); + calc_expected_dps( test_guy, "spear_pipe", 19.0 ); + calc_expected_dps( test_guy, "spear_knife_superior", 18.0 ); + calc_expected_dps( test_guy, "spear_knife", 18.0 ); + calc_expected_dps( test_guy, "pike_inferior", 17.0 ); + calc_expected_dps( test_guy, "spear_wood", 15.0 ); + calc_expected_dps( test_guy, "pitchfork", 15.0 ); + calc_expected_dps( test_guy, "spear_stone", 14.0 ); + calc_expected_dps( test_guy, "spear_forked", 14.0 ); + calc_expected_dps( test_guy, "pike_fake", 10.0 ); + } + SECTION( "polearm" ) { // typical value around 35 + calc_expected_dps( test_guy, "halberd", 36.0 ); + calc_expected_dps( test_guy, "halberd_fake", 15.0 ); + calc_expected_dps( test_guy, "ji", 35.0 ); + calc_expected_dps( test_guy, "glaive", 35.0 ); + calc_expected_dps( test_guy, "naginata", 35.0 ); + calc_expected_dps( test_guy, "naginata_inferior", 21.0 ); + calc_expected_dps( test_guy, "naginata_fake", 10.0 ); + calc_expected_dps( test_guy, "lucern_hammer", 36.0 ); + calc_expected_dps( test_guy, "lucern_hammerfake", 14.0 ); + calc_expected_dps( test_guy, "spear_survivor", 26.0 ); + calc_expected_dps( test_guy, "long_pole", 13.0 ); + } + SECTION( "two-handed axe" ) { // typical value around 29 + calc_expected_dps( test_guy, "battleaxe", 29.0 ); + calc_expected_dps( test_guy, "battleaxe_fake", 11.0 ); + calc_expected_dps( test_guy, "battleaxe_inferior", 20.0 ); + calc_expected_dps( test_guy, "fire_ax", 25.0 ); + calc_expected_dps( test_guy, "lobotomizer", 24.0 ); + calc_expected_dps( test_guy, "ax", 21.0 ); + calc_expected_dps( test_guy, "copper_ax", 12.0 ); + calc_expected_dps( test_guy, "e_combatsaw_on", 28.0 ); + calc_expected_dps( test_guy, "combatsaw_on", 28.0 ); + calc_expected_dps( test_guy, "chainsaw_on", 16.0 ); + calc_expected_dps( test_guy, "cs_lajatang_on", 17.0 ); + calc_expected_dps( test_guy, "ecs_lajatang_on", 17.0 ); + calc_expected_dps( test_guy, "circsaw_on", 18.0 ); + calc_expected_dps( test_guy, "e_combatsaw_off", 3.0 ); + calc_expected_dps( test_guy, "ecs_lajatang_off", 3.0 ); + calc_expected_dps( test_guy, "combatsaw_off", 3.0 ); + calc_expected_dps( test_guy, "chainsaw_off", 2.0 ); + calc_expected_dps( test_guy, "cs_lajatang_off", 2.5 ); + calc_expected_dps( test_guy, "circsaw_off", 2.0 ); + } + SECTION( "two-handed club/hammer" ) { // expected value ideally around 28 + calc_expected_dps( test_guy, "warhammer", 28.0 ); + calc_expected_dps( test_guy, "hammer_sledge", 20.0 ); + calc_expected_dps( test_guy, "halligan", 17.0 ); + calc_expected_dps( test_guy, "stick_long", 6.0 ); + } + SECTION( "two-handed flails" ) { // expected value ideally around 28 + calc_expected_dps( test_guy, "2h_flail_steel", 25.0 ); + calc_expected_dps( test_guy, "2h_flail_wood", 20.0 ); + calc_expected_dps( test_guy, "homewrecker", 13.0 ); + } + SECTION( "fist weapons" ) { // expected value around 10 but wide variation + calc_expected_dps( test_guy, "bio_claws_weapon", 18.0 ); // basically a knife + calc_expected_dps( test_guy, "bagh_nakha", 14.5 ); + calc_expected_dps( test_guy, "punch_dagger", 11.0 ); + calc_expected_dps( test_guy, "knuckle_katar", 10.5 ); + calc_expected_dps( test_guy, "knuckle_steel", 4.0 ); + calc_expected_dps( test_guy, "knuckle_brass", 4.0 ); + calc_expected_dps( test_guy, "knuckle_nail", 4.0 ); + calc_expected_dps( test_guy, "cestus", 3.0 ); + } + SECTION( "ax" ) { // expected value around 27 but no dedicated weapons + calc_expected_dps( test_guy, "hatchet", 24.0 ); + calc_expected_dps( test_guy, "crash_axe", 24.0 ); + calc_expected_dps( test_guy, "iceaxe", 19.0 ); + calc_expected_dps( test_guy, "throwing_axe", 14.0 ); + calc_expected_dps( test_guy, "carver_on", 22.5 ); + calc_expected_dps( test_guy, "pickaxe", 10.5 ); + calc_expected_dps( test_guy, "primitive_adze", 10.0 ); // rock on a stick + calc_expected_dps( test_guy, "primitive_axe", 10.0 ); // rock on a stick + calc_expected_dps( test_guy, "makeshift_axe", 9.0 ); // chunk of sharp steel + calc_expected_dps( test_guy, "hand_axe", 8.5 ); // chunk of sharp rock + } + SECTION( "club" ) { // expected value around 24 but most aren't dedicated weapons + calc_expected_dps( test_guy, "mace", 24.0 ); + calc_expected_dps( test_guy, "morningstar", 23.0 ); + calc_expected_dps( test_guy, "shillelagh_weighted", 22.0 ); + calc_expected_dps( test_guy, "bwirebat", 22.0 ); + calc_expected_dps( test_guy, "baton-extended", 21.0 ); + calc_expected_dps( test_guy, "bat_metal", 21.0 ); + calc_expected_dps( test_guy, "nailbat", 21.0 ); + calc_expected_dps( test_guy, "bat", 20.0 ); + calc_expected_dps( test_guy, "shillelagh", 20.0 ); + calc_expected_dps( test_guy, "bokken", 20.0 ); + calc_expected_dps( test_guy, "PR24-extended", 20.0 ); + calc_expected_dps( test_guy, "mace_inferior", 18.0 ); + calc_expected_dps( test_guy, "tonfa", 17.0 ); + calc_expected_dps( test_guy, "tonfa_wood", 16.0 ); + calc_expected_dps( test_guy, "shocktonfa_off", 16.0 ); + calc_expected_dps( test_guy, "shocktonfa_on", 16.0 ); + calc_expected_dps( test_guy, "crowbar", 15.0 ); + calc_expected_dps( test_guy, "morningstar_inferior", 15.0 ); + calc_expected_dps( test_guy, "bokken_inferior", 13.0 ); + calc_expected_dps( test_guy, "golf_club", 14.0 ); + calc_expected_dps( test_guy, "mace_fake", 13.0 ); + calc_expected_dps( test_guy, "claw_bar", 11.0 ); + calc_expected_dps( test_guy, "shovel", 11.0 ); + calc_expected_dps( test_guy, "e_tool", 11.0 ); + calc_expected_dps( test_guy, "sword_nail", 11.0 ); + calc_expected_dps( test_guy, "sword_wood", 10.5 ); + calc_expected_dps( test_guy, "cane", 10.5 ); + calc_expected_dps( test_guy, "cudgel", 10.5 ); + calc_expected_dps( test_guy, "primitive_hammer", 10.0 ); + calc_expected_dps( test_guy, "bokken_fake", 10.5 ); + calc_expected_dps( test_guy, "shillelagh_fake", 9.5 ); + calc_expected_dps( test_guy, "morningstar_fake", 8.0 ); + calc_expected_dps( test_guy, "wrench", 7.0 ); + calc_expected_dps( test_guy, "hammer", 6.0 ); + calc_expected_dps( test_guy, "rebar", 7.0 ); + calc_expected_dps( test_guy, "primitive_shovel", 7.0 ); + calc_expected_dps( test_guy, "heavy_flashlight", 7.0 ); + calc_expected_dps( test_guy, "rock", 6.0 ); + } +} diff --git a/tests/encumbrance_test.cpp b/tests/encumbrance_test.cpp index 76c2c979a62c1..5bc9edb3b478c 100644 --- a/tests/encumbrance_test.cpp +++ b/tests/encumbrance_test.cpp @@ -58,14 +58,14 @@ static void test_encumbrance_items( } static void test_encumbrance( - const std::vector &clothing_types, + const std::vector &clothing_types, const std::string &body_part, const int expected_encumbrance ) { CAPTURE( clothing_types ); std::vector clothing; - for( const itype_id &type : clothing_types ) { + for( const std::string &type : clothing_types ) { clothing.push_back( item( type ) ); } test_encumbrance_items( clothing, body_part, expected_encumbrance ); diff --git a/tests/event_test.cpp b/tests/event_test.cpp index 945dfb029094a..bf93fe557bfb9 100644 --- a/tests/event_test.cpp +++ b/tests/event_test.cpp @@ -11,8 +11,6 @@ #include "string_id.h" #include "type_id.h" -using itype_id = std::string; - TEST_CASE( "construct_event", "[event]" ) { cata::event e = cata::event::make( diff --git a/tests/explosion_balance_test.cpp b/tests/explosion_balance_test.cpp index 5e578108b88dc..2a7ab812f0f52 100644 --- a/tests/explosion_balance_test.cpp +++ b/tests/explosion_balance_test.cpp @@ -22,6 +22,11 @@ #include "vehicle.h" #include "vpart_position.h" +static const vpart_id vpart_battery_car( "battery_car" ); +static const vpart_id vpart_headlight( "headlight" ); +static const vpart_id vpart_vehicle_clock( "vehicle_clock" ); +static const vpart_id vpart_windshield( "windshield" ); + enum class outcome_type { Kill, Casualty }; @@ -36,9 +41,9 @@ static void check_lethality( const std::string &explosive_id, const int range, f statistics victims; std::stringstream survivor_stats; int total_hp = 0; + clear_map_and_put_player_underground(); do { - // Clear map - clear_map_and_put_player_underground(); + clear_creatures(); // Spawn some monsters in a circle. tripoint origin( 30, 30, 0 ); int num_subjects_this_time = 0; @@ -125,11 +130,11 @@ static void check_vehicle_damage( const std::string &explosive_id, const std::st for( size_t i = 0; i < before_hp.size(); ++i ) { CAPTURE( i ); INFO( target_vehicle->parts[ i ].name() ); - if( target_vehicle->parts[ i ].info().get_id() == "battery_car" || - target_vehicle->parts[ i ].info().get_id() == "headlight" || - target_vehicle->parts[ i ].info().get_id() == "windshield" ) { + if( target_vehicle->parts[ i ].info().get_id() == vpart_battery_car || + target_vehicle->parts[ i ].info().get_id() == vpart_headlight || + target_vehicle->parts[ i ].info().get_id() == vpart_windshield ) { CHECK( before_hp[ i ] >= after_hp[ i ] ); - } else if( !( target_vehicle->parts[ i ].info().get_id() == "vehicle_clock" ) ) { + } else if( !( target_vehicle->parts[ i ].info().get_id() == vpart_vehicle_clock ) ) { CHECK( before_hp[ i ] == after_hp[ i ] ); } } @@ -144,4 +149,4 @@ TEST_CASE( "grenade_lethality", "[grenade],[explosion],[balance],[slow]" ) TEST_CASE( "grenade_vs_vehicle", "[grenade],[explosion],[balance]" ) { check_vehicle_damage( "grenade_act", "car", 5 ); -} \ No newline at end of file +} diff --git a/tests/flat_set_test.cpp b/tests/flat_set_test.cpp index 4a137cc4083e1..f5262888daaeb 100644 --- a/tests/flat_set_test.cpp +++ b/tests/flat_set_test.cpp @@ -123,8 +123,8 @@ struct int_like { friend bool operator op( int_like l, int_like r ) { \ return l.i op r.i; \ } - INT_LIKE_OPERATOR( == ); - INT_LIKE_OPERATOR( < ); + INT_LIKE_OPERATOR( == ) + INT_LIKE_OPERATOR( < ) }; TEST_CASE( "flat_set_transparent_lookup", "[flat_set]" ) diff --git a/tests/food_fun_for_test.cpp b/tests/food_fun_for_test.cpp index cd953586a4150..6bcd7ac95679a 100644 --- a/tests/food_fun_for_test.cpp +++ b/tests/food_fun_for_test.cpp @@ -382,7 +382,7 @@ TEST_CASE( "fun for food eaten too often", "[fun_for][food][monotony]" ) } WHEN( "character has just eaten one" ) { - dummy.eat( toastem ); + dummy.consume( toastem ); THEN( "the next one is less enjoyable" ) { actual_fun = dummy.fun_for( toastem ); @@ -390,7 +390,7 @@ TEST_CASE( "fun for food eaten too often", "[fun_for][food][monotony]" ) } AND_WHEN( "character has eaten another one" ) { - dummy.eat( toastem ); + dummy.consume( toastem ); THEN( "the one after that is even less enjoyable" ) { actual_fun = dummy.fun_for( toastem ); diff --git a/tests/invlet_test.cpp b/tests/invlet_test.cpp index 9ec46f19aab6a..f64c81c73391e 100644 --- a/tests/invlet_test.cpp +++ b/tests/invlet_test.cpp @@ -24,7 +24,7 @@ #include "type_id.h" #include "visitable.h" -const trait_id trait_debug_storage( "DEBUG_STORAGE" ); +static const trait_id trait_DEBUG_STORAGE( "DEBUG_STORAGE" ); enum inventory_location { GROUND, @@ -756,8 +756,8 @@ TEST_CASE( "Inventory letter test", "[.invlet]" ) dummy.setpos( spot ); g->m.ter_set( spot, ter_id( "t_dirt" ) ); g->m.furn_set( spot, furn_id( "f_null" ) ); - if( !dummy.has_trait( trait_debug_storage ) ) { - dummy.set_mutation( trait_debug_storage ); + if( !dummy.has_trait( trait_DEBUG_STORAGE ) ) { + dummy.set_mutation( trait_DEBUG_STORAGE ); } invlet_test_autoletter_off( "Picking up items from the ground", dummy, GROUND, INVENTORY ); @@ -791,36 +791,36 @@ static void verify_invlet_consistency( const invlet_favorites &fav ) TEST_CASE( "invlet_favourites_can_erase", "[.invlet]" ) { invlet_favorites fav; - fav.set( 'a', "a" ); + fav.set( 'a', itype_id( "a" ) ); verify_invlet_consistency( fav ); - CHECK( fav.invlets_for( "a" ) == "a" ); + CHECK( fav.invlets_for( itype_id( "a" ) ) == "a" ); fav.erase( 'a' ); verify_invlet_consistency( fav ); - CHECK( fav.invlets_for( "a" ).empty() ); + CHECK( fav.invlets_for( itype_id( "a" ) ).empty() ); } TEST_CASE( "invlet_favourites_removes_clashing_on_insertion", "[.invlet]" ) { invlet_favorites fav; - fav.set( 'a', "a" ); + fav.set( 'a', itype_id( "a" ) ); verify_invlet_consistency( fav ); - CHECK( fav.invlets_for( "a" ) == "a" ); - CHECK( fav.invlets_for( "b" ).empty() ); - fav.set( 'a', "b" ); + CHECK( fav.invlets_for( itype_id( "a" ) ) == "a" ); + CHECK( fav.invlets_for( itype_id( "b" ) ).empty() ); + fav.set( 'a', itype_id( "b" ) ); verify_invlet_consistency( fav ); - CHECK( fav.invlets_for( "a" ).empty() ); - CHECK( fav.invlets_for( "b" ) == "a" ); + CHECK( fav.invlets_for( itype_id( "a" ) ).empty() ); + CHECK( fav.invlets_for( itype_id( "b" ) ) == "a" ); } TEST_CASE( "invlet_favourites_retains_order_on_insertion", "[.invlet]" ) { invlet_favorites fav; - fav.set( 'a', "a" ); - fav.set( 'b', "a" ); - fav.set( 'c', "a" ); + fav.set( 'a', itype_id( "a" ) ); + fav.set( 'b', itype_id( "a" ) ); + fav.set( 'c', itype_id( "a" ) ); verify_invlet_consistency( fav ); - CHECK( fav.invlets_for( "a" ) == "abc" ); - fav.set( 'b', "a" ); + CHECK( fav.invlets_for( itype_id( "a" ) ) == "abc" ); + fav.set( 'b', itype_id( "a" ) ); verify_invlet_consistency( fav ); - CHECK( fav.invlets_for( "a" ) == "abc" ); + CHECK( fav.invlets_for( itype_id( "a" ) ) == "abc" ); } diff --git a/tests/item_contents_test.cpp b/tests/item_contents_test.cpp index 14dd5e4aa91bf..6c74b339cfb14 100644 --- a/tests/item_contents_test.cpp +++ b/tests/item_contents_test.cpp @@ -42,7 +42,7 @@ TEST_CASE( "item_contents" ) CHECK( tool_belt.contents.num_item_stacks() == 4 ); tool_belt.contents.remove_items_if( []( item & it ) { - return it.typeId() == "hammer"; + return it.typeId() == itype_id( "hammer" ); } ); // check to see that removing an item works CHECK( tool_belt.contents.num_item_stacks() == 3 ); diff --git a/tests/item_group_test.cpp b/tests/item_group_test.cpp index 654b4a77723b7..fdb06ab9c1e17 100644 --- a/tests/item_group_test.cpp +++ b/tests/item_group_test.cpp @@ -1,6 +1,7 @@ #include "catch/catch.hpp" #include "item.h" #include "item_group.h" +#include "stringmaker.h" TEST_CASE( "spawn with default charges and with ammo", "[item_group]" ) { @@ -8,16 +9,16 @@ TEST_CASE( "spawn with default charges and with ammo", "[item_group]" ) default_charges.with_ammo = 100; SECTION( "tools without ammo" ) { item matches( "matches" ); - REQUIRE( matches.ammo_default() == "NULL" ); + REQUIRE( matches.ammo_default() == itype_id( "match" ) ); default_charges.modify( matches ); - CHECK( matches.ammo_remaining() == matches.ammo_capacity() ); + CHECK( matches.remaining_ammo_capacity() == 0 ); } SECTION( "gun with ammo type" ) { item glock( "glock_19" ); - REQUIRE( glock.ammo_default() != "NULL" ); + REQUIRE( !glock.magazine_default().is_null() ); default_charges.modify( glock ); - CHECK( glock.ammo_remaining() == glock.ammo_capacity() ); + CHECK( glock.remaining_ammo_capacity() == 0 ); } } diff --git a/tests/item_location_test.cpp b/tests/item_location_test.cpp index 72c29fa055330..9ced2498ceb8b 100644 --- a/tests/item_location_test.cpp +++ b/tests/item_location_test.cpp @@ -30,7 +30,7 @@ TEST_CASE( "item_location_can_maintain_reference_despite_item_removal", "[item][ map_cursor cursor( pos ); item *tshirt = nullptr; cursor.visit_items( [&tshirt]( item * i ) { - if( i->typeId() == "tshirt" ) { + if( i->typeId() == itype_id( "tshirt" ) ) { tshirt = i; return VisitResponse::ABORT; } @@ -38,19 +38,19 @@ TEST_CASE( "item_location_can_maintain_reference_despite_item_removal", "[item][ } ); REQUIRE( tshirt != nullptr ); item_location item_loc( cursor, tshirt ); - REQUIRE( item_loc->typeId() == "tshirt" ); + REQUIRE( item_loc->typeId() == itype_id( "tshirt" ) ); for( int j = 0; j < 4; ++j ) { // Delete up to 4 random jeans map_stack stack = m.i_at( pos ); REQUIRE( !stack.empty() ); item *i = &random_entry_opt( stack )->get(); - if( i->typeId() == "jeans" ) { + if( i->typeId() == itype_id( "jeans" ) ) { m.i_rem( pos, i ); } } CAPTURE( m.i_at( pos ) ); REQUIRE( item_loc ); - CHECK( item_loc->typeId() == "tshirt" ); + CHECK( item_loc->typeId() == itype_id( "tshirt" ) ); } TEST_CASE( "item_location_doesnt_return_stale_map_item", "[item][item_location]" ) @@ -61,7 +61,7 @@ TEST_CASE( "item_location_doesnt_return_stale_map_item", "[item][item_location]" m.i_clear( pos ); m.add_item( pos, item( "tshirt" ) ); item_location item_loc( map_cursor( pos ), &m.i_at( pos ).only_item() ); - REQUIRE( item_loc->typeId() == "tshirt" ); + REQUIRE( item_loc->typeId() == itype_id( "tshirt" ) ); m.i_rem( pos, &*item_loc ); m.add_item( pos, item( "jeans" ) ); CHECK( !item_loc ); @@ -86,10 +86,9 @@ TEST_CASE( "item_in_container", "[item][item_location]" ) REQUIRE( backpack_loc.where() == item_location::type::character ); REQUIRE( jeans_loc.where() == item_location::type::container ); - - CHECK( backpack_loc.obtain_cost( dummy ) + - backpack_loc->contents.obtain_cost( *jeans_loc ) == - jeans_loc.obtain_cost( dummy ) ); + const int obtain_cost_calculation = ( backpack_loc.obtain_cost( dummy ) / 2 ) + + dummy.item_handling_cost( *jeans_loc, true, backpack_loc->contents.obtain_cost( *jeans_loc ) ); + CHECK( obtain_cost_calculation == jeans_loc.obtain_cost( dummy ) ); CHECK( jeans_loc.parent_item() == backpack_loc ); } diff --git a/tests/item_test.cpp b/tests/item_test.cpp index 3707b5fe01fd0..b4f3c2274dd55 100644 --- a/tests/item_test.cpp +++ b/tests/item_test.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -6,7 +7,9 @@ #include "catch/catch.hpp" #include "enums.h" #include "item.h" +#include "item_factory.h" #include "itype.h" +#include "monstergenerator.h" #include "ret_val.h" #include "units.h" #include "value_ptr.h" @@ -33,11 +36,11 @@ TEST_CASE( "item_volume", "[item]" ) TEST_CASE( "simple_item_layers", "[item]" ) { - CHECK( item( "arm_warmers" ).get_layer() == UNDERWEAR_LAYER ); - CHECK( item( "10gal_hat" ).get_layer() == REGULAR_LAYER ); - CHECK( item( "baldric" ).get_layer() == WAIST_LAYER ); - CHECK( item( "aep_suit" ).get_layer() == OUTER_LAYER ); - CHECK( item( "2byarm_guard" ).get_layer() == BELTED_LAYER ); + CHECK( item( "arm_warmers" ).get_layer() == layer_level::UNDERWEAR ); + CHECK( item( "10gal_hat" ).get_layer() == layer_level::REGULAR ); + CHECK( item( "baldric" ).get_layer() == layer_level::WAIST ); + CHECK( item( "aep_suit" ).get_layer() == layer_level::OUTER ); + CHECK( item( "2byarm_guard" ).get_layer() == layer_level::BELTED ); } TEST_CASE( "gun_layer", "[item]" ) @@ -46,7 +49,7 @@ TEST_CASE( "gun_layer", "[item]" ) item mod( "shoulder_strap" ); CHECK( gun.is_gunmod_compatible( mod ).success() ); gun.put_in( mod, item_pocket::pocket_type::MOD ); - CHECK( gun.get_layer() == BELTED_LAYER ); + CHECK( gun.get_layer() == layer_level::BELTED ); } TEST_CASE( "stacking_cash_cards", "[item]" ) @@ -157,3 +160,46 @@ TEST_CASE( "stacking_over_time", "[item]" ) } } } + +static void assert_minimum_length_to_volume_ratio( const item &target ) +{ + if( target.type->get_id().is_null() ) { + return; + } + CAPTURE( target.type->get_id() ); + CAPTURE( target.volume() ); + CAPTURE( target.base_volume() ); + CAPTURE( target.type->volume ); + if( target.made_of( phase_id::LIQUID ) || target.is_soft() ) { + CHECK( target.length() == 0_mm ); + return; + } + if( target.volume() == 0_ml ) { + CHECK( target.length() == -1_mm ); + return; + } + if( target.volume() == 1_ml ) { + CHECK( target.length() >= 0_mm ); + return; + } + // Minimum possible length is if the item is a sphere. + const float minimal_diameter = std::cbrt( ( 3.0 * units::to_milliliter( target.base_volume() ) ) / + ( 4.0 * M_PI ) ); + CHECK( units::to_millimeter( target.length() ) >= minimal_diameter * 10.0 ); +} + +TEST_CASE( "item length sanity check", "[item]" ) +{ + for( const itype *type : item_controller->all() ) { + const item sample( type, 0, item::solitary_tag {} ); + assert_minimum_length_to_volume_ratio( sample ); + } +} + +TEST_CASE( "corpse length sanity check", "[item]" ) +{ + for( const mtype &type : MonsterGenerator::generator().get_all_mtypes() ) { + const item sample = item::make_corpse( type.id ); + assert_minimum_length_to_volume_ratio( sample ); + } +} diff --git a/tests/item_type_name_test.cpp b/tests/item_type_name_test.cpp index dab639d593474..b9807e66e6526 100644 --- a/tests/item_type_name_test.cpp +++ b/tests/item_type_name_test.cpp @@ -91,7 +91,7 @@ TEST_CASE( "blood item", "[item][type_name][blood]" ) item corpse = item::make_corpse( mon_zombie ); item blood( "blood" ); blood.set_mtype( corpse.get_mtype() ); - REQUIRE( blood.typeId() == "blood" ); + REQUIRE( blood.typeId() == itype_id( "blood" ) ); REQUIRE_FALSE( blood.is_corpse() ); CHECK( blood.type_name() == "zombie blood" ); @@ -101,7 +101,7 @@ TEST_CASE( "blood item", "[item][type_name][blood]" ) item corpse = item::make_corpse( mon_chicken ); item blood( "blood" ); blood.set_mtype( corpse.get_mtype() ); - REQUIRE( blood.typeId() == "blood" ); + REQUIRE( blood.typeId() == itype_id( "blood" ) ); REQUIRE_FALSE( blood.is_corpse() ); CHECK( blood.type_name() == "chicken blood" ); @@ -109,7 +109,7 @@ TEST_CASE( "blood item", "[item][type_name][blood]" ) SECTION( "blood from an unknown corpse" ) { item blood( "blood" ); - REQUIRE( blood.typeId() == "blood" ); + REQUIRE( blood.typeId() == itype_id( "blood" ) ); REQUIRE_FALSE( blood.is_corpse() ); CHECK( blood.type_name() == "human blood" ); diff --git a/tests/iteminfo_test.cpp b/tests/iteminfo_test.cpp index 0cc05a692a7a0..9b2a387c2a377 100644 --- a/tests/iteminfo_test.cpp +++ b/tests/iteminfo_test.cpp @@ -11,572 +11,1931 @@ #include "itype.h" #include "player_helpers.h" #include "options_helpers.h" +#include "output.h" #include "recipe.h" #include "recipe_dictionary.h" #include "type_id.h" #include "value_ptr.h" -static void test_info_equals( const item &i, const iteminfo_query &q, - const std::string &reference ) -{ - int encumber = i.type->armor ? i.type->armor->encumber : -1; - int max_encumber = i.type->armor ? i.type->armor->max_encumber : -1; - CAPTURE( encumber ); - CAPTURE( max_encumber ); - CAPTURE( i.typeId() ); - CAPTURE( i.has_flag( "FIT" ) ); - CAPTURE( i.has_flag( "VARSIZE" ) ); - CAPTURE( i.get_clothing_mod_val( clothing_mod_type_encumbrance ) ); - CAPTURE( i.get_sizing( g->u, true ) ); - std::vector info_v; - std::string info = i.info( info_v, &q, 1 ); - CHECK( info == reference ); -} - -static void test_info_contains( const item &i, const iteminfo_query &q, - const std::string &reference ) -{ - int encumber = i.type->armor ? i.type->armor->encumber : -1; - int max_encumber = i.type->armor ? i.type->armor->max_encumber : -1; - CAPTURE( encumber ); - CAPTURE( max_encumber ); - CAPTURE( i.typeId() ); - CAPTURE( i.has_flag( "FIT" ) ); - CAPTURE( i.has_flag( "VARSIZE" ) ); - CAPTURE( i.get_clothing_mod_val( clothing_mod_type_encumbrance ) ); - CAPTURE( i.get_sizing( g->u, true ) ); + +// ITEM INFO +// ========= +// +// When looking at the description of any item in the game, the information you see comes from the +// item::info function, which calls functions like basic_info, armor_info, food_info and many others +// to build a complete string describing the item. +// +// The included info depends on: +// +// - Relevancy to current item (damage for weapons, coverage for armor, vitamins for food, etc.) +// - Including one or more appropriate iteminfo_part::PART_NAME flags in the `info` function call +// +// Color-highlighted text in item info uses a semantic markup in the code (ex. "good", "bad") that +// becomes translated to color codes for output: +// +// +// +// +// +// +// +//